[
  {
    "path": ".devcontainer/README.md",
    "content": "## Overview\n\nWith [VS Code Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack), we can develop LaTeX Workshop in a container by executing `Remote-Containers: Reopen Folder in Container`. See:\n\n- https://code.visualstudio.com/docs/remote/containers#_quick-start-open-an-existing-folder-in-a-container\n- https://code.visualstudio.com/api/advanced-topics/remote-extensions#debugging-in-a-custom-development-container\n\n## Docker images\n\nWe can switch docker images by rewriting the `dockerFile` property in `devcontainer.json`. See also [the reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference).\n\n`stable/`: Docker image to develop the extension with the stable version of TeX Live. Based on the `bullseye` image on [the official Debian](https://hub.docker.com/_/debian).\n\n`sid/`: Docker image to develop the extension with the testing version of TeX Live. Based on the `sid` image on [the official Debian](https://hub.docker.com/_/debian). See also https://www.debian.org/releases/index.en.html.\n\n`texlive/`: Docker image to develop the extension with the testing version of TeX Live. Based on [the official texlive image](https://hub.docker.com/r/texlive/texlive).\n"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "content": "{\n\t\"name\": \"Node.js 18 & TeX Live Base\",\n\t\"dockerFile\": \"stable/Dockerfile\",\n\t\"customizations\": {\n\t\t\"vscode\": {\n\t\t\t\"extensions\": [\n\t\t\t\t\"dbaeumer.vscode-eslint\",\n\t\t\t\t\"ms-vsliveshare.vsliveshare\"\n\t\t\t]\n\t\t}\n\t}\n}"
  },
  {
    "path": ".devcontainer/sid/Dockerfile",
    "content": "FROM debian:sid-slim\n\nENV DEBIAN_FRONTEND=noninteractive\nRUN apt-get update \\\n    && apt-get -y install --no-install-recommends apt-utils 2>&1\n\n# https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions\n# https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions\nRUN apt -y install curl\nRUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -\nRUN apt-get install -y nodejs\n\n# Verify git and needed tools are installed\nRUN apt-get install --no-install-recommends -y git procps\n\n# Install Tex Live\nRUN apt-get update && apt-get -y upgrade \\\n    && apt-get -y install --no-install-recommends \\\n    texlive-latex-base \\\n    texlive-extra-utils \\\n    texlive-latex-extra \\\n    biber chktex latexmk make python3-pygments \\\n    texlive-lang-chinese \\\n    texlive-lang-japanese\n\n# latexindent modules\nRUN curl -L http://cpanmin.us | perl - App::cpanminus \\\n    && cpanm YAML::Tiny \\\n    && cpanm File::HomeDir \\\n    && cpanm Unicode::GCString\n\n# VS Code dependencies for testing\nRUN apt-get update -y \\\n    && apt-get install -y --no-install-recommends \\\n    libnss3-dev \\\n    libdbus-1-dev \\\n    libatk-bridge2.0-dev \\\n    libdrm-dev \\\n    libgtk-3-dev \\\n    libasound2-dev\n\n# Clean up\nRUN apt-get autoremove -y \\\n    && apt-get clean -y \\\n    && rm -rf /var/lib/apt/lists/*\nENV DEBIAN_FRONTEND=dialog \\\n    LANG=C.UTF-8 \\\n    LC_ALL=C.UTF-8\n"
  },
  {
    "path": ".devcontainer/stable/Dockerfile",
    "content": "#-------------------------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.\n#-------------------------------------------------------------------------------------------------------------\n\nFROM debian:bullseye-slim\n\nENV DEBIAN_FRONTEND=noninteractive\nRUN apt-get update \\\n    && apt-get -y install --no-install-recommends apt-utils 2>&1\n\n# https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions\n# https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions\nRUN apt -y install curl\nRUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -\nRUN apt-get install -y nodejs\n\n# Verify git and needed tools are installed\nRUN apt-get install --no-install-recommends -y git procps\n\n# Install Tex Live\nRUN apt-get update && apt-get -y upgrade \\\n    && apt-get -y install --no-install-recommends \\\n    texlive-latex-base \\\n    texlive-extra-utils \\\n    texlive-latex-extra \\\n    biber chktex latexmk make python3-pygments \\\n    texlive-lang-chinese \\\n    texlive-lang-japanese\n\n# latexindent modules\nRUN curl -L http://cpanmin.us | perl - App::cpanminus \\\n    && cpanm Log::Dispatch::File \\\n    && cpanm YAML::Tiny \\\n    && cpanm File::HomeDir \\\n    && cpanm Unicode::GCString\n\n# VS Code dependencies for testing\nRUN apt-get update -y \\\n    && apt-get install -y --no-install-recommends \\\n    libnss3-dev \\\n    libdbus-1-dev \\\n    libatk-bridge2.0-dev \\\n    libdrm-dev \\\n    libgtk-3-dev \\\n    libasound2-dev\n\n# Clean up\nRUN apt-get autoremove -y \\\n    && apt-get clean -y \\\n    && rm -rf /var/lib/apt/lists/*\nENV DEBIAN_FRONTEND=dialog \\\n    LANG=C.UTF-8 \\\n    LC_ALL=C.UTF-8\n"
  },
  {
    "path": ".devcontainer/texlive/Dockerfile",
    "content": "FROM texlive/texlive:latest\n\n# https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions\n# https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions\nENV DEBIAN_FRONTEND=noninteractive\nRUN apt -y install curl\nRUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -\nRUN apt-get install -y nodejs\n\n# VS Code dependencies for testing\nRUN apt-get update -y \\\n    && apt-get install -y --no-install-recommends \\\n    libnss3-dev \\\n    libdbus-1-dev \\\n    libatk-bridge2.0-dev \\\n    libdrm-dev \\\n    libgtk-3-dev \\\n    libasound2-dev\n\n\n# Clean up\nRUN apt autoremove -y \\\n    && apt clean -y \\\n    && rm -rf /var/lib/apt/lists/*\nENV DEBIAN_FRONTEND=dialog\n"
  },
  {
    "path": ".gitattributes",
    "content": "*.js linguist-detectable=false\n*.ftl linguist-detectable=false"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "content": "---\nname: Bug Report\nabout: Create a bug report to help us resolve problems\n---\n\n> _Please fill the following fields with a star (*) and provide as much related information as possible._\n\n## Pre-checks*\n> _Please change the following `[ ]` to `[x]` for confirmation._\n- [ ] The issue has not been reported in this repository.\n- [ ] The issue remains after disabling all other extensions and restarting Visual Studio Code.\n- [ ] The [FAQ](https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ) cannot address the issue.\n- [ ] The issue is not related to compiling a document, or the document can be successfully compiled in the OS terminal but not in Visual Studio Code with this extension.\n\n## Environment*\n> _Please write exact version numbers instead of descriptors such as `latest`._\n- Operating System: [e.g. Windows 10]\n- Visual Studio Code Version: [e.g. 1.41.0]\n- LaTeX Workshop Version: [e.g. 8.5.0]\n- TeX Distribution Version: [e.g. TeX Live 2019 / MiKTeX 2.9.7250]\n\n> _Please list the environment and version number if you are using VSCodium, Snap or Flatpack versions of Visual Studio Code, and/or Visual Studio Code Remote Containers/SSH/WSL._\n- I am using XXX whose version is YY.ZZ\n\n## The Issue*\n> _Please briefly describe the issue you come across._\n- \n- \n\n### Reproduction Steps\n> _Please list out the steps to reproduce your bug. Include relevant environmental variables or any other configuration._\n1. \n2. \n3. \n\n### Expected Behavior\n> _What were you expecting to see? Include any relevant examples or documentation links._\n- \n- \n\n## Logs\n### LaTeX Workshop Output*\n> _Please paste the whole log messages below, not parts of ones. The log should start with `New log placeholder %WS1% registered`._\n```\n[Paste the log here. Do not remove the surrounding backquotes (`).]\n```\n\n### Developer Tools Console\n> _Please paste the whole log messages below, not parts of ones. This console logs can sometimes be very important in many cases. To access the log, click `Help` -> `Toggle Developer Tools` -> `Console`._\n```\n[Paste the log here. Do not remove the surrounding backquotes (`).]\n```\n\n## Anything Else?\n> _Add any other context about the problem below._\n- \n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "content": "---\nname: Feature Request\nabout: Suggest a feature to improve the extension\n---\n\n> _Please fill the following fields with a star (*) and provide as much related information as possible._\n\n## Pre-checks*\n> _Please change the following `[ ]` to `[x]` for confirmation._\n- [ ] The feature request has not been suggested in this repository.\n\n## The Missed*\n> _Is your feature request related to a problem? Please provide a clear and concise description of what the problem is._\n- \n\n## The Solution*\n> _Please provide a solution you would like to have._\n- \n\n## Anything Else?\n> _Add any other context about the feature request below._\n- \n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n- package-ecosystem: \"github-actions\"\n  directory: \"/\"\n  schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/disabled/docker_on_linux.yml",
    "content": "name: Docker on Linux\non: [push]\n\njobs:\n  linux:\n    runs-on: ubuntu-latest\n    timeout-minutes: 30\n    steps:\n    - uses: actions/checkout@v2\n    - uses: actions/setup-node@v1\n      with:\n        node-version: '20'\n    - run: |\n        npm ci\n        npm run compile\n        docker pull tianon/latex@sha256:d9d5378ae77df3352aba36f9672a4c2d5c82861475508a1fae46b40369ed6ac9\n    - name: Run tests\n      uses: GabrielBB/xvfb-action@v1.0\n      with:\n        run: npm run test -- --enable-docker\n"
  },
  {
    "path": ".github/workflows/README.md",
    "content": "# Overview\n\nWe run tests on GitHub Actions on Windows, macOS, and Linux with the minimal installations of TeX Live.\n\nWe can see [preinstalled software](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#preinstalled-software) on each platform. Perl 5 is installed even on Windows. So, all we have to do is just installing TeX Live.\n\n## Installing TeX Live\n\nFor the installer of TeX Live, `install-tl`, see the [official manual](https://tug.org/texlive/doc/install-tl.html). Giving a profile fie to the option, `-profile`, we can install TeX Live in batch mode with no user interaction.\n\nWe can see available installation schemes, `scheme-infraonly`, `scheme-small`, and so on in\n```\n/usr/local/texlive/2019/tlpkg/texlive.tlpdb\n```\n\nFor the management command of TeX Live, `tlmgr`, see the [official document](https://www.tug.org/texlive/doc/tlmgr.html).\n\n## Cache\n\nTo avoid install TeX Live each time, we use a caching feature, [actions/cache](https://github.com/actions/cache). The caches for the `master` branch are also used for feature branches.\n\nThe caches are removed if they have not been accessed in over 7 days.\nWhen we want to remove the caches manually, increase the number of `cache-version` on each YAML file.\n\n```yaml\nenv:\n  cache-version: v2\n```\n\n## References\n\nFor the details of GitHub Actions, read the following documents.\n\n- https://docs.github.com/en/actions\n- https://docs.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows\n- https://github.com/actions/checkout\n- https://github.com/actions/cache\n- https://github.com/actions/setup-node\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "# For most projects, this workflow file will not need changing; you simply need\n# to commit it to your repository.\n#\n# You may wish to alter this file to override the set of languages analyzed,\n# or to provide custom queries or build logic.\n#\n# ******** NOTE ********\n# We have attempted to detect the languages in your repository. Please check\n# the `language` matrix defined below to confirm you have the correct set of\n# supported CodeQL languages.\n#\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    # The branches below must be a subset of the branches above\n    branches: [ master ]\n\npermissions:\n  contents: read\n\njobs:\n  analyze:\n    permissions:\n      actions: read  # for github/codeql-action/init to get workflow details\n      contents: read  # for actions/checkout to fetch code\n      security-events: write  # for github/codeql-action/autobuild to send a status report\n    name: Analyze\n    runs-on: ubuntu-latest\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [ 'javascript', 'python' ]\n        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]\n        # Learn more:\n        # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed\n\n    steps:\n    - name: Checkout repository\n      uses: actions/checkout@v6\n\n    # Initializes the CodeQL tools for scanning.\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v4\n      with:\n        languages: ${{ matrix.language }}\n        # If you wish to specify custom queries, you can do so here or in a config file.\n        # By default, queries listed here will override any specified in a config file.\n        # Prefix the list here with \"+\" to use these queries and those in the config file.\n        # queries: ./path/to/local/query, your-org/your-repo/queries@main\n\n    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).\n    # If this step fails, then you should remove it and run the build manually (see below)\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v4\n\n    # Command-line programs to run using the OS shell.\n    # https://git.io/JvXDl\n\n    # If the Autobuild fails above, remove it and uncomment the following three lines\n    # and modify them (or add more) to build your code if your project\n    # uses a compiled language\n\n    #- run: |\n    #   make bootstrap\n    #   make release\n\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v4\n"
  },
  {
    "path": ".github/workflows/lock.yml",
    "content": "name: 'Lock Threads'\n\non:\n  schedule:\n    # avoid rate limit at 00:00 everyday\n    - cron: '37 2 * * *'\n  workflow_dispatch:\n\npermissions:\n  issues: write\n  pull-requests: write\n\nconcurrency:\n  group: lock\n\njobs:\n  action:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: dessant/lock-threads@v6\n        with:\n          issue-inactive-days: '30'\n          pr-inactive-days: '30'\n          process-only: 'issues, prs'\n          log-output: true\n"
  },
  {
    "path": ".github/workflows/package.yml",
    "content": "name: LaTeX Workshop Extension Package\nenv:\n  cache-version: v12\non: [push]\n\npermissions:\n  contents: read\n\njobs:\n  linux:\n    runs-on: ubuntu-latest\n    timeout-minutes: 30\n    steps:\n    - uses: actions/checkout@v6\n    - uses: actions/setup-node@v6\n      with:\n        node-version: '20'\n    - name: Create extension package\n      run: |\n        npm ci\n        npm run release\n    - name: Archive extension package\n      uses: actions/upload-artifact@v7\n      with:\n        name: latex-workshop\n        path: latex-workshop-*.vsix"
  },
  {
    "path": ".github/workflows/texlive_on_linux.yml",
    "content": "name: TeX Live on Linux\nenv:\n  cache-version: v12\non: [push, pull_request]\n\npermissions:\n  contents: read\n\njobs:\n  linux:\n    runs-on: ubuntu-latest\n    timeout-minutes: 30\n    steps:\n    - uses: actions/checkout@v6\n    - name: Set up PATH\n      run: |\n        echo \"/tmp/texlive/bin/x86_64-linux\" >> $GITHUB_PATH\n    - name: Cache TeX Live\n      id: cache-texlive\n      uses: actions/cache@v5\n      with:\n        path: /tmp/texlive\n        key: ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n        restore-keys: |\n          ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n    - name: Download install-tl.zip\n      run: |\n        curl -s -O -L http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip\n        unzip -q install-tl.zip\n        mv install-tl-2* install-tl-dir\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Run install-tl\n      run: |\n        install-tl-dir/install-tl --profile test/config/texlive_linux.profile\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Run tlmgr install\n      run: |\n        tlmgr update --self\n        tlmgr install collection-latex\n        tlmgr install import subfiles latexmk makeindex\n        tlmgr install chktex lacheck latexindent\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Download latexindent binary\n      run: |\n        curl -s -O -L http://mirrors.ctan.org/support/latexindent/bin/linux/latexindent\n        mv -f latexindent /tmp/texlive/bin/x86_64-linux/latexindent\n        chmod +x /tmp/texlive/bin/x86_64-linux/latexindent\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - uses: actions/setup-node@v6\n      with:\n        node-version: '20'\n    - run: |\n        perl -v\n        perl -MCwd -e 'print $Cwd::VERSION.\"\\n\";'\n    - run: |\n        latex -v\n        latexmk -v\n    - run: |\n        npm ci\n        npm run compile\n    - name: Run tests\n      run: xvfb-run -a npm run test | grep -v 'Failed to connect to the bus:\\|is not in the list of known options\\|gpu_memory_buffer_support_x11' ; test ${PIPESTATUS[0]} -eq 0\n    - name: Archive test logs\n      if: always()\n      uses: actions/upload-artifact@v7\n      with:\n        name: test-log\n        path: test/log/**/*.log"
  },
  {
    "path": ".github/workflows/texlive_on_mac.yml",
    "content": "name: TeX Live on macOS\nenv:\n  cache-version: v12\non: [push, pull_request]\n\npermissions:\n  contents: read\n\njobs:\n  macosx:\n    runs-on: macos-15\n    timeout-minutes: 30\n    steps:\n    - uses: actions/checkout@v6\n    - name: Set up PATH\n      run: |\n        echo \"/Users/runner/texlive/bin/x86_64-darwin\" >> $GITHUB_PATH\n        echo \"/Users/runner/texlive/bin/universal-darwin\" >> $GITHUB_PATH\n    - name: Cache TeX Live\n      id: cache-texlive\n      uses: actions/cache@v5\n      with:\n        path: /Users/runner/texlive\n        key: ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n        restore-keys: |\n          ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n    - name: Download install-tl.zip\n      run: |\n        curl -s -O -L http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip\n        unzip -q install-tl.zip\n        mv install-tl-2* install-tl-dir\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Run install-tl\n      run: |\n        install-tl-dir/install-tl --profile test/config/texlive_mac.profile\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Run tlmgr install\n      run: |\n        tlmgr install collection-latex\n        tlmgr install import subfiles latexmk makeindex\n        tlmgr install chktex lacheck latexindent\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Download latexindent binary\n      run: |\n        curl -s -O -L http://mirrors.ctan.org/support/latexindent/bin/macos/latexindent\n        [ -d /Users/runner/texlive/bin/x86_64-darwin/ ] && mv -f latexindent /Users/runner/texlive/bin/x86_64-darwin/latexindent && chmod +x /Users/runner/texlive/bin/x86_64-darwin/latexindent || [ -d /Users/runner/texlive/bin/universal-darwin/ ] && mv -f latexindent /Users/runner/texlive/bin/universal-darwin/latexindent && chmod +x /Users/runner/texlive/bin/universal-darwin/latexindent\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - uses: actions/setup-node@v6\n      with:\n        node-version: '20'\n    - run: |\n        perl -v\n        perl -MCwd -e 'print $Cwd::VERSION.\"\\n\";'\n    - run: |\n        latex -v\n        latexmk -v\n    - run: |\n        npm ci\n        npm run compile\n    - name: Run tests\n      run: npm run test\n    - name: Archive test logs\n      if: always()\n      uses: actions/upload-artifact@v7\n      with:\n        name: test-log\n        path: test/log/**/*.log\n"
  },
  {
    "path": ".github/workflows/texlive_on_win.yml",
    "content": "name: TeX Live on Windows\nenv:\n  cache-version: v12\non: [push, pull_request]\n\npermissions:\n  contents: read\n\njobs:\n  windows:\n    runs-on: windows-latest\n    timeout-minutes: 40\n    steps:\n    - name: Prepare git\n      run: git config --global core.autocrlf false\n    - uses: actions/checkout@v6\n    - name: Set up PATH\n      run: |\n        echo \"C:\\strawberry\\c\\bin;C:\\strawberry\\perl\\site\\bin;C:\\strawberry\\perl\\bin\" >> $GITHUB_PATH\n        echo \"D:\\texlive\\bin\\windows\" >> $GITHUB_PATH\n      shell: bash\n    - name: Cache TeX Live\n      id: cache-texlive\n      uses: actions/cache@v5\n      with:\n        path: D:\\texlive\n        key: ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n        restore-keys: |\n          ${{ env.cache-version }}-${{ runner.os }}-texlive-essential\n    - name: Download install-tl.zip\n      run: |\n        curl -s -O -L http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip\n        unzip -q install-tl.zip\n        mv install-tl-2* install-tl-dir\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Run install-tl-windows.bat\n      run: |\n        install-tl-dir\\install-tl-windows.bat --profile test\\config\\texlive_windows.profile\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n      shell: cmd\n    - name: Run tlmgr install\n      run: |\n        tlmgr install collection-latex\n        tlmgr install import subfiles latexmk makeindex\n        tlmgr install chktex lacheck latexindent\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - name: Download latexindent binary\n      run: |\n        curl -s -O -L http://mirrors.ctan.org/support/latexindent/bin/windows/latexindent.exe\n        mv -Force \"latexindent.exe\" \"D:\\texlive\\bin\\windows\\latexindent-binary.exe\"\n      if: steps.cache-texlive.outputs.cache-hit != 'true'\n    - uses: actions/setup-node@v6\n      with:\n        node-version: '20'\n    - run: |\n        perl -v\n        perl -MCwd -e 'print $Cwd::VERSION.\"\\n\";'\n    - run: |\n        latex -v\n        latexmk -v\n    - run: |\n        npm ci\n        npm run compile\n    - name: Run tests\n      run: npm run test\n    - name: Archive test logs\n      if: always()\n      uses: actions/upload-artifact@v7\n      with:\n        name: test-log\n        path: test/log/**/*.log\n"
  },
  {
    "path": ".gitignore",
    "content": "out/\n.vscode-test/\nnode_modules/\ndev/expl3.cwl\ndev/unimathsymbols.txt\ndev/cwl/\nVERSION\n.idea/\n__pycache__/\n.mypy_cache/\n.pytest_cache/\n.venv/\n.vscode/.ropeproject\n.eslintcache\ntest/fixtures/testground/\ntest/fixtures/multiroot/\ntest/fixtures/**/*.dvi\ntest/fixtures/**/*.log\ntest/fixtures/**/*.synctex*\ntest/fixtures/**/*.fdb_latexmk\ntest/fixtures/**/*.blg\ntest/fixtures/**/*.out\ntest/log/\n/*.vsix\n.DS_Store\ncoverage/\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n\t// See http://go.microsoft.com/fwlink/?LinkId=827846\n\t// for the documentation about the extensions.json format\n\t\"recommendations\": [\n\t\t// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp\n\t\t\"dbaeumer.vscode-eslint\"\n\t]\n}\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "// A launch configuration that compiles the extension and then opens it inside a new window\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"Run Extension\",\n            \"type\": \"extensionHost\",\n            \"request\": \"launch\",\n            \"runtimeExecutable\": \"${execPath}\",\n            \"args\": [\n                \"--extensionDevelopmentPath=${workspaceFolder}\"\n            ],\n            \"outFiles\": [\n                \"${workspaceFolder}/out/src/**/*.js\"\n            ],\n            \"debugWebviews\": true,\n            \"preLaunchTask\": \"task-watch-all\"\n        },\n        {\n            \"name\": \"Unit Tests\",\n            \"type\": \"extensionHost\",\n            \"request\": \"launch\",\n            \"runtimeExecutable\": \"${execPath}\",\n            \"args\": [\n                \"${workspaceFolder}/test/fixtures/unittest\",\n                \"--extensionDevelopmentPath=${workspaceFolder}\",\n                \"--extensionTestsPath=${workspaceFolder}/out/test/units/index\"\n            ],\n            \"outFiles\": [\n                \"${workspaceFolder}/out/src/**/*.js\",\n                \"${workspaceFolder}/out/test/**/*.js\"\n            ],\n            \"preLaunchTask\": \"task-watch-all\",\n            \"env\": {\n                \"LATEXWORKSHOP_UNIT\": \"\"\n            }\n        },\n        {\n            \"name\": \"Test testground\",\n            \"type\": \"extensionHost\",\n            \"request\": \"launch\",\n            \"runtimeExecutable\": \"${execPath}\",\n            \"args\": [\n                \"${workspaceFolder}/test/fixtures/testground\",\n                \"--extensionDevelopmentPath=${workspaceFolder}\",\n                \"--extensionTestsPath=${workspaceFolder}/out/test/suites/index\"\n            ],\n            \"outFiles\": [\n                \"${workspaceFolder}/out/src/**/*.js\",\n                \"${workspaceFolder}/out/test/**/*.js\"\n            ],\n            \"preLaunchTask\": \"task-watch-all\",\n            \"env\": {\n                \"LATEXWORKSHOP_SUITE\": \"\"\n            }\n        },\n        {\n            \"name\": \"Test multiroot\",\n            \"type\": \"extensionHost\",\n            \"request\": \"launch\",\n            \"runtimeExecutable\": \"${execPath}\",\n            \"args\": [\n                \"${workspaceFolder}/test/fixtures/multiroot/resource.code-workspace\",\n                \"--extensionDevelopmentPath=${workspaceFolder}\",\n                \"--extensionTestsPath=${workspaceFolder}/out/test/suites/index\"\n            ],\n            \"outFiles\": [\n                \"${workspaceFolder}/out/src/**/*.js\",\n                \"${workspaceFolder}/out/test/**/*.js\"\n            ],\n            \"preLaunchTask\": \"task-watch-all\",\n            \"env\": {\n                \"LATEXWORKSHOP_SUITE\": \"\"\n            }\n        },\n        {\n            \"name\": \"Python: Current File\",\n            \"type\": \"python\",\n            \"request\": \"launch\",\n            \"program\": \"${file}\",\n            \"console\": \"integratedTerminal\"\n        }\n    ]\n}"
  },
  {
    "path": ".vscode/settings.json",
    "content": "// Place your settings in this file to overwrite default and user settings.\n{\n    \"files.exclude\": {\n        \"out\": true // set this to true to hide the \"out\" folder with the compiled JS files\n    },\n    \"search.exclude\": {\n        \"out/**\": true // set this to false to include \"out\" folder in search results\n    },\n    \"typescript.tsdk\": \"./node_modules/typescript/lib\",  // we want to use the TS server from our node_modules folder to control its version\n    \"typescript.preferences.importModuleSpecifier\": \"relative\",\n    \"eslint.validate\": [\n        \"javascript\",\n        \"javascriptreact\",\n        \"typescript\",\n        \"typescriptreact\"\n    ]\n}\n"
  },
  {
    "path": ".vscode/tasks.json",
    "content": "// See https://go.microsoft.com/fwlink/?LinkId=733558\n// for the documentation about the tasks.json format\n{\n    \"version\": \"2.0.0\",\n    \"tasks\": [\n        {\n            \"label\": \"task-watch-src\",\n            \"type\": \"npm\",\n            \"script\": \"watch-src\",\n            \"problemMatcher\": \"$tsc-watch\",\n            \"isBackground\": true,\n            \"presentation\": {\n                \"reveal\": \"never\",\n                \"group\": \"buildWatchers\"\n            },\n            \"group\": \"build\",\n            \"detail\": \"Watch ./src\"\n        },\n        {\n            \"label\": \"task-watch-viewer\",\n            \"type\": \"npm\",\n            \"script\": \"watch-viewer\",\n            \"problemMatcher\": \"$tsc-watch\",\n            \"isBackground\": true,\n            \"presentation\": {\n                \"reveal\": \"never\",\n                \"group\": \"buildWatchers\"\n            },\n            \"group\": \"build\",\n            \"detail\": \"Watch ./viewer\"\n        },\n        {\n            \"label\": \"task-watch-all\",\n            \"dependsOn\": [\n                \"task-watch-src\",\n                \"task-watch-viewer\"\n            ],\n            \"group\": {\n                \"kind\": \"build\",\n                \"isDefault\": true\n            },\n            \"detail\": \"Watch ./src and ./viewer\",\n            \"problemMatcher\": []\n        }\n    ]\n}\n"
  },
  {
    "path": ".vscodeignore",
    "content": ".vscode/\n.vscode-test/\ncoverage/\nout/data/\nout/dev/\nout/resources/\nout/snippets/\nout/test/\ntest/\nsrc/**/*.ts\nsrc/**/*.md\nsamples/\ntypes/\nviewer/**/*.ts\n.devcontainer/\n.github/\n.gitignore\ntsconfig.json\ntsconfig.eslint.json\ntsconfig.eslint.viewer.json\nviewer/tsconfig.json\ndev/\ndemo_media/\nVERSION/\nVERSION\n.idea/\n__pycache__/\n.mypy_cache/\n.pytest_cache/\n.venv/\n.eslintcache\n.eslintignore\n\ninstall-tl*\n\n**/*.map\nnode_modules/**/*.d.ts\n\nnode_modules/@napi-rs/\nnode_modules/fsevents/\n\nnode_modules/pegjs-backtrace/\nnode_modules/commander/\n\nnode_modules/pdfjs-dist/build/*.min.js\nnode_modules/pdfjs-dist/build/*.min.mjs\nnode_modules/pdfjs-dist/build/*.sandbox.*\nnode_modules/pdfjs-dist/legacy/\nnode_modules/pdfjs-dist/image_decoders/\nnode_modules/pdfjs-dist/lib/\nnode_modules/pdfjs-dist/web/\nnode_modules/web-streams-polyfill/\n\nnode_modules/mathjax-full/components/\nnode_modules/mathjax-full/es5/\nnode_modules/mathjax-full/ts/\nnode_modules/mathjax-full/js/output/chtml/\nnode_modules/mathjax-full/js/input/asciimath/\nnode_modules/mathjax-full/js/input/mathml/\n\nnode_modules/speech-rule-engine/\nnode_modules/wicked-good-xpath/\nnode_modules/xmldom-sre/\nnode_modules/mj-context-menu/\nnode_modules/esm/\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Change Log\n\n## [10.13.1] - 2026-02-26\n\n### Fixed\n- Fix expansion of `%OUTDIR%` in `%AUXDIR%`.\n\n## [10.13.0] - 2026-02-24\n\n### Added\n- [#4781] Add `bibtex-format.case.type` to format the case of entry types in bibtex.\n- [#4786] Add `auxDir` setting.\n- [#4792] Improved magic comments configuration.\n  - Add new configuration `latex.build.enableMagicComments` and replace `forceRecipeUsage`.\n\n### Fixed\n- [#4714] Improved `outdir` for bibtex.\n- [#4775] Citation hover with whitespace.\n- [#4778] Compute AST on `stripCommentsAndVerbatim` return.\n- [#4790] Parse groups to build the `MacroPair` tree.\n- [#4795] Remove TiKZ snippet view.\n\n## [10.12.2] - 2026-01-07\n\n### Fixed\n- Fix an extension packaging and publishing issue.\n\n## [10.12.1] - 2026-01-07\n\n### Fixed\n- [#4756] Set error flag when \"no page of output\".\n- [#4757] Non-case sensitive error match.\n- [#4763] Fix scrollbar color inconsistency in dark mode.\n- [#4767] Ignore `.gls` files to avoid infinite build loop.\n- [#4771] Add `**/*.aux` and `**/*.out` to `latex.watch.files.ignore`.\n\n## [10.12.0] - 2025-12-11\n\n### Added\n- [#4736] Parse \"No pages of output\" latex log message.\n- [#4738, #4742] Add LaTeX formatting provider that converts math delimiters.\n  - A new config item `format.fixMath.enabled` is added, default to `false`.\n- [#4750] Add a setting to decide from which directory to run the recipes.\n  - A new config item `latex.build.fromWorkspaceFolder` is added, default to `false`.\n- [#4752] Log `tex-fmt` `stderr` output on non-zero exit code.\n\n### Fixed\n- [#4743] `tex-fmt` subprocess halting when pipe buffer for `stderr` is full.\n\n\n## [10.11.4] - 2025-11-16\n\n### Fixed\n- [#4724] Add the missing WASM support for PDF.js v5.4.394.\n- [#4726] Detect conTeXt root file from active editor.\n- [#4727] Disable PDFjs partial rendering.\n\n## [10.11.3] - 2025-11-11\n\n### Fixed\n- [#4708] `checkcites` can read the output dir.\n- [#4709] PDF viewer respects custom fore/background colors.\n- [#4710] Use correct paths for PDF viewer cmaps and standard fonts.\n- [#4716] Re-enable building `.dtx` and `.ltx` files.\n- [#4718] Parse `stderr` when the build process crashes.\n- [#4721] Honor placeholders in `tex-fmt.args`.\n\n## [10.11.2] - 2025-11-04\n\n### Fixed\n- [#4700,#4705] PDFs remain in dark mode in the PDF viewer when OS theme is dark.\n\n## [10.11.1] - 2025-11-04\n\n### Fixed\n- [#4700] PDFs remain in dark mode in the PDF viewer when OS theme is dark.\n\n## [10.11.0] - 2025-11-03\n\n### Added\n- Update PDF.js to v5.4.394.\n- Sort month bibtex entry by context.\n- [#4662] Add macro for double vertical bar.\n- [#4691] Add automatic LaTeX quote normalization.\n\n### Changed\n- [#4685] Make `intellisense.triggers.latex` fully customizable: default `\\` `,` `{` `}` triggers can be disabled.\n\n### Fixed\n- Update documentation of `latex.extraExts`.\n- Prevent `\\@ifnextchar{` to be considered as a starting pair.\n- Fix trailing underscore issue with bracket pair colorizer.\n- [#4649] Never control the invert css of PDF toolbar or viewer scrollbar.\n- [#4654] Tweak `none` LaTeX formatter notification.\n- [#4658] `! Internal error:` indicates LaTeX log.\n- [#4672] Specify the embedded languages each time a grammar is listed in contributes.grammars.\n- [#4673] Reset all diagnostics (`biber`, `bibtex` and `latex`) when starting a new recipe or external command.\n- [#4679] Parse glossary bib file defined by `\\glsbibdata`.\n- [#4684] Hover on `\\RequirePackage`.\n- [#4687] Ignore `label=` inside `itemize`.\n\n## [10.10.2] - 2025-08-14\n\n### Fixed\n- [#4642] `enumitem` package labels considered duplicate.\n\n## [10.10.1] - 2025-08-07\n\n### Fixed\n- (#4602,#4605) A new configuration variable is added `latex.autoBuild.onSave.files.ignore` to list which file extension should not trigger a build.\n  - The default is to ignore `.sty` and `.cls`.\n  - Saving a `.tex` with `latex` id or a bib file triggers a build if build on save is set.\n- (#4605) Make `langid` of `doctex` LaTeX rather than TeX.\n- (#4609) Enable completion for new language IDs `latex-class`, `latex-package`, `doctex-installer`\n- (#4610) Activate keybindings for new language IDs.\n- (#4617) Add `subfileinclude` parsing aside `subfile`.\n- (#4626) Path `\\wsl` is not recognized by compile-on-save and synctex.\n- (#4630) Improve catching `label=` in environment args.\n- (#4632). Treat `subeqnarray` as `eqnarray`.\n- (#4636). Show an error message box when cleaning fails.\n\n## [10.10.0] - 2025-06-03\n\n### Added\n- (#4599) Add `view.pdf.sidebar.*` configs to store sidebar behavior.\n\n### Changed\n- (#4592) Refine language, grammar, and snippet contributions.\n\n### Fixed\n- (#4590) (Internal) Check if file is polled before comparing file size.\n- (#4603) Synctex does not work from second row in spread mode.\n\n## [10.9.1] - 2025-05-06\n\n### Fixed\n- Use a dedicated watcher for glossary bib files to avoid parsing every bib file twice, including true bibliography\nfiles.\n- (#4557) Use `newcommand` instead of `DeclareRobustCommand` in MathJax preview.\n- (#4566) Add path suggestion to `adjustbox` macros.\n- (#4586) Fix formatting selection with tab indent inserts verbal `\\t`.\n\n## [10.9.0] - 2025-03-27\n\n### Added\n- (#4308) LiveShare integration.\n  - This is an experimental feature. Please read [wiki](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures#Collaborative-editing-using-Live-Share-(experimental)) before use.\n  - Three thousand thanks to @quoc-ho and @krokosik!\n- (#4384) Add a `checkcites` command to check unused citations.\n\n### Fixed\n- (#4557) Do not include macro defs with args in MathJax rendering.\n\n## [10.8.0] - 2025-03-04\n\n### Added\n- (#4502) Handle `ids` biblatex field.\n- (#4509) Add a config to control pdf reload transition animation.\n  - `latex-workshop.view.pdf.reload.transition`\n- (#4522) Add a config to control the filter text of citation suggestions.\n  - `intellisense.citation.filterText`\n\n\n### Fixed\n- (#4513) Allow PDF refresh on change during build if `-f` and `nonstopmode` are present.\n- (#4520) Trigger citation completion for `[a-zA-Z]*cquote`.\n- (#4528) Use double bracket to render `\\ll(rr)bracket` in MathJaX.\n- (#4534) Improve doctex folding.\n\n## [10.7.5] - 2025-01-06\n\n### Fixed\n- The minimal supported VS Code version is December 2024 due to changes of PDF.js (particularly the use of css `round()`).\n\n## [10.7.4] - 2025-01-03\n\n### Fixed\n- (#4496) (Correct fix) PDF viewer trimming failed due to PDF.js CSS canvas style changes.\n\n## [10.7.3] - 2025-01-03\n\n### Fixed\n- (#4495) PDF viewer trimming failed due to PDF.js CSS canvas style changes.\n\n## [10.7.2] - 2025-01-03\n\n### Fixed\n- Upgrade PDF.js to v4.10.38.\n- Spread mode should correctly register synctex handler.\n- (#4437) PDF viewer can be blurry after rescaling\n- (#4491) Parse glossary bib files to populate intellisense.\n\n## [10.7.1] - 2024-12-24\n\n### Fixed\n- (#4317) Logs of failed xelatex compile should be parsed.\n- (#4474) Fix newline handling for tex-fmt input and output.\n- (#4476) Update LaTeX3 completion to `l3kernel` 2024-11-02.\n- (#4481) `\\input` family file names can have double quotes.\n- (#4483) Update default arguments for tex-fmt to `--nowrap` instead of `--keep`.\n- (#4484) Disable open, print, save handlers of pdf viewer.\n\n## [10.7.0] - 2024-12-03\n\n### Added\n- Update pdf.js to v4.9.124.\n  - This version fixes #4468.\n\n## [10.6.1] - 2024-11-27\n\n### Fixed\n- Correct binary file polling comparison.\n- (#4469) PDF viewer spread misaligned due to bottom margin.\n\n## [10.6.0] - 2024-11-25\n\n### Added\n- Update pdf.js to v4.8.69.\n- (#4466) Handle LaTeX files with non `.tex` extension.\n  - This includes a new config item `latex.extraExts`.\n  - See https://github.com/James-Yu/LaTeX-Workshop/issues/4457#issuecomment-2491096409 for usage.\n\n### Fixed\n- Binary file watcher polling should not await.\n  - This fix will benefit PDF change watcher.\n- (#4448) Fix link highlighting in `\\ref` and `\\input` for non-word characters.\n- (#4459) Additional menu buttons in PDF viewer drop down menu no longer hide menu on click.\n\n## [10.5.6] - 2024-10-31\n\n### Fixed\n- Remove bottom 10px margin of last page in PDF viewer.\n- (#4449) Add a warning message when bibtex parser failed.\n\n## [10.5.5] - 2024-10-22\n\n### Fixed\n- Update `unified-latex` to version 1.8.1.\n\n## [10.5.4] - 2024-10-17\n\n### Fixed\n- (#4426) Code folding for DocTeX\n- (#4440) Remove `dev/packages/expl3.json`.\n- (#4441) Remove `%` components from macro suggestion snippets.\n\n## [10.5.3] - 2024-10-16\n\n### Fixed\n- Hide pdf viewer sidebar notification green dot.\n- (#4438) Fix link to `latex-workshop.texcount.autorun` setting.\n\n## [10.5.2] - 2024-10-14\n\n### Fixed\n- (#4436) Tweaked toolbar showing/hiding logic.\n\n## [10.5.1] - 2024-10-14\n\n### Fixed\n- Suggestions of packages defined in local class files can now be provided.\n- (#4430) Escape `$` when surround macros.\n- (#4432) Upgrade to PDF.js 4.7.76, tweak toolbar hiding.\n  - Add a config `view.pdf.toolbar.hide.timeout` to control toolbar hiding timeout.\n- (#4433) Stringify chunk before merging chunks during formatting breaks character at the end.\n- (#4434) Deduplicate package options.\n\n## [10.5.0] - 2024-10-08\n\n### Added\n- (#4423) A new flicker-free pdf refresh solution inspired by tamuratak/latex-toybox.\n- (#4427) Define tex-fmt arguments in `formatting.tex-fmt.args`\n  - This config replaces the previous `formatting.tex-fmt.doNotWrap`.\n\n### Fixed\n- (#3783) Fix a bug of incorrect suggestion when auto-completing inside `\\\\end{}`.\n- (#4420) Add `\\left|..\\right|` snippet.\n\n## [10.4.2] - 2024-10-02\n\n### Fixed\n- (#4404) Use short titles of `\\caption` in outline.\n- (#4406) Add `--print` to `tectonic` tool to generate compile message.\n- (#4414) TextLayer in pdf viewer is rotated by pdf.js, so no further rotation.\n- (#4415) Disable flicker-free PDF refresh when spread mode is on.\n- (#4416) PDF viewer uses a l10n lang selector to determine translation.\n\n## [10.4.1] - 2024-09-20\n\n### Fixed\n- (#4397) When formatting a selection of `latex`, consider the leading spaces.\n- (#4401) Tweaked macro suggestion order, prioritize `\\(` and degrade starred macros.\n\n### Upgraded\n- Upgrade to PDF.js 4.6.82\n\n## [10.4.0] - 2024-09-18\n\n### Added\n- (#4379) Support `tex-fmt` as another LaTeX formatter.\n  - There are a few config item changes related to `latexindent`.\n\n### Fixed\n- Macro suggestions filtered and sorted by both label and argument signature.\n- (#4347) `--max-print-line` should be added to string when magic tex argument is present under MikTeX.\n- (#4380) Wrong auto-completion after typing `\\{`.\n\n## [10.3.2] - 2024-09-11\n\n### Fixed\n- (#4374) Extra brace in default macros.\n\n## [10.3.1] - 2024-09-10\n\n### Fixed\n- (#4372) Include macro name back into .json file snippets.\n  - This change may require re-generation of `.json` files using the new `parse-cwl.ts` script in `dev/` folder, even already done in version `10.3.0`.\n\n## [10.3.0] - 2024-09-09\n\n### Added\n- (#4359) Support file watching on virtual file systems\n- (#4363) `RequirePackage` and `RequirePackageWithOptions` suggests package names.\n- (#4364) Suggestion `keyvals` provide possible values if defined in `.cwl` files.\n- (#4368) Include base KOMA macro/env in KOMA art, book, rept.\n\n### Changed\n- (#4367) Adopt a new package intellisense file format.\n  - This change is necessary to make package suggestions extensible.\n  - You may need to regenerate package intellisense `.json` files using the new `parse-cwl.ts` script in `dev/` folder.\n\n### Fixed\n- (#4360) Parse `pdflatex --version` output correctly for MikTeX detection.\n- (#4369) Browser viewer should not wait for vscode panel `'restore_state'`.\n\n## [10.2.1] - 2024-08-30\n\n### Fixed\n- (#4354) Reverted #4347.\n  - #4347 was a local issue.\n\n## [10.2.0] - 2024-08-30\n\n### Added\n- Add bibTeX field content suggestions\n- (#4331) Add highlighting to the extension logs.\n- (#4338) Control showing over/underfull warning seperately by `message.badbox.show`.\n\n### Fixed\n- (#4304) Reveal PDF on SyncTeX if it's invisible instead of create a new tab.\n- (#4306) No PDF refresh on code-server.\n- (#4313) Include `(arg)` macro signature in package intellisense.\n- (#4334) PDF viewer position retained across vscode reloads.\n- (#4335) Handle bibtex parsing exception.\n- (#4336) Record past active latex editor instead of just file path.\n- (#4347) `%!TEX/%!BIB options` accept multiple bash args and handles spaces.\n- (#4339) Handle cwl package option in format `#keyvals:\\geometry,\\usepackage/geometry#c`.\n\n## [10.1.0] - 2024-06-27\n\n### Added\n- (#4301) Multi-language support.\n\n### Fixed\n- (#4300) Prevent concurrent pdf refresh and queue a refresh if rate-limited.\n- (#4303) Support new command macros by `etoolbox`.\n\n## [10.0.0] - 2024-06-24 - Viewer Update\n\n### General\n- We revamped the UX experience when working with the built-in PDF viewer.\n  - (#4295) Flicker-free PDF refreshing contributed by @quoc-ho\n  - (#4292) New page trimming implementation.\n  - Upgrade PDF.js to v4.3.136\n\n### Changed\n- Now the trimming select UI element is moved to the dropdown menu of viewer.\n- Now the config item `latex-workshop.view.pdf.trim` has a new definition and usage.\n\n## [9.21.1] - 2024-06-24\n\n### Fixed\n- (#4294) Internal links in pdf viewer do not scroll to position.\n\n## [9.21.0] - 2024-06-23\n\n### Added\n- Upgrade pdf.js to v4.2.67.\n- Add all package suggestions to repo, let users download.\n- Allow more relative paths in `latex.texDirs` and `intellisense.package.dirs`.\n- (#4222) Customize docker (or podman) path.\n- (#4277) Add a close-env suggestion after `\\begin{env}`.\n\n### Changed\n- (#4281) Try use `PDFViewerApplication.load` in viewer refresh.\n- (#4292) Better viewer trimming.\n\n### Fixed\n- Fix a duplicate children parsing bug in caching.\n- `\\putbib` can also have `\\subfix`.\n- Avoid included bib circular inclusion.\n- When finding root from workspace, we don't care if it is cached or not.\n\n## [9.20.1] - 2024-04-29\n\n### Fixed\n- Update grammars.\n- (#4215) Add `tkz-euclide` suggestions, update some others\n- (#4233) Cache outdir/auxdir per root file.\n- (#4239) Use synctex.js for backward sync (CJK-compatible)\n- (#4243) Fix WebSocket reconnect mechanism.\n- (#4247) Fix racing build-on-save when multiple files are edited.\n- (#4252) `intellisense.label.command` should not affect reference parsing.\n\n## [9.20.0] - 2024-04-15\n\n### Added\n- (#4194) Add a more accurate rectangle indicator for SyncTeX to PDF.\n  - Config `synctex.indicator.enabled` is changed to `synctex.indicator` and now is a string config.\n\n### Changed\n- Now calling SyncTeX will prioritize binary over synctex.js.\n  - Makes `synctex.synctexjs.enabled` obsolete.\n\n### Fixed\n- (#4215) Use `kpsewhich.class.enabled` and `kpsewhich.bibtex.enabled` to control `kpsewhich`.\n  - Replaces `kpsewhich.enabled`.\n- (#4227) Ignore label defs in `xparse` macros.\n\n## [9.19.2] - 2024-04-04\n\n### Fixed\n- Prevent `.aux` and `.out` file changes from triggering auto-build\n- (#4207) Cursor tracing in structure works across files with 2+ level differences.\n- ($4220) Synctex does not work while using vscode in browser.\n\n## [9.19.1] - 2024-03-12\n\n### Fixed\n- `auxdir` is automatically determined from last run recipe.\n  - `outdir` also, for testing purpose.\n- (#4193) Optional capture pattern for `\\subfix` when including `bib` files.\n- (#4195) `bib` watcher follows `latex.watch.files.ignore`.\n- (#4197) Use BibTeX log parsing rules for its variants.\n\n## [9.19.0] - 2024-03-06\n\n### Added\n- (#4173) Add source to warning messages.\n- (#4181) Missing reference warnings now located precisely.\n\n### Fixed\n- Fix incorrect cursor position in math preview when cursor is at line > 0.\n- (#4166) Add deletion polling for non-binary files.\n- (#4167) PDF watcher never resets now.\n- (#4184) `kpsewhich` caches results.\n- (#4184) `kpsewhich.enabled` correctly controls calls to `kpsewhich`.\n- (#4188) Cleaning with `latexmk` honors `outdir`.\n\n## [9.18.2] - 2024-02-18\n\n### Fixed\n- Hold PDF refresh for 1s after compile.\n- Snippet and math preview panels use networked resource.\n- (#4156) Store the math tex of references on parsing.\n- (#4162) Snippet view can insert on any langID.\n\n## [9.18.1] - 2024-02-14\n\n### Fixed\n- (#4134) Add a new config `intellisense.subsuperscript.enabled` to enable/disable sub- and super-script intellisense\n  - There is a related feature request in [#4159](https://github.com/James-Yu/LaTeX-Workshop/issues/4159) to be implemented related to this.\n- (#4151) Update LaTeX3 completion.\n- (#4153) Fix wrong item label in outline for macros and envs in `doctex`.\n\n## [9.18.0] - 2024-01-10\n\n### Added\n- (4126) Add intellisense for macros defined by `\\NewDocumentCommand`.\n\n### Fixed\n- (#4111) Snippet view cannot find proper editor.\n- (#4127) Remove macro star when rendering MathJax.\n- (#4131) Use `unified-latex-util-to-string` to stringify macro definitions.\n\n## [9.17.0] - 2024-01-02\n\n### Added\n- (#4114) Support `\\boldsymbol`, `\\bm` and other `mathtools` macros in preview.\n- (#4118) Sub- and superscript auto-completion.\n- (#4119) Enable VIM-like scrolling by shift+J, K, H, L in PDF viewer.\n\n### Fixed\n- (#4104) PDF viewer cannot revert to no spread.\n- (#4105) Retry MathJax if failed rendering with defined macros.\n- (#4116) Use `newcommand` in place of `providecommand` for MathJax.\n\n## [9.16.1] - 2023-12-21\n\n### Fixed\n- (#4103) Fix wrong boundary calculation when macros are the last argument in new command definitions.\n\n## [9.16.0] - 2023-12-19\n\n### Added\n- Tweak the PDF synctex indicator appearance, less intrusive.\n- A new config `view.outline.follow.editor` to control whether scrolling the editor will also reveal corresponding structure items.\n- (#4098) SyncTeX after clicking structure item.\n  - This behavior is controlled by a new config `view.outline.sync.viewer`.\n\n### Fixed\n- (#4045) Use AST to parse new commands for preview.\n\n## [9.15.8] - 2023-12-15\n\n### Fixed\n- (#4096) Color options in pdf editor not working since v9.15.1.\n\n## [9.15.7] - 2023-12-13\n\n### Fixed\n- (#4093) PDF viewer restores scale value after reload.\n\n## [9.15.6] - 2023-12-13\n\n### Changed\n- Update to PDF.js v4.0.269.\n\n### Fixed\n- (#4092) PDF reload at file change.\n\n## [9.15.5] - 2023-12-12\n\n### Fixed\n- (#4090) Add the missing docker envvar setter.\n\n## [9.15.4] - 2023-12-12\n\n### Fixed\n- (#4089) Fix cmap files location in pdfjs-dist.\n\n## [9.15.3] - 2023-12-12\n\n### Changed\n- Try esbuild @unified-latex packages to reduce `.vsix` size.\n\n## [9.15.2] - 2023-12-12\n\n### Fixed\n- Excessively large `.vsix` package.\n\n## [9.15.1] - 2023-12-12\n\n### Changed\n- Engineering changes.\n- Hold PDF refresh only when building\n\n### Fixed\n- Fix a !LW recipe not found fallback issue.\n- (#4063) Parse \\item args for env pairs.\n- (#4068) Respect `latexmk`+`subfile` when creating output subfolders.\n- (#4069) Scan for `label={...}` as the second argument of an environment.\n- (#4076) Fail-safe for setting PDF viewer state.\n- (#4087) Regain editor focus after view in tab.\n\n## [9.15.0] - 2023-11-16\n\n### Added\n- (#3966) Add option to include filename in status bar.\n\n### Fixed\n- Update to PDF.js v4.0.189.\n- (#4048) Gracefully fail `mkdirSync` during compile.\n- (#4052) Viewer refresh checks all steps instead of the last one.\n- (#4054) Custom editor follows `tab.editorGroup`.\n\n## [9.14.1] - 2023-10-03\n\n### Fixed\n- Updates: cwl, unified, pdfjs.\n- (#3962, #4022) Fix frozen hand tool if set in config.\n- (#4021) Parse nested @string in bibtex.\n- (#4023) Enable keybinds on doctex.\n\n## [9.14.0] - 2023-09-19\n\n### Added\n- (#3981) Add a new `synctex.indicator.enabled` config item to control the visibility of the SyncTeX indicator in PDF.\n- (#3999) Display missing character warning in the Problems pane.\n- (#4017) Show appendix numbering in structure.\n\n### Fixed\n- (#3982) Make `\\bibliography` accept a multiline argument.\n- (#3983) Compute section ranges correctly once nested.\n- (#3984) Fix newlines and indentations for BTA and BTB snippets.\n- (#4003) Regain focus after creating viewer tab.\n\n## [9.13.4] - 2023-08-06\n\n### Fixed\n- (#3978) Correctly parse `\\providecommand` commands.\n- (#3978) Fix the tab sequence of arguments of new commands.\n\n## [9.13.3] - 2023-07-24\n\n### Fixed\n- Use `tab` as the default viewer fallback.\n\n## [9.13.2] - 2023-07-24\n\n### Fixed\n- Update to PDF.js v3.8.162.\n- Default viewer with `customEditor`.\n  - The original mode is renamed to `legacy`.\n- (#3973) Tweak structure refresh conditions.\n\n\n## [9.13.1] - 2023-07-17\n\n### Fixed\n- (#3967) `kpsewhich` should be called from the current root or workspace folder.\n\n## [9.13.0] - 2023-07-14\n\n### Added\n- (#3961) Add a \"custom editor\" viewer mode.\n- (#3965) Use `kpsewhich` to find package imports defined in `.cls`.\n\n### Changed\n- Enable `kpsewhich` by default.\n\n### Fixed\n- (#3960) Support `\\DeclarePairedDelimiterX(PP)` and `\\DeclareRobustCommand`.\n- (#3963) Arguments in AST can have labels, envs, and glossaries.\n\n## [9.12.3] - 2023-07-07\n\n### Fixed\n- Even faster structuring on projects with a large number of sub-files.\n- (#3573) Cache.content can be dirty.\n- (#3937) Support globs when updating bib paths.\n- (#3943) Hover hint considers package and optional arguments.\n- (#3946) Env pair should use dirty content AST.\n- (#3947) Macros must have a mandatory argument in order to appear in outline.\n- (#3948) Re-implement `mathtools` and `amsopn` new command support.\n- (#3950) Child tex wrongly all registered to root.\n\n## [9.12.2] - 2023-06-22\n\n### Fixed\n- Very fast cache element parsing.\n- Input files do not nest in outline.\n\n## [9.12.1] - 2023-06-21\n\n### Changed\n- Update grammar files to https://github.com/jlelong/vscode-latex-basics/releases/tag/v1.5.3\n\n### Fixed\n- None blocking cache parsing.\n- (#3941) Wrong replace range of browser citation.\n\n## [9.12.0] - 2023-06-19\n\n### Added\n- (#3934) Now the content parsing and caching system is based on `unified-latex`.\n  - We expect to encounter many issues and bugs. Please feel free to create ones at https://github.com/James-Yu/LaTeX-Workshop/issues after searching.\n\n## [9.11.5] - 2023-06-13\n\n### Fixed\n- (#3875,#3914) `onSave` triggers on included bibs and non-TeX children.\n- (#3897) Outline and structure won't work if the first section is starred.\n- (#3898) When the parameter \"latex-workshop.latex.outDir\" is defined, the feature from #3890 doesn't work.\n- (#3899) When manually close the \"View LaTex PDF file\", the command \"SyncTex from cursor\" doesn't open the PDF anymore.\n- (#3902) Trimming dropdown menu in PDF viewer sometime overflows.\n- (#3905) The structure on the left does not jump on click.\n- (#3907) Increase the concurrent LU parser number.\n- (#3912) Wrong number of steps in the recipe steps counter.\n- (#3922) Trouble with LaTeX parsing related to listings and math mode.\n\n## [9.11.4] - 2023-05-27\n\n### Fixed\n- `DOCUMENT_CHANGED` internal event of the extension is not logged.\n- (#3890) Open PDF viewer on forward SyncTeX if not already opened.\n\n## [9.11.3] - 2023-05-26\n\n### Added\n- (#3895) Revival of #3879 in `v9.11.0`, use `unified-latex` to parse structure.\n\n### Fixed\n- Repeatedly refreshing structure view when the view is active.\n\n## [9.11.2] - 2023-05-26\n\n### Fixed\n- Repackaged #3892 to make the fix effective.\n\n## [9.11.1] - 2023-05-25\n\n### Fixed\n- (#3892) Reverted #3879\n  - Unfortunately, vscode does not support ESM, which is how `unified` works.\n\n## [9.11.0] - 2023-05-24\n\n### Added\n- (#3879) Use `unified-latex` to parse structure.\n  - This is a start of the transition to `unified-latex`-based AST parsing.\n- (#3883) Add a `singleton` mode to pdf tab viewing.\n\n### Fixed\n- (#3872) Fix `latexlog` parsing.\n\n## [9.10.0] - 2023-05-03\n\n### Added\n- (#3838) Properly stringify BibTeX fields containing `#`.\n- (#3856) Add a configuration item `latex.rootFile.indicator` to choose the root file indicator.\n\n### Fixed\n- (#3867) Use bracket stack to `getLongestBalancedString`.\n  - This can help the extension to better parse LaTeX AST.\n\n## [9.9.0] - 2023-04-29\n\n### Added\n- (#3855) `latex.clean.fileTypes` support placeholders.\n\n### Fixed\n- (#3811) `\\include` suggestion does not have file extension.\n- (#3812) Fix computation of the section above current position.\n- (#3813) Lazy load `usepackage` regex.\n- (#3815) Detect more warnings of LaTeX log.\n- (#3817) Let `)` may also close `[` when stripping text.\n- (#3820) Swap symbols of `epsilon` and `varepsilon`.\n- (#3827) Consider `\\markdownInput` as input.\n- (#3832) Change caption in BTA to top, add a BTB snippet.\n- (#3841) `code-server` not loading PDFs from built-in PDF viewer.\n- (#3842) Fix environment navigation and content selection for `$...$` and `$$...$$`.\n- (#3844) Add port conflict warning to `internal.port` config.\n\n## [9.8.2] - 2023-03-29\n\n### Fixed\n- (#3790) Resolving `bib` files according to `rootDir`.\n- (#3791) Do not consider `%` in url encoding as comment.\n- (#3794) No need to call `findRoot` on did open text document.\n\n## [9.8.1] - 2023-03-24\n\n### Fixed\n- (#3787) Root finding fails when optional arguments of `\\documentclass` have new lines.\n\n## [9.8.0] - 2023-03-24\n\n### Added\n- (#711) Outline for .dtx file.\n  - Implements basic .dtx outline with macro and environment document parsing. Guards are not parsed yet.\n- (#3722) All viewer configs are now responsive to changes without reloading.\n- (#3728) Auto clean can be triggered on success.\n- (#3741) Add a `!LW recipe` magic comment to set recipe.\n- (#3767) Add a new config `intellisense.package.exclude` to exclude package intellisense.\n- (#3786) Add a new config `latex-workshop.latex.jobname` to define jobname.\n\n### Changed\n- (#3731) Use backspace and shift+bk to navigate the viewer.\n- (#3735) Current root is prioritized on root-finding if there are multiple candidates.\n- (#3743) Use `\\documentclass[]{}` to detect root.\n- (#3770) Refactor EnvPair module and use the `latexParser` to build an AST `CommandPair` of all the pairs in the current file.\n\n### Fixed\n- (#3747) Strip `%` comments from bibtex for parsing.\n- (#3749) Viewer pages do not overflow.\n- (#3751) Fast parse don't include `\\s*[{` as args\n- (#3778) Associate log warnings with no line number to line 1.\n\n## [9.7.0] - 2023-02-14\n\n### Added\n- Update grammar files.\n- (#3699) Add a pair of new commands to change hostname of the PDF viewer.\n  - `latex-workshop.changeHostName` and `latex-workshop.resetHostName`.\n\n### Changed\n- LaTeX Workshop now requires VSCode 1.74.0+.\n\n### Fixed\n- Properly provide pair commands from `tex.cwl` and `latex-document.cwl`.\n- (#3715) latexindent can format `.cls` and `.sty` files.\n- (#3716) Command surrounding may have one more brace if a text placeholder is present.\n- (#3718) Remove redundant `left`/`right` commands.\n- (#3719) Properly provide `expl3` suggestions.\n\n## [9.6.2] - 2023-02-08\n\n### Fixed\n- (#3679) remove `detached: true` when spawning `clean` command.\n- (#3694) Add file polling for binaries (e.g. PDF).\n  - Resume the use of `latex-workshop.latex.watch.pdf.delay` config to control binary polling.\n- (#3700) Support file path suggestion for `\\subfileinclude`.\n- (#3701) Partial support to `\\DeclarePairedDelimiter` environments with `*` in math preview.\n- (#3705) Support `multline` environment in math preview.\n\n## [9.6.1] - 2023-02-03\n\n### Fixed\n- Remove unnecessary PDF viewer dropdown menu elements.\n- Reenabled fast parse on document contents for intellisense and outline.\n  - Now fast parse can properly handle `label={eq1}`-like syntax.\n- (#3682) Visually activate hand tool in viewer.\n- (#3683) Explain on the conflict with extension `vscode-pdf`.\n\n### Internal\n- Change to use `vscode.FileSystemWatcher` to watch project files intead of `chokidar`.\n  - The current version of `chokidar` possibly fails to emit events on `git pull`.\n\n## [9.6.0] - 2023-01-29\n\n### Added\n- Support PDF viewer in code server.\n\n### Fixed\n- (#3662) Use `path.resolve` to find pkg json file\n\n### Internal\n- Reduce complexity of command finder.\n  - `whichPackageProvidesCommand` is simplified by using a universal cmd suggestion array.\n  - `commandSignatureDuplicationDetector` check is advanced.\n- Expand cacher to cache AST of files, notable reducing the parsing times.\n- Update grammar files to `jlelong/vscode-latex-basics@16ac438`.\n\n## [9.5.0] - 2023-01-23\n\n### Added\n- (#3641）Support cross-ref from `xr` package.\n- (#3650) New config `intellisense.command.user` to add/change/delete default commands.\n  - Rename `intellisense.atSuggestionJSON.replace` to `intellisense.atSuggestion.user`.\n- (#3658) Add config `intellisense.label.command` to enable label definitions other than `\\label{}`.\n\n### Fixed\n- No repeat find root calls on active editor change\n- (#3654) Don't enforce `-cd` on `latexmk` and `subfiles`.\n- (#3657) A condition bug on `newcommand` detection.\n\n## [9.4.5] - 2023-01-13\n\n### Fixed\n- New command finder now honors argument and optional one list.\n- Entries in `bibtex-entries.first` should also be sorted.\n- (#3585) A better description to `latex.watch.files.ignore` config.\n- (#3640) Resolve a package conflict with `isort` that may prevent command suggestion.\n\n## [9.4.4] - 2023-01-10\n\n### Fixed\n- (#3633) Embedded PDF viewer can copy texts.\n- (#3634) `latexindent` cannot be directly called in the first invoke.\n- (#3638) Itemize and enumerate completion injects `\\\\n\\\\t`.\n\n## [9.4.3] - 2023-01-08\n\n### Fixed\n- (#3631) Fix error in SyncTeX with only `.synctex.gz` file.\n\n## [9.4.2] - 2023-01-08\n\n### Fixed\n- Environment optional argument intellisense works again.\n\n## [9.4.2] - 2023-01-08\n\n### Fixed\n- Environment optional argument intellisense works again.\n\n## [9.4.1] - 2023-01-08\n\n### Fixed\n- Allow for parentheses in pkg/doc options for intellisense.\n\n## [9.4.0] - 2023-01-08\n\n### Added\n- Base `beamer` and `tikz` intellisense.\n- (#3612) Intelli-package dependency obeys package options.\n- (#3628) More concise log messages.\n\n### Fixed\n- Refresh pdf viewers of only changed pdfs.\n- Embedded viewer follows vscode light/dark theme, browser viewer follows OS theme.\n- (#3630) Reconnect multiple times to viewer after OS sleep and wake up.\n\n## [9.3.0] - 2023-01-05\n\n### Added\n- Class/package options now provide snippet completion.\n- (#3617) More structure/outline configurations.\n  - Floats can now be nested\n  - Add config `view.outline.floats.caption.enabled` to disable float caption.\n  - Add `config view.outline.numbers.floats.enabled` to show float number.\n- (#3618) Now all extension config items are free from vscode reload\n  - Selected ones related to viewer display requires to reopen the pdf viewer.\n- (#3619) Command and environment intellisense are now based on packages used and their options if `latex-workshop.intellisense.package.enabled` is `true`.\n\n### Changed\n- Deprecated config items are removed.\n- Let's use fast parse for structure/outline by default.\n- (#3603) Remove unicode chars in recipe names.\n\n### Fixed\n- (#3611) Filter package cmds/envs with %, remove arg % part.\n\n## [9.2.2] - 2022-12-31\n\n### Fixed\n- (#3607) Try reconnect websocket multiple times after operating system sleep.\n- (#3610) Catastrophic backtracking of argument regex that may cause unresponsiveness on intellisense from a long line.\n\n## [9.2.1] - 2022-12-28\n\n### Fixed\n- Performance regression due to improper caching of package intellisense data.\n\n## [9.2.0] - 2022-12-23\n\n### Added\n- (#3579) Intellisense for optional arguments.\n\n### Changed\n- `intellisense.useTabStops.enabled` does not prevents tabbing.\n  - It is replace with a new `intellisense.argumentHint.enabled` config.\n- (#3594) Hinting data for many packages are updated.\n\n### Fixed\n- (#3578) Force no indent after `\\begin{document}`.\n\n## [9.1.1] - 2022-12-08\n\n### Fixed\n- (#3566, #3569) Make sure command names start with a `\\`.\n- (#3568, #3570) Use delay to prevent simultaneous auto build by file save or change.\n- (#3571) Handle rejected promise on bib parsing.\n\n## [9.1.0] - 2022-12-02\n\n### Added\n- (#3539) Add completion for environment starting with a `+`.\n- (#3546) Completion in comma separated lists.\n\n### Changed\n- (#3540) Use `ctrl+shift+m` instead of `cmd+m` for macos keybindings.\n- (#3550) Open http(s) directly from viewer, prompt to open for others.\n\n### Fixed\n- Fix wrong count of tools in recipe.\n- (#3502) `href` boxes in viewer misplaced on trim.\n- (#3549) Use base file name for latexindent temp file.\n- (#3556) `check` icon in status on failed builds.\n\n## [9.0.1] - 2022-11-08\n\n### Fixed\n- (#3526) The total number of tools in a recipe displays timestamp if there are more than one tools.\n\n## [9.0.0] - 2022-11-07 - Builder Update\n\n### General\n- LaTeX Workshop refactored the previous builder logic and adopt a new queue based implementation.\n  - Details are recorded in (#3514).\n  - If you experience anything unusual, please file an issue and rollback to previous versions temporarily.\n- PDF.js is updated to version 3.\n\n### Added\n- (#3451) Clean arguments now accepts placeholders.\n- (#3468) Parse page number in fullbox logs.\n- (#3488) Add `pageBorderColor` config for pdf viewer.\n\n### Changed\n- Copy `href` to clipboard instead of directly opening when clicking on embedded internal PDF viewer.\n- (#3444) `view.outline` configs are now responsive without vscode reload.\n\n### Fixed\n- Enable completion on the first line of a `.bib` file.\n- (#3445) Use source file extension to create temp indent file for `latexindent`.\n- (#3419) Math preview also shows `flalign`.\n- (#3478) Typo in `hyphenrules` newenv.\n- (#3520) Select current environment content/name not working.\n\n## [8.29.0] - 2022-08-25\n\n### Added\n- (#3400) Add an experimental faster AST-based structure construction.\n  - Disabled by default. Can be enabled from `view.outline.fastparse.enabled`.\n- (#3421) Provide file completion for `includesvg`.\n- (#3423) Support sticky scrolling.\n\n### Fixed\n- Fix wrong structure: first section is child of preamble labels.\n- (#3404) Fix `\\input` arg does not take filenames with underscores.\n- (#3408) Ctrl+A (Select All) grays out PDF preview.\n- (#3411) Fix linter logs won't clear after all warnings fixed.\n- (#3412) Ignore `\\newenvironment` content when scanning for duplicate labels.\n\n## [8.28.0] - 2022-07-25\n\n### Added\n- (#3342) Add `%` comments to bibtex.\n- (#3347) Add \"go to definition\" support for glossaries and acronyms.\n- (#3353) Clean up demanded empty folders after removing auxiliary files.\n- (#3355) Add deprecated config alert on activating extension.\n- (#3359) Enhance glossary completion.\n- (#3360) Add support to `LaCheck`.\n\n### Fixed\n- (#3330) Pdf Viewer (Browser) does not refresh on Safari.\n- (#3340) Typo in `exam` class intellisense data.\n- (#3341) Add intellisense for labels with one optional arg.\n- (#3344) Default zoom level of PDF viewer not working on `v8.27.0+`.\n- (#3349) Make sure to populate documentation before returning a citation entry.\n\n## [8.27.2] - 2022-06-08\n\n### Fixed\n- This time should really fix the `view` button issue.\n\n## [8.27.1] - 2022-06-08\n\n### Fixed\n- (#3324) Fix the `view` command.\n\n## [8.27.0] - 2022-06-07\n\n### Added\n- (#3316) Support `pageColorsForeground` and `pageColorsBackground` for the internal PDF viewer.\n\n### Changed\n- Configurations `chktex.args.active` and `chktex.args.root` are deprecated in favour of `chktex.exec.args`.\n- Configuration `chktex.args.path` is deprecated in favour of `chktex.exec.path`.\n- Configuration `view.pdf.backgroundColor` is deprecated in favour of `view.pdf.color.light.backgroundColor` and `view.pdf.color.dark.backgroundColor`.\n\n### Fixed\n- (#2537) Reveal `.tex` tab if open when using internal `synctex`.\n- (#3283) Refactor glossary intellisense data scanning.\n  - Stop directly accessing `node.kind`. Instead use the `latexParser.isXXX` methods.\n  - Use `stringify` to recompute labels and descriptions. Solves #3280.\n- (#3289) Wrong indentation of new items in tabs indented `itemize` environment.\n- (#3290) `/` is missing when using `%RELATIVE_DIR%` and `%RELATIVE_DOC%`.\n- (#3296) Fix hover and provide definition for commands.\n  - Refactor the `tokenizer` used to determine the command under cursor, if any. A LaTeX command name can only contain letters.\n  - Fix `provideDefinition` for commands: tokenized commands start with `\\`. Solves #3294.\n  - Do not show link or `texdoc` command for 'user-defined' package: this is the package used for commands defined directly in the file.\n\n## [8.26.0] - 2022-05-05\n\n### Added\n- (#3252) Refactor structure to add caching.\n  - (#3260) Use eventbus to manage structure updates.\n- (#3275) Add CTAN link to hover on package.\n- (#3279) `onEnterKey` supports multi-cursors when all selected lines start with `\\item`.\n\n### Changed\n- (#3263) Remove a configuration on `markdown.latex.codeblock`.\n\n### Fixed\n- (#3250) Add deprecation message to `intellisense.citation.maxfilesizeMB`.\n- (#3253) When editing a `markdown_latex_combined` document, command `latex-workshop.onEnterKey` was not found.\n- (#3256) Fix typo in `commands.json`.\n- (#3258) `isTriggerSuggestNeeded` must match from the beginning of the command name.\n\n## [8.25.0] - 2022-04-13\n\n### Added\n- (#3226) Support `\\cite<text>{keylist}` commands from `apacite`.\n\n### Fixed\n- (#3221) Go to symbol leads to the wrong line.\n- (#3227) `cleveref`'s commands loaded by `\\usepackage` are not displayed in some cases.\n- (#3231) The real time math preview does not work.\n- (#3236) Can't display the outline of the paper in the `structure` column, but only the label.\n- (#3239) `bibtex-format.sort.enabled` not effective in `settings.json` in multi-root workspace.\n\n\n## [8.24.1] - 2022-04-01\n\n### Changed\n\n- The setting `latex-workshop.intellisense.citation.maxfilesizeMB` is deprecated in favour of `latex-workshop.bibtex.maxFileSize`.\n\n### Fixed\n\n- (#3219) Set `resource` scope to all `bibtex` settings.\n\n## [8.24.0] - 2022-04-01\n\n### Added\n\n- (#1898) More precise error highlighting.\n- (#3043) Handle multi-line `section` command in outline.\n- (#3046) Add a configuration variable `texcount.autorun` to enable `texcount` to be automatically called.\n- (#3055) Parse and show LaTeX3 warnings.\n- (#3065) Add completion detail for snippets.\n- (#3122) Use `resource`-scoped properties.\n- (#3179) Support `editor.action.smartSelect.expand` and `editor.action.smartSelect.shrink`. The configuration is `latex-workshop.selection.smart.latex.enabled`.\n- (#3207) Use `latex-workshop.intellisense.atSuggestionJSON.replace` to replace a default `@`-suggestion or define a new one. See https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#-suggestions\n- (#3220) Add Structure view for `BibTeX`.\n\n### Changed\n\n- (#3207) The setting `latex-workshop.intellisense.snippets.trigger.latex` is deprecated in favour of `latex-workshop.intellisense.atSuggestion.trigger.latex`.\n\n### Fixed\n\n- (#2821) Properly remove temporary files from `latexindent`.\n- (#3189) Ignore anything before `begin document` in structure.\n- (#3192) Refactor completion to better handle duplicates.\n\n## [8.23.0] - 2021-12-28\n\n### Added\n- (#3004) Add language configuration for BibTeX style.\n- (#3022) Show commands in outline/structure views.\n  - We introduce the new setting `latex-workshop.view.outline.commands` with default value ['label']. It replaces `latex-workshop.view.outline.labels.enabled`, which was specific for labels.\n\n### Changed\n- (#2963) Migrate to MathJax v3.2.\n- (#3009) Drop support for LaTeX Utilities.\n- (#3014) Remove `item` snippet.\n- (#3027) Disable magic comments by default.\n\n### Fixed\n- (#2979) Incorrect structure when using `\\verb|\\section{...}|`.\n- (#2985) Declare `[...)` and `(...]` as bracket pairs.\n- (#2986) Disable commands and features on virtual workspaces.\n- (#2996) Focus jump in viewer when using landscape pages.\n\n## [8.22.0] - 2021-11-15\n\n### Changed\n- (#2881) Refactor `toggleSelectedKeyword`.\n- (#2937) Drop the support for VS Code prior to v1.61.2.\n- (#2951) Refactor the Input completer.\n- (#2959) Remove Snippet Panel.\n\n### Fixed\n- (#2929) Highlight `(long|tall)tblr`.\n- (#2935) `workspaceFolders` may have length 0.\n- (#2950) Provide `@snippets` as completion items using a separate `CompletionItemProvider`.\n- (#2952) Do not gobble trailing empty lines when folding.\n- (#2967) Fix ranges for `(sub)*section` entries in the structure provider.\n\n## [8.21.1] - 2021-10-22\n\n### Fixed\n- (#2917) Treat `latexmk --luatex` properly.\n- (#2922,#2926,#2927) The previous package has some mysterious bugs preventing the extension from working properly.\n- (#2923) Synctex in file with `\\include`d files is not searching for the correct directory.\n\n## [8.21.0] - 2021-10-19\n\n### Added\n- (#2841) Add `BibLaTeX` backend for intellisense.\n- (#2852) Hightlight the content of the `markdown` environment as `md`.\n- (#2870) Add a new configuration variable `latex-workshop.message.bibtexlog.exclude`.\n- (#2900) Add three new placeholders.\n  - `WORKSPACE_FOLDER`: current workspace path.\n  - `RELATIVE_DIR`: file directory relative to the workspace folder.\n  - `RELATIVE_DOC`: file path relative to the workspace folder.\n\n### Fixed\n- (#2838) Format multiline bibtex fields.\n- (#2851) Highlight `tblr` envs as tabular.\n- (#2855) Accept dash in cite keys.\n- (#2897) Show `Open LaTeX Workshop log` button for some cases.\n- (#2908) Highlight `alignedat`.\n- (#2909) Replace `\\texorpdfstring` by its second arg in outline.\n\n## [8.20.2] - 2021-08-09\n\n### Added\n- (#2783) Add support for glossary external file.\n\n### Changed\n- (#2756) Use Custom Editor as a hook to start the internal PDF viewer.\n- (#2759) Drop support for versions prior to VS Code `1.53.2`.\n\n### Fixed\n- A series of engineering improvements.\n- (#2766) Declare `flalign` as a math environment.\n- (#2770) intellisense for `\\mathscr`.\n- (#2777) Skip tikpicture content when scanning for labels.\n- (#2782) Stop unescaping in surround function.\n- (#2786) Skip labels in new command definitions.\n- (#2787) Set a scope to `\\text` in maths.\n- (#2794) Highlights comments inside `\\cite`.\n\n### Others\n - 8.20.0 and 8.20.1 are skipped. [#2829](https://github.com/James-Yu/LaTeX-Workshop/issues/2829)\n\n## [8.19.0] - 2021-06-11\n\n### Added\n- New log messages for recipes and undefined tools.\n- (#2682) Adopt a more lazy approach to read tex content.\n- (#2686) Added highlighting support for tabu package envs.\n\n### Changed\n- (#2579) Change the default value of `docker.image.latex` to an empty string.\n\n### Fixed\n- A series of engineering improvements.\n\n### Fixed\n\n## [8.18.0] - 2021-05-12\n\n### Added\n- (#2628) Support `<<child='...'>>=` for `.rnw` file inclusion.\n- (#2636) Support SyncTeX buttons on PDF viewers.\n\n### Removed\n- (#2653) Remove `BuildInfo`.\n\n### Fixed\n- (#2627) Array syntax highlighting.\n- (#2628) Refactor input path regexps.\n- (#2639) Fix cached packages list update.\n- (#2650) Highlight `\\Verb` content as verbatim.\n- (#2658) Improve find new command regex.\n- (#2662) Fix auto build on save with subfiles.\n- (#2666) Fix typo, highlight `\\iftrue`, not `\\ftrue`.\n- (#2671) Make sure to remove any verbatim parts before scanning the .tex content.\n  - For the moment, it breaks if there are nested verbatim environments.\n- (#2671) Make the list of verbatim-like environments configurable by `latex-workshop.latex.verbatimEnvs`.\n\n## [8.17.0] - 2021-04-21\n\n### Added\n- (#2566) Add IntelliSense for `\\DeclareMathOperator` and any `\\newcommand*` & co declarations.\n- (#2584) Generate a `cpp` embedded language configuration.\n\n### Fixed\n- (#2542) Python code highlighting for all environments of the package `pythontex`.\n- (#2561) Fix a regexp which might causes ReDoS.\n- (#2562) Fix potential exponential backtracking when removing comments.\n- (#2565) Use `spawn` instead of `exec` when looking for `latexindent`.\n- (#2575) Make sure to wait for `findRoot` to return before proceeding.\n- (#2600) Duplicate labels in the same file not spotted.\n- (#2601) Do not filter files using `git`.\n- (#2624) The outline view in the sidebar of the internal pdf viewer is too dark to see the content.\n- (#2626) Set correct package field in cached element.command.\n\n## [8.16.1] - 2021-03-03\n\n### Fixed\n- (#2536) Check for duplicate labels.\n- (#2542) Highlight `pythontex` environments.\n- (#2543) Make `import` accept a relative path starting from the `rootDir`.\n- (#2547) Use `spawnSync` to prevent code injection.\n- (#2549) `LintRoot` should lint the whole LaTeX project.\n- (#2550) Raise a warning message when viewer cannot find PDF file.\n\n## [8.16.0] - 2021-02-19\n\n### Added\n- (#2427) Add a config to show floats or not in outline `view.outline.floats.enabled`.\n- (#2432) Make trigger characters for intellisense of LaTeX documents configurable.\n- (#2461) Implement a `BibTeX` log parser.\n- (#2471) Add a configurable clean command.\n  - A fully configurable `clean` command and add three new configuration variables.\n  - `latex.clean.method` can be `glob` (default) or `cleanCommand`.\n- (#2476) Enable converting ChkTeX outputs' column numbers.\n- (#2485) Configure align on equal signs for bibtex formatter `bibtex-format.align-equal.enabled`.\n- (#2488) Accept any number of spaces for bibtex indentation given as a string in `bibtex-format.tab`.\n- (#2508) Sorting fields can be enabled by `bibtex-fields.sort.enabled`.\n- (#2512) Enable autofix on multiline maths.\n- (#2529) Users can provide package intellisense data from `intellisense.package.dirs`. \n\n### Changed\n- Use `.fls` file when finding the root file.\n- (#2439) Use `vscode.env.asExternalUri` for the internal PDF viewer.\n\n### Fixed\n- (#2429) Fix quote escaping for `bst` language.\n- (#2430) Stop opening scm view when focusing `tex` file in `diff` mode.\n- (#2457) Check if git is available on OSX to prevent dev tools pop up.\n- (#2458,#2503) Treat `\\left.` `\\right)]}` and `\\left([{` `\\right.` as bracket pairs.\n- (#2484) Killing the build process makes vscode crash when `pkill` is provided by `proctools`.\n- (#2504) Fix SyncTeX on horizonal scrolling.\n\n## [8.15.0] - 2020-12-06\n\n### Added\n- Add Snippet View.\n- Add `hover.preview.maxLines` to limit how much we go upward to find the beginning of the math environment.\n- (#2380) Add toggle math preview.\n- (#2384) Enable math preview on suggest detail widgets for references.\n- (#2388) Add `bibtex` support for `markdown`.\n\n### Changed\n- Update syntax files for weave, dtx, LaTeX3.\n- (#2392) Keep selected text in autocompletion/snippets.\n- (#2408) Remove `subfileincludegraphics` in `data/commands.json`.\n\n### Fixed\n- Escape `}` properly in the snippet panel.\n- (#2394) Refactor fix for double `}}` in completion.\n- (#2395) Update `cpp` grammar with bailout.\n- (#2397) Autocomplete big parenthesis commands: `left(` -> `\\left( ... \\right)`.\n- (#2415) Add `triggerSuggest` to user-defined commands when needed.\n- (#2421) Fix a focus issue when opening PDF files through the explorer.\n\n## [8.14.0] - 2020-11-11\n\n### Added\n- (#516,#2298) Glossary completion.\n- (#2276) Add tool and recipe definitions for `Tectonic`.\n- (#2294) Support real-time math preview panel.\n- (#2322) Add option to sort `bib` files by entry type.\n\n### Changed\n- (#2279) Update to `PDF.js 2.5.207`.\n- (#2291) Tweak the transition of the toolbar of the PDF viewer.\n\n### Fixed\n- (#2277) Label completion broken when labels contain spaces.\n- (#2290) Extra closing brace when inserting `split` environment.\n- (#2292) Fix `\\textins` command completion.\n- (#2325) Keep trailing comma in last `bibtex` field.\n- (#2327) Highlight `&` in `longtable`.\n- (#2328) Invoke `toLocaleLowerCase` for the suffix of filenames.\n- (#2344) Allow multiple `args` completion with `\\cite`.\n- (#2339,#2342) Parts of `Compiler Log` are not parsed.\n- (#2347) Highlight `optidef` envs.\n- (#2356) No leading space allowed before `#begin{document}` when using `subfiles`.\n- (#1423,#1820,#2368) Deactivate auto-closing for snippet prefixes.\n\n\n## [8.13.2] - 2020-09-12\n\n### Fixed\n- Extension within WSL uses the wrong un-polyfilled `pdf.js`.\n\n## [8.13.1] - 2020-09-12\n\n### Fixed\n- (#2274) Fix spelling error `formater` -> `formatter`.\n\n## [8.13.0] - 2020-09-11\n\n### Added\n- (#2261) Declare a formatter provider for `bibtex`.\n\n### Fixed\n- (#2270) Extension work again with Remote Development extension.\n\n## [8.12.0] - 2020-09-11\n\n### Added\n- (#2198) Add a command to select the full content of the current environment.\n- (#2225) Enable `latex-workshop.surround` on the Command Palette.\n- (#2249) Improve support for LaTeX fenced code block in Markdown.\n\n### Changed\n- Update PDF.js to v2.4.456.\n- Drop support for vscode < 1.42.\n- (#2158) Add invert PDF in dark mode only.\n  - Made invertMode configuration more intuitive.\n  - Set default for invertMode.enabled.\n\n### Fixed\n- (#2117) Add a build icon.\n- (#2126) Improve scope names.\n- (#2169) Fix the trim mode of the PDF viewer.\n- (#2189) Duplicate cite entries.\n- (#2203) Refactor and add above/below to `view.pdf.tab.editorGroup`.\n- (#2207) Ignore verbatim content when computing structure.\n- (#2211) Add `onSave` option to `latex.autoBuild.run`\n  - Reverts `4d3ea8b`\n- (#2223) Remove `press a-z and space for greek letter`.\n- (#2229) Add TBA snippet for table.\n- (#2232) Fix XML & HTML scopes.\n- (#2245) Should not treat blob URLs, `blob:...`, as external links.\n- (#2265) Use `px` instead of `rem` for padding of SVG images on the snippet panel.\n\n## [8.11.1] - 2020-07-01\n\n### Fixed\n- Restoring PDF viewers does not work well with VS Code 1.47.\n- (#2172) `\"latex.recipe.default\": \"lastUsed\"` doesn't work.\n- (#2176) No need to put the closing `}` on its own line in `.bib`.\n- (#2177) Use `kpsewhich` to resolve bibliography files.\n- (#2182) Also search for `.bib` files in `rootDir`.\n\n## [8.11.0] - 2020-06-24\n\n### Added\n- (#2149) Add support for `weave.jl`.\n- (#2154) Add section numbers in outline.\n  - This feature can be deactivated by setting `view.outline.numbers.enabled: false`.\n\n### Improved\n- (#2109) Improve PDF viewer refresh speed.\n- (#2157) Improve the invert mode of the PDF viewer with additional filters.\n\n### Fixed\n- Activate `onEnterKey` even when suggestion is visible.\n  - Always activate `onEnterKey` when `acceptSuggestionOnEnter`.\n  - (#2167) Do not activate `onEnterKey` when `suggestWidgetVisible`.\n- (#2107) Use `fs.realpathSync` to compare file paths for SyncTeX.\n- (#2146) Use `rootFile` to expand placeholders when formatting.\n\n## [8.10.0] - 2020-06-06\n\n### Added\n- Enhance LaTeX3 support.\n- Activate extension for `latex-expl3` language id.\n- (#2018) Support restoring PDF viewers.\n- (#2088) Add completion support for `includeonly`/`excludeonly`.\n- (#2099) Set default recipe by name.\n- (#2115) Add intellisense for optional `bibtex` fields.\n- (#2118) Texcount comes back.\n- (#2136) Filename completion with already typed path.\n\n### Fixed\n- Fix double `}}` in env completion.\n- (#1523) Match `\\autocite`s syntax highlight.\n- (#2049) Add `luahbtex` rule for build info.\n- (#2052) Add standard math envs to the default list.\n- (#2052) Set `intellisense.package.enabled` to true to populate intellisense based on the used packages.\n- (#2054) Declare more cite commands for syntax highlighting.\n- (#2055) Stop rebroadcasting keyboard events on Linux.\n- (#2056) Remove duplicate `\\env` commands.\n- (#2120) Show labels in structure/outline.\n- (#2131) Fix spaces in suggestions.\n\n## [8.9.0] - 2020-04-24\n\n### Added\n- Update `PDF.js` to `v2.3.200`.\n- Enhanced `rnw `support.\n- Turn `..` into tabstops in snippets.\n- The new placeholders `%DOC_W32%`, `%DOC_EXT_W32%`, `%DIR_W32%`, `%OUTDIR_W32%` are normalized so that they use `\\\\` as the path separator on Windows.\n  - Placeholders without the `_W32` suffix always use `/` as the path separator. On Unix platforms, placeholders with and without the `_W32` suffix have the same value.\n- (#1534,#2020) Match `\\left`...`\\right` brackets.\n- (#1951) Load `data/packages/class-*.json` files to provide completion items specific to `documentclass`es.\n- (#1989) Add syntax highlighting for TypeScript in `minted`.\n- (#2029) Refactor environments snippets.\n- (#2033) Add a completion provider for `bibtex` files.\n- (#2047) Add more default commands in intellisense.\n\n### Changed\n- In `%DOC%` and `%DOCFILE%`, we now remove any extension, not only `.tex`.\n  - Two new placeholders `%DOC_EXT%` and `%DOCFILE_EXT%` are respectively the root file full path and the root file name with the extension kept.\n- Use `cross-spawn` to build and view.\n\n### Fixed\n- Fix `updatePkg` when `latexParser` fails.\n- (#2002) Make sure to kill all child processes.\n- (#2003) Reveal a `WebviewPanel` when executing SyncTeX.\n- (#2010) Force `/` in `%OUTDIR%` even on Windows.\n- (#2011) Check the length of the args of `\\label` command.\n- (#2012) Remove `cleveref` intellisense entries.\n- (#2016) Disable Ctrl+P Shortcut in `pdf.js` viewer.\n- (#2017) Use a dedicated option for pdf watch delay.\n- (#2025) Render citation completion and preview as markdown.\n- (#2030) Order latexmk rules numerically in compilation live info.\n\n## [8.8.0] - 2020-03-22\n\n### Added\n- (#1949) Make the PDF watcher delay configurable via `latex.watch.delay`.\n- (#1950) Enable keyboard shortcuts of VS Code on the PDF viewer.\n- (#1955) Add embedded language support for minted ruby.\n- (#1963) Add `\\addplot` grammar support.\n- (#1985) Improved intellisense for reference via `intellisense.citation.format`.\n\n### Removed\n- (#1986) Remove `formatOnSave:false` in latex configuration.\n\n### Fixed\n- (#1947) Normalize `outdir` path.\n- (#1953) Fix clean command with relative `outDir`.\n- (#1962) Use page numbers to cache SVG files.\n- (#1965) Ctrl click to open `documentclass` file.\n- (#1972) Use `rootDir` as PWD when parsing `.fls` file.\n\n## [8.7.2] - 2020-02-12\n\n### Fixed\n- Fix popup severity.\n- (#1811) Wait for write to finish before firing a change event.\n- (#1907) Scan `\\DeclarePairedDelimiter` for preview.\n- (#1925) Add setting for prompting user or not with subfile.\n  - The new setting is `latex.rootFile.doNotPrompt`. When set to yes, the file used is decided according to `latex.rootFile.useSubFile`.\n- (#1926) Fix `parseLatex`, which should return `undefined` when parsing fails.\n- (#1927) Scan for already used environments for intellisense.\n- (#1928) Watch external pdf for automatic reload.\n- (#1932) Remove the `-cd` option of `latexmk`.\n- (#1933) Add an option to disable the progress bar of the compilation of LaTeX `progress.enabled`.\n- (#1943) Do not call `document.save()` in formatter.\n\n## [8.7.1] - 2020-01-31\n\n### Fixed\n- (#1924) Try magic and active document before current root.\n\n## [8.7.0] - 2020-01-30\n\n### Added\n- (#1913) Add recipe for rwn files.\n- (#1914) Add option to highlight or comment out duplicate entries in BibTeX.\n- (#1918) Declare `\\Sexpr` syntax\n\n### Fixed\n- Fix scanning of \\def for autocompletion.\n- (#1876) First try current rootFile on editor change.\n- (#1895) Fix subfiles building with `latexmk`.\n- (#1895) Accept roofile without extension in subfiles.\n- (#1902) Do not change the left panel on active editor change when `view.autoFocus.enabled` is set to `false`.\n- (#1904) Always use '/' as path separator.\n- (#1905) Fix keybinding regression for `ctrl+alt+[` and `+]`.\n- (#1911) `vscode.DocumentSymbol` expects non-empty label.\n- (#1915) Accept `@` in command names for intellisense.\n- (#1921) Trim current token for hover.\n\n## [8.6.0] - 2020-01-13\n\n### Added\n- (#1862) Syntax highlight for BibTeX style language (`.bst`).\n- (#1878) Add config to scan `label={...}`.\n- (#1891) Support asterisked sections in `shiftSectionLevel`.\n- (#1894) Declare `\\bibentry` as a citation command.\n\n### Changed\n- (#1872) Refactoring communications between the WebSocket server and PDF viewers.\n- (#1874) Use typed proxies of workerpool.\n\n### Fixed\n- Fix double `/` in `latexindent -c` when using docker.\n- (#1871) Override the spread mode specified in PDF documents with the current.\n- (#1873) Do not use PWD entry as the cwd for fls files.\n- (#1873) Use `cross-spawn` to run `latexindent`.\n- (#1877) `\\def` commands not passed to mathjax for preview.\n- (#1886) Send `type: 'loaded'` to the extension host when PDF files loaded.\n- (#1889) Fix outDir when containing `../`.\n- (#1890) `latex.watch.files.ignore` not fully honored.\n- (#1899) Activate all keybindings for `rsweave` id.\n\n## [8.5.0] - 2019-12-17\n\n### Added\n- (#1826) Load (and cache) PDF preview directly from disk for `\\includegraphics` completion.\n- (#1843) Set the background color of the internal PDF viewer.\n- (#1846) Add regex for `biber` to live compilation info.\n\n### Changed\n- (#1842) Rename `intellisense.preview.enabled` to `intellisense.includegraphics.preview.enabled`.\n- (#1856) Add `*.syntex(busy)` and `*.synctex.gz(busy)` to files to clean.\n\n### Fixed\n- (#1841) Quotes break syntax highlighting in `.bib` files.\n- (#1848) `close-env` fails at beginning of line.\n- (#1851) Preview fails when anything starting with `\\par` is inside a `\\newcommand`.\n- (#1853) Accept white space between dirs in `\\graphicspath`.\n- (#1860) Accept subdirectories when using subfiles.\n- (#1863) Refactor `latexindent` detection.\n\n## [8.4.2] - 2019-11-27\n\n### Added\n- (#1819) Add an open on the left mode for the viewer tab, controlled by `view.pdf.tab.editorGroup`.\n- (#1817) Replace placeholders in external build arguments.\n- (#1777) Declare a new language id for `.rnw` documents.\n- (#1833) XeLateX live compilation progress.\n\n### Changed\n- (#1818) Do not clean `.ist` files.\n\n### Fixed\n- Fine tune some log messages.\n- (#1793) Broken pdf viewer with inverted color.\n- (#1822) Output window messes with LATEX Snippet Panel.\n- (#1823) Drop the star when passing `newcommand`s to mathjax.\n- (#1827) `subimport` `path.resolve` issue.\n\n## [8.4.1] - 2019-11-16\n\n### Fixed\n- Version 8.4.0 did not show up in the marketplace.\n\n## [8.4.0] - 2019-11-16\n\n### Added\n- (#1780) Add commands to sort and align bibtex files.\n- (#1808) Add commands of `\\bigl` and others.\n\n### Changed\n- (#1798) Tweaked promote/demote sectioning feature.\n  - Please read the wiki [Sectioning](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Sectioning) page for details. The actions of `ctrl+[` and `ctrl+]` are exchanged.\n\n### Fixed\n- (#1785) Do not reopen all documentations every time.\n- (#1788) A lot of tweaks related to extension freezing issue.\n- (#1804) Reconnect WebSocket after closed by sleep and wake.\n- (#1805) Turn `\\providecommand` into `\\newcommand` for mathjax preview.\n\n## [8.3.1] - 2019-11-04\n\n### Changed\n- (#1669) Activity icon. Sorry! @trevorgunn\n\n## [8.3.0] - 2019-11-03\n\n### Added\n- (#1751) Add option to display progress as a notification.\n- (#1765) Enable hover on `\\includegraphics`.\n\n### Fixed\n- (#1589) Change symbol loading method.\n- (#1600) Improve TikZ snippet panel.\n- (#1676) Add Content Security Policy to WebViews.\n- (#1680) Kill all child processes when killing their parents.\n- (#1729) Scan for `newcommand`s in the whole project for preview.\n- (#1734) Use Mutex for `latexindent`.\n- (#1750) Chinese/Japanese characters in formula preview not rendered correctly.\n\n## [8.2.0] - 2019-09-28\n\n### Added\n- (#1712) Texdoc completion.\n\n### Fixed\n- (#1644) Fix build brogress bar length.\n- (#1655) Highlight `mpost` environments as plain tex.\n- (#1679) Add `latexmk` recipe for `lualatex`.\n- (#1689) Use local cpp grammar with bailout pattern.\n- (#1711) Restrict some keybindings to latex files.\n- (#1714) Declare `.ctx` files as a LaTeX filetype.\n- (#1720) Fix parsing `\\usepackage`.\n\n## [8.1.2] - 2019-09-12\n\n### Fixed\n- Re-compile the project to include changed should be presented in `8.1.1`.\n\n## [8.1.1] - 2019-09-12\n\n### Changed\n- (#1672) Revert #1639: \"Check pdf writable status before building.\"\n- Remove the snippet of `\\setminus`.\n\n### Fixed\n- (#1653) Enables hover on refs with spaces in them.\n- (#1661) Allow the same commands with different arguments.\n\n## [8.1.0] - 2019-08-29\n\n### Added\n- Add a config `intellisense.update.aggressive.enabled` to disable parsing on text change.\n- (#1504) Add a latexmk(rc) recipe.\n\n### Changed\n- (#1647) Syntax parsing is now done in a separate thread. Typing lag should be resolved.\n\n### Fixed\n- (#1555) Use caption of the main figure for outline.\n\n## [8.0.7] - 2019-08-26\n\n### Changed\n- (#1635) Add `.nav` and `.snm` to `latex.clean.fileTypes`.\n\n### Fixed\n- (#1637) Find root only when active editor is tex-like.\n- (#1639) Check pdf writable status before building.\n\n## [8.0.6] - 2019-08-22\n\n### Fixed\n- (#1630) Synctex not working after refreshing pdf viewer.\n\n## [8.0.5] - 2019-08-22\n\n### Fixed\n- Use the previous regex-based parsing if the extension cannot build AST properly.\n- (#1612) Proper parsing of `tex` input tree.\n- (#1621) Fix command completion from used packages.\n- (#1621) Check argument list length of `renewcommand`.\n- (#1623) Make reverse synctex keybinding configurable.\n- (#1626) Refresh viewer after successful build with external command.\n\n## [8.0.4] - 2019-08-20\n\n### Fixed\n- Latency before providing auto-completion items.\n- (#1599) Fix handling of periods in multiline warnings.\n- (#1612) Find root also search for `tex` parents.\n- (#1614) Remove word count remnants.\n- (#1615) Synctex stops working.\n- (#1619) Regression: respect rootDir when dealing with \\input\n\n## [8.0.3] - 2019-08-19\n\n### Fixed\n- (#1607,#1608,#1609) Compilation cannot find root file within `\\input` sub-files.\n\n## [8.0.2] - 2019-08-19\n\n### Fixed\n- Extension hangs when `expl3-code.tex` is present in `.fls` file generated by compiler.\n- Error debug messages complaining about undefined cached items.\n\n## [8.0.1] - 2019-08-19\n\n### Fixed\n- Packaging issue in version 8.0.0 leads to unusable extension.\n\n## [8.0.0] - 2019-08-19 - Engineering Update\n\n### General\n- LaTeX Workshop now use abstract syntax tree to analyze LaTeX projects and provide auto-completions.\n- LaTeX Workshop now has a sibling extension, LaTeX Utilities, to hold features that are fancy yet not for everyone.\n\n### Added\n- Updated `pdfjs` for PDF viewer.\n- (#1564) Make `toggleSelectedKeyword` work for multi-selections.\n\n### Fixed\n- (#1553) Allow double quotes to delimit values in bibtex.\n- (#1581) PDF viewer not refreshing after build after a while.\n- (#1585) Fix synctex after build with external viewer.\n- (#1595) Mimic the way `\\begin` is indented when closing an environment.\n- (#1604) Prefer `source.cpp.embedded.latex` in `cpp`-minted env.\n\n### Removed\n- Formatted Paste, moved to LaTeX Utilities\n- Word Count, moved to LaTeX Utilities\n- Tikz Preview, moved to LaTeX Utilities\n\n## [7.3.0] - 2019-07-31\n\n### Added\n- Add a config for always loading extra packages in auto-completion.\n- (#1511) A snippet panel.\n\n### Fixed\n- (#1521) Fixed several bugs on `tikz` preview.\n- (#1523) Syntax highlighting for `\\autocites`.\n- (#1524) Add beamer frames to the outline.\n- (#1526) Add intellisense for code input `\\lstinputlisting` and `\\verbatiminput`.\n\n## [7.2.0] - 2019-07-20\n\n### Added\n- (#1500,#1516) Add `tikzpicture` preview.\n- (#1496) New `subfiles` package support.\n\n### Changed\n- (#1501) Use `base64url` to encode path.\n- (#1509) Improve description of `formattedPaste` settings.\n\n### Fixed\n- (#1201) Catastrophic backtracking in `getGraphicsPath`.\n\n## [7.1.0] - 2019-07-07\n\n### Added\n- (#1452) Paste formatted tables from csv.\n\n### Changed\n- (#1446,#1448) Build info panel tweaks.\n\n### Fixed\n- (#1415) Parse `label={...}` properly to get references.\n- (#1428) Handle optional arguments in `newcommand` for `mathjax`.\n- (#1430) Declare `\\left`, `\\right` as a pair.\n- (#1433) Fix `.fls` and `.aux` file discovery with relative `outDir`.\n- (#1433) Make structure and manger honor `texDirs`.\n- (#1435) Remove a file from `texFileTree` when it is deleted.\n- (#1440) Clear build progress on failure to build.\n- (#1449) Add option to force recipe usage.\n- (#1457) Honor `journaltitle` in citation browser.\n- (#1458) Show `stderr` on recipe error.\n- ($1463) Pass `DeclareMathOperator` to `mathjax`.\n\n## [7.0.2] - 2019-06-07\n\n### Changed\n- (#1417) Change default math preview cursor symbol.\n\n### Fixed\n- (#1405) Add eol to `newcommand` file for mathjax.\n- (#1412) Fix the width of textLayer on pdf viewer.\n- (#1413) Fixed the menu of pdf viewer.\n\n## [7.0.1] - 2019-05-24\n\n### Fixed\n- (#1389) Highlight `\\verb` in math mode.\n- (#1390) Update alternate keyboard selection.\n- (#1397) Allow multi-line captions.\n- (#1397) Allow one level of `{...}` inside caption.\n- (#1399) Declare `displaymath` as a math environment.\n- (#1395,#1402) Wait for Web Socket to open.\n\n## [7.0.0] - 2019-05-17 - Work in the Cloud Update\n\n### Added\n- (#1326) Show label or given number to ref in hover on the ref.\n- (#1345) Support single and double line font warnings.\n- (#1357) Enable LaTeX Workshop to work with VSCode Remote Dev.\n\n### Fixed\n- (#1343) Make `buildOnFileChange` work regardless of the activeTextEditor.\n- (#1354) Add new command defs from an input file to hover preview.\n- (#1355) Add default trim mode setting.\n- (#1363) Extend font warning second line to other warnings.\n- (#1363) Locate matching pair for inline environments.\n\n## [6.5.1] - 2019-04-28\n\n### Fixed\n- (#1298,#1333) Fix structure analyzer with inclusion cycle.\n- (#1319) Use `PWD` to resolve paths in `.fls` files.\n- (#1331) Keep cursor >= 0 when shifting section.\n- (#1333) Auto build from imported files work again.\n- (#1334) Don't throw error when `synctexjs` fails.\n- (#1341) Handle cycle in `clearTeXFileTree`.\n\n## [6.5.0] - 2019-04-25\n\n### Added\n- (#1307) Add some details into `commands.json`.\n- (#1310) Provide details for `environments.json`.\n- (#1321) Make go back and forward buttons on pdf viewer work with SyncTeX.\n\n### Fixed\n- (#710) Highlight fenced code block with extra `{ }` argument.\n- (#1298) Prevent circular dependencies in manager.\n- (#1302) Remove label from `equation` and `align`.\n- (#1313) Load `latex-mathsymbols_cmd.json` by default.\n- (#1322) Less escapes in wordpattern.\n\n## [6.4.0] - 2019-04-11\n\n### Added\n- (#1263) Add accent commands.\n- (#1265) Make port of viewer configurable.\n- (#1267) Add label field to `AutocompleteEntry`.\n- (#1273) Configure the editor group for the tab viewer with `view.pdf.tab.useNewGroup`.\n\n### Changed\n- Deprecate the old action dropdown, replace with side view.\n\n### Fixed\n- Improve regex for hovering on inline maths.\n- Make auto build interval configurable, not 1000ms.\n- Skip postprocessing (e.g., refresh viewer) if latexmk is skipped, i.e., no change.\n- (#1272) Root file detection with auto build and `subfiles` package.\n- (#1278) Support preview for `$$...$$`.\n- (#1281) Allow using previous recipe by default, configurable at `latex.recipe.default`.\n- (#1288) Use file pooling for `chokidar` watch.\n- (#1290) Expand all placeholders.\n\n## [6.3.0] - 2019-04-01\n\n### Added\n- Add intellisense for the figure environment.\n- Support file completion for import package.\n- (#1234) Add `Save without Building`.\n\n### Fixed\n- Fix external reverse synctex on Windows.\n- (#922) Use scala syntax inside `scalacode` environment.\n- (#1235) Declare `[a-zA-Z]*` matrix as array environments.\n- (#1249) Intellisense for custom environments.\n- (#1250) Support Ctrl+click to open an included file.\n- (#1237) Support `graphicspath` for `includegraphics` completion.\n- (#1252) Highlight `IEEEeqnarray`.\n- (#1254) Look for output files in `outDir` instead of `rootDir`.\n- (#1259) Highlight `begin`...`end` inside `macrocode` (doctex).\n\n## [6.2.2] - 2019-03-15\n\n### Fixed\n- (#1231) Never watch `/dev/null`.\n\n## [6.2.1] - 2019-03-13\n\n### Fixed\n- (#1228) Check if depending files exist before watching them.\n\n## [6.2.0] - 2019-03-12\n\n### Added\n- (#1199) Use the last compilation to find and watch all the dependencies.\n- (#1218) Syntax highlighting in `doctex`.\n\n### Fixed\n- (#1210) Respect output dir when refreshing viewer.\n- (#1211) Accept utf8 chars in paths.\n- (#1212) Try/catch the call to `pdflatex` at init.\n- (#1216) Do not inject commented `def` in mathjax.\n- (#1221) Do no parse the command paren inside `newcommand`.\n- (#1222) Use `ctrl+l` `ctrl+l` for `expandLineSelection`.\n- (#1222) Use `ctrl+l` `ctrl+m` for `editor.action.toggleTabFocusMode`.\n- (#1224) Highlight more citation commands.\n\n## [6.1.0] - 2019-03-05\n\n### Added\n- Support `\\def` in addition to `\\newcommand` in mathjax preview.\n- (#731) Narrow search of root file with two new settings to include or exclude files from the root file search mechanism\n  - `latex.search.rootFiles.include`\n  - `latex.search.rootFiles.exclude`\n- (#1188) Add support for sage environments.\n- (#1191) QoL changes to make log messages better.\n- (#1192) Literate haskell.\n\n### Changed\n- (#1180) A complete rework of killing LaTeX mechanism.\n- (#1155) Use workspace directory as `cwd` in external build command.\n\n### Fixed\n- Fix list of suggestions for surrounding text.\n- Capture footnote content as `entity.name.footnote.latex`.\n- (#1185) Declare `\\inlinecode` and code environment as `verbatim`.\n- (#1206) Make the width of math preview on hover larger.\n\n## [6.0.0] - 2019-02-19 - QoL Update\n\n### Added\n- (#484) Add support for [magic TEX or BIB options](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#magic-comments).\n- (#1141) Add a `texdoc` interactive command.\n- (#1157) LaTeX compilation progress monitor.\n- (#1161) Word-based reverse synctex.\n- (#1178) Add a new config `latex.texDirs` to search for input TeX in extra directories.\n\n### Changed\n- Remove deprecated configs.\n- Rename `hoverPreview` configs to `hover.preview`.\n- Rename `latex.clean.run` to `latex.autoClean.run`.\n- Combine `latex.clean.enabled` and `latex.clean.onFailBuild.enabled`.\n- Combine `latex.autoBuild.onSave.enabled` and `latex.autoBuild.onTexChange.enabled` as `latex.autoBuild.run`.\n- Add `latex.clean.subfolder.enabled` to determine whether subfolders should be cleared.\n\n### Fixed\n- (#1135) Parse `biber` warning.\n- (#1137) `%DIR%` in `outDir` works with docker.\n- (#1155) Define an [external build command](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#external-build-command).\n- (#1156) Follow cursor in TeX structure panel.\n- (#1162) Include environment variables to building tools.\n\n## [5.21.0] - 2019-01-24\n\n### Added\n- (#1131) A new config `chktex.run` to define upon which events `chktex` should execute.\n\n### Changed\n- Rename `latex.outputDir` to `latex.outDir` for consistency with LaTeX compiler arguments.\n- (#1131) Rename `chktex.interval` to `chktex.delay` for a better summary.\n\n### Fixed\n- (#1127) Not throw when a parse error occurs in `synctexjs`.\n- (#1132) Do not provide 'Definition' for graphics files.\n- (#1134) Use `path.resolve` to replace `path.join` when applicable.\n- (#1137) Use `%DIR%` as the default value for `latex.outDir`.\n\n## [5.20.2] - 2019-01-20\n\n### Fixed\n- (#1114) No trailing slash in `outpurDir`.\n\n## [5.20.1] - 2019-01-15\n\n### Fixed\n- Correctly parse `putbib` bib-files.\n\n## [5.20.0] - 2019-01-15\n\n### Added\n- Parse bib files provided by `putbib`.\n- (#1063) Allow multiple viewers for the same document.\n- (#1079) Improve `outdir` handling. A new placeholder `%OUTDIR%` is included.\n- (#1096) A new config to clear Compiler logs before each step of recipe.\n- (#1102) A new config to specify additional directories to look for .bib files.\n\n### Changed\n- Enable synctexjs by default.\n- Make command and reference completion local to the LaTeX project.\n- (#1085) Make intellisense local to a root file.\n\n### Fixed\n- (#1070) Synctex to the already opened tex file when using symlinks.\n- (#1071) New command definitions inserted at incorrect position.\n- (#1077) Set the default external PDF viewer based on the OS.\n- (#1082) Only latex id at the beginning of a fenced block.\n- (#1084) Backward synctex when trim mode.\n- (#1089) Improve the accuracy of synctex.\n- (#1092) A command must start with `\\`.\n- (#1095) Remove unnecessary workspace root of file caching.\n- (#1095) Call findRoot when active editor changes.\n- (#1100) Raise an error when viewing a non existing PDF file.\n- (#1109) Clear selection after inserting citation from browser.\n\n## [5.19.0] - 2018-12-21\n\n### Added\n- Add arguments to command definition.\n- Hover on a command to access the package documentation.\n- (#625) Hover on a package name to access his documentation.\n- (#1030) Support a builtin `synctex` functionality.\n- (#1056) Support math preview on `\\ref` with multiple input files.\n- (#1058) Add commands of `intcalc` package.\n\n### Fixed\n- Avoid duplicates in command intellisense.\n- (#609,#669,#801,#837,#857,#883,#1059) Define `wordPattern` of LaTeX.\n- (#970,#1059) Tab out of snippets.\n- (#1060) Hilghlight `xltabular` as `tabular`.\n- (#1061) Scan `newcommand`s for intellisense.\n- (#1074) Avoid viewer title duplication.\n\n## [5.18.0] - 2018-12-10\n\n### Added\n- Comprehensive `cite` and `ref` intellisense improvements.\n- (#1018) Add placeholder `%TMPDIR%` to `latex.outputDir`.\n- (#1022) Add documentation for `pdf.js` shortcuts.\n- (#1024) Add support for `pyglist` env (`verbments` package).\n- (#1028) Add command `view in external viewer` to menu.\n- (#1034) Add intellisense for wrapper packages.\n- (#1036) Intellisense: Add one entry per command signature.\n- (#1051) Add entries from thebibliography to citation intellisense.\n\n### Fixed\n- Fix missing argument in citation.browser.\n- (#1015) Fix formatter not respecting tab and space settings due to wrong option.\n- (#1025) Fold `\\part`.\n- (#1026) Collapse `\\begingroup`...`\\endgroup`.\n- (#1027) Syntax for `lstinline`.\n- (#1031) Fix sorting `completionItems` of commands in dropdown.\n- (#1032) Fix citation completion for keys containing : - _ and .\n- (#1041) Display current file hierarchy in vs code outline.\n- (#1046) Do not capture strings ```...''`.\n- (#1048) Fix reverse synctex for odd and even spread mode.\n- (#1054) Fix trim mode with annotations.\n\n## [5.17.3] - 2018-11-24\n\n### Fixed\n- Hide the sidebar notification green dot of pdf viewer.\n- (#995) Add syntax support for `mintinline`.\n- (#995) curly braces vs pair of same delimiters.\n- (#1006) Focus on active editor after switching to latex view.\n- (#1009) By default disable auto showing the side bar view.\n\n## [5.17.2] - 2018-11-21\n\n### Fixed\n- Reverse synctex not working due to encoded file path.\n\n## [5.17.1] - 2018-11-21\n\n### Fixed\n- A better view switching logic between tex files and git-diffs of them.\n\n## [5.17.0] - 2018-11-21\n\n### Added\n- (#992) Provide command intellisense for selected packages.\n  - Two new config items are included, namely `intellisense.unimathsymbols.enabled` and `intellisense.package.enabled`, defaulted `false`.\n  - For command and environment intellisense of particular contents, enable the corresponding config.\n  - Please report if you experienced significant delay when activating the extension.\n- (#1002) Add a `view.autoActivateLatex.enabled` config to auto-show latex view when switching back from non-tex files.\n\n### Fixed\n- (#987) Fix error loading pdf paths with `#`.\n- (#990) Add `documentclass` preamble folding\n- (#994) Restore trimming option upon pdf refresh.\n- (#997) Hover preview accepts `(re)newcommands*` with the star.\n\n## [5.16.0] - 2018-11-15\n\n### Added\n- (#673) Customizable docker image.\n- (#813) `message.latexlog.exclude` to exclude compiler messages.\n- (#875) Hover preview includes all `(re)newcommands`.\n- (#975) Provide `bind.altKeymap.enabled` config to use alternative `ctrl`+`l` `alt`+ keymap.\n- (#982) Add `%TMPDIR%` placeholder to tools.\n\n### Fixed\n- Better section and LaTeX environment folding.\n- Show status bar icon when switching back from non-tex files.\n- Consistent viewer trimming selector.\n- Wrong bib file definition location.\n- (#765) `syncTeX` upon build finished, beside viewer loaded.\n- (#976) Only insert `\\item` when cursor is at the end of an line or followed by only spaces.\n\n## [5.15.3] - 2018-11-12\n\n### Fixed\n- Retain TeX sidebar badge when focusing PDF viewer.\n\n## [5.15.2] - 2018-11-12\n\n### Fixed\n- Unified PDF viewer dropdown menu style.\n- (#957) Allow `latex.outputDir` to be an absolute path.\n- (#972) Add space after `\\item` in snippets.\n\n## [5.15.1] - 2018-11-07\n\n### Fixed\n- Catch error when parsing theme files.\n- (#956) Hang when magic comments form a loop.\n\n## [5.15.0] - 2018-11-05\n\n### Added\n- (#944) Add content folding.\n\n### Changed\n- (#947) Change the displayed name of this extension to `LaTeX`.\n\n### Fixed\n- (#945) De-indent `\\documentclass{}`.\n\n## [5.14.2] - 2018-11-03\n\n### Fixed\n- (#941) PDFJS library not bundled correctly, again.\n\n## [5.14.1] - 2018-11-03\n\n### Fixed\n- (#941) PDFJS library not bundled correctly.\n\n## [5.14.0] - 2018-11-03\n\n### Added\n- (#909) Add [View on pdf] link in hover on \\ref.\n- (#922) Add highlighting support for `VerbatimOut`.\n- (#935) Upgrade `pdfjs` to 2.0.943.\n\n### Changed\n- (#901) Hover preview not render cursor at the beginning and at the end.\n- (#933) Clean output directory recursively.\n\n### Fixed\n- (#894) Use '/' as the path separator for file completion.\n- (#905) Hover preview stop rendering cursor in label.\n\n## [5.13.0] - 2018-10-18\n\n### Added\n- (#890) Offline math hover preview.\n\n### Fixed\n- Extension distribution size is reduced.\n- (#885) No `--max-print-line` with `xelatex` and `lualatex`.\n- (#886) Understand `\\InputIfFileExists` as an `\\input` command.\n- (#889) Item-on-enter issue with Vim extension.\n\n## [5.12.2] - 2018-10-14\n\n### Fixed\n- Bundle a minimal MathJax with the extension.\n- (#873) Enable scaling of math preview in hover.\n\n## [5.12.1] - 2018-10-14\n\n### Fixed\n- Not able to preview maths in LaTeX environments.\n\n## [5.12.0] - 2018-10-14\n\n### Added\n- Insert `\\item` on enter again.\n- Auto-completion for file path.\n- (#864) Use webpack for release bundling.\n- (#867) Hover on LaTeX for math preview.\n\n## [5.11.1] - 2018-10-05\n\n### Fixed\n- (#849) Use WebView API for PDF content persistency.\n\n## [5.11.0] - 2018-10-05\n\n### Added\n- More keyboard shortcuts `@tecosaur`.\n- (#809) Implement keybindings for snippets.\n\n### Fixed\n- More syntax highlight improvements.\n- (#816) Ignore outputDir setting when directly viewing PDFs.\n\n## [5.10.2] - 2018-09-25\n\n### Added\n- Add more text formatting commands to latex.json.\n- Add more math symbols as snippets.\n- (#789) Add shortcut ctrl/cmd+alt+x to activate latex badge.\n- (#809) Use `@v` + letter for variants of greek letters.\n\n### Fixed\n- (#796) Add extra file stack handling for MikTeX.\n- (#803) Use dedicated scopes for curly/round brackets.\n- (#806) Make commands available for surrounding text.\n- (#808) Chmod 755 instead of 777 for potential security flaw.\n- (#819) Associate `.ltx` with TeX filetype.\n- (#821) Make underscore excluded in `constant.character.math.tex`.\n\n## [5.10.1] - 2018-09-18\n\n### Fixed\n- (#796) Prevent build commands from breaking lines in output.\n- (#796) Fix wrong handle of non canonical `EOL` in log messages.\n- (#797) Fix `undefined` depth error in LaTeX structure.\n- (#798) Select line in `gotoSection`.\n- (#802) Add contextual menu back, enabled by a new configuration item.\n\n## [5.10.0] - 2018-09-14\n\n### Added\n- Add command view to sidebar.\n- (#768) Meaningful symbol definitions.\n- (#790) Added snippet for Greek letters to detail.\n- (#792) Enable activity bar item only on LaTeX projects.\n- (#794) Enable snippets usage on selected text.\n\n### Fixed\n- (#786) Correct file path parsing in LaTeX log.\n- (#788) Make tooltips honor message line breaks.\n\n## [5.9.0] - 2018-09-09\n\n### Added\n- Show LaTeX project structure in a new activity bar badge.\n- Adapt to new vscode `1.27` platform-specific keybind.\n- (#730) Log parsing improvements.\n- (#733) Make `outputDir` understand placeholders.\n- (#743) Allow any filetype extension to be declared as latex.\n- (#744) Automatically trigger intellisense after inserting a snippet and selected commands.\n- (#780) Add more `amsmath` environments to snippets.\n\n### Changed\n- Remove snippets placeholders default values.\n- Show outline of the current file in built-in `outline` view.\n\n### Fixed\n- (#752) Fix outline when using \\input with a full path.\n- (#781) Handle multiline log messages.\n- (#783) Re-open all opened PDF upon activation.\n\n## [5.8.2] - 2018-08-16\n\n### Fixed\n- Temporarily remove `enter-to-insert-\\item` feature.\n\n## [5.8.1] - 2018-08-15\n\n### Fixed\n- (#739) Correctly insert linebreak with ENTER outside `itemize` environment.\n\n## [5.8.0] - 2018-08-15\n\n### Added\n- Add config to enable file cleaning after a failed building process.\n- (#705) Support `\\import` as well as `\\subimport` for outline and build.\n- (#719) Supersed 'Enter' to automatically add `\\item` while itemizing.\n- (#720) Support nested `subimport`s `@Moberstein`.\n\n### Fixed\n- README contents.\n- Make sure magic comments start at the beginning of the line.\n- (#696) Make outline handle title with nested braces.\n- (#723) Finding root file when using nested `subimport`.\n- (#728) Do not autocomplete `\\end`.\n- (#736) Do not build upon file change if building, suppress next build within 1s.\n\n## [5.7.0] - 2018-07-24\n\n### Added\n- (#701) Add config to disable badbox information.\n- (#710) Add syntax support for latex fenced block in markdown.\n- (#717) Auto show PDF on left click in file explorer.\n\n### Fixed\n- Make sure to ignore all comments in Outline.\n- (#713) Make sure to ignore comments when finding dependencies.\n\n## [5.6.1] - 2018-07-09\n\n### Fixed\n- (#693) Correct pdf tab focus logic.\n- (#694) Adopt new grid layout.\n\n## [5.6.0] - 2018-07-09\n\n### Added\n- Add a new config to ignore too large bib-files.\n- (#499) Add chktex auto-fix for `$...$` and `$$...$$`.\n- (#658) Add import package support to outline.\n- (#666) Add a new pattern for badbox warning.\n- (#668) Add `(){}[].,` to macro boundaries.\n- (#684) Support multiple root file.\n- (#686) Smart `.chktexrc` location detection.\n\n### Fixed\n- Fix a problem preventing `latexindent` working on directories with spaces.\n- (#556) Do not start build for terminated process\n- (#653) Honor insertSpaces in latexformatter.\n- (#663) Fixed documentation for `bigvee` and `bigwedge`.\n- (#667) Complete `\\hyperref[]` with labels.\n- (#668) Fix math keyword highlighting followed by `_`.\n- (#682) Don't lose focus for pdf tab preview.\n\n## [5.5.1] - 2018-06-06\n\n### Fixed\n- (#635) Outline update with `autoBuild.onSave` disabled.\n- (#646) Reference completion with multiple files.\n- (#648) Wrap `vscode.window.showErrorMessage` to respect the config.\n- (#652) Nested maths environment highlighting.\n\n## [5.5.0] - 2018-05-22\n\n### Added\n- (#600) Provide a command to view in vscode tab.\n- (#613) Add auto synctex after build config.\n\n\n### Fixed\n- Bibtex incorrectly parse entries without delimitors.\n- (#628, #629) More fixes on syntax highlighting.\n- (#634) Ignore labels defined in comments.\n- (#637) Use detached mode when opening external viewer.\n- (#640) Prompt title and author in citation hover hint\n\n## [5.4.0] - 2018-05-16\n\n### Added\n- (#618) Snippets with no leading `\\`.\n\n### Changed\n- (#604) Ignore `\"` in LaTeX syntax highlighting.\n\n### Fixed\n- (#595) Handle nested `{...}` in macro arguments.\n- (#606) Declare cases as a math environment.\n- (#609) For maths snippets, use `$0` as the placeholder for the body part.\n- (#615) Make syntax aware of optional arguments.\n- (#624) Syntax highlighting for `&` and `\\\\`.\n\n## [5.3.3] - 2018-05-06\n\n### Added\n- (#565) Format bibtex with formatter.\n\n### Changed\n- (#597) Do not highlight strings in .bib files @jlelong.\n- (#598) Autocomplete for `\\left` command @jcmonteiro.\n- (#603) Remove double `\"` matching highlight.\n\n### Fixed\n- Fix `not using scheme` warning when activating extension.\n- (#559) Double encode `&` in url to prevent browser auto-decode.\n- (#566) Recognize indented section headers in outline.\n- (#567) Remove `frame` in environment hint and add in commands.\n- (#586) Ignore sections after `\\end{document}` in outline.\n\n## [5.3.2] - 2018-05-03\n\n### Changed\n- (#585) Merge latex-memoir into latex @jlelong.\n\n### Fixed\n- (#575) Fix unbalanced strings in syntax highlights @jlelong.\n- (#576) Remove `set -euo` in linux docker executables.\n- (#577) Disable latexindent check when docker enabled.\n- (#579) Do not capture `{...}` groups @jlelong.\n- (#581) Fix no completion for double backslash @jlelong.\n- (#582,#583) Further LaTeX syntax re-organize @jlelong.\n\n## [5.3.1] - 2018-04-25\n\n### Added\n\n- (#552) Add multicursor to current environment name @jlelong.\n- (#573) Add environments and package completion @chantisnake.\n\n### Fixed\n- (#181) Correct in-tab view option.\n- (#568) Prevent completion for `\\\\`.\n\n## [5.3.0] - 2018-04-16\n\n### Added\n\n- Experimental docker support.\n\n### Fixed\n- (#546) More syntax highlighting adjustments @jlelong.\n\n## [5.2.0] - 2018-04-14\n\n### Added\n- (#441) Add `%TEX%` placeholder for external synctex.\n- (#511) Experimental texify log parsing.\n- (#529) Turns the step name into the program name @acristoffers.\n- (#532) Add Close / Navigate to environment actions @jlelong.\n- (#534) Complete \\sqrt as \\sqrt{x} using snippets @jlelong.\n\n### Fixed\n- (#533) Set working directory when calling LaTeX binaries @Arxisos.\n- (#539) Correct magic comment description.\n\n## [5.1.0] - 2018-04-10\n\n### Added\n- (#441) Add syncTeX to external experimental support.\n- (#512) Show recipe progress in statusbar @oerpli.\n- (#513) Add kill process function.\n\n### Fixed\n- (#520) View correct PDF with `outputDir` set.\n- (#521) No `bib` will be executed without a `%! BIB program` comment @acristoffers.\n- (#522) Fix highlighting of {\\\\{...\\\\}} blocks @jlelong.\n- (#523) Fix key/value highlighting in bib files @jlelong.\n- (#526,#527) Dependency updates @thetric.\n\n## [5.0.4] - 2018-04-04\n\n### Added\n- (#496) Add options to show/hide messages with different severities.\n- (#500) Add open compiler log option to error message.\n\n### Fixed\n- (#504) Respect recipe when magic comment is given @acristoffers.\n- (#507) Does not show warning after immigration to recipe system.\n\n## [5.0.3] - 2018-03-26\n\n### Fixed\n- (#494) Pick viewer in default case where 'viewer' is 'none'.\n\n## [5.0.2] - 2018-03-25\n\n### Fixed\n- (#489) Magic comment program with undefined arguments.\n\n## [5.0.1] - 2018-03-25\n\n### Added\n- (#482) Show info on how to change default pdf viewer.\n- (#483) Auto change toolchain to recipe.\n\n### Changed\n- Overhaul `All Actions` quickdrop menu.\n\n### Fixed\n- Correct building process fatal error status bar icon.\n- (#485) Formatter works for paths with spaces.\n\n## [5.0.0] - 2018-03-24 - Recipe Update\n\n### Added\n- (#426) `\\usepackage` intellisense.\n- (#441) Unofficial external PDF viewer support.\n- (#441) Selectable view icon viewer target.\n- (#447) Multiple embedded PDF viewer improvements @chatziko.\n- (#459) Make arguments for latexindent configurable @project-pp.\n- (#467) Intelligently add root magic comment @oerpli.\n\n### Changed\n- Use the new notification UI of vscode.\n- (#457,#468,#471,#473,#481) Multiple LaTeX syntax highlighting improvements @jlelong.\n- (#477) Change the original toolchain system to a new recipe system.\n  - Please refer to the updated README on how to migrate.\n\n### Fixed\n- (#449) Fix a typo in snippet for 'cline' command @hy950831.\n\n### P.S.\n- Why skipping version 4? Four is sometimes considered an unlucky number in Chinese. XD\n\n## [3.14.0] - 2018-02-22\n\n### Added\n- (#415) Support document range formatting @zoehneto.\n- (#424) Support latex specific formatting settings @zoehneto.\n- (#416) Clean auxillary files and retry once on build errors @schrej.\n\n### Changed\n- Disable surrounding command by default.\n\n### Fixed\n- (#401) Use `127.0.0.1` instead of `localhost`.\n- (#417) Improved synctex accuracy @chatziko.\n- (#418) Focus the iframe of the pdf viewer to enable keyboard navigation @chatziko.\n- (#419) Handle external links in the embedded viewer @chatziko.\n\n\n## [3.13.0] - 2018-01-30\n\n### Added\n- (#332) Ctrl click on file name to navigate.\n- (#372) Show dropdown menu on which file to build.\n- (#383) Make path for latexindent configurable.\n\n### Fixed\n- (#381) Fix current working directory issue when formatting on windows.\n\n## [3.12.3] - 2018-01-10\n\n### Fixed\n- (#373) Toolchain does not append `-pdflatex=pdflatex` to `latexmk`.\n\n## [3.12.2] - 2018-01-09\n\n### Fixed\n- Normalize path separator to *nix-style `/` on Windows.\n\n## [3.12.1] - 2018-01-09\n\n### Fixed\n- (#368) Formatter now respect vscode indent settings @zoehneto.\n- (#369) The color of PDF viewer can be controlled.\n- (#371) `latexmk` uses magic command to select compiler.\n\n## [3.12.0] - 2018-01-05\n\n### Added\n- (#363) Integrate nfode/latex-formatter with fix for indent.log @zoehneto.\n\n### Fixed\n- (#359) Fix PDF viewing with ipv6 address @caidao22.\n- (#361) Comments may contain latex commands that should not be read @jsinglet.\n- (#365) Remove `$` auto-pairing.\n\n## [3.11.0] - 2018-01-02\n### Added\n- Add conflict extension check.\n- (#240) View any PDF file from the context menu.\n- (#249) Clean auxiliary file now respect globs.\n- (#355) Add region markers support @Ash258.\n\n### Changed\n- (#286) Hide print buttons when PDF is viewed in vscode.\n\n## [3.10.1] - 2017-12-26\n### Fixed\n- (#346) `\\input{file.tex}` need not to be at the row start to be included in outline.\n- (#353) `\\begin{comment}` syntax highlight.\n\n## [3.10.0] - 2017-12-19\n### Added\n- (#315) Highlight the location of SyncTeX in PDF viewer.\n\n### Fixed\n- Tweak SyncTeX accuracy.\n\n## [3.9.1] - 2017-12-13\n### Changed\n- Tweak toolbar show/hide behavior and threshold.\n\n## [3.9.0] - 2017-12-11\n### Added\n- (#335) add an option to specify the browser used to view PDF file @Lencerf.\n\n### Changed\n- (#343) Move mouse on viewer to show toolbar, revert viewer style.\n\n### Fixed\n- (#341) Clarify `latex.outputDir` usage.\n\n## [3.8.0] - 2017-12-01\n### Added\n- (#321) LaTeX inline math completion @innerlee.\n- A new config item to disable new version message.\n\n### Fixed\n- (#325) Parse paths with hashtag.\n- (#333) PDF viewer with new theme has 2px border overflow.\n\n## [3.7.0] - 2017-11-21\n### Added\n- (#308) Multi-root support @innerlee.\n- (#313) `chkTeX` now supports `.chktexrc` config @innerlee.\n\n### Changed\n- (#314) Empty bibliography warning is now omitted @innerlee.\n- (#320) All LaTeX Workshop commands also activate the extension despite document type.\n\n### Fixed\n- (#312) SyncTeX fails if the current position locates on last line which is empty @innerlee.\n- (#323) Irregular LaTeX log lead to trailing whitespace in file stack.\n\n## [3.6.2] - 2017-11-15\n### Changed\n- (#283, #302) Update README @lippertmarkus.\n- (#305) Change PDF viewer theme to be brighter. This theme reduces eye strain when refreshing PDF @innerlee.\n\n## [3.6.1] - 2017-11-06\n### Fixed\n- (#297) PDF path can contain `#` now.\n\n## [3.6.0] - 2017-11-01\n### Added\n- (#288) New `intellisense.surroundCommand.enabled` config to control command surrounding feature.\n\n## [3.5.5] - 2017-10-03\n### Fixed\n- (#284) Fix CMap URL to display CJK languages correctly @maruta.\n\n## [3.5.4] - 2017-09-29\n### Changed\n- (#275) New icon @bartosz-antosik. Nice!\n\n## [3.5.3] - 2017-09-19\n### Changed\n- (#272) Consider TeX files as proper project sources.\n\n### Fixed\n- (#268) Saving document actually changes outline.\n\n## [3.5.2] - 2017-09-11\n### Fixed\n- Better expl3 syntax highlight not shipped in `3.5.1`.\n\n## [3.5.1] - 2017-09-11\n### Changed\n- (#261) Use dedicated output panel to display LaTeX compiler logs.\n- (#267) Better expl3 highlight with `@`.\n\n## [3.5.0] - 2017-09-06\n### Added\n- (#256) `document`, `frame`, `columns` and `column` environments.\n- (#259) Expl3 colorizer.\n\n### Fixed\n- (#257) Use \"editorTextFocus\" as key-bind condition.\n- Wrong content surrounded by command on long lines.\n\n## [3.4.2] - 2017-09-04\n### Fixed\n- (#244) `opn` won't open web browsers for PDF viewer. Prompt instead.\n\n## [3.4.1] - 2017-08-31\n### Fixed\n- (#244) Dev console error when switching to non-editor panes.\n- (#254) Use dirty logic to replace vscode-vim-specific command for LaTeX command surrounding.\n\n## [3.4.0] - 2017-08-30\n### Added\n- (#246) Surround selection with latex command by pressing `\\`.\n\n### Fixed\n- Intellisense citation browser overridden by word hint.\n\n## [3.3.4] - 2017-08-28\n### Fixed\n- (#247) Fix pdf viewer default setting won't work issue.\n\n## [3.3.3] - 2017-08-22\n### Fixed\n- (#235) Add surrounding pairs for opening ` and closing '.\n- (#239) Support `label={some-label}` type reference.\n- (#242) Correct bibtex parser position offset.\n- (#245) Log parser file resolve from root instead of stack.\n\n## [3.3.2] - 2017-08-15\n### Fixed\n- Reverse synctex opens `tex` file in the wrong view column when bottom panel is visible.\n\n## [3.3.1] - 2017-08-14\n### Fixed\n- (#220) Continuous non-stop parsing `tex` file.\n\n## [3.3.0] - 2017-08-08\n### Changed\n- Use `pdfjs-dist` to reduce codebase size.\n- Refresh PDF with pdf.js viewer API to reduce flashing time.\n\n### Fixed\n- (#221) Open synctex document in non-pdf-viewer column.\n\n## [3.2.2] - 2017-08-07\n### Fixed\n- (#229) Tab bar view-pdf icon is back.\n\n## [3.2.1] - 2017-08-03\n### Fixed\n- (#223) Multi-file LaTeX log messages point to wrong file.\n\n## [3.2.0] - 2017-08-02\n### Added\n- (#219) Show all symbol definitions within a document and the project.\n- (#224) Count single file words and floats when not opening the root LaTeX file.\n\n## [3.1.2] - 2017-07-31\n### Fixed\n- (#216) Wrong status bar display when killing child processes.\n- (#217) PDF tab viewer over UNC cannot refresh.\n\n## [3.1.1] - 2017-07-30\n### Fixed\n- (#214, #215) PDF viewer not properly registered in extension.\n\n## [3.1.0] - 2017-07-29\n### Added\n- (#142) LaTeX project word counter by TeXCount.\n  - Windows users are suggested to upgrade [TeXCount](http://app.uio.no/ifi/texcount/download.html) to version 3.0.1.\n- (#212) Add `newcommand` etc definition support.\n\n### Fixed\n- (#211) Tab viewer support UNC address\n\n## [3.0.1] - 2017-07-28\n### Fixed\n- (#208) Extension initialization failed when no root file is found.\n\n## [3.0.0] - 2017-07-27 - Language Update\n### Added\n- (#184) Add LaTeX language hover and definition providers.\n- (#202) Extra biblatex entry types.\n- (#204) Basic auto-indent feature provided by VS Code.\n\n### Changed\n- (#205) Re-construct latex log parser. Credited to [`@Vogel612`](https://github.com/Vogel612).\n\n### Fixed\n- (#203) Multiple optional parameter support to `\\cite`.\n\n## [2.10.2] - 2017-07-15\n### Fixed\n- (#195) `lstlisting` messes up syntax highlight.\n- (#196) Citation browser auto-complete replaces all characters in curly brackets.\n\n## [2.10.1] - 2017-07-13\n### Changed\n- (#190) Now use a standalone file under extension folder to perform version check.\n\n### Fixed\n- (#193) Duplicated entries in quick menu if Action is invoked multiple times.\n- Click `Close` on new version alert redirects to GitHub repo.\n\n## [2.10.0] - 2017-07-06\n### Added\n- (#182) Use `|` as delimiters for outline section tags (`view.outline.sections`) in the same level.\n- Supporting entries in the dropdown quick menu.\n- Version update notice with small candies.\n\n### Fixed\n- (#183) Citation browser does not replace the character already input in `\\cite{xxx`.\n\n## [2.9.1] - 2017-07-04\n### Fixed\n- Extension unable to activate due to typo in retrieving outline configuration item.\n\n## [2.9.0] - 2017-07-04\n### Added\n- (#177) Add a new configuration item to customize LaTeX outline structure.\n\n### Changed\n- (#178) LaTeX outline only show on LaTeX documents.\n  - This requires an API from Insider channel. Public channel users need to wait for a while.\n- Rename `latex-workshop.viewer` configs to `latex-workshop.view`, and move existing configs to `pdf` sub-domain.\n\n## [2.8.1] - 2017-07-02\n### Fixed\n- (#132, #173) Citation browser won't search if any bibtex item does not have title attribute.\n- Extension activate upon vscode start regardless of language setting.\n\n## [2.8.0] - 2017-06-30\n### Added\n- (#175) Add LaTeX document outline. Credited to [`@jsinglet`](https://github.com/jsinglet).\n\n## [2.7.1] - 2017-06-29\n### Changed\n- (#176) Use a new bibtex parser to better handle double quoted strings in bib files.\n\n## [2.7.0] - 2017-06-26\n### Added\n- (#169) Add new configuration entry `latex.additionalBib` to auto-complete globally included `.bib` files.\n\n### Fixed\n- Chokidar watches the same file multiple times if multi-included.\n\n## [2.6.0] - 2017-06-19\n### Added\n- (#168) Add new placeholder `%DIR%` in toolchain.\n\n## [2.5.1] - 2017-06-16\n### Fixed\n- (#167) Linter shows no linting message if `chktex` returns warnings.\n\n## [2.5.0] - 2017-06-13\n### Added\n- (#156) Two new config items to control the default parameters for PDF viewer.\n\n## [2.4.1] - 2017-06-12\n### Changed\n- (#158) Use theme color to colorize status bar messages.\n\n### Fixed\n- (#161) Add auto pairing for `$` and `.\n- (#155) Remove `lstlisting` specific highlight rules.\n\n## [2.4.0] - 2017-05-30\n### Added\n- (#154) Support `# !TeX program` magic comment.\n\n### Changed\n- (#141) `itemize` and `enumerate` intellisense append an `\\item`.\n\n## [2.3.3] - 2017-05-25\n### Fixed\n- (#144) Typo on multline environment.\n\n## [2.3.2] - 2017-05-17\n### Changed\n- More debug info when killing previous building process upon saving files.\n\n## [2.3.1] - 2017-05-08\n### Fixed\n- VS Code 1.12 makes pdf-viewer iframe oversize horizontally.\n\n## [2.3.0] - 2017-05-06\n### Added\n- (#127) Reference intellisense now provide context in completion item details.\n\n## [2.2.1] - 2017-04-25\n### Changed\n- (#128) User configurable citation intellisense method (inline or browser).\n- (#128) Citation browser search-able by authors and citation keys.\n\n## [2.2.0] - 2017-04-25\n### Added\n- Default keyboard shortcuts for all LaTeX Workshop commands.\n\n## [2.1.4] - 2017-04-17\n### Fixed\n- (#116) Fix mis-read outputDir config.\n\n## [2.1.3] - 2017-04-17\n### Fixed\n- (#115) Fix reading wrong outputDir config when creating paths.\n\n## [2.1.2] - 2017-04-17\n### Fixed\n- (#114) Clean project also clean files in outputDir.\n- (#108) Correctly parse bib entries surrounded by quotes.\n\n## [2.1.1] - 2017-04-13\n### Fixed\n- (#110) Temporarily solve MikTeX chktex return code 1 problem.\n- (#104) Support non-pdflatex toolchain in latexmk.\n\n## [2.1.0] - 2017-04-11\n### Added\n- (#103) Add an `outputDir` config to define the LaTeX output directory.\n\n### Fixed\n- (#105) Building multi-root project would always compile the same file.\n\n## [2.0.0] - 2017-04-10 - Configuration Update\n### Added\n- (#90) Citation intellisense display item customizable in configurations.\n- (#90) A citation browser accessible from Actions or Quick Menu.\n- (#93) SyncTeX path now configurable in configurations.\n- (#96) Alerts when obsolete configuration items are found.\n\n### Changed\n- (#92) Quick Menu items are prepended with `LaTeX Workshop` for easier access.\n- (#96) All configuration items are renamed.\n  - This is a backward incompatible change. Users are required to re-set their configurations.\n- (#96) All commands use `spawn` instead of `exec` for more stable cross-platform experience.\n\n## [1.4.2] - 2017-04-06\n### Changed\n- (#88) Raw LaTeX log now displays in a separate new tab.\n  - Raw log content will refresh in real-time.\n\n## [1.4.1] - 2017-04-05\n### Fixed\n- (#86) Forward SyncTeX from LaTeX to PDF now works properly.\n\n## [1.4.0] - 2017-04-04\n### Added\n- (#79) Environments can be autocompleted with `\\`.\n  - For example, `\\begin{align}\\n\\n\\end{align}` will show after typing `\\align` or shorter.\n- (#81) A quick menu showing all LaTeX Workshop commands.\n  - It can be invoked by clicking the status bar item, right click any `LaTeX` file, or using `latex-workshop.actions` command.\n- (#84) Add many uni-math symbols to intellisense.\n\n### Changed\n- (#81) Clicking status bar item can show the previous status, as well as the quick menu.\n- (#81) Some commands are removed in the right click context menu.\n\n## [1.3.0] - 2017-04-03\n### Changed\n- (#71) Extension now uses `chokidar` to monitor file changes.\n  - This change will significantly reduce disk IO when intellisense is frequently triggered.\n\n### Fixed\n- (#74) Fix `.tex` extension name not properly removed when replacing `%DOC%` in toolchains.\n\n## [1.2.2] - 2017-03-31\n### Added\n- (#68) `ChkTeX` code action for `12: interword space`.\n\n### Fixed\n- (#67) `ChkTeX` ignores configuration and lints upon changing active editor.\n\n## [1.2.1] - 2017-03-30\n### Fixed\n- (#65) Commands with arguments incorrected inserted with `\\undefined{args}`.\n\n## [1.2.0] - 2017-03-30\nLet's welcome @jabooth who joins the development of LaTeX Workshop!\n\n### Added\n- Auto clean LaTeX project after building LaTeX project, or on demand.\n- (#60) Many `ChkTeX` diagnostics have code actions. See readme for more.\n- (#62) Add back the default LaTeX commands to intellisense.\n\n### Changed\n- (#57) Now `ChkTeX` reads from stdin instead of temp files.\n\n## [1.1.2] - 2017-03-29\n### Changed\n- (#51) Now diagnostics show message sources.\n- (#56) Real-time `ChkTeX` on active editor.\n\n### Fixed\n- (#54) Web page url different from the one with tab view.\n\n## [1.1.1] - 2017-03-28\n### Changed\n- (#45) `ChkTeX` diagnostics separated from `LateX` ones.\n- (#46) Now save all editors when building.\n- A higher-resolution new icon.\n\n### Fixed\n- (#44) `.tex` files with dot in the file name cannot get recognized in `\\input`.\n- (#48) Use `.bib` entry whitelist to avoid issues by unformal entries.\n\n## [1.1.0] - 2017-03-27\n### Added\n- (#39) LaTeX linting with `ChkTeX`.\n\n### Changed\n- Web page title will show `[disconnected]` when the websocket is closed.\n  - Such web pages cannot communicate with the extension. Thus will not auto refresh or SyncTeX.\n- Temp files created by log parser will be automatically deleted. In most cases.\n\n## [1.0.2] - 2017-03-26\n### Fixed\n- (#38) Cope with typical language ids.\n\n## [1.0.1] - 2017-03-26\n### Fixed\n- (#37) Extension failed to activate with language id `latex` (instead of `LaTeX`).\n\n## [1.0.0] - 2017-03-26\n- Completely re-write the extension with more extensibility.\n  - Original features should be inherited. If not, please submit issues.\n\n## [0.2.20] - 2017-03-19\n### Changed\n- (#29) Status bar item auto-fold after two seconds.\n- (#29) Status bar item does not display on non-tex files.\n\n## [0.2.19] - 2017-03-16\n### Fixed\n- (#30) Not able to parse multiple bib files in a same command.\n\n### Changed\n- (#28) Use icons provided by @bartosz-antosik. Many thanks!\n\n## [0.2.18] - 2017-03-15\n### Changed\n- (#21) Use icon instead of text in editor title to save space.\n\n## [0.2.17] - 2017-03-14\n### Fixed\n- (#25) Bibliography file in subfolders now supports autocompletion.\n\n## [0.2.16] - 2017-02-28\n### Added\n- (#18) Compile from active editor command.\n\n## [0.2.15] - 2017-02-19\n### Changed\n- (#14) Do not pop log panel with no log messages.\n\n## [0.2.14] - 2017-02-16\n### Changed\n- (#13) Remove quote autocomplete.\n\n## [0.2.13] - 2017-02-06\n### Changed\n- (#10) ENTER after backslash new creates a new line.\n\n## [0.2.12] - 2017-02-04\n### Changed\n- (#9) Disable Mac OS binary check.\n\n## [0.2.11] - 2017-01-29\n### Added\n- A lovely icon in status bar to toggle compile-on-save feature.\n  - The configuration `latex-workshop.compile_on_save` is used to set the initial state.\n\n### Changed\n- The compilation logging pattern.\n\n## [0.2.10] - 2017-01-27\n### Fixed\n- SyncTeX use full path with `\\.\\` in Windows.\n\n## [0.2.9] - 2017-01-27\n### Fixed\n- (#8) SyncTeX use full path and the constructed uri is different. Credited to `jccha`.\n- (#8) OSX CMD+Click not working for reverse SyncTeX. Credited to `jccha`.\n\n## [0.2.8] - 2017-01-27\n### Changed\n- Now configurations will take effect without reload except `compiler`.\n\n### Fixed\n- (#7) SyncTeX fails when main document is not in root. Credited to `Andersw88`.\n- Compile twice if unsaved and click compile from context menu.\n\n## [0.2.7] - 2017-01-26\n### Changed\n- Way of presenting latex log results.\n\n### Fixed\n- Unable to parse `file.tex:123: latex error` type error.\n\n## [0.2.6] - 2017-01-17\n### Fixed\n- Missing requirejs dependency leading to failed extension initialization.\n\n## [0.2.5] - 2017-01-17\n### Added\n- LaTeX log parser. Output to LaTeX Workshop output channel.\n\n### Fixed\n- Ignoring double curly brackets in parsed bibtex items to avoid spamming.\n\n## [0.2.4] - 2017-01-17\n### Changed\n- Better bibTeX autocompletion\n  - Now provide title, publication, and authors in citation autocomplete.\n  - If parser failed, fallback to original implementation.\n- Add curly brackets after multiple commands.\n  - User can go on typing for inner content autocompletion.\n\n## [0.2.3] - 2017-01-15\n### Changed\n- Revert back to manual CompletionItem and SnippetString creation for auto-completion.\n  - Users should experience a better auto-completion feature.\n\n## [0.2.2] - 2017-01-13\n### Fixed\n- (#4) Compile throw error on sending websocket message with undefined client.\n\n## [0.2.1] - 2017-01-12\n### Changed\n- In browser PDF preview URL.\n  - User should not experience any feature changes\n\n### Removed\n- Several useless PDF viewer buttons: open, download, presentation mode.\n\n## [0.2.0] - 2017-01-11\n### Added\n- In browser PDF preview.\n  - Find it in right-click menu!\n\n### Changed\n- Server-client communication model.\n- Refractor the context menu.\n\n## [0.1.11] - 2017-01-09\n### Fixed\n- PDF viewer scroll to (0,0) after clicking compilation but before refreshing.\n\n## [0.1.10] - 2017-01-09\n### Changed\n- (#2) Use HTML data to store PDF position before compilation.\n  - The PDF position can be restored after compilation instead of previous SyncTeX method.\n\n## [0.1.9] - 2017-01-05\n### Added\n- More colorization with textmate tex grammar.\n\n## [0.1.8] - 2017-01-05\n### Fixed\n- Command autocomplete not working.\n\n## [0.1.7] - 2017-01-05\n### Added\n- Colorization using textmate grammar file.\n\n### Changed\n- Wildcard reference autocomplete for any commands with `ref`.\n\n## [0.1.6] - 2017-01-04\n### Added\n- `latex-workshop.main_document` config to explicitly define the main document.\n  - If set with some value, the auto-detection is disabled.\n  - If set `null`, auto-detection will use the old logic as in 0.1.5.\n\n### Changed\n- Snippet for \\begin command. Now the \\end command will also be appended.\n\n## [0.1.5] - 2017-01-04\n### Added\n- Right click text editor for compile option.\n\n### Changed\n- (#1) Compile and preview will search for main tex document for processing.\n  - Main document is determined by \"\\begin{document}\" string.\n  - If the current active file has this string, it is set to the main document.\n  - Otherwise, all .tex files under the root of the opened folder is checked. The first one with this string is the main document.\n  - Tests needed.\n\n## [0.1.4] - 2017-01-04\n### Changed\n- Now PDF viewer will try to use synctex to scroll to tex editor cursor position upon refresh.\n\n## [0.1.3] - 2017-01-03\n### Changed\n- Use code snippet for all latex backslash commands.\n  - Now autocomplete will show when the first letter is input after the backslash.\n  - Now backslash autocomplete can use tab to navigate to proper positions for contents.\n\n### Fixed\n- \\ref won't develop autocomplete recommends when .aux file is not generated.\n\n## [0.1.2] - 2017-01-03\n### Changed\n- Synchronously read related files when developing citation and reference autocompletes.\n  - The original acynchronous pattern will miss the latest changes.\n  - If the autocomplete reaction speed is greatly influenced in large files, this change may be reverted.\n\n## [0.1.1] - 2017-01-01\n### Added\n- An extension icon.\n\n### Fixed\n- In some cases \\cite and \\ref won't develop autocomplete recommends.\n\n## [0.1.0] - 2017-01-01\n### Added\n- Compile LaTeX to PDF\n- Live Preview\n- SyncTex\n- Autocomplete on backslash, citation, and reference\n- Configuration\n\n## [0.0.1] - [0.0.12]\n- Merged into version 0.1.0.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing to LaTeX-Workshop\n\nPlease notice that we can reject any kinds of pull requests. Especially, we will reject any requests for changes on default values of settings.\nWe also reject requests adding additional recipes to default settings.\n\n## Quickstart\n\n```bash\ngit clone https://github.com/James-Yu/LaTeX-Workshop.git\ncd ./LaTeX-Workshop\ncp ./dev/githooks/pre-commit .git/hooks/\nnpm ci\ncode -n .\n```\n\nPress <kbd>F5</kbd> in vscode to start the development version in debug mode.\n\n## Prerequisites for building the extension\n\nMake sure you have installed:\n\n- [`node.js`](https://nodejs.org/) v18\n- `npm` v10\n- the [`eslint`](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) extension for VS Code (recommended)\n\nThen run\n\n    npm ci\n\ninside the extension workspace to download the node modules needed to build the extension.\n\n## Development\n\nTo lint changes, run\n\n    npm run lint\n\nTo compile, run\n\n    npm run compile\n\nTo build a release image, run\n\n    npm run release\n\nTo run tests, run\n\n    npm run test\n\nTo run a specific test, run\n\n    npm run test build/fixture001\n\n## Testing and debugging the extension\n\nIn VS Code, run `Debug: Select and Start Debugging` from the Command Palette, and select `Run Extension`. A new window will pop up where you can test the extension.\n\n## Documents\n\nYou can refer to:\n\n- https://github.com/James-Yu/LaTeX-Workshop/wiki\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/README.md\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/viewer/README.md\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/data/README.md\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/resources/snippetview/README.md\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/test/README.md\n- https://github.com/James-Yu/LaTeX-Workshop/blob/master/.github/workflows/README.md\n"
  },
  {
    "path": "LICENSE.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 James Yu\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Visual Studio Code LaTeX Workshop Extension\n\n[![version](https://img.shields.io/visual-studio-marketplace/v/James-Yu.latex-workshop)](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)\n[![updated](https://img.shields.io/visual-studio-marketplace/last-updated/James-Yu.latex-workshop)](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)\n[![release](https://img.shields.io/visual-studio-marketplace/release-date/James-Yu.latex-workshop)](https://vsmarketplacebadge.apphb.com/downloads-short/James-Yu.latex-workshop.svg)\n\n[![downloads](https://img.shields.io/visual-studio-marketplace/d/James-Yu.latex-workshop)](https://vsmarketplacebadge.apphb.com/downloads-short/James-Yu.latex-workshop.svg)\n[![installs](https://img.shields.io/visual-studio-marketplace/i/James-Yu.latex-workshop)](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)\n[![rating](https://img.shields.io/visual-studio-marketplace/r/James-Yu.latex-workshop)](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop)\n[![license](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://raw.githubusercontent.com/James-Yu/LaTeX-Workshop/master/LICENSE.txt)\n\n[![TeX Live on Windows](https://github.com/James-Yu/LaTeX-Workshop/workflows/TeX%20Live%20on%20Windows/badge.svg)](https://github.com/James-Yu/LaTeX-Workshop/actions?query=workflow%3A%22TeX+Live+on+Windows%22)\n[![TeX Live on macOS](https://github.com/James-Yu/LaTeX-Workshop/workflows/TeX%20Live%20on%20macOS/badge.svg)](https://github.com/James-Yu/LaTeX-Workshop/actions?query=workflow%3A%22TeX+Live+on+macOS%22)\n[![TeX Live on Linux](https://github.com/James-Yu/LaTeX-Workshop/workflows/TeX%20Live%20on%20Linux/badge.svg)](https://github.com/James-Yu/LaTeX-Workshop/actions?query=workflow%3A%22TeX+Live+on+Linux%22)\n\nLaTeX Workshop is an extension for [Visual Studio Code](https://code.visualstudio.com/), aiming to provide core features for LaTeX typesetting with Visual Studio Code.\n\nThis project won't be successful without contributions from the community, especially from the current and past key contributors:\n\n- Jerome Lelong [`@jlelong`](https://github.com/jlelong)\n- Takashi Tamura [`@tamuratak`](https://github.com/tamuratak)\n- Tecosaur [`@tecosaur`](https://github.com/tecosaur)\n- James Booth [`@jabooth`](https://github.com/jabooth)\n\nThank you so much!\n\n**Note that the latest version of LaTeX-Workshop requires at least VSCode `1.96.0` (December 2024 or later).**\n\n## Manual\n\nThe manual of the extension is maintained as a [wiki](https://github.com/James-Yu/LaTeX-Workshop/wiki)\n\n### Table of Contents\n\n- [Home](https://github.com/James-Yu/LaTeX-Workshop/wiki/Home)\n- [Installation and basic settings](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install)\n  - [Requirements](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#requirements)\n  - [Installation](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#installation)\n  - [Setting PATH environment variable](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#setting-path-environment-variable)\n  - [Settings](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#settings)\n  - [Usage](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#usage)\n    - [Supported languages](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#supported-languages)\n  - [Using Docker](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#using-docker)\n  - [Using WSL](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install#using-wsl)\n- [Compiling](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile)\n  - [Building the document](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#building-the-document)\n  - [Terminating the current compilation](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#terminating-the-current-compilation)\n  - [Auto build LaTeX](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#auto-build-latex)\n  - [LaTeX recipes](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#latex-recipes)\n    - [LaTeX tools](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#latex-tools)\n    - [Placeholders](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders)\n  - [Multi file projects](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#multi-file-projects)\n  - [Cleaning generated files](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#cleaning-generated-files)\n  - [Catching errors and warnings](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#catching-errors-and-warnings)\n  - [External build command](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#external-build-command)\n  - [Magic comments](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#magic-comments)\n  - [Building a `.jnw` file](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#building-a-jnw-file)\n  - [Building a `.rnw` file](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#building-a-rnw-file)\n- [Linting](https://github.com/James-Yu/LaTeX-Workshop/wiki/Linters)\n  - [Duplicate labels](https://github.com/James-Yu/LaTeX-Workshop/wiki/Linters#duplicate-labels)\n  - [Chktex](https://github.com/James-Yu/LaTeX-Workshop/wiki/Linters#chktex)\n- [Viewing & SyncTeX](https://github.com/James-Yu/LaTeX-Workshop/wiki/View)\n  - [Internal PDF viewer](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#internal-pdf-viewer)\n    - [Color](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#color)\n    - [Invert mode](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#invert-mode)\n  - [SyncTeX](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#synctex)\n  - [External PDF viewer](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#external-pdf-viewer)\n    - [Using SyncTeX with an external viewer](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#using-synctex-with-an-external-viewer)\n- [Formatting](https://github.com/James-Yu/LaTeX-Workshop/wiki/Format)\n  - [LaTeX files](https://github.com/James-Yu/LaTeX-Workshop/wiki/Format#LaTeX-files)\n  - [Bibtex files](https://github.com/James-Yu/LaTeX-Workshop/wiki/Format#Bibtex-files)\n- [Intellisense](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense)\n  - [Citations](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#Citations)\n  - [References](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#References)\n  - [Commands](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#Commands)\n  - [Environments](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#Environments)\n  - [Files](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#files)\n  - [Bibtex Files](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#bibtex-files)\n  - [`@` suggestions](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#-suggestions)\n    - [Inserting Greek letters](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#inserting-greek-letters)\n    - [Handy mathematical helpers](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#Handy-mathematical-helpers)\n- [Snippets and shortcuts](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets)\n  - [Environments](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Environments)\n  - [Sectioning](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Sectioning)\n  - [Font commands](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#font-commands-and-snippets)\n  - [Mathematical font commands](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Mathematical-font-commands)\n  - [Surrounding text](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#surrounding-text)\n  - [Miscellaneous actions](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Miscellaneous-Actions)\n- [Hovering and previewing features](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover)\n  - [Documentation of a package](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#documentation-of-a-package)\n  - [Previewing equations](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#previewing-equations)\n  - [Previewing graphics](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#previewing-graphics)\n  - [Previewing citation details](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#previewing-citation-details)\n  - [Previewing references](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#previewing-references)\n  - [Documentation of a command](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#documentation-of-a-command)\n- [Playing with environments](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments)\n  - [Inserting an environment](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#inserting-an-environment)\n  - [Itemize like environments](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#Itemize-like-environments)\n  - [Navigating and selecting](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#Navigating-and-selecting)\n  - [Changing between `\\[...\\]` and `\\begin{}...\\end{}`](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#changing-between--and-beginend)\n  - [Closing the current environment](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#Closing-the-current-environment)\n  - [Surrounding selection with an environment](https://github.com/James-Yu/LaTeX-Workshop/wiki/Environments#Surrounding-selection-with-an-environment)\n- [Extra features](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures)\n  - [Structure of the document](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures#structure-of-the-document)\n  - [Code folding](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures#code-folding)\n  - [Counting words](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures#counting-words)\n  - [Literate programming support using LaTeX](https://github.com/James-Yu/LaTeX-Workshop/wiki/ExtraFeatures#Literate-programming-support-using-LaTeX)\n- [VS Code Remote Development](https://github.com/James-Yu/LaTeX-Workshop/wiki/Remote)\n- [FAQ and common issues](https://github.com/James-Yu/LaTeX-Workshop/wiki/FAQ)\n\n## Features (Taster)\n\nThis is not a complete list but rather a preview of some of the coolest features.\n\n- Build LaTeX (including BibTeX) to PDF automatically on save.\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/build.gif\" alt=\"build process gif\" height=\"20px\">\n\n- View PDF on-the-fly (in VS Code or browser).\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/preview.gif\" alt=\"demo of preview feature\" height=\"220px\">\n\n- Direct and reverse [SyncTeX](https://github.com/James-Yu/LaTeX-Workshop/wiki/View#synctex). Click to jump between location in `.tex` source and PDF and vice versa.\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/synctex.gif\" alt=\"demo of SyncTeX\" height=\"220px\">\n\n- Intellisense, including completions for bibliography keys (`\\cite{}`) and labels (`\\ref{}`).\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/ref.gif\" alt=\"intellisense demo\" height=\"80px\">\n\n- LaTeX log parser, with errors and warnings in LaTeX build automatically reported in VS Code.\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/errors.png\" alt=\"error reporting demo\" height=\"125px\">\n\n  - Linting\n\n  <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/chktex.gif\" alt=\"auto \\item demo\" height=\"90px\">\n\n- [Snippets](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets)\n  - A lot of LaTeX commands can be typed using snippets starting in `\\`, then type part of the command to narrow the search.\n\n    <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/subparagraph.gif\" alt=\"auto \\item demo\" height=\"80px\">\n\n  - Surround some selected text with a LaTeX command using <kbd>ctrl</kbd>+<kbd>l</kbd>, <kbd>ctrl</kbd>+<kbd>w</kbd> (<kbd>⌘</kbd>+<kbd>l</kbd>, <kbd>⌘</kbd>+<kbd>w</kbd> on Mac). A new menu pops up to select the command. This works with multi selections. The former approach using `\\` has been deprecated.\n\n    <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/wrap.gif\" alt=\"wrap demo\" height=\"140px\">\n\n  - We also provide a few other suggestion mechanisms\n    - Greek letters are obtained as `@` + `letter`. Some letters have variants, which are available as `@v` + `letter`. See [here](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#inserting-greek-letters).\n\n        <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/greek letter.gif\" alt=\"greek letters demo\" height=\"20px\">\n\n    - Common environments can be obtained by `BXY` where `XY` are the first two letters of the environment name, eg. `BEQ` gives the `equation` environment. If you want the star version of the environment, use `BSXX`, eg. `BSEQ` gives the `equation*` environment. See [here](https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#Handy-mathematical-helpers).\n\n        <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/BSAL snippet.gif\" alt=\"BSAL demo\" height=\"55px\">\n    - Common font commands can be obtained by `FXY` where `XY` are the last two letters of the font command name, eg. `FIT` gives `\\textit{}`. See [here](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#font-commands-and-snippets).\n\n        <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/FBF snippet.gif\" alt=\"FBF demo\" height=\"20px\">\n    - Many other maths symbols can be obtained with the `@` prefix. See [here](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#Handy-mathematical-helpers).\n\n      <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/frac.gif\" alt=\"\\frac shortcut demo\" height=\"20px\">\n      <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/int.gif\" alt=\"\\int shortcut demo\" height=\"20px\">\n- [Shortcuts](https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets#font-commands-and-snippets)\n  - In addition to snippets, there are shortcuts provided by the extension that allow you to easily format text (and one or two other things).\n\n    <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/emph.gif\" alt=\"\\emph{} demo\" height=\"20px\">\n- When the current line starts with `\\item` or `\\item[]`, hitting `Enter` automatically adds a newline starting in the same way. For a better handling of the last item, hitting `Enter` on a line only containing `\\item` or `\\item[]` actually deletes the content of the line. The `alt+Enter` is bind to the standard newline command. This automatic insertion of `\\item` can be deactivated by setting `latex-workshop.bind.enter.key` to `false`.\n\n    <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/auto item.gif\" alt=\"auto \\item demo\" height=\"80px\">\n\n- [Preview on hover](https://github.com/James-Yu/LaTeX-Workshop/wiki/Hover#previewing-equations). Hovering over the start tag of a math environment causes a mathjax preview to pop up.\n\n    <img src=\"https://github.com/James-Yu/LaTeX-Workshop/raw/master/demo_media/hover.gif\" alt=\"equation hover demo\" height=\"120px\">\n\n## GitHub\n\nThe code for this extension is available on github at: https://github.com/James-Yu/LaTeX-Workshop\n\n## Like this work?\n\n- :smile: Star this project on GitHub and Visual Studio Marketplace\n- :blush: Leave a comment\n- :relaxed: Thank the develops and community for their effort.\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n"
  },
  {
    "path": "data/README.md",
    "content": "# Data files for intellisense\n\nWe describe how the data files used for intellisense are generated.\n\n## Unicode mathematical symbols\n\nThe file `unimathsymbols.json` is generated from the [`unimathsymbols.txt`](http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt) by Günter Milde using the [`unimathsymbols.py`](../dev/unimathsymbols.py) script.\n\n## Default commands and environments\n\nDefault lists of commands and environments are defined in\n\n- [`commands.json`](commands.json)\n- [`environments.json`](environments.json)\n\n## Bibtex\n\nThe file [`bibtex-entries.json`](]bibtex-entries.json) lists for every bibtex entry type the mandatory fields. The file [`bibtex-optional-entries.json`](]bibtex-optional-entries.json) lists for every bibtex entry type the optional fields.\n\n## Files inside `packages/`\n\nJSON files in this directory and in the subdirectories are generated from the [cwl files by the TeXStudio project](https://github.com/texstudio-org/texstudio/tree/master/completion) by the [`getcwl.sh`](../dev/getcwl.sh) and [`pkgcommand.py`](../dev/pkgcommand.py) scripts.\n\nCompletion files for classes are all prefixed by `class-`.\n\nSee [dev/README.md](../dev/README.md#pkgcommand.py) for the description of the file formats.\n\n## Class names\n\nClass names are stored in [`classnames.json`](classnames.json)\n\nThis file is generated by the [`ctanpkglist.py`](../dev/ctanpkglist.py) script.\n\n**Note that this file depends on the local LaTeX installation.**\n\n## Class and package names\n\nPackage names are stored in [`packagenames.json`](packagenames.json)\n\nThis file is based on the list provided by [CTAN](https://ctan.org/json/2.0/packages) and on the [`ctanpkglist.py`](../dev/ctanpkglist.py) script.\n\nSee [dev/README.md](../dev/README.md#ctanpkglist.py) for the description of how this file is computed.\n\n## Misc\n\nWe have to use four backslashes `\\\\\\\\` in some snippet definitions. See  the [official document](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_grammar), [microsoft/vscode/issues/32020](https://github.com/microsoft/vscode/issues/32020), and [microsoft/vscode/issues/33933](https://github.com/microsoft/vscode/issues/33933) for the details.\n\n## Third-Party License Notices\n\n### unimathsymbols.txt\n\n- http://milde.users.sourceforge.net/LUCR/Math/\n- http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt\n\nUnicode symbols and corresponding LaTeX math mode commands\n\n```\nDate\n    Last revised 2011-04-04\nCopyright\n    © 2011 Günter Milde <milde@users.sf.net>\nLicence\n\n    This work may be distributed and/or modified under the conditions of\n    the LaTeX Project Public License, either version 1.3 of this license\n    or (at your option) any later version.\n\n    The latest version of this license is in\n    http://www.latex-project.org/lppl.txt\n```\n"
  },
  {
    "path": "data/at-suggestions.json",
    "content": "{\n\t\"cdot\": {\n\t\t\"prefix\": \"@.\",\n\t\t\"body\": \"\\\\cdot\",\n\t\t\"description\": \"\\\\cdot\"\n\t},\n\t\"infinity\": {\n\t\t\"prefix\": \"@8\",\n\t\t\"body\": \"\\\\infty\",\n\t\t\"description\": \"infinity symbol\"\n\t},\n\t\"partial\": {\n\t\t\"prefix\": \"@6\",\n\t\t\"body\": \"\\\\partial\",\n\t\t\"description\": \"partial derivative symbol\"\n\t},\n\t\"fraction\": {\n\t\t\"prefix\": \"@/\",\n\t\t\"body\": \"\\\\frac{$1}{$2}$0\",\n\t\t\"description\": \"fraction\"\n\t},\n\t\"fraction2\": {\n\t\t\"prefix\": \"@%\",\n\t\t\"body\": \"\\\\frac{$1}{$2}$0\",\n\t\t\"description\": \"fraction\"\n\t},\n\t\"hat\": {\n\t\t\"prefix\": \"@^\",\n\t\t\"body\": \"\\\\hat{${1:${TM_SELECTED_TEXT}}}$0\",\n\t\t\"description\": \"hat\"\n\t},\n\t\"bar\": {\n\t\t\"prefix\": \"@_\",\n\t\t\"body\": \"\\\\bar{${1:${TM_SELECTED_TEXT}}}$0\",\n\t\t\"description\": \"bar\"\n\t},\n\t\"circ\": {\n\t\t\"prefix\": \"@@\",\n\t\t\"body\": \"\\\\circ\",\n\t\t\"description\": \"circ\"\n\t},\n\t\"supcirc\": {\n\t\t\"prefix\": \"@0\",\n\t\t\"body\": \"^\\\\circ\",\n\t\t\"description\": \"superscript circ\"\n\t},\n\t\"dot\": {\n\t\t\"prefix\": \"@;\",\n\t\t\"body\": \"\\\\dot{${1:${TM_SELECTED_TEXT}}}$0\",\n\t\t\"description\": \"dot\"\n\t},\n\t\"ddot\": {\n\t\t\"prefix\": \"@:\",\n\t\t\"body\": \"\\\\ddot{${1:${TM_SELECTED_TEXT}}}$0\",\n\t\t\"description\": \"ddot\"\n\t},\n\n\t\"equiv\": {\n\t\t\"prefix\": \"@=\",\n\t\t\"body\": \"\\\\equiv\",\n\t\t\"description\": \"equiv symbol\"\n\t},\n\t\"times\": {\n\t\t\"prefix\": \"@*\",\n\t\t\"body\": \"\\\\times\",\n\t\t\"description\": \"times symbol\"\n\t},\n\t\"leq\": {\n\t\t\"prefix\": \"@<\",\n\t\t\"body\": \"\\\\leq\",\n\t\t\"description\": \"leq symbol\"\n\t},\n\t\"geq\": {\n\t\t\"prefix\": \"@>\",\n\t\t\"body\": \"\\\\geq\",\n\t\t\"description\": \"geq symbol\"\n\t},\n\t\"sqrt\": {\n\t\t\"prefix\": \"@2\",\n\t\t\"body\": \"\\\\sqrt{${1:${TM_SELECTED_TEXT}}}$0\",\n\t\t\"description\": \"sqrt command\"\n\t},\n\t\"int\": {\n\t\t\"prefix\": \"@I\",\n\t\t\"body\": \"\\\\int_{$1}^{$2}$0\",\n\t\t\"description\": \"integral\"\n\t},\n\t\"Big|\": {\n\t\t\"prefix\": \"@|\",\n\t\t\"body\": \"\\\\Big|\",\n\t\t\"description\": \"Big |\"\n\t},\n\t\"bigcup\": {\n\t\t\"prefix\": \"@+\",\n\t\t\"body\": \"\\\\bigcup\",\n\t\t\"description\": \"bigcup\"\n\t},\n\t\"bigcap\": {\n\t\t\"prefix\": \"@-\",\n\t\t\"body\": \"\\\\bigcap\",\n\t\t\"description\": \"bigcap\"\n\t},\n\t\"nonumber\": {\n\t\t\"prefix\": \"@,\",\n\t\t\"body\": \"\\\\nonumber\",\n\t\t\"description\": \"nonumber\"\n\t},\n\t\"alpha\": {\n\t\t\"prefix\": \"@a\",\n\t\t\"body\": \"\\\\alpha\",\n\t\t\"description\": \"alpha\"\n\t},\n\t\"beta\": {\n\t\t\"prefix\": \"@b\",\n\t\t\"body\": \"\\\\beta\",\n\t\t\"description\": \"beta\"\n\t},\n\t\"chi\": {\n\t\t\"prefix\": \"@c\",\n\t\t\"body\": \"\\\\chi\",\n\t\t\"description\": \"chi\"\n\t},\n\t\"delta\": {\n\t\t\"prefix\": \"@d\",\n\t\t\"body\": \"\\\\delta\",\n\t\t\"description\": \"delta\"\n\t},\n\t\"epsilon\": {\n\t\t\"prefix\": \"@e\",\n\t\t\"body\": \"\\\\epsilon\",\n\t\t\"description\": \"epsilon\"\n\t},\n\t\"varepsilon\": {\n\t\t\"prefix\": \"@ve\",\n\t\t\"body\": \"\\\\varepsilon\",\n\t\t\"description\": \"varepsilon\"\n\t},\n\t\"phi\": {\n\t\t\"prefix\": \"@f\",\n\t\t\"body\": \"\\\\phi\",\n\t\t\"description\": \"phi\"\n\t},\n\t\"varphi\": {\n\t\t\"prefix\": \"@vf\",\n\t\t\"body\": \"\\\\varphi\",\n\t\t\"description\": \"varphi\"\n\t},\n\t\"gamma\": {\n\t\t\"prefix\": \"@g\",\n\t\t\"body\": \"\\\\gamma\",\n\t\t\"description\": \"gamma\"\n\t},\n\t\"eta\": {\n\t\t\"prefix\": \"@h\",\n\t\t\"body\": \"\\\\eta\",\n\t\t\"description\": \"eta\"\n\t},\n\t\"iota\": {\n\t\t\"prefix\": \"@i\",\n\t\t\"body\": \"\\\\iota\",\n\t\t\"description\": \"iota\"\n\t},\n\t\"kappa\": {\n\t\t\"prefix\": \"@k\",\n\t\t\"body\": \"\\\\kappa\",\n\t\t\"description\": \"kappa\"\n\t},\n\t\"lambda\": {\n\t\t\"prefix\": \"@l\",\n\t\t\"body\": \"\\\\lambda\",\n\t\t\"description\": \"lambda\"\n\t},\n\t\"mu\": {\n\t\t\"prefix\": \"@m\",\n\t\t\"body\": \"\\\\mu\",\n\t\t\"description\": \"mu\"\n\t},\n\t\"nu\": {\n\t\t\"prefix\": \"@n\",\n\t\t\"body\": \"\\\\nu\",\n\t\t\"description\": \"nu\"\n\t},\n\t\"pi\": {\n\t\t\"prefix\": \"@p\",\n\t\t\"body\": \"\\\\pi\",\n\t\t\"description\": \"pi\"\n\t},\n\t\"varpi\": {\n\t\t\"prefix\": \"@vp\",\n\t\t\"body\": \"\\\\varpi\",\n\t\t\"description\": \"varpi\"\n\t},\n\t\"theta\": {\n\t\t\"prefix\": \"@q\",\n\t\t\"body\": \"\\\\theta\",\n\t\t\"description\": \"theta\"\n\t},\n\t\"vartheta\": {\n\t\t\"prefix\": \"@vq\",\n\t\t\"body\": \"\\\\vartheta\",\n\t\t\"description\": \"vartheta\"\n\t},\n\t\"rho\": {\n\t\t\"prefix\": \"@r\",\n\t\t\"body\": \"\\\\rho\",\n\t\t\"description\": \"rho\"\n\t},\n\t\"varrho\": {\n\t\t\"prefix\": \"@vr\",\n\t\t\"body\": \"\\\\varrho\",\n\t\t\"description\": \"varrho\"\n\t},\n\t\"sigma\": {\n\t\t\"prefix\": \"@s\",\n\t\t\"body\": \"\\\\sigma\",\n\t\t\"description\": \"sigma\"\n\t},\n\t\"varsigma\": {\n\t\t\"prefix\": \"@vs\",\n\t\t\"body\": \"\\\\varsigma\",\n\t\t\"description\": \"varsigma\"\n\t},\n\t\"tau\": {\n\t\t\"prefix\": \"@t\",\n\t\t\"body\": \"\\\\tau\",\n\t\t\"description\": \"tau\"\n\t},\n\t\"upsilon\": {\n\t\t\"prefix\": \"@u\",\n\t\t\"body\": \"\\\\upsilon\",\n\t\t\"description\": \"upsilon\"\n\t},\n\t\"omega\": {\n\t\t\"prefix\": \"@o\",\n\t\t\"body\": \"\\\\omega\",\n\t\t\"description\": \"omega\"\n\t},\n\t\"wedge\": {\n\t\t\"prefix\": \"@&\",\n\t\t\"body\": \"\\\\wedge\",\n\t\t\"description\": \"wedge\"\n\t},\n\t\"xi\": {\n\t\t\"prefix\": \"@x\",\n\t\t\"body\": \"\\\\xi\",\n\t\t\"description\": \"xi\"\n\t},\n\t\"psi\": {\n\t\t\"prefix\": \"@y\",\n\t\t\"body\": \"\\\\psi\",\n\t\t\"description\": \"psi\"\n\t},\n\t\"zeta\": {\n\t\t\"prefix\": \"@z\",\n\t\t\"body\": \"\\\\zeta\",\n\t\t\"description\": \"zeta\"\n\t},\n\t\"Delta\": {\n\t\t\"prefix\": \"@D\",\n\t\t\"body\": \"\\\\Delta\",\n\t\t\"description\": \"Delta\"\n\t},\n\t\"Phi\": {\n\t\t\"prefix\": \"@F\",\n\t\t\"body\": \"\\\\Phi\",\n\t\t\"description\": \"Phi\"\n\t},\n\t\"Gamma\": {\n\t\t\"prefix\": \"@G\",\n\t\t\"body\": \"\\\\Gamma\",\n\t\t\"description\": \"Gamma\"\n\t},\n\t\"Theta\": {\n\t\t\"prefix\": \"@Q\",\n\t\t\"body\": \"\\\\Theta\",\n\t\t\"description\": \"Theta\"\n\t},\n\t\"Lambda\": {\n\t\t\"prefix\": \"@L\",\n\t\t\"body\": \"\\\\Lambda\",\n\t\t\"description\": \"Lambda\"\n\t},\n\t\"Pi\": {\n\t\t\"prefix\": \"@P\",\n\t\t\"body\": \"\\\\Pi\",\n\t\t\"description\": \"Pi\"\n\t},\n\t\"Xi\": {\n\t\t\"prefix\": \"@X\",\n\t\t\"body\": \"\\\\Xi\",\n\t\t\"description\": \"Xi\"\n\t},\n\t\"Psi\": {\n\t\t\"prefix\": \"@Y\",\n\t\t\"body\": \"\\\\Psi\",\n\t\t\"description\": \"Psi\"\n\t},\n\t\"Sigma\": {\n\t\t\"prefix\": \"@S\",\n\t\t\"body\": \"\\\\Sigma\",\n\t\t\"description\": \"Sigma\"\n\t},\n\t\"Upsilon\": {\n\t\t\"prefix\": \"@U\",\n\t\t\"body\": \"\\\\Upsilon\",\n\t\t\"description\": \"Upsilon\"\n\t},\n\t\"Omega\": {\n\t\t\"prefix\": \"@W\",\n\t\t\"body\": \"\\\\Omega\",\n\t\t\"description\": \"Omega\"\n\t},\n\t\"(\": {\n\t\t\"prefix\": \"@(\",\n\t\t\"body\": \"\\\\left( ${1:${TM_SELECTED_TEXT}} \\\\right)\",\n\t\t\"description\": \"left( ... right)\"\n\t},\n\t\"{\": {\n\t\t\"prefix\": \"@{\",\n\t\t\"body\": \"\\\\left\\\\{ ${1:${TM_SELECTED_TEXT}} \\\\right\\\\\\\\}\",\n\t\t\"description\": \"left{ ... right}\"\n\t},\n\t\"[\": {\n\t\t\"prefix\": \"@[\",\n\t\t\"body\": \"\\\\left[ ${1:${TM_SELECTED_TEXT}} \\\\right]\",\n\t\t\"description\": \"left[ ... right]\"\n\t},\n\t\"|\": {\n\t\t\"prefix\": \"@|\",\n\t\t\"body\": \"\\\\left| ${1:${TM_SELECTED_TEXT}} \\\\right|\",\n\t\t\"description\": \"left| ... right|\"\n\t}\n}\n"
  },
  {
    "path": "data/biblatex-entries.json",
    "content": "{\n    \"article\": [\n        \"author\",\n        \"date\",\n        \"journaltitle\",\n        \"title\",\n        \"year\"\n    ],\n    \"book\": [\n        \"author\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"mvbook\": [\n        \"author\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"inbook\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"bookinbook\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"suppbook\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"booklet\": [\n        \"author\",\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"collection\": [\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"mvcollection\": [\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"incollection\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"suppcollection\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"dataset\": [\n        \"author\",\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"manual\": [\n        \"author\",\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"misc\": [\n        \"author\",\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"online\": [\n        \"author\",\n        \"date\",\n        \"doi\",\n        \"editor\",\n        \"eprint\",\n        \"title\",\n        \"url\",\n        \"year\"\n    ],\n    \"patent\": [\n        \"author\",\n        \"date\",\n        \"number\",\n        \"title\",\n        \"year\"\n    ],\n    \"periodical\": [\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"suppperiodical\": [\n        \"author\",\n        \"date\",\n        \"journaltitle\",\n        \"title\",\n        \"year\"\n    ],\n    \"proceedings\": [\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"mvproceedings\": [\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"inproceedings\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"reference\": [\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"mvreference\": [\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"inreference\": [\n        \"author\",\n        \"booktitle\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ],\n    \"report\": [\n        \"author\",\n        \"date\",\n        \"institution\",\n        \"title\",\n        \"type\",\n        \"year\"\n    ],\n    \"software\": [\n        \"author\",\n        \"date\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"thesis\": [\n        \"author\",\n        \"date\",\n        \"institution\",\n        \"title\",\n        \"type\",\n        \"year\"\n    ],\n    \"unpublished\": [\n        \"author\",\n        \"date\",\n        \"title\",\n        \"year\"\n    ]\n}"
  },
  {
    "path": "data/biblatex-optional-entries.json",
    "content": "{\n    \"article\": [\n        \"addendum\",\n        \"annotator\",\n        \"commentator\",\n        \"doi\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"issn\",\n        \"issue\",\n        \"issuesubtitle\",\n        \"issuetitle\",\n        \"issuetitleaddon\",\n        \"journalsubtitle\",\n        \"journaltitleaddon\",\n        \"language\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"version\",\n        \"volume\"\n    ],\n    \"book\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"mvbook\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"inbook\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"bookauthor\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"bookinbook\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"bookauthor\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"suppbook\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"bookauthor\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"booklet\": [\n        \"addendum\",\n        \"chapter\",\n        \"doi\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"howpublished\",\n        \"language\",\n        \"location\",\n        \"note\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\"\n    ],\n    \"collection\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"mvcollection\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pagetotal\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volumes\"\n    ],\n    \"incollection\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"suppcollection\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"dataset\": [\n        \"addendum\",\n        \"doi\",\n        \"edition\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"language\",\n        \"location\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"manual\": [\n        \"addendum\",\n        \"chapter\",\n        \"doi\",\n        \"edition\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"pagetotal\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"misc\": [\n        \"addendum\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"howpublished\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"organization\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"online\": [\n        \"addendum\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"language\",\n        \"month\",\n        \"note\",\n        \"organization\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"patent\": [\n        \"addendum\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"holder\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"periodical\": [\n        \"addendum\",\n        \"doi\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"issn\",\n        \"issue\",\n        \"issuesubtitle\",\n        \"issuetitle\",\n        \"issuetitleaddon\",\n        \"language\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"volume\"\n    ],\n    \"suppperiodical\": [\n        \"addendum\",\n        \"annotator\",\n        \"commentator\",\n        \"doi\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"issn\",\n        \"issue\",\n        \"issuesubtitle\",\n        \"issuetitle\",\n        \"issuetitleaddon\",\n        \"journalsubtitle\",\n        \"journaltitleaddon\",\n        \"language\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"version\",\n        \"volume\"\n    ],\n    \"proceedings\": [\n        \"addendum\",\n        \"chapter\",\n        \"doi\",\n        \"editor\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"mvproceedings\": [\n        \"addendum\",\n        \"doi\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pagetotal\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volumes\"\n    ],\n    \"inproceedings\": [\n        \"addendum\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"doi\",\n        \"editor\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"reference\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"mvreference\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pagetotal\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volumes\"\n    ],\n    \"inreference\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"editora\",\n        \"editorb\",\n        \"editorc\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"report\": [\n        \"addendum\",\n        \"chapter\",\n        \"doi\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isrn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"software\": [\n        \"addendum\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"howpublished\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"organization\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"thesis\": [\n        \"addendum\",\n        \"chapter\",\n        \"doi\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\"\n    ],\n    \"unpublished\": [\n        \"addendum\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"howpublished\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"venue\"\n    ]\n}"
  },
  {
    "path": "data/bibtex-entries.json",
    "content": "{\n    \"article\": [\n        \"author\",\n        \"journal\",\n        \"number\",\n        \"title\",\n        \"volume\",\n        \"year\"\n    ],\n    \"book\": [\n        \"author\",\n        \"editor\",\n        \"publisher\",\n        \"title\",\n        \"year\"\n    ],\n    \"booklet\": [\n        \"author\",\n        \"title\"\n    ],\n    \"conference\": [\n        \"author\",\n        \"booktitle\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"inbook\": [\n        \"author\",\n        \"chapter\",\n        \"editor\",\n        \"pages\",\n        \"publisher\",\n        \"title\",\n        \"year\"\n    ],\n    \"incollection\": [\n        \"author\",\n        \"booktitle\",\n        \"publisher\",\n        \"title\",\n        \"year\"\n    ],\n    \"inproceedings\": [\n        \"author\",\n        \"booktitle\",\n        \"editor\",\n        \"title\",\n        \"year\"\n    ],\n    \"manual\": [\n        \"author\",\n        \"title\"\n    ],\n    \"mastersthesis\": [\n        \"author\",\n        \"school\",\n        \"title\",\n        \"year\"\n    ],\n    \"misc\": [\n        \"author\",\n        \"howpublished\",\n        \"title\",\n        \"year\"\n    ],\n    \"phdthesis\": [\n        \"author\",\n        \"school\",\n        \"title\",\n        \"year\"\n    ],\n    \"proceedings\": [\n        \"editor\",\n        \"published\",\n        \"series\",\n        \"title\",\n        \"volume\",\n        \"year\"\n    ],\n    \"techreport\": [\n        \"author\",\n        \"institution\",\n        \"title\",\n        \"year\"\n    ],\n    \"unpublished\": [\n        \"author\",\n        \"note\",\n        \"title\",\n        \"year\"\n    ]\n}"
  },
  {
    "path": "data/bibtex-optional-entries.json",
    "content": "{\n    \"article\": [\n        \"addendum\",\n        \"annotator\",\n        \"commentator\",\n        \"doi\",\n        \"editor\",\n        \"eid\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"issn\",\n        \"issue\",\n        \"issuesubtitle\",\n        \"issuetitle\",\n        \"journalsubtitle\",\n        \"language\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"version\",\n        \"volume\"\n    ],\n    \"book\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"booklet\": [\n        \"addendum\",\n        \"adress\",\n        \"chapter\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"howpublished\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\"\n    ],\n    \"conference\": [\n        \"addendum\",\n        \"address\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"doi\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"note.\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"inbook\": [\n        \"addendum\",\n        \"afterword\",\n        \"annotator\",\n        \"bookauthor\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"incollection\": [\n        \"addendum\",\n        \"address\",\n        \"afterword\",\n        \"annotator\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"commentator\",\n        \"doi\",\n        \"edition\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"foreword\",\n        \"introduction\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"origlanguage\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"translator\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"inproceedings\": [\n        \"addendum\",\n        \"address\",\n        \"booksubtitle\",\n        \"booktitleaddon\",\n        \"chapter\",\n        \"doi\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"manual\": [\n        \"addendum\",\n        \"address\",\n        \"chapter\",\n        \"doi\",\n        \"edition\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"pagetotal\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\",\n        \"year\"\n    ],\n    \"mastersthesis\": [\n        \"address\",\n        \"month\",\n        \"note\",\n        \"type\"\n    ],\n    \"misc\": [\n        \"addendum\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"howpublished\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"organization\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\",\n        \"year\"\n    ],\n    \"phdthesis\": [\n        \"addendum\",\n        \"address\",\n        \"chapter\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\"\n    ],\n    \"proceedings\": [\n        \"addendum\",\n        \"address\",\n        \"chapter\",\n        \"doi\",\n        \"editor\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"eventdate\",\n        \"eventtitle\",\n        \"eventtitleaddon\",\n        \"isbn\",\n        \"language\",\n        \"location\",\n        \"mainsubtitle\",\n        \"maintitle\",\n        \"maintitleaddon\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"organization\",\n        \"pages\",\n        \"pagetotal\",\n        \"part\",\n        \"publisher\",\n        \"pubstate\",\n        \"series\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"url\",\n        \"urldate\",\n        \"venue\",\n        \"volume\",\n        \"volumes\"\n    ],\n    \"techreport\": [\n        \"addendum\",\n        \"address\",\n        \"chapter\",\n        \"doi\",\n        \"eprint\",\n        \"eprintclass\",\n        \"eprinttype\",\n        \"isrn\",\n        \"language\",\n        \"location\",\n        \"month\",\n        \"note\",\n        \"number\",\n        \"pages\",\n        \"pagetotal\",\n        \"pubstate\",\n        \"subtitle\",\n        \"titleaddon\",\n        \"type\",\n        \"url\",\n        \"urldate\",\n        \"version\"\n    ],\n    \"unpublished\": [\n        \"month\",\n        \"year\"\n    ]\n}"
  },
  {
    "path": "data/classnames.json",
    "content": "{\n  \"BHCexam\": {\n    \"command\": \"BHCexam\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"BMSTU-IU8\": {\n    \"command\": \"BMSTU-IU8\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ConcProg\": {\n    \"command\": \"ConcProg\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"FUpowerdot\": {\n    \"command\": \"FUpowerdot\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"IEEEconf\": {\n    \"command\": \"IEEEconf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"IEEEtran\": {\n    \"command\": \"IEEEtran\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"IMTEKda\": {\n    \"command\": \"IMTEKda\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ReadableCV\": {\n    \"command\": \"ReadableCV\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"RecipeBook\": {\n    \"command\": \"RecipeBook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"SPhdThesis\": {\n    \"command\": \"SPhdThesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"TOPletter\": {\n    \"command\": \"TOPletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"URbeamer\": {\n    \"command\": \"URbeamer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"URletter\": {\n    \"command\": \"URletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"UoWthesis\": {\n    \"command\": \"UoWthesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"a0poster\": {\n    \"command\": \"a0poster\",\n    \"detail\": \"Support for designing posters on large paper\",\n    \"documentation\": \"https://ctan.org/pkg/a0poster\"\n  },\n  \"aalok\": {\n    \"command\": \"aalok\",\n    \"detail\": \"LaTeX class file for the Marathi journal ‘Aalok’\",\n    \"documentation\": \"https://ctan.org/pkg/aalok\"\n  },\n  \"aastex631\": {\n    \"command\": \"aastex631\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"abntex2\": {\n    \"command\": \"abntex2\",\n    \"detail\": \"Typeset technical and scientific Brazilian documents based on ABNT rules\",\n    \"documentation\": \"https://ctan.org/pkg/abntex2\"\n  },\n  \"abstbook\": {\n    \"command\": \"abstbook\",\n    \"detail\": \"Books of abstracts\",\n    \"documentation\": \"https://ctan.org/pkg/abstbook\"\n  },\n  \"achemso\": {\n    \"command\": \"achemso\",\n    \"detail\": \"Support for American Chemical Society journal submissions\",\n    \"documentation\": \"https://ctan.org/pkg/achemso\"\n  },\n  \"acmart\": {\n    \"command\": \"acmart\",\n    \"detail\": \"Class for typesetting publications of ACM\",\n    \"documentation\": \"https://ctan.org/pkg/acmart\"\n  },\n  \"acmconf\": {\n    \"command\": \"acmconf\",\n    \"detail\": \"Class for ACM conference proceedings\",\n    \"documentation\": \"https://ctan.org/pkg/acmconf\"\n  },\n  \"active-conf\": {\n    \"command\": \"active-conf\",\n    \"detail\": \"Class for typesetting ACTIVE conference papers\",\n    \"documentation\": \"https://ctan.org/pkg/active-conf\"\n  },\n  \"adfathesis\": {\n    \"command\": \"adfathesis\",\n    \"detail\": \"Australian Defence Force Academy thesis format\",\n    \"documentation\": \"https://ctan.org/pkg/adfathesis\"\n  },\n  \"afparticle\": {\n    \"command\": \"afparticle\",\n    \"detail\": \"Typesetting articles for Archives of Forensic Psychology\",\n    \"documentation\": \"https://ctan.org/pkg/afparticle\"\n  },\n  \"afthesis\": {\n    \"command\": \"afthesis\",\n    \"detail\": \"Air Force Institute of Technology thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/afthesis\"\n  },\n  \"agecon\": {\n    \"command\": \"agecon\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"aguplus\": {\n    \"command\": \"aguplus\",\n    \"detail\": \"Styles for American Geophysical Union\",\n    \"documentation\": \"https://ctan.org/pkg/aguplus\"\n  },\n  \"aiaa-tc\": {\n    \"command\": \"aiaa-tc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ajae\": {\n    \"command\": \"ajae\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"akklecture\": {\n    \"command\": \"akklecture\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"akkscript\": {\n    \"command\": \"akkscript\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"akktecdoc\": {\n    \"command\": \"akktecdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"akletter\": {\n    \"command\": \"akletter\",\n    \"detail\": \"Comprehensive letter support\",\n    \"documentation\": \"https://ctan.org/pkg/akletter\"\n  },\n  \"ametsoc\": {\n    \"command\": \"ametsoc\",\n    \"detail\": \"Official American Meteorological Society LaTeX Template\",\n    \"documentation\": \"https://ctan.org/pkg/ametsoc\"\n  },\n  \"amsart\": {\n    \"command\": \"amsart\",\n    \"detail\": \"LaTeX document class for AMS math journal articles\",\n    \"documentation\": \"https://ctan.org/pkg/amsart\"\n  },\n  \"amsbook\": {\n    \"command\": \"amsbook\",\n    \"detail\": \"LaTeX document class for AMS books\",\n    \"documentation\": \"https://ctan.org/pkg/amsbook\"\n  },\n  \"amsdtx\": {\n    \"command\": \"amsdtx\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"amsldoc\": {\n    \"command\": \"amsldoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"amsproc\": {\n    \"command\": \"amsproc\",\n    \"detail\": \"LaTeX document class for AMS conference proceedings\",\n    \"documentation\": \"https://ctan.org/pkg/amsproc\"\n  },\n  \"aomart\": {\n    \"command\": \"aomart\",\n    \"detail\": \"Typeset articles for the Annals of Mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/aomart\"\n  },\n  \"apa\": {\n    \"command\": \"apa\",\n    \"detail\": \"American Psychological Association format\",\n    \"documentation\": \"https://ctan.org/pkg/apa\"\n  },\n  \"apa6\": {\n    \"command\": \"apa6\",\n    \"detail\": \"Format documents in APA style (6th edition)\",\n    \"documentation\": \"https://ctan.org/pkg/apa6\"\n  },\n  \"apa6e\": {\n    \"command\": \"apa6e\",\n    \"detail\": \"Format manuscripts to APA 6th edition guidelines\",\n    \"documentation\": \"https://ctan.org/pkg/apa6e\"\n  },\n  \"apa7\": {\n    \"command\": \"apa7\",\n    \"detail\": \"Format documents in APA style (7th edition)\",\n    \"documentation\": \"https://ctan.org/pkg/apa7\"\n  },\n  \"apecon\": {\n    \"command\": \"apecon\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"arabart\": {\n    \"command\": \"arabart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"arabbook\": {\n    \"command\": \"arabbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"arabic-book\": {\n    \"command\": \"arabic-book\",\n    \"detail\": \"An Arabic book class\",\n    \"documentation\": \"https://ctan.org/pkg/arabic-book\"\n  },\n  \"arabrep\": {\n    \"command\": \"arabrep\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"arabrep1\": {\n    \"command\": \"arabrep1\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"argetabelle\": {\n    \"command\": \"argetabelle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"article\": {\n    \"command\": \"article\",\n    \"detail\": \"Default class for composing an article\",\n    \"documentation\": \"https://ctan.org/pkg/article\"\n  },\n  \"articleingud\": {\n    \"command\": \"articleingud\",\n    \"detail\": \"LaTeX class for articles published in INGENIERIA review\",\n    \"documentation\": \"https://ctan.org/pkg/articleingud\"\n  },\n  \"articoletteracdp\": {\n    \"command\": \"articoletteracdp\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"artikel1\": {\n    \"command\": \"artikel1\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"artikel2\": {\n    \"command\": \"artikel2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"artikel3\": {\n    \"command\": \"artikel3\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"asaetr\": {\n    \"command\": \"asaetr\",\n    \"detail\": \"Transactions of the ASAE\",\n    \"documentation\": \"https://ctan.org/pkg/asaetr\"\n  },\n  \"ascelike\": {\n    \"command\": \"ascelike\",\n    \"detail\": \"Bibliography style for the ASCE\",\n    \"documentation\": \"https://ctan.org/pkg/ascelike\"\n  },\n  \"asmeconf\": {\n    \"command\": \"asmeconf\",\n    \"detail\": \" A LaTeX template for ASME conference papers \",\n    \"documentation\": \"https://ctan.org/pkg/asmeconf\"\n  },\n  \"asmejour\": {\n    \"command\": \"asmejour\",\n    \"detail\": \"A template for ASME journal papers\",\n    \"documentation\": \"https://ctan.org/pkg/asmejour\"\n  },\n  \"assignment\": {\n    \"command\": \"assignment\",\n    \"detail\": \"A class file for typesetting homework and lab assignments\",\n    \"documentation\": \"https://ctan.org/pkg/assignment\"\n  },\n  \"aucklandthesis\": {\n    \"command\": \"aucklandthesis\",\n    \"detail\": \"Memoir-based class for formatting University of Auckland masters' and doctors' theses\",\n    \"documentation\": \"https://ctan.org/pkg/aucklandthesis\"\n  },\n  \"bangorcsthesis\": {\n    \"command\": \"bangorcsthesis\",\n    \"detail\": \"Typeset a thesis at Bangor University\",\n    \"documentation\": \"https://ctan.org/pkg/bangorcsthesis\"\n  },\n  \"bangorexam\": {\n    \"command\": \"bangorexam\",\n    \"detail\": \"Typeset an examination at Bangor University\",\n    \"documentation\": \"https://ctan.org/pkg/bangorexam\"\n  },\n  \"bankstatement\": {\n    \"command\": \"bankstatement\",\n    \"detail\": \"A LaTeX class for bank statements based on csv data\",\n    \"documentation\": \"https://ctan.org/pkg/bankstatement\"\n  },\n  \"barticle\": {\n    \"command\": \"barticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"basque-book\": {\n    \"command\": \"basque-book\",\n    \"detail\": \"Class for book-type documents written in Basque\",\n    \"documentation\": \"https://ctan.org/pkg/basque-book\"\n  },\n  \"bbook\": {\n    \"command\": \"bbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"beamer\": {\n    \"command\": \"beamer\",\n    \"detail\": \"A LaTeX class for producing presentations and slides\",\n    \"documentation\": \"https://ctan.org/pkg/beamer\"\n  },\n  \"beamer-rl\": {\n    \"command\": \"beamer-rl\",\n    \"detail\": \"Right to left presentation with beamer and babel\",\n    \"documentation\": \"https://ctan.org/pkg/beamer-rl\"\n  },\n  \"beamerswitch\": {\n    \"command\": \"beamerswitch\",\n    \"detail\": \"Convenient mode selection in Beamer documents\",\n    \"documentation\": \"https://ctan.org/pkg/beamerswitch\"\n  },\n  \"beaulivre\": {\n    \"command\": \"beaulivre\",\n    \"detail\": \"Write your books in a colorful way\",\n    \"documentation\": \"https://ctan.org/pkg/beaulivre\"\n  },\n  \"beilstein\": {\n    \"command\": \"beilstein\",\n    \"detail\": \"Support for submissions to the “Beilstein Journal of Nanotechnology”\",\n    \"documentation\": \"https://ctan.org/pkg/beilstein\"\n  },\n  \"beletter\": {\n    \"command\": \"beletter\",\n    \"detail\": \"Typeset Belgian letters\",\n    \"documentation\": \"https://ctan.org/pkg/beletter\"\n  },\n  \"bewerbung\": {\n    \"command\": \"bewerbung\",\n    \"detail\": \"Typesetting job applications\",\n    \"documentation\": \"https://ctan.org/pkg/bewerbung\"\n  },\n  \"bgteubner\": {\n    \"command\": \"bgteubner\",\n    \"detail\": \"Class for producing books for the publisher “Teubner Verlag”\",\n    \"documentation\": \"https://ctan.org/pkg/bgteubner\"\n  },\n  \"bidimoderncv\": {\n    \"command\": \"bidimoderncv\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bidipresentation\": {\n    \"command\": \"bidipresentation\",\n    \"detail\": \"Experimental bidi presentation\",\n    \"documentation\": \"https://ctan.org/pkg/bidipresentation\"\n  },\n  \"biditufte-book\": {\n    \"command\": \"biditufte-book\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"biditufte-handout\": {\n    \"command\": \"biditufte-handout\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bitart\": {\n    \"command\": \"bitart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bitbook\": {\n    \"command\": \"bitbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bjfuthesis\": {\n    \"command\": \"bjfuthesis\",\n    \"detail\": \"A thesis class for Beijing Forestry University\",\n    \"documentation\": \"https://ctan.org/pkg/bjfuthesis\"\n  },\n  \"bletter\": {\n    \"command\": \"bletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"boek\": {\n    \"command\": \"boek\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"boek3\": {\n    \"command\": \"boek3\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"book\": {\n    \"command\": \"book\",\n    \"detail\": \"A class for typesetting books\",\n    \"documentation\": \"https://ctan.org/pkg/book\"\n  },\n  \"bookcover\": {\n    \"command\": \"bookcover\",\n    \"detail\": \"A class for book covers and dust jackets\",\n    \"documentation\": \"https://ctan.org/pkg/bookcover\"\n  },\n  \"bookest\": {\n    \"command\": \"bookest\",\n    \"detail\": \"Extended book class\",\n    \"documentation\": \"https://ctan.org/pkg/bookest\"\n  },\n  \"bookshelf\": {\n    \"command\": \"bookshelf\",\n    \"detail\": \"Create a nice image from a BibTeX file\",\n    \"documentation\": \"https://ctan.org/pkg/bookshelf\"\n  },\n  \"br-lex\": {\n    \"command\": \"br-lex\",\n    \"detail\": \"A Class for Typesetting Brazilian legal texts\",\n    \"documentation\": \"https://ctan.org/pkg/br-lex\"\n  },\n  \"brandeis-dissertation\": {\n    \"command\": \"brandeis-dissertation\",\n    \"detail\": \"Class for Brandeis University dissertations\",\n    \"documentation\": \"https://ctan.org/pkg/brandeis-dissertation\"\n  },\n  \"brandeis-problemset\": {\n    \"command\": \"brandeis-problemset\",\n    \"detail\": \"Document class for COSI Problem sets at Brandeis University (Waltham, MA)\",\n    \"documentation\": \"https://ctan.org/pkg/brandeis-problemset\"\n  },\n  \"brandeis-thesis\": {\n    \"command\": \"brandeis-thesis\",\n    \"detail\": \"A class for Brandeis University M.A. theses\",\n    \"documentation\": \"https://ctan.org/pkg/brandeis-thesis\"\n  },\n  \"brief\": {\n    \"command\": \"brief\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"buctcover\": {\n    \"command\": \"buctcover\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"buctthesis\": {\n    \"command\": \"buctthesis\",\n    \"detail\": \"Beijing University of Chemical Technology Thesis Template\",\n    \"documentation\": \"https://ctan.org/pkg/buctthesis\"\n  },\n  \"businesscard-qrcode\": {\n    \"command\": \"businesscard-qrcode\",\n    \"detail\": \"Business cards with QR-Code\",\n    \"documentation\": \"https://ctan.org/pkg/businesscard-qrcode\"\n  },\n  \"bxjsarticle\": {\n    \"command\": \"bxjsarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bxjsbook\": {\n    \"command\": \"bxjsbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bxjsreport\": {\n    \"command\": \"bxjsreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"bxjsslide\": {\n    \"command\": \"bxjsslide\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"caesar_book\": {\n    \"command\": \"caesar_book\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cas-dc\": {\n    \"command\": \"cas-dc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cas-sc\": {\n    \"command\": \"cas-sc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cascadilla\": {\n    \"command\": \"cascadilla\",\n    \"detail\": \"Typeset papers conforming to the stylesheet of the Cascadilla Proceedings Project\",\n    \"documentation\": \"https://ctan.org/pkg/cascadilla\"\n  },\n  \"cassete\": {\n    \"command\": \"cassete\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cc\": {\n    \"command\": \"cc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cd\": {\n    \"command\": \"cd\",\n    \"detail\": \"Typeset CD covers\",\n    \"documentation\": \"https://ctan.org/pkg/cd\"\n  },\n  \"cd-cover\": {\n    \"command\": \"cd-cover\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"cesenaexam\": {\n    \"command\": \"cesenaexam\",\n    \"detail\": \"A class file to typeset exams\",\n    \"documentation\": \"https://ctan.org/pkg/cesenaexam\"\n  },\n  \"cheatsheet\": {\n    \"command\": \"cheatsheet\",\n    \"detail\": \"A simple cheatsheet class\",\n    \"documentation\": \"https://ctan.org/pkg/cheatsheet\"\n  },\n  \"chemmacros-manual\": {\n    \"command\": \"chemmacros-manual\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"chletter\": {\n    \"command\": \"chletter\",\n    \"detail\": \"Class for typesetting letters to Swiss rules\",\n    \"documentation\": \"https://ctan.org/pkg/chletter\"\n  },\n  \"cje\": {\n    \"command\": \"cje\",\n    \"detail\": \"LaTeX document class for CJE articles\",\n    \"documentation\": \"https://ctan.org/pkg/cje\"\n  },\n  \"cnbwp\": {\n    \"command\": \"cnbwp\",\n    \"detail\": \"Typeset working papers of the Czech National Bank\",\n    \"documentation\": \"https://ctan.org/pkg/cnbwp\"\n  },\n  \"cnltx-doc\": {\n    \"command\": \"cnltx-doc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"codedoc\": {\n    \"command\": \"codedoc\",\n    \"detail\": \"LaTeX code and documentation in LaTeX-format file\",\n    \"documentation\": \"https://ctan.org/pkg/codedoc\"\n  },\n  \"colorart\": {\n    \"command\": \"colorart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"colorbook\": {\n    \"command\": \"colorbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"combine\": {\n    \"command\": \"combine\",\n    \"detail\": \"Bundle individual documents into a single document\",\n    \"documentation\": \"https://ctan.org/pkg/combine\"\n  },\n  \"confproc\": {\n    \"command\": \"confproc\",\n    \"detail\": \"A set of tools for generating conference proceedings\",\n    \"documentation\": \"https://ctan.org/pkg/confproc\"\n  },\n  \"contracard\": {\n    \"command\": \"contracard\",\n    \"detail\": \"Generate calling cards for dances\",\n    \"documentation\": \"https://ctan.org/pkg/contracard\"\n  },\n  \"cours\": {\n    \"command\": \"cours\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"courseoutline\": {\n    \"command\": \"courseoutline\",\n    \"detail\": \"Prepare university course outlines\",\n    \"documentation\": \"https://ctan.org/pkg/courseoutline\"\n  },\n  \"coursepaper\": {\n    \"command\": \"coursepaper\",\n    \"detail\": \"Prepare university course papers\",\n    \"documentation\": \"https://ctan.org/pkg/coursepaper\"\n  },\n  \"cquthesis\": {\n    \"command\": \"cquthesis\",\n    \"detail\": \"LaTeX Thesis Template for Chongqing University\",\n    \"documentation\": \"https://ctan.org/pkg/cquthesis\"\n  },\n  \"csbulletin\": {\n    \"command\": \"csbulletin\",\n    \"detail\": \"LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)\",\n    \"documentation\": \"https://ctan.org/pkg/csbulletin\"\n  },\n  \"csbulobalka\": {\n    \"command\": \"csbulobalka\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"csbulv1\": {\n    \"command\": \"csbulv1\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ctexart\": {\n    \"command\": \"ctexart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ctexbeamer\": {\n    \"command\": \"ctexbeamer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ctexbook\": {\n    \"command\": \"ctexbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ctexrep\": {\n    \"command\": \"ctexrep\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ctxdoc\": {\n    \"command\": \"ctxdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"curve\": {\n    \"command\": \"curve\",\n    \"detail\": \"A class for making curriculum vitae\",\n    \"documentation\": \"https://ctan.org/pkg/curve\"\n  },\n  \"cv4tw\": {\n    \"command\": \"cv4tw\",\n    \"detail\": \"LaTeX CV class, with extended details\",\n    \"documentation\": \"https://ctan.org/pkg/cv4tw\"\n  },\n  \"cweb\": {\n    \"command\": \"cweb\",\n    \"detail\": \"A Web system in C\",\n    \"documentation\": \"https://ctan.org/pkg/cweb\"\n  },\n  \"dfgproposal\": {\n    \"command\": \"dfgproposal\",\n    \"detail\": \"Support for writing proposals to the DFG\",\n    \"documentation\": \"https://ctan.org/pkg/dfgproposal\"\n  },\n  \"dfgreporting\": {\n    \"command\": \"dfgreporting\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"dinbrief\": {\n    \"command\": \"dinbrief\",\n    \"detail\": \"German letter DIN style\",\n    \"documentation\": \"https://ctan.org/pkg/dinbrief\"\n  },\n  \"disser\": {\n    \"command\": \"disser\",\n    \"detail\": \"Class and templates for typesetting dissertations in Russian\",\n    \"documentation\": \"https://ctan.org/pkg/disser\"\n  },\n  \"dithesis\": {\n    \"command\": \"dithesis\",\n    \"detail\": \"A class for undergraduate theses at the University of Athens\",\n    \"documentation\": \"https://ctan.org/pkg/dithesis\"\n  },\n  \"droit-fr\": {\n    \"command\": \"droit-fr\",\n    \"detail\": \"Document class and bibliographic style for French law\",\n    \"documentation\": \"https://ctan.org/pkg/droit-fr\"\n  },\n  \"dtk\": {\n    \"command\": \"dtk\",\n    \"detail\": \"Document class for the journal of DANTE\",\n    \"documentation\": \"https://ctan.org/pkg/dtk\"\n  },\n  \"dvdcoll\": {\n    \"command\": \"dvdcoll\",\n    \"detail\": \"A class for typesetting DVD archives\",\n    \"documentation\": \"https://ctan.org/pkg/dvdcoll\"\n  },\n  \"easybook\": {\n    \"command\": \"easybook\",\n    \"detail\": \"Typeset Chinese theses or books\",\n    \"documentation\": \"https://ctan.org/pkg/easybook\"\n  },\n  \"ebsthesis\": {\n    \"command\": \"ebsthesis\",\n    \"detail\": \"Typesetting theses for economics\",\n    \"documentation\": \"https://ctan.org/pkg/ebsthesis\"\n  },\n  \"ecca\": {\n    \"command\": \"ecca\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ecv\": {\n    \"command\": \"ecv\",\n    \"detail\": \"A fancy Curriculum Vitae class\",\n    \"documentation\": \"https://ctan.org/pkg/ecv\"\n  },\n  \"einfart\": {\n    \"command\": \"einfart\",\n    \"detail\": \"Write your articles in a simple and clear way\",\n    \"documentation\": \"https://ctan.org/pkg/einfart\"\n  },\n  \"ejpecp\": {\n    \"command\": \"ejpecp\",\n    \"detail\": \"Class for EJP and ECP\",\n    \"documentation\": \"https://ctan.org/pkg/ejpecp\"\n  },\n  \"elbioimp\": {\n    \"command\": \"elbioimp\",\n    \"detail\": \"A LaTeX document class for the Journal of Electrical Bioimpedance\",\n    \"documentation\": \"https://ctan.org/pkg/elbioimp\"\n  },\n  \"elegantbook\": {\n    \"command\": \"elegantbook\",\n    \"detail\": \"An Elegant LaTeX Template for Books\",\n    \"documentation\": \"https://ctan.org/pkg/elegantbook\"\n  },\n  \"elegantnote\": {\n    \"command\": \"elegantnote\",\n    \"detail\": \"Elegant LaTeX Template for Notes\",\n    \"documentation\": \"https://ctan.org/pkg/elegantnote\"\n  },\n  \"elegantpaper\": {\n    \"command\": \"elegantpaper\",\n    \"detail\": \"An Elegant LaTeX Template for Working Papers\",\n    \"documentation\": \"https://ctan.org/pkg/elegantpaper\"\n  },\n  \"elpres\": {\n    \"command\": \"elpres\",\n    \"detail\": \"A simple class for electronic presentations\",\n    \"documentation\": \"https://ctan.org/pkg/elpres\"\n  },\n  \"elsarticle\": {\n    \"command\": \"elsarticle\",\n    \"detail\": \"Class for articles for submission to Elsevier journals\",\n    \"documentation\": \"https://ctan.org/pkg/elsarticle\"\n  },\n  \"elteikthesis\": {\n    \"command\": \"elteikthesis\",\n    \"detail\": \"Thesis template for Eötvös Loránd University (Informatics)\",\n    \"documentation\": \"https://ctan.org/pkg/elteikthesis\"\n  },\n  \"emisa\": {\n    \"command\": \"emisa\",\n    \"detail\": \"A LaTeX package for preparing manuscripts for the journal EMISA\",\n    \"documentation\": \"https://ctan.org/pkg/emisa\"\n  },\n  \"emulateapj\": {\n    \"command\": \"emulateapj\",\n    \"detail\": \"Produce output similar to that of APJ\",\n    \"documentation\": \"https://ctan.org/pkg/emulateapj\"\n  },\n  \"erae\": {\n    \"command\": \"erae\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"erdc\": {\n    \"command\": \"erdc\",\n    \"detail\": \"Style for Reports by US Army Corps of Engineers\",\n    \"documentation\": \"https://ctan.org/pkg/erdc\"\n  },\n  \"eskd\": {\n    \"command\": \"eskd\",\n    \"detail\": \"Modern Russian typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/eskd\"\n  },\n  \"eskdgraph\": {\n    \"command\": \"eskdgraph\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"eskdtab\": {\n    \"command\": \"eskdtab\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"eskdtext\": {\n    \"command\": \"eskdtext\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"estcpmm\": {\n    \"command\": \"estcpmm\",\n    \"detail\": \"Style for Munitions Management Project Reports\",\n    \"documentation\": \"https://ctan.org/pkg/estcpmm\"\n  },\n  \"etiketka\": {\n    \"command\": \"etiketka\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"euproposal\": {\n    \"command\": \"euproposal\",\n    \"detail\": \"A class for preparing FP7 proposals\",\n    \"documentation\": \"https://ctan.org/pkg/euproposal\"\n  },\n  \"eureporting\": {\n    \"command\": \"eureporting\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"europasscv\": {\n    \"command\": \"europasscv\",\n    \"detail\": \"Unofficial class for the new version of the Europass curriculum vitae\",\n    \"documentation\": \"https://ctan.org/pkg/europasscv\"\n  },\n  \"europecv\": {\n    \"command\": \"europecv\",\n    \"detail\": \"Unofficial class for European curricula vitae\",\n    \"documentation\": \"https://ctan.org/pkg/europecv\"\n  },\n  \"europroc\": {\n    \"command\": \"europroc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"exam\": {\n    \"command\": \"exam\",\n    \"detail\": \"Package for typesetting exam scripts\",\n    \"documentation\": \"https://ctan.org/pkg/exam\"\n  },\n  \"exam-n\": {\n    \"command\": \"exam-n\",\n    \"detail\": \"Exam class, focused on collaborative authoring\",\n    \"documentation\": \"https://ctan.org/pkg/exam-n\"\n  },\n  \"examdesign\": {\n    \"command\": \"examdesign\",\n    \"detail\": \"LaTeX class for typesetting exams\",\n    \"documentation\": \"https://ctan.org/pkg/examdesign\"\n  },\n  \"exesheet\": {\n    \"command\": \"exesheet\",\n    \"detail\": \"Typesetting exercise or exam sheets\",\n    \"documentation\": \"https://ctan.org/pkg/exesheet\"\n  },\n  \"extarticle\": {\n    \"command\": \"extarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"extbook\": {\n    \"command\": \"extbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"extletter\": {\n    \"command\": \"extletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"extproc\": {\n    \"command\": \"extproc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"extreport\": {\n    \"command\": \"extreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"facsimile\": {\n    \"command\": \"facsimile\",\n    \"detail\": \"Document class for preparing faxes\",\n    \"documentation\": \"https://ctan.org/pkg/facsimile\"\n  },\n  \"factura\": {\n    \"command\": \"factura\",\n    \"detail\": \"Typeset and calculate invoices according to Venezuelan law\",\n    \"documentation\": \"https://ctan.org/pkg/factura\"\n  },\n  \"facture\": {\n    \"command\": \"facture\",\n    \"detail\": \"Generate an invoice\",\n    \"documentation\": \"https://ctan.org/pkg/facture\"\n  },\n  \"fancyhandout\": {\n    \"command\": \"fancyhandout\",\n    \"detail\": \"A LaTeX class for producing nice-looking handouts\",\n    \"documentation\": \"https://ctan.org/pkg/fancyhandout\"\n  },\n  \"fancyslides\": {\n    \"command\": \"fancyslides\",\n    \"detail\": \"Custom presentation class built upon LaTeX Beamer\",\n    \"documentation\": \"https://ctan.org/pkg/fancyslides\"\n  },\n  \"fbithesis\": {\n    \"command\": \"fbithesis\",\n    \"detail\": \"Computer Science thesis class for University of Dortmund\",\n    \"documentation\": \"https://ctan.org/pkg/fbithesis\"\n  },\n  \"fcavtex\": {\n    \"command\": \"fcavtex\",\n    \"detail\": \"A thesis class for the FCAV/UNESP (Brazil)\",\n    \"documentation\": \"https://ctan.org/pkg/fcavtex\"\n  },\n  \"fdudoc\": {\n    \"command\": \"fdudoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"fduthesis\": {\n    \"command\": \"fduthesis\",\n    \"detail\": \"LaTeX thesis template for Fudan University\",\n    \"documentation\": \"https://ctan.org/pkg/fduthesis\"\n  },\n  \"fduthesis-en\": {\n    \"command\": \"fduthesis-en\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"fei\": {\n    \"command\": \"fei\",\n    \"detail\": \"Class for academic works at FEI University Center — Brazil\",\n    \"documentation\": \"https://ctan.org/pkg/fei\"\n  },\n  \"ffslides\": {\n    \"command\": \"ffslides\",\n    \"detail\": \"Freeform slides based on the article class\",\n    \"documentation\": \"https://ctan.org/pkg/ffslides\"\n  },\n  \"fiche\": {\n    \"command\": \"fiche\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"fithesis\": {\n    \"command\": \"fithesis\",\n    \"detail\": \"Thesis class and template for Masaryk University (Brno, Czech Republic)\",\n    \"documentation\": \"https://ctan.org/pkg/fithesis\"\n  },\n  \"fithesis2\": {\n    \"command\": \"fithesis2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"fithesis3\": {\n    \"command\": \"fithesis3\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"fithesis4\": {\n    \"command\": \"fithesis4\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"flacards\": {\n    \"command\": \"flacards\",\n    \"detail\": \"Generate flashcards for printing\",\n    \"documentation\": \"https://ctan.org/pkg/flacards\"\n  },\n  \"flashcard\": {\n    \"command\": \"flashcard\",\n    \"detail\": \"Typeset flash cards\",\n    \"documentation\": \"https://ctan.org/pkg/flashcard\"\n  },\n  \"flashcards\": {\n    \"command\": \"flashcards\",\n    \"detail\": \"A class for typesetting flashcards\",\n    \"documentation\": \"https://ctan.org/pkg/flashcards\"\n  },\n  \"frletter\": {\n    \"command\": \"frletter\",\n    \"detail\": \"Typeset letters in the French style\",\n    \"documentation\": \"https://ctan.org/pkg/frletter\"\n  },\n  \"fsbispit\": {\n    \"command\": \"fsbispit\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"g-brief\": {\n    \"command\": \"g-brief\",\n    \"detail\": \"Letter document class\",\n    \"documentation\": \"https://ctan.org/pkg/g-brief\"\n  },\n  \"g-brief2\": {\n    \"command\": \"g-brief2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"gaceta\": {\n    \"command\": \"gaceta\",\n    \"detail\": \"A class to typeset La Gaceta de la RSME\",\n    \"documentation\": \"https://ctan.org/pkg/gaceta\"\n  },\n  \"gammas\": {\n    \"command\": \"gammas\",\n    \"detail\": \"Template for the GAMM Archive for Students\",\n    \"documentation\": \"https://ctan.org/pkg/gammas\"\n  },\n  \"gatech-thesis\": {\n    \"command\": \"gatech-thesis\",\n    \"detail\": \"Georgia Institute of Technology thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/gatech-thesis\"\n  },\n  \"gmdocc\": {\n    \"command\": \"gmdocc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"gost732\": {\n    \"command\": \"gost732\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"gradstudentresume\": {\n    \"command\": \"gradstudentresume\",\n    \"detail\": \"A generic template for graduate student resumes\",\n    \"documentation\": \"https://ctan.org/pkg/gradstudentresume\"\n  },\n  \"grant\": {\n    \"command\": \"grant\",\n    \"detail\": \"Classes for formatting federal grant proposals\",\n    \"documentation\": \"https://ctan.org/pkg/grant\"\n  },\n  \"grant-afosr\": {\n    \"command\": \"grant-afosr\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-aro\": {\n    \"command\": \"grant-aro\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-darpa\": {\n    \"command\": \"grant-darpa\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-doe\": {\n    \"command\": \"grant-doe\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-nih\": {\n    \"command\": \"grant-nih\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-nrl\": {\n    \"command\": \"grant-nrl\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-nsf\": {\n    \"command\": \"grant-nsf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"grant-onr\": {\n    \"command\": \"grant-onr\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"graphpaper\": {\n    \"command\": \"graphpaper\",\n    \"detail\": \"A LaTeX class to generate several types of graph papers\",\n    \"documentation\": \"https://ctan.org/pkg/graphpaper\"\n  },\n  \"gridslides\": {\n    \"command\": \"gridslides\",\n    \"detail\": \"Free form slides with blocks placed on a grid\",\n    \"documentation\": \"https://ctan.org/pkg/gridslides\"\n  },\n  \"gsemthesis\": {\n    \"command\": \"gsemthesis\",\n    \"detail\": \"Geneva School of Economics and Management PhD thesis format\",\n    \"documentation\": \"https://ctan.org/pkg/gsemthesis\"\n  },\n  \"guitartabs\": {\n    \"command\": \"guitartabs\",\n    \"detail\": \"A class for drawing guitar tablatures easily\",\n    \"documentation\": \"https://ctan.org/pkg/guitartabs\"\n  },\n  \"gzt\": {\n    \"command\": \"gzt\",\n    \"detail\": \"Bundle of classes for “La Gazette des Mathématiciens”\",\n    \"documentation\": \"https://ctan.org/pkg/gzt\"\n  },\n  \"gztarticle\": {\n    \"command\": \"gztarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"h2020proposal\": {\n    \"command\": \"h2020proposal\",\n    \"detail\": \"LaTeX class and template for EU H2020 RIA proposal\",\n    \"documentation\": \"https://ctan.org/pkg/h2020proposal\"\n  },\n  \"harnon-cv\": {\n    \"command\": \"harnon-cv\",\n    \"detail\": \"A CV document class with a vertical timeline for experience\",\n    \"documentation\": \"https://ctan.org/pkg/harnon-cv\"\n  },\n  \"hausarbeit-jura\": {\n    \"command\": \"hausarbeit-jura\",\n    \"detail\": \"Class for writing “juristische Hausarbeiten” at German Universities\",\n    \"documentation\": \"https://ctan.org/pkg/hausarbeit-jura\"\n  },\n  \"hcart\": {\n    \"command\": \"hcart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hcletter\": {\n    \"command\": \"hcletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hcreport\": {\n    \"command\": \"hcreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hcslides\": {\n    \"command\": \"hcslides\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hecthese\": {\n    \"command\": \"hecthese\",\n    \"detail\": \"A class for dissertations and theses at HEC Montréal\",\n    \"documentation\": \"https://ctan.org/pkg/hecthese\"\n  },\n  \"hepthesis\": {\n    \"command\": \"hepthesis\",\n    \"detail\": \"A class for academic reports, especially PhD theses\",\n    \"documentation\": \"https://ctan.org/pkg/hepthesis\"\n  },\n  \"hgbarticle\": {\n    \"command\": \"hgbarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hgbreport\": {\n    \"command\": \"hgbreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hgbthesis\": {\n    \"command\": \"hgbthesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"hitec\": {\n    \"command\": \"hitec\",\n    \"detail\": \"Class for documentation\",\n    \"documentation\": \"https://ctan.org/pkg/hitec\"\n  },\n  \"hithesis\": {\n    \"command\": \"hithesis\",\n    \"detail\": \"Harbin Institute of Technology Thesis Template\",\n    \"documentation\": \"https://ctan.org/pkg/hithesis\"\n  },\n  \"hitreport\": {\n    \"command\": \"hitreport\",\n    \"detail\": \"Harbin Institute of Technology Report LaTeX Template\",\n    \"documentation\": \"https://ctan.org/pkg/hitreport\"\n  },\n  \"hitszthesis\": {\n    \"command\": \"hitszthesis\",\n    \"detail\": \"A dissertation template for Harbin Institute of Technology, ShenZhen\",\n    \"documentation\": \"https://ctan.org/pkg/hitszthesis\"\n  },\n  \"hletter\": {\n    \"command\": \"hletter\",\n    \"detail\": \"Flexible letter typesetting with flexible page headings\",\n    \"documentation\": \"https://ctan.org/pkg/hletter\"\n  },\n  \"hpsdiss\": {\n    \"command\": \"hpsdiss\",\n    \"detail\": \"A dissertation class\",\n    \"documentation\": \"https://ctan.org/pkg/hpsdiss\"\n  },\n  \"hu-berlin-letter\": {\n    \"command\": \"hu-berlin-letter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"huawei\": {\n    \"command\": \"huawei\",\n    \"detail\": \"Template for Huawei documents\",\n    \"documentation\": \"https://ctan.org/pkg/huawei\"\n  },\n  \"hustthesis\": {\n    \"command\": \"hustthesis\",\n    \"detail\": \"Unofficial thesis template for Huazhong University\",\n    \"documentation\": \"https://ctan.org/pkg/hustthesis\"\n  },\n  \"hwexam\": {\n    \"command\": \"hwexam\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"iagproc\": {\n    \"command\": \"iagproc\",\n    \"detail\": \"Class for two column IAG Proceedings articles\",\n    \"documentation\": \"https://ctan.org/pkg/iagproc\"\n  },\n  \"icsv\": {\n    \"command\": \"icsv\",\n    \"detail\": \"Class for typesetting articles for the ICSV conference\",\n    \"documentation\": \"https://ctan.org/pkg/icsv\"\n  },\n  \"idcc\": {\n    \"command\": \"idcc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ijdc-v14\": {\n    \"command\": \"ijdc-v14\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ijdc-v9\": {\n    \"command\": \"ijdc-v9\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ijmart\": {\n    \"command\": \"ijmart\",\n    \"detail\": \"LaTeX Class for the Israel Journal of Mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/ijmart\"\n  },\n  \"ijsra\": {\n    \"command\": \"ijsra\",\n    \"detail\": \" LaTeX document class for the International Journal of Student Research in Archaeology\",\n    \"documentation\": \"https://ctan.org/pkg/ijsra\"\n  },\n  \"image-gallery\": {\n    \"command\": \"image-gallery\",\n    \"detail\": \"Create an overview of pictures from a digital camera or from other sources\",\n    \"documentation\": \"https://ctan.org/pkg/image-gallery\"\n  },\n  \"imsproc\": {\n    \"command\": \"imsproc\",\n    \"detail\": \"Typeset IMS conference proceedings\",\n    \"documentation\": \"https://ctan.org/pkg/imsproc\"\n  },\n  \"inkpaper\": {\n    \"command\": \"inkpaper\",\n    \"detail\": \"A mathematical paper template\",\n    \"documentation\": \"https://ctan.org/pkg/inkpaper\"\n  },\n  \"invoice-class\": {\n    \"command\": \"invoice-class\",\n    \"detail\": \"Produces a standard US invoice from a CSV file\",\n    \"documentation\": \"https://ctan.org/pkg/invoice-class\"\n  },\n  \"iodhbwm\": {\n    \"command\": \"iodhbwm\",\n    \"detail\": \"Unofficial template of the DHBW Mannheim\",\n    \"documentation\": \"https://ctan.org/pkg/iodhbwm\"\n  },\n  \"iscram\": {\n    \"command\": \"iscram\",\n    \"detail\": \"A LaTeX class to publish article to ISCRAM conferences\",\n    \"documentation\": \"https://ctan.org/pkg/iscram\"\n  },\n  \"isodoc\": {\n    \"command\": \"isodoc\",\n    \"detail\": \"A LaTeX class for typesetting letters and invoices\",\n    \"documentation\": \"https://ctan.org/pkg/isodoc\"\n  },\n  \"isov2\": {\n    \"command\": \"isov2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"itaxpf\": {\n    \"command\": \"itaxpf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"iwhdp\": {\n    \"command\": \"iwhdp\",\n    \"detail\": \"Halle Institute for Economic Research (IWH) Discussion Papers\",\n    \"documentation\": \"https://ctan.org/pkg/iwhdp\"\n  },\n  \"jacow\": {\n    \"command\": \"jacow\",\n    \"detail\": \"The \\\"jacow.cls\\\" class is used for submissions to the proceedings of conferences on JACoW.org\",\n    \"documentation\": \"https://ctan.org/pkg/jacow\"\n  },\n  \"jarticle\": {\n    \"command\": \"jarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jbook\": {\n    \"command\": \"jbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jlreq\": {\n    \"command\": \"jlreq\",\n    \"detail\": \"Japanese document class based on requirements for Japanese text layout\",\n    \"documentation\": \"https://ctan.org/pkg/jlreq\"\n  },\n  \"jltxdoc\": {\n    \"command\": \"jltxdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jmlr\": {\n    \"command\": \"jmlr\",\n    \"detail\": \"Class files for the Journal of Machine Learning Research\",\n    \"documentation\": \"https://ctan.org/pkg/jmlr\"\n  },\n  \"jmlrbook\": {\n    \"command\": \"jmlrbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jnuexam\": {\n    \"command\": \"jnuexam\",\n    \"detail\": \"Exam class for Jinan University\",\n    \"documentation\": \"https://ctan.org/pkg/jnuexam\"\n  },\n  \"journal\": {\n    \"command\": \"journal\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jpsj2\": {\n    \"command\": \"jpsj2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jreport\": {\n    \"command\": \"jreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jrurstud\": {\n    \"command\": \"jrurstud\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jsarticle\": {\n    \"command\": \"jsarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jsbook\": {\n    \"command\": \"jsbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jspf\": {\n    \"command\": \"jspf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jsreport\": {\n    \"command\": \"jsreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"jura\": {\n    \"command\": \"jura\",\n    \"detail\": \"A document class for German legal texts\",\n    \"documentation\": \"https://ctan.org/pkg/jura\"\n  },\n  \"jurabook\": {\n    \"command\": \"jurabook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"juraovw\": {\n    \"command\": \"juraovw\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"juraurtl\": {\n    \"command\": \"juraurtl\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"kdgcoursetext\": {\n    \"command\": \"kdgcoursetext\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"kdgmasterthesis\": {\n    \"command\": \"kdgmasterthesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"kdpcover\": {\n    \"command\": \"kdpcover\",\n    \"detail\": \"Covers for books published by Kindle Direct Publishing\",\n    \"documentation\": \"https://ctan.org/pkg/kdpcover\"\n  },\n  \"kerntest\": {\n    \"command\": \"kerntest\",\n    \"detail\": \"Print tables and generate control files to adjust kernings\",\n    \"documentation\": \"https://ctan.org/pkg/kerntest\"\n  },\n  \"kiyou\": {\n    \"command\": \"kiyou\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"kluwer\": {\n    \"command\": \"kluwer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"knittingpattern\": {\n    \"command\": \"knittingpattern\",\n    \"detail\": \"Create knitting patterns\",\n    \"documentation\": \"https://ctan.org/pkg/knittingpattern\"\n  },\n  \"komacv\": {\n    \"command\": \"komacv\",\n    \"detail\": \"Typesetting a beautiful CV with various style options\",\n    \"documentation\": \"https://ctan.org/pkg/komacv\"\n  },\n  \"ksp-thesis\": {\n    \"command\": \"ksp-thesis\",\n    \"detail\": \"A LaTeX class for theses published with KIT Scientific Publishing\",\n    \"documentation\": \"https://ctan.org/pkg/ksp-thesis\"\n  },\n  \"l3doc\": {\n    \"command\": \"l3doc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"labbook\": {\n    \"command\": \"labbook\",\n    \"detail\": \"Typeset laboratory journals\",\n    \"documentation\": \"https://ctan.org/pkg/labbook\"\n  },\n  \"langscibook\": {\n    \"command\": \"langscibook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"leadsheet\": {\n    \"command\": \"leadsheet\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"leaflet\": {\n    \"command\": \"leaflet\",\n    \"detail\": \"Create small handouts (flyers)\",\n    \"documentation\": \"https://ctan.org/pkg/leaflet\"\n  },\n  \"lebhart\": {\n    \"command\": \"lebhart\",\n    \"detail\": \"Write your articles in a colorful way\",\n    \"documentation\": \"https://ctan.org/pkg/lebhart\"\n  },\n  \"lectures\": {\n    \"command\": \"lectures\",\n    \"detail\": \"A document class for quickly drafting nice looking lecture notes\",\n    \"documentation\": \"https://ctan.org/pkg/lectures\"\n  },\n  \"legislation\": {\n    \"command\": \"legislation\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"letter\": {\n    \"command\": \"letter\",\n    \"detail\": \"The standard LaTeX2e letter document class\",\n    \"documentation\": \"https://ctan.org/pkg/letter\"\n  },\n  \"letteracdp\": {\n    \"command\": \"letteracdp\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"lettre\": {\n    \"command\": \"lettre\",\n    \"detail\": \"Letters and faxes in French\",\n    \"documentation\": \"https://ctan.org/pkg/lettre\"\n  },\n  \"limap\": {\n    \"command\": \"limap\",\n    \"detail\": \"Typeset maps and blocks according to the Information Mapping® method\",\n    \"documentation\": \"https://ctan.org/pkg/limap\"\n  },\n  \"limecv\": {\n    \"command\": \"limecv\",\n    \"detail\": \"A (Xe/Lua)LaTeX document class for curriculum vitæ\",\n    \"documentation\": \"https://ctan.org/pkg/limecv\"\n  },\n  \"lion-msc\": {\n    \"command\": \"lion-msc\",\n    \"detail\": \"LaTeX class for B.Sc. and M.Sc. reports at Leiden Institute of Physics (LION)\",\n    \"documentation\": \"https://ctan.org/pkg/lion-msc\"\n  },\n  \"lni\": {\n    \"command\": \"lni\",\n    \"detail\": \"Official class for the “Lecture Notes in Informatics”\",\n    \"documentation\": \"https://ctan.org/pkg/lni\"\n  },\n  \"lps\": {\n    \"command\": \"lps\",\n    \"detail\": \"Class for \\\"Logic and Philosophy of Science\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/lps\"\n  },\n  \"lt3graph-packagedoc\": {\n    \"command\": \"lt3graph-packagedoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjarticle\": {\n    \"command\": \"ltjarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjbook\": {\n    \"command\": \"ltjbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjltxdoc\": {\n    \"command\": \"ltjltxdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjreport\": {\n    \"command\": \"ltjreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjsarticle\": {\n    \"command\": \"ltjsarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjsbook\": {\n    \"command\": \"ltjsbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjskiyou\": {\n    \"command\": \"ltjskiyou\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjspf\": {\n    \"command\": \"ltjspf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjsreport\": {\n    \"command\": \"ltjsreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjtarticle\": {\n    \"command\": \"ltjtarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjtbook\": {\n    \"command\": \"ltjtbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltjtreport\": {\n    \"command\": \"ltjtreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltnews\": {\n    \"command\": \"ltnews\",\n    \"detail\": \"The latest LaTeX news\",\n    \"documentation\": \"https://ctan.org/pkg/ltnews\"\n  },\n  \"ltugboat\": {\n    \"command\": \"ltugboat\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltugproc\": {\n    \"command\": \"ltugproc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltxdoc\": {\n    \"command\": \"ltxdoc\",\n    \"detail\": \"Class for documented LaTeX macro files\",\n    \"documentation\": \"https://ctan.org/pkg/ltxdoc\"\n  },\n  \"ltxdockit\": {\n    \"command\": \"ltxdockit\",\n    \"detail\": \"Documentation support\",\n    \"documentation\": \"https://ctan.org/pkg/ltxdockit\"\n  },\n  \"ltxguide\": {\n    \"command\": \"ltxguide\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ltxguidex\": {\n    \"command\": \"ltxguidex\",\n    \"detail\": \"An extended ltxguide class\",\n    \"documentation\": \"https://ctan.org/pkg/ltxguidex\"\n  },\n  \"ltxmdf\": {\n    \"command\": \"ltxmdf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"matapli\": {\n    \"command\": \"matapli\",\n    \"detail\": \"Class for the french journal “MATAPLI”\",\n    \"documentation\": \"https://ctan.org/pkg/matapli\"\n  },\n  \"matc3mem\": {\n    \"command\": \"matc3mem\",\n    \"detail\": \"Class for MatematicaC3 textbooks\",\n    \"documentation\": \"https://ctan.org/pkg/matc3mem\"\n  },\n  \"mcmthesis\": {\n    \"command\": \"mcmthesis\",\n    \"detail\": \"Template designed for MCM/ICM\",\n    \"documentation\": \"https://ctan.org/pkg/mcmthesis\"\n  },\n  \"medstarbeamer\": {\n    \"command\": \"medstarbeamer\",\n    \"detail\": \"Beamer document class for MedStar Health Research Institute\",\n    \"documentation\": \"https://ctan.org/pkg/medstarbeamer\"\n  },\n  \"meetingmins\": {\n    \"command\": \"meetingmins\",\n    \"detail\": \"Format written minutes of meetings\",\n    \"documentation\": \"https://ctan.org/pkg/meetingmins\"\n  },\n  \"memoir\": {\n    \"command\": \"memoir\",\n    \"detail\": \"Typeset fiction, non-fiction and mathematical books\",\n    \"documentation\": \"https://ctan.org/pkg/memoir\"\n  },\n  \"mensa-tex\": {\n    \"command\": \"mensa-tex\",\n    \"detail\": \"Typeset simple school cafeteria menus\",\n    \"documentation\": \"https://ctan.org/pkg/mensa-tex\"\n  },\n  \"mentis\": {\n    \"command\": \"mentis\",\n    \"detail\": \"A basis for books to be published by Mentis publishers\",\n    \"documentation\": \"https://ctan.org/pkg/mentis\"\n  },\n  \"metanorma\": {\n    \"command\": \"metanorma\",\n    \"detail\": \"Write Metanorma standardization documents using LaTe\",\n    \"documentation\": \"https://ctan.org/pkg/metanorma\"\n  },\n  \"mikoslides\": {\n    \"command\": \"mikoslides\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"milog\": {\n    \"command\": \"milog\",\n    \"detail\": \"A LaTeX class for fulfilling the documentation duties\\n    according to the German minimum wage law MiLoG\",\n    \"documentation\": \"https://ctan.org/pkg/milog\"\n  },\n  \"minimal\": {\n    \"command\": \"minimal\",\n    \"detail\": \"A trivial class, for use when testing\",\n    \"documentation\": \"https://ctan.org/pkg/minimal\"\n  },\n  \"minimart\": {\n    \"command\": \"minimart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"minimbook\": {\n    \"command\": \"minimbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"mla\": {\n    \"command\": \"mla\",\n    \"detail\": \"MLA BibTeX styles\",\n    \"documentation\": \"https://ctan.org/pkg/mla\"\n  },\n  \"mluexercise\": {\n    \"command\": \"mluexercise\",\n    \"detail\": \"Exercises/homework at the Martin Luther University Halle-Wittenberg\",\n    \"documentation\": \"https://ctan.org/pkg/mluexercise\"\n  },\n  \"mnras\": {\n    \"command\": \"mnras\",\n    \"detail\": \"Monthly Notices of the Royal Astronomical Society\",\n    \"documentation\": \"https://ctan.org/pkg/mnras\"\n  },\n  \"moderncv\": {\n    \"command\": \"moderncv\",\n    \"detail\": \"A modern curriculum vitae class\",\n    \"documentation\": \"https://ctan.org/pkg/moderncv\"\n  },\n  \"modernposter\": {\n    \"command\": \"modernposter\",\n    \"detail\": \"A modern LaTeX poster theme\",\n    \"documentation\": \"https://ctan.org/pkg/modernposter\"\n  },\n  \"movie\": {\n    \"command\": \"movie\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"msu-thesis\": {\n    \"command\": \"msu-thesis\",\n    \"detail\": \"Class for Michigan State University Master’s and PhD theses\",\n    \"documentation\": \"https://ctan.org/pkg/msu-thesis\"\n  },\n  \"mucproc\": {\n    \"command\": \"mucproc\",\n    \"detail\": \"Conference proceedings for the German MuC-conference\",\n    \"documentation\": \"https://ctan.org/pkg/mucproc\"\n  },\n  \"mugsthesis\": {\n    \"command\": \"mugsthesis\",\n    \"detail\": \"Thesis class complying with Marquette University Graduate School requirements\",\n    \"documentation\": \"https://ctan.org/pkg/mugsthesis\"\n  },\n  \"muling\": {\n    \"command\": \"muling\",\n    \"detail\": \"MA Thesis class for the Department of Linguistics, University of Mumbai\",\n    \"documentation\": \"https://ctan.org/pkg/muling\"\n  },\n  \"musuos\": {\n    \"command\": \"musuos\",\n    \"detail\": \"Typeset papers for the department of music, Osnabrück\",\n    \"documentation\": \"https://ctan.org/pkg/musuos\"\n  },\n  \"muthesis\": {\n    \"command\": \"muthesis\",\n    \"detail\": \"Classes for University of Manchester Dept of Computer Science\",\n    \"documentation\": \"https://ctan.org/pkg/muthesis\"\n  },\n  \"mwart\": {\n    \"command\": \"mwart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"mwbk\": {\n    \"command\": \"mwbk\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"mwrep\": {\n    \"command\": \"mwrep\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"my-thesis\": {\n    \"command\": \"my-thesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"mycv\": {\n    \"command\": \"mycv\",\n    \"detail\": \"A list-driven CV class, allowing TikZ decorations\",\n    \"documentation\": \"https://ctan.org/pkg/mycv\"\n  },\n  \"myletter\": {\n    \"command\": \"myletter\",\n    \"detail\": \"An old letter class\",\n    \"documentation\": \"https://ctan.org/pkg/myletter\"\n  },\n  \"mynsfc\": {\n    \"command\": \"mynsfc\",\n    \"detail\": \"XeLaTeX template for writing the main body of NSFC proposals\",\n    \"documentation\": \"https://ctan.org/pkg/mynsfc\"\n  },\n  \"nanicolle\": {\n    \"command\": \"nanicolle\",\n    \"detail\": \"Typesetting herbarium specimen labels\",\n    \"documentation\": \"https://ctan.org/pkg/nanicolle\"\n  },\n  \"nature\": {\n    \"command\": \"nature\",\n    \"detail\": \"Prepare papers for the journal Nature\",\n    \"documentation\": \"https://ctan.org/pkg/nature\"\n  },\n  \"ncc\": {\n    \"command\": \"ncc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"nccproc\": {\n    \"command\": \"nccproc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"nddiss2e\": {\n    \"command\": \"nddiss2e\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ndsu-thesis\": {\n    \"command\": \"ndsu-thesis\",\n    \"detail\": \"North Dakota State University disquisition class\",\n    \"documentation\": \"https://ctan.org/pkg/ndsu-thesis\"\n  },\n  \"newlfm\": {\n    \"command\": \"newlfm\",\n    \"detail\": \"Write letters, facsimiles, and memos\",\n    \"documentation\": \"https://ctan.org/pkg/newlfm\"\n  },\n  \"nih\": {\n    \"command\": \"nih\",\n    \"detail\": \"A class for NIH grant applications\",\n    \"documentation\": \"https://ctan.org/pkg/nih\"\n  },\n  \"nihbiosketch\": {\n    \"command\": \"nihbiosketch\",\n    \"detail\": \"A class for NIH biosketches based on the 2015 updated format\",\n    \"documentation\": \"https://ctan.org/pkg/nihbiosketch\"\n  },\n  \"njf\": {\n    \"command\": \"njf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"njurepo\": {\n    \"command\": \"njurepo\",\n    \"detail\": \"Reports for Nanjing University\",\n    \"documentation\": \"https://ctan.org/pkg/njurepo\"\n  },\n  \"nlctdoc\": {\n    \"command\": \"nlctdoc\",\n    \"detail\": \"Package documentation class\",\n    \"documentation\": \"https://ctan.org/pkg/nlctdoc\"\n  },\n  \"nostarch\": {\n    \"command\": \"nostarch\",\n    \"detail\": \"LaTeX class for No Starch Press\",\n    \"documentation\": \"https://ctan.org/pkg/nostarch\"\n  },\n  \"novel\": {\n    \"command\": \"novel\",\n    \"detail\": \"Class for printing fiction, such as novels\",\n    \"documentation\": \"https://ctan.org/pkg/novel\"\n  },\n  \"nrc1\": {\n    \"command\": \"nrc1\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"nrc2\": {\n    \"command\": \"nrc2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"nwejm\": {\n    \"command\": \"nwejm\",\n    \"detail\": \"Support for the journal “North-Western European Journal of Mathematics”\",\n    \"documentation\": \"https://ctan.org/pkg/nwejm\"\n  },\n  \"nwejmart\": {\n    \"command\": \"nwejmart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"oblivoir\": {\n    \"command\": \"oblivoir\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"oblivoir-utf\": {\n    \"command\": \"oblivoir-utf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"oblivoir-xl\": {\n    \"command\": \"oblivoir-xl\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"octavo\": {\n    \"command\": \"octavo\",\n    \"detail\": \"Typeset books following classical design and layout\",\n    \"documentation\": \"https://ctan.org/pkg/octavo\"\n  },\n  \"oegatb\": {\n    \"command\": \"oegatb\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"omdoc\": {\n    \"command\": \"omdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"onrannual\": {\n    \"command\": \"onrannual\",\n    \"detail\": \"Class for Office of Naval Research Ocean Battlespace Sensing annual report\",\n    \"documentation\": \"https://ctan.org/pkg/onrannual\"\n  },\n  \"oup-authoring-template\": {\n    \"command\": \"oup-authoring-template\",\n    \"detail\": \"A general template for journals published by Oxford University Press (OUP)\",\n    \"documentation\": \"https://ctan.org/pkg/oup-authoring-template\"\n  },\n  \"paper\": {\n    \"command\": \"paper\",\n    \"detail\": \"Versions of article class, tuned for scholarly  publications\",\n    \"documentation\": \"https://ctan.org/pkg/paper\"\n  },\n  \"papertex\": {\n    \"command\": \"papertex\",\n    \"detail\": \"Class for newspapers, etc\",\n    \"documentation\": \"https://ctan.org/pkg/papertex\"\n  },\n  \"pbsheet\": {\n    \"command\": \"pbsheet\",\n    \"detail\": \"Problem sheet class\",\n    \"documentation\": \"https://ctan.org/pkg/pbsheet\"\n  },\n  \"pdfArticle\": {\n    \"command\": \"pdfArticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"pecha\": {\n    \"command\": \"pecha\",\n    \"detail\": \"Print Tibetan text in the classic pecha layout style\",\n    \"documentation\": \"https://ctan.org/pkg/pecha\"\n  },\n  \"petiteannonce\": {\n    \"command\": \"petiteannonce\",\n    \"detail\": \"A class for small advertisements\",\n    \"documentation\": \"https://ctan.org/pkg/petiteannonce\"\n  },\n  \"philosophersimprint\": {\n    \"command\": \"philosophersimprint\",\n    \"detail\": \"Typesetting articles for \\\"Philosophers' Imprint\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/philosophersimprint\"\n  },\n  \"pittetd\": {\n    \"command\": \"pittetd\",\n    \"detail\": \"Electronic Theses and Dissertations at Pitt\",\n    \"documentation\": \"https://ctan.org/pkg/pittetd\"\n  },\n  \"pkuthss\": {\n    \"command\": \"pkuthss\",\n    \"detail\": \"LaTeX template for dissertations in Peking University\",\n    \"documentation\": \"https://ctan.org/pkg/pkuthss\"\n  },\n  \"plari\": {\n    \"command\": \"plari\",\n    \"detail\": \"Typesetting stageplay scripts\",\n    \"documentation\": \"https://ctan.org/pkg/plari\"\n  },\n  \"play\": {\n    \"command\": \"play\",\n    \"detail\": \"Typeset drama using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/play\"\n  },\n  \"plnews\": {\n    \"command\": \"plnews\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"pocoec\": {\n    \"command\": \"pocoec\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"postcards\": {\n    \"command\": \"postcards\",\n    \"detail\": \"Facilitates mass-mailing of postcards (junkmail)\",\n    \"documentation\": \"https://ctan.org/pkg/postcards\"\n  },\n  \"powerdot\": {\n    \"command\": \"powerdot\",\n    \"detail\": \"A presentation class\",\n    \"documentation\": \"https://ctan.org/pkg/powerdot\"\n  },\n  \"powersem\": {\n    \"command\": \"powersem\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ppr-prv\": {\n    \"command\": \"ppr-prv\",\n    \"detail\": \"Prosper preview\",\n    \"documentation\": \"https://ctan.org/pkg/ppr-prv\"\n  },\n  \"pracjourn\": {\n    \"command\": \"pracjourn\",\n    \"detail\": \"Typeset articles for PracTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pracjourn\"\n  },\n  \"pressrelease\": {\n    \"command\": \"pressrelease\",\n    \"detail\": \"A class for typesetting press releases\",\n    \"documentation\": \"https://ctan.org/pkg/pressrelease\"\n  },\n  \"proc\": {\n    \"command\": \"proc\",\n    \"detail\": \"Class for producing “proceedings”\",\n    \"documentation\": \"https://ctan.org/pkg/proc\"\n  },\n  \"proposal\": {\n    \"command\": \"proposal\",\n    \"detail\": \"A set of LaTeX classes for preparing proposals for\\n    collaborative projects\",\n    \"documentation\": \"https://ctan.org/pkg/proposal\"\n  },\n  \"prosper\": {\n    \"command\": \"prosper\",\n    \"detail\": \"LaTeX class for high quality slides\",\n    \"documentation\": \"https://ctan.org/pkg/prosper\"\n  },\n  \"protocol\": {\n    \"command\": \"protocol\",\n    \"detail\": \"A class for minutes of meetings\",\n    \"documentation\": \"https://ctan.org/pkg/protocol\"\n  },\n  \"prtec\": {\n    \"command\": \"prtec\",\n    \"detail\": \"A template for PRTEC conference papers\",\n    \"documentation\": \"https://ctan.org/pkg/prtec\"\n  },\n  \"pst-doc\": {\n    \"command\": \"pst-doc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ptptex\": {\n    \"command\": \"ptptex\",\n    \"detail\": \"Macros for 'Progress of Theoretical Physics'\",\n    \"documentation\": \"https://ctan.org/pkg/ptptex\"\n  },\n  \"qcm\": {\n    \"command\": \"qcm\",\n    \"detail\": \"A LaTeX2e class for making multiple choice questionnaires\",\n    \"documentation\": \"https://ctan.org/pkg/qcm\"\n  },\n  \"quantumarticle\": {\n    \"command\": \"quantumarticle\",\n    \"detail\": \"Document class for submissions to the Quantum journal\",\n    \"documentation\": \"https://ctan.org/pkg/quantumarticle\"\n  },\n  \"qyxf-book\": {\n    \"command\": \"qyxf-book\",\n    \"detail\": \"Book Template for Qian Yuan Xue Fu\",\n    \"documentation\": \"https://ctan.org/pkg/qyxf-book\"\n  },\n  \"rapport1\": {\n    \"command\": \"rapport1\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"rapport3\": {\n    \"command\": \"rapport3\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"recipe\": {\n    \"command\": \"recipe\",\n    \"detail\": \"A LaTeX class to typeset recipes\",\n    \"documentation\": \"https://ctan.org/pkg/recipe\"\n  },\n  \"recipecard\": {\n    \"command\": \"recipecard\",\n    \"detail\": \"Typeset recipes in note-card-sized boxes\",\n    \"documentation\": \"https://ctan.org/pkg/recipecard\"\n  },\n  \"refart\": {\n    \"command\": \"refart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"refrep\": {\n    \"command\": \"refrep\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"regstud\": {\n    \"command\": \"regstud\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"report\": {\n    \"command\": \"report\",\n    \"detail\": \"Typeset a multi-chapter report\",\n    \"documentation\": \"https://ctan.org/pkg/report\"\n  },\n  \"reporting\": {\n    \"command\": \"reporting\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"resphilosophica\": {\n    \"command\": \"resphilosophica\",\n    \"detail\": \"Typeset articles for the journal Res Philosophica\",\n    \"documentation\": \"https://ctan.org/pkg/resphilosophica\"\n  },\n  \"resumecls\": {\n    \"command\": \"resumecls\",\n    \"detail\": \"Typeset a resume both in English and Chinese\",\n    \"documentation\": \"https://ctan.org/pkg/resumecls\"\n  },\n  \"revtex4\": {\n    \"command\": \"revtex4\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"revtex4-1\": {\n    \"command\": \"revtex4-1\",\n    \"detail\": \"Styles for various Physics Journals\",\n    \"documentation\": \"https://ctan.org/pkg/revtex4-1\"\n  },\n  \"revtex4-2\": {\n    \"command\": \"revtex4-2\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"rtklage\": {\n    \"command\": \"rtklage\",\n    \"detail\": \"Make suit details for German courts\",\n    \"documentation\": \"https://ctan.org/pkg/rtklage\"\n  },\n  \"ryersonSGSThesis\": {\n    \"command\": \"ryersonSGSThesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ryethesis\": {\n    \"command\": \"ryethesis\",\n    \"detail\": \"Class for Ryerson Unversity Graduate School requirements\",\n    \"documentation\": \"https://ctan.org/pkg/ryethesis\"\n  },\n  \"sageep\": {\n    \"command\": \"sageep\",\n    \"detail\": \"Format papers for the annual meeting of EEGS\",\n    \"documentation\": \"https://ctan.org/pkg/sageep\"\n  },\n  \"sapthesis\": {\n    \"command\": \"sapthesis\",\n    \"detail\": \"Typeset theses for Sapienza-University, Rome\",\n    \"documentation\": \"https://ctan.org/pkg/sapthesis\"\n  },\n  \"schuleab\": {\n    \"command\": \"schuleab\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulein\": {\n    \"command\": \"schulein\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schuleit\": {\n    \"command\": \"schuleit\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulekl\": {\n    \"command\": \"schulekl\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schuleub\": {\n    \"command\": \"schuleub\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schuleue\": {\n    \"command\": \"schuleue\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schullsg\": {\n    \"command\": \"schullsg\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schullzk\": {\n    \"command\": \"schullzk\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-ab\": {\n    \"command\": \"schulma-ab\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-gutachten\": {\n    \"command\": \"schulma-gutachten\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-klausur\": {\n    \"command\": \"schulma-klausur\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-komp\": {\n    \"command\": \"schulma-komp\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-mdlprf\": {\n    \"command\": \"schulma-mdlprf\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schulma-praes\": {\n    \"command\": \"schulma-praes\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"schwalbe\": {\n    \"command\": \"schwalbe\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"sciposter\": {\n    \"command\": \"sciposter\",\n    \"detail\": \"Make posters of ISO A3 size and larger\",\n    \"documentation\": \"https://ctan.org/pkg/sciposter\"\n  },\n  \"scrartcl\": {\n    \"command\": \"scrartcl\",\n    \"detail\": \"Koma-Script ‘article’ class\",\n    \"documentation\": \"https://ctan.org/pkg/scrartcl\"\n  },\n  \"scrarticle\": {\n    \"command\": \"scrarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"scrbook\": {\n    \"command\": \"scrbook\",\n    \"detail\": \"Koma-Script ‘book’ class\",\n    \"documentation\": \"https://ctan.org/pkg/scrbook\"\n  },\n  \"scrdoc\": {\n    \"command\": \"scrdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"screenplay\": {\n    \"command\": \"screenplay\",\n    \"detail\": \"A class file to typeset screenplays\",\n    \"documentation\": \"https://ctan.org/pkg/screenplay\"\n  },\n  \"scrguide\": {\n    \"command\": \"scrguide\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"scrjrnl\": {\n    \"command\": \"scrjrnl\",\n    \"detail\": \"Typeset diaries or journals\",\n    \"documentation\": \"https://ctan.org/pkg/scrjrnl\"\n  },\n  \"scrletter\": {\n    \"command\": \"scrletter\",\n    \"detail\": \"Letter extention to KOMA-Script classes\",\n    \"documentation\": \"https://ctan.org/pkg/scrletter\"\n  },\n  \"scrlttr2\": {\n    \"command\": \"scrlttr2\",\n    \"detail\": \"Koma-Script ‘letter’ class\",\n    \"documentation\": \"https://ctan.org/pkg/scrlttr2\"\n  },\n  \"scrreport\": {\n    \"command\": \"scrreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"scrreprt\": {\n    \"command\": \"scrreprt\",\n    \"detail\": \"Koma-Script ‘report’ class\",\n    \"documentation\": \"https://ctan.org/pkg/scrreprt\"\n  },\n  \"sdapsclassic\": {\n    \"command\": \"sdapsclassic\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"sduthesis\": {\n    \"command\": \"sduthesis\",\n    \"detail\": \"Thesis Template of Shandong University\",\n    \"documentation\": \"https://ctan.org/pkg/sduthesis\"\n  },\n  \"seminar\": {\n    \"command\": \"seminar\",\n    \"detail\": \"Make overhead slides\",\n    \"documentation\": \"https://ctan.org/pkg/seminar\"\n  },\n  \"semproc\": {\n    \"command\": \"semproc\",\n    \"detail\": \"Seminar proceedings\",\n    \"documentation\": \"https://ctan.org/pkg/semproc\"\n  },\n  \"sesamanuel\": {\n    \"command\": \"sesamanuel\",\n    \"detail\": \"Class and package for sesamath books or paper\",\n    \"documentation\": \"https://ctan.org/pkg/sesamanuel\"\n  },\n  \"seuthesix\": {\n    \"command\": \"seuthesix\",\n    \"detail\": \"LaTeX class for theses at Southeast University, Nanjing, China\",\n    \"documentation\": \"https://ctan.org/pkg/seuthesix\"\n  },\n  \"sffms\": {\n    \"command\": \"sffms\",\n    \"detail\": \"Typesetting science fiction/fantasy manuscripts\",\n    \"documentation\": \"https://ctan.org/pkg/sffms\"\n  },\n  \"shtthesis\": {\n    \"command\": \"shtthesis\",\n    \"detail\": \"An unofficial LaTeX thesis template for ShanghaiTech University\",\n    \"documentation\": \"https://ctan.org/pkg/shtthesis\"\n  },\n  \"sibjnm\": {\n    \"command\": \"sibjnm\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"sides\": {\n    \"command\": \"sides\",\n    \"detail\": \"A LaTeX class for typesetting stage plays\",\n    \"documentation\": \"https://ctan.org/pkg/sides\"\n  },\n  \"simplecv\": {\n    \"command\": \"simplecv\",\n    \"detail\": \"A simple class for writing curricula vitae\",\n    \"documentation\": \"https://ctan.org/pkg/simplecv\"\n  },\n  \"simpleresumecv\": {\n    \"command\": \"simpleresumecv\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"simplethesisdissertation\": {\n    \"command\": \"simplethesisdissertation\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"simplivre\": {\n    \"command\": \"simplivre\",\n    \"detail\": \"Write your books in a simple and clear way\",\n    \"documentation\": \"https://ctan.org/pkg/simplivre\"\n  },\n  \"simurgh-doc\": {\n    \"command\": \"simurgh-doc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skbarticle\": {\n    \"command\": \"skbarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skbbeamer\": {\n    \"command\": \"skbbeamer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skbbook\": {\n    \"command\": \"skbbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skblncsbeamer\": {\n    \"command\": \"skblncsbeamer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skblncsppt\": {\n    \"command\": \"skblncsppt\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skbmoderncv\": {\n    \"command\": \"skbmoderncv\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skdoc\": {\n    \"command\": \"skdoc\",\n    \"detail\": \"Documentation and extraction for packages and document classes\",\n    \"documentation\": \"https://ctan.org/pkg/skdoc\"\n  },\n  \"skeyval-testclass\": {\n    \"command\": \"skeyval-testclass\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"skrapport\": {\n    \"command\": \"skrapport\",\n    \"detail\": \"‘Simple’ class for reports, etc\",\n    \"documentation\": \"https://ctan.org/pkg/skrapport\"\n  },\n  \"slides\": {\n    \"command\": \"slides\",\n    \"detail\": \"Class for creating slides\",\n    \"documentation\": \"https://ctan.org/pkg/slides\"\n  },\n  \"smfart\": {\n    \"command\": \"smfart\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"smfbook\": {\n    \"command\": \"smfbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"smglom\": {\n    \"command\": \"smglom\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"source2edoc\": {\n    \"command\": \"source2edoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"spie\": {\n    \"command\": \"spie\",\n    \"detail\": \"Support for formatting SPIE Proceedings manuscripts\",\n    \"documentation\": \"https://ctan.org/pkg/spie\"\n  },\n  \"sr-vorl\": {\n    \"command\": \"sr-vorl\",\n    \"detail\": \"Class for Springer books\",\n    \"documentation\": \"https://ctan.org/pkg/sr-vorl\"\n  },\n  \"sslides\": {\n    \"command\": \"sslides\",\n    \"detail\": \"Slides with headers and footers\",\n    \"documentation\": \"https://ctan.org/pkg/sslides\"\n  },\n  \"stage\": {\n    \"command\": \"stage\",\n    \"detail\": \"A LaTeX class for stage plays\",\n    \"documentation\": \"https://ctan.org/pkg/stage\"\n  },\n  \"standalone\": {\n    \"command\": \"standalone\",\n    \"detail\": \"Compile TeX pictures stand-alone or as part of a document\",\n    \"documentation\": \"https://ctan.org/pkg/standalone\"\n  },\n  \"subfiles\": {\n    \"command\": \"subfiles\",\n    \"detail\": \"Individual typesetting of subfiles of a “main” document\",\n    \"documentation\": \"https://ctan.org/pkg/subfiles\"\n  },\n  \"suftesi\": {\n    \"command\": \"suftesi\",\n    \"detail\": \"A document class for typesetting theses, books and articles\",\n    \"documentation\": \"https://ctan.org/pkg/suftesi\"\n  },\n  \"sugconf\": {\n    \"command\": \"sugconf\",\n    \"detail\": \"SAS(R) user group conference proceedings document class\",\n    \"documentation\": \"https://ctan.org/pkg/sugconf\"\n  },\n  \"tabriz-thesis\": {\n    \"command\": \"tabriz-thesis\",\n    \"detail\": \"A template for the University of Tabriz\",\n    \"documentation\": \"https://ctan.org/pkg/tabriz-thesis\"\n  },\n  \"talk\": {\n    \"command\": \"talk\",\n    \"detail\": \"A LaTeX class for presentations\",\n    \"documentation\": \"https://ctan.org/pkg/talk\"\n  },\n  \"tarticle\": {\n    \"command\": \"tarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tbook\": {\n    \"command\": \"tbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tcldoc\": {\n    \"command\": \"tcldoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tclldoc\": {\n    \"command\": \"tclldoc\",\n    \"detail\": \"Doc/docstrip for tcl\",\n    \"documentation\": \"https://ctan.org/pkg/tclldoc\"\n  },\n  \"technionThesis\": {\n    \"command\": \"technionThesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"thesis-ekf\": {\n    \"command\": \"thesis-ekf\",\n    \"detail\": \"Thesis class for Eszterhazy Karoly University\",\n    \"documentation\": \"https://ctan.org/pkg/thesis-ekf\"\n  },\n  \"thesis-gwu\": {\n    \"command\": \"thesis-gwu\",\n    \"detail\": \"Thesis class for George Washington University School of Engineering and Applied Science\",\n    \"documentation\": \"https://ctan.org/pkg/thesis-gwu\"\n  },\n  \"thesis-qom\": {\n    \"command\": \"thesis-qom\",\n    \"detail\": \"Thesis style of the University of Qom, Iran\",\n    \"documentation\": \"https://ctan.org/pkg/thesis-qom\"\n  },\n  \"third-rep\": {\n    \"command\": \"third-rep\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"thuthesis\": {\n    \"command\": \"thuthesis\",\n    \"detail\": \"Thesis template for Tsinghua University\",\n    \"documentation\": \"https://ctan.org/pkg/thuthesis\"\n  },\n  \"tikz-kalender\": {\n    \"command\": \"tikz-kalender\",\n    \"detail\": \"A LaTeX based calendar using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-kalender\"\n  },\n  \"tikzposter\": {\n    \"command\": \"tikzposter\",\n    \"detail\": \"Create scientific posters using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzposter\"\n  },\n  \"tlc-article\": {\n    \"command\": \"tlc-article\",\n    \"detail\": \"A LaTeX document class for formal documents\",\n    \"documentation\": \"https://ctan.org/pkg/tlc-article\"\n  },\n  \"toptesi\": {\n    \"command\": \"toptesi\",\n    \"detail\": \"Bundle for typesetting multilanguage theses\",\n    \"documentation\": \"https://ctan.org/pkg/toptesi\"\n  },\n  \"treport\": {\n    \"command\": \"treport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudabeamer\": {\n    \"command\": \"tudabeamer\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudaexercise\": {\n    \"command\": \"tudaexercise\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudaleaflet\": {\n    \"command\": \"tudaleaflet\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudaletter\": {\n    \"command\": \"tudaletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudaposter\": {\n    \"command\": \"tudaposter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudapub\": {\n    \"command\": \"tudapub\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudasciposter\": {\n    \"command\": \"tudasciposter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrartcl\": {\n    \"command\": \"tudscrartcl\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrbook\": {\n    \"command\": \"tudscrbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrdoc\": {\n    \"command\": \"tudscrdoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrmanual\": {\n    \"command\": \"tudscrmanual\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrposter\": {\n    \"command\": \"tudscrposter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tudscrreprt\": {\n    \"command\": \"tudscrreprt\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tufte-book\": {\n    \"command\": \"tufte-book\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tufte-handout\": {\n    \"command\": \"tufte-handout\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"tui\": {\n    \"command\": \"tui\",\n    \"detail\": \"Thesis style for the University of the Andes, Colombia\",\n    \"documentation\": \"https://ctan.org/pkg/tui\"\n  },\n  \"turabian\": {\n    \"command\": \"turabian\",\n    \"detail\": \"Create Turabian-formatted material using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/turabian\"\n  },\n  \"turabian-researchpaper\": {\n    \"command\": \"turabian-researchpaper\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"turabian-thesis\": {\n    \"command\": \"turabian-thesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ua-thesis\": {\n    \"command\": \"ua-thesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uafthesis\": {\n    \"command\": \"uafthesis\",\n    \"detail\": \"Document class for theses at University of Alaska Fairbanks\",\n    \"documentation\": \"https://ctan.org/pkg/uafthesis\"\n  },\n  \"uantwerpenbamathesis\": {\n    \"command\": \"uantwerpenbamathesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uantwerpencoursetext\": {\n    \"command\": \"uantwerpencoursetext\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uantwerpenexam\": {\n    \"command\": \"uantwerpenexam\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uantwerpenletter\": {\n    \"command\": \"uantwerpenletter\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uantwerpenphdthesis\": {\n    \"command\": \"uantwerpenphdthesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uantwerpenreport\": {\n    \"command\": \"uantwerpenreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ucalgmthesis\": {\n    \"command\": \"ucalgmthesis\",\n    \"detail\": \"LaTeX thesis class for University of Calgary Faculty of Graduate Studies\",\n    \"documentation\": \"https://ctan.org/pkg/ucalgmthesis\"\n  },\n  \"ucbthesis\": {\n    \"command\": \"ucbthesis\",\n    \"detail\": \"Thesis and dissertation class supporting UCB requirements\",\n    \"documentation\": \"https://ctan.org/pkg/ucbthesis\"\n  },\n  \"ucdavisthesis\": {\n    \"command\": \"ucdavisthesis\",\n    \"detail\": \"A thesis/dissertation class for University of California at Davis\",\n    \"documentation\": \"https://ctan.org/pkg/ucdavisthesis\"\n  },\n  \"ucsmonograph\": {\n    \"command\": \"ucsmonograph\",\n    \"detail\": \"Typesetting academic documents from the University of Caxias do Sul\",\n    \"documentation\": \"https://ctan.org/pkg/ucsmonograph\"\n  },\n  \"ucthesis\": {\n    \"command\": \"ucthesis\",\n    \"detail\": \"University of California thesis format\",\n    \"documentation\": \"https://ctan.org/pkg/ucthesis\"\n  },\n  \"udesoftec\": {\n    \"command\": \"udesoftec\",\n    \"detail\": \"Thesis class for the University of Duisburg-Essen\",\n    \"documentation\": \"https://ctan.org/pkg/udesoftec\"\n  },\n  \"uebungsblatt\": {\n    \"command\": \"uebungsblatt\",\n    \"detail\": \"A LaTeX class for writing exercise sheets\",\n    \"documentation\": \"https://ctan.org/pkg/uebungsblatt\"\n  },\n  \"uestcthesis\": {\n    \"command\": \"uestcthesis\",\n    \"detail\": \"Thesis class for UESTC\",\n    \"documentation\": \"https://ctan.org/pkg/uestcthesis\"\n  },\n  \"uhhassignment\": {\n    \"command\": \"uhhassignment\",\n    \"detail\": \"A document class for typesetting homework assignments\",\n    \"documentation\": \"https://ctan.org/pkg/uhhassignment\"\n  },\n  \"uiucredborder\": {\n    \"command\": \"uiucredborder\",\n    \"detail\": \"Class for UIUC thesis red-bordered forms\",\n    \"documentation\": \"https://ctan.org/pkg/uiucredborder\"\n  },\n  \"uiucthesis\": {\n    \"command\": \"uiucthesis\",\n    \"detail\": \"UIUC thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/uiucthesis\"\n  },\n  \"ujarticle\": {\n    \"command\": \"ujarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ujbook\": {\n    \"command\": \"ujbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ujreport\": {\n    \"command\": \"ujreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ulthese\": {\n    \"command\": \"ulthese\",\n    \"detail\": \"Thesis class and templates for Université Laval\",\n    \"documentation\": \"https://ctan.org/pkg/ulthese\"\n  },\n  \"umich-thesis\": {\n    \"command\": \"umich-thesis\",\n    \"detail\": \"University of Michigan Thesis LaTeX class\",\n    \"documentation\": \"https://ctan.org/pkg/umich-thesis\"\n  },\n  \"umthesis\": {\n    \"command\": \"umthesis\",\n    \"detail\": \"Dissertations at the University of Michigan\",\n    \"documentation\": \"https://ctan.org/pkg/umthesis\"\n  },\n  \"unam-thesis\": {\n    \"command\": \"unam-thesis\",\n    \"detail\": \"Create documents according to the UNAM guidelines\",\n    \"documentation\": \"https://ctan.org/pkg/unam-thesis\"\n  },\n  \"unifith\": {\n    \"command\": \"unifith\",\n    \"detail\": \"Typeset theses for University of Florence (Italy)\",\n    \"documentation\": \"https://ctan.org/pkg/unifith\"\n  },\n  \"unitn-bimrep\": {\n    \"command\": \"unitn-bimrep\",\n    \"detail\": \"A bimonthly report class for the PhD School of Materials, Mechatronics and System Engineering\",\n    \"documentation\": \"https://ctan.org/pkg/unitn-bimrep\"\n  },\n  \"univie-ling-expose\": {\n    \"command\": \"univie-ling-expose\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"univie-ling-paper\": {\n    \"command\": \"univie-ling-paper\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"univie-ling-thesis\": {\n    \"command\": \"univie-ling-thesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"univie-ling-wlg\": {\n    \"command\": \"univie-ling-wlg\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"unizgklasa\": {\n    \"command\": \"unizgklasa\",\n    \"detail\": \"A LaTeX class for theses at the Faculty Of Graphic Arts in Zagreb\",\n    \"documentation\": \"https://ctan.org/pkg/unizgklasa\"\n  },\n  \"uothesis\": {\n    \"command\": \"uothesis\",\n    \"detail\": \"Class for dissertations and theses at the University of Oregon\",\n    \"documentation\": \"https://ctan.org/pkg/uothesis\"\n  },\n  \"upmethodology-document\": {\n    \"command\": \"upmethodology-document\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"upmgr\": {\n    \"command\": \"upmgr\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uspatent\": {\n    \"command\": \"uspatent\",\n    \"detail\": \"U.S. Patent Application Tools for LaTeX and LyX\",\n    \"documentation\": \"https://ctan.org/pkg/uspatent\"\n  },\n  \"usthesis\": {\n    \"command\": \"usthesis\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"ut-thesis\": {\n    \"command\": \"ut-thesis\",\n    \"detail\": \"University of Toronto thesis style\",\n    \"documentation\": \"https://ctan.org/pkg/ut-thesis\"\n  },\n  \"utarticle\": {\n    \"command\": \"utarticle\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"utbook\": {\n    \"command\": \"utbook\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"utexasthesis\": {\n    \"command\": \"utexasthesis\",\n    \"detail\": \"University of Texas at Austin graduate thesis style\",\n    \"documentation\": \"https://ctan.org/pkg/utexasthesis\"\n  },\n  \"utreport\": {\n    \"command\": \"utreport\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"uwmslide\": {\n    \"command\": \"uwmslide\",\n    \"detail\": \"Slides with a simple Power Point like appearance\",\n    \"documentation\": \"https://ctan.org/pkg/uwmslide\"\n  },\n  \"uwthesis\": {\n    \"command\": \"uwthesis\",\n    \"detail\": \"University of Washington thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/uwthesis\"\n  },\n  \"verifica\": {\n    \"command\": \"verifica\",\n    \"detail\": \"Typeset (Italian high school) exercises\",\n    \"documentation\": \"https://ctan.org/pkg/verifica\"\n  },\n  \"wallcalendar\": {\n    \"command\": \"wallcalendar\",\n    \"detail\": \"A wall calendar class with custom layouts\",\n    \"documentation\": \"https://ctan.org/pkg/wallcalendar\"\n  },\n  \"webquiz\": {\n    \"command\": \"webquiz\",\n    \"detail\": \"Write interactive web based quizzes\",\n    \"documentation\": \"https://ctan.org/pkg/webquiz\"\n  },\n  \"willowtreebook\": {\n    \"command\": \"willowtreebook\",\n    \"detail\": \"Easy basic book class, built on memoir\",\n    \"documentation\": \"https://ctan.org/pkg/willowtreebook\"\n  },\n  \"withargs-packagedoc\": {\n    \"command\": \"withargs-packagedoc\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"wkmgr\": {\n    \"command\": \"wkmgr\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"worlddev\": {\n    \"command\": \"worlddev\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"wsemclassic\": {\n    \"command\": \"wsemclassic\",\n    \"detail\": \"LaTeX class for Bavarian school w-seminar papers\",\n    \"documentation\": \"https://ctan.org/pkg/wsemclassic\"\n  },\n  \"xduthesis\": {\n    \"command\": \"xduthesis\",\n    \"detail\": \"XeLaTeX template for writing Xidian University Thesis\",\n    \"documentation\": \"https://ctan.org/pkg/xduthesis\"\n  },\n  \"xebaposter\": {\n    \"command\": \"xebaposter\",\n    \"detail\": \"Create beautiful scientific Persian/Latin posters using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/xebaposter\"\n  },\n  \"xepersian-magazine\": {\n    \"command\": \"xepersian-magazine\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"xmuthesis\": {\n    \"command\": \"xmuthesis\",\n    \"detail\": \"XMU thesis style\",\n    \"documentation\": \"https://ctan.org/pkg/xmuthesis\"\n  },\n  \"xoblivoir\": {\n    \"command\": \"xoblivoir\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"xsim-manual\": {\n    \"command\": \"xsim-manual\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  },\n  \"yaletter\": {\n    \"command\": \"yaletter\",\n    \"detail\": \"Extremely flexible macros for letters, envelopes, and label sheets\",\n    \"documentation\": \"https://ctan.org/pkg/yaletter\"\n  },\n  \"yathesis\": {\n    \"command\": \"yathesis\",\n    \"detail\": \"A LaTeX class for writing a thesis following French rules\",\n    \"documentation\": \"https://ctan.org/pkg/yathesis\"\n  },\n  \"yazd-thesis\": {\n    \"command\": \"yazd-thesis\",\n    \"detail\": \"A template for the Yazd University\",\n    \"documentation\": \"https://ctan.org/pkg/yazd-thesis\"\n  },\n  \"ycbook\": {\n    \"command\": \"ycbook\",\n    \"detail\": \"A versatile book class\",\n    \"documentation\": \"https://ctan.org/pkg/ycbook\"\n  },\n  \"ydoc\": {\n    \"command\": \"ydoc\",\n    \"detail\": \"Macros for documentation of LaTeX classes and packages\",\n    \"documentation\": \"https://ctan.org/pkg/ydoc\"\n  },\n  \"york-thesis\": {\n    \"command\": \"york-thesis\",\n    \"detail\": \"A thesis class file for York University, Toronto\",\n    \"documentation\": \"https://ctan.org/pkg/york-thesis\"\n  },\n  \"zbMATH\": {\n    \"command\": \"zbMATH\",\n    \"detail\": \"\",\n    \"documentation\": \"\"\n  }\n}"
  },
  {
    "path": "data/commands.json",
    "content": "{\n  \"begin\": {\n    \"snippet\": \"begin{\",\n    \"detail\": \"Begin a new environment\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"beginend\": {\n    \"snippet\": \"begin{$1}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{$1}\",\n    \"detail\": \"Insert \\\\begin/\\\\end\",\n    \"documentation\": \"Insert a `\\\\begin{} / \\\\end{}` pair and wrap the selected text if any. Autocompletion is automatically triggered to complete the environment name\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"left(\": {\n    \"snippet\": \"left(${1}\\\\right)\",\n    \"detail\": \"\\\\left( ... \\\\right), shortcut @(\"\n  },\n  \"left[\": {\n    \"snippet\": \"left[${1}\\\\right]\",\n    \"detail\": \"\\\\left[ ... \\\\right], shortcut @[\"\n  },\n  \"left{\": {\n    \"snippet\": \"left\\\\{${1}\\\\right\\\\\\\\}\",\n    \"detail\": \"\\\\left\\\\{ ... \\\\right\\\\}, shortcut @{\"\n  },\n  \"bigl(\": {\n    \"snippet\": \"bigl(${1}\\\\bigr)\",\n    \"detail\": \"\\\\bigl( ... \\\\bigr)\"\n  },\n  \"bigl[\": {\n    \"snippet\": \"bigl[${1}\\\\bigr]\",\n    \"detail\": \"\\\\bigl[ ... \\\\bigr]\"\n  },\n  \"bigl{\": {\n    \"snippet\": \"bigl\\\\{${1}\\\\bigr\\\\\\\\}\",\n    \"detail\": \"\\\\bigl\\\\{ ... \\\\bigr\\\\}\"\n  },\n  \"Bigl(\": {\n    \"snippet\": \"Bigl(${1}\\\\Bigr)\",\n    \"detail\": \"\\\\Bigl( ... \\\\Bigr)\"\n  },\n  \"Bigl[\": {\n    \"snippet\": \"Bigl[${1}\\\\Bigr]\",\n    \"detail\": \"\\\\Bigl[ ... \\\\Bigr]\"\n  },\n  \"Bigl{\": {\n    \"snippet\": \"Bigl\\\\{${1}\\\\Bigr\\\\\\\\}\",\n    \"detail\": \"\\\\Bigl\\\\{ ... \\\\Bigr\\\\}\"\n  },\n  \"biggl(\": {\n    \"snippet\": \"biggl(${1}\\\\biggr)\",\n    \"detail\": \"\\\\biggl( ... \\\\biggr)\"\n  },\n  \"biggl[\": {\n    \"snippet\": \"biggl[${1}\\\\biggr]\",\n    \"detail\": \"\\\\biggl[ ... \\\\biggr]\"\n  },\n  \"biggl{\": {\n    \"snippet\": \"biggl\\\\{${1}\\\\biggr\\\\\\\\}\",\n    \"detail\": \"\\\\biggl\\\\{ ... \\\\biggr\\\\}\"\n  },\n  \"Biggl(\": {\n    \"snippet\": \"Biggl(${1}\\\\Biggr)\",\n    \"detail\": \"\\\\Biggl( ... \\\\Biggr)\"\n  },\n  \"Biggl[\": {\n    \"snippet\": \"Biggl[${1}\\\\Biggr]\",\n    \"detail\": \"\\\\Biggl[ ... \\\\Biggr]\"\n  },\n  \"Biggl{\": {\n    \"snippet\": \"Biggl\\\\{${1}\\\\Biggr\\\\\\\\}\",\n    \"detail\": \"\\\\Biggl\\\\{ ... \\\\Biggr\\\\}\"\n  },\n  \"frame\": {\n    \"snippet\": \"begin{frame}\\n\\t\\\\frametitle{${1:<title>}}\\n\\n\\t$0\\n\\n\\\\end{frame}\",\n    \"detail\": \"Insert a frame \\\\begin{frame} ... \\\\end{frame}\"\n  },\n  \"(\": {\n    \"snippet\": \"(${1}\\\\)\",\n    \"detail\": \"inline math \\\\( ... \\\\)\"\n  },\n  \"[\": {\n    \"snippet\": \"[${1}\\\\]\",\n    \"detail\": \"display math \\\\[ ... \\\\]\"\n  },\n  \"{\": {\n    \"snippet\": \"{${1}\\\\\\\\}\",\n    \"detail\": \"curly brackets \\\\{ ... \\\\}\"\n  },\n  \"title{}\": {\n    \"snippet\": \"title{${1:title}}\"\n  },\n  \"part{}\": {\n    \"snippet\": \"part{${1}}\"\n  },\n  \"chapter{}\": {\n    \"snippet\": \"chapter{${1}}\"\n  },\n  \"section{}\": {\n    \"snippet\": \"section{${1}}\"\n  },\n  \"subsection{}\": {\n    \"snippet\": \"subsection{${1}}\"\n  },\n  \"subsubsection{}\": {\n    \"snippet\": \"subsubsection{${1}}\"\n  },\n  \"paragraph{}\": {\n    \"snippet\": \"paragraph{${1}}\"\n  },\n  \"subparagraph{}\": {\n    \"snippet\": \"subparagraph{${1}}\"\n  },\n  \"bibliography{}\": {\n    \"snippet\": \"bibliography{$1}\"\n  },\n  \"bibliographystyle{}\": {\n    \"snippet\": \"bibliographystyle{$1}\"\n  },\n  \"caption{}\": {\n    \"snippet\": \"caption{${1}}\"\n  },\n  \"footnote{}\": {\n    \"snippet\": \"footnote{${1}}\"\n  },\n  \"cite{}\": {\n    \"snippet\": \"cite{$1}\",\n    \"detail\": \"reference\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"textcite{}\": {\n    \"snippet\": \"textcite{$1}\",\n    \"detail\": \"reference\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"parencite{}\": {\n    \"snippet\": \"parencite{$1}\",\n    \"detail\": \"reference\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"citeyear{}\": {\n    \"snippet\": \"citeyear{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"shortcite{}\": {\n    \"snippet\": \"shortcite{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"emph{}\": {\n    \"snippet\": \"emph{${1}}\"\n  },\n  \"textbf{}\": {\n    \"snippet\": \"textbf{${1}}\"\n  },\n  \"textit{}\": {\n    \"snippet\": \"textit{${1}}\"\n  },\n  \"textmd{}\": {\n    \"snippet\": \"textmd{${1}}\"\n  },\n  \"textnormal{}\": {\n    \"snippet\": \"textnormal{${1}}\"\n  },\n  \"textrm{}\": {\n    \"snippet\": \"textrm{${1}}\"\n  },\n  \"textsc{}\": {\n    \"snippet\": \"textsc{${1}}\"\n  },\n  \"textsf{}\": {\n    \"snippet\": \"textsf{${1}}\"\n  },\n  \"textsl{}\": {\n    \"snippet\": \"textsl{${1}}\",\n    \"detail\": \"slanted text\"\n  },\n  \"texttt{}\": {\n    \"snippet\": \"texttt{${1}}\"\n  },\n  \"textup{}\": {\n    \"snippet\": \"textup{${1}}\"\n  },\n  \"textwidth\": {},\n  \"ttfamily\": {},\n  \"label{}\": {\n    \"snippet\": \"label{${1}}\"\n  },\n  \"ref{}\": {\n    \"snippet\": \"ref{${1}}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"pageref{}\": {\n    \"snippet\": \"pageref{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"author{}\": {\n    \"snippet\": \"author{$1}\"\n  },\n  \"pagestyle{}\": {\n    \"snippet\": \"pagestyle{$1}\"\n  },\n  \"hspace{}\": {\n    \"snippet\": \"hspace{${1:l}}\"\n  },\n  \"hspace*{}\": {\n    \"snippet\": \"hspace*{${1:l}}\"\n  },\n  \"vspace{}\": {\n    \"snippet\": \"vspace{${1:l}}\"\n  },\n  \"vspace*{}\": {\n    \"snippet\": \"vspace*{${1:l}}\"\n  },\n  \"usepackage{}\": {\n    \"snippet\": \"usepackage{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"item\": {\n    \"snippet\": \"item $0\"\n  },\n  \"multicolumn{}{}{}\": {\n    \"snippet\": \"multicolumn{${1:n}}{${2:cols}}{${3:text}}\"\n  },\n  \"documentclass{}\": {\n    \"snippet\": \"documentclass{$1}\"\n  },\n  \"tableofcontents\": {},\n  \"linespread{}\": {\n    \"snippet\": \"linespread{${1:x}}\"\n  },\n  \"date\": {\n    \"snippet\": \"date{$1}\"\n  },\n  \"today\": {},\n  \"underline{}\": {\n    \"snippet\": \"underline{${1}}\",\n    \"detail\": \" ̲\",\n    \"documentation\": \"COMBINING LOW LINE\"\n  },\n  \"rule{}{}\": {\n    \"snippet\": \"rule{${1:width}}{${2:height}}\"\n  },\n  \"pagebreak\": {},\n  \"noindent\": {},\n  \"nonumber\": {\n    \"detail\": \"Insert nonumber, shortcut @,\"\n  },\n  \"kill\": {},\n  \"tiny\": {},\n  \"scriptsize\": {},\n  \"footnotesize\": {},\n  \"small\": {},\n  \"normalsize\": {},\n  \"large\": {},\n  \"Large\": {},\n  \"LARGE\": {},\n  \"huge\": {},\n  \"Huge\": {},\n  \"raggedleft\": {},\n  \"raggedright\": {},\n  \"centering\": {},\n  \"cline{}\": {\n    \"snippet\": \"cline{${1:x}-${2:y}}\"\n  },\n  \"hline\": {},\n  \"text{}\": {\n    \"snippet\": \"text{$1}\"\n  },\n  \"sqrt{}\": {\n    \"snippet\": \"sqrt{$1}\",\n    \"detail\": \"√, shortcut @2\"\n  },\n  \"frac{}{}\": {\n    \"snippet\": \"frac{$1}{$2}\",\n    \"detail\": \"Insert fraction, shortcuts @/ or @%\"\n  },\n  \"bar{}\": {\n    \"snippet\": \"bar{$1}\",\n    \"detail\": \"¯, shortcut @_\"\n  },\n  \"alpha\": {\n    \"detail\": \"α, shortcut @a\"\n  },\n  \"beta\": {\n    \"detail\": \"β, shortcut @b\"\n  },\n  \"chi\": {\n    \"detail\": \"χ, shortcut @c\"\n  },\n  \"delta\": {\n    \"detail\": \"δ, shortcut @d\"\n  },\n  \"epsilon\": {\n    \"detail\": \"ϵ, shortcut @e\"\n  },\n  \"varepsilon\": {\n    \"detail\": \"ε, shortcut @ve\"\n  },\n  \"eta\": {\n    \"detail\": \"η, shortcut @h\"\n  },\n  \"gamma\": {\n    \"detail\": \"γ, shortcut @g\"\n  },\n  \"iota\": {\n    \"detail\": \"ι, shortcut @i\"\n  },\n  \"kappa\": {\n    \"detail\": \"κ, shortcut @k\"\n  },\n  \"lambda\": {\n    \"detail\": \"λ, shortcut @l\"\n  },\n  \"mu\": {\n    \"detail\": \"μ, shortcut @m\"\n  },\n  \"nu\": {\n    \"detail\": \"ν, shortcut @n\"\n  },\n  \"omega\": {\n    \"detail\": \"ω, shortcut @o\"\n  },\n  \"phi\": {\n    \"detail\": \"φ, shortcut @f\"\n  },\n  \"varphi\": {\n    \"detail\": \"ϕ, shortcut @vf\"\n  },\n  \"pi\": {\n    \"detail\": \"π, shortcut @p\"\n  },\n  \"varpi\": {\n    \"detail\": \"ϖ, shortcut @vp\"\n  },\n  \"psi\": {\n    \"detail\": \"ψ, shortcut @y\"\n  },\n  \"rho\": {\n    \"detail\": \"ρ, shortcut @r\"\n  },\n  \"varrho\": {\n    \"detail\": \"ϱ, shortcut @vr\"\n  },\n  \"sigma\": {\n    \"detail\": \"σ, shortcut @s\"\n  },\n  \"varsigma\": {\n    \"detail\": \"ς, shortcut @vs\"\n  },\n  \"tau\": {\n    \"detail\": \"τ, shortcut @t\"\n  },\n  \"theta\": {\n    \"detail\": \"θ, shortcut @q\"\n  },\n  \"vartheta\": {\n    \"detail\": \"ϑ, shortcut @vq\"\n  },\n  \"upsilon\": {\n    \"detail\": \"υ, shortcut @u\"\n  },\n  \"xi\": {\n    \"detail\": \"ξ, shortcut @x\"\n  },\n  \"zeta\": {\n    \"detail\": \"ζ, shortcut @z\"\n  },\n  \"Delta\": {\n    \"detail\": \"Δ, shortcut @D\"\n  },\n  \"Gamma\": {\n    \"detail\": \"Γ, shortcut @G\"\n  },\n  \"Lambda\": {\n    \"detail\": \"Λ, shortcut @L\"\n  },\n  \"Omega\": {\n    \"detail\": \"Ω, shortcut @W\"\n  },\n  \"Phi\": {\n    \"detail\": \"Φ, shortcut @F\"\n  },\n  \"Pi\": {\n    \"detail\": \"Π, shortcut @P\"\n  },\n  \"Psi\": {\n    \"detail\": \"Ψ, shortcut @Y\"\n  },\n  \"Sigma\": {\n    \"detail\": \"Σ, shortcut @S\"\n  },\n  \"Theta\": {\n    \"detail\": \"Θ, shortcut @Q\"\n  },\n  \"Upsilon\": {\n    \"detail\": \"Υ, shortcut @U\"\n  },\n  \"Xi\": {\n    \"detail\": \"Ξ, shortcut @X\"\n  },\n  \"exists\": {\n    \"detail\": \"∃\"\n  },\n  \"in\": {\n    \"detail\": \"∈\"\n  },\n  \"notin\": {\n    \"detail\": \"∉\"\n  },\n  \"subset\": {\n    \"detail\": \"⊂\"\n  },\n  \"supset\": {\n    \"detail\": \"⊃\"\n  },\n  \"leftarrow\": {\n    \"detail\": \"←\"\n  },\n  \"Leftarrow\": {\n    \"detail\": \"⇐\"\n  },\n  \"Leftrightarrow\": {\n    \"detail\": \"⇔\"\n  },\n  \"rightarrow\": {\n    \"detail\": \"→\"\n  },\n  \"Rightarrow\": {\n    \"detail\": \"⇒\"\n  },\n  \"infty\": {\n    \"detail\": \"∞, shortcut @8\"\n  },\n  \"div\": {\n    \"detail\": \"division\"\n  },\n  \"approx\": {\n    \"detail\": \"≈\"\n  },\n  \"mid\": {\n    \"detail\": \"∣\"\n  },\n  \"neg\": {\n    \"detail\": \"¬\"\n  },\n  \"setminus\": {\n    \"detail\": \"∖\"\n  },\n  \"sum\": {\n    \"detail\": \"∑\"\n  },\n  \"prime\": {\n    \"detail\": \"′\"\n  },\n  \"geq\": {\n    \"detail\": \"≥, shortcut @>\"\n  },\n  \"partial\": {\n    \"detail\": \"∂, shortcut @6\"\n  },\n  \"pm\": {\n    \"detail\": \"±\"\n  },\n  \"times\": {\n    \"detail\": \"×, shortcut @*\"\n  },\n  \"cap\": {\n    \"detail\": \"∩\"\n  },\n  \"bigcap\": {\n    \"detail\": \"∩, shortcut @-\"\n  },\n  \"cup\": {\n    \"detail\": \"∪\"\n  },\n  \"bigcup\": {\n    \"detail\": \"∪, shortcut @+\"\n  },\n  \"vee\": {\n    \"detail\": \"∨\"\n  },\n  \"prod\": {\n    \"detail\": \"∏\"\n  },\n  \"circ\": {\n    \"detail\": \"°, shortcut @@\"\n  },\n  \"wedge\": {\n    \"detail\": \"∧, shortcut @&\"\n  },\n  \"neq\": {\n    \"detail\": \"≠\"\n  },\n  \"forall\": {\n    \"detail\": \"∀\"\n  },\n  \"leq\": {\n    \"detail\": \"≤, shortcut @<\"\n  },\n  \"equiv\": {\n    \"detail\": \"≡, shortcut @=\"\n  },\n  \"dot{}\": {\n    \"snippet\": \"dot{$1}\",\n    \"detail\": \"˙, shortcut @;\"\n  },\n  \"ddot{}\": {\n    \"snippet\": \"ddot{$1}\",\n    \"detail\": \"¨, shortcut @: \"\n  },\n  \"acute{}\": {\n    \"snippet\": \"acute{$1}\",\n    \"detail\": \" ́\",\n    \"documentation\": \"acute accent\"\n  },\n  \"breve{}\": {\n    \"snippet\": \"breve{$1}\",\n    \"detail\": \" ̆\",\n    \"documentation\": \"breve\"\n  },\n  \"check{}\": {\n    \"snippet\": \"check{$1}\",\n    \"detail\": \" ̌\",\n    \"documentation\": \"caron\"\n  },\n  \"grave{}\": {\n    \"snippet\": \"grave{$1}\",\n    \"detail\": \" ̀\",\n    \"documentation\": \"grave accent\"\n  },\n  \"hat{}\": {\n    \"snippet\": \"hat{$1}\",\n    \"detail\": \" ̂, shortcut @^\",\n    \"documentation\": \"circumflex accent\"\n  },\n  \"widehat{}\": {\n    \"snippet\": \"widehat{$1}\",\n    \"detail\": \" ̂\",\n    \"documentation\": \"wide circumflex accent\"\n  },\n  \"tilde{}\": {\n    \"snippet\": \"tilde{$1}\",\n    \"detail\": \" ̃\",\n    \"documentation\": \"tilde\"\n  },\n  \"widetilde{}\": {\n    \"snippet\": \"widetilde{$1}\",\n    \"detail\": \" ̃\",\n    \"documentation\": \"wide tilde\"\n  },\n  \"vec{}\": {\n    \"snippet\": \"vec{$1}\"\n  },\n  \"addcontentsline{}{}{}\": {\n    \"snippet\": \"addcontentsline{${1:file}}{${2:secunit}}{${3:entry}}\"\n  },\n  \"appendix\": {},\n  \"appendixname\": {},\n  \"arabic{}\": {\n    \"snippet\": \"arabic{${1:counter}}\"\n  },\n  \"ensuremath{}\": {\n    \"snippet\": \"ensuremath{${1:text}}\"\n  },\n  \"bibitem{}\": {\n    \"snippet\": \"bibitem{${1:citekey}}\"\n  },\n  \"bibitem[]{}\": {\n    \"snippet\": \"bibitem[${2:label}]{${1:citekey}}\"\n  },\n  \"caption[]{}\": {\n    \"snippet\": \"caption[${2:short}]{${1:title}}\"\n  },\n  \"chapter*{}\": {\n    \"snippet\": \"chapter*{${1:title}}\"\n  },\n  \"chapter[]{}\": {\n    \"snippet\": \"chapter[${2:short}]{${1:title}}\"\n  },\n  \"chaptermark{}\": {\n    \"snippet\": \"chaptermark{${1:code}}\"\n  },\n  \"chaptername{}\": {\n    \"snippet\": \"chaptername{${1:name}}\"\n  },\n  \"cite[]{}\": {\n    \"snippet\": \"cite[${2:text}]{${1:keylist}}\"\n  },\n  \"cleardoublepage\": {},\n  \"clearpage\": {},\n  \"contentsline{}{}{}\": {\n    \"snippet\": \"contentsline{${1:type}}{${2:text}}{${3:page}}\"\n  },\n  \"contentsname{}\": {\n    \"snippet\": \"contentsname{${1:name}}\"\n  },\n  \"cdot\": {\n    \"detail\": \"·, shortcut @.\"\n  },\n  \"cdots\": {\n    \"detail\": \"···\"\n  },\n  \"ldots\": {},\n  \"ddots\": {\n    \"detail\": \"⋱\"\n  },\n  \"documentclass[]{}\": {\n    \"snippet\": \"documentclass[${2:options}]{${1:style}}\"\n  },\n  \"fbox{}\": {\n    \"snippet\": \"fbox{${1:text}}\"\n  },\n  \"figurename{}\": {\n    \"snippet\": \"figurename{${1:name}}\"\n  },\n  \"footnotemark\": {},\n  \"footnotemark[]\": {\n    \"snippet\": \"footnotemark[${1:number}]\"\n  },\n  \"footnotetext[]{}\": {\n    \"snippet\": \"footnotetext[${2:number}]{${1:text}}\"\n  },\n  \"footnotetext{}\": {\n    \"snippet\": \"footnotetext{${1:text}}\"\n  },\n  \"footnote[]{}\": {\n    \"snippet\": \"footnote[${2:number}]{${1:text}}\"\n  },\n  \"glossaryentry{}{}\": {\n    \"snippet\": \"glossaryentry{${1:text}}{${2:pagenum}}\"\n  },\n  \"glossary\": {\n    \"snippet\": \"glossary{${1:text}}\"\n  },\n  \"hlinefill\": {},\n  \"input\": {\n    \"snippet\": \"input{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"include{}\": {\n    \"snippet\": \"include{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"includegraphics{}\": {\n    \"snippet\": \"includegraphics{$1}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"includegraphics[]{}\": {\n    \"snippet\": \"includegraphics[${2:options}]{${1:name}}\",\n    \"postAction\": \"editor.action.triggerSuggest\"\n  },\n  \"includeonly{}\": {\n    \"snippet\": \"includeonly{${1:filelist}}\"\n  },\n  \"indexname{}\": {\n    \"snippet\": \"indexname{${1:name}}\"\n  },\n  \"index{}\": {\n    \"snippet\": \"index{${1:entry}}\"\n  },\n  \"inputlineno\": {},\n  \"item[]\": {\n    \"snippet\": \"item[${1:label}]\"\n  },\n  \"itshape\": {},\n  \"LaTeX\": {},\n  \"linebreak\": {},\n  \"linebreak[]\": {\n    \"snippet\": \"linebreak[${1:number}]\"\n  },\n  \"makeatletter\": {},\n  \"makeatother\": {},\n  \"maketitle\": {},\n  \"marginpar[]{}\": {\n    \"snippet\": \"marginpar[${2:left}]{${1:right}}\"\n  },\n  \"marginpar{}\": {\n    \"snippet\": \"marginpar{${1:right}}\"\n  },\n  \"markboth{}{}\": {\n    \"snippet\": \"markboth{${1:lefthead}}{${2:righthead}}\"\n  },\n  \"markright{}\": {\n    \"snippet\": \"markright{${1:righthead}}\"\n  },\n  \"mbox{}\": {\n    \"snippet\": \"mbox{${1:text}}\"\n  },\n  \"newline\": {},\n  \"newpage\": {},\n  \"newtheorem{}[]{}\": {\n    \"snippet\": \"newtheorem{${1:envname}}[${2:numberedlike}]{${3:caption}}\"\n  },\n  \"newtheorem{}{}\": {\n    \"snippet\": \"newtheorem{${1:envname}}{${2:caption}}\"\n  },\n  \"newtheorem{}{}[]\": {\n    \"snippet\": \"newtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n  },\n  \"nocite{}\": {\n    \"snippet\": \"nocite{${1:keylist}}\"\n  },\n  \"nolinebreak\": {},\n  \"nolinebreak[]\": {\n    \"snippet\": \"nolinebreak[${1:number}]\"\n  },\n  \"nopagebreak\": {},\n  \"nopagebreak[]\": {\n    \"snippet\": \"nopagebreak[${1:number}]\"\n  },\n  \"underbrace{}\": {\n    \"snippet\": \"underbrace{${1:text}}\"\n  },\n  \"overbrace{}\": {\n    \"snippet\": \"overbrace{${1:text}}\",\n    \"detail\": \"⏞\",\n    \"documentation\": \"TOP CURLY BRACKET\"\n  },\n  \"overline{}\": {\n    \"snippet\": \"overline{${1:text}}\",\n    \"detail\": \" ̅\",\n    \"documentation\": \"overbar embellishment\"\n  },\n  \"pagebreak[]\": {\n    \"snippet\": \"pagebreak[${1:number}]\"\n  },\n  \"pagename\": {},\n  \"pagenumbering{}\": {\n    \"snippet\": \"pagenumbering{${1:numstyle}}\"\n  },\n  \"paragraph*{}\": {\n    \"snippet\": \"paragraph*{${1:title}}\"\n  },\n  \"paragraph[]{}\": {\n    \"snippet\": \"paragraph[${2:short}]{${1:title}}\"\n  },\n  \"parbox[]{}{}\": {\n    \"snippet\": \"parbox[${3:position}]{${1:width}}{${2:text}}\"\n  },\n  \"parbox{}{}\": {\n    \"snippet\": \"parbox{${1:width}}{${2:text}}\"\n  },\n  \"part*{}\": {\n    \"snippet\": \"part*{${1:title}}\"\n  },\n  \"part[]{}\": {\n    \"snippet\": \"part[${2:short}]{${1:title}}\"\n  },\n  \"rule[]{}{}\": {\n    \"snippet\": \"rule[${3:lift}]{${1:width}}{${2:thickness}}\"\n  },\n  \"section*{}\": {\n    \"snippet\": \"section*{${1:title}}\"\n  },\n  \"section[]{}\": {\n    \"snippet\": \"section[${2:short}]{${1:title}}\"\n  },\n  \"stackrel{}{}\": {\n    \"snippet\": \"stackrel{${1:above}}{${2:under}}\"\n  },\n  \"subparagraph*{}\": {\n    \"snippet\": \"subparagraph*{${1:title}}\"\n  },\n  \"subparagraph[]{}\": {\n    \"snippet\": \"subparagraph[${2:short}]{${1:title}}\"\n  },\n  \"subsection*{}\": {\n    \"snippet\": \"subsection*{${1:title}}\"\n  },\n  \"subsection[]{}\": {\n    \"snippet\": \"subsection[${2:short}]{${1:title}}\"\n  },\n  \"subsubsection*{}\": {\n    \"snippet\": \"subsubsection*{${1:title}}\"\n  },\n  \"subsubsection[]{}\": {\n    \"snippet\": \"subsubsection[${2:short}]{${1:title}}\"\n  },\n  \"thanks{}\": {\n    \"snippet\": \"thanks{${1:text}}\"\n  },\n  \"thispagestyle\": {\n    \"snippet\": \"thispagestyle{${1:empty/plain/headings/myheadings}}\"\n  },\n  \"usepackage[]{}\": {\n    \"snippet\": \"usepackage[${2:options}]{${1:package}}\"\n  },\n  \"newcommand{}[][]{}\": {\n    \"snippet\": \"newcommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n  },\n  \"newcommand{}[]{}\": {\n    \"snippet\": \"newcommand{${1:cmd}}[${2:args}]{${3:def}}\"\n  },\n  \"newcommand{}{}\": {\n    \"snippet\": \"newcommand{${1:cmd}}{${2:def}}\"\n  },\n  \"providecommand{}[][]{}\": {\n    \"snippet\": \"providecommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n  },\n  \"providecommand{}[]{}\": {\n    \"snippet\": \"providecommand{${1:cmd}}[${2:args}]{${3:def}}\"\n  },\n  \"providecommand{}{}\": {\n    \"snippet\": \"providecommand{${1:cmd}}{${2:def}}\"\n  },\n  \"newenvironment{}[][]{}{}\": {\n    \"snippet\": \"newenvironment{${1:nam}}[${2:args}][${3:default}]{${4:begdef}}{${5:enddef}}\"\n  },\n  \"newenvironment{}[]{}{}\": {\n    \"snippet\": \"newenvironment{${1:nam}}[${2:args}]{${3:begdef}}{${4:enddef}}\"\n  },\n  \"newenvironment{}{}{}\": {\n    \"snippet\": \"newenvironment{${1:name}}{${2:begdef}}{${3:enddef}}\"\n  },\n  \"renewcommand{}[][]{}\": {\n    \"snippet\": \"renewcommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n  },\n  \"renewcommand{}[]{}\": {\n    \"snippet\": \"renewcommand{${1:cmd}}[${2:args}]{${3:def}}\"\n  },\n  \"renewcommand{}{}\": {\n    \"snippet\": \"renewcommand{${1:cmd}}{${2:def}}\"\n  },\n  \"renewenvironment{}[][]{}{}\": {\n    \"snippet\": \"renewenvironment{${1:name}}[${2:args}][${3:default}]{${4:begdef}}{${5:enddef}}\"\n  },\n  \"renewenvironment{}[]{}{}\": {\n    \"snippet\": \"renewenvironment{${1:name}}[${2:args}]{${3:begdef}}{${4:enddef}}\"\n  },\n  \"renewenvironment{}{}{}\": {\n    \"snippet\": \"renewenvironment{${1:name}}{${2:begdef}}{${3:enddef}}\"\n  },\n  \"roman{}\": {\n    \"snippet\": \"roman{${1:counter}}\"\n  },\n  \"Roman{}\": {\n    \"snippet\": \"Roman{${1:counter}}\"\n  },\n  \"framebox[][]{}\": {\n    \"snippet\": \"framebox[${2:width}][${3:position}]{${1:text}}\"\n  },\n  \"framebox[]{}\": {\n    \"snippet\": \"framebox[${2:width}]{${1:text}}\"\n  },\n  \"listoffigures\": {},\n  \"listoftables\": {},\n  \"makeglossary\": {},\n  \"makeindex\": {},\n  \"mathbb{}\": {\n    \"snippet\": \"mathbb{${1:text}}\"\n  },\n  \"mathbf{}\": {\n    \"snippet\": \"mathbf{${1:text}}\"\n  },\n  \"mathcal{}\": {\n    \"snippet\": \"mathcal{${1:text}}\"\n  },\n  \"mathds{}\": {\n    \"snippet\": \"mathds{${1:text}}\"\n  },\n  \"mathit{}\": {\n    \"snippet\": \"mathit{${1:text}}\"\n  },\n  \"mathnormal{}\": {\n    \"snippet\": \"mathnormal{${1:text}}\"\n  },\n  \"mathrm{}\": {\n    \"snippet\": \"mathrm{${1:text}}\"\n  },\n  \"mathscr{}\": {\n    \"snippet\": \"mathscr{${1:text}}\"\n  },\n  \"mathsf{}\": {\n    \"snippet\": \"mathsf{${1:text}}\"\n  },\n  \"mathtt{}\": {\n    \"snippet\": \"mathtt{${1:text}}\"\n  },\n  \"displaystyle\": {}\n}\n"
  },
  {
    "path": "data/environments.json",
    "content": "[\n    { \"name\": \"document\", \"arg\": { \"format\": \"\", \"snippet\": \"\\n$0\" } },\n    { \"name\": \"table\" },\n    {\n        \"name\": \"description\",\n        \"arg\": { \"format\": \"\", \"snippet\": \"\\n\\t\\\\item[$1] $0\" }\n    },\n    { \"name\": \"enumerate\", \"arg\": { \"format\": \"\", \"snippet\": \"\\n\\t\\\\item $0\" } },\n    { \"name\": \"itemize\", \"arg\": { \"format\": \"\", \"snippet\": \"\\n\\t\\\\item $0\" } },\n    { \"name\": \"math\" },\n    { \"name\": \"displaymath\" },\n    { \"name\": \"split\" },\n    { \"name\": \"array\", \"arg\": { \"format\": \"{}\", \"snippet\": \"{${1:cols}}\" } },\n    { \"name\": \"subarray\", \"arg\": { \"format\": \"{}\", \"snippet\": \"{${1:align}}\" } },\n    { \"name\": \"eqnarray\" },\n    { \"name\": \"equation\" },\n    { \"name\": \"equation*\" },\n    { \"name\": \"subequations\" },\n    { \"name\": \"subequations*\" },\n    { \"name\": \"multline\" },\n    { \"name\": \"multline*\" },\n    { \"name\": \"gather\" },\n    { \"name\": \"gather*\" },\n    { \"name\": \"gathered\" },\n    { \"name\": \"align\" },\n    { \"name\": \"align*\" },\n    { \"name\": \"aligned\" },\n    { \"name\": \"alignedat\" },\n    { \"name\": \"flalign\" },\n    { \"name\": \"flalign*\" },\n    { \"name\": \"xalignat\" },\n    { \"name\": \"xalignat*\" },\n    { \"name\": \"matrix\" },\n    { \"name\": \"bmatrix\" },\n    { \"name\": \"Bmatrix\" },\n    { \"name\": \"pmatrix\" },\n    { \"name\": \"vmatrix\" },\n    { \"name\": \"Vmatrix\" },\n    { \"name\": \"smallmatrix\" },\n    { \"name\": \"definition\" },\n    { \"name\": \"example\" },\n    { \"name\": \"remark\" },\n    { \"name\": \"lemma\" },\n    { \"name\": \"theorem\" },\n    { \"name\": \"corollary\" },\n    { \"name\": \"proposition\" },\n    { \"name\": \"proof\" },\n    { \"name\": \"cases\" },\n    { \"name\": \"center\" },\n    { \"name\": \"flushleft\" },\n    { \"name\": \"flushright\" },\n    { \"name\": \"minipage\" },\n    { \"name\": \"quotation\" },\n    { \"name\": \"quote\" },\n    { \"name\": \"verbatim\" },\n    { \"name\": \"verse\" },\n    { \"name\": \"picture\" },\n    { \"name\": \"tabbing\" },\n    { \"name\": \"tabular\", \"arg\": { \"format\": \"{}\", \"snippet\": \"{${1:cols}}\" } },\n    { \"name\": \"thebibliography\" },\n    { \"name\": \"titlepage\" }\n]\n"
  },
  {
    "path": "data/latex-snippet.json",
    "content": "{\n\t\"item\": {\n\t\t\"prefix\": \"item\",\n\t\t\"body\": \"\\n\\\\item \",\n\t\t\"description\": \"\\\\item on a newline\"\n\t},\n\t\"subscript\": {\n\t\t\"prefix\": \"__\",\n\t\t\"body\": \"_{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"subscript\"\n\t},\n\t\"superscript\": {\n\t\t\"prefix\": \"**\",\n\t\t\"body\": \"^{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"superscript\"\n\t},\n\t\"etc\": {\n\t\t\"prefix\": \"...\",\n\t\t\"body\": \"\\\\dots\",\n\t\t\"description\": \"\\\\dots\"\n\t},\n\t\"equation\": {\n\t\t\"prefix\": \"BEQ\",\n\t\t\"body\": \"\\\\begin{equation}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{equation}\",\n\t\t\"description\": \"equation environment\"\n\t},\n\t\"equation*\": {\n\t\t\"prefix\": \"BSEQ\",\n\t\t\"body\": \"\\\\begin{equation*}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{equation*}\",\n\t\t\"description\": \"equation* environment\"\n\t},\n\t\"align\": {\n\t\t\"prefix\": \"BAL\",\n\t\t\"body\": \"\\\\begin{align}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{align}\",\n\t\t\"description\": \"align environment\"\n\t},\n\t\"align*\": {\n\t\t\"prefix\": \"BSAL\",\n\t\t\"body\": \"\\\\begin{align*}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{align*}\",\n\t\t\"description\": \"align* environment\"\n\t},\n\t\"gather\": {\n\t\t\"prefix\": \"BGA\",\n\t\t\"body\": \"\\\\begin{gather}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{gather}\",\n\t\t\"description\": \"gather environment\"\n\t},\n\t\"gather*\": {\n\t\t\"prefix\": \"BSGA\",\n\t\t\"body\": \"\\\\begin{gather*}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{gather*}\",\n\t\t\"description\": \"gather* environment\"\n\t},\n\t\"multline\": {\n\t\t\"prefix\": \"BMU\",\n\t\t\"body\": \"\\\\begin{multline}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{multline}\",\n\t\t\"description\": \"multline environment\"\n\t},\n\t\"multline*\": {\n\t\t\"prefix\": \"BSMU\",\n\t\t\"body\": \"\\\\begin{multline*}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{multline*}\",\n\t\t\"description\": \"multline* environment\"\n\t},\n\t\"itemize\": {\n\t\t\"prefix\": \"BIT\",\n\t\t\"body\": \"\\\\begin{itemize}\\n\\t\\\\item ${0:${TM_SELECTED_TEXT}}\\n\\\\end{itemize}\",\n\t\t\"description\": \"itemize environment\"\n\t},\n\t\"enumerate\": {\n\t\t\"prefix\": \"BEN\",\n\t\t\"body\": \"\\\\begin{enumerate}\\n\\t\\\\item ${0:${TM_SELECTED_TEXT}}\\n\\\\end{enumerate}\",\n\t\t\"description\": \"enumerate environment\"\n\t},\n\t\"split\": {\n\t\t\"prefix\": \"BSPL\",\n\t\t\"body\": \"\\\\begin{split}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{split}\",\n\t\t\"description\": \"split environment\"\n\t},\n\t\"cases\": {\n\t\t\"prefix\": \"BCAS\",\n\t\t\"body\": \"\\\\begin{cases}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{cases}\",\n\t\t\"description\": \"cases environment\"\n\t},\n\t\"frame\": {\n\t\t\"prefix\": \"BFR\",\n\t\t\"body\": \"\\\\begin{frame}\\n\\t\\\\frametitle{${1:<title>}}\\n\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\n\\\\end{frame}\",\n\t\t\"description\": \"frame\"\n\t},\n\t\"figure\": {\n\t\t\"prefix\": \"BFI\",\n\t\t\"body\": \"\\\\begin{figure}[${1:htbp}]\\n\\t\\\\centering\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\t\\\\caption{${2:<caption>}}\\n\\t\\\\label{${3:<label>}}\\n\\\\end{figure}\",\n\t\t\"description\": \"figure\"\n\t},\n\t\"table (caption after tabular)\": {\n\t\t\"prefix\": \"BTA\",\n\t\t\"body\": \"\\\\begin{table}[${1:htbp}]\\n\\t\\\\centering\\n\\t\\\\begin{tabular}{${4:<columns>}}\\n\\t\\t${0:${TM_SELECTED_TEXT}}\\n\\t\\\\end{tabular}\\n\\t\\\\caption{${2:<caption>}}\\n\\t\\\\label{${3:<label>}}\\n\\\\end{table}\",\n\t\t\"description\": \"table\"\n\t},\n\t\"table (caption before tabular)\": {\n\t\t\"prefix\": \"BTB\",\n\t\t\"body\": \"\\\\begin{table}[${1:htbp}]\\n\\t\\\\centering\\n\\t\\\\caption{${2:<caption>}}\\n\\t\\\\label{${3:<label>}}\\n\\t\\\\begin{tabular}{${4:<columns>}}\\n\\t\\t${0:${TM_SELECTED_TEXT}}\\n\\t\\\\end{tabular}\\n\\\\end{table}\",\n\t\t\"description\": \"table\"\n\t},\n\t\"tikzcd\": {\n\t\t\"prefix\": \"BTC\",\n\t\t\"body\": \"\\\\begin{tikzcd}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{tikzcd}\",\n\t\t\"description\": \"tikzcd\"\n\t},\n\t\"tikzpicture\": {\n\t\t\"prefix\": \"BTP\",\n\t\t\"body\": \"\\\\begin{tikzpicture}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{tikzpicture}\",\n\t\t\"description\": \"tikzpicture\"\n\t},\n\t\"set font size\": {\n\t\t\"prefix\": \"fontsize\",\n\t\t\"body\": \"${1|\\\\Huge,\\\\huge,\\\\LARGE,\\\\Large,\\\\large,\\\\normalsize,\\\\small,\\\\footnotesize,\\\\scriptsize,\\\\tiny|}\",\n\t\t\"description\": \"Select a font size\"\n\t},\n\t\"textnormal\": {\n\t\t\"prefix\": \"FNO\",\n\t\t\"body\": \"\\\\textnormal{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"normal font\"\n\t},\n\t\"textrm\": {\n\t\t\"prefix\": \"FRM\",\n\t\t\"body\": \"\\\\textrm{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"roman font\"\n\t},\n\t\"emph\": {\n\t\t\"prefix\": \"FEM\",\n\t\t\"body\": \"\\\\emph{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"emphasis font\"\n\t},\n\t\"textsf\": {\n\t\t\"prefix\": \"FSF\",\n\t\t\"body\": \"\\\\textsf{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"sans serif font\"\n\t},\n\t\"texttt\": {\n\t\t\"prefix\": \"FTT\",\n\t\t\"body\": \"\\\\texttt{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"typewriter font\"\n\t},\n\t\"textit\": {\n\t\t\"prefix\": \"FIT\",\n\t\t\"body\": \"\\\\textit{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"italic font\"\n\t},\n\t\"textsl\": {\n\t\t\"prefix\": \"FSL\",\n\t\t\"body\": \"\\\\textsl{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"slanted font\"\n\t},\n\t\"textsc\": {\n\t\t\"prefix\": \"FSC\",\n\t\t\"body\": \"\\\\textsc{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"smallcaps font\"\n\t},\n\t\"underline\": {\n\t\t\"prefix\": \"FUL\",\n\t\t\"body\": \"\\\\underline{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"Underline text\"\n\t},\n\t\"uppercase\": {\n\t\t\"prefix\": \"FUC\",\n\t\t\"body\": \"\\\\uppercase{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"Make text uppercase (all caps)\"\n\t},\n\t\"lowercase\": {\n\t\t\"prefix\": \"FLC\",\n\t\t\"body\": \"\\\\lowercase{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"Make text lowercase (no caps)\"\n\t},\n\t\"textbf\": {\n\t\t\"prefix\": \"FBF\",\n\t\t\"body\": \"\\\\textbf{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"bold font\"\n\t},\n\t\"textsuperscript\": {\n\t\t\"prefix\": \"FSS\",\n\t\t\"body\": \"\\\\textsuperscript{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"Make text a superscript\"\n\t},\n\t\"textsubscript\": {\n\t\t\"prefix\": \"FBS\",\n\t\t\"body\": \"\\\\textsubscript{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"Make text a superscript\"\n\t},\n\t\"mathrm\": {\n\t\t\"prefix\": \"MRM\",\n\t\t\"body\": \"\\\\mathrm{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math roman font\"\n\t},\n\t\"mathsf\": {\n\t\t\"prefix\": \"MSF\",\n\t\t\"body\": \"\\\\mathsf{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math sans serif font\"\n\t},\n\t\"mathbf\": {\n\t\t\"prefix\": \"MBF\",\n\t\t\"body\": \"\\\\mathbf{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math bold font\"\n\t},\n\t\"mathbb\": {\n\t\t\"prefix\": \"MBB\",\n\t\t\"body\": \"\\\\mathbb{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math blackboard bold font\"\n\t},\n\t\"mathcal\": {\n\t\t\"prefix\": \"MCA\",\n\t\t\"body\": \"\\\\mathcal{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math caligraphic font\"\n\t},\n\t\"mathit\": {\n\t\t\"prefix\": \"MIT\",\n\t\t\"body\": \"\\\\mathit{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math italic font\"\n\t},\n\t\"mathtt\": {\n\t\t\"prefix\": \"MTT\",\n\t\t\"body\": \"\\\\mathtt{${1:${TM_SELECTED_TEXT:text}}}\",\n\t\t\"description\": \"math typewriter font\"\n\t},\n\t\"wrapEnv\": {\n\t\t\"body\": \"\\n\\\\begin{$1}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{$1}\",\n\t\t\"description\": \"Wrap selection into an environment\"\n\t},\n\t\"part\": {\n\t\t\"prefix\": \"SPA\",\n\t\t\"body\": \"\\\\part{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"part\"\n\t\t},\n\t\"chapter\": {\n\t\t\"prefix\": \"SCH\",\n\t\t\"body\": \"\\\\chapter{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"chapter\"\n\t},\n\t\"section\": {\n\t\t\"prefix\": \"SSE\",\n\t\t\"body\": \"\\\\section{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"section\"\n\n\t},\n\t\"subsection\": {\n\t\t\"prefix\": \"SSS\",\n\t\t\"body\": \"\\\\subsection{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"subsection\"\n\t},\n\t\"subsubsection\": {\n\t\t\"prefix\": \"SS2\",\n\t\t\"body\": \"\\\\subsubsection{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"subsubsection\"\n\t},\n\t\"paragraph\": {\n\t\t\"prefix\": \"SPG\",\n\t\t\"body\": \"\\\\paragraph{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"paragraph\"\n\t},\n\t\"subparagraph\": {\n\t\t\"prefix\": \"SSP\",\n\t\t\"body\": \"\\\\subparagraph{${1:${TM_SELECTED_TEXT}}}\",\n\t\t\"description\": \"subparagraph\"\n\t}\n}\n"
  },
  {
    "path": "data/macros.json",
    "content": "[\n  {\n    \"name\": \"begin\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"begin{\"\n    },\n    \"detail\": \"Begin a new environment\",\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"beginend\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"begin{$1}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{$1}\"\n    },\n    \"detail\": \"Insert \\\\begin/\\\\end\",\n    \"doc\": \"Insert a `\\\\begin{} / \\\\end{}` pair and wrap the selected text if any. Autocompletion is automatically triggered to complete the environment name\",\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"left\",\n    \"arg\": {\n      \"format\": \"(\",\n      \"snippet\": \"left(${1}\\\\right)\"\n    },\n    \"detail\": \"\\\\left( ... \\\\right), shortcut @(\"\n  },\n  {\n    \"name\": \"left\",\n    \"arg\": {\n      \"format\": \"[\",\n      \"snippet\": \"left[${1}\\\\right]\"\n    },\n    \"detail\": \"\\\\left[ ... \\\\right], shortcut @[\"\n  },\n  {\n    \"name\": \"left\",\n    \"arg\": {\n      \"format\": \"{\",\n      \"snippet\": \"left\\\\{${1}\\\\right\\\\\\\\}\"\n    },\n    \"detail\": \"\\\\left\\\\{ ... \\\\right\\\\}, shortcut @{\"\n  },\n  {\n    \"name\": \"left\",\n    \"arg\": {\n      \"format\": \"|\",\n      \"snippet\": \"left|${1}\\\\right|\"\n    },\n    \"detail\": \"\\\\left| ... \\\\right|, shortcut @|\"\n  },\n  {\n    \"name\": \"left\",\n    \"arg\": {\n      \"format\": \"\\\\|\",\n      \"snippet\": \"left\\\\|${1}\\\\right\\\\|\"\n    },\n    \"detail\": \"\\\\left\\\\| ... \\\\right\\\\|, shortcut @\\\\|\"\n  },\n  {\n    \"name\": \"frame\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"begin{frame}\\n\\t\\\\frametitle{${1:<title>}}\\n\\n\\t$0\\n\\n\\\\end{frame}\"\n    },\n    \"detail\": \"Insert a frame \\\\begin{frame} ... \\\\end{frame}\"\n  },\n  {\n    \"name\": \"(\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"(${1}\\\\)\"\n    },\n    \"detail\": \"inline math \\\\( ... \\\\)\"\n  },\n  {\n    \"name\": \"[\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"[${1}\\\\]\"\n    },\n    \"detail\": \"display math \\\\[ ... \\\\]\"\n  },\n  {\n    \"name\": \"{\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"{${1}\\\\\\\\}\"\n    },\n    \"detail\": \"curly brackets \\\\{ ... \\\\}\"\n  },\n  {\n    \"name\": \"title\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"title{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"part\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"part{${1}}\"\n    }\n  },\n  {\n    \"name\": \"chapter\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"chapter{${1}}\"\n    }\n  },\n  {\n    \"name\": \"section\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"section{${1}}\"\n    }\n  },\n  {\n    \"name\": \"subsection\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subsection{${1}}\"\n    }\n  },\n  {\n    \"name\": \"subsubsection\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subsubsection{${1}}\"\n    }\n  },\n  {\n    \"name\": \"paragraph\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"paragraph{${1}}\"\n    }\n  },\n  {\n    \"name\": \"subparagraph\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subparagraph{${1}}\"\n    }\n  },\n  {\n    \"name\": \"bibliography\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"bibliography{$1}\"\n    }\n  },\n  {\n    \"name\": \"bibliographystyle\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"bibliographystyle{$1}\"\n    }\n  },\n  {\n    \"name\": \"caption\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"caption{${1}}\"\n    }\n  },\n  {\n    \"name\": \"footnote\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"footnote{${1}}\"\n    }\n  },\n  {\n    \"name\": \"cite\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"cite{$1}\"\n    },\n    \"detail\": \"reference\",\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"textcite\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textcite{$1}\"\n    },\n    \"detail\": \"reference\",\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"parencite\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"parencite{$1}\"\n    },\n    \"detail\": \"reference\",\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"citeyear\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"citeyear{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"shortcite\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"shortcite{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"emph\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"emph{$1}\"\n    }\n  },\n  {\n    \"name\": \"textbf\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textbf{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textit\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textit{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textmd\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textmd{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textnormal\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textnormal{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textrm\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textrm{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textsc\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textsc{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textsf\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textsf{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textsl\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textsl{${1}}\"\n    },\n    \"detail\": \"slanted text\"\n  },\n  {\n    \"name\": \"texttt\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"texttt{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textup\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"textup{${1}}\"\n    }\n  },\n  {\n    \"name\": \"textwidth\"\n  },\n  {\n    \"name\": \"ttfamily\"\n  },\n  {\n    \"name\": \"label\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"label{${1}}\"\n    }\n  },\n  {\n    \"name\": \"ref\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"ref{${1}}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"pageref\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"pageref{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"author\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"author{$1}\"\n    }\n  },\n  {\n    \"name\": \"pagestyle\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"pagestyle{$1}\"\n    }\n  },\n  {\n    \"name\": \"hspace\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"hspace{${1:l}}\"\n    }\n  },\n  {\n    \"name\": \"hspace*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"hspace*{${1:l}}\"\n    }\n  },\n  {\n    \"name\": \"vspace\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"vspace{${1:l}}\"\n    }\n  },\n  {\n    \"name\": \"vspace*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"vspace*{${1:l}}\"\n    }\n  },\n  {\n    \"name\": \"usepackage\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"usepackage{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"item\",\n    \"arg\": {\n      \"format\": \"\",\n      \"snippet\": \"item $0\"\n    }\n  },\n  {\n    \"name\": \"multicolumn\",\n    \"arg\": {\n      \"format\": \"{}{}{}\",\n      \"snippet\": \"multicolumn{${1:n}}{${2:cols}}{${3:text}}\"\n    }\n  },\n  {\n    \"name\": \"documentclass\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"documentclass{$1}\"\n    }\n  },\n  {\n    \"name\": \"tableofcontents\"\n  },\n  {\n    \"name\": \"linespread\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"linespread{${1:x}}\"\n    }\n  },\n  {\n    \"name\": \"date\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"date{$1}\"\n    }\n  },\n  {\n    \"name\": \"today\"\n  },\n  {\n    \"name\": \"underline\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"underline{${1}}\"\n    },\n    \"detail\": \" ̲\",\n    \"doc\": \"COMBINING LOW LINE\"\n  },\n  {\n    \"name\": \"rule\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"rule{${1:width}}{${2:height}}\"\n    }\n  },\n  {\n    \"name\": \"pagebreak\"\n  },\n  {\n    \"name\": \"noindent\"\n  },\n  {\n    \"name\": \"nonumber\"\n  },\n  {\n    \"name\": \"kill\"\n  },\n  {\n    \"name\": \"tiny\"\n  },\n  {\n    \"name\": \"scriptsize\"\n  },\n  {\n    \"name\": \"footnotesize\"\n  },\n  {\n    \"name\": \"small\"\n  },\n  {\n    \"name\": \"normalsize\"\n  },\n  {\n    \"name\": \"large\"\n  },\n  {\n    \"name\": \"Large\"\n  },\n  {\n    \"name\": \"LARGE\"\n  },\n  {\n    \"name\": \"huge\"\n  },\n  {\n    \"name\": \"Huge\"\n  },\n  {\n    \"name\": \"raggedleft\"\n  },\n  {\n    \"name\": \"raggedright\"\n  },\n  {\n    \"name\": \"centering\"\n  },\n  {\n    \"name\": \"cline\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"cline{${1:x}-${2:y}}\"\n    }\n  },\n  {\n    \"name\": \"hline\"\n  },\n  {\n    \"name\": \"text\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"text{$1}\"\n    }\n  },\n  {\n    \"name\": \"sqrt\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"sqrt{$1}\"\n    },\n    \"detail\": \"√, shortcut @2\"\n  },\n  {\n    \"name\": \"frac\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"frac{$1}{$2}\"\n    },\n    \"detail\": \"Insert fraction, shortcuts @/ or @%\"\n  },\n  {\n    \"name\": \"bar\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"bar{$1}\"\n    },\n    \"detail\": \"¯, shortcut @_\"\n  },\n  {\n    \"name\": \"alpha\"\n  },\n  {\n    \"name\": \"beta\"\n  },\n  {\n    \"name\": \"chi\"\n  },\n  {\n    \"name\": \"delta\"\n  },\n  {\n    \"name\": \"epsilon\"\n  },\n  {\n    \"name\": \"varepsilon\"\n  },\n  {\n    \"name\": \"eta\"\n  },\n  {\n    \"name\": \"gamma\"\n  },\n  {\n    \"name\": \"iota\"\n  },\n  {\n    \"name\": \"kappa\"\n  },\n  {\n    \"name\": \"lambda\"\n  },\n  {\n    \"name\": \"mu\"\n  },\n  {\n    \"name\": \"nu\"\n  },\n  {\n    \"name\": \"omega\"\n  },\n  {\n    \"name\": \"phi\"\n  },\n  {\n    \"name\": \"varphi\"\n  },\n  {\n    \"name\": \"pi\"\n  },\n  {\n    \"name\": \"varpi\"\n  },\n  {\n    \"name\": \"psi\"\n  },\n  {\n    \"name\": \"rho\"\n  },\n  {\n    \"name\": \"varrho\"\n  },\n  {\n    \"name\": \"sigma\"\n  },\n  {\n    \"name\": \"varsigma\"\n  },\n  {\n    \"name\": \"tau\"\n  },\n  {\n    \"name\": \"theta\"\n  },\n  {\n    \"name\": \"vartheta\"\n  },\n  {\n    \"name\": \"upsilon\"\n  },\n  {\n    \"name\": \"xi\"\n  },\n  {\n    \"name\": \"zeta\"\n  },\n  {\n    \"name\": \"Delta\"\n  },\n  {\n    \"name\": \"Gamma\"\n  },\n  {\n    \"name\": \"Lambda\"\n  },\n  {\n    \"name\": \"Omega\"\n  },\n  {\n    \"name\": \"Phi\"\n  },\n  {\n    \"name\": \"Pi\"\n  },\n  {\n    \"name\": \"Psi\"\n  },\n  {\n    \"name\": \"Sigma\"\n  },\n  {\n    \"name\": \"Theta\"\n  },\n  {\n    \"name\": \"Upsilon\"\n  },\n  {\n    \"name\": \"Xi\"\n  },\n  {\n    \"name\": \"exists\"\n  },\n  {\n    \"name\": \"in\"\n  },\n  {\n    \"name\": \"notin\"\n  },\n  {\n    \"name\": \"subset\"\n  },\n  {\n    \"name\": \"supset\"\n  },\n  {\n    \"name\": \"leftarrow\"\n  },\n  {\n    \"name\": \"Leftarrow\"\n  },\n  {\n    \"name\": \"Leftrightarrow\"\n  },\n  {\n    \"name\": \"rightarrow\"\n  },\n  {\n    \"name\": \"Rightarrow\"\n  },\n  {\n    \"name\": \"infty\"\n  },\n  {\n    \"name\": \"div\"\n  },\n  {\n    \"name\": \"approx\"\n  },\n  {\n    \"name\": \"mid\"\n  },\n  {\n    \"name\": \"neg\"\n  },\n  {\n    \"name\": \"setminus\"\n  },\n  {\n    \"name\": \"sum\"\n  },\n  {\n    \"name\": \"prime\"\n  },\n  {\n    \"name\": \"geq\"\n  },\n  {\n    \"name\": \"partial\"\n  },\n  {\n    \"name\": \"pm\"\n  },\n  {\n    \"name\": \"times\"\n  },\n  {\n    \"name\": \"cap\"\n  },\n  {\n    \"name\": \"bigcap\"\n  },\n  {\n    \"name\": \"cup\"\n  },\n  {\n    \"name\": \"bigcup\"\n  },\n  {\n    \"name\": \"vee\"\n  },\n  {\n    \"name\": \"prod\"\n  },\n  {\n    \"name\": \"circ\"\n  },\n  {\n    \"name\": \"wedge\"\n  },\n  {\n    \"name\": \"neq\"\n  },\n  {\n    \"name\": \"forall\"\n  },\n  {\n    \"name\": \"leq\"\n  },\n  {\n    \"name\": \"equiv\"\n  },\n  {\n    \"name\": \"dot\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"dot{$1}\"\n    },\n    \"detail\": \"˙, shortcut @;\"\n  },\n  {\n    \"name\": \"ddot\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"ddot{$1}\"\n    },\n    \"detail\": \"¨, shortcut @: \"\n  },\n  {\n    \"name\": \"acute\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"acute{$1}\"\n    },\n    \"detail\": \" ́\",\n    \"doc\": \"acute accent\"\n  },\n  {\n    \"name\": \"breve\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"breve{$1}\"\n    },\n    \"detail\": \" ̆\",\n    \"doc\": \"breve\"\n  },\n  {\n    \"name\": \"check\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"check{$1}\"\n    },\n    \"detail\": \" ̌\",\n    \"doc\": \"caron\"\n  },\n  {\n    \"name\": \"grave\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"grave{$1}\"\n    },\n    \"detail\": \" ̀\",\n    \"doc\": \"grave accent\"\n  },\n  {\n    \"name\": \"hat\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"hat{$1}\"\n    },\n    \"detail\": \" ̂, shortcut @^\",\n    \"doc\": \"circumflex accent\"\n  },\n  {\n    \"name\": \"widehat\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"widehat{$1}\"\n    },\n    \"detail\": \" ̂\",\n    \"doc\": \"wide circumflex accent\"\n  },\n  {\n    \"name\": \"tilde\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"tilde{$1}\"\n    },\n    \"detail\": \" ̃\",\n    \"doc\": \"tilde\"\n  },\n  {\n    \"name\": \"widetilde\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"widetilde{$1}\"\n    },\n    \"detail\": \" ̃\",\n    \"doc\": \"wide tilde\"\n  },\n  {\n    \"name\": \"vec\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"vec{$1}\"\n    }\n  },\n  {\n    \"name\": \"addcontentsline\",\n    \"arg\": {\n      \"format\": \"{}{}{}\",\n      \"snippet\": \"addcontentsline{${1:file}}{${2:secunit}}{${3:entry}}\"\n    }\n  },\n  {\n    \"name\": \"appendix\"\n  },\n  {\n    \"name\": \"appendixname\"\n  },\n  {\n    \"name\": \"arabic\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"arabic{${1:counter}}\"\n    }\n  },\n  {\n    \"name\": \"ensuremath\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"ensuremath{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"bibitem\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"bibitem{${1:citekey}}\"\n    }\n  },\n  {\n    \"name\": \"bibitem\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"bibitem[${2:label}]{${1:citekey}}\"\n    }\n  },\n  {\n    \"name\": \"caption\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"caption[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"chapter*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"chapter*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"chapter\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"chapter[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"chaptermark\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"chaptermark{${1:code}}\"\n    }\n  },\n  {\n    \"name\": \"chaptername\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"chaptername{${1:name}}\"\n    }\n  },\n  {\n    \"name\": \"cite\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"cite[${2:text}]{${1:keylist}}\"\n    }\n  },\n  {\n    \"name\": \"cleardoublepage\"\n  },\n  {\n    \"name\": \"clearpage\"\n  },\n  {\n    \"name\": \"contentsline\",\n    \"arg\": {\n      \"format\": \"{}{}{}\",\n      \"snippet\": \"contentsline{${1:type}}{${2:text}}{${3:page}}\"\n    }\n  },\n  {\n    \"name\": \"contentsname\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"contentsname{${1:name}}\"\n    }\n  },\n  {\n    \"name\": \"cdot\"\n  },\n  {\n    \"name\": \"cdots\"\n  },\n  {\n    \"name\": \"ldots\"\n  },\n  {\n    \"name\": \"ddots\"\n  },\n  {\n    \"name\": \"documentclass\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"documentclass[${2:options}]{${1:style}}\"\n    }\n  },\n  {\n    \"name\": \"fbox\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"fbox{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"figurename\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"figurename{${1:name}}\"\n    }\n  },\n  {\n    \"name\": \"footnotemark\"\n  },\n  {\n    \"name\": \"footnotemark\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"footnotemark[${1:number}]\"\n    }\n  },\n  {\n    \"name\": \"footnotetext\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"footnotetext[${2:number}]{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"footnotetext\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"footnotetext{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"footnote\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"footnote[${2:number}]{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"glossaryentry\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"glossaryentry{${1:text}}{${2:pagenum}}\"\n    }\n  },\n  {\n    \"name\": \"glossary\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"glossary{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"hlinefill\"\n  },\n  {\n    \"name\": \"input\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"input{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"include\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"include{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"includegraphics\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"includegraphics{$1}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"includegraphics\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"includegraphics[${2:options}]{${1:name}}\"\n    },\n    \"action\": \"editor.action.triggerSuggest\"\n  },\n  {\n    \"name\": \"includeonly\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"includeonly{${1:filelist}}\"\n    }\n  },\n  {\n    \"name\": \"indexname\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"indexname{${1:name}}\"\n    }\n  },\n  {\n    \"name\": \"index\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"index{${1:entry}}\"\n    }\n  },\n  {\n    \"name\": \"inputlineno\"\n  },\n  {\n    \"name\": \"item\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"item[${1:label}]\"\n    }\n  },\n  {\n    \"name\": \"itshape\"\n  },\n  {\n    \"name\": \"LaTeX\"\n  },\n  {\n    \"name\": \"linebreak\"\n  },\n  {\n    \"name\": \"linebreak\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"linebreak[${1:number}]\"\n    }\n  },\n  {\n    \"name\": \"makeatletter\"\n  },\n  {\n    \"name\": \"makeatother\"\n  },\n  {\n    \"name\": \"maketitle\"\n  },\n  {\n    \"name\": \"marginpar\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"marginpar[${2:left}]{${1:right}}\"\n    }\n  },\n  {\n    \"name\": \"marginpar\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"marginpar{${1:right}}\"\n    }\n  },\n  {\n    \"name\": \"markboth\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"markboth{${1:lefthead}}{${2:righthead}}\"\n    }\n  },\n  {\n    \"name\": \"markright\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"markright{${1:righthead}}\"\n    }\n  },\n  {\n    \"name\": \"mbox\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mbox{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"newline\"\n  },\n  {\n    \"name\": \"newpage\"\n  },\n  {\n    \"name\": \"newtheorem\",\n    \"arg\": {\n      \"format\": \"{}[]{}\",\n      \"snippet\": \"newtheorem{${1:envname}}[${2:numberedlike}]{${3:caption}}\"\n    }\n  },\n  {\n    \"name\": \"newtheorem\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"newtheorem{${1:envname}}{${2:caption}}\"\n    }\n  },\n  {\n    \"name\": \"newtheorem\",\n    \"arg\": {\n      \"format\": \"{}{}[]\",\n      \"snippet\": \"newtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n    }\n  },\n  {\n    \"name\": \"nocite\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"nocite{${1:keylist}}\"\n    }\n  },\n  {\n    \"name\": \"nolinebreak\"\n  },\n  {\n    \"name\": \"nolinebreak\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"nolinebreak[${1:number}]\"\n    }\n  },\n  {\n    \"name\": \"nopagebreak\"\n  },\n  {\n    \"name\": \"nopagebreak\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"nopagebreak[${1:number}]\"\n    }\n  },\n  {\n    \"name\": \"underbrace\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"underbrace{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"overbrace\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"overbrace{${1:text}}\"\n    },\n    \"detail\": \"⏞\",\n    \"doc\": \"TOP CURLY BRACKET\"\n  },\n  {\n    \"name\": \"overline\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"overline{${1:text}}\"\n    },\n    \"detail\": \" ̅\",\n    \"doc\": \"overbar embellishment\"\n  },\n  {\n    \"name\": \"pagebreak\",\n    \"arg\": {\n      \"format\": \"[]\",\n      \"snippet\": \"pagebreak[${1:number}]\"\n    }\n  },\n  {\n    \"name\": \"pagename\"\n  },\n  {\n    \"name\": \"pagenumbering\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"pagenumbering{${1:numstyle}}\"\n    }\n  },\n  {\n    \"name\": \"paragraph*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"paragraph*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"paragraph\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"paragraph[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"parbox\",\n    \"arg\": {\n      \"format\": \"[]{}{}\",\n      \"snippet\": \"parbox[${3:position}]{${1:width}}{${2:text}}\"\n    }\n  },\n  {\n    \"name\": \"parbox\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"parbox{${1:width}}{${2:text}}\"\n    }\n  },\n  {\n    \"name\": \"part*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"part*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"part\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"part[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"rule\",\n    \"arg\": {\n      \"format\": \"[]{}{}\",\n      \"snippet\": \"rule[${3:lift}]{${1:width}}{${2:thickness}}\"\n    }\n  },\n  {\n    \"name\": \"section*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"section*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"section\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"section[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"stackrel\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"stackrel{${1:above}}{${2:under}}\"\n    }\n  },\n  {\n    \"name\": \"subparagraph*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subparagraph*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"subparagraph\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"subparagraph[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"subsection*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subsection*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"subsection\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"subsection[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"subsubsection*\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"subsubsection*{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"subsubsection\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"subsubsection[${2:short}]{${1:title}}\"\n    }\n  },\n  {\n    \"name\": \"thanks\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"thanks{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"thispagestyle\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"thispagestyle{${1:empty/plain/headings/myheadings}}\"\n    }\n  },\n  {\n    \"name\": \"usepackage\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"usepackage[${2:options}]{${1:package}}\"\n    }\n  },\n  {\n    \"name\": \"newcommand\",\n    \"arg\": {\n      \"format\": \"{}[][]{}\",\n      \"snippet\": \"newcommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n    }\n  },\n  {\n    \"name\": \"newcommand\",\n    \"arg\": {\n      \"format\": \"{}[]{}\",\n      \"snippet\": \"newcommand{${1:cmd}}[${2:args}]{${3:def}}\"\n    }\n  },\n  {\n    \"name\": \"newcommand\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"newcommand{${1:cmd}}{${2:def}}\"\n    }\n  },\n  {\n    \"name\": \"providecommand\",\n    \"arg\": {\n      \"format\": \"{}[][]{}\",\n      \"snippet\": \"providecommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n    }\n  },\n  {\n    \"name\": \"providecommand\",\n    \"arg\": {\n      \"format\": \"{}[]{}\",\n      \"snippet\": \"providecommand{${1:cmd}}[${2:args}]{${3:def}}\"\n    }\n  },\n  {\n    \"name\": \"providecommand\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"providecommand{${1:cmd}}{${2:def}}\"\n    }\n  },\n  {\n    \"name\": \"newenvironment\",\n    \"arg\": {\n      \"format\": \"{}[][]{}{}\",\n      \"snippet\": \"newenvironment{${1:nam}}[${2:args}][${3:default}]{${4:begdef}}{${5:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"newenvironment\",\n    \"arg\": {\n      \"format\": \"{}[]{}{}\",\n      \"snippet\": \"newenvironment{${1:nam}}[${2:args}]{${3:begdef}}{${4:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"newenvironment\",\n    \"arg\": {\n      \"format\": \"{}{}{}\",\n      \"snippet\": \"newenvironment{${1:name}}{${2:begdef}}{${3:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"renewcommand\",\n    \"arg\": {\n      \"format\": \"{}[][]{}\",\n      \"snippet\": \"renewcommand{${1:cmd}}[${2:args}][${3:default}]{${4:def}}\"\n    }\n  },\n  {\n    \"name\": \"renewcommand\",\n    \"arg\": {\n      \"format\": \"{}[]{}\",\n      \"snippet\": \"renewcommand{${1:cmd}}[${2:args}]{${3:def}}\"\n    }\n  },\n  {\n    \"name\": \"renewcommand\",\n    \"arg\": {\n      \"format\": \"{}{}\",\n      \"snippet\": \"renewcommand{${1:cmd}}{${2:def}}\"\n    }\n  },\n  {\n    \"name\": \"renewenvironment\",\n    \"arg\": {\n      \"format\": \"{}[][]{}{}\",\n      \"snippet\": \"renewenvironment{${1:name}}[${2:args}][${3:default}]{${4:begdef}}{${5:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"renewenvironment\",\n    \"arg\": {\n      \"format\": \"{}[]{}{}\",\n      \"snippet\": \"renewenvironment{${1:name}}[${2:args}]{${3:begdef}}{${4:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"renewenvironment\",\n    \"arg\": {\n      \"format\": \"{}{}{}\",\n      \"snippet\": \"renewenvironment{${1:name}}{${2:begdef}}{${3:enddef}}\"\n    }\n  },\n  {\n    \"name\": \"roman\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"roman{${1:counter}}\"\n    }\n  },\n  {\n    \"name\": \"Roman\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"Roman{${1:counter}}\"\n    }\n  },\n  {\n    \"name\": \"framebox\",\n    \"arg\": {\n      \"format\": \"[][]{}\",\n      \"snippet\": \"framebox[${2:width}][${3:position}]{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"framebox\",\n    \"arg\": {\n      \"format\": \"[]{}\",\n      \"snippet\": \"framebox[${2:width}]{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"listoffigures\"\n  },\n  {\n    \"name\": \"listoftables\"\n  },\n  {\n    \"name\": \"makeglossary\"\n  },\n  {\n    \"name\": \"makeindex\"\n  },\n  {\n    \"name\": \"mathbb\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathbb{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathbf\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathbf{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathcal\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathcal{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathds\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathds{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathit\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathit{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathnormal\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathnormal{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathrm\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathrm{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathscr\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathscr{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathsf\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathsf{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"mathtt\",\n    \"arg\": {\n      \"format\": \"{}\",\n      \"snippet\": \"mathtt{${1:text}}\"\n    }\n  },\n  {\n    \"name\": \"displaystyle\"\n  }\n]"
  },
  {
    "path": "data/packagenames.json",
    "content": "{\n  \"a4\": {\n    \"command\": \"a4\",\n    \"detail\": \"Support for A4 paper sizes\",\n    \"documentation\": \"https://ctan.org/pkg/a4\"\n  },\n  \"a4wide\": {\n    \"command\": \"a4wide\",\n    \"detail\": \"\\\"Wide\\\" a4 layout\",\n    \"documentation\": \"https://ctan.org/pkg/a4wide\"\n  },\n  \"a5comb\": {\n    \"command\": \"a5comb\",\n    \"detail\": \"Support for a5 paper sizes\",\n    \"documentation\": \"https://ctan.org/pkg/a5comb\"\n  },\n  \"abbrevs\": {\n    \"command\": \"abbrevs\",\n    \"detail\": \"Text abbreviations in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/abbrevs\"\n  },\n  \"abc\": {\n    \"command\": \"abc\",\n    \"detail\": \"Support ABC music notation in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/abc\"\n  },\n  \"abnt\": {\n    \"command\": \"abnt\",\n    \"detail\": \"Typesetting academic works according to ABNT rules\",\n    \"documentation\": \"https://ctan.org/pkg/abnt\"\n  },\n  \"abraces\": {\n    \"command\": \"abraces\",\n    \"detail\": \"Asymmetric over-/underbraces in maths\",\n    \"documentation\": \"https://ctan.org/pkg/abraces\"\n  },\n  \"abstract\": {\n    \"command\": \"abstract\",\n    \"detail\": \"Control the typesetting of the abstract environment\",\n    \"documentation\": \"https://ctan.org/pkg/abstract\"\n  },\n  \"academicons\": {\n    \"command\": \"academicons\",\n    \"detail\": \"Font containing high quality icons of online academic profiles\",\n    \"documentation\": \"https://ctan.org/pkg/academicons\"\n  },\n  \"accanthis\": {\n    \"command\": \"accanthis\",\n    \"detail\": \"Accanthis fonts, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/accanthis\"\n  },\n  \"accenti\": {\n    \"command\": \"accenti\",\n    \"detail\": \"Extra accented character macros, designed for Italian\",\n    \"documentation\": \"https://ctan.org/pkg/accenti\"\n  },\n  \"accents\": {\n    \"command\": \"accents\",\n    \"detail\": \"Multiple mathematical accents\",\n    \"documentation\": \"https://ctan.org/pkg/accents\"\n  },\n  \"accessibility\": {\n    \"command\": \"accessibility\",\n    \"detail\": \"Create tagged and structured PDF files\",\n    \"documentation\": \"https://ctan.org/pkg/accessibility\"\n  },\n  \"accsupp\": {\n    \"command\": \"accsupp\",\n    \"detail\": \"Better accessibility support for PDF files\",\n    \"documentation\": \"https://ctan.org/pkg/accsupp\"\n  },\n  \"achemso\": {\n    \"command\": \"achemso\",\n    \"detail\": \"Support for American Chemical Society journal submissions\",\n    \"documentation\": \"https://ctan.org/pkg/achemso\"\n  },\n  \"achicago\": {\n    \"command\": \"achicago\",\n    \"detail\": \"Chicago Manual citations in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/achicago\"\n  },\n  \"acro\": {\n    \"command\": \"acro\",\n    \"detail\": \"Typeset acronyms\",\n    \"documentation\": \"https://ctan.org/pkg/acro\"\n  },\n  \"acronym\": {\n    \"command\": \"acronym\",\n    \"detail\": \"Expand acronyms at least once\",\n    \"documentation\": \"https://ctan.org/pkg/acronym\"\n  },\n  \"acroterm\": {\n    \"command\": \"acroterm\",\n    \"detail\": \"Manage and index acronyms and terms\",\n    \"documentation\": \"https://ctan.org/pkg/acroterm\"\n  },\n  \"actuarialangle\": {\n    \"command\": \"actuarialangle\",\n    \"detail\": \"Angle symbol denoting a duration in actuarial and financial notation\",\n    \"documentation\": \"https://ctan.org/pkg/actuarialangle\"\n  },\n  \"actuarialsymbol\": {\n    \"command\": \"actuarialsymbol\",\n    \"detail\": \"Actuarial symbols of life contingencies and financial mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/actuarialsymbol\"\n  },\n  \"addfont\": {\n    \"command\": \"addfont\",\n    \"detail\": \"Easier use of fonts without LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/addfont\"\n  },\n  \"addliga\": {\n    \"command\": \"addliga\",\n    \"detail\": \"Access basic ligatures in legacy TrueType fonts\",\n    \"documentation\": \"https://ctan.org/pkg/addliga\"\n  },\n  \"addlines\": {\n    \"command\": \"addlines\",\n    \"detail\": \"A user-friendly wrapper around \\\\enlargethispage\",\n    \"documentation\": \"https://ctan.org/pkg/addlines\"\n  },\n  \"adforn\": {\n    \"command\": \"adforn\",\n    \"detail\": \"OrnementsADF font with TeX/LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/adforn\"\n  },\n  \"adigraph\": {\n    \"command\": \"adigraph\",\n    \"detail\": \"Augmenting directed graphs\",\n    \"documentation\": \"https://ctan.org/pkg/adigraph\"\n  },\n  \"adjmulticol\": {\n    \"command\": \"adjmulticol\",\n    \"detail\": \"Adjusting margins for multicolumn and single column output\",\n    \"documentation\": \"https://ctan.org/pkg/adjmulticol\"\n  },\n  \"adjustbox\": {\n    \"command\": \"adjustbox\",\n    \"detail\": \"Graphics package-alike macros for “general” boxes\",\n    \"documentation\": \"https://ctan.org/pkg/adjustbox\"\n  },\n  \"adtrees\": {\n    \"command\": \"adtrees\",\n    \"detail\": \"Macros for drawing adpositional trees\",\n    \"documentation\": \"https://ctan.org/pkg/adtrees\"\n  },\n  \"advdate\": {\n    \"command\": \"advdate\",\n    \"detail\": \"Print a date relative to \\\"today\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/advdate\"\n  },\n  \"ae\": {\n    \"command\": \"ae\",\n    \"detail\": \"Virtual fonts for T1 encoded CMR-fonts\",\n    \"documentation\": \"https://ctan.org/pkg/ae\"\n  },\n  \"aeguill\": {\n    \"command\": \"aeguill\",\n    \"detail\": \"Add several kinds of guillemets to the ae fonts\",\n    \"documentation\": \"https://ctan.org/pkg/aeguill\"\n  },\n  \"aesupp\": {\n    \"command\": \"aesupp\",\n    \"detail\": \"Special support for the æ character\",\n    \"documentation\": \"https://ctan.org/pkg/aesupp\"\n  },\n  \"afterpackage\": {\n    \"command\": \"afterpackage\",\n    \"detail\": \"Add commands to package after it's loaded\",\n    \"documentation\": \"https://ctan.org/pkg/afterpackage\"\n  },\n  \"afterpage\": {\n    \"command\": \"afterpage\",\n    \"detail\": \"Execute command after the next page break\",\n    \"documentation\": \"https://ctan.org/pkg/afterpage\"\n  },\n  \"afthesis\": {\n    \"command\": \"afthesis\",\n    \"detail\": \"Air Force Institute of Technology thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/afthesis\"\n  },\n  \"aguplus\": {\n    \"command\": \"aguplus\",\n    \"detail\": \"Styles for American Geophysical Union\",\n    \"documentation\": \"https://ctan.org/pkg/aguplus\"\n  },\n  \"akktex\": {\n    \"command\": \"akktex\",\n    \"detail\": \"A collection of packages and classes\",\n    \"documentation\": \"https://ctan.org/pkg/akktex\"\n  },\n  \"akshar\": {\n    \"command\": \"akshar\",\n    \"detail\": \"Support for syllables in the Devanagari script\",\n    \"documentation\": \"https://ctan.org/pkg/akshar\"\n  },\n  \"alatex\": {\n    \"command\": \"alatex\",\n    \"detail\": \"Abstract LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/alatex\"\n  },\n  \"alegreya\": {\n    \"command\": \"Alegreya\",\n    \"detail\": \"Alegreya fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/alegreya\"\n  },\n  \"alertmessage\": {\n    \"command\": \"alertmessage\",\n    \"detail\": \"Alert messages for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/alertmessage\"\n  },\n  \"alfaslabone\": {\n    \"command\": \"alfaslabone\",\n    \"detail\": \"The Alfa Slab One font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/alfaslabone\"\n  },\n  \"alg\": {\n    \"command\": \"alg\",\n    \"detail\": \"LaTeX environments for typesetting algorithms\",\n    \"documentation\": \"https://ctan.org/pkg/alg\"\n  },\n  \"algobox\": {\n    \"command\": \"algobox\",\n    \"detail\": \"Typeset Algobox programs\",\n    \"documentation\": \"https://ctan.org/pkg/algobox\"\n  },\n  \"algolrevived\": {\n    \"command\": \"algolrevived\",\n    \"detail\": \"A revival of Frutiger's Algol alphabet\",\n    \"documentation\": \"https://ctan.org/pkg/algolrevived\"\n  },\n  \"algorithm2e\": {\n    \"command\": \"algorithm2e\",\n    \"detail\": \"Floating algorithm environment with algorithmic keywords\",\n    \"documentation\": \"https://ctan.org/pkg/algorithm2e\"\n  },\n  \"algorithmicx\": {\n    \"command\": \"algorithmicx\",\n    \"detail\": \"The algorithmic style you always wanted\",\n    \"documentation\": \"https://ctan.org/pkg/algorithmicx\"\n  },\n  \"algpseudocodex\": {\n    \"command\": \"algpseudocodex\",\n    \"detail\": \" Package for typesetting pseudocode\",\n    \"documentation\": \"https://ctan.org/pkg/algpseudocodex\"\n  },\n  \"algxpar\": {\n    \"command\": \"algxpar\",\n    \"detail\": \"Support multiple lines pseudocode\",\n    \"documentation\": \"https://ctan.org/pkg/algxpar\"\n  },\n  \"aliascnt\": {\n    \"command\": \"aliascnt\",\n    \"detail\": \"Alias counters\",\n    \"documentation\": \"https://ctan.org/pkg/aliascnt\"\n  },\n  \"aligned-overset\": {\n    \"command\": \"aligned-overset\",\n    \"detail\": \"Fix alignment at \\\\overset or \\\\underset\",\n    \"documentation\": \"https://ctan.org/pkg/aligned-overset\"\n  },\n  \"allrunes\": {\n    \"command\": \"allrunes\",\n    \"detail\": \"Fonts and LaTeX package for almost all runes\",\n    \"documentation\": \"https://ctan.org/pkg/allrunes\"\n  },\n  \"alltt\": {\n    \"command\": \"alltt\",\n    \"detail\": \"Everything in tt font, but obey commands and line endings\",\n    \"documentation\": \"https://ctan.org/pkg/alltt\"\n  },\n  \"almendra\": {\n    \"command\": \"almendra\",\n    \"detail\": \"Almendra fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/almendra\"\n  },\n  \"alnumsec\": {\n    \"command\": \"alnumsec\",\n    \"detail\": \"Alphanumeric section numbering\",\n    \"documentation\": \"https://ctan.org/pkg/alnumsec\"\n  },\n  \"alphalph\": {\n    \"command\": \"alphalph\",\n    \"detail\": \"Convert numbers to letters\",\n    \"documentation\": \"https://ctan.org/pkg/alphalph\"\n  },\n  \"alphanum\": {\n    \"command\": \"alphanum\",\n    \"detail\": \"Sectioning commands for jura\",\n    \"documentation\": \"https://ctan.org/pkg/alphanum\"\n  },\n  \"alterqcm\": {\n    \"command\": \"alterqcm\",\n    \"detail\": \"Multiple choice questionnaires in two column tables\",\n    \"documentation\": \"https://ctan.org/pkg/alterqcm\"\n  },\n  \"altfont\": {\n    \"command\": \"altfont\",\n    \"detail\": \"Alternative font handling in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/altfont\"\n  },\n  \"altverse\": {\n    \"command\": \"altverse\",\n    \"detail\": \"Typesetting verse\",\n    \"documentation\": \"https://ctan.org/pkg/altverse\"\n  },\n  \"amsaddr\": {\n    \"command\": \"amsaddr\",\n    \"detail\": \"Alter the position of affiliations in amsart\",\n    \"documentation\": \"https://ctan.org/pkg/amsaddr\"\n  },\n  \"amsbsy\": {\n    \"command\": \"amsbsy\",\n    \"detail\": \"Produce bold math symbols (AMS-LaTeX)\",\n    \"documentation\": \"https://ctan.org/pkg/amsbsy\"\n  },\n  \"amscd\": {\n    \"command\": \"amscd\",\n    \"detail\": \"AMS-LaTeX commutative diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/amscd\"\n  },\n  \"amscdx\": {\n    \"command\": \"amscdx\",\n    \"detail\": \"Enhanced commutative diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/amscdx\"\n  },\n  \"amsfonts\": {\n    \"command\": \"amsfonts\",\n    \"detail\": \"TeX fonts from the American Mathematical Society\",\n    \"documentation\": \"https://ctan.org/pkg/amsfonts\"\n  },\n  \"amsmath\": {\n    \"command\": \"amsmath\",\n    \"detail\": \"AMS mathematical facilities for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/amsmath\"\n  },\n  \"amsmidx\": {\n    \"command\": \"amsmidx\",\n    \"detail\": \"Support for multiple indexes in AMS Classes\",\n    \"documentation\": \"https://ctan.org/pkg/amsmidx\"\n  },\n  \"amsopn\": {\n    \"command\": \"amsopn\",\n    \"detail\": \"Typeset mathematical operator names\",\n    \"documentation\": \"https://ctan.org/pkg/amsopn\"\n  },\n  \"amsppt\": {\n    \"command\": \"amsppt\",\n    \"detail\": \"AMS-TeX article preprint document style\",\n    \"documentation\": \"https://ctan.org/pkg/amsppt\"\n  },\n  \"amsrefs\": {\n    \"command\": \"amsrefs\",\n    \"detail\": \"A LaTeX-based replacement for BibTeX\",\n    \"documentation\": \"https://ctan.org/pkg/amsrefs\"\n  },\n  \"amssymb\": {\n    \"command\": \"amssymb\",\n    \"detail\": \"TeX fonts from the American Mathematical Society\",\n    \"documentation\": \"https://ctan.org/pkg/amsfonts\"\n  },\n  \"amstex\": {\n    \"command\": \"amstex\",\n    \"detail\": \"American Mathematical Society plain TeX macros\",\n    \"documentation\": \"https://ctan.org/pkg/amstex\"\n  },\n  \"amstext\": {\n    \"command\": \"amstext\",\n    \"detail\": \"Typeset text fragments in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/amstext\"\n  },\n  \"amsthm\": {\n    \"command\": \"amsthm\",\n    \"detail\": \"Typesetting theorems (AMS style)\",\n    \"documentation\": \"https://ctan.org/pkg/amsthm\"\n  },\n  \"animate\": {\n    \"command\": \"animate\",\n    \"detail\": \"Create PDF and SVG animations from graphics files and inline graphics\",\n    \"documentation\": \"https://ctan.org/pkg/animate\"\n  },\n  \"annee-scolaire\": {\n    \"command\": \"annee-scolaire\",\n    \"detail\": \"Automatically typeset the academic year (French way)\",\n    \"documentation\": \"https://ctan.org/pkg/annee-scolaire\"\n  },\n  \"anonchap\": {\n    \"command\": \"anonchap\",\n    \"detail\": \"Make chapters be typeset like sections\",\n    \"documentation\": \"https://ctan.org/pkg/anonchap\"\n  },\n  \"anonymous-acm\": {\n    \"command\": \"anonymous-acm\",\n    \"detail\": \"Typeset anonymous versions for ACM articles\",\n    \"documentation\": \"https://ctan.org/pkg/anonymous-acm\"\n  },\n  \"anonymouspro\": {\n    \"command\": \"AnonymousPro\",\n    \"detail\": \"Use AnonymousPro fonts with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/anonymouspro\"\n  },\n  \"answers\": {\n    \"command\": \"answers\",\n    \"detail\": \"Setting questions (or exercises) and answers\",\n    \"documentation\": \"https://ctan.org/pkg/answers\"\n  },\n  \"antanilipsum\": {\n    \"command\": \"antanilipsum\",\n    \"detail\": \"Generate sentences in the style of “Amici miei”\",\n    \"documentation\": \"https://ctan.org/pkg/antanilipsum\"\n  },\n  \"antomega\": {\n    \"command\": \"antomega\",\n    \"detail\": \"Alternative language support for Omega/Lambda\",\n    \"documentation\": \"https://ctan.org/pkg/antomega\"\n  },\n  \"anyfontsize\": {\n    \"command\": \"anyfontsize\",\n    \"detail\": \"Select any font size in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/anyfontsize\"\n  },\n  \"anysize\": {\n    \"command\": \"anysize\",\n    \"detail\": \"A simple package to set up document margins\",\n    \"documentation\": \"https://ctan.org/pkg/anysize\"\n  },\n  \"apacite\": {\n    \"command\": \"apacite\",\n    \"detail\": \"Citation style following the rules of the APA\",\n    \"documentation\": \"https://ctan.org/pkg/apacite\"\n  },\n  \"appendix\": {\n    \"command\": \"appendix\",\n    \"detail\": \"Extra control of appendices\",\n    \"documentation\": \"https://ctan.org/pkg/appendix\"\n  },\n  \"appendixnumberbeamer\": {\n    \"command\": \"appendixnumberbeamer\",\n    \"detail\": \"Manage frame numbering in appendixes in beamer\",\n    \"documentation\": \"https://ctan.org/pkg/appendixnumberbeamer\"\n  },\n  \"apptools\": {\n    \"command\": \"apptools\",\n    \"detail\": \"Tools for customising appendices\",\n    \"documentation\": \"https://ctan.org/pkg/apptools\"\n  },\n  \"apxproof\": {\n    \"command\": \"apxproof\",\n    \"detail\": \"Proofs in appendix\",\n    \"documentation\": \"https://ctan.org/pkg/apxproof\"\n  },\n  \"ar\": {\n    \"command\": \"ar\",\n    \"detail\": \"Capital A and capital R ligature for Aspect Ratio\",\n    \"documentation\": \"https://ctan.org/pkg/ar\"\n  },\n  \"arabi-add\": {\n    \"command\": \"arabi-add\",\n    \"detail\": \"Using hyperref and bookmark packages with arabic and farsi languages\",\n    \"documentation\": \"https://ctan.org/pkg/arabi-add\"\n  },\n  \"arabicfront\": {\n    \"command\": \"arabicfront\",\n    \"detail\": \"Frontmatter with arabic page numbers\",\n    \"documentation\": \"https://ctan.org/pkg/arabicfront\"\n  },\n  \"arabluatex\": {\n    \"command\": \"arabluatex\",\n    \"detail\": \"ArabTeX for LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/arabluatex\"\n  },\n  \"arabtex\": {\n    \"command\": \"arabtex\",\n    \"detail\": \"Macros and fonts for typesetting Arabic\",\n    \"documentation\": \"https://ctan.org/pkg/arabtex\"\n  },\n  \"arabxetex\": {\n    \"command\": \"arabxetex\",\n    \"detail\": \"An ArabTeX-like interface for XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/arabxetex\"\n  },\n  \"aramaic\": {\n    \"command\": \"aramaic\",\n    \"detail\": \"Fonts for Aramaic script\",\n    \"documentation\": \"https://ctan.org/pkg/aramaic\"\n  },\n  \"archivo\": {\n    \"command\": \"Archivo\",\n    \"detail\": \"The Archivo font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/archivo\"\n  },\n  \"arcs\": {\n    \"command\": \"arcs\",\n    \"detail\": \"Draw arcs over and under text\",\n    \"documentation\": \"https://ctan.org/pkg/arcs\"\n  },\n  \"arev\": {\n    \"command\": \"arev\",\n    \"detail\": \"Fonts and LaTeX support files for Arev Sans\",\n    \"documentation\": \"https://ctan.org/pkg/arev\"\n  },\n  \"arimo\": {\n    \"command\": \"arimo\",\n    \"detail\": \"Arimo sans serif fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/arimo\"\n  },\n  \"armtex\": {\n    \"command\": \"armtex\",\n    \"detail\": \"A system for writing Armenian with TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/armtex\"\n  },\n  \"array\": {\n    \"command\": \"array\",\n    \"detail\": \"Extending the array and tabular environments\",\n    \"documentation\": \"https://ctan.org/pkg/array\"\n  },\n  \"arraycols\": {\n    \"command\": \"arraycols\",\n    \"detail\": \"New column types for array and tabular environments\",\n    \"documentation\": \"https://ctan.org/pkg/arraycols\"\n  },\n  \"arrayjob\": {\n    \"command\": \"arrayjob\",\n    \"detail\": \"Array data structures for (La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/arrayjob\"\n  },\n  \"arrayjobx\": {\n    \"command\": \"arrayjobx\",\n    \"detail\": \"Array data structures for (La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/arrayjobx\"\n  },\n  \"arraysort\": {\n    \"command\": \"arraysort\",\n    \"detail\": \"Sort arrays (or portions of them)\",\n    \"documentation\": \"https://ctan.org/pkg/arraysort\"\n  },\n  \"arsclassica\": {\n    \"command\": \"arsclassica\",\n    \"detail\": \"A different view of the ClassicThesis package\",\n    \"documentation\": \"https://ctan.org/pkg/arsclassica\"\n  },\n  \"article\": {\n    \"command\": \"article\",\n    \"detail\": \"Default class for composing an article\",\n    \"documentation\": \"https://ctan.org/pkg/article\"\n  },\n  \"arvo\": {\n    \"command\": \"Arvo\",\n    \"detail\": \"The Arvo font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/arvo\"\n  },\n  \"arydshln\": {\n    \"command\": \"arydshln\",\n    \"detail\": \"Draw dash-lines in array/tabular\",\n    \"documentation\": \"https://ctan.org/pkg/arydshln\"\n  },\n  \"asaetr\": {\n    \"command\": \"asaetr\",\n    \"detail\": \"Transactions of the ASAE\",\n    \"documentation\": \"https://ctan.org/pkg/asaetr\"\n  },\n  \"asapsym\": {\n    \"command\": \"asapsym\",\n    \"detail\": \"Using the free ASAP Symbol font with LaTeX and Plain TeX\",\n    \"documentation\": \"https://ctan.org/pkg/asapsym\"\n  },\n  \"asciilist\": {\n    \"command\": \"asciilist\",\n    \"detail\": \"Environments AsciiList and AsciiDocList for prototyping nested lists in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/asciilist\"\n  },\n  \"ascmac\": {\n    \"command\": \"ascmac\",\n    \"detail\": \"Boxes and picture macros with Japanese vertical writing support\",\n    \"documentation\": \"https://ctan.org/pkg/ascmac\"\n  },\n  \"askinclude\": {\n    \"command\": \"askinclude\",\n    \"detail\": \"Interactive use of \\\\includeonly\",\n    \"documentation\": \"https://ctan.org/pkg/askinclude\"\n  },\n  \"askmaps\": {\n    \"command\": \"askmaps\",\n    \"detail\": \"Typeset American style Karnaugh maps\",\n    \"documentation\": \"https://ctan.org/pkg/askmaps\"\n  },\n  \"assoccnt\": {\n    \"command\": \"assoccnt\",\n    \"detail\": \"Associate counters, making them step when a master steps\",\n    \"documentation\": \"https://ctan.org/pkg/assoccnt\"\n  },\n  \"association-matrix\": {\n    \"command\": \"association-matrix\",\n    \"detail\": \"LaTeX support for creating association matrices\",\n    \"documentation\": \"https://ctan.org/pkg/association-matrix\"\n  },\n  \"asyfig\": {\n    \"command\": \"asyfig\",\n    \"detail\": \"Commands for using Asymptote figures\",\n    \"documentation\": \"https://ctan.org/pkg/asyfig\"\n  },\n  \"asymptote\": {\n    \"command\": \"asymptote\",\n    \"detail\": \"2D and 3D TeX-Aware Vector Graphics Language\",\n    \"documentation\": \"https://ctan.org/pkg/asymptote\"\n  },\n  \"asypictureb\": {\n    \"command\": \"asypictureB\",\n    \"detail\": \"User-friendly integration of Asymptote into LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/asypictureb\"\n  },\n  \"at\": {\n    \"command\": \"at\",\n    \"detail\": \"Short commands starting '@'\",\n    \"documentation\": \"https://ctan.org/pkg/at\"\n  },\n  \"atbegshi\": {\n    \"command\": \"atbegshi\",\n    \"detail\": \"Execute stuff at \\\\shipout time\",\n    \"documentation\": \"https://ctan.org/pkg/atbegshi\"\n  },\n  \"atenddvi\": {\n    \"command\": \"atenddvi\",\n    \"detail\": \"Provides the \\\\AtEndDvi command\",\n    \"documentation\": \"https://ctan.org/pkg/atenddvi\"\n  },\n  \"atkinson\": {\n    \"command\": \"atkinson\",\n    \"detail\": \"Support for the Atkinson Hyperlegible family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/atkinson\"\n  },\n  \"attachfile\": {\n    \"command\": \"attachfile\",\n    \"detail\": \"Attach arbitrary files to a PDF document\",\n    \"documentation\": \"https://ctan.org/pkg/attachfile\"\n  },\n  \"attachfile2\": {\n    \"command\": \"attachfile2\",\n    \"detail\": \"Attach files into PDF\",\n    \"documentation\": \"https://ctan.org/pkg/attachfile2\"\n  },\n  \"attrib\": {\n    \"command\": \"attrib\",\n    \"detail\": \"Attribution of block quotations in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/attrib\"\n  },\n  \"atveryend\": {\n    \"command\": \"atveryend\",\n    \"detail\": \"Hooks at the very end of a document\",\n    \"documentation\": \"https://ctan.org/pkg/atveryend\"\n  },\n  \"auncial\": {\n    \"command\": \"auncial\",\n    \"detail\": \"Artificial Uncial manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/auncial\"\n  },\n  \"aurical\": {\n    \"command\": \"aurical\",\n    \"detail\": \"Calligraphic fonts for use with LaTeX in T1 encoding\",\n    \"documentation\": \"https://ctan.org/pkg/aurical\"\n  },\n  \"aurl\": {\n    \"command\": \"aurl\",\n    \"detail\": \"Extends the hyperref package with a mechanism for hyperlinked URLs abbreviated with prefixes\",\n    \"documentation\": \"https://ctan.org/pkg/aurl\"\n  },\n  \"authblk\": {\n    \"command\": \"authblk\",\n    \"detail\": \"Support for footnote style author/affiliation\",\n    \"documentation\": \"https://ctan.org/pkg/authblk\"\n  },\n  \"authoraftertitle\": {\n    \"command\": \"authoraftertitle\",\n    \"detail\": \"Make author, etc., available after \\\\maketitle\",\n    \"documentation\": \"https://ctan.org/pkg/authoraftertitle\"\n  },\n  \"authorarchive\": {\n    \"command\": \"authorarchive\",\n    \"detail\": \"Adds self-archiving information to scientific papers\",\n    \"documentation\": \"https://ctan.org/pkg/authorarchive\"\n  },\n  \"authorindex\": {\n    \"command\": \"authorindex\",\n    \"detail\": \"Index citations by author names\",\n    \"documentation\": \"https://ctan.org/pkg/authorindex\"\n  },\n  \"auto-pst-pdf\": {\n    \"command\": \"auto-pst-pdf\",\n    \"detail\": \"Wrapper for pst-pdf (with some psfrag features)\",\n    \"documentation\": \"https://ctan.org/pkg/auto-pst-pdf\"\n  },\n  \"auto-pst-pdf-lua\": {\n    \"command\": \"auto-pst-pdf-lua\",\n    \"detail\": \"Using LuaLaTeX together with PostScript code\",\n    \"documentation\": \"https://ctan.org/pkg/auto-pst-pdf-lua\"\n  },\n  \"autoaligne\": {\n    \"command\": \"autoaligne\",\n    \"detail\": \"Align terms and members in math expressions\",\n    \"documentation\": \"https://ctan.org/pkg/autoaligne\"\n  },\n  \"autobreak\": {\n    \"command\": \"autobreak\",\n    \"detail\": \"Simple line breaking of long formulae\",\n    \"documentation\": \"https://ctan.org/pkg/autobreak\"\n  },\n  \"autofancyhdr\": {\n    \"command\": \"autofancyhdr\",\n    \"detail\": \"Automatically compute headlength for fancyhdr package\",\n    \"documentation\": \"https://ctan.org/pkg/autofancyhdr\"\n  },\n  \"autolist\": {\n    \"command\": \"autolist\",\n    \"detail\": \"More lists\",\n    \"documentation\": \"https://ctan.org/pkg/autolist\"\n  },\n  \"automata\": {\n    \"command\": \"automata\",\n    \"detail\": \"Finite state machines, graphs and trees in MetaPost\",\n    \"documentation\": \"https://ctan.org/pkg/automata\"\n  },\n  \"autonum\": {\n    \"command\": \"autonum\",\n    \"detail\": \"Automatic equation references\",\n    \"documentation\": \"https://ctan.org/pkg/autonum\"\n  },\n  \"autopdf\": {\n    \"command\": \"autopdf\",\n    \"detail\": \"Conversion of graphics to pdfLaTeX-compatible formats\",\n    \"documentation\": \"https://ctan.org/pkg/autopdf\"\n  },\n  \"autopict\": {\n    \"command\": \"autopict\",\n    \"detail\": \"The LaTeX picture mode, for use with Plain TeX\",\n    \"documentation\": \"https://ctan.org/pkg/autopict\"\n  },\n  \"auxhook\": {\n    \"command\": \"auxhook\",\n    \"detail\": \"Hooks for auxiliary files\",\n    \"documentation\": \"https://ctan.org/pkg/auxhook\"\n  },\n  \"avremu\": {\n    \"command\": \"avremu\",\n    \"detail\": \"An 8-Bit Microcontroller Simulator written in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/avremu\"\n  },\n  \"awesomebox\": {\n    \"command\": \"awesomebox\",\n    \"detail\": \"Draw admonition blocks in your documents, illustrated with FontAwesome icons\",\n    \"documentation\": \"https://ctan.org/pkg/awesomebox\"\n  },\n  \"axessibility\": {\n    \"command\": \"axessibility\",\n    \"detail\": \"Access to formulas in PDF files by assistive technologies\",\n    \"documentation\": \"https://ctan.org/pkg/axessibility\"\n  },\n  \"axodraw2\": {\n    \"command\": \"axodraw2\",\n    \"detail\": \"Feynman diagrams in a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/axodraw2\"\n  },\n  \"babel\": {\n    \"command\": \"babel\",\n    \"detail\": \"Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX\",\n    \"documentation\": \"https://ctan.org/pkg/babel\"\n  },\n  \"babelbib\": {\n    \"command\": \"babelbib\",\n    \"detail\": \"Multilingual bibliographies\",\n    \"documentation\": \"https://ctan.org/pkg/babelbib\"\n  },\n  \"background\": {\n    \"command\": \"background\",\n    \"detail\": \"Placement of background material on pages of a document\",\n    \"documentation\": \"https://ctan.org/pkg/background\"\n  },\n  \"backnaur\": {\n    \"command\": \"backnaur\",\n    \"detail\": \"Typeset Backus Naur Form definitions\",\n    \"documentation\": \"https://ctan.org/pkg/backnaur\"\n  },\n  \"backref\": {\n    \"command\": \"backref\",\n    \"detail\": \"Make hyper-references back from bibliography to citation\",\n    \"documentation\": \"https://ctan.org/pkg/backref\"\n  },\n  \"balance\": {\n    \"command\": \"balance\",\n    \"detail\": \"Balanced two-column mode\",\n    \"documentation\": \"https://ctan.org/pkg/balance\"\n  },\n  \"bangla\": {\n    \"command\": \"bangla\",\n    \"detail\": \"A comprehensive Bangla LaTeX package\",\n    \"documentation\": \"https://ctan.org/pkg/bangla\"\n  },\n  \"barcodes\": {\n    \"command\": \"barcodes\",\n    \"detail\": \"Fonts for making barcodes\",\n    \"documentation\": \"https://ctan.org/pkg/barcodes\"\n  },\n  \"bardiag\": {\n    \"command\": \"bardiag\",\n    \"detail\": \"LaTeX package for drawing bar diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/bardiag\"\n  },\n  \"barracuda\": {\n    \"command\": \"barracuda\",\n    \"detail\": \"Draw barcodes with Lua\",\n    \"documentation\": \"https://ctan.org/pkg/barracuda\"\n  },\n  \"bashful\": {\n    \"command\": \"bashful\",\n    \"detail\": \"Invoke bash commands from within LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/bashful\"\n  },\n  \"basicarith\": {\n    \"command\": \"basicarith\",\n    \"detail\": \"Macros for typesetting basic arithmetic\",\n    \"documentation\": \"https://ctan.org/pkg/basicarith\"\n  },\n  \"baskervaldx\": {\n    \"command\": \"Baskervaldx\",\n    \"detail\": \"Extension and modification of BaskervaldADF with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/baskervaldx\"\n  },\n  \"baskervillef\": {\n    \"command\": \"baskervillef\",\n    \"detail\": \"Fry’s Baskerville look-alike, with math support\",\n    \"documentation\": \"https://ctan.org/pkg/baskervillef\"\n  },\n  \"basque-date\": {\n    \"command\": \"basque-date\",\n    \"detail\": \"Print the date in Basque\",\n    \"documentation\": \"https://ctan.org/pkg/basque-date\"\n  },\n  \"bbding\": {\n    \"command\": \"bbding\",\n    \"detail\": \"A symbol (dingbat) font and LaTeX macros for its use\",\n    \"documentation\": \"https://ctan.org/pkg/bbding\"\n  },\n  \"bbm\": {\n    \"command\": \"bbm\",\n    \"detail\": \"\\\"Blackboard-style\\\" cm fonts\",\n    \"documentation\": \"https://ctan.org/pkg/bbm\"\n  },\n  \"bbold\": {\n    \"command\": \"bbold\",\n    \"detail\": \"Sans serif blackboard bold\",\n    \"documentation\": \"https://ctan.org/pkg/bbold\"\n  },\n  \"bchart\": {\n    \"command\": \"bchart\",\n    \"detail\": \"Draw simple bar charts in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/bchart\"\n  },\n  \"bclogo\": {\n    \"command\": \"bclogo\",\n    \"detail\": \"Creating colourful boxes with logos\",\n    \"documentation\": \"https://ctan.org/pkg/bclogo\"\n  },\n  \"beamerappendixnote\": {\n    \"command\": \"beamerappendixnote\",\n    \"detail\": \"Create notes on appendix frames in beamer\",\n    \"documentation\": \"https://ctan.org/pkg/beamerappendixnote\"\n  },\n  \"beameraudience\": {\n    \"command\": \"beameraudience\",\n    \"detail\": \"Assembling beamer frames according to audience\",\n    \"documentation\": \"https://ctan.org/pkg/beameraudience\"\n  },\n  \"beamercolorthemeowl\": {\n    \"command\": \"beamercolorthemeowl\",\n    \"detail\": \"A flexible beamer color theme to maximize visibility\",\n    \"documentation\": \"https://ctan.org/pkg/beamercolorthemeowl\"\n  },\n  \"beamerposter\": {\n    \"command\": \"beamerposter\",\n    \"detail\": \"Extend beamer and a0poster for custom sized posters\",\n    \"documentation\": \"https://ctan.org/pkg/beamerposter\"\n  },\n  \"beamersubframe\": {\n    \"command\": \"beamersubframe\",\n    \"detail\": \"Reorder frames in the PDF file\",\n    \"documentation\": \"https://ctan.org/pkg/beamersubframe\"\n  },\n  \"beamertheme-light\": {\n    \"command\": \"beamertheme-light\",\n    \"detail\": \"A minimal beamer style\",\n    \"documentation\": \"https://ctan.org/pkg/beamertheme-light\"\n  },\n  \"beamerthemejltree\": {\n    \"command\": \"beamerthemeJLTree\",\n    \"detail\": \"Contributed beamer theme\",\n    \"documentation\": \"https://ctan.org/pkg/beamerthemejltree\"\n  },\n  \"beamerthemelalic\": {\n    \"command\": \"beamerthemelalic\",\n    \"detail\": \"A beamer theme for LALIC\",\n    \"documentation\": \"https://ctan.org/pkg/beamerthemelalic\"\n  },\n  \"beamerthemenirma\": {\n    \"command\": \"beamerthemenirma\",\n    \"detail\": \"A Beamer theme for academic presentations\",\n    \"documentation\": \"https://ctan.org/pkg/beamerthemenirma\"\n  },\n  \"beamerthemenord\": {\n    \"command\": \"beamerthemeNord\",\n    \"detail\": \"A simple beamer theme using the “Nord” color theme\",\n    \"documentation\": \"https://ctan.org/pkg/beamerthemenord\"\n  },\n  \"bearwear\": {\n    \"command\": \"bearwear\",\n    \"detail\": \"Shirts to dress TikZbears\",\n    \"documentation\": \"https://ctan.org/pkg/bearwear\"\n  },\n  \"begingreek\": {\n    \"command\": \"begingreek\",\n    \"detail\": \"Greek environment to be used with pdfLaTeX only\",\n    \"documentation\": \"https://ctan.org/pkg/begingreek\"\n  },\n  \"begriff\": {\n    \"command\": \"begriff\",\n    \"detail\": \"Typeset Begriffschrift\",\n    \"documentation\": \"https://ctan.org/pkg/begriff\"\n  },\n  \"bera\": {\n    \"command\": \"bera\",\n    \"detail\": \"Bera fonts\",\n    \"documentation\": \"https://ctan.org/pkg/bera\"\n  },\n  \"betababel\": {\n    \"command\": \"betababel\",\n    \"detail\": \"Insert ancient greek text coded in Beta Code\",\n    \"documentation\": \"https://ctan.org/pkg/betababel\"\n  },\n  \"beton\": {\n    \"command\": \"beton\",\n    \"detail\": \"Use Concrete fonts\",\n    \"documentation\": \"https://ctan.org/pkg/beton\"\n  },\n  \"beuron\": {\n    \"command\": \"beuron\",\n    \"detail\": \"The script of the Beuronese art school\",\n    \"documentation\": \"https://ctan.org/pkg/beuron\"\n  },\n  \"bewerbung\": {\n    \"command\": \"bewerbung\",\n    \"detail\": \"Typesetting job applications\",\n    \"documentation\": \"https://ctan.org/pkg/bewerbung\"\n  },\n  \"bez123\": {\n    \"command\": \"bez123\",\n    \"detail\": \"Support for Bezier curves\",\n    \"documentation\": \"https://ctan.org/pkg/bez123\"\n  },\n  \"bezierplot\": {\n    \"command\": \"bezierplot\",\n    \"detail\": \"Approximate smooth function graphs with cubic bezier splines for use with TikZ or MetaPost\",\n    \"documentation\": \"https://ctan.org/pkg/bezierplot\"\n  },\n  \"bguq\": {\n    \"command\": \"bguq\",\n    \"detail\": \"Improved quantifier stroke for Begriffsschrift packages\",\n    \"documentation\": \"https://ctan.org/pkg/bguq\"\n  },\n  \"bibarts\": {\n    \"command\": \"bibarts\",\n    \"detail\": \"“Arts”-style bibliographical information\",\n    \"documentation\": \"https://ctan.org/pkg/bibarts\"\n  },\n  \"bibcheck\": {\n    \"command\": \"bibcheck\",\n    \"detail\": \"Check on references to items in thebibliography\",\n    \"documentation\": \"https://ctan.org/pkg/bibcheck\"\n  },\n  \"bibentry\": {\n    \"command\": \"bibentry\",\n    \"detail\": \"Full bibliography entries in the main text of a document\",\n    \"documentation\": \"https://ctan.org/pkg/bibentry\"\n  },\n  \"biblatex\": {\n    \"command\": \"biblatex\",\n    \"detail\": \"Sophisticated Bibliographies in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex\"\n  },\n  \"biblatex-anonymous\": {\n    \"command\": \"biblatex-anonymous\",\n    \"detail\": \"A tool to manage anonymous work with BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-anonymous\"\n  },\n  \"biblatex-archaeology\": {\n    \"command\": \"biblatex-archaeology\",\n    \"detail\": \"A collection of BibLaTeX styles for German prehistory\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-archaeology\"\n  },\n  \"biblatex-bookinarticle\": {\n    \"command\": \"biblatex-bookinarticle\",\n    \"detail\": \"Manage book edited in article\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-bookinarticle\"\n  },\n  \"biblatex-chicago\": {\n    \"command\": \"biblatex-chicago\",\n    \"detail\": \"Chicago style files for BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-chicago\"\n  },\n  \"biblatex-cv\": {\n    \"command\": \"biblatex-cv\",\n    \"detail\": \"Create a CV from BibTeX files\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-cv\"\n  },\n  \"biblatex-license\": {\n    \"command\": \"biblatex-license\",\n    \"detail\": \"Add license data to the bibliography\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-license\"\n  },\n  \"biblatex-multiple-dm\": {\n    \"command\": \"biblatex-multiple-dm\",\n    \"detail\": \"Load multiple datamodels in BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-multiple-dm\"\n  },\n  \"biblatex-opcit-booktitle\": {\n    \"command\": \"biblatex-opcit-booktitle\",\n    \"detail\": \"Use op. cit. for the booktitle of a subentry\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-opcit-booktitle\"\n  },\n  \"biblatex-shortfields\": {\n    \"command\": \"biblatex-shortfields\",\n    \"detail\": \"Use short forms of fields with BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-shortfields\"\n  },\n  \"biblatex-source-division\": {\n    \"command\": \"biblatex-source-division\",\n    \"detail\": \"References by “division” in classical sources\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-source-division\"\n  },\n  \"biblatex-true-citepages-omit\": {\n    \"command\": \"biblatex-true-citepages-omit\",\n    \"detail\": \"Correction of some limitation of the citepages=omit option of BibLaTeX styles\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex-true-citepages-omit\"\n  },\n  \"biblatex2bibitem\": {\n    \"command\": \"biblatex2bibitem\",\n    \"detail\": \"Convert BibLaTeX-generated bibliography to bibitems\",\n    \"documentation\": \"https://ctan.org/pkg/biblatex2bibitem\"\n  },\n  \"bibleref\": {\n    \"command\": \"bibleref\",\n    \"detail\": \"Format bible citations\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref\"\n  },\n  \"bibleref-french\": {\n    \"command\": \"bibleref-french\",\n    \"detail\": \"French translations for bibleref\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref-french\"\n  },\n  \"bibleref-german\": {\n    \"command\": \"bibleref-german\",\n    \"detail\": \"German adaptation of bibleref\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref-german\"\n  },\n  \"bibleref-lds\": {\n    \"command\": \"bibleref-lds\",\n    \"detail\": \"Bible references, including those to the scriptures of the Church of Jesus Christ of Latter Day Saints\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref-lds\"\n  },\n  \"bibleref-mouth\": {\n    \"command\": \"bibleref-mouth\",\n    \"detail\": \"Consistent formatting of Bible references\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref-mouth\"\n  },\n  \"bibleref-parse\": {\n    \"command\": \"bibleref-parse\",\n    \"detail\": \"Specify Bible passages in human-readable format\",\n    \"documentation\": \"https://ctan.org/pkg/bibleref-parse\"\n  },\n  \"bibletext\": {\n    \"command\": \"bibletext\",\n    \"detail\": \"Insert Bible passages by their reference\",\n    \"documentation\": \"https://ctan.org/pkg/bibletext\"\n  },\n  \"biblist\": {\n    \"command\": \"biblist\",\n    \"detail\": \"Print a BibTeX database\",\n    \"documentation\": \"https://ctan.org/pkg/biblist\"\n  },\n  \"bibtopic\": {\n    \"command\": \"bibtopic\",\n    \"detail\": \"Include multiple bibliographies in a document\",\n    \"documentation\": \"https://ctan.org/pkg/bibtopic\"\n  },\n  \"bibtopicprefix\": {\n    \"command\": \"bibtopicprefix\",\n    \"detail\": \"Prefix references to bibliographies produced by bibtopic\",\n    \"documentation\": \"https://ctan.org/pkg/bibtopicprefix\"\n  },\n  \"bibunits\": {\n    \"command\": \"bibunits\",\n    \"detail\": \"Multiple bibliographies in one document\",\n    \"documentation\": \"https://ctan.org/pkg/bibunits\"\n  },\n  \"bicaption\": {\n    \"command\": \"bicaption\",\n    \"detail\": \"Support for bilingual captions\",\n    \"documentation\": \"https://ctan.org/pkg/bicaption\"\n  },\n  \"bidi\": {\n    \"command\": \"bidi\",\n    \"detail\": \"Bidirectional typesetting in plain TeX and LaTeX, using XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/bidi\"\n  },\n  \"bidi-atbegshi\": {\n    \"command\": \"bidi-atbegshi\",\n    \"detail\": \"Bidi-aware shipout macros\",\n    \"documentation\": \"https://ctan.org/pkg/bidi-atbegshi\"\n  },\n  \"bidicontour\": {\n    \"command\": \"bidicontour\",\n    \"detail\": \"Bidi-aware coloured contour around text\",\n    \"documentation\": \"https://ctan.org/pkg/bidicontour\"\n  },\n  \"bidihl\": {\n    \"command\": \"bidihl\",\n    \"detail\": \"Experimental bidi-aware text highlighting\",\n    \"documentation\": \"https://ctan.org/pkg/bidihl\"\n  },\n  \"bidipagegrid\": {\n    \"command\": \"bidipagegrid\",\n    \"detail\": \"Bidi-aware page grid in background\",\n    \"documentation\": \"https://ctan.org/pkg/bidipagegrid\"\n  },\n  \"bidishadowtext\": {\n    \"command\": \"bidishadowtext\",\n    \"detail\": \"Bidi-aware shadow text\",\n    \"documentation\": \"https://ctan.org/pkg/bidishadowtext\"\n  },\n  \"bigdelim\": {\n    \"command\": \"bigdelim\",\n    \"detail\": \"Big delimiters in tabular or array\",\n    \"documentation\": \"https://ctan.org/pkg/bigdelim\"\n  },\n  \"bigfoot\": {\n    \"command\": \"bigfoot\",\n    \"detail\": \"Footnotes for critical editions\",\n    \"documentation\": \"https://ctan.org/pkg/bigfoot\"\n  },\n  \"bigintcalc\": {\n    \"command\": \"bigintcalc\",\n    \"detail\": \"Integer calculations on very large numbers\",\n    \"documentation\": \"https://ctan.org/pkg/bigintcalc\"\n  },\n  \"bigints\": {\n    \"command\": \"bigints\",\n    \"detail\": \"Writing big integrals\",\n    \"documentation\": \"https://ctan.org/pkg/bigints\"\n  },\n  \"bigstrut\": {\n    \"command\": \"bigstrut\",\n    \"detail\": \"Struts for opening up tabular spacing\",\n    \"documentation\": \"https://ctan.org/pkg/bigstrut\"\n  },\n  \"bilingualpages\": {\n    \"command\": \"bilingualpages\",\n    \"detail\": \"Typeset two columns in parallel\",\n    \"documentation\": \"https://ctan.org/pkg/bilingualpages\"\n  },\n  \"binarytree\": {\n    \"command\": \"binarytree\",\n    \"detail\": \"Drawing binary trees using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/binarytree\"\n  },\n  \"binomexp\": {\n    \"command\": \"binomexp\",\n    \"detail\": \"Calculate Pascal's triangle\",\n    \"documentation\": \"https://ctan.org/pkg/binomexp\"\n  },\n  \"biochemistry-colors\": {\n    \"command\": \"Biochemistry-colors\",\n    \"detail\": \"Colors used to display amino acids, nucleotides, sugars or atoms in biochemistry\",\n    \"documentation\": \"https://ctan.org/pkg/biochemistry-colors\"\n  },\n  \"biocon\": {\n    \"command\": \"biocon\",\n    \"detail\": \"Typesetting biological species names\",\n    \"documentation\": \"https://ctan.org/pkg/biocon\"\n  },\n  \"biokey\": {\n    \"command\": \"biokey\",\n    \"detail\": \"Flexible identification key tables in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/biokey\"\n  },\n  \"biolist\": {\n    \"command\": \"biolist\",\n    \"detail\": \"List observed species\",\n    \"documentation\": \"https://ctan.org/pkg/biolist\"\n  },\n  \"bitelist\": {\n    \"command\": \"bitelist\",\n    \"detail\": \"Split list, in TeX’s mouth\",\n    \"documentation\": \"https://ctan.org/pkg/bitelist\"\n  },\n  \"bitpattern\": {\n    \"command\": \"bitpattern\",\n    \"detail\": \"Typeset bit pattern diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/bitpattern\"\n  },\n  \"bitset\": {\n    \"command\": \"bitset\",\n    \"detail\": \"Handle bit-vector datatype\",\n    \"documentation\": \"https://ctan.org/pkg/bitset\"\n  },\n  \"bitter\": {\n    \"command\": \"bitter\",\n    \"detail\": \"The Bitter family of fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/bitter\"\n  },\n  \"bizcard\": {\n    \"command\": \"bizcard\",\n    \"detail\": \"Typeset business cards\",\n    \"documentation\": \"https://ctan.org/pkg/bizcard\"\n  },\n  \"blindtext\": {\n    \"command\": \"blindtext\",\n    \"detail\": \"Producing 'blind' text for testing\",\n    \"documentation\": \"https://ctan.org/pkg/blindtext\"\n  },\n  \"blkarray\": {\n    \"command\": \"blkarray\",\n    \"detail\": \"Extended array and tabular\",\n    \"documentation\": \"https://ctan.org/pkg/blkarray\"\n  },\n  \"blkcntrl\": {\n    \"command\": \"blkcntrl\",\n    \"detail\": \"Block-element hooks in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/blkcntrl\"\n  },\n  \"blochsphere\": {\n    \"command\": \"blochsphere\",\n    \"detail\": \"Draw pseudo-3D diagrams of Bloch spheres\",\n    \"documentation\": \"https://ctan.org/pkg/blochsphere\"\n  },\n  \"block\": {\n    \"command\": \"block\",\n    \"detail\": \"A block letter style for the letter class\",\n    \"documentation\": \"https://ctan.org/pkg/block\"\n  },\n  \"bloques\": {\n    \"command\": \"bloques\",\n    \"detail\": \"Generate control diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/bloques\"\n  },\n  \"blowup\": {\n    \"command\": \"blowup\",\n    \"detail\": \"Upscale or downscale all pages of a document\",\n    \"documentation\": \"https://ctan.org/pkg/blowup\"\n  },\n  \"blox\": {\n    \"command\": \"blox\",\n    \"detail\": \"Draw block diagrams, using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/blox\"\n  },\n  \"bm\": {\n    \"command\": \"bm\",\n    \"detail\": \"Access bold symbols in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/bm\"\n  },\n  \"bmpsize\": {\n    \"command\": \"bmpsize\",\n    \"detail\": \"Extract size and resolution data from bitmap files\",\n    \"documentation\": \"https://ctan.org/pkg/bmpsize\"\n  },\n  \"bnumexpr\": {\n    \"command\": \"bnumexpr\",\n    \"detail\": \"Extends eTeX’s \\\\numexpr...\\\\relax construct to big integers\",\n    \"documentation\": \"https://ctan.org/pkg/bnumexpr\"\n  },\n  \"bodegraph\": {\n    \"command\": \"bodegraph\",\n    \"detail\": \"Draw Bode, Nyquist and Black plots with gnuplot and TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/bodegraph\"\n  },\n  \"bohr\": {\n    \"command\": \"bohr\",\n    \"detail\": \"Simple atom representation according to the Bohr model\",\n    \"documentation\": \"https://ctan.org/pkg/bohr\"\n  },\n  \"boisik\": {\n    \"command\": \"boisik\",\n    \"detail\": \"A font inspired by Baskerville design\",\n    \"documentation\": \"https://ctan.org/pkg/boisik\"\n  },\n  \"boites\": {\n    \"command\": \"boites\",\n    \"detail\": \"Boxes that may break across pages\",\n    \"documentation\": \"https://ctan.org/pkg/boites\"\n  },\n  \"bold-extra\": {\n    \"command\": \"bold-extra\",\n    \"detail\": \"Use bold small caps and typewriter fonts\",\n    \"documentation\": \"https://ctan.org/pkg/bold-extra\"\n  },\n  \"boldline\": {\n    \"command\": \"boldline\",\n    \"detail\": \"Heavier lines in tables\",\n    \"documentation\": \"https://ctan.org/pkg/boldline\"\n  },\n  \"boldtensors\": {\n    \"command\": \"boldtensors\",\n    \"detail\": \"Bold latin and greek characters through simple prefix characters\",\n    \"documentation\": \"https://ctan.org/pkg/boldtensors\"\n  },\n  \"bondgraph\": {\n    \"command\": \"bondgraph\",\n    \"detail\": \"Create bond graph figures in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/bondgraph\"\n  },\n  \"bondgraphs\": {\n    \"command\": \"bondgraphs\",\n    \"detail\": \"Draws bond graphs in LaTeX, using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/bondgraphs\"\n  },\n  \"book\": {\n    \"command\": \"book\",\n    \"detail\": \"A class for typesetting books\",\n    \"documentation\": \"https://ctan.org/pkg/book\"\n  },\n  \"book-of-common-prayer\": {\n    \"command\": \"book-of-common-prayer\",\n    \"detail\": \"Typeset in the style of “Book of Common Prayer”\",\n    \"documentation\": \"https://ctan.org/pkg/book-of-common-prayer\"\n  },\n  \"booklet\": {\n    \"command\": \"booklet\",\n    \"detail\": \"Aids for  printing simple booklets\",\n    \"documentation\": \"https://ctan.org/pkg/booklet\"\n  },\n  \"bookmark\": {\n    \"command\": \"bookmark\",\n    \"detail\": \"A new bookmark (outline) organization for hyperref\",\n    \"documentation\": \"https://ctan.org/pkg/bookmark\"\n  },\n  \"booktabs\": {\n    \"command\": \"booktabs\",\n    \"detail\": \"Publication quality tables in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/booktabs\"\n  },\n  \"boolexpr\": {\n    \"command\": \"boolexpr\",\n    \"detail\": \"A boolean expression evaluator and a switch command\",\n    \"documentation\": \"https://ctan.org/pkg/boolexpr\"\n  },\n  \"bophook\": {\n    \"command\": \"bophook\",\n    \"detail\": \"Provides an At-Begin-Page hook\",\n    \"documentation\": \"https://ctan.org/pkg/bophook\"\n  },\n  \"boxedminipage\": {\n    \"command\": \"boxedminipage\",\n    \"detail\": \"Framed minipages of a specified total width (text and frame combined)\",\n    \"documentation\": \"https://ctan.org/pkg/boxedminipage\"\n  },\n  \"boxhandler\": {\n    \"command\": \"boxhandler\",\n    \"detail\": \"Flexible Captioning and Deferred Box/List Printing\",\n    \"documentation\": \"https://ctan.org/pkg/boxhandler\"\n  },\n  \"bpchem\": {\n    \"command\": \"bpchem\",\n    \"detail\": \"Typeset chemical names, formulae, etc\",\n    \"documentation\": \"https://ctan.org/pkg/bpchem\"\n  },\n  \"bracketkey\": {\n    \"command\": \"bracketkey\",\n    \"detail\": \"Produce bracketed identification keys\",\n    \"documentation\": \"https://ctan.org/pkg/bracketkey\"\n  },\n  \"braids\": {\n    \"command\": \"braids\",\n    \"detail\": \"Draw braid diagrams with PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/braids\"\n  },\n  \"braille\": {\n    \"command\": \"braille\",\n    \"detail\": \"Support for braille\",\n    \"documentation\": \"https://ctan.org/pkg/braille\"\n  },\n  \"braket\": {\n    \"command\": \"braket\",\n    \"detail\": \"Dirac bra-ket and set notations\",\n    \"documentation\": \"https://ctan.org/pkg/braket\"\n  },\n  \"brandeis-problemset\": {\n    \"command\": \"brandeis-problemset\",\n    \"detail\": \"Document class for COSI Problem sets at Brandeis University (Waltham, MA)\",\n    \"documentation\": \"https://ctan.org/pkg/brandeis-problemset\"\n  },\n  \"breakcites\": {\n    \"command\": \"breakcites\",\n    \"detail\": \"Ensure that multiple citations may break at line end\",\n    \"documentation\": \"https://ctan.org/pkg/breakcites\"\n  },\n  \"breakurl\": {\n    \"command\": \"breakurl\",\n    \"detail\": \"Line-breakable \\\\url-like links in hyperref when compiling via dvips/ps2pdf\",\n    \"documentation\": \"https://ctan.org/pkg/breakurl\"\n  },\n  \"bredzenie\": {\n    \"command\": \"bredzenie\",\n    \"detail\": \"A Polish version of “lorem ipsum…” in the form of a LaTeX package\",\n    \"documentation\": \"https://ctan.org/pkg/bredzenie\"\n  },\n  \"breqn\": {\n    \"command\": \"breqn\",\n    \"detail\": \"Automatic line breaking of displayed equations\",\n    \"documentation\": \"https://ctan.org/pkg/breqn\"\n  },\n  \"bropd\": {\n    \"command\": \"bropd\",\n    \"detail\": \"Simplified brackets and differentials in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/bropd\"\n  },\n  \"bubblesort\": {\n    \"command\": \"bubblesort\",\n    \"detail\": \" Bubble sorts a list\",\n    \"documentation\": \"https://ctan.org/pkg/bubblesort\"\n  },\n  \"bullcntr\": {\n    \"command\": \"bullcntr\",\n    \"detail\": \"Display list item counter as regular pattern of bullets\",\n    \"documentation\": \"https://ctan.org/pkg/bullcntr\"\n  },\n  \"bussproofs\": {\n    \"command\": \"bussproofs\",\n    \"detail\": \"Proof trees in the style of the sequent calculus\",\n    \"documentation\": \"https://ctan.org/pkg/bussproofs\"\n  },\n  \"bussproofs-extra\": {\n    \"command\": \"bussproofs-extra\",\n    \"detail\": \"Extra commands for bussproofs.sty\",\n    \"documentation\": \"https://ctan.org/pkg/bussproofs-extra\"\n  },\n  \"bxbase\": {\n    \"command\": \"bxbase\",\n    \"detail\": \"BX bundle base components\",\n    \"documentation\": \"https://ctan.org/pkg/bxbase\"\n  },\n  \"bxcalc\": {\n    \"command\": \"bxcalc\",\n    \"detail\": \"Extend the functionality of the calc package\",\n    \"documentation\": \"https://ctan.org/pkg/bxcalc\"\n  },\n  \"bxcjkjatype\": {\n    \"command\": \"bxcjkjatype\",\n    \"detail\": \"Typeset Japanese with pdfLaTeX and CJK\",\n    \"documentation\": \"https://ctan.org/pkg/bxcjkjatype\"\n  },\n  \"bxdpx-beamer\": {\n    \"command\": \"bxdpx-beamer\",\n    \"detail\": \"Dvipdfmx extras for use with beamer\",\n    \"documentation\": \"https://ctan.org/pkg/bxdpx-beamer\"\n  },\n  \"bxdvidriver\": {\n    \"command\": \"bxdvidriver\",\n    \"detail\": \"Enables specifying a driver option effective only in DVI output\",\n    \"documentation\": \"https://ctan.org/pkg/bxdvidriver\"\n  },\n  \"bxeepic\": {\n    \"command\": \"bxeepic\",\n    \"detail\": \"Eepic facilities using pict2e\",\n    \"documentation\": \"https://ctan.org/pkg/bxeepic\"\n  },\n  \"bxenclose\": {\n    \"command\": \"bxenclose\",\n    \"detail\": \"Enclose the document body with some pieces of code\",\n    \"documentation\": \"https://ctan.org/pkg/bxenclose\"\n  },\n  \"bxghost\": {\n    \"command\": \"bxghost\",\n    \"detail\": \"Ghost insertion for proper xkanjiskip\",\n    \"documentation\": \"https://ctan.org/pkg/bxghost\"\n  },\n  \"bxjaholiday\": {\n    \"command\": \"bxjaholiday\",\n    \"detail\": \"Support for Japanese holidays\",\n    \"documentation\": \"https://ctan.org/pkg/bxjaholiday\"\n  },\n  \"bxjalipsum\": {\n    \"command\": \"bxjalipsum\",\n    \"detail\": \"Dummy text in Japanese\",\n    \"documentation\": \"https://ctan.org/pkg/bxjalipsum\"\n  },\n  \"bxjaprnind\": {\n    \"command\": \"bxjaprnind\",\n    \"detail\": \"Adjust the position of parentheses at paragraph head\",\n    \"documentation\": \"https://ctan.org/pkg/bxjaprnind\"\n  },\n  \"bxjatoucs\": {\n    \"command\": \"bxjatoucs\",\n    \"detail\": \"Convert Japanese character code to Unicode\",\n    \"documentation\": \"https://ctan.org/pkg/bxjatoucs\"\n  },\n  \"bxnewfont\": {\n    \"command\": \"bxnewfont\",\n    \"detail\": \"Enhanced \\\\newfont command\",\n    \"documentation\": \"https://ctan.org/pkg/bxnewfont\"\n  },\n  \"bxorigcapt\": {\n    \"command\": \"bxorigcapt\",\n    \"detail\": \"To retain the original caption names when using Babel\",\n    \"documentation\": \"https://ctan.org/pkg/bxorigcapt\"\n  },\n  \"bxpapersize\": {\n    \"command\": \"bxpapersize\",\n    \"detail\": \"Synchronize output paper size with layout paper size\",\n    \"documentation\": \"https://ctan.org/pkg/bxpapersize\"\n  },\n  \"bxpdfver\": {\n    \"command\": \"bxpdfver\",\n    \"detail\": \"Specify version and compression level of output PDF files\",\n    \"documentation\": \"https://ctan.org/pkg/bxpdfver\"\n  },\n  \"bxtexlogo\": {\n    \"command\": \"bxtexlogo\",\n    \"detail\": \"Additional TeX-family logos\",\n    \"documentation\": \"https://ctan.org/pkg/bxtexlogo\"\n  },\n  \"bxwareki\": {\n    \"command\": \"bxwareki\",\n    \"detail\": \"Convert dates from Gregorian to Japanese calender\",\n    \"documentation\": \"https://ctan.org/pkg/bxwareki\"\n  },\n  \"byo-twemojis\": {\n    \"command\": \"byo-twemojis\",\n    \"detail\": \"“Build Your Own Twemojis” with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/byo-twemojis\"\n  },\n  \"bytefield\": {\n    \"command\": \"bytefield\",\n    \"detail\": \"Create illustrations for network protocol specifications\",\n    \"documentation\": \"https://ctan.org/pkg/bytefield\"\n  },\n  \"cabin\": {\n    \"command\": \"cabin\",\n    \"detail\": \"A humanist Sans Serif font, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/cabin\"\n  },\n  \"cachepic\": {\n    \"command\": \"cachepic\",\n    \"detail\": \"Convert document fragments into graphics\",\n    \"documentation\": \"https://ctan.org/pkg/cachepic\"\n  },\n  \"caladea\": {\n    \"command\": \"caladea\",\n    \"detail\": \"Support for the Caladea family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/caladea\"\n  },\n  \"calc\": {\n    \"command\": \"calc\",\n    \"detail\": \"Simple arithmetic in LaTeX commands\",\n    \"documentation\": \"https://ctan.org/pkg/calc\"\n  },\n  \"calcage\": {\n    \"command\": \"calcage\",\n    \"detail\": \"Calculate the age of something, in years\",\n    \"documentation\": \"https://ctan.org/pkg/calcage\"\n  },\n  \"calctab\": {\n    \"command\": \"calctab\",\n    \"detail\": \"Language for numeric tables\",\n    \"documentation\": \"https://ctan.org/pkg/calctab\"\n  },\n  \"calculation\": {\n    \"command\": \"calculation\",\n    \"detail\": \"Typesetting reasoned calculations,  also called calculational proofs\",\n    \"documentation\": \"https://ctan.org/pkg/calculation\"\n  },\n  \"calculator\": {\n    \"command\": \"calculator\",\n    \"detail\": \"Use LaTeX as a scientific calculator\",\n    \"documentation\": \"https://ctan.org/pkg/calculator\"\n  },\n  \"calligra\": {\n    \"command\": \"calligra\",\n    \"detail\": \"Calligraphic font\",\n    \"documentation\": \"https://ctan.org/pkg/calligra\"\n  },\n  \"callouts\": {\n    \"command\": \"callouts\",\n    \"detail\": \"Put simple annotations and notes inside a picture\",\n    \"documentation\": \"https://ctan.org/pkg/callouts\"\n  },\n  \"calrsfs\": {\n    \"command\": \"calrsfs\",\n    \"detail\": \"Copperplate calligraphic letters in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/calrsfs\"\n  },\n  \"cals\": {\n    \"command\": \"cals\",\n    \"detail\": \"Multipage tables with wide range of features\",\n    \"documentation\": \"https://ctan.org/pkg/cals\"\n  },\n  \"cancel\": {\n    \"command\": \"cancel\",\n    \"detail\": \"Place lines through maths formulae\",\n    \"documentation\": \"https://ctan.org/pkg/cancel\"\n  },\n  \"canoniclayout\": {\n    \"command\": \"canoniclayout\",\n    \"detail\": \"Create canonical page layouts with memoir\",\n    \"documentation\": \"https://ctan.org/pkg/canoniclayout\"\n  },\n  \"cantarell\": {\n    \"command\": \"cantarell\",\n    \"detail\": \"LaTeX support for the Cantarell font family\",\n    \"documentation\": \"https://ctan.org/pkg/cantarell\"\n  },\n  \"capt-of\": {\n    \"command\": \"capt-of\",\n    \"detail\": \"Captions on more than floats\",\n    \"documentation\": \"https://ctan.org/pkg/capt-of\"\n  },\n  \"captcont\": {\n    \"command\": \"captcont\",\n    \"detail\": \"Retain float number across several floats\",\n    \"documentation\": \"https://ctan.org/pkg/captcont\"\n  },\n  \"captdef\": {\n    \"command\": \"captdef\",\n    \"detail\": \"Declare free-standing \\\\caption commands\",\n    \"documentation\": \"https://ctan.org/pkg/captdef\"\n  },\n  \"caption\": {\n    \"command\": \"caption\",\n    \"detail\": \"Customising captions in floating environments\",\n    \"documentation\": \"https://ctan.org/pkg/caption\"\n  },\n  \"caption2\": {\n    \"command\": \"caption2\",\n    \"detail\": \"Superseded version of the caption package\",\n    \"documentation\": \"https://ctan.org/pkg/caption2\"\n  },\n  \"carbohydrates\": {\n    \"command\": \"carbohydrates\",\n    \"detail\": \"Carbohydrate molecules with chemfig\",\n    \"documentation\": \"https://ctan.org/pkg/carbohydrates\"\n  },\n  \"carlito\": {\n    \"command\": \"carlito\",\n    \"detail\": \"Support for Carlito sans-serif fonts\",\n    \"documentation\": \"https://ctan.org/pkg/carlito\"\n  },\n  \"carolmin\": {\n    \"command\": \"carolmin\",\n    \"detail\": \"Carolingan Miniscule manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/carolmin\"\n  },\n  \"cascade\": {\n    \"command\": \"cascade\",\n    \"detail\": \" Constructions with braces to present mathematical demonstrations\",\n    \"documentation\": \"https://ctan.org/pkg/cascade\"\n  },\n  \"cascadia-code\": {\n    \"command\": \"cascadia-code\",\n    \"detail\": \"The Cascadia Code font with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/cascadia-code\"\n  },\n  \"cases\": {\n    \"command\": \"cases\",\n    \"detail\": \"Numbered cases environment\",\n    \"documentation\": \"https://ctan.org/pkg/cases\"\n  },\n  \"catalan\": {\n    \"command\": \"catalan\",\n    \"detail\": \"Catalan hyphenation patterns\",\n    \"documentation\": \"https://ctan.org/pkg/catalan\"\n  },\n  \"catchfile\": {\n    \"command\": \"catchfile\",\n    \"detail\": \"Catch an external file into a macro\",\n    \"documentation\": \"https://ctan.org/pkg/catchfile\"\n  },\n  \"catchfilebetweentags\": {\n    \"command\": \"catchfilebetweentags\",\n    \"detail\": \"Catch text delimited by docstrip tags\",\n    \"documentation\": \"https://ctan.org/pkg/catchfilebetweentags\"\n  },\n  \"catechis\": {\n    \"command\": \"catechis\",\n    \"detail\": \"Macros for typesetting catechisms\",\n    \"documentation\": \"https://ctan.org/pkg/catechis\"\n  },\n  \"catoptions\": {\n    \"command\": \"catoptions\",\n    \"detail\": \"Preserving and recalling standard catcodes\",\n    \"documentation\": \"https://ctan.org/pkg/catoptions\"\n  },\n  \"causets\": {\n    \"command\": \"causets\",\n    \"detail\": \"Draw causal set (Hasse) diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/causets\"\n  },\n  \"ccaption\": {\n    \"command\": \"ccaption\",\n    \"detail\": \"Continuation headings and legends for floats\",\n    \"documentation\": \"https://ctan.org/pkg/ccaption\"\n  },\n  \"ccfonts\": {\n    \"command\": \"ccfonts\",\n    \"detail\": \"Support for Concrete text and math fonts in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ccfonts\"\n  },\n  \"ccicons\": {\n    \"command\": \"ccicons\",\n    \"detail\": \"LaTeX support for Creative Commons icons\",\n    \"documentation\": \"https://ctan.org/pkg/ccicons\"\n  },\n  \"cclicenses\": {\n    \"command\": \"cclicenses\",\n    \"detail\": \"Typeset Creative Commons licence logos\",\n    \"documentation\": \"https://ctan.org/pkg/cclicenses\"\n  },\n  \"ccool\": {\n    \"command\": \"ccool\",\n    \"detail\": \"A key-value document command parser\",\n    \"documentation\": \"https://ctan.org/pkg/ccool\"\n  },\n  \"cell\": {\n    \"command\": \"cell\",\n    \"detail\": \"Bibliography style for Cell\",\n    \"documentation\": \"https://ctan.org/pkg/cell\"\n  },\n  \"cellprops\": {\n    \"command\": \"cellprops\",\n    \"detail\": \"Accept CSS-like selectors in tabular, array, …\",\n    \"documentation\": \"https://ctan.org/pkg/cellprops\"\n  },\n  \"cellspace\": {\n    \"command\": \"cellspace\",\n    \"detail\": \"Ensure minimal spacing of table cells\",\n    \"documentation\": \"https://ctan.org/pkg/cellspace\"\n  },\n  \"censor\": {\n    \"command\": \"censor\",\n    \"detail\": \"Tools for producing redacted documents\",\n    \"documentation\": \"https://ctan.org/pkg/censor\"\n  },\n  \"centeredline\": {\n    \"command\": \"centeredline\",\n    \"detail\": \"A macro for centering lines\",\n    \"documentation\": \"https://ctan.org/pkg/centeredline\"\n  },\n  \"centerlastline\": {\n    \"command\": \"centerlastline\",\n    \"detail\": \"Paragraphs with last line centered, known as “Spanish” paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/centerlastline\"\n  },\n  \"centernot\": {\n    \"command\": \"centernot\",\n    \"detail\": \"Centred \\\\not command\",\n    \"documentation\": \"https://ctan.org/pkg/centernot\"\n  },\n  \"cesenaexam\": {\n    \"command\": \"cesenaexam\",\n    \"detail\": \"A class file to typeset exams\",\n    \"documentation\": \"https://ctan.org/pkg/cesenaexam\"\n  },\n  \"cfr-lm\": {\n    \"command\": \"cfr-lm\",\n    \"detail\": \"Enhanced support for the Latin Modern fonts\",\n    \"documentation\": \"https://ctan.org/pkg/cfr-lm\"\n  },\n  \"changebar\": {\n    \"command\": \"changebar\",\n    \"detail\": \"Generate changebars in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/changebar\"\n  },\n  \"changelayout\": {\n    \"command\": \"changelayout\",\n    \"detail\": \"Change the layout of individual pages and their text\",\n    \"documentation\": \"https://ctan.org/pkg/changelayout\"\n  },\n  \"changelog\": {\n    \"command\": \"changelog\",\n    \"detail\": \"Provides a changelog environment\",\n    \"documentation\": \"https://ctan.org/pkg/changelog\"\n  },\n  \"changepage\": {\n    \"command\": \"changepage\",\n    \"detail\": \"Margin adjustment and detection of odd/even pages\",\n    \"documentation\": \"https://ctan.org/pkg/changepage\"\n  },\n  \"changes\": {\n    \"command\": \"changes\",\n    \"detail\": \"Manual change markup\",\n    \"documentation\": \"https://ctan.org/pkg/changes\"\n  },\n  \"chappg\": {\n    \"command\": \"chappg\",\n    \"detail\": \"Page numbering by chapter\",\n    \"documentation\": \"https://ctan.org/pkg/chappg\"\n  },\n  \"chapterbib\": {\n    \"command\": \"chapterbib\",\n    \"detail\": \"Multiple bibliographies in a document\",\n    \"documentation\": \"https://ctan.org/pkg/chapterbib\"\n  },\n  \"chapterfolder\": {\n    \"command\": \"chapterfolder\",\n    \"detail\": \"Package for working with complicated folder structures\",\n    \"documentation\": \"https://ctan.org/pkg/chapterfolder\"\n  },\n  \"charissil\": {\n    \"command\": \"CharisSIL\",\n    \"detail\": \"CharisSIL fonts with support for XeLaTeX or LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/charissil\"\n  },\n  \"charter\": {\n    \"command\": \"charter\",\n    \"detail\": \"Charter fonts\",\n    \"documentation\": \"https://ctan.org/pkg/charter\"\n  },\n  \"chbibref\": {\n    \"command\": \"chbibref\",\n    \"detail\": \"Change the Bibliography/References title\",\n    \"documentation\": \"https://ctan.org/pkg/chbibref\"\n  },\n  \"checkend\": {\n    \"command\": \"checkend\",\n    \"detail\": \"Extend “improperly closed environment” messages\",\n    \"documentation\": \"https://ctan.org/pkg/checkend\"\n  },\n  \"checklistings\": {\n    \"command\": \"checklistings\",\n    \"detail\": \"\\n    Pass verbatim contents through a compiler\\n    and reincorporate the resulting output \\n  \",\n    \"documentation\": \"https://ctan.org/pkg/checklistings\"\n  },\n  \"chemarr\": {\n    \"command\": \"chemarr\",\n    \"detail\": \"Arrows for chemists\",\n    \"documentation\": \"https://ctan.org/pkg/chemarr\"\n  },\n  \"chemarrow\": {\n    \"command\": \"chemarrow\",\n    \"detail\": \"Arrows for use in chemistry\",\n    \"documentation\": \"https://ctan.org/pkg/chemarrow\"\n  },\n  \"chemcompounds\": {\n    \"command\": \"chemcompounds\",\n    \"detail\": \"Simple consecutive numbering of chemical compounds\",\n    \"documentation\": \"https://ctan.org/pkg/chemcompounds\"\n  },\n  \"chemcono\": {\n    \"command\": \"chemcono\",\n    \"detail\": \"Support for compound numbers in chemistry documents\",\n    \"documentation\": \"https://ctan.org/pkg/chemcono\"\n  },\n  \"chemexec\": {\n    \"command\": \"chemexec\",\n    \"detail\": \"Creating (chemical) exercise sheets\",\n    \"documentation\": \"https://ctan.org/pkg/chemexec\"\n  },\n  \"chemfig\": {\n    \"command\": \"chemfig\",\n    \"detail\": \"Draw molecules with easy syntax\",\n    \"documentation\": \"https://ctan.org/pkg/chemfig\"\n  },\n  \"chemformula\": {\n    \"command\": \"chemformula\",\n    \"detail\": \"Command for typesetting chemical formulas and reactions\",\n    \"documentation\": \"https://ctan.org/pkg/chemformula\"\n  },\n  \"chemgreek\": {\n    \"command\": \"chemgreek\",\n    \"detail\": \"Upright Greek letters in chemistry\",\n    \"documentation\": \"https://ctan.org/pkg/chemgreek\"\n  },\n  \"chemmacros\": {\n    \"command\": \"chemmacros\",\n    \"detail\": \"A collection of macros to support typesetting chemistry documents\",\n    \"documentation\": \"https://ctan.org/pkg/chemmacros\"\n  },\n  \"chemnum\": {\n    \"command\": \"chemnum\",\n    \"detail\": \"A method for numbering chemical compounds\",\n    \"documentation\": \"https://ctan.org/pkg/chemnum\"\n  },\n  \"chemplants\": {\n    \"command\": \"chemplants\",\n    \"detail\": \"Symbology to draw chemical plants with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/chemplants\"\n  },\n  \"chemscheme\": {\n    \"command\": \"chemscheme\",\n    \"detail\": \"Support for chemical schemes\",\n    \"documentation\": \"https://ctan.org/pkg/chemscheme\"\n  },\n  \"chemschemex\": {\n    \"command\": \"chemschemex\",\n    \"detail\": \"Typeset and cross-reference chemical schemes based on TikZ code\",\n    \"documentation\": \"https://ctan.org/pkg/chemschemex\"\n  },\n  \"chemsec\": {\n    \"command\": \"chemsec\",\n    \"detail\": \"Automated creation of numeric entity labels\",\n    \"documentation\": \"https://ctan.org/pkg/chemsec\"\n  },\n  \"chemstyle\": {\n    \"command\": \"chemstyle\",\n    \"detail\": \"Writing chemistry with style\",\n    \"documentation\": \"https://ctan.org/pkg/chemstyle\"\n  },\n  \"cherokee\": {\n    \"command\": \"cherokee\",\n    \"detail\": \"A font for the Cherokee script\",\n    \"documentation\": \"https://ctan.org/pkg/cherokee\"\n  },\n  \"chess\": {\n    \"command\": \"chess\",\n    \"detail\": \"Fonts for typesetting chess boards\",\n    \"documentation\": \"https://ctan.org/pkg/chess\"\n  },\n  \"chessboard\": {\n    \"command\": \"chessboard\",\n    \"detail\": \"Print chess boards\",\n    \"documentation\": \"https://ctan.org/pkg/chessboard\"\n  },\n  \"chessfss\": {\n    \"command\": \"chessfss\",\n    \"detail\": \"A package to handle chess fonts\",\n    \"documentation\": \"https://ctan.org/pkg/chessfss\"\n  },\n  \"chet\": {\n    \"command\": \"chet\",\n    \"detail\": \"LaTeX layout inspired by harvmac\",\n    \"documentation\": \"https://ctan.org/pkg/chet\"\n  },\n  \"chextras\": {\n    \"command\": \"chextras\",\n    \"detail\": \"A companion package for the Swiss typesetter\",\n    \"documentation\": \"https://ctan.org/pkg/chextras\"\n  },\n  \"chhaya\": {\n    \"command\": \"chhaya\",\n    \"detail\": \"Linguistic glossing in Marathi language\",\n    \"documentation\": \"https://ctan.org/pkg/chhaya\"\n  },\n  \"chicago\": {\n    \"command\": \"chicago\",\n    \"detail\": \"A \\\"Chicago\\\" bibliography style\",\n    \"documentation\": \"https://ctan.org/pkg/chicago\"\n  },\n  \"chickenize\": {\n    \"command\": \"chickenize\",\n    \"detail\": \"Use lua callbacks for “interesting” textual effects\",\n    \"documentation\": \"https://ctan.org/pkg/chickenize\"\n  },\n  \"chifoot\": {\n    \"command\": \"chifoot\",\n    \"detail\": \"Chicago-style footnote formatting\",\n    \"documentation\": \"https://ctan.org/pkg/chifoot\"\n  },\n  \"chivo\": {\n    \"command\": \"Chivo\",\n    \"detail\": \"Using the free Chivo fonts with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/chivo\"\n  },\n  \"chkfloat\": {\n    \"command\": \"chkfloat\",\n    \"detail\": \"Warn whenever a float is placed “to far away”\",\n    \"documentation\": \"https://ctan.org/pkg/chkfloat\"\n  },\n  \"chklref\": {\n    \"command\": \"chklref\",\n    \"detail\": \"Check for problems with labels in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/chklref\"\n  },\n  \"chngcntr\": {\n    \"command\": \"chngcntr\",\n    \"detail\": \"Change the resetting of counters\",\n    \"documentation\": \"https://ctan.org/pkg/chngcntr\"\n  },\n  \"chngpage\": {\n    \"command\": \"chngpage\",\n    \"detail\": \"Change the page layout in the middle of a document\",\n    \"documentation\": \"https://ctan.org/pkg/chngpage\"\n  },\n  \"chordbars\": {\n    \"command\": \"chordbars\",\n    \"detail\": \"Print chord grids for pop/jazz tunes\",\n    \"documentation\": \"https://ctan.org/pkg/chordbars\"\n  },\n  \"chordbox\": {\n    \"command\": \"chordbox\",\n    \"detail\": \"Draw chord diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/chordbox\"\n  },\n  \"chronology\": {\n    \"command\": \"chronology\",\n    \"detail\": \"Provides a horizontal timeline\",\n    \"documentation\": \"https://ctan.org/pkg/chronology\"\n  },\n  \"chronosys\": {\n    \"command\": \"chronosys\",\n    \"detail\": \"Drawing time-line diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/chronosys\"\n  },\n  \"chs-physics-report\": {\n    \"command\": \"chs-physics-report\",\n    \"detail\": \"Physics lab reports for Carmel High School\",\n    \"documentation\": \"https://ctan.org/pkg/chs-physics-report\"\n  },\n  \"chscite\": {\n    \"command\": \"chscite\",\n    \"detail\": \"Bibliography style for Chalmers University of Technology\",\n    \"documentation\": \"https://ctan.org/pkg/chscite\"\n  },\n  \"churchslavonic\": {\n    \"command\": \"churchslavonic\",\n    \"detail\": \"Typeset documents in Church Slavonic language using Unicode\",\n    \"documentation\": \"https://ctan.org/pkg/churchslavonic\"\n  },\n  \"cinzel\": {\n    \"command\": \"cinzel\",\n    \"detail\": \"LaTeX support for Cinzel and Cinzel Decorative fonts\",\n    \"documentation\": \"https://ctan.org/pkg/cinzel\"\n  },\n  \"circ\": {\n    \"command\": \"circ\",\n    \"detail\": \"Macros for typesetting circuit diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/circ\"\n  },\n  \"circledsteps\": {\n    \"command\": \"circledsteps\",\n    \"detail\": \"Typeset circled numbers\",\n    \"documentation\": \"https://ctan.org/pkg/circledsteps\"\n  },\n  \"circuitikz\": {\n    \"command\": \"circuitikz\",\n    \"detail\": \"Draw electrical networks with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/circuitikz\"\n  },\n  \"cite\": {\n    \"command\": \"cite\",\n    \"detail\": \"Improved citation handling in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/cite\"\n  },\n  \"citeall\": {\n    \"command\": \"citeall\",\n    \"detail\": \"Cite all entries of a bbl created with BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/citeall\"\n  },\n  \"citeref\": {\n    \"command\": \"citeref\",\n    \"detail\": \" Add reference-page-list to bibliography-items\",\n    \"documentation\": \"https://ctan.org/pkg/citeref\"\n  },\n  \"cje\": {\n    \"command\": \"cje\",\n    \"detail\": \"LaTeX document class for CJE articles\",\n    \"documentation\": \"https://ctan.org/pkg/cje\"\n  },\n  \"cjhebrew\": {\n    \"command\": \"cjhebrew\",\n    \"detail\": \"Typeset Hebrew with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/cjhebrew\"\n  },\n  \"cjk\": {\n    \"command\": \"CJK\",\n    \"detail\": \"CJK language support\",\n    \"documentation\": \"https://ctan.org/pkg/cjk\"\n  },\n  \"cjkpunct\": {\n    \"command\": \"CJKpunct\",\n    \"detail\": \"Adjust locations and kerning of CJK punctuation marks\",\n    \"documentation\": \"https://ctan.org/pkg/cjkpunct\"\n  },\n  \"clara\": {\n    \"command\": \"clara\",\n    \"detail\": \" A serif font family\",\n    \"documentation\": \"https://ctan.org/pkg/clara\"\n  },\n  \"classics\": {\n    \"command\": \"classics\",\n    \"detail\": \"Cite classic works\",\n    \"documentation\": \"https://ctan.org/pkg/classics\"\n  },\n  \"classicthesis\": {\n    \"command\": \"classicthesis\",\n    \"detail\": \"A “classically styled” thesis package\",\n    \"documentation\": \"https://ctan.org/pkg/classicthesis\"\n  },\n  \"classif2\": {\n    \"command\": \"classif2\",\n    \"detail\": \"Biological classification tables\",\n    \"documentation\": \"https://ctan.org/pkg/classif2\"\n  },\n  \"classlist\": {\n    \"command\": \"classlist\",\n    \"detail\": \"Record classes used in a document\",\n    \"documentation\": \"https://ctan.org/pkg/classlist\"\n  },\n  \"classpack\": {\n    \"command\": \"classpack\",\n    \"detail\": \"XML mastering for LaTeX classes and packages\",\n    \"documentation\": \"https://ctan.org/pkg/classpack\"\n  },\n  \"cleanthesis\": {\n    \"command\": \"cleanthesis\",\n    \"detail\": \"A clean LaTeX style for thesis documents\",\n    \"documentation\": \"https://ctan.org/pkg/cleanthesis\"\n  },\n  \"clearsans\": {\n    \"command\": \"ClearSans\",\n    \"detail\": \"Clear Sans fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/clearsans\"\n  },\n  \"clefval\": {\n    \"command\": \"clefval\",\n    \"detail\": \"Key/value support with a hash\",\n    \"documentation\": \"https://ctan.org/pkg/clefval\"\n  },\n  \"cleveref\": {\n    \"command\": \"cleveref\",\n    \"detail\": \"Intelligent cross-referencing\",\n    \"documentation\": \"https://ctan.org/pkg/cleveref\"\n  },\n  \"clipboard\": {\n    \"command\": \"clipboard\",\n    \"detail\": \"Copy and paste into and across documents\",\n    \"documentation\": \"https://ctan.org/pkg/clipboard\"\n  },\n  \"clock\": {\n    \"command\": \"clock\",\n    \"detail\": \"Graphical and textual clocks for TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/clock\"\n  },\n  \"clojure-pamphlet\": {\n    \"command\": \"clojure-pamphlet\",\n    \"detail\": \"A simple literate programming tool based on clojure's pamphlet system\",\n    \"documentation\": \"https://ctan.org/pkg/clojure-pamphlet\"\n  },\n  \"cloze\": {\n    \"command\": \"cloze\",\n    \"detail\": \"A LuaLaTeX package for creating cloze texts\",\n    \"documentation\": \"https://ctan.org/pkg/cloze\"\n  },\n  \"clrdblpg\": {\n    \"command\": \"clrdblpg\",\n    \"detail\": \"Control pagestyle of pages left blank by \\\\cleardoublepage\",\n    \"documentation\": \"https://ctan.org/pkg/clrdblpg\"\n  },\n  \"clrscode\": {\n    \"command\": \"clrscode\",\n    \"detail\": \"Typesets pseudocode as in Introduction to Algorithms\",\n    \"documentation\": \"https://ctan.org/pkg/clrscode\"\n  },\n  \"clrscode3e\": {\n    \"command\": \"clrscode3e\",\n    \"detail\": \"Typesets pseudocode as in Introduction to Algorithms\",\n    \"documentation\": \"https://ctan.org/pkg/clrscode3e\"\n  },\n  \"clrstrip\": {\n    \"command\": \"clrstrip\",\n    \"detail\": \"Place contents into a full width colour strip\",\n    \"documentation\": \"https://ctan.org/pkg/clrstrip\"\n  },\n  \"cmap\": {\n    \"command\": \"cmap\",\n    \"detail\": \"Make PDF files searchable and copyable\",\n    \"documentation\": \"https://ctan.org/pkg/cmap\"\n  },\n  \"cmathbb\": {\n    \"command\": \"cmathbb\",\n    \"detail\": \"Computer modern mathematical blackboard bold font\",\n    \"documentation\": \"https://ctan.org/pkg/cmathbb\"\n  },\n  \"cmbright\": {\n    \"command\": \"cmbright\",\n    \"detail\": \"Computer Modern Bright fonts\",\n    \"documentation\": \"https://ctan.org/pkg/cmbright\"\n  },\n  \"cmdstring\": {\n    \"command\": \"cmdstring\",\n    \"detail\": \"Get command name reliably\",\n    \"documentation\": \"https://ctan.org/pkg/cmdstring\"\n  },\n  \"cmdtrack\": {\n    \"command\": \"cmdtrack\",\n    \"detail\": \"Check used commands\",\n    \"documentation\": \"https://ctan.org/pkg/cmdtrack\"\n  },\n  \"cmll\": {\n    \"command\": \"cmll\",\n    \"detail\": \"Symbols for linear logic\",\n    \"documentation\": \"https://ctan.org/pkg/cmll\"\n  },\n  \"cmpj\": {\n    \"command\": \"cmpj\",\n    \"detail\": \"Style for the journal Condensed Matter Physics\",\n    \"documentation\": \"https://ctan.org/pkg/cmpj\"\n  },\n  \"cmsd\": {\n    \"command\": \"cmsd\",\n    \"detail\": \"Interfaces to the CM Sans Serif Bold fonts\",\n    \"documentation\": \"https://ctan.org/pkg/cmsd\"\n  },\n  \"cmsrb\": {\n    \"command\": \"cmsrb\",\n    \"detail\": \"Computer Modern for Serbian and Macedonian\",\n    \"documentation\": \"https://ctan.org/pkg/cmsrb\"\n  },\n  \"cmtiup\": {\n    \"command\": \"cmtiup\",\n    \"detail\": \"Upright punctuation with CM italic\",\n    \"documentation\": \"https://ctan.org/pkg/cmtiup\"\n  },\n  \"cmtt\": {\n    \"command\": \"cmtt\",\n    \"detail\": \"A package for handling the cmtt font better\",\n    \"documentation\": \"https://ctan.org/pkg/cmtt\"\n  },\n  \"cmupint\": {\n    \"command\": \"cmupint\",\n    \"detail\": \"Upright integral symbols for Computer Modern\",\n    \"documentation\": \"https://ctan.org/pkg/cmupint\"\n  },\n  \"cnltx\": {\n    \"command\": \"cnltx\",\n    \"detail\": \"LaTeX tools and documenting facilities\",\n    \"documentation\": \"https://ctan.org/pkg/cnltx\"\n  },\n  \"cntformats\": {\n    \"command\": \"cntformats\",\n    \"detail\": \"A different way to read counters\",\n    \"documentation\": \"https://ctan.org/pkg/cntformats\"\n  },\n  \"cntperchap\": {\n    \"command\": \"cntperchap\",\n    \"detail\": \"Store counter values per chapter\",\n    \"documentation\": \"https://ctan.org/pkg/cntperchap\"\n  },\n  \"cochineal\": {\n    \"command\": \"cochineal\",\n    \"detail\": \"Cochineal fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/cochineal\"\n  },\n  \"codeanatomy\": {\n    \"command\": \"codeanatomy\",\n    \"detail\": \"Typeset code with annotations\",\n    \"documentation\": \"https://ctan.org/pkg/codeanatomy\"\n  },\n  \"codehigh\": {\n    \"command\": \"codehigh\",\n    \"detail\": \"Highlight code and demos with l3regex and lpeg\",\n    \"documentation\": \"https://ctan.org/pkg/codehigh\"\n  },\n  \"codepage\": {\n    \"command\": \"codepage\",\n    \"detail\": \"Support for variant code pages\",\n    \"documentation\": \"https://ctan.org/pkg/codepage\"\n  },\n  \"codesection\": {\n    \"command\": \"codesection\",\n    \"detail\": \"Provides an environment that may be conditionally included\",\n    \"documentation\": \"https://ctan.org/pkg/codesection\"\n  },\n  \"codicefiscaleitaliano\": {\n    \"command\": \"codicefiscaleitaliano\",\n    \"detail\": \"Test the consistency of the Italian personal Fiscal Code\",\n    \"documentation\": \"https://ctan.org/pkg/codicefiscaleitaliano\"\n  },\n  \"coelacanth\": {\n    \"command\": \"coelacanth\",\n    \"detail\": \"Coelacanth fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/coelacanth\"\n  },\n  \"coffeestains\": {\n    \"command\": \"coffeestains\",\n    \"detail\": \"Add coffee stains to documents\",\n    \"documentation\": \"https://ctan.org/pkg/coffeestains\"\n  },\n  \"collcell\": {\n    \"command\": \"collcell\",\n    \"detail\": \"Collect contents of a tabular cell as argument to a macro\",\n    \"documentation\": \"https://ctan.org/pkg/collcell\"\n  },\n  \"collect\": {\n    \"command\": \"collect\",\n    \"detail\": \"Collect text for later re-use\",\n    \"documentation\": \"https://ctan.org/pkg/collect\"\n  },\n  \"collectbox\": {\n    \"command\": \"collectbox\",\n    \"detail\": \"Collect and process macro arguments as boxes\",\n    \"documentation\": \"https://ctan.org/pkg/collectbox\"\n  },\n  \"collref\": {\n    \"command\": \"collref\",\n    \"detail\": \"Collect blocks of references into a single reference\",\n    \"documentation\": \"https://ctan.org/pkg/collref\"\n  },\n  \"colonequals\": {\n    \"command\": \"colonequals\",\n    \"detail\": \"Colon equals symbols\",\n    \"documentation\": \"https://ctan.org/pkg/colonequals\"\n  },\n  \"colophon\": {\n    \"command\": \"colophon\",\n    \"detail\": \"Provides commands for producing a colophon\",\n    \"documentation\": \"https://ctan.org/pkg/colophon\"\n  },\n  \"color\": {\n    \"command\": \"color\",\n    \"detail\": \"Colour control for LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/color\"\n  },\n  \"color-edits\": {\n    \"command\": \"color-edits\",\n    \"detail\": \"Colorful edits for multiple authors of a shared document\",\n    \"documentation\": \"https://ctan.org/pkg/color-edits\"\n  },\n  \"colordoc\": {\n    \"command\": \"colordoc\",\n    \"detail\": \"Coloured syntax highlights in documentation\",\n    \"documentation\": \"https://ctan.org/pkg/colordoc\"\n  },\n  \"colordvi\": {\n    \"command\": \"colordvi\",\n    \"detail\": \"Simple colour use in Plain TeX\",\n    \"documentation\": \"https://ctan.org/pkg/colordvi\"\n  },\n  \"colorinfo\": {\n    \"command\": \"colorinfo\",\n    \"detail\": \"Retrieve colour model and values for defined colours\",\n    \"documentation\": \"https://ctan.org/pkg/colorinfo\"\n  },\n  \"coloring\": {\n    \"command\": \"coloring\",\n    \"detail\": \"Define missing colors by their names\",\n    \"documentation\": \"https://ctan.org/pkg/coloring\"\n  },\n  \"colorist\": {\n    \"command\": \"colorist\",\n    \"detail\": \"Write your articles or books in a colorful way\",\n    \"documentation\": \"https://ctan.org/pkg/colorist\"\n  },\n  \"colorprofiles\": {\n    \"command\": \"colorprofiles\",\n    \"detail\": \"Collection of free ICC profiles\",\n    \"documentation\": \"https://ctan.org/pkg/colorprofiles\"\n  },\n  \"colorspace\": {\n    \"command\": \"colorspace\",\n    \"detail\": \"Provides PDF color spaces\",\n    \"documentation\": \"https://ctan.org/pkg/colorspace\"\n  },\n  \"colortab\": {\n    \"command\": \"colortab\",\n    \"detail\": \"Shade cells of tables and halign\",\n    \"documentation\": \"https://ctan.org/pkg/colortab\"\n  },\n  \"colortbl\": {\n    \"command\": \"colortbl\",\n    \"detail\": \"Add colour to LaTeX tables\",\n    \"documentation\": \"https://ctan.org/pkg/colortbl\"\n  },\n  \"colorwav\": {\n    \"command\": \"colorwav\",\n    \"detail\": \"Colours by wavelength of visible light\",\n    \"documentation\": \"https://ctan.org/pkg/colorwav\"\n  },\n  \"colorweb\": {\n    \"command\": \"colorweb\",\n    \"detail\": \"Extend the color package colour space\",\n    \"documentation\": \"https://ctan.org/pkg/colorweb\"\n  },\n  \"colourchange\": {\n    \"command\": \"colourchange\",\n    \"detail\": \"Colourchange\",\n    \"documentation\": \"https://ctan.org/pkg/colourchange\"\n  },\n  \"combelow\": {\n    \"command\": \"combelow\",\n    \"detail\": \"Typeset \\\"comma-below\\\" letters, as in Romanian\",\n    \"documentation\": \"https://ctan.org/pkg/combelow\"\n  },\n  \"combinedgraphics\": {\n    \"command\": \"combinedgraphics\",\n    \"detail\": \"Include graphic (EPS or PDF)/LaTeX combinations\",\n    \"documentation\": \"https://ctan.org/pkg/combinedgraphics\"\n  },\n  \"combofont\": {\n    \"command\": \"combofont\",\n    \"detail\": \"Add NFSS-declarations of combo fonts to LuaLaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/combofont\"\n  },\n  \"comfortaa\": {\n    \"command\": \"comfortaa\",\n    \"detail\": \"Sans serif font, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/comfortaa\"\n  },\n  \"comicneue\": {\n    \"command\": \"comicneue\",\n    \"detail\": \"Use Comic Neue with TeX(-alike) systems\",\n    \"documentation\": \"https://ctan.org/pkg/comicneue\"\n  },\n  \"comma\": {\n    \"command\": \"comma\",\n    \"detail\": \"Formats a number by inserting commas\",\n    \"documentation\": \"https://ctan.org/pkg/comma\"\n  },\n  \"commado\": {\n    \"command\": \"commado\",\n    \"detail\": \"Expandable iteration on comma-separated and filename lists\",\n    \"documentation\": \"https://ctan.org/pkg/commado\"\n  },\n  \"commath\": {\n    \"command\": \"commath\",\n    \"detail\": \"Mathematics typesetting support\",\n    \"documentation\": \"https://ctan.org/pkg/commath\"\n  },\n  \"commedit\": {\n    \"command\": \"commedit\",\n    \"detail\": \"Commented editions with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/commedit\"\n  },\n  \"comment\": {\n    \"command\": \"comment\",\n    \"detail\": \"Selectively include/exclude portions of text\",\n    \"documentation\": \"https://ctan.org/pkg/comment\"\n  },\n  \"commutative-diagrams\": {\n    \"command\": \"commutative-diagrams\",\n    \"detail\": \"CoDi: Commutative Diagrams for TeX\",\n    \"documentation\": \"https://ctan.org/pkg/commutative-diagrams\"\n  },\n  \"compactbib\": {\n    \"command\": \"compactbib\",\n    \"detail\": \"Multiple thebibliography environments\",\n    \"documentation\": \"https://ctan.org/pkg/compactbib\"\n  },\n  \"competences\": {\n    \"command\": \"competences\",\n    \"detail\": \"Track skills of classroom checks\",\n    \"documentation\": \"https://ctan.org/pkg/competences\"\n  },\n  \"complexity\": {\n    \"command\": \"complexity\",\n    \"detail\": \"Computational complexity class names\",\n    \"documentation\": \"https://ctan.org/pkg/complexity\"\n  },\n  \"compsci\": {\n    \"command\": \"compsci\",\n    \"detail\": \"Document (LaTeX) programming with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/compsci\"\n  },\n  \"concepts\": {\n    \"command\": \"concepts\",\n    \"detail\": \"Keeping track of formal ‘concepts’ for a particular field\",\n    \"documentation\": \"https://ctan.org/pkg/concepts\"\n  },\n  \"concmath\": {\n    \"command\": \"concmath\",\n    \"detail\": \"Concrete Math fonts\",\n    \"documentation\": \"https://ctan.org/pkg/concmath\"\n  },\n  \"concrete\": {\n    \"command\": \"concrete\",\n    \"detail\": \"Concrete Roman fonts\",\n    \"documentation\": \"https://ctan.org/pkg/concrete\"\n  },\n  \"conditext\": {\n    \"command\": \"CondiTeXt\",\n    \"detail\": \"Define and manage conditional content\",\n    \"documentation\": \"https://ctan.org/pkg/conditext\"\n  },\n  \"constants\": {\n    \"command\": \"constants\",\n    \"detail\": \"Automatic numbering of constants\",\n    \"documentation\": \"https://ctan.org/pkg/constants\"\n  },\n  \"conteq\": {\n    \"command\": \"conteq\",\n    \"detail\": \"Typeset multiline continued equalities\",\n    \"documentation\": \"https://ctan.org/pkg/conteq\"\n  },\n  \"continue\": {\n    \"command\": \"continue\",\n    \"detail\": \"Prints ‘continuation’ marks on pages of multipage documents\",\n    \"documentation\": \"https://ctan.org/pkg/continue\"\n  },\n  \"contour\": {\n    \"command\": \"contour\",\n    \"detail\": \"Print a coloured contour around text\",\n    \"documentation\": \"https://ctan.org/pkg/contour\"\n  },\n  \"contracard\": {\n    \"command\": \"contracard\",\n    \"detail\": \"Generate calling cards for dances\",\n    \"documentation\": \"https://ctan.org/pkg/contracard\"\n  },\n  \"conv-xkv\": {\n    \"command\": \"conv-xkv\",\n    \"detail\": \"Create new key-value syntax\",\n    \"documentation\": \"https://ctan.org/pkg/conv-xkv\"\n  },\n  \"cooking\": {\n    \"command\": \"cooking\",\n    \"detail\": \"Typeset recipes\",\n    \"documentation\": \"https://ctan.org/pkg/cooking\"\n  },\n  \"cooking-units\": {\n    \"command\": \"cooking-units\",\n    \"detail\": \"Typeset and convert units for cookery books and recipes\",\n    \"documentation\": \"https://ctan.org/pkg/cooking-units\"\n  },\n  \"cookingsymbols\": {\n    \"command\": \"cookingsymbols\",\n    \"detail\": \"Symbols for recipes\",\n    \"documentation\": \"https://ctan.org/pkg/cookingsymbols\"\n  },\n  \"cool\": {\n    \"command\": \"cool\",\n    \"detail\": \"COntent-Oriented LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/cool\"\n  },\n  \"coollist\": {\n    \"command\": \"coollist\",\n    \"detail\": \"Manipulate COntent Oriented LaTeX Lists\",\n    \"documentation\": \"https://ctan.org/pkg/coollist\"\n  },\n  \"coolstr\": {\n    \"command\": \"coolstr\",\n    \"detail\": \"String manipulation in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/coolstr\"\n  },\n  \"coolthms\": {\n    \"command\": \"coolthms\",\n    \"detail\": \"Reference items in a theorem environment\",\n    \"documentation\": \"https://ctan.org/pkg/coolthms\"\n  },\n  \"cooltooltips\": {\n    \"command\": \"cooltooltips\",\n    \"detail\": \"Associate a pop-up window and tooltip with PDF hyperlinks\",\n    \"documentation\": \"https://ctan.org/pkg/cooltooltips\"\n  },\n  \"coordsys\": {\n    \"command\": \"coordsys\",\n    \"detail\": \"Draw cartesian coordinate systems\",\n    \"documentation\": \"https://ctan.org/pkg/coordsys\"\n  },\n  \"coptic\": {\n    \"command\": \"coptic\",\n    \"detail\": \"Coptic Fonts\",\n    \"documentation\": \"https://ctan.org/pkg/coptic\"\n  },\n  \"copyedit\": {\n    \"command\": \"copyedit\",\n    \"detail\": \"Copyediting support for LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/copyedit\"\n  },\n  \"copyrightbox\": {\n    \"command\": \"copyrightbox\",\n    \"detail\": \"Provide copyright notices for images in a document\",\n    \"documentation\": \"https://ctan.org/pkg/copyrightbox\"\n  },\n  \"cormorantgaramond\": {\n    \"command\": \"CormorantGaramond\",\n    \"detail\": \"Cormorant Garamond family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/cormorantgaramond\"\n  },\n  \"correctmathalign\": {\n    \"command\": \"correctmathalign\",\n    \"detail\": \"Correct spacing of the alignment in expressions\",\n    \"documentation\": \"https://ctan.org/pkg/correctmathalign\"\n  },\n  \"coseoul\": {\n    \"command\": \"coseoul\",\n    \"detail\": \"Context sensitive outline elements\",\n    \"documentation\": \"https://ctan.org/pkg/coseoul\"\n  },\n  \"count1to\": {\n    \"command\": \"count1to\",\n    \"detail\": \"Make use of count1 to count9\",\n    \"documentation\": \"https://ctan.org/pkg/count1to\"\n  },\n  \"countriesofeurope\": {\n    \"command\": \"countriesofeurope\",\n    \"detail\": \"A font with the images of the countries of Europe\",\n    \"documentation\": \"https://ctan.org/pkg/countriesofeurope\"\n  },\n  \"counttexruns\": {\n    \"command\": \"counttexruns\",\n    \"detail\": \"Count compilations of a document\",\n    \"documentation\": \"https://ctan.org/pkg/counttexruns\"\n  },\n  \"courier\": {\n    \"command\": \"courier\",\n    \"detail\": \"Adobe Type 1 “free” copies of Courier\",\n    \"documentation\": \"https://ctan.org/pkg/courier\"\n  },\n  \"courierten\": {\n    \"command\": \"courierten\",\n    \"detail\": \"Courier 10 Pitch BT with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/courierten\"\n  },\n  \"coverpage\": {\n    \"command\": \"CoverPage\",\n    \"detail\": \"Automatic cover page creation for scientific papers\",\n    \"documentation\": \"https://ctan.org/pkg/coverpage\"\n  },\n  \"covington\": {\n    \"command\": \"covington\",\n    \"detail\": \"Linguistic support\",\n    \"documentation\": \"https://ctan.org/pkg/covington\"\n  },\n  \"cprotect\": {\n    \"command\": \"cprotect\",\n    \"detail\": \"Allow verbatim, etc., in macro arguments\",\n    \"documentation\": \"https://ctan.org/pkg/cprotect\"\n  },\n  \"cqubeamer\": {\n    \"command\": \"cqubeamer\",\n    \"detail\": \"LaTeX Beamer Template for Chongqing University\",\n    \"documentation\": \"https://ctan.org/pkg/cqubeamer\"\n  },\n  \"cquthesis\": {\n    \"command\": \"cquthesis\",\n    \"detail\": \"LaTeX Thesis Template for Chongqing University\",\n    \"documentation\": \"https://ctan.org/pkg/cquthesis\"\n  },\n  \"crbox\": {\n    \"command\": \"crbox\",\n    \"detail\": \"Boxes with crossed corners\",\n    \"documentation\": \"https://ctan.org/pkg/crbox\"\n  },\n  \"crimson\": {\n    \"command\": \"crimson\",\n    \"detail\": \"Crimson fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/crimson\"\n  },\n  \"crimsonpro\": {\n    \"command\": \"CrimsonPro\",\n    \"detail\": \"CrimsonPro fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/crimsonpro\"\n  },\n  \"croatian\": {\n    \"command\": \"croatian\",\n    \"detail\": \"Fonts for Croatian Glagolitic and other Croatian scripts\",\n    \"documentation\": \"https://ctan.org/pkg/croatian\"\n  },\n  \"crop\": {\n    \"command\": \"crop\",\n    \"detail\": \"Support for cropmarks\",\n    \"documentation\": \"https://ctan.org/pkg/crop\"\n  },\n  \"crossreference\": {\n    \"command\": \"crossreference\",\n    \"detail\": \"Crossreferences within documents\",\n    \"documentation\": \"https://ctan.org/pkg/crossreference\"\n  },\n  \"crossreftools\": {\n    \"command\": \"crossreftools\",\n    \"detail\": \"Expandable extraction of cleveref data\",\n    \"documentation\": \"https://ctan.org/pkg/crossreftools\"\n  },\n  \"crosswrd\": {\n    \"command\": \"crosswrd\",\n    \"detail\": \"Macros for typesetting crossword puzzles\",\n    \"documentation\": \"https://ctan.org/pkg/crosswrd\"\n  },\n  \"cryptocode\": {\n    \"command\": \"cryptocode\",\n    \"detail\": \"Typesetting pseudocode, protocols, game-based proofs and black-box reductions in cryptography\",\n    \"documentation\": \"https://ctan.org/pkg/cryptocode\"\n  },\n  \"csquotes\": {\n    \"command\": \"csquotes\",\n    \"detail\": \"Context sensitive quotation facilities\",\n    \"documentation\": \"https://ctan.org/pkg/csquotes\"\n  },\n  \"css-colors\": {\n    \"command\": \"css-colors\",\n    \"detail\": \"Named colors for web-safe design\",\n    \"documentation\": \"https://ctan.org/pkg/css-colors\"\n  },\n  \"cstypo\": {\n    \"command\": \"cstypo\",\n    \"detail\": \"Czech typography rules enforced through LuaTeX hooks\",\n    \"documentation\": \"https://ctan.org/pkg/cstypo\"\n  },\n  \"csvmerge\": {\n    \"command\": \"csvmerge\",\n    \"detail\": \"Merge TeX code with csv data\",\n    \"documentation\": \"https://ctan.org/pkg/csvmerge\"\n  },\n  \"csvsimple\": {\n    \"command\": \"csvsimple\",\n    \"detail\": \"Simple CSV file processing\",\n    \"documentation\": \"https://ctan.org/pkg/csvsimple\"\n  },\n  \"ctable\": {\n    \"command\": \"ctable\",\n    \"detail\": \"Flexible typesetting of table and figure floats using key/value directives\",\n    \"documentation\": \"https://ctan.org/pkg/ctable\"\n  },\n  \"ctablestack\": {\n    \"command\": \"ctablestack\",\n    \"detail\": \"Catcode table stable support\",\n    \"documentation\": \"https://ctan.org/pkg/ctablestack\"\n  },\n  \"ctex\": {\n    \"command\": \"ctex\",\n    \"detail\": \"LaTeX classes and packages for Chinese typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/ctex\"\n  },\n  \"cuisine\": {\n    \"command\": \"cuisine\",\n    \"detail\": \"Typeset recipes\",\n    \"documentation\": \"https://ctan.org/pkg/cuisine\"\n  },\n  \"cuprum\": {\n    \"command\": \"cuprum\",\n    \"detail\": \"Cuprum font family support for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/cuprum\"\n  },\n  \"currency\": {\n    \"command\": \"currency\",\n    \"detail\": \"Format currencies in a consistent way\",\n    \"documentation\": \"https://ctan.org/pkg/currency\"\n  },\n  \"currfile\": {\n    \"command\": \"currfile\",\n    \"detail\": \"Provide file name and path of input files\",\n    \"documentation\": \"https://ctan.org/pkg/currfile\"\n  },\n  \"currvita\": {\n    \"command\": \"currvita\",\n    \"detail\": \"Typeset a curriculum vitae\",\n    \"documentation\": \"https://ctan.org/pkg/currvita\"\n  },\n  \"curve2e\": {\n    \"command\": \"curve2e\",\n    \"detail\": \"Extensions for package pict2e\",\n    \"documentation\": \"https://ctan.org/pkg/curve2e\"\n  },\n  \"curves\": {\n    \"command\": \"curves\",\n    \"detail\": \"Curves for LaTeX picture environment\",\n    \"documentation\": \"https://ctan.org/pkg/curves\"\n  },\n  \"cuted\": {\n    \"command\": \"cuted\",\n    \"detail\": \"Mixing onecolumn and twocolumn modes\",\n    \"documentation\": \"https://ctan.org/pkg/cuted\"\n  },\n  \"cutwin\": {\n    \"command\": \"cutwin\",\n    \"detail\": \"Cut a window in a paragraph, typeset material in it\",\n    \"documentation\": \"https://ctan.org/pkg/cutwin\"\n  },\n  \"cv\": {\n    \"command\": \"CV\",\n    \"detail\": \"A package for creating a curriculum vitae\",\n    \"documentation\": \"https://ctan.org/pkg/cv\"\n  },\n  \"cyber\": {\n    \"command\": \"cyber\",\n    \"detail\": \"Annotate compliance with cybersecurity requirements\",\n    \"documentation\": \"https://ctan.org/pkg/cyber\"\n  },\n  \"cybercic\": {\n    \"command\": \"cybercic\",\n    \"detail\": \"“Controls in Contents” for the cyber package\",\n    \"documentation\": \"https://ctan.org/pkg/cybercic\"\n  },\n  \"cyklop\": {\n    \"command\": \"cyklop\",\n    \"detail\": \"The Cyclop typeface\",\n    \"documentation\": \"https://ctan.org/pkg/cyklop\"\n  },\n  \"cypriot\": {\n    \"command\": \"cypriot\",\n    \"detail\": \"A script which was used on Cyprus for writing Greek\",\n    \"documentation\": \"https://ctan.org/pkg/cypriot\"\n  },\n  \"dad\": {\n    \"command\": \"dad\",\n    \"detail\": \"Simple typesetting system for mixed Arabic/Latin documents\",\n    \"documentation\": \"https://ctan.org/pkg/dad\"\n  },\n  \"dantelogo\": {\n    \"command\": \"dantelogo\",\n    \"detail\": \"A font for DANTE's logo\",\n    \"documentation\": \"https://ctan.org/pkg/dantelogo\"\n  },\n  \"dashbox\": {\n    \"command\": \"dashbox\",\n    \"detail\": \"Draw dashed boxes\",\n    \"documentation\": \"https://ctan.org/pkg/dashbox\"\n  },\n  \"dashrule\": {\n    \"command\": \"dashrule\",\n    \"detail\": \"Draw dashed rules\",\n    \"documentation\": \"https://ctan.org/pkg/dashrule\"\n  },\n  \"dashundergaps\": {\n    \"command\": \"dashundergaps\",\n    \"detail\": \"Produce gaps that are underlined, dotted or dashed\",\n    \"documentation\": \"https://ctan.org/pkg/dashundergaps\"\n  },\n  \"dataref\": {\n    \"command\": \"dataref\",\n    \"detail\": \"Manage references to experimental data\",\n    \"documentation\": \"https://ctan.org/pkg/dataref\"\n  },\n  \"datatool\": {\n    \"command\": \"datatool\",\n    \"detail\": \"Tools to load and manipulate data\",\n    \"documentation\": \"https://ctan.org/pkg/datatool\"\n  },\n  \"datax\": {\n    \"command\": \"datax\",\n    \"detail\": \"Import individual data from script files\",\n    \"documentation\": \"https://ctan.org/pkg/datax\"\n  },\n  \"dateiliste\": {\n    \"command\": \"dateiliste\",\n    \"detail\": \"Extensions of the \\\\listfiles concept\",\n    \"documentation\": \"https://ctan.org/pkg/dateiliste\"\n  },\n  \"datenumber\": {\n    \"command\": \"datenumber\",\n    \"detail\": \"Convert a date into a number and vice versa\",\n    \"documentation\": \"https://ctan.org/pkg/datenumber\"\n  },\n  \"datetime\": {\n    \"command\": \"datetime\",\n    \"detail\": \"Change format of \\\\today with commands for current time\",\n    \"documentation\": \"https://ctan.org/pkg/datetime\"\n  },\n  \"datetime2\": {\n    \"command\": \"datetime2\",\n    \"detail\": \"Formats for dates, times and time zones\",\n    \"documentation\": \"https://ctan.org/pkg/datetime2\"\n  },\n  \"datetime2-en-fulltext\": {\n    \"command\": \"datetime2-en-fulltext\",\n    \"detail\": \"English Full Text styles for the datetime2 package\",\n    \"documentation\": \"https://ctan.org/pkg/datetime2-en-fulltext\"\n  },\n  \"datetime2-it-fulltext\": {\n    \"command\": \"datetime2-it-fulltext\",\n    \"detail\": \"Italian full text styles for the datetime2 package\",\n    \"documentation\": \"https://ctan.org/pkg/datetime2-it-fulltext\"\n  },\n  \"dblfloatfix\": {\n    \"command\": \"dblfloatfix\",\n    \"detail\": \"Fixes for twocolumn floats\",\n    \"documentation\": \"https://ctan.org/pkg/dblfloatfix\"\n  },\n  \"dblfnote\": {\n    \"command\": \"dblfnote\",\n    \"detail\": \"Double-column footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/dblfnote\"\n  },\n  \"dblfont\": {\n    \"command\": \"dblfont\",\n    \"detail\": \"Blackboard bold font package\",\n    \"documentation\": \"https://ctan.org/pkg/dblfont\"\n  },\n  \"dcolumn\": {\n    \"command\": \"dcolumn\",\n    \"detail\": \"Align on the decimal point of numbers in tabular columns\",\n    \"documentation\": \"https://ctan.org/pkg/dcolumn\"\n  },\n  \"dcounter\": {\n    \"command\": \"dcounter\",\n    \"detail\": \"Support dynamic counters\",\n    \"documentation\": \"https://ctan.org/pkg/dcounter\"\n  },\n  \"dcpic\": {\n    \"command\": \"dcpic\",\n    \"detail\": \"Commutative diagrams in a LaTeX and TeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/dcpic\"\n  },\n  \"ddphonism\": {\n    \"command\": \"ddphonism\",\n    \"detail\": \"Dodecaphonic diagrams: twelve-tone matrices, clock diagrams, etc\",\n    \"documentation\": \"https://ctan.org/pkg/ddphonism\"\n  },\n  \"decimal\": {\n    \"command\": \"decimal\",\n    \"detail\": \"LaTeX package for the English raised decimal point\",\n    \"documentation\": \"https://ctan.org/pkg/decimal\"\n  },\n  \"decision-table\": {\n    \"command\": \"decision-table\",\n    \"detail\": \"An easy way to create Decision Model and Notation decision tables\",\n    \"documentation\": \"https://ctan.org/pkg/decision-table\"\n  },\n  \"decorule\": {\n    \"command\": \"decorule\",\n    \"detail\": \"Decorative swelled rule using font character\",\n    \"documentation\": \"https://ctan.org/pkg/decorule\"\n  },\n  \"dejavu\": {\n    \"command\": \"dejavu\",\n    \"detail\": \"LaTeX support for the DejaVu fonts\",\n    \"documentation\": \"https://ctan.org/pkg/dejavu\"\n  },\n  \"dejavu-otf\": {\n    \"command\": \"dejavu-otf\",\n    \"detail\": \"Support for the ttf and otf DejaVu fonts\",\n    \"documentation\": \"https://ctan.org/pkg/dejavu-otf\"\n  },\n  \"delarray\": {\n    \"command\": \"delarray\",\n    \"detail\": \"Delimiters for arrays\",\n    \"documentation\": \"https://ctan.org/pkg/delarray\"\n  },\n  \"delim\": {\n    \"command\": \"delim\",\n    \"detail\": \"Simplify typesetting mathematical delimiters\",\n    \"documentation\": \"https://ctan.org/pkg/delim\"\n  },\n  \"delimseasy\": {\n    \"command\": \"delimseasy\",\n    \"detail\": \"Delimiter commands that are easy to use and resize\",\n    \"documentation\": \"https://ctan.org/pkg/delimseasy\"\n  },\n  \"delimset\": {\n    \"command\": \"delimset\",\n    \"detail\": \"Typeset and declare sets of delimiters with convenient size control\",\n    \"documentation\": \"https://ctan.org/pkg/delimset\"\n  },\n  \"delimtxt\": {\n    \"command\": \"delimtxt\",\n    \"detail\": \"Read and parse text tables\",\n    \"documentation\": \"https://ctan.org/pkg/delimtxt\"\n  },\n  \"denisbdoc\": {\n    \"command\": \"denisbdoc\",\n    \"detail\": \"A personal dirty package for documenting packages\",\n    \"documentation\": \"https://ctan.org/pkg/denisbdoc\"\n  },\n  \"derivative\": {\n    \"command\": \"derivative\",\n    \"detail\": \"Nice and easy derivatives\",\n    \"documentation\": \"https://ctan.org/pkg/derivative\"\n  },\n  \"desclist\": {\n    \"command\": \"desclist\",\n    \"detail\": \"Extended “description” lists\",\n    \"documentation\": \"https://ctan.org/pkg/desclist\"\n  },\n  \"devanagari\": {\n    \"command\": \"devanagari\",\n    \"detail\": \"Typeset Devanagari\",\n    \"documentation\": \"https://ctan.org/pkg/devanagari\"\n  },\n  \"dhua\": {\n    \"command\": \"dhua\",\n    \"detail\": \"German abbreviations using thin space\",\n    \"documentation\": \"https://ctan.org/pkg/dhua\"\n  },\n  \"diadia\": {\n    \"command\": \"diadia\",\n    \"detail\": \"Package to keep a diabetes diary\",\n    \"documentation\": \"https://ctan.org/pkg/diadia\"\n  },\n  \"diagbox\": {\n    \"command\": \"diagbox\",\n    \"detail\": \"Table heads with diagonal lines\",\n    \"documentation\": \"https://ctan.org/pkg/diagbox\"\n  },\n  \"diagmac2\": {\n    \"command\": \"diagmac2\",\n    \"detail\": \"Diagram macros, using pict2e\",\n    \"documentation\": \"https://ctan.org/pkg/diagmac2\"\n  },\n  \"diagnose\": {\n    \"command\": \"diagnose\",\n    \"detail\": \"A diagnostic tool for a TeX installation\",\n    \"documentation\": \"https://ctan.org/pkg/diagnose\"\n  },\n  \"dialogue\": {\n    \"command\": \"dialogue\",\n    \"detail\": \"Quote short scripted dialogue in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/dialogue\"\n  },\n  \"dichokey\": {\n    \"command\": \"dichokey\",\n    \"detail\": \"Construct dichotomous identification keys\",\n    \"documentation\": \"https://ctan.org/pkg/dichokey\"\n  },\n  \"dictsym\": {\n    \"command\": \"dictsym\",\n    \"detail\": \"DictSym font and macro package\",\n    \"documentation\": \"https://ctan.org/pkg/dictsym\"\n  },\n  \"diffcoeff\": {\n    \"command\": \"diffcoeff\",\n    \"detail\": \"Write differential coefficients easily and consistently\",\n    \"documentation\": \"https://ctan.org/pkg/diffcoeff\"\n  },\n  \"digiconfigs\": {\n    \"command\": \"digiconfigs\",\n    \"detail\": \"Writing \\\"configurations\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/digiconfigs\"\n  },\n  \"dijkstra\": {\n    \"command\": \"dijkstra\",\n    \"detail\": \"Dijkstra algorithm for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/dijkstra\"\n  },\n  \"dimnum\": {\n    \"command\": \"dimnum\",\n    \"detail\": \"Commands for dimensionless numbers\",\n    \"documentation\": \"https://ctan.org/pkg/dimnum\"\n  },\n  \"dinbrief\": {\n    \"command\": \"dinbrief\",\n    \"detail\": \"German letter DIN style\",\n    \"documentation\": \"https://ctan.org/pkg/dinbrief\"\n  },\n  \"dingbat\": {\n    \"command\": \"dingbat\",\n    \"detail\": \"Two dingbat symbol fonts\",\n    \"documentation\": \"https://ctan.org/pkg/dingbat\"\n  },\n  \"directory\": {\n    \"command\": \"directory\",\n    \"detail\": \"An address book using BibTeX\",\n    \"documentation\": \"https://ctan.org/pkg/directory\"\n  },\n  \"dirtree\": {\n    \"command\": \"dirtree\",\n    \"detail\": \"Display trees in the style of windows explorer\",\n    \"documentation\": \"https://ctan.org/pkg/dirtree\"\n  },\n  \"dirtytalk\": {\n    \"command\": \"dirtytalk\",\n    \"detail\": \"A package to typeset quotations easier\",\n    \"documentation\": \"https://ctan.org/pkg/dirtytalk\"\n  },\n  \"ditaa\": {\n    \"command\": \"ditaa\",\n    \"detail\": \"Use ditaa diagrams within LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/ditaa\"\n  },\n  \"dk-bib\": {\n    \"command\": \"dk-bib\",\n    \"detail\": \"Danish variants of standard BibTeX styles\",\n    \"documentation\": \"https://ctan.org/pkg/dk-bib\"\n  },\n  \"dnaseq\": {\n    \"command\": \"dnaseq\",\n    \"detail\": \"Format DNA base sequences\",\n    \"documentation\": \"https://ctan.org/pkg/dnaseq\"\n  },\n  \"doafter\": {\n    \"command\": \"doafter\",\n    \"detail\": \"Do things after a group\",\n    \"documentation\": \"https://ctan.org/pkg/doafter\"\n  },\n  \"doc\": {\n    \"command\": \"doc\",\n    \"detail\": \"Format LaTeX documentation\",\n    \"documentation\": \"https://ctan.org/pkg/doc\"\n  },\n  \"doclicense\": {\n    \"command\": \"doclicense\",\n    \"detail\": \"Support for putting documents under a license\",\n    \"documentation\": \"https://ctan.org/pkg/doclicense\"\n  },\n  \"docmfp\": {\n    \"command\": \"docmfp\",\n    \"detail\": \"Document non-LaTeX code\",\n    \"documentation\": \"https://ctan.org/pkg/docmfp\"\n  },\n  \"docmute\": {\n    \"command\": \"docmute\",\n    \"detail\": \"Input files ignoring LaTeX preamble, etc\",\n    \"documentation\": \"https://ctan.org/pkg/docmute\"\n  },\n  \"doctools\": {\n    \"command\": \"doctools\",\n    \"detail\": \"Tools for the documentation of LaTeX code\",\n    \"documentation\": \"https://ctan.org/pkg/doctools\"\n  },\n  \"documentation\": {\n    \"command\": \"documentation\",\n    \"detail\": \"Documentation support for C, Java and assembler code\",\n    \"documentation\": \"https://ctan.org/pkg/documentation\"\n  },\n  \"docutils\": {\n    \"command\": \"docutils\",\n    \"detail\": \"Helper commands and element definitions for Docutils LaTeX output\",\n    \"documentation\": \"https://ctan.org/pkg/docutils\"\n  },\n  \"doi\": {\n    \"command\": \"doi\",\n    \"detail\": \"Create correct hyperlinks for DOI numbers\",\n    \"documentation\": \"https://ctan.org/pkg/doi\"\n  },\n  \"doipubmed\": {\n    \"command\": \"doipubmed\",\n    \"detail\": \"Special commands for use in bibliographies\",\n    \"documentation\": \"https://ctan.org/pkg/doipubmed\"\n  },\n  \"domitian\": {\n    \"command\": \"domitian\",\n    \"detail\": \"Drop-in replacement for Palatino\",\n    \"documentation\": \"https://ctan.org/pkg/domitian\"\n  },\n  \"dot2texi\": {\n    \"command\": \"dot2texi\",\n    \"detail\": \"Create graphs within LaTeX using the dot2tex tool\",\n    \"documentation\": \"https://ctan.org/pkg/dot2texi\"\n  },\n  \"dotarrow\": {\n    \"command\": \"DotArrow\",\n    \"detail\": \"Extendable dotted arrows\",\n    \"documentation\": \"https://ctan.org/pkg/dotarrow\"\n  },\n  \"dotlessi\": {\n    \"command\": \"dotlessi\",\n    \"detail\": \"Provides dotless i’s and j’s for use in any math font\",\n    \"documentation\": \"https://ctan.org/pkg/dotlessi\"\n  },\n  \"dotlessj\": {\n    \"command\": \"dotlessj\",\n    \"detail\": \"Generates a dot-less j\",\n    \"documentation\": \"https://ctan.org/pkg/dotlessj\"\n  },\n  \"dotseqn\": {\n    \"command\": \"dotseqn\",\n    \"detail\": \"Flush left equations with dotted leaders to the numbers\",\n    \"documentation\": \"https://ctan.org/pkg/dotseqn\"\n  },\n  \"dottex\": {\n    \"command\": \"dottex\",\n    \"detail\": \"Use dot code in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/dottex\"\n  },\n  \"dowith\": {\n    \"command\": \"dowith\",\n    \"detail\": \"Apply a command to a list of items\",\n    \"documentation\": \"https://ctan.org/pkg/dowith\"\n  },\n  \"download\": {\n    \"command\": \"download\",\n    \"detail\": \"Allow LaTeX to download files using an external process\",\n    \"documentation\": \"https://ctan.org/pkg/download\"\n  },\n  \"dox\": {\n    \"command\": \"dox\",\n    \"detail\": \"Extend the doc package\",\n    \"documentation\": \"https://ctan.org/pkg/dox\"\n  },\n  \"dozenal\": {\n    \"command\": \"dozenal\",\n    \"detail\": \"Typeset documents using base twelve numbering (also called “dozenal”)\",\n    \"documentation\": \"https://ctan.org/pkg/dozenal\"\n  },\n  \"dpcircling\": {\n    \"command\": \"DPcircling\",\n    \"detail\": \"Decorated text boxes using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/dpcircling\"\n  },\n  \"dpfloat\": {\n    \"command\": \"dpfloat\",\n    \"detail\": \"Support for double-page floats\",\n    \"documentation\": \"https://ctan.org/pkg/dpfloat\"\n  },\n  \"dprogress\": {\n    \"command\": \"dprogress\",\n    \"detail\": \"LaTeX-relevant log information for debugging\",\n    \"documentation\": \"https://ctan.org/pkg/dprogress\"\n  },\n  \"drac\": {\n    \"command\": \"drac\",\n    \"detail\": \"Declare active character substitution, robustly\",\n    \"documentation\": \"https://ctan.org/pkg/drac\"\n  },\n  \"draftcopy\": {\n    \"command\": \"draftcopy\",\n    \"detail\": \"Identify draft copies\",\n    \"documentation\": \"https://ctan.org/pkg/draftcopy\"\n  },\n  \"draftfigure\": {\n    \"command\": \"draftfigure\",\n    \"detail\": \"Replace figures with a white box and additional features\",\n    \"documentation\": \"https://ctan.org/pkg/draftfigure\"\n  },\n  \"draftwatermark\": {\n    \"command\": \"draftwatermark\",\n    \"detail\": \"Put a grey textual watermark on document pages\",\n    \"documentation\": \"https://ctan.org/pkg/draftwatermark\"\n  },\n  \"dramatist\": {\n    \"command\": \"dramatist\",\n    \"detail\": \"Typeset dramas, both in verse and in prose\",\n    \"documentation\": \"https://ctan.org/pkg/dramatist\"\n  },\n  \"dratex\": {\n    \"command\": \"DraTex\",\n    \"detail\": \"General drawing macros\",\n    \"documentation\": \"https://ctan.org/pkg/dratex\"\n  },\n  \"drawmatrix\": {\n    \"command\": \"drawmatrix\",\n    \"detail\": \"Draw visual representations of matrices in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/drawmatrix\"\n  },\n  \"drawstack\": {\n    \"command\": \"drawstack\",\n    \"detail\": \"Draw execution stacks\",\n    \"documentation\": \"https://ctan.org/pkg/drawstack\"\n  },\n  \"drcaps\": {\n    \"command\": \"drcaps\",\n    \"detail\": \"Simple dropped capitals\",\n    \"documentation\": \"https://ctan.org/pkg/drcaps\"\n  },\n  \"drftcite\": {\n    \"command\": \"drftcite\",\n    \"detail\": \"Print the bibliography in \\\"draft\\\" mode\",\n    \"documentation\": \"https://ctan.org/pkg/drftcite\"\n  },\n  \"drm\": {\n    \"command\": \"drm\",\n    \"detail\": \"A complete family of fonts written in Metafont\",\n    \"documentation\": \"https://ctan.org/pkg/drm\"\n  },\n  \"droid\": {\n    \"command\": \"droid\",\n    \"detail\": \"LaTeX support for the Droid font families\",\n    \"documentation\": \"https://ctan.org/pkg/droid\"\n  },\n  \"drs\": {\n    \"command\": \"drs\",\n    \"detail\": \"Typeset Discourse Representation Structures (DRS)\",\n    \"documentation\": \"https://ctan.org/pkg/drs\"\n  },\n  \"dsptricks\": {\n    \"command\": \"dsptricks\",\n    \"detail\": \"Macros for Digital Signal Processing plots\",\n    \"documentation\": \"https://ctan.org/pkg/dsptricks\"\n  },\n  \"dsserif\": {\n    \"command\": \"dsserif\",\n    \"detail\": \"A double-struck serifed font for mathematical use\",\n    \"documentation\": \"https://ctan.org/pkg/dsserif\"\n  },\n  \"dtxdescribe\": {\n    \"command\": \"dtxdescribe\",\n    \"detail\": \"Describe additional object types in dtx source files\",\n    \"documentation\": \"https://ctan.org/pkg/dtxdescribe\"\n  },\n  \"ducksay\": {\n    \"command\": \"ducksay\",\n    \"detail\": \"Draw ASCII art of animals saying a specified message\",\n    \"documentation\": \"https://ctan.org/pkg/ducksay\"\n  },\n  \"duckuments\": {\n    \"command\": \"duckuments\",\n    \"detail\": \"Create duckified dummy content\",\n    \"documentation\": \"https://ctan.org/pkg/duckuments\"\n  },\n  \"duerer\": {\n    \"command\": \"duerer\",\n    \"detail\": \"Computer Duerer fonts\",\n    \"documentation\": \"https://ctan.org/pkg/duerer\"\n  },\n  \"duotenzor\": {\n    \"command\": \"duotenzor\",\n    \"detail\": \"Drawing package for circuit and duotensor diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/duotenzor\"\n  },\n  \"duplicat\": {\n    \"command\": \"duplicat\",\n    \"detail\": \"Make duplicate page numbers distinct\",\n    \"documentation\": \"https://ctan.org/pkg/duplicat\"\n  },\n  \"dutchcal\": {\n    \"command\": \"dutchcal\",\n    \"detail\": \"A reworking of ESSTIX13, adding a bold version\",\n    \"documentation\": \"https://ctan.org/pkg/dutchcal\"\n  },\n  \"dvgloss\": {\n    \"command\": \"dvgloss\",\n    \"detail\": \"Facilities for setting interlinear glossed text\",\n    \"documentation\": \"https://ctan.org/pkg/dvgloss\"\n  },\n  \"dvipaste\": {\n    \"command\": \"dvipaste\",\n    \"detail\": \"DVI manipulation\",\n    \"documentation\": \"https://ctan.org/pkg/dvipaste\"\n  },\n  \"dvipscol\": {\n    \"command\": \"dvipscol\",\n    \"detail\": \"Alter the usage of the dvips colour stack\",\n    \"documentation\": \"https://ctan.org/pkg/dvipscol\"\n  },\n  \"dynamicnumber\": {\n    \"command\": \"dynamicnumber\",\n    \"detail\": \"\\n    Dynamically typeset numbers and values in LaTeX through “symbolic links”\\n  \",\n    \"documentation\": \"https://ctan.org/pkg/dynamicnumber\"\n  },\n  \"dynblocks\": {\n    \"command\": \"dynblocks\",\n    \"detail\": \"A simple way to create dynamic blocks for Beamer\",\n    \"documentation\": \"https://ctan.org/pkg/dynblocks\"\n  },\n  \"dynkin-diagrams\": {\n    \"command\": \"dynkin-diagrams\",\n    \"detail\": \"Draw Dynkin, Coxeter, and Satake diagrams using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/dynkin-diagrams\"\n  },\n  \"dyntree\": {\n    \"command\": \"dyntree\",\n    \"detail\": \"Construct Dynkin tree diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/dyntree\"\n  },\n  \"ean13isbn\": {\n    \"command\": \"ean13isbn\",\n    \"detail\": \"Print EAN13 for ISBN\",\n    \"documentation\": \"https://ctan.org/pkg/ean13isbn\"\n  },\n  \"easy\": {\n    \"command\": \"easy\",\n    \"detail\": \"A collection of easy-to-use macros\",\n    \"documentation\": \"https://ctan.org/pkg/easy\"\n  },\n  \"easy-todo\": {\n    \"command\": \"easy-todo\",\n    \"detail\": \"To-do notes in a document\",\n    \"documentation\": \"https://ctan.org/pkg/easy-todo\"\n  },\n  \"easybib\": {\n    \"command\": \"easybib\",\n    \"detail\": \"Simple syntax for custom bibliographies\",\n    \"documentation\": \"https://ctan.org/pkg/easybib\"\n  },\n  \"easybmat\": {\n    \"command\": \"easybmat\",\n    \"detail\": \"Block matrices\",\n    \"documentation\": \"https://ctan.org/pkg/easybmat\"\n  },\n  \"easyeqn\": {\n    \"command\": \"easyeqn\",\n    \"detail\": \"A simple package for writing equations\",\n    \"documentation\": \"https://ctan.org/pkg/easyeqn\"\n  },\n  \"easyfig\": {\n    \"command\": \"easyfig\",\n    \"detail\": \"Simplifying the use of common figures\",\n    \"documentation\": \"https://ctan.org/pkg/easyfig\"\n  },\n  \"easyfloats\": {\n    \"command\": \"easyfloats\",\n    \"detail\": \"An easier interface to insert figures, tables and other objects in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/easyfloats\"\n  },\n  \"easyformat\": {\n    \"command\": \"easyformat\",\n    \"detail\": \"Easily add boldface, italics and smallcaps\",\n    \"documentation\": \"https://ctan.org/pkg/easyformat\"\n  },\n  \"easylist\": {\n    \"command\": \"easylist\",\n    \"detail\": \"Lists using a single active character\",\n    \"documentation\": \"https://ctan.org/pkg/easylist\"\n  },\n  \"easymat\": {\n    \"command\": \"easymat\",\n    \"detail\": \"A simple package for writing matrices\",\n    \"documentation\": \"https://ctan.org/pkg/easymat\"\n  },\n  \"easyreview\": {\n    \"command\": \"easyReview\",\n    \"detail\": \"Package to  provide a way to review (or perform editorial process) in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/easyreview\"\n  },\n  \"easytable\": {\n    \"command\": \"easytable\",\n    \"detail\": \"A simple package for writing tables\",\n    \"documentation\": \"https://ctan.org/pkg/easytable\"\n  },\n  \"easyvector\": {\n    \"command\": \"easyvector\",\n    \"detail\": \"Write vectors in a C-like fashion\",\n    \"documentation\": \"https://ctan.org/pkg/easyvector\"\n  },\n  \"ebezier\": {\n    \"command\": \"ebezier\",\n    \"detail\": \"Device independent picture environment enhancement\",\n    \"documentation\": \"https://ctan.org/pkg/ebezier\"\n  },\n  \"ebgaramond\": {\n    \"command\": \"ebgaramond\",\n    \"detail\": \"LaTeX support for EBGaramond fonts\",\n    \"documentation\": \"https://ctan.org/pkg/ebgaramond\"\n  },\n  \"ebgaramond-maths\": {\n    \"command\": \"ebgaramond-maths\",\n    \"detail\": \"LaTeX support for EBGaramond fonts in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/ebgaramond-maths\"\n  },\n  \"ebook\": {\n    \"command\": \"ebook\",\n    \"detail\": \"Helps creating an ebook by providing an ebook class\",\n    \"documentation\": \"https://ctan.org/pkg/ebook\"\n  },\n  \"ebproof\": {\n    \"command\": \"ebproof\",\n    \"detail\": \"Formal proofs in the style of sequent calculus\",\n    \"documentation\": \"https://ctan.org/pkg/ebproof\"\n  },\n  \"ecclesiastic\": {\n    \"command\": \"ecclesiastic\",\n    \"detail\": \"Typesetting Ecclesiastic Latin\",\n    \"documentation\": \"https://ctan.org/pkg/ecclesiastic\"\n  },\n  \"ecgdraw\": {\n    \"command\": \"ecgdraw\",\n    \"detail\": \"Draws electrocardiograms (ECG)\",\n    \"documentation\": \"https://ctan.org/pkg/ecgdraw\"\n  },\n  \"ecltree\": {\n    \"command\": \"ecltree\",\n    \"detail\": \"Trees using epic and eepic macros\",\n    \"documentation\": \"https://ctan.org/pkg/ecltree\"\n  },\n  \"eco\": {\n    \"command\": \"eco\",\n    \"detail\": \"Oldstyle numerals using EC fonts\",\n    \"documentation\": \"https://ctan.org/pkg/eco\"\n  },\n  \"econlipsum\": {\n    \"command\": \"econlipsum\",\n    \"detail\": \"Generate sentences from economic articles\",\n    \"documentation\": \"https://ctan.org/pkg/econlipsum\"\n  },\n  \"econometrics\": {\n    \"command\": \"econometrics\",\n    \"detail\": \"Defines some commands that simplify mathematic notation in economic and econometric writing\",\n    \"documentation\": \"https://ctan.org/pkg/econometrics\"\n  },\n  \"ed\": {\n    \"command\": \"ed\",\n    \"detail\": \"Editorial Notes for LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/ed\"\n  },\n  \"edfnotes\": {\n    \"command\": \"edfnotes\",\n    \"detail\": \"Critical annotations to footnotes with ednotes\",\n    \"documentation\": \"https://ctan.org/pkg/edfnotes\"\n  },\n  \"edichokey\": {\n    \"command\": \"edichokey\",\n    \"detail\": \"Typeset dichotomous identification keys\",\n    \"documentation\": \"https://ctan.org/pkg/edichokey\"\n  },\n  \"edmargin\": {\n    \"command\": \"edmargin\",\n    \"detail\": \"Multiple series of endnotes for critical editions\",\n    \"documentation\": \"https://ctan.org/pkg/edmargin\"\n  },\n  \"ednotes\": {\n    \"command\": \"ednotes\",\n    \"detail\": \"Typeset scholarly editions\",\n    \"documentation\": \"https://ctan.org/pkg/ednotes\"\n  },\n  \"eemeir\": {\n    \"command\": \"eemeir\",\n    \"detail\": \"Adjust the gender of words in a document\",\n    \"documentation\": \"https://ctan.org/pkg/eemeir\"\n  },\n  \"eepic\": {\n    \"command\": \"eepic\",\n    \"detail\": \"Extensions to epic and the LaTeX drawing tools\",\n    \"documentation\": \"https://ctan.org/pkg/eepic\"\n  },\n  \"efbox\": {\n    \"command\": \"efbox\",\n    \"detail\": \"Extension of \\\\fbox, with controllable frames and colours\",\n    \"documentation\": \"https://ctan.org/pkg/efbox\"\n  },\n  \"egameps\": {\n    \"command\": \"egameps\",\n    \"detail\": \"LaTeX package for typesetting extensive games\",\n    \"documentation\": \"https://ctan.org/pkg/egameps\"\n  },\n  \"egothic\": {\n    \"command\": \"egothic\",\n    \"detail\": \"Early Gothic manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/egothic\"\n  },\n  \"egplot\": {\n    \"command\": \"egplot\",\n    \"detail\": \"Encapsulate Gnuplot sources in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/egplot\"\n  },\n  \"ehhline\": {\n    \"command\": \"ehhline\",\n    \"detail\": \"Extend the \\\\hhline command\",\n    \"documentation\": \"https://ctan.org/pkg/ehhline\"\n  },\n  \"eiad\": {\n    \"command\": \"eiad\",\n    \"detail\": \"Traditional style Irish fonts\",\n    \"documentation\": \"https://ctan.org/pkg/eiad\"\n  },\n  \"ekaia\": {\n    \"command\": \"ekaia\",\n    \"detail\": \"Article format for publishing the Basque Country Science and Technology Journal \\\"Ekaia\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/ekaia\"\n  },\n  \"ekdosis\": {\n    \"command\": \"ekdosis\",\n    \"detail\": \"Typesetting TEI-xml compliant Critical Editions\",\n    \"documentation\": \"https://ctan.org/pkg/ekdosis\"\n  },\n  \"eledform\": {\n    \"command\": \"eledform\",\n    \"detail\": \"Define textual variants\",\n    \"documentation\": \"https://ctan.org/pkg/eledform\"\n  },\n  \"eledmac\": {\n    \"command\": \"eledmac\",\n    \"detail\": \"Typeset scholarly editions\",\n    \"documentation\": \"https://ctan.org/pkg/eledmac\"\n  },\n  \"eledpar\": {\n    \"command\": \"eledpar\",\n    \"detail\": \"Typeset scholarly editions in parallel texts\",\n    \"documentation\": \"https://ctan.org/pkg/eledpar\"\n  },\n  \"elements\": {\n    \"command\": \"elements\",\n    \"detail\": \"Provides properties of chemical elements\",\n    \"documentation\": \"https://ctan.org/pkg/elements\"\n  },\n  \"ellipse\": {\n    \"command\": \"ellipse\",\n    \"detail\": \"Draw ellipses and elliptical arcs using the standard LaTeX2e picture environment\",\n    \"documentation\": \"https://ctan.org/pkg/ellipse\"\n  },\n  \"ellipsis\": {\n    \"command\": \"ellipsis\",\n    \"detail\": \"Fix uneven spacing around ellipses in LaTeX text mode\",\n    \"documentation\": \"https://ctan.org/pkg/ellipsis\"\n  },\n  \"elmath\": {\n    \"command\": \"elmath\",\n    \"detail\": \"Mathematics in Greek texts\",\n    \"documentation\": \"https://ctan.org/pkg/elmath\"\n  },\n  \"elocalloc\": {\n    \"command\": \"elocalloc\",\n    \"detail\": \"Local allocation macros for LaTeX 2015\",\n    \"documentation\": \"https://ctan.org/pkg/elocalloc\"\n  },\n  \"elzcards\": {\n    \"command\": \"elzcards\",\n    \"detail\": \"Typeset business cards, index cards and flash cards easily\",\n    \"documentation\": \"https://ctan.org/pkg/elzcards\"\n  },\n  \"emarks\": {\n    \"command\": \"emarks\",\n    \"detail\": \"Named mark registers with e-TeX\",\n    \"documentation\": \"https://ctan.org/pkg/emarks\"\n  },\n  \"embedall\": {\n    \"command\": \"embedall\",\n    \"detail\": \"Embed source files into the generated PDF\",\n    \"documentation\": \"https://ctan.org/pkg/embedall\"\n  },\n  \"embedfile\": {\n    \"command\": \"embedfile\",\n    \"detail\": \"Embed files into PDF\",\n    \"documentation\": \"https://ctan.org/pkg/embedfile\"\n  },\n  \"embrac\": {\n    \"command\": \"embrac\",\n    \"detail\": \"Upright brackets in emphasised text\",\n    \"documentation\": \"https://ctan.org/pkg/embrac\"\n  },\n  \"emf\": {\n    \"command\": \"emf\",\n    \"detail\": \"Support for the EMF symbol\",\n    \"documentation\": \"https://ctan.org/pkg/emf\"\n  },\n  \"emoji\": {\n    \"command\": \"emoji\",\n    \"detail\": \"Emoji support in (Lua)LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/emoji\"\n  },\n  \"emojicite\": {\n    \"command\": \"emojicite\",\n    \"detail\": \"Add emojis to citations\",\n    \"documentation\": \"https://ctan.org/pkg/emojicite\"\n  },\n  \"emp\": {\n    \"command\": \"emp\",\n    \"detail\": \"\\\"Encapsulate\\\" MetaPost figures in a document\",\n    \"documentation\": \"https://ctan.org/pkg/emp\"\n  },\n  \"empheq\": {\n    \"command\": \"empheq\",\n    \"detail\": \"EMPHasizing EQuations\",\n    \"documentation\": \"https://ctan.org/pkg/empheq\"\n  },\n  \"emptypage\": {\n    \"command\": \"emptypage\",\n    \"detail\": \"Make empty pages really empty\",\n    \"documentation\": \"https://ctan.org/pkg/emptypage\"\n  },\n  \"encxvlna\": {\n    \"command\": \"encxvlna\",\n    \"detail\": \"Insert nonbreakable spaces, using encTeX\",\n    \"documentation\": \"https://ctan.org/pkg/encxvlna\"\n  },\n  \"endfloat\": {\n    \"command\": \"endfloat\",\n    \"detail\": \"Move floats to the end, leaving markers where they belong\",\n    \"documentation\": \"https://ctan.org/pkg/endfloat\"\n  },\n  \"endheads\": {\n    \"command\": \"endheads\",\n    \"detail\": \"Running headers of the form \\\"Notes to pp.xx-yy\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/endheads\"\n  },\n  \"endiagram\": {\n    \"command\": \"endiagram\",\n    \"detail\": \"Easy creation of potential energy curve diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/endiagram\"\n  },\n  \"endnotes\": {\n    \"command\": \"endnotes\",\n    \"detail\": \"Place footnotes at the end\",\n    \"documentation\": \"https://ctan.org/pkg/endnotes\"\n  },\n  \"endnotes-hy\": {\n    \"command\": \"endnotes-hy\",\n    \"detail\": \"Patches the endnotes package to create hypertext links to the correct anchors\",\n    \"documentation\": \"https://ctan.org/pkg/endnotes-hy\"\n  },\n  \"endnotesj\": {\n    \"command\": \"endnotesj\",\n    \"detail\": \"Japanese-style endnotes\",\n    \"documentation\": \"https://ctan.org/pkg/endnotesj\"\n  },\n  \"endofproofwd\": {\n    \"command\": \"endofproofwd\",\n    \"detail\": \"An “end of proof” sign\",\n    \"documentation\": \"https://ctan.org/pkg/endofproofwd\"\n  },\n  \"engord\": {\n    \"command\": \"engord\",\n    \"detail\": \"Converts numbers to English ordinal numbers\",\n    \"documentation\": \"https://ctan.org/pkg/engord\"\n  },\n  \"engpron\": {\n    \"command\": \"engpron\",\n    \"detail\": \"Helps to type the pronunciation of English words\",\n    \"documentation\": \"https://ctan.org/pkg/engpron\"\n  },\n  \"engrec\": {\n    \"command\": \"engrec\",\n    \"detail\": \"Enumerate with lower- or uppercase Greek letters\",\n    \"documentation\": \"https://ctan.org/pkg/engrec\"\n  },\n  \"engtlc\": {\n    \"command\": \"engtlc\",\n    \"detail\": \"Support for users in Telecommunications Engineering\",\n    \"documentation\": \"https://ctan.org/pkg/engtlc\"\n  },\n  \"enigma\": {\n    \"command\": \"enigma\",\n    \"detail\": \"Encrypt documents with a three rotor Enigma\",\n    \"documentation\": \"https://ctan.org/pkg/enigma\"\n  },\n  \"enotez\": {\n    \"command\": \"enotez\",\n    \"detail\": \"Support for end-notes\",\n    \"documentation\": \"https://ctan.org/pkg/enotez\"\n  },\n  \"enparen\": {\n    \"command\": \"enparen\",\n    \"detail\": \"Consistent nested brackets\",\n    \"documentation\": \"https://ctan.org/pkg/enparen\"\n  },\n  \"enumerate\": {\n    \"command\": \"enumerate\",\n    \"detail\": \"Enumerate with redefinable labels\",\n    \"documentation\": \"https://ctan.org/pkg/enumerate\"\n  },\n  \"enumitem\": {\n    \"command\": \"enumitem\",\n    \"detail\": \"Control layout of itemize, enumerate, description\",\n    \"documentation\": \"https://ctan.org/pkg/enumitem\"\n  },\n  \"enumitem-zref\": {\n    \"command\": \"enumitem-zref\",\n    \"detail\": \"Extended references to items for enumitem package\",\n    \"documentation\": \"https://ctan.org/pkg/enumitem-zref\"\n  },\n  \"envbig\": {\n    \"command\": \"envbig\",\n    \"detail\": \"Printing addresses on envelopes\",\n    \"documentation\": \"https://ctan.org/pkg/envbig\"\n  },\n  \"environ\": {\n    \"command\": \"environ\",\n    \"detail\": \"A new interface for environments in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/environ\"\n  },\n  \"envlab\": {\n    \"command\": \"envlab\",\n    \"detail\": \"Addresses on envelopes or mailing labels\",\n    \"documentation\": \"https://ctan.org/pkg/envlab\"\n  },\n  \"envmath\": {\n    \"command\": \"envmath\",\n    \"detail\": \"Maths commands and environments\",\n    \"documentation\": \"https://ctan.org/pkg/envmath\"\n  },\n  \"eolgrab\": {\n    \"command\": \"eolgrab\",\n    \"detail\": \"Catch arguments delimited by end of line\",\n    \"documentation\": \"https://ctan.org/pkg/eolgrab\"\n  },\n  \"epic\": {\n    \"command\": \"epic\",\n    \"detail\": \"Enhance LaTeX picture mode\",\n    \"documentation\": \"https://ctan.org/pkg/epic\"\n  },\n  \"epigrafica\": {\n    \"command\": \"epigrafica\",\n    \"detail\": \"A Greek and Latin font\",\n    \"documentation\": \"https://ctan.org/pkg/epigrafica\"\n  },\n  \"epigraph\": {\n    \"command\": \"epigraph\",\n    \"detail\": \"A package for typesetting epigraphs\",\n    \"documentation\": \"https://ctan.org/pkg/epigraph\"\n  },\n  \"epigraph-keys\": {\n    \"command\": \"epigraph-keys\",\n    \"detail\": \"Epigraphs using key values\",\n    \"documentation\": \"https://ctan.org/pkg/epigraph-keys\"\n  },\n  \"epiolmec\": {\n    \"command\": \"epiolmec\",\n    \"detail\": \"Typesetting the Epi-Olmec Language\",\n    \"documentation\": \"https://ctan.org/pkg/epiolmec\"\n  },\n  \"epsdice\": {\n    \"command\": \"epsdice\",\n    \"detail\": \"A scalable dice \\\"font\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/epsdice\"\n  },\n  \"epsf\": {\n    \"command\": \"epsf\",\n    \"detail\": \"Simple macros for EPS inclusion\",\n    \"documentation\": \"https://ctan.org/pkg/epsf\"\n  },\n  \"epsfig\": {\n    \"command\": \"epsfig\",\n    \"detail\": \"Include Encapsulated PostScript in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/epsfig\"\n  },\n  \"epspdfconversion\": {\n    \"command\": \"epspdfconversion\",\n    \"detail\": \"On-the-fly conversion of EPS to PDF\",\n    \"documentation\": \"https://ctan.org/pkg/epspdfconversion\"\n  },\n  \"epstopdf\": {\n    \"command\": \"epstopdf\",\n    \"detail\": \"Convert EPS to PDF using Ghostscript\",\n    \"documentation\": \"https://ctan.org/pkg/epstopdf\"\n  },\n  \"eq-pin2corr\": {\n    \"command\": \"eq-pin2corr\",\n    \"detail\": \"Add PIN security to the “Correct” button of a quiz created by exerquiz\",\n    \"documentation\": \"https://ctan.org/pkg/eq-pin2corr\"\n  },\n  \"eqell\": {\n    \"command\": \"eqell\",\n    \"detail\": \"Sympathetically spaced ellipsis after punctuation\",\n    \"documentation\": \"https://ctan.org/pkg/eqell\"\n  },\n  \"eqexpl\": {\n    \"command\": \"eqexpl\",\n    \"detail\": \"Align explanations for formulas\",\n    \"documentation\": \"https://ctan.org/pkg/eqexpl\"\n  },\n  \"eqlist\": {\n    \"command\": \"eqlist\",\n    \"detail\": \"Description lists with equal indentation\",\n    \"documentation\": \"https://ctan.org/pkg/eqlist\"\n  },\n  \"eqnalign\": {\n    \"command\": \"eqnalign\",\n    \"detail\": \"Make eqnarray behave like align\",\n    \"documentation\": \"https://ctan.org/pkg/eqnalign\"\n  },\n  \"eqname\": {\n    \"command\": \"eqname\",\n    \"detail\": \"Name tags for equations\",\n    \"documentation\": \"https://ctan.org/pkg/eqname\"\n  },\n  \"eqnarray\": {\n    \"command\": \"eqnarray\",\n    \"detail\": \"More generalised equation arrays with numbering\",\n    \"documentation\": \"https://ctan.org/pkg/eqnarray\"\n  },\n  \"eqnnumwarn\": {\n    \"command\": \"eqnnumwarn\",\n    \"detail\": \"Modifies the amsmath equation environments to warn for a displaced equation number\",\n    \"documentation\": \"https://ctan.org/pkg/eqnnumwarn\"\n  },\n  \"eqparbox\": {\n    \"command\": \"eqparbox\",\n    \"detail\": \"Create equal-widthed parboxes\",\n    \"documentation\": \"https://ctan.org/pkg/eqparbox\"\n  },\n  \"erewhon\": {\n    \"command\": \"erewhon\",\n    \"detail\": \"Font package derived from Heuristica and Utopia\",\n    \"documentation\": \"https://ctan.org/pkg/erewhon\"\n  },\n  \"errata\": {\n    \"command\": \"errata\",\n    \"detail\": \"Error markup for LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/errata\"\n  },\n  \"erw-l3\": {\n    \"command\": \"erw-l3\",\n    \"detail\": \"Utilities built around expl3\",\n    \"documentation\": \"https://ctan.org/pkg/erw-l3\"\n  },\n  \"esami\": {\n    \"command\": \"esami\",\n    \"detail\": \"Typeset exams with scrambled questions and answers\",\n    \"documentation\": \"https://ctan.org/pkg/esami\"\n  },\n  \"esdiff\": {\n    \"command\": \"esdiff\",\n    \"detail\": \"Simplify typesetting of derivatives\",\n    \"documentation\": \"https://ctan.org/pkg/esdiff\"\n  },\n  \"esieecv\": {\n    \"command\": \"ESIEEcv\",\n    \"detail\": \"Curriculum vitae for French use\",\n    \"documentation\": \"https://ctan.org/pkg/esieecv\"\n  },\n  \"esindex\": {\n    \"command\": \"esindex\",\n    \"detail\": \"Typset index entries in Spanish documents\",\n    \"documentation\": \"https://ctan.org/pkg/esindex\"\n  },\n  \"esint\": {\n    \"command\": \"esint\",\n    \"detail\": \"Extended set of integrals for Computer Modern\",\n    \"documentation\": \"https://ctan.org/pkg/esint\"\n  },\n  \"esk\": {\n    \"command\": \"esk\",\n    \"detail\": \"Package to encapsulate Sketch files in LaTeX sources\",\n    \"documentation\": \"https://ctan.org/pkg/esk\"\n  },\n  \"eso-pic\": {\n    \"command\": \"eso-pic\",\n    \"detail\": \"Add picture commands (or backgrounds) to every page\",\n    \"documentation\": \"https://ctan.org/pkg/eso-pic\"\n  },\n  \"esrelation\": {\n    \"command\": \"esrelation\",\n    \"detail\": \"Provides a symbol set for describing relations between ordered pairs\",\n    \"documentation\": \"https://ctan.org/pkg/esrelation\"\n  },\n  \"esvect\": {\n    \"command\": \"esvect\",\n    \"detail\": \"Vector arrows\",\n    \"documentation\": \"https://ctan.org/pkg/esvect\"\n  },\n  \"etaremune\": {\n    \"command\": \"etaremune\",\n    \"detail\": \"Reverse-counting enumerate environment\",\n    \"documentation\": \"https://ctan.org/pkg/etaremune\"\n  },\n  \"etbb\": {\n    \"command\": \"ETbb\",\n    \"detail\": \"An expansion of Edward Tufte’s ET-Bembo family\",\n    \"documentation\": \"https://ctan.org/pkg/etbb\"\n  },\n  \"etex\": {\n    \"command\": \"etex\",\n    \"detail\": \"An extended version of TeX, from the NTS project\",\n    \"documentation\": \"https://ctan.org/pkg/etex\"\n  },\n  \"etexcmds\": {\n    \"command\": \"etexcmds\",\n    \"detail\": \"Avoid name clashes with e-TeX commands\",\n    \"documentation\": \"https://ctan.org/pkg/etexcmds\"\n  },\n  \"etextools\": {\n    \"command\": \"etextools\",\n    \"detail\": \"e-TeX tools for LaTeX users and package writers\",\n    \"documentation\": \"https://ctan.org/pkg/etextools\"\n  },\n  \"ethiop\": {\n    \"command\": \"ethiop\",\n    \"detail\": \"LaTeX macros and fonts for typesetting Amharic\",\n    \"documentation\": \"https://ctan.org/pkg/ethiop\"\n  },\n  \"etoc\": {\n    \"command\": \"etoc\",\n    \"detail\": \"Completely customisable TOCs\",\n    \"documentation\": \"https://ctan.org/pkg/etoc\"\n  },\n  \"etoolbox\": {\n    \"command\": \"etoolbox\",\n    \"detail\": \"e-TeX tools for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/etoolbox\"\n  },\n  \"etruscan\": {\n    \"command\": \"etruscan\",\n    \"detail\": \"Fonts for the Etruscan script\",\n    \"documentation\": \"https://ctan.org/pkg/etruscan\"\n  },\n  \"etsvthor\": {\n    \"command\": \"etsvthor\",\n    \"detail\": \"Some useful abbreviations for members of e.t.s.v. Thor\",\n    \"documentation\": \"https://ctan.org/pkg/etsvthor\"\n  },\n  \"euclideangeometry\": {\n    \"command\": \"euclideangeometry\",\n    \"detail\": \"Draw geometrical constructions\",\n    \"documentation\": \"https://ctan.org/pkg/euclideangeometry\"\n  },\n  \"euflag\": {\n    \"command\": \"euflag\",\n    \"detail\": \"A command to reproduce the flag of the European Union\",\n    \"documentation\": \"https://ctan.org/pkg/euflag\"\n  },\n  \"eukdate\": {\n    \"command\": \"eukdate\",\n    \"detail\": \"UK format dates, with weekday\",\n    \"documentation\": \"https://ctan.org/pkg/eukdate\"\n  },\n  \"euler\": {\n    \"command\": \"euler\",\n    \"detail\": \"Use AMS Euler fonts for math\",\n    \"documentation\": \"https://ctan.org/pkg/euler\"\n  },\n  \"eulerpx\": {\n    \"command\": \"eulerpx\",\n    \"detail\": \"A modern interface for the Euler math fonts\",\n    \"documentation\": \"https://ctan.org/pkg/eulerpx\"\n  },\n  \"eulervm\": {\n    \"command\": \"eulervm\",\n    \"detail\": \"Euler virtual math fonts\",\n    \"documentation\": \"https://ctan.org/pkg/eulervm\"\n  },\n  \"euro\": {\n    \"command\": \"euro\",\n    \"detail\": \"Provide Euro values for national currency amounts\",\n    \"documentation\": \"https://ctan.org/pkg/euro\"\n  },\n  \"eurosym\": {\n    \"command\": \"eurosym\",\n    \"detail\": \"Metafont and macros for Euro sign\",\n    \"documentation\": \"https://ctan.org/pkg/eurosym\"\n  },\n  \"evenpage\": {\n    \"command\": \"evenpage\",\n    \"detail\": \"Ensure that the total number of pages is even\",\n    \"documentation\": \"https://ctan.org/pkg/evenpage\"\n  },\n  \"everyhook\": {\n    \"command\": \"everyhook\",\n    \"detail\": \"Hooks for standard TeX token lists\",\n    \"documentation\": \"https://ctan.org/pkg/everyhook\"\n  },\n  \"everypage\": {\n    \"command\": \"everypage\",\n    \"detail\": \"Provide hooks to be run on every page of a document\",\n    \"documentation\": \"https://ctan.org/pkg/everypage\"\n  },\n  \"everysel\": {\n    \"command\": \"everysel\",\n    \"detail\": \"Provides hooks into \\\\selectfont\",\n    \"documentation\": \"https://ctan.org/pkg/everysel\"\n  },\n  \"everyshi\": {\n    \"command\": \"everyshi\",\n    \"detail\": \"Take action at every \\\\shipout\",\n    \"documentation\": \"https://ctan.org/pkg/everyshi\"\n  },\n  \"exam-randomizechoices\": {\n    \"command\": \"exam-randomizechoices\",\n    \"detail\": \"Randomize mc choices using the exam class\",\n    \"documentation\": \"https://ctan.org/pkg/exam-randomizechoices\"\n  },\n  \"example\": {\n    \"command\": \"example\",\n    \"detail\": \"Typeset examples for TeX courses\",\n    \"documentation\": \"https://ctan.org/pkg/example\"\n  },\n  \"examplep\": {\n    \"command\": \"examplep\",\n    \"detail\": \"Verbatim phrases and listings in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/examplep\"\n  },\n  \"exceltex\": {\n    \"command\": \"exceltex\",\n    \"detail\": \"Get data from Excel files into LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/exceltex\"\n  },\n  \"excludeonly\": {\n    \"command\": \"excludeonly\",\n    \"detail\": \"Prevent files being \\\\include-ed\",\n    \"documentation\": \"https://ctan.org/pkg/excludeonly\"\n  },\n  \"exercise\": {\n    \"command\": \"exercise\",\n    \"detail\": \"Typeset exercises, problems, etc. and their answers\",\n    \"documentation\": \"https://ctan.org/pkg/exercise\"\n  },\n  \"exercisebank\": {\n    \"command\": \"exercisebank\",\n    \"detail\": \"Creating and managing exercises, and reusing them as composed sets\",\n    \"documentation\": \"https://ctan.org/pkg/exercisebank\"\n  },\n  \"exercisepoints\": {\n    \"command\": \"exercisepoints\",\n    \"detail\": \"A LaTeX package to count exercises and points\",\n    \"documentation\": \"https://ctan.org/pkg/exercisepoints\"\n  },\n  \"exercises\": {\n    \"command\": \"exercises\",\n    \"detail\": \"\\n    Typeset exercises and solutions with automatic addition of points\\n  \",\n    \"documentation\": \"https://ctan.org/pkg/exercises\"\n  },\n  \"exesheet\": {\n    \"command\": \"exesheet\",\n    \"detail\": \"Typesetting exercise or exam sheets\",\n    \"documentation\": \"https://ctan.org/pkg/exesheet\"\n  },\n  \"exframe\": {\n    \"command\": \"exframe\",\n    \"detail\": \"Framework for exercise problems\",\n    \"documentation\": \"https://ctan.org/pkg/exframe\"\n  },\n  \"exp-testopt\": {\n    \"command\": \"exp-testopt\",\n    \"detail\": \"Expandable \\\\@testopt (and related) macros\",\n    \"documentation\": \"https://ctan.org/pkg/exp-testopt\"\n  },\n  \"expdlist\": {\n    \"command\": \"expdlist\",\n    \"detail\": \"Expanded description environments\",\n    \"documentation\": \"https://ctan.org/pkg/expdlist\"\n  },\n  \"expex\": {\n    \"command\": \"expex\",\n    \"detail\": \"Linguistic examples and glosses, with reference capabilities\",\n    \"documentation\": \"https://ctan.org/pkg/expex\"\n  },\n  \"expkv\": {\n    \"command\": \"expkv\",\n    \"detail\": \"An expandable key=val implementation\",\n    \"documentation\": \"https://ctan.org/pkg/expkv\"\n  },\n  \"expkv-cs\": {\n    \"command\": \"expkv-cs\",\n    \"detail\": \"Define expandable key=val macros using expkv\",\n    \"documentation\": \"https://ctan.org/pkg/expkv-cs\"\n  },\n  \"expkv-def\": {\n    \"command\": \"expkv-def\",\n    \"detail\": \"A key-defining frontend for expkv\",\n    \"documentation\": \"https://ctan.org/pkg/expkv-def\"\n  },\n  \"expkv-opt\": {\n    \"command\": \"expkv-opt\",\n    \"detail\": \"Parse class and package options with expkv\",\n    \"documentation\": \"https://ctan.org/pkg/expkv-opt\"\n  },\n  \"expl3\": {\n    \"command\": \"expl3\",\n    \"detail\": \"Wrapper package for experimental LaTeX3\",\n    \"documentation\": \"https://ctan.org/pkg/expl3\"\n  },\n  \"export\": {\n    \"command\": \"export\",\n    \"detail\": \"Import and export values of LaTeX registers\",\n    \"documentation\": \"https://ctan.org/pkg/export\"\n  },\n  \"exscale\": {\n    \"command\": \"exscale\",\n    \"detail\": \"Implements scaling of the 'cmex' fonts\",\n    \"documentation\": \"https://ctan.org/pkg/exscale\"\n  },\n  \"exsheets\": {\n    \"command\": \"exsheets\",\n    \"detail\": \"Create exercise sheets and exams\",\n    \"documentation\": \"https://ctan.org/pkg/exsheets\"\n  },\n  \"exsol\": {\n    \"command\": \"exsol\",\n    \"detail\": \"Exercises and solutions from the same source, into a book\",\n    \"documentation\": \"https://ctan.org/pkg/exsol\"\n  },\n  \"extarrows\": {\n    \"command\": \"extarrows\",\n    \"detail\": \"Extra Arrows beyond those provided in amsmath\",\n    \"documentation\": \"https://ctan.org/pkg/extarrows\"\n  },\n  \"extdash\": {\n    \"command\": \"extdash\",\n    \"detail\": \"A range of dash commands for compound words\",\n    \"documentation\": \"https://ctan.org/pkg/extdash\"\n  },\n  \"extpfeil\": {\n    \"command\": \"extpfeil\",\n    \"detail\": \"Extensible arrows in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/extpfeil\"\n  },\n  \"extract\": {\n    \"command\": \"extract\",\n    \"detail\": \"Extract parts of a document and write to another document\",\n    \"documentation\": \"https://ctan.org/pkg/extract\"\n  },\n  \"extsizes\": {\n    \"command\": \"extsizes\",\n    \"detail\": \"Extend the standard classes’ size options\",\n    \"documentation\": \"https://ctan.org/pkg/extsizes\"\n  },\n  \"facture-belge-simple-sans-tva\": {\n    \"command\": \"facture-belge-simple-sans-tva\",\n    \"detail\": \"Simple Belgian invoice without VAT\",\n    \"documentation\": \"https://ctan.org/pkg/facture-belge-simple-sans-tva\"\n  },\n  \"faktor\": {\n    \"command\": \"faktor\",\n    \"detail\": \"Typeset quotient structures with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/faktor\"\n  },\n  \"fancybox\": {\n    \"command\": \"fancybox\",\n    \"detail\": \"Variants of \\\\fbox and other games with boxes\",\n    \"documentation\": \"https://ctan.org/pkg/fancybox\"\n  },\n  \"fancyhdr\": {\n    \"command\": \"fancyhdr\",\n    \"detail\": \"Extensive control of page headers and footers in LaTeX2e\",\n    \"documentation\": \"https://ctan.org/pkg/fancyhdr\"\n  },\n  \"fancyheadings\": {\n    \"command\": \"fancyheadings\",\n    \"detail\": \"Legacy headings package\",\n    \"documentation\": \"https://ctan.org/pkg/fancyheadings\"\n  },\n  \"fancylabel\": {\n    \"command\": \"fancylabel\",\n    \"detail\": \"Complex labelling with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fancylabel\"\n  },\n  \"fancynum\": {\n    \"command\": \"fancynum\",\n    \"detail\": \"Typeset numbers\",\n    \"documentation\": \"https://ctan.org/pkg/fancynum\"\n  },\n  \"fancypar\": {\n    \"command\": \"fancypar\",\n    \"detail\": \"Decoration of individual paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/fancypar\"\n  },\n  \"fancyref\": {\n    \"command\": \"fancyref\",\n    \"detail\": \"A LaTeX package for fancy cross-referencing\",\n    \"documentation\": \"https://ctan.org/pkg/fancyref\"\n  },\n  \"fancytabs\": {\n    \"command\": \"fancytabs\",\n    \"detail\": \"Fancy page border tabs\",\n    \"documentation\": \"https://ctan.org/pkg/fancytabs\"\n  },\n  \"fancytooltips\": {\n    \"command\": \"fancytooltips\",\n    \"detail\": \"Include a wide range of material in PDF tooltips\",\n    \"documentation\": \"https://ctan.org/pkg/fancytooltips\"\n  },\n  \"fancyvrb\": {\n    \"command\": \"fancyvrb\",\n    \"detail\": \"Sophisticated verbatim text\",\n    \"documentation\": \"https://ctan.org/pkg/fancyvrb\"\n  },\n  \"fascicules\": {\n    \"command\": \"fascicules\",\n    \"detail\": \"Create mathematical manuals for schools\",\n    \"documentation\": \"https://ctan.org/pkg/fascicules\"\n  },\n  \"fast-diagram\": {\n    \"command\": \"fast-diagram\",\n    \"detail\": \"Easy generation of FAST diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/fast-diagram\"\n  },\n  \"fbb\": {\n    \"command\": \"fbb\",\n    \"detail\": \"A free Bembo-like font\",\n    \"documentation\": \"https://ctan.org/pkg/fbb\"\n  },\n  \"fbox\": {\n    \"command\": \"fbox\",\n    \"detail\": \"Extended \\\\fbox macro from standard LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fbox\"\n  },\n  \"fcltxdoc\": {\n    \"command\": \"fcltxdoc\",\n    \"detail\": \"Macros for use in the author's documentation\",\n    \"documentation\": \"https://ctan.org/pkg/fcltxdoc\"\n  },\n  \"fcolumn\": {\n    \"command\": \"fcolumn\",\n    \"detail\": \"Typesetting financial tables\",\n    \"documentation\": \"https://ctan.org/pkg/fcolumn\"\n  },\n  \"fdsymbol\": {\n    \"command\": \"fdsymbol\",\n    \"detail\": \"A maths symbol font\",\n    \"documentation\": \"https://ctan.org/pkg/fdsymbol\"\n  },\n  \"fenixpar\": {\n    \"command\": \"fenixpar\",\n    \"detail\": \"One-shot changes to token registers such as \\\\everypar\",\n    \"documentation\": \"https://ctan.org/pkg/fenixpar\"\n  },\n  \"fetamont\": {\n    \"command\": \"fetamont\",\n    \"detail\": \"Extended version of Knuth’s logo typeface\",\n    \"documentation\": \"https://ctan.org/pkg/fetamont\"\n  },\n  \"fetchcls\": {\n    \"command\": \"fetchcls\",\n    \"detail\": \"Fetch the current class name\",\n    \"documentation\": \"https://ctan.org/pkg/fetchcls\"\n  },\n  \"feupphdteses\": {\n    \"command\": \"feupphdteses\",\n    \"detail\": \"Typeset Engineering PhD theses at the University of Porto\",\n    \"documentation\": \"https://ctan.org/pkg/feupphdteses\"\n  },\n  \"fewerfloatpages\": {\n    \"command\": \"fewerfloatpages\",\n    \"detail\": \"Reduce the number of unnecessary float pages\",\n    \"documentation\": \"https://ctan.org/pkg/fewerfloatpages\"\n  },\n  \"feyn\": {\n    \"command\": \"feyn\",\n    \"detail\": \"A font for in-text Feynman diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/feyn\"\n  },\n  \"feynmf\": {\n    \"command\": \"feynmf\",\n    \"detail\": \"Macros and fonts for creating Feynman (and other) diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/feynmf\"\n  },\n  \"feynmp-auto\": {\n    \"command\": \"feynmp-auto\",\n    \"detail\": \"Automatic processing of feynmp graphics\",\n    \"documentation\": \"https://ctan.org/pkg/feynmp-auto\"\n  },\n  \"ffcode\": {\n    \"command\": \"ffcode\",\n    \"detail\": \"Fixed-font code blocks formatted nicely\",\n    \"documentation\": \"https://ctan.org/pkg/ffcode\"\n  },\n  \"fge\": {\n    \"command\": \"fge\",\n    \"detail\": \"A font for Frege's Grundgesetze der Arithmetik\",\n    \"documentation\": \"https://ctan.org/pkg/fge\"\n  },\n  \"fgruler\": {\n    \"command\": \"fgruler\",\n    \"detail\": \"Draw rulers on the foreground or in the text\",\n    \"documentation\": \"https://ctan.org/pkg/fgruler\"\n  },\n  \"fibnum\": {\n    \"command\": \"fibnum\",\n    \"detail\": \"Generate Fibonacci numbers\",\n    \"documentation\": \"https://ctan.org/pkg/fibnum\"\n  },\n  \"fifinddo\": {\n    \"command\": \"fifinddo\",\n    \"detail\": \"Filtering files using TeX\",\n    \"documentation\": \"https://ctan.org/pkg/fifinddo\"\n  },\n  \"fifo-stack\": {\n    \"command\": \"fifo-stack\",\n    \"detail\": \"FIFO and stack implementation for package writers\",\n    \"documentation\": \"https://ctan.org/pkg/fifo-stack\"\n  },\n  \"figbib\": {\n    \"command\": \"figbib\",\n    \"detail\": \"Organize figure databases with BibTeX\",\n    \"documentation\": \"https://ctan.org/pkg/figbib\"\n  },\n  \"figcaps\": {\n    \"command\": \"figcaps\",\n    \"detail\": \"Collect figure captions for later printing\",\n    \"documentation\": \"https://ctan.org/pkg/figcaps\"\n  },\n  \"figchild\": {\n    \"command\": \"figchild\",\n    \"detail\": \"Pictures for creating children’s activities\",\n    \"documentation\": \"https://ctan.org/pkg/figchild\"\n  },\n  \"figsize\": {\n    \"command\": \"figsize\",\n    \"detail\": \"Auto-size graphics\",\n    \"documentation\": \"https://ctan.org/pkg/figsize\"\n  },\n  \"filecontents\": {\n    \"command\": \"filecontents\",\n    \"detail\": \"Create an external file from within a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/filecontents\"\n  },\n  \"filecontentsdef\": {\n    \"command\": \"filecontentsdef\",\n    \"detail\": \"filecontents + macro + verbatim\",\n    \"documentation\": \"https://ctan.org/pkg/filecontentsdef\"\n  },\n  \"filedate\": {\n    \"command\": \"filedate\",\n    \"detail\": \"Access and compare info and modification dates\",\n    \"documentation\": \"https://ctan.org/pkg/filedate\"\n  },\n  \"filehook\": {\n    \"command\": \"filehook\",\n    \"detail\": \"Hooks for input files\",\n    \"documentation\": \"https://ctan.org/pkg/filehook\"\n  },\n  \"filemod\": {\n    \"command\": \"filemod\",\n    \"detail\": \"Provide file modification times, and compare them\",\n    \"documentation\": \"https://ctan.org/pkg/filemod\"\n  },\n  \"fink\": {\n    \"command\": \"fink\",\n    \"detail\": \"The LaTeX2e File Name Keeper\",\n    \"documentation\": \"https://ctan.org/pkg/fink\"\n  },\n  \"finstrut\": {\n    \"command\": \"finstrut\",\n    \"detail\": \"Adjust behaviour of the ends of footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/finstrut\"\n  },\n  \"firamath-otf\": {\n    \"command\": \"firamath-otf\",\n    \"detail\": \"Use OpenType math font Fira Math\",\n    \"documentation\": \"https://ctan.org/pkg/firamath-otf\"\n  },\n  \"fitbox\": {\n    \"command\": \"fitbox\",\n    \"detail\": \"Fit graphics on a page\",\n    \"documentation\": \"https://ctan.org/pkg/fitbox\"\n  },\n  \"fix-cm\": {\n    \"command\": \"fix-cm\",\n    \"detail\": \"Permit Computer Modern fonts at arbitrary sizes\",\n    \"documentation\": \"https://ctan.org/pkg/fix-cm\"\n  },\n  \"fix2col\": {\n    \"command\": \"fix2col\",\n    \"detail\": \"Fix miscellaneous two column mode features\",\n    \"documentation\": \"https://ctan.org/pkg/fix2col\"\n  },\n  \"fixcmex\": {\n    \"command\": \"fixcmex\",\n    \"detail\": \"Fully scalable version of Computer Modern Math Extension font\",\n    \"documentation\": \"https://ctan.org/pkg/fixcmex\"\n  },\n  \"fixfoot\": {\n    \"command\": \"fixfoot\",\n    \"detail\": \"Multiple use of the same footnote text\",\n    \"documentation\": \"https://ctan.org/pkg/fixfoot\"\n  },\n  \"fixjfm\": {\n    \"command\": \"fixjfm\",\n    \"detail\": \"Fix JFM (for *pTeX)\",\n    \"documentation\": \"https://ctan.org/pkg/fixjfm\"\n  },\n  \"fixlatvian\": {\n    \"command\": \"fixlatvian\",\n    \"detail\": \"Improve Latvian language support in XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fixlatvian\"\n  },\n  \"fixltx2e\": {\n    \"command\": \"fixltx2e\",\n    \"detail\": \"Patches for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fixltx2e\"\n  },\n  \"fixltxhyph\": {\n    \"command\": \"fixltxhyph\",\n    \"detail\": \"Allow hyphenation of partially-emphasised substrings\",\n    \"documentation\": \"https://ctan.org/pkg/fixltxhyph\"\n  },\n  \"fixmath\": {\n    \"command\": \"fixmath\",\n    \"detail\": \"Make maths comply with ISO 31-0:1992 to ISO 31-13:1992\",\n    \"documentation\": \"https://ctan.org/pkg/fixmath\"\n  },\n  \"fixme\": {\n    \"command\": \"fixme\",\n    \"detail\": \"Collaborative annotation tool for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fixme\"\n  },\n  \"fixmetodonotes\": {\n    \"command\": \"fixmetodonotes\",\n    \"detail\": \"Add notes on document development\",\n    \"documentation\": \"https://ctan.org/pkg/fixmetodonotes\"\n  },\n  \"fixocgx\": {\n    \"command\": \"fixocgx\",\n    \"detail\": \"Add support for dvips+ps2pdf, XeLaTeX, dvipdfmx to the ocgx package\",\n    \"documentation\": \"https://ctan.org/pkg/fixocgx\"\n  },\n  \"fjodor\": {\n    \"command\": \"fjodor\",\n    \"detail\": \"A selection of layout styles\",\n    \"documentation\": \"https://ctan.org/pkg/fjodor\"\n  },\n  \"flabels\": {\n    \"command\": \"flabels\",\n    \"detail\": \"Labels for files and folders\",\n    \"documentation\": \"https://ctan.org/pkg/flabels\"\n  },\n  \"flagderiv\": {\n    \"command\": \"flagderiv\",\n    \"detail\": \"Flag style derivation package\",\n    \"documentation\": \"https://ctan.org/pkg/flagderiv\"\n  },\n  \"flags\": {\n    \"command\": \"flags\",\n    \"detail\": \"Setting and clearing of flags in bit fields\",\n    \"documentation\": \"https://ctan.org/pkg/flags\"\n  },\n  \"flashmovie\": {\n    \"command\": \"flashmovie\",\n    \"detail\": \"Directly embed flash movies into PDF files\",\n    \"documentation\": \"https://ctan.org/pkg/flashmovie\"\n  },\n  \"flexisym\": {\n    \"command\": \"flexisym\",\n    \"detail\": \"Symbol manipulation for breqn\",\n    \"documentation\": \"https://ctan.org/pkg/flexisym\"\n  },\n  \"flipbook\": {\n    \"command\": \"flipbook\",\n    \"detail\": \"Typeset flipbook animations, in the corners of documents\",\n    \"documentation\": \"https://ctan.org/pkg/flipbook\"\n  },\n  \"flippdf\": {\n    \"command\": \"flippdf\",\n    \"detail\": \"Horizontal flipping of pages with pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/flippdf\"\n  },\n  \"float\": {\n    \"command\": \"float\",\n    \"detail\": \"Improved interface for floating objects\",\n    \"documentation\": \"https://ctan.org/pkg/float\"\n  },\n  \"floatflt\": {\n    \"command\": \"floatflt\",\n    \"detail\": \"Wrap text around floats\",\n    \"documentation\": \"https://ctan.org/pkg/floatflt\"\n  },\n  \"floatpag\": {\n    \"command\": \"floatpag\",\n    \"detail\": \"Different pagestyles on float pages\",\n    \"documentation\": \"https://ctan.org/pkg/floatpag\"\n  },\n  \"floatrow\": {\n    \"command\": \"floatrow\",\n    \"detail\": \"Modifying the layout of floats\",\n    \"documentation\": \"https://ctan.org/pkg/floatrow\"\n  },\n  \"flowchart\": {\n    \"command\": \"flowchart\",\n    \"detail\": \"Shapes for drawing flowcharts, using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/flowchart\"\n  },\n  \"flowfram\": {\n    \"command\": \"flowfram\",\n    \"detail\": \"Create text frames for posters, brochures or magazines\",\n    \"documentation\": \"https://ctan.org/pkg/flowfram\"\n  },\n  \"fltpoint\": {\n    \"command\": \"fltpoint\",\n    \"detail\": \"Simple floating point arithmetic\",\n    \"documentation\": \"https://ctan.org/pkg/fltpoint\"\n  },\n  \"flushend\": {\n    \"command\": \"flushend\",\n    \"detail\": \"Balancing columns at last page\",\n    \"documentation\": \"https://ctan.org/pkg/flushend\"\n  },\n  \"fmp\": {\n    \"command\": \"fmp\",\n    \"detail\": \"Include Functional MetaPost in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fmp\"\n  },\n  \"fmtcount\": {\n    \"command\": \"fmtcount\",\n    \"detail\": \"Display the value of a LaTeX counter in a variety of formats\",\n    \"documentation\": \"https://ctan.org/pkg/fmtcount\"\n  },\n  \"fn2end\": {\n    \"command\": \"fn2end\",\n    \"detail\": \"Convert footnotes to endnotes\",\n    \"documentation\": \"https://ctan.org/pkg/fn2end\"\n  },\n  \"fnbreak\": {\n    \"command\": \"fnbreak\",\n    \"detail\": \"Warn for split footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/fnbreak\"\n  },\n  \"fncychap\": {\n    \"command\": \"fncychap\",\n    \"detail\": \"Seven predefined chapter heading styles\",\n    \"documentation\": \"https://ctan.org/pkg/fncychap\"\n  },\n  \"fncylab\": {\n    \"command\": \"fncylab\",\n    \"detail\": \"Alter the format of \\\\label references\",\n    \"documentation\": \"https://ctan.org/pkg/fncylab\"\n  },\n  \"fnlineno\": {\n    \"command\": \"fnlineno\",\n    \"detail\": \"Number the lines of footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/fnlineno\"\n  },\n  \"fnpara\": {\n    \"command\": \"fnpara\",\n    \"detail\": \"Footnotes in paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/fnpara\"\n  },\n  \"fnpct\": {\n    \"command\": \"fnpct\",\n    \"detail\": \"Manage footnote marks’ interaction with punctuation\",\n    \"documentation\": \"https://ctan.org/pkg/fnpct\"\n  },\n  \"fnpos\": {\n    \"command\": \"fnpos\",\n    \"detail\": \"Control the position of footnotes on the page\",\n    \"documentation\": \"https://ctan.org/pkg/fnpos\"\n  },\n  \"fnspe\": {\n    \"command\": \"fnspe\",\n    \"detail\": \"Macros for supporting mainly students of FNSPE CTU in Prague\",\n    \"documentation\": \"https://ctan.org/pkg/fnspe\"\n  },\n  \"fnumprint\": {\n    \"command\": \"fnumprint\",\n    \"detail\": \"Print a number in ‘appropriate’ format\",\n    \"documentation\": \"https://ctan.org/pkg/fnumprint\"\n  },\n  \"foekfont\": {\n    \"command\": \"foekfont\",\n    \"detail\": \"The title font of the Mads Føk magazine\",\n    \"documentation\": \"https://ctan.org/pkg/foekfont\"\n  },\n  \"foilhtml\": {\n    \"command\": \"foilhtml\",\n    \"detail\": \"Interface between foiltex and LaTeX2HTML\",\n    \"documentation\": \"https://ctan.org/pkg/foilhtml\"\n  },\n  \"foliono\": {\n    \"command\": \"foliono\",\n    \"detail\": \" Use folio numbers to replace page numbers\",\n    \"documentation\": \"https://ctan.org/pkg/foliono\"\n  },\n  \"fonetika\": {\n    \"command\": \"fonetika\",\n    \"detail\": \"Support for the Danish \\\"Dania\\\" phonetic system\",\n    \"documentation\": \"https://ctan.org/pkg/fonetika\"\n  },\n  \"fontawesome\": {\n    \"command\": \"fontawesome\",\n    \"detail\": \"Font containing web-related icons\",\n    \"documentation\": \"https://ctan.org/pkg/fontawesome\"\n  },\n  \"fontawesome5\": {\n    \"command\": \"fontawesome5\",\n    \"detail\": \"Font Awesome 5 with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/fontawesome5\"\n  },\n  \"fontaxes\": {\n    \"command\": \"fontaxes\",\n    \"detail\": \"Additional font axes for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fontaxes\"\n  },\n  \"fontbook\": {\n    \"command\": \"fontbook\",\n    \"detail\": \"Generate a font book\",\n    \"documentation\": \"https://ctan.org/pkg/fontbook\"\n  },\n  \"fontenc\": {\n    \"command\": \"fontenc\",\n    \"detail\": \"Standard package for selecting font encodings\",\n    \"documentation\": \"https://ctan.org/pkg/fontenc\"\n  },\n  \"fontinst\": {\n    \"command\": \"fontinst\",\n    \"detail\": \"Help with installing fonts for TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fontinst\"\n  },\n  \"fontmfizz\": {\n    \"command\": \"fontmfizz\",\n    \"detail\": \"Font Mfizz icons for use in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fontmfizz\"\n  },\n  \"fonts-tlwg\": {\n    \"command\": \"fonts-tlwg\",\n    \"detail\": \"Thai fonts for LaTeX from TLWG\",\n    \"documentation\": \"https://ctan.org/pkg/fonts-tlwg\"\n  },\n  \"fontsetup\": {\n    \"command\": \"fontsetup\",\n    \"detail\": \"A front-end to fontspec, for selected fonts with math support\",\n    \"documentation\": \"https://ctan.org/pkg/fontsetup\"\n  },\n  \"fontsize\": {\n    \"command\": \"fontsize\",\n    \"detail\": \"A small package to set arbitrary sizes for the main font of the document\",\n    \"documentation\": \"https://ctan.org/pkg/fontsize\"\n  },\n  \"fontsmpl\": {\n    \"command\": \"fontsmpl\",\n    \"detail\": \"Print a sample of a font\",\n    \"documentation\": \"https://ctan.org/pkg/fontsmpl\"\n  },\n  \"fontspec\": {\n    \"command\": \"fontspec\",\n    \"detail\": \"Advanced font selection in XeLaTeX and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/fontspec\"\n  },\n  \"fonttable\": {\n    \"command\": \"fonttable\",\n    \"detail\": \"Print font tables from a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/fonttable\"\n  },\n  \"fontwrap\": {\n    \"command\": \"fontwrap\",\n    \"detail\": \"Bind fonts to specific unicode blocks\",\n    \"documentation\": \"https://ctan.org/pkg/fontwrap\"\n  },\n  \"footbib\": {\n    \"command\": \"footbib\",\n    \"detail\": \"Bibliographic references as footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/footbib\"\n  },\n  \"footmisc\": {\n    \"command\": \"footmisc\",\n    \"detail\": \"A range of footnote options\",\n    \"documentation\": \"https://ctan.org/pkg/footmisc\"\n  },\n  \"footmisx\": {\n    \"command\": \"footmisx\",\n    \"detail\": \"A range of footnote options\",\n    \"documentation\": \"https://ctan.org/pkg/footmisx\"\n  },\n  \"footnote\": {\n    \"command\": \"footnote\",\n    \"detail\": \"Improve on LaTeX's footnote handling\",\n    \"documentation\": \"https://ctan.org/pkg/footnote\"\n  },\n  \"footnotebackref\": {\n    \"command\": \"footnotebackref\",\n    \"detail\": \"Back-references from footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/footnotebackref\"\n  },\n  \"footnotehyper\": {\n    \"command\": \"footnotehyper\",\n    \"detail\": \"hyperref aware footnote.sty\",\n    \"documentation\": \"https://ctan.org/pkg/footnotehyper\"\n  },\n  \"footnoterange\": {\n    \"command\": \"footnoterange\",\n    \"detail\": \"References to ranges of footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/footnoterange\"\n  },\n  \"footnpag\": {\n    \"command\": \"footnpag\",\n    \"detail\": \"Per-page numbering of footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/footnpag\"\n  },\n  \"forarray\": {\n    \"command\": \"forarray\",\n    \"detail\": \"Using array structures in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/forarray\"\n  },\n  \"foreign\": {\n    \"command\": \"foreign\",\n    \"detail\": \"Systematic treatment of ‘foreign’ words in documents\",\n    \"documentation\": \"https://ctan.org/pkg/foreign\"\n  },\n  \"forest\": {\n    \"command\": \"forest\",\n    \"detail\": \"Drawing (linguistic) trees\",\n    \"documentation\": \"https://ctan.org/pkg/forest\"\n  },\n  \"forloop\": {\n    \"command\": \"forloop\",\n    \"detail\": \"Iteration in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/forloop\"\n  },\n  \"formlett\": {\n    \"command\": \"formlett\",\n    \"detail\": \"Letters to multiple recipients\",\n    \"documentation\": \"https://ctan.org/pkg/formlett\"\n  },\n  \"forms16be\": {\n    \"command\": \"forms16be\",\n    \"detail\": \"Initialize form properties using big-endian encoding\",\n    \"documentation\": \"https://ctan.org/pkg/forms16be\"\n  },\n  \"formular\": {\n    \"command\": \"formular\",\n    \"detail\": \"Create forms containing field for manual entry\",\n    \"documentation\": \"https://ctan.org/pkg/formular\"\n  },\n  \"forum\": {\n    \"command\": \"forum\",\n    \"detail\": \"Forum fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/forum\"\n  },\n  \"fotex\": {\n    \"command\": \"fotex\",\n    \"detail\": \"Process XSL-FO\",\n    \"documentation\": \"https://ctan.org/pkg/fotex\"\n  },\n  \"fouridx\": {\n    \"command\": \"fouridx\",\n    \"detail\": \"Left sub- and superscripts in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/fouridx\"\n  },\n  \"fourier\": {\n    \"command\": \"fourier\",\n    \"detail\": \"Using Utopia fonts in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/fourier\"\n  },\n  \"fouriernc\": {\n    \"command\": \"fouriernc\",\n    \"detail\": \"Use New Century Schoolbook text with Fourier maths fonts\",\n    \"documentation\": \"https://ctan.org/pkg/fouriernc\"\n  },\n  \"fp\": {\n    \"command\": \"fp\",\n    \"detail\": \"Fixed point arithmetic\",\n    \"documentation\": \"https://ctan.org/pkg/fp\"\n  },\n  \"frame\": {\n    \"command\": \"frame\",\n    \"detail\": \"Framed boxes for Plain TeX\",\n    \"documentation\": \"https://ctan.org/pkg/frame\"\n  },\n  \"framed\": {\n    \"command\": \"framed\",\n    \"detail\": \"Framed or shaded regions that can break across pages\",\n    \"documentation\": \"https://ctan.org/pkg/framed\"\n  },\n  \"frcursive\": {\n    \"command\": \"frcursive\",\n    \"detail\": \"French cursive hand fonts\",\n    \"documentation\": \"https://ctan.org/pkg/frcursive\"\n  },\n  \"frege\": {\n    \"command\": \"frege\",\n    \"detail\": \"Typeset fregean Begriffsschrift\",\n    \"documentation\": \"https://ctan.org/pkg/frege\"\n  },\n  \"frenchle\": {\n    \"command\": \"frenchle\",\n    \"detail\": \"French macros, usable stand-alone or with Babel\",\n    \"documentation\": \"https://ctan.org/pkg/frenchle\"\n  },\n  \"frenchmath\": {\n    \"command\": \"frenchmath\",\n    \"detail\": \"Typesetting mathematics according to French rules\",\n    \"documentation\": \"https://ctan.org/pkg/frenchmath\"\n  },\n  \"frenchpro\": {\n    \"command\": \"frenchpro\",\n    \"detail\": \"Professional typesetting of French documents\",\n    \"documentation\": \"https://ctan.org/pkg/frenchpro\"\n  },\n  \"frimurer\": {\n    \"command\": \"frimurer\",\n    \"detail\": \"Access to the 'frimurer' cipher for use with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/frimurer\"\n  },\n  \"frontespizio\": {\n    \"command\": \"frontespizio\",\n    \"detail\": \"Create a frontispiece for Italian theses\",\n    \"documentation\": \"https://ctan.org/pkg/frontespizio\"\n  },\n  \"froufrou\": {\n    \"command\": \"froufrou\",\n    \"detail\": \"Fancy section separators\",\n    \"documentation\": \"https://ctan.org/pkg/froufrou\"\n  },\n  \"frpseudocode\": {\n    \"command\": \"frpseudocode\",\n    \"detail\": \"French translation for the algorithmicx package\",\n    \"documentation\": \"https://ctan.org/pkg/frpseudocode\"\n  },\n  \"ftc-notebook\": {\n    \"command\": \"ftc-notebook\",\n    \"detail\": \"Typeset FIRST Tech Challenge (FTC) notebooks\",\n    \"documentation\": \"https://ctan.org/pkg/ftc-notebook\"\n  },\n  \"ftcap\": {\n    \"command\": \"ftcap\",\n    \"detail\": \"Allows \\\\caption at the beginning of a table-environment\",\n    \"documentation\": \"https://ctan.org/pkg/ftcap\"\n  },\n  \"ftnright\": {\n    \"command\": \"ftnright\",\n    \"detail\": \"Footnotes in two column documents in one column only\",\n    \"documentation\": \"https://ctan.org/pkg/ftnright\"\n  },\n  \"ftnxtra\": {\n    \"command\": \"ftnxtra\",\n    \"detail\": \"Extend the applicability of the \\\\footnote command\",\n    \"documentation\": \"https://ctan.org/pkg/ftnxtra\"\n  },\n  \"fullblck\": {\n    \"command\": \"fullblck\",\n    \"detail\": \"Left-blocking for letter class\",\n    \"documentation\": \"https://ctan.org/pkg/fullblck\"\n  },\n  \"fullminipage\": {\n    \"command\": \"fullminipage\",\n    \"detail\": \"Minipage spanning a complete page\",\n    \"documentation\": \"https://ctan.org/pkg/fullminipage\"\n  },\n  \"fullpage\": {\n    \"command\": \"fullpage\",\n    \"detail\": \"Set all page margins to 1.5cm\",\n    \"documentation\": \"https://ctan.org/pkg/fullpage\"\n  },\n  \"fullwidth\": {\n    \"command\": \"fullwidth\",\n    \"detail\": \"Adjust margins of text block\",\n    \"documentation\": \"https://ctan.org/pkg/fullwidth\"\n  },\n  \"functan\": {\n    \"command\": \"functan\",\n    \"detail\": \"Macros for functional analysis and PDE theory\",\n    \"documentation\": \"https://ctan.org/pkg/functan\"\n  },\n  \"fvextra\": {\n    \"command\": \"fvextra\",\n    \"detail\": \"Extensions and patches for fancyvrb\",\n    \"documentation\": \"https://ctan.org/pkg/fvextra\"\n  },\n  \"fwlw\": {\n    \"command\": \"fwlw\",\n    \"detail\": \"Get first and last words of a page\",\n    \"documentation\": \"https://ctan.org/pkg/fwlw\"\n  },\n  \"g-brief\": {\n    \"command\": \"g-brief\",\n    \"detail\": \"Letter document class\",\n    \"documentation\": \"https://ctan.org/pkg/g-brief\"\n  },\n  \"galois\": {\n    \"command\": \"galois\",\n    \"detail\": \"Typeset Galois connections\",\n    \"documentation\": \"https://ctan.org/pkg/galois\"\n  },\n  \"gamebook\": {\n    \"command\": \"gamebook\",\n    \"detail\": \"Typeset gamebooks and other interactive novels\",\n    \"documentation\": \"https://ctan.org/pkg/gamebook\"\n  },\n  \"gastex\": {\n    \"command\": \"gastex\",\n    \"detail\": \"Graphs and Automata Simplified in TeX\",\n    \"documentation\": \"https://ctan.org/pkg/gastex\"\n  },\n  \"gates\": {\n    \"command\": \"gates\",\n    \"detail\": \"Support for writing modular and customisable code\",\n    \"documentation\": \"https://ctan.org/pkg/gates\"\n  },\n  \"gatherenum\": {\n    \"command\": \"gatherenum\",\n    \"detail\": \"A crossover of align* and enumerate\",\n    \"documentation\": \"https://ctan.org/pkg/gatherenum\"\n  },\n  \"gauss\": {\n    \"command\": \"gauss\",\n    \"detail\": \"A package for Gaussian operations\",\n    \"documentation\": \"https://ctan.org/pkg/gauss\"\n  },\n  \"gb4e\": {\n    \"command\": \"gb4e\",\n    \"detail\": \"Linguistic tools\",\n    \"documentation\": \"https://ctan.org/pkg/gb4e\"\n  },\n  \"gbt7714\": {\n    \"command\": \"gbt7714\",\n    \"detail\": \"BibTeX implementation of China’s bibliography style standard GB/T 7714-2015\",\n    \"documentation\": \"https://ctan.org/pkg/gbt7714\"\n  },\n  \"gcard\": {\n    \"command\": \"gcard\",\n    \"detail\": \"Arrange text on a sheet to fold into a greeting card\",\n    \"documentation\": \"https://ctan.org/pkg/gcard\"\n  },\n  \"gchords\": {\n    \"command\": \"gchords\",\n    \"detail\": \"Typeset guitar chords\",\n    \"documentation\": \"https://ctan.org/pkg/gchords\"\n  },\n  \"gcite\": {\n    \"command\": \"gcite\",\n    \"detail\": \"Citations in a reader-friendly style\",\n    \"documentation\": \"https://ctan.org/pkg/gcite\"\n  },\n  \"gckanbun\": {\n    \"command\": \"gckanbun\",\n    \"detail\": \"Kanbun typesetting for (u)pLaTeX and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/gckanbun\"\n  },\n  \"gender\": {\n    \"command\": \"gender\",\n    \"detail\": \"Gender neutrality for languages with grammatical gender\",\n    \"documentation\": \"https://ctan.org/pkg/gender\"\n  },\n  \"genealogytree\": {\n    \"command\": \"genealogytree\",\n    \"detail\": \"Pedigree and genealogical tree diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/genealogytree\"\n  },\n  \"genmpage\": {\n    \"command\": \"genmpage\",\n    \"detail\": \"Generalization of LaTeX's minipages\",\n    \"documentation\": \"https://ctan.org/pkg/genmpage\"\n  },\n  \"gensymb\": {\n    \"command\": \"gensymb\",\n    \"detail\": \"Generic symbols for both text and math mode\",\n    \"documentation\": \"https://ctan.org/pkg/gensymb\"\n  },\n  \"gentium\": {\n    \"command\": \"gentium\",\n    \"detail\": \"Gentium font and support files\",\n    \"documentation\": \"https://ctan.org/pkg/gentium\"\n  },\n  \"gentombow\": {\n    \"command\": \"gentombow\",\n    \"detail\": \"Generate Japanese-style crop marks\",\n    \"documentation\": \"https://ctan.org/pkg/gentombow\"\n  },\n  \"geometry\": {\n    \"command\": \"geometry\",\n    \"detail\": \"Flexible and complete interface to document dimensions\",\n    \"documentation\": \"https://ctan.org/pkg/geometry\"\n  },\n  \"georgian\": {\n    \"command\": \"georgian\",\n    \"detail\": \"Support for typesetting in Georgian\",\n    \"documentation\": \"https://ctan.org/pkg/georgian\"\n  },\n  \"german\": {\n    \"command\": \"german\",\n    \"detail\": \"Support for German typography\",\n    \"documentation\": \"https://ctan.org/pkg/german\"\n  },\n  \"germkorr\": {\n    \"command\": \"germkorr\",\n    \"detail\": \"Change kerning for German quotation marks\",\n    \"documentation\": \"https://ctan.org/pkg/germkorr\"\n  },\n  \"getfiledate\": {\n    \"command\": \"getfiledate\",\n    \"detail\": \"Find the date of last modification of a file\",\n    \"documentation\": \"https://ctan.org/pkg/getfiledate\"\n  },\n  \"getitems\": {\n    \"command\": \"getitems\",\n    \"detail\": \"Gathering items from a list-like environment\",\n    \"documentation\": \"https://ctan.org/pkg/getitems\"\n  },\n  \"getmap\": {\n    \"command\": \"getmap\",\n    \"detail\": \"Download OpenStreetMap maps for use in documents\",\n    \"documentation\": \"https://ctan.org/pkg/getmap\"\n  },\n  \"gettitlestring\": {\n    \"command\": \"gettitlestring\",\n    \"detail\": \"Clean up title references\",\n    \"documentation\": \"https://ctan.org/pkg/gettitlestring\"\n  },\n  \"gfsartemisia\": {\n    \"command\": \"gfsartemisia\",\n    \"detail\": \"A modern Greek font design\",\n    \"documentation\": \"https://ctan.org/pkg/gfsartemisia\"\n  },\n  \"gfsbaskerville\": {\n    \"command\": \"gfsbaskerville\",\n    \"detail\": \"A Greek font, from one such by Baskerville\",\n    \"documentation\": \"https://ctan.org/pkg/gfsbaskerville\"\n  },\n  \"gfsbodoni\": {\n    \"command\": \"gfsbodoni\",\n    \"detail\": \"A Greek and Latin font based on Bodoni\",\n    \"documentation\": \"https://ctan.org/pkg/gfsbodoni\"\n  },\n  \"gfscomplutum\": {\n    \"command\": \"gfscomplutum\",\n    \"detail\": \"A Greek font with a long history\",\n    \"documentation\": \"https://ctan.org/pkg/gfscomplutum\"\n  },\n  \"gfsdidot\": {\n    \"command\": \"gfsdidot\",\n    \"detail\": \"A Greek font based on Didot’s work\",\n    \"documentation\": \"https://ctan.org/pkg/gfsdidot\"\n  },\n  \"gfsneohellenic\": {\n    \"command\": \"gfsneohellenic\",\n    \"detail\": \"A font in the Neo-Hellenic style\",\n    \"documentation\": \"https://ctan.org/pkg/gfsneohellenic\"\n  },\n  \"gfsporson\": {\n    \"command\": \"gfsporson\",\n    \"detail\": \"A Greek font, originally from Porson\",\n    \"documentation\": \"https://ctan.org/pkg/gfsporson\"\n  },\n  \"gfssolomos\": {\n    \"command\": \"gfssolomos\",\n    \"detail\": \"A Greek-alphabet font\",\n    \"documentation\": \"https://ctan.org/pkg/gfssolomos\"\n  },\n  \"ghab\": {\n    \"command\": \"ghab\",\n    \"detail\": \"Typeset ghab boxes in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ghab\"\n  },\n  \"ghsystem\": {\n    \"command\": \"ghsystem\",\n    \"detail\": \"Globally harmonised system of chemical (etc) naming\",\n    \"documentation\": \"https://ctan.org/pkg/ghsystem\"\n  },\n  \"gillcm\": {\n    \"command\": \"gillcm\",\n    \"detail\": \"Alternative unslanted italic Computer Modern fonts\",\n    \"documentation\": \"https://ctan.org/pkg/gillcm\"\n  },\n  \"gillius\": {\n    \"command\": \"gillius\",\n    \"detail\": \"Gillius fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/gillius\"\n  },\n  \"gincltex\": {\n    \"command\": \"gincltex\",\n    \"detail\": \"Include TeX files as graphics (.tex support for \\\\includegraphics)\",\n    \"documentation\": \"https://ctan.org/pkg/gincltex\"\n  },\n  \"gindex\": {\n    \"command\": \"gindex\",\n    \"detail\": \"Formatting indexes\",\n    \"documentation\": \"https://ctan.org/pkg/gindex\"\n  },\n  \"ginpenc\": {\n    \"command\": \"ginpenc\",\n    \"detail\": \"Modification of inputenc for German\",\n    \"documentation\": \"https://ctan.org/pkg/ginpenc\"\n  },\n  \"gitfile-info\": {\n    \"command\": \"gitfile-info\",\n    \"detail\": \"Get git metadata for a specific file\",\n    \"documentation\": \"https://ctan.org/pkg/gitfile-info\"\n  },\n  \"gitinfo\": {\n    \"command\": \"gitinfo\",\n    \"detail\": \"Access metadata from the git distributed version control system\",\n    \"documentation\": \"https://ctan.org/pkg/gitinfo\"\n  },\n  \"gitinfo2\": {\n    \"command\": \"gitinfo2\",\n    \"detail\": \"Access metadata from the git distributed version control system\",\n    \"documentation\": \"https://ctan.org/pkg/gitinfo2\"\n  },\n  \"gitlog\": {\n    \"command\": \"gitlog\",\n    \"detail\": \"Typesetting git changelogs\",\n    \"documentation\": \"https://ctan.org/pkg/gitlog\"\n  },\n  \"gitver\": {\n    \"command\": \"gitver\",\n    \"detail\": \"Get the current git hash of a project and typeset it in the document\",\n    \"documentation\": \"https://ctan.org/pkg/gitver\"\n  },\n  \"globalvals\": {\n    \"command\": \"globalvals\",\n    \"detail\": \"Declare global variables\",\n    \"documentation\": \"https://ctan.org/pkg/globalvals\"\n  },\n  \"glosmathtools\": {\n    \"command\": \"glosmathtools\",\n    \"detail\": \"Mathematical nomenclature tools based on the glossaries package\",\n    \"documentation\": \"https://ctan.org/pkg/glosmathtools\"\n  },\n  \"gloss\": {\n    \"command\": \"gloss\",\n    \"detail\": \"Create glossaries using BibTeX\",\n    \"documentation\": \"https://ctan.org/pkg/gloss\"\n  },\n  \"glossaries\": {\n    \"command\": \"glossaries\",\n    \"detail\": \"Create glossaries and lists of acronyms\",\n    \"documentation\": \"https://ctan.org/pkg/glossaries\"\n  },\n  \"glossaries-accsupp\": {\n    \"command\": \"glossaries-accsupp\",\n    \"detail\": \"Accessibility support for glossaries\",\n    \"documentation\": \"https://ctan.org/pkg/glossaries-accsupp\"\n  },\n  \"glossaries-extra\": {\n    \"command\": \"glossaries-extra\",\n    \"detail\": \"An extension to the glossaries package\",\n    \"documentation\": \"https://ctan.org/pkg/glossaries-extra\"\n  },\n  \"gmdoc\": {\n    \"command\": \"gmdoc\",\n    \"detail\": \"Documentation of LaTeX packages\",\n    \"documentation\": \"https://ctan.org/pkg/gmdoc\"\n  },\n  \"gmdoc-enhance\": {\n    \"command\": \"gmdoc-enhance\",\n    \"detail\": \"Some enhancements to the gmdoc package\",\n    \"documentation\": \"https://ctan.org/pkg/gmdoc-enhance\"\n  },\n  \"gmiflink\": {\n    \"command\": \"gmiflink\",\n    \"detail\": \"Simplify usage of \\\\hypertarget and \\\\hyperlink\",\n    \"documentation\": \"https://ctan.org/pkg/gmiflink\"\n  },\n  \"gmp\": {\n    \"command\": \"gmp\",\n    \"detail\": \"Enable integration between MetaPost pictures and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/gmp\"\n  },\n  \"gmutils\": {\n    \"command\": \"gmutils\",\n    \"detail\": \"Support macros for other packages\",\n    \"documentation\": \"https://ctan.org/pkg/gmutils\"\n  },\n  \"gmverb\": {\n    \"command\": \"gmverb\",\n    \"detail\": \"A variant of LaTeX \\\\verb, verbatim and shortvrb\",\n    \"documentation\": \"https://ctan.org/pkg/gmverb\"\n  },\n  \"gmverse\": {\n    \"command\": \"gmverse\",\n    \"detail\": \"A package for typesetting (short) poems\",\n    \"documentation\": \"https://ctan.org/pkg/gmverse\"\n  },\n  \"gnuplottex\": {\n    \"command\": \"gnuplottex\",\n    \"detail\": \"Embed Gnuplot commands in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/gnuplottex\"\n  },\n  \"go\": {\n    \"command\": \"go\",\n    \"detail\": \"Fonts and macros for typesetting go games\",\n    \"documentation\": \"https://ctan.org/pkg/go\"\n  },\n  \"gobble\": {\n    \"command\": \"gobble\",\n    \"detail\": \"More gobble macros for PlainTeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/gobble\"\n  },\n  \"gotoh\": {\n    \"command\": \"gotoh\",\n    \"detail\": \"An implementation of the Gotoh sequence alignment algorithm\",\n    \"documentation\": \"https://ctan.org/pkg/gotoh\"\n  },\n  \"grabbox\": {\n    \"command\": \"grabbox\",\n    \"detail\": \"Read an argument into a box and execute the code afterwards\",\n    \"documentation\": \"https://ctan.org/pkg/grabbox\"\n  },\n  \"gradientframe\": {\n    \"command\": \"gradientframe\",\n    \"detail\": \"Simple gradient frames around objects\",\n    \"documentation\": \"https://ctan.org/pkg/gradientframe\"\n  },\n  \"grafcet\": {\n    \"command\": \"grafcet\",\n    \"detail\": \"Draw Grafcet/SFC with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/grafcet\"\n  },\n  \"graph35\": {\n    \"command\": \"graph35\",\n    \"detail\": \"Draw keys and screen items of several Casio calculators\",\n    \"documentation\": \"https://ctan.org/pkg/graph35\"\n  },\n  \"graphbox\": {\n    \"command\": \"graphbox\",\n    \"detail\": \"Extend graphicx to improve placement of graphics\",\n    \"documentation\": \"https://ctan.org/pkg/graphbox\"\n  },\n  \"graphfig\": {\n    \"command\": \"graphfig\",\n    \"detail\": \"Simpler graphic, subfigure and float\",\n    \"documentation\": \"https://ctan.org/pkg/graphfig\"\n  },\n  \"graphics\": {\n    \"command\": \"graphics\",\n    \"detail\": \"Standard LaTeX graphics\",\n    \"documentation\": \"https://ctan.org/pkg/graphics\"\n  },\n  \"graphicx\": {\n    \"command\": \"graphicx\",\n    \"detail\": \"Enhanced support for graphics\",\n    \"documentation\": \"https://ctan.org/pkg/graphicx\"\n  },\n  \"graphicx-psmin\": {\n    \"command\": \"graphicx-psmin\",\n    \"detail\": \"Reduce size of PostScript files by not repeating images\",\n    \"documentation\": \"https://ctan.org/pkg/graphicx-psmin\"\n  },\n  \"graphicxbox\": {\n    \"command\": \"graphicxbox\",\n    \"detail\": \"Insert a graphical image as a background\",\n    \"documentation\": \"https://ctan.org/pkg/graphicxbox\"\n  },\n  \"graphicxpsd\": {\n    \"command\": \"graphicxpsd\",\n    \"detail\": \"Adobe Photoshop Data format (PSD) support for graphicx package\",\n    \"documentation\": \"https://ctan.org/pkg/graphicxpsd\"\n  },\n  \"graphpap\": {\n    \"command\": \"graphpap\",\n    \"detail\": \"For producing graph paper\",\n    \"documentation\": \"https://ctan.org/pkg/graphpap\"\n  },\n  \"graphviz\": {\n    \"command\": \"graphviz\",\n    \"detail\": \"Write graphviz (dot+neato) inline in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/graphviz\"\n  },\n  \"grayhints\": {\n    \"command\": \"grayhints\",\n    \"detail\": \"Produce ‘gray hints’ to a variable text field\",\n    \"documentation\": \"https://ctan.org/pkg/grayhints\"\n  },\n  \"greek4cbc\": {\n    \"command\": \"greek4cbc\",\n    \"detail\": \"A Greek font from 394BC\",\n    \"documentation\": \"https://ctan.org/pkg/greek4cbc\"\n  },\n  \"greek6cbc\": {\n    \"command\": \"greek6cbc\",\n    \"detail\": \"A Greek font from the sixth century BC\",\n    \"documentation\": \"https://ctan.org/pkg/greek6cbc\"\n  },\n  \"greekctr\": {\n    \"command\": \"greekctr\",\n    \"detail\": \"Represent counters by letters of the Greek alphabet\",\n    \"documentation\": \"https://ctan.org/pkg/greekctr\"\n  },\n  \"greekdates\": {\n    \"command\": \"greekdates\",\n    \"detail\": \"Provides ancient Greek day and month names, dates, etc\",\n    \"documentation\": \"https://ctan.org/pkg/greekdates\"\n  },\n  \"greektex\": {\n    \"command\": \"greektex\",\n    \"detail\": \"Fonts for typesetting Greek/English documents\",\n    \"documentation\": \"https://ctan.org/pkg/greektex\"\n  },\n  \"greektonoi\": {\n    \"command\": \"greektonoi\",\n    \"detail\": \"Facilitates writing/editing of multiaccented greek\",\n    \"documentation\": \"https://ctan.org/pkg/greektonoi\"\n  },\n  \"gregoriotex\": {\n    \"command\": \"gregoriotex\",\n    \"detail\": \"Engraving Gregorian Chant scores\",\n    \"documentation\": \"https://ctan.org/pkg/gregoriotex\"\n  },\n  \"grfext\": {\n    \"command\": \"grfext\",\n    \"detail\": \"Manipulate the graphics package's list of extensions\",\n    \"documentation\": \"https://ctan.org/pkg/grfext\"\n  },\n  \"grffile\": {\n    \"command\": \"grffile\",\n    \"detail\": \"Extended file name support for graphics (legacy package)\",\n    \"documentation\": \"https://ctan.org/pkg/grffile\"\n  },\n  \"grfpaste\": {\n    \"command\": \"grfpaste\",\n    \"detail\": \"Include fragments of a dvi file\",\n    \"documentation\": \"https://ctan.org/pkg/grfpaste\"\n  },\n  \"grid\": {\n    \"command\": \"grid\",\n    \"detail\": \"Grid typesetting in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/grid\"\n  },\n  \"grid-system\": {\n    \"command\": \"grid-system\",\n    \"detail\": \"Page organisation, modelled on CSS facilities\",\n    \"documentation\": \"https://ctan.org/pkg/grid-system\"\n  },\n  \"gridpapers\": {\n    \"command\": \"gridpapers\",\n    \"detail\": \"Graph paper backgrounds and color schemes\",\n    \"documentation\": \"https://ctan.org/pkg/gridpapers\"\n  },\n  \"gridset\": {\n    \"command\": \"gridset\",\n    \"detail\": \"Grid, a.k.a. in-register, setting\",\n    \"documentation\": \"https://ctan.org/pkg/gridset\"\n  },\n  \"gridslides\": {\n    \"command\": \"gridslides\",\n    \"detail\": \"Free form slides with blocks placed on a grid\",\n    \"documentation\": \"https://ctan.org/pkg/gridslides\"\n  },\n  \"grundgesetze\": {\n    \"command\": \"grundgesetze\",\n    \"detail\": \"Typeset Frege’s Grundgesetze der Arithmetik\",\n    \"documentation\": \"https://ctan.org/pkg/grundgesetze\"\n  },\n  \"gs1\": {\n    \"command\": \"GS1\",\n    \"detail\": \"Typeset EAN barcodes using TeX rules, only\",\n    \"documentation\": \"https://ctan.org/pkg/gs1\"\n  },\n  \"gtl\": {\n    \"command\": \"gtl\",\n    \"detail\": \"Manipulating generalized token lists\",\n    \"documentation\": \"https://ctan.org/pkg/gtl\"\n  },\n  \"gtrcrd\": {\n    \"command\": \"gtrcrd\",\n    \"detail\": \"Add chords to lyrics\",\n    \"documentation\": \"https://ctan.org/pkg/gtrcrd\"\n  },\n  \"gu\": {\n    \"command\": \"gu\",\n    \"detail\": \"Typeset crystallographic group-subgroup-schemes\",\n    \"documentation\": \"https://ctan.org/pkg/gu\"\n  },\n  \"gudea\": {\n    \"command\": \"Gudea\",\n    \"detail\": \"The Gudea font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/gudea\"\n  },\n  \"guitar\": {\n    \"command\": \"guitar\",\n    \"detail\": \"Guitar chords and song texts\",\n    \"documentation\": \"https://ctan.org/pkg/guitar\"\n  },\n  \"guitarchordschemes\": {\n    \"command\": \"guitarchordschemes\",\n    \"detail\": \"Guitar Chord and Scale Tablatures\",\n    \"documentation\": \"https://ctan.org/pkg/guitarchordschemes\"\n  },\n  \"ha-prosper\": {\n    \"command\": \"HA-prosper\",\n    \"detail\": \"Patches and improvements for prosper\",\n    \"documentation\": \"https://ctan.org/pkg/ha-prosper\"\n  },\n  \"hackthefootline\": {\n    \"command\": \"hackthefootline\",\n    \"detail\": \"Footline selection and configuration for LaTeX beamer’s standard themes\",\n    \"documentation\": \"https://ctan.org/pkg/hackthefootline\"\n  },\n  \"hacm\": {\n    \"command\": \"hacm\",\n    \"detail\": \"Font support for the Arka language\",\n    \"documentation\": \"https://ctan.org/pkg/hacm\"\n  },\n  \"halloweenmath\": {\n    \"command\": \"halloweenmath\",\n    \"detail\": \"Scary and creepy math symbols with AMS-LaTeX integration\",\n    \"documentation\": \"https://ctan.org/pkg/halloweenmath\"\n  },\n  \"handin\": {\n    \"command\": \"handin\",\n    \"detail\": \"Light weight template for creating school submissions using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/handin\"\n  },\n  \"handout\": {\n    \"command\": \"handout\",\n    \"detail\": \"Create handout for auditors of a talk\",\n    \"documentation\": \"https://ctan.org/pkg/handout\"\n  },\n  \"hang\": {\n    \"command\": \"hang\",\n    \"detail\": \"Environments for hanging paragraphs and list items\",\n    \"documentation\": \"https://ctan.org/pkg/hang\"\n  },\n  \"hanging\": {\n    \"command\": \"hanging\",\n    \"detail\": \"Hanging paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/hanging\"\n  },\n  \"har2nat\": {\n    \"command\": \"har2nat\",\n    \"detail\": \"Replace the harvard package with natbib\",\n    \"documentation\": \"https://ctan.org/pkg/har2nat\"\n  },\n  \"hardwrap\": {\n    \"command\": \"hardwrap\",\n    \"detail\": \"Hard wrap text to a certain character length\",\n    \"documentation\": \"https://ctan.org/pkg/hardwrap\"\n  },\n  \"harmony\": {\n    \"command\": \"harmony\",\n    \"detail\": \"Typeset harmony symbols, etc., for musicology\",\n    \"documentation\": \"https://ctan.org/pkg/harmony\"\n  },\n  \"harpoon\": {\n    \"command\": \"harpoon\",\n    \"detail\": \"Extra harpoons, using the graphics package\",\n    \"documentation\": \"https://ctan.org/pkg/harpoon\"\n  },\n  \"harvard\": {\n    \"command\": \"harvard\",\n    \"detail\": \"Harvard citation package for use with LaTeX 2e\",\n    \"documentation\": \"https://ctan.org/pkg/harvard\"\n  },\n  \"harveyballs\": {\n    \"command\": \"harveyballs\",\n    \"detail\": \"Create Harvey Balls using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/harveyballs\"\n  },\n  \"havannah\": {\n    \"command\": \"havannah\",\n    \"detail\": \"Diagrams of board positions in the games of Havannah and Hex\",\n    \"documentation\": \"https://ctan.org/pkg/havannah\"\n  },\n  \"he-she\": {\n    \"command\": \"he-she\",\n    \"detail\": \"Alternating pronouns to aid gender-neutral writing\",\n    \"documentation\": \"https://ctan.org/pkg/he-she\"\n  },\n  \"hebtex\": {\n    \"command\": \"hebtex\",\n    \"detail\": \"Support for Hebrew and other right-to-left languages\",\n    \"documentation\": \"https://ctan.org/pkg/hebtex\"\n  },\n  \"helmholtz-ellis-ji-notation\": {\n    \"command\": \"helmholtz-ellis-ji-notation\",\n    \"detail\": \"Beautiful in-line microtonal just intonation accidentals\",\n    \"documentation\": \"https://ctan.org/pkg/helmholtz-ellis-ji-notation\"\n  },\n  \"helvet\": {\n    \"command\": \"helvet\",\n    \"detail\": \"Load Helvetica, scaled\",\n    \"documentation\": \"https://ctan.org/pkg/helvet\"\n  },\n  \"hep\": {\n    \"command\": \"hep\",\n    \"detail\": \"A \\\"convenience wrapper\\\" for High Energy Physics packages\",\n    \"documentation\": \"https://ctan.org/pkg/hep\"\n  },\n  \"hep-paper\": {\n    \"command\": \"hep-paper\",\n    \"detail\": \"Publications in High Energy Physics\",\n    \"documentation\": \"https://ctan.org/pkg/hep-paper\"\n  },\n  \"hepnames\": {\n    \"command\": \"hepnames\",\n    \"detail\": \"Pre-defined high energy particle names\",\n    \"documentation\": \"https://ctan.org/pkg/hepnames\"\n  },\n  \"hepparticles\": {\n    \"command\": \"hepparticles\",\n    \"detail\": \"Macros for typesetting high energy physics particle names\",\n    \"documentation\": \"https://ctan.org/pkg/hepparticles\"\n  },\n  \"hepunits\": {\n    \"command\": \"hepunits\",\n    \"detail\": \"A set of units useful in high energy physics applications\",\n    \"documentation\": \"https://ctan.org/pkg/hepunits\"\n  },\n  \"here\": {\n    \"command\": \"here\",\n    \"detail\": \"Emulation of obsolete package for \\\"here\\\" floats\",\n    \"documentation\": \"https://ctan.org/pkg/here\"\n  },\n  \"heuristica\": {\n    \"command\": \"heuristica\",\n    \"detail\": \"Fonts extending Utopia, with LaTeX support files\",\n    \"documentation\": \"https://ctan.org/pkg/heuristica\"\n  },\n  \"hexgame\": {\n    \"command\": \"hexgame\",\n    \"detail\": \"Provide an environment to draw a hexgame-board\",\n    \"documentation\": \"https://ctan.org/pkg/hexgame\"\n  },\n  \"hf-tikz\": {\n    \"command\": \"hf-tikz\",\n    \"detail\": \"A simple way to highlight formulas and formula parts\",\n    \"documentation\": \"https://ctan.org/pkg/hf-tikz\"\n  },\n  \"hfoldsty\": {\n    \"command\": \"hfoldsty\",\n    \"detail\": \"Old style numerals with EC fonts\",\n    \"documentation\": \"https://ctan.org/pkg/hfoldsty\"\n  },\n  \"hhline\": {\n    \"command\": \"hhline\",\n    \"detail\": \"Better horizontal lines in tabulars and arrays\",\n    \"documentation\": \"https://ctan.org/pkg/hhline\"\n  },\n  \"hhtensor\": {\n    \"command\": \"hhtensor\",\n    \"detail\": \"Print vectors, matrices, and tensors\",\n    \"documentation\": \"https://ctan.org/pkg/hhtensor\"\n  },\n  \"hieroglf\": {\n    \"command\": \"hieroglf\",\n    \"detail\": \"The \\\"poor man's\\\" Egyptian Hieroglyphic font\",\n    \"documentation\": \"https://ctan.org/pkg/hieroglf\"\n  },\n  \"highlightlatex\": {\n    \"command\": \"highlightlatex\",\n    \"detail\": \"Syntax highlighting for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/highlightlatex\"\n  },\n  \"hindmadurai\": {\n    \"command\": \"HindMadurai\",\n    \"detail\": \"The HindMadurai font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/hindmadurai\"\n  },\n  \"histogr\": {\n    \"command\": \"histogr\",\n    \"detail\": \"Draw histograms with the LaTeX picture environment\",\n    \"documentation\": \"https://ctan.org/pkg/histogr\"\n  },\n  \"hithesis\": {\n    \"command\": \"hithesis\",\n    \"detail\": \"Harbin Institute of Technology Thesis Template\",\n    \"documentation\": \"https://ctan.org/pkg/hithesis\"\n  },\n  \"hitszthesis\": {\n    \"command\": \"hitszthesis\",\n    \"detail\": \"A dissertation template for Harbin Institute of Technology, ShenZhen\",\n    \"documentation\": \"https://ctan.org/pkg/hitszthesis\"\n  },\n  \"hlist\": {\n    \"command\": \"hlist\",\n    \"detail\": \"Horizontal and columned lists\",\n    \"documentation\": \"https://ctan.org/pkg/hlist\"\n  },\n  \"hmtrump\": {\n    \"command\": \"hmtrump\",\n    \"detail\": \"Describe card games\",\n    \"documentation\": \"https://ctan.org/pkg/hmtrump\"\n  },\n  \"hobete\": {\n    \"command\": \"hobete\",\n    \"detail\": \"Unofficial beamer theme for the University of Hohenheim\",\n    \"documentation\": \"https://ctan.org/pkg/hobete\"\n  },\n  \"hobsub\": {\n    \"command\": \"hobsub\",\n    \"detail\": \"Construct package bundles\",\n    \"documentation\": \"https://ctan.org/pkg/hobsub\"\n  },\n  \"hologo\": {\n    \"command\": \"hologo\",\n    \"detail\": \"A collection of logos with bookmark support\",\n    \"documentation\": \"https://ctan.org/pkg/hologo\"\n  },\n  \"holtpolt\": {\n    \"command\": \"holtpolt\",\n    \"detail\": \"Typeset Maxwell's non-commutative division\",\n    \"documentation\": \"https://ctan.org/pkg/holtpolt\"\n  },\n  \"holtxdoc\": {\n    \"command\": \"holtxdoc\",\n    \"detail\": \"Documentation macros for oberdiek bundle, etc\",\n    \"documentation\": \"https://ctan.org/pkg/holtxdoc\"\n  },\n  \"hopatch\": {\n    \"command\": \"hopatch\",\n    \"detail\": \"Load patches for packages\",\n    \"documentation\": \"https://ctan.org/pkg/hopatch\"\n  },\n  \"horoscop\": {\n    \"command\": \"horoscop\",\n    \"detail\": \"Generate astrological charts in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/horoscop\"\n  },\n  \"href-ul\": {\n    \"command\": \"href-ul\",\n    \"detail\": \"Underscored LaTeX hyperlinks\",\n    \"documentation\": \"https://ctan.org/pkg/href-ul\"\n  },\n  \"hrefhide\": {\n    \"command\": \"hrefhide\",\n    \"detail\": \"Suppress hyper links when printing\",\n    \"documentation\": \"https://ctan.org/pkg/hrefhide\"\n  },\n  \"hrlatex\": {\n    \"command\": \"hrlatex\",\n    \"detail\": \"LaTeX support for Croatian documents\",\n    \"documentation\": \"https://ctan.org/pkg/hrlatex\"\n  },\n  \"hulipsum\": {\n    \"command\": \"hulipsum\",\n    \"detail\": \"Hungarian dummy text (Lórum ipse)\",\n    \"documentation\": \"https://ctan.org/pkg/hulipsum\"\n  },\n  \"humanist\": {\n    \"command\": \"humanist\",\n    \"detail\": \"Humanist manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/humanist\"\n  },\n  \"huncial\": {\n    \"command\": \"huncial\",\n    \"detail\": \"Fonts based on the half Uncial manuscript book-hand\",\n    \"documentation\": \"https://ctan.org/pkg/huncial\"\n  },\n  \"hvarabic\": {\n    \"command\": \"hvarabic\",\n    \"detail\": \"Macros for RTL typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/hvarabic\"\n  },\n  \"hvfloat\": {\n    \"command\": \"hvfloat\",\n    \"detail\": \"Controlling captions, fullpage and doublepage floats\",\n    \"documentation\": \"https://ctan.org/pkg/hvfloat\"\n  },\n  \"hvindex\": {\n    \"command\": \"hvindex\",\n    \"detail\": \"Support for indexing\",\n    \"documentation\": \"https://ctan.org/pkg/hvindex\"\n  },\n  \"hvqrurl\": {\n    \"command\": \"hvqrurl\",\n    \"detail\": \"Insert a QR code in the margin\",\n    \"documentation\": \"https://ctan.org/pkg/hvqrurl\"\n  },\n  \"hycolor\": {\n    \"command\": \"hycolor\",\n    \"detail\": \"Implements colour for packages hyperref and bookmark\",\n    \"documentation\": \"https://ctan.org/pkg/hycolor\"\n  },\n  \"hypbmsec\": {\n    \"command\": \"hypbmsec\",\n    \"detail\": \"Hypertext bookmarks in sectioning commands\",\n    \"documentation\": \"https://ctan.org/pkg/hypbmsec\"\n  },\n  \"hypcap\": {\n    \"command\": \"hypcap\",\n    \"detail\": \"Adjusting the anchors of captions\",\n    \"documentation\": \"https://ctan.org/pkg/hypcap\"\n  },\n  \"hypdestopt\": {\n    \"command\": \"hypdestopt\",\n    \"detail\": \"Hyperref destination optimizer\",\n    \"documentation\": \"https://ctan.org/pkg/hypdestopt\"\n  },\n  \"hypdoc\": {\n    \"command\": \"hypdoc\",\n    \"detail\": \"Hyper extensions for doc.sty\",\n    \"documentation\": \"https://ctan.org/pkg/hypdoc\"\n  },\n  \"hypdvips\": {\n    \"command\": \"hypdvips\",\n    \"detail\": \"Hyperref extensions for use with dvips\",\n    \"documentation\": \"https://ctan.org/pkg/hypdvips\"\n  },\n  \"hyper\": {\n    \"command\": \"hyper\",\n    \"detail\": \"Hypertext cross referencing\",\n    \"documentation\": \"https://ctan.org/pkg/hyper\"\n  },\n  \"hyperbar\": {\n    \"command\": \"hyperbar\",\n    \"detail\": \"Add interactive Barcode fields to PDF forms\",\n    \"documentation\": \"https://ctan.org/pkg/hyperbar\"\n  },\n  \"hypernat\": {\n    \"command\": \"hypernat\",\n    \"detail\": \"Allow hyperref and natbib to work together\",\n    \"documentation\": \"https://ctan.org/pkg/hypernat\"\n  },\n  \"hyperref\": {\n    \"command\": \"hyperref\",\n    \"detail\": \"Extensive support for hypertext in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/hyperref\"\n  },\n  \"hyperxmp\": {\n    \"command\": \"hyperxmp\",\n    \"detail\": \"Embed XMP metadata within a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/hyperxmp\"\n  },\n  \"hypgotoe\": {\n    \"command\": \"hypgotoe\",\n    \"detail\": \"Links to embedded files\",\n    \"documentation\": \"https://ctan.org/pkg/hypgotoe\"\n  },\n  \"hyphenat\": {\n    \"command\": \"hyphenat\",\n    \"detail\": \"Disable/enable hypenation\",\n    \"documentation\": \"https://ctan.org/pkg/hyphenat\"\n  },\n  \"hyphsubst\": {\n    \"command\": \"hyphsubst\",\n    \"detail\": \"Substitute hyphenation patterns\",\n    \"documentation\": \"https://ctan.org/pkg/hyphsubst\"\n  },\n  \"ibarra\": {\n    \"command\": \"ibarra\",\n    \"detail\": \"LaTeX support for the Ibarra Real Nova family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/ibarra\"\n  },\n  \"icelandic\": {\n    \"command\": \"icelandic\",\n    \"detail\": \"Icelandic Fonts\",\n    \"documentation\": \"https://ctan.org/pkg/icelandic\"\n  },\n  \"icite\": {\n    \"command\": \"icite\",\n    \"detail\": \"Indices locorum citatorum\",\n    \"documentation\": \"https://ctan.org/pkg/icite\"\n  },\n  \"icomma\": {\n    \"command\": \"icomma\",\n    \"detail\": \"Intelligent commas for decimal numbers\",\n    \"documentation\": \"https://ctan.org/pkg/icomma\"\n  },\n  \"identkey\": {\n    \"command\": \"identkey\",\n    \"detail\": \"Typesetting bracketed dichotomous identification keys\",\n    \"documentation\": \"https://ctan.org/pkg/identkey\"\n  },\n  \"idxcmds\": {\n    \"command\": \"idxcmds\",\n    \"detail\": \"Semantic commands for adding formatted index entries\",\n    \"documentation\": \"https://ctan.org/pkg/idxcmds\"\n  },\n  \"idxlayout\": {\n    \"command\": \"idxlayout\",\n    \"detail\": \"Configurable index layout, responsive to KOMA-Script and memoir\",\n    \"documentation\": \"https://ctan.org/pkg/idxlayout\"\n  },\n  \"ieeepes\": {\n    \"command\": \"ieeepes\",\n    \"detail\": \"IEEE Power Engineering Society Transactions\",\n    \"documentation\": \"https://ctan.org/pkg/ieeepes\"\n  },\n  \"iexec\": {\n    \"command\": \"iexec\",\n    \"detail\": \"Execute shell commands and input their output\",\n    \"documentation\": \"https://ctan.org/pkg/iexec\"\n  },\n  \"ifallfalse\": {\n    \"command\": \"ifallfalse\",\n    \"detail\": \"Compare a string against a set of other strings\",\n    \"documentation\": \"https://ctan.org/pkg/ifallfalse\"\n  },\n  \"ifdraft\": {\n    \"command\": \"ifdraft\",\n    \"detail\": \"Detect “draft” and “final” class options\",\n    \"documentation\": \"https://ctan.org/pkg/ifdraft\"\n  },\n  \"ifetex\": {\n    \"command\": \"ifetex\",\n    \"detail\": \"Provides \\\\ifetex switch\",\n    \"documentation\": \"https://ctan.org/pkg/ifetex\"\n  },\n  \"iffont\": {\n    \"command\": \"iffont\",\n    \"detail\": \"Conditionally load fonts with fontspec\",\n    \"documentation\": \"https://ctan.org/pkg/iffont\"\n  },\n  \"iflang\": {\n    \"command\": \"iflang\",\n    \"detail\": \"Expandable checks for the current language\",\n    \"documentation\": \"https://ctan.org/pkg/iflang\"\n  },\n  \"ifluatex\": {\n    \"command\": \"ifluatex\",\n    \"detail\": \"Provides the \\\\ifluatex switch\",\n    \"documentation\": \"https://ctan.org/pkg/ifluatex\"\n  },\n  \"ifmslide\": {\n    \"command\": \"ifmslide\",\n    \"detail\": \"Presentation slides for screen and printouts\",\n    \"documentation\": \"https://ctan.org/pkg/ifmslide\"\n  },\n  \"ifmtarg\": {\n    \"command\": \"ifmtarg\",\n    \"detail\": \"If-then-else command for processing potentially empty arguments\",\n    \"documentation\": \"https://ctan.org/pkg/ifmtarg\"\n  },\n  \"ifnextok\": {\n    \"command\": \"ifnextok\",\n    \"detail\": \"Utility macro: peek ahead without ignoring spaces\",\n    \"documentation\": \"https://ctan.org/pkg/ifnextok\"\n  },\n  \"ifoddpage\": {\n    \"command\": \"ifoddpage\",\n    \"detail\": \"Determine if the current page is odd or even\",\n    \"documentation\": \"https://ctan.org/pkg/ifoddpage\"\n  },\n  \"ifpdf\": {\n    \"command\": \"ifpdf\",\n    \"detail\": \"Provides the \\\\ifpdf conditional\",\n    \"documentation\": \"https://ctan.org/pkg/ifpdf\"\n  },\n  \"ifplatform\": {\n    \"command\": \"ifplatform\",\n    \"detail\": \"Conditionals to test which platform is being used\",\n    \"documentation\": \"https://ctan.org/pkg/ifplatform\"\n  },\n  \"ifptex\": {\n    \"command\": \"ifptex\",\n    \"detail\": \"Check if the engine is pTeX or one of its derivatives\",\n    \"documentation\": \"https://ctan.org/pkg/ifptex\"\n  },\n  \"ifsym\": {\n    \"command\": \"ifsym\",\n    \"detail\": \"A collection of symbols\",\n    \"documentation\": \"https://ctan.org/pkg/ifsym\"\n  },\n  \"iftex\": {\n    \"command\": \"iftex\",\n    \"detail\": \"Am I running under pdfTeX, XeTeX or LuaTeX?\",\n    \"documentation\": \"https://ctan.org/pkg/iftex\"\n  },\n  \"ifthen\": {\n    \"command\": \"ifthen\",\n    \"detail\": \"Conditional commands in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/ifthen\"\n  },\n  \"ifthenx\": {\n    \"command\": \"ifthenx\",\n    \"detail\": \"Extra tests for \\\\ifthenelse\",\n    \"documentation\": \"https://ctan.org/pkg/ifthenx\"\n  },\n  \"ifvtex\": {\n    \"command\": \"ifvtex\",\n    \"detail\": \"Detects use of VTeX and its facilities\",\n    \"documentation\": \"https://ctan.org/pkg/ifvtex\"\n  },\n  \"ifxetex\": {\n    \"command\": \"ifxetex\",\n    \"detail\": \"Am I running under XeTeX?\",\n    \"documentation\": \"https://ctan.org/pkg/ifxetex\"\n  },\n  \"ifxptex\": {\n    \"command\": \"ifxptex\",\n    \"detail\": \"Detect pTeX and its derivatives\",\n    \"documentation\": \"https://ctan.org/pkg/ifxptex\"\n  },\n  \"iitem\": {\n    \"command\": \"iitem\",\n    \"detail\": \"Multiple level of lists in one list-like environment\",\n    \"documentation\": \"https://ctan.org/pkg/iitem\"\n  },\n  \"imac\": {\n    \"command\": \"imac\",\n    \"detail\": \"International Modal Analysis Conference format\",\n    \"documentation\": \"https://ctan.org/pkg/imac\"\n  },\n  \"imakeidx\": {\n    \"command\": \"imakeidx\",\n    \"detail\": \"A package for producing multiple indexes\",\n    \"documentation\": \"https://ctan.org/pkg/imakeidx\"\n  },\n  \"imfellenglish\": {\n    \"command\": \"imfellEnglish\",\n    \"detail\": \"IM Fell English fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/imfellenglish\"\n  },\n  \"impnattypo\": {\n    \"command\": \"impnattypo\",\n    \"detail\": \"Support typography of l’Imprimerie Nationale Française\",\n    \"documentation\": \"https://ctan.org/pkg/impnattypo\"\n  },\n  \"import\": {\n    \"command\": \"import\",\n    \"detail\": \"Establish input relative to a directory\",\n    \"documentation\": \"https://ctan.org/pkg/import\"\n  },\n  \"incgraph\": {\n    \"command\": \"incgraph\",\n    \"detail\": \"Sophisticated graphics inclusion in a PDF document\",\n    \"documentation\": \"https://ctan.org/pkg/incgraph\"\n  },\n  \"includernw\": {\n    \"command\": \"includeRnw\",\n    \"detail\": \"Include .Rnw inside .tex\",\n    \"documentation\": \"https://ctan.org/pkg/includernw\"\n  },\n  \"inconsolata\": {\n    \"command\": \"inconsolata\",\n    \"detail\": \"A monospaced font, with support files for use with TeX\",\n    \"documentation\": \"https://ctan.org/pkg/inconsolata\"\n  },\n  \"indentfirst\": {\n    \"command\": \"indentfirst\",\n    \"detail\": \"Indent first paragraph after section header\",\n    \"documentation\": \"https://ctan.org/pkg/indentfirst\"\n  },\n  \"index\": {\n    \"command\": \"index\",\n    \"detail\": \"Extended index for LaTeX including multiple indexes\",\n    \"documentation\": \"https://ctan.org/pkg/index\"\n  },\n  \"indextools\": {\n    \"command\": \"indextools\",\n    \"detail\": \"Producing multiple indices\",\n    \"documentation\": \"https://ctan.org/pkg/indextools\"\n  },\n  \"infwarerr\": {\n    \"command\": \"infwarerr\",\n    \"detail\": \"Complete set of information/warning/error message macros\",\n    \"documentation\": \"https://ctan.org/pkg/infwarerr\"\n  },\n  \"inline-images\": {\n    \"command\": \"inline-images\",\n    \"detail\": \"Inline images in base64 encoding\",\n    \"documentation\": \"https://ctan.org/pkg/inline-images\"\n  },\n  \"inlinebib\": {\n    \"command\": \"inlinebib\",\n    \"detail\": \"Citations in footnotes\",\n    \"documentation\": \"https://ctan.org/pkg/inlinebib\"\n  },\n  \"inlinedef\": {\n    \"command\": \"inlinedef\",\n    \"detail\": \"Inline expansions within definitions\",\n    \"documentation\": \"https://ctan.org/pkg/inlinedef\"\n  },\n  \"innerscript\": {\n    \"command\": \"innerscript\",\n    \"detail\": \"Modifies automatic mathematics spacing\",\n    \"documentation\": \"https://ctan.org/pkg/innerscript\"\n  },\n  \"inputenc\": {\n    \"command\": \"inputenc\",\n    \"detail\": \"Accept different input encodings\",\n    \"documentation\": \"https://ctan.org/pkg/inputenc\"\n  },\n  \"inputenx\": {\n    \"command\": \"inputenx\",\n    \"detail\": \"Enhanced input encoding handling\",\n    \"documentation\": \"https://ctan.org/pkg/inputenx\"\n  },\n  \"inputnormalization\": {\n    \"command\": \"inputnormalization\",\n    \"detail\": \"Wrapper for XeTeX's and LuaTeX's input normalization\",\n    \"documentation\": \"https://ctan.org/pkg/inputnormalization\"\n  },\n  \"inputtrc\": {\n    \"command\": \"inputtrc\",\n    \"detail\": \"Trace which file loads which\",\n    \"documentation\": \"https://ctan.org/pkg/inputtrc\"\n  },\n  \"inslrmaj\": {\n    \"command\": \"inslrmaj\",\n    \"detail\": \"Fonts based on the Insular Majuscule manuscript book-hand\",\n    \"documentation\": \"https://ctan.org/pkg/inslrmaj\"\n  },\n  \"inslrmin\": {\n    \"command\": \"inslrmin\",\n    \"detail\": \"Fonts based on the Insular Minuscule manuscript book-hand\",\n    \"documentation\": \"https://ctan.org/pkg/inslrmin\"\n  },\n  \"intcalc\": {\n    \"command\": \"intcalc\",\n    \"detail\": \"Expandable arithmetic operations with integers\",\n    \"documentation\": \"https://ctan.org/pkg/intcalc\"\n  },\n  \"inter\": {\n    \"command\": \"inter\",\n    \"detail\": \"The inter font face with support for LaTeX, XeLaTeX, and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/inter\"\n  },\n  \"interactiveworkbook\": {\n    \"command\": \"interactiveworkbook\",\n    \"detail\": \"LaTeX-based interactive PDF on the Web\",\n    \"documentation\": \"https://ctan.org/pkg/interactiveworkbook\"\n  },\n  \"interchar\": {\n    \"command\": \"interchar\",\n    \"detail\": \"Managing character class schemes in XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/interchar\"\n  },\n  \"interfaces\": {\n    \"command\": \"interfaces\",\n    \"detail\": \"Set parameters for other packages, conveniently\",\n    \"documentation\": \"https://ctan.org/pkg/interfaces\"\n  },\n  \"interpreter\": {\n    \"command\": \"interpreter\",\n    \"detail\": \"Translate input files on the fly\",\n    \"documentation\": \"https://ctan.org/pkg/interpreter\"\n  },\n  \"interval\": {\n    \"command\": \"interval\",\n    \"detail\": \"Format mathematical intervals, ensuring proper spacing\",\n    \"documentation\": \"https://ctan.org/pkg/interval\"\n  },\n  \"intopdf\": {\n    \"command\": \"intopdf\",\n    \"detail\": \"Embed non-PDF files into PDF with hyperlink\",\n    \"documentation\": \"https://ctan.org/pkg/intopdf\"\n  },\n  \"inversepath\": {\n    \"command\": \"inversepath\",\n    \"detail\": \"Calculate inverse file paths\",\n    \"documentation\": \"https://ctan.org/pkg/inversepath\"\n  },\n  \"invoice\": {\n    \"command\": \"invoice\",\n    \"detail\": \"Generate invoices\",\n    \"documentation\": \"https://ctan.org/pkg/invoice\"\n  },\n  \"invoice2\": {\n    \"command\": \"invoice2\",\n    \"detail\": \"Intelligent invoices with LaTeX3\",\n    \"documentation\": \"https://ctan.org/pkg/invoice2\"\n  },\n  \"ionumbers\": {\n    \"command\": \"ionumbers\",\n    \"detail\": \"Restyle numbers in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/ionumbers\"\n  },\n  \"ipa\": {\n    \"command\": \"ipa\",\n    \"detail\": \"LaTeX macros for using WSUIPA fonts\",\n    \"documentation\": \"https://ctan.org/pkg/ipa\"\n  },\n  \"ipaex-type1\": {\n    \"command\": \"ipaex-type1\",\n    \"detail\": \"IPAex fonts converted to Type-1 format Unicode subfonts\",\n    \"documentation\": \"https://ctan.org/pkg/ipaex-type1\"\n  },\n  \"isodate\": {\n    \"command\": \"isodate\",\n    \"detail\": \"Tune the output format of dates according to language\",\n    \"documentation\": \"https://ctan.org/pkg/isodate\"\n  },\n  \"isomath\": {\n    \"command\": \"isomath\",\n    \"detail\": \"Mathematics style for science and technology\",\n    \"documentation\": \"https://ctan.org/pkg/isomath\"\n  },\n  \"isonums\": {\n    \"command\": \"isonums\",\n    \"detail\": \"Display numbers in maths mode according to ISO 31-0\",\n    \"documentation\": \"https://ctan.org/pkg/isonums\"\n  },\n  \"isopt\": {\n    \"command\": \"isopt\",\n    \"detail\": \"Writing a TeX length with a space between number and unit\",\n    \"documentation\": \"https://ctan.org/pkg/isopt\"\n  },\n  \"isorot\": {\n    \"command\": \"isorot\",\n    \"detail\": \"Rotation of document elements\",\n    \"documentation\": \"https://ctan.org/pkg/isorot\"\n  },\n  \"isotope\": {\n    \"command\": \"isotope\",\n    \"detail\": \"A package for typesetting isotopes\",\n    \"documentation\": \"https://ctan.org/pkg/isotope\"\n  },\n  \"issuulinks\": {\n    \"command\": \"issuulinks\",\n    \"detail\": \"Produce external links instead of internal ones\",\n    \"documentation\": \"https://ctan.org/pkg/issuulinks\"\n  },\n  \"istgame\": {\n    \"command\": \"istgame\",\n    \"detail\": \"Draw Game Trees with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/istgame\"\n  },\n  \"itnumpar\": {\n    \"command\": \"itnumpar\",\n    \"detail\": \"Spell numbers in words (Italian)\",\n    \"documentation\": \"https://ctan.org/pkg/itnumpar\"\n  },\n  \"iwona\": {\n    \"command\": \"iwona\",\n    \"detail\": \"A two-element sans-serif font\",\n    \"documentation\": \"https://ctan.org/pkg/iwona\"\n  },\n  \"jamtimes\": {\n    \"command\": \"jamtimes\",\n    \"detail\": \"Expanded Times Roman fonts\",\n    \"documentation\": \"https://ctan.org/pkg/jamtimes\"\n  },\n  \"jigsaw\": {\n    \"command\": \"jigsaw\",\n    \"detail\": \"Draw jigsaw pieces with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/jigsaw\"\n  },\n  \"jkmath\": {\n    \"command\": \"jkmath\",\n    \"detail\": \"Macros for mathematics that make the code more readable\",\n    \"documentation\": \"https://ctan.org/pkg/jkmath\"\n  },\n  \"jlabels\": {\n    \"command\": \"jlabels\",\n    \"detail\": \"Make letter-sized pages of labels\",\n    \"documentation\": \"https://ctan.org/pkg/jlabels\"\n  },\n  \"jlreq-deluxe\": {\n    \"command\": \"jlreq-deluxe\",\n    \"detail\": \"Multi-weight Japanese font support for the jlreq class\",\n    \"documentation\": \"https://ctan.org/pkg/jlreq-deluxe\"\n  },\n  \"jmb\": {\n    \"command\": \"jmb\",\n    \"detail\": \"BibTeX style for the Journal of Theoretical Biology\",\n    \"documentation\": \"https://ctan.org/pkg/jmb\"\n  },\n  \"jneurosci\": {\n    \"command\": \"jneurosci\",\n    \"detail\": \"BibTeX style for the Journal of Neuroscience\",\n    \"documentation\": \"https://ctan.org/pkg/jneurosci\"\n  },\n  \"josefin\": {\n    \"command\": \"josefin\",\n    \"detail\": \"Josefin fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/josefin\"\n  },\n  \"jslectureplanner\": {\n    \"command\": \"jslectureplanner\",\n    \"detail\": \"Creation and management of university course material\",\n    \"documentation\": \"https://ctan.org/pkg/jslectureplanner\"\n  },\n  \"jumplines\": {\n    \"command\": \"jumplines\",\n    \"detail\": \"Articles with teasers and continuation later on\",\n    \"documentation\": \"https://ctan.org/pkg/jumplines\"\n  },\n  \"junicode\": {\n    \"command\": \"junicode\",\n    \"detail\": \"A TrueType font for mediaevalists\",\n    \"documentation\": \"https://ctan.org/pkg/junicode\"\n  },\n  \"jupynotex\": {\n    \"command\": \"jupynotex\",\n    \"detail\": \"Include whole or partial Jupyter notebooks in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/jupynotex\"\n  },\n  \"juraabbrev\": {\n    \"command\": \"juraabbrev\",\n    \"detail\": \"Abbreviations for typesetting (German) juridical documents\",\n    \"documentation\": \"https://ctan.org/pkg/juraabbrev\"\n  },\n  \"jurabib\": {\n    \"command\": \"jurabib\",\n    \"detail\": \"Extended BibTeX citation support for the humanities and legal texts\",\n    \"documentation\": \"https://ctan.org/pkg/jurabib\"\n  },\n  \"jurarsp\": {\n    \"command\": \"jurarsp\",\n    \"detail\": \"Citations of judgements and official documents in (German) juridical documents\",\n    \"documentation\": \"https://ctan.org/pkg/jurarsp\"\n  },\n  \"jvlisting\": {\n    \"command\": \"jvlisting\",\n    \"detail\": \"A replacement for LaTeX's verbatim package\",\n    \"documentation\": \"https://ctan.org/pkg/jvlisting\"\n  },\n  \"kalendarium\": {\n    \"command\": \"kalendarium\",\n    \"detail\": \"Print dates according to the classical Latin calendar\",\n    \"documentation\": \"https://ctan.org/pkg/kalendarium\"\n  },\n  \"kantlipsum\": {\n    \"command\": \"kantlipsum\",\n    \"detail\": \"Generate sentences in Kant's style\",\n    \"documentation\": \"https://ctan.org/pkg/kantlipsum\"\n  },\n  \"karnaugh-map\": {\n    \"command\": \"karnaugh-map\",\n    \"detail\": \"LaTeX package for drawing karnaugh maps with up to 6 variables\",\n    \"documentation\": \"https://ctan.org/pkg/karnaugh-map\"\n  },\n  \"karnaughmap\": {\n    \"command\": \"karnaughmap\",\n    \"detail\": \"Typeset Karnaugh maps\",\n    \"documentation\": \"https://ctan.org/pkg/karnaughmap\"\n  },\n  \"kblocks\": {\n    \"command\": \"kblocks\",\n    \"detail\": \"Easily typeset Control Block Diagrams and Signal Flow Graphs\",\n    \"documentation\": \"https://ctan.org/pkg/kblocks\"\n  },\n  \"kerkis\": {\n    \"command\": \"kerkis\",\n    \"detail\": \"Kerkis (Greek) font family\",\n    \"documentation\": \"https://ctan.org/pkg/kerkis\"\n  },\n  \"keycommand\": {\n    \"command\": \"keycommand\",\n    \"detail\": \"Simple creation of commands with key-value arguments\",\n    \"documentation\": \"https://ctan.org/pkg/keycommand\"\n  },\n  \"keyfloat\": {\n    \"command\": \"keyfloat\",\n    \"detail\": \"Provides a key/value interface for generating floats\",\n    \"documentation\": \"https://ctan.org/pkg/keyfloat\"\n  },\n  \"keyindex\": {\n    \"command\": \"keyindex\",\n    \"detail\": \"Index entries by key lookup\",\n    \"documentation\": \"https://ctan.org/pkg/keyindex\"\n  },\n  \"keyreader\": {\n    \"command\": \"keyreader\",\n    \"detail\": \"A robust interface to xkeyval\",\n    \"documentation\": \"https://ctan.org/pkg/keyreader\"\n  },\n  \"keystroke\": {\n    \"command\": \"keystroke\",\n    \"detail\": \"Graphical representation of keys on keyboard\",\n    \"documentation\": \"https://ctan.org/pkg/keystroke\"\n  },\n  \"keyval\": {\n    \"command\": \"keyval\",\n    \"detail\": \"Process 'key=value' schemes\",\n    \"documentation\": \"https://ctan.org/pkg/keyval\"\n  },\n  \"keyval2e\": {\n    \"command\": \"keyval2e\",\n    \"detail\": \"A lightweight and robust key-value parser\",\n    \"documentation\": \"https://ctan.org/pkg/keyval2e\"\n  },\n  \"keyvaltable\": {\n    \"command\": \"keyvaltable\",\n    \"detail\": \"Re-usable table layouts separating content and presentation\",\n    \"documentation\": \"https://ctan.org/pkg/keyvaltable\"\n  },\n  \"kix\": {\n    \"command\": \"kix\",\n    \"detail\": \"Typeset KIX codes\",\n    \"documentation\": \"https://ctan.org/pkg/kix\"\n  },\n  \"knitting\": {\n    \"command\": \"knitting\",\n    \"detail\": \"Produce knitting charts, in Plain TeX or LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/knitting\"\n  },\n  \"knowledge\": {\n    \"command\": \"knowledge\",\n    \"detail\": \"Displaying, hyperlinking, and indexing notions in a document\",\n    \"documentation\": \"https://ctan.org/pkg/knowledge\"\n  },\n  \"koma-moderncvclassic\": {\n    \"command\": \"koma-moderncvclassic\",\n    \"detail\": \"Makes the style and command of moderncv (style classic) available\\n       for koma-classes and thus compatible with BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/koma-moderncvclassic\"\n  },\n  \"kpfonts\": {\n    \"command\": \"kpfonts\",\n    \"detail\": \"A complete set of fonts for text and mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/kpfonts\"\n  },\n  \"kpfonts-otf\": {\n    \"command\": \"kpfonts-otf\",\n    \"detail\": \"OTF version of the Kp-fonts\",\n    \"documentation\": \"https://ctan.org/pkg/kpfonts-otf\"\n  },\n  \"ktv-texdata\": {\n    \"command\": \"ktv-texdata\",\n    \"detail\": \"Extract subsets of documents\",\n    \"documentation\": \"https://ctan.org/pkg/ktv-texdata\"\n  },\n  \"ku-template\": {\n    \"command\": \"ku-template\",\n    \"detail\": \"Copenhagen University or faculty logo for front page\",\n    \"documentation\": \"https://ctan.org/pkg/ku-template\"\n  },\n  \"kurdishlipsum\": {\n    \"command\": \"kurdishlipsum\",\n    \"detail\": \"A ‘lipsum’ package for the Kurdish language\",\n    \"documentation\": \"https://ctan.org/pkg/kurdishlipsum\"\n  },\n  \"kurier\": {\n    \"command\": \"kurier\",\n    \"detail\": \"A two-element sans-serif typeface\",\n    \"documentation\": \"https://ctan.org/pkg/kurier\"\n  },\n  \"kvdefinekeys\": {\n    \"command\": \"kvdefinekeys\",\n    \"detail\": \"Define keys for use in the kvsetkeys package\",\n    \"documentation\": \"https://ctan.org/pkg/kvdefinekeys\"\n  },\n  \"kvmap\": {\n    \"command\": \"kvmap\",\n    \"detail\": \"Create Karnaugh maps with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/kvmap\"\n  },\n  \"kvoptions\": {\n    \"command\": \"kvoptions\",\n    \"detail\": \"Key value format for package options\",\n    \"documentation\": \"https://ctan.org/pkg/kvoptions\"\n  },\n  \"kvsetkeys\": {\n    \"command\": \"kvsetkeys\",\n    \"detail\": \"Key value parser with default handler support\",\n    \"documentation\": \"https://ctan.org/pkg/kvsetkeys\"\n  },\n  \"l3keys2e\": {\n    \"command\": \"l3keys2e\",\n    \"detail\": \"LaTeX2e option processing using LaTeX3 keys\",\n    \"documentation\": \"https://ctan.org/pkg/l3keys2e\"\n  },\n  \"labels\": {\n    \"command\": \"labels\",\n    \"detail\": \"Print sheets of sticky labels\",\n    \"documentation\": \"https://ctan.org/pkg/labels\"\n  },\n  \"labels4easylist\": {\n    \"command\": \"labels4easylist\",\n    \"detail\": \"Add reference labels to easylist items\",\n    \"documentation\": \"https://ctan.org/pkg/labels4easylist\"\n  },\n  \"labelschanged\": {\n    \"command\": \"labelschanged\",\n    \"detail\": \"Identify labels which cause endless “may have changed” warnings\",\n    \"documentation\": \"https://ctan.org/pkg/labelschanged\"\n  },\n  \"labyrinth\": {\n    \"command\": \"labyrinth\",\n    \"detail\": \"Draw labyrinths and solution paths\",\n    \"documentation\": \"https://ctan.org/pkg/labyrinth\"\n  },\n  \"ladder\": {\n    \"command\": \"ladder\",\n    \"detail\": \"Draw simple ladder diagrams using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/ladder\"\n  },\n  \"langcode\": {\n    \"command\": \"langcode\",\n    \"detail\": \"Simple language-dependent settings based on language codes\",\n    \"documentation\": \"https://ctan.org/pkg/langcode\"\n  },\n  \"langsci-affiliations\": {\n    \"command\": \"langsci-affiliations\",\n    \"detail\": \"Collect and order authors and affiliations\",\n    \"documentation\": \"https://ctan.org/pkg/langsci-affiliations\"\n  },\n  \"langsci-avm\": {\n    \"command\": \"langsci-avm\",\n    \"detail\": \"Attribute-value matrices and feature structures for use in linguistics\",\n    \"documentation\": \"https://ctan.org/pkg/langsci-avm\"\n  },\n  \"lapdf\": {\n    \"command\": \"lapdf\",\n    \"detail\": \"PDF drawing directly in TeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/lapdf\"\n  },\n  \"lastpackage\": {\n    \"command\": \"lastpackage\",\n    \"detail\": \"Indicates the last loaded package\",\n    \"documentation\": \"https://ctan.org/pkg/lastpackage\"\n  },\n  \"lastpage\": {\n    \"command\": \"lastpage\",\n    \"detail\": \"Reference last page for Page N of M type footers\",\n    \"documentation\": \"https://ctan.org/pkg/lastpage\"\n  },\n  \"latex2man\": {\n    \"command\": \"latex2man\",\n    \"detail\": \"Translate LaTeX-based manual pages into Unix man format\",\n    \"documentation\": \"https://ctan.org/pkg/latex2man\"\n  },\n  \"latexbangla\": {\n    \"command\": \"latexbangla\",\n    \"detail\": \"Enhanced LaTeX integration for Bangla\",\n    \"documentation\": \"https://ctan.org/pkg/latexbangla\"\n  },\n  \"latexbug\": {\n    \"command\": \"latexbug\",\n    \"detail\": \"Bug-classification for LaTeX related bugs\",\n    \"documentation\": \"https://ctan.org/pkg/latexbug\"\n  },\n  \"latexcolors\": {\n    \"command\": \"latexcolors\",\n    \"detail\": \"Use color definitions from latexcolor.com\",\n    \"documentation\": \"https://ctan.org/pkg/latexcolors\"\n  },\n  \"latexdemo\": {\n    \"command\": \"latexdemo\",\n    \"detail\": \"Demonstrate LaTeX code with its resulting output\",\n    \"documentation\": \"https://ctan.org/pkg/latexdemo\"\n  },\n  \"latexgit\": {\n    \"command\": \"latexgit\",\n    \"detail\": \"A LaTeX git wrapper\",\n    \"documentation\": \"https://ctan.org/pkg/latexgit\"\n  },\n  \"latexrelease\": {\n    \"command\": \"latexrelease\",\n    \"detail\": \"LaTeX release emulation\",\n    \"documentation\": \"https://ctan.org/pkg/latexrelease\"\n  },\n  \"latin\": {\n    \"command\": \"latin\",\n    \"detail\": \"Latin language definition for Babel\",\n    \"documentation\": \"https://ctan.org/pkg/latin\"\n  },\n  \"latino-sine-flexione\": {\n    \"command\": \"latino-sine-flexione\",\n    \"detail\": \"LaTeX support for documents written in Peano’s Interlingua\",\n    \"documentation\": \"https://ctan.org/pkg/latino-sine-flexione\"\n  },\n  \"lato\": {\n    \"command\": \"lato\",\n    \"detail\": \"Lato font family and LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/lato\"\n  },\n  \"layaureo\": {\n    \"command\": \"layaureo\",\n    \"detail\": \"A package to improve the A4 page layout\",\n    \"documentation\": \"https://ctan.org/pkg/layaureo\"\n  },\n  \"layout\": {\n    \"command\": \"layout\",\n    \"detail\": \"View the layout of a document\",\n    \"documentation\": \"https://ctan.org/pkg/layout\"\n  },\n  \"layouts\": {\n    \"command\": \"layouts\",\n    \"detail\": \"Display various elements of a document's layout\",\n    \"documentation\": \"https://ctan.org/pkg/layouts\"\n  },\n  \"lazylist\": {\n    \"command\": \"lazylist\",\n    \"detail\": \"Lists in TeX’s “mouth”\",\n    \"documentation\": \"https://ctan.org/pkg/lazylist\"\n  },\n  \"lccaps\": {\n    \"command\": \"lccaps\",\n    \"detail\": \"Lowercased (spaced) small capitals\",\n    \"documentation\": \"https://ctan.org/pkg/lccaps\"\n  },\n  \"lcd\": {\n    \"command\": \"lcd\",\n    \"detail\": \"Alphanumerical LCD-style displays\",\n    \"documentation\": \"https://ctan.org/pkg/lcd\"\n  },\n  \"lcg\": {\n    \"command\": \"lcg\",\n    \"detail\": \"Generate random integers\",\n    \"documentation\": \"https://ctan.org/pkg/lcg\"\n  },\n  \"leading\": {\n    \"command\": \"leading\",\n    \"detail\": \"Define leading with a length\",\n    \"documentation\": \"https://ctan.org/pkg/leading\"\n  },\n  \"leadsheets\": {\n    \"command\": \"leadsheets\",\n    \"detail\": \"Typesetting leadsheets and songbooks\",\n    \"documentation\": \"https://ctan.org/pkg/leadsheets\"\n  },\n  \"lecturer\": {\n    \"command\": \"lecturer\",\n    \"detail\": \"On-screen presentations for (almost) all formats\",\n    \"documentation\": \"https://ctan.org/pkg/lecturer\"\n  },\n  \"lectureslides\": {\n    \"command\": \"lectureslides\",\n    \"detail\": \"Combine single PDF files into one file\",\n    \"documentation\": \"https://ctan.org/pkg/lectureslides\"\n  },\n  \"ledarab\": {\n    \"command\": \"ledarab\",\n    \"detail\": \"Typeset scholarly editions in arabic\",\n    \"documentation\": \"https://ctan.org/pkg/ledarab\"\n  },\n  \"ledmac\": {\n    \"command\": \"ledmac\",\n    \"detail\": \"Typeset scholarly editions\",\n    \"documentation\": \"https://ctan.org/pkg/ledmac\"\n  },\n  \"ledpar\": {\n    \"command\": \"ledpar\",\n    \"detail\": \"Typeset scholarly editions in parallel texts\",\n    \"documentation\": \"https://ctan.org/pkg/ledpar\"\n  },\n  \"leftidx\": {\n    \"command\": \"leftidx\",\n    \"detail\": \"Left and right subscripts and superscripts in math mode\",\n    \"documentation\": \"https://ctan.org/pkg/leftidx\"\n  },\n  \"leftindex\": {\n    \"command\": \"leftindex\",\n    \"detail\": \"Left indices with better spacing\",\n    \"documentation\": \"https://ctan.org/pkg/leftindex\"\n  },\n  \"leipzig\": {\n    \"command\": \"leipzig\",\n    \"detail\": \"Typeset and index linguistic gloss abbreviations\",\n    \"documentation\": \"https://ctan.org/pkg/leipzig\"\n  },\n  \"lengthconvert\": {\n    \"command\": \"lengthconvert\",\n    \"detail\": \"Express lengths in arbitrary units\",\n    \"documentation\": \"https://ctan.org/pkg/lengthconvert\"\n  },\n  \"letltxmacro\": {\n    \"command\": \"letltxmacro\",\n    \"detail\": \"Let assignment for LaTeX macros\",\n    \"documentation\": \"https://ctan.org/pkg/letltxmacro\"\n  },\n  \"letter\": {\n    \"command\": \"letter\",\n    \"detail\": \"The standard LaTeX2e letter document class\",\n    \"documentation\": \"https://ctan.org/pkg/letter\"\n  },\n  \"letterswitharrows\": {\n    \"command\": \"letterswitharrows\",\n    \"detail\": \"Draw arrows over math letters\",\n    \"documentation\": \"https://ctan.org/pkg/letterswitharrows\"\n  },\n  \"lettrine\": {\n    \"command\": \"lettrine\",\n    \"detail\": \"Typeset dropped capitals\",\n    \"documentation\": \"https://ctan.org/pkg/lettrine\"\n  },\n  \"lewis\": {\n    \"command\": \"lewis\",\n    \"detail\": \"Draw Lewis structures\",\n    \"documentation\": \"https://ctan.org/pkg/lewis\"\n  },\n  \"lexend\": {\n    \"command\": \"lexend\",\n    \"detail\": \"The Lexend fonts for XeLaTeX and LuaLaTeX through fontspec\",\n    \"documentation\": \"https://ctan.org/pkg/lexend\"\n  },\n  \"lexikon\": {\n    \"command\": \"lexikon\",\n    \"detail\": \"Macros for a two language dictionary\",\n    \"documentation\": \"https://ctan.org/pkg/lexikon\"\n  },\n  \"lexref\": {\n    \"command\": \"lexref\",\n    \"detail\": \"Convenient and uniform references to legal provisions\",\n    \"documentation\": \"https://ctan.org/pkg/lexref\"\n  },\n  \"lgreek\": {\n    \"command\": \"lgreek\",\n    \"detail\": \"LaTeX macros for using Silvio Levy's Greek fonts\",\n    \"documentation\": \"https://ctan.org/pkg/lgreek\"\n  },\n  \"lhelp\": {\n    \"command\": \"lhelp\",\n    \"detail\": \"Miscellaneous helper packages\",\n    \"documentation\": \"https://ctan.org/pkg/lhelp\"\n  },\n  \"libertine\": {\n    \"command\": \"libertine\",\n    \"detail\": \"Use of Linux Libertine and Biolinum fonts with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/libertine\"\n  },\n  \"libertinegc\": {\n    \"command\": \"libertinegc\",\n    \"detail\": \"Libertine add-on to support Greek and Cyrillic\",\n    \"documentation\": \"https://ctan.org/pkg/libertinegc\"\n  },\n  \"libertinus\": {\n    \"command\": \"libertinus\",\n    \"detail\": \"Wrapper to use the correct libertinus package according to the used TeX engine\",\n    \"documentation\": \"https://ctan.org/pkg/libertinus\"\n  },\n  \"libertinus-otf\": {\n    \"command\": \"libertinus-otf\",\n    \"detail\": \"Support for Libertinus OpenType\",\n    \"documentation\": \"https://ctan.org/pkg/libertinus-otf\"\n  },\n  \"libertinus-type1\": {\n    \"command\": \"libertinus-type1\",\n    \"detail\": \"Support for using Libertinus fonts with LaTeX/pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/libertinus-type1\"\n  },\n  \"libertinust1math\": {\n    \"command\": \"libertinust1math\",\n    \"detail\": \"A Type 1 font and LaTeX support for Libertinus Math\",\n    \"documentation\": \"https://ctan.org/pkg/libertinust1math\"\n  },\n  \"libgreek\": {\n    \"command\": \"libgreek\",\n    \"detail\": \"Use Libertine or Biolinum Greek glyphs in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/libgreek\"\n  },\n  \"librarian\": {\n    \"command\": \"librarian\",\n    \"detail\": \"Tools to create bibliographies in TeX\",\n    \"documentation\": \"https://ctan.org/pkg/librarian\"\n  },\n  \"librebaskerville\": {\n    \"command\": \"librebaskerville\",\n    \"detail\": \"The Libre Baskerville family of fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/librebaskerville\"\n  },\n  \"librebodoni\": {\n    \"command\": \"LibreBodoni\",\n    \"detail\": \"Libre Bodoni fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/librebodoni\"\n  },\n  \"librecaslon\": {\n    \"command\": \"librecaslon\",\n    \"detail\": \"Libre Caslon fonts, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/librecaslon\"\n  },\n  \"librefranklin\": {\n    \"command\": \"librefranklin\",\n    \"detail\": \"LaTeX support for the Libre-Franklin family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/librefranklin\"\n  },\n  \"libris\": {\n    \"command\": \"libris\",\n    \"detail\": \"Libris ADF fonts, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/libris\"\n  },\n  \"lie-hasse\": {\n    \"command\": \"lie-hasse\",\n    \"detail\": \"Draw Hasse diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/lie-hasse\"\n  },\n  \"lilyglyphs\": {\n    \"command\": \"lilyglyphs\",\n    \"detail\": \"Access lilypond fragments and glyphs, in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lilyglyphs\"\n  },\n  \"limap\": {\n    \"command\": \"limap\",\n    \"detail\": \"Typeset maps and blocks according to the Information Mapping® method\",\n    \"documentation\": \"https://ctan.org/pkg/limap\"\n  },\n  \"linearb\": {\n    \"command\": \"linearb\",\n    \"detail\": \"Linear B script used in the Bronze Age for Mycenaean Greek\",\n    \"documentation\": \"https://ctan.org/pkg/linearb\"\n  },\n  \"linegoal\": {\n    \"command\": \"linegoal\",\n    \"detail\": \"A “dimen” that returns the space left on the line\",\n    \"documentation\": \"https://ctan.org/pkg/linegoal\"\n  },\n  \"lineno\": {\n    \"command\": \"lineno\",\n    \"detail\": \"Line numbers on paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/lineno\"\n  },\n  \"ling-macros\": {\n    \"command\": \"ling-macros\",\n    \"detail\": \"Macros for typesetting formal linguistics\",\n    \"documentation\": \"https://ctan.org/pkg/ling-macros\"\n  },\n  \"linguex\": {\n    \"command\": \"linguex\",\n    \"detail\": \"Format linguists' examples\",\n    \"documentation\": \"https://ctan.org/pkg/linguex\"\n  },\n  \"linguisticspro\": {\n    \"command\": \"linguisticspro\",\n    \"detail\": \"LinguisticsPro fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/linguisticspro\"\n  },\n  \"linop\": {\n    \"command\": \"linop\",\n    \"detail\": \"Typeset linear operators as they appear in quantum theory or linear algebra\",\n    \"documentation\": \"https://ctan.org/pkg/linop\"\n  },\n  \"linsys\": {\n    \"command\": \"linsys\",\n    \"detail\": \"Typeset systems of linear equations\",\n    \"documentation\": \"https://ctan.org/pkg/linsys\"\n  },\n  \"lips\": {\n    \"command\": \"lips\",\n    \"detail\": \"Text ellipses in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lips\"\n  },\n  \"lipsum\": {\n    \"command\": \"lipsum\",\n    \"detail\": \"Easy access to the Lorem Ipsum dummy text\",\n    \"documentation\": \"https://ctan.org/pkg/lipsum\"\n  },\n  \"lisp-on-tex\": {\n    \"command\": \"lisp-on-tex\",\n    \"detail\": \"Execute LISP code in a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/lisp-on-tex\"\n  },\n  \"listbib\": {\n    \"command\": \"listbib\",\n    \"detail\": \"Lists contents of BibTeX files\",\n    \"documentation\": \"https://ctan.org/pkg/listbib\"\n  },\n  \"listing\": {\n    \"command\": \"listing\",\n    \"detail\": \"Produce formatted program listings\",\n    \"documentation\": \"https://ctan.org/pkg/listing\"\n  },\n  \"listings\": {\n    \"command\": \"listings\",\n    \"detail\": \"Typeset source code listings using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/listings\"\n  },\n  \"listings-ext\": {\n    \"command\": \"listings-ext\",\n    \"detail\": \"Automated input of source\",\n    \"documentation\": \"https://ctan.org/pkg/listings-ext\"\n  },\n  \"listingsutf8\": {\n    \"command\": \"listingsutf8\",\n    \"detail\": \"Allow UTF-8 in listings input\",\n    \"documentation\": \"https://ctan.org/pkg/listingsutf8\"\n  },\n  \"listlbls\": {\n    \"command\": \"listlbls\",\n    \"detail\": \"Creates a list of all labels used throughout a document\",\n    \"documentation\": \"https://ctan.org/pkg/listlbls\"\n  },\n  \"listliketab\": {\n    \"command\": \"listliketab\",\n    \"detail\": \"Typeset lists as tables\",\n    \"documentation\": \"https://ctan.org/pkg/listliketab\"\n  },\n  \"listofitems\": {\n    \"command\": \"listofitems\",\n    \"detail\": \"Grab items in lists using user-specified sep char\",\n    \"documentation\": \"https://ctan.org/pkg/listofitems\"\n  },\n  \"listofsymbols\": {\n    \"command\": \"listofsymbols\",\n    \"detail\": \"Create and manipulate lists of symbols\",\n    \"documentation\": \"https://ctan.org/pkg/listofsymbols\"\n  },\n  \"lithuanian\": {\n    \"command\": \"lithuanian\",\n    \"detail\": \"Lithuanian language support\",\n    \"documentation\": \"https://ctan.org/pkg/lithuanian\"\n  },\n  \"liturg\": {\n    \"command\": \"liturg\",\n    \"detail\": \"Support for typesetting Catholic liturgical texts\",\n    \"documentation\": \"https://ctan.org/pkg/liturg\"\n  },\n  \"llncsconf\": {\n    \"command\": \"llncsconf\",\n    \"detail\": \"LaTeX package extending Springer's llncs class\",\n    \"documentation\": \"https://ctan.org/pkg/llncsconf\"\n  },\n  \"lmake\": {\n    \"command\": \"lmake\",\n    \"detail\": \"Process lists to do repetitive actions\",\n    \"documentation\": \"https://ctan.org/pkg/lmake\"\n  },\n  \"locality\": {\n    \"command\": \"locality\",\n    \"detail\": \"Various macros for keeping things local\",\n    \"documentation\": \"https://ctan.org/pkg/locality\"\n  },\n  \"localloc\": {\n    \"command\": \"localloc\",\n    \"detail\": \"Macros for localizing TeX register allocations\",\n    \"documentation\": \"https://ctan.org/pkg/localloc\"\n  },\n  \"logbox\": {\n    \"command\": \"logbox\",\n    \"detail\": \"e-TeX showbox facilities for exploration purposes\",\n    \"documentation\": \"https://ctan.org/pkg/logbox\"\n  },\n  \"logicproof\": {\n    \"command\": \"logicproof\",\n    \"detail\": \"Box proofs for propositional and predicate logic\",\n    \"documentation\": \"https://ctan.org/pkg/logicproof\"\n  },\n  \"logicpuzzle\": {\n    \"command\": \"logicpuzzle\",\n    \"detail\": \"Typeset (grid-based) logic puzzles\",\n    \"documentation\": \"https://ctan.org/pkg/logicpuzzle\"\n  },\n  \"logix\": {\n    \"command\": \"logix\",\n    \"detail\": \"Supplement to the Unicode math symbols\",\n    \"documentation\": \"https://ctan.org/pkg/logix\"\n  },\n  \"logpap\": {\n    \"command\": \"logpap\",\n    \"detail\": \"Generate logarithmic graph paper with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/logpap\"\n  },\n  \"logreq\": {\n    \"command\": \"logreq\",\n    \"detail\": \"Support for automation of the LaTeX workflow\",\n    \"documentation\": \"https://ctan.org/pkg/logreq\"\n  },\n  \"logsys\": {\n    \"command\": \"logsys\",\n    \"detail\": \"Draw logarithmic coordinate systems\",\n    \"documentation\": \"https://ctan.org/pkg/logsys\"\n  },\n  \"longdivision\": {\n    \"command\": \"longdivision\",\n    \"detail\": \"Typesets long division\",\n    \"documentation\": \"https://ctan.org/pkg/longdivision\"\n  },\n  \"longfbox\": {\n    \"command\": \"longfbox\",\n    \"detail\": \"Draw framed boxes with standard CSS attributes that can break over multiple pages\",\n    \"documentation\": \"https://ctan.org/pkg/longfbox\"\n  },\n  \"longfigure\": {\n    \"command\": \"longfigure\",\n    \"detail\": \"Provides a figure-like environment that break over pages\",\n    \"documentation\": \"https://ctan.org/pkg/longfigure\"\n  },\n  \"longnamefilelist\": {\n    \"command\": \"longnamefilelist\",\n    \"detail\": \"Tidy \\\\listfiles with long file names\",\n    \"documentation\": \"https://ctan.org/pkg/longnamefilelist\"\n  },\n  \"longtable\": {\n    \"command\": \"longtable\",\n    \"detail\": \"Allow tables to flow over page boundaries\",\n    \"documentation\": \"https://ctan.org/pkg/longtable\"\n  },\n  \"loops\": {\n    \"command\": \"loops\",\n    \"detail\": \"General looping macros for use with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/loops\"\n  },\n  \"lpform\": {\n    \"command\": \"lpform\",\n    \"detail\": \"Typesetting linear programming formulations and sets of equations\",\n    \"documentation\": \"https://ctan.org/pkg/lpform\"\n  },\n  \"lpic\": {\n    \"command\": \"lpic\",\n    \"detail\": \"Put LaTeX material over included graphics\",\n    \"documentation\": \"https://ctan.org/pkg/lpic\"\n  },\n  \"lplfitch\": {\n    \"command\": \"lplfitch\",\n    \"detail\": \"Fitch-style natural deduction proofs\",\n    \"documentation\": \"https://ctan.org/pkg/lplfitch\"\n  },\n  \"lroundrect\": {\n    \"command\": \"lroundrect\",\n    \"detail\": \"LaTeX macros for utilizing the roundrect MetaPost routines\",\n    \"documentation\": \"https://ctan.org/pkg/lroundrect\"\n  },\n  \"lsc\": {\n    \"command\": \"lsc\",\n    \"detail\": \"Typesetting Live Sequence Charts\",\n    \"documentation\": \"https://ctan.org/pkg/lsc\"\n  },\n  \"lscape\": {\n    \"command\": \"lscape\",\n    \"detail\": \"Place selected parts of a document in landscape\",\n    \"documentation\": \"https://ctan.org/pkg/lscape\"\n  },\n  \"lstbayes\": {\n    \"command\": \"lstbayes\",\n    \"detail\": \"Listings language driver for Bayesian modeling languages\",\n    \"documentation\": \"https://ctan.org/pkg/lstbayes\"\n  },\n  \"lstfiracode\": {\n    \"command\": \"lstfiracode\",\n    \"detail\": \"Use Fira Code font for listings\",\n    \"documentation\": \"https://ctan.org/pkg/lstfiracode\"\n  },\n  \"lt3graph\": {\n    \"command\": \"lt3graph\",\n    \"detail\": \"Provide a graph datastructure for experimental LaTeX3\",\n    \"documentation\": \"https://ctan.org/pkg/lt3graph\"\n  },\n  \"ltablex\": {\n    \"command\": \"ltablex\",\n    \"detail\": \"Table package extensions\",\n    \"documentation\": \"https://ctan.org/pkg/ltablex\"\n  },\n  \"ltabptch\": {\n    \"command\": \"ltabptch\",\n    \"detail\": \"Bug fix for longtable\",\n    \"documentation\": \"https://ctan.org/pkg/ltabptch\"\n  },\n  \"ltb2bib\": {\n    \"command\": \"ltb2bib\",\n    \"detail\": \"Converts amsrefs' .ltb bibliographical databases to BibTeX format\",\n    \"documentation\": \"https://ctan.org/pkg/ltb2bib\"\n  },\n  \"ltcaption\": {\n    \"command\": \"ltcaption\",\n    \"detail\": \"Fix some caption problems in longtables\",\n    \"documentation\": \"https://ctan.org/pkg/ltcaption\"\n  },\n  \"ltxcmds\": {\n    \"command\": \"ltxcmds\",\n    \"detail\": \"Some LaTeX kernel commands for general use\",\n    \"documentation\": \"https://ctan.org/pkg/ltxcmds\"\n  },\n  \"ltxdockit\": {\n    \"command\": \"ltxdockit\",\n    \"detail\": \"Documentation support\",\n    \"documentation\": \"https://ctan.org/pkg/ltxdockit\"\n  },\n  \"ltxgrid\": {\n    \"command\": \"ltxgrid\",\n    \"detail\": \"Control of the page grid\",\n    \"documentation\": \"https://ctan.org/pkg/ltxgrid\"\n  },\n  \"ltxkeys\": {\n    \"command\": \"ltxkeys\",\n    \"detail\": \"A robust key parser for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ltxkeys\"\n  },\n  \"ltxnew\": {\n    \"command\": \"ltxnew\",\n    \"detail\": \"A simple means of creating commands\",\n    \"documentation\": \"https://ctan.org/pkg/ltxnew\"\n  },\n  \"ltxtable\": {\n    \"command\": \"ltxtable\",\n    \"detail\": \"Longtable and tabularx merge\",\n    \"documentation\": \"https://ctan.org/pkg/ltxtable\"\n  },\n  \"ltxtools\": {\n    \"command\": \"ltxtools\",\n    \"detail\": \"A collection of LaTeX API macros\",\n    \"documentation\": \"https://ctan.org/pkg/ltxtools\"\n  },\n  \"ltxutil\": {\n    \"command\": \"ltxutil\",\n    \"detail\": \"LaTeX utility macros\",\n    \"documentation\": \"https://ctan.org/pkg/ltxutil\"\n  },\n  \"lua-check-hyphen\": {\n    \"command\": \"lua-check-hyphen\",\n    \"detail\": \"Mark hyphenations in a document, for checking\",\n    \"documentation\": \"https://ctan.org/pkg/lua-check-hyphen\"\n  },\n  \"lua-typo\": {\n    \"command\": \"lua-typo\",\n    \"detail\": \"Highlighting typographical flaws with LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lua-typo\"\n  },\n  \"lua-ul\": {\n    \"command\": \"lua-ul\",\n    \"detail\": \"Underlining for LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lua-ul\"\n  },\n  \"lua-visual-debug\": {\n    \"command\": \"lua-visual-debug\",\n    \"detail\": \"Visual debugging with LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lua-visual-debug\"\n  },\n  \"luabibentry\": {\n    \"command\": \"luabibentry\",\n    \"detail\": \"Repeat BibTeX entries in a LuaLaTeX document body\",\n    \"documentation\": \"https://ctan.org/pkg/luabibentry\"\n  },\n  \"luabidi\": {\n    \"command\": \"luabidi\",\n    \"detail\": \"Bidi functions for LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luabidi\"\n  },\n  \"luacode\": {\n    \"command\": \"luacode\",\n    \"detail\": \"Helper for executing lua code from within TeX\",\n    \"documentation\": \"https://ctan.org/pkg/luacode\"\n  },\n  \"luacolor\": {\n    \"command\": \"luacolor\",\n    \"detail\": \"Color support based on LuaTeX’s node attributes\",\n    \"documentation\": \"https://ctan.org/pkg/luacolor\"\n  },\n  \"luahyphenrules\": {\n    \"command\": \"luahyphenrules\",\n    \"detail\": \"Loading patterns in LuaLaTeX with language.dat\",\n    \"documentation\": \"https://ctan.org/pkg/luahyphenrules\"\n  },\n  \"luaimageembed\": {\n    \"command\": \"luaimageembed\",\n    \"detail\": \"Embed images as base64-encoded strings\",\n    \"documentation\": \"https://ctan.org/pkg/luaimageembed\"\n  },\n  \"luaindex\": {\n    \"command\": \"luaindex\",\n    \"detail\": \"Create index using LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luaindex\"\n  },\n  \"luainputenc\": {\n    \"command\": \"luainputenc\",\n    \"detail\": \"Replacing inputenc for use in LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luainputenc\"\n  },\n  \"lualatex-math\": {\n    \"command\": \"lualatex-math\",\n    \"detail\": \"Fixes for mathematics-related LuaLaTeX issues\",\n    \"documentation\": \"https://ctan.org/pkg/lualatex-math\"\n  },\n  \"lualatex-truncate\": {\n    \"command\": \"lualatex-truncate\",\n    \"detail\": \"A wrapper for using the truncate package with LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/lualatex-truncate\"\n  },\n  \"luamesh\": {\n    \"command\": \"luamesh\",\n    \"detail\": \"Computes and draws 2D Delaunay triangulation\",\n    \"documentation\": \"https://ctan.org/pkg/luamesh\"\n  },\n  \"luamplib\": {\n    \"command\": \"luamplib\",\n    \"detail\": \"Use LuaTeX’s built-in MetaPost interpreter\",\n    \"documentation\": \"https://ctan.org/pkg/luamplib\"\n  },\n  \"luaotfload\": {\n    \"command\": \"luaotfload\",\n    \"detail\": \"OpenType ‘loader’ for Plain TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luaotfload\"\n  },\n  \"luapackageloader\": {\n    \"command\": \"luapackageloader\",\n    \"detail\": \"Allow LuaTeX to load external Lua packages\",\n    \"documentation\": \"https://ctan.org/pkg/luapackageloader\"\n  },\n  \"luaprogtable\": {\n    \"command\": \"luaprogtable\",\n    \"detail\": \"Programmable table interface for LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luaprogtable\"\n  },\n  \"luarandom\": {\n    \"command\": \"luarandom\",\n    \"detail\": \"Create lists of random numbers\",\n    \"documentation\": \"https://ctan.org/pkg/luarandom\"\n  },\n  \"luasseq\": {\n    \"command\": \"luasseq\",\n    \"detail\": \"Drawing spectral sequences in LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luasseq\"\n  },\n  \"luatex85\": {\n    \"command\": \"luatex85\",\n    \"detail\": \"pdfTeX aliases for LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luatex85\"\n  },\n  \"luatexbase\": {\n    \"command\": \"luatexbase\",\n    \"detail\": \"Basic resource management for LuaTeX code\",\n    \"documentation\": \"https://ctan.org/pkg/luatexbase\"\n  },\n  \"luatexja\": {\n    \"command\": \"luatexja\",\n    \"detail\": \"Typeset Japanese with Lua(La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/luatexja\"\n  },\n  \"luatexko\": {\n    \"command\": \"luatexko\",\n    \"detail\": \"Typeset Korean with Lua(La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/luatexko\"\n  },\n  \"luatextra\": {\n    \"command\": \"luatextra\",\n    \"detail\": \"Additional macros for Plain TeX and LaTeX in LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/luatextra\"\n  },\n  \"luatodonotes\": {\n    \"command\": \"luatodonotes\",\n    \"detail\": \"Add editing annotations in a LuaLaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/luatodonotes\"\n  },\n  \"luavlna\": {\n    \"command\": \"luavlna\",\n    \"detail\": \"Prevent line breaks after single letter words, units, or academic titles\",\n    \"documentation\": \"https://ctan.org/pkg/luavlna\"\n  },\n  \"lwarp\": {\n    \"command\": \"lwarp\",\n    \"detail\": \"Converts LaTeX to HTML\",\n    \"documentation\": \"https://ctan.org/pkg/lwarp\"\n  },\n  \"lxfonts\": {\n    \"command\": \"lxfonts\",\n    \"detail\": \"Set of slide fonts based on CM\",\n    \"documentation\": \"https://ctan.org/pkg/lxfonts\"\n  },\n  \"lyluatex\": {\n    \"command\": \"lyluatex\",\n    \"detail\": \"Commands to include lilypond scores within a (Lua)LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/lyluatex\"\n  },\n  \"m-pictex\": {\n    \"command\": \"m-pictex\",\n    \"detail\": \"Enable PicTeX to run with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/m-pictex\"\n  },\n  \"macrolist\": {\n    \"command\": \"macrolist\",\n    \"detail\": \"List operations for LaTeX 2e\",\n    \"documentation\": \"https://ctan.org/pkg/macrolist\"\n  },\n  \"macroswap\": {\n    \"command\": \"macroswap\",\n    \"detail\": \"Swap the definitions of two LaTeX macros\",\n    \"documentation\": \"https://ctan.org/pkg/macroswap\"\n  },\n  \"mafr\": {\n    \"command\": \"mafr\",\n    \"detail\": \"Mathematics in accord with French usage\",\n    \"documentation\": \"https://ctan.org/pkg/mafr\"\n  },\n  \"magaz\": {\n    \"command\": \"magaz\",\n    \"detail\": \"Magazine layout\",\n    \"documentation\": \"https://ctan.org/pkg/magaz\"\n  },\n  \"magicnum\": {\n    \"command\": \"magicnum\",\n    \"detail\": \"Access TeX systems’ “magic numbers”\",\n    \"documentation\": \"https://ctan.org/pkg/magicnum\"\n  },\n  \"magra\": {\n    \"command\": \"Magra\",\n    \"detail\": \"The Magra font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/magra\"\n  },\n  \"mahjong\": {\n    \"command\": \"mahjong\",\n    \"detail\": \"Typeset Mahjong Tiles using MPSZ Notation\",\n    \"documentation\": \"https://ctan.org/pkg/mahjong\"\n  },\n  \"mailing\": {\n    \"command\": \"mailing\",\n    \"detail\": \"Macros for mail merging\",\n    \"documentation\": \"https://ctan.org/pkg/mailing\"\n  },\n  \"mailmerge\": {\n    \"command\": \"mailmerge\",\n    \"detail\": \"Repeating text field substitution\",\n    \"documentation\": \"https://ctan.org/pkg/mailmerge\"\n  },\n  \"makebarcode\": {\n    \"command\": \"makebarcode\",\n    \"detail\": \"Print various kinds 2/5 and Code 39 bar codes\",\n    \"documentation\": \"https://ctan.org/pkg/makebarcode\"\n  },\n  \"makebase\": {\n    \"command\": \"makebase\",\n    \"detail\": \"Typeset counters in a different base\",\n    \"documentation\": \"https://ctan.org/pkg/makebase\"\n  },\n  \"makebox\": {\n    \"command\": \"makebox\",\n    \"detail\": \"Defines a \\\\makebox* command\",\n    \"documentation\": \"https://ctan.org/pkg/makebox\"\n  },\n  \"makecell\": {\n    \"command\": \"makecell\",\n    \"detail\": \" Tabular column heads and multilined cells\",\n    \"documentation\": \"https://ctan.org/pkg/makecell\"\n  },\n  \"makecmds\": {\n    \"command\": \"makecmds\",\n    \"detail\": \"The new \\\\makecommand command always (re)defines a command\",\n    \"documentation\": \"https://ctan.org/pkg/makecmds\"\n  },\n  \"makedoc\": {\n    \"command\": \"makedoc\",\n    \"detail\": \"Preprocessing documentation with TeX\",\n    \"documentation\": \"https://ctan.org/pkg/makedoc\"\n  },\n  \"makeglos\": {\n    \"command\": \"makeglos\",\n    \"detail\": \"Include a glossary into a document\",\n    \"documentation\": \"https://ctan.org/pkg/makeglos\"\n  },\n  \"makeidx\": {\n    \"command\": \"makeidx\",\n    \"detail\": \"Standard LaTeX package for creating indexes\",\n    \"documentation\": \"https://ctan.org/pkg/makeidx\"\n  },\n  \"makeplot\": {\n    \"command\": \"makeplot\",\n    \"detail\": \"Easy plots from Matlab in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/makeplot\"\n  },\n  \"maker\": {\n    \"command\": \"maker\",\n    \"detail\": \"Include Arduino or Processing code in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/maker\"\n  },\n  \"makerobust\": {\n    \"command\": \"makerobust\",\n    \"detail\": \"Making a macro robust (legacy package)\",\n    \"documentation\": \"https://ctan.org/pkg/makerobust\"\n  },\n  \"makeshape\": {\n    \"command\": \"makeshape\",\n    \"detail\": \"Declare new PGF shapes\",\n    \"documentation\": \"https://ctan.org/pkg/makeshape\"\n  },\n  \"mandi\": {\n    \"command\": \"mandi\",\n    \"detail\": \"Macros for introductory physics and astronomy\",\n    \"documentation\": \"https://ctan.org/pkg/mandi\"\n  },\n  \"manfnt\": {\n    \"command\": \"manfnt\",\n    \"detail\": \"LaTeX support for the TeX book symbols\",\n    \"documentation\": \"https://ctan.org/pkg/manfnt\"\n  },\n  \"manuscript\": {\n    \"command\": \"manuscript\",\n    \"detail\": \"Emulate look of a document typed on a typewriter\",\n    \"documentation\": \"https://ctan.org/pkg/manuscript\"\n  },\n  \"manyfoot\": {\n    \"command\": \"manyfoot\",\n    \"detail\": \"Adds footnote levels to standard LaTeX’s footnote mechanism\",\n    \"documentation\": \"https://ctan.org/pkg/manyfoot\"\n  },\n  \"manyind\": {\n    \"command\": \"manyind\",\n    \"detail\": \"Provides support for many indexes\",\n    \"documentation\": \"https://ctan.org/pkg/manyind\"\n  },\n  \"marathi\": {\n    \"command\": \"marathi\",\n    \"detail\": \"Typeset Marathi language using XeLaTeX or LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/marathi\"\n  },\n  \"marcellus\": {\n    \"command\": \"marcellus\",\n    \"detail\": \"Marcellus fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/marcellus\"\n  },\n  \"margbib\": {\n    \"command\": \"margbib\",\n    \"detail\": \"Display bibitem tags in the margins\",\n    \"documentation\": \"https://ctan.org/pkg/margbib\"\n  },\n  \"marginfit\": {\n    \"command\": \"marginfit\",\n    \"detail\": \"Improved margin notes\",\n    \"documentation\": \"https://ctan.org/pkg/marginfit\"\n  },\n  \"marginfix\": {\n    \"command\": \"marginfix\",\n    \"detail\": \"Patch \\\\marginpar to avoid overfull margins\",\n    \"documentation\": \"https://ctan.org/pkg/marginfix\"\n  },\n  \"marginnote\": {\n    \"command\": \"marginnote\",\n    \"detail\": \"Notes in the margin, even where \\\\marginpar fails\",\n    \"documentation\": \"https://ctan.org/pkg/marginnote\"\n  },\n  \"markdown\": {\n    \"command\": \"markdown\",\n    \"detail\": \"A package for converting and rendering markdown documents inside TeX\",\n    \"documentation\": \"https://ctan.org/pkg/markdown\"\n  },\n  \"marvosym\": {\n    \"command\": \"marvosym\",\n    \"detail\": \"Martin Vogel's Symbols (marvosym) font\",\n    \"documentation\": \"https://ctan.org/pkg/marvosym\"\n  },\n  \"matc3\": {\n    \"command\": \"matc3\",\n    \"detail\": \"Commands for MatematicaC3 textbooks\",\n    \"documentation\": \"https://ctan.org/pkg/matc3\"\n  },\n  \"mathabx\": {\n    \"command\": \"mathabx\",\n    \"detail\": \"Three series of mathematical symbols\",\n    \"documentation\": \"https://ctan.org/pkg/mathabx\"\n  },\n  \"mathalpha\": {\n    \"command\": \"mathalpha\",\n    \"detail\": \"General package for loading maths alphabets in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/mathalpha\"\n  },\n  \"mathastext\": {\n    \"command\": \"mathastext\",\n    \"detail\": \"Use the text font in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/mathastext\"\n  },\n  \"mathbbol\": {\n    \"command\": \"mathbbol\",\n    \"detail\": \"Use the bbold fonts in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/mathbbol\"\n  },\n  \"mathcmd\": {\n    \"command\": \"mathcmd\",\n    \"detail\": \"Mathematics support commands\",\n    \"documentation\": \"https://ctan.org/pkg/mathcmd\"\n  },\n  \"mathcommand\": {\n    \"command\": \"mathcommand\",\n    \"detail\": \"\\\\newcommand-like commands for defining math macros\",\n    \"documentation\": \"https://ctan.org/pkg/mathcommand\"\n  },\n  \"mathcomp\": {\n    \"command\": \"mathcomp\",\n    \"detail\": \"Text symbols in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/mathcomp\"\n  },\n  \"mathdesign\": {\n    \"command\": \"mathdesign\",\n    \"detail\": \"Mathematical fonts to fit with particular text fonts\",\n    \"documentation\": \"https://ctan.org/pkg/mathdesign\"\n  },\n  \"mathdots\": {\n    \"command\": \"mathdots\",\n    \"detail\": \"Commands to produce dots in math that respect font size\",\n    \"documentation\": \"https://ctan.org/pkg/mathdots\"\n  },\n  \"mathexam\": {\n    \"command\": \"mathexam\",\n    \"detail\": \"Package for typesetting exams\",\n    \"documentation\": \"https://ctan.org/pkg/mathexam\"\n  },\n  \"mathfam256\": {\n    \"command\": \"mathfam256\",\n    \"detail\": \"Extend math family up to 256 for pLaTeX/upLaTeX/Lamed\",\n    \"documentation\": \"https://ctan.org/pkg/mathfam256\"\n  },\n  \"mathfixs\": {\n    \"command\": \"mathfixs\",\n    \"detail\": \"Fix various layout issues in math mode\",\n    \"documentation\": \"https://ctan.org/pkg/mathfixs\"\n  },\n  \"mathfont\": {\n    \"command\": \"mathfont\",\n    \"detail\": \"Use TrueType and OpenType fonts in math mode\",\n    \"documentation\": \"https://ctan.org/pkg/mathfont\"\n  },\n  \"mathpartir\": {\n    \"command\": \"mathpartir\",\n    \"detail\": \"Typesetting sequences of math formulas, e.g. type inference rules\",\n    \"documentation\": \"https://ctan.org/pkg/mathpartir\"\n  },\n  \"mathpazo\": {\n    \"command\": \"mathpazo\",\n    \"detail\": \"Fonts to typeset mathematics to match Palatino\",\n    \"documentation\": \"https://ctan.org/pkg/mathpazo\"\n  },\n  \"mathpple\": {\n    \"command\": \"mathpple\",\n    \"detail\": \"Use PostScript Palatino for typesetting maths\",\n    \"documentation\": \"https://ctan.org/pkg/mathpple\"\n  },\n  \"mathptm\": {\n    \"command\": \"mathptm\",\n    \"detail\": \"Adobe Times Roman (or equivalent) for text and maths\",\n    \"documentation\": \"https://ctan.org/pkg/mathptm\"\n  },\n  \"mathptmx\": {\n    \"command\": \"mathptmx\",\n    \"detail\": \"Use Times as default text font, and provide maths support\",\n    \"documentation\": \"https://ctan.org/pkg/mathptmx\"\n  },\n  \"mathpunctspace\": {\n    \"command\": \"mathpunctspace\",\n    \"detail\": \"Control the space after punctuation in math expressions\",\n    \"documentation\": \"https://ctan.org/pkg/mathpunctspace\"\n  },\n  \"mathrsfs\": {\n    \"command\": \"mathrsfs\",\n    \"detail\": \"Support for using RSFS fonts in maths\",\n    \"documentation\": \"https://ctan.org/pkg/mathrsfs\"\n  },\n  \"mathscinet\": {\n    \"command\": \"mathscinet\",\n    \"detail\": \"Retrieve references from MathSciNet in BibTeX format\",\n    \"documentation\": \"https://ctan.org/pkg/mathscinet\"\n  },\n  \"mathspec\": {\n    \"command\": \"mathspec\",\n    \"detail\": \"Specify arbitrary fonts for mathematics in XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/mathspec\"\n  },\n  \"mathspic\": {\n    \"command\": \"mathspic\",\n    \"detail\": \"A Perl filter program for use with PiCTeX\",\n    \"documentation\": \"https://ctan.org/pkg/mathspic\"\n  },\n  \"mathstyle\": {\n    \"command\": \"mathstyle\",\n    \"detail\": \"Manage mathematics typesetting style\",\n    \"documentation\": \"https://ctan.org/pkg/mathstyle\"\n  },\n  \"mathtools\": {\n    \"command\": \"mathtools\",\n    \"detail\": \"Mathematical tools to use with amsmath\",\n    \"documentation\": \"https://ctan.org/pkg/mathtools\"\n  },\n  \"matlab-prettifier\": {\n    \"command\": \"matlab-prettifier\",\n    \"detail\": \"Pretty-print Matlab source code\",\n    \"documentation\": \"https://ctan.org/pkg/matlab-prettifier\"\n  },\n  \"mattens\": {\n    \"command\": \"mattens\",\n    \"detail\": \"Matrices/tensor typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/mattens\"\n  },\n  \"maybemath\": {\n    \"command\": \"maybemath\",\n    \"detail\": \"Make math bold or italic according to context\",\n    \"documentation\": \"https://ctan.org/pkg/maybemath\"\n  },\n  \"mboxfill\": {\n    \"command\": \"mboxfill\",\n    \"detail\": \"Fill free space with a pattern\",\n    \"documentation\": \"https://ctan.org/pkg/mboxfill\"\n  },\n  \"mcaption\": {\n    \"command\": \"mcaption\",\n    \"detail\": \"Put captions in the margin\",\n    \"documentation\": \"https://ctan.org/pkg/mcaption\"\n  },\n  \"mceinleger\": {\n    \"command\": \"mceinleger\",\n    \"detail\": \"Creating covers for music cassettes\",\n    \"documentation\": \"https://ctan.org/pkg/mceinleger\"\n  },\n  \"mcexam\": {\n    \"command\": \"mcexam\",\n    \"detail\": \"Create randomized Multiple Choice questions\",\n    \"documentation\": \"https://ctan.org/pkg/mcexam\"\n  },\n  \"mcite\": {\n    \"command\": \"mcite\",\n    \"detail\": \"Multiple items in a single citation\",\n    \"documentation\": \"https://ctan.org/pkg/mcite\"\n  },\n  \"mciteplus\": {\n    \"command\": \"mciteplus\",\n    \"detail\": \"Enhanced multiple citations\",\n    \"documentation\": \"https://ctan.org/pkg/mciteplus\"\n  },\n  \"mdframed\": {\n    \"command\": \"mdframed\",\n    \"detail\": \"Framed environments that can split at page boundaries\",\n    \"documentation\": \"https://ctan.org/pkg/mdframed\"\n  },\n  \"mdputu\": {\n    \"command\": \"mdputu\",\n    \"detail\": \"Upright digits in Adobe Utopia Italic\",\n    \"documentation\": \"https://ctan.org/pkg/mdputu\"\n  },\n  \"mdsymbol\": {\n    \"command\": \"mdsymbol\",\n    \"detail\": \"Symbol fonts to match Adobe Myriad Pro\",\n    \"documentation\": \"https://ctan.org/pkg/mdsymbol\"\n  },\n  \"mdwlist\": {\n    \"command\": \"mdwlist\",\n    \"detail\": \"Miscellaneous list-related commands\",\n    \"documentation\": \"https://ctan.org/pkg/mdwlist\"\n  },\n  \"mdwmath\": {\n    \"command\": \"mdwmath\",\n    \"detail\": \"Some maths extensions\",\n    \"documentation\": \"https://ctan.org/pkg/mdwmath\"\n  },\n  \"mdwtab\": {\n    \"command\": \"mdwtab\",\n    \"detail\": \"A reimplementation of tabular and array environments\",\n    \"documentation\": \"https://ctan.org/pkg/mdwtab\"\n  },\n  \"media4svg\": {\n    \"command\": \"media4svg\",\n    \"detail\": \"Multimedia inclusion for the dvisvgm backend\",\n    \"documentation\": \"https://ctan.org/pkg/media4svg\"\n  },\n  \"media9\": {\n    \"command\": \"media9\",\n    \"detail\": \"Multimedia inclusion package with Adobe Reader-9/X compatibility\",\n    \"documentation\": \"https://ctan.org/pkg/media9\"\n  },\n  \"membranecomputing\": {\n    \"command\": \"membranecomputing\",\n    \"detail\": \"Membrane Computing notation\",\n    \"documentation\": \"https://ctan.org/pkg/membranecomputing\"\n  },\n  \"memexsupp\": {\n    \"command\": \"memexsupp\",\n    \"detail\": \"Experimental memoir support\",\n    \"documentation\": \"https://ctan.org/pkg/memexsupp\"\n  },\n  \"memhfixc\": {\n    \"command\": \"memhfixc\",\n    \"detail\": \"Adjustment for using hyperref in memoir documents\",\n    \"documentation\": \"https://ctan.org/pkg/memhfixc\"\n  },\n  \"memory\": {\n    \"command\": \"memory\",\n    \"detail\": \"Containers for data in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/memory\"\n  },\n  \"memorygraphs\": {\n    \"command\": \"memorygraphs\",\n    \"detail\": \"TikZ styles to typeset graphs of program memory\",\n    \"documentation\": \"https://ctan.org/pkg/memorygraphs\"\n  },\n  \"menu\": {\n    \"command\": \"menu\",\n    \"detail\": \"Typesetting menus\",\n    \"documentation\": \"https://ctan.org/pkg/menu\"\n  },\n  \"menucard\": {\n    \"command\": \"menucard\",\n    \"detail\": \"Typesetting menu cards with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/menucard\"\n  },\n  \"menukeys\": {\n    \"command\": \"menukeys\",\n    \"detail\": \"Format menu sequences, paths and keystrokes from lists\",\n    \"documentation\": \"https://ctan.org/pkg/menukeys\"\n  },\n  \"mercatormap\": {\n    \"command\": \"mercatormap\",\n    \"detail\": \"Spherical Mercator coordinate systems and Web Mercator tile integration\",\n    \"documentation\": \"https://ctan.org/pkg/mercatormap\"\n  },\n  \"merriweather\": {\n    \"command\": \"merriweather\",\n    \"detail\": \"Merriweather and MerriweatherSans fonts, with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/merriweather\"\n  },\n  \"metainfo\": {\n    \"command\": \"metainfo\",\n    \"detail\": \"Typeset document outline with metainfo\",\n    \"documentation\": \"https://ctan.org/pkg/metainfo\"\n  },\n  \"metalogo\": {\n    \"command\": \"metalogo\",\n    \"detail\": \"Extended TeX logo macros\",\n    \"documentation\": \"https://ctan.org/pkg/metalogo\"\n  },\n  \"metalogox\": {\n    \"command\": \"metalogox\",\n    \"detail\": \"Adjust TeX logos, with font detection\",\n    \"documentation\": \"https://ctan.org/pkg/metalogox\"\n  },\n  \"metastr\": {\n    \"command\": \"metastr\",\n    \"detail\": \"Store and compose strings\",\n    \"documentation\": \"https://ctan.org/pkg/metastr\"\n  },\n  \"method\": {\n    \"command\": \"method\",\n    \"detail\": \"Typeset method and variable declarations\",\n    \"documentation\": \"https://ctan.org/pkg/method\"\n  },\n  \"metre\": {\n    \"command\": \"metre\",\n    \"detail\": \"Support for the work of classicists\",\n    \"documentation\": \"https://ctan.org/pkg/metre\"\n  },\n  \"metrix\": {\n    \"command\": \"metrix\",\n    \"detail\": \"Typeset metric marks for Latin text\",\n    \"documentation\": \"https://ctan.org/pkg/metrix\"\n  },\n  \"mfirstuc\": {\n    \"command\": \"mfirstuc\",\n    \"detail\": \"Uppercase the first letter of a word\",\n    \"documentation\": \"https://ctan.org/pkg/mfirstuc\"\n  },\n  \"mflogo\": {\n    \"command\": \"mflogo\",\n    \"detail\": \"LaTeX support for Metafont logo fonts\",\n    \"documentation\": \"https://ctan.org/pkg/mflogo\"\n  },\n  \"mfpic\": {\n    \"command\": \"mfpic\",\n    \"detail\": \"Draw Metafont/post pictures from (La)TeX commands\",\n    \"documentation\": \"https://ctan.org/pkg/mfpic\"\n  },\n  \"mfpic4ode\": {\n    \"command\": \"mfpic4ode\",\n    \"detail\": \"Macros to draw direction fields and solutions of ODEs\",\n    \"documentation\": \"https://ctan.org/pkg/mfpic4ode\"\n  },\n  \"mftinc\": {\n    \"command\": \"mftinc\",\n    \"detail\": \"Pretty-print Metafont source\",\n    \"documentation\": \"https://ctan.org/pkg/mftinc\"\n  },\n  \"mgltex\": {\n    \"command\": \"mgltex\",\n    \"detail\": \"High-quality graphics from MGL scripts embedded in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/mgltex\"\n  },\n  \"mhchem\": {\n    \"command\": \"mhchem\",\n    \"detail\": \"Typeset chemical formulae/equations and Risk and Safety phrases\",\n    \"documentation\": \"https://ctan.org/pkg/mhchem\"\n  },\n  \"mhequ\": {\n    \"command\": \"mhequ\",\n    \"detail\": \"Multicolumn equations, tags, labels, sub-numbering\",\n    \"documentation\": \"https://ctan.org/pkg/mhequ\"\n  },\n  \"mhsetup\": {\n    \"command\": \"mhsetup\",\n    \"detail\": \"The mathtools “setup” function\",\n    \"documentation\": \"https://ctan.org/pkg/mhsetup\"\n  },\n  \"mi-solns\": {\n    \"command\": \"mi-solns\",\n    \"detail\": \"Extract solutions from exercises and quizzes\",\n    \"documentation\": \"https://ctan.org/pkg/mi-solns\"\n  },\n  \"miama\": {\n    \"command\": \"miama\",\n    \"detail\": \"The Miama Nueva handwriting font with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/miama\"\n  },\n  \"microtype\": {\n    \"command\": \"microtype\",\n    \"detail\": \"Subliminal refinements towards typographical perfection\",\n    \"documentation\": \"https://ctan.org/pkg/microtype\"\n  },\n  \"midfloat\": {\n    \"command\": \"midfloat\",\n    \"detail\": \"Mixing onecolumn and twocolumn modes at any place of page\",\n    \"documentation\": \"https://ctan.org/pkg/midfloat\"\n  },\n  \"midpage\": {\n    \"command\": \"midpage\",\n    \"detail\": \"Environment for vertical centring\",\n    \"documentation\": \"https://ctan.org/pkg/midpage\"\n  },\n  \"miller\": {\n    \"command\": \"miller\",\n    \"detail\": \"Typeset miller indices\",\n    \"documentation\": \"https://ctan.org/pkg/miller\"\n  },\n  \"milsymb\": {\n    \"command\": \"milsymb\",\n    \"detail\": \"LaTeX package for TikZ based drawing of military symbols as per NATO APP-6(C)\",\n    \"documentation\": \"https://ctan.org/pkg/milsymb\"\n  },\n  \"mindflow\": {\n    \"command\": \"mindflow\",\n    \"detail\": \"Write your ideas in a clear way\",\n    \"documentation\": \"https://ctan.org/pkg/mindflow\"\n  },\n  \"minibox\": {\n    \"command\": \"minibox\",\n    \"detail\": \"A simple type of box for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/minibox\"\n  },\n  \"minidocument\": {\n    \"command\": \"minidocument\",\n    \"detail\": \"Creates miniature documents inside other LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/minidocument\"\n  },\n  \"minifp\": {\n    \"command\": \"minifp\",\n    \"detail\": \"Fixed-point real computations to 8 decimals\",\n    \"documentation\": \"https://ctan.org/pkg/minifp\"\n  },\n  \"minimalist\": {\n    \"command\": \"minimalist\",\n    \"detail\": \"Write your articles or books in a simple and clear way\",\n    \"documentation\": \"https://ctan.org/pkg/minimalist\"\n  },\n  \"minipage-marginpar\": {\n    \"command\": \"minipage-marginpar\",\n    \"detail\": \"Minipages with marginal notes\",\n    \"documentation\": \"https://ctan.org/pkg/minipage-marginpar\"\n  },\n  \"miniplot\": {\n    \"command\": \"miniplot\",\n    \"detail\": \"A package for easy figure arrangement\",\n    \"documentation\": \"https://ctan.org/pkg/miniplot\"\n  },\n  \"minitoc\": {\n    \"command\": \"minitoc\",\n    \"detail\": \"Produce a table of contents for each chapter, part or section\",\n    \"documentation\": \"https://ctan.org/pkg/minitoc\"\n  },\n  \"minorrevision\": {\n    \"command\": \"minorrevision\",\n    \"detail\": \"Quote and refer to a manuscript for minor revisions\",\n    \"documentation\": \"https://ctan.org/pkg/minorrevision\"\n  },\n  \"minted\": {\n    \"command\": \"minted\",\n    \"detail\": \"Highlighted source code for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/minted\"\n  },\n  \"mintspirit\": {\n    \"command\": \"mintspirit\",\n    \"detail\": \"LaTeX support for MintSpirit font families\",\n    \"documentation\": \"https://ctan.org/pkg/mintspirit\"\n  },\n  \"minutes\": {\n    \"command\": \"minutes\",\n    \"detail\": \"Typeset the minutes of meetings\",\n    \"documentation\": \"https://ctan.org/pkg/minutes\"\n  },\n  \"mismath\": {\n    \"command\": \"mismath\",\n    \"detail\": \"Miscellaneous mathematical macros\",\n    \"documentation\": \"https://ctan.org/pkg/mismath\"\n  },\n  \"missaali\": {\n    \"command\": \"missaali\",\n    \"detail\": \"A late medieval OpenType textura font\",\n    \"documentation\": \"https://ctan.org/pkg/missaali\"\n  },\n  \"mitpress\": {\n    \"command\": \"mitpress\",\n    \"detail\": \"Typeset documents for MIT Press\",\n    \"documentation\": \"https://ctan.org/pkg/mitpress\"\n  },\n  \"mla\": {\n    \"command\": \"mla\",\n    \"detail\": \"MLA BibTeX styles\",\n    \"documentation\": \"https://ctan.org/pkg/mla\"\n  },\n  \"mleftright\": {\n    \"command\": \"mleftright\",\n    \"detail\": \"Variants of delimiters that act as maths open/close\",\n    \"documentation\": \"https://ctan.org/pkg/mleftright\"\n  },\n  \"mlist\": {\n    \"command\": \"mlist\",\n    \"detail\": \"Logical markup for lists\",\n    \"documentation\": \"https://ctan.org/pkg/mlist\"\n  },\n  \"mlmodern\": {\n    \"command\": \"mlmodern\",\n    \"detail\": \"A blacker Type 1 version of Computer Modern, with multilingual support\",\n    \"documentation\": \"https://ctan.org/pkg/mlmodern\"\n  },\n  \"mltex\": {\n    \"command\": \"mltex\",\n    \"detail\": \"The MLTeX system\",\n    \"documentation\": \"https://ctan.org/pkg/mltex\"\n  },\n  \"mmap\": {\n    \"command\": \"mmap\",\n    \"detail\": \"Include CMap resources in PDF files from pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/mmap\"\n  },\n  \"mnotes\": {\n    \"command\": \"mnotes\",\n    \"detail\": \"Margin annotation for collaborative writing\",\n    \"documentation\": \"https://ctan.org/pkg/mnotes\"\n  },\n  \"mnsymbol\": {\n    \"command\": \"MnSymbol\",\n    \"detail\": \"Mathematical symbol font for Adobe MinionPro\",\n    \"documentation\": \"https://ctan.org/pkg/mnsymbol\"\n  },\n  \"moderntimeline\": {\n    \"command\": \"moderntimeline\",\n    \"detail\": \"Timelines for use with moderncv\",\n    \"documentation\": \"https://ctan.org/pkg/moderntimeline\"\n  },\n  \"modiagram\": {\n    \"command\": \"modiagram\",\n    \"detail\": \"Drawing molecular orbital diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/modiagram\"\n  },\n  \"modref\": {\n    \"command\": \"modref\",\n    \"detail\": \"Customisation of cross-references in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/modref\"\n  },\n  \"modroman\": {\n    \"command\": \"modroman\",\n    \"detail\": \"Write numbers in lower case roman numerals\",\n    \"documentation\": \"https://ctan.org/pkg/modroman\"\n  },\n  \"modular\": {\n    \"command\": \"modular\",\n    \"detail\": \"Relative section headings for modular documents\",\n    \"documentation\": \"https://ctan.org/pkg/modular\"\n  },\n  \"modulus\": {\n    \"command\": \"modulus\",\n    \"detail\": \"A non-destructive modulus and integer quotient operator for TeX\",\n    \"documentation\": \"https://ctan.org/pkg/modulus\"\n  },\n  \"monofill\": {\n    \"command\": \"monofill\",\n    \"detail\": \"Alignment of plain text\",\n    \"documentation\": \"https://ctan.org/pkg/monofill\"\n  },\n  \"montserrat\": {\n    \"command\": \"montserrat\",\n    \"detail\": \"Montserrat sans serif, otf and pfb, with LaTeX support files\",\n    \"documentation\": \"https://ctan.org/pkg/montserrat\"\n  },\n  \"moodle\": {\n    \"command\": \"moodle\",\n    \"detail\": \"Generating Moodle quizzes via LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/moodle\"\n  },\n  \"moredefs\": {\n    \"command\": \"moredefs\",\n    \"detail\": \"LaTeX defining, expansion, and debugging commands\",\n    \"documentation\": \"https://ctan.org/pkg/moredefs\"\n  },\n  \"moreenum\": {\n    \"command\": \"moreenum\",\n    \"detail\": \"More enumeration options\",\n    \"documentation\": \"https://ctan.org/pkg/moreenum\"\n  },\n  \"morefloats\": {\n    \"command\": \"morefloats\",\n    \"detail\": \"Increase the number of simultaneous LaTeX floats\",\n    \"documentation\": \"https://ctan.org/pkg/morefloats\"\n  },\n  \"moresize\": {\n    \"command\": \"moresize\",\n    \"detail\": \"Allows font sizes up to 35.83pt\",\n    \"documentation\": \"https://ctan.org/pkg/moresize\"\n  },\n  \"moreverb\": {\n    \"command\": \"moreverb\",\n    \"detail\": \"Extended verbatim\",\n    \"documentation\": \"https://ctan.org/pkg/moreverb\"\n  },\n  \"morewrites\": {\n    \"command\": \"morewrites\",\n    \"detail\": \"Always room for a new write stream\",\n    \"documentation\": \"https://ctan.org/pkg/morewrites\"\n  },\n  \"morisawa\": {\n    \"command\": \"morisawa\",\n    \"detail\": \"Enables selection of 5 standard Japanese fonts for pLaTeX + dvips\",\n    \"documentation\": \"https://ctan.org/pkg/morisawa\"\n  },\n  \"movie15\": {\n    \"command\": \"movie15\",\n    \"detail\": \"Multimedia inclusion package\",\n    \"documentation\": \"https://ctan.org/pkg/movie15\"\n  },\n  \"mparhack\": {\n    \"command\": \"mparhack\",\n    \"detail\": \"Work around a LaTeX bug in marginpars\",\n    \"documentation\": \"https://ctan.org/pkg/mparhack\"\n  },\n  \"mpgraphics\": {\n    \"command\": \"mpgraphics\",\n    \"detail\": \"Process and display MetaPost figures inline\",\n    \"documentation\": \"https://ctan.org/pkg/mpgraphics\"\n  },\n  \"mpostinl\": {\n    \"command\": \"mpostinl\",\n    \"detail\": \"Embed MetaPost figures within LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/mpostinl\"\n  },\n  \"msc\": {\n    \"command\": \"msc\",\n    \"detail\": \"Draw MSC diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/msc\"\n  },\n  \"msg\": {\n    \"command\": \"msg\",\n    \"detail\": \"A package for LaTeX localisation\",\n    \"documentation\": \"https://ctan.org/pkg/msg\"\n  },\n  \"mslapa\": {\n    \"command\": \"mslapa\",\n    \"detail\": \"Michael Landy’s APA citation style\",\n    \"documentation\": \"https://ctan.org/pkg/mslapa\"\n  },\n  \"mtgreek\": {\n    \"command\": \"mtgreek\",\n    \"detail\": \"Use italic and upright greek letters with mathtime\",\n    \"documentation\": \"https://ctan.org/pkg/mtgreek\"\n  },\n  \"multiaudience\": {\n    \"command\": \"multiaudience\",\n    \"detail\": \"Several versions of output from the same source\",\n    \"documentation\": \"https://ctan.org/pkg/multiaudience\"\n  },\n  \"multibbl\": {\n    \"command\": \"multibbl\",\n    \"detail\": \"Multiple bibliographies\",\n    \"documentation\": \"https://ctan.org/pkg/multibbl\"\n  },\n  \"multibib\": {\n    \"command\": \"multibib\",\n    \"detail\": \"Multiple bibliographies within one document\",\n    \"documentation\": \"https://ctan.org/pkg/multibib\"\n  },\n  \"multibibliography\": {\n    \"command\": \"multibibliography\",\n    \"detail\": \"Multiple versions of a bibliography, with different sort orders\",\n    \"documentation\": \"https://ctan.org/pkg/multibibliography\"\n  },\n  \"multicap\": {\n    \"command\": \"multicap\",\n    \"detail\": \"Format captions inside multicols\",\n    \"documentation\": \"https://ctan.org/pkg/multicap\"\n  },\n  \"multicol\": {\n    \"command\": \"multicol\",\n    \"detail\": \"Intermix single and multiple columns\",\n    \"documentation\": \"https://ctan.org/pkg/multicol\"\n  },\n  \"multicolrule\": {\n    \"command\": \"multicolrule\",\n    \"detail\": \"Decorative rules between columns\",\n    \"documentation\": \"https://ctan.org/pkg/multicolrule\"\n  },\n  \"multidef\": {\n    \"command\": \"multidef\",\n    \"detail\": \"Quickly define several similar macros\",\n    \"documentation\": \"https://ctan.org/pkg/multidef\"\n  },\n  \"multido\": {\n    \"command\": \"multido\",\n    \"detail\": \"A loop facility for Generic TeX\",\n    \"documentation\": \"https://ctan.org/pkg/multido\"\n  },\n  \"multienv\": {\n    \"command\": \"multienv\",\n    \"detail\": \"Multiple environments using a \\\"key=value\\\" syntax\",\n    \"documentation\": \"https://ctan.org/pkg/multienv\"\n  },\n  \"multiexpand\": {\n    \"command\": \"multiexpand\",\n    \"detail\": \"Variations on the primitive command \\\\expandafter\",\n    \"documentation\": \"https://ctan.org/pkg/multiexpand\"\n  },\n  \"multilang\": {\n    \"command\": \"multilang\",\n    \"detail\": \"A LaTeX package for maintaining multiple translations of a document\",\n    \"documentation\": \"https://ctan.org/pkg/multilang\"\n  },\n  \"multiobjective\": {\n    \"command\": \"multiobjective\",\n    \"detail\": \"Symbols for multiobjective optimisation etc\",\n    \"documentation\": \"https://ctan.org/pkg/multiobjective\"\n  },\n  \"multirow\": {\n    \"command\": \"multirow\",\n    \"detail\": \"Create tabular cells spanning multiple rows\",\n    \"documentation\": \"https://ctan.org/pkg/multirow\"\n  },\n  \"multitoc\": {\n    \"command\": \"multitoc\",\n    \"detail\": \"Set table of contents in multiple columns\",\n    \"documentation\": \"https://ctan.org/pkg/multitoc\"\n  },\n  \"musical\": {\n    \"command\": \"musical\",\n    \"detail\": \"Typeset (musical) theatre scripts\",\n    \"documentation\": \"https://ctan.org/pkg/musical\"\n  },\n  \"musicography\": {\n    \"command\": \"musicography\",\n    \"detail\": \"Accessing symbols for music writing with pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/musicography\"\n  },\n  \"musikui\": {\n    \"command\": \"musikui\",\n    \"detail\": \"Easy creation of “arithmetical restoration” puzzles\",\n    \"documentation\": \"https://ctan.org/pkg/musikui\"\n  },\n  \"musixguit\": {\n    \"command\": \"musixguit\",\n    \"detail\": \"Easy notation for guitar music, in MusixTeX\",\n    \"documentation\": \"https://ctan.org/pkg/musixguit\"\n  },\n  \"musixtex\": {\n    \"command\": \"musixtex\",\n    \"detail\": \"Sophisticated music typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/musixtex\"\n  },\n  \"mversion\": {\n    \"command\": \"mVersion\",\n    \"detail\": \"Keeping track of document versions\",\n    \"documentation\": \"https://ctan.org/pkg/mversion\"\n  },\n  \"mwe\": {\n    \"command\": \"mwe\",\n    \"detail\": \"Packages and image files for MWEs\",\n    \"documentation\": \"https://ctan.org/pkg/mwe\"\n  },\n  \"mweights\": {\n    \"command\": \"mweights\",\n    \"detail\": \"Support for multiple-weight font packages\",\n    \"documentation\": \"https://ctan.org/pkg/mweights\"\n  },\n  \"mxedruli\": {\n    \"command\": \"mxedruli\",\n    \"detail\": \"A pair of fonts for different Georgian alphabets\",\n    \"documentation\": \"https://ctan.org/pkg/mxedruli\"\n  },\n  \"myfilist\": {\n    \"command\": \"myfilist\",\n    \"detail\": \"Configuring the output of the \\\\listfiles command\",\n    \"documentation\": \"https://ctan.org/pkg/myfilist\"\n  },\n  \"na-box\": {\n    \"command\": \"na-box\",\n    \"detail\": \"Arabic-aware version of pas-cours package\",\n    \"documentation\": \"https://ctan.org/pkg/na-box\"\n  },\n  \"na-position\": {\n    \"command\": \"na-position\",\n    \"detail\": \"Tables of relative positions of curves and asymptotes or tangents in Arabic documents\",\n    \"documentation\": \"https://ctan.org/pkg/na-position\"\n  },\n  \"nabatean\": {\n    \"command\": \"nabatean\",\n    \"detail\": \"Font for Nabatean script\",\n    \"documentation\": \"https://ctan.org/pkg/nabatean\"\n  },\n  \"nag\": {\n    \"command\": \"nag\",\n    \"detail\": \"Detecting and warning about obsolete LaTeX commands\",\n    \"documentation\": \"https://ctan.org/pkg/nag\"\n  },\n  \"nameauth\": {\n    \"command\": \"nameauth\",\n    \"detail\": \"Name authority mechanism for consistency in body text and index\",\n    \"documentation\": \"https://ctan.org/pkg/nameauth\"\n  },\n  \"namedef\": {\n    \"command\": \"namedef\",\n    \"detail\": \"TeX definitions with named parameters\",\n    \"documentation\": \"https://ctan.org/pkg/namedef\"\n  },\n  \"nameref\": {\n    \"command\": \"nameref\",\n    \"detail\": \"Make reference to section names, etc\",\n    \"documentation\": \"https://ctan.org/pkg/nameref\"\n  },\n  \"namespc\": {\n    \"command\": \"namespc\",\n    \"detail\": \"Rudimentary C++-like namespaces in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/namespc\"\n  },\n  \"natbib\": {\n    \"command\": \"natbib\",\n    \"detail\": \"Flexible bibliography support\",\n    \"documentation\": \"https://ctan.org/pkg/natbib\"\n  },\n  \"natded\": {\n    \"command\": \"natded\",\n    \"detail\": \"Typeset natural deduction proofs\",\n    \"documentation\": \"https://ctan.org/pkg/natded\"\n  },\n  \"nath\": {\n    \"command\": \"nath\",\n    \"detail\": \"Natural mathematics notation\",\n    \"documentation\": \"https://ctan.org/pkg/nath\"\n  },\n  \"natmove\": {\n    \"command\": \"natmove\",\n    \"detail\": \"Move punctuation following a citation\",\n    \"documentation\": \"https://ctan.org/pkg/natmove\"\n  },\n  \"navigator\": {\n    \"command\": \"navigator\",\n    \"detail\": \"PDF features across formats and engines\",\n    \"documentation\": \"https://ctan.org/pkg/navigator\"\n  },\n  \"navydocs\": {\n    \"command\": \"navydocs\",\n    \"detail\": \"Support for Technical Reports by US Navy Organizations\",\n    \"documentation\": \"https://ctan.org/pkg/navydocs\"\n  },\n  \"nbaseprt\": {\n    \"command\": \"nbaseprt\",\n    \"detail\": \"Print numbers in non-decimal bases\",\n    \"documentation\": \"https://ctan.org/pkg/nbaseprt\"\n  },\n  \"nccbbb\": {\n    \"command\": \"nccbbb\",\n    \"detail\": \"“Poor man’s” blackboard bold\",\n    \"documentation\": \"https://ctan.org/pkg/nccbbb\"\n  },\n  \"nccboxes\": {\n    \"command\": \"nccboxes\",\n    \"detail\": \"Elaborate box commands\",\n    \"documentation\": \"https://ctan.org/pkg/nccboxes\"\n  },\n  \"ncccomma\": {\n    \"command\": \"ncccomma\",\n    \"detail\": \"Use comma as decimal separator in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/ncccomma\"\n  },\n  \"ncccropbox\": {\n    \"command\": \"ncccropbox\",\n    \"detail\": \"Crop-marked boxes\",\n    \"documentation\": \"https://ctan.org/pkg/ncccropbox\"\n  },\n  \"ncccropmark\": {\n    \"command\": \"ncccropmark\",\n    \"detail\": \"Draw cropmarks on the output page\",\n    \"documentation\": \"https://ctan.org/pkg/ncccropmark\"\n  },\n  \"nccfancyhdr\": {\n    \"command\": \"nccfancyhdr\",\n    \"detail\": \"Extensive control of page headers and footers\",\n    \"documentation\": \"https://ctan.org/pkg/nccfancyhdr\"\n  },\n  \"nccfloats\": {\n    \"command\": \"nccfloats\",\n    \"detail\": \"Extensions of the LaTeX float mechanisms\",\n    \"documentation\": \"https://ctan.org/pkg/nccfloats\"\n  },\n  \"nccfoots\": {\n    \"command\": \"nccfoots\",\n    \"detail\": \"User-generated footnote marks\",\n    \"documentation\": \"https://ctan.org/pkg/nccfoots\"\n  },\n  \"ncclatex\": {\n    \"command\": \"ncclatex\",\n    \"detail\": \"An extended general-purpose class\",\n    \"documentation\": \"https://ctan.org/pkg/ncclatex\"\n  },\n  \"nccmath\": {\n    \"command\": \"nccmath\",\n    \"detail\": \"Extended mathematics capabilities\",\n    \"documentation\": \"https://ctan.org/pkg/nccmath\"\n  },\n  \"nccparskip\": {\n    \"command\": \"nccparskip\",\n    \"detail\": \"Modify skips between paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/nccparskip\"\n  },\n  \"nccpic\": {\n    \"command\": \"nccpic\",\n    \"detail\": \"Extend the graphicx package for more formats\",\n    \"documentation\": \"https://ctan.org/pkg/nccpic\"\n  },\n  \"nccrules\": {\n    \"command\": \"nccrules\",\n    \"detail\": \"Compose dashed lines\",\n    \"documentation\": \"https://ctan.org/pkg/nccrules\"\n  },\n  \"nccsect\": {\n    \"command\": \"nccsect\",\n    \"detail\": \"A re-implementation of sections, captions and tocs\",\n    \"documentation\": \"https://ctan.org/pkg/nccsect\"\n  },\n  \"nccstretch\": {\n    \"command\": \"nccstretch\",\n    \"detail\": \"Insert a stretch between each token of a string\",\n    \"documentation\": \"https://ctan.org/pkg/nccstretch\"\n  },\n  \"nccthm\": {\n    \"command\": \"nccthm\",\n    \"detail\": \"Another theorem environment\",\n    \"documentation\": \"https://ctan.org/pkg/nccthm\"\n  },\n  \"needspace\": {\n    \"command\": \"needspace\",\n    \"detail\": \"Insert pagebreak if not enough space\",\n    \"documentation\": \"https://ctan.org/pkg/needspace\"\n  },\n  \"nestquot\": {\n    \"command\": \"nestquot\",\n    \"detail\": \"Alternate quotes between double and single with nesting\",\n    \"documentation\": \"https://ctan.org/pkg/nestquot\"\n  },\n  \"neuralnetwork\": {\n    \"command\": \"neuralnetwork\",\n    \"detail\": \"Graph-drawing for neural networks\",\n    \"documentation\": \"https://ctan.org/pkg/neuralnetwork\"\n  },\n  \"nevelok\": {\n    \"command\": \"nevelok\",\n    \"detail\": \"LaTeX package for automatic definite articles for Hungarian\",\n    \"documentation\": \"https://ctan.org/pkg/nevelok\"\n  },\n  \"newclude\": {\n    \"command\": \"newclude\",\n    \"detail\": \"Reimplemented \\\\include system for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/newclude\"\n  },\n  \"newcomputermodern\": {\n    \"command\": \"newcomputermodern\",\n    \"detail\": \"Computer Modern fonts including matching non-latin alphabets\",\n    \"documentation\": \"https://ctan.org/pkg/newcomputermodern\"\n  },\n  \"newenviron\": {\n    \"command\": \"newenviron\",\n    \"detail\": \"Processing an environment’s body\",\n    \"documentation\": \"https://ctan.org/pkg/newenviron\"\n  },\n  \"newfile\": {\n    \"command\": \"newfile\",\n    \"detail\": \"User level management of LaTeX input and output\",\n    \"documentation\": \"https://ctan.org/pkg/newfile\"\n  },\n  \"newfloat\": {\n    \"command\": \"newfloat\",\n    \"detail\": \"Define new floating environments\",\n    \"documentation\": \"https://ctan.org/pkg/newfloat\"\n  },\n  \"newpax\": {\n    \"command\": \"newpax\",\n    \"detail\": \"Experimental package to extract and reinsert PDF annotations\",\n    \"documentation\": \"https://ctan.org/pkg/newpax\"\n  },\n  \"newproof\": {\n    \"command\": \"newproof\",\n    \"detail\": \"Make commands to define proofs\",\n    \"documentation\": \"https://ctan.org/pkg/newproof\"\n  },\n  \"newspaper\": {\n    \"command\": \"newspaper\",\n    \"detail\": \"Typeset newsletters to resemble newspapers\",\n    \"documentation\": \"https://ctan.org/pkg/newspaper\"\n  },\n  \"newtxmath\": {\n    \"command\": \"newtxmath\",\n    \"detail\": \"Alternative uses of the TX fonts, with improved metrics\",\n    \"documentation\": \"https://ctan.org/pkg/newtx\"\n  },\n  \"newtxsf\": {\n    \"command\": \"newtxsf\",\n    \"detail\": \"Sans-math fonts for use with newtx\",\n    \"documentation\": \"https://ctan.org/pkg/newtxsf\"\n  },\n  \"newtxtext\": {\n    \"command\": \"newtxtext\",\n    \"detail\": \"Alternative uses of the TX fonts, with improved metrics\",\n    \"documentation\": \"https://ctan.org/pkg/newtx\"\n  },\n  \"newtxtt\": {\n    \"command\": \"newtxtt\",\n    \"detail\": \"Enhancement of typewriter fonts from newtx\",\n    \"documentation\": \"https://ctan.org/pkg/newtxtt\"\n  },\n  \"newunicodechar\": {\n    \"command\": \"newunicodechar\",\n    \"detail\": \"Definitions of the meaning of Unicode characters\",\n    \"documentation\": \"https://ctan.org/pkg/newunicodechar\"\n  },\n  \"newvbtm\": {\n    \"command\": \"newvbtm\",\n    \"detail\": \"Define your own verbatim-like environment\",\n    \"documentation\": \"https://ctan.org/pkg/newvbtm\"\n  },\n  \"newverbs\": {\n    \"command\": \"newverbs\",\n    \"detail\": \"Define new versions of \\\\verb, including short verb versions\",\n    \"documentation\": \"https://ctan.org/pkg/newverbs\"\n  },\n  \"nextpage\": {\n    \"command\": \"nextpage\",\n    \"detail\": \"Generalisations of the page advance commands\",\n    \"documentation\": \"https://ctan.org/pkg/nextpage\"\n  },\n  \"nfssext-cfr\": {\n    \"command\": \"nfssext-cfr\",\n    \"detail\": \"Extensions to the LaTeX NFSS\",\n    \"documentation\": \"https://ctan.org/pkg/nfssext-cfr\"\n  },\n  \"ngerman\": {\n    \"command\": \"ngerman\",\n    \"detail\": \"Support for new German typography\",\n    \"documentation\": \"https://ctan.org/pkg/ngerman\"\n  },\n  \"nicefilelist\": {\n    \"command\": \"nicefilelist\",\n    \"detail\": \"Provide \\\\listfiles alignment\",\n    \"documentation\": \"https://ctan.org/pkg/nicefilelist\"\n  },\n  \"nicefrac\": {\n    \"command\": \"nicefrac\",\n    \"detail\": \"Typeset in-line fractions in a \\\"nice\\\" way\",\n    \"documentation\": \"https://ctan.org/pkg/nicefrac\"\n  },\n  \"niceframe\": {\n    \"command\": \"niceframe\",\n    \"detail\": \"Support for fancy frames\",\n    \"documentation\": \"https://ctan.org/pkg/niceframe\"\n  },\n  \"nicematrix\": {\n    \"command\": \"nicematrix\",\n    \"detail\": \"Improve the typesetting of mathematical matrices with PGF\",\n    \"documentation\": \"https://ctan.org/pkg/nicematrix\"\n  },\n  \"niceverb\": {\n    \"command\": \"niceverb\",\n    \"detail\": \"Minimising markup for documenting LaTeX packages\",\n    \"documentation\": \"https://ctan.org/pkg/niceverb\"\n  },\n  \"nidanfloat\": {\n    \"command\": \"nidanfloat\",\n    \"detail\": \"Bottom placement option for double float in two column mode (nidan-kumi)\",\n    \"documentation\": \"https://ctan.org/pkg/nidanfloat\"\n  },\n  \"nimsticks\": {\n    \"command\": \"nimsticks\",\n    \"detail\": \"Draws sticks for games of multi-pile Nim\",\n    \"documentation\": \"https://ctan.org/pkg/nimsticks\"\n  },\n  \"ninecolors\": {\n    \"command\": \"ninecolors\",\n    \"detail\": \"Select colors with proper WCAG color contrast\",\n    \"documentation\": \"https://ctan.org/pkg/ninecolors\"\n  },\n  \"nl-interval\": {\n    \"command\": \"nl-interval\",\n    \"detail\": \"Represent intervals on the number line\",\n    \"documentation\": \"https://ctan.org/pkg/nl-interval\"\n  },\n  \"nmbib\": {\n    \"command\": \"nmbib\",\n    \"detail\": \"Multiple versions of a bibliography, with different sort orders\",\n    \"documentation\": \"https://ctan.org/pkg/nmbib\"\n  },\n  \"nndraw\": {\n    \"command\": \"nndraw\",\n    \"detail\": \"Draw neural networks\",\n    \"documentation\": \"https://ctan.org/pkg/nndraw\"\n  },\n  \"nnext\": {\n    \"command\": \"nnext\",\n    \"detail\": \"Extension for the gb4e package\",\n    \"documentation\": \"https://ctan.org/pkg/nnext\"\n  },\n  \"noconflict\": {\n    \"command\": \"noconflict\",\n    \"detail\": \"Resolve macro name conflict between packages\",\n    \"documentation\": \"https://ctan.org/pkg/noconflict\"\n  },\n  \"nodetree\": {\n    \"command\": \"nodetree\",\n    \"detail\": \"Visualize node lists in a tree view\",\n    \"documentation\": \"https://ctan.org/pkg/nodetree\"\n  },\n  \"noindentafter\": {\n    \"command\": \"noindentafter\",\n    \"detail\": \"Prevent paragraph indentation after environments or macros\",\n    \"documentation\": \"https://ctan.org/pkg/noindentafter\"\n  },\n  \"noitcrul\": {\n    \"command\": \"noitcrul\",\n    \"detail\": \"Improved underlines in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/noitcrul\"\n  },\n  \"nolbreaks\": {\n    \"command\": \"nolbreaks\",\n    \"detail\": \"No line breaks in text\",\n    \"documentation\": \"https://ctan.org/pkg/nolbreaks\"\n  },\n  \"nomencl\": {\n    \"command\": \"nomencl\",\n    \"detail\": \"Produce lists of symbols as in nomenclature\",\n    \"documentation\": \"https://ctan.org/pkg/nomencl\"\n  },\n  \"nomentbl\": {\n    \"command\": \"nomentbl\",\n    \"detail\": \"Nomenclature typeset  in a longtable\",\n    \"documentation\": \"https://ctan.org/pkg/nomentbl\"\n  },\n  \"nonfloat\": {\n    \"command\": \"nonfloat\",\n    \"detail\": \"Non-floating table and figure captions\",\n    \"documentation\": \"https://ctan.org/pkg/nonfloat\"\n  },\n  \"nonumonpart\": {\n    \"command\": \"nonumonpart\",\n    \"detail\": \"Prevent page numbers on part pages\",\n    \"documentation\": \"https://ctan.org/pkg/nonumonpart\"\n  },\n  \"nopageno\": {\n    \"command\": \"nopageno\",\n    \"detail\": \"No page numbers in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/nopageno\"\n  },\n  \"normalcolor\": {\n    \"command\": \"normalcolor\",\n    \"detail\": \"Changing \\\\normalcolor\",\n    \"documentation\": \"https://ctan.org/pkg/normalcolor\"\n  },\n  \"notes\": {\n    \"command\": \"notes\",\n    \"detail\": \"Mark sections of a document\",\n    \"documentation\": \"https://ctan.org/pkg/notes\"\n  },\n  \"notes2bib\": {\n    \"command\": \"notes2bib\",\n    \"detail\": \"Integrating notes into the bibliography\",\n    \"documentation\": \"https://ctan.org/pkg/notes2bib\"\n  },\n  \"notespages\": {\n    \"command\": \"notespages\",\n    \"detail\": \"Filling documents with notes pages and notes areas\",\n    \"documentation\": \"https://ctan.org/pkg/notespages\"\n  },\n  \"notestex\": {\n    \"command\": \"NotesTeX\",\n    \"detail\": \"An all-in-one LaTeX notes package for students\",\n    \"documentation\": \"https://ctan.org/pkg/notestex\"\n  },\n  \"noto\": {\n    \"command\": \"noto\",\n    \"detail\": \"Support for Noto fonts\",\n    \"documentation\": \"https://ctan.org/pkg/noto\"\n  },\n  \"notoccite\": {\n    \"command\": \"notoccite\",\n    \"detail\": \"Prevent trouble from citations in table of contents, etc\",\n    \"documentation\": \"https://ctan.org/pkg/notoccite\"\n  },\n  \"notomath\": {\n    \"command\": \"notomath\",\n    \"detail\": \"Math support for Noto fonts\",\n    \"documentation\": \"https://ctan.org/pkg/notomath\"\n  },\n  \"nowidow\": {\n    \"command\": \"nowidow\",\n    \"detail\": \"Avoid widows\",\n    \"documentation\": \"https://ctan.org/pkg/nowidow\"\n  },\n  \"nox\": {\n    \"command\": \"nox\",\n    \"detail\": \"Adaptable tables\",\n    \"documentation\": \"https://ctan.org/pkg/nox\"\n  },\n  \"nth\": {\n    \"command\": \"nth\",\n    \"detail\": \"Generate English ordinal numbers\",\n    \"documentation\": \"https://ctan.org/pkg/nth\"\n  },\n  \"ntheorem\": {\n    \"command\": \"ntheorem\",\n    \"detail\": \"Enhanced theorem environment\",\n    \"documentation\": \"https://ctan.org/pkg/ntheorem\"\n  },\n  \"nuc\": {\n    \"command\": \"nuc\",\n    \"detail\": \"Notation for nuclear isotopes\",\n    \"documentation\": \"https://ctan.org/pkg/nuc\"\n  },\n  \"nucleardata\": {\n    \"command\": \"nucleardata\",\n    \"detail\": \"Provides data about atomic nuclides for documents\",\n    \"documentation\": \"https://ctan.org/pkg/nucleardata\"\n  },\n  \"numberedblock\": {\n    \"command\": \"numberedblock\",\n    \"detail\": \"Print a block of code, with unique index number\",\n    \"documentation\": \"https://ctan.org/pkg/numberedblock\"\n  },\n  \"numberpt\": {\n    \"command\": \"numberpt\",\n    \"detail\": \"Counters spelled out in Portuguese\",\n    \"documentation\": \"https://ctan.org/pkg/numberpt\"\n  },\n  \"numerica\": {\n    \"command\": \"numerica\",\n    \"detail\": \"Numerically evaluate mathematical expressions in LaTeX form\",\n    \"documentation\": \"https://ctan.org/pkg/numerica\"\n  },\n  \"numericplots\": {\n    \"command\": \"NumericPlots\",\n    \"detail\": \"Plot numeric data (including Matlab export) using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/numericplots\"\n  },\n  \"numname\": {\n    \"command\": \"numname\",\n    \"detail\": \"Convert a number to its English expression\",\n    \"documentation\": \"https://ctan.org/pkg/numname\"\n  },\n  \"numnameru\": {\n    \"command\": \"numnameru\",\n    \"detail\": \"Converts a number to the russian spelled out name\",\n    \"documentation\": \"https://ctan.org/pkg/numnameru\"\n  },\n  \"numprint\": {\n    \"command\": \"numprint\",\n    \"detail\": \"Print numbers with separators and exponent if necessary\",\n    \"documentation\": \"https://ctan.org/pkg/numprint\"\n  },\n  \"numspell\": {\n    \"command\": \"numspell\",\n    \"detail\": \"Spelling cardinal and ordinal numbers\",\n    \"documentation\": \"https://ctan.org/pkg/numspell\"\n  },\n  \"nunito\": {\n    \"command\": \"nunito\",\n    \"detail\": \"The Nunito font face with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/nunito\"\n  },\n  \"oands\": {\n    \"command\": \"oands\",\n    \"detail\": \"Glyphs used when transliterating ancient scripts\",\n    \"documentation\": \"https://ctan.org/pkg/oands\"\n  },\n  \"ocg-p\": {\n    \"command\": \"ocg-p\",\n    \"detail\": \"PDF OCG support in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ocg-p\"\n  },\n  \"ocgx\": {\n    \"command\": \"ocgx\",\n    \"detail\": \"Use OCGs within a PDF document without JavaScript\",\n    \"documentation\": \"https://ctan.org/pkg/ocgx\"\n  },\n  \"ocgx2\": {\n    \"command\": \"ocgx2\",\n    \"detail\": \"Drop-in replacement for ‘ocgx’ and ‘ocg-p’\",\n    \"documentation\": \"https://ctan.org/pkg/ocgx2\"\n  },\n  \"ocherokee\": {\n    \"command\": \"ocherokee\",\n    \"detail\": \"LaTeX Support for the Cherokee language\",\n    \"documentation\": \"https://ctan.org/pkg/ocherokee\"\n  },\n  \"octave\": {\n    \"command\": \"octave\",\n    \"detail\": \"Typeset musical pitches with octave designations\",\n    \"documentation\": \"https://ctan.org/pkg/octave\"\n  },\n  \"odsfile\": {\n    \"command\": \"odsfile\",\n    \"detail\": \"Read OpenDocument Spreadsheet documents as LaTeX tables\",\n    \"documentation\": \"https://ctan.org/pkg/odsfile\"\n  },\n  \"ofs\": {\n    \"command\": \"ofs\",\n    \"detail\": \"Macros for managing large font collections\",\n    \"documentation\": \"https://ctan.org/pkg/ofs\"\n  },\n  \"oinuit\": {\n    \"command\": \"oinuit\",\n    \"detail\": \"LaTeX Support for the Inuktitut Language\",\n    \"documentation\": \"https://ctan.org/pkg/oinuit\"\n  },\n  \"old-arrows\": {\n    \"command\": \"old-arrows\",\n    \"detail\": \"Computer Modern old-style arrows with smaller arrowheads\",\n    \"documentation\": \"https://ctan.org/pkg/old-arrows\"\n  },\n  \"oldprsn\": {\n    \"command\": \"oldprsn\",\n    \"detail\": \"Fonts old Persian cuneiform script\",\n    \"documentation\": \"https://ctan.org/pkg/oldprsn\"\n  },\n  \"oldstandard\": {\n    \"command\": \"OldStandard\",\n    \"detail\": \"OldStandard fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/oldstandard\"\n  },\n  \"oldstyle\": {\n    \"command\": \"oldstyle\",\n    \"detail\": \"Old style numbers in OT1 encoding\",\n    \"documentation\": \"https://ctan.org/pkg/oldstyle\"\n  },\n  \"omega\": {\n    \"command\": \"omega\",\n    \"detail\": \"A wide-character-set extension of TeX\",\n    \"documentation\": \"https://ctan.org/pkg/omega\"\n  },\n  \"onedown\": {\n    \"command\": \"onedown\",\n    \"detail\": \"Typeset Bridge Diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/onedown\"\n  },\n  \"onepagem\": {\n    \"command\": \"onepagem\",\n    \"detail\": \"If the document has only one page, omit page number\",\n    \"documentation\": \"https://ctan.org/pkg/onepagem\"\n  },\n  \"onlyamsmath\": {\n    \"command\": \"onlyamsmath\",\n    \"detail\": \"Inhibit use of non-amsmath mathematics markup when using amsmath\",\n    \"documentation\": \"https://ctan.org/pkg/onlyamsmath\"\n  },\n  \"opcit\": {\n    \"command\": \"opcit\",\n    \"detail\": \"Footnote-style bibliographical references\",\n    \"documentation\": \"https://ctan.org/pkg/opcit\"\n  },\n  \"opensans\": {\n    \"command\": \"opensans\",\n    \"detail\": \"The Open Sans font family, and LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/opensans\"\n  },\n  \"oplotsymbl\": {\n    \"command\": \"oplotsymbl\",\n    \"detail\": \"Some symbols which are not easily available\",\n    \"documentation\": \"https://ctan.org/pkg/oplotsymbl\"\n  },\n  \"opteng\": {\n    \"command\": \"opteng\",\n    \"detail\": \"SPIE Optical Engineering and OE Letters manuscript template\",\n    \"documentation\": \"https://ctan.org/pkg/opteng\"\n  },\n  \"optidef\": {\n    \"command\": \"optidef\",\n    \"detail\": \"Environments for writing optimization problems\",\n    \"documentation\": \"https://ctan.org/pkg/optidef\"\n  },\n  \"optional\": {\n    \"command\": \"optional\",\n    \"detail\": \"Facilitate optional printing of parts of a document\",\n    \"documentation\": \"https://ctan.org/pkg/optional\"\n  },\n  \"options\": {\n    \"command\": \"options\",\n    \"detail\": \"Provides convenient key-value options for LaTeX package writers\",\n    \"documentation\": \"https://ctan.org/pkg/options\"\n  },\n  \"optparams\": {\n    \"command\": \"optparams\",\n    \"detail\": \"Macros with multiple optional parameters\",\n    \"documentation\": \"https://ctan.org/pkg/optparams\"\n  },\n  \"orcidlink\": {\n    \"command\": \"orcidlink\",\n    \"detail\": \"Insert hyperlinked ORCiD logo\",\n    \"documentation\": \"https://ctan.org/pkg/orcidlink\"\n  },\n  \"ordinalpt\": {\n    \"command\": \"ordinalpt\",\n    \"detail\": \"Counters as ordinal numbers in Portuguese\",\n    \"documentation\": \"https://ctan.org/pkg/ordinalpt\"\n  },\n  \"orientation\": {\n    \"command\": \"orientation\",\n    \"detail\": \"Set page orientation with dvips/Ghostscript (ps2pdf)\",\n    \"documentation\": \"https://ctan.org/pkg/orientation\"\n  },\n  \"oswald\": {\n    \"command\": \"Oswald\",\n    \"detail\": \"The Oswald family of fonts with support for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/oswald\"\n  },\n  \"ot-tableau\": {\n    \"command\": \"ot-tableau\",\n    \"detail\": \"Optimality Theory tableaux in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ot-tableau\"\n  },\n  \"othello\": {\n    \"command\": \"othello\",\n    \"detail\": \"Modification of a Go package to create othello boards\",\n    \"documentation\": \"https://ctan.org/pkg/othello\"\n  },\n  \"othelloboard\": {\n    \"command\": \"othelloboard\",\n    \"detail\": \"Typeset Othello (Reversi) diagrams of any size, with annotations\",\n    \"documentation\": \"https://ctan.org/pkg/othelloboard\"\n  },\n  \"oubraces\": {\n    \"command\": \"oubraces\",\n    \"detail\": \"Braces over and under a formula\",\n    \"documentation\": \"https://ctan.org/pkg/oubraces\"\n  },\n  \"outerhbox\": {\n    \"command\": \"outerhbox\",\n    \"detail\": \"Collect horizontal material for contributing to a paragraph\",\n    \"documentation\": \"https://ctan.org/pkg/outerhbox\"\n  },\n  \"outline\": {\n    \"command\": \"outline\",\n    \"detail\": \"List environment for making outlines\",\n    \"documentation\": \"https://ctan.org/pkg/outline\"\n  },\n  \"outliner\": {\n    \"command\": \"outliner\",\n    \"detail\": \"Change section levels easily\",\n    \"documentation\": \"https://ctan.org/pkg/outliner\"\n  },\n  \"outlines\": {\n    \"command\": \"outlines\",\n    \"detail\": \"Produce \\\"outline\\\" lists\",\n    \"documentation\": \"https://ctan.org/pkg/outlines\"\n  },\n  \"outlining\": {\n    \"command\": \"outlining\",\n    \"detail\": \"Create outlines for scientific documents\",\n    \"documentation\": \"https://ctan.org/pkg/outlining\"\n  },\n  \"overcite\": {\n    \"command\": \"overcite\",\n    \"detail\": \"Compressed lists of superscript numerical citations\",\n    \"documentation\": \"https://ctan.org/pkg/overcite\"\n  },\n  \"overlays\": {\n    \"command\": \"overlays\",\n    \"detail\": \"Incremental slides\",\n    \"documentation\": \"https://ctan.org/pkg/overlays\"\n  },\n  \"overlock\": {\n    \"command\": \"overlock\",\n    \"detail\": \"Overlock sans fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/overlock\"\n  },\n  \"overpic\": {\n    \"command\": \"overpic\",\n    \"detail\": \"Combine LaTeX commands over included graphics\",\n    \"documentation\": \"https://ctan.org/pkg/overpic\"\n  },\n  \"overrightarrow\": {\n    \"command\": \"overrightarrow\",\n    \"detail\": \"Doubled \\\"over\\\" arrow\",\n    \"documentation\": \"https://ctan.org/pkg/overrightarrow\"\n  },\n  \"pacioli\": {\n    \"command\": \"pacioli\",\n    \"detail\": \"Fonts designed by Fra Luca de Pacioli in 1497\",\n    \"documentation\": \"https://ctan.org/pkg/pacioli\"\n  },\n  \"padcount\": {\n    \"command\": \"padcount\",\n    \"detail\": \"Pad numbers with arbitrary characters\",\n    \"documentation\": \"https://ctan.org/pkg/padcount\"\n  },\n  \"pagecolor\": {\n    \"command\": \"pagecolor\",\n    \"detail\": \"Interrogate page colour\",\n    \"documentation\": \"https://ctan.org/pkg/pagecolor\"\n  },\n  \"pagecont\": {\n    \"command\": \"pagecont\",\n    \"detail\": \"Page numbering that continues between documents\",\n    \"documentation\": \"https://ctan.org/pkg/pagecont\"\n  },\n  \"pagegrid\": {\n    \"command\": \"pagegrid\",\n    \"detail\": \"Print page grid in background\",\n    \"documentation\": \"https://ctan.org/pkg/pagegrid\"\n  },\n  \"pagenote\": {\n    \"command\": \"pagenote\",\n    \"detail\": \"Notes at end of document\",\n    \"documentation\": \"https://ctan.org/pkg/pagenote\"\n  },\n  \"pagerange\": {\n    \"command\": \"pagerange\",\n    \"detail\": \"Flexible and configurable page range typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/pagerange\"\n  },\n  \"pagesel\": {\n    \"command\": \"pagesel\",\n    \"detail\": \"Select pages of a document for output\",\n    \"documentation\": \"https://ctan.org/pkg/pagesel\"\n  },\n  \"pageslts\": {\n    \"command\": \"pageslts\",\n    \"detail\": \"Variants of last page labels\",\n    \"documentation\": \"https://ctan.org/pkg/pageslts\"\n  },\n  \"pandora\": {\n    \"command\": \"pandora\",\n    \"detail\": \"The Pandora font family\",\n    \"documentation\": \"https://ctan.org/pkg/pandora\"\n  },\n  \"paper\": {\n    \"command\": \"paper\",\n    \"detail\": \"Versions of article class, tuned for scholarly  publications\",\n    \"documentation\": \"https://ctan.org/pkg/paper\"\n  },\n  \"papercdcase\": {\n    \"command\": \"papercdcase\",\n    \"detail\": \"Origami-style folding paper CD case\",\n    \"documentation\": \"https://ctan.org/pkg/papercdcase\"\n  },\n  \"papermas\": {\n    \"command\": \"papermas\",\n    \"detail\": \"Compute the mass of a printed version of a document\",\n    \"documentation\": \"https://ctan.org/pkg/papermas\"\n  },\n  \"paracol\": {\n    \"command\": \"paracol\",\n    \"detail\": \"Multiple columns with texts “in parallel”\",\n    \"documentation\": \"https://ctan.org/pkg/paracol\"\n  },\n  \"paralist\": {\n    \"command\": \"paralist\",\n    \"detail\": \"Enumerate and itemize within paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/paralist\"\n  },\n  \"parallel\": {\n    \"command\": \"parallel\",\n    \"detail\": \"Typeset parallel texts\",\n    \"documentation\": \"https://ctan.org/pkg/parallel\"\n  },\n  \"paratype\": {\n    \"command\": \"paratype\",\n    \"detail\": \"LaTeX support for free fonts by ParaType\",\n    \"documentation\": \"https://ctan.org/pkg/paratype\"\n  },\n  \"parboxx\": {\n    \"command\": \"parboxx\",\n    \"detail\": \"Two extra alignment options for \\\\parbox\",\n    \"documentation\": \"https://ctan.org/pkg/parboxx\"\n  },\n  \"parcolumns\": {\n    \"command\": \"parcolumns\",\n    \"detail\": \"Multiple column parallel typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/parcolumns\"\n  },\n  \"paresse\": {\n    \"command\": \"paresse\",\n    \"detail\": \"Define simple macros for greek letters\",\n    \"documentation\": \"https://ctan.org/pkg/paresse\"\n  },\n  \"parnotes\": {\n    \"command\": \"parnotes\",\n    \"detail\": \"Notes after every paragraph (or elsewhere)\",\n    \"documentation\": \"https://ctan.org/pkg/parnotes\"\n  },\n  \"parrun\": {\n    \"command\": \"parrun\",\n    \"detail\": \"Typesets (two) streams of text running parallel\",\n    \"documentation\": \"https://ctan.org/pkg/parrun\"\n  },\n  \"parsa\": {\n    \"command\": \"parsa\",\n    \"detail\": \"A XeLaTeX package for theses and dissertations at Iranian Universities\",\n    \"documentation\": \"https://ctan.org/pkg/parsa\"\n  },\n  \"parselines\": {\n    \"command\": \"parselines\",\n    \"detail\": \"Apply a macro to each line of an environment\",\n    \"documentation\": \"https://ctan.org/pkg/parselines\"\n  },\n  \"parskip\": {\n    \"command\": \"parskip\",\n    \"detail\": \"Layout with zero \\\\parindent, non-zero \\\\parskip\",\n    \"documentation\": \"https://ctan.org/pkg/parskip\"\n  },\n  \"pas-cours\": {\n    \"command\": \"pas-cours\",\n    \"detail\": \"Macros useful in preparing teaching material\",\n    \"documentation\": \"https://ctan.org/pkg/pas-cours\"\n  },\n  \"pas-crosswords\": {\n    \"command\": \"pas-crosswords\",\n    \"detail\": \"Creating crossword grids, using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pas-crosswords\"\n  },\n  \"pas-cv\": {\n    \"command\": \"pas-cv\",\n    \"detail\": \"Flexible typesetting of Curricula Vitae\",\n    \"documentation\": \"https://ctan.org/pkg/pas-cv\"\n  },\n  \"pas-tableur\": {\n    \"command\": \"pas-tableur\",\n    \"detail\": \"Create a spreadsheet layout\",\n    \"documentation\": \"https://ctan.org/pkg/pas-tableur\"\n  },\n  \"patchcmd\": {\n    \"command\": \"patchcmd\",\n    \"detail\": \"Change the definition of an existing command\",\n    \"documentation\": \"https://ctan.org/pkg/patchcmd\"\n  },\n  \"path\": {\n    \"command\": \"path\",\n    \"detail\": \"Typeset paths, making them breakable\",\n    \"documentation\": \"https://ctan.org/pkg/path\"\n  },\n  \"pauldoc\": {\n    \"command\": \"pauldoc\",\n    \"detail\": \"German LaTeX package documentation\",\n    \"documentation\": \"https://ctan.org/pkg/pauldoc\"\n  },\n  \"pawpict\": {\n    \"command\": \"pawpict\",\n    \"detail\": \"Using graphics from PAW\",\n    \"documentation\": \"https://ctan.org/pkg/pawpict\"\n  },\n  \"pax\": {\n    \"command\": \"pax\",\n    \"detail\": \"Extract and reinsert PDF annotations with pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pax\"\n  },\n  \"pb-diagram\": {\n    \"command\": \"pb-diagram\",\n    \"detail\": \"A commutative diagram package using LAMSTeX or Xy-pic fonts\",\n    \"documentation\": \"https://ctan.org/pkg/pb-diagram\"\n  },\n  \"pbalance\": {\n    \"command\": \"pbalance\",\n    \"detail\": \"Balance last page in two-column mode\",\n    \"documentation\": \"https://ctan.org/pkg/pbalance\"\n  },\n  \"pbox\": {\n    \"command\": \"pbox\",\n    \"detail\": \"A variable-width \\\\parbox command\",\n    \"documentation\": \"https://ctan.org/pkg/pbox\"\n  },\n  \"pdf14\": {\n    \"command\": \"pdf14\",\n    \"detail\": \"Restore PDF 1.4 to a TeX live 2010 format\",\n    \"documentation\": \"https://ctan.org/pkg/pdf14\"\n  },\n  \"pdfcol\": {\n    \"command\": \"pdfcol\",\n    \"detail\": \"Defines macros for maintaining colour stacks under pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcol\"\n  },\n  \"pdfcolfoot\": {\n    \"command\": \"pdfcolfoot\",\n    \"detail\": \"Separate color stack for footnotes with pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcolfoot\"\n  },\n  \"pdfcolmk\": {\n    \"command\": \"pdfcolmk\",\n    \"detail\": \"Improved colour support under pdfTeX (legacy stub)\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcolmk\"\n  },\n  \"pdfcolparallel\": {\n    \"command\": \"pdfcolparallel\",\n    \"detail\": \"Fix colour problems in package 'parallel'\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcolparallel\"\n  },\n  \"pdfcolparcolumns\": {\n    \"command\": \"pdfcolparcolumns\",\n    \"detail\": \"Fix colour problems in package 'parcolumns'\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcolparcolumns\"\n  },\n  \"pdfcomment\": {\n    \"command\": \"pdfcomment\",\n    \"detail\": \"A user-friendly interface to pdf annotations\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcomment\"\n  },\n  \"pdfcprot\": {\n    \"command\": \"pdfcprot\",\n    \"detail\": \"Activating and setting of character protruding using pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcprot\"\n  },\n  \"pdfcrypt\": {\n    \"command\": \"pdfcrypt\",\n    \"detail\": \"Allows the setting of pdf encryption\",\n    \"documentation\": \"https://ctan.org/pkg/pdfcrypt\"\n  },\n  \"pdfescape\": {\n    \"command\": \"pdfescape\",\n    \"detail\": \"Implements pdfTeX's escape features using TeX or e-TeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfescape\"\n  },\n  \"pdflscape\": {\n    \"command\": \"pdflscape\",\n    \"detail\": \"Make landscape pages display as landscape\",\n    \"documentation\": \"https://ctan.org/pkg/pdflscape\"\n  },\n  \"pdfmanagement-testphase\": {\n    \"command\": \"pdfmanagement-testphase\",\n    \"detail\": \"LaTeX PDF management testphase bundle\",\n    \"documentation\": \"https://ctan.org/pkg/pdfmanagement-testphase\"\n  },\n  \"pdfmarginpar\": {\n    \"command\": \"pdfmarginpar\",\n    \"detail\": \"Generate marginpar-equivalent PDF annotations\",\n    \"documentation\": \"https://ctan.org/pkg/pdfmarginpar\"\n  },\n  \"pdfoverlay\": {\n    \"command\": \"pdfoverlay\",\n    \"detail\": \"A LaTeX style for overlaying text on a PDF\",\n    \"documentation\": \"https://ctan.org/pkg/pdfoverlay\"\n  },\n  \"pdfpagediff\": {\n    \"command\": \"pdfpagediff\",\n    \"detail\": \"Find difference between two PDF's\",\n    \"documentation\": \"https://ctan.org/pkg/pdfpagediff\"\n  },\n  \"pdfpages\": {\n    \"command\": \"pdfpages\",\n    \"detail\": \"Include PDF documents in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfpages\"\n  },\n  \"pdfpc\": {\n    \"command\": \"pdfpc\",\n    \"detail\": \"Define data for the pdfpc presentation viewer\",\n    \"documentation\": \"https://ctan.org/pkg/pdfpc\"\n  },\n  \"pdfpc-movie\": {\n    \"command\": \"pdfpc-movie\",\n    \"detail\": \"Pdfpc viewer-compatible hyperlinks to movies\",\n    \"documentation\": \"https://ctan.org/pkg/pdfpc-movie\"\n  },\n  \"pdfprivacy\": {\n    \"command\": \"pdfprivacy\",\n    \"detail\": \"A LaTeX package to remove or suppress pdf meta-data\",\n    \"documentation\": \"https://ctan.org/pkg/pdfprivacy\"\n  },\n  \"pdfrender\": {\n    \"command\": \"pdfrender\",\n    \"detail\": \"Control rendering parameters\",\n    \"documentation\": \"https://ctan.org/pkg/pdfrender\"\n  },\n  \"pdfreview\": {\n    \"command\": \"pdfreview\",\n    \"detail\": \"Annotate PDF files with margin notes\",\n    \"documentation\": \"https://ctan.org/pkg/pdfreview\"\n  },\n  \"pdfscreen\": {\n    \"command\": \"pdfscreen\",\n    \"detail\": \"Support screen-based document design\",\n    \"documentation\": \"https://ctan.org/pkg/pdfscreen\"\n  },\n  \"pdfslide\": {\n    \"command\": \"pdfslide\",\n    \"detail\": \"Presentation slides using pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfslide\"\n  },\n  \"pdfsync\": {\n    \"command\": \"pdfsync\",\n    \"detail\": \"Provide links between source and PDF\",\n    \"documentation\": \"https://ctan.org/pkg/pdfsync\"\n  },\n  \"pdftexcmds\": {\n    \"command\": \"pdftexcmds\",\n    \"detail\": \"LuaTeX support for pdfTeX utility functions\",\n    \"documentation\": \"https://ctan.org/pkg/pdftexcmds\"\n  },\n  \"pdftricks\": {\n    \"command\": \"pdftricks\",\n    \"detail\": \"Support for PSTricks in pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdftricks\"\n  },\n  \"pdftricks2\": {\n    \"command\": \"pdftricks2\",\n    \"detail\": \"Use PSTricks in pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdftricks2\"\n  },\n  \"pdfx\": {\n    \"command\": \"pdfx\",\n    \"detail\": \"PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pdfx\"\n  },\n  \"perfectcut\": {\n    \"command\": \"perfectcut\",\n    \"detail\": \"Nested delimiters that consistently grow regardless of the contents\",\n    \"documentation\": \"https://ctan.org/pkg/perfectcut\"\n  },\n  \"perltex\": {\n    \"command\": \"perltex\",\n    \"detail\": \"Define LaTeX macros in terms of Perl code\",\n    \"documentation\": \"https://ctan.org/pkg/perltex\"\n  },\n  \"permute\": {\n    \"command\": \"permute\",\n    \"detail\": \"Support for symmetric groups\",\n    \"documentation\": \"https://ctan.org/pkg/permute\"\n  },\n  \"perpage\": {\n    \"command\": \"perpage\",\n    \"detail\": \"Make a counter reset at every page boundary\",\n    \"documentation\": \"https://ctan.org/pkg/perpage\"\n  },\n  \"pfarrei\": {\n    \"command\": \"pfarrei\",\n    \"detail\": \"LaTeX support of pastors’ and priests’ work\",\n    \"documentation\": \"https://ctan.org/pkg/pfarrei\"\n  },\n  \"pfnote\": {\n    \"command\": \"pfnote\",\n    \"detail\": \"Number footnotes per page\",\n    \"documentation\": \"https://ctan.org/pkg/pfnote\"\n  },\n  \"pgf\": {\n    \"command\": \"pgf\",\n    \"detail\": \"Create PostScript and PDF graphics in TeX\",\n    \"documentation\": \"https://ctan.org/pkg/pgf\"\n  },\n  \"pgf-cmykshadings\": {\n    \"command\": \"pgf-cmykshadings\",\n    \"detail\": \"Support for CMYK and grayscale shadings in PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-cmykshadings\"\n  },\n  \"pgf-pie\": {\n    \"command\": \"pgf-pie\",\n    \"detail\": \"Draw pie charts, using PGF\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-pie\"\n  },\n  \"pgf-soroban\": {\n    \"command\": \"pgf-soroban\",\n    \"detail\": \"Create images of the soroban using TikZ/PGF\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-soroban\"\n  },\n  \"pgf-spectra\": {\n    \"command\": \"pgf-spectra\",\n    \"detail\": \"Draw continuous or discrete spectra using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-spectra\"\n  },\n  \"pgf-umlcd\": {\n    \"command\": \"pgf-umlcd\",\n    \"detail\": \"Some LaTeX macros for UML Class Diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-umlcd\"\n  },\n  \"pgf-umlsd\": {\n    \"command\": \"pgf-umlsd\",\n    \"detail\": \"Draw UML Sequence Diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/pgf-umlsd\"\n  },\n  \"pgfgantt\": {\n    \"command\": \"pgfgantt\",\n    \"detail\": \"Draw Gantt charts with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pgfgantt\"\n  },\n  \"pgfkeys\": {\n    \"command\": \"pgfkeys\",\n    \"detail\": \"Key value control for PGF\",\n    \"documentation\": \"https://ctan.org/pkg/pgfkeys\"\n  },\n  \"pgfkeyx\": {\n    \"command\": \"pgfkeyx\",\n    \"detail\": \"Extended and more robust version of pgfkeys\",\n    \"documentation\": \"https://ctan.org/pkg/pgfkeyx\"\n  },\n  \"pgfmath-xfp\": {\n    \"command\": \"pgfmath-xfp\",\n    \"detail\": \"Define pgfmath functions using xfp\",\n    \"documentation\": \"https://ctan.org/pkg/pgfmath-xfp\"\n  },\n  \"pgfmolbio\": {\n    \"command\": \"pgfmolbio\",\n    \"detail\": \"Draw graphs typically found in molecular biology texts\",\n    \"documentation\": \"https://ctan.org/pkg/pgfmolbio\"\n  },\n  \"pgfmorepages\": {\n    \"command\": \"pgfmorepages\",\n    \"detail\": \"Assemble multiple logical pages onto a physical page\",\n    \"documentation\": \"https://ctan.org/pkg/pgfmorepages\"\n  },\n  \"pgfopts\": {\n    \"command\": \"pgfopts\",\n    \"detail\": \"LaTeX package options with pgfkeys\",\n    \"documentation\": \"https://ctan.org/pkg/pgfopts\"\n  },\n  \"pgfornament\": {\n    \"command\": \"pgfornament\",\n    \"detail\": \"Drawing of Vectorian ornaments with PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pgfornament\"\n  },\n  \"pgfornament-han\": {\n    \"command\": \"pgfornament-han\",\n    \"detail\": \"pgfornament library for Chinese traditional motifs and patterns\",\n    \"documentation\": \"https://ctan.org/pkg/pgfornament-han\"\n  },\n  \"pgfplots\": {\n    \"command\": \"pgfplots\",\n    \"detail\": \"Create normal/logarithmic plots in two and three dimensions\",\n    \"documentation\": \"https://ctan.org/pkg/pgfplots\"\n  },\n  \"pgfplotstable\": {\n    \"command\": \"pgfplotstable\",\n    \"detail\": \"Loads, rounds, formats and postprocesses numerical tables\",\n    \"documentation\": \"https://ctan.org/pkg/pgfplotstable\"\n  },\n  \"pgothic\": {\n    \"command\": \"pgothic\",\n    \"detail\": \"Fonts based on the Gothic Textura Prescisus manuscript book-hand\",\n    \"documentation\": \"https://ctan.org/pkg/pgothic\"\n  },\n  \"phaistos\": {\n    \"command\": \"phaistos\",\n    \"detail\": \"Disk of Phaistos font\",\n    \"documentation\": \"https://ctan.org/pkg/phaistos\"\n  },\n  \"phffullpagefigure\": {\n    \"command\": \"phffullpagefigure\",\n    \"detail\": \"Figures which fill up a whole page\",\n    \"documentation\": \"https://ctan.org/pkg/phffullpagefigure\"\n  },\n  \"phfnote\": {\n    \"command\": \"phfnote\",\n    \"detail\": \"Basic formatting for short documents\",\n    \"documentation\": \"https://ctan.org/pkg/phfnote\"\n  },\n  \"phfparen\": {\n    \"command\": \"phfparen\",\n    \"detail\": \"Parenthetic math expressions made simpler and less redundant\",\n    \"documentation\": \"https://ctan.org/pkg/phfparen\"\n  },\n  \"phfqit\": {\n    \"command\": \"phfqit\",\n    \"detail\": \"Macros for typesetting Quantum Information Theory\",\n    \"documentation\": \"https://ctan.org/pkg/phfqit\"\n  },\n  \"phfquotetext\": {\n    \"command\": \"phfquotetext\",\n    \"detail\": \"Quote verbatim text without white space formatting\",\n    \"documentation\": \"https://ctan.org/pkg/phfquotetext\"\n  },\n  \"phfsvnwatermark\": {\n    \"command\": \"phfsvnwatermark\",\n    \"detail\": \"Watermarks with version control information from SVN\",\n    \"documentation\": \"https://ctan.org/pkg/phfsvnwatermark\"\n  },\n  \"phfthm\": {\n    \"command\": \"phfthm\",\n    \"detail\": \"Goodies for theorems and proofs\",\n    \"documentation\": \"https://ctan.org/pkg/phfthm\"\n  },\n  \"philex\": {\n    \"command\": \"philex\",\n    \"detail\": \"Cross references for named and numbered environments\",\n    \"documentation\": \"https://ctan.org/pkg/philex\"\n  },\n  \"philokalia\": {\n    \"command\": \"philokalia\",\n    \"detail\": \"A font to typeset the Philokalia Books\",\n    \"documentation\": \"https://ctan.org/pkg/philokalia\"\n  },\n  \"phoenician\": {\n    \"command\": \"phoenician\",\n    \"detail\": \"Fonts for the Phoenician script in use from about 1600 BC\",\n    \"documentation\": \"https://ctan.org/pkg/phoenician\"\n  },\n  \"phonenumbers\": {\n    \"command\": \"phonenumbers\",\n    \"detail\": \"Typesetting telephone numbers with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/phonenumbers\"\n  },\n  \"phonetic\": {\n    \"command\": \"phonetic\",\n    \"detail\": \"Metafont Phonetic fonts, based on Computer Modern\",\n    \"documentation\": \"https://ctan.org/pkg/phonetic\"\n  },\n  \"phonrule\": {\n    \"command\": \"phonrule\",\n    \"detail\": \"Typeset linear phonological rules\",\n    \"documentation\": \"https://ctan.org/pkg/phonrule\"\n  },\n  \"photo\": {\n    \"command\": \"photo\",\n    \"detail\": \"A float environment for photographs\",\n    \"documentation\": \"https://ctan.org/pkg/photo\"\n  },\n  \"physconst\": {\n    \"command\": \"physconst\",\n    \"detail\": \"Macros for commonly used physical constants\",\n    \"documentation\": \"https://ctan.org/pkg/physconst\"\n  },\n  \"physics\": {\n    \"command\": \"physics\",\n    \"detail\": \"Macros supporting the Mathematics of Physics\",\n    \"documentation\": \"https://ctan.org/pkg/physics\"\n  },\n  \"physunits\": {\n    \"command\": \"physunits\",\n    \"detail\": \"Macros for commonly used physical units\",\n    \"documentation\": \"https://ctan.org/pkg/physunits\"\n  },\n  \"piano\": {\n    \"command\": \"piano\",\n    \"detail\": \"Typeset a basic 2-octave piano diagram\",\n    \"documentation\": \"https://ctan.org/pkg/piano\"\n  },\n  \"picinpar\": {\n    \"command\": \"picinpar\",\n    \"detail\": \"Insert pictures into paragraphs\",\n    \"documentation\": \"https://ctan.org/pkg/picinpar\"\n  },\n  \"pict2e\": {\n    \"command\": \"pict2e\",\n    \"detail\": \"New implementation of picture commands\",\n    \"documentation\": \"https://ctan.org/pkg/pict2e\"\n  },\n  \"pictex\": {\n    \"command\": \"pictex\",\n    \"detail\": \"Picture drawing macros for TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pictex\"\n  },\n  \"pictex2\": {\n    \"command\": \"pictex2\",\n    \"detail\": \"Adds relative coordinates and improves the \\\\plot command\",\n    \"documentation\": \"https://ctan.org/pkg/pictex2\"\n  },\n  \"pictexwd\": {\n    \"command\": \"pictexwd\",\n    \"detail\": \"A patched version of PicTeX using fewer registers\",\n    \"documentation\": \"https://ctan.org/pkg/pictexwd\"\n  },\n  \"picture\": {\n    \"command\": \"picture\",\n    \"detail\": \"Dimens for picture macros\",\n    \"documentation\": \"https://ctan.org/pkg/picture\"\n  },\n  \"pifont\": {\n    \"command\": \"pifont\",\n    \"detail\": \"Access to PostScript standard Symbol and Dingbats fonts\",\n    \"documentation\": \"https://ctan.org/pkg/pifont\"\n  },\n  \"pigpen\": {\n    \"command\": \"pigpen\",\n    \"detail\": \"A font for the pigpen (or masonic) cipher\",\n    \"documentation\": \"https://ctan.org/pkg/pigpen\"\n  },\n  \"pinlabel\": {\n    \"command\": \"pinlabel\",\n    \"detail\": \"A TeX labelling package\",\n    \"documentation\": \"https://ctan.org/pkg/pinlabel\"\n  },\n  \"pinoutikz\": {\n    \"command\": \"pinoutikz\",\n    \"detail\": \"Draw chip pinouts with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/pinoutikz\"\n  },\n  \"pixelart\": {\n    \"command\": \"pixelart\",\n    \"detail\": \"A package to draw pixel-art pictures\",\n    \"documentation\": \"https://ctan.org/pkg/pixelart\"\n  },\n  \"pkgloader\": {\n    \"command\": \"pkgloader\",\n    \"detail\": \"Manage the options and loading order of other packages\",\n    \"documentation\": \"https://ctan.org/pkg/pkgloader\"\n  },\n  \"pl\": {\n    \"command\": \"pl\",\n    \"detail\": \"Literate Programming for Prolog with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pl\"\n  },\n  \"placeat\": {\n    \"command\": \"placeat\",\n    \"detail\": \"Absolute content positioning\",\n    \"documentation\": \"https://ctan.org/pkg/placeat\"\n  },\n  \"placeins\": {\n    \"command\": \"placeins\",\n    \"detail\": \"Control float placement\",\n    \"documentation\": \"https://ctan.org/pkg/placeins\"\n  },\n  \"plain\": {\n    \"command\": \"plain\",\n    \"detail\": \"The Plain TeX format\",\n    \"documentation\": \"https://ctan.org/pkg/plain\"\n  },\n  \"plantslabels\": {\n    \"command\": \"plantslabels\",\n    \"detail\": \"Write labels for plants\",\n    \"documentation\": \"https://ctan.org/pkg/plantslabels\"\n  },\n  \"plantuml\": {\n    \"command\": \"plantuml\",\n    \"detail\": \"Support for rendering UML diagrams using the syntax and tool of PlantUML\",\n    \"documentation\": \"https://ctan.org/pkg/plantuml\"\n  },\n  \"plates\": {\n    \"command\": \"plates\",\n    \"detail\": \"Arrange for \\\"plates\\\" sections of documents\",\n    \"documentation\": \"https://ctan.org/pkg/plates\"\n  },\n  \"plautopatch\": {\n    \"command\": \"plautopatch\",\n    \"detail\": \"Automated patches for pLaTeX/upLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/plautopatch\"\n  },\n  \"play\": {\n    \"command\": \"play\",\n    \"detail\": \"Typeset drama using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/play\"\n  },\n  \"plex-otf\": {\n    \"command\": \"plex-otf\",\n    \"detail\": \"Support for the OpenType font IBM Plex\",\n    \"documentation\": \"https://ctan.org/pkg/plex-otf\"\n  },\n  \"plimsoll\": {\n    \"command\": \"plimsoll\",\n    \"detail\": \"Fonts with the Plimsoll symbol and LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/plimsoll\"\n  },\n  \"pm-isomath\": {\n    \"command\": \"pm-isomath\",\n    \"detail\": \"Poor man ISO math for pdfLaTeX users\",\n    \"documentation\": \"https://ctan.org/pkg/pm-isomath\"\n  },\n  \"pmboxdraw\": {\n    \"command\": \"pmboxdraw\",\n    \"detail\": \"Poor man’s box drawing characters\",\n    \"documentation\": \"https://ctan.org/pkg/pmboxdraw\"\n  },\n  \"pmgraph\": {\n    \"command\": \"pmgraph\",\n    \"detail\": \"\\\"Poor man's\\\" graphics\",\n    \"documentation\": \"https://ctan.org/pkg/pmgraph\"\n  },\n  \"pmhanguljamo\": {\n    \"command\": \"pmhanguljamo\",\n    \"detail\": \"Poor man’s Hangul Jamo input method\",\n    \"documentation\": \"https://ctan.org/pkg/pmhanguljamo\"\n  },\n  \"poemscol\": {\n    \"command\": \"poemscol\",\n    \"detail\": \"Typesetting Critical Editions of Poetry\",\n    \"documentation\": \"https://ctan.org/pkg/poemscol\"\n  },\n  \"poetry\": {\n    \"command\": \"poetry\",\n    \"detail\": \"Facilities for typesetting poetry and poetical structure\",\n    \"documentation\": \"https://ctan.org/pkg/poetry\"\n  },\n  \"poetrytex\": {\n    \"command\": \"poetrytex\",\n    \"detail\": \"Typeset anthologies of poetry\",\n    \"documentation\": \"https://ctan.org/pkg/poetrytex\"\n  },\n  \"poiretone\": {\n    \"command\": \"PoiretOne\",\n    \"detail\": \"PoiretOne family of fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/poiretone\"\n  },\n  \"polexpr\": {\n    \"command\": \"polexpr\",\n    \"detail\": \"A parser for polynomial expressions\",\n    \"documentation\": \"https://ctan.org/pkg/polexpr\"\n  },\n  \"poligraf\": {\n    \"command\": \"poligraf\",\n    \"detail\": \"A TeX macro package for prepress\",\n    \"documentation\": \"https://ctan.org/pkg/poligraf\"\n  },\n  \"polski\": {\n    \"command\": \"polski\",\n    \"detail\": \"Typeset Polish documents with LaTeX and Polish fonts\",\n    \"documentation\": \"https://ctan.org/pkg/polski\"\n  },\n  \"polyglossia\": {\n    \"command\": \"polyglossia\",\n    \"detail\": \"An alternative to babel for XeLaTeX and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/polyglossia\"\n  },\n  \"polynom\": {\n    \"command\": \"polynom\",\n    \"detail\": \"Macros for manipulating polynomials\",\n    \"documentation\": \"https://ctan.org/pkg/polynom\"\n  },\n  \"polynomial\": {\n    \"command\": \"polynomial\",\n    \"detail\": \"Typeset (univariate) polynomials\",\n    \"documentation\": \"https://ctan.org/pkg/polynomial\"\n  },\n  \"polytable\": {\n    \"command\": \"polytable\",\n    \"detail\": \"Tabular-like environments with named columns\",\n    \"documentation\": \"https://ctan.org/pkg/polytable\"\n  },\n  \"poormanlog\": {\n    \"command\": \"poormanlog\",\n    \"detail\": \"Logarithms and powers with (almost) 9 digits\",\n    \"documentation\": \"https://ctan.org/pkg/poormanlog\"\n  },\n  \"postage\": {\n    \"command\": \"postage\",\n    \"detail\": \"Stamp letters with »Deutsche Post«'s service »Internetmarke«\",\n    \"documentation\": \"https://ctan.org/pkg/postage\"\n  },\n  \"poster\": {\n    \"command\": \"poster\",\n    \"detail\": \"Scale PostScript images for larger media or tiling\",\n    \"documentation\": \"https://ctan.org/pkg/poster\"\n  },\n  \"powerdot-tuliplab\": {\n    \"command\": \"powerdot-tuliplab\",\n    \"detail\": \"A style package for Powerdot to provide the design of TULIP Lab\",\n    \"documentation\": \"https://ctan.org/pkg/powerdot-tuliplab\"\n  },\n  \"practicalreports\": {\n    \"command\": \"practicalreports\",\n    \"detail\": \"Some macros for writing practical reports\",\n    \"documentation\": \"https://ctan.org/pkg/practicalreports\"\n  },\n  \"prelim2e\": {\n    \"command\": \"prelim2e\",\n    \"detail\": \"Allows the marking of preliminary versions of a document\",\n    \"documentation\": \"https://ctan.org/pkg/prelim2e\"\n  },\n  \"prerex\": {\n    \"command\": \"prerex\",\n    \"detail\": \"Interactive editor and macro support for prerequisite charts\",\n    \"documentation\": \"https://ctan.org/pkg/prerex\"\n  },\n  \"prettyref\": {\n    \"command\": \"prettyref\",\n    \"detail\": \"Make label references \\\"self-identify\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/prettyref\"\n  },\n  \"preview\": {\n    \"command\": \"preview\",\n    \"detail\": \"Extract bits of a LaTeX source for output\",\n    \"documentation\": \"https://ctan.org/pkg/preview\"\n  },\n  \"prftree\": {\n    \"command\": \"prftree\",\n    \"detail\": \"Macros for building proof trees\",\n    \"documentation\": \"https://ctan.org/pkg/prftree\"\n  },\n  \"principia\": {\n    \"command\": \"principia\",\n    \"detail\": \"Notations for typesetting the “Principia Mathematica”\",\n    \"documentation\": \"https://ctan.org/pkg/principia\"\n  },\n  \"printlen\": {\n    \"command\": \"printlen\",\n    \"detail\": \"Print lengths using specified units\",\n    \"documentation\": \"https://ctan.org/pkg/printlen\"\n  },\n  \"proba\": {\n    \"command\": \"proba\",\n    \"detail\": \"Shortcuts commands to symbols used in probability texts\",\n    \"documentation\": \"https://ctan.org/pkg/proba\"\n  },\n  \"probsoln\": {\n    \"command\": \"probsoln\",\n    \"detail\": \"Generate problem sheets and their solution sheets\",\n    \"documentation\": \"https://ctan.org/pkg/probsoln\"\n  },\n  \"proc\": {\n    \"command\": \"proc\",\n    \"detail\": \"Class for producing “proceedings”\",\n    \"documentation\": \"https://ctan.org/pkg/proc\"\n  },\n  \"processkv\": {\n    \"command\": \"processkv\",\n    \"detail\": \"Process key-value pairs\",\n    \"documentation\": \"https://ctan.org/pkg/processkv\"\n  },\n  \"prodint\": {\n    \"command\": \"prodint\",\n    \"detail\": \"A font that provides the product integral symbol\",\n    \"documentation\": \"https://ctan.org/pkg/prodint\"\n  },\n  \"productbox\": {\n    \"command\": \"productbox\",\n    \"detail\": \"Typeset a three-dimensional product box\",\n    \"documentation\": \"https://ctan.org/pkg/productbox\"\n  },\n  \"profcollege\": {\n    \"command\": \"ProfCollege\",\n    \"detail\": \"A LaTeX package for French maths teachers in college\",\n    \"documentation\": \"https://ctan.org/pkg/profcollege\"\n  },\n  \"program\": {\n    \"command\": \"program\",\n    \"detail\": \"Typesetting programs and algorithms\",\n    \"documentation\": \"https://ctan.org/pkg/program\"\n  },\n  \"progress\": {\n    \"command\": \"progress\",\n    \"detail\": \"Creates an overview of a document's state\",\n    \"documentation\": \"https://ctan.org/pkg/progress\"\n  },\n  \"progressbar\": {\n    \"command\": \"progressbar\",\n    \"detail\": \"Visualize shares of total amounts in the form of a (progress-)bar\",\n    \"documentation\": \"https://ctan.org/pkg/progressbar\"\n  },\n  \"projlib\": {\n    \"command\": \"ProjLib\",\n    \"detail\": \"A series of tools to simplify your workflow\",\n    \"documentation\": \"https://ctan.org/pkg/projlib\"\n  },\n  \"proof\": {\n    \"command\": \"proof\",\n    \"detail\": \"Shell based proofing for TeX-related files\",\n    \"documentation\": \"https://ctan.org/pkg/proof\"\n  },\n  \"proof-at-the-end\": {\n    \"command\": \"proof-at-the-end\",\n    \"detail\": \"A package to move proofs to appendix\",\n    \"documentation\": \"https://ctan.org/pkg/proof-at-the-end\"\n  },\n  \"proofread\": {\n    \"command\": \"proofread\",\n    \"detail\": \"Commands for inserting annotations\",\n    \"documentation\": \"https://ctan.org/pkg/proofread\"\n  },\n  \"prooftrees\": {\n    \"command\": \"prooftrees\",\n    \"detail\": \"Forest-based proof trees (symbolic logic)\",\n    \"documentation\": \"https://ctan.org/pkg/prooftrees\"\n  },\n  \"properties\": {\n    \"command\": \"properties\",\n    \"detail\": \"Load properties from a file\",\n    \"documentation\": \"https://ctan.org/pkg/properties\"\n  },\n  \"protecteddef\": {\n    \"command\": \"protecteddef\",\n    \"detail\": \"Define protected commands\",\n    \"documentation\": \"https://ctan.org/pkg/protecteddef\"\n  },\n  \"protex\": {\n    \"command\": \"ProTex\",\n    \"detail\": \"Literate programming package\",\n    \"documentation\": \"https://ctan.org/pkg/protex\"\n  },\n  \"protosem\": {\n    \"command\": \"protosem\",\n    \"detail\": \"Fonts for proto-Semitic cuneiform script\",\n    \"documentation\": \"https://ctan.org/pkg/protosem\"\n  },\n  \"psbao\": {\n    \"command\": \"psbao\",\n    \"detail\": \"Draw Bao diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/psbao\"\n  },\n  \"pseudo\": {\n    \"command\": \"pseudo\",\n    \"detail\": \"Straightforward pseudocode\",\n    \"documentation\": \"https://ctan.org/pkg/pseudo\"\n  },\n  \"pseudocode\": {\n    \"command\": \"pseudocode\",\n    \"detail\": \"LaTeX environment for specifying algorithms in a natural way\",\n    \"documentation\": \"https://ctan.org/pkg/pseudocode\"\n  },\n  \"psfont\": {\n    \"command\": \"psfont\",\n    \"detail\": \"Alternative font handling in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/psfont\"\n  },\n  \"psfrag\": {\n    \"command\": \"psfrag\",\n    \"detail\": \"Replace strings in encapsulated PostScript figures\",\n    \"documentation\": \"https://ctan.org/pkg/psfrag\"\n  },\n  \"psfragx\": {\n    \"command\": \"psfragx\",\n    \"detail\": \"A psfrag eXtension\",\n    \"documentation\": \"https://ctan.org/pkg/psfragx\"\n  },\n  \"psgo\": {\n    \"command\": \"psgo\",\n    \"detail\": \"Typeset go diagrams with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/psgo\"\n  },\n  \"pslatex\": {\n    \"command\": \"pslatex\",\n    \"detail\": \"Use PostScript fonts by default\",\n    \"documentation\": \"https://ctan.org/pkg/pslatex\"\n  },\n  \"pspicture\": {\n    \"command\": \"pspicture\",\n    \"detail\": \"PostScript picture support\",\n    \"documentation\": \"https://ctan.org/pkg/pspicture\"\n  },\n  \"pst-2dplot\": {\n    \"command\": \"pst-2dplot\",\n    \"detail\": \"A PSTricks package for drawing 2D curves\",\n    \"documentation\": \"https://ctan.org/pkg/pst-2dplot\"\n  },\n  \"pst-3d\": {\n    \"command\": \"pst-3d\",\n    \"detail\": \"A PSTricks package for tilting and other pseudo-3D tricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-3d\"\n  },\n  \"pst-3dplot\": {\n    \"command\": \"pst-3dplot\",\n    \"detail\": \"Draw 3D objects in parallel projection, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-3dplot\"\n  },\n  \"pst-abspos\": {\n    \"command\": \"pst-abspos\",\n    \"detail\": \"Put objects at an absolute position\",\n    \"documentation\": \"https://ctan.org/pkg/pst-abspos\"\n  },\n  \"pst-am\": {\n    \"command\": \"pst-am\",\n    \"detail\": \"Simulation of modulation and demodulation\",\n    \"documentation\": \"https://ctan.org/pkg/pst-am\"\n  },\n  \"pst-antiprism\": {\n    \"command\": \"pst-antiprism\",\n    \"detail\": \"A  PSTricks related package which draws an antiprism\",\n    \"documentation\": \"https://ctan.org/pkg/pst-antiprism\"\n  },\n  \"pst-arrow\": {\n    \"command\": \"pst-arrow\",\n    \"detail\": \"Special arrows for PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-arrow\"\n  },\n  \"pst-asr\": {\n    \"command\": \"pst-asr\",\n    \"detail\": \"Typeset autosegmental representations for linguists\",\n    \"documentation\": \"https://ctan.org/pkg/pst-asr\"\n  },\n  \"pst-bar\": {\n    \"command\": \"pst-bar\",\n    \"detail\": \"Produces bar charts using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-bar\"\n  },\n  \"pst-barcode\": {\n    \"command\": \"pst-barcode\",\n    \"detail\": \"Print barcodes using PostScript\",\n    \"documentation\": \"https://ctan.org/pkg/pst-barcode\"\n  },\n  \"pst-bezier\": {\n    \"command\": \"pst-bezier\",\n    \"detail\": \"Draw Bezier curves\",\n    \"documentation\": \"https://ctan.org/pkg/pst-bezier\"\n  },\n  \"pst-blur\": {\n    \"command\": \"pst-blur\",\n    \"detail\": \"PSTricks package for \\\"blurred\\\" shadows\",\n    \"documentation\": \"https://ctan.org/pkg/pst-blur\"\n  },\n  \"pst-bspline\": {\n    \"command\": \"pst-bspline\",\n    \"detail\": \"Draw cubic Bspline curves and interpolations\",\n    \"documentation\": \"https://ctan.org/pkg/pst-bspline\"\n  },\n  \"pst-calculate\": {\n    \"command\": \"pst-calculate\",\n    \"detail\": \"Support for floating point operations at LaTeX level\",\n    \"documentation\": \"https://ctan.org/pkg/pst-calculate\"\n  },\n  \"pst-calendar\": {\n    \"command\": \"pst-calendar\",\n    \"detail\": \"Plot calendars in \\\"fancy\\\" ways\",\n    \"documentation\": \"https://ctan.org/pkg/pst-calendar\"\n  },\n  \"pst-cie\": {\n    \"command\": \"pst-cie\",\n    \"detail\": \"CIE color space\",\n    \"documentation\": \"https://ctan.org/pkg/pst-cie\"\n  },\n  \"pst-circ\": {\n    \"command\": \"pst-circ\",\n    \"detail\": \"PSTricks package for drawing electric circuits\",\n    \"documentation\": \"https://ctan.org/pkg/pst-circ\"\n  },\n  \"pst-coil\": {\n    \"command\": \"pst-coil\",\n    \"detail\": \"A PSTricks package for coils, etc\",\n    \"documentation\": \"https://ctan.org/pkg/pst-coil\"\n  },\n  \"pst-contourplot\": {\n    \"command\": \"pst-contourplot\",\n    \"detail\": \"Draw  implicit functions using the “marching squares” algorithm\",\n    \"documentation\": \"https://ctan.org/pkg/pst-contourplot\"\n  },\n  \"pst-dart\": {\n    \"command\": \"pst-dart\",\n    \"detail\": \"Plotting dart boards\",\n    \"documentation\": \"https://ctan.org/pkg/pst-dart\"\n  },\n  \"pst-dbicons\": {\n    \"command\": \"pst-dbicons\",\n    \"detail\": \"Support for drawing ER diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/pst-dbicons\"\n  },\n  \"pst-diffraction\": {\n    \"command\": \"pst-diffraction\",\n    \"detail\": \"Print diffraction patterns from various apertures\",\n    \"documentation\": \"https://ctan.org/pkg/pst-diffraction\"\n  },\n  \"pst-electricfield\": {\n    \"command\": \"pst-electricfield\",\n    \"detail\": \"Draw electric field and equipotential lines with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-electricfield\"\n  },\n  \"pst-eps\": {\n    \"command\": \"pst-eps\",\n    \"detail\": \"Create EPS files from PSTricks figures\",\n    \"documentation\": \"https://ctan.org/pkg/pst-eps\"\n  },\n  \"pst-eucl\": {\n    \"command\": \"pst-eucl\",\n    \"detail\": \"Euclidian geometry with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-eucl\"\n  },\n  \"pst-exa\": {\n    \"command\": \"pst-exa\",\n    \"detail\": \"Typeset PSTricks examples, with code\",\n    \"documentation\": \"https://ctan.org/pkg/pst-exa\"\n  },\n  \"pst-feyn\": {\n    \"command\": \"pst-feyn\",\n    \"detail\": \"Draw graphical elements for Feynman diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/pst-feyn\"\n  },\n  \"pst-fill\": {\n    \"command\": \"pst-fill\",\n    \"detail\": \"Fill or tile areas with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-fill\"\n  },\n  \"pst-fit\": {\n    \"command\": \"pst-fit\",\n    \"detail\": \"Macros for curve fitting\",\n    \"documentation\": \"https://ctan.org/pkg/pst-fit\"\n  },\n  \"pst-fr3d\": {\n    \"command\": \"pst-fr3d\",\n    \"detail\": \"Draw 3-dimensional framed boxes using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-fr3d\"\n  },\n  \"pst-fractal\": {\n    \"command\": \"pst-fractal\",\n    \"detail\": \"Draw fractal sets using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-fractal\"\n  },\n  \"pst-fun\": {\n    \"command\": \"pst-fun\",\n    \"detail\": \"Draw \\\"funny\\\" objects with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-fun\"\n  },\n  \"pst-func\": {\n    \"command\": \"pst-func\",\n    \"detail\": \"PSTricks package for plotting mathematical functions\",\n    \"documentation\": \"https://ctan.org/pkg/pst-func\"\n  },\n  \"pst-gantt\": {\n    \"command\": \"pst-gantt\",\n    \"detail\": \"Draw GANTT charts with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-gantt\"\n  },\n  \"pst-geo\": {\n    \"command\": \"pst-geo\",\n    \"detail\": \"Geographical Projections\",\n    \"documentation\": \"https://ctan.org/pkg/pst-geo\"\n  },\n  \"pst-geometrictools\": {\n    \"command\": \"pst-geometrictools\",\n    \"detail\": \"A PSTricks package to draw geometric tools\",\n    \"documentation\": \"https://ctan.org/pkg/pst-geometrictools\"\n  },\n  \"pst-gr3d\": {\n    \"command\": \"pst-gr3d\",\n    \"detail\": \"Three dimensional grids with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-gr3d\"\n  },\n  \"pst-grad\": {\n    \"command\": \"pst-grad\",\n    \"detail\": \"Filling with colour gradients, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-grad\"\n  },\n  \"pst-infixplot\": {\n    \"command\": \"pst-infixplot\",\n    \"detail\": \"Using PSTricks plotting capacities with infix expressions rather than RPN\",\n    \"documentation\": \"https://ctan.org/pkg/pst-infixplot\"\n  },\n  \"pst-intersect\": {\n    \"command\": \"pst-intersect\",\n    \"detail\": \"Compute intersections of arbitrary curves\",\n    \"documentation\": \"https://ctan.org/pkg/pst-intersect\"\n  },\n  \"pst-jtree\": {\n    \"command\": \"pst-jtree\",\n    \"detail\": \"Typeset complex trees for linguists\",\n    \"documentation\": \"https://ctan.org/pkg/pst-jtree\"\n  },\n  \"pst-knot\": {\n    \"command\": \"pst-knot\",\n    \"detail\": \"PSTricks package for displaying knots\",\n    \"documentation\": \"https://ctan.org/pkg/pst-knot\"\n  },\n  \"pst-labo\": {\n    \"command\": \"pst-labo\",\n    \"detail\": \"Draw objects for Chemistry laboratories\",\n    \"documentation\": \"https://ctan.org/pkg/pst-labo\"\n  },\n  \"pst-layout\": {\n    \"command\": \"pst-layout\",\n    \"detail\": \"Page layout macros based on PSTricks packages\",\n    \"documentation\": \"https://ctan.org/pkg/pst-layout\"\n  },\n  \"pst-lens\": {\n    \"command\": \"pst-lens\",\n    \"detail\": \"Lenses with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-lens\"\n  },\n  \"pst-light3d\": {\n    \"command\": \"pst-light3d\",\n    \"detail\": \"Three dimensional lighting effects (PSTricks)\",\n    \"documentation\": \"https://ctan.org/pkg/pst-light3d\"\n  },\n  \"pst-lsystem\": {\n    \"command\": \"pst-lsystem\",\n    \"detail\": \"Create images based on a L-system\",\n    \"documentation\": \"https://ctan.org/pkg/pst-lsystem\"\n  },\n  \"pst-magneticfield\": {\n    \"command\": \"pst-magneticfield\",\n    \"detail\": \"Plotting a magnetic field with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-magneticfield\"\n  },\n  \"pst-marble\": {\n    \"command\": \"pst-marble\",\n    \"detail\": \"A PSTricks package to draw marble-like patterns\",\n    \"documentation\": \"https://ctan.org/pkg/pst-marble\"\n  },\n  \"pst-math\": {\n    \"command\": \"pst-math\",\n    \"detail\": \"Enhancement of PostScript math operators to use with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-math\"\n  },\n  \"pst-mirror\": {\n    \"command\": \"pst-mirror\",\n    \"detail\": \"Images on a spherical mirror\",\n    \"documentation\": \"https://ctan.org/pkg/pst-mirror\"\n  },\n  \"pst-moire\": {\n    \"command\": \"pst-moire\",\n    \"detail\": \"A PSTricks package to draw moiré patterns\",\n    \"documentation\": \"https://ctan.org/pkg/pst-moire\"\n  },\n  \"pst-node\": {\n    \"command\": \"pst-node\",\n    \"detail\": \"Nodes and node connections in PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-node\"\n  },\n  \"pst-ob3d\": {\n    \"command\": \"pst-ob3d\",\n    \"detail\": \"Three dimensional objects using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-ob3d\"\n  },\n  \"pst-ode\": {\n    \"command\": \"pst-ode\",\n    \"detail\": \"Solving initial value problems for sets of Ordinary Differential Equations\",\n    \"documentation\": \"https://ctan.org/pkg/pst-ode\"\n  },\n  \"pst-optexp\": {\n    \"command\": \"pst-optexp\",\n    \"detail\": \"Drawing optical experimental setups\",\n    \"documentation\": \"https://ctan.org/pkg/pst-optexp\"\n  },\n  \"pst-optic\": {\n    \"command\": \"pst-optic\",\n    \"detail\": \"Drawing optics diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/pst-optic\"\n  },\n  \"pst-osci\": {\n    \"command\": \"pst-osci\",\n    \"detail\": \"Oscgons with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-osci\"\n  },\n  \"pst-ovl\": {\n    \"command\": \"pst-ovl\",\n    \"detail\": \"Create and manage graphical overlays\",\n    \"documentation\": \"https://ctan.org/pkg/pst-ovl\"\n  },\n  \"pst-pad\": {\n    \"command\": \"pst-pad\",\n    \"detail\": \"Draw simple attachment systems with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-pad\"\n  },\n  \"pst-pdf\": {\n    \"command\": \"pst-pdf\",\n    \"detail\": \"Make PDF versions of graphics by processing between runs\",\n    \"documentation\": \"https://ctan.org/pkg/pst-pdf\"\n  },\n  \"pst-pdgr\": {\n    \"command\": \"pst-pdgr\",\n    \"detail\": \"Draw medical pedigrees using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-pdgr\"\n  },\n  \"pst-perspective\": {\n    \"command\": \"pst-perspective\",\n    \"detail\": \"Draw perspective views using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-perspective\"\n  },\n  \"pst-platon\": {\n    \"command\": \"pst-platon\",\n    \"detail\": \"Platonic solids in PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-platon\"\n  },\n  \"pst-plot\": {\n    \"command\": \"pst-plot\",\n    \"detail\": \"Plot data using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-plot\"\n  },\n  \"pst-poker\": {\n    \"command\": \"pst-poker\",\n    \"detail\": \"Drawing poker cards\",\n    \"documentation\": \"https://ctan.org/pkg/pst-poker\"\n  },\n  \"pst-poly\": {\n    \"command\": \"pst-poly\",\n    \"detail\": \"Polygons with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-poly\"\n  },\n  \"pst-pulley\": {\n    \"command\": \"pst-pulley\",\n    \"detail\": \"Plot pulleys, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-pulley\"\n  },\n  \"pst-qtree\": {\n    \"command\": \"pst-qtree\",\n    \"detail\": \"Simple syntax for trees\",\n    \"documentation\": \"https://ctan.org/pkg/pst-qtree\"\n  },\n  \"pst-rputover\": {\n    \"command\": \"pst-rputover\",\n    \"detail\": \" Place text over objects without obscuring background colors\",\n    \"documentation\": \"https://ctan.org/pkg/pst-rputover\"\n  },\n  \"pst-rubans\": {\n    \"command\": \"pst-rubans\",\n    \"detail\": \"Draw three-dimensional ribbons\",\n    \"documentation\": \"https://ctan.org/pkg/pst-rubans\"\n  },\n  \"pst-shell\": {\n    \"command\": \"pst-shell\",\n    \"detail\": \"Plotting sea shells\",\n    \"documentation\": \"https://ctan.org/pkg/pst-shell\"\n  },\n  \"pst-sigsys\": {\n    \"command\": \"pst-sigsys\",\n    \"detail\": \"Support of signal processing-related disciplines\",\n    \"documentation\": \"https://ctan.org/pkg/pst-sigsys\"\n  },\n  \"pst-slpe\": {\n    \"command\": \"pst-slpe\",\n    \"detail\": \"Sophisticated colour gradients\",\n    \"documentation\": \"https://ctan.org/pkg/pst-slpe\"\n  },\n  \"pst-solarsystem\": {\n    \"command\": \"pst-solarsystem\",\n    \"detail\": \"Plot the solar system for a specific date\",\n    \"documentation\": \"https://ctan.org/pkg/pst-solarsystem\"\n  },\n  \"pst-solides3d\": {\n    \"command\": \"pst-solides3d\",\n    \"detail\": \"Draw perspective views of 3D solids\",\n    \"documentation\": \"https://ctan.org/pkg/pst-solides3d\"\n  },\n  \"pst-soroban\": {\n    \"command\": \"pst-soroban\",\n    \"detail\": \"Draw a Soroban using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-soroban\"\n  },\n  \"pst-spectra\": {\n    \"command\": \"pst-spectra\",\n    \"detail\": \"Draw continuum, emission and absorption spectra with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-spectra\"\n  },\n  \"pst-spinner\": {\n    \"command\": \"pst-spinner\",\n    \"detail\": \"Drawing a fidget spinner\",\n    \"documentation\": \"https://ctan.org/pkg/pst-spinner\"\n  },\n  \"pst-stru\": {\n    \"command\": \"pst-stru\",\n    \"detail\": \"Civil engineering diagrams, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-stru\"\n  },\n  \"pst-text\": {\n    \"command\": \"pst-text\",\n    \"detail\": \"Text and character manipulation in PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-text\"\n  },\n  \"pst-thick\": {\n    \"command\": \"pst-thick\",\n    \"detail\": \"Drawing very thick lines and curves\",\n    \"documentation\": \"https://ctan.org/pkg/pst-thick\"\n  },\n  \"pst-tools\": {\n    \"command\": \"pst-tools\",\n    \"detail\": \"PSTricks support functions\",\n    \"documentation\": \"https://ctan.org/pkg/pst-tools\"\n  },\n  \"pst-tree\": {\n    \"command\": \"pst-tree\",\n    \"detail\": \"Trees, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-tree\"\n  },\n  \"pst-turtle\": {\n    \"command\": \"pst-turtle\",\n    \"detail\": \"Commands for “turtle operations”\",\n    \"documentation\": \"https://ctan.org/pkg/pst-turtle\"\n  },\n  \"pst-tvz\": {\n    \"command\": \"pst-tvz\",\n    \"detail\": \"Draw trees with more than one root node, using PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-tvz\"\n  },\n  \"pst-uml\": {\n    \"command\": \"pst-uml\",\n    \"detail\": \"UML diagrams with PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pst-uml\"\n  },\n  \"pst-vehicle\": {\n    \"command\": \"pst-vehicle\",\n    \"detail\": \"A PSTricks package for rolling vehicles on graphs of mathematical functions\",\n    \"documentation\": \"https://ctan.org/pkg/pst-vehicle\"\n  },\n  \"pst-venn\": {\n    \"command\": \"pst-venn\",\n    \"detail\": \"A PSTricks package for drawing Venn sets\",\n    \"documentation\": \"https://ctan.org/pkg/pst-venn\"\n  },\n  \"pst-vowel\": {\n    \"command\": \"pst-vowel\",\n    \"detail\": \"Enable arrows showing diphthongs on vowel charts\",\n    \"documentation\": \"https://ctan.org/pkg/pst-vowel\"\n  },\n  \"pst-xkey\": {\n    \"command\": \"pst-xkey\",\n    \"detail\": \"Key-value syntax for PSTricks packages\",\n    \"documentation\": \"https://ctan.org/pkg/pst-xkey\"\n  },\n  \"pstool\": {\n    \"command\": \"pstool\",\n    \"detail\": \"Support for psfrag within pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pstool\"\n  },\n  \"pstricks-add\": {\n    \"command\": \"pstricks-add\",\n    \"detail\": \"A collection of add-ons and bugfixes for PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/pstricks-add\"\n  },\n  \"pstring\": {\n    \"command\": \"pstring\",\n    \"detail\": \"Typeset sequences with justification pointers\",\n    \"documentation\": \"https://ctan.org/pkg/pstring\"\n  },\n  \"ptext\": {\n    \"command\": \"ptext\",\n    \"detail\": \"A ‘lipsum’ for Persian\",\n    \"documentation\": \"https://ctan.org/pkg/ptext\"\n  },\n  \"ptolemaicastronomy\": {\n    \"command\": \"ptolemaicastronomy\",\n    \"detail\": \"Diagrams of sphere models for variably strict conditionals (Lewis counterfactuals)\",\n    \"documentation\": \"https://ctan.org/pkg/ptolemaicastronomy\"\n  },\n  \"punk\": {\n    \"command\": \"punk\",\n    \"detail\": \"Donald Knuth's punk font\",\n    \"documentation\": \"https://ctan.org/pkg/punk\"\n  },\n  \"puyotikz\": {\n    \"command\": \"puyotikz\",\n    \"detail\": \"Quickly typeset board states of Puyo Puyo games\",\n    \"documentation\": \"https://ctan.org/pkg/puyotikz\"\n  },\n  \"pxbase\": {\n    \"command\": \"pxbase\",\n    \"detail\": \"Tools for use with (u)pLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pxbase\"\n  },\n  \"pxchfon\": {\n    \"command\": \"pxchfon\",\n    \"detail\": \"Japanese font setup for pLaTeX and upLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pxchfon\"\n  },\n  \"pxcjkcat\": {\n    \"command\": \"pxcjkcat\",\n    \"detail\": \"LaTeX interface for the CJK category codes of upTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pxcjkcat\"\n  },\n  \"pxfonts\": {\n    \"command\": \"pxfonts\",\n    \"detail\": \"Palatino-like fonts in support of mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/pxfonts\"\n  },\n  \"pxgreeks\": {\n    \"command\": \"pxgreeks\",\n    \"detail\": \"Shape selection for PX fonts Greek letters\",\n    \"documentation\": \"https://ctan.org/pkg/pxgreeks\"\n  },\n  \"pxjahyper\": {\n    \"command\": \"pxjahyper\",\n    \"detail\": \"Hyperref support for pLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pxjahyper\"\n  },\n  \"pxjodel\": {\n    \"command\": \"pxjodel\",\n    \"detail\": \"Help change metrics of fonts from japanese-otf\",\n    \"documentation\": \"https://ctan.org/pkg/pxjodel\"\n  },\n  \"pxpgfmark\": {\n    \"command\": \"pxpgfmark\",\n    \"detail\": \"e-pTeX driver for PGF inter-picture connections\",\n    \"documentation\": \"https://ctan.org/pkg/pxpgfmark\"\n  },\n  \"pxpic\": {\n    \"command\": \"pxpic\",\n    \"detail\": \"Draw pixel pictures\",\n    \"documentation\": \"https://ctan.org/pkg/pxpic\"\n  },\n  \"pxrubrica\": {\n    \"command\": \"pxrubrica\",\n    \"detail\": \"Ruby annotations according to JIS X 4051\",\n    \"documentation\": \"https://ctan.org/pkg/pxrubrica\"\n  },\n  \"pxtatescale\": {\n    \"command\": \"pxtatescale\",\n    \"detail\": \"Patch to graphics driver for scaling in vertical direction of pTeX\",\n    \"documentation\": \"https://ctan.org/pkg/pxtatescale\"\n  },\n  \"pxufont\": {\n    \"command\": \"pxufont\",\n    \"detail\": \"Emulate non-Unicode Japanese fonts using Unicode fonts\",\n    \"documentation\": \"https://ctan.org/pkg/pxufont\"\n  },\n  \"pygmentex\": {\n    \"command\": \"pygmentex\",\n    \"detail\": \"Use Pygments to format code listings in documents\",\n    \"documentation\": \"https://ctan.org/pkg/pygmentex\"\n  },\n  \"pyluatex\": {\n    \"command\": \"pyluatex\",\n    \"detail\": \"Execute Python code on the fly in your LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/pyluatex\"\n  },\n  \"python\": {\n    \"command\": \"python\",\n    \"detail\": \"Embed Python code in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/python\"\n  },\n  \"pythonhighlight\": {\n    \"command\": \"pythonhighlight\",\n    \"detail\": \"Highlighting of Python code, based on the listings package\",\n    \"documentation\": \"https://ctan.org/pkg/pythonhighlight\"\n  },\n  \"pythontex\": {\n    \"command\": \"pythontex\",\n    \"detail\": \"Run Python from within a document, typesetting the results\",\n    \"documentation\": \"https://ctan.org/pkg/pythontex\"\n  },\n  \"qcircuit\": {\n    \"command\": \"qcircuit\",\n    \"detail\": \"Macros to generate quantum ciruits\",\n    \"documentation\": \"https://ctan.org/pkg/qcircuit\"\n  },\n  \"qcm\": {\n    \"command\": \"qcm\",\n    \"detail\": \"A LaTeX2e class for making multiple choice questionnaires\",\n    \"documentation\": \"https://ctan.org/pkg/qcm\"\n  },\n  \"qrbill\": {\n    \"command\": \"qrbill\",\n    \"detail\": \"Create QR bills using LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/qrbill\"\n  },\n  \"qrcode\": {\n    \"command\": \"qrcode\",\n    \"detail\": \"Generate QR codes in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/qrcode\"\n  },\n  \"qsharp\": {\n    \"command\": \"qsharp\",\n    \"detail\": \"Syntax highlighting for the Q# language\",\n    \"documentation\": \"https://ctan.org/pkg/qsharp\"\n  },\n  \"qstest\": {\n    \"command\": \"qstest\",\n    \"detail\": \"Bundle for unit tests and pattern matching\",\n    \"documentation\": \"https://ctan.org/pkg/qstest\"\n  },\n  \"qsymbols\": {\n    \"command\": \"qsymbols\",\n    \"detail\": \"Maths symbol abbreviations\",\n    \"documentation\": \"https://ctan.org/pkg/qsymbols\"\n  },\n  \"qtree\": {\n    \"command\": \"qtree\",\n    \"detail\": \"Draw tree structures\",\n    \"documentation\": \"https://ctan.org/pkg/qtree\"\n  },\n  \"quantikz\": {\n    \"command\": \"quantikz\",\n    \"detail\": \"Draw quantum circuit diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/quantikz\"\n  },\n  \"quattrocento\": {\n    \"command\": \"quattrocento\",\n    \"detail\": \"Quattrocento and Quattrocento Sans fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/quattrocento\"\n  },\n  \"quicktype\": {\n    \"command\": \"quicktype\",\n    \"detail\": \"LaTeX package for quick typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/quicktype\"\n  },\n  \"quiz2socrative\": {\n    \"command\": \"quiz2socrative\",\n    \"detail\": \"Prepare questions for socrative quizzes\",\n    \"documentation\": \"https://ctan.org/pkg/quiz2socrative\"\n  },\n  \"quotchap\": {\n    \"command\": \"quotchap\",\n    \"detail\": \"Decorative chapter headings\",\n    \"documentation\": \"https://ctan.org/pkg/quotchap\"\n  },\n  \"quotes\": {\n    \"command\": \"quotes\",\n    \"detail\": \"Smart double quotes in LaTeX input\",\n    \"documentation\": \"https://ctan.org/pkg/quotes\"\n  },\n  \"quoting\": {\n    \"command\": \"quoting\",\n    \"detail\": \"Consolidated environment for displayed text\",\n    \"documentation\": \"https://ctan.org/pkg/quoting\"\n  },\n  \"quotmark\": {\n    \"command\": \"quotmark\",\n    \"detail\": \"Consistent quote marks\",\n    \"documentation\": \"https://ctan.org/pkg/quotmark\"\n  },\n  \"quran\": {\n    \"command\": \"quran\",\n    \"detail\": \"An easy way to typeset any part of The Holy Quran\",\n    \"documentation\": \"https://ctan.org/pkg/quran\"\n  },\n  \"quran-bn\": {\n    \"command\": \"quran-bn\",\n    \"detail\": \"Bengali translations to the quran package\",\n    \"documentation\": \"https://ctan.org/pkg/quran-bn\"\n  },\n  \"quran-de\": {\n    \"command\": \"quran-de\",\n    \"detail\": \"German translations to the  quran package\",\n    \"documentation\": \"https://ctan.org/pkg/quran-de\"\n  },\n  \"quran-ur\": {\n    \"command\": \"quran-ur\",\n    \"detail\": \"Urdu translations to the  quran package\",\n    \"documentation\": \"https://ctan.org/pkg/quran-ur\"\n  },\n  \"ragged2e\": {\n    \"command\": \"ragged2e\",\n    \"detail\": \"Alternative versions of “ragged”-type commands\",\n    \"documentation\": \"https://ctan.org/pkg/ragged2e\"\n  },\n  \"raleway\": {\n    \"command\": \"raleway\",\n    \"detail\": \"Use Raleway with TeX(-alike) systems\",\n    \"documentation\": \"https://ctan.org/pkg/raleway\"\n  },\n  \"ran_toks\": {\n    \"command\": \"ran_toks\",\n    \"detail\": \"Randomise token strings\",\n    \"documentation\": \"https://ctan.org/pkg/ran_toks\"\n  },\n  \"randbild\": {\n    \"command\": \"randbild\",\n    \"detail\": \"Marginal pictures\",\n    \"documentation\": \"https://ctan.org/pkg/randbild\"\n  },\n  \"randomlist\": {\n    \"command\": \"randomlist\",\n    \"detail\": \"Deal with database, loop, and random in order to build personalized exercises\",\n    \"documentation\": \"https://ctan.org/pkg/randomlist\"\n  },\n  \"randomwalk\": {\n    \"command\": \"randomwalk\",\n    \"detail\": \"Random walks using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/randomwalk\"\n  },\n  \"randtext\": {\n    \"command\": \"randtext\",\n    \"detail\": \"Randomise the order of characters in strings\",\n    \"documentation\": \"https://ctan.org/pkg/randtext\"\n  },\n  \"rank-2-roots\": {\n    \"command\": \"rank-2-roots\",\n    \"detail\": \"Draw (mathematical) rank 2 root systems\",\n    \"documentation\": \"https://ctan.org/pkg/rank-2-roots\"\n  },\n  \"rawfonts\": {\n    \"command\": \"rawfonts\",\n    \"detail\": \"Low level font compatibility mode for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/rawfonts\"\n  },\n  \"rccol\": {\n    \"command\": \"rccol\",\n    \"detail\": \"Decimal-centered optionally rounded numbers in tabular\",\n    \"documentation\": \"https://ctan.org/pkg/rccol\"\n  },\n  \"rcs\": {\n    \"command\": \"rcs\",\n    \"detail\": \"Use RCS (revision control system) tags in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/rcs\"\n  },\n  \"rcs-multi\": {\n    \"command\": \"rcs-multi\",\n    \"detail\": \"Typeset RCS version control in multiple-file documents\",\n    \"documentation\": \"https://ctan.org/pkg/rcs-multi\"\n  },\n  \"rcsinfo\": {\n    \"command\": \"rcsinfo\",\n    \"detail\": \"Support for the revision control system\",\n    \"documentation\": \"https://ctan.org/pkg/rcsinfo\"\n  },\n  \"readarray\": {\n    \"command\": \"readarray\",\n    \"detail\": \"Read, store and recall array-formatted data\",\n    \"documentation\": \"https://ctan.org/pkg/readarray\"\n  },\n  \"readprov\": {\n    \"command\": \"readprov\",\n    \"detail\": \"Provides GetFileInfo without the need to load the file\",\n    \"documentation\": \"https://ctan.org/pkg/readprov\"\n  },\n  \"realboxes\": {\n    \"command\": \"realboxes\",\n    \"detail\": \"Variants of common box-commands that read their content as real box and not as macro argument\",\n    \"documentation\": \"https://ctan.org/pkg/realboxes\"\n  },\n  \"realhats\": {\n    \"command\": \"realhats\",\n    \"detail\": \"Put real hats on symbols instead of ^\",\n    \"documentation\": \"https://ctan.org/pkg/realhats\"\n  },\n  \"realscripts\": {\n    \"command\": \"realscripts\",\n    \"detail\": \"Access OpenType subscript and superscript glyphs\",\n    \"documentation\": \"https://ctan.org/pkg/realscripts\"\n  },\n  \"realtranspose\": {\n    \"command\": \"realtranspose\",\n    \"detail\": \"The “real” way to transpose a Matrix\",\n    \"documentation\": \"https://ctan.org/pkg/realtranspose\"\n  },\n  \"rec-thy\": {\n    \"command\": \"rec-thy\",\n    \"detail\": \"Commands to typeset recursion theory papers\",\n    \"documentation\": \"https://ctan.org/pkg/rec-thy\"\n  },\n  \"rectopma\": {\n    \"command\": \"rectopma\",\n    \"detail\": \"Recycle top matter\",\n    \"documentation\": \"https://ctan.org/pkg/rectopma\"\n  },\n  \"recycle\": {\n    \"command\": \"recycle\",\n    \"detail\": \"A font providing the \\\"recyclable\\\" logo\",\n    \"documentation\": \"https://ctan.org/pkg/recycle\"\n  },\n  \"refcheck\": {\n    \"command\": \"refcheck\",\n    \"detail\": \"Check references (in figures, table, equations, etc)\",\n    \"documentation\": \"https://ctan.org/pkg/refcheck\"\n  },\n  \"refcount\": {\n    \"command\": \"refcount\",\n    \"detail\": \"Counter operations with label references\",\n    \"documentation\": \"https://ctan.org/pkg/refcount\"\n  },\n  \"refenums\": {\n    \"command\": \"refenums\",\n    \"detail\": \"Define named items and provide back-references with that name\",\n    \"documentation\": \"https://ctan.org/pkg/refenums\"\n  },\n  \"reflectgraphics\": {\n    \"command\": \"reflectgraphics\",\n    \"detail\": \"Techniques for reflecting graphics\",\n    \"documentation\": \"https://ctan.org/pkg/reflectgraphics\"\n  },\n  \"refstyle\": {\n    \"command\": \"refstyle\",\n    \"detail\": \"Advanced formatting of cross references\",\n    \"documentation\": \"https://ctan.org/pkg/refstyle\"\n  },\n  \"regcount\": {\n    \"command\": \"regcount\",\n    \"detail\": \"Display the allocation status of the TeX registers\",\n    \"documentation\": \"https://ctan.org/pkg/regcount\"\n  },\n  \"regexpatch\": {\n    \"command\": \"regexpatch\",\n    \"detail\": \"High level patching of commands\",\n    \"documentation\": \"https://ctan.org/pkg/regexpatch\"\n  },\n  \"register\": {\n    \"command\": \"register\",\n    \"detail\": \"Typeset programmable elements in digital hardware (registers)\",\n    \"documentation\": \"https://ctan.org/pkg/register\"\n  },\n  \"regstats\": {\n    \"command\": \"regstats\",\n    \"detail\": \"Information about register use\",\n    \"documentation\": \"https://ctan.org/pkg/regstats\"\n  },\n  \"reledmac\": {\n    \"command\": \"reledmac\",\n    \"detail\": \"Typeset scholarly editions\",\n    \"documentation\": \"https://ctan.org/pkg/reledmac\"\n  },\n  \"reledpar\": {\n    \"command\": \"reledpar\",\n    \"detail\": \"Typeset scholarly editions in parallel texts\",\n    \"documentation\": \"https://ctan.org/pkg/reledpar\"\n  },\n  \"relenc\": {\n    \"command\": \"relenc\",\n    \"detail\": \"A \\\"relaxed\\\" font encoding\",\n    \"documentation\": \"https://ctan.org/pkg/relenc\"\n  },\n  \"relsize\": {\n    \"command\": \"relsize\",\n    \"detail\": \"Set the font size relative to the current font size\",\n    \"documentation\": \"https://ctan.org/pkg/relsize\"\n  },\n  \"remreset\": {\n    \"command\": \"remreset\",\n    \"detail\": \"Remove counters from reset list\",\n    \"documentation\": \"https://ctan.org/pkg/remreset\"\n  },\n  \"reotex\": {\n    \"command\": \"reotex\",\n    \"detail\": \"Draw Reo Channels and Circuits\",\n    \"documentation\": \"https://ctan.org/pkg/reotex\"\n  },\n  \"repeatindex\": {\n    \"command\": \"repeatindex\",\n    \"detail\": \"Repeat items in an index after a page or column break\",\n    \"documentation\": \"https://ctan.org/pkg/repeatindex\"\n  },\n  \"repltext\": {\n    \"command\": \"repltext\",\n    \"detail\": \"Control how text gets copied from a PDF file\",\n    \"documentation\": \"https://ctan.org/pkg/repltext\"\n  },\n  \"report\": {\n    \"command\": \"report\",\n    \"detail\": \"Typeset a multi-chapter report\",\n    \"documentation\": \"https://ctan.org/pkg/report\"\n  },\n  \"rerunfilecheck\": {\n    \"command\": \"rerunfilecheck\",\n    \"detail\": \"Checksum based rerun checks on auxiliary files\",\n    \"documentation\": \"https://ctan.org/pkg/rerunfilecheck\"\n  },\n  \"resizegather\": {\n    \"command\": \"resizegather\",\n    \"detail\": \"Automatically resize overly large equations\",\n    \"documentation\": \"https://ctan.org/pkg/resizegather\"\n  },\n  \"rest-api\": {\n    \"command\": \"rest-api\",\n    \"detail\": \"Describing a rest api\",\n    \"documentation\": \"https://ctan.org/pkg/rest-api\"\n  },\n  \"returntogrid\": {\n    \"command\": \"returntogrid\",\n    \"detail\": \"Semi-automatic grid typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/returntogrid\"\n  },\n  \"revquantum\": {\n    \"command\": \"revquantum\",\n    \"detail\": \"Hacks to make writing quantum papers for revtex4-1 less painful\",\n    \"documentation\": \"https://ctan.org/pkg/revquantum\"\n  },\n  \"rgltxdoc\": {\n    \"command\": \"rgltxdoc\",\n    \"detail\": \"Common code for documentation of the author’s packages\",\n    \"documentation\": \"https://ctan.org/pkg/rgltxdoc\"\n  },\n  \"ribbonproofs\": {\n    \"command\": \"ribbonproofs\",\n    \"detail\": \"Drawing ribbon proofs\",\n    \"documentation\": \"https://ctan.org/pkg/ribbonproofs\"\n  },\n  \"rmathbr\": {\n    \"command\": \"rmathbr\",\n    \"detail\": \"Repeating of math operator at the broken line and the new line in inline equations\",\n    \"documentation\": \"https://ctan.org/pkg/rmathbr\"\n  },\n  \"rmpage\": {\n    \"command\": \"rmpage\",\n    \"detail\": \"A package to help change page layout parameters in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/rmpage\"\n  },\n  \"roboto\": {\n    \"command\": \"roboto\",\n    \"detail\": \"Support for the Roboto family of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/roboto\"\n  },\n  \"robustcommand\": {\n    \"command\": \"robustcommand\",\n    \"detail\": \"Declare robust command, with \\\\newcommand checks\",\n    \"documentation\": \"https://ctan.org/pkg/robustcommand\"\n  },\n  \"robustindex\": {\n    \"command\": \"robustindex\",\n    \"detail\": \"Create index with pagerefs\",\n    \"documentation\": \"https://ctan.org/pkg/robustindex\"\n  },\n  \"rojud\": {\n    \"command\": \"rojud\",\n    \"detail\": \"A font with the images of the counties of Romania\",\n    \"documentation\": \"https://ctan.org/pkg/rojud\"\n  },\n  \"romanbar\": {\n    \"command\": \"romanbar\",\n    \"detail\": \"Write roman number with \\\"bars\\\"\",\n    \"documentation\": \"https://ctan.org/pkg/romanbar\"\n  },\n  \"romanbarpagenumber\": {\n    \"command\": \"romanbarpagenumber\",\n    \"detail\": \"Typesetting roman page numbers\",\n    \"documentation\": \"https://ctan.org/pkg/romanbarpagenumber\"\n  },\n  \"romanneg\": {\n    \"command\": \"romanneg\",\n    \"detail\": \"Roman page numbers negative\",\n    \"documentation\": \"https://ctan.org/pkg/romanneg\"\n  },\n  \"romannum\": {\n    \"command\": \"romannum\",\n    \"detail\": \"Generate roman numerals instead of arabic digits\",\n    \"documentation\": \"https://ctan.org/pkg/romannum\"\n  },\n  \"rosario\": {\n    \"command\": \"Rosario\",\n    \"detail\": \"Using the free Rosario fonts with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/rosario\"\n  },\n  \"rotate\": {\n    \"command\": \"rotate\",\n    \"detail\": \"Rotate TeX boxes\",\n    \"documentation\": \"https://ctan.org/pkg/rotate\"\n  },\n  \"rotating\": {\n    \"command\": \"rotating\",\n    \"detail\": \"Rotation tools, including rotated full-page floats\",\n    \"documentation\": \"https://ctan.org/pkg/rotating\"\n  },\n  \"rotchiffre\": {\n    \"command\": \"rotchiffre\",\n    \"detail\": \"Perform simple rotation cyphers\",\n    \"documentation\": \"https://ctan.org/pkg/rotchiffre\"\n  },\n  \"rotfloat\": {\n    \"command\": \"rotfloat\",\n    \"detail\": \"Rotate floats\",\n    \"documentation\": \"https://ctan.org/pkg/rotfloat\"\n  },\n  \"rotpages\": {\n    \"command\": \"rotpages\",\n    \"detail\": \"Typeset sets of pages upside-down and backwards\",\n    \"documentation\": \"https://ctan.org/pkg/rotpages\"\n  },\n  \"rotunda\": {\n    \"command\": \"rotunda\",\n    \"detail\": \"Rotunda manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/rotunda\"\n  },\n  \"roundbox\": {\n    \"command\": \"roundbox\",\n    \"detail\": \"Round boxes in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/roundbox\"\n  },\n  \"rrgtrees\": {\n    \"command\": \"rrgtrees\",\n    \"detail\": \"Linguistic tree diagrams for Role and Reference Grammar (RRG) with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/rrgtrees\"\n  },\n  \"rsc\": {\n    \"command\": \"rsc\",\n    \"detail\": \"BibTeX style for use with RSC journals\",\n    \"documentation\": \"https://ctan.org/pkg/rsc\"\n  },\n  \"rsfso\": {\n    \"command\": \"rsfso\",\n    \"detail\": \"A mathematical calligraphic font based on rsfs\",\n    \"documentation\": \"https://ctan.org/pkg/rsfso\"\n  },\n  \"rterface\": {\n    \"command\": \"rterface\",\n    \"detail\": \"Access to R analysis from within a document\",\n    \"documentation\": \"https://ctan.org/pkg/rterface\"\n  },\n  \"rtkinenc\": {\n    \"command\": \"rtkinenc\",\n    \"detail\": \"Input encoding with fallback procedures\",\n    \"documentation\": \"https://ctan.org/pkg/rtkinenc\"\n  },\n  \"rubikcube\": {\n    \"command\": \"rubikcube\",\n    \"detail\": \"Typeset Rubik cubes and move notation\",\n    \"documentation\": \"https://ctan.org/pkg/rubikcube\"\n  },\n  \"rubikrotation\": {\n    \"command\": \"rubikrotation\",\n    \"detail\": \"Processes a sequence of Rubik rotations\",\n    \"documentation\": \"https://ctan.org/pkg/rubikrotation\"\n  },\n  \"rubiktwocube\": {\n    \"command\": \"rubiktwocube\",\n    \"detail\": \"Typeset Rubik TwoCubes and move notation\",\n    \"documentation\": \"https://ctan.org/pkg/rubiktwocube\"\n  },\n  \"rulerbox\": {\n    \"command\": \"rulerbox\",\n    \"detail\": \"Draw rulers around a box\",\n    \"documentation\": \"https://ctan.org/pkg/rulerbox\"\n  },\n  \"runcode\": {\n    \"command\": \"runcode\",\n    \"detail\": \"Execute foreign source code and embed the result in the pdf file\",\n    \"documentation\": \"https://ctan.org/pkg/runcode\"\n  },\n  \"runic\": {\n    \"command\": \"runic\",\n    \"detail\": \"Fonts for Anglo-Saxon futharc script\",\n    \"documentation\": \"https://ctan.org/pkg/runic\"\n  },\n  \"russ\": {\n    \"command\": \"russ\",\n    \"detail\": \"LaTeX in Russian, without babel\",\n    \"documentation\": \"https://ctan.org/pkg/russ\"\n  },\n  \"rustic\": {\n    \"command\": \"rustic\",\n    \"detail\": \"Roman Rustic manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/rustic\"\n  },\n  \"rutitlepage\": {\n    \"command\": \"rutitlepage\",\n    \"detail\": \"Radboud University Titlepage Package\",\n    \"documentation\": \"https://ctan.org/pkg/rutitlepage\"\n  },\n  \"rviewport\": {\n    \"command\": \"rviewport\",\n    \"detail\": \"Relative Viewport for Graphics Inclusion\",\n    \"documentation\": \"https://ctan.org/pkg/rviewport\"\n  },\n  \"rvwrite\": {\n    \"command\": \"rvwrite\",\n    \"detail\": \"Increase the number of available output streams in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/rvwrite\"\n  },\n  \"sa-tikz\": {\n    \"command\": \"sa-tikz\",\n    \"detail\": \"TikZ library to draw switching architectures\",\n    \"documentation\": \"https://ctan.org/pkg/sa-tikz\"\n  },\n  \"sanitize-umlaut\": {\n    \"command\": \"sanitize-umlaut\",\n    \"detail\": \"Sanitize umlauts for MakeIndex and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/sanitize-umlaut\"\n  },\n  \"sankey\": {\n    \"command\": \"sankey\",\n    \"detail\": \"Draw Sankey diagrams with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/sankey\"\n  },\n  \"sans\": {\n    \"command\": \"sans\",\n    \"detail\": \"Exchange Roman and Sans faces in a document\",\n    \"documentation\": \"https://ctan.org/pkg/sans\"\n  },\n  \"sansmath\": {\n    \"command\": \"sansmath\",\n    \"detail\": \"Maths in a sans font\",\n    \"documentation\": \"https://ctan.org/pkg/sansmath\"\n  },\n  \"sansmathaccent\": {\n    \"command\": \"sansmathaccent\",\n    \"detail\": \"Correct placement of accents in sans-serif maths\",\n    \"documentation\": \"https://ctan.org/pkg/sansmathaccent\"\n  },\n  \"sansmathfonts\": {\n    \"command\": \"sansmathfonts\",\n    \"detail\": \"Correct placement of accents in sans-serif maths\",\n    \"documentation\": \"https://ctan.org/pkg/sansmathfonts\"\n  },\n  \"sarabian\": {\n    \"command\": \"sarabian\",\n    \"detail\": \"Archaic South Arabian script font\",\n    \"documentation\": \"https://ctan.org/pkg/sarabian\"\n  },\n  \"sasnrdisplay\": {\n    \"command\": \"SASnRdisplay\",\n    \"detail\": \"Typeset SAS or R code or output\",\n    \"documentation\": \"https://ctan.org/pkg/sasnrdisplay\"\n  },\n  \"savefnmark\": {\n    \"command\": \"savefnmark\",\n    \"detail\": \"Save name of the footnote mark for reuse\",\n    \"documentation\": \"https://ctan.org/pkg/savefnmark\"\n  },\n  \"savesym\": {\n    \"command\": \"savesym\",\n    \"detail\": \"Redefine symbols where names conflict\",\n    \"documentation\": \"https://ctan.org/pkg/savesym\"\n  },\n  \"savetrees\": {\n    \"command\": \"savetrees\",\n    \"detail\": \"Optimise the use of each page of a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/savetrees\"\n  },\n  \"scale\": {\n    \"command\": \"scale\",\n    \"detail\": \"Scale document by sqrt(2) or magstep(2)\",\n    \"documentation\": \"https://ctan.org/pkg/scale\"\n  },\n  \"scalebar\": {\n    \"command\": \"scalebar\",\n    \"detail\": \"Create scalebars for maps, diagrams or photos\",\n    \"documentation\": \"https://ctan.org/pkg/scalebar\"\n  },\n  \"scalefnt\": {\n    \"command\": \"scalefnt\",\n    \"detail\": \"Rescale fonts to arbitrary sizes\",\n    \"documentation\": \"https://ctan.org/pkg/scalefnt\"\n  },\n  \"scalerel\": {\n    \"command\": \"scalerel\",\n    \"detail\": \"Constrained scaling and stretching of objects\",\n    \"documentation\": \"https://ctan.org/pkg/scalerel\"\n  },\n  \"scanpages\": {\n    \"command\": \"scanpages\",\n    \"detail\": \"Support importing and embellishing scanned documents\",\n    \"documentation\": \"https://ctan.org/pkg/scanpages\"\n  },\n  \"schedule\": {\n    \"command\": \"schedule\",\n    \"detail\": \"Weekly schedules\",\n    \"documentation\": \"https://ctan.org/pkg/schedule\"\n  },\n  \"schemabloc\": {\n    \"command\": \"schemabloc\",\n    \"detail\": \"Draw block diagrams, using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/schemabloc\"\n  },\n  \"schemata\": {\n    \"command\": \"schemata\",\n    \"detail\": \"Print topical diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/schemata\"\n  },\n  \"scholax\": {\n    \"command\": \"scholax\",\n    \"detail\": \"Extension of TeXGyreSchola (New Century Schoolbook) with math support\",\n    \"documentation\": \"https://ctan.org/pkg/scholax\"\n  },\n  \"schooldocs\": {\n    \"command\": \"schooldocs\",\n    \"detail\": \"Various layout styles for school documents\",\n    \"documentation\": \"https://ctan.org/pkg/schooldocs\"\n  },\n  \"schule\": {\n    \"command\": \"schule\",\n    \"detail\": \"Support for teachers at German schools\",\n    \"documentation\": \"https://ctan.org/pkg/schule\"\n  },\n  \"scientific-thesis-cover\": {\n    \"command\": \"scientific-thesis-cover\",\n    \"detail\": \"Provides cover page and affirmation at the end of a thesis\",\n    \"documentation\": \"https://ctan.org/pkg/scientific-thesis-cover\"\n  },\n  \"sclang-prettifier\": {\n    \"command\": \"sclang-prettifier\",\n    \"detail\": \"Prettyprinting SuperCollider source code\",\n    \"documentation\": \"https://ctan.org/pkg/sclang-prettifier\"\n  },\n  \"scontents\": {\n    \"command\": \"scontents\",\n    \"detail\": \"Stores LaTeX contents in memory or files\",\n    \"documentation\": \"https://ctan.org/pkg/scontents\"\n  },\n  \"scraddr\": {\n    \"command\": \"scraddr\",\n    \"detail\": \"Provide data from scrlttr2's address files\",\n    \"documentation\": \"https://ctan.org/pkg/scraddr\"\n  },\n  \"scratch\": {\n    \"command\": \"scratch\",\n    \"detail\": \"Draw programs like “scratch”\",\n    \"documentation\": \"https://ctan.org/pkg/scratch\"\n  },\n  \"scratch3\": {\n    \"command\": \"scratch3\",\n    \"detail\": \"Draw programs like “scratch”\",\n    \"documentation\": \"https://ctan.org/pkg/scratch3\"\n  },\n  \"scratchx\": {\n    \"command\": \"ScratchX\",\n    \"detail\": \"Include Scratch programs in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/scratchx\"\n  },\n  \"scrbase\": {\n    \"command\": \"scrbase\",\n    \"detail\": \"Provide basic features for KOMA-Script\",\n    \"documentation\": \"https://ctan.org/pkg/scrbase\"\n  },\n  \"scrdate\": {\n    \"command\": \"scrdate\",\n    \"detail\": \"Calendar date operations\",\n    \"documentation\": \"https://ctan.org/pkg/scrdate\"\n  },\n  \"screenplay-pkg\": {\n    \"command\": \"screenplay-pkg\",\n    \"detail\": \"Package version of the screenplay document class\",\n    \"documentation\": \"https://ctan.org/pkg/screenplay-pkg\"\n  },\n  \"scrextend\": {\n    \"command\": \"scrextend\",\n    \"detail\": \"Use of components of KOMA-Script by other packages\",\n    \"documentation\": \"https://ctan.org/pkg/scrextend\"\n  },\n  \"scrindex\": {\n    \"command\": \"scrindex\",\n    \"detail\": \"Make index package work with Koma-script classes\",\n    \"documentation\": \"https://ctan.org/pkg/scrindex\"\n  },\n  \"scrjura\": {\n    \"command\": \"scrjura\",\n    \"detail\": \"Koma-Script support for lawyers, etc\",\n    \"documentation\": \"https://ctan.org/pkg/scrjura\"\n  },\n  \"scrlayer\": {\n    \"command\": \"scrlayer\",\n    \"detail\": \"Manage text ‘layers’ within Koma-Script\",\n    \"documentation\": \"https://ctan.org/pkg/scrlayer\"\n  },\n  \"scrlayer-fancyhdr\": {\n    \"command\": \"scrlayer-fancyhdr\",\n    \"detail\": \"Combining package fancyhdr with KOMA-Script’s scrlayer\",\n    \"documentation\": \"https://ctan.org/pkg/scrlayer-fancyhdr\"\n  },\n  \"scrlayer-notecolumn\": {\n    \"command\": \"scrlayer-notecolumn\",\n    \"detail\": \"Control note columns parallel to the main text\",\n    \"documentation\": \"https://ctan.org/pkg/scrlayer-notecolumn\"\n  },\n  \"scrlayer-scrpage\": {\n    \"command\": \"scrlayer-scrpage\",\n    \"detail\": \"Define and manage page styles\",\n    \"documentation\": \"https://ctan.org/pkg/scrlayer-scrpage\"\n  },\n  \"scrletter\": {\n    \"command\": \"scrletter\",\n    \"detail\": \"Letter extention to KOMA-Script classes\",\n    \"documentation\": \"https://ctan.org/pkg/scrletter\"\n  },\n  \"scrlfile\": {\n    \"command\": \"scrlfile\",\n    \"detail\": \"Installation control for koma-script packages\",\n    \"documentation\": \"https://ctan.org/pkg/scrlfile\"\n  },\n  \"scrtime\": {\n    \"command\": \"scrtime\",\n    \"detail\": \"Show the time of a LaTeX run\",\n    \"documentation\": \"https://ctan.org/pkg/scrtime\"\n  },\n  \"scrwfile\": {\n    \"command\": \"scrwfile\",\n    \"detail\": \"Use LaTeX .aux file in place of \\\\newrite files\",\n    \"documentation\": \"https://ctan.org/pkg/scrwfile\"\n  },\n  \"scsnowman\": {\n    \"command\": \"scsnowman\",\n    \"detail\": \"Snowman variants using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/scsnowman\"\n  },\n  \"sdrt\": {\n    \"command\": \"sdrt\",\n    \"detail\": \"Macros for Segmented Discourse Representation Theory\",\n    \"documentation\": \"https://ctan.org/pkg/sdrt\"\n  },\n  \"secdot\": {\n    \"command\": \"secdot\",\n    \"detail\": \"Section numbers with trailing dots\",\n    \"documentation\": \"https://ctan.org/pkg/secdot\"\n  },\n  \"secnum\": {\n    \"command\": \"secnum\",\n    \"detail\": \"A macro to format section numbering intuitively\",\n    \"documentation\": \"https://ctan.org/pkg/secnum\"\n  },\n  \"section\": {\n    \"command\": \"section\",\n    \"detail\": \"Modifying section commands in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/section\"\n  },\n  \"sectionbox\": {\n    \"command\": \"sectionbox\",\n    \"detail\": \"Create fancy boxed ((sub)sub)sections\",\n    \"documentation\": \"https://ctan.org/pkg/sectionbox\"\n  },\n  \"sectionbreak\": {\n    \"command\": \"sectionbreak\",\n    \"detail\": \"LaTeX support for section breaks\",\n    \"documentation\": \"https://ctan.org/pkg/sectionbreak\"\n  },\n  \"sectsty\": {\n    \"command\": \"sectsty\",\n    \"detail\": \"Control sectional headers\",\n    \"documentation\": \"https://ctan.org/pkg/sectsty\"\n  },\n  \"seealso\": {\n    \"command\": \"seealso\",\n    \"detail\": \"Improve the performance of \\\\see macros with makeindex\",\n    \"documentation\": \"https://ctan.org/pkg/seealso\"\n  },\n  \"selectp\": {\n    \"command\": \"selectp\",\n    \"detail\": \"Select pages to be output\",\n    \"documentation\": \"https://ctan.org/pkg/selectp\"\n  },\n  \"selinput\": {\n    \"command\": \"selinput\",\n    \"detail\": \"Semi-automatic detection of input encoding\",\n    \"documentation\": \"https://ctan.org/pkg/selinput\"\n  },\n  \"selnolig\": {\n    \"command\": \"selnolig\",\n    \"detail\": \"Selectively disable typographic ligatures\",\n    \"documentation\": \"https://ctan.org/pkg/selnolig\"\n  },\n  \"semantex\": {\n    \"command\": \"semantex\",\n    \"detail\": \"Semantic, keyval-based mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/semantex\"\n  },\n  \"semantic\": {\n    \"command\": \"semantic\",\n    \"detail\": \"Help for writing programming language semantics\",\n    \"documentation\": \"https://ctan.org/pkg/semantic\"\n  },\n  \"semantic-markup\": {\n    \"command\": \"semantic-markup\",\n    \"detail\": \"Meaningful semantic markup in the spirit of the Text Encoding Initiative\",\n    \"documentation\": \"https://ctan.org/pkg/semantic-markup\"\n  },\n  \"semesterplanner\": {\n    \"command\": \"semesterplanner\",\n    \"detail\": \"Create beautiful semester timetables and more\",\n    \"documentation\": \"https://ctan.org/pkg/semesterplanner\"\n  },\n  \"seminar\": {\n    \"command\": \"seminar\",\n    \"detail\": \"Make overhead slides\",\n    \"documentation\": \"https://ctan.org/pkg/seminar\"\n  },\n  \"semioneside\": {\n    \"command\": \"semioneside\",\n    \"detail\": \"Put only special contents on left-hand pages in two sided layout\",\n    \"documentation\": \"https://ctan.org/pkg/semioneside\"\n  },\n  \"semtex\": {\n    \"command\": \"semtex\",\n    \"detail\": \"Deals with stripped SemanTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/semtex\"\n  },\n  \"semtrans\": {\n    \"command\": \"semtrans\",\n    \"detail\": \"Transliteration of semitic languages\",\n    \"documentation\": \"https://ctan.org/pkg/semtrans\"\n  },\n  \"sepfootnotes\": {\n    \"command\": \"sepfootnotes\",\n    \"detail\": \"Support footnotes and endnotes from separate files\",\n    \"documentation\": \"https://ctan.org/pkg/sepfootnotes\"\n  },\n  \"sepnum\": {\n    \"command\": \"sepnum\",\n    \"detail\": \"Print numbers in a \\\"friendly\\\" format\",\n    \"documentation\": \"https://ctan.org/pkg/sepnum\"\n  },\n  \"seqsplit\": {\n    \"command\": \"seqsplit\",\n    \"detail\": \"Split long sequences of characters in a neutral way\",\n    \"documentation\": \"https://ctan.org/pkg/seqsplit\"\n  },\n  \"serbian-apostrophe\": {\n    \"command\": \"serbian-apostrophe\",\n    \"detail\": \"Commands for Serbian words with apostrophes\",\n    \"documentation\": \"https://ctan.org/pkg/serbian-apostrophe\"\n  },\n  \"serbian-date-lat\": {\n    \"command\": \"serbian-date-lat\",\n    \"detail\": \"Updated date typesetting for Serbian\",\n    \"documentation\": \"https://ctan.org/pkg/serbian-date-lat\"\n  },\n  \"serbian-def-cyr\": {\n    \"command\": \"serbian-def-cyr\",\n    \"detail\": \"Serbian cyrillic localization\",\n    \"documentation\": \"https://ctan.org/pkg/serbian-def-cyr\"\n  },\n  \"serbian-lig\": {\n    \"command\": \"serbian-lig\",\n    \"detail\": \"Control ligatures in Serbian\",\n    \"documentation\": \"https://ctan.org/pkg/serbian-lig\"\n  },\n  \"sesamanuel\": {\n    \"command\": \"sesamanuel\",\n    \"detail\": \"Class and package for sesamath books or paper\",\n    \"documentation\": \"https://ctan.org/pkg/sesamanuel\"\n  },\n  \"sesstime\": {\n    \"command\": \"sesstime\",\n    \"detail\": \"Session and timing information in lecture notes\",\n    \"documentation\": \"https://ctan.org/pkg/sesstime\"\n  },\n  \"setdeck\": {\n    \"command\": \"setdeck\",\n    \"detail\": \"Typeset cards for Set\",\n    \"documentation\": \"https://ctan.org/pkg/setdeck\"\n  },\n  \"setouterhbox\": {\n    \"command\": \"setouterhbox\",\n    \"detail\": \"Set hbox in outer horizontal mode\",\n    \"documentation\": \"https://ctan.org/pkg/setouterhbox\"\n  },\n  \"setspace\": {\n    \"command\": \"setspace\",\n    \"detail\": \"Set space between lines\",\n    \"documentation\": \"https://ctan.org/pkg/setspace\"\n  },\n  \"settobox\": {\n    \"command\": \"settobox\",\n    \"detail\": \"Assigning dimensions of a box to a length register\",\n    \"documentation\": \"https://ctan.org/pkg/settobox\"\n  },\n  \"sexam\": {\n    \"command\": \"sexam\",\n    \"detail\": \"Package for typesetting arabic exam scripts\",\n    \"documentation\": \"https://ctan.org/pkg/sexam\"\n  },\n  \"sf298\": {\n    \"command\": \"sf298\",\n    \"detail\": \"Standard form 298\",\n    \"documentation\": \"https://ctan.org/pkg/sf298\"\n  },\n  \"sfg\": {\n    \"command\": \"sfg\",\n    \"detail\": \"Draw signal flow graphs\",\n    \"documentation\": \"https://ctan.org/pkg/sfg\"\n  },\n  \"sfmath\": {\n    \"command\": \"sfmath\",\n    \"detail\": \"Sans-serif mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/sfmath\"\n  },\n  \"sgame\": {\n    \"command\": \"sgame\",\n    \"detail\": \"LaTeX style for typesetting strategic games\",\n    \"documentation\": \"https://ctan.org/pkg/sgame\"\n  },\n  \"sgmlcmpt\": {\n    \"command\": \"sgmlcmpt\",\n    \"detail\": \"Suppport for LaTeX formulae as SGML PCDATA\",\n    \"documentation\": \"https://ctan.org/pkg/sgmlcmpt\"\n  },\n  \"shadethm\": {\n    \"command\": \"shadethm\",\n    \"detail\": \"Theorem environments that are shaded\",\n    \"documentation\": \"https://ctan.org/pkg/shadethm\"\n  },\n  \"shadow\": {\n    \"command\": \"shadow\",\n    \"detail\": \"Shadow boxes\",\n    \"documentation\": \"https://ctan.org/pkg/shadow\"\n  },\n  \"shadowtext\": {\n    \"command\": \"shadowtext\",\n    \"detail\": \"Produce text with a shadow behind it\",\n    \"documentation\": \"https://ctan.org/pkg/shadowtext\"\n  },\n  \"shapepar\": {\n    \"command\": \"shapepar\",\n    \"detail\": \"A macro to typeset paragraphs in specific shapes\",\n    \"documentation\": \"https://ctan.org/pkg/shapepar\"\n  },\n  \"shdoc\": {\n    \"command\": \"shdoc\",\n    \"detail\": \"Float environment to document the shell commands of a terminal session\",\n    \"documentation\": \"https://ctan.org/pkg/shdoc\"\n  },\n  \"shellesc\": {\n    \"command\": \"shellesc\",\n    \"detail\": \"Unified shell escape interface for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/shellesc\"\n  },\n  \"shortmathj\": {\n    \"command\": \"shortmathj\",\n    \"detail\": \"Automatically shortify titles of mathematical journals\",\n    \"documentation\": \"https://ctan.org/pkg/shortmathj\"\n  },\n  \"shorttoc\": {\n    \"command\": \"shorttoc\",\n    \"detail\": \"Table of contents with different depths\",\n    \"documentation\": \"https://ctan.org/pkg/shorttoc\"\n  },\n  \"shortvrb\": {\n    \"command\": \"shortvrb\",\n    \"detail\": \"Abbreviated verbatim commands\",\n    \"documentation\": \"https://ctan.org/pkg/shortvrb\"\n  },\n  \"show2e\": {\n    \"command\": \"show2e\",\n    \"detail\": \"Variants of \\\\show for LaTeX2e\",\n    \"documentation\": \"https://ctan.org/pkg/show2e\"\n  },\n  \"showcharinbox\": {\n    \"command\": \"showcharinbox\",\n    \"detail\": \"Show characters inside a box\",\n    \"documentation\": \"https://ctan.org/pkg/showcharinbox\"\n  },\n  \"showdim\": {\n    \"command\": \"showdim\",\n    \"detail\": \"Variants on printing dimensions\",\n    \"documentation\": \"https://ctan.org/pkg/showdim\"\n  },\n  \"showexpl\": {\n    \"command\": \"showexpl\",\n    \"detail\": \"Typesetting LaTeX source code\",\n    \"documentation\": \"https://ctan.org/pkg/showexpl\"\n  },\n  \"showframe\": {\n    \"command\": \"showframe\",\n    \"detail\": \"Draw a page-layout diagram\",\n    \"documentation\": \"https://ctan.org/pkg/showframe\"\n  },\n  \"showhyphens\": {\n    \"command\": \"showhyphens\",\n    \"detail\": \"Show all possible hyphenations in LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/showhyphens\"\n  },\n  \"showkeys\": {\n    \"command\": \"showkeys\",\n    \"detail\": \"Show label, ref, cite and bib keys\",\n    \"documentation\": \"https://ctan.org/pkg/showkeys\"\n  },\n  \"showlabels\": {\n    \"command\": \"showlabels\",\n    \"detail\": \"Show label commands in the margin\",\n    \"documentation\": \"https://ctan.org/pkg/showlabels\"\n  },\n  \"showtags\": {\n    \"command\": \"showtags\",\n    \"detail\": \"Print the tags of bibliography entries\",\n    \"documentation\": \"https://ctan.org/pkg/showtags\"\n  },\n  \"shuffle\": {\n    \"command\": \"shuffle\",\n    \"detail\": \"A symbol for the shuffle product\",\n    \"documentation\": \"https://ctan.org/pkg/shuffle\"\n  },\n  \"sidecap\": {\n    \"command\": \"sidecap\",\n    \"detail\": \"Typeset captions sideways\",\n    \"documentation\": \"https://ctan.org/pkg/sidecap\"\n  },\n  \"sidenotes\": {\n    \"command\": \"sidenotes\",\n    \"detail\": \"Typeset notes containing rich content, in the margin\",\n    \"documentation\": \"https://ctan.org/pkg/sidenotes\"\n  },\n  \"signchart\": {\n    \"command\": \"signchart\",\n    \"detail\": \"Create beautifully typeset sign charts\",\n    \"documentation\": \"https://ctan.org/pkg/signchart\"\n  },\n  \"silence\": {\n    \"command\": \"silence\",\n    \"detail\": \"Selective filtering of error messages and warnings\",\n    \"documentation\": \"https://ctan.org/pkg/silence\"\n  },\n  \"simplebnf\": {\n    \"command\": \"simplebnf\",\n    \"detail\": \"A simple package to format Backus-Naur form (BNF)\",\n    \"documentation\": \"https://ctan.org/pkg/simplebnf\"\n  },\n  \"simplecd\": {\n    \"command\": \"simplecd\",\n    \"detail\": \"Simple CD, DVD covers for printing\",\n    \"documentation\": \"https://ctan.org/pkg/simplecd\"\n  },\n  \"simpleinvoice\": {\n    \"command\": \"simpleinvoice\",\n    \"detail\": \"Easy typesetting of invoices\",\n    \"documentation\": \"https://ctan.org/pkg/simpleinvoice\"\n  },\n  \"simplekv\": {\n    \"command\": \"simplekv\",\n    \"detail\": \"A simple key/value system for TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/simplekv\"\n  },\n  \"simpleoptics\": {\n    \"command\": \"simpleoptics\",\n    \"detail\": \"Drawing lenses and mirrors for optical diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/simpleoptics\"\n  },\n  \"simpler-wick\": {\n    \"command\": \"simpler-wick\",\n    \"detail\": \"Simpler Wick contractions\",\n    \"documentation\": \"https://ctan.org/pkg/simpler-wick\"\n  },\n  \"simplewick\": {\n    \"command\": \"simplewick\",\n    \"detail\": \"Simple Wick contractions\",\n    \"documentation\": \"https://ctan.org/pkg/simplewick\"\n  },\n  \"simurgh\": {\n    \"command\": \"simurgh\",\n    \"detail\": \"Typeset Parsi in LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/simurgh\"\n  },\n  \"sistyle\": {\n    \"command\": \"sistyle\",\n    \"detail\": \"Package to typeset SI units, numbers and angles\",\n    \"documentation\": \"https://ctan.org/pkg/sistyle\"\n  },\n  \"sitem\": {\n    \"command\": \"sitem\",\n    \"detail\": \"Save the optional argument of \\\\item\",\n    \"documentation\": \"https://ctan.org/pkg/sitem\"\n  },\n  \"siunits\": {\n    \"command\": \"SIunits\",\n    \"detail\": \"International System of Units\",\n    \"documentation\": \"https://ctan.org/pkg/siunits\"\n  },\n  \"siunitx\": {\n    \"command\": \"siunitx\",\n    \"detail\": \"A comprehensive (SI) units package\",\n    \"documentation\": \"https://ctan.org/pkg/siunitx\"\n  },\n  \"skak\": {\n    \"command\": \"skak\",\n    \"detail\": \"Fonts and macros for typesetting chess games\",\n    \"documentation\": \"https://ctan.org/pkg/skak\"\n  },\n  \"skb\": {\n    \"command\": \"skb\",\n    \"detail\": \"Tools for a repository of long-living documents\",\n    \"documentation\": \"https://ctan.org/pkg/skb\"\n  },\n  \"skeldoc\": {\n    \"command\": \"skeldoc\",\n    \"detail\": \"Placeholders for unfinished documents\",\n    \"documentation\": \"https://ctan.org/pkg/skeldoc\"\n  },\n  \"skeycommand\": {\n    \"command\": \"skeycommand\",\n    \"detail\": \"Create commands using parameters and keyval in parallel\",\n    \"documentation\": \"https://ctan.org/pkg/skeycommand\"\n  },\n  \"skeyval\": {\n    \"command\": \"skeyval\",\n    \"detail\": \"Key-value parsing combining features of xkeyval and pgfkeys\",\n    \"documentation\": \"https://ctan.org/pkg/skeyval\"\n  },\n  \"skills\": {\n    \"command\": \"skills\",\n    \"detail\": \"Create proficiency tests\",\n    \"documentation\": \"https://ctan.org/pkg/skills\"\n  },\n  \"skmath\": {\n    \"command\": \"skmath\",\n    \"detail\": \"Extensions to the maths command repertoir\",\n    \"documentation\": \"https://ctan.org/pkg/skmath\"\n  },\n  \"skull\": {\n    \"command\": \"skull\",\n    \"detail\": \"A font to draw a skull\",\n    \"documentation\": \"https://ctan.org/pkg/skull\"\n  },\n  \"slantsc\": {\n    \"command\": \"slantsc\",\n    \"detail\": \"Access different-shaped small-caps fonts\",\n    \"documentation\": \"https://ctan.org/pkg/slantsc\"\n  },\n  \"slashed\": {\n    \"command\": \"slashed\",\n    \"detail\": \"Put a slash through characters\",\n    \"documentation\": \"https://ctan.org/pkg/slashed\"\n  },\n  \"slemph\": {\n    \"command\": \"slemph\",\n    \"detail\": \"Slanted emphasis in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/slemph\"\n  },\n  \"slides\": {\n    \"command\": \"slides\",\n    \"detail\": \"Class for creating slides\",\n    \"documentation\": \"https://ctan.org/pkg/slides\"\n  },\n  \"sltables\": {\n    \"command\": \"sltables\",\n    \"detail\": \"Simplified tables for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/sltables\"\n  },\n  \"smalltableof\": {\n    \"command\": \"smalltableof\",\n    \"detail\": \"Create listoffigures etc. in a single chapter\",\n    \"documentation\": \"https://ctan.org/pkg/smalltableof\"\n  },\n  \"smartdiagram\": {\n    \"command\": \"smartdiagram\",\n    \"detail\": \"Generate diagrams from lists\",\n    \"documentation\": \"https://ctan.org/pkg/smartdiagram\"\n  },\n  \"smartmn\": {\n    \"command\": \"smartmn\",\n    \"detail\": \"Make hyphens print as minus signs where appropriate\",\n    \"documentation\": \"https://ctan.org/pkg/smartmn\"\n  },\n  \"smartref\": {\n    \"command\": \"smartref\",\n    \"detail\": \"Extend LaTeX's \\\\ref capability\",\n    \"documentation\": \"https://ctan.org/pkg/smartref\"\n  },\n  \"smartunits\": {\n    \"command\": \"smartunits\",\n    \"detail\": \"Converting between common metric and Imperial units\",\n    \"documentation\": \"https://ctan.org/pkg/smartunits\"\n  },\n  \"snapshot\": {\n    \"command\": \"snapshot\",\n    \"detail\": \"List the external dependencies of a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/snapshot\"\n  },\n  \"snotez\": {\n    \"command\": \"snotez\",\n    \"detail\": \"Typeset notes, in the margin\",\n    \"documentation\": \"https://ctan.org/pkg/snotez\"\n  },\n  \"sobolev\": {\n    \"command\": \"sobolev\",\n    \"detail\": \"Commands for dealing with Sobolev spaces (and relatives)\",\n    \"documentation\": \"https://ctan.org/pkg/sobolev\"\n  },\n  \"somedefs\": {\n    \"command\": \"somedefs\",\n    \"detail\": \"Save loading all of another package\",\n    \"documentation\": \"https://ctan.org/pkg/somedefs\"\n  },\n  \"songbook\": {\n    \"command\": \"songbook\",\n    \"detail\": \"Package for typesetting song lyrics and chord books\",\n    \"documentation\": \"https://ctan.org/pkg/songbook\"\n  },\n  \"songs\": {\n    \"command\": \"songs\",\n    \"detail\": \"Produce song books for church or fellowship\",\n    \"documentation\": \"https://ctan.org/pkg/songs\"\n  },\n  \"soul\": {\n    \"command\": \"soul\",\n    \"detail\": \"Hyphenation for letterspacing, underlining, and more\",\n    \"documentation\": \"https://ctan.org/pkg/soul\"\n  },\n  \"soulpos\": {\n    \"command\": \"soulpos\",\n    \"detail\": \"A fancy means of underlining\",\n    \"documentation\": \"https://ctan.org/pkg/soulpos\"\n  },\n  \"soulutf8\": {\n    \"command\": \"soulutf8\",\n    \"detail\": \"Permit use of UTF-8 characters in soul\",\n    \"documentation\": \"https://ctan.org/pkg/soulutf8\"\n  },\n  \"soup\": {\n    \"command\": \"soup\",\n    \"detail\": \"Generate alphabet soup puzzles\",\n    \"documentation\": \"https://ctan.org/pkg/soup\"\n  },\n  \"sourcecodepro\": {\n    \"command\": \"sourcecodepro\",\n    \"detail\": \"Use SourceCodePro with TeX(-alike) systems\",\n    \"documentation\": \"https://ctan.org/pkg/sourcecodepro\"\n  },\n  \"sourcesanspro\": {\n    \"command\": \"sourcesanspro\",\n    \"detail\": \"Use SourceSansPro with TeX(-alike) systems\",\n    \"documentation\": \"https://ctan.org/pkg/sourcesanspro\"\n  },\n  \"sourceserifpro\": {\n    \"command\": \"sourceserifpro\",\n    \"detail\": \"Use SourceSerifPro with TeX(-alike) systems\",\n    \"documentation\": \"https://ctan.org/pkg/sourceserifpro\"\n  },\n  \"spacingtricks\": {\n    \"command\": \"spacingtricks\",\n    \"detail\": \" Dealing with some spacing issues\",\n    \"documentation\": \"https://ctan.org/pkg/spacingtricks\"\n  },\n  \"spalign\": {\n    \"command\": \"spalign\",\n    \"detail\": \"Typeset matrices and arrays with spaces and semicolons as delimiters\",\n    \"documentation\": \"https://ctan.org/pkg/spalign\"\n  },\n  \"spark-otf\": {\n    \"command\": \"spark-otf\",\n    \"detail\": \"Support OpenType Spark fonts\",\n    \"documentation\": \"https://ctan.org/pkg/spark-otf\"\n  },\n  \"sparklines\": {\n    \"command\": \"sparklines\",\n    \"detail\": \"Drawing sparklines: intense, simple, wordlike graphics\",\n    \"documentation\": \"https://ctan.org/pkg/sparklines\"\n  },\n  \"spath3\": {\n    \"command\": \"spath3\",\n    \"detail\": \"Manipulate “soft paths” in PGF\",\n    \"documentation\": \"https://ctan.org/pkg/spath3\"\n  },\n  \"spbmark\": {\n    \"command\": \"spbmark\",\n    \"detail\": \"Customize superscripts and subscripts\",\n    \"documentation\": \"https://ctan.org/pkg/spbmark\"\n  },\n  \"spectral\": {\n    \"command\": \"spectral\",\n    \"detail\": \"Spectral fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/spectral\"\n  },\n  \"spectralsequences\": {\n    \"command\": \"spectralsequences\",\n    \"detail\": \"Print spectral sequence diagrams using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/spectralsequences\"\n  },\n  \"spelling\": {\n    \"command\": \"spelling\",\n    \"detail\": \"Support for spell-checking of LuaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/spelling\"\n  },\n  \"sphack\": {\n    \"command\": \"sphack\",\n    \"detail\": \"Patch LaTeX kernel spacing macros\",\n    \"documentation\": \"https://ctan.org/pkg/sphack\"\n  },\n  \"splitbib\": {\n    \"command\": \"splitbib\",\n    \"detail\": \"Split and reorder your bibliography\",\n    \"documentation\": \"https://ctan.org/pkg/splitbib\"\n  },\n  \"spot\": {\n    \"command\": \"spot\",\n    \"detail\": \"Spotlight highlighting for Beamer\",\n    \"documentation\": \"https://ctan.org/pkg/spot\"\n  },\n  \"spotcolor\": {\n    \"command\": \"spotcolor\",\n    \"detail\": \"Spot colours for pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/spotcolor\"\n  },\n  \"spreadtab\": {\n    \"command\": \"spreadtab\",\n    \"detail\": \"Spreadsheet features for LaTeX tabular environments\",\n    \"documentation\": \"https://ctan.org/pkg/spreadtab\"\n  },\n  \"spverbatim\": {\n    \"command\": \"spverbatim\",\n    \"detail\": \"Allow line breaks within \\\\verb and verbatim output\",\n    \"documentation\": \"https://ctan.org/pkg/spverbatim\"\n  },\n  \"sqrcaps\": {\n    \"command\": \"sqrcaps\",\n    \"detail\": \"Square Capitals manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/sqrcaps\"\n  },\n  \"srcltx\": {\n    \"command\": \"srcltx\",\n    \"detail\": \"Jump between DVI and TeX files\",\n    \"documentation\": \"https://ctan.org/pkg/srcltx\"\n  },\n  \"srdp-mathematik\": {\n    \"command\": \"srdp-mathematik\",\n    \"detail\": \"Typeset Austrian SRDP in mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/srdp-mathematik\"\n  },\n  \"sseq\": {\n    \"command\": \"sseq\",\n    \"detail\": \"Typesetting spectral sequence charts\",\n    \"documentation\": \"https://ctan.org/pkg/sseq\"\n  },\n  \"stabular\": {\n    \"command\": \"stabular\",\n    \"detail\": \"Multipage tabular\",\n    \"documentation\": \"https://ctan.org/pkg/stabular\"\n  },\n  \"stack\": {\n    \"command\": \"stack\",\n    \"detail\": \"Tools to define and use stacks\",\n    \"documentation\": \"https://ctan.org/pkg/stack\"\n  },\n  \"stackengine\": {\n    \"command\": \"stackengine\",\n    \"detail\": \"Highly customised stacking of objects, insets, baseline changes, etc\",\n    \"documentation\": \"https://ctan.org/pkg/stackengine\"\n  },\n  \"stackrel\": {\n    \"command\": \"stackrel\",\n    \"detail\": \"Enhancement to the \\\\stackrel command\",\n    \"documentation\": \"https://ctan.org/pkg/stackrel\"\n  },\n  \"stampinclude\": {\n    \"command\": \"stampinclude\",\n    \"detail\": \"Inclusion based on .aux file date stamps\",\n    \"documentation\": \"https://ctan.org/pkg/stampinclude\"\n  },\n  \"standalone\": {\n    \"command\": \"standalone\",\n    \"detail\": \"Compile TeX pictures stand-alone or as part of a document\",\n    \"documentation\": \"https://ctan.org/pkg/standalone\"\n  },\n  \"stanli\": {\n    \"command\": \"stanli\",\n    \"detail\": \"TikZ Library for Structural Analysis\",\n    \"documentation\": \"https://ctan.org/pkg/stanli\"\n  },\n  \"starfont\": {\n    \"command\": \"starfont\",\n    \"detail\": \"The StarFont Sans astrological font\",\n    \"documentation\": \"https://ctan.org/pkg/starfont\"\n  },\n  \"statex\": {\n    \"command\": \"statex\",\n    \"detail\": \"Statistics style\",\n    \"documentation\": \"https://ctan.org/pkg/statex\"\n  },\n  \"statex2\": {\n    \"command\": \"statex2\",\n    \"detail\": \"Statistics style\",\n    \"documentation\": \"https://ctan.org/pkg/statex2\"\n  },\n  \"statistics\": {\n    \"command\": \"statistics\",\n    \"detail\": \" Compute and typeset statistics tables and graphics\",\n    \"documentation\": \"https://ctan.org/pkg/statistics\"\n  },\n  \"statistik\": {\n    \"command\": \"statistik\",\n    \"detail\": \"Store statistics of a document\",\n    \"documentation\": \"https://ctan.org/pkg/statistik\"\n  },\n  \"statmath\": {\n    \"command\": \"statmath\",\n    \"detail\": \"A LaTeX package for simple use of statistical notation\",\n    \"documentation\": \"https://ctan.org/pkg/statmath\"\n  },\n  \"staves\": {\n    \"command\": \"staves\",\n    \"detail\": \"Typeset Icelandic staves and runic letters\",\n    \"documentation\": \"https://ctan.org/pkg/staves\"\n  },\n  \"stdclsdv\": {\n    \"command\": \"stdclsdv\",\n    \"detail\": \"Provide sectioning information for package writers\",\n    \"documentation\": \"https://ctan.org/pkg/stdclsdv\"\n  },\n  \"stdpage\": {\n    \"command\": \"stdpage\",\n    \"detail\": \"Standard pages with n lines of at most m characters each\",\n    \"documentation\": \"https://ctan.org/pkg/stdpage\"\n  },\n  \"stealcaps\": {\n    \"command\": \"stealcaps\",\n    \"detail\": \"“Steal” small capitals\",\n    \"documentation\": \"https://ctan.org/pkg/stealcaps\"\n  },\n  \"steinmetz\": {\n    \"command\": \"steinmetz\",\n    \"detail\": \"Print Steinmetz notation\",\n    \"documentation\": \"https://ctan.org/pkg/steinmetz\"\n  },\n  \"step\": {\n    \"command\": \"step\",\n    \"detail\": \"A free Times-like font\",\n    \"documentation\": \"https://ctan.org/pkg/step\"\n  },\n  \"stex\": {\n    \"command\": \"stex\",\n    \"detail\": \"An Infrastructure for Semantic Preloading of LaTeX Documents\",\n    \"documentation\": \"https://ctan.org/pkg/stex\"\n  },\n  \"stfloats\": {\n    \"command\": \"stfloats\",\n    \"detail\": \"Commands to control the presentation of floats\",\n    \"documentation\": \"https://ctan.org/pkg/stfloats\"\n  },\n  \"stix\": {\n    \"command\": \"stix\",\n    \"detail\": \"OpenType Unicode maths fonts\",\n    \"documentation\": \"https://ctan.org/pkg/stix\"\n  },\n  \"stix2\": {\n    \"command\": \"stix2\",\n    \"detail\": \"Type1 versions of the STIX Two OpenType fonts\",\n    \"documentation\": \"https://ctan.org/pkg/stix2-type1\"\n  },\n  \"stmaryrd\": {\n    \"command\": \"stmaryrd\",\n    \"detail\": \"St Mary Road symbols for theoretical computer science\",\n    \"documentation\": \"https://ctan.org/pkg/stmaryrd\"\n  },\n  \"storebox\": {\n    \"command\": \"storebox\",\n    \"detail\": \"Storing information for reuse\",\n    \"documentation\": \"https://ctan.org/pkg/storebox\"\n  },\n  \"storecmd\": {\n    \"command\": \"storecmd\",\n    \"detail\": \"Store the name of a defined command in a container\",\n    \"documentation\": \"https://ctan.org/pkg/storecmd\"\n  },\n  \"strands\": {\n    \"command\": \"strands\",\n    \"detail\": \"Draw objects constructed from strands\",\n    \"documentation\": \"https://ctan.org/pkg/strands\"\n  },\n  \"stricttex\": {\n    \"command\": \"stricttex\",\n    \"detail\": \"Strictly balanced brackets and numbers in command names\",\n    \"documentation\": \"https://ctan.org/pkg/stricttex\"\n  },\n  \"stringenc\": {\n    \"command\": \"stringenc\",\n    \"detail\": \"Converting a string between different encodings\",\n    \"documentation\": \"https://ctan.org/pkg/stringenc\"\n  },\n  \"stringstrings\": {\n    \"command\": \"stringstrings\",\n    \"detail\": \"String manipulation for cosmetic and programming application\",\n    \"documentation\": \"https://ctan.org/pkg/stringstrings\"\n  },\n  \"structmech\": {\n    \"command\": \"structmech\",\n    \"detail\": \"A TikZ command set for structural mechanics drawings\",\n    \"documentation\": \"https://ctan.org/pkg/structmech\"\n  },\n  \"struktex\": {\n    \"command\": \"struktex\",\n    \"detail\": \"Draw Nassi-Shneiderman charts\",\n    \"documentation\": \"https://ctan.org/pkg/struktex\"\n  },\n  \"stubs\": {\n    \"command\": \"stubs\",\n    \"detail\": \"Create tear-off stubs at the bottom of a page\",\n    \"documentation\": \"https://ctan.org/pkg/stubs\"\n  },\n  \"studenthandouts\": {\n    \"command\": \"studenthandouts\",\n    \"detail\": \"Management and styling of student handout projects\",\n    \"documentation\": \"https://ctan.org/pkg/studenthandouts\"\n  },\n  \"subcaption\": {\n    \"command\": \"subcaption\",\n    \"detail\": \"Support for sub-captions\",\n    \"documentation\": \"https://ctan.org/pkg/subcaption\"\n  },\n  \"subdepth\": {\n    \"command\": \"subdepth\",\n    \"detail\": \"Unify maths subscript height\",\n    \"documentation\": \"https://ctan.org/pkg/subdepth\"\n  },\n  \"subdocs\": {\n    \"command\": \"subdocs\",\n    \"detail\": \"Multifile documents\",\n    \"documentation\": \"https://ctan.org/pkg/subdocs\"\n  },\n  \"subeqn\": {\n    \"command\": \"subeqn\",\n    \"detail\": \"Package for subequation numbering\",\n    \"documentation\": \"https://ctan.org/pkg/subeqn\"\n  },\n  \"subeqnarray\": {\n    \"command\": \"subeqnarray\",\n    \"detail\": \"Equation array with sub numbering\",\n    \"documentation\": \"https://ctan.org/pkg/subeqnarray\"\n  },\n  \"subfig\": {\n    \"command\": \"subfig\",\n    \"detail\": \"Figures broken into subfigures\",\n    \"documentation\": \"https://ctan.org/pkg/subfig\"\n  },\n  \"subfigmat\": {\n    \"command\": \"subfigmat\",\n    \"detail\": \"Automates layout when using the subfigure package\",\n    \"documentation\": \"https://ctan.org/pkg/subfigmat\"\n  },\n  \"subfigure\": {\n    \"command\": \"subfigure\",\n    \"detail\": \"Deprecated: Figures divided into subfigures\",\n    \"documentation\": \"https://ctan.org/pkg/subfigure\"\n  },\n  \"subfiles\": {\n    \"command\": \"subfiles\",\n    \"detail\": \"Individual typesetting of subfiles of a “main” document\",\n    \"documentation\": \"https://ctan.org/pkg/subfiles\"\n  },\n  \"subfloat\": {\n    \"command\": \"subfloat\",\n    \"detail\": \"Sub-numbering for figures and tables\",\n    \"documentation\": \"https://ctan.org/pkg/subfloat\"\n  },\n  \"sublabel\": {\n    \"command\": \"sublabel\",\n    \"detail\": \"Sub-number counters\",\n    \"documentation\": \"https://ctan.org/pkg/sublabel\"\n  },\n  \"subscript\": {\n    \"command\": \"subscript\",\n    \"detail\": \"Provides the \\\\textsubscript command\",\n    \"documentation\": \"https://ctan.org/pkg/subscript\"\n  },\n  \"substances\": {\n    \"command\": \"substances\",\n    \"detail\": \"A database of chemicals\",\n    \"documentation\": \"https://ctan.org/pkg/substances\"\n  },\n  \"substitutefont\": {\n    \"command\": \"substitutefont\",\n    \"detail\": \"Easy font substitution\",\n    \"documentation\": \"https://ctan.org/pkg/substitutefont\"\n  },\n  \"substr\": {\n    \"command\": \"substr\",\n    \"detail\": \"Deal with substrings in strings\",\n    \"documentation\": \"https://ctan.org/pkg/substr\"\n  },\n  \"subsupscripts\": {\n    \"command\": \"subsupscripts\",\n    \"detail\": \"A range of sub- and superscript commands\",\n    \"documentation\": \"https://ctan.org/pkg/subsupscripts\"\n  },\n  \"subtext\": {\n    \"command\": \"subtext\",\n    \"detail\": \"Easy text-style subscripts in math mode\",\n    \"documentation\": \"https://ctan.org/pkg/subtext\"\n  },\n  \"sudoku\": {\n    \"command\": \"sudoku\",\n    \"detail\": \"Create sudoku grids\",\n    \"documentation\": \"https://ctan.org/pkg/sudoku\"\n  },\n  \"suffix\": {\n    \"command\": \"suffix\",\n    \"detail\": \"Define commands with suffixes\",\n    \"documentation\": \"https://ctan.org/pkg/suffix\"\n  },\n  \"superiors\": {\n    \"command\": \"superiors\",\n    \"detail\": \"Attach superior figures to a font family\",\n    \"documentation\": \"https://ctan.org/pkg/superiors\"\n  },\n  \"supertabular\": {\n    \"command\": \"supertabular\",\n    \"detail\": \"A multi-page tables package\",\n    \"documentation\": \"https://ctan.org/pkg/supertabular\"\n  },\n  \"suppose\": {\n    \"command\": \"suppose\",\n    \"detail\": \"Abbreviate the word “Suppose”\",\n    \"documentation\": \"https://ctan.org/pkg/suppose\"\n  },\n  \"susy\": {\n    \"command\": \"susy\",\n    \"detail\": \"Macros for SuperSymmetry-related work\",\n    \"documentation\": \"https://ctan.org/pkg/susy\"\n  },\n  \"sverb\": {\n    \"command\": \"sverb\",\n    \"detail\": \"A set of verbatim text manipulations\",\n    \"documentation\": \"https://ctan.org/pkg/sverb\"\n  },\n  \"svg\": {\n    \"command\": \"svg\",\n    \"detail\": \"Include and extract SVG pictures in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/svg\"\n  },\n  \"svgcolor\": {\n    \"command\": \"svgcolor\",\n    \"detail\": \"Define SVG named colours\",\n    \"documentation\": \"https://ctan.org/pkg/svgcolor\"\n  },\n  \"svn\": {\n    \"command\": \"svn\",\n    \"detail\": \"Typeset Subversion keywords\",\n    \"documentation\": \"https://ctan.org/pkg/svn\"\n  },\n  \"svn-multi\": {\n    \"command\": \"svn-multi\",\n    \"detail\": \"Subversion keywords in multi-file LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/svn-multi\"\n  },\n  \"svn-prov\": {\n    \"command\": \"svn-prov\",\n    \"detail\": \"Subversion variants of \\\\Provides... macros\",\n    \"documentation\": \"https://ctan.org/pkg/svn-prov\"\n  },\n  \"svninfo\": {\n    \"command\": \"svninfo\",\n    \"detail\": \"Typeset Subversion keywords\",\n    \"documentation\": \"https://ctan.org/pkg/svninfo\"\n  },\n  \"svrsymbols\": {\n    \"command\": \"svrsymbols\",\n    \"detail\": \"A font with symbols for use in physics texts\",\n    \"documentation\": \"https://ctan.org/pkg/svrsymbols\"\n  },\n  \"swfigure\": {\n    \"command\": \"swfigure\",\n    \"detail\": \"Insert large images that do not fit into a single page\",\n    \"documentation\": \"https://ctan.org/pkg/swfigure\"\n  },\n  \"swimgraf\": {\n    \"command\": \"swimgraf\",\n    \"detail\": \"Graphical/textual representations of swimming performances\",\n    \"documentation\": \"https://ctan.org/pkg/swimgraf\"\n  },\n  \"swrule\": {\n    \"command\": \"swrule\",\n    \"detail\": \"Lines thicker in the middle than at the ends\",\n    \"documentation\": \"https://ctan.org/pkg/swrule\"\n  },\n  \"syllogism\": {\n    \"command\": \"syllogism\",\n    \"detail\": \"Typeset syllogisms in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/syllogism\"\n  },\n  \"sympytex\": {\n    \"command\": \"sympytex\",\n    \"detail\": \"Include symbolic computation (using sympy) in documents\",\n    \"documentation\": \"https://ctan.org/pkg/sympytex\"\n  },\n  \"synproof\": {\n    \"command\": \"synproof\",\n    \"detail\": \"Easy drawing of syntactic proofs\",\n    \"documentation\": \"https://ctan.org/pkg/synproof\"\n  },\n  \"syntaxdi\": {\n    \"command\": \"syntaxdi\",\n    \"detail\": \"Create “railroad” syntax diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/syntaxdi\"\n  },\n  \"syntonly\": {\n    \"command\": \"syntonly\",\n    \"detail\": \"Run a document through LaTeX for syntax checking\",\n    \"documentation\": \"https://ctan.org/pkg/syntonly\"\n  },\n  \"syntrace\": {\n    \"command\": \"syntrace\",\n    \"detail\": \"Labels for tracing in a syntax tree\",\n    \"documentation\": \"https://ctan.org/pkg/syntrace\"\n  },\n  \"synttree\": {\n    \"command\": \"synttree\",\n    \"detail\": \"Typeset syntactic trees\",\n    \"documentation\": \"https://ctan.org/pkg/synttree\"\n  },\n  \"syriac\": {\n    \"command\": \"syriac\",\n    \"detail\": \"A font for Syriac written in Estrangelo\",\n    \"documentation\": \"https://ctan.org/pkg/syriac\"\n  },\n  \"systeme\": {\n    \"command\": \"systeme\",\n    \"detail\": \"Format systems of equations\",\n    \"documentation\": \"https://ctan.org/pkg/systeme\"\n  },\n  \"t-angles\": {\n    \"command\": \"t-angles\",\n    \"detail\": \"Draw tangles, trees, Hopf algebra operations and other pictures\",\n    \"documentation\": \"https://ctan.org/pkg/t-angles\"\n  },\n  \"t1enc\": {\n    \"command\": \"t1enc\",\n    \"detail\": \"Standard package for activating ec fonts\",\n    \"documentation\": \"https://ctan.org/pkg/t1enc\"\n  },\n  \"tabbing\": {\n    \"command\": \"Tabbing\",\n    \"detail\": \"Tabbing with accented letters\",\n    \"documentation\": \"https://ctan.org/pkg/tabbing\"\n  },\n  \"tabfigures\": {\n    \"command\": \"tabfigures\",\n    \"detail\": \"Maintain vertical alignment of figures\",\n    \"documentation\": \"https://ctan.org/pkg/tabfigures\"\n  },\n  \"table-fct\": {\n    \"command\": \"table-fct\",\n    \"detail\": \"Draw a variations table of functions and a convexity table of its graph\",\n    \"documentation\": \"https://ctan.org/pkg/table-fct\"\n  },\n  \"tablefootnote\": {\n    \"command\": \"tablefootnote\",\n    \"detail\": \"Permit footnotes in tables\",\n    \"documentation\": \"https://ctan.org/pkg/tablefootnote\"\n  },\n  \"tableof\": {\n    \"command\": \"tableof\",\n    \"detail\": \"Tagging tables of contents\",\n    \"documentation\": \"https://ctan.org/pkg/tableof\"\n  },\n  \"tablestyles\": {\n    \"command\": \"tablestyles\",\n    \"detail\": \"Styles for tables with new commands\",\n    \"documentation\": \"https://ctan.org/pkg/tablestyles\"\n  },\n  \"tablists\": {\n    \"command\": \"tablists\",\n    \"detail\": \"Tabulated lists of short items\",\n    \"documentation\": \"https://ctan.org/pkg/tablists\"\n  },\n  \"tablor\": {\n    \"command\": \"tablor\",\n    \"detail\": \"Create tables of signs and of variations\",\n    \"documentation\": \"https://ctan.org/pkg/tablor\"\n  },\n  \"tabls\": {\n    \"command\": \"tabls\",\n    \"detail\": \"Better vertical spacing in tables and arrays\",\n    \"documentation\": \"https://ctan.org/pkg/tabls\"\n  },\n  \"tablvar\": {\n    \"command\": \"tablvar\",\n    \"detail\": \"Typesetting pretty tables of signs and variations according to French usage\",\n    \"documentation\": \"https://ctan.org/pkg/tablvar\"\n  },\n  \"tabstackengine\": {\n    \"command\": \"tabstackengine\",\n    \"detail\": \"“Tabbing” front-end to stackengine\",\n    \"documentation\": \"https://ctan.org/pkg/tabstackengine\"\n  },\n  \"tabu\": {\n    \"command\": \"tabu\",\n    \"detail\": \"Flexible LaTeX tabulars\",\n    \"documentation\": \"https://ctan.org/pkg/tabu\"\n  },\n  \"tabularborder\": {\n    \"command\": \"tabularborder\",\n    \"detail\": \"Remove excess space at left and right of tabular\",\n    \"documentation\": \"https://ctan.org/pkg/tabularborder\"\n  },\n  \"tabularcalc\": {\n    \"command\": \"tabularcalc\",\n    \"detail\": \"Calculate formulas in a tabular environment\",\n    \"documentation\": \"https://ctan.org/pkg/tabularcalc\"\n  },\n  \"tabularew\": {\n    \"command\": \"tabularew\",\n    \"detail\": \"A variation on the tabular environment\",\n    \"documentation\": \"https://ctan.org/pkg/tabularew\"\n  },\n  \"tabularht\": {\n    \"command\": \"tabularht\",\n    \"detail\": \"Tabular environments with height specified\",\n    \"documentation\": \"https://ctan.org/pkg/tabularht\"\n  },\n  \"tabularkv\": {\n    \"command\": \"tabularkv\",\n    \"detail\": \"Tabular environments with key-value interface\",\n    \"documentation\": \"https://ctan.org/pkg/tabularkv\"\n  },\n  \"tabularray\": {\n    \"command\": \"tabularray\",\n    \"detail\": \"Typeset tabulars and arrays with LaTeX3\",\n    \"documentation\": \"https://ctan.org/pkg/tabularray\"\n  },\n  \"tabularx\": {\n    \"command\": \"tabularx\",\n    \"detail\": \"Tabulars with adjustable-width columns\",\n    \"documentation\": \"https://ctan.org/pkg/tabularx\"\n  },\n  \"tabulary\": {\n    \"command\": \"tabulary\",\n    \"detail\": \"Tabular with variable width columns balanced\",\n    \"documentation\": \"https://ctan.org/pkg/tabulary\"\n  },\n  \"tabvar\": {\n    \"command\": \"tabvar\",\n    \"detail\": \"Typesetting tables showing variations of functions\",\n    \"documentation\": \"https://ctan.org/pkg/tabvar\"\n  },\n  \"tagging\": {\n    \"command\": \"tagging\",\n    \"detail\": \"Document configuration with tags\",\n    \"documentation\": \"https://ctan.org/pkg/tagging\"\n  },\n  \"tagpair\": {\n    \"command\": \"tagpair\",\n    \"detail\": \"Word-by-word glosses, translations, and bibliographic attributions\",\n    \"documentation\": \"https://ctan.org/pkg/tagpair\"\n  },\n  \"tagpdf\": {\n    \"command\": \"tagpdf\",\n    \"detail\": \"Tools for experimenting with tagging using pdfLaTeX and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/tagpdf\"\n  },\n  \"tasks\": {\n    \"command\": \"tasks\",\n    \"detail\": \"Horizontally columned lists\",\n    \"documentation\": \"https://ctan.org/pkg/tasks\"\n  },\n  \"tccompat\": {\n    \"command\": \"tccompat\",\n    \"detail\": \"Provide compatibility names for textcomp.sty\",\n    \"documentation\": \"https://ctan.org/pkg/tccompat\"\n  },\n  \"tclldoc\": {\n    \"command\": \"tclldoc\",\n    \"detail\": \"Doc/docstrip for tcl\",\n    \"documentation\": \"https://ctan.org/pkg/tclldoc\"\n  },\n  \"tcolorbox\": {\n    \"command\": \"tcolorbox\",\n    \"detail\": \"Coloured boxes, for LaTeX examples and theorems, etc\",\n    \"documentation\": \"https://ctan.org/pkg/tcolorbox\"\n  },\n  \"tdclock\": {\n    \"command\": \"tdclock\",\n    \"detail\": \"A ticking digital clock package for PDF output\",\n    \"documentation\": \"https://ctan.org/pkg/tdclock\"\n  },\n  \"tdsfrmath\": {\n    \"command\": \"tdsfrmath\",\n    \"detail\": \"Macros for French teachers of mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/tdsfrmath\"\n  },\n  \"technics\": {\n    \"command\": \"technics\",\n    \"detail\": \"A package to format technical documents\",\n    \"documentation\": \"https://ctan.org/pkg/technics\"\n  },\n  \"ted\": {\n    \"command\": \"ted\",\n    \"detail\": \"A (primitive) token list editor\",\n    \"documentation\": \"https://ctan.org/pkg/ted\"\n  },\n  \"telprint\": {\n    \"command\": \"telprint\",\n    \"detail\": \"Format German phone numbers\",\n    \"documentation\": \"https://ctan.org/pkg/telprint\"\n  },\n  \"templatetools\": {\n    \"command\": \"templatetools\",\n    \"detail\": \"Commands useful in LaTeX templates\",\n    \"documentation\": \"https://ctan.org/pkg/templatetools\"\n  },\n  \"tempora\": {\n    \"command\": \"tempora\",\n    \"detail\": \"Greek and Cyrillic to accompany Times\",\n    \"documentation\": \"https://ctan.org/pkg/tempora\"\n  },\n  \"tengwarscript\": {\n    \"command\": \"tengwarscript\",\n    \"detail\": \"LaTeX support for using Tengwar fonts\",\n    \"documentation\": \"https://ctan.org/pkg/tengwarscript\"\n  },\n  \"tensind\": {\n    \"command\": \"tensind\",\n    \"detail\": \"Typeset tensors\",\n    \"documentation\": \"https://ctan.org/pkg/tensind\"\n  },\n  \"tensor\": {\n    \"command\": \"tensor\",\n    \"detail\": \"Typeset tensors\",\n    \"documentation\": \"https://ctan.org/pkg/tensor\"\n  },\n  \"termcal\": {\n    \"command\": \"termcal\",\n    \"detail\": \"Print a class calendar\",\n    \"documentation\": \"https://ctan.org/pkg/termcal\"\n  },\n  \"termcal-de\": {\n    \"command\": \"termcal-de\",\n    \"detail\": \"German localization for termcal\",\n    \"documentation\": \"https://ctan.org/pkg/termcal-de\"\n  },\n  \"termlist\": {\n    \"command\": \"termlist\",\n    \"detail\": \"Label any kind of term with a continuous counter\",\n    \"documentation\": \"https://ctan.org/pkg/termlist\"\n  },\n  \"testhyphens\": {\n    \"command\": \"testhyphens\",\n    \"detail\": \"Testing hyphenation patterns \",\n    \"documentation\": \"https://ctan.org/pkg/testhyphens\"\n  },\n  \"testidx\": {\n    \"command\": \"testidx\",\n    \"detail\": \"Dummy text for testing index styles and indexing applications\",\n    \"documentation\": \"https://ctan.org/pkg/testidx\"\n  },\n  \"tetragonos\": {\n    \"command\": \"tetragonos\",\n    \"detail\": \"Four-Corner codes of Chinese characters\",\n    \"documentation\": \"https://ctan.org/pkg/tetragonos\"\n  },\n  \"teubner\": {\n    \"command\": \"teubner\",\n    \"detail\": \"Philological typesetting of classical Greek\",\n    \"documentation\": \"https://ctan.org/pkg/teubner\"\n  },\n  \"tex-label\": {\n    \"command\": \"tex-label\",\n    \"detail\": \"Place a classification on each page of a document\",\n    \"documentation\": \"https://ctan.org/pkg/tex-label\"\n  },\n  \"tex-locale\": {\n    \"command\": \"tex-locale\",\n    \"detail\": \"Localisation support for TeX and LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/tex-locale\"\n  },\n  \"tex4ebook\": {\n    \"command\": \"tex4ebook\",\n    \"detail\": \"Converter from LaTeX to ebook formats\",\n    \"documentation\": \"https://ctan.org/pkg/tex4ebook\"\n  },\n  \"tex4ht\": {\n    \"command\": \"tex4ht\",\n    \"detail\": \"Convert (La)TeX to HTML/XML\",\n    \"documentation\": \"https://ctan.org/pkg/tex4ht\"\n  },\n  \"texdate\": {\n    \"command\": \"texdate\",\n    \"detail\": \"Date printing, formatting, and manipulation in TeX\",\n    \"documentation\": \"https://ctan.org/pkg/texdate\"\n  },\n  \"texdimens\": {\n    \"command\": \"texdimens\",\n    \"detail\": \"Conversion of TeX dimensions to decimals\",\n    \"documentation\": \"https://ctan.org/pkg/texdimens\"\n  },\n  \"texdraw\": {\n    \"command\": \"texdraw\",\n    \"detail\": \"Graphical macros, using embedded PostScript\",\n    \"documentation\": \"https://ctan.org/pkg/texdraw\"\n  },\n  \"texilikechaps\": {\n    \"command\": \"texilikechaps\",\n    \"detail\": \"Format chapters with a texi-like format\",\n    \"documentation\": \"https://ctan.org/pkg/texilikechaps\"\n  },\n  \"texilikecover\": {\n    \"command\": \"texilikecover\",\n    \"detail\": \"A cover-page package, like TeXinfo\",\n    \"documentation\": \"https://ctan.org/pkg/texilikecover\"\n  },\n  \"texlogos\": {\n    \"command\": \"texlogos\",\n    \"detail\": \"Ready-to-use LaTeX logos\",\n    \"documentation\": \"https://ctan.org/pkg/texlogos\"\n  },\n  \"texmate\": {\n    \"command\": \"texmate\",\n    \"detail\": \"Comprehensive chess annotation in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/texmate\"\n  },\n  \"texments\": {\n    \"command\": \"texments\",\n    \"detail\": \"Using the Pygments highlighter in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/texments\"\n  },\n  \"texnegar\": {\n    \"command\": \"texnegar\",\n    \"detail\": \"Kashida justification in XeLaTeX and LuaLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/texnegar\"\n  },\n  \"texosquery\": {\n    \"command\": \"texosquery\",\n    \"detail\": \"Cross-platform Java application to query OS information\",\n    \"documentation\": \"https://ctan.org/pkg/texosquery\"\n  },\n  \"texpower\": {\n    \"command\": \"texpower\",\n    \"detail\": \"Create dynamic online presentations with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/texpower\"\n  },\n  \"texshade\": {\n    \"command\": \"texshade\",\n    \"detail\": \"Package for setting nucleotide and peptide alignments\",\n    \"documentation\": \"https://ctan.org/pkg/texshade\"\n  },\n  \"texsort\": {\n    \"command\": \"texsort\",\n    \"detail\": \"Sort/compress numerical lists\",\n    \"documentation\": \"https://ctan.org/pkg/texsort\"\n  },\n  \"texsurgery\": {\n    \"command\": \"texsurgery\",\n    \"detail\": \"A LaTeX companion to the “texsurgery” python project\",\n    \"documentation\": \"https://ctan.org/pkg/texsurgery\"\n  },\n  \"textarea\": {\n    \"command\": \"textarea\",\n    \"detail\": \"Control the text area dynamically\",\n    \"documentation\": \"https://ctan.org/pkg/textarea\"\n  },\n  \"textcase\": {\n    \"command\": \"textcase\",\n    \"detail\": \"Case conversion ignoring mathematics, etc\",\n    \"documentation\": \"https://ctan.org/pkg/textcase\"\n  },\n  \"textcomp\": {\n    \"command\": \"textcomp\",\n    \"detail\": \"LaTeX support for the Text Companion fonts\",\n    \"documentation\": \"https://ctan.org/pkg/textcomp\"\n  },\n  \"textfit\": {\n    \"command\": \"textfit\",\n    \"detail\": \"Fit text to a desired size\",\n    \"documentation\": \"https://ctan.org/pkg/textfit\"\n  },\n  \"textglos\": {\n    \"command\": \"textglos\",\n    \"detail\": \"Typeset and index linguistic gloss abbreviations\",\n    \"documentation\": \"https://ctan.org/pkg/textglos\"\n  },\n  \"textgreek\": {\n    \"command\": \"textgreek\",\n    \"detail\": \"Upright greek letters in text\",\n    \"documentation\": \"https://ctan.org/pkg/textgreek\"\n  },\n  \"textmerg\": {\n    \"command\": \"textmerg\",\n    \"detail\": \"Merge text in TeX and LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/textmerg\"\n  },\n  \"textopo\": {\n    \"command\": \"textopo\",\n    \"detail\": \"Annotated membrane protein topology plots\",\n    \"documentation\": \"https://ctan.org/pkg/textopo\"\n  },\n  \"textpos\": {\n    \"command\": \"textpos\",\n    \"detail\": \"Place boxes at arbitrary positions on the LaTeX page\",\n    \"documentation\": \"https://ctan.org/pkg/textpos\"\n  },\n  \"textualicomma\": {\n    \"command\": \"textualicomma\",\n    \"detail\": \"Use the textual comma character as decimal separator in math mode\",\n    \"documentation\": \"https://ctan.org/pkg/textualicomma\"\n  },\n  \"texvc\": {\n    \"command\": \"texvc\",\n    \"detail\": \"Use MediaWiki LaTeX commands\",\n    \"documentation\": \"https://ctan.org/pkg/texvc\"\n  },\n  \"tfrupee\": {\n    \"command\": \"tfrupee\",\n    \"detail\": \"A font offering the new (Indian) Rupee symbol\",\n    \"documentation\": \"https://ctan.org/pkg/tfrupee\"\n  },\n  \"tgothic\": {\n    \"command\": \"tgothic\",\n    \"detail\": \"Gothic Textura Quadrata manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/tgothic\"\n  },\n  \"thaienum\": {\n    \"command\": \"thaienum\",\n    \"detail\": \"Thai labels in enumerate environments\",\n    \"documentation\": \"https://ctan.org/pkg/thaienum\"\n  },\n  \"thaispec\": {\n    \"command\": \"thaispec\",\n    \"detail\": \"Thai Language Typesetting in XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/thaispec\"\n  },\n  \"thalie\": {\n    \"command\": \"thalie\",\n    \"detail\": \"Typeset drama plays\",\n    \"documentation\": \"https://ctan.org/pkg/thalie\"\n  },\n  \"theanodidot\": {\n    \"command\": \"TheanoDidot\",\n    \"detail\": \"TheanoDidot fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/theanodidot\"\n  },\n  \"theanomodern\": {\n    \"command\": \"TheanoModern\",\n    \"detail\": \"Theano Modern fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/theanomodern\"\n  },\n  \"theanooldstyle\": {\n    \"command\": \"TheanoOldStyle\",\n    \"detail\": \"Theano OldStyle fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/theanooldstyle\"\n  },\n  \"theorem\": {\n    \"command\": \"theorem\",\n    \"detail\": \"Manipulate theorem environments\",\n    \"documentation\": \"https://ctan.org/pkg/theorem\"\n  },\n  \"theoremref\": {\n    \"command\": \"theoremref\",\n    \"detail\": \"References with automatic theorem names\",\n    \"documentation\": \"https://ctan.org/pkg/theoremref\"\n  },\n  \"thepdfnumber\": {\n    \"command\": \"thepdfnumber\",\n    \"detail\": \"Print PDF numbers with minimal digits\",\n    \"documentation\": \"https://ctan.org/pkg/thepdfnumber\"\n  },\n  \"thinsp\": {\n    \"command\": \"thinsp\",\n    \"detail\": \"A stretchable \\\\thinspace for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/thinsp\"\n  },\n  \"thmbox\": {\n    \"command\": \"thmbox\",\n    \"detail\": \"Decorate theorem statements\",\n    \"documentation\": \"https://ctan.org/pkg/thmbox\"\n  },\n  \"thmtools\": {\n    \"command\": \"thmtools\",\n    \"detail\": \"Extensions to theorem environments\",\n    \"documentation\": \"https://ctan.org/pkg/thmtools\"\n  },\n  \"threadcol\": {\n    \"command\": \"threadcol\",\n    \"detail\": \"Organize document columns into PDF “article thread”\",\n    \"documentation\": \"https://ctan.org/pkg/threadcol\"\n  },\n  \"threeparttable\": {\n    \"command\": \"threeparttable\",\n    \"detail\": \"Tables with captions and notes all the same width\",\n    \"documentation\": \"https://ctan.org/pkg/threeparttable\"\n  },\n  \"threeparttablex\": {\n    \"command\": \"threeparttablex\",\n    \"detail\": \"Notes in longtables\",\n    \"documentation\": \"https://ctan.org/pkg/threeparttablex\"\n  },\n  \"thrmappendix\": {\n    \"command\": \"thrmappendix\",\n    \"detail\": \"Theorems, lemmas, etc., in appendix\",\n    \"documentation\": \"https://ctan.org/pkg/thrmappendix\"\n  },\n  \"thuaslogos\": {\n    \"command\": \"thuaslogos\",\n    \"detail\": \"Logos for The Hague University of Applied Sciences (THUAS)\",\n    \"documentation\": \"https://ctan.org/pkg/thuaslogos\"\n  },\n  \"thumb\": {\n    \"command\": \"thumb\",\n    \"detail\": \"Thumb marks in documents\",\n    \"documentation\": \"https://ctan.org/pkg/thumb\"\n  },\n  \"thumbpdf\": {\n    \"command\": \"thumbpdf\",\n    \"detail\": \"Thumbnails for pdfTeX and dvips/ps2pdf\",\n    \"documentation\": \"https://ctan.org/pkg/thumbpdf\"\n  },\n  \"thumbs\": {\n    \"command\": \"thumbs\",\n    \"detail\": \"Create thumb indexes\",\n    \"documentation\": \"https://ctan.org/pkg/thumbs\"\n  },\n  \"thumby\": {\n    \"command\": \"thumby\",\n    \"detail\": \"Create thumb indexes for printed books\",\n    \"documentation\": \"https://ctan.org/pkg/thumby\"\n  },\n  \"ticket\": {\n    \"command\": \"ticket\",\n    \"detail\": \"Make labels, visiting-cards, pins with LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ticket\"\n  },\n  \"ticollege\": {\n    \"command\": \"ticollege\",\n    \"detail\": \"Graphical representation of keys on a standard scientific calculator\",\n    \"documentation\": \"https://ctan.org/pkg/ticollege\"\n  },\n  \"tikz-3dplot\": {\n    \"command\": \"tikz-3dplot\",\n    \"detail\": \"Coordinate transformation styles for 3d plotting in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-3dplot\"\n  },\n  \"tikz-among-us\": {\n    \"command\": \"tikz-among-us\",\n    \"detail\": \"Create some AmongUs characters in TikZ environments\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-among-us\"\n  },\n  \"tikz-cd\": {\n    \"command\": \"tikz-cd\",\n    \"detail\": \"Create commutative diagrams with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-cd\"\n  },\n  \"tikz-dependency\": {\n    \"command\": \"tikz-dependency\",\n    \"detail\": \"A library for drawing dependency graphs\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-dependency\"\n  },\n  \"tikz-dimline\": {\n    \"command\": \"tikz-dimline\",\n    \"detail\": \"Technical dimension lines using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-dimline\"\n  },\n  \"tikz-feynhand\": {\n    \"command\": \"tikz-feynhand\",\n    \"detail\": \"Feynman diagrams with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-feynhand\"\n  },\n  \"tikz-feynman\": {\n    \"command\": \"tikz-feynman\",\n    \"detail\": \"Feynman diagrams with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-feynman\"\n  },\n  \"tikz-imagelabels\": {\n    \"command\": \"tikz-imagelabels\",\n    \"detail\": \"Put labels on images using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-imagelabels\"\n  },\n  \"tikz-inet\": {\n    \"command\": \"tikz-inet\",\n    \"detail\": \"Draw interaction nets with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-inet\"\n  },\n  \"tikz-lake-fig\": {\n    \"command\": \"tikz-lake-fig\",\n    \"detail\": \"Schematic diagrams of lakes\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-lake-fig\"\n  },\n  \"tikz-layers\": {\n    \"command\": \"tikz-layers\",\n    \"detail\": \"TikZ provides graphical layers on TikZ: \\\"behind\\\", \\\"above\\\" and \\\"glass\\\" \",\n    \"documentation\": \"https://ctan.org/pkg/tikz-layers\"\n  },\n  \"tikz-network\": {\n    \"command\": \"tikz-network\",\n    \"detail\": \"Draw networks with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-network\"\n  },\n  \"tikz-opm\": {\n    \"command\": \"tikz-opm\",\n    \"detail\": \" Typeset OPM diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-opm\"\n  },\n  \"tikz-page\": {\n    \"command\": \"tikz-page\",\n    \"detail\": \" Small macro to help building nice and complex layout materials\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-page\"\n  },\n  \"tikz-palattice\": {\n    \"command\": \"tikz-palattice\",\n    \"detail\": \"Draw particle accelerator lattices with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-palattice\"\n  },\n  \"tikz-qtree\": {\n    \"command\": \"tikz-qtree\",\n    \"detail\": \"Use existing qtree syntax for trees in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-qtree\"\n  },\n  \"tikz-timing\": {\n    \"command\": \"tikz-timing\",\n    \"detail\": \"Easy generation of timing diagrams as TikZ pictures\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-timing\"\n  },\n  \"tikz-trackschematic\": {\n    \"command\": \"tikz-trackschematic\",\n    \"detail\": \"A TikZ library for creating track diagrams in railways\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-trackschematic\"\n  },\n  \"tikz-truchet\": {\n    \"command\": \"tikz-truchet\",\n    \"detail\": \"Draw Truchet tiles\",\n    \"documentation\": \"https://ctan.org/pkg/tikz-truchet\"\n  },\n  \"tikzcodeblocks\": {\n    \"command\": \"tikzcodeblocks\",\n    \"detail\": \"Helps to draw codeblocks like scratch, NEPO and PXT in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzcodeblocks\"\n  },\n  \"tikzducks\": {\n    \"command\": \"tikzducks\",\n    \"detail\": \"A little fun package for using rubber ducks in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzducks\"\n  },\n  \"tikzinclude\": {\n    \"command\": \"tikzinclude\",\n    \"detail\": \"Import TikZ images from colletions\",\n    \"documentation\": \"https://ctan.org/pkg/tikzinclude\"\n  },\n  \"tikzlings\": {\n    \"command\": \"tikzlings\",\n    \"detail\": \"A collection of cute little animals and similar creatures\",\n    \"documentation\": \"https://ctan.org/pkg/tikzlings\"\n  },\n  \"tikzmarmots\": {\n    \"command\": \"tikzmarmots\",\n    \"detail\": \"Drawing little marmots in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzmarmots\"\n  },\n  \"tikzorbital\": {\n    \"command\": \"tikzorbital\",\n    \"detail\": \"Atomic and molecular orbitals using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzorbital\"\n  },\n  \"tikzpackets\": {\n    \"command\": \"tikzPackets\",\n    \"detail\": \"Display network packets\",\n    \"documentation\": \"https://ctan.org/pkg/tikzpackets\"\n  },\n  \"tikzpagenodes\": {\n    \"command\": \"tikzpagenodes\",\n    \"detail\": \"A single TikZ node for the whole page\",\n    \"documentation\": \"https://ctan.org/pkg/tikzpagenodes\"\n  },\n  \"tikzpeople\": {\n    \"command\": \"tikzpeople\",\n    \"detail\": \"Draw people-shaped nodes in TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzpeople\"\n  },\n  \"tikzpfeile\": {\n    \"command\": \"tikzpfeile\",\n    \"detail\": \"Draw arrows using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzpfeile\"\n  },\n  \"tikzscale\": {\n    \"command\": \"tikzscale\",\n    \"detail\": \"Resize pictures while respecting text size\",\n    \"documentation\": \"https://ctan.org/pkg/tikzscale\"\n  },\n  \"tikzsymbols\": {\n    \"command\": \"tikzsymbols\",\n    \"detail\": \"Some symbols created using TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tikzsymbols\"\n  },\n  \"tile-graphic\": {\n    \"command\": \"tile-graphic\",\n    \"detail\": \"Create tiles of a graphical file\",\n    \"documentation\": \"https://ctan.org/pkg/tile-graphic\"\n  },\n  \"timbreicmc\": {\n    \"command\": \"timbreicmc\",\n    \"detail\": \"Typeset documents with ICMC/USP watermarks\",\n    \"documentation\": \"https://ctan.org/pkg/timbreicmc\"\n  },\n  \"time\": {\n    \"command\": \"time\",\n    \"detail\": \"Defines a macro \\\\now to print the current time\",\n    \"documentation\": \"https://ctan.org/pkg/time\"\n  },\n  \"times\": {\n    \"command\": \"times\",\n    \"detail\": \"Select Adobe Times Roman (or equivalent) as default font\",\n    \"documentation\": \"https://ctan.org/pkg/times\"\n  },\n  \"timing-diagrams\": {\n    \"command\": \"timing-diagrams\",\n    \"detail\": \"Draw timing diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/timing-diagrams\"\n  },\n  \"tinos\": {\n    \"command\": \"tinos\",\n    \"detail\": \"Tinos fonts with LaTeX support\",\n    \"documentation\": \"https://ctan.org/pkg/tinos\"\n  },\n  \"tipa\": {\n    \"command\": \"tipa\",\n    \"detail\": \"Fonts and macros for IPA phonetics characters\",\n    \"documentation\": \"https://ctan.org/pkg/tipa\"\n  },\n  \"tipauni\": {\n    \"command\": \"tipauni\",\n    \"detail\": \"Producing Unicode characters with TIPA commands\",\n    \"documentation\": \"https://ctan.org/pkg/tipauni\"\n  },\n  \"tipfr\": {\n    \"command\": \"tipfr\",\n    \"detail\": \"Produces calculator's keys with the help of TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tipfr\"\n  },\n  \"tiscreen\": {\n    \"command\": \"tiscreen\",\n    \"detail\": \"Mimic the screen of older Texas Instruments calculators\",\n    \"documentation\": \"https://ctan.org/pkg/tiscreen\"\n  },\n  \"titlecaps\": {\n    \"command\": \"titlecaps\",\n    \"detail\": \"Setting rich-text input into Titling Caps\",\n    \"documentation\": \"https://ctan.org/pkg/titlecaps\"\n  },\n  \"titlefoot\": {\n    \"command\": \"titlefoot\",\n    \"detail\": \"Add special material to footer of title page\",\n    \"documentation\": \"https://ctan.org/pkg/titlefoot\"\n  },\n  \"titlepic\": {\n    \"command\": \"titlepic\",\n    \"detail\": \"Add picture to title page of a document\",\n    \"documentation\": \"https://ctan.org/pkg/titlepic\"\n  },\n  \"titleps\": {\n    \"command\": \"titleps\",\n    \"detail\": \"Page style control\",\n    \"documentation\": \"https://ctan.org/pkg/titleps\"\n  },\n  \"titleref\": {\n    \"command\": \"titleref\",\n    \"detail\": \"A \\\"\\\\titleref\\\" command to cross-reference section titles\",\n    \"documentation\": \"https://ctan.org/pkg/titleref\"\n  },\n  \"titles\": {\n    \"command\": \"titles\",\n    \"detail\": \"Titles of books, articles, etc. in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/titles\"\n  },\n  \"titlesec\": {\n    \"command\": \"titlesec\",\n    \"detail\": \"Select alternative section titles\",\n    \"documentation\": \"https://ctan.org/pkg/titlesec\"\n  },\n  \"titletoc\": {\n    \"command\": \"titletoc\",\n    \"detail\": \"Alternative headings for toc/lof/lot\",\n    \"documentation\": \"https://ctan.org/pkg/titletoc\"\n  },\n  \"titling\": {\n    \"command\": \"titling\",\n    \"detail\": \"Control over the typesetting of the \\\\maketitle command\",\n    \"documentation\": \"https://ctan.org/pkg/titling\"\n  },\n  \"tkz-base\": {\n    \"command\": \"tkz-base\",\n    \"detail\": \"Tools for drawing with a cartesian coordinate system\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-base\"\n  },\n  \"tkz-berge\": {\n    \"command\": \"tkz-berge\",\n    \"detail\": \"Macros for drawing graphs of graph theory\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-berge\"\n  },\n  \"tkz-euclide\": {\n    \"command\": \"tkz-euclide\",\n    \"detail\": \"Tools for drawing Euclidean geometry\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-euclide\"\n  },\n  \"tkz-fct\": {\n    \"command\": \"tkz-fct\",\n    \"detail\": \"Tools for drawing graphs of functions\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-fct\"\n  },\n  \"tkz-graph\": {\n    \"command\": \"tkz-graph\",\n    \"detail\": \"Draw graph-theory graphs\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-graph\"\n  },\n  \"tkz-orm\": {\n    \"command\": \"tkz-orm\",\n    \"detail\": \"Create Object-Role Model (ORM) diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-orm\"\n  },\n  \"tkz-tab\": {\n    \"command\": \"tkz-tab\",\n    \"detail\": \"Tables of signs and variations using PGF/TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/tkz-tab\"\n  },\n  \"tocbasic\": {\n    \"command\": \"tocbasic\",\n    \"detail\": \"Management of tables/lists of contents (and the like)\",\n    \"documentation\": \"https://ctan.org/pkg/tocbasic\"\n  },\n  \"tocbibind\": {\n    \"command\": \"tocbibind\",\n    \"detail\": \"Add bibliography/index/contents to Table of Contents\",\n    \"documentation\": \"https://ctan.org/pkg/tocbibind\"\n  },\n  \"tocdata\": {\n    \"command\": \"tocdata\",\n    \"detail\": \"Adds names to chapters, sections, figures in the TOC and LOF\",\n    \"documentation\": \"https://ctan.org/pkg/tocdata\"\n  },\n  \"tocenter\": {\n    \"command\": \"tocenter\",\n    \"detail\": \"Centring (and other) Page Layout\",\n    \"documentation\": \"https://ctan.org/pkg/tocenter\"\n  },\n  \"tocloft\": {\n    \"command\": \"tocloft\",\n    \"detail\": \"Control table of contents, figures, etc\",\n    \"documentation\": \"https://ctan.org/pkg/tocloft\"\n  },\n  \"tocvsec2\": {\n    \"command\": \"tocvsec2\",\n    \"detail\": \"Section numbering and table of contents control\",\n    \"documentation\": \"https://ctan.org/pkg/tocvsec2\"\n  },\n  \"todo\": {\n    \"command\": \"todo\",\n    \"detail\": \"Make a to-do list for a document\",\n    \"documentation\": \"https://ctan.org/pkg/todo\"\n  },\n  \"todonotes\": {\n    \"command\": \"todonotes\",\n    \"detail\": \"Marking things to do in a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/todonotes\"\n  },\n  \"tokcycle\": {\n    \"command\": \"tokcycle\",\n    \"detail\": \"Build tools to process tokens from an input stream\",\n    \"documentation\": \"https://ctan.org/pkg/tokcycle\"\n  },\n  \"tokenizer\": {\n    \"command\": \"tokenizer\",\n    \"detail\": \"A tokenizer\",\n    \"documentation\": \"https://ctan.org/pkg/tokenizer\"\n  },\n  \"toolbox\": {\n    \"command\": \"toolbox\",\n    \"detail\": \"Tool macros\",\n    \"documentation\": \"https://ctan.org/pkg/toolbox\"\n  },\n  \"topcapt\": {\n    \"command\": \"topcapt\",\n    \"detail\": \"Place captions above figures or tables\",\n    \"documentation\": \"https://ctan.org/pkg/topcapt\"\n  },\n  \"topfloat\": {\n    \"command\": \"topfloat\",\n    \"detail\": \"Move floats to the top of the page\",\n    \"documentation\": \"https://ctan.org/pkg/topfloat\"\n  },\n  \"topiclongtable\": {\n    \"command\": \"topiclongtable\",\n    \"detail\": \"Extend longtable with cells that merge hierarchically\",\n    \"documentation\": \"https://ctan.org/pkg/topiclongtable\"\n  },\n  \"topsection\": {\n    \"command\": \"topsection\",\n    \"detail\": \"An un-numbered top level section\",\n    \"documentation\": \"https://ctan.org/pkg/topsection\"\n  },\n  \"toptesi\": {\n    \"command\": \"toptesi\",\n    \"detail\": \"Bundle for typesetting multilanguage theses\",\n    \"documentation\": \"https://ctan.org/pkg/toptesi\"\n  },\n  \"totalcount\": {\n    \"command\": \"totalcount\",\n    \"detail\": \"Commands for typesetting total values of counters\",\n    \"documentation\": \"https://ctan.org/pkg/totalcount\"\n  },\n  \"totcount\": {\n    \"command\": \"totcount\",\n    \"detail\": \"Find the last value of a counter\",\n    \"documentation\": \"https://ctan.org/pkg/totcount\"\n  },\n  \"totpages\": {\n    \"command\": \"totpages\",\n    \"detail\": \"Count pages in a document, and report last page number\",\n    \"documentation\": \"https://ctan.org/pkg/totpages\"\n  },\n  \"tpslifonts\": {\n    \"command\": \"tpslifonts\",\n    \"detail\": \"A LaTeX package for configuring presentation fonts\",\n    \"documentation\": \"https://ctan.org/pkg/tpslifonts\"\n  },\n  \"tqft\": {\n    \"command\": \"tqft\",\n    \"detail\": \"Drawing TQFT diagrams with TikZ/PGF\",\n    \"documentation\": \"https://ctan.org/pkg/tqft\"\n  },\n  \"trace\": {\n    \"command\": \"trace\",\n    \"detail\": \"Make sensible use of TeX tracing in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/trace\"\n  },\n  \"tracklang\": {\n    \"command\": \"tracklang\",\n    \"detail\": \"Language and dialect tracker\",\n    \"documentation\": \"https://ctan.org/pkg/tracklang\"\n  },\n  \"trajan\": {\n    \"command\": \"trajan\",\n    \"detail\": \"Fonts from the Trajan column in Rome\",\n    \"documentation\": \"https://ctan.org/pkg/trajan\"\n  },\n  \"tram\": {\n    \"command\": \"tram\",\n    \"detail\": \"Typeset tram boxes in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/tram\"\n  },\n  \"translations\": {\n    \"command\": \"translations\",\n    \"detail\": \"Internationalisation of LaTeX2e packages\",\n    \"documentation\": \"https://ctan.org/pkg/translations\"\n  },\n  \"translator\": {\n    \"command\": \"translator\",\n    \"detail\": \"Easy translation of strings in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/translator\"\n  },\n  \"transparent\": {\n    \"command\": \"transparent\",\n    \"detail\": \"Using a color stack for transparency with pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/transparent\"\n  },\n  \"tree-dvips\": {\n    \"command\": \"tree-dvips\",\n    \"detail\": \"Trees and other linguists' macros\",\n    \"documentation\": \"https://ctan.org/pkg/tree-dvips\"\n  },\n  \"trfsigns\": {\n    \"command\": \"trfsigns\",\n    \"detail\": \"Typeset transform signs\",\n    \"documentation\": \"https://ctan.org/pkg/trfsigns\"\n  },\n  \"trig\": {\n    \"command\": \"trig\",\n    \"detail\": \"Simple trigonometric functions\",\n    \"documentation\": \"https://ctan.org/pkg/trig\"\n  },\n  \"trimspaces\": {\n    \"command\": \"trimspaces\",\n    \"detail\": \"Trim spaces around an argument or within a macro\",\n    \"documentation\": \"https://ctan.org/pkg/trimspaces\"\n  },\n  \"trivfloat\": {\n    \"command\": \"trivfloat\",\n    \"detail\": \"Quick float definitions in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/trivfloat\"\n  },\n  \"trsym\": {\n    \"command\": \"trsym\",\n    \"detail\": \"Symbols for transformations\",\n    \"documentation\": \"https://ctan.org/pkg/trsym\"\n  },\n  \"truncate\": {\n    \"command\": \"truncate\",\n    \"detail\": \"Truncate text to a specified width\",\n    \"documentation\": \"https://ctan.org/pkg/truncate\"\n  },\n  \"tsemlines\": {\n    \"command\": \"tsemlines\",\n    \"detail\": \"Support for the ancient \\\\emline macro\",\n    \"documentation\": \"https://ctan.org/pkg/tsemlines\"\n  },\n  \"tucv\": {\n    \"command\": \"tucv\",\n    \"detail\": \"Support for typesetting a CV or résumeé\",\n    \"documentation\": \"https://ctan.org/pkg/tucv\"\n  },\n  \"tugboat\": {\n    \"command\": \"tugboat\",\n    \"detail\": \"LaTeX macros for TUGboat articles\",\n    \"documentation\": \"https://ctan.org/pkg/tugboat\"\n  },\n  \"turabian-formatting\": {\n    \"command\": \"turabian-formatting\",\n    \"detail\": \"Formatting based on Turabian's Manual\",\n    \"documentation\": \"https://ctan.org/pkg/turabian-formatting\"\n  },\n  \"turkish\": {\n    \"command\": \"turkish\",\n    \"detail\": \"LaTeX Support for Typesetting Turkish\",\n    \"documentation\": \"https://ctan.org/pkg/turkish\"\n  },\n  \"turnstile\": {\n    \"command\": \"turnstile\",\n    \"detail\": \"Typeset the (logic) turnstile notation\",\n    \"documentation\": \"https://ctan.org/pkg/turnstile\"\n  },\n  \"turnthepage\": {\n    \"command\": \"turnthepage\",\n    \"detail\": \"Provide \\\"turn page\\\" instructions\",\n    \"documentation\": \"https://ctan.org/pkg/turnthepage\"\n  },\n  \"twoopt\": {\n    \"command\": \"twoopt\",\n    \"detail\": \"Definitions with two optional arguments\",\n    \"documentation\": \"https://ctan.org/pkg/twoopt\"\n  },\n  \"txfonts\": {\n    \"command\": \"txfonts\",\n    \"detail\": \"Times-like fonts in support of mathematics\",\n    \"documentation\": \"https://ctan.org/pkg/txfonts\"\n  },\n  \"txfontsb\": {\n    \"command\": \"txfontsb\",\n    \"detail\": \"Extensions to txfonts, using GNU Freefont\",\n    \"documentation\": \"https://ctan.org/pkg/txfontsb\"\n  },\n  \"txgreeks\": {\n    \"command\": \"txgreeks\",\n    \"detail\": \"Shape selection for TX fonts Greek letters\",\n    \"documentation\": \"https://ctan.org/pkg/txgreeks\"\n  },\n  \"txuprcal\": {\n    \"command\": \"txuprcal\",\n    \"detail\": \"Upright calligraphic font based on TX calligraphic\",\n    \"documentation\": \"https://ctan.org/pkg/txuprcal\"\n  },\n  \"type1cm\": {\n    \"command\": \"type1cm\",\n    \"detail\": \"Arbitrary size font selection in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/type1cm\"\n  },\n  \"type1ec\": {\n    \"command\": \"type1ec\",\n    \"detail\": \"Permit EC, TC and LH fonts at arbitrary sizes\",\n    \"documentation\": \"https://ctan.org/pkg/type1ec\"\n  },\n  \"typearea\": {\n    \"command\": \"typearea\",\n    \"detail\": \"Set page margins\",\n    \"documentation\": \"https://ctan.org/pkg/typearea\"\n  },\n  \"typed-checklist\": {\n    \"command\": \"typed-checklist\",\n    \"detail\": \"Typesetting tasks, goals, milestones, artifacts, and more in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/typed-checklist\"\n  },\n  \"typeface\": {\n    \"command\": \"typeface\",\n    \"detail\": \"Select a balanced set of fonts\",\n    \"documentation\": \"https://ctan.org/pkg/typeface\"\n  },\n  \"typehtml\": {\n    \"command\": \"typehtml\",\n    \"detail\": \"Typeset HTML directly from LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/typehtml\"\n  },\n  \"typewriter\": {\n    \"command\": \"typewriter\",\n    \"detail\": \"Typeset with a randomly variable monospace font\",\n    \"documentation\": \"https://ctan.org/pkg/typewriter\"\n  },\n  \"typicons\": {\n    \"command\": \"typicons\",\n    \"detail\": \"Font containing a set of web-related icons\",\n    \"documentation\": \"https://ctan.org/pkg/typicons\"\n  },\n  \"typoaid\": {\n    \"command\": \"typoaid\",\n    \"detail\": \"Macros for font diagnostics\",\n    \"documentation\": \"https://ctan.org/pkg/typoaid\"\n  },\n  \"typogrid\": {\n    \"command\": \"typogrid\",\n    \"detail\": \"Print a typographic grid\",\n    \"documentation\": \"https://ctan.org/pkg/typogrid\"\n  },\n  \"tzplot\": {\n    \"command\": \"tzplot\",\n    \"detail\": \"Plot graphs with TikZ abbreviations\",\n    \"documentation\": \"https://ctan.org/pkg/tzplot\"\n  },\n  \"uassign\": {\n    \"command\": \"uassign\",\n    \"detail\": \"Environments and options for typesetting university assignments\",\n    \"documentation\": \"https://ctan.org/pkg/uassign\"\n  },\n  \"ucharcat\": {\n    \"command\": \"ucharcat\",\n    \"detail\": \"Implementation of the (new in 2015) XeTeX \\\\Ucharcat command in lua, for LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ucharcat\"\n  },\n  \"ucharclasses\": {\n    \"command\": \"ucharclasses\",\n    \"detail\": \"Font actions in XeTeX according to what is being processed\",\n    \"documentation\": \"https://ctan.org/pkg/ucharclasses\"\n  },\n  \"ucs\": {\n    \"command\": \"ucs\",\n    \"detail\": \"Extended UTF-8 input encoding support for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/ucs\"\n  },\n  \"uebungsblatt\": {\n    \"command\": \"uebungsblatt\",\n    \"detail\": \"A LaTeX class for writing exercise sheets\",\n    \"documentation\": \"https://ctan.org/pkg/uebungsblatt\"\n  },\n  \"ugarite\": {\n    \"command\": \"ugarite\",\n    \"detail\": \"Fonts for Ugaritic cuneiform script\",\n    \"documentation\": \"https://ctan.org/pkg/ugarite\"\n  },\n  \"uhrzeit\": {\n    \"command\": \"uhrzeit\",\n    \"detail\": \"Time printing, in German\",\n    \"documentation\": \"https://ctan.org/pkg/uhrzeit\"\n  },\n  \"uiucthesis\": {\n    \"command\": \"uiucthesis\",\n    \"detail\": \"UIUC thesis class\",\n    \"documentation\": \"https://ctan.org/pkg/uiucthesis\"\n  },\n  \"ulem\": {\n    \"command\": \"ulem\",\n    \"detail\": \"Package for underlining\",\n    \"documentation\": \"https://ctan.org/pkg/ulem\"\n  },\n  \"ulqda\": {\n    \"command\": \"ulqda\",\n    \"detail\": \"Support of Qualitative Data Analysis\",\n    \"documentation\": \"https://ctan.org/pkg/ulqda\"\n  },\n  \"uml\": {\n    \"command\": \"uml\",\n    \"detail\": \"UML diagrams in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/uml\"\n  },\n  \"umlaute\": {\n    \"command\": \"umlaute\",\n    \"detail\": \"German input encodings in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/umlaute\"\n  },\n  \"umoline\": {\n    \"command\": \"umoline\",\n    \"detail\": \"Underline text allowing line breaking\",\n    \"documentation\": \"https://ctan.org/pkg/umoline\"\n  },\n  \"unamthesis\": {\n    \"command\": \"UNAMThesis\",\n    \"detail\": \"Style for Universidad Nacional Autonoma de Mexico theses\",\n    \"documentation\": \"https://ctan.org/pkg/unamthesis\"\n  },\n  \"uncial\": {\n    \"command\": \"uncial\",\n    \"detail\": \"Uncial manuscript book-hand font\",\n    \"documentation\": \"https://ctan.org/pkg/uncial\"\n  },\n  \"underlin\": {\n    \"command\": \"underlin\",\n    \"detail\": \"Underlined running heads\",\n    \"documentation\": \"https://ctan.org/pkg/underlin\"\n  },\n  \"underoverlap\": {\n    \"command\": \"underoverlap\",\n    \"detail\": \"Position decorations over and under expressions\",\n    \"documentation\": \"https://ctan.org/pkg/underoverlap\"\n  },\n  \"underscore\": {\n    \"command\": \"underscore\",\n    \"detail\": \"Control the behaviour of \\\"_\\\" in text\",\n    \"documentation\": \"https://ctan.org/pkg/underscore\"\n  },\n  \"undolabl\": {\n    \"command\": \"undolabl\",\n    \"detail\": \"Override existing labels\",\n    \"documentation\": \"https://ctan.org/pkg/undolabl\"\n  },\n  \"unicode\": {\n    \"command\": \"unicode\",\n    \"detail\": \"Extended UTF-8 input encoding for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/unicode\"\n  },\n  \"unicode-alphabets\": {\n    \"command\": \"unicode-alphabets\",\n    \"detail\": \"Macros for using characters from Unicode’s Private Use Area\",\n    \"documentation\": \"https://ctan.org/pkg/unicode-alphabets\"\n  },\n  \"unicode-bidi\": {\n    \"command\": \"unicode-bidi\",\n    \"detail\": \"Experimental unicode bidi package for XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/unicode-bidi\"\n  },\n  \"unicode-math\": {\n    \"command\": \"unicode-math\",\n    \"detail\": \"Unicode mathematics support for XeTeX and LuaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/unicode-math\"\n  },\n  \"uninormalize\": {\n    \"command\": \"uninormalize\",\n    \"detail\": \"Unicode normalization support\",\n    \"documentation\": \"https://ctan.org/pkg/uninormalize\"\n  },\n  \"uniquecounter\": {\n    \"command\": \"uniquecounter\",\n    \"detail\": \"Provides unlimited unique counter\",\n    \"documentation\": \"https://ctan.org/pkg/uniquecounter\"\n  },\n  \"unisugar\": {\n    \"command\": \"unisugar\",\n    \"detail\": \"Define syntactic sugar for Unicode LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/unisugar\"\n  },\n  \"unitconv\": {\n    \"command\": \"unitconv\",\n    \"detail\": \"Convert a length into one with another unit\",\n    \"documentation\": \"https://ctan.org/pkg/unitconv\"\n  },\n  \"unitipa\": {\n    \"command\": \"unitipa\",\n    \"detail\": \"TIPA typefaces with Unicode characters as input\",\n    \"documentation\": \"https://ctan.org/pkg/unitipa\"\n  },\n  \"units\": {\n    \"command\": \"units\",\n    \"detail\": \"Typeset units\",\n    \"documentation\": \"https://ctan.org/pkg/units\"\n  },\n  \"unitsdef\": {\n    \"command\": \"unitsdef\",\n    \"detail\": \"Typesetting units in LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/unitsdef\"\n  },\n  \"universalis\": {\n    \"command\": \"universalis\",\n    \"detail\": \"Universalis font, with support\",\n    \"documentation\": \"https://ctan.org/pkg/universalis\"\n  },\n  \"unravel\": {\n    \"command\": \"unravel\",\n    \"detail\": \"Watching TeX digest tokens\",\n    \"documentation\": \"https://ctan.org/pkg/unravel\"\n  },\n  \"unswcover\": {\n    \"command\": \"unswcover\",\n    \"detail\": \"Typeset a dissertation cover page following UNSW guidelines\",\n    \"documentation\": \"https://ctan.org/pkg/unswcover\"\n  },\n  \"uowthesistitlepage\": {\n    \"command\": \"uowthesistitlepage\",\n    \"detail\": \"Title page for dissertations at the University of Wollongong\",\n    \"documentation\": \"https://ctan.org/pkg/uowthesistitlepage\"\n  },\n  \"upgreek\": {\n    \"command\": \"upgreek\",\n    \"detail\": \"Upright Greek letters\",\n    \"documentation\": \"https://ctan.org/pkg/upgreek\"\n  },\n  \"uppunctlm\": {\n    \"command\": \"uppunctlm\",\n    \"detail\": \"Always keep upright shape for some punctuation marks and Arabic numerals\",\n    \"documentation\": \"https://ctan.org/pkg/uppunctlm\"\n  },\n  \"upquote\": {\n    \"command\": \"upquote\",\n    \"detail\": \"Show \\\"realistic\\\" quotes in verbatim\",\n    \"documentation\": \"https://ctan.org/pkg/upquote\"\n  },\n  \"upref\": {\n    \"command\": \"upref\",\n    \"detail\": \"Ensure references are upright\",\n    \"documentation\": \"https://ctan.org/pkg/upref\"\n  },\n  \"upzhkinsoku\": {\n    \"command\": \"upzhkinsoku\",\n    \"detail\": \"Supplementary Chinese kinsoku for Unicode *pTeX\",\n    \"documentation\": \"https://ctan.org/pkg/upzhkinsoku\"\n  },\n  \"uri\": {\n    \"command\": \"uri\",\n    \"detail\": \"Hyperlinks for a wide range of URIs\",\n    \"documentation\": \"https://ctan.org/pkg/uri\"\n  },\n  \"url\": {\n    \"command\": \"url\",\n    \"detail\": \"Verbatim with URL-sensitive line breaks\",\n    \"documentation\": \"https://ctan.org/pkg/url\"\n  },\n  \"urwchancal\": {\n    \"command\": \"urwchancal\",\n    \"detail\": \"Use URW's clone of Zapf Chancery as a maths alphabet\",\n    \"documentation\": \"https://ctan.org/pkg/urwchancal\"\n  },\n  \"usebib\": {\n    \"command\": \"usebib\",\n    \"detail\": \"A simple bibliography processor\",\n    \"documentation\": \"https://ctan.org/pkg/usebib\"\n  },\n  \"ushort\": {\n    \"command\": \"ushort\",\n    \"detail\": \"Shorter (and longer) underlines and underbars\",\n    \"documentation\": \"https://ctan.org/pkg/ushort\"\n  },\n  \"uspace\": {\n    \"command\": \"uspace\",\n    \"detail\": \"Giving meaning to various Unicode space characters\",\n    \"documentation\": \"https://ctan.org/pkg/uspace\"\n  },\n  \"utf8add\": {\n    \"command\": \"utf8add\",\n    \"detail\": \"Additional support for UTF-8 encoded LaTeX input\",\n    \"documentation\": \"https://ctan.org/pkg/utf8add\"\n  },\n  \"utfsym\": {\n    \"command\": \"utfsym\",\n    \"detail\": \"Provides various Unicode symbols\",\n    \"documentation\": \"https://ctan.org/pkg/utfsym\"\n  },\n  \"utopia\": {\n    \"command\": \"utopia\",\n    \"detail\": \"Adobe Utopia fonts\",\n    \"documentation\": \"https://ctan.org/pkg/utopia\"\n  },\n  \"variablelm\": {\n    \"command\": \"variablelm\",\n    \"detail\": \"Font definitions for the variable Latin Modern fonts\",\n    \"documentation\": \"https://ctan.org/pkg/variablelm\"\n  },\n  \"variations\": {\n    \"command\": \"variations\",\n    \"detail\": \"Typeset tables of variations of functions\",\n    \"documentation\": \"https://ctan.org/pkg/variations\"\n  },\n  \"varindex\": {\n    \"command\": \"varindex\",\n    \"detail\": \"Luxury frontend to the \\\\index command\",\n    \"documentation\": \"https://ctan.org/pkg/varindex\"\n  },\n  \"varioref\": {\n    \"command\": \"varioref\",\n    \"detail\": \"Intelligent page references\",\n    \"documentation\": \"https://ctan.org/pkg/varioref\"\n  },\n  \"varsfromjobname\": {\n    \"command\": \"varsfromjobname\",\n    \"detail\": \"Extract variables from the name of the LaTeX file\",\n    \"documentation\": \"https://ctan.org/pkg/varsfromjobname\"\n  },\n  \"varwidth\": {\n    \"command\": \"varwidth\",\n    \"detail\": \"A variable-width minipage\",\n    \"documentation\": \"https://ctan.org/pkg/varwidth\"\n  },\n  \"vaucanson-g\": {\n    \"command\": \"vaucanson-g\",\n    \"detail\": \"PSTricks macros for drawing automata\",\n    \"documentation\": \"https://ctan.org/pkg/vaucanson-g\"\n  },\n  \"vcell\": {\n    \"command\": \"vcell\",\n    \"detail\": \"Vertical alignment of content inside table cells\",\n    \"documentation\": \"https://ctan.org/pkg/vcell\"\n  },\n  \"vdmlisting\": {\n    \"command\": \"vdmlisting\",\n    \"detail\": \"Typesetting VDM in ASCII syntax\",\n    \"documentation\": \"https://ctan.org/pkg/vdmlisting\"\n  },\n  \"venndiagram\": {\n    \"command\": \"venndiagram\",\n    \"detail\": \"Creating Venn diagrams with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/venndiagram\"\n  },\n  \"verbasef\": {\n    \"command\": \"verbasef\",\n    \"detail\": \"VERBatim Automatic Splitting of External Files\",\n    \"documentation\": \"https://ctan.org/pkg/verbasef\"\n  },\n  \"verbatim\": {\n    \"command\": \"verbatim\",\n    \"detail\": \"Reimplementation of and extensions to LaTeX verbatim\",\n    \"documentation\": \"https://ctan.org/pkg/verbatim\"\n  },\n  \"verbatimbox\": {\n    \"command\": \"verbatimbox\",\n    \"detail\": \"Deposit verbatim text in a box\",\n    \"documentation\": \"https://ctan.org/pkg/verbatimbox\"\n  },\n  \"verbatimcopy\": {\n    \"command\": \"verbatimcopy\",\n    \"detail\": \"Make copies of text documents from within LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/verbatimcopy\"\n  },\n  \"verbdef\": {\n    \"command\": \"verbdef\",\n    \"detail\": \"Define commands which expand to verbatim text\",\n    \"documentation\": \"https://ctan.org/pkg/verbdef\"\n  },\n  \"verbments\": {\n    \"command\": \"verbments\",\n    \"detail\": \"Syntax highlighting of source code in LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/verbments\"\n  },\n  \"verifiche\": {\n    \"command\": \"verifiche\",\n    \"detail\": \"A LaTeX package to typeset (Italian) high school tests\",\n    \"documentation\": \"https://ctan.org/pkg/verifiche\"\n  },\n  \"verse\": {\n    \"command\": \"verse\",\n    \"detail\": \"Aids for typesetting simple verse\",\n    \"documentation\": \"https://ctan.org/pkg/verse\"\n  },\n  \"version\": {\n    \"command\": \"version\",\n    \"detail\": \"Conditionally include text\",\n    \"documentation\": \"https://ctan.org/pkg/version\"\n  },\n  \"versions\": {\n    \"command\": \"versions\",\n    \"detail\": \"Optionally omit pieces of text\",\n    \"documentation\": \"https://ctan.org/pkg/versions\"\n  },\n  \"versonotes\": {\n    \"command\": \"versonotes\",\n    \"detail\": \"Display brief notes on verso pages\",\n    \"documentation\": \"https://ctan.org/pkg/versonotes\"\n  },\n  \"vertbars\": {\n    \"command\": \"vertbars\",\n    \"detail\": \"Mark vertical rules in margin of text\",\n    \"documentation\": \"https://ctan.org/pkg/vertbars\"\n  },\n  \"vgrid\": {\n    \"command\": \"vgrid\",\n    \"detail\": \"Overlay a grid on the printed page\",\n    \"documentation\": \"https://ctan.org/pkg/vgrid\"\n  },\n  \"vhistory\": {\n    \"command\": \"vhistory\",\n    \"detail\": \"Support for creating a change log\",\n    \"documentation\": \"https://ctan.org/pkg/vhistory\"\n  },\n  \"viking\": {\n    \"command\": \"viking\",\n    \"detail\": \"Scandinavian runic alphabet as used by the Vikings\",\n    \"documentation\": \"https://ctan.org/pkg/viking\"\n  },\n  \"vmargin\": {\n    \"command\": \"vmargin\",\n    \"detail\": \"Set various page dimensions\",\n    \"documentation\": \"https://ctan.org/pkg/vmargin\"\n  },\n  \"vntex\": {\n    \"command\": \"vntex\",\n    \"detail\": \"Support for Vietnamese\",\n    \"documentation\": \"https://ctan.org/pkg/vntex\"\n  },\n  \"vocaltract\": {\n    \"command\": \"VocalTract\",\n    \"detail\": \"Visualise the vocal tract using LaTeX and PSTricks\",\n    \"documentation\": \"https://ctan.org/pkg/vocaltract\"\n  },\n  \"volumes\": {\n    \"command\": \"volumes\",\n    \"detail\": \"Typeset only parts of a document, with complete indexes etc\",\n    \"documentation\": \"https://ctan.org/pkg/volumes\"\n  },\n  \"vowel\": {\n    \"command\": \"vowel\",\n    \"detail\": \"Draw vowel charts for phonetic research\",\n    \"documentation\": \"https://ctan.org/pkg/vowel\"\n  },\n  \"vpe\": {\n    \"command\": \"vpe\",\n    \"detail\": \"Source specials for PDF output\",\n    \"documentation\": \"https://ctan.org/pkg/vpe\"\n  },\n  \"vrbexin\": {\n    \"command\": \"vrbexin\",\n    \"detail\": \"Verbatim input support\",\n    \"documentation\": \"https://ctan.org/pkg/vrbexin\"\n  },\n  \"vruler\": {\n    \"command\": \"vruler\",\n    \"detail\": \"Numbering text\",\n    \"documentation\": \"https://ctan.org/pkg/vruler\"\n  },\n  \"vtable\": {\n    \"command\": \"vtable\",\n    \"detail\": \"Vertical alignement of table cells\",\n    \"documentation\": \"https://ctan.org/pkg/vtable\"\n  },\n  \"vwcol\": {\n    \"command\": \"vwcol\",\n    \"detail\": \"Variable-width multiple text columns\",\n    \"documentation\": \"https://ctan.org/pkg/vwcol\"\n  },\n  \"wallpaper\": {\n    \"command\": \"wallpaper\",\n    \"detail\": \"Easy addition of wallpapers (background images) to LaTeX documents, including tiling\",\n    \"documentation\": \"https://ctan.org/pkg/wallpaper\"\n  },\n  \"warning\": {\n    \"command\": \"warning\",\n    \"detail\": \"Global warnings at the end of the logfile\",\n    \"documentation\": \"https://ctan.org/pkg/warning\"\n  },\n  \"warpcol\": {\n    \"command\": \"warpcol\",\n    \"detail\": \"Relative alignment of rows in numeric columns in tabulars\",\n    \"documentation\": \"https://ctan.org/pkg/warpcol\"\n  },\n  \"wasysym\": {\n    \"command\": \"wasysym\",\n    \"detail\": \"LaTeX support for the wasy fonts\",\n    \"documentation\": \"https://ctan.org/pkg/wasysym\"\n  },\n  \"watermark\": {\n    \"command\": \"watermark\",\n    \"detail\": \"Draw “watermarks” on the output page\",\n    \"documentation\": \"https://ctan.org/pkg/watermark\"\n  },\n  \"widetable\": {\n    \"command\": \"widetable\",\n    \"detail\": \"An environment for typesetting tables of specified width\",\n    \"documentation\": \"https://ctan.org/pkg/widetable\"\n  },\n  \"widows-and-orphans\": {\n    \"command\": \"widows-and-orphans\",\n    \"detail\": \"Identify (typographic) widows and orphans\",\n    \"documentation\": \"https://ctan.org/pkg/widows-and-orphans\"\n  },\n  \"wiki\": {\n    \"command\": \"wiki\",\n    \"detail\": \"Use Wiki-style markup in a LaTeX document\",\n    \"documentation\": \"https://ctan.org/pkg/wiki\"\n  },\n  \"windycity\": {\n    \"command\": \"windycity\",\n    \"detail\": \"A Chicago style for BibLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/windycity\"\n  },\n  \"withargs\": {\n    \"command\": \"withargs\",\n    \"detail\": \"In-place argument substitution\",\n    \"documentation\": \"https://ctan.org/pkg/withargs\"\n  },\n  \"witharrows\": {\n    \"command\": \"witharrows\",\n    \"detail\": \"“Aligned” math environments with arrows for comments\",\n    \"documentation\": \"https://ctan.org/pkg/witharrows\"\n  },\n  \"wnri\": {\n    \"command\": \"wnri\",\n    \"detail\": \"Ridgeway's fonts\",\n    \"documentation\": \"https://ctan.org/pkg/wnri\"\n  },\n  \"wordlike\": {\n    \"command\": \"wordlike\",\n    \"detail\": \"Simulating word processor layout\",\n    \"documentation\": \"https://ctan.org/pkg/wordlike\"\n  },\n  \"worksheet\": {\n    \"command\": \"worksheet\",\n    \"detail\": \"Easy creation of worksheets\",\n    \"documentation\": \"https://ctan.org/pkg/worksheet\"\n  },\n  \"worldflags\": {\n    \"command\": \"worldflags\",\n    \"detail\": \"Drawing flags with TikZ\",\n    \"documentation\": \"https://ctan.org/pkg/worldflags\"\n  },\n  \"wotree\": {\n    \"command\": \"wotree\",\n    \"detail\": \"Draw Warnier/Orr diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/wotree\"\n  },\n  \"wrapfig\": {\n    \"command\": \"wrapfig\",\n    \"detail\": \"Produces figures which text can flow around\",\n    \"documentation\": \"https://ctan.org/pkg/wrapfig\"\n  },\n  \"wtref\": {\n    \"command\": \"wtref\",\n    \"detail\": \"Extend LaTeX’s cross-reference system\",\n    \"documentation\": \"https://ctan.org/pkg/wtref\"\n  },\n  \"xargs\": {\n    \"command\": \"xargs\",\n    \"detail\": \"Define commands with many optional arguments\",\n    \"documentation\": \"https://ctan.org/pkg/xargs\"\n  },\n  \"xassoccnt\": {\n    \"command\": \"xassoccnt\",\n    \"detail\": \"Associated counters stepping simultaneously\",\n    \"documentation\": \"https://ctan.org/pkg/xassoccnt\"\n  },\n  \"xbmks\": {\n    \"command\": \"xbmks\",\n    \"detail\": \"Create a cross-document bookmark tree\",\n    \"documentation\": \"https://ctan.org/pkg/xbmks\"\n  },\n  \"xcharter\": {\n    \"command\": \"XCharter\",\n    \"detail\": \"Extension of Bitstream Charter fonts\",\n    \"documentation\": \"https://ctan.org/pkg/xcharter\"\n  },\n  \"xcite\": {\n    \"command\": \"xcite\",\n    \"detail\": \"Use citation keys from a different document\",\n    \"documentation\": \"https://ctan.org/pkg/xcite\"\n  },\n  \"xcjk2uni\": {\n    \"command\": \"xCJK2uni\",\n    \"detail\": \"Convert CJK characters to Unicode, in pdfTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xcjk2uni\"\n  },\n  \"xcntperchap\": {\n    \"command\": \"xcntperchap\",\n    \"detail\": \"Track the number of subsections etc. that occur in a specified tracklevel\",\n    \"documentation\": \"https://ctan.org/pkg/xcntperchap\"\n  },\n  \"xcoffins\": {\n    \"command\": \"xcoffins\",\n    \"detail\": \"Rich boxed material for LaTeX 3\",\n    \"documentation\": \"https://ctan.org/pkg/xcoffins\"\n  },\n  \"xcolor\": {\n    \"command\": \"xcolor\",\n    \"detail\": \"Driver-independent color extensions for LaTeX and pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xcolor\"\n  },\n  \"xcolor-material\": {\n    \"command\": \"xcolor-material\",\n    \"detail\": \"Defines the 256 colors from Google Material Color Palette\",\n    \"documentation\": \"https://ctan.org/pkg/xcolor-material\"\n  },\n  \"xcolor-solarized\": {\n    \"command\": \"xcolor-solarized\",\n    \"detail\": \"Defines the 16 colors from Ethan Schoonover’s Solarized palette\",\n    \"documentation\": \"https://ctan.org/pkg/xcolor-solarized\"\n  },\n  \"xcomment\": {\n    \"command\": \"xcomment\",\n    \"detail\": \"Allows selected environments to be included/excluded\",\n    \"documentation\": \"https://ctan.org/pkg/xcomment\"\n  },\n  \"xcookybooky\": {\n    \"command\": \"xcookybooky\",\n    \"detail\": \"Typeset (potentially long) recipes\",\n    \"documentation\": \"https://ctan.org/pkg/xcookybooky\"\n  },\n  \"xcpdftips\": {\n    \"command\": \"xcpdftips\",\n    \"detail\": \"Natbib citations with PDF tooltips\",\n    \"documentation\": \"https://ctan.org/pkg/xcpdftips\"\n  },\n  \"xechangebar\": {\n    \"command\": \"xechangebar\",\n    \"detail\": \"An extension of package changebar that can be used with XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xechangebar\"\n  },\n  \"xecjk\": {\n    \"command\": \"xeCJK\",\n    \"detail\": \"Support for CJK documents in XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xecjk\"\n  },\n  \"xecjkfntef\": {\n    \"command\": \"xeCJKfntef\",\n    \"detail\": \"Support for CJK documents in XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xecjk\"\n  },\n  \"xecolor\": {\n    \"command\": \"xecolor\",\n    \"detail\": \"Support for color in XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xecolor\"\n  },\n  \"xecyr\": {\n    \"command\": \"xecyr\",\n    \"detail\": \"Using Cyrillic languages in XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xecyr\"\n  },\n  \"xecyrmongolian\": {\n    \"command\": \"xecyrmongolian\",\n    \"detail\": \" Basic support for the typesetting of Cyrillic Mongolian\\n      documents using (Xe|Lua)LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xecyrmongolian\"\n  },\n  \"xeindex\": {\n    \"command\": \"xeindex\",\n    \"detail\": \"Automatic index generation for XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xeindex\"\n  },\n  \"xellipsis\": {\n    \"command\": \"xellipsis\",\n    \"detail\": \"Extremely configurable ellipses with formats for various style manuals\",\n    \"documentation\": \"https://ctan.org/pkg/xellipsis\"\n  },\n  \"xepersian\": {\n    \"command\": \"xepersian\",\n    \"detail\": \"Persian for LaTeX, using XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xepersian\"\n  },\n  \"xepersian-hm\": {\n    \"command\": \"xepersian-hm\",\n    \"detail\": \"Fixes kashida feature in xepersian package\",\n    \"documentation\": \"https://ctan.org/pkg/xepersian-hm\"\n  },\n  \"xesearch\": {\n    \"command\": \"xesearch\",\n    \"detail\": \"A string finder for XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xesearch\"\n  },\n  \"xespotcolor\": {\n    \"command\": \"xespotcolor\",\n    \"detail\": \"Spot colours support for XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xespotcolor\"\n  },\n  \"xetexko\": {\n    \"command\": \"xetexko\",\n    \"detail\": \"Typeset Korean with Xe(La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/xetexko\"\n  },\n  \"xevlna\": {\n    \"command\": \"xevlna\",\n    \"detail\": \"Insert non-breakable spaces using XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xevlna\"\n  },\n  \"xfakebold\": {\n    \"command\": \"xfakebold\",\n    \"detail\": \"Fake a regular font for bold characters\",\n    \"documentation\": \"https://ctan.org/pkg/xfakebold\"\n  },\n  \"xfor\": {\n    \"command\": \"xfor\",\n    \"detail\": \"A reimplementation of the LaTeX for-loop macro\",\n    \"documentation\": \"https://ctan.org/pkg/xfor\"\n  },\n  \"xfp\": {\n    \"command\": \"xfp\",\n    \"detail\": \"Interface to the LaTeX3 floating point unit\",\n    \"documentation\": \"https://ctan.org/pkg/xfp\"\n  },\n  \"xfrac\": {\n    \"command\": \"xfrac\",\n    \"detail\": \"Split-level fractions in LaTeX2e*\",\n    \"documentation\": \"https://ctan.org/pkg/xfrac\"\n  },\n  \"xgalley\": {\n    \"command\": \"xgalley\",\n    \"detail\": \"Control text feeding onto the page\",\n    \"documentation\": \"https://ctan.org/pkg/xgalley\"\n  },\n  \"xgreek\": {\n    \"command\": \"xgreek\",\n    \"detail\": \"XeLaTeX package for typesetting Greek language documents (beta release)\",\n    \"documentation\": \"https://ctan.org/pkg/xgreek\"\n  },\n  \"xhfill\": {\n    \"command\": \"xhfill\",\n    \"detail\": \"Extending \\\\hrulefill\",\n    \"documentation\": \"https://ctan.org/pkg/xhfill\"\n  },\n  \"xifthen\": {\n    \"command\": \"xifthen\",\n    \"detail\": \"Extended conditional commands\",\n    \"documentation\": \"https://ctan.org/pkg/xifthen\"\n  },\n  \"xindex\": {\n    \"command\": \"xindex\",\n    \"detail\": \"Unicode compatible index generation\",\n    \"documentation\": \"https://ctan.org/pkg/xindex\"\n  },\n  \"xint\": {\n    \"command\": \"xint\",\n    \"detail\": \"Expandable operations on long numbers\",\n    \"documentation\": \"https://ctan.org/pkg/xint\"\n  },\n  \"xkcdcolors\": {\n    \"command\": \"xkcdcolors\",\n    \"detail\": \"xkcd names of colors\",\n    \"documentation\": \"https://ctan.org/pkg/xkcdcolors\"\n  },\n  \"xkeyval\": {\n    \"command\": \"xkeyval\",\n    \"detail\": \"Extension of the keyval package\",\n    \"documentation\": \"https://ctan.org/pkg/xkeyval\"\n  },\n  \"xkvltxp\": {\n    \"command\": \"xkvltxp\",\n    \"detail\": \"Provision for expandable macros in package options\",\n    \"documentation\": \"https://ctan.org/pkg/xkvltxp\"\n  },\n  \"xkvview\": {\n    \"command\": \"xkvview\",\n    \"detail\": \"Xkeyval viewer\",\n    \"documentation\": \"https://ctan.org/pkg/xkvview\"\n  },\n  \"xlop\": {\n    \"command\": \"xlop\",\n    \"detail\": \"Calculates and displays arithmetic operations\",\n    \"documentation\": \"https://ctan.org/pkg/xlop\"\n  },\n  \"xltabular\": {\n    \"command\": \"xltabular\",\n    \"detail\": \"Longtable support with possible X-column specifier\",\n    \"documentation\": \"https://ctan.org/pkg/xltabular\"\n  },\n  \"xltxtra\": {\n    \"command\": \"xltxtra\",\n    \"detail\": \"“Extras” for LaTeX users of XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xltxtra\"\n  },\n  \"xmpincl\": {\n    \"command\": \"xmpincl\",\n    \"detail\": \"Include eXtensible Metadata Platform data in pdfLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/xmpincl\"\n  },\n  \"xnewcommand\": {\n    \"command\": \"xnewcommand\",\n    \"detail\": \"Define \\\\global and \\\\protected commands with \\\\newcommand\",\n    \"documentation\": \"https://ctan.org/pkg/xnewcommand\"\n  },\n  \"xoptarg\": {\n    \"command\": \"xoptarg\",\n    \"detail\": \"Expandable macros that take an optional argument\",\n    \"documentation\": \"https://ctan.org/pkg/xoptarg\"\n  },\n  \"xparse\": {\n    \"command\": \"xparse\",\n    \"detail\": \"A generic document command parser\",\n    \"documentation\": \"https://ctan.org/pkg/xparse\"\n  },\n  \"xpatch\": {\n    \"command\": \"xpatch\",\n    \"detail\": \"Extending etoolbox patching commands\",\n    \"documentation\": \"https://ctan.org/pkg/xpatch\"\n  },\n  \"xpeek\": {\n    \"command\": \"xpeek\",\n    \"detail\": \"Define commands that peek ahead in the input stream\",\n    \"documentation\": \"https://ctan.org/pkg/xpeek\"\n  },\n  \"xpiano\": {\n    \"command\": \"xpiano\",\n    \"detail\": \"An extension of the piano package\",\n    \"documentation\": \"https://ctan.org/pkg/xpiano\"\n  },\n  \"xpicture\": {\n    \"command\": \"xpicture\",\n    \"detail\": \"Extensions of LaTeX picture drawing\",\n    \"documentation\": \"https://ctan.org/pkg/xpicture\"\n  },\n  \"xpinyin\": {\n    \"command\": \"xpinyin\",\n    \"detail\": \"Automatically add pinyin to Chinese characters\",\n    \"documentation\": \"https://ctan.org/pkg/xpinyin\"\n  },\n  \"xprintlen\": {\n    \"command\": \"xprintlen\",\n    \"detail\": \"Print TeX lengths in a variety of units\",\n    \"documentation\": \"https://ctan.org/pkg/xprintlen\"\n  },\n  \"xpunctuate\": {\n    \"command\": \"xpunctuate\",\n    \"detail\": \"Process trailing punctuation which may be redundant\",\n    \"documentation\": \"https://ctan.org/pkg/xpunctuate\"\n  },\n  \"xq\": {\n    \"command\": \"xq\",\n    \"detail\": \"Support for writing about xiangqi\",\n    \"documentation\": \"https://ctan.org/pkg/xq\"\n  },\n  \"xr\": {\n    \"command\": \"xr\",\n    \"detail\": \"References to other LaTeX documents\",\n    \"documentation\": \"https://ctan.org/pkg/xr\"\n  },\n  \"xr-hyper\": {\n    \"command\": \"xr-hyper\",\n    \"detail\": \"Inter-document hyper-references\",\n    \"documentation\": \"https://ctan.org/pkg/xr-hyper\"\n  },\n  \"xsavebox\": {\n    \"command\": \"xsavebox\",\n    \"detail\": \"Saveboxes for repeating content without code replication, based on PDF Form XObjects\",\n    \"documentation\": \"https://ctan.org/pkg/xsavebox\"\n  },\n  \"xsim\": {\n    \"command\": \"xsim\",\n    \"detail\": \"eXercise Sheets IMproved\",\n    \"documentation\": \"https://ctan.org/pkg/xsim\"\n  },\n  \"xskak\": {\n    \"command\": \"xskak\",\n    \"detail\": \"An extension to the skak package for chess typesetting\",\n    \"documentation\": \"https://ctan.org/pkg/xskak\"\n  },\n  \"xspace\": {\n    \"command\": \"xspace\",\n    \"detail\": \"Define commands that appear not to eat spaces\",\n    \"documentation\": \"https://ctan.org/pkg/xspace\"\n  },\n  \"xstring\": {\n    \"command\": \"xstring\",\n    \"detail\": \"String manipulation for (La)TeX\",\n    \"documentation\": \"https://ctan.org/pkg/xstring\"\n  },\n  \"xtab\": {\n    \"command\": \"xtab\",\n    \"detail\": \"Break tables across pages\",\n    \"documentation\": \"https://ctan.org/pkg/xtab\"\n  },\n  \"xtemplate\": {\n    \"command\": \"xtemplate\",\n    \"detail\": \"A high-level interface for declaring document commands\",\n    \"documentation\": \"https://ctan.org/pkg/xtemplate\"\n  },\n  \"xunicode\": {\n    \"command\": \"xunicode\",\n    \"detail\": \"Generate Unicode characters from accented glyphs\",\n    \"documentation\": \"https://ctan.org/pkg/xunicode\"\n  },\n  \"xurl\": {\n    \"command\": \"xurl\",\n    \"detail\": \"Allow URL breaks at any alphanumerical character\",\n    \"documentation\": \"https://ctan.org/pkg/xurl\"\n  },\n  \"xwatermark\": {\n    \"command\": \"xwatermark\",\n    \"detail\": \"Graphics and text watermarks on selected pages\",\n    \"documentation\": \"https://ctan.org/pkg/xwatermark\"\n  },\n  \"xyling\": {\n    \"command\": \"xyling\",\n    \"detail\": \"Draw syntactic trees, etc., for linguistics literature, using xy-pic\",\n    \"documentation\": \"https://ctan.org/pkg/xyling\"\n  },\n  \"xymtex\": {\n    \"command\": \"xymtex\",\n    \"detail\": \"Typesetting chemical structures\",\n    \"documentation\": \"https://ctan.org/pkg/xymtex\"\n  },\n  \"xypic\": {\n    \"command\": \"xypic\",\n    \"detail\": \"Flexible diagramming macros\",\n    \"documentation\": \"https://ctan.org/pkg/xypic\"\n  },\n  \"xytree\": {\n    \"command\": \"xytree\",\n    \"detail\": \"Tree macros using XY-Pic\",\n    \"documentation\": \"https://ctan.org/pkg/xytree\"\n  },\n  \"yagusylo\": {\n    \"command\": \"yagusylo\",\n    \"detail\": \"A symbol loader\",\n    \"documentation\": \"https://ctan.org/pkg/yagusylo\"\n  },\n  \"yax\": {\n    \"command\": \"yax\",\n    \"detail\": \"Yet Another Key System\",\n    \"documentation\": \"https://ctan.org/pkg/yax\"\n  },\n  \"ydoc\": {\n    \"command\": \"ydoc\",\n    \"detail\": \"Macros for documentation of LaTeX classes and packages\",\n    \"documentation\": \"https://ctan.org/pkg/ydoc\"\n  },\n  \"yfonts\": {\n    \"command\": \"yfonts\",\n    \"detail\": \"Support for old German fonts\",\n    \"documentation\": \"https://ctan.org/pkg/yfonts\"\n  },\n  \"yhmath\": {\n    \"command\": \"yhmath\",\n    \"detail\": \"Extended maths fonts for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/yhmath\"\n  },\n  \"young\": {\n    \"command\": \"young\",\n    \"detail\": \"Young tableaux\",\n    \"documentation\": \"https://ctan.org/pkg/young\"\n  },\n  \"youngtab\": {\n    \"command\": \"youngtab\",\n    \"detail\": \"Typeset Young-Tableaux\",\n    \"documentation\": \"https://ctan.org/pkg/youngtab\"\n  },\n  \"yplan\": {\n    \"command\": \"yplan\",\n    \"detail\": \"Daily planner type calendar\",\n    \"documentation\": \"https://ctan.org/pkg/yplan\"\n  },\n  \"yquant\": {\n    \"command\": \"yquant\",\n    \"detail\": \"Typesetting quantum circuits in a human-readable language\",\n    \"documentation\": \"https://ctan.org/pkg/yquant\"\n  },\n  \"ytableau\": {\n    \"command\": \"ytableau\",\n    \"detail\": \"Many-featured Young tableaux and Young diagrams\",\n    \"documentation\": \"https://ctan.org/pkg/ytableau\"\n  },\n  \"zahl2string\": {\n    \"command\": \"zahl2string\",\n    \"detail\": \"Format numbers as German words\",\n    \"documentation\": \"https://ctan.org/pkg/zahl2string\"\n  },\n  \"zebra-goodies\": {\n    \"command\": \"zebra-goodies\",\n    \"detail\": \"A collection of handy macros for paper writing\",\n    \"documentation\": \"https://ctan.org/pkg/zebra-goodies\"\n  },\n  \"zed-csp\": {\n    \"command\": \"zed-csp\",\n    \"detail\": \"Typesetting Z and CSP format specifications\",\n    \"documentation\": \"https://ctan.org/pkg/zed-csp\"\n  },\n  \"zhlineskip\": {\n    \"command\": \"zhlineskip\",\n    \"detail\": \"Line spacing for CJK documents\",\n    \"documentation\": \"https://ctan.org/pkg/zhlineskip\"\n  },\n  \"zhlipsum\": {\n    \"command\": \"zhlipsum\",\n    \"detail\": \"Chinese dummy text\",\n    \"documentation\": \"https://ctan.org/pkg/zhlipsum\"\n  },\n  \"zhnumber\": {\n    \"command\": \"zhnumber\",\n    \"detail\": \"Typeset Chinese representations of numbers\",\n    \"documentation\": \"https://ctan.org/pkg/zhnumber\"\n  },\n  \"zhspacing\": {\n    \"command\": \"zhspacing\",\n    \"detail\": \"Spacing for mixed CJK-English documents in XeTeX\",\n    \"documentation\": \"https://ctan.org/pkg/zhspacing\"\n  },\n  \"ziffer\": {\n    \"command\": \"ziffer\",\n    \"detail\": \"Conversion of punctuation in maths mode\",\n    \"documentation\": \"https://ctan.org/pkg/ziffer\"\n  },\n  \"zlmtt\": {\n    \"command\": \"zlmtt\",\n    \"detail\": \"Use Latin Modern Typewriter fonts\",\n    \"documentation\": \"https://ctan.org/pkg/zlmtt\"\n  },\n  \"zref\": {\n    \"command\": \"zref\",\n    \"detail\": \"A new reference scheme for LaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/zref\"\n  },\n  \"zwgetfdate\": {\n    \"command\": \"zwgetfdate\",\n    \"detail\": \"Get package or file date\",\n    \"documentation\": \"https://ctan.org/pkg/zwgetfdate\"\n  },\n  \"zwpagelayout\": {\n    \"command\": \"zwpagelayout\",\n    \"detail\": \"Page layout and crop-marks\",\n    \"documentation\": \"https://ctan.org/pkg/zwpagelayout\"\n  },\n  \"zxjafbfont\": {\n    \"command\": \"zxjafbfont\",\n    \"detail\": \"Fallback CJK font support for xeCJK\",\n    \"documentation\": \"https://ctan.org/pkg/zxjafbfont\"\n  },\n  \"zxjafont\": {\n    \"command\": \"zxjafont\",\n    \"detail\": \"Set up Japanese font families for XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/zxjafont\"\n  },\n  \"zxjatype\": {\n    \"command\": \"zxjatype\",\n    \"detail\": \"Standard conforming typesetting of Japanese, for XeLaTeX\",\n    \"documentation\": \"https://ctan.org/pkg/zxjatype\"\n  }\n}"
  },
  {
    "path": "data/packages/abntcite.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonline{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthoronline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthoronline{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"leftovercite\"\n    },\n    {\n      \"name\": \"rightovercite\"\n    },\n    {\n      \"name\": \"citeoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"bibtextitlecommand\"\n    },\n    {\n      \"name\": \"bibtextitlecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibtextitlecommand{${1:entry}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/acro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareAcronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcronym{${1:id}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RenewAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acap{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acap[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acap*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acap*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acap{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acap[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acap*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acap*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iaca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iaca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iaca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iaca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iaca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iaca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iaca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iaca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iaca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iaca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iaca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iaca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iaca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iaca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iaca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iaca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\acsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acrodotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acbarrier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbrdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aciftrailing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aciftrailing{${1:list of token names}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acuse{${1:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"acuseall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acreset{${1:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"acresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrotranslate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrotranslate{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acswitchoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acswitchon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetupAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupNextAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupNextAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupNextAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetupNextAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroTemplateType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroTemplateName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrolistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrowrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrowrite{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"acroformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroformat{${1:type}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"acroshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroshow{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"acroifTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifT{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanT{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallTF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallT{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyTF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyT{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagTF{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagT{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagF{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"AcroPropertiesMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroPropertiesMap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroAcronymsMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroAcronymsMap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcronymID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroMapBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroPropertiesSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroPropertiesSet{${1:id}}{${2:list of properties}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acrogroupcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroifchapterTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifchapterT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifchapterF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acropages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acropages{${1:first}}{${2:range}}\"\n      }\n    },\n    {\n      \"name\": \"acronopagerange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroneedpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropagefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymsmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymsmap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapTF{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapT{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapF{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"AcronymTable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroAddRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroAddRow{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroNeedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroNeedPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"AcroRerun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAcroEnding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAcroEnding{${1:name}}{${2:short default}}{${3:long default}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroArticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroArticle{${1:name}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroTranslation{${1:key%plain}}{${2:language-translation list}}\"\n      }\n    },\n    {\n      \"name\": \"AddAcroTranslations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddAcroTranslations{${1:key%plain}}{${2:language-translation list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcroProperty{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroProperty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcroProperty*{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroPropertyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroPropertyAlias{${1:name1%specialDef}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAcroPropertyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAcroPropertyAlias{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"NewAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"UseAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseAcroTemplate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"UseAcroTemplate[${2:type}]{${1:name}}[${3:argument number}]\"\n      }\n    },\n    {\n      \"name\": \"acrocite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrodonotuse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroplural\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroindefinite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroupper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrofull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroModule{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"AcroModuleEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroStyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AcroMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroMap{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroloadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroloadstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"acsimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acsimple{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfootnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acgobbletrail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrofield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrofield{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroprintfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroprintfield{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroiffieldTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyfieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroifanyfieldTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallfieldsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroifallfieldsTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagefieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpagefieldTF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyTF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acshow{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acshow[${2:options}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acroendfootnote\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/acro#c\": [\n      \"upgrade\"\n    ],\n    \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\": [\n      \"short={${1:text}}\",\n      \"long={${1:text}}\",\n      \"alt={${1:text}}\",\n      \"extra={${1:text}}\",\n      \"foreign={${1:text}}\",\n      \"long-post={${1:text}}\",\n      \"post={${1:text}}\",\n      \"sort={${1:text}}\",\n      \"tag={${1:csv list}}\",\n      \"before-citation={${1:csv list}}\",\n      \"index-sort={${1:text}}\",\n      \"short-plural={${1:text}}\",\n      \"short-plural-form={${1:text}}\",\n      \"long-plural={${1:text}}\",\n      \"long-plural-form={${1:text}}\",\n      \"alt-plural={${1:text}}\",\n      \"alt-plural-form={${1:text}}\",\n      \"foreign-plural={${1:text}}\",\n      \"foreign-plural-form={${1:text}}\",\n      \"plural={${1:text}}\",\n      \"plural-form={${1:text}}\",\n      \"short-indefinite={${1:text}}\",\n      \"long-indefinite={${1:text}}\",\n      \"alt-indefinite={${1:text}}\",\n      \"pdfstring=${1:string}\",\n      \"pdfcomment={${1:text}}\",\n      \"short-acc={${1:text}}\",\n      \"long-acc={${1:text}}\",\n      \"alt-acc={${1:text}}\",\n      \"foreign-acc={${1:text}}\",\n      \"foreign-acc-plural-form={${1:text}}\",\n      \"extra-acc={${1:text}}\",\n      \"single-acc={${1:text}}\",\n      \"list-acc={${1:text}}\",\n      \"list={${1:text}}\",\n      \"foreign-babel=${1:language}\",\n      \"foreign-locale=${1:language}\",\n      \"preset=${1:set name}\",\n      \"uselist={${1:csv list of ids}}\"\n    ],\n    \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\": [\n      \"case-sensitive\",\n      \"case-insensitive\",\n      \"first-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"subsequent-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single={${1:text}}\",\n      \"use-id-as-short\",\n      \"cite=[${1:prenote}][${2:postnote}]{${3:citation keys}}\",\n      \"index={${1:text}}\",\n      \"index-sort={${1:text}}\",\n      \"no-index\",\n      \"format={${1:code}}\",\n      \"short-format={${1:code}}\",\n      \"long-format={${1:code}}\",\n      \"first-long-format={${1:code}}\",\n      \"alt-format={${1:code}}\",\n      \"extra-format={${1:code}}\",\n      \"foreign-format={${1:code}}\",\n      \"single-format={${1:code}}\",\n      \"list-format={${1:code}}\",\n      \"%acroproperty\"\n    ],\n    \"\\\\printacronyms#c\": [\n      \"template=${1|description,lof,longtable,supertabular,tabularray,tabular,toc,xltabular|}\",\n      \"sort\",\n      \"display=${1|all,used|}\",\n      \"exclude={${1:csv list of tags}}\",\n      \"include={${1:csv list of tags}}\",\n      \"add\",\n      \"heading=${1|none,section,section*,chapter,chapter*|}\",\n      \"name={${1:text}}\",\n      \"preamble={${1:text}}\",\n      \"locale/display\",\n      \"local\",\n      \"pages={${1:keyvals}}\"\n    ],\n    \"\\\\acsetup#c\": [\n      \"case-sensitive\",\n      \"case-insensitive\",\n      \"use-id-as-short\",\n      \"first-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"subsequent-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single\",\n      \"single-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"list/template=${1|description,tabular,longtable,supertabular,lof,toc|}\",\n      \"list/sort\",\n      \"list/display=${1|all,used|}\",\n      \"list/exclude={${1:csv list of tags}}\",\n      \"list/include={${1:csv list of tags}}\",\n      \"list/add\",\n      \"list/heading=${1|none,section,section*,chapter,chapter*|}\",\n      \"list/name={${1:text}}\",\n      \"list/preamble={${1:text}}\",\n      \"list/locale/display\",\n      \"list/local\",\n      \"list/foreign/display\",\n      \"pages/display=${1|first,all,none|}\",\n      \"pages/seq/use=${1|true,false|}\",\n      \"pages/seq/pre={${1:code}}\",\n      \"pages/seq/threshold=${1:number}\",\n      \"pages/fill={${1:code}}\",\n      \"pages/name\",\n      \"format={${1:code}}\",\n      \"format/short={${1:code}}\",\n      \"format/long={${1:code}}\",\n      \"format/first-long={${1:code}}\",\n      \"format/alt={${1:code}}\",\n      \"format/extra={${1:code}}\",\n      \"format/foreign={${1:code}}\",\n      \"format/list={${1:code}}\",\n      \"format/replace\",\n      \"short-plural-ending={${1:text}}\",\n      \"long-plural-ending={${1:text}}\",\n      \"foreign/display\",\n      \"locale/display\",\n      \"locale/format={${1:code}}\",\n      \"uppercase/first\",\n      \"uppercase/title\",\n      \"uppercase/all\",\n      \"uppercase/none\",\n      \"uppercase/cmd={${1:commands}}\",\n      \"uppercase/short\",\n      \"cite/cmd={${1:citation command}}\",\n      \"cite/group\",\n      \"cite/display=${1|first,all,none|}\",\n      \"cite/pre={${1:text}}\",\n      \"cite/group/cmd={${1:citation command}}\",\n      \"cite/group/pre={${1:text}}\",\n      \"index/use=${1|true,false,indexed|}\",\n      \"index/cmd={${1:index command}}\",\n      \"index/disable={${1:code}}\",\n      \"index/clear\",\n      \"barriers/use\",\n      \"barriers/reset\",\n      \"barriers/single\",\n      \"trailing/define=${1:token}{${2:name}}\",\n      \"trailing/activate={${1:list of token names}}\",\n      \"trailing/deactivate={${1:list of token names}}\",\n      \"make-links\",\n      \"link-only-first\",\n      \"pdfcomments/use\",\n      \"pdfcomments/cmd={${1:code}}\",\n      \"accsupp/use\",\n      \"accsupp/options={${1:accsupp options}}\",\n      \"accsupp/method={${1:method}}\",\n      \"language=\",\n      \"patch/floats\",\n      \"patch/list\",\n      \"patch/tabularx\",\n      \"patch/ltxtable\",\n      \"patch/tabu\",\n      \"patch/caption\",\n      \"patch/maketitle\",\n      \"load-style=${1:name}\",\n      \"templates/colspec={${1:value}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/acro#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/acronym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"relsize\",\n      \"if\": \"smaller\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acffont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acffont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acfi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfi*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfi*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfi*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfi*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfi[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfi[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfi{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfi{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfip[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfip{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfip[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfip{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfip*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfip*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfip*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfip*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfia[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfia[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfia{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfia{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfpa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfpa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfpa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfpa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfsfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfsfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclabelfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclabelfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acresetall\"\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acro{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acro{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acrodef{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrodef{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrodefindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acrodefplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrodefplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acroextra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroextra{${1:additional info}}\"\n      }\n    },\n    {\n      \"name\": \"acroindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"acroplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acroplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acroplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acspa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acspa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acspa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acspa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acused{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newacro{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newacro{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"newacroindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacroindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"newacroplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newacroplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"newacroplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newacroplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acronym\"\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/acronym#c\": [\n      \"footnote\",\n      \"nohyperlinks\",\n      \"noforwardlinks\",\n      \"noacroprefix\",\n      \"printonlyused\",\n      \"printonlyreused\",\n      \"withpage\",\n      \"smaller\",\n      \"dua\",\n      \"nolist\",\n      \"nolinebreak\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/acronym#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/afterpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"afterpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterpage{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addboxcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addboxcontents{${1:contents}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/algorithm2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tocbibind\",\n      \"if\": \"dotocloa\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"endfloat\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"slide\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listofalgorithmes\",\n      \"if\": \"algo2e\"\n    },\n    {\n      \"name\": \"thepostalgo\",\n      \"if\": \"endfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlgorithmName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetAlgorithmName{${1:name}}{${2:autoref name}}{${3:listofalgorithms name}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoProcName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoProcName{${1:name}}{${2:autoref name}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoFuncName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoFuncName{${1:name}}{${2:autoref name}}\"\n      }\n    },\n    {\n      \"name\": \"DontPrintSemicolon\"\n    },\n    {\n      \"name\": \"PrintSemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlankLine\"\n    },\n    {\n      \"name\": \"SetStartEndCondition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetStartEndCondition{${1:typo1}}{${2:typo2}}{${3:typo3}}\"\n      }\n    },\n    {\n      \"name\": \"AlgoDisplayBlockMarkers\"\n    },\n    {\n      \"name\": \"AlgoDontDisplayBlockMarkers\"\n    },\n    {\n      \"name\": \"AlgoDisplayGroupMarkers\"\n    },\n    {\n      \"name\": \"AlgoDontDisplayGroupMarkers\"\n    },\n    {\n      \"name\": \"SetAlgoBlockMarkers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoBlockMarkers{${1:begin keywords}}{${2:end keywords}}\"\n      }\n    },\n    {\n      \"name\": \"listofalgorithms\"\n    },\n    {\n      \"name\": \"TitleOfAlgo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitleOfAlgo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoRefName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoRefName{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoRefRelativeSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoRefRelativeSize{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoCaptionSeparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoCaptionSeparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"SetCustomAlgoRuledWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCustomAlgoRuledWidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlCapSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapHSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapHSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetTitleSty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTitleSty{${1:type style}}{${2:type size}}\"\n      }\n    },\n    {\n      \"name\": \"TitleSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitleSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoCaptionOfAlgo\"\n    },\n    {\n      \"name\": \"RestoreCaptionOfAlgo\"\n    },\n    {\n      \"name\": \"SetAlgoCaptionLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoCaptionLayout{${1:style csname}}\"\n      }\n    },\n    {\n      \"name\": \"theAlgoLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinesNumbered\"\n    },\n    {\n      \"name\": \"LinesNumberedHidden\"\n    },\n    {\n      \"name\": \"LinesNotNumbered\"\n    },\n    {\n      \"name\": \"nllabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nllabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nlset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlset{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lnlset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lnlset{${1:text%plain}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"ShowLn\"\n    },\n    {\n      \"name\": \"ShowLnLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowLnLabel{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SetNlSty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetNlSty{${1:font csname}}{${2:text before}}{${3:text after}}\"\n      }\n    },\n    {\n      \"name\": \"SetNlSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetNlSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoNlRelativeSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoNlRelativeSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AlFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FuncSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FuncSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FuncArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FuncArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DataSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DataSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CommentSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NlSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NlSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcNameSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcNameSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcArgFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlockMarkersSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlockMarkersSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlCapSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapNameSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlCapNameSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlCapNameFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcNameFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcArgFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlTitleSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlTitleSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlTitleFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetKwSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetFuncSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFuncSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetFuncArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFuncArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetDataSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDataSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetCommentSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCommentSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcNameSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcNameSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockMarkersSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockMarkersSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapNameFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapNameFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlTitleFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlTitleFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapNameSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapNameSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlTitleSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlTitleSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcNameFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcNameFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcArgFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcArgFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"RestyleAlgo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestyleAlgo{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\RestyleAlgo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetAlgoVlined\"\n    },\n    {\n      \"name\": \"SetAlgoNoLine\"\n    },\n    {\n      \"name\": \"SetAlgoLined\"\n    },\n    {\n      \"name\": \"SetAlgoLongEnd\"\n    },\n    {\n      \"name\": \"SetAlgoShortEnd\"\n    },\n    {\n      \"name\": \"SetAlgoNoEnd\"\n    },\n    {\n      \"name\": \"SetInd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetInd{${1:before space%l}}{${2:after space%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoHangIndent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoHangIndent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetVlineSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetVlineSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoSkip{${1:skip csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoInsideSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoInsideSkip{${1:skip csname}}\"\n      }\n    },\n    {\n      \"name\": \"algomargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IncMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DecMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DecMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"interspacetitleruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interspacealgoruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interspacetitleboxruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetSideCommentLeft\"\n    },\n    {\n      \"name\": \"SetSideCommentRight\"\n    },\n    {\n      \"name\": \"SetFillComment\"\n    },\n    {\n      \"name\": \"SetNoFillComment\"\n    },\n    {\n      \"name\": \"KwIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIn{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwOut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwOut{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"KwData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwData{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwHData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwHData{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwResult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwResult{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"KwTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRet{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Return\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Return{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Begin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Begin{${1:block inside}}\"\n      }\n    },\n    {\n      \"name\": \"Begin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Begin(${2:begin comment}){${1:block inside}}\"\n      }\n    },\n    {\n      \"name\": \"tcc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcc{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcc*{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcc*[${2:alignment}]{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcp{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcp*{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcp*[${2:alignment}]{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"If{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"If(${3:then comment}){${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uIf{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"uIf(${3:then comment}){${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lIf{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"lIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lIf(${3:if comment}){${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"ElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ElseIf{${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"ElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ElseIf(${2:elseif comment}){${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uElseIf{${1:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uElseIf(${2:elseif comment}){${1:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lElseIf{${1:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"lElseif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lElseif(${2:elseif line}){${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"Else\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Else{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Else\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Else(${2:else comment}){${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uElse{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uElse(${2:else block comment}){${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lElse{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"lElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lElse(${2:else comment}){${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eIf{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}(){}\",\n        \"snippet\": \"eIf(${4:then comment}){${1:condition}}{${2:then block}}(${5:else comment}){${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"eIf(${4:then comment}){${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}(){}\",\n        \"snippet\": \"eIf{${1:condition}}{${2:then block}}(${4:else comment}){${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"leIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leIf{${1:condition}}{${2:then line}}{${3:else line}}\"\n      }\n    },\n    {\n      \"name\": \"leIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"leIf(${4:comment}){${1:condition}}{${2:then line}}{${3:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Switch(${3:switch comment}){${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Switch{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Case{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Case(${3:case comment}){${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCase{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"uCase(${3:case comment}){${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCase{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"lCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lCase(${3:case comment}){${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"Other\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Other{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"Other\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Other(${2:other comment}){${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"uOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOther{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"uOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uOther(${2:other comment}){${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"lOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOther{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"lOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lOther(${2:other comment}){${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"For\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"For{${1:condition}}{${2:for block}}\"\n      }\n    },\n    {\n      \"name\": \"For\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"For(${3:for comment}){${1:condition}}{${2:for block}}\"\n      }\n    },\n    {\n      \"name\": \"lFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFor{${1:condition}}{${2:for line}}\"\n      }\n    },\n    {\n      \"name\": \"lFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lFor(${3:for comment}){${1:condition}}{${2:for line}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"While{${1:condition}}{${2:while block}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"While(${3:while comment}){${1:condition}}{${2:while block}}\"\n      }\n    },\n    {\n      \"name\": \"lWhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWhile{${1:condition}}{${2:while line}}\"\n      }\n    },\n    {\n      \"name\": \"lWhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lWhile(${3:while comment}){${1:condition}}{${2:while line}}\"\n      }\n    },\n    {\n      \"name\": \"ForPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForPar{${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForPar(${3:foreach comment}){${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEach{${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForEach(${3:foreach comment}){${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"lForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lForEach{${1:condition}}{${2:foreach line}}\"\n      }\n    },\n    {\n      \"name\": \"lForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lForEach(${3:foreach comment}){${1:condition}}{${2:foreach line}}\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForAll{${1:condition}}{${2:forall block}}\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForAll(${3:forall comment}){${1:condition}}{${2:forall block}}\"\n      }\n    },\n    {\n      \"name\": \"lForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lForAll{${1:condition}}{${2:forall line}}\"\n      }\n    },\n    {\n      \"name\": \"lForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lForAll(${3:forall comment}){${1:condition}}{${2:forall line}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeat{${1:end condition}}{${2:repeat block}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}()\",\n        \"snippet\": \"Repeat(${3:repeat comment}){${1:end condition}}{${2:repeat block}}(${4:until comment})\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Repeat(${3:repeat comment}){${1:end condition}}{${2:repeat block}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"Repeat{${1:end condition}}{${2:repeat block}}(${3:until comment})\"\n      }\n    },\n    {\n      \"name\": \"lRepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepeat{${1:end condition}}{${2:repeat line}}\"\n      }\n    },\n    {\n      \"name\": \"lRepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lRepeat(${3:repeat comment}){${1:end condition}}{${2:repeat line}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwInput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwInput{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwInOut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwInOut{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ResetInOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetInOut{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKw{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwHangingKw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwHangingKw{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwData\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwData{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwArray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwArray{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwBlock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwBlock{${1:csname}}{${2:begin text}}{${3:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwProg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetKwProg{${1:csname}}{${2:name}}{${3:begin text}}{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwFunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwFunction{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwComment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwComment{${1:csname}}{${2:begin text}}{${3:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwIF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetKwIF{${1:if csname}}{${2:elseif csname}}{${3:else csname}}{${4:if text}}{${5:then text}}{${6:elseif text}}{${7:else text}}{${8:endif text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwSwitch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetKwSwitch{${1:switch csname}}{${2:case csname}}{${3:other csname}}{${4:switch text}}{${5:do text}}{${6:case text}}{${7:other text}}{${8:endcase text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetKwFor{${1:csname}}{${2:for text}}{${3:do text}}{${4:endfor text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwRepeat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwRepeat{${1:csname}}{${2:repeat text}}{${3:until text}}\"\n      }\n    },\n    {\n      \"name\": \"HDonnees\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HDonnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Donnees\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Donnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Res\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Res{${1:résultats}}\"\n      }\n    },\n    {\n      \"name\": \"Entree\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entree{${1:entrées}}\"\n      }\n    },\n    {\n      \"name\": \"Sortie\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sortie{${1:sorties}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Retour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retour{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"Deb\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deb{${1:intérieur du bloc}}\"\n      }\n    },\n    {\n      \"name\": \"Repeter\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeter{${1:condition d’arrêt}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Si\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Si{${1:condition}}{${2:bloc du alors}}\"\n      }\n    },\n    {\n      \"name\": \"eSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSi{${1:condition}}{${2:bloc du alors}}{${3:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSi{${1:condition}}{${2:bloc du alors sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSi{${1:condition}}{${2:ligne du alors}}\"\n      }\n    },\n    {\n      \"name\": \"SinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SinonSi{${1:condition}}{${2:bloc du sinonsi}}\"\n      }\n    },\n    {\n      \"name\": \"uSinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"Sinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sinon{${1:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSinon{${1:bloc du sinon sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSinon{${1:ligne du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"Suivant\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Suivant{${1:condition}}{${2:bloc du suivant-cas-alors}}\"\n      }\n    },\n    {\n      \"name\": \"Cas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cas{${1:cas où}}{${2:bloc de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"uCas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCas{${1:cas où}}{${2:bloc de ce cas sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lCas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCas{${1:cas où}}{${2:ligne de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"Autre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"lAutre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAutre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"Pour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pour{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPour{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourPar\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourPar{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourPar\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourPar{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourCh\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourCh{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourCh\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourCh{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourTous\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourTous{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourTous\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourTous{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Tq\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tq{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lTq\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lTq{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"HDonnees\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HDonnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Donnees\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Donnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Res\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Res{${1:résultats}}\"\n      }\n    },\n    {\n      \"name\": \"Entree\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entree{${1:entrées}}\"\n      }\n    },\n    {\n      \"name\": \"Sortie\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sortie{${1:sorties}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Retour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retour{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"Deb\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deb{${1:intérieur du bloc}}\"\n      }\n    },\n    {\n      \"name\": \"Repeter\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeter{${1:condition d’arrêt}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Si\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Si{${1:condition}}{${2:bloc du alors}}\"\n      }\n    },\n    {\n      \"name\": \"eSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSi{${1:condition}}{${2:bloc du alors}}{${3:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSi{${1:condition}}{${2:bloc du alors sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSi{${1:condition}}{${2:ligne du alors}}\"\n      }\n    },\n    {\n      \"name\": \"SinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SinonSi{${1:condition}}{${2:bloc du sinonsi}}\"\n      }\n    },\n    {\n      \"name\": \"uSinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"Sinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sinon{${1:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSinon{${1:bloc du sinon sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSinon{${1:ligne du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"Suivant\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Suivant{${1:condition}}{${2:bloc du suivant-cas-alors}}\"\n      }\n    },\n    {\n      \"name\": \"Cas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cas{${1:cas où}}{${2:bloc de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"uCas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCas{${1:cas où}}{${2:bloc de ce cas sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lCas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCas{${1:cas où}}{${2:ligne de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"Autre\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"lAutre\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAutre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"Pour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pour{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPour{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourPar\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourPar{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourPar\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourPar{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourCh\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourCh{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourCh\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourCh{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourTous\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourTous{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourTous\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourTous{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Tq\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tq{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lTq\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lTq{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Ein\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ein{${1:Eingabe}}\"\n      }\n    },\n    {\n      \"name\": \"Aus\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aus{${1:Ausgabe}}\"\n      }\n    },\n    {\n      \"name\": \"Daten\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Daten{${1:Daten}}\"\n      }\n    },\n    {\n      \"name\": \"Ergebnis\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ergebnis{${1:Ergebnis}}\"\n      }\n    },\n    {\n      \"name\": \"Bis\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bis{${1:bis}}\"\n      }\n    },\n    {\n      \"name\": \"KwZurueck\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwZurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Zurueck\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Beginn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beginn{${1:Beginn}}\"\n      }\n    },\n    {\n      \"name\": \"Wiederh\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wiederh{${1:stop condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lWiederh\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWiederh{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eWenn{${1:condition}}{${2:then text}}{${3:else text}}\"\n      }\n    },\n    {\n      \"name\": \"Wenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wenn{${1:condition}}{${2:then text}}\"\n      }\n    },\n    {\n      \"name\": \"uWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uWenn{${1:condition}}{${2:then text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWenn{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"SonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SonstWenn{${1:condition}}{${2:elseif text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSonstWenn{${1:condition}}{${2:elseif text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSonstWenn{${1:condition}}{${2:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"Sonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sonst{${1:else text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSonst{${1:else text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSonst{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Unterscheide\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterscheide{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Fall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"uFall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uFall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lFall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFall{${1:case of}}{${2:line text}}\"\n      }\n    },\n    {\n      \"name\": \"Anderes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anderes{${1:default text}}\"\n      }\n    },\n    {\n      \"name\": \"lAnderes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAnderes{${1:default line}}\"\n      }\n    },\n    {\n      \"name\": \"Fuer\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fuer{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuer\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuer{${1:condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"FuerPar\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerPar{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerPar\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerPar{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerJedes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerJedes{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerJedes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerJedes{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerAlle\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerAlle{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerAlle\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerAlle{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Solange\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Solange{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lSolange\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSolange{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Ein\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ein{${1:Eingabe}}\"\n      }\n    },\n    {\n      \"name\": \"Aus\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aus{${1:Ausgabe}}\"\n      }\n    },\n    {\n      \"name\": \"Daten\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Daten{${1:Daten}}\"\n      }\n    },\n    {\n      \"name\": \"Ergebnis\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ergebnis{${1:Ergebnis}}\"\n      }\n    },\n    {\n      \"name\": \"Bis\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bis{${1:bis}}\"\n      }\n    },\n    {\n      \"name\": \"KwZurueck\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwZurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Zurueck\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Beginn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beginn{${1:Beginn}}\"\n      }\n    },\n    {\n      \"name\": \"Wiederh\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wiederh{${1:stop condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lWiederh\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWiederh{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eWenn{${1:condition}}{${2:then text}}{${3:else text}}\"\n      }\n    },\n    {\n      \"name\": \"Wenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wenn{${1:condition}}{${2:then text}}\"\n      }\n    },\n    {\n      \"name\": \"uWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uWenn{${1:condition}}{${2:then text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWenn{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"SonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SonstWenn{${1:condition}}{${2:elseif text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSonstWenn{${1:condition}}{${2:elseif text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSonstWenn{${1:condition}}{${2:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"Sonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sonst{${1:else text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSonst{${1:else text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSonst{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Unterscheide\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterscheide{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Fall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"uFall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uFall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lFall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFall{${1:case of}}{${2:line text}}\"\n      }\n    },\n    {\n      \"name\": \"Anderes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anderes{${1:default text}}\"\n      }\n    },\n    {\n      \"name\": \"lAnderes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAnderes{${1:default line}}\"\n      }\n    },\n    {\n      \"name\": \"Fuer\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fuer{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuer\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuer{${1:condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"FuerPar\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerPar{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerPar\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerPar{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerJedes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerJedes{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerJedes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerJedes{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerAlle\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerAlle{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerAlle\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerAlle{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Solange\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Solange{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lSolange\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSolange{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Vst\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vyst\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vyst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vysl\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vysl{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vst\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vyst\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vyst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vysl\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vysl{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Saida\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Saida{${1:Saída}}\"\n      }\n    },\n    {\n      \"name\": \"Dados\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dados{${1:Dados}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Ate\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRetorna\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRetorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Retorna\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Repita\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repita{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRepita\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepita{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSe{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Se\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Se{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSe{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSe{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Senao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Senao{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSenao{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lSenao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSenao{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"SenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SenaoSe{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSenaoSe{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSenaoSe{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Selec\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Selec{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:a case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCaso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCaso{${1:a case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:a case}}{${2:case’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Outro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Outro{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOutro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOutro{${1:otherwise’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPar\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPar\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Enqto\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lEnqto\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Saida\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Saida{${1:Saída}}\"\n      }\n    },\n    {\n      \"name\": \"Dados\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dados{${1:Dados}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Ate\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRetorna\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRetorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Retorna\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Repita\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repita{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRepita\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepita{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSe{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Se\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Se{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSe{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSe{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Senao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Senao{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSenao{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lSenao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSenao{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"SenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SenaoSe{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSenaoSe{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSenaoSe{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Selec\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Selec{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:a case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCaso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCaso{${1:a case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:a case}}{${2:case’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Outro\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Outro{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOutro\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOutro{${1:otherwise’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPar\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPar\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Enqto\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lEnqto\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwIng\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIng{${1:Ingresso}}\"\n      }\n    },\n    {\n      \"name\": \"KwUsc\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUsc{${1:Uscita}}\"\n      }\n    },\n    {\n      \"name\": \"KwDati\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDati{${1:Dati}}\"\n      }\n    },\n    {\n      \"name\": \"KwRisult\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRisult{${1:Risultato}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"italiano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRitorna\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRitorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Ritorna\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ritorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Inizio\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inizio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ripeti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ripeti{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRipeti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRipeti{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSea{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Sea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sea{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSea{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSea{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"AltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AltSe{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uAltSe{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lAltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAltSe{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Altrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Altrimenti{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAltrimenti{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAltrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAltrimenti{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Per\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Per{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPer\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPer{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerPar\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerPar\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerCiascun\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerCiascun{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerCiascun\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerCiascun{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerTutti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerTutti{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerTutti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerTutti{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Finche\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Finche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFinche\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFinche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwIng\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIng{${1:Ingresso}}\"\n      }\n    },\n    {\n      \"name\": \"KwUsc\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUsc{${1:Uscita}}\"\n      }\n    },\n    {\n      \"name\": \"KwDati\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDati{${1:Dati}}\"\n      }\n    },\n    {\n      \"name\": \"KwRisult\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRisult{${1:Risultato}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"italianokw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRitorna\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRitorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Ritorna\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ritorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Inizio\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inizio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ripeti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ripeti{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRipeti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRipeti{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSea{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Sea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sea{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSea{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSea{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"AltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AltSe{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uAltSe{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lAltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAltSe{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Altrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Altrimenti{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAltrimenti{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAltrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAltrimenti{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Per\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Per{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPer\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPer{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerPar\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerPar\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerCiascun\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerCiascun{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerCiascun\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerCiascun{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerTutti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerTutti{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerTutti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerTutti{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Finche\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Finche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFinche\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFinche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Datos\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datos{${1:Datos}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Salida\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salida{${1:Salida}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwDevolver\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDevolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Devolver\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Devolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"eSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSSi{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"SSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSi{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSSi{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSSi{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uEnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnOtroCasoSi{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnOtroCaso{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uEnOtroCaso{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lEnOtroCaso{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Seleccionar\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Seleccionar{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uSeleccionar\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSeleccionar{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:seleccionar}}{${2:caso line}}\"\n      }\n    },\n    {\n      \"name\": \"Otro\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Otro{${1:sinó block}}\"\n      }\n    },\n    {\n      \"name\": \"lOtro\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOtro{${1:sinó line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPara{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"EnParalelo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnParalelo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnParalelo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnParalelo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Mientras\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mientras{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lMientras\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lMientras{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Repetir\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repetir{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lRepetir\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepetir{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"Datos\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datos{${1:Datos}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Salida\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salida{${1:Salida}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwDevolver\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDevolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Devolver\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Devolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"eSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSSi{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"SSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSi{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSSi{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSSi{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uEnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnOtroCasoSi{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnOtroCaso{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uEnOtroCaso{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lEnOtroCaso{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Seleccionar\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Seleccionar{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uSeleccionar\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSeleccionar{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:seleccionar}}{${2:caso line}}\"\n      }\n    },\n    {\n      \"name\": \"Otro\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Otro{${1:sinó block}}\"\n      }\n    },\n    {\n      \"name\": \"lOtro\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOtro{${1:sinó line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPara{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"EnParalelo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnParalelo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnParalelo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnParalelo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Mientras\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mientras{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lMientras\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lMientras{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Repetir\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repetir{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lRepetir\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepetir{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwUlaz\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwIzlaz\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIzlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwPodatci\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwPodatci{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwRezultat\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRezultat{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwDo\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwVrati\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrati\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pocetak\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pocetak{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ponavljaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ponavljaj{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPonavljaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPonavljaj{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eAko{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Ako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ako{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAko{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAko{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"InaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uInaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uInaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lInaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lInaceAko{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"Inace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inace{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uInace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uInace{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lInace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lInace{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Granaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Granaj{${1:condition}}{${2:Seleccionar caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uGranaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uGranaj{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Slucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Slucaj{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uSlucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSlucaj{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSlucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSlucaj{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"OstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OstaliSlucajevi{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOstaliSlucajevi{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"uOstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOstaliSlucajevi{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"Za\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Za{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZa\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZa{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaPar\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaPar{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaPar\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaPar{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaki\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaki{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaki\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaki{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaku\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaku{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaku\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaku{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvako{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvako{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSve\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSve{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSve\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSve{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Dok\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dok{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lDok\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lDok{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"KwUlaz\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwIzlaz\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIzlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwPodatci\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwPodatci{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwRezultat\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRezultat{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwDo\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwVrati\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrati\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pocetak\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pocetak{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ponavljaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ponavljaj{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPonavljaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPonavljaj{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eAko{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Ako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ako{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAko{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAko{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"InaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uInaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uInaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lInaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lInaceAko{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"Inace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inace{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uInace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uInace{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lInace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lInace{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Granaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Granaj{${1:condition}}{${2:Seleccionar caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uGranaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uGranaj{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Slucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Slucaj{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uSlucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSlucaj{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSlucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSlucaj{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"OstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OstaliSlucajevi{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOstaliSlucajevi{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"uOstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOstaliSlucajevi{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"Za\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Za{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZa\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZa{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaPar\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaPar{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaPar\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaPar{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaki\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaki{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaki\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaki{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaku\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaku{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaku\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaku{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvako{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvako{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSve\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSve{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSve\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSve{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Dok\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dok{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lDok\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lDok{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"algocfautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocffuncautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocfprocautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoendfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoheightrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoheightruledefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlgoLineautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmcflinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmcfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algotitleheightrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algotitleheightruledefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"functionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hlne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Indentp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Indentp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Indmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Indpp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inoutindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inoutsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InOutSizeDefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listalgorithmcfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofalgocfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"next\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"procedureautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetEndCharOfAlgoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetEndCharOfAlgoLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setLeftLinesNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetNothing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setRightLinesNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipalgocfslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiphlne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiptext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiptotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"test\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocfline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocfproc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocffunc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocfproc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHAlgoLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vespace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm2e\",\n      \"if\": \"algo2e\"\n    },\n    {\n      \"name\": \"algorithm2e\",\n      \"if\": \"algo2e\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"if\": \"algo2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"if\": \"algo2e\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"function\"\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"function*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"function*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"procedure\"\n    },\n    {\n      \"name\": \"procedure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"procedure*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"procedure*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algomathdisplay\"\n    },\n    {\n      \"name\": \"algocf*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocf*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/algorithm2e#c\": [\n      \"algo2e\",\n      \"algochapter\",\n      \"algonl\",\n      \"algopart\",\n      \"algoruled\",\n      \"algosection\",\n      \"boxed\",\n      \"boxruled\",\n      \"commentsnumbered\",\n      \"croatian\",\n      \"croatiankw\",\n      \"czech\",\n      \"czechkw\",\n      \"displayblockmarkers\",\n      \"displaygroupmarkers\",\n      \"dotocloa\",\n      \"endfloat\",\n      \"english\",\n      \"englishkw\",\n      \"figure\",\n      \"fillcomment\",\n      \"french\",\n      \"frenchkw\",\n      \"german\",\n      \"germankw\",\n      \"hangingcomment\",\n      \"hanginginout\",\n      \"inoutnumbered\",\n      \"italiano\",\n      \"italianokw\",\n      \"lined\",\n      \"linesnumbered\",\n      \"linesnumberedhidden\",\n      \"longend\",\n      \"ngerman\",\n      \"ngermankw\",\n      \"noalgohanging\",\n      \"noend\",\n      \"nofillcomment\",\n      \"nokwfunc\",\n      \"noline\",\n      \"norelsize\",\n      \"noresetcount\",\n      \"nosemicolon\",\n      \"oldcommands\",\n      \"onelanguage\",\n      \"plain\",\n      \"plainruled\",\n      \"portuguese\",\n      \"portuguesekw\",\n      \"procnumbered\",\n      \"resetcount\",\n      \"rightnl\",\n      \"ruled\",\n      \"scleft\",\n      \"shortend\",\n      \"slide\",\n      \"slovak\",\n      \"slovakkw\",\n      \"spanish\",\n      \"spanishkw\",\n      \"sright\",\n      \"titlenotnumbered\",\n      \"titlenumbered\",\n      \"turkish\",\n      \"turkishkw\",\n      \"tworuled\",\n      \"vlined\"\n    ],\n    \"\\\\RestyleAlgo\": [\n      \"plain\",\n      \"plainruled\",\n      \"boxed\",\n      \"ruled\",\n      \"algoruled\",\n      \"boxruled\",\n      \"tworuled\"\n    ],\n    \"\\\\tcc*,\\\\tcp*\": [\n      \"r\",\n      \"l\",\n      \"h\",\n      \"f\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algorithm2e#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/allrunes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bar\",\n      \"detail\": \" ̄\",\n      \"doc\": \"Macron\"\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"dot\",\n      \"detail\": \" ̇\",\n      \"doc\": \"\\\\dot (wrisym), dot above\"\n    },\n    {\n      \"name\": \"doublebar\"\n    },\n    {\n      \"name\": \"doublecross\"\n    },\n    {\n      \"name\": \"doubledot\"\n    },\n    {\n      \"name\": \"doubleeye\"\n    },\n    {\n      \"name\": \"doubleplus\",\n      \"detail\": \"⧺\",\n      \"doc\": \"Double plus\"\n    },\n    {\n      \"name\": \"eye\"\n    },\n    {\n      \"name\": \"pentdot\"\n    },\n    {\n      \"name\": \"penteye\"\n    },\n    {\n      \"name\": \"plus\",\n      \"detail\": \"+\",\n      \"doc\": \"Plus sign\"\n    },\n    {\n      \"name\": \"quaddot\"\n    },\n    {\n      \"name\": \"quadeye\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"triplebar\"\n    },\n    {\n      \"name\": \"triplecross\"\n    },\n    {\n      \"name\": \"tripledot\"\n    },\n    {\n      \"name\": \"tripleeye\"\n    },\n    {\n      \"name\": \"tripleplus\",\n      \"detail\": \"⧻\",\n      \"doc\": \"Triple plus\"\n    },\n    {\n      \"name\": \"a\"\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"adot\"\n    },\n    {\n      \"name\": \"arlaug\"\n    },\n    {\n      \"name\": \"belgthor\"\n    },\n    {\n      \"name\": \"d\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"ea\"\n    },\n    {\n      \"name\": \"ey\"\n    },\n    {\n      \"name\": \"g\"\n    },\n    {\n      \"name\": \"G\"\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ING\"\n    },\n    {\n      \"name\": \"ing\"\n    },\n    {\n      \"name\": \"Ing\"\n    },\n    {\n      \"name\": \"j\"\n    },\n    {\n      \"name\": \"k\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"lbar\"\n    },\n    {\n      \"name\": \"ldot\"\n    },\n    {\n      \"name\": \"lflag\"\n    },\n    {\n      \"name\": \"lring\"\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"n\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"ndot\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"oo\"\n    },\n    {\n      \"name\": \"oO\"\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"Pdots\"\n    },\n    {\n      \"name\": \"q\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"rdot\"\n    },\n    {\n      \"name\": \"rex\"\n    },\n    {\n      \"name\": \"RR\"\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"seight\"\n    },\n    {\n      \"name\": \"sfive\"\n    },\n    {\n      \"name\": \"sfour\"\n    },\n    {\n      \"name\": \"sseven\"\n    },\n    {\n      \"name\": \"ssix\"\n    },\n    {\n      \"name\": \"stan\"\n    },\n    {\n      \"name\": \"STAN\"\n    },\n    {\n      \"name\": \"sthree\"\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"tbar\"\n    },\n    {\n      \"name\": \"tdot\"\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"tflag\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"thth\"\n    },\n    {\n      \"name\": \"tring\"\n    },\n    {\n      \"name\": \"tvimadur\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"X\"\n    },\n    {\n      \"name\": \"y\"\n    },\n    {\n      \"name\": \"Y\"\n    },\n    {\n      \"name\": \"z\"\n    },\n    {\n      \"name\": \"textarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arcfamily\"\n    },\n    {\n      \"name\": \"textara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textara{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arafamily\"\n    },\n    {\n      \"name\": \"textarn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arnfamily\"\n    },\n    {\n      \"name\": \"textart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"artfamily\"\n    },\n    {\n      \"name\": \"textarl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arlfamily\"\n    },\n    {\n      \"name\": \"textarm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armfamily\"\n    },\n    {\n      \"name\": \"bfseries\"\n    },\n    {\n      \"name\": \"mdseries\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfseries\"\n    },\n    {\n      \"name\": \"textwil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwil{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"withlines\"\n    },\n    {\n      \"name\": \"textwol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"withoutlines\"\n    },\n    {\n      \"name\": \"textst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"straighttwigs\"\n    },\n    {\n      \"name\": \"textcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"curvedtwigs\"\n    },\n    {\n      \"name\": \"textro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"roundedtwigs\"\n    },\n    {\n      \"name\": \"texthi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hightwigs\"\n    },\n    {\n      \"name\": \"textlo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lowtwigs\"\n    },\n    {\n      \"name\": \"hflip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hflip{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"vflip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vflip{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turn{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShapeWithSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareFontShapeWithSizes{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}\"\n      }\n    },\n    {\n      \"name\": \"lfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rodefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rwdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareRuneSeparators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRuneSeparators{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"artdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arndefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aradefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/amsbsy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boldsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"pmb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmb{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/amsfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/amsmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"amsopn\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allowdisplaybreaks\"\n    },\n    {\n      \"name\": \"allowdisplaybreaks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"allowdisplaybreaks[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"And\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"binom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"boxed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxed{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"cfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cfrac[${3:align}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"cfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"dbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"displaybreak\"\n    },\n    {\n      \"name\": \"displaybreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"displaybreak[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"DOTSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOTSI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOTSX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsb\"\n    },\n    {\n      \"name\": \"dotsc\"\n    },\n    {\n      \"name\": \"dotsi\"\n    },\n    {\n      \"name\": \"dotsm\"\n    },\n    {\n      \"name\": \"dotso\"\n    },\n    {\n      \"name\": \"endmathdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endmathdisplay{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"eqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"genfrac\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"genfrac{${1:left-delim}}{${2:right-delim}}{${3:thickness%l}}{${4:mathstyle}}{${5:numerator}}{${6:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"hdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hdotsfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hdotsfor{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"hdotsfor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hdotsfor[${2:multiplier}]{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"impliedby\"\n    },\n    {\n      \"name\": \"implies\"\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:word or phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftroot{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lvert\"\n    },\n    {\n      \"name\": \"lVert\"\n    },\n    {\n      \"name\": \"mathdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdisplay{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"mintagsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minalignsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mod\"\n    },\n    {\n      \"name\": \"mspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspace{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"MultiIntegral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MultiIntegral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"multlinegap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multlinetaggap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakdash\"\n    },\n    {\n      \"name\": \"notag\"\n    },\n    {\n      \"name\": \"numberwithin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numberwithin{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"numberwithin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numberwithin[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"overset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"overset{${1:superscript}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"overunderset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"overunderset{${1:superscript}}{${2:subscript}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"pod\"\n    },\n    {\n      \"name\": \"raisetag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raisetag{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"rvert\"\n    },\n    {\n      \"name\": \"rVert\"\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sideset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sideset{${1:left}}{${2:right}}{${3:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smash{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smash[${2:valign}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"substack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"substack{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"tag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tag*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"tfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"theparentequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"underset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"underset{${1:subscript}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"uproot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uproot{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"veqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"veqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"xleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightarrow{${1:superscript}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"align\"\n    },\n    {\n      \"name\": \"align*\"\n    },\n    {\n      \"name\": \"alignat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"aligned\"\n    },\n    {\n      \"name\": \"aligned\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment}]\"\n      }\n    },\n    {\n      \"name\": \"alignedat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"bmatrix\"\n    },\n    {\n      \"name\": \"Bmatrix\"\n    },\n    {\n      \"name\": \"cases\"\n    },\n    {\n      \"name\": \"equation*\"\n    },\n    {\n      \"name\": \"flalign\"\n    },\n    {\n      \"name\": \"flalign*\"\n    },\n    {\n      \"name\": \"gather\"\n    },\n    {\n      \"name\": \"gather*\"\n    },\n    {\n      \"name\": \"gathered\"\n    },\n    {\n      \"name\": \"gathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment}]\"\n      }\n    },\n    {\n      \"name\": \"matrix\"\n    },\n    {\n      \"name\": \"multline\"\n    },\n    {\n      \"name\": \"multline*\"\n    },\n    {\n      \"name\": \"pmatrix\"\n    },\n    {\n      \"name\": \"smallmatrix\"\n    },\n    {\n      \"name\": \"split\"\n    },\n    {\n      \"name\": \"subarray\"\n    },\n    {\n      \"name\": \"subarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:align}}\"\n      }\n    },\n    {\n      \"name\": \"subequations\"\n    },\n    {\n      \"name\": \"vmatrix\"\n    },\n    {\n      \"name\": \"Vmatrix\"\n    },\n    {\n      \"name\": \"xalignat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xalignat*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xxalignat\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/amsmath#c\": [\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsmath#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/amsopn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"operatorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatorname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"operatorname*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatorname*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"operatornamewithlimits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatornamewithlimits{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"qopname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"qopname{${1:arg}}{${2:m or o}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathOperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMathOperator{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathOperator*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMathOperator*{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"operatorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"cos\"\n    },\n    {\n      \"name\": \"cosh\"\n    },\n    {\n      \"name\": \"cot\"\n    },\n    {\n      \"name\": \"coth\"\n    },\n    {\n      \"name\": \"csc\"\n    },\n    {\n      \"name\": \"deg\"\n    },\n    {\n      \"name\": \"det\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"exp\"\n    },\n    {\n      \"name\": \"gcd\"\n    },\n    {\n      \"name\": \"hom\"\n    },\n    {\n      \"name\": \"inf\"\n    },\n    {\n      \"name\": \"injlim\"\n    },\n    {\n      \"name\": \"ker\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"lim\"\n    },\n    {\n      \"name\": \"liminf\"\n    },\n    {\n      \"name\": \"limsup\"\n    },\n    {\n      \"name\": \"ln\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"max\"\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"projlim\"\n    },\n    {\n      \"name\": \"sec\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"sinh\"\n    },\n    {\n      \"name\": \"sup\"\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"varinjlim\"\n    },\n    {\n      \"name\": \"varprojlim\"\n    },\n    {\n      \"name\": \"varliminf\"\n    },\n    {\n      \"name\": \"varlimsup\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/amsopn#c\": [\n      \"namelimits\",\n      \"nonamelimits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsopn#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/amssymb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/amsthm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\theoremstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"swapnumbers\"\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:style name%specialDef}}{${2:space above}}{${3:space below}}{${4:body font}}{${5:indent amount}}{${6:head font}}{${7:head punct}}{${8:after head space}}{${9:head spec}}\"\n      }\n    },\n    {\n      \"name\": \"thmname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"qedhere\"\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"proofname\"\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thmhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"swappedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"swappedhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mathqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushQED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pushQED{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"popQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"thmheadnl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\theoremstyle#c\": [\n      \"plain\",\n      \"definition\",\n      \"remark\",\n      \"%theoremstyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/apacite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbibemu\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbibapa\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"indexpackage\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"stdindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"tocindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"emindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"ltxemindex\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"ltxemindex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyear<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"nocitemeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocitemeta{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"masknocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masknocite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"masktext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masktext{${1:masked text%text}}\"\n      }\n    },\n    {\n      \"name\": \"masktext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"masktext[${2:mask-mode text%text}]{${1:masked text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintOrdinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintOrdinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"APACSortNoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACSortNoop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BAstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAastyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefauthstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBCP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBYY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBOQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBCQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPBI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BHBI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCBT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCBL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BDBL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBibCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCnt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"BCntIP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCntIP{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"BCntND\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCntND{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"APACciteatitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACciteatitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACcitebtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACcitebtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACmetastar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliographytypesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onemaskedcitationmsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onemaskedcitationmsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maskedcitationsmsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskedcitationsmsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibmessage \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogrammanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogramandmanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftware\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftwaremanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftwareandmanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibprogramminglanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnodate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOthers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOthersPeriod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcorporate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BEDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAIR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAIRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BVOL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BVOLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BNUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BNUMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BEd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPGS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BUPhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BMTh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BUMTh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOWP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BREPR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAvailFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRetrieved\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRetrieved{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRetrievedFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BMsgPostedTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"bibliographyprenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACmetaprenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACmonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefYear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACrefYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefYearMonthDay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACrefYearMonthDay{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefatitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefatitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefbtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefbtitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefaetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefaetitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefbetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefbetitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACjournalVolNumPages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"APACjournalVolNumPages{${1:journal}}{${2:volume}}{${3:issue number}}{${4:pages}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressPublisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressPublisher{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressInstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressInstitution{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressPublisherEqAuth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressPublisherEqAuth{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressInstitutionEqAuth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressInstitutionEqAuth{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressSchool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressSchool{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACtypeAddressSchool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACtypeAddressSchool{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"APAChowpublished\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACorigED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACorigED{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigEDS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACorigEDS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACrefnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigyearnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACorigyearnote{${1:year}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigjournalnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"APACorigjournalnote{${1:year}}{${2:journal}}{${3:volume}}{${4:issue number}}{${5:pages}}{${6:note}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigbooknote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"APACorigbooknote{${1:year}}{${2:editor}}{${3:title%text}}{${4:edition}}{${5:volume}}{${6:pages}}{${7:address}}{${8:publisher}}{${9:note}}\"\n      }\n    },\n    {\n      \"name\": \"APACbVolEdTR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACbVolEdTR{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACbVolEdTRpgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACbVolEdTRpgs{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"APACstdindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACtocindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACemindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACltxemindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"corporateAX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corporateAX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APACbibcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACbibcite{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACexlab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACexlab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACinsertmetastar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACinsertmetastar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APACrestorebibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibphant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibphant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CardinalNumeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CardinalNumeric{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentBib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definemetaflag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definemetaflag{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makehashmacropar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehashother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcitations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintAX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintBackRefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintBackRefs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"themaskedRefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unmaskcitations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"APACrefauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:date}]\"\n      }\n    },\n    {\n      \"name\": \"APACrefDOI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURLmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefannotation\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/apacite#c\": [\n      \"apaciteclassic\",\n      \"natbibemu\",\n      \"natbibapa\",\n      \"nocitation\",\n      \"mask\",\n      \"unmask\",\n      \"numberedbib\",\n      \"unnumberedbib\",\n      \"sectionbib\",\n      \"nosectionbib\",\n      \"tocbib\",\n      \"notocbib\",\n      \"bibnewpage\",\n      \"nobibnewpage\",\n      \"doi\",\n      \"nodoi\",\n      \"noindex\",\n      \"index\",\n      \"includecorporate\",\n      \"suppresscorporate\",\n      \"indexpackage\",\n      \"noindexpackage\",\n      \"stdindex\",\n      \"tocindex\",\n      \"emindex\",\n      \"ltxemindex\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"apacite\",\n      \"apacitex\",\n      \"apacann\",\n      \"apacannx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/apacite#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/appendix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"appendixpage\"\n    },\n    {\n      \"name\": \"addappheadtotoc\"\n    },\n    {\n      \"name\": \"noappendicestocpagenum\"\n    },\n    {\n      \"name\": \"appendicestocpagenum\"\n    },\n    {\n      \"name\": \"appendixtocname\"\n    },\n    {\n      \"name\": \"appendixpagename\"\n    },\n    {\n      \"name\": \"appendixtocon\"\n    },\n    {\n      \"name\": \"appendixtocoff\"\n    },\n    {\n      \"name\": \"appendixpageon\"\n    },\n    {\n      \"name\": \"appendixpageoff\"\n    },\n    {\n      \"name\": \"appendixtitleon\"\n    },\n    {\n      \"name\": \"appendixtitleoff\"\n    },\n    {\n      \"name\": \"appendixtitletocon\"\n    },\n    {\n      \"name\": \"appendixtitletocoff\"\n    },\n    {\n      \"name\": \"appendixheaderon\"\n    },\n    {\n      \"name\": \"appendixheaderoff\"\n    },\n    {\n      \"name\": \"restoreapp\"\n    },\n    {\n      \"name\": \"setthesection\"\n    },\n    {\n      \"name\": \"setthesubsection\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"subappendices\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/appendix#c\": [\n      \"toc\",\n      \"title\",\n      \"titletoc\",\n      \"header\",\n      \"page\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/appendix#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/array.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\"\n    },\n    {\n      \"name\": \"extrarowheight\"\n    },\n    {\n      \"name\": \"extratabsurround\"\n    },\n    {\n      \"name\": \"firsthline\"\n    },\n    {\n      \"name\": \"lasthline\"\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcolumntype{${1:name%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcolumntype{${1:name%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"showcols\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/attachfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"attachfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noattachfile\"\n    },\n    {\n      \"name\": \"noattachfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noattachfile[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notextattachfile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notextattachfile[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textattachfile{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textattachfile[${3:options%keyvals}]{${1:file}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"attachfilesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfilesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/attachfile#c\": [\n      \"addtopdfcreator=${1:text}\",\n      \"allbordercolors=\",\n      \"allcolors=\",\n      \"anchorcolor=\",\n      \"backref=${1|section,slide,page,none,false|}\",\n      \"baseurl=${1:URL}\",\n      \"bookmarks\",\n      \"bookmarksdepth\",\n      \"bookmarksdepth=${1:number}\",\n      \"bookmarksnumbered\",\n      \"bookmarksopen\",\n      \"bookmarksopenlevel=${1:level}\",\n      \"bookmarkstype=\",\n      \"breaklinks\",\n      \"citebordercolor=\",\n      \"citecolor=\",\n      \"CJKbookmarks\",\n      \"colorlinks\",\n      \"customdriver=${1:file}\",\n      \"debug\",\n      \"destlabel\",\n      \"draft\",\n      \"driverfallback=${1:driver}\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipdfmx-outline-open\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"encap=${1:character}\",\n      \"extension=${1:file ext}\",\n      \"filebordercolor=\",\n      \"filecolor=\",\n      \"final\",\n      \"frenchlinks\",\n      \"hidelinks\",\n      \"hyperfigures\",\n      \"hyperfootnotes\",\n      \"hyperindex\",\n      \"hypertex\",\n      \"hypertexnames\",\n      \"implicit\",\n      \"latex2html\",\n      \"linkbordercolor=\",\n      \"linkcolor=\",\n      \"linkfileprefix=${1:prefix}\",\n      \"linktoc=${1|section,page,all,none|}\",\n      \"linktocpage\",\n      \"localanchorname\",\n      \"menubordercolor=\",\n      \"menucolor=\",\n      \"nativepdf\",\n      \"naturalnames\",\n      \"nesting\",\n      \"ocgcolorlinks\",\n      \"pageanchor\",\n      \"pagebackref\",\n      \"pdfa\",\n      \"pdfauthor=${1:author}\",\n      \"pdfborder=\",\n      \"pdfborderstyle=\",\n      \"pdfcenterwindow\",\n      \"pdfcreationdate=${1:date}\",\n      \"pdfcreator=${1:creator}\",\n      \"pdfdirection=${1|L2R,R2L|}\",\n      \"pdfdisplaydoctitle\",\n      \"pdfduplex\",\n      \"pdfencoding=${1|pdfdoc,unicode,auto|}\",\n      \"pdfescapeform\",\n      \"pdffitwindow\",\n      \"pdfhighlight=${1|/I,/N,/O,/P|}\",\n      \"pdfinfo={${1:info keys}}\",\n      \"pdfkeywords={${1:keyword list}}\",\n      \"pdflang=${1:lang id}\",\n      \"pdflinkmargin=\",\n      \"pdfmark\",\n      \"pdfmenubar\",\n      \"pdfmoddate=${1:date}\",\n      \"pdfnewwindow\",\n      \"pdfnonfullscreenpagemode\",\n      \"pdfnumcopies=${1:integer}\",\n      \"pdfpageduration=\",\n      \"pdfpagelabels\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight|}\",\n      \"pdfpagemode=${1|FullScreen,UseNone,UseOutlines,UseOC,UseAttachments,UseThumbs|}\",\n      \"pdfpagescrop=\",\n      \"pdfpagetransition=${1|Split,Blinds,Box,Wipe,Dissolve,Glitter,R,Fly,Push,Cover,Uncover,Fade|}\",\n      \"pdfpicktraybypdfsize\",\n      \"pdfprintarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintpagerange=\",\n      \"pdfprintscaling=${1|None,AppDefault|}\",\n      \"pdfproducer=${1:producer}\",\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfstartpage=${1:page number}\",\n      \"pdfstartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdftex\",\n      \"pdftitle=${1:title}\",\n      \"pdftoolbar\",\n      \"pdftrapped=${1|True,False,Unknown|}\",\n      \"pdfusetitle\",\n      \"pdfversion=${1:version}\",\n      \"pdfview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfviewarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfviewclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfwindowui\",\n      \"plainpages\",\n      \"ps2pdf\",\n      \"psdextra\",\n      \"raiselinks\",\n      \"runbordercolor=\",\n      \"runcolor=\",\n      \"setpagesize\",\n      \"tex4ht\",\n      \"textures\",\n      \"typexml\",\n      \"unicode\",\n      \"urlbordercolor=\",\n      \"urlcolor=\",\n      \"verbose\",\n      \"vtex\",\n      \"xetex\"\n    ],\n    \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\": [\n      \"appearance\",\n      \"author=${1:text}\",\n      \"color=${1:<red> <green> <blue>}\",\n      \"created=${1:PDF date}\",\n      \"date=${1:PDF date}\",\n      \"description=${1:text}\",\n      \"icon=${1|Graph,Paperclip,PushPin,Tag|}\",\n      \"mimetype=${1:type/subtype}\",\n      \"modified=${1:PDF date}\",\n      \"print\",\n      \"size=${1:integer}\",\n      \"subject=${1:text}\",\n      \"timezone=${1:offset}\",\n      \"zoom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/attachfile#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/babel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=default\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic-r\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-r\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"selectlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignlanguage{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"foreignlanguage[${3:options%keyvals}]{${1:language}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babeltags\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babeltags{${1:tag1=lang1,tag2=lang2,...}}\"\n      }\n    },\n    {\n      \"name\": \"babelensure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelensure{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"babelensure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelensure[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\babelensure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shorthandon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandon{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandoff{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandoff*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandoff*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"useshorthands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useshorthands{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"useshorthands*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useshorthands*{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"defineshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineshorthand{${1:shorthand}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defineshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defineshorthand[${3:lang1,lang2,...}]{${1:shorthand}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"languageshorthands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"languageshorthands{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"babelshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelshorthand{${1:shorthand}}\"\n      }\n    },\n    {\n      \"name\": \"ifbabelshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbabelshorthand{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"textormath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textormath{${1:text code}}{${2:math code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBabelLanguage\",\n      \"if\": \"base\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterBabelLanguage{${1:option_name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelfont{${1:font_family}}{${2:font_name}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"babelfont{${1:font_family}}[${3:font_options%keyvals}]{${2:font_name}}\",\n        \"keys\": [\n          \"\\\\babelfont#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelfont[${3:lang1,lang2,...}]{${1:font_family}}{${2:font_name}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"babelfont[${3:lang1,lang2,...}]{${1:font_family}}[${4:font_options%keyvals}]{${2:font_name}}\",\n        \"keys\": [\n          \"\\\\babelfont#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setlocalecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlocalecaption{${1:language}}{${2:caption_name}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"BabelUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BabelUppercaseMapping{${1:locale-name}}{${2:codepoint}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"BabelLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BabelLowercaseMapping{${1:locale-name}}{${2:codepoint}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"babelprovide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelprovide[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\babelprovide#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localenumeral\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localenumeral{${1:style}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"localecounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localecounter{${1:style}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"localedate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"localedate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"localedate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"localedate[${4:options%keyvals}]{${1:year}}{${2:month}}{${3:day}}\",\n        \"keys\": [\n          \"\\\\localedate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babelcalendar\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"babelcalendar{${1:calendar}}{${2:year-macro%cmd}}{${3:month-macro%cmd}}{${4:day-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"babelcalendar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"babelcalendar[${5:YYYY-MM-DD}]{${1:calendar}}{${2:year-macro%cmd}}{${3:month-macro%cmd}}{${4:day-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"localename\"\n    },\n    {\n      \"name\": \"mainlocalename\"\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguage{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"localeinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeinfo{${1:field%keyvals}}\",\n        \"keys\": [\n          \"\\\\localeinfo#c,\\\\localeinfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localeinfo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeinfo*{${1:field%keyvals}}\",\n        \"keys\": [\n          \"\\\\localeinfo#c,\\\\localeinfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getlocaleproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getlocaleproperty{${1:cmd}}{${2:locale}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"getlocaleproperty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getlocaleproperty*{${1:cmd}}{${2:locale}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"ShowLocaleProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowLocaleProperties{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleForEach{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BabelEnsureInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localeid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphen*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphen*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"babelnullhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelhyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphenation{${1:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelhyphenation[${2:lang1,lang2,...}]{${1:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"babelpatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelpatterns{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"babelpatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelpatterns[${2:lang1,lang2,...}]{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelhyphenmins{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"babelhyphenmins{${1:left}}{${2:right}}[${3:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelhyphenmins[${3:lang1,lang2,...}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"babelhyphenmins[${3:lang1,lang2,...}]{${1:left}}{${2:right}}[${4:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelhyphenmins*{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"babelhyphenmins*{${1:left}}{${2:right}}[${3:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelhyphenmins*[${3:lang1,lang2,...}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"babelhyphenmins*[${3:lang1,lang2,...}]{${1:left}}{${2:right}}[${4:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelposthyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelposthyphenation{${1:hypenrules-name}}{${2:lua-pattern}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"babelposthyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"babelposthyphenation[${4:options%keyvals}]{${1:hypenrules-name}}{${2:lua-pattern}}{${3:replacement}}\",\n        \"keys\": [\n          \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babelprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelprehyphenation{${1:locale-name}}{${2:lua-pattern}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"babelprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"babelprehyphenation[${4:options%keyvals}]{${1:locale-name}}{${2:lua-pattern}}{${3:replacement}}\",\n        \"keys\": [\n          \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enablelocaletransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablelocaletransform{${1:transform%keyvals}}\",\n        \"keys\": [\n          \"\\\\enablelocaletransform,\\\\disablelocaletransform\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"disablelocaletransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablelocaletransform{${1:transform%keyvals}}\",\n        \"keys\": [\n          \"\\\\enablelocaletransform,\\\\disablelocaletransform\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localeprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeprehyphenation{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"babelcharclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelcharclass{${1:locale}}{${2:name}}{${3:char-list}}\"\n      }\n    },\n    {\n      \"name\": \"babelinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"babelinterchar{${1:locale}}{${2:class-first}}{${3:class-second}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"babelinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"babelinterchar[${5:options%keyvals}]{${1:locale}}{${2:class-first}}{${3:class-second}}{${4:code}}\",\n        \"keys\": [\n          \"\\\\babelinterchar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enablelocaleinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablelocaleinterchar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"disablelocaleinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablelocaleinterchar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"IfBabelIntercharT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBabelIntercharT{${1:interchar-list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ensureascii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensureascii{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"asciiencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelsublr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelsublr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localerestoredirs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelPatchSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BabelPatchSection{${1:section-name}}\"\n      }\n    },\n    {\n      \"name\": \"BabelFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BabelFootnote{${1:cmd}}{${2:language}}{${3:before}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"languageattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"languageattribute{${1:language}}{${2:list of attributes}}\"\n      }\n    },\n    {\n      \"name\": \"AddBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddBabelHook{${1:name}}{${2:event}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"AddBabelHook[${4:language}]{${1:name}}{${2:event}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"EnableBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnableBabelHook{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DisableBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableBabelHook{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BabelContentsFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelcharproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelcharproperty{${1:char-code}}{${2:property}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"babelcharproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"babelcharproperty{${1:char-code}}[${4:to-char-code}]{${2:property}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"babeladjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babeladjust{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\babeladjust\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fmtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glqq\"\n    },\n    {\n      \"name\": \"grqq\"\n    },\n    {\n      \"name\": \"glq\"\n    },\n    {\n      \"name\": \"grq\"\n    },\n    {\n      \"name\": \"flqq\"\n    },\n    {\n      \"name\": \"frqq\"\n    },\n    {\n      \"name\": \"flq\"\n    },\n    {\n      \"name\": \"frq\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"umlauthigh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlautlow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latintext\"\n    },\n    {\n      \"name\": \"textlatin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlatin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datealbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"captionsazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"azerbaijanischwa\",\n      \"if\": \"azerbaijani\"\n    },\n    {\n      \"name\": \"Azerbaijanischwa\",\n      \"if\": \"azerbaijani\"\n    },\n    {\n      \"name\": \"captionsbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basquehyphenmins\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresia\",\n      \"if\": \"basque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dieresia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttilde\",\n      \"if\": \"basque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Belarusian\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nad\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nak\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"atcctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"kentan\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"eil\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"re\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"trede\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"pevare\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"vet\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"pempvet\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"captionsbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bulgarian\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"Bul\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectbglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectenglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"weekdaynamebulgarian\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weekdaynamebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abvon\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"abvoff\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxtounicode\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lastJulianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastJulianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstGregorianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstGregorianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"captionscatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalanhyphenmins\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgem\",\n      \"if\": \"catalan\"\n    },\n    {\n      \"name\": \"Lgem\",\n      \"if\": \"catalan\"\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"catalan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresis\",\n      \"if\": \"catalan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dieresis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionscroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"q{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"w\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"w{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"uv\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csprimeson\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"csprimesoff\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"lcaron\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"Lcaron\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"clqq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"crqq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"clq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"crq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"captionsdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchhyphenmins\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afrikaanshyphenmins\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionscanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Esper\",\n      \"if\": \"esperanto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Esper{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"esper\",\n      \"if\": \"esperanto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esper{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hodiau\",\n      \"if\": \"esperanto\"\n    },\n    {\n      \"name\": \"hodiaun\",\n      \"if\": \"esperanto\"\n    },\n    {\n      \"name\": \"captionsestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"estonian\"\n    },\n    {\n      \"name\": \"captionsfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnmarkspace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acadiandate\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acadiandate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"acadiantoday\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnmarkspace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"captionsfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectgalician\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"selectgalician*\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"layoutgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galiciandatedo\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"galiciandatede\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"deactivatetilden\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galiciandeactivate\",\n      \"if\": \"galician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"galiciandeactivate{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"galiciandecimal\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"galiciandecimal{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sptextfont\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"austrian\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"swissgerman\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"naustrian\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"nswissgerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lgrfont\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeralsix\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralSix\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralninety\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralNinety\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelGreekRestoreFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelGreekPreviousFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnsureStandardFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek.polutoniko\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsancientgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasancientgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek.ancient\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tala\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tala{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"grada\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grada{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gradur\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradur{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"upp\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ilqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"irqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ilq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"irq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"iflqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ifrqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ifrq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"iflq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"oob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"Oob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ooob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"OOob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"eeob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"EEob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekurmanjialternate\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"dategdmy\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"januaryname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"februaryname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"marchname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"aprilname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"mayname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"junename\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"julyname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"augustname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"septembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"octobername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"novembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"decembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"captionslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProsodicMarksOn\",\n      \"if\": \"latin\"\n    },\n    {\n      \"name\": \"ProsodicMarksOff\",\n      \"if\": \"latin\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datumaa\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"datums\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"latviangada\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latviantoday\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macedonian\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"macedonian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Mkd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"textoverline\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbarshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbarshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverlineshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverlineshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfItalic\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfItalic{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ondatemagyar\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acite*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"azc\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Azc\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"azp\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azp\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"azr\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azr\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"emitdate[${3:toldalék}]{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emitdate{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"factorial\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"footnotestyle\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotestyle{${1:előírás%keyvals}}\",\n        \"keys\": [\n          \"\\\\footnotestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hang{${1:bekezdéskezdő jel}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headingfootnote[${2:szám}]{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"HuComma\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hunnewlabel\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunumeral\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hunumeral\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"huordinal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Huordinal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"magyarDumpHuMin\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnotable\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeFootnotable{${1:környezet-név}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrk\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrk{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrkAll\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrkAll{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathReal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathReal{${1:képlet tizedestörtekkel%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ondatemagyar\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"refstruc\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstruc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstrucparen\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstrucparen{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SafeToday\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"textqq\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqq{${1:szövegközti idézet%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionshungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrashungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrashungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acite*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"azc\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Azc\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"azp\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azp\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"azr\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azr\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"emitdate[${3:toldalék}]{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emitdate{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"factorial\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"footnotestyle\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotestyle{${1:előírás%keyvals}}\",\n        \"keys\": [\n          \"\\\\footnotestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hang{${1:bekezdéskezdő jel}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headingfootnote[${2:szám}]{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"HuComma\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hunnewlabel\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunumeral\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hunumeral\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"huordinal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Huordinal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"magyarDumpHuMin\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnotable\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeFootnotable{${1:környezet-név}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrk\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrk{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrkAll\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrkAll{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathReal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathReal{${1:képlet tizedestörtekkel%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ondatehungarian\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"refstruc\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstruc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstrucparen\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstrucparen{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SafeToday\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"textqq\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqq{${1:szövegközti idézet%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mongolian\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Mon\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"mongolian\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Useg\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"useg\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nsd\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nsk\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NSD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NSK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"norsk\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"sob\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telepl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"polishrz\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polishzx\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"portuges\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"portuges\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"portuguese\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"portuguese\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"brazil\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"brazil\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"brazilian\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"brazilian\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishrefname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishabstractname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishbibname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishchaptername\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishappendixname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishcontentsname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfigurename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlisttablename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishfigurename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishtablename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpartname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishenclname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishccname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishheadtoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpagename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishseename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishalsoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishproofname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishprefacename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishglossaryname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishdashitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsignitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsymbitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexchars\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishindexchars{${1:encap}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"spanishscroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishlcroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishucroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"Today\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishdate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishDate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishDate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdatedel\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdatede\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishreverseddate\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdatefirst\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdatefirst{${1:día-uno}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdeactivate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdeactivate{${1:caracteres}}\"\n      }\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdecimal\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdecimal{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spanishplainpercent\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"percentsign\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"sen\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"arcsen\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishoperators\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessi\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"selectspanish\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishoptions\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notextspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrassamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrassamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datescottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"today*\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Serbianc\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"serbianc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\",\n      \"if\": \"slovak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"q{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"sq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"uv\",\n      \"if\": \"slovak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lcaron\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcaron\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clqq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"crqq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"clq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"crq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"standardhyphens\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splithyphens\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdatelsorbian\",\n      \"if\": \"lsorbian\"\n    },\n    {\n      \"name\": \"olddatelsorbian\",\n      \"if\": \"lsorbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdatelowersorbian\",\n      \"if\": \"lowersorbian\"\n    },\n    {\n      \"name\": \"olddatelowersorbian\",\n      \"if\": \"lowersorbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdateusorbian\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"olddateusorbian\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdateuppersorbian\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"olddateuppersorbian\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datethai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaitext\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textthai\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthai{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpali\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpali{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wbr\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thainum\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thainum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaibracenum\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaibracenum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaialph\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaialph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaiAlph\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaiAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textyamakkan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textfongmun\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textangkhankhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textkhomut\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textYoYingPali\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textThoThanPali\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKoKai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhuat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhwai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhon\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoRakhang\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNgoNgu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChang\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSo\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChoe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYoYing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiDoChada\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiToPatak\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoNangmontho\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoPhuthao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNoNen\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiDoDek\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiToTao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThung\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThahan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThong\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNoNu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiBoBaimai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPoPla\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoPhung\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFoFa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoPhan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFoFan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoSamphao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMoMa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYoYak\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiRoRua\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiRu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLoLing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiWoWaen\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSala\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoRusi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSua\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiHoHip\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLoChula\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiOAng\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiHoNokhuk\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPaiyannoi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraA\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiHanakat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAm\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraI\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraIi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUee\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraU\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhinthu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraE\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraO\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimuan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimalai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLakkhangyao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiyamok\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaitaikhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiEk\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiTho\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiTri\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiChattawa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThanthakhat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNikhahit\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYamakkan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFongman\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaizero\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaione\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaitwo\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaithree\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaifour\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaifive\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaisix\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiseven\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaieight\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thainine\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiAngkhankhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhomut\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"captionsthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datethaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKoKai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhuat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhwai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhon\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoRakhang\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNgoNgu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChang\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSo\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChoe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYoYing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiDoChada\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiToPatak\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoNangmontho\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoPhuthao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNoNen\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiDoDek\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiToTao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThung\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThahan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThong\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNoNu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiBoBaimai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPoPla\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoPhung\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFoFa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoPhan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFoFan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoSamphao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMoMa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYoYak\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiRoRua\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiRu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLoLing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiWoWaen\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSala\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoRusi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSua\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiHoHip\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLoChula\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiOAng\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiHoNokhuk\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPaiyannoi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraA\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiHanakat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAm\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraI\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraIi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUee\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraU\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhinthu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"textbaht\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraE\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraO\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimuan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimalai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLakkhangyao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiyamok\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaitaikhu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiEk\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiTho\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiTri\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiChattawa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThanthakhat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNikhahit\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYamakkan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFongman\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaizero\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaione\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaitwo\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaithree\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaifour\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaifive\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaisix\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiseven\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaieight\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thainine\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiAngkhankhu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhomut\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"captionsturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"Ukrainian\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"ukrainian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"captionsukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"viettext\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"viet\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textviet\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textviet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"UHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ABREVE\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datewelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"selectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyphenrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"spanish\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/babel#c\": [\n      \"${1:language}\",\n      \"modifiers.${1:language}=${2:modifiers}\",\n      \"KeepShorthandsActive\",\n      \"activeacute\",\n      \"activegrave\",\n      \"shorthands=${2|${1:chars},off|}\",\n      \"safe=${1|none,ref,bib|}\",\n      \"math=${1|active,normal|}\",\n      \"config=${1:file}\",\n      \"main=${1:language}\",\n      \"headfoot=${1:language}\",\n      \"noconfigs\",\n      \"showlanguages\",\n      \"silent\",\n      \"hyphenmap=${1|off,first,select,other,other*|}\",\n      \"bidi=${1|default,basic,basic-r,bidi-l,bidi-r|}\",\n      \"layout=${1|sectioning,counters,counters*,contents,footnotes,captions,columns,graphics,extras|}\",\n      \"provide=*\",\n      \"provide+=*\",\n      \"provide*=*\",\n      \"base\",\n      \"ensureinfo=off\",\n      \"es-lcroman\",\n      \"es-minimal\",\n      \"es-nodecimaldot\",\n      \"es-noenumerate\",\n      \"es-noindentfirst\",\n      \"es-noitemize\",\n      \"es-nolayout\",\n      \"es-nolists\",\n      \"es-noquoting\",\n      \"es-nosectiondot\",\n      \"es-noshorthands\",\n      \"es-notilde\",\n      \"es-preindex\",\n      \"es-sloppy\",\n      \"es-tabla\",\n      \"es-tilden\",\n      \"es-ucroman\",\n      \"es-uppernames\",\n      \"mexico\",\n      \"mexico-com\"\n    ],\n    \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\": [\n      \"date\",\n      \"captions\"\n    ],\n    \"\\\\babelensure\": [\n      \"include=${1:commands}\",\n      \"exclude=${1:commands}\",\n      \"fontenc=${1:encoding}\"\n    ],\n    \"\\\\babelfont#c\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,SwashOff,Alternate,AlternateOff,WordInitial,WordInitialOff,WordFinal,WordFinalOff,LineFinal,LineFinalOff,Inner,InnerOff,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"Opacity=${1:factor}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,Uppercase,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ],\n    \"\\\\babelprovide#c\": [\n      \"import\",\n      \"import=${1:language tag}\",\n      \"captions=${1:language tag}\",\n      \"hyphenrules=${1:language list}\",\n      \"main\",\n      \"script=${1:script name}\",\n      \"language=${1:language name}\",\n      \"alph=${1:counter}\",\n      \"Alph=${1:counter}\",\n      \"onchar=${1|ids,fonts,letters|}\",\n      \"intraspace=${1:base shrink stretch}\",\n      \"intrapenalty=${1:penalty}\",\n      \"transforms=${1|transliteration.dad,digraphs.ligatures,hyphen.repeat,oneletter.nobreak,prehyphen.nobreak,diaeresis.hyphen,transliteration.omega,sigma.final,transliteration.hk,punctuation.space,digraphs.hyphen,danda.nobreak,letters.noj,letters.uv,transliteration.iast,transliteration.gajica,kashida.plain|}\",\n      \"justification=${1|kashida,elongated,unhyphenated,padding|}\",\n      \"linebreaking=${1|kashida,elongated,unhyphenated,padding|}\",\n      \"mapfont=\",\n      \"maparabic\",\n      \"mapdigits\",\n      \"calendar=${1:calendar}\",\n      \"calendar=${1:calendar}.${2:variant}\",\n      \"casing=${1|yiwn,eszett,iota,nouv,uv|}\",\n      \"interchar=${1:interchar-list}\"\n    ],\n    \"\\\\localedate\": [\n      \"calendar=${1:calendar}\",\n      \"variant=${1:variant}\",\n      \"convert\"\n    ],\n    \"\\\\localeinfo#c,\\\\localeinfo*#c\": [\n      \"name.english\",\n      \"tag.ini\",\n      \"tag.bcp47\",\n      \"language.tag.bcp47\",\n      \"tag.opentype\",\n      \"script.name\",\n      \"script.tag.bcp47\",\n      \"script.tag.opentype\",\n      \"region.tag.bcp47\",\n      \"variant.tag.bcp47\",\n      \"extension.x.tag.bcp47\",\n      \"extension.t.tag.bcp47\",\n      \"extension.u.tag.bcp47\"\n    ],\n    \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\": [\n      \"label=${1|transliteration.dad,digraphs.ligatures,hyphen.repeat,oneletter.nobreak,prehyphen.nobreak,punctuation.space,diaeresis.hyphen,transliteration.omega,sigma.final,transliteration.hk,punctuation.space,digraphs.hyphen,danda.nobreak,letters.noj,letters.uv,transliteration.iast,transliteration.gajica,kashida.plain|}\",\n      \"fonts=${1:tag1 tag2 ...}\",\n      \"attribute=${1:attribute}\"\n    ],\n    \"\\\\enablelocaletransform,\\\\disablelocaletransform\": [\n      \"transliteration.dad\",\n      \"digraphs.ligatures\",\n      \"hyphen.repeat\",\n      \"oneletter.nobreak\",\n      \"prehyphen.nobreak\",\n      \"diaeresis.hyphen\",\n      \"transliteration.omega\",\n      \"sigma.final\",\n      \"transliteration.hk\",\n      \"punctuation.space\",\n      \"digraphs.hyphen\",\n      \"danda.nobreak\",\n      \"letters.noj\",\n      \"letters.uv\",\n      \"transliteration.iast\",\n      \"transliteration.gajica\",\n      \"kashida.plain\"\n    ],\n    \"\\\\babelinterchar\": [\n      \"label=${1:label}\"\n    ],\n    \"\\\\babeladjust\": [\n      \"bidi.mapdigits=${1|on,off|}\",\n      \"bidi.mirroring=${1|on,off|}\",\n      \"bidi.text=${1|on,off|}\",\n      \"bidi.math=${1|on,off|}\",\n      \"linebreak.sea=${1|on,off|}\",\n      \"linebreak.cjk=${1|on,off|}\",\n      \"justify.arabic=${1|on,off|}\",\n      \"layout.tabular=${1|on,off|}\",\n      \"layout.lists=${1|on,off|}\",\n      \"autoload.bcp47=${1|on,off|}\",\n      \"bcp47.toname=${1|on,off|}\",\n      \"autoload.options=\",\n      \"autoload.bcp47.prefix=\",\n      \"autoload.bcp47.options=\",\n      \"prehyphenation.disable=${1|nohyphenation,off|}\",\n      \"select.write=${1|shift,keep,omit|}\",\n      \"select.encoding=${1|off|}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\",\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ],\n    \"\\\\footnotestyle\": [\n      \"reset=${1|none,section,chapter,page,page-resume,page-cont|}\",\n      \"resume\",\n      \"indent=${1|article-nosp,article-sp,hulist|}\",\n      \"rule=${1|none,one-line,fourth,choose|}\",\n      \"marksize=max-normal\",\n      \"mark=${1|arabic,stars,stars-max|}\",\n      \"mpmark=${1|arabic,stars,stars-max|}\",\n      \"plain\",\n      \"huplain\",\n      \"starplain\",\n      \"editor\",\n      \"reset=${1|none,section,chapter,page,page-resume,page-cont|}\",\n      \"resume\",\n      \"indent=${1|article-nosp,article-sp,hulist|}\",\n      \"rule=${1|none,one-line,fourth,choose|}\",\n      \"marksize=max-normal\",\n      \"mark=${1|arabic,stars,stars-max|}\",\n      \"mpmark=${1|arabic,stars,stars-max|}\",\n      \"plain\",\n      \"huplain\",\n      \"starplain\",\n      \"editor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/babel#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/beamerbaseauxtemplates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbaseboxes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseboxes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamerboxesdeclarecolorscheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"beamerboxesdeclarecolorscheme{${1:name}}{${2:upper color}}{${3:lower color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"beamerboxesrounded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:head%text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerboxesrounded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:head%text}}\",\n        \"keys\": [\n          \"\\\\begin{beamerboxesrounded}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{beamerboxesrounded}\": [\n      \"scheme=${1:scheme name}\",\n      \"upper=${1:beamer color}\",\n      \"lower=${1:beamer color}\",\n      \"width=\",\n      \"shadow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasecolor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setbeamercolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamercolor{${1:beamer-color name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercolor,\\\\setbeamercolor*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setbeamercolor*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamercolor*{${1:beamer-color name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercolor,\\\\setbeamercolor*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifbeamercolorempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbeamercolorempty{${1:beamer-color name}}{${2:if undefined}}{${3:if defined}}\"\n      }\n    },\n    {\n      \"name\": \"ifbeamercolorempty\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifbeamercolorempty[${4:fg or bg%keyvals}]{${1:beamer-color name}}{${2:if undefined}}{${3:if defined}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usebeamercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamercolor{${1:beamer-color name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamercolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usebeamercolor[${2:fg or bg%keyvals}]{${1:beamer-color name}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usebeamercolor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamercolor*{${1:beamer-color name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamercolor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usebeamercolor*[${2:fg or bg%keyvals}]{${1:beamer-color name}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"donotcoloroutermaths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"donotcolorouterdisplaymaths\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"beamercolorbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:beamer color}}\"\n      }\n    },\n    {\n      \"name\": \"beamercolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:beamer color}}\",\n        \"keys\": [\n          \"\\\\begin{beamercolorbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamercolor,\\\\setbeamercolor*\": [\n      \"fg=\",\n      \"bg=\",\n      \"parent={${1:parent beamer colors}}\",\n      \"use=${1:beamer color}\"\n    ],\n    \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\": [\n      \"fg\",\n      \"bg\"\n    ],\n    \"\\\\begin{beamercolorbox}\": [\n      \"wd=\",\n      \"dp=\",\n      \"ht=\",\n      \"left\",\n      \"right\",\n      \"center\",\n      \"leftskip=\",\n      \"rightskip=\",\n      \"sep=\",\n      \"colsep=\",\n      \"colsep*=\",\n      \"shadow\",\n      \"rounded\",\n      \"ignorebg\",\n      \"vmode\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasecompatibility.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasefont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"sansmathaccent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setbeamerfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamerfont{${1:beamer-font name}}{${2:attributes%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamerfont,\\\\setbeamerfont*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setbeamerfont*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamerfont*{${1:beamer-font name}}{${2:attributes%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamerfont,\\\\setbeamerfont*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usebeamerfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamerfont{${1:beamer-font name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamerfont*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamerfont*{${1:beamer-font name}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\"\n    },\n    {\n      \"name\": \"TINY\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeamerfont,\\\\setbeamerfont*\": [\n      \"size=${1:size command}\",\n      \"size*={${1:size in pt}}{${2:baselineskip}}\",\n      \"shape=${1:shape command}\",\n      \"shape*={${1:shape attribute abbreviation}}\",\n      \"series=${1:series command}\",\n      \"series*={${1:series attribute abbreviation}}\",\n      \"family=${1:family command}\",\n      \"family*={${1:family name}}\",\n      \"parent={${1:parent list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseframe.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"framelatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framelatex{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"refcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thesubsectionslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcounteronoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetcounteronoverlays{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"resetcountonoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetcountonoverlays{${1:count register}}\"\n      }\n    },\n    {\n      \"name\": \"framewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerclosesubstitutedenvironement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerclosesubstitutedenvironement{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"includeonlyframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeonlyframes{${1:frame label list}}\"\n      }\n    },\n    {\n      \"name\": \"theframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertslidenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertoverlaynumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebreak<overlay specifications>\"\n    },\n    {\n      \"name\": \"nopagebreak<overlay specifications>\"\n    },\n    {\n      \"name\": \"framebreak\"\n    },\n    {\n      \"name\": \"noframebreak\"\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"againframe{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"againframe<overlay specification>{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"againframe<overlay specification>[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"againframe[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"againframe[${2:<default overlay specification>}][${3:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"againframe<overlay specification>[${2:<default overlay specification>}][${3:options}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frame\"\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay specification}>[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay specification}>[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay specification}>[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseframecomponents.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setbeamersize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeamersize{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamersize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"column{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"column[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"column<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"column<overlay specification>[${2:placement%keyvals}]{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"insertfootnotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertfootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnote<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnote<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnote<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnote<overlay specification>[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"columns\"\n    },\n    {\n      \"name\": \"columns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{columns}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"columns\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{columns}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"<>[]{}\",\n        \"snippet\": \"<${3:overlay specification}>[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamersize\": [\n      \"text margin left=\",\n      \"text margin right=\",\n      \"sidebar width left=\",\n      \"sidebar width right=\",\n      \"description width=\",\n      \"description width of=${1:text}\",\n      \"mini frame size=\",\n      \"mini frame offset=\"\n    ],\n    \"\\\\begin{columns}\": [\n      \"b\",\n      \"c\",\n      \"onlytextwidth\",\n      \"t\",\n      \"T\",\n      \"totalwidth=\"\n    ],\n    \"\\\\begin{column},\\\\column\": [\n      \"t\",\n      \"T\",\n      \"c\",\n      \"b\"\n    ],\n    \"\\\\footnote#c\": [\n      \"${1:number}\",\n      \"frame\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseframesize.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"framezoom<button overlay specification><zoomed overlay specification>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"framezoom<button overlay specification><zoomed overlay specification>(${1:upper left x},${2:upper left y})(${3:zoom area width},${4:zoom area depth})\"\n      }\n    },\n    {\n      \"name\": \"framezoom<button overlay specification><zoomed overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"framezoom<button overlay specification><zoomed overlay specification>[${1:options%keyvals}](${2:upper left x},${3:upper left y})(${4:zoom area width},${5:zoom area depth})\"\n      }\n    },\n    {\n      \"name\": \"insertcontinuationcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcontinuationcountroman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcontinuationtext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\framezoom\": [\n      \"border\",\n      \"border=${1:width in pixels}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaselocalstructure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumerate\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frametitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frametitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"frametitle[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frametitle<overlay specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"frametitle<overlay specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"insertframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortframetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortframetitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"framesubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesubtitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"framesubtitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesubtitle<overlay specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"insertframesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"alert<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert<overlay specification>{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"structure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structure{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"structure<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structure<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertblocktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdescriptionitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitem<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibitem<overlay specification>[${2:citation text}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"bibitem<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibitem<overlay specification>{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"insertbiblabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaptionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaptionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaption\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alertenv\"\n    },\n    {\n      \"name\": \"alertenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"structureenv\"\n    },\n    {\n      \"name\": \"structureenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"{${1:title%text}}<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"{${1:title%text}}<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"exampleblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exampleblock\",\n      \"arg\": {\n        \"format\": \"<>{}<>\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}<${3:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"verse\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"quotation\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasemisc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"headcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcommand{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dohead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttotalframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertmainframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partentry{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"slideentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"slideentry{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"sectionentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sectionentry{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includegraphics<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphics<overlay specification>{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphics<overlay specification>[${2:options%keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseimage<overlay specification>{${1:image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfimage<overlay specification>[${2:options%keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfimage<overlay specification>{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\insertshortauthor,\\\\insertshortdate,\\\\insertshortinstitute,\\\\insertshortpart,\\\\insertshorttitle,\\\\insertshortsubtitle,\\\\insertshortframetitle\": [\n      \"respectlinebreaks\",\n      \"width=\",\n      \"center\",\n      \"spill\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasemodes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"beamerbasedecode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mode<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mode<mode specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mode{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mode<mode specification>\"\n    },\n    {\n      \"name\": \"mode*\"\n    },\n    {\n      \"name\": \"includeslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeslide{${1:label name}}\"\n      }\n    },\n    {\n      \"name\": \"includeslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeslide[${2:options%keyvals}]{${1:label name}}\"\n      }\n    },\n    {\n      \"name\": \"setjobnamebeamerversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjobnamebeamerversion{${1:filename without extension%file}}\"\n      }\n    },\n    {\n      \"name\": \"thebeamerpauses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jobnamebeamerversion\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasenavigation.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hyperlinkslideprev<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslideprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslideprev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslideprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslidenext<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslidenext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslidenext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslidenext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestartnext<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestartnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeendprev<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeendprev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"insertframestartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframeendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpresentationstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpresentationendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertappendixstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertappendixendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocumentstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocumentendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertslidenavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertbackfindforwardnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertgotosymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertskipsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertreturnsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"insertbuttontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamergotobutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamergotobutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerskipbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerskipbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerreturnbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerreturnbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"insertnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertverticalnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertverticalnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsubsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertsectionnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsectionnavigationhorizontal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"insertsectionnavigationhorizontal{${1:width}}{${2:left insert}}{${3:right insert}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsectionnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertsubsectionnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsectionnavigationhorizontal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"insertsubsectionnavigationhorizontal{${1:width}}{${2:left insert}}{${3:right insert}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasenotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"note<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note<overlay specification>{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:options%keyvals}]{${1:note text%text}}\",\n        \"keys\": [\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"note[${2:options%keyvals}]<${3:overlay specification}>{${1:note text%text}}\",\n        \"keys\": [\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertslideintonotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertslideintonotes{${1:magnification}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"hide notes\",\n      \"show notes\",\n      \"show notes on second screen\",\n      \"show notes on second screen=${1|left,right,bottom,top|}\",\n      \"show only notes\",\n      \"show only slides with notes\"\n    ],\n    \"\\\\note\": [\n      \"item\",\n      \"itemize\",\n      \"enumerate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseoptions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProcessOptionsBeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteOptionsBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteOptionsBeamer{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOptionBeamer{${1:option}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareOptionBeamer{${1:option}}[${3:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defbeameroption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbeameroption{${1:option%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setbeameroption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeameroption{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeameroption#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"%beameroption\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseoverlay.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"only<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"only<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"only\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"only{${1:text}}<${2:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"only\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"only{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alt<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alt<overlay specification>{${1:default text%text}}{${2:alternative text%text}}\"\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"alt{${1:default text%text}}{${2:alternative text%text}}<${3:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alt{${1:default text%text}}{${2:alternative text%text}}\"\n      }\n    },\n    {\n      \"name\": \"action<action specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"action<action specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"action\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"action{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"temporal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"temporal{${1:before slide text%text}}{${2:default text%text}}{${3:after slide text%text}}\"\n      }\n    },\n    {\n      \"name\": \"temporal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"temporal<overlay specification>{${1:before slide text%text}}{${2:default text%text}}{${3:after slide text%text}}\"\n      }\n    },\n    {\n      \"name\": \"beameroriginal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beameroriginal{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"opaqueness<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opaqueness<overlay specification>{${1:percentage of opaqueness}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamercovered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeamercovered{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercovered\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"pause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pause[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"music\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerpause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onslide\"\n    },\n    {\n      \"name\": \"onslide<overlay specification>\"\n    },\n    {\n      \"name\": \"onslide<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onslide<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"onslide*<overlay specification>\"\n    },\n    {\n      \"name\": \"onslide*<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onslide*<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"item<alert specification>\"\n    },\n    {\n      \"name\": \"item<alert specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"item<alert specification>[${1:item label}]\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"item[${1:item label}]<${2:alert specification}>\"\n      }\n    },\n    {\n      \"name\": \"beamerdefaultoverlayspecification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerdefaultoverlayspecification{${1:default overlay specification}}\"\n      }\n    },\n    {\n      \"name\": \"uncover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uncover{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uncover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uncover<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visible{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visible<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visible<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"invisible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invisible{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"invisible<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invisible<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"color<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"color<overlay specification>{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textbf<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbf<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textit<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textit<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmd<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmd<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnormal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnormal<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrm<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrm<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsc<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsc<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsf<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsf<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsl<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsl<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttt<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttt<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textup<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textup<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hypertarget<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hypertarget<overlay specification>{${1:target name}}{${2:anchor text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlink<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink<overlay specification>{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"emph<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emph<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"transblindshorizontal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindshorizontal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transblindshorizontal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindshorizontal<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transblindsvertical\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindsvertical[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transblindsvertical<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindsvertical<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transboxin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transboxin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transboxout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transboxout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transcover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transcover[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transcover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transcover<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transdissolve\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transdissolve[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transdissolve<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transdissolve<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transfade\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfade[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transfade<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfade<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transglitter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transglitter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transglitter<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transglitter<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transpush\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transpush[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transpush<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transpush<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transreplace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transreplace[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transreplace<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transreplace<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplitverticalin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplitverticalin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplitverticalout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplitverticalout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transuncover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transuncover[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transuncover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transuncover<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transwipe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transwipe[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transwipe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transwipe<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transfly\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfly[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transfly<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfly<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transduration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transduration{${1:number of seconds}}\"\n      }\n    },\n    {\n      \"name\": \"transduration<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transduration<overlay specification>{${1:number of seconds}}\"\n      }\n    },\n    {\n      \"name\": \"animate<overlay specification>\"\n    },\n    {\n      \"name\": \"label<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"label<overlay specification>{${1:key%labeldef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"<>{}{}{}{}\",\n        \"snippet\": \"<${5:overlay specification}>{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}<>\",\n        \"snippet\": \"{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}<${5:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"actionenv\"\n    },\n    {\n      \"name\": \"actionenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"visibleenv\"\n    },\n    {\n      \"name\": \"visibleenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"invisibleenv\"\n    },\n    {\n      \"name\": \"invisibleenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"uncoverenv\"\n    },\n    {\n      \"name\": \"uncoverenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"onlyenv\"\n    },\n    {\n      \"name\": \"onlyenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"overlayarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:area width%l}}{${2:area height%l}}\"\n      }\n    },\n    {\n      \"name\": \"overprint\"\n    },\n    {\n      \"name\": \"overprint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:area width%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamercovered\": [\n      \"invisible\",\n      \"transparent\",\n      \"transparent=${1:opaqueness}\",\n      \"dynamic\",\n      \"highly dynamic\",\n      \"still covered=${1:not yet list}\",\n      \"again covered=${1:once more list}\"\n    ],\n    \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\": [\n      \"direction=${1:degrees}\",\n      \"duration=${1:seconds}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaserequires.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbasecompatibility\"\n    },\n    {\n      \"name\": \"beamerbasefont\"\n    },\n    {\n      \"name\": \"beamerbasetranslator\"\n    },\n    {\n      \"name\": \"beamerbasemisc\"\n    },\n    {\n      \"name\": \"beamerbasetwoscreens\"\n    },\n    {\n      \"name\": \"beamerbaseoverlay\"\n    },\n    {\n      \"name\": \"beamerbasetitle\"\n    },\n    {\n      \"name\": \"beamerbasesection\"\n    },\n    {\n      \"name\": \"beamerbaseframe\"\n    },\n    {\n      \"name\": \"beamerbaseverbatim\"\n    },\n    {\n      \"name\": \"beamerbaseframesize\"\n    },\n    {\n      \"name\": \"beamerbaseframecomponents\"\n    },\n    {\n      \"name\": \"beamerbasecolor\"\n    },\n    {\n      \"name\": \"beamerbasenotes\"\n    },\n    {\n      \"name\": \"beamerbasetoc\"\n    },\n    {\n      \"name\": \"beamerbasetemplates\"\n    },\n    {\n      \"name\": \"beamerbaselocalstructure\"\n    },\n    {\n      \"name\": \"beamerbasenavigation\"\n    },\n    {\n      \"name\": \"beamerbasetheorems\"\n    },\n    {\n      \"name\": \"beamerbasethemes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasesection.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thelecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lecture{${1:lecture name%text}}{${2:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lecture[${3:short lecture name%text}]{${1:lecture name%text}}{${2:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLecture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLecture{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"includeonlylecture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeonlylecture{${1:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"insertlecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertlecturenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortlecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortlecture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortlecture[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"part<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"part<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"part<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"part<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"partlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlinkshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertromanpartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortpart[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"AtBeginPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginPart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"section<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"section<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"section<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"secname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"breakhere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsection<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsection<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsection<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubsection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSubsection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsection<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsection<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsection<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubsubsection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSubsubsection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"appendix<mode specification>\"\n    },\n    {\n      \"name\": \"insertappendixframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenumberinappendix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetemplates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbaseauxtemplates\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usebeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate*{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate**{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate***\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate***{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"expandbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandbeamertemplate{${1:beamer template name}}\"\n      }\n    },\n    {\n      \"name\": \"ifbeamertemplateempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbeamertemplateempty{${1:beamer template name}}{${2:executed if empty}}{${3:executed otherwise}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${5:argument number}][${6:default optional argument}]{${3:predefined text}}[${7:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${5:default optional argument}]{${3:predefined text}}[${6:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}{${3:predefined text}}[${5:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${4:argument number}][${5:default optional argument}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${4:argument number}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${5:argument number}][${6:default optional argument}]{${3:predefined text}}[${7:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${5:default optional argument}]{${3:predefined text}}[${6:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}{${3:predefined text}}[${5:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${4:argument number}][${5:default optional argument}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${4:argument number}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplatealias\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplatealias{${1:element name}}{${2:new predefined option name}}{${3:existing predefined option name}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}[${4:predefined option}]{${2:child template list}}[${5:args}][${6:default}]{${3:arguments for children}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}{${2:child template list}}[${4:args}][${5:default}]{${3:args for children}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}{${2:child template list}}{${3:args for children}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}[${2:predefined option}]\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}[${3:predefined option}]{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"addtobeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtobeamertemplate{${1:element name}}{${2:pre-text%text}}{${3:post-text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasethemes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"usetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetheme{${1:beamertheme}}\"\n      }\n    },\n    {\n      \"name\": \"usetheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usetheme[${2:options%keyvals}]{${1:beamertheme}}\"\n      }\n    },\n    {\n      \"name\": \"usecolortheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolortheme{${1:beamer color theme}}\"\n      }\n    },\n    {\n      \"name\": \"usecolortheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usecolortheme[${2:options%keyvals}]{${1:beamer color theme}}\"\n      }\n    },\n    {\n      \"name\": \"usefonttheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefonttheme{${1:beamer font theme}}\"\n      }\n    },\n    {\n      \"name\": \"usefonttheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usefonttheme[${2:options%keyvals}]{${1:beamer font theme}}\"\n      }\n    },\n    {\n      \"name\": \"useoutertheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useoutertheme{${1:beamer outer theme}}\"\n      }\n    },\n    {\n      \"name\": \"useoutertheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useoutertheme[${2:options%keyvals}]{${1:beamer outer theme}}\"\n      }\n    },\n    {\n      \"name\": \"useinnertheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useinnertheme{${1:beamer inner theme}}\"\n      }\n    },\n    {\n      \"name\": \"useinnertheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useinnertheme[${2:options%keyvals}]{${1:beamer inner theme}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\useinnertheme/rounded\": [\n      \"shadow\"\n    ],\n    \"\\\\useoutertheme/miniframes\": [\n      \"footline=${1|empty,authorinstitute,authortitle,institutetitle,authorinstitutetitle|}\",\n      \"subsection\"\n    ],\n    \"\\\\useoutertheme/smoothbars\": [\n      \"subsection\"\n    ],\n    \"\\\\useoutertheme/sidebar\": [\n      \"height=\",\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"left\",\n      \"right\",\n      \"width=\"\n    ],\n    \"\\\\useoutertheme/tree\": [\n      \"hooks\"\n    ],\n    \"\\\\usecolortheme/structure\": [\n      \"rgb={${1:r,g,b}}\",\n      \"RGB={${1:r,g,b}}\",\n      \"cmyk={${1:c,m,y,k}}\",\n      \"cmy={${1:c,m,y}}\",\n      \"hsb={${1:h,s,b}}\",\n      \"named=\"\n    ],\n    \"\\\\usecolortheme/albatross,\\\\usecolortheme/monarca\": [\n      \"overlystylish\"\n    ],\n    \"\\\\usefonttheme/serif\": [\n      \"stillsansserifmath\",\n      \"stillsansserifsmall\",\n      \"stillsansseriflarge\",\n      \"stillsansseriftext\",\n      \"onlymath\"\n    ],\n    \"\\\\usefonttheme/structurebold,\\\\usefonttheme/structureitalicserif,\\\\usefonttheme/structuresmallcapsserif\": [\n      \"onlysmall\",\n      \"onlylarge\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inserttheoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheorempunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremblockenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremaddition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertproofname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:proof name%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:proof name%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\"\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definitions\"\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"examples\"\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetitle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"partpage\"\n    },\n    {\n      \"name\": \"sectionpage\"\n    },\n    {\n      \"name\": \"subsectionpage\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshorttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshorttitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}]{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortsubtitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:short date}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"insertdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortdate[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author names}]{${1:author names}}\"\n      }\n    },\n    {\n      \"name\": \"insertauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortauthor[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitlegraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:short institute}]{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"insertinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortinstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortinstitute[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertlogo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetoc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inserttocsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsubsection\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tableofcontents\": [\n      \"currentsection\",\n      \"currentsubsection\",\n      \"firstsection=${1:section number}\",\n      \"hideallsubsections\",\n      \"hideothersubsections\",\n      \"lastsection=${1:section number}\",\n      \"part=${1:part number}\",\n      \"pausesections\",\n      \"pausesubsections\",\n      \"sections={${1:overlay specification}}\",\n      \"sectionstyle=${1:current}/${2:other}\",\n      \"subsectionstyle=${1:current}/${2:other in current}/${3:other}\",\n      \"subsubsectionstyle=${1:current}/${2:other in current}/${3:other in other}/${4:other}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetranslator.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translator\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbasetwoscreens.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"previous slide on second screen=${1|left,right,bottom,top|}\",\n      \"second mode text on second screen=${1|left,right,bottom,top|}\",\n      \"always typeset second mode\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/beamerbaseverbatim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"semiverbatim\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/biblatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"logreq\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-ibid\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-numeric\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmnumeric\"\n    },\n    {\n      \"name\": \"ulem\",\n      \"if\": \"style=archaeologie\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=aefkw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=afwl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=amit\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=archa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-apa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=foe\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-halle\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-kreis-neuss\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=karl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=kunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=maja\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpk\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpkoeaw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=niedersachsen\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=nnu\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=offa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=volkskunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaak\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaes\"\n    },\n    {\n      \"name\": \"csquotes\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ay\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ms\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015mx\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-CCNU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-NWAFU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-SEU\"\n    },\n    {\n      \"name\": \"mfirstuc\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=german-legal-book\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=realauthor\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"style=socialscienceshuberlin\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"bibstyle=software\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-author-year\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-bachelor\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-numeric\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=unified\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"biblistname\"\n    },\n    {\n      \"name\": \"BiblatexManualHyperrefOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexManualHyperrefOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteBibliographyOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteBibliographyOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExecuteBibliographyOptions\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExecuteBibliographyOptions[${2:entrytype list}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldannotation{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:field}][${5:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifitemannotation{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}][${5:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}][${5:annotation name}][${6:item}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifpartannotation{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}][${6:annotation name}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}][${6:annotation name}][${7:item}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateannotation{${1:datetype}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ifdateannotation[${5:annotation name}]{${1:datetype}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hasfieldannotation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:field}][${4:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hasitemannotation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}][${4:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}][${4:annotation name}][${5:item}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"haspartannotation{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}][${5:annotation name}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}][${5:annotation name}][${6:item}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hasdateannotation{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"hasdateannotation[${4:annotation name}]{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getfieldannotation[${1:field}]\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getfieldannotation[${1:field}][${2:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getitemannotation[${1:field}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getitemannotation[${1:field}][${2:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"getitemannotation[${1:field}][${2:annotation name}][${3:item}]\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpartannotation{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getpartannotation[${2:field}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"getpartannotation[${2:field}][${3:annotation name}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"getpartannotation[${2:field}][${3:annotation name}][${4:item}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdateannotation{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"getdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getdateannotation[${2:annotation name}]{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"addbibresource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbibresource{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addbibresource\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addbibresource[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addglobalbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addglobalbib{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addglobalbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addglobalbib[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addsectionbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsectionbib{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addsectionbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsectionbib[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbibliography\"\n    },\n    {\n      \"name\": \"printbibliography\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibliography[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbysection\"\n    },\n    {\n      \"name\": \"bibbysection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbysection[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbysegment\"\n    },\n    {\n      \"name\": \"bibbysegment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbysegment[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbycategory\"\n    },\n    {\n      \"name\": \"bibbycategory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbycategory[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbibheading\"\n    },\n    {\n      \"name\": \"printbibheading\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibheading[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibheading\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePrintbibliographyDefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrintbibliographyDefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclarePrintbibliographyDefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbiblist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbiblist{${1:biblist}}\"\n      }\n    },\n    {\n      \"name\": \"printbiblist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printbiblist[${2:options%keyvals}]{${1:biblist}}\",\n        \"keys\": [\n          \"\\\\printbiblist,\\\\printshorthands\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printshorthands\"\n    },\n    {\n      \"name\": \"printshorthands\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printshorthands[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbiblist,\\\\printshorthands\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newrefsection\"\n    },\n    {\n      \"name\": \"newrefsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newrefsection[${1:bib files}]\"\n      }\n    },\n    {\n      \"name\": \"endrefsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newrefsegment\"\n    },\n    {\n      \"name\": \"endrefsegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefsegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBibliographyCategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareBibliographyCategory{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"addtocategory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocategory{${1:category}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"defbibenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"defbibenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}{${4:itemcode}}\"\n      }\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibheading{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defbibheading{${1:name}}[${3:title%text}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defbibnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibnote{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"defbibfilter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibfilter{${1:name}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"defbibcheck\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibcheck{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"skipentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"segment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"segment{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"subtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtype{${1:subtype}}\"\n      }\n    },\n    {\n      \"name\": \"keyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"category\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"category{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRefcontext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRefcontext{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newrefcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newrefcontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newrefcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newrefcontext[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localrefcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localrefcontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"localrefcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"localrefcontext[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endrefcontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assignrefcontextkeyws\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextkeyws[${2:options%keyvals}]{${1:keyword1,keyword2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextkeyws*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextkeyws*[${2:options%keyvals}]{${1:keyword1,keyword2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextcats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextcats[${2:options%keyvals}]{${1:category1,category2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextcats*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextcats*[${2:options%keyvals}]{${1:category1,category2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextentries[${2:options%keyvals}]{${1:entrykey1,entrykey2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextentries*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextentries*[${2:options%keyvals}]{${1:entrykey1,entrykey2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GenRefcontextData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GenRefcontextData{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defbibentryset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibentryset{${1:bibid}}{${2:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Cite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Parencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Parencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Parencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Textcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Textcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Textcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"smartcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smartcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Smartcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Smartcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Smartcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"cites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"cites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"cites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"cites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"cites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Cites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Cites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Cites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Cites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Cites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parencites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"parencites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"parencites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"parencites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"parencites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"parencites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"parencites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Parencites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Parencites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Parencites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Parencites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Parencites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Parencites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Parencites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footcitetexts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footcitetexts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footcitetexts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footcitetexts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footcitetexts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footcitetexts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footcitetexts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smartcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"smartcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"smartcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"smartcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"smartcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"smartcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"smartcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Smartcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Smartcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Smartcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Smartcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Smartcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Smartcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Smartcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"textcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"textcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"textcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"textcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Textcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Textcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Textcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Textcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Textcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Textcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Textcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"supercites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"supercites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"supercites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"supercites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"supercites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"supercites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"supercites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"autocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Autocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Autocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"autocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Autocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Autocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autocites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"autocites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"autocites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"autocites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"autocites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"autocites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"autocites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Autocites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Autocites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Autocites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Autocites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Autocites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Autocites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Autocites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitle*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citetitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citetitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citetitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citetitle*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citetitle*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citetitle*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyear[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyear*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyear*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citedate[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citedate[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citedate{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citedate*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citedate*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citedate*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeurl[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeurl[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeurl{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parentext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parentext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"brackettext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brackettext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"volcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"volcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"volcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Volcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Volcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Volcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Volcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"volcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"volcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"volcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"volcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"volcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"volcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"volcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Volcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Volcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Volcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Volcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Volcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Volcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Volcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"pvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"pvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Pvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Pvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Pvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"pvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"pvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"pvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"pvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Pvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Pvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Pvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Pvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Pvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Pvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Pvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"fvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Fvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Fvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"fvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"fvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"fvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"fvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"fvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"fvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Fvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Fvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Fvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Fvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Fvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Fvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Fvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ftvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ftvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ftvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"ftvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ftvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Ftvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Ftvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Ftvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ftvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"ftvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"ftvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"ftvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"ftvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"ftvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"ftvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ftvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Ftvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Ftvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Ftvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Ftvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Ftvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Ftvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"svolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"svolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"svolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Svolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Svolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Svolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Svolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"svolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"svolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"svolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"svolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"svolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"svolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"svolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Svolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Svolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Svolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Svolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Svolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Svolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Svolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"tvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Tvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Tvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Tvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"tvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"tvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"tvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"tvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"tvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"tvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Tvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Tvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Tvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Tvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Tvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Tvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Tvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"avolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"avolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"avolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"avolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Avolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Avolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Avolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Avolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"avolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"avolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"avolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"avolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"avolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"avolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"avolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Avolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Avolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Avolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Avolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Avolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Avolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Avolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"notecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Notecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Notecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Notecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Pnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citename[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citename[${3:postnote}]{${1:bibid}}[${4:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citename[${3:postnote}]{${1:bibid}}{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citename{${1:bibid}}[${3:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citename{${1:bibid}}{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citelist[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citelist[${3:postnote}]{${1:bibid}}[${4:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citelist[${3:postnote}]{${1:bibid}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citelist{${1:bibid}}[${3:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citelist{${1:bibid}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citefield[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citefield[${3:postnote}]{${1:bibid}}[${4:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citefield[${3:postnote}]{${1:bibid}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citefield{${1:bibid}}[${3:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citefield{${1:bibid}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citereset\"\n    },\n    {\n      \"name\": \"citereset*\"\n    },\n    {\n      \"name\": \"mancite\"\n    },\n    {\n      \"name\": \"pno\"\n    },\n    {\n      \"name\": \"ppno\"\n    },\n    {\n      \"name\": \"nopp\"\n    },\n    {\n      \"name\": \"psq\"\n    },\n    {\n      \"name\": \"psqq\"\n    },\n    {\n      \"name\": \"sqspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RN{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RNfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rn{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Rnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DefineBibliographyStrings\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineBibliographyStrings{${1:language}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"DefineBibliographyExtras\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineBibliographyExtras{${1:language}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UndefineBibliographyExtras\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndefineBibliographyExtras{${1:language}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DefineHyphenationExceptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineHyphenationExceptions{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"NewBibliographyString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewBibliographyString{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryseen{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryinbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryinbib{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrycategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrycategory{${1:entrykey}}{${2:category}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrykeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrykeyword{${1:entrykey}}{${2:keyword}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bibsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citesetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newblockpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newunitpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finentrypunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrysetpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinithyphendelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinitperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinitdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinithyphendelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revsdnamepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelnamepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagerefpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibeidpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multinamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revsdnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andothersdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multilistdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finallistdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andmoredelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiciterangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitesubentrydelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitesubentryrangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"superciterangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitesubentrydelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitesubentryrangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nametitledelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameyeardelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namelabeldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonameyeardelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translatortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelalphaothers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortalphaothers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkvolcitenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkvolcitenote{${1:volume}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"prenotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extpostnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiprenotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multipostnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibcompletenamefamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletenamefamilygiven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletenamegivenfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircadelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateeradelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateuncertainprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddateuncertainprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircaprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddatecircaprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircaprintiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddatecircaprintiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateeraprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateeraprint{${1:yearfield}}\"\n      }\n    },\n    {\n      \"name\": \"dateeraprintpre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareDelimFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDelimFormat[${3:context}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimFormat*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDelimFormat*[${3:context}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimAlias{${1:alias}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareDelimAlias[${3:alias context}]{${1:alias}}[${4:delim context}]{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareDelimAlias*[${3:alias context}]{${1:alias}}[${4:delim context}]{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"printdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdelim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printdelim[${2:context}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"delimcontext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"delimcontext{${1:context}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimcontextAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimcontextAlias{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareDelimcontextAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareDelimcontextAlias{${1:alias}}\"\n      }\n    },\n    {\n      \"name\": \"bibrangedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrangessep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatendsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdatelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdatelong{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdateshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateshort{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibtimezone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibtimezone{${1:timezone}}\"\n      }\n    },\n    {\n      \"name\": \"bibdateuncertain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdateeraprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdateeraendprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibutctimezone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtzminsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatetimesep \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalandcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalandsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordinal{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibmascord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibmascord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfemord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfemord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibneutord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibneutord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibordedition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordedition{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibordseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordseries{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"bibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabbrvpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehighnamepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelownamepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlbigbreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlbreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlnumpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlucpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburllcpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlbigskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlnumskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlucskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburllcskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noligature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnohyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnohyphenation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknumalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknumalph{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibacro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"autocap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocap{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"thesmartand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forceY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceY{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forceDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceDE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibabstractprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibannotationprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifkomabibtotoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifkomabibtotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifkomabibtotocnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifkomabibtotocnumbered{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmemoirbibintoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmemoirbibintoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"RequireBibliographyStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireBibliographyStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"InitializeBibliographyStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitializeBibliographyStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyDriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyDriver{${1:entrytype}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyAlias{${1:alias}}{${2:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareBibliographyOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareBibliographyOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareBibliographyOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTypeOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTypeOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareTypeOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareTypeOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareEntryOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareEntryOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareEntryOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareEntryOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}[${4:datatype}]{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}{${2:key%plain}}[${4:value}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}[${4:datatype}]{${2:key%plain}}[${5:value}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"RequireCitationStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireCitationStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"InitializeCitationStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitializeCitationStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"OnManualCitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OnManualCitation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand{${1:cmd}}{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand{${1:cmd}}[${6:wrapper}]{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand*{${1:cmd}}{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand*{${1:cmd}}[${6:wrapper}]{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMultiCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareMultiCiteCommand{${1:cmd}}{${2:cite}}{${3:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMultiCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareMultiCiteCommand{${1:cmd}}[${4:wrapper}]{${2:cite}}{${3:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAutoCiteCommand{${1:name}}{${2:cite}}{${3:multicite}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareAutoCiteCommand{${1:name}}[${4:position%keyvals}]{${2:cite}}{${3:multicite}}\",\n        \"keys\": [\n          \"\\\\DeclareAutoCiteCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareCitePunctuationPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCitePunctuationPosition{${1:cmd}}{${2:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareCitePunctuationPosition\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeprecateField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateField{${1:field}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateList{${1:list}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateName{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateFieldWithReplacement{${1:field}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListWithReplacement{${1:list}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameWithReplacement{${1:name}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"printfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"printfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printfield[${2:format}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printlist[${2:format}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"printlist[${2:format}][${3:start-stop}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printnames{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printnames[${2:format}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"printnames[${2:format}][${3:start-stop}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtext[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"printfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printfile[${2:format}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdateextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeldateextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeltime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printorigdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printeventdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printurldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printorigtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printeventtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printurltime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"indexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexfield[${2:format}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexlist[${2:format}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexlist[${2:format}][${3:start-stop}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexnames{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexnames[${2:format}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexnames[${2:format}][${3:start-stop}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"entrydata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entrydata{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"entrydata*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entrydata*{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"entryset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entryset{${1:precode}}{${2:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldInputHandler{${1:field}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListInputHandler{${1:list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameInputHandler{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareFieldFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareListFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareNameFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"namepartprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartprefixi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartfamilyi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartsuffixi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartgiven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartgiveni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareListWrapperFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareListWrapperFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListWrapperFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareNameWrapperFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameWrapperFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexFieldFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexFieldFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexListFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexListFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexNameFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexNameFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareFieldAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareListAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareNameAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareListWrapperAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListWrapperAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareNameWrapperAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameWrapperAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexFieldAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexFieldAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexListAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexListAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexNameAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexNameAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateFieldFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateFieldFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateListFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateNameFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateListWrapperFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListWrapperFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateNameWrapperFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameWrapperFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexFieldFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexFieldFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexListFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexListFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexNameFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexNameFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatafieldSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDatafieldSet{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"member\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"member\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"member[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\member\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"maps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maps{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"maps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maps[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\maps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"map\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"map{${1:restrictions,steps}}\"\n      }\n    },\n    {\n      \"name\": \"map\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"map[${2:options%keyvals}]{${1:restrictions,steps}}\",\n        \"keys\": [\n          \"\\\\map\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"regexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regexp{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"perdatasource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perdatasource{${1:datasource}}\"\n      }\n    },\n    {\n      \"name\": \"pertype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pertype{${1:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"pernottype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pernottype{${1:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"step\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"step[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\step\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareStyleSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareStyleSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDriverSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDriverSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDriverSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDriverSourcemap[${2:datatype=driver}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDatamodelConstant{${1:name}}{${2:constantdef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDatamodelConstant[${3:options%keyvals}]{${1:name}}{${2:constantdef}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelConstant\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntrytypes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelEntrytypes{${1:entrytypes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntrytypes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntrytypes[${2:options%keyvals}]{${1:entrytypes}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelEntrytypes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelFields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelFields{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelFields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelFields[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelFields\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields[${2:entrytypes}]{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstraints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelConstraints{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields[${2:entrytypes}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"constraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraint{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"constraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"constraint[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\constraint\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constraintfieldsor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfieldsor{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"constraintfieldsxor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfieldsxor{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"antecedent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antecedent{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"antecedent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"antecedent[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\antecedent,\\\\consequent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"consequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"consequent{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"consequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"consequent[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\antecedent,\\\\consequent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constraintfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"ResetDatamodelEntrytypes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelEntryfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelConstraints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareLabelalphaTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelalphaTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelalphaTemplate[${2:entrytypes}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"labelelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelelement{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"field[${2:options%keyvals}]{${1:field}}\",\n        \"keys\": [\n          \"\\\\field\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"literal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literal{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaNameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelalphaNameTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaNameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelalphaNameTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"namepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namepart{${1:namepart}}\"\n      }\n    },\n    {\n      \"name\": \"namepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namepart[${2:options%keyvals}]{${1:namepart}}\",\n        \"keys\": [\n          \"\\\\namepart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNolabel{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolabel{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNolabelwidthcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNolabelwidthcount{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nolabelwidthcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolabelwidthcount{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortingTemplate{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSortingTemplate[${3:options%keyvals}]{${1:name}}{${2:specification}}\",\n        \"keys\": [\n          \"\\\\DeclareSortingTemplate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sort{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"sort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sort[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\sort\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intciteorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareSortingNamekeyTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSortingNamekeyTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingNamekeyTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSortingNamekeyTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"visibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visibility{${1:visibility scope}}\"\n      }\n    },\n    {\n      \"name\": \"keypart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keypart{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortExclusion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortExclusion{${1:entrytype list}}{${2:field list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortInclusion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortInclusion{${1:entrytype list}}{${2:field list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePresort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePresort{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePresort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclarePresort[${2:entrytype list}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortTranslit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSortTranslit{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortTranslit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSortTranslit[${2:entrytype}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"translit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"translit{${1:field}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"translit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"translit[${4:lang ids}]{${1:field}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblistFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBiblistFilter{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filter{${1:filter}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"filter[${2:filterspec%keyvals}]{${1:filter}}\",\n        \"keys\": [\n          \"\\\\filter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"filteror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"filteror{${1:type}}{${2:filters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNoinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNoinit{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"noinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noinit{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNosort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNosort{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nosort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nosort{${1:field}}{${2:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNonamestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNonamestring{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nonamestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonamestring{${1:field}}{${2:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelname{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelname[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabeldate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabeldate[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExtradate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"scope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scope{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExtradateContext{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareExtradateContext[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabeltitle{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabeltitle[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultInheritance{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefaultInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefaultInheritance[${2:exceptions}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"except\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"except{${1:source}}{${2:target}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareDataInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDataInheritance{${1:source}}{${2:target}}{${3:rules}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDataInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareDataInheritance[${4:options%keyvals}]{${1:source}}{${2:target}}{${3:rules}}\",\n        \"keys\": [\n          \"\\\\DeclareDataInheritance\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inherit{${1:source}}{${2:target}}\"\n      }\n    },\n    {\n      \"name\": \"inherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inherit[${3:options%keyvals}]{${1:source}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\inherit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noinherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noinherit{${1:source}}\"\n      }\n    },\n    {\n      \"name\": \"ResetDataInheritance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thefield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"strfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"csfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"usefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usefield{${1:command}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"thelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thelist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thefirstlistitem{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strfirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strfirstlistitem{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"usefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usefirstlistitem{${1:cmd}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thename{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"strname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strname{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"savefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefield{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefield*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefield*{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelist{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelist*{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savename{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savename*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savename*{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefieldcs{${1:field}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefieldcs*{${1:field}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savelistcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelistcs{${1:literal list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savelistcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelistcs*{${1:literal list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savenamecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savenamecs{${1:name list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savenamecs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savenamecs*{${1:name list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"restorefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorefield{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorelist{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorename{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"clearfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"clearlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"clearname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearname{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatejulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatejulian{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddatejulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddatejulian{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateera\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdateera{${1:era}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateera\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifenddateera{${1:era}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatecirca\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatecirca{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddatecirca\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddatecirca{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateuncertain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdateuncertain{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateuncertain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddateuncertain{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdateunknown{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddateunknown{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateisdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisdate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatehasyearonlyprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdatehasyearonlyprecision{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatehastime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdatehastime{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateshavedifferentprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateshavedifferentprecision{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateyearsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateyearsequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdatesequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdaterangesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdaterangesequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcaselang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcaselang{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcaselang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ifcaselang[${3:language}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsortingnamekeytemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifsortingnamekeytemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquenametemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuniquenametemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabelalphanametemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflabelalphanametemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamehashtemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamehashtemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldundef{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistundef{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnameundef{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldsequal{${1:field1}}{${2:field2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistsequal{${1:literal list1}}{${2:literal list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnamesequal{${1:name list1}}{${2:name list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequals{${1:field}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistequals{${1:literal list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnameequals{${1:name list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequalcs{${1:field}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistequalcs{${1:literal list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnameequalcs{${1:name list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequalstr{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldxref{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistxref{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamexref{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentfield{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentlist{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentname{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseprefix{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseauthor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseeditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseeditor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifusetranslator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifusetranslator{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcrossrefsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcrossrefsource{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifxrefsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifxrefsource{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsingletitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsingletitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnocite{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquetitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquebaretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquebaretitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquework\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquework{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniqueprimaryauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniqueprimaryauthor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifandothers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifandothers{${1:list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmorenames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmorenames{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmoreitems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmoreitems{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterseinits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterseinits{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrytype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentrytype{${1:type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkeyword{${1:keyword}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrykeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrykeyword{${1:entrykey}}{${2:keyword}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcategory{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrycategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrycategory{${1:entrykey}}{${2:category}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteseen{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryseen{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryinbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryinbib{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffirstcitekey{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflastcitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflastcitekey{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteibid{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteidem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidem{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifopcit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifopcit{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifloccit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifloccit{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstonpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffirstonpage{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsamepage{${1:instance1}}{${2:instance2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifinteger{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hascomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hascomputableequivalent{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifiscomputable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifiscomputable{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"getcomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcomputableequivalent{${1:string}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeral{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumerals{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpages{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldint{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"fieldhascomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fieldhascomputableequivalent{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldiscomputable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldiscomputable{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldnum{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldnums{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldpages{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibstring{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibxstring{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldbibstring{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldplusstringbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldplusstringbibstring{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdriver{${1:entrytype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcapital\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcapital{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcitation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifvolcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifvolcite{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbibliography{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnatbibmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnatbibmode{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteindex{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbibindex{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffootnote{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxcitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesavedcitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuniquename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuniquelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparenlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxparens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifboolexpr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpr{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifthenelse{${1:tests}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newbibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newbibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providebibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providebibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"letbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letbibmacro{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"letbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letbibmacro*{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"usebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebibmacro*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"restorebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savefieldformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savefieldformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorefieldformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorefieldformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savelistformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savelistformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorelistformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorelistformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savenameformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savenameformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorenameformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorenameformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savelistwrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savelistwrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorelistwrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorelistwrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savenamewrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savenamewrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorenamewrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorenamewrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibmacroundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibmacroundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iffieldformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iflistformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnameformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifnameformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistwrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistwrapperformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistwrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iflistwrapperformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamewrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamewrapperformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamewrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifnamewrapperformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"usedriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usedriver{${1:code}}{${2:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"bibhypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibhypertarget{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibhyperlink{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibhyperref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibhyperref[${2:entrykey}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifhyperref{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"docsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docsvfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"forcsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcsvfield{${1:handler}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"MakeCapital\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeCapital{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSentenceCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSentenceCase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSentenceCase*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSentenceCase*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpageprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkpageprefix[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkpageprefix[${2:pagination}][${3:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkpagetotal[${2:pagination}][${3:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"themincomprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxcomprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themincompwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcomprange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkcomprange[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkcomprange[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcomprange*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkcomprange*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkcomprange*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknormrange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mknormrange[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mknormrange[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknormrange*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mknormrange*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mknormrange*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfirstpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkfirstpage[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkfirstpage[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfirstpage*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkfirstpage*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkfirstpage*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rangelen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rangelen{${1:rangefield}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNumChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNumChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNumChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNumChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeCommands{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeCommands*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeCommands*{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageCommands{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageCommands*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageCommands*{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"NumCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NumsCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumsCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"PagesCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PagesCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBabelToExplLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBabelToExplLanguageMapping{${1:babel language}}{${2:expl language}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBabelToExplLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareBabelToExplLanguageMapping{${1:babel language}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaseLangs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaseLangs{${1:languages}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaseLangs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaseLangs*{${1:languages}}\"\n      }\n    },\n    {\n      \"name\": \"BibliographyWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibliographyWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagetrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backtrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backtrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunit{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"setunit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunit*{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"printunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunit{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"printunit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunit*{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"setpunctfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpunctfont{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"resetpunctfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterm{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpunctmark{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifprefchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifprefchar{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"adddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addnbspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addnbthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addlowpenspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addhighpenspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addlpthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addhpthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addabbrvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addabthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adddotspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclarePrefChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrefChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePrefChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrefChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAutoPunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCapitalPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCapitalPunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePunctuationPairs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePunctuationPairs{${1:identifier}}{${2:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuotePunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareQuotePunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"uspunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdpunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsentence*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcpstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcpstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcplstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcplstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcplstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcplstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcpsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcpsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibucstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibucstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibuclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibuclstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibuclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibuclstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibucsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibucsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblcstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblcstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblclstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblclstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblcsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblcsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxlstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxlstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxlstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxlstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"textmainlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmainlang{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texouterlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texouterlang{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibstringSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibstringSet{${1:name}}{${2:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBibstringSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareBibstringSet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBibstringSets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBibstringSetFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibstringSetFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UneclareBibstringSetFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UneclareBibstringSetFormat{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageMapping{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMappingSuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLanguageMappingSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibitalic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibitalic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibparens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibparens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbrackets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbrackets{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibopenparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcloseparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibopenbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibclosebracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibendnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibendnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibendnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibfootnotewrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibfootnotewrapper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibendnotewrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibendnotewrapper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibmonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibmonth{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibseason\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibseason{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkyearzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkyearzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmonthzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkdayzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdayzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mktimezeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktimezeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"forcezerosy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcezerosy{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"forcezerosmdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcezerosmdt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"stripzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stripzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"labelnumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelalphawidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextraalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextradate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextraname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextratitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextratitleyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themulticitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themulticitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelisttotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelistcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theliststart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theliststop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginRefsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginRefsection{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextRefsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextRefsection{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtFollowingRefsections\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtFollowingRefsections{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShorthands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShorthands{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginBiblist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginBiblist{${1:biblistname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryBibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryBibitem{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryLositem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryLositem{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryBiblistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEveryBiblistitem{${1:biblistname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtUsedriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtUsedriver{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtUsedriver*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtUsedriver*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryMultiCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryMultiCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEachCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEachCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextMultiCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextMultiCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVolcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVolcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVolcite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVolcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtDataInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtDataInput{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtDataInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtDataInput[${2:entrytype}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"UseBibitemHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseUsedriverHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryMultiCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextMultiCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseVolciteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeferNextCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEveryEntrykey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AtEveryEntrykey{${1:code}}{${2:success}}{${3:failure}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniquenameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareUniquenameTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniquenameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareUniquenameTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNamehashTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNamehashTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNamehashTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNamehashTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"actualoperator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmultivolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexHungarianWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexLatvianWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexSplitbibDefernumbersWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blxcitecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"blxcitecmd{${1:name}}{${2:prenote}}{${3:postnote}}{${4:citekey%plain}}{${5:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxciteicmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"blxciteicmd{${1:name}}{${2:prenote}}{${3:postnote}}{${4:citekey%plain}}{${5:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxendmcites\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blxmciteicmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"blxmciteicmd{${1:multicitecount}}{${2:<name>}}{${3:prenote}}{${4:postnote}}{${5:citekey%plain}}{${6:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxmcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"blxmcites{${1:multicitetotal}}{${2:multiprenote}}{${3:multipostnote}}\"\n      }\n    },\n    {\n      \"name\": \"iffinalcitedelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffinalcitedelim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextcitepunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftextcitepunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexentry{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexfield{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindexname{${1:family name}}{${2:given name}}{${3:prefix}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexsubentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexsubentry{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangecomp{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangecompextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangecompextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangefull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangefull{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangefullextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangefullextra{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeiso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeiso{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeisoextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeisoextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangelong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangelongextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangelongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeshort{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeshortextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeshortextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeterse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeterse{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeterseextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeterseextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangetrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangetrunc{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangetruncextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangetruncextra{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeyear{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeyearextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeyearextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeymd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeymd{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeymdextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeymdextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkrelatedstringtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrelatedstringtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktimehh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktimehh{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"multivolcitecmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortjournalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortserieswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subentryoperator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitemaxnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volcitecmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInit\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInit{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWord\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plaincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plaincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plaincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citelastname[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citelastname[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citelastname{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textapud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"textapud{${1:bibid}}[${3:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textapud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearorsh*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearorsh*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearorsh*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInitial{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkopcit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkopcit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkloccit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkloccit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieversion\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologiedate\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieoptions\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seperator\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitlepunct\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelimmultivolume\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yearnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesubseqesep\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesepx\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibdaterangesepx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelyeardelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddondelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volissuedelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exhibbibdaterangesep\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dononameyeardelim\",\n      \"if\": \"style=bath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifrelatedloop\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifrelatedloop{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnocomma\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnocomma{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkgroupeddigits\",\n      \"if\": \"style=chem-rsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgroupeddigits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddBiblatexClavis\",\n      \"if\": \"bibstyle=claves\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddBiblatexClavis{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"multiclavesseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisformat\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clavisformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"citeallclaves\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"clavesadddashinset\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"titleyeardelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkfootnotecite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfootnotecite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkparencite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkparencite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecheck\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibitem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelositem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=enc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelbox\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"localsetchinesecode\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaystylesection\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaystylesection{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctdotlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenl\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenr\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execpuncten\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nwafubibfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttl\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttr\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execerjpuncten\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumberwithoutzero\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmarkcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicoloncite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenlcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenrcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exegbpunctencite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"commentator\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentator{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdatehasyearonly\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatehasyearonly{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qverweis\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qverweis{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mkpostnote\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpostnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:(${3:postnote:prefix})postnote:stem}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitledelim\",\n      \"if\": \"style=LNI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bbxinitsep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibyearwatershed\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameaddonpseud\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypemag\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeclassic\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebiblical\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeearlybook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearchive\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevolume\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypedatabase\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeblog\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypelistmessage\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebooklike\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypepublicdocument\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeanon\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeunsure\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortyperedundant\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypealternate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypejournal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeintro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeexcerpt\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenone\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypecorp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeper\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemanual\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypecoll\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypesecondarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytyperef\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeproc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypereport\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebooklet\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemisc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeaudio\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebookinbook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearticle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypelegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeletter\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeperformance\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionaddoriginal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionnoreprints\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiontransfromorig\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigtransas\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiondoubledate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noplace\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcijrep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudirective\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euregulation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudecision\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comdocsubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jurisechr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eutreaty\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseofcommons\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseoflords\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undoctype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extracitedelim\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstpublishedstr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalstarturl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalendurl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paratextformatted\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paratextformatted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"csusebibmacro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csusebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"forbbxrange\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangesplit\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rangesplit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"formatpostnote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatpostnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralsfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralsfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"numeraljustfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numeraljustfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetStandardIndices\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexAssociation{${1:category}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowIndexAssociation{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"legislationindex\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistcontains{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindexearly[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"DNI\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"reponly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reponly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reponly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footciteref[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footciteref[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteref{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"dopipedlist\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotesecond\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindex[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindex[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindexnum[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindexnum[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindexnum{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexonly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexonly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexonly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccite\",\n      \"if\": \"style=philosophy-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=phys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ExecutePublistOptions\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecutePublistOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplnum\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plyearhl\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plyearhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bplopenoa\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplcloseoa\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plextrainfosep\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftplnum\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GetTotalCount\",\n      \"if\": \"style=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"style=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GetSectionCount[${1:section number}]\"\n      }\n    },\n    {\n      \"name\": \"mkbplannot\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplannot\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetAnnotSymbol\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetAnnotSymbol{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"SetAnnotSymbols\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAnnotSymbols{${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeitem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeitem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeitem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citesecitem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citesecitem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citesecitem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem*\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citesecitem*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitemrange\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeitemrange{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitemrange\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citesecitemrange{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitemrange*\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citesecitemrange*{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"itemrangesep\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftciteitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftciteitem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkrefdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrefdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"secitemsecref\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftbplnum\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftbplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printprinfo\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printprinfo{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"thenonplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therealliststop\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetTotalCount\",\n      \"if\": \"bibstyle=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"bibstyle=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GetSectionCount[${1:section number}]\"\n      }\n    },\n    {\n      \"name\": \"mkbplannot\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplannot\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetAnnotSymbol\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetAnnotSymbol{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"SetAnnotSymbols\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAnnotSymbols{${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realauthorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realeditorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifciteidemsbl\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidemsbl{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"namedashpunct\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexiconfinalnamedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volpostnotedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addskipentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addskipentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addincludeentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addincludeentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abbrevwidth\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmaxlength\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmaxlength{${1:length1}}{${2:length2}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharsec\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharsec{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharnum\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharnum{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentpublisher\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentlocation\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentorganization\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentinstitution\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepublishertotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorganizationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstitutiontotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotelast\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volsplitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volsplitpostnote{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citejournal{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeseries\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeseries{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeshorthand\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeshorthand{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bibentrycite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentrycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"biblistcite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblistcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNestableCiteCommand\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNestableCiteCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"iflinkparens\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflinkparens{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"annotsep\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationdelim\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"idemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"idemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"idemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"idemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"idemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"idemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"idemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"idemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footidemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footidemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footidemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footidemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footidemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footidemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footidemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footidemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footidemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footidemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenauth{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenauth[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parenauth[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parenauths{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"parenauths(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"parenauths(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"parenauths(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"parenauths[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"parenauths[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"parenauths(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayyearrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayyearrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"anona\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anonb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crossreflist\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluga\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plugb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xtitle\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginLists\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEveryItem\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffieldstart\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldstart{${1:field}}{${2:sym}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"refsection\"\n    },\n    {\n      \"name\": \"refsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:bib files}]\"\n      }\n    },\n    {\n      \"name\": \"refsegment\"\n    },\n    {\n      \"name\": \"refcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fullexpotherlanguage\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"theshorthands\",\n      \"if\": \"style=enc\"\n    },\n    {\n      \"name\": \"plnumgroup\",\n      \"if\": \"style=publist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/biblatex#c\": [\n      \"backend=${1|bibtex,bibtex8,biber|}\",\n      \"style=${1|authoryear,authortitle,alphabetic,numeric,alphabetic-verb,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-tcomp,authortitle-terse,authortitle-ticomp,authoryear-comp,authoryear-ibid,authoryear-icomp,debug,draft,numeric-comp,numeric-verb,reading,verbose,verbose-ibid,verbose-inote,verbose-note,verbose-trad1,verbose-trad2,verbose-trad3|}\",\n      \"bibstyle=${1|authoryear,authortitle,numeric,alphabetic,verbose,reading,draft,debug|}\",\n      \"citestyle=${1|authoryear,authortitle,alphabetic,numeric,numeric-comp,numeric-verb,alphabetic-verb,authoryear-comp,authoryear-ibid,authoryear-icomp,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-terse,authortitle-tcomp,authortitle-ticomp,verbose,verbose-ibid,verbose-note,verbose-inote,verbose-trad1,verbose-trad2,verbose-trad3,reading,draft,debug|}\",\n      \"natbib\",\n      \"mcite\",\n      \"casechanger=${1|auto,latex2e,expl3|}\",\n      \"datamodel=${1:model}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"sorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\",\n      \"sortcase\",\n      \"sortupper\",\n      \"sortlocale=\",\n      \"sortcites\",\n      \"sortsets\",\n      \"pluralothers\",\n      \"maxnames=${1:integer}\",\n      \"minnames=${1:integer}\",\n      \"maxbibnames=${1:integer}\",\n      \"minbibnames=${1:integer}\",\n      \"maxcitenames=${1:integer}\",\n      \"mincitenames=${1:integer}\",\n      \"maxsortnames=${1:integer}\",\n      \"minsortnames=${1:integer}\",\n      \"maxitems=${1:integer}\",\n      \"minitems=${1:integer}\",\n      \"autocite=${1|plain,inline,footnote,superscript|}\",\n      \"autopunct\",\n      \"language=${1|autobib,autocite,auto|}\",\n      \"clearlang\",\n      \"autolang=${1|none,hyphen,other,other*,langname|}\",\n      \"langhook=${1|captions,extras|}\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"locallabelwidth\",\n      \"notetype=${1|foot+end,footonly,endonly|}\",\n      \"hyperref=${1|true,false,auto,manual|}\",\n      \"backref\",\n      \"backrefstyle=${1|none,three,two,two+,three+,all+|}\",\n      \"backrefsetstyle=${1|setonly,memonly,setormem,setandmem,memandset,setplusmem|}\",\n      \"backreffloats\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"loadfiles\",\n      \"refsection=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"refsegment=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"citereset=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"abbreviate\",\n      \"date=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"labeldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"eventdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"origdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"urldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"alldates=${1|year,short,long,terse,comp,iso|}\",\n      \"julian\",\n      \"gregorianstart=${1:YYYY-MM-DD}\",\n      \"datezeros\",\n      \"timezeros\",\n      \"timezones\",\n      \"seconds\",\n      \"dateabbrev\",\n      \"datecirca\",\n      \"dateuncertain\",\n      \"dateera=${1|astronomical,secular,christian|}\",\n      \"dateeraauto=${1:integer}\",\n      \"time=${1|12h,24h,24hcomp|}\",\n      \"labeltime=${1|12h,24h,24hcomp|}\",\n      \"eventtime=${1|12h,24h,24hcomp|}\",\n      \"origtime=${1|12h,24h,24hcomp|}\",\n      \"urltime=${1|12h,24h,24hcomp|}\",\n      \"alltimes=${1|12h,24h,24hcomp|}\",\n      \"dateusetime\",\n      \"labeldateusetime\",\n      \"eventdateusetime\",\n      \"origdateusetime\",\n      \"urldateusetime\",\n      \"alldatesusetime\",\n      \"defernumbers\",\n      \"punctfont\",\n      \"arxiv=${1|abs,ps,pdf,format|}\",\n      \"texencoding=\",\n      \"bibencoding=\",\n      \"safeinputenc\",\n      \"bibwarn\",\n      \"mincrossrefs=${1:integer}\",\n      \"minxrefs=${1:integer}\",\n      \"bibtexcaseprotection\",\n      \"isbn\",\n      \"url\",\n      \"doi\",\n      \"eprint\",\n      \"related\",\n      \"subentry\",\n      \"subentrycomp\",\n      \"dashed\",\n      \"mergedate=${1|false,minimum,basic,compact,maximum,true|}\",\n      \"ibidpage\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"strict\",\n      \"pagetracker=${1|true,false,page,spread|}\",\n      \"citecounter=${1|true,false,context|}\",\n      \"citetracker=${1|true,false,context,strict,constrict|}\",\n      \"ibidtracker=${1|true,false,context,strict,constrict|}\",\n      \"opcittracker=${1|true,false,context,strict,constrict|}\",\n      \"loccittracker=${1|true,false,context,strict,constrict|}\",\n      \"idemtracker=${1|true,false,context,strict,constrict|}\",\n      \"trackfloats\",\n      \"parentracker\",\n      \"maxparens=${1:integer}\",\n      \"giveninits\",\n      \"terseinits\",\n      \"labelalpha\",\n      \"maxalphanames=${1:integer}\",\n      \"minalphanames=${1:integer}\",\n      \"labelnumber\",\n      \"noroman\",\n      \"labeltitle\",\n      \"labeltitleyear\",\n      \"labeldateparts\",\n      \"singletitle\",\n      \"uniquetitle\",\n      \"uniquebaretitle\",\n      \"uniquework\",\n      \"uniqueprimaryauthor\",\n      \"uniquename=${1|true,false,init,full,allinit,allfull,mininit,minfull,minyearinit,minyearfull|}\",\n      \"uniquelist=${1|true,false,minyear|}\",\n      \"nohashothers\",\n      \"nosortothers\",\n      \"useauthor\",\n      \"useeditor\",\n      \"usetranslator\",\n      \"useprefix\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"skipbib\",\n      \"skipbiblist\",\n      \"skiplab\",\n      \"dataonly\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"comp\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"bibancient\",\n      \"bibcorpora\",\n      \"lstabbrv\",\n      \"lstlocations\",\n      \"lstpublishers\",\n      \"bibfullname\",\n      \"scshape\",\n      \"edby\",\n      \"publisher\",\n      \"translation\",\n      \"yearseries\",\n      \"width=\",\n      \"counter\",\n      \"jstor\",\n      \"arachne\",\n      \"zenon\",\n      \"urn\",\n      \"biblabel=${1|plain,bold,brackets,parens|}\",\n      \"inreferencesasfullcite\",\n      \"eventdatelanguage\",\n      \"citeauthorformat=${1|initials,full,family,firstfulltheninitials,firstfullthenfamily|}\",\n      \"seenote\",\n      \"yearinparens\",\n      \"nametracker\",\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"width=\",\n      \"publisher\",\n      \"jstor\",\n      \"urn\",\n      \"arthist\",\n      \"enddot\",\n      \"pagesfull\",\n      \"firstcitefull\",\n      \"allnamesfamilygiven\",\n      \"namelinked\",\n      \"nonodate\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"annotatedBibliography\",\n      \"postnote=${1|afterparen,inparen|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"CCNUpunctcn\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbpunctcn\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gbcitepunctcn\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"edsuper\",\n      \"switchprefix\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"citedbytitle\",\n      \"howcited\",\n      \"bearbeiterin\",\n      \"fshowcited\",\n      \"citedbypage\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"acronym\",\n      \"series=${1|short,full,no|}\",\n      \"conference=${1|long,full,acronym|}\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"articletitle\",\n      \"intitle\",\n      \"articledoi\",\n      \"articlein\",\n      \"printlang\",\n      \"caseshorthands\",\n      \"ecli=${1|yes,no,only|}\",\n      \"ibidstyle=${1|lc,uc|}\",\n      \"shortindex\",\n      \"eutreaty\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|superscript,brackets|}\",\n      \"pubstateextra\",\n      \"plnumbering=${1|global,local,global-descending,local-descending,none|}\",\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"annotations=${1:comma list}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"boldyear\",\n      \"pubstateextra\",\n      \"marginyear\",\n      \"plnumbered=${1|true,false,reset|}\",\n      \"reversenumbering\",\n      \"plauthorfirstinit\",\n      \"citinfo\",\n      \"prinfo\",\n      \"linktitleall\",\n      \"linktitledoi\",\n      \"linktitleurl\",\n      \"linktitleisbn\",\n      \"linktitleissn\",\n      \"accessdate\",\n      \"citepages=${1|sbl,permit,omit,separate|}\",\n      \"eprintdate=${1|year,short,long,terse,comp,iso8601|}\",\n      \"fullbibrefs\",\n      \"idemtracker=${1|true,false,context,strict,constrict,citation,sbl|}\",\n      \"sblfootnotes\",\n      \"shorthand=${1|true,false,short,intro|}\",\n      \"useshorttitle\",\n      \"usefullcite\",\n      \"usevolume\",\n      \"useseries\",\n      \"articletitle\",\n      \"colornames\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"pubstate\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"issueandeditor\",\n      \"compactlinks\",\n      \"alllinks\",\n      \"issueeditor\",\n      \"annotations\",\n      \"annotate\",\n      \"collsonly\",\n      \"ibid\",\n      \"issn\",\n      \"library\",\n      \"noetal\",\n      \"nolos\",\n      \"nopages\",\n      \"reflist\",\n      \"sentencecase\",\n      \"short\",\n      \"shortafter\",\n      \"shortfirst\",\n      \"shortlinks\",\n      \"swapvol\"\n    ],\n    \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\": [\n      \"bibencoding=\",\n      \"label=\",\n      \"location=${1|local,remote|}\",\n      \"type=${1|file|}\",\n      \"datatype=${1|bibtex,biblatexml|}\",\n      \"glob\"\n    ],\n    \"\\\\printbibliography\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"check=${1:name}\",\n      \"resetnumbers=\",\n      \"omitnumbers\",\n      \"locallabelwidth\"\n    ],\n    \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\"\n    ],\n    \"\\\\printbibheading\": [\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\"\n    ],\n    \"\\\\DeclarePrintbibliographyDefaults\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"filter=${1:name}\"\n    ],\n    \"\\\\printbiblist,\\\\printshorthands\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"check=${1:name}\",\n      \"locallabelwidth\",\n      \"driver=\",\n      \"biblistfilter=\"\n    ],\n    \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\": [\n      \"sorting=${1:name}\",\n      \"sortingnamekeytemplatename=${1:name}\",\n      \"uniquenametemplatename=${1:name}\",\n      \"labelalphanametemplatename=${1:name}\",\n      \"namehashtemplatename=${1:name}\",\n      \"nametemplates=${1:name}\",\n      \"labelprefix=${1:string}\"\n    ],\n    \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\": [\n      \"name=${1:refcontextname}\"\n    ],\n    \"\\\\DeclareAutoCiteCommand\": [\n      \"r\",\n      \"l\",\n      \"f\"\n    ],\n    \"\\\\DeclareCitePunctuationPosition\": [\n      \"r\",\n      \"l\",\n      \"f\",\n      \"c\",\n      \"o\",\n      \"d\"\n    ],\n    \"\\\\member\": [\n      \"fieldtype=\",\n      \"datatype=\",\n      \"field=\"\n    ],\n    \"\\\\maps\": [\n      \"datatype=${1|bibtex,biblatexml|}\",\n      \"overwrite\"\n    ],\n    \"\\\\map\": [\n      \"overwrite\",\n      \"foreach=${1:loopval}\",\n      \"refsection=${1:integer}\"\n    ],\n    \"\\\\step\": [\n      \"typesource=${1:entrytype}\",\n      \"typetarget=${1:entrytype}\",\n      \"fieldsource=${1:entryfield}\",\n      \"notfield=${1:entryfield}\",\n      \"fieldtarget=${1:entryfield}\",\n      \"match=${1:regexp}\",\n      \"matchi=${1:regexp}\",\n      \"notmatch=${1:regexp}\",\n      \"notmatchi=${1:regexp}\",\n      \"replace=${1:regexp}\",\n      \"fieldset=${1:entryfield}\",\n      \"fieldvalue=${1:string}\",\n      \"entryclone=${1:clonekey}\",\n      \"entrynew=${1:entrynewkey}\",\n      \"entrynewtype=${1:string}\",\n      \"entrytarget=${1:string}\",\n      \"cited\",\n      \"nocited\",\n      \"citedornocited\",\n      \"allnocited\",\n      \"starnocited\",\n      \"entrynocite\",\n      \"entrynull\",\n      \"append\",\n      \"appendstrict\",\n      \"final\",\n      \"null\",\n      \"origfield\",\n      \"origfieldval\",\n      \"origentrytype\"\n    ],\n    \"\\\\DeclareDatamodelConstant\": [\n      \"type=${1|string,list|}\"\n    ],\n    \"\\\\DeclareDatamodelEntrytypes\": [\n      \"skipout\"\n    ],\n    \"\\\\DeclareDatamodelFields\": [\n      \"type=${1:field type}\",\n      \"format=${1:field format}\",\n      \"datatype=${1:field datatype}\",\n      \"nullok\",\n      \"skipout\",\n      \"label\"\n    ],\n    \"\\\\constraint\": [\n      \"type=${1|data,mandatory,conditional|}\",\n      \"datatype=${1|integer,isbn,issn,ismn,datepart,pattern|}\",\n      \"rangemin=${1:number}\",\n      \"rangemax=${1:number}\",\n      \"pattern=\"\n    ],\n    \"\\\\antecedent,\\\\consequent\": [\n      \"quantifier=${1|all,one,none|}\"\n    ],\n    \"\\\\field\": [\n      \"final\",\n      \"lowercase\",\n      \"strwidth=${1:integer}\",\n      \"strside=${1|left,right|}\",\n      \"padside=${1|left,right|}\",\n      \"padwidth=${1:integer}\",\n      \"padchar=${1:character}\",\n      \"uppercase\",\n      \"varwidth\",\n      \"varwidthnorm\",\n      \"varwidthlist\",\n      \"strwidthmax=${1:integer}\",\n      \"strfixedcount=${1:integer}\",\n      \"ifnames=${1:range}\",\n      \"names=${1:range}\",\n      \"namessep=${1:string}\",\n      \"noalphaothers\"\n    ],\n    \"\\\\namepart\": [\n      \"use\",\n      \"pre\",\n      \"compound\",\n      \"strwidth=${1:integer}\",\n      \"strside=${1|left,right|}\",\n      \"inits\",\n      \"base\",\n      \"disambiguation=${1|none,init,initorfull,full|}\",\n      \"hashscope=${1|init,full|}\"\n    ],\n    \"\\\\DeclareSortingTemplate\": [\n      \"locale=\"\n    ],\n    \"\\\\sort\": [\n      \"locale=\",\n      \"direction=${1|ascending,descending|}\",\n      \"final\",\n      \"sortcase\",\n      \"sortupper\"\n    ],\n    \"\\\\filter\": [\n      \"type=\",\n      \"nottype=\",\n      \"subtype=\",\n      \"notsubtype=\",\n      \"keyword=\",\n      \"notkeyword=\",\n      \"field=\",\n      \"notfield=\",\n      \"filter=\"\n    ],\n    \"\\\\DefaultInheritance,\\\\except\": [\n      \"all\",\n      \"override\",\n      \"ignore=${1:csv list of uniqueness options}\"\n    ],\n    \"\\\\DeclareDataInheritance\": [\n      \"ignore=${1:csv list of uniqueness options}\"\n    ],\n    \"\\\\inherit\": [\n      \"override\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\": [\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"yearleft\",\n      \"restoreclassic\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"iviemph\",\n      \"commacit\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\": [\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von-part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"annotations=${1:comma list}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"fixyear\",\n      \"hlyear\",\n      \"marginyear\",\n      \"plsorting=${1:sorting scheme}\",\n      \"plauthorfirstinit\",\n      \"citinfo\",\n      \"jifinfo\",\n      \"oainfo=${1|simple,verbose,none|}\",\n      \"prinfo\",\n      \"linktitles=${1|all,doi,url,isbn,issn,none|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/bidi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"auxhook\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote=on\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"TwoColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"ThreeColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"FourColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"FiveColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SixColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SevenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EightColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NineColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParagraphFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"NormalRTLParaLTRFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"TwoColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"ThreeColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"FourColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"FiveColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SixColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SevenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EightColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NineColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParagraphFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"NormalRTLParaLTRFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bidiversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bididate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidireleasename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXXeTOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXXeTOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLTR\"\n    },\n    {\n      \"name\": \"setLR\"\n    },\n    {\n      \"name\": \"unsetRL\"\n    },\n    {\n      \"name\": \"unsetRTL\"\n    },\n    {\n      \"name\": \"setRTL\"\n    },\n    {\n      \"name\": \"setRL\"\n    },\n    {\n      \"name\": \"unsetLTR\"\n    },\n    {\n      \"name\": \"LRE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RLE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoteRL\"\n    },\n    {\n      \"name\": \"setfootnoteLR\"\n    },\n    {\n      \"name\": \"unsetfootnoteRL\"\n    },\n    {\n      \"name\": \"LTRthanks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRthanks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLthanks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLthanks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRfootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLfootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"autofootnoterule\"\n    },\n    {\n      \"name\": \"rightfootnoterule\"\n    },\n    {\n      \"name\": \"leftfootnoterule\"\n    },\n    {\n      \"name\": \"LRfootnoterule\"\n    },\n    {\n      \"name\": \"textwidthfootnoterule\"\n    },\n    {\n      \"name\": \"SplitFootnoteRule\"\n    },\n    {\n      \"name\": \"debugfootnotedirection\"\n    },\n    {\n      \"name\": \"RTLdblcol\"\n    },\n    {\n      \"name\": \"LTRdblcol\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"SepMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepMark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"hboxR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hboxR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hboxL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hboxL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vboxR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vboxR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vboxL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vboxL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bidillap\"\n    },\n    {\n      \"name\": \"bidirlap\"\n    },\n    {\n      \"name\": \"setLTRbibitems\"\n    },\n    {\n      \"name\": \"setRTLbibitems\"\n    },\n    {\n      \"name\": \"setdefaultbibitems\"\n    },\n    {\n      \"name\": \"setRTLmarginpar\"\n    },\n    {\n      \"name\": \"setLTRmarginpar\"\n    },\n    {\n      \"name\": \"setdefaultmarginpar\"\n    },\n    {\n      \"name\": \"LTRmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRmarginpar[${2:left-text%text}]{${1:right-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLmarginpar[${2:left-text%text}]{${1:right-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bracetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DigitsDotDashInterCharToks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfbidiPackageVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersion{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfbidiPackageVersionBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersionBefore{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfbidiPackageVersionLater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersionLater{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pdfencryptsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfencryptsetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pLRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pRLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLTRtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setnonlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setRTLtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreLRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreRLE\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LTR\"\n    },\n    {\n      \"name\": \"RTL\"\n    },\n    {\n      \"name\": \"LTRitems\"\n    },\n    {\n      \"name\": \"RTLitems\"\n    },\n    {\n      \"name\": \"LTRbibitems\"\n    },\n    {\n      \"name\": \"RTLbibitems\"\n    },\n    {\n      \"name\": \"LTR*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTL*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bidi#c\": [\n      \"RTLdocument\",\n      \"documentdirection=${1|righttoleft,lefttoright|}\",\n      \"tabledirection=${1|righttoleft,lefttoright|}\",\n      \"script=${1|latin,nonlatin|}\",\n      \"rldocument\",\n      \"footnoterule=${1|automatic,left,right,split,textwidth|}\",\n      \"footnotedirection=${1|righttoleft,lefttoright|}\",\n      \"debugfootnotedirection\",\n      \"extrafootnotefeatures\",\n      \"DetectColumn\",\n      \"logo\",\n      \"pdfinfo\",\n      \"perpagefootnote\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"captiondirection=${1|textdirection,RTL,LTR|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidi#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/blindtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blinddocument\"\n    },\n    {\n      \"name\": \"Blinddocument\"\n    },\n    {\n      \"name\": \"blindtext\"\n    },\n    {\n      \"name\": \"blindtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindtext[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindtext\"\n    },\n    {\n      \"name\": \"Blindtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blindtext[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindtext\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Blindtext[${1:paragraphs}][${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blindlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"Blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Blindlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blindlistlist[${2:level}]{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"blindlistlist[${2:level}]{${1:list env}}[${3:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blindlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"Blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Blindlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blindlistlistoptional[${2:level}]{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"blindlistlistoptional[${2:level}]{${1:list env}}[${3:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blinditemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blinditemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blinditemize[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindenumerate[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blinddescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blinddescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blinddescription[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blinditemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blinditemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blinditemize[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blindenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blindenumerate[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blinddescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blinddescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blinddescription[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindmathpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmarkup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindmarkup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parstart{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"parend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifblindmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindtoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindtocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindbible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindbibletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindbiblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindrandomtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindrandomfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindpangram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindpangramtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindpangramfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBlindtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindlistlevel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/blindtext#c\": [\n      \"bible\",\n      \"random\",\n      \"pangram\",\n      \"math\",\n      \"toc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/blindtext#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/bm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"hm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hm{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"bmdefine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bmdefine{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"hmdefine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hmdefine{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"boldsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldsymbol{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"heavysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heavysymbol{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBoldMathCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareBoldMathCommand[${3:math version%keyvals}]{${1:cmd}}{${2:def}}\",\n        \"keys\": [\n          \"\\\\DeclareBoldMathCommand#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareBoldMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBoldMathCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bmmax\"\n    },\n    {\n      \"name\": \"hmmax\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bm#c\": [\n      \"nopmb\",\n      \"warn\",\n      \"info\",\n      \"silent\"\n    ],\n    \"\\\\DeclareBoldMathCommand#c\": [\n      \"bold\",\n      \"heavy\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bm#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/booktabs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"toprule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"toprule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"midrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"midrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"bottomrule\"\n    },\n    {\n      \"name\": \"bottomrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bottomrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrule{${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"cmidrule(${2:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"cmidrule[${2:line width%l}](${3:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"morecmidrules\"\n    },\n    {\n      \"name\": \"specialrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialrule{${1:line width%l}}{${2:above space}}{${3:below space}}\"\n      }\n    },\n    {\n      \"name\": \"addlinespace\"\n    },\n    {\n      \"name\": \"addlinespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlinespace[${1:vspace}]\"\n      }\n    },\n    {\n      \"name\": \"heavyrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lightrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowrulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboverulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovetopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulekern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultaddspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/braket.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bra{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Braket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Set{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SavedDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BraDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BraVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midvert\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/calc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounter{${1:ctr}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounter{${1:ctr}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"setlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:cmd}}{${2:len}}\"\n      }\n    },\n    {\n      \"name\": \"addtolength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolength{${1:cmd}}{${2:len}}\"\n      }\n    },\n    {\n      \"name\": \"real\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"real{${1:decimal constant}}\"\n      }\n    },\n    {\n      \"name\": \"ratio\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ratio{${1:dimen expression}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"widthof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"heightof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heightof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"depthof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"depthof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"totalheightof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalheightof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"settototalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settototalheight{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maxof{${1:type expression}}{${2:type expression}}\"\n      }\n    },\n    {\n      \"name\": \"minof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"minof{${1:type expression}}{${2:type expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/cancel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bcancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"xcancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"cancelto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cancelto{${1:value}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"CancelColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cancel#c\": [\n      \"samesize\",\n      \"smaller\",\n      \"Smaller\",\n      \"makeroom\",\n      \"overlap\",\n      \"thicklines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cancel#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/caption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption3\"\n    },\n    {\n      \"name\": \"ltcaption\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:list entry%text}]{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof*{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionlistentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionlistentry[${2:float type}]{${1:list entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionlistentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionlistentry{${1:list entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"ContinuedFloat\"\n    },\n    {\n      \"name\": \"ContinuedFloat*\"\n    },\n    {\n      \"name\": \"theContinuedFloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piccaptiontype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piccaptiontype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}[${4:width}][${5:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}[${4:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontext*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"flushsubcaptionlistentries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextfloat\"\n    },\n    {\n      \"name\": \"nextfloat*\"\n    },\n    {\n      \"name\": \"phantomcaption\"\n    },\n    {\n      \"name\": \"setcaptionsubtype*\"\n    },\n    {\n      \"name\": \"setcaptionsubtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionsubtype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptiontype*\"\n    },\n    {\n      \"name\": \"setcaptiontype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptiontype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptionsetup[${2:float type}]{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsetup{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptionsetup*[${2:float type}]{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsetup*{${1:options%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner-pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captiongroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiongroup*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\": [\n      \"list-entry=${1|default,list-entry,entry|}\",\n      \"hypcap\",\n      \"hypcapspace=\",\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\",\n      \"subtype=${1:float type}\",\n      \"subtype*=${1:float type}\"\n    ],\n    \"\\\\usepackage/caption#c\": [\n      \"compatibility\",\n      \"config=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\",\n    \"\\\\usepackage/caption#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/cases.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thesubequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themainequation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"numcases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:left side}}\"\n      }\n    },\n    {\n      \"name\": \"subnumcases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:left side}}\"\n      }\n    },\n    {\n      \"name\": \"subequations\"\n    },\n    {\n      \"name\": \"subeqnarray\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cases#c\": [\n      \"subnum\",\n      \"fleqn\",\n      \"leqno\",\n      \"amsstyle\",\n      \"casesstyle\",\n      \"cases\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cases#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/chemformula.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xfrac\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setchemformula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchemformula{${1:options}}\",\n        \"keys\": [\n          \"\\\\setchemformula\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ch{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ch[${2:options}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\ch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bond{${1:bond name}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemBond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemBondAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemBondAlias{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemBondAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemBondAlias{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowChemBond{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chcpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chcpd{${1:compound}}\"\n      }\n    },\n    {\n      \"name\": \"chcpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chcpd[${2:options}]{${1:compound}}\",\n        \"keys\": [\n          \"\\\\chcpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewChemCompoundProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveChemCompoundProperty{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemAdditionSymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemSymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"ShowChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowChemArrow{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charrow{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"charrow{${1:type}}[${2:above}]\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"charrow{${1:type}}[${2:above}][${3:below}]\"\n      }\n    },\n    {\n      \"name\": \"chname\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"chname(${1:text 1})(${2:text 2})\"\n      }\n    },\n    {\n      \"name\": \"chlewis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chlewis{${1:electron spec}}{${2:atom}}\"\n      }\n    },\n    {\n      \"name\": \"chlewis\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chlewis[${3:options}]{${1:electron spec}}{${2:atom}}\",\n        \"keys\": [\n          \"\\\\chlewis\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ch\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\",\n      \"kroeger-vink=${1|true,false|}\",\n      \"kv-positive-style={${1:TikZ}}\",\n      \"kv-positive-radius={${1:dim}}\",\n      \"kv-positive-hshift={${1:dim}}\",\n      \"kv-positive-vshift={${1:dim}}\",\n      \"kv-positive-offset={${1:dim}}\",\n      \"kv-positive-symbol={${1:TeX code}}\"\n    ],\n    \"\\\\setchemformula\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\",\n      \"tikz-external-disable=${1|true,false|}\",\n      \"lewis-default=${1|.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty|}\",\n      \"lewis-distance={${1:dim}}\",\n      \"lewis-line-length={${1:dim}}\",\n      \"lewis-line-width={${1:dim}}\",\n      \"lewis-offset={${1:dim}}\",\n      \"kroeger-vink=${1|true,false|}\",\n      \"kv-positive-style={${1:TikZ}}\",\n      \"kv-positive-radius={${1:dim}}\",\n      \"kv-positive-hshift={${1:dim}}\",\n      \"kv-positive-vshift={${1:dim}}\",\n      \"kv-positive-offset={${1:dim}}\",\n      \"kv-positive-symbol={${1:TeX code}}\"\n    ],\n    \"\\\\chcpd\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\"\n    ],\n    \"\\\\chlewis\": [\n      \"lewis-default=${1|.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty|}\",\n      \"lewis-distance={${1:dim}}\",\n      \"lewis-line-length={${1:dim}}\",\n      \"lewis-line-width={${1:dim}}\",\n      \"lewis-offset={${1:dim}}5ex\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/chemstyle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"chemscheme\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"journal=orglett\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Hz\"\n    },\n    {\n      \"name\": \"Molar\"\n    },\n    {\n      \"name\": \"cmc\"\n    },\n    {\n      \"name\": \"cstsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cstsetup{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"cubiccentimeter\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"invacuo\"\n    },\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"latinemphoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinemphon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"mol\"\n    },\n    {\n      \"name\": \"molar\"\n    },\n    {\n      \"name\": \"standardstate\"\n    },\n    {\n      \"name\": \"thebibnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemstyle#c,\\\\cstsetup#c\": [\n      \"abbrcomma\",\n      \"abbremph\",\n      \"journal=${1|angew,jomc,ic,jacs,jcp,orglett,rsc,tetlett|}\",\n      \"language=${1:language}\",\n      \"nonotes\",\n      \"nophrases\",\n      \"notes\",\n      \"notesbefore\",\n      \"phrases\",\n      \"rademph\",\n      \"radhyphen\",\n      \"radprefix\",\n      \"radsuper\",\n      \"varioref\",\n      \"xspace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemstyle#c,\\\\cstsetup#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/circuitikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    },\n    {\n      \"name\": \"tikzlibraryfpu\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"siunitx\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circuitikzbasekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctikzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzvalof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzvalof{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsetvalof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctikzsetvalof{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfstartlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unexpandedvalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unexpandedvalueof{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarebipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarebipole{${1:anchors}}{${2:lower ysize}}{${3:shape}}{${4:upper ysize}}{${5:width}}{${6:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarebipolescaled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarebipolescaled{${1:scale}}{${2:anchors}}{${3:lower ysize}}{${4:shape}}{${5:upper ysize}}{${6:width}}{${7:code}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaledRlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctikzloadstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzloadstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctikzsetstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzsetstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctikzgetanchor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctikzgetanchor{${1:name}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzgetdirection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzgetdirection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipx{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipy{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipxy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipxy{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztextnot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikztextnot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsubcircuitdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ctikzsubcircuitdef{${1:name}}{${2:anchor1,anchor2,...}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsubcircuitactivate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzsubcircuitactivate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztunablearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ctikztunablearrow{${1:thickness}}{${2:length}}{${3:angle}}{${4:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztunablearrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ctikztunablearrow[${5:options}]{${1:thickness}}{${2:length}}{${3:angle}}{${4:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircresetpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawpoles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaledwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarethyristor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarethyristor{${1:name}}{${2:fill}}{${3:gate pos}}{${4:extra code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclaretriac{${1:name}}{${2:fill}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdiodestylemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarecutesw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarecutesw{${1:name}}{${2:bar pos}}{${3:arrow code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarecutespdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarecutespdt{${1:name}}{${2:bar pos}}{${3:arrow code}}\"\n      }\n    },\n    {\n      \"name\": \"drawmeteringcircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarejumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclarejumper{${1:name}}{${2:link arc height}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaresolderjumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclaresolderjumper{${1:name}}{0|1}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaredoublesolderjumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaredoublesolderjumper{${1:name}}{0|${2:1}{0}|1}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarelogicport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarelogicport{${1:name}}{${2:number}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareeurologicport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareeurologicport{${1:name}}{${2:symbol}}{${3:number}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeeport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeeport{${1:name}}{${2:type}}{${3:polarity}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeeportpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeeportpair{${1:name}}{${2:negated name}}{${3:type}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeebufferport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeebufferport{${1:name}}{${2:polarity}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeebufferportpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeebufferportpair{${1:name}}{${2:negated name}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeetgate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeetgate{${1:name}}{1 or 2}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretransistor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaretransistor{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"drawdobydiodedot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawdobydiodedot{${1:name}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"drawbodydiode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawbodydiode{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declarebpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarebpt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declarebjt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarebjt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declareigbt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareigbt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declaregfet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaregfet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawfetcore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawfetcore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaretransistorwrapperaddbulk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaretransistorwrapperaddbulk{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarejunctiontransistor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarejunctiontransistor{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretube\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaretube{${1:name}}{${2:grid anchors}}{${3:grid code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarequadpole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarequadpole{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircmathresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarefourport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclarefourport{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaredbipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaredbipole{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"setscaledRlenforclass\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"circuitikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/circuitikz#c\": [\n      \"european\",\n      \"american\",\n      \"europeanvoltages\",\n      \"straightvoltages\",\n      \"americanvoltages\",\n      \"oldvoltagedirection\",\n      \"nooldvoltagedirection\",\n      \"RPvoltages\",\n      \"EFvoltages\",\n      \"europeancurrents\",\n      \"americancurrents\",\n      \"americanresistors\",\n      \"europeanresistors\",\n      \"americaninductors\",\n      \"europeaninductors\",\n      \"cuteinductors\",\n      \"americanports\",\n      \"europeanports\",\n      \"americangfsurgearrester\",\n      \"europeangfsurgearrester\",\n      \"fulldiode\",\n      \"emptydiode\",\n      \"strokediode\",\n      \"arrowmos\",\n      \"noarrowmos\",\n      \"fetbodydiode\",\n      \"nofetbodydiode\",\n      \"fetsolderdot\",\n      \"nofetsolderdot\",\n      \"emptypmoscircle\",\n      \"lazymos\",\n      \"legacytransistorstext\",\n      \"nolegacytransistorstext\",\n      \"centertransistorstext\",\n      \"straightlabels\",\n      \"rotatelabels\",\n      \"smartlabels\",\n      \"betterproportions\",\n      \"siunitx\",\n      \"nosiunitx\",\n      \"compatibility\"\n    ],\n    \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\": [\n      \"romano\",\n      \"legacy\",\n      \"example\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/circuitikz#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-altacv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdfx\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"dashrule\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LaTeXcentering\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemmarker\"\n    },\n    {\n      \"name\": \"ratingmarker\"\n    },\n    {\n      \"name\": \"divider\"\n    },\n    {\n      \"name\": \"emailsymbol\"\n    },\n    {\n      \"name\": \"mailaddresssymbol\"\n    },\n    {\n      \"name\": \"phonesymbol\"\n    },\n    {\n      \"name\": \"homepagesymbol\"\n    },\n    {\n      \"name\": \"twittersymbol\"\n    },\n    {\n      \"name\": \"linkedinsymbol\"\n    },\n    {\n      \"name\": \"githubsymbol\"\n    },\n    {\n      \"name\": \"orcidsymbol\"\n    },\n    {\n      \"name\": \"locationsymbol\"\n    },\n    {\n      \"name\": \"printinfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printinfo{${1:symbol}}{${2:detail}}\"\n      }\n    },\n    {\n      \"name\": \"printinfo\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"printinfo{${1:symbol}}{${2:detail}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tagline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagline{${1:information}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photo{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photoR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photoR{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photoL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photoL{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailaddress{${1:mail address}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:homepage address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"twitter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twitter{${1:twitter username}}\"\n      }\n    },\n    {\n      \"name\": \"linkedin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linkedin{${1:linkedin username}}\"\n      }\n    },\n    {\n      \"name\": \"github\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"github{${1:github username}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:orcid number}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"personalinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"personalinfo{${1:information}}\"\n      }\n    },\n    {\n      \"name\": \"makecvheader\"\n    },\n    {\n      \"name\": \"cvsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvsection[${2:sidebar file%file}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvachievement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvachievement{${1:icon}}{${2:name%text}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvevent\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvevent{${1:title%text}}{${2:company or institution}}{${3:time period}}{${4:location}}\"\n      }\n    },\n    {\n      \"name\": \"cvtag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvtag{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvskill{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"wheelchart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wheelchart{${1:outer radius}}{${2:inner radius}}{${3:value/width/color/detail,...}}\"\n      }\n    },\n    {\n      \"name\": \"cvref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvref{${1:name}}{${2:email}}{${3:mailing address}}\"\n      }\n    },\n    {\n      \"name\": \"addsidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsidebar{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addsidebar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsidebar[${2:vspace}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addnextpagesidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addnextpagesidebar{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addnextpagesidebar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addnextpagesidebar[${2:vspace}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifxetexorluatex\"\n    },\n    {\n      \"name\": \"mynames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mynames{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewInfoField{${1:fieldname}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewInfoField{${1:fieldname}}{${2:symbol}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewInfoField*{${1:fieldname}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewInfoField*{${1:fieldname}}{${2:symbol}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"namefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"taglinefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personalinfofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvsubsectionfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/altacv#c\": [\n      \"normalphoto\",\n      \"ragged2e\",\n      \"withhyper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/altacv#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-beamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbasemodes\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"beamerbaseoptions\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"xxcolor\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"beamerbaserequires\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"headdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertaspectratio\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beamer#c\": [\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beamer#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-book.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/book#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/book#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-ctexart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexart#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexart#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-ctexbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexbeamer#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexbeamer#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-ctexbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-book\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexbook#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexbook#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-ctexrep.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-report\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexrep#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexrep#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-exam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addpoints\"\n    },\n    {\n      \"name\": \"addquestionobject\"\n    },\n    {\n      \"name\": \"answerclearance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerline\"\n    },\n    {\n      \"name\": \"answerline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"answerline[${1:answer%text}]\"\n      }\n    },\n    {\n      \"name\": \"answerlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begingradingrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"begingradingrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"bhpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bonusgradetable\"\n    },\n    {\n      \"name\": \"bonusgradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonusgradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"bonusgradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bonusgradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bonuspart\"\n    },\n    {\n      \"name\": \"bonuspart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonuspart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonuspointformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointpoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bonuspointpoints{${1:singular text%text}}{${2:plural text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bonuspointsinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointsofquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsofquestion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointsonpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsonpage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointtable\"\n    },\n    {\n      \"name\": \"bonuspointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonuspointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"bonuspointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bonuspointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bonusqformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonusqformat{${1:format spec}}\"\n      }\n    },\n    {\n      \"name\": \"bonusquestion\"\n    },\n    {\n      \"name\": \"bonusquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonusquestion[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonussubpart\"\n    },\n    {\n      \"name\": \"bonussubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonussubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonussubsubpart\"\n    },\n    {\n      \"name\": \"bonussubsubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonussubsubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonustitledquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonustitledquestion{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonustitledquestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bonustitledquestion{${1:title%text}}[${2:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonustotalformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonustotalformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"boxedpoints\"\n    },\n    {\n      \"name\": \"bracketedpoints\"\n    },\n    {\n      \"name\": \"bvpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cancelspace\"\n    },\n    {\n      \"name\": \"cancelspacefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cancelspacetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chbpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chbpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"checkboxchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkboxchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"checkboxeshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkedchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkedchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"choicelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choiceshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorfbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorfbox{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorfillwithdottedlines\"\n    },\n    {\n      \"name\": \"colorfillwithlines\"\n    },\n    {\n      \"name\": \"colorgrids\"\n    },\n    {\n      \"name\": \"colorsolutionboxes\"\n    },\n    {\n      \"name\": \"combinedgradetable\"\n    },\n    {\n      \"name\": \"combinedgradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"combinedgradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"combinedgradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"combinedgradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"combinedpointtable\"\n    },\n    {\n      \"name\": \"combinedpointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"combinedpointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"combinedpointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"combinedpointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ContinuedQuestion\"\n    },\n    {\n      \"name\": \"CorrectChoice\"\n    },\n    {\n      \"name\": \"correctchoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CorrectChoiceEmphasis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrectChoiceEmphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"correctchoiceemphasis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctchoiceemphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"covercfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"covercfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"covercfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covercfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverchead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverchead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverchead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverchead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverextrafootheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverextrafootheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextrafootheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverextrafootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextraheadheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverextraheadheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextraheadheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverextraheadheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpagefooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfirstpagefooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverfirstpageheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfirstpageheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverlfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverlfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverlfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverlhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverlhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverrfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverrfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverrhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverrhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverrunningfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverrunningheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverrunningheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvbpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvbpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dottedlinefillheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"droppoints\"\n    },\n    {\n      \"name\": \"droptotalbonuspoints\"\n    },\n    {\n      \"name\": \"droptotalpoints\"\n    },\n    {\n      \"name\": \"endgradingrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endgradingrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"extrafootheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extrafootheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extrafootheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrafootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extraheadheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extrawidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrawidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fillin\"\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillin[${1:answer%text}]\"\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fillin[${1:answer%text}][${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"fillinlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillwithdottedlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithdottedlines{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fillwithgrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithgrid{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fillwithlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithlines{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"firstpagefooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstpagefooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstpagefootrule\"\n    },\n    {\n      \"name\": \"firstpageheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstpageheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstpageheadrule\"\n    },\n    {\n      \"name\": \"firstqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"footer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"footer{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"footrule\"\n    },\n    {\n      \"name\": \"framedsolutions\"\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullwidth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gradetable\"\n    },\n    {\n      \"name\": \"gradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"gradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gradetablestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradetablestretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"greeknum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"gridlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"half\"\n    },\n    {\n      \"name\": \"header\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"header{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"headrule\"\n    },\n    {\n      \"name\": \"hpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"htword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifcontinuation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcontinuation{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifincomplete\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifincomplete{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"iflastpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflastpage{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifprintanswers\"\n    },\n    {\n      \"name\": \"IncompleteQuestion\"\n    },\n    {\n      \"name\": \"lastqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"linefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linefillheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linefillthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeemptybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeemptybox{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"marginbonuspointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginbonuspointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginpointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginpointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginpointssep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marksnotpoints\"\n    },\n    {\n      \"name\": \"multicolumnbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnbonusgradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnbonusgradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumnbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnbonuspointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnbonuspointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumncombinedgradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumncombinedgradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumncombinedpointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumncombinedpointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumngradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumngradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumngradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumngradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialbonusgradetable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialbonusgradetable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialbonuspointtable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialbonuspointtable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialcombinedgradetable{${1:numcols}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialcombinedgradetable{${1:numcols}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialcombinedpointtable{${1:numcols}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialcombinedpointtable{${1:numcols}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialgradetable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialgradetable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialpointtable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialpointtable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnpointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnpointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowbonusgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowbonusgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowbonuspointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowbonuspointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowcombinedgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowcombinedgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowcombinedpointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowcombinedpointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialbonusgradetable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialbonusgradetable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialbonuspointtable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialbonuspointtable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialcombinedgradetable{${1:numrows}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialcombinedgradetable{${1:numrows}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialcombinedpointtable{${1:numrows}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialcombinedpointtable{${1:numrows}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialgradetable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialgradetable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialpointtable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialpointtable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowpointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowpointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"noaddpoints\"\n    },\n    {\n      \"name\": \"nobonusqformat\"\n    },\n    {\n      \"name\": \"noboxedpoints\"\n    },\n    {\n      \"name\": \"nobracketedpoints\"\n    },\n    {\n      \"name\": \"nocancelspace\"\n    },\n    {\n      \"name\": \"nocolorfillwithdottedlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorfillwithlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorgrids\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorsolutionboxes\"\n    },\n    {\n      \"name\": \"nocoverfirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverfirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverrunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverrunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomorequestions\"\n    },\n    {\n      \"name\": \"nopointsinleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopointsinmargin\"\n    },\n    {\n      \"name\": \"nopointsinrightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noprintanswers\"\n    },\n    {\n      \"name\": \"noqformat\"\n    },\n    {\n      \"name\": \"noquestionsonthispage\"\n    },\n    {\n      \"name\": \"norunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosolutionsreseteqcounter\"\n    },\n    {\n      \"name\": \"nounstarredvspace\"\n    },\n    {\n      \"name\": \"numbonuspoints\"\n    },\n    {\n      \"name\": \"numcoverpages\"\n    },\n    {\n      \"name\": \"numpages\"\n    },\n    {\n      \"name\": \"numparts\"\n    },\n    {\n      \"name\": \"numpoints\"\n    },\n    {\n      \"name\": \"numqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"numquestions\"\n    },\n    {\n      \"name\": \"numsubparts\"\n    },\n    {\n      \"name\": \"numsubsubparts\"\n    },\n    {\n      \"name\": \"oddeven\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oddeven{${1:odd text%text}}{${2:even text%text}}\"\n      }\n    },\n    {\n      \"name\": \"part\"\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"part[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialpointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialpointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialpointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PgInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PgInfo{${1:question label}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"pointformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"pointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pointpoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pointpoints{${1:singular text%text}}{${2:plural text%text}}\"\n      }\n    },\n    {\n      \"name\": \"points\"\n    },\n    {\n      \"name\": \"pointsdroppedatright\"\n    },\n    {\n      \"name\": \"pointsinleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointsinmargin\"\n    },\n    {\n      \"name\": \"pointsinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"pointsinrightmargin\"\n    },\n    {\n      \"name\": \"pointsofquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsofquestion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pointsonpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsonpage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pointstwosided\"\n    },\n    {\n      \"name\": \"pointstwosidedreversed\"\n    },\n    {\n      \"name\": \"pointtable\"\n    },\n    {\n      \"name\": \"pointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"pointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"printanswers\"\n    },\n    {\n      \"name\": \"printanswersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printanswerstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qformat{${1:format spec}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"question[${1:points}]\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"questionlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightpointsmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runningfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"runningfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"runningfootrule\"\n    },\n    {\n      \"name\": \"runningheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"runningheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"runningheadrule\"\n    },\n    {\n      \"name\": \"settabletotalbonuspoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabletotalbonuspoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"settabletotalpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabletotalpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"shadedsolutions\"\n    },\n    {\n      \"name\": \"SolutionEmphasis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SolutionEmphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"solutionsreseteqcounter\"\n    },\n    {\n      \"name\": \"solutiontitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpart\"\n    },\n    {\n      \"name\": \"subpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"subpartlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpartshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubpart\"\n    },\n    {\n      \"name\": \"subsubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subsubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"subsubpartlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubpartshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechoice\"\n    },\n    {\n      \"name\": \"themarginpoints\"\n    },\n    {\n      \"name\": \"thenumparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumquestions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumsubparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumsubsubparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartno\"\n    },\n    {\n      \"name\": \"thepoints\"\n    },\n    {\n      \"name\": \"thequestion\"\n    },\n    {\n      \"name\": \"thequestiontitle\"\n    },\n    {\n      \"name\": \"thesubpart\"\n    },\n    {\n      \"name\": \"thesubsubpart\"\n    },\n    {\n      \"name\": \"titledquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titledquestion{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titledquestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"titledquestion{${1:title%text}}[${2:points}]\"\n      }\n    },\n    {\n      \"name\": \"totalbonuspoints\"\n    },\n    {\n      \"name\": \"totalformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"totalnumpages\"\n    },\n    {\n      \"name\": \"totalpoints\"\n    },\n    {\n      \"name\": \"unframedsolutions\"\n    },\n    {\n      \"name\": \"unstarredvspace\"\n    },\n    {\n      \"name\": \"uplevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uplevel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usehorizontalhalf\"\n    },\n    {\n      \"name\": \"useslantedhalf\"\n    },\n    {\n      \"name\": \"vpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtword{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"checkboxes\"\n    },\n    {\n      \"name\": \"choices\"\n    },\n    {\n      \"name\": \"coverpages\"\n    },\n    {\n      \"name\": \"EnvFullwidth\"\n    },\n    {\n      \"name\": \"EnvUplevel\"\n    },\n    {\n      \"name\": \"examframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examleftbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneparcheckboxes\"\n    },\n    {\n      \"name\": \"oneparchoices\"\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"solutionorbox\"\n    },\n    {\n      \"name\": \"solutionorbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionordottedlines\"\n    },\n    {\n      \"name\": \"solutionordottedlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionorgrid\"\n    },\n    {\n      \"name\": \"solutionorgrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionorlines\"\n    },\n    {\n      \"name\": \"solutionorlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"subparts\"\n    },\n    {\n      \"name\": \"subsubparts\"\n    },\n    {\n      \"name\": \"TheSolution\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/exam#c\": [\n      \"answers\",\n      \"cancelspace\",\n      \"addpoints\",\n      \"solutionsreseteqcounter\"\n    ],\n    \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\": [\n      \"questions\",\n      \"pages\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/exam#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-letter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:returnaddress}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:yourname}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:return address}}{${2:to address}}\"\n      }\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/letter#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/letter#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-memoir.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"delarray\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abnormalparskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abnormalparskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"abovecolumnspenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abscolnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abscoltextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abslabeldelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abslabeldelim{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"absleftindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absnamepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absrightindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractrunin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstracttextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addappheadtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"added\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"added{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"addperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addperiod{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtodef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtodef{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtodef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtodef*{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtoiargdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtoiargdef{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtoiargdef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtoiargdef*{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtonotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtopsmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtopsmarks{${1:pagestyle%keyvals}}{${2:prepend}}{${3:append}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtostream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtostream{${1:stream}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"afterbookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchaptertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterloftitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterlottitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitlenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpoemtitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertoctitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aliaspagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aliaspagestyle{${1:alias%keyvals}}{${2:original}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anyptfilebase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anyptsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpage*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixtocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"arraytostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraytostring{${1:array name}}{${2:result%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"atcentercr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"atendtheglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autocols\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"autocols{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autocols\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"autocols[${5:width}]{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autorows\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"autorows{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autorows\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"autorows[${5:width}]{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"beforebookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforechapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforePoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepoemtitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begintheglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblistextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bicaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"bicaption[${5:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicontcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bicontcaption{${1:long1%text}}{${2:name%text}}{${3:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"binding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption[${6:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption[${6:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bktabrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bktabrule{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"blockdescriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockdescriptionlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"book{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booknumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"booknumberlinebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booknumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"booknumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookpagemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookpagemark{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bookrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booktitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomsectionpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxedverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedverbatiminput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxedverbatiminput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedverbatiminput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxverbflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"bs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvendofpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvendofpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvendrulehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvleftsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumbersinside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumbersoutside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvrightsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvsides\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopandtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopmidhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopofpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvtopofpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvtoprulehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calccentering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calccentering{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cancelthanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiondelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiondelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"captionnamefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionnamefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionstyle[${2:shortstyle}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"captiontitlefinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontitlefinal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontitlefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"centerfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerlastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftaddnumtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cftaddnumtitleline{${1:ext}}{${2:kind}}{${3:num}}{${4:title%text}}{${5:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cftaddtitleline{${1:ext}}{${2:kind}}{${3:title%text}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftappendixname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforebookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforechapterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforefigureskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforeparagraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforepartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubparagraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubsubsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforetableskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbooknumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapteraftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapteraftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapternumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdotfill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftdotfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfiguredotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurefillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigurefillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigurefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigureformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigureformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigureformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigureindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurepagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurepresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftinsert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftinsert{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cftinsertcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cftinsertcode{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cftinserthook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cftinserthook{${1:file}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"cftlocalchange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftlocalchange{${1:ext}}{${2:pnumwidth}}{${3:toc}}\"\n      }\n    },\n    {\n      \"name\": \"cftnodots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpagenumbersoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumbersoff{${1:kind}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumberson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumberson{${1:kind}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartfillnum{${1:pnum}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartformatpnum{${1:pnum}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsetindents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftsetindents{${1:kind}}{${2:indent}}{${3:numwidth}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabledotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablefillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttablefillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cfttablefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttableformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cfttableformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttableformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cfttableindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablepagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablepresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftwhatismyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changecaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changed{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossactual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossactual{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossactual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossactual[${2:file}]{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossnum{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossnum[${2:file}]{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossnumformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossnumformat[${2:file}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossref{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossref[${2:file}]{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"changepage{${1:textheight}}{${2:textwidth}}{${3:evensidemargin}}{${4:oddsidemargin}}{${5:columnsep}}{${6:topmargin}}{${7:headheight}}{${8:headsep}}{${9:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"changetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"changetext{${1:textheight}}{${2:textwidth}}{${3:evensidemargin}}{${4:oddsidemargin}}{${5:columnsep}}\"\n      }\n    },\n    {\n      \"name\": \"changetocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changetocdepth{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"chapindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapterheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chapternumberlinebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecishere\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecishere{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecistoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecistoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\chapterstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaptitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkandfixthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkandfixthelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"checkandfixthelayout[${1:algorithm%keyvals}]\",\n        \"keys\": [\n          \"\\\\checkandfixthelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"checkarrayindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"checkarrayindex{${1:array name}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"checkifinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkifinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"checkoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkthelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"checkthelayout[${1:algorithm%keyvals}]\",\n        \"keys\": [\n          \"\\\\checkthelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citeindexfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearforchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"clearplainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearplainmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartoevenpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"cleartooddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartooddpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartooddpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"cleartorecto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"closeoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cmdprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdprint{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"colorchapnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorchaptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentsoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentsoff{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"commentson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentson{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"continuousmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuousnotenums\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubbottom[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubbottom[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubtop[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubtop[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copypagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copypagestyle{${1:copy%specialDef}}{${2:original%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"createmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"createmark{${1:sec}}{${2:marks%keyvals}}{${3:show}}{${4:prefix}}{${5:postfix}}\",\n        \"keys\": [\n          \"\\\\createmark,\\\\createplainmark\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"createplainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"createplainmark{${1:type}}{${2:marks%keyvals}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\createmark,\\\\createplainmark\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"crtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ctableftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctabrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctabsetlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deleted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deleted{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"DisemulatePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisemulatePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"doccoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoubleSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoubleSpacing*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dropchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropchapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"droptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"easypagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptythanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmulatedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmulatedPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"EmulatedPackage{${1:package}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EmulatedPackageWithOptions{${1:options}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"EmulatedPackageWithOptions{${1:options}}{${2:package}}[${3:date}]\"\n      }\n    },\n    {\n      \"name\": \"endMakeFramed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ensureonecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraph{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphfontsize{${1:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphforheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphforheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphforheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphforheader[${2:distance%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphhead[${2:distance%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphsourceposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphsourceposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphtextposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphtextposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everylistparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetminihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetreinshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancybreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancybreak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fancybreak*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancybreak*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"feetabovefloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetatbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetbelowfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetbelowragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixdvipslayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixheaderwidths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixpdflayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flagverse{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"flegfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegtocfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flegtocfigure{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"flegtoctable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flegtoctable{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"FloatBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FloatBlockAllowAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FloatBlockAllowBelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushleftright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefiddle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesatfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesinmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottopagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"foremargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameHeightAdjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepichead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepichook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepictextfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"frontmatter*\"\n    },\n    {\n      \"name\": \"Ftrimpicbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getarrayelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getarrayelement{${1:array name}}{${2:index}}{${3:result}}\"\n      }\n    },\n    {\n      \"name\": \"getthelinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthelinenumber{${1:counter}}{${2:start}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossary{${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glossary[${3:file}]{${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"glossary[${3:file}](${4:key%plain}){${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossarycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarymark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glossitem{${1:term}}{${2:description%text}}{${3:ref}}{${4:num}}\"\n      }\n    },\n    {\n      \"name\": \"gobm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hangcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangfrom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hangpara\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangpara{${1:indent%l}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"hangsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headnameref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headstyles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headstyles{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"headwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideindexmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"hyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hyperspindexpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idtextinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idtextinnotes{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ifanappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifartopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbvcountlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvcountlinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvcountlinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbvperpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvperpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvperpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdraftdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmemtortm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnobibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifonlyfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifonlyfloats{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifscapmargleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scapmarglefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scapmargleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfStreamOpen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfStreamOpen{${1:stream}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorenoidxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiirdstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iindstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentafterchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentcaption{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"indentpattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentpattern{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"indexcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexmarkstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertchapterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iscntrmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iscntrmod{${1:counter}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"isopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isopage{${1:spine%l}}\"\n      }\n    },\n    {\n      \"name\": \"iststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"justlastraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keepthetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"killtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"label(${2:bookmark}){${1:label%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"LastFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlineparrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinerulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leadpagetoclevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leavespergathering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leavespergathering{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"leftcenterright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftspringright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"leftspringright{${1:lfrac}}{${2:rfrac}}{${3:ltext}}{${4:rtext}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"letcountercounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letcountercounter{${1:counter1}}{${2:counter2}}\"\n      }\n    },\n    {\n      \"name\": \"linemodnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenottooshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenottooshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linenottooshort[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"linenumberfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"linenumberfrequency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberfrequency{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"linespercol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lofheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lofmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loosesubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lotheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpicbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpicbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpictl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpictr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lxvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"mainmatter*\"\n    },\n    {\n      \"name\": \"makechapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makechapterstyle{${1:name%specialDef}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"makeevenfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeevenfoot{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeevenhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeevenhead{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makefootmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makefootmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makefootmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefootrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makefootrule{${1:pagestyle%keyvals}}{${2:width}}{${3:thickness%l}}{${4:skip%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeFramed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeFramed{${1:settings}}\"\n      }\n    },\n    {\n      \"name\": \"makeheadfootruleprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootruleprefix{${1:pagestyle%keyvals}}{${2:for headrule}}{${3:for footrule}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadfootstrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootstrut{${1:pagestyle%keyvals}}{${2:head strut}}{${3:foot strut}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadfootvposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootvposition{${1:pagestyle%keyvals}}{${2:arg2}}{${3:arg3}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"makeheadposition{${1:pagestyle%keyvals}}{${2:eheadpos}}{${3:oheadpos}}{${4:efootpos}}{${5:ofootpos}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadrule{${1:pagestyle}}{${2:width}}{${3:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"makeheadstyles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeheadstyles{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"makeindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeindex[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"makememglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makememindexhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeoddfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeoddfoot{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeoddhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeoddhead{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makepagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makepagestyle{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"makepsmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makepsmarks{${1:pagestyle%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningfootwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningfootwidth{${1:pagestyle%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningheadwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningheadwidth{${1:pagestyle%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningwidth{${1:pagestyle%keyvals}}{${2:headwidth%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makerunningwidth{${1:pagestyle%keyvals}}[${3:footwidth%l}]{${2:headwidth%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makesidefootmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesidefootmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesidefootmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethanksmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehooka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marginfloatmarginmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginparmargin{${1:placement}}\"\n      }\n    },\n    {\n      \"name\": \"maxsecnumdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxsecnumdepth{${1:secname%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxtocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxtocdepth{${1:secname}}\"\n      }\n    },\n    {\n      \"name\": \"medievalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medievalpage{${1:spine%l}}\"\n      }\n    },\n    {\n      \"name\": \"memappchapinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memappchapinfo{${1:chapter}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memappchapstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memappchapstarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memapppageinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memapppageinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memapppagestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memapppagestarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"membicaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membicaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membionenumcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membionenumcaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membitwonumcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membitwonumcaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membookinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"membookinfo{${1:thebook}}{${2:for toc}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"membookstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membookstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memcaptioninfo{${1:type}}{${2:thetype}}{${3:for toc}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memchapinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memchapinfo{${1:chapter}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memchapstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memchapstarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memcline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memcline{${1:width}}{${2:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"memdskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memdskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memendofchapterhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfblineboxa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memfblineboxa{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memfblineboxtwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memfblineboxtwo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memfblistfixparams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontenc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memglodesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memglodesc{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"memglonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memglonum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"memgloref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgloref{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"memgloterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgloterm{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"memgobble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memhline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memhline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"memhline[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"memifmacroused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memifmacroused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memjustarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memjustarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memleadpageinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memleadpageinfo{${1:pagestyle%keyvals}}{${2:name}}{${3:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"memleadpagestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memleadpagestarinfo{${1:pagestyle%keyvals}}{${2:name}}{${3:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"memlegendinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memlegendinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memletcmdtxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memletcmdtxt{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"memlettxttxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memlettxttxt{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"memlettxtcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memlettxtcmd{${1:csname}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memlistsubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memnamedlegendinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memnamedlegendinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memoirpostopthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorigdbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorigpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempartinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mempartinfo{${1:part}}{${2:for toc}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempartstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempartstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempnofilewarn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempoeminfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempoeminfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempoemstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempoemstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPoemTitleinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memPoemTitleinfo{${1:thepoem}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPoemTitlestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memPoemTitlestarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempostaddapppagetotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddbooktotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddchaptertotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddparttotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddapppagetotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddbooktotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddchaptertotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddparttotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MemRestoreOrigMakecase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLmainraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLmainraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLvleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLvrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memsecinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"memsecinfo{${1:name}}{${2:thename}}{${3:for toc}}{${4:for head}}{${5:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memsecstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memsecstarinfo{${1:name}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memsetcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memsetcounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"memsetlengthmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memsetlengthmax{${1:length}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"memsetlengthmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memsetlengthmin{${1:length}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"memsetmacrounused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memsetmacrounused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memsetmacroused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memsetmacroused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memUChead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memwritetoglo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"memwritetoglo{${1:key%plain}}{${2:name}}{${3:desc}}{${4:ref}}{${5:number}}\"\n      }\n    },\n    {\n      \"name\": \"mergepagefloatstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mergepagefloatstyle{${1:style}}{${2:textstyle}}{${3:floatstyle}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"midbicaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midbicaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"midbookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midchapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MidFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midpartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midPoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miniscule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetoevenpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetoevenpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetoevenpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"movetooddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetooddpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetooddpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"mpjustification\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msdoublespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mssinglespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedlegend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedsubappendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumberand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumbercomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nametest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nametest{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"needspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"newarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarray{${1:array name}}{${2:low}}{${3:high}}\"\n      }\n    },\n    {\n      \"name\": \"newcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newfixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloat{${1:envname}}{${2:ext}}{${3:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newfloat[${4:within}]{${1:envname}}{${2:ext}}{${3:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnoteseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnoteseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"newinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"newleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newleadpage*[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newleadpage*{${1:cmd}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"newleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newleadpage[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newleadpage{${1:cmd}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistentry{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistentry[${4:within}]{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistof{${1:csname}}{${2:ext}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"newloglike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newloglike{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"newloglike*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newloglike*{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"newoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"newpmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpmemlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"nNamec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobookblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nochangemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noDisplayskipStretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noglossaryintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindentafterchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindexintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonzeroparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopartblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopfbreakOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noprelistbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbottomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalrulethickness\"\n    },\n    {\n      \"name\": \"normalsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notedivision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteidinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noteidinnotes{${1:number}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"noteinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noteinnotes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notenuminnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenuminnotes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notenumintext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenumintext{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notepageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nouppercaseheads\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberlinebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numberlinebox{${1:length}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"numberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"onecolglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onecolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onecoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnehalfSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnehalfSpacing*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelineskip\"\n    },\n    {\n      \"name\": \"openany\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openinputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openinputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"openleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openoutputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openoutputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"openright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"OrdinalToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrdinalToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordscript{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"overridescapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overridescapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"pageai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageavi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageavii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebroadsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedbill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageexecutive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefoolscapvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageimperialvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageinnotes{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pagelargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelargepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageledger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelegal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemediumvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemlargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemsmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenoteanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenoteanchor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotehyperanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenotehyperanchor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotesubhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pagenotesubhead{${1:chapapp}}{${2:number}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotesubheadstarred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pagenotesubheadstarred{${1:chapapp}}{${2:number}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenumbering*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenumbering*{${1:numstyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagenumbering*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pageold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagepottvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesmalldemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagestatement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesuperroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetofootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"paragraph[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphfootstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"paraheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parahook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paraindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parnopar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"partnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberlinebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partnumberlinebox{${1:length}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"partnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patchcmdError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patchcmdError{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"patchcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"patchcommand{${1:cmd}}{${2:start code}}{${3:end code}}\"\n      }\n    },\n    {\n      \"name\": \"pfbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreak*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreakdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pfbreakdisplay{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pfbreakOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreakskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plainbreak{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"plainfancybreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plainfancybreak{${1:space}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"plainfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plainfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"PlainPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pmemlabelref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabelref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"pmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnchap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnschap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoemTitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PoemTitle[${2:for toc%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PoemTitle[${2:for toc%text}][${3:for head%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoemTitle*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PoemTitle*[${2:for toc%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PoemTitle*[${2:for toc%text}][${3:for head%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitleheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlemark{${1:for head}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitlenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlepstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlestarmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlestarmark{${1:for head}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlestarpstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postautotab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postbibhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postchapterprecis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postdate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postnoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preautotab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prebibhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prechapterprecis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechapterprecisshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistocfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistocformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistoctext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precistoctext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"predate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"predate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"Pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"preglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preindexhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prenoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prenotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbooknum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbooktitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbooktitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchapternonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchaptertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printchaptertitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printglossary[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"printloftitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printloftitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printlottitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlottitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printpageinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printpageinnotes{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"printpageinnoteshyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printpageinnoteshyperref{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"printpagenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpagenotes*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpartnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printparttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printparttitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printPoemTitlenonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printPoemTitlenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printPoemTitletitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPoemTitletitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtime*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtoctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtoctitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"providecounter{${1:counter}}[${2:within}]\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providefixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"providelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"provideloglike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideloglike{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qitem{${1:text}}{${2:source%text}}\"\n      }\n    },\n    {\n      \"name\": \"qitemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qitemlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quarkmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedbottomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedrightthenleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedwrap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"raggedyright[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"ragrparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readaline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readaline{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readboxedverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readboxedverbatim{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readboxedverbatim*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readboxedverbatim*{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readverbatim{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readverbatim*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readverbatim*{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"refixpagelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registrationColour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registrationColour{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewfixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"renewleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewleadpage*[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewleadpage*{${1:cmd}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewleadpage[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewleadpage{${1:cmd}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"reparticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportnoidxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RequireAtEndClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RequireAtEndClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RequireAtEndPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RequireAtEndPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"resetbvlinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorefromonecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorepagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoretrivseps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"russianpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savetrivseps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saythanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semiisopage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semiisopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiisopage[${1:spine%l}]\"\n      }\n    },\n    {\n      \"name\": \"setafterparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setafterparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubsubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubsubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setarrayelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarrayelement{${1:array name}}{${2:index}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforeparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforeparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubsubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubsubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbiblabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbiblabel{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setbinding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbinding{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setbvlinenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbvlinenums{${1:first}}{${2:start at}}\"\n      }\n    },\n    {\n      \"name\": \"setcolsepandrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolsepandrule{${1:colsep%l}}{${2:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"setDisplayskipStretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDisplayskipStretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setfillsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"setfillsize{${1:T}}{${2:C}}{${3:L}}{${4:R}}{${5:r}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatadjustment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfloatadjustment{${1:float name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setFloatBlockFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFloatBlockFor{${1:sectional name}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatlocations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfloatlocations{${1:float}}{${2:locs}}\"\n      }\n    },\n    {\n      \"name\": \"setFloatSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFloatSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setfootins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfootins{${1:length normal}}{${2:length minipage}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfootnoterule{${1:vfill}}{${2:uplift}}{${3:width}}{${4:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"sethangfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethangfrom{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setheaderspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setheaderspaces{${1:headdrop%l}}{${2:headsep%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setheadfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setheadfoot{${1:headheight%l}}{${2:footskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setlrmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlrmargins{${1:spine%l}}{${2:edge%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setlrmarginsandblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlrmarginsandblock{${1:spine%l}}{${2:edge%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setlxvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlxvchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setlxvchars[${1:fontspec}]\"\n      }\n    },\n    {\n      \"name\": \"setmarginfloatcaptionadjustment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmarginfloatcaptionadjustment{${1:float}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setmarginnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setmarginnotes{${1:separation%l}}{${2:width}}{${3:psuh%l}}\"\n      }\n    },\n    {\n      \"name\": \"setmpbools\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmpjustification\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmpjustification{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"setnzplist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpagebl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebl{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagebm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebm{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagebr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagecc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagecc{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpageml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpageml{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagemr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagemr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setPagenoteSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPagenoteSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetl{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetm{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setparaheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparaheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setparahook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparahook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setparaindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparaindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setpnumwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpnumwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setrectanglesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrectanglesize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setrmarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrmarg{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsecnumdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumdepth{${1:secname%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsecnumdepth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsecnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumformat{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setsidebarheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidebarheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidebars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setsidebars{${1:hsep}}{${2:width}}{${3:vsep}}{${4:topsep}}{${5:font}}{${6:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidecappos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidecappos{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"setsidecaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsidecaps{${1:sep}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefeet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setsidefeet{${1:hsep}}{${2:width}}{${3:vsep}}{${4:adj}}{${5:font}}{${6:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefootheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setspbools\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstocksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstocksize{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparaheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparaheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparahook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparahook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparaindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparaindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setthesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocdepth{${1:secname}}\"\n      }\n    },\n    {\n      \"name\": \"settocpreprocessor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settocpreprocessor{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"settrimmedsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settrimmedsize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"settrims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settrims{${1:top}}{${2:foredge}}\"\n      }\n    },\n    {\n      \"name\": \"settypeblocksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settypeblocksize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"settypeoutlayoutunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settypeoutlayoutunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"setulmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setulmargins{${1:upper%l}}{${2:lower%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setulmarginsandblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setulmarginsandblock{${1:upper%l}}{${2:lower%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setupcomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setverbatimfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setverbatimfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setverselinenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setverselinenums{${1:first}}{${2:start at}}\"\n      }\n    },\n    {\n      \"name\": \"setxlvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setxlvchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setxlvchars[${1:fontspec}]\"\n      }\n    },\n    {\n      \"name\": \"shortsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showheadfootlocoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showheadfootlocon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showindexmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtextblocklocoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtextblocklocon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtrimsoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtrimson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidebarfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarhsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebarmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidebartopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapfloatwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidecapraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefoothsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootmarkstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootmarkstyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidefootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sidefootnotemark[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidefootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefoottextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideparmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sideparvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SingleSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slashfrac{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"slashfracstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slashfracstyle{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"sloppybottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourceatright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sourceatright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceatright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sourceatright[${2:length}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialindex{${1:file}}{${2:counter}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"spinemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"stanzaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockavi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockavii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbroadsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockdbill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockexecutive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockfoolscapvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockimperialvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklargepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockledger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklegal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmediumvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmlargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmsmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockpostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockpottvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksmalldemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockstatement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksuperroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stringtoarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stringtoarray{${1:array name}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subbottom[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subbottom[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionlabelfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionlabelfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"subconcluded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcapmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcaptopadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatlabelskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloattopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subparagraph[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subparaheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparahook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparaindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsection[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsecindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsubsection[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtop[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtop[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"symboldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symboldef{${1:symbol}}{${2:meaning}}\"\n      }\n    },\n    {\n      \"name\": \"symbollabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbollabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"symbolthanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teennumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teennumbername{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teenordinalname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensnumbername{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensordinalname{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensunitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksgap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksgap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"thanksheadextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thanksheadextra{${1:pre}}{${2:post}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmark{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksmarkseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmarkseries{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarkstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmarkstyle{${1:defn}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxsecnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesheetsequence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesidefootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolumnfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threecolumnfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"tiethstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightsubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"titleref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref*{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"titlingpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkmr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocbaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocentryskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocnameref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"topsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traditionalparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"trimedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimFrame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimLmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmarkscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimXmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumnfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"typeoutlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeoutstandardlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ucminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undodrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitnumbername{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unitordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitordinalname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unletcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unletcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"unnamedsubappendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercaseheads\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usethanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verselinebreak[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"verselinenumbersleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinenumbersright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vinphantom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vinphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vleftofline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vleftofline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vlvnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xindyindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zerotrivseps\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"adjustwidth*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left%l}}{${2:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjustwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left%l}}{${2:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"altverse\"\n    },\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"bibitemlist\"\n    },\n    {\n      \"name\": \"blockdescription\"\n    },\n    {\n      \"name\": \"boxedverbatim*\"\n    },\n    {\n      \"name\": \"boxedverbatim\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"ctabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"ctabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleSpace*\"\n    },\n    {\n      \"name\": \"DoubleSpace\"\n    },\n    {\n      \"name\": \"epigraphs\"\n    },\n    {\n      \"name\": \"fboxverbatim\"\n    },\n    {\n      \"name\": \"flexlabelled\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"hangparas\"\n    },\n    {\n      \"name\": \"KeepFromToc\"\n    },\n    {\n      \"name\": \"labelled\"\n    },\n    {\n      \"name\": \"leftbar\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"midsloppypar\"\n    },\n    {\n      \"name\": \"onecolabstract\"\n    },\n    {\n      \"name\": \"OnehalfSpace*\"\n    },\n    {\n      \"name\": \"OnehalfSpace\"\n    },\n    {\n      \"name\": \"patverse*\"\n    },\n    {\n      \"name\": \"patverse\"\n    },\n    {\n      \"name\": \"qframe\"\n    },\n    {\n      \"name\": \"qshade\"\n    },\n    {\n      \"name\": \"shaded\"\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:fortoc}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:fortoc}]{${1:title%text}}[${3:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidecontcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecontcaption\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidelegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidelegend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidenamedlegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenamedlegend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"SingleSpace\"\n    },\n    {\n      \"name\": \"snugshade\"\n    },\n    {\n      \"name\": \"Spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"subappendices\"\n    },\n    {\n      \"name\": \"subfloat\"\n    },\n    {\n      \"name\": \"symbols\"\n    },\n    {\n      \"name\": \"theglossary\"\n    },\n    {\n      \"name\": \"titlingpage*\"\n    },\n    {\n      \"name\": \"titlingpage\"\n    },\n    {\n      \"name\": \"verbatimoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"vminipage\"\n    },\n    {\n      \"name\": \"vplace\"\n    },\n    {\n      \"name\": \"writeverbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stream}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/memoir\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"a7paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"b7paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\chapterstyle\": [\n      \"article\",\n      \"asu\",\n      \"asuappendix\",\n      \"bianchi\",\n      \"bringhurst\",\n      \"brotherton\",\n      \"chappell\",\n      \"companion\",\n      \"crosshead\",\n      \"culver\",\n      \"dash\",\n      \"default\",\n      \"demo\",\n      \"demo2\",\n      \"demo3\",\n      \"dowding\",\n      \"ell\",\n      \"fred\",\n      \"ger\",\n      \"hangnum\",\n      \"komalike\",\n      \"lyhne\",\n      \"madsen\",\n      \"ntglike\",\n      \"pedersen\",\n      \"reparticle\",\n      \"section\",\n      \"southall\",\n      \"tandh\",\n      \"thatcher\",\n      \"veelo\",\n      \"verville\",\n      \"wilsondob\",\n      \"%chapterstyle\"\n    ],\n    \"\\\\checkandfixthelayout\": [\n      \"fixed\",\n      \"classic\",\n      \"lines\",\n      \"nearest\"\n    ],\n    \"\\\\checkthelayout\": [\n      \"fixed\",\n      \"classic\",\n      \"lines\",\n      \"nearest\"\n    ],\n    \"\\\\createmark,\\\\createplainmark\": [\n      \"left\",\n      \"both\",\n      \"right\"\n    ],\n    \"\\\\maxsecnumdepth\": [\n      \"book\",\n      \"part\",\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"paragraph\",\n      \"subparagraph\",\n      \"all\",\n      \"none\"\n    ],\n    \"\\\\setsecnumdepth\": [\n      \"book\",\n      \"part\",\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"paragraph\",\n      \"subparagraph\",\n      \"all\",\n      \"none\"\n    ],\n    \"\\\\pagenumbering*#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"simple\",\n      \"ruled\",\n      \"Ruled\",\n      \"companion\",\n      \"book\",\n      \"chapter\",\n      \"cleared\",\n      \"part\",\n      \"title\",\n      \"titlingpage\",\n      \"%pagestyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/memoir\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-moderncv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"tweaklist\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"moderncvcollection\"\n    },\n    {\n      \"name\": \"moderncvcompatibility\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifxetexorluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopagenumbers\"\n    },\n    {\n      \"name\": \"pagenumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"name{${1:first name}}{${2:last name}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"address{${1:street}}{${2:city}}{${3:country}}\"\n      }\n    },\n    {\n      \"name\": \"born\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"born{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:protocol}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phone[${2:type%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\phone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"social{${1:user name}}\"\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"social[${2:type%keyvals}]{${1:user name}}\",\n        \"keys\": [\n          \"\\\\social\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"social[${2:type%keyvals}][${3:URL}]{${1:user name}}\",\n        \"keys\": [\n          \"\\\\social\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extrainfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrainfo{${1:extra info%text}}\"\n      }\n    },\n    {\n      \"name\": \"listitemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bornsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilephonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixedphonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxphonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"homepagesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linkedinsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xingsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twittersocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mastodonsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"githubsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gitlabsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stackoverflowsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bitbucketsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skypesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcidsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchgatesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researcheridsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"googlescholarsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telegramsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whatsappsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrixsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signalsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codebergsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discordsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twitchsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"youtubesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiktoksocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instagramsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"soundcloudsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"steamsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xboxsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"playstationsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"battlenetsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arxivsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inspiresocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefooter\"\n    },\n    {\n      \"name\": \"moderncvstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvstyle[${2:options}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvhead{${1:header variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvhead[${2:options}]{${1:header variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvbody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvbody{${1:body variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvbody[${2:options}]{${1:body variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvfoot{${1:foot variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvfoot[${2:options}]{${1:foot variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvcolor{${1:color-scheme%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvicons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvicons{${1:icon set%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvicons\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recomputeheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputebodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputefootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputelengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"photo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"photo[${2:width}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"photo[${2:width}][${3:frame thickness%l}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenumberfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstnamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lastnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastnamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hintstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hintstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenumberstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenumberstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"recomputecvheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvbodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvfootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makenewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvtitle\"\n    },\n    {\n      \"name\": \"makecvhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvitem{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvitem[${3:spacing%l}]{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem[${5:spacing%l}]{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtripleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cvtripleitem{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}{${5:heading3%text}}{${6:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtripleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cvtripleitem[${7:spacing%l}]{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}{${5:heading3%text}}{${6:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvlistitem{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvlistitem[${2:spacing%l}]{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvlistdoubleitem{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvlistdoubleitem[${3:spacing%l}]{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cventry{${1:years%text}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cventry[${7:spacing%l}]{${1:years%text}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvitemwithcomment{${1:item%text}}{${2:item description%text}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httpslink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httpslink[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:text}]{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"tellink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tellink{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"tellink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tellink[${2:text}]{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"onlynumberslink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlynumberslink{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thecvcolumnscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecvcolumnsautowidthcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetmpiteratorcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnsdummywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnsautowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnautowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvcolumn{${1:head%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvcolumn[${3:width}]{${1:head%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcolumncell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvcolumncell{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliographyhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliographyhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"recipient\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"recipient{${1:recipient}}{${2:recipient address}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:opening%text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:closing%text}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"signature{${1:scale}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"enclosure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enclosure{${1:enclosure%text}}\"\n      }\n    },\n    {\n      \"name\": \"enclosure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enclosure[${2:alternative name%text}]{${1:enclosure%text}}\"\n      }\n    },\n    {\n      \"name\": \"recomputeletterheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterbodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterfootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makelettertitle\"\n    },\n    {\n      \"name\": \"makeletterhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeletterfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeletterclosing\"\n    },\n    {\n      \"name\": \"hintscolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separatorcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tripleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separatorrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listdoubleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cventryyearbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cventrytitleboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvskill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskill{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}][${2:factor}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}][${2:factor}][${3:exp-width%l}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskilllegendcolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setcvskilllegendcolumns[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskilllegendcolumns\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"setcvskilllegendcolumns[${1:width}][${2:factor}]\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskilllegend{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskilllegend[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskilllegend[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskilllegend*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskilllegend*[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskilllegend*[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskillplainlegend{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskillplainlegend[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskillplainlegend[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskillplainlegend*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskillplainlegend*[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskillplainlegend*[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cvskillhead[${1:padding%l}]\"\n      }\n    },\n    {\n      \"name\": \"cvskillhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"cvskillhead[${1:padding%l}][${2:name1}][${3:name2}][${4:name3}][${5:name4}]\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry[${6:padding%l}]{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry*{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry*[${6:padding%l}]{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"footsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottempbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtofoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtofoot{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"addtofoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtofoot[${2:symbol}]{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"flushfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadnamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadpicturebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheaddetailswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadpicturewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadnamebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailstempbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailsboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtomakeheaddetails\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtomakeheaddetails{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"addtomakeheaddetails\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtomakeheaddetails[${2:symbol}]{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"flushmakeheaddetails\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecvheadinfo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makecvheadinfobox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadinfoheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cvcolumns\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/moderncv#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"sans\",\n      \"roman\",\n      \"draft\",\n      \"final\"\n    ],\n    \"\\\\phone\": [\n      \"fixed\",\n      \"mobile\",\n      \"fax\"\n    ],\n    \"\\\\social\": [\n      \"linkedin\",\n      \"xing\",\n      \"twitter\",\n      \"mastodon\",\n      \"github\",\n      \"gitlab\",\n      \"stackoverflow\",\n      \"bitbucket\",\n      \"skype\",\n      \"orcid\",\n      \"researchgate\",\n      \"researcherid\",\n      \"telegram\",\n      \"whatsapp\",\n      \"signal\",\n      \"matrix\",\n      \"googlescholar\",\n      \"codeberg\",\n      \"discord\",\n      \"twitch\",\n      \"youtube\",\n      \"tiktok\",\n      \"instagram\",\n      \"soundcloud\",\n      \"steam\",\n      \"xbox\",\n      \"playstation\",\n      \"battlenet\",\n      \"arxiv\",\n      \"inspire\"\n    ],\n    \"\\\\moderncvstyle#c\": [\n      \"banking\",\n      \"casual\",\n      \"classic\",\n      \"empty\",\n      \"fancy\",\n      \"oldstyle\"\n    ],\n    \"\\\\moderncvcolor#c\": [\n      \"black\",\n      \"blue\",\n      \"burgundy\",\n      \"green\",\n      \"grey\",\n      \"orange\",\n      \"purple\",\n      \"red\"\n    ],\n    \"\\\\moderncvicons\": [\n      \"academic\",\n      \"awesome\",\n      \"letters\",\n      \"marvosym\",\n      \"symbols\",\n      \"tikz\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/moderncv#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/class-scrartcl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"abstract=${1|true,on,yes,false,off,no|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"sectionentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"headings=${1|big,normal,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/class-scrbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchapmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchapmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addchaptertocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addchaptertocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:additional test}}\"\n      }\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlinesformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfChapterUsesPrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfChapterUsesPrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheademptypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapterentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,chapterentrywithdots,chapterentrydotfill,chapterentrywithoutdots,chapterentryfill,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"chapterentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"open=${1|any,left,right|}\",\n      \"chapterprefix=${1|true,on,yes,false,off,no|}\",\n      \"appendixprefix=${1|true,on,yes,false,off,no|}\",\n      \"headings=${1|big,normal,onelineappendix,noappendixprefix,appendixwithoutprefix,appendixwithoutprefixline,onelinechapter,nochapterprefix,chapterwithoutprefix,chapterwithoutprefixline,openany,openleft,openright,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses,twolineappendix,appendixprefix,appendixwithprefix,appendixwithprefixline,twolinechapter,chapterprefix,chapterwithprefix,chapterwithprefixline|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"chapteratlists\",\n      \"chapteratlists=\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|chapterentry,withchapterentry,chaptergapline,onelinechaptergap,chaptergapsmall,smallchaptergap,entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,nochaptergap,ignorechapter,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"chapter\",\n      \"chapterentry\",\n      \"chapterentrydots\",\n      \"chapterentrypagenumber\",\n      \"chapterprefix\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\setpartpreamble,\\\\setchapterpreamble\": [\n      \"o\",\n      \"u\",\n      \"l\",\n      \"r\",\n      \"c\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/class-scrlttr2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"copy\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"copy\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrchar{${1:initial letter}}\"\n      }\n    },\n    {\n      \"name\": \"addrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addrentry{${1:last name}}{${2:first name}}{${3:address}}{${4:phone}}{${5:F1}}{${6:F2}}{${7:F3}}{${8:F4}}{${9:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtolengthplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolengthplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtoplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtoplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtoreffields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoreffields{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bankname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:distribution list%text}}\"\n      }\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:concluding text%text}}\"\n      }\n    },\n    {\n      \"name\": \"customername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultreffields\"\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:enclosures%text}}\"\n      }\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreachemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachkomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavarifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreachkomavarifempty{${1:list of variables}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"foreachnonemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachnonemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavar{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty*{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifplength{${1:pseudo-length}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invoicename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelitemfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LetterOptionNeedsPapersize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetterOptionNeedsPapersize{${1:option name}}{${2:paper size}}\"\n      }\n    },\n    {\n      \"name\": \"letterpagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadLetterOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOption{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadLetterOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOptions{${1:list of names%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"mobilephonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar*[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newplength{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:salutation%text}}\"\n      }\n    },\n    {\n      \"name\": \"phonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\"\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsignature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removereffields\"\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}[${3:description%text}]{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setlengthtoplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlengthtoplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtodepth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtodepth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtoheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtoheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtototalheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtototalheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtowidth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtowidth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar*[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useplength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useplength{${1:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wwwname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourmailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfields{${1:field list%keyvals}}\",\n        \"keys\": [\n          \"\\\\showfields\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setshowstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshowstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\setshowstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edgesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"showenvelope(${1:width},${2:height})(${3:h-offset},${4:v-offset})\"\n      }\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"showenvelope(${2:width},${3:height})(${4:h-offset},${5:v-offset})[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showUScheck[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"unitfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfields\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfields{${1:field list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setshowstyle\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshowstyle{${1:style%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"edgesize\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"showenvelope(${1:width},${2:height})(${3:h-offset},${4:v-offset})\"\n      }\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"showenvelope(${2:width},${3:height})(${4:h-offset},${5:v-offset})[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}[${2:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}[${2:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showUScheck[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"unitfactor\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"makelabels\",\n      \"if\": \"makelabels\"\n    },\n    {\n      \"name\": \"selectlabeltype\",\n      \"if\": \"makelabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlabeltype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectlabeltype#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectlabeltype\",\n      \"if\": \"makelabels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"selectlabeltype[${2:integer}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectlabeltype#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"startlabels\",\n      \"if\": \"makelabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlabel\",\n      \"if\": \"makelabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlabeltype\",\n      \"if\": \"makelabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabeltype{${1:integer}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"LetterCopyMarker\",\n      \"if\": \"copy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyname\",\n      \"if\": \"copy\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:recipient}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:recipient}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"foldmarks=${1:setting}\",\n      \"firsthead=${1|true,on,yes,false,off,no|}\",\n      \"fromalign=${1|center,centered,middle,false,no,off,left,locationleft,leftlocation,locationright,rightlocation,location,right|}\",\n      \"fromrule=${1|afteraddress,below,on,true,yes,aftername,false,no,off|}\",\n      \"symbolicnames=${1|true,on,yes,false,off,no,marvosym,fontawesome,awesome|}\",\n      \"fromphone=${1|true,on,yes,false,off,no|}\",\n      \"frommobilephone=${1|true,on,yes,false,off,no|}\",\n      \"fromfax=${1|true,on,yes,false,off,no|}\",\n      \"fromemail=${1|true,on,yes,false,off,no|}\",\n      \"fromurl=${1|true,on,yes,false,off,no|}\",\n      \"fromlogo=${1|true,on,yes,false,off,no|}\",\n      \"addrfield=${1|backgroundimage,PPbackgroundimage,PPBackgroundImage,PPBackGroundImage,ppbackgroundimage,ppBackgroundImage,ppBackGroundImage,false,off,no,image,Image,PPimage,PPImage,ppimage,ppImage,PP,pp,PPexplicite,PPExplicite,ppexplicite,ppExplicite,topaligned,alignedtop,true,on,yes|}\",\n      \"backaddress=${1|true,on,yes,false,off,no,underlined,plain|}\",\n      \"priority=${1|false,off,no,manual,B,b,economy,Economy,ECONOMY,B-ECONOMY,B-Economy,b-economy,A,a,priority,Priority,PRIORITY,A-PRIORITY,A-Priority,a-priority|}\",\n      \"locfield=${1|narrow,wide|}\",\n      \"numericaldate=${1|true,on,yes,false,off,no|}\",\n      \"refline=${1|dateleft,dateright,narrow,nodate,wide|}\",\n      \"subject=${1|afteropening,beforeopening,centered,left,right,titled,underlined,untitled|}\",\n      \"enlargefirstpage=${1|true,on,yes,false,off,no|}\",\n      \"firstfoot=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"pagenumber=${1|bot,foot,botcenter,botcentered,botmittle,footcenter,footcentered,footmiddle,botleft,footleft,botright,footright,center,centered,middle,false,no,off,head,top,headcenter,headcentered,headmiddle,topcenter,topcentered,topmiddle,headleft,topleft,headright,topright,left,right|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\"\n    ],\n    \"\\\\showfields\": [\n      \"test\",\n      \"head\",\n      \"foot\",\n      \"address\",\n      \"location\",\n      \"refline\"\n    ],\n    \"\\\\setshowstyle\": [\n      \"frame\",\n      \"rule\",\n      \"edges\"\n    ],\n    \"\\\\showISOenvelope#c\": [\n      \"C4\",\n      \"C5\",\n      \"C5/6\",\n      \"DL\",\n      \"C6\"\n    ],\n    \"\\\\showUScommercial#c\": [\n      \"9\",\n      \"10\"\n    ],\n    \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\": [\n      \"addresseeimage\",\n      \"backaddress\",\n      \"backaddressseparator\",\n      \"ccseparator\",\n      \"customer\",\n      \"date\",\n      \"emailseparator\",\n      \"enclseparator\",\n      \"faxseparator\",\n      \"firstfoot\",\n      \"firsthead\",\n      \"fromaddress\",\n      \"frombank\",\n      \"fromemail\",\n      \"fromfax\",\n      \"fromlogo\",\n      \"frommobilephone\",\n      \"fromname\",\n      \"fromphone\",\n      \"fromurl\",\n      \"fromzipcode\",\n      \"invoice\",\n      \"location\",\n      \"myref\",\n      \"nextfoot\",\n      \"nexthead\",\n      \"phoneseparator\",\n      \"place\",\n      \"placeseparator\",\n      \"PPdatamatrix\",\n      \"PPcode\",\n      \"signature\",\n      \"specialmail\",\n      \"subject\",\n      \"subjectseparator\",\n      \"title\",\n      \"toaddress\",\n      \"toname\",\n      \"yourmail\",\n      \"yourref\",\n      \"zipcodeseparator\"\n    ],\n    \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\": [\n      \"backaddrheight\",\n      \"bfoldmarklength\",\n      \"bfoldmarkvpos\",\n      \"firstfoothpos\",\n      \"firstfootvpos\",\n      \"firstfootwidth\",\n      \"firstheadhpos\",\n      \"firstheadvpos\",\n      \"firstheadwidth\",\n      \"foldmarkhpos\",\n      \"foldmarkvpos\",\n      \"fromrulethickness\",\n      \"fromrulewidth\",\n      \"lfoldmarkhpos\",\n      \"lfoldmarklength\",\n      \"locheight\",\n      \"lochpos\",\n      \"locvpos\",\n      \"locwidth\",\n      \"mfoldmarklength\",\n      \"mfoldmarkvpos\",\n      \"pfoldmarklength\",\n      \"PPdatamatrixvskip\",\n      \"PPheadheight\",\n      \"PPheadwidth\",\n      \"refaftervskip\",\n      \"refhpos\",\n      \"refvpos\",\n      \"refwidth\",\n      \"sigbeforevskip\",\n      \"sigindent\",\n      \"specialmailindent\",\n      \"specialmailrightindent\",\n      \"subjectaftervskip\",\n      \"subjectbeforevskip\",\n      \"additional verti\",\n      \"subjectvpos\",\n      \"tfoldmarklength\",\n      \"tfoldmarkvpos\",\n      \"toaddrheight\",\n      \"toaddrhpos\",\n      \"toaddrindent\",\n      \"toaddrvpos\",\n      \"toaddrwidth\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"addressee\",\n      \"backaddress\",\n      \"descriptionlabel\",\n      \"foldmark\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"fromaddress\",\n      \"fromname\",\n      \"fromrule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"placeanddate\",\n      \"refname\",\n      \"refvalue\",\n      \"specialmail\",\n      \"lettersubject\",\n      \"lettertitle\",\n      \"toaddress\",\n      \"toname\"\n    ],\n    \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\": [\n      \"DIN\",\n      \"DINmtext\",\n      \"KakuLL\",\n      \"KOMAold\",\n      \"NF\",\n      \"NipponEH\",\n      \"NipponEL\",\n      \"NipponLH\",\n      \"NipponLL\",\n      \"NipponRL\",\n      \"SN\",\n      \"SNleft\",\n      \"UScommercial9\",\n      \"UScommercial9DW\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\selectlabeltype#c\": [\n      \"avery_5162\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/class-scrreprt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchapmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchapmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addchaptertocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addchaptertocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:additional test}}\"\n      }\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlinesformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfChapterUsesPrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfChapterUsesPrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheademptypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapterentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"abstract=${1|true,on,yes,false,off,no|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,chapterentrywithdots,chapterentrydotfill,chapterentrywithoutdots,chapterentryfill,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"chapterentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"open=${1|any,left,right|}\",\n      \"chapterprefix=${1|true,on,yes,false,off,no|}\",\n      \"appendixprefix=${1|true,on,yes,false,off,no|}\",\n      \"headings=${1|big,normal,onelineappendix, noappendixprefix, appendixwithoutprefix,appendixwithoutprefixline,onelinechapter, nochapterprefix, chapterwithoutprefix,chapterwithoutprefixline,openany,openleft,openright,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses,twolineappendix,appendixprefix,appendixwithprefix,appendixwithprefixline,twolinechapter,chapterprefix,chapterwithprefix,chapterwithprefixline|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"chapteratlists\",\n      \"chapteratlists=\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|chapterentry,withchapterentry,chaptergapline,onelinechaptergap,chaptergapsmall,smallchaptergap,entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,nochaptergap,ignorechapter,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"chapter\",\n      \"chapterentry\",\n      \"chapterentrydots\",\n      \"chapterentrypagenumber\",\n      \"chapterprefix\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\setpartpreamble,\\\\setchapterpreamble\": [\n      \"o\",\n      \"u\",\n      \"l\",\n      \"r\",\n      \"c\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/class-yathesis.json",
    "content": "{\n  \"includes\": {\n    \"class-book\": [],\n    \"adjustbox\": [],\n    \"array\": [],\n    \"babel\": [],\n    \"biblatex\": [],\n    \"bookmark\": [],\n    \"colophon\": [],\n    \"csquotes\": [],\n    \"datatool\": [],\n    \"datetime2\": [],\n    \"draftwatermark\": [],\n    \"environ\": [],\n    \"epigraph\": [],\n    \"etoc\": [],\n    \"etoolbox\": [],\n    \"fncychap\": [],\n    \"geometry\": [],\n    \"graphicx\": [],\n    \"hypcap\": [],\n    \"ifdraft\": [],\n    \"iflang\": [],\n    \"iftex\": [],\n    \"letltxmacro\": [],\n    \"marvosym\": [],\n    \"morewrites\": [],\n    \"nonumonpart\": [],\n    \"pgfopts\": [],\n    \"setspace\": [],\n    \"tabularx\": [],\n    \"tcolorbox\": [],\n    \"textcase\": [],\n    \"titlesec\": [],\n    \"tocbibind\": [],\n    \"translator\": [],\n    \"twoopt\": [],\n    \"xcolor\": [],\n    \"xifthen\": [],\n    \"xkeyval\": [],\n    \"xpatch\": [],\n    \"xstring\": [],\n    \"tcolorboxlibraryskins\": [],\n    \"titleps\": []\n  },\n  \"macros\": {\n    \"yadsetup{}\": {\n      \"snippet\": \"yadsetup{${1:⟨options⟩}}\"\n    },\n    \"author{}{}\": {\n      \"snippet\": \"author{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"author[]{}{}\": {\n      \"snippet\": \"author[${3:⟨email⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"title[]{}\": {\n      \"snippet\": \"title[${2:⟨titre dans la langue secondaire⟩}]{${1:⟨titre dans la langue principale⟩}}\"\n    },\n    \"subtitle[]{}\": {\n      \"snippet\": \"subtitle[${2:⟨sous-titre dans la langue secondaire⟩}]{${1:⟨sous-titre dans la langue principale⟩}}\"\n    },\n    \"academicfield[]{}\": {\n      \"snippet\": \"academicfield[${2:⟨discipline dans la langue secondaire⟩}]{${1:⟨discipline dans la langue principale⟩}}\"\n    },\n    \"speciality[]{}\": {\n      \"snippet\": \"speciality[${2:⟨spécialité dans la langue secondaire⟩}]{${1:⟨spécialité dans la langue principale⟩}}\"\n    },\n    \"subject[]{}\": {\n      \"snippet\": \"subject[${2:⟨sujet dans la langue secondaire⟩}]{${1:⟨sujet dans la langue principale⟩}}\"\n    },\n    \"subtitle{}\": {\n      \"snippet\": \"subtitle{${1:⟨sous-titre⟩}}\"\n    },\n    \"academicfield{}\": {\n      \"snippet\": \"academicfield{${1:⟨discipline⟩}}\"\n    },\n    \"speciality{}\": {\n      \"snippet\": \"speciality{${1:⟨spécialité⟩}}\"\n    },\n    \"subject{}\": {\n      \"snippet\": \"subject{${1:⟨sujet⟩}}\"\n    },\n    \"date{}{}{}\": {\n      \"snippet\": \"date{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n    },\n    \"submissiondate{}{}{}\": {\n      \"snippet\": \"submissiondate{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n    },\n    \"pres{}\": {\n      \"snippet\": \"pres{${1:⟨nom du PRES⟩}}\"\n    },\n    \"comue{}\": {\n      \"snippet\": \"comue{${1:⟨nom de la ComUE⟩}}\"\n    },\n    \"institute{}\": {\n      \"snippet\": \"institute{${1:⟨nom de l'institut⟩}}\"\n    },\n    \"coinstitute{}\": {\n      \"snippet\": \"coinstitute{${1:⟨nom de l'institut de cotutelle⟩}}\"\n    },\n    \"company{}\": {\n      \"snippet\": \"company{${1:⟨nom de l'entreprise⟩}}\"\n    },\n    \"doctoralschool{}\": {\n      \"snippet\": \"doctoralschool{${1:⟨nom de l'école doctorale⟩}}\"\n    },\n    \"laboratory{}{}\": {\n      \"snippet\": \"laboratory{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n    },\n    \"pres[]{}\": {\n      \"snippet\": \"pres[${2:⟨précisions⟩}]{${1:⟨nom du PRES⟩}}\"\n    },\n    \"comue[]{}\": {\n      \"snippet\": \"comue[${2:⟨précisions⟩}]{${1:⟨nom de la ComUE⟩}}\"\n    },\n    \"institute[]{}\": {\n      \"snippet\": \"institute[${2:⟨précisions⟩}]{${1:⟨nom de l'institut⟩}}\"\n    },\n    \"coinstitute[]{}\": {\n      \"snippet\": \"coinstitute[${2:⟨précisions⟩}]{${1:⟨nom de l'institut de cotutelle⟩}}\"\n    },\n    \"company[]{}\": {\n      \"snippet\": \"company[${2:⟨précisions⟩}]{${1:⟨nom de l'entreprise⟩}}\"\n    },\n    \"doctoralschool[]{}\": {\n      \"snippet\": \"doctoralschool[${2:⟨précisions⟩}]{${1:⟨nom de l'école doctorale⟩}}\"\n    },\n    \"laboratory[]{}{}\": {\n      \"snippet\": \"laboratory[${3:⟨précisions⟩}]{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n    },\n    \"supervisor[]{}{}\": {\n      \"snippet\": \"supervisor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"cosupervisor[]{}{}\": {\n      \"snippet\": \"cosupervisor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"comonitor[]{}{}\": {\n      \"snippet\": \"comonitor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"referee[]{}{}\": {\n      \"snippet\": \"referee[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"examiner[]{}{}\": {\n      \"snippet\": \"examiner[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"committeepresident[]{}{}\": {\n      \"snippet\": \"committeepresident[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"guest[]{}{}\": {\n      \"snippet\": \"guest[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"supervisor{}{}\": {\n      \"snippet\": \"supervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"cosupervisor{}{}\": {\n      \"snippet\": \"cosupervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"comonitor{}{}\": {\n      \"snippet\": \"comonitor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"referee{}{}\": {\n      \"snippet\": \"referee{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"examiner{}{}\": {\n      \"snippet\": \"examiner{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"committeepresident{}{}\": {\n      \"snippet\": \"committeepresident{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"guest{}{}\": {\n      \"snippet\": \"guest{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"ordernumber[]\": {\n      \"snippet\": \"ordernumber[${1:⟨numéro d'ordre⟩}]\"\n    },\n    \"ordernumber\": {},\n    \"keywords{}{}\": {\n      \"snippet\": \"keywords{${1:⟨mots clés dans la langue principale⟩}}{${2:⟨mots clés dans la langue secondaire⟩}}\"\n    },\n    \"maketitle[]\": {\n      \"snippet\": \"maketitle[${1:⟨options⟩}]\"\n    },\n    \"colophontext{}\": {\n      \"snippet\": \"colophontext{${1:⟨texte⟩}}\"\n    },\n    \"disclaimertext{}\": {\n      \"snippet\": \"disclaimertext{${1:⟨clause⟩}}\"\n    },\n    \"makedisclaimer\": {},\n    \"makedisclaimer*\": {},\n    \"makekeywords\": {},\n    \"makekeywords*\": {},\n    \"makelaboratory\": {},\n    \"makelaboratory*\": {},\n    \"dedication{}\": {\n      \"snippet\": \"dedication{${1:⟨dédicace⟩}}\"\n    },\n    \"makededications\": {},\n    \"makededications*\": {},\n    \"frontepigraph{}{}\": {\n      \"snippet\": \"frontepigraph{${1:⟨épigraphe⟩}}{${2:⟨auteur⟩}}\"\n    },\n    \"frontepigraph[]{}{}\": {\n      \"snippet\": \"frontepigraph[${3:⟨langue⟩}]{${1:⟨épigraphe⟩}}{${2:⟨auteur⟩}}\"\n    },\n    \"makefrontepigraphs\": {},\n    \"makefrontepigraphs*\": {},\n    \"makeabstract\": {},\n    \"newglssymbol{}{}{}{}\": {\n      \"snippet\": \"newglssymbol{${1:⟨label⟩}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩}}\"\n    },\n    \"newglssymbol[]{}{}{}{}\": {\n      \"snippet\": \"newglssymbol[${5:⟨classement⟩}]{${1:⟨label⟩}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩}}\"\n    },\n    \"tableofcontents[]\": {\n      \"snippet\": \"tableofcontents[${1:⟨précisions⟩}]\"\n    },\n    \"chapter*[]{}\": {\n      \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"chapter[][]{}\": {\n      \"snippet\": \"chapter[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"chapter*[][]{}\": {\n      \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section*[]{}\": {\n      \"snippet\": \"section*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section[][]{}\": {\n      \"snippet\": \"section[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section*[][]{}\": {\n      \"snippet\": \"section*[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"subsection*[]{}\": {\n      \"snippet\": \"subsection*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"subsubsection*[]{}\": {\n      \"snippet\": \"subsubsection*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"paragraph*[]{}\": {\n      \"snippet\": \"paragraph*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"makebackcover\": {},\n    \"startlocaltocs\": {},\n    \"stoplocaltocs\": {},\n    \"nextwithlocaltoc\": {},\n    \"nextwithoutlocaltoc\": {},\n    \"leadchapter{}\": {\n      \"snippet\": \"leadchapter{${1:⟨texte⟩}}\"\n    },\n    \"printsymbols[]\": {\n      \"snippet\": \"printsymbols[${1:⟨options⟩}]\"\n    },\n    \"expression{}{}{}\": {\n      \"snippet\": \"expression{${1:⟨label⟩}}{${2:⟨valeur en français⟩}}{${3:⟨valeur en anglais⟩}}\"\n    },\n    \"frenchsetup{}\": {\n      \"snippet\": \"frenchsetup{${1:options}}\",\n      \"keyvalindex\": 0,\n      \"keyvalpos\": 0\n    },\n    \"frenchbsetup{}\": {\n      \"snippet\": \"frenchbsetup{${1:options}}\",\n      \"keyvalindex\": 0,\n      \"keyvalpos\": 0\n    },\n    \"AddThinSpaceBeforeFootnotes\": {},\n    \"alsoname\": {},\n    \"at\": {},\n    \"bibname\": {},\n    \"AutoSpaceBeforeFDP\": {},\n    \"boi\": {},\n    \"bname{}\": {\n      \"snippet\": \"bname{${1:text}}\"\n    },\n    \"bsc{}\": {\n      \"snippet\": \"bsc{${1:text}}\"\n    },\n    \"CaptionSeparator\": {},\n    \"captionsfrench\": {},\n    \"ccname\": {},\n    \"chaptername\": {},\n    \"circonflexe\": {},\n    \"dateacadian\": {},\n    \"datefrench\": {},\n    \"DecimalMathComma\": {},\n    \"degre\": {},\n    \"degres\": {},\n    \"descindentFB\": {},\n    \"dotFFN\": {},\n    \"enclname\": {},\n    \"extrasfrench\": {},\n    \"FBcolonspace\": {},\n    \"FBdatebox\": {},\n    \"FBdatespace\": {},\n    \"FBeverylineguill\": {},\n    \"FBfigtabshape\": {},\n    \"FBfnindent\": {},\n    \"FBFrenchFootnotesfalse\": {},\n    \"FBFrenchFootnotestrue\": {},\n    \"FBFrenchSuperscriptstrue\": {},\n    \"FBGlobalLayoutFrenchtrue\": {},\n    \"FBgspchar\": {},\n    \"FBguillopen\": {},\n    \"FBguillspace\": {},\n    \"FBInnerGuillSinglefalse\": {},\n    \"FBInnerGuillSingletrue\": {},\n    \"FBListItemsAsParfalse\": {},\n    \"FBListItemsAsPartrue\": {},\n    \"FBLowercaseSuperscriptstrue\": {},\n    \"FBmedkern\": {},\n    \"FBPartNameFulltrue\": {},\n    \"FBsetspaces[]{}{}{}{}\": {\n      \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n    },\n    \"FBsetspaces{}{}{}{}\": {\n      \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n    },\n    \"FBSmallCapsFigTabCaptionstrue\": {},\n    \"FBStandardEnumerateEnvtrue\": {},\n    \"FBStandardItemizeEnvtrue\": {},\n    \"FBStandardItemLabelstrue\": {},\n    \"FBStandardLayouttrue\": {},\n    \"FBStandardListSpacingtrue\": {},\n    \"FBStandardListstrue\": {},\n    \"FBsupR\": {},\n    \"FBsupS\": {},\n    \"FBtextellipsis\": {},\n    \"FBthickkern\": {},\n    \"FBthinspace\": {},\n    \"FBthousandsep\": {},\n    \"FBWarning{}\": {\n      \"snippet\": \"FBWarning{${1:message}}\"\n    },\n    \"fg\": {},\n    \"fgi\": {},\n    \"fgii\": {},\n    \"fprimo)\": {},\n    \"frenchdate{}{}{}\": {\n      \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n    },\n    \"FrenchEnumerate{}\": {\n      \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n    },\n    \"FrenchFootnotes\": {},\n    \"FrenchLabelItem\": {},\n    \"frenchpartfirst\": {},\n    \"frenchpartsecond\": {},\n    \"FrenchPopularEnumerate{}\": {\n      \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n    },\n    \"frenchtoday\": {},\n    \"Frlabelitemi\": {},\n    \"Frlabelitemii\": {},\n    \"Frlabelitemiii\": {},\n    \"Frlabelitemiv\": {},\n    \"frquote{}\": {\n      \"snippet\": \"frquote{${1:text}}\"\n    },\n    \"fup{}\": {\n      \"snippet\": \"fup{${1:text}}\"\n    },\n    \"glossaryname\": {},\n    \"headtoname\": {},\n    \"ieme\": {},\n    \"iemes\": {},\n    \"ier\": {},\n    \"iere\": {},\n    \"ieres\": {},\n    \"iers\": {},\n    \"ifFBAutoSpaceFootnotes\": {},\n    \"ifFBCompactItemize\": {},\n    \"ifFBCustomiseFigTabCaptions\": {},\n    \"ifFBfrench\": {},\n    \"ifFBFrenchFootnotes\": {},\n    \"ifFBFrenchSuperscripts\": {},\n    \"ifFBGlobalLayoutFrench\": {},\n    \"ifFBIndentFirst\": {},\n    \"ifFBINGuillSpace\": {},\n    \"ifFBListItemsAsPar\": {},\n    \"ifFBListOldLayout\": {},\n    \"ifFBLowercaseSuperscripts\": {},\n    \"ifFBLuaTeX\": {},\n    \"ifFBOldFigTabCaptions\": {},\n    \"ifFBOriginalTypewriter\": {},\n    \"ifFBPartNameFull\": {},\n    \"ifFBReduceListSpacing\": {},\n    \"ifFBShowOptions\": {},\n    \"ifFBSmallCapsFigTabCaptions\": {},\n    \"ifFBStandardEnumerateEnv\": {},\n    \"ifFBStandardItemizeEnv\": {},\n    \"ifFBStandardItemLabels\": {},\n    \"ifFBStandardLayout\": {},\n    \"ifFBStandardLists\": {},\n    \"ifFBStandardListSpacing\": {},\n    \"ifFBSuppressWarning\": {},\n    \"ifFBThinColonSpace\": {},\n    \"ifFBThinSpaceInFrenchNumbers\": {},\n    \"ifFBunicode\": {},\n    \"ifFBXeTeX\": {},\n    \"ifLaTeXe\": {},\n    \"kernFFN\": {},\n    \"labelindentFB\": {},\n    \"labelwidthFB\": {},\n    \"leftmarginFB\": {},\n    \"listfigurename\": {},\n    \"listindentFB\": {},\n    \"No\": {},\n    \"no\": {},\n    \"NoAutoSpaceBeforeFDP\": {},\n    \"NoAutoSpacing\": {},\n    \"NoEveryParQuote\": {},\n    \"noextrasfrench\": {},\n    \"nombre{}\": {\n      \"snippet\": \"nombre{${1:arg}}\"\n    },\n    \"nos\": {},\n    \"Nos\": {},\n    \"og\": {},\n    \"ogi\": {},\n    \"ogii\": {},\n    \"parindentFFN\": {},\n    \"partfirst\": {},\n    \"partnameord\": {},\n    \"partsecond\": {},\n    \"prefacename\": {},\n    \"primo\": {},\n    \"proofname\": {},\n    \"quarto\": {},\n    \"rmfamilyFB\": {},\n    \"secundo\": {},\n    \"seename\": {},\n    \"sffamilyFB\": {},\n    \"StandardFootnotes\": {},\n    \"StandardMathComma\": {},\n    \"tertio\": {},\n    \"tild\": {},\n    \"ttfamilyFB\": {},\n    \"up{}\": {\n      \"snippet\": \"up{${1:text}}\"\n    },\n    \"xspace\": {}\n  },\n  \"envs\": {\n    \"abstract\": {},\n    \"abstract[]\": {\n      \"name\": \"abstract\",\n      \"snippet\": \"[${1:⟨titre alternatif⟩}]\"\n    },\n    \"descriptionFB\": {},\n    \"enumerateFB\": {},\n    \"itemizeFB\": {},\n    \"listFB{}\": {\n      \"name\": \"listFB\",\n      \"snippet\": \"{${1:symbol}}\"\n    },\n    \"listORI{}\": {\n      \"name\": \"listORI\",\n      \"snippet\": \"{${1:symbol}}\"\n    }\n  },\n  \"options\": [\n    \"mainlanguage=${1|french,english|}\",\n    \"secnumdepth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n    \"space=${1|single,onehalf,double|}\",\n    \"chap-style=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n    \"fncychap=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n    \"nofrontcover\",\n    \"sepcorpaffilfrench=\",\n    \"sepcorpaffilenglish=\",\n    \"version=${1|inprogress,inprogress*,submitted,submitted*,final,draft|}\",\n    \"output=${1|screen,paper,paper*|}\",\n    \"colophon-location=${1|verso-frontcover,recto-backcover,nowhere|}\",\n    \"hdr\",\n    \"numlaboratories=${1:⟨nombre de laboratoires affichés⟩}\",\n    \"localtocs\",\n    \"localtocs/depth=${1|section,subsection,subsubsection,paragraph,subparagraph|}\",\n    \"localbibs\",\n    \"localbibs*\",\n    \"10pt\",\n    \"11pt\",\n    \"12pt\",\n    \"leqno\",\n    \"fleqn\",\n    \"oneside\",\n    \"noerror\",\n    \"noauthor\",\n    \"notitle\",\n    \"noacademicfield\",\n    \"nodate\",\n    \"noinstitute\",\n    \"nodoctoralschool\",\n    \"nolaboratory\",\n    \"nolaboratoryaddress\",\n    \"nosupervisor\",\n    \"nomaketitle\",\n    \"nokeywords\",\n    \"noabstract\",\n    \"nomakeabstract\",\n    \"notableofcontents\",\n    \"noprintbibliography\",\n    \"graphicx={${1:⟨options du package graphicx⟩}}\",\n    \"adjustbox={${1:⟨options du package adjustbox⟩}}\",\n    \"setspace={${1:⟨options du package setspace⟩}}\",\n    \"xcolor={${1:⟨options du package xcolor⟩}}\",\n    \"datatool={${1:⟨options du package datatool⟩}}\",\n    \"titlesec={${1:⟨options du package titlesec⟩}}\",\n    \"draftwatermark={${1:⟨options du package draftwatermark⟩}}\",\n    \"babel={${1:⟨options du package babel⟩}}\",\n    \"datetime2={${1:⟨options du package datetime2⟩}}\",\n    \"corps=${1:⟨corporation⟩}\",\n    \"role=${1:⟨role⟩}\"\n  ],\n  \"keyvals\": [\n    [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  ]\n}"
  },
  {
    "path": "data/packages/cleveref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Crefformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"Crefmultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Crefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"Crefname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Crefname{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Crefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"crefalias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefalias{${1:counter}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"crefdefaultlabelformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefdefaultlabelformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"creflabelformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"creflabelformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefmultiformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"crefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"crefname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crefname{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangelabelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrangelabelformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"crefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"label[${2:type}]{${1:key%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelcrefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefmultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"labelcrefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelcrefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"labelcrefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"Cpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cpagerefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"cpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpagerefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"labelcpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelcpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"labelcref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelcref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"lcnamecref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcnamecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"lcnamecrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcnamecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"nameCref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"namecref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangeconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefrangepreconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefrangepostconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefpairconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefmiddleconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creflastconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefpairgroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefmiddlegroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creflastgroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefstripprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefstripprefix{${1:string1}}{${2:string2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cleveref#c\": [\n      \"poorman\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"nosort\",\n      \"capitalise\",\n      \"capitalize\",\n      \"nameinlink\",\n      \"noabbrev\",\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"dutch\",\n      \"french\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"ukrainian\",\n      \"norsk\",\n      \"danish\",\n      \"esperanto\",\n      \"swedish\",\n      \"brazilian\",\n      \"catalan\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cleveref#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/color.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcolor{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcolor[${3:model}]{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathcolor{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mathcolor[${3:model}]{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"pagecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"nopagecolor\"\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolor{${1:name%specialDef}}{${2:model}}{${3:color-spec}}\"\n      }\n    },\n    {\n      \"name\": \"DefineNamedColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineNamedColor{${1:type}}{${2:name}}{${3:model}}{${4:spec}}\"\n      }\n    },\n    {\n      \"name\": \"normalcolor\"\n    },\n    {\n      \"name\": \"color\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"color[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"color{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colorbox[${3:model}]{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorbox{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fcolorbox[${4:model}]{${1:border-color}}{${2:fill-color}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcolorbox{${1:border-color}}{${2:fill-color}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/color#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/color#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/colortbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrayrulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrayrulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arrayrulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrayrulecolor[${2:color model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"cellcolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columncolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"columncolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublerulesepcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublerulesepcolor[${2:color model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"rowcolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"minrowclearance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rowcolors{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rowcolors[${4:commands}]{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rowcolors*{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rowcolors*[${4:commands}]{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"showrowcolors\"\n    },\n    {\n      \"name\": \"hiderowcolors\"\n    },\n    {\n      \"name\": \"rownum\"\n    },\n    {\n      \"name\": \"therownum\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colortbl#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colortbl#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/commath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"appref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"assref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"assref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"cbr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cbr[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"colref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"defnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defnref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"del{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"del[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dif\"\n    },\n    {\n      \"name\": \"Dif\"\n    },\n    {\n      \"name\": \"dmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"dmd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"dod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dod[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dpd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dpd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dpd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dpd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"enVert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enVert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"enVert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enVert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"envert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"envert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"envert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"exref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fullfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fullfunction{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"intcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcc{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intcc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intcc[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intco\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intco{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intco\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intco[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intoc{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intoc[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intoo{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intoo[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"lemref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lemref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"md\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"md{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"od{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"od[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"propref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"propref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"remref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"remref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sVert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sVert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sVert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sVert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sbr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sbr[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"set[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"thmref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tmd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"tod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tod[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tpd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tpd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tpd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tpd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ordinarycolon\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/comment.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"includecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includecomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"excludecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludecomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"CommentCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"generalcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"generalcomment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"specialcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialcomment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"Thiscomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thiscomment{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"WriteCommentLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteCommentLine{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThisComment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisComment{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"processcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"processcomment{${1:envname}}{${2:def}}{${3:begdef}}{${4:enddef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/coordsys.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numbline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numbline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numbline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numbline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numbline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vnumbline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vnumbline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vnumbline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vnumbline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fcoordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fcoordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"fcoordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fcoordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fcoordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"fcoordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"bcoordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"bcoordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"bcoordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"bcoordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"bcoordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"bcoordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"window(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"window[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"window[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"window*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"window*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"window*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordgrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordgrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordgrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordgrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordgrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordgrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"gridstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gridstyle{${1:thin-declaration}}{${2:thick-declaration}}\"\n      }\n    },\n    {\n      \"name\": \"sethlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sethlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sethlabel[${2:alignment}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setvlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setvlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setvlabel[${2:alignment}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hthickratio\"\n    },\n    {\n      \"name\": \"vthickratio\"\n    },\n    {\n      \"name\": \"rescaleby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rescaleby{${1:num}}{${2:den}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rescaleby\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rescaleby[${4:symb}]{${1:num}}{${2:den}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"tickstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tickstyle{${1:thin-declaration}}{${2:thick-declaration}}\"\n      }\n    },\n    {\n      \"name\": \"ticklength\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/coordsys#c\": [\n      \"centred\",\n      \"outside\",\n      \"inside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/coordsys#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/cquthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dirtree\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"speakyourlove\"\n    },\n    {\n      \"name\": \"speakyourlove\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"speakyourlove[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"qthis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qthis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csgo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgo{${1:csname}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"myicon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myicon{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"myfolder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"myfolder{${1:color}}{${2:folder}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/csquotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enquote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignquote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textquote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textquote[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textquote*[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textquote[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textquote*[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blockquote[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"blockquote[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setquotestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setquotestyle[${2:variant}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setquotestyle{${1:alias}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeOuterQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeOuterQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeInnerQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeInnerQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAutoQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAutoQuote{${1:character 1}}{${2:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAutoQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAutoQuote*{${1:character 1}}{${2:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeForeignQuote{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeForeignQuote*{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeHyphenQuote{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeHyphenQuote*{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeBlockQuote{${1:character 1}}{${2:delimiter}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeForeignBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeHyphenBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHybridBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeHybridBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"EnableQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisableQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeleteQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcquote{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcquote[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcquote*{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcquote*[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreigntextcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreigntextcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreigntextcquote*{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreigntextcquote*{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphentextcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphentextcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphentextcquote*{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphentextcquote*{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blockcquote{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockcquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"blockcquote[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreignblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreignblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphenblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphenblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hybridblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hybridblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"textelp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"textelp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textelp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textins*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textins*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareQuoteStyle{${1:style}}{${2:openoutermark}}{${3:closeoutermark}}{${4:openinnermark}}{${5:closeinnermark}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}[]{}{}[]{}\",\n        \"snippet\": \"DeclareQuoteStyle[${6:variant}]{${1:style}}[${7:outerinit}][${8:innerinit}]{${2:openouter}}[${9:midouter}]{${3:closeouter}}{${4:openinner}}[${10:midinner}]{${5:closeinner}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteAlias{${1:style}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareQuoteAlias[${3:variant}]{${1:style}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteAlias{${1:first-level alias}}{${2:second-level alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareQuoteOption{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteQuoteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteQuoteOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePlainStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclarePlainStyle{${1:openoutermark}}{${2:closeoutermark}}{${3:openinnermark}}{${4:closeinnermark}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockThreshold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockThreshold{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SetCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCiteCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"mkcitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcitation{${1:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkccitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkccitation{${1:cite code}}\"\n      }\n    },\n    {\n      \"name\": \"mktextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mktextquote{${1:open}}{${2:text}}{${3:close}}{${4:punct}}{${5:tpunct}}{${6:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkblockquote{${1:text}}{${2:punct}}{${3:tpunct}}{${4:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkbegdispquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbegdispquote{${1:punct}}{${2:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkenddispquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkenddispquote{${1:punct}}{${2:cite}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpunctmark{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterm{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iftextpunctmark{${1:text}}{${2:character}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftextpunct{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftextterm{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifblockquote{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"unspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAutoPunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAutoPunct{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"mktextelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mktextelpins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextelpins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextinselp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextinselp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextmod{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextdel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BlockquoteDisable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlockquoteDisable{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteGlyph{${1:encoding}}{${2:position}}\"\n      }\n    },\n    {\n      \"name\": \"openautoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeautoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openinnerquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeinnerquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textooquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textoiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textciquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csqQQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqQQ{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQbeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQbeg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQend{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQsep{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQ{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"initfrenchquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkfrenchopenquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfrenchopenquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfrenchclosequote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfrenchclosequote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fixligatures\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"displayquote\"\n    },\n    {\n      \"name\": \"displayquote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"displayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:manual citation}][${2:punct}]\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}][${3:punct}]\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}][${3:punct}]\"\n      }\n    },\n    {\n      \"name\": \"displaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"displaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\": [\n      \"strict\",\n      \"style=${1:style}\",\n      \"autostyle=${1|true,false,try,once,tryonce|}\",\n      \"maxlevel=${1:integer}\",\n      \"autopunct\",\n      \"threshold=${1:integer}\",\n      \"thresholdtype=${1|lines,words|}\",\n      \"parthreshold\",\n      \"splitcomp\",\n      \"csdisplay\",\n      \"debug\",\n      \"version=${1:version}\",\n      \"austrian=${1|quotes,guillemets|}\",\n      \"croatian=${1|quotes,guillemets|}\",\n      \"czech=${1|quotes,guillemets|}\",\n      \"danish=${1|quotes,guillemets,topquotes|}\",\n      \"english=${1|american,british|}\",\n      \"estonian\",\n      \"french=${1|quotes,quotes*,guillemets,guillemets*|}\",\n      \"galician=${1|quotes,guillemets|}\",\n      \"german=${1|quotes,guillemets,swiss|}\",\n      \"hungarian\",\n      \"italian=${1|guillemets,quotes|}\",\n      \"latin=${1|italianguillemets,germanquotes,germanguillemets,britishquotes,americanquotes|}\",\n      \"japanese\",\n      \"latvian\",\n      \"norwegian=${1|guillemets,quotes|}\",\n      \"polish=${1|guillemets,guillemets*|}\",\n      \"portuguese=${1|portuguese,brazilian|}\",\n      \"romanian\",\n      \"serbian=${1|quotes,guillemets,german|}\",\n      \"slovenian=${1|quotes,guillemets|}\",\n      \"spanish=${1|spanish,mexican|}\",\n      \"swedish=${1|quotes,guillemets,guillemets*|}\",\n      \"turkish=${1|quotes,guillemets|}\",\n      \"ukrainian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/ctex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zhnumber\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CTEXnumberline\",\n      \"if\": \"heading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"if\": \"heading=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"songti\"\n    },\n    {\n      \"name\": \"heiti\"\n    },\n    {\n      \"name\": \"fangsong\"\n    },\n    {\n      \"name\": \"kaishu\"\n    },\n    {\n      \"name\": \"lishu\"\n    },\n    {\n      \"name\": \"youyuan\"\n    },\n    {\n      \"name\": \"yahei\"\n    },\n    {\n      \"name\": \"pingfang\"\n    },\n    {\n      \"name\": \"ctexset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctexset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctexset,\\\\usepackage/ctex#c\",\n          \"\\\\ctexset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CTEXthepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXtheparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXifname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXifname{${1:contents with name}}{${2:contents with name}}\"\n      }\n    },\n    {\n      \"name\": \"zihao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zihao{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ziju\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ziju{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"ccwd\"\n    },\n    {\n      \"name\": \"chinese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chinese{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXnumber{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXdigits{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"CTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures*[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures*{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKfontspec[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"CJKfontspec{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"defaultCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultCJKfontfeatures{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}[${4:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmainfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmathfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmonofont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKsansfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}[${2:font features}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ctex#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\"\n    ],\n    \"\\\\ctexset,\\\\usepackage/ctex#c\": [\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\"\n    ],\n    \"\\\\ctexset\": [\n      \"linestretch=\",\n      \"today=${1|small,big,old|}\",\n      \"contentsname=${1:name}\",\n      \"listfigurename=${1:name}\",\n      \"listtablename=${1:name}\",\n      \"figurename=${1:name}\",\n      \"tablename=${1:name}\",\n      \"abstractname=${1:name}\",\n      \"indexname=${1:name}\",\n      \"appendixname=${1:name}\",\n      \"bibname=${1:name}\",\n      \"proofname=${1:name}\",\n      \"refname=${1:name}\",\n      \"algorithmname=${1:name}\",\n      \"continuation=${1:name}\",\n      \"part={${1:settings}}\",\n      \"chapter={${1:settings}}\",\n      \"section={${1:settings}}\",\n      \"subsection={${1:settings}}\",\n      \"subsubsection={${1:settings}}\",\n      \"paragraph={${1:settings}}\",\n      \"subparagraph={${1:settings}}\",\n      \"part/numbering\",\n      \"chapter/numbering\",\n      \"section/numbering\",\n      \"subsection/numbering\",\n      \"subsubsection/numbering\",\n      \"paragraph/numbering\",\n      \"subparagraph/numbering\",\n      \"secnumdepth=\",\n      \"part/name=\",\n      \"chapter/name=\",\n      \"section/name=\",\n      \"subsection/name=\",\n      \"subsubsection/name=\",\n      \"paragraph/name=\",\n      \"subparagraph/name=\",\n      \"part/number=\",\n      \"chapter/number=\",\n      \"section/number=\",\n      \"subsection/number=\",\n      \"subsubsection/number=\",\n      \"paragraph/number=\",\n      \"subparagraph/number=\",\n      \"part/format=${1:format commands}\",\n      \"chapter/format=${1:format commands}\",\n      \"section/format=${1:format commands}\",\n      \"subsection/format=${1:format commands}\",\n      \"subsubsection/format=${1:format commands}\",\n      \"paragraph/format=${1:format commands}\",\n      \"subparagraph/format=${1:format commands}\",\n      \"part/format+=${1:format commands}\",\n      \"chapter/format+=${1:format commands}\",\n      \"section/format+=${1:format commands}\",\n      \"subsection/format+=${1:format commands}\",\n      \"subsubsection/format+=${1:format commands}\",\n      \"paragraph/format+=${1:format commands}\",\n      \"subparagraph/format+=${1:format commands}\",\n      \"part/nameformat=${1:format commands}\",\n      \"chapter/nameformat=${1:format commands}\",\n      \"section/nameformat=${1:format commands}\",\n      \"subsection/nameformat=${1:format commands}\",\n      \"subsubsection/nameformat=${1:format commands}\",\n      \"paragraph/nameformat=${1:format commands}\",\n      \"subparagraph/nameformat=${1:format commands}\",\n      \"part/nameformat+=${1:format commands}\",\n      \"chapter/nameformat+=${1:format commands}\",\n      \"section/nameformat+=${1:format commands}\",\n      \"subsection/nameformat+=${1:format commands}\",\n      \"subsubsection/nameformat+=${1:format commands}\",\n      \"paragraph/nameformat+=${1:format commands}\",\n      \"subparagraph/nameformat+=${1:format commands}\",\n      \"part/numberformat=${1:format commands}\",\n      \"chapter/numberformat=${1:format commands}\",\n      \"section/numberformat=${1:format commands}\",\n      \"subsection/numberformat=${1:format commands}\",\n      \"subsubsection/numberformat=${1:format commands}\",\n      \"paragraph/numberformat=${1:format commands}\",\n      \"subparagraph/numberformat=${1:format commands}\",\n      \"part/numberformat+=${1:format commands}\",\n      \"chapter/numberformat+=${1:format commands}\",\n      \"section/numberformat+=${1:format commands}\",\n      \"subsection/numberformat+=${1:format commands}\",\n      \"subsubsection/numberformat+=${1:format commands}\",\n      \"paragraph/numberformat+=${1:format commands}\",\n      \"subparagraph/numberformat+=${1:format commands}\",\n      \"part/titleformat=${1:format commands}\",\n      \"chapter/titleformat=${1:format commands}\",\n      \"section/titleformat=${1:format commands}\",\n      \"subsection/titleformat=${1:format commands}\",\n      \"subsubsection/titleformat=${1:format commands}\",\n      \"paragraph/titleformat=${1:format commands}\",\n      \"subparagraph/titleformat=${1:format commands}\",\n      \"part/titleformat+=${1:format commands}\",\n      \"chapter/titleformat+=${1:format commands}\",\n      \"section/titleformat+=${1:format commands}\",\n      \"subsection/titleformat+=${1:format commands}\",\n      \"subsubsection/titleformat+=${1:format commands}\",\n      \"paragraph/titleformat+=${1:format commands}\",\n      \"subparagraph/titleformat+=${1:format commands}\",\n      \"part/aftername=${1:code}\",\n      \"chapter/aftername=${1:code}\",\n      \"section/aftername=${1:code}\",\n      \"subsection/aftername=${1:code}\",\n      \"subsubsection/aftername=${1:code}\",\n      \"paragraph/aftername=${1:code}\",\n      \"subparagraph/aftername=${1:code}\",\n      \"part/aftername+=${1:code}\",\n      \"chapter/aftername+=${1:code}\",\n      \"section/aftername+=${1:code}\",\n      \"subsection/aftername+=${1:code}\",\n      \"subsubsection/aftername+=${1:code}\",\n      \"paragraph/aftername+=${1:code}\",\n      \"subparagraph/aftername+=${1:code}\",\n      \"part/aftertitle=${1:code}\",\n      \"chapter/aftertitle=${1:code}\",\n      \"section/aftertitle=${1:code}\",\n      \"subsection/aftertitle=${1:code}\",\n      \"subsubsection/aftertitle=${1:code}\",\n      \"paragraph/aftertitle=${1:code}\",\n      \"subparagraph/aftertitle=${1:code}\",\n      \"part/aftertitle+=${1:code}\",\n      \"chapter/aftertitle+=${1:code}\",\n      \"section/aftertitle+=${1:code}\",\n      \"subsection/aftertitle+=${1:code}\",\n      \"subsubsection/aftertitle+=${1:code}\",\n      \"paragraph/aftertitle+=${1:code}\",\n      \"subparagraph/aftertitle+=${1:code}\",\n      \"part/pagestyle=\",\n      \"chapter/pagestyle=\",\n      \"section/runin\",\n      \"subsection/runin\",\n      \"subsubsection/runin\",\n      \"paragraph/runin\",\n      \"subparagraph/runin\",\n      \"section/hang\",\n      \"subsection/hang\",\n      \"subsubsection/hang\",\n      \"paragraph/hang\",\n      \"subparagraph/hang\",\n      \"part/indent=\",\n      \"chapter/indent=\",\n      \"section/indent=\",\n      \"subsection/indent=\",\n      \"subsubsection/indent=\",\n      \"paragraph/indent=\",\n      \"subparagraph/indent=\",\n      \"part/beforeskip=\",\n      \"chapter/beforeskip=\",\n      \"section/beforeskip=\",\n      \"subsection/beforeskip=\",\n      \"subsubsection/beforeskip=\",\n      \"paragraph/beforeskip=\",\n      \"subparagraph/beforeskip=\",\n      \"part/afterskip=\",\n      \"chapter/afterskip=\",\n      \"section/afterskip=\",\n      \"subsection/afterskip=\",\n      \"subsubsection/afterskip=\",\n      \"paragraph/afterskip=\",\n      \"subparagraph/afterskip=\",\n      \"part/fixskip\",\n      \"chapter/fixskip\",\n      \"section/fixskip\",\n      \"subsection/fixskip\",\n      \"subsubsection/fixskip\",\n      \"paragraph/fixskip\",\n      \"subparagraph/fixskip\",\n      \"part/break=\",\n      \"chapter/break=\",\n      \"section/break=\",\n      \"subsection/break=\",\n      \"subsubsection/break=\",\n      \"paragraph/break=\",\n      \"subparagraph/break=\",\n      \"part/break+=\",\n      \"chapter/break+=\",\n      \"section/break+=\",\n      \"subsection/break+=\",\n      \"subsubsection/break+=\",\n      \"paragraph/break+=\",\n      \"subparagraph/break+=\",\n      \"part/afterindent\",\n      \"chapter/afterindent\",\n      \"section/afterindent\",\n      \"subsection/afterindent\",\n      \"subsubsection/afterindent\",\n      \"paragraph/afterindent\",\n      \"subparagraph/afterindent\",\n      \"tocdepth=\",\n      \"part/tocline=\",\n      \"chapter/tocline=\",\n      \"section/tocline=\",\n      \"subsection/tocline=\",\n      \"subsubsection/tocline=\",\n      \"paragraph/tocline=\",\n      \"subparagraph/tocline=\",\n      \"chapter/lofskip=\",\n      \"chapter/lotskip=\",\n      \"appendix/numbering\",\n      \"appendix/name=\",\n      \"appendix/number=\",\n      \"declarecharrange=\",\n      \"clearalternatefont={${1:family1,family2,...}}\",\n      \"resetalternatefont={${1:family1,family2,...}}\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"chinese\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ctex#c\",\n    \"\\\\ctexset,\\\\usepackage/ctex#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/currfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"abspath\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"abspath=true\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"realmainfile\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"realmainfile=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"currfiledir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilebase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfileext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcurrfiledir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfiledir{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilebase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilebase{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfileext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfileext{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilename{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilepath{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcurrfile{${1:macro or text}}{${2:text}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"parentfiledir\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebase\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileext\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilename\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepath\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdir\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspath\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilegetparents\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilediri\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfiledirii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebasei\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebaseii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileexti\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileextii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilenamei\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilenameii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepathi\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepathii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdiri\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdirii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspathi\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspathii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/currfile#c\": [\n      \"mainext=${1:extension}\",\n      \"maindir=${1:directory}\",\n      \"fink\",\n      \"abspath\",\n      \"realmainfile\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/currfile#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/currvita.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cvplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvplace{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"cvheadingfont\"\n    },\n    {\n      \"name\": \"cvlistheadingfont\"\n    },\n    {\n      \"name\": \"cvlabelfont\"\n    },\n    {\n      \"name\": \"cvlabelwidth\"\n    },\n    {\n      \"name\": \"cvlabelskip\"\n    },\n    {\n      \"name\": \"cvlabelsep\"\n    },\n    {\n      \"name\": \"cvbibname\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading of the curriculum vitae%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/currvita#c\": [\n      \"LabelsAligned\",\n      \"TextAligned\",\n      \"openbib\",\n      \"ManyBibs\",\n      \"NoDate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/currvita#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/cyrillic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CYRA\"\n    },\n    {\n      \"name\": \"CYRB\"\n    },\n    {\n      \"name\": \"CYRV\"\n    },\n    {\n      \"name\": \"CYRG\"\n    },\n    {\n      \"name\": \"CYRD\"\n    },\n    {\n      \"name\": \"CYRE\"\n    },\n    {\n      \"name\": \"CYRYO\"\n    },\n    {\n      \"name\": \"CYRZH\"\n    },\n    {\n      \"name\": \"CYRZ\"\n    },\n    {\n      \"name\": \"CYRI\"\n    },\n    {\n      \"name\": \"CYRISHRT\"\n    },\n    {\n      \"name\": \"CYRK\"\n    },\n    {\n      \"name\": \"CYRL\"\n    },\n    {\n      \"name\": \"CYRM\"\n    },\n    {\n      \"name\": \"CYRN\"\n    },\n    {\n      \"name\": \"CYRO\"\n    },\n    {\n      \"name\": \"CYRP\"\n    },\n    {\n      \"name\": \"CYRR\"\n    },\n    {\n      \"name\": \"CYRS\"\n    },\n    {\n      \"name\": \"CYRT\"\n    },\n    {\n      \"name\": \"CYRU\"\n    },\n    {\n      \"name\": \"CYRF\"\n    },\n    {\n      \"name\": \"CYRH\"\n    },\n    {\n      \"name\": \"CYRC\"\n    },\n    {\n      \"name\": \"CYRCH\"\n    },\n    {\n      \"name\": \"CYRSH\"\n    },\n    {\n      \"name\": \"CYRSHCH\"\n    },\n    {\n      \"name\": \"CYRHRDSN\"\n    },\n    {\n      \"name\": \"CYRERY\"\n    },\n    {\n      \"name\": \"CYRSFTSN\"\n    },\n    {\n      \"name\": \"CYREREV\"\n    },\n    {\n      \"name\": \"CYRYU\"\n    },\n    {\n      \"name\": \"CYRYA\"\n    },\n    {\n      \"name\": \"cyra\"\n    },\n    {\n      \"name\": \"cyrb\"\n    },\n    {\n      \"name\": \"cyrv\"\n    },\n    {\n      \"name\": \"cyrg\"\n    },\n    {\n      \"name\": \"cyrd\"\n    },\n    {\n      \"name\": \"cyre\"\n    },\n    {\n      \"name\": \"cyryo\"\n    },\n    {\n      \"name\": \"cyrzh\"\n    },\n    {\n      \"name\": \"cyrz\"\n    },\n    {\n      \"name\": \"cyri\"\n    },\n    {\n      \"name\": \"cyrishrt\"\n    },\n    {\n      \"name\": \"cyrk\"\n    },\n    {\n      \"name\": \"cyrl\"\n    },\n    {\n      \"name\": \"cyrm\"\n    },\n    {\n      \"name\": \"cyrn\"\n    },\n    {\n      \"name\": \"cyro\"\n    },\n    {\n      \"name\": \"cyrp\"\n    },\n    {\n      \"name\": \"cyrr\"\n    },\n    {\n      \"name\": \"cyrs\"\n    },\n    {\n      \"name\": \"cyrt\"\n    },\n    {\n      \"name\": \"cyru\"\n    },\n    {\n      \"name\": \"cyrf\"\n    },\n    {\n      \"name\": \"cyrh\"\n    },\n    {\n      \"name\": \"cyrc\"\n    },\n    {\n      \"name\": \"cyrch\"\n    },\n    {\n      \"name\": \"cyrsh\"\n    },\n    {\n      \"name\": \"cyrshch\"\n    },\n    {\n      \"name\": \"cyrhrdsn\"\n    },\n    {\n      \"name\": \"cyrery\"\n    },\n    {\n      \"name\": \"cyrsftsn\"\n    },\n    {\n      \"name\": \"cyrerev\"\n    },\n    {\n      \"name\": \"cyryu\"\n    },\n    {\n      \"name\": \"cyrya\"\n    },\n    {\n      \"name\": \"CYRABHCH\"\n    },\n    {\n      \"name\": \"CYRABHCHDSC\"\n    },\n    {\n      \"name\": \"CYRZHDSC\"\n    },\n    {\n      \"name\": \"CYRABHDZE\"\n    },\n    {\n      \"name\": \"CYRZDSC\"\n    },\n    {\n      \"name\": \"CYRKHK\"\n    },\n    {\n      \"name\": \"CYRKHCRS\"\n    },\n    {\n      \"name\": \"CYRKDSC\"\n    },\n    {\n      \"name\": \"CYRKVCRS\"\n    },\n    {\n      \"name\": \"CYRLJE\"\n    },\n    {\n      \"name\": \"CYRLDSC\"\n    },\n    {\n      \"name\": \"CYRMDSC\"\n    },\n    {\n      \"name\": \"CYRNDSC\"\n    },\n    {\n      \"name\": \"CYRNG\"\n    },\n    {\n      \"name\": \"CYRNJE\"\n    },\n    {\n      \"name\": \"CYRNHK\"\n    },\n    {\n      \"name\": \"CYROTLD\"\n    },\n    {\n      \"name\": \"CYRPHK\"\n    },\n    {\n      \"name\": \"CYRRTICK\"\n    },\n    {\n      \"name\": \"CYRSDSC\"\n    },\n    {\n      \"name\": \"CYRTDSC\"\n    },\n    {\n      \"name\": \"CYRTSHE\"\n    },\n    {\n      \"name\": \"CYRDJE\"\n    },\n    {\n      \"name\": \"CYRUSHRT\"\n    },\n    {\n      \"name\": \"CYRSHHA\"\n    },\n    {\n      \"name\": \"CYRGHK\"\n    },\n    {\n      \"name\": \"CYRGUP\"\n    },\n    {\n      \"name\": \"CYRGHCRS\"\n    },\n    {\n      \"name\": \"CYRHDSC\"\n    },\n    {\n      \"name\": \"CYRDZHE\"\n    },\n    {\n      \"name\": \"CYRDZE\"\n    },\n    {\n      \"name\": \"CYRTETSE\"\n    },\n    {\n      \"name\": \"CYRCHLDSC\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\"\n    },\n    {\n      \"name\": \"CYRSEMISFTSN\"\n    },\n    {\n      \"name\": \"CYRIE\"\n    },\n    {\n      \"name\": \"CYRSCHWA\"\n    },\n    {\n      \"name\": \"CYRII\"\n    },\n    {\n      \"name\": \"CYRJE\"\n    },\n    {\n      \"name\": \"CYRYI\"\n    },\n    {\n      \"name\": \"CYRY\"\n    },\n    {\n      \"name\": \"CYRYHCRS\"\n    },\n    {\n      \"name\": \"CYRAE\"\n    },\n    {\n      \"name\": \"CYRABHHA\"\n    },\n    {\n      \"name\": \"CYRpalochka\"\n    },\n    {\n      \"name\": \"cyrabhch\"\n    },\n    {\n      \"name\": \"cyrabhchdsc\"\n    },\n    {\n      \"name\": \"cyrzhdsc\"\n    },\n    {\n      \"name\": \"cyrabhdze\"\n    },\n    {\n      \"name\": \"cyrzdsc\"\n    },\n    {\n      \"name\": \"cyrkhk\"\n    },\n    {\n      \"name\": \"cyrkhcrs\"\n    },\n    {\n      \"name\": \"cyrkdsc\"\n    },\n    {\n      \"name\": \"cyrkvcrs\"\n    },\n    {\n      \"name\": \"cyrlje\"\n    },\n    {\n      \"name\": \"cyrldsc\"\n    },\n    {\n      \"name\": \"cyrmdsc\"\n    },\n    {\n      \"name\": \"cyrndsc\"\n    },\n    {\n      \"name\": \"cyrng\"\n    },\n    {\n      \"name\": \"cyrnje\"\n    },\n    {\n      \"name\": \"cyrnhk\"\n    },\n    {\n      \"name\": \"cyrotld\"\n    },\n    {\n      \"name\": \"cyrphk\"\n    },\n    {\n      \"name\": \"cyrrtick\"\n    },\n    {\n      \"name\": \"cyrsdsc\"\n    },\n    {\n      \"name\": \"cyrtdsc\"\n    },\n    {\n      \"name\": \"cyrtshe\"\n    },\n    {\n      \"name\": \"cyrdje\"\n    },\n    {\n      \"name\": \"cyrushrt\"\n    },\n    {\n      \"name\": \"cyrshha\"\n    },\n    {\n      \"name\": \"cyrghk\"\n    },\n    {\n      \"name\": \"cyrgup\"\n    },\n    {\n      \"name\": \"cyrghcrs\"\n    },\n    {\n      \"name\": \"cyrhdsc\"\n    },\n    {\n      \"name\": \"cyrdzhe\"\n    },\n    {\n      \"name\": \"cyrdze\"\n    },\n    {\n      \"name\": \"cyrtetse\"\n    },\n    {\n      \"name\": \"cyrchldsc\"\n    },\n    {\n      \"name\": \"cyrchvcrs\"\n    },\n    {\n      \"name\": \"cyrchrdsc\"\n    },\n    {\n      \"name\": \"cyrsemisftsn\"\n    },\n    {\n      \"name\": \"cyrie\"\n    },\n    {\n      \"name\": \"cyrschwa\"\n    },\n    {\n      \"name\": \"cyrii\"\n    },\n    {\n      \"name\": \"cyrje\"\n    },\n    {\n      \"name\": \"cyryi\"\n    },\n    {\n      \"name\": \"cyry\"\n    },\n    {\n      \"name\": \"cyryhcrs\"\n    },\n    {\n      \"name\": \"cyrae\"\n    },\n    {\n      \"name\": \"cyrabhha\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/datatool-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"datatool-fp\"\n    },\n    {\n      \"name\": \"datatool-pgfmath\",\n      \"if\": \"math=pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLsetnumberchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsetnumberchars{${1:number group character}}{${2:decimal character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewcurrencysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewcurrencysymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifint{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifreal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifreal{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifcurrency{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcurrencyunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifcurrencyunit{${1:text%plain}}{${2:symbol}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumerical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnumerical{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifstring{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcasedatatype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifcasedatatype{${1:text%plain}}{${2:string case}}{${3:int case}}{${4:real case}}{${5:currency case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumeq{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringeq{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringeq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringeq*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifeq{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifeq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifeq*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumlt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringlt{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringlt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringlt*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLiflt{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLiflt*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumgt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringgt{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringgt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringgt*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifgt{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifgt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifgt*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifnumclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringclosedbetween{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringclosedbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringclosedbetween*{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifclosedbetween{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifclosedbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifclosedbetween*{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifnumopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringopenbetween{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringopenbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringopenbetween*{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifopenbetween{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifopenbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifopenbetween*{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifFPclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifFPclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifFPopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifFPopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifAllUpperCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifAllUpperCase{${1:string}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifAllLowerCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifAllLowerCase{${1:string}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifSubString{${1:string}}{${2:substring}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifStartsWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifStartsWith{${1:string}}{${2:substring}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifintclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifintclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifintopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifintopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisstring{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumerical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisnumerical{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiscurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLiscurrency{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiscurrencyunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiscurrencyunit{${1:test}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisreal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisreal{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisint{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLislt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLislt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisilt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisilt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisgt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisigt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisigt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiseq{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisieq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisieq{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisclosedbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisiclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisiclosedbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisopenbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisiopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisiopenbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPlt{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPlteq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPlteq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPgt{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPgteq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPgteq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPeq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisFPclosedbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisFPopenbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisSubString{${1:string}}{${2:substring}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisPrefix{${1:string}}{${2:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisinlist{${1:element}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisnumclosedbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisnumopenbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLconverttodecimal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLconverttodecimal{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdecimaltolocale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLdecimaltolocale{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdecimaltocurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLdecimaltocurrency{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetdefaultcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetdefaultcurrency{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLaddall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLaddall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgaddall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgaddall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLneg{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgneg{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsqrt{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgsqrt{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLminall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgminall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgminall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLmaxall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmaxall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgmaxall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLmeanforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmeanforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgmeanforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLvarianceforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgvarianceforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgvarianceforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsdforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsdforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgsdforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLround{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLground{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLtrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLtrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgtrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgtrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsubstitute{${1:cmd}}{${2:original}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsubstituteall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsubstituteall{${1:cmd}}{${2:original}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsplitstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLsplitstring{${1:string}}{${2:split text}}{${3:before cmd%cmd}}{${4:after cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLinitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLinitials{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DTLstoreinitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLstoreinitials{${1:string}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLafterinitials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbetweeninitials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLinitialhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLafterinitialbeforehyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatlist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifDTLlistskipempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistskipemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistskipemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatoxford\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLlistformatitem{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifinlist{${1:element}}{${2:list}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnumitemsinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLnumitemsinlist{${1:list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLlistelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLlistelement{${1:list}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLfetchlistelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLfetchlistelement{${1:list}}{${2:index}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsortlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsortlist{${1:list cmd}}{${2:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlcompare{${1:register}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"dtlicompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlicompare{${1:register}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"ifdtlcompareskipcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcompareskipcstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcompareskipcsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlwordindexcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlwordindexcompare{${1:register}}{${2:word1}}{${3:word1}}\"\n      }\n    },\n    {\n      \"name\": \"dtlletterindexcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlletterindexcompare{${1:register}}{${2:letter1}}{${3:letter2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlicomparewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlicomparewords{${1:count}}{${2:word1}}{${3:word2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcomparewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlcomparewords{${1:count}}{${2:word1}}{${3:word2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlinsertinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlinsertinto{${1:element}}{${2:list cmd}}{${3:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"edtlinsertinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edtlinsertinto{${1:element}}{${2:list cmd}}{${3:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"datatoolpersoncomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolplacecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolsubjectcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolparenstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlsetcharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetcharcode{${1:character}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetlccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetlccharcode{${1:character}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetUTFviiicharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetUTFviiicharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetUTFviiilccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetUTFviiilccharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetdefaultUTFviiicharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetdefaultUTFviiicharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetdefaultUTFviiilccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetdefaultUTFviiilccharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifcasechargroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifcasechargroup{${1:char}}{${2:case letter}}{${3:case digit}}{${4:case symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dtlparsewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlparsewords{${1:phrase}}{${2:handler cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlgforint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdtlverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlverbosefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlenableUTFviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisableUTFviii\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dtlenvgforint\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/datatool-base#c\": [\n      \"verbose\",\n      \"math=${1|fp,pgfmath|}\",\n      \"utf8\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datatool-base#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/datatool.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    },\n    {\n      \"name\": \"datatool-pgfmath\",\n      \"if\": \"math=pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLnewdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewdb{${1:db%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgnewdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgnewdb{${1:db%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifdbempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifdbempty{${1:db%special}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLrowcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLrowcount{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcolumncount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcolumncount{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewrow{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewdbentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLnewdbentry{${1:db%special}}{${2:dbkey}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlexpandnewvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoexpandnewvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLaddentryforrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLaddentryforrow{${1:db%special}}{${2:assign list}}{${3:condition}}{${4:dbkey}}{${5:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsetheader{${1:db%special}}{${2:dbkey}}{${3:header}}\"\n      }\n    },\n    {\n      \"name\": \"DTLaddcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLaddcolumn{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloaddb{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLloaddb[${3:options%keyvals}]{${1:db%specialDef}}{${2:filename%file}}\",\n        \"keys\": [\n          \"\\\\DTLloaddb,\\\\DTLloadrawdb\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifDTLnewdbonload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnewdbonloadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnewdbonloadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldefaultkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsettabseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsettabseparator{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaketabspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsetseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetseparator{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetdelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetdelimiter{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadrawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloadrawdb{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadrawdb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLloadrawdb[${3:options%keyvals}]{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLrawmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLrawmap{${1:string}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaydb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaydb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaydb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTLdisplaydb[${2:omit list}]{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylongdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaylongdb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylongdb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTLdisplaylongdb[${2:options%keyvals}]{${1:db%special}}\",\n        \"keys\": [\n          \"\\\\DTLdisplaylongdb\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dtlstringalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlintalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrealalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcurrencyalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbeforecols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbetweencols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlaftercols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtladdalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtladdalign{${1:cmd}}{${2:type}}{${3:col index}}{${4:max cols}}\"\n      }\n    },\n    {\n      \"name\": \"dtlheaderformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlheaderformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlstringformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlstringformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlintformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlintformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlrealformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlrealformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcurrencyformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlcurrencyformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtldisplayvalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaystarttab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplayendtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplayafterhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaystartrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLforeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLforeach{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLforeach[${4:condition}]{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLforeach*{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLforeach*[${4:condition}]{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"theDTLrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcurrentindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLiffirstrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiffirstrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflastrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiflastrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifoddrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLifoddrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavelastrowcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsavelastrowcount{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeachkeyinrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLforeachkeyinrow{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dtlkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstringnull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnumbernull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLifnull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnull{${1:cmd}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnullorempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnullorempty{${1:cmd}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlnovalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlswaprows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlswaprows{${1:db%special}}{${2:row1 index}}{${3:row2 index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremoverow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLremoverow{${1:db%special}}{${2:row index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLappendtorow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLappendtorow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLreplaceentryforrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLreplaceentryforrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremoveentryfromrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLremoveentryfromrow{${1:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremovecurrentrow\"\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsumforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLsumforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLsumforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsumcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmeanforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLvarianceforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsdforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLsdforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLsdforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsdforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLminforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLminforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLminforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLminforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmaxforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcomputebounds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"DTLcomputebounds{${1:db%special}}{${2:x key}}{${3:y key}}{${4:minX%cmd}}{${5:minY%cmd}}{${6:maxX%cmd}}{${7:maxY%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsort\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlsort{${1:sort criteria}}{${2:db%special}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dtlsort[${4:replacement key list}]{${1:sort criteria}}{${2:db%special}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsort{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLsort[${3:replacement key list}]{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsort*{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLsort*[${3:replacement key list}]{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavedb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsavedb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavetexdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsavetexdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsaverawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsaverawdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLprotectedsaverawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLprotectedsaverawdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddbtex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloaddbtex{${1:cmd}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"dtllastloadeddb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcleardb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcleardb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgcleardb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgcleardb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdeletedb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdeletedb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgdeletedb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgdeletedb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetdatatype\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetdatatype{${1:cmd}}{${2:db%special}}{${3:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLunsettype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstringtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLinttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrealtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcurrencytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLifdbexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifdbexists{${1:db%special}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifhaskey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifhaskey{${1:db%special}}{${2:dbkey}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetcolumnindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetcolumnindex{${1:cmd}}{${2:db%special}}{${3:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetkeyforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetkeyforcolumn{${1:cmd}}{${2:db%special}}{${3:column index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcolumnindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlcolumnindex{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetkeydata\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLgetkeydata{${1:dbkey}}{${2:db%special}}{${3:col cmd%cmd}}{${4:type cmd%cmd}}{${5:header cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetvalue{${1:cmd}}{${2:db%special}}{${3:row}}{${4:column}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetlocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetlocation{${1:row cmd%cmd}}{${2:column cmd%cmd}}{${3:db%special}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetvalueforkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLgetvalueforkey{${1:cmd}}{${2:dbkey}}{${3:db%special}}{${4:ref key}}{${5:ref value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetrowforkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetrowforkey{${1:cmd}}{${2:db%special}}{${3:ref key}}{${4:ref value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLfetch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLfetch{${1:db%special}}{${2:col1 name}}{${3:col1 value}}{${4:col2 name}}\"\n      }\n    },\n    {\n      \"name\": \"DTLassign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLassign{${1:db%special}}{${2:row index}}{${3:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLassignfirstmatch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLassignfirstmatch{${1:db%special}}{${2:dbkey}}{${3:value}}{${4:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"xDTLassignfirstmatch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xDTLassignfirstmatch{${1:db%special}}{${2:dbkey}}{${3:value}}{${4:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLswaprows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLswaprows{${1:db%special}}{${2:row1 index}}{${3:row2 index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"xdtlgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xdtlgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcurrentrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbeforerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlafterrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrownum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcolumnnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlgetrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlgetrow{${1:db%special}}{${2:row index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetrowforvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlgetrowforvalue{${1:db%special}}{${2:col index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"edtlgetrowforvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edtlgetrowforvalue{${1:db%special}}{${2:col index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlrecombine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrecombineomitcurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlsplitrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlsplitrow{${1:row specs}}{${2:col index}}{${3:before cmd%cmd}}{${4:after cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetentryfromcurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlgetentryfromcurrentrow{${1:cmd}}{${2:col index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetentryfromrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlgetentryfromrow{${1:cmd}}{${2:col index}}{${3:row toks}}\"\n      }\n    },\n    {\n      \"name\": \"dtlreplaceentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlreplaceentryincurrentrow{${1:new value}}{${2:col index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlswapentriesincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlswapentriesincurrentrow{${1:col1 index}}{${2:col2 index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlappendentrytocurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlappendentrytocurrentrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlupdateentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlupdateentryincurrentrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlremoveentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlremoveentryincurrentrow{${1:col index}}\"\n      }\n    },\n    {\n      \"name\": \"in\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"in{${1:db%special}}\"\n      },\n      \"detail\": \"∈\",\n      \"doc\": \"Set membership, variant\"\n    },\n    {\n      \"name\": \"do\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"do{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforcolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlforcolumn{${1:cmd}}{${2:db%special}}{${3:dbkey}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforcolumnidx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlforcolumnidx{${1:cmd}}{${2:db%special}}{${3:col index}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"theHDTLrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlforeachlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlshowdb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlshowdb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"dtlshowdbkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlshowdbkeys{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"dtlshowtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlshowtype{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"ifdtlnoheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoheadertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoheaderfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdtlautokeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlautokeystrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlautokeysfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DTLenvforeach\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:condition}]{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:condition}]{${1:db%special}}{${2:assign list}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/datatool#c\": [\n      \"utf8\",\n      \"verbose\",\n      \"math=${1|fp,pgfmath|}\",\n      \"delimiter=${1:delimiter}\",\n      \"separator=${1:separator}\"\n    ],\n    \"\\\\DTLloaddb,\\\\DTLloadrawdb\": [\n      \"noheader\",\n      \"keys={${1:key1,key2,...}}\",\n      \"autokeys\",\n      \"headers={${1:header1,header2,...}}\",\n      \"omitlines=${1:integer}\"\n    ],\n    \"\\\\DTLdisplaylongdb\": [\n      \"caption={${1:text}}\",\n      \"contcaption={${1:text}}\",\n      \"shortcaption={${1:text}}\",\n      \"label=\",\n      \"omit={${1:key1,key2,...}}\",\n      \"foot={${1:text}}\",\n      \"lastfoot={${1:text}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datatool#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/doi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"doitext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiurl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/easy-todo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:note%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todoi{${1:note%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todoii\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todoii{${1:note%todo}}{${2:information%text}}\"\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"todoindextitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todoindexpagetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todocolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoftodosname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/easy-todo#c\": [\n      \"chapter\",\n      \"section\",\n      \"obeyFinal\",\n      \"enable\",\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easy-todo#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/empheq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"empheqset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empheqset{${1:markup instructions%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{empheq},\\\\empheqset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"empheqlbrace\"\n    },\n    {\n      \"name\": \"empheqrbrace\"\n    },\n    {\n      \"name\": \"empheqbiglbrace\"\n    },\n    {\n      \"name\": \"empheqbigrbrace\"\n    },\n    {\n      \"name\": \"empheqlbrack\"\n    },\n    {\n      \"name\": \"empheqrbrack\"\n    },\n    {\n      \"name\": \"empheqbiglbrack\"\n    },\n    {\n      \"name\": \"empheqbigrbrack\"\n    },\n    {\n      \"name\": \"empheqlangle\"\n    },\n    {\n      \"name\": \"empheqrangle\"\n    },\n    {\n      \"name\": \"empheqbiglangle\"\n    },\n    {\n      \"name\": \"empheqbigrangle\"\n    },\n    {\n      \"name\": \"empheqlparen\"\n    },\n    {\n      \"name\": \"empheqrparen\"\n    },\n    {\n      \"name\": \"empheqbiglparen\"\n    },\n    {\n      \"name\": \"empheqbigrparen\"\n    },\n    {\n      \"name\": \"empheqlvert\"\n    },\n    {\n      \"name\": \"empheqrvert\"\n    },\n    {\n      \"name\": \"empheqbiglvert\"\n    },\n    {\n      \"name\": \"empheqbigrvert\"\n    },\n    {\n      \"name\": \"empheqlVert\"\n    },\n    {\n      \"name\": \"empheqrVert\"\n    },\n    {\n      \"name\": \"empheqbiglVert\"\n    },\n    {\n      \"name\": \"empheqbigrVert\"\n    },\n    {\n      \"name\": \"empheqlfloor\"\n    },\n    {\n      \"name\": \"empheqrfloor\"\n    },\n    {\n      \"name\": \"empheqbiglfloor\"\n    },\n    {\n      \"name\": \"empheqbigrfloor\"\n    },\n    {\n      \"name\": \"empheqlceil\"\n    },\n    {\n      \"name\": \"empheqrceil\"\n    },\n    {\n      \"name\": \"empheqbiglceil\"\n    },\n    {\n      \"name\": \"empheqbigrceil\"\n    },\n    {\n      \"name\": \"shadowbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowbox*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mintagvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareLeftDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLeftDelimiter{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLeftDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLeftDelimiter[${2:space adjustment}]{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRightDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRightDelimiter{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRightDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareRightDelimiter[${2:space adjustment}]{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"EmphEqdelimitershortfall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdelimiterfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdisplayheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdisplaydepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqMainEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endEmphEqMainEnv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"empheq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:AMS env name}}\"\n      }\n    },\n    {\n      \"name\": \"empheq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:markup instructions%keyvals}]{${1:AMS env name}}\",\n        \"keys\": [\n          \"\\\\begin{empheq},\\\\empheqset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MTmultlined\",\n      \"if\": \"oldmultline\"\n    },\n    {\n      \"name\": \"MTmultlined\",\n      \"if\": \"oldmultline\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:pos}][${2:width}]\"\n      }\n    },\n    {\n      \"name\": \"align\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"align*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"equation\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"equation*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AmSalign\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalign*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalignat\",\n      \"if\": \"overload\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSalignat*\",\n      \"if\": \"overload\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSequation\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSequation*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"align\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"align*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"equation\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"equation*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AmSalign\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalign*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalignat\",\n      \"if\": \"overload2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSalignat*\",\n      \"if\": \"overload2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSequation\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSequation*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/empheq#c\": [\n      \"overload\",\n      \"overload2\",\n      \"oldmultline\",\n      \"newmultline\",\n      \"ntheorem\",\n      \"fixamsmath\",\n      \"donotfixamsmathbugs\",\n      \"allowspaces\",\n      \"disallowspaces\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\begin{empheq},\\\\empheqset\": [\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\"\n    ],\n    \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\": [\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\",\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/empheq#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/endnotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotemark\"\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"endnotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnotetext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoendnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enotesize\"\n    },\n    {\n      \"name\": \"theendnotes\"\n    },\n    {\n      \"name\": \"theendnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/enumerate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/epigraph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraph{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qitem{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphnoindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphnoindentfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphwidth\"\n    },\n    {\n      \"name\": \"textflush\"\n    },\n    {\n      \"name\": \"epigraphflush\"\n    },\n    {\n      \"name\": \"sourceflush\"\n    },\n    {\n      \"name\": \"epigraphsize\"\n    },\n    {\n      \"name\": \"epigraphrule\"\n    },\n    {\n      \"name\": \"beforeepigraphskip\"\n    },\n    {\n      \"name\": \"afterepigraphskip\"\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphhead[${2:distance}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dropchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropchapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"undodrop\"\n    },\n    {\n      \"name\": \"cleartoevenpage\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"epigraphs\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/epstopdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"grfext\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epstopdfsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epstopdfsetup{${1:key-value-list%keyvals}}\",\n        \"keys\": [\n          \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"OutputFile\"\n    },\n    {\n      \"name\": \"SourceFile\"\n    },\n    {\n      \"name\": \"SourceExt\"\n    },\n    {\n      \"name\": \"epstopdfDeclareGraphicsRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"epstopdfDeclareGraphicsRule{${1:ext}}{${2:type}}{${3:read-file}}{${4:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"epstopdfcall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epstopdfcall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AppendGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AppendGraphicsExtensions{${1:ext}}\"\n      }\n    },\n    {\n      \"name\": \"PrependGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrependGraphicsExtensions{${1:ext}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\": [\n      \"update\",\n      \"append\",\n      \"prepend\",\n      \"outdir=${1:directory}\",\n      \"suffix=${1:string}\",\n      \"prefersuffix\",\n      \"program@epstopdf=${1:program}\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/esint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"varoiint\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landupintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landdownintop\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esint#c\": [\n      \"intlimits\",\n      \"nointlimits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esint#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/etoolbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"robustify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robustify{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"protecting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"protecting{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"defcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcounter{${1:counter}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"deflength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deflength{${1:length%cmd}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEndPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEndDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cslet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cslet{${1:csname}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"letcs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letcs{${1:command}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csletcs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csletcs{${1:csname}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csuse{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"undef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undef{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"gundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gundef{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"csundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csundef{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csgundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csgundef{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csmeaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csmeaning{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csshow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csshow{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"numdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numdef{${1:command}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"numgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numgdef{${1:command}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"csnumdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csnumdef{${1:csname}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"csnumgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csnumgdef{${1:csname}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"dimdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimdef{${1:command}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"dimgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimgdef{${1:command}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"csdimdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csdimdef{${1:csname}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"csdimgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csdimgdef{${1:csname}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"gluedef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gluedef{${1:command}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"gluegdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gluegdef{${1:command}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csgluedef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgluedef{${1:csname}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csgluegdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgluegdef{${1:csname}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"mudef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mudef{${1:command}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"mugdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mugdef{${1:command}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csmudef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csmudef{${1:csname}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csmugdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csmugdef{${1:csname}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"expandonce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandonce{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"csexpandonce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csexpandonce{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"appto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"gappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"eappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"xappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csgappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cseappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cseappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csxappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"preto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"preto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"gpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gpreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"epreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"xpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cspreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cspreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csgpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgpreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csepreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csepreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csxpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxpreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"patchcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"patchcmd{${1:command}}{${2:search}}{${3:replace}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"patchcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"patchcmd[${6:prefix}]{${1:command}}{${2:search}}{${3:replace}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"ifpatchable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifpatchable{${1:command}}{${2:search}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpatchable*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpatchable*{${1:command}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"apptocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"apptocmd{${1:command}}{${2:code}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"pretocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pretocmd{${1:command}}{${2:code}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"tracingpatches\"\n    },\n    {\n      \"name\": \"newbool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newbool{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"providebool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providebool{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"booltrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booltrue{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"boolfalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolfalse{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"setbool\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbool{${1:bool name}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbool\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbool{${1:bool name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"notbool\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"notbool{${1:bool name}}{${2:not true}}{${3:not false}}\"\n      }\n    },\n    {\n      \"name\": \"newtoggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtoggle{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"providetoggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providetoggle{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"toggletrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toggletrue{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"togglefalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"togglefalse{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"settoggle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoggle{${1:toggle name}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"iftoggle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftoggle{${1:toggle name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"nottoggle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nottoggle{${1:toggle name}}{${2:not true}}{${3:not false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdef{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsdef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifundef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifundef{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsundef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsundef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefmacro{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsmacro{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefparam\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefparam{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsparam\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsparam{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefprefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefprefix{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsprefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsprefix{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefprotected\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefprotected{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsprotected\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsprotected{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefltxprotect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefltxprotect{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsltxprotect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsltxprotect{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefempty{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsempty{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefvoid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefvoid{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvoid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsvoid{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefequal{${1:control sequence}}{${2:control sequence}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsequal{${1:csname}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefstring{${1:command}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsstring{${1:csname}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefstrequal{${1:command}}{${2:command}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsstrequal{${1:csname}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefcounter{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcscounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcscounter{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifltxcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifltxcounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdeflength\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdeflength{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcslength\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcslength{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefdimen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefdimen{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsdimen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsdimen{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifstrequal{${1:string}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifstrempty{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblank\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"notblank\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"notblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifnumcomp{${1:integer expression}}{${2:relation}}{${3:integer expression}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumequal{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumgreater\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumgreater{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumless\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumless{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumodd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumodd{${1:integer expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifdimcomp{${1:dimen expression}}{${2:relation}}{${3:dimen expression}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdimequal{${1:dimen expression}}{${2:dimen expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimgreater\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdimgreater{${1:dimen expression}}{${2:dimen expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimless\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdimless{${1:dimen expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpr{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifboolexpe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpe{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"whileboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whileboolexpr{${1:expression}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"unlessboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unlessboolexpr{${1:expression}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListParser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListParser{${1:command}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListParser*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListParser*{${1:command}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"docsvlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docsvlist{${1:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"listbreak\"\n    },\n    {\n      \"name\": \"forcsvlist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcsvlist{${1:handler}}{${2:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"listadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listgadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listeadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listeadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listxadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listxadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsgadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsgadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcseadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcseadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsxadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsxadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listremove{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listgremove{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsremove{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsgremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsgremove{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"dolistloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolistloop{${1:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"dolistcsloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolistcsloop{${1:list csname}}\"\n      }\n    },\n    {\n      \"name\": \"forlistloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forlistloop{${1:handler}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"forlistcsloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forlistcsloop{${1:handler}}{${2:list csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifinlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifinlist{${1:item}}{${2:list macro}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifinlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifinlist{${1:item}}{${2:list macro}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifinlistcs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifinlistcs{${1:item}}{${2:list csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifinlistcs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifinlistcs{${1:item}}{${2:list csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"rmntonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmntonum{${1:numeral}}\"\n      }\n    },\n    {\n      \"name\": \"ifrmnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifrmnum{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/eurosym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"EUR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EUR{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"eurobars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eurobarsnarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eurobarswide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneuronarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneurowide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"officialeuro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eurosym#c\": [\n      \"left\",\n      \"right\",\n      \"official\",\n      \"gen\",\n      \"gennarrow\",\n      \"genwide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eurosym#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/expl3.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ExplLoaderFileDate\"\n    },\n    {\n      \"name\": \"ExplSyntaxOff\"\n    },\n    {\n      \"name\": \"ExplSyntaxOn\"\n    },\n    {\n      \"name\": \"GetIdInfo\"\n    },\n    {\n      \"name\": \"ProvidesExplClass\"\n    },\n    {\n      \"name\": \"ProvidesExplFile\"\n    },\n    {\n      \"name\": \"ProvidesExplPackage\"\n    },\n    {\n      \"name\": \"bitset_addto_named_index:Nn\"\n    },\n    {\n      \"name\": \"bitset_clear:N\"\n    },\n    {\n      \"name\": \"bitset_clear:c\"\n    },\n    {\n      \"name\": \"bitset_gclear:N\"\n    },\n    {\n      \"name\": \"bitset_gclear:c\"\n    },\n    {\n      \"name\": \"bitset_gset_false:Nn\"\n    },\n    {\n      \"name\": \"bitset_gset_false:cn\"\n    },\n    {\n      \"name\": \"bitset_gset_true:Nn\"\n    },\n    {\n      \"name\": \"bitset_gset_true:cn\"\n    },\n    {\n      \"name\": \"bitset_if_exist:NF\"\n    },\n    {\n      \"name\": \"bitset_if_exist:NT\"\n    },\n    {\n      \"name\": \"bitset_if_exist:NTF\"\n    },\n    {\n      \"name\": \"bitset_if_exist:cF\"\n    },\n    {\n      \"name\": \"bitset_if_exist:cT\"\n    },\n    {\n      \"name\": \"bitset_if_exist:cTF\"\n    },\n    {\n      \"name\": \"bitset_if_exist_p:N\"\n    },\n    {\n      \"name\": \"bitset_if_exist_p:c\"\n    },\n    {\n      \"name\": \"bitset_item:Nn\"\n    },\n    {\n      \"name\": \"bitset_item:cn\"\n    },\n    {\n      \"name\": \"bitset_log:N\"\n    },\n    {\n      \"name\": \"bitset_log:c\"\n    },\n    {\n      \"name\": \"bitset_log_named_index:N\"\n    },\n    {\n      \"name\": \"bitset_log_named_index:c\"\n    },\n    {\n      \"name\": \"bitset_new:N\"\n    },\n    {\n      \"name\": \"bitset_new:Nn\"\n    },\n    {\n      \"name\": \"bitset_new:c\"\n    },\n    {\n      \"name\": \"bitset_new:cn\"\n    },\n    {\n      \"name\": \"bitset_set_false:Nn\"\n    },\n    {\n      \"name\": \"bitset_set_false:cn\"\n    },\n    {\n      \"name\": \"bitset_set_true:Nn\"\n    },\n    {\n      \"name\": \"bitset_set_true:cn\"\n    },\n    {\n      \"name\": \"bitset_show:N\"\n    },\n    {\n      \"name\": \"bitset_show:c\"\n    },\n    {\n      \"name\": \"bitset_show_named_index:N\"\n    },\n    {\n      \"name\": \"bitset_show_named_index:c\"\n    },\n    {\n      \"name\": \"bitset_to_arabic:N\"\n    },\n    {\n      \"name\": \"bitset_to_arabic:c\"\n    },\n    {\n      \"name\": \"bitset_to_bin:N\"\n    },\n    {\n      \"name\": \"bitset_to_bin:c\"\n    },\n    {\n      \"name\": \"bool_case:n\"\n    },\n    {\n      \"name\": \"bool_case:nF\"\n    },\n    {\n      \"name\": \"bool_case:nT\"\n    },\n    {\n      \"name\": \"bool_case:nTF\"\n    },\n    {\n      \"name\": \"bool_const:Nn\"\n    },\n    {\n      \"name\": \"bool_const:cn\"\n    },\n    {\n      \"name\": \"bool_do_until:Nn\"\n    },\n    {\n      \"name\": \"bool_do_until:cn\"\n    },\n    {\n      \"name\": \"bool_do_until:nn\"\n    },\n    {\n      \"name\": \"bool_do_while:Nn\"\n    },\n    {\n      \"name\": \"bool_do_while:cn\"\n    },\n    {\n      \"name\": \"bool_do_while:nn\"\n    },\n    {\n      \"name\": \"bool_gset:Nn\"\n    },\n    {\n      \"name\": \"bool_gset:cn\"\n    },\n    {\n      \"name\": \"bool_gset_eq:NN\"\n    },\n    {\n      \"name\": \"bool_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"bool_gset_eq:cN\"\n    },\n    {\n      \"name\": \"bool_gset_eq:cc\"\n    },\n    {\n      \"name\": \"bool_gset_false:N\"\n    },\n    {\n      \"name\": \"bool_gset_false:c\"\n    },\n    {\n      \"name\": \"bool_gset_inverse:N\"\n    },\n    {\n      \"name\": \"bool_gset_inverse:c\"\n    },\n    {\n      \"name\": \"bool_gset_true:N\"\n    },\n    {\n      \"name\": \"bool_gset_true:c\"\n    },\n    {\n      \"name\": \"bool_if:NF\"\n    },\n    {\n      \"name\": \"bool_if:NT\"\n    },\n    {\n      \"name\": \"bool_if:NTF\"\n    },\n    {\n      \"name\": \"bool_if:cF\"\n    },\n    {\n      \"name\": \"bool_if:cT\"\n    },\n    {\n      \"name\": \"bool_if:cTF\"\n    },\n    {\n      \"name\": \"bool_if:nF\"\n    },\n    {\n      \"name\": \"bool_if:nT\"\n    },\n    {\n      \"name\": \"bool_if:nTF\"\n    },\n    {\n      \"name\": \"bool_if_exist:NF\"\n    },\n    {\n      \"name\": \"bool_if_exist:NT\"\n    },\n    {\n      \"name\": \"bool_if_exist:NTF\"\n    },\n    {\n      \"name\": \"bool_if_exist:cF\"\n    },\n    {\n      \"name\": \"bool_if_exist:cT\"\n    },\n    {\n      \"name\": \"bool_if_exist:cTF\"\n    },\n    {\n      \"name\": \"bool_if_exist_p:N\"\n    },\n    {\n      \"name\": \"bool_if_exist_p:c\"\n    },\n    {\n      \"name\": \"bool_if_p:N\"\n    },\n    {\n      \"name\": \"bool_if_p:c\"\n    },\n    {\n      \"name\": \"bool_if_p:n\"\n    },\n    {\n      \"name\": \"bool_lazy_all:nF\"\n    },\n    {\n      \"name\": \"bool_lazy_all:nT\"\n    },\n    {\n      \"name\": \"bool_lazy_all:nTF\"\n    },\n    {\n      \"name\": \"bool_lazy_all_p:n\"\n    },\n    {\n      \"name\": \"bool_lazy_and:nnF\"\n    },\n    {\n      \"name\": \"bool_lazy_and:nnT\"\n    },\n    {\n      \"name\": \"bool_lazy_and:nnTF\"\n    },\n    {\n      \"name\": \"bool_lazy_and_p:nn\"\n    },\n    {\n      \"name\": \"bool_lazy_any:nF\"\n    },\n    {\n      \"name\": \"bool_lazy_any:nT\"\n    },\n    {\n      \"name\": \"bool_lazy_any:nTF\"\n    },\n    {\n      \"name\": \"bool_lazy_any_p:n\"\n    },\n    {\n      \"name\": \"bool_lazy_or:nnF\"\n    },\n    {\n      \"name\": \"bool_lazy_or:nnT\"\n    },\n    {\n      \"name\": \"bool_lazy_or:nnTF\"\n    },\n    {\n      \"name\": \"bool_lazy_or_p:nn\"\n    },\n    {\n      \"name\": \"bool_log:N\"\n    },\n    {\n      \"name\": \"bool_log:c\"\n    },\n    {\n      \"name\": \"bool_log:n\"\n    },\n    {\n      \"name\": \"bool_new:N\"\n    },\n    {\n      \"name\": \"bool_new:c\"\n    },\n    {\n      \"name\": \"bool_not_p:n\"\n    },\n    {\n      \"name\": \"bool_set:Nn\"\n    },\n    {\n      \"name\": \"bool_set:cn\"\n    },\n    {\n      \"name\": \"bool_set_eq:NN\"\n    },\n    {\n      \"name\": \"bool_set_eq:Nc\"\n    },\n    {\n      \"name\": \"bool_set_eq:cN\"\n    },\n    {\n      \"name\": \"bool_set_eq:cc\"\n    },\n    {\n      \"name\": \"bool_set_false:N\"\n    },\n    {\n      \"name\": \"bool_set_false:c\"\n    },\n    {\n      \"name\": \"bool_set_inverse:N\"\n    },\n    {\n      \"name\": \"bool_set_inverse:c\"\n    },\n    {\n      \"name\": \"bool_set_true:N\"\n    },\n    {\n      \"name\": \"bool_set_true:c\"\n    },\n    {\n      \"name\": \"bool_show:N\"\n    },\n    {\n      \"name\": \"bool_show:c\"\n    },\n    {\n      \"name\": \"bool_show:n\"\n    },\n    {\n      \"name\": \"bool_to_str:N\"\n    },\n    {\n      \"name\": \"bool_to_str:c\"\n    },\n    {\n      \"name\": \"bool_to_str:n\"\n    },\n    {\n      \"name\": \"bool_until_do:Nn\"\n    },\n    {\n      \"name\": \"bool_until_do:cn\"\n    },\n    {\n      \"name\": \"bool_until_do:nn\"\n    },\n    {\n      \"name\": \"bool_while_do:Nn\"\n    },\n    {\n      \"name\": \"bool_while_do:cn\"\n    },\n    {\n      \"name\": \"bool_while_do:nn\"\n    },\n    {\n      \"name\": \"bool_xor:nnF\"\n    },\n    {\n      \"name\": \"bool_xor:nnT\"\n    },\n    {\n      \"name\": \"bool_xor:nnTF\"\n    },\n    {\n      \"name\": \"bool_xor_p:nn\"\n    },\n    {\n      \"name\": \"box_autosize_to_wd_and_ht:Nnn\"\n    },\n    {\n      \"name\": \"box_autosize_to_wd_and_ht:cnn\"\n    },\n    {\n      \"name\": \"box_autosize_to_wd_and_ht_plus_dp:Nnn\"\n    },\n    {\n      \"name\": \"box_autosize_to_wd_and_ht_plus_dp:cnn\"\n    },\n    {\n      \"name\": \"box_clear:N\"\n    },\n    {\n      \"name\": \"box_clear:c\"\n    },\n    {\n      \"name\": \"box_clear_new:N\"\n    },\n    {\n      \"name\": \"box_clear_new:c\"\n    },\n    {\n      \"name\": \"box_dp:N\"\n    },\n    {\n      \"name\": \"box_dp:c\"\n    },\n    {\n      \"name\": \"box_gautosize_to_wd_and_ht:Nnn\"\n    },\n    {\n      \"name\": \"box_gautosize_to_wd_and_ht:cnn\"\n    },\n    {\n      \"name\": \"box_gautosize_to_wd_and_ht_plus_dp:Nnn\"\n    },\n    {\n      \"name\": \"box_gautosize_to_wd_and_ht_plus_dp:cnn\"\n    },\n    {\n      \"name\": \"box_gclear:N\"\n    },\n    {\n      \"name\": \"box_gclear:c\"\n    },\n    {\n      \"name\": \"box_gclear_new:N\"\n    },\n    {\n      \"name\": \"box_gclear_new:c\"\n    },\n    {\n      \"name\": \"box_gresize_to_ht:Nn\"\n    },\n    {\n      \"name\": \"box_gresize_to_ht:cn\"\n    },\n    {\n      \"name\": \"box_gresize_to_ht_plus_dp:Nn\"\n    },\n    {\n      \"name\": \"box_gresize_to_ht_plus_dp:cn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd:Nn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd:cn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd_and_ht:Nnn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd_and_ht:cnn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd_and_ht_plus_dp:Nnn\"\n    },\n    {\n      \"name\": \"box_gresize_to_wd_and_ht_plus_dp:cnn\"\n    },\n    {\n      \"name\": \"box_grotate:Nn\"\n    },\n    {\n      \"name\": \"box_grotate:cn\"\n    },\n    {\n      \"name\": \"box_gscale:Nnn\"\n    },\n    {\n      \"name\": \"box_gscale:cnn\"\n    },\n    {\n      \"name\": \"box_gset_clipped:N\"\n    },\n    {\n      \"name\": \"box_gset_clipped:c\"\n    },\n    {\n      \"name\": \"box_gset_dp:Nn\"\n    },\n    {\n      \"name\": \"box_gset_dp:cn\"\n    },\n    {\n      \"name\": \"box_gset_eq:NN\"\n    },\n    {\n      \"name\": \"box_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"box_gset_eq:cN\"\n    },\n    {\n      \"name\": \"box_gset_eq:cc\"\n    },\n    {\n      \"name\": \"box_gset_eq_drop:NN\"\n    },\n    {\n      \"name\": \"box_gset_eq_drop:Nc\"\n    },\n    {\n      \"name\": \"box_gset_eq_drop:cN\"\n    },\n    {\n      \"name\": \"box_gset_eq_drop:cc\"\n    },\n    {\n      \"name\": \"box_gset_ht:Nn\"\n    },\n    {\n      \"name\": \"box_gset_ht:cn\"\n    },\n    {\n      \"name\": \"box_gset_to_last:N\"\n    },\n    {\n      \"name\": \"box_gset_to_last:c\"\n    },\n    {\n      \"name\": \"box_gset_trim:Nnnnn\"\n    },\n    {\n      \"name\": \"box_gset_trim:cnnnn\"\n    },\n    {\n      \"name\": \"box_gset_viewport:Nnnnn\"\n    },\n    {\n      \"name\": \"box_gset_viewport:cnnnn\"\n    },\n    {\n      \"name\": \"box_gset_wd:Nn\"\n    },\n    {\n      \"name\": \"box_gset_wd:cn\"\n    },\n    {\n      \"name\": \"box_ht:N\"\n    },\n    {\n      \"name\": \"box_ht:c\"\n    },\n    {\n      \"name\": \"box_ht_plus_dp:N\"\n    },\n    {\n      \"name\": \"box_ht_plus_dp:c\"\n    },\n    {\n      \"name\": \"box_if_empty:NF\"\n    },\n    {\n      \"name\": \"box_if_empty:NT\"\n    },\n    {\n      \"name\": \"box_if_empty:NTF\"\n    },\n    {\n      \"name\": \"box_if_empty:cF\"\n    },\n    {\n      \"name\": \"box_if_empty:cT\"\n    },\n    {\n      \"name\": \"box_if_empty:cTF\"\n    },\n    {\n      \"name\": \"box_if_empty_p:N\"\n    },\n    {\n      \"name\": \"box_if_empty_p:c\"\n    },\n    {\n      \"name\": \"box_if_exist:NF\"\n    },\n    {\n      \"name\": \"box_if_exist:NT\"\n    },\n    {\n      \"name\": \"box_if_exist:NTF\"\n    },\n    {\n      \"name\": \"box_if_exist:cF\"\n    },\n    {\n      \"name\": \"box_if_exist:cT\"\n    },\n    {\n      \"name\": \"box_if_exist:cTF\"\n    },\n    {\n      \"name\": \"box_if_exist_p:N\"\n    },\n    {\n      \"name\": \"box_if_exist_p:c\"\n    },\n    {\n      \"name\": \"box_if_horizontal:NF\"\n    },\n    {\n      \"name\": \"box_if_horizontal:NT\"\n    },\n    {\n      \"name\": \"box_if_horizontal:NTF\"\n    },\n    {\n      \"name\": \"box_if_horizontal:cF\"\n    },\n    {\n      \"name\": \"box_if_horizontal:cT\"\n    },\n    {\n      \"name\": \"box_if_horizontal:cTF\"\n    },\n    {\n      \"name\": \"box_if_horizontal_p:N\"\n    },\n    {\n      \"name\": \"box_if_horizontal_p:c\"\n    },\n    {\n      \"name\": \"box_if_vertical:NF\"\n    },\n    {\n      \"name\": \"box_if_vertical:NT\"\n    },\n    {\n      \"name\": \"box_if_vertical:NTF\"\n    },\n    {\n      \"name\": \"box_if_vertical:cF\"\n    },\n    {\n      \"name\": \"box_if_vertical:cT\"\n    },\n    {\n      \"name\": \"box_if_vertical:cTF\"\n    },\n    {\n      \"name\": \"box_if_vertical_p:N\"\n    },\n    {\n      \"name\": \"box_if_vertical_p:c\"\n    },\n    {\n      \"name\": \"box_log:N\"\n    },\n    {\n      \"name\": \"box_log:Nnn\"\n    },\n    {\n      \"name\": \"box_log:c\"\n    },\n    {\n      \"name\": \"box_log:cnn\"\n    },\n    {\n      \"name\": \"box_move_down:nn\"\n    },\n    {\n      \"name\": \"box_move_left:nn\"\n    },\n    {\n      \"name\": \"box_move_right:nn\"\n    },\n    {\n      \"name\": \"box_move_up:nn\"\n    },\n    {\n      \"name\": \"box_new:N\"\n    },\n    {\n      \"name\": \"box_new:c\"\n    },\n    {\n      \"name\": \"box_resize_to_ht:Nn\"\n    },\n    {\n      \"name\": \"box_resize_to_ht:cn\"\n    },\n    {\n      \"name\": \"box_resize_to_ht_plus_dp:Nn\"\n    },\n    {\n      \"name\": \"box_resize_to_ht_plus_dp:cn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd:Nn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd:cn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd_and_ht:Nnn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd_and_ht:cnn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd_and_ht_plus_dp:Nnn\"\n    },\n    {\n      \"name\": \"box_resize_to_wd_and_ht_plus_dp:cnn\"\n    },\n    {\n      \"name\": \"box_rotate:Nn\"\n    },\n    {\n      \"name\": \"box_rotate:cn\"\n    },\n    {\n      \"name\": \"box_scale:Nnn\"\n    },\n    {\n      \"name\": \"box_scale:cnn\"\n    },\n    {\n      \"name\": \"box_set_clipped:N\"\n    },\n    {\n      \"name\": \"box_set_clipped:c\"\n    },\n    {\n      \"name\": \"box_set_dp:Nn\"\n    },\n    {\n      \"name\": \"box_set_dp:cn\"\n    },\n    {\n      \"name\": \"box_set_eq:NN\"\n    },\n    {\n      \"name\": \"box_set_eq:Nc\"\n    },\n    {\n      \"name\": \"box_set_eq:cN\"\n    },\n    {\n      \"name\": \"box_set_eq:cc\"\n    },\n    {\n      \"name\": \"box_set_eq_drop:NN\"\n    },\n    {\n      \"name\": \"box_set_eq_drop:Nc\"\n    },\n    {\n      \"name\": \"box_set_eq_drop:cN\"\n    },\n    {\n      \"name\": \"box_set_eq_drop:cc\"\n    },\n    {\n      \"name\": \"box_set_ht:Nn\"\n    },\n    {\n      \"name\": \"box_set_ht:cn\"\n    },\n    {\n      \"name\": \"box_set_to_last:N\"\n    },\n    {\n      \"name\": \"box_set_to_last:c\"\n    },\n    {\n      \"name\": \"box_set_trim:Nnnnn\"\n    },\n    {\n      \"name\": \"box_set_trim:cnnnn\"\n    },\n    {\n      \"name\": \"box_set_viewport:Nnnnn\"\n    },\n    {\n      \"name\": \"box_set_viewport:cnnnn\"\n    },\n    {\n      \"name\": \"box_set_wd:Nn\"\n    },\n    {\n      \"name\": \"box_set_wd:cn\"\n    },\n    {\n      \"name\": \"box_show:N\"\n    },\n    {\n      \"name\": \"box_show:Nnn\"\n    },\n    {\n      \"name\": \"box_show:c\"\n    },\n    {\n      \"name\": \"box_show:cnn\"\n    },\n    {\n      \"name\": \"box_use:N\"\n    },\n    {\n      \"name\": \"box_use:c\"\n    },\n    {\n      \"name\": \"box_use_drop:N\"\n    },\n    {\n      \"name\": \"box_use_drop:c\"\n    },\n    {\n      \"name\": \"box_wd:N\"\n    },\n    {\n      \"name\": \"box_wd:c\"\n    },\n    {\n      \"name\": \"c_alignment_token\"\n    },\n    {\n      \"name\": \"c_ampersand_str\"\n    },\n    {\n      \"name\": \"c_atsign_str\"\n    },\n    {\n      \"name\": \"c_backslash_str\"\n    },\n    {\n      \"name\": \"c_catcode_active_space_tl\"\n    },\n    {\n      \"name\": \"c_catcode_active_tl\"\n    },\n    {\n      \"name\": \"c_catcode_letter_token\"\n    },\n    {\n      \"name\": \"c_catcode_other_space_tl\"\n    },\n    {\n      \"name\": \"c_catcode_other_token\"\n    },\n    {\n      \"name\": \"c_circumflex_str\"\n    },\n    {\n      \"name\": \"c_code_cctab\"\n    },\n    {\n      \"name\": \"c_colon_str\"\n    },\n    {\n      \"name\": \"c_document_cctab\"\n    },\n    {\n      \"name\": \"c_dollar_str\"\n    },\n    {\n      \"name\": \"c_e_fp\"\n    },\n    {\n      \"name\": \"c_empty_box\"\n    },\n    {\n      \"name\": \"c_empty_clist\"\n    },\n    {\n      \"name\": \"c_empty_coffin\"\n    },\n    {\n      \"name\": \"c_empty_prop\"\n    },\n    {\n      \"name\": \"c_empty_seq\"\n    },\n    {\n      \"name\": \"c_empty_str\"\n    },\n    {\n      \"name\": \"c_empty_tl\"\n    },\n    {\n      \"name\": \"c_false_bool\"\n    },\n    {\n      \"name\": \"c_group_begin_token\"\n    },\n    {\n      \"name\": \"c_group_end_token\"\n    },\n    {\n      \"name\": \"c_hash_str\"\n    },\n    {\n      \"name\": \"c_inf_fp\"\n    },\n    {\n      \"name\": \"c_initex_cctab\"\n    },\n    {\n      \"name\": \"c_left_brace_str\"\n    },\n    {\n      \"name\": \"c_log_iow\"\n    },\n    {\n      \"name\": \"c_math_subscript_token\"\n    },\n    {\n      \"name\": \"c_math_superscript_token\"\n    },\n    {\n      \"name\": \"c_math_toggle_token\"\n    },\n    {\n      \"name\": \"c_max_char_int\"\n    },\n    {\n      \"name\": \"c_max_dim\"\n    },\n    {\n      \"name\": \"c_max_int\"\n    },\n    {\n      \"name\": \"c_max_muskip\"\n    },\n    {\n      \"name\": \"c_max_register_int\"\n    },\n    {\n      \"name\": \"c_max_skip\"\n    },\n    {\n      \"name\": \"c_minus_inf_fp\"\n    },\n    {\n      \"name\": \"c_minus_zero_fp\"\n    },\n    {\n      \"name\": \"c_nan_fp\"\n    },\n    {\n      \"name\": \"c_novalue_tl\"\n    },\n    {\n      \"name\": \"c_one_degree_fp\"\n    },\n    {\n      \"name\": \"c_one_fp\"\n    },\n    {\n      \"name\": \"c_one_int\"\n    },\n    {\n      \"name\": \"c_other_cctab\"\n    },\n    {\n      \"name\": \"c_parameter_token\"\n    },\n    {\n      \"name\": \"c_percent_str\"\n    },\n    {\n      \"name\": \"c_pi_fp\"\n    },\n    {\n      \"name\": \"c_right_brace_str\"\n    },\n    {\n      \"name\": \"c_space_tl\"\n    },\n    {\n      \"name\": \"c_space_token\"\n    },\n    {\n      \"name\": \"c_str_cctab\"\n    },\n    {\n      \"name\": \"c_sys_backend_str\"\n    },\n    {\n      \"name\": \"c_sys_day_int\"\n    },\n    {\n      \"name\": \"c_sys_engine_exec_str\"\n    },\n    {\n      \"name\": \"c_sys_engine_format_str\"\n    },\n    {\n      \"name\": \"c_sys_engine_str\"\n    },\n    {\n      \"name\": \"c_sys_engine_version_str\"\n    },\n    {\n      \"name\": \"c_sys_hour_int\"\n    },\n    {\n      \"name\": \"c_sys_jobname_str\"\n    },\n    {\n      \"name\": \"c_sys_minute_int\"\n    },\n    {\n      \"name\": \"c_sys_month_int\"\n    },\n    {\n      \"name\": \"c_sys_output_str\"\n    },\n    {\n      \"name\": \"c_sys_platform_str\"\n    },\n    {\n      \"name\": \"c_sys_shell_escape_int\"\n    },\n    {\n      \"name\": \"c_sys_timestamp_str\"\n    },\n    {\n      \"name\": \"c_sys_year_int\"\n    },\n    {\n      \"name\": \"c_term_iow\"\n    },\n    {\n      \"name\": \"c_tilde_str\"\n    },\n    {\n      \"name\": \"c_true_bool\"\n    },\n    {\n      \"name\": \"c_underscore_str\"\n    },\n    {\n      \"name\": \"c_zero_dim\"\n    },\n    {\n      \"name\": \"c_zero_fp\"\n    },\n    {\n      \"name\": \"c_zero_int\"\n    },\n    {\n      \"name\": \"c_zero_muskip\"\n    },\n    {\n      \"name\": \"c_zero_skip\"\n    },\n    {\n      \"name\": \"c_zero_str\"\n    },\n    {\n      \"name\": \"cctab_begin:N\"\n    },\n    {\n      \"name\": \"cctab_begin:c\"\n    },\n    {\n      \"name\": \"cctab_const:Nn\"\n    },\n    {\n      \"name\": \"cctab_const:cn\"\n    },\n    {\n      \"name\": \"cctab_end:\"\n    },\n    {\n      \"name\": \"cctab_gsave_current:N\"\n    },\n    {\n      \"name\": \"cctab_gsave_current:c\"\n    },\n    {\n      \"name\": \"cctab_gset:Nn\"\n    },\n    {\n      \"name\": \"cctab_gset:cn\"\n    },\n    {\n      \"name\": \"cctab_if_exist:NF\"\n    },\n    {\n      \"name\": \"cctab_if_exist:NT\"\n    },\n    {\n      \"name\": \"cctab_if_exist:NTF\"\n    },\n    {\n      \"name\": \"cctab_if_exist:cF\"\n    },\n    {\n      \"name\": \"cctab_if_exist:cT\"\n    },\n    {\n      \"name\": \"cctab_if_exist:cTF\"\n    },\n    {\n      \"name\": \"cctab_if_exist_p:N\"\n    },\n    {\n      \"name\": \"cctab_if_exist_p:c\"\n    },\n    {\n      \"name\": \"cctab_item:Nn\"\n    },\n    {\n      \"name\": \"cctab_item:cn\"\n    },\n    {\n      \"name\": \"cctab_new:N\"\n    },\n    {\n      \"name\": \"cctab_new:c\"\n    },\n    {\n      \"name\": \"cctab_select:N\"\n    },\n    {\n      \"name\": \"cctab_select:c\"\n    },\n    {\n      \"name\": \"char_generate:nn\"\n    },\n    {\n      \"name\": \"char_gset_active_eq:NN\"\n    },\n    {\n      \"name\": \"char_gset_active_eq:Nc\"\n    },\n    {\n      \"name\": \"char_gset_active_eq:nN\"\n    },\n    {\n      \"name\": \"char_gset_active_eq:nc\"\n    },\n    {\n      \"name\": \"char_set_active_eq:NN\"\n    },\n    {\n      \"name\": \"char_set_active_eq:Nc\"\n    },\n    {\n      \"name\": \"char_set_active_eq:nN\"\n    },\n    {\n      \"name\": \"char_set_active_eq:nc\"\n    },\n    {\n      \"name\": \"char_set_catcode:nn\"\n    },\n    {\n      \"name\": \"char_set_catcode_active:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_active:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_alignment:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_alignment:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_comment:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_comment:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_end_line:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_end_line:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_escape:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_escape:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_group_begin:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_group_begin:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_group_end:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_group_end:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_ignore:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_ignore:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_invalid:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_invalid:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_letter:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_letter:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_subscript:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_subscript:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_superscript:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_superscript:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_toggle:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_math_toggle:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_other:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_other:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_parameter:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_parameter:n\"\n    },\n    {\n      \"name\": \"char_set_catcode_space:N\"\n    },\n    {\n      \"name\": \"char_set_catcode_space:n\"\n    },\n    {\n      \"name\": \"char_set_lccode:nn\"\n    },\n    {\n      \"name\": \"char_set_mathcode:nn\"\n    },\n    {\n      \"name\": \"char_set_sfcode:nn\"\n    },\n    {\n      \"name\": \"char_set_uccode:nn\"\n    },\n    {\n      \"name\": \"char_show_value_catcode:n\"\n    },\n    {\n      \"name\": \"char_show_value_lccode:n\"\n    },\n    {\n      \"name\": \"char_show_value_mathcode:n\"\n    },\n    {\n      \"name\": \"char_show_value_sfcode:n\"\n    },\n    {\n      \"name\": \"char_show_value_uccode:n\"\n    },\n    {\n      \"name\": \"char_value_catcode:n\"\n    },\n    {\n      \"name\": \"char_value_lccode:n\"\n    },\n    {\n      \"name\": \"char_value_mathcode:n\"\n    },\n    {\n      \"name\": \"char_value_sfcode:n\"\n    },\n    {\n      \"name\": \"char_value_uccode:n\"\n    },\n    {\n      \"name\": \"clist_clear:N\"\n    },\n    {\n      \"name\": \"clist_clear:c\"\n    },\n    {\n      \"name\": \"clist_clear_new:N\"\n    },\n    {\n      \"name\": \"clist_clear_new:c\"\n    },\n    {\n      \"name\": \"clist_concat:NNN\"\n    },\n    {\n      \"name\": \"clist_concat:ccc\"\n    },\n    {\n      \"name\": \"clist_const:Ne\"\n    },\n    {\n      \"name\": \"clist_const:Nn\"\n    },\n    {\n      \"name\": \"clist_const:ce\"\n    },\n    {\n      \"name\": \"clist_const:cn\"\n    },\n    {\n      \"name\": \"clist_count:N\"\n    },\n    {\n      \"name\": \"clist_count:c\"\n    },\n    {\n      \"name\": \"clist_count:e\"\n    },\n    {\n      \"name\": \"clist_count:n\"\n    },\n    {\n      \"name\": \"clist_gclear:N\"\n    },\n    {\n      \"name\": \"clist_gclear:c\"\n    },\n    {\n      \"name\": \"clist_gclear_new:N\"\n    },\n    {\n      \"name\": \"clist_gclear_new:c\"\n    },\n    {\n      \"name\": \"clist_gconcat:NNN\"\n    },\n    {\n      \"name\": \"clist_gconcat:ccc\"\n    },\n    {\n      \"name\": \"clist_get:NN\"\n    },\n    {\n      \"name\": \"clist_get:NNF\"\n    },\n    {\n      \"name\": \"clist_get:NNT\"\n    },\n    {\n      \"name\": \"clist_get:NNTF\"\n    },\n    {\n      \"name\": \"clist_get:cN\"\n    },\n    {\n      \"name\": \"clist_get:cNF\"\n    },\n    {\n      \"name\": \"clist_get:cNT\"\n    },\n    {\n      \"name\": \"clist_get:cNTF\"\n    },\n    {\n      \"name\": \"clist_gpop:NN\"\n    },\n    {\n      \"name\": \"clist_gpop:NNF\"\n    },\n    {\n      \"name\": \"clist_gpop:NNT\"\n    },\n    {\n      \"name\": \"clist_gpop:NNTF\"\n    },\n    {\n      \"name\": \"clist_gpop:cN\"\n    },\n    {\n      \"name\": \"clist_gpop:cNF\"\n    },\n    {\n      \"name\": \"clist_gpop:cNT\"\n    },\n    {\n      \"name\": \"clist_gpop:cNTF\"\n    },\n    {\n      \"name\": \"clist_gpush:NV\"\n    },\n    {\n      \"name\": \"clist_gpush:Nn\"\n    },\n    {\n      \"name\": \"clist_gpush:No\"\n    },\n    {\n      \"name\": \"clist_gpush:cV\"\n    },\n    {\n      \"name\": \"clist_gpush:cn\"\n    },\n    {\n      \"name\": \"clist_gpush:co\"\n    },\n    {\n      \"name\": \"clist_gput_left:NV\"\n    },\n    {\n      \"name\": \"clist_gput_left:Ne\"\n    },\n    {\n      \"name\": \"clist_gput_left:Nn\"\n    },\n    {\n      \"name\": \"clist_gput_left:No\"\n    },\n    {\n      \"name\": \"clist_gput_left:Nv\"\n    },\n    {\n      \"name\": \"clist_gput_left:cV\"\n    },\n    {\n      \"name\": \"clist_gput_left:ce\"\n    },\n    {\n      \"name\": \"clist_gput_left:cn\"\n    },\n    {\n      \"name\": \"clist_gput_left:co\"\n    },\n    {\n      \"name\": \"clist_gput_left:cv\"\n    },\n    {\n      \"name\": \"clist_gput_right:NV\"\n    },\n    {\n      \"name\": \"clist_gput_right:Ne\"\n    },\n    {\n      \"name\": \"clist_gput_right:Nn\"\n    },\n    {\n      \"name\": \"clist_gput_right:No\"\n    },\n    {\n      \"name\": \"clist_gput_right:Nv\"\n    },\n    {\n      \"name\": \"clist_gput_right:cV\"\n    },\n    {\n      \"name\": \"clist_gput_right:ce\"\n    },\n    {\n      \"name\": \"clist_gput_right:cn\"\n    },\n    {\n      \"name\": \"clist_gput_right:co\"\n    },\n    {\n      \"name\": \"clist_gput_right:cv\"\n    },\n    {\n      \"name\": \"clist_gremove_all:NV\"\n    },\n    {\n      \"name\": \"clist_gremove_all:Ne\"\n    },\n    {\n      \"name\": \"clist_gremove_all:Nn\"\n    },\n    {\n      \"name\": \"clist_gremove_all:cV\"\n    },\n    {\n      \"name\": \"clist_gremove_all:ce\"\n    },\n    {\n      \"name\": \"clist_gremove_all:cn\"\n    },\n    {\n      \"name\": \"clist_gremove_duplicates:N\"\n    },\n    {\n      \"name\": \"clist_gremove_duplicates:c\"\n    },\n    {\n      \"name\": \"clist_greverse:N\"\n    },\n    {\n      \"name\": \"clist_greverse:c\"\n    },\n    {\n      \"name\": \"clist_gset:NV\"\n    },\n    {\n      \"name\": \"clist_gset:Ne\"\n    },\n    {\n      \"name\": \"clist_gset:Nn\"\n    },\n    {\n      \"name\": \"clist_gset:No\"\n    },\n    {\n      \"name\": \"clist_gset:cV\"\n    },\n    {\n      \"name\": \"clist_gset:ce\"\n    },\n    {\n      \"name\": \"clist_gset:cn\"\n    },\n    {\n      \"name\": \"clist_gset:co\"\n    },\n    {\n      \"name\": \"clist_gset_eq:NN\"\n    },\n    {\n      \"name\": \"clist_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"clist_gset_eq:cN\"\n    },\n    {\n      \"name\": \"clist_gset_eq:cc\"\n    },\n    {\n      \"name\": \"clist_gset_from_seq:NN\"\n    },\n    {\n      \"name\": \"clist_gset_from_seq:Nc\"\n    },\n    {\n      \"name\": \"clist_gset_from_seq:cN\"\n    },\n    {\n      \"name\": \"clist_gset_from_seq:cc\"\n    },\n    {\n      \"name\": \"clist_gsort:Nn\"\n    },\n    {\n      \"name\": \"clist_gsort:cn\"\n    },\n    {\n      \"name\": \"clist_if_empty:NF\"\n    },\n    {\n      \"name\": \"clist_if_empty:NT\"\n    },\n    {\n      \"name\": \"clist_if_empty:NTF\"\n    },\n    {\n      \"name\": \"clist_if_empty:cF\"\n    },\n    {\n      \"name\": \"clist_if_empty:cT\"\n    },\n    {\n      \"name\": \"clist_if_empty:cTF\"\n    },\n    {\n      \"name\": \"clist_if_empty:nF\"\n    },\n    {\n      \"name\": \"clist_if_empty:nT\"\n    },\n    {\n      \"name\": \"clist_if_empty:nTF\"\n    },\n    {\n      \"name\": \"clist_if_empty_p:N\"\n    },\n    {\n      \"name\": \"clist_if_empty_p:c\"\n    },\n    {\n      \"name\": \"clist_if_empty_p:n\"\n    },\n    {\n      \"name\": \"clist_if_exist:NF\"\n    },\n    {\n      \"name\": \"clist_if_exist:NT\"\n    },\n    {\n      \"name\": \"clist_if_exist:NTF\"\n    },\n    {\n      \"name\": \"clist_if_exist:cF\"\n    },\n    {\n      \"name\": \"clist_if_exist:cT\"\n    },\n    {\n      \"name\": \"clist_if_exist:cTF\"\n    },\n    {\n      \"name\": \"clist_if_exist_p:N\"\n    },\n    {\n      \"name\": \"clist_if_exist_p:c\"\n    },\n    {\n      \"name\": \"clist_if_in:NVF\"\n    },\n    {\n      \"name\": \"clist_if_in:NVT\"\n    },\n    {\n      \"name\": \"clist_if_in:NVTF\"\n    },\n    {\n      \"name\": \"clist_if_in:NnF\"\n    },\n    {\n      \"name\": \"clist_if_in:NnT\"\n    },\n    {\n      \"name\": \"clist_if_in:NnTF\"\n    },\n    {\n      \"name\": \"clist_if_in:NoF\"\n    },\n    {\n      \"name\": \"clist_if_in:NoT\"\n    },\n    {\n      \"name\": \"clist_if_in:NoTF\"\n    },\n    {\n      \"name\": \"clist_if_in:cVF\"\n    },\n    {\n      \"name\": \"clist_if_in:cVT\"\n    },\n    {\n      \"name\": \"clist_if_in:cVTF\"\n    },\n    {\n      \"name\": \"clist_if_in:cnF\"\n    },\n    {\n      \"name\": \"clist_if_in:cnT\"\n    },\n    {\n      \"name\": \"clist_if_in:cnTF\"\n    },\n    {\n      \"name\": \"clist_if_in:coF\"\n    },\n    {\n      \"name\": \"clist_if_in:coT\"\n    },\n    {\n      \"name\": \"clist_if_in:coTF\"\n    },\n    {\n      \"name\": \"clist_if_in:nVF\"\n    },\n    {\n      \"name\": \"clist_if_in:nVT\"\n    },\n    {\n      \"name\": \"clist_if_in:nVTF\"\n    },\n    {\n      \"name\": \"clist_if_in:nnF\"\n    },\n    {\n      \"name\": \"clist_if_in:nnT\"\n    },\n    {\n      \"name\": \"clist_if_in:nnTF\"\n    },\n    {\n      \"name\": \"clist_if_in:noF\"\n    },\n    {\n      \"name\": \"clist_if_in:noT\"\n    },\n    {\n      \"name\": \"clist_if_in:noTF\"\n    },\n    {\n      \"name\": \"clist_item:Nn\"\n    },\n    {\n      \"name\": \"clist_item:cn\"\n    },\n    {\n      \"name\": \"clist_item:en\"\n    },\n    {\n      \"name\": \"clist_item:nn\"\n    },\n    {\n      \"name\": \"clist_log:N\"\n    },\n    {\n      \"name\": \"clist_log:c\"\n    },\n    {\n      \"name\": \"clist_log:n\"\n    },\n    {\n      \"name\": \"clist_map_break:\"\n    },\n    {\n      \"name\": \"clist_map_break:n\"\n    },\n    {\n      \"name\": \"clist_map_function:NN\"\n    },\n    {\n      \"name\": \"clist_map_function:cN\"\n    },\n    {\n      \"name\": \"clist_map_function:eN\"\n    },\n    {\n      \"name\": \"clist_map_function:nN\"\n    },\n    {\n      \"name\": \"clist_map_inline:Nn\"\n    },\n    {\n      \"name\": \"clist_map_inline:cn\"\n    },\n    {\n      \"name\": \"clist_map_inline:nn\"\n    },\n    {\n      \"name\": \"clist_map_tokens:Nn\"\n    },\n    {\n      \"name\": \"clist_map_tokens:cn\"\n    },\n    {\n      \"name\": \"clist_map_tokens:nn\"\n    },\n    {\n      \"name\": \"clist_map_variable:NNn\"\n    },\n    {\n      \"name\": \"clist_map_variable:cNn\"\n    },\n    {\n      \"name\": \"clist_map_variable:nNn\"\n    },\n    {\n      \"name\": \"clist_new:N\"\n    },\n    {\n      \"name\": \"clist_new:c\"\n    },\n    {\n      \"name\": \"clist_pop:NN\"\n    },\n    {\n      \"name\": \"clist_pop:NNF\"\n    },\n    {\n      \"name\": \"clist_pop:NNT\"\n    },\n    {\n      \"name\": \"clist_pop:NNTF\"\n    },\n    {\n      \"name\": \"clist_pop:cN\"\n    },\n    {\n      \"name\": \"clist_pop:cNF\"\n    },\n    {\n      \"name\": \"clist_pop:cNT\"\n    },\n    {\n      \"name\": \"clist_pop:cNTF\"\n    },\n    {\n      \"name\": \"clist_push:NV\"\n    },\n    {\n      \"name\": \"clist_push:Nn\"\n    },\n    {\n      \"name\": \"clist_push:No\"\n    },\n    {\n      \"name\": \"clist_push:cV\"\n    },\n    {\n      \"name\": \"clist_push:cn\"\n    },\n    {\n      \"name\": \"clist_push:co\"\n    },\n    {\n      \"name\": \"clist_put_left:NV\"\n    },\n    {\n      \"name\": \"clist_put_left:Ne\"\n    },\n    {\n      \"name\": \"clist_put_left:Nn\"\n    },\n    {\n      \"name\": \"clist_put_left:No\"\n    },\n    {\n      \"name\": \"clist_put_left:Nv\"\n    },\n    {\n      \"name\": \"clist_put_left:cV\"\n    },\n    {\n      \"name\": \"clist_put_left:ce\"\n    },\n    {\n      \"name\": \"clist_put_left:cn\"\n    },\n    {\n      \"name\": \"clist_put_left:co\"\n    },\n    {\n      \"name\": \"clist_put_left:cv\"\n    },\n    {\n      \"name\": \"clist_put_right:NV\"\n    },\n    {\n      \"name\": \"clist_put_right:Ne\"\n    },\n    {\n      \"name\": \"clist_put_right:Nn\"\n    },\n    {\n      \"name\": \"clist_put_right:No\"\n    },\n    {\n      \"name\": \"clist_put_right:Nv\"\n    },\n    {\n      \"name\": \"clist_put_right:cV\"\n    },\n    {\n      \"name\": \"clist_put_right:ce\"\n    },\n    {\n      \"name\": \"clist_put_right:cn\"\n    },\n    {\n      \"name\": \"clist_put_right:co\"\n    },\n    {\n      \"name\": \"clist_put_right:cv\"\n    },\n    {\n      \"name\": \"clist_rand_item:N\"\n    },\n    {\n      \"name\": \"clist_rand_item:c\"\n    },\n    {\n      \"name\": \"clist_rand_item:n\"\n    },\n    {\n      \"name\": \"clist_remove_all:NV\"\n    },\n    {\n      \"name\": \"clist_remove_all:Ne\"\n    },\n    {\n      \"name\": \"clist_remove_all:Nn\"\n    },\n    {\n      \"name\": \"clist_remove_all:cV\"\n    },\n    {\n      \"name\": \"clist_remove_all:ce\"\n    },\n    {\n      \"name\": \"clist_remove_all:cn\"\n    },\n    {\n      \"name\": \"clist_remove_duplicates:N\"\n    },\n    {\n      \"name\": \"clist_remove_duplicates:c\"\n    },\n    {\n      \"name\": \"clist_reverse:N\"\n    },\n    {\n      \"name\": \"clist_reverse:c\"\n    },\n    {\n      \"name\": \"clist_reverse:n\"\n    },\n    {\n      \"name\": \"clist_set:NV\"\n    },\n    {\n      \"name\": \"clist_set:Ne\"\n    },\n    {\n      \"name\": \"clist_set:Nn\"\n    },\n    {\n      \"name\": \"clist_set:No\"\n    },\n    {\n      \"name\": \"clist_set:cV\"\n    },\n    {\n      \"name\": \"clist_set:ce\"\n    },\n    {\n      \"name\": \"clist_set:cn\"\n    },\n    {\n      \"name\": \"clist_set:co\"\n    },\n    {\n      \"name\": \"clist_set_eq:NN\"\n    },\n    {\n      \"name\": \"clist_set_eq:Nc\"\n    },\n    {\n      \"name\": \"clist_set_eq:cN\"\n    },\n    {\n      \"name\": \"clist_set_eq:cc\"\n    },\n    {\n      \"name\": \"clist_set_from_seq:NN\"\n    },\n    {\n      \"name\": \"clist_set_from_seq:Nc\"\n    },\n    {\n      \"name\": \"clist_set_from_seq:cN\"\n    },\n    {\n      \"name\": \"clist_set_from_seq:cc\"\n    },\n    {\n      \"name\": \"clist_show:N\"\n    },\n    {\n      \"name\": \"clist_show:c\"\n    },\n    {\n      \"name\": \"clist_show:n\"\n    },\n    {\n      \"name\": \"clist_sort:Nn\"\n    },\n    {\n      \"name\": \"clist_sort:cn\"\n    },\n    {\n      \"name\": \"clist_use:Nn\"\n    },\n    {\n      \"name\": \"clist_use:Nnnn\"\n    },\n    {\n      \"name\": \"clist_use:cn\"\n    },\n    {\n      \"name\": \"clist_use:cnnn\"\n    },\n    {\n      \"name\": \"clist_use:nn\"\n    },\n    {\n      \"name\": \"clist_use:nnnn\"\n    },\n    {\n      \"name\": \"codepoint_generate:nn\"\n    },\n    {\n      \"name\": \"codepoint_str_generate:n\"\n    },\n    {\n      \"name\": \"codepoint_to_category:n\"\n    },\n    {\n      \"name\": \"codepoint_to_nfd:n\"\n    },\n    {\n      \"name\": \"coffin_attach:NnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_attach:Nnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_attach:cnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_attach:cnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_clear:N\"\n    },\n    {\n      \"name\": \"coffin_clear:c\"\n    },\n    {\n      \"name\": \"coffin_display_handles:Nn\"\n    },\n    {\n      \"name\": \"coffin_display_handles:cn\"\n    },\n    {\n      \"name\": \"coffin_dp:N\"\n    },\n    {\n      \"name\": \"coffin_dp:c\"\n    },\n    {\n      \"name\": \"coffin_gattach:NnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_gattach:Nnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_gattach:cnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_gattach:cnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_gclear:N\"\n    },\n    {\n      \"name\": \"coffin_gclear:c\"\n    },\n    {\n      \"name\": \"coffin_gjoin:NnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_gjoin:Nnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_gjoin:cnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_gjoin:cnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_greset_poles:N\"\n    },\n    {\n      \"name\": \"coffin_gresize:Nnn\"\n    },\n    {\n      \"name\": \"coffin_gresize:cnn\"\n    },\n    {\n      \"name\": \"coffin_grotate:Nn\"\n    },\n    {\n      \"name\": \"coffin_grotate:cn\"\n    },\n    {\n      \"name\": \"coffin_gscale:Nnn\"\n    },\n    {\n      \"name\": \"coffin_gscale:cnn\"\n    },\n    {\n      \"name\": \"coffin_gset_eq:NN\"\n    },\n    {\n      \"name\": \"coffin_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"coffin_gset_eq:cN\"\n    },\n    {\n      \"name\": \"coffin_gset_eq:cc\"\n    },\n    {\n      \"name\": \"coffin_gset_horizontal_pole:Nnn\"\n    },\n    {\n      \"name\": \"coffin_gset_horizontal_pole:cnn\"\n    },\n    {\n      \"name\": \"coffin_gset_vertical_pole:Nnn\"\n    },\n    {\n      \"name\": \"coffin_gset_vertical_pole:cnn\"\n    },\n    {\n      \"name\": \"coffin_ht:N\"\n    },\n    {\n      \"name\": \"coffin_ht:c\"\n    },\n    {\n      \"name\": \"coffin_ht_plus_dp:N\"\n    },\n    {\n      \"name\": \"coffin_ht_plus_dp:c\"\n    },\n    {\n      \"name\": \"coffin_if_exist:NF\"\n    },\n    {\n      \"name\": \"coffin_if_exist:NT\"\n    },\n    {\n      \"name\": \"coffin_if_exist:NTF\"\n    },\n    {\n      \"name\": \"coffin_if_exist:cF\"\n    },\n    {\n      \"name\": \"coffin_if_exist:cT\"\n    },\n    {\n      \"name\": \"coffin_if_exist:cTF\"\n    },\n    {\n      \"name\": \"coffin_if_exist_p:N\"\n    },\n    {\n      \"name\": \"coffin_if_exist_p:c\"\n    },\n    {\n      \"name\": \"coffin_join:NnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_join:Nnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_join:cnnNnnnn\"\n    },\n    {\n      \"name\": \"coffin_join:cnncnnnn\"\n    },\n    {\n      \"name\": \"coffin_log:N\"\n    },\n    {\n      \"name\": \"coffin_log:Nnn\"\n    },\n    {\n      \"name\": \"coffin_log:c\"\n    },\n    {\n      \"name\": \"coffin_log:cnn\"\n    },\n    {\n      \"name\": \"coffin_log_structure:N\"\n    },\n    {\n      \"name\": \"coffin_log_structure:c\"\n    },\n    {\n      \"name\": \"coffin_mark_handle:Nnnn\"\n    },\n    {\n      \"name\": \"coffin_mark_handle:cnnn\"\n    },\n    {\n      \"name\": \"coffin_new:N\"\n    },\n    {\n      \"name\": \"coffin_new:c\"\n    },\n    {\n      \"name\": \"coffin_reset_poles:N\"\n    },\n    {\n      \"name\": \"coffin_resize:Nnn\"\n    },\n    {\n      \"name\": \"coffin_resize:cnn\"\n    },\n    {\n      \"name\": \"coffin_rotate:Nn\"\n    },\n    {\n      \"name\": \"coffin_rotate:cn\"\n    },\n    {\n      \"name\": \"coffin_scale:Nnn\"\n    },\n    {\n      \"name\": \"coffin_scale:cnn\"\n    },\n    {\n      \"name\": \"coffin_set_eq:NN\"\n    },\n    {\n      \"name\": \"coffin_set_eq:Nc\"\n    },\n    {\n      \"name\": \"coffin_set_eq:cN\"\n    },\n    {\n      \"name\": \"coffin_set_eq:cc\"\n    },\n    {\n      \"name\": \"coffin_set_horizontal_pole:Nnn\"\n    },\n    {\n      \"name\": \"coffin_set_horizontal_pole:cnn\"\n    },\n    {\n      \"name\": \"coffin_set_vertical_pole:Nnn\"\n    },\n    {\n      \"name\": \"coffin_set_vertical_pole:cnn\"\n    },\n    {\n      \"name\": \"coffin_show:N\"\n    },\n    {\n      \"name\": \"coffin_show:Nnn\"\n    },\n    {\n      \"name\": \"coffin_show:c\"\n    },\n    {\n      \"name\": \"coffin_show:cnn\"\n    },\n    {\n      \"name\": \"coffin_show_structure:N\"\n    },\n    {\n      \"name\": \"coffin_show_structure:c\"\n    },\n    {\n      \"name\": \"coffin_typeset:Nnnnn\"\n    },\n    {\n      \"name\": \"coffin_typeset:cnnnn\"\n    },\n    {\n      \"name\": \"coffin_wd:N\"\n    },\n    {\n      \"name\": \"coffin_wd:c\"\n    },\n    {\n      \"name\": \"color_ensure_current:\"\n    },\n    {\n      \"name\": \"color_export:nnN\"\n    },\n    {\n      \"name\": \"color_export:nnnN\"\n    },\n    {\n      \"name\": \"color_fill:n\"\n    },\n    {\n      \"name\": \"color_fill:nn\"\n    },\n    {\n      \"name\": \"color_group_begin:\"\n    },\n    {\n      \"name\": \"color_group_end:\"\n    },\n    {\n      \"name\": \"color_if_exist:nF\"\n    },\n    {\n      \"name\": \"color_if_exist:nT\"\n    },\n    {\n      \"name\": \"color_if_exist:nTF\"\n    },\n    {\n      \"name\": \"color_if_exist_p:n\"\n    },\n    {\n      \"name\": \"color_log:n\"\n    },\n    {\n      \"name\": \"color_math:nn\"\n    },\n    {\n      \"name\": \"color_math:nnn\"\n    },\n    {\n      \"name\": \"color_model_new:nnn\"\n    },\n    {\n      \"name\": \"color_profile_apply:nn\"\n    },\n    {\n      \"name\": \"color_select:n\"\n    },\n    {\n      \"name\": \"color_select:nn\"\n    },\n    {\n      \"name\": \"color_set:nn\"\n    },\n    {\n      \"name\": \"color_set:nnn\"\n    },\n    {\n      \"name\": \"color_set_eq:nn\"\n    },\n    {\n      \"name\": \"color_show:n\"\n    },\n    {\n      \"name\": \"color_stroke:n\"\n    },\n    {\n      \"name\": \"color_stroke:nn\"\n    },\n    {\n      \"name\": \"cs:w\"\n    },\n    {\n      \"name\": \"cs_end:\"\n    },\n    {\n      \"name\": \"cs_generate_from_arg_count:NNnn\"\n    },\n    {\n      \"name\": \"cs_generate_from_arg_count:NNno\"\n    },\n    {\n      \"name\": \"cs_generate_from_arg_count:Ncnn\"\n    },\n    {\n      \"name\": \"cs_generate_from_arg_count:cNnn\"\n    },\n    {\n      \"name\": \"cs_generate_variant:Nn\"\n    },\n    {\n      \"name\": \"cs_generate_variant:cn\"\n    },\n    {\n      \"name\": \"cs_gset:Ne\"\n    },\n    {\n      \"name\": \"cs_gset:Nn\"\n    },\n    {\n      \"name\": \"cs_gset:Npe\"\n    },\n    {\n      \"name\": \"cs_gset:Npn\"\n    },\n    {\n      \"name\": \"cs_gset:Npx\"\n    },\n    {\n      \"name\": \"cs_gset:ce\"\n    },\n    {\n      \"name\": \"cs_gset:cn\"\n    },\n    {\n      \"name\": \"cs_gset:cpe\"\n    },\n    {\n      \"name\": \"cs_gset:cpn\"\n    },\n    {\n      \"name\": \"cs_gset:cpx\"\n    },\n    {\n      \"name\": \"cs_gset_eq:NN\"\n    },\n    {\n      \"name\": \"cs_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"cs_gset_eq:cN\"\n    },\n    {\n      \"name\": \"cs_gset_eq:cc\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_gset_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_gset_protected:Ne\"\n    },\n    {\n      \"name\": \"cs_gset_protected:Nn\"\n    },\n    {\n      \"name\": \"cs_gset_protected:Npe\"\n    },\n    {\n      \"name\": \"cs_gset_protected:Npn\"\n    },\n    {\n      \"name\": \"cs_gset_protected:Npx\"\n    },\n    {\n      \"name\": \"cs_gset_protected:ce\"\n    },\n    {\n      \"name\": \"cs_gset_protected:cn\"\n    },\n    {\n      \"name\": \"cs_gset_protected:cpe\"\n    },\n    {\n      \"name\": \"cs_gset_protected:cpn\"\n    },\n    {\n      \"name\": \"cs_gset_protected:cpx\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_gset_protected_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_if_eq:NNF\"\n    },\n    {\n      \"name\": \"cs_if_eq:NNT\"\n    },\n    {\n      \"name\": \"cs_if_eq:NNTF\"\n    },\n    {\n      \"name\": \"cs_if_eq:NcF\"\n    },\n    {\n      \"name\": \"cs_if_eq:NcT\"\n    },\n    {\n      \"name\": \"cs_if_eq:NcTF\"\n    },\n    {\n      \"name\": \"cs_if_eq:cNF\"\n    },\n    {\n      \"name\": \"cs_if_eq:cNT\"\n    },\n    {\n      \"name\": \"cs_if_eq:cNTF\"\n    },\n    {\n      \"name\": \"cs_if_eq:ccF\"\n    },\n    {\n      \"name\": \"cs_if_eq:ccT\"\n    },\n    {\n      \"name\": \"cs_if_eq:ccTF\"\n    },\n    {\n      \"name\": \"cs_if_eq_p:NN\"\n    },\n    {\n      \"name\": \"cs_if_eq_p:Nc\"\n    },\n    {\n      \"name\": \"cs_if_eq_p:cN\"\n    },\n    {\n      \"name\": \"cs_if_eq_p:cc\"\n    },\n    {\n      \"name\": \"cs_if_exist:NF\"\n    },\n    {\n      \"name\": \"cs_if_exist:NT\"\n    },\n    {\n      \"name\": \"cs_if_exist:NTF\"\n    },\n    {\n      \"name\": \"cs_if_exist:cF\"\n    },\n    {\n      \"name\": \"cs_if_exist:cT\"\n    },\n    {\n      \"name\": \"cs_if_exist:cTF\"\n    },\n    {\n      \"name\": \"cs_if_exist_p:N\"\n    },\n    {\n      \"name\": \"cs_if_exist_p:c\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:N\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:NF\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:NT\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:NTF\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:c\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:cF\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:cT\"\n    },\n    {\n      \"name\": \"cs_if_exist_use:cTF\"\n    },\n    {\n      \"name\": \"cs_if_free:NF\"\n    },\n    {\n      \"name\": \"cs_if_free:NT\"\n    },\n    {\n      \"name\": \"cs_if_free:NTF\"\n    },\n    {\n      \"name\": \"cs_if_free:cF\"\n    },\n    {\n      \"name\": \"cs_if_free:cT\"\n    },\n    {\n      \"name\": \"cs_if_free:cTF\"\n    },\n    {\n      \"name\": \"cs_if_free_p:N\"\n    },\n    {\n      \"name\": \"cs_if_free_p:c\"\n    },\n    {\n      \"name\": \"cs_log:N\"\n    },\n    {\n      \"name\": \"cs_log:c\"\n    },\n    {\n      \"name\": \"cs_meaning:N\"\n    },\n    {\n      \"name\": \"cs_meaning:c\"\n    },\n    {\n      \"name\": \"cs_new:Ne\"\n    },\n    {\n      \"name\": \"cs_new:Nn\"\n    },\n    {\n      \"name\": \"cs_new:Npe\"\n    },\n    {\n      \"name\": \"cs_new:Npn\"\n    },\n    {\n      \"name\": \"cs_new:Npx\"\n    },\n    {\n      \"name\": \"cs_new:ce\"\n    },\n    {\n      \"name\": \"cs_new:cn\"\n    },\n    {\n      \"name\": \"cs_new:cpe\"\n    },\n    {\n      \"name\": \"cs_new:cpn\"\n    },\n    {\n      \"name\": \"cs_new:cpx\"\n    },\n    {\n      \"name\": \"cs_new_eq:NN\"\n    },\n    {\n      \"name\": \"cs_new_eq:Nc\"\n    },\n    {\n      \"name\": \"cs_new_eq:cN\"\n    },\n    {\n      \"name\": \"cs_new_eq:cc\"\n    },\n    {\n      \"name\": \"cs_new_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_new_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_new_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_new_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_new_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_new_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_new_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_new_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_new_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_new_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_new_protected:Ne\"\n    },\n    {\n      \"name\": \"cs_new_protected:Nn\"\n    },\n    {\n      \"name\": \"cs_new_protected:Npe\"\n    },\n    {\n      \"name\": \"cs_new_protected:Npn\"\n    },\n    {\n      \"name\": \"cs_new_protected:Npx\"\n    },\n    {\n      \"name\": \"cs_new_protected:ce\"\n    },\n    {\n      \"name\": \"cs_new_protected:cn\"\n    },\n    {\n      \"name\": \"cs_new_protected:cpe\"\n    },\n    {\n      \"name\": \"cs_new_protected:cpn\"\n    },\n    {\n      \"name\": \"cs_new_protected:cpx\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_new_protected_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_parameter_spec:N\"\n    },\n    {\n      \"name\": \"cs_prefix_spec:N\"\n    },\n    {\n      \"name\": \"cs_replacement_spec:N\"\n    },\n    {\n      \"name\": \"cs_replacement_spec:c\"\n    },\n    {\n      \"name\": \"cs_set:Ne\"\n    },\n    {\n      \"name\": \"cs_set:Nn\"\n    },\n    {\n      \"name\": \"cs_set:Npe\"\n    },\n    {\n      \"name\": \"cs_set:Npn\"\n    },\n    {\n      \"name\": \"cs_set:Npx\"\n    },\n    {\n      \"name\": \"cs_set:ce\"\n    },\n    {\n      \"name\": \"cs_set:cn\"\n    },\n    {\n      \"name\": \"cs_set:cpe\"\n    },\n    {\n      \"name\": \"cs_set:cpn\"\n    },\n    {\n      \"name\": \"cs_set:cpx\"\n    },\n    {\n      \"name\": \"cs_set_eq:NN\"\n    },\n    {\n      \"name\": \"cs_set_eq:Nc\"\n    },\n    {\n      \"name\": \"cs_set_eq:cN\"\n    },\n    {\n      \"name\": \"cs_set_eq:cc\"\n    },\n    {\n      \"name\": \"cs_set_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_set_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_set_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_set_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_set_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_set_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_set_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_set_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_set_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_set_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_set_protected:Ne\"\n    },\n    {\n      \"name\": \"cs_set_protected:Nn\"\n    },\n    {\n      \"name\": \"cs_set_protected:Npe\"\n    },\n    {\n      \"name\": \"cs_set_protected:Npn\"\n    },\n    {\n      \"name\": \"cs_set_protected:Npx\"\n    },\n    {\n      \"name\": \"cs_set_protected:ce\"\n    },\n    {\n      \"name\": \"cs_set_protected:cn\"\n    },\n    {\n      \"name\": \"cs_set_protected:cpe\"\n    },\n    {\n      \"name\": \"cs_set_protected:cpn\"\n    },\n    {\n      \"name\": \"cs_set_protected:cpx\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:Ne\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:Nn\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:Npe\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:Npn\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:Npx\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:ce\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:cn\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:cpe\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:cpn\"\n    },\n    {\n      \"name\": \"cs_set_protected_nopar:cpx\"\n    },\n    {\n      \"name\": \"cs_show:N\"\n    },\n    {\n      \"name\": \"cs_show:c\"\n    },\n    {\n      \"name\": \"cs_split_function:N\"\n    },\n    {\n      \"name\": \"cs_to_str:N\"\n    },\n    {\n      \"name\": \"cs_undefine:N\"\n    },\n    {\n      \"name\": \"cs_undefine:c\"\n    },\n    {\n      \"name\": \"debug_off:n\"\n    },\n    {\n      \"name\": \"debug_on:n\"\n    },\n    {\n      \"name\": \"debug_resume:\"\n    },\n    {\n      \"name\": \"debug_suspend:\"\n    },\n    {\n      \"name\": \"dim_abs:n\"\n    },\n    {\n      \"name\": \"dim_add:Nn\"\n    },\n    {\n      \"name\": \"dim_add:cn\"\n    },\n    {\n      \"name\": \"dim_case:nn\"\n    },\n    {\n      \"name\": \"dim_case:nnF\"\n    },\n    {\n      \"name\": \"dim_case:nnT\"\n    },\n    {\n      \"name\": \"dim_case:nnTF\"\n    },\n    {\n      \"name\": \"dim_compare:nF\"\n    },\n    {\n      \"name\": \"dim_compare:nNnF\"\n    },\n    {\n      \"name\": \"dim_compare:nNnT\"\n    },\n    {\n      \"name\": \"dim_compare:nNnTF\"\n    },\n    {\n      \"name\": \"dim_compare:nT\"\n    },\n    {\n      \"name\": \"dim_compare:nTF\"\n    },\n    {\n      \"name\": \"dim_compare_p:n\"\n    },\n    {\n      \"name\": \"dim_compare_p:nNn\"\n    },\n    {\n      \"name\": \"dim_const:Nn\"\n    },\n    {\n      \"name\": \"dim_const:cn\"\n    },\n    {\n      \"name\": \"dim_do_until:nNnn\"\n    },\n    {\n      \"name\": \"dim_do_until:nn\"\n    },\n    {\n      \"name\": \"dim_do_while:nNnn\"\n    },\n    {\n      \"name\": \"dim_do_while:nn\"\n    },\n    {\n      \"name\": \"dim_eval:n\"\n    },\n    {\n      \"name\": \"dim_gadd:Nn\"\n    },\n    {\n      \"name\": \"dim_gadd:cn\"\n    },\n    {\n      \"name\": \"dim_gset:NV\"\n    },\n    {\n      \"name\": \"dim_gset:Nn\"\n    },\n    {\n      \"name\": \"dim_gset:cV\"\n    },\n    {\n      \"name\": \"dim_gset:cn\"\n    },\n    {\n      \"name\": \"dim_gset_eq:NN\"\n    },\n    {\n      \"name\": \"dim_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"dim_gset_eq:cN\"\n    },\n    {\n      \"name\": \"dim_gset_eq:cc\"\n    },\n    {\n      \"name\": \"dim_gsub:Nn\"\n    },\n    {\n      \"name\": \"dim_gsub:cn\"\n    },\n    {\n      \"name\": \"dim_gzero:N\"\n    },\n    {\n      \"name\": \"dim_gzero:c\"\n    },\n    {\n      \"name\": \"dim_gzero_new:N\"\n    },\n    {\n      \"name\": \"dim_gzero_new:c\"\n    },\n    {\n      \"name\": \"dim_if_exist:NF\"\n    },\n    {\n      \"name\": \"dim_if_exist:NT\"\n    },\n    {\n      \"name\": \"dim_if_exist:NTF\"\n    },\n    {\n      \"name\": \"dim_if_exist:cF\"\n    },\n    {\n      \"name\": \"dim_if_exist:cT\"\n    },\n    {\n      \"name\": \"dim_if_exist:cTF\"\n    },\n    {\n      \"name\": \"dim_if_exist_p:N\"\n    },\n    {\n      \"name\": \"dim_if_exist_p:c\"\n    },\n    {\n      \"name\": \"dim_log:N\"\n    },\n    {\n      \"name\": \"dim_log:c\"\n    },\n    {\n      \"name\": \"dim_log:n\"\n    },\n    {\n      \"name\": \"dim_max:nn\"\n    },\n    {\n      \"name\": \"dim_min:nn\"\n    },\n    {\n      \"name\": \"dim_new:N\"\n    },\n    {\n      \"name\": \"dim_new:c\"\n    },\n    {\n      \"name\": \"dim_ratio:nn\"\n    },\n    {\n      \"name\": \"dim_set:NV\"\n    },\n    {\n      \"name\": \"dim_set:Nn\"\n    },\n    {\n      \"name\": \"dim_set:cV\"\n    },\n    {\n      \"name\": \"dim_set:cn\"\n    },\n    {\n      \"name\": \"dim_set_eq:NN\"\n    },\n    {\n      \"name\": \"dim_set_eq:Nc\"\n    },\n    {\n      \"name\": \"dim_set_eq:cN\"\n    },\n    {\n      \"name\": \"dim_set_eq:cc\"\n    },\n    {\n      \"name\": \"dim_show:N\"\n    },\n    {\n      \"name\": \"dim_show:c\"\n    },\n    {\n      \"name\": \"dim_show:n\"\n    },\n    {\n      \"name\": \"dim_sign:n\"\n    },\n    {\n      \"name\": \"dim_step_function:nnnN\"\n    },\n    {\n      \"name\": \"dim_step_inline:nnnn\"\n    },\n    {\n      \"name\": \"dim_step_variable:nnnNn\"\n    },\n    {\n      \"name\": \"dim_sub:Nn\"\n    },\n    {\n      \"name\": \"dim_sub:cn\"\n    },\n    {\n      \"name\": \"dim_to_decimal:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_bp:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_cc:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_cm:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_dd:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_in:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_mm:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_pc:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_sp:n\"\n    },\n    {\n      \"name\": \"dim_to_decimal_in_unit:nn\"\n    },\n    {\n      \"name\": \"dim_to_fp:n\"\n    },\n    {\n      \"name\": \"dim_until_do:nNnn\"\n    },\n    {\n      \"name\": \"dim_until_do:nn\"\n    },\n    {\n      \"name\": \"dim_use:N\"\n    },\n    {\n      \"name\": \"dim_use:c\"\n    },\n    {\n      \"name\": \"dim_while_do:nNnn\"\n    },\n    {\n      \"name\": \"dim_while_do:nn\"\n    },\n    {\n      \"name\": \"dim_zero:N\"\n    },\n    {\n      \"name\": \"dim_zero:c\"\n    },\n    {\n      \"name\": \"dim_zero_new:N\"\n    },\n    {\n      \"name\": \"dim_zero_new:c\"\n    },\n    {\n      \"name\": \"else:\"\n    },\n    {\n      \"name\": \"exp:w\"\n    },\n    {\n      \"name\": \"exp_after:wN\"\n    },\n    {\n      \"name\": \"exp_args:NNNV\"\n    },\n    {\n      \"name\": \"exp_args:NNNe\"\n    },\n    {\n      \"name\": \"exp_args:NNNo\"\n    },\n    {\n      \"name\": \"exp_args:NNNv\"\n    },\n    {\n      \"name\": \"exp_args:NNNx\"\n    },\n    {\n      \"name\": \"exp_args:NNV\"\n    },\n    {\n      \"name\": \"exp_args:NNVV\"\n    },\n    {\n      \"name\": \"exp_args:NNc\"\n    },\n    {\n      \"name\": \"exp_args:NNcf\"\n    },\n    {\n      \"name\": \"exp_args:NNe\"\n    },\n    {\n      \"name\": \"exp_args:NNf\"\n    },\n    {\n      \"name\": \"exp_args:NNnV\"\n    },\n    {\n      \"name\": \"exp_args:NNno\"\n    },\n    {\n      \"name\": \"exp_args:NNnx\"\n    },\n    {\n      \"name\": \"exp_args:NNo\"\n    },\n    {\n      \"name\": \"exp_args:NNoo\"\n    },\n    {\n      \"name\": \"exp_args:NNox\"\n    },\n    {\n      \"name\": \"exp_args:NNv\"\n    },\n    {\n      \"name\": \"exp_args:NNx\"\n    },\n    {\n      \"name\": \"exp_args:NV\"\n    },\n    {\n      \"name\": \"exp_args:NVV\"\n    },\n    {\n      \"name\": \"exp_args:NVo\"\n    },\n    {\n      \"name\": \"exp_args:Nc\"\n    },\n    {\n      \"name\": \"exp_args:NcNc\"\n    },\n    {\n      \"name\": \"exp_args:NcNo\"\n    },\n    {\n      \"name\": \"exp_args:NcV\"\n    },\n    {\n      \"name\": \"exp_args:NcVV\"\n    },\n    {\n      \"name\": \"exp_args:Ncc\"\n    },\n    {\n      \"name\": \"exp_args:Nccc\"\n    },\n    {\n      \"name\": \"exp_args:Ncco\"\n    },\n    {\n      \"name\": \"exp_args:Nccx\"\n    },\n    {\n      \"name\": \"exp_args:Ncf\"\n    },\n    {\n      \"name\": \"exp_args:NcnV\"\n    },\n    {\n      \"name\": \"exp_args:Ncno\"\n    },\n    {\n      \"name\": \"exp_args:Ncnx\"\n    },\n    {\n      \"name\": \"exp_args:Nco\"\n    },\n    {\n      \"name\": \"exp_args:Ncoo\"\n    },\n    {\n      \"name\": \"exp_args:Ncv\"\n    },\n    {\n      \"name\": \"exp_args:Ncx\"\n    },\n    {\n      \"name\": \"exp_args:Ne\"\n    },\n    {\n      \"name\": \"exp_args:Nee\"\n    },\n    {\n      \"name\": \"exp_args:Neee\"\n    },\n    {\n      \"name\": \"exp_args:Nf\"\n    },\n    {\n      \"name\": \"exp_args:Nff\"\n    },\n    {\n      \"name\": \"exp_args:Nffo\"\n    },\n    {\n      \"name\": \"exp_args:Nfo\"\n    },\n    {\n      \"name\": \"exp_args:NnV\"\n    },\n    {\n      \"name\": \"exp_args:Nnc\"\n    },\n    {\n      \"name\": \"exp_args:Nne\"\n    },\n    {\n      \"name\": \"exp_args:Nnf\"\n    },\n    {\n      \"name\": \"exp_args:Nnff\"\n    },\n    {\n      \"name\": \"exp_args:Nnnc\"\n    },\n    {\n      \"name\": \"exp_args:Nnnf\"\n    },\n    {\n      \"name\": \"exp_args:Nnno\"\n    },\n    {\n      \"name\": \"exp_args:Nnnx\"\n    },\n    {\n      \"name\": \"exp_args:Nno\"\n    },\n    {\n      \"name\": \"exp_args:Nnox\"\n    },\n    {\n      \"name\": \"exp_args:Nnv\"\n    },\n    {\n      \"name\": \"exp_args:Nnx\"\n    },\n    {\n      \"name\": \"exp_args:No\"\n    },\n    {\n      \"name\": \"exp_args:Noc\"\n    },\n    {\n      \"name\": \"exp_args:Nof\"\n    },\n    {\n      \"name\": \"exp_args:Noo\"\n    },\n    {\n      \"name\": \"exp_args:Noof\"\n    },\n    {\n      \"name\": \"exp_args:Nooo\"\n    },\n    {\n      \"name\": \"exp_args:Noox\"\n    },\n    {\n      \"name\": \"exp_args:Nox\"\n    },\n    {\n      \"name\": \"exp_args:Nv\"\n    },\n    {\n      \"name\": \"exp_args:Nx\"\n    },\n    {\n      \"name\": \"exp_args:Nxo\"\n    },\n    {\n      \"name\": \"exp_args:Nxx\"\n    },\n    {\n      \"name\": \"exp_args:cc\"\n    },\n    {\n      \"name\": \"exp_args_generate:n\"\n    },\n    {\n      \"name\": \"exp_end:\"\n    },\n    {\n      \"name\": \"exp_end_continue_f:nw\"\n    },\n    {\n      \"name\": \"exp_end_continue_f:w\"\n    },\n    {\n      \"name\": \"exp_last_two_unbraced:Noo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNNNf\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNNNo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNNV\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNNf\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNNo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNV\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNf\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NNo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NV\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NcV\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nco\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Ne\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nf\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nfo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:NnNo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nnf\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nno\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:No\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Noo\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nv\"\n    },\n    {\n      \"name\": \"exp_last_unbraced:Nx\"\n    },\n    {\n      \"name\": \"exp_not:N\"\n    },\n    {\n      \"name\": \"exp_not:V\"\n    },\n    {\n      \"name\": \"exp_not:c\"\n    },\n    {\n      \"name\": \"exp_not:e\"\n    },\n    {\n      \"name\": \"exp_not:f\"\n    },\n    {\n      \"name\": \"exp_not:n\"\n    },\n    {\n      \"name\": \"exp_not:o\"\n    },\n    {\n      \"name\": \"exp_not:v\"\n    },\n    {\n      \"name\": \"exp_stop_f:\"\n    },\n    {\n      \"name\": \"fi:\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNVF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNVT\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNVTF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNnF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNnT\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:VNnTF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNVF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNVT\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNVTF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNnF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNnT\"\n    },\n    {\n      \"name\": \"file_compare_timestamp:nNnTF\"\n    },\n    {\n      \"name\": \"file_compare_timestamp_p:VNV\"\n    },\n    {\n      \"name\": \"file_compare_timestamp_p:VNn\"\n    },\n    {\n      \"name\": \"file_compare_timestamp_p:nNV\"\n    },\n    {\n      \"name\": \"file_compare_timestamp_p:nNn\"\n    },\n    {\n      \"name\": \"file_full_name:V\"\n    },\n    {\n      \"name\": \"file_full_name:n\"\n    },\n    {\n      \"name\": \"file_get:VnN\"\n    },\n    {\n      \"name\": \"file_get:VnNF\"\n    },\n    {\n      \"name\": \"file_get:VnNT\"\n    },\n    {\n      \"name\": \"file_get:VnNTF\"\n    },\n    {\n      \"name\": \"file_get:nnN\"\n    },\n    {\n      \"name\": \"file_get:nnNF\"\n    },\n    {\n      \"name\": \"file_get:nnNT\"\n    },\n    {\n      \"name\": \"file_get:nnNTF\"\n    },\n    {\n      \"name\": \"file_get_full_name:VN\"\n    },\n    {\n      \"name\": \"file_get_full_name:VNF\"\n    },\n    {\n      \"name\": \"file_get_full_name:VNT\"\n    },\n    {\n      \"name\": \"file_get_full_name:VNTF\"\n    },\n    {\n      \"name\": \"file_get_full_name:nN\"\n    },\n    {\n      \"name\": \"file_get_full_name:nNF\"\n    },\n    {\n      \"name\": \"file_get_full_name:nNT\"\n    },\n    {\n      \"name\": \"file_get_full_name:nNTF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VN\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VNF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VNT\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VNTF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VnnN\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VnnNF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VnnNT\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:VnnNTF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nN\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nNF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nNT\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nNTF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nnnN\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nnnNF\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nnnNT\"\n    },\n    {\n      \"name\": \"file_get_hex_dump:nnnNTF\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:VN\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:VNF\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:VNT\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:VNTF\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:nN\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:nNF\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:nNT\"\n    },\n    {\n      \"name\": \"file_get_mdfive_hash:nNTF\"\n    },\n    {\n      \"name\": \"file_get_size:VN\"\n    },\n    {\n      \"name\": \"file_get_size:VNF\"\n    },\n    {\n      \"name\": \"file_get_size:VNT\"\n    },\n    {\n      \"name\": \"file_get_size:VNTF\"\n    },\n    {\n      \"name\": \"file_get_size:nN\"\n    },\n    {\n      \"name\": \"file_get_size:nNF\"\n    },\n    {\n      \"name\": \"file_get_size:nNT\"\n    },\n    {\n      \"name\": \"file_get_size:nNTF\"\n    },\n    {\n      \"name\": \"file_get_timestamp:VN\"\n    },\n    {\n      \"name\": \"file_get_timestamp:VNF\"\n    },\n    {\n      \"name\": \"file_get_timestamp:VNT\"\n    },\n    {\n      \"name\": \"file_get_timestamp:VNTF\"\n    },\n    {\n      \"name\": \"file_get_timestamp:nN\"\n    },\n    {\n      \"name\": \"file_get_timestamp:nNF\"\n    },\n    {\n      \"name\": \"file_get_timestamp:nNT\"\n    },\n    {\n      \"name\": \"file_get_timestamp:nNTF\"\n    },\n    {\n      \"name\": \"file_hex_dump:V\"\n    },\n    {\n      \"name\": \"file_hex_dump:Vnn\"\n    },\n    {\n      \"name\": \"file_hex_dump:n\"\n    },\n    {\n      \"name\": \"file_hex_dump:nnn\"\n    },\n    {\n      \"name\": \"file_if_exist:VF\"\n    },\n    {\n      \"name\": \"file_if_exist:VT\"\n    },\n    {\n      \"name\": \"file_if_exist:VTF\"\n    },\n    {\n      \"name\": \"file_if_exist:nF\"\n    },\n    {\n      \"name\": \"file_if_exist:nT\"\n    },\n    {\n      \"name\": \"file_if_exist:nTF\"\n    },\n    {\n      \"name\": \"file_if_exist_input:V\"\n    },\n    {\n      \"name\": \"file_if_exist_input:VF\"\n    },\n    {\n      \"name\": \"file_if_exist_input:n\"\n    },\n    {\n      \"name\": \"file_if_exist_input:nF\"\n    },\n    {\n      \"name\": \"file_if_exist_p:V\"\n    },\n    {\n      \"name\": \"file_if_exist_p:n\"\n    },\n    {\n      \"name\": \"file_input:V\"\n    },\n    {\n      \"name\": \"file_input:n\"\n    },\n    {\n      \"name\": \"file_input_raw:V\"\n    },\n    {\n      \"name\": \"file_input_raw:n\"\n    },\n    {\n      \"name\": \"file_input_stop:\"\n    },\n    {\n      \"name\": \"file_log_list:\"\n    },\n    {\n      \"name\": \"file_mdfive_hash:V\"\n    },\n    {\n      \"name\": \"file_mdfive_hash:n\"\n    },\n    {\n      \"name\": \"file_parse_full_name:V\"\n    },\n    {\n      \"name\": \"file_parse_full_name:VNNN\"\n    },\n    {\n      \"name\": \"file_parse_full_name:n\"\n    },\n    {\n      \"name\": \"file_parse_full_name:nNNN\"\n    },\n    {\n      \"name\": \"file_parse_full_name_apply:VN\"\n    },\n    {\n      \"name\": \"file_parse_full_name_apply:nN\"\n    },\n    {\n      \"name\": \"file_show_list:\"\n    },\n    {\n      \"name\": \"file_size:V\"\n    },\n    {\n      \"name\": \"file_size:n\"\n    },\n    {\n      \"name\": \"file_timestamp:V\"\n    },\n    {\n      \"name\": \"file_timestamp:n\"\n    },\n    {\n      \"name\": \"flag_clear:N\"\n    },\n    {\n      \"name\": \"flag_clear:c\"\n    },\n    {\n      \"name\": \"flag_clear_new:N\"\n    },\n    {\n      \"name\": \"flag_clear_new:c\"\n    },\n    {\n      \"name\": \"flag_ensure_raised:N\"\n    },\n    {\n      \"name\": \"flag_ensure_raised:c\"\n    },\n    {\n      \"name\": \"flag_height:N\"\n    },\n    {\n      \"name\": \"flag_height:c\"\n    },\n    {\n      \"name\": \"flag_if_exist:NF\"\n    },\n    {\n      \"name\": \"flag_if_exist:NT\"\n    },\n    {\n      \"name\": \"flag_if_exist:NTF\"\n    },\n    {\n      \"name\": \"flag_if_exist:cF\"\n    },\n    {\n      \"name\": \"flag_if_exist:cT\"\n    },\n    {\n      \"name\": \"flag_if_exist:cTF\"\n    },\n    {\n      \"name\": \"flag_if_exist_p:N\"\n    },\n    {\n      \"name\": \"flag_if_exist_p:c\"\n    },\n    {\n      \"name\": \"flag_if_raised:NF\"\n    },\n    {\n      \"name\": \"flag_if_raised:NT\"\n    },\n    {\n      \"name\": \"flag_if_raised:NTF\"\n    },\n    {\n      \"name\": \"flag_if_raised:cF\"\n    },\n    {\n      \"name\": \"flag_if_raised:cT\"\n    },\n    {\n      \"name\": \"flag_if_raised:cTF\"\n    },\n    {\n      \"name\": \"flag_if_raised_p:N\"\n    },\n    {\n      \"name\": \"flag_if_raised_p:c\"\n    },\n    {\n      \"name\": \"flag_log:N\"\n    },\n    {\n      \"name\": \"flag_log:c\"\n    },\n    {\n      \"name\": \"flag_new:N\"\n    },\n    {\n      \"name\": \"flag_new:c\"\n    },\n    {\n      \"name\": \"flag_raise:N\"\n    },\n    {\n      \"name\": \"flag_raise:c\"\n    },\n    {\n      \"name\": \"flag_show:N\"\n    },\n    {\n      \"name\": \"flag_show:c\"\n    },\n    {\n      \"name\": \"fp_abs:n\"\n    },\n    {\n      \"name\": \"fp_add:Nn\"\n    },\n    {\n      \"name\": \"fp_add:cn\"\n    },\n    {\n      \"name\": \"fp_clear_function:n\"\n    },\n    {\n      \"name\": \"fp_clear_variable:n\"\n    },\n    {\n      \"name\": \"fp_compare:nF\"\n    },\n    {\n      \"name\": \"fp_compare:nNnF\"\n    },\n    {\n      \"name\": \"fp_compare:nNnT\"\n    },\n    {\n      \"name\": \"fp_compare:nNnTF\"\n    },\n    {\n      \"name\": \"fp_compare:nT\"\n    },\n    {\n      \"name\": \"fp_compare:nTF\"\n    },\n    {\n      \"name\": \"fp_compare_p:n\"\n    },\n    {\n      \"name\": \"fp_compare_p:nNn\"\n    },\n    {\n      \"name\": \"fp_const:Nn\"\n    },\n    {\n      \"name\": \"fp_const:cn\"\n    },\n    {\n      \"name\": \"fp_do_until:nNnn\"\n    },\n    {\n      \"name\": \"fp_do_until:nn\"\n    },\n    {\n      \"name\": \"fp_do_while:nNnn\"\n    },\n    {\n      \"name\": \"fp_do_while:nn\"\n    },\n    {\n      \"name\": \"fp_eval:n\"\n    },\n    {\n      \"name\": \"fp_gadd:Nn\"\n    },\n    {\n      \"name\": \"fp_gadd:cn\"\n    },\n    {\n      \"name\": \"fp_gset:NV\"\n    },\n    {\n      \"name\": \"fp_gset:Nn\"\n    },\n    {\n      \"name\": \"fp_gset:cV\"\n    },\n    {\n      \"name\": \"fp_gset:cn\"\n    },\n    {\n      \"name\": \"fp_gset_eq:NN\"\n    },\n    {\n      \"name\": \"fp_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"fp_gset_eq:cN\"\n    },\n    {\n      \"name\": \"fp_gset_eq:cc\"\n    },\n    {\n      \"name\": \"fp_gsub:Nn\"\n    },\n    {\n      \"name\": \"fp_gsub:cn\"\n    },\n    {\n      \"name\": \"fp_gzero:N\"\n    },\n    {\n      \"name\": \"fp_gzero:c\"\n    },\n    {\n      \"name\": \"fp_gzero_new:N\"\n    },\n    {\n      \"name\": \"fp_gzero_new:c\"\n    },\n    {\n      \"name\": \"fp_if_exist:NF\"\n    },\n    {\n      \"name\": \"fp_if_exist:NT\"\n    },\n    {\n      \"name\": \"fp_if_exist:NTF\"\n    },\n    {\n      \"name\": \"fp_if_exist:cF\"\n    },\n    {\n      \"name\": \"fp_if_exist:cT\"\n    },\n    {\n      \"name\": \"fp_if_exist:cTF\"\n    },\n    {\n      \"name\": \"fp_if_exist_p:N\"\n    },\n    {\n      \"name\": \"fp_if_exist_p:c\"\n    },\n    {\n      \"name\": \"fp_if_nan:nF\"\n    },\n    {\n      \"name\": \"fp_if_nan:nT\"\n    },\n    {\n      \"name\": \"fp_if_nan:nTF\"\n    },\n    {\n      \"name\": \"fp_if_nan_p:n\"\n    },\n    {\n      \"name\": \"fp_log:N\"\n    },\n    {\n      \"name\": \"fp_log:c\"\n    },\n    {\n      \"name\": \"fp_log:n\"\n    },\n    {\n      \"name\": \"fp_max:nn\"\n    },\n    {\n      \"name\": \"fp_min:nn\"\n    },\n    {\n      \"name\": \"fp_new:N\"\n    },\n    {\n      \"name\": \"fp_new:c\"\n    },\n    {\n      \"name\": \"fp_new_function:n\"\n    },\n    {\n      \"name\": \"fp_new_variable:n\"\n    },\n    {\n      \"name\": \"fp_set:NV\"\n    },\n    {\n      \"name\": \"fp_set:Nn\"\n    },\n    {\n      \"name\": \"fp_set:cV\"\n    },\n    {\n      \"name\": \"fp_set:cn\"\n    },\n    {\n      \"name\": \"fp_set_eq:NN\"\n    },\n    {\n      \"name\": \"fp_set_eq:Nc\"\n    },\n    {\n      \"name\": \"fp_set_eq:cN\"\n    },\n    {\n      \"name\": \"fp_set_eq:cc\"\n    },\n    {\n      \"name\": \"fp_set_function:nnn\"\n    },\n    {\n      \"name\": \"fp_set_variable:nn\"\n    },\n    {\n      \"name\": \"fp_show:N\"\n    },\n    {\n      \"name\": \"fp_show:c\"\n    },\n    {\n      \"name\": \"fp_show:n\"\n    },\n    {\n      \"name\": \"fp_sign:n\"\n    },\n    {\n      \"name\": \"fp_step_function:nnnN\"\n    },\n    {\n      \"name\": \"fp_step_function:nnnc\"\n    },\n    {\n      \"name\": \"fp_step_inline:nnnn\"\n    },\n    {\n      \"name\": \"fp_step_variable:nnnNn\"\n    },\n    {\n      \"name\": \"fp_sub:Nn\"\n    },\n    {\n      \"name\": \"fp_sub:cn\"\n    },\n    {\n      \"name\": \"fp_to_decimal:N\"\n    },\n    {\n      \"name\": \"fp_to_decimal:c\"\n    },\n    {\n      \"name\": \"fp_to_decimal:n\"\n    },\n    {\n      \"name\": \"fp_to_dim:N\"\n    },\n    {\n      \"name\": \"fp_to_dim:c\"\n    },\n    {\n      \"name\": \"fp_to_dim:n\"\n    },\n    {\n      \"name\": \"fp_to_int:N\"\n    },\n    {\n      \"name\": \"fp_to_int:c\"\n    },\n    {\n      \"name\": \"fp_to_int:n\"\n    },\n    {\n      \"name\": \"fp_to_scientific:N\"\n    },\n    {\n      \"name\": \"fp_to_scientific:c\"\n    },\n    {\n      \"name\": \"fp_to_scientific:n\"\n    },\n    {\n      \"name\": \"fp_to_tl:N\"\n    },\n    {\n      \"name\": \"fp_to_tl:c\"\n    },\n    {\n      \"name\": \"fp_to_tl:n\"\n    },\n    {\n      \"name\": \"fp_trap:nn\"\n    },\n    {\n      \"name\": \"fp_until_do:nNnn\"\n    },\n    {\n      \"name\": \"fp_until_do:nn\"\n    },\n    {\n      \"name\": \"fp_use:N\"\n    },\n    {\n      \"name\": \"fp_use:c\"\n    },\n    {\n      \"name\": \"fp_while_do:nNnn\"\n    },\n    {\n      \"name\": \"fp_while_do:nn\"\n    },\n    {\n      \"name\": \"fp_zero:N\"\n    },\n    {\n      \"name\": \"fp_zero:c\"\n    },\n    {\n      \"name\": \"fp_zero_new:N\"\n    },\n    {\n      \"name\": \"fp_zero_new:c\"\n    },\n    {\n      \"name\": \"fparray_count:N\"\n    },\n    {\n      \"name\": \"fparray_count:c\"\n    },\n    {\n      \"name\": \"fparray_gset:Nnn\"\n    },\n    {\n      \"name\": \"fparray_gset:cnn\"\n    },\n    {\n      \"name\": \"fparray_gzero:N\"\n    },\n    {\n      \"name\": \"fparray_gzero:c\"\n    },\n    {\n      \"name\": \"fparray_if_exist:NF\"\n    },\n    {\n      \"name\": \"fparray_if_exist:NT\"\n    },\n    {\n      \"name\": \"fparray_if_exist:NTF\"\n    },\n    {\n      \"name\": \"fparray_if_exist:cF\"\n    },\n    {\n      \"name\": \"fparray_if_exist:cT\"\n    },\n    {\n      \"name\": \"fparray_if_exist:cTF\"\n    },\n    {\n      \"name\": \"fparray_if_exist_p:N\"\n    },\n    {\n      \"name\": \"fparray_if_exist_p:c\"\n    },\n    {\n      \"name\": \"fparray_item:Nn\"\n    },\n    {\n      \"name\": \"fparray_item:cn\"\n    },\n    {\n      \"name\": \"fparray_item_to_tl:Nn\"\n    },\n    {\n      \"name\": \"fparray_item_to_tl:cn\"\n    },\n    {\n      \"name\": \"fparray_new:Nn\"\n    },\n    {\n      \"name\": \"fparray_new:cn\"\n    },\n    {\n      \"name\": \"g_file_curr_dir_str\"\n    },\n    {\n      \"name\": \"g_file_curr_ext_str\"\n    },\n    {\n      \"name\": \"g_file_curr_name_str\"\n    },\n    {\n      \"name\": \"g_msg_module_name_prop\"\n    },\n    {\n      \"name\": \"g_msg_module_type_prop\"\n    },\n    {\n      \"name\": \"g_peek_token\"\n    },\n    {\n      \"name\": \"g_tmpa_bool\"\n    },\n    {\n      \"name\": \"g_tmpa_box\"\n    },\n    {\n      \"name\": \"g_tmpa_cctab\"\n    },\n    {\n      \"name\": \"g_tmpa_clist\"\n    },\n    {\n      \"name\": \"g_tmpa_coffin\"\n    },\n    {\n      \"name\": \"g_tmpa_dim\"\n    },\n    {\n      \"name\": \"g_tmpa_fp\"\n    },\n    {\n      \"name\": \"g_tmpa_int\"\n    },\n    {\n      \"name\": \"g_tmpa_ior\"\n    },\n    {\n      \"name\": \"g_tmpa_iow\"\n    },\n    {\n      \"name\": \"g_tmpa_muskip\"\n    },\n    {\n      \"name\": \"g_tmpa_prop\"\n    },\n    {\n      \"name\": \"g_tmpa_regex\"\n    },\n    {\n      \"name\": \"g_tmpa_seq\"\n    },\n    {\n      \"name\": \"g_tmpa_skip\"\n    },\n    {\n      \"name\": \"g_tmpa_str\"\n    },\n    {\n      \"name\": \"g_tmpa_tl\"\n    },\n    {\n      \"name\": \"g_tmpb_bool\"\n    },\n    {\n      \"name\": \"g_tmpb_box\"\n    },\n    {\n      \"name\": \"g_tmpb_cctab\"\n    },\n    {\n      \"name\": \"g_tmpb_clist\"\n    },\n    {\n      \"name\": \"g_tmpb_coffin\"\n    },\n    {\n      \"name\": \"g_tmpb_dim\"\n    },\n    {\n      \"name\": \"g_tmpb_fp\"\n    },\n    {\n      \"name\": \"g_tmpb_int\"\n    },\n    {\n      \"name\": \"g_tmpb_ior\"\n    },\n    {\n      \"name\": \"g_tmpb_iow\"\n    },\n    {\n      \"name\": \"g_tmpb_muskip\"\n    },\n    {\n      \"name\": \"g_tmpb_prop\"\n    },\n    {\n      \"name\": \"g_tmpb_regex\"\n    },\n    {\n      \"name\": \"g_tmpb_seq\"\n    },\n    {\n      \"name\": \"g_tmpb_skip\"\n    },\n    {\n      \"name\": \"g_tmpb_str\"\n    },\n    {\n      \"name\": \"g_tmpb_tl\"\n    },\n    {\n      \"name\": \"group_align_safe_begin:\"\n    },\n    {\n      \"name\": \"group_align_safe_end:\"\n    },\n    {\n      \"name\": \"group_begin:\"\n    },\n    {\n      \"name\": \"group_end:\"\n    },\n    {\n      \"name\": \"group_insert_after:N\"\n    },\n    {\n      \"name\": \"group_log_list:\"\n    },\n    {\n      \"name\": \"group_show_list:\"\n    },\n    {\n      \"name\": \"hbox:n\"\n    },\n    {\n      \"name\": \"hbox_gset:Nn\"\n    },\n    {\n      \"name\": \"hbox_gset:Nw\"\n    },\n    {\n      \"name\": \"hbox_gset:cn\"\n    },\n    {\n      \"name\": \"hbox_gset:cw\"\n    },\n    {\n      \"name\": \"hbox_gset_end:\"\n    },\n    {\n      \"name\": \"hbox_gset_to_wd:Nnn\"\n    },\n    {\n      \"name\": \"hbox_gset_to_wd:Nnw\"\n    },\n    {\n      \"name\": \"hbox_gset_to_wd:cnn\"\n    },\n    {\n      \"name\": \"hbox_gset_to_wd:cnw\"\n    },\n    {\n      \"name\": \"hbox_overlap_center:n\"\n    },\n    {\n      \"name\": \"hbox_overlap_left:n\"\n    },\n    {\n      \"name\": \"hbox_overlap_right:n\"\n    },\n    {\n      \"name\": \"hbox_set:Nn\"\n    },\n    {\n      \"name\": \"hbox_set:Nw\"\n    },\n    {\n      \"name\": \"hbox_set:cn\"\n    },\n    {\n      \"name\": \"hbox_set:cw\"\n    },\n    {\n      \"name\": \"hbox_set_end:\"\n    },\n    {\n      \"name\": \"hbox_set_to_wd:Nnn\"\n    },\n    {\n      \"name\": \"hbox_set_to_wd:Nnw\"\n    },\n    {\n      \"name\": \"hbox_set_to_wd:cnn\"\n    },\n    {\n      \"name\": \"hbox_set_to_wd:cnw\"\n    },\n    {\n      \"name\": \"hbox_to_wd:nn\"\n    },\n    {\n      \"name\": \"hbox_to_zero:n\"\n    },\n    {\n      \"name\": \"hbox_unpack:N\"\n    },\n    {\n      \"name\": \"hbox_unpack:c\"\n    },\n    {\n      \"name\": \"hbox_unpack_drop:N\"\n    },\n    {\n      \"name\": \"hbox_unpack_drop:c\"\n    },\n    {\n      \"name\": \"hcoffin_gset:Nn\"\n    },\n    {\n      \"name\": \"hcoffin_gset:Nw\"\n    },\n    {\n      \"name\": \"hcoffin_gset:cn\"\n    },\n    {\n      \"name\": \"hcoffin_gset:cw\"\n    },\n    {\n      \"name\": \"hcoffin_gset_end:\"\n    },\n    {\n      \"name\": \"hcoffin_set:Nn\"\n    },\n    {\n      \"name\": \"hcoffin_set:Nw\"\n    },\n    {\n      \"name\": \"hcoffin_set:cn\"\n    },\n    {\n      \"name\": \"hcoffin_set:cw\"\n    },\n    {\n      \"name\": \"hcoffin_set_end:\"\n    },\n    {\n      \"name\": \"if:w\"\n    },\n    {\n      \"name\": \"if_bool:N\"\n    },\n    {\n      \"name\": \"if_box_empty:N\"\n    },\n    {\n      \"name\": \"if_case:w\"\n    },\n    {\n      \"name\": \"if_catcode:w\"\n    },\n    {\n      \"name\": \"if_charcode:w\"\n    },\n    {\n      \"name\": \"if_cs_exist:N\"\n    },\n    {\n      \"name\": \"if_cs_exist:w\"\n    },\n    {\n      \"name\": \"if_dim:w\"\n    },\n    {\n      \"name\": \"if_eof:w\"\n    },\n    {\n      \"name\": \"if_false:\"\n    },\n    {\n      \"name\": \"if_hbox:N\"\n    },\n    {\n      \"name\": \"if_int_compare:w\"\n    },\n    {\n      \"name\": \"if_int_odd:w\"\n    },\n    {\n      \"name\": \"if_meaning:w\"\n    },\n    {\n      \"name\": \"if_mode_horizontal:\"\n    },\n    {\n      \"name\": \"if_mode_inner:\"\n    },\n    {\n      \"name\": \"if_mode_math:\"\n    },\n    {\n      \"name\": \"if_mode_vertical:\"\n    },\n    {\n      \"name\": \"if_predicate:w\"\n    },\n    {\n      \"name\": \"if_true:\"\n    },\n    {\n      \"name\": \"if_vbox:N\"\n    },\n    {\n      \"name\": \"int_abs:n\"\n    },\n    {\n      \"name\": \"int_add:Nn\"\n    },\n    {\n      \"name\": \"int_add:cn\"\n    },\n    {\n      \"name\": \"int_case:nn\"\n    },\n    {\n      \"name\": \"int_case:nnF\"\n    },\n    {\n      \"name\": \"int_case:nnT\"\n    },\n    {\n      \"name\": \"int_case:nnTF\"\n    },\n    {\n      \"name\": \"int_compare:nF\"\n    },\n    {\n      \"name\": \"int_compare:nNnF\"\n    },\n    {\n      \"name\": \"int_compare:nNnT\"\n    },\n    {\n      \"name\": \"int_compare:nNnTF\"\n    },\n    {\n      \"name\": \"int_compare:nT\"\n    },\n    {\n      \"name\": \"int_compare:nTF\"\n    },\n    {\n      \"name\": \"int_compare_p:n\"\n    },\n    {\n      \"name\": \"int_compare_p:nNn\"\n    },\n    {\n      \"name\": \"int_const:Nn\"\n    },\n    {\n      \"name\": \"int_const:cn\"\n    },\n    {\n      \"name\": \"int_decr:N\"\n    },\n    {\n      \"name\": \"int_decr:c\"\n    },\n    {\n      \"name\": \"int_div_round:nn\"\n    },\n    {\n      \"name\": \"int_div_truncate:nn\"\n    },\n    {\n      \"name\": \"int_do_until:nNnn\"\n    },\n    {\n      \"name\": \"int_do_until:nn\"\n    },\n    {\n      \"name\": \"int_do_while:nNnn\"\n    },\n    {\n      \"name\": \"int_do_while:nn\"\n    },\n    {\n      \"name\": \"int_eval:n\"\n    },\n    {\n      \"name\": \"int_eval:w\"\n    },\n    {\n      \"name\": \"int_from_alph:n\"\n    },\n    {\n      \"name\": \"int_from_base:nn\"\n    },\n    {\n      \"name\": \"int_from_bin:n\"\n    },\n    {\n      \"name\": \"int_from_hex:n\"\n    },\n    {\n      \"name\": \"int_from_oct:n\"\n    },\n    {\n      \"name\": \"int_from_roman:n\"\n    },\n    {\n      \"name\": \"int_gadd:Nn\"\n    },\n    {\n      \"name\": \"int_gadd:cn\"\n    },\n    {\n      \"name\": \"int_gdecr:N\"\n    },\n    {\n      \"name\": \"int_gdecr:c\"\n    },\n    {\n      \"name\": \"int_gincr:N\"\n    },\n    {\n      \"name\": \"int_gincr:c\"\n    },\n    {\n      \"name\": \"int_gset:NV\"\n    },\n    {\n      \"name\": \"int_gset:Nn\"\n    },\n    {\n      \"name\": \"int_gset:cV\"\n    },\n    {\n      \"name\": \"int_gset:cn\"\n    },\n    {\n      \"name\": \"int_gset_eq:NN\"\n    },\n    {\n      \"name\": \"int_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"int_gset_eq:cN\"\n    },\n    {\n      \"name\": \"int_gset_eq:cc\"\n    },\n    {\n      \"name\": \"int_gsub:Nn\"\n    },\n    {\n      \"name\": \"int_gsub:cn\"\n    },\n    {\n      \"name\": \"int_gzero:N\"\n    },\n    {\n      \"name\": \"int_gzero:c\"\n    },\n    {\n      \"name\": \"int_gzero_new:N\"\n    },\n    {\n      \"name\": \"int_gzero_new:c\"\n    },\n    {\n      \"name\": \"int_if_even:nF\"\n    },\n    {\n      \"name\": \"int_if_even:nT\"\n    },\n    {\n      \"name\": \"int_if_even:nTF\"\n    },\n    {\n      \"name\": \"int_if_even_p:n\"\n    },\n    {\n      \"name\": \"int_if_exist:NF\"\n    },\n    {\n      \"name\": \"int_if_exist:NT\"\n    },\n    {\n      \"name\": \"int_if_exist:NTF\"\n    },\n    {\n      \"name\": \"int_if_exist:cF\"\n    },\n    {\n      \"name\": \"int_if_exist:cT\"\n    },\n    {\n      \"name\": \"int_if_exist:cTF\"\n    },\n    {\n      \"name\": \"int_if_exist_p:N\"\n    },\n    {\n      \"name\": \"int_if_exist_p:c\"\n    },\n    {\n      \"name\": \"int_if_odd:nF\"\n    },\n    {\n      \"name\": \"int_if_odd:nT\"\n    },\n    {\n      \"name\": \"int_if_odd:nTF\"\n    },\n    {\n      \"name\": \"int_if_odd_p:n\"\n    },\n    {\n      \"name\": \"int_if_zero:nF\"\n    },\n    {\n      \"name\": \"int_if_zero:nT\"\n    },\n    {\n      \"name\": \"int_if_zero:nTF\"\n    },\n    {\n      \"name\": \"int_if_zero_p:n\"\n    },\n    {\n      \"name\": \"int_incr:N\"\n    },\n    {\n      \"name\": \"int_incr:c\"\n    },\n    {\n      \"name\": \"int_log:N\"\n    },\n    {\n      \"name\": \"int_log:c\"\n    },\n    {\n      \"name\": \"int_log:n\"\n    },\n    {\n      \"name\": \"int_max:nn\"\n    },\n    {\n      \"name\": \"int_min:nn\"\n    },\n    {\n      \"name\": \"int_mod:nn\"\n    },\n    {\n      \"name\": \"int_new:N\"\n    },\n    {\n      \"name\": \"int_new:c\"\n    },\n    {\n      \"name\": \"int_rand:n\"\n    },\n    {\n      \"name\": \"int_rand:nn\"\n    },\n    {\n      \"name\": \"int_set:NV\"\n    },\n    {\n      \"name\": \"int_set:Nn\"\n    },\n    {\n      \"name\": \"int_set:cV\"\n    },\n    {\n      \"name\": \"int_set:cn\"\n    },\n    {\n      \"name\": \"int_set_eq:NN\"\n    },\n    {\n      \"name\": \"int_set_eq:Nc\"\n    },\n    {\n      \"name\": \"int_set_eq:cN\"\n    },\n    {\n      \"name\": \"int_set_eq:cc\"\n    },\n    {\n      \"name\": \"int_show:N\"\n    },\n    {\n      \"name\": \"int_show:c\"\n    },\n    {\n      \"name\": \"int_show:n\"\n    },\n    {\n      \"name\": \"int_sign:n\"\n    },\n    {\n      \"name\": \"int_step_function:nN\"\n    },\n    {\n      \"name\": \"int_step_function:nnN\"\n    },\n    {\n      \"name\": \"int_step_function:nnnN\"\n    },\n    {\n      \"name\": \"int_step_inline:nn\"\n    },\n    {\n      \"name\": \"int_step_inline:nnn\"\n    },\n    {\n      \"name\": \"int_step_inline:nnnn\"\n    },\n    {\n      \"name\": \"int_step_variable:nNn\"\n    },\n    {\n      \"name\": \"int_step_variable:nnNn\"\n    },\n    {\n      \"name\": \"int_step_variable:nnnNn\"\n    },\n    {\n      \"name\": \"int_sub:Nn\"\n    },\n    {\n      \"name\": \"int_sub:cn\"\n    },\n    {\n      \"name\": \"int_to_Alph:n\"\n    },\n    {\n      \"name\": \"int_to_Base:nn\"\n    },\n    {\n      \"name\": \"int_to_Hex:n\"\n    },\n    {\n      \"name\": \"int_to_Roman:n\"\n    },\n    {\n      \"name\": \"int_to_alph:n\"\n    },\n    {\n      \"name\": \"int_to_arabic:n\"\n    },\n    {\n      \"name\": \"int_to_arabic:v\"\n    },\n    {\n      \"name\": \"int_to_base:nn\"\n    },\n    {\n      \"name\": \"int_to_bin:n\"\n    },\n    {\n      \"name\": \"int_to_hex:n\"\n    },\n    {\n      \"name\": \"int_to_oct:n\"\n    },\n    {\n      \"name\": \"int_to_roman:n\"\n    },\n    {\n      \"name\": \"int_to_symbols:nnn\"\n    },\n    {\n      \"name\": \"int_until_do:nNnn\"\n    },\n    {\n      \"name\": \"int_until_do:nn\"\n    },\n    {\n      \"name\": \"int_use:N\"\n    },\n    {\n      \"name\": \"int_use:c\"\n    },\n    {\n      \"name\": \"int_value:w\"\n    },\n    {\n      \"name\": \"int_while_do:nNnn\"\n    },\n    {\n      \"name\": \"int_while_do:nn\"\n    },\n    {\n      \"name\": \"int_zero:N\"\n    },\n    {\n      \"name\": \"int_zero:c\"\n    },\n    {\n      \"name\": \"int_zero_new:N\"\n    },\n    {\n      \"name\": \"int_zero_new:c\"\n    },\n    {\n      \"name\": \"intarray_const_from_clist:Nn\"\n    },\n    {\n      \"name\": \"intarray_const_from_clist:cn\"\n    },\n    {\n      \"name\": \"intarray_count:N\"\n    },\n    {\n      \"name\": \"intarray_count:c\"\n    },\n    {\n      \"name\": \"intarray_gset:Nnn\"\n    },\n    {\n      \"name\": \"intarray_gset:cnn\"\n    },\n    {\n      \"name\": \"intarray_gzero:N\"\n    },\n    {\n      \"name\": \"intarray_gzero:c\"\n    },\n    {\n      \"name\": \"intarray_if_exist:NF\"\n    },\n    {\n      \"name\": \"intarray_if_exist:NT\"\n    },\n    {\n      \"name\": \"intarray_if_exist:NTF\"\n    },\n    {\n      \"name\": \"intarray_if_exist:cF\"\n    },\n    {\n      \"name\": \"intarray_if_exist:cT\"\n    },\n    {\n      \"name\": \"intarray_if_exist:cTF\"\n    },\n    {\n      \"name\": \"intarray_if_exist_p:N\"\n    },\n    {\n      \"name\": \"intarray_if_exist_p:c\"\n    },\n    {\n      \"name\": \"intarray_item:Nn\"\n    },\n    {\n      \"name\": \"intarray_item:cn\"\n    },\n    {\n      \"name\": \"intarray_log:N\"\n    },\n    {\n      \"name\": \"intarray_log:c\"\n    },\n    {\n      \"name\": \"intarray_new:Nn\"\n    },\n    {\n      \"name\": \"intarray_new:cn\"\n    },\n    {\n      \"name\": \"intarray_rand_item:N\"\n    },\n    {\n      \"name\": \"intarray_rand_item:c\"\n    },\n    {\n      \"name\": \"intarray_show:N\"\n    },\n    {\n      \"name\": \"intarray_show:c\"\n    },\n    {\n      \"name\": \"ior_close:N\"\n    },\n    {\n      \"name\": \"ior_close:c\"\n    },\n    {\n      \"name\": \"ior_get:NN\"\n    },\n    {\n      \"name\": \"ior_get:NNF\"\n    },\n    {\n      \"name\": \"ior_get:NNT\"\n    },\n    {\n      \"name\": \"ior_get:NNTF\"\n    },\n    {\n      \"name\": \"ior_get_term:nN\"\n    },\n    {\n      \"name\": \"ior_if_eof:NF\"\n    },\n    {\n      \"name\": \"ior_if_eof:NT\"\n    },\n    {\n      \"name\": \"ior_if_eof:NTF\"\n    },\n    {\n      \"name\": \"ior_if_eof_p:N\"\n    },\n    {\n      \"name\": \"ior_log:N\"\n    },\n    {\n      \"name\": \"ior_log:c\"\n    },\n    {\n      \"name\": \"ior_log_list:\"\n    },\n    {\n      \"name\": \"ior_map_break:\"\n    },\n    {\n      \"name\": \"ior_map_break:n\"\n    },\n    {\n      \"name\": \"ior_map_inline:Nn\"\n    },\n    {\n      \"name\": \"ior_map_variable:NNn\"\n    },\n    {\n      \"name\": \"ior_new:N\"\n    },\n    {\n      \"name\": \"ior_new:c\"\n    },\n    {\n      \"name\": \"ior_open:Nn\"\n    },\n    {\n      \"name\": \"ior_open:NnF\"\n    },\n    {\n      \"name\": \"ior_open:NnT\"\n    },\n    {\n      \"name\": \"ior_open:NnTF\"\n    },\n    {\n      \"name\": \"ior_open:cn\"\n    },\n    {\n      \"name\": \"ior_open:cnF\"\n    },\n    {\n      \"name\": \"ior_open:cnT\"\n    },\n    {\n      \"name\": \"ior_open:cnTF\"\n    },\n    {\n      \"name\": \"ior_shell_open:Nn\"\n    },\n    {\n      \"name\": \"ior_show:N\"\n    },\n    {\n      \"name\": \"ior_show:c\"\n    },\n    {\n      \"name\": \"ior_show_list:\"\n    },\n    {\n      \"name\": \"ior_str_get:NN\"\n    },\n    {\n      \"name\": \"ior_str_get:NNF\"\n    },\n    {\n      \"name\": \"ior_str_get:NNT\"\n    },\n    {\n      \"name\": \"ior_str_get:NNTF\"\n    },\n    {\n      \"name\": \"ior_str_get_term:nN\"\n    },\n    {\n      \"name\": \"ior_str_map_inline:Nn\"\n    },\n    {\n      \"name\": \"ior_str_map_variable:NNn\"\n    },\n    {\n      \"name\": \"iow_char:N\"\n    },\n    {\n      \"name\": \"iow_close:N\"\n    },\n    {\n      \"name\": \"iow_close:c\"\n    },\n    {\n      \"name\": \"iow_indent:n\"\n    },\n    {\n      \"name\": \"iow_log:N\"\n    },\n    {\n      \"name\": \"iow_log:c\"\n    },\n    {\n      \"name\": \"iow_log:e\"\n    },\n    {\n      \"name\": \"iow_log:n\"\n    },\n    {\n      \"name\": \"iow_log_list:\"\n    },\n    {\n      \"name\": \"iow_new:N\"\n    },\n    {\n      \"name\": \"iow_new:c\"\n    },\n    {\n      \"name\": \"iow_newline:\"\n    },\n    {\n      \"name\": \"iow_now:NV\"\n    },\n    {\n      \"name\": \"iow_now:Ne\"\n    },\n    {\n      \"name\": \"iow_now:Nn\"\n    },\n    {\n      \"name\": \"iow_now:cV\"\n    },\n    {\n      \"name\": \"iow_now:ce\"\n    },\n    {\n      \"name\": \"iow_now:cn\"\n    },\n    {\n      \"name\": \"iow_open:NV\"\n    },\n    {\n      \"name\": \"iow_open:Nn\"\n    },\n    {\n      \"name\": \"iow_open:cV\"\n    },\n    {\n      \"name\": \"iow_open:cn\"\n    },\n    {\n      \"name\": \"iow_shell_open:Nn\"\n    },\n    {\n      \"name\": \"iow_shipout:Ne\"\n    },\n    {\n      \"name\": \"iow_shipout:Nn\"\n    },\n    {\n      \"name\": \"iow_shipout:ce\"\n    },\n    {\n      \"name\": \"iow_shipout:cn\"\n    },\n    {\n      \"name\": \"iow_shipout_e:Ne\"\n    },\n    {\n      \"name\": \"iow_shipout_e:Nn\"\n    },\n    {\n      \"name\": \"iow_shipout_e:ce\"\n    },\n    {\n      \"name\": \"iow_shipout_e:cn\"\n    },\n    {\n      \"name\": \"iow_show:N\"\n    },\n    {\n      \"name\": \"iow_show:c\"\n    },\n    {\n      \"name\": \"iow_show_list:\"\n    },\n    {\n      \"name\": \"iow_term:e\"\n    },\n    {\n      \"name\": \"iow_term:n\"\n    },\n    {\n      \"name\": \"iow_wrap:nenN\"\n    },\n    {\n      \"name\": \"iow_wrap:nnnN\"\n    },\n    {\n      \"name\": \"iow_wrap_allow_break:\"\n    },\n    {\n      \"name\": \"keys_define:ne\"\n    },\n    {\n      \"name\": \"keys_define:nn\"\n    },\n    {\n      \"name\": \"keys_if_choice_exist:nnnF\"\n    },\n    {\n      \"name\": \"keys_if_choice_exist:nnnT\"\n    },\n    {\n      \"name\": \"keys_if_choice_exist:nnnTF\"\n    },\n    {\n      \"name\": \"keys_if_choice_exist_p:nnn\"\n    },\n    {\n      \"name\": \"keys_if_exist:neF\"\n    },\n    {\n      \"name\": \"keys_if_exist:neT\"\n    },\n    {\n      \"name\": \"keys_if_exist:neTF\"\n    },\n    {\n      \"name\": \"keys_if_exist:nnF\"\n    },\n    {\n      \"name\": \"keys_if_exist:nnT\"\n    },\n    {\n      \"name\": \"keys_if_exist:nnTF\"\n    },\n    {\n      \"name\": \"keys_if_exist_p:ne\"\n    },\n    {\n      \"name\": \"keys_if_exist_p:nn\"\n    },\n    {\n      \"name\": \"keys_log:nn\"\n    },\n    {\n      \"name\": \"keys_precompile:nnN\"\n    },\n    {\n      \"name\": \"keys_set:nV\"\n    },\n    {\n      \"name\": \"keys_set:ne\"\n    },\n    {\n      \"name\": \"keys_set:nn\"\n    },\n    {\n      \"name\": \"keys_set:no\"\n    },\n    {\n      \"name\": \"keys_set:nv\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnV\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnVN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnVnN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnn\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnnN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnnnN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nno\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnoN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnonN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnv\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnvN\"\n    },\n    {\n      \"name\": \"keys_set_exclude_groups:nnvnN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnV\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnVN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnVnN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnn\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnnN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnnnN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nno\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnoN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnonN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnv\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnvN\"\n    },\n    {\n      \"name\": \"keys_set_groups:nnvnN\"\n    },\n    {\n      \"name\": \"keys_set_known:nV\"\n    },\n    {\n      \"name\": \"keys_set_known:nVN\"\n    },\n    {\n      \"name\": \"keys_set_known:nVnN\"\n    },\n    {\n      \"name\": \"keys_set_known:ne\"\n    },\n    {\n      \"name\": \"keys_set_known:neN\"\n    },\n    {\n      \"name\": \"keys_set_known:nenN\"\n    },\n    {\n      \"name\": \"keys_set_known:nn\"\n    },\n    {\n      \"name\": \"keys_set_known:nnN\"\n    },\n    {\n      \"name\": \"keys_set_known:nnnN\"\n    },\n    {\n      \"name\": \"keys_set_known:no\"\n    },\n    {\n      \"name\": \"keys_set_known:noN\"\n    },\n    {\n      \"name\": \"keys_set_known:nonN\"\n    },\n    {\n      \"name\": \"keys_set_known:nv\"\n    },\n    {\n      \"name\": \"keys_set_known:nvN\"\n    },\n    {\n      \"name\": \"keys_set_known:nvnN\"\n    },\n    {\n      \"name\": \"keys_show:nn\"\n    },\n    {\n      \"name\": \"keyval_parse:NNV\"\n    },\n    {\n      \"name\": \"keyval_parse:NNn\"\n    },\n    {\n      \"name\": \"keyval_parse:NNv\"\n    },\n    {\n      \"name\": \"keyval_parse:nnV\"\n    },\n    {\n      \"name\": \"keyval_parse:nnn\"\n    },\n    {\n      \"name\": \"keyval_parse:nnv\"\n    },\n    {\n      \"name\": \"l_char_active_seq\"\n    },\n    {\n      \"name\": \"l_char_special_seq\"\n    },\n    {\n      \"name\": \"l_color_fixed_model_tl\"\n    },\n    {\n      \"name\": \"l_color_math_active_tl\"\n    },\n    {\n      \"name\": \"l_file_search_path_seq\"\n    },\n    {\n      \"name\": \"l_fp_division_by_zero_flag\"\n    },\n    {\n      \"name\": \"l_fp_invalid_operation_flag\"\n    },\n    {\n      \"name\": \"l_fp_overflow_flag\"\n    },\n    {\n      \"name\": \"l_fp_underflow_flag\"\n    },\n    {\n      \"name\": \"l_iow_line_count_int\"\n    },\n    {\n      \"name\": \"l_keys_choice_int\"\n    },\n    {\n      \"name\": \"l_keys_choice_tl\"\n    },\n    {\n      \"name\": \"l_keys_key_str\"\n    },\n    {\n      \"name\": \"l_keys_path_str\"\n    },\n    {\n      \"name\": \"l_keys_usage_load_prop\"\n    },\n    {\n      \"name\": \"l_keys_usage_preamble_prop\"\n    },\n    {\n      \"name\": \"l_keys_value_tl\"\n    },\n    {\n      \"name\": \"l_peek_token\"\n    },\n    {\n      \"name\": \"l_text_case_exclude_arg_tl\"\n    },\n    {\n      \"name\": \"l_text_expand_exclude_tl\"\n    },\n    {\n      \"name\": \"l_text_math_arg_tl\"\n    },\n    {\n      \"name\": \"l_text_math_delims_tl\"\n    },\n    {\n      \"name\": \"l_text_titlecase_check_letter_bool\"\n    },\n    {\n      \"name\": \"l_tmpa_bool\"\n    },\n    {\n      \"name\": \"l_tmpa_box\"\n    },\n    {\n      \"name\": \"l_tmpa_clist\"\n    },\n    {\n      \"name\": \"l_tmpa_coffin\"\n    },\n    {\n      \"name\": \"l_tmpa_dim\"\n    },\n    {\n      \"name\": \"l_tmpa_flag\"\n    },\n    {\n      \"name\": \"l_tmpa_fp\"\n    },\n    {\n      \"name\": \"l_tmpa_int\"\n    },\n    {\n      \"name\": \"l_tmpa_muskip\"\n    },\n    {\n      \"name\": \"l_tmpa_prop\"\n    },\n    {\n      \"name\": \"l_tmpa_regex\"\n    },\n    {\n      \"name\": \"l_tmpa_seq\"\n    },\n    {\n      \"name\": \"l_tmpa_skip\"\n    },\n    {\n      \"name\": \"l_tmpa_str\"\n    },\n    {\n      \"name\": \"l_tmpa_tl\"\n    },\n    {\n      \"name\": \"l_tmpb_bool\"\n    },\n    {\n      \"name\": \"l_tmpb_box\"\n    },\n    {\n      \"name\": \"l_tmpb_clist\"\n    },\n    {\n      \"name\": \"l_tmpb_coffin\"\n    },\n    {\n      \"name\": \"l_tmpb_dim\"\n    },\n    {\n      \"name\": \"l_tmpb_flag\"\n    },\n    {\n      \"name\": \"l_tmpb_fp\"\n    },\n    {\n      \"name\": \"l_tmpb_int\"\n    },\n    {\n      \"name\": \"l_tmpb_muskip\"\n    },\n    {\n      \"name\": \"l_tmpb_prop\"\n    },\n    {\n      \"name\": \"l_tmpb_regex\"\n    },\n    {\n      \"name\": \"l_tmpb_seq\"\n    },\n    {\n      \"name\": \"l_tmpb_skip\"\n    },\n    {\n      \"name\": \"l_tmpb_str\"\n    },\n    {\n      \"name\": \"l_tmpb_tl\"\n    },\n    {\n      \"name\": \"legacy_if:nF\"\n    },\n    {\n      \"name\": \"legacy_if:nT\"\n    },\n    {\n      \"name\": \"legacy_if:nTF\"\n    },\n    {\n      \"name\": \"legacy_if_gset:nn\"\n    },\n    {\n      \"name\": \"legacy_if_gset_false:n\"\n    },\n    {\n      \"name\": \"legacy_if_gset_true:n\"\n    },\n    {\n      \"name\": \"legacy_if_p:n\"\n    },\n    {\n      \"name\": \"legacy_if_set:nn\"\n    },\n    {\n      \"name\": \"legacy_if_set_false:n\"\n    },\n    {\n      \"name\": \"legacy_if_set_true:n\"\n    },\n    {\n      \"name\": \"lua_escape:e\"\n    },\n    {\n      \"name\": \"lua_escape:n\"\n    },\n    {\n      \"name\": \"lua_load_module:n\"\n    },\n    {\n      \"name\": \"lua_now:e\"\n    },\n    {\n      \"name\": \"lua_now:n\"\n    },\n    {\n      \"name\": \"lua_shipout:n\"\n    },\n    {\n      \"name\": \"lua_shipout_e:n\"\n    },\n    {\n      \"name\": \"mode_if_horizontal:F\"\n    },\n    {\n      \"name\": \"mode_if_horizontal:T\"\n    },\n    {\n      \"name\": \"mode_if_horizontal:TF\"\n    },\n    {\n      \"name\": \"mode_if_horizontal_p:\"\n    },\n    {\n      \"name\": \"mode_if_inner:F\"\n    },\n    {\n      \"name\": \"mode_if_inner:T\"\n    },\n    {\n      \"name\": \"mode_if_inner:TF\"\n    },\n    {\n      \"name\": \"mode_if_inner_p:\"\n    },\n    {\n      \"name\": \"mode_if_math:F\"\n    },\n    {\n      \"name\": \"mode_if_math:T\"\n    },\n    {\n      \"name\": \"mode_if_math:TF\"\n    },\n    {\n      \"name\": \"mode_if_math_p:\"\n    },\n    {\n      \"name\": \"mode_if_vertical:F\"\n    },\n    {\n      \"name\": \"mode_if_vertical:T\"\n    },\n    {\n      \"name\": \"mode_if_vertical:TF\"\n    },\n    {\n      \"name\": \"mode_if_vertical_p:\"\n    },\n    {\n      \"name\": \"mode_leave_vertical:\"\n    },\n    {\n      \"name\": \"msg_critical:nn\"\n    },\n    {\n      \"name\": \"msg_critical:nnV\"\n    },\n    {\n      \"name\": \"msg_critical:nnVV\"\n    },\n    {\n      \"name\": \"msg_critical:nnVn\"\n    },\n    {\n      \"name\": \"msg_critical:nne\"\n    },\n    {\n      \"name\": \"msg_critical:nnee\"\n    },\n    {\n      \"name\": \"msg_critical:nneee\"\n    },\n    {\n      \"name\": \"msg_critical:nneeee\"\n    },\n    {\n      \"name\": \"msg_critical:nnn\"\n    },\n    {\n      \"name\": \"msg_critical:nnnV\"\n    },\n    {\n      \"name\": \"msg_critical:nnne\"\n    },\n    {\n      \"name\": \"msg_critical:nnnee\"\n    },\n    {\n      \"name\": \"msg_critical:nnnn\"\n    },\n    {\n      \"name\": \"msg_critical:nnnnn\"\n    },\n    {\n      \"name\": \"msg_critical:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_critical_text:n\"\n    },\n    {\n      \"name\": \"msg_error:nn\"\n    },\n    {\n      \"name\": \"msg_error:nnV\"\n    },\n    {\n      \"name\": \"msg_error:nnVV\"\n    },\n    {\n      \"name\": \"msg_error:nnVn\"\n    },\n    {\n      \"name\": \"msg_error:nne\"\n    },\n    {\n      \"name\": \"msg_error:nnee\"\n    },\n    {\n      \"name\": \"msg_error:nneee\"\n    },\n    {\n      \"name\": \"msg_error:nneeee\"\n    },\n    {\n      \"name\": \"msg_error:nnn\"\n    },\n    {\n      \"name\": \"msg_error:nnnV\"\n    },\n    {\n      \"name\": \"msg_error:nnne\"\n    },\n    {\n      \"name\": \"msg_error:nnnee\"\n    },\n    {\n      \"name\": \"msg_error:nnnn\"\n    },\n    {\n      \"name\": \"msg_error:nnnnn\"\n    },\n    {\n      \"name\": \"msg_error:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_error_text:n\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nn\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnf\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnff\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnfff\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnffff\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnn\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnnn\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnnnn\"\n    },\n    {\n      \"name\": \"msg_expandable_error:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_fatal:nn\"\n    },\n    {\n      \"name\": \"msg_fatal:nnV\"\n    },\n    {\n      \"name\": \"msg_fatal:nnVV\"\n    },\n    {\n      \"name\": \"msg_fatal:nnVn\"\n    },\n    {\n      \"name\": \"msg_fatal:nne\"\n    },\n    {\n      \"name\": \"msg_fatal:nnee\"\n    },\n    {\n      \"name\": \"msg_fatal:nneee\"\n    },\n    {\n      \"name\": \"msg_fatal:nneeee\"\n    },\n    {\n      \"name\": \"msg_fatal:nnn\"\n    },\n    {\n      \"name\": \"msg_fatal:nnnV\"\n    },\n    {\n      \"name\": \"msg_fatal:nnne\"\n    },\n    {\n      \"name\": \"msg_fatal:nnnee\"\n    },\n    {\n      \"name\": \"msg_fatal:nnnn\"\n    },\n    {\n      \"name\": \"msg_fatal:nnnnn\"\n    },\n    {\n      \"name\": \"msg_fatal:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_fatal_text:n\"\n    },\n    {\n      \"name\": \"msg_if_exist:nnF\"\n    },\n    {\n      \"name\": \"msg_if_exist:nnT\"\n    },\n    {\n      \"name\": \"msg_if_exist:nnTF\"\n    },\n    {\n      \"name\": \"msg_if_exist_p:nn\"\n    },\n    {\n      \"name\": \"msg_info:nn\"\n    },\n    {\n      \"name\": \"msg_info:nnV\"\n    },\n    {\n      \"name\": \"msg_info:nnVV\"\n    },\n    {\n      \"name\": \"msg_info:nnVn\"\n    },\n    {\n      \"name\": \"msg_info:nne\"\n    },\n    {\n      \"name\": \"msg_info:nnee\"\n    },\n    {\n      \"name\": \"msg_info:nneee\"\n    },\n    {\n      \"name\": \"msg_info:nneeee\"\n    },\n    {\n      \"name\": \"msg_info:nnn\"\n    },\n    {\n      \"name\": \"msg_info:nnnV\"\n    },\n    {\n      \"name\": \"msg_info:nnne\"\n    },\n    {\n      \"name\": \"msg_info:nnnee\"\n    },\n    {\n      \"name\": \"msg_info:nnnn\"\n    },\n    {\n      \"name\": \"msg_info:nnnnn\"\n    },\n    {\n      \"name\": \"msg_info:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_info_text:n\"\n    },\n    {\n      \"name\": \"msg_line_context:\"\n    },\n    {\n      \"name\": \"msg_line_number:\"\n    },\n    {\n      \"name\": \"msg_log:nn\"\n    },\n    {\n      \"name\": \"msg_log:nnV\"\n    },\n    {\n      \"name\": \"msg_log:nnVV\"\n    },\n    {\n      \"name\": \"msg_log:nnVn\"\n    },\n    {\n      \"name\": \"msg_log:nne\"\n    },\n    {\n      \"name\": \"msg_log:nnee\"\n    },\n    {\n      \"name\": \"msg_log:nneee\"\n    },\n    {\n      \"name\": \"msg_log:nneeee\"\n    },\n    {\n      \"name\": \"msg_log:nnn\"\n    },\n    {\n      \"name\": \"msg_log:nnnV\"\n    },\n    {\n      \"name\": \"msg_log:nnne\"\n    },\n    {\n      \"name\": \"msg_log:nnnee\"\n    },\n    {\n      \"name\": \"msg_log:nnnn\"\n    },\n    {\n      \"name\": \"msg_log:nnnnn\"\n    },\n    {\n      \"name\": \"msg_log:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_module_name:n\"\n    },\n    {\n      \"name\": \"msg_module_type:n\"\n    },\n    {\n      \"name\": \"msg_new:nne\"\n    },\n    {\n      \"name\": \"msg_new:nnee\"\n    },\n    {\n      \"name\": \"msg_new:nnn\"\n    },\n    {\n      \"name\": \"msg_new:nnnn\"\n    },\n    {\n      \"name\": \"msg_none:nn\"\n    },\n    {\n      \"name\": \"msg_none:nnV\"\n    },\n    {\n      \"name\": \"msg_none:nnVV\"\n    },\n    {\n      \"name\": \"msg_none:nnVn\"\n    },\n    {\n      \"name\": \"msg_none:nne\"\n    },\n    {\n      \"name\": \"msg_none:nnee\"\n    },\n    {\n      \"name\": \"msg_none:nneee\"\n    },\n    {\n      \"name\": \"msg_none:nneeee\"\n    },\n    {\n      \"name\": \"msg_none:nnn\"\n    },\n    {\n      \"name\": \"msg_none:nnnV\"\n    },\n    {\n      \"name\": \"msg_none:nnne\"\n    },\n    {\n      \"name\": \"msg_none:nnnee\"\n    },\n    {\n      \"name\": \"msg_none:nnnn\"\n    },\n    {\n      \"name\": \"msg_none:nnnnn\"\n    },\n    {\n      \"name\": \"msg_none:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_note:nn\"\n    },\n    {\n      \"name\": \"msg_note:nnV\"\n    },\n    {\n      \"name\": \"msg_note:nnVV\"\n    },\n    {\n      \"name\": \"msg_note:nnVn\"\n    },\n    {\n      \"name\": \"msg_note:nne\"\n    },\n    {\n      \"name\": \"msg_note:nnee\"\n    },\n    {\n      \"name\": \"msg_note:nneee\"\n    },\n    {\n      \"name\": \"msg_note:nneeee\"\n    },\n    {\n      \"name\": \"msg_note:nnn\"\n    },\n    {\n      \"name\": \"msg_note:nnnV\"\n    },\n    {\n      \"name\": \"msg_note:nnne\"\n    },\n    {\n      \"name\": \"msg_note:nnnee\"\n    },\n    {\n      \"name\": \"msg_note:nnnn\"\n    },\n    {\n      \"name\": \"msg_note:nnnnn\"\n    },\n    {\n      \"name\": \"msg_note:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_redirect_class:nn\"\n    },\n    {\n      \"name\": \"msg_redirect_module:nnn\"\n    },\n    {\n      \"name\": \"msg_redirect_name:nnn\"\n    },\n    {\n      \"name\": \"msg_see_documentation_text:n\"\n    },\n    {\n      \"name\": \"msg_set:nnn\"\n    },\n    {\n      \"name\": \"msg_set:nnnn\"\n    },\n    {\n      \"name\": \"msg_show:nn\"\n    },\n    {\n      \"name\": \"msg_show:nnV\"\n    },\n    {\n      \"name\": \"msg_show:nnVV\"\n    },\n    {\n      \"name\": \"msg_show:nnVn\"\n    },\n    {\n      \"name\": \"msg_show:nne\"\n    },\n    {\n      \"name\": \"msg_show:nnee\"\n    },\n    {\n      \"name\": \"msg_show:nneee\"\n    },\n    {\n      \"name\": \"msg_show:nneeee\"\n    },\n    {\n      \"name\": \"msg_show:nnn\"\n    },\n    {\n      \"name\": \"msg_show:nnnV\"\n    },\n    {\n      \"name\": \"msg_show:nnne\"\n    },\n    {\n      \"name\": \"msg_show:nnnee\"\n    },\n    {\n      \"name\": \"msg_show:nnnn\"\n    },\n    {\n      \"name\": \"msg_show:nnnnn\"\n    },\n    {\n      \"name\": \"msg_show:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_show_item:n\"\n    },\n    {\n      \"name\": \"msg_show_item:nn\"\n    },\n    {\n      \"name\": \"msg_show_item_unbraced:n\"\n    },\n    {\n      \"name\": \"msg_show_item_unbraced:nn\"\n    },\n    {\n      \"name\": \"msg_term:nn\"\n    },\n    {\n      \"name\": \"msg_term:nnV\"\n    },\n    {\n      \"name\": \"msg_term:nnVV\"\n    },\n    {\n      \"name\": \"msg_term:nnVn\"\n    },\n    {\n      \"name\": \"msg_term:nne\"\n    },\n    {\n      \"name\": \"msg_term:nnee\"\n    },\n    {\n      \"name\": \"msg_term:nneee\"\n    },\n    {\n      \"name\": \"msg_term:nneeee\"\n    },\n    {\n      \"name\": \"msg_term:nnn\"\n    },\n    {\n      \"name\": \"msg_term:nnnV\"\n    },\n    {\n      \"name\": \"msg_term:nnne\"\n    },\n    {\n      \"name\": \"msg_term:nnnee\"\n    },\n    {\n      \"name\": \"msg_term:nnnn\"\n    },\n    {\n      \"name\": \"msg_term:nnnnn\"\n    },\n    {\n      \"name\": \"msg_term:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_warning:nn\"\n    },\n    {\n      \"name\": \"msg_warning:nnV\"\n    },\n    {\n      \"name\": \"msg_warning:nnVV\"\n    },\n    {\n      \"name\": \"msg_warning:nnVn\"\n    },\n    {\n      \"name\": \"msg_warning:nne\"\n    },\n    {\n      \"name\": \"msg_warning:nnee\"\n    },\n    {\n      \"name\": \"msg_warning:nneee\"\n    },\n    {\n      \"name\": \"msg_warning:nneeee\"\n    },\n    {\n      \"name\": \"msg_warning:nnn\"\n    },\n    {\n      \"name\": \"msg_warning:nnnV\"\n    },\n    {\n      \"name\": \"msg_warning:nnne\"\n    },\n    {\n      \"name\": \"msg_warning:nnnee\"\n    },\n    {\n      \"name\": \"msg_warning:nnnn\"\n    },\n    {\n      \"name\": \"msg_warning:nnnnn\"\n    },\n    {\n      \"name\": \"msg_warning:nnnnnn\"\n    },\n    {\n      \"name\": \"msg_warning_text:n\"\n    },\n    {\n      \"name\": \"muskip_add:Nn\"\n    },\n    {\n      \"name\": \"muskip_add:cn\"\n    },\n    {\n      \"name\": \"muskip_const:Nn\"\n    },\n    {\n      \"name\": \"muskip_const:cn\"\n    },\n    {\n      \"name\": \"muskip_eval:n\"\n    },\n    {\n      \"name\": \"muskip_gadd:Nn\"\n    },\n    {\n      \"name\": \"muskip_gadd:cn\"\n    },\n    {\n      \"name\": \"muskip_gset:NV\"\n    },\n    {\n      \"name\": \"muskip_gset:Nn\"\n    },\n    {\n      \"name\": \"muskip_gset:cV\"\n    },\n    {\n      \"name\": \"muskip_gset:cn\"\n    },\n    {\n      \"name\": \"muskip_gset_eq:NN\"\n    },\n    {\n      \"name\": \"muskip_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"muskip_gset_eq:cN\"\n    },\n    {\n      \"name\": \"muskip_gset_eq:cc\"\n    },\n    {\n      \"name\": \"muskip_gsub:Nn\"\n    },\n    {\n      \"name\": \"muskip_gsub:cn\"\n    },\n    {\n      \"name\": \"muskip_gzero:N\"\n    },\n    {\n      \"name\": \"muskip_gzero:c\"\n    },\n    {\n      \"name\": \"muskip_gzero_new:N\"\n    },\n    {\n      \"name\": \"muskip_gzero_new:c\"\n    },\n    {\n      \"name\": \"muskip_if_exist:NF\"\n    },\n    {\n      \"name\": \"muskip_if_exist:NT\"\n    },\n    {\n      \"name\": \"muskip_if_exist:NTF\"\n    },\n    {\n      \"name\": \"muskip_if_exist:cF\"\n    },\n    {\n      \"name\": \"muskip_if_exist:cT\"\n    },\n    {\n      \"name\": \"muskip_if_exist:cTF\"\n    },\n    {\n      \"name\": \"muskip_if_exist_p:N\"\n    },\n    {\n      \"name\": \"muskip_if_exist_p:c\"\n    },\n    {\n      \"name\": \"muskip_log:N\"\n    },\n    {\n      \"name\": \"muskip_log:c\"\n    },\n    {\n      \"name\": \"muskip_log:n\"\n    },\n    {\n      \"name\": \"muskip_new:N\"\n    },\n    {\n      \"name\": \"muskip_new:c\"\n    },\n    {\n      \"name\": \"muskip_set:NV\"\n    },\n    {\n      \"name\": \"muskip_set:Nn\"\n    },\n    {\n      \"name\": \"muskip_set:cV\"\n    },\n    {\n      \"name\": \"muskip_set:cn\"\n    },\n    {\n      \"name\": \"muskip_set_eq:NN\"\n    },\n    {\n      \"name\": \"muskip_set_eq:Nc\"\n    },\n    {\n      \"name\": \"muskip_set_eq:cN\"\n    },\n    {\n      \"name\": \"muskip_set_eq:cc\"\n    },\n    {\n      \"name\": \"muskip_show:N\"\n    },\n    {\n      \"name\": \"muskip_show:c\"\n    },\n    {\n      \"name\": \"muskip_show:n\"\n    },\n    {\n      \"name\": \"muskip_sub:Nn\"\n    },\n    {\n      \"name\": \"muskip_sub:cn\"\n    },\n    {\n      \"name\": \"muskip_use:N\"\n    },\n    {\n      \"name\": \"muskip_use:c\"\n    },\n    {\n      \"name\": \"muskip_zero:N\"\n    },\n    {\n      \"name\": \"muskip_zero:c\"\n    },\n    {\n      \"name\": \"muskip_zero_new:N\"\n    },\n    {\n      \"name\": \"muskip_zero_new:c\"\n    },\n    {\n      \"name\": \"or:\"\n    },\n    {\n      \"name\": \"pdf_destination:nn\"\n    },\n    {\n      \"name\": \"pdf_destination:nnnn\"\n    },\n    {\n      \"name\": \"pdf_object_if_exist:nF\"\n    },\n    {\n      \"name\": \"pdf_object_if_exist:nT\"\n    },\n    {\n      \"name\": \"pdf_object_if_exist:nTF\"\n    },\n    {\n      \"name\": \"pdf_object_if_exist_p:n\"\n    },\n    {\n      \"name\": \"pdf_object_new:n\"\n    },\n    {\n      \"name\": \"pdf_object_new_indexed:nn\"\n    },\n    {\n      \"name\": \"pdf_object_ref:n\"\n    },\n    {\n      \"name\": \"pdf_object_ref_indexed:nn\"\n    },\n    {\n      \"name\": \"pdf_object_ref_last:\"\n    },\n    {\n      \"name\": \"pdf_object_unnamed_write:ne\"\n    },\n    {\n      \"name\": \"pdf_object_unnamed_write:nn\"\n    },\n    {\n      \"name\": \"pdf_object_write:nne\"\n    },\n    {\n      \"name\": \"pdf_object_write:nnn\"\n    },\n    {\n      \"name\": \"pdf_object_write_indexed:nnne\"\n    },\n    {\n      \"name\": \"pdf_object_write_indexed:nnnn\"\n    },\n    {\n      \"name\": \"pdf_pageobject_ref:n\"\n    },\n    {\n      \"name\": \"pdf_pagesize_gset:nn\"\n    },\n    {\n      \"name\": \"pdf_uncompress:\"\n    },\n    {\n      \"name\": \"pdf_version:\"\n    },\n    {\n      \"name\": \"pdf_version_compare:NnF\"\n    },\n    {\n      \"name\": \"pdf_version_compare:NnT\"\n    },\n    {\n      \"name\": \"pdf_version_compare:NnTF\"\n    },\n    {\n      \"name\": \"pdf_version_compare_p:Nn\"\n    },\n    {\n      \"name\": \"pdf_version_gset:n\"\n    },\n    {\n      \"name\": \"pdf_version_major:\"\n    },\n    {\n      \"name\": \"pdf_version_min_gset:n\"\n    },\n    {\n      \"name\": \"pdf_version_minor:\"\n    },\n    {\n      \"name\": \"peek_N_type:F\"\n    },\n    {\n      \"name\": \"peek_N_type:T\"\n    },\n    {\n      \"name\": \"peek_N_type:TF\"\n    },\n    {\n      \"name\": \"peek_after:Nw\"\n    },\n    {\n      \"name\": \"peek_analysis_map_break:\"\n    },\n    {\n      \"name\": \"peek_analysis_map_break:n\"\n    },\n    {\n      \"name\": \"peek_analysis_map_inline:n\"\n    },\n    {\n      \"name\": \"peek_catcode:NF\"\n    },\n    {\n      \"name\": \"peek_catcode:NT\"\n    },\n    {\n      \"name\": \"peek_catcode:NTF\"\n    },\n    {\n      \"name\": \"peek_catcode_remove:NF\"\n    },\n    {\n      \"name\": \"peek_catcode_remove:NT\"\n    },\n    {\n      \"name\": \"peek_catcode_remove:NTF\"\n    },\n    {\n      \"name\": \"peek_charcode:NF\"\n    },\n    {\n      \"name\": \"peek_charcode:NT\"\n    },\n    {\n      \"name\": \"peek_charcode:NTF\"\n    },\n    {\n      \"name\": \"peek_charcode_remove:NF\"\n    },\n    {\n      \"name\": \"peek_charcode_remove:NT\"\n    },\n    {\n      \"name\": \"peek_charcode_remove:NTF\"\n    },\n    {\n      \"name\": \"peek_gafter:Nw\"\n    },\n    {\n      \"name\": \"peek_meaning:NF\"\n    },\n    {\n      \"name\": \"peek_meaning:NT\"\n    },\n    {\n      \"name\": \"peek_meaning:NTF\"\n    },\n    {\n      \"name\": \"peek_meaning_remove:NF\"\n    },\n    {\n      \"name\": \"peek_meaning_remove:NT\"\n    },\n    {\n      \"name\": \"peek_meaning_remove:NTF\"\n    },\n    {\n      \"name\": \"peek_regex:NF\"\n    },\n    {\n      \"name\": \"peek_regex:NT\"\n    },\n    {\n      \"name\": \"peek_regex:NTF\"\n    },\n    {\n      \"name\": \"peek_regex:nF\"\n    },\n    {\n      \"name\": \"peek_regex:nT\"\n    },\n    {\n      \"name\": \"peek_regex:nTF\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:NF\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:NT\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:NTF\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:nF\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:nT\"\n    },\n    {\n      \"name\": \"peek_regex_remove_once:nTF\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:Nn\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:NnF\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:NnT\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:NnTF\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:nn\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:nnF\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:nnT\"\n    },\n    {\n      \"name\": \"peek_regex_replace_once:nnTF\"\n    },\n    {\n      \"name\": \"peek_remove_filler:n\"\n    },\n    {\n      \"name\": \"peek_remove_spaces:n\"\n    },\n    {\n      \"name\": \"prg_break:\"\n    },\n    {\n      \"name\": \"prg_break:n\"\n    },\n    {\n      \"name\": \"prg_break_point:\"\n    },\n    {\n      \"name\": \"prg_break_point:Nn\"\n    },\n    {\n      \"name\": \"prg_do_nothing:\"\n    },\n    {\n      \"name\": \"prg_generate_conditional_variant:Nnn\"\n    },\n    {\n      \"name\": \"prg_gset_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_gset_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prg_gset_eq_conditional:NNn\"\n    },\n    {\n      \"name\": \"prg_gset_protected_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_gset_protected_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prg_map_break:Nn\"\n    },\n    {\n      \"name\": \"prg_new_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_new_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prg_new_eq_conditional:NNn\"\n    },\n    {\n      \"name\": \"prg_new_protected_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_new_protected_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prg_replicate:nn\"\n    },\n    {\n      \"name\": \"prg_return_false:\"\n    },\n    {\n      \"name\": \"prg_return_true:\"\n    },\n    {\n      \"name\": \"prg_set_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_set_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prg_set_eq_conditional:NNn\"\n    },\n    {\n      \"name\": \"prg_set_protected_conditional:Nnn\"\n    },\n    {\n      \"name\": \"prg_set_protected_conditional:Npnn\"\n    },\n    {\n      \"name\": \"prop_clear:N\"\n    },\n    {\n      \"name\": \"prop_clear:c\"\n    },\n    {\n      \"name\": \"prop_clear_new:N\"\n    },\n    {\n      \"name\": \"prop_clear_new:c\"\n    },\n    {\n      \"name\": \"prop_clear_new_linked:N\"\n    },\n    {\n      \"name\": \"prop_clear_new_linked:c\"\n    },\n    {\n      \"name\": \"prop_concat:NNN\"\n    },\n    {\n      \"name\": \"prop_concat:ccc\"\n    },\n    {\n      \"name\": \"prop_const_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_const_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_const_linked_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_const_linked_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_count:N\"\n    },\n    {\n      \"name\": \"prop_count:c\"\n    },\n    {\n      \"name\": \"prop_gclear:N\"\n    },\n    {\n      \"name\": \"prop_gclear:c\"\n    },\n    {\n      \"name\": \"prop_gclear_new:N\"\n    },\n    {\n      \"name\": \"prop_gclear_new:c\"\n    },\n    {\n      \"name\": \"prop_gclear_new_linked:N\"\n    },\n    {\n      \"name\": \"prop_gclear_new_linked:c\"\n    },\n    {\n      \"name\": \"prop_gconcat:NNN\"\n    },\n    {\n      \"name\": \"prop_gconcat:ccc\"\n    },\n    {\n      \"name\": \"prop_get:NVN\"\n    },\n    {\n      \"name\": \"prop_get:NVNF\"\n    },\n    {\n      \"name\": \"prop_get:NVNT\"\n    },\n    {\n      \"name\": \"prop_get:NVNTF\"\n    },\n    {\n      \"name\": \"prop_get:NeN\"\n    },\n    {\n      \"name\": \"prop_get:NeNF\"\n    },\n    {\n      \"name\": \"prop_get:NeNT\"\n    },\n    {\n      \"name\": \"prop_get:NeNTF\"\n    },\n    {\n      \"name\": \"prop_get:NnN\"\n    },\n    {\n      \"name\": \"prop_get:NnNF\"\n    },\n    {\n      \"name\": \"prop_get:NnNT\"\n    },\n    {\n      \"name\": \"prop_get:NnNTF\"\n    },\n    {\n      \"name\": \"prop_get:NoN\"\n    },\n    {\n      \"name\": \"prop_get:NoNF\"\n    },\n    {\n      \"name\": \"prop_get:NoNT\"\n    },\n    {\n      \"name\": \"prop_get:NoNTF\"\n    },\n    {\n      \"name\": \"prop_get:NvN\"\n    },\n    {\n      \"name\": \"prop_get:NvNF\"\n    },\n    {\n      \"name\": \"prop_get:NvNT\"\n    },\n    {\n      \"name\": \"prop_get:NvNTF\"\n    },\n    {\n      \"name\": \"prop_get:cVN\"\n    },\n    {\n      \"name\": \"prop_get:cVNF\"\n    },\n    {\n      \"name\": \"prop_get:cVNT\"\n    },\n    {\n      \"name\": \"prop_get:cVNTF\"\n    },\n    {\n      \"name\": \"prop_get:ceN\"\n    },\n    {\n      \"name\": \"prop_get:ceNF\"\n    },\n    {\n      \"name\": \"prop_get:ceNT\"\n    },\n    {\n      \"name\": \"prop_get:ceNTF\"\n    },\n    {\n      \"name\": \"prop_get:cnN\"\n    },\n    {\n      \"name\": \"prop_get:cnNF\"\n    },\n    {\n      \"name\": \"prop_get:cnNT\"\n    },\n    {\n      \"name\": \"prop_get:cnNTF\"\n    },\n    {\n      \"name\": \"prop_get:cnc\"\n    },\n    {\n      \"name\": \"prop_get:cncF\"\n    },\n    {\n      \"name\": \"prop_get:cncT\"\n    },\n    {\n      \"name\": \"prop_get:cncTF\"\n    },\n    {\n      \"name\": \"prop_get:coN\"\n    },\n    {\n      \"name\": \"prop_get:coNF\"\n    },\n    {\n      \"name\": \"prop_get:coNT\"\n    },\n    {\n      \"name\": \"prop_get:coNTF\"\n    },\n    {\n      \"name\": \"prop_get:cvN\"\n    },\n    {\n      \"name\": \"prop_get:cvNF\"\n    },\n    {\n      \"name\": \"prop_get:cvNT\"\n    },\n    {\n      \"name\": \"prop_get:cvNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:NVN\"\n    },\n    {\n      \"name\": \"prop_gpop:NVNF\"\n    },\n    {\n      \"name\": \"prop_gpop:NVNT\"\n    },\n    {\n      \"name\": \"prop_gpop:NVNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:NnN\"\n    },\n    {\n      \"name\": \"prop_gpop:NnNF\"\n    },\n    {\n      \"name\": \"prop_gpop:NnNT\"\n    },\n    {\n      \"name\": \"prop_gpop:NnNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:NoN\"\n    },\n    {\n      \"name\": \"prop_gpop:NoNF\"\n    },\n    {\n      \"name\": \"prop_gpop:NoNT\"\n    },\n    {\n      \"name\": \"prop_gpop:NoNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:cVN\"\n    },\n    {\n      \"name\": \"prop_gpop:cVNF\"\n    },\n    {\n      \"name\": \"prop_gpop:cVNT\"\n    },\n    {\n      \"name\": \"prop_gpop:cVNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:cnN\"\n    },\n    {\n      \"name\": \"prop_gpop:cnNF\"\n    },\n    {\n      \"name\": \"prop_gpop:cnNT\"\n    },\n    {\n      \"name\": \"prop_gpop:cnNTF\"\n    },\n    {\n      \"name\": \"prop_gpop:coN\"\n    },\n    {\n      \"name\": \"prop_gpop:coNF\"\n    },\n    {\n      \"name\": \"prop_gpop:coNT\"\n    },\n    {\n      \"name\": \"prop_gpop:coNTF\"\n    },\n    {\n      \"name\": \"prop_gput:NVV\"\n    },\n    {\n      \"name\": \"prop_gput:NVe\"\n    },\n    {\n      \"name\": \"prop_gput:NVn\"\n    },\n    {\n      \"name\": \"prop_gput:NVv\"\n    },\n    {\n      \"name\": \"prop_gput:NeV\"\n    },\n    {\n      \"name\": \"prop_gput:Nee\"\n    },\n    {\n      \"name\": \"prop_gput:Nen\"\n    },\n    {\n      \"name\": \"prop_gput:Nev\"\n    },\n    {\n      \"name\": \"prop_gput:NnV\"\n    },\n    {\n      \"name\": \"prop_gput:Nne\"\n    },\n    {\n      \"name\": \"prop_gput:Nnn\"\n    },\n    {\n      \"name\": \"prop_gput:Nno\"\n    },\n    {\n      \"name\": \"prop_gput:Nnv\"\n    },\n    {\n      \"name\": \"prop_gput:Non\"\n    },\n    {\n      \"name\": \"prop_gput:Noo\"\n    },\n    {\n      \"name\": \"prop_gput:NvV\"\n    },\n    {\n      \"name\": \"prop_gput:Nve\"\n    },\n    {\n      \"name\": \"prop_gput:Nvn\"\n    },\n    {\n      \"name\": \"prop_gput:Nvv\"\n    },\n    {\n      \"name\": \"prop_gput:cVV\"\n    },\n    {\n      \"name\": \"prop_gput:cVe\"\n    },\n    {\n      \"name\": \"prop_gput:cVn\"\n    },\n    {\n      \"name\": \"prop_gput:cVv\"\n    },\n    {\n      \"name\": \"prop_gput:ceV\"\n    },\n    {\n      \"name\": \"prop_gput:cee\"\n    },\n    {\n      \"name\": \"prop_gput:cen\"\n    },\n    {\n      \"name\": \"prop_gput:cev\"\n    },\n    {\n      \"name\": \"prop_gput:cnV\"\n    },\n    {\n      \"name\": \"prop_gput:cne\"\n    },\n    {\n      \"name\": \"prop_gput:cnn\"\n    },\n    {\n      \"name\": \"prop_gput:cno\"\n    },\n    {\n      \"name\": \"prop_gput:cnv\"\n    },\n    {\n      \"name\": \"prop_gput:con\"\n    },\n    {\n      \"name\": \"prop_gput:coo\"\n    },\n    {\n      \"name\": \"prop_gput:cvV\"\n    },\n    {\n      \"name\": \"prop_gput:cve\"\n    },\n    {\n      \"name\": \"prop_gput:cvn\"\n    },\n    {\n      \"name\": \"prop_gput:cvv\"\n    },\n    {\n      \"name\": \"prop_gput_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_gput_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NVV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NVe\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NVn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NVv\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NeV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nee\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nen\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nev\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NnV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nne\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nnn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nnv\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:NvV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nve\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nvn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:Nvv\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cVV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cVe\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cVn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cVv\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:ceV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cee\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cen\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cev\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cnV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cne\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cnn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cnv\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cvV\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cve\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cvn\"\n    },\n    {\n      \"name\": \"prop_gput_if_not_in:cvv\"\n    },\n    {\n      \"name\": \"prop_gremove:NV\"\n    },\n    {\n      \"name\": \"prop_gremove:Ne\"\n    },\n    {\n      \"name\": \"prop_gremove:Nn\"\n    },\n    {\n      \"name\": \"prop_gremove:cV\"\n    },\n    {\n      \"name\": \"prop_gremove:ce\"\n    },\n    {\n      \"name\": \"prop_gremove:cn\"\n    },\n    {\n      \"name\": \"prop_gset_eq:NN\"\n    },\n    {\n      \"name\": \"prop_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"prop_gset_eq:cN\"\n    },\n    {\n      \"name\": \"prop_gset_eq:cc\"\n    },\n    {\n      \"name\": \"prop_gset_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_gset_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_if_empty:NF\"\n    },\n    {\n      \"name\": \"prop_if_empty:NT\"\n    },\n    {\n      \"name\": \"prop_if_empty:NTF\"\n    },\n    {\n      \"name\": \"prop_if_empty:cF\"\n    },\n    {\n      \"name\": \"prop_if_empty:cT\"\n    },\n    {\n      \"name\": \"prop_if_empty:cTF\"\n    },\n    {\n      \"name\": \"prop_if_empty_p:N\"\n    },\n    {\n      \"name\": \"prop_if_empty_p:c\"\n    },\n    {\n      \"name\": \"prop_if_exist:NF\"\n    },\n    {\n      \"name\": \"prop_if_exist:NT\"\n    },\n    {\n      \"name\": \"prop_if_exist:NTF\"\n    },\n    {\n      \"name\": \"prop_if_exist:cF\"\n    },\n    {\n      \"name\": \"prop_if_exist:cT\"\n    },\n    {\n      \"name\": \"prop_if_exist:cTF\"\n    },\n    {\n      \"name\": \"prop_if_exist_p:N\"\n    },\n    {\n      \"name\": \"prop_if_exist_p:c\"\n    },\n    {\n      \"name\": \"prop_if_in:NVF\"\n    },\n    {\n      \"name\": \"prop_if_in:NVT\"\n    },\n    {\n      \"name\": \"prop_if_in:NVTF\"\n    },\n    {\n      \"name\": \"prop_if_in:NeF\"\n    },\n    {\n      \"name\": \"prop_if_in:NeT\"\n    },\n    {\n      \"name\": \"prop_if_in:NeTF\"\n    },\n    {\n      \"name\": \"prop_if_in:NnF\"\n    },\n    {\n      \"name\": \"prop_if_in:NnT\"\n    },\n    {\n      \"name\": \"prop_if_in:NnTF\"\n    },\n    {\n      \"name\": \"prop_if_in:NoF\"\n    },\n    {\n      \"name\": \"prop_if_in:NoT\"\n    },\n    {\n      \"name\": \"prop_if_in:NoTF\"\n    },\n    {\n      \"name\": \"prop_if_in:cVF\"\n    },\n    {\n      \"name\": \"prop_if_in:cVT\"\n    },\n    {\n      \"name\": \"prop_if_in:cVTF\"\n    },\n    {\n      \"name\": \"prop_if_in:ceF\"\n    },\n    {\n      \"name\": \"prop_if_in:ceT\"\n    },\n    {\n      \"name\": \"prop_if_in:ceTF\"\n    },\n    {\n      \"name\": \"prop_if_in:cnF\"\n    },\n    {\n      \"name\": \"prop_if_in:cnT\"\n    },\n    {\n      \"name\": \"prop_if_in:cnTF\"\n    },\n    {\n      \"name\": \"prop_if_in:coF\"\n    },\n    {\n      \"name\": \"prop_if_in:coT\"\n    },\n    {\n      \"name\": \"prop_if_in:coTF\"\n    },\n    {\n      \"name\": \"prop_if_in_p:NV\"\n    },\n    {\n      \"name\": \"prop_if_in_p:Ne\"\n    },\n    {\n      \"name\": \"prop_if_in_p:Nn\"\n    },\n    {\n      \"name\": \"prop_if_in_p:No\"\n    },\n    {\n      \"name\": \"prop_if_in_p:cV\"\n    },\n    {\n      \"name\": \"prop_if_in_p:ce\"\n    },\n    {\n      \"name\": \"prop_if_in_p:cn\"\n    },\n    {\n      \"name\": \"prop_if_in_p:co\"\n    },\n    {\n      \"name\": \"prop_item:NV\"\n    },\n    {\n      \"name\": \"prop_item:Ne\"\n    },\n    {\n      \"name\": \"prop_item:Nn\"\n    },\n    {\n      \"name\": \"prop_item:No\"\n    },\n    {\n      \"name\": \"prop_item:cV\"\n    },\n    {\n      \"name\": \"prop_item:ce\"\n    },\n    {\n      \"name\": \"prop_item:cn\"\n    },\n    {\n      \"name\": \"prop_item:co\"\n    },\n    {\n      \"name\": \"prop_log:N\"\n    },\n    {\n      \"name\": \"prop_log:c\"\n    },\n    {\n      \"name\": \"prop_make_flat:N\"\n    },\n    {\n      \"name\": \"prop_make_flat:c\"\n    },\n    {\n      \"name\": \"prop_make_linked:N\"\n    },\n    {\n      \"name\": \"prop_make_linked:c\"\n    },\n    {\n      \"name\": \"prop_map_break:\"\n    },\n    {\n      \"name\": \"prop_map_break:n\"\n    },\n    {\n      \"name\": \"prop_map_function:NN\"\n    },\n    {\n      \"name\": \"prop_map_function:cN\"\n    },\n    {\n      \"name\": \"prop_map_inline:Nn\"\n    },\n    {\n      \"name\": \"prop_map_inline:cn\"\n    },\n    {\n      \"name\": \"prop_map_tokens:Nn\"\n    },\n    {\n      \"name\": \"prop_map_tokens:cn\"\n    },\n    {\n      \"name\": \"prop_new:N\"\n    },\n    {\n      \"name\": \"prop_new:c\"\n    },\n    {\n      \"name\": \"prop_new_linked:N\"\n    },\n    {\n      \"name\": \"prop_new_linked:c\"\n    },\n    {\n      \"name\": \"prop_pop:NVN\"\n    },\n    {\n      \"name\": \"prop_pop:NVNF\"\n    },\n    {\n      \"name\": \"prop_pop:NVNT\"\n    },\n    {\n      \"name\": \"prop_pop:NVNTF\"\n    },\n    {\n      \"name\": \"prop_pop:NnN\"\n    },\n    {\n      \"name\": \"prop_pop:NnNF\"\n    },\n    {\n      \"name\": \"prop_pop:NnNT\"\n    },\n    {\n      \"name\": \"prop_pop:NnNTF\"\n    },\n    {\n      \"name\": \"prop_pop:NoN\"\n    },\n    {\n      \"name\": \"prop_pop:NoNF\"\n    },\n    {\n      \"name\": \"prop_pop:NoNT\"\n    },\n    {\n      \"name\": \"prop_pop:NoNTF\"\n    },\n    {\n      \"name\": \"prop_pop:cVN\"\n    },\n    {\n      \"name\": \"prop_pop:cVNF\"\n    },\n    {\n      \"name\": \"prop_pop:cVNT\"\n    },\n    {\n      \"name\": \"prop_pop:cVNTF\"\n    },\n    {\n      \"name\": \"prop_pop:cnN\"\n    },\n    {\n      \"name\": \"prop_pop:cnNF\"\n    },\n    {\n      \"name\": \"prop_pop:cnNT\"\n    },\n    {\n      \"name\": \"prop_pop:cnNTF\"\n    },\n    {\n      \"name\": \"prop_pop:coN\"\n    },\n    {\n      \"name\": \"prop_pop:coNF\"\n    },\n    {\n      \"name\": \"prop_pop:coNT\"\n    },\n    {\n      \"name\": \"prop_pop:coNTF\"\n    },\n    {\n      \"name\": \"prop_put:NVV\"\n    },\n    {\n      \"name\": \"prop_put:NVe\"\n    },\n    {\n      \"name\": \"prop_put:NVn\"\n    },\n    {\n      \"name\": \"prop_put:NVv\"\n    },\n    {\n      \"name\": \"prop_put:NeV\"\n    },\n    {\n      \"name\": \"prop_put:Nee\"\n    },\n    {\n      \"name\": \"prop_put:Nen\"\n    },\n    {\n      \"name\": \"prop_put:Nev\"\n    },\n    {\n      \"name\": \"prop_put:NnV\"\n    },\n    {\n      \"name\": \"prop_put:Nne\"\n    },\n    {\n      \"name\": \"prop_put:Nnn\"\n    },\n    {\n      \"name\": \"prop_put:Nno\"\n    },\n    {\n      \"name\": \"prop_put:Nnv\"\n    },\n    {\n      \"name\": \"prop_put:Non\"\n    },\n    {\n      \"name\": \"prop_put:Noo\"\n    },\n    {\n      \"name\": \"prop_put:NvV\"\n    },\n    {\n      \"name\": \"prop_put:Nve\"\n    },\n    {\n      \"name\": \"prop_put:Nvn\"\n    },\n    {\n      \"name\": \"prop_put:Nvv\"\n    },\n    {\n      \"name\": \"prop_put:cVV\"\n    },\n    {\n      \"name\": \"prop_put:cVe\"\n    },\n    {\n      \"name\": \"prop_put:cVn\"\n    },\n    {\n      \"name\": \"prop_put:cVv\"\n    },\n    {\n      \"name\": \"prop_put:ceV\"\n    },\n    {\n      \"name\": \"prop_put:cee\"\n    },\n    {\n      \"name\": \"prop_put:cen\"\n    },\n    {\n      \"name\": \"prop_put:cev\"\n    },\n    {\n      \"name\": \"prop_put:cnV\"\n    },\n    {\n      \"name\": \"prop_put:cne\"\n    },\n    {\n      \"name\": \"prop_put:cnn\"\n    },\n    {\n      \"name\": \"prop_put:cno\"\n    },\n    {\n      \"name\": \"prop_put:cnv\"\n    },\n    {\n      \"name\": \"prop_put:con\"\n    },\n    {\n      \"name\": \"prop_put:coo\"\n    },\n    {\n      \"name\": \"prop_put:cvV\"\n    },\n    {\n      \"name\": \"prop_put:cve\"\n    },\n    {\n      \"name\": \"prop_put:cvn\"\n    },\n    {\n      \"name\": \"prop_put:cvv\"\n    },\n    {\n      \"name\": \"prop_put_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_put_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NVV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NVe\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NVn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NVv\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NeV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nee\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nen\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nev\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NnV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nne\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nnn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nnv\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:NvV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nve\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nvn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:Nvv\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cVV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cVe\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cVn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cVv\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:ceV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cee\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cen\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cev\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cnV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cne\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cnn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cnv\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cvV\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cve\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cvn\"\n    },\n    {\n      \"name\": \"prop_put_if_not_in:cvv\"\n    },\n    {\n      \"name\": \"prop_remove:NV\"\n    },\n    {\n      \"name\": \"prop_remove:Ne\"\n    },\n    {\n      \"name\": \"prop_remove:Nn\"\n    },\n    {\n      \"name\": \"prop_remove:cV\"\n    },\n    {\n      \"name\": \"prop_remove:ce\"\n    },\n    {\n      \"name\": \"prop_remove:cn\"\n    },\n    {\n      \"name\": \"prop_set_eq:NN\"\n    },\n    {\n      \"name\": \"prop_set_eq:Nc\"\n    },\n    {\n      \"name\": \"prop_set_eq:cN\"\n    },\n    {\n      \"name\": \"prop_set_eq:cc\"\n    },\n    {\n      \"name\": \"prop_set_from_keyval:Nn\"\n    },\n    {\n      \"name\": \"prop_set_from_keyval:cn\"\n    },\n    {\n      \"name\": \"prop_show:N\"\n    },\n    {\n      \"name\": \"prop_show:c\"\n    },\n    {\n      \"name\": \"prop_to_keyval:N\"\n    },\n    {\n      \"name\": \"q_mark\"\n    },\n    {\n      \"name\": \"q_nil\"\n    },\n    {\n      \"name\": \"q_no_value\"\n    },\n    {\n      \"name\": \"q_recursion_stop\"\n    },\n    {\n      \"name\": \"q_recursion_tail\"\n    },\n    {\n      \"name\": \"q_stop\"\n    },\n    {\n      \"name\": \"quark_if_nil:NF\"\n    },\n    {\n      \"name\": \"quark_if_nil:NT\"\n    },\n    {\n      \"name\": \"quark_if_nil:NTF\"\n    },\n    {\n      \"name\": \"quark_if_nil:VF\"\n    },\n    {\n      \"name\": \"quark_if_nil:VT\"\n    },\n    {\n      \"name\": \"quark_if_nil:VTF\"\n    },\n    {\n      \"name\": \"quark_if_nil:nF\"\n    },\n    {\n      \"name\": \"quark_if_nil:nT\"\n    },\n    {\n      \"name\": \"quark_if_nil:nTF\"\n    },\n    {\n      \"name\": \"quark_if_nil:oF\"\n    },\n    {\n      \"name\": \"quark_if_nil:oT\"\n    },\n    {\n      \"name\": \"quark_if_nil:oTF\"\n    },\n    {\n      \"name\": \"quark_if_nil_p:N\"\n    },\n    {\n      \"name\": \"quark_if_nil_p:V\"\n    },\n    {\n      \"name\": \"quark_if_nil_p:n\"\n    },\n    {\n      \"name\": \"quark_if_nil_p:o\"\n    },\n    {\n      \"name\": \"quark_if_no_value:NF\"\n    },\n    {\n      \"name\": \"quark_if_no_value:NT\"\n    },\n    {\n      \"name\": \"quark_if_no_value:NTF\"\n    },\n    {\n      \"name\": \"quark_if_no_value:cF\"\n    },\n    {\n      \"name\": \"quark_if_no_value:cT\"\n    },\n    {\n      \"name\": \"quark_if_no_value:cTF\"\n    },\n    {\n      \"name\": \"quark_if_no_value:nF\"\n    },\n    {\n      \"name\": \"quark_if_no_value:nT\"\n    },\n    {\n      \"name\": \"quark_if_no_value:nTF\"\n    },\n    {\n      \"name\": \"quark_if_no_value_p:N\"\n    },\n    {\n      \"name\": \"quark_if_no_value_p:c\"\n    },\n    {\n      \"name\": \"quark_if_no_value_p:n\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_break:NN\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_break:nN\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop:N\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop:n\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop:o\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop_do:Nn\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop_do:nn\"\n    },\n    {\n      \"name\": \"quark_if_recursion_tail_stop_do:on\"\n    },\n    {\n      \"name\": \"quark_new:N\"\n    },\n    {\n      \"name\": \"regex_const:Nn\"\n    },\n    {\n      \"name\": \"regex_count:NVN\"\n    },\n    {\n      \"name\": \"regex_count:NnN\"\n    },\n    {\n      \"name\": \"regex_count:nVN\"\n    },\n    {\n      \"name\": \"regex_count:nnN\"\n    },\n    {\n      \"name\": \"regex_extract_all:NVN\"\n    },\n    {\n      \"name\": \"regex_extract_all:NVNF\"\n    },\n    {\n      \"name\": \"regex_extract_all:NVNT\"\n    },\n    {\n      \"name\": \"regex_extract_all:NVNTF\"\n    },\n    {\n      \"name\": \"regex_extract_all:NnN\"\n    },\n    {\n      \"name\": \"regex_extract_all:NnNF\"\n    },\n    {\n      \"name\": \"regex_extract_all:NnNT\"\n    },\n    {\n      \"name\": \"regex_extract_all:NnNTF\"\n    },\n    {\n      \"name\": \"regex_extract_all:nVN\"\n    },\n    {\n      \"name\": \"regex_extract_all:nVNF\"\n    },\n    {\n      \"name\": \"regex_extract_all:nVNT\"\n    },\n    {\n      \"name\": \"regex_extract_all:nVNTF\"\n    },\n    {\n      \"name\": \"regex_extract_all:nnN\"\n    },\n    {\n      \"name\": \"regex_extract_all:nnNF\"\n    },\n    {\n      \"name\": \"regex_extract_all:nnNT\"\n    },\n    {\n      \"name\": \"regex_extract_all:nnNTF\"\n    },\n    {\n      \"name\": \"regex_extract_once:NVN\"\n    },\n    {\n      \"name\": \"regex_extract_once:NVNF\"\n    },\n    {\n      \"name\": \"regex_extract_once:NVNT\"\n    },\n    {\n      \"name\": \"regex_extract_once:NVNTF\"\n    },\n    {\n      \"name\": \"regex_extract_once:NnN\"\n    },\n    {\n      \"name\": \"regex_extract_once:NnNF\"\n    },\n    {\n      \"name\": \"regex_extract_once:NnNT\"\n    },\n    {\n      \"name\": \"regex_extract_once:NnNTF\"\n    },\n    {\n      \"name\": \"regex_extract_once:nVN\"\n    },\n    {\n      \"name\": \"regex_extract_once:nVNF\"\n    },\n    {\n      \"name\": \"regex_extract_once:nVNT\"\n    },\n    {\n      \"name\": \"regex_extract_once:nVNTF\"\n    },\n    {\n      \"name\": \"regex_extract_once:nnN\"\n    },\n    {\n      \"name\": \"regex_extract_once:nnNF\"\n    },\n    {\n      \"name\": \"regex_extract_once:nnNT\"\n    },\n    {\n      \"name\": \"regex_extract_once:nnNTF\"\n    },\n    {\n      \"name\": \"regex_gset:Nn\"\n    },\n    {\n      \"name\": \"regex_log:N\"\n    },\n    {\n      \"name\": \"regex_log:n\"\n    },\n    {\n      \"name\": \"regex_match:NVF\"\n    },\n    {\n      \"name\": \"regex_match:NVT\"\n    },\n    {\n      \"name\": \"regex_match:NVTF\"\n    },\n    {\n      \"name\": \"regex_match:NnF\"\n    },\n    {\n      \"name\": \"regex_match:NnT\"\n    },\n    {\n      \"name\": \"regex_match:NnTF\"\n    },\n    {\n      \"name\": \"regex_match:nVF\"\n    },\n    {\n      \"name\": \"regex_match:nVT\"\n    },\n    {\n      \"name\": \"regex_match:nVTF\"\n    },\n    {\n      \"name\": \"regex_match:nnF\"\n    },\n    {\n      \"name\": \"regex_match:nnT\"\n    },\n    {\n      \"name\": \"regex_match:nnTF\"\n    },\n    {\n      \"name\": \"regex_match_case:nn\"\n    },\n    {\n      \"name\": \"regex_match_case:nnF\"\n    },\n    {\n      \"name\": \"regex_match_case:nnT\"\n    },\n    {\n      \"name\": \"regex_match_case:nnTF\"\n    },\n    {\n      \"name\": \"regex_new:N\"\n    },\n    {\n      \"name\": \"regex_replace_all:NVN\"\n    },\n    {\n      \"name\": \"regex_replace_all:NVNF\"\n    },\n    {\n      \"name\": \"regex_replace_all:NVNT\"\n    },\n    {\n      \"name\": \"regex_replace_all:NVNTF\"\n    },\n    {\n      \"name\": \"regex_replace_all:NnN\"\n    },\n    {\n      \"name\": \"regex_replace_all:NnNF\"\n    },\n    {\n      \"name\": \"regex_replace_all:NnNT\"\n    },\n    {\n      \"name\": \"regex_replace_all:NnNTF\"\n    },\n    {\n      \"name\": \"regex_replace_all:nVN\"\n    },\n    {\n      \"name\": \"regex_replace_all:nVNF\"\n    },\n    {\n      \"name\": \"regex_replace_all:nVNT\"\n    },\n    {\n      \"name\": \"regex_replace_all:nVNTF\"\n    },\n    {\n      \"name\": \"regex_replace_all:nnN\"\n    },\n    {\n      \"name\": \"regex_replace_all:nnNF\"\n    },\n    {\n      \"name\": \"regex_replace_all:nnNT\"\n    },\n    {\n      \"name\": \"regex_replace_all:nnNTF\"\n    },\n    {\n      \"name\": \"regex_replace_case_all:nN\"\n    },\n    {\n      \"name\": \"regex_replace_case_all:nNF\"\n    },\n    {\n      \"name\": \"regex_replace_case_all:nNT\"\n    },\n    {\n      \"name\": \"regex_replace_case_all:nNTF\"\n    },\n    {\n      \"name\": \"regex_replace_case_once:nN\"\n    },\n    {\n      \"name\": \"regex_replace_case_once:nNF\"\n    },\n    {\n      \"name\": \"regex_replace_case_once:nNT\"\n    },\n    {\n      \"name\": \"regex_replace_case_once:nNTF\"\n    },\n    {\n      \"name\": \"regex_replace_once:NVN\"\n    },\n    {\n      \"name\": \"regex_replace_once:NVNF\"\n    },\n    {\n      \"name\": \"regex_replace_once:NVNT\"\n    },\n    {\n      \"name\": \"regex_replace_once:NVNTF\"\n    },\n    {\n      \"name\": \"regex_replace_once:NnN\"\n    },\n    {\n      \"name\": \"regex_replace_once:NnNF\"\n    },\n    {\n      \"name\": \"regex_replace_once:NnNT\"\n    },\n    {\n      \"name\": \"regex_replace_once:NnNTF\"\n    },\n    {\n      \"name\": \"regex_replace_once:nVN\"\n    },\n    {\n      \"name\": \"regex_replace_once:nVNF\"\n    },\n    {\n      \"name\": \"regex_replace_once:nVNT\"\n    },\n    {\n      \"name\": \"regex_replace_once:nVNTF\"\n    },\n    {\n      \"name\": \"regex_replace_once:nnN\"\n    },\n    {\n      \"name\": \"regex_replace_once:nnNF\"\n    },\n    {\n      \"name\": \"regex_replace_once:nnNT\"\n    },\n    {\n      \"name\": \"regex_replace_once:nnNTF\"\n    },\n    {\n      \"name\": \"regex_set:Nn\"\n    },\n    {\n      \"name\": \"regex_show:N\"\n    },\n    {\n      \"name\": \"regex_show:n\"\n    },\n    {\n      \"name\": \"regex_split:NVN\"\n    },\n    {\n      \"name\": \"regex_split:NVNF\"\n    },\n    {\n      \"name\": \"regex_split:NVNT\"\n    },\n    {\n      \"name\": \"regex_split:NVNTF\"\n    },\n    {\n      \"name\": \"regex_split:NnN\"\n    },\n    {\n      \"name\": \"regex_split:NnNF\"\n    },\n    {\n      \"name\": \"regex_split:NnNT\"\n    },\n    {\n      \"name\": \"regex_split:NnNTF\"\n    },\n    {\n      \"name\": \"regex_split:nVN\"\n    },\n    {\n      \"name\": \"regex_split:nVNF\"\n    },\n    {\n      \"name\": \"regex_split:nVNT\"\n    },\n    {\n      \"name\": \"regex_split:nVNTF\"\n    },\n    {\n      \"name\": \"regex_split:nnN\"\n    },\n    {\n      \"name\": \"regex_split:nnNF\"\n    },\n    {\n      \"name\": \"regex_split:nnNT\"\n    },\n    {\n      \"name\": \"regex_split:nnNTF\"\n    },\n    {\n      \"name\": \"reverse_if:N\"\n    },\n    {\n      \"name\": \"s_stop\"\n    },\n    {\n      \"name\": \"scan_new:N\"\n    },\n    {\n      \"name\": \"scan_stop:\"\n    },\n    {\n      \"name\": \"seq_clear:N\"\n    },\n    {\n      \"name\": \"seq_clear:c\"\n    },\n    {\n      \"name\": \"seq_clear_new:N\"\n    },\n    {\n      \"name\": \"seq_clear_new:c\"\n    },\n    {\n      \"name\": \"seq_concat:NNN\"\n    },\n    {\n      \"name\": \"seq_concat:ccc\"\n    },\n    {\n      \"name\": \"seq_const_from_clist:Nn\"\n    },\n    {\n      \"name\": \"seq_const_from_clist:cn\"\n    },\n    {\n      \"name\": \"seq_count:N\"\n    },\n    {\n      \"name\": \"seq_count:c\"\n    },\n    {\n      \"name\": \"seq_gclear:N\"\n    },\n    {\n      \"name\": \"seq_gclear:c\"\n    },\n    {\n      \"name\": \"seq_gclear_new:N\"\n    },\n    {\n      \"name\": \"seq_gclear_new:c\"\n    },\n    {\n      \"name\": \"seq_gconcat:NNN\"\n    },\n    {\n      \"name\": \"seq_gconcat:ccc\"\n    },\n    {\n      \"name\": \"seq_get:NN\"\n    },\n    {\n      \"name\": \"seq_get:NNF\"\n    },\n    {\n      \"name\": \"seq_get:NNT\"\n    },\n    {\n      \"name\": \"seq_get:NNTF\"\n    },\n    {\n      \"name\": \"seq_get:cN\"\n    },\n    {\n      \"name\": \"seq_get:cNF\"\n    },\n    {\n      \"name\": \"seq_get:cNT\"\n    },\n    {\n      \"name\": \"seq_get:cNTF\"\n    },\n    {\n      \"name\": \"seq_get_left:NN\"\n    },\n    {\n      \"name\": \"seq_get_left:NNF\"\n    },\n    {\n      \"name\": \"seq_get_left:NNT\"\n    },\n    {\n      \"name\": \"seq_get_left:NNTF\"\n    },\n    {\n      \"name\": \"seq_get_left:cN\"\n    },\n    {\n      \"name\": \"seq_get_left:cNF\"\n    },\n    {\n      \"name\": \"seq_get_left:cNT\"\n    },\n    {\n      \"name\": \"seq_get_left:cNTF\"\n    },\n    {\n      \"name\": \"seq_get_right:NN\"\n    },\n    {\n      \"name\": \"seq_get_right:NNF\"\n    },\n    {\n      \"name\": \"seq_get_right:NNT\"\n    },\n    {\n      \"name\": \"seq_get_right:NNTF\"\n    },\n    {\n      \"name\": \"seq_get_right:cN\"\n    },\n    {\n      \"name\": \"seq_get_right:cNF\"\n    },\n    {\n      \"name\": \"seq_get_right:cNT\"\n    },\n    {\n      \"name\": \"seq_get_right:cNTF\"\n    },\n    {\n      \"name\": \"seq_gpop:NN\"\n    },\n    {\n      \"name\": \"seq_gpop:NNF\"\n    },\n    {\n      \"name\": \"seq_gpop:NNT\"\n    },\n    {\n      \"name\": \"seq_gpop:NNTF\"\n    },\n    {\n      \"name\": \"seq_gpop:cN\"\n    },\n    {\n      \"name\": \"seq_gpop:cNF\"\n    },\n    {\n      \"name\": \"seq_gpop:cNT\"\n    },\n    {\n      \"name\": \"seq_gpop:cNTF\"\n    },\n    {\n      \"name\": \"seq_gpop_left:NN\"\n    },\n    {\n      \"name\": \"seq_gpop_left:NNF\"\n    },\n    {\n      \"name\": \"seq_gpop_left:NNT\"\n    },\n    {\n      \"name\": \"seq_gpop_left:NNTF\"\n    },\n    {\n      \"name\": \"seq_gpop_left:cN\"\n    },\n    {\n      \"name\": \"seq_gpop_left:cNF\"\n    },\n    {\n      \"name\": \"seq_gpop_left:cNT\"\n    },\n    {\n      \"name\": \"seq_gpop_left:cNTF\"\n    },\n    {\n      \"name\": \"seq_gpop_right:NN\"\n    },\n    {\n      \"name\": \"seq_gpop_right:NNF\"\n    },\n    {\n      \"name\": \"seq_gpop_right:NNT\"\n    },\n    {\n      \"name\": \"seq_gpop_right:NNTF\"\n    },\n    {\n      \"name\": \"seq_gpop_right:cN\"\n    },\n    {\n      \"name\": \"seq_gpop_right:cNF\"\n    },\n    {\n      \"name\": \"seq_gpop_right:cNT\"\n    },\n    {\n      \"name\": \"seq_gpop_right:cNTF\"\n    },\n    {\n      \"name\": \"seq_gpush:NV\"\n    },\n    {\n      \"name\": \"seq_gpush:Ne\"\n    },\n    {\n      \"name\": \"seq_gpush:Nn\"\n    },\n    {\n      \"name\": \"seq_gpush:No\"\n    },\n    {\n      \"name\": \"seq_gpush:Nv\"\n    },\n    {\n      \"name\": \"seq_gpush:cV\"\n    },\n    {\n      \"name\": \"seq_gpush:ce\"\n    },\n    {\n      \"name\": \"seq_gpush:cn\"\n    },\n    {\n      \"name\": \"seq_gpush:co\"\n    },\n    {\n      \"name\": \"seq_gpush:cv\"\n    },\n    {\n      \"name\": \"seq_gput_left:NV\"\n    },\n    {\n      \"name\": \"seq_gput_left:Ne\"\n    },\n    {\n      \"name\": \"seq_gput_left:Nn\"\n    },\n    {\n      \"name\": \"seq_gput_left:No\"\n    },\n    {\n      \"name\": \"seq_gput_left:Nv\"\n    },\n    {\n      \"name\": \"seq_gput_left:cV\"\n    },\n    {\n      \"name\": \"seq_gput_left:ce\"\n    },\n    {\n      \"name\": \"seq_gput_left:cn\"\n    },\n    {\n      \"name\": \"seq_gput_left:co\"\n    },\n    {\n      \"name\": \"seq_gput_left:cv\"\n    },\n    {\n      \"name\": \"seq_gput_right:NV\"\n    },\n    {\n      \"name\": \"seq_gput_right:Ne\"\n    },\n    {\n      \"name\": \"seq_gput_right:Nn\"\n    },\n    {\n      \"name\": \"seq_gput_right:No\"\n    },\n    {\n      \"name\": \"seq_gput_right:Nv\"\n    },\n    {\n      \"name\": \"seq_gput_right:cV\"\n    },\n    {\n      \"name\": \"seq_gput_right:ce\"\n    },\n    {\n      \"name\": \"seq_gput_right:cn\"\n    },\n    {\n      \"name\": \"seq_gput_right:co\"\n    },\n    {\n      \"name\": \"seq_gput_right:cv\"\n    },\n    {\n      \"name\": \"seq_gremove_all:NV\"\n    },\n    {\n      \"name\": \"seq_gremove_all:Ne\"\n    },\n    {\n      \"name\": \"seq_gremove_all:Nn\"\n    },\n    {\n      \"name\": \"seq_gremove_all:cV\"\n    },\n    {\n      \"name\": \"seq_gremove_all:ce\"\n    },\n    {\n      \"name\": \"seq_gremove_all:cn\"\n    },\n    {\n      \"name\": \"seq_gremove_duplicates:N\"\n    },\n    {\n      \"name\": \"seq_gremove_duplicates:c\"\n    },\n    {\n      \"name\": \"seq_greverse:N\"\n    },\n    {\n      \"name\": \"seq_greverse:c\"\n    },\n    {\n      \"name\": \"seq_gset_eq:NN\"\n    },\n    {\n      \"name\": \"seq_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"seq_gset_eq:cN\"\n    },\n    {\n      \"name\": \"seq_gset_eq:cc\"\n    },\n    {\n      \"name\": \"seq_gset_filter:NNn\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:NN\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:Nc\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:Nn\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:cN\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:cc\"\n    },\n    {\n      \"name\": \"seq_gset_from_clist:cn\"\n    },\n    {\n      \"name\": \"seq_gset_item:Nnn\"\n    },\n    {\n      \"name\": \"seq_gset_item:NnnF\"\n    },\n    {\n      \"name\": \"seq_gset_item:NnnT\"\n    },\n    {\n      \"name\": \"seq_gset_item:NnnTF\"\n    },\n    {\n      \"name\": \"seq_gset_item:cnn\"\n    },\n    {\n      \"name\": \"seq_gset_item:cnnF\"\n    },\n    {\n      \"name\": \"seq_gset_item:cnnT\"\n    },\n    {\n      \"name\": \"seq_gset_item:cnnTF\"\n    },\n    {\n      \"name\": \"seq_gset_map:NNn\"\n    },\n    {\n      \"name\": \"seq_gset_map_e:NNn\"\n    },\n    {\n      \"name\": \"seq_gset_split:NVV\"\n    },\n    {\n      \"name\": \"seq_gset_split:NVn\"\n    },\n    {\n      \"name\": \"seq_gset_split:Nee\"\n    },\n    {\n      \"name\": \"seq_gset_split:NnV\"\n    },\n    {\n      \"name\": \"seq_gset_split:Nne\"\n    },\n    {\n      \"name\": \"seq_gset_split:Nnn\"\n    },\n    {\n      \"name\": \"seq_gset_split_keep_spaces:NnV\"\n    },\n    {\n      \"name\": \"seq_gset_split_keep_spaces:Nnn\"\n    },\n    {\n      \"name\": \"seq_gshuffle:N\"\n    },\n    {\n      \"name\": \"seq_gshuffle:c\"\n    },\n    {\n      \"name\": \"seq_gsort:Nn\"\n    },\n    {\n      \"name\": \"seq_gsort:cn\"\n    },\n    {\n      \"name\": \"seq_if_empty:NF\"\n    },\n    {\n      \"name\": \"seq_if_empty:NT\"\n    },\n    {\n      \"name\": \"seq_if_empty:NTF\"\n    },\n    {\n      \"name\": \"seq_if_empty:cF\"\n    },\n    {\n      \"name\": \"seq_if_empty:cT\"\n    },\n    {\n      \"name\": \"seq_if_empty:cTF\"\n    },\n    {\n      \"name\": \"seq_if_empty_p:N\"\n    },\n    {\n      \"name\": \"seq_if_empty_p:c\"\n    },\n    {\n      \"name\": \"seq_if_exist:NF\"\n    },\n    {\n      \"name\": \"seq_if_exist:NT\"\n    },\n    {\n      \"name\": \"seq_if_exist:NTF\"\n    },\n    {\n      \"name\": \"seq_if_exist:cF\"\n    },\n    {\n      \"name\": \"seq_if_exist:cT\"\n    },\n    {\n      \"name\": \"seq_if_exist:cTF\"\n    },\n    {\n      \"name\": \"seq_if_exist_p:N\"\n    },\n    {\n      \"name\": \"seq_if_exist_p:c\"\n    },\n    {\n      \"name\": \"seq_if_in:NVF\"\n    },\n    {\n      \"name\": \"seq_if_in:NVT\"\n    },\n    {\n      \"name\": \"seq_if_in:NVTF\"\n    },\n    {\n      \"name\": \"seq_if_in:NeF\"\n    },\n    {\n      \"name\": \"seq_if_in:NeT\"\n    },\n    {\n      \"name\": \"seq_if_in:NeTF\"\n    },\n    {\n      \"name\": \"seq_if_in:NnF\"\n    },\n    {\n      \"name\": \"seq_if_in:NnT\"\n    },\n    {\n      \"name\": \"seq_if_in:NnTF\"\n    },\n    {\n      \"name\": \"seq_if_in:NoF\"\n    },\n    {\n      \"name\": \"seq_if_in:NoT\"\n    },\n    {\n      \"name\": \"seq_if_in:NoTF\"\n    },\n    {\n      \"name\": \"seq_if_in:NvF\"\n    },\n    {\n      \"name\": \"seq_if_in:NvT\"\n    },\n    {\n      \"name\": \"seq_if_in:NvTF\"\n    },\n    {\n      \"name\": \"seq_if_in:cVF\"\n    },\n    {\n      \"name\": \"seq_if_in:cVT\"\n    },\n    {\n      \"name\": \"seq_if_in:cVTF\"\n    },\n    {\n      \"name\": \"seq_if_in:ceF\"\n    },\n    {\n      \"name\": \"seq_if_in:ceT\"\n    },\n    {\n      \"name\": \"seq_if_in:ceTF\"\n    },\n    {\n      \"name\": \"seq_if_in:cnF\"\n    },\n    {\n      \"name\": \"seq_if_in:cnT\"\n    },\n    {\n      \"name\": \"seq_if_in:cnTF\"\n    },\n    {\n      \"name\": \"seq_if_in:coF\"\n    },\n    {\n      \"name\": \"seq_if_in:coT\"\n    },\n    {\n      \"name\": \"seq_if_in:coTF\"\n    },\n    {\n      \"name\": \"seq_if_in:cvF\"\n    },\n    {\n      \"name\": \"seq_if_in:cvT\"\n    },\n    {\n      \"name\": \"seq_if_in:cvTF\"\n    },\n    {\n      \"name\": \"seq_item:NV\"\n    },\n    {\n      \"name\": \"seq_item:Ne\"\n    },\n    {\n      \"name\": \"seq_item:Nn\"\n    },\n    {\n      \"name\": \"seq_item:cV\"\n    },\n    {\n      \"name\": \"seq_item:ce\"\n    },\n    {\n      \"name\": \"seq_item:cn\"\n    },\n    {\n      \"name\": \"seq_log:N\"\n    },\n    {\n      \"name\": \"seq_log:c\"\n    },\n    {\n      \"name\": \"seq_map_break:\"\n    },\n    {\n      \"name\": \"seq_map_break:n\"\n    },\n    {\n      \"name\": \"seq_map_function:NN\"\n    },\n    {\n      \"name\": \"seq_map_function:cN\"\n    },\n    {\n      \"name\": \"seq_map_indexed_function:NN\"\n    },\n    {\n      \"name\": \"seq_map_indexed_inline:Nn\"\n    },\n    {\n      \"name\": \"seq_map_inline:Nn\"\n    },\n    {\n      \"name\": \"seq_map_inline:cn\"\n    },\n    {\n      \"name\": \"seq_map_pairwise_function:NNN\"\n    },\n    {\n      \"name\": \"seq_map_pairwise_function:NcN\"\n    },\n    {\n      \"name\": \"seq_map_pairwise_function:cNN\"\n    },\n    {\n      \"name\": \"seq_map_pairwise_function:ccN\"\n    },\n    {\n      \"name\": \"seq_map_tokens:Nn\"\n    },\n    {\n      \"name\": \"seq_map_tokens:cn\"\n    },\n    {\n      \"name\": \"seq_map_variable:NNn\"\n    },\n    {\n      \"name\": \"seq_map_variable:Ncn\"\n    },\n    {\n      \"name\": \"seq_map_variable:cNn\"\n    },\n    {\n      \"name\": \"seq_map_variable:ccn\"\n    },\n    {\n      \"name\": \"seq_new:N\"\n    },\n    {\n      \"name\": \"seq_new:c\"\n    },\n    {\n      \"name\": \"seq_pop:NN\"\n    },\n    {\n      \"name\": \"seq_pop:NNF\"\n    },\n    {\n      \"name\": \"seq_pop:NNT\"\n    },\n    {\n      \"name\": \"seq_pop:NNTF\"\n    },\n    {\n      \"name\": \"seq_pop:cN\"\n    },\n    {\n      \"name\": \"seq_pop:cNF\"\n    },\n    {\n      \"name\": \"seq_pop:cNT\"\n    },\n    {\n      \"name\": \"seq_pop:cNTF\"\n    },\n    {\n      \"name\": \"seq_pop_left:NN\"\n    },\n    {\n      \"name\": \"seq_pop_left:NNF\"\n    },\n    {\n      \"name\": \"seq_pop_left:NNT\"\n    },\n    {\n      \"name\": \"seq_pop_left:NNTF\"\n    },\n    {\n      \"name\": \"seq_pop_left:cN\"\n    },\n    {\n      \"name\": \"seq_pop_left:cNF\"\n    },\n    {\n      \"name\": \"seq_pop_left:cNT\"\n    },\n    {\n      \"name\": \"seq_pop_left:cNTF\"\n    },\n    {\n      \"name\": \"seq_pop_right:NN\"\n    },\n    {\n      \"name\": \"seq_pop_right:NNF\"\n    },\n    {\n      \"name\": \"seq_pop_right:NNT\"\n    },\n    {\n      \"name\": \"seq_pop_right:NNTF\"\n    },\n    {\n      \"name\": \"seq_pop_right:cN\"\n    },\n    {\n      \"name\": \"seq_pop_right:cNF\"\n    },\n    {\n      \"name\": \"seq_pop_right:cNT\"\n    },\n    {\n      \"name\": \"seq_pop_right:cNTF\"\n    },\n    {\n      \"name\": \"seq_push:NV\"\n    },\n    {\n      \"name\": \"seq_push:Ne\"\n    },\n    {\n      \"name\": \"seq_push:Nn\"\n    },\n    {\n      \"name\": \"seq_push:No\"\n    },\n    {\n      \"name\": \"seq_push:Nv\"\n    },\n    {\n      \"name\": \"seq_push:cV\"\n    },\n    {\n      \"name\": \"seq_push:ce\"\n    },\n    {\n      \"name\": \"seq_push:cn\"\n    },\n    {\n      \"name\": \"seq_push:co\"\n    },\n    {\n      \"name\": \"seq_push:cv\"\n    },\n    {\n      \"name\": \"seq_put_left:NV\"\n    },\n    {\n      \"name\": \"seq_put_left:Ne\"\n    },\n    {\n      \"name\": \"seq_put_left:Nn\"\n    },\n    {\n      \"name\": \"seq_put_left:No\"\n    },\n    {\n      \"name\": \"seq_put_left:Nv\"\n    },\n    {\n      \"name\": \"seq_put_left:cV\"\n    },\n    {\n      \"name\": \"seq_put_left:ce\"\n    },\n    {\n      \"name\": \"seq_put_left:cn\"\n    },\n    {\n      \"name\": \"seq_put_left:co\"\n    },\n    {\n      \"name\": \"seq_put_left:cv\"\n    },\n    {\n      \"name\": \"seq_put_right:NV\"\n    },\n    {\n      \"name\": \"seq_put_right:Ne\"\n    },\n    {\n      \"name\": \"seq_put_right:Nn\"\n    },\n    {\n      \"name\": \"seq_put_right:No\"\n    },\n    {\n      \"name\": \"seq_put_right:Nv\"\n    },\n    {\n      \"name\": \"seq_put_right:cV\"\n    },\n    {\n      \"name\": \"seq_put_right:ce\"\n    },\n    {\n      \"name\": \"seq_put_right:cn\"\n    },\n    {\n      \"name\": \"seq_put_right:co\"\n    },\n    {\n      \"name\": \"seq_put_right:cv\"\n    },\n    {\n      \"name\": \"seq_rand_item:N\"\n    },\n    {\n      \"name\": \"seq_rand_item:c\"\n    },\n    {\n      \"name\": \"seq_remove_all:NV\"\n    },\n    {\n      \"name\": \"seq_remove_all:Ne\"\n    },\n    {\n      \"name\": \"seq_remove_all:Nn\"\n    },\n    {\n      \"name\": \"seq_remove_all:cV\"\n    },\n    {\n      \"name\": \"seq_remove_all:ce\"\n    },\n    {\n      \"name\": \"seq_remove_all:cn\"\n    },\n    {\n      \"name\": \"seq_remove_duplicates:N\"\n    },\n    {\n      \"name\": \"seq_remove_duplicates:c\"\n    },\n    {\n      \"name\": \"seq_reverse:N\"\n    },\n    {\n      \"name\": \"seq_reverse:c\"\n    },\n    {\n      \"name\": \"seq_set_eq:NN\"\n    },\n    {\n      \"name\": \"seq_set_eq:Nc\"\n    },\n    {\n      \"name\": \"seq_set_eq:cN\"\n    },\n    {\n      \"name\": \"seq_set_eq:cc\"\n    },\n    {\n      \"name\": \"seq_set_filter:NNn\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:NN\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:Nc\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:Nn\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:cN\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:cc\"\n    },\n    {\n      \"name\": \"seq_set_from_clist:cn\"\n    },\n    {\n      \"name\": \"seq_set_item:Nnn\"\n    },\n    {\n      \"name\": \"seq_set_item:NnnF\"\n    },\n    {\n      \"name\": \"seq_set_item:NnnT\"\n    },\n    {\n      \"name\": \"seq_set_item:NnnTF\"\n    },\n    {\n      \"name\": \"seq_set_item:cnn\"\n    },\n    {\n      \"name\": \"seq_set_item:cnnF\"\n    },\n    {\n      \"name\": \"seq_set_item:cnnT\"\n    },\n    {\n      \"name\": \"seq_set_item:cnnTF\"\n    },\n    {\n      \"name\": \"seq_set_map:NNn\"\n    },\n    {\n      \"name\": \"seq_set_map_e:NNn\"\n    },\n    {\n      \"name\": \"seq_set_split:NVV\"\n    },\n    {\n      \"name\": \"seq_set_split:NVn\"\n    },\n    {\n      \"name\": \"seq_set_split:Nee\"\n    },\n    {\n      \"name\": \"seq_set_split:NnV\"\n    },\n    {\n      \"name\": \"seq_set_split:Nne\"\n    },\n    {\n      \"name\": \"seq_set_split:Nnn\"\n    },\n    {\n      \"name\": \"seq_set_split_keep_spaces:NnV\"\n    },\n    {\n      \"name\": \"seq_set_split_keep_spaces:Nnn\"\n    },\n    {\n      \"name\": \"seq_show:N\"\n    },\n    {\n      \"name\": \"seq_show:c\"\n    },\n    {\n      \"name\": \"seq_shuffle:N\"\n    },\n    {\n      \"name\": \"seq_shuffle:c\"\n    },\n    {\n      \"name\": \"seq_sort:Nn\"\n    },\n    {\n      \"name\": \"seq_sort:cn\"\n    },\n    {\n      \"name\": \"seq_use:Nn\"\n    },\n    {\n      \"name\": \"seq_use:Nnnn\"\n    },\n    {\n      \"name\": \"seq_use:cn\"\n    },\n    {\n      \"name\": \"seq_use:cnnn\"\n    },\n    {\n      \"name\": \"skip_add:Nn\"\n    },\n    {\n      \"name\": \"skip_add:cn\"\n    },\n    {\n      \"name\": \"skip_const:Nn\"\n    },\n    {\n      \"name\": \"skip_const:cn\"\n    },\n    {\n      \"name\": \"skip_eval:n\"\n    },\n    {\n      \"name\": \"skip_gadd:Nn\"\n    },\n    {\n      \"name\": \"skip_gadd:cn\"\n    },\n    {\n      \"name\": \"skip_gset:NV\"\n    },\n    {\n      \"name\": \"skip_gset:Nn\"\n    },\n    {\n      \"name\": \"skip_gset:cV\"\n    },\n    {\n      \"name\": \"skip_gset:cn\"\n    },\n    {\n      \"name\": \"skip_gset_eq:NN\"\n    },\n    {\n      \"name\": \"skip_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"skip_gset_eq:cN\"\n    },\n    {\n      \"name\": \"skip_gset_eq:cc\"\n    },\n    {\n      \"name\": \"skip_gsub:Nn\"\n    },\n    {\n      \"name\": \"skip_gsub:cn\"\n    },\n    {\n      \"name\": \"skip_gzero:N\"\n    },\n    {\n      \"name\": \"skip_gzero:c\"\n    },\n    {\n      \"name\": \"skip_gzero_new:N\"\n    },\n    {\n      \"name\": \"skip_gzero_new:c\"\n    },\n    {\n      \"name\": \"skip_horizontal:N\"\n    },\n    {\n      \"name\": \"skip_horizontal:c\"\n    },\n    {\n      \"name\": \"skip_horizontal:n\"\n    },\n    {\n      \"name\": \"skip_if_eq:nnF\"\n    },\n    {\n      \"name\": \"skip_if_eq:nnT\"\n    },\n    {\n      \"name\": \"skip_if_eq:nnTF\"\n    },\n    {\n      \"name\": \"skip_if_eq_p:nn\"\n    },\n    {\n      \"name\": \"skip_if_exist:NF\"\n    },\n    {\n      \"name\": \"skip_if_exist:NT\"\n    },\n    {\n      \"name\": \"skip_if_exist:NTF\"\n    },\n    {\n      \"name\": \"skip_if_exist:cF\"\n    },\n    {\n      \"name\": \"skip_if_exist:cT\"\n    },\n    {\n      \"name\": \"skip_if_exist:cTF\"\n    },\n    {\n      \"name\": \"skip_if_exist_p:N\"\n    },\n    {\n      \"name\": \"skip_if_exist_p:c\"\n    },\n    {\n      \"name\": \"skip_if_finite:nF\"\n    },\n    {\n      \"name\": \"skip_if_finite:nT\"\n    },\n    {\n      \"name\": \"skip_if_finite:nTF\"\n    },\n    {\n      \"name\": \"skip_if_finite_p:n\"\n    },\n    {\n      \"name\": \"skip_log:N\"\n    },\n    {\n      \"name\": \"skip_log:c\"\n    },\n    {\n      \"name\": \"skip_log:n\"\n    },\n    {\n      \"name\": \"skip_new:N\"\n    },\n    {\n      \"name\": \"skip_new:c\"\n    },\n    {\n      \"name\": \"skip_set:NV\"\n    },\n    {\n      \"name\": \"skip_set:Nn\"\n    },\n    {\n      \"name\": \"skip_set:cV\"\n    },\n    {\n      \"name\": \"skip_set:cn\"\n    },\n    {\n      \"name\": \"skip_set_eq:NN\"\n    },\n    {\n      \"name\": \"skip_set_eq:Nc\"\n    },\n    {\n      \"name\": \"skip_set_eq:cN\"\n    },\n    {\n      \"name\": \"skip_set_eq:cc\"\n    },\n    {\n      \"name\": \"skip_show:N\"\n    },\n    {\n      \"name\": \"skip_show:c\"\n    },\n    {\n      \"name\": \"skip_show:n\"\n    },\n    {\n      \"name\": \"skip_sub:Nn\"\n    },\n    {\n      \"name\": \"skip_sub:cn\"\n    },\n    {\n      \"name\": \"skip_use:N\"\n    },\n    {\n      \"name\": \"skip_use:c\"\n    },\n    {\n      \"name\": \"skip_vertical:N\"\n    },\n    {\n      \"name\": \"skip_vertical:c\"\n    },\n    {\n      \"name\": \"skip_vertical:n\"\n    },\n    {\n      \"name\": \"skip_zero:N\"\n    },\n    {\n      \"name\": \"skip_zero:c\"\n    },\n    {\n      \"name\": \"skip_zero_new:N\"\n    },\n    {\n      \"name\": \"skip_zero_new:c\"\n    },\n    {\n      \"name\": \"sort_return_same:\"\n    },\n    {\n      \"name\": \"sort_return_swapped:\"\n    },\n    {\n      \"name\": \"str_case:Nn\"\n    },\n    {\n      \"name\": \"str_case:NnF\"\n    },\n    {\n      \"name\": \"str_case:NnT\"\n    },\n    {\n      \"name\": \"str_case:NnTF\"\n    },\n    {\n      \"name\": \"str_case:Vn\"\n    },\n    {\n      \"name\": \"str_case:VnF\"\n    },\n    {\n      \"name\": \"str_case:VnT\"\n    },\n    {\n      \"name\": \"str_case:VnTF\"\n    },\n    {\n      \"name\": \"str_case:en\"\n    },\n    {\n      \"name\": \"str_case:enF\"\n    },\n    {\n      \"name\": \"str_case:enT\"\n    },\n    {\n      \"name\": \"str_case:enTF\"\n    },\n    {\n      \"name\": \"str_case:nV\"\n    },\n    {\n      \"name\": \"str_case:nVF\"\n    },\n    {\n      \"name\": \"str_case:nVT\"\n    },\n    {\n      \"name\": \"str_case:nVTF\"\n    },\n    {\n      \"name\": \"str_case:nn\"\n    },\n    {\n      \"name\": \"str_case:nnF\"\n    },\n    {\n      \"name\": \"str_case:nnT\"\n    },\n    {\n      \"name\": \"str_case:nnTF\"\n    },\n    {\n      \"name\": \"str_case:nv\"\n    },\n    {\n      \"name\": \"str_case:nvF\"\n    },\n    {\n      \"name\": \"str_case:nvT\"\n    },\n    {\n      \"name\": \"str_case:nvTF\"\n    },\n    {\n      \"name\": \"str_case:on\"\n    },\n    {\n      \"name\": \"str_case:onF\"\n    },\n    {\n      \"name\": \"str_case:onT\"\n    },\n    {\n      \"name\": \"str_case:onTF\"\n    },\n    {\n      \"name\": \"str_case_e:en\"\n    },\n    {\n      \"name\": \"str_case_e:enF\"\n    },\n    {\n      \"name\": \"str_case_e:enT\"\n    },\n    {\n      \"name\": \"str_case_e:enTF\"\n    },\n    {\n      \"name\": \"str_case_e:nn\"\n    },\n    {\n      \"name\": \"str_case_e:nnF\"\n    },\n    {\n      \"name\": \"str_case_e:nnT\"\n    },\n    {\n      \"name\": \"str_case_e:nnTF\"\n    },\n    {\n      \"name\": \"str_casefold:V\"\n    },\n    {\n      \"name\": \"str_casefold:n\"\n    },\n    {\n      \"name\": \"str_clear:N\"\n    },\n    {\n      \"name\": \"str_clear:c\"\n    },\n    {\n      \"name\": \"str_clear_new:N\"\n    },\n    {\n      \"name\": \"str_clear_new:c\"\n    },\n    {\n      \"name\": \"str_compare:eNeF\"\n    },\n    {\n      \"name\": \"str_compare:eNeT\"\n    },\n    {\n      \"name\": \"str_compare:eNeTF\"\n    },\n    {\n      \"name\": \"str_compare:nNnF\"\n    },\n    {\n      \"name\": \"str_compare:nNnT\"\n    },\n    {\n      \"name\": \"str_compare:nNnTF\"\n    },\n    {\n      \"name\": \"str_compare_p:eNe\"\n    },\n    {\n      \"name\": \"str_compare_p:nNn\"\n    },\n    {\n      \"name\": \"str_concat:NNN\"\n    },\n    {\n      \"name\": \"str_concat:ccc\"\n    },\n    {\n      \"name\": \"str_const:NV\"\n    },\n    {\n      \"name\": \"str_const:Ne\"\n    },\n    {\n      \"name\": \"str_const:Nn\"\n    },\n    {\n      \"name\": \"str_const:cV\"\n    },\n    {\n      \"name\": \"str_const:ce\"\n    },\n    {\n      \"name\": \"str_const:cn\"\n    },\n    {\n      \"name\": \"str_convert_pdfname:n\"\n    },\n    {\n      \"name\": \"str_count:N\"\n    },\n    {\n      \"name\": \"str_count:c\"\n    },\n    {\n      \"name\": \"str_count:n\"\n    },\n    {\n      \"name\": \"str_count_ignore_spaces:n\"\n    },\n    {\n      \"name\": \"str_count_spaces:N\"\n    },\n    {\n      \"name\": \"str_count_spaces:c\"\n    },\n    {\n      \"name\": \"str_count_spaces:n\"\n    },\n    {\n      \"name\": \"str_gclear:N\"\n    },\n    {\n      \"name\": \"str_gclear:c\"\n    },\n    {\n      \"name\": \"str_gclear_new:N\"\n    },\n    {\n      \"name\": \"str_gclear_new:c\"\n    },\n    {\n      \"name\": \"str_gconcat:NNN\"\n    },\n    {\n      \"name\": \"str_gconcat:ccc\"\n    },\n    {\n      \"name\": \"str_gput_left:NV\"\n    },\n    {\n      \"name\": \"str_gput_left:Ne\"\n    },\n    {\n      \"name\": \"str_gput_left:Nn\"\n    },\n    {\n      \"name\": \"str_gput_left:cV\"\n    },\n    {\n      \"name\": \"str_gput_left:ce\"\n    },\n    {\n      \"name\": \"str_gput_left:cn\"\n    },\n    {\n      \"name\": \"str_gput_right:NV\"\n    },\n    {\n      \"name\": \"str_gput_right:Ne\"\n    },\n    {\n      \"name\": \"str_gput_right:Nn\"\n    },\n    {\n      \"name\": \"str_gput_right:cV\"\n    },\n    {\n      \"name\": \"str_gput_right:ce\"\n    },\n    {\n      \"name\": \"str_gput_right:cn\"\n    },\n    {\n      \"name\": \"str_gremove_all:Nn\"\n    },\n    {\n      \"name\": \"str_gremove_all:cn\"\n    },\n    {\n      \"name\": \"str_gremove_once:Nn\"\n    },\n    {\n      \"name\": \"str_gremove_once:cn\"\n    },\n    {\n      \"name\": \"str_greplace_all:Nnn\"\n    },\n    {\n      \"name\": \"str_greplace_all:cnn\"\n    },\n    {\n      \"name\": \"str_greplace_once:Nnn\"\n    },\n    {\n      \"name\": \"str_greplace_once:cnn\"\n    },\n    {\n      \"name\": \"str_gset:NV\"\n    },\n    {\n      \"name\": \"str_gset:Ne\"\n    },\n    {\n      \"name\": \"str_gset:Nn\"\n    },\n    {\n      \"name\": \"str_gset:cV\"\n    },\n    {\n      \"name\": \"str_gset:ce\"\n    },\n    {\n      \"name\": \"str_gset:cn\"\n    },\n    {\n      \"name\": \"str_gset_convert:Nnnn\"\n    },\n    {\n      \"name\": \"str_gset_convert:NnnnF\"\n    },\n    {\n      \"name\": \"str_gset_convert:NnnnT\"\n    },\n    {\n      \"name\": \"str_gset_convert:NnnnTF\"\n    },\n    {\n      \"name\": \"str_gset_eq:NN\"\n    },\n    {\n      \"name\": \"str_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"str_gset_eq:cN\"\n    },\n    {\n      \"name\": \"str_gset_eq:cc\"\n    },\n    {\n      \"name\": \"str_head:N\"\n    },\n    {\n      \"name\": \"str_head:c\"\n    },\n    {\n      \"name\": \"str_head:n\"\n    },\n    {\n      \"name\": \"str_head_ignore_spaces:n\"\n    },\n    {\n      \"name\": \"str_if_empty:NF\"\n    },\n    {\n      \"name\": \"str_if_empty:NT\"\n    },\n    {\n      \"name\": \"str_if_empty:NTF\"\n    },\n    {\n      \"name\": \"str_if_empty:cF\"\n    },\n    {\n      \"name\": \"str_if_empty:cT\"\n    },\n    {\n      \"name\": \"str_if_empty:cTF\"\n    },\n    {\n      \"name\": \"str_if_empty:nF\"\n    },\n    {\n      \"name\": \"str_if_empty:nT\"\n    },\n    {\n      \"name\": \"str_if_empty:nTF\"\n    },\n    {\n      \"name\": \"str_if_empty_p:N\"\n    },\n    {\n      \"name\": \"str_if_empty_p:c\"\n    },\n    {\n      \"name\": \"str_if_empty_p:n\"\n    },\n    {\n      \"name\": \"str_if_eq:NNF\"\n    },\n    {\n      \"name\": \"str_if_eq:NNT\"\n    },\n    {\n      \"name\": \"str_if_eq:NNTF\"\n    },\n    {\n      \"name\": \"str_if_eq:NcF\"\n    },\n    {\n      \"name\": \"str_if_eq:NcT\"\n    },\n    {\n      \"name\": \"str_if_eq:NcTF\"\n    },\n    {\n      \"name\": \"str_if_eq:VVF\"\n    },\n    {\n      \"name\": \"str_if_eq:VVT\"\n    },\n    {\n      \"name\": \"str_if_eq:VVTF\"\n    },\n    {\n      \"name\": \"str_if_eq:VnF\"\n    },\n    {\n      \"name\": \"str_if_eq:VnT\"\n    },\n    {\n      \"name\": \"str_if_eq:VnTF\"\n    },\n    {\n      \"name\": \"str_if_eq:cNF\"\n    },\n    {\n      \"name\": \"str_if_eq:cNT\"\n    },\n    {\n      \"name\": \"str_if_eq:cNTF\"\n    },\n    {\n      \"name\": \"str_if_eq:ccF\"\n    },\n    {\n      \"name\": \"str_if_eq:ccT\"\n    },\n    {\n      \"name\": \"str_if_eq:ccTF\"\n    },\n    {\n      \"name\": \"str_if_eq:eeF\"\n    },\n    {\n      \"name\": \"str_if_eq:eeT\"\n    },\n    {\n      \"name\": \"str_if_eq:eeTF\"\n    },\n    {\n      \"name\": \"str_if_eq:nVF\"\n    },\n    {\n      \"name\": \"str_if_eq:nVT\"\n    },\n    {\n      \"name\": \"str_if_eq:nVTF\"\n    },\n    {\n      \"name\": \"str_if_eq:nnF\"\n    },\n    {\n      \"name\": \"str_if_eq:nnT\"\n    },\n    {\n      \"name\": \"str_if_eq:nnTF\"\n    },\n    {\n      \"name\": \"str_if_eq:noF\"\n    },\n    {\n      \"name\": \"str_if_eq:noT\"\n    },\n    {\n      \"name\": \"str_if_eq:noTF\"\n    },\n    {\n      \"name\": \"str_if_eq:nvF\"\n    },\n    {\n      \"name\": \"str_if_eq:nvT\"\n    },\n    {\n      \"name\": \"str_if_eq:nvTF\"\n    },\n    {\n      \"name\": \"str_if_eq:onF\"\n    },\n    {\n      \"name\": \"str_if_eq:onT\"\n    },\n    {\n      \"name\": \"str_if_eq:onTF\"\n    },\n    {\n      \"name\": \"str_if_eq:vnF\"\n    },\n    {\n      \"name\": \"str_if_eq:vnT\"\n    },\n    {\n      \"name\": \"str_if_eq:vnTF\"\n    },\n    {\n      \"name\": \"str_if_eq_p:NN\"\n    },\n    {\n      \"name\": \"str_if_eq_p:Nc\"\n    },\n    {\n      \"name\": \"str_if_eq_p:VV\"\n    },\n    {\n      \"name\": \"str_if_eq_p:Vn\"\n    },\n    {\n      \"name\": \"str_if_eq_p:cN\"\n    },\n    {\n      \"name\": \"str_if_eq_p:cc\"\n    },\n    {\n      \"name\": \"str_if_eq_p:ee\"\n    },\n    {\n      \"name\": \"str_if_eq_p:nV\"\n    },\n    {\n      \"name\": \"str_if_eq_p:nn\"\n    },\n    {\n      \"name\": \"str_if_eq_p:no\"\n    },\n    {\n      \"name\": \"str_if_eq_p:nv\"\n    },\n    {\n      \"name\": \"str_if_eq_p:on\"\n    },\n    {\n      \"name\": \"str_if_eq_p:vn\"\n    },\n    {\n      \"name\": \"str_if_exist:NF\"\n    },\n    {\n      \"name\": \"str_if_exist:NT\"\n    },\n    {\n      \"name\": \"str_if_exist:NTF\"\n    },\n    {\n      \"name\": \"str_if_exist:cF\"\n    },\n    {\n      \"name\": \"str_if_exist:cT\"\n    },\n    {\n      \"name\": \"str_if_exist:cTF\"\n    },\n    {\n      \"name\": \"str_if_exist_p:N\"\n    },\n    {\n      \"name\": \"str_if_exist_p:c\"\n    },\n    {\n      \"name\": \"str_if_in:NnF\"\n    },\n    {\n      \"name\": \"str_if_in:NnT\"\n    },\n    {\n      \"name\": \"str_if_in:NnTF\"\n    },\n    {\n      \"name\": \"str_if_in:cnF\"\n    },\n    {\n      \"name\": \"str_if_in:cnT\"\n    },\n    {\n      \"name\": \"str_if_in:cnTF\"\n    },\n    {\n      \"name\": \"str_if_in:nnF\"\n    },\n    {\n      \"name\": \"str_if_in:nnT\"\n    },\n    {\n      \"name\": \"str_if_in:nnTF\"\n    },\n    {\n      \"name\": \"str_item:Nn\"\n    },\n    {\n      \"name\": \"str_item:cn\"\n    },\n    {\n      \"name\": \"str_item:nn\"\n    },\n    {\n      \"name\": \"str_item_ignore_spaces:nn\"\n    },\n    {\n      \"name\": \"str_log:N\"\n    },\n    {\n      \"name\": \"str_log:c\"\n    },\n    {\n      \"name\": \"str_log:n\"\n    },\n    {\n      \"name\": \"str_lowercase:f\"\n    },\n    {\n      \"name\": \"str_lowercase:n\"\n    },\n    {\n      \"name\": \"str_map_break:\"\n    },\n    {\n      \"name\": \"str_map_break:n\"\n    },\n    {\n      \"name\": \"str_map_function:NN\"\n    },\n    {\n      \"name\": \"str_map_function:cN\"\n    },\n    {\n      \"name\": \"str_map_function:nN\"\n    },\n    {\n      \"name\": \"str_map_inline:Nn\"\n    },\n    {\n      \"name\": \"str_map_inline:cn\"\n    },\n    {\n      \"name\": \"str_map_inline:nn\"\n    },\n    {\n      \"name\": \"str_map_tokens:Nn\"\n    },\n    {\n      \"name\": \"str_map_tokens:cn\"\n    },\n    {\n      \"name\": \"str_map_tokens:nn\"\n    },\n    {\n      \"name\": \"str_map_variable:NNn\"\n    },\n    {\n      \"name\": \"str_map_variable:cNn\"\n    },\n    {\n      \"name\": \"str_map_variable:nNn\"\n    },\n    {\n      \"name\": \"str_mdfive_hash:e\"\n    },\n    {\n      \"name\": \"str_mdfive_hash:n\"\n    },\n    {\n      \"name\": \"str_new:N\"\n    },\n    {\n      \"name\": \"str_new:c\"\n    },\n    {\n      \"name\": \"str_put_left:NV\"\n    },\n    {\n      \"name\": \"str_put_left:Ne\"\n    },\n    {\n      \"name\": \"str_put_left:Nn\"\n    },\n    {\n      \"name\": \"str_put_left:cV\"\n    },\n    {\n      \"name\": \"str_put_left:ce\"\n    },\n    {\n      \"name\": \"str_put_left:cn\"\n    },\n    {\n      \"name\": \"str_put_right:NV\"\n    },\n    {\n      \"name\": \"str_put_right:Ne\"\n    },\n    {\n      \"name\": \"str_put_right:Nn\"\n    },\n    {\n      \"name\": \"str_put_right:cV\"\n    },\n    {\n      \"name\": \"str_put_right:cn\"\n    },\n    {\n      \"name\": \"str_range:Nnn\"\n    },\n    {\n      \"name\": \"str_range:cnn\"\n    },\n    {\n      \"name\": \"str_range:nnn\"\n    },\n    {\n      \"name\": \"str_range_ignore_spaces:nnn\"\n    },\n    {\n      \"name\": \"str_remove_all:Nn\"\n    },\n    {\n      \"name\": \"str_remove_all:cn\"\n    },\n    {\n      \"name\": \"str_remove_once:Nn\"\n    },\n    {\n      \"name\": \"str_remove_once:cn\"\n    },\n    {\n      \"name\": \"str_replace_all:Nnn\"\n    },\n    {\n      \"name\": \"str_replace_all:cnn\"\n    },\n    {\n      \"name\": \"str_replace_once:Nnn\"\n    },\n    {\n      \"name\": \"str_replace_once:cnn\"\n    },\n    {\n      \"name\": \"str_set:NV\"\n    },\n    {\n      \"name\": \"str_set:Ne\"\n    },\n    {\n      \"name\": \"str_set:Nn\"\n    },\n    {\n      \"name\": \"str_set:cV\"\n    },\n    {\n      \"name\": \"str_set:ce\"\n    },\n    {\n      \"name\": \"str_set:cn\"\n    },\n    {\n      \"name\": \"str_set_convert:Nnnn\"\n    },\n    {\n      \"name\": \"str_set_convert:NnnnF\"\n    },\n    {\n      \"name\": \"str_set_convert:NnnnT\"\n    },\n    {\n      \"name\": \"str_set_convert:NnnnTF\"\n    },\n    {\n      \"name\": \"str_set_eq:NN\"\n    },\n    {\n      \"name\": \"str_set_eq:Nc\"\n    },\n    {\n      \"name\": \"str_set_eq:cN\"\n    },\n    {\n      \"name\": \"str_set_eq:cc\"\n    },\n    {\n      \"name\": \"str_show:N\"\n    },\n    {\n      \"name\": \"str_show:c\"\n    },\n    {\n      \"name\": \"str_show:n\"\n    },\n    {\n      \"name\": \"str_tail:N\"\n    },\n    {\n      \"name\": \"str_tail:c\"\n    },\n    {\n      \"name\": \"str_tail:n\"\n    },\n    {\n      \"name\": \"str_tail_ignore_spaces:n\"\n    },\n    {\n      \"name\": \"str_uppercase:f\"\n    },\n    {\n      \"name\": \"str_uppercase:n\"\n    },\n    {\n      \"name\": \"str_use:N\"\n    },\n    {\n      \"name\": \"str_use:c\"\n    },\n    {\n      \"name\": \"sys_ensure_backend:\"\n    },\n    {\n      \"name\": \"sys_finalise:\"\n    },\n    {\n      \"name\": \"sys_get_query:nN\"\n    },\n    {\n      \"name\": \"sys_get_query:nnN\"\n    },\n    {\n      \"name\": \"sys_get_query:nnnN\"\n    },\n    {\n      \"name\": \"sys_get_shell:nnN\"\n    },\n    {\n      \"name\": \"sys_get_shell:nnNF\"\n    },\n    {\n      \"name\": \"sys_get_shell:nnNT\"\n    },\n    {\n      \"name\": \"sys_get_shell:nnNTF\"\n    },\n    {\n      \"name\": \"sys_gset_rand_seed:n\"\n    },\n    {\n      \"name\": \"sys_if_engine_luatex:F\"\n    },\n    {\n      \"name\": \"sys_if_engine_luatex:T\"\n    },\n    {\n      \"name\": \"sys_if_engine_luatex:TF\"\n    },\n    {\n      \"name\": \"sys_if_engine_luatex_p:\"\n    },\n    {\n      \"name\": \"sys_if_engine_pdftex:F\"\n    },\n    {\n      \"name\": \"sys_if_engine_pdftex:T\"\n    },\n    {\n      \"name\": \"sys_if_engine_pdftex:TF\"\n    },\n    {\n      \"name\": \"sys_if_engine_pdftex_p:\"\n    },\n    {\n      \"name\": \"sys_if_engine_ptex:F\"\n    },\n    {\n      \"name\": \"sys_if_engine_ptex:T\"\n    },\n    {\n      \"name\": \"sys_if_engine_ptex:TF\"\n    },\n    {\n      \"name\": \"sys_if_engine_ptex_p:\"\n    },\n    {\n      \"name\": \"sys_if_engine_uptex:F\"\n    },\n    {\n      \"name\": \"sys_if_engine_uptex:T\"\n    },\n    {\n      \"name\": \"sys_if_engine_uptex:TF\"\n    },\n    {\n      \"name\": \"sys_if_engine_uptex_p:\"\n    },\n    {\n      \"name\": \"sys_if_engine_xetex:F\"\n    },\n    {\n      \"name\": \"sys_if_engine_xetex:T\"\n    },\n    {\n      \"name\": \"sys_if_engine_xetex:TF\"\n    },\n    {\n      \"name\": \"sys_if_engine_xetex_p:\"\n    },\n    {\n      \"name\": \"sys_if_output_dvi:F\"\n    },\n    {\n      \"name\": \"sys_if_output_dvi:T\"\n    },\n    {\n      \"name\": \"sys_if_output_dvi:TF\"\n    },\n    {\n      \"name\": \"sys_if_output_dvi_p:\"\n    },\n    {\n      \"name\": \"sys_if_output_pdf:F\"\n    },\n    {\n      \"name\": \"sys_if_output_pdf:T\"\n    },\n    {\n      \"name\": \"sys_if_output_pdf:TF\"\n    },\n    {\n      \"name\": \"sys_if_output_pdf_p:\"\n    },\n    {\n      \"name\": \"sys_if_platform_unix:F\"\n    },\n    {\n      \"name\": \"sys_if_platform_unix:T\"\n    },\n    {\n      \"name\": \"sys_if_platform_unix:TF\"\n    },\n    {\n      \"name\": \"sys_if_platform_unix_p:\"\n    },\n    {\n      \"name\": \"sys_if_platform_windows:F\"\n    },\n    {\n      \"name\": \"sys_if_platform_windows:T\"\n    },\n    {\n      \"name\": \"sys_if_platform_windows:TF\"\n    },\n    {\n      \"name\": \"sys_if_platform_windows_p:\"\n    },\n    {\n      \"name\": \"sys_if_shell:F\"\n    },\n    {\n      \"name\": \"sys_if_shell:T\"\n    },\n    {\n      \"name\": \"sys_if_shell:TF\"\n    },\n    {\n      \"name\": \"sys_if_shell_p:\"\n    },\n    {\n      \"name\": \"sys_if_shell_restricted:F\"\n    },\n    {\n      \"name\": \"sys_if_shell_restricted:T\"\n    },\n    {\n      \"name\": \"sys_if_shell_restricted:TF\"\n    },\n    {\n      \"name\": \"sys_if_shell_restricted_p:\"\n    },\n    {\n      \"name\": \"sys_if_shell_unrestricted:F\"\n    },\n    {\n      \"name\": \"sys_if_shell_unrestricted:T\"\n    },\n    {\n      \"name\": \"sys_if_shell_unrestricted:TF\"\n    },\n    {\n      \"name\": \"sys_if_shell_unrestricted_p:\"\n    },\n    {\n      \"name\": \"sys_if_timer_exist:F\"\n    },\n    {\n      \"name\": \"sys_if_timer_exist:T\"\n    },\n    {\n      \"name\": \"sys_if_timer_exist:TF\"\n    },\n    {\n      \"name\": \"sys_if_timer_exist_p:\"\n    },\n    {\n      \"name\": \"sys_load_backend:n\"\n    },\n    {\n      \"name\": \"sys_load_debug:\"\n    },\n    {\n      \"name\": \"sys_rand_seed:\"\n    },\n    {\n      \"name\": \"sys_shell_now:e\"\n    },\n    {\n      \"name\": \"sys_shell_now:n\"\n    },\n    {\n      \"name\": \"sys_shell_shipout:e\"\n    },\n    {\n      \"name\": \"sys_shell_shipout:n\"\n    },\n    {\n      \"name\": \"sys_split_query:nN\"\n    },\n    {\n      \"name\": \"sys_split_query:nnN\"\n    },\n    {\n      \"name\": \"sys_split_query:nnnN\"\n    },\n    {\n      \"name\": \"sys_timer:\"\n    },\n    {\n      \"name\": \"text_case_switch:nnnn\"\n    },\n    {\n      \"name\": \"text_declare_case_equivalent:Nn\"\n    },\n    {\n      \"name\": \"text_declare_expand_equivalent:Nn\"\n    },\n    {\n      \"name\": \"text_declare_expand_equivalent:cn\"\n    },\n    {\n      \"name\": \"text_declare_lowercase_mapping:nn\"\n    },\n    {\n      \"name\": \"text_declare_lowercase_mapping:nnn\"\n    },\n    {\n      \"name\": \"text_declare_purify_equivalent:Ne\"\n    },\n    {\n      \"name\": \"text_declare_purify_equivalent:Nn\"\n    },\n    {\n      \"name\": \"text_declare_titlecase_mapping:nn\"\n    },\n    {\n      \"name\": \"text_declare_titlecase_mapping:nnn\"\n    },\n    {\n      \"name\": \"text_declare_uppercase_mapping:nn\"\n    },\n    {\n      \"name\": \"text_declare_uppercase_mapping:nnn\"\n    },\n    {\n      \"name\": \"text_expand:n\"\n    },\n    {\n      \"name\": \"text_lowercase:n\"\n    },\n    {\n      \"name\": \"text_lowercase:nn\"\n    },\n    {\n      \"name\": \"text_map_break:\"\n    },\n    {\n      \"name\": \"text_map_break:n\"\n    },\n    {\n      \"name\": \"text_map_function:nN\"\n    },\n    {\n      \"name\": \"text_map_inline:nn\"\n    },\n    {\n      \"name\": \"text_purify:n\"\n    },\n    {\n      \"name\": \"text_titlecase_all:n\"\n    },\n    {\n      \"name\": \"text_titlecase_all:nn\"\n    },\n    {\n      \"name\": \"text_titlecase_first:n\"\n    },\n    {\n      \"name\": \"text_titlecase_first:nn\"\n    },\n    {\n      \"name\": \"text_uppercase:n\"\n    },\n    {\n      \"name\": \"text_uppercase:nn\"\n    },\n    {\n      \"name\": \"tl_analysis_log:N\"\n    },\n    {\n      \"name\": \"tl_analysis_log:n\"\n    },\n    {\n      \"name\": \"tl_analysis_map_inline:Nn\"\n    },\n    {\n      \"name\": \"tl_analysis_map_inline:nn\"\n    },\n    {\n      \"name\": \"tl_analysis_show:N\"\n    },\n    {\n      \"name\": \"tl_analysis_show:n\"\n    },\n    {\n      \"name\": \"tl_build_begin:N\"\n    },\n    {\n      \"name\": \"tl_build_end:N\"\n    },\n    {\n      \"name\": \"tl_build_gbegin:N\"\n    },\n    {\n      \"name\": \"tl_build_gend:N\"\n    },\n    {\n      \"name\": \"tl_build_get_intermediate:NN\"\n    },\n    {\n      \"name\": \"tl_build_gput_left:Ne\"\n    },\n    {\n      \"name\": \"tl_build_gput_left:Nn\"\n    },\n    {\n      \"name\": \"tl_build_gput_right:Ne\"\n    },\n    {\n      \"name\": \"tl_build_gput_right:Nn\"\n    },\n    {\n      \"name\": \"tl_build_put_left:Ne\"\n    },\n    {\n      \"name\": \"tl_build_put_left:Nn\"\n    },\n    {\n      \"name\": \"tl_build_put_right:Ne\"\n    },\n    {\n      \"name\": \"tl_build_put_right:Nn\"\n    },\n    {\n      \"name\": \"tl_clear:N\"\n    },\n    {\n      \"name\": \"tl_clear:c\"\n    },\n    {\n      \"name\": \"tl_clear_new:N\"\n    },\n    {\n      \"name\": \"tl_clear_new:c\"\n    },\n    {\n      \"name\": \"tl_concat:NNN\"\n    },\n    {\n      \"name\": \"tl_concat:ccc\"\n    },\n    {\n      \"name\": \"tl_const:Ne\"\n    },\n    {\n      \"name\": \"tl_const:Nn\"\n    },\n    {\n      \"name\": \"tl_const:ce\"\n    },\n    {\n      \"name\": \"tl_const:cn\"\n    },\n    {\n      \"name\": \"tl_count:N\"\n    },\n    {\n      \"name\": \"tl_count:V\"\n    },\n    {\n      \"name\": \"tl_count:c\"\n    },\n    {\n      \"name\": \"tl_count:e\"\n    },\n    {\n      \"name\": \"tl_count:n\"\n    },\n    {\n      \"name\": \"tl_count:o\"\n    },\n    {\n      \"name\": \"tl_count:v\"\n    },\n    {\n      \"name\": \"tl_count_tokens:n\"\n    },\n    {\n      \"name\": \"tl_gclear:N\"\n    },\n    {\n      \"name\": \"tl_gclear:c\"\n    },\n    {\n      \"name\": \"tl_gclear_new:N\"\n    },\n    {\n      \"name\": \"tl_gclear_new:c\"\n    },\n    {\n      \"name\": \"tl_gconcat:NNN\"\n    },\n    {\n      \"name\": \"tl_gconcat:ccc\"\n    },\n    {\n      \"name\": \"tl_gput_left:NV\"\n    },\n    {\n      \"name\": \"tl_gput_left:Ne\"\n    },\n    {\n      \"name\": \"tl_gput_left:Nn\"\n    },\n    {\n      \"name\": \"tl_gput_left:No\"\n    },\n    {\n      \"name\": \"tl_gput_left:Nv\"\n    },\n    {\n      \"name\": \"tl_gput_left:cV\"\n    },\n    {\n      \"name\": \"tl_gput_left:ce\"\n    },\n    {\n      \"name\": \"tl_gput_left:cn\"\n    },\n    {\n      \"name\": \"tl_gput_left:co\"\n    },\n    {\n      \"name\": \"tl_gput_left:cv\"\n    },\n    {\n      \"name\": \"tl_gput_right:NV\"\n    },\n    {\n      \"name\": \"tl_gput_right:Ne\"\n    },\n    {\n      \"name\": \"tl_gput_right:Nn\"\n    },\n    {\n      \"name\": \"tl_gput_right:No\"\n    },\n    {\n      \"name\": \"tl_gput_right:Nv\"\n    },\n    {\n      \"name\": \"tl_gput_right:cV\"\n    },\n    {\n      \"name\": \"tl_gput_right:ce\"\n    },\n    {\n      \"name\": \"tl_gput_right:cn\"\n    },\n    {\n      \"name\": \"tl_gput_right:co\"\n    },\n    {\n      \"name\": \"tl_gput_right:cv\"\n    },\n    {\n      \"name\": \"tl_gremove_all:NV\"\n    },\n    {\n      \"name\": \"tl_gremove_all:Ne\"\n    },\n    {\n      \"name\": \"tl_gremove_all:Nn\"\n    },\n    {\n      \"name\": \"tl_gremove_all:cV\"\n    },\n    {\n      \"name\": \"tl_gremove_all:ce\"\n    },\n    {\n      \"name\": \"tl_gremove_all:cn\"\n    },\n    {\n      \"name\": \"tl_gremove_once:NV\"\n    },\n    {\n      \"name\": \"tl_gremove_once:Ne\"\n    },\n    {\n      \"name\": \"tl_gremove_once:Nn\"\n    },\n    {\n      \"name\": \"tl_gremove_once:cV\"\n    },\n    {\n      \"name\": \"tl_gremove_once:ce\"\n    },\n    {\n      \"name\": \"tl_gremove_once:cn\"\n    },\n    {\n      \"name\": \"tl_greplace_all:NVn\"\n    },\n    {\n      \"name\": \"tl_greplace_all:Nee\"\n    },\n    {\n      \"name\": \"tl_greplace_all:Nen\"\n    },\n    {\n      \"name\": \"tl_greplace_all:NnV\"\n    },\n    {\n      \"name\": \"tl_greplace_all:Nne\"\n    },\n    {\n      \"name\": \"tl_greplace_all:Nnn\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cVn\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cee\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cen\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cnV\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cne\"\n    },\n    {\n      \"name\": \"tl_greplace_all:cnn\"\n    },\n    {\n      \"name\": \"tl_greplace_once:NVn\"\n    },\n    {\n      \"name\": \"tl_greplace_once:Nee\"\n    },\n    {\n      \"name\": \"tl_greplace_once:Nen\"\n    },\n    {\n      \"name\": \"tl_greplace_once:NnV\"\n    },\n    {\n      \"name\": \"tl_greplace_once:Nne\"\n    },\n    {\n      \"name\": \"tl_greplace_once:Nnn\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cVn\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cee\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cen\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cnV\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cne\"\n    },\n    {\n      \"name\": \"tl_greplace_once:cnn\"\n    },\n    {\n      \"name\": \"tl_greverse:N\"\n    },\n    {\n      \"name\": \"tl_greverse:c\"\n    },\n    {\n      \"name\": \"tl_gset:NV\"\n    },\n    {\n      \"name\": \"tl_gset:Ne\"\n    },\n    {\n      \"name\": \"tl_gset:Nf\"\n    },\n    {\n      \"name\": \"tl_gset:Nn\"\n    },\n    {\n      \"name\": \"tl_gset:No\"\n    },\n    {\n      \"name\": \"tl_gset:Nv\"\n    },\n    {\n      \"name\": \"tl_gset:cV\"\n    },\n    {\n      \"name\": \"tl_gset:ce\"\n    },\n    {\n      \"name\": \"tl_gset:cf\"\n    },\n    {\n      \"name\": \"tl_gset:cn\"\n    },\n    {\n      \"name\": \"tl_gset:co\"\n    },\n    {\n      \"name\": \"tl_gset:cv\"\n    },\n    {\n      \"name\": \"tl_gset_eq:NN\"\n    },\n    {\n      \"name\": \"tl_gset_eq:Nc\"\n    },\n    {\n      \"name\": \"tl_gset_eq:cN\"\n    },\n    {\n      \"name\": \"tl_gset_eq:cc\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:NnV\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:Nne\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:Nnn\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:Nno\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:cnV\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:cne\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:cnn\"\n    },\n    {\n      \"name\": \"tl_gset_rescan:cno\"\n    },\n    {\n      \"name\": \"tl_gsort:Nn\"\n    },\n    {\n      \"name\": \"tl_gsort:cn\"\n    },\n    {\n      \"name\": \"tl_gtrim_spaces:N\"\n    },\n    {\n      \"name\": \"tl_gtrim_spaces:c\"\n    },\n    {\n      \"name\": \"tl_head:N\"\n    },\n    {\n      \"name\": \"tl_head:V\"\n    },\n    {\n      \"name\": \"tl_head:f\"\n    },\n    {\n      \"name\": \"tl_head:n\"\n    },\n    {\n      \"name\": \"tl_head:v\"\n    },\n    {\n      \"name\": \"tl_head:w\"\n    },\n    {\n      \"name\": \"tl_if_blank:VF\"\n    },\n    {\n      \"name\": \"tl_if_blank:VT\"\n    },\n    {\n      \"name\": \"tl_if_blank:VTF\"\n    },\n    {\n      \"name\": \"tl_if_blank:eF\"\n    },\n    {\n      \"name\": \"tl_if_blank:eT\"\n    },\n    {\n      \"name\": \"tl_if_blank:eTF\"\n    },\n    {\n      \"name\": \"tl_if_blank:nF\"\n    },\n    {\n      \"name\": \"tl_if_blank:nT\"\n    },\n    {\n      \"name\": \"tl_if_blank:nTF\"\n    },\n    {\n      \"name\": \"tl_if_blank:oF\"\n    },\n    {\n      \"name\": \"tl_if_blank:oT\"\n    },\n    {\n      \"name\": \"tl_if_blank:oTF\"\n    },\n    {\n      \"name\": \"tl_if_blank_p:V\"\n    },\n    {\n      \"name\": \"tl_if_blank_p:e\"\n    },\n    {\n      \"name\": \"tl_if_blank_p:n\"\n    },\n    {\n      \"name\": \"tl_if_blank_p:o\"\n    },\n    {\n      \"name\": \"tl_if_empty:NF\"\n    },\n    {\n      \"name\": \"tl_if_empty:NT\"\n    },\n    {\n      \"name\": \"tl_if_empty:NTF\"\n    },\n    {\n      \"name\": \"tl_if_empty:VF\"\n    },\n    {\n      \"name\": \"tl_if_empty:VT\"\n    },\n    {\n      \"name\": \"tl_if_empty:VTF\"\n    },\n    {\n      \"name\": \"tl_if_empty:cF\"\n    },\n    {\n      \"name\": \"tl_if_empty:cT\"\n    },\n    {\n      \"name\": \"tl_if_empty:cTF\"\n    },\n    {\n      \"name\": \"tl_if_empty:eF\"\n    },\n    {\n      \"name\": \"tl_if_empty:eT\"\n    },\n    {\n      \"name\": \"tl_if_empty:eTF\"\n    },\n    {\n      \"name\": \"tl_if_empty:nF\"\n    },\n    {\n      \"name\": \"tl_if_empty:nT\"\n    },\n    {\n      \"name\": \"tl_if_empty:nTF\"\n    },\n    {\n      \"name\": \"tl_if_empty:oF\"\n    },\n    {\n      \"name\": \"tl_if_empty:oT\"\n    },\n    {\n      \"name\": \"tl_if_empty:oTF\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:N\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:V\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:c\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:e\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:n\"\n    },\n    {\n      \"name\": \"tl_if_empty_p:o\"\n    },\n    {\n      \"name\": \"tl_if_eq:NNF\"\n    },\n    {\n      \"name\": \"tl_if_eq:NNT\"\n    },\n    {\n      \"name\": \"tl_if_eq:NNTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:NcF\"\n    },\n    {\n      \"name\": \"tl_if_eq:NcT\"\n    },\n    {\n      \"name\": \"tl_if_eq:NcTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:NnF\"\n    },\n    {\n      \"name\": \"tl_if_eq:NnT\"\n    },\n    {\n      \"name\": \"tl_if_eq:NnTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:VnF\"\n    },\n    {\n      \"name\": \"tl_if_eq:VnT\"\n    },\n    {\n      \"name\": \"tl_if_eq:VnTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:cNF\"\n    },\n    {\n      \"name\": \"tl_if_eq:cNT\"\n    },\n    {\n      \"name\": \"tl_if_eq:cNTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:ccF\"\n    },\n    {\n      \"name\": \"tl_if_eq:ccT\"\n    },\n    {\n      \"name\": \"tl_if_eq:ccTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:cnF\"\n    },\n    {\n      \"name\": \"tl_if_eq:cnT\"\n    },\n    {\n      \"name\": \"tl_if_eq:cnTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:eeF\"\n    },\n    {\n      \"name\": \"tl_if_eq:eeT\"\n    },\n    {\n      \"name\": \"tl_if_eq:eeTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:enF\"\n    },\n    {\n      \"name\": \"tl_if_eq:enT\"\n    },\n    {\n      \"name\": \"tl_if_eq:enTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:nVF\"\n    },\n    {\n      \"name\": \"tl_if_eq:nVT\"\n    },\n    {\n      \"name\": \"tl_if_eq:nVTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:neF\"\n    },\n    {\n      \"name\": \"tl_if_eq:neT\"\n    },\n    {\n      \"name\": \"tl_if_eq:neTF\"\n    },\n    {\n      \"name\": \"tl_if_eq:nnF\"\n    },\n    {\n      \"name\": \"tl_if_eq:nnT\"\n    },\n    {\n      \"name\": \"tl_if_eq:nnTF\"\n    },\n    {\n      \"name\": \"tl_if_eq_p:NN\"\n    },\n    {\n      \"name\": \"tl_if_eq_p:Nc\"\n    },\n    {\n      \"name\": \"tl_if_eq_p:cN\"\n    },\n    {\n      \"name\": \"tl_if_eq_p:cc\"\n    },\n    {\n      \"name\": \"tl_if_exist:NF\"\n    },\n    {\n      \"name\": \"tl_if_exist:NT\"\n    },\n    {\n      \"name\": \"tl_if_exist:NTF\"\n    },\n    {\n      \"name\": \"tl_if_exist:cF\"\n    },\n    {\n      \"name\": \"tl_if_exist:cT\"\n    },\n    {\n      \"name\": \"tl_if_exist:cTF\"\n    },\n    {\n      \"name\": \"tl_if_exist_p:N\"\n    },\n    {\n      \"name\": \"tl_if_exist_p:c\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:VNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:VNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:VNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:eNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:eNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:eNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:nNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:nNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:nNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:oNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:oNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode:oNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode_p:VN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode_p:eN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode_p:nN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_catcode_p:oN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:VNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:VNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:VNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:eNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:eNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:eNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:fNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:fNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:fNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:nNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:nNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode:nNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode_p:VN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode_p:eN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode_p:fN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_charcode_p:nN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:VNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:VNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:VNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:eNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:eNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:eNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:nNF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:nNT\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning:nNTF\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning_p:VN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning_p:eN\"\n    },\n    {\n      \"name\": \"tl_if_head_eq_meaning_p:nN\"\n    },\n    {\n      \"name\": \"tl_if_head_is_N_type:nF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_N_type:nT\"\n    },\n    {\n      \"name\": \"tl_if_head_is_N_type:nTF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_N_type_p:n\"\n    },\n    {\n      \"name\": \"tl_if_head_is_group:nF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_group:nT\"\n    },\n    {\n      \"name\": \"tl_if_head_is_group:nTF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_group_p:n\"\n    },\n    {\n      \"name\": \"tl_if_head_is_space:nF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_space:nT\"\n    },\n    {\n      \"name\": \"tl_if_head_is_space:nTF\"\n    },\n    {\n      \"name\": \"tl_if_head_is_space_p:n\"\n    },\n    {\n      \"name\": \"tl_if_in:NVF\"\n    },\n    {\n      \"name\": \"tl_if_in:NVT\"\n    },\n    {\n      \"name\": \"tl_if_in:NVTF\"\n    },\n    {\n      \"name\": \"tl_if_in:NnF\"\n    },\n    {\n      \"name\": \"tl_if_in:NnT\"\n    },\n    {\n      \"name\": \"tl_if_in:NnTF\"\n    },\n    {\n      \"name\": \"tl_if_in:NoF\"\n    },\n    {\n      \"name\": \"tl_if_in:NoT\"\n    },\n    {\n      \"name\": \"tl_if_in:NoTF\"\n    },\n    {\n      \"name\": \"tl_if_in:VVF\"\n    },\n    {\n      \"name\": \"tl_if_in:VVT\"\n    },\n    {\n      \"name\": \"tl_if_in:VVTF\"\n    },\n    {\n      \"name\": \"tl_if_in:VnF\"\n    },\n    {\n      \"name\": \"tl_if_in:VnT\"\n    },\n    {\n      \"name\": \"tl_if_in:VnTF\"\n    },\n    {\n      \"name\": \"tl_if_in:cVF\"\n    },\n    {\n      \"name\": \"tl_if_in:cVT\"\n    },\n    {\n      \"name\": \"tl_if_in:cVTF\"\n    },\n    {\n      \"name\": \"tl_if_in:cnF\"\n    },\n    {\n      \"name\": \"tl_if_in:cnT\"\n    },\n    {\n      \"name\": \"tl_if_in:cnTF\"\n    },\n    {\n      \"name\": \"tl_if_in:coF\"\n    },\n    {\n      \"name\": \"tl_if_in:coT\"\n    },\n    {\n      \"name\": \"tl_if_in:coTF\"\n    },\n    {\n      \"name\": \"tl_if_in:nVF\"\n    },\n    {\n      \"name\": \"tl_if_in:nVT\"\n    },\n    {\n      \"name\": \"tl_if_in:nVTF\"\n    },\n    {\n      \"name\": \"tl_if_in:nnF\"\n    },\n    {\n      \"name\": \"tl_if_in:nnT\"\n    },\n    {\n      \"name\": \"tl_if_in:nnTF\"\n    },\n    {\n      \"name\": \"tl_if_in:noF\"\n    },\n    {\n      \"name\": \"tl_if_in:noT\"\n    },\n    {\n      \"name\": \"tl_if_in:noTF\"\n    },\n    {\n      \"name\": \"tl_if_in:onF\"\n    },\n    {\n      \"name\": \"tl_if_in:onT\"\n    },\n    {\n      \"name\": \"tl_if_in:onTF\"\n    },\n    {\n      \"name\": \"tl_if_in:ooF\"\n    },\n    {\n      \"name\": \"tl_if_in:ooT\"\n    },\n    {\n      \"name\": \"tl_if_in:ooTF\"\n    },\n    {\n      \"name\": \"tl_if_novalue:nF\"\n    },\n    {\n      \"name\": \"tl_if_novalue:nT\"\n    },\n    {\n      \"name\": \"tl_if_novalue:nTF\"\n    },\n    {\n      \"name\": \"tl_if_novalue_p:n\"\n    },\n    {\n      \"name\": \"tl_if_single:NF\"\n    },\n    {\n      \"name\": \"tl_if_single:NT\"\n    },\n    {\n      \"name\": \"tl_if_single:NTF\"\n    },\n    {\n      \"name\": \"tl_if_single:cF\"\n    },\n    {\n      \"name\": \"tl_if_single:cT\"\n    },\n    {\n      \"name\": \"tl_if_single:cTF\"\n    },\n    {\n      \"name\": \"tl_if_single:nF\"\n    },\n    {\n      \"name\": \"tl_if_single:nT\"\n    },\n    {\n      \"name\": \"tl_if_single:nTF\"\n    },\n    {\n      \"name\": \"tl_if_single_p:N\"\n    },\n    {\n      \"name\": \"tl_if_single_p:c\"\n    },\n    {\n      \"name\": \"tl_if_single_p:n\"\n    },\n    {\n      \"name\": \"tl_if_single_token:nF\"\n    },\n    {\n      \"name\": \"tl_if_single_token:nT\"\n    },\n    {\n      \"name\": \"tl_if_single_token:nTF\"\n    },\n    {\n      \"name\": \"tl_if_single_token_p:n\"\n    },\n    {\n      \"name\": \"tl_item:Nn\"\n    },\n    {\n      \"name\": \"tl_item:cn\"\n    },\n    {\n      \"name\": \"tl_item:nn\"\n    },\n    {\n      \"name\": \"tl_log:N\"\n    },\n    {\n      \"name\": \"tl_log:c\"\n    },\n    {\n      \"name\": \"tl_log:e\"\n    },\n    {\n      \"name\": \"tl_log:n\"\n    },\n    {\n      \"name\": \"tl_log:x\"\n    },\n    {\n      \"name\": \"tl_map_break:\"\n    },\n    {\n      \"name\": \"tl_map_break:n\"\n    },\n    {\n      \"name\": \"tl_map_function:NN\"\n    },\n    {\n      \"name\": \"tl_map_function:cN\"\n    },\n    {\n      \"name\": \"tl_map_function:nN\"\n    },\n    {\n      \"name\": \"tl_map_inline:Nn\"\n    },\n    {\n      \"name\": \"tl_map_inline:cn\"\n    },\n    {\n      \"name\": \"tl_map_inline:nn\"\n    },\n    {\n      \"name\": \"tl_map_tokens:Nn\"\n    },\n    {\n      \"name\": \"tl_map_tokens:cn\"\n    },\n    {\n      \"name\": \"tl_map_tokens:nn\"\n    },\n    {\n      \"name\": \"tl_map_variable:NNn\"\n    },\n    {\n      \"name\": \"tl_map_variable:cNn\"\n    },\n    {\n      \"name\": \"tl_map_variable:nNn\"\n    },\n    {\n      \"name\": \"tl_new:N\"\n    },\n    {\n      \"name\": \"tl_new:c\"\n    },\n    {\n      \"name\": \"tl_put_left:NV\"\n    },\n    {\n      \"name\": \"tl_put_left:Ne\"\n    },\n    {\n      \"name\": \"tl_put_left:Nn\"\n    },\n    {\n      \"name\": \"tl_put_left:No\"\n    },\n    {\n      \"name\": \"tl_put_left:Nv\"\n    },\n    {\n      \"name\": \"tl_put_left:cV\"\n    },\n    {\n      \"name\": \"tl_put_left:ce\"\n    },\n    {\n      \"name\": \"tl_put_left:cn\"\n    },\n    {\n      \"name\": \"tl_put_left:co\"\n    },\n    {\n      \"name\": \"tl_put_left:cv\"\n    },\n    {\n      \"name\": \"tl_put_right:NV\"\n    },\n    {\n      \"name\": \"tl_put_right:Ne\"\n    },\n    {\n      \"name\": \"tl_put_right:Nn\"\n    },\n    {\n      \"name\": \"tl_put_right:No\"\n    },\n    {\n      \"name\": \"tl_put_right:Nv\"\n    },\n    {\n      \"name\": \"tl_put_right:cV\"\n    },\n    {\n      \"name\": \"tl_put_right:ce\"\n    },\n    {\n      \"name\": \"tl_put_right:cn\"\n    },\n    {\n      \"name\": \"tl_put_right:co\"\n    },\n    {\n      \"name\": \"tl_put_right:cv\"\n    },\n    {\n      \"name\": \"tl_rand_item:N\"\n    },\n    {\n      \"name\": \"tl_rand_item:c\"\n    },\n    {\n      \"name\": \"tl_rand_item:n\"\n    },\n    {\n      \"name\": \"tl_range:Nnn\"\n    },\n    {\n      \"name\": \"tl_range:nnn\"\n    },\n    {\n      \"name\": \"tl_remove_all:NV\"\n    },\n    {\n      \"name\": \"tl_remove_all:Ne\"\n    },\n    {\n      \"name\": \"tl_remove_all:Nn\"\n    },\n    {\n      \"name\": \"tl_remove_all:cV\"\n    },\n    {\n      \"name\": \"tl_remove_all:ce\"\n    },\n    {\n      \"name\": \"tl_remove_all:cn\"\n    },\n    {\n      \"name\": \"tl_remove_once:NV\"\n    },\n    {\n      \"name\": \"tl_remove_once:Ne\"\n    },\n    {\n      \"name\": \"tl_remove_once:Nn\"\n    },\n    {\n      \"name\": \"tl_remove_once:cV\"\n    },\n    {\n      \"name\": \"tl_remove_once:ce\"\n    },\n    {\n      \"name\": \"tl_remove_once:cn\"\n    },\n    {\n      \"name\": \"tl_replace_all:NVn\"\n    },\n    {\n      \"name\": \"tl_replace_all:Nee\"\n    },\n    {\n      \"name\": \"tl_replace_all:Nen\"\n    },\n    {\n      \"name\": \"tl_replace_all:NnV\"\n    },\n    {\n      \"name\": \"tl_replace_all:Nne\"\n    },\n    {\n      \"name\": \"tl_replace_all:Nnn\"\n    },\n    {\n      \"name\": \"tl_replace_all:cVn\"\n    },\n    {\n      \"name\": \"tl_replace_all:cee\"\n    },\n    {\n      \"name\": \"tl_replace_all:cen\"\n    },\n    {\n      \"name\": \"tl_replace_all:cnV\"\n    },\n    {\n      \"name\": \"tl_replace_all:cne\"\n    },\n    {\n      \"name\": \"tl_replace_all:cnn\"\n    },\n    {\n      \"name\": \"tl_replace_once:NVn\"\n    },\n    {\n      \"name\": \"tl_replace_once:Nee\"\n    },\n    {\n      \"name\": \"tl_replace_once:Nen\"\n    },\n    {\n      \"name\": \"tl_replace_once:NnV\"\n    },\n    {\n      \"name\": \"tl_replace_once:Nne\"\n    },\n    {\n      \"name\": \"tl_replace_once:Nnn\"\n    },\n    {\n      \"name\": \"tl_replace_once:cVn\"\n    },\n    {\n      \"name\": \"tl_replace_once:cee\"\n    },\n    {\n      \"name\": \"tl_replace_once:cen\"\n    },\n    {\n      \"name\": \"tl_replace_once:cnV\"\n    },\n    {\n      \"name\": \"tl_replace_once:cne\"\n    },\n    {\n      \"name\": \"tl_replace_once:cnn\"\n    },\n    {\n      \"name\": \"tl_rescan:nV\"\n    },\n    {\n      \"name\": \"tl_rescan:nn\"\n    },\n    {\n      \"name\": \"tl_reverse:N\"\n    },\n    {\n      \"name\": \"tl_reverse:V\"\n    },\n    {\n      \"name\": \"tl_reverse:c\"\n    },\n    {\n      \"name\": \"tl_reverse:e\"\n    },\n    {\n      \"name\": \"tl_reverse:f\"\n    },\n    {\n      \"name\": \"tl_reverse:n\"\n    },\n    {\n      \"name\": \"tl_reverse:o\"\n    },\n    {\n      \"name\": \"tl_reverse_items:n\"\n    },\n    {\n      \"name\": \"tl_set:NV\"\n    },\n    {\n      \"name\": \"tl_set:Ne\"\n    },\n    {\n      \"name\": \"tl_set:Nf\"\n    },\n    {\n      \"name\": \"tl_set:Nn\"\n    },\n    {\n      \"name\": \"tl_set:No\"\n    },\n    {\n      \"name\": \"tl_set:Nv\"\n    },\n    {\n      \"name\": \"tl_set:cV\"\n    },\n    {\n      \"name\": \"tl_set:ce\"\n    },\n    {\n      \"name\": \"tl_set:cf\"\n    },\n    {\n      \"name\": \"tl_set:cn\"\n    },\n    {\n      \"name\": \"tl_set:co\"\n    },\n    {\n      \"name\": \"tl_set:cv\"\n    },\n    {\n      \"name\": \"tl_set_eq:NN\"\n    },\n    {\n      \"name\": \"tl_set_eq:Nc\"\n    },\n    {\n      \"name\": \"tl_set_eq:cN\"\n    },\n    {\n      \"name\": \"tl_set_eq:cc\"\n    },\n    {\n      \"name\": \"tl_set_rescan:NnV\"\n    },\n    {\n      \"name\": \"tl_set_rescan:Nne\"\n    },\n    {\n      \"name\": \"tl_set_rescan:Nnn\"\n    },\n    {\n      \"name\": \"tl_set_rescan:Nno\"\n    },\n    {\n      \"name\": \"tl_set_rescan:cnV\"\n    },\n    {\n      \"name\": \"tl_set_rescan:cne\"\n    },\n    {\n      \"name\": \"tl_set_rescan:cnn\"\n    },\n    {\n      \"name\": \"tl_set_rescan:cno\"\n    },\n    {\n      \"name\": \"tl_show:N\"\n    },\n    {\n      \"name\": \"tl_show:c\"\n    },\n    {\n      \"name\": \"tl_show:e\"\n    },\n    {\n      \"name\": \"tl_show:n\"\n    },\n    {\n      \"name\": \"tl_sort:Nn\"\n    },\n    {\n      \"name\": \"tl_sort:cn\"\n    },\n    {\n      \"name\": \"tl_sort:nN\"\n    },\n    {\n      \"name\": \"tl_tail:N\"\n    },\n    {\n      \"name\": \"tl_tail:V\"\n    },\n    {\n      \"name\": \"tl_tail:f\"\n    },\n    {\n      \"name\": \"tl_tail:n\"\n    },\n    {\n      \"name\": \"tl_tail:v\"\n    },\n    {\n      \"name\": \"tl_to_str:N\"\n    },\n    {\n      \"name\": \"tl_to_str:V\"\n    },\n    {\n      \"name\": \"tl_to_str:c\"\n    },\n    {\n      \"name\": \"tl_to_str:e\"\n    },\n    {\n      \"name\": \"tl_to_str:n\"\n    },\n    {\n      \"name\": \"tl_to_str:o\"\n    },\n    {\n      \"name\": \"tl_to_str:v\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:N\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:V\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:c\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:e\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:n\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:o\"\n    },\n    {\n      \"name\": \"tl_trim_spaces:v\"\n    },\n    {\n      \"name\": \"tl_trim_spaces_apply:nN\"\n    },\n    {\n      \"name\": \"tl_trim_spaces_apply:oN\"\n    },\n    {\n      \"name\": \"tl_use:N\"\n    },\n    {\n      \"name\": \"tl_use:c\"\n    },\n    {\n      \"name\": \"token_case_catcode:Nn\"\n    },\n    {\n      \"name\": \"token_case_catcode:NnF\"\n    },\n    {\n      \"name\": \"token_case_catcode:NnT\"\n    },\n    {\n      \"name\": \"token_case_catcode:NnTF\"\n    },\n    {\n      \"name\": \"token_case_charcode:Nn\"\n    },\n    {\n      \"name\": \"token_case_charcode:NnF\"\n    },\n    {\n      \"name\": \"token_case_charcode:NnT\"\n    },\n    {\n      \"name\": \"token_case_charcode:NnTF\"\n    },\n    {\n      \"name\": \"token_case_meaning:Nn\"\n    },\n    {\n      \"name\": \"token_case_meaning:NnF\"\n    },\n    {\n      \"name\": \"token_case_meaning:NnT\"\n    },\n    {\n      \"name\": \"token_case_meaning:NnTF\"\n    },\n    {\n      \"name\": \"token_if_active:NF\"\n    },\n    {\n      \"name\": \"token_if_active:NT\"\n    },\n    {\n      \"name\": \"token_if_active:NTF\"\n    },\n    {\n      \"name\": \"token_if_active_p:N\"\n    },\n    {\n      \"name\": \"token_if_alignment:NF\"\n    },\n    {\n      \"name\": \"token_if_alignment:NT\"\n    },\n    {\n      \"name\": \"token_if_alignment:NTF\"\n    },\n    {\n      \"name\": \"token_if_alignment_p:N\"\n    },\n    {\n      \"name\": \"token_if_chardef:NF\"\n    },\n    {\n      \"name\": \"token_if_chardef:NT\"\n    },\n    {\n      \"name\": \"token_if_chardef:NTF\"\n    },\n    {\n      \"name\": \"token_if_chardef_p:N\"\n    },\n    {\n      \"name\": \"token_if_cs:NF\"\n    },\n    {\n      \"name\": \"token_if_cs:NT\"\n    },\n    {\n      \"name\": \"token_if_cs:NTF\"\n    },\n    {\n      \"name\": \"token_if_cs_p:N\"\n    },\n    {\n      \"name\": \"token_if_dim_register:NF\"\n    },\n    {\n      \"name\": \"token_if_dim_register:NT\"\n    },\n    {\n      \"name\": \"token_if_dim_register:NTF\"\n    },\n    {\n      \"name\": \"token_if_dim_register_p:N\"\n    },\n    {\n      \"name\": \"token_if_eq_catcode:NNF\"\n    },\n    {\n      \"name\": \"token_if_eq_catcode:NNT\"\n    },\n    {\n      \"name\": \"token_if_eq_catcode:NNTF\"\n    },\n    {\n      \"name\": \"token_if_eq_catcode_p:NN\"\n    },\n    {\n      \"name\": \"token_if_eq_charcode:NNF\"\n    },\n    {\n      \"name\": \"token_if_eq_charcode:NNT\"\n    },\n    {\n      \"name\": \"token_if_eq_charcode:NNTF\"\n    },\n    {\n      \"name\": \"token_if_eq_charcode_p:NN\"\n    },\n    {\n      \"name\": \"token_if_eq_meaning:NNF\"\n    },\n    {\n      \"name\": \"token_if_eq_meaning:NNT\"\n    },\n    {\n      \"name\": \"token_if_eq_meaning:NNTF\"\n    },\n    {\n      \"name\": \"token_if_eq_meaning_p:NN\"\n    },\n    {\n      \"name\": \"token_if_expandable:NF\"\n    },\n    {\n      \"name\": \"token_if_expandable:NT\"\n    },\n    {\n      \"name\": \"token_if_expandable:NTF\"\n    },\n    {\n      \"name\": \"token_if_expandable_p:N\"\n    },\n    {\n      \"name\": \"token_if_font_selection:NF\"\n    },\n    {\n      \"name\": \"token_if_font_selection:NT\"\n    },\n    {\n      \"name\": \"token_if_font_selection:NTF\"\n    },\n    {\n      \"name\": \"token_if_font_selection_p:N\"\n    },\n    {\n      \"name\": \"token_if_group_begin:NF\"\n    },\n    {\n      \"name\": \"token_if_group_begin:NT\"\n    },\n    {\n      \"name\": \"token_if_group_begin:NTF\"\n    },\n    {\n      \"name\": \"token_if_group_begin_p:N\"\n    },\n    {\n      \"name\": \"token_if_group_end:NF\"\n    },\n    {\n      \"name\": \"token_if_group_end:NT\"\n    },\n    {\n      \"name\": \"token_if_group_end:NTF\"\n    },\n    {\n      \"name\": \"token_if_group_end_p:N\"\n    },\n    {\n      \"name\": \"token_if_int_register:NF\"\n    },\n    {\n      \"name\": \"token_if_int_register:NT\"\n    },\n    {\n      \"name\": \"token_if_int_register:NTF\"\n    },\n    {\n      \"name\": \"token_if_int_register_p:N\"\n    },\n    {\n      \"name\": \"token_if_letter:NF\"\n    },\n    {\n      \"name\": \"token_if_letter:NT\"\n    },\n    {\n      \"name\": \"token_if_letter:NTF\"\n    },\n    {\n      \"name\": \"token_if_letter_p:N\"\n    },\n    {\n      \"name\": \"token_if_long_macro:NF\"\n    },\n    {\n      \"name\": \"token_if_long_macro:NT\"\n    },\n    {\n      \"name\": \"token_if_long_macro:NTF\"\n    },\n    {\n      \"name\": \"token_if_long_macro_p:N\"\n    },\n    {\n      \"name\": \"token_if_macro:NF\"\n    },\n    {\n      \"name\": \"token_if_macro:NT\"\n    },\n    {\n      \"name\": \"token_if_macro:NTF\"\n    },\n    {\n      \"name\": \"token_if_macro_p:N\"\n    },\n    {\n      \"name\": \"token_if_math_subscript:NF\"\n    },\n    {\n      \"name\": \"token_if_math_subscript:NT\"\n    },\n    {\n      \"name\": \"token_if_math_subscript:NTF\"\n    },\n    {\n      \"name\": \"token_if_math_subscript_p:N\"\n    },\n    {\n      \"name\": \"token_if_math_superscript:NF\"\n    },\n    {\n      \"name\": \"token_if_math_superscript:NT\"\n    },\n    {\n      \"name\": \"token_if_math_superscript:NTF\"\n    },\n    {\n      \"name\": \"token_if_math_superscript_p:N\"\n    },\n    {\n      \"name\": \"token_if_math_toggle:NF\"\n    },\n    {\n      \"name\": \"token_if_math_toggle:NT\"\n    },\n    {\n      \"name\": \"token_if_math_toggle:NTF\"\n    },\n    {\n      \"name\": \"token_if_math_toggle_p:N\"\n    },\n    {\n      \"name\": \"token_if_mathchardef:NF\"\n    },\n    {\n      \"name\": \"token_if_mathchardef:NT\"\n    },\n    {\n      \"name\": \"token_if_mathchardef:NTF\"\n    },\n    {\n      \"name\": \"token_if_mathchardef_p:N\"\n    },\n    {\n      \"name\": \"token_if_muskip_register:NF\"\n    },\n    {\n      \"name\": \"token_if_muskip_register:NT\"\n    },\n    {\n      \"name\": \"token_if_muskip_register:NTF\"\n    },\n    {\n      \"name\": \"token_if_muskip_register_p:N\"\n    },\n    {\n      \"name\": \"token_if_other:NF\"\n    },\n    {\n      \"name\": \"token_if_other:NT\"\n    },\n    {\n      \"name\": \"token_if_other:NTF\"\n    },\n    {\n      \"name\": \"token_if_other_p:N\"\n    },\n    {\n      \"name\": \"token_if_parameter:NF\"\n    },\n    {\n      \"name\": \"token_if_parameter:NT\"\n    },\n    {\n      \"name\": \"token_if_parameter:NTF\"\n    },\n    {\n      \"name\": \"token_if_parameter_p:N\"\n    },\n    {\n      \"name\": \"token_if_primitive:NF\"\n    },\n    {\n      \"name\": \"token_if_primitive:NT\"\n    },\n    {\n      \"name\": \"token_if_primitive:NTF\"\n    },\n    {\n      \"name\": \"token_if_primitive_p:N\"\n    },\n    {\n      \"name\": \"token_if_protected_long_macro:NF\"\n    },\n    {\n      \"name\": \"token_if_protected_long_macro:NT\"\n    },\n    {\n      \"name\": \"token_if_protected_long_macro:NTF\"\n    },\n    {\n      \"name\": \"token_if_protected_long_macro_p:N\"\n    },\n    {\n      \"name\": \"token_if_protected_macro:NF\"\n    },\n    {\n      \"name\": \"token_if_protected_macro:NT\"\n    },\n    {\n      \"name\": \"token_if_protected_macro:NTF\"\n    },\n    {\n      \"name\": \"token_if_protected_macro_p:N\"\n    },\n    {\n      \"name\": \"token_if_skip_register:NF\"\n    },\n    {\n      \"name\": \"token_if_skip_register:NT\"\n    },\n    {\n      \"name\": \"token_if_skip_register:NTF\"\n    },\n    {\n      \"name\": \"token_if_skip_register_p:N\"\n    },\n    {\n      \"name\": \"token_if_space:NF\"\n    },\n    {\n      \"name\": \"token_if_space:NT\"\n    },\n    {\n      \"name\": \"token_if_space:NTF\"\n    },\n    {\n      \"name\": \"token_if_space_p:N\"\n    },\n    {\n      \"name\": \"token_if_toks_register:NF\"\n    },\n    {\n      \"name\": \"token_if_toks_register:NT\"\n    },\n    {\n      \"name\": \"token_if_toks_register:NTF\"\n    },\n    {\n      \"name\": \"token_if_toks_register_p:N\"\n    },\n    {\n      \"name\": \"token_to_catcode:N\"\n    },\n    {\n      \"name\": \"token_to_meaning:N\"\n    },\n    {\n      \"name\": \"token_to_meaning:c\"\n    },\n    {\n      \"name\": \"token_to_str:N\"\n    },\n    {\n      \"name\": \"token_to_str:c\"\n    },\n    {\n      \"name\": \"use:c\"\n    },\n    {\n      \"name\": \"use:e\"\n    },\n    {\n      \"name\": \"use:n\"\n    },\n    {\n      \"name\": \"use:nn\"\n    },\n    {\n      \"name\": \"use:nnn\"\n    },\n    {\n      \"name\": \"use:nnnn\"\n    },\n    {\n      \"name\": \"use_i:nn\"\n    },\n    {\n      \"name\": \"use_i:nnn\"\n    },\n    {\n      \"name\": \"use_i:nnnn\"\n    },\n    {\n      \"name\": \"use_i:nnnnn\"\n    },\n    {\n      \"name\": \"use_i:nnnnnn\"\n    },\n    {\n      \"name\": \"use_i:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_i:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_i:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_i_delimit_by_q_nil:nw\"\n    },\n    {\n      \"name\": \"use_i_delimit_by_q_recursion_stop:nw\"\n    },\n    {\n      \"name\": \"use_i_delimit_by_q_stop:nw\"\n    },\n    {\n      \"name\": \"use_i_ii:nnn\"\n    },\n    {\n      \"name\": \"use_ii:nn\"\n    },\n    {\n      \"name\": \"use_ii:nnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnnnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_ii:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_ii_i:nn\"\n    },\n    {\n      \"name\": \"use_iii:nnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnnnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_iii:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_iv:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_ix:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_none:n\"\n    },\n    {\n      \"name\": \"use_none:nn\"\n    },\n    {\n      \"name\": \"use_none:nnn\"\n    },\n    {\n      \"name\": \"use_none:nnnn\"\n    },\n    {\n      \"name\": \"use_none:nnnnn\"\n    },\n    {\n      \"name\": \"use_none:nnnnnn\"\n    },\n    {\n      \"name\": \"use_none:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_none:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_none:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_none_delimit_by_q_nil:w\"\n    },\n    {\n      \"name\": \"use_none_delimit_by_q_recursion_stop:w\"\n    },\n    {\n      \"name\": \"use_none_delimit_by_q_stop:w\"\n    },\n    {\n      \"name\": \"use_none_delimit_by_s_stop:w\"\n    },\n    {\n      \"name\": \"use_v:nnnnn\"\n    },\n    {\n      \"name\": \"use_v:nnnnnn\"\n    },\n    {\n      \"name\": \"use_v:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_v:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_v:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_vi:nnnnnn\"\n    },\n    {\n      \"name\": \"use_vi:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_vi:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_vi:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_vii:nnnnnnn\"\n    },\n    {\n      \"name\": \"use_vii:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_vii:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"use_viii:nnnnnnnn\"\n    },\n    {\n      \"name\": \"use_viii:nnnnnnnnn\"\n    },\n    {\n      \"name\": \"vbox:n\"\n    },\n    {\n      \"name\": \"vbox_gset:Nn\"\n    },\n    {\n      \"name\": \"vbox_gset:Nw\"\n    },\n    {\n      \"name\": \"vbox_gset:cn\"\n    },\n    {\n      \"name\": \"vbox_gset:cw\"\n    },\n    {\n      \"name\": \"vbox_gset_end:\"\n    },\n    {\n      \"name\": \"vbox_gset_split_to_ht:NNn\"\n    },\n    {\n      \"name\": \"vbox_gset_split_to_ht:Ncn\"\n    },\n    {\n      \"name\": \"vbox_gset_split_to_ht:cNn\"\n    },\n    {\n      \"name\": \"vbox_gset_split_to_ht:ccn\"\n    },\n    {\n      \"name\": \"vbox_gset_to_ht:Nnn\"\n    },\n    {\n      \"name\": \"vbox_gset_to_ht:Nnw\"\n    },\n    {\n      \"name\": \"vbox_gset_to_ht:cnn\"\n    },\n    {\n      \"name\": \"vbox_gset_to_ht:cnw\"\n    },\n    {\n      \"name\": \"vbox_gset_top:Nn\"\n    },\n    {\n      \"name\": \"vbox_gset_top:cn\"\n    },\n    {\n      \"name\": \"vbox_set:Nn\"\n    },\n    {\n      \"name\": \"vbox_set:Nw\"\n    },\n    {\n      \"name\": \"vbox_set:cn\"\n    },\n    {\n      \"name\": \"vbox_set:cw\"\n    },\n    {\n      \"name\": \"vbox_set_end:\"\n    },\n    {\n      \"name\": \"vbox_set_split_to_ht:NNn\"\n    },\n    {\n      \"name\": \"vbox_set_split_to_ht:Ncn\"\n    },\n    {\n      \"name\": \"vbox_set_split_to_ht:cNn\"\n    },\n    {\n      \"name\": \"vbox_set_split_to_ht:ccn\"\n    },\n    {\n      \"name\": \"vbox_set_to_ht:Nnn\"\n    },\n    {\n      \"name\": \"vbox_set_to_ht:Nnw\"\n    },\n    {\n      \"name\": \"vbox_set_to_ht:cnn\"\n    },\n    {\n      \"name\": \"vbox_set_to_ht:cnw\"\n    },\n    {\n      \"name\": \"vbox_set_top:Nn\"\n    },\n    {\n      \"name\": \"vbox_set_top:cn\"\n    },\n    {\n      \"name\": \"vbox_to_ht:nn\"\n    },\n    {\n      \"name\": \"vbox_to_zero:n\"\n    },\n    {\n      \"name\": \"vbox_top:n\"\n    },\n    {\n      \"name\": \"vbox_unpack:N\"\n    },\n    {\n      \"name\": \"vbox_unpack:c\"\n    },\n    {\n      \"name\": \"vbox_unpack_drop:N\"\n    },\n    {\n      \"name\": \"vbox_unpack_drop:c\"\n    },\n    {\n      \"name\": \"vcoffin_gset:Nnn\"\n    },\n    {\n      \"name\": \"vcoffin_gset:Nnw\"\n    },\n    {\n      \"name\": \"vcoffin_gset:cnn\"\n    },\n    {\n      \"name\": \"vcoffin_gset:cnw\"\n    },\n    {\n      \"name\": \"vcoffin_gset_end:\"\n    },\n    {\n      \"name\": \"vcoffin_set:Nnn\"\n    },\n    {\n      \"name\": \"vcoffin_set:Nnw\"\n    },\n    {\n      \"name\": \"vcoffin_set:cnn\"\n    },\n    {\n      \"name\": \"vcoffin_set:cnw\"\n    },\n    {\n      \"name\": \"vcoffin_set_end:\"\n    },\n    {\n      \"name\": \"ExplSyntaxOn\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"ExplSyntaxOn\\n\\t$0\\n\\\\ExplSyntaxOff\"\n      },\n      \"doc\": \"Insert an \\\\ExplSyntax block\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancybox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shadowbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doublebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ovalbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thinlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicklines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadowsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cornersize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cornersize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cornersize*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cornersize*{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"fancyoval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"fancyoval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fancyoval\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"fancyoval(${2:width},${3:height})[${1:portion%keyvals}]\",\n        \"keys\": [\n          \"\\\\fancyoval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TheSbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GenericCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GenericCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"item(${1:vspace%l})\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"item(${2:vspace%l})[${1:label%plain}]\"\n      }\n    },\n    {\n      \"name\": \"boxput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"boxput(${3:x},${4:y}){${1:contents1}}{${2:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"boxput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"boxput*(${3:x},${4:y}){${1:contents1}}{${2:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"fancyput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fancyput(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"thisfancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"thisfancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fancypage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancypage{${1:cmds1}}{${2:cmds2}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancypage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thisfancypage{${1:cmds1}}{${2:cmds2}}\"\n      }\n    },\n    {\n      \"name\": \"LandScape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LandScape{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Landscape{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Landscape*{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UsePageParameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VerbBox{${1:cmd}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AltGetVerbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndVerbatimTokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimEnvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput[${2:alignment%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim[${2:alignment%keyvals}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb{${1:cmd}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb[${2:default}]{${1:cmd}}|${3:code}|\"\n      }\n    },\n    {\n      \"name\": \"VerbatimSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimFuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatimLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatimCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbOutCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbOutLine\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Sbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beqnarray\"\n    },\n    {\n      \"name\": \"Beqnarray*\"\n    },\n    {\n      \"name\": \"landfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float}}{${2:rotation_command}}\"\n      }\n    },\n    {\n      \"name\": \"Bcenter\"\n    },\n    {\n      \"name\": \"Bcenter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bflushleft\"\n    },\n    {\n      \"name\": \"Bflushleft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bflushright\"\n    },\n    {\n      \"name\": \"Bflushright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Blist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:item_type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Blist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:item_type}}{${2:code}}[${3:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"LandScape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Verbatim\"\n    },\n    {\n      \"name\": \"LVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"VerbatimOut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\fancyoval\": [\n      \"t\",\n      \"b\",\n      \"l\",\n      \"r\"\n    ],\n    \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyhdr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fancyfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyfoot[${2:places}]{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhead[${2:places}]{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhf[${2:places}]{${1:output%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhf{${1:output%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyfootoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfootoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyheadoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyheadoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyheadoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyheadoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhfoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhfoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancypagestyle\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fancypagestyle{${1:style name}}[${3:base style}]{${2:definitions%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancypagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancypagestyle{${1:style name%specialDef}}{${2:definitions%text}}\"\n      }\n    },\n    {\n      \"name\": \"iftopfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftopfloat{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifbotfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbotfloat{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"iffloatpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffloatpage{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"iffootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffootnote{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"headrulewidth\"\n    },\n    {\n      \"name\": \"footrulewidth\"\n    },\n    {\n      \"name\": \"headruleskip\"\n    },\n    {\n      \"name\": \"footruleskip\"\n    },\n    {\n      \"name\": \"headrule\"\n    },\n    {\n      \"name\": \"footrule\"\n    },\n    {\n      \"name\": \"headwidth\"\n    },\n    {\n      \"name\": \"fancyheadinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyheadinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfootinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhfinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"fancycenter[${4:distance%l}][${5:stretch}]{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fancycenter[${4:distance%l}]{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fancycenter{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"nouppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nouppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:CH-even%text}]{${1:CH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:CF-even%text}]{${1:CF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lhead[${2:LH-even%text}]{${1:LH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lfoot[${2:LF-even%text}]{${1:LF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rhead[${2:RH-even%text}]{${1:RH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rfoot[${2:RF-even%text}]{${1:RF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfoot{${1:footer%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancyhdr#c\": [\n      \"nocheck\",\n      \"compatV3\",\n      \"twoside\",\n      \"myheadings\",\n      \"headings\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"fancy\",\n      \"%fancypagestyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancyhdr#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/fancyref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fref[${2:format%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fref[${2:format%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyrefchangeprefix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancyrefchangeprefix{${1:prefix macro}}{${2:preﬁx}}\"\n      }\n    },\n    {\n      \"name\": \"fancyrefaddcaptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancyrefaddcaptions{${1:language}}{${2:string defs}}\"\n      }\n    },\n    {\n      \"name\": \"frefformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frefformat{${1:format%keyvals}}{${2:preﬁx macro}}{${3:output}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Frefformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Frefformat{${1:format%keyvals}}{${2:preﬁx macro}}{${3:output}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyrefhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyrefhook{${1:output of format}}\"\n      }\n    },\n    {\n      \"name\": \"fancyrefchaplabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefseclabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefeqlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreffiglabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreftablabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefenumlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreffnlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefargdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefloosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreftightspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefdefaultspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefenumname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefeqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefpgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefseename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freftabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefenumname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefeqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefpgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefseename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freftabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffigshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefpgshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freftabshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffigshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefpgshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freftabshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefdefaultformat\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancyref#c\": [\n      \"german\",\n      \"english\",\n      \"loose\",\n      \"margin\",\n      \"paren\",\n      \"plain\",\n      \"tight\",\n      \"vario\"\n    ],\n    \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\": [\n      \"vario\",\n      \"plain\",\n      \"margin\",\n      \"main\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancyref#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/fancyunits-base.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unit{${1:number}}{${2:unit commands}}\"\n      }\n    },\n    {\n      \"name\": \"addunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addunit{${1:new unit command}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pow{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ufrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ufrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"Ufrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ufrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"UFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UFrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"per\"\n    },\n    {\n      \"name\": \"power\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"power{${1:text}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"Square\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Square{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Squared\"\n    },\n    {\n      \"name\": \"cubic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cubic{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"cubed\"\n    },\n    {\n      \"name\": \"fourth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourth{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"reciprocal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reciprocal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpsquare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpsquare{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpsquared\"\n    },\n    {\n      \"name\": \"rpcubic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpcubic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpcubed\"\n    },\n    {\n      \"name\": \"rpfourth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpfourth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"metre\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"yocto\"\n    },\n    {\n      \"name\": \"zepto\"\n    },\n    {\n      \"name\": \"atto\"\n    },\n    {\n      \"name\": \"fempto\"\n    },\n    {\n      \"name\": \"pico\"\n    },\n    {\n      \"name\": \"nano\"\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"milli\"\n    },\n    {\n      \"name\": \"centi\"\n    },\n    {\n      \"name\": \"deci\"\n    },\n    {\n      \"name\": \"deca\"\n    },\n    {\n      \"name\": \"deka\"\n    },\n    {\n      \"name\": \"hecto\"\n    },\n    {\n      \"name\": \"kilo\"\n    },\n    {\n      \"name\": \"mega\"\n    },\n    {\n      \"name\": \"giga\"\n    },\n    {\n      \"name\": \"tera\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"exa\"\n    },\n    {\n      \"name\": \"zetta\"\n    },\n    {\n      \"name\": \"yotta\"\n    },\n    {\n      \"name\": \"yoctod\"\n    },\n    {\n      \"name\": \"zeptod\"\n    },\n    {\n      \"name\": \"attod\"\n    },\n    {\n      \"name\": \"femptod\"\n    },\n    {\n      \"name\": \"picod\"\n    },\n    {\n      \"name\": \"nanod\"\n    },\n    {\n      \"name\": \"microd\"\n    },\n    {\n      \"name\": \"millid\"\n    },\n    {\n      \"name\": \"centid\"\n    },\n    {\n      \"name\": \"decid\"\n    },\n    {\n      \"name\": \"decad\"\n    },\n    {\n      \"name\": \"dekad\"\n    },\n    {\n      \"name\": \"decaD\"\n    },\n    {\n      \"name\": \"hectod\"\n    },\n    {\n      \"name\": \"kilod\"\n    },\n    {\n      \"name\": \"megad\"\n    },\n    {\n      \"name\": \"gigad\"\n    },\n    {\n      \"name\": \"terad\"\n    },\n    {\n      \"name\": \"petad\"\n    },\n    {\n      \"name\": \"exad\"\n    },\n    {\n      \"name\": \"zettad\"\n    },\n    {\n      \"name\": \"yottad\"\n    },\n    {\n      \"name\": \"rad\"\n    },\n    {\n      \"name\": \"sterad\"\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"celsius\"\n    },\n    {\n      \"name\": \"degreecelsius\"\n    },\n    {\n      \"name\": \"lumen\"\n    },\n    {\n      \"name\": \"lux\"\n    },\n    {\n      \"name\": \"becquerel\"\n    },\n    {\n      \"name\": \"Gray\"\n    },\n    {\n      \"name\": \"sievert\"\n    },\n    {\n      \"name\": \"radianbase\"\n    },\n    {\n      \"name\": \"steradianbase\"\n    },\n    {\n      \"name\": \"hertzbase\"\n    },\n    {\n      \"name\": \"newtonbase\"\n    },\n    {\n      \"name\": \"pascalbase\"\n    },\n    {\n      \"name\": \"joulebase\"\n    },\n    {\n      \"name\": \"wattbase\"\n    },\n    {\n      \"name\": \"coulombbase\"\n    },\n    {\n      \"name\": \"voltbase\"\n    },\n    {\n      \"name\": \"faradbase\"\n    },\n    {\n      \"name\": \"ohmbase\"\n    },\n    {\n      \"name\": \"siemensbase\"\n    },\n    {\n      \"name\": \"weberbase\"\n    },\n    {\n      \"name\": \"teslabase\"\n    },\n    {\n      \"name\": \"henrybase\"\n    },\n    {\n      \"name\": \"celsiusbase\"\n    },\n    {\n      \"name\": \"degreecelsiusbase\"\n    },\n    {\n      \"name\": \"lumenbase\"\n    },\n    {\n      \"name\": \"luxbase\"\n    },\n    {\n      \"name\": \"becquerelbase\"\n    },\n    {\n      \"name\": \"Graybase\"\n    },\n    {\n      \"name\": \"sievertbase\"\n    },\n    {\n      \"name\": \"derradian\"\n    },\n    {\n      \"name\": \"dersteradian\"\n    },\n    {\n      \"name\": \"derhertz\"\n    },\n    {\n      \"name\": \"dernewton\"\n    },\n    {\n      \"name\": \"derpascal\"\n    },\n    {\n      \"name\": \"derjoule\"\n    },\n    {\n      \"name\": \"derwatt\"\n    },\n    {\n      \"name\": \"dercoulomb\"\n    },\n    {\n      \"name\": \"dervolt\"\n    },\n    {\n      \"name\": \"derfarad\"\n    },\n    {\n      \"name\": \"derohm\"\n    },\n    {\n      \"name\": \"dersiemens\"\n    },\n    {\n      \"name\": \"derweber\"\n    },\n    {\n      \"name\": \"dertesla\"\n    },\n    {\n      \"name\": \"derhenry\"\n    },\n    {\n      \"name\": \"dercelsius\"\n    },\n    {\n      \"name\": \"derdegreecelsius\"\n    },\n    {\n      \"name\": \"derlumen\"\n    },\n    {\n      \"name\": \"derlux\"\n    },\n    {\n      \"name\": \"derbecquerel\"\n    },\n    {\n      \"name\": \"derGray\"\n    },\n    {\n      \"name\": \"dersievert\"\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"dday\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"paminute\"\n    },\n    {\n      \"name\": \"parsecond\"\n    },\n    {\n      \"name\": \"angstrom\"\n    },\n    {\n      \"name\": \"AstroE\"\n    },\n    {\n      \"name\": \"lightyear\"\n    },\n    {\n      \"name\": \"parsec\"\n    },\n    {\n      \"name\": \"gal\"\n    },\n    {\n      \"name\": \"liter\"\n    },\n    {\n      \"name\": \"litre\"\n    },\n    {\n      \"name\": \"atomicmass\"\n    },\n    {\n      \"name\": \"gram\"\n    },\n    {\n      \"name\": \"ton\"\n    },\n    {\n      \"name\": \"tonne\"\n    },\n    {\n      \"name\": \"barn\"\n    },\n    {\n      \"name\": \"hectare\"\n    },\n    {\n      \"name\": \"are\"\n    },\n    {\n      \"name\": \"bbar\"\n    },\n    {\n      \"name\": \"curie\"\n    },\n    {\n      \"name\": \"rem\"\n    },\n    {\n      \"name\": \"roentgen\"\n    },\n    {\n      \"name\": \"oersted\"\n    },\n    {\n      \"name\": \"electronvolt\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyunits-np.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Graypersecondnp\"\n    },\n    {\n      \"name\": \"metrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"joulepermolenp\"\n    },\n    {\n      \"name\": \"molepercubicmetrenp\"\n    },\n    {\n      \"name\": \"radianpersquaresecondnp\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondnp\"\n    },\n    {\n      \"name\": \"radianpersecondnp\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetrenp\"\n    },\n    {\n      \"name\": \"coulombpermolnp\"\n    },\n    {\n      \"name\": \"amperepersquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrenp\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonsecondnp\"\n    },\n    {\n      \"name\": \"pascalsecondnp\"\n    },\n    {\n      \"name\": \"coulombpercubicmetrenp\"\n    },\n    {\n      \"name\": \"voltpermetrenp\"\n    },\n    {\n      \"name\": \"coulombpersquaremetrenp\"\n    },\n    {\n      \"name\": \"faradpermetrenp\"\n    },\n    {\n      \"name\": \"wattpersquaremetrenp\"\n    },\n    {\n      \"name\": \"joulepersquaremetrenp\"\n    },\n    {\n      \"name\": \"newtonpercubicmetrenp\"\n    },\n    {\n      \"name\": \"newtonperkilogramnp\"\n    },\n    {\n      \"name\": \"jouleperkelvinnp\"\n    },\n    {\n      \"name\": \"jouleperkilogramnp\"\n    },\n    {\n      \"name\": \"coulombperkilogramnp\"\n    },\n    {\n      \"name\": \"Squaremetrepersecondnp\"\n    },\n    {\n      \"name\": \"Squaremetrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondnp\"\n    },\n    {\n      \"name\": \"candelapersquaremetrenp\"\n    },\n    {\n      \"name\": \"amperepermetrenp\"\n    },\n    {\n      \"name\": \"jouleperteslanp\"\n    },\n    {\n      \"name\": \"henrypermetrenp\"\n    },\n    {\n      \"name\": \"kilogrampersecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrampermetrenp\"\n    },\n    {\n      \"name\": \"joulepermolekelvinnp\"\n    },\n    {\n      \"name\": \"kilogramperkilomolenp\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"newtonpersquaremetrenp\"\n    },\n    {\n      \"name\": \"persquaremetresecondnp\"\n    },\n    {\n      \"name\": \"wattperkilogramnp\"\n    },\n    {\n      \"name\": \"wattpercubicmetrenp\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradiannp\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinnp\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogramnp\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramnp\"\n    },\n    {\n      \"name\": \"newtonpermetrenp\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinnp\"\n    },\n    {\n      \"name\": \"newtonmetrenp\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicsecondnp\"\n    },\n    {\n      \"name\": \"metrepersecondnp\"\n    },\n    {\n      \"name\": \"joulepercubicmetrenp\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombnp\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetrenp\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyunits-per.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Squaremetre\"\n    },\n    {\n      \"name\": \"cubicmetre\"\n    },\n    {\n      \"name\": \"Graypersecond\"\n    },\n    {\n      \"name\": \"metrepersquaresecond\"\n    },\n    {\n      \"name\": \"joulepermole\"\n    },\n    {\n      \"name\": \"molepercubicmetre\"\n    },\n    {\n      \"name\": \"radianpersquaresecond\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecond\"\n    },\n    {\n      \"name\": \"radianpersecond\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetre\"\n    },\n    {\n      \"name\": \"coulombpermol\"\n    },\n    {\n      \"name\": \"amperepersquaremetre\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetre\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonsecond\"\n    },\n    {\n      \"name\": \"pascalsecond\"\n    },\n    {\n      \"name\": \"coulombpercubicmetre\"\n    },\n    {\n      \"name\": \"amperemetresecond\"\n    },\n    {\n      \"name\": \"voltpermetre\"\n    },\n    {\n      \"name\": \"coulombpersquaremetre\"\n    },\n    {\n      \"name\": \"faradpermetre\"\n    },\n    {\n      \"name\": \"ohmmetre\"\n    },\n    {\n      \"name\": \"kilowatthour\"\n    },\n    {\n      \"name\": \"wattpersquaremetre\"\n    },\n    {\n      \"name\": \"joulepersquaremetre\"\n    },\n    {\n      \"name\": \"newtonpercubicmetre\"\n    },\n    {\n      \"name\": \"newtonperkilogram\"\n    },\n    {\n      \"name\": \"jouleperkelvin\"\n    },\n    {\n      \"name\": \"jouleperkilogram\"\n    },\n    {\n      \"name\": \"coulombperkilogram\"\n    },\n    {\n      \"name\": \"Squaremetrepersecond\"\n    },\n    {\n      \"name\": \"rpsquaremetrepersecond\"\n    },\n    {\n      \"name\": \"Squaremetrepersquaresecond\"\n    },\n    {\n      \"name\": \"rpsquaremetrepersquaresecond\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecond\"\n    },\n    {\n      \"name\": \"candelapersquaremetre\"\n    },\n    {\n      \"name\": \"amperepermetre\"\n    },\n    {\n      \"name\": \"joulepertesla\"\n    },\n    {\n      \"name\": \"henrypermetre\"\n    },\n    {\n      \"name\": \"kilogrampersecond\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecond\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetre\"\n    },\n    {\n      \"name\": \"kilogrampermetre\"\n    },\n    {\n      \"name\": \"joulepermolekelvin\"\n    },\n    {\n      \"name\": \"kilogramperkilomole\"\n    },\n    {\n      \"name\": \"kilogramsquaremetre\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecond\"\n    },\n    {\n      \"name\": \"newtonpersquaremetre\"\n    },\n    {\n      \"name\": \"persquaremetresecond\"\n    },\n    {\n      \"name\": \"wattperkilogram\"\n    },\n    {\n      \"name\": \"wattpercubicmetre\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradian\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvin\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogram\"\n    },\n    {\n      \"name\": \"rpsquaremetreperkilogram\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogram\"\n    },\n    {\n      \"name\": \"rpcubicmetreperkilogram\"\n    },\n    {\n      \"name\": \"newtonpermetre\"\n    },\n    {\n      \"name\": \"Celsius\"\n    },\n    {\n      \"name\": \"wattpermetrekelvin\"\n    },\n    {\n      \"name\": \"newtonmetre\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicsecond\"\n    },\n    {\n      \"name\": \"metrepersecond\"\n    },\n    {\n      \"name\": \"joulepercubicmetre\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulomb\"\n    },\n    {\n      \"name\": \"cubicmetrepersecond\"\n    },\n    {\n      \"name\": \"rpcubicmetrepersecond\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetre\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyunits_big-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GraypersecondUF\"\n    },\n    {\n      \"name\": \"metrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"joulepermoleUF\"\n    },\n    {\n      \"name\": \"molepercubicmetreUF\"\n    },\n    {\n      \"name\": \"radianpersquaresecondUF\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondUF\"\n    },\n    {\n      \"name\": \"radianpersecondUF\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicmetreUF\"\n    },\n    {\n      \"name\": \"coulombpermolUF\"\n    },\n    {\n      \"name\": \"amperepersquaremetreUF\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreUF\"\n    },\n    {\n      \"name\": \"SquaremetrepernewtonsecondUF\"\n    },\n    {\n      \"name\": \"pascalsecondUF\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreUF\"\n    },\n    {\n      \"name\": \"voltpermetreUF\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreUF\"\n    },\n    {\n      \"name\": \"faradpermetreUF\"\n    },\n    {\n      \"name\": \"wattpersquaremetreUF\"\n    },\n    {\n      \"name\": \"joulepersquaremetreUF\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreUF\"\n    },\n    {\n      \"name\": \"newtonperkilogramUF\"\n    },\n    {\n      \"name\": \"jouleperkelvinUF\"\n    },\n    {\n      \"name\": \"jouleperkilogramUF\"\n    },\n    {\n      \"name\": \"coulombperkilogramUF\"\n    },\n    {\n      \"name\": \"SquaremetrepersecondUF\"\n    },\n    {\n      \"name\": \"SquaremetrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondUF\"\n    },\n    {\n      \"name\": \"candelapersquaremetreUF\"\n    },\n    {\n      \"name\": \"amperepermetreUF\"\n    },\n    {\n      \"name\": \"jouleperteslaUF\"\n    },\n    {\n      \"name\": \"henrypermetreUF\"\n    },\n    {\n      \"name\": \"kilogrampersecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreUF\"\n    },\n    {\n      \"name\": \"kilogrampermetreUF\"\n    },\n    {\n      \"name\": \"joulepermolekelvinUF\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleUF\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreUF\"\n    },\n    {\n      \"name\": \"persquaremetresecondUF\"\n    },\n    {\n      \"name\": \"wattperkilogramUF\"\n    },\n    {\n      \"name\": \"wattpercubicmetreUF\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianUF\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinUF\"\n    },\n    {\n      \"name\": \"SquaremetreperkilogramUF\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramUF\"\n    },\n    {\n      \"name\": \"newtonpermetreUF\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinUF\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicsecondUF\"\n    },\n    {\n      \"name\": \"metrepersecondUF\"\n    },\n    {\n      \"name\": \"joulepercubicmetreUF\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombUF\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreUF\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyunits_medium-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GraypersecondUf\"\n    },\n    {\n      \"name\": \"metrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"joulepermoleUf\"\n    },\n    {\n      \"name\": \"molepercubicmetreUf\"\n    },\n    {\n      \"name\": \"radianpersquaresecondUf\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondUf\"\n    },\n    {\n      \"name\": \"radianpersecondUf\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicmetreUf\"\n    },\n    {\n      \"name\": \"coulombpermolUf\"\n    },\n    {\n      \"name\": \"amperepersquaremetreUf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreUf\"\n    },\n    {\n      \"name\": \"SquaremetrepernewtonsecondUf\"\n    },\n    {\n      \"name\": \"pascalsecondUf\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreUf\"\n    },\n    {\n      \"name\": \"voltpermetreUf\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreUf\"\n    },\n    {\n      \"name\": \"faradpermetreUf\"\n    },\n    {\n      \"name\": \"wattpersquaremetreUf\"\n    },\n    {\n      \"name\": \"joulepersquaremetreUf\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreUf\"\n    },\n    {\n      \"name\": \"newtonperkilogramUf\"\n    },\n    {\n      \"name\": \"jouleperkelvinUf\"\n    },\n    {\n      \"name\": \"jouleperkilogramUf\"\n    },\n    {\n      \"name\": \"coulombperkilogramUf\"\n    },\n    {\n      \"name\": \"SquaremetrepersecondUf\"\n    },\n    {\n      \"name\": \"SquaremetrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondUf\"\n    },\n    {\n      \"name\": \"candelapersquaremetreUf\"\n    },\n    {\n      \"name\": \"amperepermetreUf\"\n    },\n    {\n      \"name\": \"jouleperteslaUf\"\n    },\n    {\n      \"name\": \"henrypermetreUf\"\n    },\n    {\n      \"name\": \"kilogrampersecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreUf\"\n    },\n    {\n      \"name\": \"kilogrampermetreUf\"\n    },\n    {\n      \"name\": \"joulepermolekelvinUf\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleUf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreUf\"\n    },\n    {\n      \"name\": \"persquaremetresecondUf\"\n    },\n    {\n      \"name\": \"wattperkilogramUf\"\n    },\n    {\n      \"name\": \"wattpercubicmetreUf\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianUf\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinUf\"\n    },\n    {\n      \"name\": \"SquaremetreperkilogramUf\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramUf\"\n    },\n    {\n      \"name\": \"newtonpermetreUf\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinUf\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicsecondUf\"\n    },\n    {\n      \"name\": \"metrepersecondUf\"\n    },\n    {\n      \"name\": \"joulepercubicmetreUf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombUf\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreUf\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyunits_small-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Grayperseconduf\"\n    },\n    {\n      \"name\": \"metrepersquareseconduf\"\n    },\n    {\n      \"name\": \"joulepermoleuf\"\n    },\n    {\n      \"name\": \"molepercubicmetreuf\"\n    },\n    {\n      \"name\": \"radianpersquareseconduf\"\n    },\n    {\n      \"name\": \"kilogramsquaremetreperseconduf\"\n    },\n    {\n      \"name\": \"radianperseconduf\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetreuf\"\n    },\n    {\n      \"name\": \"coulombpermoluf\"\n    },\n    {\n      \"name\": \"amperepersquaremetreuf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreuf\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonseconduf\"\n    },\n    {\n      \"name\": \"pascalseconduf\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreuf\"\n    },\n    {\n      \"name\": \"voltpermetreuf\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreuf\"\n    },\n    {\n      \"name\": \"faradpermetreuf\"\n    },\n    {\n      \"name\": \"wattpersquaremetreuf\"\n    },\n    {\n      \"name\": \"joulepersquaremetreuf\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreuf\"\n    },\n    {\n      \"name\": \"newtonperkilogramuf\"\n    },\n    {\n      \"name\": \"jouleperkelvinuf\"\n    },\n    {\n      \"name\": \"jouleperkilogramuf\"\n    },\n    {\n      \"name\": \"coulombperkilogramuf\"\n    },\n    {\n      \"name\": \"Squaremetreperseconduf\"\n    },\n    {\n      \"name\": \"Squaremetrepersquareseconduf\"\n    },\n    {\n      \"name\": \"kilogrammetreperseconduf\"\n    },\n    {\n      \"name\": \"candelapersquaremetreuf\"\n    },\n    {\n      \"name\": \"amperepermetreuf\"\n    },\n    {\n      \"name\": \"jouleperteslauf\"\n    },\n    {\n      \"name\": \"henrypermetreuf\"\n    },\n    {\n      \"name\": \"kilogramperseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreuf\"\n    },\n    {\n      \"name\": \"kilogrampermetreuf\"\n    },\n    {\n      \"name\": \"joulepermolekelvinuf\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleuf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquareseconduf\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreuf\"\n    },\n    {\n      \"name\": \"persquaremetreseconduf\"\n    },\n    {\n      \"name\": \"wattperkilogramuf\"\n    },\n    {\n      \"name\": \"wattpercubicmetreuf\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianuf\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinuf\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogramuf\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramuf\"\n    },\n    {\n      \"name\": \"newtonpermetreuf\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinuf\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicseconduf\"\n    },\n    {\n      \"name\": \"metreperseconduf\"\n    },\n    {\n      \"name\": \"joulepercubicmetreuf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombuf\"\n    },\n    {\n      \"name\": \"cubicmetreperseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreuf\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fancyvrb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Verb[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Verb*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb*|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Verb*\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Verb*[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimFootnotes\"\n    },\n    {\n      \"name\": \"DefineShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"DefineShortVerb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineShortVerb[${2:options}]{${1:\\\\character}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UndefineShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndefineShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"fvset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fvset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefineVerbatimEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CustomVerbatimEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CustomVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RecustomVerbatimEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecustomVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CustomVerbatimCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CustomVerbatimCommand{${1:command}}{${2:cmd type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RecustomVerbatimCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecustomVerbatimCommand{${1:command}}{${2:cmd type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb{${1:name}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb[${2:options}]{${1:name}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SaveVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb*{${1:name}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb*[${2:options}]{${1:name}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerb[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerb*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LUseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LUseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LVerbatimInput[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LVerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbAfterSave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbDefineActive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFileExtension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFormatCom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFormatLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbGetLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbGetVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbHFuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbRuleColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStartNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStartString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStopNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStopString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbTabSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbVspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pUseMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaveGVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaveMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFancyVerbLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimEnvironment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Verbatim\"\n    },\n    {\n      \"name\": \"Verbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Verbatim*\"\n    },\n    {\n      \"name\": \"Verbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatim*\"\n    },\n    {\n      \"name\": \"BVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LVerbatim\"\n    },\n    {\n      \"name\": \"LVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LVerbatim*\"\n    },\n    {\n      \"name\": \"LVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file name%file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\": [\n      \"aftersave={${1:code}}\"\n    ],\n    \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ],\n    \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\": [\n      \"boxwidth=\",\n      \"baseline=${1|b,c,t|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fhgtechdoku_additional.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fulltextwidth\"\n    },\n    {\n      \"name\": \"setauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setauthor{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setinstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinstitute{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setpartnerlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartnerlogo{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setpartner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartner{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"settitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"innertitlepage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fixme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fxsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnote{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxnote[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxwarning{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxwarning\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxwarning[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxerror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxerror{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxerror\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxerror[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxfatal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxfatal{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxfatal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxfatal[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnote*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxnote*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxwarning*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxwarning*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxwarning*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxwarning*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxerror*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxerror*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxerror*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxerror*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxfatal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxfatal*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxfatal*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxfatal*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoffixmes\"\n    },\n    {\n      \"name\": \"fxuselayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxuselayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuselayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxloadlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxuseenvlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxuseenvlayout{${1:layout%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadenvlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadenvlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxusetargetlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxusetargetlayout{${1:layout%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadtargetlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadtargetlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxsetface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fxsetface{${1:face%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\fxsetface\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXRegisterAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXRegisterAuthor{${1:cmdprefix}}{${2:envprefix}}{${3:author}}\"\n      }\n    },\n    {\n      \"name\": \"fxusetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxusetheme{${1:theme%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetheme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutInline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutInline{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutFootnote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutIndex{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMarginClue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMarginClue{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMarginNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMarginNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFSigNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFSigNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFSigMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFSigMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCSigNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCSigNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCSigMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCSigMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutContentsLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutContentsLine{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutPlainBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutPlainBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutPlainEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutPlainEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutSignatureBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutSignatureBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutSignatureEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutSignatureEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorSigBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorSigBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorSigEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorSigEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutPlain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutPlain{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutChangeBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutChangeBar{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutColor{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutColorCB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutColorCB{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXRegisterLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FXRegisterLayout[${3:excluded layouts}]{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterLayout*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FXRegisterLayout*[${3:excluded layouts}]{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesLayout{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXRegisterEnvLayout{${1:name}}{${2:begincmd%cmd}}{${3:endcmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesEnvLayout{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXRegisterTargetLayout{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesTargetLayout{${1:name}}[${2:relase info}]\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineEnvLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineTargetLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireLayouts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireLayouts{${1:layouts}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireEnvLayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireTargetLayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesTheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesTheme{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"croatianlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixmeindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixmelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"francaislistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxaddcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxaddcontentsline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fxcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fxcontentsline{${1:contents}}{${2:target}}\"\n      }\n    },\n    {\n      \"name\": \"fxcroatianerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatiannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatiannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaiserrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaisfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaisnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaiswarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrencherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrencherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitaliannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitaliannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxnotename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnotename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fxnotesname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fxspanisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FXLogError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogError{${1:error text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogFatal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogFatal{${1:error text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogNote{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogWarning{${1:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"thefixmecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxnotecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxwarningcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxerrorcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxfatalcount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"anfxnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxwarning\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxerror\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxerror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxfatal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxfatal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxwarning*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxwarning*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxerror*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxerror*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxfatal*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxfatal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"final\",\n      \"draft\",\n      \"status=${1|final,draft|}\",\n      \"layout={${1:options}}\",\n      \"morelayout={${1:options}}\",\n      \"inline\",\n      \"noinline\",\n      \"margin\",\n      \"nomargin\",\n      \"footnote\",\n      \"nofootnote\",\n      \"index\",\n      \"noindex\",\n      \"marginclue\",\n      \"nomarginclue\",\n      \"marginnote\",\n      \"nomarginnote\",\n      \"pdfnote\",\n      \"nopdfnote\",\n      \"pdfmargin\",\n      \"nopdfmargin\",\n      \"pdfsignote\",\n      \"nopdfsignote\",\n      \"pdfsigmargin\",\n      \"nopdfsigmargin\",\n      \"pdfcnote\",\n      \"nopdfcnote\",\n      \"pdfcmargin\",\n      \"nopdfcmargin\",\n      \"pdfcsignote\",\n      \"nopdfcsignote\",\n      \"pdfcsigmargin\",\n      \"nopdfcsigmargin\",\n      \"innerlayout={${1:options}}\",\n      \"target=\",\n      \"inlineface=${1:font commands}\",\n      \"marginface=${1:font commands}\",\n      \"envface=${1:font commands}\",\n      \"signatureface=${1:font commands}\",\n      \"targetface=${1:font commands}\",\n      \"silent\",\n      \"nosilent\",\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"spanish\",\n      \"italian\",\n      \"german\",\n      \"ngerman\",\n      \"danish\",\n      \"croatian\",\n      \"lang=${1|english,french,francais,spanish,italian,german,ngerman,danish,croatian|}\",\n      \"langtrack\",\n      \"defaultlang=${1|english,french,francais,spanish,italian,german,ngerman,danish,croatian|}\",\n      \"author=${1:name}\",\n      \"singleuser\",\n      \"multiuser\",\n      \"mode=${1|singleuser,multiuser|}\"\n    ],\n    \"\\\\fxuselayouts\": [\n      \"inline\",\n      \"noinline\",\n      \"margin\",\n      \"nomargin\",\n      \"footnote\",\n      \"nofootnote\",\n      \"index\",\n      \"noindex\",\n      \"marginclue\",\n      \"nomarginclue\",\n      \"marginnote\",\n      \"nomarginnote\",\n      \"pdfnote\",\n      \"nopdfnote\",\n      \"pdfmargin\",\n      \"nopdfmargin\",\n      \"pdfsignote\",\n      \"nopdfsignote\",\n      \"pdfsigmargin\",\n      \"nopdfsigmargin\",\n      \"pdfcnote\",\n      \"nopdfcnote\",\n      \"pdfcmargin\",\n      \"nopdfcmargin\",\n      \"pdfcsignote\",\n      \"nopdfcsignote\",\n      \"pdfcsigmargin\",\n      \"nopdfcsigmargin\"\n    ],\n    \"\\\\fxloadlayouts\": [\n      \"inline\",\n      \"margin\",\n      \"footnote\",\n      \"index\",\n      \"marginclue\",\n      \"marginnote\",\n      \"pdfnote\",\n      \"pdfmargin\",\n      \"pdfsignote\",\n      \"pdfsigmargin\",\n      \"pdfcnote\",\n      \"pdfcmargin\",\n      \"pdfcsignote\",\n      \"pdfcsigmargin\"\n    ],\n    \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\": [\n      \"plain\",\n      \"signature\",\n      \"color\",\n      \"colorsig\"\n    ],\n    \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"envlayout=${1|plain,signature,color,colorsig|}\"\n    ],\n    \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"targetlayout=${1|plain,changebar,color,colorcb|}\"\n    ],\n    \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\": [\n      \"plain\",\n      \"changebar\",\n      \"color\",\n      \"colorcb\"\n    ],\n    \"\\\\fxsetface\": [\n      \"inline\",\n      \"margin\",\n      \"env\",\n      \"signature\",\n      \"target\"\n    ],\n    \"\\\\fxusetheme\": [\n      \"signature\",\n      \"color\",\n      \"colorsig\"\n    ],\n    \"\\\\fxsetup\": [\n      \"theme=${1|signature,color,colorsig|}\"\n    ],\n    \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\": [\n      \"note\",\n      \"warning\",\n      \"error\",\n      \"fatal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n  ]\n}"
  },
  {
    "path": "data/packages/float.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloat{${1:float type%envname}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newfloat{${1:float type%envname}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"floatstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatstyle{${1:default style%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floatname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatname{${1:float type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"floatplacement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatplacement{${1:float type}}{${2:default placement}}\"\n      }\n    },\n    {\n      \"name\": \"restylefloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restylefloat{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"listof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listof{${1:float type}}{${2:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\floatstyle\": [\n      \"plain\",\n      \"plaintop\",\n      \"boxed\",\n      \"ruled\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/fontspec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strongfontdeclare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strongfontdeclare{${1:font-switching list}}\"\n      }\n    },\n    {\n      \"name\": \"strongreset\"\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmainfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmainfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setromanfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setromanfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setromanfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setromanfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsansfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsansfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setsansfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setsansfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonofont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonofont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmonofont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmonofont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"setfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providefontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"providefontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"providefontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontspec{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fontspec[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fontspec{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"fontspec[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"IfFontExistsTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontExistsTF{${1:font name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"setfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providefontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"providefontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"providefontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathrm{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathrm[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathrm{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathrm[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathsf{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathsf[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathsf{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathsf[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathtt{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathtt[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathtt{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathtt[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldmathrm{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldmathrm[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setboldmathrm{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setboldmathrm[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"defaultfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultfontfeatures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defaultfontfeatures[${2:font name list}]{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"IfFontFeatureActiveTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontFeatureActiveTF{${1:font feature}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"addfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addfontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EncodingCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"EncodingCommand{${1:cmd}}[${3:num}][${4:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EncodingAccent{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EncodingSymbol{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EncodingComposite{${1:cmd}}{${2:letter}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingCompositeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"EncodingCompositeCommand(${3:cmd}){${1:letter}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareSymbol{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareAccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareAccent{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareComposite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndeclareComposite{${1:cmd}}{${2:letter}}\"\n      }\n    },\n    {\n      \"name\": \"newAATfeature\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newAATfeature{${1:feature}}{${2:option}}{${3:feature code}}{${4:selector code}}\"\n      }\n    },\n    {\n      \"name\": \"newopentypefeature\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newopentypefeature{${1:feature}}{${2:option}}{${3:feature tag}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfeature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontfeature{${1:name}}{${2:input string}}\"\n      }\n    },\n    {\n      \"name\": \"newfontscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontscript{${1:fontspec name}}{${2:OpenType tag list}}\"\n      }\n    },\n    {\n      \"name\": \"newfontlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontlanguage{${1:fontspec name}}{${2:OpenType tag list}}\"\n      }\n    },\n    {\n      \"name\": \"aliasfontfeature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aliasfontfeature{${1:existing name}}{${2:new name}}\"\n      }\n    },\n    {\n      \"name\": \"aliasfontfeatureoption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aliasfontfeatureoption{${1:font feature}}{${2:existing name}}{${3:new name}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UTFencname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emfontdeclare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfontdeclare{${1:font-switching list}}\"\n      }\n    },\n    {\n      \"name\": \"FontspecSetCheckBoolFalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FontspecSetCheckBoolTrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scitdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scsldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scswdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeEncodingName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontTeXLigatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontFile{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeFontName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontName{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeAccent{${1:cmd}}{${2:encoding}}{${3:char code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCommand{${1:command}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeComposite{${1:cmd}}{${2:letter}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeSymbol{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"strongenv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fontspec#c\": [\n      \"math\",\n      \"no-math\",\n      \"config\",\n      \"no-config\",\n      \"quiet\",\n      \"silent\",\n      \"verbose\"\n    ],\n    \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,SwashOff,Alternate,AlternateOff,WordInitial,WordInitialOff,WordFinal,WordFinalOff,LineFinal,LineFinalOff,Inner,InnerOff,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"Instance=${1:instance}\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"KpseOnly\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,Uppercase,Lowercase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"Opacity=${1:factor}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawAxis={${1:tag=number}}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"Slant=${1:number}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,Uppercase,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"Weight=${1:number}\",\n      \"Width=${1:number}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontspec#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/geometry.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"geometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"geometry{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\geometry,\\\\usepackage/geometry#c\",\n          \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newgeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newgeometry{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restoregeometry\"\n    },\n    {\n      \"name\": \"savegeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savegeometry{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"loadgeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadgeometry{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\loadgeometry\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\loadgeometry\": [\n      \"%geometry\"\n    ],\n    \"\\\\geometry,\\\\usepackage/geometry#c\": [\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"papername=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"c0paper\",\n      \"c1paper\",\n      \"c2paper\",\n      \"c3paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"c6paper\",\n      \"b0j\",\n      \"b1j\",\n      \"b2j\",\n      \"b3j\",\n      \"b4j\",\n      \"b5j\",\n      \"b6j\",\n      \"ansiapaper\",\n      \"ansibpaper\",\n      \"ansicpaper\",\n      \"ansidpaper\",\n      \"ansiepaper\",\n      \"letterpaper\",\n      \"executivepaper\",\n      \"legalpaper\",\n      \"screen\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"papersize=\",\n      \"papersize={${1:width},${2:height}}\",\n      \"landscape\",\n      \"portrait\",\n      \"driver=${1|auto,none,dvips,dvipdfm,pdftex,luatex,xetex,vtex,dvipdfmx,xdvipdfmx|}\",\n      \"dvips\",\n      \"dvipdfm\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"vtex\",\n      \"dvipdfmx\",\n      \"xdvipdfmx\",\n      \"verbose\",\n      \"reset\",\n      \"mag=${1:magnification}\",\n      \"truedimen\",\n      \"pass\",\n      \"showframe\",\n      \"showcrop\"\n    ],\n    \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\": [\n      \"layout=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"layoutwidth=\",\n      \"layoutheight=\",\n      \"layoutsize=\",\n      \"layoutsize={${1:width},${2:height}}\",\n      \"layouthoffset=\",\n      \"layoutvoffset=\",\n      \"layoutoffset=\",\n      \"layoutoffset={${1:hoffset},${2:voffset}}\",\n      \"hscale=${1:scale}\",\n      \"vscale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"scale={${1:hscale},${2:vscale}}\",\n      \"width=\",\n      \"totalwidth=\",\n      \"height=\",\n      \"totalheight=\",\n      \"total=\",\n      \"total={${1:width},${2:height}}\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"text=\",\n      \"body={${1:width},${2:height}}\",\n      \"lines=${1:integer}\",\n      \"includehead\",\n      \"includefoot\",\n      \"includeheadfoot\",\n      \"includemp\",\n      \"includeall\",\n      \"ignorehead\",\n      \"ignorefoot\",\n      \"ignoreheadfoot\",\n      \"ignoremp\",\n      \"ignoreall\",\n      \"heightrounded\",\n      \"hdivide={${1:left margin},${2:width},${3:right margin}}\",\n      \"vdivide={${1:top margin},${2:height},${3:bottom margin}}\",\n      \"divide={${1:left/top margin},${2:width/height},${3:right/bottom margin}}\",\n      \"left=\",\n      \"lmargin=\",\n      \"inner=\",\n      \"right=\",\n      \"rmargin=\",\n      \"outer=\",\n      \"top=\",\n      \"tmargin=\",\n      \"bottom=\",\n      \"bmargin=\",\n      \"hmargin=\",\n      \"hmargin={${1:left margin},${2:right margin}}\",\n      \"vmargin=\",\n      \"vmargin={${1:top margin},${2:bottom margin}}\",\n      \"margin=\",\n      \"margin={${1:left/top margin},${2:right/bottom margin}}\",\n      \"hmarginratio=${1:left}:${2:right}\",\n      \"vmarginratio=${1:top}:${2:bottom}\",\n      \"marginratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"marginratio=${1:left/top}:${2:right/bottom}\",\n      \"ratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"ratio=${1:left/top}:${2:right/bottom}\",\n      \"hcentering\",\n      \"vcentering\",\n      \"centering\",\n      \"twoside\",\n      \"asymmetric\",\n      \"bindingoffset=\",\n      \"headheight=\",\n      \"head=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"foot=\",\n      \"nohead\",\n      \"nofoot\",\n      \"noheadfoot\",\n      \"footnotesep=\",\n      \"marginparwidth=\",\n      \"marginpar=\",\n      \"marginparsep=\",\n      \"nomarginpar\",\n      \"columnsep=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"offset=\",\n      \"offset={${1:hoffset},${2:voffset}}\",\n      \"twocolumn\",\n      \"onecolumn\",\n      \"twoside\",\n      \"reversemp\",\n      \"reversemarginpar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\geometry,\\\\usepackage/geometry#c\",\n    \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/german.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/glossaries.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mfirstuc\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    },\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"glossary-hypernav\"\n    },\n    {\n      \"name\": \"glossary-list\"\n    },\n    {\n      \"name\": \"glossary-long\"\n    },\n    {\n      \"name\": \"glossary-super\"\n    },\n    {\n      \"name\": \"glossary-tree\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsindexingsetting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsSetQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtarget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetinner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetinner{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetfonttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetfonttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetouter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetouter{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowtargetfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowaccsupp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsshowaccsupp{${1:options}}{${2:tag}}{${3:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkcheckfirsthyperhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglstoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarysection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarysection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsucmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsucmarkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsucmarktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsautoprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsrefentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsrefentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsEntryCounterLabelPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsstepentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsstepentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theglossaryentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycounterlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycounterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycountertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetsubentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsstepsubentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsstepsubentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theglossarysubentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycounterlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglssubentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycounterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycountertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarystyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarystyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setglossarystyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsnogroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnogroupskipfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnogroupskiptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglswrallowprimitivemods\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrallowprimitivemodstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrallowprimitivemodsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsindexonlyfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsindexonlyfirstfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsindexonlyfirsttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswriteentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glswriteentry{${1:label}}{${2:wr-code}}\"\n      }\n    },\n    {\n      \"name\": \"glssortnumberfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssortnumberfmt{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"glsprestandardsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsprestandardsort{${1:sort cs}}{${2:type}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdosanitizesort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsxindy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxindyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxindytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsDeclareNoHyperList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsDeclareNoHyperList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareAcronymList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcronymList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"SetAcronymLists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAcronymLists{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"glsIfListOfAcronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsIfListOfAcronyms{${1:glossary-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DefineAcronymSynonyms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupglossaries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupglossaries{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"makenoidxglossaries\"\n    },\n    {\n      \"name\": \"makeglossaries\"\n    },\n    {\n      \"name\": \"writeist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setStyleFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setStyleFile{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetWriteIstHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetWriteIstHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"glswrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noist\"\n    },\n    {\n      \"name\": \"glsSetCompositor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetCompositor{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"glsSetAlphaCompositor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetAlphaCompositor{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossaryentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"longnewglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longnewglossaryentry{${1:label}}{${2:keyvals}}{${3:description}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideglossaryentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"longprovideglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longprovideglossaryentry{${1:label}}{${2:keyvals}}{${3:description}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nopostdesc\"\n    },\n    {\n      \"name\": \"glspar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"glsaddkey{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}{${4:nolink ucfirst cs%cmd}}{${5:link cs%cmd}}{${6:link ucfirst cs%cmd}}{${7:link allcaps cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"glsaddkey*{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}{${4:nolink ucfirst cs%cmd}}{${5:link cs%cmd}}{${6:link ucfirst cs%cmd}}{${7:link allcaps cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddstoragekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaddstoragekey{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glssetexpandfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetexpandfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"glssetnoexpandfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetnoexpandfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsexpandfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoexpandfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadglsentries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadglsentries{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadglsentries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loadglsentries[${2:type}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsmoveentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmoveentry{${1:label}}{${2:target glossary label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glstextformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstextformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glspatchtabularx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"gls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"gls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Gls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Gls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLS[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSpl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdisp{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsdisp[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsdisp{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glsdisp[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslink{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glslink[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glslink{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glslink[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glstext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glstext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glstext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glstext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glstext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glstext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLStext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLStext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLStext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLStext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glssymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glssymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glssymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glssymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glssymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glssymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSsymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSsymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSsymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSsymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glssymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glssymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glssymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glssymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glssymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glssymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSsymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSsymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSsymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSsymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsentryfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defglsentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defglsentryfmt{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defglsentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defglsentryfmt[${2:glossary-type}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glslabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifplural{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glscapscase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glscapscase{${1:no case}}{${2:first uc}}{${3:all caps}}\"\n      }\n    },\n    {\n      \"name\": \"glscustomtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifhyperon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifhyperon{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkvar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glslinkvar{${1:unmodified}}{${2:star case}}{${3:plus case}}\"\n      }\n    },\n    {\n      \"name\": \"glsgenentryfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgenacfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"genplacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genplacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Genacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Genacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Genplacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Genplacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkpostsetkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdisablehyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsenablehyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrytitlecase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsentrytitlecase{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glshyperlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glshyperlink{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glshyperlink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glshyperlink[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrytext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrytext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrytext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrytext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrydescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrydescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrysymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrysymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrynumberlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrynumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdisplaynumberlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdisplaynumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumlistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnumlistlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoidxdisplayloclisthandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxdisplayloclisthandler{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"newacronym\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacronym{${1:label}}{${2:abbrv}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newacronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newacronym[${4:options%keyvals}]{${1:label}}{${2:abbrv}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\newacronym#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsacrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ACRfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Acrfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ACRfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Acrfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsentrylong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrylong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrylong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrylongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrylongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrylongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setacronymstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setacronymstyle{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setacronymstyle#c,\\\\GlsUseAcrEntryDispStyle#c,\\\\GlsUseAcrStyleDefs#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acronymentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acronymsort{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"firstacronymfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstacronymfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acronymfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsupacrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstextup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstextup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsacspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsacspace{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newacronymstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacronymstyle{${1:name%specialDef}}{${2:format def}}{${3:style defs}}\"\n      }\n    },\n    {\n      \"name\": \"renewacronymstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewacronymstyle{${1:name}}{${2:format def}}{${3:style defs}}\"\n      }\n    },\n    {\n      \"name\": \"GenericAcronymFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glskeylisttok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabeltok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshorttok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsUseAcrEntryDispStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsUseAcrEntryDispStyle{${1:style-name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GlsUseAcrStyleDefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsUseAcrStyleDefs{${1:style-name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"oldacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oldacronym{${1:short}}{${2:long}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"oldacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"oldacronym[${4:label}]{${1:short}}{${2:long}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"glsreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsresetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glslocalresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocalresetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glslocalresetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsunsetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsunsetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsunsetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glslocalunsetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocalunsetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glslocalunsetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsenableentrycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsresetcurrcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetcurrcounttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetcurrcountfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycurrcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrycurrcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprevcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprevcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cgls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cglspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGlspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGlspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGlspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGlspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cglsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cglsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cglsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cGlsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGlsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cGlsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGlsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"printnoidxglossaries\"\n    },\n    {\n      \"name\": \"printglossaries\"\n    },\n    {\n      \"name\": \"printnoidxglossary\"\n    },\n    {\n      \"name\": \"printnoidxglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnoidxglossary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printglossary\"\n    },\n    {\n      \"name\": \"printglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printglossary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currentglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarysection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossarysection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"glossarysection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glossarysection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"glsglossarymark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsglossarymark{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsclearpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarytitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarytoctitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssettoctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssettoctitle{${1:glossary-type}}\"\n      }\n    },\n    {\n      \"name\": \"glossarypreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarypreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarypreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setglossarypreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setglossarypreamble[${2:type}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossarypostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryentrynumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossaryentrynumbers{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glsresetentrylist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoidxprenumberlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxprenumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnonextpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnextpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newglossary\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newglossary{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newglossary[${5:log-ext}]{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newglossary[${5:log-ext}]{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}[${6:counter}]\"\n      }\n    },\n    {\n      \"name\": \"newglossary*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossary*{${1:name}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newglossary*{${1:name}}{${2:title%text}}[${3:counter}]\"\n      }\n    },\n    {\n      \"name\": \"altnewglossary\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"altnewglossary{${1:name}}{${2:tag}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"altnewglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"altnewglossary{${1:name}}{${2:tag}}{${3:title%text}}[${4:counter}]\"\n      }\n    },\n    {\n      \"name\": \"newignoredglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newignoredglossary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifignoredglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifignoredglossary{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsadd{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsadd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsadd[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddall\"\n    },\n    {\n      \"name\": \"glsaddall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsaddall[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\glsaddall#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsaddallunused\"\n    },\n    {\n      \"name\": \"glsaddallunused\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsaddallunused[${1:glossary types}]\"\n      }\n    },\n    {\n      \"name\": \"glssee\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glssee{${1:label}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glssee\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glssee[${3:tag}]{${1:label}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsseeformat{${1:xr-list}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsseeformat[${3:tag}]{${1:xr-list}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsseelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseelist{${1:label-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsseesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsseelastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsseeitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseeitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeitemformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseeitemformat{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"delimN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsignore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsignore{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnumberformat{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glshypernumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glshypernumber{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glswrglosslocationtextfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glswrglosslocationtextfmt{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"setentrycounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setentrycounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"setentrycounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setentrycounter[${2:prefix}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrglossdisableanchorcmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrglosslocationtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glswrglosslocationtarget{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"delimR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsSetSuffixF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetSuffixF{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"glsSetSuffixFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetSuffixFF{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"glswrglossdisablelocationcmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocationcstoencap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslocationcstoencap{${1:encap-csname}}{${2:location-csname}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxloclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxloclist{${1:list cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxloclisthandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxloclisthandler{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumberlistloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsnumberlistloop{${1:label}}{${2:handler cs}}{${3:xr handler cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxdisplayloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsnoidxdisplayloc{${1:prefix}}{${2:counter}}{${3:format}}{${4:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxnumberlistloophandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxnumberlistloophandler{${1:location item}}\"\n      }\n    },\n    {\n      \"name\": \"glsnamefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnamefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossarystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossarystyle{${1:name%specialDef}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"renewglossarystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewglossarystyle{${1:name}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssubentryitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssubentryitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstarget{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glolinkprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgetgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgetgrouptitle{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgroupheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgroupheading{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossentry{${1:label}}{${2:number-list}}\"\n      }\n    },\n    {\n      \"name\": \"subglossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subglossentry{${1:level}}{${2:label}}{${3:number-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsgroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsopenbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsclosebrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspercentchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstildechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsbackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:style name list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary-type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:codepage}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:H-prefix}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:name}}{${2:xindy code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsdonohyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdonohyperlink{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohypertarget{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohyperlink{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohypertargethook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohypertargethook{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohyperlinkhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohyperlinkhook{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslabelhypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslabelhypertarget{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslabelhypertargetprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabelhypertargetdefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabelhypertargetvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstexorpdfstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstexorpdfstring{${1:TeX string}}{${2:PDF string}}\"\n      }\n    },\n    {\n      \"name\": \"glsuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glssentencecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssentencecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glscapitalisewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscapitalisewords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfuexcl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsmfuexcl{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfublocker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsmfublocker{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfuaddmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmfuaddmap{${1:cmd1%cmd}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"forallglossaries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallglossaries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglossaries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forallglossaries[${3:types}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallacronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallacronyms{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forglsentries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forglsentries[${3:glossary label}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallglsentries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forallglsentries[${3:types}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"ifglossaryexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglossaryexists{${1:glossary-type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsentryexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsentryexists{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexists{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifnoexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifnoexists{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexistsorwarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexistsorwarn{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexistsordo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexistsordo{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsused{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshaschildren\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshaschildren{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasparent{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshassymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshassymbol{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshaslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshaslong{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasshort{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasdesc{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsdescsuppressed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsdescsuppressed{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfieldvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifglsfieldvoid{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifglshasfield{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glscurrentfieldvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsfieldeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfieldeq{${1:label}}{${2:field}}{${3:string}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfielddefeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfielddefeq{${1:label}}{${2:field}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfieldcseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfieldcseq{${1:label}}{${2:field}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasureheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasureheight{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasuredepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasuredepth{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasurewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasurewidth{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsifmeasuring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifmeasuring{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrytype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrytype{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryparent{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldfetch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldfetch{${1:label}}{${2:field}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsletentryfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsletentryfield{${1:cmd}}{${2:label}}{${3:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsunexpandedfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsunexpandedfieldvalue{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsfielddef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfielddef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldedef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldedef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldgdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldgdef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldxdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldxdef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"acrnameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrnameformat{${1:short text}}{${2:long text}}\"\n      }\n    },\n    {\n      \"name\": \"acronymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addglossarytocaptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addglossarytocaptions{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glscurrententrylabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdefaulttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glshyperfirstfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glshyperfirsttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifusedtranslatordict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifusedtranslatordict{${1:lang}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumbersgroupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssymbolsgroupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswritedefhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperbf{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperemph{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperit{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypermd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypermd{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperrm{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersc{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersf{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersl{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypertt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypertt{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperup{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshyperfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newacronymhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesGlossariesLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesGlossariesLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"RequireGlossariesLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireGlossariesLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddprotectedpagefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaddprotectedpagefmt{${1:internal cs name}}\"\n      }\n    },\n    {\n      \"name\": \"glsgetgrouplabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgetgrouplabel{${1:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theglossary\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/glossaries#c\": [\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"languages=${1:language}\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindy={${1:options}}\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"acronyms\"\n    ],\n    \"\\\\usepackage/glossaries#c,\\\\setupglossaries\": [\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronymlists={${1:label-list}}\",\n      \"shortcuts\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs=${1|false,true,nowarn|}\"\n    ],\n    \"\\\\setglossarystyle#c\": [\n      \"list\",\n      \"listgroup\",\n      \"listhypergroup\",\n      \"altlist\",\n      \"altlistgroup\",\n      \"altlisthypergroup\",\n      \"listdotted\",\n      \"sublistdotted\",\n      \"index\",\n      \"indexgroup\",\n      \"indexhypergroup\",\n      \"tree\",\n      \"treegroup\",\n      \"treehypergroup\",\n      \"treenoname\",\n      \"treenonamegroup\",\n      \"treenonamehypergroup\",\n      \"alttree\",\n      \"alttreegroup\",\n      \"alttreehypergroup\",\n      \"mcolindex\",\n      \"mcolindexgroup\",\n      \"mcolindexhypergroup\",\n      \"mcolindexspannav\",\n      \"mcoltree\",\n      \"mcoltreegroup\",\n      \"mcoltreehypergroup\",\n      \"mcoltreespannav\",\n      \"mcoltreenoname\",\n      \"mcoltreenonamegroup\",\n      \"mcoltreenonamehypergroup\",\n      \"mcoltreenonamespannav\",\n      \"mcolalttree\",\n      \"mcolalttreegroup\",\n      \"mcolalttreehypergroup\",\n      \"mcolalttreespannav\",\n      \"long\",\n      \"longborder\",\n      \"longheader\",\n      \"longheaderborder\",\n      \"long3col\",\n      \"long3colborder\",\n      \"long3colheader\",\n      \"long3colheaderborder\",\n      \"long4col\",\n      \"long4colborder\",\n      \"long4colheader\",\n      \"long4colheaderborder\",\n      \"altlong4col\",\n      \"altlong4colborder\",\n      \"altlong4colheader\",\n      \"altlong4colheaderborder\",\n      \"longragged\",\n      \"longraggedborder\",\n      \"longraggedheader\",\n      \"longraggedheaderborder\",\n      \"longragged3col\",\n      \"longragged3colborder\",\n      \"longragged3colheader\",\n      \"longragged3colheaderborder\",\n      \"altlongragged4col\",\n      \"altlongragged4colborder\",\n      \"altlongragged4colheader\",\n      \"altlongragged4colheaderborder\",\n      \"long-booktabs\",\n      \"long3col-booktabs\",\n      \"long4col-booktabs\",\n      \"altlong4col-booktabs\",\n      \"longragged-booktabs\",\n      \"longragged3col-booktabs\",\n      \"altlongragged4col-booktabs\",\n      \"super\",\n      \"superborder\",\n      \"superheader\",\n      \"superheaderborder\",\n      \"super3col\",\n      \"super3colborder\",\n      \"super3colheader\",\n      \"super3colheaderborder\",\n      \"super4col\",\n      \"super4colborder\",\n      \"super4colheader\",\n      \"super4colheaderborder\",\n      \"altsuper4col\",\n      \"altsuper4colborder\",\n      \"altsuper4colheader\",\n      \"altsuper4colheaderborder\",\n      \"superragged\",\n      \"superraggedborder\",\n      \"superraggedheader\",\n      \"superraggedheaderborder\",\n      \"superragged3col\",\n      \"superragged3colborder\",\n      \"superragged3colheader\",\n      \"superragged3colheaderborder\",\n      \"altsuperragged4col\",\n      \"altsuperragged4colborder\",\n      \"altsuperragged4colheader\",\n      \"altsuperragged4colheaderborder\",\n      \"inline\",\n      \"%glossarystyle\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\": [\n      \"name=${1:text}\",\n      \"description=${1:text}\",\n      \"parent=${1:parent-label}\",\n      \"descriptionplural=${1:text}\",\n      \"text=${1:text}\",\n      \"first=${1:text}\",\n      \"plural=${1:text}\",\n      \"firstplural=${1:text}\",\n      \"symbol=${1:symbol}\",\n      \"symbolplural=${1:symbol}\",\n      \"sort=${1:entry-name}\",\n      \"type=${1:glossary-label}\",\n      \"user1=${1:text}\",\n      \"user2=${1:text}\",\n      \"user3=${1:text}\",\n      \"user4=${1:text}\",\n      \"user5=${1:text}\",\n      \"user6=${1:text}\",\n      \"nonumberlist\",\n      \"see={${1:xr-list}}\",\n      \"see={[${1:tag}]${2:xr-list}}\"\n    ],\n    \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\": [\n      \"hyper\",\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\gls*#c,\\\\gls+#c,\\\\Gls*#c,\\\\Gls+#c,\\\\GLS*#c,\\\\GLS+#c,\\\\glspl*#c,\\\\glspl+#c,\\\\Glspl*#c,\\\\Glspl+#c,\\\\GLSpl*#c,\\\\GLSpl+#c,\\\\glsdisp*#c,\\\\glsdisp+#c,\\\\Glsdisp*#c,\\\\Glsdisp+#c,\\\\glslink*#c,\\\\glslink+#c,\\\\Glslink*#c,\\\\Glslink+#c,\\\\glstext*#c,\\\\glstext+#c,\\\\Glstext*#c,\\\\Glstext+#c,\\\\GLStext*#c,\\\\GLStext+#c,\\\\glsfirst*#c,\\\\glsfirst+#c,\\\\Glsfirst*#c,\\\\Glsfirst+#c,\\\\GLSfirst*#c,\\\\GLSfirst+#c,\\\\glsplural*#c,\\\\glsplural+#c,\\\\Glsplural*#c,\\\\Glsplural+#c,\\\\GLSplural*#c,\\\\GLSplural+#c,\\\\glsfirstplural*#c,\\\\glsfirstplural+#c,\\\\Glsfirstplural*#c,\\\\Glsfirstplural+#c,\\\\GLSfirstplural*#c,\\\\GLSfirstplural+#c,\\\\glsname*#c,\\\\glsname+#c,\\\\Glsname*#c,\\\\Glsname+#c,\\\\GLSname*#c,\\\\GLSname+#c,\\\\glssymbol*#c,\\\\glssymbol+#c,\\\\Glssymbol*#c,\\\\Glssymbol+#c,\\\\GLSsymbol*#c,\\\\GLSsymbol+#c,\\\\glssymbolplural*#c,\\\\glssymbolplural+#c,\\\\Glssymbolplural*#c,\\\\Glssymbolplural+#c,\\\\GLSsymbolplural*#c,\\\\GLSsymbolplural+#c,\\\\glsdesc*#c,\\\\glsdesc+#c,\\\\Glsdesc*#c,\\\\Glsdesc+#c,\\\\GLSdesc*#c,\\\\GLSdesc+#c,\\\\glsdescplural*#c,\\\\glsdescplural+#c,\\\\Glsdescplural*#c,\\\\Glsdescplural+#c,\\\\GLSdescplural*#c,\\\\GLSdescplural+#c,\\\\glsuseri*#c,\\\\glsuseri+#c,\\\\Glsuseri*#c,\\\\Glsuseri+#c,\\\\GLSuseri*#c,\\\\GLSuseri+#c,\\\\glsuserii*#c,\\\\glsuserii+#c,\\\\Glsuserii*#c,\\\\Glsuserii+#c,\\\\GLSuserii*#c,\\\\GLSuserii+#c,\\\\glsuseriii*#c,\\\\glsuseriii+#c,\\\\Glsuseriii*#c,\\\\Glsuseriii+#c,\\\\GLSuseriii*#c,\\\\GLSuseriii+#c,\\\\glsuseriv*#c,\\\\glsuseriv+#c,\\\\Glsuseriv*#c,\\\\Glsuseriv+#c,\\\\GLSuseriv*#c,\\\\GLSuseriv+#c,\\\\glsuserv*#c,\\\\glsuserv+#c,\\\\Glsuserv*#c,\\\\Glsuserv+#c,\\\\GLSuserv*#c,\\\\GLSuserv+#c,\\\\glsuservi*#c,\\\\glsuservi+#c,\\\\Glsuservi*#c,\\\\Glsuservi+#c,\\\\GLSuservi*#c,\\\\GLSuservi+#c,\\\\cgls*#c,\\\\cgls+#c,\\\\cGls*#c,\\\\cGls+#c,\\\\cglspl*#c,\\\\cglspl+#c,\\\\cGlspl*#c,\\\\cGlspl+#c,\\\\acrshort*#c,\\\\acrshort+#c,\\\\Acrshort*#c,\\\\Acrshort+#c,\\\\acrshortpl*#c,\\\\acrshortpl+#c,\\\\Acrshortpl*#c,\\\\Acrshortpl+#c,\\\\acrlong*#c,\\\\acrlong+#c,\\\\Acrlong*#c,\\\\Acrlong+#c,\\\\acrlongpl*#c,\\\\acrlongpl+#c,\\\\Acrlongpl*#c,\\\\Acrlongpl+#c,\\\\acrfull*#c,\\\\acrfull+#c,\\\\Acrfull*#c,\\\\Acrfull+#c,\\\\acrfullpl*#c,\\\\acrfullpl+#c,\\\\Acrfullpl*#c,\\\\Acrfullpl+#c,\\\\acs*#c,\\\\acs+#c,\\\\Acs*#c,\\\\Acs+#c,\\\\acsp*#c,\\\\acsp+#c,\\\\Acsp*#c,\\\\Acsp+#c,\\\\acl*#c,\\\\acl+#c,\\\\Acl*#c,\\\\Acl+#c,\\\\aclp*#c,\\\\aclp+#c,\\\\Aclp*#c,\\\\Aclp+#c,\\\\acf*#c,\\\\acf+#c,\\\\Acf*#c,\\\\Acf+#c,\\\\acfp*#c,\\\\acfp+#c,\\\\Acfp*#c,\\\\Acfp+#c,\\\\ac*#c,\\\\ac+#c,\\\\Ac*#c,\\\\Ac+#c,\\\\acp*#c,\\\\acp+#c,\\\\Acp*#c,\\\\Acp+#c,\\\\glsadd#c,\\\\glsaddall#c\": [\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\newacronym#c\": [\n      \"long=${1:text}\",\n      \"longplural=${1:text}\",\n      \"short=${1:text}\",\n      \"shortplural=${1:text}\"\n    ],\n    \"\\\\setacronymstyle#c,\\\\GlsUseAcrEntryDispStyle#c,\\\\GlsUseAcrStyleDefs#c\": [\n      \"long-short\",\n      \"long-sc-short\",\n      \"long-sm-short\",\n      \"long-sp-short\",\n      \"short-long\",\n      \"sc-short-long\",\n      \"sm-short-long\",\n      \"long-short-desc\",\n      \"long-sc-short-desc\",\n      \"long-sm-short-desc\",\n      \"long-sp-short-desc\",\n      \"short-long-desc\",\n      \"sc-short-long-desc\",\n      \"sm-short-long-desc\",\n      \"dua\",\n      \"dua-desc\",\n      \"footnote\",\n      \"footnote-sc\",\n      \"footnote-sm\",\n      \"footnote-desc\",\n      \"footnote-sc-desc\",\n      \"footnote-sm-desc\",\n      \"%acronymstyle\"\n    ],\n    \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\": [\n      \"type=${1:glossary-label}\",\n      \"title=${1:text}\",\n      \"toctitle=${1:text}\",\n      \"style=${1:style-name}\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|use,def,nocase,case,word,letter,standard|}\"\n    ],\n    \"\\\\glsaddall#c\": [\n      \"types={${1:glossary-list}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries#c\",\n    \"\\\\usepackage/glossaries#c,\\\\setupglossaries\"\n  ]\n}"
  },
  {
    "path": "data/packages/glosstex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosstex{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glosstex[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"glosstex(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"glosstex(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosstex*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glosstex*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"glosstex*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"glosstex*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronym{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acronym[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"acronym(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acronym(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronym*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acronym*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"acronym*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acronym*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gls(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"gls(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gls*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"gls*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"ac[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"ac*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acs[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acs*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acl[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acl*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acf[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acf*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printglosstex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"printglosstex(${1:list})\"\n      }\n    },\n    {\n      \"name\": \"printglosstex\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"printglosstex(${2:list})[${1:pageref-mode}]\"\n      }\n    },\n    {\n      \"name\": \"glxitemorderdefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxitemorderdefault{${1:list}}{${2:item-order i/l/\\\"\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"glxitemplacementdefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxitemplacementdefault{${1:list}}{${2:item-order t/f/\\\"\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"glxparendefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxparendefault{${1:lparen}}{${2:rparen}}\"\n      }\n    },\n    {\n      \"name\": \"glxparenlistdefault\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glxparenlistdefault{${1:list}}{${2:lparen}}{${3:rparen}}\"\n      }\n    },\n    {\n      \"name\": \"glxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glxref{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"glxref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glxref*{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"glxheading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxheading{${1:glo, acr or own list}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/graphicx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"trig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareGraphicsExtensions{${1:ext-list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareGraphicsRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareGraphicsRule{${1:ext}}{${2:type}}{${3:read-file}}{${4:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"graphicspath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicspath{${1:dir-list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphics*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphics*[${2:keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"reflectbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflectbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox*{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotatebox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rotatebox[${3:keyvals}]{${1:angle}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\rotatebox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rotatebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotatebox{${1:angle}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}[${3:v-scale}]{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicx#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\includegraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\rotatebox\": [\n      \"origin=\",\n      \"x=\",\n      \"y=\",\n      \"units=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicx#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/harvard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"html\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeaffixed\"\n    },\n    {\n      \"name\": \"citeasnoun\"\n    },\n    {\n      \"name\": \"citename\"\n    },\n    {\n      \"name\": \"citeyear\"\n    },\n    {\n      \"name\": \"possessivecite\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/hyperref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"hycolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"bitset\"\n    },\n    {\n      \"name\": \"bigintcalc\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=section\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=slide\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=page\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hypersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\hypersetup,\\\\usepackage/hyperref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"href[${3:options%keyvals}]{${1:URL}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\href\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToDocumentProperties{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddToDocumentProperties[${3:category}]{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"GetDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetDocumentProperties{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"SetLinkTargetFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLinkTargetFilter{${1:filter code}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"nolinkurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolinkurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hyperbaseurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperbaseurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hyperimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperimage{${1:imageURL%URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyperdef{${1:category}}{${2:name}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hyperref{${1:URL}}{${2:category}}{${3:name}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hyperref[${5:label%ref}]{${1:URL}}{${2:category}}{${3:name}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hyperref[${2:label%ref}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hypertarget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hypertarget{${1:target name}}{${2:anchor text%text}}\"\n      }\n    },\n    {\n      \"name\": \"phantomsection\"\n    },\n    {\n      \"name\": \"hyperget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperget{${1:anchor}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"autopageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autopageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autoref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autoref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thispdfpagelabel\"\n    },\n    {\n      \"name\": \"pdfstringdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstringdef{${1:macroname%cmd}}{${2:TeXstring}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfbookmark[${3:level}]{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"currentpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"currentpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"subpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"belowpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"belowpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texorpdfstring{${1:TEXstring}}{${2:PDFstring}}\"\n      }\n    },\n    {\n      \"name\": \"pdfstringdefDisableCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfstringdefDisableCommands{${1:hooks}}\"\n      }\n    },\n    {\n      \"name\": \"hypercalcbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypercalcbp{${1:dimen specification}}\"\n      }\n    },\n    {\n      \"name\": \"Acrobatmenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Acrobatmenu{${1:menuoption}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"TextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextField{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TextField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TextField[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CheckBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckBox{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"CheckBox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CheckBox[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChoiceMenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChoiceMenu{${1:label}}{${2:choices}}\"\n      }\n    },\n    {\n      \"name\": \"ChoiceMenu\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ChoiceMenu[${3:parameters%keyvals}]{${1:label}}{${2:choices}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PushButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PushButton{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PushButton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PushButton[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Submit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Submit{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Submit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Submit[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Reset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Reset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Reset[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LayoutTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutTextField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"LayoutChoiceField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutChoiceField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"LayoutCheckField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutCheckField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"MakeRadioField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeRadioField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeCheckField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeCheckField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeTextField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeChoiceField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeChoiceField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeButtonField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeButtonField{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultHeightofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofChoiceMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofChoiceMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofTextMultiline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofPushButton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofListBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofComboBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofPopdownBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofRadio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AfterBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AMSautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbLineautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hfootnoteautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestLabelReplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HyperDestLabelReplace{${1:dest}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestNameFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HyperDestNameFilter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hypergetpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergetpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hypergetref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergetref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkfileprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkfileprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"HyperRaiseLinkDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HyperRaiseLinkHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfHyperBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHyperBoolean{${1:options}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfHyperBooleanExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHyperBooleanExists{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfstringunicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfstringunicode{${1:unicode chars}}{${2:chars}}\"\n      }\n    },\n    {\n      \"name\": \"Itemautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeLowercaseUnsupportedInPdfStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLowercaseUnsupportedInPdfStrings{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeUppercaseUnsupportedInPdfStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeUppercaseUnsupportedInPdfStrings{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MaybeStopEarly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaybeStopNow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pageautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefPostHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefPreHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfstringdefWarn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpdflinkmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdflinkmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHHfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHHmpfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHmpfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHtheorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unichar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unichar{${1:char num}}\"\n      }\n    },\n    {\n      \"name\": \"XeTeXLinkBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XeTeXLinkBox{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"XeTeXLinkMargin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NoHyper\"\n    },\n    {\n      \"name\": \"Form\"\n    },\n    {\n      \"name\": \"Form\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Form}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\hypersetup,\\\\usepackage/hyperref#c\": [\n      \"addtopdfcreator=${1:text}\",\n      \"allbordercolors=\",\n      \"allcolors=\",\n      \"anchorcolor=\",\n      \"backref=${1|section,slide,page,none,false|}\",\n      \"baseurl=${1:URL}\",\n      \"bookmarks\",\n      \"bookmarksdepth\",\n      \"bookmarksdepth=${1:number}\",\n      \"bookmarksnumbered\",\n      \"bookmarksopen\",\n      \"bookmarksopenlevel=${1:level}\",\n      \"bookmarkstype=\",\n      \"breaklinks\",\n      \"citebordercolor=\",\n      \"citecolor=\",\n      \"CJKbookmarks\",\n      \"colorlinks\",\n      \"customdriver=${1:file}\",\n      \"debug\",\n      \"destlabel\",\n      \"draft\",\n      \"driverfallback=${1:driver}\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipdfmx-outline-open\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"encap=${1:character}\",\n      \"extension=${1:file ext}\",\n      \"filebordercolor=\",\n      \"filecolor=\",\n      \"final\",\n      \"frenchlinks\",\n      \"hidelinks\",\n      \"hitex\",\n      \"hyperfigures\",\n      \"hyperfootnotes\",\n      \"hyperindex\",\n      \"hypertex\",\n      \"hypertexnames\",\n      \"implicit\",\n      \"linkbordercolor=\",\n      \"linkcolor=\",\n      \"linkfileprefix=${1:prefix}\",\n      \"linktoc=${1|section,page,all,none|}\",\n      \"linktocpage\",\n      \"luatex\",\n      \"menubordercolor=\",\n      \"menucolor=\",\n      \"nativepdf\",\n      \"naturalnames\",\n      \"nesting\",\n      \"next-anchor=${1:anchor name}\",\n      \"ocgcolorlinks\",\n      \"pageanchor\",\n      \"pagebackref\",\n      \"pdfa\",\n      \"pdfauthor=${1:author}\",\n      \"pdfborder=\",\n      \"pdfborderstyle=\",\n      \"pdfcenterwindow\",\n      \"pdfcreationdate=${1:date}\",\n      \"pdfcreator=${1:creator}\",\n      \"pdfdirection=${1|L2R,R2L|}\",\n      \"pdfdisplaydoctitle\",\n      \"pdfduplex=${1|Simplex,DuplexFlipShortEdge,DuplexFlipLongEdge|}\",\n      \"pdfencoding=${1|pdfdoc,unicode,auto|}\",\n      \"pdfescapeform\",\n      \"pdffitwindow\",\n      \"pdfhighlight=${1|/I,/N,/O,/P|}\",\n      \"pdfinfo={${1:info keys}}\",\n      \"pdfkeywords={${1:keyword list}}\",\n      \"pdflang=${1:lang id}\",\n      \"pdflinkmargin=\",\n      \"pdfmark\",\n      \"pdfmenubar\",\n      \"pdfmoddate=${1:date}\",\n      \"pdfnewwindow\",\n      \"pdfnonfullscreenpagemode\",\n      \"pdfnumcopies=${1:integer}\",\n      \"pdfpageduration=\",\n      \"pdfpagelabels\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight|}\",\n      \"pdfpagemode=${1|FullScreen,UseNone,UseOutlines,UseOC,UseAttachments,UseThumbs|}\",\n      \"pdfpagescrop=${1:n1 n2 n3 n4}\",\n      \"pdfpagetransition=${1|Split,Blinds,Box,Wipe,Dissolve,Glitter,R,Fly,Push,Cover,Uncover,Fade|}\",\n      \"pdfpicktraybypdfsize\",\n      \"pdfprintarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintpagerange=${1:n1 n2}\",\n      \"pdfprintscaling=${1|None,AppDefault|}\",\n      \"pdfproducer=${1:producer}\",\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfstartpage=${1:page number}\",\n      \"pdfstartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdftex\",\n      \"pdftitle=${1:title}\",\n      \"pdftoolbar\",\n      \"pdftrapped=${1|True,False,Unknown|}\",\n      \"pdfusetitle\",\n      \"pdfversion=${1:version}\",\n      \"pdfview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfviewarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfviewclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfwindowui\",\n      \"plainpages\",\n      \"ps2pdf\",\n      \"psdextra\",\n      \"raiselinks\",\n      \"runbordercolor=\",\n      \"runcolor=\",\n      \"setpagesize\",\n      \"tex4ht\",\n      \"textures\",\n      \"unicode\",\n      \"urlbordercolor=\",\n      \"urlcolor=\",\n      \"verbose\",\n      \"vtex\",\n      \"vtexpdfmark\",\n      \"xetex\"\n    ],\n    \"\\\\href\": [\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfnewwindow\",\n      \"page=${1:number}\",\n      \"ismap\",\n      \"nextactionraw={${1:PDF code}}\"\n    ],\n    \"\\\\begin{Form}\": [\n      \"action=${1:URL}\",\n      \"encoding=${1:encoding}\",\n      \"method=${1|post,get|}\"\n    ],\n    \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\": [\n      \"accesskey=${1:key}\",\n      \"align=${1|0,1,2|}\",\n      \"altname=${1:altname}\",\n      \"backgroundcolor=\",\n      \"bordercolor=\",\n      \"bordersep=\",\n      \"borderstyle=${1|S,B,D,I,U|}\",\n      \"borderwidth=\",\n      \"calculate={${1:JavaScript code}}\",\n      \"calculatesortkey=${1:key}\",\n      \"charsize=\",\n      \"checkboxsymbol=${1:symbol}\",\n      \"checked\",\n      \"color=\",\n      \"combo\",\n      \"default=${1:default value}\",\n      \"disabled\",\n      \"format={${1:JavaScript code}}\",\n      \"height=\",\n      \"hidden\",\n      \"keystroke={${1:JavaScript code}}\",\n      \"mappingname=${1:name}\",\n      \"maxlen=${1:number}\",\n      \"menulength=${1:number}\",\n      \"multiline\",\n      \"name=${1:name}\",\n      \"onblur={${1:JavaScript code}}\",\n      \"onchange={${1:JavaScript code}}\",\n      \"onclick={${1:JavaScript code}}\",\n      \"ondbclick={${1:JavaScript code}}\",\n      \"onfocus={${1:JavaScript code}}\",\n      \"onkeydown={${1:JavaScript code}}\",\n      \"onkeypress={${1:JavaScript code}}\",\n      \"onkeyup={${1:JavaScript code}}\",\n      \"onmousedown={${1:JavaScript code}}\",\n      \"onmousemove={${1:JavaScript code}}\",\n      \"onmouseout={${1:JavaScript code}}\",\n      \"onmouseover={${1:JavaScript code}}\",\n      \"onmouseup={${1:JavaScript code}}\",\n      \"onselect={${1:JavaScript code}}\",\n      \"password\",\n      \"popdown\",\n      \"radio\",\n      \"radiosymbol=${1:symbol}\",\n      \"readonly\",\n      \"rotation=${1:multiple of 90}\",\n      \"tabkey=${1:key}\",\n      \"validate={${1:JavaScript code}}\",\n      \"value=${1:init value}\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\hypersetup,\\\\usepackage/hyperref#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/ifluatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/ifpdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/ifplatform.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cygwinname\"\n    },\n    {\n      \"name\": \"linuxname\"\n    },\n    {\n      \"name\": \"macosxname\"\n    },\n    {\n      \"name\": \"notwindowsname\"\n    },\n    {\n      \"name\": \"unknownplatform\"\n    },\n    {\n      \"name\": \"windowsname\"\n    },\n    {\n      \"name\": \"ifshellescape\"\n    },\n    {\n      \"name\": \"ifwindows\"\n    },\n    {\n      \"name\": \"iflinux\"\n    },\n    {\n      \"name\": \"ifmacosx\"\n    },\n    {\n      \"name\": \"ifcygwin\"\n    },\n    {\n      \"name\": \"platformname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/iftex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifpdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPDFTeX\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifXeTeX\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLuaTeX\"\n    },\n    {\n      \"name\": \"ifetex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeTeX\"\n    },\n    {\n      \"name\": \"ifluahbtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLuaHBTeX\"\n    },\n    {\n      \"name\": \"ifptex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpTeX\"\n    },\n    {\n      \"name\": \"ifuptex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifupTeX\"\n    },\n    {\n      \"name\": \"ifptexng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpTeXng\"\n    },\n    {\n      \"name\": \"ifvtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifVTeX\"\n    },\n    {\n      \"name\": \"ifalephtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAlephTeX\"\n    },\n    {\n      \"name\": \"iftutex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTUTeX\"\n    },\n    {\n      \"name\": \"iftexpadtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTexpadTeX\"\n    },\n    {\n      \"name\": \"ifhint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifHINT\"\n    },\n    {\n      \"name\": \"else\"\n    },\n    {\n      \"name\": \"fi\"\n    },\n    {\n      \"name\": \"RequireeTeX\"\n    },\n    {\n      \"name\": \"RequirePDFTeX\"\n    },\n    {\n      \"name\": \"RequireXeTeX\"\n    },\n    {\n      \"name\": \"RequireLuaTeX\"\n    },\n    {\n      \"name\": \"RequireLuaHBTeX\"\n    },\n    {\n      \"name\": \"RequirepTeX\"\n    },\n    {\n      \"name\": \"RequireupTeX\"\n    },\n    {\n      \"name\": \"RequirepTeXng\"\n    },\n    {\n      \"name\": \"RequireVTeX\"\n    },\n    {\n      \"name\": \"RequireAlephTeX\"\n    },\n    {\n      \"name\": \"RequireTUTeX\"\n    },\n    {\n      \"name\": \"RequireTexpadTeX\"\n    },\n    {\n      \"name\": \"RequireHINT\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pdftrue\"\n    },\n    {\n      \"name\": \"pdffalse\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/ifthen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifthenelse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifthenelse{${1:test}}{${2:then clause}}{${3:else clause}}\"\n      }\n    },\n    {\n      \"name\": \"isodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isodd{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"isundefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isundefined{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"equal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"equal{${1:string}}{${2:string}}\"\n      },\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"lengthtest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lengthtest{${1:dimen operator dimen}}\"\n      }\n    },\n    {\n      \"name\": \"boolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newboolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"provideboolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideboolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setboolean\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboolean{${1:name}}{${2:truth value}}\"\n      }\n    },\n    {\n      \"name\": \"whiledo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whiledo{${1:test}}{${2:while clause}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/ifvtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifvtexdvi\"\n    },\n    {\n      \"name\": \"ifvtexpdf\"\n    },\n    {\n      \"name\": \"ifvtexps\"\n    },\n    {\n      \"name\": \"ifvtexhtml\"\n    },\n    {\n      \"name\": \"ifvtexgex\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/ifxetex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/import.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"import\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"import{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputfrom{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subimport{${1:relative path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subinputfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subinputfrom{${1:relative path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includefrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includefrom{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subincludefrom*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subincludefrom*{${1:relative path%definition}}{${2:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/inputenc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareInputMath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInputMath{${1:slot}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInputText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInputText{${1:slot}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacter{${1:slot}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"inputencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputencoding{${1:encoding name%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definearmew\",\n      \"if\": \"armscii8\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definearmew{${1:character}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\": [\n      \"ascii\",\n      \"latin1\",\n      \"latin2\",\n      \"latin3\",\n      \"latin4\",\n      \"latin5\",\n      \"latin9\",\n      \"latin10\",\n      \"decmulti\",\n      \"cp850\",\n      \"cp852\",\n      \"cp858\",\n      \"cp437\",\n      \"cp437de\",\n      \"cp865\",\n      \"applemac\",\n      \"macce\",\n      \"next\",\n      \"cp1250\",\n      \"cp1252\",\n      \"cp1257\",\n      \"ansinew\",\n      \"utf8\",\n      \"utf8x\",\n      \"armscii8\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/jurabib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jurabibsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jurabibsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite*[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite*[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citefield[${3:page-range}]{${1:field}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citenotitlefortype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenotitlefortype{${1:article,book,…}}\"\n      }\n    },\n    {\n      \"name\": \"citeswithoutentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeswithoutentry{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitlefortype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitlefortype{${1:article,book,…}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite*[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite*[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitetitle[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitetitle[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footfullcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footfullcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitefull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitefull{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitenotitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitenotitle{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitereset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitereset{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextciteshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextciteshort{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nobibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"noibidem\"\n    },\n    {\n      \"name\": \"noidem\"\n    },\n    {\n      \"name\": \"bibAnnotePath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibAnnotePath{${1:file-path%file}}\"\n      }\n    },\n    {\n      \"name\": \"biburlfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biburlfont{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\biburlfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nopage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nopage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pageadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageadd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"formatpages{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"formatpages[${4:after-separator}]{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"formatpages[${4:after-separator}][${5:before-separator}]{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footciteauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footciteyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteyear{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"AddTo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddTo{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"bibansep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibartperiodhowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthormultiple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbdsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbfsasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbfsesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbstasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbstesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbudcsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcommenthowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibjtsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftcolumnadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightcolumnadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsaustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnorsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diffpageibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diffpageibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Edbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fifthedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourthedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"herename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbactualauthorfnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbactualauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbaensep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbannotatorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbannoteformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbannoteformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbapifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfontifannotato\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfontifannotator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbauthorindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbbfsasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbfsesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbibyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbbibyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbbstasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbstesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbcitationoyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbcitationoyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbcitationyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbcitationyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbdisablecitationcrossref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexeditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexorganizations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbeditorindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbeditorindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbedseplikecite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbfirstcitepageranges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbfulltitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbhowsepbeforetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbignorevarioref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirstauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirsteditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirstorganizations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindextype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jblangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbmakeindexactual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbnoformatafterstartpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbnoformatafterstartpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jborganizationindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jborganizationindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jborgauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jboyearincitation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbpagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbrangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbshorttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbsuperscripteditionafterauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbyearaftertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookatprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookatsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opcit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samepageibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samepageibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Volumename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\": [\n      \"authorformat=${1|smallcaps,italic,dynamic,citationreversed,allreversed,firstnotreversed,reducedifibidem,and,year,indexed,abbrv|}\",\n      \"annotatorformat=${1|italic,normal|}\",\n      \"round\",\n      \"square\",\n      \"superscriptedition=${1|all,commented,switch,kerning,bib,address,year,multiple|}\",\n      \"biblikecite\",\n      \"edby\",\n      \"endnote\",\n      \"titleformat=${1|italic,all,colonsep,commasep,noreplace|}\",\n      \"annotatorlastsep=${1|divis|}\",\n      \"annotatorfirstsep=${1|in,comma|}\",\n      \"ibidem\",\n      \"ibidem=${1|strict,nostrict,strictdoublepage,name,name&title,name&title&auto|}\",\n      \"commabeforerest\",\n      \"silent\",\n      \"bibformat=${1|nohang,tabular,numbered,ibidem,ibidemalt,compress,raggedright|}\",\n      \"lookforgender\",\n      \"annote\",\n      \"super\",\n      \"config=${1:file}\",\n      \"dotafter=${1|bibentry,endnote|}\",\n      \"howcited=${1|normal,multiple,compare,all|}\",\n      \"pages=${1|format,test,always|}\",\n      \"hypercite\",\n      \"citefull=${1|first,chapter,section,all|}\",\n      \"see\",\n      \"natoptargorder\",\n      \"crossref=${1|dynamic,normal,short,long|}\",\n      \"lookat\",\n      \"idem\",\n      \"idem=${1|strict,nostrict,strictdoublepage,halfstrict|}\",\n      \"opcit\",\n      \"citetoend\"\n    ],\n    \"\\\\biburlfont\": [\n      \"tt\",\n      \"rm\",\n      \"sf\",\n      \"same\"\n    ]\n  },\n  \"args\": [\n    \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/kantlipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"kant\"\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"kant[${1:num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\"\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"kant*[${1:num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kantdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kantdef{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"kantdef\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"kantdef{${1:cmd}}{${2:num}}[${3:num-num}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kantlipsum#c\": [\n      \"par\",\n      \"nopar\",\n      \"numbers\",\n      \"index\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kantlipsum#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/latex-209.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"documentstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"documentstyle[${2:options}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"documentstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"documentstyle{${1:style}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/latex-dev.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ActivateGenericHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActivateGenericHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AddToHook{${1:hook}}[${3:label}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHook{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookNext{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookNextWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookNextWithArguments{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AddToHookWithArguments{${1:hook}}[${3:label}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookWithArguments{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToNoCaseChangeList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToNoCaseChangeList{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AfterEndEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AssignSocketPlug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AssignSocketPlug{${1:socket}}{${2:socket plug}}\"\n      }\n    },\n    {\n      \"name\": \"AssignTemplateKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginDocument[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginDvi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginDvi{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AtBeginEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtEndDocument[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDvi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndDvi{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AtEndEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfClass{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfPackage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BCPdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCPdata{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BooleanFalse\"\n    },\n    {\n      \"name\": \"BooleanTrue\"\n    },\n    {\n      \"name\": \"CaseSwitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaseSwitch{${1:normal%text}}{${2:upper%text}}{${3:lower%text}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckEncodingSubset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"CheckEncodingSubset{${1:text cmd}}{${2:encoding}}{${3:error}}{${4:subset id}}{${5:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ClassError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClassError{${1:class name}}{${2:error text}}{${3:help text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassInfo{${1:class name}}{${2:info text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassNote{${1:class name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassNoteNoLine{${1:class name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassWarning{${1:class name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassWarningNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassWarningNoLine{${1:class name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClearHookNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearHookNext{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ClearHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClearHookRule{${1:hook}}{${2:label1}}{${3:label2}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFilePath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFilePathUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFileUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugHooksOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugHooksOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugMarksOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugMarksOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugShipoutsOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugShipoutsOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugSocketsOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugSocketsOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugTablesOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugTablesOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareCaseChangeEquivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaseChangeEquivalent{${1:cmd}}{${2:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCurrentRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCurrentRelease{${1:name}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDefaultHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDefaultHookRule{${1:label1}}{${2:relation}}{${3:label2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEmphSequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareEmphSequence{${1:font cmd list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEncodingSubset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareEncodingSubset{${1:encoding}}{${2:family}}{${3:subset number}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareErrorFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareErrorFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFixedFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareFixedFont{${1:cmd}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}{${6:size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontEncoding{${1:encoding}}{${2:text-settings}}{${3:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontEncodingDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFontEncodingDefaults{${1:text-settings}}{${2:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontFamily{${1:encoding}}{${2:family}}{${3:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontFamilySubstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontFamilySubstitution{${1:encoding}}{${2:family1}}{${3:family2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesChangeRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontSeriesChangeRule{${1:series1}}{${2:series2}}{${3:result1}}{${4:result2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareFontSeriesDefault[${3:family}]{${1:face}}{${2:series name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFontSeriesDefault{${1:face}}{${2:series name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShapeChangeRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontShapeChangeRule{${1:shape1}}{${2:shape2}}{${3:result1}}{${4:result2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSubstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontSubstitution{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareHookRule{${1:hook}}{${2:label1}}{${3:relation}}{${4:label2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareInstance{${1:type}}{${2:instance}}{${3:template}}{${4:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInstanceCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInstanceCopy{${1:type}}{${2:instance2}}{${3:instance1}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareKeys[${2:family}]{${1:declarations}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareKeys{${1:declarations}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareLowercaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLowercaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathAccent{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathAlphabet{${1:math-alph%cmd}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathDelimiter{${1:cmd}}{${2:type}}{${3:sym-font-1}}{${4:slot-1}}{${5:sym-font-2}}{${6:slot-2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathRadical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathRadical{${1:cmd}}{${2:sym-font-1}}{${3:slot-1}}{${4:sym-font-2}}{${5:slot-2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSizes*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSizes*{${1:t-size}}{${2:mt-size}}{${3:s-size}}{${4:ss-size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSizes{${1:t-size}}{${2:mt-size}}{${3:s-size}}{${4:ss-size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbol{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMathVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOldFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOldFontCommand{${1:cmd}}{${2:text-switch}}{${3:math-switch}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOption*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareOption*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOption{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePreloadSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclarePreloadSizes{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:sizes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareRelease{${1:name}}{${2:date}}{${3:file name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSizeFunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSizeFunction{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSymbolFont{${1:sym-font}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolFontAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSymbolFontAlphabet{${1:math-alph%cmd}}{${2:sym-font}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareTemplateCode{${1:type}}{${2:template}}{${3:no. of args}}{${4:key bindings}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTemplateCopy{${1:type}}{${2:template2}}{${3:template1}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateInterface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTemplateInterface{${1:type}}{${2:template}}{${3:no. of args}}{${4:key list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextAccent{${1:cmd}}{${2:encoding}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextAccentDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextAccentDefault{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommandDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextCommandDefault{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTextComposite{${1:cmd}}{${2:encoding}}{${3:argument}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCompositeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTextCompositeCommand{${1:cmd}}{${2:encoding%definition}}{${3:letter%definition}}{${4:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextFontCommand{${1:cmd}}{${2:font-switches%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextSymbol{${1:cmd}}{${2:encoding}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextSymbolDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextSymbolDefault{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTitlecaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTitlecaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTitlecaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTitlecaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacter{${1:hexadecimal}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnknownKeyHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareUnknownKeyHandler[${2:family}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnknownKeyHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareUnknownKeyHandler{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareUppercaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUppercaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DisableGenericHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableGenericHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DisableHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DiscardShipoutBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EditInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EditInstance{${1:type}}{${2:instance}}{${3:new values}}\"\n      }\n    },\n    {\n      \"name\": \"EditTemplateDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EditTemplateDefaults{${1:type}}{${2:template}}{${3:new defaults}}\"\n      }\n    },\n    {\n      \"name\": \"EndIncludeInRelease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndModuleRelease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteOptions{${1:optionlist}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExpandArgs{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"ExplSyntaxOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExplSyntaxOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FirstMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FirstMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GenericError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GenericError{${1:continuation}}{${2:message%text}}{${3:help location%text}}{${4:help info%text}}\"\n      }\n    },\n    {\n      \"name\": \"GenericInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GenericInfo{${1:continuation}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"GenericWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GenericWarning{${1:continuation}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBlankF{${1:arg}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBlankT{${1:arg}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfBlankTF{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBooleanF{${1:arg}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBooleanT{${1:arg}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfBooleanTF{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassAtLeastF{${1:class}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassAtLeastT{${1:class}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfClassAtLeastTF{${1:class}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfClassLoadedF{${1:class}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfClassLoadedT{${1:class}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedTF{${1:class}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsF{${1:class}}{${2:options}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsT{${1:class}}{${2:options}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsTF{${1:class}}{${2:options}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExplAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExplAtLeastTF{${1:date}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileAtLeastF{${1:file}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileAtLeastT{${1:file}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfFileAtLeastTF{${1:file}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileExists{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFileLoadedF{${1:file}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFileLoadedT{${1:file}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileLoadedTF{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFontSeriesContextTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontSeriesContextTF{${1:face}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFormatAtLeastF{${1:date}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFormatAtLeastT{${1:date}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFormatAtLeastTF{${1:date}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfHookEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHookEmptyTF{${1:hook}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsF{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsT{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsTF{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLabelExistsF{${1:label}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLabelExistsT{${1:label}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLabelExistsTF{${1:label}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMarksEqualTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfMarksEqualTF[${6:region}]{${1:class%plain}}{${2:pos1}}{${3:pos2}}{${4:true code}}{${5:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMarksEqualTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfMarksEqualTF{${1:class%plain}}{${2:pos1}}{${3:pos2}}{${4:true code}}{${5:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNoValueF{${1:arg}}{${2:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNoValueT{${1:arg}}{${2:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueTF{${1:arg}}{${2:-NoValue-Code}}{${3:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastF{${1:package}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastT{${1:package}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastTF{${1:package}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageLoadedF{${1:package}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageLoadedT{${1:package}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedTF{${1:package}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsF{${1:package}}{${2:options}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsT{${1:package}}{${2:options}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsTF{${1:package}}{${2:options}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPDFManagementActiveTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPDFManagementActiveTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPropertyExistsF{${1:property}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPropertyExistsT{${1:property}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPropertyExistsTF{${1:property}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyRecordedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPropertyRecordedTF{${1:label}}{${2:property}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfTargetDateBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfTargetDateBefore{${1:date}}{${2:before code}}{${3:after code}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfValueF{${1:arg}}{${2:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfValueT{${1:arg}}{${2:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfValueTF{${1:arg}}{${2:ValueCode}}{${3:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeInRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeInRelease{${1:date}}{${2:command}}{${3:description}}\"\n      }\n    },\n    {\n      \"name\": \"IndentBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InputIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"InputIfFileExists{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"InsertMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertMark{${1:class%plain}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"KeyValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KeyValue{${1:key name}}\"\n      }\n    },\n    {\n      \"name\": \"LastDeclaredEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LastMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LastMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LastMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXReleaseInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinkTargetOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinkTargetOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LoadClass[${2:optionlist}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"LoadClass[${2:optionlist}]{${1:class}}[${3:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadClass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LoadClass{${1:class}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadClassWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadClassWithOptions{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClassWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LoadClassWithOptions{${1:class}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadFontDefinitionFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadFontDefinitionFile{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"LogHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"LogSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLinkTarget*{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeLinkTarget[${2:prefix}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLinkTarget{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeRobust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeRobust{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MessageBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NeedsTeXFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NeedsTeXFormat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"NeedsTeXFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NeedsTeXFormat{${1:format}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"NewCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"NewHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewHookWithArguments{${1:hook}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewMarkClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewMarkClass{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"NewMirroredHookPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMirroredHookPair{${1:hook1}}{${2:hook2}}\"\n      }\n    },\n    {\n      \"name\": \"NewMirroredHookPairWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewMirroredHookPairWithArguments{${1:hook1}}{${2:hook2}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewModuleRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewModuleRelease{${1:date}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"NewProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewProperty{${1:property%specialDef}}{${2:setpoint}}{${3:default}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewReversedHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewReversedHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"NewReversedHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewReversedHookWithArguments{${1:hook}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewSocket{${1:socket}}{${2:number of inputs}}\"\n      }\n    },\n    {\n      \"name\": \"NewSocketPlug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewSocketPlug{${1:socket}}{${2:socket plug}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewTemplateType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTemplateType{${1:template type}}{${2:no. of args}}\"\n      }\n    },\n    {\n      \"name\": \"NextLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextLinkTarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"OmitIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OptionNotUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PackageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PackageError{${1:package name}}{${2:error text%text}}{${3:help text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageInfo{${1:package name}}{${2:info text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageNote{${1:package name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageNoteNoLine{${1:package name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageWarning{${1:package name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageWarningNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageWarningNoLine{${1:package name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PassOptionsToClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PassOptionsToClass{${1:optionlist}}{${2:class}}\"\n      }\n    },\n    {\n      \"name\": \"PassOptionsToPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PassOptionsToPackage{${1:optionlist}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"PopDefaultHookLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreviousTotalPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessedArgument\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessKeyOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessKeyOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ProcessKeyOptions[${1:family}]\"\n      }\n    },\n    {\n      \"name\": \"ProcessList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessList{${1:list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideMirroredHookPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideMirroredHookPair{${1:hook1}}{${2:hook2}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideReversedHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideReversedHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesClass{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesClass{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesFile{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesFile{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesPackage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesPackage{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommandDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideTextCommandDefault{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"PushDefaultHookLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PushDefaultHookLabel{${1:default label}}\"\n      }\n    },\n    {\n      \"name\": \"RawIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawNoindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawParEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawShipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ReadonlyShipoutCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RecordProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RecordProperties{${1:label}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RefProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RefProperty[${3:local default}]{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RefProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RefProperty{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RefUndefinedWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RefUndefinedWarn{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RemoveFromHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveFromHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveFromHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RemoveFromHook{${1:hook}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"RenewCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RequirePackage[${2:options%keyvals}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"RequirePackage[${2:options%keyvals}]{${1:package}}[${3:release}]\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequirePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequirePackage{${1:package}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"RequirePackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequirePackageWithOptions{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequirePackageWithOptions{${1:package}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"ResumeTagging\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResumeTagging{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ReverseBoolean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetDefaultHookLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultHookLabel{${1:default label}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetKeys[${2:family}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetKeys{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetMathAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"SetMathAlphabet{${1:math-alph%cmd}}{${2:version}}{${3:encoding}}{${4:family}}{${5:series}}{${6:shape}}\"\n      }\n    },\n    {\n      \"name\": \"SetProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetProperty{${1:property}}{${2:setpoint}}{${3:default}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymbolFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"SetSymbolFont{${1:sym-font}}{${2:version}}{${3:encoding}}{${4:family}}{${5:series}}{${6:shape}}\"\n      }\n    },\n    {\n      \"name\": \"SetTemplateKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetTemplateKeys{${1:type}}{${2:template}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ShipoutBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ShowEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowFloat{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"ShowHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ShowInstanceValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowInstanceValues{${1:type}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"ShowMarksAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowMarksAt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateCode{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateDefaults{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateInterface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateInterface{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateVariables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateVariables{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"SplitArgument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SplitArgument{${1:number}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SplitList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SplitList{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SuspendTagging\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuspendTagging{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"TextSymbolUnavailable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextSymbolUnavailable{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TopMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TopMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TopMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TopMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TrimSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UndeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndeclareTextCommand{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"UseHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"UseInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseInstance{${1:type}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"UseLegacyTextSymbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"UseOneTimeHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseOneTimeHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"UseRawInputEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseSocket{${1:socket name}}\"\n      }\n    },\n    {\n      \"name\": \"UseTaggingSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTaggingSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"UseTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"UseTemplate{${1:type}}{${2:template}}{${3:settings}}\"\n      }\n    },\n    {\n      \"name\": \"UseTextAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"UseTextAccent{${1:encoding}}{${2:cmd}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"UseTextSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseTextSymbol{${1:encoding}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExplLoaderFileDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesExplFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplFile{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesExplClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplClass{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesExplPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplPackage{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DocumentMetadata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocumentMetadata{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DocumentMetadata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfDocumentMetadataTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfDocumentMetadataTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"setcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:\\\\gnat}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"setpapersize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpapersize{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"settodepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settodepth{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"settoheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoheight{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"settowidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settowidth{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocontents{${1:ext}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"addtolength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolength{${1:\\\\gnat}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"addvspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"newcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcounter{${1:foo}}\"\n      }\n    },\n    {\n      \"name\": \"newcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newcounter{${1:foo}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"refstepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"restorecr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversemarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"stretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stretch{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"usecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"usefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usefont{${1:enc}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"value\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"value{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"newfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfont{${1:cmd}}{${2:fontname}}\"\n      }\n    },\n    {\n      \"name\": \"theenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thempfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thempfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"savebox{${1:box}}[${3:width}][${4:position}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"savebox{${1:box}}[${3:width}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savebox{${1:box}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"makebox[${2:width}][${3:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makebox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebox{${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}[${3:height}][${4:depth}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}[${3:height}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"newsavebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsavebox{${1:box%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"belowcaptionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binoppenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfloatpagefraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbltextfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbltopfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultscriptratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultscriptscriptratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublerulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intextsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmargini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparpush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabbingsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovecaptionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnseprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evensidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extracolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fboxrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatpagefraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"height\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfabsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfabsnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knaccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knbccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterspacefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokencontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokenname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfadjustinterwordglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfadjustspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfannot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfappendkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcatalog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcatalog{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolorstack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolorstackinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcompresslevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcopyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcreationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdecimaldigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdestmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfeachlinedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfeachlineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfelapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfendlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfendthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfescapehex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapehex{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfescapename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapename{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfescapestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapestring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdffakespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffiledump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffilemoddate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilemoddate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffilesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilesize{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffirstlineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontexpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontobjnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfforcepagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfgentounicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfglyphtounicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfglyphtounicode{${1:glyphname}}{${2:codepoint}}\"\n      }\n    },\n    {\n      \"name\": \"pdfhorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfignoreddimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimageapplygamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimagegamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimagehicolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimageresolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfincludechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinclusioncopyfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinclusionerrorlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfinfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"pdfinfoomitdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinsertht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinterwordspaceoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinterwordspaceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastannot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastlinedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastmatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximagecolordepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximagepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflinkmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfliteral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfliteral{${1:literal}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmajorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmapfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapline{${1:map spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmdfivesum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmovechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfnames{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfnobuiltintounicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnoligatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnormaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfobj{${1:object type spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobjcompresslevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitcharset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitinfodict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitprocset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageresources\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageresources{${1:resources}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagesattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpagesattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpkmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpkresolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprependkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprotrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefximage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfresettimer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrunninglinkoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrunninglinkon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsavepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsetmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfsetmatrix{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsetrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfshellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnaprefpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnapy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnapycomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfspacefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstartlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstartthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstrcmp{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsuppressptexinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningdupdest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningdupmap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningpagegroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexbanner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfthreadmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftracingfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftrailer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftrailer{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdftrailerid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftrailerid{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdfunescapehex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfunescapehex{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfuniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfuniqueresname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfvorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfxformname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfximage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfximage{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfximagebbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quitvmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmarginkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rpcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synctex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tagcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingstacklevels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allocationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"counterwithin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithin[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin*{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithout[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout*{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"emforce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eminnershape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrafloats{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"familydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorespacesafterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loggingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loggingoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathhexbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mddefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakdashes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalsfcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"obeyedline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeyedspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poptabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushtabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"requestedLaTeXdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secdef{${1:star cmd}}{${2:unstar cmd}}\"\n      }\n    },\n    {\n      \"name\": \"seriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shapedefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showoverfull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symoperators\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencirc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencircw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenlnw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcompsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextOrMath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TextOrMath{${1:text content}}{${2:math content}}\"\n      }\n    },\n    {\n      \"name\": \"tmspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tmspace{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tracingnone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\": [\n      \"abspage\",\n      \"page\",\n      \"pagenum\",\n      \"label\",\n      \"title\",\n      \"target\",\n      \"pagetarget\",\n      \"counter\",\n      \"xpos\",\n      \"ypos\",\n      \"%latexproperties\"\n    ],\n    \"\\\\DocumentMetadata#c\": [\n      \"backend=${1:backend}\",\n      \"pdfversion=${1:version}\",\n      \"uncompress\",\n      \"lang=${1:lang}\",\n      \"pdfstandard=${1|A-1b,A-2a,A-2b,A-2u,A-3a,A-3b,A-3u,A-4|}\",\n      \"colorprofiles={${1:options}}\",\n      \"testphase=${1|phase-I,phase-II,phase-III|}\",\n      \"debug={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/latex-document.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"latex-dev\"\n    },\n    {\n      \"name\": \"textcomp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Alph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"alph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"and\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asciispace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"bezier{${1:n}}(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"bfseries\"\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bigg\"\n    },\n    {\n      \"name\": \"Bigg(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg(${1}\\\\Bigg)\"\n      }\n    },\n    {\n      \"name\": \"Bigg[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg[${1}\\\\Bigg]\"\n      }\n    },\n    {\n      \"name\": \"Bigg|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg|${1}\\\\Bigg|\"\n      }\n    },\n    {\n      \"name\": \"bigg\"\n    },\n    {\n      \"name\": \"bigg(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg(${1}\\\\bigg)\"\n      }\n    },\n    {\n      \"name\": \"bigg[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg[${1}\\\\bigg]\"\n      }\n    },\n    {\n      \"name\": \"bigg|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg|${1}\\\\bigg|\"\n      }\n    },\n    {\n      \"name\": \"boldmath\"\n    },\n    {\n      \"name\": \"botfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"circle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle*{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"columnwidth\"\n    },\n    {\n      \"name\": \"contentsline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"contentsline{${1:type}}{${2:text}}{${3:page}}{${4:Href}}\"\n      }\n    },\n    {\n      \"name\": \"contentsname\"\n    },\n    {\n      \"name\": \"dashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()[]{}\",\n        \"snippet\": \"dashbox{${1:dashlength}}(${4:width},${5:height})[${3:position}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"dashbox{${1:dashlength}}(${3:width},${4:height}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"depth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descriptionlabel{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dimeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimeval{${1:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"em\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encodingdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enlargethispage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enlargethispage*{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enlargethispage{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"figurename\"\n    },\n    {\n      \"name\": \"flushbottom\"\n    },\n    {\n      \"name\": \"fnsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsymbol{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"fontencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontencoding{${1:enc}}\"\n      }\n    },\n    {\n      \"name\": \"fontfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"fontseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"fontseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"fontshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"fontshapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontshapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"fontsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fontsize{${1:size}}{${2:skip}}\"\n      }\n    },\n    {\n      \"name\": \"fontsubfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fpeval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpeval{${1:fp expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"framebox\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"framebox(${3:xdimen},${4:ydimen})[${2:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"framebox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"framebox(${2:xdimen},${3:ydimen}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frame{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fussy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrule\"\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ij\"\n    },\n    {\n      \"name\": \"IJ\"\n    },\n    {\n      \"name\": \"indexname\"\n    },\n    {\n      \"name\": \"indexspace\"\n    },\n    {\n      \"name\": \"inputencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inteval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inteval{${1:int expression}}\"\n      }\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelformat{${1:counter}}{${2:representation}}\"\n      }\n    },\n    {\n      \"name\": \"labelitemfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"language\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXe\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"unusual\": true,\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"lefteqn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefteqn{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"lefthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legacyoldstylenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legacyoldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"line\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"line(${2:xslope},${3:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"linethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linethickness{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"linewidth\"\n    },\n    {\n      \"name\": \"listfigurename\"\n    },\n    {\n      \"name\": \"listfiles\"\n    },\n    {\n      \"name\": \"listfiles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listfiles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listfiles\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\"\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"makebox(${3:width},${4:height})[${2:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"makebox(${2:width},${3:height}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeLowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeLowercase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeTitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeTitlecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeTitlecase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeUppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeUppercase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathellipsis\"\n    },\n    {\n      \"name\": \"mathgroup\"\n    },\n    {\n      \"name\": \"mathindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathring{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"mathunderscore\"\n    },\n    {\n      \"name\": \"mathversion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathversion{${1:version%keyvals}}\",\n        \"keys\": [\n          \"\\\\mathversion#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"medspace\"\n    },\n    {\n      \"name\": \"mdseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multiput(${3:xcoord},${4:ycoord})(${5:xdelta},${6:ydelta}){${1:copies}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"negmedspace\"\n    },\n    {\n      \"name\": \"negthickspace\"\n    },\n    {\n      \"name\": \"newblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newlabel{${1:label%plain}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"newlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlength{${1:newlength%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NoCaseChange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoCaseChange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nocorr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocorrlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocorrlist{${1:charlist}}\"\n      }\n    },\n    {\n      \"name\": \"nofiles\"\n    },\n    {\n      \"name\": \"noprotrusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcolor\"\n    },\n    {\n      \"name\": \"normalfont\"\n    },\n    {\n      \"name\": \"normalmarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddsidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oe\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldstylenums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumn\"\n    },\n    {\n      \"name\": \"oval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"oval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"oval(${2:width},${3:height})[${1:portion}]\"\n      }\n    },\n    {\n      \"name\": \"pageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}][${5:inner-pos}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"partname\"\n    },\n    {\n      \"name\": \"poptabs\"\n    },\n    {\n      \"name\": \"pounds\"\n    },\n    {\n      \"name\": \"protect\"\n    },\n    {\n      \"name\": \"pushtabs\"\n    },\n    {\n      \"name\": \"put\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"put(${2:xcoord},${3:ycoord}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"qbezier(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"qbezier[${1:n}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"qbeziermax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"r\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"r{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"rbrack\",\n      \"unusual\": true,\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"ref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refname\"\n    },\n    {\n      \"name\": \"relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmargin\"\n    },\n    {\n      \"name\": \"rightmark\"\n    },\n    {\n      \"name\": \"rm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmfamily\"\n    },\n    {\n      \"name\": \"rootbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SS\"\n    },\n    {\n      \"name\": \"samepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbox{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scshape\"\n    },\n    {\n      \"name\": \"sectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"selectfont\"\n    },\n    {\n      \"name\": \"setlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"sf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamily\"\n    },\n    {\n      \"name\": \"shortstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortstack[${2:position}]{${1:text\\\\\\\\text}}\"\n      }\n    },\n    {\n      \"name\": \"shortstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortstack{${1:text\\\\\\\\text}}\"\n      }\n    },\n    {\n      \"name\": \"skipeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skipeval{${1:skip expression}}\"\n      }\n    },\n    {\n      \"name\": \"sl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slshape\"\n    },\n    {\n      \"name\": \"sqrt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sqrt[${2:root}]{${1:arg}}\"\n      },\n      \"detail\": \"√\",\n      \"doc\": \"Radical\"\n    },\n    {\n      \"name\": \"sqrtsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqrtsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sscshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"stop\"\n    },\n    {\n      \"name\": \"subitem\"\n    },\n    {\n      \"name\": \"subparagraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparagraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsubitem\"\n    },\n    {\n      \"name\": \"subsubsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"suppressfloats\"\n    },\n    {\n      \"name\": \"suppressfloats\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suppressfloats[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"swshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbol{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tablename\"\n    },\n    {\n      \"name\": \"tabularnewline\"\n    },\n    {\n      \"name\": \"textasciicircum\"\n    },\n    {\n      \"name\": \"textasciitilde\"\n    },\n    {\n      \"name\": \"textasteriskcentered\"\n    },\n    {\n      \"name\": \"textbackslash\"\n    },\n    {\n      \"name\": \"textbar\"\n    },\n    {\n      \"name\": \"textbardbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbraceleft\"\n    },\n    {\n      \"name\": \"textbraceright\"\n    },\n    {\n      \"name\": \"textbullet\"\n    },\n    {\n      \"name\": \"textcircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircled{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcommaabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcommaabove{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcommabelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcommabelow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcompwordmark\"\n    },\n    {\n      \"name\": \"textcopyright\"\n    },\n    {\n      \"name\": \"textdagger\"\n    },\n    {\n      \"name\": \"textdaggerdbl\"\n    },\n    {\n      \"name\": \"textdollar\"\n    },\n    {\n      \"name\": \"textellipsis\"\n    },\n    {\n      \"name\": \"textemdash\"\n    },\n    {\n      \"name\": \"textendash\"\n    },\n    {\n      \"name\": \"textexclamdown\"\n    },\n    {\n      \"name\": \"textfiguredash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgreater\"\n    },\n    {\n      \"name\": \"textheight\"\n    },\n    {\n      \"name\": \"texthorizontalbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textless\"\n    },\n    {\n      \"name\": \"textnonbreakinghyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textparagraph\"\n    },\n    {\n      \"name\": \"textperiodcentered\"\n    },\n    {\n      \"name\": \"textquestiondown\"\n    },\n    {\n      \"name\": \"textquotedblleft\"\n    },\n    {\n      \"name\": \"textquotedblright\"\n    },\n    {\n      \"name\": \"textquoteleft\"\n    },\n    {\n      \"name\": \"textquoteright\"\n    },\n    {\n      \"name\": \"textregistered\"\n    },\n    {\n      \"name\": \"textssc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textssc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"textsterling\"\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttrademark\"\n    },\n    {\n      \"name\": \"textulc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textulc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textunderscore\"\n    },\n    {\n      \"name\": \"textvisiblespace\"\n    },\n    {\n      \"name\": \"thicklines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickspace\"\n    },\n    {\n      \"name\": \"thinlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"time\"\n    },\n    {\n      \"name\": \"tt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twocolumn[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"typein\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typein[${2:cmd}]{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"typein\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typein{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"typeout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typeout{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"ulcshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unboldmath\"\n    },\n    {\n      \"name\": \"upshape\"\n    },\n    {\n      \"name\": \"varbigtriangledown\"\n    },\n    {\n      \"name\": \"varbigtriangleup\"\n    },\n    {\n      \"name\": \"vdots\",\n      \"detail\": \"⋮\",\n      \"doc\": \"Vertical ellipsis\"\n    },\n    {\n      \"name\": \"vector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"vector(${2:xslope},${3:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"verb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"verb*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"verb*|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"verbvisiblespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vline\"\n    },\n    {\n      \"name\": \"width\"\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"center\"\n    },\n    {\n      \"name\": \"description\"\n    },\n    {\n      \"name\": \"displaymath\"\n    },\n    {\n      \"name\": \"document\"\n    },\n    {\n      \"name\": \"equation\"\n    },\n    {\n      \"name\": \"eqnarray\"\n    },\n    {\n      \"name\": \"eqnarray*\"\n    },\n    {\n      \"name\": \"figure\"\n    },\n    {\n      \"name\": \"figure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"figure*\"\n    },\n    {\n      \"name\": \"figure*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"filecontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filecontents\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{filecontents},\\\\begin{filecontents*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"filecontents*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filecontents*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{filecontents},\\\\begin{filecontents*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flushleft\"\n    },\n    {\n      \"name\": \"flushright\"\n    },\n    {\n      \"name\": \"footnotesize\"\n    },\n    {\n      \"name\": \"Huge\"\n    },\n    {\n      \"name\": \"huge\"\n    },\n    {\n      \"name\": \"itemize\"\n    },\n    {\n      \"name\": \"LARGE\"\n    },\n    {\n      \"name\": \"Large\"\n    },\n    {\n      \"name\": \"large\"\n    },\n    {\n      \"name\": \"list\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:label}}{${2:spacing}}\"\n      }\n    },\n    {\n      \"name\": \"lrbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"math\"\n    },\n    {\n      \"name\": \"matrix\"\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"normalsize\"\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:width},${2:height})(${3:xoffset},${4:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"pmatrix\"\n    },\n    {\n      \"name\": \"quotation\"\n    },\n    {\n      \"name\": \"quote\"\n    },\n    {\n      \"name\": \"scriptsize\"\n    },\n    {\n      \"name\": \"samepage\"\n    },\n    {\n      \"name\": \"small\"\n    },\n    {\n      \"name\": \"tabbing\"\n    },\n    {\n      \"name\": \"table*\"\n    },\n    {\n      \"name\": \"table*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"table\"\n    },\n    {\n      \"name\": \"table\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"thebibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widestlabel}}\"\n      }\n    },\n    {\n      \"name\": \"theindex\"\n    },\n    {\n      \"name\": \"tiny\"\n    },\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"trivlist\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"verbatim*\"\n    },\n    {\n      \"name\": \"verse\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{filecontents},\\\\begin{filecontents*}\": [\n      \"force\",\n      \"overwrite\",\n      \"noheader\",\n      \"nosearch\",\n      \"nowarn\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"abbrv\",\n      \"acm\",\n      \"alpha\",\n      \"apalike\",\n      \"ieeetr\",\n      \"plain\",\n      \"siam\",\n      \"unsrt\"\n    ],\n    \"\\\\listfiles\": [\n      \"hashes\",\n      \"sizes\"\n    ],\n    \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\": [\n      \"locale=${1:BCP-47 tag}\",\n      \"lang=${1:BCP-47 tag}\"\n    ],\n    \"\\\\mathversion#c\": [\n      \"bold\",\n      \"normal\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\"\n    ],\n    \"\\\\documentclass/article#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/article#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/latex-l2tabu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centerline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fussy\"\n    },\n    {\n      \"name\": \"sloppy\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"eqnarray\"\n    },\n    {\n      \"name\": \"eqnarray*\"\n    },\n    {\n      \"name\": \"fussypar\"\n    },\n    {\n      \"name\": \"sloppypar\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/layout.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"layout\"\n    },\n    {\n      \"name\": \"layout*\"\n    },\n    {\n      \"name\": \"Headertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bodytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Footertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarginNotestext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneinchtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notshown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LayOuttype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LayOuttype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LayOutbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ConvertToCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConvertToCount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"SetToHalf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetToHalf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"SetToQuart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetToQuart{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Identify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Identify{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"InsideHArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsideHArrow{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"InsideVArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsideVArrow{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"OutsideHArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OutsideHArrow{${1:right arrow pos}}{${2:length}}{${3:arrow length}}\"\n      }\n    },\n    {\n      \"name\": \"OutsideVArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OutsideVArrow{${1:lower arrow pos}}{${2:length}}{${3:arrow length}}\"\n      }\n    },\n    {\n      \"name\": \"Show\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Show{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Type\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Type{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"oneinch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Interval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExtraYPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PositionX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PositionY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowLength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/layout#c\": [\n      \"dutch\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"spanish\",\n      \"portuguese\",\n      \"brazilian\",\n      \"italian\",\n      \"romanian\",\n      \"japanese\",\n      \"verbose\",\n      \"silent\",\n      \"integers\",\n      \"reals\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/layout#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/letltxmacro.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GlobalLetLtxMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalLetLtxMacro{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"LetLtxMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetLtxMacro{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/libertine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oldstylenumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"libertineSB\"\n    },\n    {\n      \"name\": \"libertineOsF\"\n    },\n    {\n      \"name\": \"libertineLF\"\n    },\n    {\n      \"name\": \"libertineDisplay\"\n    },\n    {\n      \"name\": \"libmono\"\n    },\n    {\n      \"name\": \"libertineInitial\"\n    },\n    {\n      \"name\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinumOsF\"\n    },\n    {\n      \"name\": \"biolinumLF\"\n    },\n    {\n      \"name\": \"libertineInitialGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineInitialGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"libertineGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumKeyGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumKeyGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LKeyTux\"\n    },\n    {\n      \"name\": \"LKeyWin\"\n    },\n    {\n      \"name\": \"LKeyMenu\"\n    },\n    {\n      \"name\": \"LKeyStrg\"\n    },\n    {\n      \"name\": \"LKeyCtrl\"\n    },\n    {\n      \"name\": \"LKeyAlt\"\n    },\n    {\n      \"name\": \"LKeyAltGr\"\n    },\n    {\n      \"name\": \"LKeyShift\"\n    },\n    {\n      \"name\": \"LKeyEnter\"\n    },\n    {\n      \"name\": \"LKeyTab\"\n    },\n    {\n      \"name\": \"LKeyCapsLock\"\n    },\n    {\n      \"name\": \"LKeyPos\"\n    },\n    {\n      \"name\": \"LKeyEntf\"\n    },\n    {\n      \"name\": \"LKeyEinf\"\n    },\n    {\n      \"name\": \"LKeyLeer\"\n    },\n    {\n      \"name\": \"LKeyEsc\"\n    },\n    {\n      \"name\": \"LKeyEnde\"\n    },\n    {\n      \"name\": \"LKeyBack\"\n    },\n    {\n      \"name\": \"LKeyUp\"\n    },\n    {\n      \"name\": \"LKeyDown\"\n    },\n    {\n      \"name\": \"LKeyLeft\"\n    },\n    {\n      \"name\": \"LKeyRight\"\n    },\n    {\n      \"name\": \"LKeyPgUp\"\n    },\n    {\n      \"name\": \"LKeyPgDown\"\n    },\n    {\n      \"name\": \"LKeyAt\"\n    },\n    {\n      \"name\": \"LKeyFn\"\n    },\n    {\n      \"name\": \"LKeyHome\"\n    },\n    {\n      \"name\": \"LKeyDel\"\n    },\n    {\n      \"name\": \"LKeySpace\"\n    },\n    {\n      \"name\": \"LKeyScreenUp\"\n    },\n    {\n      \"name\": \"LKeyScreenDown\"\n    },\n    {\n      \"name\": \"LKeyIns\"\n    },\n    {\n      \"name\": \"LKeyEnd\"\n    },\n    {\n      \"name\": \"LKeyGNU\"\n    },\n    {\n      \"name\": \"LKeyPageUp\"\n    },\n    {\n      \"name\": \"LKeyPageDown\"\n    },\n    {\n      \"name\": \"LKeyCommand\"\n    },\n    {\n      \"name\": \"LKeyOptionKey\"\n    },\n    {\n      \"name\": \"LKeyF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyPad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyPad{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKey{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltEnt\"\n    },\n    {\n      \"name\": \"LKeyReset\"\n    },\n    {\n      \"name\": \"LKeyCtrlAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltEnt\"\n    },\n    {\n      \"name\": \"LKeyAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LMouseEmpty\"\n    },\n    {\n      \"name\": \"LMouseN\"\n    },\n    {\n      \"name\": \"LMouseL\"\n    },\n    {\n      \"name\": \"LMouseM\"\n    },\n    {\n      \"name\": \"LMouseR\"\n    },\n    {\n      \"name\": \"LMouseLR\"\n    },\n    {\n      \"name\": \"LMouseIIEmpty\"\n    },\n    {\n      \"name\": \"LMouseIIN\"\n    },\n    {\n      \"name\": \"LMouseIIL\"\n    },\n    {\n      \"name\": \"LMouseIIR\"\n    },\n    {\n      \"name\": \"LMouseIILR\"\n    },\n    {\n      \"name\": \"DeclareTextGlyphY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextGlyphY{${1:type}}{${2:name}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertine#c\": [\n      \"biolinum\",\n      \"sf\",\n      \"ss\",\n      \"libertine\",\n      \"rm\",\n      \"tt\",\n      \"mono\",\n      \"sfdefault\",\n      \"type1\",\n      \"nofontspec\",\n      \"lining\",\n      \"oldstyle\",\n      \"sflining\",\n      \"sfoldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"sftabular\",\n      \"sfproportional\",\n      \"semibold\",\n      \"bold\",\n      \"scaled=${1:factor}\",\n      \"ttscaled=${1:factor}\",\n      \"llscaled=${1:factor}\",\n      \"defaultfeatures={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertine#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/lipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\"\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum*[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum*[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"unpacklipsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpacklipsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpacklipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"unpacklipsum*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpacklipsum*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpacklipsum*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsumexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlipsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlipsum{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetLipsumText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumText{${1:lipsum text definition filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumDefault{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumDefault{${1:num-num}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LipsumPar{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListItemSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListItemSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSeparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemSeparator{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSeparator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemSeparator*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSeparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSeparator{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSeparator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSeparator*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumProtect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LipsumProtect{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumRestoreParList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LipsumRestoreSentenceList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LipsumRestoreAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewLipsumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewLipsumPar{${1:paragrph}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumLanguage{${1:language}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\": [\n      \"nopar\",\n      \"text=${1|lipsum,cicero,lipsum-cs|}\",\n      \"language=${1:language}\",\n      \"auto-lang\",\n      \"default-range=${1:i-j}\",\n      \"par-before=${1:tokens}\",\n      \"par-begin=${1:tokens}\",\n      \"par-sep=${1:tokens}\",\n      \"par-end=${1:tokens}\",\n      \"par-after=${1:tokens}\",\n      \"sentence-before=${1:tokens}\",\n      \"sentence-begin=${1:tokens}\",\n      \"sentence-sep=${1:tokens}\",\n      \"sentence-end=${1:tokens}\",\n      \"sentence-after=${1:tokens}\",\n      \"par-before*=${1:tokens}\",\n      \"par-begin*=${1:tokens}\",\n      \"par-sep*=${1:tokens}\",\n      \"par-end*=${1:tokens}\",\n      \"par-after*=${1:tokens}\",\n      \"sentence-before*=${1:tokens}\",\n      \"sentence-begin*=${1:tokens}\",\n      \"sentence-sep*=${1:tokens}\",\n      \"sentence-end*=${1:tokens}\",\n      \"sentence-after*=${1:tokens}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/listings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lstloadlanguages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstloadlanguages{${1:lang1,lang2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\lstloadlanguages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstset{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstinline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"lstinline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"lstinline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"lstinline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstinputlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstinputlisting{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"lstinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstinputlisting[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstdefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefinestyle{${1:style name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"thelstnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHlstnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelstlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistoflistings\"\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingnamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelstlisting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstindexmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstindexmacro{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefinelanguage{${1:language name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"lstdefinelanguage{${1:language name}}{${2:keyvals}}[${3:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lstdefinelanguage[${3:dialect}]{${1:language name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"lstdefinelanguage[${3:dialect}]{${1:language name}}{${2:keyvals}}[${4:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"lstdefinelanguage[${4:dialect}]{${1:language name}}[${5:base dialect}]{${2:base language}}{${3:keyvals}}[${6:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"lstalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstalias{${1:alias}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"lstaspectfiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlanguagefiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstloadaspects\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstloadaspects{${1:aspects}}\"\n      }\n    },\n    {\n      \"name\": \"lststylefiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlgrindeffile\",\n      \"if\": \"lgrind\"\n    },\n    {\n      \"name\": \"lstdefineformat\",\n      \"if\": \"formats\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefineformat{${1:name}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"lstformatfiles\",\n      \"if\": \"formats\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lstlisting\"\n    },\n    {\n      \"name\": \"lstlisting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/listings#c\": [\n      \"draft\",\n      \"final\",\n      \"savemem\",\n      \"noaspects\",\n      \"lgrind\",\n      \"procnames\",\n      \"hyper\",\n      \"formats\",\n      \"0.21\"\n    ],\n    \"\\\\lstloadlanguages#c\": [\n      \"ABAP\",\n      \"[R/2 4.3]ABAP\",\n      \"[R/2 5.0]ABAP\",\n      \"[R/3 3.1]ABAP\",\n      \"[R/3 4.6C]ABAP\",\n      \"[R/3 6.10]ABAP\",\n      \"ACM\",\n      \"ACSL\",\n      \"ACMscript\",\n      \"Ada\",\n      \"[2005]Ada\",\n      \"[83]Ada\",\n      \"[95]Ada\",\n      \"Algol\",\n      \"[60]Algol\",\n      \"[68]Algol\",\n      \"Ant\",\n      \"Assembler\",\n      \"[Motorola68k]Assembler\",\n      \"[x86masm]Assembler\",\n      \"Awk\",\n      \"[gnu]Awk\",\n      \"[POSIX]Awk\",\n      \"bash\",\n      \"Basic\",\n      \"[Visual]Basic\",\n      \"C\",\n      \"[ANSI]C\",\n      \"[Handel]C\",\n      \"[Objective]C\",\n      \"[Sharp]C\",\n      \"C++\",\n      \"[11]C++\",\n      \"[ANSI]C++\",\n      \"[GNU]C++\",\n      \"[ISO]C++\",\n      \"[Visual]C++\",\n      \"Caml\",\n      \"[light]Caml\",\n      \"[Objective]Caml\",\n      \"CIL\",\n      \"Clean\",\n      \"Cobol\",\n      \"[1974]Cobol\",\n      \"[1985]Cobol\",\n      \"[ibm]Cobol\",\n      \"Comal 80\",\n      \"command.com\",\n      \"[WinXP]command.com\",\n      \"Comsol\",\n      \"csh\",\n      \"Delphi\",\n      \"Eiffel\",\n      \"Elan\",\n      \"elisp\",\n      \"erlang\",\n      \"Euphoria\",\n      \"Fortran\",\n      \"[03]Fortran\",\n      \"[08]Fortran\",\n      \"[18]Fortran\",\n      \"[77]Fortran\",\n      \"[90]Fortran\",\n      \"[95]Fortran\",\n      \"GAP\",\n      \"GCL\",\n      \"Gnuplot\",\n      \"Go\",\n      \"hansl\",\n      \"Haskell\",\n      \"HTML\",\n      \"IDL\",\n      \"[CORBA]IDL\",\n      \"inform\",\n      \"Java\",\n      \"[AspectJ]Java\",\n      \"JVMIS\",\n      \"ksh\",\n      \"Lingo\",\n      \"Lisp\",\n      \"[Auto]Lisp\",\n      \"LLVM\",\n      \"Logo\",\n      \"Lua\",\n      \"[5.0]Lua\",\n      \"[5.1]Lua\",\n      \"[5.2]Lua\",\n      \"[5.3]Lua\",\n      \"make\",\n      \"[gnu]make\",\n      \"Mathematica\",\n      \"[1.0]Mathematica\",\n      \"[11.0]Mathematica\",\n      \"[3.0]Mathematica\",\n      \"[5.2]Mathematica\",\n      \"Matlab\",\n      \"[5.1]Matlab\",\n      \"Mercury\",\n      \"MetaPost\",\n      \"Miranda\",\n      \"Mizar\",\n      \"ML\",\n      \"Modula-2\",\n      \"MuPAD\",\n      \"NASTRAN\",\n      \"Oberon-2\",\n      \"OCL\",\n      \"[decorative]OCL\",\n      \"[OMG]OCL\",\n      \"Octave\",\n      \"OORexx\",\n      \"Oz\",\n      \"Pascal\",\n      \"[Borland6]Pascal\",\n      \"[Standard]Pascal\",\n      \"[XSC]Pascal\",\n      \"Perl\",\n      \"PHP\",\n      \"PL/I\",\n      \"Plasm\",\n      \"PostScript\",\n      \"POV\",\n      \"Prolog\",\n      \"Promela\",\n      \"PSTricks\",\n      \"Python\",\n      \"R\",\n      \"Reduce\",\n      \"Rexx\",\n      \"[VM/XA]Rexx\",\n      \"RSL\",\n      \"Ruby\",\n      \"S\",\n      \"[PLUS]S\",\n      \"SAS\",\n      \"Scala\",\n      \"[3.0]Scala\",\n      \"Scilab\",\n      \"sh\",\n      \"SHELXL\",\n      \"Simula\",\n      \"[67]Simula\",\n      \"[CII]Simula\",\n      \"[DEC]Simula\",\n      \"[IBM]Simula\",\n      \"SPARQL\",\n      \"SQL\",\n      \"Swift\",\n      \"tcl\",\n      \"[tk]tcl\",\n      \"TeX\",\n      \"[AlLaTeX]TeX\",\n      \"[common]TeX\",\n      \"[LaTeX]TeX\",\n      \"[plain]TeX\",\n      \"[primitive]TeX\",\n      \"VBScript\",\n      \"Verilog\",\n      \"VHDL\",\n      \"[AMS]VHDL\",\n      \"VRML\",\n      \"[97]VRML\",\n      \"XML\",\n      \"XSLT\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=*${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=*${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"endkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\",\n      \"procnamekeys={${1:keywords}}\",\n      \"moreprocnamekeys={${1:keywords}}\",\n      \"deleteprocnamekeys={${1:keywords}}\",\n      \"procnamestyle=${1:style}\",\n      \"indexprocnames\",\n      \"hyperref={${1:identifiers}}\",\n      \"morehyperref={${1:identifiers}}\",\n      \"deletehyperref={${1:identifiers}}\",\n      \"hyperanchor=${1:two-parameter macro}\",\n      \"hyperlink=${1:two-parameter macro}\",\n      \"lgrindef=${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listings#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/logsys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"coordsys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"logline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"logline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"logline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vlogline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vlogline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vlogline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vlogline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semilogsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semilogsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semilogsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semilogsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semilogsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semilogsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loglogsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loglogsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loglogsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loglogsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loglogsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loglogsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semiloggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semiloggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semiloggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semiloggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semiloggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semiloggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logloggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logloggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logloggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logloggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logloggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logloggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"interval\"\n    },\n    {\n      \"name\": \"intervalthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intervalthickness{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"intervalthickness\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intervalthickness[${2:offset%l}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"vinterval\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/logsys#c\": [\n      \"centred\",\n      \"outside\",\n      \"inside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/logsys#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/longtable.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endfirstfoot\"\n    },\n    {\n      \"name\": \"endlastfoot\"\n    },\n    {\n      \"name\": \"endfirsthead\"\n    },\n    {\n      \"name\": \"endfoot\"\n    },\n    {\n      \"name\": \"endhead\"\n    },\n    {\n      \"name\": \"LTchunksize\"\n    },\n    {\n      \"name\": \"LTcapwidth\"\n    },\n    {\n      \"name\": \"LTleft\"\n    },\n    {\n      \"name\": \"LTpost\"\n    },\n    {\n      \"name\": \"LTpre\"\n    },\n    {\n      \"name\": \"LTright\"\n    },\n    {\n      \"name\": \"setlongtables\"\n    },\n    {\n      \"name\": \"tabularnewline\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/longtable#c\": [\n      \"errorshow\",\n      \"pausing\",\n      \"set\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/longtable#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/lscape.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"landscape\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lscape#c\": [\n      \"pdftex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lscape#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/ltxtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"tabularx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LTXtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LTXtable{${1:width}}{${2:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/luatex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"luatexbanner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directlua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directlua{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"latelua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latelua{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luaescapestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaescapestring{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"fontid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfontid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scantextokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnamedcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alignmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aligntab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediateassignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediateassigned\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcondition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveboxresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveimageresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useboxresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useimageresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedboxresourceindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedimageresourceindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedimageresourcepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protrusionboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebottomoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetopoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerightoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageleftoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokencontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokenname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXgluestretchorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXglueshrinkorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deferred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreligaturesinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandglyphsinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabsnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linedir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pardir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pardir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodydir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hjcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenationbounds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explicitdiscretionary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automaticdiscretionary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftghost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightghost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenpenaltymode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automatichyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explicithyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exceptionpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnumdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uradical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uroot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uoverdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uunderdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiterover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiterunder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variablefam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampeddisplaystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedtextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoperatorsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreebefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreeafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreeraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstackvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstacknumup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstackdenomdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionnumvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionnumup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondenomvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondenomdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondelsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovevgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovebgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovekern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverdelimitervgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverdelimiterbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderdelimitervgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderdelimiterbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubshiftdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubshiftdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupshiftdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupshiftup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubsupshiftdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubtopmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupbottommin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupsubbottommax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubsupvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathspaceafterscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathconnectoroverlapmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathskewedfractionhgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathskewedfractionvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoprelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoppunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbininnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopeninnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathclosebinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloserelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathclosepunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinneropspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinneropenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathnolimitsupfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathnolimitsubfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uhextensible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uvextensible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uskewed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uskewedwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umiddle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usuperscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usubscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustartmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustopmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustartdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustopdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Unosuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unosuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Unosubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unosubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localinterlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localbrokenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localleftbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localrightbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundhyphenmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dviextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvifeedback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvivariable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlocalcontrol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixupboxesmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luacopyinputnodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulesfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulesmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulethicknessmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newattribute{${1:attribute%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newcatcodetable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcatcodetable{${1:catcodetable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluafunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluafunction{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"newluacmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluacmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newprotectedluacmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newprotectedluacmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newwhatsit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newwhatsit{${1:whatsit%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluabytecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluabytecode{${1:bytecode%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluachunkname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluachunkname{${1:chunkname%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setattribute{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"unsetattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unsetattribute{${1:attribute}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/luatodonotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"soulpos\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"shadow\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\todoarea\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"todoarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todoarea{${1:note text%todo}}{${2:highlighted text}}\"\n      }\n    },\n    {\n      \"name\": \"todoarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"todoarea[${3:options%keyvals}]{${1:note text%todo}}{${2:highlighted text}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\todoarea\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingfigure{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missingfigure[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\missingfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"listoftodos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftodos[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"todototoc\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatodonotes#c\": [\n      \"disable\",\n      \"obeyDraft\",\n      \"obeyFinal\",\n      \"danish\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"swedish\",\n      \"spanish\",\n      \"catalan\",\n      \"italian\",\n      \"portuguese\",\n      \"dutch\",\n      \"croatian\",\n      \"colorinlistoftodos\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"textsize=${1:fontsize csname}\",\n      \"prependcaption=${1:caption}\",\n      \"shadow\",\n      \"figwidth=\",\n      \"figheight=\",\n      \"leaderwidth=\",\n      \"leadertype=${1|s,sBezier,opo,os,po|}\",\n      \"positioning=${1|inputOrder,inputOrderStacks,sLeaderNorthEast,sLeaderNorthEastBelow,sLeaderNorthEastBelowStacks,sLeaderEast,poLeaders,poLeadersAvoidLines|}\",\n      \"s\",\n      \"bezier\",\n      \"opo\",\n      \"po\",\n      \"splitting=${1|none,middle,median,weightedMedian|}\",\n      \"interNoteSpace=\",\n      \"noteInnerSep=\",\n      \"routingAreaWidth=\",\n      \"minNoteWidth=\",\n      \"distanceNotesPageBorder=\",\n      \"distanceNotesText=\",\n      \"rasterHeight=\",\n      \"additionalMargin=\",\n      \"debug\"\n    ],\n    \"\\\\todo,\\\\todoarea\": [\n      \"disable\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"line\",\n      \"noline\",\n      \"inline\",\n      \"noinline\",\n      \"size=\",\n      \"list\",\n      \"nolist\",\n      \"caption=\",\n      \"prepend\",\n      \"noprepend\",\n      \"author=\"\n    ],\n    \"\\\\missingfigure\": [\n      \"figwidth=\",\n      \"figheight=\",\n      \"figcolor=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatodonotes#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/manyfoot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccfoots\"\n    },\n    {\n      \"name\": \"perpage\",\n      \"if\": \"perpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"extrafootnoterule\"\n    },\n    {\n      \"name\": \"defaultfootnoterule\"\n    },\n    {\n      \"name\": \"newfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnote{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newfootnote[${2:style}]{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewFootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewFootnote{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewFootnote\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DeclareNewFootnote[${2:footnote-style}]{${1:suffix}}[${3:enumeration-style}]\"\n      }\n    },\n    {\n      \"name\": \"SelectFootnoteRule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectFootnoteRule{${1:rule-name}}\"\n      }\n    },\n    {\n      \"name\": \"SelectFootnoteRule\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"SelectFootnoteRule[${2:priority}]{${1:rule-name}}[${3:action}]\"\n      }\n    },\n    {\n      \"name\": \"footnoterulepriority\"\n    },\n    {\n      \"name\": \"SetFootnoteHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFootnoteHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SplitNote\"\n    },\n    {\n      \"name\": \"ExtraParaSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExtraParaSkip{${1:space%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/manyfoot#c\": [\n      \"ruled\",\n      \"para\",\n      \"para*\",\n      \"perpage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/manyfoot#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/marvosym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Pickup\"\n    },\n    {\n      \"name\": \"Letter\"\n    },\n    {\n      \"name\": \"Mobilefone\"\n    },\n    {\n      \"name\": \"Telefon\"\n    },\n    {\n      \"name\": \"fax\"\n    },\n    {\n      \"name\": \"FAX\"\n    },\n    {\n      \"name\": \"Faxmachine\"\n    },\n    {\n      \"name\": \"Email\"\n    },\n    {\n      \"name\": \"Lightning\"\n    },\n    {\n      \"name\": \"EmailCT\"\n    },\n    {\n      \"name\": \"Beam\"\n    },\n    {\n      \"name\": \"Bearing\"\n    },\n    {\n      \"name\": \"LooseBearing\"\n    },\n    {\n      \"name\": \"FixedBearing\"\n    },\n    {\n      \"name\": \"LeftTorque\"\n    },\n    {\n      \"name\": \"RightTorque\"\n    },\n    {\n      \"name\": \"Lineload\"\n    },\n    {\n      \"name\": \"MVArrowDown\"\n    },\n    {\n      \"name\": \"OktoSteel\"\n    },\n    {\n      \"name\": \"HexaSteel\"\n    },\n    {\n      \"name\": \"SquareSteel\"\n    },\n    {\n      \"name\": \"RectSteel\"\n    },\n    {\n      \"name\": \"CircSteel\"\n    },\n    {\n      \"name\": \"SquarePipe\"\n    },\n    {\n      \"name\": \"RectPipe\"\n    },\n    {\n      \"name\": \"CircPipe\"\n    },\n    {\n      \"name\": \"LSteel\"\n    },\n    {\n      \"name\": \"RoundedLSteel\"\n    },\n    {\n      \"name\": \"TSteel\"\n    },\n    {\n      \"name\": \"RoundedTSteel\"\n    },\n    {\n      \"name\": \"TTSteel\"\n    },\n    {\n      \"name\": \"RoundedTTSteel\"\n    },\n    {\n      \"name\": \"FlatSteel\"\n    },\n    {\n      \"name\": \"Valve\"\n    },\n    {\n      \"name\": \"Industry\"\n    },\n    {\n      \"name\": \"Coffeecup\"\n    },\n    {\n      \"name\": \"LeftScissors\"\n    },\n    {\n      \"name\": \"CuttingLine\"\n    },\n    {\n      \"name\": \"RightScissors\"\n    },\n    {\n      \"name\": \"Football\"\n    },\n    {\n      \"name\": \"Bicycle\"\n    },\n    {\n      \"name\": \"Info\"\n    },\n    {\n      \"name\": \"ClockLogo\"\n    },\n    {\n      \"name\": \"CutRight\"\n    },\n    {\n      \"name\": \"CutLine\"\n    },\n    {\n      \"name\": \"CutLeft\"\n    },\n    {\n      \"name\": \"Wheelchair\"\n    },\n    {\n      \"name\": \"Gentsroom\"\n    },\n    {\n      \"name\": \"Ladiesroom\"\n    },\n    {\n      \"name\": \"Checkedbox\"\n    },\n    {\n      \"name\": \"CrossedBox\"\n    },\n    {\n      \"name\": \"HollowBox\"\n    },\n    {\n      \"name\": \"PointingHand\"\n    },\n    {\n      \"name\": \"WritingHand\"\n    },\n    {\n      \"name\": \"MineSign\"\n    },\n    {\n      \"name\": \"Recycling\"\n    },\n    {\n      \"name\": \"PackingWaste\"\n    },\n    {\n      \"name\": \"WashCotton\"\n    },\n    {\n      \"name\": \"WashSynthetics\"\n    },\n    {\n      \"name\": \"WashWool\"\n    },\n    {\n      \"name\": \"HandWash\"\n    },\n    {\n      \"name\": \"NoWash\"\n    },\n    {\n      \"name\": \"Tumbler\"\n    },\n    {\n      \"name\": \"NoTumbler\"\n    },\n    {\n      \"name\": \"NoChemicalCleaning\"\n    },\n    {\n      \"name\": \"Bleech\"\n    },\n    {\n      \"name\": \"NoBleech\"\n    },\n    {\n      \"name\": \"CleaningA\"\n    },\n    {\n      \"name\": \"CleaningP\"\n    },\n    {\n      \"name\": \"CleaningPP\"\n    },\n    {\n      \"name\": \"CleaningF\"\n    },\n    {\n      \"name\": \"CleaningFF\"\n    },\n    {\n      \"name\": \"IroningI\"\n    },\n    {\n      \"name\": \"IroningII\"\n    },\n    {\n      \"name\": \"IroningIII\"\n    },\n    {\n      \"name\": \"NoIroning\"\n    },\n    {\n      \"name\": \"AtNinetyFive\"\n    },\n    {\n      \"name\": \"ShortNinetyFive\"\n    },\n    {\n      \"name\": \"AtSixty\"\n    },\n    {\n      \"name\": \"ShortSixty\"\n    },\n    {\n      \"name\": \"ShortFifty\"\n    },\n    {\n      \"name\": \"AtForty\"\n    },\n    {\n      \"name\": \"ShortForty\"\n    },\n    {\n      \"name\": \"SpecialForty\"\n    },\n    {\n      \"name\": \"ShortThirty\"\n    },\n    {\n      \"name\": \"EUR\"\n    },\n    {\n      \"name\": \"EURdig\"\n    },\n    {\n      \"name\": \"EURhv\"\n    },\n    {\n      \"name\": \"EURcr\"\n    },\n    {\n      \"name\": \"EURtm\"\n    },\n    {\n      \"name\": \"Ecommerce\"\n    },\n    {\n      \"name\": \"Shilling\"\n    },\n    {\n      \"name\": \"Denarius\"\n    },\n    {\n      \"name\": \"Pfund\"\n    },\n    {\n      \"name\": \"EyesDollar\"\n    },\n    {\n      \"name\": \"Florin\"\n    },\n    {\n      \"name\": \"EurDig\"\n    },\n    {\n      \"name\": \"EurHv\"\n    },\n    {\n      \"name\": \"EurCr\"\n    },\n    {\n      \"name\": \"EurTm\"\n    },\n    {\n      \"name\": \"EstimatedSign\"\n    },\n    {\n      \"name\": \"Deleatur\"\n    },\n    {\n      \"name\": \"Stopsign\"\n    },\n    {\n      \"name\": \"CESign\"\n    },\n    {\n      \"name\": \"Estatically\"\n    },\n    {\n      \"name\": \"Explosionsafe\"\n    },\n    {\n      \"name\": \"Laserbeam\"\n    },\n    {\n      \"name\": \"Biohazard\"\n    },\n    {\n      \"name\": \"Radioactivity\"\n    },\n    {\n      \"name\": \"BSEFree\"\n    },\n    {\n      \"name\": \"RewindToIndex\"\n    },\n    {\n      \"name\": \"RewindToStart\"\n    },\n    {\n      \"name\": \"Rewind\"\n    },\n    {\n      \"name\": \"Forward\"\n    },\n    {\n      \"name\": \"ForwardToEnd\"\n    },\n    {\n      \"name\": \"ForwardToIndex\"\n    },\n    {\n      \"name\": \"MoveUp\"\n    },\n    {\n      \"name\": \"MoveDown\"\n    },\n    {\n      \"name\": \"ToTop\"\n    },\n    {\n      \"name\": \"ToBottom\"\n    },\n    {\n      \"name\": \"ComputerMouse\"\n    },\n    {\n      \"name\": \"SerialInterface\"\n    },\n    {\n      \"name\": \"Keyboard\"\n    },\n    {\n      \"name\": \"SerialPort\"\n    },\n    {\n      \"name\": \"ParallelPort\"\n    },\n    {\n      \"name\": \"Printer\"\n    },\n    {\n      \"name\": \"MVZero\"\n    },\n    {\n      \"name\": \"MVOne\"\n    },\n    {\n      \"name\": \"MVTwo\"\n    },\n    {\n      \"name\": \"MVThree\"\n    },\n    {\n      \"name\": \"MVFour\"\n    },\n    {\n      \"name\": \"MVFive\"\n    },\n    {\n      \"name\": \"MVSix\"\n    },\n    {\n      \"name\": \"MVSeven\"\n    },\n    {\n      \"name\": \"MVEight\"\n    },\n    {\n      \"name\": \"MVNine\"\n    },\n    {\n      \"name\": \"MVLeftBracket\"\n    },\n    {\n      \"name\": \"MVRightBracket\"\n    },\n    {\n      \"name\": \"MVComma\"\n    },\n    {\n      \"name\": \"MVPeriod\"\n    },\n    {\n      \"name\": \"MVMinus\"\n    },\n    {\n      \"name\": \"MVPlus\"\n    },\n    {\n      \"name\": \"MVDivision\"\n    },\n    {\n      \"name\": \"MVMultiplication\"\n    },\n    {\n      \"name\": \"Conclusion\"\n    },\n    {\n      \"name\": \"Equivalence\"\n    },\n    {\n      \"name\": \"barOver\"\n    },\n    {\n      \"name\": \"BarOver\"\n    },\n    {\n      \"name\": \"arrowOver\"\n    },\n    {\n      \"name\": \"ArrowOver\"\n    },\n    {\n      \"name\": \"StrikingThrough\"\n    },\n    {\n      \"name\": \"MultiplicationDot\"\n    },\n    {\n      \"name\": \"LessOrEqual\"\n    },\n    {\n      \"name\": \"LargerOrEqual\"\n    },\n    {\n      \"name\": \"AngleSign\"\n    },\n    {\n      \"name\": \"Corresponds\"\n    },\n    {\n      \"name\": \"Congruent\"\n    },\n    {\n      \"name\": \"NotCongruent\"\n    },\n    {\n      \"name\": \"Divides\"\n    },\n    {\n      \"name\": \"DividesNot\"\n    },\n    {\n      \"name\": \"Female\"\n    },\n    {\n      \"name\": \"Male\"\n    },\n    {\n      \"name\": \"Hermaphrodite\",\n      \"detail\": \"⚥\",\n      \"doc\": \"Male and female sign\"\n    },\n    {\n      \"name\": \"Neutral\"\n    },\n    {\n      \"name\": \"FEMALE\"\n    },\n    {\n      \"name\": \"MALE\"\n    },\n    {\n      \"name\": \"HERMAPHRODITE\"\n    },\n    {\n      \"name\": \"FemaleFemale\"\n    },\n    {\n      \"name\": \"MaleMale\"\n    },\n    {\n      \"name\": \"FemaleMale\"\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"Moon\"\n    },\n    {\n      \"name\": \"Mercury\"\n    },\n    {\n      \"name\": \"Venus\"\n    },\n    {\n      \"name\": \"Mars\"\n    },\n    {\n      \"name\": \"Jupiter\"\n    },\n    {\n      \"name\": \"Saturn\"\n    },\n    {\n      \"name\": \"Uranus\"\n    },\n    {\n      \"name\": \"Neptune\"\n    },\n    {\n      \"name\": \"Pluto\"\n    },\n    {\n      \"name\": \"Earth\"\n    },\n    {\n      \"name\": \"Aries\"\n    },\n    {\n      \"name\": \"Taurus\"\n    },\n    {\n      \"name\": \"Gemini\"\n    },\n    {\n      \"name\": \"Cancer\"\n    },\n    {\n      \"name\": \"Leo\"\n    },\n    {\n      \"name\": \"Virgo\"\n    },\n    {\n      \"name\": \"Libra\"\n    },\n    {\n      \"name\": \"Scorpio\"\n    },\n    {\n      \"name\": \"Sagittarius\"\n    },\n    {\n      \"name\": \"Capricorn\"\n    },\n    {\n      \"name\": \"Aquarius\"\n    },\n    {\n      \"name\": \"Pisces\"\n    },\n    {\n      \"name\": \"YinYang\"\n    },\n    {\n      \"name\": \"MVRightArrow\"\n    },\n    {\n      \"name\": \"MVAt\"\n    },\n    {\n      \"name\": \"BOLogo\"\n    },\n    {\n      \"name\": \"BOLogoL\"\n    },\n    {\n      \"name\": \"BOLogoP\"\n    },\n    {\n      \"name\": \"Mundus\"\n    },\n    {\n      \"name\": \"Cross\"\n    },\n    {\n      \"name\": \"CeltCross\"\n    },\n    {\n      \"name\": \"Ankh\"\n    },\n    {\n      \"name\": \"Heart\"\n    },\n    {\n      \"name\": \"CircledA\"\n    },\n    {\n      \"name\": \"Bouquet\"\n    },\n    {\n      \"name\": \"Frowny\"\n    },\n    {\n      \"name\": \"Smiley\"\n    },\n    {\n      \"name\": \"PeaceDove\"\n    },\n    {\n      \"name\": \"Bat\"\n    },\n    {\n      \"name\": \"WomanFace\"\n    },\n    {\n      \"name\": \"ManFace\"\n    },\n    {\n      \"name\": \"mvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mvchr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mvchr{${1:char num}}\"\n      }\n    },\n    {\n      \"name\": \"textmvs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmvs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Zodiac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zodiac{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/mathtools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"mhsetup\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathtoolsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtoolsset{${1:options}}\",\n        \"keys\": [\n          \"\\\\mathtoolsset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathllap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathllap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathrlap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrlap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmbox{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathclap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathclap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mathmakebox[${2:width}][${3:pos}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathmakebox[${2:width}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmakebox{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"cramped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cramped[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"cramped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cramped{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedllap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedllap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedllap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedrlap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedrlap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedrlap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedclap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedclap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedsubstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedsubstack{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"smashoperator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smashoperator[${2:pos%keyvals}]{${1:operator with limits}}\",\n        \"keys\": [\n          \"\\\\smashoperator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smashoperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashoperator{${1:operator with limits}}\"\n      }\n    },\n    {\n      \"name\": \"adjustlimits\",\n      \"arg\": {\n        \"format\": \"{}_{}{}_{}\",\n        \"snippet\": \"adjustlimits{${1:operator1}}_{${2:limit1}}{${3:operator2}}_{${4:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"SwapAboveDisplaySkip\"\n    },\n    {\n      \"name\": \"newtagform\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newtagform{${1:name}}[${4:inner format}]{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"newtagform\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtagform{${1:name}}{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewtagform\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewtagform{${1:name}}[${4:inner format}]{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewtagform\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewtagform{${1:name}}{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"usetagform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetagform{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"noeqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noeqref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLeftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLeftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xhookleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xhookleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xmapsto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmapsto{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xmapsto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmapsto[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xRightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xRightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xRightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLeftrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLeftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xhookrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xhookrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightharpoondown{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoondown\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightharpoondown[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftharpoondown{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoondown\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftharpoondown[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightleftharpoons{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightleftharpoons[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightharpoonup{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoonup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightharpoonup[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftharpoonup{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoonup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftharpoonup[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightharpoons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftrightharpoons{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightharpoons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftrightharpoons[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"underbracket[${2:rule thickness}][${3:bracket height}]{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"underbracket[${2:rule thickness}]{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"overbracket[${2:rule thickness}][${3:bracket height}]{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"overbracket[${2:rule thickness}]{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"LaTeXunderbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaTeXunderbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXoverbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaTeXoverbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newgathered\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newgathered{${1:envname}}{${2:pre line}}{${3:post line}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"renewgathered\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewgathered{${1:envname}}{${2:pre line}}{${3:post line}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"MultlinedHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shoveleft[${2:dimen}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shoveright[${2:dimen}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MoveEqLeft\"\n    },\n    {\n      \"name\": \"MoveEqLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MoveEqLeft[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"Aboxed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aboxed{${1:left hand side & right hand side}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowBetweenLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowBetweenLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ArrowBetweenLines[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"ArrowBetweenLines*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowBetweenLines*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ArrowBetweenLines*[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"vdotswithin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vdotswithin{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"shortvdotswithin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortvdotswithin{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"shortvdotswithin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortvdotswithin*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"MTFlushSpaceAbove\"\n    },\n    {\n      \"name\": \"MTFlushSpaceBelow\"\n    },\n    {\n      \"name\": \"origjot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortintertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortintertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiter{${1:cmd}}{${2:left delim%formula}}{${3:right delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiterX\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiterX{${1:cmd}}[${5:args}]{${2:left delim%formula}}{${3:right delim%formula}}{${4:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiterXPP\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiterXPP{${1:cmd}}[${7:args}]{${2:pre code%formula}}{${3:left delim%formula}}{${4:right delim%formula}}{${5:post code%formula}}{${6:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"reDeclarePairedDelimiterInnerWrapper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reDeclarePairedDelimiterInnerWrapper{${1:cmd}}{${2:star option%keyvals}}{${3:code%definition}}\",\n        \"keys\": [\n          \"\\\\reDeclarePairedDelimiterInnerWrapper\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"vcentcolon\"\n    },\n    {\n      \"name\": \"ordinarycolon\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"dblcolon\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"approxcolon\"\n    },\n    {\n      \"name\": \"Approxcolon\"\n    },\n    {\n      \"name\": \"simcolon\"\n    },\n    {\n      \"name\": \"Simcolon\"\n    },\n    {\n      \"name\": \"colondash\"\n    },\n    {\n      \"name\": \"Colondash\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"Dashcolon\"\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"prescript\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"prescript{${1:sup}}{${2:sub}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"splitfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splitfrac{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"splitdfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splitdfrac{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"xmathstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmathstrut{${1:increase}}\"\n      }\n    },\n    {\n      \"name\": \"xmathstrut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmathstrut[${2:depth increase}]{${1:increase}}\"\n      }\n    },\n    {\n      \"name\": \"newcases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newcases{${1:envname}}{${2:sep}}{${3:preamble}}{${4:left}}{${5:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewcases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewcases{${1:envname}}{${2:sep}}{${3:preamble}}{${4:left}}{${5:right}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"crampedsubarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:col}}\"\n      }\n    },\n    {\n      \"name\": \"dcases\"\n    },\n    {\n      \"name\": \"dcases*\"\n    },\n    {\n      \"name\": \"rcases\"\n    },\n    {\n      \"name\": \"rcases*\"\n    },\n    {\n      \"name\": \"drcases\"\n    },\n    {\n      \"name\": \"drcases*\"\n    },\n    {\n      \"name\": \"cases*\"\n    },\n    {\n      \"name\": \"matrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"pmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"bmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Bmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"vmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Vmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"smallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"psmallmatrix\"\n    },\n    {\n      \"name\": \"psmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"bsmallmatrix\"\n    },\n    {\n      \"name\": \"bsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Bsmallmatrix\"\n    },\n    {\n      \"name\": \"Bsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"vsmallmatrix\"\n    },\n    {\n      \"name\": \"vsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Vsmallmatrix\"\n    },\n    {\n      \"name\": \"Vsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"spreadlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"lgathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"rgathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"multlined\"\n    },\n    {\n      \"name\": \"multlined\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:pos}][${2:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mathtools#c\": [\n      \"fixamsmath\",\n      \"donotfixamsmathbugs\",\n      \"allowspaces\",\n      \"disallowspaces\",\n      \"legacycolonsymbols\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\mathtoolsset\": [\n      \"showonlyrefs\",\n      \"showmanualtags\",\n      \"original-intertext\",\n      \"original-shortintertext\",\n      \"mathic\",\n      \"above-intertext-sep=\",\n      \"below-intertext-sep=\",\n      \"above-shortintertext-sep=\",\n      \"below-shortintertext-sep=\",\n      \"smallmatrix-align=${1|c,l,r|}\",\n      \"smallmatrix-inner-space=\",\n      \"firstline-afterskip=\",\n      \"lastline-preskip=\",\n      \"multlined-width=\",\n      \"multlined-pos=${1|c,b,t|}\",\n      \"centercolon\",\n      \"prescript-sup-format=${1:cmd}\",\n      \"prescript-sub-format=${1:cmd}\",\n      \"prescript-arg-format=${1:cmd}\",\n      \"shortvdotsadjustabove=\",\n      \"shortvdotsadjustbelow=\"\n    ],\n    \"\\\\smashoperator\": [\n      \"l\",\n      \"r\",\n      \"lr\",\n      \"rl\"\n    ],\n    \"\\\\reDeclarePairedDelimiterInnerWrapper\": [\n      \"star\",\n      \"nostarnonscaled\",\n      \"nostarscaled\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathtools#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/mdframed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"TikZ\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=pgf\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=1\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"PSTricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=ps\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=postscript\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newmdenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmdenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newmdenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newmdenv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewmdenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewmdenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"renewmdenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"renewmdenv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"surroundwithmdframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surroundwithmdframed{${1:env}}\"\n      }\n    },\n    {\n      \"name\": \"surroundwithmdframed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"surroundwithmdframed[${2:options%keyvals}]{${1:env}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdflength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdflength{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mdflength\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfdefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdfdefinestyle{${1:style name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mdfapptodefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdfapptodefinestyle{${1:style name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mdfsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsubtitle{${1:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"mdfsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdfsubtitle[${2:options%keyvals}]{${1:subtitle}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfsubsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsubsubtitle{${1:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"mdfsubsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdfsubsubtitle[${2:options%keyvals}]{${1:subtitle}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}[${4:numbered like}]{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}{${2:caption}}[${4:within}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}[${4:numbered like}]{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}[${4:within}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"mdtheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdtheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"mdtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"mdfsplitboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdftotallinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsubtitleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsubsubtitleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themdfcountframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframedtitleenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfframedtitleenv{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mdframed#c\": [\n      \"xcolor\",\n      \"framemethod=${1|default,tex,latex,none,0,tikx,pgf,1,pstricks,ps,postscript,2|}\"\n    ],\n    \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\": [\n      \"extratopheight=\",\n      \"footenotedistance=\",\n      \"frametitleaboveskip=\",\n      \"frametitlebelowskip=\",\n      \"frametitleleftmargin=\",\n      \"frametitlerightmargin=\",\n      \"frametitlerulewidth=\",\n      \"innerbottommargin=\",\n      \"innerleftmargin=\",\n      \"innerlinewidth=\",\n      \"innermargin=\",\n      \"innerrightmargin=\",\n      \"innertopmargin=\",\n      \"leftmargin=\",\n      \"linewidth=\",\n      \"middlelinewidth=\",\n      \"needspace=\",\n      \"outerlinewidth=\",\n      \"outermargin=\",\n      \"rightmargin=\",\n      \"roundcorner=\",\n      \"shadowsize=\",\n      \"skipabove=\",\n      \"skipbelow=\",\n      \"splitbottomskip=\",\n      \"splittopskip=\",\n      \"subsubtitleabovelinewidth=\",\n      \"subsubtitleaboveskip=\",\n      \"subsubtitlebelowlinewidth=\",\n      \"subsubtitlebelowskip=\",\n      \"subsubtitleinneraboveskip=\",\n      \"subsubtitleinnerbelowskip=\",\n      \"subtitleabovelinewidth=\",\n      \"subtitleaboveskip=\",\n      \"subtitlebelowlinewidth=\",\n      \"subtitlebelowskip=\",\n      \"subtitleinneraboveskip=\",\n      \"subtitleinnerbelowskip=\",\n      \"userdefinedwidth=\",\n      \"afterbreak=${1:code}\",\n      \"afterlastframe=${1:code}\",\n      \"aftersingleframe=${1:code}\",\n      \"alignment=\",\n      \"backgroundcolor=\",\n      \"beforebreak=${1:code}\",\n      \"beforelastframe=${1:code}\",\n      \"beforesingleframe=${1:code}\",\n      \"defaultunit=${1|pt,bp,in,cm,mm,em,ex,en,pc,sp|}\",\n      \"endcode=${1:code}\",\n      \"endinnercode=${1:code}\",\n      \"extra=${1:code}\",\n      \"firstextra=${1:code}\",\n      \"firstframetitle={${1:text}}\",\n      \"font=${1:font commands}\",\n      \"fontcolor=\",\n      \"framefoot=${1:code}\",\n      \"frametitle={${1:text}}\",\n      \"frametitlealignment\",\n      \"frametitlebackgroundcolor=\",\n      \"frametitlefont=${1:font commands}\",\n      \"frametitlefontcolor=\",\n      \"frametitlerulecolor=\",\n      \"frametitlesettings=${1:code}\",\n      \"innerlinecolor=\",\n      \"lastframefoot=${1:code}\",\n      \"linecolor=\",\n      \"middleextra=${1:code}\",\n      \"middlelinecolor=\",\n      \"outerlinecolor=\",\n      \"printheight=${1|none,info,warning|}\",\n      \"psroundlinecolor=\",\n      \"secondextra=${1:code}\",\n      \"settings=${1:code}\",\n      \"shadowcolor=\",\n      \"singleextra=${1:code}\",\n      \"startcode=${1:code}\",\n      \"startinnercode=${1:code}\",\n      \"subsubtitleabovelinecolor=\",\n      \"subsubtitlebackgroundcolor=\",\n      \"subsubtitlebelowlinecolor=\",\n      \"subsubtitlefont=${1:font commands}\",\n      \"subtitleabovelinecolor=\",\n      \"subtitlebackgroundcolor=\",\n      \"subtitlebelowlinecolor=\",\n      \"subtitlefont=${1:font commands}\",\n      \"theoremcountersep=${1:separator}\",\n      \"theoremseparator=${1:separator}\",\n      \"theoremspace=${1:space cmd}\",\n      \"theoremtitlefont=${1:font commands}\",\n      \"bottomline\",\n      \"draft\",\n      \"everyline\",\n      \"footnoteinside\",\n      \"frametitlebottomline\",\n      \"frametitleleftline\",\n      \"frametitlerightline\",\n      \"frametitlerule\",\n      \"frametitletopline\",\n      \"hidealllines\",\n      \"ignorelastdescenders\",\n      \"leftline\",\n      \"ntheorem\",\n      \"repeatframetitle\",\n      \"rightline\",\n      \"shadow\",\n      \"subsubtitleaboveline\",\n      \"subsubtitlebelowline\",\n      \"subtitleaboveline\",\n      \"subtitlebelowline\",\n      \"suppressfirstparskip\",\n      \"topline\",\n      \"usetwoside\",\n      \"align=${1|left,center,right|}\",\n      \"tikzsetting={${1:TikZ keys}}\",\n      \"apptotikzsetting=${1:code}\",\n      \"pstrickssetting={${1:pstricks keys}}\",\n      \"pstrickappsetting=${1:code}\",\n      \"style=${1:style name}\"\n    ],\n    \"\\\\mdflength\": [\n      \"extratopheight\",\n      \"footenotedistance\",\n      \"frametitleaboveskip\",\n      \"frametitlebelowskip\",\n      \"frametitleleftmargin\",\n      \"frametitlerightmargin\",\n      \"frametitlerulewidth\",\n      \"innerbottommargin\",\n      \"innerleftmargin\",\n      \"innerlinewidth\",\n      \"innermargin\",\n      \"innerrightmargin\",\n      \"innertopmargin\",\n      \"leftmargin\",\n      \"linewidth\",\n      \"middlelinewidth\",\n      \"needspace\",\n      \"outerlinewidth\",\n      \"outermargin\",\n      \"rightmargin\",\n      \"roundcorner\",\n      \"shadowsize\",\n      \"skipabove\",\n      \"skipbelow\",\n      \"splitbottomskip\",\n      \"splittopskip\",\n      \"subsubtitleabovelinewidth\",\n      \"subsubtitleaboveskip\",\n      \"subsubtitlebelowlinewidth\",\n      \"subsubtitlebelowskip\",\n      \"subsubtitleinneraboveskip\",\n      \"subsubtitleinnerbelowskip\",\n      \"subtitleabovelinewidth\",\n      \"subtitleaboveskip\",\n      \"subtitlebelowlinewidth\",\n      \"subtitlebelowskip\",\n      \"subtitleinneraboveskip\",\n      \"subtitleinnerbelowskip\",\n      \"userdefinedwidth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mdframed#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/mdwlist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"desclabelstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"desclabelstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"desclabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"desclabelwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"multilinelabel\"\n    },\n    {\n      \"name\": \"nextlinelabel\"\n    },\n    {\n      \"name\": \"pushlabel\"\n    },\n    {\n      \"name\": \"resume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resume{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"resume\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resume[${2:magicname}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"suspend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suspend{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"suspend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"suspend[${2:magicname}]{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"itemize*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/memhfixc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theHpagenote\"\n    },\n    {\n      \"name\": \"thememhycontfloat\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/menukeys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"menu[${2:separator}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"directory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directory{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"directory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"directory[${2:separator}]{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"keys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keys{${1:keys}}\"\n      }\n    },\n    {\n      \"name\": \"keys\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keys[${2:separator}]{${1:keys}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"newmenustylesimple{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"newmenustylesimple*{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"renewmenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"renewmenustylesimple{${1:name}}[${4:pre}]{${2:style%keyvals}}[${5:sep}][${6:post}]{${3:theme}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewmenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"renewmenustylesimple*{${1:name}}[${4:pre}]{${2:style%keyvals}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"providemenustylesimple{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"providemenustylesimple*{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"newmenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"newmenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"renewmenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"renewmenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single%keyvals}}[${9:post}]{${6:theme}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 6\n      }\n    },\n    {\n      \"name\": \"renewmenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"renewmenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single%keyvals}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"providemenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"providemenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentMenuElement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usemenucolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemenucolor{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drawtikzfolder[${1:front fill color%color}]\"\n      }\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"drawtikzfolder[${1:front fill color%color}][${2:draw color%color}]\"\n      }\n    },\n    {\n      \"name\": \"copymenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copymenustyle{${1:copy}}{${2:original}}\"\n      }\n    },\n    {\n      \"name\": \"changemenuelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changemenuelement{${1:name}}{${2:element%keyvals}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\changemenuelement,\\\\changemenuelement*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"changemenuelement*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changemenuelement*{${1:name}}{${2:element%keyvals}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\changemenuelement,\\\\changemenuelement*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"changemenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"changemenucolortheme{${1:name}}{${2:color theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][][]\",\n        \"snippet\": \"newmenucolortheme{${1:name}}{${2:model}}{${3:bg}}{${4:br}}{${5:txt}}[${6:a}][${7:b}][${8:c}]\"\n      }\n    },\n    {\n      \"name\": \"copymenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copymenucolortheme{${1:copy}}{${2:original}}\"\n      }\n    },\n    {\n      \"name\": \"changemenucolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"changemenucolor{${1:name}}{${2:element%keyvals}}{${3:model}}{${4:color definition}}\",\n        \"keys\": [\n          \"\\\\changemenucolor\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewmenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][][]\",\n        \"snippet\": \"renewmenucolortheme{${1:name}}{${2:model}}{${3:bg}}{${4:br}}{${5:txt}}[${6:a}][${7:b}][${8:c}]\"\n      }\n    },\n    {\n      \"name\": \"newmenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmenumacro{${1:macro%cmd}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewmenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewmenumacro{${1:macro}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providemenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providemenumacro{${1:macro%cmd}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"shift\"\n    },\n    {\n      \"name\": \"capslock\"\n    },\n    {\n      \"name\": \"tab\"\n    },\n    {\n      \"name\": \"esc\"\n    },\n    {\n      \"name\": \"oldesc\"\n    },\n    {\n      \"name\": \"ctrl\"\n    },\n    {\n      \"name\": \"Alt\"\n    },\n    {\n      \"name\": \"AltGr\"\n    },\n    {\n      \"name\": \"cmd\"\n    },\n    {\n      \"name\": \"Space\"\n    },\n    {\n      \"name\": \"SPACE\"\n    },\n    {\n      \"name\": \"return\"\n    },\n    {\n      \"name\": \"enter\"\n    },\n    {\n      \"name\": \"winmenu\"\n    },\n    {\n      \"name\": \"backspace\"\n    },\n    {\n      \"name\": \"del\"\n    },\n    {\n      \"name\": \"backdel\"\n    },\n    {\n      \"name\": \"arrowkeyup\"\n    },\n    {\n      \"name\": \"arrowkeydown\"\n    },\n    {\n      \"name\": \"arrowkeyright\"\n    },\n    {\n      \"name\": \"arrowkeyleft\"\n    },\n    {\n      \"name\": \"arrowkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowkey{${1:direction%keyvals}}\",\n        \"keys\": [\n          \"\\\\arrowkey#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctrlname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/menukeys#c\": [\n      \"definemenumacros\",\n      \"definekeys\",\n      \"mackeys=${1|text,symbols|}\",\n      \"os=${1|mac,win|}\"\n    ],\n    \"\\\\changemenuelement,\\\\changemenuelement*\": [\n      \"single\",\n      \"first\",\n      \"middle\",\n      \"last\",\n      \"pre\",\n      \"post\",\n      \"set\",\n      \"single\"\n    ],\n    \"\\\\changemenucolor\": [\n      \"bg\",\n      \"br\",\n      \"txt\"\n    ],\n    \"\\\\arrowkey#c\": [\n      \"^\",\n      \"v\",\n      \">\",\n      \"<\"\n    ],\n    \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\": [\n      \"menus\",\n      \"roundedmenus\",\n      \"angularmenus\",\n      \"roundedkeys\",\n      \"shadowedroundedkeys\",\n      \"angularkeys\",\n      \"shadowedangularkeys\",\n      \"typewriterkeys\",\n      \"paths\",\n      \"pathswithfolder\",\n      \"pathswithblackfolder\",\n      \"hyphenatepaths\",\n      \"hyphenatepathswithfolder\",\n      \"hyphenatepathswithblackfolder\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/menukeys#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/metrix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"metricsymbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metricsymbols{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metricsymbols*{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metricsymbols[${2:number=higlighting}]{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metricsymbols*[${2:number=higlighting}]{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metrics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metrics{${1:symbols}}{${2:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"metrics\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metrics[${3:number=higlighting}]{${1:symbols}}{${2:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"acct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acct{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"brv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brv{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"lng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lng{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"bow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bow{${1:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"verseref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseref{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"setmetrixvar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmetrixvar{${1:variable%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\setmetrixvar,\\\\usemetrixvar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemetrixvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemetrixvar{${1:variable%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmetrixvar,\\\\usemetrixvar\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"symbolline\"\n    },\n    {\n      \"name\": \"metricverses\"\n    },\n    {\n      \"name\": \"metricverses\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:source}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setmetrixvar,\\\\usemetrixvar\": [\n      \"symbollinewidth\",\n      \"bigsymbollinewidth\",\n      \"accentlinewidth\",\n      \"bowlinewidth\",\n      \"symbolsep\",\n      \"baseunit\",\n      \"bigbaseunit\",\n      \"shortsyllablelimit\",\n      \"gap\",\n      \"symbolshift\",\n      \"lngshift\",\n      \"lngshortening\",\n      \"lngminlength\",\n      \"brvshift\",\n      \"dotshift\",\n      \"itcorrection\",\n      \"accentxshift\",\n      \"bowshift\",\n      \"bowshortening\",\n      \"bowlooseness\",\n      \"symbolcolor\",\n      \"accentcolor\",\n      \"bowcolor\",\n      \"highlightcolor\",\n      \"fillcolor\",\n      \"arrow\",\n      \"breakgap\",\n      \"emptywidth\",\n      \"acute\",\n      \"grave\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/mhchem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"chemgreek\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"arrows=pgf\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"arrows=pgf\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"arrows=pgf-filled\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"arrows=pgf-filled\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mhchemoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mhchemoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\",\n          \"\\\\mhchemoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ce{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"bond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bond{${1:-=~.<${2:}> etc.}}\"\n      }\n    },\n    {\n      \"name\": \"cesplit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cesplit{${1:search-and-replace list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=3\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=3\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=3\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mhchem#c\": [\n      \"version=${1:version}\"\n    ],\n    \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\": [\n      \"textfontname=${1:font csname}\",\n      \"mathfontname=${1:font csname}\",\n      \"font=${1|sf|}\",\n      \"text-greek=${1|textgreek,upgreek,newtx,kpfonts,mathdesign,fourier,textalpha,fontspec,default,var-default|}\",\n      \"math-greek=${1|textgreek,upgreek,newtx,kpfonts,mathdesign,fourier,textalpha,fontspec,default,var-default|}\",\n      \"arrows=${3|font,pgf,pgf-filled,pgf{${1:arrow type}}{${2:width}}|}\",\n      \"layout=${1|stacked,staggered-deep,staggered-flat|}\",\n      \"minus-sidebearing-left=\",\n      \"minus-sidebearing-right=\",\n      \"minus-math-sidebearing-left=\",\n      \"minus-math-sidebearing-right=\",\n      \"minus-text-sidebearing-left=\",\n      \"minus-text-sidebearing-right=\"\n    ],\n    \"\\\\mhchemoptions\": [\n      \"textfontcommand=${1:font command}\",\n      \"mathfontcommand=${1:font command}\",\n      \"textminus=${1:symbol}\",\n      \"cdot=${1:symbol}\",\n      \"textelectrondot=${1:symbol}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mhchem#c\",\n    \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\"\n  ]\n}"
  },
  {
    "path": "data/packages/microtype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"microtypesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"microtypesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypesetup,\\\\usepackage/microtype#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet[${3:features}]{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet*{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet*[${3:features}]{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"UseMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseMicrotypeSet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseMicrotypeSet[${2:features}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSetDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeSetDefault{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSetDefault\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareMicrotypeSetDefault[${2:features}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetProtrusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetProtrusion{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetProtrusion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetProtrusion[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetProtrusion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExpansion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExpansion{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExpansion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExpansion[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExpansion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTracking\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTracking{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetTracking\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetTracking[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetTracking\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExtraKerning\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExtraKerning{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExtraKerning\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExtraKerning[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExtraKerning\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExtraSpacing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExtraSpacing{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExtraSpacing\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExtraSpacing[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExtraSpacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCharacterInheritance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCharacterInheritance{${1:fonts%keyvals}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCharacterInheritance\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareCharacterInheritance[${3:features}]{${1:fonts%keyvals}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeVariants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeVariants{${1:suffixes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeVariants*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeVariants*{${1:suffixes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeAlias{${1:font}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"LoadMicrotypeFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadMicrotypeFile{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeFilePrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeFilePrefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"microtypecontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"microtypecontext{${1:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmicrotypecontext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textmicrotypecontext{${1:context%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeBabelHook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeBabelHook{${1:languages}}{${2:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls*[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsstyle\"\n    },\n    {\n      \"name\": \"lslig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lslig{${1:ligature}}\"\n      }\n    },\n    {\n      \"name\": \"DisableLigatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableLigatures{${1:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DisableLigatures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisableLigatures[${2:characters}]{${1:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"leftprotrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftprotrusion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightprotrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightprotrusion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noprotrusionifhmode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"microtypecontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\microtypesetup,\\\\usepackage/microtype#c\": [\n      \"protrusion=\",\n      \"expansion=\",\n      \"activate=\",\n      \"tracking=\",\n      \"kerning=\",\n      \"spacing=\",\n      \"factor=${1:integer}\",\n      \"patch=${1|all,none,item,toc,footnote,verbatim,eqnum|}\",\n      \"nopatch=${1|all,none,item,toc,footnote,verbatim,eqnum|}\",\n      \"unit=${1:dimension}\",\n      \"auto\",\n      \"stretch=${1:integer}\",\n      \"shrink=${1:integer}\",\n      \"step=${1:integer}\",\n      \"selected\",\n      \"letterspace=${1:integer}\",\n      \"disable=${1|true,false,ifdraft|}\",\n      \"final\",\n      \"verbose=${1|true,false,errors,silent|}\",\n      \"babel\",\n      \"DVIoutput\"\n    ],\n    \"\\\\usepackage/microtype#c\": [\n      \"config=${1:file name}\"\n    ],\n    \"\\\\SetProtrusion\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"unit=\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\"\n    ],\n    \"\\\\SetExpansion\": [\n      \"name=\",\n      \"load=\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\",\n      \"auto\",\n      \"stretch=${1:integer}\",\n      \"shrink=${1:integer}\",\n      \"step=${1:integer}\",\n      \"factor=\"\n    ],\n    \"\\\\SetTracking\": [\n      \"name=\",\n      \"unit=\",\n      \"context=\",\n      \"spacing=\",\n      \"outer spacing=\",\n      \"outer kerning=\",\n      \"no ligatures=\"\n    ],\n    \"\\\\SetExtraKerning\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"preset=\",\n      \"inputenc=\",\n      \"unit=\",\n      \"context=\"\n    ],\n    \"\\\\SetExtraSpacing\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\",\n      \"unit=\"\n    ],\n    \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\": [\n      \"protrusion=\",\n      \"expansion=\",\n      \"activate=\",\n      \"tracking=\",\n      \"spacing=\",\n      \"kerning=\"\n    ],\n    \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\": [\n      \"encoding=\",\n      \"family=\",\n      \"series=\",\n      \"shape=\",\n      \"size=\",\n      \"font=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\microtypesetup,\\\\usepackage/microtype#c\",\n    \"\\\\usepackage/microtype#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/minted.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"latex2pydata\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mint{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mint[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mintinline{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mintinline[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputminted{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputminted[${3:options%keyvals}]{${1:language}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemintedstyle{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usemintedstyle[${2:language}]{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminted{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setminted[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmintedinline{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmintedinline[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"listoflistings\"\n    },\n    {\n      \"name\": \"listingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoflistingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newminted{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newminted[${3:envname}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmint{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmint[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintinline{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintinline[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintedfile{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintedfile[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listing\"\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/minted#c\": [\n      \"chapter\",\n      \"section\",\n      \"cache\",\n      \"cachedir=${1:directory}\",\n      \"debug\",\n      \"frozencache\",\n      \"highlightmode=${1|fastfirst,fast,immediate|}\",\n      \"inputlexerlinenos\",\n      \"lexerlinenos\",\n      \"newfloat\",\n      \"placeholder\",\n      \"verbatim\"\n    ],\n    \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\": [\n      \"autogobble\",\n      \"baselinestretch=\",\n      \"beameroverlays\",\n      \"bgcolor=\",\n      \"bgcolorpadding=\",\n      \"bgcolorvphantom=${1:macro}\",\n      \"breakafter=${1:string}\",\n      \"breakafterinrun\",\n      \"breakaftersymbolpost=${1:string}\",\n      \"breakaftersymbolpre=${1:string}\",\n      \"breakanywhere\",\n      \"breakanywhereinlinestretch=\",\n      \"breakanywheresymbolpost=${1:string}\",\n      \"breakanywheresymbolpre=${1:string}\",\n      \"breakautoindent\",\n      \"breakbefore=${1:string}\",\n      \"breakbeforeinrun\",\n      \"breakbeforesymbolpost=${1:string}\",\n      \"breakbeforesymbolpre=${1:string}\",\n      \"breakbytoken\",\n      \"breakbytokenanywhere\",\n      \"breakindent=\",\n      \"breakindentnchars=${1:integer}\",\n      \"breaklines\",\n      \"breaksymbol=${1:string}\",\n      \"breaksymbolindent=\",\n      \"breaksymbolindentnchars=${1:integer}\",\n      \"breaksymbolindentleft=\",\n      \"breaksymbolindentleftnchars=${1:int}\",\n      \"breaksymbolindentritht=\",\n      \"breaksymbolindentrightnchars=${1:int}\",\n      \"breaksymbolleft=${1:string}\",\n      \"breaksymbolright=${1:string}\",\n      \"breaksymbolsep=\",\n      \"breaksymbolsepnchars=${1:int}\",\n      \"breaksymbolsepleft=\",\n      \"breaksymbolsepleftnchars=${1:int}\",\n      \"breaksymbolsepright=\",\n      \"breaksymbolseprightnchars=${1:int}\",\n      \"codetagify=${1:string list}\",\n      \"curlyquotes\",\n      \"encoding=${1:encoding}\",\n      \"envname=${1:string}\",\n      \"escapeinside=${1:two chars}\",\n      \"firstline=${1:integer}\",\n      \"firstnumber=${2|auto,last,${1:integer}|}\",\n      \"fontencoding=${1:font encoding}\",\n      \"fontfamily=${1:family name}\",\n      \"fontseries=${1:series name}\",\n      \"fontshape=${1:shape name}\",\n      \"fontsize=${1:size command}\",\n      \"formatcom=${1:command}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"funcnamehighlighting\",\n      \"gobble=${1:integer}\",\n      \"gobblefilter=${1:integer}\",\n      \"highlightcolor=\",\n      \"highlightlines=${1:list of lineno ranges}\",\n      \"ignorelexererrors\",\n      \"keywordcase=${1|lower,upper,capitalize,none|}\",\n      \"label=${1:string}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"lastline=${1:integer}\",\n      \"linenos\",\n      \"listparameters=${1:macro}\",\n      \"literalenvname=${1:string}\",\n      \"literatecomment=${1:macro}\",\n      \"mathescape\",\n      \"numberblanklines\",\n      \"numberfirstline\",\n      \"numbers=${1|left,right,both,none|}\",\n      \"numbersep=\",\n      \"obeytabs\",\n      \"python3\",\n      \"rangeregex=${1:macro}\",\n      \"rangeregexmatchnumber=${1:integer}\",\n      \"rangeregexdotall\",\n      \"rangeregexmultiline\",\n      \"rangestartafterstring=${1:macro}\",\n      \"rangestartstring=${1:macro}\",\n      \"rangestopbeforestring=${1:macro}\",\n      \"rangestopstring=${1:macro}\",\n      \"resetmargins\",\n      \"rulecolor=\",\n      \"samepage\",\n      \"showspaces\",\n      \"showtabs\",\n      \"space=${1:macro}\",\n      \"spacecolor=\",\n      \"startinline\",\n      \"stepnumber=${1:integer}\",\n      \"stepnumberfromfirst\",\n      \"stepnumberoffsetvalues\",\n      \"stripall\",\n      \"stripnl\",\n      \"style=${1:pygments style}\",\n      \"tab=${1:macro}\",\n      \"tabcolor=\",\n      \"tabsize=${1:integer}\",\n      \"texcl\",\n      \"texcomments\",\n      \"xleftmargin=\",\n      \"xrightmargin=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minted#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/multicol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"columnbreak\"\n    },\n    {\n      \"name\": \"columnseprulecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"docolaction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"docolaction{${1:first}}{${2:middle}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"flushcolumns\"\n    },\n    {\n      \"name\": \"LRmulticolcolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxbalancingoverflow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolmindepthstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolpretolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicoltolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcolumn\"\n    },\n    {\n      \"name\": \"postmulticols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"premulticols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedcolumns\"\n    },\n    {\n      \"name\": \"RLmulticolcolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setemergencystretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setemergencystretch{${1:num of cols}}{${2:hsize}}\"\n      }\n    },\n    {\n      \"name\": \"vfilmaxdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:n}}[${2:preface}]\"\n      }\n    },\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:n}}[${2:preface}][${3:skip}]\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:n}}[${2:preface}]\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:n}}[${2:preface}][${3:skip}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/multicol#c\": [\n      \"errorshow\",\n      \"infoshow\",\n      \"balancingshow\",\n      \"markshow\",\n      \"debugshow\",\n      \"grid\",\n      \"colaction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multicol#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/multido.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multido\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"MultidoCheckNames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmultido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mmultido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"Multido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Multido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"MMultido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MMultido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"multidocount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidostop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpAdd{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fpSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpSub{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/multimedia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"movie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"movie[${3:options%keyvals}]{${1:poster text%text}}{${2:movie filename%file}}\",\n        \"keys\": [\n          \"\\\\movie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"movie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movie{${1:poster text%text}}{${2:movie filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkmovie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hyperlinkmovie[${3:options%keyvals}]{${1:movie label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hyperlinkmovie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperlinkmovie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlinkmovie{${1:movie label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sound\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sound[${3:options%keyvals}]{${1:sound poster text}}{${2:sound filename%file}}\",\n        \"keys\": [\n          \"\\\\sound\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sound{${1:sound poster text}}{${2:sound filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksound\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hyperlinksound[${3:options%keyvals}]{${1:sound label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hyperlinksound\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperlinksound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlinksound{${1:sound label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkmute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkmute{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\movie\": [\n      \"autostart\",\n      \"borderwidth=\",\n      \"depth=\",\n      \"duration=${1:time}s\",\n      \"externalviewer\",\n      \"height=\",\n      \"label=\",\n      \"loop\",\n      \"once\",\n      \"open\",\n      \"palindrome\",\n      \"poster\",\n      \"repeat\",\n      \"showcontrols\",\n      \"start=${1:time}s\",\n      \"width=\"\n    ],\n    \"\\\\hyperlinkmovie\": [\n      \"duration=${1:time}s\",\n      \"loop\",\n      \"once\",\n      \"palindrome\",\n      \"pause\",\n      \"play\",\n      \"repeat\",\n      \"resume\",\n      \"showcontrols\",\n      \"start=${1:time}s\",\n      \"stop\"\n    ],\n    \"\\\\sound\": [\n      \"autostart\",\n      \"automute\",\n      \"bitspersample=${1|8,16|}\",\n      \"channels=${1|1,2|}\",\n      \"depth=\",\n      \"encoding=${1|Raw,Signed,muLaw,aLaw|}\",\n      \"externalviewer\",\n      \"height=\",\n      \"inlinesound\",\n      \"label=\",\n      \"loop\",\n      \"mixsound\",\n      \"repeat\",\n      \"samplingrate=${1:number}\",\n      \"width=\"\n    ],\n    \"\\\\hyperlinksound\": [\n      \"loop\",\n      \"mixsound\",\n      \"repeat\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/multirow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multirow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multirow{${1:number of rows}}{${2:width or *}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"multirow[${4:vpos%keyvals}]{${1:number of rows}}{${2:width or *}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\multirow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"multirow{${1:number of rows}}[${4:bigstruts}]{${2:width or *}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"multirow{${1:number of rows}}{${2:width or *}}[${4:vmove%l}]{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"multirow[${4:vpos%keyvals}]{${1:number of rows}}[${5:bigstruts}]{${2:width or *}}[${6:vmove%l}]{${3:text}}\",\n        \"keys\": [\n          \"\\\\multirow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multirowsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multirowdebugtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multirowdebugfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstrutjot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STneed\",\n      \"if\": \"supertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STneed{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multirow#c\": [\n      \"debug\",\n      \"longtable\",\n      \"supertabular\"\n    ],\n    \"\\\\multirow\": [\n      \"c\",\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multirow#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/nameref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nameref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Nameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sectionformat{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/natbib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:keylist}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"setcitestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcitestyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcitestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bibpunct{${1:open}}{${2:close}}{${3:multpunct}}{${4:letter}}{${5:authoryearpunct}}{${6:yearspunct}}\"\n      }\n    },\n    {\n      \"name\": \"bibpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"bibpunct[${7:char}]{${1:open}}{${2:close}}{${3:multpunct}}{${4:letter}}{${5:authoryearpunct}}{${6:yearspunct}}\"\n      }\n    },\n    {\n      \"name\": \"shortcites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcites{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citestyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\citestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibcleanup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnumfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindextype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifciteindex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/natbib#c\": [\n      \"round\",\n      \"square\",\n      \"curly\",\n      \"angle\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"sort\",\n      \"sort&compress\",\n      \"compress\",\n      \"longnamesfirst\",\n      \"sectionbib\",\n      \"nonamebreak\",\n      \"merge\",\n      \"elide\",\n      \"mcite\"\n    ],\n    \"\\\\setcitestyle\": [\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"round\",\n      \"square\",\n      \"angle\",\n      \"curly\",\n      \"open={${1:char}}\",\n      \"close={${1:char}}\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"citesep={${1:char}}\",\n      \"aysep={${1:char}}\",\n      \"yysep={${1:char}}\",\n      \"notesep={${1:text}}\"\n    ],\n    \"\\\\citestyle#c\": [\n      \"aa\",\n      \"abbrv\",\n      \"abbrvnat\",\n      \"agsm\",\n      \"agu\",\n      \"alpha\",\n      \"anngeo\",\n      \"chicago\",\n      \"copernicus\",\n      \"cospar\",\n      \"dcu\",\n      \"egs\",\n      \"egu\",\n      \"esa\",\n      \"kluwer\",\n      \"named\",\n      \"nature\",\n      \"nlinproc\",\n      \"pass\",\n      \"plain\",\n      \"plainnat\",\n      \"unsrt\",\n      \"unsrtnat\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/natbib#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/needspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Needspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"needspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needspace{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/newclude.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"include\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"include[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"include\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"include[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"include*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"include*[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"include*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"include*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"AtBeginInclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginInclude{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndInclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndInclude{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeSurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultIncludeSurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeall\"\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeEnv{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IncludeEnv[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"IncludeEnv[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}[${5:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeEnv*{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IncludeEnv*[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"IncludeEnv*[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}[${5:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includedoc[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includedoc\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedoc[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includedoc*[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includedoc*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedoc*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedocskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedocskip[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedocskip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedocskip*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"IfAllowed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfAllowed{${1:part name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParentName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareFormattingPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFormattingPackage{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"ifSkipPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkipPreambletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkipPreamblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Disable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Disable{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"DisableAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NextAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DynamicAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StaticAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StaticAux{${1:number of streams}}\"\n      }\n    },\n    {\n      \"name\": \"InitWheel\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitWheel{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DefWheel\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefWheel{${1:cmd}}{${2:spokes}}\"\n      }\n    },\n    {\n      \"name\": \"Roll\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Roll{${1:wheel}}\"\n      }\n    },\n    {\n      \"name\": \"Top\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Top{${1:wheel}}\"\n      }\n    },\n    {\n      \"name\": \"AddSpokes\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddSpokes{${1:wheel}}{${2:spokes}}\"\n      }\n    },\n    {\n      \"name\": \"IfTop\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTop{${1:wheel}}{${2:spoke}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newclude#c\": [\n      \"simple\",\n      \"tag\",\n      \"allocate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newclude#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/ngerman.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/nicefrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nicefrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nicefrac[${3:fontcmd%:translatable}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"nicefrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nicefrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nicefrac#c\": [\n      \"nice\",\n      \"ugly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nicefrac#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/nomencl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"array\",\n      \"if\": \"nomentbl\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nomentbl\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"nomentbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makenomenclature\"\n    },\n    {\n      \"name\": \"printnomenclature\"\n    },\n    {\n      \"name\": \"printnomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnomenclature[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nomenclature[${3:prefix}]{${1:symbol}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nomenclature{${1:symbol}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"nomrefeq\"\n    },\n    {\n      \"name\": \"nomrefpage\"\n    },\n    {\n      \"name\": \"nomrefeqpage\"\n    },\n    {\n      \"name\": \"nomnorefeq\"\n    },\n    {\n      \"name\": \"nomnorefpage\"\n    },\n    {\n      \"name\": \"nomnorefeqpage\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"nomenclature[${5:prefix}]{${1:symbol}}{${2:description}}{${3:units}}{${4:note}}\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nomenclature{${1:symbol}}{${2:description}}{${3:units}}{${4:note}}\"\n      }\n    },\n    {\n      \"name\": \"setnomtableformat\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnomtableformat{${1:column format}}\"\n      }\n    },\n    {\n      \"name\": \"nomlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomAname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomGname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomXname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomZname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nompreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nompostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomentryend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqdeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomeqref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomeqref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nomeqref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomeqref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nompageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nompageref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printglossary\",\n      \"if\": \"compatible\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thenomenclature\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/nth.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nthM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nthM{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nthSuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nthSuff{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"nthscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nthscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nthtest\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nth#c\": [\n      \"super\",\n      \"negative\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nth#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/paracol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"switchcolumn\"\n    },\n    {\n      \"name\": \"switchcolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"switchcolumn[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"switchcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"switchcolumn*[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"switchcolumn\",\n      \"arg\": {\n        \"format\": \"[]*[]\",\n        \"snippet\": \"switchcolumn[${1:column}]*[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"thecolumn\"\n    },\n    {\n      \"name\": \"definecolumnpreamble\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definecolumnpreamble{${1:column}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"ensurevspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensurevspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"columnratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columnratio{${1:ratio 0,...,ratio k}}\"\n      }\n    },\n    {\n      \"name\": \"columnratio\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"columnratio{${1:ratio 0,...,ratio k}}[${2:ratio' 0,...,ratio' k}]\"\n      }\n    },\n    {\n      \"name\": \"setcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolumnwidth{${1:gap 0,...,gap k}}\"\n      }\n    },\n    {\n      \"name\": \"setcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setcolumnwidth{${1:gap 0,...,gap k}}[${2:gap' 0,...,gap' k}]\"\n      }\n    },\n    {\n      \"name\": \"twosided\"\n    },\n    {\n      \"name\": \"twosided\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twosided[${1:t1t2...tk}]\"\n      }\n    },\n    {\n      \"name\": \"marginparthreshold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginparthreshold{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"marginparthreshold\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"marginparthreshold{${1:columns}}[${2:columns'}]\"\n      }\n    },\n    {\n      \"name\": \"globalcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"globalcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"globalcounter*\"\n    },\n    {\n      \"name\": \"localcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"definethecounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definethecounter{${1:counter}}{${2:column}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"synccounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synccounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"syncallcounters\"\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotelayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnote*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemark*[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnotetext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotetext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotetext*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fncounteradjustment\"\n    },\n    {\n      \"name\": \"nofncounteradjustment\"\n    },\n    {\n      \"name\": \"belowfootnoteskip\"\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columncolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"columncolor{${1:color}}[${2:column}]\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"columncolor[${2:mode}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"columncolor[${2:mode}]{${1:color}}[${3:column}]\"\n      }\n    },\n    {\n      \"name\": \"normalcolumncolor\"\n    },\n    {\n      \"name\": \"normalcolumncolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalcolumncolor[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"coloredwordhyphenated\"\n    },\n    {\n      \"name\": \"nocoloredwordhyphenated\"\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colseprulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"colseprulecolor{${1:color}}[${2:column}]\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colseprulecolor[${2:mode}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"colseprulecolor[${2:mode}]{${1:color}}[${3:column}]\"\n      }\n    },\n    {\n      \"name\": \"normalcolseprulecolor\"\n    },\n    {\n      \"name\": \"normalcolseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalcolseprulecolor[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backgroundcolor{${1:region}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"backgroundcolor{${1:region}}[${3:mode}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"nobackgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobackgroundcolor{${1:region}}\"\n      }\n    },\n    {\n      \"name\": \"resetbackgroundcolor\"\n    },\n    {\n      \"name\": \"pagerim\"\n    },\n    {\n      \"name\": \"addcontentsonly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcontentsonly{${1:file%keyvals}}{${2:column}}\",\n        \"keys\": [\n          \"\\\\addcontentsonly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flushpage\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"paracol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:numleft}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:numleft}]{${1:number}}[${3:text}]\"\n      }\n    },\n    {\n      \"name\": \"column\"\n    },\n    {\n      \"name\": \"column*\"\n    },\n    {\n      \"name\": \"column*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:column}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"leftcolumn\"\n    },\n    {\n      \"name\": \"leftcolumn*\"\n    },\n    {\n      \"name\": \"leftcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"rightcolumn\"\n    },\n    {\n      \"name\": \"rightcolumn*\"\n    },\n    {\n      \"name\": \"rightcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\addcontentsonly\": [\n      \"toc\",\n      \"lof\",\n      \"lot\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/parskip.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/parskip#c\": [\n      \"skip\",\n      \"skip=\",\n      \"tocskip\",\n      \"tocskip=\",\n      \"indent\",\n      \"indent=\",\n      \"parfill\",\n      \"parfill=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/parskip#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pdfpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"pdflscape\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"count1to\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includepdf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includepdf[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includepdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdf{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"includepdfmerge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includepdfmerge[${2:options%keyvals}]{${1:file-list%definition}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includepdfmerge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdfmerge{${1:file-list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includepdfset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdfset{${1:global options%keyvals}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threadinfodict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddToSurvey\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfpages#c\": [\n      \"final\",\n      \"draft\",\n      \"demo\",\n      \"nodemo\",\n      \"enable-survey\"\n    ],\n    \"\\\\includepdf,includepdfmerge,\\\\includepdfset\": [\n      \"pages={${1:page range}}\",\n      \"nup=${1:xnup}x${2:ynup}\",\n      \"landscape\",\n      \"delta=${1:delx} ${2:dely}\",\n      \"deltax=${1:delx}\",\n      \"deltay=${1:dely}\",\n      \"offset=${1:offx} ${2:offy}\",\n      \"frame\",\n      \"column\",\n      \"columnstrict\",\n      \"openright\",\n      \"openrighteach\",\n      \"pagecommand=${1:code}\",\n      \"turn\",\n      \"noautoscale\",\n      \"fitpaper\",\n      \"reflect\",\n      \"reflect*\",\n      \"signature=${1:size}\",\n      \"signature*=${1:size}\",\n      \"booklet\",\n      \"picturecommand=${1:code}\",\n      \"picturecommand*=${1:code}\",\n      \"pagetemplate=${1:page number}\",\n      \"templatesize={${1:width}}{${2:height}}\",\n      \"rotateoversize\",\n      \"doublepages\",\n      \"doublepagestwist\",\n      \"doublepagestwistodd\",\n      \"doublepagestwist*\",\n      \"doublepagestwistodd*\",\n      \"duplicatepages=${1:integer}\",\n      \"lastpage=${1:page number}\",\n      \"link\",\n      \"linkname=${1:default linkname}\",\n      \"thread\",\n      \"threadname=${1:name}\",\n      \"linktodoc\",\n      \"linkfit=${1|Fit,FitH,FitV,FitB,FitBH,FitBV,Region|}\",\n      \"linktodocfit=\",\n      \"newwindow\",\n      \"linkfilename=${1:name}\",\n      \"addtotoc={${1:page num,section,level,heading,label}}\",\n      \"addtolist={${1:page num,type,heading,label}}\",\n      \"survey\",\n      \"survey-nolink\",\n      \"xr-prefix=${1:prefix}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfpages#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pgf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreampoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreampoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreampointoutlier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreampointoutlier{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreampointundefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreamnewdataset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreamspecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreamspecial{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclareplothandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareplothandler{${1:macro%cmd}}{${2:args}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareplothandler#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"pgfsetlinetofirstplotpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmovetofirstplotpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerlineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerpolygon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerdiscard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerrecord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplothandlerrecord{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotxyfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxyfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotxyzfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxyzfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotgnuplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotgnuplot{${1:gnuplot function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotgnuplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotgnuplot[${2:prefix}]{${1:gnuplot function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotfunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotfunction{${1:variable%cmd}}{${2:sample list}}{${3:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodeparttextbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmultipartnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmultipartnode{${1:shape}}{${2:anchor}}{${3:name}}{${4:path usage cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfnode{${1:shape}}{${2:anchor}}{${3:label text}}{${4:name}}{${5:path usage cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpositionnodelater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpositionnodelater{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpositionnodelatername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgflatenodepositioning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflatenodepositioningtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflatenodepositioningfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodenow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpositionnodenow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgffakenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgffakenode{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodepostsetupcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnodepostsetupcode{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodealias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnodealias{${1:new name}}{${2:existing name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnoderename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnoderename{${1:new name}}{${2:existing name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcoordinate{${1:name}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaregenericanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclaregenericanchor{${1:anchor}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointanchor{${1:node}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointshapeborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointshapeborder{${1:node}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetnodeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgetnodeparts{${1:macro}}{${2:shape name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareshape{${1:shape name}}{${2:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfshapeborderusesincircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeborderusesincircletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeborderusesincirclefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodeparts{${1:list of node parts}}\"\n      }\n    },\n    {\n      \"name\": \"savedanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savedanchor{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"saveddimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveddimen{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"savedmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savedmacro{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtosavedmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtosavedmacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"anchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anchor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"deferredanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deferredanchor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"anchorborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchorborder{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foregroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"behindbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"behindbackgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforebackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforebackgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"behindforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"behindforegroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforeforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforeforegroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"inheritsavedanchors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritsavedanchors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritsavedanchors[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbehindbackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbehindbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbehindbackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbeforebackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbeforebackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbeforebackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbehindforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbehindforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbehindforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbeforeforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbeforeforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbeforeforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inheritanchor[${3:from={${1:shape name}}}]{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"inheritanchorborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritanchorborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritanchorborder[${2:from={${1:shape name}}}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgf#c\": [\n      \"draft\",\n      \"version=${1|0.65,0.96,1.18,latest|}\"\n    ],\n    \"\\\\pgfdeclareplothandler#c\": [\n      \"start=${1:code}\",\n      \"end=${1:code}\",\n      \"point=${1:code}\",\n      \"jump=${1:code}\",\n      \"special=${1:code}\",\n      \"point macro=${1:macro}\",\n      \"special macro=${1:macro}\",\n      \"start macro=${1:macro}\",\n      \"end macro=${1:macro}\",\n      \"jump macro=${1:macro}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pgfcore.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pgfsys\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfintloaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinteval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfinteval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfintabs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmax{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmin{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivtruncate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivtruncate{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivfloor{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivround{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmod{${1:number}}{${2:modulus}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintset{${1:arg}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpoint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpoint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointtransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointtransformed{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointdiff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointdiff{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointadd{${1:vec1}}{${2:vec2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointscale{${1:factor}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointscale{${1:factor}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointintersectionoflines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfpointintersectionoflines{${1:start1}}{${2:end1}}{${3:start2}}{${4:end2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointintersectionofcircles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfpointintersectionofcircles{${1:p1}}{${2:p2}}{${3:r1}}{${4:r2}}{${5:solution}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointlineattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointlineattime{${1:time}}{${2:p1}}{${3:p2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointlineatdistance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointlineatdistance{${1:distance}}{${2:p1}}{${3:p2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcurveattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfpointcurveattime{${1:time}}{${2:p1}}{${3:p2}}{${4:p3}}{${5:p4}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointarcaxesattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpointarcaxesattime{${1:time}}{${2:center}}{0-degree axis}{90-degree axis}{${3:start angle}}{${4:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointpolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointpolar{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointpolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointpolar{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointpolarxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointpolarxy{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcylindrical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointcylindrical{${1:degree}}{${2:radius}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointspherical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointspherical{${1:longitude}}{${2:latitude}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfqpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetxvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetxvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetyvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetyvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetzvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetzvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointnormalised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointnormalised{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointborderrectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointborderrectangle{${1:direction}}{${2:corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointborderellipse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointborderellipse{${1:direction}}{${2:corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfextractx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfextractx{${1:dimension}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfextracty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfextracty{${1:dimension}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetlastxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgetlastxy{${1:macro for x%cmd}}{${2:macro for y%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointtransformednonlinear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointtransformednonlinear{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgetpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetpath{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetcornersarced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetcornersarced{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathmoveto{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathlineto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathlineto{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpathcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpathcurveto{${1:support p1}}{${2:support p2}}{${3:end point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathquadraticcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathquadraticcurveto{${1:support point}}{${2:end point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpatharc{${1:start angle}}{${2:end angle}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharcaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfpatharcaxes{${1:start angle}}{${2:end angle}}{${3:axis1}}{${4:axis2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharcto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpatharcto{${1:x-radius}}{${2:y-radius}}{${3:rotation}}{${4:large arc flag}}{${5:countercl flag}}{${6:target point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharctomaxstepsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpatharctoprecomputed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpatharctoprecomputed{${1:point1}}{${2:start angle}}{${3:end angle}}{${4:point2}}{${5:a}}{${6:b}}{${7:ab-ratio}}{${8:ba-ratio}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathellipse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpathellipse{${1:center}}{${2:axis2}}{${3:axis2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathcircle{${1:center}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathrectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathrectangle{${1:corner}}{${2:diagonal vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathrectanglecorners\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathrectanglecorners{${1:corner}}{${2:opposite corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathgrid{${1:corner1}}{${2:corner2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfpathgrid[${3:options%keyvals}]{${1:corner1}}{${2:corner2}}\",\n        \"keys\": [\n          \"\\\\pgfpathgrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfpathparabola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathparabola{${1:bend vector}}{${2:end vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathsine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathsine{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcosine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathcosine{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcurvebetweentime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathcurvebetweentime{${1:time t1}}{${2:time t2}}{${3:point p}}{${4:point s1}}{${5:point s2}}{${6:point q}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcurvebetweentimecontinue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathcurvebetweentimecontinue{${1:time t1}}{${2:time t2}}{${3:point p}}{${4:point s1}}{${5:point s2}}{${6:point q}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfusepath{${1:actions%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfusepath#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfsetshortenstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetshortenstart{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetshortenend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetshortenend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfrememberpicturepositiononpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrememberpicturepositiononpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrememberpicturepositiononpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfqbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqbox{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqboxsynced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqboxsynced{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"pgftext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgftext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgftext[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\pgftext#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfresetboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetbaselinepointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaselinepointlater{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbaselinepointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaselinepointnow{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbaseline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaseline{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleftpointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleftpointlater{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleftpointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleftpointnow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleft{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimrightpointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimrightpointlater{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimrightpointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimrightpointnow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimright{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseid{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfclearid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidrefnextuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfidrefnextuse{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfidrefprevuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfidrefprevuse{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusetype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfusetype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpushtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpoptype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfaliasid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasid{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgaliasid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgaliasid{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfifidreferenced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfifidreferenced{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetlinewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetinnerlinewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetinnerlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinnerlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetinnerstrokecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetinnerstrokecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinnerstrokecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmiterlimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmiterlimit{${1:miter limit factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetstrokecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetstrokecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetfillcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbuttcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetroundcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetrectcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmiterjoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetbeveljoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetroundjoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfseteorule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetnonzerorule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgettransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgettransform{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgettransformentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfgettransformentries{${1:macro1%cmd}}{${2:macro2%cmd}}{${3:macro3%cmd}}{${4:macro4%cmd}}{${5:xshift-macro%cmd}}{${6:yshift-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettransformentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfsettransformentries{${1:macro1}}{${2:macro2}}{${3:macro3}}{${4:macro4}}{${5:xshift-macro}}{${6:yshift-macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettransform{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransforminvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformcm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgftransformcm{${1:a}}{${2:b}}{${3:c}}{${4:d}}{${5:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformtriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgftransformtriangle{${1:a}}{${2:b}}{${3:c}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformresetnontranslations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformshift{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxshift{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyshift{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxslant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyslant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformrotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformrotate{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfslopedattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfslopedattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfslopedattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfallowupsidedownattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfallowupsidedownattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfallowupsidedownattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfresetnontranslationattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfresetnontranslationattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfresetnontranslationattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformlineattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgftransformlineattime{${1:time}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformarcaxesattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgftransformarcaxesattime{${1:time}}{${2:center}}{0-deg axis}{90-deg axis}{${3:start angle}}{${4:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformcurveattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgftransformcurveattime{${1:time}}{${2:start}}{${3:support1}}{${4:support2}}{${5:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgftransformarrow{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformationadjustments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfhorizontaltransformationadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfverticaltransformationadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelsynccm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgflowlevel{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgflowlevelscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgflowlevelscope{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"endpgflowlevelscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgflowlevelobj{${1:transformation code}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfviewboxscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfviewboxscope{${1:ll1}}{${2:ur1}}{${3:ll2}}{${4:ur2}}{${5:meet or slice}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfviewboxscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfapproximatenonlineartranslation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfapproximatenonlineartransformation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformnonlinear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformnonlinear{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathqmoveto{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqlineto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathqlineto{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathqcurveto{${1:x-dimen1%l}}{${2:y-dimen1%l}}{${3:x-dimen2%l}}{${4:y-dimen2%l}}{${5:target-x-dimen%l}}{${6:target-y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathqcircle{${1:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusepathqstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqfillstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdefobject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfdefobject{${1:name}}{${2:ll}}{${3:ur}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseobject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseobject{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseobjectmagnify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseobjectmagnify{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesssplitpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesssplitpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesssplitsubpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesssplitsubpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocessresultsubpathprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocessresultsubpathsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocesspathextractpoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesspathextractpoints{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointfirstonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointsecondonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointsecondlastonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointlastonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocesscheckclosed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocesscheckclosed{${1:macro%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocessround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocessround{${1:macro1%cmd}}{${2:macro2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesspathreplacestartandend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocesspathreplacestartandend{${1:start coord}}{${2:end coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarearrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdeclarearrow{${1:config%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfdeclarearrow#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfarrowdraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowdraw{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowtotallength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowtotallength{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrowsend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrowsend{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrowsstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrowsstart{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowswap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowswaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowswapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowreversed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowreversedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowreversedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowharpoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowharpoontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowharpoonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsaddtolengthscalelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtolengthscalelist{${1:dimen register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtowidthscalelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtowidthscalelist{${1:dimen register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtooptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtooptions{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtolateoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtolateoptions{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsthreeparameters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsthreeparameters{${1:size spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowstheparameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsfourparameters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsfourparameters{${1:size spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowslinewidthdependent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfarrowslinewidthdependent{${1:dimen%l}}{${2:line width factor}}{${3:outer factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowslengthdependent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfarrowslengthdependent{${1:dimen%l}}{${2:length factor}}{${3:dummy}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssavethe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssavethe{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssave{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowshullpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfarrowshullpoint{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsupperhullpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfarrowsupperhullpoint{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssettipend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssettipend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetbackend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetbackend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetlineend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetlineend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetvisualtipend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetvisualtipend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetvisualbackend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetvisualbackend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrows{${1:startspec-endspec}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfshadingmodelrgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelrgbtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelrgbfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfshadingmodelcmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelcmyktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelcmykfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfshadingmodelgray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelgraytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelgrayfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarehorizontalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclarehorizontalshading{${1:name}}{${2:height}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarehorizontalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclarehorizontalshading[${4:color list}]{${1:name}}{${2:height}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareverticalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareverticalshading{${1:name}}{${2:width}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareverticalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclareverticalshading[${4:color list}]{${1:name}}{${2:width}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareradialshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareradialshading{${1:name}}{${2:center point}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareradialshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclareradialshading[${4:color list}]{${1:name}}{${2:center point}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefunctionalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarefunctionalshading{${1:name}}{${2:ll-corner}}{${3:ur-corner}}{${4:init-code}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefunctionalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarefunctionalshading[${6:color list}]{${1:name}}{${2:ll-corner}}{${3:ur-corner}}{${4:init-code}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortorgb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortorgb{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortocmyk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortocmyk{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortogray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortogray{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgffuncshadingrgbtocmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingrgbtogray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingcmyktorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingcmyktogray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadinggraytorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadinggraytocmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseshading{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaliasshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasshading{${1:alias name}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadepath{${1:name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetadditionalshadetransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetadditionalshadetransform{${1:transformation}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfdeclareimage[${3:options%keyvals}]{${1:image name}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimage,\\\\pgfimage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareimage{${1:image name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfdeclaremask[${3:options%keyvals}]{${1:mask name}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclaremask\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclaremask{${1:mask name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaliasimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasimage{${1:new image name}}{${2:existing image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseimage{${1:image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfalternateextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfimage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimage,\\\\pgfimage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfexternalreadmainaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalreadmainauxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalreadmainauxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrealjobname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrealjobname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfactualjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginpgfgraphicnamed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginpgfgraphicnamed{${1:file name prefix}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfgraphicnamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfincludeexternalgraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfincludeexternalgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternalreaddpth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfexternalreaddpth{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternaldepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternaltrimleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternaltrimright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dpthimport\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalstorecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfexternalstorecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarelayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdeclarelayer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetlayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetlayers{${1:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfonlayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfonlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdiscardlayername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetstrokeopacity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetstrokeopacity{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillopacity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetfillopacity{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetblendmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetblendmode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfsetblendmode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclarefading{${1:name}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfading{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfadingforcurrentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfadingforcurrentpath{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfadingforcurrentpathstroked\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfadingforcurrentpathstroked{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgftransparencygroup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endpgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarepatternformonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatternformonly{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatternformonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatternformonly[${6:variables}]{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatterninherentlycolored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatterninherentlycolored{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatterninherentlycolored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatterninherentlycolored[${6:variables}]{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatternreleasename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpatternreleasename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillpattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfillpattern{${1:name}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfabout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfabout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfcontent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfcontent{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfdatatype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfdatatype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfhref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfinlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrdfprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfproperty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfrel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfresource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfresource{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfrev{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfsrc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfsrc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdftypeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdftypeof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfvocab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfvocab{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfviewboxscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:ll1}}{${2:ur1}}{${3:ll2}}{${4:ur2}}{${5:meet or slice}}\"\n      }\n    },\n    {\n      \"name\": \"pgfonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\pgfpathgrid#c\": [\n      \"stepx=\",\n      \"stepy=\",\n      \"step=${1:vector}\"\n    ],\n    \"\\\\pgfusepath#c\": [\n      \"fill\",\n      \"stroke\",\n      \"draw\",\n      \"clip\",\n      \"discard\"\n    ],\n    \"\\\\pgftext#c\": [\n      \"left\",\n      \"right\",\n      \"top\",\n      \"bottom\",\n      \"base\",\n      \"at=${1:point}\",\n      \"x=\",\n      \"y=\",\n      \"rotate=${1:degree}\"\n    ],\n    \"\\\\pgfdeclarearrow#c\": [\n      \"name=${1:name}\",\n      \"name=${1:start name}-${2:end name}\",\n      \"parameters={${1:list of macros}}\",\n      \"setup code={${1:code}}\",\n      \"drawing code={${1:code}}\",\n      \"cache\",\n      \"bending mode=${1|none,orthogonal,polar|}\",\n      \"defaults=${1:arrow keys}\",\n      \"means=\"\n    ],\n    \"\\\\pgfdeclaremask\": [\n      \"matte=${1:color components}\"\n    ],\n    \"\\\\pgfdeclareimage,\\\\pgfimage\": [\n      \"height=\",\n      \"width=\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"mask=${1:mask name}\"\n    ],\n    \"\\\\pgfsetblendmode\": [\n      \"normal\",\n      \"multiply\",\n      \"screen\",\n      \"overlay\",\n      \"darken\",\n      \"lighten\",\n      \"color dodge\",\n      \"color burn\",\n      \"hard light\",\n      \"soft light\",\n      \"difference\",\n      \"exclusion\",\n      \"saturation\",\n      \"color\",\n      \"hue\",\n      \"luminosity\"\n    ],\n    \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\": [\n      \"knockout\",\n      \"isolated\"\n    ],\n    \"\\\\usegdlibrary#c\": [\n      \"trees\",\n      \"layered\",\n      \"force\",\n      \"circular\",\n      \"phylogenetics\",\n      \"routing\"\n    ],\n    \"\\\\pgfdeclarepattern#c\": [\n      \"name=${1:name}\",\n      \"type=${1|uncolored,colored,form only,inherently colored|}\",\n      \"x=\",\n      \"y=\",\n      \"parameters=\",\n      \"defaults=\",\n      \"bottom left=${1:pgf point}\",\n      \"top right=${1:pgf point}\",\n      \"tile size=${1:pgf point}\",\n      \"tile transformation=${1:pgf transformation}\",\n      \"code=${1:code}\",\n      \"set up code=${1:code}\"\n    ],\n    \"\\\\pgfsysanimate#c,\\\\pgfanimateattribute#c,\\\\pgfanimateattributecode#c\": [\n      \"opacity\",\n      \"fillopacity\",\n      \"strokeopacity\",\n      \"visibility\",\n      \"strokecolor\",\n      \"fillcolor\",\n      \"path\",\n      \"linewidth\",\n      \"dash\",\n      \"translate\",\n      \"scale\",\n      \"rotate\",\n      \"skewx\",\n      \"skewy\",\n      \"motion\",\n      \"viewbox\"\n    ],\n    \"\\\\pgfdata#c\": [\n      \"read from file=${1:file name}\",\n      \"inline\",\n      \"format=${1|TeX code,named,table|}\",\n      \"every data\",\n      \"new set=${1:name}\",\n      \"store in set=${1:name}\",\n      \"use set=${1:name}\"\n    ],\n    \"\\\\state#c\": [\n      \"switch if less than=${1:dimen} to ${2:new state}\",\n      \"switch if input segment less than=${1:dimen} to ${2:new state}\",\n      \"width=\",\n      \"repeat state=${1:repetitions}\",\n      \"next state=${1:new state}\",\n      \"if input segment is closepath={${1:options}}\",\n      \"auto end on length=\",\n      \"auto corner on length=\",\n      \"persistent precomputation=${1:precode}\",\n      \"persistent postcomputation=${1:postcode}\"\n    ],\n    \"\\\\pgfparserset#c\": [\n      \"silent\",\n      \"status\"\n    ],\n    \"\\\\pgfdeclareplothandler#c\": [\n      \"start=${1:code}\",\n      \"end=${1:code}\",\n      \"point=${1:code}\",\n      \"jump=${1:code}\",\n      \"special=${1:code}\",\n      \"point macro=${1:macro}\",\n      \"special macro=${1:macro}\",\n      \"start macro=${1:macro}\",\n      \"end macro=${1:macro}\",\n      \"jump macro=${1:macro}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pgfplots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslegendfromname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslegendfromname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolorbarfromname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorbarfromname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversiondatetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrevisiondatetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrevisiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotsthreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfnodepartimagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsifaxisthreedim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifaxisthreedim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifcurplotthreedim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifcurplotthreedim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifcyclelistexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifcyclelistexists{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscreateplotcyclelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscreateplotcyclelist{${1:name}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmarklistfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetarange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformedrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsextra{${1:path code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlogtologten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathlogtologten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdefineaxistype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdefineaxistype{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetaxistype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetaxistype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetlayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetlayers{${1:layer config name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsonlayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotsonlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsgetlayerforstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetlayerforstyle{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointorigininternal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointupperrightcorner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointaxisorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionbyanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointdescriptionbyanchor{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointbblowerleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointbbupperright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointbbdiagonal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspathaxisoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointnormalizedaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointnormalizedaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointnormalizedaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointnormalizedaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisdirectionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointaxisdirectionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisdirectionxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointaxisdirectionxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointdescriptionxy{${1:x-frac}}{${2:y-frac}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointdescriptionxy{${1:x-frac}}{${2:y-frac}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointrelaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointrelaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointrelaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointrelaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatex{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatey{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatez\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatez{${1:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectionx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectionx{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectiony\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectiony{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectionz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectionz{${1:z}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotscolorbarCMYKworkaround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbarCMYKworkaroundtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbarCMYKworkaroundfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbardrawstandalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbardrawstandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotscolorbardrawstandalone[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifnodeexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifnodeexists{${1:node}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsinterruptdatabb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfplotsinterruptdatabb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reciproclogten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultticklabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultticklabellog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendimage{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendentry{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addlegendentry[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentryexpanded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendentryexpanded{${1:TeX text}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentryexpanded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addlegendentryexpanded[${2:options}]{${1:TeX text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetlateoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetlateoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifissurveyphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifissurveyphase{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifisvisualizationphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifisvisualizationphase{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifinaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinaxis{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"numplots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numplotsofactualtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closedcycle\"\n    },\n    {\n      \"name\": \"pgfplotsaxisplotphase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsreplacepdfmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsreplacepdfmark{${1:picture id1}}{${2:picture id2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsloglevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsglobalretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsthrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsthrow{${1:exception}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotswarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotswarning{${1:exception}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotstry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrethrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsexceptionmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsiffileexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsiffileexists{${1:file}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"usepgfplotslibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfplotslibrary{${1:library list%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsiflibraryloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsiflibraryloaded{${1:library%keyvals}}{${2:true}}{${3:false}}\",\n        \"keys\": [\n          \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsqaftergroupeach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsqaftergroupeach{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaftergroupcollectinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaftergroupcollectinto{${1:cmd}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscommandtostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscommandtostring{${1:cmd1}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathlessthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathlessthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathfloatmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathfloatmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathfloatmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathfloatmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsscalarproductofvectors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsscalarproductofvectors{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachentryinCSV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsforeachentryinCSV{${1:macro%cmd}}{${2:list}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachentryinCSVisterminated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsforeachentryinCSVisterminated{${1:macro%cmd}}{${2:list}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachtodomain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsforeachtodomain{${1:domain}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsinvokeforeach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsinvokeforeach{${1:list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicformatresultwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsforeachlogarithmicformatresultwith{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicungrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotsforeachlogarithmicungrouped[${1:samples}]\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicmathid\"\n    },\n    {\n      \"name\": \"pgfplotsmathmodint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmodint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsloop{${1:code}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsutilstrcmp{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathcarttopol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathcarttopol{${1:x}}{${2:y}}{${3:angle macro%cmd}}{${4:radius macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathcarttopolbasic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathcarttopolbasic{${1:x}}{${2:y}}{${3:angle macro%cmd}}{${4:radius macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathpoltocart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathpoltocart{${1:angle}}{${2:radius}}{${3:x macro%cmd}}{${4:y macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathpoltocartbasic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathpoltocartbasic{${1:angle}}{${2:radius}}{${3:x macro%cmd}}{${4:y macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathdeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathdeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathredeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathredeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathdefinemacrolnbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathdefinemacrolnbase{${1:macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifstartswith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilifstartswith{${1:pattern}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilstrreplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilstrreplace{${1:token}}{${2:replacement}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifstringequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilifstringequal{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifcontainsmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilifcontainsmacro{${1:tokens}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathparsex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathparsex{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilsortthree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilsortthree{${1:macro1}}{${2:macro2}}{${3:macro3}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilsortfour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilsortfour{${1:macro1}}{${2:macro2}}{${3:macro3}}{${4:macro4}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectortostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectortostring{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorfromstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorfromstring{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorsubtract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorsubtract{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectoradd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectoradd{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorcompwise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorcompwise{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:operation}}{${4:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorsum{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscalarproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscalarproduct{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectortocomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectortocomponents{${1:x,y,z}}{${2:string}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorcrossprod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorcrossprod{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscaleindividually\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscaleindividually{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointfromcsvvector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointfromcsvvector{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorlength{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscale{${1:x,y,z}}{${2:scale}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectordatascaletrafoinverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectordatascaletrafoinverse{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotslistempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslistnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslistnew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotslistnew{${1:macro%cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsprependlistXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsprependlistXnewempty{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsprependlistXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsprependlistXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXXclear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXclear{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXpushback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXpushback{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXedefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXedefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXxdefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXxdefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXlet{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalclear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalclear{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalpushback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalpushback{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobaledefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobaledefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalxdefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalxdefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXgloballet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXgloballet{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgloballet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXglobalnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXglobalnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXglobalflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXglobalflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotsarrayempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarrayemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarrayemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarraynewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraynewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraynewemptyglobal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraynewemptyglobal{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayresize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayresize{${1:array macro}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayresizeglobal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayresizeglobal{${1:array macro}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsarrayifdefined{${1:array macro}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraynew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarraynew{${1:macro%cmd}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayfrompgfplotslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayfrompgfplotslist{${1:array macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraysizeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraysizeof{${1:array macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraytotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraytotext{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraycheckempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraycheckempty{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayforeachindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarraysort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraysort{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayinsertionsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarrayinsertionsort{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraybinarysearch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsarraybinarysearch{${1:array}}{${2:value}}{${3:start index}}{${4:end index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmatrixnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixresize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatrixresize{${1:matrix}}{${2:rows}}{${3:cols}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatrixifdefined{${1:matrix}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachrowindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachcolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachrowend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixtotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmatrixtotext{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixLUdecompwarnsingular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableread\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableread{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableifiscreateonuse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotstableifiscreateonuse{${1:column}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegenerateuniquecolnamefor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegenerateuniquecolnamefor{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablegetname{${1:table}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablenameof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablenameof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetscanlinelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablegetscanlinelength{${1:table}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablescanlinelengthof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablescanlinelengthof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadpreparecatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablecollectoneargwithpreparecatcodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablecollectoneargwithpreparecatcodes{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecollectoneargwithpreparecatcodesnorestore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablecollectoneargwithpreparecatcodesnorestore{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableinstallignorechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableuninstallignorechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablelineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablereadgetcolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetcolindex{${1:index}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetcolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetcolname{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetptrtocolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetptrtocolname{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetptrtocolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetptrtocolindex{${1:index}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadevalptr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadevalptr{${1:pointer}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofptr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofptr{${1:pointer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofcolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofcolname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofcolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofcolindex{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"getthisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthisrow{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"thisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrow{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"thisrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrowno{${1:col index}}\"\n      }\n    },\n    {\n      \"name\": \"lineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getthisrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthisrowno{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypeset{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypeset[${2:options%keyvals}]{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypesetfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypesetfile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol{${1:name}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol[${3:options%keyvals}]{${1:name}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablegetrowsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetrowsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetcolsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetcolsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdequenewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdequenewempty{${1:deque name}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdequecheckempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdequecheckempty{${1:deque}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscharno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscharno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinarytoluabinary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinarytoluabinary{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetchar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinarysetbytes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinarysetbytes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodeunsigned\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodeunsigned{${1:unsigned integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodesignedmaplinearly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodesignedmaplinearly{${1:signed integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodedimenmaplinearly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodedimenmaplinearly{${1:TeX dimen}}\"\n      }\n    },\n    {\n      \"name\": \"beginpgfplotsverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfplotsverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfprocesscoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslibrarysurfprocesscoordinate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfusepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfdraw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamcoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotslibrarysurfstreamcoord{${1:pgf point}}{${2:color coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfusepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfdrawinpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflibrarysurfshadingifactive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgflibrarysurfshadingifactive{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscreatecolormap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscreatecolormap{${1:name}}{${2:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapsetadditionalintervalwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapsetadditionalintervalwidth{${1:colormap}}{${2:interval width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifisuniform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifisuniform{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptodatafile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormaptodatafile{${1:colormap}}{${2:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptodatafile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormaptodatafile[${3:options%keyvals}]{${1:colormap}}{${2:data file%file}}\",\n        \"keys\": [\n          \"\\\\pgfplotscolormaptodatafile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetmeshwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetmeshwidth{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializecomponentstomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializecomponentstomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializeXtomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializeXtomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializetomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializetomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetpositions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotscolormapgetpositions[${2:start:end}]{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormappdfmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapsizeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapsizeof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapgetcolor{${1:colormap}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaplastindexof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormaplastindexof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifrequiresextrainterval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifrequiresextrainterval{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifdrawslastcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifdrawslastcolor{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptopdffunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormaptopdffunction{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifdefined{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapassertexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapassertexists{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptoshadingspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormaptoshadingspec{${1:colormap}}{${2:pgf size}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptoshadingspectorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapreversedtoshadingspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapreversedtoshadingspec{${1:colormap}}{${2:pgf size}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolorspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetcolorspace{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolorcomps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetcolorcomps{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapcolorspaceof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapcolorspaceof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapcolorcompsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapcolorcompsof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapfind[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapfind[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfindpiecewiseconst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapfindpiecewiseconst[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfindpiecewiseconst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapfindpiecewiseconst[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapgetindex{${1:index}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapaccess[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapaccess[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformedrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapdefinemappedcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapdefinemappedcolor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotscolornormalizesequence[${1:color seq options}]\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotscolornormalizesequence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencenextbycomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolornormalizesequencenextbycomponents{${1:color space}}{${2:components}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsretvalb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorspacegetcomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorspacegetcomponents{${1:color space}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencegetnumcomponents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencenext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolornormalizesequencenext{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencezero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorzero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorzero{${1:num of components}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequenceaddweighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolornormalizesequenceaddweighted{${1:color1}}{${2:scale factor}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoloraddweighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotscoloraddweighted{${1:num of components}}{${2:color1}}{${3:scale factor}}{${4:color2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointgetzerolevelcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetnormalizedzerolevelcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotssurveyphaseinputclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsresetplothandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerserializepointto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerserializepointto{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerdeserializepointfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerdeserializepointfrom{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerpointtokeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerpointtokeys{${1:key prefix}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerserializestateto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerserializestateto{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlervisualizejump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveypointattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsplothandlersurveypointattime{${1:fraction}}{${2:point1}}{${3:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveydifflen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsplothandlersurveydifflen{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlertransformslopedattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsplothandlertransformslopedattime{${1:fraction}}{${2:point1}}{${3:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerifcurrentpointcanbefirstlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinatethreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinatethreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinatetwodim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinatetwodim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsaxisupdatelimitsforcoordinate{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerquiver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerquivererror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistadvancebin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistadvancebin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistgetintervalstartfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistgetintervalstartfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistgetbinfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistgetbinfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistsettol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistsettol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourprepared\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveybeforesetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaftersetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourexternal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscontourpopulateallkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmetamin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmetamax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlertofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlertofile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlertofilegeneratedscanlinemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourfilled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscontourfilledcolormap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveystart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveypoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaftersetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlernotifyscanlinecomplete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerLUAfactory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerLUAvisualizerfactory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspreparemeshkeydefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsautocompletemeshkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexstruct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexcoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexaccumstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspatchclass{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspatchclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclasserror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspatchclasserror{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclarepatchclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarepatchclass{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspatchready\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrefinedpatchready\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclassx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclassy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathfillstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simplecoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"simplecoordinate(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetaxesfromazel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotssetaxesfromazel{${1:azimuth}}{${2:elevation}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetnormalforcurrentview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscoordmathnotifydatascalesetfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathnotifydatascalesetfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointdescriptionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointdescriptionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmaxminmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointminmaxmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointminminmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointxaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointxaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointyaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointyaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointzaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointzaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunitx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitxlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitylength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitxinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunityinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunitz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitzlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitzinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointticklabelcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointticklabelcs{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointticklabelcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotspointticklabelcs[${3:default shift}]{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointticklabelnoshiftcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointticklabelnoshiftcs{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsconvertunittocoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsconvertunittocoordinate{${1:axis}}{${2:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxyzabsolutesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointxyzabsolutesize{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceab{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabwithbshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabwithbshift{${1:a}}{${2:b}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespecunordered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespecsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsetx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsetx{${1:x}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsety{${1:y}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsetz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsetz{${1:z}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabtolinespec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabtolinespec{${1:value}}{${2:surface}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabgetcontainedaxisline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabgetcontainedaxisline{${1:value}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifaxissurfaceisforeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifaxissurfaceisforeground{${1:surface}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifaxislineisonconvexhull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifaxislineisonconvexhull{${1:surface}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabmatchaxisline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabmatchaxisline{${1:surface}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatchcubeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatchcubeparts{${1:cube part}}{${2:surface}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxis{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxisrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxisrel{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxistransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxistransformed{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxis{${1:axis}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxissetv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxissetv{${1:axis}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxisgetv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxisgetv{${1:axis}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformtoaxisdirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdeclareborderanchorforaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdeclareborderanchorforaxis{${1:direction}}{${2:axis}}{${3:anchor name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointviewdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdeclarecoordmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarecoordmath{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscoordmathparsemacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscoordmathparsemacro{${1:coord math choice}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscoordmath{${1:axis}}{${2:method}}{${3:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathclassfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathclassfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathnotifydatascalesetfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathnotifydatascalesetfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetcoordmathfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotssetcoordmathfor{${1:label}}{${2:class name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetcoordmathfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetcoordmathfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetpointmetainput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotssetpointmetainput{${1:input method}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmetainputhandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisifhaspointmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisifhaspointmeta{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifpointmetaisbounded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifpointmetaisbounded{${1:point meta data}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisifcontainspoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisifcontainspoint{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclarepointmetasource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarepointmetasource{${1:name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfplotsdeclarepointmetasource\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthinitzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdetermineemptylinehandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinedisablechanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinecomplete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthincrease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthcleanup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthinitzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlineendofinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerappendjumpmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisfilteredcoordsaway\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplothasjumps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplothasunboundedpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotsaxisparsecoordinateok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinateoktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinateokfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplotphase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsifinplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinplot{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxispreparecoordinate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisdatapointsurveyed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxissurveysetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforpointmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsaxisupdatelimitsforpointmeta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxistransformfromdatacs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxistransformcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxistransformcs{${1:actual coordsys}}{${2:desired coordsys}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdefinecstransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdefinecstransform{${1:source coordsys}}{${2:target coordsys}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisserializedatapointtostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisserializedatapoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisdeserializedatapointfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsaxisdeserializedatapointfrom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformpointmetaifany\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotssurveyphaseaddoptionsbeforesurveybegins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssurveyphaseaddoptionsbeforesurveybegins{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaddoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlersurveyaddoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifinaddplottablestruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinaddplottablestruct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"coordindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasegetpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointgetcoordinates{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointgetnormalizedcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinatesfromnormalized\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsaxisvisphasetransformcoordinate{${1:x-macro}}{${2:y-macro}}{${3:z-macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasepreparedatapoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformcoordinateentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisvisphasetransformcoordinateentry{${1:x, y, or z}}{${2:input}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformplotattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformplotattime{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattimeclearcache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointplotattimegetfromcache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattimegetfromcache{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattimeaddtocache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattimeaddtocache{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattime{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphicspointmappoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pgfplotsplothandlergraphicspointmappoint(${1:x},${2:y},${3:z})(${4:a},${5:b})\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphicspointmapcomputerequiredview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmathvectorviewdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmathvectorviewdepth{${1:x,y,z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfshell{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfshell[${2:filename prefix}]{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"ticknum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nexttick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsvalueoflargesttickdimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsvalueoflargesttickdimen{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxis{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxisrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxisrel{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxistransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxistransformed{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsticklabelaxisspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsticklabelaxisspec{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofticklabelaxis{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclareborderanchorforticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclareborderanchorforticklabelaxis{${1:axis}}{${2:anchor name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"axis\"\n    },\n    {\n      \"name\": \"axis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loglogaxis\"\n    },\n    {\n      \"name\": \"loglogaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semilogxaxis\"\n    },\n    {\n      \"name\": \"semilogxaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semilogyaxis\"\n    },\n    {\n      \"name\": \"semilogyaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsinterruptdatabb\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"compat=${1|1.18,1.17,1.16,1.15,1.14,1.13,1.12,1.11,1.10,1.9,1.8,1.7,1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default|}\",\n      \"empty line=${1|auto,none,scanline,jump|}\",\n      \"domain=${1:x1:x2}\",\n      \"y domain=${1:y1:y2}\",\n      \"domain y=${1:y1:y2}\",\n      \"samples=${1:number}\",\n      \"samples y=${1:number}\",\n      \"samples at={${1:coord list}}\",\n      \"variable=${1:variable name}\",\n      \"variable y=${1:variable name}\",\n      \"trig format plots=${1|default,deg,rad|}\",\n      \"trig format=${1|deg,rad|}\",\n      \"translate gnuplot\",\n      \"parametric\",\n      \"id=${1:id}\",\n      \"prefix=${1:filename prefix}\",\n      \"raw gnuplot\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:tension}\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"xbar\",\n      \"bar shift auto\",\n      \"bar shift auto=${1:shift for multiple plots}\",\n      \"ybar\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar direction=${1|auto,x,y|}\",\n      \"ybar interval\",\n      \"ybar interval=${1:relative width}\",\n      \"xbar interval\",\n      \"xbar interval=${1:relative width}\",\n      \"xcomb\",\n      \"ycomb\",\n      \"quiver={${1:quiver options}}\",\n      \"stack plots=${1|x,y,false|}\",\n      \"ybar stacked\",\n      \"ybar stacked=${1|plus,minus|}\",\n      \"xbar stacked\",\n      \"xbar stacked=${1|plus,minus|}\",\n      \"stack dir=${1|plus,minus|}\",\n      \"reverse stacked plots\",\n      \"stacked ignores zero\",\n      \"xbar interval stacked\",\n      \"xbar interval stacked=${1|plus,minus|}\",\n      \"ybar interval stacked\",\n      \"ybar interval stacked=${1|plus,minus|}\",\n      \"stack negative=${1|on previous,separate|}\",\n      \"area style\",\n      \"only marks\",\n      \"scatter\",\n      \"scatter src=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"scatter/use mapped color={${1:options for each marker}}\",\n      \"scatter/classes={${1:styles for each class name}}\",\n      \"nodes near coords\",\n      \"nodes near coords={${1:content}}\",\n      \"nodes near coords*\",\n      \"nodes near coords*={${1:content}}\",\n      \"nodes near coords style={${1:options}}\",\n      \"node near coords style={${1:options}}\",\n      \"node near coord style={${1:options}}\",\n      \"nodes near coords align=${1|auto,horizontal,vertical|}\",\n      \"coordinate style/.condition={${1:expression}}{${2:options}}\",\n      \"coordinate style/.from={${1:options}}\",\n      \"coordinate style/.clear\",\n      \"scatter/position=${1|absolute,relative|}\",\n      \"scatter/@pre marker code/.code={${1:code}}\",\n      \"scatter/@post marker code/.code={${1:code}}\",\n      \"mesh\",\n      \"unbounded coords=${1|discard,jump|}\",\n      \"mesh/rows=${1:integer}\",\n      \"mesh/cols=${1:integer}\",\n      \"mesh/scanline verbose\",\n      \"mesh/ordering=${1|x varies,y varies,rowwise,colwise|}\",\n      \"mesh/check=${1|false,warning,error|}\",\n      \"z buffer=${1|default,none,auto,sort,reverse x seq,reverse y seq,reverse xy seq|}\",\n      \"surf\",\n      \"shader=${1|flat,interp,faceted,flat corner,flat mean,faceted interp|}\",\n      \"faceted color=\",\n      \"mesh/interior colormap={${1:map name}}{${2:colormap spec}}\",\n      \"mesh/interior colormap name=${1:map name}\",\n      \"mesh/interior colormap thresh=${1:number}\",\n      \"surf shading/precision=${1|pdf,postscript,ps|}\",\n      \"mesh/color input=${1|colormap,explicit,explicit mathparse|}\",\n      \"mesh/colorspace explicit color input=${1|rgb,rgb255,cmy,cmyk,cmyk255,gray,wave,hsb,Hsb,HTML|}\",\n      \"mesh/colorspace explicit color output=${1|rgb,cmyk,gray|}\",\n      \"contour lua={${1:contour options}}\",\n      \"contour gnuplot={${1:contour options}}\",\n      \"contour prepared={${1:contour options}}\",\n      \"contour prepared format=${1|standard,matlab|}\",\n      \"contour external={${1:contour options}}\",\n      \"contour filled={${1:contour options}}\",\n      \"matrix plot\",\n      \"matrix plot*\",\n      \"imagesc\",\n      \"imagesc*\",\n      \"patch\",\n      \"patch table={${1:file or inline table}}\",\n      \"patch table with point meta={${1:file or inline table}}\",\n      \"patch table with individual point meta={${1:file or inline table}}\",\n      \"mesh input=${1|lattice,patches,image|}\",\n      \"patch type=${1|default,rectangle,triangle,line|}\",\n      \"mark size=\",\n      \"mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"cube/size x=\",\n      \"cube/size y=\",\n      \"cube/size z=\",\n      \"no markers\",\n      \"mark repeat=${1:integer}\",\n      \"mark phase=${1:integer}\",\n      \"mark indices={${1:index list}}\",\n      \"mark color=\",\n      \"mark options={${1:options}}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dashdotted\",\n      \"densely dashdotted\",\n      \"loosely dashdotted\",\n      \"dashdotdotted\",\n      \"densely dashdotdotted\",\n      \"loosely dashdotdotted\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"font={${1:font commands}}\",\n      \"line width=\",\n      \"thin\",\n      \"ultra thin\",\n      \"very thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"%color\",\n      \"color=\",\n      \"draw=\",\n      \"fill=\",\n      \"colormap name=${1:map name}\",\n      \"colormap={${1:map name}}{${2:colormap spec}}\",\n      \"colormap default colorspace=${1|auto,gray,rgb,cmyk|}\",\n      \"color of colormap=${1:value}\",\n      \"color of colormap=${1:value} of ${2:map name}\",\n      \"index of colormap=${1:index}\",\n      \"index of colormap=${1:index} of ${2:map name}\",\n      \"const color of colormap=${1:value}\",\n      \"const color of colormap=${1:value} of ${2:map name}\",\n      \"cycle list={${1:list}}\",\n      \"cycle list name=${1:name}\",\n      \"mark list fill=\",\n      \"cycle list shift=${1:integer}\",\n      \"cycle multi list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex* list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"point meta=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"set point meta if empty=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"point meta rel=${1|axis wide,per plot|}\",\n      \"point meta min=${1:number}\",\n      \"point meta max=${1:number}\",\n      \"colormap access=${1|map,direct,const,piecewise constant,piecewise const,piecewise linear|}\",\n      \"near ticklabel align=${1|inside,center,outside|}\",\n      \"near ticklabel at={${1:coord}}\",\n      \"sloped like x axis\",\n      \"sloped like y axis\",\n      \"sloped like z axis\",\n      \"sloped like x axis={${1:options}}\",\n      \"sloped like y axis={${1:options}}\",\n      \"sloped like z axis={${1:options}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"zlabel=${1:text}\",\n      \"xlabel shift=\",\n      \"ylabel shift=\",\n      \"zlabel shift=\",\n      \"label shift=\",\n      \"title=${1:text}\",\n      \"extra description/.code={${1:code}}\",\n      \"legend entries={${1:list}}\",\n      \"legend style={${1:options}}\",\n      \"legend pos=${1|south west,south east,north west,north east,outer north east|}\",\n      \"legend cell align=${1|left,right,center|}\",\n      \"legend columns\",\n      \"legend columns=${1:number}\",\n      \"legend plot pos=${1|left,right,none|}\",\n      \"legend image post style={${1:options}}\",\n      \"legend image code/.code={${1:code}}\",\n      \"line legend\",\n      \"empty legend\",\n      \"area legend\",\n      \"xbar legend\",\n      \"ybar legend\",\n      \"zbar legend\",\n      \"xbar interval legend\",\n      \"ybar interval legend\",\n      \"zbar interval legend\",\n      \"mesh legend\",\n      \"reverse legend\",\n      \"legend reversed\",\n      \"transpose legend\",\n      \"legend transposed\",\n      \"invoke before crossref tikzpicture={${1:code}}\",\n      \"invoke after crossref tikzpicture={${1:code}}\",\n      \"legend to name=\",\n      \"axis x line=${1|box,top,middle,center,bottom,none|}\",\n      \"axis x line*=${1|box,top,middle,center,bottom,none|}\",\n      \"axis y line=${1|box,left,middle,center,right,none|}\",\n      \"axis y line*=${1|box,left,middle,center,right,none|}\",\n      \"axis z line=${1|box,left,middle,center,right,none|}\",\n      \"axis z line*=${1|box,left,middle,center,right,none|}\",\n      \"axis lines=${1|box,left,middle,center,right,none|}\",\n      \"axis lines*=${1|box,left,middle,center,right,none|}\",\n      \"axis line style={${1:options}}\",\n      \"inner axis line style={${1:options}}\",\n      \"outer axis line style={${1:options}}\",\n      \"x axis line style={${1:options}}\",\n      \"y axis line style={${1:options}}\",\n      \"z axis line style={${1:options}}\",\n      \"separate axis lines\",\n      \"axis x line shift=\",\n      \"axis y line shift=\",\n      \"axis z line shift=\",\n      \"axis line shift=\",\n      \"axis x discontinuity=${1|crunch,parallel,none|}\",\n      \"axis y discontinuity=${1|crunch,parallel,none|}\",\n      \"axis z discontinuity=${1|crunch,parallel,none|}\",\n      \"xtickmin=${1:coord}\",\n      \"ytickmin=${1:coord}\",\n      \"ztickmin=${1:coord}\",\n      \"xtickmax=${1:coord}\",\n      \"ytickmax=${1:coord}\",\n      \"ztickmax=${1:coord}\",\n      \"hide x axis\",\n      \"hide y axis\",\n      \"hide z axis\",\n      \"hide axis\",\n      \"colorbar\",\n      \"colorbar right\",\n      \"colorbar left\",\n      \"colorbar horizontal\",\n      \"colorbar source\",\n      \"colorbar style={${1:options}}\",\n      \"colorbar/width=\",\n      \"colorbar/draw/.code={${1:code}}\",\n      \"colorbar sampled\",\n      \"colorbar sampled={${1:options}}\",\n      \"colorbar sampled line\",\n      \"colorbar sampled line={${1:options}}\",\n      \"colorbar as legend\",\n      \"colorbar to name=\",\n      \"width=\",\n      \"height=\",\n      \"scale only axis\",\n      \"x=\",\n      \"y=\",\n      \"z=\",\n      \"x={${1:(x,y)}}\",\n      \"y={${1:(x,y)}}\",\n      \"z={${1:(x,y)}}\",\n      \"xmode=${1|normal,linear,log|}\",\n      \"ymode=${1|normal,linear,log|}\",\n      \"zmode=${1|normal,linear,log|}\",\n      \"x dir=${1|normal,reverse|}\",\n      \"y dir=${1|normal,reverse|}\",\n      \"z dir=${1|normal,reverse|}\",\n      \"axis equal\",\n      \"axis equal image\",\n      \"unit vector ratio={${1:rx ry rz}}\",\n      \"unit vector ratio*={${1:rx ry rz}}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"x post scale=${1:scale}\",\n      \"y post scale=${1:scale}\",\n      \"z post scale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"max space between ticks=${1:integer}\",\n      \"try min ticks=${1:integer}\",\n      \"normalsize\",\n      \"small\",\n      \"footnotesize\",\n      \"tiny\",\n      \"scale mode=${1|auto,none,stretch to fill,scale uniformly|}\",\n      \"scale uniformly strategy=${1|auto,units only,change vertical limits,change horizontal limits|}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"view={${1:azimuth}}{${2:elevation}}\",\n      \"view/az=${1:azimuth}\",\n      \"view/h=${1:azimuth}\",\n      \"view/el=${1:elevation}\",\n      \"view/v=${1:elevation}\",\n      \"plot box ratio={${1:xstretch ystretch zstretch}}\",\n      \"3d box=${1|background,complete,complete*|}\",\n      \"error bars/x dir=${1|none,plus,minus,both|}\",\n      \"error bars/y dir=${1|none,plus,minus,both|}\",\n      \"error bars/z dir=${1|none,plus,minus,both|}\",\n      \"error bars/x fixed=${1:value}\",\n      \"error bars/y fixed=${1:value}\",\n      \"error bars/z fixed=${1:value}\",\n      \"error bars/x fixed relative=${1:percent}\",\n      \"error bars/y fixed relative=${1:percent}\",\n      \"error bars/z fixed relative=${1:percent}\",\n      \"error bars/x explicit\",\n      \"error bars/y explicit\",\n      \"error bars/z explicit\",\n      \"error bars/x explicit relative\",\n      \"error bars/y explicit relative\",\n      \"error bars/z explicit relative\",\n      \"error bars/error mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"error bars/error mark options={${1:options}}\",\n      \"error bars/error bar style={${1:options}}\",\n      \"log ticks with fixed point\",\n      \"log plot exponent style={${1:options}}\",\n      \"log identify minor tick positions\",\n      \"log number format code/.code={${1:code}}\",\n      \"log base 10 number format code/.code={${1:code}}\",\n      \"log number format basis/.code={${1:code}}\",\n      \"xmin=${1:coord}\",\n      \"ymin=${1:coord}\",\n      \"zmin=${1:coord}\",\n      \"xmax=${1:coord}\",\n      \"ymax=${1:coord}\",\n      \"zmax=${1:coord}\",\n      \"min=${1:coord}\",\n      \"max=${1:coord}\",\n      \"clip xlimits\",\n      \"clip ylimits\",\n      \"clip zlimits\",\n      \"clip limits\",\n      \"enlarge x limits={${1:enlarge options}}\",\n      \"enlarge y limits={${1:enlarge options}}\",\n      \"enlarge z limits={${1:enlarge options}}\",\n      \"enlargelimits=${1:value}\",\n      \"enlargelimits respects figure size\",\n      \"log origin x=${1|0,infty|}\",\n      \"log origin y=${1|0,infty|}\",\n      \"log origin z=${1|0,infty|}\",\n      \"log origin=${1|0,infty|}\",\n      \"update limits\",\n      \"xtick distance=${1:number}\",\n      \"ytick distance=${1:number}\",\n      \"ztick distance=${1:number}\",\n      \"xtick=${2|data,{${1:coord list}}|}\",\n      \"ytick=${2|data,{${1:coord list}}|}\",\n      \"ztick=${2|data,{${1:coord list}}|}\",\n      \"minor x tick num=${1:number}\",\n      \"minor y tick num=${1:number}\",\n      \"minor z tick num=${1:number}\",\n      \"minor tick num=${1:number}\",\n      \"minor xtick=${2|data,{${1:coord list}}|}\",\n      \"minor ytick=${2|data,{${1:coord list}}|}\",\n      \"minor ztick=${2|data,{${1:coord list}}|}\",\n      \"minor tick=${2|data,{${1:coord list}}|}\",\n      \"extra x ticks={${1:coord list}}\",\n      \"extra y ticks={${1:coord list}}\",\n      \"extra z ticks={${1:coord list}}\",\n      \"xtickten={${1:exponent base 10 list}}\",\n      \"ytickten={${1:exponent base 10 list}}\",\n      \"ztickten={${1:exponent base 10 list}}\",\n      \"xticklabels={${1:label list}}\",\n      \"yticklabels={${1:label list}}\",\n      \"zticklabels={${1:label list}}\",\n      \"xticklabel=${1:command}\",\n      \"yticklabel=${1:command}\",\n      \"zticklabel=${1:command}\",\n      \"xticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"yticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"zticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"extra x tick label={${1:code}}\",\n      \"extra y tick label={${1:code}}\",\n      \"extra z tick label={${1:code}}\",\n      \"extra x tick labels={${1:label list}}\",\n      \"extra y tick labels={${1:label list}}\",\n      \"extra z tick labels={${1:label list}}\",\n      \"x tick label as interval\",\n      \"y tick label as interval\",\n      \"z tick label as interval\",\n      \"xminorticks\",\n      \"yminorticks\",\n      \"zminorticks\",\n      \"xmajorticks\",\n      \"ymajorticks\",\n      \"zmajorticks\",\n      \"ticks=${1|minor,major,both,none|}\",\n      \"xtick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ytick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ztick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"tick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"xticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"yticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"zticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"ticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"xtick align=${1|inside,center,outside|}\",\n      \"ytick align=${1|inside,center,outside|}\",\n      \"ztick align=${1|inside,center,outside|}\",\n      \"tick align=${1|inside,center,outside|}\",\n      \"xticklabel shift=\",\n      \"yticklabel shift=\",\n      \"zticklabel shift=\",\n      \"ticklabel shift=\",\n      \"typeset ticklabels with strut\",\n      \"scaled ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled x ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled y ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled z ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"xtick scale label code/.code={${1:code}}\",\n      \"ytick scale label code/.code={${1:code}}\",\n      \"ztick scale label code/.code={${1:code}}\",\n      \"tick scale label code/.code={${1:code}}\",\n      \"tick scale binop=${1:TeX math operator}\",\n      \"scale ticks below exponent=${1:exponent}\",\n      \"scale ticks above exponent=${1:exponent}\",\n      \"max space between ticks=${1:number}\",\n      \"try min ticks=${1:number}\",\n      \"try min ticks log=${1:number}\",\n      \"tickwidth=\",\n      \"major tick length=\",\n      \"subtickwidth=\",\n      \"minor tick length=\",\n      \"log basis x=${1:number}\",\n      \"log basis y=${1:number}\",\n      \"log basis z=${1:number}\",\n      \"hide obscured x ticks\",\n      \"hide obscured y ticks\",\n      \"hide obscured z ticks\",\n      \"xminorgrids\",\n      \"yminorgrids\",\n      \"zminorgrids\",\n      \"xmajorgrids\",\n      \"ymajorgrids\",\n      \"zmajorgrids\",\n      \"grid=${1|minor,major,both,none|}\",\n      \"allow reversal of rel axis cs\",\n      \"pos=${1:fraction}\",\n      \"sloped\",\n      \"allow upside down\",\n      \"pos segment=${1:segment index}\",\n      \"forget plot style={${1:options}}\",\n      \"label style={${1:options}}\",\n      \"x label style={${1:options}}\",\n      \"y label style={${1:options}}\",\n      \"z label style={${1:options}}\",\n      \"xlabel style={${1:options}}\",\n      \"ylabel style={${1:options}}\",\n      \"zlabel style={${1:options}}\",\n      \"title style={${1:options}}\",\n      \"3d box foreground style={${1:options}}\",\n      \"colorbar sampled line style={${1:options}}\",\n      \"tick style={${1:options}}\",\n      \"minor tick style={${1:options}}\",\n      \"major tick style={${1:options}}\",\n      \"tick label style={${1:options}}\",\n      \"ticklabel style={${1:options}}\",\n      \"x tick label style={${1:options}}\",\n      \"y tick label style={${1:options}}\",\n      \"z tick label style={${1:options}}\",\n      \"xticklabel style={${1:options}}\",\n      \"yticklabel style={${1:options}}\",\n      \"zticklabel style={${1:options}}\",\n      \"x tick scale label style={${1:options}}\",\n      \"y tick scale label style={${1:options}}\",\n      \"z tick scale label style={${1:options}}\",\n      \"xtick style={${1:options}}\",\n      \"ytick style={${1:options}}\",\n      \"ztick style={${1:options}}\",\n      \"minor x tick style={${1:options}}\",\n      \"minor y tick style={${1:options}}\",\n      \"minor z tick style={${1:options}}\",\n      \"major x tick style={${1:options}}\",\n      \"major y tick style={${1:options}}\",\n      \"major z tick style={${1:options}}\",\n      \"extra x tick style={${1:options}}\",\n      \"extra y tick style={${1:options}}\",\n      \"extra z tick style={${1:options}}\",\n      \"extra tick style={${1:options}}\",\n      \"grid style={${1:options}}\",\n      \"minor grid style={${1:options}}\",\n      \"major grid style={${1:options}}\",\n      \"x grid style={${1:options}}\",\n      \"y grid style={${1:options}}\",\n      \"z grid style={${1:options}}\",\n      \"minor x grid style={${1:options}}\",\n      \"minor y grid style={${1:options}}\",\n      \"minor z grid style={${1:options}}\",\n      \"major x grid style={${1:options}}\",\n      \"major y grid style={${1:options}}\",\n      \"major z grid style={${1:options}}\",\n      \"at={${1:(x,y)}}\",\n      \"anchor=${1:name}\",\n      \"clip\",\n      \"clip marker paths\",\n      \"clip bounding box=${1|default tikz,upper bound|}\",\n      \"clip mode=${1|global,individual|}\",\n      \"x coord trafo/.code={${1:code}}\",\n      \"y coord trafo/.code={${1:code}}\",\n      \"z coord trafo/.code={${1:code}}\",\n      \"x coord inv trafo/.code={${1:code}}\",\n      \"y coord inv trafo/.code={${1:code}}\",\n      \"z coord inv trafo/.code={${1:code}}\",\n      \"symbolic x coords={${1:dictionary}}\",\n      \"symbolic y coords={${1:dictionary}}\",\n      \"symbolic z coords={${1:dictionary}}\",\n      \"x filter/.expression={${1:math expr}}\",\n      \"y filter/.expression={${1:math expr}}\",\n      \"z filter/.expression={${1:math expr}}\",\n      \"x filter/.append expression={${1:math expr}}\",\n      \"y filter/.append expression={${1:math expr}}\",\n      \"z filter/.append expression={${1:math expr}}\",\n      \"x filter/.code={${1:code}}\",\n      \"y filter/.code={${1:code}}\",\n      \"z filter/.code={${1:code}}\",\n      \"filter point/.code={${1:code}}\",\n      \"pre filter/.code={${1:code}}\",\n      \"skip coords between index={${1:begin}}{${2:end}}\",\n      \"each nth point=${1:integer}\",\n      \"restrict x to domain=${1:min:max}\",\n      \"restrict y to domain=${1:min:max}\",\n      \"restrict z to domain=${1:min:max}\",\n      \"restrict x to domain*=${1:min:max}\",\n      \"restrict y to domain*=${1:min:max}\",\n      \"restrict z to domain*=${1:min:max}\",\n      \"restrict expr to domain={${1:expr}}{${2:min:max}}\",\n      \"restrict expr to domain*={${1:expr}}{${2:min:max}}\",\n      \"filter discard warning\",\n      \"data cs=${1|cart,polar,polarrad|}\",\n      \"disablelogfilter\",\n      \"disabledatascaling\",\n      \"execute at begin plot={${1:commands}}\",\n      \"execute at end plot={${1:commands}}\",\n      \"execute at begin axis={${1:commands}}\",\n      \"execute at end axis={${1:commands}}\",\n      \"execute at begin plot visualization={${1:commands}}\",\n      \"execute at end plot visualization={${1:commands}}\",\n      \"forget plot\",\n      \"before end axis/.code={${1:code}}\",\n      \"after end axis/.code={${1:code}}\",\n      \"axis on top\",\n      \"visualization depends on=${1:\\\\macro}\",\n      \"visualization depends on=${1:expression} \\\\as ${2:\\\\macro}\",\n      \"visualization depends on=value ${1:content} \\\\as ${2:\\\\macro}\",\n      \"set layers=${1|none,standard,axis on top|}\",\n      \"on layer=${1:layer name}\",\n      \"mark layer=${2|auto,like plot,${1:layer name}|}\",\n      \"cell picture=${1|true,false,if necessary|}\",\n      \"enable tick line clipping\"\n    ],\n    \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\": [\n      \"clickable\",\n      \"colorbrewer\",\n      \"colormaps\",\n      \"dateplot\",\n      \"decorations.softclip\",\n      \"external\",\n      \"fillbetween\",\n      \"groupplots\",\n      \"patchplots\",\n      \"polar\",\n      \"smithchart\",\n      \"statistics\",\n      \"ternary\",\n      \"units\"\n    ],\n    \"\\\\pgfplotscolormaptodatafile\": [\n      \"output each nth=${1:integer}\",\n      \"output format=${1|csv,native|}\"\n    ],\n    \"\\\\pgfplotsdeclarepointmetasource\": [\n      \"assign=\",\n      \"initfor=\",\n      \"activate=\",\n      \"LUA class=\",\n      \"tostring=\",\n      \"explicitinput=\",\n      \"issymbolic=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/physics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Bqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"Im\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Im{${1:expression}}\"\n      },\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"PV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PV{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"Pmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"Pr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Pr(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"Probability\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Res\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Res[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"Re\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Re{${1:expression}}\"\n      },\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"Residue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tr\"\n    },\n    {\n      \"name\": \"Trace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absolutevalue{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"acomm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acomm*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acomm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acomm{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acommutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acommutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"acosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"acotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acsc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acsc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acsc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acsc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"admat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"admat{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"anticommutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anticommutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"antidiagonalmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antidiagonalmatrix{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccsc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccsc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccsc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccsc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arcsec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arcsec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arcsin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arcsin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arctan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arctan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arctangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argclose\"\n    },\n    {\n      \"name\": \"argclose*\"\n    },\n    {\n      \"name\": \"argopen\"\n    },\n    {\n      \"name\": \"argopen*\"\n    },\n    {\n      \"name\": \"asec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"asec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"asec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"asec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"asecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"asin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"asin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"asin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"asine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"atan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"atan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"atan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"atangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"bqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bra*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"braces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"braces{${1:ldelim}}{${2:rdelim}}{${3:expression}}\"\n      }\n    },\n    {\n      \"name\": \"braket*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braket{${1:expression1}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"colcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comm*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"comm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comm{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"commutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"commutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cosh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cosh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coth\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"coth(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"coth\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"coth[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"crossproduct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"csc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"csc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"csc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"csch\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"csch(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"csch\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"csch[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"curl(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"curl*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"curl*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"curl[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curl{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"dd(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dd[${2:power}]{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dd{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"derivative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"derivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"det\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"det(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"determinant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagonalmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagonalmatrix{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"differential\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"div(${1:expression})\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"div*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"div*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"div*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"div*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"div[${1:expression}]\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"div{${1:expression}}\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"divergence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divergence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"divergence{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"divisionsymbol\"\n    },\n    {\n      \"name\": \"dmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dmat{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dotproduct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dv*{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dv[${3:power}]{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"dv{${1:expression1}}(${2:expression2})\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dyad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dyad*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"dyad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dyad{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dyad\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dyad{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"erf\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"erf(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"ev**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev**{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ev*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ev{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"(expression|_{}^{}\",\n        \"snippet\": \"eval(expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(expression|_{}^{}\",\n        \"snippet\": \"eval*(expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[expression|_{}^{}\",\n        \"snippet\": \"eval*[expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"eval*{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[expression|_{}^{}\",\n        \"snippet\": \"eval[expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"eval{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"evaluated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"evaluated{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"exp(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expectationvalue{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"exponential\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expval*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"expval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expval{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"expval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expval{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"fbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fbraces{${1:ldelim}}{${2:rdelim}}{${3:symbol}}{${4:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv*{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"fdv{${1:expression}}(${2:function})\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"flatfrac\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"flatfrac{${1:expression1}}(${2:expression2})\"\n      }\n    },\n    {\n      \"name\": \"functionalderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"functionalderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"grad(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"grad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"grad*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"grad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grad*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grad[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grad{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"gradient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradient{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"homework\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypsecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypsine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyptangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identitymatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"identitymatrix{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"imaginary\"\n    },\n    {\n      \"name\": \"imat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imat{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"innerproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerproduct{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ip*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ip*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ip{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ket*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"laplacian(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"laplacian*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"laplacian*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"laplacian*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"laplacian*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"laplacian[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laplacian{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ln\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ln(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"log\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"log(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"logarithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lparen\",\n      \"unusual\": true,\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"matrixdeterminant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixdeterminant{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixelement*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixelement*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixelement{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"matrixquantity(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"matrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixquantity{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"matrixtoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdet{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"mel**\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel**{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mel*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\admat{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\antidiagonalmatrix{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\diagonalmatrix{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\dmat[${2:matrix element}]{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\dmat{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\identitymatrix{${1:number}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\imat{${1:number}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\paulimatrix{${1:n}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\pmat{${1:n}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmat*{${1:matrix element star for element indices }}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmat{${1:matrix element}}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmatrix{${1:matrix element}}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\zeromatrix{${1:n}}{${2:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\zmat{${1:n}}{${2:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"mqty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty*(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mqty[${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}]\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"mqty|${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}|\"\n      }\n    },\n    {\n      \"name\": \"naturallogarithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"op*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"op*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"op{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"opbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"opbraces{${1:operator}}(${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"order*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ordersymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outerproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"outerproduct{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"partialderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partialderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"paulimatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paulimatrix{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"paulixmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pauliymatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paulizmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pb*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pb{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pderivative{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv*{${1:f}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdv[${3:power}]{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdv{${1:f}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmat{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"pmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"poissonbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poissonbracket{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"principalvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"principalvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"principalvalue{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"qall\"\n    },\n    {\n      \"name\": \"qall*\"\n    },\n    {\n      \"name\": \"qand\"\n    },\n    {\n      \"name\": \"qand*\"\n    },\n    {\n      \"name\": \"qas\"\n    },\n    {\n      \"name\": \"qas*\"\n    },\n    {\n      \"name\": \"qassume\"\n    },\n    {\n      \"name\": \"qassume*\"\n    },\n    {\n      \"name\": \"qc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qc{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qcc\"\n    },\n    {\n      \"name\": \"qcc*\"\n    },\n    {\n      \"name\": \"qcomma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qcomma{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qelse\"\n    },\n    {\n      \"name\": \"qelse*\"\n    },\n    {\n      \"name\": \"qeven\"\n    },\n    {\n      \"name\": \"qeven*\"\n    },\n    {\n      \"name\": \"qfor\"\n    },\n    {\n      \"name\": \"qfor*\"\n    },\n    {\n      \"name\": \"qgiven\"\n    },\n    {\n      \"name\": \"qgiven*\"\n    },\n    {\n      \"name\": \"qif\"\n    },\n    {\n      \"name\": \"qif*\"\n    },\n    {\n      \"name\": \"qin\"\n    },\n    {\n      \"name\": \"qin*\"\n    },\n    {\n      \"name\": \"qinteger\"\n    },\n    {\n      \"name\": \"qinteger*\"\n    },\n    {\n      \"name\": \"qlet\"\n    },\n    {\n      \"name\": \"qlet*\"\n    },\n    {\n      \"name\": \"qodd\"\n    },\n    {\n      \"name\": \"qodd*\"\n    },\n    {\n      \"name\": \"qor\"\n    },\n    {\n      \"name\": \"qor*\"\n    },\n    {\n      \"name\": \"qotherwise\"\n    },\n    {\n      \"name\": \"qotherwise*\"\n    },\n    {\n      \"name\": \"qq*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq*{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qqtext*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qqtext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qqtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qqtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qsince\"\n    },\n    {\n      \"name\": \"qsince*\"\n    },\n    {\n      \"name\": \"qthen\"\n    },\n    {\n      \"name\": \"qthen*\"\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"qty(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qty[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"qty|${1:expression}|\"\n      }\n    },\n    {\n      \"name\": \"quantity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\"\n    },\n    {\n      \"name\": \"qunless*\"\n    },\n    {\n      \"name\": \"qusing\"\n    },\n    {\n      \"name\": \"qusing*\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"real\"\n    },\n    {\n      \"name\": \"rowcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rparen\",\n      \"unusual\": true,\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"sbmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"sec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"secant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sech\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sech(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sech\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sech[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"sine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sinh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sinh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"smallmatrixdeterminant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallmatrixdeterminant{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smallmatrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallmatrixquantity{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smdet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smdet{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"smqty({${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}})\"\n      }\n    },\n    {\n      \"name\": \"smqty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"smqty*({${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}})\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smqty[${2:{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}}]\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"smqty|${2:{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}}|\"\n      }\n    },\n    {\n      \"name\": \"sPmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sPmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"spmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"svmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"tangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tanh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tanh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"tr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tr(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"trace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"trigbraces{${1:operator}}(${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"trigopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"va*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"va*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"va\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"va{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"var(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"var{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"varE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"variation{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vb*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vb{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vdot\"\n    },\n    {\n      \"name\": \"vectorarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorarrow{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vectorbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorbold{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vectorunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorunit{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vev{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"vnabla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vu*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vu{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"xmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmat{${1:matrix element}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"xmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmatrix{${1:matrix element}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"zeromatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zeromatrix{${1:n}}{${2:m}}\"\n      }\n    },\n    {\n      \"name\": \"zmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zmat{${1:n}}{${2:m}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/physics#c\": [\n      \"trig\",\n      \"notrig\",\n      \"uprightdiff\",\n      \"italicdiff\",\n      \"bolddel\",\n      \"arrowdel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/physics#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/physics2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usephysicsmodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usephysicsmodule{${1:modules%keyvals}}\",\n        \"keys\": [\n          \"\\\\usephysicsmodule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usephysicsmodule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usephysicsmodule[${2:options}]{${1:modules%keyvals}}\",\n        \"keys\": [\n          \"\\\\usephysicsmodule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"ketbra|${1:subformula1>optional<subformula2}|\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"ketbra*|${1:subformula1>optional<subformula2}|\"\n      }\n    },\n    {\n      \"name\": \"diagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"diagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"diagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"bdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"bdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Bdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Bdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Vdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Vdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"doublecross\"\n    },\n    {\n      \"name\": \"doubledot\"\n    },\n    {\n      \"name\": \"xmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"xmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"xmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"pxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"bxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Bxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"Bxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Bxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"vxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"vxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Vxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"Vxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Vxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"peval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"beval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"order[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplacian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Res\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"res\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qcc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qcc*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qotherwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qgive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qusing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qassume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qsince\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qlet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usephysicsmodule\": [\n      \"ab.braket\",\n      \"ab.legacy\",\n      \"ab\",\n      \"bm-um.legacy\",\n      \"braket\",\n      \"diagmat\",\n      \"doubleprod\",\n      \"nabla.legacy\",\n      \"op.legacy\",\n      \"qtext.legacy\",\n      \"xmat\"\n    ],\n    \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\": [\n      \"showtop=${1:rows}\",\n      \"showleft=${1:columns}\",\n      \"format=${1:format code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pifont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ding{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingfill{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pifont{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"Pisymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pisymbol{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pifill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pifill{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Piline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Piline{${1:family}}{${2:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dinglist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingautolist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pilist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Piautolist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/placeins.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FloatBarrier\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/placeins#c\": [\n      \"section\",\n      \"above\",\n      \"below\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/placeins#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/psfrag.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psfrag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfrag{${1:tag}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag\",\n      \"arg\": {\n        \"format\": \"{}[][][][]{}\",\n        \"snippet\": \"psfrag{${1:tag}}[${3:posn}][${4:psposn}][${5:scale}][${6:rot}]{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfrag*{${1:tag}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag*\",\n      \"arg\": {\n        \"format\": \"{}[][][][]{}\",\n        \"snippet\": \"psfrag*{${1:tag}}[${3:posn}][${4:psposn}][${5:scale}][${6:rot}]{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfragscanon\"\n    },\n    {\n      \"name\": \"psfragscanoff\"\n    },\n    {\n      \"name\": \"psfragdebugon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psfragdebugoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psfrags\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/psfrag#c\": [\n      \"scanall\",\n      \"2emode\",\n      \"209mode\",\n      \"debugshow\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/psfrag#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pst-3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psAffinTransform\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psAffinTransform[${3:options%keyvals}]{${1:transformation matrix}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psAffinTransform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psAffinTransform{${1:transformation matrix}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pssetzlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetzlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psshadow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadow[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadow{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstilt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstilt[${3:options%keyvals}]{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psTilt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psTilt[${3:options%keyvals}]{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstilt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstilt{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psTilt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psTilt{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeDput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ThreeDput(${2:x},${3:y},${4:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeDput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"ThreeDput[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:stuff}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-blur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psblurbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psblurbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psblurbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psblurbox[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ifpsblur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psblurtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psblurfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-char.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"endpscharclip\"\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip*[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath*[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath*{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"charclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-coil.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscoil(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscoil{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscoil[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscoil[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscoil*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscoil*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscoil*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscoil*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psCoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCoil{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCoil[${3:options%keyvals}]{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCoil*{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCoil*[${3:options%keyvals}]{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pszigzag(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pszigzag{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pszigzag[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pszigzag[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pszigzag*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pszigzag*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pszigzag*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pszigzag*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pssin(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pssin{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pssin[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pssin[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pssin*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pssin*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pssin*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pssin*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncsin{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncsin{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncsin[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncsin[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncsin*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncsin*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncsin*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncsin*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcsin{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pcsin{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pcsin[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pcsin[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcsin*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pcsin*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pcsin*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pcsin*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psAltCoil(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psAltCoil{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psAltCoil[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psAltCoil[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-eps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TeXtoEPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endTeXtoEPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTtoEPS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PSTtoEPS{${1:file%file}}{${2:graphics objects}}\"\n      }\n    },\n    {\n      \"name\": \"PSTtoEPS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PSTtoEPS[${3:options%keyvals}]{${1:file%file}}{${2:graphics objects}}\",\n        \"keys\": [\n          \"\\\\PSTtoEPS\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"TeXtoEPS\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\PSTtoEPS\": [\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bburx=\",\n      \"makeeps=${1|none,new,all,all*|}\",\n      \"checkfile\",\n      \"headerfile=${1:file name}\",\n      \"headers=${1|none,all,user|}\",\n      \"GraphicsRef={${1:x,y}}\",\n      \"Translation={${1:x,y}}\",\n      \"Rotation=${1:angle}\",\n      \"Scale=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-fill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psboxfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psboxfill{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PstTiling\"\n    },\n    {\n      \"name\": \"txfillDict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFillSetDefaults\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-fill#c\": [\n      \"tiling\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-fill#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pst-node.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"actualscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actualscale{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"algparnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"algparnode{${1:t}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"AplusB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"AplusB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowNotch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ArrowNotch{${1:node name}}{${2:node index}}{${3:direction}}{${4:notch}}\"\n      }\n    },\n    {\n      \"name\": \"AtoB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"AtoB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Circlenode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Circlenode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Circlenode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Circlenode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"circlenode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"circlenode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"circlenode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"circlenode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Cnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnode(${3:x},${4:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Cnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnode*(${3:x},${4:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Cnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnode*[${3:options%keyvals}](${4:x},${5:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Cnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnode[${3:options%keyvals}](${4:x},${5:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"Cnodeput(${4:x},${5:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnodeput(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cnodeput(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"Cnodeput*(${4:x},${5:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnodeput*(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cnodeput*(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"Cnodeput*[${4:options%keyvals}](${5:x},${6:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnodeput*[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"Cnodeput*[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"cnodeput*[${4:options%keyvals}]{${1:angle}}(${5:x},${6:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"cnodeput*{${1:angle}}(${4:x},${5:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"Cnodeput[${4:options%keyvals}](${5:x},${6:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnodeput[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"Cnodeput[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"cnodeput[${4:options%keyvals}]{${1:angle}}(${5:x},${6:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"cnodeput{${1:angle}}(${4:x},${5:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"curvepnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"curvepnode{${1:tval}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"curvepnodes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"curvepnodes{${1:tmin}}{${2:tmax}}{${3:expr in t%definition}}{${4:node root}}\"\n      }\n    },\n    {\n      \"name\": \"defaultvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defaultvalue{${1:cmd}}{${2:val}}\"\n      }\n    },\n    {\n      \"name\": \"dianode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dianode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dianode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dianode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dianode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"dotnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"dotnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"dotnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"dotnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"endpsmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnpnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fnpnode{${1:xval}}{${2:expr in x%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"fnpnodes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fnpnodes{${1:xmin}}{${2:xmax}}{${3:expr in x%definition}}{${4:node root}}\"\n      }\n    },\n    {\n      \"name\": \"getnodelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getnodelist{${1:node root}}{${2:next command}}\"\n      }\n    },\n    {\n      \"name\": \"hasparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hasequal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hascolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeShortNab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeShortNab{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortTab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeShortTab{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortTablr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeShortTablr{${1:char1}}{${2:char2}}{${3:char3}}{${4:char4}}\"\n      }\n    },\n    {\n      \"name\": \"midAB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"midAB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"naput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nbput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nbput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangle*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangle*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangle*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangle*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangle[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangle[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangle{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangle{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangles*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangles*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangles*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangles*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangles[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangles[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangles{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangles{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncarc*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarc*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncarc*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarc*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncarc[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarc[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncarc{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarc{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarcbox*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarcbox*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarcbox[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarcbox{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncbar*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbar*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncbar*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbar*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncbar[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbar[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncbar{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbar{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbarr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbarr[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbarr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbarr{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbox*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbox*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbox[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbox{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccircle*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccircle*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccircle*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccircle*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccircle[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccircle[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccircle{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccircle{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccurve*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccurve*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccurve*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccurve*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccurve[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccurve[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccurve{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccurve{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiagg*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiagg*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiagg*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiagg*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiagg[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiagg[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiagg{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiagg{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncline*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncLine*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncline*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncLine*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncline*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncLine*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncline*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncLine*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncline[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncLine[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncline[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncLine[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncline{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncLine{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncline{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncLine{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nclines[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nclines[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nclines{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nclines{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncloop*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncloop*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncloop*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncloop*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncloop[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncloop[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncloop{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncloop{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ncput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ncput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nlput\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nlput(${3:A})(${4:B}){${1:distance%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"nlput\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"nlput[${3:options%keyvals}](${4:A})(${5:B}){${1:distance%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"nodenameA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodenameB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodex{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"nodexn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nodexn{${1:expr%definition}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"normalvec\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"normalvec(${2:coords}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"nput*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nput*[${4:options%keyvals}]{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nput*{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nput[${4:options%keyvals}]{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nput{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ovalnode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ovalnode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ovalnode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ovalnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"parsenodexn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"parsenodexn{${1:arg1}}(${3:arg2}){${2:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangle(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangle*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangle*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangle*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangle*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangle[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangle[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangle{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangles*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangles*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangles*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangles[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangles[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles{${1:nodeA}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarc(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarc*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarc*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcarc*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcarc*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarc[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcarc[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcarc{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarcbox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarcbox*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarcbox*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarcbox[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbar(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbar*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbar*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcbar*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcbar*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbar[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcbar[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcbar{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbox*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbox*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbox[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pccurve(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pccurve*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pccurve*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pccurve*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pccurve*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pccurve[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pccurve[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pccurve{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiag(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiag*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiag*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcdiag*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcdiag*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiag[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcdiag[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcdiag{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiagg\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiagg(${1:nodeA})(${2:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"pcdiagg\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiagg[${1:options%keyvals}](${2:nodeA})(${3:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcline(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcline*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcline*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcline*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcline*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcline[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcline[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcline{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcloop(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcloop*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcloop*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcloop*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcloop*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcloop[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcloop[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcloop{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pnode[${2:offset}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"polyIntersections\",\n      \"arg\": {\n        \"format\": \"{}{}()(){}{}\",\n        \"snippet\": \"polyIntersections{${1:name1}}{${2:name2}}(${5:A})(${6:B}){${3:P}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"pscloseNodeFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psDefBoxNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psDefBoxNodes{${1:node name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psDefPSPNodes\"\n    },\n    {\n      \"name\": \"psGetCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetCenter{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetEdgeA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGetEdgeA{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"psGetEdgeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGetEdgeB{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeCenter{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeEdgeA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeEdgeA{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeEdgeB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeEdgeB{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNode\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"psLCNode[${4:P1}]{${1:val1}}[${5:P2}]{${2:val2}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psLCNode{${1:val1}}{${2:val2}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNodeVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psLCNodeVar(${2:nodeA})(${3:nodeB})(${4:factorA},${5:factorB}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLDNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psLDNode(${3:A})(${4:B}){${1:distance%l}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLDNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psLDNode[${3:options%keyvals}](${4:A})(${5:B}){${1:distance%l}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"psLNode[${3:P1}][${4:P2}]{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psLNode[${3:P1}]{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psLNode{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psmatrix[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psncurve(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psncurve[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psncurve[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psncurve{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnccurve(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnccurve[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnccurve[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnccurve{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnline(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnline[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnline[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnline{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psnode(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psnode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psnode[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnpolygon(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnpolygon[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnpolygon[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnpolygon{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psopenNodeFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psparnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psparnode{${1:t}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLineVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psRelLineVar(${2:nodeA})(${3:nodeB})(${4:radius;angle}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"psRelNode[${3:P0}][${4:P1}]{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psRelNode[${3:P0}]{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psRelNode{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNodeVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psRelNodeVar(${2:nodeA})(${3:nodeB})(${4:radius;angle}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psspan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psspan{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pstiterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psxline(${3:basept}){${1:nodeexpr1%definition}}{${2:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psxline[${3:options%keyvals}](${4:basept}){${1:nodeexpr1%definition}}{${2:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"psxline[${4:options%keyvals}]{${1:arrows}}(${5:basept}){${2:nodeexpr1%definition}}{${3:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"psxline{${1:arrows}}(${4:basept}){${2:nodeexpr1%definition}}{${3:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rhombus\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"rhombus{${1:edge length}}(${4:A})(${5:B}){${2:C}}{${3:D}}\"\n      }\n    },\n    {\n      \"name\": \"rnode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rnode[${3:refpoint}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Rnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"saveDataAsNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveDataAsNodes{${1:data}}{${2:node prefix}}\"\n      }\n    },\n    {\n      \"name\": \"shownode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"shownode(${1:P})\"\n      }\n    },\n    {\n      \"name\": \"taput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"taput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"taput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tbput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tbput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"testAlg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tlput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tlput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trinode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trinode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trinode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trinode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trinode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tvput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tvput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tvput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tvput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"unbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unbrace{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psmatrix\"\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-node#c\": [\n      \"97\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-node#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pst-plot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dataplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dataplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"dataplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dataplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"endpsgraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fileplot[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fileplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileplot{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifSpecialLabelsDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listplot[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listplot{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"parametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"parametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"parametricplot{${1:tmin}}{${2:tmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parametricplot{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psaxes(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()[][]\",\n        \"snippet\": \"psaxes(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})[${1:Xlabel,Xangle}][${2:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psaxes[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]()()()[][]\",\n        \"snippet\": \"psaxes[${1:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2})[${2:Xlabel,Xangle}][${3:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psaxes[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]{}()()()[][]\",\n        \"snippet\": \"psaxes[${2:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2})[${3:Xlabel,Xangle}][${4:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psaxes{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()()[][]\",\n        \"snippet\": \"psaxes{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2})[${2:Xlabel,Xangle}][${3:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psBoxplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psBoxplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psBoxplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psBoxplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psCoordinates\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psCoordinates(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psCoordinates\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psCoordinates[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psdataplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdataplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psdataplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdataplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psfileplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psfileplot[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psfileplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psfileplot{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psFixpoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psFixpoint[${4:options}]{${1:x0}}{${2:f(${5:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psFixpoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psFixpoint{${1:x0}}{${2:f(${4:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psgraph(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psgraph[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"psgraph[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"psgraph{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraphLLx\"\n    },\n    {\n      \"name\": \"psgraphLLy\"\n    },\n    {\n      \"name\": \"psgraphURx\"\n    },\n    {\n      \"name\": \"psgraphURy\"\n    },\n    {\n      \"name\": \"pshlabel\"\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pslegend[${2:reference}](${3:xoffset},${4:yoffset}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pslegend[${2:reference}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pslegend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslistplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pslistplot[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pslistplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pslistplot{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psNewton[${4:options}]{${1:x_0}}{${2:f(${5:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psNewton[${4:options}]{${1:x0}}{${2:f(${6:x})}}[${5:f'(${7:x})}]{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psNewton{${1:x0}}{${2:f(${5:x})}}[${4:f'(${6:x})}]{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psNewton{${1:x0}}{${2:f(${4:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psparametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psparametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psparametricplot{${1:tmin}}{${2:tmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psparametricplot{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psplot[${4:options%keyvals}]{${1:xmin}}{${2:xmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psplot[${4:options%keyvals}]{${1:xmin}}{${2:xmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psplot{${1:xmin}}{${2:xmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psplot{${1:xmin}}{${2:xmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psplotinit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psplotstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPutXLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPutXLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psPutYLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPutYLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psreadDataColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"psreadDataColumn[${5:options%keyvals}]{${1:colNo}}{${2:delim}}{${3:macro%cmd}}{${4:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psreadDataColumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"psreadDataColumn{${1:colNo}}{${2:delim}}{${3:macro%cmd}}{${4:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psResetPlotValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psrotatebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psrotatebox{${1:angle}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"pstRadUnit\"\n    },\n    {\n      \"name\": \"pstRadUnitInv\"\n    },\n    {\n      \"name\": \"pstScalePoints\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstScalePoints(${3:xscale},${4:yscale}){${1:xPS}}{${2:yPS}}\"\n      }\n    },\n    {\n      \"name\": \"pstXPSScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstXScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstYPSScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstYScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psVectorfield\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psVectorfield(${2:%<x0},${3:y0%>})(${4:%<x1},${5:y1%>}){${1:f'(${6:x},${7:y})}}\"\n      }\n    },\n    {\n      \"name\": \"psVectorfield\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psVectorfield[${2:options}](${3:%<x0},${4:y0%>})(${5:%<x1},${6:y1%>}){${1:f'(${7:x},${8:y})}}\"\n      }\n    },\n    {\n      \"name\": \"psvlabel\"\n    },\n    {\n      \"name\": \"psxlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psxsubticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psxTick(${2:x value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psxTick[${2:options%keyvals}](${3:x value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psxTick[${3:options%keyvals}]{${1:rotation}}(${4:x value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psxTick{${1:rotation}}(${3:x value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psylabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psysubticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psyTick(${2:y value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psyTick[${2:options%keyvals}](${3:y value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psyTick[${3:options%keyvals}]{${1:rotation}}(${4:y value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psyTick{${1:rotation}}(${3:y value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readdata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readdata{${1:macro%cmd}}{${2:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"readdata\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"readdata[${3:options%keyvals}]{${1:macro%cmd}}{${2:file%file}}\",\n        \"keys\": [\n          \"\\\\readdata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"savedata\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"savedata{${1:macro%cmd}}[${2:data}]\"\n      }\n    },\n    {\n      \"name\": \"setDefaulthLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setDefaultvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFractionhLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFractionvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setTrighLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setTrigvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialLabelsDonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialLabelsDonetrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-plot#c\": [\n      \"97\"\n    ],\n    \"\\\\readdata#c\": [\n      \"ignoreLines=${1:integer}\",\n      \"nStep=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-plot#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/pst-text.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstextpath\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstextpath[${3:pos}](${4:x},${5:y}){${1:graphics object}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstextpath\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstextpath(${3:x},${4:y}){${1:graphics object}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath*[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip*[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endpscharclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCircleText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCircleText[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircleText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircleText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psWarp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psWarp[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psWarp(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psWarp[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TPoffset\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pst-tree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endpsTree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endskiplevels\"\n    },\n    {\n      \"name\": \"MakeShortTnput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortTnput{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"psedge\"\n    },\n    {\n      \"name\": \"psnodecnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pspred\"\n    },\n    {\n      \"name\": \"pssucc\"\n    },\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstree[${3:options%keyvals}]{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psTree{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstree{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"pstreecnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstreelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplevel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevel*[${2:options%keyvals}]{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevel*{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevel[${2:options%keyvals}]{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevel{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevels*[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevels*{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevels[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevels{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"TC\"\n    },\n    {\n      \"name\": \"TC*\"\n    },\n    {\n      \"name\": \"TC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"TC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc*[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc*[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc*{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdot\"\n    },\n    {\n      \"name\": \"Tdot*\"\n    },\n    {\n      \"name\": \"Tdot*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf\"\n    },\n    {\n      \"name\": \"Tf*\"\n    },\n    {\n      \"name\": \"Tf*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tfan\"\n    },\n    {\n      \"name\": \"Tfan*\"\n    },\n    {\n      \"name\": \"Tfan*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tfan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tn\"\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tp\"\n    },\n    {\n      \"name\": \"Tp*\"\n    },\n    {\n      \"name\": \"Tp*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tspace{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri{${1:stuff}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psTree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/pstricks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"if\": \"luatex\"\n    },\n    {\n      \"name\": \"xetex\",\n      \"if\": \"xetex\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtopsstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtopsstyle{${1:style}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"AltClipMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altcolormode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrows{${1:arrows}}\"\n      }\n    },\n    {\n      \"name\": \"black\"\n    },\n    {\n      \"name\": \"blue\"\n    },\n    {\n      \"name\": \"closedshadow\"\n    },\n    {\n      \"name\": \"closedshadow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"closedshadow[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"closepath\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"cput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"cput*[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Cput*[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"cput*{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Cput*{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"cput[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Cput[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"cput{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Cput{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"curveto\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"curveto(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"cyan\"\n    },\n    {\n      \"name\": \"darkgray\"\n    },\n    {\n      \"name\": \"degrees\"\n    },\n    {\n      \"name\": \"degrees\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"degrees[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"dim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dim{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"DontKillGlue\"\n    },\n    {\n      \"name\": \"endoverlaybox\"\n    },\n    {\n      \"name\": \"endpsclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everypsbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everypsbox{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fill\"\n    },\n    {\n      \"name\": \"fill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fill[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"gray\"\n    },\n    {\n      \"name\": \"green\"\n    },\n    {\n      \"name\": \"grestore\"\n    },\n    {\n      \"name\": \"gsave\"\n    },\n    {\n      \"name\": \"ifpsmathbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPSTlualatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPSTricks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpstUndefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KillGlue\"\n    },\n    {\n      \"name\": \"lightgray\"\n    },\n    {\n      \"name\": \"lineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"lineto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"magenta\"\n    },\n    {\n      \"name\": \"movepath\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"movepath(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"moveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"moveto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"mrestore\"\n    },\n    {\n      \"name\": \"msave\"\n    },\n    {\n      \"name\": \"multips\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multips(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"multips\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multips{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multirput(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multirput*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multirput*[${3:refpoint}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"multirput*[${4:refpoint}]{${1:angle}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirput*{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multirput[${3:refpoint}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"multirput[${4:refpoint}]{${1:angle}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirput{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"newcmykcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcmykcolor{${1:color%specialDef}}{${2:num1 num2 num3 num4}}\"\n      }\n    },\n    {\n      \"name\": \"newgray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgray{${1:color%specialDef}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"newhsbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhsbcolor{${1:color%specialDef}}{${2:num1 num2 num3}}\"\n      }\n    },\n    {\n      \"name\": \"newpath\"\n    },\n    {\n      \"name\": \"newpsfontdot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newpsfontdot{${1:arg1}}[${4:arg2}]{${2:arg3}}{${3:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"newpsfontdotH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"newpsfontdotH{${1:arg1}}[${5:arg2}]{${2:arg3}}{${3:arg4}}{${4:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"newpsobject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpsobject{${1:name}}{${2:object}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newpsstyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newpsstyle[${3:package}]{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newpsstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpsstyle{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newrgbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrgbcolor{${1:color}}{${2:num1 num2 num3}}\"\n      }\n    },\n    {\n      \"name\": \"NormalCoor\"\n    },\n    {\n      \"name\": \"openshadow\"\n    },\n    {\n      \"name\": \"openshadow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"openshadow[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"overlaybox\"\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"parabola(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"parabola*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"parabola*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"parabola*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"parabola*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"parabola[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"parabola[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"parabola{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pgfforeach\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psaddtolength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psaddtolength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarc(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarc*(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarc*[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarc*[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarc*{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarc[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarc[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarc{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psarcAB(${1:xC},${2:yC})(${3:xA},${4:yA})(${5:xB},${6:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psarcAB[${1:keyvals}](${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psarcAB[${2:keyvals}]{${1:arrows}}(${3:xC},${4:yC})(${5:xA},${6:yA})(${7:xB},${8:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psarcAB{${1:arrows}}(${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarcn(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarcn*(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarcn*[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarcn*[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarcn*{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarcn[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarcn[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarcn{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psarcnAB(${1:xC},${2:yC})(${3:xA},${4:yA})(${5:xB},${6:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psarcnAB[${1:keyvals}](${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psarcnAB[${2:keyvals}]{${1:arrows}}(${3:xC},${4:yC})(${5:xA},${6:yA})(${7:xB},${8:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psarcnAB{${1:arrows}}(${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarrowlinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"psbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"psbezier*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"psbezier*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"psbezier*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"psbezier*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"psbezier[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"psbezier[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"psbezier{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"pscbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"pscbezier*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"pscbezier*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"pscbezier*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"pscbezier*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"pscbezier[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"pscbezier[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"pscbezier{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psccurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psccurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psccurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psccurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psccurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psccurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psccurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psccurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pscircle(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircle(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pscircle*(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircle*(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pscircle*[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircle*[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pscircle[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircle[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscirclebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCirclebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscirclebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCirclebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscirclebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCirclebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscirclebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCirclebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscircleOA\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscircleOA(${1:xO},${2:yO})(${3:xA},${4:yA})\"\n      }\n    },\n    {\n      \"name\": \"pscircleOA\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscircleOA[${1:keyvals}](${2:xO},${3:yO})(${4:xA},${5:yA})\"\n      }\n    },\n    {\n      \"name\": \"psclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psclip{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"psclipbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psclipbox[${2:dim%l}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psclipbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psclipbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscoor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscustom*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscustom*[${2:keyvals}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscustom*{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscustom[${2:keyvals}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscustom{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"psdashcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psdblframebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdblframebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdblframebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdblframebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdblframebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psDEBUG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psDEBUG[${2:opt}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psDEBUG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psDEBUG{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdiabox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdiabox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdiabox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdiabox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiamond\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdiamond(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdiamond*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdiamond*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdiamond[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psdot(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psdot*(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psdot*[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psdot[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdots\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdots(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdots*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdots*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdots[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdoublecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psdoublesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psecurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psecurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psecurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psecurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psecurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psecurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psecurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psecurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psellipse\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psellipse(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psellipse*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psellipse*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psellipse[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psellipseAB(${2:x},${3:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psellipseAB*(${2:x},${3:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psellipseAB*[${2:keyvals}](${3:x},${4:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psellipseAB[${2:keyvals}](${3:x},${4:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarc(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarc*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarc*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarc[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarcn(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarcn*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarcn*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarcn[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticwedge(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticwedge*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticwedge*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticwedge[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psfillcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psforeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psforeach{${1:variable%cmd}}{${2:value list}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"psForeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psForeach{${1:variable%cmd}}{${2:value list}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"psframe\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psframe(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psframe*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psframe*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psframe[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psframebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psframebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psframebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psframebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgetCMYKColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetCMYKColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgetColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgetRGBColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetRGBColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgrid\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psgrid(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"psgridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgridlabelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshatchcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshooklength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshookwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pshskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"pslabelsep\"\n    },\n    {\n      \"name\": \"pslbrace\"\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psline(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLine(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLine(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psline*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLine*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLine*(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psline*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLine*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLine*[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psline*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psline*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psline[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLine[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLine[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psline[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psline{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pslinearc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslongbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pslongbox{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psLoop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psLoop{${1:n}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"psLoopIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmathboxfalse\"\n    },\n    {\n      \"name\": \"psmathboxtrue\"\n    },\n    {\n      \"name\": \"psovalbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psovalbox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psovalbox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psovalbox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psovalbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psoverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psoverlay{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"psPline\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psPline(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"psPline\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psPline[${1:keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pspolygon(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon*\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pspolygon*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon*\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pspolygon*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pspolygon[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psrbrace\"\n    },\n    {\n      \"name\": \"psresetColor\"\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"psRing(${4:x},${5:y})[${3:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psRing(${3:x},${4:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"psRing*(${4:x},${5:y})[${3:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psRing*(${3:x},${4:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"[]()[]{}{}\",\n        \"snippet\": \"psRing*[${3:keyvals}](${5:x},${6:y})[${4:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psRing*[${3:keyvals}](${4:x},${5:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"[]()[]{}{}\",\n        \"snippet\": \"psRing[${3:keyvals}](${5:x},${6:y})[${4:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psRing[${3:keyvals}](${4:x},${5:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psrunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psscalebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psscalebox{${1:num1 num2}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psscaleboxto\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psscaleboxto(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pssetGrayscale\"\n    },\n    {\n      \"name\": \"pssetlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"pssetMonochrome\"\n    },\n    {\n      \"name\": \"pssetxlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetxlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"pssetylength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetylength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadowbox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadowbox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadowbox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadowbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssubgridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstCheckCoorType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstCheckCoorType{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pstcustomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psTextFrame\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psTextFrame(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psTextFrame*(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psTextFrame*[${2:keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psTextFrame[${2:keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstheader{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PSTlualatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTlualatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstnodescale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstriangle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstriangle(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstriangle*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstriangle*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstriangle[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstribox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstribox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstribox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstribox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstribox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PSTricksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTricksOff\"\n    },\n    {\n      \"name\": \"PSTrickstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstrotate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstverb{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pstVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstVerb{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pstverbscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psverbboxfalse\"\n    },\n    {\n      \"name\": \"psverbboxtrue\"\n    },\n    {\n      \"name\": \"pswedge\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pswedge(${4:x0},${5:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pswedge*(${4:x0},${5:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pswedge*[${4:keyvals}](${5:x0},${6:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pswedge[${4:keyvals}](${5:x0},${6:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psxunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psyunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putoverlaybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putoverlaybox{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"qdisk\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"qdisk(${2:coor}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"qline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"qline(${1:coor0})(${2:coor1})\"\n      }\n    },\n    {\n      \"name\": \"radians\"\n    },\n    {\n      \"name\": \"rcurveto\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"rcurveto(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"resetArrowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversepath\"\n    },\n    {\n      \"name\": \"rlineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rlineto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"rmoveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rmoveto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotate{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotatedown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatedown{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rotateleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateleft{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rotateright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateright{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput*(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput*(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput*[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput*[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput*[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput*[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput*{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput*{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Rput[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:num1 num2}}\"\n      }\n    },\n    {\n      \"name\": \"setcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"showgridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showgridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialCoor\"\n    },\n    {\n      \"name\": \"stroke\"\n    },\n    {\n      \"name\": \"stroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stroke[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"swapaxes\"\n    },\n    {\n      \"name\": \"translate\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"translate(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"uput*[${2:refangle}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"uput*[${3:refangle}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"{}[](){}\",\n        \"snippet\": \"uput*{${1:labelsep}}[${3:refangle}](${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"{}[]{}(){}\",\n        \"snippet\": \"uput*{${1:labelsep}}[${4:refangle}]{${2:rotation}}(${5:x},${6:y}){${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"uput[${2:refangle}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"uput[${3:refangle}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"{}[](){}\",\n        \"snippet\": \"uput{${1:labelsep}}[${3:refangle}](${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"{}[]{}(){}\",\n        \"snippet\": \"uput{${1:labelsep}}[${4:refangle}]{${2:rotation}}(${5:x},${6:y}){${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"white\"\n    },\n    {\n      \"name\": \"yellow\"\n    },\n    {\n      \"name\": \"psset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psset{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPMul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPMul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPDiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPDiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPstripZeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstFPstripZeros{${1:cmd}}{${2:num}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"pspicture*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pstricks#c\": [\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"nometadata\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"luatex\",\n      \"pdftex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pstricks#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/rotating.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"turnbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"turnbox{${1:angle}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"rotFPtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotFPbot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sidewaystable\"\n    },\n    {\n      \"name\": \"sidewaystable*\"\n    },\n    {\n      \"name\": \"sidewaysfigure\"\n    },\n    {\n      \"name\": \"sidewaysfigure*\"\n    },\n    {\n      \"name\": \"sideways\"\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/rotating#c\": [\n      \"clockwise\",\n      \"counterclockwise\",\n      \"anticlockwise\",\n      \"figuresleft\",\n      \"figuresright\",\n      \"quiet\",\n      \"log\",\n      \"chatter\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rotating#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/scraddr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"InputAddressFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputAddressFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"adrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"adrentry{${1:LastName}}{${2:FirstName}}{${3:Address}}{${4:Phone}}{${5:F1}}{${6:F2}}{${7:Comment}}{${8:Key}}\"\n      }\n    },\n    {\n      \"name\": \"addrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addrentry{${1:LastName}}{${2:FirstName}}{${3:Address}}{${4:Phone}}{${5:F1}}{${6:F2}}{${7:F3}}{${8:F4}}{${9:Key}}\"\n      }\n    },\n    {\n      \"name\": \"addrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrchar{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"adrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adrchar{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FirstName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstName{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"LastName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LastName{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Address{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telephone{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeI{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeII{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Comment{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeIII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeIII{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeIV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeIV{${1:Key}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scraddr#c\": [\n      \"adrFreeIVempty\",\n      \"adrFreeIVshow\",\n      \"adrFreeIVwarn\",\n      \"adrFreeIVstop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scraddr#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/scrdate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CenturyPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CenturyPart{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DecadePart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DecadePart{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DayNumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DayNumber{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"ISODayNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISODayNumber{${1:ISO-date}}\"\n      }\n    },\n    {\n      \"name\": \"DayName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DayName{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"ISODayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISODayName{${1:ISO-date}}\"\n      }\n    },\n    {\n      \"name\": \"DayNameByNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DayNameByNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ISOToday\"\n    },\n    {\n      \"name\": \"IsoToday\"\n    },\n    {\n      \"name\": \"todaysname\"\n    },\n    {\n      \"name\": \"todaysnumber\"\n    },\n    {\n      \"name\": \"nameday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameday{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newdaylanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newdaylanguage{${1:language}}{${2:Monday}}{${3:Tuesday}}{${4:Wednesday}}{${5:Thursday}}{${6:Friday}}{${7:Saturday}}{${8:Sunday}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/scrlfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlfile-hook\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/scrpage2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"automark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"automark{${1:left}}\"\n      }\n    },\n    {\n      \"name\": \"automark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"automark[${2:right}]{${1:left}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cefoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cefoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clearscrheadfoot\"\n    },\n    {\n      \"name\": \"clearscrheadings\"\n    },\n    {\n      \"name\": \"clearscrplain\"\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\"\n    },\n    {\n      \"name\": \"headmark\"\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ifoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ihead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ihead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lefoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"manualmark\"\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagemark\"\n    },\n    {\n      \"name\": \"pnumfont\"\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootbotline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setfootbotline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootbotline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setfootbotline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootsepline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setfootsepline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootsepline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setfootsepline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootwidth[${2:offset}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setfootwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadsepline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setheadsepline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadsepline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setheadsepline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadtopline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setheadtopline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadtopline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setheadtopline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadwidth[${2:offset}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setheadwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadwidth{${1:width}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/scrtime.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thistime\"\n    },\n    {\n      \"name\": \"thistime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thistime[${1:delimiter}]\"\n      }\n    },\n    {\n      \"name\": \"thistime*\"\n    },\n    {\n      \"name\": \"thistime*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thistime*[${1:delimiter}]\"\n      }\n    },\n    {\n      \"name\": \"settime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settime{${1:time}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"12h=${1|true,on,yes,false,off,no|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/secsty.json",
    "content": "{\n  \"includes\": {},\n  \"macros\": {\n    \"allsectionsfont{}\": {\n      \"snippet\": \"allsectionsfont{${1:commands}}\"\n    },\n    \"partfont{}\": {\n      \"snippet\": \"partfont{${1:commands}}\"\n    },\n    \"chapterfont{}\": {\n      \"snippet\": \"chapterfont{${1:commands}}\"\n    },\n    \"sectionfont{}\": {\n      \"snippet\": \"sectionfont{${1:commands}}\"\n    },\n    \"subsectionfont{}\": {\n      \"snippet\": \"subsectionfont{${1:commands}}\"\n    },\n    \"subsubsectionfont{}\": {\n      \"snippet\": \"subsubsectionfont{${1:commands}}\"\n    },\n    \"paragraphfont{}\": {\n      \"snippet\": \"paragraphfont{${1:commands}}\"\n    },\n    \"subparagrahfont{}\": {\n      \"snippet\": \"subparagrahfont{${1:commands}}\"\n    },\n    \"minisecfont{}\": {\n      \"snippet\": \"minisecfont{${1:commands}}\"\n    },\n    \"partnumberfont{}\": {\n      \"snippet\": \"partnumberfont{${1:commands}}\"\n    },\n    \"parttitlefont{}\": {\n      \"snippet\": \"parttitlefont{${1:commands}}\"\n    },\n    \"chapternumberfont{}\": {\n      \"snippet\": \"chapternumberfont{${1:commands}}\"\n    },\n    \"chaptertitlefont{}\": {\n      \"snippet\": \"chaptertitlefont{${1:commands}}\"\n    },\n    \"nohang\": {},\n    \"ulemheading{}\": {\n      \"snippet\": \"ulemheading{${1:style}}\"\n    }\n  },\n  \"envs\": {},\n  \"options\": [],\n  \"keyvals\": []\n}"
  },
  {
    "path": "data/packages/sectsty.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"allsectionsfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allsectionsfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"partfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparagraphfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"minisecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisecfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"parttitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttitlefont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chapternumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitlefont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"nohang\"\n    },\n    {\n      \"name\": \"ulemheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ulemheading{${1:ulem command}}\"\n      }\n    },\n    {\n      \"name\": \"sectionrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionrule{${1:raise top%l}}{${2:top rule%l}}{${3:raise bottom%l}}{${4:bottom rule%l}}\"\n      }\n    },\n    {\n      \"name\": \"SSifnumberpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSifnumberpart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SSiftitlepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSiftitlepart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SSsectlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcentering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcentering{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifraggedleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifraggedleft{${1:true}}{${2:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sectsty#c\": [\n      \"garrulous\",\n      \"chatty\",\n      \"taciturn\",\n      \"yorkshire\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sectsty#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/setspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"singlespacing\"\n    },\n    {\n      \"name\": \"onehalfspacing\"\n    },\n    {\n      \"name\": \"doublespacing\"\n    },\n    {\n      \"name\": \"SetSinglespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"displayskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdisplayskipstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdisplayskipstretch{${1:factor}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"singlespace\"\n    },\n    {\n      \"name\": \"singlespace*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublespace\"\n    },\n    {\n      \"name\": \"onehalfspace\"\n    },\n    {\n      \"name\": \"spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/setspace#c\": [\n      \"nodisplayskipstretch\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/setspace#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/siunitx-special.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bit\"\n    },\n    {\n      \"name\": \"byte\"\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"molar\"\n    },\n    {\n      \"name\": \"Molar\"\n    },\n    {\n      \"name\": \"torr\"\n    },\n    {\n      \"name\": \"dalton\"\n    },\n    {\n      \"name\": \"clight\"\n    },\n    {\n      \"name\": \"eVperc\"\n    },\n    {\n      \"name\": \"yoctobarn\"\n    },\n    {\n      \"name\": \"yb\"\n    },\n    {\n      \"name\": \"zeptobarn\"\n    },\n    {\n      \"name\": \"zb\"\n    },\n    {\n      \"name\": \"attobarn\"\n    },\n    {\n      \"name\": \"ab\"\n    },\n    {\n      \"name\": \"femtobarn\"\n    },\n    {\n      \"name\": \"fb\"\n    },\n    {\n      \"name\": \"picobarn\"\n    },\n    {\n      \"name\": \"pb\"\n    },\n    {\n      \"name\": \"nanobarn\"\n    },\n    {\n      \"name\": \"nb\"\n    },\n    {\n      \"name\": \"micron\"\n    },\n    {\n      \"name\": \"mrad\"\n    },\n    {\n      \"name\": \"gauss\"\n    },\n    {\n      \"name\": \"parsec\"\n    },\n    {\n      \"name\": \"lightyear\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/siunitx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"use-xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"amu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ang\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ang[${2:options}]{${1:angle}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ang{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"arcminute\"\n    },\n    {\n      \"name\": \"arcsecond\"\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"astronomicalunit\"\n    },\n    {\n      \"name\": \"atto\"\n    },\n    {\n      \"name\": \"becquerel\"\n    },\n    {\n      \"name\": \"bel\"\n    },\n    {\n      \"name\": \"bit\"\n    },\n    {\n      \"name\": \"byte\"\n    },\n    {\n      \"name\": \"C\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"centi\"\n    },\n    {\n      \"name\": \"cm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complexnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"complexnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"complexnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"complexnum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"complexqty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"complexqty{${1:number}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"complexqty\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"complexqty[${3:options%keyvals}]{${1:number}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"cubed\"\n    },\n    {\n      \"name\": \"cubic\"\n    },\n    {\n      \"name\": \"dalton\"\n    },\n    {\n      \"name\": \"dB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deca\"\n    },\n    {\n      \"name\": \"deci\"\n    },\n    {\n      \"name\": \"decibel\"\n    },\n    {\n      \"name\": \"DeclareSIPower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSIPower{${1:symbol-before%cmd}}{${2:symbol-after%cmd}}{${3:power}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPrefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSIPrefix{${1:prefix macro%cmd}}{${2:symbol}}{${3:power of 10}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIQualifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIQualifier{${1:qualifier%cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIUnit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSIUnit[${3:options%keyvals}]{${1:unit%cmd}}{${2:definition}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSIUnit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIUnit{${1:unit%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"degreeCelsius\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"deka\"\n    },\n    {\n      \"name\": \"dm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronvolt\"\n    },\n    {\n      \"name\": \"eV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exa\"\n    },\n    {\n      \"name\": \"exbi\"\n    },\n    {\n      \"name\": \"F\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"femto\"\n    },\n    {\n      \"name\": \"fF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"g\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gibi\"\n    },\n    {\n      \"name\": \"giga\"\n    },\n    {\n      \"name\": \"GPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gram\"\n    },\n    {\n      \"name\": \"gray\"\n    },\n    {\n      \"name\": \"GW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hectare\"\n    },\n    {\n      \"name\": \"hecto\"\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"highlight\"\n    },\n    {\n      \"name\": \"hL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"Hz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"J\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"K\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"katal\"\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"keV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kibi\"\n    },\n    {\n      \"name\": \"kilo\"\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"kJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"km\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kWh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"L\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"l\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liter\"\n    },\n    {\n      \"name\": \"litre\"\n    },\n    {\n      \"name\": \"lumen\"\n    },\n    {\n      \"name\": \"lux\"\n    },\n    {\n      \"name\": \"m\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mebi\"\n    },\n    {\n      \"name\": \"mega\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"metre\"\n    },\n    {\n      \"name\": \"MeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"milli\"\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"mJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"mp\",\n      \"unusual\": true,\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"MPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"N\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nano\"\n    },\n    {\n      \"name\": \"nC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neper\"\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"nF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"num\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"num[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"num\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"num{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numlist[${2:options}]{${1:numbers}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numlist{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"numproduct\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numproduct[${2:options}]{${1:numbers}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numproduct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numproduct{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"numrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numrange[${3:options}]{${1:number1}}{${2:number2}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numrange{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"nV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"of\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"of{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"Pa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"pebi\"\n    },\n    {\n      \"name\": \"per\"\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"pF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pico\"\n    },\n    {\n      \"name\": \"pmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qty\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qty[${3:options%keyvals}]{${1:number}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qty{${1:number}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtylist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qtylist[${3:options%keyvals}]{${1:numbers}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtylist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtylist{${1:numbers}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtyproduct\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qtyproduct[${3:options%keyvals}]{${1:numbers}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtyproduct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtyproduct{${1:numbers}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtyrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"qtyrange[${4:options%keyvals}]{${1:number1}}{${2:number2}}{${3:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtyrange\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"qtyrange{${1:number1}}{${2:number2}}{${3:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"quecto\"\n    },\n    {\n      \"name\": \"quetta\"\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"raiseto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raiseto{${1:power}}\"\n      }\n    },\n    {\n      \"name\": \"ronna\"\n    },\n    {\n      \"name\": \"ronto\"\n    },\n    {\n      \"name\": \"s\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"siemens\"\n    },\n    {\n      \"name\": \"sievert\"\n    },\n    {\n      \"name\": \"sisetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sisetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\",\n          \"\\\\sisetup,\\\\ang\",\n          \"\\\\sisetup\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\tablenum\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squared\"\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"T\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tablenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablenum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\tablenum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tebi\"\n    },\n    {\n      \"name\": \"tera\"\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"TeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"THz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tonne\"\n    },\n    {\n      \"name\": \"tothe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tothe{${1:power}}\"\n      }\n    },\n    {\n      \"name\": \"uA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"um\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unit[${2:options%keyvals}]{${1:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"us\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"V\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"W\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"yobi\"\n    },\n    {\n      \"name\": \"yocto\"\n    },\n    {\n      \"name\": \"yotta\"\n    },\n    {\n      \"name\": \"zebi\"\n    },\n    {\n      \"name\": \"zepto\"\n    },\n    {\n      \"name\": \"zetta\"\n    },\n    {\n      \"name\": \"DeclareBinaryPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareBinaryPrefix{${1:prefix macro%cmd}}{${2:symbol}}{${3:power of 2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPostPower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIPostPower{${1:power macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPrePower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIPrePower{${1:power macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"SI[${3:options%keyvals}]{${1:value}}[${4:pre-unit%formula}]{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SI[${3:options%keyvals}]{${1:value}}{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SI{${1:value}}[${3:pre-unit%formula}]{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SI{${1:value}}{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"si\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"si[${2:options%keyvals}]{${1:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"si\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"si{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SIlist{${1:values}}{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SIlist[${3:options%keyvals}]{${1:values}}{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SIrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SIrange{${1:value1}}{${2:value2}}{${3:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SIrange[${4:options%keyvals}]{${1:value1}}{${2:value2}}{${3:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"ge\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"color=\",\n      \"mode=${1|match,math,text|}\",\n      \"number-color=\",\n      \"number-mode=${1|match,math,text|}\",\n      \"propagate-math-font\",\n      \"reset-math-version\",\n      \"reset-text-family\",\n      \"reset-text-series\",\n      \"reset-text-shape\",\n      \"text-family-to-math\",\n      \"text-subscript-command=${1:command}\",\n      \"text-superscript-command=${1:command}\",\n      \"text-font-command=${1:commands}\",\n      \"text-series-to-math\",\n      \"unit-color=\",\n      \"unit-mode=${1|match,math,text|}\",\n      \"locale=${1|DE,UK,US,ZA,FR|}\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"evaluate-expression\",\n      \"expression=${1:expression}\",\n      \"input-close-uncertainty=${1:symbols}\",\n      \"input-comparators=${1:symbols}\",\n      \"input-decimal-markers=${1:symbols}\",\n      \"input-digits=${1:symbols}\",\n      \"input-exponent-markers=${1:symbols}\",\n      \"input-ignore=${1:symbols}\",\n      \"input-open-uncertainty=${1:symbols}\",\n      \"input-signs=${1:symbols}\",\n      \"input-uncertainty-divider=${1:symbol}\",\n      \"input-uncertainty-signs=${1:symbols}\",\n      \"parse-numbers\",\n      \"retain-explicit-decimal-marker\",\n      \"retain-explicit-plus\",\n      \"retain-negative-zero\",\n      \"retain-zero-uncertainty\",\n      \"drop-exponent\",\n      \"drop-uncertainty\",\n      \"drop-zero-decimal\",\n      \"exponent-mode=${1|input,fixed,engineering,scientific,threshold|}\",\n      \"exponent-thresholds=${1:min:max}\",\n      \"fixed-exponent=${1:integer}\",\n      \"minimum-integer-digits=${1:integer}\",\n      \"minimum-decimal-digits=${1:integer}\",\n      \"round-direction=${1|nearest,up,down|}\",\n      \"round-half=${1|up,even|}\",\n      \"round-minimum=${1:number}\",\n      \"round-mode=${1|none,figures,places,uncertainty|}\",\n      \"round-pad\",\n      \"round-precision=${1:integer}\",\n      \"round-zero-positive\",\n      \"uncertainty-round-direction=${1|nearest,up,down|}\",\n      \"bracket-ambiguous-numbers\",\n      \"bracket-negative-numbers\",\n      \"digit-group-size=${1:integer}\",\n      \"digit-group-first-size=${1:integer}\",\n      \"digit-group-other-size=${1:integer}\",\n      \"exponent-base=${1:value}\",\n      \"exponent-product=${1:symbol}\",\n      \"group-digits=${1|none,decimal,integer|}\",\n      \"group-minimum-digits=${1:integer}\",\n      \"group-separator=${1:separator}\",\n      \"negative-color=\",\n      \"output-close-uncertainty=${1:symbol}\",\n      \"output-decimal-marker=${1:symbol}\",\n      \"output-exponent-marker=${1:symbol}\",\n      \"output-open-uncertainty=${1:symbol}\",\n      \"print-exponent-implicit-plus\",\n      \"print-implicit-plus\",\n      \"print-mantissa-implicit-plus\",\n      \"print-unity-mantissa\",\n      \"print-zero-exponent\",\n      \"print-zero-integer\",\n      \"separate-uncertainty\",\n      \"tight-spacing\",\n      \"uncertainty-descriptor-mode=${1|bracket,bracket-separator,separator,subscript|}\",\n      \"uncertainty-descriptor-separator=${1:separator}\",\n      \"uncertainty-descriptors={${1:desc1,desc2,...}}\",\n      \"uncertainty-mode=${1|separate,compact,compact-marker,full|}\",\n      \"uncertainty-separator=${1:separator}\",\n      \"zero-decimal-as-symbol\",\n      \"zero-symbol=${1:symbol}\"\n    ],\n    \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\": [\n      \"list-close-bracket=${1:symbol}\",\n      \"list-exponents=${1|individual,combine-bracket,combine|}\",\n      \"list-final-separator=${1:separator}\",\n      \"list-independent-prefix\",\n      \"list-open-bracket=${1:symbol}\",\n      \"list-pair-separator=${1:separator}\",\n      \"list-separator=${1:separator}\",\n      \"list-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\": [\n      \"product-close-bracket=${1:symbol}\",\n      \"product-exponents=${1|individual,combine-bracket,combine|}\",\n      \"product-independent-prefix\",\n      \"product-mode=${1|symbol,phrase|}\",\n      \"product-open-bracket=${1:symbol}\",\n      \"product-phrase=${1:text}\",\n      \"product-symbol=${1:symbol}\",\n      \"product-units=${1|bracket,bracket-power,power,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\": [\n      \"range-close-bracket=${1:symbol}\",\n      \"range-exponents=${1|individual,combine-bracket,combine|}\",\n      \"range-independent-prefix\",\n      \"range-open-bracket=${1:symbol}\",\n      \"range-open-phrase=${1:symbol}\",\n      \"range-phrase=${1:text}\",\n      \"range-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\complexnum,\\\\complexqty\": [\n      \"complex-angle-unit=${1|degrees,radians|}\",\n      \"complex-mode=${1|cartesian,polar,input|}\",\n      \"complex-root-position=${1|after-number,before-number|}\",\n      \"complex-symbol-angle=${1:symbol}\",\n      \"complex-symbol-degree=${1:symbol}\",\n      \"input-complex-root=${1:tokens}\",\n      \"output-complex-root=${1:symbol}\",\n      \"print-complex-unity\"\n    ],\n    \"\\\\sisetup,\\\\ang\": [\n      \"angle-mode=${1|arc,decimal|}\",\n      \"angle-symbol-degree=${1:symbol}\",\n      \"angle-symbol-minute=${1:symbol}\",\n      \"angle-symbol-over-decimal\",\n      \"angle-symbol-second=${1:symbol}\",\n      \"angle-separator=${1:separator}\",\n      \"fill-angle-degrees\",\n      \"fill-angle-minutes\",\n      \"fill-angle-seconds\",\n      \"number-angle-product=${1:separator}\",\n      \"add-arc-degree-zero\",\n      \"add-arc-minute-zero\",\n      \"add-arc-second-zero\",\n      \"arc-separator=\"\n    ],\n    \"\\\\sisetup\": [\n      \"free-standing-units\",\n      \"overwrite-functions\",\n      \"space-before-unit\",\n      \"unit-optional-argument\",\n      \"use-xspace\",\n      \"list-input-separator=${1:separator}\",\n      \"product-input-separator=${1:separator}\",\n      \"table-column-type=${1:tokens}\",\n      \"detect-all\",\n      \"detect-display-math\",\n      \"detect-family\",\n      \"detect-inline-family=${1|text,math|}\",\n      \"detect-inline-weight=${1|text,math|}\",\n      \"detect-mode\",\n      \"detect-none\",\n      \"detect-shape\",\n      \"detect-weight\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\": [\n      \"bracket-unit-denominator\",\n      \"forbid-literal-units\",\n      \"fraction-command=${1:command}\",\n      \"inter-unit-product=${1:separator}\",\n      \"parse-units\",\n      \"per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"display-per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"inline-per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"per-symbol-script-correction=${1:separator}\",\n      \"per-symbol=${1:symbol}\",\n      \"power-half-as-sqrt\",\n      \"qualifier-mode=${1|subscript,bracket,combine,phrase|}\",\n      \"qualifier-phrase=${1:text}\",\n      \"sticky-per\",\n      \"unit-font-command=${1:command}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"allow-quantity-breaks\",\n      \"extract-mass-in-kilograms\",\n      \"prefix-mode=${1|input,combine-exponent,extract-exponent|}\",\n      \"quantity-product=${1:symbol}\",\n      \"separate-uncertainty-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\tablenum\": [\n      \"table-align-comparator\",\n      \"table-align-exponent\",\n      \"table-align-text-after\",\n      \"table-align-text-before\",\n      \"table-align-uncertainty\",\n      \"table-alignment=${1|left,center,right|}\",\n      \"table-alignment-mode=${1|marker,format,none|}\",\n      \"table-auto-round\",\n      \"table-column-width=\",\n      \"table-fixed-width=\",\n      \"table-format=${1:format value}\",\n      \"table-model-setup=${1:commands}\",\n      \"table-number-alignment=${1|left,center,right|}\",\n      \"table-text-alignment=${1|left,center,right,none|}\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"math-rm=\",\n      \"math-sf=\",\n      \"math-tt=\",\n      \"text-rm=\",\n      \"text-sf=\",\n      \"text-tt=\",\n      \"text-tt=\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"number-math-rm=\",\n      \"number-math-sf=\",\n      \"number-math-tt=\",\n      \"number-text-rm=\",\n      \"number-text-sf=\",\n      \"number-text-tt=\",\n      \"input-protect-tokens=\",\n      \"input-symbols=\",\n      \"add-decimal-zero\",\n      \"add-integer-zero\",\n      \"explicit-sign=\",\n      \"omit-uncertainty\",\n      \"retain-unity-mantissa\",\n      \"retain-zero-exponent\",\n      \"round-integer-to-decimal\",\n      \"scientific-notation=${1|true,false,fixed,engineering|}\",\n      \"zero-decimal-to-integer\",\n      \"bracket-numbers\",\n      \"close-bracket=\",\n      \"copy-complex-root=\",\n      \"copy-decimal-marker=\",\n      \"open-bracket=\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"unit-math-rm=\",\n      \"unit-math-sf=\",\n      \"unit-math-tt=\",\n      \"unit-text-rm=\",\n      \"unit-text-sf=\",\n      \"unit-text-tt=\",\n      \"math-arcminute=\",\n      \"math-arcsecond=\",\n      \"math-degree=\",\n      \"redefine-symbols\",\n      \"text-arcminute=\",\n      \"text-arcsecond=\",\n      \"text-degree=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\": [\n      \"fraction-function=\",\n      \"input-product=\",\n      \"input-quotient=\",\n      \"output-product=\",\n      \"output-quotient=\",\n      \"quotient-mode=${1|symbol,fraction|}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"literal-superscript-as-power\",\n      \"power-font=${1|number,unit|}\",\n      \"prefixes-as-symbols\",\n      \"math-angstrom=\",\n      \"math-celsius=\",\n      \"math-micro=\",\n      \"math-ohm=\",\n      \"text-angstrom=\",\n      \"text-celsius=\",\n      \"text-micro=\",\n      \"text-ohm=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"allow-number-unit-breaks\",\n      \"exponent-to-prefix\",\n      \"number-unit-product=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\": [\n      \"multi-part-units=${1|brackets,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit\": [\n      \"table-align-text-pre\",\n      \"table-align-text-post\",\n      \"table-comparator\",\n      \"table-figures-decimal=\",\n      \"table-figures-exponent=\",\n      \"table-figures-integer=\",\n      \"table-figures-uncertainty=\",\n      \"table-parse-only\",\n      \"table-omit-exponent\",\n      \"table-space-text-pre=\",\n      \"table-space-text-post=\",\n      \"table-sign-exponent\",\n      \"table-sign-mantissa\",\n      \"table-unit-alignment=${1|center,right,left|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/soul.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"so\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"so{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textso{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"caps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"capsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"st{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"soulaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soulaccent{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"soulregister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"soulregister{${1:cmd}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"soulomit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soulomit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sloppyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sloppyword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sodef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sodef{${1:cmd}}{${2:font}}{${3:innerletter%l}}{${4:inner%l}}{${5:outer%l}}\"\n      }\n    },\n    {\n      \"name\": \"resetso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"capsdef{${1:enc/fam/series/shape/size}}{${2:optcmd}}{${3:innerletter%l}}{${4:inner%l}}{${5:outer%l}}\"\n      }\n    },\n    {\n      \"name\": \"capssave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capssave{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"capsselect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capsselect{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"capsreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setul{${1:ul-depth%l}}{${2:ul-thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"resetul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuldepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuldepth{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setuloverlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuloverlap{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"setulcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setulcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setstcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"sethlcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethlcolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/soul#c\": [\n      \"capsdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/soul#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/subcaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}[${4:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}[${4:width}][${5:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaption[${2:list entry}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"subref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref*{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"thesubfigure\"\n    },\n    {\n      \"name\": \"thesubtable\"\n    },\n    {\n      \"name\": \"phantomsubcaption\"\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfloat[${2:list entry}][${3:sub-caption}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfloat[${2:sub-caption}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfloat{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionlistentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionlistentry{${1:list entry}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptiontext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptiontext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptiontext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptiontext*[${2:number}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiongroup\"\n    },\n    {\n      \"name\": \"subcaptiongroup*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/subcaption#c\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"box=${1|empty,none,parbox,colorbox|}\",\n      \"boxcolor=\",\n      \"boxsep=\",\n      \"calcmargin*=\",\n      \"calcmargin=\",\n      \"calcwidth*=\",\n      \"calcwidth=\",\n      \"debug\",\n      \"figurename=${1:name}\",\n      \"figureposition=${1|top,above,bottom,below,auto|}\",\n      \"figurewithin=${1:counter}\",\n      \"figurewithout\",\n      \"font+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"font=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"format=${1|plain,hang|}\",\n      \"hangindent=\",\n      \"indention=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash,gobble,gobbletwo|}\",\n      \"list=${1|on,off,true,false|}\",\n      \"listfigurename=${1:name}\",\n      \"listformat=${1|empty,simple,parens,subsimple,subparens,period,subperiod|}\",\n      \"listtablename=${1:name}\",\n      \"listtype=${1:list type}\",\n      \"listtype+=${1:list type ext}\",\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"margin*=\",\n      \"margin=\",\n      \"maxmargin=\",\n      \"minmargin=\",\n      \"name=${1:name}\",\n      \"oneside\",\n      \"parbox=${1|empty,none,parbox,colorbox|}\",\n      \"parindent=\",\n      \"parskip=\",\n      \"position=${1|top,above,bottom,below,auto|}\",\n      \"singlelinecheck\",\n      \"skip=\",\n      \"strut=${1|on,off|}\",\n      \"style=\",\n      \"style*=\",\n      \"tablename=${1:name}\",\n      \"tableposition=${1|top,above,bottom,below,auto|}\",\n      \"tablewithin=${1:counter}\",\n      \"tablewithout\",\n      \"textfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textformat=${1|empty,simple,period|}\",\n      \"twoside\",\n      \"width*=\",\n      \"width=\",\n      \"within=${1:counter}\",\n      \"without\",\n      \"list-entry=${1|default,list-entry,entry|}\",\n      \"hypcap\",\n      \"hypcapspace=\",\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\",\n      \"subtype=${1:float type}\",\n      \"subtype*=${1:float type}\",\n      \"compatibility\",\n      \"config=${1:file name}\"\n    ],\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/subcaption#c,\\\\DeclareCaptionStyle#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\": [\n      \"labelformat=${1|original,empty,simple,brace,parens,autodot,unnumbered,subsimple,subparens|}\",\n      \"subrefformat=${1|original,empty,simple,brace,parens,autodot,unnumbered,subsimple,subparens|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subcaption#c\",\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/subcaption#c,\\\\DeclareCaptionStyle#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/subfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtable{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtable[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtable[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"Subref\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:float name}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsubfloat[${2:kv-list}]{${1:float name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionListOfFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionListOfFormat{${1:keyword}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubrefFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSubrefFormat{${1:keyword}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfloat{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfloat[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfloat[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"subref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"listsubcaptions\"\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtablename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfig#c\": [\n      \"caption\",\n      \"config=${1:file name}\",\n      \"font=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"labelfont=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"textfont=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"style=${1|default,ruled|}\",\n      \"singlelinecheck\",\n      \"format=${1|default,hang|}\",\n      \"indention=\",\n      \"hangindent=\",\n      \"width=\",\n      \"margin=\",\n      \"parskip=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelformat=${1|original,empty,simple,brace,parens|}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash|}\",\n      \"position=${1|top,above,bottom,below,auto|}\"\n    ],\n    \"\\\\usepackage/subfig#c,\\\\captionsetup#c,\\\\captionsetup*#c,\\\\DeclareCaptionStyle#c\": [\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"listofformat=${1|empty,simple,parens,subsimple,subparens|}\",\n      \"subrefformat=${1|empty,simple,parens,subsimple,subparens|}\",\n      \"listofindent=\",\n      \"listofnumwidth=\",\n      \"farskip=\",\n      \"captionskip=\",\n      \"topadjust=\",\n      \"nearskip=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfig#c\",\n    \"\\\\usepackage/subfig#c,\\\\captionsetup#c,\\\\captionsetup*#c,\\\\DeclareCaptionStyle#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/subfigure.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:listentry%text}][${3:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtable{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtable[${2:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtable[${2:listentry%text}][${3:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcaptopadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcapmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiglabelskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"listsubcaptions\"\n    },\n    {\n      \"name\": \"ifsubfiguretopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiguretopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiguretopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsubtabletopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtabletopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtabletopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffiguretopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuretopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuretopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureotopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabletopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabletopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabletopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"label(${2:bookmark}){${1:key%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"subcapfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subcaplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subcapsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelofdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelotdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfigure#c\": [\n      \"normal\",\n      \"hang\",\n      \"center\",\n      \"centerlast\",\n      \"nooneline\",\n      \"raggedright\",\n      \"isu\",\n      \"anne\",\n      \"scriptsize\",\n      \"footnotesize\",\n      \"small\",\n      \"normalsize\",\n      \"large\",\n      \"Large\",\n      \"rm\",\n      \"sf\",\n      \"tt\",\n      \"md\",\n      \"bf\",\n      \"up\",\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"RM\",\n      \"SF\",\n      \"TT\",\n      \"MD\",\n      \"BF\",\n      \"IT\",\n      \"SL\",\n      \"SC\",\n      \"UP\",\n      \"figbotcap\",\n      \"figtopcap\",\n      \"tabbotcap\",\n      \"tabtopcap\",\n      \"FIGBOTCAP\",\n      \"FIGTOPCAP\",\n      \"TABBOTCAP\",\n      \"TABTOPCAP\",\n      \"loose\",\n      \"tight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfigure#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/subfiles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"import\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"subfileinclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfileinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"subfix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfix{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifSubfilesClassLoaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifSubfilesClassLoaded{${1:then}}{${2:else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfiles#c\": [\n      \"v1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfiles#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/supertabular.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bottomcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setSTheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSTheight{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"shrinkheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrinkheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablecaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefirsthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasttail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabletail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sttraceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpsupertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpsupertabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"supertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"supertabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/supertabular#c\": [\n      \"errorshow\",\n      \"pageshow\",\n      \"debugshow\",\n      \"estimate\",\n      \"calculate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/supertabular#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/svn-multi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"graphics\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgfimages\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"svngraphicsgroup\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngraphicsgroup{${1:graphic group name}}\"\n      }\n    },\n    {\n      \"name\": \"svnignoregraphic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoregraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsidergraphic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsidergraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svngraphicsgroup\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngraphicsgroup{${1:graphic group name}}\"\n      }\n    },\n    {\n      \"name\": \"svnignoregraphic\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoregraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsidergraphic\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsidergraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnid{$%<Id%>$}\"\n      }\n    },\n    {\n      \"name\": \"svnidlong\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"svnidlong{$%<HeadURL%>$}{$%<LastChangedDate%>$}{$%<LastRevision%>$}{$%<LastChangedBy%>$}\"\n      }\n    },\n    {\n      \"name\": \"svn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svn{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svn*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svn*{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svnkwsave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnkwsave{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svngroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngroup{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"thesvngroup\"\n    },\n    {\n      \"name\": \"svnsetcg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnsetcg{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"thesvncg\"\n    },\n    {\n      \"name\": \"svnsubgroup\"\n    },\n    {\n      \"name\": \"svnignoreextensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoreextensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsiderextensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsiderextensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"svnrev\"\n    },\n    {\n      \"name\": \"svndate\"\n    },\n    {\n      \"name\": \"svnauthor\"\n    },\n    {\n      \"name\": \"svnfilerev\"\n    },\n    {\n      \"name\": \"svnfiledate\"\n    },\n    {\n      \"name\": \"svnfileauthor\"\n    },\n    {\n      \"name\": \"svncgrev\"\n    },\n    {\n      \"name\": \"svncgauthor\"\n    },\n    {\n      \"name\": \"svncgdate\"\n    },\n    {\n      \"name\": \"svng\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svng{${1:group name}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"svnmainurl\"\n    },\n    {\n      \"name\": \"svnmainfilename\"\n    },\n    {\n      \"name\": \"svnsetmainfile\"\n    },\n    {\n      \"name\": \"svnkw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnkw{${1:keyword name}}\"\n      }\n    },\n    {\n      \"name\": \"svnkwdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnkwdef{${1:keyword name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"ifsvnfilemodified\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsvnfilemodified{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsvnmodified\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsvnmodified{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"svnyear\"\n    },\n    {\n      \"name\": \"svnfileyear\"\n    },\n    {\n      \"name\": \"svncgyear\"\n    },\n    {\n      \"name\": \"svnmonth\"\n    },\n    {\n      \"name\": \"svnfilemonth\"\n    },\n    {\n      \"name\": \"svncgmonth\"\n    },\n    {\n      \"name\": \"svnday\"\n    },\n    {\n      \"name\": \"svnfileday\"\n    },\n    {\n      \"name\": \"svncgday\"\n    },\n    {\n      \"name\": \"svnhour\"\n    },\n    {\n      \"name\": \"svnfilehour\"\n    },\n    {\n      \"name\": \"svncghour\"\n    },\n    {\n      \"name\": \"svnminute\"\n    },\n    {\n      \"name\": \"svnfileminute\"\n    },\n    {\n      \"name\": \"svncgminute\"\n    },\n    {\n      \"name\": \"svnsecond\"\n    },\n    {\n      \"name\": \"svnfilesecond\"\n    },\n    {\n      \"name\": \"svncgsecond\"\n    },\n    {\n      \"name\": \"svntimezone\"\n    },\n    {\n      \"name\": \"svnfiletimezone\"\n    },\n    {\n      \"name\": \"svncgtimezone\"\n    },\n    {\n      \"name\": \"svntimezonehour\"\n    },\n    {\n      \"name\": \"svnfiletimezonehour\"\n    },\n    {\n      \"name\": \"svncgtimezonehour\"\n    },\n    {\n      \"name\": \"svntimezoneminute\"\n    },\n    {\n      \"name\": \"svnfiletimezoneminute\"\n    },\n    {\n      \"name\": \"svncgtimezoneminute\"\n    },\n    {\n      \"name\": \"svntime\"\n    },\n    {\n      \"name\": \"svnfiletime\"\n    },\n    {\n      \"name\": \"svncgtime\"\n    },\n    {\n      \"name\": \"svnpdfdate\"\n    },\n    {\n      \"name\": \"svntoday\"\n    },\n    {\n      \"name\": \"svnfiletoday\"\n    },\n    {\n      \"name\": \"svncgtoday\"\n    },\n    {\n      \"name\": \"svnfilefname\"\n    },\n    {\n      \"name\": \"svnfileurl\"\n    },\n    {\n      \"name\": \"svncgfname\"\n    },\n    {\n      \"name\": \"svnurl\"\n    },\n    {\n      \"name\": \"svnfname\"\n    },\n    {\n      \"name\": \"svncgurl\"\n    },\n    {\n      \"name\": \"svnRegisterAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnRegisterAuthor{${1:author}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullAuthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullAuthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullAuthor*{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svnRegisterRevision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnRegisterRevision{${1:revision number}}{${2:tag name}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullRevision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullRevision{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullRevision*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullRevision*{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svnnolinkurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnnolinkurl{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"tableofrevisions\"\n    },\n    {\n      \"name\": \"svnrevisionsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnbeforetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnaftertable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvntable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntablehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntablefoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnglobalrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnglobalrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svngrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvngrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnsubgrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnsubgrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnfilerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnfilerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntabglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntabgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabgroup{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"svntabsubgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svntabsubgroup{${1:nesting level}}{${2:subgroup name}}\"\n      }\n    },\n    {\n      \"name\": \"svntabfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svntabfile{${1:nesting level}}{${2:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svntabrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabrev{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svntabauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabauthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svntabdate\",\n      \"arg\": {\n        \"format\": \"{{}{}{}{}{}{}{}{}}\",\n        \"snippet\": \"svntabdate{{${1:year}}{${2:month}}{${3:day}}{${4:hour}}{${5:minute}}{${6:second}}{${7:TZ hour}}{${8:TZ minute}}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svn-multi#c\": [\n      \"old\",\n      \"all\",\n      \"verbatim\",\n      \"external\",\n      \"groups\",\n      \"subgroups\",\n      \"graphics\",\n      \"pgfimages\",\n      \"autoload\",\n      \"table\",\n      \"filehooks\",\n      \"autokw=${1|false,true,all,ext|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svn-multi#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/svninfo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"svnInfoFile\"\n    },\n    {\n      \"name\": \"svnInfoRevision\"\n    },\n    {\n      \"name\": \"svnInfoMinRevision\"\n    },\n    {\n      \"name\": \"svnInfoMaxRevision\"\n    },\n    {\n      \"name\": \"svnInfoDate\"\n    },\n    {\n      \"name\": \"svnInfoTime\"\n    },\n    {\n      \"name\": \"svnInfoOwner\"\n    },\n    {\n      \"name\": \"svnInfoYear\"\n    },\n    {\n      \"name\": \"svnInfoMonth\"\n    },\n    {\n      \"name\": \"svnInfoDay\"\n    },\n    {\n      \"name\": \"svnInfoLongDate\"\n    },\n    {\n      \"name\": \"svnId\"\n    },\n    {\n      \"name\": \"svnToday\"\n    },\n    {\n      \"name\": \"svnInfoMaxToday\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svninfo#c\": [\n      \"svk\",\n      \"today\",\n      \"notoday\",\n      \"revrange\",\n      \"fancyhdr\",\n      \"nofancy\",\n      \"scrpage\",\n      \"eso-foot\",\n      \"margin\",\n      \"long\",\n      \"short\",\n      \"final\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svninfo#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tabu.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"delarray\",\n      \"if\": \"delarray\"\n    },\n    {\n      \"name\": \"linegoal\",\n      \"if\": \"linegoal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"usetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucline{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabucline[${2:spec}]{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"savetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preamble{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabuphantomline\"\n    },\n    {\n      \"name\": \"extrarowdepth\"\n    },\n    {\n      \"name\": \"abovetabulinesep\"\n    },\n    {\n      \"name\": \"belowtabulinesep\"\n    },\n    {\n      \"name\": \"tabustrutrule\"\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taburulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"||{}\",\n        \"snippet\": \"taburulecolor|${2:doubleRuleSepColor}|{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tabureset\"\n    },\n    {\n      \"name\": \"newtabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"everyrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyrow{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"rowfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rowfont[${2:alignment}]{${1:fontSpec}}\"\n      }\n    },\n    {\n      \"name\": \"tabudecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabudecimal{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"firstline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabuscantokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokenstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokensfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabucolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucolumn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabucolX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabudefaulttarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuDisableCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuendlongtrial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuthepreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaburow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingtabu\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabu#c\": [\n      \"delarray\",\n      \"linegoal\",\n      \"scantokens\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabu#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tabularray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ninecolors\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetTblrOuter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrOuter{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrOuter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrOuter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetTblrOuter[${2:envname}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrOuter#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetTblrInner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrInner{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrInner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetTblrInner[${2:envname}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHline{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetHline[${3:index}]{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetHlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHlines{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetHlines[${3:index}]{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetVspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetVspace{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hline[${1:styles%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cline[${2:styles%keyvals}]{${1:index}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"therownum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therowcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetVline{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetVline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetVline[${3:index}]{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetVlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetVlines{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetVlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetVlines[${3:index}]{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"vline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vline[${1:styles%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rline{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"rline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rline[${2:styles%keyvals}]{${1:index}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCell{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetCell[${2:r=rows,c=columns}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetCells\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCells{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCells\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetCells[${2:r=rows,c=columns}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetRow{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetRow#c,\\\\SetRows#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetRows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetRows{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetRow#c,\\\\SetRows#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetColumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetColumn{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetColumn#c,\\\\SetColumns#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetColumns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetColumns{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetColumn#c,\\\\SetColumns#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hborder{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hborder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vborder{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\vborder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewColumnType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewColumnType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnType\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewColumnType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRowType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewRowType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRowType\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewRowType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnRowType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewColumnRowType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnRowType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewColumnRowType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTblrEnviron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewTblrEnviron{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewChildSelector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChildSelector{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"NewChildSelector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewChildSelector{${1:arg1}}[${3:opt1}][${4:opt2}]{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"leftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTblrTracing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrTracing{${1:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrTracing#c,\\\\SetTabularrayTracing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefTblrTemplate{${1:element%keyvals}}{${2:template name}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTblrTemplate{${1:element%keyvals}}{${2:template name}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTblrTemplate{${1:element%keyvals}}{${2:template name}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseTblrTemplate{${1:element%keyvals}}{${2:default}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExpTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpTblrTemplate{${1:element%keyvals}}{${2:default}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tblrcontfootname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblrcontheadname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTblrStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTblrStyle{${1:element}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewTblrTheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTblrTheme{${1:theme name%specialDef}}{${2:specs}}\"\n      }\n    },\n    {\n      \"name\": \"TblrNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TblrNote{${1:mark-symbol}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsertTblrText{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrNoteTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrNoteText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrRemarkTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrRemarkText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTblrNotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTblrNotes{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"MapTblrRemarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTblrRemarks{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewTblrLibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTblrLibrary{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrLibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrLibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\UseTblrLibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LogTblrTracing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogTblrTracing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"GetTblrStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetTblrStyle{${1:element}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrAlign{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrIndent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrIndent{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrHang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrHang{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrColor{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrFont{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrMore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsertTblrMore{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NewDashStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDashStyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"TblrParboxRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignBoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignCenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrNewPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrOverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrMeasuringBool\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRowSpanTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellColSpanTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBackgroundTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellOmittedBool\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderColorTl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"tblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"longtblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"talltblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"talltblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\SetTblrOuter#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"valign=${1|t,m,b|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"headsep=\",\n      \"footsep=\",\n      \"presep=\",\n      \"postsep=\",\n      \"theme=${1:theme}\",\n      \"caption=${1:caption text}\",\n      \"entry=${1:short caption text}\",\n      \"label=\",\n      \"baseline=${2|t,T,m,b,B,${1:row number}|}\",\n      \"long\",\n      \"tall\",\n      \"expand\",\n      \"expand+\"\n    ],\n    \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\": [\n      \"colspec={${1:col types}}\",\n      \"rowspec={${1:row types}}\",\n      \"width=\",\n      \"hspan=${1|default,even,minimal|}\",\n      \"vspan=${1|default,even|}\",\n      \"stretch=${1:factor}\",\n      \"columns={${1:styles}}\",\n      \"rows={${1:styles}}\",\n      \"cells={${1:styles}}\",\n      \"hlines\",\n      \"hlines={${1:styles}}\",\n      \"hlines={${1:cols}}{${2:styles}}\",\n      \"vlines\",\n      \"vlines={${1:styles}}\",\n      \"vlines={${1:rows}}{${2:styles}}\",\n      \"leftsep=\",\n      \"rightsep=\",\n      \"colsep=\",\n      \"abovesep=\",\n      \"belowsep=\",\n      \"rowsep=\",\n      \"rulesep=\",\n      \"rowhead=${1:number}\",\n      \"rowfoot=${1:number}\",\n      \"column{${1:j}}={${2:styles}}\",\n      \"column\",\n      \"row{${1:i}}={${2:styles}}\",\n      \"row\",\n      \"cell{${1:i}}{${2:j}}={${3:styles}}\",\n      \"cell\",\n      \"vline{${1:j}}={${2:index}}{${3:cols}}{${4:styles}}\",\n      \"vline\",\n      \"hline{${1:i}}={${2:index}}{${3:cols}}{${4:styles}}\",\n      \"hline\",\n      \"measure=${1|vbox|}\",\n      \"baseline=${2|t,T,m,b,B,${1:row number}|}\",\n      \"delimiter={${1:keyvals}}\"\n    ],\n    \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\": [\n      \"dash=${1|solid,dashed,dotted|}\",\n      \"solid\",\n      \"dashed\",\n      \"dotted\",\n      \"text=\",\n      \"wd=\",\n      \"${1:width}\",\n      \"fg=\",\n      \"${1:color}\",\n      \"leftpos=\",\n      \"rightpos=\",\n      \"endpos\",\n      \"abovespace=\",\n      \"belowspace=\",\n      \"abovespace+=\",\n      \"belowspace+=\"\n    ],\n    \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\": [\n      \"dash=${1|solid,dashed,dotted|}\",\n      \"solid\",\n      \"dashed\",\n      \"dotted\",\n      \"text=\",\n      \"wd=\",\n      \"${1:width}\",\n      \"fg=\",\n      \"${1:color}\",\n      \"abovepos=\",\n      \"belowpos=\"\n    ],\n    \"\\\\SetCell#c,\\\\SetCells#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"wd=\",\n      \"${1:width}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\SetRow#c,\\\\SetRows#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"ht=\",\n      \"${1:height}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"abovesep=\",\n      \"abovesep+=\",\n      \"belowsep=\",\n      \"belowsep+=\",\n      \"rowsep=\",\n      \"rowsep+=\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\SetColumn#c,\\\\SetColumns#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"wd=\",\n      \"${1:width}\",\n      \"co=${1:coeff}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"leftsep=\",\n      \"leftsep+=\",\n      \"rightsep=\",\n      \"rightsep+=\",\n      \"colsep=\",\n      \"colsep+=\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\hborder#c\": [\n      \"pagebreak=${1|yes,no,auto|}\",\n      \"abovespace=\",\n      \"belowspace=\",\n      \"abovespace+=\",\n      \"belowspace+=\"\n    ],\n    \"\\\\vborder#c\": [\n      \"leftspace=\",\n      \"rightspace=\",\n      \"leftspace+=\",\n      \"rightspace+=\"\n    ],\n    \"\\\\SetTblrTracing#c,\\\\SetTabularrayTracing#c\": [\n      \"all\",\n      \"none\",\n      \"+row\",\n      \"+column\",\n      \"+text\",\n      \"-text\",\n      \"+command\",\n      \"-command\",\n      \"+option\",\n      \"-option\",\n      \"+theme\",\n      \"-theme\",\n      \"+outer\",\n      \"-outer\",\n      \"+inner\",\n      \"-inner\",\n      \"-column\",\n      \"-row\",\n      \"+cell\",\n      \"-cell\",\n      \"+vline\",\n      \"-vline\",\n      \"+hline\",\n      \"-hline\",\n      \"+colspec\",\n      \"-colspec\",\n      \"+rowspec\",\n      \"-rowspec\",\n      \"+target\",\n      \"-target\",\n      \"+cellspan\",\n      \"-cellspan\",\n      \"+intarray\",\n      \"-intarray\",\n      \"+page\",\n      \"-page\",\n      \"+step\",\n      \"-step\"\n    ],\n    \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\": [\n      \"headsep=\",\n      \"footsep=\",\n      \"presep=\",\n      \"postsep=\",\n      \"theme=\",\n      \"caption={${1:text}}\",\n      \"entry={${1:text}}\",\n      \"label=\",\n      \"note{${1:name}}={${2:text}}\",\n      \"remark{${1:name}}={${2:text}}\"\n    ],\n    \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\": [\n      \"contfoot-text\",\n      \"contfoot\",\n      \"conthead-text\",\n      \"conthead\",\n      \"conthead-pre\",\n      \"caption-tag\",\n      \"caption-sep\",\n      \"caption-text\",\n      \"caption\",\n      \"caption-lot\",\n      \"capcont\",\n      \"note-tag\",\n      \"note-sep\",\n      \"note-text\",\n      \"note-border\",\n      \"note\",\n      \"remark-tag\",\n      \"remark-sep\",\n      \"remark-text\",\n      \"remark\",\n      \"firsthead\",\n      \"middlehead\",\n      \"lasthead\",\n      \"head\",\n      \"firstfoot\",\n      \"middlefoot\",\n      \"lastfoot\",\n      \"foot\"\n    ],\n    \"\\\\SetTblrStyle#c\": [\n      \"fg=\",\n      \"${1:color}\",\n      \"font=${1:commands}\",\n      \"${1:font commands}\",\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"indent=\",\n      \"hang=\"\n    ],\n    \"\\\\UseTblrLibrary#c\": [\n      \"amsmath\",\n      \"booktabs\",\n      \"counter\",\n      \"diagbox\",\n      \"functional\",\n      \"hook\",\n      \"html\",\n      \"nameref\",\n      \"siunitx\",\n      \"varwidth\",\n      \"zref\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/tabularx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabularxcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingtabularx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabularx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"tabularx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabularx#c\": [\n      \"infoshow\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabularx#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tabulary.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tyformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tymin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tymax\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabulary\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabulary#c\": [\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabulary#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tcolorbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\",\n      \"if\": \"skins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\",\n      \"if\": \"vignette\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryraster\",\n      \"if\": \"raster\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\",\n      \"if\": \"listings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\",\n      \"if\": \"listingsutf8\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\",\n      \"if\": \"minted\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\",\n      \"if\": \"theorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\",\n      \"if\": \"breakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\",\n      \"if\": \"magazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\",\n      \"if\": \"poster\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\",\n      \"if\": \"fitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\",\n      \"if\": \"hooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\",\n      \"if\": \"external\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarydocumentation\",\n      \"if\": \"documentation\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"many\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\",\n      \"if\": \"most\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryall\",\n      \"if\": \"all\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbuselibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbuselibrary{${1:library%keys}}\"\n      }\n    },\n    {\n      \"name\": \"tcblower\"\n    },\n    {\n      \"name\": \"tcbset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbset{${1:options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbsetforeverylayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsetforeverylayer{${1:options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbox{${1:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbox[${2:options%keyvals}]{${1:box content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"tcboxverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcboxverb{${1:verbatim box content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxverb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcboxverb[${2:options%keyvals}]{${1:verbatim box content%definition}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcolorboxenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcolorboxenvironment{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"tcbtitletext\"\n    },\n    {\n      \"name\": \"tcbtitle\"\n    },\n    {\n      \"name\": \"tcbsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbsubtitle[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbheightfromgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbheightfromgroup{${1:macro%cmd}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsetmanagedlayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsetmanagedlayers{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thetcblayer\"\n    },\n    {\n      \"name\": \"tcbifoddpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbifoddpage{${1:odd code}}{${2:even code}}\"\n      }\n    },\n    {\n      \"name\": \"tcbifoddpageoroneside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbifoddpageoroneside{${1:odd code}}{${2:even code}}\"\n      }\n    },\n    {\n      \"name\": \"thetcolorboxnumber\"\n    },\n    {\n      \"name\": \"thetcolorboxpage\"\n    },\n    {\n      \"name\": \"thetcbcounter\"\n    },\n    {\n      \"name\": \"tcbcounter\"\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcblistof{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tcblistof{${1:name}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcblistof[${3:section macro}]{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"tcblistof[${3:section macro}]{${1:name}}[${4:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsidebyside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsidebyside{${1:left-handed content%text}}{${2:right-handed content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsidebyside\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcbsidebyside[${3:options%keyvals}]{${1:left-handed content%text}}{${2:right-handed content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endtcbverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbusetemp\"\n    },\n    {\n      \"name\": \"tcbstartrecording\"\n    },\n    {\n      \"name\": \"tcbstartrecording\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tcbstartrecording[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"tcbrecord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbrecord{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"tcbstoprecording\"\n    },\n    {\n      \"name\": \"tcbinputrecords\"\n    },\n    {\n      \"name\": \"tcbinputrecords\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tcbinputrecords[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"tcbsubskin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tcbsubskin{${1:name}}{${2:base skin}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"tcbheightspace\"\n    },\n    {\n      \"name\": \"tcbtextwidth\"\n    },\n    {\n      \"name\": \"tcbtextheight\"\n    },\n    {\n      \"name\": \"tcbsegmentstate\"\n    },\n    {\n      \"name\": \"tcbpatcharcangular\"\n    },\n    {\n      \"name\": \"tcbpatcharcround\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbverbatimwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tcbwritetemp\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbuselibrary,\\\\usepackage/tcolorbox#c\": [\n      \"skins\",\n      \"vignette\",\n      \"raster\",\n      \"listings\",\n      \"listingsutf8\",\n      \"minted\",\n      \"theorems\",\n      \"breakable\",\n      \"magazine\",\n      \"poster\",\n      \"fitting\",\n      \"hooks\",\n      \"xparse\",\n      \"external\",\n      \"documentation\",\n      \"many\",\n      \"most\",\n      \"all\"\n    ],\n    \"\\\\tcbset\": [\n      \"library/skins\",\n      \"library/vignette\",\n      \"library/raster\",\n      \"library/listings\",\n      \"library/listingsutf8\",\n      \"library/minted\",\n      \"library/theorems\",\n      \"library/breakable\",\n      \"library/magazine\",\n      \"library/poster\",\n      \"library/fitting\",\n      \"library/hooks\",\n      \"library/xparse\",\n      \"library/external\",\n      \"library/documentation\",\n      \"library/many\",\n      \"library/most\",\n      \"library/all\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignored|}\",\n      \"savelowerto=${1:file name}\",\n      \"redirectlowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign code={${1:code}}\",\n      \"halign upper code={${1:code}}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower code={${1:code}}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title code={${1:code}}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"before title*={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"after title*={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"environment upper=${1:name}\",\n      \"environment upper args={${1:name}}{${2:code}}\",\n      \"environment lower=${1:name}\",\n      \"environment lower args={${1:name}}{${2:code}}\",\n      \"environment title=${1:name}\",\n      \"environment title args={${1:name}}{${2:code}}\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"every box on higher layers/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label is label\",\n      \"label is zlabel\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"nameref=${1:text}\",\n      \"short title=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"verbatim ignore indention at end\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\"\n    ],\n    \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\": [\n      \"tcbox raise=\",\n      \"tcbox raise base\",\n      \"on line\",\n      \"verbatim\",\n      \"tcbox width=${1|auto,auto limited,forced center,forced left,forced right,minimum center,minimum left,minimum right|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\tcbuselibrary,\\\\usepackage/tcolorbox#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tensor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"indices\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indices{${1:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"indices*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indices*{${1:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensor{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tensor[${3:pre-indices}]{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensor*{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tensor*[${3:pre-indices}]{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"indexmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nuclide{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nuclide[${2:mass no%formula}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nuclide[${2:mass no%formula}][${3:atomic no%formula}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclideFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"massnumFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensorSmash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensorStrut\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tensor#c\": [\n      \"align\",\n      \"text\",\n      \"nosmash\",\n      \"nostrut\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tensor#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"above\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovedisplayshortskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovedisplayskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovewithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjdemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterassignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftergroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atopwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"batchmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begingroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowdisplayshortskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowdisplayskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binoppenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"botmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"box\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxmaxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brokenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"char\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closein\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clubpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"count\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crcr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"day\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deadcycles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"def\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaulthyphenchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultskewchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimiterfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimitershortfall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimendef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discretionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"discretionary{${1:pre-break}}{${2:post-break}}{${3:no-break}}\"\n      }\n    },\n    {\n      \"name\": \"displayindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaylimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidowpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublehyphendemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"else\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emergencystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"end\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endcsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlinechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"errhelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errmessage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"errmessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"errorcontextlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errorstopmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"escapechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everydisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyjob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exhyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalhyphendemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatingpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"font\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futurelet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"global\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globaldefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hbadness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hfil\"\n    },\n    {\n      \"name\": \"hfill\"\n    },\n    {\n      \"name\": \"hfilneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"holdinginserts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrule\"\n    },\n    {\n      \"name\": \"hsize\"\n    },\n    {\n      \"name\": \"hskip\"\n    },\n    {\n      \"name\": \"hss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyphenation{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"if\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvoid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorespaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"language\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"left\"\n    },\n    {\n      \"name\": \"lefthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"let\"\n    },\n    {\n      \"name\": \"limits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"long\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"looseness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mark{${1:mark text}}\"\n      }\n    },\n    {\n      \"name\": \"mathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchoice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mathchoice{${1:display}}{${2:text%plain}}{${3:subscript}}{${4:subsubscript}}\"\n      }\n    },\n    {\n      \"name\": \"mathclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathinner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathsurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxdeadcycles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meaning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"message\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"message{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"month\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moveleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moveright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiply\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muskipdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlinechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noalign{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"noboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonstopmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nulldelimiterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nullfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"number\"\n    },\n    {\n      \"name\": \"omit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"or\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"output\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"over\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overfullrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefilllstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefillstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefilstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagegoal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageshrink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"par\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patterns{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"pausing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postdisplaypenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaypenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pretolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prevdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prevgraf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"read\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relax\"\n    },\n    {\n      \"name\": \"relpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"right\"\n    },\n    {\n      \"name\": \"rightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"righthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romannumeral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptscriptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scrollmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"show\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showboxbreadth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showthe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skewchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spaceskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"span\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"special\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"special{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"splitbotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitfirstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitmaxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splittopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"string\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"the\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"time\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toksdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracinglostchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingmacros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingonline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingparagraphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingrestores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingstats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uchyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unhcopy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unvcopy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vadjust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vadjust{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"valign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valign{${1:⟨preamble⟩ \\\\cr ⟨column⟩ \\\\cr ... ⟨column⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"vbadness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vcenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcenter{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"vfil\"\n    },\n    {\n      \"name\": \"vfill\"\n    },\n    {\n      \"name\": \"vfilneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrule\"\n    },\n    {\n      \"name\": \"vsize\"\n    },\n    {\n      \"name\": \"vskip\"\n    },\n    {\n      \"name\": \"vsplit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vtop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtop{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"wd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widowpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"write\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xspaceskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aa\"\n    },\n    {\n      \"name\": \"AA\"\n    },\n    {\n      \"name\": \"active\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ae\"\n    },\n    {\n      \"name\": \"AE\"\n    },\n    {\n      \"name\": \"aleph\",\n      \"detail\": \"ℵ\",\n      \"doc\": \"Aleph, hebrew\"\n    },\n    {\n      \"name\": \"allowbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amalg\",\n      \"detail\": \"⨿\",\n      \"doc\": \"Amalgamation or coproduct\"\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"arrowvert\"\n    },\n    {\n      \"name\": \"Arrowvert\"\n    },\n    {\n      \"name\": \"ast\",\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"asymp\",\n      \"detail\": \"≍\",\n      \"doc\": \"Asymptotically equal to\"\n    },\n    {\n      \"name\": \"b\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"b{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"bf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"big\"\n    },\n    {\n      \"name\": \"Big\"\n    },\n    {\n      \"name\": \"bigbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcirc\"\n    },\n    {\n      \"name\": \"bigg\"\n    },\n    {\n      \"name\": \"Bigg\"\n    },\n    {\n      \"name\": \"biggl\"\n    },\n    {\n      \"name\": \"Biggl\"\n    },\n    {\n      \"name\": \"biggm\"\n    },\n    {\n      \"name\": \"Biggm\"\n    },\n    {\n      \"name\": \"biggr\"\n    },\n    {\n      \"name\": \"Biggr\"\n    },\n    {\n      \"name\": \"bigl\"\n    },\n    {\n      \"name\": \"Bigl\"\n    },\n    {\n      \"name\": \"bigm\"\n    },\n    {\n      \"name\": \"Bigm\"\n    },\n    {\n      \"name\": \"bigodot\",\n      \"detail\": \"⨀\",\n      \"doc\": \"N-ary circled dot operator\"\n    },\n    {\n      \"name\": \"bigoplus\",\n      \"detail\": \"⨁\",\n      \"doc\": \"N-ary circled plus operator\"\n    },\n    {\n      \"name\": \"bigotimes\",\n      \"detail\": \"⨂\",\n      \"doc\": \"N-ary circled times operator\"\n    },\n    {\n      \"name\": \"bigr\"\n    },\n    {\n      \"name\": \"Bigr\"\n    },\n    {\n      \"name\": \"bigskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcup\",\n      \"detail\": \"⨆\",\n      \"doc\": \"N-ary square union operator\"\n    },\n    {\n      \"name\": \"bigtriangledown\",\n      \"detail\": \"▽\",\n      \"doc\": \"Big down triangle, open\"\n    },\n    {\n      \"name\": \"bigtriangleup\",\n      \"detail\": \"△\",\n      \"doc\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n    },\n    {\n      \"name\": \"biguplus\",\n      \"detail\": \"⨄\",\n      \"doc\": \"N-ary union operator with plus\"\n    },\n    {\n      \"name\": \"bigvee\",\n      \"detail\": \"⋁\",\n      \"doc\": \"Logical and operator\"\n    },\n    {\n      \"name\": \"bigwedge\",\n      \"detail\": \"⋀\",\n      \"doc\": \"Logical or operator\"\n    },\n    {\n      \"name\": \"bmod\"\n    },\n    {\n      \"name\": \"bordermatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bordermatrix{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"bot\",\n      \"detail\": \"⊥\",\n      \"doc\": \"Up tack, bottom\"\n    },\n    {\n      \"name\": \"bowtie\",\n      \"detail\": \"⋈\",\n      \"doc\": \"\\\\lrtimes (txfonts), bowtie\"\n    },\n    {\n      \"name\": \"brace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracevert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"break\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"buildrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bullet\"\n    },\n    {\n      \"name\": \"c\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"c{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"cal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cases{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"cdotp\",\n      \"detail\": \"·\",\n      \"doc\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n    },\n    {\n      \"name\": \"choose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clubsuit\",\n      \"detail\": \"♣\",\n      \"doc\": \"Club suit symbol\"\n    },\n    {\n      \"name\": \"colon\"\n    },\n    {\n      \"name\": \"cong\",\n      \"detail\": \"≅\",\n      \"doc\": \"Congruent with\"\n    },\n    {\n      \"name\": \"coprod\",\n      \"detail\": \"∐\",\n      \"doc\": \"Coproduct operator\"\n    },\n    {\n      \"name\": \"copyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cos\"\n    },\n    {\n      \"name\": \"cosh\"\n    },\n    {\n      \"name\": \"cot\"\n    },\n    {\n      \"name\": \"coth\"\n    },\n    {\n      \"name\": \"csc\"\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"dag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"dashv\",\n      \"detail\": \"⊣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left tack, non-theorem, does not yield, (dash and vertical)\"\n    },\n    {\n      \"name\": \"ddag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"deg\"\n    },\n    {\n      \"name\": \"det\"\n    },\n    {\n      \"name\": \"diamond\"\n    },\n    {\n      \"name\": \"diamondsuit\",\n      \"detail\": \"♢\",\n      \"doc\": \"Diamond suit symbol\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"displaylines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displaylines{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"doteq\",\n      \"detail\": \"≐\",\n      \"doc\": \"\\\\dotequal (wrisym), equals, single dot above\"\n    },\n    {\n      \"name\": \"dotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dots\"\n    },\n    {\n      \"name\": \"downarrow\",\n      \"detail\": \"↓\",\n      \"doc\": \"Downward arrow\"\n    },\n    {\n      \"name\": \"Downarrow\",\n      \"detail\": \"⇓\",\n      \"doc\": \"Down double arrow\"\n    },\n    {\n      \"name\": \"downbracefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ell\",\n      \"detail\": \"ℓ\",\n      \"doc\": \"Cursive small l\"\n    },\n    {\n      \"name\": \"empty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyset\"\n    },\n    {\n      \"name\": \"endgraf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exp\"\n    },\n    {\n      \"name\": \"filbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"fmtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmtversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frown\",\n      \"detail\": \"⌢\",\n      \"doc\": \"\\\\smallfrown, frown (down curve)\"\n    },\n    {\n      \"name\": \"gcd\"\n    },\n    {\n      \"name\": \"ge\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"goodbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"H\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"H{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"heartsuit\",\n      \"detail\": \"♡\",\n      \"doc\": \"Heart suit symbol\"\n    },\n    {\n      \"name\": \"hglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hidewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hom\"\n    },\n    {\n      \"name\": \"hookleftarrow\",\n      \"detail\": \"↩\",\n      \"doc\": \"Left arrow-hooked\"\n    },\n    {\n      \"name\": \"hookrightarrow\",\n      \"detail\": \"↪\",\n      \"doc\": \"Right arrow-hooked\"\n    },\n    {\n      \"name\": \"hphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ialign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ialign{${1:⟨preamble⟩ \\\\cr ⟨row⟩ \\\\cr ... ⟨row⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"iff\"\n    },\n    {\n      \"name\": \"Im\",\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"imath\",\n      \"detail\": \"𝚤\",\n      \"doc\": \"Mathematical italic small dotless i\"\n    },\n    {\n      \"name\": \"inf\"\n    },\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"j\"\n    },\n    {\n      \"name\": \"jmath\",\n      \"detail\": \"𝚥\",\n      \"doc\": \"Mathematical italic small dotless j\"\n    },\n    {\n      \"name\": \"jot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ker\"\n    },\n    {\n      \"name\": \"l\"\n    },\n    {\n      \"name\": \"L\"\n    },\n    {\n      \"name\": \"land\"\n    },\n    {\n      \"name\": \"langle\",\n      \"detail\": \"⟨\",\n      \"doc\": \"Mathematical left angle bracket\"\n    },\n    {\n      \"name\": \"lbrace\",\n      \"detail\": \"{\",\n      \"doc\": \"\\\\lbrace, left curly bracket\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"lceil\",\n      \"detail\": \"⌈\",\n      \"doc\": \"Left ceiling\"\n    },\n    {\n      \"name\": \"ldotp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"leftarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftharpoondown\",\n      \"detail\": \"↽\",\n      \"doc\": \"Left harpoon-down\"\n    },\n    {\n      \"name\": \"leftharpoonup\",\n      \"detail\": \"↼\",\n      \"doc\": \"Left harpoon-up\"\n    },\n    {\n      \"name\": \"leftline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightarrow\",\n      \"detail\": \"↔\",\n      \"doc\": \"\\\\rel (oz), left right arrow, relation\"\n    },\n    {\n      \"name\": \"lfloor\",\n      \"detail\": \"⌊\",\n      \"doc\": \"Left floor\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"lgroup\"\n    },\n    {\n      \"name\": \"lim\"\n    },\n    {\n      \"name\": \"liminf\"\n    },\n    {\n      \"name\": \"limsup\"\n    },\n    {\n      \"name\": \"line\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"line{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"llap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lmoustache\",\n      \"unusual\": true,\n      \"detail\": \"⎰\",\n      \"doc\": \"? \\\\lmoustache, upper left or lower right curly bracket section\"\n    },\n    {\n      \"name\": \"ln\"\n    },\n    {\n      \"name\": \"lnot\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"loggingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"longleftrightarrow\",\n      \"detail\": \"⟷\",\n      \"doc\": \"Long left right arrow\"\n    },\n    {\n      \"name\": \"Longleftrightarrow\",\n      \"detail\": \"⟺\",\n      \"doc\": \"\\\\iff (oz), long left right double arrow\"\n    },\n    {\n      \"name\": \"longmapsto\",\n      \"detail\": \"⟼\",\n      \"doc\": \"Long rightwards arrow from bar\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"loop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lor\"\n    },\n    {\n      \"name\": \"lq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magstephalf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsto\",\n      \"detail\": \"↦\",\n      \"doc\": \"Maps to, rightward, maplet\"\n    },\n    {\n      \"name\": \"mathpalette\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathpalette{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mathstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrix{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"max\"\n    },\n    {\n      \"name\": \"maxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"mit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"models\",\n      \"detail\": \"⊧\",\n      \"doc\": \"Models (vertical, short double dash)\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"nabla\",\n      \"detail\": \"∇\",\n      \"doc\": \"Nabla, del, hamilton operator\"\n    },\n    {\n      \"name\": \"narrower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"nearrow\",\n      \"detail\": \"↗\",\n      \"doc\": \"Ne pointing arrow\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"negthinspace\"\n    },\n    {\n      \"name\": \"newbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newhelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newtoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ni\",\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"nobreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nointerlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonfrenchspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normallineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normallineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"not\",\n      \"detail\": \" ̸\",\n      \"doc\": \"Combining long solidus overlay\"\n    },\n    {\n      \"name\": \"null\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwarrow\",\n      \"detail\": \"↖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Nw pointing arrow\"\n    },\n    {\n      \"name\": \"o\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"oalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"obeylines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeyspaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odot\",\n      \"detail\": \"⊙\",\n      \"doc\": \"Middle dot in circle\"\n    },\n    {\n      \"name\": \"oe\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"offinterlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"ominus\",\n      \"detail\": \"⊖\",\n      \"doc\": \"Minus sign in circle\"\n    },\n    {\n      \"name\": \"ooalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ooalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oplus\",\n      \"detail\": \"⊕\",\n      \"doc\": \"Plus sign in circle\"\n    },\n    {\n      \"name\": \"oslash\",\n      \"detail\": \"⊘\",\n      \"doc\": \"Solidus in circle\"\n    },\n    {\n      \"name\": \"otimes\",\n      \"detail\": \"⊗\",\n      \"doc\": \"Multiply sign in circle\"\n    },\n    {\n      \"name\": \"overleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftarrow{${1:text%plain}}\"\n      },\n      \"detail\": \"x⃖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\overleftarrow, combining left arrow above\"\n    },\n    {\n      \"name\": \"overrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarrow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"owns\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"parallel\",\n      \"detail\": \"∥\",\n      \"doc\": \"Parallel\"\n    },\n    {\n      \"name\": \"perp\",\n      \"detail\": \"⟂\",\n      \"doc\": \"Perpendicular\"\n    },\n    {\n      \"name\": \"phantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmatrix{${1:line \\\\cr line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"pmod\"\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"prec\",\n      \"detail\": \"≺\",\n      \"doc\": \"Precedes\"\n    },\n    {\n      \"name\": \"preceq\",\n      \"detail\": \"⪯\",\n      \"doc\": \"Precedes above single-line equals sign\"\n    },\n    {\n      \"name\": \"propto\",\n      \"detail\": \"∝\",\n      \"doc\": \"\\\\varpropto (amssymb), is proportional to\"\n    },\n    {\n      \"name\": \"qquad\"\n    },\n    {\n      \"name\": \"quad\"\n    },\n    {\n      \"name\": \"raggedbottom\"\n    },\n    {\n      \"name\": \"rangle\",\n      \"detail\": \"⟩\",\n      \"doc\": \"Mathematical right angle bracket\"\n    },\n    {\n      \"name\": \"rbrace\",\n      \"detail\": \"}\",\n      \"doc\": \"\\\\rbrace, right curly bracket\"\n    },\n    {\n      \"name\": \"rbrack\",\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"rceil\",\n      \"detail\": \"⌉\",\n      \"doc\": \"Right ceiling\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"repeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfloor\",\n      \"detail\": \"⌋\",\n      \"doc\": \"Right floor\"\n    },\n    {\n      \"name\": \"rgroup\"\n    },\n    {\n      \"name\": \"rightarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightharpoondown\",\n      \"detail\": \"⇁\",\n      \"doc\": \"Right harpoon-down\"\n    },\n    {\n      \"name\": \"rightharpoonup\",\n      \"detail\": \"⇀\",\n      \"doc\": \"Right harpoon-up\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmoustache\",\n      \"unusual\": true,\n      \"detail\": \"⎱\",\n      \"doc\": \"? \\\\rmoustache, upper right or lower left curly bracket section\"\n    },\n    {\n      \"name\": \"root\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"sb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"searrow\",\n      \"detail\": \"↘\",\n      \"doc\": \"Se pointing arrow\"\n    },\n    {\n      \"name\": \"sec\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"showhyphens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showhyphens{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"sim\",\n      \"detail\": \"∼\",\n      \"doc\": \"Similar to, tilde operator\"\n    },\n    {\n      \"name\": \"simeq\",\n      \"detail\": \"≃\",\n      \"doc\": \"Similar, equals\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"sinh\"\n    },\n    {\n      \"name\": \"skew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"skew{${1:num}}{${2:math accent}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"sl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallint\"\n    },\n    {\n      \"name\": \"smallskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smile\",\n      \"detail\": \"⌣\",\n      \"doc\": \"\\\\smallsmile, smile (up curve)\"\n    },\n    {\n      \"name\": \"sp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"space\"\n    },\n    {\n      \"name\": \"spadesuit\",\n      \"detail\": \"♠\",\n      \"doc\": \"Spades suit symbol\"\n    },\n    {\n      \"name\": \"sqcap\",\n      \"detail\": \"⊓\",\n      \"doc\": \"Square intersection\"\n    },\n    {\n      \"name\": \"sqcup\",\n      \"detail\": \"⊔\",\n      \"doc\": \"Square union\"\n    },\n    {\n      \"name\": \"sqsubseteq\",\n      \"detail\": \"⊑\",\n      \"doc\": \"Square subset, equals\"\n    },\n    {\n      \"name\": \"sqsupseteq\",\n      \"detail\": \"⊒\",\n      \"doc\": \"Square superset, equals\"\n    },\n    {\n      \"name\": \"ss\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"strut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseteq\",\n      \"detail\": \"⊆\",\n      \"doc\": \"Subset, equals\"\n    },\n    {\n      \"name\": \"succ\",\n      \"detail\": \"≻\",\n      \"doc\": \"Succeeds\"\n    },\n    {\n      \"name\": \"succeq\",\n      \"detail\": \"⪰\",\n      \"doc\": \"Succeeds above single-line equals sign\"\n    },\n    {\n      \"name\": \"sup\"\n    },\n    {\n      \"name\": \"supseteq\",\n      \"detail\": \"⊇\",\n      \"doc\": \"Superset, equals\"\n    },\n    {\n      \"name\": \"surd\"\n    },\n    {\n      \"name\": \"swarrow\",\n      \"detail\": \"↙\",\n      \"doc\": \"Sw pointing arrow\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:oo}}\"\n      }\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"TeX\"\n    },\n    {\n      \"name\": \"thinspace\"\n    },\n    {\n      \"name\": \"to\"\n    },\n    {\n      \"name\": \"top\",\n      \"detail\": \"⊤\",\n      \"doc\": \"Down tack, top\"\n    },\n    {\n      \"name\": \"tracingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangle\"\n    },\n    {\n      \"name\": \"triangleleft\",\n      \"detail\": \"◁ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\dres (oz), \\\\lefttriangle (wrisym), (large) left triangle, open; domain restriction\"\n    },\n    {\n      \"name\": \"triangleright\",\n      \"detail\": \"▷ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\rres (oz), \\\\righttriangle (wrisym), (large) right triangle, open; range restriction\"\n    },\n    {\n      \"name\": \"tt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"u\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"u{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"underbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:text}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"uparrow\",\n      \"detail\": \"↑\",\n      \"doc\": \"Upward arrow\"\n    },\n    {\n      \"name\": \"Uparrow\",\n      \"detail\": \"⇑\",\n      \"doc\": \"Up double arrow\"\n    },\n    {\n      \"name\": \"upbracefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownarrow\",\n      \"detail\": \"↕\",\n      \"doc\": \"Up and down arrow\"\n    },\n    {\n      \"name\": \"Updownarrow\",\n      \"detail\": \"⇕\",\n      \"doc\": \"Up and down double arrow\"\n    },\n    {\n      \"name\": \"uplus\",\n      \"detail\": \"⊎\",\n      \"doc\": \"\\\\buni (oz), plus sign in union\"\n    },\n    {\n      \"name\": \"v\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"v{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"vdash\",\n      \"detail\": \"⊢\",\n      \"doc\": \"Right tack, proves, implies, yields, (vertical and dash)\"\n    },\n    {\n      \"name\": \"vert\",\n      \"detail\": \"|\",\n      \"doc\": \"\\\\vert, vertical bar\"\n    },\n    {\n      \"name\": \"Vert\",\n      \"detail\": \"‖\",\n      \"doc\": \"\\\\vert, double vertical bar\"\n    },\n    {\n      \"name\": \"vglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wlog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wlog{${1:token list%text}}\"\n      }\n    },\n    {\n      \"name\": \"wp\",\n      \"detail\": \"℘ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Weierstrass p\"\n    },\n    {\n      \"name\": \"wr\",\n      \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Wreath product\"\n    },\n    {\n      \"name\": \"allocationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"do\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dospecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interdisplaylinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interfootnotelinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"joinrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leavevmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathhexbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removelastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rootbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vdots\",\n      \"detail\": \"⋮\",\n      \"doc\": \"Vertical ellipsis\"\n    },\n    {\n      \"name\": \"big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big(${1}\\\\big)\"\n      }\n    },\n    {\n      \"name\": \"big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big[${1}\\\\big]\"\n      }\n    },\n    {\n      \"name\": \"big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big|${1}\\\\big|\"\n      }\n    },\n    {\n      \"name\": \"Big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big(${1}\\\\Big)\"\n      }\n    },\n    {\n      \"name\": \"Big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big[${1}\\\\Big]\"\n      }\n    },\n    {\n      \"name\": \"Big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big|${1}\\\\Big|\"\n      }\n    },\n    {\n      \"name\": \"bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl(${1}\\\\bigr)\"\n      }\n    },\n    {\n      \"name\": \"bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl[${1}\\\\bigr]\"\n      }\n    },\n    {\n      \"name\": \"bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl\\\\{${1}\\\\bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl(${1}\\\\Bigr)\"\n      }\n    },\n    {\n      \"name\": \"Bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl[${1}\\\\Bigr]\"\n      }\n    },\n    {\n      \"name\": \"Bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl\\\\{${1}\\\\Bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl(${1}\\\\biggr)\"\n      }\n    },\n    {\n      \"name\": \"biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl[${1}\\\\biggr]\"\n      }\n    },\n    {\n      \"name\": \"biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl\\\\{${1}\\\\biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl(${1}\\\\Biggr)\"\n      }\n    },\n    {\n      \"name\": \"Biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl[${1}\\\\Biggr]\"\n      }\n    },\n    {\n      \"name\": \"Biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl\\\\{${1}\\\\Biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"int_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"int_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"lim_\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lim_{${1:min}}\"\n      }\n    },\n    {\n      \"name\": \"prod_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"prod_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"sum_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"sum_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"beginL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"endL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeof{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"currentgrouplevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentgrouptype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentiflevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentiftype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentifbranch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcsname\"\n    },\n    {\n      \"name\": \"ifdefined\"\n    },\n    {\n      \"name\": \"interactionmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinefit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middle\"\n    },\n    {\n      \"name\": \"numexpr\"\n    },\n    {\n      \"name\": \"parshapedimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshapeindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshapelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaydirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protected\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scantokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scantokens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"showgroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showtokens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TeXXeTstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingassigns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracinggroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingifs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingscantokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unexpanded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unexpanded{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueshrink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluestretchorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueshrinkorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluetomu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mutoglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlinepenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clubpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widowpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidowpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingnesting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savingvdiscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savinghyphcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showifs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagediscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitdiscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffontchar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/textcomp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"capitalacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalacute{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalbreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalbreve{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcaron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcaron{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcedilla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcedilla{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcircumflex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcircumflex{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaldieresis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaldieresis{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaldotaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaldotaccent{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalgrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalgrave{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalhungarumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalhungarumlaut{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalmacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalmacron{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalnewtie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalnewtie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalogonek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalogonek{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalring{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaltie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaltie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaltilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaltilde{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"newtie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"textacutedbl\"\n    },\n    {\n      \"name\": \"textascendercompwordmark\"\n    },\n    {\n      \"name\": \"textasciiacute\"\n    },\n    {\n      \"name\": \"textasciibreve\"\n    },\n    {\n      \"name\": \"textasciicaron\"\n    },\n    {\n      \"name\": \"textasciidieresis\"\n    },\n    {\n      \"name\": \"textasciigrave\"\n    },\n    {\n      \"name\": \"textasciimacron\"\n    },\n    {\n      \"name\": \"textasteriskcentered\"\n    },\n    {\n      \"name\": \"textbaht\"\n    },\n    {\n      \"name\": \"textbardbl\"\n    },\n    {\n      \"name\": \"textbigcircle\"\n    },\n    {\n      \"name\": \"textblank\"\n    },\n    {\n      \"name\": \"textborn\"\n    },\n    {\n      \"name\": \"textbrokenbar\"\n    },\n    {\n      \"name\": \"textbullet\"\n    },\n    {\n      \"name\": \"textcapitalcompwordmark\"\n    },\n    {\n      \"name\": \"textcelsius\"\n    },\n    {\n      \"name\": \"textcent\"\n    },\n    {\n      \"name\": \"textcentoldstyle\"\n    },\n    {\n      \"name\": \"textcircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcircledP\"\n    },\n    {\n      \"name\": \"textcolonmonetary\"\n    },\n    {\n      \"name\": \"textcopyleft\"\n    },\n    {\n      \"name\": \"textcopyright\"\n    },\n    {\n      \"name\": \"textcurrency\"\n    },\n    {\n      \"name\": \"textdagger\"\n    },\n    {\n      \"name\": \"textdaggerdbl\"\n    },\n    {\n      \"name\": \"textdblhyphen\"\n    },\n    {\n      \"name\": \"textdblhyphenchar\"\n    },\n    {\n      \"name\": \"textdegree\"\n    },\n    {\n      \"name\": \"textdied\"\n    },\n    {\n      \"name\": \"textdiscount\"\n    },\n    {\n      \"name\": \"textdiv\"\n    },\n    {\n      \"name\": \"textdivorced\"\n    },\n    {\n      \"name\": \"textdollar\"\n    },\n    {\n      \"name\": \"textdollaroldstyle\"\n    },\n    {\n      \"name\": \"textdong\"\n    },\n    {\n      \"name\": \"textdownarrow\"\n    },\n    {\n      \"name\": \"texteightoldstyle\"\n    },\n    {\n      \"name\": \"textestimated\"\n    },\n    {\n      \"name\": \"texteuro\"\n    },\n    {\n      \"name\": \"textfiveoldstyle\"\n    },\n    {\n      \"name\": \"textflorin\"\n    },\n    {\n      \"name\": \"textfouroldstyle\"\n    },\n    {\n      \"name\": \"textfractionsolidus\"\n    },\n    {\n      \"name\": \"textgravedbl\"\n    },\n    {\n      \"name\": \"textguarani\"\n    },\n    {\n      \"name\": \"textinterrobang\"\n    },\n    {\n      \"name\": \"textinterrobangdown\"\n    },\n    {\n      \"name\": \"textlangle\"\n    },\n    {\n      \"name\": \"textlbrackdbl\"\n    },\n    {\n      \"name\": \"textleaf\"\n    },\n    {\n      \"name\": \"textleftarrow\"\n    },\n    {\n      \"name\": \"textlegacyasteriskcentered\"\n    },\n    {\n      \"name\": \"textlegacybardbl\"\n    },\n    {\n      \"name\": \"textlegacybullet\"\n    },\n    {\n      \"name\": \"textlegacydagger\"\n    },\n    {\n      \"name\": \"textlegacydaggerdbl\"\n    },\n    {\n      \"name\": \"textlegacyparagraph\"\n    },\n    {\n      \"name\": \"textlegacyperiodcentered\"\n    },\n    {\n      \"name\": \"textlegacysection\"\n    },\n    {\n      \"name\": \"textlira\"\n    },\n    {\n      \"name\": \"textlnot\"\n    },\n    {\n      \"name\": \"textlquill\"\n    },\n    {\n      \"name\": \"textmarried\"\n    },\n    {\n      \"name\": \"textmho\"\n    },\n    {\n      \"name\": \"textminus\"\n    },\n    {\n      \"name\": \"textmu\"\n    },\n    {\n      \"name\": \"textmusicalnote\"\n    },\n    {\n      \"name\": \"textnaira\"\n    },\n    {\n      \"name\": \"textnineoldstyle\"\n    },\n    {\n      \"name\": \"textnumero\"\n    },\n    {\n      \"name\": \"textohm\"\n    },\n    {\n      \"name\": \"textonehalf\"\n    },\n    {\n      \"name\": \"textoneoldstyle\"\n    },\n    {\n      \"name\": \"textonequarter\"\n    },\n    {\n      \"name\": \"textonesuperior\"\n    },\n    {\n      \"name\": \"textopenbullet\"\n    },\n    {\n      \"name\": \"textordfeminine\"\n    },\n    {\n      \"name\": \"textordmasculine\"\n    },\n    {\n      \"name\": \"textparagraph\"\n    },\n    {\n      \"name\": \"textperiodcentered\"\n    },\n    {\n      \"name\": \"textpertenthousand\"\n    },\n    {\n      \"name\": \"textperthousand\"\n    },\n    {\n      \"name\": \"textpeso\"\n    },\n    {\n      \"name\": \"textpilcrow\"\n    },\n    {\n      \"name\": \"textpm\"\n    },\n    {\n      \"name\": \"textquotesingle\"\n    },\n    {\n      \"name\": \"textquotestraightbase\"\n    },\n    {\n      \"name\": \"textquotestraightdblbase\"\n    },\n    {\n      \"name\": \"textrangle\"\n    },\n    {\n      \"name\": \"textrbrackdbl\"\n    },\n    {\n      \"name\": \"textrecipe\"\n    },\n    {\n      \"name\": \"textreferencemark\"\n    },\n    {\n      \"name\": \"textregistered\"\n    },\n    {\n      \"name\": \"textrightarrow\"\n    },\n    {\n      \"name\": \"textrquill\"\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"textservicemark\"\n    },\n    {\n      \"name\": \"textsevenoldstyle\"\n    },\n    {\n      \"name\": \"textsixoldstyle\"\n    },\n    {\n      \"name\": \"textsterling\"\n    },\n    {\n      \"name\": \"textsurd\"\n    },\n    {\n      \"name\": \"textthreeoldstyle\"\n    },\n    {\n      \"name\": \"textthreequarters\"\n    },\n    {\n      \"name\": \"textthreequartersemdash\"\n    },\n    {\n      \"name\": \"textthreesuperior\"\n    },\n    {\n      \"name\": \"texttildelow\"\n    },\n    {\n      \"name\": \"texttimes\"\n    },\n    {\n      \"name\": \"texttrademark\"\n    },\n    {\n      \"name\": \"texttwelveudash\"\n    },\n    {\n      \"name\": \"texttwooldstyle\"\n    },\n    {\n      \"name\": \"texttwosuperior\"\n    },\n    {\n      \"name\": \"textuparrow\"\n    },\n    {\n      \"name\": \"textwon\"\n    },\n    {\n      \"name\": \"textyen\"\n    },\n    {\n      \"name\": \"textzerooldstyle\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:A}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textcomp#c\": [\n      \"full\",\n      \"almostfull\",\n      \"euro\",\n      \"safe\",\n      \"error\",\n      \"warn\",\n      \"info\",\n      \"quiet\",\n      \"force\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textcomp#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/theorem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"theorembodyfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorembodyfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"theoremheaderfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremheaderfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"theorempreskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorempostskipamount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/tikz-cd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/tikz-timing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"texttiming\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttiming{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"texttiming\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texttiming[${2:init char/TikZ keys}]{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"timing\"\n    },\n    {\n      \"name\": \"timing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timing[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"extracode\"\n    },\n    {\n      \"name\": \"extracode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"extracode[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"endextracode\"\n    },\n    {\n      \"name\": \"tablegrid\"\n    },\n    {\n      \"name\": \"tablegrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablegrid[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"tablegrid*\"\n    },\n    {\n      \"name\": \"tablegrid*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablegrid*[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fulltablegrid\"\n    },\n    {\n      \"name\": \"fulltablegrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fulltablegrid[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"nrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coldist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"horlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"horlines{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"horlines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"horlines[${2:TikZ keys}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"vertlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertlines{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"vertlines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vertlines[${2:TikZ keys}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"tableheader\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tableheader{${1:description title%text}}{${2:signal title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableheader\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tableheader[${3:TikZ keys}]{${1:description title%text}}{${2:signal title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tablerules\"\n    },\n    {\n      \"name\": \"tablerules\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablerules[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"background\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztimingsetwscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetwscale{${1:math expr}}\"\n      }\n    },\n    {\n      \"name\": \"setwscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwscale{${1:math expr}}\"\n      }\n    },\n    {\n      \"name\": \"wscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztimingmetachar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingmetachar{${1:meta char}}{${2:char group}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingmetachar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tikztimingmetachar{${1:meta char}}[${3:args}]{${2:char group}}\"\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetikztiminglibrary{${1:libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usetikztiminglibrary[${2:options}]{${1:libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"usetikztiminglibrary[${2:options}]{${1:libraries%keyvals}}[${3:date}]\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikztimingcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingcounter{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingsetcounter{${1:char}}{${2:pgfmath expr}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timingwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timingheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"list\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"style\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdraw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newdraw[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"newdrawns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdrawns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newdrawns[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetdslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetdslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetzslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetzslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztiminguse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztiminguse{${1:char}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingdef{${1:char}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingcpy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingcpy{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztiminglet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztiminglet{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikztimingchar{${1:char}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingecopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingecopy{${1:char1}}{${2:char2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikztimingtable\"\n    },\n    {\n      \"name\": \"extracode\"\n    },\n    {\n      \"name\": \"extracode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"background\"\n    },\n    {\n      \"name\": \"background\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ keys}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetikztiminglibrary\": [\n      \"arrows\",\n      \"either\",\n      \"overlays\",\n      \"clockarrows\",\n      \"columntype\",\n      \"nicetabs\",\n      \"counters\",\n      \"advnodes\",\n      \"ifsym\",\n      \"interval\",\n      \"beamer\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scoped\"\n    },\n    {\n      \"name\": \"scoped\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scoped[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzoption{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikzparentanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchildanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzparentnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchildnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzdeclarecoordinatesystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzdeclarecoordinatesystem{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaliascoordinatesystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaliascoordinatesystem{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzifinpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzifinpicture{${1:in code}}{${2:out code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaddtikzonlycommandshortcutlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaddtikzonlycommandshortcutlet{${1:short cmd%cmd}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaddtikzonlycommandshortcutdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaddtikzonlycommandshortcutdef{${1:short cmd%cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"nodepart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodepart{${1:part name}}\"\n      }\n    },\n    {\n      \"name\": \"nodepart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nodepart[${2:options%keyvals}]{${1:part name}}\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfextra{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztostart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztotarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztonodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlastnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzleveldistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzsiblingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztreelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikznumberofchildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikznumberofcurrentchild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzpictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzpictextoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usetikzlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetikzlibrary{${1:library list%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikzlibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplothandlercurveto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetplottension\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplottension{${1:tension}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlerclosedcurve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxcomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerycomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxzerolevelstreamconstant{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotyzerolevelstreamconstant{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotbarshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerybar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerybarinterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxbarinterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlinetomarkright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlinetomarkmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerpolarcomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplothandlermark{${1:mark code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarkrepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarkrepeat{${1:repeat count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarkphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarkphase{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlermarklisted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplothandlermarklisted{${1:code}}{${2:positions}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareplotmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareplotmark{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarksize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotmarksize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseplotmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseplotmark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlergaplineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlergapcycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcurrentrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcurrentcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixbeforeassemblenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmatrixbeforeassemblenode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetmatrixrowsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmatrixrowsep{${1:sep list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetmatrixcolumnsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmatrixcolumnsep{${1:sep list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcolumnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfmatrix{${1:shape}}{${2:anchor}}{${3:name}}{${4:usage}}{${5:shift}}{${6:precode}}{${7:matrix cells}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixnextcell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixnextcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfmatrixnextcell[${1:additional sep list}]\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixbegincode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixemptycode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfmatrixendrow[${1:additional sep list}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scope\"\n    },\n    {\n      \"name\": \"scope\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzpicture\"\n    },\n    {\n      \"name\": \"tikzpicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetikzlibrary#c\": [\n      \"3d\",\n      \"angles\",\n      \"animations\",\n      \"arrows.meta\",\n      \"automata\",\n      \"babel\",\n      \"backgrounds\",\n      \"bayesnet\",\n      \"bbox\",\n      \"bending\",\n      \"braids\",\n      \"calc\",\n      \"calendar\",\n      \"calligraphy\",\n      \"cd\",\n      \"celtic\",\n      \"chains\",\n      \"circuits\",\n      \"circuits.ee\",\n      \"circuits.ee.IEC\",\n      \"circuits.ee.IEC.relay\",\n      \"circuits.logic\",\n      \"circuits.logic.CDH\",\n      \"circuits.logic.IEC\",\n      \"circuits.logic.US\",\n      \"circuits.plc.ladder\",\n      \"circuits.plc.sfc\",\n      \"colorbrewer\",\n      \"commutative-diagrams\",\n      \"curvilinear\",\n      \"datavisualization\",\n      \"datavisualization.3d\",\n      \"datavisualization.barcharts\",\n      \"datavisualization.formats.functions\",\n      \"datavisualization.polar\",\n      \"datavisualization.sparklines\",\n      \"decorations\",\n      \"decorations.footprints\",\n      \"decorations.fractals\",\n      \"decorations.markings\",\n      \"decorations.pathmorphing\",\n      \"decorations.pathreplacing\",\n      \"decorations.shapes\",\n      \"decorations.text\",\n      \"dubins\",\n      \"ducks\",\n      \"er\",\n      \"ext.calendar-plus\",\n      \"ext.misc\",\n      \"ext.node-families\",\n      \"ext.node-families.shapes.geometric\",\n      \"ext.paths.arcto\",\n      \"ext.paths.ortho\",\n      \"ext.paths.timer\",\n      \"ext.patterns.images\",\n      \"ext.positioning-plus\",\n      \"ext.scalepicture\",\n      \"ext.shapes.circlearrow\",\n      \"ext.shapes.circlecrosssplit\",\n      \"ext.shapes.heatmark\",\n      \"ext.shapes.rectangleroundedcorners\",\n      \"ext.shapes.superellipse\",\n      \"ext.shapes.uncenteredrectangle\",\n      \"ext.topaths.arcthrough\",\n      \"ext.transformations.mirror\",\n      \"external\",\n      \"fadings\",\n      \"fill.hexagon\",\n      \"fill.image\",\n      \"fill.rhombus\",\n      \"fit\",\n      \"fixedpointarithmetic\",\n      \"folding\",\n      \"fpu\",\n      \"graphdrawing\",\n      \"graphs\",\n      \"graphs.standard\",\n      \"hobby\",\n      \"intersections\",\n      \"karnaugh\",\n      \"knots\",\n      \"lindenmayersystems\",\n      \"math\",\n      \"matrix\",\n      \"matrix.skeleton\",\n      \"mindmap\",\n      \"nef\",\n      \"ocgx\",\n      \"optics\",\n      \"overlay-beamer-styles\",\n      \"patterns\",\n      \"patterns.images\",\n      \"patterns.meta\",\n      \"penrose\",\n      \"perspective\",\n      \"petri\",\n      \"plothandlers\",\n      \"plotmarks\",\n      \"positioning\",\n      \"profiler\",\n      \"quantikz\",\n      \"quotes\",\n      \"rdf\",\n      \"rulercompass\",\n      \"scopes\",\n      \"shadings\",\n      \"shadows\",\n      \"shadows.blur\",\n      \"shapes\",\n      \"shapes.arrows\",\n      \"shapes.callouts\",\n      \"shapes.gates.ee\",\n      \"shapes.gates.ee.IEC\",\n      \"shapes.gates.logic\",\n      \"shapes.gates.logic.IEC\",\n      \"shapes.gates.logic.US\",\n      \"shapes.geometric\",\n      \"shapes.misc\",\n      \"shapes.multipart\",\n      \"shapes.symbols\",\n      \"spath3\",\n      \"spy\",\n      \"svg.path\",\n      \"swigs\",\n      \"switching-architectures\",\n      \"through\",\n      \"tikzmark\",\n      \"topaths\",\n      \"tqft\",\n      \"trees\",\n      \"turtle\",\n      \"views\",\n      \"zx-calculus\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"every picture/.style={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\": [\n      \"baseline\",\n      \"baseline=${1:<dimen> or <coord> or default}\",\n      \"execute at begin picture=${1:code}\",\n      \"execute at end picture=${1:code}\",\n      \"every scope/.style={${1:options}}\"\n    ],\n    \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"execute at begin scope=${1:code}\",\n      \"execute at end scope=${1:code}\",\n      \"transparency group\",\n      \"transparency group=${1:options}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every path/.style={${1:options}}\",\n      \"every circle/.style={${1:options}}\",\n      \"every to/.style={${1:options}}\",\n      \"every node/.style={${1:options}}\",\n      \"every lower node part/.style={${1:options}}\",\n      \"every label/.style={${1:options}}\",\n      \"every pin/.style={${1:options}}\",\n      \"every pin edge/.style={${1:options}}\",\n      \"every edge/.style={${1:options}}\",\n      \"every pic/.style={${1:options}}\",\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"every matrix/.style={${1:options}}\",\n      \"every outer matrix/.style={${1:options}}\",\n      \"every child/.style={${1:options}}\",\n      \"every child node/.style={${1:options}}\",\n      \"every plot/.style={${1:options}}\",\n      \"every mark/.style={${1:options}}\",\n      \"every loop/.style={${1:options}}\",\n      \"execute at begin to=${1:code}\",\n      \"execute at end to=${1:code}\",\n      \"execute at begin node=${1:code}\",\n      \"execute at end node=${1:code}\",\n      \"trim left\",\n      \"trim left=${1:<dimen> or <coord> or default}\",\n      \"trim right\",\n      \"trim right=${1:<dimen> or <coord> or default}\",\n      \"tri lowlevel\",\n      \"name prefix=${1:text}\",\n      \"name suffix=${1:text}\",\n      \"badness warnings for centered text\",\n      \"node halign header=${1:macro}\",\n      \"level/.style={${1:options}}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"level distance=\",\n      \"sibling distance=\",\n      \"edge from parent/.style={${1:options}}\",\n      \"variable=${1:macro}\",\n      \"samples=${1:number}\",\n      \"domain=${1:start}:${2:end}\",\n      \"samples at=${1:samples list}\",\n      \"parametric\",\n      \"range=${1:start}:${2:end}\",\n      \"yrange=${1:start}:${2:end}\",\n      \"xrange=${1:start}:${2:end}\",\n      \"id=${1:id}\",\n      \"prefix\",\n      \"raw gnuplot\",\n      \"mark=${1:mark}\",\n      \"mark repeat=${1:number}\",\n      \"mark phase=${1:number}\",\n      \"mark indices=${1:list}\",\n      \"mark size=\",\n      \"mark options={${1:options}}\",\n      \"no marks\",\n      \"no markers\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:value}\",\n      \"smooth cycle\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"ycomb\",\n      \"xcomb\",\n      \"polar comb\",\n      \"ybar\",\n      \"xbar\",\n      \"ybar interval\",\n      \"xbar interval\",\n      \"only marks\",\n      \"blend mode=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"blend group=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"matrix/inner style order={${1:list}}\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar interval shift=${1:factor}\",\n      \"bar interval width=${1:scale}\",\n      \"gap around stream point=\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"remember picture\",\n      \"overlay\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\"\n    ],\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"use as bounding box\",\n      \"clip\",\n      \"preaction={${1:options}}\",\n      \"postaction={${1:options}}\",\n      \"late options={${1:options}}\",\n      \"pic actions\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"matrix\",\n      \"shape=${1:shape}\",\n      \"circle\",\n      \"rectangle\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\": [\n      \"pic type=${1:type}\",\n      \"pics/code=${1:code}\",\n      \"pics/foreground code=${1:code}\",\n      \"pics/background code=${1:code}\",\n      \"pic text=${1:text}\",\n      \"pic text options={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\": [\n      \"column sep=\",\n      \"row sep=\",\n      \"every cell={${1:row}}{${2:column}}\",\n      \"cells={${1:options}}\",\n      \"nodes={${1:options}}\",\n      \"column ${1:n}/.style={${2:options}}\",\n      \"every odd column/.style={${1:options}}\",\n      \"every even column/.style={${1:options}}\",\n      \"row ${1:m}/.style={${2:options}}\",\n      \"every odd row/.style={${1:options}}\",\n      \"every even row/.style={${1:options}}\",\n      \"row ${1:m} column ${2:n}/.style={${3:options}}\",\n      \"execute at begin cell=${1:code}\",\n      \"execute at end cell=${1:code}\",\n      \"execute at empty cell=${1:code}\",\n      \"matrix anchor=${1:anchor}\",\n      \"ampersand replacement=${1:macro}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/titlesec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"titleps\",\n      \"if\": \"pagestyles\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlelabel{${1:label-format}}\"\n      }\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"titleformat*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleformat*{${1:command%plain}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"titleformat{${1:command%plain}}{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}\"\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"titleformat{${1:command%plain}}[${6:shape%keyvals}]{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}\",\n        \"keys\": [\n          \"\\\\titleformat#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[]\",\n        \"snippet\": \"titleformat{${1:command%plain}}[${6:shape%keyvals}]{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}[${7:after-code}]\",\n        \"keys\": [\n          \"\\\\titleformat#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chaptertitlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlespacing\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titlespacing{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"titlespacing\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"titlespacing{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}[${5:right-sep%l}]\"\n      }\n    },\n    {\n      \"name\": \"titlespacing*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titlespacing*{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"titlespacing*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"titlespacing*{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}[${5:right-sep%l}]\"\n      }\n    },\n    {\n      \"name\": \"beforetitleunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitleunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filright\"\n    },\n    {\n      \"name\": \"filcenter\"\n    },\n    {\n      \"name\": \"filleft\"\n    },\n    {\n      \"name\": \"fillast\"\n    },\n    {\n      \"name\": \"filinner\"\n    },\n    {\n      \"name\": \"filouter\"\n    },\n    {\n      \"name\": \"wordsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomtitlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nostruts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"if\": \"calcwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline*{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"if\": \"calcwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline*[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titlerule\"\n    },\n    {\n      \"name\": \"titlerule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"titlerule[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerule*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlerule*[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlewidthfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlewidthlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlemeasuring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftitlemeasuring{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"assignpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"assignpagestyle{${1:command%plain}}{${2:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"sectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptertolists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleclass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleclass{${1:name%cmd}}{${2:class%keyvals}}\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleclass\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"titleclass{${1:name%cmd}}{${2:class%keyvals}}[${3:super-level-cmd}]\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"titleclass{${1:name%cmd}}[${3:start-level-num}]{${2:class%keyvals}}\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titlesec#c\": [\n      \"rm\",\n      \"sf\",\n      \"tt\",\n      \"md\",\n      \"bf\",\n      \"up\",\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"big\",\n      \"medium\",\n      \"small\",\n      \"tiny\",\n      \"raggedleft\",\n      \"center\",\n      \"raggedright\",\n      \"compact\",\n      \"uppercase\",\n      \"indentafter\",\n      \"noindentafter\",\n      \"rigidchapters\",\n      \"rubberchapters\",\n      \"bottomtitles\",\n      \"nobottomtitles\",\n      \"nobottomtitles*\",\n      \"aftersep\",\n      \"largestsep\",\n      \"pageatnewline\",\n      \"nostruts\",\n      \"calcwidth\",\n      \"explicit\",\n      \"oldparttoc\",\n      \"newparttoc\",\n      \"clearempty\",\n      \"toctitles\",\n      \"newlinetospace\",\n      \"notocpart*\",\n      \"loadonly\",\n      \"pagestyles\",\n      \"floatps\",\n      \"psfloats\",\n      \"extramarks\",\n      \"outermarks\",\n      \"topmarks\",\n      \"botmarks\",\n      \"innermarks\",\n      \"footmarks\"\n    ],\n    \"\\\\titleformat#c\": [\n      \"hang\",\n      \"block\",\n      \"display\",\n      \"runin\",\n      \"leftmargin\",\n      \"rightmargin\",\n      \"drop\",\n      \"wrap\",\n      \"frame\"\n    ],\n    \"\\\\titleline,\\\\titleline*\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\titleclass\": [\n      \"page\",\n      \"top\",\n      \"straight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titlesec#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tkz-euclide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryangles\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.shapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarythrough\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"luacode\",\n      \"if\": \"lua\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzmathanglebetweenpoints\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzmathanglebetweenpoints{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSqrt\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzSqrt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzExp\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzExp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLog\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzLog{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSin\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzSin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzCos\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzCos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<x%>},${3:%<y%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<x%>},${4:%<y%>}){${1:ref}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<angle%>:%<radius%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<angle%>:%<radius%>}){${1:ref}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:%<x%>},${4:%<y%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:%<angle%>:%<radius%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPointCoord[${2:point1}](${3:angle:radius}){${1:point2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzDefPoints{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzDefPoints[${2:options%keyvals}]{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetPoint{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzGetPoints{${1:ref1}}{${2:ref2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetFirstPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetFirstPoint{${1:ref1}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetSecondPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetSecondPoint{${1:ref2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetThirdPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetThirdPoint{${1:ref3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetLength{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMidPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMidPoint(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBarycentricPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBarycentricPoint(${1:point1=num1},${2:point2=num2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSimilitudeCenter\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDefSimilitudeCenter(${1:O},${2:A})(${3:O'},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSimilitudeCenter\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefSimilitudeCenter[${1:options%keyvals}](${2:O},${3:A})(${4:O'},${5:B})\",\n        \"keys\": [\n          \"\\\\tkzDefSimilitudeCenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefHarmonic\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefHarmonic(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefHarmonic\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefHarmonic[${1:options%keyvals}](${2:pt1},${3:pt2},${4:pt3})\",\n        \"keys\": [\n          \"\\\\tkzDefHarmonic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenRatio\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenRatio(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquiPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEquiPoints(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquiPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefEquiPoints[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefEquiPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefMidArc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMidArc(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangleCenter\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTriangleCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangleCenter\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTriangleCenter[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDefTriangleCenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefProjExcenter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDefProjExcenter(${2:A},${3:B},${4:C})(${5:a},${6:b},${7:c}){${1:X,Y,Z}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefProjExcenter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"tkzDefProjExcenter[${2:options%keyvals}](${3:A},${4:B},${5:C})(${6:a},${7:b},${8:c}){${1:X,Y,Z}}\",\n        \"keys\": [\n          \"\\\\tkzDefProjExcenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointOnLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointOnLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefPointOnLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDefPointOnCircle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefPointOnCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointBy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointBy(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointBy\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointBy[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointsBy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPointsBy(${2:point1},${3:point2},${4:...}){${1:point1,point2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointsBy\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPointsBy[${2:options%keyvals}](${3:point1},${4:point2},${5:...}){${1:point1,point2,...}}\",\n        \"keys\": [\n          \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointWith\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointWith(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointWith\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointWith[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefPointWith#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGetVectxy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetVectxy(${2:point1},${3:point2}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefTangent\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTangent(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTangent\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTangent[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefTangent#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTriangle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefTriangle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefSpcTriangle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefSpcTriangle[${2:options%keyvals}](${3:point1},${4:point2},${5:point3}){${1:ref1,ref2,ref3}}\",\n        \"keys\": [\n          \"\\\\tkzDefSpcTriangle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPermute\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPermute(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSquare\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSquare(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRectangle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefParallelogram\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefParallelogram(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenRectangle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldRectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRegPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefRegPolygon(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRegPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefRegPolygon[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefRegPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleBy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleBy(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleBy\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefCircleBy[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefCircleBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInterLL\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLL(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLC\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzInterLC[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3},${5:point4})\",\n        \"keys\": [\n          \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInterCC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCC\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzInterCC[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3},${5:point4})\",\n        \"keys\": [\n          \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTestInterCC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTestInterCC(${1:O},${2:A})(${3:O'},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"iftkzFlagCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagCCtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagCCfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInterCCN\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCCN(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCCR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCCR(${1:point1},${2:radius1})(${3:point2},${4:radius2})\"\n      }\n    },\n    {\n      \"name\": \"tkzGetAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGetAngle(${1:csname})\"\n      }\n    },\n    {\n      \"name\": \"tkzAngleResult\"\n    },\n    {\n      \"name\": \"tkzFindAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFindAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFindSlopeAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFindSlopeAngle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRandPointOn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDefRandPointOn[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefRandPointOn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoint(${1:name})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoint[${1:options%keyvals}](${2:name})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoints(${1:name1},${2:name2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoints[${1:options%keyvals}](${2:name1},${3:name2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawLines\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawLines(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLines\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawLines[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegment\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegment\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSegment[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegments\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSegments(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegments\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSegments[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolySeg\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolySeg(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolySeg\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolySeg[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSemiCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSemiCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSemiCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSemiCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDrawArc(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArc[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDrawArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDrawSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDrawSector#c,\\\\tkzFillSector#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzFillPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzFillSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzFillAngle#c,\\\\tkzFillAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzInit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzInit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClip\"\n    },\n    {\n      \"name\": \"tkzClip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzClip[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzClip#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowBB\"\n    },\n    {\n      \"name\": \"tkzShowBB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzShowBB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzShowBB#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipBB\"\n    },\n    {\n      \"name\": \"tkzClipPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzClipPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzClipPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzClipPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzClipPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzClipCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzClipCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzClipCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzClipCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzClipSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzClipSector#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzClipSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegment\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegment\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkSegment[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegments\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkSegments(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegments\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkSegments[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkArc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkArc(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkArc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkArc[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkAngle#c,\\\\tkzMarkAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkRightAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkRightAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkRightAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkRightAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkRightAngle#c,\\\\tkzMarkRightAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPicAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPicAngle(${1:A},${2:O},${3:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPicAngle[${1:TikZ options}](${2:A},${3:O},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicRightAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPicRightAngle(${1:A},${2:O},${3:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicRightAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPicRightAngle[${1:TikZ options}](${2:A},${3:O},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelPoint(${2:point}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelPoint[${2:options%keyvals}](${3:point}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLabelPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzLabelPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzAutoLabelPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzAutoLabelPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzAutoLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzAutoLabelPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\",\n          \"\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegment\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelSegment(${2:point1},${3:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegment\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelSegment[${2:options%keyvals}](${3:point1},${4:point2}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegments\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelSegments(${2:pt1},${3:pt2 pt3},${4:pt4 ...}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegments\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelSegments[${2:options%keyvals}](${3:pt1},${4:pt2 pt3},${5:pt4 ...}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelLine\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelLine(${2:point1},${3:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelLine\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelLine[${2:options%keyvals}](${3:point1},${4:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLabelAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzLabelAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzLabelAngle#c,\\\\tkzLabelAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelCircle\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzLabelCircle(${2:point1},${3:point2})(${4:angle}){${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelCircle\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"tkzLabelCircle[${2:options%keyvals}](${3:point1},${4:point2})(${5:angle}){${1:label%plain}}\",\n        \"keys\": [\n          \"\\\\tkzLabelCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelArc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelArc(${2:point1},${3:point2},${4:point3}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelArc\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelArc[${2:options%keyvals}](${3:point1},${4:point2},${5:point3}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzCompass\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCompass(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCompass\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCompass[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzCompass#c,\\\\tkzCompasss#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzCompasss\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCompasss(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzCompasss\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCompasss[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzCompass#c,\\\\tkzCompasss#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzShowLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowTransformation\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowTransformation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowTransformation\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowTransformation[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzShowTransformation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzProtractor\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzProtractor(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzProtractor\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzProtractor[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzProtractor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateSegment\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDuplicateSegment(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateSegment\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDuplicateSegment(${2:point1},${3:point2})(${4:point3},${5:point4}){${1:point5}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDuplicateLength(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDuplicateLength(${2:point1},${3:point2})(${4:point3},${5:point4}){${1:point5}}\"\n      }\n    },\n    {\n      \"name\": \"tkzCalcLength\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCalcLength(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCalcLength\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCalcLength[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzCalcLength#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzpttocm\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzpttocm(${2:number}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzcmtopt\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzcmtopt(${2:number}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointCoord\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointCoord(${2:point}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSwapPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSwapPoints(${1:A},${2:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzDotProduct\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDotProduct(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzPowerCircle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzPowerCircle(${1:A})(${2:O},${3:M})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRadicalAxis\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDefRadicalAxis(${1:A},${2:B})(${3:C},${4:D})\"\n      }\n    },\n    {\n      \"name\": \"tkzIsLinear\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsLinear(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzIsOrtho\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsOrtho(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzGetResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetResult{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpColors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpColors[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpColors#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpPoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpPoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpLine\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpLine[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpArc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpArc[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpCompass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpCompass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpLabel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpLabel[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzSetUpStyle[${2:TikZ options}]{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLengthResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftkzLinear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLineartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLinearfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftkzOrtho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzOrthotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzOrthofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupcolorkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupcolorkeys{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpAllColors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAllColors[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzNormalizeAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNormalizeAngle(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"tkzpointnormalised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzpointnormalised{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzmathrotatepointaround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tkzmathrotatepointaround{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"extractxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractxy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iftkznodedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftkznodedefined{${1:node}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tkzActivOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzActivOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CountToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CountToken{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SubStringConditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubStringConditional{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"RecursionMacroEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecursionMacroEnd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ReplaceSubStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ReplaceSubStrings{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"DisabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzMathResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzHelpGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\",\n        \"keys\": [\n          \"\\\\tkzText#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzLegend{${1:style/size/color/text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzLegend[${2:options%keyvals}]{${1:style/size/color/text}}\",\n        \"keys\": [\n          \"\\\\tkzLegend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpAxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAxis[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawX\"\n    },\n    {\n      \"name\": \"tkzDrawX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawX[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawY\"\n    },\n    {\n      \"name\": \"tkzDrawY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygons\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolygons(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygons\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolygons[${1:options}](${2:point1},${3:point2},${4:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelRegPolygon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelRegPolygon(${2:point}){${1:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelRegPolygon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelRegPolygon[${2:options}](${3:point}){${1:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"iftkzClipOutPoly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutPolytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutPolyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpCircle[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"iftkzClipOutCircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutCircletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutCirclefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpGrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpGrid[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzGrid[${1:options}]\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzGrid[${1:options}](${2:%<x1%>},${3:%<y1%>})(${4:%<x2%>},${5:%<y2%>})\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleTranslation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleHomothety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleHomothety(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleReflection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleReflection(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleSymmetry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleSymmetry(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleRotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleRotation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthogonalCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthogonalCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoThroughCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoThroughCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInversionCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInversionCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquilateral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEquilateral(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIsoscelesRightTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefIsoscelesRightTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawEquilateral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawEquilateral[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIsoscelesRightTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefIsoscelesRightTriangle[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTwoOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTwoOne(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPythagore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPythagore(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSchoolTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSchoolTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEuclideTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEuclideTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCheopsTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCheopsTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTwoAnglesTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTwoAnglesTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"SetUpPTTR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUpPTTR{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIncentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefIncentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExcentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefExcentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzExcentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzExcentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIntouchTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefIntouchTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefContactTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefContactTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefFeuerbachTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefFeuerbachTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCentroidTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefCentroidTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMedialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefMedialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMidpointTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefMidpointTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthicTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefOrthicTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefAltitudeTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefAltitudeTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefEulerTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTangentialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefTangentialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSymmedialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefSymmedialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPointShowCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPointShowCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowPointCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowPointCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleR(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleD(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircumCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircumCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExRadius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExRadius(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefNinePointsCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefNinePointsCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFeuerBachCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFeuerBachCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerRadius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerRadius(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefApolloniusCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefApolloniusCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthogonalCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthogonalCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoThroughCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoThroughCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSpiekerCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSpiekerCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRwithNodesAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRwithNodesAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLineLL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefLineLL[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefOrthLine[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMediatorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefMediatorLine[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBisectorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBisectorLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBisectorOutLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBisectorOutLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSymmedianLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSymmedianLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefAltitudeLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefAltitudeLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtAt(${1:point1})(${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtFromP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtFromP(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtFromPR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtFromPR(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzRegPolygonCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRegPolygonCenter(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRegPolygonSide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRegPolygonSide(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRenamePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzRenamePoint(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointxy(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcTowards\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcTowards[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRwithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRwithNodes[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRAN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzPathArcRAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzPathArcRAN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnRect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnRect(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnSegment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnCircleThrough\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnCircleThrough(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnDisk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnDisk(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKOrth[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecK\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecK[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKOrthNorm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKOrthNorm[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKNorm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKNorm[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowMediatorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowMediatorLine[${1:opts}](${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowLLLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowLLLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowOrthLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowOrthLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowBisectorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowBisectorLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowTranslation[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowSymOrth[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowCSym[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowProjection[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"FirstPointInList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstPointInList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzTranslation(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUTranslation(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzCSym(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUCSym(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzSymOrth(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUSymOrth(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzProjection(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUProjection(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzHomo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzHomo(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUHomo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUHomo(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRotateAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzRotateAngle(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzURotateAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzURotateAngle(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRotateInRad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzRotateInRad(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzURotateInRad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzURotateInRad(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzInversePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzInversePoint(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUInversePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUInversePoint(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzInverseNegativePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzInverseNegativePoint(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUInverseNegativePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUInverseNegativePoint(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBCPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBCPoint(${1:point1=num1},${2:point2=num2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDivHarmonic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDivHarmonic(${1:pt1},${2:pt2},${3:pt3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDivHarmonic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDivHarmonic[${1:options%keyvals}](${2:pt1},${3:pt2},${4:pt3})\"\n      }\n    },\n    {\n      \"name\": \"tkzOrthoCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzOrthoCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzCentroid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCentroid(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzBaryCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzBaryCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzCircumCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCircumCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircumCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircumCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzInCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzInCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzExCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzExCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzEulerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzEulerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzNinePointCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNinePointCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzSymmedianCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSymmedianCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzLemoinePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLemoinePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzGrebePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGrebePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLemoinePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefLemoinePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzSpiekerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSpiekerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSpiekerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSpiekerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzGergonneCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGergonneCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGergonneCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGergonneCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzNagelCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNagelCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefNagelCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefNagelCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMittenpunktCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMittenpunktCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMittenpunktCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMittenpunktCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMiddlespoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMiddlespoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFeuerbachCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFeuerbachCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefFeuerbachCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefFeuerbachCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzOrthogonalCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzOrthogonalCenter(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"usetkzobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkzobj{${1:list of objects}}\"\n      }\n    },\n    {\n      \"name\": \"usetkztool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkztool{${1:list of tools}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLLxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLLxy(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzTestInterLC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTestInterLC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"iftkzFlagLC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagLCtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagLCfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInterLCR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterLCR(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLCWithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterLCWithNodes(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCCWithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterCCWithNodes(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzAddName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzAddName[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"FullProtractor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FullProtractorReturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzmathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzCoeffSubColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzCoeffSubLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRatioLineGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInvPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrtPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwobyTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzEuler\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tkz-euclide#c\": [\n      \"lua\"\n    ],\n    \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\": [\n      \"label=${1:text}\",\n      \"shift=(${1:x},${2:y})\",\n      \"shift=(${1:angle}:${2:radius})\"\n    ],\n    \"\\\\tkzDefSimilitudeCenter#c\": [\n      \"ext\",\n      \"int\"\n    ],\n    \"\\\\tkzDefHarmonic#c\": [\n      \"both\",\n      \"ext\",\n      \"int\"\n    ],\n    \"\\\\tkzDefEquiPoints#c\": [\n      \"dist=\",\n      \"from=${1:point}\",\n      \"show\",\n      \"/tkzcompass/delta=${1:number}\"\n    ],\n    \"\\\\tkzDefTriangleCenter#c\": [\n      \"ortho\",\n      \"orthic\",\n      \"centroid\",\n      \"median\",\n      \"circum\",\n      \"in\",\n      \"ex\",\n      \"euler\",\n      \"gergonne\",\n      \"symmedian\",\n      \"lemoine\",\n      \"grebe\",\n      \"spieker\",\n      \"nagel\",\n      \"mittenpunkt\",\n      \"feuerbach\"\n    ],\n    \"\\\\tkzDefProjExcenter#c\": [\n      \"name=${1:name}\"\n    ],\n    \"\\\\tkzDefPointOnLine#c\": [\n      \"pos=${1:number}\"\n    ],\n    \"\\\\tkzDefPointOnCircle#c\": [\n      \"through=center ${1:point1} angle ${2:degrees} point ${3:point2}\",\n      \"R=center ${1:point} angle ${2:degrees} radius ${3:radius}\",\n      \"through in rad=center ${1:point1} angle ${2:radians} point ${3:point2}\",\n      \"R in rad=center ${1:point} angle ${2:radians} radius ${3:radius}\"\n    ],\n    \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\": [\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"homothety=center ${1:point} ratio ${2:number}\",\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"rotation=center ${1:point} angle ${2:degrees}\",\n      \"rotation in rad=center ${1:point} angle ${2:radians}\",\n      \"inversion=center ${1:point1} through ${2:point2}\",\n      \"inversion negative=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzDefPointWith#c\": [\n      \"orthogonal\",\n      \"orthogonal normed\",\n      \"linear\",\n      \"linear normed\",\n      \"colinear=at ${1:point}\",\n      \"colinear normed=at ${1:point}\",\n      \"K=${1:number}\"\n    ],\n    \"\\\\tkzDefLine#c\": [\n      \"mediator\",\n      \"perpendicular=through ${1:point}\",\n      \"orthogonal=through ${1:point}\",\n      \"parallel=through ${1:point}\",\n      \"bisector\",\n      \"bisector out\",\n      \"symmedian\",\n      \"altitude\",\n      \"euler\",\n      \"tangent at=${1:point}\",\n      \"tangent from=${1:point}\",\n      \"K=${1:number}\",\n      \"normed\"\n    ],\n    \"\\\\tkzDefTangent#c\": [\n      \"at=${1:point}\",\n      \"from=${1:point}\",\n      \"from with R=${1:point}\"\n    ],\n    \"\\\\tkzDefTriangle#c\": [\n      \"two angles=${1:angle1} and ${2:angle2}\",\n      \"equilateral\",\n      \"isosceles right\",\n      \"pythagore\",\n      \"pythagoras\",\n      \"egyptian\",\n      \"school\",\n      \"gold\",\n      \"euclid\",\n      \"golden\",\n      \"cheops\",\n      \"swap\"\n    ],\n    \"\\\\tkzDefSpcTriangle#c\": [\n      \"orthic\",\n      \"centroid\",\n      \"medial\",\n      \"in\",\n      \"incentral\",\n      \"ex\",\n      \"excentral\",\n      \"extouch\",\n      \"intouch\",\n      \"contact\",\n      \"euler\",\n      \"symmedial\",\n      \"tangential\",\n      \"feuerbach\",\n      \"name=${1:name}\",\n      \"ortho\"\n    ],\n    \"\\\\tkzDefRegPolygon#c\": [\n      \"name=${1:name}\",\n      \"sides=${1:integer}\",\n      \"center\",\n      \"side\"\n    ],\n    \"\\\\tkzDefCircle#c\": [\n      \"R\",\n      \"diameter\",\n      \"circum\",\n      \"in\",\n      \"ex\",\n      \"euler\",\n      \"nine\",\n      \"spieker\",\n      \"apollonius\",\n      \"orthogonal from=${1:point}\",\n      \"orthogonal through=${1:point1} and ${2:point2}\",\n      \"K=${1:number}\"\n    ],\n    \"\\\\tkzDefCircleBy#c\": [\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"homothety=center ${1:point} ratio ${2:number}\",\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"rotation=center ${1:point} angle ${2:degrees}\",\n      \"inversion=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\": [\n      \"N\",\n      \"R\",\n      \"with nodes\"\n    ],\n    \"\\\\tkzDefRandPointOn#c\": [\n      \"rectangle=${1:point1} and ${2:point2}\",\n      \"segment=${1:point1}--${2:point2}\",\n      \"line=${1:point1}--${2:point2}\",\n      \"circle=center ${1:point} radius ${2:number}\",\n      \"circle through=center ${1:point1} through ${2:point2}\",\n      \"disk through=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\": [\n      \"shape=${1|circle,cross,cross out|}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"draw=\",\n      \"opacity=${1:factor}\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\": [\n      \"add=${1:num1} and ${2:num2}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\": [\n      \"add=${1:num1} and ${2:num2}\",\n      \"dim={${1:label},${2:dim},${3:option}}\",\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\": [\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"draw=\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\": [\n      \"through\",\n      \"R\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\": [\n      \"through\",\n      \"diameter\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawArc#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\",\n      \"R with nodes\",\n      \"angles\",\n      \"delta=${1:number}\",\n      \"reverse\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSector#c,\\\\tkzFillSector#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\",\n      \"R with nodes\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"color=\",\n      \"%color\",\n      \"draw=\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\": [\n      \"radius\",\n      \"R\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"opacity=${1:factor}\"\n    ],\n    \"\\\\tkzFillPolygon#c\": [\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"fill=\"\n    ],\n    \"\\\\tkzFillAngle#c,\\\\tkzFillAngles#c\": [\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"fill=\",\n      \"left color=\",\n      \"right color=\"\n    ],\n    \"\\\\tkzInit#c\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"xstep=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"ystep=${1:number}\"\n    ],\n    \"\\\\tkzClip#c\": [\n      \"space=${1:number}\"\n    ],\n    \"\\\\tkzShowBB#c\": [\n      \"line width=\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzClipPolygon#c\": [\n      \"out\"\n    ],\n    \"\\\\tkzClipCircle#c\": [\n      \"out\"\n    ],\n    \"\\\\tkzClipSector#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\"\n    ],\n    \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\": [\n      \"pos=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"mark=${1:mark}\",\n      \"size=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzMarkAngle#c,\\\\tkzMarkAngles#c\": [\n      \"arc=${1|l,ll,lll|}\",\n      \"size=\",\n      \"mark=${1:mark}\",\n      \"mksize=\",\n      \"mkcolor=\",\n      \"color=\",\n      \"mkpos=${1:number}\"\n    ],\n    \"\\\\tkzMarkRightAngle#c,\\\\tkzMarkRightAngles#c\": [\n      \"german\",\n      \"size=${1:number}\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"draw=\",\n      \"color=\",\n      \"%color\",\n      \"line width=\"\n    ],\n    \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\": [\n      \"left\",\n      \"right\",\n      \"above\",\n      \"below\",\n      \"above right\",\n      \"above left\",\n      \"below right\",\n      \"below left\",\n      \"color=\",\n      \"%color\",\n      \"font=${1:font commands}\",\n      \"label=${1:text}\",\n      \"centered\"\n    ],\n    \"\\\\tkzAutoLabelPoints#c\": [\n      \"center=${1:point}\",\n      \"dist=${1:number}\"\n    ],\n    \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\": [\n      \"pos=${1:number}\",\n      \"swap\",\n      \"auto\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"sloped\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzLabelAngle#c,\\\\tkzLabelAngles#c\": [\n      \"pos=${1:number}\",\n      \"circle\",\n      \"draw\",\n      \"fill=\",\n      \"font=${1:font commands}\"\n    ],\n    \"\\\\tkzLabelCircle#c\": [\n      \"radius\",\n      \"R\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"font=${1:font commands}\",\n      \"draw\",\n      \"text width=\",\n      \"text centered\"\n    ],\n    \"\\\\tkzLabelArc#c\": [\n      \"pos=${1:number}\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzCompass#c,\\\\tkzCompasss#c\": [\n      \"delta=${1:degrees}\",\n      \"length=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzShowLine#c\": [\n      \"mediator\",\n      \"parallel=through ${1:point}\",\n      \"perpendicular=through ${1:point}\",\n      \"orthogonal\",\n      \"bisector\",\n      \"K=${1:number}\",\n      \"length=${1:number}\",\n      \"ratio=${1:number}\",\n      \"gap=${1:number}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzShowTransformation#c\": [\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"K=${1:number}\",\n      \"length=${1:number}\",\n      \"ratio=${1:number}\",\n      \"gap=${1:number}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzProtractor#c\": [\n      \"lw=\",\n      \"scale=${1:factor}\",\n      \"return\"\n    ],\n    \"\\\\tkzCalcLength#c\": [\n      \"cm\"\n    ],\n    \"\\\\tkzSetUpColors#c\": [\n      \"background=\",\n      \"text=\"\n    ],\n    \"\\\\tkzSetUpPoint#c\": [\n      \"color=\",\n      \"size=${1:number}\",\n      \"fill=\",\n      \"shape=${1|circle,cross,cross out|}\"\n    ],\n    \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\": [\n      \"color=\",\n      \"line width=\",\n      \"style=${1|solid,dotted,densely dotted,loosely dotted,dashed,densely dashed,loosely dashed,dash dot,densely dash dot,loosely dash dot,dash dot dot,densely dash dot dot ,loosely dash dot dot|}\",\n      \"add=${1:num1} and ${2:num2}\"\n    ],\n    \"\\\\tkzSetUpLine#c\": [\n      \"add=${1:num1} and ${2:num2}\"\n    ],\n    \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\": [\n      \"delta=${1:number}\"\n    ],\n    \"\\\\tkzText#c\": [\n      \"draw\",\n      \"color=\",\n      \"text=\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"line width=\",\n      \"rotate=${1:degrees}\",\n      \"inner sep=\",\n      \"text width=\"\n    ],\n    \"\\\\tkzLegend#c\": [\n      \"line\"\n    ],\n    \"\\\\tkzDrawX#c\": [\n      \"color=\",\n      \"noticks\",\n      \"right space=\",\n      \"left space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"tickup=\",\n      \"tickdn=\",\n      \">=${1:end arrow spec}\"\n    ],\n    \"\\\\tkzDrawY#c\": [\n      \"color=\",\n      \"noticks\",\n      \"up space=\",\n      \"down space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"ticklt=\",\n      \"tickrt=\"\n    ],\n    \"\\\\tkzGrid#c\": [\n      \"sub\",\n      \"color=\",\n      \"%color\",\n      \"subxstep=${1:number}\",\n      \"subystep=${1:number}\",\n      \"line width=\"\n    ],\n    \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\": [\n      \"xlabel=${1:text}\",\n      \"xstyle=\",\n      \"noxdraw\",\n      \"ylabel=${1:text}\",\n      \"ystyle=\",\n      \"noydraw\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tkz-euclide#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tocbibind.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tocotherhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocotherhead{${1:headingname}}\"\n      }\n    },\n    {\n      \"name\": \"tocbibname\"\n    },\n    {\n      \"name\": \"setindexname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"settocname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setlotname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlotname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setlofname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlofname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"settocbibname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocbibname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"simplechapter\"\n    },\n    {\n      \"name\": \"simplechapter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"simplechapter[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"restorechapter\"\n    },\n    {\n      \"name\": \"simplechapterdelim\"\n    },\n    {\n      \"name\": \"tocchapter\"\n    },\n    {\n      \"name\": \"tocsection\"\n    },\n    {\n      \"name\": \"tocfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tocfile{${1:text}}{${2:file-extension}}\"\n      }\n    },\n    {\n      \"name\": \"tocetcmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocetcmark{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"PRWPackageNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRWPackageNote{${1:package}}{${2:note text}}\"\n      }\n    },\n    {\n      \"name\": \"PRWPackageNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRWPackageNoteNoLine{${1:package}}{${2:note text}}\"\n      }\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thebibitemlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tocbibind#c\": [\n      \"notbib\",\n      \"notindex\",\n      \"nottoc\",\n      \"notlot\",\n      \"notlof\",\n      \"chapter\",\n      \"section\",\n      \"numbib\",\n      \"numindex\",\n      \"other\",\n      \"none\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tocbibind#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/tocloft.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tocloftpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocloftpagestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"cftmarktoc\"\n    },\n    {\n      \"name\": \"cftmarklof\"\n    },\n    {\n      \"name\": \"cftmarklot\"\n    },\n    {\n      \"name\": \"cftbeforetoctitleskip\"\n    },\n    {\n      \"name\": \"cftbeforeloftitleskip\"\n    },\n    {\n      \"name\": \"cftbeforelottitleskip\"\n    },\n    {\n      \"name\": \"cftaftertoctitleskip\"\n    },\n    {\n      \"name\": \"cftafterloftitleskip\"\n    },\n    {\n      \"name\": \"cftafterlottitleskip\"\n    },\n    {\n      \"name\": \"cfttoctitlefont\"\n    },\n    {\n      \"name\": \"cftloftitlefont\"\n    },\n    {\n      \"name\": \"cftlottitlefont\"\n    },\n    {\n      \"name\": \"cftaftertoctitle\"\n    },\n    {\n      \"name\": \"cftafterloftitle\"\n    },\n    {\n      \"name\": \"cftafterlottitle\"\n    },\n    {\n      \"name\": \"cftdot\"\n    },\n    {\n      \"name\": \"cftdotsep\"\n    },\n    {\n      \"name\": \"cftnodots\"\n    },\n    {\n      \"name\": \"cftdotfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftdotfill{${1:sep}}\"\n      }\n    },\n    {\n      \"name\": \"cftsetpnumwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsetpnumwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftsetrmarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsetrmarg{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftpnumalign\"\n    },\n    {\n      \"name\": \"cftparskip\"\n    },\n    {\n      \"name\": \"cftbeforepartskip\"\n    },\n    {\n      \"name\": \"cftbeforechapskip\"\n    },\n    {\n      \"name\": \"cftbeforesecskip\"\n    },\n    {\n      \"name\": \"cftbeforesubsecskip\"\n    },\n    {\n      \"name\": \"cftbeforesubsubsecskip\"\n    },\n    {\n      \"name\": \"cftbeforeparaskip\"\n    },\n    {\n      \"name\": \"cftbeforesubparaskip\"\n    },\n    {\n      \"name\": \"cftbeforefigskip\"\n    },\n    {\n      \"name\": \"cftbeforesubfigskip\"\n    },\n    {\n      \"name\": \"cftbeforetabskip\"\n    },\n    {\n      \"name\": \"cftbeforesubtabskip\"\n    },\n    {\n      \"name\": \"cftpartindent\"\n    },\n    {\n      \"name\": \"cftchapindent\"\n    },\n    {\n      \"name\": \"cftsecindent\"\n    },\n    {\n      \"name\": \"cftsubsecindent\"\n    },\n    {\n      \"name\": \"cftsubsubsecindent\"\n    },\n    {\n      \"name\": \"cftparaindent\"\n    },\n    {\n      \"name\": \"cftsubparaindent\"\n    },\n    {\n      \"name\": \"cftfigindent\"\n    },\n    {\n      \"name\": \"cftsubfigindent\"\n    },\n    {\n      \"name\": \"cfttabindent\"\n    },\n    {\n      \"name\": \"cftsubtabindent\"\n    },\n    {\n      \"name\": \"cftpartnumwidth\"\n    },\n    {\n      \"name\": \"cftchapnumwidth\"\n    },\n    {\n      \"name\": \"cftsecnumwidth\"\n    },\n    {\n      \"name\": \"cftsubsecnumwidth\"\n    },\n    {\n      \"name\": \"cftsubsubsecnumwidth\"\n    },\n    {\n      \"name\": \"cftparanumwidth\"\n    },\n    {\n      \"name\": \"cftsubparanumwidth\"\n    },\n    {\n      \"name\": \"cftfignumwidth\"\n    },\n    {\n      \"name\": \"cftsubfignumwidth\"\n    },\n    {\n      \"name\": \"cfttabnumwidth\"\n    },\n    {\n      \"name\": \"cftsubtabnumwidth\"\n    },\n    {\n      \"name\": \"cftpartfont\"\n    },\n    {\n      \"name\": \"cftchapfont\"\n    },\n    {\n      \"name\": \"cftsecfont\"\n    },\n    {\n      \"name\": \"cftsubsecfont\"\n    },\n    {\n      \"name\": \"cftsubsubsecfont\"\n    },\n    {\n      \"name\": \"cftparafont\"\n    },\n    {\n      \"name\": \"cftsubparafont\"\n    },\n    {\n      \"name\": \"cftfigfont\"\n    },\n    {\n      \"name\": \"cftsubfigfont\"\n    },\n    {\n      \"name\": \"cfttabfont\"\n    },\n    {\n      \"name\": \"cftsubtabfont\"\n    },\n    {\n      \"name\": \"cftpartpresnum\"\n    },\n    {\n      \"name\": \"cftchappresnum\"\n    },\n    {\n      \"name\": \"cftsecpresnum\"\n    },\n    {\n      \"name\": \"cftsubsecpresnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecpresnum\"\n    },\n    {\n      \"name\": \"cftparapresnum\"\n    },\n    {\n      \"name\": \"cftsubparapresnum\"\n    },\n    {\n      \"name\": \"cftfigpresnum\"\n    },\n    {\n      \"name\": \"cftsubfigpresnum\"\n    },\n    {\n      \"name\": \"cfttabpresnum\"\n    },\n    {\n      \"name\": \"cftsubtabpresnum\"\n    },\n    {\n      \"name\": \"cftpartaftersnum\"\n    },\n    {\n      \"name\": \"cftchapaftersnum\"\n    },\n    {\n      \"name\": \"cftsecaftersnum\"\n    },\n    {\n      \"name\": \"cftsubsecaftersnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecaftersnum\"\n    },\n    {\n      \"name\": \"cftparaaftersnum\"\n    },\n    {\n      \"name\": \"cftsubparaaftersnum\"\n    },\n    {\n      \"name\": \"cftfigaftersnum\"\n    },\n    {\n      \"name\": \"cftsubfigaftersnum\"\n    },\n    {\n      \"name\": \"cfttabaftersnum\"\n    },\n    {\n      \"name\": \"cftsubtabaftersnum\"\n    },\n    {\n      \"name\": \"cftpartaftersnumb\"\n    },\n    {\n      \"name\": \"cftchapaftersnumb\"\n    },\n    {\n      \"name\": \"cftsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubsubsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftparaaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubparaaftersnumb\"\n    },\n    {\n      \"name\": \"cftfigaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubfigaftersnumb\"\n    },\n    {\n      \"name\": \"cfttabaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubtabaftersnumb\"\n    },\n    {\n      \"name\": \"cftpartleader\"\n    },\n    {\n      \"name\": \"cftchapleader\"\n    },\n    {\n      \"name\": \"cftsecleader\"\n    },\n    {\n      \"name\": \"cftsubsecleader\"\n    },\n    {\n      \"name\": \"cftsubsubsecleader\"\n    },\n    {\n      \"name\": \"cftparaleader\"\n    },\n    {\n      \"name\": \"cftsubparaleader\"\n    },\n    {\n      \"name\": \"cftfigleader\"\n    },\n    {\n      \"name\": \"cftsubfigleader\"\n    },\n    {\n      \"name\": \"cfttableader\"\n    },\n    {\n      \"name\": \"cftsubtableader\"\n    },\n    {\n      \"name\": \"cftpartdotsep\"\n    },\n    {\n      \"name\": \"cftchapdotsep\"\n    },\n    {\n      \"name\": \"cftsecdotsep\"\n    },\n    {\n      \"name\": \"cftsubsecdotsep\"\n    },\n    {\n      \"name\": \"cftsubsubsecdotsep\"\n    },\n    {\n      \"name\": \"cftparadotsep\"\n    },\n    {\n      \"name\": \"cftsubparadotsep\"\n    },\n    {\n      \"name\": \"cftfigdotsep\"\n    },\n    {\n      \"name\": \"cftsubfigdotsep\"\n    },\n    {\n      \"name\": \"cfttabdotsep\"\n    },\n    {\n      \"name\": \"cftsubtabdotsep\"\n    },\n    {\n      \"name\": \"cftpartpagefont\"\n    },\n    {\n      \"name\": \"cftchappagefont\"\n    },\n    {\n      \"name\": \"cftsecpagefont\"\n    },\n    {\n      \"name\": \"cftsubsecpagefont\"\n    },\n    {\n      \"name\": \"cftsubsubsecpagefont\"\n    },\n    {\n      \"name\": \"cftparapagefont\"\n    },\n    {\n      \"name\": \"cftsubparapagefont\"\n    },\n    {\n      \"name\": \"cftfigpagefont\"\n    },\n    {\n      \"name\": \"cftsubfigpagefont\"\n    },\n    {\n      \"name\": \"cfttabpagefont\"\n    },\n    {\n      \"name\": \"cftsubtabpagefont\"\n    },\n    {\n      \"name\": \"cftpartafterpnum\"\n    },\n    {\n      \"name\": \"cftchapafterpnum\"\n    },\n    {\n      \"name\": \"cftsecafterpnum\"\n    },\n    {\n      \"name\": \"cftsubsecafterpnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecafterpnum\"\n    },\n    {\n      \"name\": \"cftparaafterpnum\"\n    },\n    {\n      \"name\": \"cftsubparaafterpnum\"\n    },\n    {\n      \"name\": \"cftfigafterpnum\"\n    },\n    {\n      \"name\": \"cftsubfigafterpnum\"\n    },\n    {\n      \"name\": \"cfttabafterpnum\"\n    },\n    {\n      \"name\": \"cftsubtabafterpnum\"\n    },\n    {\n      \"name\": \"cftsetindents\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftsetindents{${1:entry}}{${2:indent}}{${3:numwidth}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumbersoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumbersoff{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumberson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumberson{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistof[${4:within}]{${1:entry}}{${2:ext}}{${3:listofname}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistof{${1:entry}}{${2:ext}}{${3:listofname}}\"\n      }\n    },\n    {\n      \"name\": \"tocdepth\"\n    },\n    {\n      \"name\": \"lotdepth\"\n    },\n    {\n      \"name\": \"lofdepth\"\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistentry[${4:within}]{${1:entry}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecishere\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecishere{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecistoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecistoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftlocalchange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftlocalchange{${1:file}}{${2:pnumwidth}}{${3:tocrmarg}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cftaddtitleline{${1:file}}{${2:kind}}{${3:title}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddnumtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cftaddnumtitleline{${1:file}}{${2:kind}}{${3:num}}{${4:title}}{${5:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftlofposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlofprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlotposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlotprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttocposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttocprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparafillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparafillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubfigfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubtabfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubfigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubtabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparfillskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tocloft#c\": [\n      \"subfigure\",\n      \"titles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tocloft#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/todonotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"loadshadowlibrary\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setuptodonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuptodonotes{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"todostyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todostyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingfigure{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missingfigure[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"listoftodos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftodos[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"todototoc\"\n    },\n    {\n      \"name\": \"todoformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todoformat{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/todonotes#c\": [\n      \"disable\",\n      \"obeyDraft\",\n      \"obeyFinal\",\n      \"danish\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"swedish\",\n      \"spanish\",\n      \"catalan\",\n      \"italian\",\n      \"portuguese\",\n      \"dutch\",\n      \"croatian\",\n      \"colorinlistoftodos\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"tickmarkheight=\",\n      \"textwidth=\",\n      \"textsize=${1:fontsize csname}\",\n      \"format=${1:csname}\",\n      \"prependcaption={${1:text}}\",\n      \"loadshadowlibrary\",\n      \"shadow\",\n      \"dvistyle\",\n      \"figwidth=\"\n    ],\n    \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\": [\n      \"disable\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"textcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"shadow\",\n      \"noshadow\",\n      \"tickmarkheight=\",\n      \"format=${1:csname}\",\n      \"line\",\n      \"noline\",\n      \"inline\",\n      \"noinline\",\n      \"size=${1:fontsize command}\",\n      \"list\",\n      \"nolist\",\n      \"caption={${1:text}}\",\n      \"prepend\",\n      \"noprepend\",\n      \"fancyline\",\n      \"author=${1:author}\",\n      \"inlinewidth=\",\n      \"inlinepar\",\n      \"noinlinepar\"\n    ],\n    \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\": [\n      \"figwidth=\",\n      \"figheight=\",\n      \"figcolor=\"\n    ],\n    \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\": [\n      \"%todonotesstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/todonotes#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/ulem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"uline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uuline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uwave{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashuline{${1:dashing}}\"\n      }\n    },\n    {\n      \"name\": \"dotuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotuline{${1:dotty}}\"\n      }\n    },\n    {\n      \"name\": \"ULdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULforem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markoverwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markoverwith{${1:something}}\"\n      }\n    },\n    {\n      \"name\": \"normalem\"\n    },\n    {\n      \"name\": \"useunder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"useunder{${1:underline command}}{${2:font declaration}}{${3:font command}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ulem#c\": [\n      \"normalem\",\n      \"ULforem\",\n      \"normalbf\",\n      \"UWforbf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ulem#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/units.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unit[${2:value}]{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"unitfrac[${3:value%:translatable}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unitfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/units#c\": [\n      \"tight\",\n      \"loose\",\n      \"nice\",\n      \"ugly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/units#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/upgreek.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Updelta\"\n    },\n    {\n      \"name\": \"Upgamma\"\n    },\n    {\n      \"name\": \"Uplambda\"\n    },\n    {\n      \"name\": \"Upomega\"\n    },\n    {\n      \"name\": \"Upphi\"\n    },\n    {\n      \"name\": \"Uppi\"\n    },\n    {\n      \"name\": \"Uppsi\"\n    },\n    {\n      \"name\": \"Upsigma\"\n    },\n    {\n      \"name\": \"Uptheta\"\n    },\n    {\n      \"name\": \"Upupsilon\"\n    },\n    {\n      \"name\": \"Upxi\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upgreek#c\": [\n      \"Symbol\",\n      \"Symbolsmallscale\",\n      \"Euler\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upgreek#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/url.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"path\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"path{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldef{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUrlCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUrlCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"urlstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\urlstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UrlBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBigBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlNoBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlOrds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlSpecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlTildeSpecial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Urlmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBreakPenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBigBreakPenalty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/url#c\": [\n      \"obeyspaces\",\n      \"hyphens\",\n      \"spaces\",\n      \"lowtilde\",\n      \"allowmove\"\n    ],\n    \"\\\\urlstyle#c\": [\n      \"tt\",\n      \"rm\",\n      \"sf\",\n      \"same\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/url#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/varioref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vpageref[${2:samepage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vpageref*[${2:samepage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"vpageref[${2:samepage}][${3:otherpage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"vpageref*[${2:samepage}][${3:otherpage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vrefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vrefrange[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpagerefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpagerefrange*{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vpagerefrange[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vpagerefrange*[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefpagenum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrefpagenum{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefcompare\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vpagerefcompare{${1:label1%ref}}{${2:label2%ref}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefnearby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vpagerefnearby{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"labelformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelformat{${1:counter}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"Vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Vref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thevpagerefnum\"\n    },\n    {\n      \"name\": \"reftextbefore\"\n    },\n    {\n      \"name\": \"reftextfacebefore\"\n    },\n    {\n      \"name\": \"reftextafter\"\n    },\n    {\n      \"name\": \"reftextfaceafter\"\n    },\n    {\n      \"name\": \"reftextcurrent\"\n    },\n    {\n      \"name\": \"reftextfaraway\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reftextfaraway{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"reftextvario\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextvario{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"reftextpagerange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextpagerange{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"reftextlabelrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextlabelrange{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefrangeformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefrangedefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefwarning\"\n    },\n    {\n      \"name\": \"vrefshowerrors\"\n    },\n    {\n      \"name\": \"fullref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefcomparenearby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vpagerefcomparenearby{${1:label1%ref}}{${2:label2%ref}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/varioref#c\": [\n      \"afrikaans\",\n      \"american\",\n      \"arabic\",\n      \"austrian\",\n      \"naustrian\",\n      \"basque\",\n      \"bahasam\",\n      \"brazil\",\n      \"breton\",\n      \"bulgarian\",\n      \"catalan\",\n      \"croatian\",\n      \"czech\",\n      \"danish\",\n      \"dutch\",\n      \"english\",\n      \"esperanto\",\n      \"finnish\",\n      \"french\",\n      \"galician\",\n      \"german\",\n      \"ngerman\",\n      \"greek\",\n      \"icelandic\",\n      \"italian\",\n      \"japanese\",\n      \"magyar\",\n      \"norsk\",\n      \"nynorsk\",\n      \"polish\",\n      \"portuges\",\n      \"romanian\",\n      \"russian\",\n      \"slovak\",\n      \"slovene\",\n      \"spanish\",\n      \"swedish\",\n      \"turkish\",\n      \"ukrainian\",\n      \"francais\",\n      \"germanb\",\n      \"draft\",\n      \"final\",\n      \"space\",\n      \"nospace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/varioref#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/verse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"indentpattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentpattern{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"versewidth\"\n    },\n    {\n      \"name\": \"vin\"\n    },\n    {\n      \"name\": \"vgap\"\n    },\n    {\n      \"name\": \"vindent\"\n    },\n    {\n      \"name\": \"leftmargini\"\n    },\n    {\n      \"name\": \"stanzaskip\"\n    },\n    {\n      \"name\": \"verselinebreak\"\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verselinebreak[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"flagverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flagverse{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"vleftskip\"\n    },\n    {\n      \"name\": \"vrightskip\"\n    },\n    {\n      \"name\": \"poemlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemlines{${1:nth}}\"\n      }\n    },\n    {\n      \"name\": \"setverselinenums\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setverselinenums{${1:first line num}}{${2:start nums at}}\"\n      }\n    },\n    {\n      \"name\": \"thepoemline\"\n    },\n    {\n      \"name\": \"verselinenumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verselinenumfont{${1:font-spec}}\"\n      }\n    },\n    {\n      \"name\": \"verselinenumbersleft\"\n    },\n    {\n      \"name\": \"verselinenumbersright\"\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poemtitle{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poemtitle*{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"poemtoc\"\n    },\n    {\n      \"name\": \"poemtitlefont\"\n    },\n    {\n      \"name\": \"beforepoemtitleskip\"\n    },\n    {\n      \"name\": \"afterpoemtitleskip\"\n    },\n    {\n      \"name\": \"poemtitlemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlemark{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newarray\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarray{${1:array name}}{${2:low}}{${3:high}}\"\n      }\n    },\n    {\n      \"name\": \"setarrayelement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarrayelement{${1:array name}}{${2:index}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"getarrayelement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getarrayelement{${1:array name}}{${2:index}}{${3:result}}\"\n      }\n    },\n    {\n      \"name\": \"checkarrayindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"checkarrayindex{${1:array name}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"stringtoarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stringtoarray{${1:array name}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"arraytostring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraytostring{${1:array name}}{${2:result}}\"\n      }\n    },\n    {\n      \"name\": \"checkifinteger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkifinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"altindentfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altindenttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bounderrorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bounderrortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifaltindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstarpattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patternfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patterntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"starpatternfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"starpatterntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechrsinstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefvsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevslineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vlnumfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verse\"\n    },\n    {\n      \"name\": \"verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length of average line}]\"\n      }\n    },\n    {\n      \"name\": \"altverse\"\n    },\n    {\n      \"name\": \"patverse\"\n    },\n    {\n      \"name\": \"patverse*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/virginialake.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vlor\"\n    },\n    {\n      \"name\": \"vlan\"\n    },\n    {\n      \"name\": \"vlim\"\n    },\n    {\n      \"name\": \"vlne\"\n    },\n    {\n      \"name\": \"vldi\"\n    },\n    {\n      \"name\": \"vlmi\"\n    },\n    {\n      \"name\": \"vls\"\n    },\n    {\n      \"name\": \"vlsbr\"\n    },\n    {\n      \"name\": \"vlscn\"\n    },\n    {\n      \"name\": \"vlhole\"\n    },\n    {\n      \"name\": \"vlsmallbrackets\"\n    },\n    {\n      \"name\": \"vlnosmallbrackets\"\n    },\n    {\n      \"name\": \"vlupdate\"\n    },\n    {\n      \"name\": \"vlstore\"\n    },\n    {\n      \"name\": \"vlread\"\n    },\n    {\n      \"name\": \"vldot\"\n    },\n    {\n      \"name\": \"vlsqbrl\"\n    },\n    {\n      \"name\": \"vlsqbrr\"\n    },\n    {\n      \"name\": \"vlrobrl\"\n    },\n    {\n      \"name\": \"vlrobrr\"\n    },\n    {\n      \"name\": \"vlnos\"\n    },\n    {\n      \"name\": \"vlnostructuresyntax\"\n    },\n    {\n      \"name\": \"vlnostructuresyntax\"\n    },\n    {\n      \"name\": \"vlsmallleftlabels\"\n    },\n    {\n      \"name\": \"vlnosmallleftlabels\"\n    },\n    {\n      \"name\": \"vlderivation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vlderivation{${1:derivation}}\"\n      }\n    },\n    {\n      \"name\": \"vlproof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vlproof{${1:left label}}{${2:right label}}{${3:conclusion}}\"\n      }\n    },\n    {\n      \"name\": \"vlder\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlder{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vltreeder\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vltreeder{${1:label}}{${2:conclusion}}{${3:left premiss}}{${4:middle premiss}}{${5:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vlinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vliinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vliinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss}}{${5:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vliiinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vliiinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss}}{${5:middle premiss}}{${6:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vlpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vlpr{${1:left label}}{${2:right label}}{${3:conclusion}}\"\n      }\n    },\n    {\n      \"name\": \"vlde\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlde{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss (${5:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vltr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vltr{${1:label}}{${2:conclusion}}{${3:left premiss (${6:derivation})}}{${4:middle premiss (${7:derivation})}}{${5:right premiss (${8:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vltr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vltr{${1:label}}{${2:conclusion}}{${3:left premiss (${7:derivation})}}{${4:middle premiss (${8:derivation})}}{${5:right premiss (${9:derivation})}}{${6:scale}}\"\n      }\n    },\n    {\n      \"name\": \"vlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss (${5:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vliin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vliin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss (${6:derivation})}}{${5:right premiss (${7:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vliiin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vliiin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss (${7:derivation})}}{${5:middle premiss (${8:derivation})}}{${6:right premiss (${9:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vlhy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vlhy{${1:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"aftriangletrue\"\n    },\n    {\n      \"name\": \"aftrianglefalse\"\n    },\n    {\n      \"name\": \"afaid\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaid{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaidcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaidex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaidexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaidnw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaidnw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaidnwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaidnwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaiu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaiunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaiunwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afnegspace\"\n    },\n    {\n      \"name\": \"afraise\"\n    },\n    {\n      \"name\": \"aflower\"\n    },\n    {\n      \"name\": \"afacd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacd{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}{${9:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnw\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afacdnw{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}{${9:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunw\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afacunw{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaiu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaiunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaiunwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afawd{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afawdcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawdnw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afawdnw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afawu{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afawucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afawunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"aff\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aff{${1:scale}}{${2:label}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"affcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"affcol{${1:scale}}{${2:label}}{${3:label}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aft\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aft{${1:scale}}{${2:label}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"aftcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcol{${1:scale}}{${2:label}}{${3:label}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvdj\"\n    },\n    {\n      \"name\": \"afvj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afvj{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afvjcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvjd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afvjd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afvjdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvju\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afvju{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afvjucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftvj{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftvjcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftvjd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftvjdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvju\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftvju{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftvjucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afex{${1:scale}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afexcol{${1:scale}}{${2:scale}}{${3:colour}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afcjl{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afcjlcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjld\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjld{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjldcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjldcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjlu{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjlucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftcjl{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftcjlcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjld\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjld{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjldcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjldcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjlu{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjlucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afcjr{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afcjrcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjrd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjrdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjru\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjru{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjrucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftcjr{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftcjrcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjrd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjrdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjru\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjru{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjrucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"affr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"affr{${1:scale}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"atomicflow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atomicflow{${1:atomicflow}}\"\n      }\n    },\n    {\n      \"name\": \"atomicflowinv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atomicflowinv{${1:atomicflow}}\"\n      }\n    },\n    {\n      \"name\": \"vldownsmash\"\n    },\n    {\n      \"name\": \"vlupsmash\"\n    },\n    {\n      \"name\": \"vlsmash\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/wasysym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"currency\"\n    },\n    {\n      \"name\": \"phone\"\n    },\n    {\n      \"name\": \"recorder\"\n    },\n    {\n      \"name\": \"clock\"\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"pointer\"\n    },\n    {\n      \"name\": \"RIGHTarrow\"\n    },\n    {\n      \"name\": \"LEFTarrow\"\n    },\n    {\n      \"name\": \"UParrow\"\n    },\n    {\n      \"name\": \"DOWNarrow\"\n    },\n    {\n      \"name\": \"AC\"\n    },\n    {\n      \"name\": \"HF\"\n    },\n    {\n      \"name\": \"VHF\"\n    },\n    {\n      \"name\": \"Square\"\n    },\n    {\n      \"name\": \"CheckedBox\"\n    },\n    {\n      \"name\": \"XBox\"\n    },\n    {\n      \"name\": \"hexagon\",\n      \"detail\": \"⎔\",\n      \"doc\": \"Horizontal benzene ring [hexagon flat open]\"\n    },\n    {\n      \"name\": \"pentagon\",\n      \"detail\": \"⬠\",\n      \"doc\": \"White pentagon\"\n    },\n    {\n      \"name\": \"octagon\"\n    },\n    {\n      \"name\": \"varhexagon\",\n      \"detail\": \"⬡\",\n      \"doc\": \"White hexagon\"\n    },\n    {\n      \"name\": \"hexstar\"\n    },\n    {\n      \"name\": \"varhexstar\"\n    },\n    {\n      \"name\": \"davidsstar\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"invdiameter\"\n    },\n    {\n      \"name\": \"varangle\"\n    },\n    {\n      \"name\": \"wasylozenge\"\n    },\n    {\n      \"name\": \"kreuz\"\n    },\n    {\n      \"name\": \"smiley\"\n    },\n    {\n      \"name\": \"frownie\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"checked\"\n    },\n    {\n      \"name\": \"bell\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"halfnote\"\n    },\n    {\n      \"name\": \"fullnote\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"brokenvert\"\n    },\n    {\n      \"name\": \"ataribox\"\n    },\n    {\n      \"name\": \"wasytherefore\"\n    },\n    {\n      \"name\": \"Circle\"\n    },\n    {\n      \"name\": \"CIRCLE\"\n    },\n    {\n      \"name\": \"Leftcircle\"\n    },\n    {\n      \"name\": \"LEFTCIRCLE\"\n    },\n    {\n      \"name\": \"Rightcircle\"\n    },\n    {\n      \"name\": \"RIGHTCIRCLE\"\n    },\n    {\n      \"name\": \"LEFTcircle\"\n    },\n    {\n      \"name\": \"RIGHTcircle\"\n    },\n    {\n      \"name\": \"vernal\"\n    },\n    {\n      \"name\": \"ascnode\"\n    },\n    {\n      \"name\": \"descnode\"\n    },\n    {\n      \"name\": \"fullmoon\"\n    },\n    {\n      \"name\": \"newmoon\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"mercury\"\n    },\n    {\n      \"name\": \"venus\"\n    },\n    {\n      \"name\": \"earth\"\n    },\n    {\n      \"name\": \"mars\"\n    },\n    {\n      \"name\": \"jupiter\"\n    },\n    {\n      \"name\": \"saturn\"\n    },\n    {\n      \"name\": \"uranus\"\n    },\n    {\n      \"name\": \"neptune\"\n    },\n    {\n      \"name\": \"pluto\"\n    },\n    {\n      \"name\": \"aries\"\n    },\n    {\n      \"name\": \"taurus\"\n    },\n    {\n      \"name\": \"gemini\"\n    },\n    {\n      \"name\": \"cancer\"\n    },\n    {\n      \"name\": \"leo\"\n    },\n    {\n      \"name\": \"virgo\"\n    },\n    {\n      \"name\": \"libra\"\n    },\n    {\n      \"name\": \"scorpio\"\n    },\n    {\n      \"name\": \"sagittarius\"\n    },\n    {\n      \"name\": \"capricornus\"\n    },\n    {\n      \"name\": \"aquarius\"\n    },\n    {\n      \"name\": \"pisces\"\n    },\n    {\n      \"name\": \"conjunction\"\n    },\n    {\n      \"name\": \"opposition\"\n    },\n    {\n      \"name\": \"APLstar\"\n    },\n    {\n      \"name\": \"APLlog\"\n    },\n    {\n      \"name\": \"APLbox\"\n    },\n    {\n      \"name\": \"APLup\"\n    },\n    {\n      \"name\": \"APLdown\"\n    },\n    {\n      \"name\": \"APLinput\"\n    },\n    {\n      \"name\": \"APLcomment\"\n    },\n    {\n      \"name\": \"APLinv\"\n    },\n    {\n      \"name\": \"APLuparrowbox\"\n    },\n    {\n      \"name\": \"APLdownarrowbox\"\n    },\n    {\n      \"name\": \"APLleftarrowbox\"\n    },\n    {\n      \"name\": \"APLrightarrowbox\"\n    },\n    {\n      \"name\": \"notbackslash\"\n    },\n    {\n      \"name\": \"notslash\"\n    },\n    {\n      \"name\": \"APLminus\"\n    },\n    {\n      \"name\": \"APLnot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLnot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APLcirc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLcirc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APLvert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLvert{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bowtie\"\n    },\n    {\n      \"name\": \"leftturn\"\n    },\n    {\n      \"name\": \"rightturn\"\n    },\n    {\n      \"name\": \"photon\"\n    },\n    {\n      \"name\": \"gluon\"\n    },\n    {\n      \"name\": \"cent\"\n    },\n    {\n      \"name\": \"permil\"\n    },\n    {\n      \"name\": \"agemO\"\n    },\n    {\n      \"name\": \"thorn\"\n    },\n    {\n      \"name\": \"Thorn\"\n    },\n    {\n      \"name\": \"openo\"\n    },\n    {\n      \"name\": \"inve\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"LHD\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"RHD\"\n    },\n    {\n      \"name\": \"apprle\"\n    },\n    {\n      \"name\": \"apprge\"\n    },\n    {\n      \"name\": \"wasypropto\"\n    },\n    {\n      \"name\": \"invneg\"\n    },\n    {\n      \"name\": \"ocircle\"\n    },\n    {\n      \"name\": \"logof\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"roundz\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"wasyeuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"longs\"\n    },\n    {\n      \"name\": \"wasyparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Paragraph\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"varint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"applecmd\"\n    },\n    {\n      \"name\": \"wasycmd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/wasysym#c\": [\n      \"compat1\",\n      \"integrals\",\n      \"nointegrals\",\n      \"noeuro\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wasysym#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/watermark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"watermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"watermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"leftwatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftwatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"rightwatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightwatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"thiswatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiswatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"thispageheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thispageheading{${1:heading%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/xcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GetGinDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GinDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustUCRBG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeHsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangetHsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeRGB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeHSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeGray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"substitutecolormodel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"substitutecolormodel{${1:source model}}{${2:target model-list}}\"\n      }\n    },\n    {\n      \"name\": \"selectcolormodel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectcolormodel{${1:num model}}\"\n      }\n    },\n    {\n      \"name\": \"ifconvertcolorsD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsDtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsDfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifconvertcolorsU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsUtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsUfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolor{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"definecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providecolor{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"providecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorlet{${1:name%specialDef}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"colorlet{${1:name%specialDef}}[${3:num-model}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colorlet[${3:type}]{${1:name%specialDef}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"colorlet[${3:type}]{${1:name%specialDef}}[${4:num-model}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"definecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"providecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"providecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"preparecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"preparecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"preparecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"preparecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefinecolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definecolors{${1:id-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecolors{${1:id-list}}\"\n      }\n    },\n    {\n      \"name\": \"ifglobalcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalcolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalcolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"boxframe{${1:width}}{${2:height}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"testcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"testcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"testcolor[${2:model-list}]{${1:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"blendcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blendcolors{${1:mix-expr}}\"\n      }\n    },\n    {\n      \"name\": \"blendcolors*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blendcolors*{${1:mix-expr}}\"\n      }\n    },\n    {\n      \"name\": \"maskcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcolors{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"maskcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcolors[${2:num-model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ifmaskcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colormask\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"definecolorseries{${1:name}}{${2:core-model}}{${3:method%keyvals}}{${4:b-spec}}{${5:s-spec}}\",\n        \"keys\": [\n          \"\\\\definecolorseries\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"definecolorseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}[]{}\",\n        \"snippet\": \"definecolorseries{${1:name}}{${2:core-model}}{${3:method%keyvals}}[${6:b-model}]{${4:b-spec}}[${7:s-model}]{${5:s-spec}}\",\n        \"keys\": [\n          \"\\\\definecolorseries\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"resetcolorseries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resetcolorseries[${2:div}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"colorseriescycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractcolorspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extractcolorspec{${1:color}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"extractcolorspecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"extractcolorspecs{${1:color}}{${2:model-cmd%cmd}}{${3:color-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"convertcolorspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"convertcolorspec{${1:model}}{${2:spec}}{${3:target-model}}{${4:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"testcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:model-list}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xcolor#c\": [\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"luatex\",\n      \"pdftex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"xetex\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\definecolorseries\": [\n      \"step\",\n      \"grad\",\n      \"last\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcolor#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xeCJK.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xeCJKsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmainfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKsansfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmonofont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"CJKfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}[${4:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"CJKfontspec{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKfontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultCJKfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures*{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures[${2:blocks}]{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures*[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmathfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareSubCJKBlock{${1:block}}{${2:block range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareSubCJKBlock*{${1:block}}{${2:block range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKCancelSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKCancelSubCJKBlock{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKCancelSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKCancelSubCJKBlock*{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKRestoreSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKRestoreSubCJKBlock{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKRestoreSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKRestoreSubCJKBlock*{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareCharClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareCharClass{${1:char class}}{${2:class range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareCharClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareCharClass*{${1:char class}}{${2:class range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKResetCharClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKResetPunctClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspacechars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalspacechars{${1:char list}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKsetwidth{${1:punct list}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetwidth*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKsetwidth*{${1:punct list}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xeCJKsetkern{${1:first punct}}{${2:second punct}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclarePunctStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclarePunctStyle{${1:style}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKEditPunctStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKEditPunctStyle{${1:style}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKVerbAddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKOffVerbAddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKnobreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKShipoutHook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xeCJK#c\": [\n      \"LocalConfig=${2|true,false,${1:name}|}\"\n    ],\n    \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\": [\n      \"xeCJKactive\",\n      \"CJKspace\",\n      \"CJKmath\",\n      \"CJKglue=${1:glue}\",\n      \"CJKecglue=${1:glue}\",\n      \"xCJKecglue=${1:glue}\",\n      \"CheckSingle\",\n      \"WindowPenalty=${1:integer}\",\n      \"PlainEquation\",\n      \"NewLineCS={${1:commands}}\",\n      \"NewLineCS+={${1:commands}}\",\n      \"NewLineCS-={${1:commands}}\",\n      \"EnvCS={${1:commands}}\",\n      \"EnvCS+={${1:commands}}\",\n      \"EnvCS-={${1:commands}}\",\n      \"InlineEnv={${1:env1,env2,...}}\",\n      \"InlineEnv+={${1:env1,env2,...}}\",\n      \"InlineEnv-={${1:env1,env2,...}}\",\n      \"AutoFallback\",\n      \"AutoFakeBold=${1:true,false,or <number>}\",\n      \"AutoFakeSlant=${1:true,false,or <number>}\",\n      \"EmboldenFactor=${1:factor}\",\n      \"SlantFactor=${1:factor}\",\n      \"PunctStyle=${1|quanjiao,banjiao,kaiming,hangmobanjiao,CCT,plain|}\",\n      \"PunctFamily=${1:false or <family>}\",\n      \"KaiMingPunct={${1:punctuation}}\",\n      \"KaiMingPunct+={${1:punctuation}}\",\n      \"KaiMingPunct-={${1:punctuation}}\",\n      \"LongPunct={${1:punctuation}}\",\n      \"LongPunct+={${1:punctuation}}\",\n      \"LongPunct-={${1:punctuation}}\",\n      \"MiddlePunct={${1:punctuation}}\",\n      \"MiddlePunct+={${1:punctuation}}\",\n      \"MiddlePunct-={${1:punctuation}}\",\n      \"PunctWidth=\",\n      \"PunctBoundWidth=\",\n      \"AllowBreakBetweenPuncts\",\n      \"RubberPunctSkip=${1|true,false,plus,minus|}\",\n      \"CheckFullRight\",\n      \"NoBreakCS={${1:commands}}\",\n      \"NoBreakCS+={${1:commands}}\",\n      \"NoBreakCS-={${1:commands}}\",\n      \"Verb=${1|true,false,env,env+|}\",\n      \"LoadFandol\"\n    ],\n    \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\": [\n      \"enabled-global-setting\",\n      \"fixed-punct-width=\",\n      \"fixed-punct-ratio=${1:real}\",\n      \"mixed-punct-width=\",\n      \"mixed-punct-ratio=${1:real}\",\n      \"middle-punct-width=\",\n      \"middle-punct-ratio=${1:real}\",\n      \"fixed-margin-width=\",\n      \"fixed-margin-ratio=${1:real}\",\n      \"mixed-margin-width=\",\n      \"mixed-margin-ratio=${1:real}\",\n      \"middle-margin-width=\",\n      \"middle-margin-ratio=${1:real}\",\n      \"bound-punct-width=\",\n      \"bound-punct-ratio=${1:real}\",\n      \"bound-margin-width=\",\n      \"bound-margin-ratio=${1:real}\",\n      \"enabled-hanging\",\n      \"add-min-bound-to-margin\",\n      \"optimize-margin\",\n      \"margin-minimum=\",\n      \"enabled-kerning\",\n      \"min-bound-to-kerning\",\n      \"kerning-total-width=\",\n      \"kerning-total-ratio=${1:real}\",\n      \"same-align-margin=\",\n      \"same-align-ratio=${1:real}\",\n      \"different-align-margin=\",\n      \"different-align-ratio=${1:real}\",\n      \"kerning-margin-width=\",\n      \"kerning-margin-ratio=${1:real}\",\n      \"optimize-kerning \",\n      \"kerning-margin-minimum=\"\n    ],\n    \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"FallBack\",\n      \"FallBack=${1:font name}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"Mapping=${1|fullwidth-stop,full-stop,han-trad,han-simp|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeCJK#c\",\n    \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xeCJKfntef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"ulem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKunderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderline[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderline*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdblline[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdblline*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderwave[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderwave*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderwave*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKsout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKsout[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKsout*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKsout*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKxout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKxout[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKxout*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKxout*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdot{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdot[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanyline{${1:depth%l}}{${2:underlined contents}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanyline*{${1:depth%l}}{${2:underlined contents}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanyline[${4:options%keyvals}]{${1:depth%l}}{${2:underlined contents}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanyline*[${4:options%keyvals}]{${1:depth%l}}{${2:underlined contents}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanysymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanysymbol{${1:depth%l}}{${2:symbol}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanysymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanysymbol[${4:options%keyvals}]{${1:depth%l}}{${2:symbol}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderanysymbol\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xeCJKfntefon\"\n    },\n    {\n      \"name\": \"xeCJKfntefon*\"\n    },\n    {\n      \"name\": \"xeCJKfntefon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xeCJKfntefon[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xeCJKfntefon*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xeCJKfntefon*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CJKfilltwosides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xeCJKfntef#c\": [\n      \"normalem\",\n      \"ULforem\",\n      \"normalbf\",\n      \"UWforbf\"\n    ],\n    \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\",\n      \"gap=\"\n    ],\n    \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"symbol=${1:symbol}\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"height=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderdot\": [\n      \"symbol=${1:symbol}\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\",\n      \"boxdepth=\"\n    ],\n    \"\\\\xeCJKsetup\": [\n      \"underline={${1:options}}\",\n      \"underline/skip\",\n      \"underline/hidden\",\n      \"underline/subtract\",\n      \"underline/thickness=\",\n      \"underline/depth=\",\n      \"underline/sep=\",\n      \"underline/format=${1:format commands}\",\n      \"underline/textformat=${1:format commands}\",\n      \"underdblline={${1:options}}\",\n      \"underdblline/skip\",\n      \"underdblline/hidden\",\n      \"underdblline/subtract\",\n      \"underdblline/thickness=\",\n      \"underdblline/depth=\",\n      \"underdblline/sep=\",\n      \"underdblline/format=${1:format commands}\",\n      \"underdblline/textformat=${1:format commands}\",\n      \"underdblline/gap=\",\n      \"underwave={${1:options}}\",\n      \"underwave/skip\",\n      \"underwave/hidden\",\n      \"underwave/subtract\",\n      \"underwave/symbol=${1:symbol}\",\n      \"underwave/depth=\",\n      \"underwave/sep=\",\n      \"underwave/format=${1:format commands}\",\n      \"underwave/textformat=${1:format commands}\",\n      \"sout={${1:options}}\",\n      \"sout/skip\",\n      \"sout/hidden\",\n      \"sout/subtract\",\n      \"sout/thickness=\",\n      \"sout/height=\",\n      \"sout/format=${1:format commands}\",\n      \"sout/textformat=${1:format commands}\",\n      \"xout={${1:options}}\",\n      \"xout/skip\",\n      \"xout/hidden\",\n      \"xout/subtract\",\n      \"xout/format=${1:format commands}\",\n      \"xout/textformat=${1:format commands}\",\n      \"underdot={${1:options}}\",\n      \"underdot/symbol=${1:symbol}\",\n      \"underdot/depth=\",\n      \"underdot/sep=\",\n      \"underdot/format=${1:format commands}\",\n      \"underdot/textformat=${1:format commands}\",\n      \"underdot/boxdepth=\",\n      \"symbol/sep=\",\n      \"symbol/boxdepth=\",\n      \"symbol/textformat=${1:format commands}\",\n      \"ulem={${1:options}}\",\n      \"ulem/skip\",\n      \"ulem/hidden\",\n      \"ulem/subtract\",\n      \"ulem/sep=\",\n      \"ulem/boxdepth=\",\n      \"ulem/textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\": [\n      \"textformat=${1:format commands}\",\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"sep=\",\n      \"boxdepth=\"\n    ],\n    \"\\\\CJKunderanysymbol\": [\n      \"textformat=${1:format commands}\",\n      \"sep=\",\n      \"boxdepth=\"\n    ],\n    \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\": [\n      \"textformat=${1:format commands}\",\n      \"skip\",\n      \"hidden\",\n      \"subtract\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeCJKfntef#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xepersian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xepersian-persiancal\"\n    },\n    {\n      \"name\": \"xepersian-mathdigitspec\"\n    },\n    {\n      \"name\": \"bidi\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote=on\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"KashidaOn\",\n      \"if\": \"Kashida\"\n    },\n    {\n      \"name\": \"KashidaOff\",\n      \"if\": \"Kashida\"\n    },\n    {\n      \"name\": \"KashidaOn\",\n      \"if\": \"Kashida=on\"\n    },\n    {\n      \"name\": \"KashidaOff\",\n      \"if\": \"Kashida=on\"\n    },\n    {\n      \"name\": \"eqcommand\",\n      \"if\": \"localise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqcommand{${1:command-name in Persian}}{${2:original LaTeX command-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqenvironment\",\n      \"if\": \"localise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqenvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"makezwnjletter\",\n      \"if\": \"localise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EqEnvironment\",\n      \"if\": \"localise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EqEnvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqcommand\",\n      \"if\": \"localise=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqcommand{${1:command-name in Persian}}{${2:original LaTeX command-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqenvironment\",\n      \"if\": \"localise=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqenvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"makezwnjletter\",\n      \"if\": \"localise=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EqEnvironment\",\n      \"if\": \"localise=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EqEnvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"xepersianreleasename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepersianversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepersiandate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settextfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"settextfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settextfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settextdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"settextdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settextdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlatintextfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatintextfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatintextfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatintextfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpersiansansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpersiansansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpersiansansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpersiansansfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"persiansffamily\"\n    },\n    {\n      \"name\": \"textpersiansf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersiansf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpersianmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpersianmonofont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"persianttfamily\"\n    },\n    {\n      \"name\": \"textpersiantt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersiantt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setiranicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setiranicfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setiranicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setiranicfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iranicfamily\"\n    },\n    {\n      \"name\": \"textiranic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textiranic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setnavarfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnavarfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setnavarfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setnavarfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"navarfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnavar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpookfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpookfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpookfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpookfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pookfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsayehfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsayehfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsayehfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsayehfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sayehfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsayeh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsayeh{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatinsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatinsansfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlatinmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatinmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatinmonofont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"latintoday\"\n    },\n    {\n      \"name\": \"twocolumnstableofcontents\"\n    },\n    {\n      \"name\": \"XePersian\"\n    },\n    {\n      \"name\": \"plq\"\n    },\n    {\n      \"name\": \"prq\"\n    },\n    {\n      \"name\": \"Latincite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Latincite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Latincite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Latincite[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"harfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harfi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"harfinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harfinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"adadi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adadi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"adadinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adadinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"tartibi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tartibi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"tartibinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tartibinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Abjad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abjad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Abjadnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abjadnumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"abjad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"abjadnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjadnumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"ifwritexviii\"\n    },\n    {\n      \"name\": \"writexviiitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writexviiifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfxepersianPackageVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersion{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfxepersianPackageVersionBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersionBefore{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfxepersianPackageVersionLater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersionLater{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iranicdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LatinAlphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"navardefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PersianAlphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiansfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pookdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetlatinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sayehdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfontsize[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontsize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextDigitFontOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextDigitFontOn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"latin\"\n    },\n    {\n      \"name\": \"persian\"\n    },\n    {\n      \"name\": \"latinitems\"\n    },\n    {\n      \"name\": \"persianitems\"\n    },\n    {\n      \"name\": \"latin*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persian*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xepersian#c\": [\n      \"defaultlatinfontfeatures={${1:font features}}\",\n      \"extrafootnotefeatures\",\n      \"Kashida\",\n      \"quickindex-variant1\",\n      \"quickindex-variant2\",\n      \"localise\",\n      \"mathdigits=${1|automatic,default,persian|}\",\n      \"inlinemathdigits=${1|automatic,default,persian|}\",\n      \"displaymathdigits=${1|automatic,default,persian|}\",\n      \"RTLdocument\",\n      \"documentdirection=${1|righttoleft,lefttoright|}\",\n      \"tabledirection=${1|righttoleft,lefttoright|}\",\n      \"script=${1|latin,nonlatin|}\",\n      \"rldocument\",\n      \"footnoterule=${1|automatic,left,right,split,textwidth|}\",\n      \"footnotedirection=${1|righttoleft,lefttoright|}\",\n      \"debugfootnotedirection\",\n      \"abjadvariant=${1|one,two|}\",\n      \"mathfontsizescale=${1:factor}\",\n      \"fontsizescale=${1:factor}\",\n      \"fontsize=\",\n      \"latinfontsizescale=${1:factor}\",\n      \"baselineskipscale=${1:factor}\",\n      \"latinbaselineskipscale=${1:factor}\",\n      \"logo\",\n      \"pdfinfo\",\n      \"computeautoilg\",\n      \"DetectColumn\",\n      \"debugtextdigitfont\",\n      \"perpagefootnote\"\n    ],\n    \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xepersian#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xetex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"XeTeXtracingfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfonttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfirstfontchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlastfontchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountglyphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharglyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphbounds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXuseglyphmetrics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXgenerateactualtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTscripttag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountlanguages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTlanguagetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountfeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTfeaturetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountfeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfeaturecode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfeaturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXisexclusivefeature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindfeaturebyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountselectors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXselectorcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXselectorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXisdefaultselector\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindselectorbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountvariations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindvariationbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterwordspaceshaping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnumdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uradical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ucharcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterchartokenstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newXeTeXintercharclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterchartoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinputnormalization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinputencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXdefaultencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXdashbreakstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreaklocale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreakskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXupwardsmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXhyphenatablelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpicfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpdffile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpdfpagecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXprotrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsavepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strcmp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"normaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettimer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filemoddate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemoddate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filesize{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mdfivesum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmapfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapline{${1:map spec}}\"\n      }\n    },\n    {\n      \"name\": \"suppressfontnotfounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXrevision\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/xifthen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isnamedefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isnamedefined{${1:command name}}\"\n      }\n    },\n    {\n      \"name\": \"isempty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isempty{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"isequivalentto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isequivalentto{${1:command1}}{${2:command2}}\"\n      }\n    },\n    {\n      \"name\": \"isin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isin{${1:substring}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"endswith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"endswith{${1:string}}{${2:substring}}\"\n      }\n    },\n    {\n      \"name\": \"cnttest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cnttest{${1:counter-expr1}}{${2:comparison}}{${3:counter-expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimtest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dimtest{${1:dimen-expr1}}{${2:comparison}}{${3:dimen-expr2}}\"\n      }\n    },\n    {\n      \"name\": \"newtest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtest{${1:command}}{${2:test-expr}}\"\n      }\n    },\n    {\n      \"name\": \"newtest\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtest{${1:command}}[${3:args}]{${2:test-expr}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/xltxtra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"realscripts\"\n    },\n    {\n      \"name\": \"metalogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsuperscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"realsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"realsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fakesubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fakesuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"namedglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namedglyph{${1:glyphname}}\"\n      }\n    },\n    {\n      \"name\": \"showhyphens\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xltxtra#c\": [\n      \"no-sscript\",\n      \"no-logos\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xltxtra#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xparse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/xspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xspaceaddexceptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xspaceaddexceptions{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xspaceremoveexception\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xspaceremoveexception{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "data/packages/xtab.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bottomcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notablelasthead\"\n    },\n    {\n      \"name\": \"shrinkheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrinkheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablecaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefirsthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasttail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabletail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xentrystretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xentrystretch{${1:decimal-fraction}}\"\n      }\n    },\n    {\n      \"name\": \"PWSTcapht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTcurpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTpenultimate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTtempc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSThead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlasthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstcall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcalltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcallfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSTheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSTheight{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"PWSTcalchtlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTcalnextpageht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSToplastpagenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTsethead\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpxtabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xtab#c\": [\n      \"errorshow\",\n      \"pageshow\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xtab#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/xy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xyoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyoption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyrequire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyrequire{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xywithoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xywithoption{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyeverywithoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xyeverywithoption{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyeveryrequest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xyeveryrequest{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"afterPATH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterPATH{${1:decor}}\"\n      }\n    },\n    {\n      \"name\": \"afterPOS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterPOS{${1:decor}}\"\n      }\n    },\n    {\n      \"name\": \"AliasPattern\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AliasPattern{${1:alias}}{${2:name}}{${3:file}}\"\n      }\n    },\n    {\n      \"name\": \"ar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:hop}]\"\n      }\n    },\n    {\n      \"name\": \"arrowobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"cir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cir{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"cir<radius>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cir<radius>{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"circleEdge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Col\"\n    },\n    {\n      \"name\": \"CompileFixPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CompileFixPoint{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"CompileMatrices\"\n    },\n    {\n      \"name\": \"CompilePrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CompilePrefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"composite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"composite{${1:objects}}\"\n      }\n    },\n    {\n      \"name\": \"connect\"\n    },\n    {\n      \"name\": \"croplattice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"croplattice{${1:pt1}}{${2:pt2}}{${3:pt3}}{${4:pt4}}{${5:pt5}}{${6:pt6}}{${7:pt7}}{${8:pt8}}\"\n      }\n    },\n    {\n      \"name\": \"crv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crv{${1:poslist}}\"\n      }\n    },\n    {\n      \"name\": \"crvs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crvs{${1:dir}}\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curve{${1:poslist}}\"\n      }\n    },\n    {\n      \"name\": \"curveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"ddtwocell\"\n    },\n    {\n      \"name\": \"defaultlatticebody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dir{${1:dir}}\"\n      }\n    },\n    {\n      \"name\": \"Direction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dltwocell\"\n    },\n    {\n      \"name\": \"drop\"\n    },\n    {\n      \"name\": \"drtwocell\"\n    },\n    {\n      \"name\": \"dtwocell\"\n    },\n    {\n      \"name\": \"dumpPSdict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dumpPSdict{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"dutwocell\"\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ellipse{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse<dimen>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ellipse<dimen>{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"endxy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frm{${1:frame}}\"\n      }\n    },\n    {\n      \"name\": \"halfrootthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halfroottwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knotstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knotstyle{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"knotSTYLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knotSTYLE{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"knotstyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knotstyles{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"labelbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelmargin\"\n    },\n    {\n      \"name\": \"labelstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticebody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldtwocell\"\n    },\n    {\n      \"name\": \"lltwocell\"\n    },\n    {\n      \"name\": \"LoadAllPatterns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadAllPatterns{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LoadPattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadPattern{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"lowercurveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercurveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"lrtwocell\"\n    },\n    {\n      \"name\": \"ltwocell\"\n    },\n    {\n      \"name\": \"lutwocell\"\n    },\n    {\n      \"name\": \"MakeOutlines\"\n    },\n    {\n      \"name\": \"maxTPICpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxTPICpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"modmapobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"modmapobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"MovieSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MovieSetup{${1:width=width,height=height}}\"\n      }\n    },\n    {\n      \"name\": \"MultipleDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdir\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdir{${1:directional}}{${2:composite}}\"\n      }\n    },\n    {\n      \"name\": \"newgraphescape\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgraphescape{${1:letter}}{${2:graph%formula}}\"\n      }\n    },\n    {\n      \"name\": \"newxycolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newxycolor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newxypattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newxypattern{${1:name}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"NoCompileMatrices\"\n    },\n    {\n      \"name\": \"NoEMspecials\"\n    },\n    {\n      \"name\": \"NoOutlines\"\n    },\n    {\n      \"name\": \"NoPScolor\"\n    },\n    {\n      \"name\": \"NoPSframes\"\n    },\n    {\n      \"name\": \"NoPSlines\"\n    },\n    {\n      \"name\": \"NoPSrotate\"\n    },\n    {\n      \"name\": \"NoPSspecials\"\n    },\n    {\n      \"name\": \"NoPStiles\"\n    },\n    {\n      \"name\": \"NoResizing\"\n    },\n    {\n      \"name\": \"NoRules\"\n    },\n    {\n      \"name\": \"NoTips\"\n    },\n    {\n      \"name\": \"NoTPICframes\"\n    },\n    {\n      \"name\": \"NoTPICspecials\"\n    },\n    {\n      \"name\": \"object\"\n    },\n    {\n      \"name\": \"objectbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objectbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"objectheight\"\n    },\n    {\n      \"name\": \"objectmargin\"\n    },\n    {\n      \"name\": \"objectstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"objectwidth\"\n    },\n    {\n      \"name\": \"OnlyOutlines\"\n    },\n    {\n      \"name\": \"partroottwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PATH\"\n    },\n    {\n      \"name\": \"PATHafterPOS\"\n    },\n    {\n      \"name\": \"POS\"\n    },\n    {\n      \"name\": \"qspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qspline{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"rdtwocell\"\n    },\n    {\n      \"name\": \"rectangleEdge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restore\"\n    },\n    {\n      \"name\": \"rltwocell\"\n    },\n    {\n      \"name\": \"Row\"\n    },\n    {\n      \"name\": \"rrtwocell\"\n    },\n    {\n      \"name\": \"rtwocell\"\n    },\n    {\n      \"name\": \"rutwocell\"\n    },\n    {\n      \"name\": \"save\"\n    },\n    {\n      \"name\": \"scene\"\n    },\n    {\n      \"name\": \"SelectTips\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SelectTips{${1:family}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"ShowOutlines\"\n    },\n    {\n      \"name\": \"SilentMatrices\"\n    },\n    {\n      \"name\": \"SloppyCurves\"\n    },\n    {\n      \"name\": \"splinetolerance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splinetolerance{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"turnradius\"\n    },\n    {\n      \"name\": \"twocell\"\n    },\n    {\n      \"name\": \"twocellhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocellhead{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"twocellstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocelltail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocelltail{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"txt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"txt<width>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt<width>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"udtwocell\"\n    },\n    {\n      \"name\": \"ultwocell\"\n    },\n    {\n      \"name\": \"uppercurveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercurveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"urtwocell\"\n    },\n    {\n      \"name\": \"UseAllTwocells\"\n    },\n    {\n      \"name\": \"UseCompositeMaps\"\n    },\n    {\n      \"name\": \"UseCrayolaColors\"\n    },\n    {\n      \"name\": \"UseCurvedFrames\"\n    },\n    {\n      \"name\": \"UseEMspecials\"\n    },\n    {\n      \"name\": \"UseFontFrames\"\n    },\n    {\n      \"name\": \"UseHalfTwocells\"\n    },\n    {\n      \"name\": \"UsePatternFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePatternFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UsePScolor\"\n    },\n    {\n      \"name\": \"UsePSframes\"\n    },\n    {\n      \"name\": \"UsePSheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePSheader{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UsePSlines\"\n    },\n    {\n      \"name\": \"UsePSrotate\"\n    },\n    {\n      \"name\": \"UsePSspecials\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePSspecials{${1:driver}}\"\n      }\n    },\n    {\n      \"name\": \"UsePStiles\"\n    },\n    {\n      \"name\": \"UseResizing\"\n    },\n    {\n      \"name\": \"UseRules\"\n    },\n    {\n      \"name\": \"UseSingleDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseTips\"\n    },\n    {\n      \"name\": \"UseTPICframes\"\n    },\n    {\n      \"name\": \"UseTPICspecials\"\n    },\n    {\n      \"name\": \"UseTwocells\"\n    },\n    {\n      \"name\": \"utwocell\"\n    },\n    {\n      \"name\": \"uutwocell\"\n    },\n    {\n      \"name\": \"xtwocell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwocell[${2:hop}]{${1:displace}}\"\n      }\n    },\n    {\n      \"name\": \"xtwocell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwocell{${1:displace}}\"\n      }\n    },\n    {\n      \"name\": \"Xy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyatipfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xybox{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xybsqlfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xybtipfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xycircfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xycircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xycircle(${2:x},${3:y}){${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xycircle<radius>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xycircle<radius>{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xycompile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xycompile{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xycompileto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xycompileto{${1:name}}{${2:<pos><${3:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xydashfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyecho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xygraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xygraph{${1:graph%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xyignore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyignore{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xyimport\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"xyimport(${2:width},${3:height})(${4:xoffset},${5:yoffset}){${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"xyimport\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xyimport(${2:width},${3:height}){${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"xylattice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xylattice{${1:pt1}}{${2:pt2}}{${3:pt3}}{${4:pt4}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrix{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixcolsep\"\n    },\n    {\n      \"name\": \"xymatrixcompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrixcompile{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixnocompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrixnocompile{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixrowsep\"\n    },\n    {\n      \"name\": \"xypolygon\"\n    },\n    {\n      \"name\": \"xypolyline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xypolyline{${1:toks}}\"\n      }\n    },\n    {\n      \"name\": \"xypolyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xypolynode\"\n    },\n    {\n      \"name\": \"xypolynum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyprovide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"xyprovide{${1:option}}{${2:name}}{${3:version}}{${4:author}}{${5:email}}{${6:address}}\"\n      }\n    },\n    {\n      \"name\": \"xyPSdefaultdict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyquiet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyReloadDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyresetcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyShowDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xytracing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeroDivideLimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zeroDivideLimit{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xy\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\": [\n      \"curve\",\n      \"frame\",\n      \"tips\",\n      \"line\",\n      \"rotate\",\n      \"color\",\n      \"tile\",\n      \"import\",\n      \"movie\",\n      \"ps\",\n      \"tpic\",\n      \"emtex\",\n      \"necula\",\n      \"picture\",\n      \"all\",\n      \"dummy\",\n      \"arrow\",\n      \"2cell\",\n      \"matrix\",\n      \"graph\",\n      \"poly\",\n      \"web\",\n      \"arc\",\n      \"knot\",\n      \"smart\",\n      \"barr\",\n      \"dvidrv\",\n      \"dvips\",\n      \"dvitops\",\n      \"oztex\",\n      \"17oztex\",\n      \"textures\",\n      \"16textures\",\n      \"xdvi\",\n      \"pdf\",\n      \"v2\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/yathesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"colophon\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"draftwatermark\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"epigraph\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fncychap\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"morewrites\"\n    },\n    {\n      \"name\": \"nonumonpart\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"twoopt\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yadsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yadsetup{${1:⟨options⟩%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"author{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"author[${3:⟨email⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:⟨titre dans la langue secondaire⟩%text}]{${1:⟨titre dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:⟨sous-titre dans la langue secondaire⟩%text}]{${1:⟨sous-titre dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"academicfield\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"academicfield[${2:⟨discipline dans la langue secondaire⟩%text}]{${1:⟨discipline dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"speciality\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"speciality[${2:⟨spécialité dans la langue secondaire⟩%text}]{${1:⟨spécialité dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subject[${2:⟨sujet dans la langue secondaire⟩%text}]{${1:⟨sujet dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:⟨sous-titre⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"academicfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"academicfield{${1:⟨discipline⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"speciality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speciality{${1:⟨spécialité⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:⟨sujet⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"date{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n      }\n    },\n    {\n      \"name\": \"submissiondate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"submissiondate{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n      }\n    },\n    {\n      \"name\": \"pres\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pres{${1:⟨nom du PRES⟩}}\"\n      }\n    },\n    {\n      \"name\": \"comue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comue{${1:⟨nom de la ComUE⟩}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:⟨nom de l'institut⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"coinstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coinstitute{${1:⟨nom de l'institut de cotutelle⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:⟨nom de l'entreprise⟩}}\"\n      }\n    },\n    {\n      \"name\": \"doctoralschool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doctoralschool{${1:⟨nom de l'école doctorale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"laboratory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"laboratory{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n      }\n    },\n    {\n      \"name\": \"pres\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pres[${2:⟨précisions⟩%keyvals}]{${1:⟨nom du PRES⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"comue[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de la ComUE⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'institut⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coinstitute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coinstitute[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'institut de cotutelle⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"company[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'entreprise⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"doctoralschool\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doctoralschool[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'école doctorale⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"laboratory\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"laboratory[${3:⟨précisions⟩%keyvals}]{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\",\n        \"keys\": [\n          \"\\\\laboratory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"supervisor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cosupervisor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comonitor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"comonitor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"referee[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"examiner[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"committeepresident\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"committeepresident[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"guest[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"supervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cosupervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"comonitor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comonitor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"referee{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examiner{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"committeepresident\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"committeepresident{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"guest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"guest{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"ordernumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ordernumber[${1:⟨numéro d'ordre⟩}]\"\n      }\n    },\n    {\n      \"name\": \"ordernumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keywords{${1:⟨mots clés dans la langue principale⟩%text}}{${2:⟨mots clés dans la langue secondaire⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:⟨options⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colophontext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontext{${1:⟨texte⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"disclaimertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disclaimertext{${1:⟨clause⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"makedisclaimer\"\n    },\n    {\n      \"name\": \"makedisclaimer*\"\n    },\n    {\n      \"name\": \"makekeywords\"\n    },\n    {\n      \"name\": \"makekeywords*\"\n    },\n    {\n      \"name\": \"makelaboratory\"\n    },\n    {\n      \"name\": \"makelaboratory*\"\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:⟨dédicace⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"makededications\"\n    },\n    {\n      \"name\": \"makededications*\"\n    },\n    {\n      \"name\": \"frontepigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frontepigraph{${1:⟨épigraphe⟩%text}}{${2:⟨auteur⟩}}\"\n      }\n    },\n    {\n      \"name\": \"frontepigraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"frontepigraph[${3:⟨langue⟩}]{${1:⟨épigraphe⟩%text}}{${2:⟨auteur⟩}}\"\n      }\n    },\n    {\n      \"name\": \"makefrontepigraphs\"\n    },\n    {\n      \"name\": \"makefrontepigraphs*\"\n    },\n    {\n      \"name\": \"makeabstract\"\n    },\n    {\n      \"name\": \"newglssymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newglssymbol{${1:⟨label⟩%labeldef}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglssymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newglssymbol[${5:⟨classement⟩}]{${1:⟨label⟩%labeldef}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:⟨précisions⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section*[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsection*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsection*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paragraph*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"makebackcover\"\n    },\n    {\n      \"name\": \"startlocaltocs\"\n    },\n    {\n      \"name\": \"stoplocaltocs\"\n    },\n    {\n      \"name\": \"nextwithlocaltoc\"\n    },\n    {\n      \"name\": \"nextwithoutlocaltoc\"\n    },\n    {\n      \"name\": \"leadchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leadchapter{${1:⟨texte⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:⟨options⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsymbols\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"expression\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"expression{${1:⟨label⟩%labeldef}}{${2:⟨valeur en français⟩%text}}{${3:⟨valeur en anglais⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:⟨titre alternatif⟩%text}]\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/yathesis\": [\n      \"mainlanguage=${1|french,english|}\",\n      \"secnumdepth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"space=${1|single,onehalf,double|}\",\n      \"chap-style=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n      \"fncychap=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n      \"nofrontcover\",\n      \"sepcorpaffilfrench=\",\n      \"sepcorpaffilenglish=\",\n      \"version=${1|inprogress,inprogress*,submitted,submitted*,final,draft|}\",\n      \"output=${1|screen,paper,paper*|}\",\n      \"colophon-location=${1|verso-frontcover,recto-backcover,nowhere|}\",\n      \"hdr\",\n      \"numlaboratories=${1:⟨nombre de laboratoires affichés⟩}\",\n      \"localtocs\",\n      \"localtocs/depth=${1|section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"localbibs\",\n      \"localbibs*\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"leqno\",\n      \"fleqn\",\n      \"oneside\",\n      \"noerror\",\n      \"noauthor\",\n      \"notitle\",\n      \"noacademicfield\",\n      \"nodate\",\n      \"noinstitute\",\n      \"nodoctoralschool\",\n      \"nolaboratory\",\n      \"nolaboratoryaddress\",\n      \"nosupervisor\",\n      \"nomaketitle\",\n      \"nokeywords\",\n      \"noabstract\",\n      \"nomakeabstract\",\n      \"notableofcontents\",\n      \"noprintbibliography\",\n      \"graphicx={${1:⟨options du package graphicx⟩}}\",\n      \"adjustbox={${1:⟨options du package adjustbox⟩}}\",\n      \"setspace={${1:⟨options du package setspace⟩}}\",\n      \"xcolor={${1:⟨options du package xcolor⟩}}\",\n      \"datatool={${1:⟨options du package datatool⟩}}\",\n      \"titlesec={${1:⟨options du package titlesec⟩}}\",\n      \"draftwatermark={${1:⟨options du package draftwatermark⟩}}\",\n      \"babel={${1:⟨options du package babel⟩}}\",\n      \"datetime2={${1:⟨options du package datetime2⟩}}\",\n      \"corps=${1:⟨corporation⟩}\",\n      \"role=${1:⟨role⟩}\"\n    ],\n    \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\": [\n      \"logo=${1:⟨fichier image⟩}\",\n      \"logoheight=${1:⟨hauteur⟩}\",\n      \"url=${1:⟨URL⟩}\",\n      \"nologo\"\n    ],\n    \"\\\\laboratory\": [\n      \"logo=${1:⟨fichier image⟩}\",\n      \"logoheight=${1:⟨hauteur⟩}\",\n      \"url=${1:⟨URL⟩}\",\n      \"telephone=${1:⟨numéro de téléphone⟩}\",\n      \"fax=${1:⟨numéro de fax⟩}\",\n      \"email=${1:⟨courriel⟩}\",\n      \"nonamelink\"\n    ],\n    \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\": [\n      \"affiliation=${1:⟨affiliation⟩}\",\n      \"professor\",\n      \"seniorresearcher\",\n      \"mcf\",\n      \"mcf*\",\n      \"associateprofessor\",\n      \"associateprofessor*\",\n      \"juniorresearcher\",\n      \"juniorresearcher*\",\n      \"male\",\n      \"female\"\n    ],\n    \"\\\\maketitle\": [\n      \"nofrontcover\",\n      \"noaim\",\n      \"frametitle=${1|shadowbox,ovalbox,none,fbox,{⟨autre⟩}|}\"\n    ],\n    \"\\\\tableofcontents\": [\n      \"depth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"name=${1:⟨nom de la table des matières⟩}\"\n    ],\n    \"\\\\printsymbols\": [\n      \"style=${1|yadsymbolstyle,⟨autre⟩|}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/yathesis\"\n  ]\n}"
  },
  {
    "path": "data/packages/yfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gothfamily\"\n    },\n    {\n      \"name\": \"swabfamily\"\n    },\n    {\n      \"name\": \"frakfamily\"\n    },\n    {\n      \"name\": \"initfamily\"\n    },\n    {\n      \"name\": \"textgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"frakdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gothdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swabdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"fraklines\"\n    },\n    {\n      \"name\": \"yinipar\"\n    },\n    {\n      \"name\": \"yinitpar\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/yfonts#c\": [\n      \"varumlaut\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/yfonts#c\"\n  ]\n}"
  },
  {
    "path": "data/packages/zhnumber.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"zhnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnumber[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdigits\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdigits[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdigits*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdigits*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdigits*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdigits*[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"zhnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnum[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdig{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"zhdig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdig[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhweekday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhweekday{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdate{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhdate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdate*{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhtoday\"\n    },\n    {\n      \"name\": \"zhtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhtime{${1:hh:mm}}\"\n      }\n    },\n    {\n      \"name\": \"zhcurrtime\"\n    },\n    {\n      \"name\": \"zhtiangan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhtiangan{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdizhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdizhi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhganzhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhganzhi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhganzhinian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhganzhinian{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumExtendScaleMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumExtendScaleMap{${1:character1, character2, ..., charactern}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumExtendScaleMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnumExtendScaleMap[${2:character}]{${1:character1, character2, ..., charactern}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhnumClearWrapper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhnumResetWrapper\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\": [\n      \"encoding=${1|GBK,Big5,UTF8|}\",\n      \"time=${1|Arabic,Chinese|}\",\n      \"arabicsep={${1:separator}}\",\n      \"style=${1|Simplified,Traditional,Normal,Financial,Ancient|}\",\n      \"null\",\n      \"ganzhi-cyclic\",\n      \"reset\",\n      \"activechar\",\n      \"-=\",\n      \"-0=\",\n      \"0=\",\n      \"1=\",\n      \"2=\",\n      \"3=\",\n      \"4=\",\n      \"5=\",\n      \"6=\",\n      \"7=\",\n      \"8=\",\n      \"9=\",\n      \"10=\",\n      \"20=\",\n      \"30=\",\n      \"40=\",\n      \"100=\",\n      \"200=\",\n      \"1000=\",\n      \"E2=\",\n      \"E3=\",\n      \"E4=\",\n      \"E8=\",\n      \"E12=\",\n      \"E16=\",\n      \"E20=\",\n      \"E24=\",\n      \"E28=\",\n      \"E32=\",\n      \"E36=\",\n      \"E40=\",\n      \"E44=\",\n      \"F0=\",\n      \"F1=\",\n      \"F2=\",\n      \"F3=\",\n      \"F4=\",\n      \"F5=\",\n      \"F6=\",\n      \"F7=\",\n      \"F8=\",\n      \"F9=\",\n      \"F10=\",\n      \"F100=\",\n      \"F1000=\",\n      \"FE2=\",\n      \"FE3=\",\n      \"dot=\",\n      \"and=\",\n      \"parts=\",\n      \"year=\",\n      \"month=\",\n      \"day=\",\n      \"hour=\",\n      \"minute=\",\n      \"weekday=\",\n      \"mon=\",\n      \"tue=\",\n      \"wed=\",\n      \"thu=\",\n      \"fri=\",\n      \"sat=\",\n      \"sun=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "data/unimathsymbols.json",
    "content": "{\n  \"APLboxquestion\": {\n    \"command\": \"APLboxquestion\",\n    \"detail\": \"⍰\",\n    \"documentation\": \"Apl functional symbol quad question\"\n  },\n  \"APLboxupcaret\": {\n    \"command\": \"APLboxupcaret\",\n    \"detail\": \"⍓\",\n    \"documentation\": \"Apl functional symbol quad up caret\"\n  },\n  \"APLnotbackslash\": {\n    \"command\": \"APLnotbackslash\",\n    \"detail\": \"⍀ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Apl functional symbol backslash bar\"\n  },\n  \"APLnotslash\": {\n    \"command\": \"APLnotslash\",\n    \"detail\": \"⌿ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Apl functional symbol slash bar, solidus, bar through\"\n  },\n  \"Angstrom\": {\n    \"command\": \"Angstrom\",\n    \"detail\": \"Å (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n  },\n  \"Barv\": {\n    \"command\": \"Barv\",\n    \"detail\": \"⫧\",\n    \"documentation\": \"Short down tack with overbar\"\n  },\n  \"BbbA\": {\n    \"command\": \"BbbA\",\n    \"detail\": \"𝔸 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{a} (dsfont), mathematical double-struck capital a\"\n  },\n  \"BbbB\": {\n    \"command\": \"BbbB\",\n    \"detail\": \"𝔹 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{b} (dsfont), matmathematical double-struck capital b\"\n  },\n  \"BbbC\": {\n    \"command\": \"BbbC\",\n    \"detail\": \"ℂ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{c} (dsfont), open face c\"\n  },\n  \"BbbD\": {\n    \"command\": \"BbbD\",\n    \"detail\": \"𝔻 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{d} (dsfont), matmathematical double-struck capital d\"\n  },\n  \"BbbE\": {\n    \"command\": \"BbbE\",\n    \"detail\": \"𝔼 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{e} (dsfont), matmathematical double-struck capital e\"\n  },\n  \"BbbF\": {\n    \"command\": \"BbbF\",\n    \"detail\": \"𝔽 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{f} (dsfont), matmathematical double-struck capital f\"\n  },\n  \"BbbG\": {\n    \"command\": \"BbbG\",\n    \"detail\": \"𝔾 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{g} (dsfont), matmathematical double-struck capital g\"\n  },\n  \"BbbGamma\": {\n    \"command\": \"BbbGamma\",\n    \"detail\": \"ℾ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"Double-struck capital gamma\"\n  },\n  \"BbbH\": {\n    \"command\": \"BbbH\",\n    \"detail\": \"ℍ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{h} (dsfont), open face capital h\"\n  },\n  \"BbbI\": {\n    \"command\": \"BbbI\",\n    \"detail\": \"𝕀 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{i} (dsfont), matmathematical double-struck capital i\"\n  },\n  \"BbbJ\": {\n    \"command\": \"BbbJ\",\n    \"detail\": \"𝕁 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{j} (dsfont), matmathematical double-struck capital j\"\n  },\n  \"BbbK\": {\n    \"command\": \"BbbK\",\n    \"detail\": \"𝕂 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{k} (dsfont), matmathematical double-struck capital k\"\n  },\n  \"BbbL\": {\n    \"command\": \"BbbL\",\n    \"detail\": \"𝕃 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{l} (dsfont), matmathematical double-struck capital l\"\n  },\n  \"BbbM\": {\n    \"command\": \"BbbM\",\n    \"detail\": \"𝕄 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{m} (dsfont), matmathematical double-struck capital m\"\n  },\n  \"BbbN\": {\n    \"command\": \"BbbN\",\n    \"detail\": \"ℕ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{n} (dsfont), open face n\"\n  },\n  \"BbbO\": {\n    \"command\": \"BbbO\",\n    \"detail\": \"𝕆 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{o} (dsfont), matmathematical double-struck capital o\"\n  },\n  \"BbbP\": {\n    \"command\": \"BbbP\",\n    \"detail\": \"ℙ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{p} (dsfont), open face p\"\n  },\n  \"BbbPi\": {\n    \"command\": \"BbbPi\",\n    \"detail\": \"ℿ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"Double-struck capital pi\"\n  },\n  \"BbbQ\": {\n    \"command\": \"BbbQ\",\n    \"detail\": \"ℚ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{q} (dsfont), open face q\"\n  },\n  \"BbbR\": {\n    \"command\": \"BbbR\",\n    \"detail\": \"ℝ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{r} (dsfont), open face r\"\n  },\n  \"BbbS\": {\n    \"command\": \"BbbS\",\n    \"detail\": \"𝕊 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{s} (dsfont), matmathematical double-struck capital s\"\n  },\n  \"BbbT\": {\n    \"command\": \"BbbT\",\n    \"detail\": \"𝕋 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{t} (dsfont), matmathematical double-struck capital t\"\n  },\n  \"BbbU\": {\n    \"command\": \"BbbU\",\n    \"detail\": \"𝕌 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{u} (dsfont), matmathematical double-struck capital u\"\n  },\n  \"BbbV\": {\n    \"command\": \"BbbV\",\n    \"detail\": \"𝕍 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{v} (dsfont), matmathematical double-struck capital v\"\n  },\n  \"BbbW\": {\n    \"command\": \"BbbW\",\n    \"detail\": \"𝕎 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{w} (dsfont), matmathematical double-struck capital w\"\n  },\n  \"BbbX\": {\n    \"command\": \"BbbX\",\n    \"detail\": \"𝕏 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{x} (dsfont), matmathematical double-struck capital x\"\n  },\n  \"BbbY\": {\n    \"command\": \"BbbY\",\n    \"detail\": \"𝕐 (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{y} (dsfont), matmathematical double-struck capital y\"\n  },\n  \"BbbZ\": {\n    \"command\": \"BbbZ\",\n    \"detail\": \"ℤ (\\\"mathbb\\\" command)\",\n    \"documentation\": \"\\\\mathds{z} (dsfont), open face z\"\n  },\n  \"Bbba\": {\n    \"command\": \"Bbba\",\n    \"detail\": \"𝕒 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small a\"\n  },\n  \"Bbbb\": {\n    \"command\": \"Bbbb\",\n    \"detail\": \"𝕓 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small b\"\n  },\n  \"Bbbc\": {\n    \"command\": \"Bbbc\",\n    \"detail\": \"𝕔 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small c\"\n  },\n  \"Bbbd\": {\n    \"command\": \"Bbbd\",\n    \"detail\": \"𝕕 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small d\"\n  },\n  \"Bbbe\": {\n    \"command\": \"Bbbe\",\n    \"detail\": \"𝕖 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small e\"\n  },\n  \"Bbbeight\": {\n    \"command\": \"Bbbeight\",\n    \"detail\": \"𝟠 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 8\"\n  },\n  \"Bbbf\": {\n    \"command\": \"Bbbf\",\n    \"detail\": \"𝕗 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small f\"\n  },\n  \"Bbbfive\": {\n    \"command\": \"Bbbfive\",\n    \"detail\": \"𝟝 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 5\"\n  },\n  \"Bbbfour\": {\n    \"command\": \"Bbbfour\",\n    \"detail\": \"𝟜 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 4\"\n  },\n  \"Bbbg\": {\n    \"command\": \"Bbbg\",\n    \"detail\": \"𝕘 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small g\"\n  },\n  \"Bbbgamma\": {\n    \"command\": \"Bbbgamma\",\n    \"detail\": \"ℽ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"\\\\eulergamma (wrisym), double-struck small gamma\"\n  },\n  \"Bbbh\": {\n    \"command\": \"Bbbh\",\n    \"detail\": \"𝕙 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small h\"\n  },\n  \"Bbbi\": {\n    \"command\": \"Bbbi\",\n    \"detail\": \"𝕚 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small i\"\n  },\n  \"Bbbj\": {\n    \"command\": \"Bbbj\",\n    \"detail\": \"𝕛 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small j\"\n  },\n  \"Bbbk\": {\n    \"command\": \"Bbbk\",\n    \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n    \"documentation\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n  },\n  \"Bbbl\": {\n    \"command\": \"Bbbl\",\n    \"detail\": \"𝕝 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small l\"\n  },\n  \"Bbbm\": {\n    \"command\": \"Bbbm\",\n    \"detail\": \"𝕞 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small m\"\n  },\n  \"Bbbn\": {\n    \"command\": \"Bbbn\",\n    \"detail\": \"𝕟 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small n\"\n  },\n  \"Bbbnine\": {\n    \"command\": \"Bbbnine\",\n    \"detail\": \"𝟡 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 9\"\n  },\n  \"Bbbo\": {\n    \"command\": \"Bbbo\",\n    \"detail\": \"𝕠 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small o\"\n  },\n  \"Bbbone\": {\n    \"command\": \"Bbbone\",\n    \"detail\": \"𝟙 (\\\"bbold fourier\\\" command)\",\n    \"documentation\": \"\\\\mathds{1} (dsfont), mathematical double-struck digit 1\"\n  },\n  \"Bbbp\": {\n    \"command\": \"Bbbp\",\n    \"detail\": \"𝕡 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small p\"\n  },\n  \"Bbbpi\": {\n    \"command\": \"Bbbpi\",\n    \"detail\": \"ℼ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"\\\\doublepi (wrisym), double-struck small pi\"\n  },\n  \"Bbbq\": {\n    \"command\": \"Bbbq\",\n    \"detail\": \"𝕢 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small q\"\n  },\n  \"Bbbr\": {\n    \"command\": \"Bbbr\",\n    \"detail\": \"𝕣 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small r\"\n  },\n  \"Bbbs\": {\n    \"command\": \"Bbbs\",\n    \"detail\": \"𝕤 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small s\"\n  },\n  \"Bbbseven\": {\n    \"command\": \"Bbbseven\",\n    \"detail\": \"𝟟 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 7\"\n  },\n  \"Bbbsix\": {\n    \"command\": \"Bbbsix\",\n    \"detail\": \"𝟞 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 6\"\n  },\n  \"Bbbsum\": {\n    \"command\": \"Bbbsum\",\n    \"detail\": \"⅀ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"Double-struck n-ary summation\"\n  },\n  \"Bbbt\": {\n    \"command\": \"Bbbt\",\n    \"detail\": \"𝕥 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small t\"\n  },\n  \"Bbbthree\": {\n    \"command\": \"Bbbthree\",\n    \"detail\": \"𝟛 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 3\"\n  },\n  \"Bbbtwo\": {\n    \"command\": \"Bbbtwo\",\n    \"detail\": \"𝟚 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 2\"\n  },\n  \"Bbbu\": {\n    \"command\": \"Bbbu\",\n    \"detail\": \"𝕦 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small u\"\n  },\n  \"Bbbv\": {\n    \"command\": \"Bbbv\",\n    \"detail\": \"𝕧 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small v\"\n  },\n  \"Bbbw\": {\n    \"command\": \"Bbbw\",\n    \"detail\": \"𝕨 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small w\"\n  },\n  \"Bbbx\": {\n    \"command\": \"Bbbx\",\n    \"detail\": \"𝕩 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small x\"\n  },\n  \"Bbby\": {\n    \"command\": \"Bbby\",\n    \"detail\": \"𝕪 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small y\"\n  },\n  \"Bbbz\": {\n    \"command\": \"Bbbz\",\n    \"detail\": \"𝕫 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck small z\"\n  },\n  \"Bbbzero\": {\n    \"command\": \"Bbbzero\",\n    \"detail\": \"𝟘 (\\\"bbold\\\" command)\",\n    \"documentation\": \"Mathematical double-struck digit 0\"\n  },\n  \"Bumpeq\": {\n    \"command\": \"Bumpeq\",\n    \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Bumpy equals\"\n  },\n  \"Cap\": {\n    \"command\": \"Cap\",\n    \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"/cap /doublecap b: double intersection\"\n  },\n  \"Colon\": {\n    \"command\": \"Colon\",\n    \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"::, two colons\"\n  },\n  \"Coloneq\": {\n    \"command\": \"Coloneq\",\n    \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n  },\n  \"Cup\": {\n    \"command\": \"Cup\",\n    \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"/cup /doublecup b: double union\"\n  },\n  \"DDownarrow\": {\n    \"command\": \"DDownarrow\",\n    \"detail\": \"⟱\",\n    \"documentation\": \"Downwards quadruple arrow\"\n  },\n  \"DashV\": {\n    \"command\": \"DashV\",\n    \"detail\": \"⫥\",\n    \"documentation\": \"Double vertical bar double left turnstile\"\n  },\n  \"DashVDash\": {\n    \"command\": \"DashVDash\",\n    \"detail\": \"⟚\",\n    \"documentation\": \"Left and right double turnstile\"\n  },\n  \"Dashv\": {\n    \"command\": \"Dashv\",\n    \"detail\": \"⫤\",\n    \"documentation\": \"Vertical bar double left turnstile\"\n  },\n  \"Ddownarrow\": {\n    \"command\": \"Ddownarrow\",\n    \"detail\": \"⤋\",\n    \"documentation\": \"Downwards triple arrow\"\n  },\n  \"Doteq\": {\n    \"command\": \"Doteq\",\n    \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n  },\n  \"Downarrow\": {\n    \"command\": \"Downarrow\",\n    \"detail\": \"⇓\",\n    \"documentation\": \"Down double arrow\"\n  },\n  \"Equiv\": {\n    \"command\": \"Equiv\",\n    \"detail\": \"≣\",\n    \"documentation\": \"Strict equivalence (4 lines)\"\n  },\n  \"Eulerconst\": {\n    \"command\": \"Eulerconst\",\n    \"detail\": \"ℇ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Euler constant\"\n  },\n  \"Exclam\": {\n    \"command\": \"Exclam\",\n    \"detail\": \"‼\",\n    \"documentation\": \"!!, double exclamation mark\"\n  },\n  \"Finv\": {\n    \"command\": \"Finv\",\n    \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Turned capital f\"\n  },\n  \"Game\": {\n    \"command\": \"Game\",\n    \"detail\": \"⅁\",\n    \"documentation\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n  },\n  \"Gt\": {\n    \"command\": \"Gt\",\n    \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n  },\n  \"Hermaphrodite\": {\n    \"command\": \"Hermaphrodite\",\n    \"detail\": \"⚥\",\n    \"documentation\": \"Male and female sign\"\n  },\n  \"Im\": {\n    \"command\": \"Im\",\n    \"detail\": \"ℑ\",\n    \"documentation\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n  },\n  \"Join\": {\n    \"command\": \"Join\",\n    \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Join\"\n  },\n  \"LLeftarrow\": {\n    \"command\": \"LLeftarrow\",\n    \"detail\": \"⭅\",\n    \"documentation\": \"Leftwards quadruple arrow\"\n  },\n  \"Lbrbrak\": {\n    \"command\": \"Lbrbrak\",\n    \"detail\": \"〘\",\n    \"documentation\": \"Left white tortoise shell bracket\"\n  },\n  \"Ldsh\": {\n    \"command\": \"Ldsh\",\n    \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Left down angled arrow\"\n  },\n  \"Leftarrow\": {\n    \"command\": \"Leftarrow\",\n    \"detail\": \"⇐\",\n    \"documentation\": \"Left double arrow\"\n  },\n  \"Leftrightarrow\": {\n    \"command\": \"Leftrightarrow\",\n    \"detail\": \"⇔\",\n    \"documentation\": \"Left and right double arrow\"\n  },\n  \"Lleftarrow\": {\n    \"command\": \"Lleftarrow\",\n    \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left triple arrow\"\n  },\n  \"Longleftarrow\": {\n    \"command\": \"Longleftarrow\",\n    \"detail\": \"⟸\",\n    \"documentation\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n  },\n  \"Longleftrightarrow\": {\n    \"command\": \"Longleftrightarrow\",\n    \"detail\": \"⟺\",\n    \"documentation\": \"\\\\iff (oz), long left right double arrow\"\n  },\n  \"Longmapsfrom\": {\n    \"command\": \"Longmapsfrom\",\n    \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n  },\n  \"Longmapsto\": {\n    \"command\": \"Longmapsto\",\n    \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Long rightwards double arrow from bar\"\n  },\n  \"Longrightarrow\": {\n    \"command\": \"Longrightarrow\",\n    \"detail\": \"⟹\",\n    \"documentation\": \"\\\\implies (amsmath), long rightwards double arrow\"\n  },\n  \"Lparengtr\": {\n    \"command\": \"Lparengtr\",\n    \"detail\": \"⦕\",\n    \"documentation\": \"Double left arc greater-than bracket\"\n  },\n  \"Lsh\": {\n    \"command\": \"Lsh\",\n    \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"A: upwards arrow with tip leftwards\"\n  },\n  \"Lt\": {\n    \"command\": \"Lt\",\n    \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n  },\n  \"Lvzigzag\": {\n    \"command\": \"Lvzigzag\",\n    \"detail\": \"⧚\",\n    \"documentation\": \"Left double wiggly fence\"\n  },\n  \"Mapsfrom\": {\n    \"command\": \"Mapsfrom\",\n    \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n  },\n  \"Mapsto\": {\n    \"command\": \"Mapsto\",\n    \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Rightwards double arrow from bar\"\n  },\n  \"Nearrow\": {\n    \"command\": \"Nearrow\",\n    \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Ne pointing double arrow\"\n  },\n  \"Not\": {\n    \"command\": \"Not\",\n    \"detail\": \"⫬\",\n    \"documentation\": \"Double stroke not sign\"\n  },\n  \"Nwarrow\": {\n    \"command\": \"Nwarrow\",\n    \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Nw pointing double arrow\"\n  },\n  \"Otimes\": {\n    \"command\": \"Otimes\",\n    \"detail\": \"⨷\",\n    \"documentation\": \"Multiplication sign in double circle\"\n  },\n  \"Planckconst\": {\n    \"command\": \"Planckconst\",\n    \"detail\": \"ℎ\",\n    \"documentation\": \"h, planck constant\"\n  },\n  \"Prec\": {\n    \"command\": \"Prec\",\n    \"detail\": \"⪻ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Double precedes\"\n  },\n  \"PropertyLine\": {\n    \"command\": \"PropertyLine\",\n    \"detail\": \"⅊\",\n    \"documentation\": \"Property line\"\n  },\n  \"QED\": {\n    \"command\": \"QED\",\n    \"detail\": \"∎\",\n    \"documentation\": \"\\\\blacksquare (amssymb), end of proof\"\n  },\n  \"Question\": {\n    \"command\": \"Question\",\n    \"detail\": \"⁇\",\n    \"documentation\": \"??, double question mark\"\n  },\n  \"RRightarrow\": {\n    \"command\": \"RRightarrow\",\n    \"detail\": \"⭆\",\n    \"documentation\": \"Rightwards quadruple arrow\"\n  },\n  \"Rbrbrak\": {\n    \"command\": \"Rbrbrak\",\n    \"detail\": \"〙\",\n    \"documentation\": \"Right white tortoise shell bracket\"\n  },\n  \"Rdsh\": {\n    \"command\": \"Rdsh\",\n    \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Right down angled arrow\"\n  },\n  \"Re\": {\n    \"command\": \"Re\",\n    \"detail\": \"ℜ\",\n    \"documentation\": \"\\\\mathfrak{r} (eufrak), real part\"\n  },\n  \"Rightarrow\": {\n    \"command\": \"Rightarrow\",\n    \"detail\": \"⇒\",\n    \"documentation\": \"Right double arrow\"\n  },\n  \"Rparenless\": {\n    \"command\": \"Rparenless\",\n    \"detail\": \"⦖\",\n    \"documentation\": \"Double right arc less-than bracket\"\n  },\n  \"Rrightarrow\": {\n    \"command\": \"Rrightarrow\",\n    \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Right triple arrow\"\n  },\n  \"Rsh\": {\n    \"command\": \"Rsh\",\n    \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"A: upwards arrow with tip rightwards\"\n  },\n  \"Rvzigzag\": {\n    \"command\": \"Rvzigzag\",\n    \"detail\": \"⧛\",\n    \"documentation\": \"Right double wiggly fence\"\n  },\n  \"Searrow\": {\n    \"command\": \"Searrow\",\n    \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Se pointing double arrow\"\n  },\n  \"Sqcap\": {\n    \"command\": \"Sqcap\",\n    \"detail\": \"⩎\",\n    \"documentation\": \"Double square intersection\"\n  },\n  \"Sqcup\": {\n    \"command\": \"Sqcup\",\n    \"detail\": \"⩏\",\n    \"documentation\": \"Double square union\"\n  },\n  \"Subset\": {\n    \"command\": \"Subset\",\n    \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Double subset\"\n  },\n  \"Succ\": {\n    \"command\": \"Succ\",\n    \"detail\": \"⪼ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Double succeeds\"\n  },\n  \"Supset\": {\n    \"command\": \"Supset\",\n    \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Double superset\"\n  },\n  \"Swarrow\": {\n    \"command\": \"Swarrow\",\n    \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Sw pointing double arrow\"\n  },\n  \"UUparrow\": {\n    \"command\": \"UUparrow\",\n    \"detail\": \"⟰\",\n    \"documentation\": \"Upwards quadruple arrow\"\n  },\n  \"Uparrow\": {\n    \"command\": \"Uparrow\",\n    \"detail\": \"⇑\",\n    \"documentation\": \"Up double arrow\"\n  },\n  \"Updownarrow\": {\n    \"command\": \"Updownarrow\",\n    \"detail\": \"⇕\",\n    \"documentation\": \"Up and down double arrow\"\n  },\n  \"Uuparrow\": {\n    \"command\": \"Uuparrow\",\n    \"detail\": \"⤊\",\n    \"documentation\": \"Upwards triple arrow\"\n  },\n  \"VDash\": {\n    \"command\": \"VDash\",\n    \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n    \"documentation\": \"Double vert, double dash\"\n  },\n  \"Vbar\": {\n    \"command\": \"Vbar\",\n    \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\perp (txfonts), double up tack\"\n  },\n  \"Vdash\": {\n    \"command\": \"Vdash\",\n    \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Double vertical, dash\"\n  },\n  \"Vee\": {\n    \"command\": \"Vee\",\n    \"detail\": \"⩔\",\n    \"documentation\": \"Double logical or\"\n  },\n  \"Vert\": {\n    \"command\": \"Vert\",\n    \"detail\": \"‖\",\n    \"documentation\": \"\\\\vert, double vertical bar\"\n  },\n  \"Vvdash\": {\n    \"command\": \"Vvdash\",\n    \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Triple vertical, dash\"\n  },\n  \"Vvert\": {\n    \"command\": \"Vvert\",\n    \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n    \"documentation\": \"Triple vertical bar delimiter\"\n  },\n  \"Wedge\": {\n    \"command\": \"Wedge\",\n    \"detail\": \"⩓\",\n    \"documentation\": \"Double logical and\"\n  },\n  \"Yup\": {\n    \"command\": \"Yup\",\n    \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Turned sans-serif capital y\"\n  },\n  \"Zbar\": {\n    \"command\": \"Zbar\",\n    \"detail\": \"Ƶ\",\n    \"documentation\": \"Impedance\"\n  },\n  \"accurrent\": {\n    \"command\": \"accurrent\",\n    \"detail\": \"⏦\",\n    \"documentation\": \"\\\\ac (wasysym), ac current\"\n  },\n  \"acidfree\": {\n    \"command\": \"acidfree\",\n    \"detail\": \"♾\",\n    \"documentation\": \"Permanent paper sign\"\n  },\n  \"acwcirclearrow\": {\n    \"command\": \"acwcirclearrow\",\n    \"detail\": \"⥀\",\n    \"documentation\": \"Anticlockwise closed circle arrow\"\n  },\n  \"acwgapcirclearrow\": {\n    \"command\": \"acwgapcirclearrow\",\n    \"detail\": \"⟲\",\n    \"documentation\": \"Anticlockwise gapped circle arrow\"\n  },\n  \"acwleftarcarrow\": {\n    \"command\": \"acwleftarcarrow\",\n    \"detail\": \"⤹\",\n    \"documentation\": \"Left-side arc anticlockwise arrow\"\n  },\n  \"acwopencirclearrow\": {\n    \"command\": \"acwopencirclearrow\",\n    \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n  },\n  \"acwoverarcarrow\": {\n    \"command\": \"acwoverarcarrow\",\n    \"detail\": \"⤺\",\n    \"documentation\": \"Top arc anticlockwise arrow\"\n  },\n  \"acwunderarcarrow\": {\n    \"command\": \"acwunderarcarrow\",\n    \"detail\": \"⤻\",\n    \"documentation\": \"Bottom arc anticlockwise arrow\"\n  },\n  \"adots\": {\n    \"command\": \"adots\",\n    \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n    \"documentation\": \"\\\\adots (yhmath), three dots, ascending\"\n  },\n  \"aleph\": {\n    \"command\": \"aleph\",\n    \"detail\": \"ℵ\",\n    \"documentation\": \"Aleph, hebrew\"\n  },\n  \"amalg\": {\n    \"command\": \"amalg\",\n    \"detail\": \"⨿\",\n    \"documentation\": \"Amalgamation or coproduct\"\n  },\n  \"ampersand\": {\n    \"command\": \"ampersand\",\n    \"detail\": \"&\",\n    \"documentation\": \"\\\\binampersand (stmaryrd)\"\n  },\n  \"angdnr\": {\n    \"command\": \"angdnr\",\n    \"detail\": \"⦟\",\n    \"documentation\": \"Acute angle\"\n  },\n  \"angle\": {\n    \"command\": \"angle\",\n    \"detail\": \"∠\",\n    \"documentation\": \"Angle\"\n  },\n  \"angles\": {\n    \"command\": \"angles\",\n    \"detail\": \"⦞\",\n    \"documentation\": \"Angle with s inside\"\n  },\n  \"angleubar\": {\n    \"command\": \"angleubar\",\n    \"detail\": \"⦤\",\n    \"documentation\": \"Angle with underbar\"\n  },\n  \"annuity\": {\n    \"command\": \"annuity\",\n    \"detail\": \"x⃧\",\n    \"documentation\": \"Combining annuity symbol\"\n  },\n  \"approx\": {\n    \"command\": \"approx\",\n    \"detail\": \"≈\",\n    \"documentation\": \"Approximate\"\n  },\n  \"approxeq\": {\n    \"command\": \"approxeq\",\n    \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Approximate, equals\"\n  },\n  \"approxeqq\": {\n    \"command\": \"approxeqq\",\n    \"detail\": \"⩰\",\n    \"documentation\": \"Approximately equal or equal to\"\n  },\n  \"approxident\": {\n    \"command\": \"approxident\",\n    \"detail\": \"≋\",\n    \"documentation\": \"Approximately identical to\"\n  },\n  \"arceq\": {\n    \"command\": \"arceq\",\n    \"detail\": \"≘\",\n    \"documentation\": \"Arc, equals; corresponds to\"\n  },\n  \"assert\": {\n    \"command\": \"assert\",\n    \"detail\": \"⊦\",\n    \"documentation\": \"\\\\vdash, assertion (vertical, short dash)\"\n  },\n  \"ast\": {\n    \"command\": \"ast\",\n    \"detail\": \"∗\",\n    \"documentation\": \"Asterisk operator (hodge star operator)\"\n  },\n  \"asteq\": {\n    \"command\": \"asteq\",\n    \"detail\": \"⩮\",\n    \"documentation\": \"Equals with asterisk\"\n  },\n  \"asteraccent\": {\n    \"command\": \"asteraccent\",\n    \"detail\": \"x⃰\",\n    \"documentation\": \"Combining asterisk above\"\n  },\n  \"astrosun\": {\n    \"command\": \"astrosun\",\n    \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Sun\"\n  },\n  \"asymp\": {\n    \"command\": \"asymp\",\n    \"detail\": \"≍\",\n    \"documentation\": \"Asymptotically equal to\"\n  },\n  \"atsign\": {\n    \"command\": \"atsign\",\n    \"detail\": \"@\",\n    \"documentation\": \"At\"\n  },\n  \"awint\": {\n    \"command\": \"awint\",\n    \"detail\": \"⨑\",\n    \"documentation\": \"Anticlockwise integration\"\n  },\n  \"bNot\": {\n    \"command\": \"bNot\",\n    \"detail\": \"⫭\",\n    \"documentation\": \"Reversed double stroke not sign\"\n  },\n  \"backcong\": {\n    \"command\": \"backcong\",\n    \"detail\": \"≌\",\n    \"documentation\": \"All equal to\"\n  },\n  \"backdprime\": {\n    \"command\": \"backdprime\",\n    \"detail\": \"‶\",\n    \"documentation\": \"Double reverse prime, not superscripted\"\n  },\n  \"backprime\": {\n    \"command\": \"backprime\",\n    \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Reverse prime, not superscripted\"\n  },\n  \"backsim\": {\n    \"command\": \"backsim\",\n    \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Reverse similar\"\n  },\n  \"backsimeq\": {\n    \"command\": \"backsimeq\",\n    \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Reverse similar, equals\"\n  },\n  \"backslash\": {\n    \"command\": \"backslash\",\n    \"detail\": \"\\\\\",\n    \"documentation\": \"Reverse solidus\"\n  },\n  \"backtrprime\": {\n    \"command\": \"backtrprime\",\n    \"detail\": \"‷\",\n    \"documentation\": \"Triple reverse prime, not superscripted\"\n  },\n  \"bagmember\": {\n    \"command\": \"bagmember\",\n    \"detail\": \"⋿\",\n    \"documentation\": \"\\\\mathsf{e}, bag membership\"\n  },\n  \"bar\": {\n    \"command\": \"bar\",\n    \"detail\": \" ̄\",\n    \"documentation\": \"Macron\"\n  },\n  \"barV\": {\n    \"command\": \"barV\",\n    \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Double down tack\"\n  },\n  \"barcap\": {\n    \"command\": \"barcap\",\n    \"detail\": \"⩃\",\n    \"documentation\": \"Intersection with overbar\"\n  },\n  \"barcup\": {\n    \"command\": \"barcup\",\n    \"detail\": \"⩂\",\n    \"documentation\": \"Union with overbar\"\n  },\n  \"bardownharpoonleft\": {\n    \"command\": \"bardownharpoonleft\",\n    \"detail\": \"⥡ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Downwards harpoon with barb left from bar\"\n  },\n  \"bardownharpoonright\": {\n    \"command\": \"bardownharpoonright\",\n    \"detail\": \"⥝ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Downwards harpoon with barb right from bar\"\n  },\n  \"barleftarrow\": {\n    \"command\": \"barleftarrow\",\n    \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Leftwards arrow to bar\"\n  },\n  \"barleftarrowrightarrowba\": {\n    \"command\": \"barleftarrowrightarrowba\",\n    \"detail\": \"↹\",\n    \"documentation\": \"Leftwards arrow to bar over rightwards arrow to bar\"\n  },\n  \"barleftharpoondown\": {\n    \"command\": \"barleftharpoondown\",\n    \"detail\": \"⥖ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb down to bar\"\n  },\n  \"barleftharpoonup\": {\n    \"command\": \"barleftharpoonup\",\n    \"detail\": \"⥒ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb up to bar\"\n  },\n  \"barovernorthwestarrow\": {\n    \"command\": \"barovernorthwestarrow\",\n    \"detail\": \"↸\",\n    \"documentation\": \"North west arrow to long bar\"\n  },\n  \"barrightarrowdiamond\": {\n    \"command\": \"barrightarrowdiamond\",\n    \"detail\": \"⤠\",\n    \"documentation\": \"Rightwards arrow from bar to black diamond\"\n  },\n  \"barrightharpoondown\": {\n    \"command\": \"barrightharpoondown\",\n    \"detail\": \"⥟ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb down from bar\"\n  },\n  \"barrightharpoonup\": {\n    \"command\": \"barrightharpoonup\",\n    \"detail\": \"⥛ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb up from bar\"\n  },\n  \"baruparrow\": {\n    \"command\": \"baruparrow\",\n    \"detail\": \"⤒ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Upwards arrow to bar\"\n  },\n  \"barupharpoonleft\": {\n    \"command\": \"barupharpoonleft\",\n    \"detail\": \"⥘ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Upwards harpoon with barb left to bar\"\n  },\n  \"barupharpoonright\": {\n    \"command\": \"barupharpoonright\",\n    \"detail\": \"⥔ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Upwards harpoon with barb right to bar\"\n  },\n  \"barvee\": {\n    \"command\": \"barvee\",\n    \"detail\": \"⊽\",\n    \"documentation\": \"Bar, vee (large vee)\"\n  },\n  \"barwedge\": {\n    \"command\": \"barwedge\",\n    \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Logical nand (bar over wedge)\"\n  },\n  \"bbrktbrk\": {\n    \"command\": \"bbrktbrk\",\n    \"detail\": \"⎶\",\n    \"documentation\": \"Bottom square bracket over top square bracket\"\n  },\n  \"bdtriplevdash\": {\n    \"command\": \"bdtriplevdash\",\n    \"detail\": \"┆\",\n    \"documentation\": \"Doubly broken vert\"\n  },\n  \"because\": {\n    \"command\": \"because\",\n    \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Because\"\n  },\n  \"benzenr\": {\n    \"command\": \"benzenr\",\n    \"detail\": \"⏣\",\n    \"documentation\": \"Benzene ring with circle\"\n  },\n  \"beth\": {\n    \"command\": \"beth\",\n    \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Beth, hebrew\"\n  },\n  \"between\": {\n    \"command\": \"between\",\n    \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Between\"\n  },\n  \"bigblacktriangledown\": {\n    \"command\": \"bigblacktriangledown\",\n    \"detail\": \"▼\",\n    \"documentation\": \"Big down triangle, filled\"\n  },\n  \"bigblacktriangleup\": {\n    \"command\": \"bigblacktriangleup\",\n    \"detail\": \"▲\",\n    \"documentation\": \"Black up-pointing triangle\"\n  },\n  \"bigbot\": {\n    \"command\": \"bigbot\",\n    \"detail\": \"⟘\",\n    \"documentation\": \"Large up tack\"\n  },\n  \"bigcap\": {\n    \"command\": \"bigcap\",\n    \"detail\": \"⋂\",\n    \"documentation\": \"\\\\dint (oz), \\\\dinter (oz), intersection operator\"\n  },\n  \"bigcup\": {\n    \"command\": \"bigcup\",\n    \"detail\": \"⋃\",\n    \"documentation\": \"\\\\duni (oz), \\\\dunion (oz), union operator\"\n  },\n  \"bigcupdot\": {\n    \"command\": \"bigcupdot\",\n    \"detail\": \"⨃\",\n    \"documentation\": \"N-ary union operator with dot\"\n  },\n  \"biginterleave\": {\n    \"command\": \"biginterleave\",\n    \"detail\": \"⫼ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Large triple vertical bar operator\"\n  },\n  \"bigodot\": {\n    \"command\": \"bigodot\",\n    \"detail\": \"⨀\",\n    \"documentation\": \"N-ary circled dot operator\"\n  },\n  \"bigoplus\": {\n    \"command\": \"bigoplus\",\n    \"detail\": \"⨁\",\n    \"documentation\": \"N-ary circled plus operator\"\n  },\n  \"bigotimes\": {\n    \"command\": \"bigotimes\",\n    \"detail\": \"⨂\",\n    \"documentation\": \"N-ary circled times operator\"\n  },\n  \"bigslopedvee\": {\n    \"command\": \"bigslopedvee\",\n    \"detail\": \"⩗\",\n    \"documentation\": \"Sloping large or\"\n  },\n  \"bigslopedwedge\": {\n    \"command\": \"bigslopedwedge\",\n    \"detail\": \"⩘\",\n    \"documentation\": \"Sloping large and\"\n  },\n  \"bigsqcap\": {\n    \"command\": \"bigsqcap\",\n    \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"N-ary square intersection operator\"\n  },\n  \"bigsqcup\": {\n    \"command\": \"bigsqcup\",\n    \"detail\": \"⨆\",\n    \"documentation\": \"N-ary square union operator\"\n  },\n  \"bigstar\": {\n    \"command\": \"bigstar\",\n    \"detail\": \"★ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Star, filled\"\n  },\n  \"bigtalloblong\": {\n    \"command\": \"bigtalloblong\",\n    \"detail\": \"⫿\",\n    \"documentation\": \"N-ary white vertical bar\"\n  },\n  \"bigtimes\": {\n    \"command\": \"bigtimes\",\n    \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"N-ary times operator\"\n  },\n  \"bigtop\": {\n    \"command\": \"bigtop\",\n    \"detail\": \"⟙\",\n    \"documentation\": \"Large down tack\"\n  },\n  \"bigtriangledown\": {\n    \"command\": \"bigtriangledown\",\n    \"detail\": \"▽\",\n    \"documentation\": \"Big down triangle, open\"\n  },\n  \"bigtriangleleft\": {\n    \"command\": \"bigtriangleleft\",\n    \"detail\": \"⨞\",\n    \"documentation\": \"Large left triangle operator\"\n  },\n  \"bigtriangleup\": {\n    \"command\": \"bigtriangleup\",\n    \"detail\": \"△\",\n    \"documentation\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n  },\n  \"biguplus\": {\n    \"command\": \"biguplus\",\n    \"detail\": \"⨄\",\n    \"documentation\": \"N-ary union operator with plus\"\n  },\n  \"bigvee\": {\n    \"command\": \"bigvee\",\n    \"detail\": \"⋁\",\n    \"documentation\": \"Logical and operator\"\n  },\n  \"bigwedge\": {\n    \"command\": \"bigwedge\",\n    \"detail\": \"⋀\",\n    \"documentation\": \"Logical or operator\"\n  },\n  \"bigwhitestar\": {\n    \"command\": \"bigwhitestar\",\n    \"detail\": \"☆\",\n    \"documentation\": \"Star, open\"\n  },\n  \"blackcircledownarrow\": {\n    \"command\": \"blackcircledownarrow\",\n    \"detail\": \"⧭\",\n    \"documentation\": \"Black circle with down arrow\"\n  },\n  \"blackcircledrightdot\": {\n    \"command\": \"blackcircledrightdot\",\n    \"detail\": \"⚈\",\n    \"documentation\": \"Black circle with white dot right\"\n  },\n  \"blackcircledtwodots\": {\n    \"command\": \"blackcircledtwodots\",\n    \"detail\": \"⚉\",\n    \"documentation\": \"Black circle with two white dots\"\n  },\n  \"blackcircleulquadwhite\": {\n    \"command\": \"blackcircleulquadwhite\",\n    \"detail\": \"◕\",\n    \"documentation\": \"Circle with all but upper left quadrant black\"\n  },\n  \"blackdiamonddownarrow\": {\n    \"command\": \"blackdiamonddownarrow\",\n    \"detail\": \"⧪\",\n    \"documentation\": \"Black diamond with down arrow\"\n  },\n  \"blackhourglass\": {\n    \"command\": \"blackhourglass\",\n    \"detail\": \"⧗\",\n    \"documentation\": \"Black hourglass\"\n  },\n  \"blackinwhitediamond\": {\n    \"command\": \"blackinwhitediamond\",\n    \"detail\": \"◈\",\n    \"documentation\": \"White diamond containing black small diamond\"\n  },\n  \"blackinwhitesquare\": {\n    \"command\": \"blackinwhitesquare\",\n    \"detail\": \"▣\",\n    \"documentation\": \"White square containing black small square\"\n  },\n  \"blacklefthalfcircle\": {\n    \"command\": \"blacklefthalfcircle\",\n    \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Left half black circle\"\n  },\n  \"blackpointerleft\": {\n    \"command\": \"blackpointerleft\",\n    \"detail\": \"◄\",\n    \"documentation\": \"Black left-pointing pointer\"\n  },\n  \"blackpointerright\": {\n    \"command\": \"blackpointerright\",\n    \"detail\": \"►\",\n    \"documentation\": \"Black right-pointing pointer\"\n  },\n  \"blackrighthalfcircle\": {\n    \"command\": \"blackrighthalfcircle\",\n    \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Right half black circle\"\n  },\n  \"blacksmiley\": {\n    \"command\": \"blacksmiley\",\n    \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"\\\\invsmileface (arevmath), black smiling face\"\n  },\n  \"blacktriangle\": {\n    \"command\": \"blacktriangle\",\n    \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Up triangle, filled\"\n  },\n  \"blacktriangledown\": {\n    \"command\": \"blacktriangledown\",\n    \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Black down-pointing small triangle\"\n  },\n  \"blacktriangleleft\": {\n    \"command\": \"blacktriangleleft\",\n    \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n  },\n  \"blacktriangleright\": {\n    \"command\": \"blacktriangleright\",\n    \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n  },\n  \"blkhorzoval\": {\n    \"command\": \"blkhorzoval\",\n    \"detail\": \"⬬\",\n    \"documentation\": \"Black horizontal ellipse\"\n  },\n  \"blkvertoval\": {\n    \"command\": \"blkvertoval\",\n    \"detail\": \"⬮\",\n    \"documentation\": \"Black vertical ellipse\"\n  },\n  \"blockfull\": {\n    \"command\": \"blockfull\",\n    \"detail\": \"█\",\n    \"documentation\": \"Full block\"\n  },\n  \"blockhalfshaded\": {\n    \"command\": \"blockhalfshaded\",\n    \"detail\": \"▒\",\n    \"documentation\": \"50\\\\% shaded block\"\n  },\n  \"blocklefthalf\": {\n    \"command\": \"blocklefthalf\",\n    \"detail\": \"▌\",\n    \"documentation\": \"Left half block\"\n  },\n  \"blocklowhalf\": {\n    \"command\": \"blocklowhalf\",\n    \"detail\": \"▄\",\n    \"documentation\": \"Lower half block\"\n  },\n  \"blockqtrshaded\": {\n    \"command\": \"blockqtrshaded\",\n    \"detail\": \"░\",\n    \"documentation\": \"25\\\\% shaded block\"\n  },\n  \"blockrighthalf\": {\n    \"command\": \"blockrighthalf\",\n    \"detail\": \"▐\",\n    \"documentation\": \"Right half block\"\n  },\n  \"blockthreeqtrshaded\": {\n    \"command\": \"blockthreeqtrshaded\",\n    \"detail\": \"▓\",\n    \"documentation\": \"75\\\\% shaded block\"\n  },\n  \"blockuphalf\": {\n    \"command\": \"blockuphalf\",\n    \"detail\": \"▀\",\n    \"documentation\": \"Upper half block\"\n  },\n  \"bot\": {\n    \"command\": \"bot\",\n    \"detail\": \"⊥\",\n    \"documentation\": \"Up tack, bottom\"\n  },\n  \"botsemicircle\": {\n    \"command\": \"botsemicircle\",\n    \"detail\": \"◡\",\n    \"documentation\": \"Lower half circle\"\n  },\n  \"bowtie\": {\n    \"command\": \"bowtie\",\n    \"detail\": \"⋈\",\n    \"documentation\": \"\\\\lrtimes (txfonts), bowtie\"\n  },\n  \"boxast\": {\n    \"command\": \"boxast\",\n    \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"Squared asterisk\"\n  },\n  \"boxbar\": {\n    \"command\": \"boxbar\",\n    \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"Vertical bar in box\"\n  },\n  \"boxbox\": {\n    \"command\": \"boxbox\",\n    \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Squared square\"\n  },\n  \"boxbslash\": {\n    \"command\": \"boxbslash\",\n    \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"Squared falling diagonal slash\"\n  },\n  \"boxcircle\": {\n    \"command\": \"boxcircle\",\n    \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Squared small circle\"\n  },\n  \"boxdiag\": {\n    \"command\": \"boxdiag\",\n    \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"Squared rising diagonal slash\"\n  },\n  \"boxdot\": {\n    \"command\": \"boxdot\",\n    \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n    \"documentation\": \"/dotsquare /boxdot b: small dot in box\"\n  },\n  \"boxminus\": {\n    \"command\": \"boxminus\",\n    \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Minus sign in box\"\n  },\n  \"boxonbox\": {\n    \"command\": \"boxonbox\",\n    \"detail\": \"⧉\",\n    \"documentation\": \"Two joined squares\"\n  },\n  \"boxplus\": {\n    \"command\": \"boxplus\",\n    \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Plus sign in box\"\n  },\n  \"boxtimes\": {\n    \"command\": \"boxtimes\",\n    \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Multiply sign in box\"\n  },\n  \"bsimilarleftarrow\": {\n    \"command\": \"bsimilarleftarrow\",\n    \"detail\": \"⭁\",\n    \"documentation\": \"Reverse tilde operator above leftwards arrow\"\n  },\n  \"bsimilarrightarrow\": {\n    \"command\": \"bsimilarrightarrow\",\n    \"detail\": \"⭇\",\n    \"documentation\": \"Reverse tilde operator above rightwards arrow\"\n  },\n  \"bsolhsub\": {\n    \"command\": \"bsolhsub\",\n    \"detail\": \"⟈\",\n    \"documentation\": \"Reverse solidus preceding subset\"\n  },\n  \"btimes\": {\n    \"command\": \"btimes\",\n    \"detail\": \"⨲\",\n    \"documentation\": \"Semidirect product with bottom closed\"\n  },\n  \"bullseye\": {\n    \"command\": \"bullseye\",\n    \"detail\": \"◎\",\n    \"documentation\": \"\\\\circledcirc (amssymb), bullseye\"\n  },\n  \"bumpeq\": {\n    \"command\": \"bumpeq\",\n    \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Bumpy equals, equals\"\n  },\n  \"bumpeqq\": {\n    \"command\": \"bumpeqq\",\n    \"detail\": \"⪮\",\n    \"documentation\": \"Equals sign with bumpy above\"\n  },\n  \"candra\": {\n    \"command\": \"candra\",\n    \"detail\": \" ̐\",\n    \"documentation\": \"Candrabindu (non-spacing)\"\n  },\n  \"cap\": {\n    \"command\": \"cap\",\n    \"detail\": \"∩\",\n    \"documentation\": \"Intersection\"\n  },\n  \"capbarcup\": {\n    \"command\": \"capbarcup\",\n    \"detail\": \"⩉\",\n    \"documentation\": \"Intersection above bar above union\"\n  },\n  \"capdot\": {\n    \"command\": \"capdot\",\n    \"detail\": \"⩀\",\n    \"documentation\": \"Intersection with dot\"\n  },\n  \"capovercup\": {\n    \"command\": \"capovercup\",\n    \"detail\": \"⩇\",\n    \"documentation\": \"Intersection above union\"\n  },\n  \"capwedge\": {\n    \"command\": \"capwedge\",\n    \"detail\": \"⩄\",\n    \"documentation\": \"Intersection with logical and\"\n  },\n  \"caretinsert\": {\n    \"command\": \"caretinsert\",\n    \"detail\": \"‸\",\n    \"documentation\": \"Caret (insertion mark)\"\n  },\n  \"carriagereturn\": {\n    \"command\": \"carriagereturn\",\n    \"detail\": \"↵\",\n    \"documentation\": \"Downwards arrow with corner leftward = carriage return\"\n  },\n  \"ccwundercurvearrow\": {\n    \"command\": \"ccwundercurvearrow\",\n    \"detail\": \"⤿\",\n    \"documentation\": \"Lower left semicircular anticlockwise arrow\"\n  },\n  \"cdot\": {\n    \"command\": \"cdot\",\n    \"detail\": \"⋅\",\n    \"documentation\": \"Dot operator (small middle dot)\"\n  },\n  \"cdotp\": {\n    \"command\": \"cdotp\",\n    \"detail\": \"·\",\n    \"documentation\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n  },\n  \"checkmark\": {\n    \"command\": \"checkmark\",\n    \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n  },\n  \"cirE\": {\n    \"command\": \"cirE\",\n    \"detail\": \"⧃\",\n    \"documentation\": \"Circle with two horizontal strokes to the right\"\n  },\n  \"cirbot\": {\n    \"command\": \"cirbot\",\n    \"detail\": \"⟟\",\n    \"documentation\": \"Up tack with circle above\"\n  },\n  \"circeq\": {\n    \"command\": \"circeq\",\n    \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Circle, equals\"\n  },\n  \"circlebottomhalfblack\": {\n    \"command\": \"circlebottomhalfblack\",\n    \"detail\": \"◒\",\n    \"documentation\": \"Circle, filled bottom half\"\n  },\n  \"circledast\": {\n    \"command\": \"circledast\",\n    \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Asterisk in circle\"\n  },\n  \"circledbullet\": {\n    \"command\": \"circledbullet\",\n    \"detail\": \"⦿\",\n    \"documentation\": \"Circled bullet\"\n  },\n  \"circledcirc\": {\n    \"command\": \"circledcirc\",\n    \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Small circle in circle\"\n  },\n  \"circleddash\": {\n    \"command\": \"circleddash\",\n    \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Hyphen in circle\"\n  },\n  \"circledequal\": {\n    \"command\": \"circledequal\",\n    \"detail\": \"⊜\",\n    \"documentation\": \"Equal in circle\"\n  },\n  \"circledownarrow\": {\n    \"command\": \"circledownarrow\",\n    \"detail\": \"⧬\",\n    \"documentation\": \"White circle with down arrow\"\n  },\n  \"circledparallel\": {\n    \"command\": \"circledparallel\",\n    \"detail\": \"⦷\",\n    \"documentation\": \"Circled parallel\"\n  },\n  \"circledrightdot\": {\n    \"command\": \"circledrightdot\",\n    \"detail\": \"⚆\",\n    \"documentation\": \"White circle with dot right\"\n  },\n  \"circledstar\": {\n    \"command\": \"circledstar\",\n    \"detail\": \"✪\",\n    \"documentation\": \"Circled white star\"\n  },\n  \"circledtwodots\": {\n    \"command\": \"circledtwodots\",\n    \"detail\": \"⚇\",\n    \"documentation\": \"White circle with two dots\"\n  },\n  \"circledvert\": {\n    \"command\": \"circledvert\",\n    \"detail\": \"⦶\",\n    \"documentation\": \"Circled vertical bar\"\n  },\n  \"circledwhitebullet\": {\n    \"command\": \"circledwhitebullet\",\n    \"detail\": \"⦾\",\n    \"documentation\": \"Circled white bullet\"\n  },\n  \"circlehbar\": {\n    \"command\": \"circlehbar\",\n    \"detail\": \"⦵\",\n    \"documentation\": \"Circle with horizontal bar\"\n  },\n  \"circlelefthalfblack\": {\n    \"command\": \"circlelefthalfblack\",\n    \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Circle, filled left half [harvey ball]\"\n  },\n  \"circlellquad\": {\n    \"command\": \"circlellquad\",\n    \"detail\": \"◵\",\n    \"documentation\": \"White circle with lower left quadrant\"\n  },\n  \"circlelrquad\": {\n    \"command\": \"circlelrquad\",\n    \"detail\": \"◶\",\n    \"documentation\": \"White circle with lower right quadrant\"\n  },\n  \"circleonleftarrow\": {\n    \"command\": \"circleonleftarrow\",\n    \"detail\": \"⬰\",\n    \"documentation\": \"Left arrow with small circle\"\n  },\n  \"circleonrightarrow\": {\n    \"command\": \"circleonrightarrow\",\n    \"detail\": \"⇴\",\n    \"documentation\": \"Right arrow with small circle\"\n  },\n  \"circlerighthalfblack\": {\n    \"command\": \"circlerighthalfblack\",\n    \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Circle, filled right half\"\n  },\n  \"circletophalfblack\": {\n    \"command\": \"circletophalfblack\",\n    \"detail\": \"◓\",\n    \"documentation\": \"Circle, filled top half\"\n  },\n  \"circleulquad\": {\n    \"command\": \"circleulquad\",\n    \"detail\": \"◴\",\n    \"documentation\": \"White circle with upper left quadrant\"\n  },\n  \"circleurquad\": {\n    \"command\": \"circleurquad\",\n    \"detail\": \"◷\",\n    \"documentation\": \"White circle with upper right quadrant\"\n  },\n  \"circleurquadblack\": {\n    \"command\": \"circleurquadblack\",\n    \"detail\": \"◔\",\n    \"documentation\": \"Circle with upper right quadrant black\"\n  },\n  \"circlevertfill\": {\n    \"command\": \"circlevertfill\",\n    \"detail\": \"◍\",\n    \"documentation\": \"Circle with vertical fill\"\n  },\n  \"cirfnint\": {\n    \"command\": \"cirfnint\",\n    \"detail\": \"⨐\",\n    \"documentation\": \"Circulation function\"\n  },\n  \"cirmid\": {\n    \"command\": \"cirmid\",\n    \"detail\": \"⫯\",\n    \"documentation\": \"Vertical line with circle above\"\n  },\n  \"cirscir\": {\n    \"command\": \"cirscir\",\n    \"detail\": \"⧂\",\n    \"documentation\": \"Circle with small circle to the right\"\n  },\n  \"closedvarcap\": {\n    \"command\": \"closedvarcap\",\n    \"detail\": \"⩍\",\n    \"documentation\": \"Closed intersection with serifs\"\n  },\n  \"closedvarcup\": {\n    \"command\": \"closedvarcup\",\n    \"detail\": \"⩌\",\n    \"documentation\": \"Closed union with serifs\"\n  },\n  \"closedvarcupsmashprod\": {\n    \"command\": \"closedvarcupsmashprod\",\n    \"detail\": \"⩐\",\n    \"documentation\": \"Closed union with serifs and smash product\"\n  },\n  \"closure\": {\n    \"command\": \"closure\",\n    \"detail\": \"⁐\",\n    \"documentation\": \"Close up (editing mark)\"\n  },\n  \"clubsuit\": {\n    \"command\": \"clubsuit\",\n    \"detail\": \"♣\",\n    \"documentation\": \"Club suit symbol\"\n  },\n  \"coloneq\": {\n    \"command\": \"coloneq\",\n    \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n    \"documentation\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n  },\n  \"comma\": {\n    \"command\": \"comma\",\n    \"detail\": \",\",\n    \"documentation\": \"Comma\"\n  },\n  \"commaminus\": {\n    \"command\": \"commaminus\",\n    \"detail\": \"⨩\",\n    \"documentation\": \"Minus sign with comma above\"\n  },\n  \"complement\": {\n    \"command\": \"complement\",\n    \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Complement sign\"\n  },\n  \"concavediamond\": {\n    \"command\": \"concavediamond\",\n    \"detail\": \"⟡\",\n    \"documentation\": \"White concave-sided diamond\"\n  },\n  \"concavediamondtickleft\": {\n    \"command\": \"concavediamondtickleft\",\n    \"detail\": \"⟢\",\n    \"documentation\": \"White concave-sided diamond with leftwards tick\"\n  },\n  \"concavediamondtickright\": {\n    \"command\": \"concavediamondtickright\",\n    \"detail\": \"⟣\",\n    \"documentation\": \"White concave-sided diamond with rightwards tick\"\n  },\n  \"cong\": {\n    \"command\": \"cong\",\n    \"detail\": \"≅\",\n    \"documentation\": \"Congruent with\"\n  },\n  \"congdot\": {\n    \"command\": \"congdot\",\n    \"detail\": \"⩭\",\n    \"documentation\": \"Congruent with dot above\"\n  },\n  \"conictaper\": {\n    \"command\": \"conictaper\",\n    \"detail\": \"⌲\",\n    \"documentation\": \"Conical taper\"\n  },\n  \"conjquant\": {\n    \"command\": \"conjquant\",\n    \"detail\": \"⨇\",\n    \"documentation\": \"Two logical and operator\"\n  },\n  \"coprod\": {\n    \"command\": \"coprod\",\n    \"detail\": \"∐\",\n    \"documentation\": \"Coproduct operator\"\n  },\n  \"csub\": {\n    \"command\": \"csub\",\n    \"detail\": \"⫏\",\n    \"documentation\": \"Closed subset\"\n  },\n  \"csube\": {\n    \"command\": \"csube\",\n    \"detail\": \"⫑\",\n    \"documentation\": \"Closed subset or equal to\"\n  },\n  \"csup\": {\n    \"command\": \"csup\",\n    \"detail\": \"⫐\",\n    \"documentation\": \"Closed superset\"\n  },\n  \"csupe\": {\n    \"command\": \"csupe\",\n    \"detail\": \"⫒\",\n    \"documentation\": \"Closed superset or equal to\"\n  },\n  \"cuberoot\": {\n    \"command\": \"cuberoot\",\n    \"detail\": \"∛\",\n    \"documentation\": \"Cube root\"\n  },\n  \"cup\": {\n    \"command\": \"cup\",\n    \"detail\": \"∪\",\n    \"documentation\": \"Union or logical sum\"\n  },\n  \"cupbarcap\": {\n    \"command\": \"cupbarcap\",\n    \"detail\": \"⩈\",\n    \"documentation\": \"Union above bar above intersection\"\n  },\n  \"cupdot\": {\n    \"command\": \"cupdot\",\n    \"detail\": \"⊍\",\n    \"documentation\": \"Union, with dot\"\n  },\n  \"cupleftarrow\": {\n    \"command\": \"cupleftarrow\",\n    \"detail\": \"⊌\",\n    \"documentation\": \"Multiset\"\n  },\n  \"cupovercap\": {\n    \"command\": \"cupovercap\",\n    \"detail\": \"⩆\",\n    \"documentation\": \"Union above intersection\"\n  },\n  \"cupvee\": {\n    \"command\": \"cupvee\",\n    \"detail\": \"⩅\",\n    \"documentation\": \"Union with logical or\"\n  },\n  \"curlyeqprec\": {\n    \"command\": \"curlyeqprec\",\n    \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Curly equals, precedes\"\n  },\n  \"curlyeqsucc\": {\n    \"command\": \"curlyeqsucc\",\n    \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Curly equals, succeeds\"\n  },\n  \"curlyvee\": {\n    \"command\": \"curlyvee\",\n    \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Curly logical or\"\n  },\n  \"curlywedge\": {\n    \"command\": \"curlywedge\",\n    \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Curly logical and\"\n  },\n  \"curvearrowleft\": {\n    \"command\": \"curvearrowleft\",\n    \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Left curved arrow\"\n  },\n  \"curvearrowleftplus\": {\n    \"command\": \"curvearrowleftplus\",\n    \"detail\": \"⤽\",\n    \"documentation\": \"Top arc anticlockwise arrow with plus\"\n  },\n  \"curvearrowright\": {\n    \"command\": \"curvearrowright\",\n    \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Right curved arrow\"\n  },\n  \"curvearrowrightminus\": {\n    \"command\": \"curvearrowrightminus\",\n    \"detail\": \"⤼\",\n    \"documentation\": \"Top arc clockwise arrow with minus\"\n  },\n  \"cwcirclearrow\": {\n    \"command\": \"cwcirclearrow\",\n    \"detail\": \"⥁\",\n    \"documentation\": \"Clockwise closed circle arrow\"\n  },\n  \"cwgapcirclearrow\": {\n    \"command\": \"cwgapcirclearrow\",\n    \"detail\": \"⟳\",\n    \"documentation\": \"Clockwise gapped circle arrow\"\n  },\n  \"cwopencirclearrow\": {\n    \"command\": \"cwopencirclearrow\",\n    \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n  },\n  \"cwrightarcarrow\": {\n    \"command\": \"cwrightarcarrow\",\n    \"detail\": \"⤸\",\n    \"documentation\": \"Right-side arc clockwise arrow\"\n  },\n  \"cwundercurvearrow\": {\n    \"command\": \"cwundercurvearrow\",\n    \"detail\": \"⤾\",\n    \"documentation\": \"Lower right semicircular clockwise arrow\"\n  },\n  \"dagger\": {\n    \"command\": \"dagger\",\n    \"detail\": \"†\",\n    \"documentation\": \"Dagger relation\"\n  },\n  \"daleth\": {\n    \"command\": \"daleth\",\n    \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Daleth, hebrew\"\n  },\n  \"danger\": {\n    \"command\": \"danger\",\n    \"detail\": \"☡\",\n    \"documentation\": \"Caution sign, dangerous bend\"\n  },\n  \"dashV\": {\n    \"command\": \"dashV\",\n    \"detail\": \"⫣\",\n    \"documentation\": \"Double vertical bar left turnstile\"\n  },\n  \"dashVdash\": {\n    \"command\": \"dashVdash\",\n    \"detail\": \"⟛\",\n    \"documentation\": \"Left and right tack\"\n  },\n  \"dashcolon\": {\n    \"command\": \"dashcolon\",\n    \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n    \"documentation\": \"-:, excess\"\n  },\n  \"dashleftharpoondown\": {\n    \"command\": \"dashleftharpoondown\",\n    \"detail\": \"⥫ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb down below long dash\"\n  },\n  \"dashrightharpoondown\": {\n    \"command\": \"dashrightharpoondown\",\n    \"detail\": \"⥭ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb down below long dash\"\n  },\n  \"dashv\": {\n    \"command\": \"dashv\",\n    \"detail\": \"⊣ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left tack, non-theorem, does not yield, (dash and vertical)\"\n  },\n  \"dbkarow\": {\n    \"command\": \"dbkarow\",\n    \"detail\": \"⤏\",\n    \"documentation\": \"Rightwards triple dash arrow\"\n  },\n  \"ddagger\": {\n    \"command\": \"ddagger\",\n    \"detail\": \"‡\",\n    \"documentation\": \"Double dagger relation\"\n  },\n  \"ddots\": {\n    \"command\": \"ddots\",\n    \"detail\": \"⋱\",\n    \"documentation\": \"Three dots, descending\"\n  },\n  \"ddotseq\": {\n    \"command\": \"ddotseq\",\n    \"detail\": \"⩷\",\n    \"documentation\": \"Equals sign with two dots above and two dots below\"\n  },\n  \"diameter\": {\n    \"command\": \"diameter\",\n    \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\varnothing (amssymb), diameter sign\"\n  },\n  \"diamondbotblack\": {\n    \"command\": \"diamondbotblack\",\n    \"detail\": \"⬙\",\n    \"documentation\": \"Diamond with bottom half black\"\n  },\n  \"diamondcdot\": {\n    \"command\": \"diamondcdot\",\n    \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"White diamond with centred dot\"\n  },\n  \"diamondleftarrow\": {\n    \"command\": \"diamondleftarrow\",\n    \"detail\": \"⤝\",\n    \"documentation\": \"Leftwards arrow to black diamond\"\n  },\n  \"diamondleftarrowbar\": {\n    \"command\": \"diamondleftarrowbar\",\n    \"detail\": \"⤟\",\n    \"documentation\": \"Leftwards arrow from bar to black diamond\"\n  },\n  \"diamondleftblack\": {\n    \"command\": \"diamondleftblack\",\n    \"detail\": \"⬖\",\n    \"documentation\": \"Diamond with left half black\"\n  },\n  \"diamondrightblack\": {\n    \"command\": \"diamondrightblack\",\n    \"detail\": \"⬗\",\n    \"documentation\": \"Diamond with right half black\"\n  },\n  \"diamondsuit\": {\n    \"command\": \"diamondsuit\",\n    \"detail\": \"♢\",\n    \"documentation\": \"Diamond suit symbol\"\n  },\n  \"diamondtopblack\": {\n    \"command\": \"diamondtopblack\",\n    \"detail\": \"⬘\",\n    \"documentation\": \"Diamond with top half black\"\n  },\n  \"dicei\": {\n    \"command\": \"dicei\",\n    \"detail\": \"⚀\",\n    \"documentation\": \"Die face-1\"\n  },\n  \"diceii\": {\n    \"command\": \"diceii\",\n    \"detail\": \"⚁\",\n    \"documentation\": \"Die face-2\"\n  },\n  \"diceiii\": {\n    \"command\": \"diceiii\",\n    \"detail\": \"⚂\",\n    \"documentation\": \"Die face-3\"\n  },\n  \"diceiv\": {\n    \"command\": \"diceiv\",\n    \"detail\": \"⚃\",\n    \"documentation\": \"Die face-4\"\n  },\n  \"dicev\": {\n    \"command\": \"dicev\",\n    \"detail\": \"⚄\",\n    \"documentation\": \"Die face-5\"\n  },\n  \"dicevi\": {\n    \"command\": \"dicevi\",\n    \"detail\": \"⚅\",\n    \"documentation\": \"Die face-6\"\n  },\n  \"dingasterisk\": {\n    \"command\": \"dingasterisk\",\n    \"detail\": \"✽\",\n    \"documentation\": \"Heavy teardrop-spoked asterisk\"\n  },\n  \"disin\": {\n    \"command\": \"disin\",\n    \"detail\": \"⋲\",\n    \"documentation\": \"Element of with long horizontal stroke\"\n  },\n  \"disjquant\": {\n    \"command\": \"disjquant\",\n    \"detail\": \"⨈\",\n    \"documentation\": \"Two logical or operator\"\n  },\n  \"div\": {\n    \"command\": \"div\",\n    \"detail\": \"÷\",\n    \"documentation\": \"Divide sign\"\n  },\n  \"divideontimes\": {\n    \"command\": \"divideontimes\",\n    \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Division on times\"\n  },\n  \"divslash\": {\n    \"command\": \"divslash\",\n    \"detail\": \"∕\",\n    \"documentation\": \"Division slash\"\n  },\n  \"dot\": {\n    \"command\": \"dot\",\n    \"detail\": \" ̇\",\n    \"documentation\": \"\\\\dot (wrisym), dot above\"\n  },\n  \"doteq\": {\n    \"command\": \"doteq\",\n    \"detail\": \"≐\",\n    \"documentation\": \"\\\\dotequal (wrisym), equals, single dot above\"\n  },\n  \"dotequiv\": {\n    \"command\": \"dotequiv\",\n    \"detail\": \"⩧\",\n    \"documentation\": \"Identical with dot above\"\n  },\n  \"dotminus\": {\n    \"command\": \"dotminus\",\n    \"detail\": \"∸\",\n    \"documentation\": \"Minus sign, dot above\"\n  },\n  \"dotplus\": {\n    \"command\": \"dotplus\",\n    \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Plus sign, dot above\"\n  },\n  \"dotsim\": {\n    \"command\": \"dotsim\",\n    \"detail\": \"⩪\",\n    \"documentation\": \"Tilde operator with dot above\"\n  },\n  \"dotsminusdots\": {\n    \"command\": \"dotsminusdots\",\n    \"detail\": \"∺\",\n    \"documentation\": \"Minus with four dots, geometric proportion\"\n  },\n  \"dottedcircle\": {\n    \"command\": \"dottedcircle\",\n    \"detail\": \"◌\",\n    \"documentation\": \"Dotted circle\"\n  },\n  \"dottedsquare\": {\n    \"command\": \"dottedsquare\",\n    \"detail\": \"⬚\",\n    \"documentation\": \"Dotted square\"\n  },\n  \"dottimes\": {\n    \"command\": \"dottimes\",\n    \"detail\": \"⨰\",\n    \"documentation\": \"Multiplication sign with dot above\"\n  },\n  \"doublebarvee\": {\n    \"command\": \"doublebarvee\",\n    \"detail\": \"⩢\",\n    \"documentation\": \"Logical or with double overbar\"\n  },\n  \"doublebarwedge\": {\n    \"command\": \"doublebarwedge\",\n    \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Logical and with double overbar\"\n  },\n  \"doubleplus\": {\n    \"command\": \"doubleplus\",\n    \"detail\": \"⧺\",\n    \"documentation\": \"Double plus\"\n  },\n  \"downarrow\": {\n    \"command\": \"downarrow\",\n    \"detail\": \"↓\",\n    \"documentation\": \"Downward arrow\"\n  },\n  \"downarrowbar\": {\n    \"command\": \"downarrowbar\",\n    \"detail\": \"⤓ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Downwards arrow to bar\"\n  },\n  \"downarrowbarred\": {\n    \"command\": \"downarrowbarred\",\n    \"detail\": \"⤈\",\n    \"documentation\": \"Downwards arrow with horizontal stroke\"\n  },\n  \"downdasharrow\": {\n    \"command\": \"downdasharrow\",\n    \"detail\": \"⇣\",\n    \"documentation\": \"Downwards dashed arrow\"\n  },\n  \"downdownarrows\": {\n    \"command\": \"downdownarrows\",\n    \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Two down arrows\"\n  },\n  \"downfishtail\": {\n    \"command\": \"downfishtail\",\n    \"detail\": \"⥿\",\n    \"documentation\": \"Down fish tail\"\n  },\n  \"downharpoonleft\": {\n    \"command\": \"downharpoonleft\",\n    \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n  },\n  \"downharpoonleftbar\": {\n    \"command\": \"downharpoonleftbar\",\n    \"detail\": \"⥙ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Downwards harpoon with barb left to bar\"\n  },\n  \"downharpoonright\": {\n    \"command\": \"downharpoonright\",\n    \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n  },\n  \"downharpoonrightbar\": {\n    \"command\": \"downharpoonrightbar\",\n    \"detail\": \"⥕ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Downwards harpoon with barb right to bar\"\n  },\n  \"downharpoonsleftright\": {\n    \"command\": \"downharpoonsleftright\",\n    \"detail\": \"⥥ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Downwards harpoon with barb left beside downwards harpoon with barb right\"\n  },\n  \"downrightcurvedarrow\": {\n    \"command\": \"downrightcurvedarrow\",\n    \"detail\": \"⤵\",\n    \"documentation\": \"Arrow pointing rightwards then curving downwards\"\n  },\n  \"downtriangleleftblack\": {\n    \"command\": \"downtriangleleftblack\",\n    \"detail\": \"⧨\",\n    \"documentation\": \"Down-pointing triangle with left half black\"\n  },\n  \"downtrianglerightblack\": {\n    \"command\": \"downtrianglerightblack\",\n    \"detail\": \"⧩\",\n    \"documentation\": \"Down-pointing triangle with right half black\"\n  },\n  \"downuparrows\": {\n    \"command\": \"downuparrows\",\n    \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n  },\n  \"downupharpoonsleftright\": {\n    \"command\": \"downupharpoonsleftright\",\n    \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n  },\n  \"downwhitearrow\": {\n    \"command\": \"downwhitearrow\",\n    \"detail\": \"⇩\",\n    \"documentation\": \"Downwards white arrow\"\n  },\n  \"downzigzagarrow\": {\n    \"command\": \"downzigzagarrow\",\n    \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n    \"documentation\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n  },\n  \"dprime\": {\n    \"command\": \"dprime\",\n    \"detail\": \"″ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Double prime or second, not superscripted\"\n  },\n  \"draftingarrow\": {\n    \"command\": \"draftingarrow\",\n    \"detail\": \"➛\",\n    \"documentation\": \"Right arrow with bold head (drafting)\"\n  },\n  \"drbkarow\": {\n    \"command\": \"drbkarow\",\n    \"detail\": \"⤐\",\n    \"documentation\": \"Rightwards two-headed triple dash arrow\"\n  },\n  \"droang\": {\n    \"command\": \"droang\",\n    \"detail\": \" ̚\",\n    \"documentation\": \"Left angle above (non-spacing)\"\n  },\n  \"dsol\": {\n    \"command\": \"dsol\",\n    \"detail\": \"⧶\",\n    \"documentation\": \"Solidus with overbar\"\n  },\n  \"dsub\": {\n    \"command\": \"dsub\",\n    \"detail\": \"⩤ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\ndres (oz), domain antirestriction\"\n  },\n  \"dualmap\": {\n    \"command\": \"dualmap\",\n    \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Double-ended multimap\"\n  },\n  \"egsdot\": {\n    \"command\": \"egsdot\",\n    \"detail\": \"⪘\",\n    \"documentation\": \"Slanted equal to or greater-than with dot inside\"\n  },\n  \"eighthnote\": {\n    \"command\": \"eighthnote\",\n    \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"Eighth note\"\n  },\n  \"elinters\": {\n    \"command\": \"elinters\",\n    \"detail\": \"⏧\",\n    \"documentation\": \"Electrical intersection\"\n  },\n  \"ell\": {\n    \"command\": \"ell\",\n    \"detail\": \"ℓ\",\n    \"documentation\": \"Cursive small l\"\n  },\n  \"elsdot\": {\n    \"command\": \"elsdot\",\n    \"detail\": \"⪗\",\n    \"documentation\": \"Slanted equal to or less-than with dot inside\"\n  },\n  \"emptysetoarr\": {\n    \"command\": \"emptysetoarr\",\n    \"detail\": \"⦳\",\n    \"documentation\": \"Empty set with right arrow above\"\n  },\n  \"emptysetoarrl\": {\n    \"command\": \"emptysetoarrl\",\n    \"detail\": \"⦴\",\n    \"documentation\": \"Empty set with left arrow above\"\n  },\n  \"emptysetobar\": {\n    \"command\": \"emptysetobar\",\n    \"detail\": \"⦱\",\n    \"documentation\": \"Empty set with overbar\"\n  },\n  \"emptysetocirc\": {\n    \"command\": \"emptysetocirc\",\n    \"detail\": \"⦲\",\n    \"documentation\": \"Empty set with small circle above\"\n  },\n  \"enclosecircle\": {\n    \"command\": \"enclosecircle\",\n    \"detail\": \"x⃝\",\n    \"documentation\": \"Combining enclosing circle\"\n  },\n  \"enclosediamond\": {\n    \"command\": \"enclosediamond\",\n    \"detail\": \"x⃟\",\n    \"documentation\": \"Combining enclosing diamond\"\n  },\n  \"enclosesquare\": {\n    \"command\": \"enclosesquare\",\n    \"detail\": \"x⃞\",\n    \"documentation\": \"Combining enclosing square\"\n  },\n  \"enclosetriangle\": {\n    \"command\": \"enclosetriangle\",\n    \"detail\": \"x⃤\",\n    \"documentation\": \"Combining enclosing upward pointing triangle\"\n  },\n  \"enleadertwodots\": {\n    \"command\": \"enleadertwodots\",\n    \"detail\": \"‥\",\n    \"documentation\": \"Double baseline dot (en leader)\"\n  },\n  \"eparsl\": {\n    \"command\": \"eparsl\",\n    \"detail\": \"⧣\",\n    \"documentation\": \"Equals sign and slanted parallel\"\n  },\n  \"eqcirc\": {\n    \"command\": \"eqcirc\",\n    \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Circle on equals sign\"\n  },\n  \"eqcolon\": {\n    \"command\": \"eqcolon\",\n    \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n    \"documentation\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n  },\n  \"eqdef\": {\n    \"command\": \"eqdef\",\n    \"detail\": \"≝\",\n    \"documentation\": \"Equals by definition\"\n  },\n  \"eqdot\": {\n    \"command\": \"eqdot\",\n    \"detail\": \"⩦\",\n    \"documentation\": \"Equals sign with dot below\"\n  },\n  \"eqeq\": {\n    \"command\": \"eqeq\",\n    \"detail\": \"⩵ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"==, two consecutive equals signs\"\n  },\n  \"eqeqeq\": {\n    \"command\": \"eqeqeq\",\n    \"detail\": \"⩶ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"===, three consecutive equals signs\"\n  },\n  \"eqgtr\": {\n    \"command\": \"eqgtr\",\n    \"detail\": \"⋝\",\n    \"documentation\": \"Equal-or-greater\"\n  },\n  \"eqless\": {\n    \"command\": \"eqless\",\n    \"detail\": \"⋜\",\n    \"documentation\": \"Equal-or-less\"\n  },\n  \"eqqgtr\": {\n    \"command\": \"eqqgtr\",\n    \"detail\": \"⪚\",\n    \"documentation\": \"Double-line equal to or greater-than\"\n  },\n  \"eqqless\": {\n    \"command\": \"eqqless\",\n    \"detail\": \"⪙\",\n    \"documentation\": \"Double-line equal to or less-than\"\n  },\n  \"eqqplus\": {\n    \"command\": \"eqqplus\",\n    \"detail\": \"⩱\",\n    \"documentation\": \"Equals sign above plus sign\"\n  },\n  \"eqqsim\": {\n    \"command\": \"eqqsim\",\n    \"detail\": \"⩳\",\n    \"documentation\": \"Equals sign above tilde operator\"\n  },\n  \"eqqslantgtr\": {\n    \"command\": \"eqqslantgtr\",\n    \"detail\": \"⪜\",\n    \"documentation\": \"Double-line slanted equal to or greater-than\"\n  },\n  \"eqqslantless\": {\n    \"command\": \"eqqslantless\",\n    \"detail\": \"⪛\",\n    \"documentation\": \"Double-line slanted equal to or less-than\"\n  },\n  \"eqsim\": {\n    \"command\": \"eqsim\",\n    \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Equals, similar\"\n  },\n  \"eqslantgtr\": {\n    \"command\": \"eqslantgtr\",\n    \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Slanted equal to or greater-than\"\n  },\n  \"eqslantless\": {\n    \"command\": \"eqslantless\",\n    \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Slanted equal to or less-than\"\n  },\n  \"equal\": {\n    \"command\": \"equal\",\n    \"detail\": \"=\",\n    \"documentation\": \"Equals sign r:\"\n  },\n  \"equalleftarrow\": {\n    \"command\": \"equalleftarrow\",\n    \"detail\": \"⭀\",\n    \"documentation\": \"Equals sign above leftwards arrow\"\n  },\n  \"equalparallel\": {\n    \"command\": \"equalparallel\",\n    \"detail\": \"⋕ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Parallel, equal; equal or parallel\"\n  },\n  \"equalrightarrow\": {\n    \"command\": \"equalrightarrow\",\n    \"detail\": \"⥱\",\n    \"documentation\": \"Equals sign above rightwards arrow\"\n  },\n  \"equiv\": {\n    \"command\": \"equiv\",\n    \"detail\": \"≡\",\n    \"documentation\": \"Identical with\"\n  },\n  \"equivDD\": {\n    \"command\": \"equivDD\",\n    \"detail\": \"⩸\",\n    \"documentation\": \"Equivalent with four dots above\"\n  },\n  \"equivVert\": {\n    \"command\": \"equivVert\",\n    \"detail\": \"⩨\",\n    \"documentation\": \"Triple horizontal bar with double vertical stroke\"\n  },\n  \"equivVvert\": {\n    \"command\": \"equivVvert\",\n    \"detail\": \"⩩\",\n    \"documentation\": \"Triple horizontal bar with triple vertical stroke\"\n  },\n  \"eqvparsl\": {\n    \"command\": \"eqvparsl\",\n    \"detail\": \"⧥\",\n    \"documentation\": \"Identical to and slanted parallel\"\n  },\n  \"errbarblackcircle\": {\n    \"command\": \"errbarblackcircle\",\n    \"detail\": \"⧳\",\n    \"documentation\": \"Error-barred black circle\"\n  },\n  \"errbarblackdiamond\": {\n    \"command\": \"errbarblackdiamond\",\n    \"detail\": \"⧱\",\n    \"documentation\": \"Error-barred black diamond\"\n  },\n  \"errbarblacksquare\": {\n    \"command\": \"errbarblacksquare\",\n    \"detail\": \"⧯\",\n    \"documentation\": \"Error-barred black square\"\n  },\n  \"errbarcircle\": {\n    \"command\": \"errbarcircle\",\n    \"detail\": \"⧲\",\n    \"documentation\": \"Error-barred white circle\"\n  },\n  \"errbardiamond\": {\n    \"command\": \"errbardiamond\",\n    \"detail\": \"⧰\",\n    \"documentation\": \"Error-barred white diamond\"\n  },\n  \"errbarsquare\": {\n    \"command\": \"errbarsquare\",\n    \"detail\": \"⧮\",\n    \"documentation\": \"Error-barred white square\"\n  },\n  \"euro\": {\n    \"command\": \"euro\",\n    \"detail\": \"€\",\n    \"documentation\": \"Euro sign\"\n  },\n  \"exclam\": {\n    \"command\": \"exclam\",\n    \"detail\": \"!\",\n    \"documentation\": \"Exclamation mark\"\n  },\n  \"exists\": {\n    \"command\": \"exists\",\n    \"detail\": \"∃\",\n    \"documentation\": \"\\\\exi (oz), at least one exists\"\n  },\n  \"fallingdotseq\": {\n    \"command\": \"fallingdotseq\",\n    \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Equals, falling dots\"\n  },\n  \"fbowtie\": {\n    \"command\": \"fbowtie\",\n    \"detail\": \"⧓\",\n    \"documentation\": \"Black bowtie\"\n  },\n  \"fcmp\": {\n    \"command\": \"fcmp\",\n    \"detail\": \"⨾ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\comp (oz), relational composition\"\n  },\n  \"fdiagovnearrow\": {\n    \"command\": \"fdiagovnearrow\",\n    \"detail\": \"⤯\",\n    \"documentation\": \"Falling diagonal crossing north east arrow\"\n  },\n  \"fdiagovrdiag\": {\n    \"command\": \"fdiagovrdiag\",\n    \"detail\": \"⤬\",\n    \"documentation\": \"Falling diagonal crossing rising diagonal\"\n  },\n  \"female\": {\n    \"command\": \"female\",\n    \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n  },\n  \"fint\": {\n    \"command\": \"fint\",\n    \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n    \"documentation\": \"Integral average with slash\"\n  },\n  \"fisheye\": {\n    \"command\": \"fisheye\",\n    \"detail\": \"◉\",\n    \"documentation\": \"Fisheye\"\n  },\n  \"flat\": {\n    \"command\": \"flat\",\n    \"detail\": \"♭\",\n    \"documentation\": \"Musical flat\"\n  },\n  \"fltns\": {\n    \"command\": \"fltns\",\n    \"detail\": \"⏥\",\n    \"documentation\": \"Flatness\"\n  },\n  \"forall\": {\n    \"command\": \"forall\",\n    \"detail\": \"∀\",\n    \"documentation\": \"For all\"\n  },\n  \"forks\": {\n    \"command\": \"forks\",\n    \"detail\": \"⫝̸\",\n    \"documentation\": \"Forking\"\n  },\n  \"forksnot\": {\n    \"command\": \"forksnot\",\n    \"detail\": \"⫝\",\n    \"documentation\": \"Nonforking\"\n  },\n  \"forkv\": {\n    \"command\": \"forkv\",\n    \"detail\": \"⫙\",\n    \"documentation\": \"Element of opening downwards\"\n  },\n  \"fourthroot\": {\n    \"command\": \"fourthroot\",\n    \"detail\": \"∜\",\n    \"documentation\": \"Fourth root\"\n  },\n  \"fourvdots\": {\n    \"command\": \"fourvdots\",\n    \"detail\": \"⦙\",\n    \"documentation\": \"Dotted fence\"\n  },\n  \"fracslash\": {\n    \"command\": \"fracslash\",\n    \"detail\": \"⁄\",\n    \"documentation\": \"/, fraction slash\"\n  },\n  \"frown\": {\n    \"command\": \"frown\",\n    \"detail\": \"⌢\",\n    \"documentation\": \"\\\\smallfrown, frown (down curve)\"\n  },\n  \"fullouterjoin\": {\n    \"command\": \"fullouterjoin\",\n    \"detail\": \"⟗\",\n    \"documentation\": \"Full outer join\"\n  },\n  \"geq\": {\n    \"command\": \"geq\",\n    \"detail\": \"≥\",\n    \"documentation\": \"\\\\ge, r: greater-than-or-equal\"\n  },\n  \"geqq\": {\n    \"command\": \"geqq\",\n    \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater, double equals\"\n  },\n  \"geqqslant\": {\n    \"command\": \"geqqslant\",\n    \"detail\": \"⫺\",\n    \"documentation\": \"Double-line slanted greater-than or equal to\"\n  },\n  \"geqslant\": {\n    \"command\": \"geqslant\",\n    \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Greater-than or slanted equal to\"\n  },\n  \"gescc\": {\n    \"command\": \"gescc\",\n    \"detail\": \"⪩\",\n    \"documentation\": \"Greater-than closed by curve above slanted equal\"\n  },\n  \"gesdot\": {\n    \"command\": \"gesdot\",\n    \"detail\": \"⪀\",\n    \"documentation\": \"Greater-than or slanted equal to with dot inside\"\n  },\n  \"gesdoto\": {\n    \"command\": \"gesdoto\",\n    \"detail\": \"⪂\",\n    \"documentation\": \"Greater-than or slanted equal to with dot above\"\n  },\n  \"gesdotol\": {\n    \"command\": \"gesdotol\",\n    \"detail\": \"⪄\",\n    \"documentation\": \"Greater-than or slanted equal to with dot above left\"\n  },\n  \"gesles\": {\n    \"command\": \"gesles\",\n    \"detail\": \"⪔\",\n    \"documentation\": \"Greater-than above slanted equal above less-than above slanted equal\"\n  },\n  \"gg\": {\n    \"command\": \"gg\",\n    \"detail\": \"≫\",\n    \"documentation\": \"Much greater than, type 2\"\n  },\n  \"ggg\": {\n    \"command\": \"ggg\",\n    \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n    \"documentation\": \"Triple greater-than\"\n  },\n  \"gggnest\": {\n    \"command\": \"gggnest\",\n    \"detail\": \"⫸\",\n    \"documentation\": \"Triple nested greater-than\"\n  },\n  \"gimel\": {\n    \"command\": \"gimel\",\n    \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Gimel, hebrew\"\n  },\n  \"glE\": {\n    \"command\": \"glE\",\n    \"detail\": \"⪒\",\n    \"documentation\": \"Greater-than above less-than above double-line equal\"\n  },\n  \"gla\": {\n    \"command\": \"gla\",\n    \"detail\": \"⪥\",\n    \"documentation\": \"Greater-than beside less-than\"\n  },\n  \"gleichstark\": {\n    \"command\": \"gleichstark\",\n    \"detail\": \"⧦\",\n    \"documentation\": \"Gleich stark\"\n  },\n  \"glj\": {\n    \"command\": \"glj\",\n    \"detail\": \"⪤\",\n    \"documentation\": \"Greater-than overlapping less-than\"\n  },\n  \"gnapprox\": {\n    \"command\": \"gnapprox\",\n    \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater-than and not approximate\"\n  },\n  \"gneq\": {\n    \"command\": \"gneq\",\n    \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater-than and single-line not equal to\"\n  },\n  \"gneqq\": {\n    \"command\": \"gneqq\",\n    \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater, not double equals\"\n  },\n  \"gnsim\": {\n    \"command\": \"gnsim\",\n    \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater, not similar\"\n  },\n  \"greater\": {\n    \"command\": \"greater\",\n    \"detail\": \">\",\n    \"documentation\": \"Greater-than sign r:\"\n  },\n  \"gsime\": {\n    \"command\": \"gsime\",\n    \"detail\": \"⪎\",\n    \"documentation\": \"Greater-than above similar or equal\"\n  },\n  \"gsiml\": {\n    \"command\": \"gsiml\",\n    \"detail\": \"⪐\",\n    \"documentation\": \"Greater-than above similar above less-than\"\n  },\n  \"gtcc\": {\n    \"command\": \"gtcc\",\n    \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Greater-than closed by curve\"\n  },\n  \"gtcir\": {\n    \"command\": \"gtcir\",\n    \"detail\": \"⩺\",\n    \"documentation\": \"Greater-than with circle inside\"\n  },\n  \"gtlpar\": {\n    \"command\": \"gtlpar\",\n    \"detail\": \"⦠\",\n    \"documentation\": \"Spherical angle opening left\"\n  },\n  \"gtquest\": {\n    \"command\": \"gtquest\",\n    \"detail\": \"⩼\",\n    \"documentation\": \"Greater-than with question mark above\"\n  },\n  \"gtrapprox\": {\n    \"command\": \"gtrapprox\",\n    \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater-than or approximate\"\n  },\n  \"gtrarr\": {\n    \"command\": \"gtrarr\",\n    \"detail\": \"⥸\",\n    \"documentation\": \"Greater-than above rightwards arrow\"\n  },\n  \"gtrdot\": {\n    \"command\": \"gtrdot\",\n    \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater than, with dot\"\n  },\n  \"gtreqless\": {\n    \"command\": \"gtreqless\",\n    \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater, equals, less\"\n  },\n  \"gtreqqless\": {\n    \"command\": \"gtreqqless\",\n    \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greater-than above double-line equal above less-than\"\n  },\n  \"gtrless\": {\n    \"command\": \"gtrless\",\n    \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\greaterless (wrisym), greater, less\"\n  },\n  \"gtrsim\": {\n    \"command\": \"gtrsim\",\n    \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n  },\n  \"harrowextender\": {\n    \"command\": \"harrowextender\",\n    \"detail\": \"⎯\",\n    \"documentation\": \"Horizontal line extension (used to extend arrows)\"\n  },\n  \"hatapprox\": {\n    \"command\": \"hatapprox\",\n    \"detail\": \"⩯\",\n    \"documentation\": \"Almost equal to with circumflex accent\"\n  },\n  \"heartsuit\": {\n    \"command\": \"heartsuit\",\n    \"detail\": \"♡\",\n    \"documentation\": \"Heart suit symbol\"\n  },\n  \"hermitmatrix\": {\n    \"command\": \"hermitmatrix\",\n    \"detail\": \"⊹\",\n    \"documentation\": \"Hermitian conjugate matrix\"\n  },\n  \"hexagon\": {\n    \"command\": \"hexagon\",\n    \"detail\": \"⎔\",\n    \"documentation\": \"Horizontal benzene ring [hexagon flat open]\"\n  },\n  \"hexagonblack\": {\n    \"command\": \"hexagonblack\",\n    \"detail\": \"⬣\",\n    \"documentation\": \"Horizontal black hexagon\"\n  },\n  \"hknearrow\": {\n    \"command\": \"hknearrow\",\n    \"detail\": \"⤤\",\n    \"documentation\": \"North east arrow with hook\"\n  },\n  \"hknwarrow\": {\n    \"command\": \"hknwarrow\",\n    \"detail\": \"⤣\",\n    \"documentation\": \"North west arrow with hook\"\n  },\n  \"hksearow\": {\n    \"command\": \"hksearow\",\n    \"detail\": \"⤥\",\n    \"documentation\": \"South east arrow with hook\"\n  },\n  \"hkswarow\": {\n    \"command\": \"hkswarow\",\n    \"detail\": \"⤦\",\n    \"documentation\": \"South west arrow with hook\"\n  },\n  \"hookleftarrow\": {\n    \"command\": \"hookleftarrow\",\n    \"detail\": \"↩\",\n    \"documentation\": \"Left arrow-hooked\"\n  },\n  \"hookrightarrow\": {\n    \"command\": \"hookrightarrow\",\n    \"detail\": \"↪\",\n    \"documentation\": \"Right arrow-hooked\"\n  },\n  \"horizbar\": {\n    \"command\": \"horizbar\",\n    \"detail\": \"―\",\n    \"documentation\": \"Horizontal bar\"\n  },\n  \"hourglass\": {\n    \"command\": \"hourglass\",\n    \"detail\": \"⧖\",\n    \"documentation\": \"White hourglass\"\n  },\n  \"house\": {\n    \"command\": \"house\",\n    \"detail\": \"⌂\",\n    \"documentation\": \"House\"\n  },\n  \"hrectangle\": {\n    \"command\": \"hrectangle\",\n    \"detail\": \"▭\",\n    \"documentation\": \"Horizontal rectangle, open\"\n  },\n  \"hrectangleblack\": {\n    \"command\": \"hrectangleblack\",\n    \"detail\": \"▬\",\n    \"documentation\": \"Black rectangle\"\n  },\n  \"hslash\": {\n    \"command\": \"hslash\",\n    \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n    \"documentation\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n  },\n  \"hyphenbullet\": {\n    \"command\": \"hyphenbullet\",\n    \"detail\": \"⁃\",\n    \"documentation\": \"Rectangle, filled (hyphen bullet)\"\n  },\n  \"hzigzag\": {\n    \"command\": \"hzigzag\",\n    \"detail\": \"〰\",\n    \"documentation\": \"Zigzag\"\n  },\n  \"iiiint\": {\n    \"command\": \"iiiint\",\n    \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n    \"documentation\": \"Quadruple integral operator\"\n  },\n  \"iiint\": {\n    \"command\": \"iiint\",\n    \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n    \"documentation\": \"Triple integral operator\"\n  },\n  \"iinfin\": {\n    \"command\": \"iinfin\",\n    \"detail\": \"⧜\",\n    \"documentation\": \"Incomplete infinity\"\n  },\n  \"iint\": {\n    \"command\": \"iint\",\n    \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n    \"documentation\": \"Double integral operator\"\n  },\n  \"imageof\": {\n    \"command\": \"imageof\",\n    \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Image of\"\n  },\n  \"imath\": {\n    \"command\": \"imath\",\n    \"detail\": \"𝚤\",\n    \"documentation\": \"Mathematical italic small dotless i\"\n  },\n  \"in\": {\n    \"command\": \"in\",\n    \"detail\": \"∈\",\n    \"documentation\": \"Set membership, variant\"\n  },\n  \"increment\": {\n    \"command\": \"increment\",\n    \"detail\": \"∆\",\n    \"documentation\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n  },\n  \"infty\": {\n    \"command\": \"infty\",\n    \"detail\": \"∞\",\n    \"documentation\": \"Infinity\"\n  },\n  \"int\": {\n    \"command\": \"int\",\n    \"detail\": \"∫\",\n    \"documentation\": \"Integral operator\"\n  },\n  \"intBar\": {\n    \"command\": \"intBar\",\n    \"detail\": \"⨎\",\n    \"documentation\": \"Integral with double stroke\"\n  },\n  \"intbar\": {\n    \"command\": \"intbar\",\n    \"detail\": \"⨍\",\n    \"documentation\": \"Finite part integral\"\n  },\n  \"intbottom\": {\n    \"command\": \"intbottom\",\n    \"detail\": \"⌡\",\n    \"documentation\": \"Bottom half integral\"\n  },\n  \"intcap\": {\n    \"command\": \"intcap\",\n    \"detail\": \"⨙\",\n    \"documentation\": \"Integral with intersection\"\n  },\n  \"intclockwise\": {\n    \"command\": \"intclockwise\",\n    \"detail\": \"∱\",\n    \"documentation\": \"Clockwise integral\"\n  },\n  \"intcup\": {\n    \"command\": \"intcup\",\n    \"detail\": \"⨚\",\n    \"documentation\": \"Integral with union\"\n  },\n  \"intercal\": {\n    \"command\": \"intercal\",\n    \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Intercal\"\n  },\n  \"interleave\": {\n    \"command\": \"interleave\",\n    \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Triple vertical bar binary relation\"\n  },\n  \"intextender\": {\n    \"command\": \"intextender\",\n    \"detail\": \"⎮\",\n    \"documentation\": \"Integral extension\"\n  },\n  \"intlarhk\": {\n    \"command\": \"intlarhk\",\n    \"detail\": \"⨗\",\n    \"documentation\": \"Integral with leftwards arrow with hook\"\n  },\n  \"intprod\": {\n    \"command\": \"intprod\",\n    \"detail\": \"⨼\",\n    \"documentation\": \"Interior product\"\n  },\n  \"intprodr\": {\n    \"command\": \"intprodr\",\n    \"detail\": \"⨽\",\n    \"documentation\": \"Righthand interior product\"\n  },\n  \"inttop\": {\n    \"command\": \"inttop\",\n    \"detail\": \"⌠\",\n    \"documentation\": \"Top half integral\"\n  },\n  \"intx\": {\n    \"command\": \"intx\",\n    \"detail\": \"⨘\",\n    \"documentation\": \"Integral with times sign\"\n  },\n  \"inversebullet\": {\n    \"command\": \"inversebullet\",\n    \"detail\": \"◘\",\n    \"documentation\": \"Inverse bullet\"\n  },\n  \"inversewhitecircle\": {\n    \"command\": \"inversewhitecircle\",\n    \"detail\": \"◙\",\n    \"documentation\": \"Inverse white circle\"\n  },\n  \"invlazys\": {\n    \"command\": \"invlazys\",\n    \"detail\": \"∾\",\n    \"documentation\": \"Most positive, inverted lazy s\"\n  },\n  \"invnot\": {\n    \"command\": \"invnot\",\n    \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Reverse not\"\n  },\n  \"invwhitelowerhalfcircle\": {\n    \"command\": \"invwhitelowerhalfcircle\",\n    \"detail\": \"◛\",\n    \"documentation\": \"Lower half inverse white circle\"\n  },\n  \"invwhiteupperhalfcircle\": {\n    \"command\": \"invwhiteupperhalfcircle\",\n    \"detail\": \"◚\",\n    \"documentation\": \"Upper half inverse white circle\"\n  },\n  \"isinE\": {\n    \"command\": \"isinE\",\n    \"detail\": \"⋹\",\n    \"documentation\": \"Element of with two horizontal strokes\"\n  },\n  \"isindot\": {\n    \"command\": \"isindot\",\n    \"detail\": \"⋵\",\n    \"documentation\": \"Element of with dot above\"\n  },\n  \"isinobar\": {\n    \"command\": \"isinobar\",\n    \"detail\": \"⋷\",\n    \"documentation\": \"Small element of with overbar\"\n  },\n  \"isins\": {\n    \"command\": \"isins\",\n    \"detail\": \"⋴\",\n    \"documentation\": \"Small element of with vertical bar at end of horizontal stroke\"\n  },\n  \"isinvb\": {\n    \"command\": \"isinvb\",\n    \"detail\": \"⋸\",\n    \"documentation\": \"Element of with underbar\"\n  },\n  \"jmath\": {\n    \"command\": \"jmath\",\n    \"detail\": \"𝚥\",\n    \"documentation\": \"Mathematical italic small dotless j\"\n  },\n  \"kernelcontraction\": {\n    \"command\": \"kernelcontraction\",\n    \"detail\": \"∻\",\n    \"documentation\": \"Homothetic\"\n  },\n  \"lAngle\": {\n    \"command\": \"lAngle\",\n    \"detail\": \"⟪ (\\\"oz\\\" command)\",\n    \"documentation\": \"Mathematical left double angle bracket, left chevron bracket\"\n  },\n  \"lBrace\": {\n    \"command\": \"lBrace\",\n    \"detail\": \"⦃\",\n    \"documentation\": \"Left white curly bracket\"\n  },\n  \"lBrack\": {\n    \"command\": \"lBrack\",\n    \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n    \"documentation\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n  },\n  \"lParen\": {\n    \"command\": \"lParen\",\n    \"detail\": \"⦅ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"Left white parenthesis\"\n  },\n  \"langle\": {\n    \"command\": \"langle\",\n    \"detail\": \"⟨\",\n    \"documentation\": \"Mathematical left angle bracket\"\n  },\n  \"langledot\": {\n    \"command\": \"langledot\",\n    \"detail\": \"⦑\",\n    \"documentation\": \"Left angle bracket with dot\"\n  },\n  \"laplac\": {\n    \"command\": \"laplac\",\n    \"detail\": \"⧠\",\n    \"documentation\": \"Square with contoured outline\"\n  },\n  \"lat\": {\n    \"command\": \"lat\",\n    \"detail\": \"⪫\",\n    \"documentation\": \"Larger than\"\n  },\n  \"late\": {\n    \"command\": \"late\",\n    \"detail\": \"⪭\",\n    \"documentation\": \"Larger than or equal to\"\n  },\n  \"lbag\": {\n    \"command\": \"lbag\",\n    \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n  },\n  \"lblkbrbrak\": {\n    \"command\": \"lblkbrbrak\",\n    \"detail\": \"⦗\",\n    \"documentation\": \"Left black tortoise shell bracket\"\n  },\n  \"lbrace\": {\n    \"command\": \"lbrace\",\n    \"detail\": \"{\",\n    \"documentation\": \"\\\\lbrace, left curly bracket\"\n  },\n  \"lbracelend\": {\n    \"command\": \"lbracelend\",\n    \"detail\": \"⎩\",\n    \"documentation\": \"Left curly bracket lower hook\"\n  },\n  \"lbracemid\": {\n    \"command\": \"lbracemid\",\n    \"detail\": \"⎨\",\n    \"documentation\": \"Left curly bracket middle piece\"\n  },\n  \"lbraceuend\": {\n    \"command\": \"lbraceuend\",\n    \"detail\": \"⎧\",\n    \"documentation\": \"Left curly bracket upper hook\"\n  },\n  \"lbrack\": {\n    \"command\": \"lbrack\",\n    \"detail\": \"[\",\n    \"documentation\": \"Left square bracket\"\n  },\n  \"lbrackextender\": {\n    \"command\": \"lbrackextender\",\n    \"detail\": \"⎢\",\n    \"documentation\": \"Left square bracket extension\"\n  },\n  \"lbracklend\": {\n    \"command\": \"lbracklend\",\n    \"detail\": \"⎣\",\n    \"documentation\": \"Left square bracket lower corner\"\n  },\n  \"lbracklltick\": {\n    \"command\": \"lbracklltick\",\n    \"detail\": \"⦏\",\n    \"documentation\": \"Left square bracket with tick in bottom corner\"\n  },\n  \"lbrackubar\": {\n    \"command\": \"lbrackubar\",\n    \"detail\": \"⦋\",\n    \"documentation\": \"Left square bracket with underbar\"\n  },\n  \"lbrackuend\": {\n    \"command\": \"lbrackuend\",\n    \"detail\": \"⎡\",\n    \"documentation\": \"Left square bracket upper corner\"\n  },\n  \"lbrackultick\": {\n    \"command\": \"lbrackultick\",\n    \"detail\": \"⦍\",\n    \"documentation\": \"Left square bracket with tick in top corner\"\n  },\n  \"lbrbrak\": {\n    \"command\": \"lbrbrak\",\n    \"detail\": \"〔\",\n    \"documentation\": \"Left broken bracket\"\n  },\n  \"lceil\": {\n    \"command\": \"lceil\",\n    \"detail\": \"⌈\",\n    \"documentation\": \"Left ceiling\"\n  },\n  \"lcurvyangle\": {\n    \"command\": \"lcurvyangle\",\n    \"detail\": \"⧼\",\n    \"documentation\": \"Left pointing curved angle bracket\"\n  },\n  \"leftarrow\": {\n    \"command\": \"leftarrow\",\n    \"detail\": \"←\",\n    \"documentation\": \"\\\\gets, a: leftward arrow\"\n  },\n  \"leftarrowapprox\": {\n    \"command\": \"leftarrowapprox\",\n    \"detail\": \"⭊\",\n    \"documentation\": \"Leftwards arrow above almost equal to\"\n  },\n  \"leftarrowbackapprox\": {\n    \"command\": \"leftarrowbackapprox\",\n    \"detail\": \"⭂\",\n    \"documentation\": \"Leftwards arrow above reverse almost equal to\"\n  },\n  \"leftarrowbsimilar\": {\n    \"command\": \"leftarrowbsimilar\",\n    \"detail\": \"⭋\",\n    \"documentation\": \"Leftwards arrow above reverse tilde operator\"\n  },\n  \"leftarrowless\": {\n    \"command\": \"leftarrowless\",\n    \"detail\": \"⥷\",\n    \"documentation\": \"Leftwards arrow through less-than\"\n  },\n  \"leftarrowonoplus\": {\n    \"command\": \"leftarrowonoplus\",\n    \"detail\": \"⬲\",\n    \"documentation\": \"Left arrow with circled plus\"\n  },\n  \"leftarrowplus\": {\n    \"command\": \"leftarrowplus\",\n    \"detail\": \"⥆\",\n    \"documentation\": \"Leftwards arrow with plus below\"\n  },\n  \"leftarrowshortrightarrow\": {\n    \"command\": \"leftarrowshortrightarrow\",\n    \"detail\": \"⥃\",\n    \"documentation\": \"Leftwards arrow above short rightwards arrow\"\n  },\n  \"leftarrowsimilar\": {\n    \"command\": \"leftarrowsimilar\",\n    \"detail\": \"⥳\",\n    \"documentation\": \"Leftwards arrow above tilde operator\"\n  },\n  \"leftarrowsubset\": {\n    \"command\": \"leftarrowsubset\",\n    \"detail\": \"⥺\",\n    \"documentation\": \"Leftwards arrow through subset\"\n  },\n  \"leftarrowtail\": {\n    \"command\": \"leftarrowtail\",\n    \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left arrow-tailed\"\n  },\n  \"leftarrowtriangle\": {\n    \"command\": \"leftarrowtriangle\",\n    \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Leftwards open-headed arrow\"\n  },\n  \"leftarrowx\": {\n    \"command\": \"leftarrowx\",\n    \"detail\": \"⬾\",\n    \"documentation\": \"Leftwards arrow through x\"\n  },\n  \"leftbkarrow\": {\n    \"command\": \"leftbkarrow\",\n    \"detail\": \"⤌\",\n    \"documentation\": \"Leftwards double dash arrow\"\n  },\n  \"leftcurvedarrow\": {\n    \"command\": \"leftcurvedarrow\",\n    \"detail\": \"⬿\",\n    \"documentation\": \"Wave arrow pointing directly left\"\n  },\n  \"leftdasharrow\": {\n    \"command\": \"leftdasharrow\",\n    \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Leftwards dashed arrow\"\n  },\n  \"leftdbkarrow\": {\n    \"command\": \"leftdbkarrow\",\n    \"detail\": \"⤎\",\n    \"documentation\": \"Leftwards triple dash arrow\"\n  },\n  \"leftdbltail\": {\n    \"command\": \"leftdbltail\",\n    \"detail\": \"⤛\",\n    \"documentation\": \"Leftwards double arrow-tail\"\n  },\n  \"leftdotarrow\": {\n    \"command\": \"leftdotarrow\",\n    \"detail\": \"⬸\",\n    \"documentation\": \"Leftwards arrow with dotted stem\"\n  },\n  \"leftdowncurvedarrow\": {\n    \"command\": \"leftdowncurvedarrow\",\n    \"detail\": \"⤶\",\n    \"documentation\": \"Arrow pointing downwards then curving leftwards\"\n  },\n  \"leftfishtail\": {\n    \"command\": \"leftfishtail\",\n    \"detail\": \"⥼ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Left fish tail\"\n  },\n  \"leftharpoonaccent\": {\n    \"command\": \"leftharpoonaccent\",\n    \"detail\": \"x⃐ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Combining left harpoon above\"\n  },\n  \"leftharpoondown\": {\n    \"command\": \"leftharpoondown\",\n    \"detail\": \"↽\",\n    \"documentation\": \"Left harpoon-down\"\n  },\n  \"leftharpoondownbar\": {\n    \"command\": \"leftharpoondownbar\",\n    \"detail\": \"⥞ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb down from bar\"\n  },\n  \"leftharpoonsupdown\": {\n    \"command\": \"leftharpoonsupdown\",\n    \"detail\": \"⥢ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb up above leftwards harpoon with barb down\"\n  },\n  \"leftharpoonup\": {\n    \"command\": \"leftharpoonup\",\n    \"detail\": \"↼\",\n    \"documentation\": \"Left harpoon-up\"\n  },\n  \"leftharpoonupbar\": {\n    \"command\": \"leftharpoonupbar\",\n    \"detail\": \"⥚ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb up from bar\"\n  },\n  \"leftharpoonupdash\": {\n    \"command\": \"leftharpoonupdash\",\n    \"detail\": \"⥪ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Leftwards harpoon with barb up above long dash\"\n  },\n  \"leftleftarrows\": {\n    \"command\": \"leftleftarrows\",\n    \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Two left arrows\"\n  },\n  \"leftmoon\": {\n    \"command\": \"leftmoon\",\n    \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n    \"documentation\": \"Last quarter moon\"\n  },\n  \"leftouterjoin\": {\n    \"command\": \"leftouterjoin\",\n    \"detail\": \"⟕\",\n    \"documentation\": \"Left outer join\"\n  },\n  \"leftrightarrow\": {\n    \"command\": \"leftrightarrow\",\n    \"detail\": \"↔\",\n    \"documentation\": \"\\\\rel (oz), left right arrow, relation\"\n  },\n  \"leftrightarrowcircle\": {\n    \"command\": \"leftrightarrowcircle\",\n    \"detail\": \"⥈\",\n    \"documentation\": \"Left right arrow through small circle\"\n  },\n  \"leftrightarrows\": {\n    \"command\": \"leftrightarrows\",\n    \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n  },\n  \"leftrightarrowtriangle\": {\n    \"command\": \"leftrightarrowtriangle\",\n    \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Left right open-headed arrow\"\n  },\n  \"leftrightharpoondowndown\": {\n    \"command\": \"leftrightharpoondowndown\",\n    \"detail\": \"⥐ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Left barb down right barb down harpoon\"\n  },\n  \"leftrightharpoondownup\": {\n    \"command\": \"leftrightharpoondownup\",\n    \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Left barb down right barb up harpoon\"\n  },\n  \"leftrightharpoons\": {\n    \"command\": \"leftrightharpoons\",\n    \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n  },\n  \"leftrightharpoonsdown\": {\n    \"command\": \"leftrightharpoonsdown\",\n    \"detail\": \"⥧\",\n    \"documentation\": \"Leftwards harpoon with barb down above rightwards harpoon with barb down\"\n  },\n  \"leftrightharpoonsup\": {\n    \"command\": \"leftrightharpoonsup\",\n    \"detail\": \"⥦\",\n    \"documentation\": \"Leftwards harpoon with barb up above rightwards harpoon with barb up\"\n  },\n  \"leftrightharpoonupdown\": {\n    \"command\": \"leftrightharpoonupdown\",\n    \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Left barb up right barb down harpoon\"\n  },\n  \"leftrightharpoonupup\": {\n    \"command\": \"leftrightharpoonupup\",\n    \"detail\": \"⥎ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Left barb up right barb up harpoon\"\n  },\n  \"leftrightsquigarrow\": {\n    \"command\": \"leftrightsquigarrow\",\n    \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left and right arr-wavy\"\n  },\n  \"leftsquigarrow\": {\n    \"command\": \"leftsquigarrow\",\n    \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n    \"documentation\": \"Leftwards squiggle arrow\"\n  },\n  \"lefttail\": {\n    \"command\": \"lefttail\",\n    \"detail\": \"⤙\",\n    \"documentation\": \"Leftwards arrow-tail\"\n  },\n  \"leftthreearrows\": {\n    \"command\": \"leftthreearrows\",\n    \"detail\": \"⬱\",\n    \"documentation\": \"Three leftwards arrows\"\n  },\n  \"leftthreetimes\": {\n    \"command\": \"leftthreetimes\",\n    \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left semidirect product\"\n  },\n  \"leftwavearrow\": {\n    \"command\": \"leftwavearrow\",\n    \"detail\": \"↜\",\n    \"documentation\": \"Left arrow-wavy\"\n  },\n  \"leftwhitearrow\": {\n    \"command\": \"leftwhitearrow\",\n    \"detail\": \"⇦\",\n    \"documentation\": \"Leftwards white arrow\"\n  },\n  \"leq\": {\n    \"command\": \"leq\",\n    \"detail\": \"≤\",\n    \"documentation\": \"\\\\le, r: less-than-or-equal\"\n  },\n  \"leqq\": {\n    \"command\": \"leqq\",\n    \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less, double equals\"\n  },\n  \"leqqslant\": {\n    \"command\": \"leqqslant\",\n    \"detail\": \"⫹\",\n    \"documentation\": \"Double-line slanted less-than or equal to\"\n  },\n  \"leqslant\": {\n    \"command\": \"leqslant\",\n    \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Less-than or slanted equal to\"\n  },\n  \"lescc\": {\n    \"command\": \"lescc\",\n    \"detail\": \"⪨\",\n    \"documentation\": \"Less-than closed by curve above slanted equal\"\n  },\n  \"lesdot\": {\n    \"command\": \"lesdot\",\n    \"detail\": \"⩿\",\n    \"documentation\": \"Less-than or slanted equal to with dot inside\"\n  },\n  \"lesdoto\": {\n    \"command\": \"lesdoto\",\n    \"detail\": \"⪁\",\n    \"documentation\": \"Less-than or slanted equal to with dot above\"\n  },\n  \"lesdotor\": {\n    \"command\": \"lesdotor\",\n    \"detail\": \"⪃\",\n    \"documentation\": \"Less-than or slanted equal to with dot above right\"\n  },\n  \"lesges\": {\n    \"command\": \"lesges\",\n    \"detail\": \"⪓\",\n    \"documentation\": \"Less-than above slanted equal above greater-than above slanted equal\"\n  },\n  \"less\": {\n    \"command\": \"less\",\n    \"detail\": \"<\",\n    \"documentation\": \"Less-than sign r:\"\n  },\n  \"lessapprox\": {\n    \"command\": \"lessapprox\",\n    \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less-than or approximate\"\n  },\n  \"lessdot\": {\n    \"command\": \"lessdot\",\n    \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less than, with dot\"\n  },\n  \"lesseqgtr\": {\n    \"command\": \"lesseqgtr\",\n    \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less, equals, greater\"\n  },\n  \"lesseqqgtr\": {\n    \"command\": \"lesseqqgtr\",\n    \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less-than above double-line equal above greater-than\"\n  },\n  \"lessgtr\": {\n    \"command\": \"lessgtr\",\n    \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less, greater\"\n  },\n  \"lesssim\": {\n    \"command\": \"lesssim\",\n    \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n  },\n  \"lfbowtie\": {\n    \"command\": \"lfbowtie\",\n    \"detail\": \"⧑\",\n    \"documentation\": \"Left black bowtie\"\n  },\n  \"lfloor\": {\n    \"command\": \"lfloor\",\n    \"detail\": \"⌊\",\n    \"documentation\": \"Left floor\"\n  },\n  \"lftimes\": {\n    \"command\": \"lftimes\",\n    \"detail\": \"⧔\",\n    \"documentation\": \"Left black times\"\n  },\n  \"lgE\": {\n    \"command\": \"lgE\",\n    \"detail\": \"⪑\",\n    \"documentation\": \"Less-than above greater-than above double-line equal\"\n  },\n  \"lgblkcircle\": {\n    \"command\": \"lgblkcircle\",\n    \"detail\": \"⬤\",\n    \"documentation\": \"Black large circle\"\n  },\n  \"lgblksquare\": {\n    \"command\": \"lgblksquare\",\n    \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n    \"documentation\": \"Black large square\"\n  },\n  \"lgwhtcircle\": {\n    \"command\": \"lgwhtcircle\",\n    \"detail\": \"◯\",\n    \"documentation\": \"Large circle\"\n  },\n  \"lgwhtsquare\": {\n    \"command\": \"lgwhtsquare\",\n    \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n    \"documentation\": \"White large square\"\n  },\n  \"linefeed\": {\n    \"command\": \"linefeed\",\n    \"detail\": \"↴\",\n    \"documentation\": \"Rightwards arrow with corner downwards\"\n  },\n  \"ll\": {\n    \"command\": \"ll\",\n    \"detail\": \"≪\",\n    \"documentation\": \"Much less than, type 2\"\n  },\n  \"llangle\": {\n    \"command\": \"llangle\",\n    \"detail\": \"⦉ (\\\"oz\\\" command)\",\n    \"documentation\": \"Z notation left binding bracket\"\n  },\n  \"llarc\": {\n    \"command\": \"llarc\",\n    \"detail\": \"◟\",\n    \"documentation\": \"Lower left quadrant circular arc\"\n  },\n  \"llblacktriangle\": {\n    \"command\": \"llblacktriangle\",\n    \"detail\": \"◣\",\n    \"documentation\": \"Lower left triangle, filled\"\n  },\n  \"llcorner\": {\n    \"command\": \"llcorner\",\n    \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Lower left corner\"\n  },\n  \"lll\": {\n    \"command\": \"lll\",\n    \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n    \"documentation\": \"Triple less-than\"\n  },\n  \"lllnest\": {\n    \"command\": \"lllnest\",\n    \"detail\": \"⫷\",\n    \"documentation\": \"Triple nested less-than\"\n  },\n  \"llparenthesis\": {\n    \"command\": \"llparenthesis\",\n    \"detail\": \"⦇ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n  },\n  \"lltriangle\": {\n    \"command\": \"lltriangle\",\n    \"detail\": \"◺\",\n    \"documentation\": \"Lower left triangle\"\n  },\n  \"lmoustache\": {\n    \"command\": \"lmoustache\",\n    \"detail\": \"⎰\",\n    \"documentation\": \"? \\\\lmoustache, upper left or lower right curly bracket section\"\n  },\n  \"lnapprox\": {\n    \"command\": \"lnapprox\",\n    \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less-than and not approximate\"\n  },\n  \"lneq\": {\n    \"command\": \"lneq\",\n    \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less-than and single-line not equal to\"\n  },\n  \"lneqq\": {\n    \"command\": \"lneqq\",\n    \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less, not double equals\"\n  },\n  \"lnsim\": {\n    \"command\": \"lnsim\",\n    \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Less, not similar\"\n  },\n  \"longdashv\": {\n    \"command\": \"longdashv\",\n    \"detail\": \"⟞\",\n    \"documentation\": \"Long right tack\"\n  },\n  \"longdivision\": {\n    \"command\": \"longdivision\",\n    \"detail\": \"⟌\",\n    \"documentation\": \"Long division\"\n  },\n  \"longleftarrow\": {\n    \"command\": \"longleftarrow\",\n    \"detail\": \"⟵\",\n    \"documentation\": \"Long leftwards arrow\"\n  },\n  \"longleftrightarrow\": {\n    \"command\": \"longleftrightarrow\",\n    \"detail\": \"⟷\",\n    \"documentation\": \"Long left right arrow\"\n  },\n  \"longleftsquigarrow\": {\n    \"command\": \"longleftsquigarrow\",\n    \"detail\": \"⬳\",\n    \"documentation\": \"Long leftwards squiggle arrow\"\n  },\n  \"longmapsfrom\": {\n    \"command\": \"longmapsfrom\",\n    \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n  },\n  \"longmapsto\": {\n    \"command\": \"longmapsto\",\n    \"detail\": \"⟼\",\n    \"documentation\": \"Long rightwards arrow from bar\"\n  },\n  \"longrightarrow\": {\n    \"command\": \"longrightarrow\",\n    \"detail\": \"⟶\",\n    \"documentation\": \"Long rightwards arrow\"\n  },\n  \"longrightsquigarrow\": {\n    \"command\": \"longrightsquigarrow\",\n    \"detail\": \"⟿\",\n    \"documentation\": \"Long rightwards squiggle arrow\"\n  },\n  \"looparrowleft\": {\n    \"command\": \"looparrowleft\",\n    \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left arrow-looped\"\n  },\n  \"looparrowright\": {\n    \"command\": \"looparrowright\",\n    \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Right arrow-looped\"\n  },\n  \"lowint\": {\n    \"command\": \"lowint\",\n    \"detail\": \"⨜\",\n    \"documentation\": \"Integral with underbar\"\n  },\n  \"lozengeminus\": {\n    \"command\": \"lozengeminus\",\n    \"detail\": \"⟠\",\n    \"documentation\": \"Lozenge divided by horizontal rule\"\n  },\n  \"lparen\": {\n    \"command\": \"lparen\",\n    \"detail\": \"(\",\n    \"documentation\": \"Left parenthesis\"\n  },\n  \"lparenextender\": {\n    \"command\": \"lparenextender\",\n    \"detail\": \"⎜\",\n    \"documentation\": \"Left parenthesis extension\"\n  },\n  \"lparenlend\": {\n    \"command\": \"lparenlend\",\n    \"detail\": \"⎝\",\n    \"documentation\": \"Left parenthesis lower hook\"\n  },\n  \"lparenless\": {\n    \"command\": \"lparenless\",\n    \"detail\": \"⦓\",\n    \"documentation\": \"Left arc less-than bracket\"\n  },\n  \"lparenuend\": {\n    \"command\": \"lparenuend\",\n    \"detail\": \"⎛\",\n    \"documentation\": \"Left parenthesis upper hook\"\n  },\n  \"lrarc\": {\n    \"command\": \"lrarc\",\n    \"detail\": \"◞\",\n    \"documentation\": \"Lower right quadrant circular arc\"\n  },\n  \"lrblacktriangle\": {\n    \"command\": \"lrblacktriangle\",\n    \"detail\": \"◢\",\n    \"documentation\": \"Lower right triangle, filled\"\n  },\n  \"lrcorner\": {\n    \"command\": \"lrcorner\",\n    \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Lower right corner\"\n  },\n  \"lrtriangle\": {\n    \"command\": \"lrtriangle\",\n    \"detail\": \"◿\",\n    \"documentation\": \"Lower right triangle\"\n  },\n  \"lrtriangleeq\": {\n    \"command\": \"lrtriangleeq\",\n    \"detail\": \"⧡\",\n    \"documentation\": \"Increases as\"\n  },\n  \"lsime\": {\n    \"command\": \"lsime\",\n    \"detail\": \"⪍\",\n    \"documentation\": \"Less-than above similar or equal\"\n  },\n  \"lsimg\": {\n    \"command\": \"lsimg\",\n    \"detail\": \"⪏\",\n    \"documentation\": \"Less-than above similar above greater-than\"\n  },\n  \"lsqhook\": {\n    \"command\": \"lsqhook\",\n    \"detail\": \"⫍\",\n    \"documentation\": \"Square left open box operator\"\n  },\n  \"ltcc\": {\n    \"command\": \"ltcc\",\n    \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Less-than closed by curve\"\n  },\n  \"ltcir\": {\n    \"command\": \"ltcir\",\n    \"detail\": \"⩹\",\n    \"documentation\": \"Less-than with circle inside\"\n  },\n  \"ltimes\": {\n    \"command\": \"ltimes\",\n    \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Times sign, left closed\"\n  },\n  \"ltlarr\": {\n    \"command\": \"ltlarr\",\n    \"detail\": \"⥶\",\n    \"documentation\": \"Less-than above leftwards arrow\"\n  },\n  \"ltquest\": {\n    \"command\": \"ltquest\",\n    \"detail\": \"⩻\",\n    \"documentation\": \"Less-than with question mark above\"\n  },\n  \"ltrivb\": {\n    \"command\": \"ltrivb\",\n    \"detail\": \"⧏ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Left triangle beside vertical bar\"\n  },\n  \"lvboxline\": {\n    \"command\": \"lvboxline\",\n    \"detail\": \"⎸\",\n    \"documentation\": \"Left vertical box line\"\n  },\n  \"lvzigzag\": {\n    \"command\": \"lvzigzag\",\n    \"detail\": \"⧘\",\n    \"documentation\": \"Left wiggly fence\"\n  },\n  \"male\": {\n    \"command\": \"male\",\n    \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n  },\n  \"maltese\": {\n    \"command\": \"maltese\",\n    \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Maltese cross\"\n  },\n  \"mapsdown\": {\n    \"command\": \"mapsdown\",\n    \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Maps to, downward\"\n  },\n  \"mapsfrom\": {\n    \"command\": \"mapsfrom\",\n    \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n  },\n  \"mapsto\": {\n    \"command\": \"mapsto\",\n    \"detail\": \"↦\",\n    \"documentation\": \"Maps to, rightward, maplet\"\n  },\n  \"mapsup\": {\n    \"command\": \"mapsup\",\n    \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Maps to, upward\"\n  },\n  \"mathcolon\": {\n    \"command\": \"mathcolon\",\n    \"detail\": \":\",\n    \"documentation\": \"\\\\colon (literal), colon (not ratio)\"\n  },\n  \"mathdollar\": {\n    \"command\": \"mathdollar\",\n    \"detail\": \"$\",\n    \"documentation\": \"\\\\mathdollar, dollar sign\"\n  },\n  \"matheth\": {\n    \"command\": \"matheth\",\n    \"detail\": \"ð (\\\"amssymb arevmath\\\" command)\",\n    \"documentation\": \"Eth\"\n  },\n  \"mathratio\": {\n    \"command\": \"mathratio\",\n    \"detail\": \"∶\",\n    \"documentation\": \"X \\\\colon, ratio\"\n  },\n  \"mathslash\": {\n    \"command\": \"mathslash\",\n    \"detail\": \"/\",\n    \"documentation\": \"\\\\slash, solidus\"\n  },\n  \"mbfA\": {\n    \"command\": \"mbfA\",\n    \"detail\": \"𝐀\",\n    \"documentation\": \"Mathematical bold capital a\"\n  },\n  \"mbfAlpha\": {\n    \"command\": \"mbfAlpha\",\n    \"detail\": \"𝚨\",\n    \"documentation\": \"Mathematical bold capital alpha\"\n  },\n  \"mbfB\": {\n    \"command\": \"mbfB\",\n    \"detail\": \"𝐁\",\n    \"documentation\": \"Mathematical bold capital b\"\n  },\n  \"mbfBeta\": {\n    \"command\": \"mbfBeta\",\n    \"detail\": \"𝚩\",\n    \"documentation\": \"Mathematical bold capital beta\"\n  },\n  \"mbfC\": {\n    \"command\": \"mbfC\",\n    \"detail\": \"𝐂\",\n    \"documentation\": \"Mathematical bold capital c\"\n  },\n  \"mbfChi\": {\n    \"command\": \"mbfChi\",\n    \"detail\": \"𝚾\",\n    \"documentation\": \"Mathematical bold capital chi\"\n  },\n  \"mbfD\": {\n    \"command\": \"mbfD\",\n    \"detail\": \"𝐃\",\n    \"documentation\": \"Mathematical bold capital d\"\n  },\n  \"mbfDelta\": {\n    \"command\": \"mbfDelta\",\n    \"detail\": \"𝚫\",\n    \"documentation\": \"Mathematical bold capital delta\"\n  },\n  \"mbfDigamma\": {\n    \"command\": \"mbfDigamma\",\n    \"detail\": \"𝟊\",\n    \"documentation\": \"Mathematical bold capital digamma\"\n  },\n  \"mbfE\": {\n    \"command\": \"mbfE\",\n    \"detail\": \"𝐄\",\n    \"documentation\": \"Mathematical bold capital e\"\n  },\n  \"mbfEpsilon\": {\n    \"command\": \"mbfEpsilon\",\n    \"detail\": \"𝚬\",\n    \"documentation\": \"Mathematical bold capital epsilon\"\n  },\n  \"mbfEta\": {\n    \"command\": \"mbfEta\",\n    \"detail\": \"𝚮\",\n    \"documentation\": \"Mathematical bold capital eta\"\n  },\n  \"mbfF\": {\n    \"command\": \"mbfF\",\n    \"detail\": \"𝐅\",\n    \"documentation\": \"Mathematical bold capital f\"\n  },\n  \"mbfG\": {\n    \"command\": \"mbfG\",\n    \"detail\": \"𝐆\",\n    \"documentation\": \"Mathematical bold capital g\"\n  },\n  \"mbfGamma\": {\n    \"command\": \"mbfGamma\",\n    \"detail\": \"𝚪\",\n    \"documentation\": \"Mathematical bold capital gamma\"\n  },\n  \"mbfH\": {\n    \"command\": \"mbfH\",\n    \"detail\": \"𝐇\",\n    \"documentation\": \"Mathematical bold capital h\"\n  },\n  \"mbfI\": {\n    \"command\": \"mbfI\",\n    \"detail\": \"𝐈\",\n    \"documentation\": \"Mathematical bold capital i\"\n  },\n  \"mbfIota\": {\n    \"command\": \"mbfIota\",\n    \"detail\": \"𝚰\",\n    \"documentation\": \"Mathematical bold capital iota\"\n  },\n  \"mbfJ\": {\n    \"command\": \"mbfJ\",\n    \"detail\": \"𝐉\",\n    \"documentation\": \"Mathematical bold capital j\"\n  },\n  \"mbfK\": {\n    \"command\": \"mbfK\",\n    \"detail\": \"𝐊\",\n    \"documentation\": \"Mathematical bold capital k\"\n  },\n  \"mbfKappa\": {\n    \"command\": \"mbfKappa\",\n    \"detail\": \"𝚱\",\n    \"documentation\": \"Mathematical bold capital kappa\"\n  },\n  \"mbfL\": {\n    \"command\": \"mbfL\",\n    \"detail\": \"𝐋\",\n    \"documentation\": \"Mathematical bold capital l\"\n  },\n  \"mbfLambda\": {\n    \"command\": \"mbfLambda\",\n    \"detail\": \"𝚲\",\n    \"documentation\": \"Mathematical bold capital lambda\"\n  },\n  \"mbfM\": {\n    \"command\": \"mbfM\",\n    \"detail\": \"𝐌\",\n    \"documentation\": \"Mathematical bold capital m\"\n  },\n  \"mbfMu\": {\n    \"command\": \"mbfMu\",\n    \"detail\": \"𝚳\",\n    \"documentation\": \"Mathematical bold capital mu\"\n  },\n  \"mbfN\": {\n    \"command\": \"mbfN\",\n    \"detail\": \"𝐍\",\n    \"documentation\": \"Mathematical bold capital n\"\n  },\n  \"mbfNu\": {\n    \"command\": \"mbfNu\",\n    \"detail\": \"𝚴\",\n    \"documentation\": \"Mathematical bold capital nu\"\n  },\n  \"mbfO\": {\n    \"command\": \"mbfO\",\n    \"detail\": \"𝐎\",\n    \"documentation\": \"Mathematical bold capital o\"\n  },\n  \"mbfOmega\": {\n    \"command\": \"mbfOmega\",\n    \"detail\": \"𝛀\",\n    \"documentation\": \"Mathematical bold capital omega\"\n  },\n  \"mbfOmicron\": {\n    \"command\": \"mbfOmicron\",\n    \"detail\": \"𝚶\",\n    \"documentation\": \"Mathematical bold capital omicron\"\n  },\n  \"mbfP\": {\n    \"command\": \"mbfP\",\n    \"detail\": \"𝐏\",\n    \"documentation\": \"Mathematical bold capital p\"\n  },\n  \"mbfPhi\": {\n    \"command\": \"mbfPhi\",\n    \"detail\": \"𝚽\",\n    \"documentation\": \"Mathematical bold capital phi\"\n  },\n  \"mbfPi\": {\n    \"command\": \"mbfPi\",\n    \"detail\": \"𝚷\",\n    \"documentation\": \"Mathematical bold capital pi\"\n  },\n  \"mbfPsi\": {\n    \"command\": \"mbfPsi\",\n    \"detail\": \"𝚿\",\n    \"documentation\": \"Mathematical bold capital psi\"\n  },\n  \"mbfQ\": {\n    \"command\": \"mbfQ\",\n    \"detail\": \"𝐐\",\n    \"documentation\": \"Mathematical bold capital q\"\n  },\n  \"mbfR\": {\n    \"command\": \"mbfR\",\n    \"detail\": \"𝐑\",\n    \"documentation\": \"Mathematical bold capital r\"\n  },\n  \"mbfRho\": {\n    \"command\": \"mbfRho\",\n    \"detail\": \"𝚸\",\n    \"documentation\": \"Mathematical bold capital rho\"\n  },\n  \"mbfS\": {\n    \"command\": \"mbfS\",\n    \"detail\": \"𝐒\",\n    \"documentation\": \"Mathematical bold capital s\"\n  },\n  \"mbfSigma\": {\n    \"command\": \"mbfSigma\",\n    \"detail\": \"𝚺\",\n    \"documentation\": \"Mathematical bold capital sigma\"\n  },\n  \"mbfT\": {\n    \"command\": \"mbfT\",\n    \"detail\": \"𝐓\",\n    \"documentation\": \"Mathematical bold capital t\"\n  },\n  \"mbfTau\": {\n    \"command\": \"mbfTau\",\n    \"detail\": \"𝚻\",\n    \"documentation\": \"Mathematical bold capital tau\"\n  },\n  \"mbfTheta\": {\n    \"command\": \"mbfTheta\",\n    \"detail\": \"𝚯\",\n    \"documentation\": \"Mathematical bold capital theta\"\n  },\n  \"mbfU\": {\n    \"command\": \"mbfU\",\n    \"detail\": \"𝐔\",\n    \"documentation\": \"Mathematical bold capital u\"\n  },\n  \"mbfUpsilon\": {\n    \"command\": \"mbfUpsilon\",\n    \"detail\": \"𝚼\",\n    \"documentation\": \"Mathematical bold capital upsilon\"\n  },\n  \"mbfV\": {\n    \"command\": \"mbfV\",\n    \"detail\": \"𝐕\",\n    \"documentation\": \"Mathematical bold capital v\"\n  },\n  \"mbfW\": {\n    \"command\": \"mbfW\",\n    \"detail\": \"𝐖\",\n    \"documentation\": \"Mathematical bold capital w\"\n  },\n  \"mbfX\": {\n    \"command\": \"mbfX\",\n    \"detail\": \"𝐗\",\n    \"documentation\": \"Mathematical bold capital x\"\n  },\n  \"mbfXi\": {\n    \"command\": \"mbfXi\",\n    \"detail\": \"𝚵\",\n    \"documentation\": \"Mathematical bold capital xi\"\n  },\n  \"mbfY\": {\n    \"command\": \"mbfY\",\n    \"detail\": \"𝐘\",\n    \"documentation\": \"Mathematical bold capital y\"\n  },\n  \"mbfZ\": {\n    \"command\": \"mbfZ\",\n    \"detail\": \"𝐙\",\n    \"documentation\": \"Mathematical bold capital z\"\n  },\n  \"mbfZeta\": {\n    \"command\": \"mbfZeta\",\n    \"detail\": \"𝚭\",\n    \"documentation\": \"Mathematical bold capital zeta\"\n  },\n  \"mbfa\": {\n    \"command\": \"mbfa\",\n    \"detail\": \"𝐚\",\n    \"documentation\": \"Mathematical bold small a\"\n  },\n  \"mbfalpha\": {\n    \"command\": \"mbfalpha\",\n    \"detail\": \"𝛂 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small alpha\"\n  },\n  \"mbfb\": {\n    \"command\": \"mbfb\",\n    \"detail\": \"𝐛\",\n    \"documentation\": \"Mathematical bold small b\"\n  },\n  \"mbfbeta\": {\n    \"command\": \"mbfbeta\",\n    \"detail\": \"𝛃 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small beta\"\n  },\n  \"mbfc\": {\n    \"command\": \"mbfc\",\n    \"detail\": \"𝐜\",\n    \"documentation\": \"Mathematical bold small c\"\n  },\n  \"mbfchi\": {\n    \"command\": \"mbfchi\",\n    \"detail\": \"𝛘 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small chi\"\n  },\n  \"mbfd\": {\n    \"command\": \"mbfd\",\n    \"detail\": \"𝐝\",\n    \"documentation\": \"Mathematical bold small d\"\n  },\n  \"mbfdelta\": {\n    \"command\": \"mbfdelta\",\n    \"detail\": \"𝛅 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small delta\"\n  },\n  \"mbfdigamma\": {\n    \"command\": \"mbfdigamma\",\n    \"detail\": \"𝟋\",\n    \"documentation\": \"Mathematical bold small digamma\"\n  },\n  \"mbfe\": {\n    \"command\": \"mbfe\",\n    \"detail\": \"𝐞\",\n    \"documentation\": \"Mathematical bold small e\"\n  },\n  \"mbfepsilon\": {\n    \"command\": \"mbfepsilon\",\n    \"detail\": \"𝛆 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small epsilon\"\n  },\n  \"mbfeta\": {\n    \"command\": \"mbfeta\",\n    \"detail\": \"𝛈 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small eta\"\n  },\n  \"mbff\": {\n    \"command\": \"mbff\",\n    \"detail\": \"𝐟\",\n    \"documentation\": \"Mathematical bold small f\"\n  },\n  \"mbffrakA\": {\n    \"command\": \"mbffrakA\",\n    \"detail\": \"𝕬\",\n    \"documentation\": \"Mathematical bold fraktur capital a\"\n  },\n  \"mbffrakB\": {\n    \"command\": \"mbffrakB\",\n    \"detail\": \"𝕭\",\n    \"documentation\": \"Mathematical bold fraktur capital b\"\n  },\n  \"mbffrakC\": {\n    \"command\": \"mbffrakC\",\n    \"detail\": \"𝕮\",\n    \"documentation\": \"Mathematical bold fraktur capital c\"\n  },\n  \"mbffrakD\": {\n    \"command\": \"mbffrakD\",\n    \"detail\": \"𝕯\",\n    \"documentation\": \"Mathematical bold fraktur capital d\"\n  },\n  \"mbffrakE\": {\n    \"command\": \"mbffrakE\",\n    \"detail\": \"𝕰\",\n    \"documentation\": \"Mathematical bold fraktur capital e\"\n  },\n  \"mbffrakF\": {\n    \"command\": \"mbffrakF\",\n    \"detail\": \"𝕱\",\n    \"documentation\": \"Mathematical bold fraktur capital f\"\n  },\n  \"mbffrakG\": {\n    \"command\": \"mbffrakG\",\n    \"detail\": \"𝕲\",\n    \"documentation\": \"Mathematical bold fraktur capital g\"\n  },\n  \"mbffrakH\": {\n    \"command\": \"mbffrakH\",\n    \"detail\": \"𝕳\",\n    \"documentation\": \"Mathematical bold fraktur capital h\"\n  },\n  \"mbffrakI\": {\n    \"command\": \"mbffrakI\",\n    \"detail\": \"𝕴\",\n    \"documentation\": \"Mathematical bold fraktur capital i\"\n  },\n  \"mbffrakJ\": {\n    \"command\": \"mbffrakJ\",\n    \"detail\": \"𝕵\",\n    \"documentation\": \"Mathematical bold fraktur capital j\"\n  },\n  \"mbffrakK\": {\n    \"command\": \"mbffrakK\",\n    \"detail\": \"𝕶\",\n    \"documentation\": \"Mathematical bold fraktur capital k\"\n  },\n  \"mbffrakL\": {\n    \"command\": \"mbffrakL\",\n    \"detail\": \"𝕷\",\n    \"documentation\": \"Mathematical bold fraktur capital l\"\n  },\n  \"mbffrakM\": {\n    \"command\": \"mbffrakM\",\n    \"detail\": \"𝕸\",\n    \"documentation\": \"Mathematical bold fraktur capital m\"\n  },\n  \"mbffrakN\": {\n    \"command\": \"mbffrakN\",\n    \"detail\": \"𝕹\",\n    \"documentation\": \"Mathematical bold fraktur capital n\"\n  },\n  \"mbffrakO\": {\n    \"command\": \"mbffrakO\",\n    \"detail\": \"𝕺\",\n    \"documentation\": \"Mathematical bold fraktur capital o\"\n  },\n  \"mbffrakP\": {\n    \"command\": \"mbffrakP\",\n    \"detail\": \"𝕻\",\n    \"documentation\": \"Mathematical bold fraktur capital p\"\n  },\n  \"mbffrakQ\": {\n    \"command\": \"mbffrakQ\",\n    \"detail\": \"𝕼\",\n    \"documentation\": \"Mathematical bold fraktur capital q\"\n  },\n  \"mbffrakR\": {\n    \"command\": \"mbffrakR\",\n    \"detail\": \"𝕽\",\n    \"documentation\": \"Mathematical bold fraktur capital r\"\n  },\n  \"mbffrakS\": {\n    \"command\": \"mbffrakS\",\n    \"detail\": \"𝕾\",\n    \"documentation\": \"Mathematical bold fraktur capital s\"\n  },\n  \"mbffrakT\": {\n    \"command\": \"mbffrakT\",\n    \"detail\": \"𝕿\",\n    \"documentation\": \"Mathematical bold fraktur capital t\"\n  },\n  \"mbffrakU\": {\n    \"command\": \"mbffrakU\",\n    \"detail\": \"𝖀\",\n    \"documentation\": \"Mathematical bold fraktur capital u\"\n  },\n  \"mbffrakV\": {\n    \"command\": \"mbffrakV\",\n    \"detail\": \"𝖁\",\n    \"documentation\": \"Mathematical bold fraktur capital v\"\n  },\n  \"mbffrakW\": {\n    \"command\": \"mbffrakW\",\n    \"detail\": \"𝖂\",\n    \"documentation\": \"Mathematical bold fraktur capital w\"\n  },\n  \"mbffrakX\": {\n    \"command\": \"mbffrakX\",\n    \"detail\": \"𝖃\",\n    \"documentation\": \"Mathematical bold fraktur capital x\"\n  },\n  \"mbffrakY\": {\n    \"command\": \"mbffrakY\",\n    \"detail\": \"𝖄\",\n    \"documentation\": \"Mathematical bold fraktur capital y\"\n  },\n  \"mbffrakZ\": {\n    \"command\": \"mbffrakZ\",\n    \"detail\": \"𝖅\",\n    \"documentation\": \"Mathematical bold fraktur capital z\"\n  },\n  \"mbffraka\": {\n    \"command\": \"mbffraka\",\n    \"detail\": \"𝖆\",\n    \"documentation\": \"Mathematical bold fraktur small a\"\n  },\n  \"mbffrakb\": {\n    \"command\": \"mbffrakb\",\n    \"detail\": \"𝖇\",\n    \"documentation\": \"Mathematical bold fraktur small b\"\n  },\n  \"mbffrakc\": {\n    \"command\": \"mbffrakc\",\n    \"detail\": \"𝖈\",\n    \"documentation\": \"Mathematical bold fraktur small c\"\n  },\n  \"mbffrakd\": {\n    \"command\": \"mbffrakd\",\n    \"detail\": \"𝖉\",\n    \"documentation\": \"Mathematical bold fraktur small d\"\n  },\n  \"mbffrake\": {\n    \"command\": \"mbffrake\",\n    \"detail\": \"𝖊\",\n    \"documentation\": \"Mathematical bold fraktur small e\"\n  },\n  \"mbffrakf\": {\n    \"command\": \"mbffrakf\",\n    \"detail\": \"𝖋\",\n    \"documentation\": \"Mathematical bold fraktur small f\"\n  },\n  \"mbffrakg\": {\n    \"command\": \"mbffrakg\",\n    \"detail\": \"𝖌\",\n    \"documentation\": \"Mathematical bold fraktur small g\"\n  },\n  \"mbffrakh\": {\n    \"command\": \"mbffrakh\",\n    \"detail\": \"𝖍\",\n    \"documentation\": \"Mathematical bold fraktur small h\"\n  },\n  \"mbffraki\": {\n    \"command\": \"mbffraki\",\n    \"detail\": \"𝖎\",\n    \"documentation\": \"Mathematical bold fraktur small i\"\n  },\n  \"mbffrakj\": {\n    \"command\": \"mbffrakj\",\n    \"detail\": \"𝖏\",\n    \"documentation\": \"Mathematical bold fraktur small j\"\n  },\n  \"mbffrakk\": {\n    \"command\": \"mbffrakk\",\n    \"detail\": \"𝖐\",\n    \"documentation\": \"Mathematical bold fraktur small k\"\n  },\n  \"mbffrakl\": {\n    \"command\": \"mbffrakl\",\n    \"detail\": \"𝖑\",\n    \"documentation\": \"Mathematical bold fraktur small l\"\n  },\n  \"mbffrakm\": {\n    \"command\": \"mbffrakm\",\n    \"detail\": \"𝖒\",\n    \"documentation\": \"Mathematical bold fraktur small m\"\n  },\n  \"mbffrakn\": {\n    \"command\": \"mbffrakn\",\n    \"detail\": \"𝖓\",\n    \"documentation\": \"Mathematical bold fraktur small n\"\n  },\n  \"mbffrako\": {\n    \"command\": \"mbffrako\",\n    \"detail\": \"𝖔\",\n    \"documentation\": \"Mathematical bold fraktur small o\"\n  },\n  \"mbffrakp\": {\n    \"command\": \"mbffrakp\",\n    \"detail\": \"𝖕\",\n    \"documentation\": \"Mathematical bold fraktur small p\"\n  },\n  \"mbffrakq\": {\n    \"command\": \"mbffrakq\",\n    \"detail\": \"𝖖\",\n    \"documentation\": \"Mathematical bold fraktur small q\"\n  },\n  \"mbffrakr\": {\n    \"command\": \"mbffrakr\",\n    \"detail\": \"𝖗\",\n    \"documentation\": \"Mathematical bold fraktur small r\"\n  },\n  \"mbffraks\": {\n    \"command\": \"mbffraks\",\n    \"detail\": \"𝖘\",\n    \"documentation\": \"Mathematical bold fraktur small s\"\n  },\n  \"mbffrakt\": {\n    \"command\": \"mbffrakt\",\n    \"detail\": \"𝖙\",\n    \"documentation\": \"Mathematical bold fraktur small t\"\n  },\n  \"mbffraku\": {\n    \"command\": \"mbffraku\",\n    \"detail\": \"𝖚\",\n    \"documentation\": \"Mathematical bold fraktur small u\"\n  },\n  \"mbffrakv\": {\n    \"command\": \"mbffrakv\",\n    \"detail\": \"𝖛\",\n    \"documentation\": \"Mathematical bold fraktur small v\"\n  },\n  \"mbffrakw\": {\n    \"command\": \"mbffrakw\",\n    \"detail\": \"𝖜\",\n    \"documentation\": \"Mathematical bold fraktur small w\"\n  },\n  \"mbffrakx\": {\n    \"command\": \"mbffrakx\",\n    \"detail\": \"𝖝\",\n    \"documentation\": \"Mathematical bold fraktur small x\"\n  },\n  \"mbffraky\": {\n    \"command\": \"mbffraky\",\n    \"detail\": \"𝖞\",\n    \"documentation\": \"Mathematical bold fraktur small y\"\n  },\n  \"mbffrakz\": {\n    \"command\": \"mbffrakz\",\n    \"detail\": \"𝖟\",\n    \"documentation\": \"Mathematical bold fraktur small z\"\n  },\n  \"mbfg\": {\n    \"command\": \"mbfg\",\n    \"detail\": \"𝐠\",\n    \"documentation\": \"Mathematical bold small g\"\n  },\n  \"mbfgamma\": {\n    \"command\": \"mbfgamma\",\n    \"detail\": \"𝛄 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small gamma\"\n  },\n  \"mbfh\": {\n    \"command\": \"mbfh\",\n    \"detail\": \"𝐡\",\n    \"documentation\": \"Mathematical bold small h\"\n  },\n  \"mbfi\": {\n    \"command\": \"mbfi\",\n    \"detail\": \"𝐢\",\n    \"documentation\": \"Mathematical bold small i\"\n  },\n  \"mbfiota\": {\n    \"command\": \"mbfiota\",\n    \"detail\": \"𝛊 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small iota\"\n  },\n  \"mbfitA\": {\n    \"command\": \"mbfitA\",\n    \"detail\": \"𝑨 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{a} (fixmath), mathematical bold italic capital a\"\n  },\n  \"mbfitAlpha\": {\n    \"command\": \"mbfitAlpha\",\n    \"detail\": \"𝜜\",\n    \"documentation\": \"Mathematical bold italic capital alpha\"\n  },\n  \"mbfitB\": {\n    \"command\": \"mbfitB\",\n    \"detail\": \"𝑩 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{b} (fixmath), mathematical bold italic capital b\"\n  },\n  \"mbfitBeta\": {\n    \"command\": \"mbfitBeta\",\n    \"detail\": \"𝜝\",\n    \"documentation\": \"Mathematical bold italic capital beta\"\n  },\n  \"mbfitC\": {\n    \"command\": \"mbfitC\",\n    \"detail\": \"𝑪 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{c} (fixmath), mathematical bold italic capital c\"\n  },\n  \"mbfitChi\": {\n    \"command\": \"mbfitChi\",\n    \"detail\": \"𝜲\",\n    \"documentation\": \"Mathematical bold italic capital chi\"\n  },\n  \"mbfitD\": {\n    \"command\": \"mbfitD\",\n    \"detail\": \"𝑫 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{d} (fixmath), mathematical bold italic capital d\"\n  },\n  \"mbfitDelta\": {\n    \"command\": \"mbfitDelta\",\n    \"detail\": \"𝜟 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic capital delta\"\n  },\n  \"mbfitE\": {\n    \"command\": \"mbfitE\",\n    \"detail\": \"𝑬 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{e} (fixmath), mathematical bold italic capital e\"\n  },\n  \"mbfitEpsilon\": {\n    \"command\": \"mbfitEpsilon\",\n    \"detail\": \"𝜠\",\n    \"documentation\": \"Mathematical bold italic capital epsilon\"\n  },\n  \"mbfitEta\": {\n    \"command\": \"mbfitEta\",\n    \"detail\": \"𝜢\",\n    \"documentation\": \"Mathematical bold italic capital eta\"\n  },\n  \"mbfitF\": {\n    \"command\": \"mbfitF\",\n    \"detail\": \"𝑭 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{f} (fixmath), mathematical bold italic capital f\"\n  },\n  \"mbfitG\": {\n    \"command\": \"mbfitG\",\n    \"detail\": \"𝑮 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{g} (fixmath), mathematical bold italic capital g\"\n  },\n  \"mbfitGamma\": {\n    \"command\": \"mbfitGamma\",\n    \"detail\": \"𝜞 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic capital gamma\"\n  },\n  \"mbfitH\": {\n    \"command\": \"mbfitH\",\n    \"detail\": \"𝑯 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{h} (fixmath), mathematical bold italic capital h\"\n  },\n  \"mbfitI\": {\n    \"command\": \"mbfitI\",\n    \"detail\": \"𝑰 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{i} (fixmath), mathematical bold italic capital i\"\n  },\n  \"mbfitIota\": {\n    \"command\": \"mbfitIota\",\n    \"detail\": \"𝜤\",\n    \"documentation\": \"Mathematical bold italic capital iota\"\n  },\n  \"mbfitJ\": {\n    \"command\": \"mbfitJ\",\n    \"detail\": \"𝑱 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{j} (fixmath), mathematical bold italic capital j\"\n  },\n  \"mbfitK\": {\n    \"command\": \"mbfitK\",\n    \"detail\": \"𝑲 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{k} (fixmath), mathematical bold italic capital k\"\n  },\n  \"mbfitKappa\": {\n    \"command\": \"mbfitKappa\",\n    \"detail\": \"𝜥\",\n    \"documentation\": \"Mathematical bold italic capital kappa\"\n  },\n  \"mbfitL\": {\n    \"command\": \"mbfitL\",\n    \"detail\": \"𝑳 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{l} (fixmath), mathematical bold italic capital l\"\n  },\n  \"mbfitLambda\": {\n    \"command\": \"mbfitLambda\",\n    \"detail\": \"𝜦 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic capital lambda\"\n  },\n  \"mbfitM\": {\n    \"command\": \"mbfitM\",\n    \"detail\": \"𝑴 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{m} (fixmath), mathematical bold italic capital m\"\n  },\n  \"mbfitMu\": {\n    \"command\": \"mbfitMu\",\n    \"detail\": \"𝜧\",\n    \"documentation\": \"Mathematical bold italic capital mu\"\n  },\n  \"mbfitN\": {\n    \"command\": \"mbfitN\",\n    \"detail\": \"𝑵 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{n} (fixmath), mathematical bold italic capital n\"\n  },\n  \"mbfitNu\": {\n    \"command\": \"mbfitNu\",\n    \"detail\": \"𝜨\",\n    \"documentation\": \"Mathematical bold italic capital nu\"\n  },\n  \"mbfitO\": {\n    \"command\": \"mbfitO\",\n    \"detail\": \"𝑶 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{o} (fixmath), mathematical bold italic capital o\"\n  },\n  \"mbfitOmega\": {\n    \"command\": \"mbfitOmega\",\n    \"detail\": \"𝜴 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic capital omega\"\n  },\n  \"mbfitOmicron\": {\n    \"command\": \"mbfitOmicron\",\n    \"detail\": \"𝜪\",\n    \"documentation\": \"Mathematical bold italic capital omicron\"\n  },\n  \"mbfitP\": {\n    \"command\": \"mbfitP\",\n    \"detail\": \"𝑷 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{p} (fixmath), mathematical bold italic capital p\"\n  },\n  \"mbfitPhi\": {\n    \"command\": \"mbfitPhi\",\n    \"detail\": \"𝜱 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic capital phi\"\n  },\n  \"mbfitPi\": {\n    \"command\": \"mbfitPi\",\n    \"detail\": \"𝜫 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic capital pi\"\n  },\n  \"mbfitPsi\": {\n    \"command\": \"mbfitPsi\",\n    \"detail\": \"𝜳 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic capital psi\"\n  },\n  \"mbfitQ\": {\n    \"command\": \"mbfitQ\",\n    \"detail\": \"𝑸 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{q} (fixmath), mathematical bold italic capital q\"\n  },\n  \"mbfitR\": {\n    \"command\": \"mbfitR\",\n    \"detail\": \"𝑹 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{r} (fixmath), mathematical bold italic capital r\"\n  },\n  \"mbfitRho\": {\n    \"command\": \"mbfitRho\",\n    \"detail\": \"𝜬\",\n    \"documentation\": \"Mathematical bold italic capital rho\"\n  },\n  \"mbfitS\": {\n    \"command\": \"mbfitS\",\n    \"detail\": \"𝑺 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{s} (fixmath), mathematical bold italic capital s\"\n  },\n  \"mbfitSigma\": {\n    \"command\": \"mbfitSigma\",\n    \"detail\": \"𝜮 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic capital sigma\"\n  },\n  \"mbfitT\": {\n    \"command\": \"mbfitT\",\n    \"detail\": \"𝑻 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{t} (fixmath), mathematical bold italic capital t\"\n  },\n  \"mbfitTau\": {\n    \"command\": \"mbfitTau\",\n    \"detail\": \"𝜯\",\n    \"documentation\": \"Mathematical bold italic capital tau\"\n  },\n  \"mbfitTheta\": {\n    \"command\": \"mbfitTheta\",\n    \"detail\": \"𝜣 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic capital theta\"\n  },\n  \"mbfitU\": {\n    \"command\": \"mbfitU\",\n    \"detail\": \"𝑼 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{u} (fixmath), mathematical bold italic capital u\"\n  },\n  \"mbfitUpsilon\": {\n    \"command\": \"mbfitUpsilon\",\n    \"detail\": \"𝜰 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic capital upsilon\"\n  },\n  \"mbfitV\": {\n    \"command\": \"mbfitV\",\n    \"detail\": \"𝑽 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{v} (fixmath), mathematical bold italic capital v\"\n  },\n  \"mbfitW\": {\n    \"command\": \"mbfitW\",\n    \"detail\": \"𝑾 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{w} (fixmath), mathematical bold italic capital w\"\n  },\n  \"mbfitX\": {\n    \"command\": \"mbfitX\",\n    \"detail\": \"𝑿 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{x} (fixmath), mathematical bold italic capital x\"\n  },\n  \"mbfitXi\": {\n    \"command\": \"mbfitXi\",\n    \"detail\": \"𝜩 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic capital xi\"\n  },\n  \"mbfitY\": {\n    \"command\": \"mbfitY\",\n    \"detail\": \"𝒀 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{y} (fixmath), mathematical bold italic capital y\"\n  },\n  \"mbfitZ\": {\n    \"command\": \"mbfitZ\",\n    \"detail\": \"𝒁 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{z} (fixmath), mathematical bold italic capital z\"\n  },\n  \"mbfitZeta\": {\n    \"command\": \"mbfitZeta\",\n    \"detail\": \"𝜡\",\n    \"documentation\": \"Mathematical bold italic capital zeta\"\n  },\n  \"mbfita\": {\n    \"command\": \"mbfita\",\n    \"detail\": \"𝒂 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{a} (fixmath), mathematical bold italic small a\"\n  },\n  \"mbfitalpha\": {\n    \"command\": \"mbfitalpha\",\n    \"detail\": \"𝜶 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\alpha} (fixmath), mathematical bold italic small alpha\"\n  },\n  \"mbfitb\": {\n    \"command\": \"mbfitb\",\n    \"detail\": \"𝒃 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{b} (fixmath), mathematical bold italic small b\"\n  },\n  \"mbfitbeta\": {\n    \"command\": \"mbfitbeta\",\n    \"detail\": \"𝜷 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\beta} (fixmath), mathematical bold italic small beta\"\n  },\n  \"mbfitc\": {\n    \"command\": \"mbfitc\",\n    \"detail\": \"𝒄 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{c} (fixmath), mathematical bold italic small c\"\n  },\n  \"mbfitchi\": {\n    \"command\": \"mbfitchi\",\n    \"detail\": \"𝝌 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\chi} (fixmath), mathematical bold italic small chi\"\n  },\n  \"mbfitd\": {\n    \"command\": \"mbfitd\",\n    \"detail\": \"𝒅 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{d} (fixmath), mathematical bold italic small d\"\n  },\n  \"mbfitdelta\": {\n    \"command\": \"mbfitdelta\",\n    \"detail\": \"𝜹 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic small delta\"\n  },\n  \"mbfite\": {\n    \"command\": \"mbfite\",\n    \"detail\": \"𝒆 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{e} (fixmath), mathematical bold italic small e\"\n  },\n  \"mbfitepsilon\": {\n    \"command\": \"mbfitepsilon\",\n    \"detail\": \"𝜺 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\varepsilon} (fixmath), mathematical bold italic small epsilon\"\n  },\n  \"mbfiteta\": {\n    \"command\": \"mbfiteta\",\n    \"detail\": \"𝜼 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\eta} (fixmath), mathematical bold italic small eta\"\n  },\n  \"mbfitf\": {\n    \"command\": \"mbfitf\",\n    \"detail\": \"𝒇 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{f} (fixmath), mathematical bold italic small f\"\n  },\n  \"mbfitg\": {\n    \"command\": \"mbfitg\",\n    \"detail\": \"𝒈 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{g} (fixmath), mathematical bold italic small g\"\n  },\n  \"mbfitgamma\": {\n    \"command\": \"mbfitgamma\",\n    \"detail\": \"𝜸 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic small gamma\"\n  },\n  \"mbfith\": {\n    \"command\": \"mbfith\",\n    \"detail\": \"𝒉 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{h} (fixmath), mathematical bold italic small h\"\n  },\n  \"mbfiti\": {\n    \"command\": \"mbfiti\",\n    \"detail\": \"𝒊 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{i} (fixmath), mathematical bold italic small i\"\n  },\n  \"mbfitiota\": {\n    \"command\": \"mbfitiota\",\n    \"detail\": \"𝜾 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\iota} (fixmath), mathematical bold italic small iota\"\n  },\n  \"mbfitj\": {\n    \"command\": \"mbfitj\",\n    \"detail\": \"𝒋 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{j} (fixmath), mathematical bold italic small j\"\n  },\n  \"mbfitk\": {\n    \"command\": \"mbfitk\",\n    \"detail\": \"𝒌 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{k} (fixmath), mathematical bold italic small k\"\n  },\n  \"mbfitkappa\": {\n    \"command\": \"mbfitkappa\",\n    \"detail\": \"𝜿 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\kappa} (fixmath), mathematical bold italic small kappa\"\n  },\n  \"mbfitl\": {\n    \"command\": \"mbfitl\",\n    \"detail\": \"𝒍 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{l} (fixmath), mathematical bold italic small l\"\n  },\n  \"mbfitlambda\": {\n    \"command\": \"mbfitlambda\",\n    \"detail\": \"𝝀 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic small lambda\"\n  },\n  \"mbfitm\": {\n    \"command\": \"mbfitm\",\n    \"detail\": \"𝒎 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{m} (fixmath), mathematical bold italic small m\"\n  },\n  \"mbfitmu\": {\n    \"command\": \"mbfitmu\",\n    \"detail\": \"𝝁 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\mu} (fixmath), mathematical bold italic small mu\"\n  },\n  \"mbfitn\": {\n    \"command\": \"mbfitn\",\n    \"detail\": \"𝒏 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{n} (fixmath), mathematical bold italic small n\"\n  },\n  \"mbfitnabla\": {\n    \"command\": \"mbfitnabla\",\n    \"detail\": \"𝜵\",\n    \"documentation\": \"Mathematical bold italic nabla\"\n  },\n  \"mbfitnu\": {\n    \"command\": \"mbfitnu\",\n    \"detail\": \"𝝂 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\nu} (fixmath), mathematical bold italic small nu\"\n  },\n  \"mbfito\": {\n    \"command\": \"mbfito\",\n    \"detail\": \"𝒐 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{o} (fixmath), mathematical bold italic small o\"\n  },\n  \"mbfitomega\": {\n    \"command\": \"mbfitomega\",\n    \"detail\": \"𝝎 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic small omega\"\n  },\n  \"mbfitomicron\": {\n    \"command\": \"mbfitomicron\",\n    \"detail\": \"𝝄\",\n    \"documentation\": \"Mathematical bold italic small omicron\"\n  },\n  \"mbfitp\": {\n    \"command\": \"mbfitp\",\n    \"detail\": \"𝒑 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{p} (fixmath), mathematical bold italic small p\"\n  },\n  \"mbfitpartial\": {\n    \"command\": \"mbfitpartial\",\n    \"detail\": \"𝝏\",\n    \"documentation\": \"Mathematical bold italic partial differential\"\n  },\n  \"mbfitphi\": {\n    \"command\": \"mbfitphi\",\n    \"detail\": \"𝝋 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\varphi} (fixmath), mathematical bold italic small phi\"\n  },\n  \"mbfitpi\": {\n    \"command\": \"mbfitpi\",\n    \"detail\": \"𝝅 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic small pi\"\n  },\n  \"mbfitpsi\": {\n    \"command\": \"mbfitpsi\",\n    \"detail\": \"𝝍 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic small psi\"\n  },\n  \"mbfitq\": {\n    \"command\": \"mbfitq\",\n    \"detail\": \"𝒒 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{q} (fixmath), mathematical bold italic small q\"\n  },\n  \"mbfitr\": {\n    \"command\": \"mbfitr\",\n    \"detail\": \"𝒓 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{r} (fixmath), mathematical bold italic small r\"\n  },\n  \"mbfitrho\": {\n    \"command\": \"mbfitrho\",\n    \"detail\": \"𝝆 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\rho} (fixmath), mathematical bold italic small rho\"\n  },\n  \"mbfits\": {\n    \"command\": \"mbfits\",\n    \"detail\": \"𝒔 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{s} (fixmath), mathematical bold italic small s\"\n  },\n  \"mbfitsansA\": {\n    \"command\": \"mbfitsansA\",\n    \"detail\": \"𝘼 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital a\"\n  },\n  \"mbfitsansAlpha\": {\n    \"command\": \"mbfitsansAlpha\",\n    \"detail\": \"𝞐\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital alpha\"\n  },\n  \"mbfitsansB\": {\n    \"command\": \"mbfitsansB\",\n    \"detail\": \"𝘽 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital b\"\n  },\n  \"mbfitsansBeta\": {\n    \"command\": \"mbfitsansBeta\",\n    \"detail\": \"𝞑\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital beta\"\n  },\n  \"mbfitsansC\": {\n    \"command\": \"mbfitsansC\",\n    \"detail\": \"𝘾 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital c\"\n  },\n  \"mbfitsansChi\": {\n    \"command\": \"mbfitsansChi\",\n    \"detail\": \"𝞦\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital chi\"\n  },\n  \"mbfitsansD\": {\n    \"command\": \"mbfitsansD\",\n    \"detail\": \"𝘿 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital d\"\n  },\n  \"mbfitsansDelta\": {\n    \"command\": \"mbfitsansDelta\",\n    \"detail\": \"𝞓 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital delta\"\n  },\n  \"mbfitsansE\": {\n    \"command\": \"mbfitsansE\",\n    \"detail\": \"𝙀 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital e\"\n  },\n  \"mbfitsansEpsilon\": {\n    \"command\": \"mbfitsansEpsilon\",\n    \"detail\": \"𝞔\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital epsilon\"\n  },\n  \"mbfitsansEta\": {\n    \"command\": \"mbfitsansEta\",\n    \"detail\": \"𝞖\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital eta\"\n  },\n  \"mbfitsansF\": {\n    \"command\": \"mbfitsansF\",\n    \"detail\": \"𝙁 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital f\"\n  },\n  \"mbfitsansG\": {\n    \"command\": \"mbfitsansG\",\n    \"detail\": \"𝙂 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital g\"\n  },\n  \"mbfitsansGamma\": {\n    \"command\": \"mbfitsansGamma\",\n    \"detail\": \"𝞒 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital gamma\"\n  },\n  \"mbfitsansH\": {\n    \"command\": \"mbfitsansH\",\n    \"detail\": \"𝙃 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital h\"\n  },\n  \"mbfitsansI\": {\n    \"command\": \"mbfitsansI\",\n    \"detail\": \"𝙄 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital i\"\n  },\n  \"mbfitsansIota\": {\n    \"command\": \"mbfitsansIota\",\n    \"detail\": \"𝞘\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital iota\"\n  },\n  \"mbfitsansJ\": {\n    \"command\": \"mbfitsansJ\",\n    \"detail\": \"𝙅 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital j\"\n  },\n  \"mbfitsansK\": {\n    \"command\": \"mbfitsansK\",\n    \"detail\": \"𝙆 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital k\"\n  },\n  \"mbfitsansKappa\": {\n    \"command\": \"mbfitsansKappa\",\n    \"detail\": \"𝞙\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital kappa\"\n  },\n  \"mbfitsansL\": {\n    \"command\": \"mbfitsansL\",\n    \"detail\": \"𝙇 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital l\"\n  },\n  \"mbfitsansLambda\": {\n    \"command\": \"mbfitsansLambda\",\n    \"detail\": \"𝞚 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital lambda\"\n  },\n  \"mbfitsansM\": {\n    \"command\": \"mbfitsansM\",\n    \"detail\": \"𝙈 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital m\"\n  },\n  \"mbfitsansMu\": {\n    \"command\": \"mbfitsansMu\",\n    \"detail\": \"𝞛\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital mu\"\n  },\n  \"mbfitsansN\": {\n    \"command\": \"mbfitsansN\",\n    \"detail\": \"𝙉 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital n\"\n  },\n  \"mbfitsansNu\": {\n    \"command\": \"mbfitsansNu\",\n    \"detail\": \"𝞜\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital nu\"\n  },\n  \"mbfitsansO\": {\n    \"command\": \"mbfitsansO\",\n    \"detail\": \"𝙊 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital o\"\n  },\n  \"mbfitsansOmega\": {\n    \"command\": \"mbfitsansOmega\",\n    \"detail\": \"𝞨 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital omega\"\n  },\n  \"mbfitsansOmicron\": {\n    \"command\": \"mbfitsansOmicron\",\n    \"detail\": \"𝞞\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital omicron\"\n  },\n  \"mbfitsansP\": {\n    \"command\": \"mbfitsansP\",\n    \"detail\": \"𝙋 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital p\"\n  },\n  \"mbfitsansPhi\": {\n    \"command\": \"mbfitsansPhi\",\n    \"detail\": \"𝞥 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital phi\"\n  },\n  \"mbfitsansPi\": {\n    \"command\": \"mbfitsansPi\",\n    \"detail\": \"𝞟 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital pi\"\n  },\n  \"mbfitsansPsi\": {\n    \"command\": \"mbfitsansPsi\",\n    \"detail\": \"𝞧 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital psi\"\n  },\n  \"mbfitsansQ\": {\n    \"command\": \"mbfitsansQ\",\n    \"detail\": \"𝙌 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital q\"\n  },\n  \"mbfitsansR\": {\n    \"command\": \"mbfitsansR\",\n    \"detail\": \"𝙍 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital r\"\n  },\n  \"mbfitsansRho\": {\n    \"command\": \"mbfitsansRho\",\n    \"detail\": \"𝞠\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital rho\"\n  },\n  \"mbfitsansS\": {\n    \"command\": \"mbfitsansS\",\n    \"detail\": \"𝙎 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital s\"\n  },\n  \"mbfitsansSigma\": {\n    \"command\": \"mbfitsansSigma\",\n    \"detail\": \"𝞢 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital sigma\"\n  },\n  \"mbfitsansT\": {\n    \"command\": \"mbfitsansT\",\n    \"detail\": \"𝙏 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital t\"\n  },\n  \"mbfitsansTau\": {\n    \"command\": \"mbfitsansTau\",\n    \"detail\": \"𝞣\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital tau\"\n  },\n  \"mbfitsansTheta\": {\n    \"command\": \"mbfitsansTheta\",\n    \"detail\": \"𝞗 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital theta\"\n  },\n  \"mbfitsansU\": {\n    \"command\": \"mbfitsansU\",\n    \"detail\": \"𝙐 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital u\"\n  },\n  \"mbfitsansUpsilon\": {\n    \"command\": \"mbfitsansUpsilon\",\n    \"detail\": \"𝞤 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital upsilon\"\n  },\n  \"mbfitsansV\": {\n    \"command\": \"mbfitsansV\",\n    \"detail\": \"𝙑 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital v\"\n  },\n  \"mbfitsansW\": {\n    \"command\": \"mbfitsansW\",\n    \"detail\": \"𝙒 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital w\"\n  },\n  \"mbfitsansX\": {\n    \"command\": \"mbfitsansX\",\n    \"detail\": \"𝙓 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital x\"\n  },\n  \"mbfitsansXi\": {\n    \"command\": \"mbfitsansXi\",\n    \"detail\": \"𝞝 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital xi\"\n  },\n  \"mbfitsansY\": {\n    \"command\": \"mbfitsansY\",\n    \"detail\": \"𝙔 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital y\"\n  },\n  \"mbfitsansZ\": {\n    \"command\": \"mbfitsansZ\",\n    \"detail\": \"𝙕 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital z\"\n  },\n  \"mbfitsansZeta\": {\n    \"command\": \"mbfitsansZeta\",\n    \"detail\": \"𝞕\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital zeta\"\n  },\n  \"mbfitsansa\": {\n    \"command\": \"mbfitsansa\",\n    \"detail\": \"𝙖 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small a\"\n  },\n  \"mbfitsansalpha\": {\n    \"command\": \"mbfitsansalpha\",\n    \"detail\": \"𝞪 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small alpha\"\n  },\n  \"mbfitsansb\": {\n    \"command\": \"mbfitsansb\",\n    \"detail\": \"𝙗 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small b\"\n  },\n  \"mbfitsansbeta\": {\n    \"command\": \"mbfitsansbeta\",\n    \"detail\": \"𝞫 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small beta\"\n  },\n  \"mbfitsansc\": {\n    \"command\": \"mbfitsansc\",\n    \"detail\": \"𝙘 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small c\"\n  },\n  \"mbfitsanschi\": {\n    \"command\": \"mbfitsanschi\",\n    \"detail\": \"𝟀 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small chi\"\n  },\n  \"mbfitsansd\": {\n    \"command\": \"mbfitsansd\",\n    \"detail\": \"𝙙 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small d\"\n  },\n  \"mbfitsansdelta\": {\n    \"command\": \"mbfitsansdelta\",\n    \"detail\": \"𝞭 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small delta\"\n  },\n  \"mbfitsanse\": {\n    \"command\": \"mbfitsanse\",\n    \"detail\": \"𝙚 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small e\"\n  },\n  \"mbfitsansepsilon\": {\n    \"command\": \"mbfitsansepsilon\",\n    \"detail\": \"𝞮 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small epsilon\"\n  },\n  \"mbfitsanseta\": {\n    \"command\": \"mbfitsanseta\",\n    \"detail\": \"𝞰 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small eta\"\n  },\n  \"mbfitsansf\": {\n    \"command\": \"mbfitsansf\",\n    \"detail\": \"𝙛 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small f\"\n  },\n  \"mbfitsansg\": {\n    \"command\": \"mbfitsansg\",\n    \"detail\": \"𝙜 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small g\"\n  },\n  \"mbfitsansgamma\": {\n    \"command\": \"mbfitsansgamma\",\n    \"detail\": \"𝞬 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small gamma\"\n  },\n  \"mbfitsansh\": {\n    \"command\": \"mbfitsansh\",\n    \"detail\": \"𝙝 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small h\"\n  },\n  \"mbfitsansi\": {\n    \"command\": \"mbfitsansi\",\n    \"detail\": \"𝙞 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small i\"\n  },\n  \"mbfitsansiota\": {\n    \"command\": \"mbfitsansiota\",\n    \"detail\": \"𝞲 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small iota\"\n  },\n  \"mbfitsansj\": {\n    \"command\": \"mbfitsansj\",\n    \"detail\": \"𝙟 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small j\"\n  },\n  \"mbfitsansk\": {\n    \"command\": \"mbfitsansk\",\n    \"detail\": \"𝙠 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small k\"\n  },\n  \"mbfitsanskappa\": {\n    \"command\": \"mbfitsanskappa\",\n    \"detail\": \"𝞳 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small kappa\"\n  },\n  \"mbfitsansl\": {\n    \"command\": \"mbfitsansl\",\n    \"detail\": \"𝙡 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small l\"\n  },\n  \"mbfitsanslambda\": {\n    \"command\": \"mbfitsanslambda\",\n    \"detail\": \"𝞴 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small lambda\"\n  },\n  \"mbfitsansm\": {\n    \"command\": \"mbfitsansm\",\n    \"detail\": \"𝙢 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small m\"\n  },\n  \"mbfitsansmu\": {\n    \"command\": \"mbfitsansmu\",\n    \"detail\": \"𝞵 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small mu\"\n  },\n  \"mbfitsansn\": {\n    \"command\": \"mbfitsansn\",\n    \"detail\": \"𝙣 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small n\"\n  },\n  \"mbfitsansnabla\": {\n    \"command\": \"mbfitsansnabla\",\n    \"detail\": \"𝞩\",\n    \"documentation\": \"Mathematical sans-serif bold italic nabla\"\n  },\n  \"mbfitsansnu\": {\n    \"command\": \"mbfitsansnu\",\n    \"detail\": \"𝞶 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small nu\"\n  },\n  \"mbfitsanso\": {\n    \"command\": \"mbfitsanso\",\n    \"detail\": \"𝙤 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small o\"\n  },\n  \"mbfitsansomega\": {\n    \"command\": \"mbfitsansomega\",\n    \"detail\": \"𝟂 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small omega\"\n  },\n  \"mbfitsansomicron\": {\n    \"command\": \"mbfitsansomicron\",\n    \"detail\": \"𝞸\",\n    \"documentation\": \"Mathematical sans-serif bold italic small omicron\"\n  },\n  \"mbfitsansp\": {\n    \"command\": \"mbfitsansp\",\n    \"detail\": \"𝙥 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small p\"\n  },\n  \"mbfitsanspartial\": {\n    \"command\": \"mbfitsanspartial\",\n    \"detail\": \"𝟃\",\n    \"documentation\": \"Mathematical sans-serif bold italic partial differential\"\n  },\n  \"mbfitsansphi\": {\n    \"command\": \"mbfitsansphi\",\n    \"detail\": \"𝞿 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small phi\"\n  },\n  \"mbfitsanspi\": {\n    \"command\": \"mbfitsanspi\",\n    \"detail\": \"𝞹 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small pi\"\n  },\n  \"mbfitsanspsi\": {\n    \"command\": \"mbfitsanspsi\",\n    \"detail\": \"𝟁 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small psi\"\n  },\n  \"mbfitsansq\": {\n    \"command\": \"mbfitsansq\",\n    \"detail\": \"𝙦 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small q\"\n  },\n  \"mbfitsansr\": {\n    \"command\": \"mbfitsansr\",\n    \"detail\": \"𝙧 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small r\"\n  },\n  \"mbfitsansrho\": {\n    \"command\": \"mbfitsansrho\",\n    \"detail\": \"𝞺 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small rho\"\n  },\n  \"mbfitsanss\": {\n    \"command\": \"mbfitsanss\",\n    \"detail\": \"𝙨 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small s\"\n  },\n  \"mbfitsanssigma\": {\n    \"command\": \"mbfitsanssigma\",\n    \"detail\": \"𝞼 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small sigma\"\n  },\n  \"mbfitsanst\": {\n    \"command\": \"mbfitsanst\",\n    \"detail\": \"𝙩 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small t\"\n  },\n  \"mbfitsanstau\": {\n    \"command\": \"mbfitsanstau\",\n    \"detail\": \"𝞽 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small tau\"\n  },\n  \"mbfitsanstheta\": {\n    \"command\": \"mbfitsanstheta\",\n    \"detail\": \"𝞱 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small theta\"\n  },\n  \"mbfitsansu\": {\n    \"command\": \"mbfitsansu\",\n    \"detail\": \"𝙪 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small u\"\n  },\n  \"mbfitsansupsilon\": {\n    \"command\": \"mbfitsansupsilon\",\n    \"detail\": \"𝞾 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small upsilon\"\n  },\n  \"mbfitsansv\": {\n    \"command\": \"mbfitsansv\",\n    \"detail\": \"𝙫 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small v\"\n  },\n  \"mbfitsansvarTheta\": {\n    \"command\": \"mbfitsansvarTheta\",\n    \"detail\": \"𝞡\",\n    \"documentation\": \"Mathematical sans-serif bold italic capital theta symbol\"\n  },\n  \"mbfitsansvarepsilon\": {\n    \"command\": \"mbfitsansvarepsilon\",\n    \"detail\": \"𝟄 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic epsilon symbol\"\n  },\n  \"mbfitsansvarkappa\": {\n    \"command\": \"mbfitsansvarkappa\",\n    \"detail\": \"𝟆\",\n    \"documentation\": \"Mathematical sans-serif bold italic kappa symbol\"\n  },\n  \"mbfitsansvarphi\": {\n    \"command\": \"mbfitsansvarphi\",\n    \"detail\": \"𝟇 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic phi symbol\"\n  },\n  \"mbfitsansvarpi\": {\n    \"command\": \"mbfitsansvarpi\",\n    \"detail\": \"𝟉 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic pi symbol\"\n  },\n  \"mbfitsansvarrho\": {\n    \"command\": \"mbfitsansvarrho\",\n    \"detail\": \"𝟈 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic rho symbol\"\n  },\n  \"mbfitsansvarsigma\": {\n    \"command\": \"mbfitsansvarsigma\",\n    \"detail\": \"𝞻 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small final sigma\"\n  },\n  \"mbfitsansvartheta\": {\n    \"command\": \"mbfitsansvartheta\",\n    \"detail\": \"𝟅 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic theta symbol\"\n  },\n  \"mbfitsansw\": {\n    \"command\": \"mbfitsansw\",\n    \"detail\": \"𝙬 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small w\"\n  },\n  \"mbfitsansx\": {\n    \"command\": \"mbfitsansx\",\n    \"detail\": \"𝙭 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small x\"\n  },\n  \"mbfitsansxi\": {\n    \"command\": \"mbfitsansxi\",\n    \"detail\": \"𝞷 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small xi\"\n  },\n  \"mbfitsansy\": {\n    \"command\": \"mbfitsansy\",\n    \"detail\": \"𝙮 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small y\"\n  },\n  \"mbfitsansz\": {\n    \"command\": \"mbfitsansz\",\n    \"detail\": \"𝙯 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small z\"\n  },\n  \"mbfitsanszeta\": {\n    \"command\": \"mbfitsanszeta\",\n    \"detail\": \"𝞯 (\\\"isomath\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold italic small zeta\"\n  },\n  \"mbfitsigma\": {\n    \"command\": \"mbfitsigma\",\n    \"detail\": \"𝝈 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic small sigma\"\n  },\n  \"mbfitt\": {\n    \"command\": \"mbfitt\",\n    \"detail\": \"𝒕 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{t} (fixmath), mathematical bold italic small t\"\n  },\n  \"mbfittau\": {\n    \"command\": \"mbfittau\",\n    \"detail\": \"𝝉 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\tau} (fixmath), mathematical bold italic small tau\"\n  },\n  \"mbfittheta\": {\n    \"command\": \"mbfittheta\",\n    \"detail\": \"𝜽 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic small theta\"\n  },\n  \"mbfitu\": {\n    \"command\": \"mbfitu\",\n    \"detail\": \"𝒖 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{u} (fixmath), mathematical bold italic small u\"\n  },\n  \"mbfitupsilon\": {\n    \"command\": \"mbfitupsilon\",\n    \"detail\": \"𝝊 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic small upsilon\"\n  },\n  \"mbfitv\": {\n    \"command\": \"mbfitv\",\n    \"detail\": \"𝒗 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{v} (fixmath), mathematical bold italic small v\"\n  },\n  \"mbfitvarTheta\": {\n    \"command\": \"mbfitvarTheta\",\n    \"detail\": \"𝜭\",\n    \"documentation\": \"Mathematical bold italic capital theta symbol\"\n  },\n  \"mbfitvarepsilon\": {\n    \"command\": \"mbfitvarepsilon\",\n    \"detail\": \"𝝐 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\epsilon} (fixmath), mathematical bold italic epsilon symbol\"\n  },\n  \"mbfitvarkappa\": {\n    \"command\": \"mbfitvarkappa\",\n    \"detail\": \"𝝒\",\n    \"documentation\": \"Mathematical bold italic kappa symbol\"\n  },\n  \"mbfitvarphi\": {\n    \"command\": \"mbfitvarphi\",\n    \"detail\": \"𝝓 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic phi symbol\"\n  },\n  \"mbfitvarpi\": {\n    \"command\": \"mbfitvarpi\",\n    \"detail\": \"𝝕 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\varpi} (fixmath), mathematical bold italic pi symbol\"\n  },\n  \"mbfitvarrho\": {\n    \"command\": \"mbfitvarrho\",\n    \"detail\": \"𝝔 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\varrho} (fixmath), mathematical bold italic rho symbol\"\n  },\n  \"mbfitvarsigma\": {\n    \"command\": \"mbfitvarsigma\",\n    \"detail\": \"𝝇 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\varsigma} (fixmath), mathematical bold italic small final sigma\"\n  },\n  \"mbfitvartheta\": {\n    \"command\": \"mbfitvartheta\",\n    \"detail\": \"𝝑 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\vartheta} (fixmath), mathematical bold italic theta symbol\"\n  },\n  \"mbfitw\": {\n    \"command\": \"mbfitw\",\n    \"detail\": \"𝒘 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{w} (fixmath), mathematical bold italic small w\"\n  },\n  \"mbfitx\": {\n    \"command\": \"mbfitx\",\n    \"detail\": \"𝒙 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{x} (fixmath), mathematical bold italic small x\"\n  },\n  \"mbfitxi\": {\n    \"command\": \"mbfitxi\",\n    \"detail\": \"𝝃 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic small xi\"\n  },\n  \"mbfity\": {\n    \"command\": \"mbfity\",\n    \"detail\": \"𝒚 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{y} (fixmath), mathematical bold italic small y\"\n  },\n  \"mbfitz\": {\n    \"command\": \"mbfitz\",\n    \"detail\": \"𝒛 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{z} (fixmath), mathematical bold italic small z\"\n  },\n  \"mbfitzeta\": {\n    \"command\": \"mbfitzeta\",\n    \"detail\": \"𝜻 (\\\"isomath\\\" command)\",\n    \"documentation\": \"\\\\mathbold{\\\\zeta} (fixmath), mathematical bold italic small zeta\"\n  },\n  \"mbfj\": {\n    \"command\": \"mbfj\",\n    \"detail\": \"𝐣\",\n    \"documentation\": \"Mathematical bold small j\"\n  },\n  \"mbfk\": {\n    \"command\": \"mbfk\",\n    \"detail\": \"𝐤\",\n    \"documentation\": \"Mathematical bold small k\"\n  },\n  \"mbfkappa\": {\n    \"command\": \"mbfkappa\",\n    \"detail\": \"𝛋 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small kappa\"\n  },\n  \"mbfl\": {\n    \"command\": \"mbfl\",\n    \"detail\": \"𝐥\",\n    \"documentation\": \"Mathematical bold small l\"\n  },\n  \"mbflambda\": {\n    \"command\": \"mbflambda\",\n    \"detail\": \"𝛌 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small lambda\"\n  },\n  \"mbfm\": {\n    \"command\": \"mbfm\",\n    \"detail\": \"𝐦\",\n    \"documentation\": \"Mathematical bold small m\"\n  },\n  \"mbfmu\": {\n    \"command\": \"mbfmu\",\n    \"detail\": \"𝛍 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small mu\"\n  },\n  \"mbfn\": {\n    \"command\": \"mbfn\",\n    \"detail\": \"𝐧\",\n    \"documentation\": \"Mathematical bold small n\"\n  },\n  \"mbfnabla\": {\n    \"command\": \"mbfnabla\",\n    \"detail\": \"𝛁\",\n    \"documentation\": \"Mathematical bold nabla\"\n  },\n  \"mbfnu\": {\n    \"command\": \"mbfnu\",\n    \"detail\": \"𝛎 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small nu\"\n  },\n  \"mbfo\": {\n    \"command\": \"mbfo\",\n    \"detail\": \"𝐨\",\n    \"documentation\": \"Mathematical bold small o\"\n  },\n  \"mbfomega\": {\n    \"command\": \"mbfomega\",\n    \"detail\": \"𝛚 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small omega\"\n  },\n  \"mbfomicron\": {\n    \"command\": \"mbfomicron\",\n    \"detail\": \"𝛐\",\n    \"documentation\": \"Mathematical bold small omicron\"\n  },\n  \"mbfp\": {\n    \"command\": \"mbfp\",\n    \"detail\": \"𝐩\",\n    \"documentation\": \"Mathematical bold small p\"\n  },\n  \"mbfpartial\": {\n    \"command\": \"mbfpartial\",\n    \"detail\": \"𝛛\",\n    \"documentation\": \"Mathematical bold partial differential\"\n  },\n  \"mbfphi\": {\n    \"command\": \"mbfphi\",\n    \"detail\": \"𝛟 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold phi symbol\"\n  },\n  \"mbfpi\": {\n    \"command\": \"mbfpi\",\n    \"detail\": \"𝛑 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small pi\"\n  },\n  \"mbfpsi\": {\n    \"command\": \"mbfpsi\",\n    \"detail\": \"𝛙 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small psi\"\n  },\n  \"mbfq\": {\n    \"command\": \"mbfq\",\n    \"detail\": \"𝐪\",\n    \"documentation\": \"Mathematical bold small q\"\n  },\n  \"mbfr\": {\n    \"command\": \"mbfr\",\n    \"detail\": \"𝐫\",\n    \"documentation\": \"Mathematical bold small r\"\n  },\n  \"mbfrho\": {\n    \"command\": \"mbfrho\",\n    \"detail\": \"𝛒 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small rho\"\n  },\n  \"mbfs\": {\n    \"command\": \"mbfs\",\n    \"detail\": \"𝐬\",\n    \"documentation\": \"Mathematical bold small s\"\n  },\n  \"mbfsansA\": {\n    \"command\": \"mbfsansA\",\n    \"detail\": \"𝗔 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital a\"\n  },\n  \"mbfsansAlpha\": {\n    \"command\": \"mbfsansAlpha\",\n    \"detail\": \"𝝖\",\n    \"documentation\": \"Mathematical sans-serif bold capital alpha\"\n  },\n  \"mbfsansB\": {\n    \"command\": \"mbfsansB\",\n    \"detail\": \"𝗕 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital b\"\n  },\n  \"mbfsansBeta\": {\n    \"command\": \"mbfsansBeta\",\n    \"detail\": \"𝝗\",\n    \"documentation\": \"Mathematical sans-serif bold capital beta\"\n  },\n  \"mbfsansC\": {\n    \"command\": \"mbfsansC\",\n    \"detail\": \"𝗖 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital c\"\n  },\n  \"mbfsansChi\": {\n    \"command\": \"mbfsansChi\",\n    \"detail\": \"𝝬\",\n    \"documentation\": \"Mathematical sans-serif bold capital chi\"\n  },\n  \"mbfsansD\": {\n    \"command\": \"mbfsansD\",\n    \"detail\": \"𝗗 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital d\"\n  },\n  \"mbfsansDelta\": {\n    \"command\": \"mbfsansDelta\",\n    \"detail\": \"𝝙 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital delta\"\n  },\n  \"mbfsansE\": {\n    \"command\": \"mbfsansE\",\n    \"detail\": \"𝗘 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital e\"\n  },\n  \"mbfsansEpsilon\": {\n    \"command\": \"mbfsansEpsilon\",\n    \"detail\": \"𝝚\",\n    \"documentation\": \"Mathematical sans-serif bold capital epsilon\"\n  },\n  \"mbfsansEta\": {\n    \"command\": \"mbfsansEta\",\n    \"detail\": \"𝝜\",\n    \"documentation\": \"Mathematical sans-serif bold capital eta\"\n  },\n  \"mbfsansF\": {\n    \"command\": \"mbfsansF\",\n    \"detail\": \"𝗙 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital f\"\n  },\n  \"mbfsansG\": {\n    \"command\": \"mbfsansG\",\n    \"detail\": \"𝗚 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital g\"\n  },\n  \"mbfsansGamma\": {\n    \"command\": \"mbfsansGamma\",\n    \"detail\": \"𝝘 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital gamma\"\n  },\n  \"mbfsansH\": {\n    \"command\": \"mbfsansH\",\n    \"detail\": \"𝗛 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital h\"\n  },\n  \"mbfsansI\": {\n    \"command\": \"mbfsansI\",\n    \"detail\": \"𝗜 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital i\"\n  },\n  \"mbfsansIota\": {\n    \"command\": \"mbfsansIota\",\n    \"detail\": \"𝝞\",\n    \"documentation\": \"Mathematical sans-serif bold capital iota\"\n  },\n  \"mbfsansJ\": {\n    \"command\": \"mbfsansJ\",\n    \"detail\": \"𝗝 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital j\"\n  },\n  \"mbfsansK\": {\n    \"command\": \"mbfsansK\",\n    \"detail\": \"𝗞 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital k\"\n  },\n  \"mbfsansKappa\": {\n    \"command\": \"mbfsansKappa\",\n    \"detail\": \"𝝟\",\n    \"documentation\": \"Mathematical sans-serif bold capital kappa\"\n  },\n  \"mbfsansL\": {\n    \"command\": \"mbfsansL\",\n    \"detail\": \"𝗟 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital l\"\n  },\n  \"mbfsansLambda\": {\n    \"command\": \"mbfsansLambda\",\n    \"detail\": \"𝝠 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital lambda\"\n  },\n  \"mbfsansM\": {\n    \"command\": \"mbfsansM\",\n    \"detail\": \"𝗠 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital m\"\n  },\n  \"mbfsansMu\": {\n    \"command\": \"mbfsansMu\",\n    \"detail\": \"𝝡\",\n    \"documentation\": \"Mathematical sans-serif bold capital mu\"\n  },\n  \"mbfsansN\": {\n    \"command\": \"mbfsansN\",\n    \"detail\": \"𝗡 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital n\"\n  },\n  \"mbfsansNu\": {\n    \"command\": \"mbfsansNu\",\n    \"detail\": \"𝝢\",\n    \"documentation\": \"Mathematical sans-serif bold capital nu\"\n  },\n  \"mbfsansO\": {\n    \"command\": \"mbfsansO\",\n    \"detail\": \"𝗢 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital o\"\n  },\n  \"mbfsansOmega\": {\n    \"command\": \"mbfsansOmega\",\n    \"detail\": \"𝝮 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital omega\"\n  },\n  \"mbfsansOmicron\": {\n    \"command\": \"mbfsansOmicron\",\n    \"detail\": \"𝝤\",\n    \"documentation\": \"Mathematical sans-serif bold capital omicron\"\n  },\n  \"mbfsansP\": {\n    \"command\": \"mbfsansP\",\n    \"detail\": \"𝗣 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital p\"\n  },\n  \"mbfsansPhi\": {\n    \"command\": \"mbfsansPhi\",\n    \"detail\": \"𝝫 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital phi\"\n  },\n  \"mbfsansPi\": {\n    \"command\": \"mbfsansPi\",\n    \"detail\": \"𝝥 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital pi\"\n  },\n  \"mbfsansPsi\": {\n    \"command\": \"mbfsansPsi\",\n    \"detail\": \"𝝭 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital psi\"\n  },\n  \"mbfsansQ\": {\n    \"command\": \"mbfsansQ\",\n    \"detail\": \"𝗤 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital q\"\n  },\n  \"mbfsansR\": {\n    \"command\": \"mbfsansR\",\n    \"detail\": \"𝗥 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital r\"\n  },\n  \"mbfsansRho\": {\n    \"command\": \"mbfsansRho\",\n    \"detail\": \"𝝦\",\n    \"documentation\": \"Mathematical sans-serif bold capital rho\"\n  },\n  \"mbfsansS\": {\n    \"command\": \"mbfsansS\",\n    \"detail\": \"𝗦 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital s\"\n  },\n  \"mbfsansSigma\": {\n    \"command\": \"mbfsansSigma\",\n    \"detail\": \"𝝨 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital sigma\"\n  },\n  \"mbfsansT\": {\n    \"command\": \"mbfsansT\",\n    \"detail\": \"𝗧 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital t\"\n  },\n  \"mbfsansTau\": {\n    \"command\": \"mbfsansTau\",\n    \"detail\": \"𝝩\",\n    \"documentation\": \"Mathematical sans-serif bold capital tau\"\n  },\n  \"mbfsansTheta\": {\n    \"command\": \"mbfsansTheta\",\n    \"detail\": \"𝝝 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital theta\"\n  },\n  \"mbfsansU\": {\n    \"command\": \"mbfsansU\",\n    \"detail\": \"𝗨 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital u\"\n  },\n  \"mbfsansUpsilon\": {\n    \"command\": \"mbfsansUpsilon\",\n    \"detail\": \"𝝪 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital upsilon\"\n  },\n  \"mbfsansV\": {\n    \"command\": \"mbfsansV\",\n    \"detail\": \"𝗩 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital v\"\n  },\n  \"mbfsansW\": {\n    \"command\": \"mbfsansW\",\n    \"detail\": \"𝗪 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital w\"\n  },\n  \"mbfsansX\": {\n    \"command\": \"mbfsansX\",\n    \"detail\": \"𝗫 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital x\"\n  },\n  \"mbfsansXi\": {\n    \"command\": \"mbfsansXi\",\n    \"detail\": \"𝝣 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital xi\"\n  },\n  \"mbfsansY\": {\n    \"command\": \"mbfsansY\",\n    \"detail\": \"𝗬 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital y\"\n  },\n  \"mbfsansZ\": {\n    \"command\": \"mbfsansZ\",\n    \"detail\": \"𝗭 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold capital z\"\n  },\n  \"mbfsansZeta\": {\n    \"command\": \"mbfsansZeta\",\n    \"detail\": \"𝝛\",\n    \"documentation\": \"Mathematical sans-serif bold capital zeta\"\n  },\n  \"mbfsansa\": {\n    \"command\": \"mbfsansa\",\n    \"detail\": \"𝗮 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small a\"\n  },\n  \"mbfsansalpha\": {\n    \"command\": \"mbfsansalpha\",\n    \"detail\": \"𝝰 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small alpha\"\n  },\n  \"mbfsansb\": {\n    \"command\": \"mbfsansb\",\n    \"detail\": \"𝗯 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small b\"\n  },\n  \"mbfsansbeta\": {\n    \"command\": \"mbfsansbeta\",\n    \"detail\": \"𝝱 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small beta\"\n  },\n  \"mbfsansc\": {\n    \"command\": \"mbfsansc\",\n    \"detail\": \"𝗰 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small c\"\n  },\n  \"mbfsanschi\": {\n    \"command\": \"mbfsanschi\",\n    \"detail\": \"𝞆 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small chi\"\n  },\n  \"mbfsansd\": {\n    \"command\": \"mbfsansd\",\n    \"detail\": \"𝗱 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small d\"\n  },\n  \"mbfsansdelta\": {\n    \"command\": \"mbfsansdelta\",\n    \"detail\": \"𝝳 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small delta\"\n  },\n  \"mbfsanse\": {\n    \"command\": \"mbfsanse\",\n    \"detail\": \"𝗲 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small e\"\n  },\n  \"mbfsanseight\": {\n    \"command\": \"mbfsanseight\",\n    \"detail\": \"𝟴 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 8\"\n  },\n  \"mbfsansepsilon\": {\n    \"command\": \"mbfsansepsilon\",\n    \"detail\": \"𝝴 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small epsilon\"\n  },\n  \"mbfsanseta\": {\n    \"command\": \"mbfsanseta\",\n    \"detail\": \"𝝶 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small eta\"\n  },\n  \"mbfsansf\": {\n    \"command\": \"mbfsansf\",\n    \"detail\": \"𝗳 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small f\"\n  },\n  \"mbfsansfive\": {\n    \"command\": \"mbfsansfive\",\n    \"detail\": \"𝟱 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 5\"\n  },\n  \"mbfsansfour\": {\n    \"command\": \"mbfsansfour\",\n    \"detail\": \"𝟰 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 4\"\n  },\n  \"mbfsansg\": {\n    \"command\": \"mbfsansg\",\n    \"detail\": \"𝗴 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small g\"\n  },\n  \"mbfsansgamma\": {\n    \"command\": \"mbfsansgamma\",\n    \"detail\": \"𝝲 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small gamma\"\n  },\n  \"mbfsansh\": {\n    \"command\": \"mbfsansh\",\n    \"detail\": \"𝗵 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small h\"\n  },\n  \"mbfsansi\": {\n    \"command\": \"mbfsansi\",\n    \"detail\": \"𝗶 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small i\"\n  },\n  \"mbfsansiota\": {\n    \"command\": \"mbfsansiota\",\n    \"detail\": \"𝝸 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small iota\"\n  },\n  \"mbfsansj\": {\n    \"command\": \"mbfsansj\",\n    \"detail\": \"𝗷 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small j\"\n  },\n  \"mbfsansk\": {\n    \"command\": \"mbfsansk\",\n    \"detail\": \"𝗸 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small k\"\n  },\n  \"mbfsanskappa\": {\n    \"command\": \"mbfsanskappa\",\n    \"detail\": \"𝝹 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small kappa\"\n  },\n  \"mbfsansl\": {\n    \"command\": \"mbfsansl\",\n    \"detail\": \"𝗹 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small l\"\n  },\n  \"mbfsanslambda\": {\n    \"command\": \"mbfsanslambda\",\n    \"detail\": \"𝝺 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small lambda\"\n  },\n  \"mbfsansm\": {\n    \"command\": \"mbfsansm\",\n    \"detail\": \"𝗺 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small m\"\n  },\n  \"mbfsansmu\": {\n    \"command\": \"mbfsansmu\",\n    \"detail\": \"𝝻 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small mu\"\n  },\n  \"mbfsansn\": {\n    \"command\": \"mbfsansn\",\n    \"detail\": \"𝗻 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small n\"\n  },\n  \"mbfsansnabla\": {\n    \"command\": \"mbfsansnabla\",\n    \"detail\": \"𝝯\",\n    \"documentation\": \"Mathematical sans-serif bold nabla\"\n  },\n  \"mbfsansnine\": {\n    \"command\": \"mbfsansnine\",\n    \"detail\": \"𝟵 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 9\"\n  },\n  \"mbfsansnu\": {\n    \"command\": \"mbfsansnu\",\n    \"detail\": \"𝝼 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small nu\"\n  },\n  \"mbfsanso\": {\n    \"command\": \"mbfsanso\",\n    \"detail\": \"𝗼 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small o\"\n  },\n  \"mbfsansomega\": {\n    \"command\": \"mbfsansomega\",\n    \"detail\": \"𝞈 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small omega\"\n  },\n  \"mbfsansomicron\": {\n    \"command\": \"mbfsansomicron\",\n    \"detail\": \"𝝾\",\n    \"documentation\": \"Mathematical sans-serif bold small omicron\"\n  },\n  \"mbfsansone\": {\n    \"command\": \"mbfsansone\",\n    \"detail\": \"𝟭 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 1\"\n  },\n  \"mbfsansp\": {\n    \"command\": \"mbfsansp\",\n    \"detail\": \"𝗽 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small p\"\n  },\n  \"mbfsanspartial\": {\n    \"command\": \"mbfsanspartial\",\n    \"detail\": \"𝞉\",\n    \"documentation\": \"Mathematical sans-serif bold partial differential\"\n  },\n  \"mbfsansphi\": {\n    \"command\": \"mbfsansphi\",\n    \"detail\": \"𝞅 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small phi\"\n  },\n  \"mbfsanspi\": {\n    \"command\": \"mbfsanspi\",\n    \"detail\": \"𝝿 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small pi\"\n  },\n  \"mbfsanspsi\": {\n    \"command\": \"mbfsanspsi\",\n    \"detail\": \"𝞇 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small psi\"\n  },\n  \"mbfsansq\": {\n    \"command\": \"mbfsansq\",\n    \"detail\": \"𝗾 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small q\"\n  },\n  \"mbfsansr\": {\n    \"command\": \"mbfsansr\",\n    \"detail\": \"𝗿 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small r\"\n  },\n  \"mbfsansrho\": {\n    \"command\": \"mbfsansrho\",\n    \"detail\": \"𝞀 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small rho\"\n  },\n  \"mbfsanss\": {\n    \"command\": \"mbfsanss\",\n    \"detail\": \"𝘀 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small s\"\n  },\n  \"mbfsansseven\": {\n    \"command\": \"mbfsansseven\",\n    \"detail\": \"𝟳 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 7\"\n  },\n  \"mbfsanssigma\": {\n    \"command\": \"mbfsanssigma\",\n    \"detail\": \"𝞂 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small sigma\"\n  },\n  \"mbfsanssix\": {\n    \"command\": \"mbfsanssix\",\n    \"detail\": \"𝟲 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 6\"\n  },\n  \"mbfsanst\": {\n    \"command\": \"mbfsanst\",\n    \"detail\": \"𝘁 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small t\"\n  },\n  \"mbfsanstau\": {\n    \"command\": \"mbfsanstau\",\n    \"detail\": \"𝞃 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small tau\"\n  },\n  \"mbfsanstheta\": {\n    \"command\": \"mbfsanstheta\",\n    \"detail\": \"𝝷 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small theta\"\n  },\n  \"mbfsansthree\": {\n    \"command\": \"mbfsansthree\",\n    \"detail\": \"𝟯 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 3\"\n  },\n  \"mbfsanstwo\": {\n    \"command\": \"mbfsanstwo\",\n    \"detail\": \"𝟮 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 2\"\n  },\n  \"mbfsansu\": {\n    \"command\": \"mbfsansu\",\n    \"detail\": \"𝘂 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small u\"\n  },\n  \"mbfsansupsilon\": {\n    \"command\": \"mbfsansupsilon\",\n    \"detail\": \"𝞄 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small upsilon\"\n  },\n  \"mbfsansv\": {\n    \"command\": \"mbfsansv\",\n    \"detail\": \"𝘃 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small v\"\n  },\n  \"mbfsansvarTheta\": {\n    \"command\": \"mbfsansvarTheta\",\n    \"detail\": \"𝝧\",\n    \"documentation\": \"Mathematical sans-serif bold capital theta symbol\"\n  },\n  \"mbfsansvarepsilon\": {\n    \"command\": \"mbfsansvarepsilon\",\n    \"detail\": \"𝞊 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold epsilon symbol\"\n  },\n  \"mbfsansvarkappa\": {\n    \"command\": \"mbfsansvarkappa\",\n    \"detail\": \"𝞌\",\n    \"documentation\": \"Mathematical sans-serif bold kappa symbol\"\n  },\n  \"mbfsansvarphi\": {\n    \"command\": \"mbfsansvarphi\",\n    \"detail\": \"𝞍 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold phi symbol\"\n  },\n  \"mbfsansvarpi\": {\n    \"command\": \"mbfsansvarpi\",\n    \"detail\": \"𝞏 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold pi symbol\"\n  },\n  \"mbfsansvarrho\": {\n    \"command\": \"mbfsansvarrho\",\n    \"detail\": \"𝞎 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold rho symbol\"\n  },\n  \"mbfsansvarsigma\": {\n    \"command\": \"mbfsansvarsigma\",\n    \"detail\": \"𝞁 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small final sigma\"\n  },\n  \"mbfsansvartheta\": {\n    \"command\": \"mbfsansvartheta\",\n    \"detail\": \"𝞋 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold theta symbol\"\n  },\n  \"mbfsansw\": {\n    \"command\": \"mbfsansw\",\n    \"detail\": \"𝘄 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small w\"\n  },\n  \"mbfsansx\": {\n    \"command\": \"mbfsansx\",\n    \"detail\": \"𝘅 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small x\"\n  },\n  \"mbfsansxi\": {\n    \"command\": \"mbfsansxi\",\n    \"detail\": \"𝝽 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small xi\"\n  },\n  \"mbfsansy\": {\n    \"command\": \"mbfsansy\",\n    \"detail\": \"𝘆 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small y\"\n  },\n  \"mbfsansz\": {\n    \"command\": \"mbfsansz\",\n    \"detail\": \"𝘇 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small z\"\n  },\n  \"mbfsanszero\": {\n    \"command\": \"mbfsanszero\",\n    \"detail\": \"𝟬 (\\\"mathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold digit 0\"\n  },\n  \"mbfsanszeta\": {\n    \"command\": \"mbfsanszeta\",\n    \"detail\": \"𝝵 (\\\"omlmathsfbf\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif bold small zeta\"\n  },\n  \"mbfscrA\": {\n    \"command\": \"mbfscrA\",\n    \"detail\": \"𝓐\",\n    \"documentation\": \"Mathematical bold script capital a\"\n  },\n  \"mbfscrB\": {\n    \"command\": \"mbfscrB\",\n    \"detail\": \"𝓑\",\n    \"documentation\": \"Mathematical bold script capital b\"\n  },\n  \"mbfscrC\": {\n    \"command\": \"mbfscrC\",\n    \"detail\": \"𝓒\",\n    \"documentation\": \"Mathematical bold script capital c\"\n  },\n  \"mbfscrD\": {\n    \"command\": \"mbfscrD\",\n    \"detail\": \"𝓓\",\n    \"documentation\": \"Mathematical bold script capital d\"\n  },\n  \"mbfscrE\": {\n    \"command\": \"mbfscrE\",\n    \"detail\": \"𝓔\",\n    \"documentation\": \"Mathematical bold script capital e\"\n  },\n  \"mbfscrF\": {\n    \"command\": \"mbfscrF\",\n    \"detail\": \"𝓕\",\n    \"documentation\": \"Mathematical bold script capital f\"\n  },\n  \"mbfscrG\": {\n    \"command\": \"mbfscrG\",\n    \"detail\": \"𝓖\",\n    \"documentation\": \"Mathematical bold script capital g\"\n  },\n  \"mbfscrH\": {\n    \"command\": \"mbfscrH\",\n    \"detail\": \"𝓗\",\n    \"documentation\": \"Mathematical bold script capital h\"\n  },\n  \"mbfscrI\": {\n    \"command\": \"mbfscrI\",\n    \"detail\": \"𝓘\",\n    \"documentation\": \"Mathematical bold script capital i\"\n  },\n  \"mbfscrJ\": {\n    \"command\": \"mbfscrJ\",\n    \"detail\": \"𝓙\",\n    \"documentation\": \"Mathematical bold script capital j\"\n  },\n  \"mbfscrK\": {\n    \"command\": \"mbfscrK\",\n    \"detail\": \"𝓚\",\n    \"documentation\": \"Mathematical bold script capital k\"\n  },\n  \"mbfscrL\": {\n    \"command\": \"mbfscrL\",\n    \"detail\": \"𝓛\",\n    \"documentation\": \"Mathematical bold script capital l\"\n  },\n  \"mbfscrM\": {\n    \"command\": \"mbfscrM\",\n    \"detail\": \"𝓜\",\n    \"documentation\": \"Mathematical bold script capital m\"\n  },\n  \"mbfscrN\": {\n    \"command\": \"mbfscrN\",\n    \"detail\": \"𝓝\",\n    \"documentation\": \"Mathematical bold script capital n\"\n  },\n  \"mbfscrO\": {\n    \"command\": \"mbfscrO\",\n    \"detail\": \"𝓞\",\n    \"documentation\": \"Mathematical bold script capital o\"\n  },\n  \"mbfscrP\": {\n    \"command\": \"mbfscrP\",\n    \"detail\": \"𝓟\",\n    \"documentation\": \"Mathematical bold script capital p\"\n  },\n  \"mbfscrQ\": {\n    \"command\": \"mbfscrQ\",\n    \"detail\": \"𝓠\",\n    \"documentation\": \"Mathematical bold script capital q\"\n  },\n  \"mbfscrR\": {\n    \"command\": \"mbfscrR\",\n    \"detail\": \"𝓡\",\n    \"documentation\": \"Mathematical bold script capital r\"\n  },\n  \"mbfscrS\": {\n    \"command\": \"mbfscrS\",\n    \"detail\": \"𝓢\",\n    \"documentation\": \"Mathematical bold script capital s\"\n  },\n  \"mbfscrT\": {\n    \"command\": \"mbfscrT\",\n    \"detail\": \"𝓣\",\n    \"documentation\": \"Mathematical bold script capital t\"\n  },\n  \"mbfscrU\": {\n    \"command\": \"mbfscrU\",\n    \"detail\": \"𝓤\",\n    \"documentation\": \"Mathematical bold script capital u\"\n  },\n  \"mbfscrV\": {\n    \"command\": \"mbfscrV\",\n    \"detail\": \"𝓥\",\n    \"documentation\": \"Mathematical bold script capital v\"\n  },\n  \"mbfscrW\": {\n    \"command\": \"mbfscrW\",\n    \"detail\": \"𝓦\",\n    \"documentation\": \"Mathematical bold script capital w\"\n  },\n  \"mbfscrX\": {\n    \"command\": \"mbfscrX\",\n    \"detail\": \"𝓧\",\n    \"documentation\": \"Mathematical bold script capital x\"\n  },\n  \"mbfscrY\": {\n    \"command\": \"mbfscrY\",\n    \"detail\": \"𝓨\",\n    \"documentation\": \"Mathematical bold script capital y\"\n  },\n  \"mbfscrZ\": {\n    \"command\": \"mbfscrZ\",\n    \"detail\": \"𝓩\",\n    \"documentation\": \"Mathematical bold script capital z\"\n  },\n  \"mbfscra\": {\n    \"command\": \"mbfscra\",\n    \"detail\": \"𝓪\",\n    \"documentation\": \"Mathematical bold script small a\"\n  },\n  \"mbfscrb\": {\n    \"command\": \"mbfscrb\",\n    \"detail\": \"𝓫\",\n    \"documentation\": \"Mathematical bold script small b\"\n  },\n  \"mbfscrc\": {\n    \"command\": \"mbfscrc\",\n    \"detail\": \"𝓬\",\n    \"documentation\": \"Mathematical bold script small c\"\n  },\n  \"mbfscrd\": {\n    \"command\": \"mbfscrd\",\n    \"detail\": \"𝓭\",\n    \"documentation\": \"Mathematical bold script small d\"\n  },\n  \"mbfscre\": {\n    \"command\": \"mbfscre\",\n    \"detail\": \"𝓮\",\n    \"documentation\": \"Mathematical bold script small e\"\n  },\n  \"mbfscrf\": {\n    \"command\": \"mbfscrf\",\n    \"detail\": \"𝓯\",\n    \"documentation\": \"Mathematical bold script small f\"\n  },\n  \"mbfscrg\": {\n    \"command\": \"mbfscrg\",\n    \"detail\": \"𝓰\",\n    \"documentation\": \"Mathematical bold script small g\"\n  },\n  \"mbfscrh\": {\n    \"command\": \"mbfscrh\",\n    \"detail\": \"𝓱\",\n    \"documentation\": \"Mathematical bold script small h\"\n  },\n  \"mbfscri\": {\n    \"command\": \"mbfscri\",\n    \"detail\": \"𝓲\",\n    \"documentation\": \"Mathematical bold script small i\"\n  },\n  \"mbfscrj\": {\n    \"command\": \"mbfscrj\",\n    \"detail\": \"𝓳\",\n    \"documentation\": \"Mathematical bold script small j\"\n  },\n  \"mbfscrk\": {\n    \"command\": \"mbfscrk\",\n    \"detail\": \"𝓴\",\n    \"documentation\": \"Mathematical bold script small k\"\n  },\n  \"mbfscrl\": {\n    \"command\": \"mbfscrl\",\n    \"detail\": \"𝓵\",\n    \"documentation\": \"Mathematical bold script small l\"\n  },\n  \"mbfscrm\": {\n    \"command\": \"mbfscrm\",\n    \"detail\": \"𝓶\",\n    \"documentation\": \"Mathematical bold script small m\"\n  },\n  \"mbfscrn\": {\n    \"command\": \"mbfscrn\",\n    \"detail\": \"𝓷\",\n    \"documentation\": \"Mathematical bold script small n\"\n  },\n  \"mbfscro\": {\n    \"command\": \"mbfscro\",\n    \"detail\": \"𝓸\",\n    \"documentation\": \"Mathematical bold script small o\"\n  },\n  \"mbfscrp\": {\n    \"command\": \"mbfscrp\",\n    \"detail\": \"𝓹\",\n    \"documentation\": \"Mathematical bold script small p\"\n  },\n  \"mbfscrq\": {\n    \"command\": \"mbfscrq\",\n    \"detail\": \"𝓺\",\n    \"documentation\": \"Mathematical bold script small q\"\n  },\n  \"mbfscrr\": {\n    \"command\": \"mbfscrr\",\n    \"detail\": \"𝓻\",\n    \"documentation\": \"Mathematical bold script small r\"\n  },\n  \"mbfscrs\": {\n    \"command\": \"mbfscrs\",\n    \"detail\": \"𝓼\",\n    \"documentation\": \"Mathematical bold script small s\"\n  },\n  \"mbfscrt\": {\n    \"command\": \"mbfscrt\",\n    \"detail\": \"𝓽\",\n    \"documentation\": \"Mathematical bold script small t\"\n  },\n  \"mbfscru\": {\n    \"command\": \"mbfscru\",\n    \"detail\": \"𝓾\",\n    \"documentation\": \"Mathematical bold script small u\"\n  },\n  \"mbfscrv\": {\n    \"command\": \"mbfscrv\",\n    \"detail\": \"𝓿\",\n    \"documentation\": \"Mathematical bold script small v\"\n  },\n  \"mbfscrw\": {\n    \"command\": \"mbfscrw\",\n    \"detail\": \"𝔀\",\n    \"documentation\": \"Mathematical bold script small w\"\n  },\n  \"mbfscrx\": {\n    \"command\": \"mbfscrx\",\n    \"detail\": \"𝔁\",\n    \"documentation\": \"Mathematical bold script small x\"\n  },\n  \"mbfscry\": {\n    \"command\": \"mbfscry\",\n    \"detail\": \"𝔂\",\n    \"documentation\": \"Mathematical bold script small y\"\n  },\n  \"mbfscrz\": {\n    \"command\": \"mbfscrz\",\n    \"detail\": \"𝔃\",\n    \"documentation\": \"Mathematical bold script small z\"\n  },\n  \"mbfsigma\": {\n    \"command\": \"mbfsigma\",\n    \"detail\": \"𝛔 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small sigma\"\n  },\n  \"mbft\": {\n    \"command\": \"mbft\",\n    \"detail\": \"𝐭\",\n    \"documentation\": \"Mathematical bold small t\"\n  },\n  \"mbftau\": {\n    \"command\": \"mbftau\",\n    \"detail\": \"𝛕 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small tau\"\n  },\n  \"mbftheta\": {\n    \"command\": \"mbftheta\",\n    \"detail\": \"𝛉 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small theta\"\n  },\n  \"mbfu\": {\n    \"command\": \"mbfu\",\n    \"detail\": \"𝐮\",\n    \"documentation\": \"Mathematical bold small u\"\n  },\n  \"mbfupsilon\": {\n    \"command\": \"mbfupsilon\",\n    \"detail\": \"𝛖 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small upsilon\"\n  },\n  \"mbfv\": {\n    \"command\": \"mbfv\",\n    \"detail\": \"𝐯\",\n    \"documentation\": \"Mathematical bold small v\"\n  },\n  \"mbfvarTheta\": {\n    \"command\": \"mbfvarTheta\",\n    \"detail\": \"𝚹\",\n    \"documentation\": \"Mathematical bold capital theta symbol\"\n  },\n  \"mbfvarepsilon\": {\n    \"command\": \"mbfvarepsilon\",\n    \"detail\": \"𝛜 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold epsilon symbol\"\n  },\n  \"mbfvarkappa\": {\n    \"command\": \"mbfvarkappa\",\n    \"detail\": \"𝛞\",\n    \"documentation\": \"Mathematical bold kappa symbol\"\n  },\n  \"mbfvarphi\": {\n    \"command\": \"mbfvarphi\",\n    \"detail\": \"𝛗 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small phi\"\n  },\n  \"mbfvarpi\": {\n    \"command\": \"mbfvarpi\",\n    \"detail\": \"𝛡 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold pi symbol\"\n  },\n  \"mbfvarrho\": {\n    \"command\": \"mbfvarrho\",\n    \"detail\": \"𝛠 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold rho symbol\"\n  },\n  \"mbfvarsigma\": {\n    \"command\": \"mbfvarsigma\",\n    \"detail\": \"𝛓 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small final sigma\"\n  },\n  \"mbfvartheta\": {\n    \"command\": \"mbfvartheta\",\n    \"detail\": \"𝛝 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold theta symbol\"\n  },\n  \"mbfw\": {\n    \"command\": \"mbfw\",\n    \"detail\": \"𝐰\",\n    \"documentation\": \"Mathematical bold small w\"\n  },\n  \"mbfx\": {\n    \"command\": \"mbfx\",\n    \"detail\": \"𝐱\",\n    \"documentation\": \"Mathematical bold small x\"\n  },\n  \"mbfxi\": {\n    \"command\": \"mbfxi\",\n    \"detail\": \"𝛏 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small xi\"\n  },\n  \"mbfy\": {\n    \"command\": \"mbfy\",\n    \"detail\": \"𝐲\",\n    \"documentation\": \"Mathematical bold small y\"\n  },\n  \"mbfz\": {\n    \"command\": \"mbfz\",\n    \"detail\": \"𝐳\",\n    \"documentation\": \"Mathematical bold small z\"\n  },\n  \"mbfzeta\": {\n    \"command\": \"mbfzeta\",\n    \"detail\": \"𝛇 (\\\"omlmathbf\\\" command)\",\n    \"documentation\": \"Mathematical bold small zeta\"\n  },\n  \"mdblkcircle\": {\n    \"command\": \"mdblkcircle\",\n    \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Medium black circle\"\n  },\n  \"mdblkdiamond\": {\n    \"command\": \"mdblkdiamond\",\n    \"detail\": \"⬥\",\n    \"documentation\": \"Black medium diamond\"\n  },\n  \"mdblklozenge\": {\n    \"command\": \"mdblklozenge\",\n    \"detail\": \"⬧\",\n    \"documentation\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n  },\n  \"mdblksquare\": {\n    \"command\": \"mdblksquare\",\n    \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n    \"documentation\": \"Black medium square\"\n  },\n  \"mdlgblkcircle\": {\n    \"command\": \"mdlgblkcircle\",\n    \"detail\": \"● (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Circle, filled\"\n  },\n  \"mdlgblkdiamond\": {\n    \"command\": \"mdlgblkdiamond\",\n    \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Black diamond\"\n  },\n  \"mdlgblklozenge\": {\n    \"command\": \"mdlgblklozenge\",\n    \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Black lozenge\"\n  },\n  \"mdlgblksquare\": {\n    \"command\": \"mdlgblksquare\",\n    \"detail\": \"■\",\n    \"documentation\": \"Square, filled\"\n  },\n  \"mdlgwhtcircle\": {\n    \"command\": \"mdlgwhtcircle\",\n    \"detail\": \"○ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Medium large circle\"\n  },\n  \"mdlgwhtdiamond\": {\n    \"command\": \"mdlgwhtdiamond\",\n    \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"White diamond; diamond, open\"\n  },\n  \"mdlgwhtlozenge\": {\n    \"command\": \"mdlgwhtlozenge\",\n    \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Lozenge or total mark\"\n  },\n  \"mdlgwhtsquare\": {\n    \"command\": \"mdlgwhtsquare\",\n    \"detail\": \"□\",\n    \"documentation\": \"Square, open\"\n  },\n  \"mdsmblkcircle\": {\n    \"command\": \"mdsmblkcircle\",\n    \"detail\": \"⦁ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\dot (oz), spot\"\n  },\n  \"mdsmblksquare\": {\n    \"command\": \"mdsmblksquare\",\n    \"detail\": \"◾\",\n    \"documentation\": \"Black medium small square\"\n  },\n  \"mdsmwhtcircle\": {\n    \"command\": \"mdsmwhtcircle\",\n    \"detail\": \"⚬\",\n    \"documentation\": \"Medium small white circle\"\n  },\n  \"mdsmwhtsquare\": {\n    \"command\": \"mdsmwhtsquare\",\n    \"detail\": \"◽\",\n    \"documentation\": \"White medium small square\"\n  },\n  \"mdwhtcircle\": {\n    \"command\": \"mdwhtcircle\",\n    \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Medium white circle\"\n  },\n  \"mdwhtdiamond\": {\n    \"command\": \"mdwhtdiamond\",\n    \"detail\": \"⬦\",\n    \"documentation\": \"White medium diamond\"\n  },\n  \"mdwhtlozenge\": {\n    \"command\": \"mdwhtlozenge\",\n    \"detail\": \"⬨\",\n    \"documentation\": \"\\\\lozenge (amssymb), white medium lozenge\"\n  },\n  \"mdwhtsquare\": {\n    \"command\": \"mdwhtsquare\",\n    \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n    \"documentation\": \"White medium square\"\n  },\n  \"measangledltosw\": {\n    \"command\": \"measangledltosw\",\n    \"detail\": \"⦯\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing left and down\"\n  },\n  \"measangledrtose\": {\n    \"command\": \"measangledrtose\",\n    \"detail\": \"⦮\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing right and down\"\n  },\n  \"measangleldtosw\": {\n    \"command\": \"measangleldtosw\",\n    \"detail\": \"⦫\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing down and left\"\n  },\n  \"measanglelutonw\": {\n    \"command\": \"measanglelutonw\",\n    \"detail\": \"⦩\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing up and left\"\n  },\n  \"measanglerdtose\": {\n    \"command\": \"measanglerdtose\",\n    \"detail\": \"⦪\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing down and right\"\n  },\n  \"measanglerutone\": {\n    \"command\": \"measanglerutone\",\n    \"detail\": \"⦨\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing up and right\"\n  },\n  \"measangleultonw\": {\n    \"command\": \"measangleultonw\",\n    \"detail\": \"⦭\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing left and up\"\n  },\n  \"measangleurtone\": {\n    \"command\": \"measangleurtone\",\n    \"detail\": \"⦬\",\n    \"documentation\": \"Measured angle with open arm ending in arrow pointing right and up\"\n  },\n  \"measeq\": {\n    \"command\": \"measeq\",\n    \"detail\": \"≞\",\n    \"documentation\": \"Measured by (m over equals)\"\n  },\n  \"measuredangle\": {\n    \"command\": \"measuredangle\",\n    \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Measured angle\"\n  },\n  \"measuredangleleft\": {\n    \"command\": \"measuredangleleft\",\n    \"detail\": \"⦛\",\n    \"documentation\": \"Measured angle opening left\"\n  },\n  \"measuredrightangle\": {\n    \"command\": \"measuredrightangle\",\n    \"detail\": \"⊾\",\n    \"documentation\": \"Right angle-measured [with arc]\"\n  },\n  \"medblackstar\": {\n    \"command\": \"medblackstar\",\n    \"detail\": \"⭑\",\n    \"documentation\": \"Black medium star\"\n  },\n  \"medwhitestar\": {\n    \"command\": \"medwhitestar\",\n    \"detail\": \"⭐\",\n    \"documentation\": \"White medium star\"\n  },\n  \"mfrakA\": {\n    \"command\": \"mfrakA\",\n    \"detail\": \"𝔄 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital a\"\n  },\n  \"mfrakB\": {\n    \"command\": \"mfrakB\",\n    \"detail\": \"𝔅 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital b\"\n  },\n  \"mfrakC\": {\n    \"command\": \"mfrakC\",\n    \"detail\": \"ℭ (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Black-letter capital c\"\n  },\n  \"mfrakD\": {\n    \"command\": \"mfrakD\",\n    \"detail\": \"𝔇 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital d\"\n  },\n  \"mfrakE\": {\n    \"command\": \"mfrakE\",\n    \"detail\": \"𝔈 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital e\"\n  },\n  \"mfrakF\": {\n    \"command\": \"mfrakF\",\n    \"detail\": \"𝔉 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital f\"\n  },\n  \"mfrakG\": {\n    \"command\": \"mfrakG\",\n    \"detail\": \"𝔊 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital g\"\n  },\n  \"mfrakH\": {\n    \"command\": \"mfrakH\",\n    \"detail\": \"ℌ (\\\"eufrak\\\" command)\",\n    \"documentation\": \"/frak h, black-letter capital h\"\n  },\n  \"mfrakJ\": {\n    \"command\": \"mfrakJ\",\n    \"detail\": \"𝔍 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital j\"\n  },\n  \"mfrakK\": {\n    \"command\": \"mfrakK\",\n    \"detail\": \"𝔎 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital k\"\n  },\n  \"mfrakL\": {\n    \"command\": \"mfrakL\",\n    \"detail\": \"𝔏 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital l\"\n  },\n  \"mfrakM\": {\n    \"command\": \"mfrakM\",\n    \"detail\": \"𝔐 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital m\"\n  },\n  \"mfrakN\": {\n    \"command\": \"mfrakN\",\n    \"detail\": \"𝔑 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital n\"\n  },\n  \"mfrakO\": {\n    \"command\": \"mfrakO\",\n    \"detail\": \"𝔒 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital o\"\n  },\n  \"mfrakP\": {\n    \"command\": \"mfrakP\",\n    \"detail\": \"𝔓 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital p\"\n  },\n  \"mfrakQ\": {\n    \"command\": \"mfrakQ\",\n    \"detail\": \"𝔔 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital q\"\n  },\n  \"mfrakS\": {\n    \"command\": \"mfrakS\",\n    \"detail\": \"𝔖 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital s\"\n  },\n  \"mfrakT\": {\n    \"command\": \"mfrakT\",\n    \"detail\": \"𝔗 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital t\"\n  },\n  \"mfrakU\": {\n    \"command\": \"mfrakU\",\n    \"detail\": \"𝔘 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital u\"\n  },\n  \"mfrakV\": {\n    \"command\": \"mfrakV\",\n    \"detail\": \"𝔙 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital v\"\n  },\n  \"mfrakW\": {\n    \"command\": \"mfrakW\",\n    \"detail\": \"𝔚 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital w\"\n  },\n  \"mfrakX\": {\n    \"command\": \"mfrakX\",\n    \"detail\": \"𝔛 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital x\"\n  },\n  \"mfrakY\": {\n    \"command\": \"mfrakY\",\n    \"detail\": \"𝔜 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur capital y\"\n  },\n  \"mfrakZ\": {\n    \"command\": \"mfrakZ\",\n    \"detail\": \"ℨ (\\\"eufrak\\\" command)\",\n    \"documentation\": \"/frak z, black-letter capital z\"\n  },\n  \"mfraka\": {\n    \"command\": \"mfraka\",\n    \"detail\": \"𝔞 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small a\"\n  },\n  \"mfrakb\": {\n    \"command\": \"mfrakb\",\n    \"detail\": \"𝔟 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small b\"\n  },\n  \"mfrakc\": {\n    \"command\": \"mfrakc\",\n    \"detail\": \"𝔠 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small c\"\n  },\n  \"mfrakd\": {\n    \"command\": \"mfrakd\",\n    \"detail\": \"𝔡 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small d\"\n  },\n  \"mfrake\": {\n    \"command\": \"mfrake\",\n    \"detail\": \"𝔢 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small e\"\n  },\n  \"mfrakf\": {\n    \"command\": \"mfrakf\",\n    \"detail\": \"𝔣 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small f\"\n  },\n  \"mfrakg\": {\n    \"command\": \"mfrakg\",\n    \"detail\": \"𝔤 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small g\"\n  },\n  \"mfrakh\": {\n    \"command\": \"mfrakh\",\n    \"detail\": \"𝔥 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small h\"\n  },\n  \"mfraki\": {\n    \"command\": \"mfraki\",\n    \"detail\": \"𝔦 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small i\"\n  },\n  \"mfrakj\": {\n    \"command\": \"mfrakj\",\n    \"detail\": \"𝔧 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small j\"\n  },\n  \"mfrakk\": {\n    \"command\": \"mfrakk\",\n    \"detail\": \"𝔨 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small k\"\n  },\n  \"mfrakl\": {\n    \"command\": \"mfrakl\",\n    \"detail\": \"𝔩 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small l\"\n  },\n  \"mfrakm\": {\n    \"command\": \"mfrakm\",\n    \"detail\": \"𝔪 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small m\"\n  },\n  \"mfrakn\": {\n    \"command\": \"mfrakn\",\n    \"detail\": \"𝔫 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small n\"\n  },\n  \"mfrako\": {\n    \"command\": \"mfrako\",\n    \"detail\": \"𝔬 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small o\"\n  },\n  \"mfrakp\": {\n    \"command\": \"mfrakp\",\n    \"detail\": \"𝔭 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small p\"\n  },\n  \"mfrakq\": {\n    \"command\": \"mfrakq\",\n    \"detail\": \"𝔮 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small q\"\n  },\n  \"mfrakr\": {\n    \"command\": \"mfrakr\",\n    \"detail\": \"𝔯 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small r\"\n  },\n  \"mfraks\": {\n    \"command\": \"mfraks\",\n    \"detail\": \"𝔰 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small s\"\n  },\n  \"mfrakt\": {\n    \"command\": \"mfrakt\",\n    \"detail\": \"𝔱 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small t\"\n  },\n  \"mfraku\": {\n    \"command\": \"mfraku\",\n    \"detail\": \"𝔲 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small u\"\n  },\n  \"mfrakv\": {\n    \"command\": \"mfrakv\",\n    \"detail\": \"𝔳 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small v\"\n  },\n  \"mfrakw\": {\n    \"command\": \"mfrakw\",\n    \"detail\": \"𝔴 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small w\"\n  },\n  \"mfrakx\": {\n    \"command\": \"mfrakx\",\n    \"detail\": \"𝔵 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small x\"\n  },\n  \"mfraky\": {\n    \"command\": \"mfraky\",\n    \"detail\": \"𝔶 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small y\"\n  },\n  \"mfrakz\": {\n    \"command\": \"mfrakz\",\n    \"detail\": \"𝔷 (\\\"eufrak\\\" command)\",\n    \"documentation\": \"Mathematical fraktur small z\"\n  },\n  \"mho\": {\n    \"command\": \"mho\",\n    \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n    \"documentation\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n  },\n  \"mid\": {\n    \"command\": \"mid\",\n    \"detail\": \"∣\",\n    \"documentation\": \"R: divides\"\n  },\n  \"midbarvee\": {\n    \"command\": \"midbarvee\",\n    \"detail\": \"⩝\",\n    \"documentation\": \"Logical or with horizontal dash\"\n  },\n  \"midbarwedge\": {\n    \"command\": \"midbarwedge\",\n    \"detail\": \"⩜\",\n    \"documentation\": \"Ogical and with horizontal dash\"\n  },\n  \"midcir\": {\n    \"command\": \"midcir\",\n    \"detail\": \"⫰\",\n    \"documentation\": \"Vertical line with circle below\"\n  },\n  \"minus\": {\n    \"command\": \"minus\",\n    \"detail\": \"−\",\n    \"documentation\": \"Minus sign\"\n  },\n  \"minusdot\": {\n    \"command\": \"minusdot\",\n    \"detail\": \"⨪\",\n    \"documentation\": \"Minus sign with dot below\"\n  },\n  \"minusfdots\": {\n    \"command\": \"minusfdots\",\n    \"detail\": \"⨫\",\n    \"documentation\": \"Minus sign with falling dots\"\n  },\n  \"minusrdots\": {\n    \"command\": \"minusrdots\",\n    \"detail\": \"⨬\",\n    \"documentation\": \"Minus sign with rising dots\"\n  },\n  \"mitA\": {\n    \"command\": \"mitA\",\n    \"detail\": \"𝐴\",\n    \"documentation\": \"\\\\mathit{a}, mathematical italic capital a\"\n  },\n  \"mitAlpha\": {\n    \"command\": \"mitAlpha\",\n    \"detail\": \"𝛢\",\n    \"documentation\": \"Mathematical italic capital alpha\"\n  },\n  \"mitB\": {\n    \"command\": \"mitB\",\n    \"detail\": \"𝐵\",\n    \"documentation\": \"\\\\mathit{b}, mathematical italic capital b\"\n  },\n  \"mitBbbD\": {\n    \"command\": \"mitBbbD\",\n    \"detail\": \"ⅅ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\dd (wrisym), double-struck italic capital d\"\n  },\n  \"mitBbbd\": {\n    \"command\": \"mitBbbd\",\n    \"detail\": \"ⅆ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\dd (wrisym), double-struck italic small d\"\n  },\n  \"mitBbbe\": {\n    \"command\": \"mitBbbe\",\n    \"detail\": \"ⅇ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\ee (wrisym), double-struck italic small e\"\n  },\n  \"mitBbbi\": {\n    \"command\": \"mitBbbi\",\n    \"detail\": \"ⅈ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\ii (wrisym), double-struck italic small i\"\n  },\n  \"mitBbbj\": {\n    \"command\": \"mitBbbj\",\n    \"detail\": \"ⅉ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\jj (wrisym), double-struck italic small j\"\n  },\n  \"mitBeta\": {\n    \"command\": \"mitBeta\",\n    \"detail\": \"𝛣\",\n    \"documentation\": \"Mathematical italic capital beta\"\n  },\n  \"mitC\": {\n    \"command\": \"mitC\",\n    \"detail\": \"𝐶\",\n    \"documentation\": \"\\\\mathit{c}, mathematical italic capital c\"\n  },\n  \"mitChi\": {\n    \"command\": \"mitChi\",\n    \"detail\": \"𝛸\",\n    \"documentation\": \"Mathematical italic capital chi\"\n  },\n  \"mitD\": {\n    \"command\": \"mitD\",\n    \"detail\": \"𝐷\",\n    \"documentation\": \"\\\\mathit{d}, mathematical italic capital d\"\n  },\n  \"mitDelta\": {\n    \"command\": \"mitDelta\",\n    \"detail\": \"𝛥 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\delta} (-fourier), \\\\vardelta (amsmath fourier), mathematical italic capital delta\"\n  },\n  \"mitE\": {\n    \"command\": \"mitE\",\n    \"detail\": \"𝐸\",\n    \"documentation\": \"\\\\mathit{e}, mathematical italic capital e\"\n  },\n  \"mitEpsilon\": {\n    \"command\": \"mitEpsilon\",\n    \"detail\": \"𝛦\",\n    \"documentation\": \"Mathematical italic capital epsilon\"\n  },\n  \"mitEta\": {\n    \"command\": \"mitEta\",\n    \"detail\": \"𝛨\",\n    \"documentation\": \"Mathematical italic capital eta\"\n  },\n  \"mitF\": {\n    \"command\": \"mitF\",\n    \"detail\": \"𝐹\",\n    \"documentation\": \"\\\\mathit{f}, mathematical italic capital f\"\n  },\n  \"mitG\": {\n    \"command\": \"mitG\",\n    \"detail\": \"𝐺\",\n    \"documentation\": \"\\\\mathit{g}, mathematical italic capital g\"\n  },\n  \"mitGamma\": {\n    \"command\": \"mitGamma\",\n    \"detail\": \"𝛤 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\gamma} (-fourier), \\\\vargamma (amsmath fourier), mathematical italic capital gamma\"\n  },\n  \"mitH\": {\n    \"command\": \"mitH\",\n    \"detail\": \"𝐻\",\n    \"documentation\": \"\\\\mathit{h}, mathematical italic capital h\"\n  },\n  \"mitI\": {\n    \"command\": \"mitI\",\n    \"detail\": \"𝐼\",\n    \"documentation\": \"\\\\mathit{i}, mathematical italic capital i\"\n  },\n  \"mitIota\": {\n    \"command\": \"mitIota\",\n    \"detail\": \"𝛪\",\n    \"documentation\": \"Mathematical italic capital iota\"\n  },\n  \"mitJ\": {\n    \"command\": \"mitJ\",\n    \"detail\": \"𝐽\",\n    \"documentation\": \"\\\\mathit{j}, mathematical italic capital j\"\n  },\n  \"mitK\": {\n    \"command\": \"mitK\",\n    \"detail\": \"𝐾\",\n    \"documentation\": \"\\\\mathit{k}, mathematical italic capital k\"\n  },\n  \"mitKappa\": {\n    \"command\": \"mitKappa\",\n    \"detail\": \"𝛫\",\n    \"documentation\": \"Mathematical italic capital kappa\"\n  },\n  \"mitL\": {\n    \"command\": \"mitL\",\n    \"detail\": \"𝐿\",\n    \"documentation\": \"\\\\mathit{l}, mathematical italic capital l\"\n  },\n  \"mitLambda\": {\n    \"command\": \"mitLambda\",\n    \"detail\": \"𝛬 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\lambda} (-fourier), \\\\varlambda (amsmath fourier), mathematical italic capital lambda\"\n  },\n  \"mitM\": {\n    \"command\": \"mitM\",\n    \"detail\": \"𝑀\",\n    \"documentation\": \"\\\\mathit{m}, mathematical italic capital m\"\n  },\n  \"mitMu\": {\n    \"command\": \"mitMu\",\n    \"detail\": \"𝛭\",\n    \"documentation\": \"Mathematical italic capital mu\"\n  },\n  \"mitN\": {\n    \"command\": \"mitN\",\n    \"detail\": \"𝑁\",\n    \"documentation\": \"\\\\mathit{n}, mathematical italic capital n\"\n  },\n  \"mitNu\": {\n    \"command\": \"mitNu\",\n    \"detail\": \"𝛮\",\n    \"documentation\": \"Mathematical italic capital nu\"\n  },\n  \"mitO\": {\n    \"command\": \"mitO\",\n    \"detail\": \"𝑂\",\n    \"documentation\": \"\\\\mathit{o}, mathematical italic capital o\"\n  },\n  \"mitOmega\": {\n    \"command\": \"mitOmega\",\n    \"detail\": \"𝛺 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\omega} (-fourier), \\\\varomega (amsmath fourier), mathematical italic capital omega\"\n  },\n  \"mitOmicron\": {\n    \"command\": \"mitOmicron\",\n    \"detail\": \"𝛰\",\n    \"documentation\": \"Mathematical italic capital omicron\"\n  },\n  \"mitP\": {\n    \"command\": \"mitP\",\n    \"detail\": \"𝑃\",\n    \"documentation\": \"\\\\mathit{p}, mathematical italic capital p\"\n  },\n  \"mitPhi\": {\n    \"command\": \"mitPhi\",\n    \"detail\": \"𝛷 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\phi} (-fourier), \\\\varphi (amsmath fourier), mathematical italic capital phi\"\n  },\n  \"mitPi\": {\n    \"command\": \"mitPi\",\n    \"detail\": \"𝛱 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\pi} (-fourier), \\\\varpi (amsmath fourier), mathematical italic capital pi\"\n  },\n  \"mitPsi\": {\n    \"command\": \"mitPsi\",\n    \"detail\": \"𝛹 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\psi} (-fourier), \\\\varpsi (amsmath fourier), mathematical italic capital psi\"\n  },\n  \"mitQ\": {\n    \"command\": \"mitQ\",\n    \"detail\": \"𝑄\",\n    \"documentation\": \"\\\\mathit{q}, mathematical italic capital q\"\n  },\n  \"mitR\": {\n    \"command\": \"mitR\",\n    \"detail\": \"𝑅\",\n    \"documentation\": \"\\\\mathit{r}, mathematical italic capital r\"\n  },\n  \"mitRho\": {\n    \"command\": \"mitRho\",\n    \"detail\": \"𝛲\",\n    \"documentation\": \"Mathematical italic capital rho\"\n  },\n  \"mitS\": {\n    \"command\": \"mitS\",\n    \"detail\": \"𝑆\",\n    \"documentation\": \"\\\\mathit{s}, mathematical italic capital s\"\n  },\n  \"mitSigma\": {\n    \"command\": \"mitSigma\",\n    \"detail\": \"𝛴 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\sigma} (-fourier), \\\\varsigma (amsmath fourier), mathematical italic capital sigma\"\n  },\n  \"mitT\": {\n    \"command\": \"mitT\",\n    \"detail\": \"𝑇\",\n    \"documentation\": \"\\\\mathit{t}, mathematical italic capital t\"\n  },\n  \"mitTau\": {\n    \"command\": \"mitTau\",\n    \"detail\": \"𝛵\",\n    \"documentation\": \"Mathematical italic capital tau\"\n  },\n  \"mitTheta\": {\n    \"command\": \"mitTheta\",\n    \"detail\": \"𝛩 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\theta} (-fourier), \\\\vartheta (amsmath fourier), mathematical italic capital theta\"\n  },\n  \"mitU\": {\n    \"command\": \"mitU\",\n    \"detail\": \"𝑈\",\n    \"documentation\": \"\\\\mathit{u}, mathematical italic capital u\"\n  },\n  \"mitUpsilon\": {\n    \"command\": \"mitUpsilon\",\n    \"detail\": \"𝛶 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\upsilon} (-fourier), \\\\varupsilon (amsmath fourier), mathematical italic capital upsilon\"\n  },\n  \"mitV\": {\n    \"command\": \"mitV\",\n    \"detail\": \"𝑉\",\n    \"documentation\": \"\\\\mathit{v}, mathematical italic capital v\"\n  },\n  \"mitW\": {\n    \"command\": \"mitW\",\n    \"detail\": \"𝑊\",\n    \"documentation\": \"\\\\mathit{w}, mathematical italic capital w\"\n  },\n  \"mitX\": {\n    \"command\": \"mitX\",\n    \"detail\": \"𝑋\",\n    \"documentation\": \"\\\\mathit{x}, mathematical italic capital x\"\n  },\n  \"mitXi\": {\n    \"command\": \"mitXi\",\n    \"detail\": \"𝛯 (\\\"slantedGreek\\\" command)\",\n    \"documentation\": \"\\\\mathit{\\\\xi} (-fourier), \\\\varxi (amsmath fourier), mathematical italic capital xi\"\n  },\n  \"mitY\": {\n    \"command\": \"mitY\",\n    \"detail\": \"𝑌\",\n    \"documentation\": \"\\\\mathit{y}, mathematical italic capital y\"\n  },\n  \"mitZ\": {\n    \"command\": \"mitZ\",\n    \"detail\": \"𝑍\",\n    \"documentation\": \"\\\\mathit{z}, mathematical italic capital z\"\n  },\n  \"mitZeta\": {\n    \"command\": \"mitZeta\",\n    \"detail\": \"𝛧\",\n    \"documentation\": \"Mathematical italic capital zeta\"\n  },\n  \"mita\": {\n    \"command\": \"mita\",\n    \"detail\": \"𝑎\",\n    \"documentation\": \"\\\\mathit{a}, mathematical italic small a\"\n  },\n  \"mitalpha\": {\n    \"command\": \"mitalpha\",\n    \"detail\": \"𝛼\",\n    \"documentation\": \"\\\\mathit{\\\\alpha} (omlmathit), mathematical italic small alpha\"\n  },\n  \"mitb\": {\n    \"command\": \"mitb\",\n    \"detail\": \"𝑏\",\n    \"documentation\": \"\\\\mathit{b}, mathematical italic small b\"\n  },\n  \"mitbeta\": {\n    \"command\": \"mitbeta\",\n    \"detail\": \"𝛽\",\n    \"documentation\": \"\\\\mathit{\\\\beta} (omlmathit), mathematical italic small beta\"\n  },\n  \"mitc\": {\n    \"command\": \"mitc\",\n    \"detail\": \"𝑐\",\n    \"documentation\": \"\\\\mathit{c}, mathematical italic small c\"\n  },\n  \"mitchi\": {\n    \"command\": \"mitchi\",\n    \"detail\": \"𝜒\",\n    \"documentation\": \"\\\\mathit{\\\\chi} (omlmathit), mathematical italic small chi\"\n  },\n  \"mitd\": {\n    \"command\": \"mitd\",\n    \"detail\": \"𝑑\",\n    \"documentation\": \"\\\\mathit{d}, mathematical italic small d\"\n  },\n  \"mitdelta\": {\n    \"command\": \"mitdelta\",\n    \"detail\": \"𝛿\",\n    \"documentation\": \"\\\\mathit{\\\\delta} (omlmathit), mathematical italic small delta\"\n  },\n  \"mite\": {\n    \"command\": \"mite\",\n    \"detail\": \"𝑒\",\n    \"documentation\": \"\\\\mathit{e}, mathematical italic small e\"\n  },\n  \"mitepsilon\": {\n    \"command\": \"mitepsilon\",\n    \"detail\": \"𝜀\",\n    \"documentation\": \"\\\\mathit{\\\\varepsilon} (omlmathit), mathematical italic small epsilon\"\n  },\n  \"miteta\": {\n    \"command\": \"miteta\",\n    \"detail\": \"𝜂\",\n    \"documentation\": \"\\\\mathit{\\\\eta} (omlmathit), mathematical italic small eta\"\n  },\n  \"mitf\": {\n    \"command\": \"mitf\",\n    \"detail\": \"𝑓\",\n    \"documentation\": \"\\\\mathit{f}, mathematical italic small f\"\n  },\n  \"mitg\": {\n    \"command\": \"mitg\",\n    \"detail\": \"𝑔\",\n    \"documentation\": \"\\\\mathit{g}, mathematical italic small g\"\n  },\n  \"mitgamma\": {\n    \"command\": \"mitgamma\",\n    \"detail\": \"𝛾\",\n    \"documentation\": \"\\\\mathit{\\\\gamma} (omlmathit), mathematical italic small gamma\"\n  },\n  \"miti\": {\n    \"command\": \"miti\",\n    \"detail\": \"𝑖\",\n    \"documentation\": \"\\\\mathit{i}, mathematical italic small i\"\n  },\n  \"mitiota\": {\n    \"command\": \"mitiota\",\n    \"detail\": \"𝜄\",\n    \"documentation\": \"\\\\mathit{\\\\iota} (omlmathit), mathematical italic small iota\"\n  },\n  \"mitj\": {\n    \"command\": \"mitj\",\n    \"detail\": \"𝑗\",\n    \"documentation\": \"\\\\mathit{j}, mathematical italic small j\"\n  },\n  \"mitk\": {\n    \"command\": \"mitk\",\n    \"detail\": \"𝑘\",\n    \"documentation\": \"\\\\mathit{k}, mathematical italic small k\"\n  },\n  \"mitkappa\": {\n    \"command\": \"mitkappa\",\n    \"detail\": \"𝜅\",\n    \"documentation\": \"\\\\mathit{\\\\kappa} (omlmathit), mathematical italic small kappa\"\n  },\n  \"mitl\": {\n    \"command\": \"mitl\",\n    \"detail\": \"𝑙\",\n    \"documentation\": \"\\\\mathit{l}, mathematical italic small l\"\n  },\n  \"mitlambda\": {\n    \"command\": \"mitlambda\",\n    \"detail\": \"𝜆\",\n    \"documentation\": \"\\\\mathit{\\\\lambda} (omlmathit), mathematical italic small lambda\"\n  },\n  \"mitm\": {\n    \"command\": \"mitm\",\n    \"detail\": \"𝑚\",\n    \"documentation\": \"\\\\mathit{m}, mathematical italic small m\"\n  },\n  \"mitmu\": {\n    \"command\": \"mitmu\",\n    \"detail\": \"𝜇\",\n    \"documentation\": \"\\\\mathit{\\\\mu} (omlmathit), mathematical italic small mu\"\n  },\n  \"mitn\": {\n    \"command\": \"mitn\",\n    \"detail\": \"𝑛\",\n    \"documentation\": \"\\\\mathit{n}, mathematical italic small n\"\n  },\n  \"mitnabla\": {\n    \"command\": \"mitnabla\",\n    \"detail\": \"𝛻\",\n    \"documentation\": \"Mathematical italic nabla\"\n  },\n  \"mitnu\": {\n    \"command\": \"mitnu\",\n    \"detail\": \"𝜈\",\n    \"documentation\": \"\\\\mathit{\\\\nu} (omlmathit), mathematical italic small nu\"\n  },\n  \"mito\": {\n    \"command\": \"mito\",\n    \"detail\": \"𝑜\",\n    \"documentation\": \"\\\\mathit{o}, mathematical italic small o\"\n  },\n  \"mitomega\": {\n    \"command\": \"mitomega\",\n    \"detail\": \"𝜔\",\n    \"documentation\": \"\\\\mathit{\\\\omega} (omlmathit), mathematical italic small omega\"\n  },\n  \"mitomicron\": {\n    \"command\": \"mitomicron\",\n    \"detail\": \"𝜊\",\n    \"documentation\": \"Mathematical italic small omicron\"\n  },\n  \"mitp\": {\n    \"command\": \"mitp\",\n    \"detail\": \"𝑝\",\n    \"documentation\": \"\\\\mathit{p}, mathematical italic small p\"\n  },\n  \"mitpartial\": {\n    \"command\": \"mitpartial\",\n    \"detail\": \"𝜕\",\n    \"documentation\": \"\\\\mathit{\\\\partial} (omlmathit), mathematical italic partial differential\"\n  },\n  \"mitphi\": {\n    \"command\": \"mitphi\",\n    \"detail\": \"𝜑\",\n    \"documentation\": \"\\\\mathit{\\\\varphi} (omlmathit), mathematical italic small phi\"\n  },\n  \"mitpi\": {\n    \"command\": \"mitpi\",\n    \"detail\": \"𝜋\",\n    \"documentation\": \"\\\\mathit{\\\\pi} (omlmathit), mathematical italic small pi\"\n  },\n  \"mitpsi\": {\n    \"command\": \"mitpsi\",\n    \"detail\": \"𝜓\",\n    \"documentation\": \"\\\\mathit{\\\\psi} (omlmathit), mathematical italic small psi\"\n  },\n  \"mitq\": {\n    \"command\": \"mitq\",\n    \"detail\": \"𝑞\",\n    \"documentation\": \"\\\\mathit{q}, mathematical italic small q\"\n  },\n  \"mitr\": {\n    \"command\": \"mitr\",\n    \"detail\": \"𝑟\",\n    \"documentation\": \"\\\\mathit{r}, mathematical italic small r\"\n  },\n  \"mitrho\": {\n    \"command\": \"mitrho\",\n    \"detail\": \"𝜌\",\n    \"documentation\": \"\\\\mathit{\\\\rho} (omlmathit), mathematical italic small rho\"\n  },\n  \"mits\": {\n    \"command\": \"mits\",\n    \"detail\": \"𝑠\",\n    \"documentation\": \"\\\\mathit{s}, mathematical italic small s\"\n  },\n  \"mitsansA\": {\n    \"command\": \"mitsansA\",\n    \"detail\": \"𝘈 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital a\"\n  },\n  \"mitsansB\": {\n    \"command\": \"mitsansB\",\n    \"detail\": \"𝘉 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital b\"\n  },\n  \"mitsansC\": {\n    \"command\": \"mitsansC\",\n    \"detail\": \"𝘊 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital c\"\n  },\n  \"mitsansD\": {\n    \"command\": \"mitsansD\",\n    \"detail\": \"𝘋 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital d\"\n  },\n  \"mitsansE\": {\n    \"command\": \"mitsansE\",\n    \"detail\": \"𝘌 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital e\"\n  },\n  \"mitsansF\": {\n    \"command\": \"mitsansF\",\n    \"detail\": \"𝘍 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital f\"\n  },\n  \"mitsansG\": {\n    \"command\": \"mitsansG\",\n    \"detail\": \"𝘎 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital g\"\n  },\n  \"mitsansH\": {\n    \"command\": \"mitsansH\",\n    \"detail\": \"𝘏 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital h\"\n  },\n  \"mitsansI\": {\n    \"command\": \"mitsansI\",\n    \"detail\": \"𝘐 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital i\"\n  },\n  \"mitsansJ\": {\n    \"command\": \"mitsansJ\",\n    \"detail\": \"𝘑 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital j\"\n  },\n  \"mitsansK\": {\n    \"command\": \"mitsansK\",\n    \"detail\": \"𝘒 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital k\"\n  },\n  \"mitsansL\": {\n    \"command\": \"mitsansL\",\n    \"detail\": \"𝘓 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital l\"\n  },\n  \"mitsansM\": {\n    \"command\": \"mitsansM\",\n    \"detail\": \"𝘔 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital m\"\n  },\n  \"mitsansN\": {\n    \"command\": \"mitsansN\",\n    \"detail\": \"𝘕 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital n\"\n  },\n  \"mitsansO\": {\n    \"command\": \"mitsansO\",\n    \"detail\": \"𝘖 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital o\"\n  },\n  \"mitsansP\": {\n    \"command\": \"mitsansP\",\n    \"detail\": \"𝘗 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital p\"\n  },\n  \"mitsansQ\": {\n    \"command\": \"mitsansQ\",\n    \"detail\": \"𝘘 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital q\"\n  },\n  \"mitsansR\": {\n    \"command\": \"mitsansR\",\n    \"detail\": \"𝘙 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital r\"\n  },\n  \"mitsansS\": {\n    \"command\": \"mitsansS\",\n    \"detail\": \"𝘚 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital s\"\n  },\n  \"mitsansT\": {\n    \"command\": \"mitsansT\",\n    \"detail\": \"𝘛 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital t\"\n  },\n  \"mitsansU\": {\n    \"command\": \"mitsansU\",\n    \"detail\": \"𝘜 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital u\"\n  },\n  \"mitsansV\": {\n    \"command\": \"mitsansV\",\n    \"detail\": \"𝘝 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital v\"\n  },\n  \"mitsansW\": {\n    \"command\": \"mitsansW\",\n    \"detail\": \"𝘞 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital w\"\n  },\n  \"mitsansX\": {\n    \"command\": \"mitsansX\",\n    \"detail\": \"𝘟 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital x\"\n  },\n  \"mitsansY\": {\n    \"command\": \"mitsansY\",\n    \"detail\": \"𝘠 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital y\"\n  },\n  \"mitsansZ\": {\n    \"command\": \"mitsansZ\",\n    \"detail\": \"𝘡 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic capital z\"\n  },\n  \"mitsansa\": {\n    \"command\": \"mitsansa\",\n    \"detail\": \"𝘢 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small a\"\n  },\n  \"mitsansb\": {\n    \"command\": \"mitsansb\",\n    \"detail\": \"𝘣 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small b\"\n  },\n  \"mitsansc\": {\n    \"command\": \"mitsansc\",\n    \"detail\": \"𝘤 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small c\"\n  },\n  \"mitsansd\": {\n    \"command\": \"mitsansd\",\n    \"detail\": \"𝘥 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small d\"\n  },\n  \"mitsanse\": {\n    \"command\": \"mitsanse\",\n    \"detail\": \"𝘦 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small e\"\n  },\n  \"mitsansf\": {\n    \"command\": \"mitsansf\",\n    \"detail\": \"𝘧 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small f\"\n  },\n  \"mitsansg\": {\n    \"command\": \"mitsansg\",\n    \"detail\": \"𝘨 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small g\"\n  },\n  \"mitsansh\": {\n    \"command\": \"mitsansh\",\n    \"detail\": \"𝘩 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small h\"\n  },\n  \"mitsansi\": {\n    \"command\": \"mitsansi\",\n    \"detail\": \"𝘪 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small i\"\n  },\n  \"mitsansj\": {\n    \"command\": \"mitsansj\",\n    \"detail\": \"𝘫 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small j\"\n  },\n  \"mitsansk\": {\n    \"command\": \"mitsansk\",\n    \"detail\": \"𝘬 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small k\"\n  },\n  \"mitsansl\": {\n    \"command\": \"mitsansl\",\n    \"detail\": \"𝘭 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small l\"\n  },\n  \"mitsansm\": {\n    \"command\": \"mitsansm\",\n    \"detail\": \"𝘮 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small m\"\n  },\n  \"mitsansn\": {\n    \"command\": \"mitsansn\",\n    \"detail\": \"𝘯 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small n\"\n  },\n  \"mitsanso\": {\n    \"command\": \"mitsanso\",\n    \"detail\": \"𝘰 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small o\"\n  },\n  \"mitsansp\": {\n    \"command\": \"mitsansp\",\n    \"detail\": \"𝘱 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small p\"\n  },\n  \"mitsansq\": {\n    \"command\": \"mitsansq\",\n    \"detail\": \"𝘲 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small q\"\n  },\n  \"mitsansr\": {\n    \"command\": \"mitsansr\",\n    \"detail\": \"𝘳 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small r\"\n  },\n  \"mitsanss\": {\n    \"command\": \"mitsanss\",\n    \"detail\": \"𝘴 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small s\"\n  },\n  \"mitsanst\": {\n    \"command\": \"mitsanst\",\n    \"detail\": \"𝘵 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small t\"\n  },\n  \"mitsansu\": {\n    \"command\": \"mitsansu\",\n    \"detail\": \"𝘶 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small u\"\n  },\n  \"mitsansv\": {\n    \"command\": \"mitsansv\",\n    \"detail\": \"𝘷 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small v\"\n  },\n  \"mitsansw\": {\n    \"command\": \"mitsansw\",\n    \"detail\": \"𝘸 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small w\"\n  },\n  \"mitsansx\": {\n    \"command\": \"mitsansx\",\n    \"detail\": \"𝘹 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small x\"\n  },\n  \"mitsansy\": {\n    \"command\": \"mitsansy\",\n    \"detail\": \"𝘺 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small y\"\n  },\n  \"mitsansz\": {\n    \"command\": \"mitsansz\",\n    \"detail\": \"𝘻 (\\\"omlmathsfit\\\" command)\",\n    \"documentation\": \"Mathematical sans-serif italic small z\"\n  },\n  \"mitsigma\": {\n    \"command\": \"mitsigma\",\n    \"detail\": \"𝜎\",\n    \"documentation\": \"\\\\mathit{\\\\sigma} (omlmathit), mathematical italic small sigma\"\n  },\n  \"mitt\": {\n    \"command\": \"mitt\",\n    \"detail\": \"𝑡\",\n    \"documentation\": \"\\\\mathit{t}, mathematical italic small t\"\n  },\n  \"mittau\": {\n    \"command\": \"mittau\",\n    \"detail\": \"𝜏\",\n    \"documentation\": \"\\\\mathit{\\\\tau} (omlmathit), mathematical italic small tau\"\n  },\n  \"mittheta\": {\n    \"command\": \"mittheta\",\n    \"detail\": \"𝜃\",\n    \"documentation\": \"\\\\mathit{\\\\theta} (omlmathit), mathematical italic small theta\"\n  },\n  \"mitu\": {\n    \"command\": \"mitu\",\n    \"detail\": \"𝑢\",\n    \"documentation\": \"\\\\mathit{u}, mathematical italic small u\"\n  },\n  \"mitupsilon\": {\n    \"command\": \"mitupsilon\",\n    \"detail\": \"𝜐\",\n    \"documentation\": \"\\\\mathit{\\\\upsilon} (omlmathit), mathematical italic small upsilon\"\n  },\n  \"mitv\": {\n    \"command\": \"mitv\",\n    \"detail\": \"𝑣\",\n    \"documentation\": \"\\\\mathit{v}, mathematical italic small v\"\n  },\n  \"mitvarTheta\": {\n    \"command\": \"mitvarTheta\",\n    \"detail\": \"𝛳\",\n    \"documentation\": \"Mathematical italic capital theta symbol\"\n  },\n  \"mitvarepsilon\": {\n    \"command\": \"mitvarepsilon\",\n    \"detail\": \"𝜖\",\n    \"documentation\": \"\\\\mathit{\\\\epsilon} (omlmathit), mathematical italic epsilon symbol\"\n  },\n  \"mitvarkappa\": {\n    \"command\": \"mitvarkappa\",\n    \"detail\": \"𝜘 (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Mathematical italic kappa symbol\"\n  },\n  \"mitvarphi\": {\n    \"command\": \"mitvarphi\",\n    \"detail\": \"𝜙\",\n    \"documentation\": \"\\\\mathit{\\\\phi} (omlmathit), mathematical italic phi symbol\"\n  },\n  \"mitvarpi\": {\n    \"command\": \"mitvarpi\",\n    \"detail\": \"𝜛\",\n    \"documentation\": \"\\\\mathit{\\\\varpi} (omlmathit), mathematical italic pi symbol\"\n  },\n  \"mitvarrho\": {\n    \"command\": \"mitvarrho\",\n    \"detail\": \"𝜚\",\n    \"documentation\": \"\\\\mathit{\\\\varrho} (omlmathit), mathematical italic rho symbol\"\n  },\n  \"mitvarsigma\": {\n    \"command\": \"mitvarsigma\",\n    \"detail\": \"𝜍\",\n    \"documentation\": \"\\\\mathit{\\\\varsigma} (omlmathit), mathematical italic small final sigma\"\n  },\n  \"mitvartheta\": {\n    \"command\": \"mitvartheta\",\n    \"detail\": \"𝜗\",\n    \"documentation\": \"\\\\mathit{\\\\vartheta} (omlmathit), mathematical italic theta symbol\"\n  },\n  \"mitw\": {\n    \"command\": \"mitw\",\n    \"detail\": \"𝑤\",\n    \"documentation\": \"\\\\mathit{w}, mathematical italic small w\"\n  },\n  \"mitx\": {\n    \"command\": \"mitx\",\n    \"detail\": \"𝑥\",\n    \"documentation\": \"\\\\mathit{x}, mathematical italic small x\"\n  },\n  \"mitxi\": {\n    \"command\": \"mitxi\",\n    \"detail\": \"𝜉\",\n    \"documentation\": \"\\\\mathit{\\\\xi} (omlmathit), mathematical italic small xi\"\n  },\n  \"mity\": {\n    \"command\": \"mity\",\n    \"detail\": \"𝑦\",\n    \"documentation\": \"\\\\mathit{y}, mathematical italic small y\"\n  },\n  \"mitz\": {\n    \"command\": \"mitz\",\n    \"detail\": \"𝑧\",\n    \"documentation\": \"\\\\mathit{z}, mathematical italic small z\"\n  },\n  \"mitzeta\": {\n    \"command\": \"mitzeta\",\n    \"detail\": \"𝜁\",\n    \"documentation\": \"\\\\mathit{\\\\zeta} (omlmathit), mathematical italic small zeta\"\n  },\n  \"mlcp\": {\n    \"command\": \"mlcp\",\n    \"detail\": \"⫛\",\n    \"documentation\": \"Transversal intersection\"\n  },\n  \"models\": {\n    \"command\": \"models\",\n    \"detail\": \"⊧\",\n    \"documentation\": \"Models (vertical, short double dash)\"\n  },\n  \"modtwosum\": {\n    \"command\": \"modtwosum\",\n    \"detail\": \"⨊\",\n    \"documentation\": \"Modulo two sum\"\n  },\n  \"mp\": {\n    \"command\": \"mp\",\n    \"detail\": \"∓\",\n    \"documentation\": \"Minus-or-plus sign\"\n  },\n  \"msansA\": {\n    \"command\": \"msansA\",\n    \"detail\": \"𝖠\",\n    \"documentation\": \"Mathematical sans-serif capital a\"\n  },\n  \"msansB\": {\n    \"command\": \"msansB\",\n    \"detail\": \"𝖡\",\n    \"documentation\": \"Mathematical sans-serif capital b\"\n  },\n  \"msansC\": {\n    \"command\": \"msansC\",\n    \"detail\": \"𝖢\",\n    \"documentation\": \"Mathematical sans-serif capital c\"\n  },\n  \"msansD\": {\n    \"command\": \"msansD\",\n    \"detail\": \"𝖣\",\n    \"documentation\": \"Mathematical sans-serif capital d\"\n  },\n  \"msansE\": {\n    \"command\": \"msansE\",\n    \"detail\": \"𝖤\",\n    \"documentation\": \"Mathematical sans-serif capital e\"\n  },\n  \"msansF\": {\n    \"command\": \"msansF\",\n    \"detail\": \"𝖥\",\n    \"documentation\": \"Mathematical sans-serif capital f\"\n  },\n  \"msansG\": {\n    \"command\": \"msansG\",\n    \"detail\": \"𝖦\",\n    \"documentation\": \"Mathematical sans-serif capital g\"\n  },\n  \"msansH\": {\n    \"command\": \"msansH\",\n    \"detail\": \"𝖧\",\n    \"documentation\": \"Mathematical sans-serif capital h\"\n  },\n  \"msansI\": {\n    \"command\": \"msansI\",\n    \"detail\": \"𝖨\",\n    \"documentation\": \"Mathematical sans-serif capital i\"\n  },\n  \"msansJ\": {\n    \"command\": \"msansJ\",\n    \"detail\": \"𝖩\",\n    \"documentation\": \"Mathematical sans-serif capital j\"\n  },\n  \"msansK\": {\n    \"command\": \"msansK\",\n    \"detail\": \"𝖪\",\n    \"documentation\": \"Mathematical sans-serif capital k\"\n  },\n  \"msansL\": {\n    \"command\": \"msansL\",\n    \"detail\": \"𝖫\",\n    \"documentation\": \"Mathematical sans-serif capital l\"\n  },\n  \"msansM\": {\n    \"command\": \"msansM\",\n    \"detail\": \"𝖬\",\n    \"documentation\": \"Mathematical sans-serif capital m\"\n  },\n  \"msansN\": {\n    \"command\": \"msansN\",\n    \"detail\": \"𝖭\",\n    \"documentation\": \"Mathematical sans-serif capital n\"\n  },\n  \"msansO\": {\n    \"command\": \"msansO\",\n    \"detail\": \"𝖮\",\n    \"documentation\": \"Mathematical sans-serif capital o\"\n  },\n  \"msansP\": {\n    \"command\": \"msansP\",\n    \"detail\": \"𝖯\",\n    \"documentation\": \"Mathematical sans-serif capital p\"\n  },\n  \"msansQ\": {\n    \"command\": \"msansQ\",\n    \"detail\": \"𝖰\",\n    \"documentation\": \"Mathematical sans-serif capital q\"\n  },\n  \"msansR\": {\n    \"command\": \"msansR\",\n    \"detail\": \"𝖱\",\n    \"documentation\": \"Mathematical sans-serif capital r\"\n  },\n  \"msansS\": {\n    \"command\": \"msansS\",\n    \"detail\": \"𝖲\",\n    \"documentation\": \"Mathematical sans-serif capital s\"\n  },\n  \"msansT\": {\n    \"command\": \"msansT\",\n    \"detail\": \"𝖳\",\n    \"documentation\": \"Mathematical sans-serif capital t\"\n  },\n  \"msansU\": {\n    \"command\": \"msansU\",\n    \"detail\": \"𝖴\",\n    \"documentation\": \"Mathematical sans-serif capital u\"\n  },\n  \"msansV\": {\n    \"command\": \"msansV\",\n    \"detail\": \"𝖵\",\n    \"documentation\": \"Mathematical sans-serif capital v\"\n  },\n  \"msansW\": {\n    \"command\": \"msansW\",\n    \"detail\": \"𝖶\",\n    \"documentation\": \"Mathematical sans-serif capital w\"\n  },\n  \"msansX\": {\n    \"command\": \"msansX\",\n    \"detail\": \"𝖷\",\n    \"documentation\": \"Mathematical sans-serif capital x\"\n  },\n  \"msansY\": {\n    \"command\": \"msansY\",\n    \"detail\": \"𝖸\",\n    \"documentation\": \"Mathematical sans-serif capital y\"\n  },\n  \"msansZ\": {\n    \"command\": \"msansZ\",\n    \"detail\": \"𝖹\",\n    \"documentation\": \"Mathematical sans-serif capital z\"\n  },\n  \"msansa\": {\n    \"command\": \"msansa\",\n    \"detail\": \"𝖺\",\n    \"documentation\": \"Mathematical sans-serif small a\"\n  },\n  \"msansb\": {\n    \"command\": \"msansb\",\n    \"detail\": \"𝖻\",\n    \"documentation\": \"Mathematical sans-serif small b\"\n  },\n  \"msansc\": {\n    \"command\": \"msansc\",\n    \"detail\": \"𝖼\",\n    \"documentation\": \"Mathematical sans-serif small c\"\n  },\n  \"msansd\": {\n    \"command\": \"msansd\",\n    \"detail\": \"𝖽\",\n    \"documentation\": \"Mathematical sans-serif small d\"\n  },\n  \"msanse\": {\n    \"command\": \"msanse\",\n    \"detail\": \"𝖾\",\n    \"documentation\": \"Mathematical sans-serif small e\"\n  },\n  \"msanseight\": {\n    \"command\": \"msanseight\",\n    \"detail\": \"𝟪\",\n    \"documentation\": \"Mathematical sans-serif digit 8\"\n  },\n  \"msansf\": {\n    \"command\": \"msansf\",\n    \"detail\": \"𝖿\",\n    \"documentation\": \"Mathematical sans-serif small f\"\n  },\n  \"msansfive\": {\n    \"command\": \"msansfive\",\n    \"detail\": \"𝟧\",\n    \"documentation\": \"Mathematical sans-serif digit 5\"\n  },\n  \"msansfour\": {\n    \"command\": \"msansfour\",\n    \"detail\": \"𝟦\",\n    \"documentation\": \"Mathematical sans-serif digit 4\"\n  },\n  \"msansg\": {\n    \"command\": \"msansg\",\n    \"detail\": \"𝗀\",\n    \"documentation\": \"Mathematical sans-serif small g\"\n  },\n  \"msansh\": {\n    \"command\": \"msansh\",\n    \"detail\": \"𝗁\",\n    \"documentation\": \"Mathematical sans-serif small h\"\n  },\n  \"msansi\": {\n    \"command\": \"msansi\",\n    \"detail\": \"𝗂\",\n    \"documentation\": \"Mathematical sans-serif small i\"\n  },\n  \"msansj\": {\n    \"command\": \"msansj\",\n    \"detail\": \"𝗃\",\n    \"documentation\": \"Mathematical sans-serif small j\"\n  },\n  \"msansk\": {\n    \"command\": \"msansk\",\n    \"detail\": \"𝗄\",\n    \"documentation\": \"Mathematical sans-serif small k\"\n  },\n  \"msansl\": {\n    \"command\": \"msansl\",\n    \"detail\": \"𝗅\",\n    \"documentation\": \"Mathematical sans-serif small l\"\n  },\n  \"msansm\": {\n    \"command\": \"msansm\",\n    \"detail\": \"𝗆\",\n    \"documentation\": \"Mathematical sans-serif small m\"\n  },\n  \"msansn\": {\n    \"command\": \"msansn\",\n    \"detail\": \"𝗇\",\n    \"documentation\": \"Mathematical sans-serif small n\"\n  },\n  \"msansnine\": {\n    \"command\": \"msansnine\",\n    \"detail\": \"𝟫\",\n    \"documentation\": \"Mathematical sans-serif digit 9\"\n  },\n  \"msanso\": {\n    \"command\": \"msanso\",\n    \"detail\": \"𝗈\",\n    \"documentation\": \"Mathematical sans-serif small o\"\n  },\n  \"msansone\": {\n    \"command\": \"msansone\",\n    \"detail\": \"𝟣\",\n    \"documentation\": \"Mathematical sans-serif digit 1\"\n  },\n  \"msansp\": {\n    \"command\": \"msansp\",\n    \"detail\": \"𝗉\",\n    \"documentation\": \"Mathematical sans-serif small p\"\n  },\n  \"msansq\": {\n    \"command\": \"msansq\",\n    \"detail\": \"𝗊\",\n    \"documentation\": \"Mathematical sans-serif small q\"\n  },\n  \"msansr\": {\n    \"command\": \"msansr\",\n    \"detail\": \"𝗋\",\n    \"documentation\": \"Mathematical sans-serif small r\"\n  },\n  \"msanss\": {\n    \"command\": \"msanss\",\n    \"detail\": \"𝗌\",\n    \"documentation\": \"Mathematical sans-serif small s\"\n  },\n  \"msansseven\": {\n    \"command\": \"msansseven\",\n    \"detail\": \"𝟩\",\n    \"documentation\": \"Mathematical sans-serif digit 7\"\n  },\n  \"msanssix\": {\n    \"command\": \"msanssix\",\n    \"detail\": \"𝟨\",\n    \"documentation\": \"Mathematical sans-serif digit 6\"\n  },\n  \"msanst\": {\n    \"command\": \"msanst\",\n    \"detail\": \"𝗍\",\n    \"documentation\": \"Mathematical sans-serif small t\"\n  },\n  \"msansthree\": {\n    \"command\": \"msansthree\",\n    \"detail\": \"𝟥\",\n    \"documentation\": \"Mathematical sans-serif digit 3\"\n  },\n  \"msanstwo\": {\n    \"command\": \"msanstwo\",\n    \"detail\": \"𝟤\",\n    \"documentation\": \"Mathematical sans-serif digit 2\"\n  },\n  \"msansu\": {\n    \"command\": \"msansu\",\n    \"detail\": \"𝗎\",\n    \"documentation\": \"Mathematical sans-serif small u\"\n  },\n  \"msansv\": {\n    \"command\": \"msansv\",\n    \"detail\": \"𝗏\",\n    \"documentation\": \"Mathematical sans-serif small v\"\n  },\n  \"msansw\": {\n    \"command\": \"msansw\",\n    \"detail\": \"𝗐\",\n    \"documentation\": \"Mathematical sans-serif small w\"\n  },\n  \"msansx\": {\n    \"command\": \"msansx\",\n    \"detail\": \"𝗑\",\n    \"documentation\": \"Mathematical sans-serif small x\"\n  },\n  \"msansy\": {\n    \"command\": \"msansy\",\n    \"detail\": \"𝗒\",\n    \"documentation\": \"Mathematical sans-serif small y\"\n  },\n  \"msansz\": {\n    \"command\": \"msansz\",\n    \"detail\": \"𝗓\",\n    \"documentation\": \"Mathematical sans-serif small z\"\n  },\n  \"msanszero\": {\n    \"command\": \"msanszero\",\n    \"detail\": \"𝟢\",\n    \"documentation\": \"Mathematical sans-serif digit 0\"\n  },\n  \"mscrA\": {\n    \"command\": \"mscrA\",\n    \"detail\": \"𝒜\",\n    \"documentation\": \"Mathematical script capital a\"\n  },\n  \"mscrB\": {\n    \"command\": \"mscrB\",\n    \"detail\": \"ℬ\",\n    \"documentation\": \"Bernoulli function (script capital b)\"\n  },\n  \"mscrC\": {\n    \"command\": \"mscrC\",\n    \"detail\": \"𝒞\",\n    \"documentation\": \"Mathematical script capital c\"\n  },\n  \"mscrD\": {\n    \"command\": \"mscrD\",\n    \"detail\": \"𝒟\",\n    \"documentation\": \"Mathematical script capital d\"\n  },\n  \"mscrE\": {\n    \"command\": \"mscrE\",\n    \"detail\": \"ℰ\",\n    \"documentation\": \"/scr e, script capital e\"\n  },\n  \"mscrF\": {\n    \"command\": \"mscrF\",\n    \"detail\": \"ℱ\",\n    \"documentation\": \"/scr f, script capital f\"\n  },\n  \"mscrG\": {\n    \"command\": \"mscrG\",\n    \"detail\": \"𝒢\",\n    \"documentation\": \"Mathematical script capital g\"\n  },\n  \"mscrH\": {\n    \"command\": \"mscrH\",\n    \"detail\": \"ℋ\",\n    \"documentation\": \"Hamiltonian (script capital h)\"\n  },\n  \"mscrI\": {\n    \"command\": \"mscrI\",\n    \"detail\": \"ℐ\",\n    \"documentation\": \"/scr i, script capital i\"\n  },\n  \"mscrJ\": {\n    \"command\": \"mscrJ\",\n    \"detail\": \"𝒥\",\n    \"documentation\": \"Mathematical script capital j\"\n  },\n  \"mscrK\": {\n    \"command\": \"mscrK\",\n    \"detail\": \"𝒦\",\n    \"documentation\": \"Mathematical script capital k\"\n  },\n  \"mscrL\": {\n    \"command\": \"mscrL\",\n    \"detail\": \"ℒ\",\n    \"documentation\": \"Lagrangian (script capital l)\"\n  },\n  \"mscrM\": {\n    \"command\": \"mscrM\",\n    \"detail\": \"ℳ\",\n    \"documentation\": \"Physics m-matrix (script capital m)\"\n  },\n  \"mscrN\": {\n    \"command\": \"mscrN\",\n    \"detail\": \"𝒩\",\n    \"documentation\": \"Mathematical script capital n\"\n  },\n  \"mscrO\": {\n    \"command\": \"mscrO\",\n    \"detail\": \"𝒪\",\n    \"documentation\": \"Mathematical script capital o\"\n  },\n  \"mscrP\": {\n    \"command\": \"mscrP\",\n    \"detail\": \"𝒫\",\n    \"documentation\": \"Mathematical script capital p\"\n  },\n  \"mscrQ\": {\n    \"command\": \"mscrQ\",\n    \"detail\": \"𝒬\",\n    \"documentation\": \"Mathematical script capital q\"\n  },\n  \"mscrR\": {\n    \"command\": \"mscrR\",\n    \"detail\": \"ℛ\",\n    \"documentation\": \"/scr r, script capital r\"\n  },\n  \"mscrS\": {\n    \"command\": \"mscrS\",\n    \"detail\": \"𝒮\",\n    \"documentation\": \"Mathematical script capital s\"\n  },\n  \"mscrT\": {\n    \"command\": \"mscrT\",\n    \"detail\": \"𝒯\",\n    \"documentation\": \"Mathematical script capital t\"\n  },\n  \"mscrU\": {\n    \"command\": \"mscrU\",\n    \"detail\": \"𝒰\",\n    \"documentation\": \"Mathematical script capital u\"\n  },\n  \"mscrV\": {\n    \"command\": \"mscrV\",\n    \"detail\": \"𝒱\",\n    \"documentation\": \"Mathematical script capital v\"\n  },\n  \"mscrW\": {\n    \"command\": \"mscrW\",\n    \"detail\": \"𝒲\",\n    \"documentation\": \"Mathematical script capital w\"\n  },\n  \"mscrX\": {\n    \"command\": \"mscrX\",\n    \"detail\": \"𝒳\",\n    \"documentation\": \"Mathematical script capital x\"\n  },\n  \"mscrY\": {\n    \"command\": \"mscrY\",\n    \"detail\": \"𝒴\",\n    \"documentation\": \"Mathematical script capital y\"\n  },\n  \"mscrZ\": {\n    \"command\": \"mscrZ\",\n    \"detail\": \"𝒵\",\n    \"documentation\": \"Mathematical script capital z\"\n  },\n  \"mscra\": {\n    \"command\": \"mscra\",\n    \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small a\"\n  },\n  \"mscrb\": {\n    \"command\": \"mscrb\",\n    \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small b\"\n  },\n  \"mscrc\": {\n    \"command\": \"mscrc\",\n    \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small c\"\n  },\n  \"mscrd\": {\n    \"command\": \"mscrd\",\n    \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small d\"\n  },\n  \"mscre\": {\n    \"command\": \"mscre\",\n    \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"/scr e, script small letter e\"\n  },\n  \"mscrf\": {\n    \"command\": \"mscrf\",\n    \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small f\"\n  },\n  \"mscrg\": {\n    \"command\": \"mscrg\",\n    \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"/scr g, script small letter g\"\n  },\n  \"mscrh\": {\n    \"command\": \"mscrh\",\n    \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small h\"\n  },\n  \"mscri\": {\n    \"command\": \"mscri\",\n    \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small i\"\n  },\n  \"mscrj\": {\n    \"command\": \"mscrj\",\n    \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small j\"\n  },\n  \"mscrk\": {\n    \"command\": \"mscrk\",\n    \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small k\"\n  },\n  \"mscrl\": {\n    \"command\": \"mscrl\",\n    \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small l\"\n  },\n  \"mscrm\": {\n    \"command\": \"mscrm\",\n    \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small m\"\n  },\n  \"mscrn\": {\n    \"command\": \"mscrn\",\n    \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small n\"\n  },\n  \"mscro\": {\n    \"command\": \"mscro\",\n    \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Order of (script small o)\"\n  },\n  \"mscrp\": {\n    \"command\": \"mscrp\",\n    \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small p\"\n  },\n  \"mscrq\": {\n    \"command\": \"mscrq\",\n    \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small q\"\n  },\n  \"mscrr\": {\n    \"command\": \"mscrr\",\n    \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small r\"\n  },\n  \"mscrs\": {\n    \"command\": \"mscrs\",\n    \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small s\"\n  },\n  \"mscrt\": {\n    \"command\": \"mscrt\",\n    \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small t\"\n  },\n  \"mscru\": {\n    \"command\": \"mscru\",\n    \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small u\"\n  },\n  \"mscrv\": {\n    \"command\": \"mscrv\",\n    \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small v\"\n  },\n  \"mscrw\": {\n    \"command\": \"mscrw\",\n    \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small w\"\n  },\n  \"mscrx\": {\n    \"command\": \"mscrx\",\n    \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small x\"\n  },\n  \"mscry\": {\n    \"command\": \"mscry\",\n    \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small y\"\n  },\n  \"mscrz\": {\n    \"command\": \"mscrz\",\n    \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n    \"documentation\": \"Mathematical script small z\"\n  },\n  \"mttA\": {\n    \"command\": \"mttA\",\n    \"detail\": \"𝙰\",\n    \"documentation\": \"Mathematical monospace capital a\"\n  },\n  \"mttB\": {\n    \"command\": \"mttB\",\n    \"detail\": \"𝙱\",\n    \"documentation\": \"Mathematical monospace capital b\"\n  },\n  \"mttC\": {\n    \"command\": \"mttC\",\n    \"detail\": \"𝙲\",\n    \"documentation\": \"Mathematical monospace capital c\"\n  },\n  \"mttD\": {\n    \"command\": \"mttD\",\n    \"detail\": \"𝙳\",\n    \"documentation\": \"Mathematical monospace capital d\"\n  },\n  \"mttE\": {\n    \"command\": \"mttE\",\n    \"detail\": \"𝙴\",\n    \"documentation\": \"Mathematical monospace capital e\"\n  },\n  \"mttF\": {\n    \"command\": \"mttF\",\n    \"detail\": \"𝙵\",\n    \"documentation\": \"Mathematical monospace capital f\"\n  },\n  \"mttG\": {\n    \"command\": \"mttG\",\n    \"detail\": \"𝙶\",\n    \"documentation\": \"Mathematical monospace capital g\"\n  },\n  \"mttH\": {\n    \"command\": \"mttH\",\n    \"detail\": \"𝙷\",\n    \"documentation\": \"Mathematical monospace capital h\"\n  },\n  \"mttI\": {\n    \"command\": \"mttI\",\n    \"detail\": \"𝙸\",\n    \"documentation\": \"Mathematical monospace capital i\"\n  },\n  \"mttJ\": {\n    \"command\": \"mttJ\",\n    \"detail\": \"𝙹\",\n    \"documentation\": \"Mathematical monospace capital j\"\n  },\n  \"mttK\": {\n    \"command\": \"mttK\",\n    \"detail\": \"𝙺\",\n    \"documentation\": \"Mathematical monospace capital k\"\n  },\n  \"mttL\": {\n    \"command\": \"mttL\",\n    \"detail\": \"𝙻\",\n    \"documentation\": \"Mathematical monospace capital l\"\n  },\n  \"mttM\": {\n    \"command\": \"mttM\",\n    \"detail\": \"𝙼\",\n    \"documentation\": \"Mathematical monospace capital m\"\n  },\n  \"mttN\": {\n    \"command\": \"mttN\",\n    \"detail\": \"𝙽\",\n    \"documentation\": \"Mathematical monospace capital n\"\n  },\n  \"mttO\": {\n    \"command\": \"mttO\",\n    \"detail\": \"𝙾\",\n    \"documentation\": \"Mathematical monospace capital o\"\n  },\n  \"mttP\": {\n    \"command\": \"mttP\",\n    \"detail\": \"𝙿\",\n    \"documentation\": \"Mathematical monospace capital p\"\n  },\n  \"mttQ\": {\n    \"command\": \"mttQ\",\n    \"detail\": \"𝚀\",\n    \"documentation\": \"Mathematical monospace capital q\"\n  },\n  \"mttR\": {\n    \"command\": \"mttR\",\n    \"detail\": \"𝚁\",\n    \"documentation\": \"Mathematical monospace capital r\"\n  },\n  \"mttS\": {\n    \"command\": \"mttS\",\n    \"detail\": \"𝚂\",\n    \"documentation\": \"Mathematical monospace capital s\"\n  },\n  \"mttT\": {\n    \"command\": \"mttT\",\n    \"detail\": \"𝚃\",\n    \"documentation\": \"Mathematical monospace capital t\"\n  },\n  \"mttU\": {\n    \"command\": \"mttU\",\n    \"detail\": \"𝚄\",\n    \"documentation\": \"Mathematical monospace capital u\"\n  },\n  \"mttV\": {\n    \"command\": \"mttV\",\n    \"detail\": \"𝚅\",\n    \"documentation\": \"Mathematical monospace capital v\"\n  },\n  \"mttW\": {\n    \"command\": \"mttW\",\n    \"detail\": \"𝚆\",\n    \"documentation\": \"Mathematical monospace capital w\"\n  },\n  \"mttX\": {\n    \"command\": \"mttX\",\n    \"detail\": \"𝚇\",\n    \"documentation\": \"Mathematical monospace capital x\"\n  },\n  \"mttY\": {\n    \"command\": \"mttY\",\n    \"detail\": \"𝚈\",\n    \"documentation\": \"Mathematical monospace capital y\"\n  },\n  \"mttZ\": {\n    \"command\": \"mttZ\",\n    \"detail\": \"𝚉\",\n    \"documentation\": \"Mathematical monospace capital z\"\n  },\n  \"mtta\": {\n    \"command\": \"mtta\",\n    \"detail\": \"𝚊\",\n    \"documentation\": \"Mathematical monospace small a\"\n  },\n  \"mttb\": {\n    \"command\": \"mttb\",\n    \"detail\": \"𝚋\",\n    \"documentation\": \"Mathematical monospace small b\"\n  },\n  \"mttc\": {\n    \"command\": \"mttc\",\n    \"detail\": \"𝚌\",\n    \"documentation\": \"Mathematical monospace small c\"\n  },\n  \"mttd\": {\n    \"command\": \"mttd\",\n    \"detail\": \"𝚍\",\n    \"documentation\": \"Mathematical monospace small d\"\n  },\n  \"mtte\": {\n    \"command\": \"mtte\",\n    \"detail\": \"𝚎\",\n    \"documentation\": \"Mathematical monospace small e\"\n  },\n  \"mtteight\": {\n    \"command\": \"mtteight\",\n    \"detail\": \"𝟾\",\n    \"documentation\": \"Mathematical monospace digit 8\"\n  },\n  \"mttf\": {\n    \"command\": \"mttf\",\n    \"detail\": \"𝚏\",\n    \"documentation\": \"Mathematical monospace small f\"\n  },\n  \"mttfive\": {\n    \"command\": \"mttfive\",\n    \"detail\": \"𝟻\",\n    \"documentation\": \"Mathematical monospace digit 5\"\n  },\n  \"mttfour\": {\n    \"command\": \"mttfour\",\n    \"detail\": \"𝟺\",\n    \"documentation\": \"Mathematical monospace digit 4\"\n  },\n  \"mttg\": {\n    \"command\": \"mttg\",\n    \"detail\": \"𝚐\",\n    \"documentation\": \"Mathematical monospace small g\"\n  },\n  \"mtth\": {\n    \"command\": \"mtth\",\n    \"detail\": \"𝚑\",\n    \"documentation\": \"Mathematical monospace small h\"\n  },\n  \"mtti\": {\n    \"command\": \"mtti\",\n    \"detail\": \"𝚒\",\n    \"documentation\": \"Mathematical monospace small i\"\n  },\n  \"mttj\": {\n    \"command\": \"mttj\",\n    \"detail\": \"𝚓\",\n    \"documentation\": \"Mathematical monospace small j\"\n  },\n  \"mttk\": {\n    \"command\": \"mttk\",\n    \"detail\": \"𝚔\",\n    \"documentation\": \"Mathematical monospace small k\"\n  },\n  \"mttl\": {\n    \"command\": \"mttl\",\n    \"detail\": \"𝚕\",\n    \"documentation\": \"Mathematical monospace small l\"\n  },\n  \"mttm\": {\n    \"command\": \"mttm\",\n    \"detail\": \"𝚖\",\n    \"documentation\": \"Mathematical monospace small m\"\n  },\n  \"mttn\": {\n    \"command\": \"mttn\",\n    \"detail\": \"𝚗\",\n    \"documentation\": \"Mathematical monospace small n\"\n  },\n  \"mttnine\": {\n    \"command\": \"mttnine\",\n    \"detail\": \"𝟿\",\n    \"documentation\": \"Mathematical monospace digit 9\"\n  },\n  \"mtto\": {\n    \"command\": \"mtto\",\n    \"detail\": \"𝚘\",\n    \"documentation\": \"Mathematical monospace small o\"\n  },\n  \"mttone\": {\n    \"command\": \"mttone\",\n    \"detail\": \"𝟷\",\n    \"documentation\": \"Mathematical monospace digit 1\"\n  },\n  \"mttp\": {\n    \"command\": \"mttp\",\n    \"detail\": \"𝚙\",\n    \"documentation\": \"Mathematical monospace small p\"\n  },\n  \"mttq\": {\n    \"command\": \"mttq\",\n    \"detail\": \"𝚚\",\n    \"documentation\": \"Mathematical monospace small q\"\n  },\n  \"mttr\": {\n    \"command\": \"mttr\",\n    \"detail\": \"𝚛\",\n    \"documentation\": \"Mathematical monospace small r\"\n  },\n  \"mtts\": {\n    \"command\": \"mtts\",\n    \"detail\": \"𝚜\",\n    \"documentation\": \"Mathematical monospace small s\"\n  },\n  \"mttseven\": {\n    \"command\": \"mttseven\",\n    \"detail\": \"𝟽\",\n    \"documentation\": \"Mathematical monospace digit 7\"\n  },\n  \"mttsix\": {\n    \"command\": \"mttsix\",\n    \"detail\": \"𝟼\",\n    \"documentation\": \"Mathematical monospace digit 6\"\n  },\n  \"mttt\": {\n    \"command\": \"mttt\",\n    \"detail\": \"𝚝\",\n    \"documentation\": \"Mathematical monospace small t\"\n  },\n  \"mttthree\": {\n    \"command\": \"mttthree\",\n    \"detail\": \"𝟹\",\n    \"documentation\": \"Mathematical monospace digit 3\"\n  },\n  \"mtttwo\": {\n    \"command\": \"mtttwo\",\n    \"detail\": \"𝟸\",\n    \"documentation\": \"Mathematical monospace digit 2\"\n  },\n  \"mttu\": {\n    \"command\": \"mttu\",\n    \"detail\": \"𝚞\",\n    \"documentation\": \"Mathematical monospace small u\"\n  },\n  \"mttv\": {\n    \"command\": \"mttv\",\n    \"detail\": \"𝚟\",\n    \"documentation\": \"Mathematical monospace small v\"\n  },\n  \"mttw\": {\n    \"command\": \"mttw\",\n    \"detail\": \"𝚠\",\n    \"documentation\": \"Mathematical monospace small w\"\n  },\n  \"mttx\": {\n    \"command\": \"mttx\",\n    \"detail\": \"𝚡\",\n    \"documentation\": \"Mathematical monospace small x\"\n  },\n  \"mtty\": {\n    \"command\": \"mtty\",\n    \"detail\": \"𝚢\",\n    \"documentation\": \"Mathematical monospace small y\"\n  },\n  \"mttz\": {\n    \"command\": \"mttz\",\n    \"detail\": \"𝚣\",\n    \"documentation\": \"Mathematical monospace small z\"\n  },\n  \"mttzero\": {\n    \"command\": \"mttzero\",\n    \"detail\": \"𝟶\",\n    \"documentation\": \"Mathematical monospace digit 0\"\n  },\n  \"multimap\": {\n    \"command\": \"multimap\",\n    \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"/multimap a:\"\n  },\n  \"multimapinv\": {\n    \"command\": \"multimapinv\",\n    \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Left multimap\"\n  },\n  \"nHdownarrow\": {\n    \"command\": \"nHdownarrow\",\n    \"detail\": \"⇟\",\n    \"documentation\": \"Downwards arrow with double stroke\"\n  },\n  \"nHuparrow\": {\n    \"command\": \"nHuparrow\",\n    \"detail\": \"⇞\",\n    \"documentation\": \"Upwards arrow with double stroke\"\n  },\n  \"nLeftarrow\": {\n    \"command\": \"nLeftarrow\",\n    \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not implied by\"\n  },\n  \"nLeftrightarrow\": {\n    \"command\": \"nLeftrightarrow\",\n    \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not left and right double arrows\"\n  },\n  \"nRightarrow\": {\n    \"command\": \"nRightarrow\",\n    \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not implies\"\n  },\n  \"nVDash\": {\n    \"command\": \"nVDash\",\n    \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not double vert, double dash\"\n  },\n  \"nVdash\": {\n    \"command\": \"nVdash\",\n    \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not double vertical, dash\"\n  },\n  \"nVleftarrow\": {\n    \"command\": \"nVleftarrow\",\n    \"detail\": \"⇺\",\n    \"documentation\": \"Leftwards arrow with double vertical stroke\"\n  },\n  \"nVleftarrowtail\": {\n    \"command\": \"nVleftarrowtail\",\n    \"detail\": \"⬺\",\n    \"documentation\": \"Leftwards arrow with tail with double vertical stroke\"\n  },\n  \"nVleftrightarrow\": {\n    \"command\": \"nVleftrightarrow\",\n    \"detail\": \"⇼\",\n    \"documentation\": \"Left right arrow with double vertical stroke, finite relation\"\n  },\n  \"nVrightarrow\": {\n    \"command\": \"nVrightarrow\",\n    \"detail\": \"⇻ (\\\"oz\\\" command)\",\n    \"documentation\": \"Rightwards arrow with double vertical stroke, finite function\"\n  },\n  \"nVrightarrowtail\": {\n    \"command\": \"nVrightarrowtail\",\n    \"detail\": \"⤕ (\\\"oz\\\" command)\",\n    \"documentation\": \"Rightwards arrow with tail with double vertical stroke, finite injection\"\n  },\n  \"nVtwoheadleftarrow\": {\n    \"command\": \"nVtwoheadleftarrow\",\n    \"detail\": \"⬵\",\n    \"documentation\": \"Leftwards two-headed arrow with double vertical stroke\"\n  },\n  \"nVtwoheadleftarrowtail\": {\n    \"command\": \"nVtwoheadleftarrowtail\",\n    \"detail\": \"⬽\",\n    \"documentation\": \"Leftwards two-headed arrow with tail with double vertical stroke\"\n  },\n  \"nVtwoheadrightarrow\": {\n    \"command\": \"nVtwoheadrightarrow\",\n    \"detail\": \"⤁\",\n    \"documentation\": \"Rightwards two-headed arrow with double vertical stroke, finite surjection\"\n  },\n  \"nVtwoheadrightarrowtail\": {\n    \"command\": \"nVtwoheadrightarrowtail\",\n    \"detail\": \"⤘\",\n    \"documentation\": \"Rightwards two-headed arrow with tail with double vertical stroke, finite surjective injection\"\n  },\n  \"nabla\": {\n    \"command\": \"nabla\",\n    \"detail\": \"∇\",\n    \"documentation\": \"Nabla, del, hamilton operator\"\n  },\n  \"napprox\": {\n    \"command\": \"napprox\",\n    \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not approximate\"\n  },\n  \"nasymp\": {\n    \"command\": \"nasymp\",\n    \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n  },\n  \"natural\": {\n    \"command\": \"natural\",\n    \"detail\": \"♮\",\n    \"documentation\": \"Music natural\"\n  },\n  \"ncong\": {\n    \"command\": \"ncong\",\n    \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not congruent with\"\n  },\n  \"ne\": {\n    \"command\": \"ne\",\n    \"detail\": \"≠\",\n    \"documentation\": \"\\\\ne, r: not equal\"\n  },\n  \"nearrow\": {\n    \"command\": \"nearrow\",\n    \"detail\": \"↗\",\n    \"documentation\": \"Ne pointing arrow\"\n  },\n  \"neg\": {\n    \"command\": \"neg\",\n    \"detail\": \"¬\",\n    \"documentation\": \"\\\\lnot, not sign\"\n  },\n  \"neovnwarrow\": {\n    \"command\": \"neovnwarrow\",\n    \"detail\": \"⤱\",\n    \"documentation\": \"North east arrow crossing north west arrow\"\n  },\n  \"neovsearrow\": {\n    \"command\": \"neovsearrow\",\n    \"detail\": \"⤮\",\n    \"documentation\": \"North east arrow crossing south east arrow\"\n  },\n  \"nequiv\": {\n    \"command\": \"nequiv\",\n    \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not identical with\"\n  },\n  \"neswarrow\": {\n    \"command\": \"neswarrow\",\n    \"detail\": \"⤢\",\n    \"documentation\": \"North east and south west arrow\"\n  },\n  \"neuter\": {\n    \"command\": \"neuter\",\n    \"detail\": \"⚲\",\n    \"documentation\": \"Neuter\"\n  },\n  \"nexists\": {\n    \"command\": \"nexists\",\n    \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"\\\\nexi (oz), negated exists\"\n  },\n  \"ngeq\": {\n    \"command\": \"ngeq\",\n    \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n  },\n  \"ngtr\": {\n    \"command\": \"ngtr\",\n    \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not greater-than\"\n  },\n  \"ngtrless\": {\n    \"command\": \"ngtrless\",\n    \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not greater, less\"\n  },\n  \"ngtrsim\": {\n    \"command\": \"ngtrsim\",\n    \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not greater, similar\"\n  },\n  \"nhVvert\": {\n    \"command\": \"nhVvert\",\n    \"detail\": \"⫵\",\n    \"documentation\": \"Triple vertical bar with horizontal stroke\"\n  },\n  \"nhpar\": {\n    \"command\": \"nhpar\",\n    \"detail\": \"⫲\",\n    \"documentation\": \"Parallel with horizontal stroke\"\n  },\n  \"ni\": {\n    \"command\": \"ni\",\n    \"detail\": \"∋\",\n    \"documentation\": \"\\\\owns, contains, variant\"\n  },\n  \"niobar\": {\n    \"command\": \"niobar\",\n    \"detail\": \"⋾\",\n    \"documentation\": \"Small contains with overbar\"\n  },\n  \"nis\": {\n    \"command\": \"nis\",\n    \"detail\": \"⋼\",\n    \"documentation\": \"Small contains with vertical bar at end of horizontal stroke\"\n  },\n  \"nisd\": {\n    \"command\": \"nisd\",\n    \"detail\": \"⋺\",\n    \"documentation\": \"Contains with long horizontal stroke\"\n  },\n  \"nleftarrow\": {\n    \"command\": \"nleftarrow\",\n    \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not left arrow\"\n  },\n  \"nleftrightarrow\": {\n    \"command\": \"nleftrightarrow\",\n    \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not left and right arrow\"\n  },\n  \"nleq\": {\n    \"command\": \"nleq\",\n    \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n  },\n  \"nless\": {\n    \"command\": \"nless\",\n    \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not less-than\"\n  },\n  \"nlessgtr\": {\n    \"command\": \"nlessgtr\",\n    \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not less, greater\"\n  },\n  \"nlesssim\": {\n    \"command\": \"nlesssim\",\n    \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not less, similar\"\n  },\n  \"nmid\": {\n    \"command\": \"nmid\",\n    \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Negated mid, does not divide\"\n  },\n  \"nni\": {\n    \"command\": \"nni\",\n    \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n  },\n  \"not\": {\n    \"command\": \"not\",\n    \"detail\": \" ̸\",\n    \"documentation\": \"Combining long solidus overlay\"\n  },\n  \"notin\": {\n    \"command\": \"notin\",\n    \"detail\": \"∉\",\n    \"documentation\": \"\\\\nin (wrisym), negated set membership\"\n  },\n  \"nparallel\": {\n    \"command\": \"nparallel\",\n    \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Not parallel\"\n  },\n  \"npolint\": {\n    \"command\": \"npolint\",\n    \"detail\": \"⨔\",\n    \"documentation\": \"Line integration not including the pole\"\n  },\n  \"nprec\": {\n    \"command\": \"nprec\",\n    \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not precedes\"\n  },\n  \"npreccurlyeq\": {\n    \"command\": \"npreccurlyeq\",\n    \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Does not precede or equal\"\n  },\n  \"nrightarrow\": {\n    \"command\": \"nrightarrow\",\n    \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not right arrow\"\n  },\n  \"nsim\": {\n    \"command\": \"nsim\",\n    \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not similar\"\n  },\n  \"nsime\": {\n    \"command\": \"nsime\",\n    \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Not similar, equals\"\n  },\n  \"nsqsubseteq\": {\n    \"command\": \"nsqsubseteq\",\n    \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not, square subset, equals\"\n  },\n  \"nsqsupseteq\": {\n    \"command\": \"nsqsupseteq\",\n    \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not, square superset, equals\"\n  },\n  \"nsubset\": {\n    \"command\": \"nsubset\",\n    \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not subset, variant [slash negation]\"\n  },\n  \"nsubseteq\": {\n    \"command\": \"nsubseteq\",\n    \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not subset, equals\"\n  },\n  \"nsucc\": {\n    \"command\": \"nsucc\",\n    \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not succeeds\"\n  },\n  \"nsucccurlyeq\": {\n    \"command\": \"nsucccurlyeq\",\n    \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not succeeds, curly equals\"\n  },\n  \"nsupset\": {\n    \"command\": \"nsupset\",\n    \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Not superset, variant [slash negation]\"\n  },\n  \"nsupseteq\": {\n    \"command\": \"nsupseteq\",\n    \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Not superset, equals\"\n  },\n  \"ntriangleleft\": {\n    \"command\": \"ntriangleleft\",\n    \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n  },\n  \"ntrianglelefteq\": {\n    \"command\": \"ntrianglelefteq\",\n    \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n  },\n  \"ntriangleright\": {\n    \"command\": \"ntriangleright\",\n    \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n  },\n  \"ntrianglerighteq\": {\n    \"command\": \"ntrianglerighteq\",\n    \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n  },\n  \"nvDash\": {\n    \"command\": \"nvDash\",\n    \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Not vertical, double dash\"\n  },\n  \"nvLeftarrow\": {\n    \"command\": \"nvLeftarrow\",\n    \"detail\": \"⤂\",\n    \"documentation\": \"Leftwards double arrow with vertical stroke\"\n  },\n  \"nvLeftrightarrow\": {\n    \"command\": \"nvLeftrightarrow\",\n    \"detail\": \"⤄\",\n    \"documentation\": \"Left right double arrow with vertical stroke\"\n  },\n  \"nvRightarrow\": {\n    \"command\": \"nvRightarrow\",\n    \"detail\": \"⤃\",\n    \"documentation\": \"Rightwards double arrow with vertical stroke\"\n  },\n  \"nvdash\": {\n    \"command\": \"nvdash\",\n    \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Not vertical, dash\"\n  },\n  \"nvinfty\": {\n    \"command\": \"nvinfty\",\n    \"detail\": \"⧞\",\n    \"documentation\": \"Infinity negated with vertical bar\"\n  },\n  \"nvleftarrow\": {\n    \"command\": \"nvleftarrow\",\n    \"detail\": \"⇷\",\n    \"documentation\": \"Leftwards arrow with vertical stroke\"\n  },\n  \"nvleftarrowtail\": {\n    \"command\": \"nvleftarrowtail\",\n    \"detail\": \"⬹\",\n    \"documentation\": \"Leftwards arrow with tail with vertical stroke\"\n  },\n  \"nvleftrightarrow\": {\n    \"command\": \"nvleftrightarrow\",\n    \"detail\": \"⇹\",\n    \"documentation\": \"Left right arrow with vertical stroke, partial relation\"\n  },\n  \"nvrightarrow\": {\n    \"command\": \"nvrightarrow\",\n    \"detail\": \"⇸ (\\\"oz\\\" command)\",\n    \"documentation\": \"Rightwards arrow with vertical stroke, partial function\"\n  },\n  \"nvrightarrowtail\": {\n    \"command\": \"nvrightarrowtail\",\n    \"detail\": \"⤔ (\\\"oz\\\" command)\",\n    \"documentation\": \"Rightwards arrow with tail with vertical stroke, partial injection\"\n  },\n  \"nvtwoheadleftarrow\": {\n    \"command\": \"nvtwoheadleftarrow\",\n    \"detail\": \"⬴\",\n    \"documentation\": \"Leftwards two-headed arrow with vertical stroke\"\n  },\n  \"nvtwoheadleftarrowtail\": {\n    \"command\": \"nvtwoheadleftarrowtail\",\n    \"detail\": \"⬼\",\n    \"documentation\": \"Leftwards two-headed arrow with tail with vertical stroke\"\n  },\n  \"nvtwoheadrightarrow\": {\n    \"command\": \"nvtwoheadrightarrow\",\n    \"detail\": \"⤀ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\psurj (oz), rightwards two-headed arrow with vertical stroke, partial surjection\"\n  },\n  \"nvtwoheadrightarrowtail\": {\n    \"command\": \"nvtwoheadrightarrowtail\",\n    \"detail\": \"⤗\",\n    \"documentation\": \"Rightwards two-headed arrow with tail with vertical stroke, surjective injection\"\n  },\n  \"nwarrow\": {\n    \"command\": \"nwarrow\",\n    \"detail\": \"↖ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Nw pointing arrow\"\n  },\n  \"nwovnearrow\": {\n    \"command\": \"nwovnearrow\",\n    \"detail\": \"⤲\",\n    \"documentation\": \"North west arrow crossing north east arrow\"\n  },\n  \"nwsearrow\": {\n    \"command\": \"nwsearrow\",\n    \"detail\": \"⤡\",\n    \"documentation\": \"North west and south east arrow\"\n  },\n  \"obar\": {\n    \"command\": \"obar\",\n    \"detail\": \"⌽\",\n    \"documentation\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n  },\n  \"obot\": {\n    \"command\": \"obot\",\n    \"detail\": \"⦺\",\n    \"documentation\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n  },\n  \"obrbrak\": {\n    \"command\": \"obrbrak\",\n    \"detail\": \"⏠\",\n    \"documentation\": \"Top tortoise shell bracket (mathematical use)\"\n  },\n  \"obslash\": {\n    \"command\": \"obslash\",\n    \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Circled reverse solidus\"\n  },\n  \"ocirc\": {\n    \"command\": \"ocirc\",\n    \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\ring (yhmath), ring\"\n  },\n  \"ocommatopright\": {\n    \"command\": \"ocommatopright\",\n    \"detail\": \" ̕\",\n    \"documentation\": \"Combining comma above right\"\n  },\n  \"octothorpe\": {\n    \"command\": \"octothorpe\",\n    \"detail\": \"#\",\n    \"documentation\": \"\\\\# (oz), number sign\"\n  },\n  \"odiv\": {\n    \"command\": \"odiv\",\n    \"detail\": \"⨸\",\n    \"documentation\": \"Circled division sign\"\n  },\n  \"odot\": {\n    \"command\": \"odot\",\n    \"detail\": \"⊙\",\n    \"documentation\": \"Middle dot in circle\"\n  },\n  \"odotslashdot\": {\n    \"command\": \"odotslashdot\",\n    \"detail\": \"⦼\",\n    \"documentation\": \"Circled anticlockwise-rotated division sign\"\n  },\n  \"ogreaterthan\": {\n    \"command\": \"ogreaterthan\",\n    \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Circled greater-than\"\n  },\n  \"oiiint\": {\n    \"command\": \"oiiint\",\n    \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n    \"documentation\": \"Triple contour integral operator\"\n  },\n  \"oiint\": {\n    \"command\": \"oiint\",\n    \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n    \"documentation\": \"\\\\dbloint (wrisym), double contour integral operator\"\n  },\n  \"oint\": {\n    \"command\": \"oint\",\n    \"detail\": \"∮\",\n    \"documentation\": \"Contour integral operator\"\n  },\n  \"ointctrclockwise\": {\n    \"command\": \"ointctrclockwise\",\n    \"detail\": \"∳ (\\\"esint\\\" command)\",\n    \"documentation\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n  },\n  \"olcross\": {\n    \"command\": \"olcross\",\n    \"detail\": \"⦻\",\n    \"documentation\": \"Circle with superimposed x\"\n  },\n  \"olessthan\": {\n    \"command\": \"olessthan\",\n    \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Circled less-than\"\n  },\n  \"ominus\": {\n    \"command\": \"ominus\",\n    \"detail\": \"⊖\",\n    \"documentation\": \"Minus sign in circle\"\n  },\n  \"operp\": {\n    \"command\": \"operp\",\n    \"detail\": \"⦹\",\n    \"documentation\": \"Circled perpendicular\"\n  },\n  \"oplus\": {\n    \"command\": \"oplus\",\n    \"detail\": \"⊕\",\n    \"documentation\": \"Plus sign in circle\"\n  },\n  \"opluslhrim\": {\n    \"command\": \"opluslhrim\",\n    \"detail\": \"⨭\",\n    \"documentation\": \"Plus sign in left half circle\"\n  },\n  \"oplusrhrim\": {\n    \"command\": \"oplusrhrim\",\n    \"detail\": \"⨮\",\n    \"documentation\": \"Plus sign in right half circle\"\n  },\n  \"origof\": {\n    \"command\": \"origof\",\n    \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Original of\"\n  },\n  \"oslash\": {\n    \"command\": \"oslash\",\n    \"detail\": \"⊘\",\n    \"documentation\": \"Solidus in circle\"\n  },\n  \"otimes\": {\n    \"command\": \"otimes\",\n    \"detail\": \"⊗\",\n    \"documentation\": \"Multiply sign in circle\"\n  },\n  \"otimeshat\": {\n    \"command\": \"otimeshat\",\n    \"detail\": \"⨶\",\n    \"documentation\": \"Circled multiplication sign with circumflex accent\"\n  },\n  \"otimeslhrim\": {\n    \"command\": \"otimeslhrim\",\n    \"detail\": \"⨴\",\n    \"documentation\": \"Multiplication sign in left half circle\"\n  },\n  \"otimesrhrim\": {\n    \"command\": \"otimesrhrim\",\n    \"detail\": \"⨵\",\n    \"documentation\": \"Multiplication sign in right half circle\"\n  },\n  \"oturnedcomma\": {\n    \"command\": \"oturnedcomma\",\n    \"detail\": \" ̒\",\n    \"documentation\": \"Combining turned comma above\"\n  },\n  \"overbar\": {\n    \"command\": \"overbar\",\n    \"detail\": \" ̅\",\n    \"documentation\": \"Overbar embellishment\"\n  },\n  \"overbrace\": {\n    \"command\": \"overbrace\",\n    \"detail\": \"⏞\",\n    \"documentation\": \"Top curly bracket (mathematical use)\"\n  },\n  \"overbracket\": {\n    \"command\": \"overbracket\",\n    \"detail\": \"⎴\",\n    \"documentation\": \"Top square bracket\"\n  },\n  \"overleftarrow\": {\n    \"command\": \"overleftarrow\",\n    \"detail\": \"x⃖ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\overleftarrow, combining left arrow above\"\n  },\n  \"overleftrightarrow\": {\n    \"command\": \"overleftrightarrow\",\n    \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n    \"documentation\": \"Combining left right arrow above\"\n  },\n  \"overparen\": {\n    \"command\": \"overparen\",\n    \"detail\": \"⏜ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"\\\\wideparen (yhmath mathabx fourier), top parenthesis (mathematical use)\"\n  },\n  \"ovhook\": {\n    \"command\": \"ovhook\",\n    \"detail\": \" ̉\",\n    \"documentation\": \"Combining hook above\"\n  },\n  \"parallel\": {\n    \"command\": \"parallel\",\n    \"detail\": \"∥\",\n    \"documentation\": \"Parallel\"\n  },\n  \"parallelogram\": {\n    \"command\": \"parallelogram\",\n    \"detail\": \"▱\",\n    \"documentation\": \"Parallelogram, open\"\n  },\n  \"parallelogramblack\": {\n    \"command\": \"parallelogramblack\",\n    \"detail\": \"▰\",\n    \"documentation\": \"Black parallelogram\"\n  },\n  \"parsim\": {\n    \"command\": \"parsim\",\n    \"detail\": \"⫳\",\n    \"documentation\": \"Parallel with tilde operator\"\n  },\n  \"partial\": {\n    \"command\": \"partial\",\n    \"detail\": \"∂\",\n    \"documentation\": \"\\\\partialup (kpfonts), partial differential\"\n  },\n  \"partialmeetcontraction\": {\n    \"command\": \"partialmeetcontraction\",\n    \"detail\": \"⪣\",\n    \"documentation\": \"Double less-than with underbar\"\n  },\n  \"pentagon\": {\n    \"command\": \"pentagon\",\n    \"detail\": \"⬠\",\n    \"documentation\": \"White pentagon\"\n  },\n  \"pentagonblack\": {\n    \"command\": \"pentagonblack\",\n    \"detail\": \"⬟\",\n    \"documentation\": \"Black pentagon\"\n  },\n  \"percent\": {\n    \"command\": \"percent\",\n    \"detail\": \"%\",\n    \"documentation\": \"Percent sign\"\n  },\n  \"period\": {\n    \"command\": \"period\",\n    \"detail\": \".\",\n    \"documentation\": \"Full stop, period\"\n  },\n  \"perp\": {\n    \"command\": \"perp\",\n    \"detail\": \"⟂\",\n    \"documentation\": \"Perpendicular\"\n  },\n  \"perps\": {\n    \"command\": \"perps\",\n    \"detail\": \"⫡\",\n    \"documentation\": \"Perpendicular with s\"\n  },\n  \"pitchfork\": {\n    \"command\": \"pitchfork\",\n    \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Pitchfork\"\n  },\n  \"plus\": {\n    \"command\": \"plus\",\n    \"detail\": \"+\",\n    \"documentation\": \"Plus sign\"\n  },\n  \"plusdot\": {\n    \"command\": \"plusdot\",\n    \"detail\": \"⨥\",\n    \"documentation\": \"Plus sign with dot below\"\n  },\n  \"pluseqq\": {\n    \"command\": \"pluseqq\",\n    \"detail\": \"⩲\",\n    \"documentation\": \"Plus sign above equals sign\"\n  },\n  \"plushat\": {\n    \"command\": \"plushat\",\n    \"detail\": \"⨣\",\n    \"documentation\": \"Plus sign with circumflex accent above\"\n  },\n  \"plussim\": {\n    \"command\": \"plussim\",\n    \"detail\": \"⨦\",\n    \"documentation\": \"Plus sign with tilde below\"\n  },\n  \"plussubtwo\": {\n    \"command\": \"plussubtwo\",\n    \"detail\": \"⨧\",\n    \"documentation\": \"Plus sign with subscript two\"\n  },\n  \"plustrif\": {\n    \"command\": \"plustrif\",\n    \"detail\": \"⨨\",\n    \"documentation\": \"Plus sign with black triangle\"\n  },\n  \"pm\": {\n    \"command\": \"pm\",\n    \"detail\": \"±\",\n    \"documentation\": \"Plus-or-minus sign\"\n  },\n  \"pointint\": {\n    \"command\": \"pointint\",\n    \"detail\": \"⨕\",\n    \"documentation\": \"Integral around a point operator\"\n  },\n  \"postalmark\": {\n    \"command\": \"postalmark\",\n    \"detail\": \"〒\",\n    \"documentation\": \"Postal mark\"\n  },\n  \"prec\": {\n    \"command\": \"prec\",\n    \"detail\": \"≺\",\n    \"documentation\": \"Precedes\"\n  },\n  \"precapprox\": {\n    \"command\": \"precapprox\",\n    \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Precedes above almost equal to\"\n  },\n  \"preccurlyeq\": {\n    \"command\": \"preccurlyeq\",\n    \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n  },\n  \"preceq\": {\n    \"command\": \"preceq\",\n    \"detail\": \"⪯\",\n    \"documentation\": \"Precedes above single-line equals sign\"\n  },\n  \"preceqq\": {\n    \"command\": \"preceqq\",\n    \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Precedes above equals sign\"\n  },\n  \"precnapprox\": {\n    \"command\": \"precnapprox\",\n    \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Precedes above not almost equal to\"\n  },\n  \"precneq\": {\n    \"command\": \"precneq\",\n    \"detail\": \"⪱\",\n    \"documentation\": \"Precedes above single-line not equal to\"\n  },\n  \"precneqq\": {\n    \"command\": \"precneqq\",\n    \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Precedes above not equal to\"\n  },\n  \"precnsim\": {\n    \"command\": \"precnsim\",\n    \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Precedes, not similar\"\n  },\n  \"precsim\": {\n    \"command\": \"precsim\",\n    \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\precedestilde (wrisym), precedes, similar\"\n  },\n  \"prime\": {\n    \"command\": \"prime\",\n    \"detail\": \"′\",\n    \"documentation\": \"Prime or minute, not superscripted\"\n  },\n  \"prod\": {\n    \"command\": \"prod\",\n    \"detail\": \"∏\",\n    \"documentation\": \"Product operator\"\n  },\n  \"profline\": {\n    \"command\": \"profline\",\n    \"detail\": \"⌒\",\n    \"documentation\": \"Profile of a line\"\n  },\n  \"profsurf\": {\n    \"command\": \"profsurf\",\n    \"detail\": \"⌓\",\n    \"documentation\": \"Profile of a surface\"\n  },\n  \"propto\": {\n    \"command\": \"propto\",\n    \"detail\": \"∝\",\n    \"documentation\": \"\\\\varpropto (amssymb), is proportional to\"\n  },\n  \"prurel\": {\n    \"command\": \"prurel\",\n    \"detail\": \"⊰\",\n    \"documentation\": \"Element precedes under relation\"\n  },\n  \"pullback\": {\n    \"command\": \"pullback\",\n    \"detail\": \"⟓\",\n    \"documentation\": \"Lower right corner with dot\"\n  },\n  \"pushout\": {\n    \"command\": \"pushout\",\n    \"detail\": \"⟔\",\n    \"documentation\": \"Upper left corner with dot\"\n  },\n  \"qprime\": {\n    \"command\": \"qprime\",\n    \"detail\": \"⁗ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Quadruple prime, not superscripted\"\n  },\n  \"quarternote\": {\n    \"command\": \"quarternote\",\n    \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n    \"documentation\": \"Music note (sung text sign)\"\n  },\n  \"questeq\": {\n    \"command\": \"questeq\",\n    \"detail\": \"≟\",\n    \"documentation\": \"Equal with questionmark\"\n  },\n  \"question\": {\n    \"command\": \"question\",\n    \"detail\": \"?\",\n    \"documentation\": \"Question mark\"\n  },\n  \"rAngle\": {\n    \"command\": \"rAngle\",\n    \"detail\": \"⟫ (\\\"oz\\\" command)\",\n    \"documentation\": \"Mathematical right double angle bracket, right chevron bracket\"\n  },\n  \"rBrace\": {\n    \"command\": \"rBrace\",\n    \"detail\": \"⦄\",\n    \"documentation\": \"Right white curly bracket\"\n  },\n  \"rBrack\": {\n    \"command\": \"rBrack\",\n    \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n    \"documentation\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n  },\n  \"rParen\": {\n    \"command\": \"rParen\",\n    \"detail\": \"⦆ (\\\"mathbbol\\\" command)\",\n    \"documentation\": \"Right white parenthesis\"\n  },\n  \"rangle\": {\n    \"command\": \"rangle\",\n    \"detail\": \"⟩\",\n    \"documentation\": \"Mathematical right angle bracket\"\n  },\n  \"rangledot\": {\n    \"command\": \"rangledot\",\n    \"detail\": \"⦒\",\n    \"documentation\": \"Right angle bracket with dot\"\n  },\n  \"rangledownzigzagarrow\": {\n    \"command\": \"rangledownzigzagarrow\",\n    \"detail\": \"⍼\",\n    \"documentation\": \"Right angle with downwards zigzag arrow\"\n  },\n  \"rbag\": {\n    \"command\": \"rbag\",\n    \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n    \"documentation\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n  },\n  \"rblkbrbrak\": {\n    \"command\": \"rblkbrbrak\",\n    \"detail\": \"⦘\",\n    \"documentation\": \"Right black tortoise shell bracket\"\n  },\n  \"rbrace\": {\n    \"command\": \"rbrace\",\n    \"detail\": \"}\",\n    \"documentation\": \"\\\\rbrace, right curly bracket\"\n  },\n  \"rbracelend\": {\n    \"command\": \"rbracelend\",\n    \"detail\": \"⎭\",\n    \"documentation\": \"Right curly bracket lower hook\"\n  },\n  \"rbracemid\": {\n    \"command\": \"rbracemid\",\n    \"detail\": \"⎬\",\n    \"documentation\": \"Right curly bracket middle piece\"\n  },\n  \"rbraceuend\": {\n    \"command\": \"rbraceuend\",\n    \"detail\": \"⎫\",\n    \"documentation\": \"Right curly bracket upper hook\"\n  },\n  \"rbrack\": {\n    \"command\": \"rbrack\",\n    \"detail\": \"]\",\n    \"documentation\": \"Right square bracket\"\n  },\n  \"rbrackextender\": {\n    \"command\": \"rbrackextender\",\n    \"detail\": \"⎥\",\n    \"documentation\": \"Right square bracket extension\"\n  },\n  \"rbracklend\": {\n    \"command\": \"rbracklend\",\n    \"detail\": \"⎦\",\n    \"documentation\": \"Right square bracket lower corner\"\n  },\n  \"rbracklrtick\": {\n    \"command\": \"rbracklrtick\",\n    \"detail\": \"⦎\",\n    \"documentation\": \"Right square bracket with tick in bottom corner\"\n  },\n  \"rbrackubar\": {\n    \"command\": \"rbrackubar\",\n    \"detail\": \"⦌\",\n    \"documentation\": \"Right square bracket with underbar\"\n  },\n  \"rbrackuend\": {\n    \"command\": \"rbrackuend\",\n    \"detail\": \"⎤\",\n    \"documentation\": \"Right square bracket upper corner\"\n  },\n  \"rbrackurtick\": {\n    \"command\": \"rbrackurtick\",\n    \"detail\": \"⦐\",\n    \"documentation\": \"Right square bracket with tick in top corner\"\n  },\n  \"rbrbrak\": {\n    \"command\": \"rbrbrak\",\n    \"detail\": \"〕\",\n    \"documentation\": \"Right broken bracket\"\n  },\n  \"rceil\": {\n    \"command\": \"rceil\",\n    \"detail\": \"⌉\",\n    \"documentation\": \"Right ceiling\"\n  },\n  \"rcurvyangle\": {\n    \"command\": \"rcurvyangle\",\n    \"detail\": \"⧽\",\n    \"documentation\": \"Right pointing curved angle bracket\"\n  },\n  \"rdiagovfdiag\": {\n    \"command\": \"rdiagovfdiag\",\n    \"detail\": \"⤫\",\n    \"documentation\": \"Rising diagonal crossing falling diagonal\"\n  },\n  \"rdiagovsearrow\": {\n    \"command\": \"rdiagovsearrow\",\n    \"detail\": \"⤰\",\n    \"documentation\": \"Rising diagonal crossing south east arrow\"\n  },\n  \"revangle\": {\n    \"command\": \"revangle\",\n    \"detail\": \"⦣\",\n    \"documentation\": \"Reversed angle\"\n  },\n  \"revangleubar\": {\n    \"command\": \"revangleubar\",\n    \"detail\": \"⦥\",\n    \"documentation\": \"Reversed angle with underbar\"\n  },\n  \"revemptyset\": {\n    \"command\": \"revemptyset\",\n    \"detail\": \"⦰\",\n    \"documentation\": \"Reversed empty set\"\n  },\n  \"revnmid\": {\n    \"command\": \"revnmid\",\n    \"detail\": \"⫮\",\n    \"documentation\": \"Does not divide with reversed negation slash\"\n  },\n  \"rfbowtie\": {\n    \"command\": \"rfbowtie\",\n    \"detail\": \"⧒\",\n    \"documentation\": \"Right black bowtie\"\n  },\n  \"rfloor\": {\n    \"command\": \"rfloor\",\n    \"detail\": \"⌋\",\n    \"documentation\": \"Right floor\"\n  },\n  \"rftimes\": {\n    \"command\": \"rftimes\",\n    \"detail\": \"⧕\",\n    \"documentation\": \"Right black times\"\n  },\n  \"rightangle\": {\n    \"command\": \"rightangle\",\n    \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Right (90 degree) angle\"\n  },\n  \"rightanglemdot\": {\n    \"command\": \"rightanglemdot\",\n    \"detail\": \"⦝\",\n    \"documentation\": \"Measured right angle with dot\"\n  },\n  \"rightanglesqr\": {\n    \"command\": \"rightanglesqr\",\n    \"detail\": \"⦜\",\n    \"documentation\": \"Right angle variant with square\"\n  },\n  \"rightarrow\": {\n    \"command\": \"rightarrow\",\n    \"detail\": \"→\",\n    \"documentation\": \"\\\\to, \\\\tfun (oz), \\\\fun (oz), rightward arrow, total function\"\n  },\n  \"rightarrowapprox\": {\n    \"command\": \"rightarrowapprox\",\n    \"detail\": \"⥵\",\n    \"documentation\": \"Rightwards arrow above almost equal to\"\n  },\n  \"rightarrowbackapprox\": {\n    \"command\": \"rightarrowbackapprox\",\n    \"detail\": \"⭈\",\n    \"documentation\": \"Rightwards arrow above reverse almost equal to\"\n  },\n  \"rightarrowbar\": {\n    \"command\": \"rightarrowbar\",\n    \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Rightwards arrow to bar\"\n  },\n  \"rightarrowbsimilar\": {\n    \"command\": \"rightarrowbsimilar\",\n    \"detail\": \"⭌\",\n    \"documentation\": \"Righttwards arrow above reverse tilde operator\"\n  },\n  \"rightarrowdiamond\": {\n    \"command\": \"rightarrowdiamond\",\n    \"detail\": \"⤞\",\n    \"documentation\": \"Rightwards arrow to black diamond\"\n  },\n  \"rightarrowgtr\": {\n    \"command\": \"rightarrowgtr\",\n    \"detail\": \"⭃\",\n    \"documentation\": \"Rightwards arrow through less-than\"\n  },\n  \"rightarrowonoplus\": {\n    \"command\": \"rightarrowonoplus\",\n    \"detail\": \"⟴\",\n    \"documentation\": \"Right arrow with circled plus\"\n  },\n  \"rightarrowplus\": {\n    \"command\": \"rightarrowplus\",\n    \"detail\": \"⥅\",\n    \"documentation\": \"Rightwards arrow with plus below\"\n  },\n  \"rightarrowshortleftarrow\": {\n    \"command\": \"rightarrowshortleftarrow\",\n    \"detail\": \"⥂\",\n    \"documentation\": \"Rightwards arrow above short leftwards arrow\"\n  },\n  \"rightarrowsimilar\": {\n    \"command\": \"rightarrowsimilar\",\n    \"detail\": \"⥴\",\n    \"documentation\": \"Rightwards arrow above tilde operator\"\n  },\n  \"rightarrowsupset\": {\n    \"command\": \"rightarrowsupset\",\n    \"detail\": \"⭄\",\n    \"documentation\": \"Rightwards arrow through subset\"\n  },\n  \"rightarrowtail\": {\n    \"command\": \"rightarrowtail\",\n    \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n  },\n  \"rightarrowtriangle\": {\n    \"command\": \"rightarrowtriangle\",\n    \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"Rightwards open-headed arrow\"\n  },\n  \"rightarrowx\": {\n    \"command\": \"rightarrowx\",\n    \"detail\": \"⥇\",\n    \"documentation\": \"Rightwards arrow through x\"\n  },\n  \"rightbkarrow\": {\n    \"command\": \"rightbkarrow\",\n    \"detail\": \"⤍\",\n    \"documentation\": \"Rightwards double dash arrow\"\n  },\n  \"rightcurvedarrow\": {\n    \"command\": \"rightcurvedarrow\",\n    \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Wave arrow pointing directly right\"\n  },\n  \"rightdasharrow\": {\n    \"command\": \"rightdasharrow\",\n    \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n  },\n  \"rightdbltail\": {\n    \"command\": \"rightdbltail\",\n    \"detail\": \"⤜\",\n    \"documentation\": \"Rightwards double arrow-tail\"\n  },\n  \"rightdotarrow\": {\n    \"command\": \"rightdotarrow\",\n    \"detail\": \"⤑\",\n    \"documentation\": \"Rightwards arrow with dotted stem\"\n  },\n  \"rightdowncurvedarrow\": {\n    \"command\": \"rightdowncurvedarrow\",\n    \"detail\": \"⤷\",\n    \"documentation\": \"Arrow pointing downwards then curving rightwards\"\n  },\n  \"rightfishtail\": {\n    \"command\": \"rightfishtail\",\n    \"detail\": \"⥽ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Right fish tail\"\n  },\n  \"rightharpoonaccent\": {\n    \"command\": \"rightharpoonaccent\",\n    \"detail\": \"x⃑ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Combining right harpoon above\"\n  },\n  \"rightharpoondown\": {\n    \"command\": \"rightharpoondown\",\n    \"detail\": \"⇁\",\n    \"documentation\": \"Right harpoon-down\"\n  },\n  \"rightharpoondownbar\": {\n    \"command\": \"rightharpoondownbar\",\n    \"detail\": \"⥗ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb down to bar\"\n  },\n  \"rightharpoonsupdown\": {\n    \"command\": \"rightharpoonsupdown\",\n    \"detail\": \"⥤ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb up above rightwards harpoon with barb down\"\n  },\n  \"rightharpoonup\": {\n    \"command\": \"rightharpoonup\",\n    \"detail\": \"⇀\",\n    \"documentation\": \"Right harpoon-up\"\n  },\n  \"rightharpoonupbar\": {\n    \"command\": \"rightharpoonupbar\",\n    \"detail\": \"⥓ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb up to bar\"\n  },\n  \"rightharpoonupdash\": {\n    \"command\": \"rightharpoonupdash\",\n    \"detail\": \"⥬ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Rightwards harpoon with barb up above long dash\"\n  },\n  \"rightimply\": {\n    \"command\": \"rightimply\",\n    \"detail\": \"⥰\",\n    \"documentation\": \"Right double arrow with rounded head\"\n  },\n  \"rightleftarrows\": {\n    \"command\": \"rightleftarrows\",\n    \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n  },\n  \"rightleftharpoons\": {\n    \"command\": \"rightleftharpoons\",\n    \"detail\": \"⇌\",\n    \"documentation\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n  },\n  \"rightleftharpoonsdown\": {\n    \"command\": \"rightleftharpoonsdown\",\n    \"detail\": \"⥩\",\n    \"documentation\": \"Rightwards harpoon with barb down above leftwards harpoon with barb down\"\n  },\n  \"rightleftharpoonsup\": {\n    \"command\": \"rightleftharpoonsup\",\n    \"detail\": \"⥨\",\n    \"documentation\": \"Rightwards harpoon with barb up above leftwards harpoon with barb up\"\n  },\n  \"rightmoon\": {\n    \"command\": \"rightmoon\",\n    \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n    \"documentation\": \"First quarter moon\"\n  },\n  \"rightouterjoin\": {\n    \"command\": \"rightouterjoin\",\n    \"detail\": \"⟖\",\n    \"documentation\": \"Right outer join\"\n  },\n  \"rightpentagon\": {\n    \"command\": \"rightpentagon\",\n    \"detail\": \"⭔\",\n    \"documentation\": \"White right-pointing pentagon\"\n  },\n  \"rightpentagonblack\": {\n    \"command\": \"rightpentagonblack\",\n    \"detail\": \"⭓\",\n    \"documentation\": \"Black right-pointing pentagon\"\n  },\n  \"rightrightarrows\": {\n    \"command\": \"rightrightarrows\",\n    \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Two right arrows\"\n  },\n  \"rightsquigarrow\": {\n    \"command\": \"rightsquigarrow\",\n    \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Rightwards squiggle arrow\"\n  },\n  \"righttail\": {\n    \"command\": \"righttail\",\n    \"detail\": \"⤚\",\n    \"documentation\": \"Rightwards arrow-tail\"\n  },\n  \"rightthreearrows\": {\n    \"command\": \"rightthreearrows\",\n    \"detail\": \"⇶\",\n    \"documentation\": \"Three rightwards arrows\"\n  },\n  \"rightthreetimes\": {\n    \"command\": \"rightthreetimes\",\n    \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Right semidirect product\"\n  },\n  \"rightwavearrow\": {\n    \"command\": \"rightwavearrow\",\n    \"detail\": \"↝\",\n    \"documentation\": \"Right arrow-wavy\"\n  },\n  \"rightwhitearrow\": {\n    \"command\": \"rightwhitearrow\",\n    \"detail\": \"⇨\",\n    \"documentation\": \"Rightwards white arrow\"\n  },\n  \"ringplus\": {\n    \"command\": \"ringplus\",\n    \"detail\": \"⨢\",\n    \"documentation\": \"Plus sign with small circle above\"\n  },\n  \"risingdotseq\": {\n    \"command\": \"risingdotseq\",\n    \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Equals, rising dots\"\n  },\n  \"rmoustache\": {\n    \"command\": \"rmoustache\",\n    \"detail\": \"⎱\",\n    \"documentation\": \"? \\\\rmoustache, upper right or lower left curly bracket section\"\n  },\n  \"rparen\": {\n    \"command\": \"rparen\",\n    \"detail\": \")\",\n    \"documentation\": \"Right parenthesis\"\n  },\n  \"rparenextender\": {\n    \"command\": \"rparenextender\",\n    \"detail\": \"⎟\",\n    \"documentation\": \"Right parenthesis extension\"\n  },\n  \"rparengtr\": {\n    \"command\": \"rparengtr\",\n    \"detail\": \"⦔\",\n    \"documentation\": \"Right arc greater-than bracket\"\n  },\n  \"rparenlend\": {\n    \"command\": \"rparenlend\",\n    \"detail\": \"⎠\",\n    \"documentation\": \"Right parenthesis lower hook\"\n  },\n  \"rparenuend\": {\n    \"command\": \"rparenuend\",\n    \"detail\": \"⎞\",\n    \"documentation\": \"Right parenthesis upper hook\"\n  },\n  \"rppolint\": {\n    \"command\": \"rppolint\",\n    \"detail\": \"⨒\",\n    \"documentation\": \"Line integration with rectangular path around pole\"\n  },\n  \"rrangle\": {\n    \"command\": \"rrangle\",\n    \"detail\": \"⦊ (\\\"oz\\\" command)\",\n    \"documentation\": \"Z notation right binding bracket\"\n  },\n  \"rrparenthesis\": {\n    \"command\": \"rrparenthesis\",\n    \"detail\": \"⦈ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n  },\n  \"rsolbar\": {\n    \"command\": \"rsolbar\",\n    \"detail\": \"⧷\",\n    \"documentation\": \"Reverse solidus with horizontal stroke\"\n  },\n  \"rsqhook\": {\n    \"command\": \"rsqhook\",\n    \"detail\": \"⫎\",\n    \"documentation\": \"Square right open box operator\"\n  },\n  \"rsub\": {\n    \"command\": \"rsub\",\n    \"detail\": \"⩥ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\nrres (oz), range antirestriction\"\n  },\n  \"rtimes\": {\n    \"command\": \"rtimes\",\n    \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Times sign, right closed\"\n  },\n  \"rtriltri\": {\n    \"command\": \"rtriltri\",\n    \"detail\": \"⧎\",\n    \"documentation\": \"Right triangle above left triangle\"\n  },\n  \"ruledelayed\": {\n    \"command\": \"ruledelayed\",\n    \"detail\": \"⧴\",\n    \"documentation\": \"Rule-delayed\"\n  },\n  \"rvboxline\": {\n    \"command\": \"rvboxline\",\n    \"detail\": \"⎹\",\n    \"documentation\": \"Right vertical box line\"\n  },\n  \"rvzigzag\": {\n    \"command\": \"rvzigzag\",\n    \"detail\": \"⧙\",\n    \"documentation\": \"Right wiggly fence\"\n  },\n  \"sansLmirrored\": {\n    \"command\": \"sansLmirrored\",\n    \"detail\": \"⅃\",\n    \"documentation\": \"Reversed sans-serif capital l\"\n  },\n  \"sansLturned\": {\n    \"command\": \"sansLturned\",\n    \"detail\": \"⅂\",\n    \"documentation\": \"Turned sans-serif capital l\"\n  },\n  \"scpolint\": {\n    \"command\": \"scpolint\",\n    \"detail\": \"⨓\",\n    \"documentation\": \"Line integration with semicircular path around pole\"\n  },\n  \"scurel\": {\n    \"command\": \"scurel\",\n    \"detail\": \"⊱\",\n    \"documentation\": \"Succeeds under relation\"\n  },\n  \"searrow\": {\n    \"command\": \"searrow\",\n    \"detail\": \"↘\",\n    \"documentation\": \"Se pointing arrow\"\n  },\n  \"semicolon\": {\n    \"command\": \"semicolon\",\n    \"detail\": \";\",\n    \"documentation\": \"Semicolon p:\"\n  },\n  \"seovnearrow\": {\n    \"command\": \"seovnearrow\",\n    \"detail\": \"⤭\",\n    \"documentation\": \"South east arrow crossing north east arrow\"\n  },\n  \"setminus\": {\n    \"command\": \"setminus\",\n    \"detail\": \"⧵\",\n    \"documentation\": \"Reverse solidus operator\"\n  },\n  \"sharp\": {\n    \"command\": \"sharp\",\n    \"detail\": \"♯\",\n    \"documentation\": \"\\\\# (oz), music sharp sign, infix bag count\"\n  },\n  \"shortdowntack\": {\n    \"command\": \"shortdowntack\",\n    \"detail\": \"⫟\",\n    \"documentation\": \"Short down tack\"\n  },\n  \"shortlefttack\": {\n    \"command\": \"shortlefttack\",\n    \"detail\": \"⫞\",\n    \"documentation\": \"Short left tack\"\n  },\n  \"shortrightarrowleftarrow\": {\n    \"command\": \"shortrightarrowleftarrow\",\n    \"detail\": \"⥄\",\n    \"documentation\": \"Short rightwards arrow above leftwards arrow\"\n  },\n  \"shortuptack\": {\n    \"command\": \"shortuptack\",\n    \"detail\": \"⫠\",\n    \"documentation\": \"Short up tack\"\n  },\n  \"shuffle\": {\n    \"command\": \"shuffle\",\n    \"detail\": \"⧢\",\n    \"documentation\": \"Shuffle product\"\n  },\n  \"sim\": {\n    \"command\": \"sim\",\n    \"detail\": \"∼\",\n    \"documentation\": \"Similar to, tilde operator\"\n  },\n  \"simeq\": {\n    \"command\": \"simeq\",\n    \"detail\": \"≃\",\n    \"documentation\": \"Similar, equals\"\n  },\n  \"simgE\": {\n    \"command\": \"simgE\",\n    \"detail\": \"⪠\",\n    \"documentation\": \"Similar above greater-than above equals sign\"\n  },\n  \"simgtr\": {\n    \"command\": \"simgtr\",\n    \"detail\": \"⪞\",\n    \"documentation\": \"Similar or greater-than\"\n  },\n  \"similarleftarrow\": {\n    \"command\": \"similarleftarrow\",\n    \"detail\": \"⭉\",\n    \"documentation\": \"Tilde operator above leftwards arrow\"\n  },\n  \"similarrightarrow\": {\n    \"command\": \"similarrightarrow\",\n    \"detail\": \"⥲\",\n    \"documentation\": \"Tilde operator above rightwards arrow\"\n  },\n  \"simlE\": {\n    \"command\": \"simlE\",\n    \"detail\": \"⪟\",\n    \"documentation\": \"Similar above less-than above equals sign\"\n  },\n  \"simless\": {\n    \"command\": \"simless\",\n    \"detail\": \"⪝\",\n    \"documentation\": \"Similar or less-than\"\n  },\n  \"simminussim\": {\n    \"command\": \"simminussim\",\n    \"detail\": \"⩬\",\n    \"documentation\": \"Similar minus similar\"\n  },\n  \"simneqq\": {\n    \"command\": \"simneqq\",\n    \"detail\": \"≆\",\n    \"documentation\": \"Similar, not equals [vert only for 9573 entity]\"\n  },\n  \"simplus\": {\n    \"command\": \"simplus\",\n    \"detail\": \"⨤\",\n    \"documentation\": \"Plus sign with tilde above\"\n  },\n  \"simrdots\": {\n    \"command\": \"simrdots\",\n    \"detail\": \"⩫\",\n    \"documentation\": \"Tilde operator with rising dots\"\n  },\n  \"sinewave\": {\n    \"command\": \"sinewave\",\n    \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Sine wave, alternating current\"\n  },\n  \"smallblacktriangleleft\": {\n    \"command\": \"smallblacktriangleleft\",\n    \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n    \"documentation\": \"Left triangle, filled\"\n  },\n  \"smallblacktriangleright\": {\n    \"command\": \"smallblacktriangleright\",\n    \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n    \"documentation\": \"Right triangle, filled\"\n  },\n  \"smallin\": {\n    \"command\": \"smallin\",\n    \"detail\": \"∊\",\n    \"documentation\": \"Set membership (small set membership)\"\n  },\n  \"smallni\": {\n    \"command\": \"smallni\",\n    \"detail\": \"∍\",\n    \"documentation\": \"R: contains (small contains as member)\"\n  },\n  \"smallsetminus\": {\n    \"command\": \"smallsetminus\",\n    \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"Small set minus (cf. reverse solidus)\"\n  },\n  \"smalltriangleleft\": {\n    \"command\": \"smalltriangleleft\",\n    \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n  },\n  \"smalltriangleright\": {\n    \"command\": \"smalltriangleright\",\n    \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n  },\n  \"smashtimes\": {\n    \"command\": \"smashtimes\",\n    \"detail\": \"⨳\",\n    \"documentation\": \"Smash product\"\n  },\n  \"smblkcircle\": {\n    \"command\": \"smblkcircle\",\n    \"detail\": \"•\",\n    \"documentation\": \"Bullet (small, filled)\"\n  },\n  \"smblkdiamond\": {\n    \"command\": \"smblkdiamond\",\n    \"detail\": \"⬩\",\n    \"documentation\": \"Black small diamond\"\n  },\n  \"smblklozenge\": {\n    \"command\": \"smblklozenge\",\n    \"detail\": \"⬪\",\n    \"documentation\": \"Black small lozenge\"\n  },\n  \"smblksquare\": {\n    \"command\": \"smblksquare\",\n    \"detail\": \"▪\",\n    \"documentation\": \"Sq bullet, filled\"\n  },\n  \"smeparsl\": {\n    \"command\": \"smeparsl\",\n    \"detail\": \"⧤\",\n    \"documentation\": \"Equals sign and slanted parallel with tilde above\"\n  },\n  \"smile\": {\n    \"command\": \"smile\",\n    \"detail\": \"⌣\",\n    \"documentation\": \"\\\\smallsmile, smile (up curve)\"\n  },\n  \"smt\": {\n    \"command\": \"smt\",\n    \"detail\": \"⪪\",\n    \"documentation\": \"Smaller than\"\n  },\n  \"smte\": {\n    \"command\": \"smte\",\n    \"detail\": \"⪬\",\n    \"documentation\": \"Smaller than or equal to\"\n  },\n  \"smwhitestar\": {\n    \"command\": \"smwhitestar\",\n    \"detail\": \"⭒\",\n    \"documentation\": \"White small star\"\n  },\n  \"smwhtcircle\": {\n    \"command\": \"smwhtcircle\",\n    \"detail\": \"◦\",\n    \"documentation\": \"White bullet\"\n  },\n  \"smwhtdiamond\": {\n    \"command\": \"smwhtdiamond\",\n    \"detail\": \"⋄\",\n    \"documentation\": \"Diamond operator (white diamond)\"\n  },\n  \"smwhtlozenge\": {\n    \"command\": \"smwhtlozenge\",\n    \"detail\": \"⬫\",\n    \"documentation\": \"White small lozenge\"\n  },\n  \"smwhtsquare\": {\n    \"command\": \"smwhtsquare\",\n    \"detail\": \"▫\",\n    \"documentation\": \"White small square\"\n  },\n  \"spadesuit\": {\n    \"command\": \"spadesuit\",\n    \"detail\": \"♠\",\n    \"documentation\": \"Spades suit symbol\"\n  },\n  \"sphericalangle\": {\n    \"command\": \"sphericalangle\",\n    \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Spherical angle\"\n  },\n  \"sphericalangleup\": {\n    \"command\": \"sphericalangleup\",\n    \"detail\": \"⦡\",\n    \"documentation\": \"Spherical angle opening up\"\n  },\n  \"sqcap\": {\n    \"command\": \"sqcap\",\n    \"detail\": \"⊓\",\n    \"documentation\": \"Square intersection\"\n  },\n  \"sqcup\": {\n    \"command\": \"sqcup\",\n    \"detail\": \"⊔\",\n    \"documentation\": \"Square union\"\n  },\n  \"sqint\": {\n    \"command\": \"sqint\",\n    \"detail\": \"⨖ (\\\"esint\\\" command)\",\n    \"documentation\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n  },\n  \"sqlozenge\": {\n    \"command\": \"sqlozenge\",\n    \"detail\": \"⌑ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Square lozenge\"\n  },\n  \"sqrt\": {\n    \"command\": \"sqrt\",\n    \"detail\": \"√\",\n    \"documentation\": \"Radical\"\n  },\n  \"sqrtbottom\": {\n    \"command\": \"sqrtbottom\",\n    \"detail\": \"⎷\",\n    \"documentation\": \"Radical symbol bottom\"\n  },\n  \"sqsubset\": {\n    \"command\": \"sqsubset\",\n    \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Square subset\"\n  },\n  \"sqsubseteq\": {\n    \"command\": \"sqsubseteq\",\n    \"detail\": \"⊑\",\n    \"documentation\": \"Square subset, equals\"\n  },\n  \"sqsubsetneq\": {\n    \"command\": \"sqsubsetneq\",\n    \"detail\": \"⋤\",\n    \"documentation\": \"Square subset, not equals\"\n  },\n  \"sqsupset\": {\n    \"command\": \"sqsupset\",\n    \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Square superset\"\n  },\n  \"sqsupseteq\": {\n    \"command\": \"sqsupseteq\",\n    \"detail\": \"⊒\",\n    \"documentation\": \"Square superset, equals\"\n  },\n  \"sqsupsetneq\": {\n    \"command\": \"sqsupsetneq\",\n    \"detail\": \"⋥\",\n    \"documentation\": \"Square superset, not equals\"\n  },\n  \"squarebotblack\": {\n    \"command\": \"squarebotblack\",\n    \"detail\": \"⬓\",\n    \"documentation\": \"Square with bottom half black\"\n  },\n  \"squarecrossfill\": {\n    \"command\": \"squarecrossfill\",\n    \"detail\": \"▩\",\n    \"documentation\": \"Square with diagonal crosshatch fill\"\n  },\n  \"squarehfill\": {\n    \"command\": \"squarehfill\",\n    \"detail\": \"▤\",\n    \"documentation\": \"Square, horizontal rule filled\"\n  },\n  \"squarehvfill\": {\n    \"command\": \"squarehvfill\",\n    \"detail\": \"▦\",\n    \"documentation\": \"Square with orthogonal crosshatch fill\"\n  },\n  \"squareleftblack\": {\n    \"command\": \"squareleftblack\",\n    \"detail\": \"◧\",\n    \"documentation\": \"Square, filled left half\"\n  },\n  \"squarellblack\": {\n    \"command\": \"squarellblack\",\n    \"detail\": \"⬕\",\n    \"documentation\": \"Square with lower left diagonal half black\"\n  },\n  \"squarellquad\": {\n    \"command\": \"squarellquad\",\n    \"detail\": \"◱\",\n    \"documentation\": \"White square with lower left quadrant\"\n  },\n  \"squarelrblack\": {\n    \"command\": \"squarelrblack\",\n    \"detail\": \"◪\",\n    \"documentation\": \"Square, filled bottom right corner\"\n  },\n  \"squarelrquad\": {\n    \"command\": \"squarelrquad\",\n    \"detail\": \"◲\",\n    \"documentation\": \"White square with lower right quadrant\"\n  },\n  \"squareneswfill\": {\n    \"command\": \"squareneswfill\",\n    \"detail\": \"▨\",\n    \"documentation\": \"Square, ne-to-sw rule filled\"\n  },\n  \"squarenwsefill\": {\n    \"command\": \"squarenwsefill\",\n    \"detail\": \"▧\",\n    \"documentation\": \"Square, nw-to-se rule filled\"\n  },\n  \"squarerightblack\": {\n    \"command\": \"squarerightblack\",\n    \"detail\": \"◨\",\n    \"documentation\": \"Square, filled right half\"\n  },\n  \"squaretopblack\": {\n    \"command\": \"squaretopblack\",\n    \"detail\": \"⬒\",\n    \"documentation\": \"Square with top half black\"\n  },\n  \"squareulblack\": {\n    \"command\": \"squareulblack\",\n    \"detail\": \"◩\",\n    \"documentation\": \"Square, filled top left corner\"\n  },\n  \"squareulquad\": {\n    \"command\": \"squareulquad\",\n    \"detail\": \"◰\",\n    \"documentation\": \"White square with upper left quadrant\"\n  },\n  \"squareurblack\": {\n    \"command\": \"squareurblack\",\n    \"detail\": \"⬔\",\n    \"documentation\": \"Square with upper right diagonal half black\"\n  },\n  \"squareurquad\": {\n    \"command\": \"squareurquad\",\n    \"detail\": \"◳\",\n    \"documentation\": \"White square with upper right quadrant\"\n  },\n  \"squarevfill\": {\n    \"command\": \"squarevfill\",\n    \"detail\": \"▥\",\n    \"documentation\": \"Square, vertical rule filled\"\n  },\n  \"squoval\": {\n    \"command\": \"squoval\",\n    \"detail\": \"▢\",\n    \"documentation\": \"White square with rounded corners\"\n  },\n  \"sslash\": {\n    \"command\": \"sslash\",\n    \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"\\\\varparallel (txfonts), double solidus operator\"\n  },\n  \"star\": {\n    \"command\": \"star\",\n    \"detail\": \"⋆\",\n    \"documentation\": \"Small star, filled, low\"\n  },\n  \"stareq\": {\n    \"command\": \"stareq\",\n    \"detail\": \"≛\",\n    \"documentation\": \"Star equals\"\n  },\n  \"sterling\": {\n    \"command\": \"sterling\",\n    \"detail\": \"£\",\n    \"documentation\": \"\\\\mathsterling (txfonts), pound sign, fourier prints a dollar sign\"\n  },\n  \"strns\": {\n    \"command\": \"strns\",\n    \"detail\": \"⏤\",\n    \"documentation\": \"Straightness\"\n  },\n  \"subedot\": {\n    \"command\": \"subedot\",\n    \"detail\": \"⫃\",\n    \"documentation\": \"Subset of or equal to with dot above\"\n  },\n  \"submult\": {\n    \"command\": \"submult\",\n    \"detail\": \"⫁\",\n    \"documentation\": \"Subset with multiplication sign below\"\n  },\n  \"subrarr\": {\n    \"command\": \"subrarr\",\n    \"detail\": \"⥹\",\n    \"documentation\": \"Subset above rightwards arrow\"\n  },\n  \"subset\": {\n    \"command\": \"subset\",\n    \"detail\": \"⊂\",\n    \"documentation\": \"Subset or is implied by\"\n  },\n  \"subsetapprox\": {\n    \"command\": \"subsetapprox\",\n    \"detail\": \"⫉\",\n    \"documentation\": \"Subset of above almost equal to\"\n  },\n  \"subsetcirc\": {\n    \"command\": \"subsetcirc\",\n    \"detail\": \"⟃\",\n    \"documentation\": \"Open subset\"\n  },\n  \"subsetdot\": {\n    \"command\": \"subsetdot\",\n    \"detail\": \"⪽\",\n    \"documentation\": \"Subset with dot\"\n  },\n  \"subseteq\": {\n    \"command\": \"subseteq\",\n    \"detail\": \"⊆\",\n    \"documentation\": \"Subset, equals\"\n  },\n  \"subseteqq\": {\n    \"command\": \"subseteqq\",\n    \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Subset of above equals sign\"\n  },\n  \"subsetneq\": {\n    \"command\": \"subsetneq\",\n    \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n  },\n  \"subsetneqq\": {\n    \"command\": \"subsetneqq\",\n    \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Subset of above not equal to\"\n  },\n  \"subsetplus\": {\n    \"command\": \"subsetplus\",\n    \"detail\": \"⪿\",\n    \"documentation\": \"Subset with plus sign below\"\n  },\n  \"subsim\": {\n    \"command\": \"subsim\",\n    \"detail\": \"⫇\",\n    \"documentation\": \"Subset of above tilde operator\"\n  },\n  \"subsub\": {\n    \"command\": \"subsub\",\n    \"detail\": \"⫕\",\n    \"documentation\": \"Subset above subset\"\n  },\n  \"subsup\": {\n    \"command\": \"subsup\",\n    \"detail\": \"⫓\",\n    \"documentation\": \"Subset above superset\"\n  },\n  \"succ\": {\n    \"command\": \"succ\",\n    \"detail\": \"≻\",\n    \"documentation\": \"Succeeds\"\n  },\n  \"succapprox\": {\n    \"command\": \"succapprox\",\n    \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Succeeds above almost equal to\"\n  },\n  \"succcurlyeq\": {\n    \"command\": \"succcurlyeq\",\n    \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n  },\n  \"succeq\": {\n    \"command\": \"succeq\",\n    \"detail\": \"⪰\",\n    \"documentation\": \"Succeeds above single-line equals sign\"\n  },\n  \"succeqq\": {\n    \"command\": \"succeqq\",\n    \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"Succeeds above equals sign\"\n  },\n  \"succnapprox\": {\n    \"command\": \"succnapprox\",\n    \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Succeeds above not almost equal to\"\n  },\n  \"succneq\": {\n    \"command\": \"succneq\",\n    \"detail\": \"⪲\",\n    \"documentation\": \"Succeeds above single-line not equal to\"\n  },\n  \"succneqq\": {\n    \"command\": \"succneqq\",\n    \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Succeeds above not equal to\"\n  },\n  \"succnsim\": {\n    \"command\": \"succnsim\",\n    \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Succeeds, not similar\"\n  },\n  \"succsim\": {\n    \"command\": \"succsim\",\n    \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n  },\n  \"sum\": {\n    \"command\": \"sum\",\n    \"detail\": \"∑\",\n    \"documentation\": \"Summation operator\"\n  },\n  \"sumbottom\": {\n    \"command\": \"sumbottom\",\n    \"detail\": \"⎳\",\n    \"documentation\": \"Summation bottom\"\n  },\n  \"sumint\": {\n    \"command\": \"sumint\",\n    \"detail\": \"⨋\",\n    \"documentation\": \"Summation with integral\"\n  },\n  \"sumtop\": {\n    \"command\": \"sumtop\",\n    \"detail\": \"⎲\",\n    \"documentation\": \"Summation top\"\n  },\n  \"sun\": {\n    \"command\": \"sun\",\n    \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"White sun with rays\"\n  },\n  \"supdsub\": {\n    \"command\": \"supdsub\",\n    \"detail\": \"⫘\",\n    \"documentation\": \"Superset beside and joined by dash with subset\"\n  },\n  \"supedot\": {\n    \"command\": \"supedot\",\n    \"detail\": \"⫄\",\n    \"documentation\": \"Superset of or equal to with dot above\"\n  },\n  \"suphsol\": {\n    \"command\": \"suphsol\",\n    \"detail\": \"⟉\",\n    \"documentation\": \"Superset preceding solidus\"\n  },\n  \"suphsub\": {\n    \"command\": \"suphsub\",\n    \"detail\": \"⫗\",\n    \"documentation\": \"Superset beside subset\"\n  },\n  \"suplarr\": {\n    \"command\": \"suplarr\",\n    \"detail\": \"⥻\",\n    \"documentation\": \"Superset above leftwards arrow\"\n  },\n  \"supmult\": {\n    \"command\": \"supmult\",\n    \"detail\": \"⫂\",\n    \"documentation\": \"Superset with multiplication sign below\"\n  },\n  \"supset\": {\n    \"command\": \"supset\",\n    \"detail\": \"⊃\",\n    \"documentation\": \"Superset or implies\"\n  },\n  \"supsetapprox\": {\n    \"command\": \"supsetapprox\",\n    \"detail\": \"⫊\",\n    \"documentation\": \"Superset of above almost equal to\"\n  },\n  \"supsetcirc\": {\n    \"command\": \"supsetcirc\",\n    \"detail\": \"⟄\",\n    \"documentation\": \"Open superset\"\n  },\n  \"supsetdot\": {\n    \"command\": \"supsetdot\",\n    \"detail\": \"⪾\",\n    \"documentation\": \"Superset with dot\"\n  },\n  \"supseteq\": {\n    \"command\": \"supseteq\",\n    \"detail\": \"⊇\",\n    \"documentation\": \"Superset, equals\"\n  },\n  \"supseteqq\": {\n    \"command\": \"supseteqq\",\n    \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Superset of above equals sign\"\n  },\n  \"supsetneq\": {\n    \"command\": \"supsetneq\",\n    \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Superset, not equals\"\n  },\n  \"supsetneqq\": {\n    \"command\": \"supsetneqq\",\n    \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Superset of above not equal to\"\n  },\n  \"supsetplus\": {\n    \"command\": \"supsetplus\",\n    \"detail\": \"⫀\",\n    \"documentation\": \"Superset with plus sign below\"\n  },\n  \"supsim\": {\n    \"command\": \"supsim\",\n    \"detail\": \"⫈\",\n    \"documentation\": \"Superset of above tilde operator\"\n  },\n  \"supsub\": {\n    \"command\": \"supsub\",\n    \"detail\": \"⫔\",\n    \"documentation\": \"Superset above subset\"\n  },\n  \"supsup\": {\n    \"command\": \"supsup\",\n    \"detail\": \"⫖\",\n    \"documentation\": \"Superset above superset\"\n  },\n  \"swarrow\": {\n    \"command\": \"swarrow\",\n    \"detail\": \"↙\",\n    \"documentation\": \"Sw pointing arrow\"\n  },\n  \"talloblong\": {\n    \"command\": \"talloblong\",\n    \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n    \"documentation\": \"White vertical bar\"\n  },\n  \"therefore\": {\n    \"command\": \"therefore\",\n    \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"\\\\wasytherefore (wasysym), therefore\"\n  },\n  \"thermod\": {\n    \"command\": \"thermod\",\n    \"detail\": \"⧧\",\n    \"documentation\": \"Thermodynamic\"\n  },\n  \"threedangle\": {\n    \"command\": \"threedangle\",\n    \"detail\": \"⟀\",\n    \"documentation\": \"Three dimensional angle\"\n  },\n  \"threedotcolon\": {\n    \"command\": \"threedotcolon\",\n    \"detail\": \"⫶\",\n    \"documentation\": \"Triple colon operator\"\n  },\n  \"threeunderdot\": {\n    \"command\": \"threeunderdot\",\n    \"detail\": \"x⃨\",\n    \"documentation\": \"Combining triple underdot\"\n  },\n  \"tieconcat\": {\n    \"command\": \"tieconcat\",\n    \"detail\": \"⁀ (\\\"oz\\\" command)\",\n    \"documentation\": \"Character tie, sequence concatenation\"\n  },\n  \"tieinfty\": {\n    \"command\": \"tieinfty\",\n    \"detail\": \"⧝\",\n    \"documentation\": \"Tie over infinity\"\n  },\n  \"times\": {\n    \"command\": \"times\",\n    \"detail\": \"×\",\n    \"documentation\": \"Multiplication sign, cartesian product\"\n  },\n  \"timesbar\": {\n    \"command\": \"timesbar\",\n    \"detail\": \"⨱\",\n    \"documentation\": \"Multiplication sign with underbar\"\n  },\n  \"tminus\": {\n    \"command\": \"tminus\",\n    \"detail\": \"⧿\",\n    \"documentation\": \"Miny\"\n  },\n  \"toea\": {\n    \"command\": \"toea\",\n    \"detail\": \"⤨\",\n    \"documentation\": \"North east arrow and south east arrow\"\n  },\n  \"tona\": {\n    \"command\": \"tona\",\n    \"detail\": \"⤧\",\n    \"documentation\": \"North west arrow and north east arrow\"\n  },\n  \"top\": {\n    \"command\": \"top\",\n    \"detail\": \"⊤\",\n    \"documentation\": \"Down tack, top\"\n  },\n  \"topbot\": {\n    \"command\": \"topbot\",\n    \"detail\": \"⌶\",\n    \"documentation\": \"Apl functional symbol i-beam, top and bottom\"\n  },\n  \"topcir\": {\n    \"command\": \"topcir\",\n    \"detail\": \"⫱\",\n    \"documentation\": \"Down tack with circle below\"\n  },\n  \"topfork\": {\n    \"command\": \"topfork\",\n    \"detail\": \"⫚\",\n    \"documentation\": \"Pitchfork with tee top\"\n  },\n  \"topsemicircle\": {\n    \"command\": \"topsemicircle\",\n    \"detail\": \"◠\",\n    \"documentation\": \"Upper half circle\"\n  },\n  \"tosa\": {\n    \"command\": \"tosa\",\n    \"detail\": \"⤩\",\n    \"documentation\": \"South east arrow and south west arrow\"\n  },\n  \"towa\": {\n    \"command\": \"towa\",\n    \"detail\": \"⤪\",\n    \"documentation\": \"South west arrow and north west arrow\"\n  },\n  \"tplus\": {\n    \"command\": \"tplus\",\n    \"detail\": \"⧾\",\n    \"documentation\": \"Tiny\"\n  },\n  \"trapezium\": {\n    \"command\": \"trapezium\",\n    \"detail\": \"⏢\",\n    \"documentation\": \"White trapezium\"\n  },\n  \"trianglecdot\": {\n    \"command\": \"trianglecdot\",\n    \"detail\": \"◬\",\n    \"documentation\": \"Triangle with centered dot\"\n  },\n  \"triangledown\": {\n    \"command\": \"triangledown\",\n    \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n  },\n  \"triangleleft\": {\n    \"command\": \"triangleleft\",\n    \"detail\": \"◁ (\\\"amssymb wasysym\\\" command)\",\n    \"documentation\": \"\\\\dres (oz), \\\\lefttriangle (wrisym), (large) left triangle, open; domain restriction\"\n  },\n  \"triangleleftblack\": {\n    \"command\": \"triangleleftblack\",\n    \"detail\": \"◭\",\n    \"documentation\": \"Up-pointing triangle with left half black\"\n  },\n  \"trianglelefteq\": {\n    \"command\": \"trianglelefteq\",\n    \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\unlhd (wrisym), left triangle, equals\"\n  },\n  \"triangleminus\": {\n    \"command\": \"triangleminus\",\n    \"detail\": \"⨺\",\n    \"documentation\": \"Minus sign in triangle\"\n  },\n  \"triangleodot\": {\n    \"command\": \"triangleodot\",\n    \"detail\": \"⧊\",\n    \"documentation\": \"Triangle with dot above\"\n  },\n  \"triangleplus\": {\n    \"command\": \"triangleplus\",\n    \"detail\": \"⨹\",\n    \"documentation\": \"Plus sign in triangle\"\n  },\n  \"triangleq\": {\n    \"command\": \"triangleq\",\n    \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\varsdef (oz), triangle, equals\"\n  },\n  \"triangleright\": {\n    \"command\": \"triangleright\",\n    \"detail\": \"▷ (\\\"amssymb wasysym\\\" command)\",\n    \"documentation\": \"\\\\rres (oz), \\\\righttriangle (wrisym), (large) right triangle, open; range restriction\"\n  },\n  \"trianglerightblack\": {\n    \"command\": \"trianglerightblack\",\n    \"detail\": \"◮\",\n    \"documentation\": \"Up-pointing triangle with right half black\"\n  },\n  \"trianglerighteq\": {\n    \"command\": \"trianglerighteq\",\n    \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\unrhd (wrisym), right triangle, equals\"\n  },\n  \"triangles\": {\n    \"command\": \"triangles\",\n    \"detail\": \"⧌\",\n    \"documentation\": \"S in triangle\"\n  },\n  \"triangleserifs\": {\n    \"command\": \"triangleserifs\",\n    \"detail\": \"⧍\",\n    \"documentation\": \"Triangle with serifs at bottom\"\n  },\n  \"triangletimes\": {\n    \"command\": \"triangletimes\",\n    \"detail\": \"⨻\",\n    \"documentation\": \"Multiplication sign in triangle\"\n  },\n  \"triangleubar\": {\n    \"command\": \"triangleubar\",\n    \"detail\": \"⧋\",\n    \"documentation\": \"Triangle with underbar\"\n  },\n  \"tripleplus\": {\n    \"command\": \"tripleplus\",\n    \"detail\": \"⧻\",\n    \"documentation\": \"Triple plus\"\n  },\n  \"trprime\": {\n    \"command\": \"trprime\",\n    \"detail\": \"‴ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Triple prime (not superscripted)\"\n  },\n  \"trslash\": {\n    \"command\": \"trslash\",\n    \"detail\": \"⫻\",\n    \"documentation\": \"Triple solidus binary relation\"\n  },\n  \"turnangle\": {\n    \"command\": \"turnangle\",\n    \"detail\": \"⦢\",\n    \"documentation\": \"Turned angle\"\n  },\n  \"turnediota\": {\n    \"command\": \"turnediota\",\n    \"detail\": \"℩\",\n    \"documentation\": \"Turned iota\"\n  },\n  \"turnednot\": {\n    \"command\": \"turnednot\",\n    \"detail\": \"⌙\",\n    \"documentation\": \"Turned not sign\"\n  },\n  \"twocaps\": {\n    \"command\": \"twocaps\",\n    \"detail\": \"⩋\",\n    \"documentation\": \"Intersection beside and joined with intersection\"\n  },\n  \"twocups\": {\n    \"command\": \"twocups\",\n    \"detail\": \"⩊\",\n    \"documentation\": \"Union beside and joined with union\"\n  },\n  \"twoheaddownarrow\": {\n    \"command\": \"twoheaddownarrow\",\n    \"detail\": \"↡\",\n    \"documentation\": \"Down two-headed arrow\"\n  },\n  \"twoheadleftarrow\": {\n    \"command\": \"twoheadleftarrow\",\n    \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left two-headed arrow\"\n  },\n  \"twoheadleftarrowtail\": {\n    \"command\": \"twoheadleftarrowtail\",\n    \"detail\": \"⬻\",\n    \"documentation\": \"Leftwards two-headed arrow with tail\"\n  },\n  \"twoheadleftdbkarrow\": {\n    \"command\": \"twoheadleftdbkarrow\",\n    \"detail\": \"⬷\",\n    \"documentation\": \"Leftwards two-headed triple-dash arrow\"\n  },\n  \"twoheadmapsfrom\": {\n    \"command\": \"twoheadmapsfrom\",\n    \"detail\": \"⬶\",\n    \"documentation\": \"Leftwards two-headed arrow from bar\"\n  },\n  \"twoheadmapsto\": {\n    \"command\": \"twoheadmapsto\",\n    \"detail\": \"⤅\",\n    \"documentation\": \"Rightwards two-headed arrow from bar\"\n  },\n  \"twoheadrightarrow\": {\n    \"command\": \"twoheadrightarrow\",\n    \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n  },\n  \"twoheadrightarrowtail\": {\n    \"command\": \"twoheadrightarrowtail\",\n    \"detail\": \"⤖ (\\\"oz\\\" command)\",\n    \"documentation\": \"Rightwards two-headed arrow with tail, bijection\"\n  },\n  \"twoheaduparrow\": {\n    \"command\": \"twoheaduparrow\",\n    \"detail\": \"↟\",\n    \"documentation\": \"Up two-headed arrow\"\n  },\n  \"twoheaduparrowcircle\": {\n    \"command\": \"twoheaduparrowcircle\",\n    \"detail\": \"⥉\",\n    \"documentation\": \"Upwards two-headed arrow from small circle\"\n  },\n  \"twolowline\": {\n    \"command\": \"twolowline\",\n    \"detail\": \"‗\",\n    \"documentation\": \"Double low line (spacing)\"\n  },\n  \"twonotes\": {\n    \"command\": \"twonotes\",\n    \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n    \"documentation\": \"Beamed eighth notes\"\n  },\n  \"typecolon\": {\n    \"command\": \"typecolon\",\n    \"detail\": \"⦂\",\n    \"documentation\": \"Z notation type colon, (present in bbold font but no command)\"\n  },\n  \"ubrbrak\": {\n    \"command\": \"ubrbrak\",\n    \"detail\": \"⏡\",\n    \"documentation\": \"Bottom tortoise shell bracket (mathematical use)\"\n  },\n  \"ularc\": {\n    \"command\": \"ularc\",\n    \"detail\": \"◜\",\n    \"documentation\": \"Upper left quadrant circular arc\"\n  },\n  \"ulblacktriangle\": {\n    \"command\": \"ulblacktriangle\",\n    \"detail\": \"◤\",\n    \"documentation\": \"Upper left triangle, filled\"\n  },\n  \"ulcorner\": {\n    \"command\": \"ulcorner\",\n    \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Upper left corner\"\n  },\n  \"ultriangle\": {\n    \"command\": \"ultriangle\",\n    \"detail\": \"◸\",\n    \"documentation\": \"Upper left triangle\"\n  },\n  \"uminus\": {\n    \"command\": \"uminus\",\n    \"detail\": \"⩁\",\n    \"documentation\": \"Union with minus sign, bag subtraction\"\n  },\n  \"underbar\": {\n    \"command\": \"underbar\",\n    \"detail\": \" ̱\",\n    \"documentation\": \"Combining macron below\"\n  },\n  \"underbrace\": {\n    \"command\": \"underbrace\",\n    \"detail\": \"⏟\",\n    \"documentation\": \"Bottom curly bracket (mathematical use)\"\n  },\n  \"underbracket\": {\n    \"command\": \"underbracket\",\n    \"detail\": \"⎵\",\n    \"documentation\": \"Bottom square bracket\"\n  },\n  \"underleftarrow\": {\n    \"command\": \"underleftarrow\",\n    \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n    \"documentation\": \"Combining left arrow below\"\n  },\n  \"underleftharpoondown\": {\n    \"command\": \"underleftharpoondown\",\n    \"detail\": \"x⃭\",\n    \"documentation\": \"Combining leftwards harpoon with barb downwards\"\n  },\n  \"underparen\": {\n    \"command\": \"underparen\",\n    \"detail\": \"⏝ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Bottom parenthesis (mathematical use)\"\n  },\n  \"underrightarrow\": {\n    \"command\": \"underrightarrow\",\n    \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n    \"documentation\": \"Combining right arrow below\"\n  },\n  \"underrightharpoondown\": {\n    \"command\": \"underrightharpoondown\",\n    \"detail\": \"x⃬\",\n    \"documentation\": \"Combining rightwards harpoon with barb downwards\"\n  },\n  \"unicodecdots\": {\n    \"command\": \"unicodecdots\",\n    \"detail\": \"⋯\",\n    \"documentation\": \"Three dots, centered\"\n  },\n  \"unicodeellipsis\": {\n    \"command\": \"unicodeellipsis\",\n    \"detail\": \"…\",\n    \"documentation\": \"Ellipsis (horizontal)\"\n  },\n  \"upAlpha\": {\n    \"command\": \"upAlpha\",\n    \"detail\": \"Α\",\n    \"documentation\": \"Capital alpha, greek\"\n  },\n  \"upBeta\": {\n    \"command\": \"upBeta\",\n    \"detail\": \"Β\",\n    \"documentation\": \"Capital beta, greek\"\n  },\n  \"upChi\": {\n    \"command\": \"upChi\",\n    \"detail\": \"Χ\",\n    \"documentation\": \"Capital chi, greek\"\n  },\n  \"upDelta\": {\n    \"command\": \"upDelta\",\n    \"detail\": \"Δ\",\n    \"documentation\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n  },\n  \"upDigamma\": {\n    \"command\": \"upDigamma\",\n    \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Capital digamma\"\n  },\n  \"upEpsilon\": {\n    \"command\": \"upEpsilon\",\n    \"detail\": \"Ε\",\n    \"documentation\": \"Capital epsilon, greek\"\n  },\n  \"upEta\": {\n    \"command\": \"upEta\",\n    \"detail\": \"Η\",\n    \"documentation\": \"Capital eta, greek\"\n  },\n  \"upGamma\": {\n    \"command\": \"upGamma\",\n    \"detail\": \"Γ\",\n    \"documentation\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n  },\n  \"upIota\": {\n    \"command\": \"upIota\",\n    \"detail\": \"Ι\",\n    \"documentation\": \"Capital iota, greek\"\n  },\n  \"upKappa\": {\n    \"command\": \"upKappa\",\n    \"detail\": \"Κ\",\n    \"documentation\": \"Capital kappa, greek\"\n  },\n  \"upKoppa\": {\n    \"command\": \"upKoppa\",\n    \"detail\": \"Ϟ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"Capital koppa\"\n  },\n  \"upLambda\": {\n    \"command\": \"upLambda\",\n    \"detail\": \"Λ\",\n    \"documentation\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n  },\n  \"upMu\": {\n    \"command\": \"upMu\",\n    \"detail\": \"Μ\",\n    \"documentation\": \"Capital mu, greek\"\n  },\n  \"upNu\": {\n    \"command\": \"upNu\",\n    \"detail\": \"Ν\",\n    \"documentation\": \"Capital nu, greek\"\n  },\n  \"upOmega\": {\n    \"command\": \"upOmega\",\n    \"detail\": \"Ω\",\n    \"documentation\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n  },\n  \"upOmicron\": {\n    \"command\": \"upOmicron\",\n    \"detail\": \"Ο\",\n    \"documentation\": \"Capital omicron, greek\"\n  },\n  \"upPhi\": {\n    \"command\": \"upPhi\",\n    \"detail\": \"Φ\",\n    \"documentation\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n  },\n  \"upPi\": {\n    \"command\": \"upPi\",\n    \"detail\": \"Π\",\n    \"documentation\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n  },\n  \"upPsi\": {\n    \"command\": \"upPsi\",\n    \"detail\": \"Ψ\",\n    \"documentation\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n  },\n  \"upRho\": {\n    \"command\": \"upRho\",\n    \"detail\": \"Ρ\",\n    \"documentation\": \"Capital rho, greek\"\n  },\n  \"upSampi\": {\n    \"command\": \"upSampi\",\n    \"detail\": \"Ϡ (\\\"arevmath wrisym\\\" command)\",\n    \"documentation\": \"Capital sampi\"\n  },\n  \"upSigma\": {\n    \"command\": \"upSigma\",\n    \"detail\": \"Σ\",\n    \"documentation\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n  },\n  \"upStigma\": {\n    \"command\": \"upStigma\",\n    \"detail\": \"Ϛ (\\\"arevmath wrisym\\\" command)\",\n    \"documentation\": \"Capital stigma\"\n  },\n  \"upTau\": {\n    \"command\": \"upTau\",\n    \"detail\": \"Τ\",\n    \"documentation\": \"Capital tau, greek\"\n  },\n  \"upTheta\": {\n    \"command\": \"upTheta\",\n    \"detail\": \"Θ\",\n    \"documentation\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n  },\n  \"upUpsilon\": {\n    \"command\": \"upUpsilon\",\n    \"detail\": \"ϒ\",\n    \"documentation\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n  },\n  \"upXi\": {\n    \"command\": \"upXi\",\n    \"detail\": \"Ξ\",\n    \"documentation\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n  },\n  \"upZeta\": {\n    \"command\": \"upZeta\",\n    \"detail\": \"Ζ\",\n    \"documentation\": \"Capital zeta, greek\"\n  },\n  \"upalpha\": {\n    \"command\": \"upalpha\",\n    \"detail\": \"α\",\n    \"documentation\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n  },\n  \"upand\": {\n    \"command\": \"upand\",\n    \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n  },\n  \"uparrow\": {\n    \"command\": \"uparrow\",\n    \"detail\": \"↑\",\n    \"documentation\": \"Upward arrow\"\n  },\n  \"uparrowbarred\": {\n    \"command\": \"uparrowbarred\",\n    \"detail\": \"⤉\",\n    \"documentation\": \"Upwards arrow with horizontal stroke\"\n  },\n  \"uparrowoncircle\": {\n    \"command\": \"uparrowoncircle\",\n    \"detail\": \"⦽\",\n    \"documentation\": \"Up arrow through circle\"\n  },\n  \"upbackepsilon\": {\n    \"command\": \"upbackepsilon\",\n    \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n    \"documentation\": \"Greek reversed lunate epsilon symbol\"\n  },\n  \"upbeta\": {\n    \"command\": \"upbeta\",\n    \"detail\": \"β\",\n    \"documentation\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n  },\n  \"upchi\": {\n    \"command\": \"upchi\",\n    \"detail\": \"χ\",\n    \"documentation\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n  },\n  \"updasharrow\": {\n    \"command\": \"updasharrow\",\n    \"detail\": \"⇡\",\n    \"documentation\": \"Upwards dashed arrow\"\n  },\n  \"updelta\": {\n    \"command\": \"updelta\",\n    \"detail\": \"δ\",\n    \"documentation\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n  },\n  \"updigamma\": {\n    \"command\": \"updigamma\",\n    \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n    \"documentation\": \"Greek small letter digamma\"\n  },\n  \"updownarrow\": {\n    \"command\": \"updownarrow\",\n    \"detail\": \"↕\",\n    \"documentation\": \"Up and down arrow\"\n  },\n  \"updownarrowbar\": {\n    \"command\": \"updownarrowbar\",\n    \"detail\": \"↨\",\n    \"documentation\": \"Up down arrow with base (perpendicular)\"\n  },\n  \"updownarrows\": {\n    \"command\": \"updownarrows\",\n    \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n  },\n  \"updownharpoonleftleft\": {\n    \"command\": \"updownharpoonleftleft\",\n    \"detail\": \"⥑ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Up barb left down barb left harpoon\"\n  },\n  \"updownharpoonleftright\": {\n    \"command\": \"updownharpoonleftright\",\n    \"detail\": \"⥍\",\n    \"documentation\": \"Up barb left down barb right harpoon\"\n  },\n  \"updownharpoonrightleft\": {\n    \"command\": \"updownharpoonrightleft\",\n    \"detail\": \"⥌\",\n    \"documentation\": \"Up barb right down barb left harpoon\"\n  },\n  \"updownharpoonrightright\": {\n    \"command\": \"updownharpoonrightright\",\n    \"detail\": \"⥏ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Up barb right down barb right harpoon\"\n  },\n  \"updownharpoonsleftright\": {\n    \"command\": \"updownharpoonsleftright\",\n    \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n  },\n  \"upepsilon\": {\n    \"command\": \"upepsilon\",\n    \"detail\": \"ε\",\n    \"documentation\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n  },\n  \"upeta\": {\n    \"command\": \"upeta\",\n    \"detail\": \"η\",\n    \"documentation\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n  },\n  \"upfishtail\": {\n    \"command\": \"upfishtail\",\n    \"detail\": \"⥾\",\n    \"documentation\": \"Up fish tail\"\n  },\n  \"upgamma\": {\n    \"command\": \"upgamma\",\n    \"detail\": \"γ\",\n    \"documentation\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n  },\n  \"upharpoonleft\": {\n    \"command\": \"upharpoonleft\",\n    \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n  },\n  \"upharpoonleftbar\": {\n    \"command\": \"upharpoonleftbar\",\n    \"detail\": \"⥠ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Upwards harpoon with barb left from bar\"\n  },\n  \"upharpoonright\": {\n    \"command\": \"upharpoonright\",\n    \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n  },\n  \"upharpoonrightbar\": {\n    \"command\": \"upharpoonrightbar\",\n    \"detail\": \"⥜ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Upwards harpoon with barb right from bar\"\n  },\n  \"upharpoonsleftright\": {\n    \"command\": \"upharpoonsleftright\",\n    \"detail\": \"⥣ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Upwards harpoon with barb left beside upwards harpoon with barb right\"\n  },\n  \"upin\": {\n    \"command\": \"upin\",\n    \"detail\": \"⟒\",\n    \"documentation\": \"Element of opening upwards\"\n  },\n  \"upint\": {\n    \"command\": \"upint\",\n    \"detail\": \"⨛\",\n    \"documentation\": \"Integral with overbar\"\n  },\n  \"upiota\": {\n    \"command\": \"upiota\",\n    \"detail\": \"ι\",\n    \"documentation\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n  },\n  \"upkappa\": {\n    \"command\": \"upkappa\",\n    \"detail\": \"κ\",\n    \"documentation\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n  },\n  \"upkoppa\": {\n    \"command\": \"upkoppa\",\n    \"detail\": \"ϟ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"Greek small letter koppa\"\n  },\n  \"uplambda\": {\n    \"command\": \"uplambda\",\n    \"detail\": \"λ\",\n    \"documentation\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n  },\n  \"uplus\": {\n    \"command\": \"uplus\",\n    \"detail\": \"⊎\",\n    \"documentation\": \"\\\\buni (oz), plus sign in union\"\n  },\n  \"upmu\": {\n    \"command\": \"upmu\",\n    \"detail\": \"μ\",\n    \"documentation\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n  },\n  \"upnu\": {\n    \"command\": \"upnu\",\n    \"detail\": \"ν\",\n    \"documentation\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n  },\n  \"upoldKoppa\": {\n    \"command\": \"upoldKoppa\",\n    \"detail\": \"Ϙ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"\\\\koppa (wrisym), t \\\\qoppa (lgr), greek letter archaic koppa\"\n  },\n  \"upoldkoppa\": {\n    \"command\": \"upoldkoppa\",\n    \"detail\": \"ϙ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"\\\\koppa (wrisym), t \\\\qoppa (lgr), greek small letter archaic koppa\"\n  },\n  \"upomega\": {\n    \"command\": \"upomega\",\n    \"detail\": \"ω\",\n    \"documentation\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n  },\n  \"upomicron\": {\n    \"command\": \"upomicron\",\n    \"detail\": \"ο\",\n    \"documentation\": \"Small omicron, greek\"\n  },\n  \"upphi\": {\n    \"command\": \"upphi\",\n    \"detail\": \"ϕ\",\n    \"documentation\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n  },\n  \"uppi\": {\n    \"command\": \"uppi\",\n    \"detail\": \"π\",\n    \"documentation\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n  },\n  \"uppsi\": {\n    \"command\": \"uppsi\",\n    \"detail\": \"ψ\",\n    \"documentation\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n  },\n  \"uprho\": {\n    \"command\": \"uprho\",\n    \"detail\": \"ρ\",\n    \"documentation\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n  },\n  \"uprightcurvearrow\": {\n    \"command\": \"uprightcurvearrow\",\n    \"detail\": \"⤴\",\n    \"documentation\": \"Arrow pointing rightwards then curving upwards\"\n  },\n  \"upsampi\": {\n    \"command\": \"upsampi\",\n    \"detail\": \"ϡ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"\\\\sampi (wrisym), greek small letter sampi\"\n  },\n  \"upsigma\": {\n    \"command\": \"upsigma\",\n    \"detail\": \"σ\",\n    \"documentation\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n  },\n  \"upstigma\": {\n    \"command\": \"upstigma\",\n    \"detail\": \"ϛ (\\\"arevmath wrisym\\\" command)\",\n    \"documentation\": \"Greek small letter stigma\"\n  },\n  \"uptau\": {\n    \"command\": \"uptau\",\n    \"detail\": \"τ\",\n    \"documentation\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n  },\n  \"uptheta\": {\n    \"command\": \"uptheta\",\n    \"detail\": \"θ\",\n    \"documentation\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n  },\n  \"upuparrows\": {\n    \"command\": \"upuparrows\",\n    \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Two up arrows\"\n  },\n  \"upupsilon\": {\n    \"command\": \"upupsilon\",\n    \"detail\": \"υ\",\n    \"documentation\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n  },\n  \"upvarTheta\": {\n    \"command\": \"upvarTheta\",\n    \"detail\": \"ϴ\",\n    \"documentation\": \"X \\\\vartheta (amssymb), greek capital theta symbol\"\n  },\n  \"upvarbeta\": {\n    \"command\": \"upvarbeta\",\n    \"detail\": \"ϐ (\\\"arevmath\\\" command)\",\n    \"documentation\": \"Rounded beta, greek\"\n  },\n  \"upvarepsilon\": {\n    \"command\": \"upvarepsilon\",\n    \"detail\": \"ϵ\",\n    \"documentation\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n  },\n  \"upvarkappa\": {\n    \"command\": \"upvarkappa\",\n    \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Greek kappa symbol (round)\"\n  },\n  \"upvarphi\": {\n    \"command\": \"upvarphi\",\n    \"detail\": \"φ\",\n    \"documentation\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n  },\n  \"upvarpi\": {\n    \"command\": \"upvarpi\",\n    \"detail\": \"ϖ\",\n    \"documentation\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n  },\n  \"upvarrho\": {\n    \"command\": \"upvarrho\",\n    \"detail\": \"ϱ\",\n    \"documentation\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n  },\n  \"upvarsigma\": {\n    \"command\": \"upvarsigma\",\n    \"detail\": \"ς\",\n    \"documentation\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n  },\n  \"upvartheta\": {\n    \"command\": \"upvartheta\",\n    \"detail\": \"ϑ\",\n    \"documentation\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n  },\n  \"upwhitearrow\": {\n    \"command\": \"upwhitearrow\",\n    \"detail\": \"⇧\",\n    \"documentation\": \"Upwards white arrow\"\n  },\n  \"upxi\": {\n    \"command\": \"upxi\",\n    \"detail\": \"ξ\",\n    \"documentation\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n  },\n  \"upzeta\": {\n    \"command\": \"upzeta\",\n    \"detail\": \"ζ\",\n    \"documentation\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n  },\n  \"urarc\": {\n    \"command\": \"urarc\",\n    \"detail\": \"◝\",\n    \"documentation\": \"Upper right quadrant circular arc\"\n  },\n  \"urblacktriangle\": {\n    \"command\": \"urblacktriangle\",\n    \"detail\": \"◥\",\n    \"documentation\": \"Upper right triangle, filled\"\n  },\n  \"urcorner\": {\n    \"command\": \"urcorner\",\n    \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Upper right corner\"\n  },\n  \"urtriangle\": {\n    \"command\": \"urtriangle\",\n    \"detail\": \"◹\",\n    \"documentation\": \"Upper right triangle\"\n  },\n  \"vBar\": {\n    \"command\": \"vBar\",\n    \"detail\": \"⫨\",\n    \"documentation\": \"Short up tack with underbar\"\n  },\n  \"vBarv\": {\n    \"command\": \"vBarv\",\n    \"detail\": \"⫩\",\n    \"documentation\": \"Short up tack above short down tack\"\n  },\n  \"vDash\": {\n    \"command\": \"vDash\",\n    \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n    \"documentation\": \"True (vertical, double dash)\"\n  },\n  \"vDdash\": {\n    \"command\": \"vDdash\",\n    \"detail\": \"⫢\",\n    \"documentation\": \"Vertical bar triple right turnstile\"\n  },\n  \"varVdash\": {\n    \"command\": \"varVdash\",\n    \"detail\": \"⫦\",\n    \"documentation\": \"Long dash from left member of double vertical\"\n  },\n  \"varbarwedge\": {\n    \"command\": \"varbarwedge\",\n    \"detail\": \"⌅\",\n    \"documentation\": \"\\\\barwedge (amssymb), projective (bar over small wedge) not nand\"\n  },\n  \"varcarriagereturn\": {\n    \"command\": \"varcarriagereturn\",\n    \"detail\": \"⏎\",\n    \"documentation\": \"Return symbol\"\n  },\n  \"varclubsuit\": {\n    \"command\": \"varclubsuit\",\n    \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\varclub (arevmath), club, white (card suit)\"\n  },\n  \"vardiamondsuit\": {\n    \"command\": \"vardiamondsuit\",\n    \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n  },\n  \"vardoublebarwedge\": {\n    \"command\": \"vardoublebarwedge\",\n    \"detail\": \"⌆\",\n    \"documentation\": \"\\\\doublebarwedge (amssymb), perspective (double bar over small wedge)\"\n  },\n  \"varheartsuit\": {\n    \"command\": \"varheartsuit\",\n    \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n  },\n  \"varhexagon\": {\n    \"command\": \"varhexagon\",\n    \"detail\": \"⬡\",\n    \"documentation\": \"White hexagon\"\n  },\n  \"varhexagonblack\": {\n    \"command\": \"varhexagonblack\",\n    \"detail\": \"⬢\",\n    \"documentation\": \"Black hexagon\"\n  },\n  \"varhexagonlrbonds\": {\n    \"command\": \"varhexagonlrbonds\",\n    \"detail\": \"⌬\",\n    \"documentation\": \"Six carbon ring, corner down, double bonds lower right etc\"\n  },\n  \"varisinobar\": {\n    \"command\": \"varisinobar\",\n    \"detail\": \"⋶ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"Element of with overbar\"\n  },\n  \"varisins\": {\n    \"command\": \"varisins\",\n    \"detail\": \"⋳\",\n    \"documentation\": \"Element of with vertical bar at end of horizontal stroke\"\n  },\n  \"varlrtriangle\": {\n    \"command\": \"varlrtriangle\",\n    \"detail\": \"⊿\",\n    \"documentation\": \"Right triangle\"\n  },\n  \"varniobar\": {\n    \"command\": \"varniobar\",\n    \"detail\": \"⋽\",\n    \"documentation\": \"Contains with overbar\"\n  },\n  \"varnis\": {\n    \"command\": \"varnis\",\n    \"detail\": \"⋻\",\n    \"documentation\": \"Contains with vertical bar at end of horizontal stroke\"\n  },\n  \"varnothing\": {\n    \"command\": \"varnothing\",\n    \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Circle, slash\"\n  },\n  \"varointclockwise\": {\n    \"command\": \"varointclockwise\",\n    \"detail\": \"∲ (\\\"esint\\\" command)\",\n    \"documentation\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n  },\n  \"varspadesuit\": {\n    \"command\": \"varspadesuit\",\n    \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n    \"documentation\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n  },\n  \"varstar\": {\n    \"command\": \"varstar\",\n    \"detail\": \"✶\",\n    \"documentation\": \"Six pointed black star\"\n  },\n  \"vartriangle\": {\n    \"command\": \"vartriangle\",\n    \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n  },\n  \"vartriangleleft\": {\n    \"command\": \"vartriangleleft\",\n    \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Left triangle, open, variant\"\n  },\n  \"vartriangleright\": {\n    \"command\": \"vartriangleright\",\n    \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Right triangle, open, variant\"\n  },\n  \"varveebar\": {\n    \"command\": \"varveebar\",\n    \"detail\": \"⩡\",\n    \"documentation\": \"Small vee with underbar\"\n  },\n  \"vbraceextender\": {\n    \"command\": \"vbraceextender\",\n    \"detail\": \"⎪\",\n    \"documentation\": \"Curly bracket extension\"\n  },\n  \"vbrtri\": {\n    \"command\": \"vbrtri\",\n    \"detail\": \"⧐ (\\\"wrisym\\\" command)\",\n    \"documentation\": \"Vertical bar beside right triangle\"\n  },\n  \"vdash\": {\n    \"command\": \"vdash\",\n    \"detail\": \"⊢\",\n    \"documentation\": \"Right tack, proves, implies, yields, (vertical and dash)\"\n  },\n  \"vdots\": {\n    \"command\": \"vdots\",\n    \"detail\": \"⋮\",\n    \"documentation\": \"Vertical ellipsis\"\n  },\n  \"vec\": {\n    \"command\": \"vec\",\n    \"detail\": \"x⃗\",\n    \"documentation\": \"\\\\vec (wrisym), \\\\overrightarrow, combining right arrow above\"\n  },\n  \"vectimes\": {\n    \"command\": \"vectimes\",\n    \"detail\": \"⨯\",\n    \"documentation\": \"\\\\times, vector or cross product\"\n  },\n  \"vee\": {\n    \"command\": \"vee\",\n    \"detail\": \"∨\",\n    \"documentation\": \"\\\\lor, b: logical or\"\n  },\n  \"veebar\": {\n    \"command\": \"veebar\",\n    \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Logical or, bar below (large vee); exclusive disjunction\"\n  },\n  \"veedot\": {\n    \"command\": \"veedot\",\n    \"detail\": \"⟇\",\n    \"documentation\": \"Or with dot inside\"\n  },\n  \"veedoublebar\": {\n    \"command\": \"veedoublebar\",\n    \"detail\": \"⩣\",\n    \"documentation\": \"Logical or with double underbar\"\n  },\n  \"veeeq\": {\n    \"command\": \"veeeq\",\n    \"detail\": \"≚\",\n    \"documentation\": \"Logical or, equals\"\n  },\n  \"veemidvert\": {\n    \"command\": \"veemidvert\",\n    \"detail\": \"⩛\",\n    \"documentation\": \"Logical or with middle stem\"\n  },\n  \"veeodot\": {\n    \"command\": \"veeodot\",\n    \"detail\": \"⩒\",\n    \"documentation\": \"Logical or with dot above\"\n  },\n  \"veeonvee\": {\n    \"command\": \"veeonvee\",\n    \"detail\": \"⩖\",\n    \"documentation\": \"Two intersecting logical or\"\n  },\n  \"veeonwedge\": {\n    \"command\": \"veeonwedge\",\n    \"detail\": \"⩙\",\n    \"documentation\": \"Logical or overlapping logical and\"\n  },\n  \"vert\": {\n    \"command\": \"vert\",\n    \"detail\": \"|\",\n    \"documentation\": \"\\\\vert, vertical bar\"\n  },\n  \"vertoverlay\": {\n    \"command\": \"vertoverlay\",\n    \"detail\": \"x⃒\",\n    \"documentation\": \"Combining long vertical line overlay\"\n  },\n  \"viewdata\": {\n    \"command\": \"viewdata\",\n    \"detail\": \"⌗\",\n    \"documentation\": \"Viewdata square\"\n  },\n  \"vlongdash\": {\n    \"command\": \"vlongdash\",\n    \"detail\": \"⟝\",\n    \"documentation\": \"Long left tack\"\n  },\n  \"vrectangle\": {\n    \"command\": \"vrectangle\",\n    \"detail\": \"▯\",\n    \"documentation\": \"Rectangle, white (vertical)\"\n  },\n  \"vrectangleblack\": {\n    \"command\": \"vrectangleblack\",\n    \"detail\": \"▮\",\n    \"documentation\": \"Black vertical rectangle\"\n  },\n  \"vysmblkcircle\": {\n    \"command\": \"vysmblkcircle\",\n    \"detail\": \"∙\",\n    \"documentation\": \"Bullet operator\"\n  },\n  \"vysmblksquare\": {\n    \"command\": \"vysmblksquare\",\n    \"detail\": \"⬝\",\n    \"documentation\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n  },\n  \"vysmwhtcircle\": {\n    \"command\": \"vysmwhtcircle\",\n    \"detail\": \"∘\",\n    \"documentation\": \"Composite function (small circle)\"\n  },\n  \"vysmwhtsquare\": {\n    \"command\": \"vysmwhtsquare\",\n    \"detail\": \"⬞\",\n    \"documentation\": \"White very small square\"\n  },\n  \"vzigzag\": {\n    \"command\": \"vzigzag\",\n    \"detail\": \"⦚\",\n    \"documentation\": \"Vertical zigzag line\"\n  },\n  \"wedge\": {\n    \"command\": \"wedge\",\n    \"detail\": \"∧ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"\\\\land, b: logical and\"\n  },\n  \"wedgebar\": {\n    \"command\": \"wedgebar\",\n    \"detail\": \"⩟\",\n    \"documentation\": \"Logical and with underbar\"\n  },\n  \"wedgedot\": {\n    \"command\": \"wedgedot\",\n    \"detail\": \"⟑\",\n    \"documentation\": \"And with dot\"\n  },\n  \"wedgedoublebar\": {\n    \"command\": \"wedgedoublebar\",\n    \"detail\": \"⩠\",\n    \"documentation\": \"Logical and with double underbar\"\n  },\n  \"wedgemidvert\": {\n    \"command\": \"wedgemidvert\",\n    \"detail\": \"⩚\",\n    \"documentation\": \"Logical and with middle stem\"\n  },\n  \"wedgeodot\": {\n    \"command\": \"wedgeodot\",\n    \"detail\": \"⩑\",\n    \"documentation\": \"Logical and with dot above\"\n  },\n  \"wedgeonwedge\": {\n    \"command\": \"wedgeonwedge\",\n    \"detail\": \"⩕\",\n    \"documentation\": \"Two intersecting logical and\"\n  },\n  \"wedgeq\": {\n    \"command\": \"wedgeq\",\n    \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n    \"documentation\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n  },\n  \"whitearrowupfrombar\": {\n    \"command\": \"whitearrowupfrombar\",\n    \"detail\": \"⇪\",\n    \"documentation\": \"Upwards white arrow from bar\"\n  },\n  \"whiteinwhitetriangle\": {\n    \"command\": \"whiteinwhitetriangle\",\n    \"detail\": \"⟁\",\n    \"documentation\": \"White triangle containing small white triangle\"\n  },\n  \"whitepointerleft\": {\n    \"command\": \"whitepointerleft\",\n    \"detail\": \"◅\",\n    \"documentation\": \"\\\\triangleleft (mathabx), white left-pointing pointer\"\n  },\n  \"whitepointerright\": {\n    \"command\": \"whitepointerright\",\n    \"detail\": \"▻\",\n    \"documentation\": \"\\\\triangleright (mathabx), white right-pointing pointer\"\n  },\n  \"whitesquaretickleft\": {\n    \"command\": \"whitesquaretickleft\",\n    \"detail\": \"⟤\",\n    \"documentation\": \"White square with leftwards tick\"\n  },\n  \"whitesquaretickright\": {\n    \"command\": \"whitesquaretickright\",\n    \"detail\": \"⟥\",\n    \"documentation\": \"White square with rightwards tick\"\n  },\n  \"whthorzoval\": {\n    \"command\": \"whthorzoval\",\n    \"detail\": \"⬭\",\n    \"documentation\": \"White horizontal ellipse\"\n  },\n  \"whtvertoval\": {\n    \"command\": \"whtvertoval\",\n    \"detail\": \"⬯\",\n    \"documentation\": \"White vertical ellipse\"\n  },\n  \"wideangledown\": {\n    \"command\": \"wideangledown\",\n    \"detail\": \"⦦\",\n    \"documentation\": \"Oblique angle opening up\"\n  },\n  \"wideangleup\": {\n    \"command\": \"wideangleup\",\n    \"detail\": \"⦧\",\n    \"documentation\": \"Oblique angle opening down\"\n  },\n  \"widebridgeabove\": {\n    \"command\": \"widebridgeabove\",\n    \"detail\": \"x⃩\",\n    \"documentation\": \"Combining wide bridge above\"\n  },\n  \"wideutilde\": {\n    \"command\": \"wideutilde\",\n    \"detail\": \" ̰ (\\\"undertilde\\\" command)\",\n    \"documentation\": \"Under tilde accent (multiple characters and non-spacing)\"\n  },\n  \"wp\": {\n    \"command\": \"wp\",\n    \"detail\": \"℘ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Weierstrass p\"\n  },\n  \"wr\": {\n    \"command\": \"wr\",\n    \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n    \"documentation\": \"Wreath product\"\n  },\n  \"xbsol\": {\n    \"command\": \"xbsol\",\n    \"detail\": \"⧹ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\hide (oz), big reverse solidus, schema hiding\"\n  },\n  \"xsol\": {\n    \"command\": \"xsol\",\n    \"detail\": \"⧸\",\n    \"documentation\": \"Big solidus\"\n  },\n  \"yen\": {\n    \"command\": \"yen\",\n    \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n    \"documentation\": \"Yen sign\"\n  },\n  \"zcmp\": {\n    \"command\": \"zcmp\",\n    \"detail\": \"⨟ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\semi (oz), \\\\fatsemi (stmaryrd), schema composition\"\n  },\n  \"zpipe\": {\n    \"command\": \"zpipe\",\n    \"detail\": \"⨠ (\\\"oz\\\" command)\",\n    \"documentation\": \"Z notation schema piping\"\n  },\n  \"zproject\": {\n    \"command\": \"zproject\",\n    \"detail\": \"⨡ (\\\"oz\\\" command)\",\n    \"documentation\": \"\\\\project (oz), schema projection\"\n  }\n}\n"
  },
  {
    "path": "dev/README.md",
    "content": "# Development documentation\n\n## The manager logic\n\nThe manager is responsible for detecting the correct root file and once detected to parse the whole project. Its logic is shown as follows.\n```mermaid\ngraph TD\n  A[OnWatchedFileChanged] --> B[ParseFileAndSubs];\n  C([After finding a new root file]) -->|On the root file| B;\n  C --> D[ParseFls];\n  E([After a successful build]) --> D;\n  D -->|For new files| B;\n  B -->|For every file| F[ParseInputFiles];\n  B -->|For new files| G[addToFileWatcher];\n  F -->|For new files| B\n```\n\n## Scripts for Intellisense\n\nThese scripts are actually only frontend to the `pyintel` package, which implements the core mechanisms. It fetches the latest list of packages and classes along with their descriptions from CTAN at https://ctan.org/pkg. It uses the TeXLive Package database `texlive.tlpdb` retrieved from https://mirrors.ircam.fr/pub/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb.\n\n### ctanpkglist.py\n\nIt produces the intellisense data for classes and packages and save the result as json files: `../data/classnames.json` and `../data/packagenames.json`.\n\n#### Classes\n\nThe list of classes is computed from the TeXLive Package database by looking for all `.cls` files. The description associated to each class is obtained from CTAN.\n\n#### Packages\n\nGetting a proper list of packages is tricky as the package names (as listed by CTAN) do not always match the base names of the `.sty` files to be loaded by `\\usepackage`. This is handled in the following way\n\n- We use the TeXLive Package database to\n  - List all the `.sty` files provided by TeXLive\n  - For every package, list the `.sty` files it contains. The name to pass to `\\usepackage` is the base name of one of the `.sty` files listed there.\n- For every package `pkg` listed by CTAN\n  - If `pkg.sty` exists in the TeXLive Package database, store `pkg` for package intellisense.\n  - If not, search if a package `pkg/` exists in the TeXLive Package database and look up a file whose lowercase name matches `pkg`. If it is found, then save it for package intellisense.\n\nAs some packages cannot be properly detected using the above mechanism, we maintain a list of extra packages to be added to the list in [extra-packagenames.json](extra-packagenames.json). These packages are automatically added at the end of the [`ctanpkglist.py`](ctanpkglist.py) script.\n\n### unimathsymbols.py\n\nIt parses uni-math symbols from http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt and save the result as a json file. The result is used to generate command intellisense.\n\n### parse-cwl.ts\n```\nts-node parse-cwl.ts both|all|ess|essential|<package>.cwl\n```\n\nThis script generates intellisense data from the files listed in `cwl.list` file (`both`, `ess`, `essential`) or all files (`both`, `all`, `<package>.cwl`) in `cwl/` folder, depends on the command line argument provided to the script. The generated intellisense `.json` file is placed at `../data/packages` (`both`, `ess`, `essential`) or `packages` (`both`, `all`, `<package>.cwl`).\nFurther, `expl3.cwl` file generated by `latex3command.py` is also parsed to `expl3.json` and placed at `../data/packages`.\nNote that the directory must already exist. It is recommended to first run the script `getcwl.sh` to download live raw data from https://github.com/texstudio-org/texstudio. Note that this requires subversion installed.\n\nIf you have a custom `<package>.cwl` file, you can put it in `LaTeX-Workshop/dev/cwl` folder. Then run `ts-node parse-cwl.ts <package>.cwl` in command line. Finally, the generated `<package>.json` file can be found in `LaTeX-Workshop/dev/packages`. You may need to manually create this folder first to run the script.\n\nFor every package or class, one `.json` file is generated, containing the data for the package defined in the `.cwl` file. This file has the following structure\n```typescript\n{\n  deps: {\n    name: string // The name of other package to also include along with this one\n    if?: string // But only when package is used with this option\n  }[]\n  macros: MacroRaw[] // All macros of this package\n  envs: EnvironmentRaw[] // All environments of this package\n  keys: { [key: string]: string[] } // The key-value pairs that the macros/environments or this package can use\n  args: string[] // The key of key-value pairs defined above, where the pairs can be used as package options\n}\n```\n\nIn this `json` object, the macros have the following structure:\n```typescript\n{\n  name: string // The name of the macro, without the argument signature e.g., {}\n  arg?: {\n    format: string // The argument signature\n    snippet: string // The snippet to insert besides macro name. This variable does not include name\n    keys?: string[] // The key of key-value pairs defined in the package, where the pairs can be used as possible macro argument values\n    keyPos?: number // The index of argument which may take the key-value pair. Start from zero, count from left to right, regardless of argument types e.g., {}, [], () or ||.\n  }\n  if?: string // The macro is available only when package is used with this option\n  unusual?: boolean // The macro is an unusual one\n  detail?: string\n  doc?: string\n}\n```\nAn example is:\n```json\n{\n  \"name\": \"DeclareAcronym\",\n  \"arg\": {\n    \"format\": \"{}{}\",\n    \"snippet\": \"DeclareAcronym{${1:id}}{${2:properties%keyvals}}\",\n    \"keys\": [\n      \"\\\\DeclareAcronym#c,...\"\n    ],\n    \"keyPos\": 1\n  }\n}\n```\n\nThe environments have the following structure:\n```typescript\n{\n  name: string // The name of the env, without \\begin{}\n  arg?: {\n    format: string\n    snippet: string\n    keys?: string[]\n    keyPos?: number\n  }\n  if?: string\n  unusual?: boolean\n}\n```\nAn example is:\n```json\n{\n  \"name\": \"acronym\",\n  \"arg\": {\n    \"format\": \"[]\",\n    \"snippet\": \"acronym[${1:longest}]\"\n  }\n}\n```\n\nCompletion files for classes are all prefixed by `class-`.\n\n### latex3command.py\n\nThis script generates `expl3.cwl` for LaTeX-3 from all `.dtx` files defined in `/opt/texlive/2024/texmf-dist/source/latex/l3kernel/`, which can be overwritten by setting environment variable `PATH_TO_DTX`.\n\n## Grammar files\n\n- `update-grammar.js` retrieves the latest grammar files from https://github.com/jlelong/vscode-latex-basics.\n-`build-grammar.js` generates the `.json` grammar files from `.yaml`.\n"
  },
  {
    "path": "dev/createSymbolSvgs.ts",
    "content": "import { readFileSync, writeFileSync } from 'fs'\nimport * as path from 'path'\n\ntype SnippetPanelJsonType = typeof import('../resources/snippetview/snippetpanel.json')\n\ntype IMathSymbol = {\n    name: string,\n    keywords?: string,\n    source: string,\n    snippet: string,\n    category?: string,\n    svg?: string,\n    shrink?: boolean\n}\n\nimport type {ConvertOption, SupportedExtension, SvgOption, TexOption} from 'mathjax-full'\nimport { mathjax } from 'mathjax-full/js/mathjax.js'\nimport { TeX } from 'mathjax-full/js/input/tex.js'\nimport { SVG } from 'mathjax-full/js/output/svg.js'\nimport { liteAdaptor } from 'mathjax-full/js/adaptors/liteAdaptor.js'\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html.js'\nimport type { LiteElement } from 'mathjax-full/js/adaptors/lite/Element.js'\nimport type { MathDocument } from 'mathjax-full/js/core/MathDocument.js'\nimport type { LiteDocument } from 'mathjax-full/js/adaptors/lite/Document.js'\nimport type { LiteText } from 'mathjax-full/js/adaptors/lite/Text.js'\nimport 'mathjax-full/js/input/tex/AllPackages.js'\n\n\nconst adaptor = liteAdaptor()\nRegisterHTMLHandler(adaptor)\n\nconst baseExtensions: SupportedExtension[] = ['ams', 'base', 'color', 'newcommand', 'noerrors', 'noundefined']\n\nconst baseTexOption: TexOption = {\n    packages: baseExtensions,\n    formatError: (_jax, error) => { throw new Error(error.message) }\n}\nconst texInput = new TeX<LiteElement, LiteText, LiteDocument>(baseTexOption)\nconst svgOption: SvgOption = {fontCache: 'local'}\nconst svgOutput = new SVG<LiteElement, LiteText, LiteDocument>(svgOption)\nconst html = mathjax.document('', {InputJax: texInput, OutputJax: svgOutput}) as MathDocument<LiteElement, LiteText, LiteDocument>\n\nconst convertOption: ConvertOption = {\n    display: true,\n    em: 16,\n    ex: 8,\n    containerWidth: 80*16\n}\n\nfunction loadSnippets() {\n    const snipetsFile = path.resolve('.', 'resources', 'snippetview', 'snippetpanel.json')\n    const snippets: {\n        mathSymbols: {\n            [category: string]: IMathSymbol[]\n        }\n    } = JSON.parse(readFileSync(snipetsFile, { encoding: 'utf8' })) as SnippetPanelJsonType\n\n    Object.values(snippets.mathSymbols).forEach((symbolArray) => {\n        symbolArray.forEach((symbol) => {\n            if (symbol.svg) {\n                return\n            }\n            const node = html.convert(symbol.source, convertOption) as LiteElement\n            let svg = adaptor.innerHTML(node)\n            svg = svg.replace(\n                /<defs>/,\n                `<title>${symbol.name.toLocaleUpperCase()}.${\n                    symbol.keywords ? ' Keywords: ' + symbol.keywords : ''\n                }</title><defs>`\n            )\n            if (symbol.shrink) {\n                svg = svg.replace(/^<svg/, '<svg class=\"shrink\"')\n            }\n            symbol.svg = svg\n        })\n    })\n    writeFileSync(snipetsFile, JSON.stringify(snippets, undefined, 4))\n    console.log('LaTeX-Workshop: Symbols rendered and cached')\n}\n\nloadSnippets()\n"
  },
  {
    "path": "dev/ctanpkglist.py",
    "content": "'''\nThis script fetches the latest list of packages and their descriptions\nfrom CTAN at https://ctan.org/pkg and save the result as a json file.\n\nThe result is used to generate usepackage and documentclass\nintellisense for LaTeX Workshop.\n'''\n\nfrom pathlib import Path\nimport json\nfrom pyintel import CtanPkg\n\nCTAN_SOURCE = 'https://ctan.org/json/2.0/packages'\n\nctanPkg = CtanPkg(Path('./extra-packagenames.json').absolute(), CTAN_SOURCE)\npackages = ctanPkg.get_packages()\njson.dump(packages, open('../data/packagenames.json', 'w+', encoding='utf-8'),\n        separators=(',', ': '), sort_keys=True, indent=2, ensure_ascii=False)\n\nclasses = ctanPkg.get_classes()\njson.dump(classes, open('../data/classnames.json', 'w+', encoding='utf-8'),\n        separators=(',', ': '), sort_keys=True, indent=2, ensure_ascii=False)\n"
  },
  {
    "path": "dev/cwl.list",
    "content": "abntcite.cwl\nacro.cwl\nacronym.cwl\nafterpage.cwl\nalgorithm2e.cwl\nallrunes.cwl\namsbsy.cwl\namsfonts.cwl\namsmath.cwl\namsopn.cwl\namssymb.cwl\namsthm.cwl\napacite.cwl\nappendix.cwl\narray.cwl\nattachfile.cwl\nbabel.cwl\nbeamerbaseauxtemplates.cwl\nbeamerbaseboxes.cwl\nbeamerbasecolor.cwl\nbeamerbasecompatibility.cwl\nbeamerbasefont.cwl\nbeamerbaseframe.cwl\nbeamerbaseframecomponents.cwl\nbeamerbaseframesize.cwl\nbeamerbaselocalstructure.cwl\nbeamerbasemisc.cwl\nbeamerbasemodes.cwl\nbeamerbasenavigation.cwl\nbeamerbasenotes.cwl\nbeamerbaseoptions.cwl\nbeamerbaseoverlay.cwl\nbeamerbaserequires.cwl\nbeamerbasesection.cwl\nbeamerbasetemplates.cwl\nbeamerbasethemes.cwl\nbeamerbasetheorems.cwl\nbeamerbasetitle.cwl\nbeamerbasetoc.cwl\nbeamerbasetranslator.cwl\nbeamerbasetwoscreens.cwl\nbeamerbaseverbatim.cwl\nbiblatex.cwl\nbidi.cwl\nblindtext.cwl\nbm.cwl\nbooktabs.cwl\nbraket.cwl\ncalc.cwl\ncancel.cwl\ncaption.cwl\ncases.cwl\nchemformula.cwl\nchemstyle.cwl\ncircuitikz.cwl\nclass-altacv.cwl\nclass-beamer.cwl\nclass-book.cwl\nclass-ctexart.cwl\nclass-ctexbeamer.cwl\nclass-ctexbook.cwl\nclass-ctexrep.cwl\nclass-exam.cwl\nclass-letter.cwl\nclass-memoir.cwl\nclass-moderncv.cwl\nclass-scrartcl.cwl\nclass-scrbook.cwl\nclass-scrlttr2.cwl\nclass-scrreprt.cwl\ncleveref.cwl\ncolor.cwl\ncolortbl.cwl\ncommath.cwl\ncomment.cwl\ncoordsys.cwl\ncquthesis.cwl\ncsquotes.cwl\nctex.cwl\ncurrfile.cwl\ncurrvita.cwl\ncyrillic.cwl\ndatatool-base.cwl\ndatatool.cwl\ndoi.cwl\neasy-todo.cwl\nempheq.cwl\nendnotes.cwl\nenumerate.cwl\nepigraph.cwl\nepstopdf.cwl\nesint.cwl\netoolbox.cwl\neurosym.cwl\nfancybox.cwl\nfancyhdr.cwl\nfancyref.cwl\nfancyunits-base.cwl\nfancyunits-np.cwl\nfancyunits-per.cwl\nfancyunits_big-fractions.cwl\nfancyunits_medium-fractions.cwl\nfancyunits_small-fractions.cwl\nfancyvrb.cwl\nfhgtechdoku_additional.cwl\nfixme.cwl\nfloat.cwl\nfontspec.cwl\ngeometry.cwl\ngerman.cwl\nglossaries.cwl\nglosstex.cwl\ngraphicx.cwl\nharvard.cwl\nhyperref.cwl\nifluatex.cwl\nifpdf.cwl\nifplatform.cwl\niftex.cwl\nifthen.cwl\nifvtex.cwl\nifxetex.cwl\nimport.cwl\ninputenc.cwl\njurabib.cwl\nkantlipsum.cwl\nlatex-209.cwl\nlatex-dev.cwl\nlatex-document.cwl\nlatex-l2tabu.cwl\nlayout.cwl\nletltxmacro.cwl\nlibertine.cwl\nlipsum.cwl\nlistings.cwl\nlogsys.cwl\nlongtable.cwl\nlscape.cwl\nltxtable.cwl\nluatex.cwl\nluatodonotes.cwl\nmanyfoot.cwl\nmarvosym.cwl\nmathtools.cwl\nmdframed.cwl\nmdwlist.cwl\nmemhfixc.cwl\nmenukeys.cwl\nmetrix.cwl\nmhchem.cwl\nmicrotype.cwl\nminted.cwl\nmulticol.cwl\nmultido.cwl\nmultimedia.cwl\nmultirow.cwl\nnameref.cwl\nnatbib.cwl\nneedspace.cwl\nnewclude.cwl\nngerman.cwl\nnicefrac.cwl\nnomencl.cwl\nnth.cwl\nparacol.cwl\nparskip.cwl\npdfpages.cwl\npgf.cwl\npgfcore.cwl\npgfplots.cwl\nphysics.cwl\nphysics2.cwl\npifont.cwl\nplaceins.cwl\npsfrag.cwl\npst-3d.cwl\npst-blur.cwl\npst-char.cwl\npst-coil.cwl\npst-eps.cwl\npst-fill.cwl\npst-node.cwl\npst-plot.cwl\npst-text.cwl\npst-tree.cwl\npstricks.cwl\nrotating.cwl\nscraddr.cwl\nscrdate.cwl\nscrlfile.cwl\nscrpage2.cwl\nscrtime.cwl\nsectsty.cwl\nsetspace.cwl\nsiunitx-special.cwl\nsiunitx.cwl\nsoul.cwl\nsubcaption.cwl\nsubfig.cwl\nsubfigure.cwl\nsubfiles.cwl\nsupertabular.cwl\nsvn-multi.cwl\nsvninfo.cwl\ntabu.cwl\ntabularray.cwl\ntabularx.cwl\ntabulary.cwl\ntcolorbox.cwl\ntensor.cwl\ntex.cwl\ntextcomp.cwl\ntheorem.cwl\ntikz-cd.cwl\ntikz-timing.cwl\ntikz.cwl\ntitlesec.cwl\ntkz-euclide.cwl\ntocbibind.cwl\ntocloft.cwl\ntodonotes.cwl\nulem.cwl\nunits.cwl\nupgreek.cwl\nurl.cwl\nvarioref.cwl\nverse.cwl\nvirginialake.cwl\nwasysym.cwl\nwatermark.cwl\nxcolor.cwl\nxeCJK.cwl\nxeCJKfntef.cwl\nxepersian.cwl\nxetex.cwl\nxifthen.cwl\nxltxtra.cwl\nxparse.cwl\nxspace.cwl\nxtab.cwl\nxy.cwl\nyathesis.cwl\nyfonts.cwl\nzhnumber.cwl"
  },
  {
    "path": "dev/editviewer.py",
    "content": "import os\nimport argparse\n\nparser = argparse.ArgumentParser()\nparser.add_argument('-w', '--web', help=f'Path to pdf.js distributed web/ folder, end without `/`', type=str)\nparser.add_argument('-v', '--viewer', help=f'Path to extension viewer/ folder, end without `/`', type=str)\nargs = parser.parse_args()\n\nwith open(args.web + '/viewer.html', 'rt', encoding='utf-8') as fin:\n    with open(args.viewer + '/viewer.html', 'wt', encoding='utf-8') as fout:\n        for line in fin:\n            fout.write(\n                line.replace('''<title>PDF.js viewer</title>''', '''<meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self'; base-uri 'none'; connect-src 'self' ws://127.0.0.1:*; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;\">\\n    <title>PDF.js viewer</title>''')\n                    .replace('''<link rel=\"stylesheet\" href=\"viewer.css\">''', '''<link rel=\"stylesheet\" href=\"viewer.css\">\\n    <link rel=\"stylesheet\" href=\"latexworkshop.css\">''')\n                    .replace('''<script src=\"../build/pdf.mjs\" type=\"module\"></script>''', '''<script src=\"build/pdf.mjs\" type=\"module\"></script>''')\n                    .replace('''<script src=\"viewer.mjs\" type=\"module\"></script>''', '''<script src=\"out/viewer/latexworkshop.js\" type=\"module\"></script>''')\n                    .replace('''<div class=\"toolbar\">''', '''<div class=\"toolbar hide\">''')\n                    .replace('''<div class=\"toolbarButtonSpacer\"></div>''', '''<!-- <div class=\"toolbarButtonSpacer\"></div> -->''')\n            )\n\nwith open(args.web + '/viewer.mjs', 'rt', encoding='utf-8') as fin:\n    with open(args.viewer + '/viewer.mjs', 'wt', encoding='utf-8') as fout:\n        currentClass = ''\n        for line in fin:\n            line = line.replace('''const MATCH_SCROLL_OFFSET_TOP = -50;''', '''const MATCH_SCROLL_OFFSET_TOP = -100;''') \\\n                .replace('''this.switchView(view, true);''', '''this.switchView(view, false);''') \\\n                .replace('''console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);''', '''// console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);''') \\\n                .replace('''this.removePageBorders = options.removePageBorders || false;''', '''this.removePageBorders = options.removePageBorders || true;''') \\\n                .replace('''localStorage.setItem(\"pdfjs.history\", databaseStr);''', '''// localStorage.setItem(\"pdfjs.history\", databaseStr);''') \\\n                .replace('''return localStorage.getItem(\"pdfjs.history\");''', '''return // localStorage.getItem(\"pdfjs.history\");''') \\\n                .replace('''this.setTitle(title || url);''', '''// this.setTitle(title || url);''') \\\n                .replace('''localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));''', '''// localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));''') \\\n                .replace('''prefs: JSON.parse(localStorage.getItem(\"pdfjs.preferences\"))''', '''prefs: undefined // JSON.parse(localStorage.getItem(\"pdfjs.preferences\"))''') \\\n                .replace('''(!event.shiftKey || window.chrome || window.opera)) {''', '''(!event.shiftKey || window.chrome || window.opera)) {\\n    if (window.parent !== window) {\\n      return;\\n    }''') \\\n                .replace('''console.error(\"webviewerloaded:\", ex);''', '''// console.error(\"webviewerloaded:\", ex);''') \\\n                .replace('''//# sourceMappingURL=viewer.mjs.map''', '''''') \\\n                .replace('''console.log(`PDF ${pdfDocument.''', '''// console.log(`PDF ${pdfDocument.''') \\\n                .replace('''value: \"../build/pdf.worker.mjs\"''', '''value: \"./build/pdf.worker.mjs\"''') \\\n                .replace('''value: \"../build/pdf.sandbox.mjs\"''', '''value: \"./build/pdf.sandbox.mjs\"''') \\\n                .replace('''value: \"../web/standard_fonts/\"''', '''value: \"../standard_fonts/\"''') \\\n                .replace('''value: \"../web/cmaps/\"''', '''value: \"../cmaps/\"''') \\\n                .replace('''value: \"../web/wasm/\"''', '''value: \"../wasm/\"''') \\\n                .replace('''value: \"../web/iccs/\"''', '''value: \"../iccs/\"''') \\\n                .replace('''(this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor;''', '''(this.container.clientWidth - hPadding) / Math.max(...this._pages.map(p => p.width)) * currentPage.scale / this.#pageWidthScaleFactor * (1 / (1 - (viewerTrim ?? 0) / 100));''') \\\n                .replace('''(this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;''', '''(this.container.clientHeight - vPadding) / Math.max(...this._pages.map(p => p.height)) * currentPage.scale * (1 / (1 - (viewerTrim ?? 0) / 100));''') \\\n                .replace('''setRotation(this.initialRotation);''', '''// setRotation(this.initialRotation);''') \\\n                .replace('''this.pdfLinkService.setHash(this.initialBookmark);''', '''// this.pdfLinkService.setHash(this.initialBookmark);''') \\\n                .replace('''hPadding = vPadding = 0;''', '''if (this._scrollMode === ScrollMode.HORIZONTAL || this._spreadMode === SpreadMode.NONE) { hPadding = vPadding = 0; } else { hPadding = 10; vPadding = 0; }''') \\\n                .replace(''' eventBus._on(\"openfile\"''', ''' // eventBus._on(\"openfile\"''') \\\n                .replace(''' eventBus._on(\"print\"''', ''' // eventBus._on(\"print\"''') \\\n                .replace(''' eventBus._on(\"download\"''', ''' // eventBus._on(\"download\"''')\n            fout.write(line)\n\nos.system(f'git diff --no-index {args.web}/viewer.html {args.viewer}/viewer.html > {args.viewer}/../dev/viewer/viewer.html.diff')\nos.system(f'git diff --no-index {args.web}/viewer.mjs {args.viewer}/viewer.mjs > {args.viewer}/../dev/viewer/viewer.mjs.diff')"
  },
  {
    "path": "dev/extra-packagenames.json",
    "content": "{\n    \"amssymb\": {\n        \"command\": \"amssymb\",\n        \"detail\": \"TeX fonts from the American Mathematical Society\",\n        \"documentation\": \"https://ctan.org/pkg/amsfonts\"\n    },\n    \"newtxtext\": {\n        \"command\": \"newtxtext\",\n        \"detail\": \"Alternative uses of the TX fonts, with improved metrics\",\n        \"documentation\": \"https://ctan.org/pkg/newtx\"\n    },\n    \"newtxmath\": {\n        \"command\": \"newtxmath\",\n        \"detail\": \"Alternative uses of the TX fonts, with improved metrics\",\n        \"documentation\": \"https://ctan.org/pkg/newtx\"\n    },\n    \"stix2\": {\n        \"command\": \"stix2\",\n        \"detail\": \"Type1 versions of the STIX Two OpenType fonts\",\n        \"documentation\": \"https://ctan.org/pkg/stix2-type1\"\n    },\n    \"xecjkfntef\": {\n        \"command\": \"xeCJKfntef\",\n        \"detail\": \"Support for CJK documents in XeLaTeX\",\n        \"documentation\": \"https://ctan.org/pkg/xecjk\"\n    }\n}\n"
  },
  {
    "path": "dev/getcwl.sh",
    "content": "open https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2Ftexstudio-org%2Ftexstudio%2Ftree%2Fmaster%2Fcompletion"
  },
  {
    "path": "dev/githooks/pre-commit",
    "content": "#!/bin/sh\nnpx eslint --cache --ext .ts,.js ."
  },
  {
    "path": "dev/latex3command.py",
    "content": "\"\"\"\nThis script generates intellisense data for LaTeX 3\n    ../data/expl3.json\n\"\"\"\nfrom pathlib import Path\nimport os\nimport re\nimport json\nimport itertools\nimport dataclasses\nfrom pyintel import CwlIntel\n\nCWD = Path(__file__).expanduser().resolve().parent\nUNIMATHSYMBOLS = CWD.joinpath('unimathsymbols.txt').resolve()\nCOMMANDS_FILE = CWD.joinpath('../data/commands.json').resolve()\nENVS_FILE = CWD.joinpath('../data/environments.json').resolve()\nOUT_DIR = CWD.joinpath('../data/packages').resolve()\n\nPATH_TO_DTX = os.environ.get(\n    \"PATH_TO_DTX\",\n    default='/opt/texlive/2024/texmf-dist/source/latex/l3kernel/')\ndtx_path = Path(PATH_TO_DTX).resolve()\nif not dtx_path.exists():\n    raise FileNotFoundError(f'Directory {dtx_path} does not exist. Do you have PATH_TO_DTX set?')\ndtx_files = dtx_path.glob('*.dtx')\ndtx_files_to_ignore = ['l3doc.dtx']\n\ndef exclude(entry: str) -> bool:\n    return not re.match(r'\\\\(?!(?:::)|(?:__))', entry)\n\ndef expand_variants(entry: str, options):\n    if options is None:\n        return [entry]\n    if 'pTF' in options:\n        try:\n            (base, signature) = entry.split(':')\n            variants = [base + '_p:' + signature]\n            variants.extend([entry + v for v in ('T', 'F', 'TF')])\n            return variants\n        except ValueError as e:\n            print(f'Wrong format for {entry} with {options}')\n            print('\\t', e)\n            return []\n    elif 'TF' in options:\n        return [entry + v for v in ('T', 'F', 'TF')]\n    elif 'noTF' in options:\n        return [entry + v for v in ('', 'T', 'F', 'TF')]\n    else:\n        return [entry]\n\n\ndef parse_doc_block(block_content: str, _type: str):\n    objs = []\n    for  match in re.findall(rf'\\\\begin{{{_type}}}(?:\\[([^\\]]*)\\])?[\\s\\n%]*{{([^}}]*)}}', block_content, flags=re.M):\n        options = [o.strip() for o in match[0].split(',')]\n        entries_str = match[1].replace('%', '')\n        entries = [m for m in (o.strip() for o in ''.join(entries_str).split(',')) if not exclude(m)]\n        expanded_entries = [x for e in entries for x in expand_variants(e, options)]\n        objs.extend(expanded_entries)\n    return objs\n\n\ndef parse_file(fpath, _type):\n    objs = []\n    inside_documentation = False\n    block_start = None\n    block_end = None\n    with open(fpath, encoding='utf8') as fp:\n        lines = fp.readlines()\n        # content = '\\n'.join(lines)\n        for i, line in enumerate(lines):\n            if re.search(r'\\\\begin{documentation}', line):\n                inside_documentation = True\n                block_start = i\n                continue\n            if not inside_documentation:\n                continue\n            if inside_documentation and re.search(r'\\\\end{documentation}', line):\n                inside_documentation = False\n                block_end = i\n                content = ''.join(lines[block_start:block_end])\n                objs.extend(parse_doc_block(content, _type))\n    return objs\n\n\ndef parse_all_files():\n    entries = {}\n    for f in dtx_files:\n        print(f)\n        if any(f.match(i) for i in dtx_files_to_ignore):\n            continue\n        ans = parse_file(f.as_posix(), 'function')\n        ans.extend(parse_file(f.as_posix(), 'variable'))\n        if len(ans) > 0:\n            entries[f.name] = list(set(ans))\n    return entries\n\nif __name__ == \"__main__\":\n    entries_dict = parse_all_files()\n    entries_array = sorted(set(itertools.chain.from_iterable(entries_dict.values())))\n\n    # Write a .cwl file\n    with open('expl3.cwl', encoding='utf8', mode='w') as fp:\n        fp.writelines([e + '\\n' for e in entries_array])\n    # cwlIntel = CwlIntel(COMMANDS_FILE, ENVS_FILE, UNIMATHSYMBOLS)\n    # expl3 = cwlIntel.parse_cwl_file('expl3.cwl')\n    # expl3.macros['ExplSyntaxBlock'] = {\n    #     'command': 'ExplSyntaxBlock',\n    #     'option': '',\n    #     'detail': '',\n    #     'snippet': 'ExplSyntaxOn\\n\\t$0\\n\\\\ExplSyntaxOff',\n    #     'documentation': 'Insert a \\\\ExplSyntax block'\n    # }\n    # with open(OUT_DIR.joinpath('expl3.json'), 'w', encoding='utf8') as fp:\n    #     json.dump(dataclasses.asdict(expl3, dict_factory=lambda x: {k: v for (k, v) in x if v is not None}), fp, indent=2, ensure_ascii=False)\n"
  },
  {
    "path": "dev/packages/12many.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nto{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"ito\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ito{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"oto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oto{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"setOTMstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setOTMstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setOTMstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setOTMstyle[${2:params%keyvals}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"newOTMstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newOTMstyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOTMstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOTMstyle[${3:params}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"getOTMparameter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getOTMparameter{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"renewOTMstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewOTMstyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOTMstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOTMstyle[${3:params}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOTMparameter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newOTMparameter{${1:style}}{${2:param}}{${3:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/12many#c\": [\n      \"set\",\n      \"dots\",\n      \"nude\",\n      \"laue\"\n    ],\n    \"\\\\setOTMstyle/set\": [\n      \"var=${1:variable name}\",\n      \"naturals=${1:symbol}\",\n      \"where=${1:symbol}\"\n    ],\n    \"\\\\setOTMstyle/dots\": [\n      \"dots=${1:symbol}\"\n    ],\n    \"\\\\setOTMstyle/nude\": [\n      \"dots=${1:symbol}\"\n    ],\n    \"\\\\setOTMstyle/laue\": [\n      \"setminus=${1:symbol}\",\n      \"setplus=${1:symbol}\",\n      \"ybelow=\",\n      \"strokewidth=\",\n      \"innersidegap=\",\n      \"outersidegap=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/12many#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/2up.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"source{${1:mag}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"target\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"target{${1:mag}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"targetlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"targetlayout{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\targetlayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pagesepwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageseplength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesepoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoupemptypage\"\n    },\n    {\n      \"name\": \"twoupclearpage\"\n    },\n    {\n      \"name\": \"twoupeject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouparticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoupplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouplegaltarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouplandscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookletpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightpagenumber\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\targetlayout\": [\n      \"topbottom\",\n      \"twosided\",\n      \"booklet\",\n      \"Booklet\",\n      \"dvidvi\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Acorn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Acornfamily\"\n    },\n    {\n      \"name\": \"acorn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acorn{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Alegreya.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Alegreya\"\n    },\n    {\n      \"name\": \"AlegreyaExtraBold\"\n    },\n    {\n      \"name\": \"AlegreyaBlack\"\n    },\n    {\n      \"name\": \"AlegreyaMedium\"\n    },\n    {\n      \"name\": \"AlegreyaLF\"\n    },\n    {\n      \"name\": \"AlegreyaOsF\"\n    },\n    {\n      \"name\": \"AlegreyaTLF\"\n    },\n    {\n      \"name\": \"AlegreyaTOsF\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alegreyafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Alegreya#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"black\",\n      \"extrabold\",\n      \"medium\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Alegreya#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/AlegreyaSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AlegreyaSans\"\n    },\n    {\n      \"name\": \"AlegreyaSansThin\"\n    },\n    {\n      \"name\": \"AlegreyaSansLight\"\n    },\n    {\n      \"name\": \"AlegreyaSansExtraBold\"\n    },\n    {\n      \"name\": \"AlegreyaSansBlack\"\n    },\n    {\n      \"name\": \"AlegreyaSansMedium\"\n    },\n    {\n      \"name\": \"AlegreyaSansLF\"\n    },\n    {\n      \"name\": \"AlegreyaSansOsF\"\n    },\n    {\n      \"name\": \"AlegreyaSansTLF\"\n    },\n    {\n      \"name\": \"AlegreyaSansTOsF\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlegreyaSansfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/AlegreyaSans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"sfdefault\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"black\",\n      \"extrabold\",\n      \"thin\",\n      \"light\",\n      \"medium\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/AlegreyaSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/AnnSton.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AnnStonfamily\"\n    },\n    {\n      \"name\": \"astone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"astone{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/AnonymousPro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ANPapplelogo\"\n    },\n    {\n      \"name\": \"ANPappleopen\"\n    },\n    {\n      \"name\": \"ANPapproxequal\"\n    },\n    {\n      \"name\": \"ANPback\"\n    },\n    {\n      \"name\": \"ANPblackdiamond\"\n    },\n    {\n      \"name\": \"ANPcheckmark\"\n    },\n    {\n      \"name\": \"ANPcopy\"\n    },\n    {\n      \"name\": \"ANPellipsis\"\n    },\n    {\n      \"name\": \"ANPendtab\"\n    },\n    {\n      \"name\": \"ANPerasetotheright\"\n    },\n    {\n      \"name\": \"ANPgreaterequal\"\n    },\n    {\n      \"name\": \"ANPHbar\"\n    },\n    {\n      \"name\": \"ANPhbar\"\n    },\n    {\n      \"name\": \"ANPinfinity\"\n    },\n    {\n      \"name\": \"ANPinsert\"\n    },\n    {\n      \"name\": \"ANPintegral\"\n    },\n    {\n      \"name\": \"ANPlessequal\"\n    },\n    {\n      \"name\": \"ANPlozenge\"\n    },\n    {\n      \"name\": \"ANPnotequal\"\n    },\n    {\n      \"name\": \"ANPoptionkey\"\n    },\n    {\n      \"name\": \"ANPpartialdiff\"\n    },\n    {\n      \"name\": \"ANPPi\"\n    },\n    {\n      \"name\": \"ANPpi\"\n    },\n    {\n      \"name\": \"ANPproduct\"\n    },\n    {\n      \"name\": \"ANPshift\"\n    },\n    {\n      \"name\": \"ANPshiftlock\"\n    },\n    {\n      \"name\": \"ANPSigma\"\n    },\n    {\n      \"name\": \"ANPsigma\"\n    },\n    {\n      \"name\": \"ANPsigmaone\"\n    },\n    {\n      \"name\": \"ANPsummation\"\n    },\n    {\n      \"name\": \"ANPtab\"\n    },\n    {\n      \"name\": \"ANPReturnSign\"\n    },\n    {\n      \"name\": \"ANPShoulderedOpenBox\"\n    },\n    {\n      \"name\": \"ANPUpArrowHead\"\n    },\n    {\n      \"name\": \"ANPInsertSign\"\n    },\n    {\n      \"name\": \"ANPUpArrowHeadBars\"\n    },\n    {\n      \"name\": \"ANPHelm\"\n    },\n    {\n      \"name\": \"ANPOpenBox\"\n    },\n    {\n      \"name\": \"ANPDelta\"\n    },\n    {\n      \"name\": \"ANPverticaltab\"\n    },\n    {\n      \"name\": \"ANPNumeroSign\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/AnonymousPro#c\": [\n      \"scaled=${1:factor}\",\n      \"ttdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/AnonymousPro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Archivo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ArtNouv.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ArtNouvfamily\"\n    },\n    {\n      \"name\": \"artnouv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artnouv{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ArtNouvc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ArtNouvcfamily\"\n    },\n    {\n      \"name\": \"artnouvc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artnouvc{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Arvo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Arvotabular\"\n    },\n    {\n      \"name\": \"Arvoproportional\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Arvo#c\": [\n      \"scale=${2|${1:factor},MatchLowercase|}\",\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Arvo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/BOONDOX-cal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/BOONDOX-cal#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/BOONDOX-cal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/BOONDOX-calo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/BOONDOX-calo#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/BOONDOX-calo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/BOONDOX-ds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/BOONDOX-ds#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/BOONDOX-ds#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/BOONDOX-frak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/BOONDOX-frak#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/BOONDOX-frak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/BOONDOX-uprscr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbscr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/BOONDOX-uprscr#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/BOONDOX-uprscr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Baskervaldx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Baskervaldx#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"p\",\n      \"sups\",\n      \"swash\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Baskervaldx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CJK.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"MULEenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKbold\"\n    },\n    {\n      \"name\": \"CJKnormal\"\n    },\n    {\n      \"name\": \"CJKboldshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsymbol{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"CJKpunctsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKpunctsymbol{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKsymbols{${1:codepoint1}}{${2:codepoint2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKchar{${1:byte1}}{${2:byte2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKchar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CJKchar[${3:UTF8}]{${1:byte1}}{${2:byte2}}\"\n      }\n    },\n    {\n      \"name\": \"Unicode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unicode{${1:byte1}}{${2:byte2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKCJKchar\"\n    },\n    {\n      \"name\": \"CJKhangulchar\"\n    },\n    {\n      \"name\": \"CJKlatinchar\"\n    },\n    {\n      \"name\": \"CJKhwkatakana\"\n    },\n    {\n      \"name\": \"CJKnohwkatakana\"\n    },\n    {\n      \"name\": \"CJKenc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKenc{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontenc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKfontenc{${1:encoding}}{${2:font encoding}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKencfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKencfamily{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKencfamily\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CJKencfamily[${3:font encoding}]{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKshape{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKencshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKencshape{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKencshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CJKencshape[${3:font encoding}]{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKaddEncHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKaddEncHook{${1:encoding}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"CJKhanja\"\n    },\n    {\n      \"name\": \"CJKhangul\"\n    },\n    {\n      \"name\": \"CJKkern\"\n    },\n    {\n      \"name\": \"CJKglue\"\n    },\n    {\n      \"name\": \"CJKtolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbs\"\n    },\n    {\n      \"name\": \"CJKtilde\"\n    },\n    {\n      \"name\": \"standardtilde\"\n    },\n    {\n      \"name\": \"CJKspace\"\n    },\n    {\n      \"name\": \"CJKnospace\"\n    },\n    {\n      \"name\": \"CJKindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKcaption{${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"CJKhdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKhdef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKhlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKhlet{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKvdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKvdef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"CJKvlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKvlet{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CJK\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJK\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:font encoding}]{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJK*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJK*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:font encoding}]{${1:encoding}}{${2:family}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/CJK#c\": [\n      \"lowercase\",\n      \"global\",\n      \"local\",\n      \"active\",\n      \"encapsulated\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CJK#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CJKfntef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"CJK\"\n    },\n    {\n      \"name\": \"CJKulem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKunderdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdot{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"varCJKunderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varCJKunderline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanyline{${1:depth%l}}{${2:underline code}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanysymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanysymbol{${1:depth%l}}{${2:under-symbol code}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsoutcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKsoutheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKulineleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKulinerightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdbllinebasesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdbllinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdbllinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdotbasesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdotcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderlinebasesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderlinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderlinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderwavebasesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderwavecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKunderwavesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKxoutcolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CJKfilltwosides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CJKnumb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"CJK\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CJKdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKdigits{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"CJKdigits*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKdigits*{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"CJKnullspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CJKpunct.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"punctstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"punctstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\punctstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKpunctallowbreakbetweenpuncts\"\n    },\n    {\n      \"name\": \"CJKpunctnobreakbetweenpuncts\"\n    },\n    {\n      \"name\": \"CJKpunctsetkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKpunctsetkern{${1:标点1}}{${2:标点2}}{${3:间距}}\"\n      }\n    },\n    {\n      \"name\": \"CJKpunctmapfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"CJKpunctmapfamily{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:punct family}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\punctstyle\": [\n      \"banjiao\",\n      \"quanjiao\",\n      \"kaiming\",\n      \"hangmobanjiao\",\n      \"CCT\",\n      \"plain\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CJKutf8.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"CJK\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CJKvert.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKvert\"\n    },\n    {\n      \"name\": \"CJKhorz\"\n    },\n    {\n      \"name\": \"CJKsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsymbol{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsymbolsimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsymbolsimple{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"CJKbaselinestretch\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CJKvert#c\": [\n      \"usebaselinestretch\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CJKvert#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Carrickc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Carrickcfamily\"\n    },\n    {\n      \"name\": \"carr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"carr{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CascadiaCodePL.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CascadiaCodePL#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CascadiaCodePL#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CascadiaMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CascadiaMono#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CascadiaMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CascadiaMonoPL.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CascadiaMonoPL#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CascadiaMonoPL#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CharisSIL.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CharisSIL\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CharisSIL#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CharisSIL#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Chivo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsuperior\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textinferior\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textnumerator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defigures\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Chivo#c\": [\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"bold\",\n      \"extrabold\",\n      \"black\",\n      \"lining\",\n      \"oldstyle\",\n      \"proportional\",\n      \"tabular\",\n      \"familydefault\",\n      \"opentype\",\n      \"type1\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Chivo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ClearSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"clear\"\n    },\n    {\n      \"name\": \"clearlight\"\n    },\n    {\n      \"name\": \"clearthin\"\n    },\n    {\n      \"name\": \"textsfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsfl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clearfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ClearSans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\",\n      \"medium\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ClearSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CooperHewitt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cphwtfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cooperhewitt\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CooperHewitt#c\": [\n      \"scale=${1:factor}\",\n      \"default\",\n      \"type1\",\n      \"semibold\",\n      \"heavy\",\n      \"medium\",\n      \"thin\",\n      \"light\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CooperHewitt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CormorantGaramond.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CormorantGaramond#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"semibold\",\n      \"medium\",\n      \"light\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CormorantGaramond#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CoverPage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CoverPageSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoverPageSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\CoverPageSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"CPTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPAuthorFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPInstituteFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPInSourceFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPCopyrightFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoverPageHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoverPageBody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoverPageFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoverPageFooterLogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPProcessBibEntry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPPublisherCheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoverPageFooterInfo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CoverPage#c\": [\n      \"german\",\n      \"english\",\n      \"twoside\",\n      \"nobib\"\n    ],\n    \"\\\\CoverPageSetup\": [\n      \"title=${1:text}\",\n      \"author=${1:text}\",\n      \"institute=${1:text}\",\n      \"insource=${1:text}\",\n      \"copyright=${1:text}\",\n      \"year=${1:year}\",\n      \"publisher=${1|Springer,Kluwer,SPIE,IEEE|}\",\n      \"booktitle=${1:text}\",\n      \"journal=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CoverPage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CreationBoites.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CreationBoite\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CreationBoite{${1:envname}}{${2:compteur}}{${3:icône}}{${4:libéllés}}\"\n      }\n    },\n    {\n      \"name\": \"CreationBoite\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"CreationBoite[${5:color}]{${1:envname}}{${2:compteur}}{${3:icône}}{${4:libéllés}}\"\n      }\n    },\n    {\n      \"name\": \"ParamBoites\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ParamBoites[${1:clés%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"margeboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margeinttitreboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eptraitboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"policetitreboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"policesoustitreboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"couleursoustitreboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tailleiconeboite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitreBoite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SousTitreBoite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogoCoinDroit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CreerCompteur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CreerCompteur{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset\": [\n      \"baseboite/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/CrimsonPro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crimsonpro\"\n    },\n    {\n      \"name\": \"crimsonproOsF\"\n    },\n    {\n      \"name\": \"crimsonproLF\"\n    },\n    {\n      \"name\": \"crimsonprotabular\"\n    },\n    {\n      \"name\": \"crimsonproproportional\"\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CrimsonPro#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"medium\",\n      \"m\",\n      \"semibold\",\n      \"sb\",\n      \"extrabold\",\n      \"eb\",\n      \"k\",\n      \"black\",\n      \"light\",\n      \"el\",\n      \"extralight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CrimsonPro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CronosPro-FontDef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"otfontdef\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CronosPro-FontDef#c\": [\n      \"slides\",\n      \"opticals\",\n      \"noopticals\",\n      \"smallfamily\",\n      \"medfamily\",\n      \"normalsize\",\n      \"nonormalsize\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CronosPro-FontDef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/CronosPro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"CronosPro-FontDef\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"smallfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smallfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"slantfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slantfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/CronosPro#c\": [\n      \"scale=${1:factor}\",\n      \"slides\",\n      \"noopticals\",\n      \"opticals\",\n      \"smallfamily\",\n      \"medfamily\",\n      \"normalsize\",\n      \"nonormalsize\",\n      \"textosf\",\n      \"textlf\",\n      \"osf\",\n      \"lf\",\n      \"footnotefigures\",\n      \"loosequotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/CronosPro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/DPcircling.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DPcircling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPcircling{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPcircling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPcircling[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPrectangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPrectangle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPrectangle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPrectangle[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPjagged\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPjagged{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPjagged\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPjagged[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPfanshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPfanshape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPfanshape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPfanshape[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPcircle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPcircle[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPcirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPcirc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPcirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPcirc[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPrect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPrect{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DPrect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DPrect[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DPcirclingDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DPcirclingDefault{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DPcircling,\\\\DPrectangle,\\\\DPjagged,\\\\DPfanshape,\\\\DPcircle,\\\\DPcirc,\\\\DPrect,\\\\DPcirclingDefault\": [\n      \"line color=\",\n      \"line width=\",\n      \"width=\",\n      \"height=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/DejaVuSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/DejaVuSans#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/DejaVuSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/DejaVuSansCondensed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/DejaVuSansCondensed#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/DejaVuSansCondensed#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/DejaVuSansMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/DejaVuSansMono#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/DejaVuSansMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/DejaVuSerif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/DejaVuSerif#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/DejaVuSerif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/DejaVuSerifCondensed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/DejaVuSerifCondensed#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/DejaVuSerifCondensed#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ETbb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifetex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"inffigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"destyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denomfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Qswash\"\n    },\n    {\n      \"name\": \"useosf\"\n    },\n    {\n      \"name\": \"useproportional\"\n    },\n    {\n      \"name\": \"Qnoswash\",\n      \"if\": \"swashQ\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ETbb#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"foresolidus=\",\n      \"aftsolidus=\",\n      \"raisefrac=\",\n      \"altP\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"useosf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"sharpS\",\n      \"swashQ\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\",\n      \"sups\",\n      \"scosf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ETbb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Eichenla.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Eichenlafamily\"\n    },\n    {\n      \"name\": \"eichen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eichen{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Eileen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Eileenfamily\"\n    },\n    {\n      \"name\": \"eileen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eileen{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/EileenBl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EileenBlfamily\"\n    },\n    {\n      \"name\": \"eileenbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eileenbl{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Elzevier.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Elzevier\"\n    },\n    {\n      \"name\": \"elz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elz{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/FenetreCas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"settobox\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LigneCalculsGeogebra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LigneCalculsGeogebra{${1:commande}}{${2:résultat}}\"\n      }\n    },\n    {\n      \"name\": \"LigneCalculsGeogebra\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LigneCalculsGeogebra[${3:clés%keyvals}]{${1:commande}}{${2:résultat}}\",\n        \"keys\": [\n          \"\\\\LigneCalculsGeogebra\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LigneCalculsXcas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LigneCalculsXcas{${1:commande}}{${2:résultat}}\"\n      }\n    },\n    {\n      \"name\": \"LigneCalculsXcas\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LigneCalculsXcas[${3:clés%keyvals}]{${1:commande}}{${2:résultat}}\",\n        \"keys\": [\n          \"\\\\LigneCalculsXcas\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CalculFormelGeogebra\"\n    },\n    {\n      \"name\": \"CalculFormelGeogebra\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options tikz}>\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelGeogebra}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculFormelGeogebra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelGeogebra}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculFormelGeogebra\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options tikz}>\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelGeogebra}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculFormelXcas\"\n    },\n    {\n      \"name\": \"CalculFormelXcas\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options tikz}>\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelXcas}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculFormelXcas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelXcas}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculFormelXcas\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options tikz}>\",\n        \"keys\": [\n          \"\\\\begin{CalculFormelXcas}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{CalculFormelGeogebra}\": [\n      \"Largeur=${1:nombre}\",\n      \"CouleurEntete=\",\n      \"LargeurNumero=${1:nombre}\",\n      \"CouleurNumero=\",\n      \"PoliceEntete=${1:commandes}\",\n      \"PoliceNumero=${1:commandes}\",\n      \"Titre=${1:texte}\",\n      \"Entete\"\n    ],\n    \"\\\\LigneCalculsGeogebra\": [\n      \"HauteurLigne=${1:nombre}\",\n      \"TailleCommande=${1:commande}\",\n      \"TailleResultat=${1:commande}\",\n      \"PosRes=${1|gauche,centre,droite|}\",\n      \"ElargirAuto=${1:nombre}\",\n      \"HauteurAuto\",\n      \"MargeV=\",\n      \"MargeH=${1:nombre}\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Select\",\n      \"CouleurSelect=\"\n    ],\n    \"\\\\begin{CalculFormelXcas}\": [\n      \"Largeur=${1:nombre}\",\n      \"EspaceLg=\",\n      \"Couleur=\",\n      \"Menu\",\n      \"Entete\",\n      \"NoirBlanc\",\n      \"PoliceEntete=${1:commande}\",\n      \"Sep\",\n      \"TexteOptions=${1:texte}\"\n    ],\n    \"\\\\LigneCalculsXcas\": [\n      \"TailleCommande=${1:commande}\",\n      \"TailleResultat=${1:commande}\",\n      \"ElargirAuto=${1:nombre}\",\n      \"MargeV=\",\n      \"MargeH=${1:nombre}\",\n      \"CouleurCmd=\",\n      \"CouleurRes=\",\n      \"PosRes=${1|centre,gauche,droite|}\",\n      \"Fond\",\n      \"CouleurFond=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/FiraMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firamonooldstyle\"\n    },\n    {\n      \"name\": \"firamonolining\"\n    },\n    {\n      \"name\": \"firamonomedium\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"firamonolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firamonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/FiraMono#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"nomap\",\n      \"medium\",\n      \"mb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/FiraMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/FiraSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firaoldstyle\"\n    },\n    {\n      \"name\": \"firalining\"\n    },\n    {\n      \"name\": \"firatabular\"\n    },\n    {\n      \"name\": \"firaproportional\"\n    },\n    {\n      \"name\": \"firathin\"\n    },\n    {\n      \"name\": \"firalight\"\n    },\n    {\n      \"name\": \"firamedium\"\n    },\n    {\n      \"name\": \"firasemibold\"\n    },\n    {\n      \"name\": \"firaextrabold\"\n    },\n    {\n      \"name\": \"firaheavy\"\n    },\n    {\n      \"name\": \"firabook\"\n    },\n    {\n      \"name\": \"firaextralight\"\n    },\n    {\n      \"name\": \"firaultralight\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"firalgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/FiraSans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"book\",\n      \"medium\",\n      \"mb\",\n      \"semibold\",\n      \"sb\",\n      \"light\",\n      \"l\",\n      \"extralight\",\n      \"ultralight\",\n      \"thin\",\n      \"extrabold\",\n      \"heavy\",\n      \"default\",\n      \"sfdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/FiraSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/GS1.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"rule-D\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EANControlDigit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EANControlDigit{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"EANBarcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EANBarcode{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"EANBarcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EANBarcode[${2:options%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\EANBarcode,\\\\GSSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GSSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GSSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\EANBarcode,\\\\GSSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\EANBarcode,\\\\GSSetup\": [\n      \"ocrb\",\n      \"module_width=\",\n      \"module_height=\",\n      \"code=${1|EAN-8,EAN-13|}\",\n      \"scale=${1:factor}\",\n      \"scale_to_font\",\n      \"add_control\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/GoMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gomonofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gomonolgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/GoMono#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"nomap\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/GoMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/GoSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gomedium\"\n    },\n    {\n      \"name\": \"gobold\"\n    },\n    {\n      \"name\": \"gofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/GoSans#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"medium\",\n      \"default\",\n      \"sfdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/GoSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/GotIn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GotInfamily\"\n    },\n    {\n      \"name\": \"gotin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gotin{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/GoudyIn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GoudyInfamily\"\n    },\n    {\n      \"name\": \"goudyin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goudyin{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Gudea.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Gudea#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Gudea#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/HindMadurai.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/HindMadurai#c\": [\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"medium\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/HindMadurai#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/IEEEtrantools.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"IEEEauthorrefmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEauthorrefmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEPARstart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEPARstart{${1:letter}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEPARstartCAPSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartDROPDEPTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartDROPLINES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartFONTSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartHEIGHTTEXT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartHOFFSET\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartITLCORRECT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartMINPAGELINES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartSEP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartWORDCAPSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartWORDFONTSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEproofindentspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEproofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQED\"\n    },\n    {\n      \"name\": \"IEEEQEDhere\"\n    },\n    {\n      \"name\": \"IEEEQEDhereeqn\"\n    },\n    {\n      \"name\": \"IEEEQEDclosed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQEDopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQEDoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEsetlabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEsetlabelwidth{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEilabelindentA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEilabelindentB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEilabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEelabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdlabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactoriii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactoriv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiednormlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedmathlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedlistdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifIEEEnolabelindentfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnolabelindentfactortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnolabelindentfactorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifIEEEnocalcleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnocalcleftmargintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnocalcleftmarginfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEusemathlabelsep\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyl\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyc\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyr\"\n    },\n    {\n      \"name\": \"IEEEeqnarraynumspace\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydefcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEeqnarraydefcol{${1:col id}}{${2:predef%definition}}{${3:postdef%definition}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydefcolsep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraydefcolsep{${1:colsep id}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"yesnumber\"\n    },\n    {\n      \"name\": \"IEEEyesnumber\"\n    },\n    {\n      \"name\": \"IEEEyesnumber*\"\n    },\n    {\n      \"name\": \"IEEEyessubnumber\"\n    },\n    {\n      \"name\": \"IEEEyessubnumber*\"\n    },\n    {\n      \"name\": \"IEEEnonumber\"\n    },\n    {\n      \"name\": \"IEEEnonumber*\"\n    },\n    {\n      \"name\": \"IEEEnosubnumber\"\n    },\n    {\n      \"name\": \"IEEEnosubnumber*\"\n    },\n    {\n      \"name\": \"theIEEEsubequation\"\n    },\n    {\n      \"name\": \"theIEEEsubequationdis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theequationdis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraymathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraytextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraydecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormaljot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraystrutsize{${1:height}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsize\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"IEEEeqnarraystrutsize{${1:height}}{${2:depth}}[${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsizeadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraystrutsizeadd{${1:height}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsizeadd\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"IEEEeqnarraystrutsizeadd{${1:height}}{${2:depth}}[${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\"\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEstrut[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEstrut[${1:height}][${2:depth}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"IEEEstrut[${1:height}][${2:depth}][${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"ifIEEEvisiblestruts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEvisiblestrutstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEvisiblestrutsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutmode\"\n    },\n    {\n      \"name\": \"IEEEeqnarraymulticol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEeqnarraymulticol{${1:num cols}}{${2:col type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayomit\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayvrule\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayvrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayvrule[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayseprow[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarrayseprow[${1:height}][${2:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayseprowcut[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarrayseprowcut[${1:height}][${2:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayrulerow\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayrulerow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayrulerow[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarraydblrulerow[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarraydblrulerow[${1:thickness%l}][${2:spacing}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarraydblrulerowcut[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarraydblrulerowcut[${1:thickness%l}][${2:spacing}]\"\n      }\n    },\n    {\n      \"name\": \"bstctlcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bstctlcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bstctlcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bstctlcite[${2:aux spec}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEnoauxwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEnoauxwrite{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEcalcleftmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEcalcleftmargin{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEdefaultfootersampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdefaultheadersampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdefaultsampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodesnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartletwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlengthdiff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlengthint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedtextheightdiff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedtextheightlpc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEquantizelength{${1:mode}}{${2:unit}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEquantizetextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IEEEquantizetextheight[${2:unit}]{${1:mode}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEquantizetextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEquantizetextheight{${1:mode}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"IEEEsetfootermargin[${3:footer sample}][${4:text sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsetfootermargin[${3:footer sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetfootermargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"IEEEsetheadermargin[${3:header sample}][${4:text sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsetheadermargin[${3:header sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetheadermargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetsidemargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetsidemargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsettextheight[${3:mode}]{${1:top margin}}{${2:bottom margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettextheight{${1:top margin}}{${2:bottom margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettextwidth{${1:inner margin}}{${2:outer margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettopmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsettopmargin[${3:sample text}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettopmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettopmargin{${1:mode}}{${2:margin}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"IEEEproof\"\n    },\n    {\n      \"name\": \"IEEEproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"itemize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEitemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEitemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"LaTeXenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXitemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/IEEEtrantools#c\": [\n      \"redeflists\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/IEEEtrantools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/InriaSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tlshape\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/InriaSans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"bold\",\n      \"light\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/InriaSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/InriaSerif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tlshape\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttitling\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttitling{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/InriaSerif#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"bold\",\n      \"light\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/InriaSerif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/JeuxCartes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"randomlist\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AffCarteJeu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffCarteJeu{${1:carte}}\"\n      }\n    },\n    {\n      \"name\": \"AffCarteJeu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AffCarteJeu[${2:options%keyvals}]{${1:carte}}\",\n        \"keys\": [\n          \"\\\\AffCarteJeu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffCartesJeu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffCartesJeu{${1:liste de cartes}}\"\n      }\n    },\n    {\n      \"name\": \"AffCartesJeu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AffCartesJeu[${2:options%keyvals}]{${1:liste de cartes}}\",\n        \"keys\": [\n          \"\\\\AffCartesJeu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MainCartesJeu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MainCartesJeu{${1:liste de cartes}}\"\n      }\n    },\n    {\n      \"name\": \"MainCartesJeu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MainCartesJeu[${2:options%keyvals}]{${1:liste de cartes}}\",\n        \"keys\": [\n          \"\\\\MainCartesJeu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MainCartesJeuAleatoire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MainCartesJeuAleatoire{${1:nombre de cartes}}\"\n      }\n    },\n    {\n      \"name\": \"MainCartesJeuAleatoire\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MainCartesJeuAleatoire[${2:options%keyvals}]{${1:nombre de cartes}}\",\n        \"keys\": [\n          \"\\\\MainCartesJeuAleatoire\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffMiniCarteJeu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffMiniCarteJeu{${1:carte}}\"\n      }\n    },\n    {\n      \"name\": \"AffMiniCarteJeu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AffMiniCarteJeu[${2:options%keyvals}]{${1:carte}}\",\n        \"keys\": [\n          \"\\\\AffMiniCarteJeu,\\\\MainMiniCartesJeu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MainMiniCartesJeu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MainMiniCartesJeu{${1:liste de cartes}}\"\n      }\n    },\n    {\n      \"name\": \"MainMiniCartesJeu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MainMiniCartesJeu[${2:options%keyvals}]{${1:liste de cartes}}\",\n        \"keys\": [\n          \"\\\\AffMiniCarteJeu,\\\\MainMiniCartesJeu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MainMiniCartesJeuAleatoire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MainMiniCartesJeuAleatoire{${1:nombre de cartes}}\"\n      }\n    },\n    {\n      \"name\": \"MainMiniCartesJeuAleatoire\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MainMiniCartesJeuAleatoire[${2:options%keyvals}]{${1:nombre de cartes}}\",\n        \"keys\": [\n          \"\\\\MainMiniCartesJeuAleatoire\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\AffCarteJeu\": [\n      \"Hauteur=${1:nombre}\",\n      \"TypeJeu=${1|Poker,Pokerv2,Pokerv3,Pokerv4,Pokerv5,Tarot,Uno|}\",\n      \"StyleJeu=${1|v1,v2,v3,v4,v5,fr,bicycl|}\",\n      \"Rotation=${1:degrees}\",\n      \"AlignementV=${1:factor}\",\n      \"Tikz\",\n      \"DecalageX=${1:nombre}\",\n      \"DecalageY=${1:nombre}\",\n      \"TikzAutonome\"\n    ],\n    \"\\\\AffCartesJeu\": [\n      \"Hauteur=${1:nombre}\",\n      \"TypeJeu=${1|Poker,Pokerv2,Pokerv3,Pokerv4,Pokerv5,Tarot,Uno|}\",\n      \"StyleJeu=${1|v1,v2,v3,v4,v5,fr,bicycl|}\"\n    ],\n    \"\\\\MainCartesJeu\": [\n      \"Hauteur=${1:nombre}\",\n      \"TypeJeu=${1|Poker,Pokerv2,Pokerv3,Pokerv4,Pokerv5,Tarot,Uno|}\",\n      \"StyleJeu=${1|v1,v2,v3,v4,v5,fr,bicycl|}\",\n      \"EspH=${1:coefficient}\",\n      \"EspV=${1:coefficient}\",\n      \"Eventail\",\n      \"Rotation=${1:degrees}\",\n      \"AlignementV=${1:factor}\",\n      \"Inverse\"\n    ],\n    \"\\\\MainCartesJeuAleatoire\": [\n      \"Hauteur=${1:nombre}\",\n      \"TypeJeu=${1|Poker,Pokerv2,Pokerv3,Pokerv4,Pokerv5,Tarot,Belote,Belotev2,Belotev3,Belotev4,Belotev5,Bataille,Bataillev2,Bataillev3,Bataillev4,Bataillev5,Rami,Ramiv2,Ramiv3,Ramiv4,Ramiv5,Uno|}\",\n      \"StyleJeu=${1|v1,v2,v3,v4,v5,fr,bicycl|}\",\n      \"EspH=${1:coefficient}\",\n      \"EspV=${1:coefficient}\",\n      \"Eventail\",\n      \"Rotation=${1:degrees}\",\n      \"AlignementV=${1:factor}\",\n      \"Inverse\"\n    ],\n    \"\\\\AffMiniCarteJeu,\\\\MainMiniCartesJeu\": [\n      \"Largeur=\",\n      \"FondAtout=\"\n    ],\n    \"\\\\MainMiniCartesJeuAleatoire\": [\n      \"Largeur=\",\n      \"FondAtout=\",\n      \"TypeJeu=${1|Poker,Tarot,Belote,Bataille,Rami,PokerEN,BeloteEN,BatailleEN,RamiEN|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Kinigcap.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Kinigcapfamily\"\n    },\n    {\n      \"name\": \"kinig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kinig{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Konanur.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Konanurfamily\"\n    },\n    {\n      \"name\": \"konanur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"konanur{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Kramer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Kramerfamily\"\n    },\n    {\n      \"name\": \"kramer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kramer{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/LibreBodoni.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"librebodoni\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"librebodonifamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/LibreBodoni#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/LibreBodoni#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/LibreBskvl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/LibreBskvl#c\": [\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"proportional\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/LibreBskvl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/LobsterTwo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LobsterTwo\"\n    },\n    {\n      \"name\": \"LobsterTwofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/LobsterTwo#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/LobsterTwo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/MULEenc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CJKbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKbibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"CJKinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CJKinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CJKverbatim\"\n    },\n    {\n      \"name\": \"I\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcommercialat\"\n    },\n    {\n      \"name\": \"Thaibreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thaiglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thainospace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thaispace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Magra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Magra#c\": [\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Magra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/MinionPro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"MnSymbol\"\n    },\n    {\n      \"name\": \"eufrak\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"figureversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureversion{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\figureversion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"varbackepsilon\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"slashedzero\"\n    },\n    {\n      \"name\": \"openg\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"uphbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upjmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsmallint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varidotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varstrokedint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smallfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"slantfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slantfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/MinionPro#c\": [\n      \"smallfamily\",\n      \"medfamily\",\n      \"fullfamily\",\n      \"noopticals\",\n      \"opticals\",\n      \"slides\",\n      \"normalsize\",\n      \"nonormalsize\",\n      \"onlytext\",\n      \"onlymath\",\n      \"textosf\",\n      \"mathosf\",\n      \"osf\",\n      \"textlf\",\n      \"mathlf\",\n      \"lf\",\n      \"mathtabular\",\n      \"mnsy\",\n      \"cmsy\",\n      \"swash\",\n      \"abx\",\n      \"amsbb\",\n      \"fourierbb\",\n      \"lucidabb\",\n      \"mixedgreek\",\n      \"italicgreek\",\n      \"frenchmath\",\n      \"scale=${1:factor}\",\n      \"minionint\",\n      \"openg\",\n      \"loosequotes\",\n      \"footnotefigures\"\n    ],\n    \"\\\\figureversion\": [\n      \"text\",\n      \"osf\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tab\",\n      \"proportional\",\n      \"prop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/MinionPro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/MnSymbol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"eufrak\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backapprox\"\n    },\n    {\n      \"name\": \"backapproxeq\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backeqsim\"\n    },\n    {\n      \"name\": \"backneg\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"backslashdiv\"\n    },\n    {\n      \"name\": \"backtriplesim\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapdot\"\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcircle\"\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bigcurlyvee\"\n    },\n    {\n      \"name\": \"bigcurlyveedot\"\n    },\n    {\n      \"name\": \"bigcurlywedge\"\n    },\n    {\n      \"name\": \"bigcurlywedgedot\"\n    },\n    {\n      \"name\": \"bigdoublecurlyvee\"\n    },\n    {\n      \"name\": \"bigdoublecurlywedge\"\n    },\n    {\n      \"name\": \"bigdoublevee\"\n    },\n    {\n      \"name\": \"bigdoublewedge\"\n    },\n    {\n      \"name\": \"bigoast\"\n    },\n    {\n      \"name\": \"bigobackslash\"\n    },\n    {\n      \"name\": \"bigocirc\"\n    },\n    {\n      \"name\": \"bigominus\"\n    },\n    {\n      \"name\": \"bigoslash\"\n    },\n    {\n      \"name\": \"bigostar\"\n    },\n    {\n      \"name\": \"bigotriangle\"\n    },\n    {\n      \"name\": \"bigovert\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapdot\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupdot\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigveedot\"\n    },\n    {\n      \"name\": \"bigwedgedot\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxbackslash\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boxvert\"\n    },\n    {\n      \"name\": \"bracemd\"\n    },\n    {\n      \"name\": \"bracemid\"\n    },\n    {\n      \"name\": \"bracemu\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capplus\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"closedcurlyvee\"\n    },\n    {\n      \"name\": \"closedcurlywedge\"\n    },\n    {\n      \"name\": \"closedequal\"\n    },\n    {\n      \"name\": \"closedprec\"\n    },\n    {\n      \"name\": \"closedsucc\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupplus\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlyveedot\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curlywedgedot\"\n    },\n    {\n      \"name\": \"curvearrowdownup\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowleftright\"\n    },\n    {\n      \"name\": \"curvearrownesw\"\n    },\n    {\n      \"name\": \"curvearrownwse\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowrightleft\"\n    },\n    {\n      \"name\": \"curvearrowsenw\"\n    },\n    {\n      \"name\": \"curvearrowswne\"\n    },\n    {\n      \"name\": \"curvearrowupdown\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dasheddownarrow\"\n    },\n    {\n      \"name\": \"dashedleftarrow\"\n    },\n    {\n      \"name\": \"dashednearrow\"\n    },\n    {\n      \"name\": \"dashednwarrow\"\n    },\n    {\n      \"name\": \"dashedrightarrow\"\n    },\n    {\n      \"name\": \"dashedsearrow\"\n    },\n    {\n      \"name\": \"dashedswarrow\"\n    },\n    {\n      \"name\": \"dasheduparrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlyveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlywedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublecurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublecurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigobackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigocirc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigominus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigostar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigotriangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigovert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcomplement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddotdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"diamondbackslash\"\n    },\n    {\n      \"name\": \"diamonddiamond\"\n    },\n    {\n      \"name\": \"diamonddot\"\n    },\n    {\n      \"name\": \"diamonddots\"\n    },\n    {\n      \"name\": \"diamondminus\"\n    },\n    {\n      \"name\": \"diamondplus\"\n    },\n    {\n      \"name\": \"diamondslash\"\n    },\n    {\n      \"name\": \"diamondtimes\"\n    },\n    {\n      \"name\": \"diamondvert\"\n    },\n    {\n      \"name\": \"didotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"divides\"\n    },\n    {\n      \"name\": \"dlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotmedvert\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecurlyvee\"\n    },\n    {\n      \"name\": \"doublecurlywedge\"\n    },\n    {\n      \"name\": \"doublefrown\"\n    },\n    {\n      \"name\": \"doublefrowneq\"\n    },\n    {\n      \"name\": \"doublesmile\"\n    },\n    {\n      \"name\": \"doublesmileeq\"\n    },\n    {\n      \"name\": \"doublesqcap\"\n    },\n    {\n      \"name\": \"doublesqcup\"\n    },\n    {\n      \"name\": \"doublevee\"\n    },\n    {\n      \"name\": \"doublewedge\"\n    },\n    {\n      \"name\": \"downarrowtail\"\n    },\n    {\n      \"name\": \"downbrace\"\n    },\n    {\n      \"name\": \"downbraceg\"\n    },\n    {\n      \"name\": \"downbracegg\"\n    },\n    {\n      \"name\": \"downbraceggg\"\n    },\n    {\n      \"name\": \"downbracegggg\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downfilledspoon\"\n    },\n    {\n      \"name\": \"downfootline\"\n    },\n    {\n      \"name\": \"downfree\"\n    },\n    {\n      \"name\": \"downharpoonccw\"\n    },\n    {\n      \"name\": \"downharpooncw\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downlsquigarrow\"\n    },\n    {\n      \"name\": \"downmapsto\"\n    },\n    {\n      \"name\": \"downModels\"\n    },\n    {\n      \"name\": \"downmodels\"\n    },\n    {\n      \"name\": \"downpitchfork\"\n    },\n    {\n      \"name\": \"downpropto\"\n    },\n    {\n      \"name\": \"downrsquigarrow\"\n    },\n    {\n      \"name\": \"downslice\"\n    },\n    {\n      \"name\": \"downspoon\"\n    },\n    {\n      \"name\": \"downtherefore\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupharpoons\"\n    },\n    {\n      \"name\": \"downVdash\"\n    },\n    {\n      \"name\": \"downvdash\"\n    },\n    {\n      \"name\": \"downY\"\n    },\n    {\n      \"name\": \"dprod\"\n    },\n    {\n      \"name\": \"drcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dstrokedint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyfilledspoon\"\n    },\n    {\n      \"name\": \"eqbump\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqfrown\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eqsmile\"\n    },\n    {\n      \"name\": \"equal\",\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"equalclosed\"\n    },\n    {\n      \"name\": \"equivclosed\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"filleddiamond\"\n    },\n    {\n      \"name\": \"filledemptyspoon\"\n    },\n    {\n      \"name\": \"filledlargestar\"\n    },\n    {\n      \"name\": \"filledlozenge\"\n    },\n    {\n      \"name\": \"filledmedlozenge\"\n    },\n    {\n      \"name\": \"filledmedsquare\"\n    },\n    {\n      \"name\": \"filledmedtriangledown\"\n    },\n    {\n      \"name\": \"filledmedtriangleleft\"\n    },\n    {\n      \"name\": \"filledmedtriangleright\"\n    },\n    {\n      \"name\": \"filledmedtriangleup\"\n    },\n    {\n      \"name\": \"filledsquare\"\n    },\n    {\n      \"name\": \"filledstar\"\n    },\n    {\n      \"name\": \"filledtriangledown\"\n    },\n    {\n      \"name\": \"filledtriangleleft\"\n    },\n    {\n      \"name\": \"filledtriangleright\"\n    },\n    {\n      \"name\": \"filledtriangleup\"\n    },\n    {\n      \"name\": \"fivedots\"\n    },\n    {\n      \"name\": \"frowneq\"\n    },\n    {\n      \"name\": \"frowneqsmile\"\n    },\n    {\n      \"name\": \"frownsmile\"\n    },\n    {\n      \"name\": \"frownsmileeq\"\n    },\n    {\n      \"name\": \"geqclosed\"\n    },\n    {\n      \"name\": \"geqdot\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"geqslantdot\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtr\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrclosed\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqlessslant\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrneqqless\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hateq\"\n    },\n    {\n      \"name\": \"hbipropto\"\n    },\n    {\n      \"name\": \"hcrossing\"\n    },\n    {\n      \"name\": \"hdotdot\"\n    },\n    {\n      \"name\": \"hdots\"\n    },\n    {\n      \"name\": \"hookdownminus\"\n    },\n    {\n      \"name\": \"hookupminus\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"invbackneg\"\n    },\n    {\n      \"name\": \"invneg\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"langlebar\"\n    },\n    {\n      \"name\": \"largecircle\"\n    },\n    {\n      \"name\": \"largediamond\"\n    },\n    {\n      \"name\": \"largeemptyfilledspoon\"\n    },\n    {\n      \"name\": \"largefilledemptyspoon\"\n    },\n    {\n      \"name\": \"largelozenge\"\n    },\n    {\n      \"name\": \"largepentagram\"\n    },\n    {\n      \"name\": \"largesquare\"\n    },\n    {\n      \"name\": \"largestar\"\n    },\n    {\n      \"name\": \"largestarofdavid\"\n    },\n    {\n      \"name\": \"largetriangledown\"\n    },\n    {\n      \"name\": \"largetriangleleft\"\n    },\n    {\n      \"name\": \"largetriangleright\"\n    },\n    {\n      \"name\": \"largetriangleup\"\n    },\n    {\n      \"name\": \"lcirclearrowdown\"\n    },\n    {\n      \"name\": \"lcirclearrowleft\"\n    },\n    {\n      \"name\": \"lcirclearrowright\"\n    },\n    {\n      \"name\": \"lcirclearrowup\"\n    },\n    {\n      \"name\": \"lcircleleftint\"\n    },\n    {\n      \"name\": \"lcirclerightint\"\n    },\n    {\n      \"name\": \"lcurvearrowdown\"\n    },\n    {\n      \"name\": \"lcurvearrowleft\"\n    },\n    {\n      \"name\": \"lcurvearrowne\"\n    },\n    {\n      \"name\": \"lcurvearrownw\"\n    },\n    {\n      \"name\": \"lcurvearrowright\"\n    },\n    {\n      \"name\": \"lcurvearrowse\"\n    },\n    {\n      \"name\": \"lcurvearrowsw\"\n    },\n    {\n      \"name\": \"lcurvearrowup\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftfilledspoon\"\n    },\n    {\n      \"name\": \"leftfootline\"\n    },\n    {\n      \"name\": \"leftfree\"\n    },\n    {\n      \"name\": \"lefthalfcap\"\n    },\n    {\n      \"name\": \"lefthalfcup\"\n    },\n    {\n      \"name\": \"leftharpoonccw\"\n    },\n    {\n      \"name\": \"leftharpooncw\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftlsquigarrow\"\n    },\n    {\n      \"name\": \"leftmapsto\"\n    },\n    {\n      \"name\": \"leftModels\"\n    },\n    {\n      \"name\": \"leftmodels\"\n    },\n    {\n      \"name\": \"leftpitchfork\"\n    },\n    {\n      \"name\": \"leftpropto\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"Leftrightline\"\n    },\n    {\n      \"name\": \"leftrightline\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftrsquigarrow\"\n    },\n    {\n      \"name\": \"leftslice\"\n    },\n    {\n      \"name\": \"leftspoon\"\n    },\n    {\n      \"name\": \"lefttherefore\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftVdash\"\n    },\n    {\n      \"name\": \"leftvdash\"\n    },\n    {\n      \"name\": \"leftY\"\n    },\n    {\n      \"name\": \"leqclosed\"\n    },\n    {\n      \"name\": \"leqdot\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"leqslantdot\"\n    },\n    {\n      \"name\": \"less\",\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessclosed\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqgtrslant\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lessneqqgtr\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lhookdownarrow\"\n    },\n    {\n      \"name\": \"lhookleftarrow\"\n    },\n    {\n      \"name\": \"lhooknearrow\"\n    },\n    {\n      \"name\": \"lhooknwarrow\"\n    },\n    {\n      \"name\": \"lhookrightarrow\"\n    },\n    {\n      \"name\": \"lhooksearrow\"\n    },\n    {\n      \"name\": \"lhookswarrow\"\n    },\n    {\n      \"name\": \"lhookuparrow\"\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"llangle\",\n      \"detail\": \"⦉ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation left binding bracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lsem\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"lWavy\"\n    },\n    {\n      \"name\": \"lwavy\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbackslash\"\n    },\n    {\n      \"name\": \"medcircle\"\n    },\n    {\n      \"name\": \"meddiamond\"\n    },\n    {\n      \"name\": \"medlozenge\"\n    },\n    {\n      \"name\": \"medslash\"\n    },\n    {\n      \"name\": \"medsquare\"\n    },\n    {\n      \"name\": \"medstar\"\n    },\n    {\n      \"name\": \"medstarofdavid\"\n    },\n    {\n      \"name\": \"medtriangledown\"\n    },\n    {\n      \"name\": \"medtriangleleft\"\n    },\n    {\n      \"name\": \"medtriangleright\"\n    },\n    {\n      \"name\": \"medtriangleup\"\n    },\n    {\n      \"name\": \"medvert\"\n    },\n    {\n      \"name\": \"medvertdot\"\n    },\n    {\n      \"name\": \"middlebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middlebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"middleslash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middleslash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minushookdown\"\n    },\n    {\n      \"name\": \"minushookup\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"mVert\"\n    },\n    {\n      \"name\": \"mvert\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbackapprox\"\n    },\n    {\n      \"name\": \"nbackapproxeq\"\n    },\n    {\n      \"name\": \"nbackcong\"\n    },\n    {\n      \"name\": \"nbackeqsim\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nbacktriplesim\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"ncirceq\"\n    },\n    {\n      \"name\": \"ncirclearrowleft\"\n    },\n    {\n      \"name\": \"ncirclearrowright\"\n    },\n    {\n      \"name\": \"nclosedequal\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ncurlyeqprec\"\n    },\n    {\n      \"name\": \"ncurlyeqsucc\"\n    },\n    {\n      \"name\": \"ncurvearrowdownup\"\n    },\n    {\n      \"name\": \"ncurvearrowleft\"\n    },\n    {\n      \"name\": \"ncurvearrowleftright\"\n    },\n    {\n      \"name\": \"ncurvearrownesw\"\n    },\n    {\n      \"name\": \"ncurvearrownwse\"\n    },\n    {\n      \"name\": \"ncurvearrowright\"\n    },\n    {\n      \"name\": \"ncurvearrowrightleft\"\n    },\n    {\n      \"name\": \"ncurvearrowsenw\"\n    },\n    {\n      \"name\": \"ncurvearrowswne\"\n    },\n    {\n      \"name\": \"ncurvearrowupdown\"\n    },\n    {\n      \"name\": \"ndasharrow\"\n    },\n    {\n      \"name\": \"ndasheddownarrow\"\n    },\n    {\n      \"name\": \"ndashedleftarrow\"\n    },\n    {\n      \"name\": \"ndashednearrow\"\n    },\n    {\n      \"name\": \"ndashednwarrow\"\n    },\n    {\n      \"name\": \"ndashedrightarrow\"\n    },\n    {\n      \"name\": \"ndashedsearrow\"\n    },\n    {\n      \"name\": \"ndashedswarrow\"\n    },\n    {\n      \"name\": \"ndasheduparrow\"\n    },\n    {\n      \"name\": \"ndashleftarrow\"\n    },\n    {\n      \"name\": \"ndashrightarrow\"\n    },\n    {\n      \"name\": \"ndashv\"\n    },\n    {\n      \"name\": \"ndiagdown\"\n    },\n    {\n      \"name\": \"ndiagup\"\n    },\n    {\n      \"name\": \"ndivides\"\n    },\n    {\n      \"name\": \"nDoteq\"\n    },\n    {\n      \"name\": \"ndoteq\"\n    },\n    {\n      \"name\": \"ndoublefrown\"\n    },\n    {\n      \"name\": \"ndoublefrowneq\"\n    },\n    {\n      \"name\": \"ndoublesmile\"\n    },\n    {\n      \"name\": \"ndoublesmileeq\"\n    },\n    {\n      \"name\": \"nDownarrow\"\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"ndownarrowtail\"\n    },\n    {\n      \"name\": \"ndowndownarrows\"\n    },\n    {\n      \"name\": \"ndownfilledspoon\"\n    },\n    {\n      \"name\": \"ndownfootline\"\n    },\n    {\n      \"name\": \"ndownfree\"\n    },\n    {\n      \"name\": \"ndownharpoonccw\"\n    },\n    {\n      \"name\": \"ndownharpooncw\"\n    },\n    {\n      \"name\": \"ndownharpoonleft\"\n    },\n    {\n      \"name\": \"ndownharpoonright\"\n    },\n    {\n      \"name\": \"ndownlsquigarrow\"\n    },\n    {\n      \"name\": \"ndownmapsto\"\n    },\n    {\n      \"name\": \"ndownModels\"\n    },\n    {\n      \"name\": \"ndownmodels\"\n    },\n    {\n      \"name\": \"ndownpitchfork\"\n    },\n    {\n      \"name\": \"ndownrsquigarrow\"\n    },\n    {\n      \"name\": \"ndownspoon\"\n    },\n    {\n      \"name\": \"ndownuparrows\"\n    },\n    {\n      \"name\": \"ndownupharpoons\"\n    },\n    {\n      \"name\": \"ndownVdash\"\n    },\n    {\n      \"name\": \"ndownvdash\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nearrowtail\"\n    },\n    {\n      \"name\": \"nefilledspoon\"\n    },\n    {\n      \"name\": \"nefootline\"\n    },\n    {\n      \"name\": \"nefree\"\n    },\n    {\n      \"name\": \"neharpoonccw\"\n    },\n    {\n      \"name\": \"neharpooncw\"\n    },\n    {\n      \"name\": \"nelsquigarrow\"\n    },\n    {\n      \"name\": \"nemapsto\"\n    },\n    {\n      \"name\": \"neModels\"\n    },\n    {\n      \"name\": \"nemodels\"\n    },\n    {\n      \"name\": \"nenearrows\"\n    },\n    {\n      \"name\": \"nepitchfork\"\n    },\n    {\n      \"name\": \"neqbump\"\n    },\n    {\n      \"name\": \"neqcirc\"\n    },\n    {\n      \"name\": \"neqdot\"\n    },\n    {\n      \"name\": \"neqfrown\"\n    },\n    {\n      \"name\": \"neqsim\"\n    },\n    {\n      \"name\": \"neqslantgtr\"\n    },\n    {\n      \"name\": \"neqslantless\"\n    },\n    {\n      \"name\": \"neqsmile\"\n    },\n    {\n      \"name\": \"nequal\"\n    },\n    {\n      \"name\": \"nequalclosed\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nequivclosed\"\n    },\n    {\n      \"name\": \"nersquigarrow\"\n    },\n    {\n      \"name\": \"nespoon\"\n    },\n    {\n      \"name\": \"Neswarrow\"\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"neswarrows\"\n    },\n    {\n      \"name\": \"neswbipropto\"\n    },\n    {\n      \"name\": \"neswcrossing\"\n    },\n    {\n      \"name\": \"neswharpoonnwse\"\n    },\n    {\n      \"name\": \"neswharpoons\"\n    },\n    {\n      \"name\": \"neswharpoonsenw\"\n    },\n    {\n      \"name\": \"Neswline\"\n    },\n    {\n      \"name\": \"neswline\"\n    },\n    {\n      \"name\": \"neVdash\"\n    },\n    {\n      \"name\": \"nevdash\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nfallingdotseq\"\n    },\n    {\n      \"name\": \"nfrown\"\n    },\n    {\n      \"name\": \"nfrowneq\"\n    },\n    {\n      \"name\": \"nfrowneqsmile\"\n    },\n    {\n      \"name\": \"nfrownsmile\"\n    },\n    {\n      \"name\": \"nfrownsmileeq\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqclosed\"\n    },\n    {\n      \"name\": \"ngeqdot\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngeqslantdot\"\n    },\n    {\n      \"name\": \"ngets\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"nggg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrclosed\"\n    },\n    {\n      \"name\": \"ngtrdot\"\n    },\n    {\n      \"name\": \"ngtreqless\"\n    },\n    {\n      \"name\": \"ngtreqlessslant\"\n    },\n    {\n      \"name\": \"ngtreqqless\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"nhateq\"\n    },\n    {\n      \"name\": \"nhookleftarrow\"\n    },\n    {\n      \"name\": \"nhookrightarrow\"\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"nlcirclearrowdown\"\n    },\n    {\n      \"name\": \"nlcirclearrowleft\"\n    },\n    {\n      \"name\": \"nlcirclearrowright\"\n    },\n    {\n      \"name\": \"nlcirclearrowup\"\n    },\n    {\n      \"name\": \"nlcurvearrowdown\"\n    },\n    {\n      \"name\": \"nlcurvearrowleft\"\n    },\n    {\n      \"name\": \"nlcurvearrowne\"\n    },\n    {\n      \"name\": \"nlcurvearrownw\"\n    },\n    {\n      \"name\": \"nlcurvearrowright\"\n    },\n    {\n      \"name\": \"nlcurvearrowse\"\n    },\n    {\n      \"name\": \"nlcurvearrowsw\"\n    },\n    {\n      \"name\": \"nlcurvearrowup\"\n    },\n    {\n      \"name\": \"nleadsto\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nleftarrowtail\"\n    },\n    {\n      \"name\": \"nleftfilledspoon\"\n    },\n    {\n      \"name\": \"nleftfootline\"\n    },\n    {\n      \"name\": \"nleftfree\"\n    },\n    {\n      \"name\": \"nleftharpoonccw\"\n    },\n    {\n      \"name\": \"nleftharpooncw\"\n    },\n    {\n      \"name\": \"nleftharpoondown\"\n    },\n    {\n      \"name\": \"nleftharpoonup\"\n    },\n    {\n      \"name\": \"nleftleftarrows\"\n    },\n    {\n      \"name\": \"nleftlsquigarrow\"\n    },\n    {\n      \"name\": \"nleftmapsto\"\n    },\n    {\n      \"name\": \"nleftModels\"\n    },\n    {\n      \"name\": \"nleftmodels\"\n    },\n    {\n      \"name\": \"nleftpitchfork\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleftrightarrows\"\n    },\n    {\n      \"name\": \"nleftrightharpoondownup\"\n    },\n    {\n      \"name\": \"nleftrightharpoons\"\n    },\n    {\n      \"name\": \"nleftrightharpoonupdown\"\n    },\n    {\n      \"name\": \"nLeftrightline\"\n    },\n    {\n      \"name\": \"nleftrightline\"\n    },\n    {\n      \"name\": \"nleftrightsquigarrow\"\n    },\n    {\n      \"name\": \"nleftrsquigarrow\"\n    },\n    {\n      \"name\": \"nleftspoon\"\n    },\n    {\n      \"name\": \"nleftVdash\"\n    },\n    {\n      \"name\": \"nleftvdash\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqclosed\"\n    },\n    {\n      \"name\": \"nleqdot\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nleqslantdot\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessclosed\"\n    },\n    {\n      \"name\": \"nlessdot\"\n    },\n    {\n      \"name\": \"nlesseqgtr\"\n    },\n    {\n      \"name\": \"nlesseqgtrslant\"\n    },\n    {\n      \"name\": \"nlesseqqgtr\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlhookdownarrow\"\n    },\n    {\n      \"name\": \"nlhookleftarrow\"\n    },\n    {\n      \"name\": \"nlhooknearrow\"\n    },\n    {\n      \"name\": \"nlhooknwarrow\"\n    },\n    {\n      \"name\": \"nlhookrightarrow\"\n    },\n    {\n      \"name\": \"nlhooksearrow\"\n    },\n    {\n      \"name\": \"nlhookswarrow\"\n    },\n    {\n      \"name\": \"nlhookuparrow\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nLleftarrow\"\n    },\n    {\n      \"name\": \"nlll\"\n    },\n    {\n      \"name\": \"nmapsto\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nmodels\"\n    },\n    {\n      \"name\": \"nmultimap\"\n    },\n    {\n      \"name\": \"nNearrow\"\n    },\n    {\n      \"name\": \"nnearrow\"\n    },\n    {\n      \"name\": \"nnearrowtail\"\n    },\n    {\n      \"name\": \"nnefilledspoon\"\n    },\n    {\n      \"name\": \"nnefootline\"\n    },\n    {\n      \"name\": \"nnefree\"\n    },\n    {\n      \"name\": \"nneharpoonccw\"\n    },\n    {\n      \"name\": \"nneharpooncw\"\n    },\n    {\n      \"name\": \"nnelsquigarrow\"\n    },\n    {\n      \"name\": \"nnemapsto\"\n    },\n    {\n      \"name\": \"nneModels\"\n    },\n    {\n      \"name\": \"nnemodels\"\n    },\n    {\n      \"name\": \"nnenearrows\"\n    },\n    {\n      \"name\": \"nnepitchfork\"\n    },\n    {\n      \"name\": \"nnersquigarrow\"\n    },\n    {\n      \"name\": \"nnespoon\"\n    },\n    {\n      \"name\": \"nNeswarrow\"\n    },\n    {\n      \"name\": \"nneswarrow\"\n    },\n    {\n      \"name\": \"nneswarrows\"\n    },\n    {\n      \"name\": \"nneswharpoonnwse\"\n    },\n    {\n      \"name\": \"nneswharpoons\"\n    },\n    {\n      \"name\": \"nneswharpoonsenw\"\n    },\n    {\n      \"name\": \"nNeswline\"\n    },\n    {\n      \"name\": \"nneswline\"\n    },\n    {\n      \"name\": \"nneVdash\"\n    },\n    {\n      \"name\": \"nnevdash\"\n    },\n    {\n      \"name\": \"nNwarrow\"\n    },\n    {\n      \"name\": \"nnwarrow\"\n    },\n    {\n      \"name\": \"nnwarrowtail\"\n    },\n    {\n      \"name\": \"nnwfilledspoon\"\n    },\n    {\n      \"name\": \"nnwfootline\"\n    },\n    {\n      \"name\": \"nnwfree\"\n    },\n    {\n      \"name\": \"nnwharpoonccw\"\n    },\n    {\n      \"name\": \"nnwharpooncw\"\n    },\n    {\n      \"name\": \"nnwlsquigarrow\"\n    },\n    {\n      \"name\": \"nnwmapsto\"\n    },\n    {\n      \"name\": \"nnwModels\"\n    },\n    {\n      \"name\": \"nnwmodels\"\n    },\n    {\n      \"name\": \"nnwnwarrows\"\n    },\n    {\n      \"name\": \"nnwpitchfork\"\n    },\n    {\n      \"name\": \"nnwrsquigarrow\"\n    },\n    {\n      \"name\": \"nNwsearrow\"\n    },\n    {\n      \"name\": \"nnwsearrow\"\n    },\n    {\n      \"name\": \"nnwsearrows\"\n    },\n    {\n      \"name\": \"nnwseharpoonnesw\"\n    },\n    {\n      \"name\": \"nnwseharpoons\"\n    },\n    {\n      \"name\": \"nnwseharpoonswne\"\n    },\n    {\n      \"name\": \"nNwseline\"\n    },\n    {\n      \"name\": \"nnwseline\"\n    },\n    {\n      \"name\": \"nnwspoon\"\n    },\n    {\n      \"name\": \"nnwVdash\"\n    },\n    {\n      \"name\": \"nnwvdash\"\n    },\n    {\n      \"name\": \"nowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nperp\"\n    },\n    {\n      \"name\": \"npitchfork\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrcirclearrowdown\"\n    },\n    {\n      \"name\": \"nrcirclearrowleft\"\n    },\n    {\n      \"name\": \"nrcirclearrowright\"\n    },\n    {\n      \"name\": \"nrcirclearrowup\"\n    },\n    {\n      \"name\": \"nrcurvearrowdown\"\n    },\n    {\n      \"name\": \"nrcurvearrowleft\"\n    },\n    {\n      \"name\": \"nrcurvearrowne\"\n    },\n    {\n      \"name\": \"nrcurvearrownw\"\n    },\n    {\n      \"name\": \"nrcurvearrowright\"\n    },\n    {\n      \"name\": \"nrcurvearrowse\"\n    },\n    {\n      \"name\": \"nrcurvearrowsw\"\n    },\n    {\n      \"name\": \"nrcurvearrowup\"\n    },\n    {\n      \"name\": \"nRelbar\"\n    },\n    {\n      \"name\": \"nrelbar\"\n    },\n    {\n      \"name\": \"nrestriction\"\n    },\n    {\n      \"name\": \"nrhookdownarrow\"\n    },\n    {\n      \"name\": \"nrhookleftarrow\"\n    },\n    {\n      \"name\": \"nrhooknearrow\"\n    },\n    {\n      \"name\": \"nrhooknwarrow\"\n    },\n    {\n      \"name\": \"nrhookrightarrow\"\n    },\n    {\n      \"name\": \"nrhooksearrow\"\n    },\n    {\n      \"name\": \"nrhookswarrow\"\n    },\n    {\n      \"name\": \"nrhookuparrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nrightarrowtail\"\n    },\n    {\n      \"name\": \"nrightfilledspoon\"\n    },\n    {\n      \"name\": \"nrightfootline\"\n    },\n    {\n      \"name\": \"nrightfree\"\n    },\n    {\n      \"name\": \"nrightharpoonccw\"\n    },\n    {\n      \"name\": \"nrightharpooncw\"\n    },\n    {\n      \"name\": \"nrightharpoondown\"\n    },\n    {\n      \"name\": \"nrightharpoonup\"\n    },\n    {\n      \"name\": \"nrightleftarrows\"\n    },\n    {\n      \"name\": \"nrightleftharpoons\"\n    },\n    {\n      \"name\": \"nrightlsquigarrow\"\n    },\n    {\n      \"name\": \"nrightmapsto\"\n    },\n    {\n      \"name\": \"nrightModels\"\n    },\n    {\n      \"name\": \"nrightmodels\"\n    },\n    {\n      \"name\": \"nrightpitchfork\"\n    },\n    {\n      \"name\": \"nrightrightarrows\"\n    },\n    {\n      \"name\": \"nrightrsquigarrow\"\n    },\n    {\n      \"name\": \"nrightspoon\"\n    },\n    {\n      \"name\": \"nrightsquigarrow\"\n    },\n    {\n      \"name\": \"nrightVdash\"\n    },\n    {\n      \"name\": \"nrightvdash\"\n    },\n    {\n      \"name\": \"nrisingdotseq\"\n    },\n    {\n      \"name\": \"nRrightarrow\"\n    },\n    {\n      \"name\": \"nSearrow\"\n    },\n    {\n      \"name\": \"nsearrow\"\n    },\n    {\n      \"name\": \"nsearrowtail\"\n    },\n    {\n      \"name\": \"nsefilledspoon\"\n    },\n    {\n      \"name\": \"nsefootline\"\n    },\n    {\n      \"name\": \"nsefree\"\n    },\n    {\n      \"name\": \"nseharpoonccw\"\n    },\n    {\n      \"name\": \"nseharpooncw\"\n    },\n    {\n      \"name\": \"nselsquigarrow\"\n    },\n    {\n      \"name\": \"nsemapsto\"\n    },\n    {\n      \"name\": \"nseModels\"\n    },\n    {\n      \"name\": \"nsemodels\"\n    },\n    {\n      \"name\": \"nsenwarrows\"\n    },\n    {\n      \"name\": \"nsenwharpoons\"\n    },\n    {\n      \"name\": \"nsepitchfork\"\n    },\n    {\n      \"name\": \"nsersquigarrow\"\n    },\n    {\n      \"name\": \"nsesearrows\"\n    },\n    {\n      \"name\": \"nsespoon\"\n    },\n    {\n      \"name\": \"nseVdash\"\n    },\n    {\n      \"name\": \"nsevdash\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsmile\"\n    },\n    {\n      \"name\": \"nsmileeq\"\n    },\n    {\n      \"name\": \"nsmileeqfrown\"\n    },\n    {\n      \"name\": \"nsmilefrown\"\n    },\n    {\n      \"name\": \"nsmilefrowneq\"\n    },\n    {\n      \"name\": \"nsqdoublefrown\"\n    },\n    {\n      \"name\": \"nsqdoublefrowneq\"\n    },\n    {\n      \"name\": \"nsqdoublesmile\"\n    },\n    {\n      \"name\": \"nsqdoublesmileeq\"\n    },\n    {\n      \"name\": \"nsqeqfrown\"\n    },\n    {\n      \"name\": \"nsqeqsmile\"\n    },\n    {\n      \"name\": \"nsqfrown\"\n    },\n    {\n      \"name\": \"nsqfrowneq\"\n    },\n    {\n      \"name\": \"nsqfrowneqsmile\"\n    },\n    {\n      \"name\": \"nsqfrownsmile\"\n    },\n    {\n      \"name\": \"nsqsmile\"\n    },\n    {\n      \"name\": \"nsqsmileeq\"\n    },\n    {\n      \"name\": \"nsqsmileeqfrown\"\n    },\n    {\n      \"name\": \"nsqsmilefrown\"\n    },\n    {\n      \"name\": \"nSqsubset\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsubseteqq\"\n    },\n    {\n      \"name\": \"nSqsupset\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteqq\"\n    },\n    {\n      \"name\": \"nsqtriplefrown\"\n    },\n    {\n      \"name\": \"nsqtriplesmile\"\n    },\n    {\n      \"name\": \"nsquigarrowdownup\"\n    },\n    {\n      \"name\": \"nsquigarrowleftright\"\n    },\n    {\n      \"name\": \"nsquigarrownesw\"\n    },\n    {\n      \"name\": \"nsquigarrownwse\"\n    },\n    {\n      \"name\": \"nsquigarrowrightleft\"\n    },\n    {\n      \"name\": \"nsquigarrowsenw\"\n    },\n    {\n      \"name\": \"nsquigarrowswne\"\n    },\n    {\n      \"name\": \"nsquigarrowupdown\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nSwarrow\"\n    },\n    {\n      \"name\": \"nswarrow\"\n    },\n    {\n      \"name\": \"nswarrowtail\"\n    },\n    {\n      \"name\": \"nswfilledspoon\"\n    },\n    {\n      \"name\": \"nswfootline\"\n    },\n    {\n      \"name\": \"nswfree\"\n    },\n    {\n      \"name\": \"nswharpoonccw\"\n    },\n    {\n      \"name\": \"nswharpooncw\"\n    },\n    {\n      \"name\": \"nswlsquigarrow\"\n    },\n    {\n      \"name\": \"nswmapsto\"\n    },\n    {\n      \"name\": \"nswModels\"\n    },\n    {\n      \"name\": \"nswmodels\"\n    },\n    {\n      \"name\": \"nswnearrows\"\n    },\n    {\n      \"name\": \"nswneharpoons\"\n    },\n    {\n      \"name\": \"nswpitchfork\"\n    },\n    {\n      \"name\": \"nswrsquigarrow\"\n    },\n    {\n      \"name\": \"nswspoon\"\n    },\n    {\n      \"name\": \"nswswarrows\"\n    },\n    {\n      \"name\": \"nswVdash\"\n    },\n    {\n      \"name\": \"nswvdash\"\n    },\n    {\n      \"name\": \"nto\"\n    },\n    {\n      \"name\": \"ntriangleeq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntriplefrown\"\n    },\n    {\n      \"name\": \"ntriplesim\"\n    },\n    {\n      \"name\": \"ntriplesmile\"\n    },\n    {\n      \"name\": \"ntwoheaddownarrow\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadnearrow\"\n    },\n    {\n      \"name\": \"ntwoheadnwarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"ntwoheadsearrow\"\n    },\n    {\n      \"name\": \"ntwoheadswarrow\"\n    },\n    {\n      \"name\": \"ntwoheaduparrow\"\n    },\n    {\n      \"name\": \"nUparrow\"\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"nuparrowtail\"\n    },\n    {\n      \"name\": \"nUpdownarrow\"\n    },\n    {\n      \"name\": \"nupdownarrow\"\n    },\n    {\n      \"name\": \"nupdownarrows\"\n    },\n    {\n      \"name\": \"nupdownharpoonleftright\"\n    },\n    {\n      \"name\": \"nupdownharpoonrightleft\"\n    },\n    {\n      \"name\": \"nupdownharpoons\"\n    },\n    {\n      \"name\": \"nUpdownline\"\n    },\n    {\n      \"name\": \"nupdownline\"\n    },\n    {\n      \"name\": \"nupfilledspoon\"\n    },\n    {\n      \"name\": \"nupfootline\"\n    },\n    {\n      \"name\": \"nupfree\"\n    },\n    {\n      \"name\": \"nupharpoonccw\"\n    },\n    {\n      \"name\": \"nupharpooncw\"\n    },\n    {\n      \"name\": \"nupharpoonleft\"\n    },\n    {\n      \"name\": \"nupharpoonright\"\n    },\n    {\n      \"name\": \"nuplsquigarrow\"\n    },\n    {\n      \"name\": \"nupmapsto\"\n    },\n    {\n      \"name\": \"nupModels\"\n    },\n    {\n      \"name\": \"nupmodels\"\n    },\n    {\n      \"name\": \"nuppitchfork\"\n    },\n    {\n      \"name\": \"nuprsquigarrow\"\n    },\n    {\n      \"name\": \"nupspoon\"\n    },\n    {\n      \"name\": \"nupuparrows\"\n    },\n    {\n      \"name\": \"nupVdash\"\n    },\n    {\n      \"name\": \"nupvdash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwarrowtail\"\n    },\n    {\n      \"name\": \"nwfilledspoon\"\n    },\n    {\n      \"name\": \"nwfootline\"\n    },\n    {\n      \"name\": \"nwfree\"\n    },\n    {\n      \"name\": \"nwharpoonccw\"\n    },\n    {\n      \"name\": \"nwharpooncw\"\n    },\n    {\n      \"name\": \"nwlsquigarrow\"\n    },\n    {\n      \"name\": \"nwmapsto\"\n    },\n    {\n      \"name\": \"nwModels\"\n    },\n    {\n      \"name\": \"nwmodels\"\n    },\n    {\n      \"name\": \"nwnwarrows\"\n    },\n    {\n      \"name\": \"nwpitchfork\"\n    },\n    {\n      \"name\": \"nwrsquigarrow\"\n    },\n    {\n      \"name\": \"Nwsearrow\"\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"nwsearrows\"\n    },\n    {\n      \"name\": \"nwsebipropto\"\n    },\n    {\n      \"name\": \"nwsecrossing\"\n    },\n    {\n      \"name\": \"nwseharpoonnesw\"\n    },\n    {\n      \"name\": \"nwseharpoons\"\n    },\n    {\n      \"name\": \"nwseharpoonswne\"\n    },\n    {\n      \"name\": \"Nwseline\"\n    },\n    {\n      \"name\": \"nwseline\"\n    },\n    {\n      \"name\": \"nwspoon\"\n    },\n    {\n      \"name\": \"nwVdash\"\n    },\n    {\n      \"name\": \"nwvdash\"\n    },\n    {\n      \"name\": \"oast\"\n    },\n    {\n      \"name\": \"obackslash\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"ostar\"\n    },\n    {\n      \"name\": \"otriangle\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overt\"\n    },\n    {\n      \"name\": \"partialvardint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardoiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardrcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardrcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardstrokedint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvardsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartoiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartrcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartrcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartstrokedint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialvartsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pentagram\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"powerset\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"ranglebar\"\n    },\n    {\n      \"name\": \"rcirclearrowdown\"\n    },\n    {\n      \"name\": \"rcirclearrowleft\"\n    },\n    {\n      \"name\": \"rcirclearrowright\"\n    },\n    {\n      \"name\": \"rcirclearrowup\"\n    },\n    {\n      \"name\": \"rcircleleftint\"\n    },\n    {\n      \"name\": \"rcirclerightint\"\n    },\n    {\n      \"name\": \"rcurvearrowdown\"\n    },\n    {\n      \"name\": \"rcurvearrowleft\"\n    },\n    {\n      \"name\": \"rcurvearrowne\"\n    },\n    {\n      \"name\": \"rcurvearrownw\"\n    },\n    {\n      \"name\": \"rcurvearrowright\"\n    },\n    {\n      \"name\": \"rcurvearrowse\"\n    },\n    {\n      \"name\": \"rcurvearrowsw\"\n    },\n    {\n      \"name\": \"rcurvearrowup\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhookdownarrow\"\n    },\n    {\n      \"name\": \"rhookleftarrow\"\n    },\n    {\n      \"name\": \"rhooknearrow\"\n    },\n    {\n      \"name\": \"rhooknwarrow\"\n    },\n    {\n      \"name\": \"rhookrightarrow\"\n    },\n    {\n      \"name\": \"rhooksearrow\"\n    },\n    {\n      \"name\": \"rhookswarrow\"\n    },\n    {\n      \"name\": \"rhookuparrow\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightfilledspoon\"\n    },\n    {\n      \"name\": \"rightfootline\"\n    },\n    {\n      \"name\": \"rightfree\"\n    },\n    {\n      \"name\": \"righthalfcap\"\n    },\n    {\n      \"name\": \"righthalfcup\"\n    },\n    {\n      \"name\": \"rightharpoonccw\"\n    },\n    {\n      \"name\": \"rightharpooncw\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightlsquigarrow\"\n    },\n    {\n      \"name\": \"rightmapsto\"\n    },\n    {\n      \"name\": \"rightModels\"\n    },\n    {\n      \"name\": \"rightmodels\"\n    },\n    {\n      \"name\": \"rightpitchfork\"\n    },\n    {\n      \"name\": \"rightpropto\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightrsquigarrow\"\n    },\n    {\n      \"name\": \"rightslice\"\n    },\n    {\n      \"name\": \"rightspoon\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"righttherefore\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightVdash\"\n    },\n    {\n      \"name\": \"rightvdash\"\n    },\n    {\n      \"name\": \"rightY\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rrangle\",\n      \"detail\": \"⦊ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation right binding bracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"rsem\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rWavy\"\n    },\n    {\n      \"name\": \"rwavy\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"searrowtail\"\n    },\n    {\n      \"name\": \"sefilledspoon\"\n    },\n    {\n      \"name\": \"sefootline\"\n    },\n    {\n      \"name\": \"sefree\"\n    },\n    {\n      \"name\": \"seharpoonccw\"\n    },\n    {\n      \"name\": \"seharpooncw\"\n    },\n    {\n      \"name\": \"selsquigarrow\"\n    },\n    {\n      \"name\": \"semapsto\"\n    },\n    {\n      \"name\": \"seModels\"\n    },\n    {\n      \"name\": \"semodels\"\n    },\n    {\n      \"name\": \"senwarrows\"\n    },\n    {\n      \"name\": \"senwharpoons\"\n    },\n    {\n      \"name\": \"separated\"\n    },\n    {\n      \"name\": \"sepitchfork\"\n    },\n    {\n      \"name\": \"sersquigarrow\"\n    },\n    {\n      \"name\": \"sesearrows\"\n    },\n    {\n      \"name\": \"sespoon\"\n    },\n    {\n      \"name\": \"seVdash\"\n    },\n    {\n      \"name\": \"sevdash\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"slashdiv\"\n    },\n    {\n      \"name\": \"smalldiamond\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalllozenge\"\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsquare\"\n    },\n    {\n      \"name\": \"smallstar\"\n    },\n    {\n      \"name\": \"smalltriangledown\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleup\"\n    },\n    {\n      \"name\": \"smileeq\"\n    },\n    {\n      \"name\": \"smileeqfrown\"\n    },\n    {\n      \"name\": \"smilefrown\"\n    },\n    {\n      \"name\": \"smilefrowneq\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapdot\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupdot\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqdoublefrown\"\n    },\n    {\n      \"name\": \"sqdoublefrowneq\"\n    },\n    {\n      \"name\": \"sqdoublesmile\"\n    },\n    {\n      \"name\": \"sqdoublesmileeq\"\n    },\n    {\n      \"name\": \"sqeqfrown\"\n    },\n    {\n      \"name\": \"sqeqsmile\"\n    },\n    {\n      \"name\": \"sqfrown\"\n    },\n    {\n      \"name\": \"sqfrowneq\"\n    },\n    {\n      \"name\": \"sqfrowneqsmile\"\n    },\n    {\n      \"name\": \"sqfrownsmile\"\n    },\n    {\n      \"name\": \"sqsmile\"\n    },\n    {\n      \"name\": \"sqsmileeq\"\n    },\n    {\n      \"name\": \"sqsmileeqfrown\"\n    },\n    {\n      \"name\": \"sqsmilefrown\"\n    },\n    {\n      \"name\": \"Sqsubset\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubseteqq\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsubsetneqq\"\n    },\n    {\n      \"name\": \"Sqsupset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupseteqq\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"sqsupsetneqq\"\n    },\n    {\n      \"name\": \"sqtriplefrown\"\n    },\n    {\n      \"name\": \"sqtriplesmile\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squaredots\"\n    },\n    {\n      \"name\": \"squigarrowdownup\"\n    },\n    {\n      \"name\": \"squigarrowleftright\"\n    },\n    {\n      \"name\": \"squigarrownesw\"\n    },\n    {\n      \"name\": \"squigarrownwse\"\n    },\n    {\n      \"name\": \"squigarrowrightleft\"\n    },\n    {\n      \"name\": \"squigarrowsenw\"\n    },\n    {\n      \"name\": \"squigarrowswne\"\n    },\n    {\n      \"name\": \"squigarrowupdown\"\n    },\n    {\n      \"name\": \"strokedint\"\n    },\n    {\n      \"name\": \"strokethrough\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strokethrough{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"swarrowtail\"\n    },\n    {\n      \"name\": \"swfilledspoon\"\n    },\n    {\n      \"name\": \"swfootline\"\n    },\n    {\n      \"name\": \"swfree\"\n    },\n    {\n      \"name\": \"swharpoonccw\"\n    },\n    {\n      \"name\": \"swharpooncw\"\n    },\n    {\n      \"name\": \"swlsquigarrow\"\n    },\n    {\n      \"name\": \"swmapsto\"\n    },\n    {\n      \"name\": \"swModels\"\n    },\n    {\n      \"name\": \"swmodels\"\n    },\n    {\n      \"name\": \"swnearrows\"\n    },\n    {\n      \"name\": \"swneharpoons\"\n    },\n    {\n      \"name\": \"swpitchfork\"\n    },\n    {\n      \"name\": \"swrsquigarrow\"\n    },\n    {\n      \"name\": \"swspoon\"\n    },\n    {\n      \"name\": \"swswarrows\"\n    },\n    {\n      \"name\": \"swVdash\"\n    },\n    {\n      \"name\": \"swvdash\"\n    },\n    {\n      \"name\": \"tbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlyveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlywedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublecurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublecurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigobackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigocirc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigominus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigostar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigotriangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigovert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcomplement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"thinstar\"\n    },\n    {\n      \"name\": \"tidotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleeq\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"triplefrown\"\n    },\n    {\n      \"name\": \"triplesim\"\n    },\n    {\n      \"name\": \"triplesmile\"\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadnearrow\"\n    },\n    {\n      \"name\": \"twoheadnwarrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheadsearrow\"\n    },\n    {\n      \"name\": \"twoheadswarrow\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"udotdot\"\n    },\n    {\n      \"name\": \"udots\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"ullcorner\"\n    },\n    {\n      \"name\": \"ulrcorner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"uparrowtail\"\n    },\n    {\n      \"name\": \"upbrace\"\n    },\n    {\n      \"name\": \"upbraceg\"\n    },\n    {\n      \"name\": \"upbracegg\"\n    },\n    {\n      \"name\": \"upbraceggg\"\n    },\n    {\n      \"name\": \"upbracegggg\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoons\"\n    },\n    {\n      \"name\": \"Updownline\"\n    },\n    {\n      \"name\": \"updownline\"\n    },\n    {\n      \"name\": \"upfilledspoon\"\n    },\n    {\n      \"name\": \"upfootline\"\n    },\n    {\n      \"name\": \"upfree\"\n    },\n    {\n      \"name\": \"upharpoonccw\"\n    },\n    {\n      \"name\": \"upharpooncw\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"uplsquigarrow\"\n    },\n    {\n      \"name\": \"upmapsto\"\n    },\n    {\n      \"name\": \"upModels\"\n    },\n    {\n      \"name\": \"upmodels\"\n    },\n    {\n      \"name\": \"uppitchfork\"\n    },\n    {\n      \"name\": \"uppropto\"\n    },\n    {\n      \"name\": \"uprsquigarrow\"\n    },\n    {\n      \"name\": \"upslice\"\n    },\n    {\n      \"name\": \"upspoon\"\n    },\n    {\n      \"name\": \"uptherefore\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upVdash\"\n    },\n    {\n      \"name\": \"upvdash\"\n    },\n    {\n      \"name\": \"upY\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"utimes\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"vbipropto\"\n    },\n    {\n      \"name\": \"vcrossing\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vdotdot\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"vertbowtie\"\n    },\n    {\n      \"name\": \"vertdiv\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wreath\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/MnSymbol#c\": [\n      \"mnsy\",\n      \"cmsy\",\n      \"abx\",\n      \"retainmissing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/MnSymbol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/MorrisIn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MorrisInfamily\"\n    },\n    {\n      \"name\": \"morrisin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"morrisin{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/MyriadPro-FontDef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"otfontdef\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/MyriadPro-FontDef#c\": [\n      \"noopticals\",\n      \"smallfamily\",\n      \"medfamily\",\n      \"normalsize\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/MyriadPro-FontDef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/MyriadPro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"MyriadPro-FontDef\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mdsymbol\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"mdsymbol\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"mdsymbol\",\n      \"if\": \"sansmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backepsilon\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"if\": \"onlymath\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"eth\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"italpha\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbackepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdigamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteth\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbackepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"onlymath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"slashedzero\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upalpha\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"upell\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upeth\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upGamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"uphbar\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upimath\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upiota\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upjmath\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upkappa\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upPhi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarbackepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upvarbeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϐ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Rounded beta, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"if\": \"onlymath\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"varbackepsilon\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varbeta\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varidotsint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"variiiint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"variiint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"variint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varkappa\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varlanddownint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varlandupint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varlcircleleftint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varlcirclerightint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varoiint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varoint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varrcircleleftint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varrcirclerightint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varsmallint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varstrokedint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"varsumint\",\n      \"if\": \"onlymath\"\n    },\n    {\n      \"name\": \"backepsilon\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"if\": \"math\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"eth\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"italpha\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbackepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdigamma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteth\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbackepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbeta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"math\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"slashedzero\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upalpha\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"upell\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upeth\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upGamma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"uphbar\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upimath\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upiota\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upjmath\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upkappa\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upPhi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarbackepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upvarbeta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϐ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Rounded beta, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"varbackepsilon\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varbeta\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varidotsint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"variiiint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"variiint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"variint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varkappa\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varlanddownint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varlandupint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varlcircleleftint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varlcirclerightint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varoiint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varoint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varrcircleleftint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varrcirclerightint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varsmallint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varstrokedint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"varsumint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"backepsilon\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"if\": \"sansmath\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"eth\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"italpha\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbackepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdigamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteth\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbackepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarbeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"sansmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"slashedzero\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrokedint\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upalpha\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"upell\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upeth\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upGamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"uphbar\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upimath\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upiota\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upjmath\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upkappa\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upPhi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarbackepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upvarbeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϐ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Rounded beta, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"varbackepsilon\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varbeta\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varidotsint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"variiiint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"variiint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"variint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varkappa\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varlanddownint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varlandupint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varlcircleleftint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varlcirclerightint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varoiint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varoint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varrcircleleftint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varrcirclerightint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varsmallint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varstrokedint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"varsumint\",\n      \"if\": \"sansmath\"\n    },\n    {\n      \"name\": \"IfSymbolFont\",\n      \"if\": \"sansmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSymbolFont{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ibycusdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MdSlantfracSpacingAfterSlash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MdSlantfracSpacingBeforeSlash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slantfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slantfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"smallfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smallfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/MyriadPro#c\": [\n      \"onlytext\",\n      \"onlymath\",\n      \"math\",\n      \"sansmath\",\n      \"scale=${1:factor}\",\n      \"noopticals\",\n      \"smallfamily\",\n      \"medfamily\",\n      \"normalsize\",\n      \"textosf\",\n      \"textlf\",\n      \"mathosf\",\n      \"mathlf\",\n      \"osf\",\n      \"lf\",\n      \"mathtabular\",\n      \"cmsy\",\n      \"abx\",\n      \"crswash\",\n      \"crswash=${1|noptsmall,optsmall,noptmed,optmed|}\",\n      \"lucidabb\",\n      \"fourierbb\",\n      \"frenchmath\",\n      \"mixedgreek\",\n      \"italicgreek\",\n      \"myriadint\",\n      \"footnotefigures\",\n      \"loosequotes\"\n    ],\n    \"\\\\mathversion#c\": [\n      \"tabular\",\n      \"boldtabular\",\n      \"tabular\",\n      \"boldtabular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/MyriadPro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Nouveaud.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Nouveaudfamily\"\n    },\n    {\n      \"name\": \"nouvd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nouvd{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/NumericPlots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xkvview\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setxAxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxAxis{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setxAxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setyAxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyAxis{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setyAxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plotxAxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotxAxis{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"plotxAxis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plotxAxis[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\plotxAxis#c,\\\\plotyAxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plotyAxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotyAxis{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"plotyAxis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plotyAxis[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\plotxAxis#c,\\\\plotyAxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LegendDefinition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LegendDefinition{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"LegendDefinition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LegendDefinition[${2:options%keyvals}]{${1:definition}}\",\n        \"keys\": [\n          \"\\\\LegendDefinition#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LegLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LegLine{${1:\\\\psline keys}}\"\n      }\n    },\n    {\n      \"name\": \"LegLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LegLine[${2:legend options}]{${1:\\\\psline keys}}\"\n      }\n    },\n    {\n      \"name\": \"LegDot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LegDot{${1:\\\\psdots keys}}\"\n      }\n    },\n    {\n      \"name\": \"LegDot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LegDot[${2:legend options}]{${1:\\\\psdots keys}}\"\n      }\n    },\n    {\n      \"name\": \"putN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putN{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putS{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putW{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putE{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putNW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putNW{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putNE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putNE{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putSW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putSW{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putSE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putSE{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"NDPput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NDPput[${2:options%keyvals}]{${1:stuff}}\",\n        \"keys\": [\n          \"\\\\NDPput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"putExpX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putExpX{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"putExpY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putExpY{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"NDPhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDPhline{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"NDPhline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NDPhline[${2:options%keyvals}]{${1:y}}\",\n        \"keys\": [\n          \"\\\\NDPhline#c,\\\\NDPvline#c,\\\\NDPline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NDPvline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDPvline{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"NDPvline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NDPvline[${2:options%keyvals}]{${1:x}}\",\n        \"keys\": [\n          \"\\\\NDPhline#c,\\\\NDPvline#c,\\\\NDPline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NDPline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NDPline{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"NDPline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NDPline[${5:options%keyvals}]{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\",\n        \"keys\": [\n          \"\\\\NDPhline#c,\\\\NDPvline#c,\\\\NDPline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NDPhbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NDPhbox{${1:y1}}{${2:y2}}\"\n      }\n    },\n    {\n      \"name\": \"NDPhbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NDPhbox[${3:options%keyvals}]{${1:y1}}{${2:y2}}\",\n        \"keys\": [\n          \"\\\\NDPhbox#c,\\\\NDPvbox#c,\\\\NDPbox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NDPvbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NDPvbox{${1:x1}}{${2:x2}}\"\n      }\n    },\n    {\n      \"name\": \"NDPvbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NDPvbox[${3:options%keyvals}]{${1:x1}}{${2:x2}}\",\n        \"keys\": [\n          \"\\\\NDPhbox#c,\\\\NDPvbox#c,\\\\NDPbox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NDPbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NDPbox{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"NDPbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NDPbox[${5:options%keyvals}]{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\",\n        \"keys\": [\n          \"\\\\NDPhbox#c,\\\\NDPvbox#c,\\\\NDPbox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plotxGrid\"\n    },\n    {\n      \"name\": \"plotyGrid\"\n    },\n    {\n      \"name\": \"multilistplot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multilistplot{${1:options%keyvals}}{${2:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"PutTickLabelXaxis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PutTickLabelXaxis[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\PutTickLabelXaxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PutTickLabelYaxis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PutTickLabelYaxis[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\PutTickLabelYaxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CheckIfColumntypeDefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckIfColumntypeDefined{${1:coltype}}\"\n      }\n    },\n    {\n      \"name\": \"CPicHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPicWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLegendOrientationCenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLegendOrientationLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLegendOrientationRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iSubb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogxAxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogxAxisLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogxAxisLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"LogyAxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogyAxisLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogyAxisLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makeXLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeXLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makeXTickLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeXTickLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makeYLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeYLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makeYTickLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeYTickLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"NDPputRotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDPputXcoord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDPputXcoordOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDPputYcoord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDPRefPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrAxisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrLegendCols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrLegOrient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrPutAxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotBaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotBuffer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotBufferI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotDDx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotDDy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotDx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotdx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotdxLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotDy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotdy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotdyLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotGxPicMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotGxPicMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotGyPicMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotGyPicMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotLnTen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotTickPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxCoordMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxCoordMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxCoordRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxDataCoordRatio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxLabelOrientation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxLabelPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxTickBaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxTickDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxTickLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotxTickLabelRot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyCoordMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyCoordMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyCoordRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyDataCoordRatio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyLabelOrientation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyLabelPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyTickBaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyTickDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyTickLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDataPlotyTickLabelRot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OffsetHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OffsetWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origXLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origXTickLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origYLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origYTickLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plotxGridLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotxGridLine{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"plotxSubGridLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotxSubGridLine{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"plotxTickLabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotxTickLabels{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"plotyGridBoxed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plotyGridLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotyGridLine{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"plotySubGridLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotySubGridLine{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"plotyTickLabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotyTickLabels{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"PutLabelXaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PutLabelXaxis[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PutLabelXaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PutLabelXaxis{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PutLabelYaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PutLabelYaxis[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PutLabelYaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PutLabelYaxis{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"repeatxAxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScaleAxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdLLX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdLLY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdTickLabelOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdURX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StdURY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TempLengthA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TempLengthB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testframe{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"theBufferCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TickLabelsXLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TickLabelsXRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TickLabelsYLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TickLabelsYRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TicksXLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TicksXRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TicksYLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TicksYRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"val\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xCoordOrig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xLabelRefPt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xLabelRot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xLogSubGrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLogSubGrid{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"xNrTickLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xNrTicks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xScaling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xTickLabelRefPt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xTickLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xTickLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yCoordOrig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yLabelRefPt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yLabelRot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yLogSubGrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yLogSubGrid{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"yNrTickLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yNrTicks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yScaling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yTickLabelRefPt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yTickLabelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yTickLength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NumericDataPlot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"NumericDataPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:width}}{${2:height}}\",\n        \"keys\": [\n          \"\\\\begin{NumericDataPlot}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/NumericPlots#c\": [\n      \"beamer\",\n      \"xAxisStyle=${1:style}\",\n      \"yAxisStyle=${1:style}\",\n      \"LabelOption=${1:font commands}\",\n      \"TickLabelOption=${1:font commands}\",\n      \"BW\"\n    ],\n    \"\\\\begin{NumericDataPlot}#c\": [\n      \"xPicMin=${1:value}\",\n      \"xPicMax=${1:value}\",\n      \"yPicMin=${1:value}\",\n      \"yPicMax=${1:value}\",\n      \"TickLength=${1:value}\",\n      \"llx=\",\n      \"lly=\",\n      \"urx=\",\n      \"ury=\"\n    ],\n    \"\\\\setxAxis#c\": [\n      \"xO=${1:value}\",\n      \"xMin=${1:value}\",\n      \"xMax=${1:value}\",\n      \"xCoordMin=${1:value}\",\n      \"xCoordMax=${1:value}\",\n      \"Dx=${1:value}\",\n      \"dx=${1:value}\",\n      \"DDx=${1:value}\",\n      \"xLog\",\n      \"xLogNoSubGrid\"\n    ],\n    \"\\\\setyAxis#c\": [\n      \"yO=${1:value}\",\n      \"yMin=${1:value}\",\n      \"yMax=${1:value}\",\n      \"yCoordMin=${1:value}\",\n      \"yCoordMax=${1:value}\",\n      \"Dy=${1:value}\",\n      \"dy=${1:value}\",\n      \"DDy=${1:value}\",\n      \"yLog\",\n      \"yLogNoSubGrid\"\n    ],\n    \"\\\\plotxAxis#c,\\\\plotyAxis#c\": [\n      \"LabelOption=${1:font commands}\",\n      \"TickLabelOption=${1:font commands}\",\n      \"LabelSep=\",\n      \"NoGrid\",\n      \"NoLabel\",\n      \"NoTicks\",\n      \"NoTickLabel\",\n      \"LabelPos=${1:factor}\",\n      \"LabelRefPt=\",\n      \"AxisStyle=${1|Boxed,Lower,Upper,Right,Left,None|}\",\n      \"LabelRot=${1:degrees}\",\n      \"TickLabelRot=${1:degrees}\",\n      \"TickLabelSep=\",\n      \"LabelOrientation=${1|l,c,r|}\",\n      \"TickLabelRefPt=\"\n    ],\n    \"\\\\LegendDefinition#c\": [\n      \"nrCols=${1:integer}\",\n      \"LabelOrientation=${1|l,c,r|}\"\n    ],\n    \"\\\\NDPput#c\": [\n      \"x=${1:value}\",\n      \"y=${1:value}\",\n      \"RefPoint=\",\n      \"Rot=${1:degrees}\"\n    ],\n    \"\\\\NDPhline#c,\\\\NDPvline#c,\\\\NDPline#c\": [\n      \"linecolor=\",\n      \"linestyle=${1:style}\",\n      \"linewidth=\",\n      \"style=${1:style}\"\n    ],\n    \"\\\\NDPhbox#c,\\\\NDPvbox#c,\\\\NDPbox#c\": [\n      \"fillstyle=${1:style}\",\n      \"fillcolor=\",\n      \"opacity=${1:factor}\",\n      \"linestyle=${1:style}\"\n    ],\n    \"\\\\PutTickLabelXaxis#c\": [\n      \"x=${1:value}\",\n      \"TickLabelSep=\",\n      \"ax=${1|lower,upper|}\"\n    ],\n    \"\\\\PutTickLabelYaxis#c\": [\n      \"y=${1:value}\",\n      \"TickLabelSep=\",\n      \"ax=${1|left,right|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/NumericPlots#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/OldStandard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstandard\"\n    },\n    {\n      \"name\": \"oldstandardlgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/OldStandard#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/OldStandard#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Oswald.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Oswald#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"medium\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Oswald#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/OutilsGeomTikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzCrayon\"\n    },\n    {\n      \"name\": \"tkzCrayon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzCrayon[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzCrayon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzRegle\"\n    },\n    {\n      \"name\": \"tkzRegle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRegle[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRegle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzRegleRepere\"\n    },\n    {\n      \"name\": \"tkzRegleRepere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRegleRepere[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRegleRepere\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzEquerre\"\n    },\n    {\n      \"name\": \"tkzEquerre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzEquerre[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzEquerre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzRapporteur\"\n    },\n    {\n      \"name\": \"tkzRapporteur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRapporteur[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRapporteur\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPourcenteur\"\n    },\n    {\n      \"name\": \"tkzPourcenteur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzPourcenteur[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzPourcenteur\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzRequerre\"\n    },\n    {\n      \"name\": \"tkzRequerre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRequerre[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRequerre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzRappEquerre\"\n    },\n    {\n      \"name\": \"tkzRappEquerre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRappEquerre[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRappEquerre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzCompas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzCompas{${1:pointe}}{${2:mine}}\"\n      }\n    },\n    {\n      \"name\": \"tkzCompas\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tkzCompas[${3:clés%keyvals}]{${1:pointe}}{${2:mine}}\",\n        \"keys\": [\n          \"\\\\tkzCompas\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMiniEquerre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzMiniEquerre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzMiniEquerre[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzMiniEquerre,\\\\tkzMiniRegle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMiniRegle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzMiniRegle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzMiniRegle[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzMiniEquerre,\\\\tkzMiniRegle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzCrayon\": [\n      \"Longueur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\"\n    ],\n    \"\\\\tkzRegle\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheValeurs\",\n      \"PosVal=${1|h,m,b,hb|}\"\n    ],\n    \"\\\\tkzRegleRepere\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheValeurs\",\n      \"Retourne\"\n    ],\n    \"\\\\tkzEquerre\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheValeurs\",\n      \"PetitCote\"\n    ],\n    \"\\\\tkzRapporteur\": [\n      \"Complet\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheAngles\"\n    ],\n    \"\\\\tkzPourcenteur\": [\n      \"Echelle=${1:nombre}\",\n      \"EchelleAngle=${1:nombre}\",\n      \"Couleur=\",\n      \"CouleurFond=\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"AfficheValeurs\",\n      \"Fond\",\n      \"Opacite=${1:factor}\",\n      \"Decoration\"\n    ],\n    \"\\\\tkzRequerre\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheValeurs\"\n    ],\n    \"\\\\tkzRappEquerre\": [\n      \"Largeur=${1:nombre}\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Echelle=${1:nombre}\",\n      \"EchelleValeurs=${1:nombre}\",\n      \"Couleur=\",\n      \"Fond\",\n      \"CouleurFond=\",\n      \"Opacite=${1:factor}\",\n      \"AfficheAngles\",\n      \"AfficheValeurs\",\n      \"Ombre\"\n    ],\n    \"\\\\tkzCompas\": [\n      \"AfficheCrayon\",\n      \"EchelleCrayon=${1:nombre}\",\n      \"CouleurCrayon=\",\n      \"LongueurCrayon=${1:nombre}\",\n      \"LongueurBranches=${1:nombre}\",\n      \"CouleurCompas=\",\n      \"Retourne\",\n      \"Echelle=${1:nombre}\",\n      \"UniteTikz=${1:unité}\"\n    ],\n    \"\\\\tkzMiniEquerre,\\\\tkzMiniRegle\": [\n      \"Echelle=${1:nombre}\",\n      \"Couleur=\",\n      \"Origine={(${1:x,y})}\",\n      \"Rotation=${1:degrees}\",\n      \"Ombre\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/PTMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTMono#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PTSans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTSans#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTSans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PTSansCaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTSansCaption#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTSansCaption#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PTSansNarrow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTSansNarrow#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTSansNarrow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PTSerif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTSerif#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTSerif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PTSerifCaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PTSerifCaption#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PTSerifCaption#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PanneauxRoute.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AffPanneau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffPanneau{${1:CodePanneau}}\"\n      }\n    },\n    {\n      \"name\": \"AffPanneau\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AffPanneau[${2:options%keyvals}]{${1:CodePanneau}}\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVirDroit\"\n    },\n    {\n      \"name\": \"prVirDroit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVirDroit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVirGauche\"\n    },\n    {\n      \"name\": \"prVirGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVirGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVirsDroit\"\n    },\n    {\n      \"name\": \"prVirsDroit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVirsDroit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVirsGauche\"\n    },\n    {\n      \"name\": \"prVirsGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVirsGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDosAne\"\n    },\n    {\n      \"name\": \"prDosAne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDosAne[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRalDosAne\"\n    },\n    {\n      \"name\": \"prRalDosAne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRalDosAne[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChausRet\"\n    },\n    {\n      \"name\": \"prChausRet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChausRet[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChausRetD\"\n    },\n    {\n      \"name\": \"prChausRetD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChausRetD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChausRetG\"\n    },\n    {\n      \"name\": \"prChausRetG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChausRetG[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChaussGliss\"\n    },\n    {\n      \"name\": \"prChaussGliss\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChaussGliss[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPontMob\"\n    },\n    {\n      \"name\": \"prPontMob\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPontMob[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPassNiv\"\n    },\n    {\n      \"name\": \"prPassNiv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPassNiv[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPassNivVap\"\n    },\n    {\n      \"name\": \"prPassNivVap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPassNivVap[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPassTram\"\n    },\n    {\n      \"name\": \"prPassTram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPassTram[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEnfants\"\n    },\n    {\n      \"name\": \"prEnfants\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEnfants[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPietons\"\n    },\n    {\n      \"name\": \"prPietons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPietons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDanger\"\n    },\n    {\n      \"name\": \"prDanger\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDanger[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prAnimaux\"\n    },\n    {\n      \"name\": \"prAnimaux\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prAnimaux[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prAnimauxSauv\"\n    },\n    {\n      \"name\": \"prAnimauxSauv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prAnimauxSauv[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCavaliers\"\n    },\n    {\n      \"name\": \"prCavaliers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCavaliers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDescente\"\n    },\n    {\n      \"name\": \"prDescente\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDescente[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFeux\"\n    },\n    {\n      \"name\": \"prFeux\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFeux[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDeuxSens\"\n    },\n    {\n      \"name\": \"prDeuxSens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDeuxSens[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChute\"\n    },\n    {\n      \"name\": \"prChute\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChute[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prQuai\"\n    },\n    {\n      \"name\": \"prQuai\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prQuai[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVelos\"\n    },\n    {\n      \"name\": \"prVelos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVelos[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prAvions\"\n    },\n    {\n      \"name\": \"prAvions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prAvions[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVent\"\n    },\n    {\n      \"name\": \"prVent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVent[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prIntersect\"\n    },\n    {\n      \"name\": \"prIntersect\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prIntersect[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prIntersectPrio\"\n    },\n    {\n      \"name\": \"prIntersectPrio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prIntersectPrio[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCedez\"\n    },\n    {\n      \"name\": \"prCedez\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCedez[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCedezInter\"\n    },\n    {\n      \"name\": \"prCedezInter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCedezInter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prStop\"\n    },\n    {\n      \"name\": \"prStop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prStop[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prArretInter\"\n    },\n    {\n      \"name\": \"prArretInter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prArretInter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRoutePrio\"\n    },\n    {\n      \"name\": \"prRoutePrio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRoutePrio[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinRoutePrio\"\n    },\n    {\n      \"name\": \"prFinRoutePrio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinRoutePrio[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRondPoint\"\n    },\n    {\n      \"name\": \"prRondPoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRondPoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCircInterd\"\n    },\n    {\n      \"name\": \"prCircInterd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCircInterd[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prSensInterdit\"\n    },\n    {\n      \"name\": \"prSensInterdit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prSensInterdit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdTournG\"\n    },\n    {\n      \"name\": \"prInterdTournG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdTournG[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdTournD\"\n    },\n    {\n      \"name\": \"prInterdTournD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdTournD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdDemiTour\"\n    },\n    {\n      \"name\": \"prInterdDemiTour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdDemiTour[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdDepass\"\n    },\n    {\n      \"name\": \"prInterdDepass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdDepass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdVehic\"\n    },\n    {\n      \"name\": \"prInterdVehic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdVehic[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prHalteDouane\"\n    },\n    {\n      \"name\": \"prHalteDouane\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prHalteDouane[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prHalteGendarm\"\n    },\n    {\n      \"name\": \"prHalteGendarm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prHalteGendarm[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prHaltePolice\"\n    },\n    {\n      \"name\": \"prHaltePolice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prHaltePolice[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prHaltePeage\"\n    },\n    {\n      \"name\": \"prHaltePeage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prHaltePeage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prStationInterd\"\n    },\n    {\n      \"name\": \"prStationInterd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prStationInterd[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prStationInterdQA\"\n    },\n    {\n      \"name\": \"prStationInterdQA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prStationInterdQA[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prStationInterdQB\"\n    },\n    {\n      \"name\": \"prStationInterdQB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prStationInterdQB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prArStatInterd\"\n    },\n    {\n      \"name\": \"prArStatInterd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prArStatInterd[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdMotSaufCyc\"\n    },\n    {\n      \"name\": \"prInterdMotSaufCyc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdMotSaufCyc[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdMot\"\n    },\n    {\n      \"name\": \"prInterdMot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdMot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdMarchand\"\n    },\n    {\n      \"name\": \"prInterdMarchand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdMarchand[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdPietons\"\n    },\n    {\n      \"name\": \"prInterdPietons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdPietons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdCycles\"\n    },\n    {\n      \"name\": \"prInterdCycles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdCycles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdTracAnim\"\n    },\n    {\n      \"name\": \"prInterdTracAnim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdTracAnim[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdAgricMot\"\n    },\n    {\n      \"name\": \"prInterdAgricMot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdAgricMot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdBras\"\n    },\n    {\n      \"name\": \"prInterdBras\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdBras[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdTranspComm\"\n    },\n    {\n      \"name\": \"prInterdTranspComm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdTranspComm[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdCyclomot\"\n    },\n    {\n      \"name\": \"prInterdCyclomot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdCyclomot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdCycloMoto\"\n    },\n    {\n      \"name\": \"prInterdCycloMoto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdCycloMoto[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdCaravanes\"\n    },\n    {\n      \"name\": \"prInterdCaravanes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdCaravanes[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdLong\"\n    },\n    {\n      \"name\": \"prInterdLong\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdLong[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdLarg\"\n    },\n    {\n      \"name\": \"prInterdLarg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdLarg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdHaut\"\n    },\n    {\n      \"name\": \"prInterdHaut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdHaut[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdPoids\"\n    },\n    {\n      \"name\": \"prInterdPoids\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdPoids[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdPoidsEssieu\"\n    },\n    {\n      \"name\": \"prInterdPoidsEssieu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdPoidsEssieu[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCedezInv\"\n    },\n    {\n      \"name\": \"prCedezInv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCedezInv[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInterdSons\"\n    },\n    {\n      \"name\": \"prInterdSons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInterdSons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDistance\"\n    },\n    {\n      \"name\": \"prDistance\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDistance[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prExplos\"\n    },\n    {\n      \"name\": \"prExplos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prExplos[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPollu\"\n    },\n    {\n      \"name\": \"prPollu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPollu[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDangereuses\"\n    },\n    {\n      \"name\": \"prDangereuses\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDangereuses[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliAvDroite\"\n    },\n    {\n      \"name\": \"prObliAvDroite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliAvDroite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliAvGauche\"\n    },\n    {\n      \"name\": \"prObliAvGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliAvGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prContournDroite\"\n    },\n    {\n      \"name\": \"prContournDroite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prContournDroite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prContournGauche\"\n    },\n    {\n      \"name\": \"prContournGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prContournGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prToutDroit\"\n    },\n    {\n      \"name\": \"prToutDroit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prToutDroit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliDroite\"\n    },\n    {\n      \"name\": \"prObliDroite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliDroite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliGauche\"\n    },\n    {\n      \"name\": \"prObliGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliToutDroite\"\n    },\n    {\n      \"name\": \"prObliToutDroite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliToutDroite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliToutGauche\"\n    },\n    {\n      \"name\": \"prObliToutGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliToutGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliDroiteGauche\"\n    },\n    {\n      \"name\": \"prObliDroiteGauche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliDroiteGauche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliCycles\"\n    },\n    {\n      \"name\": \"prObliCycles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliCycles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliPietons\"\n    },\n    {\n      \"name\": \"prObliPietons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliPietons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliCavaliers\"\n    },\n    {\n      \"name\": \"prObliCavaliers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliCavaliers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliVitesse\"\n    },\n    {\n      \"name\": \"prObliVitesse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliVitesse[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliChaines\"\n    },\n    {\n      \"name\": \"prObliChaines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliChaines[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliBus\"\n    },\n    {\n      \"name\": \"prObliBus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliBus[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prObliTrams\"\n    },\n    {\n      \"name\": \"prObliTrams\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prObliTrams[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinInterd\"\n    },\n    {\n      \"name\": \"prFinInterd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinInterd[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinIntDepass\"\n    },\n    {\n      \"name\": \"prFinIntDepass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinIntDepass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinIntDepassCam\"\n    },\n    {\n      \"name\": \"prFinIntDepassCam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinIntDepassCam[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinIntSons\"\n    },\n    {\n      \"name\": \"prFinIntSons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinIntSons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinPisteOblCycl\"\n    },\n    {\n      \"name\": \"prFinPisteOblCycl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinPisteOblCycl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinChemPiet\"\n    },\n    {\n      \"name\": \"prFinChemPiet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinChemPiet[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinChemCav\"\n    },\n    {\n      \"name\": \"prFinChemCav\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinChemCav[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinVitObli\"\n    },\n    {\n      \"name\": \"prFinVitObli\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinVitObli[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinChaines\"\n    },\n    {\n      \"name\": \"prFinChaines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinChaines[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinVoieBus\"\n    },\n    {\n      \"name\": \"prFinVoieBus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinVoieBus[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prParking\"\n    },\n    {\n      \"name\": \"prParking\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prParking[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prParkDisq\"\n    },\n    {\n      \"name\": \"prParkDisq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prParkDisq[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prParkPay\"\n    },\n    {\n      \"name\": \"prParkPay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prParkPay[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prIncendie\"\n    },\n    {\n      \"name\": \"prIncendie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prIncendie[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVitConseil\"\n    },\n    {\n      \"name\": \"prVitConseil\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVitConseil[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinVitConseil\"\n    },\n    {\n      \"name\": \"prFinVitConseil\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinVitConseil[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prTaxis\"\n    },\n    {\n      \"name\": \"prTaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prTaxis[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prArretBus\"\n    },\n    {\n      \"name\": \"prArretBus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prArretBus[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prArretUrg\"\n    },\n    {\n      \"name\": \"prArretUrg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prArretUrg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCircSensUniq\"\n    },\n    {\n      \"name\": \"prCircSensUniq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCircSensUniq[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prImpasse\"\n    },\n    {\n      \"name\": \"prImpasse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prImpasse[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPreImpasse\"\n    },\n    {\n      \"name\": \"prPreImpasse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPreImpasse[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPriorSensInv\"\n    },\n    {\n      \"name\": \"prPriorSensInv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPriorSensInv[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPassPietons\"\n    },\n    {\n      \"name\": \"prPassPietons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPassPietons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prTravTrams\"\n    },\n    {\n      \"name\": \"prTravTrams\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prTravTrams[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prStatCarav\"\n    },\n    {\n      \"name\": \"prStatCarav\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prStatCarav[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffA\"\n    },\n    {\n      \"name\": \"prVoiesAffA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffA[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffB\"\n    },\n    {\n      \"name\": \"prVoiesAffB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffC\"\n    },\n    {\n      \"name\": \"prVoiesAffC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffD\"\n    },\n    {\n      \"name\": \"prVoiesAffD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffE\"\n    },\n    {\n      \"name\": \"prVoiesAffE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffE[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoiesAffF\"\n    },\n    {\n      \"name\": \"prVoiesAffF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoiesAffF[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVitFront\"\n    },\n    {\n      \"name\": \"prVitFront\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVitFront[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVitAutor\"\n    },\n    {\n      \"name\": \"prVitAutor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVitAutor[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDetresseD\"\n    },\n    {\n      \"name\": \"prDetresseD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDetresseD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDetresseG\"\n    },\n    {\n      \"name\": \"prDetresseG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDetresseG[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prChausseSur\"\n    },\n    {\n      \"name\": \"prChausseSur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prChausseSur[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prReducVoieA\"\n    },\n    {\n      \"name\": \"prReducVoieA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prReducVoieA[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prReducVoieB\"\n    },\n    {\n      \"name\": \"prReducVoieB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prReducVoieB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCreneauDepas\"\n    },\n    {\n      \"name\": \"prCreneauDepas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCreneauDepas[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinCreneauDepas\"\n    },\n    {\n      \"name\": \"prFinCreneauDepas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinCreneauDepas[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prTickPeage\"\n    },\n    {\n      \"name\": \"prTickPeage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prTickPeage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPaiemPeage\"\n    },\n    {\n      \"name\": \"prPaiemPeage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPaiemPeage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPaiemCB\"\n    },\n    {\n      \"name\": \"prPaiemCB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPaiemCB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPaiemPieces\"\n    },\n    {\n      \"name\": \"prPaiemPieces\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPaiemPieces[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPaiemPiecBil\"\n    },\n    {\n      \"name\": \"prPaiemPiecBil\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPaiemPiecBil[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPaiemTelepeage\"\n    },\n    {\n      \"name\": \"prPaiemTelepeage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPaiemTelepeage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRouteRegl\"\n    },\n    {\n      \"name\": \"prRouteRegl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRouteRegl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinRouteRegl\"\n    },\n    {\n      \"name\": \"prFinRouteRegl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinRouteRegl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEntrTunnel\"\n    },\n    {\n      \"name\": \"prEntrTunnel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEntrTunnel[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prSortieTunnel\"\n    },\n    {\n      \"name\": \"prSortieTunnel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prSortieTunnel[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPisteCycl\"\n    },\n    {\n      \"name\": \"prPisteCycl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPisteCycl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinPisteCycl\"\n    },\n    {\n      \"name\": \"prFinPisteCycl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinPisteCycl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVoieVerte\"\n    },\n    {\n      \"name\": \"prVoieVerte\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVoieVerte[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinVoieVerte\"\n    },\n    {\n      \"name\": \"prFinVoieVerte\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinVoieVerte[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDebAutor\"\n    },\n    {\n      \"name\": \"prDebAutor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDebAutor[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinAutor\"\n    },\n    {\n      \"name\": \"prFinAutor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prFinAutor[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPosteSecours\"\n    },\n    {\n      \"name\": \"prPosteSecours\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPosteSecours[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPosteSecUrg\"\n    },\n    {\n      \"name\": \"prPosteSecUrg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPosteSecUrg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCabineTel\"\n    },\n    {\n      \"name\": \"prCabineTel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCabineTel[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prInfos\"\n    },\n    {\n      \"name\": \"prInfos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prInfos[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCampingT\"\n    },\n    {\n      \"name\": \"prCampingT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCampingT[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCampingC\"\n    },\n    {\n      \"name\": \"prCampingC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCampingC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prCampingTC\"\n    },\n    {\n      \"name\": \"prCampingTC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prCampingTC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prAubergJeun\"\n    },\n    {\n      \"name\": \"prAubergJeun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prAubergJeun[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prGite\"\n    },\n    {\n      \"name\": \"prGite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prGite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prItinPedest\"\n    },\n    {\n      \"name\": \"prItinPedest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prItinPedest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prItinSkiFond\"\n    },\n    {\n      \"name\": \"prItinSkiFond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prItinSkiFond[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPicNic\"\n    },\n    {\n      \"name\": \"prPicNic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPicNic[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prGareAutoTrain\"\n    },\n    {\n      \"name\": \"prGareAutoTrain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prGareAutoTrain[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prParkVideo\"\n    },\n    {\n      \"name\": \"prParkVideo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prParkVideo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEmbarcad\"\n    },\n    {\n      \"name\": \"prEmbarcad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEmbarcad[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prToilettes\"\n    },\n    {\n      \"name\": \"prToilettes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prToilettes[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prAccesHandic\"\n    },\n    {\n      \"name\": \"prAccesHandic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prAccesHandic[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEssence\"\n    },\n    {\n      \"name\": \"prEssence\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEssence[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEssenceGPL\"\n    },\n    {\n      \"name\": \"prEssenceGPL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEssenceGPL[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRestau\"\n    },\n    {\n      \"name\": \"prRestau\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRestau[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prHotel\"\n    },\n    {\n      \"name\": \"prHotel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prHotel[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prBoissons\"\n    },\n    {\n      \"name\": \"prBoissons\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prBoissons[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prEmbarcLeg\"\n    },\n    {\n      \"name\": \"prEmbarcLeg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prEmbarcLeg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prTelepher\"\n    },\n    {\n      \"name\": \"prTelepher\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prTelepher[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prTelecabin\"\n    },\n    {\n      \"name\": \"prTelecabin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prTelecabin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPointVue\"\n    },\n    {\n      \"name\": \"prPointVue\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPointVue[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prRadio\"\n    },\n    {\n      \"name\": \"prRadio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prRadio[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prJeuxEnfants\"\n    },\n    {\n      \"name\": \"prJeuxEnfants\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prJeuxEnfants[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prVidange\"\n    },\n    {\n      \"name\": \"prVidange\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prVidange[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDistribBill\"\n    },\n    {\n      \"name\": \"prDistribBill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDistribBill[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prGonflage\"\n    },\n    {\n      \"name\": \"prGonflage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prGonflage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prDetente\"\n    },\n    {\n      \"name\": \"prDetente\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prDetente[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prPosteDepann\"\n    },\n    {\n      \"name\": \"prPosteDepann\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prPosteDepann[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prLutteIncendie\"\n    },\n    {\n      \"name\": \"prLutteIncendie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prLutteIncendie[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prIssueSecD\"\n    },\n    {\n      \"name\": \"prIssueSecD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prIssueSecD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prIssueSecG\"\n    },\n    {\n      \"name\": \"prIssueSecG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prIssueSecG[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prFinLimVit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prFinLimVit{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"prFinLimVit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prFinLimVit[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prLimVites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prLimVites{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"prLimVites\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prLimVites[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\AffPanneau,\\\\prVirDroit,\\\\prVirGauche,\\\\prVirsDroit,\\\\prVirsGauche,\\\\prDosAne,\\\\prRalDosAne,\\\\prChausRet,\\\\prChausRetD,\\\\prChausRetG,\\\\prChaussGliss,\\\\prPontMob,\\\\prPassNiv,\\\\prPassNivVap,\\\\prPassTram,\\\\prEnfants,\\\\prPietons,\\\\prDanger,\\\\prAnimaux,\\\\prAnimauxSauv,\\\\prCavaliers,\\\\prDescente,\\\\prFeux,\\\\prDeuxSens,\\\\prChute,\\\\prQuai,\\\\prVelos,\\\\prAvions,\\\\prVent,\\\\prIntersect,\\\\prIntersectPrio,\\\\prCedez,\\\\prCedezInter,\\\\prStop,\\\\prArretInter,\\\\prRoutePrio,\\\\prFinRoutePrio,\\\\prRondPoint,\\\\prCircInterd,\\\\prSensInterdit,\\\\prInterdTournG,\\\\prInterdTournD,\\\\prInterdDemiTour,\\\\prInterdDepass,\\\\prInterdVehic,\\\\prHalteDouane,\\\\prHalteGendarm,\\\\prHaltePolice,\\\\prHaltePeage,\\\\prStationInterd,\\\\prStationInterdQA,\\\\prStationInterdQB,\\\\prArStatInterd,\\\\prInterdMotSaufCyc,\\\\prInterdMot,\\\\prInterdMarchand,\\\\prInterdPietons,\\\\prInterdCycles,\\\\prInterdTracAnim,\\\\prInterdAgricMot,\\\\prInterdBras,\\\\prInterdTranspComm,\\\\prInterdCyclomot,\\\\prInterdCycloMoto,\\\\prInterdCaravanes,\\\\prInterdLong,\\\\prInterdLarg,\\\\prInterdHaut,\\\\prInterdPoids,\\\\prInterdPoidsEssieu,\\\\prCedezInv,\\\\prInterdSons,\\\\prDistance,\\\\prExplos,\\\\prPollu,\\\\prDangereuses,\\\\prObliAvDroite,\\\\prObliAvGauche,\\\\prContournDroite,\\\\prContournGauche,\\\\prToutDroit,\\\\prObliDroite,\\\\prObliGauche,\\\\prObliToutDroite,\\\\prObliToutGauche,\\\\prObliDroiteGauche,\\\\prObliCycles,\\\\prObliPietons,\\\\prObliCavaliers,\\\\prObliVitesse,\\\\prObliChaines,\\\\prObliBus,\\\\prObliTrams,\\\\prFinInterd,\\\\prFinIntDepass,\\\\prFinIntDepassCam,\\\\prFinIntSons,\\\\prFinPisteOblCycl,\\\\prFinChemPiet,\\\\prFinChemCav,\\\\prFinVitObli,\\\\prFinChaines,\\\\prFinVoieBus,\\\\prParking,\\\\prParkDisq,\\\\prParkPay,\\\\prIncendie,\\\\prVitConseil,\\\\prFinVitConseil,\\\\prTaxis,\\\\prArretBus,\\\\prArretUrg,\\\\prCircSensUniq,\\\\prImpasse,\\\\prPreImpasse,\\\\prPriorSensInv,\\\\prPassPietons,\\\\prTravTrams,\\\\prStatCarav,\\\\prVoiesAffA,\\\\prVoiesAffB,\\\\prVoiesAffC,\\\\prVoiesAffD,\\\\prVoiesAffE,\\\\prVoiesAffF,\\\\prVitFront,\\\\prVitAutor,\\\\prDetresseD,\\\\prDetresseG,\\\\prChausseSur,\\\\prReducVoieA,\\\\prReducVoieB,\\\\prCreneauDepas,\\\\prFinCreneauDepas,\\\\prTickPeage,\\\\prPaiemPeage,\\\\prPaiemCB,\\\\prPaiemPieces,\\\\prPaiemPiecBil,\\\\prPaiemTelepeage,\\\\prRouteRegl,\\\\prFinRouteRegl,\\\\prEntrTunnel,\\\\prSortieTunnel,\\\\prPisteCycl,\\\\prFinPisteCycl,\\\\prVoieVerte,\\\\prFinVoieVerte,\\\\prDebAutor,\\\\prFinAutor,\\\\prPosteSecours,\\\\prPosteSecUrg,\\\\prCabineTel,\\\\prInfos,\\\\prCampingT,\\\\prCampingC,\\\\prCampingTC,\\\\prAubergJeun,\\\\prGite,\\\\prItinPedest,\\\\prItinSkiFond,\\\\prPicNic,\\\\prGareAutoTrain,\\\\prParkVideo,\\\\prEmbarcad,\\\\prToilettes,\\\\prAccesHandic,\\\\prEssence,\\\\prEssenceGPL,\\\\prRestau,\\\\prHotel,\\\\prBoissons,\\\\prEmbarcLeg,\\\\prTelepher,\\\\prTelecabin,\\\\prPointVue,\\\\prRadio,\\\\prJeuxEnfants,\\\\prVidange,\\\\prDistribBill,\\\\prGonflage,\\\\prDetente,\\\\prPosteDepann,\\\\prLutteIncendie,\\\\prIssueSecD,\\\\prIssueSecG,\\\\prFinLimVit,\\\\prLimVites\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/PapierGurvan.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ColGgurvan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PapierGurvan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PapierGurvan[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PapierGurvan,\\\\begin{EnvGurvan}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PapierGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"PapierGurvan[${1:clés%keyvals}]<${2:couleur}>\",\n        \"keys\": [\n          \"\\\\PapierGurvan,\\\\begin{EnvGurvan}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EcrireLigneGurvan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcrireLigneGurvan{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"EcrireLigneGurvan<alignement>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcrireLigneGurvan<alignement>{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"EcrireLigneGurvan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EcrireLigneGurvan[${2:clés%keyvals}]{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\EcrireLigneGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EcrireLigneGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"EcrireLigneGurvan[${2:clés%keyvals}]<${3:alignement}>{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\EcrireLigneGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PasseLigneGurvan\"\n    },\n    {\n      \"name\": \"LigneGurvan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LigneGurvan{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"LigneGurvan<alignement>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LigneGurvan<alignement>{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"LigneGurvan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LigneGurvan[${2:clés%keyvals}]{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\LigneGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LigneGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"LigneGurvan[${2:clés%keyvals}]<${3:alignement}>{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\LigneGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LigneGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"LigneGurvan[${2:clés%keyvals}]<${3:alignement}>(${4:ajustement}){${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\LigneGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagrapheGurvan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParagrapheGurvan{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"ParagrapheGurvan<alignement>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParagrapheGurvan<alignement>{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"ParagrapheGurvan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ParagrapheGurvan[${2:clés%keyvals}]{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\ParagrapheGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagrapheGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"ParagrapheGurvan[${2:clés%keyvals}]<${3:alignement}>{${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\ParagrapheGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagrapheGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"ParagrapheGurvan[${2:clés%keyvals}]<${3:alignement}>(${4:ajustement}){${1:texte%text}}\",\n        \"keys\": [\n          \"\\\\ParagrapheGurvan\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvGurvan\"\n    },\n    {\n      \"name\": \"EnvGurvan\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:couleur}>\"\n      }\n    },\n    {\n      \"name\": \"EnvGurvan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PapierGurvan,\\\\begin{EnvGurvan}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvGurvan\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:couleur}>\",\n        \"keys\": [\n          \"\\\\PapierGurvan,\\\\begin{EnvGurvan}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PleinePageGurvan\"\n    },\n    {\n      \"name\": \"PleinePageGurvan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PleinePageGurvan}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\PapierGurvan,\\\\begin{EnvGurvan}\": [\n      \"NbCarreaux=${1:nbCol}x${2:nbLig}\",\n      \"Unite=${1:nombre}\",\n      \"Marge=${1:nombre}\",\n      \"AffBarres\",\n      \"Interligne=${1:nombre}\",\n      \"CouleurBarre=\"\n    ],\n    \"\\\\EcrireLigneGurvan\": [\n      \"DecalH=${1:nombre}\",\n      \"DecalV=\",\n      \"Echelle=${1:nombre}\"\n    ],\n    \"\\\\begin{PleinePageGurvan}\": [\n      \"Interligne=${1:nombre}\",\n      \"Papier=${1|A4,A5|}\",\n      \"CoulLignes=\",\n      \"CoulFondClair=\",\n      \"CoulFondFonce=\",\n      \"Marges=${1:MargeGauche}/${2:MargeDroite}\",\n      \"NumLignes\"\n    ],\n    \"\\\\LigneGurvan\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"DecalBord=${1:nombre}\",\n      \"TaillePolice=${1:nombre}\"\n    ],\n    \"\\\\ParagrapheGurvan\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"DecalBord=${1:nombre}\",\n      \"Espacement=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/PixelArtTikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"csvsimple-l3\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PixelArtTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PixelArtTikz{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PixelArtTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PixelArtTikz[${2:clés%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PixelArtTikz\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"PixelArtTikz[${2:clés%keyvals}]<${3:TikZ options}>{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PixelArtTikz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PixelArtTikz*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PixelArtTikz*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PixelArtTikz*[${2:clés%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniPixelArt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MiniPixelArt{${1:liste des couleurs}}\"\n      }\n    },\n    {\n      \"name\": \"MiniPixelArt\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"MiniPixelArt{${1:liste des couleurs}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"MiniPixelArt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MiniPixelArt[${2:clés%keyvals}]{${1:liste des couleurs}}\",\n        \"keys\": [\n          \"\\\\MiniPixelArt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniPixelArt\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"MiniPixelArt[${2:clés%keyvals}]{${1:liste des couleurs}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\MiniPixelArt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PixlArtTikz{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PixlArtTikz[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"PixlArtTikz[${2:options%keyvals}]<${3:TikZ options}>{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PixlArtTikz*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PixlArtTikz*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PixlArtTikz*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PixlArtTikz*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniPixlArt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MiniPixlArt{${1:list of colors}}\"\n      }\n    },\n    {\n      \"name\": \"MiniPixlArt\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"MiniPixlArt{${1:list of colors}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"MiniPixlArt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MiniPixlArt[${2:options%keyvals}]{${1:list of colors}}\",\n        \"keys\": [\n          \"\\\\MiniPixlArt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniPixlArt\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"MiniPixlArt[${2:options%keyvals}]{${1:list of colors}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\MiniPixlArt\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvPixelArtTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"EnvPixelArtTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:clés%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvPixelArtTikz\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"[${2:clés%keyvals}]<${3:TikZ options}>{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvPixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"EnvPixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvPixlArtTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"[${2:options%keyvals}]<${3:TikZ options}>{${1:file}}\",\n        \"keys\": [\n          \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/PixelArtTikz#c\": [\n      \"csvii\"\n    ],\n    \"\\\\PixelArtTikz,\\\\PixelArtTikz*,\\\\begin{EnvPixelArtTikz}\": [\n      \"Codes=${1:chaîne}\",\n      \"Couleurs={${1:couleur1,couleur2,...}}\",\n      \"Symboles={${1:symbol1,symbol2,...}}\",\n      \"Correction\",\n      \"Symb\",\n      \"BordCases\",\n      \"Style=${1:font commands}\",\n      \"Unite=${1:nombre}\"\n    ],\n    \"\\\\MiniPixelArt\": [\n      \"Unite=\",\n      \"Bord\"\n    ],\n    \"\\\\PixlArtTikz,\\\\PixlArtTikz*,\\\\begin{EnvPixlArtTikz}\": [\n      \"Codes=${1:string}\",\n      \"Colors={${1:color1,color2,...}}\",\n      \"Symbols={${1:symbol1,symbol2,...}}\",\n      \"Correction\",\n      \"Symb\",\n      \"Border\",\n      \"Style=${1:font commands}\",\n      \"Unit=${1:number}\"\n    ],\n    \"\\\\MiniPixlArt\": [\n      \"Unit=\",\n      \"Border\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PixelArtTikz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Play.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/Play#c\": [\n      \"scale=${2|${1:factor},MatchLowercase|}\",\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/Play#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PlayfairDisplay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"playfair\"\n    },\n    {\n      \"name\": \"playfairblack\"\n    },\n    {\n      \"name\": \"playfairOsF\"\n    },\n    {\n      \"name\": \"playfairLF\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"playfairfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PlayfairDisplay#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"black\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PlayfairDisplay#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/PoiretOne.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"poiretone\"\n    },\n    {\n      \"name\": \"poiretonefamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/PoiretOne#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/PoiretOne#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ProfCollege.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"modulus\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luamplib\"\n    },\n    {\n      \"name\": \"luacas\"\n    },\n    {\n      \"name\": \"gmp\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"xlop\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryraster\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"hhline\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"nicematrix\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"printlen\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Lg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lg{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Lg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lg[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Lg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lg*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Lg*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lg*[${2:unité,clés%keyvals}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Aire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aire{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Aire\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aire[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aire*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aire*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Aire*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aire*[${2:unité,clés%keyvals}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Vol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vol{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Vol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vol[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vol*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Vol*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vol*[${2:unité,clés%keyvals}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Masse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Masse{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Masse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Masse[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Masse*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Masse*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Masse*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Masse*[${2:unité,clés%keyvals}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Capa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Capa{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Capa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Capa[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Capa*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Capa*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Capa*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Capa*[${2:unité,clés%keyvals}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Temps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Temps{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Temps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Temps[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MasseVol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MasseVol{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"MasseVol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MasseVol[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vitesse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vitesse{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Vitesse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vitesse[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Octet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Octet{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Octet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Octet[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Conso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Conso{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Conso\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Conso[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Prix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Prix{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Prix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Prix[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Temp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Temp{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Temp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Temp[${2:unité,clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RepresenterEntier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RepresenterEntier{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"RepresenterEntier\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RepresenterEntier[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\RepresenterEntier\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DecompositionDecimale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DecompositionDecimale{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"DecompositionDecimale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DecompositionDecimale[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\DecompositionDecimale\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ecriture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ecriture{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Ecriture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ecriture[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Ecriture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Frise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Frise{1/A/a,2/B/b,3/C/c,...}\"\n      }\n    },\n    {\n      \"name\": \"Frise\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Frise[${1:clés%keyvals}]{1/A/a,2/B/b,3/C/c,...}\",\n        \"keys\": [\n          \"\\\\Frise\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tables\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tables{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Tables\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tables[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\Tables\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Papiers\"\n    },\n    {\n      \"name\": \"Papiers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Papiers[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Papiers\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tableau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tableau{${1:liste de nombres}}\"\n      }\n    },\n    {\n      \"name\": \"Tableau\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tableau[${2:clés%keyvals}]{${1:liste de nombres}}\",\n        \"keys\": [\n          \"\\\\Tableau,\\\\GlisseNombre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlisseNombre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlisseNombre{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"GlisseNombre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlisseNombre[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\Tableau,\\\\GlisseNombre\",\n          \"\\\\GlisseNombre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PfCCG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCDG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCUG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCCM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCDM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCCm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCDm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCUm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Relie{${1:Liste des éléments par ligne}}\"\n      }\n    },\n    {\n      \"name\": \"Relie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Relie[${2:clés%keyvals}]{${1:Liste des éléments par ligne}}\",\n        \"keys\": [\n          \"\\\\Relie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QCM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QCM{${1:questions%text}}\"\n      }\n    },\n    {\n      \"name\": \"QCM\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"QCM[${2:clés%keyvals}]{${1:questions%text}}\",\n        \"keys\": [\n          \"\\\\QCM\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QFlash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QFlash{${1:question/param1/param2/...%text}}\"\n      }\n    },\n    {\n      \"name\": \"QFlash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"QFlash[${2:clés%keyvals}]{${1:question/param1/param2/...%text}}\",\n        \"keys\": [\n          \"\\\\QFlash\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BoiteFlash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BoiteFlash{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"BoiteFlash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BoiteFlash[${2:length}]{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rapido\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rapido{${1:q1/r1§q2/r2§...%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rapido\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rapido[${2:clés%keyvals}]{${1:q1/r1§q2/r2§...%text}}\",\n        \"keys\": [\n          \"\\\\Rapido\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BoiteRapido\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BoiteRapido{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cible{${1:n1,n2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Cible\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cible[${2:clés%keyvals}]{${1:n1,n2,...}}\",\n        \"keys\": [\n          \"\\\\Cible\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mentalo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mentalo{${1:o1,o2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Mentalo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mentalo[${2:clés%keyvals}]{${1:o1,o2,...}}\",\n        \"keys\": [\n          \"\\\\Mentalo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Automatismes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Automatismes{${1:o1,o2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Automatismes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Automatismes[${2:clés%keyvals}]{${1:o1,o2,...}}\",\n        \"keys\": [\n          \"\\\\Automatismes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PyraVoca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PyraVoca{${1:définition1/mot1/couleur1,...}}\"\n      }\n    },\n    {\n      \"name\": \"PyraVoca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PyraVoca[${2:clés%keyvals}]{${1:définition1/mot1/couleur1,...}}\",\n        \"keys\": [\n          \"\\\\PyraVoca\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CourseNombre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CourseNombre{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CourseNombre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CourseNombre[${2:clés%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\CourseNombre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChoixAlea\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ChoixAlea{${1:a}}{${2:b}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ChoixAlea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ChoixAlea[${4:p}]{${1:a}}{${2:b}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VariableAlea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VariableAlea{${1:cmd}}{${2:fp expression}}\"\n      }\n    },\n    {\n      \"name\": \"MathAlea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathAlea{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"MathAlea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MathAlea[${2:clés%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CourseNombreTotalQuestions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CourseNombreTotalQuestions{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Autonomie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Autonomie{${1:q1/r1§q2/r2§...§q8/r8%text}}{${2:Q1/I1§Q2/I2§...§Q8/I8%text}}\"\n      }\n    },\n    {\n      \"name\": \"Autonomie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Autonomie[${3:clés%keyvals}]{${1:q1/r1§q2/r2§...§q8/r8%text}}{${2:Q1/I1§Q2/I2§...§Q8/I8%text}}\",\n        \"keys\": [\n          \"\\\\Autonomie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FicheMemo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FicheMemo{${1:l1/q1/r1§l2/q2/r2§...%text}}{${2:L1/Q1/R1§L2/Q2/I2§...%text}}\"\n      }\n    },\n    {\n      \"name\": \"FicheMemo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FicheMemo[${3:clés%keyvals}]{${1:l1/q1/r1§l2/q2/r2§...%text}}{${2:L1/Q1/R1§L2/Q2/I2§...%text}}\",\n        \"keys\": [\n          \"\\\\FicheMemo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BonSortie\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BonSortie{${1:énoncé1%text}}{${2:énoncé2%text}}{${3:énoncé3%text}}{${4:énoncé4%text}}\"\n      }\n    },\n    {\n      \"name\": \"BonSortie\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BonSortie[${5:clés%keyvals}]{${1:énoncé1%text}}{${2:énoncé2%text}}{${3:énoncé3%text}}{${4:énoncé4%text}}\",\n        \"keys\": [\n          \"\\\\BonSortie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Solide\"\n    },\n    {\n      \"name\": \"Solide\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Solide[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Solide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Patron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Patron{${1:description du patron}}\"\n      }\n    },\n    {\n      \"name\": \"Patron\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Patron[${2:clés%keyvals}]{${1:description du patron}}\",\n        \"keys\": [\n          \"\\\\Patron\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProprieteDroites\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProprieteDroites{${1:a%formula}}{${2:b%formula}}{${3:c%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ProprieteDroites\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProprieteDroites[${4:clés%keyvals}]{${1:a%formula}}{${2:b%formula}}{${3:c%formula}}\",\n        \"keys\": [\n          \"\\\\ProprieteDroites\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Reperage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reperage{${1:Liste des éléments}}\"\n      }\n    },\n    {\n      \"name\": \"Reperage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Reperage[${2:clés%keyvals}]{${1:Liste des éléments}}\",\n        \"keys\": [\n          \"\\\\Reperage,\\\\ReperageMulti,\\\\ReperageZoom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ReperageMulti\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReperageMulti{${1:Liste des éléments}}\"\n      }\n    },\n    {\n      \"name\": \"ReperageMulti\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReperageMulti[${2:clés%keyvals}]{${1:Liste des éléments}}\",\n        \"keys\": [\n          \"\\\\Reperage,\\\\ReperageMulti,\\\\ReperageZoom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ReperageZoom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReperageZoom{${1:élément}}\"\n      }\n    },\n    {\n      \"name\": \"ReperageZoom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReperageZoom[${2:clés%keyvals}]{${1:élément}}\",\n        \"keys\": [\n          \"\\\\Reperage,\\\\ReperageMulti,\\\\ReperageZoom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SommeAngles\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SommeAngles{${1:Nom du triangle}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"SommeAngles\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SommeAngles[${4:clés%keyvals}]{${1:Nom du triangle}}{${2:a}}{${3:b}}\",\n        \"keys\": [\n          \"\\\\SommeAngles\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultatAngle\"\n    },\n    {\n      \"name\": \"Pythagore\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Pythagore{${1:Nom du triangle}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"Pythagore\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Pythagore[${5:clés%keyvals}]{${1:Nom du triangle}}{${2:a}}{${3:b}}{${4:c}}\",\n        \"keys\": [\n          \"\\\\Pythagore\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultatPytha\"\n    },\n    {\n      \"name\": \"RedactionCalculsPythagore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedactionCalculsReciPythagore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedactionConclusionReciPythagore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedactionPythagore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedactionReciPythagore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thales\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Thales{${1:Nom des points considérés}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}{${6:e}}{${7:f}}\"\n      }\n    },\n    {\n      \"name\": \"Thales\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Thales[${8:clés%keyvals}]{${1:Nom des points considérés}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}{${6:e}}{${7:f}}\",\n        \"keys\": [\n          \"\\\\Thales\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultatThalesx\"\n    },\n    {\n      \"name\": \"ResultatThalesy\"\n    },\n    {\n      \"name\": \"ResultatThalesz\"\n    },\n    {\n      \"name\": \"Trigo\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Trigo{${1:Nom du triangle}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"Trigo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Trigo[${5:clés%keyvals}]{${1:Nom du triangle}}{${2:a}}{${3:b}}{${4:c}}\",\n        \"keys\": [\n          \"\\\\Trigo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultatTrigo\"\n    },\n    {\n      \"name\": \"Cartographie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cartographie{${1:longitude}}{${2:latitude}}\"\n      }\n    },\n    {\n      \"name\": \"Cartographie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Cartographie[${3:clés%keyvals}]{${1:longitude}}{${2:latitude}}\",\n        \"keys\": [\n          \"\\\\Cartographie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Formule\"\n    },\n    {\n      \"name\": \"Formule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Formule[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Formule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VueCubes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VueCubes{${1:liste de hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"VueCubes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VueCubes[${2:clés%keyvals}]{${1:liste de hauteurs}}\",\n        \"keys\": [\n          \"\\\\VueCubes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pavage\"\n    },\n    {\n      \"name\": \"Pavage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pavage[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Pavage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Addition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Addition{${1:n1}}{${2:n2}}\"\n      }\n    },\n    {\n      \"name\": \"Addition\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Addition[${3:clés%keyvals}]{${1:n1}}{${2:n2}}\",\n        \"keys\": [\n          \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Soustraction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Soustraction{${1:n1}}{${2:n2}}\"\n      }\n    },\n    {\n      \"name\": \"Soustraction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Soustraction[${3:clés%keyvals}]{${1:n1}}{${2:n2}}\",\n        \"keys\": [\n          \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Multiplication\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Multiplication{${1:n1}}{${2:n2}}\"\n      }\n    },\n    {\n      \"name\": \"Multiplication\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Multiplication[${3:clés%keyvals}]{${1:n1}}{${2:n2}}\",\n        \"keys\": [\n          \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Division\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Division{${1:n1}}{${2:n2}}\"\n      }\n    },\n    {\n      \"name\": \"Division\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Division[${3:clés%keyvals}]{${1:n1}}{${2:n2}}\",\n        \"keys\": [\n          \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DivisionD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DivisionD{${1:n1}}{${2:n2}}\"\n      }\n    },\n    {\n      \"name\": \"DivisionD\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DivisionD[${3:clés%keyvals}]{${1:n1}}{${2:n2}}\",\n        \"keys\": [\n          \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PyramideNombre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PyramideNombre{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"PyramideNombre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PyramideNombre[${2:clés%keyvals}]{${1:c1,c2,...}}\",\n        \"keys\": [\n          \"\\\\PyramideNombre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProgCalcul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgCalcul{${1:i1,i2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ProgCalcul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProgCalcul[${2:clés%keyvals}]{${1:i1,i2,...%formula}}\",\n        \"keys\": [\n          \"\\\\ProgCalcul\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Decomposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Decomposition{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Decomposition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Decomposition[${2:clés%keyvals}]{${1:integer}}\",\n        \"keys\": [\n          \"\\\\Decomposition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Erathostene\"\n    },\n    {\n      \"name\": \"Erathostene\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Erathostene[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Erathostene\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Engrenages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Engrenages{${1:m1/z1,m2/z2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Engrenages\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Engrenages[${2:clés%keyvals}]{${1:m1/z1,m2/z2,...}}\",\n        \"keys\": [\n          \"\\\\Engrenages\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fraction{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"Fraction\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fraction[${2:clés%keyvals}]{${1:a/b}}\",\n        \"keys\": [\n          \"\\\\Fraction\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FractionDecimale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FractionDecimale{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"FractionDecimale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FractionDecimale[${2:clés%keyvals}]{${1:a/b}}\",\n        \"keys\": [\n          \"\\\\FractionDecimale\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Simplification\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Simplification{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"Simplification\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Simplification[${3:clés%keyvals}]{${1:a}}{${2:b}}\",\n        \"keys\": [\n          \"\\\\Simplification\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddFraction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddFraction{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"AddFraction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddFraction[${3:clés%keyvals}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"AddFraction\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"AddFraction[${3:clés%keyvals}][${4:etape}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"SousFraction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SousFraction{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"SousFraction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SousFraction[${3:clés%keyvals}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"SousFraction\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"SousFraction[${3:clés%keyvals}][${4:etape}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"MulFraction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MulFraction{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"MulFraction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MulFraction[${3:clés%keyvals}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"MulFraction\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"MulFraction[${3:clés%keyvals}][${4:etape}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"DivFraction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DivFraction{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"DivFraction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DivFraction[${3:clés%keyvals}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"DivFraction\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"DivFraction[${3:clés%keyvals}][${4:etape}]{${1:a/b}}{${2:c/d}}\"\n      }\n    },\n    {\n      \"name\": \"Rangement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rangement{${1:liste de nombres}}\"\n      }\n    },\n    {\n      \"name\": \"Rangement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rangement[${2:clés%keyvals}]{${1:liste de nombres}}\",\n        \"keys\": [\n          \"\\\\Rangement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Puissances\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Puissances{${1:expr%formula}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Propor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Propor{${1:Liste des éléments par colonne}}\"\n      }\n    },\n    {\n      \"name\": \"Propor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Propor[${2:clés%keyvals}]{${1:Liste des éléments par colonne}}\",\n        \"keys\": [\n          \"\\\\Propor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FlechesPH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FlechesPH{${1:a}}{${2:b}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlechesPB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FlechesPB{${1:a}}{${2:b}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlechesPG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FlechesPG{${1:a}}{${2:b}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlechesPD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FlechesPD{${1:a}}{${2:b}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheCoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FlecheCoef{${1:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheCoefDebut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FlecheCoefDebut{${1:texte}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheLineaireH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FlecheLineaireH{${1:a}}{${2:b}}{${3:c}}{${4:opération}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheLineaireB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FlecheLineaireB{${1:a}}{${2:b}}{${3:c}}{${4:opération}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheLineaireG\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FlecheLineaireG{${1:a}}{${2:b}}{${3:c}}{${4:opération}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheLineaireD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FlecheLineaireD{${1:a}}{${2:b}}{${3:c}}{${4:opération}}\"\n      }\n    },\n    {\n      \"name\": \"FlechePCG\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FlechePCG{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"FlechePCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FlechePCD{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"FlechePCH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FlechePCH{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"FlechePCB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FlechePCB{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"Pourcentage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pourcentage{${1:t}}{${2:q}}\"\n      }\n    },\n    {\n      \"name\": \"Pourcentage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Pourcentage[${3:clés%keyvals}]{${1:t}}{${2:q}}\",\n        \"keys\": [\n          \"\\\\Pourcentage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultatPourcentage\"\n    },\n    {\n      \"name\": \"Ratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ratio{${1:Liste des éléments du ratio}}\"\n      }\n    },\n    {\n      \"name\": \"Ratio\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ratio[${2:clés%keyvals}]{${1:Liste des éléments du ratio}}\",\n        \"keys\": [\n          \"\\\\Ratio\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FlecheRatio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FlecheRatio{${1:texte%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FlecheInvRatio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FlecheInvRatio{${1:texte%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Stat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Stat{${1:Données}}\"\n      }\n    },\n    {\n      \"name\": \"Stat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Stat[${2:clés%keyvals}]{${1:Données}}\",\n        \"keys\": [\n          \"\\\\Stat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EffectifTotal\"\n    },\n    {\n      \"name\": \"Etendue\"\n    },\n    {\n      \"name\": \"Moyenne\"\n    },\n    {\n      \"name\": \"Mediane\"\n    },\n    {\n      \"name\": \"QuartileUn\"\n    },\n    {\n      \"name\": \"QuartileTrois\"\n    },\n    {\n      \"name\": \"Proba\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Proba{${1:Liste des évènements et probabilités}}\"\n      }\n    },\n    {\n      \"name\": \"Proba\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Proba[${2:clés%keyvals}]{${1:Liste des évènements et probabilités}}\",\n        \"keys\": [\n          \"\\\\Proba\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FonctionAffine\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"FonctionAffine{${1:Noms des points considérés}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\"\n      }\n    },\n    {\n      \"name\": \"FonctionAffine\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"FonctionAffine[${6:clés%keyvals}]{${1:Noms des points considérés}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\",\n        \"keys\": [\n          \"\\\\FonctionAffine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fonction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fonction{${1:Liste des valeurs}}\"\n      }\n    },\n    {\n      \"name\": \"Fonction\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fonction[${2:clés%keyvals}]{${1:Liste des valeurs}}\",\n        \"keys\": [\n          \"\\\\Fonction\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LectureGraphique\"\n    },\n    {\n      \"name\": \"LectureGraphique\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LectureGraphique[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\LectureGraphique\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Distri\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Distri{${1:a}}{${2:b}}{${3:c}}{${4:d}}\"\n      }\n    },\n    {\n      \"name\": \"Distri\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Distri[${5:clés%keyvals}]{${1:a}}{${2:b}}{${3:c}}{${4:d}}\",\n        \"keys\": [\n          \"\\\\Distri\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Resultat\"\n    },\n    {\n      \"name\": \"Factorisation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Factorisation{${1:f1}}{${2:f2}}{${3:f3}}\"\n      }\n    },\n    {\n      \"name\": \"Factorisation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Factorisation[${4:clés%keyvals}]{${1:f1}}{${2:f2}}{${3:f3}}\",\n        \"keys\": [\n          \"\\\\Factorisation,\\\\Factorisation*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Factorisation*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Factorisation*{${1:f1}}{${2:f2}}{${3:f3}}\"\n      }\n    },\n    {\n      \"name\": \"Factorisation*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Factorisation*[${4:clés%keyvals}]{${1:f1}}{${2:f2}}{${3:f3}}\",\n        \"keys\": [\n          \"\\\\Factorisation,\\\\Factorisation*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ModeleBarre\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ModeleBarre{${1:C1 N1 \\\"T1\\\" C2 N2 \\\"T2\\\"...}}{${2:c1 n1 \\\"t1\\\" c2 n2 \\\"t2\\\"...}}\"\n      }\n    },\n    {\n      \"name\": \"ModeleBarre\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ModeleBarre[${3:clés%keyvals}]{${1:C1 N1 \\\"T1\\\" C2 N2 \\\"T2\\\"...}}{${2:c1 n1 \\\"t1\\\" c2 n2 \\\"t2\\\"...}}\",\n        \"keys\": [\n          \"\\\\ModeleBarre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResolEquation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ResolEquation{${1:a}}{${2:b}}{${3:c}}{${4:d}}\"\n      }\n    },\n    {\n      \"name\": \"ResolEquation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ResolEquation[${5:clés%keyvals}]{${1:a}}{${2:b}}{${3:c}}{${4:d}}\",\n        \"keys\": [\n          \"\\\\ResolEquation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"leftcomment{${1:A-8}}{${2:B-8}}{${3:A-8}}{${4:\\\\dots}}\"\n      }\n    },\n    {\n      \"name\": \"rightcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rightcomment{${1:E-8}}{${2:F-8}}{${3:E-8}}{${4:\\\\dots}}\"\n      }\n    },\n    {\n      \"name\": \"Calculatrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Calculatrice{${1:val1/val2/...}}\"\n      }\n    },\n    {\n      \"name\": \"Calculatrice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Calculatrice[${2:clés%keyvals}]{${1:val1/val2/...}}\",\n        \"keys\": [\n          \"\\\\Calculatrice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodageRLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CodageRLE{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"CodageRLE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CodageRLE[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\CodageRLE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tortue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tortue{${1:liste des commandes}}\"\n      }\n    },\n    {\n      \"name\": \"Tortue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tortue[${2:clés%keyvals}]{${1:liste des commandes}}\",\n        \"keys\": [\n          \"\\\\Tortue\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RoseMul\"\n    },\n    {\n      \"name\": \"RoseMul\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RoseMul[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\RoseMul\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefiTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefiTable{${1:contenu}}\"\n      }\n    },\n    {\n      \"name\": \"DefiTableTexte\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefiTableTexte{${1:liste}}{${2:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"DefiTableTexte\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DefiTableTexte[${3:clés%keyvals}]{${1:liste}}{${2:phrase}}\",\n        \"keys\": [\n          \"\\\\DefiTableTexte\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefiRangement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefiRangement{${1:phrase à décoder}}{${2:valeurs à ranger}}\"\n      }\n    },\n    {\n      \"name\": \"DefiRangement\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DefiRangement[${3:clés%keyvals}]{${1:phrase à décoder}}{${2:valeurs à ranger}}\",\n        \"keys\": [\n          \"\\\\DefiRangement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Billard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Billard{${1:\\\"mot\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"Billard\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Billard[${2:clés%keyvals}]{${1:\\\"mot\\\"}}\",\n        \"keys\": [\n          \"\\\\Billard\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Labyrinthe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Labyrinthe{${1:Contenu1/Couleur1,Contenu2/Couleur2,...}}{${2:P1/P2/...}}\"\n      }\n    },\n    {\n      \"name\": \"Labyrinthe\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Labyrinthe[${3:clés%keyvals}]{${1:Contenu1/Couleur1,Contenu2/Couleur2,...}}{${2:P1/P2/...}}\",\n        \"keys\": [\n          \"\\\\Labyrinthe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LabyNombre\"\n    },\n    {\n      \"name\": \"LabyNombre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LabyNombre[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\LabyNombre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Triomino\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Triomino{${1:v1§v2§v3...}}\"\n      }\n    },\n    {\n      \"name\": \"Triomino\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Triomino[${2:clés%keyvals}]{${1:v1§v2§v3...}}\",\n        \"keys\": [\n          \"\\\\Triomino\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DessinGradue\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DessinGradue{${1:a1/a2/a3,...}}{${2:b1/b2/b3,...}}{${3:c1§c2§...}}\"\n      }\n    },\n    {\n      \"name\": \"DessinGradue\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DessinGradue[${4:clés%keyvals}]{${1:a1/a2/a3,...}}{${2:b1/b2/b3,...}}{${3:c1§c2§...}}\",\n        \"keys\": [\n          \"\\\\DessinGradue\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Colorilude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Colorilude{${1:a11 b11 a12 b12\\\\\\\\a21 b21...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Colorilude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Colorilude[${2:clés%keyvals}]{${1:a11 b11 a12 b12\\\\\\\\a21 b21...%formula}}\",\n        \"keys\": [\n          \"\\\\Colorilude\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ColoriludeEnonce\"\n    },\n    {\n      \"name\": \"ColoriludeListeCouleur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ColoriludeListeCouleur{${1:abbrev1 couleur1 abbrev2 couleur2...}}\"\n      }\n    },\n    {\n      \"name\": \"PixelArt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PixelArt{${1:.csv file%file}}\"\n      }\n    },\n    {\n      \"name\": \"PixelArt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PixelArt[${2:clés%keyvals}]{${1:.csv file%file}}\",\n        \"keys\": [\n          \"\\\\PixelArt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableauMultiplicatif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TableauMultiplicatif{${1:description du pixel-art}}\"\n      }\n    },\n    {\n      \"name\": \"TableauMultiplicatif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TableauMultiplicatif[${2:clés%keyvals}]{${1:description du pixel-art}}\",\n        \"keys\": [\n          \"\\\\TableauMultiplicatif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Quisuisje\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Quisuisje{${1:c1§c2§...}}{${2:m o t à t r o u v e r}}\"\n      }\n    },\n    {\n      \"name\": \"Quisuisje\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Quisuisje[${3:clés%keyvals}]{${1:c1§c2§...}}{${2:m o t à t r o u v e r}}\",\n        \"keys\": [\n          \"\\\\Quisuisje\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QuisuisjeEnonce\"\n    },\n    {\n      \"name\": \"QuisuisjeTableau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuisuisjeTableau{${1:l1/v1§l2/v2§...}}\"\n      }\n    },\n    {\n      \"name\": \"QuisuisjeTableau\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"QuisuisjeTableau[${2:Largeur=${3}}]{${1:l1/v1§l2/v2§...}}\"\n      }\n    },\n    {\n      \"name\": \"QuisuisjeCodePerso\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"QuisuisjeCodePerso{${1:n1 n2...}}{${2:l1 l2...}}\"\n      }\n    },\n    {\n      \"name\": \"QuisuisjeCodePerso\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"QuisuisjeCodePerso[${3:Solution}]{${1:n1 n2...}}{${2:l1 l2...}}\"\n      }\n    },\n    {\n      \"name\": \"MotsEmpiles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MotsEmpiles{${1:c1/mot1,c2/mot2,...}}\"\n      }\n    },\n    {\n      \"name\": \"MotsEmpiles\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MotsEmpiles[${2:clés%keyvals}]{${1:c1/mot1,c2/mot2,...}}\",\n        \"keys\": [\n          \"\\\\MotsEmpiles\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MotsCroises\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MotsCroises{${1:m11/q11,m12/q12...§m21/q21,m22/q22...}}\"\n      }\n    },\n    {\n      \"name\": \"MotsCroises\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MotsCroises[${2:clés%keyvals}]{${1:m11/q11,m12/q12...§m21/q21,m22/q22...}}\",\n        \"keys\": [\n          \"\\\\MotsCroises\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MotsCodes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MotsCodes{${1:énoncé1/lettre1§énoncé2/lettre2§...}}\"\n      }\n    },\n    {\n      \"name\": \"MotsCodes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MotsCodes[${2:clés%keyvals}]{${1:énoncé1/lettre1§énoncé2/lettre2§...}}\",\n        \"keys\": [\n          \"\\\\MotsCodes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MotsCodesTableau\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MotsCodesTableau{${1:r11/r12...,r21/r22...}}{${2:texte à trouver}}\"\n      }\n    },\n    {\n      \"name\": \"MotsCodesTableau\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MotsCodesTableau[${3:clés%keyvals}]{${1:r11/r12...,r21/r22...}}{${2:texte à trouver}}\",\n        \"keys\": [\n          \"\\\\MotsCodesTableau\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mosaique\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mosaique{${1:mosa1/rep1,mosa2/rep2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Mosaique\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mosaique[${2:clés%keyvals}]{${1:mosa1/rep1,mosa2/rep2,...}}\",\n        \"keys\": [\n          \"\\\\Mosaique\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DessineMosaique\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DessineMosaique{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"DessineMosaique\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DessineMosaique[${2:clés%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\DessineMosaique\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cartes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cartes{${1:contenus du jeu%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cartes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cartes[${2:clés%keyvals}]{${1:contenus du jeu%text}}\",\n        \"keys\": [\n          \"\\\\Cartes,\\\\BoiteCartes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BoiteCartes\"\n    },\n    {\n      \"name\": \"BoiteCartes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BoiteCartes[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Cartes,\\\\BoiteCartes\",\n          \"\\\\BoiteCartes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionCarte\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SolutionCarte{${1:solution}}{${2:commentaires%text}}\"\n      }\n    },\n    {\n      \"name\": \"PfCTexteJai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCTexteJesuis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCTexteQuia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCCardsEcartH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfCCardsEcartV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dominos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dominos{${1:e q1/r1§q2/r2§...}}\"\n      }\n    },\n    {\n      \"name\": \"Dominos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dominos[${2:clés%keyvals}]{${1:e q1/r1§q2/r2§...}}\",\n        \"keys\": [\n          \"\\\\Dominos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Enquete\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Enquete[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Enquete\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ListePersonnages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListePersonnages{${1:p1§p2§...}}\"\n      }\n    },\n    {\n      \"name\": \"ListeObjets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeObjets{${1:o1§o2§...}}\"\n      }\n    },\n    {\n      \"name\": \"ListeLieux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeLieux{${1:l1§l2§...}}\"\n      }\n    },\n    {\n      \"name\": \"ListeQuestions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeQuestions{${1:e1/r1§e2/r2§...}}\"\n      }\n    },\n    {\n      \"name\": \"AffichageQuestions\"\n    },\n    {\n      \"name\": \"AffichageTableau\"\n    },\n    {\n      \"name\": \"PQuatre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PQuatre{${1:éléments du tableau}}\"\n      }\n    },\n    {\n      \"name\": \"PQuatre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PQuatre[${2:clés%keyvals}]{${1:éléments du tableau}}\",\n        \"keys\": [\n          \"\\\\PQuatre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Yohaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yohaku{${1:a/b/c/d...,1/2/3/4...}}\"\n      }\n    },\n    {\n      \"name\": \"Yohaku\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Yohaku[${2:clés%keyvals}]{${1:a/b/c/d...,1/2/3/4...}}\",\n        \"keys\": [\n          \"\\\\Yohaku\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PfCYHKpremier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KenKen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KenKen{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"KenKen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KenKen[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\KenKen\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Kakuro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kakuro{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Kakuro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Kakuro[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\Kakuro\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Shikaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shikaku{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Shikaku\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shikaku[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\Shikaku\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculsCroises\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculsCroises{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"CalculsCroises\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CalculsCroises[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\CalculsCroises\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NombreAstral\"\n    },\n    {\n      \"name\": \"NombreAstral\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NombreAstral[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\NombreAstral\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CompteBon\"\n    },\n    {\n      \"name\": \"CompteBon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CompteBon[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\CompteBon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BarresCalculs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BarresCalculs{${1:liste des calculs}}{${2:mot clé}}\"\n      }\n    },\n    {\n      \"name\": \"BarresCalculs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BarresCalculs[${3:clés%keyvals}]{${1:liste des calculs}}{${2:mot clé}}\",\n        \"keys\": [\n          \"\\\\BarresCalculs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnigmeAire\"\n    },\n    {\n      \"name\": \"EnigmeAire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EnigmeAire[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\EnigmeAire\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tectonic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tectonic{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Tectonic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tectonic[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\Tectonic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Calisson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Calisson{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Calisson\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Calisson[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\Calisson\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PuzzlePyramide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PuzzlePyramide{${1:c1§c2§...}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzlePyramide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PuzzlePyramide[${2:clés%keyvals}]{${1:c1§c2§...}}\",\n        \"keys\": [\n          \"\\\\PuzzlePyramide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MessageCache\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MessageCache{${1:q1/r1§q2/r2§...}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"MessageCache\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MessageCache[${3:clés%keyvals}]{${1:q1/r1§q2/r2§...}}{${2:message%text}}\",\n        \"keys\": [\n          \"\\\\MessageCache\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RondeInfernale\"\n    },\n    {\n      \"name\": \"RondeInfernale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RondeInfernale[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\RondeInfernale\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Futoshiki\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Futoshiki{${1:description de jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Futoshiki\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Futoshiki[${2:clés%keyvals}]{${1:description de jeu}}\",\n        \"keys\": [\n          \"\\\\Futoshiki\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Garam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Garam{${1:c11/o11/O11,c12/o12/O12,...}}\"\n      }\n    },\n    {\n      \"name\": \"Garam\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Garam[${2:clés%keyvals}]{${1:c11/o11/O11,c12/o12/O12,...}}\",\n        \"keys\": [\n          \"\\\\Garam\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SquarO\"\n    },\n    {\n      \"name\": \"SquarO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SquarO[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\SquarO\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Grades\"\n    },\n    {\n      \"name\": \"Grades\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Grades[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Grades\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MidPoint\"\n    },\n    {\n      \"name\": \"MidPoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MidPoint[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\MidPoint\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Kakurasu\"\n    },\n    {\n      \"name\": \"Kakurasu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Kakurasu[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Kakurasu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Trio\"\n    },\n    {\n      \"name\": \"Trio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Trio[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Trio,TrioCourt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TrioCourt\"\n    },\n    {\n      \"name\": \"TrioCourt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TrioCourt[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\Trio,TrioCourt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Nonogramme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nonogramme{${1:liste de lignes}}\"\n      }\n    },\n    {\n      \"name\": \"Nonogramme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Nonogramme[${2:clés%keyvals}]{${1:liste de lignes}}\",\n        \"keys\": [\n          \"\\\\Nonogramme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Dobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dobble{${1:liste des symboles}}\"\n      }\n    },\n    {\n      \"name\": \"Dobble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dobble[${2:clés%keyvals}]{${1:liste des symboles}}\",\n        \"keys\": [\n          \"\\\\Dobble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NumberHive\"\n    },\n    {\n      \"name\": \"NumberHive\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NumberHive[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\NumberHive\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Grimuku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Grimuku{${1:description du jeu}}\"\n      }\n    },\n    {\n      \"name\": \"Grimuku\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Grimuku[${2:clés%keyvals}]{${1:description du jeu}}\",\n        \"keys\": [\n          \"\\\\Grimuku\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PuzzleMul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PuzzleMul{${1:liste des lignes}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleMul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PuzzleMul[${2:clés%keyvals}]{${1:liste des lignes}}\",\n        \"keys\": [\n          \"\\\\PuzzleMul\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Horloge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Horloge{${1:horaire}}\"\n      }\n    },\n    {\n      \"name\": \"Horloge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Horloge[${2:clés%keyvals}]{${1:horaire}}\",\n        \"keys\": [\n          \"\\\\Horloge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefiCalculatrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefiCalculatrice{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"DefiCalculatrice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefiCalculatrice[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\DefiCalculatrice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Radar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Radar{${1:Liste des éléments du diagramme en radar}}\"\n      }\n    },\n    {\n      \"name\": \"Radar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Radar[${2:clés%keyvals}]{${1:Liste des éléments du diagramme en radar}}\",\n        \"keys\": [\n          \"\\\\Radar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Jauge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Jauge{${1:Niveau atteint en pourcentage}}\"\n      }\n    },\n    {\n      \"name\": \"Jauge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Jauge[${2:clés%keyvals}]{${1:Niveau atteint en pourcentage}}\",\n        \"keys\": [\n          \"\\\\Jauge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Demain\"\n    },\n    {\n      \"name\": \"pointilles\"\n    },\n    {\n      \"name\": \"pointilles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pointilles[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"Lignespointilles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lignespointilles{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"MultiCol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MultiCol{${1:l1/l2/...}}{${2:contenu1§contenu2§...%text}}\"\n      }\n    },\n    {\n      \"name\": \"MultiCol\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MultiCol[${3:t|b}]{${1:l1/l2/...}}{${2:contenu1§contenu2§...%text}}\"\n      }\n    },\n    {\n      \"name\": \"annee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"are\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BonSortieSmiley\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emoticon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emoticon[${2:TikZ keys}]{${1:draw code}}\"\n      }\n    },\n    {\n      \"name\": \"emoticon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emoticon{${1:draw code}}\"\n      }\n    },\n    {\n      \"name\": \"EuRo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fahrenheit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HauteurFlash\"\n    },\n    {\n      \"name\": \"jour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kmh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"leftcomment{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Logo{${1:scale}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LogoTW\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LogoTW{${1:scale}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"mois\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"octet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pupils\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quintal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rightcomment{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"RKalmostcrying\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKangry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKbigsmile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKblush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKconfused\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKdevilish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKlookdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKlookleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKlookright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKlookup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKmartian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKneutral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKsad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKsexy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKsmallsmile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RKsmile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Speed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Speed{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"speed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speed{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"Dollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LivreSterling\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Geometrie\"\n    },\n    {\n      \"name\": \"Geometrie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Geometrie}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tableur\"\n    },\n    {\n      \"name\": \"Tableur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Tableur}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Scratch\"\n    },\n    {\n      \"name\": \"Scratch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Scratch}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mind\"\n    },\n    {\n      \"name\": \"Bulle\"\n    },\n    {\n      \"name\": \"Bulle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bulle}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Twitter\"\n    },\n    {\n      \"name\": \"Twitter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Twitter}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Facebook\"\n    },\n    {\n      \"name\": \"Facebook\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Facebook}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Snapchat\"\n    },\n    {\n      \"name\": \"Snapchat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Snapchat}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Instagram\"\n    },\n    {\n      \"name\": \"Instagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Instagram}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ProfCollege#c\": [\n      \"nonshellescape\",\n      \"nonamssymb\"\n    ],\n    \"\\\\Lg#c,\\\\Aire#c,\\\\Vol#c,\\\\Masse#c,\\\\Capa#c,\\\\Temps#c,\\\\MasseVol#c,\\\\Vitesse#c,\\\\Octet#c,\\\\Conso#c,\\\\Prix#c,\\\\Temp#c\": [\n      \"US\",\n      \"UK\",\n      \"Dots=\"\n    ],\n    \"\\\\RepresenterEntier\": [\n      \"Echelle=${1:factor}\",\n      \"ListeCouleurs={${1:color1,color2,...}}\",\n      \"Impression\",\n      \"Compact\",\n      \"Unite\"\n    ],\n    \"\\\\DecompositionDecimale\": [\n      \"Parentheses\",\n      \"ResultatSeul\",\n      \"SansMul\",\n      \"Colore\",\n      \"CouleurU=\",\n      \"CouleurD=\",\n      \"CouleurC=\",\n      \"Fleches\",\n      \"Details\"\n    ],\n    \"\\\\Ecriture\": [\n      \"Majuscule\",\n      \"Tradition\",\n      \"Math\",\n      \"E\",\n      \"Zero\"\n    ],\n    \"\\\\Frise\": [\n      \"Longueur=\",\n      \"Fleches\",\n      \"Ecart=\",\n      \"Sup\"\n    ],\n    \"\\\\Tables\": [\n      \"Couleur=\",\n      \"Debut=${1:nombre}\",\n      \"Fin=${1:nombre}\",\n      \"Seul\",\n      \"Addition\",\n      \"Soustraction\"\n    ],\n    \"\\\\Papiers\": [\n      \"Largeur=${1:integer}\",\n      \"Hauteur=${1:integer}\",\n      \"Couleur=\",\n      \"Seyes\",\n      \"Echelle=${1:nombre}\",\n      \"Millimetre\",\n      \"Isometrique\",\n      \"IsometriquePointe\",\n      \"Triangle\",\n      \"Grille=${1:nombre}\",\n      \"GrillePointe=${1:nombre}\",\n      \"PageEntiere\",\n      \"ZoneTexte\"\n    ],\n    \"\\\\Tableau,\\\\GlisseNombre\": [\n      \"Metre\",\n      \"FlechesH\",\n      \"FlechesB\",\n      \"Fleches\",\n      \"NbLignes=${1:integer}\",\n      \"Carre\",\n      \"Colonnes\",\n      \"Are\",\n      \"Cube\",\n      \"Capacite\",\n      \"Gramme\",\n      \"Litre\",\n      \"Octet\",\n      \"Escalier\",\n      \"Entiers\",\n      \"Millions\",\n      \"Milliards\",\n      \"Classes\",\n      \"CouleurG=\",\n      \"CouleurM=\",\n      \"Couleurm=\",\n      \"Couleuru=\",\n      \"Nombres\",\n      \"Puissances\",\n      \"FlechesB\",\n      \"FlechesH\",\n      \"Decimaux\",\n      \"Partie\",\n      \"Virgule\",\n      \"Prefixes\",\n      \"Micro\",\n      \"Nano\",\n      \"Incline\",\n      \"Couleurd=\",\n      \"PuissancesSeules\",\n      \"Colonne=${1:integer}\",\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Nom=${1:nom}\",\n      \"CodeAfter=${1:code}\"\n    ],\n    \"\\\\GlisseNombre\": [\n      \"Entiers\",\n      \"CouleurGN=\",\n      \"CadreGN=\"\n    ],\n    \"\\\\Relie\": [\n      \"Solution\",\n      \"LargeurG=\",\n      \"LargeurD=\",\n      \"Ecart=\",\n      \"Stretch=${1:factor}\",\n      \"Couleur=\"\n    ],\n    \"\\\\QCM\": [\n      \"Stretch=${1:factor}\",\n      \"Reponses\",\n      \"Largeur=\",\n      \"Titre\",\n      \"Nom=${1:nom}\",\n      \"AlphT\",\n      \"Alph\",\n      \"Alterne\",\n      \"Depart=${1:nombre}\",\n      \"Solution\",\n      \"Couleur=\",\n      \"VF\",\n      \"NomV=${1:nom}\",\n      \"NomF=${1:nom}\",\n      \"Multiple\",\n      \"Noms=${1:nom1/nom2/...}\"\n    ],\n    \"\\\\QFlash\": [\n      \"Simple\",\n      \"Kahout\",\n      \"Pause\",\n      \"Hauteur=\",\n      \"Couleur1=\",\n      \"Couleur2=\",\n      \"Couleur3=\",\n      \"Couleur4=\",\n      \"Intrus\",\n      \"Numeration\",\n      \"Decimal\",\n      \"Operation=${1|Multiplie,Divide|}\",\n      \"Mental\",\n      \"Expression\",\n      \"Mesure\",\n      \"Heure\",\n      \"Numerique\",\n      \"Daily\",\n      \"Seul\",\n      \"Evaluation\"\n    ],\n    \"\\\\Rapido\": [\n      \"Largeur=\",\n      \"Numero=${1:numero}\"\n    ],\n    \"\\\\Cible\": [\n      \"RayonBase=\",\n      \"Ecart=\",\n      \"TitreFlechettes\",\n      \"RayonF=\",\n      \"Impression\"\n    ],\n    \"\\\\Mentalo\": [\n      \"Questions=${1:nombre}\",\n      \"ValeurMin=${1:nombre}\",\n      \"ValeurMax=${1:nombre}\"\n    ],\n    \"\\\\Automatismes\": [\n      \"Relatifs\",\n      \"Questions=${1:nombre}\",\n      \"ValeurMin=${1:nombre}\",\n      \"ValeurMax=${1:nombre}\",\n      \"Fractions\",\n      \"Graine=${1:nombre}\",\n      \"Priorites\"\n    ],\n    \"\\\\PyraVoca\": [\n      \"Largeur=\",\n      \"Solution\"\n    ],\n    \"\\\\CourseNombre\": [\n      \"CoefQ=${1:nombre}\",\n      \"CoefR=${1:nombre}\",\n      \"CoefJ=${1:nombre}\",\n      \"Dossier=${1:dossier}\",\n      \"Liste={${1:liste de répertoires}}\",\n      \"Maitre\",\n      \"Debut=${1:nombre}\",\n      \"NbQ=${1:nombre}\",\n      \"Exercice\",\n      \"Ordre\",\n      \"Nom\",\n      \"CAN\"\n    ],\n    \"\\\\Autonomie\": [\n      \"AfficheMarge\",\n      \"TitreAtoi=${1:texte}\",\n      \"TexteCorrection=${1:texte}\"\n    ],\n    \"\\\\FicheMemo\": [\n      \"TexteReponses=${1:texte}\",\n      \"TexteQuestions=${1:texte}\",\n      \"Solution\",\n      \"Largeur=\"\n    ],\n    \"\\\\BonSortie\": [\n      \"MemeEnonce\"\n    ],\n    \"\\\\begin{Geometrie}\": [\n      \"CoinBG={${1:(x,y)}}\",\n      \"CoinHD={${1:(x,y)}}\",\n      \"TypeTrace=\\\"${1:type}\\\"\"\n    ],\n    \"\\\\Solide\": [\n      \"Phi=${1:degrés}\",\n      \"Theta=${1:degrés}\",\n      \"Distance=${1:nombre}\",\n      \"Aretes\",\n      \"Sommets\",\n      \"ListeSommets={${1:liste}}\",\n      \"Traces={${1:MP code}}\",\n      \"Nom=${1|pave,cylindre,cone,pyramide,sphere|}\",\n      \"Largeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"Profondeur=${1:nombre}\",\n      \"RayonCylindre=${1:nombre}\",\n      \"HauteurCylindre=${1:nombre}\",\n      \"Anglex=${1:degrés}\",\n      \"Reguliere\",\n      \"SommetsPyramide=${1:nombre}\",\n      \"DecalageSommet={(${1:x,y,z})}\",\n      \"RayonCone=${1:nombre}\",\n      \"HauteurCone=${1:nombre}\",\n      \"RayonSphere=${1:nombre}\",\n      \"Section\",\n      \"PointsSection={${1:liste}}\",\n      \"CouleurSection=\",\n      \"CoefSection=${1:coef}\",\n      \"ObjetSection=\"\n    ],\n    \"\\\\Patron\": [\n      \"Pave\",\n      \"Largeur=\",\n      \"Profondeur=\",\n      \"Hauteur=\",\n      \"Arete=\",\n      \"Traces={${1:MP code}}\",\n      \"ListeCouleurs={${1:couleur1,couleur2,...}}\"\n    ],\n    \"\\\\ProprieteDroites\": [\n      \"Num=${1|1,2,3|}\",\n      \"CitePropriete\",\n      \"Brouillon\",\n      \"Figure\",\n      \"Remediation\"\n    ],\n    \"\\\\Reperage,\\\\ReperageMulti,\\\\ReperageZoom\": [\n      \"Unitex=${1:nombre}\",\n      \"AffichageGrad\",\n      \"AffichageNom\",\n      \"AffichageAbs=${1|1,2,3|}\",\n      \"AffichageCoord\",\n      \"Pasx=${1:nombre}\",\n      \"DemiDroite\",\n      \"ValeurOrigine=${1:valeur}\",\n      \"ValeurUnitex=${1:valeur}\",\n      \"Niveau=${1:nombre}\",\n      \"Thermometre\",\n      \"Kelvin\",\n      \"Farenheit\",\n      \"Mercure\",\n      \"CouleurMercure=\",\n      \"Plan\",\n      \"Unitey=${1:nombre}\",\n      \"Pasy=${1:nombre}\",\n      \"ValeurUnitey=${1:valeur}\",\n      \"LectureCoord\",\n      \"Trace\",\n      \"ListeSegment={${1:liste de segments}}\",\n      \"Espace\",\n      \"Unitez=${1:nombre}\",\n      \"Pasz=${1:nombre}\",\n      \"EchelleEspace=${1:nombre}\",\n      \"Sphere\",\n      \"AnglePhi=${1:degrees}\",\n      \"EchelleEspace=${1:nombre}\",\n      \"Globe\",\n      \"Theta=${1:degrees}\",\n      \"Phi=${1:degrees}\",\n      \"Axes\",\n      \"CouleurG=\",\n      \"CouleurE=\",\n      \"ValeurMin=${1:nombre}\",\n      \"ValeurMax=${1:nombre}\",\n      \"Etages=${1:nombre}\"\n    ],\n    \"\\\\SommeAngles\": [\n      \"Detail\",\n      \"Perso\",\n      \"Figure\",\n      \"Echelle=\",\n      \"Angle=${1:degrees}\",\n      \"FigureSeule\",\n      \"Isocele\",\n      \"Rectangle\"\n    ],\n    \"\\\\Pythagore\": [\n      \"Soustraction\",\n      \"Egalite\",\n      \"Entier\",\n      \"Racine\",\n      \"Precision=${1:integer}\",\n      \"Unite=${1:unité}\",\n      \"Reciproque\",\n      \"ReciColonnes\",\n      \"Faible\",\n      \"Figure\",\n      \"Angle=${1:degrees}\",\n      \"Echelle=\",\n      \"FigureSeule\",\n      \"EnchaineA\",\n      \"EnchaineB\",\n      \"EnchaineC\",\n      \"ValeurA=${1:valeur}\",\n      \"ValeurB=${1:valeur}\",\n      \"ValeurC=${1:valeur}\",\n      \"AvantRacine\",\n      \"SansMots\",\n      \"Perso\",\n      \"AllPerso\"\n    ],\n    \"\\\\Thales\": [\n      \"Droites\",\n      \"Segment\",\n      \"Propor\",\n      \"Perso\",\n      \"Precision=${1:integer}\",\n      \"IntroCalculs\",\n      \"Unite=${1:unité}\",\n      \"Entier\",\n      \"Figure\",\n      \"Echelle=\",\n      \"Angle=${1:degrees}\",\n      \"CouleurNum=\",\n      \"CouleurDen=\",\n      \"FigureSeule\",\n      \"Figurecroisee\",\n      \"FigurecroiseeSeule\",\n      \"ChoixCalcul=${1|0,1,2,3|}\",\n      \"Redaction\",\n      \"Remediation\",\n      \"Reciproque\",\n      \"Produit\",\n      \"Simplification\"\n    ],\n    \"\\\\Trigo\": [\n      \"Cosinus\",\n      \"Propor\",\n      \"Precision=${1:integer}\",\n      \"Unite=${1:unité}\",\n      \"Sinus\",\n      \"Tangente\",\n      \"Perso\",\n      \"Figure\",\n      \"Angle=${1:degrees}\",\n      \"Echelle=\",\n      \"FigureSeule\"\n    ],\n    \"\\\\Cartographie\": [\n      \"Arborescence=\\\"${1:path}\\\"\",\n      \"Carte\",\n      \"Fleuves\",\n      \"Capitales\",\n      \"CouleurFond=\",\n      \"Impression\",\n      \"Echelle=${1:nombre}\",\n      \"EchelleCarte=${1:nombre}\",\n      \"AfficheEchelle\",\n      \"Largeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"All\",\n      \"Europe\",\n      \"Asie\",\n      \"Amsud\",\n      \"Amnord\",\n      \"Amcentre\",\n      \"Afrique\",\n      \"Caraibes\",\n      \"Pays=\\\"${1:pays}\\\"\",\n      \"Villes=\\\"${1:.dat file}\\\"\",\n      \"Projection\",\n      \"TypeProjection=\\\"${1:type}\\\"\",\n      \"CouleurPays=\"\n    ],\n    \"\\\\Formule\": [\n      \"Perimetre\",\n      \"Surface=${1|polygone,triangle,parallelogramme,losange,rectangle,carre,cercle,disque,sphere|}\",\n      \"Ancre={${1:(x,y)}}\",\n      \"Angle=${1:degrees}\",\n      \"Largeur=\",\n      \"Couleur=\",\n      \"Echelle=\",\n      \"Aire\",\n      \"Volume\",\n      \"Solide=${1|pave,cube,cylindre,prisme,cone,pyramide,boule|}\"\n    ],\n    \"\\\\VueCubes\": [\n      \"Largeur=${1:nombre}\",\n      \"Profondeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"Echelle=${1:nombre}\",\n      \"CouleurCube=\",\n      \"Angle=${1:degres}\",\n      \"Trou\",\n      \"Seul\",\n      \"Creation\",\n      \"Grilles\",\n      \"Face\",\n      \"CouleurFleche=\",\n      \"Solution\",\n      \"Nom=${1:nom}\"\n    ],\n    \"\\\\Pavage\": [\n      \"Epaisseur=${1:nombre}\",\n      \"Niveau=${1:integer}\",\n      \"Couleur=\",\n      \"Numerotation\",\n      \"Complete\",\n      \"ArrierePlan=\",\n      \"Traces={${1:MP code}}\",\n      \"Motif={${1:MP code}}\",\n      \"Quadrilatere\",\n      \"Lignes=${1:integer}\",\n      \"Colonnes=${1:integer}\",\n      \"Reseau\",\n      \"Basei={${1:MP code}}\",\n      \"Basej={${1:MP code}}\",\n      \"Regulier\",\n      \"Cote=${1:nombre}\",\n      \"Escher\",\n      \"Rayon=${1:nombre}\",\n      \"Position=${1:nombre}\",\n      \"Ecart=${1:nombre}\",\n      \"Einstein\",\n      \"Vampire\"\n    ],\n    \"\\\\Addition,\\\\MultiAddition,\\\\Soustraction,\\\\Multiplication,\\\\Division,\\\\DivisionD\": [\n      \"CouleurCadre=\",\n      \"CouleurFond=\",\n      \"CouleurVirgule=\",\n      \"Solution\",\n      \"CouleurSolution=\"\n    ],\n    \"\\\\PyramideNombre\": [\n      \"Etages=${1:integer}\",\n      \"Largeur=\",\n      \"Hauteur=\",\n      \"Inverse\",\n      \"Couleur=\",\n      \"CouleurNombre=\"\n    ],\n    \"\\\\ProgCalcul\": [\n      \"Direct\",\n      \"Ecart=\",\n      \"SansCalcul\",\n      \"Enonce\",\n      \"Nom=${1:nom}\",\n      \"CouleurCadre=\",\n      \"CouleurFond=\",\n      \"Largeur=\",\n      \"Epaisseur=\",\n      \"Pointilles=\",\n      \"ThemePerso\",\n      \"Application\",\n      \"Details\"\n    ],\n    \"\\\\Decomposition\": [\n      \"Tableau\",\n      \"TableauVide\",\n      \"TableauVertical\",\n      \"TableauVerticalVide\",\n      \"Dot=${1:dot code}\",\n      \"Potence\",\n      \"Exposant\",\n      \"Longue\",\n      \"All\",\n      \"Nombre=${1:nombre}\",\n      \"AllNombre=${1:nombre}\",\n      \"Arbre\",\n      \"ArbreComplet\",\n      \"Entoure\",\n      \"ArbreVide\",\n      \"ArbreDessine\",\n      \"Impression\",\n      \"ArbreDessineVide\",\n      \"Diviseurs\",\n      \"DiviseursT\"\n    ],\n    \"\\\\Erathostene\": [\n      \"Lignes=${1:nombre}\",\n      \"Colonnes=${1:nombre}\",\n      \"Hauteur=\",\n      \"Nombre=${1:nombre}\",\n      \"CouleurP=\",\n      \"CouleurNP=\"\n    ],\n    \"\\\\Engrenages\": [\n      \"Unite=\",\n      \"Couleur=\"\n    ],\n    \"\\\\Fraction\": [\n      \"Disque\",\n      \"Rayon=\",\n      \"Regulier\",\n      \"Cotes=${1:integer}\",\n      \"Segment\",\n      \"Longueur=\",\n      \"Triangle\",\n      \"Parts=${1:integer}\",\n      \"Rectangle\",\n      \"Largeur=\",\n      \"Multiple=${1:integer}\",\n      \"Reponse\",\n      \"Couleur=\",\n      \"Hachures\",\n      \"Epaisseur=${1:factor}\"\n    ],\n    \"\\\\FractionDecimale\": [\n      \"Complete\",\n      \"SansZero\",\n      \"Remediation\",\n      \"Longueur=\"\n    ],\n    \"\\\\Simplification\": [\n      \"Details\",\n      \"All\",\n      \"Longue\",\n      \"Couleur=\",\n      \"Nombre=${1:nombre}\",\n      \"Contraire=${1:integer}\",\n      \"Fleches\"\n    ],\n    \"\\\\Rangement\": [\n      \"Decroissant\",\n      \"Strict\",\n      \"Fraction\",\n      \"Details\",\n      \"Seul\"\n    ],\n    \"\\\\Propor\": [\n      \"Vertical\",\n      \"GrandeurA=${1:texte}\",\n      \"GrandeurB=${1:texte}\",\n      \"Math\",\n      \"Stretch=${1:factor}\",\n      \"Largeur=\",\n      \"CouleurTab=\",\n      \"Simple\"\n    ],\n    \"\\\\Pourcentage\": [\n      \"Appliquer\",\n      \"Fractionnaire\",\n      \"Unite=${1:unité}\",\n      \"Augmenter\",\n      \"AideTableau\",\n      \"GrandeurA=${1:texte}\",\n      \"GrandeurB=${1:texte}\",\n      \"CouleurTab=\",\n      \"Formule\",\n      \"Reduire\",\n      \"MotReduction=${1:mot}\",\n      \"Calculer\"\n    ],\n    \"\\\\Ratio\": [\n      \"Figure\",\n      \"Longueur=\",\n      \"TexteTotal=${1:texte}\",\n      \"TextePart=${1:texte}\",\n      \"CouleurUn=\",\n      \"CouleurDeux=\",\n      \"CouleurTrois=\",\n      \"FigureCours\",\n      \"Tableau\",\n      \"GrandeurA=${1:texte}\",\n      \"GrandeurB=${1:texte}\",\n      \"Largeur=\",\n      \"Stretch=${1:factor}\",\n      \"CouleurTab=\",\n      \"Nom\"\n    ],\n    \"\\\\Stat\": [\n      \"Qualitatif\",\n      \"Liste\",\n      \"Sondage\",\n      \"Classes\",\n      \"Tableau\",\n      \"Stretch=${1:factor}\",\n      \"CouleurTab=\",\n      \"Largeur=\",\n      \"TableauVide\",\n      \"Donnee=${1:texte}\",\n      \"Effectif=${1:texte}\",\n      \"EffVide\",\n      \"Frequence\",\n      \"FreqVide\",\n      \"Angle\",\n      \"SemiAngle\",\n      \"AngVide\",\n      \"ECC\",\n      \"ECCVide\",\n      \"Total\",\n      \"ColVide=${1:integer}\",\n      \"CasesVides={${1:cases}}\",\n      \"Crochets\",\n      \"Centre\",\n      \"CentreVide\",\n      \"Graphique\",\n      \"Batons\",\n      \"Unitex=${1:nombre}\",\n      \"Unitey=${1:nombre}\",\n      \"Grille\",\n      \"Pasx=${1:nombre}\",\n      \"Pasy=${1:nombre}\",\n      \"EpaisseurBatons=${1:nombre}\",\n      \"Origine=${1:nombre}\",\n      \"AngleRotationAbscisse=${1:degrees}\",\n      \"Lecture\",\n      \"LectureFine\",\n      \"AideLecture\",\n      \"Tiret\",\n      \"Depart=${1:nombre}\",\n      \"Reponses\",\n      \"DonneesSup\",\n      \"CouleurDefaut=\",\n      \"ListeCouleursB={${1:liste des coleurs}}\",\n      \"Angle\",\n      \"SemiAngle\",\n      \"Rayon=\",\n      \"DebutAngle=${1:degrees}\",\n      \"AffichageAngle\",\n      \"AffichageDonnees\",\n      \"LectureInverse\",\n      \"Legende\",\n      \"LegendesVides={${1:liste de numéros}}\",\n      \"Hachures\",\n      \"ListeHachures=${1:degrees}\",\n      \"EcartHachures=${1:nombre}\",\n      \"EpaisseurHachures=${1:nombre}\",\n      \"ListeCouleurs={${1:liste des coleurs}}\",\n      \"Barre\",\n      \"Longueur=\",\n      \"Hauteur=\",\n      \"EcartBarre=\",\n      \"Bicolore\",\n      \"Histogramme\",\n      \"UniteAire=${1:nombre}\",\n      \"DepartHisto=${1:nombre}\",\n      \"Representation\",\n      \"Xmin=${1:nombre}\",\n      \"Xmax=${1:nombre}\",\n      \"Ymin=${1:nombre}\",\n      \"Ymax=${1:nombre}\",\n      \"Xstep=${1:nombre}\",\n      \"Ystep=${1:nombre}\",\n      \"LabelX=${1:texte}\",\n      \"LabelY=${1:texte}\",\n      \"PasGrilleX=${1:nombre}\",\n      \"PasGrilleY=${1:nombre}\",\n      \"Graduations\",\n      \"CouleurTrace=\",\n      \"Relie\",\n      \"RelieSegment\",\n      \"Invisible\",\n      \"CouleurPoint=\",\n      \"Marque=${1|dot,croix|}\",\n      \"EffectifTotal\",\n      \"Etendue\",\n      \"Concret\",\n      \"Unite=${1:unité}\",\n      \"Concret=${1:unité}\",\n      \"Mediane\",\n      \"Coupure=${1:integer}\",\n      \"Moyenne\",\n      \"Precision=${1:integer}\",\n      \"SET\",\n      \"Somme\",\n      \"MoyenneA\",\n      \"ValeurExacte\",\n      \"ACompleter\",\n      \"UneMediane\"\n    ],\n    \"\\\\Proba\": [\n      \"Echelle\",\n      \"LongueurEchelle=${1:nombre}\",\n      \"Grille=${1:nombre}\",\n      \"Affichage=${1|0,1,2,3,4|}\",\n      \"Arbre\",\n      \"Branche=${1:nombre}\",\n      \"Angle=${1:degrees}\",\n      \"Rayon=${1:nombre}\",\n      \"Incline\"\n    ],\n    \"\\\\FonctionAffine\": [\n      \"Definition\",\n      \"Nom=${1:nom}\",\n      \"Variable=${1:variable}\",\n      \"Ecriture\",\n      \"Image\",\n      \"Ligne\",\n      \"ProgCalcul\",\n      \"Antecedent\",\n      \"Retrouve\",\n      \"CoefDir=\",\n      \"OrdoOrig=\",\n      \"Redaction\",\n      \"Graphique\",\n      \"Unitex=${1:nombre}\",\n      \"Unitey=${1:nombre}\",\n      \"VoirCoef\",\n      \"ACoef=${1:nombre}\"\n    ],\n    \"\\\\Fonction\": [\n      \"Calcul=${1:fonction}\",\n      \"Tableau\",\n      \"Largeur=\",\n      \"Nom=${1:nom}\",\n      \"Variable=${1:variable}\",\n      \"Definition\",\n      \"Ecriture\",\n      \"Points\",\n      \"Tangentes\",\n      \"Catmull\",\n      \"Splines\",\n      \"PasX=${1:nombre}\",\n      \"PasY=${1:nombre}\",\n      \"UniteX=${1:nombre}\",\n      \"UniteY=${1:nombre}\",\n      \"Epaisseur=\",\n      \"Prolonge\",\n      \"Trace\",\n      \"Xmin=${1:nombre}\",\n      \"Xmax=${1:nombre}\",\n      \"Ymin=${1:nombre}\",\n      \"Ymax=${1:nombre}\",\n      \"Xstep=${1:nombre}\",\n      \"Ystep=${1:nombre}\",\n      \"LabelX=${1:texte}\",\n      \"LabelY=${1:texte}\",\n      \"Origine={${1:(x,y)}}\",\n      \"Grille\",\n      \"PasGrilleX=${1:nombre}\",\n      \"PasGrilleY=${1:nombre}\",\n      \"Graduations\",\n      \"PasGradX=${1:nombre}\",\n      \"PasGradY=${1:nombre}\",\n      \"Bornea=${1:nombre}\",\n      \"Borneb=${1:nombre}\",\n      \"CouleurTrace=\",\n      \"NomCourbe=${1:nom}\",\n      \"LabelC=${1:nombre}\",\n      \"Traces={${1:MP code}}\",\n      \"Vide\"\n    ],\n    \"\\\\LectureGraphique\": [\n      \"NbPoints=${1:nombre}\",\n      \"UniteX=${1:nombre}\",\n      \"UniteY=${1:nombre}\",\n      \"Points\",\n      \"CouleurTrace=\",\n      \"Epaisseur=${1:nombre}\",\n      \"Image\",\n      \"Antecedent\",\n      \"Graine=\"\n    ],\n    \"\\\\Distri\": [\n      \"Numerique\",\n      \"Etape=${1|-1,0,1,2,3,4|}\",\n      \"All\",\n      \"NomExpression=${1:nom}\",\n      \"Fin=${1:valeur}\",\n      \"Lettre=${1:lettre}\",\n      \"Fleches\",\n      \"CouleurFH=\",\n      \"CouleurFB=\",\n      \"AideMul\",\n      \"Reduction\",\n      \"CouleurReduction=\",\n      \"AideAdda\",\n      \"AideAddb\",\n      \"CouleurAide=\",\n      \"Cours\",\n      \"Tuile\",\n      \"Vide\",\n      \"Reperes\",\n      \"Impression\",\n      \"RAZ\",\n      \"Somme\",\n      \"Difference\",\n      \"Oppose\",\n      \"Remarquable\",\n      \"Echange=${1|0,1,2,3|}\",\n      \"Tableau\"\n    ],\n    \"\\\\Factorisation,\\\\Factorisation*\": [\n      \"Litteral\",\n      \"AideMul\",\n      \"NomExpression=${1:nom}\",\n      \"Lettre=${1:lettre}\",\n      \"Aide\",\n      \"Couleur=\",\n      \"ParenthesesFin\",\n      \"Resultat\"\n    ],\n    \"\\\\ModeleBarre\": [\n      \"Largeur=\",\n      \"Separation=${1:nombre}\"\n    ],\n    \"\\\\ResolEquation\": [\n      \"Lettre=${1:lettre}\",\n      \"Solution\",\n      \"LettreSol\",\n      \"Entier\",\n      \"Simplification\",\n      \"Decimal\",\n      \"Verification\",\n      \"Nombre=${1:nombre}\",\n      \"Egalite\",\n      \"Decomposition\",\n      \"CouleurSous=\",\n      \"Fleches\",\n      \"Ecart=${1:nombre}\",\n      \"FlecheDiv\",\n      \"Pose\",\n      \"Laurent\",\n      \"Terme\",\n      \"CouleurTerme=\",\n      \"Composition\",\n      \"CouleurCompo=\",\n      \"Symbole\",\n      \"CouleurSymbole=\",\n      \"Bloc\",\n      \"Produit\",\n      \"Facteurs\",\n      \"Equivalence\",\n      \"Carre\",\n      \"Exact\"\n    ],\n    \"\\\\Calculatrice\": [\n      \"Ecran\",\n      \"NbLignes=${1:integer}\",\n      \"Largeur=${1:nombre}\",\n      \"Calcul\"\n    ],\n    \"\\\\begin{Tableur}\": [\n      \"Bandeau\",\n      \"Colonnes=${1:integer}\",\n      \"Largeur=\",\n      \"LargeurUn=\",\n      \"Formule=${1:formule}\",\n      \"Cellule=${1:cellule}\",\n      \"Ligne=${1:integer}\",\n      \"PasL=${1:integer}\",\n      \"Colonne=${1:integer}\",\n      \"PasC=${1:integer}\",\n      \"Couleur=\"\n    ],\n    \"\\\\CodageRLE\": [\n      \"Enonce\",\n      \"Solution\",\n      \"Unite=\",\n      \"Taille=${1:nombre}\"\n    ],\n    \"\\\\Tortue\": [\n      \"Pas=\",\n      \"Epaisseur=${1:nombre}\",\n      \"TortueD\",\n      \"TortueF\",\n      \"Angle=${1:degrés}\",\n      \"Couleur=\",\n      \"Etape=${1:nombre}\",\n      \"Grille\",\n      \"LargeurG=${1:nombre}\",\n      \"HauteurG=${1:nombre}\",\n      \"Axes\",\n      \"Origine={(${1:x,y})}\",\n      \"Cases\",\n      \"Depart={(${1:x,y})}\"\n    ],\n    \"\\\\begin{Scratch}\": [\n      \"Echelle=${1:factor}\",\n      \"Impression\",\n      \"Numerotation\",\n      \"Naturel\"\n    ],\n    \"\\\\RoseMul\": [\n      \"Nom=${1:nom}\",\n      \"FacteurMin=${1:integer}\",\n      \"FacteurMax=${1:integer}\",\n      \"Rayon=\",\n      \"Petales=${1:integer}\",\n      \"Solution\",\n      \"Produits\",\n      \"Aide\",\n      \"Vide\",\n      \"Polygone\",\n      \"CaseVide\",\n      \"ProduitVide\",\n      \"Addition\",\n      \"LesNombres={${1:nombres}}\",\n      \"LesProduits={${1:produits}}\",\n      \"LesSommes={${1:sommes}}\",\n      \"Couleur=\"\n    ],\n    \"\\\\DefiTableTexte\": [\n      \"LargeurT=\",\n      \"Creation\",\n      \"Solution\",\n      \"Graine=${1:nombre}\",\n      \"ValeurMin=${1:nombre}\",\n      \"ValeurMax=${1:nombre}\"\n    ],\n    \"\\\\DefiRangement\": [\n      \"Largeur=\",\n      \"Hauteur=\",\n      \"Solution\",\n      \"Graine=${1:integer}\",\n      \"Creation\",\n      \"Deno=${1:dénominateur}\",\n      \"Negatif\",\n      \"Decimaux\"\n    ],\n    \"\\\\Billard\": [\n      \"Longueur=\",\n      \"Largeur=\",\n      \"Solution\",\n      \"Vrai\",\n      \"Angle=${1:degrees}\",\n      \"Depart=${1:nombre}\"\n    ],\n    \"\\\\Labyrinthe\": [\n      \"Colonnes=${1:integer}\",\n      \"Lignes=${1:integer}\",\n      \"Hauteur=${1:nombre}\",\n      \"Longueur=${1:nombre}\",\n      \"EcartH=${1:nombre}\",\n      \"EcartV=${1:nombre}\",\n      \"CouleurF=\",\n      \"Texte=\",\n      \"Passages\",\n      \"SensImpose\"\n    ],\n    \"\\\\LabyNombre\": [\n      \"Nom=${1:nom}\",\n      \"Multiple=${1:integer}\",\n      \"Angle=${1:degrees}\",\n      \"Echelle=${1:factor}\",\n      \"Couleur=\",\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"XDepart=${1:integer}\",\n      \"YDepart=${1:integer}\",\n      \"XArrivee=${1:integer}\",\n      \"YArrivee=${1:integer}\",\n      \"Solution\",\n      \"CouleurChemin=\",\n      \"Murs\",\n      \"EntreeSortie\",\n      \"Entree=\\\"${1:trouve}\\\"\",\n      \"Sortie=\\\"${1:trouve}\\\"\",\n      \"Multiplication\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\Triomino\": [\n      \"Longueur=\",\n      \"Etages=${1:integer}\",\n      \"Piece=${1:integer}\",\n      \"Hexagone\"\n    ],\n    \"\\\\DessinGradue\": [\n      \"Lignes=${1:integer}\",\n      \"Longueur=${1:nombre}\",\n      \"Pas=${1:integer}\",\n      \"Debut=${1:integer}\",\n      \"Fin=${1:integer}\",\n      \"EcartVertical=${1:nombre}\",\n      \"Droites\",\n      \"DemiDroites\",\n      \"Traces={${1:code}}\",\n      \"Echelle=${1:factor}\",\n      \"Solution\",\n      \"LignesIdentiques\",\n      \"OrigineVariable\"\n    ],\n    \"\\\\Colorilude\": [\n      \"Lignes=${1:integer}\",\n      \"Largeur=${1:integer}\",\n      \"Coef=${1:nombre}\",\n      \"Solution\",\n      \"CartonReponse\",\n      \"Resultats\"\n    ],\n    \"\\\\PixelArt\": [\n      \"Largeur=${1:integer}\",\n      \"Hauteur=${1:integer}\",\n      \"Unite=\",\n      \"Lettres=${1:lettres}\",\n      \"ListeCouleurs={${1:color1,color2,...}}\",\n      \"Solution\",\n      \"ListeNombres{${1:nombre1,nombre2,...}}\"\n    ],\n    \"\\\\TableauMultiplicatif\": [\n      \"Largeur=\",\n      \"Couleur=\",\n      \"Graine=${1:nombre}\",\n      \"Multiple=${1:nombre}\",\n      \"Cible={${1:nombres}}\",\n      \"Operations\",\n      \"Enonce\",\n      \"SchemaEnonce\"\n    ],\n    \"\\\\Quisuisje\": [\n      \"Colonnes=${1:integer}\",\n      \"Solution\",\n      \"CodePerso\"\n    ],\n    \"\\\\MotsEmpiles\": [\n      \"Colonne=${1:integer}\",\n      \"Solution\",\n      \"Couleur=\"\n    ],\n    \"\\\\MotsCroises\": [\n      \"Colonnes=${1:integer}\",\n      \"Lignes=${1:integer}\",\n      \"Largeur=\",\n      \"Croises\",\n      \"Couleur=\",\n      \"Solution\"\n    ],\n    \"\\\\MotsCodes\": [\n      \"Colonnes=${1:integer}\",\n      \"Largeur=\"\n    ],\n    \"\\\\MotsCodesTableau\": [\n      \"Math\",\n      \"LargeurT=\",\n      \"Solution\"\n    ],\n    \"\\\\Mosaique\": [\n      \"Solution\",\n      \"Type=${1:nombre}\",\n      \"Label=\",\n      \"Largeur=${1:integer}\",\n      \"Hauteur=${1:integer}\",\n      \"Echelle=\"\n    ],\n    \"\\\\DessineMosaique\": [\n      \"Type=${1:nombre}\",\n      \"Echelle=\"\n    ],\n    \"\\\\Cartes,\\\\BoiteCartes\": [\n      \"Loop\",\n      \"Landscape\",\n      \"Largeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"Marge=${1:nombre}\",\n      \"Couleur=\",\n      \"RayonArc=\",\n      \"Theme=${1:texte}\",\n      \"HauteurTheme=${1:nombre}\",\n      \"Titre\",\n      \"NomTitre=${1:nom}\",\n      \"Trame\",\n      \"Jointes\",\n      \"TrameVisible\",\n      \"JaiQuia\",\n      \"ThemeJaiQuiA=${1:texte}\",\n      \"Eleve\",\n      \"BackgroundAv\",\n      \"ImageAv=${1:imagefile}\",\n      \"BackgroundAr\",\n      \"ImageAr=${1:imagefile}\",\n      \"ThemeSol=${1:texte}\",\n      \"Trivial\",\n      \"Symboles={${1:symbole1,symbole2,...}}\"\n    ],\n    \"\\\\BoiteCartes\": [\n      \"NbCartes=${1:nombre}\",\n      \"TypeJeu=${1:texte}\",\n      \"CouleurType=\",\n      \"Niveau=${1:texte}\",\n      \"CouleurNiveau=\",\n      \"Numero=${1:texte}\",\n      \"CouleurNumero=\"\n    ],\n    \"\\\\Dominos\": [\n      \"Trame\",\n      \"Lignes=${1:integer}\",\n      \"Colonnes=${1:integer}\",\n      \"Logo\",\n      \"Image=${1:imagefile}\",\n      \"Couleur=\",\n      \"Ratio=${1:ratio}\",\n      \"Superieur\"\n    ],\n    \"\\\\Enquete\": [\n      \"Largeur=\",\n      \"Perso=${1:nom}\",\n      \"Objet=${1:nom}\",\n      \"Lieu=${1:nom}\"\n    ],\n    \"\\\\PQuatre\": [\n      \"Relatif\",\n      \"Puissance\",\n      \"Autre\",\n      \"Consignes=\\\"${1:texte}\\\"\",\n      \"LargeurUn=\",\n      \"Echelle=${1:nombre}\",\n      \"Addition\",\n      \"Couleur=\"\n    ],\n    \"\\\\Yohaku\": [\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Hauteur=\",\n      \"Bordure\",\n      \"CouleurResultat=\",\n      \"Multiplication\",\n      \"Limite=${1:nombre}\",\n      \"Pair\",\n      \"Impair\",\n      \"Premier\",\n      \"Perso\",\n      \"Case=${1:integer}\",\n      \"Ligne=${1:integer}\",\n      \"PasL=${1:integer}\",\n      \"Colonne=${1:integer}\",\n      \"PasC=${1:integer}\",\n      \"Solution\",\n      \"Addition\",\n      \"CouleurZone=\",\n      \"Relatif\",\n      \"Negatif\"\n    ],\n    \"\\\\KenKen\": [\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Nombre=${1:nombre}\",\n      \"Solution\"\n    ],\n    \"\\\\Kakuro\": [\n      \"TLargeur=${1:nombre}\",\n      \"THauteur=${1:nombre}\",\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"CouleurCase=\",\n      \"ListeNombres={${1:nombre1,nombre2,...}}\",\n      \"Solution\",\n      \"CouleurSolution=\"\n    ],\n    \"\\\\Shikaku\": [\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Solution\",\n      \"Couleur=\",\n      \"CodeAfter={${1:code}}\",\n      \"Creation\",\n      \"TailleHor=${1:nombre}\",\n      \"TailleVer=${1:nombre}\",\n      \"TailleHorMax=${1:nombre}\",\n      \"TailleVerMax=${1:nombre}\",\n      \"Nom=${1:nom}\"\n    ],\n    \"\\\\CalculsCroises\": [\n      \"Largeur=\",\n      \"Couleur=\",\n      \"Solution\",\n      \"CouleurS=\",\n      \"ListeNombres={${1:liste}}\",\n      \"Inverse\",\n      \"Vide\",\n      \"Creation\",\n      \"Negatifs\",\n      \"Graines\"\n    ],\n    \"\\\\NombreAstral\": [\n      \"Echelle=${1:échelle}\",\n      \"Solution\",\n      \"Graine=${1:integer}\",\n      \"Couleur=\"\n    ],\n    \"\\\\CompteBon\": [\n      \"NombreCalculs=${1:nombre}\",\n      \"Solution\",\n      \"Graine=${1:integer}\",\n      \"Relatifs\",\n      \"Original\",\n      \"Plaques=${1:nombre}\"\n    ],\n    \"\\\\BarresCalculs\": [\n      \"Litteral\",\n      \"Perso\",\n      \"Decimaux\"\n    ],\n    \"\\\\EnigmeAire\": [\n      \"Modele=${1|A,B,C,D,E,F|}\",\n      \"Etape=${1:nombre}\",\n      \"Echelle=\",\n      \"Couleur=\",\n      \"Solution\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\Tectonic\": [\n      \"TLargeur=${1:nombre}\",\n      \"THauteur=${1:nombre}\",\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Solution\",\n      \"CouleurSolution=\"\n    ],\n    \"\\\\Calisson\": [\n      \"Rayon=\",\n      \"Taille=${1:nombre}\",\n      \"Solution\",\n      \"Couleur=\"\n    ],\n    \"\\\\PuzzlePyramide\": [\n      \"Etages=${1:integer}\",\n      \"Largeur=\",\n      \"NbLignes=${1:integer}\",\n      \"Solution\",\n      \"Graine=${1:nombre}\",\n      \"Questions\"\n    ],\n    \"\\\\MessageCache\": [\n      \"TLargeur=${1:nombre}\",\n      \"THauteur=${1:nombre}\",\n      \"Largeur=\",\n      \"Hauteur=\",\n      \"Plateau\"\n    ],\n    \"\\\\RondeInfernale\": [\n      \"Rectangle\",\n      \"Rayon=\",\n      \"Etapes=${1:nombre}\",\n      \"Relatifs\",\n      \"Vide\",\n      \"Cle=\\\"${1:valeur}\\\"\",\n      \"ListeOperations={${1:opérations}}\",\n      \"ListeNombres={${1:nombres}}\"\n    ],\n    \"\\\\Futoshiki\": [\n      \"Largeur=\",\n      \"Solution\",\n      \"CouleurSolution=\",\n      \"CouleurCase=\",\n      \"StyleTexte=${1:font commands}\"\n    ],\n    \"\\\\Garam\": [\n      \"Taille=${1:nombre}\",\n      \"Largeur=\",\n      \"Solution\",\n      \"CouleurSolution=\"\n    ],\n    \"\\\\SquarO\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Echelle=\",\n      \"Solution\",\n      \"Nom=${1:nom}\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\Grades\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Echelle=\",\n      \"Solution\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\MidPoint\": [\n      \"Hard\",\n      \"Solution\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\Kakurasu\": [\n      \"Longueur=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Echelle=\",\n      \"Solution\",\n      \"Graine=${1:nombre}\"\n    ],\n    \"\\\\Trio,TrioCourt\": [\n      \"Largeur=\",\n      \"Repere\",\n      \"Cible=${1:nombre}\",\n      \"Graine=${1:nombre}\",\n      \"Ligne=${1:integer}\",\n      \"Colonne=${1:integer}\",\n      \"Vide\",\n      \"VideRepere\"\n    ],\n    \"\\\\Nonogramme\": [\n      \"Enonce\",\n      \"Unite=\",\n      \"Taille=${1:nombre}\",\n      \"Solution\"\n    ],\n    \"\\\\Dobble\": [\n      \"Niveau=${1:nombre}\",\n      \"Cercle\",\n      \"CouleurCadre=\"\n    ],\n    \"\\\\NumberHive\": [\n      \"UniteHexa=\",\n      \"Negatif\",\n      \"Produit\",\n      \"Niveau=${1:nombre}\",\n      \"Double\",\n      \"Graine=${1:nombre}\",\n      \"Jetons={${1:jetons}}\",\n      \"Cases={${1:cases}}\",\n      \"Aide\",\n      \"ListeCouleurs={${1:list des couleurs}}\"\n    ],\n    \"\\\\Grimuku\": [\n      \"TLargeur=${1:nombre}\",\n      \"Largeur=\",\n      \"CouleurCase=\",\n      \"CouleurSolution=\"\n    ],\n    \"\\\\PuzzleMul\": [\n      \"Unite=\",\n      \"Solution\",\n      \"Couleur=\"\n    ],\n    \"\\\\Horloge\": [\n      \"Aiguilles\",\n      \"Secondes\",\n      \"Cadre\",\n      \"Numerique\",\n      \"Impression\",\n      \"Secondes\"\n    ],\n    \"\\\\DefiCalculatrice\": [\n      \"Impression\",\n      \"ListeTouches={${1:touches}}\"\n    ],\n    \"\\\\begin{Bulle}\": [\n      \"Nom=${1:nom}\",\n      \"Largeur=\",\n      \"Pointilles\",\n      \"CTrace=\",\n      \"Epaisseur=\",\n      \"Rayon=${1:nombre}\",\n      \"CFond=\",\n      \"Ancre={${1:x,y}}\"\n    ],\n    \"\\\\begin{Twitter}\": [\n      \"Largeur=\",\n      \"Auteur=${1:auteur}\",\n      \"Date=${1:date}\",\n      \"Url=${1:URL}\",\n      \"Logo=${1:imagefile}\",\n      \"EchelleLogo=${1:factor}\",\n      \"Publie\"\n    ],\n    \"\\\\begin{Facebook}\": [\n      \"Largeur=\",\n      \"Auteur=${1:auteur}\",\n      \"Date=${1:date}\",\n      \"Logo=${1:imagefile}\",\n      \"EchelleLogo=${1:factor}\",\n      \"Publie\",\n      \"Heure=${1:heure}\"\n    ],\n    \"\\\\begin{Snapchat}\": [\n      \"Largeur=\",\n      \"Auteur=${1:auteur}\",\n      \"Date=${1:date}\",\n      \"Logo=${1:imagefile}\",\n      \"EchelleLogo=${1:factor}\",\n      \"Temps=${1:temps}\",\n      \"Texte=${1:texte}\"\n    ],\n    \"\\\\begin{Instagram}\": [\n      \"Largeur=\",\n      \"Auteur=${1:auteur}\",\n      \"Date=${1:date}\",\n      \"Logo=${1:imagefile}\",\n      \"EchelleLogo=${1:factor}\",\n      \"Temps=${1:temps}\",\n      \"Expediteur=${1:expéditeur}\",\n      \"LogoEx=${1:imagefile}\",\n      \"Texte=${1:texte}\"\n    ],\n    \"\\\\Radar\": [\n      \"Rayon=\",\n      \"Pas=${1:integer}\",\n      \"Reference=${1:integer}\",\n      \"MoyenneClasse\",\n      \"Disciplines\"\n    ],\n    \"\\\\Jauge\": [\n      \"TexteOrigine=${1:texte}\",\n      \"TexteReference=${1:texte}\",\n      \"Nom=${1:nom}\",\n      \"CouleurBarre=\",\n      \"CouleurFond=\",\n      \"Graduation\",\n      \"CouleurGraduation=\",\n      \"Niveau\",\n      \"LimiteI=${1:pourcentage}\",\n      \"LimiteF=${1:pourcentage}\",\n      \"LimiteS=${1:pourcentage}\",\n      \"CouleurI=\",\n      \"CouleurF=\",\n      \"CouleurS=\",\n      \"CouleurM=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ProfCollege#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ProfLabo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TubeAEssai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TubeAEssai{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"TubeAEssai\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TubeAEssai[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\TubeAEssai\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EchelleTube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EchelleTube{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"EchelleTube\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EchelleTube[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\EchelleTube\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Becher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Becher{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"Becher\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Becher[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\Becher\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FioleJaugee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FioleJaugee{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"FioleJaugee\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FioleJaugee[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\FioleJaugee\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Erlen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Erlen{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"Erlen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Erlen[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\Erlen\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Dosage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dosage{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"Dosage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dosage[${2:clés%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\Dosage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CouleurActuelle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurBecher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurBecherd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurErlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurFiole\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurTitrant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurTitre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CouleurTube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EchelleActuelle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenpartielfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenpartieltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenpleinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenpleintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenvidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erlenvidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiolepleinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiolepleinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiolevidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiolevidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gendeerlenfalsefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gendeerlenfalsetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hauteurerlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hauteurfiole\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hauteurmaxtube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HauteurTube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iferlenpartiel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iferlenplein\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iferlenvide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffiolepleine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffiolevide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflegende\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflegendeerlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflegendefiole\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflegendesouserlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflegendetube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftraitnoirbecher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftraitnoirerlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegendeActuelle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegendeActuelleB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegendeActuelleD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegendeActuelleF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LegendeActuelleT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendeerlenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendeerlenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendeerlentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendefiolefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendefioletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendesouserlenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendesouserlentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendetubefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendetubetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ListeAvantCouleurs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ListeAvantLegendes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ListeCouleurs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ListeLegendes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombretube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traitnoirbecherfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traitnoirbechertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traitnoirerlenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traitnoirerlentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traittrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\TubeAEssai\": [\n      \"Couleurs=\",\n      \"Echelle=${1:valeur}\",\n      \"Legende=${1:text}\",\n      \"Hauteur=${1:valeur}\"\n    ],\n    \"\\\\EchelleTube\": [\n      \"Couleurs={${1:color1,color2,...}}\",\n      \"Echelle=${1:valeur}\",\n      \"Legendes={${1:label1,label2,...}}\"\n    ],\n    \"\\\\Becher\": [\n      \"Couleurs=\",\n      \"Echelle=${1:valeur}\",\n      \"Legende=${1:text}\"\n    ],\n    \"\\\\FioleJaugee\": [\n      \"Couleurs=\",\n      \"Echelle=${1:valeur}\",\n      \"Legende=${1:text}\",\n      \"Hauteur=${1:valeur}\"\n    ],\n    \"\\\\Erlen\": [\n      \"Couleurs=\",\n      \"Echelle=${1:valeur}\",\n      \"Legende=${1:text}\",\n      \"LegendeDessous=${1:text}\",\n      \"Hauteur=${1:valeur}\"\n    ],\n    \"\\\\Dosage\": [\n      \"Titrant=${1:titrant}\",\n      \"Titre=${1:titre}\",\n      \"Echelle=${1:valeur}\",\n      \"CouleurTitrant=\",\n      \"CouleurTitre=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ProfLycee.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tkz-tab\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"xintbinhex\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"xintgcd\"\n    },\n    {\n      \"name\": \"randomlist\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"settobox\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarylindenmayersystems\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"piton\"\n    },\n    {\n      \"name\": \"nicematrix\"\n    },\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"interval\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"modulus\"\n    },\n    {\n      \"name\": \"pythontex\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useproflyclib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useproflyclib{${1:librairies%keyvals}}\",\n        \"keys\": [\n          \"\\\\useproflyclib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResolutionApprochee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResolutionApprochee{${1:équation}}\"\n      }\n    },\n    {\n      \"name\": \"ResolutionApprochee\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ResolutionApprochee{${1:équation}}[${2:macro}]\"\n      }\n    },\n    {\n      \"name\": \"ResolutionApprochee\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ResolutionApprochee[${2:options%keyvals}]{${1:équation}}\",\n        \"keys\": [\n          \"\\\\ResolutionApprochee\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResolutionApprochee\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ResolutionApprochee[${2:options%keyvals}]{${1:équation}}[${3:macro}]\",\n        \"keys\": [\n          \"\\\\ResolutionApprochee\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionTVI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SolutionTVI{${1:fonction}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"SolutionTVI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SolutionTVI[${3:options%keyvals}]{${1:fonction}}{${2:valeur}}\",\n        \"keys\": [\n          \"\\\\SolutionTVI\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculTermeRecurrence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculTermeRecurrence{${1:fonction associée}}\"\n      }\n    },\n    {\n      \"name\": \"CalculTermeRecurrence\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CalculTermeRecurrence[${2:options%keyvals}]{${1:fonction associée}}\",\n        \"keys\": [\n          \"\\\\CalculTermeRecurrence\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSeuil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SolutionSeuil{${1:fonction associée}}{${2:seuil}}\"\n      }\n    },\n    {\n      \"name\": \"SolutionSeuil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SolutionSeuil[${3:options%keyvals}]{${1:fonction associée}}{${2:seuil}}\",\n        \"keys\": [\n          \"\\\\SolutionSeuil\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CompteurSeuil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntegraleApprochee\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IntegraleApprochee{${1:fonction}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"IntegraleApprochee\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IntegraleApprochee[${4:options%keyvals}]{${1:fonction}}{${2:a}}{${3:b}}\",\n        \"keys\": [\n          \"\\\\IntegraleApprochee\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EquationReduite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EquationReduite{${1:A/xa/ya,B/xb/yb}}\"\n      }\n    },\n    {\n      \"name\": \"EquationReduite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EquationReduite[${2:d}]{${1:A/xa/ya,B/xb/yb}}\"\n      }\n    },\n    {\n      \"name\": \"CalculFormelParametres\"\n    },\n    {\n      \"name\": \"CalculFormelParametres\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CalculFormelParametres[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"CalculFormelLigne\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalculFormelLigne{${1:commande%text}}{${2:résultat%text}}\"\n      }\n    },\n    {\n      \"name\": \"CalculFormelLigne\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CalculFormelLigne[${3:options%keyvals}]{${1:commande%text}}{${2:résultat%text}}\",\n        \"keys\": [\n          \"\\\\CalculFormelLigne\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CFchap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CFpremcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CFhpremcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CodePythonLstFichier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CodePythonLstFichier{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichier\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CodePythonLstFichier[${3:largeur%l}]{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichier*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CodePythonLstFichier*{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichier*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CodePythonLstFichier*[${3:largeur%l}]{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichierAlt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CodePythonLstFichierAlt{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichierAlt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CodePythonLstFichierAlt[${3:largeur%l}]{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichierAlt*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CodePythonLstFichierAlt*{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstFichierAlt*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CodePythonLstFichierAlt*[${3:largeur%l}]{${1:tcolorbox options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"CartoucheCapytale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CartoucheCapytale{${1:code capytale}}\"\n      }\n    },\n    {\n      \"name\": \"CartoucheCapytale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CartoucheCapytale[${2:prefix}]{${1:code capytale}}\"\n      }\n    },\n    {\n      \"name\": \"CartoucheCapytale*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CartoucheCapytale*{${1:code capytale}}\"\n      }\n    },\n    {\n      \"name\": \"CartoucheCapytale*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CartoucheCapytale*[${2:prefix}]{${1:code capytale}}\"\n      }\n    },\n    {\n      \"name\": \"PaveTikz\"\n    },\n    {\n      \"name\": \"PaveTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PaveTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\PaveTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TetraedreTikz\"\n    },\n    {\n      \"name\": \"TetraedreTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TetraedreTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\TetraedreTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CercleTrigo\"\n    },\n    {\n      \"name\": \"CercleTrigo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CercleTrigo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\CercleTrigo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculsRegLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalculsRegLin{${1:listeX}}{${2:listeY}}\"\n      }\n    },\n    {\n      \"name\": \"CalculsRegLin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CalculsRegLin[${3:options%keyvals}]{${1:listeX}}{${2:listeY}}\",\n        \"keys\": [\n          \"\\\\CalculsRegLin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LXSomme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LYSomme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LXmoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LYmoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LXvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LYvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LXYvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PointsRegLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PointsRegLin{${1:listeX}}{${2:listeY}}\"\n      }\n    },\n    {\n      \"name\": \"PointsRegLin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PointsRegLin[${3:options%keyvals}]{${1:listeX}}{${2:listeY}}\",\n        \"keys\": [\n          \"\\\\PointsRegLin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrilleTikz\"\n    },\n    {\n      \"name\": \"GrilleTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GrilleTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GrilleTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrilleTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"GrilleTikz[${1:options%keyvals}][${2:options grille ppale}]\",\n        \"keys\": [\n          \"\\\\GrilleTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrilleTikz\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"GrilleTikz[${1:options%keyvals}][${2:options grille ppale}][${3:options grille second}]\",\n        \"keys\": [\n          \"\\\\GrilleTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AxesTikz\"\n    },\n    {\n      \"name\": \"AxesTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AxesTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\AxesTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AxexTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AxexTikz{${1:valeurs}}\"\n      }\n    },\n    {\n      \"name\": \"AxexTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AxexTikz[${2:options%keyvals}]{${1:valeurs}}\",\n        \"keys\": [\n          \"\\\\AxexTikz,\\\\AxeyTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AxeyTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AxeyTikz{${1:valeurs}}\"\n      }\n    },\n    {\n      \"name\": \"AxeyTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AxeyTikz[${2:options%keyvals}]{${1:valeurs}}\",\n        \"keys\": [\n          \"\\\\AxexTikz,\\\\AxeyTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffAngleRadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffAngleRadian{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"AffAngleRadian*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AffAngleRadian*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"FenetreTikz\"\n    },\n    {\n      \"name\": \"FenetreSimpleTikz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FenetreSimpleTikz{${1:liste valx}}{${2:liste valy}}\"\n      }\n    },\n    {\n      \"name\": \"FenetreSimpleTikz<opt axe Ox>\",\n      \"arg\": {\n        \"format\": \"{}<>{}\",\n        \"snippet\": \"FenetreSimpleTikz<opt axe Ox>{${1:liste valx}}<${3:opt axe Oy}>{${2:liste valy}}\"\n      }\n    },\n    {\n      \"name\": \"FenetreSimpleTikz\",\n      \"arg\": {\n        \"format\": \"()<>{}<>{}\",\n        \"snippet\": \"FenetreSimpleTikz(${5:opt axes})<${3:opt axe Ox}>{${1:liste valx}}<${4:opt axe Oy}>{${2:liste valy}}\"\n      }\n    },\n    {\n      \"name\": \"FenetreSimpleTikz\",\n      \"arg\": {\n        \"format\": \"[]()<>{}<>{}\",\n        \"snippet\": \"FenetreSimpleTikz[${3:opt}](${6:opt axes})<${4:opt axe Ox}>{${1:liste valx}}<${5:opt axe Oy}>{${2:liste valy}}\"\n      }\n    },\n    {\n      \"name\": \"OrigineTikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrigineTikz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OrigineTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\OrigineTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NuagePointsTikz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NuagePointsTikz{${1:listeX}}{${2:listeY}}\"\n      }\n    },\n    {\n      \"name\": \"NuagePointsTikz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NuagePointsTikz[${3:options%keyvals}]{${1:listeX}}{${2:listeY}}\",\n        \"keys\": [\n          \"\\\\NuagePointsTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PointMoyenTikz\"\n    },\n    {\n      \"name\": \"PointMoyenTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PointMoyenTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\PointMoyenTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CourbeTikz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CourbeTikz{${1:formule}}{${2:domaine}}\"\n      }\n    },\n    {\n      \"name\": \"CourbeTikz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CourbeTikz[${3:TikZ clés}]{${1:formule}}{${2:domaine}}\"\n      }\n    },\n    {\n      \"name\": \"axexOx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axeyOy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ymin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ymax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xgrille\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xgrilles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ygrille\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ygrilles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SplineTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SplineTikz{${1:x1/y1/d1§x2/y2/d2§...}}\"\n      }\n    },\n    {\n      \"name\": \"SplineTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SplineTikz[${2:options%keyvals}]{${1:x1/y1/d1§x2/y2/d2§...}}\",\n        \"keys\": [\n          \"\\\\SplineTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TangenteTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TangenteTikz{${1:x1/y1/d1§x2/y2/d2§...}}\"\n      }\n    },\n    {\n      \"name\": \"TangenteTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TangenteTikz[${2:options%keyvals}]{${1:x1/y1/d1§x2/y2/d2§...}}\",\n        \"keys\": [\n          \"\\\\TangenteTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PtsDiscontinuite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PtsDiscontinuite{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"PtsDiscontinuite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PtsDiscontinuite[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\PtsDiscontinuite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BoiteMoustaches\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BoiteMoustaches{${1:a1/a2/...}}\"\n      }\n    },\n    {\n      \"name\": \"BoiteMoustaches\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BoiteMoustaches[${2:options%keyvals}]{${1:a1/a2/...}}\",\n        \"keys\": [\n          \"\\\\BoiteMoustaches\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BoiteMoustachesAxe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BoiteMoustachesAxe[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\BoiteMoustachesAxe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Histogramme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Histogramme{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Histogramme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Histogramme[${2:options%keyvals}]{${1:données}}\",\n        \"keys\": [\n          \"\\\\Histogramme,\\\\Histogramme*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Histogramme*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Histogramme*{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Histogramme*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Histogramme*[${2:options%keyvals}]{${1:données}}\",\n        \"keys\": [\n          \"\\\\Histogramme,\\\\Histogramme*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalcBinomP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CalcBinomP{${1:n}}{${2:p}}{${3:k}}\"\n      }\n    },\n    {\n      \"name\": \"CalcBinomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CalcBinomC{${1:n}}{${2:p}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"CalcPoissP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalcPoissP{${1:l}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"CalcPoissC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CalcPoissC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"CalcGeomP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalcGeomP{${1:p}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"CalcGeomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CalcGeomC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"CalcHypergeomP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CalcHypergeomP{${1:N}}{${2:n}}{${3:m}}{${4:k}}\"\n      }\n    },\n    {\n      \"name\": \"CalcHypergeomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"CalcHypergeomC{${1:N}}{${2:n}}{${3:m}}{${4:a}}{${5:b}}\"\n      }\n    },\n    {\n      \"name\": \"CalcNormC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CalcNormC{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"CalcExpoC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CalcExpoC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"BinomP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BinomP{${1:n}}{${2:p}}{${3:k}}\"\n      }\n    },\n    {\n      \"name\": \"BinomP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"BinomP[${4:prec}]{${1:n}}{${2:p}}{${3:k}}\"\n      }\n    },\n    {\n      \"name\": \"BinomP*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BinomP*{${1:n}}{${2:p}}{${3:k}}\"\n      }\n    },\n    {\n      \"name\": \"BinomP*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"BinomP*[${4:prec}]{${1:n}}{${2:p}}{${3:k}}\"\n      }\n    },\n    {\n      \"name\": \"BinomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BinomC{${1:n}}{${2:p}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"BinomC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BinomC[${5:prec}]{${1:n}}{${2:p}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"BinomC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BinomC*{${1:n}}{${2:p}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"BinomC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BinomC*[${5:prec}]{${1:n}}{${2:p}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PoissonP{${1:l}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PoissonP[${3:prec}]{${1:l}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonP*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PoissonP*{${1:l}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonP*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PoissonP*[${3:prec}]{${1:l}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PoissonC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PoissonC[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PoissonC*{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"PoissonC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PoissonC*[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"GeomP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GeomP{${1:p}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"GeomP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GeomP[${3:prec}]{${1:p}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"GeomP*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GeomP*{${1:p}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"GeomP*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GeomP*[${3:prec}]{${1:p}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"GeomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GeomC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"GeomC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"GeomC[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"GeomC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GeomC*{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"GeomC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"GeomC*[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"HypergeomP{${1:N}}{${2:n}}{${3:m}}{${4:k}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"HypergeomP[${5:prec}]{${1:N}}{${2:n}}{${3:m}}{${4:k}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomP*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"HypergeomP*{${1:N}}{${2:n}}{${3:m}}{${4:k}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomP*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"HypergeomP*[${5:prec}]{${1:N}}{${2:n}}{${3:m}}{${4:k}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"HypergeomC{${1:N}}{${2:n}}{${3:m}}{${4:a}}{${5:b}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"HypergeomC[${6:prec}]{${1:N}}{${2:n}}{${3:m}}{${4:a}}{${5:b}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"HypergeomC*{${1:N}}{${2:n}}{${3:m}}{${4:a}}{${5:b}}\"\n      }\n    },\n    {\n      \"name\": \"HypergeomC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"HypergeomC*[${6:prec}]{${1:N}}{${2:n}}{${3:m}}{${4:a}}{${5:b}}\"\n      }\n    },\n    {\n      \"name\": \"NormaleC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NormaleC{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"NormaleC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NormaleC[${5:prec}]{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"NormaleC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NormaleC*{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"NormaleC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NormaleC*[${5:prec}]{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"ExpoC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExpoC{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"ExpoC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ExpoC[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"ExpoC*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExpoC*{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"ExpoC*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ExpoC*[${4:prec}]{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"ArbreProbasTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArbreProbasTikz{${1:donnees}}\"\n      }\n    },\n    {\n      \"name\": \"ArbreProbasTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ArbreProbasTikz[${2:options%keyvals}]{${1:donnees}}\",\n        \"keys\": [\n          \"\\\\ArbreProbasTikz,\\\\begin{EnvArbreProbasTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoiNormaleGraphe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LoiNormaleGraphe{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"LoiNormaleGraphe<TikZ options>\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LoiNormaleGraphe<TikZ options>{${1:m}}{${2:s}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"LoiNormaleGraphe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"LoiNormaleGraphe[${5:options%keyvals}]{${1:m}}{${2:s}}{${3:a}}{${4:b}}\",\n        \"keys\": [\n          \"\\\\LoiNormaleGraphe,\\\\LoiExpoGraphe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoiNormaleGraphe\",\n      \"arg\": {\n        \"format\": \"[]<>{}{}{}{}\",\n        \"snippet\": \"LoiNormaleGraphe[${5:options%keyvals}]<${6:TikZ options}>{${1:m}}{${2:s}}{${3:a}}{${4:b}}\",\n        \"keys\": [\n          \"\\\\LoiNormaleGraphe,\\\\LoiExpoGraphe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoiExpoGraphe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LoiExpoGraphe{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"LoiExpoGraphe<TikZ options>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LoiExpoGraphe<TikZ options>{${1:l}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"LoiExpoGraphe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"LoiExpoGraphe[${4:options%keyvals}]{${1:l}}{${2:a}}{${3:b}}\",\n        \"keys\": [\n          \"\\\\LoiNormaleGraphe,\\\\LoiExpoGraphe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoiExpoGraphe\",\n      \"arg\": {\n        \"format\": \"[]<>{}{}{}\",\n        \"snippet\": \"LoiExpoGraphe[${4:options%keyvals}]<${5:TikZ options}>{${1:l}}{${2:a}}{${3:b}}\",\n        \"keys\": [\n          \"\\\\LoiNormaleGraphe,\\\\LoiExpoGraphe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NbAlea\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NbAlea{${1:a}}{${2:b}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NbAlea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NbAlea[${4:n}]{${1:a}}{${2:b}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VarNbAlea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VarNbAlea{${1:macro%cmd}}{${2:calculs}}\"\n      }\n    },\n    {\n      \"name\": \"TirageAleatoireEntiers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TirageAleatoireEntiers{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TirageAleatoireEntiers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TirageAleatoireEntiers[${2:options%keyvals}]{${1:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\TirageAleatoireEntiers\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arrangement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Arrangement{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"Arrangement\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Arrangement[${3:option%keyvals}]{${1:p}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\Arrangement,\\\\Arrangement*,\\\\Combinaison,\\\\Combinaison*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arrangement*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Arrangement*{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"Arrangement*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Arrangement*[${3:option%keyvals}]{${1:p}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\Arrangement,\\\\Arrangement*,\\\\Combinaison,\\\\Combinaison*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Combinaison\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Combinaison{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"Combinaison\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Combinaison[${3:option%keyvals}]{${1:p}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\Arrangement,\\\\Arrangement*,\\\\Combinaison,\\\\Combinaison*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Combinaison*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Combinaison*{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"Combinaison*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Combinaison*[${3:option%keyvals}]{${1:p}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\Arrangement,\\\\Arrangement*,\\\\Combinaison,\\\\Combinaison*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CalculAnp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalculAnp{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"CalculCnp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalculCnp{${1:p}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"FonctionRepartTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FonctionRepartTikz{${1:liste des probas,borneinf,bornesup}}\"\n      }\n    },\n    {\n      \"name\": \"FonctionRepartTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FonctionRepartTikz[${2:option%keyvals}]{${1:liste des probas,borneinf,bornesup}}\",\n        \"keys\": [\n          \"\\\\FonctionRepartTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionDecBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionDecBin{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionDecBin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionDecBin[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ConversionDecBin,\\\\ConversionDecBin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionDecBin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionDecBin*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionDecBin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionDecBin*[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ConversionDecBin,\\\\ConversionDecBin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionBinHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionBinHex{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionBinHex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionBinHex[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ConversionBinHex,\\\\ConversionHexBin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionHexBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionHexBin{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionHexBin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionHexBin[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ConversionBinHex,\\\\ConversionHexBin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionVersDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionVersDec{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionVersDec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionVersDec[${2:options%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ConversionVersDec,\\\\ConversionBaseDix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionBaseDix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConversionBaseDix{${1:nombre}}{${2:base de départ}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionBaseDix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ConversionBaseDix[${3:options%keyvals}]{${1:nombre}}{${2:base de départ}}\",\n        \"keys\": [\n          \"\\\\ConversionVersDec,\\\\ConversionBaseDix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionDepuisBaseDix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConversionDepuisBaseDix{${1:nombre en base 10}}{${2:base d'arrivée}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionDepuisBaseDix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ConversionDepuisBaseDix[${3:options%keyvals}]{${1:nombre en base 10}}{${2:base d'arrivée}}\",\n        \"keys\": [\n          \"\\\\ConversionDepuisBaseDix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PresentationPGCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PresentationPGCD{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"PresentationPGCD\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PresentationPGCD[${3:options%keyvals}]{${1:a}}{${2:b}}\",\n        \"keys\": [\n          \"\\\\PresentationPGCD\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EquationDiophantienne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EquationDiophantienne{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"EquationDiophantienne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EquationDiophantienne[${2:options%keyvals}]{${1:equation}}\",\n        \"keys\": [\n          \"\\\\EquationDiophantienne\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ListeDiviseurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeDiviseurs{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ListeDiviseurs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ListeDiviseurs[${2:AffNom=false}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ListeDiviseurs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeDiviseurs*{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ListeDiviseurs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ListeDiviseurs*[${2:AffNom=false}]{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ArbreDiviseurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArbreDiviseurs{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"ArbreDiviseurs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ArbreDiviseurs[${2:clés%keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\ArbreDiviseurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionFraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionFraction{${1:calcul}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionFraction\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionFraction[${2:option de formatage%keyvals}]{${1:calcul}}\",\n        \"keys\": [\n          \"\\\\ConversionFraction,\\\\ConversionFraction*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConversionFraction*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConversionFraction*{${1:calcul}}\"\n      }\n    },\n    {\n      \"name\": \"ConversionFraction*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConversionFraction*[${2:option de formatage%keyvals}]{${1:calcul}}\",\n        \"keys\": [\n          \"\\\\ConversionFraction,\\\\ConversionFraction*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EcritureEnsemble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcritureEnsemble{${1:a1/a2/...}}\"\n      }\n    },\n    {\n      \"name\": \"EcritureEnsemble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EcritureEnsemble[${2:options%keyvals}]{${1:a1/a2/...}}\",\n        \"keys\": [\n          \"\\\\EcritureEnsemble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignes\"\n    },\n    {\n      \"name\": \"MiniSchemaSignes<TikZ options>\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MiniSchemaSignes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MiniSchemaSignes[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignes\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"MiniSchemaSignes[${1:options%keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignes*\"\n    },\n    {\n      \"name\": \"MiniSchemaSignes*<TikZ options>\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MiniSchemaSignes*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MiniSchemaSignes*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignes*\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"MiniSchemaSignes*[${1:options%keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MiniSchemaSignesTkzTab{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MiniSchemaSignesTkzTab{${1:numligne}}[${2:echelle}]\"\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"MiniSchemaSignesTkzTab{${1:numligne}}[${2:echelle}][${3:décalage horizontal}]\"\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MiniSchemaSignesTkzTab[${2:options%keyvals}]{${1:numligne}}\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MiniSchemaSignesTkzTab[${2:options%keyvals}]{${1:numligne}}[${3:echelle}]\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MiniSchemaSignesTkzTab\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"MiniSchemaSignesTkzTab[${2:options%keyvals}]{${1:numligne}}[${3:echelle}][${4:décalage horizontal}]\",\n        \"keys\": [\n          \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ToileRecurrence\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ToileRecurrence[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ToileRecurrence\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ToileRecurrence\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ToileRecurrence[${1:options%keyvals}][${2:options du tracé}]\",\n        \"keys\": [\n          \"\\\\ToileRecurrence\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ToileRecurrence\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"ToileRecurrence[${1:options%keyvals}][${2:options du tracé}][${3:option supplémentaire des termes}]\",\n        \"keys\": [\n          \"\\\\ToileRecurrence\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareFonctionTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFonctionTikz{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFonctionTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareFonctionTikz[${2:nom}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"IntegraleApprocheeTikz\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IntegraleApprocheeTikz{${1:nom fonction}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"IntegraleApprocheeTikz\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IntegraleApprocheeTikz[${4:options%keyvals}]{${1:nom fonction}}{${2:a}}{${3:b}}\",\n        \"keys\": [\n          \"\\\\IntegraleApprocheeTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffPoint(${1:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"AffPoint\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"AffPoint[${1:options}](${2:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"AffVecteur\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffVecteur(${1:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"AffVecteur<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffVecteur<options nicematrix>(${1:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"AffVecteur\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"AffVecteur[${1:options}](${2:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"AffVecteur\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"AffVecteur[${1:options}]<${2:options nicematrix}>(${3:liste de coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartPlan\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TrouveEqCartPlan(${1:vecteur normal})(${2:point})\"\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartPlan\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"TrouveEqCartPlan(${1:vecteur dir1})(${2:vecteur dir2})(${3:point})\"\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartPlan\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"TrouveEqCartPlan[${1:options%keyvals}](${2:vecteur normal})(${3:point})\",\n        \"keys\": [\n          \"\\\\TrouveEqCartPlan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartPlan\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"TrouveEqCartPlan[${1:options%keyvals}](${2:vecteur dir1})(${3:vecteur dir2})(${4:point})\",\n        \"keys\": [\n          \"\\\\TrouveEqCartPlan\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TrouveEqParamDroite\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TrouveEqParamDroite(${1:vecteur directeur})(${2:point})\"\n      }\n    },\n    {\n      \"name\": \"TrouveEqParamDroite\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"TrouveEqParamDroite[${1:options%keyvals}](${2:vecteur directeur})(${3:point})\",\n        \"keys\": [\n          \"\\\\TrouveEqParamDroite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartDroite\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TrouveEqCartDroite(${1:vecteur})(${2:point})\"\n      }\n    },\n    {\n      \"name\": \"TrouveEqCartDroite\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"TrouveEqCartDroite[${1:options%keyvals}](${2:vecteur})(${3:point})\",\n        \"keys\": [\n          \"\\\\TrouveEqCartDroite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TrouveNorme\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"TrouveNorme(${1:vecteur})\"\n      }\n    },\n    {\n      \"name\": \"TrouveNorme\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TrouveNorme(${1:point1})(${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"TrouveDistancePtPlan\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"TrouveDistancePtPlan(${1:point})(${2:vec normal du plan})(${3:point du plan})\"\n      }\n    },\n    {\n      \"name\": \"TrouveDistancePtPlan\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TrouveDistancePtPlan(${1:point})(${2:équation cartésienne})\"\n      }\n    },\n    {\n      \"name\": \"EcritureTrinome\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EcritureTrinome{${1:a}}{${2:b}}{${3:c}}\"\n      }\n    },\n    {\n      \"name\": \"EcritureTrinome\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"EcritureTrinome[${4:options%keyvals}]{${1:a}}{${2:b}}{${3:c}}\",\n        \"keys\": [\n          \"\\\\EcritureTrinome\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SimplificationRacine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SimplificationRacine{${1:expression ou calcul}}\"\n      }\n    },\n    {\n      \"name\": \"MesurePrincipale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MesurePrincipale{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"MesurePrincipale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MesurePrincipale[${2:options%keyvals}]{${1:angle}}\",\n        \"keys\": [\n          \"\\\\MesurePrincipale\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LigneTrigo\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"LigneTrigo{${1:cos|${2:sin}|tan}}(${3:angle})\"\n      }\n    },\n    {\n      \"name\": \"LigneTrigo\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"LigneTrigo[${2:options%keyvals}]{${1:cos|${3:sin}|tan}}(${4:angle})\",\n        \"keys\": [\n          \"\\\\LigneTrigo,\\\\LigneTrigo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LigneTrigo*\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"LigneTrigo*{${1:cos|${2:sin}|tan}}(${3:angle})\"\n      }\n    },\n    {\n      \"name\": \"LigneTrigo*\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"LigneTrigo*[${2:options%keyvals}]{${1:cos|${3:sin}|tan}}(${4:angle})\",\n        \"keys\": [\n          \"\\\\LigneTrigo,\\\\LigneTrigo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SudoMaths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SudoMaths{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"SudoMaths\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SudoMaths[${2:options%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\SudoMaths,\\\\begin{EnvSudoMaths}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FractaleTikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FractaleTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FractaleTikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FractaleTikz<TikZ options>\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FractaleTikz\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"FractaleTikz[${1:options%keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FractaleTikz*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FractaleTikz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FractaleTikz*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FractaleTikz*<TikZ options>\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FractaleTikz*\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"FractaleTikz*[${1:options%keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtapesFloconKoch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EtapesFloconKoch{${1:étapes}}\"\n      }\n    },\n    {\n      \"name\": \"EtapesFloconKoch\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EtapesFloconKoch[${2:options%keyvals}]{${1:étapes}}\",\n        \"keys\": [\n          \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arrondi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arrondi{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Arrondi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Arrondi[${2:précision}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Arrondi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arrondi*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Arrondi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Arrondi*[${2:précision}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"N*\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"Z*\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"D*\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"R*\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"C*\"\n    },\n    {\n      \"name\": \"ensH\"\n    },\n    {\n      \"name\": \"ensH*\"\n    },\n    {\n      \"name\": \"IntervalleFF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IntervalleFF{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"IntervalleFF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IntervalleFF[${3:options%keyvals}]{${1:arg1%formula}}{${2:arg2%formula}}\",\n        \"keys\": [\n          \"\\\\IntervalleFF,\\\\IntervalleOF,\\\\IntervalleFO,\\\\IntervalleOO\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IntervalleOF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IntervalleOF{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"IntervalleOF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IntervalleOF[${3:options%keyvals}]{${1:arg1%formula}}{${2:arg2%formula}}\",\n        \"keys\": [\n          \"\\\\IntervalleFF,\\\\IntervalleOF,\\\\IntervalleFO,\\\\IntervalleOO\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IntervalleFO\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IntervalleFO{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"IntervalleFO\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IntervalleFO[${3:options%keyvals}]{${1:arg1%formula}}{${2:arg2%formula}}\",\n        \"keys\": [\n          \"\\\\IntervalleFF,\\\\IntervalleOF,\\\\IntervalleFO,\\\\IntervalleOO\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IntervalleOO\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IntervalleOO{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"IntervalleOO\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IntervalleOO[${3:options%keyvals}]{${1:arg1%formula}}{${2:arg2%formula}}\",\n        \"keys\": [\n          \"\\\\IntervalleFF,\\\\IntervalleOF,\\\\IntervalleFO,\\\\IntervalleOO\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vecteur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vecteur{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Vecteur\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Vecteur{${1:arg%formula}}[${2:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Vecteur*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vecteur*{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Vecteur*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Vecteur*{${1:arg%formula}}[${2:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"CoordPtPl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CoordPtPl{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CoordPtEsp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CoordPtEsp{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CoordVecPl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CoordVecPl{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CoordVecEsp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CoordVecEsp{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"MatDeux\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MatDeux{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"RepereOij\"\n    },\n    {\n      \"name\": \"RepereOij\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOij[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"RepereOij*\"\n    },\n    {\n      \"name\": \"RepereOij*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOij*[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"RepereOijk\"\n    },\n    {\n      \"name\": \"RepereOijk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOijk[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"RepereOijk*\"\n    },\n    {\n      \"name\": \"RepereOijk*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOijk*[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"RepereOuv\"\n    },\n    {\n      \"name\": \"RepereOuv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOuv[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"RepereOuv*\"\n    },\n    {\n      \"name\": \"RepereOuv*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RepereOuv*[${2:Sep={${1:symbol}}}]\"\n      }\n    },\n    {\n      \"name\": \"ReperePlan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ReperePlan{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ReperePlan\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ReperePlan[${5:Sep={${1:symbol}}}]{${2:arg1%formula}}{${3:arg2%formula}}{${4:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ReperePlan*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ReperePlan*{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ReperePlan*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ReperePlan*[${5:Sep={${1:symbol}}}]{${2:arg1%formula}}{${3:arg2%formula}}{${4:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"RepereEspace\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RepereEspace{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"RepereEspace\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RepereEspace[${6:Sep={${1:symbol}}}]{${2:arg1%formula}}{${3:arg2%formula}}{${4:arg3%formula}}{${5:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"RepereEspace*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RepereEspace*{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"RepereEspace*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RepereEspace*[${6:Sep={${1:symbol}}}]{${2:arg1%formula}}{${3:arg2%formula}}{${4:arg3%formula}}{${5:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Courbe\"\n    },\n    {\n      \"name\": \"Courbe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Courbe[${1:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Courbe*\"\n    },\n    {\n      \"name\": \"Courbe*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Courbe*[${1:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"jfalg\"\n    },\n    {\n      \"name\": \"jfexp\"\n    },\n    {\n      \"name\": \"Modulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Modulo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Modulo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Modulo[${2:options%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\Modulo,\\\\Modulo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Modulo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Modulo*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Modulo*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Modulo*[${2:options%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\Modulo,\\\\Modulo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Suite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Suite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Suite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Suite[${2:sub}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Integrale\"\n    },\n    {\n      \"name\": \"dx\"\n    },\n    {\n      \"name\": \"dx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dx[${1:var%formula}]\"\n      }\n    },\n    {\n      \"name\": \"LoiNormale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoiNormale{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiNormale*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoiNormale*{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiBinomiale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoiBinomiale{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiBinomiale*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoiBinomiale*{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiPoisson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiPoisson{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiPoisson*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiPoisson*{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiUnif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiUnif{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiUnif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiUnif*{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiExpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiExpo{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LoiExpo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoiExpo*{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Esper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Esper{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Esper\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Esper[${2:symbol%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Varianc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Varianc{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Varianc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Varianc[${2:symbol%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EcType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcType{${1:arg%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CodePythonLst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonLst},\\\\begin{CodePythonLstAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonLst\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLst\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonLst},\\\\begin{CodePythonLstAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonLstAlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstAlt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonLst},\\\\begin{CodePythonLstAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonLstAlt\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonLstAlt\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonLst},\\\\begin{CodePythonLstAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePiton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePiton\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"{${1:tcolorbox options}}<${2:line options}>\"\n      }\n    },\n    {\n      \"name\": \"CodePiton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePiton}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePiton\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}<${3:line options}>\",\n        \"keys\": [\n          \"\\\\begin{CodePiton}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConsolePiton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"ConsolePiton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:piton options}]{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonMinted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonMinted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonMinted},\\\\begin{CodePythonMintedAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonMinted\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonMinted\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonMinted},\\\\begin{CodePythonMintedAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonMintedAlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonMintedAlt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonMinted},\\\\begin{CodePythonMintedAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythonMintedAlt\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythonMintedAlt\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythonMinted},\\\\begin{CodePythonMintedAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PseudoCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"PseudoCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{PseudoCode},\\\\begin{PseudoCodeAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PseudoCode\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"PseudoCode\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{PseudoCode},\\\\begin{PseudoCodeAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PseudoCodeAlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"PseudoCodeAlt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{PseudoCode},\\\\begin{PseudoCodeAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PseudoCodeAlt\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"PseudoCodeAlt\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:options%keyvals}]{${1:tcolorbox options}}\",\n        \"keys\": [\n          \"\\\\begin{PseudoCode},\\\\begin{PseudoCodeAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TerminalWin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Titre=texte}}\"\n      }\n    },\n    {\n      \"name\": \"TerminalWin\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:largeur}]{${1:Titre=texte}}[${3:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"TerminalUnix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Titre=texte}}\"\n      }\n    },\n    {\n      \"name\": \"TerminalUnix\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:largeur}]{${1:Titre=texte}}[${3:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"TerminalOSX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Titre=texte}}\"\n      }\n    },\n    {\n      \"name\": \"TerminalOSX\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:largeur}]{${1:Titre=texte}}[${3:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"PresentationCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"PresentationCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:color}]{${1:tcolorbox options}}\"\n      }\n    },\n    {\n      \"name\": \"EnvArbreProbasTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:donnees}}\"\n      }\n    },\n    {\n      \"name\": \"EnvArbreProbasTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:donnees}}\",\n        \"keys\": [\n          \"\\\\ArbreProbasTikz,\\\\begin{EnvArbreProbasTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvSudoMaths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:grille}}\"\n      }\n    },\n    {\n      \"name\": \"EnvSudoMaths\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:grille}}\",\n        \"keys\": [\n          \"\\\\SudoMaths,\\\\begin{EnvSudoMaths}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythontex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythontex},\\\\begin{CodePythontexAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CodePythontexAlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"CodePythontexAlt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\begin{CodePythontex},\\\\begin{CodePythontexAlt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConsolePythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ConsolePythontex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\begin{ConsolePythontex}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ProfLycee#c\": [\n      \"xcolor\",\n      \"build\",\n      \"nonamssymb\"\n    ],\n    \"\\\\useproflyclib#c\": [\n      \"piton\",\n      \"minted\",\n      \"pythontex\"\n    ],\n    \"\\\\ResolutionApprochee\": [\n      \"Precision=${1:integer}\",\n      \"Intervalle=${1:min:max}\",\n      \"Variable=${1:variable}\"\n    ],\n    \"\\\\SolutionTVI\": [\n      \"NomFct=${1:nom}\",\n      \"NomSol=${1:nom}\",\n      \"va=${1:nombre}\",\n      \"vb=${1:nombre}\",\n      \"Precision=${1:nombre}\",\n      \"Stretch=${1:factor}\",\n      \"Balayage\",\n      \"Calculatrice\",\n      \"Majuscule\"\n    ],\n    \"\\\\CalculTermeRecurrence\": [\n      \"No=${1:nombre}\",\n      \"UNo=${1:nombre}\",\n      \"Precision=${1:nombre}\",\n      \"N=${1:nombre}\"\n    ],\n    \"\\\\SolutionSeuil\": [\n      \"NomSuite=${1:nom}\",\n      \"No=${1:nombre}\",\n      \"UNo=${1:nombre}\",\n      \"SolN=${1:nombre}\",\n      \"Precision=${1:nombre}\",\n      \"Stretch=${1:factor}\",\n      \"Balayage\",\n      \"Calculatrice\",\n      \"Simple\",\n      \"Majuscule\",\n      \"Exact\",\n      \"Conclusion\",\n      \"Sens=${1:< ou >}\"\n    ],\n    \"\\\\IntegraleApprochee\": [\n      \"ResultatBrut\",\n      \"Methode=${1|RectanglesGauche,RectanglesDroite,RectanglesMilieu,Trapezes,Simpson|}\",\n      \"NbSubDiv=${1:nombre}\",\n      \"AffFormule\",\n      \"Expr=${1:expr}\",\n      \"Signe=${1:signe}\",\n      \"Variables=${1:variables}\"\n    ],\n    \"\\\\paramCF\": [\n      \"Largeur=${1:largeur}\",\n      \"EspaceLg=\",\n      \"PremCol=${1:largeur}\",\n      \"HautPremCol=${1:hauteur}\",\n      \"Taille=${1:fontsize cmd}\",\n      \"Couleur=\",\n      \"Titre\",\n      \"TailleTitre=${1:fontsize cmd}\",\n      \"PosCmd=${1|centre,gauche,right|}\",\n      \"PosRes=${1|centre,gauche,right|}\",\n      \"CouleurCmd=\",\n      \"CouleurRes=\",\n      \"Sep\",\n      \"Menu\",\n      \"LabelTitre={${1:texte}}\"\n    ],\n    \"\\\\CalculFormelLigne\": [\n      \"HautCmd=${1:hauteur}\",\n      \"HautRes=${1:hauteur}\"\n    ],\n    \"\\\\begin{CodePythonLst},\\\\begin{CodePythonLstAlt}\": [\n      \"Largeur=\",\n      \"PremLigne=${1:numéro}\"\n    ],\n    \"\\\\begin{CodePiton}\": [\n      \"Lignes\",\n      \"Gobble\",\n      \"Largeur=\",\n      \"TaillePolice=${1:font commands}\",\n      \"Alignement=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"Style=${1|Moderne,Classique|}\",\n      \"Filigrane\",\n      \"BarreTitre\",\n      \"Cadre\",\n      \"CouleurNombres=\"\n    ],\n    \"\\\\begin{ConsolePiton}\": [\n      \"Largeur=\",\n      \"Alignement=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"Logo\"\n    ],\n    \"\\\\begin{CodePythonMinted},\\\\begin{CodePythonMintedAlt}\": [\n      \"Largeur=\",\n      \"PremLigne=${1:numéro}\"\n    ],\n    \"\\\\begin{PseudoCode},\\\\begin{PseudoCodeAlt}\": [\n      \"Largeur=\",\n      \"PremLigne=${1:numéro}\",\n      \"Couleur\"\n    ],\n    \"\\\\PaveTikz\": [\n      \"Largeur=${1:num}\",\n      \"Profondeur=${1:num}\",\n      \"Hauteur=${1:num}\",\n      \"Angle=${1:degrees}\",\n      \"Fuite=${1:num}\",\n      \"Sommets=${1:A1§...§A8}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Aff\",\n      \"Plein\",\n      \"Cube\",\n      \"Math\"\n    ],\n    \"\\\\TetraedreTikz\": [\n      \"Largeur=${1:num}\",\n      \"Profondeur=${1:num}\",\n      \"Hauteur=${1:num}\",\n      \"Alpha=${1:degrees}\",\n      \"Beta=${1:degrees}\",\n      \"Sommets=${1:A1§...§A8}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Aff\",\n      \"Plein\",\n      \"Math\"\n    ],\n    \"\\\\CercleTrigo\": [\n      \"Rayon=${1:rayon}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Epaisseursol=${1:épaisseur}\",\n      \"Marge=${1:marge}\",\n      \"TailleValeurs=${1:fontsize cmd}\",\n      \"TailleAngles=${1:fontsize cmd}\",\n      \"CouleurFond=\",\n      \"Decal=\",\n      \"MoinsPi\",\n      \"AffAngles\",\n      \"AffTraits\",\n      \"AffValeurs\",\n      \"Equationcos\",\n      \"Equationsin\",\n      \"cos=${1:degrees}\",\n      \"sin=${1:degrees}\",\n      \"AffTraitsEq\",\n      \"CouleurSol=\"\n    ],\n    \"\\\\CalculsRegLin\": [\n      \"NomCoeffa=${1:nom}\",\n      \"NomCoeffb=${1:nom}\",\n      \"NomCoeffr=${1:nom}\",\n      \"NomCoeffrd=${1:nom}\",\n      \"NomXmin=${1:nom}\",\n      \"NomXmax=${1:nom}\"\n    ],\n    \"\\\\PointsRegLin\": [\n      \"Couleur=\",\n      \"Taille=\",\n      \"Ox=${1:num}\",\n      \"Oy=${1:num}\"\n    ],\n    \"\\\\tikz#c,\\\\begin{tikzpicture}#c,\\\\tikzset#c\": [\n      \"Ox=${1:num}\",\n      \"Oy=${1:num}\",\n      \"xmin=${1:num}\",\n      \"xmax=${1:num}\",\n      \"ymin=${1:num}\",\n      \"ymax=${1:num}\",\n      \"xgrille=${1:num}\",\n      \"xgrilles=${1:num}\",\n      \"ygrille=${1:num}\",\n      \"ygrilles=${1:num}\",\n      \"xunit=${1:num}\",\n      \"yunit=${1:num}\"\n    ],\n    \"\\\\GrilleTikz\": [\n      \"Affp\",\n      \"Affs\"\n    ],\n    \"\\\\AxesTikz\": [\n      \"Epaisseur=\",\n      \"Police=${1:font commands}\",\n      \"ElargirOx=${1:num}\",\n      \"ElargirOy=${1:num}\",\n      \"Labelx=${1:text}\",\n      \"Labely=${1:text}\",\n      \"AffLabel=${1|x,y,xy|}\",\n      \"PosLabelx=${1:TikZ pos}\",\n      \"PosLabely=${1:TikZ pos}\",\n      \"EchelleFleche=${1:num}\",\n      \"TypeFleche=${1:type}\"\n    ],\n    \"\\\\AxexTikz,\\\\AxeyTikz\": [\n      \"Epaisseur=\",\n      \"Police=${1:font commands}\",\n      \"PosGrad=${1:TikZ pos}\",\n      \"HautGrad=\",\n      \"AffGrad\",\n      \"AffOrigine\",\n      \"Annee\",\n      \"Trigo\",\n      \"Dfrac\",\n      \"Frac\"\n    ],\n    \"\\\\OrigineTikz\": [\n      \"Police=${1:font commands}\",\n      \"Pos=${1:TikZ pos}\",\n      \"Decal=\",\n      \"Valeur=${1:num}\"\n    ],\n    \"\\\\NuagePointsTikz\": [\n      \"Taille=\",\n      \"Style=${1|o,x,+|}\",\n      \"Couleur=\"\n    ],\n    \"\\\\PointMoyenTikz\": [\n      \"Police=${1:font commands}\",\n      \"Taille=\",\n      \"Couleur=\",\n      \"Style=${1|o,x,+|}\",\n      \"xg=${1:num}\",\n      \"yg=${1:num}\",\n      \"Nom=${1:text}\",\n      \"Pos=${1:TikZ pos}\",\n      \"Decal=\",\n      \"AffNom\"\n    ],\n    \"\\\\SplineTikz\": [\n      \"Couleur=\",\n      \"Epaisseur=\",\n      \"Style={${1:TikZ clés}}\",\n      \"Coeffs=\",\n      \"CouleurPoints=\",\n      \"AffPoints\",\n      \"TaillePoints=\"\n    ],\n    \"\\\\TangenteTikz\": [\n      \"Point=${1:num}\",\n      \"Epaisseur=\",\n      \"Couleur=\",\n      \"Style={${1:TikZ clés}}\",\n      \"xl=${1:num}\",\n      \"xr=${1:num}\"\n    ],\n    \"\\\\PtsDiscontinuite\": [\n      \"Couleur=\",\n      \"Epaisseur=\",\n      \"Pos=${1|G,D|}\",\n      \"Echelle=${1:echelle}\",\n      \"Type=${1|par,cro,rond,demirond|}\"\n    ],\n    \"\\\\BoiteMoustaches\": [\n      \"Couleur=\",\n      \"Elevation=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"Moyenne=${1:nombre}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Remplir=\",\n      \"AffMoyenne\",\n      \"Pointilles\",\n      \"Valeurs\"\n    ],\n    \"\\\\BoiteMoustachesAxe\": [\n      \"Min=${1:nombre}\",\n      \"Max=${1:nombre}\",\n      \"Elargir=${1:pourcentage}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Valeurs={${1:liste}}\",\n      \"AffValeurs\"\n    ],\n    \"\\\\Histogramme,\\\\Histogramme*\": [\n      \"DebutOx=${1:nombre}\",\n      \"FinOx=${1:nombre}\",\n      \"Largeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"ListeCouleurs={${1:couleur1,couleur2,...}}\",\n      \"ElargirX=\",\n      \"ElargirY=\",\n      \"LabelX=${1:texte}\",\n      \"LabelY=${1:texte}\",\n      \"GradX={${1:graduations}}\",\n      \"GradY={${1:graduations}}\",\n      \"AffEffectifs\",\n      \"PosEffectifs=${1|bas,milieu,haut,dessus|}\",\n      \"Remplir\",\n      \"Opacite=${1:factor}\",\n      \"AffBornes\",\n      \"GrilleV\",\n      \"PoliceAxes=${1:font commands}\",\n      \"PoliceEffectifs=${1:font commands}\",\n      \"EpaisseurTraits=${1:épaisseur}\",\n      \"Grille=${1:GradX}/${2:UniteAire}\",\n      \"ExtraGrilleY=${1:nombre}\",\n      \"PosLegende=\"\n    ],\n    \"\\\\ArbreProbasTikz,\\\\begin{EnvArbreProbasTikz}\": [\n      \"Unite=\",\n      \"EspaceNiveau=${1:nombre}\",\n      \"EspaceFeuille=${1:nombre}\",\n      \"Type=${1|2x2,2x3,3x2,3x3|}\",\n      \"Police=${1:font commands}\",\n      \"PoliceProbas=${1:font commands}\",\n      \"InclineProbas\",\n      \"Fleche\",\n      \"StyleTrait={${1:TikZ keys}}\",\n      \"EpaisseurTrait=${1:épaisseur}\"\n    ],\n    \"\\\\LoiNormaleGraphe,\\\\LoiExpoGraphe\": [\n      \"CouleurAire=\",\n      \"CouleurCourbe=\",\n      \"Largeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"AfficheM\",\n      \"AfficheCadre\"\n    ],\n    \"\\\\TirageAleatoireEntiers\": [\n      \"ValMin=${1:nombre}\",\n      \"ValMax=${1:nombre}\",\n      \"NbVal=${1:nombre}\",\n      \"Sep=${1:séparateur}\",\n      \"Tri=${1|non,croissant,decroissant|}\",\n      \"Repetition\"\n    ],\n    \"\\\\Arrangement,\\\\Arrangement*,\\\\Combinaison,\\\\Combinaison*\": [\n      \"Notation\",\n      \"NotationAncien\",\n      \"Formule\"\n    ],\n    \"\\\\FonctionRepartTikz\": [\n      \"Couleur=\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Pointilles\",\n      \"Extremite=${1|crochet,point|}\"\n    ],\n    \"\\\\ConversionDecBin,\\\\ConversionDecBin*\": [\n      \"AffBase\"\n    ],\n    \"\\\\ConversionBinHex,\\\\ConversionHexBin\": [\n      \"AffBase\",\n      \"Details\"\n    ],\n    \"\\\\ConversionVersDec,\\\\ConversionBaseDix\": [\n      \"BaseDep=${1:2 ou 16}\",\n      \"AffBase\",\n      \"Details\",\n      \"Zeros\"\n    ],\n    \"\\\\ConversionDepuisBaseDix\": [\n      \"Couleur=\",\n      \"DecalH=\",\n      \"DecalV=\",\n      \"Noeud=${1:préfixe}\",\n      \"Rect\",\n      \"CouleurRes\"\n    ],\n    \"\\\\PresentationPGCD\": [\n      \"Couleur=\",\n      \"DecalRect=\",\n      \"Rectangle\",\n      \"Noeud=${1:nom du nœud}\",\n      \"CouleurResultat\",\n      \"AfficheConclusion\",\n      \"AfficheDelimiteurs\"\n    ],\n    \"\\\\EquationDiophantienne\": [\n      \"Lettre=${1:nom}\",\n      \"Inconnues=${1:x/y}\",\n      \"Entier=${1:nom}\",\n      \"Cadres\",\n      \"PresPGCD\"\n    ],\n    \"\\\\ArbreDiviseurs\": [\n      \"EspaceNiveau=${1:nombre}\",\n      \"EspaceFeuille=${1:nombre}\",\n      \"Details\",\n      \"CouleurDetails=\",\n      \"Echelle=${1:nombre}\",\n      \"Fleches\"\n    ],\n    \"\\\\ConversionFraction,\\\\ConversionFraction*\": [\n      \"t\",\n      \"d\",\n      \"n\",\n      \"dec\",\n      \"dec=${1:k}\"\n    ],\n    \"\\\\EcritureEnsemble\": [\n      \"Sep={${1:separator}}\",\n      \"Option={${1:code}}\",\n      \"Mathpunct\"\n    ],\n    \"\\\\MiniSchemaSignes,\\\\MiniSchemaSignes*,\\\\MiniSchemaSignesTkzTab\": [\n      \"Code=\",\n      \"Couleur=\",\n      \"Racines=${1:racines}\",\n      \"Largeur=${1:num}\",\n      \"Hauteur=${1:num}\",\n      \"Cadre\"\n    ],\n    \"\\\\ToileRecurrence\": [\n      \"Fct=${1:fonction}\",\n      \"Nom=${1:nom}\",\n      \"No=${1:l’indice initial}\",\n      \"Uno=${1:la valeur du terme initial}\",\n      \"Nb=${1:nombre}\",\n      \"PosLabel=${1:pos}\",\n      \"DecalLabel=\",\n      \"TailleLabel=${1:fontsize cmd}\",\n      \"AffTermes\"\n    ],\n    \"\\\\IntegraleApprocheeTikz\": [\n      \"Epaisseur=${1:épaisseur}\",\n      \"Couleur=\",\n      \"Remplir\",\n      \"Opacite=${1:factor}\",\n      \"CouleurRemplissage=\",\n      \"Methode=${1|RectanglesGauche,RectanglesDroite,RectanglesMilieu,Trapezes|}\",\n      \"NbSubDiv=${1:nombre}\"\n    ],\n    \"\\\\TrouveEqCartPlan\": [\n      \"OptionCoeffs=${1:option}\",\n      \"SimplifCoeffs\",\n      \"Facteur=${1:facteur}\"\n    ],\n    \"\\\\TrouveEqParamDroite\": [\n      \"OptionCoeffs=${1:option}\",\n      \"Reel=${1:symbole}\",\n      \"Oppose\",\n      \"Rgras\"\n    ],\n    \"\\\\TrouveEqCartDroite\": [\n      \"OptionCoeffs=${1:option}\",\n      \"SimplifCoeffs\",\n      \"Facteur=${1:facteur}\",\n      \"VectDirecteur\"\n    ],\n    \"\\\\EcritureTrinome\": [\n      \"Alea\",\n      \"Anegatif\"\n    ],\n    \"\\\\MesurePrincipale\": [\n      \"d\",\n      \"Crochets\",\n      \"Brut\"\n    ],\n    \"\\\\LigneTrigo,\\\\LigneTrigo*\": [\n      \"d\",\n      \"Etapes\"\n    ],\n    \"\\\\SudoMaths,\\\\begin{EnvSudoMaths}\": [\n      \"Epaisseurg=\",\n      \"Epaisseur=\",\n      \"Unite=\",\n      \"CouleurCase=\",\n      \"CouleurTexte=\",\n      \"NbCol=${1:nombre}\",\n      \"NbSubCol=${1:nombre}\",\n      \"NbLig=${1:nombre}\",\n      \"NbSubLig=${1:nombre}\",\n      \"Police=${1:font commands}\",\n      \"Legendes\",\n      \"PoliceLeg=${1:font commands}\",\n      \"ListeLegV=${1:liste}\",\n      \"ListeLegH=${1:liste}\",\n      \"DecalLegende=${1:décalage}\"\n    ],\n    \"\\\\FractaleTikz,\\\\FractaleTikz*,\\\\EtapesFloconKoch\": [\n      \"Epaisseur=\",\n      \"Type=${1|Koch,Sierp|}\",\n      \"Couleur=\",\n      \"LongueurCote=${1:nombre}\",\n      \"Etape=${1:nombre}\",\n      \"Remplir\",\n      \"Remplissage=\",\n      \"Depart={(${1:x,y})}\",\n      \"AlignV\"\n    ],\n    \"\\\\IntervalleFF,\\\\IntervalleOF,\\\\IntervalleFO,\\\\IntervalleOO\": [\n      \"open\",\n      \"open left\",\n      \"open right\"\n    ],\n    \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\": [\n      \"scaled=${1:scale command}\"\n    ],\n    \"\\\\Modulo,\\\\Modulo*\": [\n      \"Cro\",\n      \"Par\",\n      \"Txt\"\n    ],\n    \"\\\\begin{CodePythontex},\\\\begin{CodePythontexAlt}\": [\n      \"Largeur=\",\n      \"PremLigne=${1:numéro}\",\n      \"Centre\",\n      \"TaillePolice=${1:font commands}\",\n      \"EspacementVertical=${1:factor}\",\n      \"Lignes\"\n    ],\n    \"\\\\begin{ConsolePythontex}\": [\n      \"Largeur=\",\n      \"Centre\",\n      \"TaillePolice=${1:font commands}\",\n      \"EspacementVertical=${1:factor}\",\n      \"Label\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ProfLycee#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ProfMaquette.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xlop\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryraster\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"modulus\"\n    },\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TikzDM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzDMCor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzDMCor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzDSCor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzDSCor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzIE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzIECor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzIECor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzFiche\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzFicheCor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzFicheCor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzParcours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzParcoursCor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzParcoursCor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzPdT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TikzPdTCor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzPdTCor{${1:clés}}\"\n      }\n    },\n    {\n      \"name\": \"TikzCours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Competences\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Competences{${1:texte1/texte2/...%text}}\"\n      }\n    },\n    {\n      \"name\": \"Competences\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Competences[${2:N}]{${1:col1§...§colN/texte1/texte2/...%text}}\"\n      }\n    },\n    {\n      \"name\": \"PfMCompNA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfMCompECA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PfMCompA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brm{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"AfficheParcours\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfficheParcours{${1:parcour}}\"\n      }\n    },\n    {\n      \"name\": \"AfficheParcours\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AfficheParcours[${2:clés%keyvals}]{${1:parcour}}\"\n      }\n    },\n    {\n      \"name\": \"CheminVrai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheminVrai{${1:noeud départ/noeud arrivée}}\"\n      }\n    },\n    {\n      \"name\": \"CheminFaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheminFaux{${1:noeud départ/noeud arrivée}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Maquette\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:clés%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{Maquette}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Maquette\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:type}]{${1:clés%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{Maquette}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"exercice\"\n    },\n    {\n      \"name\": \"exercice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exercice}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SOS\"\n    },\n    {\n      \"name\": \"Solution\"\n    },\n    {\n      \"name\": \"Reponse\"\n    },\n    {\n      \"name\": \"Indice\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{Maquette}\": [\n      \"Numero=${1:numero}\",\n      \"Date=${1:date}\",\n      \"Classe=${1:texte}\",\n      \"Niveau=${1:nombre}\",\n      \"Code=${1:code}\",\n      \"Calculatrice\",\n      \"Sujet=${1:texte}\",\n      \"Theme=${1:texte}\",\n      \"Nom=${1:texte}\",\n      \"NomExercice=${1:texte}\",\n      \"Fichier=${1:.csv file}\",\n      \"Couleur=\"\n    ],\n    \"\\\\begin{exercice}\": [\n      \"Background=\",\n      \"Cadre=\",\n      \"BaremeTotal\",\n      \"BaremeDetaille\",\n      \"MotPoint=${1:texte}\",\n      \"Source=${1:texte}\",\n      \"Titre=${1:texte}\",\n      \"Competence=${1:texte}\",\n      \"Oral\",\n      \"Calculatrice\",\n      \"Trajet={${1:parcour1,parcour2,...}}\",\n      \"PasCorrige\",\n      \"Pouce\",\n      \"Direct\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ProfSio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"nicematrix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MPMPlaceNotice\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MPMPlaceNotice(${1:coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceNotice*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MPMPlaceNotice*(${1:coordonnées})\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceTache\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"MPMPlaceTache(${1:coordonnées})(${2:Tâche})(${3:Dates})\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceTaches\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPMPlaceTaches{${1:(${2:coordA})(${3:TâcheA})(${4:DatesA}) / (${5:coordB})(${6:TâcheB})(${7:DatesB}) / ...}}\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceDuree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPMPlaceDuree{${1:TâcheA>TâcheB,durée}}\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceDuree\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPMPlaceDuree[${2:options}]{${1:TâcheA>TâcheB,durée}}\",\n        \"keys\": [\n          \"\\\\MPMPlaceDuree,\\\\MPMPlaceDurees\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPMPlaceDurees\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPMPlaceDurees{${1:TâcheA>TâcheB,durée / TâcheC>TâcheD,durée}}\"\n      }\n    },\n    {\n      \"name\": \"MPMPlaceDurees\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPMPlaceDurees[${2:options}]{${1:TâcheA>TâcheB,durée / TâcheC>TâcheD,durée}}\",\n        \"keys\": [\n          \"\\\\MPMPlaceDuree,\\\\MPMPlaceDurees\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KarnaughCasesResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KarnaughCasesResult{${1:contenu binaire des cases}}\"\n      }\n    },\n    {\n      \"name\": \"KarnaughCasesResult*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KarnaughCasesResult*{${1:contenu binaire des cases}}\"\n      }\n    },\n    {\n      \"name\": \"KarnaughCasesAuto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KarnaughCasesAuto{${1:expression booléenne}}\"\n      }\n    },\n    {\n      \"name\": \"KarnaughCasesAuto*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KarnaughCasesAuto*{${1:expression booléenne}}\"\n      }\n    },\n    {\n      \"name\": \"KarnaughBlocRegroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KarnaughBlocRegroup{${1:coinA}}{${2:coinB}}\"\n      }\n    },\n    {\n      \"name\": \"KarnaughBlocRegroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"KarnaughBlocRegroup[${3:clés%keyvals}]{${1:coinA}}{${2:coinB}}\",\n        \"keys\": [\n          \"\\\\KarnaughBlocRegroup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SimplificationKarnaugh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SimplificationKarnaugh{${1:code binaire de la table}}\"\n      }\n    },\n    {\n      \"name\": \"SimplificationKarnaugh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SimplificationKarnaugh[${2:clés%keyvals}]{${1:code binaire de la table}}\",\n        \"keys\": [\n          \"\\\\SimplificationKarnaugh\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SimplificationBooleenne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SimplificationBooleenne{${1:expression formatée}}\"\n      }\n    },\n    {\n      \"name\": \"SimplificationBooleenne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SimplificationBooleenne[${2:clés%keyvals}]{${1:expression formatée}}\",\n        \"keys\": [\n          \"\\\\SimplificationBooleenne\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrphPlaceSommets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrphPlaceSommets{${1:liste coordonnées/sommet}}\"\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrphTraceAretes{${1:liste arêtes}}\"\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes<options tikz>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrphTraceAretes<options tikz>{${1:liste arêtes}}\"\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GrphTraceAretes[${2:type%keyvals}]{${1:liste arêtes}}\",\n        \"keys\": [\n          \"\\\\GrphTraceAretes,\\\\GrphTraceAretes*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"GrphTraceAretes[${2:type%keyvals}]<${3:options tikz}>{${1:liste arêtes}}\",\n        \"keys\": [\n          \"\\\\GrphTraceAretes,\\\\GrphTraceAretes*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrphTraceAretes*{${1:liste arêtes}}\"\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes*<options tikz>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrphTraceAretes*<options tikz>{${1:liste arêtes}}\"\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GrphTraceAretes*[${2:type%keyvals}]{${1:liste arêtes}}\",\n        \"keys\": [\n          \"\\\\GrphTraceAretes,\\\\GrphTraceAretes*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrphTraceAretes*\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"GrphTraceAretes*[${2:type%keyvals}]<${3:options tikz}>{${1:liste arêtes}}\",\n        \"keys\": [\n          \"\\\\GrphTraceAretes,\\\\GrphTraceAretes*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DiagrammeSagittal{${1:liaisons}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal<options TikZ>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DiagrammeSagittal<options TikZ>{${1:liaisons}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DiagrammeSagittal[${2:clés%keyvals}]{${1:liaisons}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittal,\\\\DiagrammeSagittal*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"DiagrammeSagittal[${2:clés%keyvals}]<${3:options TikZ}>{${1:liaisons}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittal,\\\\DiagrammeSagittal*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DiagrammeSagittal*{${1:liaisons}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittal*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DiagrammeSagittal*[${2:clés%keyvals}]{${1:liaisons}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittal,\\\\DiagrammeSagittal*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo{${1:liaisons1}}{${2:liaisons2}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo<options TikZ>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo<options TikZ>{${1:liaisons1}}{${2:liaisons2}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo[${3:clés%keyvals}]{${1:liaisons1}}{${2:liaisons2}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittalCompo,\\\\DiagrammeSagittalCompo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo\",\n      \"arg\": {\n        \"format\": \"[]<>{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo[${3:clés%keyvals}]<${4:options TikZ}>{${1:liaisons1}}{${2:liaisons2}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittalCompo,\\\\DiagrammeSagittalCompo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo*{${1:liaisons1}}{${2:liaisons2}}\"\n      }\n    },\n    {\n      \"name\": \"DiagrammeSagittalCompo*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DiagrammeSagittalCompo*[${3:clés%keyvals}]{${1:liaisons1}}{${2:liaisons2}}\",\n        \"keys\": [\n          \"\\\\DiagrammeSagittalCompo,\\\\DiagrammeSagittalCompo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableVerite\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TableVerite{${1:vars}}{${2:colonnes_vars}}{${3:calculs}}{${4:colonnes_calculs}}\"\n      }\n    },\n    {\n      \"name\": \"TableVerite<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TableVerite<opts nicematrix>{${1:vars}}{${2:colonnes_vars}}{${3:calculs}}{${4:colonnes_calculs}}\"\n      }\n    },\n    {\n      \"name\": \"TableVerite\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"TableVerite[${5:clés%keyvals}]{${1:vars}}{${2:colonnes_vars}}{${3:calculs}}{${4:colonnes_calculs}}\",\n        \"keys\": [\n          \"\\\\TableVerite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableVerite\",\n      \"arg\": {\n        \"format\": \"[]<>{}{}{}{}\",\n        \"snippet\": \"TableVerite[${5:clés%keyvals}]<${6:opts nicematrix}>{${1:vars}}{${2:colonnes_vars}}{${3:calculs}}{${4:colonnes_calculs}}\",\n        \"keys\": [\n          \"\\\\TableVerite\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"GrapheMPM\"\n    },\n    {\n      \"name\": \"GrapheMPM\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{GrapheMPM}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrapheMPM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{GrapheMPM}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrapheMPM\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{GrapheMPM}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableKarnaugh\"\n    },\n    {\n      \"name\": \"TableKarnaugh\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{TableKarnaugh}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableKarnaugh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{TableKarnaugh}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TableKarnaugh\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{TableKarnaugh}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrapheTikz\"\n    },\n    {\n      \"name\": \"GrapheTikz\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{GrapheTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrapheTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{GrapheTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrapheTikz\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{GrapheTikz}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{GrapheMPM}\": [\n      \"CouleurDurees=\",\n      \"CouleurFleches=\",\n      \"LargeurCases\",\n      \"Epaisseur\",\n      \"Police=${1:font commands}\",\n      \"CouleurDates=\",\n      \"CouleurBords=\",\n      \"NoirBlanc\",\n      \"Grille={${1:xmax,ymax}}\"\n    ],\n    \"\\\\MPMPlaceDuree,\\\\MPMPlaceDurees\": [\n      \"Coude\",\n      \"SensCoude=${1|HV,VH,VHV|}\",\n      \"HauteurCoude=\",\n      \"DecalHorizDeb=\",\n      \"DecalVertDeb=\",\n      \"DecalHorizFin=\",\n      \"DecalVertFin=\"\n    ],\n    \"\\\\begin{TableKarnaugh}\": [\n      \"Couleur=\",\n      \"Unite=\",\n      \"Variables=${1:Gauche/Haut/Bas}\",\n      \"Swap\",\n      \"Aide\",\n      \"Epaisseur=\",\n      \"CouleurCases=\",\n      \"CouleurLegende=\",\n      \"StyleAlternatif\",\n      \"AideAlt\",\n      \"PoliceTT\",\n      \"PosVarLaterale=${1|Gauche,Droite|}\",\n      \"Legende\"\n    ],\n    \"\\\\KarnaughBlocRegroup\": [\n      \"Couleur=\",\n      \"Type=${1|Centre,Gauche,Droite|}\",\n      \"Decalage=\"\n    ],\n    \"\\\\SimplificationKarnaugh\": [\n      \"Couleurs=\",\n      \"Variables=\",\n      \"Swap\",\n      \"Contraire\",\n      \"Espace\",\n      \"StyleAlternatif\"\n    ],\n    \"\\\\SimplificationBooleenne\": [\n      \"Enonce\",\n      \"Variables\",\n      \"Contraire=${1:a/b/c}\",\n      \"Espace\"\n    ],\n    \"\\\\begin{GrapheTikz}\": [\n      \"Police=${1:font commands}\",\n      \"Poids=${1:font commands}\",\n      \"CouleurSommets=\",\n      \"CouleurFleches=\",\n      \"TypeSommets=${1:type}\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"Unite=\",\n      \"CouleurFT=\",\n      \"Grille={${1:xmax,ymax}}\",\n      \"DimensionSommets=\",\n      \"PositionFleches=${1|Milieu,Fin|}\",\n      \"EchelleFleches=${1:nombre}\",\n      \"TypeFleche=${1:type}\"\n    ],\n    \"\\\\GrphTraceAretes,\\\\GrphTraceAretes*\": [\n      \"Droit\",\n      \"AngleGauche\",\n      \"AngleDroite\",\n      \"Boucle\"\n    ],\n    \"\\\\DiagrammeSagittal,\\\\DiagrammeSagittal*\": [\n      \"DistElem=${1:nombre}\",\n      \"DistEns=${1:nombre}\",\n      \"LargEns=${1:nombre}\",\n      \"NomAppli=${1:nom}\",\n      \"CouleurE=\",\n      \"CouleurAppli=\",\n      \"CouleurF=\",\n      \"CouleurFleches=\",\n      \"TypeFleche=${1:type}\",\n      \"Offset=\",\n      \"Epaisseur=\",\n      \"Police=${1:font commands}\",\n      \"NoirBlanc\",\n      \"Labels\",\n      \"Ensembles=${1:nom}\",\n      \"PosLabels=${1|haut,bas|}\"\n    ],\n    \"\\\\DiagrammeSagittalCompo,\\\\DiagrammeSagittalCompo*\": [\n      \"DistElem=${1:nombre}\",\n      \"DistEns=${1:nombre}\",\n      \"LargEns=${1:nombre}\",\n      \"NomApplis=${1:nom1}/${2:nom2}\",\n      \"CouleurE=\",\n      \"CouleurApplis=\",\n      \"CouleurF=\",\n      \"CouleurG=\",\n      \"CouleurFleches=\",\n      \"TypeFleche=${1:type}\",\n      \"Offset=\",\n      \"Epaisseur=\",\n      \"Police=${1:font commands}\",\n      \"NoirBlanc\",\n      \"Labels\",\n      \"Ensembles=${1:nom}\",\n      \"PosLabels=${1|haut,bas|}\"\n    ],\n    \"\\\\TableVerite\": [\n      \"VF=${1:vrai}/${2:faux}\",\n      \"Swap\",\n      \"LargeursColonnes=\",\n      \"CouleurEnonce=\",\n      \"CodeAvant=${1:code}\",\n      \"CodeApres=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ProjLib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"projlib-datetime\"\n    },\n    {\n      \"name\": \"projlib-draft\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"projlib-logo\"\n    },\n    {\n      \"name\": \"projlib-math\"\n    },\n    {\n      \"name\": \"projlib-paper\"\n    },\n    {\n      \"name\": \"projlib-text\"\n    },\n    {\n      \"name\": \"projlib-theorem\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"authorblock\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"authorblock=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author-block\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author-block=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author block\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"author block=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"amsfashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"amsfashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"amsfashion\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"amsfashion=true\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"amsfashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"amsfashion=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"ams-fashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams-fashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams-fashion\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"ams-fashion=true\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams-fashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams-fashion=true\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"ams fashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams fashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams fashion\"\n    },\n    {\n      \"name\": \"projlib-author\",\n      \"if\": \"ams fashion=true\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams fashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams fashion=true\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"titlepage\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"titlepage=true\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"title-page\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"title-page=true\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"title page\"\n    },\n    {\n      \"name\": \"projlib-titlepage\",\n      \"if\": \"title page=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keywords\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ProjLib#c\": [\n      \"author\",\n      \"amsfashion\",\n      \"titlepage\",\n      \"English\",\n      \"French\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Chinese\",\n      \"TChinese\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\",\n      \"plain\",\n      \"year-month-day\",\n      \"month-day-year\",\n      \"day-month-year\",\n      \"year-month\",\n      \"month-day\",\n      \"month-year\",\n      \"day-month\",\n      \"preview mode\",\n      \"paper style=${1|yellow,parchment,green,light-gray,gray,nord,dark|}\",\n      \"yellow paper\",\n      \"parchment paper\",\n      \"green paper\",\n      \"light gray paper\",\n      \"gray paper\",\n      \"nord paper\",\n      \"dark paper\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ProjLib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ResolSysteme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nicematrix\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProduitMatricesPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatricesPY(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY<opts nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatricesPY<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ProduitMatricesPY[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"ProduitMatricesPY[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatricesPY*(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY*<opts nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatricesPY*<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ProduitMatricesPY*[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatricesPY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"ProduitMatricesPY*[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MatricePuissancePY(${1:matrice})(${2:puissance})\"\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY<options nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MatricePuissancePY<options nicematrix>(${1:matrice})(${2:puissance})\"\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"MatricePuissancePY[${1:option de formatage%keyvals}](${2:matrice})(${3:puissance})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"MatricePuissancePY[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})(${4:puissance})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MatricePuissancePY*(${1:matrice})(${2:puissance})\"\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY*<options nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MatricePuissancePY*<options nicematrix>(${1:matrice})(${2:puissance})\"\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"MatricePuissancePY*[${1:option de formatage%keyvals}](${2:matrice})(${3:puissance})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatricePuissancePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"MatricePuissancePY*[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})(${4:puissance})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DetMatricePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"DetMatricePY(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"DetMatricePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"DetMatricePY[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DetMatricePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"DetMatricePY*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"DetMatricePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"DetMatricePY*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInversePY(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY<options nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInversePY<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MatriceInversePY[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"MatriceInversePY[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInversePY*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY*<options nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInversePY*<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MatriceInversePY*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInversePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"MatriceInversePY*[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatProbPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"EtatProbPY(${1:état init})(${2:mat de trans})(${3:étape})\"\n      }\n    },\n    {\n      \"name\": \"EtatProbPY<options nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"EtatProbPY<options nicematrix>(${1:état init})(${2:mat de trans})(${3:étape})\"\n      }\n    },\n    {\n      \"name\": \"EtatProbPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"EtatProbPY[${1:option de formatage%keyvals}](${2:état init})(${3:mat de trans})(${4:étape})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatProbPY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()()\",\n        \"snippet\": \"EtatProbPY[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:état init})(${4:mat de trans})(${5:étape})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSystemePY(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY<opts nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSystemePY<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"SolutionSystemePY[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"SolutionSystemePY[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSystemePY*(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY*<opts nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSystemePY*<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"SolutionSystemePY*[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSystemePY*\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"SolutionSystemePY*[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatStablePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"EtatStablePY(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"EtatStablePY<opts nicematrix>\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"EtatStablePY<opts nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"EtatStablePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"EtatStablePY[${1:opt de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatStablePY\",\n      \"if\": \"pyluatex\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"EtatStablePY[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConvVersFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConvVersFrac{${1:calcul}}\"\n      }\n    },\n    {\n      \"name\": \"ConvVersFrac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConvVersFrac[${2:option de formatage%keyvals}]{${1:calcul}}\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ConvVersFrac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConvVersFrac*{${1:calcul}}\"\n      }\n    },\n    {\n      \"name\": \"ConvVersFrac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConvVersFrac*[${2:option de formatage%keyvals}]{${1:calcul}}\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffMatrice\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffMatrice(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"AffMatrice\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"AffMatrice[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffMatrice*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffMatrice*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"AffMatrice*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"AffMatrice*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatrices(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatrices<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ProduitMatrices[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"ProduitMatrices[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatrices*(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices*<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ProduitMatrices*<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ProduitMatrices*[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProduitMatrices*\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"ProduitMatrices*[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CarreMatrice\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"CarreMatrice(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"CarreMatrice<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"CarreMatrice<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"CarreMatrice\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"CarreMatrice[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CarreMatrice\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"CarreMatrice[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CarreMatrice*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"CarreMatrice*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"CarreMatrice*<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"CarreMatrice*<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"CarreMatrice*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"CarreMatrice*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CarreMatrice*\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"CarreMatrice*[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DetMatrice\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"DetMatrice(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"DetMatrice\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"DetMatrice[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DetMatrice*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"DetMatrice*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"DetMatrice*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"DetMatrice*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInverse\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInverse(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInverse<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInverse<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInverse\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MatriceInverse[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInverse\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"MatriceInverse[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInverse*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInverse*(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInverse*<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"MatriceInverse*<options nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"MatriceInverse*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MatriceInverse*[${1:option de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MatriceInverse*\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"MatriceInverse*[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffEtatProb\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffEtatProb(${1:matrice ligne})\"\n      }\n    },\n    {\n      \"name\": \"AffEtatProb<options nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AffEtatProb<options nicematrix>(${1:matrice ligne})\"\n      }\n    },\n    {\n      \"name\": \"AffEtatProb\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"AffEtatProb[${1:option de formatage%keyvals}](${2:matrice ligne})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffEtatProb\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"AffEtatProb[${1:option de formatage%keyvals}]<${2:options nicematrix}>(${3:matrice ligne})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSysteme(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSysteme<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"SolutionSysteme[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"SolutionSysteme[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSysteme*(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme*<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"SolutionSysteme*<opts nicematrix>(${1:matriceA})(${2:matriceB})\"\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"SolutionSysteme*[${1:opt de formatage%keyvals}](${2:matriceA})(${3:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SolutionSysteme*\",\n      \"arg\": {\n        \"format\": \"[]<>()()\",\n        \"snippet\": \"SolutionSysteme*[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matriceA})(${4:matriceB})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatStable\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"EtatStable(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"EtatStable<opts nicematrix>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"EtatStable<opts nicematrix>(${1:matrice})\"\n      }\n    },\n    {\n      \"name\": \"EtatStable\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"EtatStable[${1:opt de formatage%keyvals}](${2:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EtatStable\",\n      \"arg\": {\n        \"format\": \"[]<>()\",\n        \"snippet\": \"EtatStable[${1:opt de formatage%keyvals}]<${2:opts nicematrix}>(${3:matrice})\",\n        \"keys\": [\n          \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ResolSysteme#c\": [\n      \"pyluatex\"\n    ],\n    \"\\\\ConvVersFrac,\\\\ConvVersFrac*,\\\\AffMatrice,\\\\AffMatrice*,\\\\ProduitMatrices,\\\\ProduitMatrices*,\\\\ProduitMatricesPY,\\\\ProduitMatricesPY*,\\\\CarreMatrice,\\\\CarreMatrice*,\\\\MatricePuissancePY,\\\\MatricePuissancePY*,\\\\DetMatrice,\\\\DetMatrice*,\\\\DetMatricePY,\\\\DetMatricePY*,\\\\MatriceInverse,\\\\MatriceInverse*,\\\\MatriceInversePY,\\\\MatriceInversePY*,\\\\AffEtatProb,\\\\EtatProbPY,\\\\SolutionSysteme,\\\\SolutionSysteme*,\\\\SolutionSystemePY,\\\\SolutionSystemePY*,\\\\EtatStable,\\\\EtatStablePY\": [\n      \"t\",\n      \"d\",\n      \"n\",\n      \"dec\",\n      \"dec=${1:k}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ResolSysteme#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Romantik.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Romantik\"\n    },\n    {\n      \"name\": \"romantik\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romantik{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Rothdn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Rothdnfamily\"\n    },\n    {\n      \"name\": \"roth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roth{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/RoueQuestions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tkz-euclide\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"roueQuestions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roueQuestions{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"roueQuestions\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"roueQuestions[${2:options%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\roueQuestions,\\\\rouesQuestions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rouesQuestions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rouesQuestions{${1:listeQuestions}}{${2:listeRéponses}}\"\n      }\n    },\n    {\n      \"name\": \"rouesQuestions\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rouesQuestions[${3:options%keyvals}]{${1:listeQuestions}}{${2:listeRéponses}}\",\n        \"keys\": [\n          \"\\\\roueQuestions,\\\\rouesQuestions\",\n          \"\\\\rouesQuestions\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\roueQuestions,\\\\rouesQuestions\": [\n      \"Titre={${1:texte}}\",\n      \"Consigne={${1:texte}}\",\n      \"LineWidth=\",\n      \"RayonCentral=${1:nombre}\",\n      \"RayonTotal=${1:nombre}\",\n      \"BordureCouleur=\",\n      \"CasesCouleur=\",\n      \"CentreCouleur=\",\n      \"Image=${1:imagefile}\",\n      \"ImageOpacite=${1:factor}\",\n      \"Decoupe\",\n      \"DecoupeCouleur=\",\n      \"Pliage\",\n      \"PliageCouleur=\",\n      \"Solution\"\n    ],\n    \"\\\\rouesQuestions\": [\n      \"Conseil={${1:texte}}\",\n      \"EspaceRoues=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Royal.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Royal\"\n    },\n    {\n      \"name\": \"royal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"royal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/SASnRdisplay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"needspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inputSAScode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputSAScode{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputSAScode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputSAScode[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputSAScode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputSAScode*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputSAScode*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputSAScode*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputSASoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputSASoutput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputSASoutput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputSASoutput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputSASoutput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputSASoutput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputSASoutput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputSASoutput*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputRcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputRcode{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputRcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputRcode[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputRcode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputRcode*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputRcode*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputRcode*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputRoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputRoutput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputRoutput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputRoutput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputRoutput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputRoutput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputRoutput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputRoutput*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SASinline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"SASinline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"SASinline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"SASinline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Rinline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Rinline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Rinline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Rinline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstlgrindeffile\",\n      \"if\": \"lgrind\"\n    },\n    {\n      \"name\": \"lstdefineformat\",\n      \"if\": \"formats\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefineformat{${1:name}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"lstformatfiles\",\n      \"if\": \"formats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnRRcodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnRSAScodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnRRoutputname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnRSASoutputname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"SAScode\"\n    },\n    {\n      \"name\": \"SAScode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SAScode*\"\n    },\n    {\n      \"name\": \"SAScode*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SASoutput\"\n    },\n    {\n      \"name\": \"SASoutput\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SASoutput*\"\n    },\n    {\n      \"name\": \"SASoutput*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Rcode\"\n    },\n    {\n      \"name\": \"Rcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Rcode*\"\n    },\n    {\n      \"name\": \"Rcode*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Routput\"\n    },\n    {\n      \"name\": \"Routput\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Routput*\"\n    },\n    {\n      \"name\": \"Routput*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/SASnRdisplay#c\": [\n      \"danish\",\n      \"english\",\n      \"grayscale\",\n      \"countbysection\",\n      \"countbychapter\",\n      \"consecutive\",\n      \"countbylistings\",\n      \"noautotitles-r\",\n      \"noautotitles-sas\",\n      \"needspace=\",\n      \"noneedspace\",\n      \"sweave\",\n      \"sasweave\"\n    ],\n    \"\\\\begin{SAScode},\\\\begin{SAScode*},\\\\begin{SASoutput},\\\\begin{SASoutput*},\\\\begin{Rcode},\\\\begin{Rcode*},\\\\begin{Routput},\\\\begin{Routput*},\\\\inputSAScode,\\\\inputSAScode*,\\\\inputSASoutput,\\\\inputSASoutput*,\\\\inputRcode,\\\\inputRcode*,\\\\inputRoutput,\\\\inputRoutput*,\\\\SASinline,\\\\Rinline\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting\": [\n      \"procnamekeys={${1:keywords}}\",\n      \"moreprocnamekeys={${1:keywords}}\",\n      \"deleteprocnamekeys={${1:keywords}}\",\n      \"procnamestyle=${1:style}\",\n      \"indexprocnames\",\n      \"hyperref={${1:identifiers}}\",\n      \"morehyperref={${1:identifiers}}\",\n      \"deletehyperref={${1:identifiers}}\",\n      \"hyperanchor=${1:two-parameter macro}\",\n      \"hyperlink=${1:two-parameter macro}\",\n      \"lgrindef=${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/SASnRdisplay#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Sanremo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Sanremofamily\"\n    },\n    {\n      \"name\": \"sanremo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sanremo{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Scrabble.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ScrabbleBoard\"\n    },\n    {\n      \"name\": \"ScrabbleBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ScrabbleBoard[${1:keys%keyvals}]\",\n        \"keys\": [\n          \"\\\\ScrabbleBoard,\\\\begin{EnvScrabble}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ScrabbleBoard<language>\"\n    },\n    {\n      \"name\": \"ScrabbleBoard<language>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ScrabbleBoard<language>[${1:keys%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PlateauScrabble\"\n    },\n    {\n      \"name\": \"PlateauScrabble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PlateauScrabble[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PlateauScrabble,\\\\begin{EnvScrabbleFR}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlateauScrabble<langue>\"\n    },\n    {\n      \"name\": \"PlateauScrabble<langue>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PlateauScrabble<langue>[${1:clés%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ScrabblePutWord\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ScrabblePutWord{${1:letters}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"ScrabblePutWord\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ScrabblePutWord[${3:orientation%keyvals}]{${1:letters}}{${2:x,y}}\",\n        \"keys\": [\n          \"\\\\ScrabblePutWord,\\\\ScrabblePlaceMot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ScrabblePlaceMot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ScrabblePlaceMot{${1:lettres}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"ScrabblePlaceMot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ScrabblePlaceMot[${3:orientation%keyvals}]{${1:lettres}}{${2:x,y}}\",\n        \"keys\": [\n          \"\\\\ScrabblePutWord,\\\\ScrabblePlaceMot\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvScrabble\"\n    },\n    {\n      \"name\": \"EnvScrabble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:keys%keyvals}]\",\n        \"keys\": [\n          \"\\\\ScrabbleBoard,\\\\begin{EnvScrabble}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvScrabble\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:language}>\"\n      }\n    },\n    {\n      \"name\": \"EnvScrabble\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:language}>[${1:keys%keyvals}]\",\n        \"keys\": [\n          \"\\\\ScrabbleBoard,\\\\begin{EnvScrabble}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"EnvScrabbleFR\"\n    },\n    {\n      \"name\": \"EnvScrabbleFR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PlateauScrabble,\\\\begin{EnvScrabbleFR}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvScrabbleFR\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:language}>\"\n      }\n    },\n    {\n      \"name\": \"EnvScrabbleFR\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:language}>[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PlateauScrabble,\\\\begin{EnvScrabbleFR}\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\ScrabbleBoard,\\\\begin{EnvScrabble}\": [\n      \"Scale=${1:factor}\",\n      \"ScaleLabels=${1:factor}\",\n      \"Border\",\n      \"Labels\",\n      \"Help\"\n    ],\n    \"\\\\PlateauScrabble,\\\\begin{EnvScrabbleFR}\": [\n      \"Echelle=${1:factor}\",\n      \"EchelleLabels=${1:factor}\",\n      \"Cadre\",\n      \"Labels\",\n      \"Aide\"\n    ],\n    \"\\\\ScrabblePutWord,\\\\ScrabblePlaceMot\": [\n      \"H\",\n      \"V\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Starburst.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Starburstfamily\"\n    },\n    {\n      \"name\": \"starburst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starburst{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/SympyCalc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sympycalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycalc{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympycalc<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycalc<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympycalc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycalc*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympycalc*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycalc*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympycalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympycalc{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympycalc<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympycalc<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympycalc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympycalc*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympycalc*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympycalc*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyimage{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyimage\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyimage{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyimage<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyimage<NoSimplif>{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyimage<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyimage<NoSimplif>{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyimage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyimage*{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyimage*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyimage*{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyimage*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyimage*<NoSimplif>{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyimage*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyimage*<NoSimplif>{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyimage{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyimage{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyimage<NoSimplif>{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyimage<NoSimplif>{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyimage*{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyimage*{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyimage*<NoSimplif>{${1:fonction sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyimage*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyimage*<NoSimplif>{${1:fonction sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympydev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympydev{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympydev\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympydev{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympydev<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympydev<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympydev<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympydev<NoSimplif>{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympydev*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympydev*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympydev*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympydev*{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympydev*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympydev*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympydev*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympydev*<NoSimplif>{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympydev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympydev{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympydev\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympydev{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympydev<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympydev<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympydev<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympydev<NoSimplif>{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympydev*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympydev*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympydev*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympydev*{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympydev*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympydev*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympydev*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympydev*<NoSimplif>{${1:commande sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyfact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfact{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfact<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfact<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfact*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfact*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfact*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfact*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfact{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfact<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfact<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfact*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfact*{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfact*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfact*<NoSimplif>{${1:commande sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyresol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyresol{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyresol\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyresol{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyresol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyresol*{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyresol*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyresol*{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyresol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyresol{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyresol\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyresol{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyresol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyresol*{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyresol*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyresol*{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyresolC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyresolC{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyresolC\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyresolC{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyresolC*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyresolC*{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyresolC*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyresolC*{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyresolC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyresolC{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyresolC\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyresolC{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyresolC*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyresolC*{${1:equation sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyresolC*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyresolC*{${1:equation sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympynbderiv{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympynbderiv{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympynbderiv{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympynbderiv{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympynbderiv<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympynbderiv<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympynbderiv<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympynbderiv<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympynbderiv*{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympynbderiv*{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympynbderiv*{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympynbderiv*{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympynbderiv*<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympynbderiv*<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympynbderiv*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympynbderiv*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympynbderiv{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympynbderiv{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympynbderiv{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympynbderiv{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympynbderiv<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympynbderiv<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympynbderiv<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympynbderiv<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympynbderiv*{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympynbderiv*{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympynbderiv*{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympynbderiv*{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympynbderiv*<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympynbderiv*<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympynbderiv*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympynbderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympynbderiv*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyderiv{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyderiv{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyderiv<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyderiv<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyderiv*{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyderiv*{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyderiv*<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyderiv*<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyderiv{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyderiv{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyderiv<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyderiv<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyderiv*{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyderiv*{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyderiv*<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyderiv*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyderiv*<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyprim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyprim{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyprim\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyprim{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyprim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyprim<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyprim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyprim<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyprim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyprim*{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyprim*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyprim*{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyprim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyprim*<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyprim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sympyprim*<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyprim{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyprim{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyprim<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyprim<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyprim*{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyprim*{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyprim*<NoSimplif>{${1:expr sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyprim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dsympyprim*<NoSimplif>{${1:expr sympy}}[${2:variable}]\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sympyintegr{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"sympyintegr{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sympyintegr<NoSimplif>{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"sympyintegr<NoSimplif>{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sympyintegr*{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"sympyintegr*{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sympyintegr*<NoSimplif>{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympyintegr*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"sympyintegr*<NoSimplif>{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dsympyintegr{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"dsympyintegr{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dsympyintegr<NoSimplif>{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"dsympyintegr<NoSimplif>{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dsympyintegr*{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"dsympyintegr*{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dsympyintegr*<NoSimplif>{${1:expr sympy}}{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyintegr*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"dsympyintegr*<NoSimplif>{${1:expr sympy}}[${4:variable}]{${2:borne inf}}{${3:borne sup}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympylim{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympylim{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympylim{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympylim{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympylim<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympylim<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympylim<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympylim<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympylim*{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympylim*{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympylim*{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim*\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympylim*{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sympylim*<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sympylim*<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sympylim*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"sympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"sympylim*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympylim{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympylim{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympylim{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympylim{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympylim<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympylim<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympylim<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympylim<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympylim*{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympylim*{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympylim*{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympylim*{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsympylim*<NoSimplif>{${1:expr sympy}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsympylim*<NoSimplif>{${1:expr sympy}}{${2:point}}[${3:côté}]\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dsympylim*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"dsympylim*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"dsympylim*<NoSimplif>{${1:expr sympy}}[${3:variable}]{${2:point}}[${4:côté}]\"\n      }\n    },\n    {\n      \"name\": \"sympyfexpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfexpo{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfexpo<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfexpo<NoSimplif>{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfexpo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfexpo*{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"sympyfexpo*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyfexpo*<NoSimplif>{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfexpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfexpo{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfexpo<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfexpo<NoSimplif>{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfexpo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfexpo*{${1:complexe sympy}}\"\n      }\n    },\n    {\n      \"name\": \"dsympyfexpo*<NoSimplif>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsympyfexpo*<NoSimplif>{${1:complexe sympy}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/Tabbing.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TAB\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Tabbing\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/TangramTikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TangramTikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TangramTikz{${1:tangram name}}\"\n      }\n    },\n    {\n      \"name\": \"TangramTikz<TikZ options>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TangramTikz<TikZ options>{${1:tangram name}}\"\n      }\n    },\n    {\n      \"name\": \"TangramTikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TangramTikz[${2:options%keyvals}]{${1:tangram name}}\",\n        \"keys\": [\n          \"\\\\begin{EnvTangramTikz},\\\\TangramTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TangramTikz\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"TangramTikz[${2:options%keyvals}]<${3:TikZ options}>{${1:tangram name}}\",\n        \"keys\": [\n          \"\\\\begin{EnvTangramTikz},\\\\TangramTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PieceTangram\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"PieceTangram[${2:options%keyvals}](${3:x},${4:y}){${1:piece name}}\",\n        \"keys\": [\n          \"\\\\PieceTangram#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PieceTangram\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"PieceTangram[${2:options%keyvals}]<${3:TikZ options}>(${4:x},${5:y}){${1:piece name}}\",\n        \"keys\": [\n          \"\\\\PieceTangram#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvTangramTikz\"\n    },\n    {\n      \"name\": \"EnvTangramTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{EnvTangramTikz},\\\\TangramTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvTangramTikz\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:options%keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\begin{EnvTangramTikz},\\\\TangramTikz\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{EnvTangramTikz},\\\\TangramTikz\": [\n      \"Puzzle\",\n      \"Correction\",\n      \"Color=\",\n      \"Couleur=\",\n      \"ColorCorrection\",\n      \"CorrectionCouleur\",\n      \"ColorList={${1:color1,color2,...}}\",\n      \"ListeCouleurs={${1:couleur1,couleur2,...}}\",\n      \"Sep=\"\n    ],\n    \"\\\\PieceTangram#c\": [\n      \"TangPuzz\",\n      \"TangPuzz={${1:color}}\",\n      \"TangSol\",\n      \"TangSol={${1:color}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/TheanoDidot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theanodidot\"\n    },\n    {\n      \"name\": \"theanodidotosf\"\n    },\n    {\n      \"name\": \"theanodidotlf\"\n    },\n    {\n      \"name\": \"theanodidotlgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/TheanoDidot#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"osf\",\n      \"oldstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/TheanoDidot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/TheanoModern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theanomodern\"\n    },\n    {\n      \"name\": \"theanomodernosf\"\n    },\n    {\n      \"name\": \"theanomodernlf\"\n    },\n    {\n      \"name\": \"theanomodernlgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/TheanoModern#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"osf\",\n      \"oldstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/TheanoModern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/TheanoOldStyle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theanooldstyle\"\n    },\n    {\n      \"name\": \"theanooldstyleosf\"\n    },\n    {\n      \"name\": \"theanooldstylelf\"\n    },\n    {\n      \"name\": \"theanooldstylelgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/TheanoOldStyle#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"osf\",\n      \"oldstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/TheanoOldStyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Typocaps.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Typocapsfamily\"\n    },\n    {\n      \"name\": \"typocap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typocap{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/UniversalisADFStd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/UniversalisADFStd#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"proportional\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/UniversalisADFStd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/WriteOnGrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ColSeyes\"\n    },\n    {\n      \"name\": \"ColRuled\"\n    },\n    {\n      \"name\": \"DispGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DispGrid[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\DispGrid,\\\\begin{EnvGrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DispGrid\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"DispGrid[${1:keyvals}]<${2:color}>\",\n        \"keys\": [\n          \"\\\\DispGrid,\\\\begin{EnvGrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WriteLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteLine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WriteLine<alignment>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteLine<alignment>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WriteLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"WriteLine[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\WriteLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WriteLine\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"WriteLine[${2:keyvals}]<${3:alignment}>{${1:text}}\",\n        \"keys\": [\n          \"\\\\WriteLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PassLine\"\n    },\n    {\n      \"name\": \"CoulSeyes\"\n    },\n    {\n      \"name\": \"CoulRuled\"\n    },\n    {\n      \"name\": \"AffQuadrillage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AffQuadrillage[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffQuadrillage,\\\\begin{EnvQuadrillage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AffQuadrillage\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"AffQuadrillage[${1:clés%keyvals}]<${2:color}>\",\n        \"keys\": [\n          \"\\\\AffQuadrillage,\\\\begin{EnvQuadrillage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EcrireLigne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcrireLigne{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EcrireLigne<alignement>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EcrireLigne<alignement>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EcrireLigne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EcrireLigne[${2:clés%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\EcrireLigne\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EcrireLigne\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"EcrireLigne[${2:clés%keyvals}]<${3:alignement}>{${1:text}}\",\n        \"keys\": [\n          \"\\\\EcrireLigne\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PasseLigne\"\n    },\n    {\n      \"name\": \"LignePapierSeyes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LignePapierSeyes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LignePapierSeyes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LignePapierSeyes[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierSeyes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LignePapierSeyes\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"LignePapierSeyes[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierSeyes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CadreNoteSeyes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadreNoteSeyes{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"CadreNoteSeyes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CadreNoteSeyes[${2:hauteur}]{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierSeyes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParagraphePapierSeyes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierSeyes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ParagraphePapierSeyes[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierSeyes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierSeyes\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"ParagraphePapierSeyes[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierSeyes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LignePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LignePapierCinqCinq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LignePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LignePapierCinqCinq[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierCinqCinq\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LignePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"LignePapierCinqCinq[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierCinqCinq\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CadreNoteCinqCinq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadreNoteCinqCinq{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"CadreNoteCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CadreNoteCinqCinq[${2:hauteur}]{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParagraphePapierCinqCinq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ParagraphePapierCinqCinq[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierCinqCinq\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"ParagraphePapierCinqCinq[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierCinqCinq\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LignePapierRuled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LignePapierRuled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LignePapierRuled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LignePapierRuled[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierRuled\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LignePapierRuled\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"LignePapierRuled[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\LignePapierRuled\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CadreNoteRuled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadreNoteRuled{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"CadreNoteRuled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CadreNoteRuled[${2:hauteur}]{${1:numligne}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierRuled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParagraphePapierRuled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierRuled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ParagraphePapierRuled[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierRuled\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParagraphePapierRuled\",\n      \"arg\": {\n        \"format\": \"[]<>(){}\",\n        \"snippet\": \"ParagraphePapierRuled[${2:options%keyvals}]<${3:alignement}>(${4:ajustement}){${1:text}}\",\n        \"keys\": [\n          \"\\\\ParagraphePapierRuled\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\DispGrid,\\\\begin{EnvGrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvGrid\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:keyvals}]<${2:color}>\",\n        \"keys\": [\n          \"\\\\DispGrid,\\\\begin{EnvGrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvQuadrillage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\AffQuadrillage,\\\\begin{EnvQuadrillage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvQuadrillage\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:color}>\",\n        \"keys\": [\n          \"\\\\AffQuadrillage,\\\\begin{EnvQuadrillage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PleinePageSeyes\"\n    },\n    {\n      \"name\": \"PleinePageSeyes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PleinePageSeyes}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PleinePageCinqCinq\"\n    },\n    {\n      \"name\": \"PleinePageCinqCinq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PleinePageCinqCinq}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PleinePageRuled\"\n    },\n    {\n      \"name\": \"PleinePageRuled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PleinePageRuled}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\DispGrid,\\\\begin{EnvGrid}\": [\n      \"NumSquares=${1:<cols>x<rows>}\",\n      \"Unit=${1:number}\",\n      \"Margin=${1:number}\",\n      \"DispBar\",\n      \"Enlarge=${1:L/R}\",\n      \"Border\",\n      \"Grid=${1|5x5,Seyes,Ruled|}\",\n      \"Seyes\"\n    ],\n    \"\\\\WriteLine\": [\n      \"OffsetH=${1:num squares}\",\n      \"OffsetV=\",\n      \"Scale=${1:factor}\"\n    ],\n    \"\\\\AffQuadrillage,\\\\begin{EnvQuadrillage}\": [\n      \"NbCarreaux=${1:<nbCol>x<nbLig>}\",\n      \"Unite=${1:nombre}\",\n      \"Marge=${1:nombre}\",\n      \"AffBarre\",\n      \"Elargir=${1:L/R}\",\n      \"Cadre\",\n      \"Grille=${1|5x5,Seyes,Ruled|}\",\n      \"ReglureSeyes=${1:nombre}\",\n      \"CouleurBarreSeyes=\"\n    ],\n    \"\\\\EcrireLigne\": [\n      \"DecalH=${1:nombre carreaux}\",\n      \"DecalV=\",\n      \"Echelle=${1:factor}\"\n    ],\n    \"\\\\begin{PleinePageSeyes}\": [\n      \"CouleurP=\",\n      \"CouleurS=\",\n      \"CouleurMarge=\",\n      \"NumLignes\",\n      \"ReglureSeyes=${1:nombre}\",\n      \"FormatPapier=${1|A4,A5,lxh|}\"\n    ],\n    \"\\\\LignePapierSeyes\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ],\n    \"\\\\ParagraphePapierSeyes\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Espacement=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ],\n    \"\\\\begin{PleinePageCinqCinq}\": [\n      \"Couleur=\",\n      \"CouleurMarge=\",\n      \"NumLignes\",\n      \"FormatPapier=${1|A4,A5,lxh|}\"\n    ],\n    \"\\\\LignePapierCinqCinq\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ],\n    \"\\\\ParagraphePapierCinqCinq\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Espacement=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ],\n    \"\\\\begin{PleinePageRuled}\": [\n      \"Couleur=\",\n      \"CouleurMarge=\",\n      \"NumLignes\",\n      \"FormatPapier=${1|A4,A5,lxh|}\"\n    ],\n    \"\\\\LignePapierRuled\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ],\n    \"\\\\ParagraphePapierRuled\": [\n      \"Couleur=\",\n      \"Ligne=${1:numéro}\",\n      \"Echelle=${1:nombre}\",\n      \"Espacement=${1:nombre}\",\n      \"Largeur=${1:nombre}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/XCharter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"otfmath\"\n    },\n    {\n      \"name\": \"xcharter-otf\",\n      \"if\": \"otfmath\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"otfmath=true\"\n    },\n    {\n      \"name\": \"xcharter-otf\",\n      \"if\": \"otfmath=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"destyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"liningnums\"\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"nustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"proportionalnums\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"sustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabularnums\"\n    },\n    {\n      \"name\": \"textde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosfI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosfI{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textruble\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textthit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thfamily\"\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useosfI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/XCharter#c\": [\n      \"aftsolidus=\",\n      \"defaultfeatures={${1:fontspec features}}\",\n      \"foresolidus=\",\n      \"lf\",\n      \"lining\",\n      \"nofontspec\",\n      \"notextnu\",\n      \"oldSS\",\n      \"oldstyle\",\n      \"oldstyleI\",\n      \"osf\",\n      \"osfI\",\n      \"otfmath\",\n      \"p\",\n      \"proportional\",\n      \"scaled=${1:factor}\",\n      \"scosf\",\n      \"sups\",\n      \"t\",\n      \"tabular\",\n      \"theoremfont\",\n      \"thmlining\",\n      \"type1\",\n      \"type1text\",\n      \"no-text\",\n      \"tight\",\n      \"loose\",\n      \"fulloldstyle\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"StylisticSet=${1|4,5,6|}\",\n      \"Style=${1|upint,leqslant,smaller,subsetneq,parallelslant|}\",\n      \"Scale=${1:factor}\",\n      \"no-text\",\n      \"tight\",\n      \"loose\",\n      \"fulloldstyle\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"StylisticSet=${1|4,5,6|}\",\n      \"Style=${1|upint,leqslant,smaller,subsetneq,parallelslant|}\",\n      \"Scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/XCharter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/Zallman.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Zallmanfamily\"\n    },\n    {\n      \"name\": \"zall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zall{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/a4.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"WideMargins\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/a4#c\": [\n      \"widemargins\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/a4#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/a4wide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"a4\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/abbrevs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"slemph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nospacelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newabbrev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newabbrev{${1:cmd}}{${2:initial%text}}\"\n      }\n    },\n    {\n      \"name\": \"newabbrev\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newabbrev{${1:cmd}}{${2:initial%text}}[${3:subsequent%text}]\"\n      }\n    },\n    {\n      \"name\": \"newname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newname{${1:cmd}}{${2:initial%text}}\"\n      }\n    },\n    {\n      \"name\": \"newname\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newname{${1:cmd}}{${2:initial%text}}[${3:subsequent%text}]\"\n      }\n    },\n    {\n      \"name\": \"newbook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbook{${1:cmd}}{${2:initial%text}}\"\n      }\n    },\n    {\n      \"name\": \"newbook\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newbook{${1:cmd}}{${2:initial%text}}[${3:subsequent%text}]\"\n      }\n    },\n    {\n      \"name\": \"newwork\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newwork{${1:cmd}}{${2:bib key}}{${3:initial%text}}\"\n      }\n    },\n    {\n      \"name\": \"newwork\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newwork{${1:cmd}}{${2:bib key}}{${3:initial%text}}[${4:subsequent%text}]\"\n      }\n    },\n    {\n      \"name\": \"PM\"\n    },\n    {\n      \"name\": \"AM\"\n    },\n    {\n      \"name\": \"BC\"\n    },\n    {\n      \"name\": \"AD\"\n    },\n    {\n      \"name\": \"acromake\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acromake{${1:csname}}{${2:initial text%text}}{${3:final text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ACRcnta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ACRcntb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcromakePageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetAbbrevs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetAbbrevs{${1:category list}}\"\n      }\n    },\n    {\n      \"name\": \"NewAbbrevCategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewAbbrevCategory{${1:category name}}\"\n      }\n    },\n    {\n      \"name\": \"TMFontAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMResetAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMFontGeneric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMFontName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMFontBook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMFontWork\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookGeneric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookBook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookWork\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMResetGeneric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMResetName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMResetBook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMResetWork\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewUserAbbrevDefiner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewUserAbbrevDefiner{${1:cmd}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"NewUserAbbrevDefiner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewUserAbbrevDefiner{${1:cmd}}{${2:category}}[${3:definer}]\"\n      }\n    },\n    {\n      \"name\": \"TMDefineAbbrevStandard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TMDefineAbbrevStandard{${1:cmd}}{${2:initial}}\"\n      }\n    },\n    {\n      \"name\": \"TMDefineAbbrevStandard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"TMDefineAbbrevStandard{${1:cmd}}{${2:initial}}[${3:subsequent}]\"\n      }\n    },\n    {\n      \"name\": \"TMInitialSuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMSubsequentSuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DateMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DateMark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifTMInhibitSwitching\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMInhibitSwitchingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMInhibitSwitchingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTMAlwaysLong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMAlwaysLongtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMAlwaysLongfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DateMarkSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMAcromakeDefiner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TMAcromakeDefiner{${1:category}}{${2:csname}}{${3:acronym}}{${4:fulltext}}\"\n      }\n    },\n    {\n      \"name\": \"TMAcromakeSecondarySuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMCurrentMacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMCurrentMacroRootname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookAcromake\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMHookAcromakeHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMNewAbbrevAcromake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TMNewAbbrevAcromake{${1:csname-root}}{${2:csname-suffix}}{${3:category}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"TMNewAbbrevPlain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TMNewAbbrevPlain{${1:cmd}}{${2:category}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"TMNewAbbrevSwitcher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TMNewAbbrevSwitcher{${1:definer}}{${2:category}}{${3:csname}}{${4:initial}}{${5:subsequent}}\"\n      }\n    },\n    {\n      \"name\": \"TMNewAbbrevSwitcherAcromake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TMNewAbbrevSwitcherAcromake{${1:definer}}{${2:category}}{${3:csname}}{${4:initial}}{${5:subsequent}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/abc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abcinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abcinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"abcinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abcinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{abc},\\\\abcinput,\\\\begin{mup},\\\\mupinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abcwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalabcoutputfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalmupoutputfile\",\n      \"if\": \"mup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupinput\",\n      \"if\": \"mup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mupinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mupinput\",\n      \"if\": \"mup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mupinput[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mupwidth\",\n      \"if\": \"mup\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abc\"\n    },\n    {\n      \"name\": \"abc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abc},\\\\abcinput,\\\\begin{mup},\\\\mupinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mup\",\n      \"if\": \"mup\"\n    },\n    {\n      \"name\": \"mup\",\n      \"if\": \"mup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/abc#c\": [\n      \"shellescape\",\n      \"noshellescape\",\n      \"generate\",\n      \"nogenerate\",\n      \"ps2epsi\",\n      \"ps2epsidos\",\n      \"ps2eps\",\n      \"nosaveall\",\n      \"saveall\",\n      \"mup\"\n    ],\n    \"\\\\begin{abc},\\\\abcinput,\\\\begin{mup},\\\\mupinput\": [\n      \"name=${1:name}\",\n      \"options={${1:abcm2ps options}}\",\n      \"postoptions={${1:abcm2ps options}}\",\n      \"program=${1:program}\",\n      \"width=\",\n      \"center\",\n      \"extension=${1:extension}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/abc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/abntcite.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonline{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthoronline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthoronline{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"leftovercite\"\n    },\n    {\n      \"name\": \"rightovercite\"\n    },\n    {\n      \"name\": \"citeoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"bibtextitlecommand\"\n    },\n    {\n      \"name\": \"bibtextitlecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibtextitlecommand{${1:entry}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/abntex2abrev.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NoAbrevending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Capitalize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Capitalize{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TESTabrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TESTabrev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abrevending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abrevending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abrev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Abrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abrev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXabrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXabrev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXabrevp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXabrevp{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/abntex2cite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"abntex2abrev\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"breakurl\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonline{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeonline[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:keylist}}{${2:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"apud[${3:add. text}]{${1:keylist}}{${2:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apudonline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apudonline{${1:keylist}}{${2:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apudonline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"apudonline[${3:add. text}]{${1:keylist}}{${2:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteref{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Idem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Idem{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Idem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Idem[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Ibidem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ibidem{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Ibidem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ibidem[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"opcit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opcit{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"opcit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"opcit[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"passim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"passim{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"passim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"passim[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"loccit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loccit{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"loccit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loccit[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cfcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cfcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfcite[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"etseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etseq{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"etseq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etseq[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthoronline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthoronline{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"authorcapstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yearstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citebrackets\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citebrackets{${1:delim1}}{${2:delim2}}\"\n      }\n    },\n    {\n      \"name\": \"bibtextitlecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibtextitlecommand{${1:tipo}}{${2:campo}}\"\n      }\n    },\n    {\n      \"name\": \"citeoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeoption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\citeoption#c,\\\\usepackage/abntex2cite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ABCIaddtocitelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIaddtocitelist{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ABCIaftercitex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIauxlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIccomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcitation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcitecolondefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcitecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcitecommadefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcitelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIdemand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIdemand{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ABCIfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIgetcitetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIgetcitetext{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ABCIgetcitetextecho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIgetcitetextecho{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ABCIinitcitecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIlistwithoutmaximum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIlistwithoutmaximum{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ABCInewblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIoutputgroupedcitelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIprocesscitetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIscriptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIsortlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCIsortlist{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ABCItemplist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCItempslist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIthebibliformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCIthebiblihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABCItoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABCItoken{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AbntCitetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AbntCitetypeALF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abntnextkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abntrefinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abntrefinfo{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"addtociteoptionlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtociteoptionlist{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"AfterTheBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterTheBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"apudname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibciteEXPL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibciteEXPL{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bibciteIMPL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibciteIMPL{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bibciteYEAR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibciteYEAR{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"biblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabeltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfcitename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeifnotcited\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeifnotcited{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citen[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citen{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citenum[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citenum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citenumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeonlineifnotcited\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonlineifnotcited{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeoptionlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etseqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grabseven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"grabseven{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}\"\n      }\n    },\n    {\n      \"name\": \"grabsix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"grabsix{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"hiddenbibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hiddenbibitem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcited\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcited{${1:key}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifconsecutive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifconsecutive{${1:num1}}{${2:num2}}{${3:block1}}{${4:block2}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStringInString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSubStringInString{${1:substring}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"loccitname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maximuminlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maximuminlist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"minimumbiblabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opcitname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionaltextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"passimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcitebrackets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texforht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theABCIaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theABCImax\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/abntex2cite\": [\n      \"alf\",\n      \"num\",\n      \"foot\",\n      \"not-foot\",\n      \"load-text-on-demand\",\n      \"load-text\",\n      \"alfantigo\",\n      \"experimental\",\n      \"bibjustif\",\n      \"bibleftalign\",\n      \"biblabel-on-margin\",\n      \"biblabel-not-on-margin\",\n      \"abnt-option-file\",\n      \"no-abnt-option-file\",\n      \"recuo\",\n      \"indent\",\n      \"overcite\",\n      \"inlinecite\",\n      \"versalete\",\n      \"abnt-substyle=COPPE\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"abntex2-alf\"\n    ],\n    \"\\\\citeoption#c,\\\\usepackage/abntex2cite#c\": [\n      \"abnt-and-type=${1|e,&|}\",\n      \"abnt-etal-cite=${1|0,2,3,4,5|}\",\n      \"abnt-etal-list=${1|0,2,3,4,5|}\",\n      \"abnt-etal-text=${1|none,default,emph,it|}\",\n      \"abnt-full-initials=${1|no,yes|}\",\n      \"abnt-last-names=${1|abnt,bibtex|}\",\n      \"abnt-missing-year=${1|void,sd|}\",\n      \"abnt-repeated-author-omit=${1|no,yes|}\",\n      \"abnt-repeated-title-omit=${1|no,yes|}\",\n      \"abnt-thesis-year=${1|final,title,both|}\",\n      \"abnt-refinfo=${1|no,yes|}\",\n      \"abnt-show-options=${1|no,warn,list|}\",\n      \"abnt-verbatim-entry=${1|no,yes|}\",\n      \"abnt-doi=${1|expand,link,doi|}\",\n      \"abnt-substyle=${1|COPPE,UFLA|}\",\n      \"abnt-nbr10520=${1|2001,1988|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/abntex2cite\",\n    \"\\\\citeoption#c,\\\\usepackage/abntex2cite#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aboensis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifFibonacciNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FibonacciNumberstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FibonacciNumbersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abtildes\"\n    },\n    {\n      \"name\": \"abrubricred\"\n    },\n    {\n      \"name\": \"abrubricgreen\"\n    },\n    {\n      \"name\": \"abrubricblue\"\n    },\n    {\n      \"name\": \"abotherrubricred\"\n    },\n    {\n      \"name\": \"abotherrubricgreen\"\n    },\n    {\n      \"name\": \"abotherrubricblue\"\n    },\n    {\n      \"name\": \"absetrubriccolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absetrubriccolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"absetotherrubriccolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absetotherrubriccolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"absettextcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absettextcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"abrubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abrubric{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abtorubric\"\n    },\n    {\n      \"name\": \"abotherrubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abotherrubric{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abtootherrubric\"\n    },\n    {\n      \"name\": \"abtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abcursivefamily\"\n    },\n    {\n      \"name\": \"aboensis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aboensis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Aboensis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aboensis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"absetcolormixpercentage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absetcolormixpercentage{${1:percentage}}\"\n      }\n    },\n    {\n      \"name\": \"absetothercolormixpercentage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absetothercolormixpercentage{${1:percentage}}\"\n      }\n    },\n    {\n      \"name\": \"abcapital\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abcapital{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abcapitalother\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abcapitalother{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abinitial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abinitial{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abinitialother\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abinitialother{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abinitialtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abinitialtwo{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abinitialothertwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abinitialothertwo{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abinitwpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abinitwpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}\"\n      }\n    },\n    {\n      \"name\": \"abinitowpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abinitowpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}\"\n      }\n    },\n    {\n      \"name\": \"abinittwowpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abinittwowpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}\"\n      }\n    },\n    {\n      \"name\": \"abinitotwowpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abinitotwowpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}\"\n      }\n    },\n    {\n      \"name\": \"abindent\"\n    },\n    {\n      \"name\": \"abcursiveinitial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abcursiveinitial{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"abcursiveinitialwithpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abcursiveinitialwithpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abstartchapter{${1:letter}}{${2:line1%text}}{${3:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchaptertwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abstartchaptertwo{${1:letter}}{${2:line1%text}}{${3:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapterother\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abstartchapterother{${1:letter}}{${2:line1%text}}{${3:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapterothertwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abstartchapterothertwo{${1:letter}}{${2:line1%text}}{${3:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapterwithpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"abstartchapterwithpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}{${5:line1%text}}{${6:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchaptertwowithpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"abstartchaptertwowithpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}{${5:line1%text}}{${6:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapterotherwithpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"abstartchapterotherwithpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}{${5:line1%text}}{${6:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstartchapterothertwowithpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"abstartchapterothertwowithpos{${1:letter}}{${2:scale}}{${3:xpos%l}}{${4:ypos%l}}{${5:line1%text}}{${6:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ableftindex\"\n    },\n    {\n      \"name\": \"abrightindex\"\n    },\n    {\n      \"name\": \"abupindex\"\n    },\n    {\n      \"name\": \"abdownindex\"\n    },\n    {\n      \"name\": \"abl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abpara\"\n    },\n    {\n      \"name\": \"abparaother\"\n    },\n    {\n      \"name\": \"ablibra\"\n    },\n    {\n      \"name\": \"abmark\"\n    },\n    {\n      \"name\": \"abmarc\"\n    },\n    {\n      \"name\": \"abmk\"\n    },\n    {\n      \"name\": \"absolidus\"\n    },\n    {\n      \"name\": \"abdenarius\"\n    },\n    {\n      \"name\": \"ablod\"\n    },\n    {\n      \"name\": \"abquintin\"\n    },\n    {\n      \"name\": \"abore\"\n    },\n    {\n      \"name\": \"abortug\"\n    },\n    {\n      \"name\": \"abpenning\"\n    },\n    {\n      \"name\": \"ablispund\"\n    },\n    {\n      \"name\": \"ablispundtwo\"\n    },\n    {\n      \"name\": \"ablispundthree\"\n    },\n    {\n      \"name\": \"ablispundfour\"\n    },\n    {\n      \"name\": \"abskeppund\"\n    },\n    {\n      \"name\": \"abskeppundtwo\"\n    },\n    {\n      \"name\": \"abbesmanspund\"\n    },\n    {\n      \"name\": \"abpund\"\n    },\n    {\n      \"name\": \"abpundtwo\"\n    },\n    {\n      \"name\": \"abpundthree\"\n    },\n    {\n      \"name\": \"abpundfour\"\n    },\n    {\n      \"name\": \"abskaalpund\"\n    },\n    {\n      \"name\": \"abmarkpund\"\n    },\n    {\n      \"name\": \"abmarkpundtwo\"\n    },\n    {\n      \"name\": \"abtunna\"\n    },\n    {\n      \"name\": \"abtunnor\"\n    },\n    {\n      \"name\": \"abspann\"\n    },\n    {\n      \"name\": \"abfjarding\"\n    },\n    {\n      \"name\": \"abfjardingtwo\"\n    },\n    {\n      \"name\": \"absattung\"\n    },\n    {\n      \"name\": \"abskappa\"\n    },\n    {\n      \"name\": \"abskole\"\n    },\n    {\n      \"name\": \"abkappa\"\n    },\n    {\n      \"name\": \"abkappatwo\"\n    },\n    {\n      \"name\": \"abthyn\"\n    },\n    {\n      \"name\": \"abkolmannes\"\n    },\n    {\n      \"name\": \"abkylmitta\"\n    },\n    {\n      \"name\": \"ablast\"\n    },\n    {\n      \"name\": \"abvakka\"\n    },\n    {\n      \"name\": \"abmodius\"\n    },\n    {\n      \"name\": \"absoll\"\n    },\n    {\n      \"name\": \"abkarpio\"\n    },\n    {\n      \"name\": \"abkarpiotwo\"\n    },\n    {\n      \"name\": \"abparmas\"\n    },\n    {\n      \"name\": \"abdragu\"\n    },\n    {\n      \"name\": \"abaam\"\n    },\n    {\n      \"name\": \"ablass\"\n    },\n    {\n      \"name\": \"absommarlass\"\n    },\n    {\n      \"name\": \"abvinterlass\"\n    },\n    {\n      \"name\": \"absommardragu\"\n    },\n    {\n      \"name\": \"abvinterdragu\"\n    },\n    {\n      \"name\": \"abfangh\"\n    },\n    {\n      \"name\": \"abkarve\"\n    },\n    {\n      \"name\": \"abambar\"\n    },\n    {\n      \"name\": \"abstop\"\n    },\n    {\n      \"name\": \"abkanna\"\n    },\n    {\n      \"name\": \"abkannatwo\"\n    },\n    {\n      \"name\": \"abotting\"\n    },\n    {\n      \"name\": \"abbaat\"\n    },\n    {\n      \"name\": \"abquarter\"\n    },\n    {\n      \"name\": \"abfat\"\n    },\n    {\n      \"name\": \"abstang\"\n    },\n    {\n      \"name\": \"abaln\"\n    },\n    {\n      \"name\": \"abhalvaln\"\n    },\n    {\n      \"name\": \"abfot\"\n    },\n    {\n      \"name\": \"abmil\"\n    },\n    {\n      \"name\": \"abrast\"\n    },\n    {\n      \"name\": \"abvika\"\n    },\n    {\n      \"name\": \"abvecka\"\n    },\n    {\n      \"name\": \"abfamn\"\n    },\n    {\n      \"name\": \"abtum\"\n    },\n    {\n      \"name\": \"abspannland\"\n    },\n    {\n      \"name\": \"abtunnland\"\n    },\n    {\n      \"name\": \"abpundland\"\n    },\n    {\n      \"name\": \"abpundlandtwo\"\n    },\n    {\n      \"name\": \"abmarksland\"\n    },\n    {\n      \"name\": \"abmarkslandtwo\"\n    },\n    {\n      \"name\": \"aboresland\"\n    },\n    {\n      \"name\": \"abortugsland\"\n    },\n    {\n      \"name\": \"abpenningsland\"\n    },\n    {\n      \"name\": \"abskattemark\"\n    },\n    {\n      \"name\": \"abhalvbol\"\n    },\n    {\n      \"name\": \"abbol\"\n    },\n    {\n      \"name\": \"abstycke\"\n    },\n    {\n      \"name\": \"abdacker\"\n    },\n    {\n      \"name\": \"abtimber\"\n    },\n    {\n      \"name\": \"abtimmer\"\n    },\n    {\n      \"name\": \"abothernum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abothernum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abthousand\"\n    },\n    {\n      \"name\": \"abhundred\"\n    },\n    {\n      \"name\": \"abromanother\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"abromanother{${1:thousands}}{${2:hundreds}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"abthird\"\n    },\n    {\n      \"name\": \"abfourth\"\n    },\n    {\n      \"name\": \"absixth\"\n    },\n    {\n      \"name\": \"abitem\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aboensis#c\": [\n      \"Fibonacci\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aboensis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/abraces.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aoverbrace{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"{}^{}_{}\",\n        \"snippet\": \"aoverbrace{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"{}[]^{}_{}\",\n        \"snippet\": \"aoverbrace{${1:stuff}}[${4:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aoverbrace[${2:brace spec}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"[]{}^{}_{}\",\n        \"snippet\": \"aoverbrace[${4:brace spec}]{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aoverbrace\",\n      \"arg\": {\n        \"format\": \"[]{}[]^{}_{}\",\n        \"snippet\": \"aoverbrace[${4:brace spec}]{${1:stuff}}[${5:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aunderbrace{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"{}^{}_{}\",\n        \"snippet\": \"aunderbrace{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"{}[]^{}_{}\",\n        \"snippet\": \"aunderbrace{${1:stuff}}[${4:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aunderbrace[${2:brace spec}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"[]{}^{}_{}\",\n        \"snippet\": \"aunderbrace[${4:brace spec}]{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"aunderbrace\",\n      \"arg\": {\n        \"format\": \"[]{}[]^{}_{}\",\n        \"snippet\": \"aunderbrace[${4:brace spec}]{${1:stuff}}[${5:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      }\n    },\n    {\n      \"name\": \"newbracespec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbracespec{${1:char}}{${2:brace spec}}\"\n      }\n    },\n    {\n      \"name\": \"bracecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"overbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}^{}_{}\",\n        \"snippet\": \"overbrace{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏞\",\n      \"doc\": \"Top curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"overbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]^{}_{}\",\n        \"snippet\": \"overbrace{${1:stuff}}[${4:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏞\",\n      \"doc\": \"Top curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"overbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"overbrace[${2:brace spec}]{${1:stuff}}\"\n      },\n      \"detail\": \"⏞\",\n      \"doc\": \"Top curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"overbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}^{}_{}\",\n        \"snippet\": \"overbrace[${4:brace spec}]{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏞\",\n      \"doc\": \"Top curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"overbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}[]^{}_{}\",\n        \"snippet\": \"overbrace[${4:brace spec}]{${1:stuff}}[${5:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏞\",\n      \"doc\": \"Top curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"underbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}^{}_{}\",\n        \"snippet\": \"underbrace{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏟\",\n      \"doc\": \"Bottom curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"underbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]^{}_{}\",\n        \"snippet\": \"underbrace{${1:stuff}}[${4:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏟\",\n      \"doc\": \"Bottom curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"underbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"underbrace[${2:brace spec}]{${1:stuff}}\"\n      },\n      \"detail\": \"⏟\",\n      \"doc\": \"Bottom curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"underbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}^{}_{}\",\n        \"snippet\": \"underbrace[${4:brace spec}]{${1:stuff}}^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏟\",\n      \"doc\": \"Bottom curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"underbrace\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]{}[]^{}_{}\",\n        \"snippet\": \"underbrace[${4:brace spec}]{${1:stuff}}[${5:script spec}]^{${2:upper script}}_{${3:lower script}}\"\n      },\n      \"detail\": \"⏟\",\n      \"doc\": \"Bottom curly bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"bracescript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracescript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bracefil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracefil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aupbracefill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aupbracefill{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"adownbracefill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adownbracefill{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"downbracketend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downbracketend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"downbracketend[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"upbracketend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upbracketend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upbracketend[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"genbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genbrace{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/abraces#c\": [\n      \"overload\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/abraces#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/abspos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"absposset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absposset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\absposset#c,\\\\absput#c,\\\\absputcoffin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"absput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absput{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"absput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"absput[${2:options%keyvals}]{${1:contents%text}}\",\n        \"keys\": [\n          \"\\\\absposset#c,\\\\absput#c,\\\\absputcoffin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\absposset#c,\\\\absput#c,\\\\absputcoffin#c\": [\n      \"angle=${1:degrees}\",\n      \"h=${1|l,hc,r|}\",\n      \"pg=${1:page-coffin}\",\n      \"pg-h=${1|l,hc,r|}\",\n      \"pg-v=${1|t,vc,b,H,T,B|}\",\n      \"scale=${1:factor}\",\n      \"v=${1|t,vc,b,H,T,B|}\",\n      \"width=\",\n      \"x=\",\n      \"y=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/abstract.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"saythanks\"\n    },\n    {\n      \"name\": \"abstractnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstracttextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absleftindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absrightindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abslabeldelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abslabeldelim{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"absnamepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstitleskip \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendiargdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendiargdef{${1:macro}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"onecolabstract\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/abstract#c\": [\n      \"original\",\n      \"addtotoc\",\n      \"number\",\n      \"runin\",\n      \"style\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/abstract#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/academicons.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aiicon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aiicon{${1:icon name%keyvals}}\",\n        \"keys\": [\n          \"\\\\aiicon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aiAcademia\"\n    },\n    {\n      \"name\": \"aiAcademiaSquare\"\n    },\n    {\n      \"name\": \"aiAcclaim\"\n    },\n    {\n      \"name\": \"aiAcclaimSquare\"\n    },\n    {\n      \"name\": \"aiACM\"\n    },\n    {\n      \"name\": \"aiACMSquare\"\n    },\n    {\n      \"name\": \"aiACMDL\"\n    },\n    {\n      \"name\": \"aiACMDLSquare\"\n    },\n    {\n      \"name\": \"aiADS\"\n    },\n    {\n      \"name\": \"aiADSSquare\"\n    },\n    {\n      \"name\": \"aiAfricArXiv\"\n    },\n    {\n      \"name\": \"aiAfricArXivSquare\"\n    },\n    {\n      \"name\": \"aiArchive\"\n    },\n    {\n      \"name\": \"aiArchiveSquare\"\n    },\n    {\n      \"name\": \"aiarXiv\"\n    },\n    {\n      \"name\": \"aiarXivSquare\"\n    },\n    {\n      \"name\": \"aibioRxiv\"\n    },\n    {\n      \"name\": \"aibioRxivSquare\"\n    },\n    {\n      \"name\": \"aiCEUR\"\n    },\n    {\n      \"name\": \"aiCEURSquare\"\n    },\n    {\n      \"name\": \"aiCIENCIAVITAE\"\n    },\n    {\n      \"name\": \"aiCIENCIAVITAESquare\"\n    },\n    {\n      \"name\": \"aiConversation\"\n    },\n    {\n      \"name\": \"aiConversationSquare\"\n    },\n    {\n      \"name\": \"aiCoursera\"\n    },\n    {\n      \"name\": \"aiCourseraSquare\"\n    },\n    {\n      \"name\": \"aiCrossref\"\n    },\n    {\n      \"name\": \"aiCrossrefSquare\"\n    },\n    {\n      \"name\": \"aiCV\"\n    },\n    {\n      \"name\": \"aiCVSquare\"\n    },\n    {\n      \"name\": \"aiDataCite\"\n    },\n    {\n      \"name\": \"aiDataCiteSquare\"\n    },\n    {\n      \"name\": \"aiDataverse\"\n    },\n    {\n      \"name\": \"aiDataverseSquare\"\n    },\n    {\n      \"name\": \"aidblp\"\n    },\n    {\n      \"name\": \"aidblpSquare\"\n    },\n    {\n      \"name\": \"aiDepsy\"\n    },\n    {\n      \"name\": \"aiDepsySquare\"\n    },\n    {\n      \"name\": \"aiDoi\"\n    },\n    {\n      \"name\": \"aiDoiSquare\"\n    },\n    {\n      \"name\": \"aiDryad\"\n    },\n    {\n      \"name\": \"aiDryadSquare\"\n    },\n    {\n      \"name\": \"aiElsevier\"\n    },\n    {\n      \"name\": \"aiElsevierSquare\"\n    },\n    {\n      \"name\": \"aiIDEASRePEc\"\n    },\n    {\n      \"name\": \"aiIDEASRePEcSquare\"\n    },\n    {\n      \"name\": \"aiFigshare\"\n    },\n    {\n      \"name\": \"aiFigshareSquare\"\n    },\n    {\n      \"name\": \"aiGoogleScholar\"\n    },\n    {\n      \"name\": \"aiGoogleScholarSquare\"\n    },\n    {\n      \"name\": \"aiHAL\"\n    },\n    {\n      \"name\": \"aiHALSquare\"\n    },\n    {\n      \"name\": \"aiHypothesis\"\n    },\n    {\n      \"name\": \"aiHypothesisSquare\"\n    },\n    {\n      \"name\": \"aiIEEE\"\n    },\n    {\n      \"name\": \"aiIEEESquare\"\n    },\n    {\n      \"name\": \"aiImpactstory\"\n    },\n    {\n      \"name\": \"aiImpactstorySquare\"\n    },\n    {\n      \"name\": \"aiiNaturalist\"\n    },\n    {\n      \"name\": \"aiiNaturalistSquare\"\n    },\n    {\n      \"name\": \"aiINPN\"\n    },\n    {\n      \"name\": \"aiINPNSquare\"\n    },\n    {\n      \"name\": \"aiInspire\"\n    },\n    {\n      \"name\": \"aiInspireSquare\"\n    },\n    {\n      \"name\": \"aiISIDORE\"\n    },\n    {\n      \"name\": \"aiISIDORESquare\"\n    },\n    {\n      \"name\": \"aiJSTOR\"\n    },\n    {\n      \"name\": \"aiJSTORSquare\"\n    },\n    {\n      \"name\": \"aiLattes\"\n    },\n    {\n      \"name\": \"aiLattesSquare\"\n    },\n    {\n      \"name\": \"aiMathOverflow\"\n    },\n    {\n      \"name\": \"aiMathOverflowSquare\"\n    },\n    {\n      \"name\": \"aiMendeley\"\n    },\n    {\n      \"name\": \"aiMendeleySquare\"\n    },\n    {\n      \"name\": \"aiMoodle\"\n    },\n    {\n      \"name\": \"aiMoodleSquare\"\n    },\n    {\n      \"name\": \"aiMTMT\"\n    },\n    {\n      \"name\": \"aiMTMTSquare\"\n    },\n    {\n      \"name\": \"aiNAKALA\"\n    },\n    {\n      \"name\": \"aiNAKALASquare\"\n    },\n    {\n      \"name\": \"aiClosedAccess\"\n    },\n    {\n      \"name\": \"aiClosedAccessSquare\"\n    },\n    {\n      \"name\": \"aiOBP\"\n    },\n    {\n      \"name\": \"aiOBPSquare\"\n    },\n    {\n      \"name\": \"aiOpenAccess\"\n    },\n    {\n      \"name\": \"aiOpenAccessSquare\"\n    },\n    {\n      \"name\": \"aiOpenData\"\n    },\n    {\n      \"name\": \"aiOpenDataSquare\"\n    },\n    {\n      \"name\": \"aiOpenMaterials\"\n    },\n    {\n      \"name\": \"aiOpenMaterialsSquare\"\n    },\n    {\n      \"name\": \"aiOpenEdition\"\n    },\n    {\n      \"name\": \"aiOpenEditionSquare\"\n    },\n    {\n      \"name\": \"aiOrcid\"\n    },\n    {\n      \"name\": \"aiOrcidSquare\"\n    },\n    {\n      \"name\": \"aiOSF\"\n    },\n    {\n      \"name\": \"aiOSFSquare\"\n    },\n    {\n      \"name\": \"aiOverleaf\"\n    },\n    {\n      \"name\": \"aiOverleafSquare\"\n    },\n    {\n      \"name\": \"aiPhilPapers\"\n    },\n    {\n      \"name\": \"aiPhilPapersSquare\"\n    },\n    {\n      \"name\": \"aiPiazza\"\n    },\n    {\n      \"name\": \"aiPiazzaSquare\"\n    },\n    {\n      \"name\": \"aiPreregistered\"\n    },\n    {\n      \"name\": \"aiPreregisteredSquare\"\n    },\n    {\n      \"name\": \"aiProtocols\"\n    },\n    {\n      \"name\": \"aiProtocolsSquare\"\n    },\n    {\n      \"name\": \"aiPsyArXiv\"\n    },\n    {\n      \"name\": \"aiPsyArXivSquare\"\n    },\n    {\n      \"name\": \"aiPublons\"\n    },\n    {\n      \"name\": \"aiPublonsSquare\"\n    },\n    {\n      \"name\": \"aiPubMed\"\n    },\n    {\n      \"name\": \"aiPubMedSquare\"\n    },\n    {\n      \"name\": \"aiPubPeer\"\n    },\n    {\n      \"name\": \"aiPubPeerSquare\"\n    },\n    {\n      \"name\": \"aiResearcherID\"\n    },\n    {\n      \"name\": \"aiResearcherIDSquare\"\n    },\n    {\n      \"name\": \"aiResearchGate\"\n    },\n    {\n      \"name\": \"aiResearchGateSquare\"\n    },\n    {\n      \"name\": \"aiROR\"\n    },\n    {\n      \"name\": \"aiRORSquare\"\n    },\n    {\n      \"name\": \"aiSciHub\"\n    },\n    {\n      \"name\": \"aiSciHubSquare\"\n    },\n    {\n      \"name\": \"aiSciRate\"\n    },\n    {\n      \"name\": \"aiSciRateSquare\"\n    },\n    {\n      \"name\": \"aiScopus\"\n    },\n    {\n      \"name\": \"aiScopusSquare\"\n    },\n    {\n      \"name\": \"aiSemanticScholar\"\n    },\n    {\n      \"name\": \"aiSemanticScholarSquare\"\n    },\n    {\n      \"name\": \"aiSpringer\"\n    },\n    {\n      \"name\": \"aiSpringerSquare\"\n    },\n    {\n      \"name\": \"aiSSRN\"\n    },\n    {\n      \"name\": \"aiSSRNSquare\"\n    },\n    {\n      \"name\": \"aiStackOverflow\"\n    },\n    {\n      \"name\": \"aiStackOverflowSquare\"\n    },\n    {\n      \"name\": \"aiZenodo\"\n    },\n    {\n      \"name\": \"aiZenodoSquare\"\n    },\n    {\n      \"name\": \"aiZotero\"\n    },\n    {\n      \"name\": \"aiZoteroSquare\"\n    },\n    {\n      \"name\": \"AI\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\aiicon#c\": [\n      \"academia\",\n      \"academia-square\",\n      \"acclaim\",\n      \"acclaim-square\",\n      \"acm\",\n      \"acm-square\",\n      \"acmdl\",\n      \"acmdl-square\",\n      \"ads\",\n      \"ads-square\",\n      \"africarxiv\",\n      \"africarxiv-square\",\n      \"archive\",\n      \"archive-square\",\n      \"arxiv\",\n      \"arxiv-square\",\n      \"biorxiv\",\n      \"biorxiv-square\",\n      \"ceur\",\n      \"ceursquare\",\n      \"ciencia-vitae\",\n      \"ciencia-vitae-square\",\n      \"conversation\",\n      \"conversation-square\",\n      \"coursera\",\n      \"coursera-square\",\n      \"crossref\",\n      \"crossref-square\",\n      \"cv\",\n      \"cvsquare\",\n      \"datacite\",\n      \"datacite-square\",\n      \"dataverse\",\n      \"dataverse-square\",\n      \"dblp\",\n      \"dblp-square\",\n      \"depsy\",\n      \"depsy-square\",\n      \"doi\",\n      \"doi-square\",\n      \"dryad\",\n      \"dryad-square\",\n      \"elsevier\",\n      \"elsevier-square\",\n      \"ideas-repec\",\n      \"ideas-repec-square\",\n      \"figshare\",\n      \"figshare-square\",\n      \"googlescholar\",\n      \"googlescholar-square\",\n      \"hal\",\n      \"hal-square\",\n      \"hypothesis\",\n      \"hypothesis-square\",\n      \"ieee\",\n      \"ieee-square\",\n      \"impactstory\",\n      \"impactstory-square\",\n      \"inaturalist\",\n      \"inaturalist-square\",\n      \"inpn\",\n      \"inpn-square\",\n      \"inspire\",\n      \"inspire-square\",\n      \"isidore\",\n      \"isidore-square\",\n      \"jstor\",\n      \"jstor-square\",\n      \"lattes\",\n      \"lattes-square\",\n      \"mathoverflow\",\n      \"mathoverflow-square\",\n      \"mendeley\",\n      \"mendeley-square\",\n      \"moodle\",\n      \"moodle-square\",\n      \"mtmt\",\n      \"mtmt-square\",\n      \"nakala\",\n      \"nakala-square\",\n      \"closed-access\",\n      \"closed-access-square\",\n      \"obp\",\n      \"obp-square\",\n      \"open-access\",\n      \"open-access-square\",\n      \"open-data\",\n      \"open-data-square\",\n      \"open-materials\",\n      \"open-materials-square\",\n      \"openedition\",\n      \"openedition-square\",\n      \"orcid\",\n      \"orcid-square\",\n      \"osf\",\n      \"osf-square\",\n      \"overleaf\",\n      \"overleaf-square\",\n      \"philpapers\",\n      \"philpapers-square\",\n      \"piazza\",\n      \"piazza-square\",\n      \"preregistered\",\n      \"preregistered-square\",\n      \"protocols\",\n      \"protocols-square\",\n      \"psyarxiv\",\n      \"psyarxiv-square\",\n      \"publons\",\n      \"publons-square\",\n      \"pubmed\",\n      \"pubmed-square\",\n      \"pubpeer\",\n      \"pubpeer-square\",\n      \"researcherid\",\n      \"researcherid-square\",\n      \"researchgate\",\n      \"researchgate-square\",\n      \"ror\",\n      \"ror-square\",\n      \"sci-hub\",\n      \"sci-hub-square\",\n      \"scirate\",\n      \"scirate-square\",\n      \"scopus\",\n      \"scopus-square\",\n      \"semanticscholar\",\n      \"semanticscholar-square\",\n      \"springer\",\n      \"springer-square\",\n      \"ssrn\",\n      \"ssrn-square\",\n      \"stackoverflow\",\n      \"stackoverflow-square\",\n      \"zenodo\",\n      \"zenodo-square\",\n      \"zotero\",\n      \"zotero-square\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/accanthis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"accanthis\"\n    },\n    {\n      \"name\": \"accanthisfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/accanthis#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/accanthis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/accents.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ring{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"accentset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"accentset{${1:accent}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"underaccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"underaccent{${1:accent}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"undertilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undertilde{${1:symbols}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/accents#c\": [\n      \"nonscript\",\n      \"single\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/accents#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/accsupp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BeginAccSupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeginAccSupp{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\BeginAccSupp,\\\\AccSuppSetup\",\n          \"\\\\BeginAccSupp,\\\\AccSuppSetup,\\\\EndAccSupp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AccSuppSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AccSuppSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\BeginAccSupp,\\\\AccSuppSetup\",\n          \"\\\\BeginAccSupp,\\\\AccSuppSetup,\\\\EndAccSupp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EndAccSupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EndAccSupp{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\BeginAccSupp,\\\\AccSuppSetup,\\\\EndAccSupp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ActualTextDriverDefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/accsupp#c\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"dvipdfm\"\n    ],\n    \"\\\\BeginAccSupp,\\\\AccSuppSetup\": [\n      \"ActualText=${1:text}\",\n      \"Alt=${1:text}\",\n      \"E=${1:text}\",\n      \"Lang=${1:language}\",\n      \"method=${1|plain,escape,hex,pdfstringdef|}\",\n      \"unicode\",\n      \"space\",\n      \"spacefont=${1:font name}\",\n      \"spacechar=${1:slot}\"\n    ],\n    \"\\\\BeginAccSupp,\\\\AccSuppSetup,\\\\EndAccSupp\": [\n      \"pdfliteral=${1:keyword}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/accsupp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/achemso.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"mciteplus\"\n    },\n    {\n      \"name\": \"natmove\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"journal=orlef7\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbibnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibnote\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/achemso#c\": [\n      \"abbreviations\",\n      \"articletitle\",\n      \"biblabel=${1|plain,brackets,period,fullstop|}\",\n      \"biochem\",\n      \"biochemistry\",\n      \"chaptertitle\",\n      \"doi\",\n      \"email\",\n      \"etalmode=${1|firstonly,truncate|}\",\n      \"hyperref\",\n      \"journal=${1|aaembp,aaemcq,aamick,aanmf6,aapmcd,aastgj,abmcb8,abseba,acbcct,accacs,achre4,acncdm,acsccc,acscii,acsodf,aeacb3,aeacc4,aeecco,aelccp,aesccq,aewcaa,afsthl,aidcbc,amacgu,amachv,amclct,amlccd,amlcef,amrcda,anaccx,ancac3,ancham,aoiab5,apcach,apchd5,appccd,asbcd6,ascecg,ascefj,bcches,bichaw,bomaf6,cgdefu,chreay,cmatex,crtoec,enfuem,esthag,estlcu,iecred,inoraj,jaaucr,jacsat,jafcau,jceaax,jceda8,jcisd8,jctcce,jmcmar,jnprdf,joceah,jpcafh,jpcbfk,jpccck,jpclcd,jprobs,langd5,mamobx,mpohbp,nalefd,oprdfk,orgnd7,orlef7|}\",\n      \"keywords\",\n      \"layout=${1|traditional,twocolumn|}\",\n      \"manuscript=${1|article,note,communication,review,letter,perspective|}\",\n      \"maxauthors=${1:number}\",\n      \"super\",\n      \"usetitle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/achemso#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/acro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareAcronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcronym{${1:id}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RenewAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareAcroPreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroPreset{${1:set name}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\",\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iac[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iac*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacs{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacs[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacs*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacs*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacl[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacl*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacl*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"aca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Aca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acap{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acap[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acap*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acap*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acap{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acap[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acap*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acap*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iaca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iaca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iaca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iaca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iaca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iaca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iaca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iaca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iaca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iaca{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iaca\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iaca[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iaca*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iaca*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iaca*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iaca*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iacf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iacf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"iacf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iacf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacf[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iacf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iacf*{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Iacf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Iacf*[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\acsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acrodotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acbarrier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbrdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aciftrailing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aciftrailing{${1:list of token names}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acuse{${1:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"acuseall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acreset{${1:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"acresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrotranslate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrotranslate{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acswitchoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acswitchon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetupAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupNextAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupNextAcroTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetupNextAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetupNextAcroTemplate[${3:type}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroTemplateType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroTemplateName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrolistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrowrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrowrite{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"acroformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroformat{${1:type}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"acroshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroshow{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"acroifTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifT{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanT{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifbooleanF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifbooleanF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallTF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallT{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifallF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyTF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyT{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroifanyF{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagTF{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagT{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiftagF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroiftagF{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifstarredF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifstarredF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"AcroPropertiesMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroPropertiesMap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroAcronymsMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroAcronymsMap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcronymID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroMapBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroPropertiesSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroPropertiesSet{${1:id}}{${2:list of properties}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifusedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifusedF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffirstF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroiffirstF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifsingleF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifsingleF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acrogroupcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroifchapterTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifchapterT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifchapterF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifchapterF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesT{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagesF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroifpagesF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"acropages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acropages{${1:first}}{${2:range}}\"\n      }\n    },\n    {\n      \"name\": \"acronopagerange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroneedpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropagefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymsmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymsmap{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapTF{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapT{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsmapF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymsmapF{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"AcronymTable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroAddRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroAddRow{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AcroNeedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroNeedPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"AcroRerun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAcroEnding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAcroEnding{${1:name}}{${2:short default}}{${3:long default}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroArticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroArticle{${1:name}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroTranslation{${1:key%plain}}{${2:language-translation list}}\"\n      }\n    },\n    {\n      \"name\": \"AddAcroTranslations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddAcroTranslations{${1:key%plain}}{${2:language-translation list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcroProperty{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroProperty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcroProperty*{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroPropertyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAcroPropertyAlias{${1:name1%specialDef}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAcroPropertyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAcroPropertyAlias{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"NewAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideAcroCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideAcroCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"UseAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseAcroTemplate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseAcroTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"UseAcroTemplate[${2:type}]{${1:name}}[${3:argument number}]\"\n      }\n    },\n    {\n      \"name\": \"acrocite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrodonotuse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroplural\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroindefinite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroupper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrofull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroModule{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"AcroModuleEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AcroStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroStyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AcroMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AcroMap{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroloadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroloadstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"acsimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acsimple{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfootnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acgobbletrail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acroheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acropostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrofield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrofield{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroprintfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroprintfield{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acroiffieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroiffieldTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifanyfieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroifanyfieldTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifallfieldsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"acroifallfieldsTF{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpagefieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpagefieldTF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyTF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acroifpropertyF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroifpropertyF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acshow{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acshow[${2:options}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"acroendfootnote\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/acro#c\": [\n      \"upgrade\"\n    ],\n    \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c\": [\n      \"short={${1:text}}\",\n      \"long={${1:text}}\",\n      \"alt={${1:text}}\",\n      \"extra={${1:text}}\",\n      \"foreign={${1:text}}\",\n      \"long-post={${1:text}}\",\n      \"post={${1:text}}\",\n      \"sort={${1:text}}\",\n      \"tag={${1:csv list}}\",\n      \"before-citation={${1:csv list}}\",\n      \"index-sort={${1:text}}\",\n      \"short-plural={${1:text}}\",\n      \"short-plural-form={${1:text}}\",\n      \"long-plural={${1:text}}\",\n      \"long-plural-form={${1:text}}\",\n      \"alt-plural={${1:text}}\",\n      \"alt-plural-form={${1:text}}\",\n      \"foreign-plural={${1:text}}\",\n      \"foreign-plural-form={${1:text}}\",\n      \"plural={${1:text}}\",\n      \"plural-form={${1:text}}\",\n      \"short-indefinite={${1:text}}\",\n      \"long-indefinite={${1:text}}\",\n      \"alt-indefinite={${1:text}}\",\n      \"pdfstring=${1:string}\",\n      \"pdfcomment={${1:text}}\",\n      \"short-acc={${1:text}}\",\n      \"long-acc={${1:text}}\",\n      \"alt-acc={${1:text}}\",\n      \"foreign-acc={${1:text}}\",\n      \"foreign-acc-plural-form={${1:text}}\",\n      \"extra-acc={${1:text}}\",\n      \"single-acc={${1:text}}\",\n      \"list-acc={${1:text}}\",\n      \"list={${1:text}}\",\n      \"foreign-babel=${1:language}\",\n      \"foreign-locale=${1:language}\",\n      \"preset=${1:set name}\",\n      \"uselist={${1:csv list of ids}}\"\n    ],\n    \"\\\\DeclareAcronym#c,\\\\NewAcroPreset#c,\\\\RenewAcroPreset#c,\\\\DeclareAcroPreset#c,\\\\ac#c,\\\\ac*#c,\\\\Ac#c,\\\\Ac*#c,\\\\acp#c,\\\\acp*#c,\\\\Acp#c,\\\\Acp*#c,\\\\iac#c,\\\\iac*#c,\\\\Iac#c,\\\\Iac*#c,\\\\acs#c,\\\\acs*#c,\\\\Acs#c,\\\\Acs*#c,\\\\acsp#c,\\\\acsp*#c,\\\\Acsp#c,\\\\Acsp*#c,\\\\iacs#c,\\\\iacs*#c,\\\\Iacs#c,\\\\Iacs*#c,\\\\acl#c,\\\\acl*#c,\\\\Acl#c,\\\\Acl*#c,\\\\aclp#c,\\\\aclp*#c,\\\\Aclp#c,\\\\Aclp*#c,\\\\iacl#c,\\\\iacl*#c,\\\\Iacl#c,\\\\Iacl*#c,\\\\aca#c,\\\\aca*#c,\\\\Aca#c,\\\\Aca*#c,\\\\acap#c,\\\\acap*#c,\\\\Acap#c,\\\\Acap*#c,\\\\iaca#c,\\\\iaca*#c,\\\\Iaca#c,\\\\Iaca*#c,\\\\acf#c,\\\\acf*#c,\\\\Acf#c,\\\\Acf*#c,\\\\acfp#c,\\\\acfp*#c,\\\\Acfp#c,\\\\Acfp*#c,\\\\iacf#c,\\\\iacf*#c,\\\\Iacf#c,\\\\Iacf*#c\": [\n      \"case-sensitive\",\n      \"case-insensitive\",\n      \"first-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"subsequent-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single={${1:text}}\",\n      \"use-id-as-short\",\n      \"cite=[${1:prenote}][${2:postnote}]{${3:citation keys}}\",\n      \"index={${1:text}}\",\n      \"index-sort={${1:text}}\",\n      \"no-index\",\n      \"format={${1:code}}\",\n      \"short-format={${1:code}}\",\n      \"long-format={${1:code}}\",\n      \"first-long-format={${1:code}}\",\n      \"alt-format={${1:code}}\",\n      \"extra-format={${1:code}}\",\n      \"foreign-format={${1:code}}\",\n      \"single-format={${1:code}}\",\n      \"list-format={${1:code}}\",\n      \"%acroproperty\"\n    ],\n    \"\\\\printacronyms#c\": [\n      \"template=${1|description,lof,longtable,supertabular,tabularray,tabular,toc,xltabular|}\",\n      \"sort\",\n      \"display=${1|all,used|}\",\n      \"exclude={${1:csv list of tags}}\",\n      \"include={${1:csv list of tags}}\",\n      \"add\",\n      \"heading=${1|none,section,section*,chapter,chapter*|}\",\n      \"name={${1:text}}\",\n      \"preamble={${1:text}}\",\n      \"locale/display\",\n      \"local\",\n      \"pages={${1:keyvals}}\"\n    ],\n    \"\\\\acsetup#c\": [\n      \"case-sensitive\",\n      \"case-insensitive\",\n      \"use-id-as-short\",\n      \"first-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"subsequent-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single\",\n      \"single-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"list/template=${1|description,tabular,longtable,supertabular,lof,toc|}\",\n      \"list/sort\",\n      \"list/display=${1|all,used|}\",\n      \"list/exclude={${1:csv list of tags}}\",\n      \"list/include={${1:csv list of tags}}\",\n      \"list/add\",\n      \"list/heading=${1|none,section,section*,chapter,chapter*|}\",\n      \"list/name={${1:text}}\",\n      \"list/preamble={${1:text}}\",\n      \"list/locale/display\",\n      \"list/local\",\n      \"list/foreign/display\",\n      \"pages/display=${1|first,all,none|}\",\n      \"pages/seq/use=${1|true,false|}\",\n      \"pages/seq/pre={${1:code}}\",\n      \"pages/seq/threshold=${1:number}\",\n      \"pages/fill={${1:code}}\",\n      \"pages/name\",\n      \"format={${1:code}}\",\n      \"format/short={${1:code}}\",\n      \"format/long={${1:code}}\",\n      \"format/first-long={${1:code}}\",\n      \"format/alt={${1:code}}\",\n      \"format/extra={${1:code}}\",\n      \"format/foreign={${1:code}}\",\n      \"format/list={${1:code}}\",\n      \"format/replace\",\n      \"short-plural-ending={${1:text}}\",\n      \"long-plural-ending={${1:text}}\",\n      \"foreign/display\",\n      \"locale/display\",\n      \"locale/format={${1:code}}\",\n      \"uppercase/first\",\n      \"uppercase/title\",\n      \"uppercase/all\",\n      \"uppercase/none\",\n      \"uppercase/cmd={${1:commands}}\",\n      \"uppercase/short\",\n      \"cite/cmd={${1:citation command}}\",\n      \"cite/group\",\n      \"cite/display=${1|first,all,none|}\",\n      \"cite/pre={${1:text}}\",\n      \"cite/group/cmd={${1:citation command}}\",\n      \"cite/group/pre={${1:text}}\",\n      \"index/use=${1|true,false,indexed|}\",\n      \"index/cmd={${1:index command}}\",\n      \"index/disable={${1:code}}\",\n      \"index/clear\",\n      \"barriers/use\",\n      \"barriers/reset\",\n      \"barriers/single\",\n      \"trailing/define=${1:token}{${2:name}}\",\n      \"trailing/activate={${1:list of token names}}\",\n      \"trailing/deactivate={${1:list of token names}}\",\n      \"make-links\",\n      \"link-only-first\",\n      \"pdfcomments/use\",\n      \"pdfcomments/cmd={${1:code}}\",\n      \"accsupp/use\",\n      \"accsupp/options={${1:accsupp options}}\",\n      \"accsupp/method={${1:method}}\",\n      \"language=\",\n      \"patch/floats\",\n      \"patch/list\",\n      \"patch/tabularx\",\n      \"patch/ltxtable\",\n      \"patch/tabu\",\n      \"patch/caption\",\n      \"patch/maketitle\",\n      \"load-style=${1:name}\",\n      \"templates/colspec={${1:value}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/acro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/acromemory.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"aeb-comment\"\n    },\n    {\n      \"name\": \"icon-appr\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isPackage\"\n    },\n    {\n      \"name\": \"amEmbedTiles\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"amEmbedTiles{${1:name}}{${2:n-tiles}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"insertTiles\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertTiles{${1:name}}{${2:width}}{${3:n-rows}}{${4:n-cols}}\"\n      }\n    },\n    {\n      \"name\": \"messageBox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"messageBox{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"messageBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"messageBox[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"playItAgain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"playItAgain{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"playItAgain\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"playItAgain[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"insertTilesL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertTilesL{${1:name}}{${2:width}}{${3:n-rows}}{${4:n-cols}}\"\n      }\n    },\n    {\n      \"name\": \"insertTilesR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertTilesR{${1:name}}{${2:width}}{${3:n-rows}}{${4:n-cols}}\"\n      }\n    },\n    {\n      \"name\": \"tryItAgain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tryItAgain{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"tryItAgain\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tryItAgain[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"helpImage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"helpImage{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"helpImage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"helpImage[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"rolloverHelpButton\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rolloverHelpButton{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"rolloverHelpButton\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rolloverHelpButton[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"initFirstiMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initFirstiiMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acromemoryifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acromemoryitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amIconObjs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amIconPic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"amIconPic{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"amImageHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amImageWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMIndxList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amNumImages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amTileHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amtileKVs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amtileKVs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"amTileWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bDebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iconPresets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifacromemoryi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincludehelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imageImportPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includehelpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includehelptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertTilesii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"insertTilesii{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"memDebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muAction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nTotalTiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RanIdentifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHelpCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theHelpCaption{${1:arg1}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/acromemory#c\": [\n      \"acromemory1\",\n      \"acromemory2\",\n      \"includehelp\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/acromemory#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/acronym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"relsize\",\n      \"if\": \"smaller\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acffont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acffont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acfi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfi*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfi*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfi*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfi*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfi[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfi[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfi{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfi{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfip[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfip{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfip[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfip{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfip*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfip*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfip*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfip*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfia[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfia[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfia{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfia{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfpa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfpa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfpa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acfpa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfpa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acfsfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfsfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclabelfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclabelfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Aclua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acresetall\"\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acro{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acro{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acrodef{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrodef{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrodefindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acrodefplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acrodefplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrodefplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acroextra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acroextra{${1:additional info}}\"\n      }\n    },\n    {\n      \"name\": \"acroindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acroindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"acroplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"acroplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acroplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acroplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsfont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acspa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acspa[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acspa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acspa{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsu*[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsu*{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsu[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsu{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsua[${2:linebreak penalty}]{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acsua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsua{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"acused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acused{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"Iac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Iac{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newacro{${1:acronym}}[${3:short name}]{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newacro{${1:acronym}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"newacroindefinite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacroindefinite{${1:acronym}}{${2:short indefinite article}}{${3:long indefinite article}}\"\n      }\n    },\n    {\n      \"name\": \"newacroplural\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newacroplural{${1:acronym}}[${3:short plural name}]{${2:full plural name}}\"\n      }\n    },\n    {\n      \"name\": \"newacroplural\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newacroplural{${1:acronym}}{${2:full plural name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acronym\"\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/acronym#c\": [\n      \"footnote\",\n      \"nohyperlinks\",\n      \"noforwardlinks\",\n      \"noacroprefix\",\n      \"printonlyused\",\n      \"printonlyreused\",\n      \"withpage\",\n      \"smaller\",\n      \"dua\",\n      \"nolist\",\n      \"nolinebreak\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/acronym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/acrosort.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"icon-appr\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isPackage\"\n    },\n    {\n      \"name\": \"asEmbedTiles\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"asEmbedTiles{${1:name}}{${2:n-tiles}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"asEmbedTiles\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"asEmbedTiles[${4:ext}]{${1:name}}{${2:n-tiles}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"insertTiles\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertTiles{${1:name}}{${2:width}}{${3:n-rows}}{${4:n-cols}}\"\n      }\n    },\n    {\n      \"name\": \"StartSort\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StartSort{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"StartSort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StartSort[${4:eforms parameters}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"StopSort\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StopSort{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"StopSort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StopSort[${4:eforms parameters}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ClearSort\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClearSort{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ClearSort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ClearSort[${4:eforms parameters}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"customStartJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customStartJS{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"customFinishJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customFinishJS{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"appendStartSortJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendStartSortJS{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"appendStopSortJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendStopSortJS{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"appendClearSortJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendClearSortJS{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"asGrphWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asIconObjs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asIconPic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"asIconPic{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"asNumSideShowPics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asTileHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asTileWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asTtlGrphHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"astileKVs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"astileKVs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"iconPresets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortCustomFinishJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortCustomStartJS\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/actcodes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifltx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PushCatMakeLetterAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopLetterCatAt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/actuarialangle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"actuarialangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actuarialangle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"angl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"angln\"\n    },\n    {\n      \"name\": \"anglr\"\n    },\n    {\n      \"name\": \"anglk\"\n    },\n    {\n      \"name\": \"overanglebracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overanglebracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"group\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"group{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/actuarialangle#c\": [\n      \"thinspace\",\n      \"thickspace\",\n      \"nobracket\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/actuarialangle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/actuarialsymbol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"actuarialangle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"actsymb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"actsymb{${1:symbol}}{${2:lr}}\"\n      }\n    },\n    {\n      \"name\": \"actsymb\",\n      \"arg\": {\n        \"format\": \"[][]{}{}[]\",\n        \"snippet\": \"actsymb[${3:ll}][${4:ul}]{${1:symbol}}{${2:lr}}[${5:ur}]\"\n      }\n    },\n    {\n      \"name\": \"actsymb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}[]\",\n        \"snippet\": \"actsymb[${3:ll}][${4:ul}][${5:P}]{${1:symbol}}{${2:lr}}[${6:ur}]\"\n      }\n    },\n    {\n      \"name\": \"twoletsymb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoletsymb{${1:symbol1}}{${2:symbol2}}\"\n      }\n    },\n    {\n      \"name\": \"twoletsymb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"twoletsymb[${3:length}]{${1:symbol1}}{${2:symbol2}}\"\n      }\n    },\n    {\n      \"name\": \"twoletkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthtop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthtop{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthtop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nthtop[${3:length}]{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthtop*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthtop*{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthtop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nthtop*[${3:length}]{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthbottom{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nthbottom[${3:length}]{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthbottom*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthbottom*{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthbottom*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nthbottom*[${3:length}]{${1:number}}{${2:status}}\"\n      }\n    },\n    {\n      \"name\": \"nthtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lx{${1:age}}\"\n      }\n    },\n    {\n      \"name\": \"lx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"lx[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Lx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lx{${1:age}}\"\n      }\n    },\n    {\n      \"name\": \"Lx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Lx[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"dx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dx{${1:age}}{${2:lr}}\"\n      }\n    },\n    {\n      \"name\": \"dx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"dx[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Dx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dx{${1:age}}\"\n      }\n    },\n    {\n      \"name\": \"Dx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Dx[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"px{${1:age}}\"\n      }\n    },\n    {\n      \"name\": \"px\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"px[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"qx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qx{${1:age}}\"\n      }\n    },\n    {\n      \"name\": \"qx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"qx[${2:ll}][${3:ul}]{${1:age}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"eringx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eringx{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"eringx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"eringx[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Ax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ax{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Ax\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Ax[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Ax*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ax*{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Ax*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Ax*[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Ex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ex{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Ex\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Ex[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"ax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ax{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"ax\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"ax[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"ax*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ax*{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"ax*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"ax*[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"ax**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ax**{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"ax**\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"ax**[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"sx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sx{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"sx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sx[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"sx*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sx*{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"sx*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sx*[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"sx**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sx**{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"sx**\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sx**[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"aringx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aringx{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"aringx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"aringx[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Px{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Px\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Px[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Vx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vx{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Vx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Vx[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"Wx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wx{${1:lr}}\"\n      }\n    },\n    {\n      \"name\": \"Wx\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Wx[${2:ll}][${3:ul}]{${1:lr}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"premium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"premium{${1:benefit}}{${2:lr}}\"\n      }\n    },\n    {\n      \"name\": \"premium\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"premium[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"premium*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"premium*{${1:benefit}}{${2:benefit}}{${3:lr}}\"\n      }\n    },\n    {\n      \"name\": \"premium*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"premium*[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"reserve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reserve{${1:benefit}}{${2:benefit}}{${3:lr}}\"\n      }\n    },\n    {\n      \"name\": \"reserve\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"reserve[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"reserve*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reserve*{${1:benefit}}{${2:benefit}}{${3:lr}}\"\n      }\n    },\n    {\n      \"name\": \"reserve*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"reserve*[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"paidup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"paidup{${1:benefit}}{${2:benefit}}{${3:lr}}\"\n      }\n    },\n    {\n      \"name\": \"paidup\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"paidup[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"paidup*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"paidup*{${1:benefit}}{${2:benefit}}{${3:lr}}\"\n      }\n    },\n    {\n      \"name\": \"paidup*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"paidup*[${2:ll}][${3:ul}]{${1:benefit}}[${4:ur}]\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"term{${1:age}}{${2:duration}}\"\n      }\n    },\n    {\n      \"name\": \"termxn\"\n    },\n    {\n      \"name\": \"pureendow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pureendow{${1:age}}{${2:duration}}\"\n      }\n    },\n    {\n      \"name\": \"pureendowxn\"\n    },\n    {\n      \"name\": \"endow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"endow{${1:age}}{${2:duration}}\"\n      }\n    },\n    {\n      \"name\": \"endowxn\"\n    },\n    {\n      \"name\": \"joint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joint{${1:ages}}\"\n      }\n    },\n    {\n      \"name\": \"IA\"\n    },\n    {\n      \"name\": \"DA\"\n    },\n    {\n      \"name\": \"IA*\"\n    },\n    {\n      \"name\": \"DA*\"\n    },\n    {\n      \"name\": \"IbA\"\n    },\n    {\n      \"name\": \"DbA\"\n    },\n    {\n      \"name\": \"IbA*\"\n    },\n    {\n      \"name\": \"DbA*\"\n    },\n    {\n      \"name\": \"ImA\"\n    },\n    {\n      \"name\": \"DmA\"\n    },\n    {\n      \"name\": \"ImA*\"\n    },\n    {\n      \"name\": \"DmA*\"\n    },\n    {\n      \"name\": \"Ia\"\n    },\n    {\n      \"name\": \"Da\"\n    },\n    {\n      \"name\": \"Ia*\"\n    },\n    {\n      \"name\": \"Da*\"\n    },\n    {\n      \"name\": \"Ia**\"\n    },\n    {\n      \"name\": \"Da**\"\n    },\n    {\n      \"name\": \"Is\"\n    },\n    {\n      \"name\": \"Ds\"\n    },\n    {\n      \"name\": \"Is*\"\n    },\n    {\n      \"name\": \"Ds*\"\n    },\n    {\n      \"name\": \"Is**\"\n    },\n    {\n      \"name\": \"Ds**\"\n    },\n    {\n      \"name\": \"firsttop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firsttop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"itop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"secondtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondtop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iitop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iitop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"thirdtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdtop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iiitop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iiitop{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"firsttop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firsttop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"itop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"secondtop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondtop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iitop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iitop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"thirdtop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdtop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iiitop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iiitop*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"firstbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstbottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"ibottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"secondbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondbottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iibottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iibottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"thirdbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdbottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iiibottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iiibottom{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"firstbottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstbottom*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"ibottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibottom*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"secondbottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondbottom*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iibottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iibottom*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"thirdbottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdbottom*{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"iiibottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iiibottom*{${1:status}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/actuarialsymbol#c\": [\n      \"alignpreced\",\n      \"compactpreced\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/actuarialsymbol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/add2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/add2#c\": [\n      \"land\",\n      \"port\",\n      \"club\",\n      \"noclub\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/add2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/addfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"twoopt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addfont\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addfont{${1:encoding}}{${2:font name}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"addfont\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addfont[${4:scale}]{${1:encoding}}{${2:font name}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"addfont\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"addfont[${4:scale}][${5:cmds}]{${1:encoding}}{${2:font name}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"addshape\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addshape{${1:series}}{${2:shape}}{${3:font name}}\"\n      }\n    },\n    {\n      \"name\": \"addshape\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addshape[${4:cmds}]{${1:series}}{${2:shape}}{${3:font name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/addlines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addlines\"\n    },\n    {\n      \"name\": \"addlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlines[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"addlines*\"\n    },\n    {\n      \"name\": \"addlines*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlines*[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"addline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addline[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"addline*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addline*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addline*[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"squeezepage\"\n    },\n    {\n      \"name\": \"squeezepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squeezepage[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"removelines\"\n    },\n    {\n      \"name\": \"removelines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"removelines[${1:lines}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/addlines#c\": [\n      \"final\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/addlines#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/addrset.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"addr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addrfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrfrom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addrto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"byline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"byline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cclist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cclist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"closeline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dateset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateset{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"dept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dept{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailb{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailbfr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailbfr{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailbto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailbto{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailc{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailcfr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailcfr{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailcto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailcto{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailfrom{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailto{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"encllist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encllist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fax{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"faxfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faxfrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"faxmssg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faxmssg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"faxto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faxto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fixadr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixadr{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"fname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fname{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"fnamefr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnamefr{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"fnameto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnameto{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"greet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greetfr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greetfr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greetto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greetto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"initials\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initials{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"jtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jtitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"lname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lname{${1:last name}}\"\n      }\n    },\n    {\n      \"name\": \"lnamefr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnamefr{${1:last name}}\"\n      }\n    },\n    {\n      \"name\": \"lnameto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnameto{${1:last name}}\"\n      }\n    },\n    {\n      \"name\": \"makeaddress\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeaddress{${1:id}}{${2:stuff%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeletterhead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeletterhead{${1:id}}{${2:stuff%text}}\"\n      }\n    },\n    {\n      \"name\": \"makesignature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makesignature{${1:id}}{${2:stuff%text}}\"\n      }\n    },\n    {\n      \"name\": \"mname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mname{${1:middle name}}\"\n      }\n    },\n    {\n      \"name\": \"mnamefr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mnamefr{${1:middle name}}\"\n      }\n    },\n    {\n      \"name\": \"mnameto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mnameto{${1:middle name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"namefrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namefrom{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nameto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameto{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"organization\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"organization{${1:organization%text}}\"\n      }\n    },\n    {\n      \"name\": \"pager\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pager{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pagerfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerfrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pagerto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonea{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneafrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneafrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneato{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneb{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonebfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonebfrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonebto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonebto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonec{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonecfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonecfrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonecto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonecto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phoned\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoned{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonedfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonedfrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonedto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonedto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonefrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonefrom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneh{${1:home number}}\"\n      }\n    },\n    {\n      \"name\": \"phonehfr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonehfr{${1:home number}}\"\n      }\n    },\n    {\n      \"name\": \"phonehto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonehto{${1:home number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneo{${1:office number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneofr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneofr{${1:office number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneoto{${1:office number}}\"\n      }\n    },\n    {\n      \"name\": \"phoneto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phoneto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"plngadj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plngadj{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"position{${1:position%text}}\"\n      }\n    },\n    {\n      \"name\": \"pppsitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pppsitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ppsitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ppsitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printaddrfrom\"\n    },\n    {\n      \"name\": \"printaddrto\"\n    },\n    {\n      \"name\": \"printemailbfrom\"\n    },\n    {\n      \"name\": \"printemailbto\"\n    },\n    {\n      \"name\": \"printemailcfrom\"\n    },\n    {\n      \"name\": \"printemailcto\"\n    },\n    {\n      \"name\": \"printemailfrom\"\n    },\n    {\n      \"name\": \"printemailto\"\n    },\n    {\n      \"name\": \"printfaxfrom\"\n    },\n    {\n      \"name\": \"printfaxto\"\n    },\n    {\n      \"name\": \"printfnamefrom\"\n    },\n    {\n      \"name\": \"printfnameto\"\n    },\n    {\n      \"name\": \"printgreetfrom\"\n    },\n    {\n      \"name\": \"printgreetto\"\n    },\n    {\n      \"name\": \"printlnamefrom\"\n    },\n    {\n      \"name\": \"printlnameto\"\n    },\n    {\n      \"name\": \"printnamefrom\"\n    },\n    {\n      \"name\": \"printnameto\"\n    },\n    {\n      \"name\": \"printpagerfrom\"\n    },\n    {\n      \"name\": \"printpagerto\"\n    },\n    {\n      \"name\": \"printphoneafrom\"\n    },\n    {\n      \"name\": \"printphoneato\"\n    },\n    {\n      \"name\": \"printphonebfrom\"\n    },\n    {\n      \"name\": \"printphonebto\"\n    },\n    {\n      \"name\": \"printphonecfrom\"\n    },\n    {\n      \"name\": \"printphonecto\"\n    },\n    {\n      \"name\": \"printphonedfrom\"\n    },\n    {\n      \"name\": \"printphonedto\"\n    },\n    {\n      \"name\": \"printphonefrom\"\n    },\n    {\n      \"name\": \"printphonehfrom\"\n    },\n    {\n      \"name\": \"printphonehto\"\n    },\n    {\n      \"name\": \"printphoneofrom\"\n    },\n    {\n      \"name\": \"printphoneoto\"\n    },\n    {\n      \"name\": \"printphoneto\"\n    },\n    {\n      \"name\": \"psitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"re\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"re{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"regarding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regarding{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"release\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"release{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"role\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"role{${1:role%text}}\"\n      }\n    },\n    {\n      \"name\": \"sender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sender{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setadrfr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setadrfr{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"setadrto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setadrto{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"shorthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sigacross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigacross{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"siglist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siglist{${1:sig1,sig2,...}}\"\n      }\n    },\n    {\n      \"name\": \"signame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"socsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"socsec{${1:social security number}}\"\n      }\n    },\n    {\n      \"name\": \"SSnumto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SSnumto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"staddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staddr{${1:street address%text}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"subdept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdept{${1:subdepartment%text}}\"\n      }\n    },\n    {\n      \"name\": \"subre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zip{${1:zip code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/addtoluatexpath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtoluatexpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoluatexpath{${1:path1,path2,...%file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/addtoluatexpath#c\": [\n      \"${1:path1,path2,...}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/addtoluatexpath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adfarrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adfarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrow{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adfarrow[${2:family}]{${1:direction}}\"\n      }\n    },\n    {\n      \"name\": \"adfhalfarrowright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adfhalfarrowleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adfhalfarrowrightsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adfhalfarrowleftsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adfarrown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrown{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrowne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrowne{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrowe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrowe{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrowse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrowse{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrows{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrowsw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrowsw{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarroww\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarroww{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfarrownw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfarrownw{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/adfarrows#c\": [\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adfarrows#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adfbullets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adfbullet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfbullet{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/adfbullets#c\": [\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adfbullets#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adforn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adforn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adforn{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adfast{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"adfbullet\"\n    },\n    {\n      \"name\": \"adfclosedflourishleft\"\n    },\n    {\n      \"name\": \"adfclosedflourishright\"\n    },\n    {\n      \"name\": \"adfdiamond\"\n    },\n    {\n      \"name\": \"adfdoubleflourishleft\"\n    },\n    {\n      \"name\": \"adfdoubleflourishright\"\n    },\n    {\n      \"name\": \"adfdoublesharpflourishleft\"\n    },\n    {\n      \"name\": \"adfdoublesharpflourishright\"\n    },\n    {\n      \"name\": \"adfdownhalfleafleft\"\n    },\n    {\n      \"name\": \"adfdownhalfleafright\"\n    },\n    {\n      \"name\": \"adfdownleafleft\"\n    },\n    {\n      \"name\": \"adfdownleafright\"\n    },\n    {\n      \"name\": \"adfflatdownhalfleafleft\"\n    },\n    {\n      \"name\": \"adfflatdownhalfleafright\"\n    },\n    {\n      \"name\": \"adfflatdownoutlineleafleft\"\n    },\n    {\n      \"name\": \"adfflatdownoutlineleafright\"\n    },\n    {\n      \"name\": \"adfflatleafleft\"\n    },\n    {\n      \"name\": \"adfflatleafoutlineleft\"\n    },\n    {\n      \"name\": \"adfflatleafoutlineright\"\n    },\n    {\n      \"name\": \"adfflatleafright\"\n    },\n    {\n      \"name\": \"adfflatleafsolidleft\"\n    },\n    {\n      \"name\": \"adfflatleafsolidright\"\n    },\n    {\n      \"name\": \"adfflourishleft\"\n    },\n    {\n      \"name\": \"adfflourishleftdouble\"\n    },\n    {\n      \"name\": \"adfflourishright\"\n    },\n    {\n      \"name\": \"adfflourishrightdouble\"\n    },\n    {\n      \"name\": \"adfflowerleft\"\n    },\n    {\n      \"name\": \"adfflowerright\"\n    },\n    {\n      \"name\": \"adfgee\"\n    },\n    {\n      \"name\": \"adfhalfleafleft\"\n    },\n    {\n      \"name\": \"adfhalfleafright\"\n    },\n    {\n      \"name\": \"adfhalfleftarrow\"\n    },\n    {\n      \"name\": \"adfhalfleftarrowhead\"\n    },\n    {\n      \"name\": \"adfhalfrightarrow\"\n    },\n    {\n      \"name\": \"adfhalfrightarrowhead\"\n    },\n    {\n      \"name\": \"adfhangingflatleafleft\"\n    },\n    {\n      \"name\": \"adfhangingflatleafright \"\n    },\n    {\n      \"name\": \"adfhangingleafleft\"\n    },\n    {\n      \"name\": \"adfhangingleafright\"\n    },\n    {\n      \"name\": \"adfleafleft\"\n    },\n    {\n      \"name\": \"adfleafright\"\n    },\n    {\n      \"name\": \"adfleftarrowhead\"\n    },\n    {\n      \"name\": \"adfopenflourishleft\"\n    },\n    {\n      \"name\": \"adfopenflourishright\"\n    },\n    {\n      \"name\": \"adfoutlineleafleft\"\n    },\n    {\n      \"name\": \"adfoutlineleafright\"\n    },\n    {\n      \"name\": \"adfrightarrowhead\"\n    },\n    {\n      \"name\": \"adfS\"\n    },\n    {\n      \"name\": \"adfsharpflourishleft\"\n    },\n    {\n      \"name\": \"adfsharpflourishright\"\n    },\n    {\n      \"name\": \"adfsickleflourishleft\"\n    },\n    {\n      \"name\": \"adfsickleflourishright\"\n    },\n    {\n      \"name\": \"adfsingleflourishleft\"\n    },\n    {\n      \"name\": \"adfsingleflourishright\"\n    },\n    {\n      \"name\": \"adfsmallhangingleafleft\"\n    },\n    {\n      \"name\": \"adfsmallhangingleafright\"\n    },\n    {\n      \"name\": \"adfsmallleafleft\"\n    },\n    {\n      \"name\": \"adfsmallleafright\"\n    },\n    {\n      \"name\": \"adfsolidleafleft\"\n    },\n    {\n      \"name\": \"adfsolidleafright\"\n    },\n    {\n      \"name\": \"adfsquare\"\n    },\n    {\n      \"name\": \"adftripleflourishleft\"\n    },\n    {\n      \"name\": \"adftripleflourishright\"\n    },\n    {\n      \"name\": \"adfwavesleft\"\n    },\n    {\n      \"name\": \"adfwavesright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/adforn#c\": [\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adforn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adigraph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAdigraph{${1:name}}{${2:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"NewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewAdigraph{${1:name}}{${2:nodes}}{${3:edges}}\"\n      }\n    },\n    {\n      \"name\": \"NewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"NewAdigraph{${1:name}}{${2:nodes}}{${3:edges}}[${4:edge style}]\"\n      }\n    },\n    {\n      \"name\": \"RenewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewAdigraph{${1:name}}{${2:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewAdigraph{${1:name}}{${2:nodes}}{${3:edges}}\"\n      }\n    },\n    {\n      \"name\": \"RenewAdigraph\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"RenewAdigraph{${1:name}}{${2:nodes}}{${3:edges}}[${4:edge style}]\"\n      }\n    },\n    {\n      \"name\": \"EnableAdigraphs\"\n    },\n    {\n      \"name\": \"DisableAdigraphs\"\n    },\n    {\n      \"name\": \"AdigraphApplyKleenePlusEdgeBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphApplyKleenePlusEdgeBuilder{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphBackwardPathColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphBackwardPathWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphBuildEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AdigraphBuildEdge{${1:edge nodes}}{${2:weight}}{${3:label}}{${4:label pos}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphBuildEdgeWrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AdigraphBuildEdgeWrapper{${1:edge nodes}}{${2:weight}}{${3:label}}{${4:label pos}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphBuildNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphBuildNode{${1:node name}}{${2:list of coords}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphBuildNodeWrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphBuildNodeWrapper{${1:node name}}{${2:list of coords}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphBuildPath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AdigraphBuildPath{${1:nodes}}{${2:units}}{${3:colors}}{${4:widths}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphCalculateInclination\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphCalculateInclination{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphCalculateOrientation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphCalculateOrientation{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphCountPaths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphCountPaths{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphCurrentElaboratingEdge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphCurrentNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphCutBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphCutBuilder{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphCyan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphDefaultColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphDefaultWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphDrawEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdigraphDrawEdge{${1:nodeID1}}{${2:nodeID2}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphDrawNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphDrawNode{${1:nodeID}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphEdgeBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphEdgeBuilder{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphEdgeDrawer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphEdgeDrawer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphEdgeList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphElaboratePathColors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdigraphElaboratePathColors{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphElaboratePathWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdigraphElaboratePathWidth{${1:forward width}}{${2:backward width}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphElaboratePath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdigraphElaboratePath{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphExecuteCutBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphExecuteCutBuilder{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphFirstEdgeRenormalizer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphFirstEdgeRenormalizer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphFirstNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphForwardPathColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphForwardPathWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphGenerateNodeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphGenerateNodeName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphKleenePlusEdgeBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphKleenePlusEdgeBuilder{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphKleeneStarEdgeBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphKleeneStarEdgeBuilder{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphLastParsedNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphMemorizeEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdigraphMemorizeEdge{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphMemorizeNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphMemorizeNode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphNodeBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphNodeBuilder{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphNodeCounterSecondWrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphNodeCounterSecondWrapper{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphNodeCounterWrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AdigraphNodeCounterWrapper{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphNodeCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphNodeCounter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphNodeList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphNodeName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphNodesCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphNodesCounter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphPathBuilder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"AdigraphPathBuilder{${1:node1}}{${2:node2}}{${3:units}}{${4:forward color}}{${5:backward color}}{${6:forward width}}{${7:backward width}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessAugmentingPathsList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessAugmentingPathsList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessAugmentingPaths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessAugmentingPaths{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessCuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessCuts{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessEdges\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessEdges{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessNodes{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphProcessPaths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphProcessPaths{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphRed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphRom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphRom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphSecondEdgeRenormalizer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdigraphSecondEdgeRenormalizer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphSecondNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphSimpleSum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdigraphSimpleSum{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"AdigraphTempList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphTextualZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphTwinEdgeWeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphWeightA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphWeightB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdigraphZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adigraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"Adigraph{${1:vertices}}{${2:edges}}{${3:paths}}{${4:cuts}}{${5:current paths}}{${6:style}}\"\n      }\n    },\n    {\n      \"name\": \"sumOfOrientations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumOfOrientations{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"theAdigraphAdjacentNodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAdigraphCurrentNodeCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAdigraphCurrentPathNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAdigraphNumberOfPaths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAdigraphTotalNodeCounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/adjcalc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\",\n      \"if\": \"calc\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adjcalcset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjcalcset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjcalcset,\\\\usepackage/adjcalc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adjsetlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjsetlength{${1:length macro}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"adjaddtolength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjaddtolength{${1:length macro}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"adjsetcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjsetcounter{${1:counter}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"adjaddtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjaddtocounter{${1:counter}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"adjsetlengthdefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjsetlengthdefault{${1:length macro}}{${2:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\adjcalcset,\\\\usepackage/adjcalc#c\": [\n      \"etex\",\n      \"calc\",\n      \"pgfmath\",\n      \"overwrite\",\n      \"defaultunit=${1:unit}\"\n    ],\n    \"\\\\usepackage/adjcalc#c\": [\n      \"none\"\n    ]\n  },\n  \"args\": [\n    \"\\\\adjcalcset,\\\\usepackage/adjcalc#c\",\n    \"\\\\usepackage/adjcalc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adjmulticol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"adjmulticols\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:number}}{${2:inner margin%l}}{${3:outer margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjmulticols*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:number}}{${2:inner margin%l}}{${3:outer margin%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/adjmulticol#c\": [\n      \"errorshow\",\n      \"infoshow\",\n      \"balancingshow\",\n      \"markshow\",\n      \"debugshow\",\n      \"grid\",\n      \"colaction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adjmulticol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adjustbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgf\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"PGF\"\n    },\n    {\n      \"name\": \"calc\",\n      \"if\": \"calc\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adjustbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjustbox{${1:options%keyvals}}{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adjustimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjustimage{${1:options%keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adjincludegraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adjincludegraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustboxenv{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newadjustboxenv{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustboxenv*{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newadjustboxenv*{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustboxenv{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewadjustboxenv{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustboxenv*{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewadjustboxenv*{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"provideadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustboxenv{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideadjustboxenv{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"provideadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustboxenv*{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideadjustboxenv*{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"declareadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareadjustboxenv{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declareadjustboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareadjustboxenv{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"declareadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareadjustboxenv*{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declareadjustboxenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareadjustboxenv*{${1:envname}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustboxcmd{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newadjustboxcmd{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustboxcmd{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewadjustboxcmd{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"provideadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustboxcmd{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideadjustboxcmd{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"declareadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareadjustboxcmd{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declareadjustboxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareadjustboxcmd{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustimage{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newadjustimage{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustimage{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewadjustimage{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"provideadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustimage{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideadjustimage{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"declareadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareadjustimage{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declareadjustimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareadjustimage{${1:cmd}}[${3:num}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewAdjustImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewAdjustImage{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewAdjustImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewAdjustImage{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideAdjustImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideAdjustImage{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareAdjustImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAdjustImage{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"adjustboxset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjustboxset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"adjustboxset*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjustboxset*{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"bgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgimagebox{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bgimagebox[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgimagebox*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bgimagebox*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgimagebox{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fgimagebox[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgimagebox*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fgimagebox*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backgroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"backgroundbox[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backgroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundbox*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"backgroundbox*[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"foregroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foregroundbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foregroundbox[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"foregroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foregroundbox*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foregroundbox*[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Width\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Height\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Depth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Totalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallestside\"\n    },\n    {\n      \"name\": \"largestside\"\n    },\n    {\n      \"name\": \"Smallestside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Largestside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minsizebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"minsizebox{${1:width}}{${2:height}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"minsizebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"minsizebox*{${1:width}}{${2:totalheight%l}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"maxsizebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"maxsizebox{${1:width}}{${2:height}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"maxsizebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"maxsizebox*{${1:width}}{${2:totalheight%l}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rndcornersbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndcornersbox{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rndframebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndframebox{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rndfbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndfbox{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"adjboxvtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjboxvbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjboxvcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"centerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"centerbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"innersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"innersidebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"innersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"innersidebox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"outersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outersidebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"outersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"outersidebox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"centerpagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerpagebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"centerpagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"centerpagebox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagecenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagecenterbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagecenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagecenterbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageleftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageleftalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageleftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pageleftalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagerightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerightalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagerightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagerightalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageinnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageinnerbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageinnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pageinnerbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageouterbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pageouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pageouterbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareacenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textareacenterbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareacenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textareacenterbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textarealeftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarealeftalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textarealeftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarealeftalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textarearightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarearightalignbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textarearightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarearightalignbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareainnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textareainnerbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareainnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textareainnerbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareaouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textareaouterbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"textareaouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textareaouterbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lapbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lapbox{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lapbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lapbox[${3:width}]{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgcolorbox{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bgcolorbox[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgcolorbox*{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"pwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stackbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stackbox[${2:halign}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"stackbox[${2:halign}][${3:valign}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"adjnofloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endadjnofloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantombox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phantombox{${1:width}}{${2:height}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"newadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustboxkey{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newadjustboxkey{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newadjustboxkey*{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newadjustboxkey*{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"renewadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustboxkey{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"renewadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewadjustboxkey{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"renewadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewadjustboxkey*{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"renewadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewadjustboxkey*{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"provideadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustboxkey{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"provideadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideadjustboxkey{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"provideadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideadjustboxkey*{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"provideadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideadjustboxkey*{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defadjustboxkey{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defadjustboxkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defadjustboxkey{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defadjustboxkey*{${1:keyname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defadjustboxkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defadjustboxkey*{${1:keyname}}[${3:default}]{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"adjustbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fgimagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fgimagebox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backgroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backgroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"foregroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"foregroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"centerbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"leftalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"rightalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"innersidebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"outersidebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outersidebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"centerpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerpagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"pagecenterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagecenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"pageleftalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageleftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"pagerightalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"pageinnerbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageinnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"pageouterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"textareacenterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textareacenterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"textarealeftalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textarealeftalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"textarearightalignbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textarearightalignbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"textareainnerbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textareainnerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"textareaouterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textareaouterbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolorbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:color mcro}}\"\n      }\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:halign}]\"\n      }\n    },\n    {\n      \"name\": \"stackbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:halign}][${2:valign}]\"\n      }\n    },\n    {\n      \"name\": \"adjnofloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:float type}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/adjustbox#c\": [\n      \"export\",\n      \"Export\",\n      \"pgf\",\n      \"PGF\",\n      \"minimal\",\n      \"etex\",\n      \"calc\",\n      \"pgfmath\",\n      \"defaultunit=${1:unit}\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"xetex\",\n      \"dvipdfm\",\n      \"dvipdfmx\"\n    ],\n    \"\\\\adjustbox,\\\\begin{adjustbox},\\\\adjustimage,\\\\adjincludegraphics,\\\\newadjustboxenv,\\\\newadjustboxenv*,\\\\renewadjustboxenv,\\\\renewadjustboxenv*,\\\\provideadjustboxenv,\\\\provideadjustboxenv*,\\\\declareadjustboxenv,\\\\declareadjustboxenv*,\\\\newadjustboxcmd,\\\\renewadjustboxcmd,\\\\provideadjustboxcmd,\\\\declareadjustboxcmd,\\\\newadjustimage,\\\\renewadjustimage,\\\\provideadjustimage,\\\\declareadjustimage,\\\\NewAdjustImage,\\\\RenewAdjustImage,\\\\ProvideAdjustImage,\\\\DeclareAdjustImage,\\\\bgimagebox,\\\\bgimagebox*,\\\\begin{bgimagebox},\\\\begin{bgimagebox*},\\\\fgimagebox,\\\\fgimagebox*,\\\\begin{fgimagebox},\\\\begin{fgimagebox*},\\\\backgroundbox,\\\\backgroundbox*,\\\\begin{backgroundbox},\\\\begin{backgroundbox*},\\\\foregroundbox,\\\\foregroundbox*,\\\\begin{foregroundbox},\\\\begin{foregroundbox*}\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\",\n      \"intent\",\n      \"maskarray\",\n      \"ocobjnum\",\n      \"ocobjref\",\n      \"resetcolor\",\n      \"resolution\",\n      \"xmpfile\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\"\n    ],\n    \"\\\\includegraphics\": [\n      \"intent\",\n      \"maskarray\",\n      \"ocobjnum\",\n      \"ocobjref\",\n      \"resetcolor\",\n      \"resolution\",\n      \"xmpfile\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"color=\",\n      \"color*=${1:color cmd}\",\n      \"sep=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\",\n      \"intent\",\n      \"maskarray\",\n      \"ocobjnum\",\n      \"ocobjref\",\n      \"resetcolor\",\n      \"resolution\",\n      \"xmpfile\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"color=\",\n      \"color*=${1:color cmd}\",\n      \"sep=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adjustbox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adobecaslon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adobecaslonfamily\"\n    },\n    {\n      \"name\": \"textadobecaslon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textadobecaslon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sbseries\"\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adobecaslonexpert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonalternate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonlongs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecasloneighteenth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonswashit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonswashcaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adobecaslonornaments\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/adobecaslon#c\": [\n      \"expert\",\n      \"osf\",\n      \"swashit\",\n      \"alternate\",\n      \"longs\",\n      \"c18th\",\n      \"swashlongs\",\n      \"extraligs\",\n      \"rmdefault\",\n      \"normdefault\",\n      \"scaled=${1:factor}\",\n      \"bold\",\n      \"semibold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/adobecaslon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/adobeornaments.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"orn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"orn{${1:font%keyvals}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\orn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\orn#c\": [\n      \"minion\",\n      \"arno\",\n      \"warnock\",\n      \"brioso\",\n      \"caslon\",\n      \"jenson\",\n      \"agp\",\n      \"kepler\",\n      \"voluta\",\n      \"gpp\",\n      \"cronos\",\n      \"bickham\",\n      \"chaparral\",\n      \"silentium\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/adrlist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ForEachAddress\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachAddress{${1:address-file%file}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"Title\"\n    },\n    {\n      \"name\": \"Opening\"\n    },\n    {\n      \"name\": \"Sex\"\n    },\n    {\n      \"name\": \"Firstname\"\n    },\n    {\n      \"name\": \"Name\"\n    },\n    {\n      \"name\": \"Address\"\n    },\n    {\n      \"name\": \"Telephone\"\n    },\n    {\n      \"name\": \"Telefax\"\n    },\n    {\n      \"name\": \"EMail\"\n    },\n    {\n      \"name\": \"PrivateNumber\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/adtrees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"epic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ATm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATm{${1:morpheme}}{${2:chars%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ATl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATl{${1:adposition}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATr{${1:adposition}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATb{${1:adposition}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATs{${1:morpheme}}{${2:chars%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ATle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATle{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATre\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATre{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATbe{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATrc{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATlc{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATbc{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATxl{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATxr{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlmu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATlmu{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrmu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATrmu{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbmu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATbmu{${1:chars%formula}}{${2:left adtree}}{${3:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATvcentre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATvcentre{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"AThcentre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AThcentre{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATcentre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATcentre{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATlL{${1:length}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATrL{${1:length}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATbL{${1:length}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATlA{${1:angle}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATrA{${1:angle}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATbA{${1:angle}}{${2:adposition}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"ATlLA{${1:length}}{${2:angle}}{${3:adposition}}{${4:chars%formula}}{${5:left adtree}}{${6:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"ATrLA{${1:length}}{${2:angle}}{${3:adposition}}{${4:chars%formula}}{${5:left adtree}}{${6:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"ATbLA{${1:length}}{${2:angle}}{${3:adposition}}{${4:chars%formula}}{${5:left adtree}}{${6:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxlL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATxlL{${1:length}}{${2:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxrL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATxrL{${1:length}}{${2:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxlA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATxlA{${1:angle}}{${2:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxrA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATxrA{${1:angle}}{${2:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxlLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATxlLA{${1:length}}{${2:angle}}{${3:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATxrLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATxrLA{${1:length}}{${2:angle}}{${3:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATleL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATleL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlcL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATlcL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlmuL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATlmuL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATleA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATleA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlcA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATlcA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlmuA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATlmuA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATleLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATleLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlcLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATlcLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATlmuLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATlmuLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATreL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATreL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrcL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATrcL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrmuL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATrmuL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATreA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATreA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrcA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATrcA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrmuA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATrmuA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATreLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATreLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrcLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATrcLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATrmuLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATrmuLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbeL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbeL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbcL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbcL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbmuL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbmuL{${1:length}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbeA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbeA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbcA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbcA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbmuA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ATbmuA{${1:angle}}{${2:chars%formula}}{${3:left adtree}}{${4:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbeLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATbeLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbcLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATbcLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATbmuLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ATbmuLA{${1:length}}{${2:angle}}{${3:chars%formula}}{${4:left adtree}}{${5:right adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATnormalangle\"\n    },\n    {\n      \"name\": \"ATwideangle\"\n    },\n    {\n      \"name\": \"ATextrawideangle\"\n    },\n    {\n      \"name\": \"ATpreadpositionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATfirstinteradpositionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATsecondinteradpositionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpostadpositionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATfirstattrskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATinterattrskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpremorphemeskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATintermorphemeskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpostmorphemeskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATMorphemeBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATMorphemeBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATGrammarCharacterBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATGrammarCharacterBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATAttributeBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATAttributeBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATSummarySymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATleftbranch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATleftbranch{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATrightbranch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATrightbranch{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATcircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpathinterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpathunitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpicskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpathlinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpathlabelhspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATpathlabelvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATnGCBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATnGCBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATlGCBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATlGCBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATpathpichook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATtabskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATtabindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATTabular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATtabularadpositionblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATtabularadpositionblock{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ATtabularmorphemeblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATtabularmorphemeblock{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATtabularsummaryblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATtabularsummaryblock{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATtabularfirstattribute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATtabularnextattribute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATtabularsubtrees\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATtabularsubtrees{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATlinearise{${1:adtree}}\"\n      }\n    },\n    {\n      \"name\": \"ATLinear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATNormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ATlinearadpositionblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ATlinearadpositionblock{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearfirstattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATlinearfirstattribute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearnextattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ATlinearnextattribute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearsubtrees\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATlinearsubtrees{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearmorphemeblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATlinearmorphemeblock{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ATlinearsummaryblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ATlinearsummaryblock{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pathlikeadtree\"\n    },\n    {\n      \"name\": \"ATtabulardisplay\"\n    },\n    {\n      \"name\": \"ATtabular\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/advdate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AdvanceDate\"\n    },\n    {\n      \"name\": \"AdvanceDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdvanceDate[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"DayAfter\"\n    },\n    {\n      \"name\": \"DayAfter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DayAfter[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SaveDate\"\n    },\n    {\n      \"name\": \"SaveDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SaveDate[${1:cmd}]\"\n      }\n    },\n    {\n      \"name\": \"SetDate\"\n    },\n    {\n      \"name\": \"SetDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetDate[${1:dd/mm/yyyy}]\"\n      }\n    },\n    {\n      \"name\": \"ThisDay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisDay{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ThisMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisMonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ThisYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisYear{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AdvMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdvMonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AdvYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdvYear{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"FixMonth\"\n    },\n    {\n      \"name\": \"FixDate\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/advice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"collargs\"\n    },\n    {\n      \"name\": \"xparse\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AdviceSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdviceSetup{${1:namespace}}{${2:command or env}}{${3:setup code}}\"\n      }\n    },\n    {\n      \"name\": \"AdviceTracingOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceTracingOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceNamespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceCsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceReplaced\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceOriginal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdviceGetOriginal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdviceGetOriginal{${1:namespace}}{${2:control sequence}}\"\n      }\n    },\n    {\n      \"name\": \"AdviceCsnameGetOriginal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AdviceCsnameGetOriginal{${1:namespace}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"AdviceCollectTikZArguments\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ae.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ae#c\": [\n      \"slides\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ae#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb-comment.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aeb-minitoc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TOPLevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TOPLevel{${1:level%keyvals}}\",\n        \"keys\": [\n          \"\\\\TOPLevel#c,\\\\BTMLevel#c,\\\\TOCLevels#c,\\\\declaretocfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BTMLevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BTMLevel{${1:level%keyvals}}\",\n        \"keys\": [\n          \"\\\\TOPLevel#c,\\\\BTMLevel#c,\\\\TOCLevels#c,\\\\declaretocfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TOCLevels\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TOCLevels{${1:top level%keyvals}}{${2:btm level}}\",\n        \"keys\": [\n          \"\\\\TOPLevel#c,\\\\BTMLevel#c,\\\\TOCLevels#c,\\\\declaretocfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertminitoc\"\n    },\n    {\n      \"name\": \"insertminitoc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertminitoc[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"mtoclabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtoclabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"declaretocfmt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declaretocfmt{${1:level%keyvals}}{${2:various}}\",\n        \"keys\": [\n          \"\\\\TOPLevel#c,\\\\BTMLevel#c,\\\\TOCLevels#c,\\\\declaretocfmt#c\",\n          \"\\\\declaretocfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mtocgobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtocgobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"miniorfulltoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"miniorfulltoc{${1:fmt}}{${2:toc-sec-heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"FmtTOCEntry\"\n    },\n    {\n      \"name\": \"NoFmtTOCEntry\"\n    },\n    {\n      \"name\": \"mtocCL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mtocCL{${1:contentsline%text}}{${2:entry-cnt}}\"\n      }\n    },\n    {\n      \"name\": \"mtocref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtocref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifMiniTocListings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MiniTocListingsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MiniTocListingstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertminitocNOT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertminitocNOT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"numBoxWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numBoxWidth{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"minitocfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:command}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/aeb-minitoc#c\": [\n      \"nominitocs\",\n      \"!nominitocs\"\n    ],\n    \"\\\\TOPLevel#c,\\\\BTMLevel#c,\\\\TOCLevels#c,\\\\declaretocfmt#c\": [\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"paragraph\",\n      \"subparagraph\"\n    ],\n    \"\\\\declaretocfmt#c\": [\n      \"chapter*\",\n      \"section*\",\n      \"subsection*\",\n      \"subsubsection*\",\n      \"paragraph*\",\n      \"subparagraph*\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb-minitoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb_dad.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"annot_pro\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"refcount\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"initDDGame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initDDGame{${1:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ddDimens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDimens{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ddDimens\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddGameIcon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddGameIcon{${1:icon name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"ddTargetOfIcon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddTargetOfIcon{${1:icon name%keyvals}}{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\ddTargetOfIcon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddTargetCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddTargetCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ddTargetFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddTargetFmt{${1:format cmds}}\"\n      }\n    },\n    {\n      \"name\": \"ddReset\"\n    },\n    {\n      \"name\": \"ddReset\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ddReset[${1:title%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ddRightMsg\"\n    },\n    {\n      \"name\": \"ddWrongMsg\"\n    },\n    {\n      \"name\": \"ddDragOnlyOne\"\n    },\n    {\n      \"name\": \"ddExternalMsg\"\n    },\n    {\n      \"name\": \"ddBadAppMsg\"\n    },\n    {\n      \"name\": \"ddBtnAppr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddGameIconArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddTrueName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaebdadcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisDDNAME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisDDName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisDDName{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ddDimens\": [\n      \"iconwidth=\",\n      \"iconheight=\",\n      \"targetwidth=\",\n      \"targetheight=\"\n    ],\n    \"\\\\ddTargetOfIcon#c\": [\n      \"%ddgameicon\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aeb_envelope.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"aeb_pro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mailTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailTo{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mailTo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assembleEnvelope\"\n    },\n    {\n      \"name\": \"aebenvDimensions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputEnvExecJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setEnvDimensions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setEnvDimensions{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"setAddressEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAddressEnv{${1:\\\\put commands}}\"\n      }\n    },\n    {\n      \"name\": \"toggleAttachmentsPanel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toggleAttachmentsPanel{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mailtoName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoMessageEnvelope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoBCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoEmail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoMessageBody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoSubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailtoUI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayAddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayAddr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressEnvAdobei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressEnvAdobeii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressEnvAebi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressEnvAebii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aebEnvPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailitNow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pathtoEnv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aeb_envelope#c\": [\n      \"donotmail\",\n      \"path2folder=${1:file path}\",\n      \"envelope=${2|aeb1,aeb2,adobe1,adobe2,${1:pdf file}|}\"\n    ],\n    \"\\\\mailTo\": [\n      \"UI\",\n      \"ToName={${1:text}}\",\n      \"From={${1:text}}\",\n      \"To=${1:email1;email2;...}\",\n      \"CC=${1:email1;email2;...}\",\n      \"BCC=${1:email1;email2;...}\",\n      \"Subject={${1:text}\",\n      \"MessageEnvelope={${1:text}\",\n      \"MessageBody={${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb_envelope#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb_mlink.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"soul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ui\",\n      \"if\": \"useui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ui{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ui\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mlhypertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlhypertext{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhypertext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mlhypertext[${2:modifications}]{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlsetLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlsetLink{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlsetLink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mlsetLink[${2:modifications}]{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhyperlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlhyperlink{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhyperlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mlhyperlink[${3:modifications}]{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhyperref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlhyperref{${1:label%ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhyperref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mlhyperref[${3:modifications}]{${1:label%ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mlnameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlnameref{${1:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"mlnameref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mlnameref[${2:modifications}]{${1:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"mlNameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlNameref{${1:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"mlNameref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mlNameref[${2:modifications}]{${1:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"mlhref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlhref{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mlhref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mlhref[${3:modifications}]{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mlurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"mlurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mlurl[${2:modifications}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"mlfixOn\"\n    },\n    {\n      \"name\": \"mlfixOff\"\n    },\n    {\n      \"name\": \"mlfix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlfix{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"mlcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"OldStyleBoxesOn\"\n    },\n    {\n      \"name\": \"OldStyleBoxesOff\"\n    },\n    {\n      \"name\": \"mlMarksOn\"\n    },\n    {\n      \"name\": \"mlMarksOff\"\n    },\n    {\n      \"name\": \"turnSyllbCntOn\"\n    },\n    {\n      \"name\": \"turnSyllbCntOff\"\n    },\n    {\n      \"name\": \"aebnameref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aebnameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"atPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atPage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"CMT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CMT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentBorderColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FixupProc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isWindow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mldb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mldb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mldblevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mldbModeOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mldbModeOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlDict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mllnkcontainer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mllnkcontainer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mlMaxNSylls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MrkLnkLtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pboxRect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgmonitoring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removelastspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revCrackAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setQuadBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallRectTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syllableCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theView\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aeb_mlink#c\": [\n      \"dvipsone\",\n      \"dvips\",\n      \"dblevel=${1|0,1,2|}\",\n      \"urlOpts={${1:url package options}}\",\n      \"useui\",\n      \"setcorder\",\n      \"nodljs\",\n      \"debug\",\n      \"execJS\",\n      \"nopro\",\n      \"reqjs\",\n      \"!reqjs\",\n      \"usealtadobe\"\n    ],\n    \"\\\\ui\": [\n      \"border=${1|visible,invisible|}\",\n      \"linewidth=${1|thin,medium,thick|}\",\n      \"highlight=${1|none,invert,outline,inset,push|}\",\n      \"bordercolor={${1:R G B}}\",\n      \"linestyle=${1|solid,dashed,underlined,beveled,inset|}\",\n      \"dasharray=${1:number}\",\n      \"linktxtcolor=\",\n      \"annotflags=${1|hidden,print,-print,noview,lock|}\",\n      \"fieldflags=${1|readonly,required,noexport,multiline,password,notoggleoff,radio,pushbutton,combo,edit,sort,fileselect,multiselect,nospellcheck,noscrolling,comb,radiosinunison,commitonchange,richtext|}\",\n      \"maxlength=${1:number}\",\n      \"tooltip={${1:text}}\",\n      \"default=${1:text}\",\n      \"value=${1:text}\",\n      \"rotate=${1|0,90,180,270|}\",\n      \"bgcolor={${1:R G B}}\",\n      \"uptxt={${1:text}}\",\n      \"downtxt={${1:text}}\",\n      \"rollovertxt={${1:text}}\",\n      \"normappr=${1:string}\",\n      \"rollappr=${1:string}\",\n      \"downappr=${1:string}\",\n      \"importicons=${1|yes,no|}\",\n      \"layout=${1|labelonly,icononly,icontop,iconbottom,iconleft,iconright,labelover|}\",\n      \"scalewhen=${1|always,never,iconbig,iconsmall|}\",\n      \"scale=${1|proportional,nonproportional|}\",\n      \"position={${1:x y}}\",\n      \"fitbounds\",\n      \"appr={${1:specs}}\",\n      \"align=${1|left,centered,right|}\",\n      \"textfont=${1:font name}\",\n      \"textsize=${1:number}\",\n      \"textcolor=${1:number}\",\n      \"autocenter=${1|yes,no|}\",\n      \"inline=${1|yes,no|}\",\n      \"presets=${1:\\\\cmd}\",\n      \"symbolchoice=${1|check,circle,cross,diamond,square,star|}\",\n      \"rectW=\",\n      \"rectH=\",\n      \"width=\",\n      \"height=\",\n      \"scalefactor=${1:factor}\",\n      \"goto={${1:KV-pairs}}\",\n      \"js={${1:script}}\",\n      \"mouseup={${1:script}}\",\n      \"mousedown={${1:script}}\",\n      \"onenter={${1:script}}\",\n      \"onexit={${1:script}}\",\n      \"onfocus={${1:script}}\",\n      \"onblur={${1:script}}\",\n      \"format={${1:script}}\",\n      \"keystroke={${1:script}}\",\n      \"validate={${1:script}}\",\n      \"calculate={${1:script}}\",\n      \"pageopen={${1:script}}\",\n      \"pageclose={${1:script}}\",\n      \"pagevisible={${1:script}}\",\n      \"pageinvisible={${1:script}}\",\n      \"lock={${1:KV-pairs}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb_mlink#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb_mobile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scalefiguresOn\"\n    },\n    {\n      \"name\": \"scalefiguresOff\"\n    },\n    {\n      \"name\": \"mobPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobPrint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mobPrintTip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobToggleCols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobToggleCols{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mobToggleColsTip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobFormPresets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobFormPresets{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ifsmartphone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartphonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartphonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"generateEvenPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobPrintIt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobPrintIt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mobPrintIt[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"mobTwoCols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobTwoCols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mobTwoCols[${1:opt}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aeb_mobile#c\": [\n      \"smartphone\",\n      \"nomaketitle\",\n      \"useforms\",\n      \"scalefigures\",\n      \"!scalefigures\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb_mobile#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb_pro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"insdljs\"\n    },\n    {\n      \"name\": \"forms16be\"\n    },\n    {\n      \"name\": \"aeb-comment\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"exerquiz\"\n    },\n    {\n      \"name\": \"dljslib\",\n      \"if\": \"dljslib\"\n    },\n    {\n      \"name\": \"eq2db\",\n      \"if\": \"eq2db\"\n    },\n    {\n      \"name\": \"aebxmp\",\n      \"if\": \"aebxmp\"\n    },\n    {\n      \"name\": \"graphicxsp\",\n      \"if\": \"graphicxsp\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autolabelNum\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autolabelNum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"autolabelNum\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autolabelNum[${2:label}]{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"autolabelNum*\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autolabelNum*{${1:num}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"autolabelNum*\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"autolabelNum*[${3:label}]{${1:num}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"labelName\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelName{${1:label%specialDef}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"ahyperref\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ahyperref{${1:target-label}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ahyperref\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ahyperref[${3:options%keyvals}]{${1:target-label}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\ahyperref,\\\\ahyperlink,\\\\ahyperextract\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ahyperlink\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ahyperlink{${1:target-label}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ahyperlink\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ahyperlink[${3:options%keyvals}]{${1:target-label}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\ahyperref,\\\\ahyperlink,\\\\ahyperextract\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ahyperextract\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ahyperextract{${1:target-label}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ahyperextract\",\n      \"if\": \"linktoattachments\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ahyperextract[${3:options%keyvals}]{${1:target-label}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\ahyperref,\\\\ahyperlink,\\\\ahyperextract\",\n          \"\\\\ahyperextract\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"btnAnime\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"btnAnime{${1:keyvals}}{${2:width}}{${3:height}}\",\n        \"keys\": [\n          \"\\\\btnAnime,\\\\animeSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"placeAnimeCtrlBtnFaces\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeAnimeCtrlBtnFaces{${1:appr-icons.pdf}}{${2:list-of-animes}}\"\n      }\n    },\n    {\n      \"name\": \"placeAnimeCtrlBtnFaces\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"placeAnimeCtrlBtnFaces[${3:path}]{${1:appr-icons.pdf}}{${2:list-of-animes}}\"\n      }\n    },\n    {\n      \"name\": \"btnanimebtnsep\",\n      \"if\": \"btnanime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnanimerowsep\",\n      \"if\": \"btnanime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimePresets\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btnAnimePresets{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"btnAnimeCtrlPresets\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btnAnimeCtrlPresets{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"animeSetup\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"animeSetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{ocgAnime},\\\\animeSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertCtrlButtons\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"insertCtrlButtons\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertCtrlButtons[${1:position}]\"\n      }\n    },\n    {\n      \"name\": \"ctrlButtonsWrapper\",\n      \"if\": \"btnanime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrlButtonsWrapper{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"btnAnimeCtrlW\",\n      \"if\": \"btnanime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimeCtrlH\",\n      \"if\": \"btnanime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimeGoToFirst\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeStepBack\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePlayBack\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePause\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePlayForward\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeStepForward\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeGoToLast\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePlus\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeMinus\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeFirstAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeSBAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePBAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePauseAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePFAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeSFAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeLastAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimePlusAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"btnAnimeMinusAction\",\n      \"if\": \"btnanime\"\n    },\n    {\n      \"name\": \"widthFirstRow\",\n      \"if\": \"btnanime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspaceBtwnPMBtns\",\n      \"if\": \"btnanime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspaceBtwnPMBtns{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"xBld\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xBld{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"xBld\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xBld[${2:options%keyvals}]{${1:layer-name}}\",\n        \"keys\": [\n          \"\\\\xBld,\\\\animeBld\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eBld\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"DeclareAnime\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAnime{${1:basename}}{${2:speed}}{${3:nframes}}\"\n      }\n    },\n    {\n      \"name\": \"animeBld\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"animeBld\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"animeBld[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xBld,\\\\animeBld\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"backAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"backAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clearAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"clearAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"forwardAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forwardAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"forwardAnimeBtn\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forwardAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"defineRC\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineRC{${1:layer-name}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertRC\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertRC{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"definePR\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definePR{${1:layer-name}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertPR\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertPR{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"nFrames\",\n      \"if\": \"uselayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"animBaseName\",\n      \"if\": \"uselayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"animSpeed\",\n      \"if\": \"uselayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addJStexHelpEnter\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addJStexHelpEnter{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"addJStexHelpExit\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addJStexHelpExit{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"texHelp\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texHelp{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"texHelp*\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texHelp*{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetaddJStexHelp\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"proofRollovers\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"turnProofingOn\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"turnProofingOff\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"placeAnimeCtrlBtnFaces\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeAnimeCtrlBtnFaces{${1:appr-icons.pdf}}{${2:list-of-animes}}\"\n      }\n    },\n    {\n      \"name\": \"placeAnimeCtrlBtnFaces\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"placeAnimeCtrlBtnFaces[${3:path}]{${1:appr-icons.pdf}}{${2:list-of-animes}}\"\n      }\n    },\n    {\n      \"name\": \"btnanimebtnsep\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnanimerowsep\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimePresets\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btnAnimePresets{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"btnAnimeCtrlPresets\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btnAnimeCtrlPresets{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"animeSetup\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"animeSetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"insertCtrlButtons\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"insertCtrlButtons\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertCtrlButtons[${1:position}]\"\n      }\n    },\n    {\n      \"name\": \"ctrlButtonsWrapper\",\n      \"if\": \"ocganime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrlButtonsWrapper{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"btnAnimeCtrlW\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimeCtrlH\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btnAnimeGoToFirst\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeStepBack\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePlayBack\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePause\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePlayForward\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeStepForward\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeGoToLast\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePlus\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeMinus\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeFirstAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeSBAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePBAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePauseAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePFAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeSFAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeLastAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimePlusAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"btnAnimeMinusAction\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"widthFirstRow\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspaceBtwnPMBtns\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspaceBtwnPMBtns{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"xBld\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xBld{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"xBld\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xBld[${2:options%keyvals}]{${1:layer-name}}\",\n        \"keys\": [\n          \"\\\\xBld,\\\\animeBld\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eBld\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"DeclareAnime\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAnime{${1:basename}}{${2:speed}}{${3:nframes}}\"\n      }\n    },\n    {\n      \"name\": \"animeBld\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"animeBld\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"animeBld[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"backAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"backAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"backAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clearAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"clearAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"forwardAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forwardAnimeBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"forwardAnimeBtn\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forwardAnimeBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"defineRC\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineRC{${1:layer-name}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertRC\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertRC{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"definePR\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definePR{${1:layer-name}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertPR\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertPR{${1:layer-name}}\"\n      }\n    },\n    {\n      \"name\": \"nFrames\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"animBaseName\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"animSpeed\",\n      \"if\": \"ocganime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addJStexHelpEnter\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addJStexHelpEnter{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"addJStexHelpExit\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addJStexHelpExit{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"texHelp\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texHelp{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"texHelp*\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texHelp*{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetaddJStexHelp\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"proofRollovers\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"turnProofingOn\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"turnProofingOff\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"DeclareInitView\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareInitView{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareInitView\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"additionalOpenAction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"additionalOpenAction{${1:action}}\"\n      }\n    },\n    {\n      \"name\": \"requiredVersionMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"requiredVersionMsg{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"alternateDocumentURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alternateDocumentURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"requiredVersionMsgRedirect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"requiredVersionMsgRedirect{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"afterRequirementPassedJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterRequirementPassedJS{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"requiresVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"requiresVersion{${1:version-number}}\"\n      }\n    },\n    {\n      \"name\": \"requiresVersion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"requiresVersion[${2:warnonly}]{${1:version-number}}\"\n      }\n    },\n    {\n      \"name\": \"atPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atPage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"canceleveryPageOpen\"\n    },\n    {\n      \"name\": \"canceleveryPageClose\"\n    },\n    {\n      \"name\": \"setDefaultFS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDefaultFS{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setPageTransition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPageTransition{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setPageTransition,\\\\setPageTransitionAt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setPageTransitionAt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setPageTransitionAt{${1:page-ranges}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setPageTransition,\\\\setPageTransitionAt\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoOptAttachments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoOptAttachments{${1:list-of-files%file}}\"\n      }\n    },\n    {\n      \"name\": \"prjinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prjinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"prjinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prjinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"prjInputUser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prjInputUser{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"prjIncludeUser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prjIncludeUser{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"sigInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigInfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"signatureSign\"\n    },\n    {\n      \"name\": \"certifyInvisibleSign\"\n    },\n    {\n      \"name\": \"signatureSetSeedValue\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"signatureSetSeedValue(${1:oSeedValue})\"\n      }\n    },\n    {\n      \"name\": \"declareImageAndPlacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareImageAndPlacement{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\declareImageAndPlacement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertPreDocAssembly\"\n    },\n    {\n      \"name\": \"placeImage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeImage{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"placeImage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"placeImage[${4:eforms params}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"embedMultiPageImages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedMultiPageImages{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\embedMultiPageImages\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makePDFPackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makePDFPackage{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\makePDFPackage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chngDocObjectTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chngDocObjectTo{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"docSaveAs\"\n    },\n    {\n      \"name\": \"ifoptattachments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoptattachmentsTaken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfHelp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfHelp{${1:fieldname}}{${2:message%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfHelp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfHelp*{${1:message%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfPrintHelp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfPrintHelp{${1:fieldname}}{${2:message%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfPrintHelp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfPrintHelp*{${1:message%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"texHelp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texHelp{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"texPrintHelp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texPrintHelp{${1:layer-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rollormargstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rollormargstring{${1:roll-string}}{${2:margin-string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfPHProof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfPHProof{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"texPHProof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texPHProof{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDocInfo{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareDocInfo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePageLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclarePageLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"universityLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universityLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"authorLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"topTitlePageProportion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topTitlePageProportion{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"DesignTitlePageTrailer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DesignTitlePageTrailer{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DesignTitlePageTrailer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectTocDings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectTocDings{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectTocDings\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectColors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noSectionNumbers\"\n    },\n    {\n      \"name\": \"tocLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sectionLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsectionLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubsectionLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shadowhoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowhoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"shadowvoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowvoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"customSecHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsecHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsubsecHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"preparedLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparedLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prepared\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prepared{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"talkdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"webtalkdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"talkdateLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdateLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"talksite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talksite{${1:site}}\"\n      }\n    },\n    {\n      \"name\": \"customUniversity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customUniversity{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customAuthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customAuthor{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customToc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customToc{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"halignuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubDefaultDing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubDefaultDing{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"sectionTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionUniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionToc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifShadow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useSectionNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dDingToc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingToc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingToc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dDingTocColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingTocColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingTocColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingTocColor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"attachmentNames\",\n      \"if\": \"linktoattachments\"\n    },\n    {\n      \"name\": \"rollover\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"printRollover\",\n      \"if\": \"uselayers\"\n    },\n    {\n      \"name\": \"ocgAnime\",\n      \"if\": \"ocganime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{ocgAnime},\\\\animeSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rollover\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"printRollover\",\n      \"if\": \"ocganime\"\n    },\n    {\n      \"name\": \"willClose\"\n    },\n    {\n      \"name\": \"willSave\"\n    },\n    {\n      \"name\": \"didSave\"\n    },\n    {\n      \"name\": \"willPrint\"\n    },\n    {\n      \"name\": \"didPrint\"\n    },\n    {\n      \"name\": \"addJSToPageOpen\"\n    },\n    {\n      \"name\": \"addJSToPageClose\"\n    },\n    {\n      \"name\": \"addJSToPageOpenAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:page-ranges}}\"\n      }\n    },\n    {\n      \"name\": \"addJSToPageCloseAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:page-ranges}}\"\n      }\n    },\n    {\n      \"name\": \"everyPageOpen\"\n    },\n    {\n      \"name\": \"everyPageClose\"\n    },\n    {\n      \"name\": \"docassembly\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/aeb_pro#c\": [\n      \"driver=${1|dvipsone,dvips,pdftex,dvipdfm,textures,dvipdfmx,xetex|}\",\n      \"useacrobat\",\n      \"nopro\",\n      \"web={${1:web options}}\",\n      \"exerquiz={${1:exerquiz options}}\",\n      \"dljslib={${1:dljslib options}}\",\n      \"eforms={${1:eforms options}}\",\n      \"insdljs={${1:insdljs options}}\",\n      \"eq2db={${1:eq2db options}}\",\n      \"aebxmp={${1:aebxmp options}}\",\n      \"graphicxsp={${1:graphicxsp options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"gopro\",\n      \"attachsource={${1:ext1,ext2,...}}\",\n      \"attachments={${1:path1,path2,...}}\",\n      \"optattachments\",\n      \"!optattachments\",\n      \"linktoattachments\",\n      \"childof=${1:path}\",\n      \"btnanime\",\n      \"uselayers\",\n      \"ocganime\"\n    ],\n    \"\\\\ahyperref,\\\\ahyperlink,\\\\ahyperextract\": [\n      \"goto=${1|p2c,c2p,c2c|}\",\n      \"page=${1:number}\",\n      \"view=${1:view}\",\n      \"dest=${1:destination}\",\n      \"open=${1|usepref,new,existing|}\",\n      \"border=${1|visible,invisible|}\",\n      \"highlight=${1|none,invert,outline,insert|}\",\n      \"bordercolor=${1:r g b}\",\n      \"linestyle=${1|solid,dashed,underlined|}\",\n      \"linewidth=${1|thin,medium,thick|}\",\n      \"preset=${1:command}\"\n    ],\n    \"\\\\ahyperextract\": [\n      \"launch=${1|save,view,viewnosave|}\"\n    ],\n    \"\\\\btnAnime,\\\\animeSetup\": [\n      \"fieldName=${1:basename}\",\n      \"iconName=${1:basename}\",\n      \"nFrames=${1:integer}\",\n      \"type=${1|loop,palindrome,stopatboundary|}\",\n      \"poster=${1|first,last,none|}\",\n      \"speed=${1:milliseconds}\",\n      \"autorun\",\n      \"autopause\",\n      \"autoplayevent=${1|pageopen,pagevisible|}\",\n      \"autopauseevent=${1|pageclose,pageinvisible|}\",\n      \"ctrlwidth=\",\n      \"ctrlheight=\",\n      \"ctrlbdrycolor=${1:r g b}\",\n      \"ctrlbdrywidth=${1|thin,medium,thick|}\",\n      \"controls=${1|none,skin1,skin2,skin3,skin4,skin5,skin6|}\",\n      \"nospeedcontrol\",\n      \"usetworows\"\n    ],\n    \"\\\\xBld,\\\\animeBld\": [\n      \"true\",\n      \"false\",\n      \"print\",\n      \"true\",\n      \"false\",\n      \"print\"\n    ],\n    \"\\\\begin{ocgAnime},\\\\animeSetup\": [\n      \"ocgAnimeName=${1:basename}\",\n      \"fieldName=${1:basename}\",\n      \"nFrames=${1:integer}\",\n      \"type=${1|loop,palindrome,stopatboundary|}\",\n      \"poster=${1|first,last,none|}\",\n      \"speed=${1:milliseconds}\",\n      \"autorun\",\n      \"autopause\",\n      \"autoplayevent=${1|pageopen,pagevisible|}\",\n      \"autopauseevent=${1|pageclose,pageinvisible|}\",\n      \"ctrlwidth=\",\n      \"ctrlheight=\",\n      \"ctrlbdrycolor=${1:r g b}\",\n      \"ctrlbdrywidth=${1|thin,medium,thick|}\",\n      \"controls=${1|none,skin1,skin2,skin3,skin4,skin5,skin6|}\",\n      \"nospeedcontrol\",\n      \"usetworows\"\n    ],\n    \"\\\\DeclareInitView\": [\n      \"layoutmag={${1:keyvals}}\",\n      \"windowoptions={${1:keyvals}}\",\n      \"uioptions={${1:keyvals}}\"\n    ],\n    \"\": [\n      \"Trans=${1|NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,BlindsHorizontal,BlindsVertical,SplitHorizontalIn,SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,ZoomOutUp,CombHorizontal,CombVertical|}\",\n      \"bgColor=${1:JS color}\",\n      \"timeDelay=${1:seconds}\",\n      \"useTimer\",\n      \"loop\",\n      \"cursor=${1|hidden,delay,visible|}\",\n      \"escape\",\n      \"clickAdv\",\n      \"fullscreen\",\n      \"usePageTiming\"\n    ],\n    \"\\\\setPageTransition,\\\\setPageTransitionAt\": [\n      \"Trans=${1|NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,BlindsHorizontal,BlindsVertical,SplitHorizontalIn,SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,ZoomOutUp,CombHorizontal,CombVertical|}\",\n      \"TransDur=${1:seconds}\",\n      \"Speed=${1|Slow,Medium,Fast|}\",\n      \"PageDur=${1:seconds}\"\n    ],\n    \"\\\\declareImageAndPlacement\": [\n      \"name=${1:name}\",\n      \"path=${1:file path}\",\n      \"page=${1:pages}\",\n      \"placement={${1:button1,button2,...}}\"\n    ],\n    \"\\\\embedMultiPageImages\": [\n      \"path=${1:file path}\",\n      \"name=${1:base name}\",\n      \"placement={${1:button1,button2,...}}\",\n      \"firstpage=${1:page number}\",\n      \"lastpage=${1:page number}\"\n    ],\n    \"\\\\makePDFPackage\": [\n      \"initview=${1:label}\",\n      \"viewmode=${1|details,tile,hidden|}\"\n    ],\n    \"\\\\DeclareDocInfo\": [\n      \"title={${1:text}}\",\n      \"author={${1:name}}\",\n      \"university={${1:university}}\",\n      \"email=${1:email}\",\n      \"talksite={${1:site}}\",\n      \"talkdate=${1:date}\",\n      \"talkdateLabel={${1:text}}\",\n      \"version=${1:version}\",\n      \"versionLabel={${1:text}}\",\n      \"subject={${1:subject}}\",\n      \"keywords={${1:word1,word2,...}}\",\n      \"copyrightyears={${1:years}}\",\n      \"prepared=${1:date}\",\n      \"preparedLabel={${1:text}}\",\n      \"Title={${1:text}}\",\n      \"authors={${1:name1}}{${2:name2}}${3:...}\",\n      \"Subject={${1:subject}}\",\n      \"Keywords={${1:word1,word2,...}}\",\n      \"lang=${1:language}\",\n      \"copyrightStatus=${1|True,False|}\",\n      \"copyrightNotice={${1:text}}\",\n      \"copyrightInfoURL=${1:URL}\",\n      \"authortitle={${1:text}}\",\n      \"descriptionwriter={${1:text}}\",\n      \"customProperties={name=${1:name1},value=${2:value1}}${3:{name=name2,value=value2}...}\"\n    ],\n    \"\\\\DeclarePageLayout\": [\n      \"design=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensizeOf=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensize={${1:height}}{${2:width}}\",\n      \"margins={${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\",\n      \"headheight=\",\n      \"topmargin=\",\n      \"additionalheadsep=\",\n      \"marginparsep=\",\n      \"marginparwidth=\",\n      \"marginparpush=\",\n      \"footskip=\",\n      \"webfootskip=\",\n      \"panelwidth=\",\n      \"panelsep=\"\n    ],\n    \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\": [\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"hproportion=${1:factor}\",\n      \"xhalign=${1|l,c,r|}\"\n    ],\n    \"\\\\DesignTitlePageTrailer\": [\n      \"ul=${1:text}\",\n      \"ur=${1:text}\",\n      \"ll=${1:text}\",\n      \"lr=${1:text}\",\n      \"textColor=\",\n      \"bgColor=\",\n      \"borderColor=\",\n      \"fboxsep=\",\n      \"fboxrule=\",\n      \"graphic=${1:imagefile}\",\n      \"namedgraphic=${1:name}\",\n      \"raise=\",\n      \"fontSize=${1:fontsize cmd}\",\n      \"formatting=${1:font commands}\"\n    ],\n    \"\\\\selectTocDings\": [\n      \"dDing=${1:symbol}\",\n      \"ddDing=${1:symbol}\",\n      \"dddDing=${1:symbol}\",\n      \"dDingColor=\",\n      \"ddDingColor=\",\n      \"dddDingColor=\"\n    ],\n    \"\\\\selectColors\": [\n      \"universityColor=\",\n      \"titleColor=\",\n      \"textBgColor=\",\n      \"panelBgColor=\",\n      \"urlColor=\",\n      \"linkColor=\",\n      \"fileColor=\"\n    ],\n    \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\": [\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"ding=${1:symbol}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"numdingcolor=\",\n      \"reset=${1|font,all|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb_pro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aeb_tilebg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setTileBgGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTileBgGraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setTileBgGraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setTileBgGraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\setTileBgGraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"disableTiling\"\n    },\n    {\n      \"name\": \"enableTiling\"\n    },\n    {\n      \"name\": \"maxiterations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxiterations{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"autosetScreensizeWithMargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"autosetScreensizeWithMargins{${1:rows}}{${2:cols}}{${3:left}}{${4:right}}{${5:top}}{${6:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"placeTilesinLayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeTilesinLayers{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"placeTilesinLayers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"placeTilesinLayers[${2:name}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"theReqHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theReqWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tilewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOffTiling\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aeb_tilebg#c\": [\n      \"uselltiling\",\n      \"draft\",\n      \"ignoreforpaper\"\n    ],\n    \"\\\\setTileBgGraphic\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\",\n      \"name=${1:name}\",\n      \"transparency={${1:specs}}\",\n      \"presp={${1:PS code}}\",\n      \"postsp={${1:PS code}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeb_tilebg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aebxmp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"insdljs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"xmpDoNotInsKWScript\"\n    },\n    {\n      \"name\": \"copyrightStatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightStatus{${1:True|False}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightNotice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightNotice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightInfoURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightInfoURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authortitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionwriter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descriptionwriter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sourceFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Title\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Title{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"metaLang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metaLang{${1:lang1,lang2,...}}\"\n      }\n    },\n    {\n      \"name\": \"aKeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfAuthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfKeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfLangs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfRights\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfSubjects\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayOfTitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionWriter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descriptionWriter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insBagItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insSeqItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertAuthorTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertAuthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertCopyrightNotice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertCreateDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertCusProps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertDescriptionWriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertKWJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertKeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertLangs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertMarked\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertSource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertSubjects\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertTitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertWebStatement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xAdbNS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xNNS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xWiiiNS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpAuthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpGetNextArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmpGetNextArg{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"xmpInsScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpKeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpLang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpLangAndArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmpLangAndArg{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"xmpSubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpauthortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpcopyrightInfoURL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpcopyrightNotice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpcopyrightStatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpdescriptionwriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmplangOfDoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpnEOL\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aecompl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"textpertenthousand\"\n    },\n    {\n      \"name\": \"textperthousand\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"th\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aeguill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ae\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"aeguillfrenchdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecguills\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecguills{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"selectguillfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeguills\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aeguill#c\": [\n      \"lm\",\n      \"pl\",\n      \"cyr\",\n      \"cm\",\n      \"ec\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aeguill#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aesupp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aesupp#c\": [\n      \"OT1\",\n      \"T1\",\n      \"bx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aesupp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/affilauthor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marvosym\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\affil#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"affilstyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affilstyle[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\affilstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\author#c\": [\n      \"name={${1:name1,name2,...}}\",\n      \"mail={${1:email1,email2,...}}\",\n      \"phone={${1:num1,num2,...}}\",\n      \"url={${1:URL1,URL2,...}}\",\n      \"affil={${1:affil1,affil2,...}}\",\n      \"note={${1:note1,note2,...}\"\n    ],\n    \"\\\\affil#c\": [\n      \"id=${1:id}\",\n      \"div=${1:text}\",\n      \"org=${1:text}\",\n      \"addr=${1:text}\",\n      \"street=${1:text}\",\n      \"landmark=${1:text}\",\n      \"pincode=${1:text}\",\n      \"postbox=${1:text}\",\n      \"city=${1:text}\",\n      \"state=${1:text}\",\n      \"country=${1:text}\"\n    ],\n    \"\\\\affilstyle#c\": [\n      \"authfont=${1:font commands}\",\n      \"affilfont=${1:font commands}\",\n      \"mailfont=${1:font commands}\",\n      \"urlfont=${1:font commands}\",\n      \"phonefont=${1:font commands}\",\n      \"notefont=${1:font commands}\",\n      \"notenum=${1|alpha,fnsym,roman|}\",\n      \"authspace=\",\n      \"affilspace=\",\n      \"affilnum=${1|alpha,Alpha,roman,Roman|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/afterpackage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AfterPackage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterPackage{${1:package}}{${2:commands}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/afterpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"afterpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterpage{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addboxcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addboxcontents{${1:contents}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ajmacros.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"otf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ajTsumesuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumesuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajTsumesuji*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumesuji*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaru*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaru*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaru*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaru*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaruKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaruKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaruKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaruKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakko{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakko*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakko*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRoman*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRoman*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajroman*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajroman*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajPeriod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajPeriod{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoalph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoYobi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoYobi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoAlph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoHira\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoHira{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoKata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoKata{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoKansuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKansuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajNijuMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajNijuMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRecycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRecycle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajHasenKakuAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajHasenKakuAlph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajCross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajCross{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSlanted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSlanted{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSlanted*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSlanted*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajApostrophe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajApostrophe{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajYear{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSquareMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSquareMark{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSquareMark*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSquareMark*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajHishi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajHishi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"offsetalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetAlph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetHira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetYobi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetMaru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroMaru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetMaruKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroMaruKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ajMaruYobi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruYobi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajTsumekakko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumekakko{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKosu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKosu{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajFrac{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"ajLig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajLig{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"ajPICT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajPICT{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\ajPICT#c,\\\\※#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ajArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajArrow{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\ajArrow#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ajKunten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKunten{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOriginalKundokuStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOriginalKundokuStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeclareOriginalKundokuStyle[${1:size commands}]\"\n      }\n    },\n    {\n      \"name\": \"kokana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kokana{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"retenform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"retenkana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retenkana{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kaeriten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kaeriten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kundokusize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAJKundokuStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAJKundokuStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeclareAJKundokuStyle[${1:size commands}]\"\n      }\n    },\n    {\n      \"name\": \"ajCIDVarDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajCIDVarDef{${1:char}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajUTFVarDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajUTFVarDef{${1:char}}{${2:hex number}}\"\n      }\n    },\n    {\n      \"name\": \"ajVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajVar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"ajHashigoTaka\"\n    },\n    {\n      \"name\": \"ajTsuchiYoshi\"\n    },\n    {\n      \"name\": \"ajTatsuSaki\"\n    },\n    {\n      \"name\": \"ajMayuHama\"\n    },\n    {\n      \"name\": \"ajLeader\"\n    },\n    {\n      \"name\": \"ajLeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajLeader{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ajLeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ajLeader[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ajQuotedef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ajQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajQuote{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ajPICT#c,\\\\※#c\": [\n      \"Club\",\n      \"Club*\",\n      \"Heart\",\n      \"Heart*\",\n      \"Spade\",\n      \"Spade*\",\n      \"Diamond\",\n      \"Diamond*\",\n      \"電話\",\n      \"〒\",\n      \"晴\",\n      \"曇\",\n      \"雨\",\n      \"雪\",\n      \"→\",\n      \"←\",\n      \"↑\",\n      \"↓\",\n      \"野球\",\n      \"湯\",\n      \"花\",\n      \"花*\",\n      \"サッカー\"\n    ],\n    \"\\\\ajArrow#c\": [\n      \"LeftTriangle\",\n      \"RightTriangle\",\n      \"DOWN\",\n      \"UP\",\n      \"LEFT\",\n      \"RIGHT\",\n      \"RIGHT*\",\n      \"LEFT*\",\n      \"UP*\",\n      \"DOWN*\",\n      \"RightHand\",\n      \"LeftHand\",\n      \"UpHand\",\n      \"DownHand\",\n      \"Left/Right\",\n      \"Right/Left\",\n      \"Up/Down\",\n      \"Down/Up\",\n      \"LeftScissors\",\n      \"RightScissors\",\n      \"UpScissors\",\n      \"DownScissors\",\n      \"LeftTriangle*\",\n      \"RightTriangle*\",\n      \"Left\",\n      \"Right\",\n      \"Up\",\n      \"Down\",\n      \"LeftDouble\",\n      \"LeftRight*\",\n      \"RightDown\",\n      \"LeftDown\",\n      \"LeftUp\",\n      \"RightUp\",\n      \"Right/Left*\",\n      \"Left/Right*\",\n      \"Right/Left+\",\n      \"Down/Up+\",\n      \"Left+\",\n      \"Right+\",\n      \"Up+\",\n      \"Down+\",\n      \"LeftRight+\",\n      \"UpDown+\",\n      \"LeftAngle\",\n      \"RightAngle\",\n      \"UpAngle\",\n      \"DownAngle\",\n      \"LeftAngle*\",\n      \"RightAngle*\",\n      \"UpAngle*\",\n      \"DownAngle*\",\n      \"RightDouble\",\n      \"LeftRightDouble\",\n      \"RightUp*\",\n      \"RightDown*\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/akshar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aksharStrLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aksharStrLen{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aksharStrHead{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrTail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aksharStrTail{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrChar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aksharStrChar{${1:tokens}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrReplace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aksharStrReplace{${1:tokens1}}{${2:tokens2}}{${3:tokens3}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrReplace*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aksharStrReplace*{${1:tokens1}}{${2:tokens2}}{${3:tokens3}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrRemove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aksharStrRemove{${1:tokens1}}{${2:tokens2}}\"\n      }\n    },\n    {\n      \"name\": \"aksharStrRemove*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aksharStrRemove*{${1:tokens1}}{${2:tokens2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alchemist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AlchemistQuintessence\"\n    },\n    {\n      \"name\": \"AlchemistAir\"\n    },\n    {\n      \"name\": \"AlchemistFire\"\n    },\n    {\n      \"name\": \"AlchemistSoil\"\n    },\n    {\n      \"name\": \"AlchemistWater\"\n    },\n    {\n      \"name\": \"AlchemistSpirit\"\n    },\n    {\n      \"name\": \"AlchemistPhilosophersSulphur\"\n    },\n    {\n      \"name\": \"AlchemistMateriaPrima\"\n    },\n    {\n      \"name\": \"AlchemistAquaFortis\"\n    },\n    {\n      \"name\": \"AlchemistAquaRegiaA\"\n    },\n    {\n      \"name\": \"AlchemistAquaRegiaB\"\n    },\n    {\n      \"name\": \"AlchemistAquaVitaeA\"\n    },\n    {\n      \"name\": \"AlchemistAquaVitaeB\"\n    },\n    {\n      \"name\": \"AlchemistVinegar\"\n    },\n    {\n      \"name\": \"AlchemistDistilledVinegarA\"\n    },\n    {\n      \"name\": \"AlchemistDistilledVinegarB\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfMercuryA\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfMercuryB\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfMercuryC\"\n    },\n    {\n      \"name\": \"AlchemistCinnabar\"\n    },\n    {\n      \"name\": \"AlchemistSalt\"\n    },\n    {\n      \"name\": \"AlchemistNitre\"\n    },\n    {\n      \"name\": \"AlchemistVitriolA\"\n    },\n    {\n      \"name\": \"AlchemistVitriolB\"\n    },\n    {\n      \"name\": \"AlchemistRockSaltA\"\n    },\n    {\n      \"name\": \"AlchemistRockSaltB\"\n    },\n    {\n      \"name\": \"AlchemistIronOreA\"\n    },\n    {\n      \"name\": \"AlchemistIronOreB\"\n    },\n    {\n      \"name\": \"AlchemistCrocusOfIron\"\n    },\n    {\n      \"name\": \"AlchemistCopperOre\"\n    },\n    {\n      \"name\": \"AlchemistCrocusOfCopperA\"\n    },\n    {\n      \"name\": \"AlchemistCrocusOfCopperB\"\n    },\n    {\n      \"name\": \"AlchemistIronCopperOre\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfCopperA\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfCopperB\"\n    },\n    {\n      \"name\": \"AlchemistCopperAntimonateA\"\n    },\n    {\n      \"name\": \"AlchemistCopperAntimonateB\"\n    },\n    {\n      \"name\": \"AlchemistVerdigris\"\n    },\n    {\n      \"name\": \"AlchemistTinOre\"\n    },\n    {\n      \"name\": \"AlchemistLeadOre\"\n    },\n    {\n      \"name\": \"AlchemistAntimonyOre\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfAntimony\"\n    },\n    {\n      \"name\": \"AlchemistSaltOfAntimony\"\n    },\n    {\n      \"name\": \"AlchemistSublimateOfSaltOfAntimony\"\n    },\n    {\n      \"name\": \"AlchemistVinegarOfAntimony\"\n    },\n    {\n      \"name\": \"AlchemistRegulusA\"\n    },\n    {\n      \"name\": \"AlchemistRegulusB\"\n    },\n    {\n      \"name\": \"AlchemistRegulusC\"\n    },\n    {\n      \"name\": \"AlchemistRegulusD\"\n    },\n    {\n      \"name\": \"AlchemistAlkaliA\"\n    },\n    {\n      \"name\": \"AlchemistAlkaliB\"\n    },\n    {\n      \"name\": \"AlchemistMarcasite\"\n    },\n    {\n      \"name\": \"AlchemistSalAmmoniak\"\n    },\n    {\n      \"name\": \"AlchemistRealgarA\"\n    },\n    {\n      \"name\": \"AlchemistRealgarB\"\n    },\n    {\n      \"name\": \"AlchemistAuripigment\"\n    },\n    {\n      \"name\": \"AlchemistBismuthOre\"\n    },\n    {\n      \"name\": \"AlchemistTartarA\"\n    },\n    {\n      \"name\": \"AlchemistTartarB\"\n    },\n    {\n      \"name\": \"AlchemistQuicklime\"\n    },\n    {\n      \"name\": \"AlchemistBoraxA\"\n    },\n    {\n      \"name\": \"AlchemistBoraxB\"\n    },\n    {\n      \"name\": \"AlchemistBoraxC\"\n    },\n    {\n      \"name\": \"AlchemistAlum\"\n    },\n    {\n      \"name\": \"AlchemistLodestone\"\n    },\n    {\n      \"name\": \"AlchemistSoap\"\n    },\n    {\n      \"name\": \"AlchemistPotashes\"\n    },\n    {\n      \"name\": \"AlchemistStratumSuperStratumA\"\n    },\n    {\n      \"name\": \"AlchemistStratumSuperStratumB\"\n    },\n    {\n      \"name\": \"AlchemistBlackSulphur\"\n    },\n    {\n      \"name\": \"AlchemistUrine\"\n    },\n    {\n      \"name\": \"AlchemistHorseDung\"\n    },\n    {\n      \"name\": \"AlchemistAshes\"\n    },\n    {\n      \"name\": \"AlchemistBrick\"\n    },\n    {\n      \"name\": \"AlchemistPowderedBrick\"\n    },\n    {\n      \"name\": \"AlchemistAmalgam\"\n    },\n    {\n      \"name\": \"AlchemistCaputMortuum\"\n    },\n    {\n      \"name\": \"AlchemistOil\"\n    },\n    {\n      \"name\": \"AlchemistTincture\"\n    },\n    {\n      \"name\": \"AlchemistGum\"\n    },\n    {\n      \"name\": \"AlchemistWax\"\n    },\n    {\n      \"name\": \"AlchemistPowder\"\n    },\n    {\n      \"name\": \"AlchemistCalx\"\n    },\n    {\n      \"name\": \"AlchemistTutty\"\n    },\n    {\n      \"name\": \"AlchemistSulphur\"\n    },\n    {\n      \"name\": \"AlchemistGoldA\"\n    },\n    {\n      \"name\": \"AlchemistGoldB\"\n    },\n    {\n      \"name\": \"AlchemistSilverA\"\n    },\n    {\n      \"name\": \"AlchemistSilverB\"\n    },\n    {\n      \"name\": \"AlchemistSilverC\"\n    },\n    {\n      \"name\": \"AlchemistRegulusOfAntimonyA\"\n    },\n    {\n      \"name\": \"AlchemistRegulusOfAntimonyB\"\n    },\n    {\n      \"name\": \"AlchemistRegulusOfIron\"\n    },\n    {\n      \"name\": \"AlchemistArsenic\"\n    },\n    {\n      \"name\": \"AlchemistMercury\"\n    },\n    {\n      \"name\": \"AlchemistCopper\"\n    },\n    {\n      \"name\": \"AlchemistIron\"\n    },\n    {\n      \"name\": \"AlchemistTin\"\n    },\n    {\n      \"name\": \"AlchemistLead\"\n    },\n    {\n      \"name\": \"AlchemistBismuth\"\n    },\n    {\n      \"name\": \"AlchemistAlembicA\"\n    },\n    {\n      \"name\": \"AlchemistAlembicB\"\n    },\n    {\n      \"name\": \"AlchemistAsclepius\"\n    },\n    {\n      \"name\": \"AlchemistCaduceusA\"\n    },\n    {\n      \"name\": \"AlchemistCaduceusB\"\n    },\n    {\n      \"name\": \"AlchemistCrucibleA\"\n    },\n    {\n      \"name\": \"AlchemistCrucibleB\"\n    },\n    {\n      \"name\": \"AlchemistCrucibleC\"\n    },\n    {\n      \"name\": \"AlchemistCrucibleD\"\n    },\n    {\n      \"name\": \"AlchemistCrucibleE\"\n    },\n    {\n      \"name\": \"AlchemistBalneumMariae\"\n    },\n    {\n      \"name\": \"AlchemistRetort\"\n    },\n    {\n      \"name\": \"AlchemistScepterOfJove\"\n    },\n    {\n      \"name\": \"AlchemistTrident\"\n    },\n    {\n      \"name\": \"AlchemistStarredTrident\"\n    },\n    {\n      \"name\": \"AlchemistVapourBath\"\n    },\n    {\n      \"name\": \"AlchemistCalcination\"\n    },\n    {\n      \"name\": \"AlchemistCeration\"\n    },\n    {\n      \"name\": \"AlchemistCongelation\"\n    },\n    {\n      \"name\": \"AlchemistDigestion\"\n    },\n    {\n      \"name\": \"AlchemistDistillationA\"\n    },\n    {\n      \"name\": \"AlchemistDistillationB\"\n    },\n    {\n      \"name\": \"AlchemistDissolveA\"\n    },\n    {\n      \"name\": \"AlchemistDissolveB\"\n    },\n    {\n      \"name\": \"AlchemistFermentation\"\n    },\n    {\n      \"name\": \"AlchemistFixation\"\n    },\n    {\n      \"name\": \"AlchemistMultiplication\"\n    },\n    {\n      \"name\": \"AlchemistPrecipitation\"\n    },\n    {\n      \"name\": \"AlchemistProjection\"\n    },\n    {\n      \"name\": \"AlchemistPurify\"\n    },\n    {\n      \"name\": \"AlchemistPutrefaction\"\n    },\n    {\n      \"name\": \"AlchemistSeparation\"\n    },\n    {\n      \"name\": \"AlchemistSolution\"\n    },\n    {\n      \"name\": \"AlchemistSublimationA\"\n    },\n    {\n      \"name\": \"AlchemistSublimationB\"\n    },\n    {\n      \"name\": \"AlchemistTincture\"\n    },\n    {\n      \"name\": \"AlchemistHourA\"\n    },\n    {\n      \"name\": \"AlchemistHourB\"\n    },\n    {\n      \"name\": \"AlchemistHourC\"\n    },\n    {\n      \"name\": \"AlchemistNight\"\n    },\n    {\n      \"name\": \"AlchemistDayNight\"\n    },\n    {\n      \"name\": \"AlchemistMonth\"\n    },\n    {\n      \"name\": \"AlchemistHalfDram\"\n    },\n    {\n      \"name\": \"AlchemistHalfOunce\"\n    },\n    {\n      \"name\": \"AlchemistAscendingNode\"\n    },\n    {\n      \"name\": \"AlchemistDescendingNode\"\n    },\n    {\n      \"name\": \"AlchemistConjunction\"\n    },\n    {\n      \"name\": \"AlchemistOpposition\"\n    },\n    {\n      \"name\": \"AlchemistSextile\"\n    },\n    {\n      \"name\": \"AlchemistSemisextile\"\n    },\n    {\n      \"name\": \"AlchemistQuincunx\"\n    },\n    {\n      \"name\": \"AlchemistSesquiquadrate\"\n    },\n    {\n      \"name\": \"AlchemistLotOfFortune\"\n    },\n    {\n      \"name\": \"AlchemistOccultation\"\n    },\n    {\n      \"name\": \"AlchemistLunarEclipse\"\n    },\n    {\n      \"name\": \"AlchemistSun\"\n    },\n    {\n      \"name\": \"AlchemistFirstQuarterMoon\"\n    },\n    {\n      \"name\": \"AlchemistLastQuarterMoon\"\n    },\n    {\n      \"name\": \"AlchemistBlackMoonLilith\"\n    },\n    {\n      \"name\": \"AlchemistMercury\"\n    },\n    {\n      \"name\": \"AlchemistVenus\"\n    },\n    {\n      \"name\": \"AlchemistEarth\"\n    },\n    {\n      \"name\": \"AlchemistMars\"\n    },\n    {\n      \"name\": \"AlchemistJupiter\"\n    },\n    {\n      \"name\": \"AlchemistSaturn\"\n    },\n    {\n      \"name\": \"AlchemistUranus\"\n    },\n    {\n      \"name\": \"AlchemistNeptune\"\n    },\n    {\n      \"name\": \"AlchemistPlutoA\"\n    },\n    {\n      \"name\": \"AlchemistPlutoB\"\n    },\n    {\n      \"name\": \"AlchemistAries\"\n    },\n    {\n      \"name\": \"AlchemistTaurus\"\n    },\n    {\n      \"name\": \"AlchemistGemini\"\n    },\n    {\n      \"name\": \"AlchemistCancer\"\n    },\n    {\n      \"name\": \"AlchemistLeo\"\n    },\n    {\n      \"name\": \"AlchemistVirgo\"\n    },\n    {\n      \"name\": \"AlchemistLibra\"\n    },\n    {\n      \"name\": \"AlchemistScorpio\"\n    },\n    {\n      \"name\": \"AlchemistSagittarius\"\n    },\n    {\n      \"name\": \"AlchemistCapricorn\"\n    },\n    {\n      \"name\": \"AlchemistAquarius\"\n    },\n    {\n      \"name\": \"AlchemistPisces\"\n    },\n    {\n      \"name\": \"AlchemistCeres\"\n    },\n    {\n      \"name\": \"AlchemistPallas\"\n    },\n    {\n      \"name\": \"AlchemistJuno\"\n    },\n    {\n      \"name\": \"AlchemistVesta\"\n    },\n    {\n      \"name\": \"AlchemistChiron\"\n    },\n    {\n      \"name\": \"AlchemistErisA\"\n    },\n    {\n      \"name\": \"AlchemistErisB\"\n    },\n    {\n      \"name\": \"AlchemistSedna\"\n    },\n    {\n      \"name\": \"AlchemistHaumea\"\n    },\n    {\n      \"name\": \"AlchemistMakemake\"\n    },\n    {\n      \"name\": \"AlchemistGonggong\"\n    },\n    {\n      \"name\": \"AlchemistQuaoar\"\n    },\n    {\n      \"name\": \"AlchemistOrcus\"\n    },\n    {\n      \"name\": \"AlchemistPentagram\"\n    },\n    {\n      \"name\": \"AlchemistA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlchemistB\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alertmessage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alertinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alertinfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alertsuccess\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alertsuccess{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alertwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alertwarning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alerterror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alerterror{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alfaslabone.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alfaslabonetabular\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algorithmicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"For{${1:expr1%formula}}{${2:expr2%formula}}{${3:expr3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"If{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"While{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Do\"\n    },\n    {\n      \"name\": \"Function\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Function{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"Return\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkeyword{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algcompatible.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ALG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"COMMENT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ELSE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ELSIF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDFOR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDIF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDLOOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDWHILE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENSURE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FOR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FORALL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LOOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"REPEAT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"REQUIRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STATE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STATEx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UNTIL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WHILE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicdo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicensure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicforall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrequire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicuntil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equal\",\n      \"unusual\": true,\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"isodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isundefined\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algmatlab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algorithmicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"While{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"For{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"If{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ElseIf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ElseIf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Function\"\n    },\n    {\n      \"name\": \"Switch\"\n    },\n    {\n      \"name\": \"Case\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Case{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Otherwise\"\n    },\n    {\n      \"name\": \"Line\"\n    },\n    {\n      \"name\": \"Scatter\"\n    },\n    {\n      \"name\": \"Plot\"\n    },\n    {\n      \"name\": \"Zeros\"\n    },\n    {\n      \"name\": \"Ones\"\n    },\n    {\n      \"name\": \"Load\"\n    },\n    {\n      \"name\": \"Size\"\n    },\n    {\n      \"name\": \"Disp\"\n    },\n    {\n      \"name\": \"Min\"\n    },\n    {\n      \"name\": \"Max\"\n    },\n    {\n      \"name\": \"Break\"\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"Global\"\n    },\n    {\n      \"name\": \"Hold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hold{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"algnewfunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algnewfunction{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"textkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkeyword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfunc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algobox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"AFFICHER\"\n    },\n    {\n      \"name\": \"AFFICHERCALCUL\"\n    },\n    {\n      \"name\": \"ALLANTDE\"\n    },\n    {\n      \"name\": \"ALORS\"\n    },\n    {\n      \"name\": \"DEBUTALGORITHME\"\n    },\n    {\n      \"name\": \"DEBUTPOUR\"\n    },\n    {\n      \"name\": \"DEBUTSI\"\n    },\n    {\n      \"name\": \"DEBUTSINON\"\n    },\n    {\n      \"name\": \"DEBUTSINON\"\n    },\n    {\n      \"name\": \"DEBUTTANTQUE\"\n    },\n    {\n      \"name\": \"ESTDUTYPE\"\n    },\n    {\n      \"name\": \"FINALGORITHME\"\n    },\n    {\n      \"name\": \"FINPOUR\"\n    },\n    {\n      \"name\": \"FINSI\"\n    },\n    {\n      \"name\": \"FINSINON\"\n    },\n    {\n      \"name\": \"FINTANTQUE\"\n    },\n    {\n      \"name\": \"FONCTION\"\n    },\n    {\n      \"name\": \"LINE\"\n    },\n    {\n      \"name\": \"LIRE\"\n    },\n    {\n      \"name\": \"NODE\"\n    },\n    {\n      \"name\": \"POUR\"\n    },\n    {\n      \"name\": \"PRENDLAVALEUR\"\n    },\n    {\n      \"name\": \"SI\"\n    },\n    {\n      \"name\": \"SINON\"\n    },\n    {\n      \"name\": \"TANTQUE\"\n    },\n    {\n      \"name\": \"VARIABLES\"\n    },\n    {\n      \"name\": \"smalgobox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalgobox{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algobox\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algolrevived.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"textprime\"\n    },\n    {\n      \"name\": \"textdprime\"\n    },\n    {\n      \"name\": \"textleftrightarrow\"\n    },\n    {\n      \"name\": \"textupdownarrow\"\n    },\n    {\n      \"name\": \"textLeftarrow\"\n    },\n    {\n      \"name\": \"textUparrow\"\n    },\n    {\n      \"name\": \"textRightarrow\"\n    },\n    {\n      \"name\": \"textDownarrow\"\n    },\n    {\n      \"name\": \"textLeftrightarrow\"\n    },\n    {\n      \"name\": \"textUpdownarrow\"\n    },\n    {\n      \"name\": \"textforall\"\n    },\n    {\n      \"name\": \"textcomplement\"\n    },\n    {\n      \"name\": \"textpartial\"\n    },\n    {\n      \"name\": \"textexists\"\n    },\n    {\n      \"name\": \"textnexists\"\n    },\n    {\n      \"name\": \"textvarnothing\"\n    },\n    {\n      \"name\": \"textincrement\"\n    },\n    {\n      \"name\": \"textnabla\"\n    },\n    {\n      \"name\": \"textin\"\n    },\n    {\n      \"name\": \"textnotin\"\n    },\n    {\n      \"name\": \"textsmallin\"\n    },\n    {\n      \"name\": \"textni\"\n    },\n    {\n      \"name\": \"textnni\"\n    },\n    {\n      \"name\": \"textsmallni\"\n    },\n    {\n      \"name\": \"textsmallsetminus\"\n    },\n    {\n      \"name\": \"textlargebullet\"\n    },\n    {\n      \"name\": \"textland\"\n    },\n    {\n      \"name\": \"textlor\"\n    },\n    {\n      \"name\": \"textcap\"\n    },\n    {\n      \"name\": \"textcup\"\n    },\n    {\n      \"name\": \"textcoloneq\"\n    },\n    {\n      \"name\": \"texteqcolon\"\n    },\n    {\n      \"name\": \"textneq\"\n    },\n    {\n      \"name\": \"textequiv\"\n    },\n    {\n      \"name\": \"textneqiv\"\n    },\n    {\n      \"name\": \"textleq\"\n    },\n    {\n      \"name\": \"textgeq\"\n    },\n    {\n      \"name\": \"textsubset\"\n    },\n    {\n      \"name\": \"textsupset\"\n    },\n    {\n      \"name\": \"textnsubset\"\n    },\n    {\n      \"name\": \"textnsupset\"\n    },\n    {\n      \"name\": \"textsubseteq\"\n    },\n    {\n      \"name\": \"textsupseteq\"\n    },\n    {\n      \"name\": \"textnsubseteq\"\n    },\n    {\n      \"name\": \"textnsupseteq\"\n    },\n    {\n      \"name\": \"textsqsubset\"\n    },\n    {\n      \"name\": \"textsqsupset\"\n    },\n    {\n      \"name\": \"textsqsubseteq\"\n    },\n    {\n      \"name\": \"textsqcap\"\n    },\n    {\n      \"name\": \"textsqcup\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/algolrevived#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"tt\",\n      \"hyphens\",\n      \"nohyphens\",\n      \"zeroslash\",\n      \"nozeroslash\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"foresolidus\",\n      \"aftsolidus\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algolrevived#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/algorithm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listalgorithmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofalgorithms\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/algorithm#c\": [\n      \"plain\",\n      \"ruled\",\n      \"boxed\",\n      \"part\",\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"nothing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algorithm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/algorithm2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tocbibind\",\n      \"if\": \"dotocloa\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"endfloat\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"slide\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listofalgorithmes\",\n      \"if\": \"algo2e\"\n    },\n    {\n      \"name\": \"thepostalgo\",\n      \"if\": \"endfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlgorithmName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetAlgorithmName{${1:name}}{${2:autoref name}}{${3:listofalgorithms name}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoProcName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoProcName{${1:name}}{${2:autoref name}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoFuncName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoFuncName{${1:name}}{${2:autoref name}}\"\n      }\n    },\n    {\n      \"name\": \"DontPrintSemicolon\"\n    },\n    {\n      \"name\": \"PrintSemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlankLine\"\n    },\n    {\n      \"name\": \"SetStartEndCondition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetStartEndCondition{${1:typo1}}{${2:typo2}}{${3:typo3}}\"\n      }\n    },\n    {\n      \"name\": \"AlgoDisplayBlockMarkers\"\n    },\n    {\n      \"name\": \"AlgoDontDisplayBlockMarkers\"\n    },\n    {\n      \"name\": \"AlgoDisplayGroupMarkers\"\n    },\n    {\n      \"name\": \"AlgoDontDisplayGroupMarkers\"\n    },\n    {\n      \"name\": \"SetAlgoBlockMarkers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAlgoBlockMarkers{${1:begin keywords}}{${2:end keywords}}\"\n      }\n    },\n    {\n      \"name\": \"listofalgorithms\"\n    },\n    {\n      \"name\": \"TitleOfAlgo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitleOfAlgo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoRefName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoRefName{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoRefRelativeSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoRefRelativeSize{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoCaptionSeparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoCaptionSeparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"SetCustomAlgoRuledWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCustomAlgoRuledWidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlCapSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapHSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapHSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetTitleSty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTitleSty{${1:type style}}{${2:type size}}\"\n      }\n    },\n    {\n      \"name\": \"TitleSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitleSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoCaptionOfAlgo\"\n    },\n    {\n      \"name\": \"RestoreCaptionOfAlgo\"\n    },\n    {\n      \"name\": \"SetAlgoCaptionLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoCaptionLayout{${1:style csname}}\"\n      }\n    },\n    {\n      \"name\": \"theAlgoLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinesNumbered\"\n    },\n    {\n      \"name\": \"LinesNumberedHidden\"\n    },\n    {\n      \"name\": \"LinesNotNumbered\"\n    },\n    {\n      \"name\": \"nllabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nllabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nlset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlset{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lnlset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lnlset{${1:text%plain}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"ShowLn\"\n    },\n    {\n      \"name\": \"ShowLnLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowLnLabel{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SetNlSty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetNlSty{${1:font csname}}{${2:text before}}{${3:text after}}\"\n      }\n    },\n    {\n      \"name\": \"SetNlSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetNlSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoNlRelativeSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoNlRelativeSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AlFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FuncSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FuncSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FuncArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FuncArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DataSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DataSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CommentSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NlSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NlSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcNameSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcNameSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcArgSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcArgSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcArgFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlockMarkersSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlockMarkersSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlCapSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapNameSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlCapNameSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlCapFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlCapNameFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcNameFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcArgFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlTitleSty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlTitleSty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlTitleFnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAlFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetKwSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetFuncSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFuncSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetFuncArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFuncArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetDataSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDataSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetCommentSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCommentSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcNameSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcNameSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcArgSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcArgSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockMarkersSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockMarkersSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapNameFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapNameFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlTitleFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlTitleFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlCapNameSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlCapNameSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlTitleSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlTitleSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcNameFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcNameFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcSty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcSty{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetProcArgFnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProcArgFnt{${1:font csname}}\"\n      }\n    },\n    {\n      \"name\": \"RestyleAlgo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestyleAlgo{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\RestyleAlgo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetAlgoVlined\"\n    },\n    {\n      \"name\": \"SetAlgoNoLine\"\n    },\n    {\n      \"name\": \"SetAlgoLined\"\n    },\n    {\n      \"name\": \"SetAlgoLongEnd\"\n    },\n    {\n      \"name\": \"SetAlgoShortEnd\"\n    },\n    {\n      \"name\": \"SetAlgoNoEnd\"\n    },\n    {\n      \"name\": \"SetInd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetInd{${1:before space%l}}{${2:after space%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoHangIndent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoHangIndent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetVlineSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetVlineSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoSkip{${1:skip csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetAlgoInsideSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlgoInsideSkip{${1:skip csname}}\"\n      }\n    },\n    {\n      \"name\": \"algomargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IncMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DecMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DecMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"interspacetitleruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interspacealgoruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interspacetitleboxruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetSideCommentLeft\"\n    },\n    {\n      \"name\": \"SetSideCommentRight\"\n    },\n    {\n      \"name\": \"SetFillComment\"\n    },\n    {\n      \"name\": \"SetNoFillComment\"\n    },\n    {\n      \"name\": \"KwIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIn{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwOut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwOut{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"KwData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwData{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwHData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwHData{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwResult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwResult{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"KwTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRet{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Return\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Return{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Begin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Begin{${1:block inside}}\"\n      }\n    },\n    {\n      \"name\": \"Begin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Begin(${2:begin comment}){${1:block inside}}\"\n      }\n    },\n    {\n      \"name\": \"tcc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcc{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcc*{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcc*[${2:alignment}]{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcp{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcp*{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcp*[${2:alignment}]{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"If{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"If(${3:then comment}){${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uIf{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"uIf(${3:then comment}){${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lIf{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"lIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lIf(${3:if comment}){${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"ElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ElseIf{${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"ElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ElseIf(${2:elseif comment}){${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uElseIf{${1:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uElseIf(${2:elseif comment}){${1:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lElseIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lElseIf{${1:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"lElseif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lElseif(${2:elseif line}){${1:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"Else\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Else{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Else\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Else(${2:else comment}){${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uElse{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uElse(${2:else block comment}){${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lElse{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"lElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lElse(${2:else comment}){${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eIf{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}(){}\",\n        \"snippet\": \"eIf(${4:then comment}){${1:condition}}{${2:then block}}(${5:else comment}){${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"eIf(${4:then comment}){${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"eIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}(){}\",\n        \"snippet\": \"eIf{${1:condition}}{${2:then block}}(${4:else comment}){${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"leIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leIf{${1:condition}}{${2:then line}}{${3:else line}}\"\n      }\n    },\n    {\n      \"name\": \"leIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"leIf(${4:comment}){${1:condition}}{${2:then line}}{${3:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Switch(${3:switch comment}){${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Switch{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Case{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Case(${3:case comment}){${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCase{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"uCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"uCase(${3:case comment}){${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCase{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"lCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lCase(${3:case comment}){${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"Other\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Other{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"Other\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Other(${2:other comment}){${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"uOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOther{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"uOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"uOther(${2:other comment}){${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"lOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOther{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"lOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lOther(${2:other comment}){${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"For\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"For{${1:condition}}{${2:for block}}\"\n      }\n    },\n    {\n      \"name\": \"For\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"For(${3:for comment}){${1:condition}}{${2:for block}}\"\n      }\n    },\n    {\n      \"name\": \"lFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFor{${1:condition}}{${2:for line}}\"\n      }\n    },\n    {\n      \"name\": \"lFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lFor(${3:for comment}){${1:condition}}{${2:for line}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"While{${1:condition}}{${2:while block}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"While(${3:while comment}){${1:condition}}{${2:while block}}\"\n      }\n    },\n    {\n      \"name\": \"lWhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWhile{${1:condition}}{${2:while line}}\"\n      }\n    },\n    {\n      \"name\": \"lWhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lWhile(${3:while comment}){${1:condition}}{${2:while line}}\"\n      }\n    },\n    {\n      \"name\": \"ForPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForPar{${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForPar(${3:foreach comment}){${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEach{${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForEach(${3:foreach comment}){${1:condition}}{${2:foreach block}}\"\n      }\n    },\n    {\n      \"name\": \"lForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lForEach{${1:condition}}{${2:foreach line}}\"\n      }\n    },\n    {\n      \"name\": \"lForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lForEach(${3:foreach comment}){${1:condition}}{${2:foreach line}}\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForAll{${1:condition}}{${2:forall block}}\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"ForAll(${3:forall comment}){${1:condition}}{${2:forall block}}\"\n      }\n    },\n    {\n      \"name\": \"lForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lForAll{${1:condition}}{${2:forall line}}\"\n      }\n    },\n    {\n      \"name\": \"lForAll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lForAll(${3:forall comment}){${1:condition}}{${2:forall line}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeat{${1:end condition}}{${2:repeat block}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}()\",\n        \"snippet\": \"Repeat(${3:repeat comment}){${1:end condition}}{${2:repeat block}}(${4:until comment})\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Repeat(${3:repeat comment}){${1:end condition}}{${2:repeat block}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"Repeat{${1:end condition}}{${2:repeat block}}(${3:until comment})\"\n      }\n    },\n    {\n      \"name\": \"lRepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepeat{${1:end condition}}{${2:repeat line}}\"\n      }\n    },\n    {\n      \"name\": \"lRepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"lRepeat(${3:repeat comment}){${1:end condition}}{${2:repeat line}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwInput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwInput{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwInOut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwInOut{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ResetInOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetInOut{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKw{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwHangingKw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwHangingKw{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwData\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwData{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwArray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwArray{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwBlock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwBlock{${1:csname}}{${2:begin text}}{${3:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwProg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetKwProg{${1:csname}}{${2:name}}{${3:begin text}}{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwFunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKwFunction{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwComment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwComment{${1:csname}}{${2:begin text}}{${3:end text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwIF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetKwIF{${1:if csname}}{${2:elseif csname}}{${3:else csname}}{${4:if text}}{${5:then text}}{${6:elseif text}}{${7:else text}}{${8:endif text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwSwitch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetKwSwitch{${1:switch csname}}{${2:case csname}}{${3:other csname}}{${4:switch text}}{${5:do text}}{${6:case text}}{${7:other text}}{${8:endcase text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetKwFor{${1:csname}}{${2:for text}}{${3:do text}}{${4:endfor text}}\"\n      }\n    },\n    {\n      \"name\": \"SetKwRepeat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetKwRepeat{${1:csname}}{${2:repeat text}}{${3:until text}}\"\n      }\n    },\n    {\n      \"name\": \"HDonnees\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HDonnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Donnees\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Donnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Res\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Res{${1:résultats}}\"\n      }\n    },\n    {\n      \"name\": \"Entree\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entree{${1:entrées}}\"\n      }\n    },\n    {\n      \"name\": \"Sortie\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sortie{${1:sorties}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Retour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retour{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"Deb\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deb{${1:intérieur du bloc}}\"\n      }\n    },\n    {\n      \"name\": \"Repeter\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeter{${1:condition d’arrêt}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Si\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Si{${1:condition}}{${2:bloc du alors}}\"\n      }\n    },\n    {\n      \"name\": \"eSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSi{${1:condition}}{${2:bloc du alors}}{${3:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSi{${1:condition}}{${2:bloc du alors sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSi{${1:condition}}{${2:ligne du alors}}\"\n      }\n    },\n    {\n      \"name\": \"SinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SinonSi{${1:condition}}{${2:bloc du sinonsi}}\"\n      }\n    },\n    {\n      \"name\": \"uSinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinonSi\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"Sinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sinon{${1:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSinon{${1:bloc du sinon sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinon\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSinon{${1:ligne du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"Suivant\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Suivant{${1:condition}}{${2:bloc du suivant-cas-alors}}\"\n      }\n    },\n    {\n      \"name\": \"Cas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cas{${1:cas où}}{${2:bloc de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"uCas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCas{${1:cas où}}{${2:bloc de ce cas sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lCas\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCas{${1:cas où}}{${2:ligne de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"Autre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"lAutre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAutre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"Pour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pour{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPour\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPour{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourPar\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourPar{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourPar\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourPar{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourCh\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourCh{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourCh\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourCh{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourTous\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourTous{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourTous\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourTous{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Tq\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tq{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lTq\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lTq{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"HDonnees\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HDonnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Donnees\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Donnees{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"Res\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Res{${1:résultats}}\"\n      }\n    },\n    {\n      \"name\": \"Entree\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entree{${1:entrées}}\"\n      }\n    },\n    {\n      \"name\": \"Sortie\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sortie{${1:sorties}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Retour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retour{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"Deb\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deb{${1:intérieur du bloc}}\"\n      }\n    },\n    {\n      \"name\": \"Repeter\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repeter{${1:condition d’arrêt}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Si\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Si{${1:condition}}{${2:bloc du alors}}\"\n      }\n    },\n    {\n      \"name\": \"eSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSi{${1:condition}}{${2:bloc du alors}}{${3:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSi{${1:condition}}{${2:bloc du alors sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSi{${1:condition}}{${2:ligne du alors}}\"\n      }\n    },\n    {\n      \"name\": \"SinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SinonSi{${1:condition}}{${2:bloc du sinonsi}}\"\n      }\n    },\n    {\n      \"name\": \"uSinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinonSi\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSinonSi{${1:condition}}{${2:bloc du sinonsi sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"Sinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sinon{${1:bloc du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"uSinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSinon{${1:bloc du sinon sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lSinon\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSinon{${1:ligne du sinon}}\"\n      }\n    },\n    {\n      \"name\": \"Suivant\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Suivant{${1:condition}}{${2:bloc du suivant-cas-alors}}\"\n      }\n    },\n    {\n      \"name\": \"Cas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cas{${1:cas où}}{${2:bloc de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"uCas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCas{${1:cas où}}{${2:bloc de ce cas sans fin}}\"\n      }\n    },\n    {\n      \"name\": \"lCas\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCas{${1:cas où}}{${2:ligne de ce cas}}\"\n      }\n    },\n    {\n      \"name\": \"Autre\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"lAutre\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAutre{${1:bloc de l’alternative}}\"\n      }\n    },\n    {\n      \"name\": \"Pour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pour{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPour\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPour{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourPar\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourPar{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourPar\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourPar{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourCh\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourCh{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourCh\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourCh{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"PourTous\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PourTous{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lPourTous\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPourTous{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Tq\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tq{${1:condition}}{${2:bloc de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"lTq\",\n      \"if\": \"frenchkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lTq{${1:condition}}{${2:ligne de la boucle}}\"\n      }\n    },\n    {\n      \"name\": \"Ein\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ein{${1:Eingabe}}\"\n      }\n    },\n    {\n      \"name\": \"Aus\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aus{${1:Ausgabe}}\"\n      }\n    },\n    {\n      \"name\": \"Daten\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Daten{${1:Daten}}\"\n      }\n    },\n    {\n      \"name\": \"Ergebnis\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ergebnis{${1:Ergebnis}}\"\n      }\n    },\n    {\n      \"name\": \"Bis\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bis{${1:bis}}\"\n      }\n    },\n    {\n      \"name\": \"KwZurueck\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwZurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Zurueck\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Beginn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beginn{${1:Beginn}}\"\n      }\n    },\n    {\n      \"name\": \"Wiederh\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wiederh{${1:stop condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lWiederh\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWiederh{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eWenn{${1:condition}}{${2:then text}}{${3:else text}}\"\n      }\n    },\n    {\n      \"name\": \"Wenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wenn{${1:condition}}{${2:then text}}\"\n      }\n    },\n    {\n      \"name\": \"uWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uWenn{${1:condition}}{${2:then text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWenn{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"SonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SonstWenn{${1:condition}}{${2:elseif text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSonstWenn{${1:condition}}{${2:elseif text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonstWenn\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSonstWenn{${1:condition}}{${2:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"Sonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sonst{${1:else text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSonst{${1:else text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonst\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSonst{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Unterscheide\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterscheide{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Fall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"uFall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uFall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lFall\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFall{${1:case of}}{${2:line text}}\"\n      }\n    },\n    {\n      \"name\": \"Anderes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anderes{${1:default text}}\"\n      }\n    },\n    {\n      \"name\": \"lAnderes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAnderes{${1:default line}}\"\n      }\n    },\n    {\n      \"name\": \"Fuer\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fuer{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuer\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuer{${1:condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"FuerPar\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerPar{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerPar\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerPar{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerJedes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerJedes{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerJedes\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerJedes{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerAlle\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerAlle{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerAlle\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerAlle{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Solange\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Solange{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lSolange\",\n      \"if\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSolange{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Ein\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ein{${1:Eingabe}}\"\n      }\n    },\n    {\n      \"name\": \"Aus\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aus{${1:Ausgabe}}\"\n      }\n    },\n    {\n      \"name\": \"Daten\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Daten{${1:Daten}}\"\n      }\n    },\n    {\n      \"name\": \"Ergebnis\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ergebnis{${1:Ergebnis}}\"\n      }\n    },\n    {\n      \"name\": \"Bis\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bis{${1:bis}}\"\n      }\n    },\n    {\n      \"name\": \"KwZurueck\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwZurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Zurueck\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zurueck{${1:zurück}}\"\n      }\n    },\n    {\n      \"name\": \"Beginn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beginn{${1:Beginn}}\"\n      }\n    },\n    {\n      \"name\": \"Wiederh\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wiederh{${1:stop condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lWiederh\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWiederh{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eWenn{${1:condition}}{${2:then text}}{${3:else text}}\"\n      }\n    },\n    {\n      \"name\": \"Wenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wenn{${1:condition}}{${2:then text}}\"\n      }\n    },\n    {\n      \"name\": \"uWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uWenn{${1:condition}}{${2:then text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lWenn{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"SonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SonstWenn{${1:condition}}{${2:elseif text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSonstWenn{${1:condition}}{${2:elseif text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonstWenn\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSonstWenn{${1:condition}}{${2:elseif line}}\"\n      }\n    },\n    {\n      \"name\": \"Sonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sonst{${1:else text}}\"\n      }\n    },\n    {\n      \"name\": \"uSonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSonst{${1:else text without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSonst\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSonst{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Unterscheide\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterscheide{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Fall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"uFall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uFall{${1:case of}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lFall\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFall{${1:case of}}{${2:line text}}\"\n      }\n    },\n    {\n      \"name\": \"Anderes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anderes{${1:default text}}\"\n      }\n    },\n    {\n      \"name\": \"lAnderes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAnderes{${1:default line}}\"\n      }\n    },\n    {\n      \"name\": \"Fuer\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fuer{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuer\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuer{${1:condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"FuerPar\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerPar{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerPar\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerPar{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerJedes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerJedes{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerJedes\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerJedes{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"FuerAlle\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FuerAlle{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFuerAlle\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFuerAlle{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Solange\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Solange{${1:condition}}{${2:loop}}\"\n      }\n    },\n    {\n      \"name\": \"lSolange\",\n      \"if\": \"germankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSolange{${1:condition}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"Vst\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vyst\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vyst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vysl\",\n      \"if\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vysl{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vst\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vyst\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vyst{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Vysl\",\n      \"if\": \"czechkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vysl{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Saida\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Saida{${1:Saída}}\"\n      }\n    },\n    {\n      \"name\": \"Dados\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dados{${1:Dados}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Ate\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRetorna\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRetorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Retorna\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Repita\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repita{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRepita\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepita{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSe{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Se\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Se{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSe{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSe{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Senao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Senao{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSenao{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lSenao\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSenao{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"SenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SenaoSe{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSenaoSe{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSenaoSe\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSenaoSe{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Selec\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Selec{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:a case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCaso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCaso{${1:a case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:a case}}{${2:case’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Outro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Outro{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOutro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOutro{${1:otherwise’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPar\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPar\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Enqto\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lEnqto\",\n      \"if\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Saida\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Saida{${1:Saída}}\"\n      }\n    },\n    {\n      \"name\": \"Dados\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dados{${1:Dados}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Ate\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRetorna\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRetorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Retorna\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Repita\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repita{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRepita\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepita{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSe{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Se\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Se{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSe{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSe{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Senao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Senao{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSenao{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lSenao\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSenao{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"SenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SenaoSe{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSenaoSe{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSenaoSe\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSenaoSe{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Selec\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Selec{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:a case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCaso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCaso{${1:a case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:a case}}{${2:case’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Outro\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Outro{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOutro\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOutro{${1:otherwise’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPar\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPar\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Enqto\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lEnqto\",\n      \"if\": \"portuguesekw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwIng\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIng{${1:Ingresso}}\"\n      }\n    },\n    {\n      \"name\": \"KwUsc\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUsc{${1:Uscita}}\"\n      }\n    },\n    {\n      \"name\": \"KwDati\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDati{${1:Dati}}\"\n      }\n    },\n    {\n      \"name\": \"KwRisult\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRisult{${1:Risultato}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"italiano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRitorna\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRitorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Ritorna\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ritorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Inizio\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inizio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ripeti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ripeti{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRipeti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRipeti{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSea{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Sea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sea{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSea{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSea\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSea{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"AltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AltSe{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uAltSe{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lAltSe\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAltSe{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Altrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Altrimenti{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAltrimenti{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAltrimenti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAltrimenti{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Per\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Per{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPer\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPer{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerPar\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerPar\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerCiascun\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerCiascun{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerCiascun\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerCiascun{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerTutti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerTutti{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerTutti\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerTutti{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Finche\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Finche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFinche\",\n      \"if\": \"italiano\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFinche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwIng\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIng{${1:Ingresso}}\"\n      }\n    },\n    {\n      \"name\": \"KwUsc\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUsc{${1:Uscita}}\"\n      }\n    },\n    {\n      \"name\": \"KwDati\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDati{${1:Dati}}\"\n      }\n    },\n    {\n      \"name\": \"KwRisult\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRisult{${1:Risultato}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"italianokw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRitorna\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRitorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Ritorna\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ritorna{${1:ritorna}}\"\n      }\n    },\n    {\n      \"name\": \"Inizio\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inizio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ripeti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ripeti{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRipeti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRipeti{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSea{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Sea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sea{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSea{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSea\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSea{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"AltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AltSe{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uAltSe{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lAltSe\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lAltSe{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Altrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Altrimenti{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uAltrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAltrimenti{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAltrimenti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAltrimenti{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Per\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Per{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPer\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPer{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerPar\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerPar\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerCiascun\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerCiascun{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerCiascun\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerCiascun{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"PerTutti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PerTutti{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPerTutti\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPerTutti{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Finche\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Finche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lFinche\",\n      \"if\": \"italianokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lFinche{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Datos\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datos{${1:Datos}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Salida\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salida{${1:Salida}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwDevolver\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDevolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Devolver\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Devolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"eSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSSi{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"SSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSi{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSSi{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSSi{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uEnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCasoSi\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnOtroCasoSi{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnOtroCaso{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uEnOtroCaso{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lEnOtroCaso{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Seleccionar\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Seleccionar{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uSeleccionar\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSeleccionar{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:seleccionar}}{${2:caso line}}\"\n      }\n    },\n    {\n      \"name\": \"Otro\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Otro{${1:sinó block}}\"\n      }\n    },\n    {\n      \"name\": \"lOtro\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOtro{${1:sinó line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPara{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPara\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"EnParalelo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnParalelo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnParalelo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnParalelo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Mientras\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mientras{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lMientras\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lMientras{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Repetir\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repetir{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lRepetir\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepetir{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"Datos\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datos{${1:Datos}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Entrada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Salida\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salida{${1:Salida}}\"\n      }\n    },\n    {\n      \"name\": \"KwA\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwDevolver\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwDevolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Devolver\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Devolver{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"eSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSSi{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"SSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSi{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSSi{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSSi{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uEnOtroCasoSi{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCasoSi\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnOtroCasoSi{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"EnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnOtroCaso{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uEnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uEnOtroCaso{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lEnOtroCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lEnOtroCaso{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Seleccionar\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Seleccionar{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uSeleccionar\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSeleccionar{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:seleccionar}}{${2:caso block}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:seleccionar}}{${2:caso line}}\"\n      }\n    },\n    {\n      \"name\": \"Otro\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Otro{${1:sinó block}}\"\n      }\n    },\n    {\n      \"name\": \"lOtro\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOtro{${1:sinó line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPara{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPara\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPara{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"EnParalelo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnParalelo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lEnParalelo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnParalelo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Mientras\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mientras{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lMientras\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lMientras{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Repetir\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repetir{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lRepetir\",\n      \"if\": \"spanishkw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepetir{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"KwUlaz\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwIzlaz\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIzlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwPodatci\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwPodatci{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwRezultat\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRezultat{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwDo\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwVrati\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrati\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pocetak\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pocetak{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ponavljaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ponavljaj{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPonavljaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPonavljaj{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eAko{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Ako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ako{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAko{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAko{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"InaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uInaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uInaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lInaceAko\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lInaceAko{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"Inace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inace{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uInace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uInace{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lInace\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lInace{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Granaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Granaj{${1:condition}}{${2:Seleccionar caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uGranaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uGranaj{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Slucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Slucaj{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uSlucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSlucaj{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSlucaj\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSlucaj{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"OstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OstaliSlucajevi{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOstaliSlucajevi{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"uOstaliSlucajevi\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOstaliSlucajevi{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"Za\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Za{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZa\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZa{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaPar\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaPar{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaPar\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaPar{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaki\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaki{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaki\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaki{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaku\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaku{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaku\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaku{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvako{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvako\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvako{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSve\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSve{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSve\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSve{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Dok\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dok{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lDok\",\n      \"if\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lDok{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"KwUlaz\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwUlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwIzlaz\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwIzlaz{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwPodatci\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwPodatci{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwRezultat\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRezultat{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"KwDo\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwVrati\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrati\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pocetak\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pocetak{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Ponavljaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ponavljaj{${1:stop condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lPonavljaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPonavljaj{${1:stop condition}}{${2:line loop}}\"\n      }\n    },\n    {\n      \"name\": \"eAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eAko{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Ako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ako{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uAko{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lAko{${1:condition}}{${2:then line}}\"\n      }\n    },\n    {\n      \"name\": \"InaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uInaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uInaceAko{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"lInaceAko\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lInaceAko{${1:condition}}{${2:elseif line without end}}\"\n      }\n    },\n    {\n      \"name\": \"Inace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inace{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uInace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uInace{${1:else block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lInace\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lInace{${1:else line}}\"\n      }\n    },\n    {\n      \"name\": \"Granaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Granaj{${1:condition}}{${2:Seleccionar caso block}}\"\n      }\n    },\n    {\n      \"name\": \"uGranaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uGranaj{${1:seleccionar}}{${2:caso block without end}}\"\n      }\n    },\n    {\n      \"name\": \"Slucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Slucaj{${1:case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uSlucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSlucaj{${1:case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSlucaj\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSlucaj{${1:case}}{${2:case line}}\"\n      }\n    },\n    {\n      \"name\": \"OstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OstaliSlucajevi{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOstaliSlucajevi{${1:otherwise line}}\"\n      }\n    },\n    {\n      \"name\": \"uOstaliSlucajevi\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uOstaliSlucajevi{${1:otherwise text}}\"\n      }\n    },\n    {\n      \"name\": \"Za\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Za{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZa\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZa{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaPar\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaPar{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaPar\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaPar{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaki\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaki{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaki\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaki{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvaku\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvaku{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvaku\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvaku{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSvako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSvako{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSvako\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSvako{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"ZaSve\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZaSve{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lZaSve\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lZaSve{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"Dok\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dok{${1:condition}}{${2:loop block}}\"\n      }\n    },\n    {\n      \"name\": \"lDok\",\n      \"if\": \"croatiankw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lDok{${1:condition}}{${2:loop line}}\"\n      }\n    },\n    {\n      \"name\": \"algocfautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocffuncautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocfprocautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoendfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoheightrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoheightruledefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlgoLineautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algoplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmcflinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmcfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algotitleheightrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algotitleheightruledefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"functionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hlne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Indentp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Indentp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Indmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Indpp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inoutindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inoutsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InOutSizeDefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listalgorithmcfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofalgocfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"next\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"procedureautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetEndCharOfAlgoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetEndCharOfAlgoLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setLeftLinesNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetNothing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setRightLinesNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipalgocfslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiphlne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiptext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiptotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"test\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocfline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgocfproc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocffunc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHalgocfproc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHAlgoLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vespace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm2e\",\n      \"if\": \"algo2e\"\n    },\n    {\n      \"name\": \"algorithm2e\",\n      \"if\": \"algo2e\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"if\": \"algo2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"if\": \"algo2e\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"function\"\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"function*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"function*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"procedure\"\n    },\n    {\n      \"name\": \"procedure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"procedure*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"procedure*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algomathdisplay\"\n    },\n    {\n      \"name\": \"algocf*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocf*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algocf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algocf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/algorithm2e#c\": [\n      \"algo2e\",\n      \"algochapter\",\n      \"algonl\",\n      \"algopart\",\n      \"algoruled\",\n      \"algosection\",\n      \"boxed\",\n      \"boxruled\",\n      \"commentsnumbered\",\n      \"croatian\",\n      \"croatiankw\",\n      \"czech\",\n      \"czechkw\",\n      \"displayblockmarkers\",\n      \"displaygroupmarkers\",\n      \"dotocloa\",\n      \"endfloat\",\n      \"english\",\n      \"englishkw\",\n      \"figure\",\n      \"fillcomment\",\n      \"french\",\n      \"frenchkw\",\n      \"german\",\n      \"germankw\",\n      \"hangingcomment\",\n      \"hanginginout\",\n      \"inoutnumbered\",\n      \"italiano\",\n      \"italianokw\",\n      \"lined\",\n      \"linesnumbered\",\n      \"linesnumberedhidden\",\n      \"longend\",\n      \"ngerman\",\n      \"ngermankw\",\n      \"noalgohanging\",\n      \"noend\",\n      \"nofillcomment\",\n      \"nokwfunc\",\n      \"noline\",\n      \"norelsize\",\n      \"noresetcount\",\n      \"nosemicolon\",\n      \"oldcommands\",\n      \"onelanguage\",\n      \"plain\",\n      \"plainruled\",\n      \"portuguese\",\n      \"portuguesekw\",\n      \"procnumbered\",\n      \"resetcount\",\n      \"rightnl\",\n      \"ruled\",\n      \"scleft\",\n      \"shortend\",\n      \"slide\",\n      \"slovak\",\n      \"slovakkw\",\n      \"spanish\",\n      \"spanishkw\",\n      \"sright\",\n      \"titlenotnumbered\",\n      \"titlenumbered\",\n      \"turkish\",\n      \"turkishkw\",\n      \"tworuled\",\n      \"vlined\"\n    ],\n    \"\\\\RestyleAlgo\": [\n      \"plain\",\n      \"plainruled\",\n      \"boxed\",\n      \"ruled\",\n      \"algoruled\",\n      \"boxruled\",\n      \"tworuled\"\n    ],\n    \"\\\\tcc*,\\\\tcp*\": [\n      \"r\",\n      \"l\",\n      \"h\",\n      \"f\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algorithm2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/algorithmic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"STATE\"\n    },\n    {\n      \"name\": \"IF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IF{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ENDIF\"\n    },\n    {\n      \"name\": \"ELSE\"\n    },\n    {\n      \"name\": \"ELSIF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ELSIF{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"FOR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FOR{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ENDFOR\"\n    },\n    {\n      \"name\": \"FORALL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FORALL{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"TO\"\n    },\n    {\n      \"name\": \"WHILE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WHILE{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ENDWHILE\"\n    },\n    {\n      \"name\": \"REPEAT\"\n    },\n    {\n      \"name\": \"UNTIL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UNTIL{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"LOOP\"\n    },\n    {\n      \"name\": \"ENDLOOP\"\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"XOR\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"REQUIRE\"\n    },\n    {\n      \"name\": \"ENSURE\"\n    },\n    {\n      \"name\": \"RETURN\"\n    },\n    {\n      \"name\": \"TRUE\"\n    },\n    {\n      \"name\": \"FALSE\"\n    },\n    {\n      \"name\": \"PRINT\"\n    },\n    {\n      \"name\": \"COMMENT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"COMMENT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\algsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"STMT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"INPUTS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"INPUTS{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ENDINPUTS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OUTPUTS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OUTPUTS{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ENDOUTPUTS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GLOBALS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BODY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BODY{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ENDBODY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrequire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicensure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmiccomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algorithmiccomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmicend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicelsif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicendif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicforall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicdo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicendfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicendwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicendloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicuntil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicreturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicxor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicnot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicinputs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicoutputs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicglobals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmictrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithmic\"\n    },\n    {\n      \"name\": \"algorithmic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\algsetup\": [\n      \"indent=\",\n      \"linenosize=\",\n      \"linenodelimiter=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algorithmicx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"State\"\n    },\n    {\n      \"name\": \"Statex\"\n    },\n    {\n      \"name\": \"BState\"\n    },\n    {\n      \"name\": \"Comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algref{${1:algorithm%ref}}{${2:line%ref}}\"\n      }\n    },\n    {\n      \"name\": \"algstore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algstore{${1:savename}}\"\n      }\n    },\n    {\n      \"name\": \"algstore*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algstore*{${1:savename}}\"\n      }\n    },\n    {\n      \"name\": \"algrestore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algrestore{${1:savename}}\"\n      }\n    },\n    {\n      \"name\": \"algrestore*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algrestore*{${1:savename}}\"\n      }\n    },\n    {\n      \"name\": \"alglanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alglanguage{${1:layoutname}}\"\n      }\n    },\n    {\n      \"name\": \"algnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"algnewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"algnewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algnewcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"algrenewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"algrenewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algrenewcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"algrenewcommand[${3:block}]{${1:cmd}}[${4:args}][${5:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmiccomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algorithmiccomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmicindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alglinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alglinenumber{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"algsetlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algsetlanguage{${1:layoutname}}\"\n      }\n    },\n    {\n      \"name\": \"algdeflanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algdeflanguage{${1:layoutname}}\"\n      }\n    },\n    {\n      \"name\": \"algnewlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algnewlanguage{${1:layoutname}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algrenewcomment{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"algblock[${3:block}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"algblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}[]{}\",\n        \"snippet\": \"algblockdefx[${5:block}]{${1:start}}{${2:end}}[${6:start args}]{${3:start text}}[${7:end args}]{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}[][]{}\",\n        \"snippet\": \"algblockdefx[${5:block}]{${1:start}}{${2:end}}[${6:start args}][${7:default}]{${3:start text}}[${8:end args}][${9:default}]{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}[]{}\",\n        \"snippet\": \"algblockx[${5:block}]{${1:start}}{${2:end}}[${6:start args}]{${3:start text}}[${7:end args}]{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}[][]{}\",\n        \"snippet\": \"algblockx[${5:block}]{${1:start}}{${2:end}}[${6:start args}][${7:default}]{${3:start text}}[${8:end args}][${9:default}]{${4:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"algloop[${2:loop}]{${1:start}}\"\n      }\n    },\n    {\n      \"name\": \"algloopdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"algloopdefx[${3:loop}]{${1:start}}[${4:start args}][${5:default}]{${2:start text}}\"\n      }\n    },\n    {\n      \"name\": \"algcblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"algcblock[${4:new block}]{${1:old block}}{${2:continue}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"algcblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]{}[]{}\",\n        \"snippet\": \"algcblockdefx[${6:new block}]{${1:old block}}{${2:continue}}{${3:end}}[${7:continue args}]{${4:continue text}}[${8:end args}]{${5:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algcblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algcblockdefx[${6:new block}]{${1:old block}}{${2:continue}}{${3:end}}[${7:continue args}][${8:default}]{${4:continue text}}[${9:end args}][${10:default}]{${5:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algcblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algcblockx[${6:new block}]{${1:old block}}{${2:continue}}{${3:end}}[${7:continue args}][${8:default}]{${4:continue text}}[${9:end args}][${10:default}]{${5:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algcblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]{}[]{}\",\n        \"snippet\": \"algcblockx[${6:new block}]{${1:old block}}{${2:continue}}{${3:end}}[${7:continue args}]{${4:continue text}}[${8:end args}]{${5:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algcloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"algcloop[${3:new loop}]{${1:old loop}}{${2:continue}}\"\n      }\n    },\n    {\n      \"name\": \"algcloopdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"algcloopdefx[${4:new loop}]{${1:old loop}}{${2:continue}}[${5:continue args}]{${3:continue text}}\"\n      }\n    },\n    {\n      \"name\": \"algcloopdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}\",\n        \"snippet\": \"algcloopdefx[${4:new loop}]{${1:old loop}}{${2:continue}}[${5:continue args}][${6:default}]{${3:continue text}}\"\n      }\n    },\n    {\n      \"name\": \"algcloopx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"algcloopx[${4:new loop}]{${1:old loop}}{${2:continue}}[${5:continue args}]{${3:continue text}}\"\n      }\n    },\n    {\n      \"name\": \"algcloopx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}\",\n        \"snippet\": \"algcloopx[${4:new loop}]{${1:old loop}}{${2:continue}}[${5:continue args}][${6:default}]{${3:continue text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"algsetblock[${5:block}]{${1:start}}{${2:end}}{${3:lifetime}}{${4:indent}}\"\n      }\n    },\n    {\n      \"name\": \"algsetblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algsetblockdefx[${7:block}]{${1:start}}{${2:end}}{${3:lifetime}}{${4:indent}}[${8:start args}][${9:default}]{${5:start text}}[${10:end args}][${11:default}]{${6:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]{}[]{}\",\n        \"snippet\": \"algsetblockdefx[${7:block}]{${1:start}}{${2:end}}{${3:lifetime}}{${4:indent}}[${8:start args}]{${5:start text}}[${9:end args}]{${6:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]{}[]{}\",\n        \"snippet\": \"algsetblockx[${7:block}]{${1:start}}{${2:end}}{${3:lifetime}}{${4:indent}}[${8:start args}]{${5:start text}}[${9:end args}]{${6:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algsetblockx[${7:block}]{${1:start}}{${2:end}}{${3:lifetime}}{${4:indent}}[${8:start args}][${9:default}]{${5:start text}}[${10:end args}][${11:default}]{${6:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetcblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"algsetcblock[${6:new block}]{${1:old block}}{${2:continue}}{${3:end}}{${4:lifetime}}{${5:indent}}\"\n      }\n    },\n    {\n      \"name\": \"algsetcblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}[]{}[]{}\",\n        \"snippet\": \"algsetcblockdefx[${8:new block}]{${1:old block}}{${2:continue}}{${3:end}}{${4:lifetime}}{${5:indent}}[${9:continue args}]{${6:continue text}}[${10:end args}]{${7:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetcblockdefx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algsetcblockdefx[${8:new block}]{${1:old block}}{${2:continue}}{${3:end}}{${4:lifetime}}{${5:indent}}[${9:continue args}][${10:default}]{${6:continue text}}[${11:end args}][${12:default}]{${7:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetcblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}[]{}[]{}\",\n        \"snippet\": \"algsetcblockx[${8:new block}]{${1:old block}}{${2:continue}}{${3:end}}{${4:lifetime}}{${5:indent}}[${9:continue args}]{${6:continue text}}[${10:end args}]{${7:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algsetcblockx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algsetcblockx[${8:new block}]{${1:old block}}{${2:continue}}{${3:end}}{${4:lifetime}}{${5:indent}}[${9:continue args}][${10:default}]{${6:continue text}}[${11:end args}][${12:default}]{${7:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algnotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algnotext{${1:ending command}}\"\n      }\n    },\n    {\n      \"name\": \"algnotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"algnotext[${2:block}]{${1:ending command}}\"\n      }\n    },\n    {\n      \"name\": \"algdefaulttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algdefaulttext{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"algdefaulttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"algdefaulttext[${2:block}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algrenewtext{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algrenewtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"algrenewtext{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"algtext{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"algtext{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"algdef{${1:flags}}{${2:old block}}{${3:start}}{${4:end}}{${5:lifetime}}{${6:indent}}{${7:start text}}{${8:end text}}\"\n      }\n    },\n    {\n      \"name\": \"algdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}[][]{}[][]{}\",\n        \"snippet\": \"algdef{${1:flags}}[${9:new block}]{${2:old block}}{${3:start}}{${4:end}}{${5:lifetime}}{${6:indent}}[${10:start args}][${11:default}]{${7:start text}}[${12:end args}][${13:default}]{${8:end text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithmic\"\n    },\n    {\n      \"name\": \"algorithmic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algpascal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algorithmicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Begin\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"For{${1:assign%formula}}{${2:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"While{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Repeat\"\n    },\n    {\n      \"name\": \"Until\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Until{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"If{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"Procedure\"\n    },\n    {\n      \"name\": \"Function\"\n    },\n    {\n      \"name\": \"textkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkeyword{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/algpseudocode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"algcompatible\",\n      \"if\": \"compatible\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"For{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"EndFor\"\n    },\n    {\n      \"name\": \"ForAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForAll{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"While{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"EndWhile\"\n    },\n    {\n      \"name\": \"Repeat\"\n    },\n    {\n      \"name\": \"Until\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Until{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"If{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ElsIf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ElsIf{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"EndIf\"\n    },\n    {\n      \"name\": \"Procedure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Procedure{${1:name}}{${2:params}}\"\n      }\n    },\n    {\n      \"name\": \"EndProcedure\"\n    },\n    {\n      \"name\": \"Function\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Function{${1:name}}{${2:params}}\"\n      }\n    },\n    {\n      \"name\": \"EndFunction\"\n    },\n    {\n      \"name\": \"Loop\"\n    },\n    {\n      \"name\": \"EndLoop\"\n    },\n    {\n      \"name\": \"Require\"\n    },\n    {\n      \"name\": \"Ensure\"\n    },\n    {\n      \"name\": \"Call\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Call{${1:name}}{${2:params}}\"\n      }\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"algorithmicend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicdo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicforall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicuntil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicprocedure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrequire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicensure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicreturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textproc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textproc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/algpseudocode#c\": [\n      \"noend\",\n      \"end\",\n      \"compatible\",\n      \"noncompatible\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algpseudocode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/algpseudocodex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fifo-stack\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tabto\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Call\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Call{${1:name}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"Output\"\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"While{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"EndWhile\"\n    },\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"For{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForAll{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"EndFor\"\n    },\n    {\n      \"name\": \"Loop\"\n    },\n    {\n      \"name\": \"EndLoop\"\n    },\n    {\n      \"name\": \"Repeat\"\n    },\n    {\n      \"name\": \"Until\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Until{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"If{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ElsIf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ElsIf{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"EndIf\"\n    },\n    {\n      \"name\": \"Procedure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Procedure{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"EndProcedure\"\n    },\n    {\n      \"name\": \"Function\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Function{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"EndFunction\"\n    },\n    {\n      \"name\": \"Require\"\n    },\n    {\n      \"name\": \"Ensure\"\n    },\n    {\n      \"name\": \"LComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LComment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BeginBox\"\n    },\n    {\n      \"name\": \"BeginBox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BeginBox[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"EndBox\"\n    },\n    {\n      \"name\": \"BoxedString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BoxedString{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BoxedString\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BoxedString[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmicend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicdo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicforall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicuntil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicprocedure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicrequire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicensure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicreturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicoutput\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/algpseudocodex#c\": [\n      \"noEnd\",\n      \"indLines\",\n      \"spaceRequire\",\n      \"italicComments\",\n      \"rightComments\",\n      \"commentColor=\",\n      \"beginComment=${1:text}\",\n      \"endComment=${1:text}\",\n      \"beginLComment=${1:text}\",\n      \"endLComment=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algpseudocodex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/algxpar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Statep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Statep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Statep\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Statep{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"If\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"If{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndIf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndIf[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Else\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Else[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Elsif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Elsif{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Elsif\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Elsif{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Switch{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"Switch\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Switch{${1:expression}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndSwitch\"\n    },\n    {\n      \"name\": \"EndSwitch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndSwitch[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Case{${1:constant-list}}\"\n      }\n    },\n    {\n      \"name\": \"Case\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Case{${1:constant-list}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndCase\"\n    },\n    {\n      \"name\": \"EndCase\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndCase[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Otherwise\"\n    },\n    {\n      \"name\": \"Otherwise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Otherwise[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndOtherwise\"\n    },\n    {\n      \"name\": \"EndOtherwise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndOtherwise[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"For\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"For{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndFor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndFor[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEach{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ForEach\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ForEach{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"ForAll\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ForAll{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"While\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"While{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndWhile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndWhile[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Repeat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Repeat[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Until\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Until{${1:text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Loop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Loop[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndLoop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndLoop[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"To\"\n    },\n    {\n      \"name\": \"DownTo\"\n    },\n    {\n      \"name\": \"Step\"\n    },\n    {\n      \"name\": \"Continue\"\n    },\n    {\n      \"name\": \"Break\"\n    },\n    {\n      \"name\": \"True\"\n    },\n    {\n      \"name\": \"False\"\n    },\n    {\n      \"name\": \"Nil\"\n    },\n    {\n      \"name\": \"Id\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Id{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"Read\"\n    },\n    {\n      \"name\": \"Write\"\n    },\n    {\n      \"name\": \"Procedure\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Procedure{${1:name}}{${2:params}}[${3:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"EndProcedure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EndProcedure[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Function\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Function{${1:name}}{${2:params}}[${3:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Commentl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Commentl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CommentIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentIn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlgSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlgSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{algorithmic},\\\\Statep,\\\\If,\\\\EndIf,\\\\Else,\\\\Elsif,\\\\Switch,\\\\EndSwitch,\\\\Case,\\\\EndCase,\\\\Otherwise,\\\\EndOtherwise,\\\\For,\\\\EndFor,\\\\ForEach,\\\\ForAll,\\\\While,\\\\EndWhile,\\\\Repeat,\\\\Until,\\\\Loop,\\\\EndLoop,\\\\Procedure,\\\\EndProcedure,\\\\Function,\\\\Call,\\\\Comment,\\\\Commentl,\\\\CommentIn,\\\\AlgSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CommentSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CommentSymbolRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlgLanguageSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AlgLanguageSet{${1:language}}{${2:keyword assignments}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeyword\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetKeyword{${1:keyword}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeyword\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetKeyword[${3:language}]{${1:keyword}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"Keyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Keyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"Keyword\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Keyword[${2:language}]{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"Constant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Constant{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Module\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Module{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/algxpar#c\": [\n      \"brazilian\",\n      \"language=${1|english,brazilian|}\",\n      \"noend\"\n    ],\n    \"\\\\begin{algorithmic},\\\\Statep,\\\\If,\\\\EndIf,\\\\Else,\\\\Elsif,\\\\Switch,\\\\EndSwitch,\\\\Case,\\\\EndCase,\\\\Otherwise,\\\\EndOtherwise,\\\\For,\\\\EndFor,\\\\ForEach,\\\\ForAll,\\\\While,\\\\EndWhile,\\\\Repeat,\\\\Until,\\\\Loop,\\\\EndLoop,\\\\Procedure,\\\\EndProcedure,\\\\Function,\\\\Call,\\\\Comment,\\\\Commentl,\\\\CommentIn,\\\\AlgSet\": [\n      \"language=${1|english,brazilian|}\",\n      \"noend\",\n      \"end\",\n      \"keywords={${1:assignments}}\",\n      \"algorithmic indent=\",\n      \"comment symbol=${1:symbol}\",\n      \"comment symbol right=${1:symbol}\",\n      \"text font=${1:font commands}\",\n      \"comment font=${1:font commands}\",\n      \"keyword font=${1:font commands}\",\n      \"constant font=${1:font commands}\",\n      \"module font=${1:font commands}\",\n      \"text color=\",\n      \"comment color=\",\n      \"keyword color=\",\n      \"constant color=\",\n      \"module color=\",\n      \"text style=${1:style}\",\n      \"comment style=${1:style}\",\n      \"comment separator width=\",\n      \"statement indent=\",\n      \"parameter indent=\",\n      \"comment width=${1:auto|nice|⟨width⟩}\",\n      \"show boxes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/algxpar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aliascnt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newaliascnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newaliascnt{${1:aliascnt}}{${2:origcnt}}\"\n      }\n    },\n    {\n      \"name\": \"aliascntresetthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aliascntresetthe{${1:aliascnt}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aliphat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"DtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Dtrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dtrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Dtrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dtrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Ethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethyleneh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ethyleneh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethyleneh\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Ethyleneh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethylenev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ethylenev{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ethylenev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Ethylenev[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"LtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"LtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ltrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ltrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Ltrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ltrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"RtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"RtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Rtrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rtrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Rtrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rtrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"UtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"UtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Utrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Utrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Utrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Utrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"divalenth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"divalenth{${1:divalskel}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtetrastereo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtetrastereo{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtetrastereo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dtetrastereo[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dtrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtrigpyramid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtrigpyramid{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dtrigpyramid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dtrigpyramid[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethanestereo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ethanestereo{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethanestereo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ethanestereo[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethyleneh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ethyleneh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethyleneh\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ethyleneh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethylenev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ethylenev{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ethylenev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ethylenev[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"htetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"htetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"htetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ltetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ltetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ltetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ltrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ltrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ltrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"rtetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"rtetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rtetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"rtrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"rtrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rtrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"squareplanar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squareplanar{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"squareplanar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"squareplanar[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetrahedral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetrahedral{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetrahedral\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetrahedral[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetrastereo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetrastereo{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetrastereo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetrastereo[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utetrahedralS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utetrahedralS{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utetrahedralS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"utetrahedralS[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utrigonal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utrigonal{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utrigonal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"utrigonal[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utrigpyramid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utrigpyramid{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"utrigpyramid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"utrigpyramid[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allauncl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"auncial\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allcmin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"carolmin\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allegoth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"egothic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allhmin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"humanist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allhuncl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"huncial\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allimaj.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inslrmaj\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allimin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inslrmin\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allpgoth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgothic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allrtnd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"rotunda\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allrunes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bar\",\n      \"detail\": \" ̄\",\n      \"doc\": \"Macron\"\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"dot\",\n      \"detail\": \" ̇\",\n      \"doc\": \"\\\\dot (wrisym), dot above\"\n    },\n    {\n      \"name\": \"doublebar\"\n    },\n    {\n      \"name\": \"doublecross\"\n    },\n    {\n      \"name\": \"doubledot\"\n    },\n    {\n      \"name\": \"doubleeye\"\n    },\n    {\n      \"name\": \"doubleplus\",\n      \"detail\": \"⧺\",\n      \"doc\": \"Double plus\"\n    },\n    {\n      \"name\": \"eye\"\n    },\n    {\n      \"name\": \"pentdot\"\n    },\n    {\n      \"name\": \"penteye\"\n    },\n    {\n      \"name\": \"plus\",\n      \"detail\": \"+\",\n      \"doc\": \"Plus sign\"\n    },\n    {\n      \"name\": \"quaddot\"\n    },\n    {\n      \"name\": \"quadeye\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"triplebar\"\n    },\n    {\n      \"name\": \"triplecross\"\n    },\n    {\n      \"name\": \"tripledot\"\n    },\n    {\n      \"name\": \"tripleeye\"\n    },\n    {\n      \"name\": \"tripleplus\",\n      \"detail\": \"⧻\",\n      \"doc\": \"Triple plus\"\n    },\n    {\n      \"name\": \"a\"\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"adot\"\n    },\n    {\n      \"name\": \"arlaug\"\n    },\n    {\n      \"name\": \"belgthor\"\n    },\n    {\n      \"name\": \"d\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"ea\"\n    },\n    {\n      \"name\": \"ey\"\n    },\n    {\n      \"name\": \"g\"\n    },\n    {\n      \"name\": \"G\"\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ING\"\n    },\n    {\n      \"name\": \"ing\"\n    },\n    {\n      \"name\": \"Ing\"\n    },\n    {\n      \"name\": \"j\"\n    },\n    {\n      \"name\": \"k\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"lbar\"\n    },\n    {\n      \"name\": \"ldot\"\n    },\n    {\n      \"name\": \"lflag\"\n    },\n    {\n      \"name\": \"lring\"\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"n\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"ndot\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"oo\"\n    },\n    {\n      \"name\": \"oO\"\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"Pdots\"\n    },\n    {\n      \"name\": \"q\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"rdot\"\n    },\n    {\n      \"name\": \"rex\"\n    },\n    {\n      \"name\": \"RR\"\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"seight\"\n    },\n    {\n      \"name\": \"sfive\"\n    },\n    {\n      \"name\": \"sfour\"\n    },\n    {\n      \"name\": \"sseven\"\n    },\n    {\n      \"name\": \"ssix\"\n    },\n    {\n      \"name\": \"stan\"\n    },\n    {\n      \"name\": \"STAN\"\n    },\n    {\n      \"name\": \"sthree\"\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"tbar\"\n    },\n    {\n      \"name\": \"tdot\"\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"tflag\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"thth\"\n    },\n    {\n      \"name\": \"tring\"\n    },\n    {\n      \"name\": \"tvimadur\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"X\"\n    },\n    {\n      \"name\": \"y\"\n    },\n    {\n      \"name\": \"Y\"\n    },\n    {\n      \"name\": \"z\"\n    },\n    {\n      \"name\": \"textarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arcfamily\"\n    },\n    {\n      \"name\": \"textara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textara{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arafamily\"\n    },\n    {\n      \"name\": \"textarn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arnfamily\"\n    },\n    {\n      \"name\": \"textart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"artfamily\"\n    },\n    {\n      \"name\": \"textarl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"arlfamily\"\n    },\n    {\n      \"name\": \"textarm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armfamily\"\n    },\n    {\n      \"name\": \"bfseries\"\n    },\n    {\n      \"name\": \"mdseries\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfseries\"\n    },\n    {\n      \"name\": \"textwil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwil{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"withlines\"\n    },\n    {\n      \"name\": \"textwol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"withoutlines\"\n    },\n    {\n      \"name\": \"textst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"straighttwigs\"\n    },\n    {\n      \"name\": \"textcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"curvedtwigs\"\n    },\n    {\n      \"name\": \"textro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"roundedtwigs\"\n    },\n    {\n      \"name\": \"texthi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hightwigs\"\n    },\n    {\n      \"name\": \"textlo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lowtwigs\"\n    },\n    {\n      \"name\": \"hflip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hflip{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"vflip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vflip{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turn{${1:rune}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShapeWithSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareFontShapeWithSizes{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}\"\n      }\n    },\n    {\n      \"name\": \"lfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rodefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rwdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareRuneSeparators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRuneSeparators{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"artdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arndefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aradefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allrust.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"rustic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/allsqrc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"sqrcaps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alltgoth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tgothic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmrfamily\"\n    },\n    {\n      \"name\": \"cmssfamily\"\n    },\n    {\n      \"name\": \"cmttfamily\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmtt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alltt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"alltt\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/almendra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"almendra\"\n    },\n    {\n      \"name\": \"almendrafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/almendra#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/almendra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/alnumsec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alnumsecstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alnumsecstyle{${1:specifiers}}\"\n      }\n    },\n    {\n      \"name\": \"alnumsectionlevels\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alnumsectionlevels{${1:level}}{${2:list of section csnames}}\"\n      }\n    },\n    {\n      \"name\": \"otherseparators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"otherseparators{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"surroundRoman\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundRoman{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundRoman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundRoman[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundRoman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundRoman[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundroman\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundroman{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundroman[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundroman[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundarabic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundarabic{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundarabic[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundarabic[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundLetter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundLetter{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundLetter[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundLetter[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundletter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundletter{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundletter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundletter[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundletter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundletter[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundgreek\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surroundgreek{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surroundgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surroundgreek[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surroundgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surroundgreek[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoubleletter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surrounddoubleletter{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoubleletter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surrounddoubleletter[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoubleletter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surrounddoubleletter[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoublegreek\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surrounddoublegreek{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoublegreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"surrounddoublegreek[${3:before2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"surrounddoublegreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"surrounddoublegreek[${3:before2}][${4:after2}]{${1:before1}}{${2:after1}}\"\n      }\n    },\n    {\n      \"name\": \"ifusepreviouslevels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usepreviouslevelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usepreviouslevelsfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/alnumsec#c\": [\n      \"usehighlevels\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/alnumsec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/alphabeta.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textalpha\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maththeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathvarTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"finalsigma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"varstigma\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Koppa\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"Qoppa\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"betasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhosymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetasymbol\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/alphabeta#c\": [\n      \"normalize-symbols\",\n      \"keep-semicolon\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/alphabeta#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/alphalph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AlphAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlphAlph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"alphalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alphalph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"newalphalph\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newalphalph{${1:cmd}}{${2:symbols provider}}{${3:num of symbols}}\"\n      }\n    },\n    {\n      \"name\": \"newalphalph\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newalphalph{${1:cmd}}[${4:method%keyvals}]{${2:symbols provider}}{${3:num of symbols}}\",\n        \"keys\": [\n          \"\\\\newalphalph\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newalphalph\": [\n      \"alph\",\n      \"wrap\",\n      \"mult\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/alterqcm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AQmessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AQmessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AQms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AQms(${1:height},${2:depth})\"\n      }\n    },\n    {\n      \"name\": \"InputQuestionList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"InputQuestionList{${1:filepath%file}}{${2:prefix}}{${3:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AQannexe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AQannexe{${1:start}}{${2:end}}{${3:number of props}}\"\n      }\n    },\n    {\n      \"name\": \"AQannexe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"AQannexe[${4:options%keyvals}]{${1:start}}{${2:end}}{${3:number of props}}\",\n        \"keys\": [\n          \"\\\\AQannexe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AQpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AQpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingsquare\"\n    },\n    {\n      \"name\": \"dingchecksquare\"\n    },\n    {\n      \"name\": \"aqlabelforquest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqlabelforrep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqfoottext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"points\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"aqheightadvance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqdepthadvance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqpretxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqpretxtVF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqtextfortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aqtextforfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alterqcm\"\n    },\n    {\n      \"name\": \"alterqcm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{alterqcm}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/alterqcm#c\": [\n      \"french\",\n      \"english\",\n      \"german\",\n      \"greek\",\n      \"russian\",\n      \"italian\",\n      \"chinese\",\n      \"unknown\"\n    ],\n    \"\\\\begin{alterqcm}\": [\n      \"lq=\",\n      \"pq=\",\n      \"bonus=\",\n      \"malus=\",\n      \"numbreak=\",\n      \"points=\",\n      \"symb=\",\n      \"corsymb=\",\n      \"numstyle=\",\n      \"propstyle=\",\n      \"size=${1:fontsize cmd}\",\n      \"afterpreskip=\",\n      \"long\",\n      \"sep\",\n      \"pre\",\n      \"VF\",\n      \"numprop\",\n      \"num\",\n      \"nosquare\",\n      \"title\",\n      \"correction\",\n      \"alea\",\n      \"tone=${1:text}\",\n      \"ttwo=${1:text}\",\n      \"language=${1|english,german,greek,italian,russian,chinese,unknown|}\",\n      \"transparent\"\n    ],\n    \"\\\\AQquestion\": [\n      \"pq=\",\n      \"br=\"\n    ],\n    \"\\\\AQannexe\": [\n      \"VF\",\n      \"propstyle=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/alterqcm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/altfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AvailableRMFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableRMFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableRMFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableRMFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableSFFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableSFFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableSFFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableSFFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableTTFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableTTFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableTTFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableTTFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AvailableFont{${1:symbolic name}}{${2:rm font}}{${3:sf font}}{${4:tt font}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"AvailableFont[${5:additional code}]{${1:symbolic name}}{${2:rm font}}{${3:sf font}}{${4:tt font}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultRMFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultRMFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultSFFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultSFFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultTTFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultTTFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"altfontenc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altfontenc{${1:encoding}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/altsubsup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"spbmark\",\n      \"if\": \"spbmark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetAltSubscriptCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAltSubscriptCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetAltSuperscriptCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAltSuperscriptCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetAltSubSupCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAltSubSupCommands{${1:command}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/altsubsup#c\": [\n      \"subscript\",\n      \"superscript\",\n      \"both\",\n      \"spbmark\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/altsubsup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/altverse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xtab\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Vbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vbreak{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"Vindent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Vindent[${1:inches}]\"\n      }\n    },\n    {\n      \"name\": \"Vhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"Vhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vhead[${2:short header%text}]{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"VCtitle\"\n    },\n    {\n      \"name\": \"Vctitle\"\n    },\n    {\n      \"name\": \"VLtitle\"\n    },\n    {\n      \"name\": \"Vstars\"\n    },\n    {\n      \"name\": \"Vsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vsub{${1:subheader%text}}\"\n      }\n    },\n    {\n      \"name\": \"Vto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vto{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"Vat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vat{${1:annotation%text}}\"\n      }\n    },\n    {\n      \"name\": \"VheadFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VheadSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VtoFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VatFormat\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Verse\"\n    },\n    {\n      \"name\": \"Verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:line prefix code}]\"\n      }\n    },\n    {\n      \"name\": \"VERSE\"\n    },\n    {\n      \"name\": \"VERSE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:line prefix code}]\"\n      }\n    },\n    {\n      \"name\": \"Verse*\"\n    },\n    {\n      \"name\": \"Verse*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:line prefix code}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ams-mdbch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"udtimes\"\n    },\n    {\n      \"name\": \"utimes\"\n    },\n    {\n      \"name\": \"dtimes\"\n    },\n    {\n      \"name\": \"digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappait\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsaddr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short name}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"emails\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/amsaddr#c\": [\n      \"foot\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsaddr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amsbib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RBibitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RBibitem{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"RBibitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RBibitem[${2:label}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"Bibitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bibitem{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"Bibitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bibitem[${2:label}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"adsnasa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adsnasa{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"arxiv\"\n    },\n    {\n      \"name\": \"book\"\n    },\n    {\n      \"name\": \"bookinfo\"\n    },\n    {\n      \"name\": \"bookvol\"\n    },\n    {\n      \"name\": \"bookvols\"\n    },\n    {\n      \"name\": \"by\"\n    },\n    {\n      \"name\": \"byy\"\n    },\n    {\n      \"name\": \"crossref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crossref{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ed\"\n    },\n    {\n      \"name\": \"edition\"\n    },\n    {\n      \"name\": \"eds\"\n    },\n    {\n      \"name\": \"elink\"\n    },\n    {\n      \"name\": \"eprint\"\n    },\n    {\n      \"name\": \"eprintinfo\"\n    },\n    {\n      \"name\": \"finalbookinfo\"\n    },\n    {\n      \"name\": \"finalinfo\"\n    },\n    {\n      \"name\": \"hrarxiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hrarxiv{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"inbook\"\n    },\n    {\n      \"name\": \"isbn\"\n    },\n    {\n      \"name\": \"isi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isi{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"issue\"\n    },\n    {\n      \"name\": \"issueinfo\"\n    },\n    {\n      \"name\": \"jour\"\n    },\n    {\n      \"name\": \"journalname\"\n    },\n    {\n      \"name\": \"lang\"\n    },\n    {\n      \"name\": \"mathnet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathnet{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"mathscinet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathscinet{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"miscnote\"\n    },\n    {\n      \"name\": \"monthissue\"\n    },\n    {\n      \"name\": \"moreref\"\n    },\n    {\n      \"name\": \"morerref\"\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"nofrills\"\n    },\n    {\n      \"name\": \"page\"\n    },\n    {\n      \"name\": \"pages\"\n    },\n    {\n      \"name\": \"paper\"\n    },\n    {\n      \"name\": \"paperinfo\"\n    },\n    {\n      \"name\": \"papernumber\"\n    },\n    {\n      \"name\": \"preprint\"\n    },\n    {\n      \"name\": \"preprintinfo\"\n    },\n    {\n      \"name\": \"proc\"\n    },\n    {\n      \"name\": \"procinfo\"\n    },\n    {\n      \"name\": \"ptype\"\n    },\n    {\n      \"name\": \"publ\"\n    },\n    {\n      \"name\": \"publaddr\"\n    },\n    {\n      \"name\": \"publaddrr\"\n    },\n    {\n      \"name\": \"publaddrrr\"\n    },\n    {\n      \"name\": \"publl\"\n    },\n    {\n      \"name\": \"publll\"\n    },\n    {\n      \"name\": \"rtransl\"\n    },\n    {\n      \"name\": \"scopus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scopus{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"serial\"\n    },\n    {\n      \"name\": \"serissue\"\n    },\n    {\n      \"name\": \"thesis\"\n    },\n    {\n      \"name\": \"thesisinfo\"\n    },\n    {\n      \"name\": \"toappear\"\n    },\n    {\n      \"name\": \"totalpages\"\n    },\n    {\n      \"name\": \"transl\"\n    },\n    {\n      \"name\": \"vol\"\n    },\n    {\n      \"name\": \"volinfo\"\n    },\n    {\n      \"name\": \"voltitle\"\n    },\n    {\n      \"name\": \"yr\"\n    },\n    {\n      \"name\": \"zmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zmath{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsbooka.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"barefootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barefootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partauthor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"inchapterbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/amsbooka#c\": [\n      \"rhchapnum\",\n      \"rhchapsec\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsbooka#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amsbsy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boldsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"pmb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmb{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amscd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"minCDarrowwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CD\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amscdx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CDlor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CDlor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"minCDarrowwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflyx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCDfat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CDfattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CDfatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CDashtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CDashfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CD\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/amscdx#c\": [\n      \"lyx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amscdx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amsfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"amsopn\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allowdisplaybreaks\"\n    },\n    {\n      \"name\": \"allowdisplaybreaks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"allowdisplaybreaks[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"And\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"binom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"boxed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxed{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"cfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cfrac[${3:align}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"cfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"dbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"displaybreak\"\n    },\n    {\n      \"name\": \"displaybreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"displaybreak[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"DOTSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOTSI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOTSX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsb\"\n    },\n    {\n      \"name\": \"dotsc\"\n    },\n    {\n      \"name\": \"dotsi\"\n    },\n    {\n      \"name\": \"dotsm\"\n    },\n    {\n      \"name\": \"dotso\"\n    },\n    {\n      \"name\": \"endmathdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endmathdisplay{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"eqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"genfrac\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"genfrac{${1:left-delim}}{${2:right-delim}}{${3:thickness%l}}{${4:mathstyle}}{${5:numerator}}{${6:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"hdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hdotsfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hdotsfor{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"hdotsfor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hdotsfor[${2:multiplier}]{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"impliedby\"\n    },\n    {\n      \"name\": \"implies\"\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:word or phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftroot{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lvert\"\n    },\n    {\n      \"name\": \"lVert\"\n    },\n    {\n      \"name\": \"mathdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdisplay{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"mintagsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minalignsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mod\"\n    },\n    {\n      \"name\": \"mspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspace{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"MultiIntegral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MultiIntegral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"multlinegap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multlinetaggap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakdash\"\n    },\n    {\n      \"name\": \"notag\"\n    },\n    {\n      \"name\": \"numberwithin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numberwithin{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"numberwithin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numberwithin[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"overset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"overset{${1:superscript}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"overunderset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"overunderset{${1:superscript}}{${2:subscript}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"pod\"\n    },\n    {\n      \"name\": \"raisetag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raisetag{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"rvert\"\n    },\n    {\n      \"name\": \"rVert\"\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sideset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sideset{${1:left}}{${2:right}}{${3:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smash{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smash[${2:valign}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"substack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"substack{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"tag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tag*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"tfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"theparentequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:argument}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"underset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"underset{${1:subscript}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"uproot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uproot{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"veqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"veqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"xleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightarrow{${1:superscript}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"align\"\n    },\n    {\n      \"name\": \"align*\"\n    },\n    {\n      \"name\": \"alignat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"aligned\"\n    },\n    {\n      \"name\": \"aligned\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment}]\"\n      }\n    },\n    {\n      \"name\": \"alignedat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"bmatrix\"\n    },\n    {\n      \"name\": \"Bmatrix\"\n    },\n    {\n      \"name\": \"cases\"\n    },\n    {\n      \"name\": \"equation*\"\n    },\n    {\n      \"name\": \"flalign\"\n    },\n    {\n      \"name\": \"flalign*\"\n    },\n    {\n      \"name\": \"gather\"\n    },\n    {\n      \"name\": \"gather*\"\n    },\n    {\n      \"name\": \"gathered\"\n    },\n    {\n      \"name\": \"gathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment}]\"\n      }\n    },\n    {\n      \"name\": \"matrix\"\n    },\n    {\n      \"name\": \"multline\"\n    },\n    {\n      \"name\": \"multline*\"\n    },\n    {\n      \"name\": \"pmatrix\"\n    },\n    {\n      \"name\": \"smallmatrix\"\n    },\n    {\n      \"name\": \"split\"\n    },\n    {\n      \"name\": \"subarray\"\n    },\n    {\n      \"name\": \"subarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:align}}\"\n      }\n    },\n    {\n      \"name\": \"subequations\"\n    },\n    {\n      \"name\": \"vmatrix\"\n    },\n    {\n      \"name\": \"Vmatrix\"\n    },\n    {\n      \"name\": \"xalignat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xalignat*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xxalignat\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/amsmath#c\": [\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amsmidx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"makeindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeindex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printindex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Printindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Printindex{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theindexcomment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsopn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"operatorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatorname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"operatorname*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatorname*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"operatornamewithlimits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatornamewithlimits{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"qopname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"qopname{${1:arg}}{${2:m or o}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathOperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMathOperator{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathOperator*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMathOperator*{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"operatorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"cos\"\n    },\n    {\n      \"name\": \"cosh\"\n    },\n    {\n      \"name\": \"cot\"\n    },\n    {\n      \"name\": \"coth\"\n    },\n    {\n      \"name\": \"csc\"\n    },\n    {\n      \"name\": \"deg\"\n    },\n    {\n      \"name\": \"det\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"exp\"\n    },\n    {\n      \"name\": \"gcd\"\n    },\n    {\n      \"name\": \"hom\"\n    },\n    {\n      \"name\": \"inf\"\n    },\n    {\n      \"name\": \"injlim\"\n    },\n    {\n      \"name\": \"ker\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"lim\"\n    },\n    {\n      \"name\": \"liminf\"\n    },\n    {\n      \"name\": \"limsup\"\n    },\n    {\n      \"name\": \"ln\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"max\"\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"projlim\"\n    },\n    {\n      \"name\": \"sec\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"sinh\"\n    },\n    {\n      \"name\": \"sup\"\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"varinjlim\"\n    },\n    {\n      \"name\": \"varprojlim\"\n    },\n    {\n      \"name\": \"varliminf\"\n    },\n    {\n      \"name\": \"varlimsup\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/amsopn#c\": [\n      \"namelimits\",\n      \"nonamelimits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsopn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amsrefs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"pcatcode\"\n    },\n    {\n      \"name\": \"ifoption\"\n    },\n    {\n      \"name\": \"rkeyval\"\n    },\n    {\n      \"name\": \"textcmds\"\n    },\n    {\n      \"name\": \"mathscinet\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backrefs\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"msc-links\"\n    },\n    {\n      \"name\": \"amsbst\",\n      \"if\": \"bibtex-style\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bib\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bib{${1:citekey}}{${2:type}}{${3:fields%keyvals}}\",\n        \"keys\": [\n          \"\\\\bib,\\\\bib*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bib*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bib*{${1:citekey%plain}}{${2:type}}{${3:fields%keyvals}}\",\n        \"keys\": [\n          \"\\\\bib,\\\\bib*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bibselect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibselect{${1:.ltb files%file}}\"\n      }\n    },\n    {\n      \"name\": \"bibselect*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibselect*{${1:.ltb files%file}}\"\n      }\n    },\n    {\n      \"name\": \"resetbiblist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetbiblist{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"MR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"cite{${1:bibid}}*{${2:postfix%text}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citelist{${1:cite commands}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cites{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ycite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ycites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycites{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ocites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocites{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthory{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DefineName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineName{${1:citekey%plain}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineJournal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineJournal{${1:citekey%plain}}{${2:issn}}{${3:shortjournal}}{${4:journal}}\"\n      }\n    },\n    {\n      \"name\": \"DefinePublisher\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefinePublisher{${1:citekey%plain}}{${2:shortpublisher}}{${3:publisher}}{${4:address}}\"\n      }\n    },\n    {\n      \"name\": \"parenthesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenthesize{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibquotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibquotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"voltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editiontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DashPages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DashPages{${1:page ranges}}\"\n      }\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintPrimary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintAuthors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintAuthors{${1:authors}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEditorsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEditorsA{${1:editors}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEditorsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEditorsB{${1:editors}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEditorsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEditorsC{${1:editors}}\"\n      }\n    },\n    {\n      \"name\": \"PrintTranslatorsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintTranslatorsA{${1:translators}}\"\n      }\n    },\n    {\n      \"name\": \"PrintTranslatorsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintTranslatorsB{${1:translators}}\"\n      }\n    },\n    {\n      \"name\": \"PrintTranslatorsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintTranslatorsC{${1:translators}}\"\n      }\n    },\n    {\n      \"name\": \"sameauthors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sameauthors{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Plural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Plural{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SingularPlural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SingularPlural{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"PrintReviews\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintReviews{${1:review numbers}}\"\n      }\n    },\n    {\n      \"name\": \"BibField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibField{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"IfEmptyBibField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEmptyBibField{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEdition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEdition{${1:edition}}\"\n      }\n    },\n    {\n      \"name\": \"CardinalNumeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CardinalNumeric{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"PrintYear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintYear{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bibchapter\"\n    },\n    {\n      \"name\": \"bibchapter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"bibdiv\"\n    },\n    {\n      \"name\": \"bibdiv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"biblist\"\n    },\n    {\n      \"name\": \"biblist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:before-code}]\"\n      }\n    },\n    {\n      \"name\": \"biblist\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"biblist\",\n      \"arg\": {\n        \"format\": \"[]*{}\",\n        \"snippet\": \"[${2:before-code}]*{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"bibsection\"\n    },\n    {\n      \"name\": \"bibsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/amsrefs#c\": [\n      \"alphabetic\",\n      \"shortalphabetic\",\n      \"author-year\",\n      \"y2k\",\n      \"non-compressed-cites\",\n      \"non-sorted-cites\",\n      \"abbrev\",\n      \"initials\",\n      \"short-journals\",\n      \"short-months\",\n      \"short-publishers\",\n      \"backrefs\",\n      \"bibtex-style\",\n      \"citation-order\",\n      \"lite\",\n      \"msc-links\",\n      \"nobysame\"\n    ],\n    \"\\\\bib,\\\\bib*\": [\n      \"accessdate={${1:date}}\",\n      \"address={${1:address}}\",\n      \"booktitle={${1:title}}\",\n      \"date={${1:date}}\",\n      \"edition={${1:edition}}\",\n      \"eprint={${1:eprint info}}\",\n      \"hyphenation={${1:language}}\",\n      \"journal={${1:journal}}\",\n      \"label={${1:label}}\",\n      \"language={${1:language}}\",\n      \"note={${1:text}}\",\n      \"number={${1:issue number}}\",\n      \"organization={${1:organization}}\",\n      \"pages={${1:page range}}\",\n      \"part={${1:part}}\",\n      \"publisher={${1:publisher}}\",\n      \"series={${1:series}}\",\n      \"status={${1:text}}\",\n      \"subtitle={${1:subtitle}}\",\n      \"title={${1:title}}\",\n      \"type={${1:thesis type}}\",\n      \"volume={${1:volume number}}\",\n      \"xref={${1:citekey}}\",\n      \"author={${1:name}}\",\n      \"editor={${1:name}}\",\n      \"translator={${1:name}}\",\n      \"isbn={${1:isbn}}\",\n      \"issn={${1:issn}}\",\n      \"review={${1:review number}}\",\n      \"book={${1:keyvals}}\",\n      \"conference={${1:keyvals}}\",\n      \"contribution={${1:keyvals}}\",\n      \"partial={${1:keyvals}}\",\n      \"reprint={${1:keyvals}}\",\n      \"translation={${1:keyvals}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/amsrefs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/amssymb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amstext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsthm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\theoremstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"swapnumbers\"\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:style name%specialDef}}{${2:space above}}{${3:space below}}{${4:body font}}{${5:indent amount}}{${6:head font}}{${7:head punct}}{${8:after head space}}{${9:head spec}}\"\n      }\n    },\n    {\n      \"name\": \"thmname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"qedhere\"\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"proofname\"\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thmhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"swappedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"swappedhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mathqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushQED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pushQED{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"popQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"thmheadnl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\theoremstyle#c\": [\n      \"plain\",\n      \"definition\",\n      \"remark\",\n      \"%theoremstyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/amsxtra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sphat\"\n    },\n    {\n      \"name\": \"sptilde\"\n    },\n    {\n      \"name\": \"spbreve\"\n    },\n    {\n      \"name\": \"spcheck\"\n    },\n    {\n      \"name\": \"spdddot\"\n    },\n    {\n      \"name\": \"spddot\"\n    },\n    {\n      \"name\": \"spdot\"\n    },\n    {\n      \"name\": \"accentedsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"accentedsymbol{${1:cmd}}{${2:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/analogclock.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"initclock\"\n    },\n    {\n      \"name\": \"analogclock\"\n    },\n    {\n      \"name\": \"clocksizefactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clocksizefactor{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"faceclock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"faceclock{${1:integer}}{${2:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/analogclock#c\": [\n      \"timeinterval=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/analogclock#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/andika.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"andikafamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andika\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/andika#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/andika#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/animate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pdfbase\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ocgbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"animategraphics\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"animategraphics{${1:frame rate}}{${2:file basename}}{${3:first}}{${4:last}}\"\n      }\n    },\n    {\n      \"name\": \"animategraphics\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"animategraphics[${5:options%keyvals}]{${1:frame rate}}{${2:file basename}}{${3:first}}{${4:last}}\",\n        \"keys\": [\n          \"\\\\animategraphics#c,\\\\begin{animateinline}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newframe\"\n    },\n    {\n      \"name\": \"newframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newframe[${1:frame rate}]\"\n      }\n    },\n    {\n      \"name\": \"newframe*\"\n    },\n    {\n      \"name\": \"newframe*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newframe*[${1:frame rate}]\"\n      }\n    },\n    {\n      \"name\": \"multiframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multiframe{${1:number of frames}}{${2:variables}}{${3:content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"multiframebreak\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"animateinline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:frame rate}}\"\n      }\n    },\n    {\n      \"name\": \"animateinline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:frame rate}}\",\n        \"keys\": [\n          \"\\\\animategraphics#c,\\\\begin{animateinline}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/animate#c\": [\n      \"dvipdfmx\",\n      \"xetex\",\n      \"dvisvgm\",\n      \"export\",\n      \"autoplay\",\n      \"autopause\",\n      \"autoresume\",\n      \"loop\",\n      \"palindrome\",\n      \"draft\",\n      \"final\",\n      \"controls\",\n      \"controls=${1|all,true,on,none,false,off|}\",\n      \"controlsaligned=${3|left,left+${1:<indent>},center,right,right+${2:<indent>}|}\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:left bottom right top}\",\n      \"clip\",\n      \"hiresbb\",\n      \"interpolate\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"buttonsize=\",\n      \"buttonbg=${1:color array}\",\n      \"buttonfg=${1:color array}\",\n      \"buttonalpha=${1:opacity}\",\n      \"step\",\n      \"nomouse\",\n      \"type=${1:file ext}\",\n      \"method=${1|icon,widget,ocg|}\",\n      \"poster\",\n      \"poster=${2|first,last,none,${1:number}|}\",\n      \"alttext=${2|none,${1:alt description}|}\"\n    ],\n    \"\\\\animategraphics#c,\\\\begin{animateinline}#c\": [\n      \"label=${1:label}\",\n      \"type=${1:file ext}\",\n      \"poster\",\n      \"poster=${2|first,last,none,${1:number}|}\",\n      \"every=${1:number}\",\n      \"autopause\",\n      \"autoplay\",\n      \"autoresume\",\n      \"loop\",\n      \"palindrome\",\n      \"step\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:left bottom right top}\",\n      \"clip\",\n      \"hiresbb\",\n      \"interpolate\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"controls=${1|all,true,on,none,false,off|}\",\n      \"controlsaligned=${3|left,left+${1:<indent>},center,right,right+${2:<indent>}|}\",\n      \"buttonsize=\",\n      \"buttonbg=${1:color array}\",\n      \"buttonfg=${1:color array}\",\n      \"buttonalpha=${1:opacity}\",\n      \"draft\",\n      \"final\",\n      \"nomouse\",\n      \"method=${1|icon,widget,ocg|}\",\n      \"measure\",\n      \"alttext=${2|none,${1:alt description}|}\",\n      \"begin={${1:begin code}}\",\n      \"end={${1:end code}}\",\n      \"timeline=${1:file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/animate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/annee-scolaire.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"anneescolaire\"\n    },\n    {\n      \"name\": \"anneescolaire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"anneescolaire[${1:shift}]\"\n      }\n    },\n    {\n      \"name\": \"debutanneescolaire\"\n    },\n    {\n      \"name\": \"debutanneescolaire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"debutanneescolaire[${1:shift}]\"\n      }\n    },\n    {\n      \"name\": \"finanneescolaire\"\n    },\n    {\n      \"name\": \"finanneescolaire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"finanneescolaire[${1:shift}]\"\n      }\n    },\n    {\n      \"name\": \"AnneeScolairePresentation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnneeScolairePresentation{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"AnneeScolairePresentation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AnneeScolairePresentation[${2:number}]{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/annee-scolaire#c\": [\n      \"premiermois=${1:integer}\",\n      \"premierjour=${1:integer}\",\n      \"decalage=${1:integer}\",\n      \"separateur=${1:tokens}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/annee-scolaire#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/annot_pro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"trig\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"aeb_mlink\"\n    },\n    {\n      \"name\": \"taborder\"\n    },\n    {\n      \"name\": \"richtext\",\n      \"if\": \"richtext\"\n    },\n    {\n      \"name\": \"richtext\",\n      \"if\": \"useTextBox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"annotpro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annotpro{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"annotpro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"annotpro[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\annotpro,\\\\annotpro*,\\\\setAnnotOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotpro*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annotpro*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"annotpro*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"annotpro*[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\annotpro,\\\\annotpro*,\\\\setAnnotOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setAnnotOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAnnotOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\annotpro,\\\\annotpro*,\\\\setAnnotOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"margintextformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margintextformat{${1:format cmds}}\"\n      }\n    },\n    {\n      \"name\": \"apmargintextformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apContText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentAnnotName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apmargintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultStampHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultStampWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getargsiii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getargsiii{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifpreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuseAAXdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isrichtextkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"isrichtextkey{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"isstrikeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeStamp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeStamp{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mldblevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlignore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pStamp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pStamp{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"QuadPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stampHeight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stampHeight{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"stampWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stampWidth{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"standardStampHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standardStampWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useAAXdimfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useAAXdimtrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"textboxpara\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/annot_pro#c\": [\n      \"preview\",\n      \"useA10Icons\",\n      \"!useA10Icons\",\n      \"richtext\",\n      \"scandoc\",\n      \"!scandoc\",\n      \"dblevel=${1:number}\"\n    ],\n    \"\\\\annotpro,\\\\annotpro*,\\\\setAnnotOptions\": [\n      \"type=${1|text,stamp,fileattachment,textbox,highlight,underline,squiggly,strikeout|}\",\n      \"name=${1:name}\",\n      \"title={${1:text}}\",\n      \"subject={${1:text}}\",\n      \"color=\",\n      \"readonly\",\n      \"hidden\",\n      \"opacity=${1:factor}\",\n      \"internalID=${1:name}\",\n      \"margin\",\n      \"margintext=${1:text}\",\n      \"margprior=${1:\\\\cmd}\",\n      \"presets=\",\n      \"open\",\n      \"nohspace\",\n      \"novspace\",\n      \"nospace\",\n      \"width=\",\n      \"height=\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"widthTo=\",\n      \"heightTo=\",\n      \"customStamp=\",\n      \"ap=\",\n      \"file=${1:file path}\",\n      \"bgcolor=\",\n      \"bcolor=\",\n      \"borderstyle=${1|none,solid,dash1,dash2,dash3,dash4,dash5,dash6,cloud1,cloud2|}\",\n      \"borderwidth=${1|.5,1,2,3,4,6,8,10|}\",\n      \"crackat=${1:number}\",\n      \"hyph\",\n      \"crackinsat=${1:LaTeX markup}\",\n      \"copycontent\",\n      \"objdef=\",\n      \"taborder=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/annot_pro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/annotate-equations.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eqnmarkbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnmarkbox{${1:node name}}{${2:equation terms}}\"\n      }\n    },\n    {\n      \"name\": \"eqnmarkbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"eqnmarkbox[${3:color}]{${1:node name}}{${2:equation terms}}\"\n      }\n    },\n    {\n      \"name\": \"eqnmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnmark{${1:node name}}{${2:equation terms}}\"\n      }\n    },\n    {\n      \"name\": \"eqnmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"eqnmark[${3:color}]{${1:node name}}{${2:equation terms}}\"\n      }\n    },\n    {\n      \"name\": \"annotate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"annotate{${1:annotate keys%keyvals}}{${2:node names}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\annotate,\\\\annotatetwo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"annotate[${4:TikZ options}]{${1:annotate keys%keyvals}}{${2:node names}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\annotate,\\\\annotatetwo\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"annotatetwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"annotatetwo{${1:annotate keys%keyvals}}{${2:node name1}}{${3:node name2}}{${4:text}}\",\n        \"keys\": [\n          \"\\\\annotate,\\\\annotatetwo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotatetwo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"annotatetwo[${5:TikZ options}]{${1:annotate keys%keyvals}}{${2:node name1}}{${3:node name2}}{${4:text}}\",\n        \"keys\": [\n          \"\\\\annotate,\\\\annotatetwo\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addvalue{${1:node name}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"EAlabelanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EAmarkanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EAwesteast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EAxshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnannotateCurrentNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnannotationfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnannotationstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqncolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqncolor{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"eqnhighlight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnhighlight{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"eqnhighlightcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnhighlightcolorbox{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"eqnhighlightfbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnhighlightfbox{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"eqnhighlightheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnhighlightshade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extractfirst{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"swapNorthSouth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swapNorthSouth{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"swapWestEast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swapWestEast{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"theeqnannotatenode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usevalue{${1:node name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\annotate,\\\\annotatetwo\": [\n      \"above\",\n      \"below\",\n      \"right\",\n      \"left\",\n      \"label above\",\n      \"label below\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/anonchap.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"simplechapter\"\n    },\n    {\n      \"name\": \"simplechapter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"simplechapter[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"restorechapter\"\n    },\n    {\n      \"name\": \"simplechapterdelim\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/anonymous-acm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"authoranon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authoranon{${1:author information%text}}\"\n      }\n    },\n    {\n      \"name\": \"textanon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textanon{${1:text}}{${2:placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"linkanon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"linkanon{${1:URL}}{${2:display link%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textlinkanon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textlinkanon{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"citeanon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeanon{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeanon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeanon[${2:add. text}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ifAnonCondition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnonConditiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnonConditionfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/anonymous-acm#c\": [\n      \"true\",\n      \"false\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/anonymous-acm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/answers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Newassociation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Newassociation{${1:envname}}{${2:name}}{${3:file}}\"\n      }\n    },\n    {\n      \"name\": \"solutionextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Opensolutionfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Opensolutionfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Opensolutionfile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Opensolutionfile{${1:file}}[${2:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Closesolutionfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Closesolutionfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Writetofile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Writetofile{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Readsolutionfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Readsolutionfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Currentlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifanswerfiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifanswerfiles{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"Iffileundefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Iffileundefined{${1:file}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifopen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifopen{${1:file}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newsolution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsolution{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"solutionpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solutionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifanswerfiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerfilestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerfilesfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Filesave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/answers#c\": [\n      \"nosolutionfiles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/answers#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/antanilipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"antani\"\n    },\n    {\n      \"name\": \"antani\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antani[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"antani\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"antani[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"antani\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antani[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"antani\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"antani[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"antani*\"\n    },\n    {\n      \"name\": \"antani*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antani*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"antani*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"antani*[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"antani*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antani*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"antani*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"antani*[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"antanidef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"antanidef{${1:cmd}}{${2:num}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/antanilipsum#c\": [\n      \"par\",\n      \"nopar\",\n      \"numbers\",\n      \"index\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/antanilipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/antpolt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/antpolt#c\": [\n      \"regular\",\n      \"light\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/antpolt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/anttor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"minusleft\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalleft\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalright\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalc\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftarrowj\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusleft\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusright\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusc\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"if\": \"math\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"if\": \"math\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"if\": \"math\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"if\": \"math\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"rightarrowfill\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftarrowfill\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusleft\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalleft\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalright\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalc\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftarrowj\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusleft\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusright\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusc\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"if\": \"mathnoalias\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"if\": \"mathnoalias\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"if\": \"mathnoalias\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"if\": \"mathnoalias\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"rightarrowfill\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftarrowfill\",\n      \"if\": \"mathnoalias\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/anttor#c\": [\n      \"regular\",\n      \"light\",\n      \"condensed\",\n      \"mathnoalias\",\n      \"math\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/anttor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aobs-tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryoverlay-beamer-styles\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/apacite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbibemu\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbibapa\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"indexpackage\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"stdindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"tocindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"emindex\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"ltxemindex\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"ltxemindex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibemu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibemu\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbibapa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbibapa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyear<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"nocitemeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocitemeta{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfullciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskfullciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfullciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortcite<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortcite<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortcite<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteA{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteA[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteA<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteA<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteA<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthor<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthor<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthor<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthorNP{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthorNP[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskshortciteauthorNP<prefix>{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskshortciteauthorNP<prefix>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskshortciteauthorNP<prefix>[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"masknocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masknocite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"masktext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masktext{${1:masked text%text}}\"\n      }\n    },\n    {\n      \"name\": \"masktext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"masktext[${2:mask-mode text%text}]{${1:masked text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintOrdinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintOrdinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"APACSortNoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACSortNoop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BAstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAastyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefauthstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBCP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBAY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBYY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBOQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BBCQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPBI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BHBI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCBT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCBL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BDBL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBibCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCnt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"BCntIP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCntIP{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"BCntND\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCntND{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"APACciteatitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACciteatitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACcitebtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACcitebtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACmetastar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliographytypesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onemaskedcitationmsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onemaskedcitationmsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maskedcitationsmsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskedcitationsmsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibmessage \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogrammanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputerprogramandmanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftware\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftwaremanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcomputersoftwareandmanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibprogramminglanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnodate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOthers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOthersPeriod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcorporate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BEDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTRANSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAIR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAIRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BVOL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BVOLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BNUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BNUMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BEd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BCHAPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPGS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BUPhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BMTh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BUMTh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOWP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BREPR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAvailFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRetrieved\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRetrieved{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRetrievedFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BMsgPostedTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"bibliographyprenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACmetaprenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACmonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefYear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACrefYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefYearMonthDay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACrefYearMonthDay{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefatitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefatitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefbtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefbtitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefaetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefaetitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefbetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACrefbetitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACjournalVolNumPages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"APACjournalVolNumPages{${1:journal}}{${2:volume}}{${3:issue number}}{${4:pages}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressPublisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressPublisher{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressInstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressInstitution{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressPublisherEqAuth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressPublisherEqAuth{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressInstitutionEqAuth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressInstitutionEqAuth{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACaddressSchool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACaddressSchool{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACtypeAddressSchool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACtypeAddressSchool{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"APAChowpublished\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACorigED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACorigED{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigEDS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACorigEDS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACrefnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACrefnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigyearnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACorigyearnote{${1:year}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigjournalnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"APACorigjournalnote{${1:year}}{${2:journal}}{${3:volume}}{${4:issue number}}{${5:pages}}{${6:note}}\"\n      }\n    },\n    {\n      \"name\": \"APACorigbooknote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"APACorigbooknote{${1:year}}{${2:editor}}{${3:title%text}}{${4:edition}}{${5:volume}}{${6:pages}}{${7:address}}{${8:publisher}}{${9:note}}\"\n      }\n    },\n    {\n      \"name\": \"APACbVolEdTR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACbVolEdTR{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACbVolEdTRpgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APACbVolEdTRpgs{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"APACstdindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACtocindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACemindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACltxemindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"corporateAX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corporateAX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APACbibcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"APACbibcite{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"APACexlab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACexlab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"APACinsertmetastar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACinsertmetastar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APACrestorebibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APACyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibphant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibphant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CardinalNumeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CardinalNumeric{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentBib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definemetaflag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definemetaflag{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makehashmacropar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehashother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcitations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintAX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintBackRefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintBackRefs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"themaskedRefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unmaskcitations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"APACrefauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:date}]\"\n      }\n    },\n    {\n      \"name\": \"APACrefDOI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefURLmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APACrefannotation\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/apacite#c\": [\n      \"apaciteclassic\",\n      \"natbibemu\",\n      \"natbibapa\",\n      \"nocitation\",\n      \"mask\",\n      \"unmask\",\n      \"numberedbib\",\n      \"unnumberedbib\",\n      \"sectionbib\",\n      \"nosectionbib\",\n      \"tocbib\",\n      \"notocbib\",\n      \"bibnewpage\",\n      \"nobibnewpage\",\n      \"doi\",\n      \"nodoi\",\n      \"noindex\",\n      \"index\",\n      \"includecorporate\",\n      \"suppresscorporate\",\n      \"indexpackage\",\n      \"noindexpackage\",\n      \"stdindex\",\n      \"tocindex\",\n      \"emindex\",\n      \"ltxemindex\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"apacite\",\n      \"apacitex\",\n      \"apacann\",\n      \"apacannx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/apacite#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/appendix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"appendixpage\"\n    },\n    {\n      \"name\": \"addappheadtotoc\"\n    },\n    {\n      \"name\": \"noappendicestocpagenum\"\n    },\n    {\n      \"name\": \"appendicestocpagenum\"\n    },\n    {\n      \"name\": \"appendixtocname\"\n    },\n    {\n      \"name\": \"appendixpagename\"\n    },\n    {\n      \"name\": \"appendixtocon\"\n    },\n    {\n      \"name\": \"appendixtocoff\"\n    },\n    {\n      \"name\": \"appendixpageon\"\n    },\n    {\n      \"name\": \"appendixpageoff\"\n    },\n    {\n      \"name\": \"appendixtitleon\"\n    },\n    {\n      \"name\": \"appendixtitleoff\"\n    },\n    {\n      \"name\": \"appendixtitletocon\"\n    },\n    {\n      \"name\": \"appendixtitletocoff\"\n    },\n    {\n      \"name\": \"appendixheaderon\"\n    },\n    {\n      \"name\": \"appendixheaderoff\"\n    },\n    {\n      \"name\": \"restoreapp\"\n    },\n    {\n      \"name\": \"setthesection\"\n    },\n    {\n      \"name\": \"setthesubsection\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"subappendices\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/appendix#c\": [\n      \"toc\",\n      \"title\",\n      \"titletoc\",\n      \"header\",\n      \"page\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/appendix#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/appendixnumberbeamer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"appendixtotalframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixend\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/apptools.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AtAppendix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtAppendix{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfAppendix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfAppendix{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/apxproof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"bibunits\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newtheoremrep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheoremrep{${1:envname}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremrep\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtheoremrep{${1:envname}}[${3:counter}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremrep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newtheoremrep{${1:envname}}{${2:title%text}}[${3:countersec}]\"\n      }\n    },\n    {\n      \"name\": \"newtheoremrep\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newtheoremrep{${1:envname}}[${3:counter}]{${2:title%text}}[${4:countersec}]\"\n      }\n    },\n    {\n      \"name\": \"mainbodyrepeatedtheorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixsectionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendixsectionformat{${1:number}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"appendixrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixbibliographystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixbibliographyprelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixprelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noproofinappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosectionappendix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"toappendix\"\n    },\n    {\n      \"name\": \"appendixproof\"\n    },\n    {\n      \"name\": \"proofsketch\"\n    },\n    {\n      \"name\": \"inlineproof\"\n    },\n    {\n      \"name\": \"nestedproof\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/apxproof#c\": [\n      \"appendix=${1|append,inline,strip|}\",\n      \"bibliography=${1|common,separate|}\",\n      \"repeqn=${1|same,independent|}\",\n      \"forwardlinking=${1|yes,no|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/apxproof#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifCM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CMtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CMfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PAtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PAfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AR\"\n    },\n    {\n      \"name\": \"ARb\"\n    },\n    {\n      \"name\": \"ARss\"\n    },\n    {\n      \"name\": \"ARssb\"\n    },\n    {\n      \"name\": \"ARtt\"\n    },\n    {\n      \"name\": \"ARm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARmb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ar#c\": [\n      \"CM\",\n      \"TM\",\n      \"TC\",\n      \"PA\",\n      \"PX\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arabluatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"luacolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"arabluatex-patch\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"lua-ul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arabicfont\"\n    },\n    {\n      \"name\": \"SetArbEasy\"\n    },\n    {\n      \"name\": \"SetArbEasy*\"\n    },\n    {\n      \"name\": \"SetArbDflt\"\n    },\n    {\n      \"name\": \"SetArbDflt*\"\n    },\n    {\n      \"name\": \"arb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arb{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arb[${2:mode%keyvals}]{${1:Arabic text%definition}}\",\n        \"keys\": [\n          \"\\\\arb,\\\\begin{arab}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arbnull\"\n    },\n    {\n      \"name\": \"abjad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjad{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aemph{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"aemph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aemph*{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"aoline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aoline{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"aoline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aoline*{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"auline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"auline{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"SetHemistichDelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHemistichDelim{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"StretchBayt\"\n    },\n    {\n      \"name\": \"StretchBayt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"StretchBayt[${1:true|false}]\"\n      }\n    },\n    {\n      \"name\": \"abraces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abraces{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arbmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arbmark{${1:shorthand%keyvals}}\",\n        \"keys\": [\n          \"\\\\arbmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arbmark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arbmark[${2:rl|lr}]{${1:shorthand%keyvals}}\",\n        \"keys\": [\n          \"\\\\arbmark#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newarbmark\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarbmark{${1:shorthand%specialDef}}{${2:RTL codepoint}}{${3:LTR codepoint}}\"\n      }\n    },\n    {\n      \"name\": \"ayah\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ayah{3-digit number}\"\n      }\n    },\n    {\n      \"name\": \"arbcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arbcolor{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arbcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arbcolor[${2:color}]{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"SetTranslitConvention\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTranslitConvention{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTranslitConvention\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTranslitStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTranslitStyle{${1:style commands}}\"\n      }\n    },\n    {\n      \"name\": \"SetTranslitFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTranslitFont{${1:font selection commands}}\"\n      }\n    },\n    {\n      \"name\": \"uc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uc{${1:word%definition}}\"\n      }\n    },\n    {\n      \"name\": \"prname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prname{${1:Arabic proper name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"prname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prname*{${1:Arabic proper name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arbup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arbup{${1:Arabic text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NoArbUp\"\n    },\n    {\n      \"name\": \"ArbUpDflt\"\n    },\n    {\n      \"name\": \"SetArbUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArbUp{${1:formatting directives}}\"\n      }\n    },\n    {\n      \"name\": \"SetInputScheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetInputScheme{${1:scheme%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetInputScheme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"txarb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txarb{${1:Unicode Arabic}}\"\n      }\n    },\n    {\n      \"name\": \"LR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LR{${1:arg%text}}\"\n      }\n    },\n    {\n      \"name\": \"RL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:arg%text}}\"\n      }\n    },\n    {\n      \"name\": \"LRfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RLfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FixArbFtnmk\"\n    },\n    {\n      \"name\": \"LRmarginpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRmarginpar{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"LRmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LRmarginpar[${2:left%text}]{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"setRL\"\n    },\n    {\n      \"name\": \"setLR\"\n    },\n    {\n      \"name\": \"MkArbBreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MkArbBreak{${1:list of csnames}}\"\n      }\n    },\n    {\n      \"name\": \"MkArbBreak*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MkArbBreak*{${1:list of csnames}}\"\n      }\n    },\n    {\n      \"name\": \"SetArbOutSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArbOutSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"arbpardir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArbOutFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArbOutFile{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ArbOutFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ArbOutFile[${2:newline}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ArbOutFile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArbOutFile*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ArbOutFile*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ArbOutFile*[${2:newline}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"SetDefaultIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultIndex{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"SetIndexMode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetIndexMode{${1:mode}}\"\n      }\n    },\n    {\n      \"name\": \"Uc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Uc{${1:word%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arind{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"arind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arind[${2:opt%keyvals}]{${1:root}}\",\n        \"keys\": [\n          \"\\\\arind\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"txtrans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txtrans{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"arab\"\n    },\n    {\n      \"name\": \"arab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:mode%keyvals}]\",\n        \"keys\": [\n          \"\\\\arb,\\\\begin{arab}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arabverse\"\n    },\n    {\n      \"name\": \"arabverse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{arabverse}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"txarab\"\n    },\n    {\n      \"name\": \"arabexport\"\n    },\n    {\n      \"name\": \"txarabtr\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/arabluatex#c\": [\n      \"voc\",\n      \"fullvoc\",\n      \"novoc\",\n      \"trans\",\n      \"export\"\n    ],\n    \"\\\\arb,\\\\begin{arab}\": [\n      \"voc\",\n      \"fullvoc\",\n      \"novoc\",\n      \"trans\"\n    ],\n    \"\\\\begin{arabverse}\": [\n      \"mode=${1|voc,fullvoc,novoc,trans|}\",\n      \"width=\",\n      \"gutter=\",\n      \"metre=${1:name}\",\n      \"delim\",\n      \"utf\",\n      \"color=\",\n      \"export\"\n    ],\n    \"\\\\arbmark#c\": [\n      \"bismillah\",\n      \"salam\",\n      \"slm\",\n      \"jalla\",\n      \"%arbmark\"\n    ],\n    \"\\\\SetTranslitConvention\": [\n      \"dmg\",\n      \"loc\",\n      \"arabica\"\n    ],\n    \"\\\\SetInputScheme\": [\n      \"arabtex\",\n      \"buckwalter\"\n    ],\n    \"\\\\arind\": [\n      \"index\",\n      \"root\",\n      \"form\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arabluatex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arabxetex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"bidi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textarab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarab{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textarab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarab[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textfarsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfarsi{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textfarsi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textfarsi[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texturdu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texturdu{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"texturdu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texturdu[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsindhi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsindhi{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textsindhi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsindhi[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textpashto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpashto{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textpashto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpashto[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textottoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textottoman{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textottoman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textottoman[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textkurdish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkurdish{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textkurdish\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkurdish[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textkashmiri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkashmiri{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textkashmiri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkashmiri[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmalay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmalay{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textmalay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmalay[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textuighur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuighur{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textuighur\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textuighur[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmaghribi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaghribi{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textmaghribi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmaghribi[${2:option%keyvals}]{${1:text%definition}}\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textLR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aemph{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"arabicfont\"\n    },\n    {\n      \"name\": \"SetTranslitConvention\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTranslitConvention{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTranslitConvention#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTranslitStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTranslitStyle{${1:style commands}}\"\n      }\n    },\n    {\n      \"name\": \"UC\"\n    },\n    {\n      \"name\": \"textarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarabic{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarabic[${2:option%keyvals}]{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textjawi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textjawi{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textjawi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textjawi[${2:option%keyvals}]{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textpersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersian{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textpersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpersian[${2:option%keyvals}]{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textturk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textturk{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"textturk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textturk[${2:option%keyvals}]{${1:text%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"arab\"\n    },\n    {\n      \"name\": \"arab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"farsi\"\n    },\n    {\n      \"name\": \"farsi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urdu\"\n    },\n    {\n      \"name\": \"urdu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sindhi\"\n    },\n    {\n      \"name\": \"sindhi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pashto\"\n    },\n    {\n      \"name\": \"pashto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ottoman\"\n    },\n    {\n      \"name\": \"ottoman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kurdish\"\n    },\n    {\n      \"name\": \"kurdish\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kashmiri\"\n    },\n    {\n      \"name\": \"kashmiri\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"malay\"\n    },\n    {\n      \"name\": \"malay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uighur\"\n    },\n    {\n      \"name\": \"uighur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maghribi\"\n    },\n    {\n      \"name\": \"maghribi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arabic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Arabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    },\n    {\n      \"name\": \"jawi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jawi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    },\n    {\n      \"name\": \"persion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    },\n    {\n      \"name\": \"turk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/arabxetex#c\": [\n      \"fullvoc\",\n      \"voc\",\n      \"novoc\",\n      \"trans\",\n      \"utf\",\n      \"mirrorpunct\"\n    ],\n    \"\\\\textarab,\\\\textfarsi,\\\\texturdu,\\\\textsindhi,\\\\textpashto,\\\\textottoman,\\\\textkurdish,\\\\textkashmiri,\\\\textmalay,\\\\textuighur,\\\\textmaghribi,\\\\begin{arab},\\\\begin{farsi},\\\\begin{urdu},\\\\begin{sindhi},\\\\begin{pashto},\\\\begin{ottoman},\\\\begin{kurdish},\\\\begin{kashmiri},\\\\begin{malay},\\\\begin{uighur},\\\\begin{maghribi}\": [\n      \"novoc\",\n      \"voc\",\n      \"fullvoc\",\n      \"trans\",\n      \"utf\"\n    ],\n    \"\\\\SetTranslitConvention#c\": [\n      \"dmg\",\n      \"loc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arabxetex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aramaic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aramfamily\"\n    },\n    {\n      \"name\": \"textaram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textaram{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arq\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Ag\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"Aw\"\n    },\n    {\n      \"name\": \"Az\"\n    },\n    {\n      \"name\": \"Ahd\"\n    },\n    {\n      \"name\": \"Atd\"\n    },\n    {\n      \"name\": \"Ay\"\n    },\n    {\n      \"name\": \"Ak\"\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"Alq\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"Asd\"\n    },\n    {\n      \"name\": \"Aq\"\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"Asv\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"Aa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aaleph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abeth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Agimel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adaleth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ahe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Avav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aheth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ateth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ayod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Akaph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Amem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asamekh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aqoph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aresh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ashin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translitaram\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitaram{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitaramfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arev.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"arevtext\"\n    },\n    {\n      \"name\": \"arevmath\"\n    },\n    {\n      \"name\": \"beramono\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arevmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"ams-mdbch\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"widetriangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widetriangle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"origIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varIota\"\n    },\n    {\n      \"name\": \"origI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varimath\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"varI\"\n    },\n    {\n      \"name\": \"vara\"\n    },\n    {\n      \"name\": \"vari\"\n    },\n    {\n      \"name\": \"varl\"\n    },\n    {\n      \"name\": \"varu\"\n    },\n    {\n      \"name\": \"varv\"\n    },\n    {\n      \"name\": \"varw\"\n    },\n    {\n      \"name\": \"varx\"\n    },\n    {\n      \"name\": \"varf\"\n    },\n    {\n      \"name\": \"Qoppa\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"Koppa\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"varspade\"\n    },\n    {\n      \"name\": \"varheart\"\n    },\n    {\n      \"name\": \"vardiamond\"\n    },\n    {\n      \"name\": \"varclub\"\n    },\n    {\n      \"name\": \"steaming\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"sixteenthnote\"\n    },\n    {\n      \"name\": \"origGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yinyang\"\n    },\n    {\n      \"name\": \"sadface\"\n    },\n    {\n      \"name\": \"smileface\"\n    },\n    {\n      \"name\": \"invsmileface\"\n    },\n    {\n      \"name\": \"westcross\"\n    },\n    {\n      \"name\": \"eastcross\"\n    },\n    {\n      \"name\": \"skull\"\n    },\n    {\n      \"name\": \"radiation\"\n    },\n    {\n      \"name\": \"biohazard\"\n    },\n    {\n      \"name\": \"recycle\"\n    },\n    {\n      \"name\": \"anchor\"\n    },\n    {\n      \"name\": \"swords\"\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"pointright\"\n    },\n    {\n      \"name\": \"pencil\"\n    },\n    {\n      \"name\": \"ballotcheck\"\n    },\n    {\n      \"name\": \"ballotx\"\n    },\n    {\n      \"name\": \"heavyqtleft\"\n    },\n    {\n      \"name\": \"heavyqtright\"\n    },\n    {\n      \"name\": \"arrowbullet\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/arevmath#c\": [\n      \"origletters\",\n      \"vara\",\n      \"vari\",\n      \"varI\",\n      \"varf\",\n      \"oldf\",\n      \"varl\",\n      \"varu\",\n      \"varv\",\n      \"varw\",\n      \"varGamma\",\n      \"varXi\",\n      \"varPi\",\n      \"varSigma\",\n      \"varPhi\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arevmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arevtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/argumentation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AF\",\n      \"if\": \"macros=true\"\n    },\n    {\n      \"name\": \"arguments\",\n      \"if\": \"macros=true\"\n    },\n    {\n      \"name\": \"attacks\",\n      \"if\": \"macros=true\"\n    },\n    {\n      \"name\": \"AFcomplete\",\n      \"if\": \"macros=true\"\n    },\n    {\n      \"name\": \"afref\",\n      \"if\": \"macros=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fullafref\",\n      \"if\": \"macros=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullafref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setargumentstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setargumentstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setattackstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setattackstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setsupportstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsupportstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setannotationstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setannotationstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"argument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argument{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"argument\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"argument(${2:id}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"argument\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"argument[${2:options}](${3:id}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"argument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"argument[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"attack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attack{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"attack\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"attack[${3:options}]{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"dualattack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dualattack{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"dualattack\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dualattack[${3:options}]{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"selfattack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selfattack{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"selfattack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"selfattack[${2:options}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"support\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"support{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"support\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"support[${3:options}]{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"annotatedattack\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"annotatedattack{${1:id1}}{${2:id2}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"annotatedattack\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"annotatedattack[${4:options}]{${1:id1}}{${2:id2}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"afname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"afname\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"afname(${2:id}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"afname\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"afname[${2:options}](${3:id}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"afname\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"afname[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"annotation{${1:id}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"annotation[${3:options}]{${1:id}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"af\"\n    },\n    {\n      \"name\": \"af\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/argumentation#c\": [\n      \"namestyle=${1|none,math,bold,monospace,monoemph|}\",\n      \"argumentstyle=${1|standard,large,thick,gray,colored|}\",\n      \"attackstyle=${1|standard,large,modern|}\",\n      \"supportstyle=${1|standard,dashed,double|}\",\n      \"macros=true\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/argumentation#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arimo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arimo\"\n    },\n    {\n      \"name\": \"arimofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/arimo#c\": [\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arimo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/armtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"artmfamily\"\n    },\n    {\n      \"name\": \"arssfamily\"\n    },\n    {\n      \"name\": \"arbfseries\"\n    },\n    {\n      \"name\": \"armdseries\"\n    },\n    {\n      \"name\": \"arupshape\"\n    },\n    {\n      \"name\": \"aritshape\"\n    },\n    {\n      \"name\": \"arslshape\"\n    },\n    {\n      \"name\": \"armtm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armtm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armbf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armmd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"artm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artmbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arssbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artmsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arsssl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artmbfit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artmbfsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arssbfsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armdate\"\n    },\n    {\n      \"name\": \"armdateoff\"\n    },\n    {\n      \"name\": \"armhyph\"\n    },\n    {\n      \"name\": \"armhyphoff\"\n    },\n    {\n      \"name\": \"aroff\"\n    },\n    {\n      \"name\": \"armnames\"\n    },\n    {\n      \"name\": \"armnamesoff\"\n    },\n    {\n      \"name\": \"latArmTeX\"\n    },\n    {\n      \"name\": \"ArmTeX\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armprime\"\n    },\n    {\n      \"name\": \"armprimeoff\"\n    },\n    {\n      \"name\": \"mtArmayb\"\n    },\n    {\n      \"name\": \"mtArmben\"\n    },\n    {\n      \"name\": \"mtArmgim\"\n    },\n    {\n      \"name\": \"mtArmda\"\n    },\n    {\n      \"name\": \"mtArmyech\"\n    },\n    {\n      \"name\": \"mtArmza\"\n    },\n    {\n      \"name\": \"mtArme\"\n    },\n    {\n      \"name\": \"mtArmat\"\n    },\n    {\n      \"name\": \"mtArmto\"\n    },\n    {\n      \"name\": \"mtArmzhe\"\n    },\n    {\n      \"name\": \"mtArmini\"\n    },\n    {\n      \"name\": \"mtArmlyun\"\n    },\n    {\n      \"name\": \"mtArmkhe\"\n    },\n    {\n      \"name\": \"mtArmtsa\"\n    },\n    {\n      \"name\": \"mtArmken\"\n    },\n    {\n      \"name\": \"mtArmho\"\n    },\n    {\n      \"name\": \"mtArmdza\"\n    },\n    {\n      \"name\": \"mtArmghat\"\n    },\n    {\n      \"name\": \"mtArmtche\"\n    },\n    {\n      \"name\": \"mtArmmen\"\n    },\n    {\n      \"name\": \"mtArmhi\"\n    },\n    {\n      \"name\": \"mtArmnu\"\n    },\n    {\n      \"name\": \"mtArmsha\"\n    },\n    {\n      \"name\": \"mtArmvo\"\n    },\n    {\n      \"name\": \"mtArmcha\"\n    },\n    {\n      \"name\": \"mtArmpe\"\n    },\n    {\n      \"name\": \"mtArmje\"\n    },\n    {\n      \"name\": \"mtArmra\"\n    },\n    {\n      \"name\": \"mtArmse\"\n    },\n    {\n      \"name\": \"mtArmvev\"\n    },\n    {\n      \"name\": \"mtArmtyun\"\n    },\n    {\n      \"name\": \"mtArmre\"\n    },\n    {\n      \"name\": \"mtArmtso\"\n    },\n    {\n      \"name\": \"mtArmvyun\"\n    },\n    {\n      \"name\": \"mtArmvovyun\"\n    },\n    {\n      \"name\": \"mtArmpyur\"\n    },\n    {\n      \"name\": \"mtArmke\"\n    },\n    {\n      \"name\": \"mtArmo\"\n    },\n    {\n      \"name\": \"mtArmfe\"\n    },\n    {\n      \"name\": \"mtarmayb\"\n    },\n    {\n      \"name\": \"mtarmben\"\n    },\n    {\n      \"name\": \"mtarmgim\"\n    },\n    {\n      \"name\": \"mtarmda\"\n    },\n    {\n      \"name\": \"mtarmyech\"\n    },\n    {\n      \"name\": \"mtarmza\"\n    },\n    {\n      \"name\": \"mtarme\"\n    },\n    {\n      \"name\": \"mtarmat\"\n    },\n    {\n      \"name\": \"mtarmto\"\n    },\n    {\n      \"name\": \"mtarmzhe\"\n    },\n    {\n      \"name\": \"mtarmini\"\n    },\n    {\n      \"name\": \"mtarmlyun\"\n    },\n    {\n      \"name\": \"mtarmkhe\"\n    },\n    {\n      \"name\": \"mtarmtsa\"\n    },\n    {\n      \"name\": \"mtarmken\"\n    },\n    {\n      \"name\": \"mtarmho\"\n    },\n    {\n      \"name\": \"mtarmdza\"\n    },\n    {\n      \"name\": \"mtarmghat\"\n    },\n    {\n      \"name\": \"mtarmtche\"\n    },\n    {\n      \"name\": \"mtarmmen\"\n    },\n    {\n      \"name\": \"mtarmhi\"\n    },\n    {\n      \"name\": \"mtarmnu\"\n    },\n    {\n      \"name\": \"mtarmsha\"\n    },\n    {\n      \"name\": \"mtarmvo\"\n    },\n    {\n      \"name\": \"mtarmcha\"\n    },\n    {\n      \"name\": \"mtarmpe\"\n    },\n    {\n      \"name\": \"mtarmje\"\n    },\n    {\n      \"name\": \"mtarmra\"\n    },\n    {\n      \"name\": \"mtarmse\"\n    },\n    {\n      \"name\": \"mtarmvev\"\n    },\n    {\n      \"name\": \"mtarmtyun\"\n    },\n    {\n      \"name\": \"mtarmre\"\n    },\n    {\n      \"name\": \"mtarmtso\"\n    },\n    {\n      \"name\": \"mtarmvyun\"\n    },\n    {\n      \"name\": \"mtarmvovyun\"\n    },\n    {\n      \"name\": \"mtarmpyur\"\n    },\n    {\n      \"name\": \"mtarmke\"\n    },\n    {\n      \"name\": \"mtarmew\"\n    },\n    {\n      \"name\": \"mtarmo\"\n    },\n    {\n      \"name\": \"mtarmfe\"\n    },\n    {\n      \"name\": \"mathartm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathartm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathartmbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathartmbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathartmit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathartmit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathartmbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathartmbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathardefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathardefault{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"armnumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armnumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"unarmnumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unarmnumeral{${1:Armenian numeral}}\"\n      }\n    },\n    {\n      \"name\": \"unarmnumeral*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unarmnumeral*{${1:Armenian numeral}}\"\n      }\n    },\n    {\n      \"name\": \"armnumeralcount\"\n    },\n    {\n      \"name\": \"armnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armnumber{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"unarmnumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unarmnumber{${1:Armenian numeral}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"armalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Armalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Armalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"armalphs\"\n    },\n    {\n      \"name\": \"armalphsoff\"\n    },\n    {\n      \"name\": \"armfontsdefault\"\n    },\n    {\n      \"name\": \"armfontsdefaultoff\"\n    },\n    {\n      \"name\": \"armtoday\"\n    },\n    {\n      \"name\": \"armabbrev\"\n    },\n    {\n      \"name\": \"armabr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armabr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"armaccent\"\n    },\n    {\n      \"name\": \"armapostrophe\"\n    },\n    {\n      \"name\": \"Armat\"\n    },\n    {\n      \"name\": \"armat\"\n    },\n    {\n      \"name\": \"Armayb\"\n    },\n    {\n      \"name\": \"armayb\"\n    },\n    {\n      \"name\": \"Armben\"\n    },\n    {\n      \"name\": \"armben\"\n    },\n    {\n      \"name\": \"armbl\"\n    },\n    {\n      \"name\": \"Armcha\"\n    },\n    {\n      \"name\": \"armcha\"\n    },\n    {\n      \"name\": \"armcomma\"\n    },\n    {\n      \"name\": \"Armda\"\n    },\n    {\n      \"name\": \"armda\"\n    },\n    {\n      \"name\": \"armdot\"\n    },\n    {\n      \"name\": \"armdram\"\n    },\n    {\n      \"name\": \"Armdza\"\n    },\n    {\n      \"name\": \"armdza\"\n    },\n    {\n      \"name\": \"Arme\"\n    },\n    {\n      \"name\": \"arme\"\n    },\n    {\n      \"name\": \"armellipsis\"\n    },\n    {\n      \"name\": \"armemdash\"\n    },\n    {\n      \"name\": \"armendash\"\n    },\n    {\n      \"name\": \"armeternity\"\n    },\n    {\n      \"name\": \"armew\"\n    },\n    {\n      \"name\": \"armexclam\"\n    },\n    {\n      \"name\": \"Armfe\"\n    },\n    {\n      \"name\": \"armfe\"\n    },\n    {\n      \"name\": \"armfullstop\"\n    },\n    {\n      \"name\": \"Armghat\"\n    },\n    {\n      \"name\": \"armghat\"\n    },\n    {\n      \"name\": \"Armgim\"\n    },\n    {\n      \"name\": \"armgim\"\n    },\n    {\n      \"name\": \"Armhi\"\n    },\n    {\n      \"name\": \"armhi\"\n    },\n    {\n      \"name\": \"Armho\"\n    },\n    {\n      \"name\": \"armho\"\n    },\n    {\n      \"name\": \"Armini\"\n    },\n    {\n      \"name\": \"armini\"\n    },\n    {\n      \"name\": \"Armje\"\n    },\n    {\n      \"name\": \"armje\"\n    },\n    {\n      \"name\": \"Armke\"\n    },\n    {\n      \"name\": \"armke\"\n    },\n    {\n      \"name\": \"Armken\"\n    },\n    {\n      \"name\": \"armken\"\n    },\n    {\n      \"name\": \"Armkhe\"\n    },\n    {\n      \"name\": \"armkhe\"\n    },\n    {\n      \"name\": \"Armlyun\"\n    },\n    {\n      \"name\": \"armlyun\"\n    },\n    {\n      \"name\": \"Armmen\"\n    },\n    {\n      \"name\": \"armmen\"\n    },\n    {\n      \"name\": \"Armnu\"\n    },\n    {\n      \"name\": \"armnu\"\n    },\n    {\n      \"name\": \"armnum\"\n    },\n    {\n      \"name\": \"Armo\"\n    },\n    {\n      \"name\": \"armo\"\n    },\n    {\n      \"name\": \"armparenleft\"\n    },\n    {\n      \"name\": \"armparenright\"\n    },\n    {\n      \"name\": \"Armpe\"\n    },\n    {\n      \"name\": \"armpe\"\n    },\n    {\n      \"name\": \"Armpyur\"\n    },\n    {\n      \"name\": \"armpyur\"\n    },\n    {\n      \"name\": \"armquestion\"\n    },\n    {\n      \"name\": \"armquotleft\"\n    },\n    {\n      \"name\": \"armquotright\"\n    },\n    {\n      \"name\": \"Armra\"\n    },\n    {\n      \"name\": \"armra\"\n    },\n    {\n      \"name\": \"Armre\"\n    },\n    {\n      \"name\": \"armre\"\n    },\n    {\n      \"name\": \"Armse\"\n    },\n    {\n      \"name\": \"armse\"\n    },\n    {\n      \"name\": \"armsection\"\n    },\n    {\n      \"name\": \"armsep\"\n    },\n    {\n      \"name\": \"Armsha\"\n    },\n    {\n      \"name\": \"armsha\"\n    },\n    {\n      \"name\": \"Armtche\"\n    },\n    {\n      \"name\": \"armtche\"\n    },\n    {\n      \"name\": \"Armto\"\n    },\n    {\n      \"name\": \"armto\"\n    },\n    {\n      \"name\": \"Armtsa\"\n    },\n    {\n      \"name\": \"armtsa\"\n    },\n    {\n      \"name\": \"Armtso\"\n    },\n    {\n      \"name\": \"armtso\"\n    },\n    {\n      \"name\": \"Armtyun\"\n    },\n    {\n      \"name\": \"armtyun\"\n    },\n    {\n      \"name\": \"armuh\"\n    },\n    {\n      \"name\": \"Armvev\"\n    },\n    {\n      \"name\": \"armvev\"\n    },\n    {\n      \"name\": \"Armvo\"\n    },\n    {\n      \"name\": \"armvo\"\n    },\n    {\n      \"name\": \"Armvovyun\"\n    },\n    {\n      \"name\": \"armvovyun\"\n    },\n    {\n      \"name\": \"Armvyun\"\n    },\n    {\n      \"name\": \"armvyun\"\n    },\n    {\n      \"name\": \"Armyech\"\n    },\n    {\n      \"name\": \"armyech\"\n    },\n    {\n      \"name\": \"armyentamna\"\n    },\n    {\n      \"name\": \"Armza\"\n    },\n    {\n      \"name\": \"armza\"\n    },\n    {\n      \"name\": \"Armzhe\"\n    },\n    {\n      \"name\": \"armzhe\"\n    },\n    {\n      \"name\": \"textand\"\n    },\n    {\n      \"name\": \"textanjgic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbreaklig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textexclam\"\n    },\n    {\n      \"name\": \"texthash\"\n    },\n    {\n      \"name\": \"textpercent\"\n    },\n    {\n      \"name\": \"textquestion\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/armtex#c\": [\n      \"latin\",\n      \"notstar\",\n      \"notbar\",\n      \"notexclam\",\n      \"notdots\",\n      \"safe\",\n      \"loosespace=${1:integer}\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"armnumber\",\n      \"armalph\",\n      \"Armalph\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/armtex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/array.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\"\n    },\n    {\n      \"name\": \"extrarowheight\"\n    },\n    {\n      \"name\": \"extratabsurround\"\n    },\n    {\n      \"name\": \"firsthline\"\n    },\n    {\n      \"name\": \"lasthline\"\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcolumntype{${1:name%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcolumntype{${1:name%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"showcols\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arraycols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"cellspace\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"savedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whline\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arrayjobx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newarray\"\n    },\n    {\n      \"name\": \"delarray\"\n    },\n    {\n      \"name\": \"readarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readarray{${1:array name}}{${2:content1&content2&...}}\"\n      }\n    },\n    {\n      \"name\": \"cachedata\"\n    },\n    {\n      \"name\": \"ifemptydata\"\n    },\n    {\n      \"name\": \"emptydatatrue\"\n    },\n    {\n      \"name\": \"emptydatafalse\"\n    },\n    {\n      \"name\": \"ifnormalindex\"\n    },\n    {\n      \"name\": \"normalindextrue\"\n    },\n    {\n      \"name\": \"normalindexfalse\"\n    },\n    {\n      \"name\": \"ifexpandarrayelement\"\n    },\n    {\n      \"name\": \"expandarrayelementtrue\"\n    },\n    {\n      \"name\": \"expandarrayelementfalse\"\n    },\n    {\n      \"name\": \"arrayx\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"arrayx{${1:array name}}(${2:index})\"\n      }\n    },\n    {\n      \"name\": \"clrarray\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"clrarray{${1:array name}}(${2:index})\"\n      }\n    },\n    {\n      \"name\": \"testarray\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"testarray{${1:array name}}(${2:index})\"\n      }\n    },\n    {\n      \"name\": \"EntryArrayJob\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arraysort.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"arrayjobx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"macroswap\"\n    },\n    {\n      \"name\": \"pdftexcmds\",\n      \"if\": \"comparestr\"\n    },\n    {\n      \"name\": \"lcg\",\n      \"if\": \"randompart\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sortArray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sortArray{${1:integer}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"sortArray\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sortArray[${3:comparator%keyvals}]{${1:integer}}{${2:array}}\",\n        \"keys\": [\n          \"\\\\sortArray#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sortArray\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"sortArray[${3:comparator%keyvals}][${4:start}]{${1:integer}}{${2:array}}\",\n        \"keys\": [\n          \"\\\\sortArray#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arraysortcomparestr\",\n      \"if\": \"comparestr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraysortcomparestr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"arraysortcomparenum\",\n      \"if\": \"comparenum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraysortcomparenum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sortArrayPartitionRand\",\n      \"if\": \"randompart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sortArrayPartitionRand{${1:comparator}}{${2:start}}{${3:end}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"sortArrayPartitionMed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sortArrayPartitionMed{${1:comparator}}{${2:start}}{${3:end}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"sortArrayPartitionMid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sortArrayPartitionMid{${1:comparator}}{${2:start}}{${3:end}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"sortArrayPartitionFirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sortArrayPartitionFirst{${1:comparator}}{${2:start}}{${3:end}}{${4:array}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/arraysort#c\": [\n      \"comparestr\",\n      \"comparenum\",\n      \"randompart\"\n    ],\n    \"\\\\sortArray#c\": [\n      \"arraysortcomparestr\",\n      \"arraysortcomparenum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arraysort#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arsclassica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"classicthesis\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"titlesec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"formatchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatchapter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"allcapsspacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allcapsspacing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lowsmallcapsspacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowsmallcapsspacing{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/arsenal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"iwonamath\"\n    },\n    {\n      \"name\": \"kpfonts-otf\",\n      \"if\": \"math=arsenal+kpsans\"\n    },\n    {\n      \"name\": \"kpfonts-otf\",\n      \"if\": \"math=kpsans\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arsenalfamily\"\n    },\n    {\n      \"name\": \"textarsenal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarsenal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthryvnia\"\n    },\n    {\n      \"name\": \"texttugrik\"\n    },\n    {\n      \"name\": \"texttenge\"\n    },\n    {\n      \"name\": \"textruble\"\n    },\n    {\n      \"name\": \"textaldine\"\n    },\n    {\n      \"name\": \"textsmilewhite\"\n    },\n    {\n      \"name\": \"textsmileblack\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/arsenal#c\": [\n      \"default\",\n      \"sfdefault\",\n      \"math=${1|none,arsenal+kpsans,kpsans,iwona|}\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/arsenal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/artthreads.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fitr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setThreadInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setThreadInfo{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setThreadInfo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bArticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bArticle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bArticle,\\\\cArticle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cArticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cArticle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bArticle,\\\\cArticle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setAddToBorder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAddToBorder{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setAddToBorder\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shArticlesPaneActn\"\n    },\n    {\n      \"name\": \"sArticlesPaneActn\"\n    },\n    {\n      \"name\": \"shArticlesPaneReadActn\"\n    },\n    {\n      \"name\": \"sArticlesPaneReadActn\"\n    },\n    {\n      \"name\": \"Thread\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thread{${1:thread title%text}}\"\n      }\n    },\n    {\n      \"name\": \"toggleArticlePane\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toggleArticlePane{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"toggleArticlePane\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toggleArticlePane[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"toggleArticlePaneRead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toggleArticlePaneRead{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"toggleArticlePaneRead\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toggleArticlePaneRead[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"showArticlePane\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showArticlePane{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"showArticlePane\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showArticlePane[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"showArticlePaneRead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showArticlePaneRead{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"showArticlePaneRead\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showArticlePaneRead[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"readArticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readArticle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"threadTitle\"\n    },\n    {\n      \"name\": \"threadAuthor\"\n    },\n    {\n      \"name\": \"threadKeywords\"\n    },\n    {\n      \"name\": \"threadSubject\"\n    },\n    {\n      \"name\": \"tooltipTogglePaneRead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tooltipTogglePaneRead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tooltipShowPaneRead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tooltipShowPaneRead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chkThreadName\"\n    },\n    {\n      \"name\": \"CntArt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CntArtInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnewarticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newarticlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newarticletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readArtPresets\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/artthreads#c\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"preview\",\n      \"!preview\",\n      \"viewMagWin\",\n      \"!viewMagWin\"\n    ],\n    \"\\\\setThreadInfo\": [\n      \"title=${1:text}\",\n      \"author=${1:text}\",\n      \"subject=${1:text}\",\n      \"keywords={${1:word1,word2,...}}\"\n    ],\n    \"\\\\bArticle,\\\\cArticle\": [\n      \"width=\",\n      \"height=\",\n      \"lift=\",\n      \"shift=\"\n    ],\n    \"\\\\setAddToBorder\": [\n      \"addtow=\",\n      \"addtoh=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/artthreads#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/arydshln.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hdashline\"\n    },\n    {\n      \"name\": \"hdashline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hdashline[${1:dash/gap}]\"\n      }\n    },\n    {\n      \"name\": \"cdashline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdashline{${1:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"cdashline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cdashline{${1:i-j}}[${2:dash/gap}]\"\n      }\n    },\n    {\n      \"name\": \"firsthdashline\"\n    },\n    {\n      \"name\": \"lasthdashline\"\n    },\n    {\n      \"name\": \"dashlinedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashlinegap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLnullwide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLsomewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLdrawingmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ADLdrawingmode{${1:mode number%keyvals}}\",\n        \"keys\": [\n          \"\\\\ADLdrawingmode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ADLinactivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLactivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLnoshorthanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLnullwidehline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADLsomewidehline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashgapcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashgapcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"dashgapcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dashgapcolor[${2:model}]{${1:color specs}}\"\n      }\n    },\n    {\n      \"name\": \"nodashgapcolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Array\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Array\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Tabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Tabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Tabular*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Tabular*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Longtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"Longtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\ADLdrawingmode\": [\n      \"1\",\n      \"2\",\n      \"3\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asapsym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"asapArrowLeft\"\n    },\n    {\n      \"name\": \"asapArrowUpLeft\"\n    },\n    {\n      \"name\": \"asapArrowUp\"\n    },\n    {\n      \"name\": \"asapArrowUpRight\"\n    },\n    {\n      \"name\": \"asapArrowRight\"\n    },\n    {\n      \"name\": \"asapArrowDownRight\"\n    },\n    {\n      \"name\": \"asapArrowDown\"\n    },\n    {\n      \"name\": \"asapArrowDownLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenUpLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenUp\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenUpRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenDownRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenDown\"\n    },\n    {\n      \"name\": \"asapArrowCircleOpenDownLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillUpLeft\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillUp\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillUpRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillDownRight\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillDown\"\n    },\n    {\n      \"name\": \"asapArrowCircleFillDownLeft\"\n    },\n    {\n      \"name\": \"asapElevator\"\n    },\n    {\n      \"name\": \"asapStair\"\n    },\n    {\n      \"name\": \"asapStairDown\"\n    },\n    {\n      \"name\": \"asapStairUp\"\n    },\n    {\n      \"name\": \"asapEscalator\"\n    },\n    {\n      \"name\": \"asapEscalatorDown\"\n    },\n    {\n      \"name\": \"asapEscalatorUp\"\n    },\n    {\n      \"name\": \"asapBook\"\n    },\n    {\n      \"name\": \"asapEnvelope\"\n    },\n    {\n      \"name\": \"asapGift\"\n    },\n    {\n      \"name\": \"asapLocker\"\n    },\n    {\n      \"name\": \"asapLostAndFound\"\n    },\n    {\n      \"name\": \"asapMicroscope\"\n    },\n    {\n      \"name\": \"asapCross\"\n    },\n    {\n      \"name\": \"asapPhone\"\n    },\n    {\n      \"name\": \"asapMobilePhone\"\n    },\n    {\n      \"name\": \"asapTablet\"\n    },\n    {\n      \"name\": \"asapMonitor\"\n    },\n    {\n      \"name\": \"asapUtensils\"\n    },\n    {\n      \"name\": \"asapMug\"\n    },\n    {\n      \"name\": \"asapHanger\"\n    },\n    {\n      \"name\": \"asapCigarette\"\n    },\n    {\n      \"name\": \"asapFemaleWithServiceAnimal\"\n    },\n    {\n      \"name\": \"asapMaleWithServiceAnimal\"\n    },\n    {\n      \"name\": \"asapFemaleWalkingDog\"\n    },\n    {\n      \"name\": \"asapMaleWalkingDog\"\n    },\n    {\n      \"name\": \"asapFemaleWalking\"\n    },\n    {\n      \"name\": \"asapMaleWalking\"\n    },\n    {\n      \"name\": \"asapFemaleWithLuggageWaving\"\n    },\n    {\n      \"name\": \"asapMaleWithLuggageWaving\"\n    },\n    {\n      \"name\": \"asapFemaleWithLuggageWaiting\"\n    },\n    {\n      \"name\": \"asapMaleWithLuggageWaiting\"\n    },\n    {\n      \"name\": \"asapFemaleDiscardingTrash\"\n    },\n    {\n      \"name\": \"asapMaleDiscardingTrash\"\n    },\n    {\n      \"name\": \"asapFemaleAtHelpDesk\"\n    },\n    {\n      \"name\": \"asapMaleAtHelpDesk\"\n    },\n    {\n      \"name\": \"asapFemaleHoldingInfant\"\n    },\n    {\n      \"name\": \"asapMaleHoldingInfant\"\n    },\n    {\n      \"name\": \"asapFemaleWalkingStroller\"\n    },\n    {\n      \"name\": \"asapMaleWalkingStroller\"\n    },\n    {\n      \"name\": \"asapFemaleWithChild\"\n    },\n    {\n      \"name\": \"asapMaleWithChild\"\n    },\n    {\n      \"name\": \"asapWalkingCane\"\n    },\n    {\n      \"name\": \"asapWaitingSeated\"\n    },\n    {\n      \"name\": \"asapFemaleAtDrinkingFountain\"\n    },\n    {\n      \"name\": \"asapMaleAtDrinkingFountain\"\n    },\n    {\n      \"name\": \"asapFemaleAdult\"\n    },\n    {\n      \"name\": \"asapMaleAdult\"\n    },\n    {\n      \"name\": \"asapFemaleChild\"\n    },\n    {\n      \"name\": \"asapMaleChild\"\n    },\n    {\n      \"name\": \"asapWheelchairStationary\"\n    },\n    {\n      \"name\": \"asapWheelchairInMotion\"\n    },\n    {\n      \"name\": \"asapPregnant\"\n    },\n    {\n      \"name\": \"asapGroupMeeting\"\n    },\n    {\n      \"name\": \"asapCycling\"\n    },\n    {\n      \"name\": \"asapDog\"\n    },\n    {\n      \"name\": \"asapInfant\"\n    },\n    {\n      \"name\": \"asapInformationSign\"\n    },\n    {\n      \"name\": \"asapHospitalSign\"\n    },\n    {\n      \"name\": \"asapHelpSign\"\n    },\n    {\n      \"name\": \"asapDollarSign\"\n    },\n    {\n      \"name\": \"asapEmergencySign\"\n    },\n    {\n      \"name\": \"asapParkingSign\"\n    },\n    {\n      \"name\": \"asapWalkSign\"\n    },\n    {\n      \"name\": \"asapDogSign\"\n    },\n    {\n      \"name\": \"asapMobilePhoneSign\"\n    },\n    {\n      \"name\": \"asapCigaretteSign\"\n    },\n    {\n      \"name\": \"asapNotSign\"\n    },\n    {\n      \"name\": \"asapNotInformationSign\"\n    },\n    {\n      \"name\": \"asapNotHospitalSign\"\n    },\n    {\n      \"name\": \"asapNotHelpSign\"\n    },\n    {\n      \"name\": \"asapNotDollarSign\"\n    },\n    {\n      \"name\": \"asapNotEmergencySign\"\n    },\n    {\n      \"name\": \"asapNotParkingSign\"\n    },\n    {\n      \"name\": \"asapNotWalkSign\"\n    },\n    {\n      \"name\": \"asapNotDogSign\"\n    },\n    {\n      \"name\": \"asapNotMobilePhoneSign\"\n    },\n    {\n      \"name\": \"asapNotCigaretteSign\"\n    },\n    {\n      \"name\": \"asapBoat\"\n    },\n    {\n      \"name\": \"asapHelicopter\"\n    },\n    {\n      \"name\": \"asapAirplaneOverhead\"\n    },\n    {\n      \"name\": \"asapAirplaneTakeoff\"\n    },\n    {\n      \"name\": \"asapAirplaneLanding\"\n    },\n    {\n      \"name\": \"asapBicycle\"\n    },\n    {\n      \"name\": \"asapAutomobile\"\n    },\n    {\n      \"name\": \"asapTaxi\"\n    },\n    {\n      \"name\": \"asapAutomobileWithKey\"\n    },\n    {\n      \"name\": \"asapBus\"\n    },\n    {\n      \"name\": \"asapTrain\"\n    },\n    {\n      \"name\": \"asapsym\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ascii.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textascii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textascii{${1:char-codes}}\"\n      }\n    },\n    {\n      \"name\": \"asciifamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asciispace\"\n    },\n    {\n      \"name\": \"asciiquotedbl\"\n    },\n    {\n      \"name\": \"asciihash\"\n    },\n    {\n      \"name\": \"asciidollar\"\n    },\n    {\n      \"name\": \"asciipercent\"\n    },\n    {\n      \"name\": \"asciiampersand\"\n    },\n    {\n      \"name\": \"asciiquoteacute\"\n    },\n    {\n      \"name\": \"asciibackslash\"\n    },\n    {\n      \"name\": \"asciicircum\"\n    },\n    {\n      \"name\": \"asciiunderscore\"\n    },\n    {\n      \"name\": \"asciiquotegrave\"\n    },\n    {\n      \"name\": \"asciilbrace\"\n    },\n    {\n      \"name\": \"asciivert\"\n    },\n    {\n      \"name\": \"asciirbrace\"\n    },\n    {\n      \"name\": \"asciitilde\"\n    },\n    {\n      \"name\": \"splitvert\"\n    },\n    {\n      \"name\": \"isosplitvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NUL\"\n    },\n    {\n      \"name\": \"SOH\"\n    },\n    {\n      \"name\": \"STX\"\n    },\n    {\n      \"name\": \"ETX\"\n    },\n    {\n      \"name\": \"EOT\"\n    },\n    {\n      \"name\": \"ENQ\"\n    },\n    {\n      \"name\": \"ACK\"\n    },\n    {\n      \"name\": \"BEL\"\n    },\n    {\n      \"name\": \"BS\"\n    },\n    {\n      \"name\": \"HT\"\n    },\n    {\n      \"name\": \"LF\"\n    },\n    {\n      \"name\": \"VT\"\n    },\n    {\n      \"name\": \"FF\"\n    },\n    {\n      \"name\": \"CR\"\n    },\n    {\n      \"name\": \"SO\"\n    },\n    {\n      \"name\": \"SI\"\n    },\n    {\n      \"name\": \"DLE\"\n    },\n    {\n      \"name\": \"DCa\"\n    },\n    {\n      \"name\": \"DCb\"\n    },\n    {\n      \"name\": \"DCc\"\n    },\n    {\n      \"name\": \"DCd\"\n    },\n    {\n      \"name\": \"NAK\"\n    },\n    {\n      \"name\": \"SYN\"\n    },\n    {\n      \"name\": \"ETB\"\n    },\n    {\n      \"name\": \"CAN\"\n    },\n    {\n      \"name\": \"EM\"\n    },\n    {\n      \"name\": \"SUB\"\n    },\n    {\n      \"name\": \"ESC\"\n    },\n    {\n      \"name\": \"FS\"\n    },\n    {\n      \"name\": \"GS\"\n    },\n    {\n      \"name\": \"RS\"\n    },\n    {\n      \"name\": \"US\"\n    },\n    {\n      \"name\": \"DEL\"\n    },\n    {\n      \"name\": \"NBSP\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asciilist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AsciiListFromFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AsciiListFromFile{${1:item chars}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AsciiListFromFile[${3:environments%keyvals}]{${1:item chars}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{AsciiList}#c,\\\\AsciiListFromFile#c,\\\\AsciiListFromFiles#c,\\\\AsciiListSetEnvironments#c,\\\\NewAsciiListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AsciiListFromFiles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AsciiListFromFiles{${1:item chars}}{${2:file list%file}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListFromFiles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AsciiListFromFiles[${3:environments%keyvals}]{${1:item chars}}{${2:file list%file}}\",\n        \"keys\": [\n          \"\\\\begin{AsciiList}#c,\\\\AsciiListFromFile#c,\\\\AsciiListFromFiles#c,\\\\AsciiListSetEnvironments#c,\\\\NewAsciiListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AsciiListSetAutochars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiListSetAutochars{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"UP\"\n    },\n    {\n      \"name\": \"UP\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"UP[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"UPTO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UPTO{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiDocListFromFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiDocListFromFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiDocListFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AsciiDocListFromFile[${2:char1=env1,...%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{AsciiDocList}#c,\\\\AsciiDocListFromFile#c,\\\\AsciiDocListFromFiles#c,\\\\AsciiDocListSetEnvironments#c,\\\\NewAsciiDocListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AsciiDocListFromFiles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiDocListFromFiles{${1:file list%file}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiDocListFromFiles\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AsciiDocListFromFiles[${2:char1=env1,...%keyvals}]{${1:file list%file}}\",\n        \"keys\": [\n          \"\\\\begin{AsciiDocList}#c,\\\\AsciiDocListFromFile#c,\\\\AsciiDocListFromFiles#c,\\\\AsciiDocListSetEnvironments#c,\\\\NewAsciiDocListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AsciiListRegisterEnv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AsciiListRegisterEnv{${1:envname%specialDef}}{${2:begindef%definition}}{${3:enddef%definition}}{${4:itemdef%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListRegisterDescEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiListRegisterDescEnv{${1:envname%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListEndArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiListEndArg{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListEndOArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiListEndOArg{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiListSetEnvironments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiListSetEnvironments{${1:environments%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"NewAsciiListEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewAsciiListEnv{${1:item chars}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewAsciiListEnv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewAsciiListEnv[${3:environments%keyvals}]{${1:item chars}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiDocListSetEnvironments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsciiDocListSetEnvironments{${1:char1=env1,...%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"NewAsciiDocListEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewAsciiDocListEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewAsciiDocListEnv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewAsciiDocListEnv[${2:char1=env1,...%keyvals}]{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"AsciiList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:item chars}}\"\n      }\n    },\n    {\n      \"name\": \"AsciiList\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:environments%keyvals}]{${1:item chars}}\",\n        \"keys\": [\n          \"\\\\begin{AsciiList}#c,\\\\AsciiListFromFile#c,\\\\AsciiListFromFiles#c,\\\\AsciiListSetEnvironments#c,\\\\NewAsciiListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AsciiDocList\"\n    },\n    {\n      \"name\": \"AsciiDocList\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:char1=env1,...%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{AsciiDocList}#c,\\\\AsciiDocListFromFile#c,\\\\AsciiDocListFromFiles#c,\\\\AsciiDocListSetEnvironments#c,\\\\NewAsciiDocListEnv#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{AsciiList}#c,\\\\AsciiListFromFile#c,\\\\AsciiListFromFiles#c,\\\\AsciiListSetEnvironments#c,\\\\NewAsciiListEnv#c\": [\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"section*\",\n      \"subsection*\",\n      \"subsubsection*\",\n      \"paragraph\",\n      \"Heading\",\n      \"Heading*\",\n      \"description\",\n      \"Description\",\n      \"itemize\",\n      \"enumerate\",\n      \"compactenum\",\n      \"compactenum<${1:label}>\",\n      \"compactitem\",\n      \"compactitem<${1:label}>\",\n      \"compactdesc\",\n      \"CompactDesc\",\n      \"Heading\",\n      \"Heading<${1:level}>\",\n      \"Heading*\",\n      \"Heading*<${1:level}>\",\n      \"%asciiregisteredenv\"\n    ],\n    \"\\\\begin{AsciiDocList}#c,\\\\AsciiDocListFromFile#c,\\\\AsciiDocListFromFiles#c,\\\\AsciiDocListSetEnvironments#c,\\\\NewAsciiDocListEnv#c\": [\n      \"*=${1:envname}\",\n      \"-=${1:envname}\",\n      \"!=${1:envname}\",\n      \"/=${1:envname}\",\n      \"+=${1:envname}\",\n      \"?=${1:envname}\",\n      \";=${1:envname}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ascmac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tascmac\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/askinclude.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makematch\",\n      \"if\": \"makematch\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/askinclude#c\": [\n      \"makematch\",\n      \"pdfmatch\",\n      \"noregexp\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/askinclude#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/askincv1.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"infile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/askmaps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"askmapi\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapi{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapii\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapii{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapiii\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapiii{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapiiialt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapiiialt{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapiv{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"askmapv{${1:output var}}{${2:input vars}}{${3:options}}{${4:func vals}}{${5:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmap\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"askmap{${1:num}}{${2:output var}}{${3:input vars}}{${4:options}}{${5:func vals}}{${6:pic cmds}}\"\n      }\n    },\n    {\n      \"name\": \"askmapunitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapsversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapsdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapindexsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapcontentsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapbitcombinationsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapvarsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"askmapargumentstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"askmapargumentstring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"askmapgetchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"askmapgetchar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"askmapgetonechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"askmapgetonechar{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/askmaps#c\": [\n      \"disablef\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/askmaps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/asmewide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"cuted\"\n    },\n    {\n      \"name\": \"flushend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"savparskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"widetext\"\n    },\n    {\n      \"name\": \"widetext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:stripsep}]\"\n      }\n    },\n    {\n      \"name\": \"widetext\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:stripsep}][${2:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/asmewide#c\": [\n      \"raggedend\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/asmewide#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/assoccnt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setcounter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setcounter[${3:options%keyvals}]{${1:counter}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\setcounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAssociatedCounters{${1:driver counter}}{${2:associated counters list}}\"\n      }\n    },\n    {\n      \"name\": \"AddAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddAssociatedCounters{${1:driver counter}}{${2:associated counters list}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveAssociatedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveAssociatedCounter{${1:driver counter}}{${2:associated counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveAssociatedCounters{${1:driver counter}}{${2:associated counters list}}\"\n      }\n    },\n    {\n      \"name\": \"ClearAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearAssociatedCounters{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"AddDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddDriverCounter{${1:driver counter name}}\"\n      }\n    },\n    {\n      \"name\": \"ClearDriverCounter\"\n    },\n    {\n      \"name\": \"IsAssociatedToCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IsAssociatedToCounter{${1:driver counter}}{${2:associated counter}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetDriverCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"IsAssociatedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsAssociatedCounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsDriverCounter{${1:driver counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsSuspendedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsSuspendedCounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"AssociatedDriverCounterInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AssociatedDriverCounterInfo{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"LastAddedToCounter\"\n    },\n    {\n      \"name\": \"LastSteppedCounter\"\n    },\n    {\n      \"name\": \"LastRefSteppedCounter\"\n    },\n    {\n      \"name\": \"LastSetCounter\"\n    },\n    {\n      \"name\": \"PrettyPrintCounterName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrettyPrintCounterName{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"PrettyPrintCounterName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PrettyPrintCounterName[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\PrettyPrintCounterName\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GeneralCounterInfoColor\"\n    },\n    {\n      \"name\": \"DriverCounterInfoColor\"\n    },\n    {\n      \"name\": \"AssociatedCounterInfoColor\"\n    },\n    {\n      \"name\": \"SuspendCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuspendCounters{${1:counters list}}\"\n      }\n    },\n    {\n      \"name\": \"ResumeSuspendedCounters\"\n    },\n    {\n      \"name\": \"AssociationStatistics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClearAssociatedCountersList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearAssociatedCountersList{${1:associated counters list}}\"\n      }\n    },\n    {\n      \"name\": \"ClearDriverCountersList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsInResetList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IsInResetList{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/assoccnt#c\": [\n      \"globalsuspend\"\n    ],\n    \"\\\\setcounter\": [\n      \"AssociatedToo\",\n      \"AssociatedCounters={${1:list of counters}}\"\n    ],\n    \"\\\\PrettyPrintCounterName\": [\n      \"countertype=${1|general,driver,associated|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/assoccnt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/association-matrix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"amxrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amxrow{${1:key%plain}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"amxcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amxcol{${1:key%plain}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"amxassociate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amxassociate{${1:col-key}}{${2:row-key}}\"\n      }\n    },\n    {\n      \"name\": \"amxrows\"\n    },\n    {\n      \"name\": \"amxcols\"\n    },\n    {\n      \"name\": \"amxrowtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxrowtext{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"amxcoltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxcoltext{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"amxgenerate\"\n    },\n    {\n      \"name\": \"amxgenerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"amxgenerate[${1:row-key}]\"\n      }\n    },\n    {\n      \"name\": \"amxsetTopCorner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxsetTopCorner{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"amxsetColumnHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxsetColumnHeading{${1:render-command}}\"\n      }\n    },\n    {\n      \"name\": \"amxsetRowFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxsetRowFormat{${1:render-command}}\"\n      }\n    },\n    {\n      \"name\": \"amxsetRowFormatHighlighted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxsetRowFormatHighlighted{${1:render-command}}\"\n      }\n    },\n    {\n      \"name\": \"amxsetIndicator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amxsetIndicator{${1:indicator}}\"\n      }\n    },\n    {\n      \"name\": \"amxsetIndicatorHighlighted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amxsetIndicatorHighlighted{${1:hl-indicator}}{${2:ot-indicator}}\"\n      }\n    },\n    {\n      \"name\": \"amxReset\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/assurelatexmode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HashWedgeAsSubst\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"HashWedgeAsSubst(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"HashWedgeAsSubstTeXLaTeX(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"HashWedgeAsSubstX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"HashWedgeAsSubstX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstXTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"HashWedgeAsSubstXTeXLaTeX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstXTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"HashWedgeAsSubstXTeXLaTeX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"PutBondLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutBondLine(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"PutDashedBond\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutDashedBond(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"PutTeXLaTeXLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutTeXLaTeXLine(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"PutTeXLaTeXdashed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutTeXLaTeXdashed(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubst\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WedgeAsSubst(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WedgeAsSubstTeXLaTeX(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WedgeAsSubstX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"WedgeAsSubstX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstXTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WedgeAsSubstXTeXLaTeX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"WedgeAsSubstX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"dashhasheddash\"\n    },\n    {\n      \"name\": \"putRoundArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putRoundArrow{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"putRoundArrow[${2:arrowhead}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrowTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putRoundArrowTeXLaTeX{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrowTeXLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"putRoundArrowTeXLaTeX[${2:arrowhead}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"thickLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicklines\"\n    },\n    {\n      \"name\": \"thinLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinlines\"\n    },\n    {\n      \"name\": \"wedgehasheddash\"\n    },\n    {\n      \"name\": \"wedgehashedwedge\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asternote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\",\n      \"if\": \"luajapanese\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setasternotenoindent\"\n    },\n    {\n      \"name\": \"setasternoteindent\"\n    },\n    {\n      \"name\": \"setasternotetext\"\n    },\n    {\n      \"name\": \"setasternotesuperscript\"\n    },\n    {\n      \"name\": \"setasterreftext\"\n    },\n    {\n      \"name\": \"setasterrefsuperscript\"\n    },\n    {\n      \"name\": \"setasternumbertext\"\n    },\n    {\n      \"name\": \"asternumbersetsuperscript\"\n    },\n    {\n      \"name\": \"asternotereset\"\n    },\n    {\n      \"name\": \"asternote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternote{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asternotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternotetext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asternotesuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternotesuperscript{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asterref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asterref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asterreftext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asterreftext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asterrefsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asterrefsuperscript{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asternumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternumber{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"asternumbertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternumbertext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"asternumbersuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asternumbersuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"theasternotecounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/asternote#c\": [\n      \"japanese\",\n      \"luajapanese\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/asternote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/asyalign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ASYbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ASYbase{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ASYaligned\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"ASYaligned(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ASYalignT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ASYalignT(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ASYalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ASYalign(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ASYraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ASYraw{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asycolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asyfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"asyalign\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"import\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"asyprocess\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"asyfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"asyfig*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyfig*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"asypath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asypath{${1:path%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/asyfig#c\": [\n      \"process=${1|all,none,auto|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/asyfig#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/asymptote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"asyinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyinclude{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"asyinclude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"asyinclude[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\begin{asy},\\\\asyinclude,\\\\asysetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"asysetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asysetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{asy},\\\\asyinclude,\\\\asysetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ASYanimategraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ASYanimategraphics{${1:frame rate}}{${2:file}}{${3:first}}{${4:last}}\"\n      }\n    },\n    {\n      \"name\": \"ASYanimategraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ASYanimategraphics[${5:options%keyvals}]{${1:frame rate}}{${2:file}}{${3:first}}{${4:last}}\",\n        \"keys\": [\n          \"\\\\ASYanimategraphics#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Asymptote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theasy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AsyStream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AsyPreStream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifASYinline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYinlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYinlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifASYattach\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYattachtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYattachfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifASYkeepAspect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYkeepAspecttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYkeepAspectfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asylatexdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asydir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYasydir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYlatexdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifASYPDF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYPDFtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYPDFfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AsyExtension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteAsyLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteAsyLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"globalASYdefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteGlobalAsyLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteGlobalAsyLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessAsymptote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessAsymptote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentAsymptote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xAsymptote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessAsymptoteLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisAsymptote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AsyFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYviewportwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ASYviewportheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"asy\"\n    },\n    {\n      \"name\": \"asy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{asy},\\\\asyinclude,\\\\asysetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"asydef\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/asymptote#c\": [\n      \"inline\",\n      \"attach\"\n    ],\n    \"\\\\begin{asy},\\\\asyinclude,\\\\asysetup\": [\n      \"width=\",\n      \"height=\",\n      \"keepAspect\",\n      \"viewportwidth=\",\n      \"viewportheight=\",\n      \"attach\",\n      \"inline\"\n    ],\n    \"\\\\ASYanimategraphics#c\": [\n      \"label=${1:label}\",\n      \"type=${1:file ext}\",\n      \"poster\",\n      \"poster=${2|first,last,none,${1:number}|}\",\n      \"every=${1:number}\",\n      \"autopause\",\n      \"autoplay\",\n      \"autoresume\",\n      \"loop\",\n      \"palindrome\",\n      \"step\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:left bottom right top}\",\n      \"clip\",\n      \"hiresbb\",\n      \"interpolate\",\n      \"pagebox=\",\n      \"controls=${1|all,true,on,none,false,off|}\",\n      \"controlsaligned=\",\n      \"buttonsize=\",\n      \"buttonbg=\",\n      \"buttonfg=\",\n      \"buttonalpha=${1:opacity}\",\n      \"draft\",\n      \"final\",\n      \"nomouse\",\n      \"method=${1|icon,widget,ocg|}\",\n      \"measure\",\n      \"alttext=${2|none,${1:alt description}|}\",\n      \"begin={${1:begin code}}\",\n      \"end={${1:end code}}\",\n      \"timeline=${1:file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/asymptote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/asypictureB.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"asyset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{asypicture}#c,\\\\asyset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getfontsize\"\n    },\n    {\n      \"name\": \"asylistingfile\"\n    },\n    {\n      \"name\": \"RequireAsyRecompile\"\n    },\n    {\n      \"name\": \"AsyCompileIfNecessary\"\n    },\n    {\n      \"name\": \"ASYPICcomparefiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ASYPICcomparefiles{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"copyfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyfile{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"deletefile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deletefile{${1:file%file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"asypicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{asypicture}#c,\\\\asyset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"asyheader\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{asypicture}#c,\\\\asyset#c\": [\n      \"name=${1:name}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/asyprocess.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"preview\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProcessAsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowAsy\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/at.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"atallowdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atdisallowdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atshow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atlet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aton\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/at#c\": [\n      \"digits\",\n      \"nodigits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/at#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/atbegshi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AtBeginShipout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipout{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutAddToBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutAddToBox{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutAddToBoxForeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutAddToBoxForeground{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutBoxDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutBoxHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutBoxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutDiscard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutFirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutFirst{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutNext{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutOriginalShipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginShipoutUpperLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutUpperLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutUpperLeftForeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutUpperLeftForeground{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/atendofenv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AtEndOfEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfEnv{${1:envname}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/athnum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"athnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"athnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/atkinson.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"atkinsonfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atkinson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atkinsonlf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atkinsontlf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/atkinson#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"t\",\n      \"proportional\",\n      \"p\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/atkinson#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/attachfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"attachfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noattachfile\"\n    },\n    {\n      \"name\": \"noattachfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noattachfile[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notextattachfile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notextattachfile[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textattachfile{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textattachfile[${3:options%keyvals}]{${1:file}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"attachfilesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfilesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/attachfile#c\": [\n      \"addtopdfcreator=${1:text}\",\n      \"allbordercolors=\",\n      \"allcolors=\",\n      \"anchorcolor=\",\n      \"backref=${1|section,slide,page,none,false|}\",\n      \"baseurl=${1:URL}\",\n      \"bookmarks\",\n      \"bookmarksdepth\",\n      \"bookmarksdepth=${1:number}\",\n      \"bookmarksnumbered\",\n      \"bookmarksopen\",\n      \"bookmarksopenlevel=${1:level}\",\n      \"bookmarkstype=\",\n      \"breaklinks\",\n      \"citebordercolor=\",\n      \"citecolor=\",\n      \"CJKbookmarks\",\n      \"colorlinks\",\n      \"customdriver=${1:file}\",\n      \"debug\",\n      \"destlabel\",\n      \"draft\",\n      \"driverfallback=${1:driver}\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipdfmx-outline-open\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"encap=${1:character}\",\n      \"extension=${1:file ext}\",\n      \"filebordercolor=\",\n      \"filecolor=\",\n      \"final\",\n      \"frenchlinks\",\n      \"hidelinks\",\n      \"hyperfigures\",\n      \"hyperfootnotes\",\n      \"hyperindex\",\n      \"hypertex\",\n      \"hypertexnames\",\n      \"implicit\",\n      \"latex2html\",\n      \"linkbordercolor=\",\n      \"linkcolor=\",\n      \"linkfileprefix=${1:prefix}\",\n      \"linktoc=${1|section,page,all,none|}\",\n      \"linktocpage\",\n      \"localanchorname\",\n      \"menubordercolor=\",\n      \"menucolor=\",\n      \"nativepdf\",\n      \"naturalnames\",\n      \"nesting\",\n      \"ocgcolorlinks\",\n      \"pageanchor\",\n      \"pagebackref\",\n      \"pdfa\",\n      \"pdfauthor=${1:author}\",\n      \"pdfborder=\",\n      \"pdfborderstyle=\",\n      \"pdfcenterwindow\",\n      \"pdfcreationdate=${1:date}\",\n      \"pdfcreator=${1:creator}\",\n      \"pdfdirection=${1|L2R,R2L|}\",\n      \"pdfdisplaydoctitle\",\n      \"pdfduplex\",\n      \"pdfencoding=${1|pdfdoc,unicode,auto|}\",\n      \"pdfescapeform\",\n      \"pdffitwindow\",\n      \"pdfhighlight=${1|/I,/N,/O,/P|}\",\n      \"pdfinfo={${1:info keys}}\",\n      \"pdfkeywords={${1:keyword list}}\",\n      \"pdflang=${1:lang id}\",\n      \"pdflinkmargin=\",\n      \"pdfmark\",\n      \"pdfmenubar\",\n      \"pdfmoddate=${1:date}\",\n      \"pdfnewwindow\",\n      \"pdfnonfullscreenpagemode\",\n      \"pdfnumcopies=${1:integer}\",\n      \"pdfpageduration=\",\n      \"pdfpagelabels\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight|}\",\n      \"pdfpagemode=${1|FullScreen,UseNone,UseOutlines,UseOC,UseAttachments,UseThumbs|}\",\n      \"pdfpagescrop=\",\n      \"pdfpagetransition=${1|Split,Blinds,Box,Wipe,Dissolve,Glitter,R,Fly,Push,Cover,Uncover,Fade|}\",\n      \"pdfpicktraybypdfsize\",\n      \"pdfprintarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintpagerange=\",\n      \"pdfprintscaling=${1|None,AppDefault|}\",\n      \"pdfproducer=${1:producer}\",\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfstartpage=${1:page number}\",\n      \"pdfstartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdftex\",\n      \"pdftitle=${1:title}\",\n      \"pdftoolbar\",\n      \"pdftrapped=${1|True,False,Unknown|}\",\n      \"pdfusetitle\",\n      \"pdfversion=${1:version}\",\n      \"pdfview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfviewarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfviewclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfwindowui\",\n      \"plainpages\",\n      \"ps2pdf\",\n      \"psdextra\",\n      \"raiselinks\",\n      \"runbordercolor=\",\n      \"runcolor=\",\n      \"setpagesize\",\n      \"tex4ht\",\n      \"textures\",\n      \"typexml\",\n      \"unicode\",\n      \"urlbordercolor=\",\n      \"urlcolor=\",\n      \"verbose\",\n      \"vtex\",\n      \"xetex\"\n    ],\n    \"\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\": [\n      \"appearance\",\n      \"author=${1:text}\",\n      \"color=${1:<red> <green> <blue>}\",\n      \"created=${1:PDF date}\",\n      \"date=${1:PDF date}\",\n      \"description=${1:text}\",\n      \"icon=${1|Graph,Paperclip,PushPin,Tag|}\",\n      \"mimetype=${1:type/subtype}\",\n      \"modified=${1:PDF date}\",\n      \"print\",\n      \"size=${1:integer}\",\n      \"subject=${1:text}\",\n      \"timezone=${1:offset}\",\n      \"zoom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/attachfile#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/attachfile2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"infwaerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hycolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"attachfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noattachfile\"\n    },\n    {\n      \"name\": \"noattachfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noattachfile[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notextattachfile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notextattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notextattachfile[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textattachfile{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textattachfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textattachfile[${3:options%keyvals}]{${1:file}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"attachfilesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfilesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/attachfile2#c\": [\n      \"draft\",\n      \"final\",\n      \"nofiles\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"driverfallback=${1:driver}\"\n    ],\n    \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\": [\n      \"appearance\",\n      \"author=${1:text}\",\n      \"color=${1:color}\",\n      \"created=${1:PDF date}\",\n      \"date=${1:PDF date}\",\n      \"description=${1:text}\",\n      \"icon=${1|Graph,Paperclip,PushPin,Tag|}\",\n      \"mimetype=${1:type/subtype}\",\n      \"modified=${1:PDF date}\",\n      \"print\",\n      \"size=${1:integer}\",\n      \"subject=${1:text}\",\n      \"timezone=${1:offset}\",\n      \"zoom\",\n      \"locked\",\n      \"scale=${1:factor}\",\n      \"ucfilespec=\",\n      \"annotname=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/attachfile2#c\",\n    \"\\\\usepackage/attachfile2#c,\\\\attachfile,\\\\attachfilesetup,\\\\noattachfile,\\\\notextattachfile,\\\\textattachfile\"\n  ]\n}"
  },
  {
    "path": "dev/packages/attrib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attrib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attrib{${1:attribution}}\"\n      }\n    },\n    {\n      \"name\": \"normalcitations\"\n    },\n    {\n      \"name\": \"attribcitations\"\n    },\n    {\n      \"name\": \"AttribMinSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreTrib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PostTrib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AttribInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PostCite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PostCiteWork\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreCite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreCiteWork\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/atveryend.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BeforeClearDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeClearDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterLastShipout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterLastShipout{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVeryEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVeryEndDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndAfterFileList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndAfterFileList{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVeryVeryEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVeryVeryEnd{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/auncial.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aunclfamily\"\n    },\n    {\n      \"name\": \"textauncl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textauncl{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/aurical.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Fontauri\"\n    },\n    {\n      \"name\": \"Fontskrivan\"\n    },\n    {\n      \"name\": \"Fontlukas\"\n    },\n    {\n      \"name\": \"Fontamici\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aurical#c\": [\n      \"backslant\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aurical#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/aurl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"daurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"daurl{${1:prefix}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"aurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aurl{${1:prefix%keyvals}}{${2:suffix}}\",\n        \"keys\": [\n          \"\\\\aurl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/aurl#c\": [\n      \"100\",\n      \"1000\"\n    ],\n    \"\\\\aurl#c\": [\n      \"yago\",\n      \"rdf\",\n      \"foaf\",\n      \"dbo\",\n      \"dbp\",\n      \"dc\",\n      \"owl\",\n      \"rdfs\",\n      \"ont\",\n      \"geo\",\n      \"skos\",\n      \"onto\",\n      \"rss\",\n      \"sioc\",\n      \"gldp\",\n      \"xsd\",\n      \"fb\",\n      \"geonames\",\n      \"sc\",\n      \"org\",\n      \"dcterms\",\n      \"gr\",\n      \"qb\",\n      \"bibo\",\n      \"prov\",\n      \"commerce\",\n      \"dbpedia\",\n      \"dct\",\n      \"md\",\n      \"sd\",\n      \"swrc\",\n      \"vcard\",\n      \"dbpprop\",\n      \"dcat\",\n      \"akt\",\n      \"void\",\n      \"vann\",\n      \"pto\",\n      \"dcmit\",\n      \"content\",\n      \"ex\",\n      \"doap\",\n      \"event\",\n      \"cyc\",\n      \"swc\",\n      \"xhtml\",\n      \"fn\",\n      \"http\",\n      \"aiiso\",\n      \"schema\",\n      \"wot\",\n      \"cc\",\n      \"nie\",\n      \"dc11\",\n      \"rr\",\n      \"gen\",\n      \"mo\",\n      \"bill\",\n      \"rel\",\n      \"d2rq\",\n      \"ical\",\n      \"test2\",\n      \"bio\",\n      \"ad\",\n      \"cv\",\n      \"earl\",\n      \"ma\",\n      \"og\",\n      \"factbook\",\n      \"admin\",\n      \"dbr\",\n      \"air\",\n      \"log\",\n      \"media\",\n      \"daia\",\n      \"oo\",\n      \"co\",\n      \"ctag\",\n      \"book\",\n      \"tag\",\n      \"botany\",\n      \"days\",\n      \"biblio\",\n      \"dv\",\n      \"vs\",\n      \"musim\",\n      \"dir\",\n      \"cs\",\n      \"rdfg\",\n      \"osag\",\n      \"dcq\",\n      \"ome\",\n      \"cal\",\n      \"afn\",\n      \"ir\",\n      \"tzont\",\n      \"af\",\n      \"reco\",\n      \"pc\",\n      \"cld\",\n      \"xhv\",\n      \"xs\",\n      \"rev\",\n      \"xfn\",\n      \"rif\",\n      \"cmp\",\n      \"sr\",\n      \"memo\",\n      \"lomvoc\",\n      \"cfp\",\n      \"giving\",\n      \"ok\",\n      \"sism\",\n      \"xf\",\n      \"swanq\",\n      \"swande\",\n      \"mu\",\n      \"math\",\n      \"dcn\",\n      \"myspace\",\n      \"swrcfe\",\n      \"type\",\n      \"owlim\",\n      \"jdbc\",\n      \"con\",\n      \"time\",\n      \"frbr\",\n      \"drugbank\",\n      \"spacerel\",\n      \"gn\",\n      \"cert\",\n      \"voaf\",\n      \"swrl\",\n      \"swrlb\",\n      \"ac\",\n      \"nfo\",\n      \"marcrel\",\n      \"sioct\",\n      \"cnt\",\n      \"sider\",\n      \"wn20schema\",\n      \"movie\",\n      \"rsa\",\n      \"xtypes\",\n      \"adms\",\n      \"omn\",\n      \"ov\",\n      \"akts\",\n      \"dcterm\",\n      \"db\",\n      \"service\",\n      \"lgd\",\n      \"loc\",\n      \"isbd\",\n      \"acm\",\n      \"crm\",\n      \"test\",\n      \"po\",\n      \"prv\",\n      \"uniprot\",\n      \"ore\",\n      \"prism\",\n      \"oa\",\n      \"wn\",\n      \"acc\",\n      \"sdmx\",\n      \"sf\",\n      \"zoology\",\n      \"daml\",\n      \"madsrdf\",\n      \"pmlj\",\n      \"dcam\",\n      \"granatum\",\n      \"link\",\n      \"ndl\",\n      \"music\",\n      \"pr\",\n      \"wo\",\n      \"tl\",\n      \"ptr\",\n      \"acl\",\n      \"abc\",\n      \"ldp\",\n      \"scovo\",\n      \"biocore\",\n      \"unit\",\n      \"umbel\",\n      \"core\",\n      \"tmo\",\n      \"lode\",\n      \"dbpediaowl\",\n      \"nsogi\",\n      \"room\",\n      \"java\",\n      \"politico\",\n      \"whois\",\n      \"ya\",\n      \"taxo\",\n      \"bio2rdf\",\n      \"protege\",\n      \"omt\",\n      \"skosxl\",\n      \"scot\",\n      \"mit\",\n      \"atom\",\n      \"sp\",\n      \"eg\",\n      \"exif\",\n      \"oauth\",\n      \"fresnel\",\n      \"wdrs\",\n      \"ti\",\n      \"compass\",\n      \"usgov\",\n      \"user\",\n      \"rnews\",\n      \"rec\",\n      \"bf\",\n      \"chord\",\n      \"rep\",\n      \"omb\",\n      \"dce\",\n      \"courseware\",\n      \"spin\",\n      \"geosparql\",\n      \"doc\",\n      \"lv\",\n      \"lfm\",\n      \"irw\",\n      \"resource\",\n      \"bibtex\",\n      \"space\",\n      \"atomix\",\n      \"dctype\",\n      \"iswc\",\n      \"so\",\n      \"nao\",\n      \"admingeo\",\n      \"formats\",\n      \"vote\",\n      \"powder\",\n      \"fec\",\n      \"irrl\",\n      \"doac\",\n      \"geoes\",\n      \"spl\",\n      \"dailymed\",\n      \"rei\",\n      \"sede\",\n      \"nco\",\n      \"wordmap\",\n      \"ecs\",\n      \"imm\",\n      \"audio\",\n      \"hcterms\",\n      \"opm\",\n      \"go\",\n      \"resex\",\n      \"lx\",\n      \"lingvoj\",\n      \"copyright\",\n      \"dul\",\n      \"affy\",\n      \"prj\",\n      \"wgs84\",\n      \"kwijibo\",\n      \"dblp\",\n      \"coref\",\n      \"nrl\",\n      \"kb\",\n      \"xro\",\n      \"xen\",\n      \"os\",\n      \"video\",\n      \"biol\",\n      \"gd\",\n      \"lastfm\",\n      \"label\",\n      \"lfn\",\n      \"lifecycle\",\n      \"p3p\",\n      \"spc\",\n      \"meetup\",\n      \"contact\",\n      \"sesame\",\n      \"resist\",\n      \"nexif\",\n      \"climb\",\n      \"code\",\n      \"moat\",\n      \"sdl\",\n      \"nmo\",\n      \"wv\",\n      \"omp\",\n      \"omc\",\n      \"pmlp\",\n      \"cito\",\n      \"ne\",\n      \"swandr\",\n      \"ssn\",\n      \"tags\",\n      \"meteo\",\n      \"ddc\",\n      \"money\",\n      \"sail\",\n      \"eztag\",\n      \"opensearch\",\n      \"doclist\",\n      \"sit\",\n      \"myspo\",\n      \"lotico\",\n      \"fabio\",\n      \"prissma\",\n      \"ncal\",\n      \"ngeo\",\n      \"ibis\",\n      \"swanqs\",\n      \"hlisting\",\n      \"xhe\",\n      \"rdfa\",\n      \"meta\",\n      \"h5\",\n      \"sparql\",\n      \"phss\",\n      \"ire\",\n      \"swp\",\n      \"es\",\n      \"trackback\",\n      \"hard\",\n      \"web\",\n      \"lang\",\n      \"c4n\",\n      \"airport\",\n      \"gold\",\n      \"custom\",\n      \"smiley\",\n      \"cco\",\n      \"sec\",\n      \"grddl\",\n      \"lyou\",\n      \"gpt\",\n      \"lom\",\n      \"product\",\n      \"dbprop\",\n      \"ddl\",\n      \"wdr\",\n      \"wnschema\",\n      \"food\",\n      \"am\",\n      \"cycann\",\n      \"net\",\n      \"obj\",\n      \"tripfs\",\n      \"bsbm\",\n      \"omm\",\n      \"tdb\",\n      \"smf\",\n      \"dcmitype\",\n      \"mysql\",\n      \"pmlr\",\n      \"sim\",\n      \"b2bo\",\n      \"sv\",\n      \"scv\",\n      \"ping\",\n      \"pmt\",\n      \"umbelrc\",\n      \"xl\",\n      \"common\",\n      \"mf\",\n      \"like\",\n      \"swivt\",\n      \"fed\",\n      \"list\",\n      \"qdoslf\",\n      \"opo\",\n      \"xforms\",\n      \"tio\",\n      \"osgb\",\n      \"nid3\",\n      \"sml\",\n      \"swh\",\n      \"puc\",\n      \"lt\",\n      \"oc\",\n      \"frbre\",\n      \"states\",\n      \"ezcontext\",\n      \"ao\",\n      \"bib\",\n      \"dummy\",\n      \"profiling\",\n      \"ttl\",\n      \"crypto\",\n      \"gob\",\n      \"osoc\",\n      \"psych\",\n      \"swanco\",\n      \"sawsdl\",\n      \"oat\",\n      \"awol\",\n      \"string\",\n      \"push\",\n      \"edm\",\n      \"evset\",\n      \"dady\",\n      \"library\",\n      \"ldap\",\n      \"ro\",\n      \"wgs\",\n      \"ct\",\n      \"swid\",\n      \"nif\",\n      \"ps\",\n      \"conserv\",\n      \"conv\",\n      \"imreg\",\n      \"timeline\",\n      \"aifb\",\n      \"site\",\n      \"geographis\",\n      \"okkam\",\n      \"urn\",\n      \"swanag\",\n      \"swanpav\",\n      \"bookmark\",\n      \"sport\",\n      \"game\",\n      \"coin\",\n      \"acco\",\n      \"sm\",\n      \"plink\",\n      \"freebase\",\n      \"dbpp\",\n      \"ref\",\n      \"isi\",\n      \"soft\",\n      \"postcode\",\n      \"xhtmlvocab\",\n      \"swanci\",\n      \"wisski\",\n      \"pimo\",\n      \"sysont\",\n      \"wairole\",\n      \"rooms\",\n      \"muto\",\n      \"lark1\",\n      \"xesam\",\n      \"txn\",\n      \"play\",\n      \"opus\",\n      \"ignf\",\n      \"uri\",\n      \"evopat\",\n      \"rulz\",\n      \"anca\",\n      \"httph\",\n      \"icaltzd\",\n      \"ist\",\n      \"yoda\",\n      \"olo\",\n      \"pgterms\",\n      \"sioca\",\n      \"sio\",\n      \"act\",\n      \"remus\",\n      \"interval\",\n      \"lvont\",\n      \"cpv\",\n      \"gml\",\n      \"openlinks\",\n      \"places\",\n      \"georss\",\n      \"isq\",\n      \"linkedct\",\n      \"lemon\",\n      \"eprints\",\n      \"geospecies\",\n      \"sl\",\n      \"lgdo\",\n      \"dayta\",\n      \"xbrli\",\n      \"pmlt\",\n      \"conversion\",\n      \"status\",\n      \"pobo\",\n      \"pdo\",\n      \"aat\",\n      \"prvtypes\",\n      \"prot\",\n      \"dnr\",\n      \"drug\",\n      \"biopax\",\n      \"ean\",\n      \"agents\",\n      \"derecho\",\n      \"oboro\",\n      \"w3p\",\n      \"opmv\",\n      \"tarot\",\n      \"eu\",\n      \"search\",\n      \"lp\",\n      \"wlp\",\n      \"muo\",\n      \"ui\",\n      \"phil\",\n      \"gridworks\",\n      \"dgfoaf\",\n      \"httpvoc\",\n      \"rdagr1\",\n      \"gnd\",\n      \"sco\",\n      \"session\",\n      \"nsa\",\n      \"loticoowl\",\n      \"gso\",\n      \"vsr\",\n      \"arpfo\",\n      \"organism\",\n      \"address\",\n      \"posh\",\n      \"is\",\n      \"rail\",\n      \"languages\",\n      \"wgspos\",\n      \"nt\",\n      \"arch\",\n      \"dbnary\",\n      \"gv\",\n      \"cdm\",\n      \"pbo\",\n      \"sindice\",\n      \"organiz\",\n      \"webtlab\",\n      \"res\",\n      \"r2r\",\n      \"cos\",\n      \"qudt\",\n      \"apivc\",\n      \"agetec\",\n      \"zbwext\",\n      \"enc\",\n      \"human\",\n      \"healthcare\",\n      \"countries\",\n      \"ufmedia\",\n      \"rov\",\n      \"cgov\",\n      \"req\",\n      \"s4ac\",\n      \"rdrel\",\n      \"xfnv\",\n      \"fab\",\n      \"person\",\n      \"card\",\n      \"wordnet\",\n      \"opwn\",\n      \"bif\",\n      \"linkedmdb\",\n      \"protons\",\n      \"dso\",\n      \"dwc\",\n      \"com\",\n      \"xsl\",\n      \"geodata\",\n      \"payment\",\n      \"quak\",\n      \"npg\",\n      \"vso\",\n      \"care\",\n      \"idemo\",\n      \"aair\",\n      \"ass\",\n      \"kontakt\",\n      \"disco\",\n      \"pml\",\n      \"metalex\",\n      \"vitro\",\n      \"govwild\",\n      \"nocal\",\n      \"obo\",\n      \"c4o\",\n      \"nndsr\",\n      \"mygrid\",\n      \"events\",\n      \"ceo\",\n      \"uni\",\n      \"genab\",\n      \"bioskos\",\n      \"bte\",\n      \"elog\",\n      \"hemogram\",\n      \"toby\",\n      \"provenir\",\n      \"esd\",\n      \"cidoc\",\n      \"cube\",\n      \"dita\",\n      \"datafaqs\",\n      \"odp\",\n      \"gsp\",\n      \"name\",\n      \"itsrdf\",\n      \"marl\",\n      \"humanbody\",\n      \"xds\",\n      \"eco\",\n      \"ocd\",\n      \"ero\",\n      \"dgtwc\",\n      \"eat\",\n      \"gc\",\n      \"decl\",\n      \"pro\",\n      \"ccom\",\n      \"dco\",\n      \"hydra\",\n      \"edam\",\n      \"voag\",\n      \"gelo\",\n      \"viaf\",\n      \"hospital\",\n      \"cordis\",\n      \"oboso\",\n      \"zem\",\n      \"ann\",\n      \"units\",\n      \"visit\",\n      \"clinproc\",\n      \"skip\",\n      \"dnb\",\n      \"example\",\n      \"dbc\",\n      \"hartigprov\",\n      \"cmo\",\n      \"prefix\",\n      \"fowl\",\n      \"agent\",\n      \"clineva\",\n      \"ospost\",\n      \"malignneo\",\n      \"muni\",\n      \"tei\",\n      \"xkos\",\n      \"wai\",\n      \"br\",\n      \"cidoccrm\",\n      \"aneo\",\n      \"oboe\",\n      \"rda\",\n      \"pf\",\n      \"commons\",\n      \"kdo\",\n      \"environ\",\n      \"prvr\",\n      \"oslc\",\n      \"lod2\",\n      \"mods\",\n      \"cerif\",\n      \"olia\",\n      \"wao\",\n      \"prog\",\n      \"arecipe\",\n      \"igeo\",\n      \"theatre\",\n      \"fise\",\n      \"category\",\n      \"semtweet\",\n      \"transmed\",\n      \"isothes\",\n      \"uco\",\n      \"spatial\",\n      \"atomowl\",\n      \"out\",\n      \"span\",\n      \"dtype\",\n      \"scowt\",\n      \"hints2005\",\n      \"wd\",\n      \"cogs\",\n      \"rlog\",\n      \"pom\",\n      \"owls\",\n      \"oac\",\n      \"cpm\",\n      \"aapi\",\n      \"ppo\",\n      \"bcnnorms\",\n      \"mpeg7\",\n      \"tcga\",\n      \"rating\",\n      \"bd\",\n      \"govtrackus\",\n      \"sioctypes\",\n      \"ogp\",\n      \"oax\",\n      \"efo\",\n      \"pccz\",\n      \"mei\",\n      \"arg\",\n      \"tripfs2\",\n      \"pos\",\n      \"sig\",\n      \"pav\",\n      \"coo\",\n      \"eye\",\n      \"htir\",\n      \"ngeoi\",\n      \"dbpo\",\n      \"owltime\",\n      \"agg\",\n      \"ekaw\",\n      \"quantities\",\n      \"rdo\",\n      \"gazetteer\",\n      \"shv\",\n      \"p20\",\n      \"calli\",\n      \"bne\",\n      \"lctr\",\n      \"no\",\n      \"func\",\n      \"wf\",\n      \"health\",\n      \"mtecore\",\n      \"pns\",\n      \"frir\",\n      \"ccard\",\n      \"cheminf\",\n      \"life\",\n      \"asn\",\n      \"jita\",\n      \"artstor\",\n      \"scsv\",\n      \"bp\",\n      \"kw\",\n      \"aims\",\n      \"enhancer\",\n      \"ens\",\n      \"qa\",\n      \"ipad\",\n      \"aerols\",\n      \"dcr\",\n      \"fcm\",\n      \"kupkb\",\n      \"gxa\",\n      \"sql\",\n      \"d2r\",\n      \"saxon\",\n      \"wfprov\",\n      \"soap\",\n      \"oper\",\n      \"coeus\",\n      \"gvp\",\n      \"wfdesc\",\n      \"pay\",\n      \"set\",\n      \"rdfdf\",\n      \"myprefix\",\n      \"marshall\",\n      \"flow\",\n      \"pronom\",\n      \"atomrdf\",\n      \"l4a\",\n      \"pat\",\n      \"infosys\",\n      \"ncbitaxon\",\n      \"admssw\",\n      \"frbrcore\",\n      \"tgn\",\n      \"dt\",\n      \"vivo\",\n      \"dive\",\n      \"aersv\",\n      \"okg\",\n      \"transit\",\n      \"iso\",\n      \"teach\",\n      \"fc\",\n      \"rv\",\n      \"agrelon\",\n      \"blt\",\n      \"rdarole\",\n      \"hcard\",\n      \"fls\",\n      \"osn\",\n      \"pol\",\n      \"xmls\",\n      \"diseasome\",\n      \"npgx\",\n      \"opmw\",\n      \"poder\",\n      \"hgnc\",\n      \"fct\",\n      \"osmsemnet\",\n      \"tmpl\",\n      \"sgv\",\n      \"xch\",\n      \"bing\",\n      \"campsite\",\n      \"iao\",\n      \"ms\",\n      \"fl\",\n      \"dssn\",\n      \"rad\",\n      \"hxl\",\n      \"xlink\",\n      \"dsp\",\n      \"rec54\",\n      \"carfo\",\n      \"greg\",\n      \"fd\",\n      \"ends\",\n      \"nxp\",\n      \"dbyago\",\n      \"gndo\",\n      \"place\",\n      \"germplasm\",\n      \"geom\",\n      \"pne\",\n      \"exterms\",\n      \"nytimes\",\n      \"spif\",\n      \"wikipedia\",\n      \"sdgp\",\n      \"eumida\",\n      \"frapo\",\n      \"dis\",\n      \"cao\",\n      \"rlno\",\n      \"disease\",\n      \"skiresort\",\n      \"bcncon\",\n      \"iron\",\n      \"infection\",\n      \"wscaim\",\n      \"str\",\n      \"mte\",\n      \"prism21\",\n      \"vaem\",\n      \"pkmn\",\n      \"hifm\",\n      \"genea\",\n      \"eseduc\",\n      \"sdmxa\",\n      \"wfm\",\n      \"cro\",\n      \"protegedc\",\n      \"biordf\",\n      \"recipe\",\n      \"open\",\n      \"fingal\",\n      \"osukdt\",\n      \"reve\",\n      \"grs\",\n      \"s2s\",\n      \"intervals\",\n      \"lex\",\n      \"rich\",\n      \"wm\",\n      \"aigp\",\n      \"tr\",\n      \"c4dm\",\n      \"omv\",\n      \"gbv\",\n      \"un\",\n      \"lodac\",\n      \"ogorg\",\n      \"ub\",\n      \"chebi\",\n      \"wsc\",\n      \"xsi\",\n      \"moby\",\n      \"lr\",\n      \"re\",\n      \"occult\",\n      \"identity\",\n      \"dpl\",\n      \"pna\",\n      \"frad\",\n      \"photoshop\",\n      \"city\",\n      \"sci\",\n      \"vocab\",\n      \"np\",\n      \"daiaserv\",\n      \"orca\",\n      \"hg\",\n      \"telix\",\n      \"goef\",\n      \"mime\",\n      \"lgv\",\n      \"r4ta\",\n      \"wikterms\",\n      \"osp\",\n      \"sem\",\n      \"ulan\",\n      \"wapp\",\n      \"cis\",\n      \"cts2\",\n      \"omapi\",\n      \"qrl\",\n      \"wn20\",\n      \"rssynd\",\n      \"rdamedia\",\n      \"locn\",\n      \"ple\",\n      \"overheid\",\n      \"npgd\",\n      \"xt\",\n      \"b2rpubchem\",\n      \"laposte\",\n      \"lexvo\",\n      \"aos\",\n      \"wfs\",\n      \"geof\",\n      \"dctypes\",\n      \"qb4o\",\n      \"oecd\",\n      \"vcardx\",\n      \"voidp\",\n      \"crtv\",\n      \"sdmxd\",\n      \"bcnbio\",\n      \"gesis\",\n      \"swpatho\",\n      \"algo\",\n      \"sso\",\n      \"aers\",\n      \"vsto\",\n      \"sdo\",\n      \"penn\",\n      \"situ\",\n      \"wl\",\n      \"puelia\",\n      \"telmap\",\n      \"steel\",\n      \"jjd\",\n      \"eui\",\n      \"gfo\",\n      \"italy\",\n      \"premis\",\n      \"zoomaterms\",\n      \"w3con\",\n      \"curr\",\n      \"dcm\",\n      \"prf\",\n      \"npgg\",\n      \"cdtype\",\n      \"cvbase\",\n      \"cf\",\n      \"ecpo\",\n      \"geofla\",\n      \"wkd\",\n      \"l4lod\",\n      \"vsw\",\n      \"inno\",\n      \"scufl2\",\n      \"wiki\",\n      \"oarj\",\n      \"rpubl\",\n      \"lldr\",\n      \"oj\",\n      \"fos\",\n      \"nuts\",\n      \"prolog\",\n      \"wp\",\n      \"httpm\",\n      \"dawgt\",\n      \"mohammad\",\n      \"mil\",\n      \"visko\",\n      \"webbox\",\n      \"ql\",\n      \"r2rml\",\n      \"dvia\",\n      \"bbc\",\n      \"nsl\",\n      \"prviv\",\n      \"tisc\",\n      \"eunis\",\n      \"ecb\",\n      \"bm\",\n      \"onssprel\",\n      \"lh\",\n      \"locwd\",\n      \"rdf123\",\n      \"rdaw\",\n      \"bcngeo\",\n      \"vcard2006\",\n      \"role\",\n      \"ludo\",\n      \"psh\",\n      \"tvc\",\n      \"iot\",\n      \"vsws\",\n      \"crv\",\n      \"water\",\n      \"ds\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/aurl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/authblk.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:mark}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affil[${2:mark}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"authorcr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Affilfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affilsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMaxaffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnewaffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newaffiltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newaffilfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/authblk#c\": [\n      \"blocks\",\n      \"noblocks\",\n      \"max2\",\n      \"max3\",\n      \"max4\",\n      \"max5\",\n      \"max6\",\n      \"auth-sc\",\n      \"auth-sc-lg\",\n      \"auth-lg\",\n      \"affil-sl\",\n      \"affil-it\",\n      \"german\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/authblk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/authoraftertitle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MyAuthor\"\n    },\n    {\n      \"name\": \"MyTitle\"\n    },\n    {\n      \"name\": \"MyDate\"\n    },\n    {\n      \"name\": \"Originalauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Originalauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"Originaltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Originaltitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Originaldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Originaldate{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/authorarchive.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"orcidlink\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"intopdf\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"lastpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"authorsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorsetup{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/authorarchive#c,\\\\authorsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"authorcrfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authorwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"BibTeX\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/authorarchive#c,\\\\authorsetup\": [\n      \"bibtexdir=${1:directory}\",\n      \"baseurl=${1:URL}\",\n      \"suffix=${1:string}\",\n      \"publisher=${1:text}\",\n      \"year=${1:year}\",\n      \"key=${1:string}\",\n      \"doi=${1:DOI}\",\n      \"doiText=${1:text}\",\n      \"publisherurl=${1:URL}\",\n      \"startpage=${1:start page}\",\n      \"publication=${1:text}\",\n      \"ACM\",\n      \"acmart\",\n      \"ENTCS\",\n      \"IEEE\",\n      \"LNCS\",\n      \"LNI\",\n      \"nocopyright\",\n      \"nourl\",\n      \"nobib\",\n      \"orcidicon\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/authorarchive#c,\\\\authorsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/authorindex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aialso\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aialso{${1:before}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"aialsostrings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aibibcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aibibindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aibibindex{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"aibibpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aibibpage{${1:page}}\"\n      }\n    },\n    {\n      \"name\": \"aicite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aicite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"aicite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aicite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"aiexplicit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aifilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aifilename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"aifirst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aifirst{${1:author name}}\"\n      }\n    },\n    {\n      \"name\": \"aifirstpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aifirstpage{${1:page}}\"\n      }\n    },\n    {\n      \"name\": \"aiinbibflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aimaxauthors\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aimaxauthors[${2:trunc}]{${1:max}}\"\n      }\n    },\n    {\n      \"name\": \"aimaxauthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aimaxauthors{${1:max}}\"\n      }\n    },\n    {\n      \"name\": \"aimention\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aimention{${1:author name}}\"\n      }\n    },\n    {\n      \"name\": \"ainame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ainame{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ainamefmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ainamefmt{${1:fmt spec}}\"\n      }\n    },\n    {\n      \"name\": \"ainocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ainocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ainocompressflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aionly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aionly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"aioptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aipages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aipages{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"aipagetypeorder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aipagetypeorder{${1:order}}\"\n      }\n    },\n    {\n      \"name\": \"airep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"airep{${1:author name}}\"\n      }\n    },\n    {\n      \"name\": \"aisee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aisee{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"aiseestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aisize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aistyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aitop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aitop{${1:author name}}\"\n      }\n    },\n    {\n      \"name\": \"aitwostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aitwosuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aitwosuffix{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"authorindexstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorindexstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"bibindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibindex{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"bibpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citationpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetypeorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printauthorindex\"\n    },\n    {\n      \"name\": \"theaipage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theauthorindex\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/authorindex#c\": [\n      \"all\",\n      \"avoideditors\",\n      \"biblabels\",\n      \"editors\",\n      \"firstabbrev\",\n      \"fullname\",\n      \"lastname\",\n      \"miniindex\",\n      \"nocompress\",\n      \"normal\",\n      \"onlyauthors\",\n      \"onlyfirst\",\n      \"pages\",\n      \"small\",\n      \"withbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/authorindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/auto-pst-pdf-lua.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pst-pdf\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"OnlyIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OnlyIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NotIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NotIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"matlabfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlabfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"matlabfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlabfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mathfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psfragfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psfragfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/auto-pst-pdf-lua#c\": [\n      \"off\",\n      \"on\",\n      \"crop=${1|on,off|}\",\n      \"ext=${1:extension}\",\n      \"latex={${1:latex options}}\",\n      \"dvips={${1:dvips options}}\",\n      \"pspdf={${1:pspdf options}}\",\n      \"pdfcrop={${1:pdfcrop options}}\",\n      \"cleanup={${1:extension list}}\",\n      \"runs=${1:number}\",\n      \"active\",\n      \"inactive\",\n      \"pstricks\",\n      \"nopstricks\",\n      \"draft\",\n      \"final\",\n      \"tightpage\",\n      \"notightpage\",\n      \"displaymath\",\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\"\n    ],\n    \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/auto-pst-pdf-lua#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/auto-pst-pdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pst-pdf\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"OnlyIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OnlyIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NotIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NotIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"matlabfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlabfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"matlabfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlabfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mathfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psfragfig{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psfragfig[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/auto-pst-pdf#c\": [\n      \"off\",\n      \"on\",\n      \"crop=${1|on,off|}\",\n      \"ext=${1:extension}\",\n      \"latex={${1:latex options}}\",\n      \"dvips={${1:dvips options}}\",\n      \"pspdf={${1:pspdf options}}\",\n      \"pdfcrop={${1:pdfcrop options}}\",\n      \"cleanup={${1:extension list}}\",\n      \"runs=${1:number}\",\n      \"active\",\n      \"inactive\",\n      \"pstricks\",\n      \"nopstricks\",\n      \"draft\",\n      \"final\",\n      \"tightpage\",\n      \"notightpage\",\n      \"displaymath\",\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\"\n    ],\n    \"\\\\matlabfig,\\\\mathfig,\\\\psfragfig\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/auto-pst-pdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/autoaligne.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listofitems\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autoaligne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoaligne{${1:eq1\\\\\\\\eq2\\\\\\\\...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"autoaligne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autoaligne[${2:hor_align}]{${1:eq1\\\\\\\\eq2\\\\\\\\...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"autoaligne\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"autoaligne[${2:hor_align}](${3:vert_align}){${1:eq1\\\\\\\\eq2\\\\\\\\...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"egaldevantmembrevide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aavcoeff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aavcoeff{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"definirseparateurs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definirseparateurs{${1:sep_line}}{${2:sep_members}}{${3:sep_terms}}\"\n      }\n    },\n    {\n      \"name\": \"definirespacements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definirespacements{${1:space_members}}{${2:space_terms}}\"\n      }\n    },\n    {\n      \"name\": \"definirespacements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"definirespacements[${3:dimen1,dimen2}]{${1:space_members}}{${2:space_terms}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/autobreak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MoveEqLeft\"\n    },\n    {\n      \"name\": \"MoveEqLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MoveEqLeft[${1:length%plain}]\"\n      }\n    },\n    {\n      \"name\": \"everybeforeautobreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everybeforeautobreak{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"everyaftereautobreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyaftereautobreak{${1:tokens}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"autobreak\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/autofancyhdr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eheadfootlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfootlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/autolist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Subleftmargini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subleftmarginx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubnumx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSubnumx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lplabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lplabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Rplabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rplabel{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Sublist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:label}}{${2:spacing}}\"\n      }\n    },\n    {\n      \"name\": \"Subnum\"\n    },\n    {\n      \"name\": \"Lautolist\"\n    },\n    {\n      \"name\": \"Lautolist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest label}]\"\n      }\n    },\n    {\n      \"name\": \"Rautolist\"\n    },\n    {\n      \"name\": \"Rautolist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest label}]\"\n      }\n    },\n    {\n      \"name\": \"Lpolylist\"\n    },\n    {\n      \"name\": \"Lpolylist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest label}]\"\n      }\n    },\n    {\n      \"name\": \"Rpolylist\"\n    },\n    {\n      \"name\": \"Rpolylist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:longest label}]\"\n      }\n    },\n    {\n      \"name\": \"characters\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/automultiplechoice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"bophook\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"csvsimple\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"storebox\",\n      \"if\": \"storebox\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"pdfform\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"survey\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\",\n      \"if\": \"survey\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\",\n      \"if\": \"survey\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\",\n      \"if\": \"survey\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\",\n      \"if\": \"survey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alafin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCaddpagesto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCaddpagesto{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"AMCanswer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCanswer{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AMCassociation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AMCassociation[${2:filename}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"AMCassociation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCassociation{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"AMCbeginAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCbeginQuestion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCbeginQuestion{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AMCbloc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCBoxedAnswers\"\n    },\n    {\n      \"name\": \"AMCBoxOnly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCBoxOnly{${1:keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\AMCBoxOnly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCboxStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCboxStyle{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCboxStyle,\\\\AMCboxDimensions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCchoiceLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCchoiceLabelFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCchoiceLabelFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AMCcleardoublepage\"\n    },\n    {\n      \"name\": \"AMCcodeGrid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AMCcodeGrid[${3:options%keyvals}]{${1:key%plain}}{${2:description}}\",\n        \"keys\": [\n          \"\\\\AMCcodeGrid, \\\\AMCcodeGridInt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCcodeGrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCcodeGrid{${1:key%plain}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"AMCcodeGridInt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AMCcodeGridInt[${3:options%keyvals}]{${1:key%plain}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"AMCcodeGridInt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCcodeGridInt{${1:key%plain}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"AMCcodeHspace\"\n    },\n    {\n      \"name\": \"AMCcodeVspace\"\n    },\n    {\n      \"name\": \"AMCcompleteMulti\"\n    },\n    {\n      \"name\": \"AMCdecimalPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCdontAnnotate\"\n    },\n    {\n      \"name\": \"AMCendAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCexponent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCform\"\n    },\n    {\n      \"name\": \"AMCformAnswer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCformAnswer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AMCformBeforeQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCformBegin\"\n    },\n    {\n      \"name\": \"AMCformFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCformFilter{${1:filter}}\"\n      }\n    },\n    {\n      \"name\": \"AMCformHSpace\"\n    },\n    {\n      \"name\": \"AMCformQuestion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCformQuestion{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AMCformS\"\n    },\n    {\n      \"name\": \"AMCformVSpace\"\n    },\n    {\n      \"name\": \"AMChorizAnswerSep\"\n    },\n    {\n      \"name\": \"AMChorizBoxSep\"\n    },\n    {\n      \"name\": \"AMCidsPosition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCidsPosition{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCidsPosition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCinterBquest\"\n    },\n    {\n      \"name\": \"AMCinterBrep\"\n    },\n    {\n      \"name\": \"AMCinterIquest\"\n    },\n    {\n      \"name\": \"AMCinterIrep\"\n    },\n    {\n      \"name\": \"AMCIntervalFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCIntervalFormat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AMCIntervals\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AMCIntervals{${1:answer}}{${2:x1}}{${3:x2}}{${4:len}}\"\n      }\n    },\n    {\n      \"name\": \"AMClabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMClabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AMCnobloc\"\n    },\n    {\n      \"name\": \"AMCnoCompleteMulti\"\n    },\n    {\n      \"name\": \"AMCntextGoto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCntextSign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCntextVHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCntextVHead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AMCnumericChoices\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCnumericChoices{${1:answer}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCnumericChoices,\\\\AMCnumericOpts\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"AMCnumericOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCnumericOpts{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCnumericChoices,\\\\AMCnumericOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCnumero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCnumero{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AMCOpen\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCOpen{${1:keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\AMCOpen,\\\\AMCopenOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCopenOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCopenOpts{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCOpen,\\\\AMCopenOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCotextGoto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCotextReserved\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCoutsideLabelFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCoutsideLabelFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AMCpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AMCpostNquest\"\n    },\n    {\n      \"name\": \"AMCpostOquest\"\n    },\n    {\n      \"name\": \"AMCquestionNumberfalse\"\n    },\n    {\n      \"name\": \"AMCquestionNumbertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCrandomseed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCrandomseed{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"AMCref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsetFoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsetFoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsetScoreZone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsetScoreZone{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCsetScoreZone,\\\\AMCsetScoreZoneAnswerSheet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCsetScoreZoneAnswerSheet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsetScoreZoneAnswerSheet{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\AMCsetScoreZone,\\\\AMCsetScoreZoneAnswerSheet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AMCstudentlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCstudentlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AMCStudentNumber\"\n    },\n    {\n      \"name\": \"AMCstudentslistfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCstudentslistfile{${1:file}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsubjectPageTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMCsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"AMCsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMCsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"AMCtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AMCtext{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\AMCtext#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bareme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bareme{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"baremeDefautM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baremeDefautM{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"baremeDefautS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baremeDefautS{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"bonne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bonne[${2:label text}]{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonne{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"champnom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"champnom{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"choixIntervalles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"choixIntervalles{${1:answer}}{${2:x1}}{${3:x2}}{${4:len}}\"\n      }\n    },\n    {\n      \"name\": \"cleargroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleargroup{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"copygroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"copygroup[${3:n}]{${1:groupA}}{${2:groupB}}\"\n      }\n    },\n    {\n      \"name\": \"copygroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copygroup{${1:groupA}}{${2:groupB}}\"\n      }\n    },\n    {\n      \"name\": \"copygroupfrom\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"copygroupfrom[${4:n}]{${1:groupA}}{${2:groupB}}{${3:index}}\"\n      }\n    },\n    {\n      \"name\": \"copygroupfrom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"copygroupfrom{${1:groupA}}{${2:groupB}}{${3:index}}\"\n      }\n    },\n    {\n      \"name\": \"correctchoice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"correctchoice[${2:label text}]{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"correctchoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctchoice{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"element\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"element{${1:group}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"exemplaire\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exemplaire{${1:number}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"exemplairepair\"\n    },\n    {\n      \"name\": \"explain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"formulaire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insertgroup[${2:n}]{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"insertgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertgroup{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"insertgroupfrom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"insertgroupfrom[${3:n}]{${1:group}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"insertgroupfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"insertgroupfrom{${1:group}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"lastchoices\"\n    },\n    {\n      \"name\": \"mauvaise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mauvaise[${2:label text}]{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"mauvaise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mauvaise{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"melangegroupe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"melangegroupe{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"multiSymbole\"\n    },\n    {\n      \"name\": \"namefield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namefield{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"namefielddots\"\n    },\n    {\n      \"name\": \"onecopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onecopy{${1:number}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"QuestionIndicative\"\n    },\n    {\n      \"name\": \"restituegroupe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restituegroupe[${2:n}]{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"restituegroupe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restituegroupe{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"scoring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scoring{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"scoringDefaultM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scoringDefaultM{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"scoringDefaultS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scoringDefaultS{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"setdefaultgroupmode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaultgroupmode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\setdefaultgroupmode,\\\\setgroupmode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setgroupmode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setgroupmode{${1:group}}{${2:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\setdefaultgroupmode,\\\\setgroupmode\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"shufflegroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shufflegroup{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"theAMCquestionaff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrongchoice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wrongchoice[${2:label text}]{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"wrongchoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrongchoice{${1:answer%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"choices\"\n    },\n    {\n      \"name\": \"choicescustom\"\n    },\n    {\n      \"name\": \"choiceshoriz\"\n    },\n    {\n      \"name\": \"examcopy\"\n    },\n    {\n      \"name\": \"examcopy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"questionmult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"questionmultx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:identifier}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/automultiplechoice#c\": [\n      \"noshuffle\",\n      \"noshufflegroups\",\n      \"fullgroups\",\n      \"answers\",\n      \"indivanswers\",\n      \"textpos\",\n      \"extractonly\",\n      \"box\",\n      \"asbox\",\n      \"separateanswersheet\",\n      \"digits\",\n      \"ordre\",\n      \"correc\",\n      \"modele\",\n      \"correcindiv\",\n      \"init\",\n      \"bloc\",\n      \"completemulti\",\n      \"insidebox\",\n      \"ensemble\",\n      \"chiffres\",\n      \"outsidebox\",\n      \"calibration\",\n      \"nowatermark\",\n      \"catalog\",\n      \"keys=line\",\n      \"francais\",\n      \"lang=${1|DE,ES,FR,IT,JA,NL,NO,PT|}\",\n      \"versionA\",\n      \"plain\",\n      \"nopage\",\n      \"postcorrect\",\n      \"automarks\",\n      \"storebox\",\n      \"pdfform\",\n      \"codedigit=\",\n      \"survey\"\n    ],\n    \"\\\\AMCBoxOnly\": [\n      \"help=${1:text}\",\n      \"ordered\"\n    ],\n    \"\\\\AMCboxStyle,\\\\AMCboxDimensions\": [\n      \"shape=${1|square,oval,form,none|}\",\n      \"size=\",\n      \"height=\",\n      \"width=\",\n      \"rule=\",\n      \"outsidesep=\",\n      \"down=\",\n      \"color=\",\n      \"cross\",\n      \"crosschar=${1:symbol}\",\n      \"crossrule=\"\n    ],\n    \"\\\\AMCcodeGrid, \\\\AMCcodeGridInt\": [\n      \"vertical\",\n      \"v\",\n      \"h\",\n      \"top\"\n    ],\n    \"\\\\AMCidsPosition\": [\n      \"pos=${1|none,top,side|}\",\n      \"width=\",\n      \"height=\"\n    ],\n    \"\\\\AMCnumericChoices,\\\\AMCnumericOpts\": [\n      \"digits=${1:num}\",\n      \"decimals=${1:num}\",\n      \"base=${1:num}\",\n      \"significant\",\n      \"exponent=${1:num}\",\n      \"nozero\",\n      \"sign\",\n      \"exposign\",\n      \"strict\",\n      \"vertical\",\n      \"expovertical\",\n      \"reverse\",\n      \"vhead\",\n      \"hspace=\",\n      \"vspace=\",\n      \"borderwidth=\",\n      \"bordercol=\",\n      \"backgroundcol=\",\n      \"Tsign=${1:text}\",\n      \"Tpoint=${1:text}\",\n      \"Texponent=${1:text}\",\n      \"scoring\",\n      \"scoreexact=${1:num}\",\n      \"exact=${1:num}\",\n      \"scoreapprox=${1:num}\",\n      \"approx=${1:num}\",\n      \"scorewrong=${1:num}\",\n      \"ignoreblank\",\n      \"keepas=${1:text}\",\n      \"alsocorrect=${1:text}\"\n    ],\n    \"\\\\AMCOpen,\\\\AMCopenOpts\": [\n      \"lineup\",\n      \"lineuptext=${1:text}\",\n      \"lines=${1:num}\",\n      \"lineheight=\",\n      \"dots\",\n      \"contentcommand=${1:csname}\",\n      \"hspace=\",\n      \"backgroundcol=\",\n      \"foregroundcol=\",\n      \"scan\",\n      \"annotate\",\n      \"question=${1:text}\",\n      \"answer=${1:text}\",\n      \"width=\",\n      \"framerule=\",\n      \"framerulecol=\",\n      \"boxmargin=\",\n      \"boxframerule=\",\n      \"boxframerulecol=\",\n      \"Treserved=\"\n    ],\n    \"\\\\AMCsetScoreZone,\\\\AMCsetScoreZoneAnswerSheet\": [\n      \"width=\",\n      \"height=\",\n      \"depth=\",\n      \"calloutside=\",\n      \"callinside=\",\n      \"position=${1|none,question,margin,margins|}\"\n    ],\n    \"\\\\AMCtext#c\": [\n      \"none\",\n      \"corrected\",\n      \"catalog\",\n      \"explain\",\n      \"draft\",\n      \"message\"\n    ],\n    \"\\\\setdefaultgroupmode,\\\\setgroupmode\": [\n      \"fixed\",\n      \"cyclic\",\n      \"withreplacement\",\n      \"withoutreplacement\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/automultiplechoice#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/autonum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"etextools\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"csxdefall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxdefall{${1:csname}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"csxdefaux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxdefaux{${1:csname}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsedef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsedef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommandsequence{${1:csname}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommandsequence{${1:csname}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommandsequence{${1:csname}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommandsequence{${1:csname}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommandsequence{${1:csname}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandsequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommandsequence{${1:csname}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"skipInPDFTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skipInPDFTOC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vanishprotect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vanishprotect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CsLetLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CsLetLtxMacro{${1:csname}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LetCsLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetCsLtxMacro{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"CsLetCsLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CsLetCsLtxMacro{${1:csname}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalCsLetLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalCsLetLtxMacro{${1:csname}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalLetCsLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalLetCsLtxMacro{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalCsLetCsLtxMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalCsLetCsLtxMacro{${1:csname}}{${2:csname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/autopdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autopdfoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopdfoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/autopdf#c,\\\\autopdfoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autopdfinclude\"\n    },\n    {\n      \"name\": \"autopdfendinclude\"\n    },\n    {\n      \"name\": \"autopdfpsfrag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autopdfpsfrag{${1:tag}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"autopdfpsfrag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"autopdfpsfrag[${3:options%keyvals}]{${1:tag}}{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\autopdfpsfrag,\\\\autopdfpsfoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autopdfpsfoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopdfpsfoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\autopdfpsfrag,\\\\autopdfpsfoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/autopdf#c,\\\\autopdfoptions\": [\n      \"from=${1:file extension}\",\n      \"to=${1:file extension}\",\n      \"logfile\",\n      \"nologfile\",\n      \"showcmds\",\n      \"cleanup\",\n      \"scale\",\n      \"margin=\",\n      \"resolution=${1:dpi}\",\n      \"gscmd=${1:GhostScript cmd}\",\n      \"gmidentifycmd=${1:GraphicsMagick cmd}\",\n      \"gmconvertcmd=${1:GraphicsMagick cmd}\"\n    ],\n    \"\\\\autopdfpsfrag,\\\\autopdfpsfoptions\": [\n      \"texpos=${1:LaTeX ref point}\",\n      \"epspos=${1:PS ref point}\",\n      \"scale=${1:factor}\",\n      \"angle=${1:degrees}\",\n      \"add=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/autopdf#c,\\\\autopdfoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/autopuncitems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"APomit\"\n    },\n    {\n      \"name\": \"APpass\"\n    },\n    {\n      \"name\": \"setAPeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setAPeach{${1:default punct}}{${2:second last punct}}{${3:last punct}}\"\n      }\n    },\n    {\n      \"name\": \"setAPall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAPall{${1:punct}}\"\n      }\n    },\n    {\n      \"name\": \"setAPdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAPdef{${1:punct}}\"\n      }\n    },\n    {\n      \"name\": \"setAPseclast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAPseclast{${1:punct}}\"\n      }\n    },\n    {\n      \"name\": \"setAPlast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAPlast{${1:punct}}\"\n      }\n    },\n    {\n      \"name\": \"enableAPautopassnest\"\n    },\n    {\n      \"name\": \"disableAPautopassnest\"\n    },\n    {\n      \"name\": \"enableAPprotectnest\"\n    },\n    {\n      \"name\": \"disableAPprotectnest\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"AutoPuncItems\"\n    },\n    {\n      \"name\": \"AutoPuncItemsO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoPuncItemsE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoPuncTabular\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/autopuncitem#c\": [\n      \"noenumitem\"\n    ],\n    \"\\\\setlist,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"autopunc\",\n      \"autopuncO\",\n      \"autopuncE\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/autopuncitem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/autotype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autotypelangoptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autotypelangoptions{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\autotypelangoptions\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"autotypefontoptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autotypefontoptions{${1:font}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\autotypefontoptions\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"noligbreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noligbreak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"autotypelongs\"\n    },\n    {\n      \"name\": \"autotyperounds\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\autotypelangoptions\": [\n      \"hyphenation=${1|default,primary,weighted|}\",\n      \"mark-hyph=${1|on,off|}\",\n      \"ligbreak=${1|on,off|}\",\n      \"long-s=${1|on,off|}\"\n    ],\n    \"\\\\autotypefontoptions\": [\n      \"long-s-codepoint=${1:codepoint}\",\n      \"round-s-codepoint=${1:codepoint}\",\n      \"final-round-s-codepoint=${1:codepoint}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/auxhook.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AddLineBeginMainAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddLineBeginMainAux{${1:line}}\"\n      }\n    },\n    {\n      \"name\": \"AddLineBeginPartAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddLineBeginPartAux{${1:line}}\"\n      }\n    },\n    {\n      \"name\": \"AddLineBeginAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddLineBeginAux{${1:line}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/avremu.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useavremulibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useavremulibrary{${1:list of libraries}}\"\n      }\n    },\n    {\n      \"name\": \"avrloadc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrloadc{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"avrloadc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avrloadc[${2:compiler options}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"avrcompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrcompile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"avrcompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avrcompile[${2:compiler options}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"avrloadihex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrloadihex{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifavrbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avrbreaktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avrbreakfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avrstep\"\n    },\n    {\n      \"name\": \"avrstep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"avrstep[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"avrrun\"\n    },\n    {\n      \"name\": \"avrsinglestep\"\n    },\n    {\n      \"name\": \"avrinstrcount\"\n    },\n    {\n      \"name\": \"avrUDR\"\n    },\n    {\n      \"name\": \"avrUDRclear\"\n    },\n    {\n      \"name\": \"avrdrawiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrdrawiter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"avrdrawSize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"avrdrawSize{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"avrdrawppm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrdrawppm{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/avremu#c\": [\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/avremu#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/awesomebox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tipbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"warningbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warningbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cautionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cautionbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"importantbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importantbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"awesomebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"awesomebox{${1:vrulewidth%l}}{${2:icon}}{${3:iconcolor%color}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"awesomebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}\",\n        \"snippet\": \"awesomebox[${5:vrulecolor%color}][${6:hrule}][${7:title}]{${1:vrulewidth%l}}{${2:icon}}{${3:iconcolor%color}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"abShortLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abLongLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxcontentwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxsignraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxlinewidthvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxlinewidthref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"awesomeboxadjustcontentwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"awesomeboxrestorecontentwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aweboxdebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconCheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconInfoCircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconFire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconExclamationCircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconExclamationTriangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconCogs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconThumbsUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconThumbsDown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconCertificate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconLightBulb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconTwitter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abIconGithub\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"noteblock\"\n    },\n    {\n      \"name\": \"tipblock\"\n    },\n    {\n      \"name\": \"warningblock\"\n    },\n    {\n      \"name\": \"cautionblock\"\n    },\n    {\n      \"name\": \"importantblock\"\n    },\n    {\n      \"name\": \"awesomeblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:vrulewidth%l}}{${2:icon}}{${3:iconcolor%color}}\"\n      }\n    },\n    {\n      \"name\": \"awesomeblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"[${4:vrulecolor%color}][${5:hrule}][${6:title}]{${1:vrulewidth%l}}{${2:icon}}{${3:iconcolor%color}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/axessibility.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tagpdf\"\n    },\n    {\n      \"name\": \"accsupp\",\n      \"if\": \"accsupp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iftagpdfopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tagpdfopttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tagpdfoptfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doreplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doreplacement{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"auxiliaryspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrapml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapml{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrapmlstar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapmlstar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrapmlalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapmlalt{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/axessibility#c\": [\n      \"accsupp\",\n      \"tagpdf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/axessibility#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/axodraw2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"B2Text\",\n      \"if\": \"v1compatible\"\n    },\n    {\n      \"name\": \"G2Text\",\n      \"if\": \"v1compatible\"\n    },\n    {\n      \"name\": \"C2Text\",\n      \"if\": \"v1compatible\"\n    },\n    {\n      \"name\": \"AxoGrid\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"AxoGrid(${3:x},${4:y})(${5:xsize},${6:ysize})(${7:xdivs},${8:ydivs}){${1:color}}{${2:linewidth}}\"\n      }\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Line(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Line[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DoubleLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DoubleLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashDoubleLine(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashDoubleLine[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:linesep}}{${2:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Arc(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"Arc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Arc[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"CArc(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"CArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"CArc[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"DoubleArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DoubleArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DoubleArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DoubleCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DoubleCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DashArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashDoubleArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashDoubleArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashDoubleCArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashDoubleCArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"Bezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Bezier(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})(${7:x4},${8:y4})\"\n      }\n    },\n    {\n      \"name\": \"Bezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"Bezier[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})(${8:x4},${9:y4})\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleBezier\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"DoubleBezier(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})(${8:x4},${9:y4}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleBezier\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"DoubleBezier[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})(${9:x4},${10:y4}){${1:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashBezier\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"DashBezier(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})(${8:x4},${9:y4}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashBezier\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"DashBezier[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})(${9:x4},${10:y4}){${1:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleBezier\",\n      \"arg\": {\n        \"format\": \"()()()(){}{}\",\n        \"snippet\": \"DashDoubleBezier(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})(${9:x4},${10:y4}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleBezier\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}{}\",\n        \"snippet\": \"DashDoubleBezier[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})(${10:x4},${11:y4}){${1:linesep}}{${2:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\",\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Curve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Curve{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"DashCurve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DashCurve{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})...}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"Gluon\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Gluon(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Gluon\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"Gluon[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleGluon\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGluon(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluon\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGluon[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashGluon\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGluon(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluon\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGluon[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluon\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluon(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluon\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluon[${5:options%keyvals}](${6:x1},${7:y1})(${8:x2},${9:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GluonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"GluonArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GluonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"GluonArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"GlueArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"GlueArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"GluonArcn(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"GluonArcn[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"GlueArcn(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"GlueArcn[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGluonArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGluonArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGlueArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGlueArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGluonArcn(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGluonArcn[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGlueArcn(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGlueArcn[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGluonArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGluonArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGlueArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGlueArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGluonArcn(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGluonArcn[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGlueArcn(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGlueArcn[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonArc(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonArc[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGlueArc(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGlueArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGlueArc[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonArcn(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonArcn[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGlueArcn(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGlueArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGlueArcn[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"GluonCirc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"GluonCirc(${3:x},${4:y})(${5:radius},${6:phase}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"GluonCirc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"GluonCirc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:phase}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleGluonCirc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleGluonCirc(${4:x},${5:y})(${6:radius},${7:phase}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleGluonCirc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleGluonCirc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:phase}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashGluonCirc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashGluonCirc(${4:x},${5:y})(${6:radius},${7:phase}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashGluonCirc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashGluonCirc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:phase}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonCirc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonCirc(${5:x},${6:y})(${7:radius},${8:phase}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleGluonCirc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleGluonCirc[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:phase}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Photon\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Photon(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Photon\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"Photon[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoublePhoton\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoublePhoton(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoublePhoton\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoublePhoton[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashPhoton\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashPhoton(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashPhoton\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashPhoton[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoublePhoton\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoublePhoton(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoublePhoton\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoublePhoton[${5:options%keyvals}](${6:x1},${7:y1})(${8:x2},${9:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PhotonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"PhotonArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"PhotonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"PhotonArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoublePhotonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoublePhotonArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoublePhotonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoublePhotonArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashPhotonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashPhotonArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashPhotonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashPhotonArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoublePhotonArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoublePhotonArc(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoublePhotonArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoublePhotonArc[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ZigZag\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ZigZag(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ZigZag\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"ZigZag[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleZigZag\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleZigZag(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleZigZag\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleZigZag[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashZigZag\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashZigZag(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashZigZag\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashZigZag[${4:options%keyvals}](${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleZigZag\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleZigZag(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleZigZag\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleZigZag[${5:options%keyvals}](${6:x1},${7:y1})(${8:x2},${9:y2}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ZigZagArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ZigZagArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:amplitude}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ZigZagArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"ZigZagArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DoubleZigZagArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DoubleZigZagArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleZigZagArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DoubleZigZagArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashZigZagArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"DashZigZagArc(${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashZigZagArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"DashZigZagArc[${4:options%keyvals}](${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DashDoubleZigZagArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleZigZagArc(${5:x},${6:y})(${7:radius},${8:start-angle},${9:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashDoubleZigZagArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"DashDoubleZigZagArc[${5:options%keyvals}](${6:x},${7:y})(${8:radius},${9:start-angle},${10:end-angle}){${1:amplitude}}{${2:number}}{${3:linesep}}{${4:dashsize}}\",\n        \"keys\": [\n          \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\",\n          \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vertex\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Vertex(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"FCirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"FCirc(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"ECirc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ECirc(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"BCirc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"BCirc(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"GCirc\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"GCirc(${3:x},${4:y}){${1:radius}}{${2:grayscale}}\"\n      }\n    },\n    {\n      \"name\": \"CCirc\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"CCirc(${4:x},${5:y}){${1:radius}}{${2:bound color}}{${3:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"Oval\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Oval(${1:x},${2:y})(${3:half-height},${4:half-width})(${5:angle})\"\n      }\n    },\n    {\n      \"name\": \"FOval\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"FOval(${1:x},${2:y})(${3:half-height},${4:half-width})(${5:angle})\"\n      }\n    },\n    {\n      \"name\": \"GOval\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"GOval(${2:x},${3:y})(${4:half-height},${5:half-width})(${6:angle}){${1:grayscale}}\"\n      }\n    },\n    {\n      \"name\": \"COval\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"COval(${3:x},${4:y})(${5:half-height},${6:half-width})(${7:angle}){${1:bound color}}{${2:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"EBox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"EBox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"FBox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"FBox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"BBox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"BBox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"GBox\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"GBox(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:grayscale}}\"\n      }\n    },\n    {\n      \"name\": \"CBox\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"CBox(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:bound color}}{${2:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"EBoxc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"EBoxc(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    },\n    {\n      \"name\": \"Boxc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Boxc(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    },\n    {\n      \"name\": \"FBoxc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"FBoxc(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    },\n    {\n      \"name\": \"BBoxc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"BBoxc(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    },\n    {\n      \"name\": \"GBoxc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"GBoxc(${2:x},${3:y})(${4:width},${5:height}){${1:grayscale}}\"\n      }\n    },\n    {\n      \"name\": \"CBoxc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"CBoxc(${3:x},${4:y})(${5:width},${6:height}){${1:bound color}}{${2:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"RotatedBox\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"RotatedBox(${3:x},${4:y})(${5:width},${6:height}){${1:angle}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"FilledRotatedBox\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"FilledRotatedBox(${3:x},${4:y})(${5:width},${6:height}){${1:angle}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"ETri\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"ETri(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"FTri\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"FTri(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"BTri\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"BTri(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"GTri\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"GTri(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3}){${1:grayscale}}\"\n      }\n    },\n    {\n      \"name\": \"CTri\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"CTri(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3}){${1:bound color}}{${2:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"Polygon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Polygon{${1:(${3:x1},${4:y1}),(${5:x2},${6:y2}),...}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"FilledPolygon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FilledPolygon{${1:(${3:x1},${4:y1}),(${5:x2},${6:y2}),...}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"LinAxis\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"LinAxis(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:divs},${6:subdivs},${7:hashsize},${8:offset},${9:width})\"\n      }\n    },\n    {\n      \"name\": \"LogAxis\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"LogAxis(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:divs},${6:hashsize},${7:offset},${8:width})\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Text(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"Text(${3:x},${4:y})[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Text(${2:x},${3:y})(${4:angle}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"Text(${3:x},${4:y})(${5:angle})[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"rText(${3:x},${4:y})[${2:mode}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[][]{}\",\n        \"snippet\": \"rText(${4:x},${5:y})[${2:mode}][${3:rotation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"RText(${2:x},${3:y})(${4:angle}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[](){}\",\n        \"snippet\": \"RText(${3:x},${4:y})[${2:pos}](${5:angle}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetPFont{${1:postscript font%keyvals}}{${2:size}}\",\n        \"keys\": [\n          \"\\\\SetPFont#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PText\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PText(${2:x},${3:y})(${4:angle}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PText\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"PText(${3:x},${4:y})(${5:angle})[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"BText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GText\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"GText(${3:x},${4:y}){${1:grayscale}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"CText\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"CText(${4:x},${5:y}){${1:bound color}}{${2:fill color}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"BTwoText\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"BTwoText(${3:x},${4:y}){${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"GTwoText\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"GTwoText(${4:x},${5:y}){${1:grayscale}}{${2:text1%text}}{${3:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"CTwoText\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"CTwoText(${5:x},${6:y}){${1:bound color}}{${2:fill color}}{${3:text1%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ArrowLine(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"ArrowLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ArrowLine[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"LongArrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"LongArrow(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"LongArrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"LongArrow[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDoubleLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDoubleLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashArrowLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDashLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDashLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashArrowDoubleLine(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashArrowDoubleLine[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleLine(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleLine[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashLongArrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashLongArrowLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashLongArrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashLongArrowLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongArrowDashLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongArrowDashLine[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongArrowDash(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongArrowDash[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashLongArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashLongArrow(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashLongArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashLongArrow[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"LongArrowArcn(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"LongArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"LongArrowArcn[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ArrowArcn(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ArrowArcn[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"LongArrowArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"LongArrowArc(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"LongArrowArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"LongArrowArc[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ArrowArc(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ArrowArc[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"ArrowCArc(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"ArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"ArrowCArc[${1:options%keyvals}](${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowArcn(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashArrowArcn[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDashArcn(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDashArcn[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashArrowArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"DashArrowCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDashArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDashArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDashCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDashCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongDashArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongDashArrowArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongDashArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongDashArrowArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongDashArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongDashArrowCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongDashArrowCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongDashArrowCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongArrowDashArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongArrowDashArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LongArrowDashCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowDashCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LongArrowDashCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDoubleArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDoubleArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ArrowDoubleCArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ArrowDoubleCArc[${2:options%keyvals}](${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleArc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleArc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleCArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDashDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"ArrowDashDoubleCArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashArrowDoubleArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashArrowDoubleArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"DashArrowDoubleCArc(${3:x},${4:y})(${5:radius},${6:start-angle},${7:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"DashArrowDoubleCArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"DashArrowDoubleCArc[${3:options%keyvals}](${4:x},${5:y})(${6:radius},${7:start-angle},${8:end-angle}){${1:linesep}}{${2:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"SetDashSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDashSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetLineSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLineSep{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetSep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSep{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetWidth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowAspect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowAspect{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowInset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowInset{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowPosition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowPosition{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultArrowScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultArrowScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowStroke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowStroke{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"canvasScaleOnept\"\n    },\n    {\n      \"name\": \"canvasScaleObjectScale\"\n    },\n    {\n      \"name\": \"canvasScaleUnitLength\"\n    },\n    {\n      \"name\": \"SetScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetTextScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTextScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetCanvasScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCanvasScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifPSTextScalesLikeGraphics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTextScalesLikeGraphicsfalse\"\n    },\n    {\n      \"name\": \"PSTextScalesLikeGraphicstrue\"\n    },\n    {\n      \"name\": \"SetOffset\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"SetOffset(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"SetScaledOffset\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"SetScaledOffset(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"SetColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetObjectScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetObjectScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"textGreenYellow\"\n    },\n    {\n      \"name\": \"textYellow\"\n    },\n    {\n      \"name\": \"textGoldenrod\"\n    },\n    {\n      \"name\": \"textDandelion\"\n    },\n    {\n      \"name\": \"textApricot\"\n    },\n    {\n      \"name\": \"textPeach\"\n    },\n    {\n      \"name\": \"textMelon\"\n    },\n    {\n      \"name\": \"textYellowOrange\"\n    },\n    {\n      \"name\": \"textOrange\"\n    },\n    {\n      \"name\": \"textBurntOrange\"\n    },\n    {\n      \"name\": \"textBittersweet\"\n    },\n    {\n      \"name\": \"textRedOrange\"\n    },\n    {\n      \"name\": \"textMahogany\"\n    },\n    {\n      \"name\": \"textMaroon\"\n    },\n    {\n      \"name\": \"textBrickRed\"\n    },\n    {\n      \"name\": \"textRed\"\n    },\n    {\n      \"name\": \"textOrangeRed\"\n    },\n    {\n      \"name\": \"textRubineRed\"\n    },\n    {\n      \"name\": \"textWildStrawberry\"\n    },\n    {\n      \"name\": \"textSalmon\"\n    },\n    {\n      \"name\": \"textCarnationPink\"\n    },\n    {\n      \"name\": \"textMagenta\"\n    },\n    {\n      \"name\": \"textVioletRed\"\n    },\n    {\n      \"name\": \"textRhodamine\"\n    },\n    {\n      \"name\": \"textMulberry\"\n    },\n    {\n      \"name\": \"textRedViolet\"\n    },\n    {\n      \"name\": \"textFuchsia\"\n    },\n    {\n      \"name\": \"textLavender\"\n    },\n    {\n      \"name\": \"textThistle\"\n    },\n    {\n      \"name\": \"textOrchid\"\n    },\n    {\n      \"name\": \"textDarkOrchid\"\n    },\n    {\n      \"name\": \"textPurple\"\n    },\n    {\n      \"name\": \"textPlum\"\n    },\n    {\n      \"name\": \"textViolet\"\n    },\n    {\n      \"name\": \"textRoyalPurple\"\n    },\n    {\n      \"name\": \"textBlueViolet\"\n    },\n    {\n      \"name\": \"textPeriwinkle\"\n    },\n    {\n      \"name\": \"textCadetBlue\"\n    },\n    {\n      \"name\": \"textCornflowerBlue\"\n    },\n    {\n      \"name\": \"textMidnightBlue\"\n    },\n    {\n      \"name\": \"textNavyBlue\"\n    },\n    {\n      \"name\": \"textRoyalBlue\"\n    },\n    {\n      \"name\": \"textBlue\"\n    },\n    {\n      \"name\": \"textCerulean\"\n    },\n    {\n      \"name\": \"textCyan\"\n    },\n    {\n      \"name\": \"textProcessBlue\"\n    },\n    {\n      \"name\": \"textSkyBlue\"\n    },\n    {\n      \"name\": \"textTurquoise\"\n    },\n    {\n      \"name\": \"textTealBlue\"\n    },\n    {\n      \"name\": \"textAquamarine\"\n    },\n    {\n      \"name\": \"textBlueGreen\"\n    },\n    {\n      \"name\": \"textEmerald\"\n    },\n    {\n      \"name\": \"textJungleGreen\"\n    },\n    {\n      \"name\": \"textSeaGreen\"\n    },\n    {\n      \"name\": \"textGreen\"\n    },\n    {\n      \"name\": \"textForestGreen\"\n    },\n    {\n      \"name\": \"textPineGreen\"\n    },\n    {\n      \"name\": \"textLimeGreen\"\n    },\n    {\n      \"name\": \"textYellowGreen\"\n    },\n    {\n      \"name\": \"textSpringGreen\"\n    },\n    {\n      \"name\": \"textOliveGreen\"\n    },\n    {\n      \"name\": \"textRawSienna\"\n    },\n    {\n      \"name\": \"textSepia\"\n    },\n    {\n      \"name\": \"textBrown\"\n    },\n    {\n      \"name\": \"textTan\"\n    },\n    {\n      \"name\": \"textGray\"\n    },\n    {\n      \"name\": \"textBlack\"\n    },\n    {\n      \"name\": \"textWhite\"\n    },\n    {\n      \"name\": \"textLightYellow\"\n    },\n    {\n      \"name\": \"textLightRed\"\n    },\n    {\n      \"name\": \"textLightBlue\"\n    },\n    {\n      \"name\": \"textLightGray\"\n    },\n    {\n      \"name\": \"textVeryLightBlue\"\n    },\n    {\n      \"name\": \"GreenYellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreenYellow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Yellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yellow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Goldenrod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Goldenrod{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dandelion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dandelion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Apricot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apricot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Peach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Peach{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Melon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Melon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"YellowOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"YellowOrange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Orange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Orange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BurntOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BurntOrange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bittersweet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bittersweet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RedOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedOrange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Mahogany\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mahogany{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Maroon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Maroon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BrickRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BrickRed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Red\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Red{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"OrangeRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrangeRed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RubineRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubineRed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WildStrawberry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WildStrawberry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Salmon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salmon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CarnationPink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CarnationPink{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Magenta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Magenta{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VioletRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VioletRed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Rhodamine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rhodamine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Mulberry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mulberry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RedViolet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedViolet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fuchsia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fuchsia{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lavender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lavender{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Thistle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thistle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Orchid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Orchid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DarkOrchid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DarkOrchid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Purple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Purple{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Plum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Plum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Violet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Violet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RoyalPurple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RoyalPurple{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BlueViolet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlueViolet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Periwinkle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Periwinkle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CadetBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadetBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CornflowerBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CornflowerBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MidnightBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MidnightBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NavyBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NavyBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RoyalBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RoyalBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Blue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cerulean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cerulean{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cyan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cyan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SkyBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SkyBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Turquoise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Turquoise{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TealBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TealBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Aquamarine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aquamarine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BlueGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlueGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Emerald\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Emerald{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JungleGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JungleGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SeaGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SeaGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Green\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Green{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ForestGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForestGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PineGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PineGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LimeGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LimeGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"YellowGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"YellowGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SpringGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpringGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"OliveGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OliveGreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RawSienna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RawSienna{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Sepia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sepia{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Brown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brown{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Tan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gray{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Black\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Black{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"White\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"White{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LightYellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LightYellow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LightRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LightRed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LightBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LightBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LightGray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LightGray{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VeryLightBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VeryLightBlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AXOputPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AXOputPDF{${1:pdf code}}\"\n      }\n    },\n    {\n      \"name\": \"AXOputPS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AXOputPS{${1:ps code}}\"\n      }\n    },\n    {\n      \"name\": \"AXOspecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AXOspecial{${1:ps code}}\"\n      }\n    },\n    {\n      \"name\": \"AssignDecDiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AssignDecDiv{${1:variable}}{${2:integer1}}{${3:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"AxoPut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"AxoPut(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"SetPoint{${1:name}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"SetTmpBoxTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTmpBoxTwo{${1:contents1}}{${2:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"SetTmpBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTmpBox{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"UseCurrentPSFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoarrowsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axocanvas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axofontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axohelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axominusone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoparray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"axoparray(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"axoscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoscalePT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoscaleTT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axotextscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axounitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoxo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoxoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoyo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axoyoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axozero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspdfNoOffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defWithOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defWithOption{${1:csname}}{${2:args}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defineaxofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineaxofont{${1:user-visible font name}}{${2:LaTeX font name}}\"\n      }\n    },\n    {\n      \"name\": \"getaxohelp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getaxohelp{${1:csname}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \"getoneline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getoneline{${1:csname}}{${2:input stream num}}\"\n      }\n    },\n    {\n      \"name\": \"newcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcolor{${1:color%specialDef}}{${2:CMYK}}\"\n      }\n    },\n    {\n      \"name\": \"putLen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"putLen(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useX{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"useY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useY{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"ifAXONotImplemented\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AXONotImplementedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AXONotImplementedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpinsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptinsp\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"axopicture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"axopicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x},${2:y})(${3:xoffset},${4:yoffset})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/axodraw2#c\": [\n      \"v1compatible\",\n      \"canvasScaleIs1pt\",\n      \"canvasScaleIsObjectScale\",\n      \"canvasScaleIsUnitLength\",\n      \"PSTextScalesIndependently\",\n      \"PSTextScalesLikeGraphics\"\n    ],\n    \"\\\\SetPFont#c\": [\n      \"AvantGarde-Book\",\n      \"AvantGarde-BookOblique\",\n      \"AvantGarde-Demi\",\n      \"AvantGarde-DemiOblique\",\n      \"Bookman-Demi\",\n      \"Bookman-DemiItalic\",\n      \"Bookman-Light\",\n      \"Bookman-LightItalic\",\n      \"Courier\",\n      \"Courier-Bold\",\n      \"Courier-BoldOblique\",\n      \"Courier-Oblique\",\n      \"Helvetica\",\n      \"Helvetica-Bold\",\n      \"Helvetica-BoldOblique\",\n      \"Helvetica-Narrow\",\n      \"Helvetica-NarrowBold\",\n      \"Helvetica-NarrowBoldOblique\",\n      \"Helvetica-NarrowOblique\",\n      \"Helvetica-Oblique\",\n      \"NewCenturySchlbk-Bold\",\n      \"NewCenturySchlbk-BoldItalic\",\n      \"NewCenturySchlbk-Italic\",\n      \"NewCenturySchlbk-Roman\",\n      \"Palatino-Bold\",\n      \"Palatino-BoldItalic\",\n      \"Palatino-Italic\",\n      \"Palatino-Roman\",\n      \"Symbol\",\n      \"Times-Bold\",\n      \"Times-BoldItalic\",\n      \"Times-Italic\",\n      \"Times-Roman\",\n      \"ZapfChancery-MediumItalic\",\n      \"ZapfDingbats\"\n    ],\n    \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\DashGluon,\\\\DashDoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\DashGluonCirc,\\\\DashDoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\DashPhoton,\\\\DashDoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\DashZigZag,\\\\DashDoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArcn,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\": [\n      \"color=\",\n      \"colour=\",\n      \"dsize=${1:number}\",\n      \"dashsize=${1:number}\",\n      \"sep=${1:number}\",\n      \"linesep=${1:number}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\Line,\\\\DoubleLine,\\\\Arc,\\\\DoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\Gluon,\\\\DoubleGluon,\\\\GluonArc,\\\\DoubleGluonArc,\\\\GluonCirc,\\\\DoubleGluonCirc,\\\\Photon,\\\\DoublePhoton,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\ZigZag,\\\\DoubleZigZag,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\LongArrowArcn,\\\\ArrowArcn,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDoubleArc\": [\n      \"dash\"\n    ],\n    \"\\\\Line,\\\\DashLine,\\\\Arc,\\\\DashArc,\\\\Bezier,\\\\DashBezier,\\\\Gluon,\\\\DashGluon,\\\\GluonArc,\\\\DashGluonArc,\\\\GluonCirc,\\\\DashGluonCirc,\\\\Photon,\\\\DashPhoton,\\\\PhotonArc,\\\\DashPhotonArc,\\\\ZigZag,\\\\DashZigZag,\\\\ZigZagArc,\\\\DashZigZagArc,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDashLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc\": [\n      \"double\"\n    ],\n    \"\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\GluonArc,\\\\DoubleGluonArc,\\\\DashGluonArc,\\\\DashDoubleGluonArc,\\\\PhotonArc,\\\\DoublePhotonArc,\\\\DashPhotonArc,\\\\DashDoublePhotonArc,\\\\ZigZagArc,\\\\DoubleZigZagArc,\\\\DashZigZagArc,\\\\DashDoubleZigZagArc,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\": [\n      \"clock\",\n      \"clockwise\"\n    ],\n    \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier\": [\n      \"arrow\"\n    ],\n    \"\\\\Line,\\\\DoubleLine,\\\\DashLine,\\\\DashDoubleLine,\\\\Arc,\\\\DoubleArc,\\\\DashArc,\\\\DashDoubleArc,\\\\Bezier,\\\\DoubleBezier,\\\\DashBezier,\\\\DashDoubleBezier,\\\\ArrowLine,\\\\LongArrow,\\\\ArrowDoubleLine,\\\\ArrowDashLine,\\\\ArrowDashDoubleLine,\\\\LongArrowDashLine,\\\\LongArrowArc,\\\\ArrowArc,\\\\ArrowDashArc,\\\\LongArrowDashArc,\\\\ArrowDoubleArc,\\\\ArrowDashDoubleArc\": [\n      \"flip\",\n      \"arrowpos=${1:number}\",\n      \"arrowaspect=${1:number}\",\n      \"arrowlength=${1:number}\",\n      \"arrowheight=${1:number}\",\n      \"arrowinset=${1:number}\",\n      \"arrowscale=${1:number}\",\n      \"arrowstroke=${1:number}\",\n      \"arrowwidth=${1:number}\",\n      \"inset=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/axodraw2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/babel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=default\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic-r\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-r\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"selectlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignlanguage{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"foreignlanguage[${3:options%keyvals}]{${1:language}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babeltags\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babeltags{${1:tag1=lang1,tag2=lang2,...}}\"\n      }\n    },\n    {\n      \"name\": \"babelensure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelensure{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"babelensure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelensure[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\babelensure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shorthandon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandon{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandoff{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandoff*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandoff*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"useshorthands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useshorthands{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"useshorthands*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useshorthands*{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"defineshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineshorthand{${1:shorthand}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defineshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defineshorthand[${3:lang1,lang2,...}]{${1:shorthand}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"languageshorthands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"languageshorthands{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"babelshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelshorthand{${1:shorthand}}\"\n      }\n    },\n    {\n      \"name\": \"ifbabelshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbabelshorthand{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"textormath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textormath{${1:text code}}{${2:math code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBabelLanguage\",\n      \"if\": \"base\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterBabelLanguage{${1:option_name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelfont{${1:font_family}}{${2:font_name}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"babelfont{${1:font_family}}[${3:font_options%keyvals}]{${2:font_name}}\",\n        \"keys\": [\n          \"\\\\babelfont#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelfont[${3:lang1,lang2,...}]{${1:font_family}}{${2:font_name}}\"\n      }\n    },\n    {\n      \"name\": \"babelfont\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"babelfont[${3:lang1,lang2,...}]{${1:font_family}}[${4:font_options%keyvals}]{${2:font_name}}\",\n        \"keys\": [\n          \"\\\\babelfont#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setlocalecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlocalecaption{${1:language}}{${2:caption_name}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"BabelUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BabelUppercaseMapping{${1:locale-name}}{${2:codepoint}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"BabelLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BabelLowercaseMapping{${1:locale-name}}{${2:codepoint}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"babelprovide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelprovide[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\babelprovide#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localenumeral\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localenumeral{${1:style}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"localecounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localecounter{${1:style}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"localedate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"localedate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"localedate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"localedate[${4:options%keyvals}]{${1:year}}{${2:month}}{${3:day}}\",\n        \"keys\": [\n          \"\\\\localedate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babelcalendar\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"babelcalendar{${1:calendar}}{${2:year-macro%cmd}}{${3:month-macro%cmd}}{${4:day-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"babelcalendar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"babelcalendar[${5:YYYY-MM-DD}]{${1:calendar}}{${2:year-macro%cmd}}{${3:month-macro%cmd}}{${4:day-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"localename\"\n    },\n    {\n      \"name\": \"mainlocalename\"\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguage{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"localeinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeinfo{${1:field%keyvals}}\",\n        \"keys\": [\n          \"\\\\localeinfo#c,\\\\localeinfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localeinfo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeinfo*{${1:field%keyvals}}\",\n        \"keys\": [\n          \"\\\\localeinfo#c,\\\\localeinfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getlocaleproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getlocaleproperty{${1:cmd}}{${2:locale}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"getlocaleproperty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getlocaleproperty*{${1:cmd}}{${2:locale}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"ShowLocaleProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowLocaleProperties{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleForEach{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BabelEnsureInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localeid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphen*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphen*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"babelnullhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelhyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelhyphenation{${1:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelhyphenation[${2:lang1,lang2,...}]{${1:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"babelpatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelpatterns{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"babelpatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"babelpatterns[${2:lang1,lang2,...}]{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelhyphenmins{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"babelhyphenmins{${1:left}}{${2:right}}[${3:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelhyphenmins[${3:lang1,lang2,...}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"babelhyphenmins[${3:lang1,lang2,...}]{${1:left}}{${2:right}}[${4:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"babelhyphenmins*{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"babelhyphenmins*{${1:left}}{${2:right}}[${3:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"babelhyphenmins*[${3:lang1,lang2,...}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"babelhyphenmins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"babelhyphenmins*[${3:lang1,lang2,...}]{${1:left}}{${2:right}}[${4:hyphenationmin}]\"\n      }\n    },\n    {\n      \"name\": \"babelposthyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelposthyphenation{${1:hypenrules-name}}{${2:lua-pattern}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"babelposthyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"babelposthyphenation[${4:options%keyvals}]{${1:hypenrules-name}}{${2:lua-pattern}}{${3:replacement}}\",\n        \"keys\": [\n          \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"babelprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelprehyphenation{${1:locale-name}}{${2:lua-pattern}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"babelprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"babelprehyphenation[${4:options%keyvals}]{${1:locale-name}}{${2:lua-pattern}}{${3:replacement}}\",\n        \"keys\": [\n          \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enablelocaletransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablelocaletransform{${1:transform%keyvals}}\",\n        \"keys\": [\n          \"\\\\enablelocaletransform,\\\\disablelocaletransform\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"disablelocaletransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablelocaletransform{${1:transform%keyvals}}\",\n        \"keys\": [\n          \"\\\\enablelocaletransform,\\\\disablelocaletransform\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localeprehyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeprehyphenation{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"babelcharclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelcharclass{${1:locale}}{${2:name}}{${3:char-list}}\"\n      }\n    },\n    {\n      \"name\": \"babelinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"babelinterchar{${1:locale}}{${2:class-first}}{${3:class-second}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"babelinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"babelinterchar[${5:options%keyvals}]{${1:locale}}{${2:class-first}}{${3:class-second}}{${4:code}}\",\n        \"keys\": [\n          \"\\\\babelinterchar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enablelocaleinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablelocaleinterchar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"disablelocaleinterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablelocaleinterchar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"IfBabelIntercharT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBabelIntercharT{${1:interchar-list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ensureascii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensureascii{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"asciiencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelsublr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babelsublr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localerestoredirs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelPatchSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BabelPatchSection{${1:section-name}}\"\n      }\n    },\n    {\n      \"name\": \"BabelFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BabelFootnote{${1:cmd}}{${2:language}}{${3:before}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"languageattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"languageattribute{${1:language}}{${2:list of attributes}}\"\n      }\n    },\n    {\n      \"name\": \"AddBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddBabelHook{${1:name}}{${2:event}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"AddBabelHook[${4:language}]{${1:name}}{${2:event}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"EnableBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnableBabelHook{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DisableBabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableBabelHook{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BabelContentsFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelcharproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"babelcharproperty{${1:char-code}}{${2:property}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"babelcharproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"babelcharproperty{${1:char-code}}[${4:to-char-code}]{${2:property}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"babeladjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babeladjust{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\babeladjust\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fmtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glqq\"\n    },\n    {\n      \"name\": \"grqq\"\n    },\n    {\n      \"name\": \"glq\"\n    },\n    {\n      \"name\": \"grq\"\n    },\n    {\n      \"name\": \"flqq\"\n    },\n    {\n      \"name\": \"frqq\"\n    },\n    {\n      \"name\": \"flq\"\n    },\n    {\n      \"name\": \"frq\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"umlauthigh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlautlow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latintext\"\n    },\n    {\n      \"name\": \"textlatin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlatin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datealbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasalbanian\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"albanian\"\n    },\n    {\n      \"name\": \"captionsazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasazerbaijani\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"azerbaijani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"azerbaijanischwa\",\n      \"if\": \"azerbaijani\"\n    },\n    {\n      \"name\": \"Azerbaijanischwa\",\n      \"if\": \"azerbaijani\"\n    },\n    {\n      \"name\": \"captionsbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbasque\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basquehyphenmins\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresia\",\n      \"if\": \"basque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dieresia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttilde\",\n      \"if\": \"basque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Belarusian\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nad\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nak\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbosnian\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"atcctg\",\n      \"if\": \"bosnian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbreton\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"kentan\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"eil\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"re\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"trede\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"pevare\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"vet\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"pempvet\",\n      \"if\": \"breton\"\n    },\n    {\n      \"name\": \"captionsbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bulgarian\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"Bul\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectbglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectenglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"weekdaynamebulgarian\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weekdaynamebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abvon\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"abvoff\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxtounicode\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lastJulianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastJulianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstGregorianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstGregorianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"captionscatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascatalan\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalanhyphenmins\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgem\",\n      \"if\": \"catalan\"\n    },\n    {\n      \"name\": \"Lgem\",\n      \"if\": \"catalan\"\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"catalan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresis\",\n      \"if\": \"catalan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dieresis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionscroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascroatian\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasczech\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"q{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"w\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"w{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"uv\",\n      \"if\": \"czech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csprimeson\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"csprimesoff\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"lcaron\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"Lcaron\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"clqq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"crqq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"clq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"crq\",\n      \"if\": \"czech\"\n    },\n    {\n      \"name\": \"captionsdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdanish\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchhyphenmins\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasafrikaans\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afrikaanshyphenmins\",\n      \"if\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasaustralian\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"australian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionscanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrascanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrascanadian\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"canadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnewzealand\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"newzealand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasesperanto\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Esper\",\n      \"if\": \"esperanto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Esper{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"esper\",\n      \"if\": \"esperanto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esper{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hodiau\",\n      \"if\": \"esperanto\"\n    },\n    {\n      \"name\": \"hodiaun\",\n      \"if\": \"esperanto\"\n    },\n    {\n      \"name\": \"captionsestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasestonian\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"estonian\"\n    },\n    {\n      \"name\": \"captionsfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfinnish\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnmarkspace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acadiandate\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acadiandate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"acadiantoday\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnmarkspace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasacadian\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"acadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"captionsfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfriulan\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"friulan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectgalician\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"selectgalician*\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"layoutgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galiciandatedo\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"galiciandatede\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"deactivatetilden\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galiciandeactivate\",\n      \"if\": \"galician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"galiciandeactivate{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandsgalician\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"galiciandecimal\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"galiciandecimal{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sptextfont\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"if\": \"galician\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasaustrian\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"austrian\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"austrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswissgerman\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"swissgerman\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcapsz\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkngender\",\n      \"if\": \"swissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"naustrian\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"naustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnswissgerman\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"nswissgerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"nswissgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lgrfont\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeralsix\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralSix\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralninety\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeralNinety\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelGreekRestoreFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BabelGreekPreviousFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnsureStandardFontEncoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolutonikogreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek.polutoniko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek.polutoniko\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek.polutoniko\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek.polutoniko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsancientgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasancientgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek.ancient\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek.ancient\"\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasicelandic\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tala\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tala{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"grada\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grada{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gradur\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradur{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"upp\",\n      \"if\": \"icelandic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ilqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"irqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ilq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"irq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"iflqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ifrqq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ifrq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"iflq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"oob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"Oob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"ooob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"OOob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"eeob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"EEob\",\n      \"if\": \"icelandic\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasa\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindon\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasai\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasinterlingua\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasirish\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"irish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraskurmanji\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekurmanjialternate\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"dategdmy\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"kurmanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"januaryname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"februaryname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"marchname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"aprilname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"mayname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"junename\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"julyname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"augustname\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"septembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"octobername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"novembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"decembername\",\n      \"if\": \"kurmanji\"\n    },\n    {\n      \"name\": \"captionslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslatin\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProsodicMarksOn\",\n      \"if\": \"latin\"\n    },\n    {\n      \"name\": \"ProsodicMarksOff\",\n      \"if\": \"latin\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasclassiclatin\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"classiclatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasecclesiasticlatin\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ecclesiasticlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmedievallatin\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"medievallatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslatvian\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datumaa\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"datums\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"latviangada\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latviantoday\",\n      \"if\": \"latvian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslithuanian\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macedonian\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"macedonian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Mkd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"textoverline\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbarshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbarshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverlineshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverlineshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfItalic\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfItalic{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmagyar\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ondatemagyar\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acite*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"azc\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Azc\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"azp\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azp\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"azr\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azr\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"emitdate[${3:toldalék}]{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emitdate{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"factorial\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"footnotestyle\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotestyle{${1:előírás%keyvals}}\",\n        \"keys\": [\n          \"\\\\footnotestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hang{${1:bekezdéskezdő jel}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headingfootnote[${2:szám}]{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"HuComma\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hunnewlabel\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunumeral\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hunumeral\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"huordinal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Huordinal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"magyarDumpHuMin\",\n      \"if\": \"magyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnotable\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeFootnotable{${1:környezet-név}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrk\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrk{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrkAll\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrkAll{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathReal\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathReal{${1:képlet tizedestörtekkel%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ondatemagyar\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"refstruc\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstruc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstrucparen\",\n      \"if\": \"magyar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstrucparen{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SafeToday\",\n      \"if\": \"magyar\"\n    },\n    {\n      \"name\": \"textqq\",\n      \"if\": \"magyar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqq{${1:szövegközti idézet%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionshungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrashungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrashungarian\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acite*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"azc\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Azc\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"azp\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azp\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"azr\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azr\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"emitdate[${3:toldalék}]{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emitdate{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"factorial\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"footnotestyle\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotestyle{${1:előírás%keyvals}}\",\n        \"keys\": [\n          \"\\\\footnotestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hang{${1:bekezdéskezdő jel}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headingfootnote[${2:szám}]{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"HuComma\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hunnewlabel\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunumeral\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hunumeral\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"huordinal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Huordinal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"magyarDumpHuMin\",\n      \"if\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnotable\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeFootnotable{${1:környezet-név}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrk\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrk{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrkAll\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrkAll{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathReal\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathReal{${1:képlet tizedestörtekkel%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ondatehungarian\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"ontoday\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"refstruc\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstruc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstrucparen\",\n      \"if\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstrucparen{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SafeToday\",\n      \"if\": \"hungarian\"\n    },\n    {\n      \"name\": \"textqq\",\n      \"if\": \"hungarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqq{${1:szövegközti idézet%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmalay\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbahasam\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bahasam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmelayu\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"melayu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmeyalu\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"meyalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmongolian\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mongolian\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Mon\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"mongolian\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Useg\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"useg\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nsd\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nsk\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NSD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NSK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"mongolian\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"mongolian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnorsk\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"norsk\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"norsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspiedmontese\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspinyin\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"pinyin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"sob\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telepl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"polishrz\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polishzx\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuges\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"portuges\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"portuges\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"portuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuguese\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"portuguese\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"portuguese\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazil\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"brazil\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"brazil\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"brazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazilian\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"brazilian\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"brazilian\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"brazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasromanian\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasromansh\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian.ancient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian.ancient\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian.ancient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishrefname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishabstractname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishbibname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishchaptername\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishappendixname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishcontentsname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfigurename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlisttablename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishfigurename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishtablename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpartname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishenclname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishccname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishheadtoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpagename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishseename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishalsoname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishproofname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishprefacename\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishglossaryname\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishdashitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsignitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsymbitems\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexchars\",\n      \"if\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishindexchars{${1:encap}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"spanishscroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishlcroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishucroman\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"Today\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishdate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishDate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishDate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdatedel\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdatede\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishreverseddate\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdatefirst\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdatefirst{${1:día-uno}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdeactivate\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdeactivate{${1:caracteres}}\"\n      }\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishdecimal\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdecimal{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spanishplainpercent\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"percentsign\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"spanish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"sen\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"arcsen\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishoperators\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessi\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"selectspanish\",\n      \"if\": \"spanish\"\n    },\n    {\n      \"name\": \"spanishoptions\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notextspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsspanish\",\n      \"if\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrassamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrassamin\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"samin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datescottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasscottish\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"scottish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbian\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"today*\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Serbianc\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"serbianc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasslovak\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\",\n      \"if\": \"slovak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"q{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"sq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"uv\",\n      \"if\": \"slovak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lcaron\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcaron\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clqq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"crqq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"clq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"crq\",\n      \"if\": \"slovak\"\n    },\n    {\n      \"name\": \"standardhyphens\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splithyphens\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasslovene\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"slovene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslsorbian\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdatelsorbian\",\n      \"if\": \"lsorbian\"\n    },\n    {\n      \"name\": \"olddatelsorbian\",\n      \"if\": \"lsorbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lsorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraslowersorbian\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdatelowersorbian\",\n      \"if\": \"lowersorbian\"\n    },\n    {\n      \"name\": \"olddatelowersorbian\",\n      \"if\": \"lowersorbian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lowersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasusorbian\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdateusorbian\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"olddateusorbian\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"usorbian\"\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"usorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasuppersorbian\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdateuppersorbian\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"olddateuppersorbian\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"uppersorbian\"\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"uppersorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswedish\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"swedish\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datethai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasthai\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaitext\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textthai\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthai{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpali\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpali{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wbr\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thainum\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thainum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaibracenum\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaibracenum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaialph\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaialph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaiAlph\",\n      \"if\": \"thai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaiAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textyamakkan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textfongmun\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textangkhankhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textkhomut\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textYoYingPali\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"textThoThanPali\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKoKai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhuat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhwai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoKhon\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhoRakhang\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNgoNgu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChang\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSo\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiChoChoe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYoYing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiDoChada\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiToPatak\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoNangmontho\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoPhuthao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNoNen\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiDoDek\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiToTao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThung\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThahan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThoThong\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNoNu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiBoBaimai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPoPla\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoPhung\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFoFa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoPhan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFoFan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhoSamphao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMoMa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYoYak\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiRoRua\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiRu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLoLing\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiWoWaen\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSala\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoRusi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSoSua\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiHoHip\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLoChula\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiOAng\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiHoNokhuk\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPaiyannoi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraA\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiHanakat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAm\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraI\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraIi\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUee\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraU\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraUu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiPhinthu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraE\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAe\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraO\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimuan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimalai\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiLakkhangyao\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiyamok\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaitaikhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiEk\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiTho\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiTri\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiMaiChattawa\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiThanthakhat\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiNikhahit\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiYamakkan\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiFongman\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaizero\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaione\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaitwo\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaithree\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaifour\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaifive\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaisix\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiseven\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaieight\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thainine\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiAngkhankhu\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"thaiKhomut\",\n      \"if\": \"thai\"\n    },\n    {\n      \"name\": \"captionsthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datethaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasthaicjk\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"thaicjk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKoKai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhuat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhwai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoKhon\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhoRakhang\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNgoNgu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChang\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSo\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiChoChoe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYoYing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiDoChada\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiToPatak\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoNangmontho\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoPhuthao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNoNen\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiDoDek\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiToTao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThung\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThahan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThoThong\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNoNu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiBoBaimai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPoPla\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoPhung\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFoFa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoPhan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFoFan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhoSamphao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMoMa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYoYak\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiRoRua\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiRu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLoLing\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiWoWaen\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSala\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoRusi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSoSua\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiHoHip\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLoChula\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiOAng\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiHoNokhuk\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPaiyannoi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraA\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiHanakat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAm\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraI\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraIi\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUee\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraU\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraUu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiPhinthu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"textbaht\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraE\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAe\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraO\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimuan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimalai\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiLakkhangyao\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiyamok\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaitaikhu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiEk\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiTho\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiTri\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiMaiChattawa\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiThanthakhat\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiNikhahit\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiYamakkan\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiFongman\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaizero\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaione\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaitwo\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaithree\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaifour\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaifive\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaisix\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiseven\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaieight\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thainine\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiAngkhankhu\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"thaiKhomut\",\n      \"if\": \"thaicjk\"\n    },\n    {\n      \"name\": \"captionsturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"Ukrainian\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"ukrainian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"captionsukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"viettext\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"viet\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textviet\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textviet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"UHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ABREVE\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datewelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraswelsh\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"welsh\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"selectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyphenrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"acadian\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"acadian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"acadian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"galician\"\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"spanish\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/babel#c\": [\n      \"${1:language}\",\n      \"modifiers.${1:language}=${2:modifiers}\",\n      \"KeepShorthandsActive\",\n      \"activeacute\",\n      \"activegrave\",\n      \"shorthands=${2|${1:chars},off|}\",\n      \"safe=${1|none,ref,bib|}\",\n      \"math=${1|active,normal|}\",\n      \"config=${1:file}\",\n      \"main=${1:language}\",\n      \"headfoot=${1:language}\",\n      \"noconfigs\",\n      \"showlanguages\",\n      \"silent\",\n      \"hyphenmap=${1|off,first,select,other,other*|}\",\n      \"bidi=${1|default,basic,basic-r,bidi-l,bidi-r|}\",\n      \"layout=${1|sectioning,counters,counters*,contents,footnotes,captions,columns,graphics,extras|}\",\n      \"provide=*\",\n      \"provide+=*\",\n      \"provide*=*\",\n      \"base\",\n      \"ensureinfo=off\",\n      \"es-lcroman\",\n      \"es-minimal\",\n      \"es-nodecimaldot\",\n      \"es-noenumerate\",\n      \"es-noindentfirst\",\n      \"es-noitemize\",\n      \"es-nolayout\",\n      \"es-nolists\",\n      \"es-noquoting\",\n      \"es-nosectiondot\",\n      \"es-noshorthands\",\n      \"es-notilde\",\n      \"es-preindex\",\n      \"es-sloppy\",\n      \"es-tabla\",\n      \"es-tilden\",\n      \"es-ucroman\",\n      \"es-uppernames\",\n      \"mexico\",\n      \"mexico-com\"\n    ],\n    \"\\\\foreignlanguage,\\\\begin{otherlanguage*}\": [\n      \"date\",\n      \"captions\"\n    ],\n    \"\\\\babelensure\": [\n      \"include=${1:commands}\",\n      \"exclude=${1:commands}\",\n      \"fontenc=${1:encoding}\"\n    ],\n    \"\\\\babelfont#c\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,SwashOff,Alternate,AlternateOff,WordInitial,WordInitialOff,WordFinal,WordFinalOff,LineFinal,LineFinalOff,Inner,InnerOff,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"Opacity=${1:factor}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,Uppercase,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ],\n    \"\\\\babelprovide#c\": [\n      \"import\",\n      \"import=${1:language tag}\",\n      \"captions=${1:language tag}\",\n      \"hyphenrules=${1:language list}\",\n      \"main\",\n      \"script=${1:script name}\",\n      \"language=${1:language name}\",\n      \"alph=${1:counter}\",\n      \"Alph=${1:counter}\",\n      \"onchar=${1|ids,fonts,letters|}\",\n      \"intraspace=${1:base shrink stretch}\",\n      \"intrapenalty=${1:penalty}\",\n      \"transforms=${1|transliteration.dad,digraphs.ligatures,hyphen.repeat,oneletter.nobreak,prehyphen.nobreak,diaeresis.hyphen,transliteration.omega,sigma.final,transliteration.hk,punctuation.space,digraphs.hyphen,danda.nobreak,letters.noj,letters.uv,transliteration.iast,transliteration.gajica,kashida.plain|}\",\n      \"justification=${1|kashida,elongated,unhyphenated,padding|}\",\n      \"linebreaking=${1|kashida,elongated,unhyphenated,padding|}\",\n      \"mapfont=\",\n      \"maparabic\",\n      \"mapdigits\",\n      \"calendar=${1:calendar}\",\n      \"calendar=${1:calendar}.${2:variant}\",\n      \"casing=${1|yiwn,eszett,iota,nouv,uv|}\",\n      \"interchar=${1:interchar-list}\"\n    ],\n    \"\\\\localedate\": [\n      \"calendar=${1:calendar}\",\n      \"variant=${1:variant}\",\n      \"convert\"\n    ],\n    \"\\\\localeinfo#c,\\\\localeinfo*#c\": [\n      \"name.english\",\n      \"tag.ini\",\n      \"tag.bcp47\",\n      \"language.tag.bcp47\",\n      \"tag.opentype\",\n      \"script.name\",\n      \"script.tag.bcp47\",\n      \"script.tag.opentype\",\n      \"region.tag.bcp47\",\n      \"variant.tag.bcp47\",\n      \"extension.x.tag.bcp47\",\n      \"extension.t.tag.bcp47\",\n      \"extension.u.tag.bcp47\"\n    ],\n    \"\\\\babelposthyphenation#c,\\\\babelprehyphenation#c\": [\n      \"label=${1|transliteration.dad,digraphs.ligatures,hyphen.repeat,oneletter.nobreak,prehyphen.nobreak,punctuation.space,diaeresis.hyphen,transliteration.omega,sigma.final,transliteration.hk,punctuation.space,digraphs.hyphen,danda.nobreak,letters.noj,letters.uv,transliteration.iast,transliteration.gajica,kashida.plain|}\",\n      \"fonts=${1:tag1 tag2 ...}\",\n      \"attribute=${1:attribute}\"\n    ],\n    \"\\\\enablelocaletransform,\\\\disablelocaletransform\": [\n      \"transliteration.dad\",\n      \"digraphs.ligatures\",\n      \"hyphen.repeat\",\n      \"oneletter.nobreak\",\n      \"prehyphen.nobreak\",\n      \"diaeresis.hyphen\",\n      \"transliteration.omega\",\n      \"sigma.final\",\n      \"transliteration.hk\",\n      \"punctuation.space\",\n      \"digraphs.hyphen\",\n      \"danda.nobreak\",\n      \"letters.noj\",\n      \"letters.uv\",\n      \"transliteration.iast\",\n      \"transliteration.gajica\",\n      \"kashida.plain\"\n    ],\n    \"\\\\babelinterchar\": [\n      \"label=${1:label}\"\n    ],\n    \"\\\\babeladjust\": [\n      \"bidi.mapdigits=${1|on,off|}\",\n      \"bidi.mirroring=${1|on,off|}\",\n      \"bidi.text=${1|on,off|}\",\n      \"bidi.math=${1|on,off|}\",\n      \"linebreak.sea=${1|on,off|}\",\n      \"linebreak.cjk=${1|on,off|}\",\n      \"justify.arabic=${1|on,off|}\",\n      \"layout.tabular=${1|on,off|}\",\n      \"layout.lists=${1|on,off|}\",\n      \"autoload.bcp47=${1|on,off|}\",\n      \"bcp47.toname=${1|on,off|}\",\n      \"autoload.options=\",\n      \"autoload.bcp47.prefix=\",\n      \"autoload.bcp47.options=\",\n      \"prehyphenation.disable=${1|nohyphenation,off|}\",\n      \"select.write=${1|shift,keep,omit|}\",\n      \"select.encoding=${1|off|}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\",\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ],\n    \"\\\\footnotestyle\": [\n      \"reset=${1|none,section,chapter,page,page-resume,page-cont|}\",\n      \"resume\",\n      \"indent=${1|article-nosp,article-sp,hulist|}\",\n      \"rule=${1|none,one-line,fourth,choose|}\",\n      \"marksize=max-normal\",\n      \"mark=${1|arabic,stars,stars-max|}\",\n      \"mpmark=${1|arabic,stars,stars-max|}\",\n      \"plain\",\n      \"huplain\",\n      \"starplain\",\n      \"editor\",\n      \"reset=${1|none,section,chapter,page,page-resume,page-cont|}\",\n      \"resume\",\n      \"indent=${1|article-nosp,article-sp,hulist|}\",\n      \"rule=${1|none,one-line,fourth,choose|}\",\n      \"marksize=max-normal\",\n      \"mark=${1|arabic,stars,stars-max|}\",\n      \"mpmark=${1|arabic,stars,stars-max|}\",\n      \"plain\",\n      \"huplain\",\n      \"starplain\",\n      \"editor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/babel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/babelbib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"btxlanguagenameafrikaans\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameamerican\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameaustrian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamebrazil\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamebrazilian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamebritish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamebulgarian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamecanadian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamecanadien\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamecatalan\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamecroatian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameczech\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamedanish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamedutch\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameenglish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameesperanto\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamefinnish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamefrancais\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamefranceis\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamefrench\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamefrenchb\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamegerman\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamegermanb\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamegreek\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamehebrew\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamehungarian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameicelandic\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameirish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameitalian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamelatin\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenaustrian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamengerman\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenhungarian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenicelandic\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenirish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenitalian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenlatin\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamennorsk\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamennynorsk\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenorsk\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenpolish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenportuges\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenportuguese\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenrussian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenscottish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenserbian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenspanish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenswedish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenturkish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamenynorsk\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamepolish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameportuges\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameportuguese\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamerussian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamescottish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameserbian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenamespanish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameswedish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameturkish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameUKenglish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameukrainian\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxlanguagenameUSenglish\",\n      \"if\": \"languagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectbiblanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectbiblanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"declarebtxcommands\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarebtxcommands{${1:language}}{${2:command definitions}}\"\n      }\n    },\n    {\n      \"name\": \"setbtxfallbacklanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbtxfallbacklanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxannotation{${1:annotations}}\"\n      }\n    },\n    {\n      \"name\": \"biblanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblanguage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibliographyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbibliographyfont{${1:element}}{${2:font command}}\"\n      }\n    },\n    {\n      \"name\": \"setbibliographyfont*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbibliographyfont*{${1:element}}{${2:font command}}\"\n      }\n    },\n    {\n      \"name\": \"btxauthorcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxurldatecomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxurldatecomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"btxISBN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxISSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxprintISBN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxprintISBN{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"btxprintISSN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxprintISSN{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"btxfnamespaceshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxfnamespacelong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxprintmonthyearnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxprintmonthyearnum{${1:month}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"bbbbaddto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbbbaddto{${1:language}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bbbbifpackageloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bbbbifpackageloaded{${1:package}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bbbbifundefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bbbbifundefined{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"biblanguagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsafrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsamerican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsaustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsbahasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsbrazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibscanadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibscanadien\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibscatalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibscroatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsczech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsenglish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibsenglish[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"bibsesperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfrancais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfrenchb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgalician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgermanb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsmexican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnaustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnorsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnorwegian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsportuges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsromanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsrussianb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsserbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsturkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsUKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsUSenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxandcomma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxandcomma{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"btxandlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxandlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxandshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxandshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxchapterlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxchapterlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxchapterlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxchapterlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxchaptershort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxchaptershort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxchaptershort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxchaptershort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditionlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditionlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditionlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditionlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditionnumlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditionnumlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditionnumlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditionnumlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditionnumshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditionnumshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditionnumshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditionnumshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditionshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditionshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditionshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditionshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditorlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditorlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditorlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditorlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditorshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditorshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditorshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditorshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditorslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditorslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditorslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditorslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxeditorsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxeditorsshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxeditorsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxeditorsshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxetalfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxetallong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxetallong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxetalshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxetalshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxfallbacklanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxifchangecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxifchangecase{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"btxifchangecaseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxifchangecaseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Btxinlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxinlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxinlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxinlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxinserieslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxinserieslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxinseriesshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxinseriesshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxinshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxinshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxinshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxinshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxISBNfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxISSNfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxjournalfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxjtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Btxjvolumelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxjvolumelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxjvolumelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxjvolumelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxjvolumeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxjvolumeshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxjvolumeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxjvolumeshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxkeywordlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxkeywordlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxlanguagename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxlanguagename{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxlastnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxmastthesis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmastthesis{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonaprlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonaprlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonaprshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonaprshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonauglong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonauglong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonaugshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonaugshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmondeclong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmondeclong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmondecshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmondecshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonfeblong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonfeblong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonfebshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonfebshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjanlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjanlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjanshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjanshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjullong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjullong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjulshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjulshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjunlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjunlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonjunshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonjunshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonmarlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonmarlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonmarshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonmarshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonmaylong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonmaylong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonmayshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonmayshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonnovlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonnovlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonnovshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonnovshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonoctlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonoctlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonoctshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonoctshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonseplong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonseplong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxmonsepshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxmonsepshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Btxnumberlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxnumberlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumberlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxnumberlong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxnumbershort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxnumbershort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumbershort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxnumbershort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeraldot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeraldot{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralenglish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeralenglish{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralfallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeralfallback{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxnumeralfrench\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeralfrench{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumerallong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxnumerallong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralromanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeralromanian{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxnumeralshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxnumeralswedish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btxnumeralswedish{${1:language}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"btxofserieslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxofserieslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxofseriesshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxofseriesshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxpagelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxpagelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxpagelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxpagelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxpageshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxpageshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxpageshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxpageshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxpageslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxpageslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxpageslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxpageslong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxpagesshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxpagesshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxpagesshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxpagesshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxphdthesis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxphdthesis{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxprintmonthyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxprintmonthyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"btxprintmonthyear{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"btxpublisherfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxselectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxselectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxtechreplong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxtechreplong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxtechreplong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxtechreplong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxtechrepshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxtechrepshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxtechrepshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxtechrepshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxurldatefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxurlfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btxvolumefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Btxvolumelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxvolumelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxvolumelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxvolumelong{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Btxvolumeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btxvolumeshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"btxvolumeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btxvolumeshort{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ifbbbbannotations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbbbbfixlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbbbblanguagenames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbtxprintISBN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifbtxprintISBN{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifbtxprintISSN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifbtxprintISSN{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumber{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"inputbdf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputbdf{${1:language}}{${2:.bdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"providebibliographyfont*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibliographyfont*{${1:element}}{${2:font command}}\"\n      }\n    },\n    {\n      \"name\": \"providebibliographyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibliographyfont{${1:element}}{${2:font command}}\"\n      }\n    },\n    {\n      \"name\": \"thebtxromaniannumeral\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/babelbib#c\": [\n      \"fixlanguage\",\n      \"languagenames\",\n      \"annote\",\n      \"noisbn\",\n      \"noissn\",\n      \"dateasis\",\n      \"datenumeric\",\n      \"${1:custom language}\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"bababbrv\",\n      \"bababbrv-lf\",\n      \"bababbrv-fl\",\n      \"babplain\",\n      \"babplain-lf\",\n      \"babplain-fl\",\n      \"babalpha\",\n      \"babunsrt\",\n      \"babamspl\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/babelbib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/babyloniannum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"numname\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"babyloniannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babyloniannum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"babylonian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babylonian{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"babylonianfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodedisp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodedisp{${1:unicode num}}\"\n      }\n    },\n    {\n      \"name\": \"babylonianglyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"babylonianglyph{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/background.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"everypage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backgroundsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\backgroundsetup,\\\\usepackage/background#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BgThispage\"\n    },\n    {\n      \"name\": \"NoBgThispage\"\n    },\n    {\n      \"name\": \"BgMaterial\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\backgroundsetup,\\\\usepackage/background#c\": [\n      \"pages=${1|all,some|}\",\n      \"firstpage\",\n      \"placement=${1|center,top,bottom|}\",\n      \"contents=\",\n      \"color=\",\n      \"angle=${1:degrees}\",\n      \"opacity=\",\n      \"scale=\",\n      \"position=\",\n      \"nodeanchor=\",\n      \"anchor=\",\n      \"hshift=\",\n      \"vshift=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\backgroundsetup,\\\\usepackage/background#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/backnaur.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bnfprod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnfprod{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"bnfprod*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnfprod*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"bnfmore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnfmore{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"bnfmore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnfmore*{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"bnfpn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnfpn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bnfts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnfts{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"bnftd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnftd{${1:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"bnfes\"\n    },\n    {\n      \"name\": \"bnfsk\"\n    },\n    {\n      \"name\": \"bnfor\"\n    },\n    {\n      \"name\": \"bnfsp\"\n    },\n    {\n      \"name\": \"bnfpo\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bnf\"\n    },\n    {\n      \"name\": \"bnf*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/backnaur#c\": [\n      \"perp\",\n      \"epsilon\",\n      \"tsrm\",\n      \"altpo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/backnaur#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/backref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backrefsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backrefsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\backrefsetup#c,\\\\usepackage/backref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifbackrefparscan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefparscanfalse\"\n    },\n    {\n      \"name\": \"backrefparscantrue\"\n    },\n    {\n      \"name\": \"backrefprint\"\n    },\n    {\n      \"name\": \"backcite\",\n      \"arg\": {\n        \"format\": \"{}{{}{}{}}\",\n        \"snippet\": \"backcite{${1:label}}{{${2:page num}}{${3:current label}}{${4:current anchor}}}\"\n      }\n    },\n    {\n      \"name\": \"backref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backref{${1:backref list}}\"\n      }\n    },\n    {\n      \"name\": \"backrefalt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"backrefalt{${1:num w/o dupes}}{${2:backref list w/o dupes}}{${3:num w/ dupes}}{${4:backref list w/ dupes}}\"\n      }\n    },\n    {\n      \"name\": \"backrefpagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefsectionsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backreftwosep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backreflastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefentrycount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backrefentrycount{${1:backref entry}}{${2:citation count}}\"\n      }\n    },\n    {\n      \"name\": \"backrefenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backreffrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backrefafrikaans\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\backrefsetup#c,\\\\usepackage/backref#c\": [\n      \"ref\",\n      \"pageref\",\n      \"hyperref\",\n      \"hyperpageref\",\n      \"english\",\n      \"german\",\n      \"french\",\n      \"spanish\",\n      \"brazil\",\n      \"verbose\",\n      \"enable\",\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\backrefsetup#c,\\\\usepackage/backref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/balance.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"balance\"\n    },\n    {\n      \"name\": \"nobalance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bangla.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"CharisSIL\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"banglatext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"banglatext{${1:bangla text}}\"\n      }\n    },\n    {\n      \"name\": \"banglabold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"banglabold{${1:bangla text}}\"\n      }\n    },\n    {\n      \"name\": \"banglaitalic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"banglaitalic{${1:bangla text}}\"\n      }\n    },\n    {\n      \"name\": \"banglatranslit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"banglatranslit{${1:bangla text}}\"\n      }\n    },\n    {\n      \"name\": \"banglaipa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"banglaipa{${1:bangla text}}\"\n      }\n    },\n    {\n      \"name\": \"banglapage\"\n    },\n    {\n      \"name\": \"banglasection\"\n    },\n    {\n      \"name\": \"banglaenumerate\"\n    },\n    {\n      \"name\": \"banglaequation\"\n    },\n    {\n      \"name\": \"banglatable\"\n    },\n    {\n      \"name\": \"banglafigure\"\n    },\n    {\n      \"name\": \"banglaallcounters\"\n    },\n    {\n      \"name\": \"bengalinum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bengalinum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"bengalialpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bengalialpha{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"banglaipafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdnhbold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdnhitalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdnhtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdnhtranslitfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doindictrans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indictrans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indictrans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"translitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitfont{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"isoindictranse\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bangla#c\": [\n      \"kalpurush\",\n      \"shimanto\",\n      \"notosansbengali\",\n      \"notoserifbengali\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bangla#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bargraph-js.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bargap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bardimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presetsbarfor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"presetsbarfor{${1:bg name}}{${2:bar name}}{${3:eforms parameters}}\"\n      }\n    },\n    {\n      \"name\": \"barfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barfor{${1:bar name}}\"\n      }\n    },\n    {\n      \"name\": \"presetinputfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"presetinputfor{${1:bgenv name}}{${2:bg name.bar name}}\"\n      }\n    },\n    {\n      \"name\": \"inputFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"inputFor{${1:bgenv name}}{${2:bg name}}{${3:bar name}}{${4:width}}{${5:height}}\"\n      }\n    },\n    {\n      \"name\": \"inputFor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"inputFor[${6:eforms parameters}]{${1:bgenv name}}{${2:bg name}}{${3:bar name}}{${4:width}}{${5:height}}\"\n      }\n    },\n    {\n      \"name\": \"populateCommaData\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"populateCommaData(${1:\\\"%<bgenv name%>\\\"},${2:\\\"%<bg name%>\\\"},${3:%<str},${4:validate%>})\"\n      }\n    },\n    {\n      \"name\": \"hs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hs{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"vs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vs{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"barLabelsTU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barLabelsTU{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"barLabelsNoTU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barLabelsNoTU{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"isdynamic\"\n    },\n    {\n      \"name\": \"scaleFactorDef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scaleFactorDef{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"displaysfFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"displaysfFor{${1:bgenv name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"displaysfFor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"displaysfFor[${4:eforms parameters}]{${1:bgenv name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"manualsfFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"manualsfFor{${1:bgenv name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"manualsfFor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"manualsfFor[${4:eforms parameters}]{${1:bgenv name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"labelFld\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"labelFld{${1:text}}{${2:bg name.bar name}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"labelFld\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"labelFld[${5:eforms parameters}]{${1:text}}{${2:bg name.bar name}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"barDefColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barforCommon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barforCommon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barLabelsNoTUJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barLabelsNoTUJSDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgtoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dybarforCommon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dybarforCommon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"expbarfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expbarfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getBarName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"horizontalbarsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"horizontalbarstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhorizontalbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisbgenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isbgenvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isbgenvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oBgEnvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priorpresetinputfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"priorpresetinputfor{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"simpleBarLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtBgValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usebarlabel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bargraphenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bgenv name}}\"\n      }\n    },\n    {\n      \"name\": \"bargraphenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:bgenv name}}\",\n        \"keys\": [\n          \"\\\\begin{bargraphenv}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bargraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bg name}}\"\n      }\n    },\n    {\n      \"name\": \"bargraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:bg name}}\",\n        \"keys\": [\n          \"\\\\begin{bargraph}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bargraph-js#c\": [\n      \"dynamic\"\n    ],\n    \"\\\\begin{bargraphenv}\": [\n      \"width=\",\n      \"height=\",\n      \"o=${1|horiz,vert|}\",\n      \"origin=${1|0,.5|}\",\n      \"showaxis\"\n    ],\n    \"\\\\begin{bargraph}\": [\n      \"nbars=${1:number}\",\n      \"gap=${1:number}\",\n      \"bardimen=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bargraph-js#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/barracuda.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"barracuda\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"barracuda{${1:encoder}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"barracuda\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"barracuda[${3:options%keyvals}]{${1:encoder}}{${2:data}}\",\n        \"keys\": [\n          \"\\\\barracuda#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"barracudabox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\barracuda#c\": [\n      \"ax=${1:number}\",\n      \"ay=${1:number}\",\n      \"debug_bbox=${1|\\\"none\\\",\\\"enum\\\",\\\"symb\\\",\\\"qz\\\",\\\"qzsymb\\\"|}\",\n      \"module=${1:number}\",\n      \"ratio=${1:number}\",\n      \"quietzone=${1:number}\",\n      \"interspace=${1:number}\",\n      \"height=${1:number}\",\n      \"text_enabled\",\n      \"text_vpos=${1|'top','bottom'|}\",\n      \"text_hpos=${1|'left','center','right','spaced'|}\",\n      \"text_gap=${1:number}\",\n      \"text_star\",\n      \"xdim=${1:number}\",\n      \"ydim=${1:number}\",\n      \"quietzone_factor=${1:number}\",\n      \"mod=${1:number}\",\n      \"quietzone_left_factor=${1:number}\",\n      \"quietzone_right_factor=${1:number}\",\n      \"bars_depth_factor=${1:number}\",\n      \"text_enabled\",\n      \"text_ygap_factor=${1:number}\",\n      \"text_xgap_factor=${1:number}\",\n      \"text_guard_enabled\",\n      \"check_digit_policy=${1|'add','verify','none'|}\",\n      \"check_digit_method=\",\n      \"bearer_bars_enabled\",\n      \"bearer_bars_thickness=${1:number}\",\n      \"bearer_bars_layout=${1|'frame','hbar'|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bashful.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bash[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bash\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"END\"\n    },\n    {\n      \"name\": \"bashStdout\"\n    },\n    {\n      \"name\": \"bashStderr\"\n    },\n    {\n      \"name\": \"splice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splice{${1:shell command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bashI[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"bashII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashII{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bashIII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashIII{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bashIV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashIV{${1:shell command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashV{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"logBL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logBL{${1:message%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bashful#c\": [\n      \"unique\",\n      \"hide\",\n      \"dir=${1:directory}\",\n      \"verbose\"\n    ],\n    \"\\\\bash\": [\n      \"scriptFile=${1:file name}\",\n      \"stdoutFile=${1:file name}\",\n      \"stderrFile=${1:file name}\",\n      \"exitCodeFile=${1:file name}\",\n      \"script\",\n      \"stdout\",\n      \"stderr\",\n      \"ignoreExitCode\",\n      \"ignoreStderr\",\n      \"prefix=${1:tokens}\",\n      \"environment=${1:envname}\",\n      \"verbose\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline\": [\n      \"style=bashfulScript\",\n      \"style=bashfulStdout\",\n      \"style=bashfulStderr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bashful#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/basicarith.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"probline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"probline{${1:width}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"nextpline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextpline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"opline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opline{${1:operator}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"soluline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soluline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"noopline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noopline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"longdiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longdiv{${1:length}}{${2:dividend}}{${3:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"ldsoluline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ldsoluline{${1:solution}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"nextldline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nextldline{${1:cutoff}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"linestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"linestyle{${1:line number}}{${2:style}}\"\n      }\n    },\n    {\n      \"name\": \"clearlinestyles\"\n    },\n    {\n      \"name\": \"digstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"digstyle{${1:column number}}{${2:style}}\"\n      }\n    },\n    {\n      \"name\": \"cleardigitstyles\"\n    },\n    {\n      \"name\": \"carryline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"carryline{${1:num of digits}}{${2:carries}}\"\n      }\n    },\n    {\n      \"name\": \"strike\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strike{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"problembox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"problembox{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"showdivwork\"\n    },\n    {\n      \"name\": \"noshowdivwork\"\n    },\n    {\n      \"name\": \"fractionsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowdivisionwork\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showdivisionworktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showdivisionworkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialdigitstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speciallinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assignthencheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countunlessnil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auxcountchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countchar{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/basicarith#c\": [\n      \"noshowdivwork\",\n      \"showdivwork\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/basicarith#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/baskervald.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ebweight\"\n    },\n    {\n      \"name\": \"texteb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texteb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zeroslash\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/baskervald#c\": [\n      \"lig\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/baskervald#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/baskervillef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/baskervillef#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"theoremfont\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"sups\",\n      \"scosf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/baskervillef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/basque-date.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"eusdata\"\n    },\n    {\n      \"name\": \"eusdatainesibo\"\n    },\n    {\n      \"name\": \"theurtea\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bbding.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ArrowBoldDownRight\"\n    },\n    {\n      \"name\": \"ArrowBoldRightCircled\"\n    },\n    {\n      \"name\": \"ArrowBoldRightShort\"\n    },\n    {\n      \"name\": \"ArrowBoldRightStrobe\"\n    },\n    {\n      \"name\": \"ArrowBoldUpRight\"\n    },\n    {\n      \"name\": \"Asterisk\"\n    },\n    {\n      \"name\": \"AsteriskBold\"\n    },\n    {\n      \"name\": \"AsteriskCenterOpen\"\n    },\n    {\n      \"name\": \"AsteriskRoundedEnds\"\n    },\n    {\n      \"name\": \"AsteriskThin\"\n    },\n    {\n      \"name\": \"AsteriskThinCenterOpen\"\n    },\n    {\n      \"name\": \"Checkmark\"\n    },\n    {\n      \"name\": \"CheckmarkBold\"\n    },\n    {\n      \"name\": \"CircleShadow\"\n    },\n    {\n      \"name\": \"CircleSolid\"\n    },\n    {\n      \"name\": \"Cross\"\n    },\n    {\n      \"name\": \"CrossBoldOutline\"\n    },\n    {\n      \"name\": \"CrossClowerTips\"\n    },\n    {\n      \"name\": \"CrossMaltese\"\n    },\n    {\n      \"name\": \"CrossOpenShadow\"\n    },\n    {\n      \"name\": \"CrossOutline\"\n    },\n    {\n      \"name\": \"DavidStar\"\n    },\n    {\n      \"name\": \"DavidStarSolid\"\n    },\n    {\n      \"name\": \"DiamondSolid\"\n    },\n    {\n      \"name\": \"EightAsterisk\"\n    },\n    {\n      \"name\": \"EightFlowerPetal\"\n    },\n    {\n      \"name\": \"EightFlowerPetalRemoved\"\n    },\n    {\n      \"name\": \"EightStar\"\n    },\n    {\n      \"name\": \"EightStarBold\"\n    },\n    {\n      \"name\": \"EightStarConvex\"\n    },\n    {\n      \"name\": \"EightStarTaper\"\n    },\n    {\n      \"name\": \"Ellipse\"\n    },\n    {\n      \"name\": \"EllipseShadow\"\n    },\n    {\n      \"name\": \"EllipseSolid\"\n    },\n    {\n      \"name\": \"Envelope\"\n    },\n    {\n      \"name\": \"FiveFlowerOpen\"\n    },\n    {\n      \"name\": \"FiveFlowerPetal\"\n    },\n    {\n      \"name\": \"FiveStar\"\n    },\n    {\n      \"name\": \"FiveStarCenterOpen\"\n    },\n    {\n      \"name\": \"FiveStarConvex\"\n    },\n    {\n      \"name\": \"FiveStarLines\"\n    },\n    {\n      \"name\": \"FiveStarOpen\"\n    },\n    {\n      \"name\": \"FiveStarOpenCircled\"\n    },\n    {\n      \"name\": \"FiveStarOpenDotted\"\n    },\n    {\n      \"name\": \"FiveStarOutline\"\n    },\n    {\n      \"name\": \"FiveStarOutlineHeavy\"\n    },\n    {\n      \"name\": \"FiveStarShadow\"\n    },\n    {\n      \"name\": \"FourAsterisk\"\n    },\n    {\n      \"name\": \"FourClowerOpen\"\n    },\n    {\n      \"name\": \"FourClowerSolid\"\n    },\n    {\n      \"name\": \"FourStarOpen\"\n    },\n    {\n      \"name\": \"HalfCircleLeft\"\n    },\n    {\n      \"name\": \"HalfCircleRight\"\n    },\n    {\n      \"name\": \"HandCuffLeft\"\n    },\n    {\n      \"name\": \"HandCuffLeftUp\"\n    },\n    {\n      \"name\": \"HandCuffRight\"\n    },\n    {\n      \"name\": \"HandCuffRightUp\"\n    },\n    {\n      \"name\": \"HandLeft\"\n    },\n    {\n      \"name\": \"HandLeftUp\"\n    },\n    {\n      \"name\": \"HandPencilLeft\"\n    },\n    {\n      \"name\": \"HandRight\"\n    },\n    {\n      \"name\": \"HandRightUp\"\n    },\n    {\n      \"name\": \"JackStar\"\n    },\n    {\n      \"name\": \"NibLeft\"\n    },\n    {\n      \"name\": \"NibRight\"\n    },\n    {\n      \"name\": \"NibSolidLeft\"\n    },\n    {\n      \"name\": \"NibSolidRight\"\n    },\n    {\n      \"name\": \"OrnamentDiamondSolid\"\n    },\n    {\n      \"name\": \"Peace\"\n    },\n    {\n      \"name\": \"PencilLeft\"\n    },\n    {\n      \"name\": \"PencilLeftDown\"\n    },\n    {\n      \"name\": \"PencilLeftUp\"\n    },\n    {\n      \"name\": \"PencilRight\"\n    },\n    {\n      \"name\": \"PencilRightDown\"\n    },\n    {\n      \"name\": \"PencilRightUp\"\n    },\n    {\n      \"name\": \"Phone\"\n    },\n    {\n      \"name\": \"PhoneHandset\"\n    },\n    {\n      \"name\": \"Plane\"\n    },\n    {\n      \"name\": \"Plus\"\n    },\n    {\n      \"name\": \"PlusCenterOpen\"\n    },\n    {\n      \"name\": \"PlusOutline\"\n    },\n    {\n      \"name\": \"PlusThinCenterOpen\"\n    },\n    {\n      \"name\": \"Rectangle\"\n    },\n    {\n      \"name\": \"RectangleBold\"\n    },\n    {\n      \"name\": \"RectangleThin\"\n    },\n    {\n      \"name\": \"ScissorHollowLeft\"\n    },\n    {\n      \"name\": \"ScissorHollowRight\"\n    },\n    {\n      \"name\": \"ScissorLeft\"\n    },\n    {\n      \"name\": \"ScissorLeftBrokenBottom\"\n    },\n    {\n      \"name\": \"ScissorLeftBrokenTop\"\n    },\n    {\n      \"name\": \"ScissorRight\"\n    },\n    {\n      \"name\": \"ScissorRightBrokenBottom\"\n    },\n    {\n      \"name\": \"ScissorRightBrokenTop\"\n    },\n    {\n      \"name\": \"SixFlowerAlternate\"\n    },\n    {\n      \"name\": \"SixFlowerAltPetal\"\n    },\n    {\n      \"name\": \"SixFlowerOpenCenter\"\n    },\n    {\n      \"name\": \"SixFlowerPetalDotted\"\n    },\n    {\n      \"name\": \"SixFlowerPetalRemoved\"\n    },\n    {\n      \"name\": \"SixFlowerRemovedOpenPetal\"\n    },\n    {\n      \"name\": \"SixStar\"\n    },\n    {\n      \"name\": \"SixteenStarLight\"\n    },\n    {\n      \"name\": \"Snowflake\"\n    },\n    {\n      \"name\": \"SnowflakeChevron\"\n    },\n    {\n      \"name\": \"SnowflakeChevronBold\"\n    },\n    {\n      \"name\": \"Sparkle\"\n    },\n    {\n      \"name\": \"SparkleBold\"\n    },\n    {\n      \"name\": \"Square\"\n    },\n    {\n      \"name\": \"SquareCastShadowBottomRight\"\n    },\n    {\n      \"name\": \"SquareCastShadowTopLeft\"\n    },\n    {\n      \"name\": \"SquareCastShadowTopRight\"\n    },\n    {\n      \"name\": \"SquareShadowBottomRight\"\n    },\n    {\n      \"name\": \"SquareShadowTopLeft\"\n    },\n    {\n      \"name\": \"SquareShadowTopRight\"\n    },\n    {\n      \"name\": \"SquareSolid\"\n    },\n    {\n      \"name\": \"SunshineOpenCircled\"\n    },\n    {\n      \"name\": \"Tape\"\n    },\n    {\n      \"name\": \"TriangleDown\"\n    },\n    {\n      \"name\": \"TriangleUp\"\n    },\n    {\n      \"name\": \"TwelweStar\"\n    },\n    {\n      \"name\": \"XSolid\"\n    },\n    {\n      \"name\": \"XSolidBold\"\n    },\n    {\n      \"name\": \"XSolidBrush\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bbm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathbbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbmss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbmss{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbmtt{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bbold.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bbfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bboldx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bbxfamily\"\n    },\n    {\n      \"name\": \"bbbxfamily\"\n    },\n    {\n      \"name\": \"textbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textbfbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbblambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbLbrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbRbrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbLangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbRangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbLparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbRparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbtheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbblambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbLbrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbRbrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbLangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbRangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbLparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbfbbRparen\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bboldx#c\": [\n      \"scaled=${1:factor}\",\n      \"scale=${1:factor}\",\n      \"bfbb\",\n      \"light\",\n      \"bbsymbols\",\n      \"symbols\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bboldx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bchart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bcbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bcbar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bcbar[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\bcbar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bcskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bcxlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcxlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"bclabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bclabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"bcfontstyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bchart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{bchart}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{bchart}\": [\n      \"max=${1:number}\",\n      \"min=${1:number}\",\n      \"step=\",\n      \"steps=\",\n      \"plain\",\n      \"unit=\",\n      \"width=\",\n      \"scale=\"\n    ],\n    \"\\\\bcbar\": [\n      \"text=\",\n      \"color=\",\n      \"plain\",\n      \"value=\",\n      \"label=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bclogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pst-blur\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-grad\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-coil\",\n      \"if\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bcStyleTitre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcStyleTitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bcStyleSousTitre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcStyleSousTitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bcfleur\"\n    },\n    {\n      \"name\": \"bcpanchant\"\n    },\n    {\n      \"name\": \"bcnote\"\n    },\n    {\n      \"name\": \"bcetoile\"\n    },\n    {\n      \"name\": \"bcours\"\n    },\n    {\n      \"name\": \"bcattention\"\n    },\n    {\n      \"name\": \"bccoeur\"\n    },\n    {\n      \"name\": \"bcorne\"\n    },\n    {\n      \"name\": \"bcdanger\"\n    },\n    {\n      \"name\": \"bcsmbh\"\n    },\n    {\n      \"name\": \"bcsmmh\"\n    },\n    {\n      \"name\": \"bctakecare\"\n    },\n    {\n      \"name\": \"bclampe\"\n    },\n    {\n      \"name\": \"bcbook\"\n    },\n    {\n      \"name\": \"bctrefle\"\n    },\n    {\n      \"name\": \"bcquestion\"\n    },\n    {\n      \"name\": \"bccrayon\"\n    },\n    {\n      \"name\": \"bcspadesuit\"\n    },\n    {\n      \"name\": \"bcinfo\"\n    },\n    {\n      \"name\": \"bcplume\"\n    },\n    {\n      \"name\": \"bcbombe\"\n    },\n    {\n      \"name\": \"bccube\"\n    },\n    {\n      \"name\": \"bcdodecaedre\"\n    },\n    {\n      \"name\": \"bcicosaedre\"\n    },\n    {\n      \"name\": \"bcoctaedre\"\n    },\n    {\n      \"name\": \"bctetraedre\"\n    },\n    {\n      \"name\": \"bcdallemagne\"\n    },\n    {\n      \"name\": \"bcdautriche\"\n    },\n    {\n      \"name\": \"bcdbelgique\"\n    },\n    {\n      \"name\": \"bcdbulgarie\"\n    },\n    {\n      \"name\": \"bcdfrance\"\n    },\n    {\n      \"name\": \"bcditalie\"\n    },\n    {\n      \"name\": \"bcdluxembourg\"\n    },\n    {\n      \"name\": \"bcdpaysbas\"\n    },\n    {\n      \"name\": \"bcsoleil\"\n    },\n    {\n      \"name\": \"bceclaircie\"\n    },\n    {\n      \"name\": \"bcpluie\"\n    },\n    {\n      \"name\": \"bcneige\"\n    },\n    {\n      \"name\": \"bcinterdit\"\n    },\n    {\n      \"name\": \"bcpoisson\"\n    },\n    {\n      \"name\": \"bchorloge\"\n    },\n    {\n      \"name\": \"bccalendrier\"\n    },\n    {\n      \"name\": \"bcrosevents\"\n    },\n    {\n      \"name\": \"bcyin\"\n    },\n    {\n      \"name\": \"bcdz\"\n    },\n    {\n      \"name\": \"bcvelo\"\n    },\n    {\n      \"name\": \"bcpeaceandlove\"\n    },\n    {\n      \"name\": \"bcoeil\"\n    },\n    {\n      \"name\": \"bcnucleaire\"\n    },\n    {\n      \"name\": \"bcfemme\"\n    },\n    {\n      \"name\": \"bchomme\"\n    },\n    {\n      \"name\": \"bcloupe\"\n    },\n    {\n      \"name\": \"bcrecyclage\"\n    },\n    {\n      \"name\": \"bcvaletcoeur\"\n    },\n    {\n      \"name\": \"bccle\"\n    },\n    {\n      \"name\": \"bcclefa\"\n    },\n    {\n      \"name\": \"bcclesol\"\n    },\n    {\n      \"name\": \"bcfeuvert\"\n    },\n    {\n      \"name\": \"bcfeujaune\"\n    },\n    {\n      \"name\": \"bcfeurouge\"\n    },\n    {\n      \"name\": \"bcfeutricolore\"\n    },\n    {\n      \"name\": \"bcoutil\"\n    },\n    {\n      \"name\": \"bctrombone\"\n    },\n    {\n      \"name\": \"bcstop\"\n    },\n    {\n      \"name\": \"logowidth\"\n    },\n    {\n      \"name\": \"listofbclogo\"\n    },\n    {\n      \"name\": \"titrebclogo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bclogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"bclogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:titre%text}}\",\n        \"keys\": [\n          \"\\\\begin{bclogo}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bclogo#c\": [\n      \"tikz\",\n      \"pstricks\"\n    ],\n    \"\\\\begin{bclogo}\": [\n      \"couleur=\",\n      \"couleurTexte=\",\n      \"couleurBord=\",\n      \"couleurBarre=\",\n      \"epBord=${1:valeur}\",\n      \"arrondi=${1:valeur}\",\n      \"noborder\",\n      \"marge=${1:entier}\",\n      \"margeG=${1:valeur}\",\n      \"margeD=${1:valeur}\",\n      \"cadreTitre\",\n      \"sousTitre=${1:titre}\",\n      \"logo=${1:logo}\",\n      \"epOmbre=${1:valeur en cm}\",\n      \"couleurOmbre=\",\n      \"barre=${1|none,line,snake,motif,zigzag,imageExt,imageClip,wave|}\",\n      \"epBarre=${1:valeur en pt}\",\n      \"tailleOndu=${1:valeur en pt}\",\n      \"motifBarre=${1:motif}\",\n      \"imageBarre=${1:imagefile}\",\n      \"avecBarre\",\n      \"nobreak\",\n      \"blur\",\n      \"ombre\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bclogo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerappendixnote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"appxnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appxnote{${1:title}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"appxnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"appxnote[${3:frame options}]{${1:title}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"printappxnotes\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beamerappendixnote#c\": [\n      \"backposition=${1|top,bottom,title|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerappendixnote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbasemodes\"\n    },\n    {\n      \"name\": \"beamerbasearticle\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beamerarticle#c\": [\n      \"utf8\",\n      \"hyperref\",\n      \"noxcolor\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"noamssymb\",\n      \"envcountsect\",\n      \"activeospeccharacters\",\n      \"nokeywords\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beameraudience.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"cprotect\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifinclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifinclude{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifshow{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"framefor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"framefor{${1:audience}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"justfor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"justfor{${1:audience}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"showcontentfor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showcontentfor{${1:audience}}{${2:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beameraudience#c\": [\n      \"audience=${1:keyword}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beameraudience#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerbasearticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbaseoptions\"\n    },\n    {\n      \"name\": \"beamerbaserequires\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beamerbasearticle#c\": [\n      \"utf8\",\n      \"hyperref\",\n      \"noxcolor\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"noamssymb\",\n      \"nokeywords\",\n      \"envcountsect\",\n      \"activeospeccharacters\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerbasearticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerbaseauxtemplates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbaseboxes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseboxes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamerboxesdeclarecolorscheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"beamerboxesdeclarecolorscheme{${1:name}}{${2:upper color}}{${3:lower color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"beamerboxesrounded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:head%text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerboxesrounded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:head%text}}\",\n        \"keys\": [\n          \"\\\\begin{beamerboxesrounded}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{beamerboxesrounded}\": [\n      \"scheme=${1:scheme name}\",\n      \"upper=${1:beamer color}\",\n      \"lower=${1:beamer color}\",\n      \"width=\",\n      \"shadow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasecolor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setbeamercolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamercolor{${1:beamer-color name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercolor,\\\\setbeamercolor*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setbeamercolor*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamercolor*{${1:beamer-color name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercolor,\\\\setbeamercolor*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifbeamercolorempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbeamercolorempty{${1:beamer-color name}}{${2:if undefined}}{${3:if defined}}\"\n      }\n    },\n    {\n      \"name\": \"ifbeamercolorempty\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifbeamercolorempty[${4:fg or bg%keyvals}]{${1:beamer-color name}}{${2:if undefined}}{${3:if defined}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usebeamercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamercolor{${1:beamer-color name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamercolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usebeamercolor[${2:fg or bg%keyvals}]{${1:beamer-color name}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usebeamercolor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamercolor*{${1:beamer-color name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamercolor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usebeamercolor*[${2:fg or bg%keyvals}]{${1:beamer-color name}}\",\n        \"keys\": [\n          \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"donotcoloroutermaths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"donotcolorouterdisplaymaths\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"beamercolorbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:beamer color}}\"\n      }\n    },\n    {\n      \"name\": \"beamercolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:beamer color}}\",\n        \"keys\": [\n          \"\\\\begin{beamercolorbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamercolor,\\\\setbeamercolor*\": [\n      \"fg=\",\n      \"bg=\",\n      \"parent={${1:parent beamer colors}}\",\n      \"use=${1:beamer color}\"\n    ],\n    \"\\\\ifbeamercolorempty,\\\\usebeamercolor,\\\\usebeamercolor*\": [\n      \"fg\",\n      \"bg\"\n    ],\n    \"\\\\begin{beamercolorbox}\": [\n      \"wd=\",\n      \"dp=\",\n      \"ht=\",\n      \"left\",\n      \"right\",\n      \"center\",\n      \"leftskip=\",\n      \"rightskip=\",\n      \"sep=\",\n      \"colsep=\",\n      \"colsep*=\",\n      \"shadow\",\n      \"rounded\",\n      \"ignorebg\",\n      \"vmode\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasecompatibility.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasefont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"sansmathaccent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setbeamerfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamerfont{${1:beamer-font name}}{${2:attributes%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamerfont,\\\\setbeamerfont*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setbeamerfont*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamerfont*{${1:beamer-font name}}{${2:attributes%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamerfont,\\\\setbeamerfont*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usebeamerfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamerfont{${1:beamer-font name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamerfont*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamerfont*{${1:beamer-font name}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\"\n    },\n    {\n      \"name\": \"TINY\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeamerfont,\\\\setbeamerfont*\": [\n      \"size=${1:size command}\",\n      \"size*={${1:size in pt}}{${2:baselineskip}}\",\n      \"shape=${1:shape command}\",\n      \"shape*={${1:shape attribute abbreviation}}\",\n      \"series=${1:series command}\",\n      \"series*={${1:series attribute abbreviation}}\",\n      \"family=${1:family command}\",\n      \"family*={${1:family name}}\",\n      \"parent={${1:parent list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseframe.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"framelatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framelatex{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"refcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thesubsectionslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcounteronoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetcounteronoverlays{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"resetcountonoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetcountonoverlays{${1:count register}}\"\n      }\n    },\n    {\n      \"name\": \"framewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerclosesubstitutedenvironement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerclosesubstitutedenvironement{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"includeonlyframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeonlyframes{${1:frame label list}}\"\n      }\n    },\n    {\n      \"name\": \"theframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertslidenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertoverlaynumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebreak<overlay specifications>\"\n    },\n    {\n      \"name\": \"nopagebreak<overlay specifications>\"\n    },\n    {\n      \"name\": \"framebreak\"\n    },\n    {\n      \"name\": \"noframebreak\"\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"againframe{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"againframe<overlay specification>{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"againframe<overlay specification>[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"againframe[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"againframe[${2:<default overlay specification>}][${3:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"againframe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"againframe<overlay specification>[${2:<default overlay specification>}][${3:options}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frame\"\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay specification}>[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay specification}>[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay specification}>[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseframecomponents.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setbeamersize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeamersize{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamersize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"column{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"column[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"column<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"column<overlay specification>[${2:placement%keyvals}]{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"insertfootnotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertfootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnote<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnote<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnote<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnote<overlay specification>[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"columns\"\n    },\n    {\n      \"name\": \"columns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{columns}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"columns\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{columns}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column width%l}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"<>[]{}\",\n        \"snippet\": \"<${3:overlay specification}>[${2:placement%keyvals}]{${1:column width%l}}\",\n        \"keys\": [\n          \"\\\\begin{column},\\\\column\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamersize\": [\n      \"text margin left=\",\n      \"text margin right=\",\n      \"sidebar width left=\",\n      \"sidebar width right=\",\n      \"description width=\",\n      \"description width of=${1:text}\",\n      \"mini frame size=\",\n      \"mini frame offset=\"\n    ],\n    \"\\\\begin{columns}\": [\n      \"b\",\n      \"c\",\n      \"onlytextwidth\",\n      \"t\",\n      \"T\",\n      \"totalwidth=\"\n    ],\n    \"\\\\begin{column},\\\\column\": [\n      \"t\",\n      \"T\",\n      \"c\",\n      \"b\"\n    ],\n    \"\\\\footnote#c\": [\n      \"${1:number}\",\n      \"frame\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseframesize.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"framezoom<button overlay specification><zoomed overlay specification>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"framezoom<button overlay specification><zoomed overlay specification>(${1:upper left x},${2:upper left y})(${3:zoom area width},${4:zoom area depth})\"\n      }\n    },\n    {\n      \"name\": \"framezoom<button overlay specification><zoomed overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"framezoom<button overlay specification><zoomed overlay specification>[${1:options%keyvals}](${2:upper left x},${3:upper left y})(${4:zoom area width},${5:zoom area depth})\"\n      }\n    },\n    {\n      \"name\": \"insertcontinuationcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcontinuationcountroman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcontinuationtext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\framezoom\": [\n      \"border\",\n      \"border=${1:width in pixels}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaselocalstructure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumerate\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frametitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frametitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"frametitle[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frametitle<overlay specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"frametitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"frametitle<overlay specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"insertframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortframetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortframetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortframetitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"framesubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesubtitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"framesubtitle<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesubtitle<overlay specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"insertframesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"alert<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert<overlay specification>{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"structure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structure{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"structure<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structure<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertblocktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubenumlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdescriptionitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitem<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibitem<overlay specification>[${2:citation text}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"bibitem<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibitem<overlay specification>{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"insertbiblabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaptionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaptionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertcaption\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alertenv\"\n    },\n    {\n      \"name\": \"alertenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"structureenv\"\n    },\n    {\n      \"name\": \"structureenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"{${1:title%text}}<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"alertblock\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"{${1:title%text}}<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"exampleblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exampleblock\",\n      \"arg\": {\n        \"format\": \"<>{}<>\",\n        \"snippet\": \"<${2:action specification}>{${1:title%text}}<${3:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"verse\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"quotation\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasemisc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"headcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcommand{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dohead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttotalframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertmainframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partentry{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"slideentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"slideentry{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"sectionentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sectionentry{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includegraphics<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphics<overlay specification>{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphics<overlay specification>[${2:options%keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseimage<overlay specification>{${1:image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfimage<overlay specification>[${2:options%keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfimage<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfimage<overlay specification>{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\insertshortauthor,\\\\insertshortdate,\\\\insertshortinstitute,\\\\insertshortpart,\\\\insertshorttitle,\\\\insertshortsubtitle,\\\\insertshortframetitle\": [\n      \"respectlinebreaks\",\n      \"width=\",\n      \"center\",\n      \"spill\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasemodes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"beamerbasedecode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mode<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mode<mode specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mode{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mode<mode specification>\"\n    },\n    {\n      \"name\": \"mode*\"\n    },\n    {\n      \"name\": \"includeslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeslide{${1:label name}}\"\n      }\n    },\n    {\n      \"name\": \"includeslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeslide[${2:options%keyvals}]{${1:label name}}\"\n      }\n    },\n    {\n      \"name\": \"setjobnamebeamerversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjobnamebeamerversion{${1:filename without extension%file}}\"\n      }\n    },\n    {\n      \"name\": \"thebeamerpauses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jobnamebeamerversion\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasenavigation.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hyperlinkslideprev<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslideprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslideprev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslideprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslidenext<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslidenext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkslidenext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkslidenext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestartnext<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframestartnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframestartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeendprev<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkframeendprev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkframeendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpresentationend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpresentationend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkappendixend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkappendixend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentstart<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentend<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkdocumentend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkdocumentend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksubsectionendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksubsectionendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksectionendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinksectionendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstart{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstart<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstart<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartend{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartend<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartend<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstartnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstartnext{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartstartnext<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartstartnext<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartendprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartendprev{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkpartendprev<overlay specification>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkpartendprev<overlay specification>{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"insertframestartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframeendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpresentationstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpresentationendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertappendixstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertappendixendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocumentstartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocumentendpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertslidenavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdocnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertbackfindforwardnavigationsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertgotosymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertskipsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertreturnsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"insertbuttontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamergotobutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamergotobutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerskipbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerskipbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"beamerreturnbutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerreturnbutton{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"insertnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertverticalnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertverticalnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsubsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartheadnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertsectionnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsectionnavigationhorizontal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"insertsectionnavigationhorizontal{${1:width}}{${2:left insert}}{${3:right insert}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsectionnavigation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertsubsectionnavigation{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubsectionnavigationhorizontal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"insertsubsectionnavigationhorizontal{${1:width}}{${2:left insert}}{${3:right insert}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasenotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"note<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note<overlay specification>{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:options%keyvals}]{${1:note text%text}}\",\n        \"keys\": [\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"note[${2:options%keyvals}]<${3:overlay specification}>{${1:note text%text}}\",\n        \"keys\": [\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertslideintonotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertslideintonotes{${1:magnification}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"hide notes\",\n      \"show notes\",\n      \"show notes on second screen\",\n      \"show notes on second screen=${1|left,right,bottom,top|}\",\n      \"show only notes\",\n      \"show only slides with notes\"\n    ],\n    \"\\\\note\": [\n      \"item\",\n      \"itemize\",\n      \"enumerate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseoptions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProcessOptionsBeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteOptionsBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteOptionsBeamer{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOptionBeamer{${1:option}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionBeamer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareOptionBeamer{${1:option}}[${3:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defbeameroption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbeameroption{${1:option%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setbeameroption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeameroption{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeameroption#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"%beameroption\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseoverlay.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"only<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"only<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"only\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"only{${1:text}}<${2:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"only\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"only{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alt<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alt<overlay specification>{${1:default text%text}}{${2:alternative text%text}}\"\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"alt{${1:default text%text}}{${2:alternative text%text}}<${3:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alt{${1:default text%text}}{${2:alternative text%text}}\"\n      }\n    },\n    {\n      \"name\": \"action<action specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"action<action specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"action\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"action{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"temporal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"temporal{${1:before slide text%text}}{${2:default text%text}}{${3:after slide text%text}}\"\n      }\n    },\n    {\n      \"name\": \"temporal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"temporal<overlay specification>{${1:before slide text%text}}{${2:default text%text}}{${3:after slide text%text}}\"\n      }\n    },\n    {\n      \"name\": \"beameroriginal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beameroriginal{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironment<>{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironment<>{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommand<>{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand<>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommand<>{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"opaqueness<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opaqueness<overlay specification>{${1:percentage of opaqueness}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamercovered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeamercovered{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbeamercovered\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"pause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pause[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"music\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerpause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onslide\"\n    },\n    {\n      \"name\": \"onslide<overlay specification>\"\n    },\n    {\n      \"name\": \"onslide<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onslide<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"onslide*<overlay specification>\"\n    },\n    {\n      \"name\": \"onslide*<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onslide*<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"item<alert specification>\"\n    },\n    {\n      \"name\": \"item<alert specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"item<alert specification>[${1:item label}]\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"item[${1:item label}]<${2:alert specification}>\"\n      }\n    },\n    {\n      \"name\": \"beamerdefaultoverlayspecification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beamerdefaultoverlayspecification{${1:default overlay specification}}\"\n      }\n    },\n    {\n      \"name\": \"uncover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uncover{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uncover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uncover<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visible{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visible<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visible<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"invisible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invisible{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"invisible<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invisible<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"color<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"color<overlay specification>{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textbf<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbf<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textit<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textit<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmd<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmd<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnormal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnormal<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrm<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrm<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsc<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsc<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsf<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsf<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsl<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsl<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttt<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttt<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textup<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textup<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hypertarget<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hypertarget<overlay specification>{${1:target name}}{${2:anchor text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlink<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink<overlay specification>{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"emph<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emph<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"transblindshorizontal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindshorizontal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transblindshorizontal<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindshorizontal<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transblindsvertical\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindsvertical[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transblindsvertical<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transblindsvertical<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transboxin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transboxin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transboxout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transboxout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transboxout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transcover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transcover[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transcover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transcover<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transdissolve\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transdissolve[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transdissolve<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transdissolve<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transfade\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfade[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transfade<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfade<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transglitter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transglitter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transglitter<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transglitter<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transpush\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transpush[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transpush<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transpush<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transreplace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transreplace[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transreplace<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transreplace<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplitverticalin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplitverticalin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplitverticalout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplitverticalout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplitverticalout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalin<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalin<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transsplithorizontalout<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transsplithorizontalout<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transuncover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transuncover[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transuncover<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transuncover<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transwipe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transwipe[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transwipe<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transwipe<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transfly\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfly[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transfly<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transfly<overlay specification>[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"transduration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transduration{${1:number of seconds}}\"\n      }\n    },\n    {\n      \"name\": \"transduration<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transduration<overlay specification>{${1:number of seconds}}\"\n      }\n    },\n    {\n      \"name\": \"animate<overlay specification>\"\n    },\n    {\n      \"name\": \"label<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"label<overlay specification>{${1:key%labeldef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"<>{}{}{}{}\",\n        \"snippet\": \"<${5:overlay specification}>{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"altenv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}<>\",\n        \"snippet\": \"{${1:begin text%text}}{${2:end text%text}}{${3:alternate begin text%text}}{${4:alternate end text%text}}<${5:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"actionenv\"\n    },\n    {\n      \"name\": \"actionenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"visibleenv\"\n    },\n    {\n      \"name\": \"visibleenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"invisibleenv\"\n    },\n    {\n      \"name\": \"invisibleenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"uncoverenv\"\n    },\n    {\n      \"name\": \"uncoverenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"onlyenv\"\n    },\n    {\n      \"name\": \"onlyenv\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"overlayarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:area width%l}}{${2:area height%l}}\"\n      }\n    },\n    {\n      \"name\": \"overprint\"\n    },\n    {\n      \"name\": \"overprint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:area width%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setbeamercovered\": [\n      \"invisible\",\n      \"transparent\",\n      \"transparent=${1:opaqueness}\",\n      \"dynamic\",\n      \"highly dynamic\",\n      \"still covered=${1:not yet list}\",\n      \"again covered=${1:once more list}\"\n    ],\n    \"\\\\transblindshorizontal,\\\\transblindsvertical,\\\\transboxin,\\\\transboxout,\\\\transcover,\\\\transdissolve,\\\\transfade,\\\\transglitter,\\\\transpush,\\\\transreplace,\\\\transsplitverticalin,\\\\transsplitverticalout,\\\\transsplithorizontalin,\\\\transsplithorizontalout,\\\\transuncover,\\\\transwipe,\\\\transfly\": [\n      \"direction=${1:degrees}\",\n      \"duration=${1:seconds}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaserequires.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbasecompatibility\"\n    },\n    {\n      \"name\": \"beamerbasefont\"\n    },\n    {\n      \"name\": \"beamerbasetranslator\"\n    },\n    {\n      \"name\": \"beamerbasemisc\"\n    },\n    {\n      \"name\": \"beamerbasetwoscreens\"\n    },\n    {\n      \"name\": \"beamerbaseoverlay\"\n    },\n    {\n      \"name\": \"beamerbasetitle\"\n    },\n    {\n      \"name\": \"beamerbasesection\"\n    },\n    {\n      \"name\": \"beamerbaseframe\"\n    },\n    {\n      \"name\": \"beamerbaseverbatim\"\n    },\n    {\n      \"name\": \"beamerbaseframesize\"\n    },\n    {\n      \"name\": \"beamerbaseframecomponents\"\n    },\n    {\n      \"name\": \"beamerbasecolor\"\n    },\n    {\n      \"name\": \"beamerbasenotes\"\n    },\n    {\n      \"name\": \"beamerbasetoc\"\n    },\n    {\n      \"name\": \"beamerbasetemplates\"\n    },\n    {\n      \"name\": \"beamerbaselocalstructure\"\n    },\n    {\n      \"name\": \"beamerbasenavigation\"\n    },\n    {\n      \"name\": \"beamerbasetheorems\"\n    },\n    {\n      \"name\": \"beamerbasethemes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasesection.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thelecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lecture{${1:lecture name%text}}{${2:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lecture[${3:short lecture name%text}]{${1:lecture name%text}}{${2:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLecture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLecture{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"includeonlylecture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeonlylecture{${1:lecture label}}\"\n      }\n    },\n    {\n      \"name\": \"insertlecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertlecturenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortlecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortlecture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortlecture[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"part<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"part<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"part<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"part<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"partlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlinkshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertromanpartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortpart[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"AtBeginPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginPart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"section<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"section<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"section<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"secname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"breakhere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsection<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsection<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsection<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubsection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSubsection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsection<mode specification>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsection<mode specification>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsection<mode specification>*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsectionhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubsubsection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginSubsubsection[${2:special star text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"appendix<mode specification>\"\n    },\n    {\n      \"name\": \"insertappendixframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframenumberinappendix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetemplates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbaseauxtemplates\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usebeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate*{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate**{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"usebeamertemplate***\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebeamertemplate***{${1:element name}}\"\n      }\n    },\n    {\n      \"name\": \"expandbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandbeamertemplate{${1:beamer template name}}\"\n      }\n    },\n    {\n      \"name\": \"ifbeamertemplateempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbeamertemplateempty{${1:beamer template name}}{${2:executed if empty}}{${3:executed otherwise}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${5:argument number}][${6:default optional argument}]{${3:predefined text}}[${7:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${5:default optional argument}]{${3:predefined text}}[${6:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}{${3:predefined text}}[${5:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${4:argument number}][${5:default optional argument}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}[${4:argument number}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate<mode specification>*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplate<mode specification>*{${1:element name}}{${2:predefined option}}{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${5:argument number}][${6:default optional argument}]{${3:predefined text}}[${7:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${5:default optional argument}]{${3:predefined text}}[${6:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}{${3:predefined text}}[${5:action}]{${4:action command}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${4:argument number}][${5:default optional argument}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}[${4:argument number}]{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplate{${1:element name}}{${2:predefined option}}{${3:predefined text}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplatealias\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplatealias{${1:element name}}{${2:new predefined option name}}{${3:existing predefined option name}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}[${4:predefined option}]{${2:child template list}}[${5:args}][${6:default}]{${3:arguments for children}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}{${2:child template list}}[${4:args}][${5:default}]{${3:args for children}}\"\n      }\n    },\n    {\n      \"name\": \"defbeamertemplateparent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defbeamertemplateparent{${1:parent template}}{${2:child template list}}{${3:args for children}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}[${2:predefined option}]\"\n      }\n    },\n    {\n      \"name\": \"setbeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setbeamertemplate{${1:element name}}[${3:predefined option}]{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"addtobeamertemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtobeamertemplate{${1:element name}}{${2:pre-text%text}}{${3:post-text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasethemes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"usetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetheme{${1:beamertheme}}\"\n      }\n    },\n    {\n      \"name\": \"usetheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usetheme[${2:options%keyvals}]{${1:beamertheme}}\"\n      }\n    },\n    {\n      \"name\": \"usecolortheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolortheme{${1:beamer color theme}}\"\n      }\n    },\n    {\n      \"name\": \"usecolortheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usecolortheme[${2:options%keyvals}]{${1:beamer color theme}}\"\n      }\n    },\n    {\n      \"name\": \"usefonttheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefonttheme{${1:beamer font theme}}\"\n      }\n    },\n    {\n      \"name\": \"usefonttheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usefonttheme[${2:options%keyvals}]{${1:beamer font theme}}\"\n      }\n    },\n    {\n      \"name\": \"useoutertheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useoutertheme{${1:beamer outer theme}}\"\n      }\n    },\n    {\n      \"name\": \"useoutertheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useoutertheme[${2:options%keyvals}]{${1:beamer outer theme}}\"\n      }\n    },\n    {\n      \"name\": \"useinnertheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useinnertheme{${1:beamer inner theme}}\"\n      }\n    },\n    {\n      \"name\": \"useinnertheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useinnertheme[${2:options%keyvals}]{${1:beamer inner theme}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\useinnertheme/rounded\": [\n      \"shadow\"\n    ],\n    \"\\\\useoutertheme/miniframes\": [\n      \"footline=${1|empty,authorinstitute,authortitle,institutetitle,authorinstitutetitle|}\",\n      \"subsection\"\n    ],\n    \"\\\\useoutertheme/smoothbars\": [\n      \"subsection\"\n    ],\n    \"\\\\useoutertheme/sidebar\": [\n      \"height=\",\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"left\",\n      \"right\",\n      \"width=\"\n    ],\n    \"\\\\useoutertheme/tree\": [\n      \"hooks\"\n    ],\n    \"\\\\usecolortheme/structure\": [\n      \"rgb={${1:r,g,b}}\",\n      \"RGB={${1:r,g,b}}\",\n      \"cmyk={${1:c,m,y,k}}\",\n      \"cmy={${1:c,m,y}}\",\n      \"hsb={${1:h,s,b}}\",\n      \"named=\"\n    ],\n    \"\\\\usecolortheme/albatross,\\\\usecolortheme/monarca\": [\n      \"overlystylish\"\n    ],\n    \"\\\\usefonttheme/serif\": [\n      \"stillsansserifmath\",\n      \"stillsansserifsmall\",\n      \"stillsansseriflarge\",\n      \"stillsansseriftext\",\n      \"onlymath\"\n    ],\n    \"\\\\usefonttheme/structurebold,\\\\usefonttheme/structureitalicserif,\\\\usefonttheme/structuresmallcapsserif\": [\n      \"onlysmall\",\n      \"onlylarge\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inserttheoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheorempunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremblockenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttheoremaddition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertproofname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:proof name%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:proof name%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\"\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definitions\"\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"examples\"\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beispiele\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Loesung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Folgerung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Fakt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:additional text%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:additional text%text}]<${2:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:additional text%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetitle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"partpage\"\n    },\n    {\n      \"name\": \"sectionpage\"\n    },\n    {\n      \"name\": \"subsectionpage\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshorttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshorttitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}]{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortsubtitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:short date}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"insertdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortdate[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author names}]{${1:author names}}\"\n      }\n    },\n    {\n      \"name\": \"insertauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortauthor[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitlegraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:short institute}]{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"insertinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortinstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortinstitute[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertlogo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetoc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inserttocsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsubsectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttocsubsubsection\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tableofcontents\": [\n      \"currentsection\",\n      \"currentsubsection\",\n      \"firstsection=${1:section number}\",\n      \"hideallsubsections\",\n      \"hideothersubsections\",\n      \"lastsection=${1:section number}\",\n      \"part=${1:part number}\",\n      \"pausesections\",\n      \"pausesubsections\",\n      \"sections={${1:overlay specification}}\",\n      \"sectionstyle=${1:current}/${2:other}\",\n      \"subsectionstyle=${1:current}/${2:other in current}/${3:other}\",\n      \"subsubsectionstyle=${1:current}/${2:other in current}/${3:other in other}/${4:other}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetranslator.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translator\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbasetwoscreens.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbeameroption#c\": [\n      \"previous slide on second screen=${1|left,right,bottom,top|}\",\n      \"second mode text on second screen=${1|left,right,bottom,top|}\",\n      \"always typeset second mode\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerbaseverbatim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"semiverbatim\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerfoils.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MyLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MyLogo{${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"LogoOn\"\n    },\n    {\n      \"name\": \"LogoOff\"\n    },\n    {\n      \"name\": \"foilhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foilhead[${2:dimension%l}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"foilhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foilhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"rotatefoilhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rotatefoilhead[${2:dimension%l}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"rotatefoilhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatefoilhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"endfoil\"\n    },\n    {\n      \"name\": \"FoilTeX\"\n    },\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bmstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bmstyle{${1:text%formula}}{${2:more text%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"boldequation\"\n    },\n    {\n      \"name\": \"boldequation*\"\n    },\n    {\n      \"name\": \"Theorem*\"\n    },\n    {\n      \"name\": \"Theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma*\"\n    },\n    {\n      \"name\": \"Lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary*\"\n    },\n    {\n      \"name\": \"Corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition*\"\n    },\n    {\n      \"name\": \"Proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition*\"\n    },\n    {\n      \"name\": \"Definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"type1cm\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"veryHuge\"\n    },\n    {\n      \"name\": \"VeryHuge\"\n    },\n    {\n      \"name\": \"VERYHuge\"\n    },\n    {\n      \"name\": \"paperwidthValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperheightValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textwidthValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textheightValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulttextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultmaxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontSizeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontSizeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulttinyX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulttinyY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultscriptsizeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultscriptsizeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultfootnotesizeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultfootnotesizeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultsmallX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultsmallY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultnormalsizeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultnormalsizeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultlargeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultlargeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultLargeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultLargeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultLARGEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultLARGEY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulthugeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulthugeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultHugeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultHugeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultveryHugeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultveryHugeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultVeryHugeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultVeryHugeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultVERYHugeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultVERYHugeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelWidthValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSepValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentionLevelValuei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentionLevelValueii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentionLevelValueiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibIconScaleValue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beamerposter#c\": [\n      \"size=${1|a0b,a0,a1,a2,a3,a4,custom|}\",\n      \"orientation=${1|portrait,landscape|}\",\n      \"scale=${1:factor}\",\n      \"width=\",\n      \"height=\",\n      \"debug\",\n      \"grid\",\n      \"printer=${1:printer def file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerprosper.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Logo{${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Logo(${2:x},${3:y}){${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"overlays\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"overlays{${1:number}}{${2:slide environment%text}}\"\n      }\n    },\n    {\n      \"name\": \"fromSlide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fromSlide{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fromSlide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fromSlide*{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"onlySlide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onlySlide{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"onlySlide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onlySlide*{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"untilSlide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"untilSlide{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"untilSlide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"untilSlide*{${1:slide number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"FromSlide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FromSlide{${1:slide number}}\"\n      }\n    },\n    {\n      \"name\": \"OnlySlide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OnlySlide{${1:slide number}}\"\n      }\n    },\n    {\n      \"name\": \"UntilSlide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UntilSlide{${1:slide number}}\"\n      }\n    },\n    {\n      \"name\": \"slideCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slideCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fontTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fontText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PDFtransition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PDFtransition{${1:prosper transition%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"hiddenitem\"\n    },\n    {\n      \"name\": \"prosperpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prosperpart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosperpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prosperpart[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"tsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"tsectionandpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsectionandpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"tsectionandpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsectionandpart[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"tsectionandpart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsectionandpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"tsectionandpart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsectionandpart*[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"dualslide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"dualslide[${4:x}][${5:y}][${6:z}]{${1:options%keyvals}}{${2:left column%text}}{${3:right column%text}}\",\n        \"keys\": [\n          \"\\\\dualslide\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"dualslide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"dualslide[${4:y}][${5:z}]{${1:options%keyvals}}{${2:left column%text}}{${3:right column%text}}\",\n        \"keys\": [\n          \"\\\\dualslide\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"dualslide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dualslide[${4:z}]{${1:options%keyvals}}{${2:left column%text}}{${3:right column%text}}\",\n        \"keys\": [\n          \"\\\\dualslide\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"dualslide\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dualslide{${1:options%keyvals}}{${2:left column%text}}{${3:right column%text}}\",\n        \"keys\": [\n          \"\\\\dualslide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PDForPS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PDForPS{${1:PostScript text}}{${2:PDF text}}\"\n      }\n    },\n    {\n      \"name\": \"onlyInPDF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyInPDF{${1:PDF text}}\"\n      }\n    },\n    {\n      \"name\": \"onlyInPS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyInPS{${1:PostScript text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:frame title%text}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:frame title%text}}\"\n      }\n    },\n    {\n      \"name\": \"notes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/beamerprosper#c\": [\n      \"framesassubsections\"\n    ],\n    \"\\\\begin{slides},\\\\prosperpart\": [\n      \"toc=${1:entry}\",\n      \"trans=${1|Glitter,R,Replace,Split,Blinds,Box,Wipe,Dissolve|}\"\n    ],\n    \"\\\\begin{slides},\\\\prosperpart,\\\\PDFtransition\": [\n      \"Glitter\",\n      \"R\",\n      \"Replace\",\n      \"Split\",\n      \"Blinds\",\n      \"Box\",\n      \"Wipe\",\n      \"Dissolve\"\n    ],\n    \"\\\\dualslide\": [\n      \"lcolwidth=\",\n      \"rcolwidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerprosper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerseminar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"overlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlay{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"newslide\"\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"blue\"\n    },\n    {\n      \"name\": \"green\"\n    },\n    {\n      \"name\": \"ifarticle\"\n    },\n    {\n      \"name\": \"articletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifslidesonly\"\n    },\n    {\n      \"name\": \"slidesonlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slidesonlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifslide\"\n    },\n    {\n      \"name\": \"slidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifportrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"portraittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"portraitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcenterslides\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerslidestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerslidesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semcm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slide\"\n    },\n    {\n      \"name\": \"slide*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/beamerseminar#c\": [\n      \"accumulated\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamerseminar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamersubframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"appendsubframes\"\n    },\n    {\n      \"name\": \"ifappend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifappend{${1:append-mode material%text}}{${2:embed-mode material%text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttotalframenumberwithsub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsubframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsubframe{${1:subframe material%text}}{${2:normal-frame material%text}}\"\n      }\n    },\n    {\n      \"name\": \"subslideentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"subslideentry{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"bsfrestorepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bsfrestorepart{${1:new part page}}{${2:prev part num}}\"\n      }\n    },\n    {\n      \"name\": \"bsfrestoresection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bsfrestoresection{${1:new sec page}}{${2:prev sec num}}\"\n      }\n    },\n    {\n      \"name\": \"bsfrestoresubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bsfrestoresubsection{${1:new subsec page}}{${2:prev subsec num}}\"\n      }\n    },\n    {\n      \"name\": \"bsfrestore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bsfrestore{${1:part num}}{${2:sec num}}{${3:subsec num}}{${4:subsecslide num}}\"\n      }\n    },\n    {\n      \"name\": \"bsfsubframepages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bsfsubframepages{${1:part num}}{${2:sec num}}{${3:subsec num}}{${4:subsecslide num}}{${5:first page}}{${6:last page}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subframe\"\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay specification}>[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay specification}>[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay specification}>[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"subframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\"\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay specification}>[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay specification}>[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay specification}>[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay specification}>[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay specification>}]\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay specification>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay specification>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay specification>}][${4:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"lastframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/beamersubframe#c\": [\n      \"embed\",\n      \"append\",\n      \"nominiframes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamersubframe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamertexpower.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"stepwise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepwise{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parstepwise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parstepwise{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liststepwise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liststepwise{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"step{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"steponce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steponce{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switch{${1:alternate text%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bstep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bstep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dstep\"\n    },\n    {\n      \"name\": \"vstep\"\n    },\n    {\n      \"name\": \"restep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reswitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reswitch{${1:alternate text%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rebstep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rebstep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"redstep\"\n    },\n    {\n      \"name\": \"revstep\"\n    },\n    {\n      \"name\": \"boxedsteps\"\n    },\n    {\n      \"name\": \"nonboxedsteps\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"codeswitch\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamertheme-light.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wordcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thankframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thankframe{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beamertheme-light#c,\\\\usetheme/-light#c\": [\n      \"blue\",\n      \"red\",\n      \"purple\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beamertheme-light#c,\\\\usetheme/-light#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beamerthemeAmurmaple.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pgfpages\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"luamesh\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryangles\"\n    },\n    {\n      \"name\": \"tikzlibraryautomata\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boxalert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxalert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boxalert<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxalert<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"collaboration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaboration{${1:collaboration%text}}\"\n      }\n    },\n    {\n      \"name\": \"framesection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"sepframe\"\n    },\n    {\n      \"name\": \"sepframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sepframe[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\sepframe\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thanksframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanksframe[${2:graphic}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"thanksframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksframe{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"webpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"theamurmapletoc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"information\"\n    },\n    {\n      \"name\": \"information\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"quotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:author(${2:s})}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title complement%text}]\"\n      }\n    },\n    {\n      \"name\": \"boxalertenv\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetheme/Amurmaple#c\": [\n      \"nogauge\",\n      \"nomail\",\n      \"delaunay\",\n      \"amurmapleblue\",\n      \"amurmaplegreen\",\n      \"amurmapleblack\",\n      \"sidebarwidth=\",\n      \"sidebar\",\n      \"toplogo\",\n      \"leftframetitle\",\n      \"rule\",\n      \"rulecolor=\"\n    ],\n    \"\\\\sepframe\": [\n      \"title={${1:text}}\",\n      \"image={${1:graphics code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeArguelles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"Alegreya\"\n    },\n    {\n      \"name\": \"AlegreyaSans\"\n    },\n    {\n      \"name\": \"eulervm\"\n    },\n    {\n      \"name\": \"mathalpha\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"opencolor\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"etoolbox\",\n      \"if\": \"splitnav\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mediumfont\"\n    },\n    {\n      \"name\": \"Section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Section{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"insertevent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"event\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"event{${1:event%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"inserthomepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"insertgithub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"github\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"github{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"fillpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillpicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Arguelles#c\": [\n      \"sans\",\n      \"frameno\",\n      \"splitnav\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBFH.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bfhfonts\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"bfhlogo\"\n    },\n    {\n      \"name\": \"bfhcolors\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"insertversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versionformat{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"partnerlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnerlogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"insertpartnerlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitleVcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inserttitleVcenter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lecturepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separatorpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"separatorpage{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"separatorpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"separatorpage*{${1:type}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/BFH#c\": [\n      \"logofile=${1:file}\",\n      \"authorontitle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBergen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"inserttitleindicator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertauthorindicator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertinstituteindicator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdateindicator\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBerkeley.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Berkeley\": [\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"left\",\n      \"right\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBerlin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Berlin\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBerlinFU.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlevsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlegraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\titlegraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fachbereich\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fachbereich{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"insertfachbereich\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/BerlinFU#c\": [\n      \"compress\"\n    ],\n    \"\\\\titlegraphic\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeBoadilla.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Boadilla\": [\n      \"secheader\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeCambridgeUS.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeCuerna.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"textpos\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeDetlevCM.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"titlevsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fachbereich\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fachbereich{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"insertfachbereich\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/DetlevCM#c\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeDresden.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Dresden\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeEastLansing.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeFhG.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"euler\"\n    },\n    {\n      \"name\": \"fhginstitutes\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boxitem\"\n    },\n    {\n      \"name\": \"cdotitem\"\n    },\n    {\n      \"name\": \"fhgpaperwidth\"\n    },\n    {\n      \"name\": \"fhgtextwidth\"\n    },\n    {\n      \"name\": \"insertframepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertframesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionitem\"\n    },\n    {\n      \"name\": \"setinstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinstitute{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"splitvnext\"\n    },\n    {\n      \"name\": \"splitvvnext\"\n    },\n    {\n      \"name\": \"titleframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledownitem\"\n    },\n    {\n      \"name\": \"triangleleftitem\"\n    },\n    {\n      \"name\": \"trianglerightitem\"\n    },\n    {\n      \"name\": \"triangleupitem\"\n    },\n    {\n      \"name\": \"vdotsitem\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"splitvv\"\n    },\n    {\n      \"name\": \"splitv\"\n    },\n    {\n      \"name\": \"titleframe\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeGoettingen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Goettingen\": [\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"right\",\n      \"left\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeHannover.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Hannover\": [\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeHeavenlyClouds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cncolours\"\n    },\n    {\n      \"name\": \"pgfornament-han\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alttitlecircle\"\n    },\n    {\n      \"name\": \"simpleprogressmarker\"\n    },\n    {\n      \"name\": \"shenmaprogressmarker\"\n    },\n    {\n      \"name\": \"randorn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"randorn{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeIlmenau.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Ilmenau\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeMadrid.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Madrid\": [\n      \"secheader\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeMarburg.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Marburg\": [\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"right\",\n      \"left\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeNord.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Nord#c\": [\n      \"style=${1|light,dark|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemePaloAlto.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/PaloAlto\": [\n      \"hideothersubsections\",\n      \"hideallsubsections\",\n      \"right\",\n      \"left\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeRochester.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Rochester\": [\n      \"height=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeSaintPetersburg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"FiraMono\"\n    },\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spbuInsertField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spbuInsertField{${1:beamer-color}}\"\n      }\n    },\n    {\n      \"name\": \"othergraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othergraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"insertothergraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftcolumnwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertleftcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightcolumnwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertrightcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middlecolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middlecolumnwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertmiddlecolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicfontrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicfontsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicfonttt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/SaintPetersburg#c\": [\n      \"poster\",\n      \"nologo\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeSimpleDarkBlue.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerthemeMadrid\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeSimplePlus.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeSingapore.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Singapore\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeSzeged.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/Szeged\": [\n      \"compress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeTUDa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"insertsmalllogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo*{${1:logo text%text}}\"\n      }\n    },\n    {\n      \"name\": \"setupTUDaFrame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupTUDaFrame{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupTUDaFrame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titlegraphic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic*{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/TUDa#c\": [\n      \"accentcolor=\",\n      \"colortitle\",\n      \"colorbacktitle\",\n      \"colorframetitle\",\n      \"colorback\",\n      \"logo=\"\n    ],\n    \"\\\\setupTUDaFrame\": [\n      \"logo\",\n      \"logofile=${1:file}\",\n      \"colorframetitle\",\n      \"centerframetitle\",\n      \"framebgcolor=\",\n      \"singleframebgcolor=\",\n      \"headsepline\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeTianQing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cncolours\"\n    },\n    {\n      \"name\": \"pgfornament-han\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"textpos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TQTopDecoWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TQBottomDecoWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TQTopDecoOpacity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TQBottomDecoOpacity\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeTorinoTh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"xltxtra\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlepageframe\"\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"highlightbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlightbf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"headerheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ateneo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ateneo{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertateneo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rel{${1:supervisor}}\"\n      }\n    },\n    {\n      \"name\": \"options\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"adv\"\n    },\n    {\n      \"name\": \"disadv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetheme/TorinoTh#c\": [\n      \"language=${1:language}\",\n      \"titlepagelogo=${1:imagefile}\",\n      \"bullet=${1|square,diamond,triangle,circle|}\",\n      \"pageofpages=${1:text}\",\n      \"titleline\",\n      \"color=\",\n      \"secondcandidate\",\n      \"secondsupervisor\",\n      \"secondlogo\",\n      \"thirdlogo\",\n      \"assistantsupervisor\",\n      \"secondassistantsupervisor\",\n      \"notshowauthor\",\n      \"coding=${1|utf8x,utf8,latin1|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeVerona.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lecturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autorecitazione\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"structureA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"structureB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titlegraphic{${1:imagefile}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"titlegraphic[${3:options%keyvals}]{${1:imagefile}}{${2:TikZ options}}\",\n        \"keys\": [\n          \"\\\\titlegraphic,\\\\sidegraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidegraphics\",\n      \"if\": \"sidebar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidegraphics{${1:imagefile}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"sidegraphics\",\n      \"if\": \"sidebar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidegraphics[${3:options%keyvals}]{${1:imagefile}}{${2:TikZ options}}\",\n        \"keys\": [\n          \"\\\\titlegraphic,\\\\sidegraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidegraphics<overlay specification>\",\n      \"if\": \"sidebar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidegraphics<overlay specification>{${1:imagefile}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"sidegraphics<overlay specification>\",\n      \"if\": \"sidebar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidegraphics<overlay specification>[${3:options%keyvals}]{${1:imagefile}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"lectureinfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frametitlesidebar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mail{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"datelecture\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"citazione\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citazione\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:action specification}>\"\n      }\n    },\n    {\n      \"name\": \"citazione\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:author%text}]\"\n      }\n    },\n    {\n      \"name\": \"citazione\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:author%text}]\"\n      }\n    },\n    {\n      \"name\": \"quotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:author%text}]\"\n      }\n    },\n    {\n      \"name\": \"quotation\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:action specification}>[${1:author%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetheme/Verona#c\": [\n      \"showheader\",\n      \"red\",\n      \"gray\",\n      \"colorblocks\",\n      \"graytitle\",\n      \"sidebar\",\n      \"noframetitlerule\"\n    ],\n    \"\\\\titlegraphic,\\\\sidegraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeXiaoshan.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerthememetropolis\"\n    },\n    {\n      \"name\": \"pgfornament-han\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"cncolours\"\n    },\n    {\n      \"name\": \"needspace\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeboxes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"addheadboxtemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addheadboxtemplate{${1:beamer color}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"addheadbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addheadbox{${1:beamer color}}{${2:box template}}\"\n      }\n    },\n    {\n      \"name\": \"addfootboxtemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addfootboxtemplate{${1:beamer color}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"addfootbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addfootbox{${1:beamer color}}{${2:box template}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/boxes\": [\n      \"headheight=\",\n      \"footheight=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemeepyt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"arev\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epytsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epytsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetheme/epyt#c,\\\\epytsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/epyt#c,\\\\epytsetup\": [\n      \"style=${1|alpha,beta,delta,gamma,zeta|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemefocus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"FiraSans\"\n    },\n    {\n      \"name\": \"FiraMono\"\n    },\n    {\n      \"name\": \"firamath-otf\"\n    },\n    {\n      \"name\": \"appendixnumberbeamer\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bkmtranslateto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bkmtranslate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bkmtranslate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"therealframenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"no\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footlineinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlineinfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/focus\": [\n      \"numbering=${1|progressbar,fullbar,minimal,none|}\",\n      \"totalframenumbering=${1|yes,no|}\",\n      \"nofirafonts\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemehitszbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multimedia\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"ctex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hitszbeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"frameofframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setframeofframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setframeofframes{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/hitszbeamer#c\": [\n      \"hitszred\",\n      \"hitszblue\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemehohenheim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemelalic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calculator\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lalicemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"dataapresentacao\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dataapresentacao{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"agendaautomatica\"\n    },\n    {\n      \"name\": \"agendaautomatica\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"agendaautomatica[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"segundacoluna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"progressbar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthememetropolis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"metroset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metroset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetheme/metropolis,\\\\metroset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plain{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"plain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plain[${2:format%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\plain\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mreducelistspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefontsnotfound\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"iffontsavailable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffontsavailable{${1:font list}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/metropolis,\\\\metroset\": [\n      \"titleformat=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat plain=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"sectionpage=${1|none,simple,progressbar|}\",\n      \"subsectionpage=${1|none,simple,progressbar|}\",\n      \"numbering=${1|none,counter,fraction|}\",\n      \"progressbar=${1|none,head,frametitle,foot|}\",\n      \"block=${1|transparent,fill|}\",\n      \"background=${1|dark,light|}\",\n      \"titleformat title=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat subtitle=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat section=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat frame=${1|regular,smallcaps,allsmallcaps,allcaps|}\"\n    ],\n    \"\\\\plain\": [\n      \"regular\",\n      \"smallcaps\",\n      \"allsmallcaps\",\n      \"allcaps\"\n    ],\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"mlineplot\",\n      \"mbarplot\",\n      \"horizontal mbarplot\",\n      \"disable thousands separator\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthememoloch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"molochset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"molochset{${1:options%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/moloch#c,\\\\molochset\": [\n      \"titleformat=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat plain=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"sectionpage=${1|none,simple,progressbar|}\",\n      \"subsectionpage=${1|none,simple,progressbar|}\",\n      \"numbering=${1|none,counter,fraction|}\",\n      \"progressbar=${1|none,head,frametitle,foot|}\",\n      \"block=${1|transparent,fill|}\",\n      \"background=${1|dark,light|}\",\n      \"titleformat title=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat subtitle=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat section=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat frame=${1|regular,smallcaps,allsmallcaps,allcaps|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemepureminimalistic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"noto\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"FiraSans\"\n    },\n    {\n      \"name\": \"FiraMono\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"beamertitlecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamertextcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerbgcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerfootertextcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institutepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logoheader\"\n    },\n    {\n      \"name\": \"logotitle\"\n    },\n    {\n      \"name\": \"logofooter\"\n    },\n    {\n      \"name\": \"pageword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showpagenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myrightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mytextlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myfooterheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basicfooter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"basicfooter{${1:height}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vfilleditems\"\n    },\n    {\n      \"name\": \"vfilleditems\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetheme/pureminimalistic#c\": [\n      \"darkmode\",\n      \"showmaxslides\",\n      \"nofooterlogo\",\n      \"nofooter\",\n      \"customfont\",\n      \"noto\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemesidebar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"beamersidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerheadheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/sidebar\": [\n      \"width=\",\n      \"dark\",\n      \"tab\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemetamu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/tamu#c\": [\n      \"onlycurpagenum\",\n      \"infolines\",\n      \"secheader\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemethubeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multimedia\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithmic\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"calligra\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"ctex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thubeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"frameofframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setframeofframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setframeofframes{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/thubeamer#c\": [\n      \"thupurple\",\n      \"thupurple2\",\n      \"smoothbars\",\n      \"sidebar\",\n      \"sectiontoc\",\n      \"subsectiontoc\",\n      \"en\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemetree.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/tree\": [\n      \"bars\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beamerthemetrigon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrary3d\"\n    },\n    {\n      \"name\": \"sourcesanspro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"trigonset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trigonset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetheme/trigon,\\\\trigonset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"headcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logbig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biglogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biglogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"biglogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biglogo[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\biglogo,\\\\smalllogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slidestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftTriangle{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"rightTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightTriangle{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"topTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"topTriangle{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"leftColorTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leftColorTriangle{${1:color}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"rightColorTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rightColorTriangle{${1:color}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"topColorTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"topColorTriangle{${1:color}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"titleframe\"\n    },\n    {\n      \"name\": \"sectionframe\"\n    },\n    {\n      \"name\": \"logsmall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalllogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalllogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"smalllogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smalllogo[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\biglogo,\\\\smalllogo\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usetheme/trigon,\\\\trigonset\": [\n      \"background=${1|light,dark|}\",\n      \"titleformat=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"usesourcefonts\",\n      \"sectionpage=${1|none,simple|}\",\n      \"titlestyle=${1|plain,style1,style2|}\",\n      \"sectionstyle=${1|plain,style1,style2,style3|}\",\n      \"slidestyle=${1|blank,style1,cyber|}\",\n      \"numbering=${1|none,counter,fraction|}\",\n      \"block=${1|transparent,fill|}\",\n      \"headingcolor=${1|default,theme|}\",\n      \"textgcolor=${1|default,theme|}\",\n      \"titleformat title=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat subtitle=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat section=${1|regular,smallcaps,allsmallcaps,allcaps|}\",\n      \"titleformat frame=${1|regular,smallcaps,allsmallcaps,allcaps|}\"\n    ],\n    \"\\\\biglogo,\\\\smalllogo\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bearwear.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlings-bears\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bearwear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bearwear[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bearwear#c,\\\\bearwearsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bearwearsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bearwearsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\bearwear#c,\\\\bearwearsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bearwear#c,\\\\bearwearsetup#c\": [\n      \"long sleeves\",\n      \"round neckline\",\n      \"t-shirt\",\n      \"muscle shirt\",\n      \"v-neckline\",\n      \"leftarm=\",\n      \"rightarm=\",\n      \"body=\",\n      \"arms=\",\n      \"shirt=\",\n      \"leftarm pattern=\",\n      \"rightarm pattern=\",\n      \"arms pattern=\",\n      \"body pattern=\",\n      \"shirt pattern=\",\n      \"shirt deco=\",\n      \"body deco=\",\n      \"shift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/begingreek.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"greekfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greektxt{${1:greek text}}\"\n      }\n    },\n    {\n      \"name\": \"greektxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"greektxt[${2:font family}]{${1:greek text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"greek\"\n    },\n    {\n      \"name\": \"greek\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:font family}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/begingreek#c\": [\n      \"artemisia\",\n      \"gfsbaskerville\",\n      \"bodoni\",\n      \"complutum\",\n      \"udidot\",\n      \"neohellenic\",\n      \"porson\",\n      \"solomos\",\n      \"txr\",\n      \"mak\",\n      \"llcmss\",\n      \"lmr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/begingreek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/begriff.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BGassert\"\n    },\n    {\n      \"name\": \"BGcontent\"\n    },\n    {\n      \"name\": \"BGnot\"\n    },\n    {\n      \"name\": \"BGquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BGquant{${1:variable_name}}\"\n      }\n    },\n    {\n      \"name\": \"BGconditional\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BGconditional{${1:antecedent}}{${2:consequent}}\"\n      }\n    },\n    {\n      \"name\": \"BGterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BGterm{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"BGstem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BGstem{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"BGbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BGbracket{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"BGthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BGbeforelen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BGafterlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BGspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BGlinewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bera.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"beraserif\"\n    },\n    {\n      \"name\": \"berasans\"\n    },\n    {\n      \"name\": \"beramono\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beramono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beramono#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beramono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/berasans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/berasans#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/berasans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beraserif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beraserif#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beraserif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/berenis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lstyle\"\n    },\n    {\n      \"name\": \"textl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zeroslash\"\n    },\n    {\n      \"name\": \"ostyle\"\n    },\n    {\n      \"name\": \"texto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstyle\"\n    },\n    {\n      \"name\": \"textt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\"\n    },\n    {\n      \"name\": \"textp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlstyle\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tostyle\"\n    },\n    {\n      \"name\": \"textto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plstyle\"\n    },\n    {\n      \"name\": \"textpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postyle\"\n    },\n    {\n      \"name\": \"textpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infstyle\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/berenis#c\": [\n      \"lig\",\n      \"osf\",\n      \"lf\",\n      \"prop\",\n      \"tab\",\n      \"lm\",\n      \"enc=${1|t1,ly1|}\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/berenis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/betababel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"teubner\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcode{${1:beta code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"betaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\"\n    },\n    {\n      \"name\": \"dategreek\"\n    },\n    {\n      \"name\": \"extrasgreek\"\n    },\n    {\n      \"name\": \"noextrasgreek\"\n    },\n    {\n      \"name\": \"greekscript\"\n    },\n    {\n      \"name\": \"greektext\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\"\n    },\n    {\n      \"name\": \"anwtonos\"\n    },\n    {\n      \"name\": \"katwtonos\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"varqoppa\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"ddigamma\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\"\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"betacode\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/beton.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TextOldstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathOldstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qback\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/beton#c\": [\n      \"standard-baselineskips\",\n      \"oldstyle-equation-numbers\",\n      \"concrete-math\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/beton#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/beuron.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textbeuron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuron{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbeuronc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuronc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbeuronx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuronx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbeuron*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuron*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbeuronc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuronc*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbeuronx*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbeuronx*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"beuronOmega\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bewerbung-cv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"lastpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acadtitle\"\n    },\n    {\n      \"name\": \"addresscity\"\n    },\n    {\n      \"name\": \"addressstreet\"\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem[${5:Abstände%l}]{${1:Kopfzeile1%text}}{${2:Text1%text}}{${3:Kopfzeile2%text}}{${4:Text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem{${1:Kopfzeile1%text}}{${2:Text1%text}}{${3:Kopfzeile2%text}}{${4:Text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cventry[${7:Abstände%l}]{${1:Monat/Jahr%text}}{${2:Bezeichnung%text}}{${3:Ergänzung%text}}{${4:Inhalt%text}}{${5:}}{${6:}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cventry{${1:Monat/Jahr%text}}{${2:Bezeichnung%text}}{${3:Ergänzung%text}}{${4:Inhalt%text}}{${5:}}{${6:}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvitem[${3:Abstände%l}]{${1:Kopfzeile%text}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvitem{${1:Kopfzeile%text}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cvitemwithcomment[${4:Abstände%l}]{${1:Kopfzeile%text}}{${2:Text%text}}{${3:Kommentar%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvitemwithcomment{${1:Kopfzeile%text}}{${2:Text%text}}{${3:Kommentar%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvlanguage{${1:Sprache}}{${2:Kenntnisse}}{${3:Kommentar}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvlistdoubleitem[${3:Abstände%l}]{${1:Artikel1%text}}{${2:Artikel2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvlistdoubleitem{${1:Artikel1%text}}{${2:Artikel2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvlistitem[${2:Abstände%l}]{${1:Eintrag%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvlistitem{${1:Eintrag%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvquote\"\n    },\n    {\n      \"name\": \"email\"\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"extrainfo\"\n    },\n    {\n      \"name\": \"familyname\"\n    },\n    {\n      \"name\": \"faxnr\"\n    },\n    {\n      \"name\": \"firstname\"\n    },\n    {\n      \"name\": \"homepage\"\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"mobile\"\n    },\n    {\n      \"name\": \"phonenr\"\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"photo[${3:frame type%keyvals}]{${1:width}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\photo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photo{${1:width}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"totalpagemark\"\n    },\n    {\n      \"name\": \"acadtitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acadtitlestyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"address{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"addressstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addresssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterelementsvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterquotevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitlevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allbordercolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citebordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynamestyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"faxsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filebordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstnamestyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintscolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hintstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"homepagesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infocolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"komacvinfocolextrawidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linkbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listdbitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menubordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mframepicshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mycolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfkeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotestyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sepcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sepinfocolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"titlesepwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlestyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"urlbordercolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"compactdesc\"\n    },\n    {\n      \"name\": \"compactenum\"\n    },\n    {\n      \"name\": \"compactitem\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\photo\": [\n      \"frame\",\n      \"mframe\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bewerbung.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Vorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vorname{${1:Vorname}}\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:Vorname}}\"\n      }\n    },\n    {\n      \"name\": \"fullname\"\n    },\n    {\n      \"name\": \"fullname\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullname[${1:Reihenfolge}]\"\n      }\n    },\n    {\n      \"name\": \"Street\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Street{${1:Straße Hnr.}}\"\n      }\n    },\n    {\n      \"name\": \"Plz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Plz{${1:Postleitzahl}}\"\n      }\n    },\n    {\n      \"name\": \"Stadt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Stadt{${1:Stadt}}\"\n      }\n    },\n    {\n      \"name\": \"anschrift\"\n    },\n    {\n      \"name\": \"anschrift\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"anschrift[${1:Umbruch}]\"\n      }\n    },\n    {\n      \"name\": \"MeinBeruf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MeinBeruf{${1:Berufsbezeichnung}}\"\n      }\n    },\n    {\n      \"name\": \"Tel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tel{${1:Telefonnummer}}\"\n      }\n    },\n    {\n      \"name\": \"Mobile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mobile{${1:Mobiltelefonnummer}}\"\n      }\n    },\n    {\n      \"name\": \"EMail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EMail{${1:E-Mail%URL}}\"\n      }\n    },\n    {\n      \"name\": \"Sta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sta{${1:Staatsangehörigkeit}}\"\n      }\n    },\n    {\n      \"name\": \"GebDatum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GebDatum{${1:Geburtsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"LebenslaufTitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LebenslaufTitel{${1:Titel%text}}\"\n      }\n    },\n    {\n      \"name\": \"ID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ID{${1:Identifikation}}\"\n      }\n    },\n    {\n      \"name\": \"Anhang\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Anhang{${1:Liste}}{${2:Aufzählung}}\"\n      }\n    },\n    {\n      \"name\": \"TodayOrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TodayOrt{${1:Ort}}\"\n      }\n    },\n    {\n      \"name\": \"TodayTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TodayTime{${1:Time}}\"\n      }\n    },\n    {\n      \"name\": \"makePerson\"\n    },\n    {\n      \"name\": \"Anhang\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Anhang{${1:Text%text}}{${2:Artikelliste%text}}\"\n      }\n    },\n    {\n      \"name\": \"argetabelle\"\n    },\n    {\n      \"name\": \"argetabelle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"argetabelle[${1:Datei}]\"\n      }\n    },\n    {\n      \"name\": \"anhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bewerbungDatum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungDatum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungDatum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungFirma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bewerbungFirmaAnrede\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirmaAnrede\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bewerbungFirmaName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirmaName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungFirmaName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungFirmaOrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirmaOrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungFirmaOrt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungFirmaPlz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirmaPlz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungFirmaPlz{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungFirmaStr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungFirmaStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungFirmaStr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungKW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungKW\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungKW{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungRueckmeldung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungRueckmeldung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungRueckmeldung{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungSonstiges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungSonstiges\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungSonstiges{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bewerbungStelle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BewerbungStelle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BewerbungStelle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmaAnrede\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmaName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmaPlz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmaStadt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmaStreet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gebDatum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geehrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getBewerbung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getBewerbung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getBewerbung[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"id\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lebenslaufTitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meinBeruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meinberuf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runKomaVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setzekomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stadt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"street\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayOrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayTime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vorname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"anschreiben\"\n    },\n    {\n      \"name\": \"anschreiben\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Anrede}]\"\n      }\n    },\n    {\n      \"name\": \"anschreiben\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:Anrede}][${2:Enlarge}]\"\n      }\n    },\n    {\n      \"name\": \"lebenslauf\"\n    },\n    {\n      \"name\": \"lebenslauf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Listensymbol}]\"\n      }\n    },\n    {\n      \"name\": \"lebenslauf\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:Listensymbol}][${2:Addendum}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bez123.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multiply\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lbezier\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"lbezier(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"lbezier\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"lbezier[${1:n}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"cbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"cbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"cbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"cbezier[${1:n}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"rqbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"rqbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:weight})\"\n      }\n    },\n    {\n      \"name\": \"rqbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"rqbezier[${1:n}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:weight})\"\n      }\n    },\n    {\n      \"name\": \"setweightscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setweightscale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"resetweightscale\"\n    },\n    {\n      \"name\": \"botscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theweightscale\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bezierplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bezierplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bezierplot{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bezierplot\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"bezierplot[${2:xmin}][${3:xmax}]{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bezierplot\",\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"bezierplot[${2:xmin}][${3:xmax}][${4:ymin}][${5:ymax}]{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bezierplot\",\n      \"arg\": {\n        \"format\": \"[][][][][]{}\",\n        \"snippet\": \"bezierplot[${2:xmin}][${3:xmax}][${4:ymin}][${5:ymax}][${6:samples}]{${1:function%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bfhcolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bfhcolors#c\": [\n      \"coated\",\n      \"colormode=${1|4CU,4CC,RGB,SW,1C|}\",\n      \"RGB\",\n      \"cmyk\",\n      \"gray\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bfhcolors#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bfhfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"nunito\"\n    },\n    {\n      \"name\": \"sourceserifpro\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ltseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bfhlayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"bfhcolors\"\n    },\n    {\n      \"name\": \"zref\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    },\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"bfhfonts\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"bfhlogo\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"bfhmodule\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bfhitemlabel\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:institution%text}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Logoplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partnerlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnerlogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"titlefooterleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefooterleft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlefooterright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefooterright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic*{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"versionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versionformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BFHarraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BFHarrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupBfhTabular\"\n    },\n    {\n      \"name\": \"bfhRule\"\n    },\n    {\n      \"name\": \"bfhRule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bfhRule[${1:length}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTblr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bfhletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"scrletter\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"bfhcolors\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"bfhfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"raggedsignature\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bfhmodule.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"LoadBFHModule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadBFHModule{${1:list of modules%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadBFHModule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\LoadBFHModule#c\": [\n      \"tabular\",\n      \"listings\",\n      \"terminal\",\n      \"boxes\",\n      \"rules\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bguq.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bguq\"\n    },\n    {\n      \"name\": \"bguqwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bib2qr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qrcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"qrfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"qrfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qrfullcite[${2:option%keyvals}]{${1:bibid}}\",\n        \"keys\": [\n          \"\\\\qrfullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bib2qr#c\": [\n      \"doiurlbase=${1:string}\",\n      \"qrdelimiter=${1:sep code}\",\n      \"qrversion=${1:version}\",\n      \"qrwidth=\"\n    ],\n    \"\\\\qrfullcite\": [\n      \"noindent\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bib2qr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibcop.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iexec\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibcop#c\": [\n      \"verbose\",\n      \"script=${1:path}\",\n      \"nocaps\",\n      \"nowraps\",\n      \"nodoi\",\n      \"noinproc\",\n      \"noorg\",\n      \"notags\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibcop#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibentry.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nobibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"nobibliography*\"\n    },\n    {\n      \"name\": \"bibentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentry{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"url\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biblatex-archaeology.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tabulary\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeissue{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeissue[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissue\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeissue[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fciteissue{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fciteissue[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissue\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fciteissue[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pciteissue{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pciteissue[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissue\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pciteissue[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeissues{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citeissues(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citeissues(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citeissues(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citeissues[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citeissues[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeissues\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citeissues(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fciteissues{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fciteissues(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"fciteissues(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"fciteissues(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"fciteissues[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"fciteissues[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fciteissues\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"fciteissues(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pciteissues{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pciteissues(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pciteissues(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"pciteissues(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"pciteissues[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"pciteissues[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pciteissues\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"pciteissues(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"posscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"posscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Posscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Posscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Posscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"posscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"posscites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"posscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"posscites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"posscites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"posscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"posscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Posscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Posscites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Posscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Posscites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Posscites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Posscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Posscites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Posscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortformcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortformcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shortformcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shortformcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"shortformcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"shortformcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"shortformcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"shortformcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"shortformcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortformcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"shortformcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sfcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sfcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sfcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sfcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"sfcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"sfcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"sfcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"sfcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sfcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"sfcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reviewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"reviewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"previewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"previewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"previewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textreviewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textreviewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textreviewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reviewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Reviewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Reviewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Previewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Previewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Previewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Textreviewcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Textreviewcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Textreviewcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reviewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"reviewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"reviewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"reviewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"reviewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"reviewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reviewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"reviewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"previewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"previewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"previewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"previewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"previewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"previewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"previewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"previewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textreviewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"textreviewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"textreviewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"textreviewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textreviewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textreviewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textreviewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"textreviewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Reviewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Reviewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Reviewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Reviewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Reviewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Reviewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Reviewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Reviewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Previewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Previewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Previewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Previewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Previewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Previewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Previewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Previewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Textreviewcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Textreviewcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Textreviewcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Textreviewcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Textreviewcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Textreviewcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textreviewcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Textreviewcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DefineGenitiveApostropheChars\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineGenitiveApostropheChars{${1:language}}{${2:csv}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareGenitiveApostropheChars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareGenitiveApostropheChars{${1:csv}}\"\n      }\n    },\n    {\n      \"name\": \"SuppressAdditiveLbxSuffixes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuppressAdditiveLbxSuffixes{${1:csv}}\"\n      }\n    },\n    {\n      \"name\": \"labelnamedatewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifselfcontained\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifselfcontained{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibletterspacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibletterspacing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrepeatgiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrepeatgiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrepeatfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrepeatfamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrepeatprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrepeatprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrepeatsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrepeatsuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbooknamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbooknamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbooknamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbooknamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbooknameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbooknameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbooknamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbooknamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsourcenamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsourcenamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsourcenamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsourcenamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsourcenameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsourcenameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsourcenamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsourcenamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbiblistnamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbiblistnamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbiblistnamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbiblistnamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbiblistnameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbiblistnameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbiblistnamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbiblistnamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibreviewnamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibreviewnamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibreviewnamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibreviewnamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibreviewnameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibreviewnameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibreviewnamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibreviewnamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifshortform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifshortform{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"nameshortformdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrepeatlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifrepeatlabel{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"repeatlabeldash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"repeatlabeldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibfestschriftnamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfestschriftnamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfestschriftnamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfestschriftnamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfestschriftnameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfestschriftnameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfestschriftnamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfestschriftnamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multivenuedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eventtypepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleseriesdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articletitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inbookbookdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnothesistitlepunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnothesistitlepunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"articlesubtitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsourceeditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsourceeditor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"multisourceeditordelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalsourceeditordelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booklabelnamepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumedatedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalvolumedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multireviewdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalreviewdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multireviewnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalreviewnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reviewofnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeditionsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifeditionsuperscript{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbiblocationaddon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbiblocationaddon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"finallistdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuselocation{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpagesfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpagesfirst{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"locationpublisherdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iforigfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iforigfields{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseinstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuseinstitution{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"institutionlocationdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeinstitutiondelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpositionlabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpositionlabeldate{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnewspaper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnewspaper{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibextrayear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbibextrayear{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"daterealdatedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesubseqesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesepx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibdaterangesepx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifidemincitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifidemincitation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"seenotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibandothers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibandothers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"finalnameellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posscitealias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strongcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifseenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifseenote{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftabbedlabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftabbedlabeldate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedlabeldatewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseriespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesnumberdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subnumberseriesdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printgiveninitligatureslist\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabbedlabeldate\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"capitalizeprefixinbiblist\",\n      \"citeshortin\",\n      \"editionsuperscript=${1|none,predate,postdate,prelabel,postlabel,preloc,postloc,posttitle|}\",\n      \"giveninitligatures={${1:lig1,lig2,...}}\",\n      \"idemincitation\",\n      \"injournal\",\n      \"journallocation\",\n      \"maxbooknames=${1:integer}\",\n      \"minbooknames=${1:integer}\",\n      \"minrealdatediff=${1:integer}\",\n      \"maxreviewnames=${1:integer}\",\n      \"minreviewnames=${1:integer}\",\n      \"noseries\",\n      \"nothesistitlepunct\",\n      \"notitlepunct\",\n      \"origfields\",\n      \"pagesfirst\",\n      \"positionlabeldate=${1|both,label,location|}\",\n      \"preservelastauthor\",\n      \"repeatlabel=${1|dashed,false,true|}\",\n      \"reviewedauthoraftertitle\",\n      \"seriesorlocation\",\n      \"shortform=${1|false,title,true|}\",\n      \"shortjournal\",\n      \"shortseries\",\n      \"subseries\",\n      \"summarytitle\",\n      \"tabbedlabeldate\",\n      \"titlebrackets\",\n      \"titlenote\",\n      \"useeventdate\",\n      \"useeventnumber\",\n      \"usefestschriftaddon\",\n      \"useinstitution=${1|aspublisher,false,locationfirst,omitlocation,omitlocationifurl,pluslocation|}\",\n      \"uselocation=${1|false,omitifseries,true|}\",\n      \"usemultivenue\",\n      \"usepublisher\",\n      \"usesourceeditor\",\n      \"useunpublishedthesis\",\n      \"volumeafterseries\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-chicago.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"suppressbibfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suppressbibfield{${1:field1,field2,...}}\"\n      }\n    },\n    {\n      \"name\": \"suppressbibfield\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"suppressbibfield[${2:entrytype1,entrytype2,...}]{${1:field1,field2,...}}\"\n      }\n    },\n    {\n      \"name\": \"lositemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsunspecified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmsunspecified{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cmscompressyears\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmscompressyears{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmscompcenturies\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmscompcenturies{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmsformatextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsformatendextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsdateeraprintpre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsdateeraprintpre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmsdateeraprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsdateeraprint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifrelatedloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeincite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeincites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citeincites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citeincites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citeincites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citeincites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citeincites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeincites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citeincites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citejournal{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citejournal[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citejournal[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citetitles{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citetitles(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citetitles(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citetitles(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citetitles[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citetitles[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitles\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citetitles(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullciteincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fullciteincites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fullciteincites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"fullciteincites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"fullciteincites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"fullciteincites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"fullciteincites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteincites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"fullciteincites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gentextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gentextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"gentextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"gentextcite[${2:ending}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gentextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"gentextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"gentextcites[${3:ending}](${4:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"gentextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"gentextcites[${3:ending}](${4:pre})(${5:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"gentextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()[]{}[]{}\",\n        \"snippet\": \"gentextcites[${3:ending}](${6:pre})(${7:post})[${4:pre}]{${1:bibid}}[${5:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"gentextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"gentextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"gentextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gentextcites\",\n      \"arg\": {\n        \"format\": \"[]()()[][]{}[][]{}\",\n        \"snippet\": \"gentextcites[${3:ending}](${8:pre})(${9:post})[${4:pre}][${5:post}]{${1:bibid}}[${6:pre}][${7:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gentextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gentextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Gentextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"Gentextcite[${2:ending}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gentextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Gentextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"Gentextcites[${3:ending}](${4:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Gentextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"Gentextcites[${3:ending}](${4:pre})(${5:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Gentextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()[]{}[]{}\",\n        \"snippet\": \"Gentextcites[${3:ending}](${6:pre})(${7:post})[${4:pre}]{${1:bibid}}[${5:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Gentextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Gentextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Gentextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Gentextcites\",\n      \"arg\": {\n        \"format\": \"[]()()[][]{}[][]{}\",\n        \"snippet\": \"Gentextcites[${3:ending}](${8:pre})(${9:post})[${4:pre}][${5:post}]{${1:bibid}}[${6:pre}][${7:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"headlesscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"headlesscites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"headlesscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"headlesscites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"headlesscites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"headlesscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"headlesscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Headlesscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Headlesscites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Headlesscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Headlesscites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Headlesscites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Headlesscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Headlesscites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Headlesscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"headlessfullcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"headlessfullcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"headlessfullcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"headlessfullcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"headlessfullcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"headlessfullcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"headlessfullcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shortcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shortcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shortcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shortcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Shortcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shortcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shortcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortcite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Shortcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shorthandcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shorthandcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shorthandcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandcite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shorthandcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandrefcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorthandrefcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandrefcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shorthandrefcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shorthandrefcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shorthandrefcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortrefcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortrefcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortrefcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortrefcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shortrefcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shortrefcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortrefcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shortrefcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortrefcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shortrefcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Shortrefcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Shortrefcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surnamecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"surnamecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"surnamecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"surnamecites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"surnamecites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"surnamecites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"surnamecites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"surnamecites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"surnamecites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"surnamecites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"surnamecites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"runcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"runcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"runcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"runcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"headlessparencites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"headlessparencites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"headlessparencites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"headlessparencites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"headlessparencites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"headlessparencites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"headlessparencites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessparenshortcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessparenshortcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessparenshortcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"headlessparenshortcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"headlessparenshortcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"headlessparenshortcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"headlessparenshortcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"headlessparenshortcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"headlessparenshortcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessparenshortcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"headlessparenshortcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foottextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foottextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"foottextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foottextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"foottextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"foottextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"foottextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"foottextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"foottextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foottextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"foottextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partedit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partedit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parteditandcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parteditandtrans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partedittransandcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttransandcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttrans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibannotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeannotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classicpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsfwrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsfwrap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmshyper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmshyper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmsintrosection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsnrpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmspens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmspens{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cmspref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmsrelhyper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsrelhyper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmsrelnamehyper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsrelnamehyper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmsshhyper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsshhyper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmswrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmswrap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmswrapf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmswrapf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ctitleaddonpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"docmslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docmslist{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"editordelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encypunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcmslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcmslist{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffieldstart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"journalpagespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jtitleaddonpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterdatelong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcurdinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibcurdinal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibethgiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibethgiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibethpap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibethpap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibethpat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibethpat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkjuridprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkjuridprefix{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multilangdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multilocsdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multipubsdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameaddonpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameadelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcunitpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotewrapper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postvolpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptitleaddonpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelimshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reprintpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitfootnoterule\",\n      \"if\": \"strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefootnoterule\",\n      \"if\": \"strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitfootnoterule\",\n      \"if\": \"strict=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefootnoterule\",\n      \"if\": \"strict=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introductionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forewordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkjuridordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkjuridordinal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibyeardivisiondateshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibyeardivisiondateshort{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibyeardivisiondatelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibyeardivisiondatelong{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cmsmkdecade\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmsmkdecade{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cmsmkcentury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmsmkcentury{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkcmscentury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcmscentury{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"atcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"atcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atpcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"atpcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"atpcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parenfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cmswraphy\",\n      \"if\": \"authordate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmswraphy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cbytypeeditor\",\n      \"if\": \"authordate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmaintitle\",\n      \"if\": \"authordate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmaintitlenc\",\n      \"if\": \"authordate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"atcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"atcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atpcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"atpcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"atpcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"atpcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenfullcite\",\n      \"if\": \"authordate-trad\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parenfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cmswraphy\",\n      \"if\": \"authordate-trad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmswraphy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cbytypeeditor\",\n      \"if\": \"authordate-trad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmaintitle\",\n      \"if\": \"authordate-trad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmaintitlenc\",\n      \"if\": \"authordate-trad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-chicago#c\": [\n      \"authordate\",\n      \"notes\",\n      \"authordate-trad\",\n      \"authordate16\",\n      \"notes16\",\n      \"authordate-trad16\",\n      \"footmarkoff\",\n      \"cmsbreakurl\",\n      \"cmsnameparts\",\n      \"cmsnameparts=${1:nametemplate}\",\n      \"backend=${1|bibtex,bibtex8,biber|}\",\n      \"style=${1:file}\",\n      \"bibstyle=${1:file}\",\n      \"citestyle=${1:file}\",\n      \"natbib\",\n      \"mcite\",\n      \"casechanger=${1|auto,latex2e,expl3|}\",\n      \"datamodel=${1:model}\",\n      \"sorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\",\n      \"sortcase\",\n      \"sortupper\",\n      \"sortlocale=\",\n      \"sortcites\",\n      \"sortsets\",\n      \"pluralothers\",\n      \"maxnames=${1:integer}\",\n      \"minnames=${1:integer}\",\n      \"maxbibnames=${1:integer}\",\n      \"minbibnames=${1:integer}\",\n      \"maxcitenames=${1:integer}\",\n      \"mincitenames=${1:integer}\",\n      \"maxsortnames=${1:integer}\",\n      \"minsortnames=${1:integer}\",\n      \"maxitems=${1:integer}\",\n      \"minitems=${1:integer}\",\n      \"autocite=${1|plain,inline,footnote,superscript|}\",\n      \"autopunct\",\n      \"language=${1|autobib,autocite,auto|}\",\n      \"clearlang\",\n      \"autolang=${1|none,hyphen,other,other*,langname|}\",\n      \"langhook=${1|captions,extras|}\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"locallabelwidth\",\n      \"notetype=${1|foot+end,footonly,endonly|}\",\n      \"hyperref=${1|true,false,auto,manual|}\",\n      \"backref\",\n      \"backrefstyle=${1|none,three,two,two+,three+,all+|}\",\n      \"backrefsetstyle=${1|setonly,memonly,setormem,setandmem,memandset,setplusmem|}\",\n      \"backreffloats\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"loadfiles\",\n      \"refsection=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"refsegment=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"citereset=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"abbreviate\",\n      \"date=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"labeldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"eventdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"origdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"urldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"alldates=${1|year,short,long,terse,comp,iso|}\",\n      \"julian\",\n      \"gregorianstart=${1:YYYY-MM-DD}\",\n      \"datezeros\",\n      \"timezeros\",\n      \"timezones\",\n      \"seconds\",\n      \"dateabbrev\",\n      \"datecirca\",\n      \"dateuncertain\",\n      \"dateera=${1|astronomical,secular,christian|}\",\n      \"dateeraauto=${1:integer}\",\n      \"time=${1|12h,24h,24hcomp|}\",\n      \"labeltime=${1|12h,24h,24hcomp|}\",\n      \"eventtime=${1|12h,24h,24hcomp|}\",\n      \"origtime=${1|12h,24h,24hcomp|}\",\n      \"urltime=${1|12h,24h,24hcomp|}\",\n      \"alltimes=${1|12h,24h,24hcomp|}\",\n      \"dateusetime\",\n      \"labeldateusetime\",\n      \"eventdateusetime\",\n      \"origdateusetime\",\n      \"urldateusetime\",\n      \"alldatesusetime\",\n      \"defernumbers\",\n      \"punctfont\",\n      \"arxiv=${1|abs,ps,pdf,format|}\",\n      \"texencoding=\",\n      \"bibencoding=\",\n      \"safeinputenc\",\n      \"bibwarn\",\n      \"mincrossrefs=${1:integer}\",\n      \"minxrefs=${1:integer}\",\n      \"bibtexcaseprotection\",\n      \"isbn\",\n      \"url\",\n      \"doi=${1|true,false,only,onlynd|}\",\n      \"eprint\",\n      \"related\",\n      \"subentry\",\n      \"subentrycomp\",\n      \"dashed\",\n      \"mergedate=${1|false,minimum,basic,compact,maximum,true|}\",\n      \"ibidpage\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"strict\",\n      \"pagetracker=${1|true,false,page,spread|}\",\n      \"citecounter=${1|true,false,context|}\",\n      \"citetracker=${1|true,false,context,strict,constrict|}\",\n      \"ibidtracker=${1|true,false,context,strict,constrict|}\",\n      \"opcittracker=${1|true,false,context,strict,constrict|}\",\n      \"loccittracker=${1|true,false,context,strict,constrict|}\",\n      \"idemtracker=${1|true,false,context,strict,constrict|}\",\n      \"trackfloats\",\n      \"parentracker\",\n      \"maxparens=${1:integer}\",\n      \"giveninits\",\n      \"terseinits\",\n      \"labelalpha\",\n      \"maxalphanames=${1:integer}\",\n      \"minalphanames=${1:integer}\",\n      \"labelnumber\",\n      \"noroman\",\n      \"labeltitle\",\n      \"labeltitleyear\",\n      \"labeldateparts\",\n      \"singletitle\",\n      \"uniquetitle\",\n      \"uniquebaretitle\",\n      \"uniquework\",\n      \"uniqueprimaryauthor\",\n      \"uniquename=${1|true,false,init,full,allinit,allfull,mininit,minfull,minyearinit,minyearfull|}\",\n      \"uniquelist=${1|true,false,minyear|}\",\n      \"nohashothers\",\n      \"nosortothers\",\n      \"useauthor\",\n      \"useeditor\",\n      \"usetranslator\",\n      \"useprefix\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"skipbib\",\n      \"skipbiblist\",\n      \"skiplab\",\n      \"dataonly\"\n    ],\n    \"\\\\usepackage/biblatex-chicago#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"alwaysrange\",\n      \"decaderange\",\n      \"centuryrange\",\n      \"nodatebrackets\",\n      \"noyearbrackets\",\n      \"nodates\",\n      \"genallnames\",\n      \"annotation\",\n      \"bibannotesep=${1|none,space,comma,period,colon,semicolon,par,vpar,parbreak,vparbreak|}\",\n      \"citeannotesep=${1|none,space,comma,period,colon,semicolon,par,vpar,parbreak,vparbreak|}\",\n      \"formatbib=${1|max,min,minwo,annote,annotenp|}\",\n      \"entrybreak=${1:integer}\",\n      \"noibid\",\n      \"useibid\",\n      \"short\",\n      \"hidezeros\",\n      \"pagezeros\",\n      \"endnotesplit\",\n      \"noterefinterval=${1:integer}\",\n      \"noterefintro=${1:string}\",\n      \"fullnoterefs\",\n      \"noteref=${1|none,page,chapter,section,subsection,part|}\",\n      \"legalnotes\",\n      \"supranotes\",\n      \"noneshort\",\n      \"shorthandibid\",\n      \"shorthandfull\",\n      \"inheritshorthand\",\n      \"shorthandfirst\",\n      \"shorthandintro=${1|none,short,full|}\",\n      \"compresspages\",\n      \"compressyears\",\n      \"postnotepunct\",\n      \"usecompiler\",\n      \"juniorcomma\",\n      \"delayvolume\",\n      \"longcrossref\",\n      \"booklongxref\",\n      \"omitxrefdate\",\n      \"xrefurl\",\n      \"blogurl\",\n      \"journalabbrev\",\n      \"seriesabbrev\",\n      \"ordinalgb\",\n      \"notitle\",\n      \"urlnotes\",\n      \"urlstamp\",\n      \"numbermonth\",\n      \"bookpages\",\n      \"includeall\",\n      \"hidevolumes\",\n      \"addendum\",\n      \"bookseries\",\n      \"notefield\",\n      \"completenotes\",\n      \"nameaddon=${1|all,none,first|}\",\n      \"shortextrafield=${1:field}\",\n      \"shortextraformat=${1:format}\",\n      \"shortextrapunct=${1|none,space,comma,period,colon,semicolon|}\",\n      \"nameaddonformat=${1:format}\",\n      \"nameaddonsep=${1|space,none,colon,comma,period,semicolon|}\",\n      \"ptitleaddon=${1|none,space,comma,period,colon,semicolon|}\",\n      \"ctitleaddon=${1|none,space,comma,period,colon,semicolon|}\",\n      \"jtitleaddon=${1|none,space,comma,period,colon,semicolon|}\",\n      \"shorthandpunct=${1|none,space,comma,period,colon,semicolon,emdash,endash|}\",\n      \"avdate\",\n      \"cmsdate=${1|off,both,on|}\",\n      \"cmsorigdate\",\n      \"hypertitle\",\n      \"hypername\",\n      \"hyperall\",\n      \"cmslos\",\n      \"avdate\",\n      \"cmsdate=${1|off,both,on|}\",\n      \"cmsorigdate\",\n      \"hypertitle\",\n      \"cmslos\",\n      \"headline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-chicago#c\",\n    \"\\\\usepackage/biblatex-chicago#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-cv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"datenumber\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"highlightname\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"highlightname{${1:family}}{${2:given}}{${3:prefix}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"NewValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdown{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"addpar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-cv#c\": [\n      \"verbose-committee\",\n      \"verbose-education\",\n      \"verbose-teaching\",\n      \"verbose-lists\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-cv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-oa-doapi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetDOIAPIMail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDOIAPIMail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"SetDOIAPICacheExpiration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDOIAPICacheExpiration{${1:days}}\"\n      }\n    },\n    {\n      \"name\": \"IsOpenaccess\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsOpenaccess{${1:DOI}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetOpenaccessURLWrapped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetOpenaccessURLWrapped{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"OpenaccessURLisDOI\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OpenaccessURLisDOI{${1:DOI}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-oa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"biblatex-ext-oasymb-pict2e\",\n      \"if\": \"symbolpackage=pict2e\"\n    },\n    {\n      \"name\": \"biblatex-ext-oasymb-l3draw\",\n      \"if\": \"symbolpackage=l3draw\"\n    },\n    {\n      \"name\": \"biblatex-ext-oasymb-tikz\",\n      \"if\": \"symbolpackage=tikz\"\n    },\n    {\n      \"name\": \"biblatex-ext-oa-doiapi\",\n      \"if\": \"doapi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LoadOASymbolPackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadOASymbolPackage{${1:package%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadOASymbolPackage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadOASymbolPackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LoadOASymbolPackage[${2:symbol}]{${1:package%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadOASymbolPackage#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessFieldUrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOpenAccessFieldUrl{${1:field}}{${2:URL spec%URL}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessFieldUrl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareOpenAccessFieldUrl[${3:openness}]{${1:field}}{${2:URL spec%URL}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOpenAccessFieldUrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOpenAccessFieldUrl{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessEprintUrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOpenAccessEprintUrl{${1:eprint type}}{${2:URL spec%URL}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessEprintUrl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareOpenAccessEprintUrl[${3:openness}]{${1:eprint type}}{${2:URL spec%URL}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessEprintAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOpenAccessEprintAlias{${1:alias}}{${2:eprint type}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOpenAccessEprintUrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOpenAccessEprintUrl{${1:eprint type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOpenAccessUrlFieldPriority\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareOpenAccessUrlFieldPriority{${1:field1,field2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-ext-oa#c\": [\n      \"enable\",\n      \"symbolpackage=${1|false,pict2e,l3draw,tikz|}\",\n      \"symbol=${1|plos,oanet|}\",\n      \"doiapi\"\n    ],\n    \"\\\\LoadOASymbolPackage#c\": [\n      \"pict2e\",\n      \"l3draw\",\n      \"tikz\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"openaccess=${2|auto,doiapi,forcedoiapi,true,false,none,${1:open access field}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-ext-oa#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-oasymb-l3draw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"l3draw\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oasymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DefineOASymbol[${1:symbol%keyvals}]\",\n        \"keys\": [\n          \"\\\\DefineOASymbol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-ext-oasymb-l3draw#c\": [\n      \"symbol=${1|plos,oanet|}\"\n    ],\n    \"\\\\DefineOASymbol#c\": [\n      \"plos\",\n      \"oanet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-ext-oasymb-l3draw#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-oasymb-pict2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oasymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DefineOASymbol[${1:symbol%keyvals}]\",\n        \"keys\": [\n          \"\\\\DefineOASymbol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-ext-oasymb-pict2e#c\": [\n      \"symbol=${1|plos,oanet|}\"\n    ],\n    \"\\\\DefineOASymbol#c\": [\n      \"plos\",\n      \"oanet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-ext-oasymb-pict2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-oasymb-tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oasymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\"\n    },\n    {\n      \"name\": \"DefineOASymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DefineOASymbol[${1:symbol%keyvals}]\",\n        \"keys\": [\n          \"\\\\DefineOASymbol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-ext-oasymb-tikz#c\": [\n      \"symbol=${1|plos,oanet|}\"\n    ],\n    \"\\\\DefineOASymbol#c\": [\n      \"plos\",\n      \"oanet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-ext-oasymb-tikz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ext-tabular.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"printbibtabular\"\n    },\n    {\n      \"name\": \"printbibtabular\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibtabular[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibtabular\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defbibtabular\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"defbibtabular{${1:name}}{${2:begin code%definition}}{${3:end code%definition}}{${4:row code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"plain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plain{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"plainlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plainlang{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"anchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchor{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"anchorlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchorlang{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"driver\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"driver{${1:precode}}\"\n      }\n    },\n    {\n      \"name\": \"defbibtabulartwocolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"defbibtabulartwocolumn{${1:name}}{${2:begin code%definition}}{${3:end code%definition}}{${4:anchor code%definition}}{${5:driver code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\printbibtabular\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"check=${1:name}\",\n      \"resetnumbers=\",\n      \"omitnumbers\",\n      \"locallabelwidth\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biblatex-license.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"biblicenseintrotext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-license#c\": [\n      \"license=${1|short,full,off|}\",\n      \"url\",\n      \"link\",\n      \"introtext={${1:text}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-license#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-ms.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-ibid\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-numeric\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmnumeric\"\n    },\n    {\n      \"name\": \"ulem\",\n      \"if\": \"style=archaeologie\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=aefkw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=afwl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=amit\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=archa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-apa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=foe\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-halle\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-kreis-neuss\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=karl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=kunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=maja\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpk\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpkoeaw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=niedersachsen\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=nnu\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=offa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=volkskunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaak\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaes\"\n    },\n    {\n      \"name\": \"csquotes\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ay\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ms\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015mx\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-CCNU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-NWAFU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-SEU\"\n    },\n    {\n      \"name\": \"mfirstuc\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=german-legal-book\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=realauthor\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"style=socialscienceshuberlin\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"bibstyle=software\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-author-year\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-bachelor\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-numeric\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=unified\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alternate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alternate{${1:form}}{${2:BCP47tag}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[][]{}[][][]{}\",\n        \"snippet\": \"citefield[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}][${6:msform}][${7:mslang}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"citefield{${1:bibid}}[${3:format}][${4:msform}][${5:mslang}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[][]{}[][][]{}\",\n        \"snippet\": \"citelist[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}][${6:msform}][${7:mslang}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"citelist{${1:bibid}}[${3:format}][${4:msform}][${5:mslang}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[][]{}[][][]{}\",\n        \"snippet\": \"citename[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}][${6:msform}][${7:mslang}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"citename{${1:bibid}}[${3:format}][${4:msform}][${5:mslang}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"csfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"csfield[${2:msform}][${3:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"currentmsform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmsforms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmslangs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareExtradateContext[${2:entrytype1,entrytype2,...}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExtradateContext{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMsselect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMsselect{${1:langid}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"docsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"docsvfield[${2:msform}][${3:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"fieldhascomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"fieldhascomputableequivalent[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"fieldmsforms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fieldmsforms{${1:entryfield}}\"\n      }\n    },\n    {\n      \"name\": \"fieldmslangs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fieldmslangs{${1:entryfield}}\"\n      }\n    },\n    {\n      \"name\": \"forcsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"forcsvfield{${1:handler}}[${3:msform}][${4:mslang}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getfieldannotation[${1:msform}][${2:mslang}]\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"getfieldannotation[${1:msform}][${2:mslang}][${3:field}]\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"getfieldannotation[${1:msform}][${2:mslang}][${3:field}][${4:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getitemannotation[${1:msform}][${2:mslang}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"getitemannotation[${1:msform}][${2:mslang}][${3:field}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"getitemannotation[${1:msform}][${2:mslang}][${3:field}][${4:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"getitemannotation[${1:msform}][${2:mslang}][${3:field}][${4:annotation name}][${5:item}]\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]{}\",\n        \"snippet\": \"getpartannotation[${2:msform}][${3:mslang}][${4:field}][${5:annotation name}][${6:item}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"getpartannotation[${2:msform}][${3:mslang}][${4:field}][${5:annotation name}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"getpartannotation[${2:msform}][${3:mslang}][${4:field}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"getpartannotation[${2:msform}][${3:mslang}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:msform}][${4:mslang}][${5:field}][${6:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:msform}][${4:mslang}][${5:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:msform}][${4:mslang}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:msform}][${4:mslang}][${5:field}][${6:annotation name}][${7:item}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:msform}][${4:mslang}][${5:field}][${6:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:msform}][${4:mslang}][${5:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:msform}][${4:mslang}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:msform}][${5:mslang}][${6:field}][${7:annotation name}][${8:item}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:msform}][${5:mslang}][${6:field}][${7:annotation name}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:msform}][${5:mslang}][${6:field}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:msform}][${5:mslang}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryfieldundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryfieldundef{${1:entryfield}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:msform}][${5:mslang}][${6:field}][${7:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:msform}][${5:mslang}][${6:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:msform}][${5:mslang}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldbibstring[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iffieldequalcs[${5:msform}][${6:mslang}]{${1:field}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iffieldequals[${5:msform}][${6:mslang}]{${1:field}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iffieldequalstr[${5:msform}][${6:mslang}]{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldint[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldiscomputable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldiscomputable[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldnum[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldnums[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldpages[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldplusstringbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iffieldplusstringbibstring[${5:msform}][${6:mslang}]{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}{}\",\n        \"snippet\": \"iffieldsequal[${5:msform1}][${6:mslang1}]{${1:field1}}[${7:msform2}][${8:mslang2}]{${2:field2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldundef[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldxref[${4:msform}][${5:mslang}]{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:msform}][${5:mslang}][${6:field}][${7:annotation name}][${8:item}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:msform}][${5:mslang}][${6:field}][${7:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:msform}][${5:mslang}][${6:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:msform}][${5:mslang}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iflistequalcs[${5:msform}][${6:mslang}]{${1:literal list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"iflistequals[${5:msform}][${6:mslang}]{${1:literal list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}{}\",\n        \"snippet\": \"iflistsequal[${5:msform1}][${6:mslang1}]{${1:literal list1}}[${7:msform2}][${8:mslang2}]{${2:literal list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iflistundef[${4:msform}][${5:mslang}]{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iflistxref[${4:msform}][${5:mslang}]{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmsentryfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmsentryfield{${1:entryfield}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"ifnameequalcs[${5:msform}][${6:mslang}]{${1:name list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"ifnameequals[${5:msform}][${6:mslang}]{${1:name list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}{}\",\n        \"snippet\": \"ifnamesequal[${5:msform1}][${6:mslang1}]{${1:name list1}}[${7:msform2}][${8:mslang2}]{${2:name list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"ifnameundef[${4:msform}][${5:mslang}]{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"ifnamexref[${4:msform}][${5:mslang}]{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:msform}][${6:mslang}][${7:field}][${8:annotation name}][${9:item}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:msform}][${6:mslang}][${7:field}][${8:annotation name}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:msform}][${6:mslang}][${7:field}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:msform}][${6:mslang}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"indexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"indexfield[${2:format}][${3:msform}][${4:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"indexlist[${2:format}][${3:start-stop}][${4:msform}][${5:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"indexnames[${2:format}][${3:start-stop}][${4:msform}][${5:mslang}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"maplangtag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maplangtag{${1:BCP47tag}}{${2:langid}}\"\n      }\n    },\n    {\n      \"name\": \"mslang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mslang{${1:BCP47tag}}\"\n      }\n    },\n    {\n      \"name\": \"printfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"printfield[${2:format}][${3:msform}][${4:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"printlist[${2:format}][${3:start-stop}][${4:msform}][${5:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"printnames[${2:format}][${3:start-stop}][${4:msform}][${5:mslang}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"restorefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"restorefield[${3:msform}][${4:mslang}]{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"restorelist[${3:msform}][${4:mslang}]{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"restorename[${3:msform}][${4:mslang}]{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savefield[${3:msform}][${4:mslang}]{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"savefield[${3:msform}]{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savefieldcs[${3:msform}][${4:mslang}]{${1:field}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savelist[${3:msform}][${4:mslang}]{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"savelist[${3:msform}]{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelistcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savelistcs[${3:msform}][${4:mslang}]{${1:literal list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savename[${3:msform}][${4:mslang}]{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"savename[${3:msform}]{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savenamecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"savenamecs[${3:msform}][${4:mslang}]{${1:name list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"strfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"strfield[${2:msform}][${3:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"strfirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"strfirstlistitem[${2:msform}][${3:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"strlist[${2:msform}][${3:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"strname[${2:msform}][${3:mslang}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"thefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thefield[${2:msform}][${3:mslang}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"thefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thefirstlistitem[${2:msform}][${3:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thelist[${2:msform}][${3:mslang}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thename[${2:msform}][${3:mslang}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"uniquepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uniquepart{${1:namepart}}\"\n      }\n    },\n    {\n      \"name\": \"usefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"usefield{${1:command}}[${3:msform}][${4:mslang}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"usefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"usefirstlistitem{${1:command}}[${3:msform}][${4:mslang}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInit\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInit{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWord\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plaincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plaincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plaincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citelastname[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citelastname[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citelastname{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textapud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"textapud{${1:bibid}}[${3:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textapud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearorsh*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearorsh*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearorsh*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInitial{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkopcit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkopcit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkloccit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkloccit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieversion\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologiedate\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieoptions\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seperator\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitlepunct\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelimmultivolume\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yearnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesubseqesep\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesepx\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibdaterangesepx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelyeardelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddondelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volissuedelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exhibbibdaterangesep\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dononameyeardelim\",\n      \"if\": \"style=bath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifrelatedloop\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifrelatedloop{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnocomma\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnocomma{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkgroupeddigits\",\n      \"if\": \"style=chem-rsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgroupeddigits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddBiblatexClavis\",\n      \"if\": \"bibstyle=claves\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddBiblatexClavis{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"multiclavesseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisformat\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clavisformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"citeallclaves\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"clavesadddashinset\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"titleyeardelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkfootnotecite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfootnotecite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkparencite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkparencite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecheck\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibitem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelositem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=enc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"localsetchinesecode\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaystylesection\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaystylesection{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctdotlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenl\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenr\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execpuncten\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nwafubibfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttl\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttr\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execerjpuncten\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumberwithoutzero\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"erjpunctmarkcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erjpunctsemicoloncite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erjpunctparenlcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erjpunctparenrcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execerjpunctencite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdatehasyearonly\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatehasyearonly{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qverweis\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qverweis{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mkpostnote\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpostnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:(${3:postnote:prefix})postnote:stem}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=LNI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitledelim\",\n      \"if\": \"style=LNI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bbxinitsep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibyearwatershed\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameaddonpseud\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypemag\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeclassic\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebiblical\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeearlybook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearchive\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevolume\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypedatabase\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeblog\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypelistmessage\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebooklike\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypepublicdocument\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeanon\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeunsure\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortyperedundant\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypealternate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypejournal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeintro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeexcerpt\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenone\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypecorp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeper\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemanual\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypecoll\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypesecondarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytyperef\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeproc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypereport\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebooklet\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemisc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeaudio\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebookinbook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearticle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypelegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeletter\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeperformance\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionaddoriginal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionnoreprints\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiontransfromorig\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigtransas\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiondoubledate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noplace\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcijrep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudirective\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euregulation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudecision\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comdocsubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jurisechr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eutreaty\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseofcommons\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseoflords\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undoctype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extracitedelim\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstpublishedstr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalstarturl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalendurl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paratextformatted\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paratextformatted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"csusebibmacro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csusebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"forbbxrange\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangesplit\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rangesplit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"formatpostnote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatpostnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralsfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralsfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"numeraljustfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numeraljustfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetStandardIndices\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexAssociation{${1:category}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowIndexAssociation{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"legislationindex\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistcontains{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindexearly[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"DNI\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"reponly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reponly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reponly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footciteref[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footciteref[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteref{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"dopipedlist\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotesecond\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindex[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindex[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindexnum[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindexnum[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindexnum{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexonly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexonly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexonly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedtypepunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedtypepunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedtypepunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedtypepunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccite\",\n      \"if\": \"style=philosophy-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=phys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftbplnum\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftbplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printprinfo\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printprinfo{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"thenonplauthors\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditors\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthor\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditor\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthors\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditors\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therealliststop\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonplauthor\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditor\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeitem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeitem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeitem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shiftciteitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftciteitem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkrefdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrefdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftbplnum\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftbplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printprinfo\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printprinfo{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"thenonplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therealliststop\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realauthorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realeditorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifciteidemsbl\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidemsbl{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"namedashpunct\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexiconfinalnamedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volpostnotedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addskipentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addskipentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addincludeentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addincludeentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abbrevwidth\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmaxlength\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmaxlength{${1:length1}}{${2:length2}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharsec\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharsec{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharnum\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharnum{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentpublisher\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentlocation\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentorganization\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentinstitution\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepublishertotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorganizationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstitutiontotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotelast\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volsplitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volsplitpostnote{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citejournal{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeseries\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeseries{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeshorthand\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeshorthand{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bibentrycite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentrycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"biblistcite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblistcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNestableCiteCommand\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNestableCiteCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"iflinkparens\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflinkparens{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"idemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"idemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"idemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"idemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"idemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"idemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"idemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"idemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footidemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footidemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footidemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footidemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footidemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footidemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footidemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footidemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footidemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footidemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenauth{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenauth[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parenauth[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parenauths{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"parenauths(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"parenauths(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"parenauths(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"parenauths[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"parenauths[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"parenauths(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayyearrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayyearrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"anona\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anonb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crossreflist\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluga\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plugb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xtitle\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginLists\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEveryItem\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffieldstart\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldstart{${1:field}}{${2:sym}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullexpotherlanguage\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"theshorthands\",\n      \"if\": \"style=enc\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-ms#c\": [\n      \"backend=${1|bibtex,bibtex8,biber|}\",\n      \"style=${1|authoryear,authortitle,alphabetic,numeric,alphabetic-verb,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-tcomp,authortitle-terse,authortitle-ticomp,authoryear-comp,authoryear-ibid,authoryear-icomp,debug,draft,numeric-comp,numeric-verb,reading,verbose,verbose-ibid,verbose-inote,verbose-note,verbose-trad1,verbose-trad2,verbose-trad3|}\",\n      \"bibstyle=${1|authoryear,authortitle,numeric,alphabetic,verbose,reading,draft,debug|}\",\n      \"citestyle=${1|authoryear,authortitle,alphabetic,numeric,numeric-comp,numeric-verb,alphabetic-verb,authoryear-comp,authoryear-ibid,authoryear-icomp,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-terse,authortitle-tcomp,authortitle-ticomp,verbose,verbose-ibid,verbose-note,verbose-inote,verbose-trad1,verbose-trad2,verbose-trad3,reading,draft,debug|}\",\n      \"natbib\",\n      \"mcite\",\n      \"casechanger=${1|auto,latex2e,expl3|}\",\n      \"datamodel=${1:model}\",\n      \"sorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\",\n      \"sortcase\",\n      \"sortupper\",\n      \"sortlocale=\",\n      \"sortcites\",\n      \"sortsets\",\n      \"pluralothers\",\n      \"maxnames=${1:integer}\",\n      \"minnames=${1:integer}\",\n      \"maxbibnames=${1:integer}\",\n      \"minbibnames=${1:integer}\",\n      \"maxcitenames=${1:integer}\",\n      \"mincitenames=${1:integer}\",\n      \"maxsortnames=${1:integer}\",\n      \"minsortnames=${1:integer}\",\n      \"maxitems=${1:integer}\",\n      \"minitems=${1:integer}\",\n      \"autocite=${1|plain,inline,footnote,superscript|}\",\n      \"autopunct\",\n      \"language=${1|autobib,autocite,auto|}\",\n      \"clearlang\",\n      \"autolang=${1|none,hyphen,other,other*,langname|}\",\n      \"langhook=${1|captions,extras|}\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"locallabelwidth\",\n      \"notetype=${1|foot+end,footonly,endonly|}\",\n      \"hyperref=${1|true,false,auto,manual|}\",\n      \"backref\",\n      \"backrefstyle=${1|none,three,two,two+,three+,all+|}\",\n      \"backrefsetstyle=${1|=setonly,memonly,setormem,setandmem,memandset,setplusmem|}\",\n      \"backreffloats\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"loadfiles\",\n      \"refsection=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"refsegment=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"citereset=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"abbreviate\",\n      \"date=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"labeldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"eventdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"origdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"urldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"alldates=${1|year,short,long,terse,comp,iso|}\",\n      \"julian\",\n      \"gregorianstart=${1:YYYY-MM-DD}\",\n      \"datezeros\",\n      \"timezeros\",\n      \"timezones\",\n      \"seconds\",\n      \"dateabbrev\",\n      \"datecirca\",\n      \"dateuncertain\",\n      \"dateera=${1|astronomical,secular,christian|}\",\n      \"dateeraauto=${1:integer}\",\n      \"time=${1|12h,24h,24hcomp|}\",\n      \"labeltime=${1|12h,24h,24hcomp|}\",\n      \"eventtime=${1|12h,24h,24hcomp|}\",\n      \"origtime=${1|12h,24h,24hcomp|}\",\n      \"urltime=${1|12h,24h,24hcomp|}\",\n      \"alltimes=${1|12h,24h,24hcomp|}\",\n      \"dateusetime\",\n      \"labeldateusetime\",\n      \"eventdateusetime\",\n      \"origdateusetime\",\n      \"urldateusetime\",\n      \"alldatesusetime\",\n      \"defernumbers\",\n      \"punctfont\",\n      \"arxiv=${1|abs,ps,pdf,format|}\",\n      \"texencoding=\",\n      \"bibencoding=\",\n      \"safeinputenc\",\n      \"bibwarn\",\n      \"mincrossrefs=${1:integer}\",\n      \"minxrefs=${1:integer}\",\n      \"bibtexcaseprotection\",\n      \"isbn\",\n      \"url\",\n      \"doi\",\n      \"eprint\",\n      \"related\",\n      \"subentry\",\n      \"subentrycomp\",\n      \"dashed\",\n      \"mergedate=${1|false,minimum,basic,compact,maximum,true|}\",\n      \"ibidpage\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"strict\",\n      \"pagetracker=${1|true,false,page,spread|}\",\n      \"citecounter=${1|true,false,context|}\",\n      \"citetracker=${1|true,false,context,strict,constrict|}\",\n      \"ibidtracker=${1|true,false,context,strict,constrict|}\",\n      \"opcittracker=${1|true,false,context,strict,constrict|}\",\n      \"loccittracker=${1|true,false,context,strict,constrict|}\",\n      \"idemtracker=${1|true,false,context,strict,constrict|}\",\n      \"trackfloats\",\n      \"parentracker\",\n      \"maxparens=${1:integer}\",\n      \"giveninits\",\n      \"terseinits\",\n      \"labelalpha\",\n      \"maxalphanames=${1:integer}\",\n      \"minalphanames=${1:integer}\",\n      \"labelnumber\",\n      \"noroman\",\n      \"labeltitle\",\n      \"labeltitleyear\",\n      \"labeldateparts\",\n      \"singletitle\",\n      \"uniquetitle\",\n      \"uniquebaretitle\",\n      \"uniquework\",\n      \"uniqueprimaryauthor\",\n      \"uniquename=${1|true,false,init,full,allinit,allfull,mininit,minfull|}\",\n      \"uniquelist=${1|true,false,minyear|}\",\n      \"nohashothers\",\n      \"nosortothers\",\n      \"useauthor\",\n      \"useeditor\",\n      \"usetranslator\",\n      \"useprefix\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"skipbib\",\n      \"skipbiblist\",\n      \"skiplab\",\n      \"dataonly\"\n    ],\n    \"\\\\usepackage/biblatex-ms#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"autofieldlang=${1|none,hyphen,other,other*,langname|}\",\n      \"autofieldlangstrings\",\n      \"dynamiclabel\",\n      \"msform=${1:form}\",\n      \"mslang=${1:BCP47tag}\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"comp\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"bibancient\",\n      \"bibcorpora\",\n      \"lstabbrv\",\n      \"lstlocations\",\n      \"lstpublishers\",\n      \"bibfullname\",\n      \"scshape\",\n      \"edby\",\n      \"publisher\",\n      \"translation\",\n      \"yearseries\",\n      \"width=\",\n      \"counter\",\n      \"jstor\",\n      \"arachne\",\n      \"zenon\",\n      \"urn\",\n      \"biblabel=${1|plain,bold,brackets,parens|}\",\n      \"inreferencesasfullcite\",\n      \"eventdatelanguage\",\n      \"citeauthorformat=${1|initials,full,family,firstfulltheninitials,firstfullthenfamily|}\",\n      \"seenote\",\n      \"yearinparens\",\n      \"nametracker\",\n      \"apamaxprtauth=${1:number}\",\n      \"width=\",\n      \"publisher\",\n      \"jstor\",\n      \"urn\",\n      \"arthist\",\n      \"enddot\",\n      \"pagesfull\",\n      \"firstcitefull\",\n      \"allnamesfamilygiven\",\n      \"namelinked\",\n      \"nonodate\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"annotatedBibliography\",\n      \"postnote=${1|afterparen,inparen|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"CCNUpunctcn\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"erjpunctcn\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"erjcitepunctcn\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"edsuper\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"citedbytitle\",\n      \"howcited\",\n      \"bearbeiterin\",\n      \"fshowcited\",\n      \"citedbypage\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"acronym\",\n      \"series=${1|short,full,no|}\",\n      \"conference=${1|long,full,acronym|}\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"articletitle\",\n      \"intitle\",\n      \"articledoi\",\n      \"articlein\",\n      \"printlang\",\n      \"caseshorthands\",\n      \"ecli=${1|yes,no,only|}\",\n      \"ibidstyle=${1|lc,uc|}\",\n      \"shortindex\",\n      \"eutreaty\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|superscript,brackets|}\",\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"boldyear\",\n      \"pubstateextra\",\n      \"marginyear\",\n      \"plnumbered=${1|true,false,reset|}\",\n      \"reversenumbering\",\n      \"plauthorfirstinit\",\n      \"prinfo\",\n      \"linktitleall\",\n      \"linktitledoi\",\n      \"linktitleurl\",\n      \"linktitleisbn\",\n      \"linktitleissn\",\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"boldyear\",\n      \"pubstateextra\",\n      \"marginyear\",\n      \"plnumbered=${1|true,false,reset|}\",\n      \"reversenumbering\",\n      \"plauthorfirstinit\",\n      \"prinfo\",\n      \"linktitleall\",\n      \"linktitledoi\",\n      \"linktitleurl\",\n      \"linktitleisbn\",\n      \"linktitleissn\",\n      \"accessdate\",\n      \"citepages=${1|sbl,permit,omit,separate|}\",\n      \"eprintdate=${1|year,short,long,terse,comp,iso8601|}\",\n      \"fullbibrefs\",\n      \"idemtracker=${1|true,false,context,strict,constrict,citation,sbl|}\",\n      \"sblfootnotes\",\n      \"shorthand=${1|true,false,short,intro|}\",\n      \"useshorttitle\",\n      \"usefullcite\",\n      \"usevolume\",\n      \"useseries\",\n      \"articletitle\",\n      \"colornames\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"pubstate\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"issueandeditor\",\n      \"compactdois\",\n      \"issueeditor\",\n      \"annotate\",\n      \"collsonly\",\n      \"ibid\",\n      \"issn\",\n      \"library\",\n      \"noetal\",\n      \"nolos\",\n      \"nopages\",\n      \"reflist\",\n      \"short\",\n      \"shortafter\",\n      \"shortfirst\",\n      \"shortlinks\",\n      \"swapvol\"\n    ],\n    \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\": [\n      \"msform=${1:form}\",\n      \"mslang=${1:BCP47tag}\"\n    ],\n    \"\\\\step\": [\n      \"fieldsourcemsform=${1:msform}\",\n      \"fieldsourcemslang=${1:mslang}\",\n      \"fieldtargetmsform=${1:msform}\",\n      \"fieldtargetmslang=${1:mslang}\"\n    ],\n    \"\\\\field\": [\n      \"form=${1:string}\",\n      \"lang=${1:BCP47tag}\"\n    ],\n    \"\\\\usepackage/biblatex-ms#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\": [\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"yearleft\",\n      \"restoreclassic\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"iviemph\",\n      \"commacit\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-ms#c\",\n    \"\\\\usepackage/biblatex-ms#c,\\\\ExecuteBibliographyOptions#c\",\n    \"\\\\usepackage/biblatex-ms#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-multiple-dm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-multiple-dm#c\": [\n      \"tools={${1:datamodel1,datamodel2,...}}\",\n      \"bibstyle=${1:style}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-multiple-dm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-readbbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-readbbl#c\": [\n      \"bblfile=${1:.bbl file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-readbbl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex-shortfields.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"printbibshortfields\"\n    },\n    {\n      \"name\": \"printbibshortfields\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibshortfields[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibshortfields\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shortfieldswidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\printbibshortfields\": [\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"resetnumbers=\",\n      \"omitnumbers\",\n      \"locallabelwidth\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biblatex-source-division.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex-source-division#c\": [\n      \"after=${1:entry field}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex-source-division#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"logreq\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-ibid\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=abnt-numeric\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=acmauthoryear\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"style=acmnumeric\"\n    },\n    {\n      \"name\": \"ulem\",\n      \"if\": \"style=archaeologie\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=aefkw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=afwl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=amit\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=archa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=dguf-apa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=eaz-alt\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=foe\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-halle\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=jb-kreis-neuss\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=karl\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=kunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=maja\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpk\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=mpkoeaw\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=niedersachsen\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=nnu\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=offa\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-inline-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-numeric-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgk-verbose-old\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=rgzm-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-inline\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-numeric\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=ufg-muenster-verbose\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=volkskunde\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaak\"\n    },\n    {\n      \"name\": \"biblatex-archaeology\",\n      \"if\": \"style=zaes\"\n    },\n    {\n      \"name\": \"csquotes\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=arthistory-bonn\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=bath\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ay\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015ms\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015mx\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-CCNU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-NWAFU\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-SEU\"\n    },\n    {\n      \"name\": \"mfirstuc\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=chinese-erj\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=german-legal-book\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxalph\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxyear\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnotes\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"style=oxnum\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"bibstyle=realauthor\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"style=socialscienceshuberlin\"\n    },\n    {\n      \"name\": \"xurl\",\n      \"if\": \"bibstyle=software\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-author-year\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-bachelor\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=thuthesis-numeric\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"style=unified\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"biblistname\"\n    },\n    {\n      \"name\": \"BiblatexManualHyperrefOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexManualHyperrefOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteBibliographyOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteBibliographyOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExecuteBibliographyOptions\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExecuteBibliographyOptions[${2:entrytype list}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldannotation{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"iffieldannotation[${4:field}][${5:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifitemannotation{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}][${5:annotation name}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"ifitemannotation[${4:field}][${5:annotation name}][${6:item}]{${1:annotation}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifpartannotation{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}][${6:annotation name}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}\",\n        \"snippet\": \"ifpartannotation[${5:field}][${6:annotation name}][${7:item}]{${1:part}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateannotation{${1:datetype}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ifdateannotation[${5:annotation name}]{${1:datetype}}{${2:annotation}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hasfieldannotation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasfieldannotation[${3:field}][${4:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hasitemannotation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}][${4:annotation name}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"hasitemannotation[${3:field}][${4:annotation name}][${5:item}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"haspartannotation{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}][${5:annotation name}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"haspartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"haspartannotation[${4:field}][${5:annotation name}][${6:item}]{${1:part}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hasdateannotation{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hasdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"hasdateannotation[${4:annotation name}]{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getfieldannotation[${1:field}]\"\n      }\n    },\n    {\n      \"name\": \"getfieldannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getfieldannotation[${1:field}][${2:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getitemannotation[${1:field}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"getitemannotation[${1:field}][${2:annotation name}]\"\n      }\n    },\n    {\n      \"name\": \"getitemannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"getitemannotation[${1:field}][${2:annotation name}][${3:item}]\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpartannotation{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getpartannotation[${2:field}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"getpartannotation[${2:field}][${3:annotation name}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getpartannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"getpartannotation[${2:field}][${3:annotation name}][${4:item}]{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"getdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdateannotation{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"getdateannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getdateannotation[${2:annotation name}]{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"addbibresource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbibresource{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addbibresource\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addbibresource[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addglobalbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addglobalbib{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addglobalbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addglobalbib[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addsectionbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsectionbib{${1:bibliographic resource}}\"\n      }\n    },\n    {\n      \"name\": \"addsectionbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsectionbib[${2:options%keyvals}]{${1:bibliographic resource}}\",\n        \"keys\": [\n          \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbibliography\"\n    },\n    {\n      \"name\": \"printbibliography\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibliography[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibliography\",\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbysection\"\n    },\n    {\n      \"name\": \"bibbysection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbysection[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbysegment\"\n    },\n    {\n      \"name\": \"bibbysegment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbysegment[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibbycategory\"\n    },\n    {\n      \"name\": \"bibbycategory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibbycategory[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbibheading\"\n    },\n    {\n      \"name\": \"printbibheading\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibheading[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibheading\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePrintbibliographyDefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrintbibliographyDefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclarePrintbibliographyDefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbiblist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbiblist{${1:biblist}}\"\n      }\n    },\n    {\n      \"name\": \"printbiblist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printbiblist[${2:options%keyvals}]{${1:biblist}}\",\n        \"keys\": [\n          \"\\\\printbiblist,\\\\printshorthands\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printshorthands\"\n    },\n    {\n      \"name\": \"printshorthands\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printshorthands[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbiblist,\\\\printshorthands\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newrefsection\"\n    },\n    {\n      \"name\": \"newrefsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newrefsection[${1:bib files}]\"\n      }\n    },\n    {\n      \"name\": \"endrefsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newrefsegment\"\n    },\n    {\n      \"name\": \"endrefsegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefsegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBibliographyCategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareBibliographyCategory{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"addtocategory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocategory{${1:category}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"defbibenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"defbibenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}{${4:itemcode}}\"\n      }\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibheading{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defbibheading{${1:name}}[${3:title%text}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defbibnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibnote{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"defbibfilter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibfilter{${1:name}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"defbibcheck\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibcheck{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"skipentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"segment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"segment{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"subtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtype{${1:subtype}}\"\n      }\n    },\n    {\n      \"name\": \"keyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"category\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"category{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRefcontext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRefcontext{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newrefcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newrefcontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newrefcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newrefcontext[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localrefcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localrefcontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"localrefcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"localrefcontext[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endrefcontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assignrefcontextkeyws\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextkeyws[${2:options%keyvals}]{${1:keyword1,keyword2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextkeyws*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextkeyws*[${2:options%keyvals}]{${1:keyword1,keyword2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextcats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextcats[${2:options%keyvals}]{${1:category1,category2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextcats*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextcats*[${2:options%keyvals}]{${1:category1,category2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextentries[${2:options%keyvals}]{${1:entrykey1,entrykey2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignrefcontextentries*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assignrefcontextentries*[${2:options%keyvals}]{${1:entrykey1,entrykey2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\",\n          \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GenRefcontextData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GenRefcontextData{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defbibentryset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibentryset{${1:bibid}}{${2:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Cite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Parencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Parencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Parencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Textcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Textcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Textcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"smartcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smartcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Smartcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Smartcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Smartcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"cites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"cites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"cites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"cites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"cites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Cites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Cites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Cites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Cites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Cites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Cites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parencites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"parencites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"parencites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"parencites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"parencites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"parencites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"parencites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Parencites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Parencites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Parencites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Parencites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Parencites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Parencites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Parencites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Parencites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footcitetexts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footcitetexts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footcitetexts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footcitetexts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footcitetexts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footcitetexts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetexts\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footcitetexts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smartcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"smartcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"smartcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"smartcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"smartcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"smartcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"smartcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"smartcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Smartcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Smartcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Smartcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Smartcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Smartcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Smartcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Smartcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Smartcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"textcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"textcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"textcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"textcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Textcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Textcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Textcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Textcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Textcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Textcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Textcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Textcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"supercites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"supercites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"supercites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"supercites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"supercites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"supercites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"supercites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"supercites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"autocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Autocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Autocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"autocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"autocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Autocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Autocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autocites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"autocites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"autocites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"autocites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"autocites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"autocites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"autocites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"autocites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Autocites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Autocites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Autocites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Autocites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Autocites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Autocites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Autocites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Autocites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitle*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citetitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citetitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citetitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citetitle*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citetitle*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citetitle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citetitle*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyear[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyear*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyear*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyear*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citedate[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citedate[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citedate{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citedate*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citedate*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citedate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citedate*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeurl[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeurl[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeurl{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parentext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parentext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"brackettext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brackettext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"volcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"volcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"volcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Volcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Volcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Volcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Volcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"volcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"volcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"volcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"volcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"volcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"volcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"volcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Volcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Volcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Volcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Volcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Volcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Volcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Volcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Volcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"pvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"pvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Pvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Pvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Pvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"pvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"pvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"pvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"pvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Pvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Pvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Pvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Pvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Pvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Pvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Pvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"fvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Fvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Fvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"fvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"fvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"fvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"fvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"fvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"fvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Fvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Fvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Fvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Fvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Fvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Fvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Fvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Fvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ftvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ftvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ftvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"ftvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ftvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Ftvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Ftvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Ftvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ftvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"ftvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"ftvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"ftvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"ftvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"ftvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ftvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"ftvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ftvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Ftvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Ftvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Ftvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Ftvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Ftvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ftvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Ftvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"svolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"svolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"svolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Svolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Svolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Svolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Svolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"svolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"svolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"svolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"svolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"svolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"svolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"svolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"svolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Svolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Svolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Svolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Svolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Svolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Svolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Svolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Svolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"tvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tvolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Tvolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Tvolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Tvolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"tvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"tvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"tvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"tvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"tvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"tvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"tvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Tvolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Tvolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Tvolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Tvolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Tvolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Tvolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Tvolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Tvolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"avolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"avolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"avolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"avolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Avolcite{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Avolcite[${3:prenote}]{${1:volume}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Avolcite{${1:volume}}[${3:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Avolcite[${3:prenote}]{${1:volume}}[${4:pages}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"avolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"avolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"avolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"avolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"avolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"avolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"avolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Avolcites{${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"Avolcites(${5:pre}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"Avolcites(${5:pre})(${6:post}){${1:volume}}{${2:bibid}}{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}{}[]{}{}\",\n        \"snippet\": \"Avolcites(${7:pre})(${8:post})[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"Avolcites[${5:pre}]{${1:volume}}{${2:bibid}}[${6:pre}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}[][]{}{}\",\n        \"snippet\": \"Avolcites[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avolcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}{}[][]{}{}\",\n        \"snippet\": \"Avolcites(${9:pre})(${10:post})[${5:pre}][${6:post}]{${1:volume}}{${2:bibid}}[${7:pre}][${8:post}]{${3:volume}}{${4:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"notecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"notecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Notecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Notecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Notecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Notecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Pnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Pnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fnotecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnotecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fnotecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnotecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citename[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citename[${3:postnote}]{${1:bibid}}[${4:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citename[${3:postnote}]{${1:bibid}}{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citename{${1:bibid}}[${3:format}]{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citename{${1:bibid}}{${2:name list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citelist[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citelist[${3:postnote}]{${1:bibid}}[${4:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citelist[${3:postnote}]{${1:bibid}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citelist{${1:bibid}}[${3:format}]{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citelist{${1:bibid}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[][]{}[]{}\",\n        \"snippet\": \"citefield[${3:prenote}][${4:postnote}]{${1:bibid}}[${5:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citefield[${3:postnote}]{${1:bibid}}[${4:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citefield[${3:postnote}]{${1:bibid}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"citefield{${1:bibid}}[${3:format}]{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citefield{${1:bibid}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"citereset\"\n    },\n    {\n      \"name\": \"citereset*\"\n    },\n    {\n      \"name\": \"mancite\"\n    },\n    {\n      \"name\": \"pno\"\n    },\n    {\n      \"name\": \"ppno\"\n    },\n    {\n      \"name\": \"nopp\"\n    },\n    {\n      \"name\": \"psq\"\n    },\n    {\n      \"name\": \"psqq\"\n    },\n    {\n      \"name\": \"sqspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RN{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RNfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rn{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Rnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DefineBibliographyStrings\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineBibliographyStrings{${1:language}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"DefineBibliographyExtras\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineBibliographyExtras{${1:language}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UndefineBibliographyExtras\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndefineBibliographyExtras{${1:language}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DefineHyphenationExceptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineHyphenationExceptions{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"NewBibliographyString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewBibliographyString{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryseen{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryinbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryinbib{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrycategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrycategory{${1:entrykey}}{${2:category}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrykeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrykeyword{${1:entrykey}}{${2:keyword}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bibsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citesetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newblockpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newunitpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finentrypunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrysetpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedelimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinithyphendelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexnamedelimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinitperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinitdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindexinithyphendelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revsdnamepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelnamepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intitlepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagerefpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibeidpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multinamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revsdnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andothersdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multilistdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finallistdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andmoredelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiciterangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitesubentrydelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicitesubentryrangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"superciterangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitesubentrydelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supercitesubentryrangedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nametitledelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameyeardelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namelabeldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonameyeardelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translatortypedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelalphaothers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortalphaothers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volcitedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkvolcitenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkvolcitenote{${1:volume}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"prenotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extpostnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiprenotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multipostnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnamefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamefamily{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnamegiven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamegiven{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnameprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnameprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnamesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamesuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibcompletenamefamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletenamefamilygiven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletenamegivenfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibcompletename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircadelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateeradelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateuncertainprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddateuncertainprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircaprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddatecircaprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecircaprintiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enddatecircaprintiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateeraprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateeraprint{${1:yearfield}}\"\n      }\n    },\n    {\n      \"name\": \"dateeraprintpre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relatedpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareDelimFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDelimFormat[${3:context}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimFormat*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDelimFormat*[${3:context}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimAlias{${1:alias}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareDelimAlias[${3:alias context}]{${1:alias}}[${4:delim context}]{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimAlias*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareDelimAlias*[${3:alias context}]{${1:alias}}[${4:delim context}]{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"printdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdelim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printdelim[${2:context}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"delimcontext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"delimcontext{${1:context}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimcontextAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimcontextAlias{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareDelimcontextAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareDelimcontextAlias{${1:alias}}\"\n      }\n    },\n    {\n      \"name\": \"bibrangedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrangessep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatendsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdatelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdatelong{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdateshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateshort{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibtimezone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibtimezone{${1:timezone}}\"\n      }\n    },\n    {\n      \"name\": \"bibdateuncertain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdateeraprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdateeraendprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibutctimezone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtzminsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatetimesep \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalandcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalandsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordinal{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibmascord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibmascord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfemord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfemord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibneutord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibneutord{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibordedition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordedition{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibordseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibordseries{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"bibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnamesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibinitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabbrvpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehighnamepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelownamepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlbigbreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlbreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlnumpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburlucpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebiburllcpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlbigskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlnumskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlucskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburllcskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noligature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnohyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnohyphenation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknumalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknumalph{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibacro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"autocap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autocap{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"thesmartand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forceY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceY{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forceDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceDE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibabstractprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibannotationprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifkomabibtotoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifkomabibtotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifkomabibtotocnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifkomabibtotocnumbered{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmemoirbibintoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmemoirbibintoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"RequireBibliographyStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireBibliographyStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"InitializeBibliographyStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitializeBibliographyStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyDriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyDriver{${1:entrytype}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyAlias{${1:alias}}{${2:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibliographyOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareBibliographyOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareBibliographyOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibliographyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareBibliographyOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTypeOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTypeOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareTypeOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTypeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareTypeOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareEntryOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareEntryOption[${3:datatype}]{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareEntryOption{${1:key%plain}}[${3:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareEntryOption[${3:datatype}]{${1:key%plain}}[${4:value}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}[${4:datatype}]{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}{${2:key%plain}}[${4:value}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblatexOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"DeclareBiblatexOption{${1:scope}}[${4:datatype}]{${2:key%plain}}[${5:value}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"RequireCitationStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireCitationStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"InitializeCitationStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitializeCitationStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"OnManualCitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OnManualCitation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand{${1:cmd}}{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand{${1:cmd}}[${6:wrapper}]{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand*{${1:cmd}}{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCiteCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareCiteCommand*{${1:cmd}}[${6:wrapper}]{${2:precode}}{${3:loopcode}}{${4:sepcode}}{${5:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMultiCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareMultiCiteCommand{${1:cmd}}{${2:cite}}{${3:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMultiCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareMultiCiteCommand{${1:cmd}}[${4:wrapper}]{${2:cite}}{${3:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareAutoCiteCommand{${1:name}}{${2:cite}}{${3:multicite}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareAutoCiteCommand{${1:name}}[${4:position%keyvals}]{${2:cite}}{${3:multicite}}\",\n        \"keys\": [\n          \"\\\\DeclareAutoCiteCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareCitePunctuationPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCitePunctuationPosition{${1:cmd}}{${2:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareCitePunctuationPosition\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeprecateField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateField{${1:field}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateList{${1:list}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateName{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateFieldWithReplacement{${1:field}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListWithReplacement{${1:list}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameWithReplacement{${1:name}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"printfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"printfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printfield[${2:format}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printlist[${2:format}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"printlist[${2:format}][${3:start-stop}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printnames{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printnames[${2:format}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"printnames[${2:format}][${3:start-stop}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"printtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtext[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"printfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printfile[${2:format}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdateextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeldateextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlabeltime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printorigdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printeventdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printurldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printorigtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printeventtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printurltime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"indexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexfield[${2:format}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexlist[${2:format}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexlist[${2:format}][${3:start-stop}]{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexnames{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexnames[${2:format}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"indexnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexnames[${2:format}][${3:start-stop}]{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"entrydata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entrydata{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"entrydata*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entrydata*{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"entryset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entryset{${1:precode}}{${2:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldInputHandler{${1:field}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListInputHandler{${1:list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameInputHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameInputHandler{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareFieldFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareListFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareNameFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"namepartprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartprefixi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartfamilyi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartsuffixi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartgiven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namepartgiveni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareListWrapperFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareListWrapperFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListWrapperFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareNameWrapperFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameWrapperFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexFieldFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexFieldFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexListFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexListFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareIndexNameFormat[${3:entrytype, ...}]{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameFormat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexNameFormat*{${1:format}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareFieldAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFieldAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareListAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareNameAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareListWrapperAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListWrapperAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareNameWrapperAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNameWrapperAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNameWrapperAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexFieldAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexFieldAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexFieldAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexListAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexListAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexListAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeclareIndexNameAlias[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareIndexNameAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexNameAlias{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateFieldFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateFieldFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateListFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateNameFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateListWrapperFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateListWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateListWrapperFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateNameWrapperFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateNameWrapperFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateNameWrapperFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexFieldFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexFieldFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexFieldFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexListFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexListFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexListFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DeprecateIndexNameFormatWithReplacement[${3:entry type}]{${1:alias}}[${4:format entry type}]{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateIndexNameFormatWithReplacement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateIndexNameFormatWithReplacement{${1:alias}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatafieldSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDatafieldSet{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"member\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"member\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"member[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\member\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"maps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maps{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"maps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maps[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\maps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"map\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"map{${1:restrictions,steps}}\"\n      }\n    },\n    {\n      \"name\": \"map\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"map[${2:options%keyvals}]{${1:restrictions,steps}}\",\n        \"keys\": [\n          \"\\\\map\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"regexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regexp{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"perdatasource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perdatasource{${1:datasource}}\"\n      }\n    },\n    {\n      \"name\": \"pertype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pertype{${1:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"pernottype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pernottype{${1:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"step\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"step[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\step\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareStyleSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareStyleSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDriverSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDriverSourcemap{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDriverSourcemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDriverSourcemap[${2:datatype=driver}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDatamodelConstant{${1:name}}{${2:constantdef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareDatamodelConstant[${3:options%keyvals}]{${1:name}}{${2:constantdef}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelConstant\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntrytypes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelEntrytypes{${1:entrytypes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntrytypes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntrytypes[${2:options%keyvals}]{${1:entrytypes}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelEntrytypes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelFields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelFields{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelFields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelFields[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\DeclareDatamodelFields\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields[${2:entrytypes}]{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelConstraints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDatamodelConstraints{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDatamodelEntryfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDatamodelEntryfields[${2:entrytypes}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"constraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraint{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"constraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"constraint[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\constraint\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constraintfieldsor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfieldsor{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"constraintfieldsxor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfieldsxor{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"antecedent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antecedent{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"antecedent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"antecedent[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\antecedent,\\\\consequent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"consequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"consequent{${1:fields}}\"\n      }\n    },\n    {\n      \"name\": \"consequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"consequent[${2:options%keyvals}]{${1:fields}}\",\n        \"keys\": [\n          \"\\\\antecedent,\\\\consequent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constraintfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constraintfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"ResetDatamodelEntrytypes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelEntryfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDatamodelConstraints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareLabelalphaTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelalphaTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelalphaTemplate[${2:entrytypes}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"labelelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelelement{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"field[${2:options%keyvals}]{${1:field}}\",\n        \"keys\": [\n          \"\\\\field\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"literal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literal{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaNameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelalphaNameTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelalphaNameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelalphaNameTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"namepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namepart{${1:namepart}}\"\n      }\n    },\n    {\n      \"name\": \"namepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namepart[${2:options%keyvals}]{${1:namepart}}\",\n        \"keys\": [\n          \"\\\\namepart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNolabel{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolabel{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNolabelwidthcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNolabelwidthcount{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nolabelwidthcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolabelwidthcount{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortingTemplate{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSortingTemplate[${3:options%keyvals}]{${1:name}}{${2:specification}}\",\n        \"keys\": [\n          \"\\\\DeclareSortingTemplate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sort{${1:elements}}\"\n      }\n    },\n    {\n      \"name\": \"sort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sort[${2:options%keyvals}]{${1:elements}}\",\n        \"keys\": [\n          \"\\\\sort\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intciteorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareSortingNamekeyTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSortingNamekeyTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortingNamekeyTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSortingNamekeyTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"visibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visibility{${1:visibility scope}}\"\n      }\n    },\n    {\n      \"name\": \"keypart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keypart{${1:part}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortExclusion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortExclusion{${1:entrytype list}}{${2:field list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortInclusion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSortInclusion{${1:entrytype list}}{${2:field list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePresort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePresort{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePresort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclarePresort[${2:entrytype list}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortTranslit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSortTranslit{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSortTranslit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSortTranslit[${2:entrytype}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"translit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"translit{${1:field}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"translit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"translit[${4:lang ids}]{${1:field}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBiblistFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBiblistFilter{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filter{${1:filter}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"filter[${2:filterspec%keyvals}]{${1:filter}}\",\n        \"keys\": [\n          \"\\\\filter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"filteror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"filteror{${1:type}}{${2:filters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNoinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNoinit{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"noinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noinit{${1:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNosort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNosort{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nosort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nosort{${1:field}}{${2:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNonamestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNonamestring{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"nonamestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonamestring{${1:field}}{${2:regexp}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabelname{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabelname[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabeldate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeldate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabeldate[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExtradate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"scope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scope{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExtradateContext{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExtradateContext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareExtradateContext[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLabeltitle{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLabeltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLabeltitle[${2:entrytype list}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultInheritance{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefaultInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefaultInheritance[${2:exceptions}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"except\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"except{${1:source}}{${2:target}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultInheritance,\\\\except\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareDataInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDataInheritance{${1:source}}{${2:target}}{${3:rules}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDataInheritance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareDataInheritance[${4:options%keyvals}]{${1:source}}{${2:target}}{${3:rules}}\",\n        \"keys\": [\n          \"\\\\DeclareDataInheritance\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inherit{${1:source}}{${2:target}}\"\n      }\n    },\n    {\n      \"name\": \"inherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inherit[${3:options%keyvals}]{${1:source}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\inherit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noinherit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noinherit{${1:source}}\"\n      }\n    },\n    {\n      \"name\": \"ResetDataInheritance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thefield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"strfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"csfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"usefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usefield{${1:command}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"thelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thelist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thefirstlistitem{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"strfirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strfirstlistitem{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"usefirstlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usefirstlistitem{${1:cmd}}{${2:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"thename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thename{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"strname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strname{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"savefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefield{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefield*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefield*{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelist{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savelist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelist*{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savename{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savename*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savename*{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefieldcs{${1:field}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefieldcs*{${1:field}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savelistcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelistcs{${1:literal list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savelistcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savelistcs*{${1:literal list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savenamecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savenamecs{${1:name list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"savenamecs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savenamecs*{${1:name list}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"restorefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorefield{${1:field}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorelist{${1:literal list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restorename{${1:name list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"clearfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"clearlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearlist{${1:literal list}}\"\n      }\n    },\n    {\n      \"name\": \"clearname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearname{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatejulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatejulian{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddatejulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddatejulian{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateera\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdateera{${1:era}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateera\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifenddateera{${1:era}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatecirca\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatecirca{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddatecirca\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddatecirca{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateuncertain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdateuncertain{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateuncertain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddateuncertain{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdateunknown{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifenddateunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifenddateunknown{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateisdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisdate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatehasyearonlyprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdatehasyearonlyprecision{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatehastime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdatehastime{${1:datetype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateshavedifferentprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateshavedifferentprecision{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdateyearsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdateyearsequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdatesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdatesequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdaterangesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdaterangesequal{${1:datetype1}}{${2:datetype2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcaselang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcaselang{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcaselang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ifcaselang[${3:language}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsortingnamekeytemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifsortingnamekeytemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquenametemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuniquenametemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabelalphanametemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflabelalphanametemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamehashtemplatename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamehashtemplatename{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldundef{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistundef{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnameundef{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldsequal{${1:field1}}{${2:field2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistsequal{${1:literal list1}}{${2:literal list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnamesequal{${1:name list1}}{${2:name list2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequals{${1:field}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistequals{${1:literal list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnameequals{${1:name list}}{${2:cmd}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequalcs{${1:field}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistequalcs{${1:literal list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameequalcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnameequalcs{${1:name list}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldequalstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldequalstr{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldxref{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistxref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistxref{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamexref{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentfield{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentlist{${1:literal list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentname{${1:name list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseprefix{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseauthor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseeditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuseeditor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifusetranslator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifusetranslator{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcrossrefsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcrossrefsource{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifxrefsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifxrefsource{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsingletitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsingletitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnocite{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquetitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquebaretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquebaretitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquework\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquework{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniqueprimaryauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniqueprimaryauthor{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifandothers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifandothers{${1:list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmorenames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmorenames{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmoreitems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifmoreitems{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterseinits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterseinits{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrytype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentrytype{${1:type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkeyword{${1:keyword}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrykeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrykeyword{${1:entrykey}}{${2:keyword}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcategory{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentrycategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifentrycategory{${1:entrykey}}{${2:category}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteseen{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryseen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryseen{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryinbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryinbib{${1:entrykey}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffirstcitekey{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflastcitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflastcitekey{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteibid{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteidem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidem{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifopcit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifopcit{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifloccit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifloccit{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstonpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffirstonpage{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsamepage{${1:instance1}}{${2:instance2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifinteger{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"hascomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hascomputableequivalent{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifiscomputable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifiscomputable{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"getcomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcomputableequivalent{${1:string}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeral{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumerals{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpages{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldint{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"fieldhascomputableequivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fieldhascomputableequivalent{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldiscomputable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldiscomputable{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldnum{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldnums{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldpages{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibstring{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibxstring{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldbibstring{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldplusstringbibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldplusstringbibstring{${1:field}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdriver{${1:entrytype}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcapital\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcapital{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcitation{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifvolcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifvolcite{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbibliography{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnatbibmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnatbibmode{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifciteindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteindex{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbibindex{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffootnote{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxcitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesavedcitecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuniquename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuniquelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparenlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxparens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifboolexpr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpr{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifthenelse{${1:tests}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newbibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newbibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newbibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewbibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewbibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibmacro{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providebibmacro{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providebibmacro{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providebibmacro*{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"letbibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letbibmacro{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"letbibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letbibmacro*{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"usebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usebibmacro*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebibmacro*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"restorecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"restorebibmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savefieldformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savefieldformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorefieldformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorefieldformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorefieldformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savelistformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savelistformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorelistformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorelistformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savenameformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savenameformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorenameformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorenameformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savelistwrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savelistwrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorelistwrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorelistwrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorelistwrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savenamewrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"savenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"savenamewrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorenamewrapperformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"restorenamewrapperformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"restorenamewrapperformat[${2:entrytype}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"ifbibmacroundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbibmacroundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iffieldformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iflistformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnameformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnameformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifnameformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistwrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflistwrapperformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistwrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"iflistwrapperformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamewrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnamewrapperformatundef{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnamewrapperformatundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifnamewrapperformatundef[${4:entrytype}]{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"usedriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usedriver{${1:code}}{${2:entrytype}}\"\n      }\n    },\n    {\n      \"name\": \"bibhypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibhypertarget{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibhyperlink{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibhyperref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibhyperref[${2:entrykey}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifhyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifhyperref{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"docsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docsvfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"forcsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcsvfield{${1:handler}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"MakeCapital\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeCapital{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSentenceCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSentenceCase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSentenceCase*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSentenceCase*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpageprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkpageprefix[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpageprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkpageprefix[${2:pagination}][${3:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagetotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkpagetotal[${2:pagination}][${3:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"themincomprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxcomprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themincompwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcomprange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkcomprange[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkcomprange[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcomprange*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkcomprange*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcomprange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkcomprange*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknormrange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mknormrange[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mknormrange[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mknormrange*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mknormrange*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mknormrange*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mknormrange*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfirstpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkfirstpage[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkfirstpage[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfirstpage*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkfirstpage*[${2:postpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfirstpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mkfirstpage*[${2:postpro}][${3:itempostpro}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rangelen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rangelen{${1:rangefield}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNumChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNumChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNumChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNumChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeCommands{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRangeCommands*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRangeCommands*{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageCommands{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageCommands*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageCommands*{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"NumCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NumsCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumsCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"PagesCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PagesCheckSetup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBabelToExplLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBabelToExplLanguageMapping{${1:babel language}}{${2:expl language}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBabelToExplLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareBabelToExplLanguageMapping{${1:babel language}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaseLangs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaseLangs{${1:languages}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaseLangs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaseLangs*{${1:languages}}\"\n      }\n    },\n    {\n      \"name\": \"BibliographyWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibliographyWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagetrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backtrackertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backtrackerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunit{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"setunit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunit*{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"printunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunit{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"printunit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunit*{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"setpunctfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpunctfont{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"resetpunctfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterm{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpunctmark{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifprefchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifprefchar{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"adddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addnbspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addnbthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addlowpenspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addhighpenspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addlpthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addhpthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addabbrvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addabthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adddotspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclarePrefChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrefChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePrefChars*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePrefChars*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAutoPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAutoPunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCapitalPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCapitalPunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePunctuationPairs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePunctuationPairs{${1:identifier}}{${2:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuotePunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareQuotePunctuation{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"uspunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdpunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsentence*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcpstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcpstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcplstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcplstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcplstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcplstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcpsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibcpsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibcpsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibucstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibucstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibuclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibuclstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibuclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibuclstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibucsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibucsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibucsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblcstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblcstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblclstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblclstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblclstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblcsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"biblcsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblcsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxlstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxlstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxlstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxlstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibxsstring{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"bibxsstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibxsstring[${2:wrapper}]{${1:string key}}\"\n      }\n    },\n    {\n      \"name\": \"textmainlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmainlang{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texouterlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texouterlang{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBibstringSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibstringSet{${1:name}}{${2:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBibstringSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareBibstringSet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareBibstringSets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBibstringSetFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBibstringSetFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UneclareBibstringSetFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UneclareBibstringSetFormat{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageMapping{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMappingSuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLanguageMappingSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibitalic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibitalic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibparens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibparens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibbrackets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibbrackets{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibopenparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcloseparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibopenbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibclosebracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibfootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibendnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibendnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibendnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibfootnotewrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibfootnotewrapper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibendnotewrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibendnotewrapper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibmonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibmonth{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibseason\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibseason{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkyearzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkyearzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmonthzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkdayzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdayzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mktimezeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktimezeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"forcezerosy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcezerosy{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"forcezerosmdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcezerosmdt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"stripzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stripzeros{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"labelnumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelalphawidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextraalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextradate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextraname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextratitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxextratitleyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themulticitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themulticitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelisttotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelistcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theliststart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theliststop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginRefsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginRefsection{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextRefsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextRefsection{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtFollowingRefsections\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtFollowingRefsections{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShorthands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShorthands{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginBiblist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginBiblist{${1:biblistname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryBibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryBibitem{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryLositem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryLositem{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryBiblistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEveryBiblistitem{${1:biblistname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtUsedriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtUsedriver{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtUsedriver*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtUsedriver*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryMultiCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryMultiCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEachCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEachCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextCitekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextCitekey{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextMultiCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextMultiCite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVolcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVolcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtVolcite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtVolcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtDataInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtDataInput{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtDataInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtDataInput[${2:entrytype}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"UseBibitemHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseUsedriverHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseEveryMultiCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseNextMultiCiteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseVolciteHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeferNextCitekeyHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEveryEntrykey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AtEveryEntrykey{${1:code}}{${2:success}}{${3:failure}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniquenameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareUniquenameTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniquenameTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareUniquenameTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNamehashTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNamehashTemplate{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNamehashTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNamehashTemplate[${2:name}]{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"actualoperator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimmultivolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexHungarianWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexLatvianWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiblatexSplitbibDefernumbersWarningOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blxcitecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"blxcitecmd{${1:name}}{${2:prenote}}{${3:postnote}}{${4:citekey%plain}}{${5:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxciteicmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"blxciteicmd{${1:name}}{${2:prenote}}{${3:postnote}}{${4:citekey%plain}}{${5:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxendmcites\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blxmciteicmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"blxmciteicmd{${1:multicitecount}}{${2:<name>}}{${3:prenote}}{${4:postnote}}{${5:citekey%plain}}{${6:punct}}\"\n      }\n    },\n    {\n      \"name\": \"blxmcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"blxmcites{${1:multicitetotal}}{${2:multiprenote}}{${3:multipostnote}}\"\n      }\n    },\n    {\n      \"name\": \"iffinalcitedelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffinalcitedelim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextcitepunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftextcitepunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexentry{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexfield{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindexname{${1:family name}}{${2:given name}}{${3:prefix}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindexsubentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbibindexsubentry{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangecomp{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangecompextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangecompextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangefull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangefull{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangefullextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangefullextra{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeiso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeiso{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeisoextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeisoextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangelong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangelongextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangelongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeshort{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeshortextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeshortextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeterse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeterse{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeterseextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeterseextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangetrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangetrunc{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangetruncextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkdaterangetruncextra{${1:short|long}}{${2:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeyear{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeyearextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeyearextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeymd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeymd{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeymdextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeymdextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkrelatedstringtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrelatedstringtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktimehh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktimehh{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"multivolcitecmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortjournalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortserieswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subentryoperator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitemaxnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextcitetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volcitecmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInit\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInit{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWord\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plaincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plaincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plaincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citelastname[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citelastname[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citelastname{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textapud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"textapud{${1:bibid}}[${3:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"if\": \"style=abnt\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textapud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearorsh*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearorsh*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"if\": \"style=abnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearorsh*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfInitial\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInitial{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkopcit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkopcit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkloccit\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkloccit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"if\": \"style=abnt-ibid\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"if\": \"style=abnt-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=acmauthoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=acmnumeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieversion\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologiedate\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeologieoptions\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seperator\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitlepunct\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelimmultivolume\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yearnumdelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdatesubseqesep\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibdaterangesepx\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibdaterangesepx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelyeardelim\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetranslator*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetranslator*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetranslator*\",\n      \"if\": \"style=archaeologie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetranslator*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=aefkw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=afwl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=amit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=archa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=dguf-apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=eaz-alt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=foe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-halle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=jb-kreis-neuss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=karl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=kunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=maja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=mpkoeaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=niedersachsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=nnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=offa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-inline-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=rgk-numeric-old\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgk-verbose-old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=rgzm-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselabeltitle\",\n      \"if\": \"style=ufg-muenster-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuselabeltitle{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=volkskunde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeobibstyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"archaeocitestyletitle\",\n      \"if\": \"style=zaes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"style=apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"style=apa6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"style=apa6\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"labwidthsameline\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddondelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volissuedelim\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exhibbibdaterangesep\",\n      \"if\": \"style=arthistory-bonn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dononameyeardelim\",\n      \"if\": \"style=bath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifrelatedloop\",\n      \"if\": \"style=bath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifrelatedloop{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnocomma\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnocomma{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=chem-angew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkgroupeddigits\",\n      \"if\": \"style=chem-rsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgroupeddigits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddBiblatexClavis\",\n      \"if\": \"bibstyle=claves\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddBiblatexClavis{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"multiclavesseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisseparator\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clavisformat\",\n      \"if\": \"bibstyle=claves\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clavisformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"citeallclaves\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"clavesadddashinset\",\n      \"if\": \"bibstyle=claves\"\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"titleyeardelim\",\n      \"if\": \"style=authortitle-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citenamepunct\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citerevsdnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemultinamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefinalnamedelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcitesdelim\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkfootnotecite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfootnotecite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkparencite\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkparencite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecheck\",\n      \"if\": \"style=footnote-dw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibitem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelositem\",\n      \"if\": \"style=enc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=enc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-numeric-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-alphabetic-verb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-iecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authoryear-tiecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-icomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authortitle-ticomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-ibid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-note\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-inote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-verbose-trad3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-ecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-terse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=ext-authornumber-tecomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"filmruntime\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noseries\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nociteprefix\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreaddendumtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddendumfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreforewordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreafterwordfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductiontrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreintroductionfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublisherfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorepublishertrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddresstrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignoreaddressfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationtrue\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ignorelocationfalse\",\n      \"if\": \"style=fiwi2\"\n    },\n    {\n      \"name\": \"ifpseudo\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpseudo{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mkfinalnamedelimfirst\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfinalnamedelimfirst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"completecitefilm\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortentry\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xindy\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citets\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Citealts{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Citealts(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"Citealts(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"Citealts(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Citealts[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"Citealts[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealts\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"Citealts(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibindextruename\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkbibindextruename{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inparencite\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealtnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealtnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealtnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealtnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetnoibidem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetnoibidem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetnoibidem\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetnoibidem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeepisode\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeepisode{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citecfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullfilm\",\n      \"if\": \"style=fiwi2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullfilm{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefilmnoindex\",\n      \"if\": \"style=fiwi2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefilmnoindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelbox\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ay\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"localsetchinesecode\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015ms\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaystylesection\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaystylesection{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015mx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctdotlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolonlanen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenl\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenr\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execpuncten\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-CCNU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nwafubibfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-NWAFU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-SEU\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"gbpunctdot\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmark\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcomma\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcommalanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctcolonlanen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicolon\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttl\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctttr\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execerjpuncten\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumberwithoutzero\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locnopubdelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctmarkcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctsemicoloncite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenlcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpunctparenrcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exegbpunctencite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=chinese-erj\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"commentator\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentator{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=german-legal-book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=german-legal-book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"style=ieee-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-alphabetic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authortitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdatehasyearonly\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdatehasyearonly{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-authoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdidentifierspunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaddonpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numerationpunct\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addspacecolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynameformat\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbiblstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbiblstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbiblstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlangbibsstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mainlangbibsstring\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainlangbibsstring[${2:wrapper}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpagetotal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpagetotal\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpagetotal[${2:pagination}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmlpageprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mkmlpageprefix\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkmlpageprefix[${2:pagination}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"addspcolon\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkopenendeddaterange\",\n      \"if\": \"style=iso-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvolnumsep\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriespunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumstring\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandinbibpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationpublisherpunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherdatepunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfieldspunct\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightpseudo\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrevsdnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmultinamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfinalnamedelim\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkidem\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkidem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qverweis\",\n      \"if\": \"style=biblatex-juradiss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qverweis{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mkpostnote\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpostnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:(${3:postnote:prefix})postnote:stem}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=jura2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=jura2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitledelim\",\n      \"if\": \"style=LNI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"shcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"shcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detailscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"detailscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"detailscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detailscites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"detailscites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"detailscites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"detailscites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"detailscites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"detailscites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"detailscites\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"detailscites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkcolumns\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkcolumnslayer\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcolumnslayer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklocation\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mklocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabel\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkmanuscriptdescriptionlabelparagraphed\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkmanuscriptdescriptionlabelparagraphed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkshcite\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkshcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptdescriptionlabelpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreinterpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidetailscitedelim\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manuscriptaddshortened\",\n      \"if\": \"bibstyle=manuscripts-noautoshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptaddshortened{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-strict\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-strict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"if\": \"style=mla-new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"if\": \"style=mla-new\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bbxinitsep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibyearwatershed\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameaddonpseud\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypemag\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeclassic\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebiblical\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeearlybook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearchive\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypevolume\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypedatabase\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeblog\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypelistmessage\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypebooklike\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypepublicdocument\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeanon\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypeunsure\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortyperedundant\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypealternate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authortypejournal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeintro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeexcerpt\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenone\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypecorp\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeper\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemanual\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypecoll\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypesecondarylegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytyperef\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeproc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypereport\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebooklet\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypemisc\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeonline\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypevideo\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeaudio\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypebookinbook\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypearticle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypelegislation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeletter\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrytypeperformance\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionaddoriginal\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionnoreprints\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiontransfromorig\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionorigtransas\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiondoubledate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noplace\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopublisher\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcijrep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudirective\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euregulation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eudecision\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comdocsubtype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jurisechr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eutreaty\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseofcommons\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"houseoflords\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undoctype\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extracitedelim\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstpublishedstr\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalstarturl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legalendurl\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paratextformatted\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paratextformatted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"csusebibmacro\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csusebibmacro{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"forbbxrange\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangesplit\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rangesplit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"formatpostnote\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatpostnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeralsfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeralsfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"numeraljustfirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numeraljustfirst{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetStandardIndices\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareIndexAssociation{${1:category}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIndexAssociation\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowIndexAssociation{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"legislationindex\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflistcontains{${1:arg1}}{${2:arg2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"printindexearly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindexearly[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"DNI\",\n      \"if\": \"style=oscola\"\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"reponly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reponly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"reponly\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reponly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footciteref[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footciteref[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footciteref\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteref{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"dopipedlist\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotesecond\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindex[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindex[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindex\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindex{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeinindexnum[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeinindexnum[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeinindexnum\",\n      \"if\": \"style=oscola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeinindexnum{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"indexonly[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexonly[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"indexonly\",\n      \"if\": \"style=oscola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexonly{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflabeldateisanydate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateisanydate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflabeldateispubstate\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflabeldateispubstate{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangefull\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangefull{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mknoyeardaterangetrunc\",\n      \"if\": \"style=oxyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mknoyeardaterangetrunc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cacasetitlepunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenotetext\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionofdecisions\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionshelfmarkpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnslayerpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Commission\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datingpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionsandreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAbbrEndChars\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAbbrEndChars{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"echrreports\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecrreporttitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatorynote\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabbrev\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifabbrev{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflistcontains\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflistcontains{${1:list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"legreport\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librarycollectionpunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationlibrarypunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibnametitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnametitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkrawpageprefix\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mkrawpageprefix[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"mkusbibordinal\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkusbibordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"officialjournaltitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ojspecedtitle\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefand\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxrefanon\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalpagespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkings\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parliamentarytype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordseriespunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesa\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siganddate\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siganddate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subtypecourtrules\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypenewsp\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtypeprimarylegislation\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocpubpairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenamepairs\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebyauthordelim\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatypartysep\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treatysubtype\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uscasetitlepunct\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"if\": \"style=oxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-classic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-classic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcite\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"if\": \"style=philosophy-modern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-modern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccite\",\n      \"if\": \"style=philosophy-verbose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"annotationfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraryfont\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumpunct\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorstrgdelim\",\n      \"if\": \"style=philosophy-verbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=phys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ExecutePublistOptions\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecutePublistOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplnum\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plyearhl\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plyearhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bplopenoa\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplcloseoa\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plextrainfosep\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftplnum\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GetTotalCount\",\n      \"if\": \"style=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"style=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GetSectionCount[${1:section number}]\"\n      }\n    },\n    {\n      \"name\": \"mkbplannot\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplannot\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetAnnotSymbol\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetAnnotSymbol{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"SetAnnotSymbols\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAnnotSymbols{${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeitem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeitem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeitem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citesecitem[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citesecitem[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citesecitem{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitem*\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citesecitem*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeitemrange\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeitemrange{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitemrange\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citesecitemrange{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citesecitemrange*\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citesecitemrange*{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"itemrangesep\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftciteitem\",\n      \"if\": \"style=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftciteitem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mkrefdesc\",\n      \"if\": \"style=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrefdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"secitemsecref\",\n      \"if\": \"style=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plauthorname[${2:first name}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorname\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plauthorname[${2:first name}][${3:von part}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"plnameomission\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plmarginyear\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plmarginyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plauthorhl\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plauthorhl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extralabelnumberwidth\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftbplnum\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftbplnum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"publistbasestyle\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plisbnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plisbnlink{${1:ISBN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"plissnlink\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plissnlink{${1:ISSN%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdesc\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibdesc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsecstart\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsecstart{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printprinfo\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printprinfo{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"thenonplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplauthors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepleditors\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therealliststop\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonplauthor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenonpleditor\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetTotalCount\",\n      \"if\": \"bibstyle=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"bibstyle=publist\"\n    },\n    {\n      \"name\": \"GetSectionCount\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GetSectionCount[${1:section number}]\"\n      }\n    },\n    {\n      \"name\": \"mkbplannot\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplannot\",\n      \"if\": \"bibstyle=publist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetAnnotSymbol\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetAnnotSymbol{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"SetAnnotSymbols\",\n      \"if\": \"bibstyle=publist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAnnotSymbols{${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealauthor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealauthor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realauthorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkrealeditor\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkrealeditor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"realeditorequalsign\",\n      \"if\": \"bibstyle=realauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifciteidemsbl\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidemsbl{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"namedashpunct\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexiconfinalnamedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volpostnotedelim\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addskipentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addskipentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addincludeentry\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addincludeentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abbrevwidth\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmaxlength\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmaxlength{${1:length1}}{${2:length2}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharsec\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharsec{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharnum\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharnum{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentpublisher\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentlocation\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentorganization\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentinstitution\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepublishertotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorganizationtotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstitutiontotal\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotelast\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volsplitpostnote\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volsplitpostnote{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citejournal{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeseries\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeseries{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeshorthand\",\n      \"if\": \"style=sbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeshorthand{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bibentrycite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentrycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"biblistcite\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblistcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNestableCiteCommand\",\n      \"if\": \"style=sbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNestableCiteCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerparencitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerparencitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnertextcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnertextcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkouterfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkouterfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkinnerfootcitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinnerfootcitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mkoutersupercitedelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkoutersupercitedelims{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"namenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonamenumberdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innametitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extradateonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompcitedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranameonlycompciterangedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelims{${1:cite cmd}}{${2:open delim}}{${3:close delim}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareOuterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareOuterCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareInnerCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareInnerCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCiteDelims{${1:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOuterCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOuterCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInnerCiteDelimsAlias*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInnerCiteDelimsAlias*{${1:cite alias}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterCiteDelims\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterCiteDelims{${1:modifier}}{${2:cite cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxsupercite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxsupercite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkextblxfootcitetext\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkextblxfootcitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mksmartcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mksmartcite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkibid\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introcitepunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitebreak\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitewidth\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introcitesep\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtIntrocite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtIntrocite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtIntrocite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtXrefcite*\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtXrefcite*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddonpunct\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemaintitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintitletitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voltitledelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourvoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jourserdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"servoldelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volnumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sernumdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locpubdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocdelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubdatedelim\",\n      \"if\": \"style=socialscienceshuberlin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealnoathor\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbnumeric\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-author-year\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-bachelor\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:entrykey1}}{${2:entrykey2}}\"\n      }\n    },\n    {\n      \"name\": \"addEntryField\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addEntryField{${1:entrykeys}}{${2:field}}{${3:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"pubdatadelim\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=thuthesis-numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-abbrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-plain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumberdelim\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcommaunit*\",\n      \"if\": \"style=trad-unsrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"iflinkparens\",\n      \"if\": \"style=unified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflinkparens{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"annotsep\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annotationdelim\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"style=univie-ling\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"idemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"idemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"idemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"idemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"idemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"idemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"idemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"idemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"idemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footidemcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footidemcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcite\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footidemcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footidemcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"footidemcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"footidemcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"footidemcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"footidemcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"footidemcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footidemcites\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"footidemcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenauth{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenauth[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauth\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parenauth[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parenauths{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"parenauths(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"parenauths(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"parenauths(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"parenauths[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"parenauths[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenauths\",\n      \"if\": \"style=windycity\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"parenauths(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mkmonthdayyearrange\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkmonthdayyearrange{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"anona\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anonb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crossreflist\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluga\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plugb\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xtitle\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yeditor\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginLists\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEveryItem\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authtypes\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffieldstart\",\n      \"if\": \"style=windycity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldstart{${1:field}}{${2:sym}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"refsection\"\n    },\n    {\n      \"name\": \"refsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:bib files}]\"\n      }\n    },\n    {\n      \"name\": \"refsegment\"\n    },\n    {\n      \"name\": \"refcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refcontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fullexpotherlanguage\",\n      \"if\": \"style=archaeologie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"theshorthands\",\n      \"if\": \"style=enc\"\n    },\n    {\n      \"name\": \"plnumgroup\",\n      \"if\": \"style=publist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/biblatex#c\": [\n      \"backend=${1|bibtex,bibtex8,biber|}\",\n      \"style=${1|authoryear,authortitle,alphabetic,numeric,alphabetic-verb,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-tcomp,authortitle-terse,authortitle-ticomp,authoryear-comp,authoryear-ibid,authoryear-icomp,debug,draft,numeric-comp,numeric-verb,reading,verbose,verbose-ibid,verbose-inote,verbose-note,verbose-trad1,verbose-trad2,verbose-trad3|}\",\n      \"bibstyle=${1|authoryear,authortitle,numeric,alphabetic,verbose,reading,draft,debug|}\",\n      \"citestyle=${1|authoryear,authortitle,alphabetic,numeric,numeric-comp,numeric-verb,alphabetic-verb,authoryear-comp,authoryear-ibid,authoryear-icomp,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-terse,authortitle-tcomp,authortitle-ticomp,verbose,verbose-ibid,verbose-note,verbose-inote,verbose-trad1,verbose-trad2,verbose-trad3,reading,draft,debug|}\",\n      \"natbib\",\n      \"mcite\",\n      \"casechanger=${1|auto,latex2e,expl3|}\",\n      \"datamodel=${1:model}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"sorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\",\n      \"sortcase\",\n      \"sortupper\",\n      \"sortlocale=\",\n      \"sortcites\",\n      \"sortsets\",\n      \"pluralothers\",\n      \"maxnames=${1:integer}\",\n      \"minnames=${1:integer}\",\n      \"maxbibnames=${1:integer}\",\n      \"minbibnames=${1:integer}\",\n      \"maxcitenames=${1:integer}\",\n      \"mincitenames=${1:integer}\",\n      \"maxsortnames=${1:integer}\",\n      \"minsortnames=${1:integer}\",\n      \"maxitems=${1:integer}\",\n      \"minitems=${1:integer}\",\n      \"autocite=${1|plain,inline,footnote,superscript|}\",\n      \"autopunct\",\n      \"language=${1|autobib,autocite,auto|}\",\n      \"clearlang\",\n      \"autolang=${1|none,hyphen,other,other*,langname|}\",\n      \"langhook=${1|captions,extras|}\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"locallabelwidth\",\n      \"notetype=${1|foot+end,footonly,endonly|}\",\n      \"hyperref=${1|true,false,auto,manual|}\",\n      \"backref\",\n      \"backrefstyle=${1|none,three,two,two+,three+,all+|}\",\n      \"backrefsetstyle=${1|setonly,memonly,setormem,setandmem,memandset,setplusmem|}\",\n      \"backreffloats\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"loadfiles\",\n      \"refsection=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"refsegment=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"citereset=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"abbreviate\",\n      \"date=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"labeldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"eventdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"origdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"urldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"alldates=${1|year,short,long,terse,comp,iso|}\",\n      \"julian\",\n      \"gregorianstart=${1:YYYY-MM-DD}\",\n      \"datezeros\",\n      \"timezeros\",\n      \"timezones\",\n      \"seconds\",\n      \"dateabbrev\",\n      \"datecirca\",\n      \"dateuncertain\",\n      \"dateera=${1|astronomical,secular,christian|}\",\n      \"dateeraauto=${1:integer}\",\n      \"time=${1|12h,24h,24hcomp|}\",\n      \"labeltime=${1|12h,24h,24hcomp|}\",\n      \"eventtime=${1|12h,24h,24hcomp|}\",\n      \"origtime=${1|12h,24h,24hcomp|}\",\n      \"urltime=${1|12h,24h,24hcomp|}\",\n      \"alltimes=${1|12h,24h,24hcomp|}\",\n      \"dateusetime\",\n      \"labeldateusetime\",\n      \"eventdateusetime\",\n      \"origdateusetime\",\n      \"urldateusetime\",\n      \"alldatesusetime\",\n      \"defernumbers\",\n      \"punctfont\",\n      \"arxiv=${1|abs,ps,pdf,format|}\",\n      \"texencoding=\",\n      \"bibencoding=\",\n      \"safeinputenc\",\n      \"bibwarn\",\n      \"mincrossrefs=${1:integer}\",\n      \"minxrefs=${1:integer}\",\n      \"bibtexcaseprotection\",\n      \"isbn\",\n      \"url\",\n      \"doi\",\n      \"eprint\",\n      \"related\",\n      \"subentry\",\n      \"subentrycomp\",\n      \"dashed\",\n      \"mergedate=${1|false,minimum,basic,compact,maximum,true|}\",\n      \"ibidpage\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"strict\",\n      \"pagetracker=${1|true,false,page,spread|}\",\n      \"citecounter=${1|true,false,context|}\",\n      \"citetracker=${1|true,false,context,strict,constrict|}\",\n      \"ibidtracker=${1|true,false,context,strict,constrict|}\",\n      \"opcittracker=${1|true,false,context,strict,constrict|}\",\n      \"loccittracker=${1|true,false,context,strict,constrict|}\",\n      \"idemtracker=${1|true,false,context,strict,constrict|}\",\n      \"trackfloats\",\n      \"parentracker\",\n      \"maxparens=${1:integer}\",\n      \"giveninits\",\n      \"terseinits\",\n      \"labelalpha\",\n      \"maxalphanames=${1:integer}\",\n      \"minalphanames=${1:integer}\",\n      \"labelnumber\",\n      \"noroman\",\n      \"labeltitle\",\n      \"labeltitleyear\",\n      \"labeldateparts\",\n      \"singletitle\",\n      \"uniquetitle\",\n      \"uniquebaretitle\",\n      \"uniquework\",\n      \"uniqueprimaryauthor\",\n      \"uniquename=${1|true,false,init,full,allinit,allfull,mininit,minfull,minyearinit,minyearfull|}\",\n      \"uniquelist=${1|true,false,minyear|}\",\n      \"nohashothers\",\n      \"nosortothers\",\n      \"useauthor\",\n      \"useeditor\",\n      \"usetranslator\",\n      \"useprefix\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"skipbib\",\n      \"skipbiblist\",\n      \"skiplab\",\n      \"dataonly\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\",\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"comp\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"bibancient\",\n      \"bibcorpora\",\n      \"lstabbrv\",\n      \"lstlocations\",\n      \"lstpublishers\",\n      \"bibfullname\",\n      \"scshape\",\n      \"edby\",\n      \"publisher\",\n      \"translation\",\n      \"yearseries\",\n      \"width=\",\n      \"counter\",\n      \"jstor\",\n      \"arachne\",\n      \"zenon\",\n      \"urn\",\n      \"biblabel=${1|plain,bold,brackets,parens|}\",\n      \"inreferencesasfullcite\",\n      \"eventdatelanguage\",\n      \"citeauthorformat=${1|initials,full,family,firstfulltheninitials,firstfullthenfamily|}\",\n      \"seenote\",\n      \"yearinparens\",\n      \"nametracker\",\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"width=\",\n      \"publisher\",\n      \"jstor\",\n      \"urn\",\n      \"arthist\",\n      \"enddot\",\n      \"pagesfull\",\n      \"firstcitefull\",\n      \"allnamesfamilygiven\",\n      \"namelinked\",\n      \"nonodate\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"utf8\",\n      \"gbk\",\n      \"cparen\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|parens,brackets,plain,dot|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"annotatedBibliography\",\n      \"postnote=${1|afterparen,inparen|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"ignoreaddendum=${1|true,false,cite,bib,both|}\",\n      \"ignoreforeword=${1|true,false,cite,bib,both|}\",\n      \"ignoreafterword=${1|true,false,cite,bib,both|}\",\n      \"ignoreintroduction=${1|true,false,cite,bib,both|}\",\n      \"ignoreparatext=${1|true,false,cite,bib,both|}\",\n      \"publisher\",\n      \"parensvolume\",\n      \"script\",\n      \"actor\",\n      \"ignorearticle\",\n      \"partofcited\",\n      \"germ\",\n      \"translatedas\",\n      \"directorreplace\",\n      \"noseries\",\n      \"series\",\n      \"nopublisher\",\n      \"parensfilmnote\",\n      \"filmruntime\",\n      \"citeprefix\",\n      \"yearatbeginning\",\n      \"origyearwithyear\",\n      \"origyearsuperscript\",\n      \"pages=${1|true,false,cite,bib,both|}\",\n      \"origcite=${1|true,false,superscript|}\",\n      \"filmindex=${1|true,complete|}\",\n      \"splitfilmindex\",\n      \"titleindex=${1|true,subitem,both|}\",\n      \"fullcitefilm\",\n      \"compactcite\",\n      \"citefilm=${1|normal,country,full,complete|}\",\n      \"xindy\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"CCNUpunctcn\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbpunctcn\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gbcitepunctcn\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"edsuper\",\n      \"switchprefix\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"spacecolon\",\n      \"pagetotal\",\n      \"shortnumeration\",\n      \"thesisinfoinnotes\",\n      \"articlepubinfo\",\n      \"currentlang\",\n      \"noenddot\",\n      \"acronyms\",\n      \"shorthandinbib\",\n      \"shorthandwidth=\",\n      \"shortjournal\",\n      \"terselos\",\n      \"xref\",\n      \"pagetotal\",\n      \"journalnumber=${1|standard,afteryear,date|}\",\n      \"bernhard\",\n      \"series=${1|standard,afteryear,beforeedition|}\",\n      \"seriesformat=${1|standard,parens|}\",\n      \"annotation\",\n      \"edbyidem\",\n      \"editionstring\",\n      \"edsuper\",\n      \"idembib\",\n      \"library\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"oldauthor\",\n      \"origfields\",\n      \"pseudoauthor\",\n      \"origfieldsformat=${1|parens,brackets,punct|}\",\n      \"namefont=${1|smallcaps,italic,bold,normal|}\",\n      \"firstnamefont=${1|smallcaps,italic,bold,normal|}\",\n      \"idemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"ibidemfont=${1|smallcaps,italic,bold,normal|}\",\n      \"idembibformat=${1|idem,dash|}\",\n      \"editorstring=${1|parens,brackets,normal|}\",\n      \"editorstringfont=${1|normal,namefont|}\",\n      \"citedas\",\n      \"edstringincitations\",\n      \"omiteditor\",\n      \"shorthandibid\",\n      \"citeauthor=${1|namefont,namefontfoot,normalfont|}\",\n      \"citeauthorname=${1|normal,firstfull,full|}\",\n      \"ibidpage\",\n      \"pageref\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"addyear\",\n      \"firstfull\",\n      \"inreference=${1|normal,full|}\",\n      \"citedbytitle\",\n      \"howcited\",\n      \"bearbeiterin\",\n      \"fshowcited\",\n      \"citedbypage\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"acronym\",\n      \"series=${1|short,full,no|}\",\n      \"conference=${1|long,full,acronym|}\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\",\n      \"articletitle\",\n      \"intitle\",\n      \"articledoi\",\n      \"articlein\",\n      \"printlang\",\n      \"caseshorthands\",\n      \"ecli=${1|yes,no,only|}\",\n      \"ibidstyle=${1|lc,uc|}\",\n      \"shortindex\",\n      \"eutreaty\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"mergedate=${1|maximum,compact,basic,minimum,year,false|}\",\n      \"nolocation\",\n      \"nonodate\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"anon=${1|literal,long,short|}\",\n      \"bookseries=${1|in,out|}\",\n      \"court-plain\",\n      \"ecli=${1|yes,only,no|}\",\n      \"isourls\",\n      \"issuedate-plain\",\n      \"issuestyle=${1|slash,colon,comma,parens|}\",\n      \"nolocation\",\n      \"nopublisher\",\n      \"norelatedin\",\n      \"relationpunct=${1|period,comma,semicolon,colon,space|}\",\n      \"scnames\",\n      \"thesis=${1|in,out,plain|}\",\n      \"timefirst\",\n      \"usenametitles\",\n      \"articletitle\",\n      \"chaptertitle\",\n      \"pageranges\",\n      \"biblabel=${1|superscript,brackets|}\",\n      \"pubstateextra\",\n      \"plnumbering=${1|global,local,global-descending,local-descending,none|}\",\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"annotations=${1:comma list}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"boldyear\",\n      \"pubstateextra\",\n      \"marginyear\",\n      \"plnumbered=${1|true,false,reset|}\",\n      \"reversenumbering\",\n      \"plauthorfirstinit\",\n      \"citinfo\",\n      \"prinfo\",\n      \"linktitleall\",\n      \"linktitledoi\",\n      \"linktitleurl\",\n      \"linktitleisbn\",\n      \"linktitleissn\",\n      \"accessdate\",\n      \"citepages=${1|sbl,permit,omit,separate|}\",\n      \"eprintdate=${1|year,short,long,terse,comp,iso8601|}\",\n      \"fullbibrefs\",\n      \"idemtracker=${1|true,false,context,strict,constrict,citation,sbl|}\",\n      \"sblfootnotes\",\n      \"shorthand=${1|true,false,short,intro|}\",\n      \"useshorttitle\",\n      \"usefullcite\",\n      \"usevolume\",\n      \"useseries\",\n      \"articletitle\",\n      \"colornames\",\n      \"dashed=${1|true,false,fullhash,bibnamehash|}\",\n      \"articlein\",\n      \"citexref\",\n      \"innamebeforetitle\",\n      \"innameidem\",\n      \"maintitleaftertitle\",\n      \"introcite=${1|false,plain,label|}\",\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\",\n      \"pubstate\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"issueandeditor\",\n      \"compactlinks\",\n      \"alllinks\",\n      \"issueeditor\",\n      \"annotations\",\n      \"annotate\",\n      \"collsonly\",\n      \"ibid\",\n      \"issn\",\n      \"library\",\n      \"noetal\",\n      \"nolos\",\n      \"nopages\",\n      \"reflist\",\n      \"sentencecase\",\n      \"short\",\n      \"shortafter\",\n      \"shortfirst\",\n      \"shortlinks\",\n      \"swapvol\"\n    ],\n    \"\\\\addbibresource,\\\\addglobalbib,\\\\addsectionbib\": [\n      \"bibencoding=\",\n      \"label=\",\n      \"location=${1|local,remote|}\",\n      \"type=${1|file|}\",\n      \"datatype=${1|bibtex,biblatexml|}\",\n      \"glob\"\n    ],\n    \"\\\\printbibliography\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"check=${1:name}\",\n      \"resetnumbers=\",\n      \"omitnumbers\",\n      \"locallabelwidth\"\n    ],\n    \"\\\\bibbysection,\\\\bibbysegment,\\\\bibbycategory\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\"\n    ],\n    \"\\\\printbibheading\": [\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\"\n    ],\n    \"\\\\DeclarePrintbibliographyDefaults\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"filter=${1:name}\"\n    ],\n    \"\\\\printbiblist,\\\\printshorthands\": [\n      \"env=${1:name}\",\n      \"heading=${1:name}\",\n      \"title=${1:text}\",\n      \"label=\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"prenote=${1:name}\",\n      \"postnote=${1:name}\",\n      \"section=${1:integer}\",\n      \"segment=${1:integer}\",\n      \"type=${1:entrytype}\",\n      \"nottype=${1:entrytype}\",\n      \"subtype=${1:subtype}\",\n      \"notsubtype=${1:subtype}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\",\n      \"filter=${1:name}\",\n      \"check=${1:name}\",\n      \"locallabelwidth\",\n      \"driver=\",\n      \"biblistfilter=\"\n    ],\n    \"\\\\DeclareRefcontext,\\\\begin{refcontext},\\\\newrefcontext,\\\\localrefcontext,\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*,\\\\GenRefcontextData\": [\n      \"sorting=${1:name}\",\n      \"sortingnamekeytemplatename=${1:name}\",\n      \"uniquenametemplatename=${1:name}\",\n      \"labelalphanametemplatename=${1:name}\",\n      \"namehashtemplatename=${1:name}\",\n      \"nametemplates=${1:name}\",\n      \"labelprefix=${1:string}\"\n    ],\n    \"\\\\assignrefcontextkeyws,\\\\assignrefcontextkeyws*,\\\\assignrefcontextcats,\\\\assignrefcontextcats*,\\\\assignrefcontextentries,\\\\assignrefcontextentries*\": [\n      \"name=${1:refcontextname}\"\n    ],\n    \"\\\\DeclareAutoCiteCommand\": [\n      \"r\",\n      \"l\",\n      \"f\"\n    ],\n    \"\\\\DeclareCitePunctuationPosition\": [\n      \"r\",\n      \"l\",\n      \"f\",\n      \"c\",\n      \"o\",\n      \"d\"\n    ],\n    \"\\\\member\": [\n      \"fieldtype=\",\n      \"datatype=\",\n      \"field=\"\n    ],\n    \"\\\\maps\": [\n      \"datatype=${1|bibtex,biblatexml|}\",\n      \"overwrite\"\n    ],\n    \"\\\\map\": [\n      \"overwrite\",\n      \"foreach=${1:loopval}\",\n      \"refsection=${1:integer}\"\n    ],\n    \"\\\\step\": [\n      \"typesource=${1:entrytype}\",\n      \"typetarget=${1:entrytype}\",\n      \"fieldsource=${1:entryfield}\",\n      \"notfield=${1:entryfield}\",\n      \"fieldtarget=${1:entryfield}\",\n      \"match=${1:regexp}\",\n      \"matchi=${1:regexp}\",\n      \"notmatch=${1:regexp}\",\n      \"notmatchi=${1:regexp}\",\n      \"replace=${1:regexp}\",\n      \"fieldset=${1:entryfield}\",\n      \"fieldvalue=${1:string}\",\n      \"entryclone=${1:clonekey}\",\n      \"entrynew=${1:entrynewkey}\",\n      \"entrynewtype=${1:string}\",\n      \"entrytarget=${1:string}\",\n      \"cited\",\n      \"nocited\",\n      \"citedornocited\",\n      \"allnocited\",\n      \"starnocited\",\n      \"entrynocite\",\n      \"entrynull\",\n      \"append\",\n      \"appendstrict\",\n      \"final\",\n      \"null\",\n      \"origfield\",\n      \"origfieldval\",\n      \"origentrytype\"\n    ],\n    \"\\\\DeclareDatamodelConstant\": [\n      \"type=${1|string,list|}\"\n    ],\n    \"\\\\DeclareDatamodelEntrytypes\": [\n      \"skipout\"\n    ],\n    \"\\\\DeclareDatamodelFields\": [\n      \"type=${1:field type}\",\n      \"format=${1:field format}\",\n      \"datatype=${1:field datatype}\",\n      \"nullok\",\n      \"skipout\",\n      \"label\"\n    ],\n    \"\\\\constraint\": [\n      \"type=${1|data,mandatory,conditional|}\",\n      \"datatype=${1|integer,isbn,issn,ismn,datepart,pattern|}\",\n      \"rangemin=${1:number}\",\n      \"rangemax=${1:number}\",\n      \"pattern=\"\n    ],\n    \"\\\\antecedent,\\\\consequent\": [\n      \"quantifier=${1|all,one,none|}\"\n    ],\n    \"\\\\field\": [\n      \"final\",\n      \"lowercase\",\n      \"strwidth=${1:integer}\",\n      \"strside=${1|left,right|}\",\n      \"padside=${1|left,right|}\",\n      \"padwidth=${1:integer}\",\n      \"padchar=${1:character}\",\n      \"uppercase\",\n      \"varwidth\",\n      \"varwidthnorm\",\n      \"varwidthlist\",\n      \"strwidthmax=${1:integer}\",\n      \"strfixedcount=${1:integer}\",\n      \"ifnames=${1:range}\",\n      \"names=${1:range}\",\n      \"namessep=${1:string}\",\n      \"noalphaothers\"\n    ],\n    \"\\\\namepart\": [\n      \"use\",\n      \"pre\",\n      \"compound\",\n      \"strwidth=${1:integer}\",\n      \"strside=${1|left,right|}\",\n      \"inits\",\n      \"base\",\n      \"disambiguation=${1|none,init,initorfull,full|}\",\n      \"hashscope=${1|init,full|}\"\n    ],\n    \"\\\\DeclareSortingTemplate\": [\n      \"locale=\"\n    ],\n    \"\\\\sort\": [\n      \"locale=\",\n      \"direction=${1|ascending,descending|}\",\n      \"final\",\n      \"sortcase\",\n      \"sortupper\"\n    ],\n    \"\\\\filter\": [\n      \"type=\",\n      \"nottype=\",\n      \"subtype=\",\n      \"notsubtype=\",\n      \"keyword=\",\n      \"notkeyword=\",\n      \"field=\",\n      \"notfield=\",\n      \"filter=\"\n    ],\n    \"\\\\DefaultInheritance,\\\\except\": [\n      \"all\",\n      \"override\",\n      \"ignore=${1:csv list of uniqueness options}\"\n    ],\n    \"\\\\DeclareDataInheritance\": [\n      \"ignore=${1:csv list of uniqueness options}\"\n    ],\n    \"\\\\inherit\": [\n      \"override\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\": [\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"square\",\n      \"nodate\",\n      \"yearleft\",\n      \"restoreclassic\",\n      \"relatedformat=${1|semicolon,parens,brackets|}\",\n      \"publocformat=${1|publocyear,locpubyear,loccolonpub|}\",\n      \"volnumformat=${1|strings,parens,plain|}\",\n      \"volumeformat=${1|arabic,roman,romanscRoman|}\",\n      \"editionformat=${1|arabic,roman,romansc,Roman,superscript|}\",\n      \"scauthors=${1|bib,cite,bibcite,citefn,bibcitefn,all|}\",\n      \"lowscauthors\",\n      \"shorthandintro\",\n      \"inbeforejournal\",\n      \"classical\",\n      \"library\",\n      \"annotation\",\n      \"latinemph\",\n      \"iviemph\",\n      \"commacit\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\": [\n      \"plauthorname=${1:surname}\",\n      \"plauthorfirstname=${1:first name}\",\n      \"plauthornameprefix=${1:von-part}\",\n      \"plauthorhandling=${1|omit,highlight|}\",\n      \"annotations=${1:comma list}\",\n      \"nameorder=${1|family-given,given-family|}\",\n      \"fixyear\",\n      \"hlyear\",\n      \"marginyear\",\n      \"plsorting=${1:sorting scheme}\",\n      \"plauthorfirstinit\",\n      \"citinfo\",\n      \"jifinfo\",\n      \"oainfo=${1|simple,verbose,none|}\",\n      \"prinfo\",\n      \"linktitles=${1|all,doi,url,isbn,issn,none|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\printbibliography\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c,\\\\ExecutePublistOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biblatex2bibitem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printbibitembibliography\"\n    },\n    {\n      \"name\": \"printgeneratedbibitemseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorespacesaftertitlecase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolinkurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolinkurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"utffriendlydetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utffriendlydetokenize{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibleref-french.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bibleref\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BRallowhypbch\"\n    },\n    {\n      \"name\": \"BRforbidhypbch\"\n    },\n    {\n      \"name\": \"Torah\"\n    },\n    {\n      \"name\": \"Nebiim\"\n    },\n    {\n      \"name\": \"Ketouvim\"\n    },\n    {\n      \"name\": \"AT\"\n    },\n    {\n      \"name\": \"NT\"\n    },\n    {\n      \"name\": \"BRbookofp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookofm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookofme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookoffe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookofpl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbookofe\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibleref-french#c,\\\\biblerefstyle\": [\n      \"default\",\n      \"defaultshorter\",\n      \"jerusalem\",\n      \"colombe\",\n      \"colombefull\",\n      \"NBS\",\n      \"NBSfull\",\n      \"TOB\",\n      \"TOBfull\",\n      \"text\"\n    ],\n    \"\\\\usepackage/bibleref-french#c\": [\n      \"catholic\",\n      \"protestant\",\n      \"indexalphac\",\n      \"indexalphap\",\n      \"indextestamentsL\",\n      \"indextestamentsT\",\n      \"indexBHS\",\n      \"indexLXX\",\n      \"indexTOB\",\n      \"indexTanak\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibleref-french#c,\\\\biblerefstyle\",\n    \"\\\\usepackage/bibleref-french#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibleref-german.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bibleref\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"biblerefformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblerefformat{${1:format name%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-german#c,\\\\biblerefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BRbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbooksuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprophet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRepistle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRPaulustothe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRPaulusto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRdas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRdie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRHoheslied\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BROffbJoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRApgLuk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRKlgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRJeremias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRSalomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRSalomos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprimus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsecundus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRtertius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRquartus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibleref-german#c,\\\\biblerefstyle\": [\n      \"Einheitsuebersetzung\",\n      \"Lutherbibel\",\n      \"LThK\",\n      \"RGG\",\n      \"TRE\",\n      \"Vulgata\"\n    ],\n    \"\\\\usepackage/bibleref-german#c\": [\n      \"default\",\n      \"jerusalem\",\n      \"anglosaxon\",\n      \"JEH\",\n      \"MHRA\",\n      \"NTG\",\n      \"MLA\",\n      \"chicago\",\n      \"text\"\n    ],\n    \"\\\\usepackage/bibleref-german#c,\\\\biblerefformat\": [\n      \"kurz\",\n      \"lang\",\n      \"Terminus\",\n      \"Zahlwort\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibleref-german#c,\\\\biblerefstyle\",\n    \"\\\\usepackage/bibleref-german#c\",\n    \"\\\\usepackage/bibleref-german#c,\\\\biblerefformat\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibleref-lds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bibleref-mouth\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"provideldsdotorgstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"provideldsdotorgstyle{${1:name}}{${2:bkstyle}}{${3:bkchsep}}{${4:chvsep}}{${5:bksep}}{${6:chsep}}{${7:vsep}}{${8:rangesep}}{${9:chstyle}}{${10:versestyle}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbiblestyle#c\": [\n      \"lds\",\n      \"lds.org\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibleref-mouth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibleref{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"setbiblestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbiblestyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbiblestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thebook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thebook{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thechapter{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"theverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theverse{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"bookchapterseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookchapterseparator{${1:separators}}\"\n      }\n    },\n    {\n      \"name\": \"chapterverseseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterverseseparator{${1:separators}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamebook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsamebook{${1:left}}{${2:right}}{${3:truehandler}}{${4:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamechapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsamechapter{${1:left}}{${2:right}}{${3:truehandler}}{${4:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"ifsameverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsameverse{${1:left}}{${2:right}}{${3:truehandler}}{${4:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"ifhasbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifhasbook{${1:passage}}{${2:truehandler}}{${3:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"ifhaschapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifhaschapter{${1:passage}}{${2:truehandler}}{${3:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"ifhasverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifhasverse{${1:passage}}{${2:truehandler}}{${3:falsehandler}}\"\n      }\n    },\n    {\n      \"name\": \"thebookname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thebookname{${1:style name}}{${2:passage}}\"\n      }\n    },\n    {\n      \"name\": \"providebiblestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebiblestyle{${1:style name}}{${2:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"providebiblebookalias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebiblebookalias{${1:book}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"providebiblebook\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providebiblebook{${1:style name}}{${2:book}}{${3:bookname}}\"\n      }\n    },\n    {\n      \"name\": \"standardbiblestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"standardbiblestyle{${1:bkstyle}}{${2:bkchsep}}{${3:chvsep}}{${4:bksep}}{${5:chsep}}{${6:vsep}}{${7:rangesep}}{${8:chstyle}}{${9:vstyle}}{${10:beginpassage}}{${11:endpassage}}{${12:list}}\"\n      }\n    },\n    {\n      \"name\": \"providebiblegatewayurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providebiblegatewayurl{${1:url style name}}{${2:version}}\"\n      }\n    },\n    {\n      \"name\": \"providebiblegatewaystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providebiblegatewaystyle{${1:style name}}{${2:url style name}}{${3:text style name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbiblestyle#c\": [\n      \"fullname\",\n      \"jerusalem\",\n      \"anglosaxon\",\n      \"JEH\",\n      \"NTG\",\n      \"MLA\",\n      \"chicago\",\n      \"text\",\n      \"verse\",\n      \"biblegateway.com\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibleref-parse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"bibleref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"biblerefparseset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblerefparseset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pbibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbibleverse{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"pbibleverse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbibleverse[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BRbksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pibibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pibibleverse{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"pibibleverse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pibibleverse[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pibiblechvs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pibiblechvs{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"pibiblechvs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pibiblechvs[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pibiblevs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pibiblevs{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"pibiblevs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pibiblevs[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"brpDefineBookPrefix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brpDefineBookPrefix{${1:new book prefix}}{${2:book name}}\"\n      }\n    },\n    {\n      \"name\": \"brpDefineBook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brpDefineBook{${1:new book name}}{${2:book name}}\"\n      }\n    },\n    {\n      \"name\": \"brpUndefBookPrefix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brpUndefBookPrefix{${1:new book prefix}}{${2:book name}}\"\n      }\n    },\n    {\n      \"name\": \"brpUndefBook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brpUndefBook{${1:new book name}}{${2:book name}}\"\n      }\n    },\n    {\n      \"name\": \"BRadditionsto\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\": [\n      \"comma=${1|list,chvsep,likeBR,preferchvsep,preferlikeBR|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibleref-parse#c,\\\\biblerefparseset,\\\\pbibleverse,\\\\pibibleverse,\\\\pibiblechvs,\\\\pibiblevs\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibleref-xidx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bibleref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibleref-xidx\": [\n      \"verses\",\n      \"noverses\",\n      \"chapters\",\n      \"nochapters\",\n      \"default\",\n      \"jerusalem\",\n      \"anglosaxon\",\n      \"JEH\",\n      \"MHRA\",\n      \"NTG\",\n      \"MLA\",\n      \"chicago\",\n      \"text\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibleref-xidx\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibleref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibleverse{${1:book title}}\"\n      }\n    },\n    {\n      \"name\": \"bibleverse\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"bibleverse{${1:book title}}(${2:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"BRvrsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRchsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRchvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblerefstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblerefstyle{${1:style name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setbooktitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbooktitle{${1:name}}{${2:new title}}\"\n      }\n    },\n    {\n      \"name\": \"setindexbooktitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setindexbooktitle{${1:name}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addbiblebook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addbiblebook{${1:name}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"brthreeabbrvname\"\n    },\n    {\n      \"name\": \"newbiblerefstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbiblerefstyle{${1:style name%specialDef}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ibibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibibleverse{${1:book title}}\"\n      }\n    },\n    {\n      \"name\": \"ibibleverse\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"ibibleverse{${1:book title}}(${2:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibibleverse\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"ibibleverse[${2:format}]{${1:book title}}(${3:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"bvidxpgformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibiblechvs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibiblechvs{${1:book title}}\"\n      }\n    },\n    {\n      \"name\": \"ibiblechvs\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"ibiblechvs{${1:book title}}(${2:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibiblechvs\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"ibiblechvs[${2:format}]{${1:book title}}(${3:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibiblevs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibiblevs{${1:book title}}\"\n      }\n    },\n    {\n      \"name\": \"ibiblevs\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"ibiblevs{${1:book title}}(${2:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibiblevs\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"ibiblevs[${2:format}]{${1:book title}}(${3:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibible{${1:book title}}\"\n      }\n    },\n    {\n      \"name\": \"ibible\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"ibible{${1:book title}}(${2:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"ibible\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"ibible[${2:format}]{${1:book title}}(${3:chapter:verse})\"\n      }\n    },\n    {\n      \"name\": \"biblerefcategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblerefcategory{${1:category title}}\"\n      }\n    },\n    {\n      \"name\": \"biblerefcategory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"biblerefcategory[${2:sort key}]{${1:category title}}\"\n      }\n    },\n    {\n      \"name\": \"biblerefindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblerefmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"biblerefmap{${1:label}}{${2:new sort key}}\"\n      }\n    },\n    {\n      \"name\": \"brabbrvname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braltabbrvname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbkchsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbooknumberstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRbooknumberstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRbookof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRbooktitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRbooktitlestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRchapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRchapterstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRepistlenumberstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRepistlenumberstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRepistleof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRepistleto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRepistletothe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brfullname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRgospel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRotherchapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRotherchapterstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRversestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRversestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRversesuffixstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BRversesuffixstyle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibleref#c,\\\\biblerefstyle\": [\n      \"default\",\n      \"jerusalem\",\n      \"anglosaxon\",\n      \"JEH\",\n      \"MHRA\",\n      \"NTG\",\n      \"MLA\",\n      \"chicago\",\n      \"text\",\n      \"%biblerefstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibleref#c,\\\\biblerefstyle\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibletext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibletext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibletext{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"bibletext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibletext[${2:options%keyvals}]{${1:reference}}\",\n        \"keys\": [\n          \"\\\\bibletext\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bibletext\": [\n      \"ref\",\n      \"omitrepeatedchapter\",\n      \"omitchapter\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibnames.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"texnames\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifundefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifundefined{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"CMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CWEB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FWEB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PLOT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTSCRIPT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubissue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tubissue{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"TUB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WEB\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibpes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"reportOnBibPes\"\n    },\n    {\n      \"name\": \"readbackDefFile\"\n    },\n    {\n      \"name\": \"bibpesBody\"\n    },\n    {\n      \"name\": \"ifreadOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readOKtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readOKfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inbiblepassage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outbiblepassage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bibpes#c\": [\n      \"infolder=${1:file path}\",\n      \"outfolder=${1:file path}\",\n      \"txtfilein=${1:base name}\",\n      \"deffileout=${1:base name}\",\n      \"build\",\n      \"!build\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibpes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibtopic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"btPrintCited\"\n    },\n    {\n      \"name\": \"btPrintNotCited\"\n    },\n    {\n      \"name\": \"btPrintAll\"\n    },\n    {\n      \"name\": \"thebtauxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btBegThbCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btCiteSect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btCiteSect{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"btGetVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btGetVal{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"btRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"btRef{${1:key%plain}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"btretval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"btSect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"btSect\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:style}]{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"btUnit\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bibtopic#c\": [\n      \"breakcites\",\n      \"defaultbib\",\n      \"dot\",\n      \"normalwarnings\",\n      \"overridenumbers\",\n      \"dontoverridenumbers\",\n      \"printheadings\",\n      \"sectcntreset\",\n      \"slow\",\n      \"unitcntnoreset\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibtopic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bibtopicprefix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"bibtopic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibprefix\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bibunits.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bibliographyunit\"\n    },\n    {\n      \"name\": \"bibliographyunit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibliographyunit[${1:unit}]\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nocite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"putbib\"\n    },\n    {\n      \"name\": \"putbib\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"putbib[${1:bib file}]\"\n      }\n    },\n    {\n      \"name\": \"defaultbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultbibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"defaultbibliographystyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultbibliographystyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{bibunit}#c,\\\\defaultbibliographystyle#c,\\\\bibliographystyle*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibliography*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliography*{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"bibliographystyle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliographystyle*{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{bibunit}#c,\\\\defaultbibliographystyle#c,\\\\bibliographystyle*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bibunit\"\n    },\n    {\n      \"name\": \"bibunit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{bibunit}#c,\\\\defaultbibliographystyle#c,\\\\bibliographystyle*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bibunits#c\": [\n      \"globalcitecopy\",\n      \"labelstoglobalaux\",\n      \"sectionbib\",\n      \"subsectionbib\"\n    ],\n    \"\\\\begin{bibunit}#c,\\\\defaultbibliographystyle#c,\\\\bibliographystyle*#c\": [\n      \"abbrv\",\n      \"acm\",\n      \"alpha\",\n      \"apalike\",\n      \"ieeetr\",\n      \"plain\",\n      \"siam\",\n      \"unsrt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bibunits#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bicaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsetup\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"captionsetup[${2:float type}][${3:biling selection}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bicaptionsetup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bicaptionsetup[${3:float type}]{${1:lang1 options%keyvals}}{${2:lang2 options}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bicaptionsetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bicaptionsetup{${1:lang1 options%keyvals}}{${2:lang2 options}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bicaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bicaptionsetup*[${3:float type}]{${1:lang1 options%keyvals}}{${2:lang2 options}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bicaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bicaptionsetup*{${1:lang1 options%keyvals}}{${2:lang2 options}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareBiCaptionSeparator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBiCaptionSeparator{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bicaption{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"bicaption[${3:list-entry1}]{${1:heading1%text}}[${4:list-entry2}]{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bicaption*{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bicaptionbox{${1:heading1%text}}{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"bicaptionbox[${4:list-entry1}]{${1:heading1%text}}[${5:list-entry2}]{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"bicaptionbox{${1:heading1%text}}{${2:heading2%text}}[${4:width}][${5:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[][]{}\",\n        \"snippet\": \"bicaptionbox[${4:list-entry1}]{${1:heading1%text}}[${5:list-entry2}]{${2:heading2%text}}[${6:width}][${7:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bicaptionbox*{${1:heading1%text}}{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"bicaptionbox*{${1:heading1%text}}{${2:heading2%text}}[${4:width}][${5:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubcaption{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaption\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"bisubcaption[${3:list-entry1}]{${1:heading1%text}}[${4:list-entry2}]{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaption*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubcaption*{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bisubcaptionbox{${1:heading1%text}}{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"bisubcaptionbox[${4:list-entry1}]{${1:heading1%text}}[${5:list-entry2}]{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"bisubcaptionbox{${1:heading1%text}}{${2:heading2%text}}[${4:width}][${5:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[][]{}\",\n        \"snippet\": \"bisubcaptionbox[${4:list-entry1}]{${1:heading1%text}}[${5:list-entry2}]{${2:heading2%text}}[${6:width}][${7:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bisubcaptionbox*{${1:heading1%text}}{${2:heading2%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bisubcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"bisubcaptionbox*{${1:heading1%text}}{${2:heading2%text}}[${4:width}][${5:inner-pos}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionmainlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectcaptionlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectcaptionlanguage{${1:font or list entry}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionLangOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaptionLangOption{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bicaption#c\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"box=${1|empty,none,parbox,colorbox|}\",\n      \"boxcolor=\",\n      \"boxsep=\",\n      \"calcmargin*=\",\n      \"calcmargin=\",\n      \"calcwidth*=\",\n      \"calcwidth=\",\n      \"debug\",\n      \"figurename=${1:name}\",\n      \"figureposition=${1|top,above,bottom,below,auto|}\",\n      \"figurewithin=${1:counter}\",\n      \"figurewithout\",\n      \"font+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"font=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"format=${1|plain,hang|}\",\n      \"hangindent=\",\n      \"indention=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash,gobble,gobbletwo|}\",\n      \"list=${1|on,off,true,false|}\",\n      \"listfigurename=${1:name}\",\n      \"listformat=${1|empty,simple,parens,subsimple,subparens,period,subperiod|}\",\n      \"listtablename=${1:name}\",\n      \"listtype=${1:list type}\",\n      \"listtype+=${1:list type ext}\",\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"margin*=\",\n      \"margin=\",\n      \"maxmargin=\",\n      \"minmargin=\",\n      \"name=${1:name}\",\n      \"oneside\",\n      \"parbox=${1|empty,none,parbox,colorbox|}\",\n      \"parindent=\",\n      \"parskip=\",\n      \"position=${1|top,above,bottom,below,auto|}\",\n      \"singlelinecheck\",\n      \"skip=\",\n      \"strut=${1|on,off|}\",\n      \"style=\",\n      \"style*=\",\n      \"tablename=${1:name}\",\n      \"tableposition=${1|top,above,bottom,below,auto|}\",\n      \"tablewithin=${1:counter}\",\n      \"tablewithout\",\n      \"textfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textformat=${1|empty,simple,period|}\",\n      \"twoside\",\n      \"width*=\",\n      \"width=\",\n      \"within=${1:counter}\",\n      \"without\",\n      \"list-entry=${1|default,list-entry,entry|}\",\n      \"hypcap\",\n      \"hypcapspace=\",\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\",\n      \"subtype=${1:float type}\",\n      \"subtype*=${1:float type}\",\n      \"compatibility\",\n      \"config=${1:file name}\"\n    ],\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\": [\n      \"lang=${1:language}\",\n      \"bi-lang=${1|both,first,second|}\",\n      \"bi-slc\",\n      \"bi-swap\",\n      \"bi-separator=${1|none,default,smallskip,medskip,largeskip|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bicaption#c\",\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/bicaption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bickham.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbscr\",\n      \"if\": \"scr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bickham#c\": [\n      \"scaled=${1:factor}\",\n      \"scr\",\n      \"sb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bickham#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidi-atbegshi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LengthToUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LengthToUnit{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutUpperRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutUpperRight{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutUpperRightForeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutUpperRightForeground{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutLowerLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutLowerLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutLowerLeftForeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutLowerLeftForeground{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutLowerRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutLowerRight{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginShipoutLowerRightForeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginShipoutLowerRightForeground{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidi-perpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ResetCounterPerPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetCounterPerPage{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ResetCounterPerPage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ResetCounterPerPage[${2:opt}]{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"auxhook\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote=on\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"TwoColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"ThreeColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"FourColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"FiveColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SixColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SevenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EightColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NineColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParagraphFootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"NormalRTLParaLTRFootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"TwoColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"ThreeColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"FourColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"FiveColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SixColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SevenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EightColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NineColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TenColumnFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParagraphFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"NormalRTLParaLTRFootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bidiversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bididate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidireleasename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXXeTOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXXeTOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLTR\"\n    },\n    {\n      \"name\": \"setLR\"\n    },\n    {\n      \"name\": \"unsetRL\"\n    },\n    {\n      \"name\": \"unsetRTL\"\n    },\n    {\n      \"name\": \"setRTL\"\n    },\n    {\n      \"name\": \"setRL\"\n    },\n    {\n      \"name\": \"unsetLTR\"\n    },\n    {\n      \"name\": \"LRE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RLE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoteRL\"\n    },\n    {\n      \"name\": \"setfootnoteLR\"\n    },\n    {\n      \"name\": \"unsetfootnoteRL\"\n    },\n    {\n      \"name\": \"LTRthanks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRthanks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLthanks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLthanks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRfootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLfootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"autofootnoterule\"\n    },\n    {\n      \"name\": \"rightfootnoterule\"\n    },\n    {\n      \"name\": \"leftfootnoterule\"\n    },\n    {\n      \"name\": \"LRfootnoterule\"\n    },\n    {\n      \"name\": \"textwidthfootnoterule\"\n    },\n    {\n      \"name\": \"SplitFootnoteRule\"\n    },\n    {\n      \"name\": \"debugfootnotedirection\"\n    },\n    {\n      \"name\": \"RTLdblcol\"\n    },\n    {\n      \"name\": \"LTRdblcol\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"SepMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepMark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"hboxR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hboxR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hboxL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hboxL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vboxR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vboxR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vboxL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vboxL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bidillap\"\n    },\n    {\n      \"name\": \"bidirlap\"\n    },\n    {\n      \"name\": \"setLTRbibitems\"\n    },\n    {\n      \"name\": \"setRTLbibitems\"\n    },\n    {\n      \"name\": \"setdefaultbibitems\"\n    },\n    {\n      \"name\": \"setRTLmarginpar\"\n    },\n    {\n      \"name\": \"setLTRmarginpar\"\n    },\n    {\n      \"name\": \"setdefaultmarginpar\"\n    },\n    {\n      \"name\": \"LTRmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRmarginpar[${2:left-text%text}]{${1:right-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLmarginpar[${2:left-text%text}]{${1:right-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bracetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DigitsDotDashInterCharToks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfbidiPackageVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersion{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfbidiPackageVersionBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersionBefore{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfbidiPackageVersionLater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfbidiPackageVersionLater{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pdfencryptsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfencryptsetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pLRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pRLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLTRtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setnonlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setRTLtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreLRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreRLE\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LTR\"\n    },\n    {\n      \"name\": \"RTL\"\n    },\n    {\n      \"name\": \"LTRitems\"\n    },\n    {\n      \"name\": \"RTLitems\"\n    },\n    {\n      \"name\": \"LTRbibitems\"\n    },\n    {\n      \"name\": \"RTLbibitems\"\n    },\n    {\n      \"name\": \"LTR*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTL*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bidi#c\": [\n      \"RTLdocument\",\n      \"documentdirection=${1|righttoleft,lefttoright|}\",\n      \"tabledirection=${1|righttoleft,lefttoright|}\",\n      \"script=${1|latin,nonlatin|}\",\n      \"rldocument\",\n      \"footnoterule=${1|automatic,left,right,split,textwidth|}\",\n      \"footnotedirection=${1|righttoleft,lefttoright|}\",\n      \"debugfootnotedirection\",\n      \"extrafootnotefeatures\",\n      \"DetectColumn\",\n      \"logo\",\n      \"pdfinfo\",\n      \"perpagefootnote\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"captiondirection=${1|textdirection,RTL,LTR|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidicode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"showexpl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BDefaboveskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BDefbelowskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BDefinlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"CAny\"\n    },\n    {\n      \"name\": \"cAny\"\n    },\n    {\n      \"name\": \"CIIIAny\"\n    },\n    {\n      \"name\": \"ciiiAny\"\n    },\n    {\n      \"name\": \"Coord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Coord{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"coord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coord{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CoordIII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoordIII{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"coordiii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coordiii{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Coordn\"\n    },\n    {\n      \"name\": \"coordn\"\n    },\n    {\n      \"name\": \"Coordx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Coordx{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"coordx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coordx{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Coordy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Coordy{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"coordy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coordy{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Coordz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Coordz{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"coordz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coordz{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HLOFF\"\n    },\n    {\n      \"name\": \"HLON\"\n    },\n    {\n      \"name\": \"Larg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Larg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Larga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Larga{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Largb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Largr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Largs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LBEG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LBEG{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"lcb\"\n    },\n    {\n      \"name\": \"Lcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"LcsStar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LcsStar{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"LEND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LEND{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"lrb\"\n    },\n    {\n      \"name\": \"lsb\"\n    },\n    {\n      \"name\": \"nxLcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nxLcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"OptArg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OptArg*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"OptArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OptArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"OptArgs\"\n    },\n    {\n      \"name\": \"rcb\"\n    },\n    {\n      \"name\": \"rrb\"\n    },\n    {\n      \"name\": \"rsb\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"BCmd\"\n    },\n    {\n      \"name\": \"BCmd*\"\n    },\n    {\n      \"name\": \"BDef\"\n    },\n    {\n      \"name\": \"BDef*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidicontour.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"trig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bidicontourlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidicontourlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bidicontournumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidicontournumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bidicontour\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bidicontour{${1:color}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"bidicontour\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bidicontour[${3:number}]{${1:color}}{${2:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bidicontour#c\": [\n      \"auto\",\n      \"outline\",\n      \"copies\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidicontour#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidihl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bidihl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidihl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bidihlspace\"\n    },\n    {\n      \"name\": \"bidihlnewline\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidipagegrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bidipagegridsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidipagegridsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bidipagegridsetup,\\\\usepackage/bidipagegrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setLTRpagegrid\"\n    },\n    {\n      \"name\": \"setRTLpagegrid\"\n    },\n    {\n      \"name\": \"bidipagegridShipoutDoubleBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidipagegridShipoutDoubleEnd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bidipagegridsetup,\\\\usepackage/bidipagegrid#c\": [\n      \"enable\",\n      \"disable\",\n      \"left-top\",\n      \"lt\",\n      \"top-left\",\n      \"tl\",\n      \"tr\",\n      \"top-right\",\n      \"rt\",\n      \"right-top\",\n      \"left-bottom\",\n      \"lb\",\n      \"bottom-left\",\n      \"bl\",\n      \"br\",\n      \"bottom-right\",\n      \"rb\",\n      \"right-bottom\",\n      \"step=\",\n      \"firstcolor=\",\n      \"secondcolor=\",\n      \"arrows\",\n      \"arrowlength=\",\n      \"double=${1|false,first,last,true|}\",\n      \"foreground\",\n      \"direction=${1|LTR,RTL|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\bidipagegridsetup,\\\\usepackage/bidipagegrid#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidipoem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"poemblocksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemcolsepskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemextrabaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemmarginskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Setversedim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Setversedim{${1:half-verse-length}}{${2:separation}}\"\n      }\n    },\n    {\n      \"name\": \"Setversedim\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Setversedim{${1:right-half-verse-length}}[${3:left-half-verse-length}]{${2:separation}}\"\n      }\n    },\n    {\n      \"name\": \"traditionalconnverses\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"traditionalconnverses{${1:right-half-verse-text%text}}{${2:connection-text%text}}{${3:left-half-verse-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"traditionalhalfverses\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"traditionalhalfverses{${1:right-half-verse-text%text}}[${3:connection-text%text}]{${2:left-half-verse-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"traditionalhalfverses\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"traditionalhalfverses{${1:right-half-verse-text%text}}{${2:left-half-verse-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"versewidth\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"modernpoem\"\n    },\n    {\n      \"name\": \"modernpoem*\"\n    },\n    {\n      \"name\": \"traditionalpoem\"\n    },\n    {\n      \"name\": \"traditionalpoem*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidishadowtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bidishadowoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowoffset{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"bidishadowoffsetx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowoffsetx{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"bidishadowoffsety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowoffsety{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"bidishadowcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bidishadowrgb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowrgb{${1:r,g,b}}\"\n      }\n    },\n    {\n      \"name\": \"bidishadowtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidishadowtext{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biditools.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AppendToTokenList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidics{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"breaklooprepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bystep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bystep{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"currentposxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentposyheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefNewDummy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefNewDummy{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"doloopbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downtovalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"downtovalue{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"EmptyTokenList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlooprepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnewif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqnewif{${1:\\\\newconditional1%cmd}}{${2:\\\\newconditional2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"noteqnewif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noteqnewif{${1:\\\\newconditional1%cmd}}{${2:\\\\newconditional2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"forvariable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forvariable{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"fromvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fromvalue{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalSetatBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalSetatBoolean{${1:at-boolean}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalSetBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalSetBoolean{${1:boolean}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"iflatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflatin{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifLtoR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifLtoR{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifLtoRhboxconstruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifLtoRhboxconstruct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifLtoRtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifLtoRtable{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnonlatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnonlatin{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifRtoL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifRtoL{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifRtoLhboxconstruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifRtoLhboxconstruct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifRtoLtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifRtoLtable{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"NewTokenList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrependToTokenList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetatBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetatBoolean{${1:at-boolean}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"setbaselineskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbaselineskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetBoolean{${1:boolean}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"TheTokenList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tovalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tovalue{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"untilcondition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"untilcondition{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"whilecondition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whilecondition{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"WriteEndXPostoaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteEndXYPostoaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteEndYPostoaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteStartXPostoaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteStartXYPostoaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteStartYPostoaux\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidituftefloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"optparams\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"floatalignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcerectofloat\"\n    },\n    {\n      \"name\": \"forceversofloat\"\n    },\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:length cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"morefloats\"\n    },\n    {\n      \"name\": \"newlinetospace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlinetospace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfloatalignment{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfloatalignment#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bidituftefloat#c\": [\n      \"reversegeometry\"\n    ],\n    \"\\\\setfloatalignment#c\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidituftefloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidituftegeneralstructure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lettergroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettergroup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newthought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newthought{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidituftehyperref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bidituftehyperref#c\": [\n      \"hyper\",\n      \"nohyper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidituftehyperref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidituftesidenote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"bibentry\"\n    },\n    {\n      \"name\": \"optparams\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bidituftesidenotemarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidituftesidenotemarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:length cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"LTRbidituftesidenotemarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRbidituftesidenotemarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"LTRmarginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRmarginnote[${2:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRmarginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRmarginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRsidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"LTRsidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRsidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRsidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRsidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRsidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginnote[${2:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLbidituftesidenotemarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLbidituftesidenotemarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"RTLmarginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLmarginnote[${2:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLmarginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLmarginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLsidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"RTLsidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLsidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLsidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLsidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLsidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcitationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcitationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setLTRcitationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLTRcitationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setLTRmarginnotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLTRmarginnotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setLTRsidenotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLTRsidenotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setmarginnotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarginnotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setRTLcitationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRTLcitationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setRTLmarginnotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRTLmarginnotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setRTLsidenotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRTLsidenotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setsidenotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidenotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bidituftetitle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"maketitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainpublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plaintitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisher{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"publisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"publisher[${2:short text}]{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"thanklessauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesspublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bidituftetitle#c\": [\n      \"titlepage\",\n      \"notitlepage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidituftetitle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bidituftetoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bidituftetoc#c\": [\n      \"notoc\",\n      \"toc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bidituftetoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bigdelim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bigfoot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"perpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RestyleFootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RestyleFootnote{${1:type}}{${2:style}}\"\n      }\n    },\n    {\n      \"name\": \"FootnoteSpecific\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FootnoteSpecific{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFootnoteStack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineFootnoteStack{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"PushFootnoteMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PushFootnoteMark{${1:stack name}}\"\n      }\n    },\n    {\n      \"name\": \"PopFootnoteMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PopFootnoteMark{${1:stack name}}\"\n      }\n    },\n    {\n      \"name\": \"hfootfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vtypefraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FootnoteMinimum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FootnoteMainMinimum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigfoottolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotecarryratio\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bigfoot#c\": [\n      \"ruled\",\n      \"robust\",\n      \"fragile\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bigfoot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bigintcalc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bigintcalcNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcInv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcInv{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcAbs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcSgn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcSgn{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcMin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcMin{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcMax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcMax{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcCmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcCmp{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcOdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcOdd{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcInc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcInc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcDec{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcAdd{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcSub{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcShl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcShl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcShr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcShr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcMul{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcSqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcSqr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcFac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigintcalcFac{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcPow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcPow{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcDiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcDiv{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"bigintcalcMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigintcalcMod{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bigints.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bigint\"\n    },\n    {\n      \"name\": \"bigints\"\n    },\n    {\n      \"name\": \"bigintss\"\n    },\n    {\n      \"name\": \"bigintsss\"\n    },\n    {\n      \"name\": \"bigintssss\"\n    },\n    {\n      \"name\": \"bigoint\"\n    },\n    {\n      \"name\": \"bigoints\"\n    },\n    {\n      \"name\": \"bigointss\"\n    },\n    {\n      \"name\": \"bigointsss\"\n    },\n    {\n      \"name\": \"bigointssss\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bigstrut.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bigstrut\"\n    },\n    {\n      \"name\": \"bigstrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bigstrut[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\bigstrut\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bigstrutjot\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bigstrut\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bilingualpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"paracol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftpage\"\n    },\n    {\n      \"name\": \"rightpage\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bilingualpages\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/binarytree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BinaryTree\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BinaryTree[${3:options%keyvals}]{${1:path spec}}{${2:depth}}\",\n        \"keys\": [\n          \"\\\\BinaryTree#c,\\\\btreeset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"btreeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btreeset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\BinaryTree#c,\\\\btreeset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"btreesetexternal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btreesetexternal{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\btreesetexternal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\BinaryTree#c,\\\\btreeset#c\": [\n      \"default\",\n      \"grow=${1|up,down,left,right,none|}\",\n      \"root label anchor=\",\n      \"left label anchor=\",\n      \"right label anchor=\",\n      \"final label anchor=\",\n      \"root edge\",\n      \"draw missing\",\n      \"label on every edge\",\n      \"math labels\",\n      \"continue at path end\",\n      \"continue after turn\",\n      \"default color=\",\n      \"default color after turn\",\n      \"xscale=\",\n      \"yscale=\",\n      \"scale=\",\n      \"label distance=\",\n      \"sibling distance=\",\n      \"level distance=\",\n      \"sibling distance scales\",\n      \"level distance scales\",\n      \"top padding=\",\n      \"bottom padding=\",\n      \"left padding=\",\n      \"right padding=\",\n      \"framed\",\n      \"separate\",\n      \"external\",\n      \"external/use automatic file name\",\n      \"external/file name=${1:file}\"\n    ],\n    \"\\\\btreesetexternal#c\": [\n      \"use automatic file name\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biochemistry-colors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biocon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plantlike\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plantlike{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plantlike\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plantlike[${2:how}]{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"funguslike\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"funguslike{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"funguslike\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"funguslike[${2:how}]{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"animallike\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"animallike{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animallike\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"animallike[${2:how}]{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bactlike\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bactlike{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bactlike\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bactlike[${2:how}]{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newplant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newplant{${1:identifier}}{${2:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newfungus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfungus{${1:identifier}}{${2:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newanimal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newanimal{${1:identifier}}{${2:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newbact\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbact{${1:identifier}}{${2:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"plant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plant{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"plant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plant[${2:how%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fungus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fungus{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"fungus\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fungus[${2:how%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"animal{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"animal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"animal[${2:how%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bact{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"bact\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bact[${2:how%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultplante\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultplante{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultfunguse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultfunguse{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultanimale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultanimale{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultbacte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultbacte{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultfull{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultabbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultabbr{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\",\n          \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtaxon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtaxon{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"newtaxastyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtaxastyle{${1:name%specialDef}}{${2:style}}\"\n      }\n    },\n    {\n      \"name\": \"taxon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taxon{${1:pre!name!post}}\"\n      }\n    },\n    {\n      \"name\": \"taxonfirst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taxonfirst{${1:pre!name!post}}\"\n      }\n    },\n    {\n      \"name\": \"taxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taxit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"taxitalics\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\plantlike,\\\\funguslike,\\\\animallike,\\\\bactlike,\\\\newplant,\\\\newfungus,\\\\newanimal,\\\\newbact\": [\n      \"genus=${1:genus}\",\n      \"oldgenus=${1:genus}\",\n      \"epithet=${1:epithet}\",\n      \"author=${1:author}\",\n      \"oldauthor=${1:author}\",\n      \"year=${1:year}\",\n      \"oldyear=${1:year}\",\n      \"%biocontaxon\"\n    ],\n    \"\\\\plant,\\\\fungus,\\\\animal,\\\\bact,\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\": [\n      \"e\",\n      \"f\",\n      \"a\",\n      \"g\",\n      \"%biocontaxastyle\"\n    ],\n    \"\\\\defaultplante,\\\\defaultfunguse,\\\\defaultanimale,\\\\defaultbacte,\\\\defaultfull,\\\\defaultabbr\": [\n      \"ePlant\",\n      \"eAnimal\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biokey.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AAAN\"\n    },\n    {\n      \"name\": \"AAN\"\n    },\n    {\n      \"name\": \"AN\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"DD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DD{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FK\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FK{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"KOM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOM{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"OTSTUP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SameDecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SE{${1:label}}{${2:reflabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"SHRIFTN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SHRIFTZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SSYLKA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SSYLKA{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"STEZA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STEZA{${1:label}}{${2:reflabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"TE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TE{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TEZA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TEZA{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"VPRAVO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VPRAVO{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"ZZZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZZZ{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"biokey\"\n    },\n    {\n      \"name\": \"SDVIG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDVIG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:indent factor}]\"\n      }\n    },\n    {\n      \"name\": \"LE\"\n    },\n    {\n      \"name\": \"LE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:indent factor}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/biokey#c\": [\n      \"nomargin\",\n      \"margin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biokey#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biolinum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinumOsF\"\n    },\n    {\n      \"name\": \"biolinumLF\"\n    },\n    {\n      \"name\": \"biolinumkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstylenumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextGlyphY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextGlyphY{${1:type}}{${2:name}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumKeyGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumKeyGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"LKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKey{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyPad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyPad{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltEnt\"\n    },\n    {\n      \"name\": \"LKeyCtrlAltEnt\"\n    },\n    {\n      \"name\": \"LKeyReset\"\n    },\n    {\n      \"name\": \"LKeyTux\"\n    },\n    {\n      \"name\": \"LKeyWin\"\n    },\n    {\n      \"name\": \"LKeyMenu\"\n    },\n    {\n      \"name\": \"LKeyStrg\"\n    },\n    {\n      \"name\": \"LKeyCtrl\"\n    },\n    {\n      \"name\": \"LKeyAlt\"\n    },\n    {\n      \"name\": \"LKeyAltGr\"\n    },\n    {\n      \"name\": \"LKeyShift\"\n    },\n    {\n      \"name\": \"LKeyTab\"\n    },\n    {\n      \"name\": \"LKeyEnter\"\n    },\n    {\n      \"name\": \"LKeyCapsLock\"\n    },\n    {\n      \"name\": \"LKeyPos\"\n    },\n    {\n      \"name\": \"LKeyEntf\"\n    },\n    {\n      \"name\": \"LKeyEinf\"\n    },\n    {\n      \"name\": \"LKeyLeer\"\n    },\n    {\n      \"name\": \"LKeyEsc\"\n    },\n    {\n      \"name\": \"LKeyEnde\"\n    },\n    {\n      \"name\": \"LKeyCommand\"\n    },\n    {\n      \"name\": \"LKeyOptionKey\"\n    },\n    {\n      \"name\": \"LKeyBack\"\n    },\n    {\n      \"name\": \"LKeyUp\"\n    },\n    {\n      \"name\": \"LKeyDown\"\n    },\n    {\n      \"name\": \"LKeyLeft\"\n    },\n    {\n      \"name\": \"LKeyRight\"\n    },\n    {\n      \"name\": \"LKeyPgUp\"\n    },\n    {\n      \"name\": \"LKeyPgDown\"\n    },\n    {\n      \"name\": \"LKeyAt\"\n    },\n    {\n      \"name\": \"LKeyFn\"\n    },\n    {\n      \"name\": \"LKeyHome\"\n    },\n    {\n      \"name\": \"LKeyDel\"\n    },\n    {\n      \"name\": \"LKeySpace\"\n    },\n    {\n      \"name\": \"LKeyScreenUp\"\n    },\n    {\n      \"name\": \"LKeyScreenDown\"\n    },\n    {\n      \"name\": \"LKeyIns\"\n    },\n    {\n      \"name\": \"LKeyEnd\"\n    },\n    {\n      \"name\": \"LKeyGNU\"\n    },\n    {\n      \"name\": \"LKeyPageUp\"\n    },\n    {\n      \"name\": \"LKeyPageDown\"\n    },\n    {\n      \"name\": \"LMouseEmpty\"\n    },\n    {\n      \"name\": \"LMouseN\"\n    },\n    {\n      \"name\": \"LMouseL\"\n    },\n    {\n      \"name\": \"LMouseM\"\n    },\n    {\n      \"name\": \"LMouseR\"\n    },\n    {\n      \"name\": \"LMouseLR\"\n    },\n    {\n      \"name\": \"LMouseIIEmpty\"\n    },\n    {\n      \"name\": \"LMouseIIN\"\n    },\n    {\n      \"name\": \"LMouseIIL\"\n    },\n    {\n      \"name\": \"LMouseIIR\"\n    },\n    {\n      \"name\": \"LMouseIILR\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biolinum#c\": [\n      \"sfdefault\",\n      \"type1\",\n      \"nofontspec\",\n      \"lining\",\n      \"oldstyle\",\n      \"sflining\",\n      \"sfoldstyle\",\n      \"tabular\",\n      \"sftabular\",\n      \"sfproportional\",\n      \"scaled=${1:factor}\",\n      \"defaultfeatures={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biolinum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/biolist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SEM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEM{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SEM*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEM*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DOUBLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VDVID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSEMEYSTVO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSEMVID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theVID\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/biotex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textopo\"\n    },\n    {\n      \"name\": \"texshade\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BioTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biotex#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biotex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bitelist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BiteMake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteMake{${1:def-cmd}}{${2:cmd}}{${3:find}}\"\n      }\n    },\n    {\n      \"name\": \"BiteFindByIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteFindByIn{${1:find}}{${2:cmd}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"BiteSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiteStop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiteCrit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiteMakeIfOnly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteMakeIfOnly{${1:def-cmd}}{${2:cmd}}{${3:find}}\"\n      }\n    },\n    {\n      \"name\": \"BiteIfCrit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteIfCrit{${1:suffix}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"BiteMakeIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteMakeIf{${1:def-cmd}}{${2:cmd}}{${3:find}}\"\n      }\n    },\n    {\n      \"name\": \"BiteFindByInIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"BiteFindByInIn{${1:find}}{${2:cmd}}{${3:list}}{${4:yes}}{${5:no}}\"\n      }\n    },\n    {\n      \"name\": \"BiteIfSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiteGetNextWord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteGetNextWord{${1:list}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"BiteFindByInBraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"BiteFindByInBraces{${1:find}}{${2:cmd}}{${3:list}}{${4:yes}}{${5:no}}\"\n      }\n    },\n    {\n      \"name\": \"BiteMakeIfBraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BiteMakeIfBraces{${1:def-cmd}}{${2:cmd}}{${3:find}}\"\n      }\n    },\n    {\n      \"name\": \"BiteTidyI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BiteTidyI{${1:prefix}}{${2:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"BiteTidyII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BiteTidied\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bitpattern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bpLittleEndian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpBigEndian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNumberBitsAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNumberBitsBelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNoBitNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNumberFieldsOnce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNumberFieldsTwice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpNumberAllBits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpStartAtBit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpStartAtBit{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bpSetBitWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpSetBitWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"bpSetTickHeight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpSetTickHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"bpFormatField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpFormatField{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bpFormatBitNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpFormatBitNumber{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bitpattern#c\": [\n      \"littleEndian\",\n      \"bigEndian\",\n      \"numberBitsAbove\",\n      \"numberBitsBelow\",\n      \"noBitNumbers\",\n      \"numberFieldsOnce\",\n      \"numberFieldsTwice\",\n      \"numberAllBits\"\n    ],\n    \"\\\\bitpattern\": [\n      \"littleEndian\",\n      \"bigEndian\",\n      \"numberBitsAbove\",\n      \"numberBitsBelow\",\n      \"noBitNumbers\",\n      \"numberFieldsOnce\",\n      \"numberFieldsTwice\",\n      \"numberAllBits\",\n      \"startBit=${1:number}\",\n      \"bitWidth=\",\n      \"tickHeight=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bitpattern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bitset.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"bigintcalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bitsetReset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitsetReset{${1:BitSet}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetLet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetLet{${1:BitSet1}}{${2:BitSet2}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSetBin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetSetBin{${1:BitSet}}{${2:BinaryNumber}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSetOct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetSetOct{${1:BitSet}}{${2:OctalNumber}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSetHex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetSetHex{${1:BitSet}}{${2:HexadecimalNumber}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSetDec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetSetDec{${1:BitSet}}{${2:DecimalNumber}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGetBin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetGetBin{${1:BitSet}}{${2:MinSize}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGetOct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetGetOct{${1:BitSet}}{${2:MinSize}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGetHex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetGetHex{${1:BitSet}}{${2:MinSize}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGetDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitsetGetDec{${1:BitSet}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetAnd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetAnd{${1:BitSet1}}{${2:BitSet2}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetAndNot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetAndNot{${1:BitSet1}}{${2:BitSet2}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetOr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetOr{${1:BitSet1}}{${2:BitSet2}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetXor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetXor{${1:BitSet1}}{${2:BitSet2}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetShiftLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetShiftLeft{${1:BitSet}}{${2:ShiftAmount}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetShiftRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetShiftRight{${1:BitSet}}{${2:ShiftAmount}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetClear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetClear{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetSet{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetFlip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetFlip{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSetValue\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bitsetSetValue{${1:BitSet}}{${2:Index}}{${3:Bit}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetGet{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetNextClearBit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetNextClearBit{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetNextSetBit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitsetNextSetBit{${1:BitSet}}{${2:Index}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetGetSetBitList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitsetGetSetBitList{${1:BitSet}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitsetSize{${1:BitSet}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetCardinality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitsetCardinality{${1:BitSet}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetIsDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bitsetIsDefined{${1:BitSet}}{${2:Then}}{${3:Else}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetIsEmpty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bitsetIsEmpty{${1:BitSet}}{${2:Then}}{${3:Else}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetEquals\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bitsetEquals{${1:BitSet1}}{${2:BitSet2}}{${3:Then}}{${4:Else}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetIntersects\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bitsetIntersects{${1:BitSet1}}{${2:BitSet2}}{${3:Then}}{${4:Else}}\"\n      }\n    },\n    {\n      \"name\": \"bitsetQuery\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bitsetQuery{${1:BitSet}}{${2:Index}}{${3:Then}}{${4:Else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bitter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bitter\"\n    },\n    {\n      \"name\": \"Bitterfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bitter#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bitter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bizcard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"bizcard\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bizcard#c\": [\n      \"none\",\n      \"frame\",\n      \"star\",\n      \"flat\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bizcard#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bkltprnt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bookletpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"target\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"target{${1:mag}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"source{${1:mag}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"setpdftargetpages\"\n    },\n    {\n      \"name\": \"setdvipstargetpages\"\n    },\n    {\n      \"name\": \"targetBooklet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"targettopbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoupemptypage\"\n    },\n    {\n      \"name\": \"twoupclearpage\"\n    },\n    {\n      \"name\": \"TwoupWrites\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouparticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoupplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouplandscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twouponetoone\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bkltprnt#c\": [\n      \"four\",\n      \"eight\",\n      \"sixteen\",\n      \"thirtytwo\",\n      \"twouparticle\",\n      \"largetypeblock\",\n      \"1to1\",\n      \"landscape\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bkltprnt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/blindtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blinddocument\"\n    },\n    {\n      \"name\": \"Blinddocument\"\n    },\n    {\n      \"name\": \"blindtext\"\n    },\n    {\n      \"name\": \"blindtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindtext[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindtext\"\n    },\n    {\n      \"name\": \"Blindtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blindtext[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindtext\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Blindtext[${1:paragraphs}][${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blindlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"Blindlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Blindlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistlist{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blindlistlist[${2:level}]{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistlist{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"blindlistlist[${2:level}]{${1:list env}}[${3:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blindlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"Blindlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Blindlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindlistlistoptional{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blindlistlistoptional[${2:level}]{${1:list env}}\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"blindlistlistoptional{${1:list env}}[${2:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindlistlistoptional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"blindlistlistoptional[${2:level}]{${1:list env}}[${3:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blinditemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blinditemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blinditemize[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindenumerate[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blinddescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blinddescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blinddescription[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blinditemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blinditemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blinditemize[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blindenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blindenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blindenumerate[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"Blinddescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blinddescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blinddescription[${1:repetition}]\"\n      }\n    },\n    {\n      \"name\": \"blindmathpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmarkup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindmarkup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parstart{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"parend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifblindmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindmathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindtoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindtocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindbible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindbibletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindbiblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindrandomtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindrandomfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifblindpangram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindpangramtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blindpangramfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBlindtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblindlistlevel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/blindtext#c\": [\n      \"bible\",\n      \"random\",\n      \"pangram\",\n      \"math\",\n      \"toc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/blindtext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/blkarray.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BAnewcolumntype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BAnewcolumntype{${1:name%cmd}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"BAnewcolumntype\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BAnewcolumntype[${3:args}]{${1:name%cmd}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"BAmulticolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BAmulticolumn{${1:cols}}{${2:pos}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"Left\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Left{${1:text}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"Right\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Right{${1:text}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"BAenum\"\n    },\n    {\n      \"name\": \"theBAenumi\"\n    },\n    {\n      \"name\": \"testBAtablenotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"testBAtablenotes{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"BAtablenotestrue\"\n    },\n    {\n      \"name\": \"BAtablenotesfalse\"\n    },\n    {\n      \"name\": \"BAparfootnotes\"\n    },\n    {\n      \"name\": \"BAnoalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BAnoalign{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BAnoalign*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BAnoalign*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BAmultirow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BAmultirow{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"BAmultirow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BAmultirow{${1:dimen%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"BAhline\"\n    },\n    {\n      \"name\": \"BAhhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BAhhline{${1:colspec}}\"\n      }\n    },\n    {\n      \"name\": \"BAextraheightafterhline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAextrarowheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAtracing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAarrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BAdoublerulesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"blockarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"block*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/blkcntrl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"smallblocks\"\n    },\n    {\n      \"name\": \"normalblocks\"\n    },\n    {\n      \"name\": \"PreChunk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreFootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreQuotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreVerse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/blkcntrl#c\": [\n      \"smallblocks\",\n      \"normalblocks\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/blkcntrl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/blochsphere.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawBall\"\n    },\n    {\n      \"name\": \"drawBall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drawBall[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawBallGrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawBallGrid{${1:lat deg sep}}{${2:long deg sep}}\"\n      }\n    },\n    {\n      \"name\": \"drawBallGrid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drawBallGrid[${3:options%keyvals}]{${1:lat deg sep}}{${2:long deg sep}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setDrawingPlane\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDrawingPlane{${1:tilt angle}}{${2:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"setDrawingPlane\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setDrawingPlane[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setLatitudinalDrawingPlane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLatitudinalDrawingPlane{${1:latitude}}\"\n      }\n    },\n    {\n      \"name\": \"setLatitudinalDrawingPlane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setLatitudinalDrawingPlane[${2:options%keyvals}]{${1:latitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setLongitudinalDrawingPlane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLongitudinalDrawingPlane{${1:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"setLongitudinalDrawingPlane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setLongitudinalDrawingPlane[${2:options%keyvals}]{${1:longitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawCircle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawCircle{${1:tilt angle}}{${2:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawCircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drawCircle[${3:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawGreatCircle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawGreatCircle{${1:tilt angle}}{${2:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawGreatCircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drawGreatCircle[${3:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawSmallCircle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawSmallCircle{${1:tilt angle}}{${2:rotation angle}}{${3:offset latitude}}\"\n      }\n    },\n    {\n      \"name\": \"drawSmallCircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawSmallCircle[${4:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}{${3:offset latitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawLatitudeCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawLatitudeCircle{${1:latitude}}\"\n      }\n    },\n    {\n      \"name\": \"drawLatitudeCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawLatitudeCircle[${2:options%keyvals}]{${1:latitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawLongitudeCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawLongitudeCircle{${1:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"drawLongitudeCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawLongitudeCircle[${2:options%keyvals}]{${1:longitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawRotationLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"drawRotationLeft{${1:tilt angle}}{${2:rotation angle}}{${3:axis offset}}{${4:clear angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawRotationLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"drawRotationLeft[${5:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}{${3:axis offset}}{${4:clear angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawRotationRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"drawRotationRight{${1:tilt angle}}{${2:rotation angle}}{${3:axis offset}}{${4:clear angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawRotationRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"drawRotationRight[${5:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}{${3:axis offset}}{${4:clear angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawAxis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawAxis{${1:tilt angle}}{${2:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawAxis\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drawAxis[${3:options%keyvals}]{${1:tilt angle}}{${2:rotation angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"labelPolar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"labelPolar{${1:TikZ label}}{${2:tilt angle}}{${3:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"labelPolar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"labelPolar[${4:options%keyvals}]{${1:TikZ label}}{${2:tilt angle}}{${3:rotation angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"labelLatLon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"labelLatLon{${1:TikZ label}}{${2:latitude}}{${3:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"labelLatLon\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"labelLatLon[${4:options%keyvals}]{${1:TikZ label}}{${2:latitude}}{${3:longitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawStatePolar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawStatePolar{${1:TikZ label}}{${2:tilt angle}}{${3:rotation angle}}\"\n      }\n    },\n    {\n      \"name\": \"drawStatePolar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawStatePolar[${4:options%keyvals}]{${1:TikZ label}}{${2:tilt angle}}{${3:rotation angle}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawStateLatLon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawStateLatLon{${1:TikZ label}}{${2:latitude}}{${3:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"drawStateLatLon\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawStateLatLon[${4:options%keyvals}]{${1:TikZ label}}{${2:latitude}}{${3:longitude}}\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"computeOffset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computeOffset{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"computeOffset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"computeOffset[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"computeVisibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"computeVisibility{${1:name1}}{${2:name2}}{${3:name3}}{${4:name4}}\"\n      }\n    },\n    {\n      \"name\": \"computeVisibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"computeVisibility[${5:options%keyvals}]{${1:name1}}{${2:name2}}{${3:name3}}{${4:name4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"blochsphere\"\n    },\n    {\n      \"name\": \"blochsphere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\": [\n      \"radius=\",\n      \"tilt=${1:degrees}\",\n      \"rotation=${1:degrees}\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"style={${1:TikZ options}}\",\n      \"scale=${1:factor}\",\n      \"plane=${1:name}\",\n      \"shift={${1:x,y,z}}\",\n      \"ball=${1|3d,circle,none|}\",\n      \"statecolor=\",\n      \"statewidth=\",\n      \"axisarrow=${1:arrow}\",\n      \"labelmark\",\n      \"nested\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/blochsphere#c,\\\\begin{blochsphere},\\\\drawBall,\\\\drawBallGrid,\\\\setDrawingPlane,\\\\setLatitudinalDrawingPlane,\\\\setLongitudinalDrawingPlane,\\\\drawCircle,\\\\drawGreatCircle,\\\\drawSmallCircle,\\\\drawLatitudeCircle,\\\\drawLongitudeCircle,\\\\drawRotationLeft,\\\\drawRotationRight,\\\\drawAxis,\\\\labelPolar,\\\\labelLatLon,\\\\drawStatePolar,\\\\drawStateLatLon,\\\\computeOffset,\\\\computeVisibility\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bloques.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bStart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bStart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bPlusDown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bPlusDown{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bPlusUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bPlusUp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bMinusDown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMinusDown{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bMinusUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMinusUp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bEnd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bGain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bGain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bGainPlus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bGainPlus{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bGainMinus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bGainMinus{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bMinusF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMinusF{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bPlusF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bPlusF{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bFeedBack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bFeedBack{${1:text}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bCrossGain\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bCrossGain{${1:text}}{${2:node name1}}{${3:node name2}}\"\n      }\n    },\n    {\n      \"name\": \"bNewStart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bNewStart{${1:text}}{${2:position}}\"\n      }\n    },\n    {\n      \"name\": \"bMarkNode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMarkNode{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bMarkNodeUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMarkNodeUp{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bMarkNodeDown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bMarkNodeDown{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"bShadow\"\n    },\n    {\n      \"name\": \"bColorB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bColorB{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bColorT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bColorT{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bColorL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bColorL{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ydistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ydistance{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"xdistancia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydistancia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minaltura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorfondo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colortexto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorlinea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sombra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ancholinea\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/blowup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blowUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blowUp{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\blowUp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tPaperWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tPaperHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oPaperWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oPaperWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\blowUp\": [\n      \"target=${1:paper size}\",\n      \"origin=${1:paper size}\",\n      \"h-mirroring\",\n      \"v-mirroring\",\n      \"landscape\",\n      \"noscale\",\n      \"pos=${1|left,right,inside,outside,top,bottom|}\",\n      \"onepage\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/blox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bXInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXInput{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bXInput[${2:label}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXOutput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXOutput{${1:name}}{${2:preceding node}}\"\n      }\n    },\n    {\n      \"name\": \"bXOutput\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXOutput[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinkName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLinkName{${1:previous node}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinkName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXLinkName[${3:distance%l}]{${1:previous node}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"bXBloc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXBloc{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBloc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXBloc[${4:distance%l}]{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXBlocL{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXBlocL[${4:distance%l}]{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXBlocr{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXBlocr[${4:distance%l}]{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocrL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXBlocrL{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocrL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXBlocrL[${4:distance%l}]{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocPotato\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXBlocPotato{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXBlocPotato\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXBlocPotato[${4:distance%l}]{${1:name}}{${2:contents}}{${3:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXonlyOneBloc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXonlyOneBloc{${1:input label}}{${2:block label}}{${3:output label}}\"\n      }\n    },\n    {\n      \"name\": \"bXonlyOneBloc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXonlyOneBloc[${4:distance%l}]{${1:input label}}{${2:block label}}{${3:output label}}\"\n      }\n    },\n    {\n      \"name\": \"bXComp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXComp{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXComp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXComp[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXComp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXComp*{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXComp*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXComp*[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bXSum{${1:name}}{${2:previous node}}{${3:a}}{${4:b}}{${5:c}}\"\n      }\n    },\n    {\n      \"name\": \"bXSum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bXSum[${6:distance%l}]{${1:name}}{${2:previous node}}{${3:a}}{${4:b}}{${5:c}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXCompa{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompa\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXCompa[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompa*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXCompa*{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompa*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXCompa*[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSuma\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXSuma{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSuma\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXSuma[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSuma*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXSuma*{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSuma*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXSuma*[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXCompb{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXCompb[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXCompb*{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompb*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXCompb*[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSumb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXSumb{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSumb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXSumb[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSumb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXSumb*{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXSumb*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXSumb*[${3:distance%l}]{${1:name}}{${2:previous node}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompSum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bXCompSum{${1:name}}{${2:previous node}}{${3:n}}{${4:s}}{${5:w}}{${6:e}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompSum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"bXCompSum[${7:distance%l}]{${1:name}}{${2:previous node}}{${3:n}}{${4:s}}{${5:w}}{${6:e}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompSum*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bXCompSum*{${1:name}}{${2:previous node}}{${3:n}}{${4:s}}{${5:w}}{${6:e}}\"\n      }\n    },\n    {\n      \"name\": \"bXCompSum*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"bXCompSum*[${7:distance%l}]{${1:name}}{${2:previous node}}{${3:n}}{${4:s}}{${5:w}}{${6:e}}\"\n      }\n    },\n    {\n      \"name\": \"bXLink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLink{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXLink[${3:label}]{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinkxy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLinkxy{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinkxy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXLinkxy[${3:label}]{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinkyx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLinkyx{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinktyx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLinktyx{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXLinktb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLinktb{${1:previous node}}{${2:next node}}\"\n      }\n    },\n    {\n      \"name\": \"bXReturn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bXReturn{${1:previous node}}{${2:next node}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"bXReturn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bXReturn[${4:distance%l}]{${1:previous node}}{${2:next node}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"bXChain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXChain{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bXChain\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXChain[${3:distance%l}]{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bXChainReturn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXChainReturn{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bXChainReturn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXChainReturn[${3:distance%l}]{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bXLoop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXLoop{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bXLoop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXLoop[${3:distance%l}]{${1:previous node}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"lastx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXBranchx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXBranchx{${1:previous node}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXBranchx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXBranchx[${3:distance%l}]{${1:previous node}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXBranchy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bXBranchy{${1:previous node}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXBranchy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bXBranchy[${3:distance%l}]{${1:previous node}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"bXDefaultLineStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXLineStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXLineStyle{${1:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"bXStyleBlocDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXStyleBloc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXStyleBloc{${1:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"bXStyleSumDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXStyleSum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXStyleSum{${1:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"bXLabelStyleDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXLabelStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXLabelStyle{${1:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"bXStylePotatoDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bXStylePotato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bXStylePotato{${1:TikZ keys}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"hm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hm{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"bmdefine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bmdefine{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"hmdefine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hmdefine{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"boldsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldsymbol{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"heavysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heavysymbol{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBoldMathCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareBoldMathCommand[${3:math version%keyvals}]{${1:cmd}}{${2:def}}\",\n        \"keys\": [\n          \"\\\\DeclareBoldMathCommand#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareBoldMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBoldMathCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bmmax\"\n    },\n    {\n      \"name\": \"hmmax\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bm#c\": [\n      \"nopmb\",\n      \"warn\",\n      \"info\",\n      \"silent\"\n    ],\n    \"\\\\DeclareBoldMathCommand#c\": [\n      \"bold\",\n      \"heavy\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bmpsize-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    },\n    {\n      \"name\": \"fp-snap\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bmpsize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"bmpsize-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bmpsizesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmpsizesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bmpsizesetup,\\\\includegraphics\",\n          \"\\\\bmpsizesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bmpsizesetup,\\\\includegraphics\": [\n      \"resolutionunit=\",\n      \"defaultresolution=${1:resolution}\",\n      \"resolution=${1:resolution}\",\n      \"bmpsizefast\"\n    ],\n    \"\\\\bmpsizesetup\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bnumexpr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintbinhex\"\n    },\n    {\n      \"name\": \"xintcore\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bnumeval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnumeval{${1:integer-expr list}}\"\n      }\n    },\n    {\n      \"name\": \"evaltohex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evaltohex{${1:hex-expr list}}\"\n      }\n    },\n    {\n      \"name\": \"bnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnumsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bnumsetup,\\\\bnumexprsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bnumhextodec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnumhextodec{${1:hex integer}}\"\n      }\n    },\n    {\n      \"name\": \"bnumprintone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnumprintonetohex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnumprintonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnumdefinfix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bnumdefinfix{${1:operator}}{${2:macro}}{${3:L-prec}}{${4:R-prec}}\"\n      }\n    },\n    {\n      \"name\": \"bnumdefpostfix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bnumdefpostfix{${1:operator}}{${2:macro}}{${3:L-prec}}\"\n      }\n    },\n    {\n      \"name\": \"BNErestorecatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnumexpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnebareeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnebareeval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"XINTfstop\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bnumexpr#c\": [\n      \"custom\"\n    ],\n    \"\\\\bnumsetup,\\\\bnumexprsetup\": [\n      \"add=${1:macro}\",\n      \"sub=${1:macro}\",\n      \"mul=${1:macro}\",\n      \"divround=${1:macro}\",\n      \"div=${1:macro}\",\n      \"mod=${1:macro}\",\n      \"pow=${1:macro}\",\n      \"fac=${1:macro}\",\n      \"opp=${1:macro}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bnumexpr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bodegraph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifsym\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"semilog\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"semilog{${1:min-decades}}{${2:max-decades}}{${3:y-min}}{${4:y-max}}\"\n      }\n    },\n    {\n      \"name\": \"semilog*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"semilog*{${1:min-decades}}{${2:max-decades}}{${3:y-min}}{${4:y-max}}\"\n      }\n    },\n    {\n      \"name\": \"semilogNG\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"semilogNG{${1:decades}}{${2:amplitude}}\"\n      }\n    },\n    {\n      \"name\": \"UnitedB\"\n    },\n    {\n      \"name\": \"UniteDegre\"\n    },\n    {\n      \"name\": \"OrdBode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrdBode{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Unites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unites{${1:label axe X}}{${2:label axe Y}}\"\n      }\n    },\n    {\n      \"name\": \"Unitx\"\n    },\n    {\n      \"name\": \"Unity\"\n    },\n    {\n      \"name\": \"BodeGraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BodeGraph{${1:domain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"BodeGraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BodeGraph[${3:options}]{${1:domain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"BodeGraph*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BodeGraph*{${1:domain}}{${2:function}}{${3:[${4:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"BodeGraph*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"BodeGraph*[${4:options}]{${1:domain}}{${2:function}}{${3:[${5:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"BodePoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BodePoint{${1:list}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"BodePoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BodePoint[${3:options%keyvals}]{${1:list}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"NomGnuplot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NomGnuplot[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"POAmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"POAmp{${1:K}}{${2:tau}}\"\n      }\n    },\n    {\n      \"name\": \"POAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"POAmpAsymp{${1:K}}{${2:tau}}\"\n      }\n    },\n    {\n      \"name\": \"POArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"POArg{${1:K}}{${2:tau}}\"\n      }\n    },\n    {\n      \"name\": \"POArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"POArgAsymp{${1:K}}{${2:tau}}\"\n      }\n    },\n    {\n      \"name\": \"SOAmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SOAmp{${1:K}}{${2:z}}{${3:Wn}}\"\n      }\n    },\n    {\n      \"name\": \"SOAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SOAmpAsymp{${1:K}}{${2:z}}{${3:Wn}}\"\n      }\n    },\n    {\n      \"name\": \"SOArg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SOArg{${1:K}}{${2:z}}{${3:Wn}}\"\n      }\n    },\n    {\n      \"name\": \"SOArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SOArgAsymp{${1:K}}{${2:z}}{${3:Wn}}\"\n      }\n    },\n    {\n      \"name\": \"IntAmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IntAmp{${1:K}}\"\n      }\n    },\n    {\n      \"name\": \"IntArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IntArg{${1:K}}\"\n      }\n    },\n    {\n      \"name\": \"KAmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAmp{${1:K}}\"\n      }\n    },\n    {\n      \"name\": \"KArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KArg{${1:K}}\"\n      }\n    },\n    {\n      \"name\": \"RetAmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RetAmp{${1:Tr}}\"\n      }\n    },\n    {\n      \"name\": \"RetArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RetArg{${1:Tr}}\"\n      }\n    },\n    {\n      \"name\": \"POgAmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"POgAmp{${1:K}}{${2:a1}}{${3:a2}}{${4:b1}}{${5:b2}}\"\n      }\n    },\n    {\n      \"name\": \"POgArg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"POgArg{${1:K}}{${2:a1}}{${3:a2}}{${4:b1}}{${5:b2}}\"\n      }\n    },\n    {\n      \"name\": \"POgAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"POgAmpAsymp{${1:K}}{${2:a1}}{${3:a2}}{${4:b1}}{${5:b2}}\"\n      }\n    },\n    {\n      \"name\": \"POgArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"POgArgAsymp{${1:K}}{${2:a1}}{${3:a2}}{${4:b1}}{${5:b2}}\"\n      }\n    },\n    {\n      \"name\": \"PIAmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PIAmp{${1:Kp}}{${2:Ti}}\"\n      }\n    },\n    {\n      \"name\": \"PIArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PIArg{${1:Kp}}{${2:Ti}}\"\n      }\n    },\n    {\n      \"name\": \"PIAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PIAmpAsymp{${1:Kp}}{${2:Ti}}\"\n      }\n    },\n    {\n      \"name\": \"PIArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PIArgAsymp{${1:Kp}}{${2:Ti}}\"\n      }\n    },\n    {\n      \"name\": \"PDAmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PDAmp{${1:Kp}}{${2:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PDArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PDArg{${1:Kp}}{${2:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PDAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PDAmpAsymp{${1:Kp}}{${2:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PDArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PDArgAsymp{${1:Kp}}{${2:Td}}\"\n      }\n    },\n    {\n      \"name\": \"APAmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APAmp{${1:Kp}}{${2:T1}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"APArg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APArg{${1:Kp}}{${2:Ti}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"APAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APAmpAsymp{${1:Kp}}{${2:T1}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"APArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"APArgAsymp{${1:Kp}}{${2:Ti}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"RPAmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RPAmp{${1:Kp}}{${2:T1}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"RPArg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RPArg{${1:Kp}}{${2:Ti}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"RPAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RPAmpAsymp{${1:Kp}}{${2:T1}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"RPArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RPArgAsymp{${1:Kp}}{${2:Ti}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"PIDAmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PIDAmp{${1:Kp}}{${2:Ti}}{${3:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PIDArg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PIDArg{${1:Kp}}{${2:Ti}}{${3:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PIDAmpAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PIDAmpAsymp{${1:Kp}}{${2:Ti}}{${3:Td}}\"\n      }\n    },\n    {\n      \"name\": \"PIDArgAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PIDArgAsymp{${1:Kp}}{${2:Ti}}{${3:Td}}\"\n      }\n    },\n    {\n      \"name\": \"BlackGraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackGraph{${1:domain}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackGraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BlackGraph[${3:options}]{${1:domain}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackGraph*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BlackGraph*{${1:domain}}{${2:argument,module}}{${3:[${4:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"BlackGraph*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"BlackGraph*[${4:options}]{${1:domain}}{${2:argument,module}}{${3:[${5:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"BlackPoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackPoint{${1:pulse list}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackPoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BlackPoint[${3:options%keyvals}]{${1:pulse list}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackPoint*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackPoint*{${1:pulse list}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackPoint*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BlackPoint*[${3:options%keyvals}]{${1:pulse list}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackText\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackText{${1:pulse/pos/text}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackText\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BlackText[${3:options%keyvals}]{${1:pulse/pos/text}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackText*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackText*{${1:pulse/pos/text}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackText*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BlackText*[${3:options%keyvals}]{${1:pulse/pos/text}}{${2:argument,module}}\"\n      }\n    },\n    {\n      \"name\": \"BlackGrid\"\n    },\n    {\n      \"name\": \"BlackGrid*\"\n    },\n    {\n      \"name\": \"valgridBx\"\n    },\n    {\n      \"name\": \"valgridBy\"\n    },\n    {\n      \"name\": \"AbaqueBlack\"\n    },\n    {\n      \"name\": \"AbaqueBlack*\"\n    },\n    {\n      \"name\": \"IsoModule\"\n    },\n    {\n      \"name\": \"IsoModule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IsoModule[${1:amplitudes}]\"\n      }\n    },\n    {\n      \"name\": \"IsoArgument\"\n    },\n    {\n      \"name\": \"IsoArgument\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IsoArgument[${1:amplitudes}]\"\n      }\n    },\n    {\n      \"name\": \"StyleIsoM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"StyleIsoM[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"StyleIsoA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"StyleIsoA[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"NyquistGraph\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NyquistGraph{${1:domain}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistGraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NyquistGraph[${4:options}]{${1:domain}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistGraph*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NyquistGraph*{${1:domain}}{${2:module}}{${3:argument}}{${4:[${5:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistGraph*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NyquistGraph*[${5:options}]{${1:domain}}{${2:module}}{${3:argument}}{${4:[${6:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NyquistPoint{${1:pulse list}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NyquistPoint[${4:options%keyvals}]{${1:pulse list}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPoint*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NyquistPoint*{${1:pulse list}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPoint*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NyquistPoint*[${4:options%keyvals}]{${1:pulse list}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistText\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NyquistText{${1:pulse/pos/text}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistText\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NyquistText[${4:options%keyvals}]{${1:pulse/pos/text}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistText*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NyquistText*{${1:pulse/pos/text}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistText*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NyquistText*[${4:options%keyvals}]{${1:pulse/pos/text}}{${2:module}}{${3:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistGrid\"\n    },\n    {\n      \"name\": \"valgridNx\"\n    },\n    {\n      \"name\": \"valgridNy\"\n    },\n    {\n      \"name\": \"RepTemp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RepTemp{${1:domain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"RepTemp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RepTemp[${3:options}]{${1:domain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"RepTemp*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RepTemp*{${1:domain}}{${2:function}}{${3:[${4:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"RepTemp*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RepTemp*[${4:options}]{${1:domain}}{${2:function}}{${3:[${5:node options}]text}}\"\n      }\n    },\n    {\n      \"name\": \"TempGrid\"\n    },\n    {\n      \"name\": \"TempGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TempGrid[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"AbaqueTRsecond\"\n    },\n    {\n      \"name\": \"AbaqueDepassement\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzset#c,\\\\begin{tikzpicture}#c\": [\n      \"Bode lines/.style={${1:options}}\",\n      \"asymp lines/.style={${1:options}}\",\n      \"semilog lines/.style={${1:options}}\",\n      \"semilog half lines/.style={${1:options}}\",\n      \"semilog label x/.style={${1:options}}\",\n      \"semilog label y/.style={${1:options}}\",\n      \"Black lines/.style={${1:options}}\",\n      \"Black grid/.style={${1:options}}\",\n      \"Black label points/.style={${1:options}}\",\n      \"Black label axes/.style={${1:options}}\",\n      \"Black abaque mag/.style={${1:options}}\",\n      \"Black abaque phase/.style={${1:options}}\",\n      \"ref points/.style={${1:options}}\",\n      \"Nyquist lines/.style={${1:options}}\",\n      \"Nyquist grid/.style={${1:options}}\",\n      \"Nyquist label axes/.style={${1:options}}\",\n      \"Nyquist label points/.style={${1:options}}\",\n      \"Temp lines/.style={${1:options}}\",\n      \"Temp grid/.style={${1:options}}\",\n      \"Temp label axes/.style={${1:options}}\",\n      \"Temp label points/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bodeplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"pgfplotslibrarygroupplots\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addBodeComponentPlot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addBodeComponentPlot{${1:plot-command}}\"\n      }\n    },\n    {\n      \"name\": \"addBodeComponentPlot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addBodeComponentPlot[${2:plot-options}]{${1:plot-command}}\"\n      }\n    },\n    {\n      \"name\": \"MagK\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagK{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagKAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagKAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagKLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagKLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhK\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhK{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhKAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhKAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhKLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhKLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagDel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagDel{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhDel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhDel{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagPole\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagPole{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagPoleLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagPoleLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagPoleAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagPoleAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhPole\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhPole{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhPoleLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhPoleLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhPoleAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhPoleAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagZero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagZero{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagZeroLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagZeroLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagZeroAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagZeroAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhZero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhZero{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhZeroLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhZeroLin{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"PhZeroAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhZeroAsymp{${1:real-part}}{${2:imaginary-part}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSPoles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSPoles{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSPolesLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSPolesLin{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSPolesAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSPolesAsymp{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSPoles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSPoles{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSPolesLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSPolesLin{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSPolesAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSPolesAsymp{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSZeros\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSZeros{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSZerosLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSZerosLin{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSZerosAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSZerosAsymp{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSZeros\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSZeros{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSZerosLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSZerosLin{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"PhCSZerosAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhCSZerosAsymp{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSPolesPeak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSPolesPeak{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSPolesPeak\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MagCSPolesPeak[${3:draw-options}]{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSZerosPeak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagCSZerosPeak{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagCSZerosPeak\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MagCSZerosPeak[${3:draw-options}]{${1:zeta}}{${2:omega-n}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOPoles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOPoles{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOPolesLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOPolesLin{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOPolesAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOPolesAsymp{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOPoles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOPoles{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOPolesLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOPolesLin{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOPolesAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOPolesAsymp{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOZeros\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOZeros{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOZerosLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOZerosLin{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOZerosAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOZerosAsymp{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOZeros\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOZeros{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOZerosLin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOZerosLin{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"PhSOZerosAsymp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PhSOZerosAsymp{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOPolesPeak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOPolesPeak{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOPolesPeak\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MagSOPolesPeak[${3:draw-options}]{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOZerosPeak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MagSOZerosPeak{${1:a1}}{${2:a0}}\"\n      }\n    },\n    {\n      \"name\": \"MagSOZerosPeak\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MagSOZerosPeak[${3:draw-options}]{${1:a1}}{${2:a0}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"BodePlot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:min-freq}}{${2:max-freq}}\"\n      }\n    },\n    {\n      \"name\": \"BodePlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${4:obj1/{${1:opt1}},...}]{${2:min-freq}}{${3:max-freq}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPlot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:min-freq}}{${2:max-freq}}\"\n      }\n    },\n    {\n      \"name\": \"NyquistPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${4:obj1/{${1:opt1}},...}]{${2:min-freq}}{${3:max-freq}}\"\n      }\n    },\n    {\n      \"name\": \"NicholsChart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:min-freq}}{${2:max-freq}}\"\n      }\n    },\n    {\n      \"name\": \"NicholsChart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${4:obj1/{${1:opt1}},...}]{${2:min-freq}}{${3:max-freq}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bodeplot#c\": [\n      \"pgf\",\n      \"declutter\",\n      \"rad\",\n      \"Hz\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bodeplot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bohr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"elements\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bohr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bohr{${1:num of electrons}}{${2:atom name}}\"\n      }\n    },\n    {\n      \"name\": \"bohr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bohr[${3:num of shells}]{${1:num of electrons}}{${2:atom name}}\"\n      }\n    },\n    {\n      \"name\": \"setbohr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbohr{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbohr\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setbohr\": [\n      \"insert-symbol\",\n      \"insert-number\",\n      \"insert-missing\",\n      \"atom-style={${1:code}}\",\n      \"name-options-set={${1:tikz-options}}\",\n      \"name-options-add={${1:tikz-options}}\",\n      \"nucleus-options-set={${1:tikz-options}}\",\n      \"nucleus-options-add={${1:tikz-options}}\",\n      \"nucleus-radius=\",\n      \"electron-options-set={${1:tikz-options}}\",\n      \"electron-options-add={${1:tikz-options}}\",\n      \"electron-radius=\",\n      \"shell-options-set={${1:tikz-options}}\",\n      \"shell-options-add={${1:tikz-options}}\",\n      \"shell-dist=\",\n      \"distribution-method=${1|periodic,quantum|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boisik.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifboisikarrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boisikarrowstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boisikarrowsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"ac\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"bagmember\",\n      \"detail\": \"⋿\",\n      \"doc\": \"\\\\mathsf{e}, bag membership\"\n    },\n    {\n      \"name\": \"baro\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"bbslash\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"binampersand\"\n    },\n    {\n      \"name\": \"bindnasrepma\"\n    },\n    {\n      \"name\": \"blackbowtie\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbot\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxcircle\",\n      \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared small circle\"\n    },\n    {\n      \"name\": \"boxdivision\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boxtop\"\n    },\n    {\n      \"name\": \"boxtriangle\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"CircledEq\"\n    },\n    {\n      \"name\": \"circplus\"\n    },\n    {\n      \"name\": \"coAsterisk\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"convolution\"\n    },\n    {\n      \"name\": \"corresponds\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupleftarrow\",\n      \"detail\": \"⊌\",\n      \"doc\": \"Multiset\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"dalambert\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"dashVv\"\n    },\n    {\n      \"name\": \"dfourier\"\n    },\n    {\n      \"name\": \"Dfourier\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diamondbar\"\n    },\n    {\n      \"name\": \"diamondcircle\"\n    },\n    {\n      \"name\": \"diamondminus\"\n    },\n    {\n      \"name\": \"diamondop\"\n    },\n    {\n      \"name\": \"diamondplus\"\n    },\n    {\n      \"name\": \"diamondtimes\"\n    },\n    {\n      \"name\": \"diamondtriangle\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"disin\",\n      \"detail\": \"⋲\",\n      \"doc\": \"Element of with long horizontal stroke\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsim\",\n      \"detail\": \"⩪\",\n      \"doc\": \"Tilde operator with dot above\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqbumped\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalparallel\",\n      \"detail\": \"⋕ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Parallel, equal; equal or parallel\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fatbslash\"\n    },\n    {\n      \"name\": \"fatsemi\"\n    },\n    {\n      \"name\": \"fatslash\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"forkv\",\n      \"detail\": \"⫙\",\n      \"doc\": \"Element of opening downwards\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggcurly\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"glj\",\n      \"detail\": \"⪤\",\n      \"doc\": \"Greater-than overlapping less-than\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"Gt\",\n      \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n    },\n    {\n      \"name\": \"gtcir\",\n      \"detail\": \"⩺\",\n      \"doc\": \"Greater-than with circle inside\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hash\"\n    },\n    {\n      \"name\": \"hermitmatrix\",\n      \"detail\": \"⊹\",\n      \"doc\": \"Hermitian conjugate matrix\"\n    },\n    {\n      \"name\": \"heta\"\n    },\n    {\n      \"name\": \"Heta\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"iinfin\",\n      \"detail\": \"⧜\",\n      \"doc\": \"Incomplete infinity\"\n    },\n    {\n      \"name\": \"inplus\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intup\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"kernelcontraction\",\n      \"detail\": \"∻\",\n      \"doc\": \"Homothetic\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"lblackbowtie\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftslice\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"llcurly\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lozengedot\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"Lt\",\n      \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n    },\n    {\n      \"name\": \"ltcir\",\n      \"detail\": \"⩹\",\n      \"doc\": \"Less-than with circle inside\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"ltimesblack\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"merge\"\n    },\n    {\n      \"name\": \"minuso\"\n    },\n    {\n      \"name\": \"moo\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"niplus\"\n    },\n    {\n      \"name\": \"nisd\",\n      \"detail\": \"⋺\",\n      \"doc\": \"Contains with long horizontal stroke\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nLeftrightarroW\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notbot\"\n    },\n    {\n      \"name\": \"nottop\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"obar\",\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"oblong\"\n    },\n    {\n      \"name\": \"obot\",\n      \"detail\": \"⦺\",\n      \"doc\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"oleft\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"oright\"\n    },\n    {\n      \"name\": \"otop\"\n    },\n    {\n      \"name\": \"otriangle\"\n    },\n    {\n      \"name\": \"ovee\"\n    },\n    {\n      \"name\": \"owedge\"\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"pluscirc\"\n    },\n    {\n      \"name\": \"plustrif\",\n      \"detail\": \"⨨\",\n      \"doc\": \"Plus sign with black triangle\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"prurel\",\n      \"detail\": \"⊰\",\n      \"doc\": \"Element precedes under relation\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"Qoppa\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rblackbowtie\"\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightslice\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"riota\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rtimesblack\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"scurel\",\n      \"detail\": \"⊱\",\n      \"doc\": \"Succeeds under relation\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"simrdots\",\n      \"detail\": \"⩫\",\n      \"doc\": \"Tilde operator with rising dots\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smashtimes\",\n      \"detail\": \"⨳\",\n      \"doc\": \"Smash product\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqSubset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqSupset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squplus\"\n    },\n    {\n      \"name\": \"sslash\",\n      \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\varparallel (txfonts), double solidus operator\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"subsetplus\",\n      \"detail\": \"⪿\",\n      \"doc\": \"Subset with plus sign below\"\n    },\n    {\n      \"name\": \"subsetpluseq\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"supsetplus\",\n      \"detail\": \"⫀\",\n      \"doc\": \"Superset with plus sign below\"\n    },\n    {\n      \"name\": \"supsetpluseq\"\n    },\n    {\n      \"name\": \"talloblong\",\n      \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"White vertical bar\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"topfork\",\n      \"detail\": \"⫚\",\n      \"doc\": \"Pitchfork with tee top\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"trianglelefteqslant\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteqslant\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"varcap\"\n    },\n    {\n      \"name\": \"varcup\"\n    },\n    {\n      \"name\": \"vardigamma\"\n    },\n    {\n      \"name\": \"varg\"\n    },\n    {\n      \"name\": \"varhash\"\n    },\n    {\n      \"name\": \"varintercal\"\n    },\n    {\n      \"name\": \"varisins\",\n      \"detail\": \"⋳\",\n      \"doc\": \"Element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varlrttriangle\"\n    },\n    {\n      \"name\": \"varnis\",\n      \"detail\": \"⋻\",\n      \"doc\": \"Contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsampi\"\n    },\n    {\n      \"name\": \"Varsampi\"\n    },\n    {\n      \"name\": \"varsqcap\"\n    },\n    {\n      \"name\": \"varsqcup\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartimes\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vee\",\n      \"detail\": \"⩔\",\n      \"doc\": \"Double logical or\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"Wedge\",\n      \"detail\": \"⩓\",\n      \"doc\": \"Double logical and\"\n    },\n    {\n      \"name\": \"Ydown\"\n    },\n    {\n      \"name\": \"Yleft\"\n    },\n    {\n      \"name\": \"Yright\"\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"ztransf\"\n    },\n    {\n      \"name\": \"Ztransf\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"carriagereturn\",\n      \"if\": \"arrows\",\n      \"detail\": \"↵\",\n      \"doc\": \"Downwards arrow with corner leftward = carriage return\"\n    },\n    {\n      \"name\": \"curlyveedownarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curlyveeuparrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curlywedgedownarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curlywedgeuparrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curvearrowbotleft\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curvearrowbotleftright\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curvearrowbotright\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"if\": \"arrows\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowleftright\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"if\": \"arrows\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"dlsh\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"downblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downtouparrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"drsh\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"eqleftrightarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"hookleftarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↩\",\n      \"doc\": \"Left arrow-hooked\"\n    },\n    {\n      \"name\": \"hookrightarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↪\",\n      \"doc\": \"Right arrow-hooked\"\n    },\n    {\n      \"name\": \"leftarrowTriangle\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftrightarroweq\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftrightarrowTriangle\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"lefttorightarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"leftwhiteroundarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"leftzigzagarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"linefeed\",\n      \"if\": \"arrows\",\n      \"detail\": \"↴\",\n      \"doc\": \"Rightwards arrow with corner downwards\"\n    },\n    {\n      \"name\": \"looparrowdownleft\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"looparrowdownright\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"if\": \"arrows\",\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"if\": \"arrows\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"if\": \"arrows\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"if\": \"arrows\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"if\": \"arrows\",\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nearrowcorner\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nnearrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"nnwarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwarrowcorner\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowcircle\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"rightarrowTriangle\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreearrows\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇶\",\n      \"doc\": \"Three rightwards arrows\"\n    },\n    {\n      \"name\": \"righttoleftarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"rightwhiteroundarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"ssearrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"sswarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadwhiteuparrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"twoheadwhiteuparrowpedestal\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"upblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"if\": \"arrows\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"updownblackarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"updownwhitearrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"uptodownarrow\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"if\": \"arrows\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"whitearrowuppedestal\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"whitearrowuppedestalhbar\",\n      \"if\": \"arrows\"\n    },\n    {\n      \"name\": \"whitearrowuppedestalvbar\",\n      \"if\": \"arrows\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/boisik#c\": [\n      \"czech\",\n      \"arrows\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/boisik#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/boites.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bkcounttrue\"\n    },\n    {\n      \"name\": \"bkcountfalse\"\n    },\n    {\n      \"name\": \"breakboxskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakboxparindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"breakbox\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boites_exemples.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"boiteepaisseavecuntitre\"\n    },\n    {\n      \"name\": \"boitenumeroteeavecunedoublebarre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"boiteavecunelignequiondulesurlecote\"\n    },\n    {\n      \"name\": \"boitecoloriee\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bold-extra.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bold-extra#c\": [\n      \"cmttb\",\n      \"cmbtt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bold-extra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/boldline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hlineB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlineB{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"clineB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clineB{${1:i-j}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"hlxB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlxB{${1:width}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boldtensors.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"btensor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btensor{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"boperator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boperator{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bsymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsymbols{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bboard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bboard{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"boldtensor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/boldtensors#c\": [\n      \"nabla\",\n      \"differential\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/boldtensors#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bondcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"hetarom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    },\n    {\n      \"name\": \"methylen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adddbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adddbcolor{${1:suffix}}{${2:skelbcolor}}\"\n      }\n    },\n    {\n      \"name\": \"addskbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addskbcolor{${1:suffix}}{${2:skelbcolor}}\"\n      }\n    },\n    {\n      \"name\": \"black\"\n    },\n    {\n      \"name\": \"blackx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blackx{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"blue\"\n    },\n    {\n      \"name\": \"bluex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bluex{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"cyan\"\n    },\n    {\n      \"name\": \"cyanx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyanx{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"green\"\n    },\n    {\n      \"name\": \"greenx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greenx{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"magenta\"\n    },\n    {\n      \"name\": \"magentax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magentax{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"redx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"redx{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"replaceSKbond\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"replaceSKbond(${3:xstart},${4:ystart})(${5:xslope},${6:yslope}){${1:bdlength}}{${2:skelbcolor}}\"\n      }\n    },\n    {\n      \"name\": \"replaceSKbond\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"replaceSKbond[${3:thickness}](${4:xstart},${5:ystart})(${6:xslope},${7:yslope}){${1:bdlength}}{${2:skelbcolor}}\"\n      }\n    },\n    {\n      \"name\": \"thinLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"white\"\n    },\n    {\n      \"name\": \"whitex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whitex{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"xymcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xymcolor{${1:color}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yellow\"\n    },\n    {\n      \"name\": \"yellowx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yellowx{${1:content}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bondgraph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bondleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondleft{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bondright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondright{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bondrighte\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondrighte{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bondrightf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondrightf{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bondlefte\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondlefte{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bondleftf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bondleftf{${1:label1%formula}}{${2:label2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponentNoBond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bgComponentNoBond{${1:node name}}{${2:display name}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponent\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bgComponent{${1:node style}}{${2:node name}}{${3:display name}}{${4:pos}}{${5:pos ref}}{${6:bond style}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponentWithBondLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"bgComponentWithBondLabel{${1:node style}}{${2:node name}}{${3:display name}}{${4:pos}}{${5:pos ref}}{${6:bond style}}{${7:label style}}{${8:effort name}}{${9:flow name}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponentWithPosBondLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"bgComponentWithPosBondLabel{${1:node style}}{${2:node name}}{${3:display name}}{${4:pos}}{${5:pos ref}}{${6:bond style}}{${7:label style}}{${8:label pos}}{${9:label name}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponentWithBondMarkup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"bgComponentWithBondMarkup{${1:node style}}{${2:node name}}{${3:display name}}{${4:pos}}{${5:pos ref}}{${6:bond style}}{${7:markup style}}\"\n      }\n    },\n    {\n      \"name\": \"bgComponentWithBondMarkupTagged\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"bgComponentWithBondMarkupTagged{${1:node style}}{${2:node name}}{${3:display name}}{${4:pos}}{${5:pos ref}}{${6:bond style}}{${7:markup style}}{${8:tag}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"nodemodpoint\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bondgraphs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bond\"\n    },\n    {\n      \"name\": \"bond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bond[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bond,\\\\begin{bondgraph}\",\n          \"\\\\bond,\\\\begin{bondgraph},\\\\draw#c,\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bgelement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgelement{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"bgelement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bgelement[${2:options%keyvals}]{${1:element}}\",\n        \"keys\": [\n          \"\\\\bgelement\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bondgraph\"\n    },\n    {\n      \"name\": \"bondgraph\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bond,\\\\begin{bondgraph}\",\n          \"\\\\begin{bondgraph}\",\n          \"\\\\bond,\\\\begin{bondgraph},\\\\draw#c,\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bondgraphs#c\": [\n      \"labelcolour=\",\n      \"bondlabelcolour=\",\n      \"grey\",\n      \"colour\",\n      \"curly\"\n    ],\n    \"\\\\bond,\\\\begin{bondgraph}\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name path=${1:path}\",\n      \"name path global=${1:path}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"on grid\",\n      \"node distance=\",\n      \"base left=\",\n      \"base right=\",\n      \"mid left=\",\n      \"mid right=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"remember picture\",\n      \"overlay\",\n      \"every new ->\",\n      \"every new --\",\n      \"every new <->\",\n      \"every new <-\",\n      \"every new -!-\",\n      \"new set=${1:set name}\",\n      \"set=${1:set name}\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\",\n      \"decoration={${1:options}}\",\n      \"decorate\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"use as bounding box\",\n      \"clip\",\n      \"preaction={${1:options}}\",\n      \"postaction={${1:options}}\",\n      \"late options={${1:options}}\",\n      \"pic actions\"\n    ],\n    \"\\\\begin{bondgraph}\": [\n      \"baseline\",\n      \"baseline=${1:<dimen> or <coord> or default}\",\n      \"execute at begin picture=${1:code}\",\n      \"execute at end picture=${1:code}\",\n      \"every scope/.style={${1:options}}\",\n      \"execute at begin scope=${1:code}\",\n      \"execute at end scope=${1:code}\",\n      \"transparency group\",\n      \"transparency group=${1:options}\",\n      \"every path/.style={${1:options}}\",\n      \"every circle/.style={${1:options}}\",\n      \"every to/.style={${1:options}}\",\n      \"every node/.style={${1:options}}\",\n      \"every lower node part/.style={${1:options}}\",\n      \"every label/.style={${1:options}}\",\n      \"every pin/.style={${1:options}}\",\n      \"every pin edge/.style={${1:options}}\",\n      \"every label quotes/.style={${1:options}}\",\n      \"every pin quotes/.style={${1:options}}\",\n      \"every edge/.style={${1:options}}\",\n      \"every edge quotes/.style={${1:options}}\",\n      \"every pic/.style={${1:options}}\",\n      \"every pic quotes/.style={${1:options}}\",\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"every matrix/.style={${1:options}}\",\n      \"every outer matrix/.style={${1:options}}\",\n      \"every child/.style={${1:options}}\",\n      \"every child node/.style={${1:options}}\",\n      \"every plot/.style={${1:options}}\",\n      \"every mark/.style={${1:options}}\",\n      \"every loop/.style={${1:options}}\",\n      \"execute at begin to=${1:code}\",\n      \"execute at end to=${1:code}\",\n      \"execute at begin node=${1:code}\",\n      \"execute at end node=${1:code}\",\n      \"trim left\",\n      \"trim left=${1:<dimen> or <coord> or default}\",\n      \"trim right\",\n      \"trim right=${1:<dimen> or <coord> or default}\",\n      \"tri lowlevel\",\n      \"name prefix=${1:text}\",\n      \"name suffix=${1:text}\",\n      \"badness warnings for centered text\",\n      \"node halign header=${1:macro}\"\n    ],\n    \"\\\\bond,\\\\begin{bondgraph},\\\\draw#c,\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"e_in\",\n      \"e_in={${1:options}}\",\n      \"f_out\",\n      \"f_out={${1:options}}\",\n      \"e_out\",\n      \"e_out={${1:options}}\",\n      \"f_in\",\n      \"f_in={${1:options}}\",\n      \"effort={${1:label}}\",\n      \"flow={${1:label}}\",\n      \"mbond\"\n    ],\n    \"\\\\draw#c,\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"bond\",\n      \"bonds\"\n    ],\n    \"\\\\node#c,\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"bgelement\",\n      \"multiport\"\n    ],\n    \"\\\\bgelement\": [\n      \"multiport\",\n      \"n=${1:integer}\",\n      \"wordbg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bondgraphs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bonum-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bonum\"\n    },\n    {\n      \"name\": \"bonumOsF\"\n    },\n    {\n      \"name\": \"bonumTLF\"\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bonum-otf#c\": [\n      \"lining\",\n      \"oldstyle\",\n      \"libertinus\",\n      \"tabular\",\n      \"proportional\",\n      \"ScaleRM=${1:factor}\",\n      \"defaultfeatures={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bonum-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/book-of-common-prayer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"alltt\"\n    },\n    {\n      \"name\": \"paracol\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"xtab\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfornament\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"bilingualpages\"\n    },\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"versicle\"\n    },\n    {\n      \"name\": \"response\"\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"scross\"\n    },\n    {\n      \"name\": \"gl\"\n    },\n    {\n      \"name\": \"gr\"\n    },\n    {\n      \"name\": \"blankline\"\n    },\n    {\n      \"name\": \"deleteline\"\n    },\n    {\n      \"name\": \"tab\"\n    },\n    {\n      \"name\": \"spacer\"\n    },\n    {\n      \"name\": \"instruct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instruct{${1:instructions%text}}\"\n      }\n    },\n    {\n      \"name\": \"instructsmall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instructsmall{${1:instructions%text}}\"\n      }\n    },\n    {\n      \"name\": \"bibleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibleref{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"bibleverse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bibleverse{${1:text}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"monarch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monarch{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"boxaround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxaround{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"priest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priest{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deacon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deacon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subdeacon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdeacon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"officiant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"officiant{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lector{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epistoler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epistoler{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"people\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"people{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"servers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"servers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pretre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"diacre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diacre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"peuple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peuple{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"servants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"servants{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"V{${1:versicle%text}}\"\n      }\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:response%text}}\"\n      }\n    },\n    {\n      \"name\": \"rlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rlong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VR{${1:versicle%text}}{${2:response%text}}\"\n      }\n    },\n    {\n      \"name\": \"psalmverse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psalmverse{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"continued\"\n    },\n    {\n      \"name\": \"sabon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sabon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"betweenLilyPondSystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"betweenLilyPondSystem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"boxit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crossfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"header\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"header{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesectionline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makesectionline{${1:color}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"munepsfig\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"munepsfig[${3:options}]{${1:imagefile}}{${2:rule thickness}}\"\n      }\n    },\n    {\n      \"name\": \"munepsfig\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"munepsfig{${1:imagefile}}{${2:rule thickness}}\"\n      }\n    },\n    {\n      \"name\": \"sectionline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcapsheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallcapsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textjuni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textjuni{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textuni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuni{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versiclefont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"responses\"\n    },\n    {\n      \"name\": \"vresponses\"\n    },\n    {\n      \"name\": \"vresponsesdouble\"\n    },\n    {\n      \"name\": \"vresponsesdouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width factor}]\"\n      }\n    },\n    {\n      \"name\": \"prayer\"\n    },\n    {\n      \"name\": \"twocolprayer\"\n    },\n    {\n      \"name\": \"threecolprayer\"\n    },\n    {\n      \"name\": \"responsesex\"\n    },\n    {\n      \"name\": \"vresponsesex\"\n    },\n    {\n      \"name\": \"vresponsesdoubleex\"\n    },\n    {\n      \"name\": \"vresponsesdoubleex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width factor}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/book-of-common-prayer#c\": [\n      \"sabon\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/book-of-common-prayer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/booklet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bkltprnt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"checkforlandscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagespersignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagespersignature{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thesigcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesignature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprintoption\"\n    },\n    {\n      \"name\": \"printoptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printoptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuselandscape\"\n    },\n    {\n      \"name\": \"uselandscapetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uselandscapefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsidebyside\"\n    },\n    {\n      \"name\": \"sidebysidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebysidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageseplength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesepoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesepwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/booklet#c\": [\n      \"print\",\n      \"noprint\",\n      \"four\",\n      \"eight\",\n      \"sixteen\",\n      \"thirtytwo\",\n      \"twouparticle\",\n      \"largetypeblock\",\n      \"1to1\",\n      \"landscape\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/booklet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bookmark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bookmarksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookmarksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookmarksetupnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookmarksetupnext{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookmark{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bookmark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bookmark[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookmarkdefinestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bookmarkdefinestyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bookmarkget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookmarkget{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\bookmarkget\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BookmarkAtEnd\",\n      \"if\": \"atend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BookmarkAtEnd{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BookmarkDriverDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calc{${1:expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bookmark#c\": [\n      \"draft\",\n      \"final\",\n      \"atend\",\n      \"pdftex\",\n      \"dvips\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"vtex\"\n    ],\n    \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\": [\n      \"bold\",\n      \"italic\",\n      \"color=${1:color}\",\n      \"color=[${1:model}]{${2:color spec}}\",\n      \"dest=${1:destination name}\",\n      \"page=${1:number}\",\n      \"view={${1:view specs}}\",\n      \"named=${1|FirstPage,LastPage,NextPage,PrevPage|}\",\n      \"gotor=${1:file}\",\n      \"uri={${1:uri}}\",\n      \"rawaction=${1:action spec}\",\n      \"level=${1:integer}\",\n      \"rellevel=${1:integer}\",\n      \"keeplevel\",\n      \"startatroot\",\n      \"style=${1:style name}\",\n      \"addtohook=${1:code}\",\n      \"depth=${1:integer}\",\n      \"open\",\n      \"openlevel=${1:integer}\",\n      \"numbered\"\n    ],\n    \"\\\\bookmarkget\": [\n      \"bold\",\n      \"italic\",\n      \"open\",\n      \"depth\",\n      \"dest\",\n      \"color\",\n      \"gotor\",\n      \"level\",\n      \"named\",\n      \"openlevel\",\n      \"page\",\n      \"rawaction\",\n      \"uri\",\n      \"view\",\n      \"text\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bookmark#c\",\n    \"\\\\bookmarksetup,\\\\bookmarksetupnext,\\\\bookmark,\\\\bookmarkdefinestyle,\\\\usepackage/bookmark#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/booktabs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"toprule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"toprule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"midrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"midrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"bottomrule\"\n    },\n    {\n      \"name\": \"bottomrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bottomrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrule{${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"cmidrule(${2:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"cmidrule[${2:line width%l}](${3:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"morecmidrules\"\n    },\n    {\n      \"name\": \"specialrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialrule{${1:line width%l}}{${2:above space}}{${3:below space}}\"\n      }\n    },\n    {\n      \"name\": \"addlinespace\"\n    },\n    {\n      \"name\": \"addlinespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlinespace[${1:vspace}]\"\n      }\n    },\n    {\n      \"name\": \"heavyrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lightrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowrulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboverulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovetopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmidrulekern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultaddspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boolexpr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"boolexpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolexpr{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"ifswitch\"\n    },\n    {\n      \"name\": \"ifboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpr{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"switch\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"case{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"otherwise\"\n    },\n    {\n      \"name\": \"endswitch\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bophook.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PageLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageLayout{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginPage{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boustr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifboustright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boustrighttrue\"\n    },\n    {\n      \"name\": \"boustrightfalse\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"boustrophedon\"\n    },\n    {\n      \"name\": \"rtl\"\n    },\n    {\n      \"name\": \"sidewaysflip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boxdims.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dimbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxdimfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxdimfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxdims\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxdims{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"defboxdim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defboxdim{${1:name}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boxedminipage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"boxedminipage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"boxedminipage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"boxedminipage\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:pos}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"boxedminipage\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:pos}][${3:height}][${4:inner-pos}]{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boxhandler.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxtable{${1:caption%text}}{${2:boxed object%text}}\"\n      }\n    },\n    {\n      \"name\": \"bxtable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bxtable[${3:loc%keyvals}]{${1:caption%text}}{${2:boxed object%text}}\",\n        \"keys\": [\n          \"\\\\bxtable,\\\\bxfigure,\\\\nextTable,\\\\nextFigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxfigure{${1:caption%text}}{${2:boxed object%text}}\"\n      }\n    },\n    {\n      \"name\": \"bxfigure\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bxfigure[${3:loc%keyvals}]{${1:caption%text}}{${2:boxed object%text}}\",\n        \"keys\": [\n          \"\\\\bxtable,\\\\bxfigure,\\\\nextTable,\\\\nextFigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"relaxCaptionWidth\"\n    },\n    {\n      \"name\": \"relaxCaptionWidth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"relaxCaptionWidth[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"limitCaptionWidth\"\n    },\n    {\n      \"name\": \"limitCaptionWidth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"limitCaptionWidth[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"constrainCaptionWidth\"\n    },\n    {\n      \"name\": \"constrainCaptionWidth\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"constrainCaptionWidth[${1:min-length%l}][${2:max-length%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionStyle{${1:offset type%keyvals}}{${2:alignment type}}\",\n        \"keys\": [\n          \"\\\\captionStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperactive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hyperactive[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"captionGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TableDeadMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FigureDeadMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabovecaptionskipterm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebelowcaptionskipterm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TableFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LRTablePlacement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LRFigurePlacement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionJustification\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WrapperOn\"\n    },\n    {\n      \"name\": \"WrapperOn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WrapperOn[${1:default}]\"\n      }\n    },\n    {\n      \"name\": \"WrapperOff\"\n    },\n    {\n      \"name\": \"Wrapper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wrapper{${1:custom wrapper%text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapperTextStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"holdTables\"\n    },\n    {\n      \"name\": \"holdFigures\"\n    },\n    {\n      \"name\": \"clearTables\"\n    },\n    {\n      \"name\": \"clearFigures\"\n    },\n    {\n      \"name\": \"killlistoftables\"\n    },\n    {\n      \"name\": \"killlistoffigures\"\n    },\n    {\n      \"name\": \"killtableofcontents\"\n    },\n    {\n      \"name\": \"holdlistoftables\"\n    },\n    {\n      \"name\": \"holdlistoffigures\"\n    },\n    {\n      \"name\": \"clearlistoftables\"\n    },\n    {\n      \"name\": \"clearlistoffigures\"\n    },\n    {\n      \"name\": \"nextTable\"\n    },\n    {\n      \"name\": \"nextTable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextTable[${1:loc%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"nextFigure\"\n    },\n    {\n      \"name\": \"nextFigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextFigure[${1:loc%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"DeadMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionBoxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTableIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFigureIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTableClearedIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFigureClearedIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepromptTablesFlag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepromptFiguresFlag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StoreTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StoreTable{${1:caption}}{${2:boxed object}}{${3:wrapper%cmd}}{${4:wrapper status%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StoreFigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StoreFigure{${1:caption}}{${2:boxed object}}{${3:wrapper%cmd}}{${4:wrapper status%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SaveCBox{${1:cmd}}{${2:boxed object}}\"\n      }\n    },\n    {\n      \"name\": \"ReciteTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ReciteTable{${1:caption}}{${2:cmd}}{${3:width}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"ReciteTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"ReciteTable[${6:loc%keyvals}]{${1:caption}}{${2:cmd}}{${3:width}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"ReciteFigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ReciteFigure{${1:caption}}{${2:cmd}}{${3:wdth}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"ReciteFigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"ReciteFigure[${6:loc%keyvals}]{${1:caption}}{${2:cmd}}{${3:width}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"theClearedTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"theClearedTable{${1:caption}}{${2:cmd}}{${3:width}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"theClearedTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"theClearedTable[${6:loc%keyvals}]{${1:caption}}{${2:cmd}}{${3:wdth}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"theClearedFigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"theClearedFigure{${1:caption}}{${2:cmd}}{${3:wdth}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"theClearedFigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"theClearedFigure[${6:loc%keyvals}]{${1:caption}}{${2:cmd}}{${3:wdth}}{${4:wrapper}}{${5:wrapper status}}\"\n      }\n    },\n    {\n      \"name\": \"thelofInvocations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelofPrints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelotInvocations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelotPrints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrapper\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bxtable,\\\\bxfigure,\\\\nextTable,\\\\nextFigure\": [\n      \"ht\",\n      \"hb\",\n      \"t\",\n      \"b\",\n      \"p\"\n    ],\n    \"\\\\captionStyle\": [\n      \"o\",\n      \"n\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/boxit.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"boxit\"\n    },\n    {\n      \"name\": \"boxit*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bpchem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BPChem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BPChem{${1:compound}}\"\n      }\n    },\n    {\n      \"name\": \"IUPAC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IUPAC{${1:compound%definition}}\"\n      }\n    },\n    {\n      \"name\": \"CNlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CNlabel{${1:label%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"CNlabelnoref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CNlabelnoref{${1:label%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"CNref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CNref{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\CNref#c,\\\\CNrefsub#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CNlabelsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CNlabelsub{${1:label%specialDef}}{${2:sublabel}}\"\n      }\n    },\n    {\n      \"name\": \"CNlabelsubnoref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CNlabelsubnoref{${1:label%specialDef}}{${2:sublabel}}\"\n      }\n    },\n    {\n      \"name\": \"CNrefsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CNrefsub{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\CNref#c,\\\\CNrefsub#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HNMR\"\n    },\n    {\n      \"name\": \"CNMR\"\n    },\n    {\n      \"name\": \"cis\"\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"bpalpha\"\n    },\n    {\n      \"name\": \"bpbeta\"\n    },\n    {\n      \"name\": \"bpDelta\"\n    },\n    {\n      \"name\": \"hapto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hapto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"allowhyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCadjustsub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCadjustsuper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPClensub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPClensuper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCSetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCSetupCat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPCsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BPCsub{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BPCsubbs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BPCsubbs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BPCsuper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BPCsuper{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BPCsuperbs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BPCsuperbs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BreakHyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoBPChem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoBPChem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DoIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoIUPAC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dreh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dreh{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifusecbgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookforsub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookforsuper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MultiBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"next\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"talpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBPCno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBPCnoa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usecbgreekfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usecbgreektrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bpchem\": [\n      \"cbgreek\"\n    ],\n    \"\\\\CNref#c,\\\\CNrefsub#c\": [\n      \"%bpchemlabel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bpchem\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bracketkey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"coolstr\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leadONE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leadONE{${1:backref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"leadTWO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leadTWO{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"name{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebackindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keylabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keytitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keytitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keytitle[${2:it}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:prefix}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/braille.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"braille\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braille{${1:braille text}}\"\n      }\n    },\n    {\n      \"name\": \"braillebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braillebox{${1:positions}}\"\n      }\n    },\n    {\n      \"name\": \"brailleunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailledot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbrailleputtinydots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleputtinydotstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleputtinydotsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbrailleeightdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleeightdotstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleeightdotsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbraillecompact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braillecompacttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braillecompactfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbrailleuseemptybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleuseemptyboxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brailleuseemptyboxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbraillemirror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braillemirrortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braillemirrorfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/braille#c\": [\n      \"puttinydots\",\n      \"useemptybox\",\n      \"compact\",\n      \"8dots\",\n      \"mirror\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/braille#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/braket.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bra{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Braket{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Set{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SavedDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BraDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BraVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetDoubleVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midvert\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/breakurl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"burl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"burl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"burlalt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"burlalt{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"urlalt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlalt{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"UrlRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UrlRight{${1:arg%URL}}\"\n      }\n    },\n    {\n      \"name\": \"UrlLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UrlLeft{${1:arg%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/breakurl#c\": [\n      \"hyphenbreaks\",\n      \"anythingbreaks\",\n      \"preserveurlmacro\",\n      \"vertfit=${1:criterion}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/breakurl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bredzenie.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bredzenie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bredzenie{${1:m-n}}\"\n      }\n    },\n    {\n      \"name\": \"BredzenieSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BredzenieHyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BredzenieDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BredzenieNbsp\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/breqn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"flexisym\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"breqnsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"breqnsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"condition[${2:punctuation mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"condition*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition*{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"hiderel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hiderel{${1:rel symbol}}\"\n      }\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"breqnpopcats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conditionpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conditionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"darraycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"debugwr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"debugwr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTwang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTwang{${1:symbol}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"discretionarytimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dmedmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dthickmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqbinoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqbreakdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqdelimoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqframe{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"eqindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqindentstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqinterlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlinespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnumsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intereqpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intereqskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"postmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prebinoppenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"premath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prerelpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replicate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"replicate{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"theparentequation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dmath\"\n    },\n    {\n      \"name\": \"dmath\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dmath*\"\n    },\n    {\n      \"name\": \"dmath*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dseries\"\n    },\n    {\n      \"name\": \"dseries\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dseries*\"\n    },\n    {\n      \"name\": \"dseries*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dgroup\"\n    },\n    {\n      \"name\": \"dgroup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\",\n          \"\\\\begin{dgroup},\\\\begin{dgroup*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dgroup*\"\n    },\n    {\n      \"name\": \"dgroup*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\",\n          \"\\\\begin{dgroup},\\\\begin{dgroup*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"darray\"\n    },\n    {\n      \"name\": \"darray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\",\n          \"\\\\begin{darray},\\\\begin{darray*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"darray*\"\n    },\n    {\n      \"name\": \"darray*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\",\n          \"\\\\begin{darray},\\\\begin{darray*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dsuspend\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{dmath},\\\\begin{dmath*},\\\\begin{dseries},\\\\begin{dseries*},\\\\begin{dgroup},\\\\begin{dgroup*},\\\\begin{darray},\\\\begin{darray*},\\\\breqnsetup\": [\n      \"style=${1:cmds}\",\n      \"number=${1:text}\",\n      \"labelprefix=${1:prefix}\",\n      \"label=\",\n      \"indentstep=\",\n      \"compact\",\n      \"compact=${1:number}\",\n      \"spread=\",\n      \"frame\",\n      \"frame=\",\n      \"framesep=\",\n      \"breakdepth=${1:number}\",\n      \"shiftnumber\",\n      \"holdnumber\",\n      \"density=\",\n      \"layout=\",\n      \"shortskiplimit=\",\n      \"background=\",\n      \"color=\",\n      \"center\",\n      \"nocenter\"\n    ],\n    \"\\\\begin{dgroup},\\\\begin{dgroup*}\": [\n      \"noalign\",\n      \"brace\"\n    ],\n    \"\\\\begin{darray},\\\\begin{darray*}\": [\n      \"cols={${1:col specs}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bropd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"br\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"br{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"od{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"od[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bropd#c\": [\n      \"pdshort\",\n      \"pdalt\",\n      \"sans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bropd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/btxdockit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ltxdockit\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fielditem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fielditem{${1:field}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"listitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listitem{${1:list}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"typeitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typeitem{${1:types}}\"\n      }\n    },\n    {\n      \"name\": \"reqitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reqitem{${1:types}}\"\n      }\n    },\n    {\n      \"name\": \"optitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optitem{${1:types}}\"\n      }\n    },\n    {\n      \"name\": \"bibfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"bibtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibtype{${1:type}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fieldlist\"\n    },\n    {\n      \"name\": \"typelist\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bubblesort.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bubblesort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bubblesort{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"bubblesort\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bubblesort[${3:comparator cmd}]{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"doublebubblesort\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"doublebubblesort{${1:list1}}{${2:macro1%cmd}}{${3:list2}}{${4:macro2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"doublebubblesort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"doublebubblesort[${5:comparator cmd}]{${1:list1}}{${2:macro1%cmd}}{${3:list2}}{${4:macro2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"bubblesortflag\"\n    },\n    {\n      \"name\": \"realSort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"realSort{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"alphSort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alphSort{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bullcntr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bullcntr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bullcntr{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterlargebullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countersmallbullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largectrbull\"\n    },\n    {\n      \"name\": \"smallctrbull\"\n    },\n    {\n      \"name\": \"smartctrbull\"\n    },\n    {\n      \"name\": \"heartctrbull\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bullcntr#c\": [\n      \"largectrbull\",\n      \"smallctrbull\",\n      \"smartctrbull\",\n      \"heartctrbull\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bullcntr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bullenum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bullcntr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"bullenum\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bussproofs-extra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bussproofs\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeduceC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeduceC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"straightDeduce\"\n    },\n    {\n      \"name\": \"branchDeduce\"\n    },\n    {\n      \"name\": \"ddotsDeduce\"\n    },\n    {\n      \"name\": \"dotsdDeduce\"\n    },\n    {\n      \"name\": \"shortDeduce\"\n    },\n    {\n      \"name\": \"alwaysDeduce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeftLineLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftLineLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RightLineLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RightLineLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftSubproofLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftSubproofLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RightSubproofLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RightSubproofLabel{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bussproofs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AxiomC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AxiomC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UnaryInfC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnaryInfC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BinaryInfC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BinaryInfC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TrinaryInfC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrinaryInfC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"QuaternaryInfC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuaternaryInfC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"QuinaryInfC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuinaryInfC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayProof\"\n    },\n    {\n      \"name\": \"fCenter\"\n    },\n    {\n      \"name\": \"LeftLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RightLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RightLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noLine\"\n    },\n    {\n      \"name\": \"singleLine\"\n    },\n    {\n      \"name\": \"doubleLine\"\n    },\n    {\n      \"name\": \"solidLine\"\n    },\n    {\n      \"name\": \"dottedLine\"\n    },\n    {\n      \"name\": \"dashedLine\"\n    },\n    {\n      \"name\": \"alwaysNoLine\"\n    },\n    {\n      \"name\": \"alwaysSingleLine\"\n    },\n    {\n      \"name\": \"alwaysDoubleLine\"\n    },\n    {\n      \"name\": \"alwaysSolidLine\"\n    },\n    {\n      \"name\": \"alwaysDottedLine\"\n    },\n    {\n      \"name\": \"alwaysDashedLine\"\n    },\n    {\n      \"name\": \"rootAtTop\"\n    },\n    {\n      \"name\": \"alwaysRootAtTop\"\n    },\n    {\n      \"name\": \"rootAtBottom\"\n    },\n    {\n      \"name\": \"alwaysRootAtBottom\"\n    },\n    {\n      \"name\": \"proofSkipAmount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScoreOverhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraVskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultHypSeparation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertBetweenHyps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertBetweenHyps{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"kernHyps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kernHyps{${1:kern%l}}\"\n      }\n    },\n    {\n      \"name\": \"ruleScoreFiller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottedScoreFiller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashedBuildScore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnableBpAbbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AXC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AXC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UIC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UIC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BIC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BIC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TIC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TIC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerAlignProof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomAlignProof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalAlignProof\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"prooftree\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bxtoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Ux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ux{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"UI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"AJ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AJ{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"JI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"KI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxHex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxRes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxUcv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxCheckCounterpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCheckCounterpart{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"bxEngineTypeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxEngineTypeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxBDHookBabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxAtBeginDocumentBabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxAtBeginDocumentBabel{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fixcaptionlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixcaptionlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"bxFixCaptionLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxFixCaptionLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"bxProvideCaptionLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxProvideCaptionLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setmainlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"bxTrivLangDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxTrivLangDef{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"bxBDHookUnicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxBDHookJisInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxFallbackSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxFallbackSym{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bxUx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxUx{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxUI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxUI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxAJ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxAJ{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxJI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxJI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxKI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxKI{${1:コード値}}\"\n      }\n    },\n    {\n      \"name\": \"bxUHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxUHex{${1:hex value}}\"\n      }\n    },\n    {\n      \"name\": \"bxUInt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxUInt{${1:decimal value}}\"\n      }\n    },\n    {\n      \"name\": \"safecaret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxEnableSafeCaret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxBDHookSafeCaret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxBDHookUcsFastErrors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usejapanesepdfstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvipdfmxmapline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dvipdfmxmapline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dvipdfmxmapfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dvipdfmxmapfile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pxUpScale\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"withnohyph\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxcalc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"bxcalcux\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usepTeXunits\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxcalcux.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newcalcunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcalcunit{${1:unit}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCalcUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCalcUnit{${1:unit}}{${2:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxcjkjatype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"CJK\"\n    },\n    {\n      \"name\": \"CJKutf8\"\n    },\n    {\n      \"name\": \"CJKspace\"\n    },\n    {\n      \"name\": \"CJKpunct\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminchofont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setminchofont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setgothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmarugothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarugothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmarugothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmarugothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmediumminchofont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmediumminchofont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setboldminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldminchofont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setboldminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldminchofont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmediumgothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmediumgothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setboldgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldgothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setboldgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldgothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setxboldgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxboldgothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setxboldgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setxboldgothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setoneweightgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setoneweightgothicfont{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setoneweightgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setoneweightgothicfont[${2:id}]{${1:font-file}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilydefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKfamilydefault{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"CJKecglue\"\n    },\n    {\n      \"name\": \">\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UTF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTF{${1:hex-number}}\"\n      }\n    },\n    {\n      \"name\": \"CJKforce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKforce{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunforce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunforce{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"mcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mgdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcfamily\"\n    },\n    {\n      \"name\": \"gtfamily\"\n    },\n    {\n      \"name\": \"mgfamily\"\n    },\n    {\n      \"name\": \"CJKboldbyembolden\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKnoboldbyembolden\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKforced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKforced{${1:kanji}}\"\n      }\n    },\n    {\n      \"name\": \"ebdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryCJKUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EveryCJKUse{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"FirstCJKUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstCJKUse{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"uCJK\"\n    },\n    {\n      \"name\": \"uCJK*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bxcjkjatype#c\": [\n      \"whole\",\n      \"wholeCJK*\",\n      \"wholeCJK\",\n      \"nowhole\",\n      \"everypage\",\n      \"noeverypage\",\n      \"ipaex-type1\",\n      \"defaultmingoth\",\n      \"oneweight\",\n      \"nooneweight\",\n      \"autotilde\",\n      \"noautotilde\",\n      \"CJKpunct\",\n      \"noCJKpunct\",\n      \"CJKspace\",\n      \"noCJKspace\",\n      \"boldbyembolden\",\n      \"noboldbyembolden\",\n      \"substmingoth\",\n      \"nosubstmingoth\",\n      \"CJKtildeasspace\",\n      \"noCJKtildeasspace\",\n      \"ms\",\n      \"ipa\",\n      \"ipaex\",\n      \"ms-hg\",\n      \"ipa-hg\",\n      \"ipaex-hg\",\n      \"moga-mobo\",\n      \"moga-maruberi\",\n      \"kozuka-pro\",\n      \"kozuka-pr6\",\n      \"kozuka-pr6n\",\n      \"hiragino-pro\",\n      \"hiragino-pron\",\n      \"hiragino-elcapitan-pro\",\n      \"hiragino-elcapitan-pron\",\n      \"morisawa-pro\",\n      \"morisawa-pr6n\",\n      \"yu-win\",\n      \"yu-win10\",\n      \"yu-osx\",\n      \"scale=${1:factor}\",\n      \"ttfname=${1:pattern}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxcjkjatype#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxcjkvert.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"CJKvert\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxcjkvertsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxcjkvertsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/bxcjkvert#c,\\\\bxcjkvertsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxcjkvert#c,\\\\bxcjkvertsetup\": [\n      \"resetfont\",\n      \"usebaselinestretch=${1|true,false,retain|}\",\n      \"main=${1|true,false,retain|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxcjkvert#c,\\\\bxcjkvertsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxdvidriver.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifvtex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxpdfver#c\": [\n      \"check\",\n      \"nocheck\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctex32\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxpdfver#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxeepic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxGridLabelForm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxGridLabelForm{${1:real}}\"\n      }\n    },\n    {\n      \"name\": \"dashlines\"\n    },\n    {\n      \"name\": \"dottedlines\"\n    },\n    {\n      \"name\": \"drawlines\"\n    },\n    {\n      \"name\": \"eepicdottedlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epicbottomgridlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epicsidegridlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epictopgridlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushjoin\"\n    },\n    {\n      \"name\": \"noeepicdottedlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiputlist\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"multiputlist(${2:x},${3:y})(${4:Δx},${5:Δy}){${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"multiputlist\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"multiputlist(${3:x},${4:y})(${5:Δx},${6:Δy})[${2:pos}]{${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"matrixput\",\n      \"arg\": {\n        \"format\": \"()(){}(){}{}\",\n        \"snippet\": \"matrixput(${4:x},${5:y})(${6:Δx1},${7:Δy1}){${1:n1}}(${8:Δx2},${9:Δy2}){${2:n2}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"grid(${1:width},${2:height})(${3:Δwidth},${4:Δheight})\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"grid(${2:width},${3:height})(${4:Δwidth},${5:Δheight})[${1:x0,y0}]\"\n      }\n    },\n    {\n      \"name\": \"dashlinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawlinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"jput(${2:x},${3:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"picsquare\"\n    },\n    {\n      \"name\": \"putfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putfile{${1:file}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"line\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"line(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"circle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle*{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"oval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"oval(${2:width},${3:height})[${1:portion}]\"\n      }\n    },\n    {\n      \"name\": \"maxovaldiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allinethickness{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Thicklines\"\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellipse{${1:x diameter}}{${2:y diameter}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellipse*{${1:x diameter}}{${2:y diameter}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"arc{${1:diameter}}{${2:start angle}}{${3:end angle}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dottedjoin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dotgap}}\"\n      }\n    },\n    {\n      \"name\": \"dottedjoin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:character}]{${1:dotgap}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dashlength}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:dashlength}}[${2:dashgap}]\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:stretch}]{${1:dashlength}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:stretch}]{${1:dashlength}}[${3:dashgap}]\"\n      }\n    },\n    {\n      \"name\": \"drawjoin\"\n    },\n    {\n      \"name\": \"drawjoin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:stretch}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/bxeepic#c\": [\n      \"safe\",\n      \"nosafe\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctex32\",\n      \"vtex\",\n      \"original\",\n      \"ltxarrows\",\n      \"pstarrows\",\n      \"debug\",\n      \"hide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxeepic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxenclose.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"enclosebodywith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"enclosebodywith{${1:begin code}}{${2:end code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxghost-lib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"eghostguarded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eghostguarded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jghostguarded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jghostguarded{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxghost.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bxghost-lib\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxghost#c\": [\n      \"verb\",\n      \"noverb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxghost#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxjaholiday.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jaholidayname\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"jaholidayname{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"jadayofweek\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"jadayofweek{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"IfJaHolidayTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfJaHolidayTF{${1:year}}{${2:month}}{${3:day}}{${4:true code}}{${5:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfJaHolidayT\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfJaHolidayT{${1:year}}{${2:month}}{${3:day}}{${4:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfJaHolidayF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfJaHolidayF{${1:year}}{${2:month}}{${3:day}}{${4:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxjalipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"intcalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jalipsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jalipsum{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\jalipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jalipsum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jalipsum[${2:range}]{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\jalipsum\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jalipsumiroha\"\n    },\n    {\n      \"name\": \"jalipsumjugemu\"\n    },\n    {\n      \"name\": \"jalipsumjugemuP\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxjalipsum#c\": [\n      \"noCJKtilde\",\n      \"CJKtilde\"\n    ],\n    \"\\\\jalipsum\": [\n      \"iroha\",\n      \"jugemu\",\n      \"jugemuP\",\n      \"wagahai\",\n      \"preamble\",\n      \"hatsukoi\",\n      \"kusamakura\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxjalipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxjaprnind.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bxtoolbox\"\n    },\n    {\n      \"name\": \"everyhook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useparheadparenindent\"\n    },\n    {\n      \"name\": \"nouseparheadparenindent\"\n    },\n    {\n      \"name\": \"uselineheadparenindent\"\n    },\n    {\n      \"name\": \"nouselineheadparenindent\"\n    },\n    {\n      \"name\": \"usedialogueparenindent\"\n    },\n    {\n      \"name\": \"nousedialogueparenindent\"\n    },\n    {\n      \"name\": \"parheadparenindentamount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parheadparenindentamount{${1:real number}}\"\n      }\n    },\n    {\n      \"name\": \"lineheadparenindentamount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineheadparenindentamount{${1:real number}}\"\n      }\n    },\n    {\n      \"name\": \"lineheadforceindentamount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineheadforceindentamount{${1:real number}}\"\n      }\n    },\n    {\n      \"name\": \"dialogueparenindentamount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dialogueparenindentamount{${1:real number}}\"\n      }\n    },\n    {\n      \"name\": \"prnind\"\n    },\n    {\n      \"name\": \"prnind\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prnind[${1:real number}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxjaprnind#c\": [\n      \"force\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxjaprnind#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxjatoucs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxjaJisToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaJisToUcs{${1:jis}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaEucToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaEucToUcs{${1:euc}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaSjisToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaSjisToUcs{${1:sjis}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaCidToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaCidToUcs{${1:cid}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaJisToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaJisToUcsHex{${1:jis}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaEucToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaEucToUcsHex{${1:euc}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaSjisToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaSjisToUcsHex{${1:sjis}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaCidToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaCidToUcsHex{${1:cid}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaFastCidToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaFastCidToUcs{${1:cid}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaFastJscToUcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaFastJscToUcs{${1:jsc}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaFastCidToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaFastCidToUcsHex{${1:cid}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaFastJscToUcsHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaFastJscToUcsHex{${1:jsc}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaUcsToJis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaUcsToJis{${1:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaUcsToEuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaUcsToEuc{${1:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaUcsToSjis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaUcsToSjis{${1:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"bxjaFastUcsToJsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxjaFastUcsToJsc{${1:ucs}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxnewfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxDebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDebug{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newfontjascale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfontjascale{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxnewfont#c\": [\n      \"newfont\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxnewfont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxorigcapt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxDebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDebug{${1:message}}\"\n      }\n    },\n    {\n      \"name\": \"bxorigcaptDeprecateCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxorigcaptDeprecateCommand{${1:csname1,csname2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxorigcapt#c\": [\n      \"main\",\n      \"${1:language}\",\n      \"warn\",\n      \"nowarn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxorigcapt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxpapersize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifvtex\"\n    },\n    {\n      \"name\": \"ifptex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"papersizesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"papersizesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\papersizesetup#c,\\\\bxpapersizesetup#c,\\\\usepackage/bxpapersize#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxpapersizesetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxpapersizesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\papersizesetup#c,\\\\bxpapersizesetup#c,\\\\usepackage/bxpapersize#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxpapersize#c\": [\n      \"disabled\",\n      \"nodvidriver\",\n      \"autodvidriver\",\n      \"olddvips\"\n    ],\n    \"\\\\papersizesetup#c,\\\\bxpapersizesetup#c,\\\\usepackage/bxpapersize#c\": [\n      \"active\",\n      \"priority=${1|low,middle,default,high|}\",\n      \"truedimen\",\n      \"landscape\",\n      \"size=${2|real,real*,box,box*,a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,legalpaper,executivepaper,screen,${1:width*height}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxpapersize#c\",\n    \"\\\\papersizesetup#c,\\\\bxpapersizesetup#c,\\\\usepackage/bxpapersize#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxpdfver.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setpdfversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdfversion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"suppresspdfcompression\"\n    },\n    {\n      \"name\": \"suppresspdfobjcompression\"\n    },\n    {\n      \"name\": \"setpdfdecimaldigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdfdecimaldigits{${1:precision}}\"\n      }\n    },\n    {\n      \"name\": \"preservepdfdestinations\"\n    },\n    {\n      \"name\": \"bxpdfverDecimalDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxpdfverMajorVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxpdfverMinorVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxpdfverPkResolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpdfpkresolution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdfpkresolution{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/bxpdfver#c\": [\n      \"1.4\",\n      \"1.5\",\n      \"1.6\",\n      \"1.7\",\n      \"2.0\",\n      \"nocompress\",\n      \"compress\",\n      \"noobjcompress\",\n      \"objcompress\",\n      \"native\",\n      \"dvipdfmx\",\n      \"dvips\",\n      \"dviout\",\n      \"xdvi\",\n      \"disabled\",\n      \"nodvidriver\",\n      \"new-dvipdfmx\",\n      \"lenient\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/bxpdfver#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/bxtexlogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hologo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxtexlogoimport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoimport{${1:logo list%keyvals}}\",\n        \"keys\": [\n          \"\\\\bxtexlogoimport#c,\\\\bxtexlogoImport#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxtexlogoImport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoImport{${1:logo list%keyvals}}\",\n        \"keys\": [\n          \"\\\\bxtexlogoimport#c,\\\\bxtexlogoImport#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxtexlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogo{${1:logo%keyvals}}\",\n        \"keys\": [\n          \"\\\\bxtexlogo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"epTeX\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"eupTeX\"\n    },\n    {\n      \"name\": \"JBibTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"METAFONT\"\n    },\n    {\n      \"name\": \"METAPOST\"\n    },\n    {\n      \"name\": \"pBibTeX\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pLaTeX\"\n    },\n    {\n      \"name\": \"pLaTeXe\"\n    },\n    {\n      \"name\": \"pTeX\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"upBibTeX\"\n    },\n    {\n      \"name\": \"upLaTeX\"\n    },\n    {\n      \"name\": \"upLaTeXe\"\n    },\n    {\n      \"name\": \"upTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"ApTeX\"\n    },\n    {\n      \"name\": \"BaSiX\"\n    },\n    {\n      \"name\": \"CSTUG\"\n    },\n    {\n      \"name\": \"DVIPDFMx\"\n    },\n    {\n      \"name\": \"HanTheThanh\"\n    },\n    {\n      \"name\": \"HeVeA\"\n    },\n    {\n      \"name\": \"HiTeX\"\n    },\n    {\n      \"name\": \"JBibTeX\"\n    },\n    {\n      \"name\": \"JLaTeX\"\n    },\n    {\n      \"name\": \"JTeX\"\n    },\n    {\n      \"name\": \"KaTeX\"\n    },\n    {\n      \"name\": \"KET\"\n    },\n    {\n      \"name\": \"KETpic\"\n    },\n    {\n      \"name\": \"KOMAScript\"\n    },\n    {\n      \"name\": \"LaTeXiT\"\n    },\n    {\n      \"name\": \"LaTeXML\"\n    },\n    {\n      \"name\": \"LaTeXTeX\"\n    },\n    {\n      \"name\": \"logoAleph\"\n    },\n    {\n      \"name\": \"logoLambda\"\n    },\n    {\n      \"name\": \"logoLamed\"\n    },\n    {\n      \"name\": \"logoOmega\"\n    },\n    {\n      \"name\": \"logoon\"\n    },\n    {\n      \"name\": \"NTS\"\n    },\n    {\n      \"name\": \"OneTeX\"\n    },\n    {\n      \"name\": \"OpTeX\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"pTeXsT\"\n    },\n    {\n      \"name\": \"SageTeX\"\n    },\n    {\n      \"name\": \"SATySFi\"\n    },\n    {\n      \"name\": \"SLiTeX\"\n    },\n    {\n      \"name\": \"SuyahTeX\"\n    },\n    {\n      \"name\": \"teTeX\"\n    },\n    {\n      \"name\": \"TeXonLaTeX\"\n    },\n    {\n      \"name\": \"TeXXeT\"\n    },\n    {\n      \"name\": \"TTH\"\n    },\n    {\n      \"name\": \"XyM\"\n    },\n    {\n      \"name\": \"XyMTeX\"\n    },\n    {\n      \"name\": \"bxtexlogoDeclare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"bxtexlogoDeclare{${1:level}}{${2:name}}[${4:text form}]{${3:LaTeX form}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoDeclare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxtexlogoDeclare{${1:level}}{${2:name}}{${3:LaTeX form}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoFontSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoFontSlant{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoItalicOrSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoItalicOrSlant{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoNoUseBboldx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxtexlogoReflect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxtexlogoReflect{${1:text}}{${2:fallback}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoSlant{${1:real}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoSmcp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoSmcp{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoSmcpAs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoSmcpAs{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\bxtexlogoSmcpAs#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxtexlogoSmcpAsFakeFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxtexlogoSmcpAsFakeFor{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoSmcpChoice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxtexlogoSmcpChoice{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"bxtexlogoTest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxtexlogoUseBboldx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bxtexlogoimport#c,\\\\bxtexlogoImport#c\": [\n      \"${1:name}\",\n      \"+${1:name}\",\n      \"${1:prefix}-${2:name}\",\n      \"${1:prefix}+${2:name}\",\n      \"*\",\n      \"+*\",\n      \"${1:prefix}-*\",\n      \"${1:prefix}+*\",\n      \"**\",\n      \"+**\",\n      \"${1:prefix}-**\",\n      \"${1:prefix}+**\"\n    ],\n    \"\\\\bxtexlogo#c\": [\n      \"(La)TeX\",\n      \"1TeX\",\n      \"AmSLaTeX\",\n      \"AmSTeX\",\n      \"ApTeX\",\n      \"arara\",\n      \"BaSiX\",\n      \"biber\",\n      \"BibTeX\",\n      \"BibTeX8\",\n      \"ConTeXt\",\n      \"CSTUG\",\n      \"DVIPDFMx\",\n      \"e\",\n      \"emTeX\",\n      \"epTeX\",\n      \"eTeX\",\n      \"eupTeX\",\n      \"ExTeX\",\n      \"HanTheThanh\",\n      \"HeVeA\",\n      \"HiTeX\",\n      \"iniTeX\",\n      \"JBibTeX\",\n      \"JBibTeX\",\n      \"JLaTeX\",\n      \"JTeX\",\n      \"KaTeX\",\n      \"KET\",\n      \"KETpic\",\n      \"KOMAScript\",\n      \"La\",\n      \"LaTeX\",\n      \"LaTeX2e\",\n      \"LaTeX3\",\n      \"LaTeXe\",\n      \"LaTeXiT\",\n      \"LaTeXML\",\n      \"LaTeXTeX\",\n      \"logoAleph\",\n      \"logoLambda\",\n      \"logoLamed\",\n      \"logoOmega\",\n      \"logoon\",\n      \"LuahbTeX\",\n      \"LuaLaTeX\",\n      \"LuaTeX\",\n      \"LyX\",\n      \"METAFONT\",\n      \"MetaFun\",\n      \"METAPOST\",\n      \"MetaPost\",\n      \"MiKTeX\",\n      \"NTS\",\n      \"OneTeX\",\n      \"OpTeX\",\n      \"OzMF\",\n      \"OzMP\",\n      \"OzTeX\",\n      \"OzTtH\",\n      \"pBibTeX\",\n      \"PCTeX\",\n      \"pdfLaTeX\",\n      \"pdfTeX\",\n      \"PiC\",\n      \"PiCTeX\",\n      \"plainTeX\",\n      \"pLaTeX\",\n      \"pLaTeXe\",\n      \"pTeX\",\n      \"pTeXsT\",\n      \"SageTeX\",\n      \"SATySFi\",\n      \"SLiTeX\",\n      \"SliTeX\",\n      \"SuyahTeX\",\n      \"teTeX\",\n      \"TeX\",\n      \"TeX4ht\",\n      \"TeXonLaTeX\",\n      \"TeXXeT\",\n      \"TikZ\",\n      \"TTH\",\n      \"upBibTeX\",\n      \"upBibTeX\",\n      \"upLaTeX\",\n      \"upLaTeXe\",\n      \"upTeX\",\n      \"virTeX\",\n      \"VTeX\",\n      \"Xe\",\n      \"XeLaTeX\",\n      \"XeT\",\n      \"XeTeX\",\n      \"XyM\",\n      \"XyMTeX\",\n      \"YukidarumaTeX\"\n    ],\n    \"\\\\bxtexlogoSmcpAs#c\": [\n      \"auto\",\n      \"real\",\n      \"fake\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxtoolbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bxRequireDefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxRequireDefinition{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifbxOk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxRes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfcsundefX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfcsundefX{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxCsuseX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCsuseX{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifbxineTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinpdfTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinAleph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinpTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinupTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinnativeupTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxinjTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfineTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfineTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinpdfTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinpdfTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinLuaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinLuaTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinOmega\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinOmega{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinAleph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinAleph{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinXeTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinXeTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinpTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinpTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinupTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinupTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinnativeupTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinnativeupTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfinjTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfinjTeX{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxConstIfToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxConstIfToken{${1:boolean1}}{${2:boolean2}}\"\n      }\n    },\n    {\n      \"name\": \"bxIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIf{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfcat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfcat{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfx{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfdim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfdim{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfnum{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfInMovingArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfInMovingArg{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxMessageToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxMessageToken{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxCheckForMovingArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCheckForMovingArg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxCheckForMovingArgForTest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxCheckForMovingArgForTest{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxSetDummyIfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxUnsetDummyIfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxPrimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfHasIfPrimitive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfHasIfPrimitive{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxPrimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxStrcmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfPdfOutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfPdfOutput{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfPdfOutputNow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxIfPdfOutputNow{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbxPdfOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfCsPrimitive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxIfCsPrimitive{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfExpToEqual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bxIfExpToEqual{${1:text1}}{${2:text2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfExpToEqualX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bxIfExpToEqualX{${1:text1}}{${2:text2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfstrequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bxIfstrequal{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfstrequalX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bxIfstrequalX{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxDetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDetokenize{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bxStringify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxStringify{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bxCsNoexpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCsNoexpand{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxNewrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxNewrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxNewrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxNewrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxNewrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxNewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxNewrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxRenewrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxRenewrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxRenewrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxRenewrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxRenewrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRenewrobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxRenewrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxProviderobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxProviderobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxProviderobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxProviderobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bxProviderobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxProviderobustcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"bxProviderobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"bxRobustify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxRobustify{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfcsdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfcsdef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxIfcsundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfcsundef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"bxCsuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCsuse{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bxCsshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxCsshow{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bxResDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxDebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDebug{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxShowbool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxShowbool{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bxShowtoggle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxShowtoggle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bxProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxProcessOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxHasUcsChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbxHasAlUcsChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxToChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToChar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToJaChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToJaChar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToUcsChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxToUcsCharDual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxToUcsCharDual{${1:jis}}{${2:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"bxToUcsCharSeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToUcsCharSeq{${1:jis:ucs,...}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexTiny\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexTiny{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexSmall{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexTwo{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexThree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexThree{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexFour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexFour{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexFive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexFive{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexFiveX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexFiveX{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexEight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexEight{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToHexUC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToHexUC{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToDecFour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToDecFour{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToDecFive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToDecFive{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bxToLower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToLower{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"bxToUpper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxToUpper{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"bxDocumentSpecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDocumentSpecial{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bxDocumentSpecialUrgent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDocumentSpecialUrgent{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bxSetModuleName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxSetModuleName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bxModuleName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxCurrentError\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxCurrentWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxCurrentWarningNoLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxCurrentInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxPrepareSetKeysSafe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxSetKeysSafe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxRestKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxDriverList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxDriverInherent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxSetDriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxSetDriver{${1:driver}}\"\n      }\n    },\n    {\n      \"name\": \"bxSetDriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bxSetDriver[${2:file}]{${1:driver}}\"\n      }\n    },\n    {\n      \"name\": \"bxDriverSpecifiedFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDriverSpecifiedFor{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"bxDefineDDProcess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxDefineDDProcess{${1:name}}{${2:driver}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxDefineDDProcessDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxDefineDDProcessDefault{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bxDoDDProcess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxDoDDProcess{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bxDeclareDriverOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxToYokoDir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxAtBeginDviX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bxAtBeginDviX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bxGetZenkakuWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxIfCharToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxIfCharToken{${1:token}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"bxInternalJaEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxInputJaEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxOutputJaEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internaljaencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputjaencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputjaencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infojenc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bxwareki.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"warekisetdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"warekisetdate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"warekisettoday\"\n    },\n    {\n      \"name\": \"thewarekiyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warekigengo\"\n    },\n    {\n      \"name\": \"warekigengoinitial\"\n    },\n    {\n      \"name\": \"warekiyear\"\n    },\n    {\n      \"name\": \"warekidate\"\n    },\n    {\n      \"name\": \"warekikanjidate\"\n    },\n    {\n      \"name\": \"warekijkanjidate\"\n    },\n    {\n      \"name\": \"warekicustomdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warekicustomdate{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\warekicustomdate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WarekiIfCustomDateAvailable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WarekiIfCustomDateAvailable{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"warekitoday\"\n    },\n    {\n      \"name\": \"warekikanjitoday\"\n    },\n    {\n      \"name\": \"warekijkanjitoday\"\n    },\n    {\n      \"name\": \"WarekiUseNormalInterGlue\"\n    },\n    {\n      \"name\": \"WarekiUseNoInterGlue\"\n    },\n    {\n      \"name\": \"WarekiUseCustomInterGlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WarekiUseCustomInterGlue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WarekiKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WarekiKansuji{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"WarekiJKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WarekiJKansuji{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"WarekiIfAvailable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WarekiIfAvailable{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"WarekiSetToday\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\warekicustomdate\": [\n      \"w\",\n      \"k\",\n      \"j\",\n      \"J\",\n      \"o\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/byo-twemojis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"byoTwemoji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"byoTwemoji{${1:elmt1;elmt2;...}}\"\n      }\n    },\n    {\n      \"name\": \"byoTwemoji\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"byoTwemoji[${2:options%keyvals}]{${1:elmt1;elmt2;...}}\",\n        \"keys\": [\n          \"\\\\byoTwemoji#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"forElementInList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forElementInList{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"byoTwemojiShadowTransparency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twemojiDefaultHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineByoTwemojiElement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineByoTwemojiElement{${1:elmt name}}{${2:elmt TikZ paths}}\"\n      }\n    },\n    {\n      \"name\": \"byoTwemojiElement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"byoTwemojiElement{${1:name!TikZ options}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\byoTwemoji#c\": [\n      \"let White=\",\n      \"let WhiteGray=\",\n      \"let LightGray=\",\n      \"let Gray=\",\n      \"let DarkGray=\",\n      \"let Black=\",\n      \"let LightBrown=\",\n      \"let Brown=\",\n      \"let Yellow=\",\n      \"let DarkYellow=\",\n      \"let LightOrange=\",\n      \"let Orange=\",\n      \"let DarkOrange=\",\n      \"let LightRose=\",\n      \"let Rose=\",\n      \"let LightRed=\",\n      \"let Red=\",\n      \"let DarkRed=\",\n      \"let WineRed=\",\n      \"let DarkWineRed=\",\n      \"let LightBlue=\",\n      \"let Blue=\",\n      \"let DarkBlue=\",\n      \"let LightGreen=\",\n      \"let Green=\",\n      \"let DarkGreen=\",\n      \"let LightPurple=\",\n      \"let Purple=\",\n      \"let Shadow=\",\n      \"set White=\",\n      \"set WhiteGray=\",\n      \"set LightGray=\",\n      \"set Gray=\",\n      \"set DarkGray=\",\n      \"set Black=\",\n      \"set LightBrown=\",\n      \"set Brown=\",\n      \"set Yellow=\",\n      \"set DarkYellow=\",\n      \"set LightOrange=\",\n      \"set Orange=\",\n      \"set DarkOrange=\",\n      \"set LightRose=\",\n      \"set Rose=\",\n      \"set LightRed=\",\n      \"set Red=\",\n      \"set DarkRed=\",\n      \"set WineRed=\",\n      \"set DarkWineRed=\",\n      \"set LightBlue=\",\n      \"set Blue=\",\n      \"set DarkBlue=\",\n      \"set LightGreen=\",\n      \"set Green=\",\n      \"set DarkGreen=\",\n      \"set LightPurple=\",\n      \"set Purple=\",\n      \"set Shadow=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/byrne.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"luamplib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defineNewPicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineNewPicture{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"defineNewPicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defineNewPicture[${2:offspring scale}]{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"defineNewPicture\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"defineNewPicture[${2:offspring scale}][${3:main scale}]{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"drawCurrentPicture\"\n    },\n    {\n      \"name\": \"defineFromCurrentPicture\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineFromCurrentPicture{${1:vertical align}}{${2:picture name}}{${3:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"drawFromCurrentPicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawFromCurrentPicture{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"drawFromCurrentPicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawFromCurrentPicture[${2:vertical align}]{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"drawFromCurrentPicture\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawFromCurrentPicture[${2:vertical align}][${3:picture name}]{${1:MetaPost code}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawUnitLine{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawUnitLine[${2:line second name}]{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawProportionalLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawProportionalLine{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawSizedLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawSizedLine{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawSizedLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawSizedLine[${2:line second name}]{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitRay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawUnitRay{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitRay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawUnitRay[${2:ray name}]{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawRightAngle\"\n    },\n    {\n      \"name\": \"drawTwoRightAngles\"\n    },\n    {\n      \"name\": \"drawAngle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawAngle{${1:angle name}}\"\n      }\n    },\n    {\n      \"name\": \"drawAngleWithSides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawAngleWithSides{${1:angle name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPolygon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawPolygon{${1:polygon name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPolygon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawPolygon[${2:vertical align}]{${1:polygon name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPolygon\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawPolygon[${2:vertical align}][${3:new name}]{${1:polygon name}}\"\n      }\n    },\n    {\n      \"name\": \"drawCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawCircle{${1:circle name}}\"\n      }\n    },\n    {\n      \"name\": \"drawCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawCircle[${2:vertical align}]{${1:circle name}}\"\n      }\n    },\n    {\n      \"name\": \"drawCircle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawCircle[${2:vertical align}][${3:scale}]{${1:circle name}}\"\n      }\n    },\n    {\n      \"name\": \"drawArc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawArc{${1:arc name}}\"\n      }\n    },\n    {\n      \"name\": \"drawArc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawArc[${2:vertical align}]{${1:arc name}}\"\n      }\n    },\n    {\n      \"name\": \"drawArc\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawArc[${2:vertical align}][${3:scale}]{${1:arc name}}\"\n      }\n    },\n    {\n      \"name\": \"drawLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawLine{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawLine[${2:vertical align}]{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawLine\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawLine[${2:vertical align}][${3:new name}]{${1:line name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawPointM{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawPointL{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointL\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawPointL[${2:vertical align}]{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointL\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawPointL[${2:vertical align}][${3:lines to omit}]{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawPoint{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPoint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawPoint[${2:vertical align}]{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"drawPoint\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawPoint[${2:vertical align}][${3:lines to omit}]{${1:point name}}\"\n      }\n    },\n    {\n      \"name\": \"addToUndefineList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addToUndefineList{${1:picture name}}\"\n      }\n    },\n    {\n      \"name\": \"CreateNewInstanceForPicturefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CreateNewInstanceForPicturetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentInlinePicturePlacement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentInstance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawDefinedPicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawDefinedPicture{${1:picture name}}{${2:align}}\"\n      }\n    },\n    {\n      \"name\": \"drawImageFromCurrentInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawImageFromCurrentInstance{${1:picture name}}\"\n      }\n    },\n    {\n      \"name\": \"drawMagnitude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"drawMagnitude[${2:vertical align}][${3:opt}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawMagnitude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawMagnitude[${2:vertical align}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawMagnitude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawMagnitude{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawProportionalIndLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawProportionalIndLine{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawProportionalRay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawProportionalRay{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawSizedRay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawSizedRay[${2:opt}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawSizedRay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawSizedRay{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitIndLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawUnitIndLine[${2:opt}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawUnitIndLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawUnitIndLine{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"formatImageName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatImageName{${1:picture name}}\"\n      }\n    },\n    {\n      \"name\": \"ifCreateNewInstanceForPicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastPict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpInst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpPost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpPre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetPicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"offsetPicture{${1:top}}{${2:bottom}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pictOffsetBottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pictOffsetTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undefineList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unmarkPictAsReady\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unmarkPictAsReady{${1:picture name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/bytefield.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bitbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitbox{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bitbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bitbox[${3:sides}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bitbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bitbox{${1:width}}[${3:options%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bitbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"bitbox[${3:sides}]{${1:width}}[${4:options%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"wordbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wordbox{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"wordbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wordbox[${3:sides}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"wordbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"wordbox{${1:width}}[${3:options%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"wordbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"wordbox[${3:sides}]{${1:width}}[${4:options%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bitboxes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitboxes{${1:width}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"bitboxes\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bitboxes[${3:sides}]{${1:width}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"bitboxes\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bitboxes{${1:width}}[${3:options%keyvals}]{${2:tokens}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bitboxes\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"bitboxes[${3:sides}]{${1:width}}[${4:options%keyvals}]{${2:tokens}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bitboxes*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bitboxes*{${1:width}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"bitboxes*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bitboxes*[${3:sides}]{${1:width}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"bitboxes*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"bitboxes*{${1:width}}[${3:options%keyvals}]{${2:tokens}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bitboxes*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"bitboxes*[${3:sides}]{${1:width}}[${4:options%keyvals}]{${2:tokens}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bitheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitheader{${1:bit-positions}}\"\n      }\n    },\n    {\n      \"name\": \"bitheader\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bitheader[${2:options%keyvals}]{${1:bit-positions}}\",\n        \"keys\": [\n          \"\\\\bitheader\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skippedwords\"\n    },\n    {\n      \"name\": \"bytefieldsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bytefieldsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"amp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bitwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"byteheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curlyshrinkage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curlyspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heightunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widthunits\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bytefield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bit-width}}\"\n      }\n    },\n    {\n      \"name\": \"bytefield\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:bit-width}}\",\n        \"keys\": [\n          \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rightwordgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightwordgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{rightwordgroup},\\\\begin{leftwordgroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftwordgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftwordgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{rightwordgroup},\\\\begin{leftwordgroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\bitheader\": [\n      \"bitformatting={${1:commands}}\",\n      \"endianness=${1|little,big|}\",\n      \"lsb=${1:integer}\"\n    ],\n    \"\\\\begin{rightwordgroup},\\\\begin{leftwordgroup}\": [\n      \"curlystyle=${1:command}\",\n      \"leftcurlystyle=${1:command}\",\n      \"rightcurlystyle=${1:command}\"\n    ],\n    \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\": [\n      \"bitwidth=\",\n      \"bitheight=\",\n      \"endianness=${1|little,big|}\",\n      \"bitformatting={${1:commands}}\",\n      \"boxformatting={${1:commands}}\",\n      \"bgcolor=\",\n      \"leftcurly=${1:delimiter}\",\n      \"rightcurly=${1:delimiter}\",\n      \"leftcurlyspace=\",\n      \"rightcurlyspace=\",\n      \"curlyspace=\",\n      \"leftlabelspace=\",\n      \"rightlabelspace=\",\n      \"labelspace=\",\n      \"leftcurlyshrinkage=\",\n      \"rightcurlyshrinkage=\",\n      \"curlyshrinkage=\",\n      \"leftcurlystyle=${1:command}\",\n      \"rightcurlystyle=${1:command}\",\n      \"curlystyle=${1:command}\",\n      \"lsb=${1:integer}\",\n      \"perword=${1:command}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\bytefieldsetup,\\\\begin{bytefield},\\\\bitbox,\\\\wordbox,\\\\bitboxes,\\\\bitboxes*,\\\\usepackage/bytefield#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/byzantinemusic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"agkylh*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"agkylh*[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylh*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agkylh*{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"agkylh[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agkylh{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ahxoh\"\n    },\n    {\n      \"name\": \"amtonh\"\n    },\n    {\n      \"name\": \"ana\"\n    },\n    {\n      \"name\": \"anmM\"\n    },\n    {\n      \"name\": \"anmMD\"\n    },\n    {\n      \"name\": \"anmtM\"\n    },\n    {\n      \"name\": \"anmtMD\"\n    },\n    {\n      \"name\": \"antK\"\n    },\n    {\n      \"name\": \"antM\"\n    },\n    {\n      \"name\": \"anttK\"\n    },\n    {\n      \"name\": \"anttM\"\n    },\n    {\n      \"name\": \"apo\"\n    },\n    {\n      \"name\": \"apoapo\"\n    },\n    {\n      \"name\": \"apod\"\n    },\n    {\n      \"name\": \"apoeteMD\"\n    },\n    {\n      \"name\": \"apoeteMDD\"\n    },\n    {\n      \"name\": \"apogapo\"\n    },\n    {\n      \"name\": \"apogkkoli\"\n    },\n    {\n      \"name\": \"apokkoli\"\n    },\n    {\n      \"name\": \"apokkoxe\"\n    },\n    {\n      \"name\": \"apooli\"\n    },\n    {\n      \"name\": \"apooxe\"\n    },\n    {\n      \"name\": \"apopet\"\n    },\n    {\n      \"name\": \"apot\"\n    },\n    {\n      \"name\": \"apott\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"argp\"\n    },\n    {\n      \"name\": \"arsh\"\n    },\n    {\n      \"name\": \"atonh\"\n    },\n    {\n      \"name\": \"barhxoh\"\n    },\n    {\n      \"name\": \"barhxozwyh\"\n    },\n    {\n      \"name\": \"bart\"\n    },\n    {\n      \"name\": \"bartg\"\n    },\n    {\n      \"name\": \"bartgp\"\n    },\n    {\n      \"name\": \"barth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"barth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"barth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"bartpg\"\n    },\n    {\n      \"name\": \"bartt\"\n    },\n    {\n      \"name\": \"barttt\"\n    },\n    {\n      \"name\": \"bartttt\"\n    },\n    {\n      \"name\": \"barysh\"\n    },\n    {\n      \"name\": \"bbbmchi\"\n    },\n    {\n      \"name\": \"bbbmchiP\"\n    },\n    {\n      \"name\": \"bbbmchiP\"\n    },\n    {\n      \"name\": \"bbbmegachi\"\n    },\n    {\n      \"name\": \"bbmchi\"\n    },\n    {\n      \"name\": \"bbmchiP\"\n    },\n    {\n      \"name\": \"bbmegachi\"\n    },\n    {\n      \"name\": \"bela\"\n    },\n    {\n      \"name\": \"belk\"\n    },\n    {\n      \"name\": \"bhxoh\"\n    },\n    {\n      \"name\": \"bmchi\"\n    },\n    {\n      \"name\": \"bmchiP\"\n    },\n    {\n      \"name\": \"bmegachi\"\n    },\n    {\n      \"name\": \"bmtonh\"\n    },\n    {\n      \"name\": \"boy\"\n    },\n    {\n      \"name\": \"boyA\"\n    },\n    {\n      \"name\": \"boybfD\"\n    },\n    {\n      \"name\": \"boybm\"\n    },\n    {\n      \"name\": \"boyD\"\n    },\n    {\n      \"name\": \"boydia\"\n    },\n    {\n      \"name\": \"boydiaa\"\n    },\n    {\n      \"name\": \"boydiafD\"\n    },\n    {\n      \"name\": \"boydiah\"\n    },\n    {\n      \"name\": \"boydiak\"\n    },\n    {\n      \"name\": \"boydiam\"\n    },\n    {\n      \"name\": \"boyh\"\n    },\n    {\n      \"name\": \"boykdiam\"\n    },\n    {\n      \"name\": \"boypadiam\"\n    },\n    {\n      \"name\": \"boyplabm\"\n    },\n    {\n      \"name\": \"boyton\"\n    },\n    {\n      \"name\": \"boytondiam\"\n    },\n    {\n      \"name\": \"boytongadiam\"\n    },\n    {\n      \"name\": \"bsline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsline{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"btonh\"\n    },\n    {\n      \"name\": \"bxmchi\"\n    },\n    {\n      \"name\": \"bxmchiP\"\n    },\n    {\n      \"name\": \"bxmegachi\"\n    },\n    {\n      \"name\": \"changeanacolor\"\n    },\n    {\n      \"name\": \"changeanacolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeanacolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeantcolor\"\n    },\n    {\n      \"name\": \"changeantcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeantcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeaplhcolor\"\n    },\n    {\n      \"name\": \"changeaplhcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeaplhcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeargcolor\"\n    },\n    {\n      \"name\": \"changeargcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeargcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeedocolor\"\n    },\n    {\n      \"name\": \"changeedocolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeedocolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeekscolor\"\n    },\n    {\n      \"name\": \"changeekscolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeekscolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeetecolor\"\n    },\n    {\n      \"name\": \"changeetecolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeetecolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changefthcolor\"\n    },\n    {\n      \"name\": \"changefthcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changefthcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changegcolor\"\n    },\n    {\n      \"name\": \"changegcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changegcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeisokrathmasize\"\n    },\n    {\n      \"name\": \"changeisokrathmasize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeisokrathmasize[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"changeisokrthmacolor\"\n    },\n    {\n      \"name\": \"changeisokrthmacolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeisokrthmacolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeklacolor\"\n    },\n    {\n      \"name\": \"changeklacolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeklacolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changekorwnacolor\"\n    },\n    {\n      \"name\": \"changekorwnacolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changekorwnacolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeletterspace\"\n    },\n    {\n      \"name\": \"changeletterspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeletterspace[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changelygcolor\"\n    },\n    {\n      \"name\": \"changelygcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changelygcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changemartcolor\"\n    },\n    {\n      \"name\": \"changemartcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changemartcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changemetracolor\"\n    },\n    {\n      \"name\": \"changemetracolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changemetracolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changemusicscale\"\n    },\n    {\n      \"name\": \"changemusicscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changemusicscale[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changemusicsize\"\n    },\n    {\n      \"name\": \"changemusicsize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changemusicsize[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"changemusictextgap\"\n    },\n    {\n      \"name\": \"changemusictextgap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changemusictextgap[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changeparcolor\"\n    },\n    {\n      \"name\": \"changeparcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeparcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changepaycolor\"\n    },\n    {\n      \"name\": \"changepaycolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changepaycolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changepiacolor\"\n    },\n    {\n      \"name\": \"changepiacolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changepiacolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changepshcolor\"\n    },\n    {\n      \"name\": \"changepshcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changepshcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeRcolor\"\n    },\n    {\n      \"name\": \"changeRcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeRcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changestayroscolor\"\n    },\n    {\n      \"name\": \"changestayroscolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changestayroscolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changetempocolor\"\n    },\n    {\n      \"name\": \"changetempocolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetempocolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changetextbold\"\n    },\n    {\n      \"name\": \"changetextbold\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextbold[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changetextcolor\"\n    },\n    {\n      \"name\": \"changetextcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changetextfont\"\n    },\n    {\n      \"name\": \"changetextfont\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextfont[${1:font name}]\"\n      }\n    },\n    {\n      \"name\": \"changetextscale\"\n    },\n    {\n      \"name\": \"changetextscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextscale[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changetextsize\"\n    },\n    {\n      \"name\": \"changetextsize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextsize[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"changetextslant\"\n    },\n    {\n      \"name\": \"changetextslant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextslant[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changetextstretch\"\n    },\n    {\n      \"name\": \"changetextstretch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetextstretch[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changethheight\"\n    },\n    {\n      \"name\": \"changethheight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changethheight[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changetrocolor\"\n    },\n    {\n      \"name\": \"changetrocolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changetrocolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeydcolor\"\n    },\n    {\n      \"name\": \"changeydcolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeydcolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"changeypsosisokrathmatos\"\n    },\n    {\n      \"name\": \"changeypsosisokrathmatos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeypsosisokrathmatos[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"changeypsosmartyrias\"\n    },\n    {\n      \"name\": \"changeypsosmartyrias\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeypsosmartyrias[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"changeypsosxronou\"\n    },\n    {\n      \"name\": \"changeypsosxronou\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"changeypsosxronou[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"dhxoh\"\n    },\n    {\n      \"name\": \"di\"\n    },\n    {\n      \"name\": \"dia\"\n    },\n    {\n      \"name\": \"diA\"\n    },\n    {\n      \"name\": \"diaD\"\n    },\n    {\n      \"name\": \"diap\"\n    },\n    {\n      \"name\": \"dib\"\n    },\n    {\n      \"name\": \"dibboyh\"\n    },\n    {\n      \"name\": \"dibboyhxoh\"\n    },\n    {\n      \"name\": \"dibdidibh\"\n    },\n    {\n      \"name\": \"dibdididiah\"\n    },\n    {\n      \"name\": \"dibdih\"\n    },\n    {\n      \"name\": \"dibdihxoh\"\n    },\n    {\n      \"name\": \"dibh\"\n    },\n    {\n      \"name\": \"dibm\"\n    },\n    {\n      \"name\": \"diD\"\n    },\n    {\n      \"name\": \"didia\"\n    },\n    {\n      \"name\": \"didiadih\"\n    },\n    {\n      \"name\": \"didiafD\"\n    },\n    {\n      \"name\": \"didiah\"\n    },\n    {\n      \"name\": \"didiam\"\n    },\n    {\n      \"name\": \"digadiam\"\n    },\n    {\n      \"name\": \"dih\"\n    },\n    {\n      \"name\": \"dik\"\n    },\n    {\n      \"name\": \"dikdiam\"\n    },\n    {\n      \"name\": \"diMA\"\n    },\n    {\n      \"name\": \"diplab\"\n    },\n    {\n      \"name\": \"diplaba\"\n    },\n    {\n      \"name\": \"diplabfD\"\n    },\n    {\n      \"name\": \"diplabm\"\n    },\n    {\n      \"name\": \"diplabtesdidiah\"\n    },\n    {\n      \"name\": \"diton\"\n    },\n    {\n      \"name\": \"ditondiam\"\n    },\n    {\n      \"name\": \"dlllM\"\n    },\n    {\n      \"name\": \"dlllMD\"\n    },\n    {\n      \"name\": \"dllM\"\n    },\n    {\n      \"name\": \"dllMD\"\n    },\n    {\n      \"name\": \"dlM\"\n    },\n    {\n      \"name\": \"dlMD\"\n    },\n    {\n      \"name\": \"dM\"\n    },\n    {\n      \"name\": \"dMD\"\n    },\n    {\n      \"name\": \"dmtonh\"\n    },\n    {\n      \"name\": \"dtonh\"\n    },\n    {\n      \"name\": \"edoKD\"\n    },\n    {\n      \"name\": \"eksM\"\n    },\n    {\n      \"name\": \"eksMD\"\n    },\n    {\n      \"name\": \"ela\"\n    },\n    {\n      \"name\": \"elaapo\"\n    },\n    {\n      \"name\": \"elaapog\"\n    },\n    {\n      \"name\": \"elaapogp\"\n    },\n    {\n      \"name\": \"elaapokkoli\"\n    },\n    {\n      \"name\": \"elaapokkoxe\"\n    },\n    {\n      \"name\": \"elaapooli\"\n    },\n    {\n      \"name\": \"elaapooxe\"\n    },\n    {\n      \"name\": \"elaapopet\"\n    },\n    {\n      \"name\": \"elaapopg\"\n    },\n    {\n      \"name\": \"elaapot\"\n    },\n    {\n      \"name\": \"elad\"\n    },\n    {\n      \"name\": \"elag\"\n    },\n    {\n      \"name\": \"elakkoli\"\n    },\n    {\n      \"name\": \"elakkoxe\"\n    },\n    {\n      \"name\": \"elaoli\"\n    },\n    {\n      \"name\": \"elapet\"\n    },\n    {\n      \"name\": \"elat\"\n    },\n    {\n      \"name\": \"eteK\"\n    },\n    {\n      \"name\": \"eteKD\"\n    },\n    {\n      \"name\": \"eteKDD\"\n    },\n    {\n      \"name\": \"eteM\"\n    },\n    {\n      \"name\": \"eteMD\"\n    },\n    {\n      \"name\": \"eteMDD\"\n    },\n    {\n      \"name\": \"etepsaKD\"\n    },\n    {\n      \"name\": \"etepsaKDD\"\n    },\n    {\n      \"name\": \"g\"\n    },\n    {\n      \"name\": \"ga\"\n    },\n    {\n      \"name\": \"gaA\"\n    },\n    {\n      \"name\": \"gabm\"\n    },\n    {\n      \"name\": \"gaboydiah\"\n    },\n    {\n      \"name\": \"gaD\"\n    },\n    {\n      \"name\": \"gadia\"\n    },\n    {\n      \"name\": \"gadiaa\"\n    },\n    {\n      \"name\": \"gadiafD\"\n    },\n    {\n      \"name\": \"gadiagam\"\n    },\n    {\n      \"name\": \"gadiak\"\n    },\n    {\n      \"name\": \"gadiam\"\n    },\n    {\n      \"name\": \"gagadiah\"\n    },\n    {\n      \"name\": \"gah\"\n    },\n    {\n      \"name\": \"gak\"\n    },\n    {\n      \"name\": \"gaplabm\"\n    },\n    {\n      \"name\": \"gapo\"\n    },\n    {\n      \"name\": \"gapod\"\n    },\n    {\n      \"name\": \"gapot\"\n    },\n    {\n      \"name\": \"gaton\"\n    },\n    {\n      \"name\": \"gatondiam\"\n    },\n    {\n      \"name\": \"gD\"\n    },\n    {\n      \"name\": \"gDD\"\n    },\n    {\n      \"name\": \"gdD\"\n    },\n    {\n      \"name\": \"gela\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"ggapo\"\n    },\n    {\n      \"name\": \"ggDD\"\n    },\n    {\n      \"name\": \"gggapo\"\n    },\n    {\n      \"name\": \"gggDD\"\n    },\n    {\n      \"name\": \"gggP\"\n    },\n    {\n      \"name\": \"gggPA\"\n    },\n    {\n      \"name\": \"gggpDD\"\n    },\n    {\n      \"name\": \"gggpypokkoli\"\n    },\n    {\n      \"name\": \"gggypo\"\n    },\n    {\n      \"name\": \"gggypokkoli\"\n    },\n    {\n      \"name\": \"gggypokkoxe\"\n    },\n    {\n      \"name\": \"ggiso\"\n    },\n    {\n      \"name\": \"ggkkoli\"\n    },\n    {\n      \"name\": \"ggkkoxe\"\n    },\n    {\n      \"name\": \"ggP\"\n    },\n    {\n      \"name\": \"ggPA\"\n    },\n    {\n      \"name\": \"ggPD\"\n    },\n    {\n      \"name\": \"ggpDD\"\n    },\n    {\n      \"name\": \"ggpypokkoli\"\n    },\n    {\n      \"name\": \"ggypo\"\n    },\n    {\n      \"name\": \"ggypokkoxe\"\n    },\n    {\n      \"name\": \"ghxoh\"\n    },\n    {\n      \"name\": \"giso\"\n    },\n    {\n      \"name\": \"gIV\"\n    },\n    {\n      \"name\": \"gK\"\n    },\n    {\n      \"name\": \"gKD\"\n    },\n    {\n      \"name\": \"gkkoli\"\n    },\n    {\n      \"name\": \"gkkoxe\"\n    },\n    {\n      \"name\": \"gkkypsoli\"\n    },\n    {\n      \"name\": \"gM\"\n    },\n    {\n      \"name\": \"gMD\"\n    },\n    {\n      \"name\": \"gMD\"\n    },\n    {\n      \"name\": \"gmtonh\"\n    },\n    {\n      \"name\": \"golixkant\"\n    },\n    {\n      \"name\": \"gp\"\n    },\n    {\n      \"name\": \"gPA\"\n    },\n    {\n      \"name\": \"gPD\"\n    },\n    {\n      \"name\": \"gpiso\"\n    },\n    {\n      \"name\": \"gpypo\"\n    },\n    {\n      \"name\": \"gpypokkoli\"\n    },\n    {\n      \"name\": \"gtonh\"\n    },\n    {\n      \"name\": \"gV\"\n    },\n    {\n      \"name\": \"gVI\"\n    },\n    {\n      \"name\": \"gVII\"\n    },\n    {\n      \"name\": \"gxamelaapo\"\n    },\n    {\n      \"name\": \"gyfD\"\n    },\n    {\n      \"name\": \"gypo\"\n    },\n    {\n      \"name\": \"gypokkoli\"\n    },\n    {\n      \"name\": \"gypokkoxe\"\n    },\n    {\n      \"name\": \"gypooxe\"\n    },\n    {\n      \"name\": \"hxoh\"\n    },\n    {\n      \"name\": \"II\"\n    },\n    {\n      \"name\": \"IIA\"\n    },\n    {\n      \"name\": \"III\"\n    },\n    {\n      \"name\": \"IIIA\"\n    },\n    {\n      \"name\": \"isa\"\n    },\n    {\n      \"name\": \"isaA\"\n    },\n    {\n      \"name\": \"isaD\"\n    },\n    {\n      \"name\": \"isk\"\n    },\n    {\n      \"name\": \"iso\"\n    },\n    {\n      \"name\": \"isoapo\"\n    },\n    {\n      \"name\": \"isoapot\"\n    },\n    {\n      \"name\": \"isog\"\n    },\n    {\n      \"name\": \"isogp\"\n    },\n    {\n      \"name\": \"isokkoli\"\n    },\n    {\n      \"name\": \"isokkoxe\"\n    },\n    {\n      \"name\": \"isooli\"\n    },\n    {\n      \"name\": \"isooxe\"\n    },\n    {\n      \"name\": \"isopet\"\n    },\n    {\n      \"name\": \"isopeteteMDD\"\n    },\n    {\n      \"name\": \"isopsh\"\n    },\n    {\n      \"name\": \"IV\"\n    },\n    {\n      \"name\": \"IVA\"\n    },\n    {\n      \"name\": \"IXanwoli\"\n    },\n    {\n      \"name\": \"IXanwoxe\"\n    },\n    {\n      \"name\": \"IXanwpet\"\n    },\n    {\n      \"name\": \"IXkatt\"\n    },\n    {\n      \"name\": \"katheth\"\n    },\n    {\n      \"name\": \"katheth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"katheth[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"kdibolih\"\n    },\n    {\n      \"name\": \"kdiplaboligadiah\"\n    },\n    {\n      \"name\": \"kdiplabolih\"\n    },\n    {\n      \"name\": \"ke\"\n    },\n    {\n      \"name\": \"keA\"\n    },\n    {\n      \"name\": \"keb\"\n    },\n    {\n      \"name\": \"kebm\"\n    },\n    {\n      \"name\": \"keD\"\n    },\n    {\n      \"name\": \"kedia\"\n    },\n    {\n      \"name\": \"kediafD\"\n    },\n    {\n      \"name\": \"kediah\"\n    },\n    {\n      \"name\": \"kediak\"\n    },\n    {\n      \"name\": \"kediakeh\"\n    },\n    {\n      \"name\": \"kediam\"\n    },\n    {\n      \"name\": \"kediaypsolikeh\"\n    },\n    {\n      \"name\": \"keh\"\n    },\n    {\n      \"name\": \"kek\"\n    },\n    {\n      \"name\": \"kekdiam\"\n    },\n    {\n      \"name\": \"kekediam\"\n    },\n    {\n      \"name\": \"keno\"\n    },\n    {\n      \"name\": \"keno\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"keno[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"kentro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keplabm\"\n    },\n    {\n      \"name\": \"keton\"\n    },\n    {\n      \"name\": \"ketondiam\"\n    },\n    {\n      \"name\": \"kk\"\n    },\n    {\n      \"name\": \"kkg\"\n    },\n    {\n      \"name\": \"kkoli\"\n    },\n    {\n      \"name\": \"kkolik\"\n    },\n    {\n      \"name\": \"kkoxe\"\n    },\n    {\n      \"name\": \"kkypsoli\"\n    },\n    {\n      \"name\": \"kkypsolik\"\n    },\n    {\n      \"name\": \"kkypsoxe\"\n    },\n    {\n      \"name\": \"kla\"\n    },\n    {\n      \"name\": \"klaA\"\n    },\n    {\n      \"name\": \"klaapo\"\n    },\n    {\n      \"name\": \"klaapoolipsh\"\n    },\n    {\n      \"name\": \"klaD\"\n    },\n    {\n      \"name\": \"klaela\"\n    },\n    {\n      \"name\": \"klaiso\"\n    },\n    {\n      \"name\": \"klaK\"\n    },\n    {\n      \"name\": \"klaKD\"\n    },\n    {\n      \"name\": \"klaM\"\n    },\n    {\n      \"name\": \"klaoli\"\n    },\n    {\n      \"name\": \"klaolixk\"\n    },\n    {\n      \"name\": \"klaPD\"\n    },\n    {\n      \"name\": \"klaxamelaapo\"\n    },\n    {\n      \"name\": \"kliD\"\n    },\n    {\n      \"name\": \"knhdiaolih\"\n    },\n    {\n      \"name\": \"koli\"\n    },\n    {\n      \"name\": \"koligadiah\"\n    },\n    {\n      \"name\": \"kolikla\"\n    },\n    {\n      \"name\": \"kor\"\n    },\n    {\n      \"name\": \"korD\"\n    },\n    {\n      \"name\": \"korP\"\n    },\n    {\n      \"name\": \"korPD\"\n    },\n    {\n      \"name\": \"koxe\"\n    },\n    {\n      \"name\": \"kpet\"\n    },\n    {\n      \"name\": \"lA\"\n    },\n    {\n      \"name\": \"lbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"Lbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"lbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"lbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"Lbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Lbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"leftbracket\"\n    },\n    {\n      \"name\": \"leftbracket\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leftbracket[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"LIIbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIIbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIIbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIIbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LIIIbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIIIbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIIIbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIIIbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LIIIth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIIIth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIIIth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIIIth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LIIth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIIth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIIth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIIth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LIVbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIVbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIVbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIVbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LIVth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LIVth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LIVth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LIVth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"LL\"\n    },\n    {\n      \"name\": \"llA\"\n    },\n    {\n      \"name\": \"LLth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LLth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"llth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LLth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LLth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"llth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"llth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"lMD\"\n    },\n    {\n      \"name\": \"lph\"\n    },\n    {\n      \"name\": \"lth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"Lth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"lth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"lth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"Lth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Lth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIIbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIIbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIIbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIIbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIIIbarth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIIIbarth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIIIbarth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIIIbarth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIIIth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIIIth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIIIth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIIIth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIIth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIIth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIIth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIIth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVIth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVIth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVIth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVIth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"LVth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"LVth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LVth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"lyfe\"\n    },\n    {\n      \"name\": \"Lyfe\"\n    },\n    {\n      \"name\": \"lyfeA\"\n    },\n    {\n      \"name\": \"Lyfeth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lyfeth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"lyfeth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyfeth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"Lyfeth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Lyfeth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"lyfeth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"lyfeth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"lygM\"\n    },\n    {\n      \"name\": \"lygMD\"\n    },\n    {\n      \"name\": \"lygMDD\"\n    },\n    {\n      \"name\": \"makra\"\n    },\n    {\n      \"name\": \"marts\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"marts[${1:above}][${2:object}]\"\n      }\n    },\n    {\n      \"name\": \"mchi\"\n    },\n    {\n      \"name\": \"megachi\"\n    },\n    {\n      \"name\": \"met\"\n    },\n    {\n      \"name\": \"met\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"met[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"n\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"nh\"\n    },\n    {\n      \"name\": \"nhA\"\n    },\n    {\n      \"name\": \"nhanwdiaf\"\n    },\n    {\n      \"name\": \"nhanwdiafD\"\n    },\n    {\n      \"name\": \"nhanwdiafMD\"\n    },\n    {\n      \"name\": \"nhbm\"\n    },\n    {\n      \"name\": \"nhD\"\n    },\n    {\n      \"name\": \"nhdia\"\n    },\n    {\n      \"name\": \"nhdiaa\"\n    },\n    {\n      \"name\": \"nhdiafD\"\n    },\n    {\n      \"name\": \"nhdiafM\"\n    },\n    {\n      \"name\": \"nhdiafMD\"\n    },\n    {\n      \"name\": \"nhdiagah\"\n    },\n    {\n      \"name\": \"nhdiak\"\n    },\n    {\n      \"name\": \"nhdiam\"\n    },\n    {\n      \"name\": \"nhdianhh\"\n    },\n    {\n      \"name\": \"nhgadiam\"\n    },\n    {\n      \"name\": \"nhh\"\n    },\n    {\n      \"name\": \"nhkdiam\"\n    },\n    {\n      \"name\": \"nhtonbm\"\n    },\n    {\n      \"name\": \"nhtondiam\"\n    },\n    {\n      \"name\": \"nhtondidiam\"\n    },\n    {\n      \"name\": \"nhtondiplabm\"\n    },\n    {\n      \"name\": \"nhtonplabm\"\n    },\n    {\n      \"name\": \"nhtontondiam\"\n    },\n    {\n      \"name\": \"oli\"\n    },\n    {\n      \"name\": \"oliapo\"\n    },\n    {\n      \"name\": \"oliapot\"\n    },\n    {\n      \"name\": \"olieteMDD\"\n    },\n    {\n      \"name\": \"olig\"\n    },\n    {\n      \"name\": \"olik\"\n    },\n    {\n      \"name\": \"olikant\"\n    },\n    {\n      \"name\": \"olikantt\"\n    },\n    {\n      \"name\": \"olikk\"\n    },\n    {\n      \"name\": \"olikkantt\"\n    },\n    {\n      \"name\": \"olikkD\"\n    },\n    {\n      \"name\": \"olikketeKDD\"\n    },\n    {\n      \"name\": \"olikkh\"\n    },\n    {\n      \"name\": \"olikla\"\n    },\n    {\n      \"name\": \"olikt\"\n    },\n    {\n      \"name\": \"olipet\"\n    },\n    {\n      \"name\": \"olitt\"\n    },\n    {\n      \"name\": \"olixk\"\n    },\n    {\n      \"name\": \"olixkAnt\"\n    },\n    {\n      \"name\": \"olixkantt\"\n    },\n    {\n      \"name\": \"olixkpsh\"\n    },\n    {\n      \"name\": \"olixkt\"\n    },\n    {\n      \"name\": \"omaK\"\n    },\n    {\n      \"name\": \"omaKD\"\n    },\n    {\n      \"name\": \"omaKDD\"\n    },\n    {\n      \"name\": \"omaM\"\n    },\n    {\n      \"name\": \"omaMD\"\n    },\n    {\n      \"name\": \"omaMDD\"\n    },\n    {\n      \"name\": \"oxe\"\n    },\n    {\n      \"name\": \"oxek\"\n    },\n    {\n      \"name\": \"oxekkD\"\n    },\n    {\n      \"name\": \"oxexk\"\n    },\n    {\n      \"name\": \"oxexkAnt\"\n    },\n    {\n      \"name\": \"oy\"\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"pa\"\n    },\n    {\n      \"name\": \"paA\"\n    },\n    {\n      \"name\": \"pabfD\"\n    },\n    {\n      \"name\": \"pabm\"\n    },\n    {\n      \"name\": \"paD\"\n    },\n    {\n      \"name\": \"padia\"\n    },\n    {\n      \"name\": \"padiaa\"\n    },\n    {\n      \"name\": \"padiafD\"\n    },\n    {\n      \"name\": \"padiah\"\n    },\n    {\n      \"name\": \"padiak\"\n    },\n    {\n      \"name\": \"padiakem\"\n    },\n    {\n      \"name\": \"padiam\"\n    },\n    {\n      \"name\": \"padiapah\"\n    },\n    {\n      \"name\": \"padiaypsolih\"\n    },\n    {\n      \"name\": \"pah\"\n    },\n    {\n      \"name\": \"pakdiam\"\n    },\n    {\n      \"name\": \"paMA\"\n    },\n    {\n      \"name\": \"panhdiam\"\n    },\n    {\n      \"name\": \"paplab\"\n    },\n    {\n      \"name\": \"paplaba\"\n    },\n    {\n      \"name\": \"paplabfD\"\n    },\n    {\n      \"name\": \"paplabfPD\"\n    },\n    {\n      \"name\": \"paplabm\"\n    },\n    {\n      \"name\": \"paplabpah\"\n    },\n    {\n      \"name\": \"paplabpahxoh\"\n    },\n    {\n      \"name\": \"parg\"\n    },\n    {\n      \"name\": \"parP\"\n    },\n    {\n      \"name\": \"parPD\"\n    },\n    {\n      \"name\": \"paton\"\n    },\n    {\n      \"name\": \"patondiam\"\n    },\n    {\n      \"name\": \"patonplabm\"\n    },\n    {\n      \"name\": \"pdia\"\n    },\n    {\n      \"name\": \"pet\"\n    },\n    {\n      \"name\": \"petant\"\n    },\n    {\n      \"name\": \"petantt\"\n    },\n    {\n      \"name\": \"pett\"\n    },\n    {\n      \"name\": \"pgapo\"\n    },\n    {\n      \"name\": \"pggDD\"\n    },\n    {\n      \"name\": \"pgggDD\"\n    },\n    {\n      \"name\": \"pgggypo\"\n    },\n    {\n      \"name\": \"pgggypokkoli\"\n    },\n    {\n      \"name\": \"pgggypokkoxe\"\n    },\n    {\n      \"name\": \"pggolikk\"\n    },\n    {\n      \"name\": \"pggypo\"\n    },\n    {\n      \"name\": \"pggypokkoli\"\n    },\n    {\n      \"name\": \"pggypokkoxe\"\n    },\n    {\n      \"name\": \"pgiso\"\n    },\n    {\n      \"name\": \"pgoliant\"\n    },\n    {\n      \"name\": \"pgolikk\"\n    },\n    {\n      \"name\": \"pgypo\"\n    },\n    {\n      \"name\": \"pgypokkoli\"\n    },\n    {\n      \"name\": \"piaMD\"\n    },\n    {\n      \"name\": \"plah\"\n    },\n    {\n      \"name\": \"psaK\"\n    },\n    {\n      \"name\": \"psaM\"\n    },\n    {\n      \"name\": \"pshM\"\n    },\n    {\n      \"name\": \"pshMD\"\n    },\n    {\n      \"name\": \"ptri\"\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rbox*[${2:number}]{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"rbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rbox[${2:number}]{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"rightbracket\"\n    },\n    {\n      \"name\": \"rightbracket\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightbracket[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rul\"\n    },\n    {\n      \"name\": \"s\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"s[${1:above}][${2:object}]\"\n      }\n    },\n    {\n      \"name\": \"spaD\"\n    },\n    {\n      \"name\": \"sta\"\n    },\n    {\n      \"name\": \"stackon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackon[${3:distance}]{${1:above}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"stackon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackon{${1:above}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"staD\"\n    },\n    {\n      \"name\": \"syn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syn{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"syn\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"syn{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"synela\"\n    },\n    {\n      \"name\": \"synelagkkoli\"\n    },\n    {\n      \"name\": \"synelah\"\n    },\n    {\n      \"name\": \"synelakkoli\"\n    },\n    {\n      \"name\": \"synelaoxe\"\n    },\n    {\n      \"name\": \"synelaoxe\"\n    },\n    {\n      \"name\": \"synelapet\"\n    },\n    {\n      \"name\": \"synl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synl{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"synl\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"synl{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"synlyfe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synlyfe{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"synlyfe\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"synlyfe{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"tesdidiah\"\n    },\n    {\n      \"name\": \"tesh\"\n    },\n    {\n      \"name\": \"teskediah\"\n    },\n    {\n      \"name\": \"th\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"th{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"th\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"th{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"tha\"\n    },\n    {\n      \"name\": \"thaf\"\n    },\n    {\n      \"name\": \"thaM\"\n    },\n    {\n      \"name\": \"thesh\"\n    },\n    {\n      \"name\": \"thickshape*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thickshape*[${2:thickness}][${3:scale}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickshape*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thickshape*[${2:thickness}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickshape*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thickshape*{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickshape\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thickshape[${2:thickness}][${3:scale}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickshape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thickshape[${2:thickness}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thickshape{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"tKD\"\n    },\n    {\n      \"name\": \"tM\"\n    },\n    {\n      \"name\": \"tMD\"\n    },\n    {\n      \"name\": \"tosh\"\n    },\n    {\n      \"name\": \"tri\"\n    },\n    {\n      \"name\": \"trip\"\n    },\n    {\n      \"name\": \"troM\"\n    },\n    {\n      \"name\": \"troMD\"\n    },\n    {\n      \"name\": \"tsa\"\n    },\n    {\n      \"name\": \"tsaD\"\n    },\n    {\n      \"name\": \"tsaK\"\n    },\n    {\n      \"name\": \"tsaM\"\n    },\n    {\n      \"name\": \"ttghxoh\"\n    },\n    {\n      \"name\": \"ttKD\"\n    },\n    {\n      \"name\": \"ttM\"\n    },\n    {\n      \"name\": \"ttMD\"\n    },\n    {\n      \"name\": \"tttKD\"\n    },\n    {\n      \"name\": \"tttM\"\n    },\n    {\n      \"name\": \"tttMD\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"VA\"\n    },\n    {\n      \"name\": \"Vanwoli\"\n    },\n    {\n      \"name\": \"VI\"\n    },\n    {\n      \"name\": \"VIA\"\n    },\n    {\n      \"name\": \"VIanwoli\"\n    },\n    {\n      \"name\": \"VIanwoxe\"\n    },\n    {\n      \"name\": \"VIanwpet\"\n    },\n    {\n      \"name\": \"VII\"\n    },\n    {\n      \"name\": \"VIIA\"\n    },\n    {\n      \"name\": \"VIIanwoxe\"\n    },\n    {\n      \"name\": \"VIIanwpet\"\n    },\n    {\n      \"name\": \"VIII\"\n    },\n    {\n      \"name\": \"VIIIA\"\n    },\n    {\n      \"name\": \"VIIIanwoli\"\n    },\n    {\n      \"name\": \"VIIIanwoxe\"\n    },\n    {\n      \"name\": \"VIIIanwpet\"\n    },\n    {\n      \"name\": \"VIkatpet\"\n    },\n    {\n      \"name\": \"Vkatpet\"\n    },\n    {\n      \"name\": \"xam\"\n    },\n    {\n      \"name\": \"xamapo\"\n    },\n    {\n      \"name\": \"xamela\"\n    },\n    {\n      \"name\": \"xamelaapo\"\n    },\n    {\n      \"name\": \"xamelaapog\"\n    },\n    {\n      \"name\": \"xamelaapopet\"\n    },\n    {\n      \"name\": \"xamelapet\"\n    },\n    {\n      \"name\": \"xamkkoli\"\n    },\n    {\n      \"name\": \"xamkkoxe\"\n    },\n    {\n      \"name\": \"xamoli\"\n    },\n    {\n      \"name\": \"xamoxe\"\n    },\n    {\n      \"name\": \"xampet\"\n    },\n    {\n      \"name\": \"xamt\"\n    },\n    {\n      \"name\": \"xamxam\"\n    },\n    {\n      \"name\": \"xamxamapo\"\n    },\n    {\n      \"name\": \"xamxamapopet\"\n    },\n    {\n      \"name\": \"xamxamapopett\"\n    },\n    {\n      \"name\": \"xamxamela\"\n    },\n    {\n      \"name\": \"xamxampet\"\n    },\n    {\n      \"name\": \"Xanwoli\"\n    },\n    {\n      \"name\": \"Xanwoxe\"\n    },\n    {\n      \"name\": \"Xanwpet\"\n    },\n    {\n      \"name\": \"XIanwoli\"\n    },\n    {\n      \"name\": \"XIanwoxe\"\n    },\n    {\n      \"name\": \"XIanwpet\"\n    },\n    {\n      \"name\": \"XIIanwoli\"\n    },\n    {\n      \"name\": \"XIIanwoxe\"\n    },\n    {\n      \"name\": \"XIIanwpet\"\n    },\n    {\n      \"name\": \"XIIIanwoli\"\n    },\n    {\n      \"name\": \"XIIIanwpet\"\n    },\n    {\n      \"name\": \"XIIIkat\"\n    },\n    {\n      \"name\": \"XIIkat\"\n    },\n    {\n      \"name\": \"XIkat\"\n    },\n    {\n      \"name\": \"XIVanwoli\"\n    },\n    {\n      \"name\": \"XIVanwpet\"\n    },\n    {\n      \"name\": \"XIVkat\"\n    },\n    {\n      \"name\": \"Xkatt\"\n    },\n    {\n      \"name\": \"xmchi\"\n    },\n    {\n      \"name\": \"xmchiP\"\n    },\n    {\n      \"name\": \"xmegachi\"\n    },\n    {\n      \"name\": \"xrs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xrs[${1:above}][${2:object}]\"\n      }\n    },\n    {\n      \"name\": \"XVanwk\"\n    },\n    {\n      \"name\": \"XVanwpet\"\n    },\n    {\n      \"name\": \"XVkat\"\n    },\n    {\n      \"name\": \"XVkatt\"\n    },\n    {\n      \"name\": \"xxmchi\"\n    },\n    {\n      \"name\": \"xxmchiP\"\n    },\n    {\n      \"name\": \"xxmegachi\"\n    },\n    {\n      \"name\": \"xxxmchi\"\n    },\n    {\n      \"name\": \"xxxmchiP\"\n    },\n    {\n      \"name\": \"xxxmegachi\"\n    },\n    {\n      \"name\": \"yD\"\n    },\n    {\n      \"name\": \"yfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yfa[${1:length,hshift,vshift}]\"\n      }\n    },\n    {\n      \"name\": \"yfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yfa[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"yfk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yfk[${1:length,hshift,vshift}]\"\n      }\n    },\n    {\n      \"name\": \"yfk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yfk[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"yfma\"\n    },\n    {\n      \"name\": \"yfmk\"\n    },\n    {\n      \"name\": \"yl\"\n    },\n    {\n      \"name\": \"ylD\"\n    },\n    {\n      \"name\": \"yll\"\n    },\n    {\n      \"name\": \"yllD\"\n    },\n    {\n      \"name\": \"ylll\"\n    },\n    {\n      \"name\": \"ylllD\"\n    },\n    {\n      \"name\": \"ypo\"\n    },\n    {\n      \"name\": \"ypog\"\n    },\n    {\n      \"name\": \"ypokkoli\"\n    },\n    {\n      \"name\": \"ypokkoxe\"\n    },\n    {\n      \"name\": \"ypooli\"\n    },\n    {\n      \"name\": \"ypooxe\"\n    },\n    {\n      \"name\": \"ypopet\"\n    },\n    {\n      \"name\": \"ypsAoli\"\n    },\n    {\n      \"name\": \"ypsAoxe\"\n    },\n    {\n      \"name\": \"ypsDoli\"\n    },\n    {\n      \"name\": \"ypsDpet\"\n    },\n    {\n      \"name\": \"ypskdidiah\"\n    },\n    {\n      \"name\": \"ypskgadiaolih\"\n    },\n    {\n      \"name\": \"ypskh\"\n    },\n    {\n      \"name\": \"ypskkediah\"\n    },\n    {\n      \"name\": \"ypskkoli\"\n    },\n    {\n      \"name\": \"ypskkolik\"\n    },\n    {\n      \"name\": \"ypskkoxe\"\n    },\n    {\n      \"name\": \"ypskoli\"\n    },\n    {\n      \"name\": \"ypskolizwdiah\"\n    },\n    {\n      \"name\": \"ypskzwdiaolih\"\n    },\n    {\n      \"name\": \"ypskzwyolih\"\n    },\n    {\n      \"name\": \"ypsoli\"\n    },\n    {\n      \"name\": \"ypsolikla\"\n    },\n    {\n      \"name\": \"ypsoxe\"\n    },\n    {\n      \"name\": \"ypsypskypsoli\"\n    },\n    {\n      \"name\": \"zw\"\n    },\n    {\n      \"name\": \"zwA\"\n    },\n    {\n      \"name\": \"zwD\"\n    },\n    {\n      \"name\": \"zwdiafD\"\n    },\n    {\n      \"name\": \"zwdiak\"\n    },\n    {\n      \"name\": \"zwh\"\n    },\n    {\n      \"name\": \"zwtonbm\"\n    },\n    {\n      \"name\": \"zwtondiam\"\n    },\n    {\n      \"name\": \"zwtongadiam\"\n    },\n    {\n      \"name\": \"zwtonplabm\"\n    },\n    {\n      \"name\": \"zwtontondiam\"\n    },\n    {\n      \"name\": \"zwyD\"\n    },\n    {\n      \"name\": \"zwzwdiam\"\n    },\n    {\n      \"name\": \"zygD\"\n    },\n    {\n      \"name\": \"anacolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplhcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edocolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fthcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrthmacolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klacolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korwnacolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lygcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metracolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paycolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piacolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stayroscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempocolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trocolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontbyzantina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontfthores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontisokrathma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontison\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontloipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontpalaia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"agkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"agkylhhor[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agkylhhor{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"agkylhv[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agkylhv{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Ahxoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anaclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anapnoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anapnohD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anapodohta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andantexronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andantexronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antMDmikro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"antt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplhclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapoeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapogp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodlll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apodt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogapodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogapoeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoggkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoggpkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpapodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpgkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apogpkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolipsaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolipsaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkolitro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apolygMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apolygMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apomekeno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apomikrh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopettsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopgapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopgapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopgapodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopggkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopgkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apopia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoppgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apotro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apottteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoxapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argolikketeKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argolikketeKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argolikkomaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argosxronosM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argpolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argpolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argyolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argyolikkomaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argyolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bagkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bagkylhhor[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bagkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bagkylhhor{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bagkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bagkylhv[${2:number}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bagkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bagkylhv{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bar\",\n      \"unusual\": true,\n      \"detail\": \" ̄\",\n      \"doc\": \"Macron\"\n    },\n    {\n      \"name\": \"barBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bargggt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barggt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bargpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bargt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barhxozwyfh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barpgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barttttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bartttttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basiceval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"basiceval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Bhxoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bleftbrackethor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bleftbrackethor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bleftbrackethor[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bleftbracketv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bleftbracketv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bleftbracketv[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"boybboyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boybboyhxoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boybf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boybfboyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boybfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boybfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boyBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boyboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiaboym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydibm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boydiplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Boyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boyplab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boyplagbmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boytonboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boytonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brightbrackethor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brightbrackethor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"brightbrackethor[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"brightbracketv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brightbracketv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"brightbracketv[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Btonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorofR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dAapogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dAapogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dAapopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dexia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dexia{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dhxoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Di\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diaBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diaolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diargon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diargonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diargosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diargosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfboyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfdih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthoraBoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthoraDit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibfthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dibkolih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafdih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiafthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didibm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dididiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"didiplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digorgosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digorgosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digrdieshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digrdieshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digryfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digryfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dipadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabftesdidiafh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplabtesdidiafh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbfthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbfthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbfthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbfthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbfthoraMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplagbmartyriaP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dipM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dipMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ditondidiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dtonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dyo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dyoA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edoclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eksclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapodeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapodeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapokla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapopetanmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapopetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapotsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaapoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagpkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagpkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elagppkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakkolitro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakkolitropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elakla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapetanmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapettsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapgkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapgkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elappgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elatsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elatt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elatteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elatteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elattt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elattteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elattteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxapoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaykkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elaykkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endofwnoMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eptashmos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eteclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eteKA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eteMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etepsaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exashmosM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fthclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiagah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiatmartyriaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gadiatmartyriaKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gagadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gakdiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gakebm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ganhdiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapaplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaplab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaplagb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaplagbmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapoapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapodteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapotd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gapottteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatongadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GayD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GayfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gayfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gAypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gAypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gAypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gDh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gelad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geladeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geladeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhdiesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhdieshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhdieshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhdieshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhyfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhyfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhyfeshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genikhyfeshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getlength{${1:cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"ggapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggapoomaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggg\",\n      \"unusual\": true,\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggDDold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggpolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggpPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggpxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggpxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggpypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggxypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggxypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggypodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggypodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gggypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggisokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggkkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggkkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggkkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggkkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggoxekkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpapoomaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpgPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpisokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggpxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggpxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpyolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggpypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggpypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggpyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggxypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggxypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggyolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ggypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ggyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gisotD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gIVD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gIVDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gIVP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gIVPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkolidMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gkkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gkkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkyolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkypsolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkypsolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkkyypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gkyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikkantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikketeKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikketeKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikkomaKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gorgosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gorgosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goxekk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goxekkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goxekkDpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goxekkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapodeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapodeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpapotd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpAypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpAypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpAypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpelad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpeladeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpeladeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgapoomaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpggPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgisokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgpelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgyolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpgyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkypsolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkkypsolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpkyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gppypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpxamela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gpxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gpxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyolikant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyolix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gpypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypodt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gpypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gpypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopeteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypskoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gtonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtonost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVIDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVIIkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVIPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gVPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gxamela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gxypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyolikant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyolix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypodt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypolt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypooxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopeteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypotd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gypoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypskoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmiolion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hxos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hxosh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfNoValueOrEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueOrEmptyTF{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IIBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaapoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaapopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isakiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isakiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isakiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaklaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isapet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isapetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iskgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iskkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iskklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iskoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isodapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogdapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogkkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogkkyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogpapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogpkkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogpkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isogppkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolieks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkoliekspsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolipsaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolipsaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolitro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkolitropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokkyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrBOY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrBOYD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrBOYDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrBpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDIDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDIkatw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDIkatwD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrDpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrGA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrGAD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrGADD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrGpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKEDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKEkatw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKEkatwD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrKpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrMEL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrMELD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrNH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrNHD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrNpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrPAD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrPADD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrPpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZpayla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZWD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZWDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZWpanw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isokrZWpanwD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isooxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopettsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgggkkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgkkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopgkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoppgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopsaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isopsaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isostandard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isotsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isottteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isottteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoxapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IVkatpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatpett\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatpettt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatpetttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkattt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IXkatxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jjput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"jjput{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"kBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kdiplabfolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kdiplabolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kebk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kediafthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Keh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kekebm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kentrarisma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentrarisma{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kepaplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keplabfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ketonkediam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kgiaoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kgoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kgpoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kgpoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kketeMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkgp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kklaoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kklaoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kklaoxetro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kklaoxetropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxeekspsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxekpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxektro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxektropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxetro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkoxetropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkypsoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kkypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapolygMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapolygMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaapopia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaapoolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelaolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaelapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisogp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisooxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisopsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisotro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaisotropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikketeKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikketeKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikkomaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolikpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolilygM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaolixkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoxekk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoxekkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasynela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaVIIkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaVIIkateteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaVIIkateteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamelaapoeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamelaapoeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxameteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxameteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaxamxamxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayolikkomaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayolikomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klayolixkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaypsolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaypsolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaypsoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klaypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klifPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kliMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kliton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klitonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klitonM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klitonMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolidiplabgadiah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolidiplabh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koligadiadiplabh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliklaeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliklaeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolinhdiah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolitro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolitt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolitteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolitteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolittteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kolittteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korargolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korargolikkomaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korgpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koriso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korisott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korisottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korklaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korklaiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korkolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korolikt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koroliktt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korolikttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korolit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korolitt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korolittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korPDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korwna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korwnaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korwnaP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korwnaPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koxeant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpetanmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpeteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpgoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ktsaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ktsaolikklaelalygM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kyolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kyoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kyoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypspetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kypsyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"langleth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"langleth{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"langleth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"langleth{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"largolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldiaolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldiasM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldiasnew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldiasP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbrackethor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbrackethor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leftbrackethor[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"leftbracketv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbracketv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leftbracketv[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lggypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgpypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgpypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgpypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgpypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lIIA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lIIIA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LIV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lIV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"llargolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"llBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lldias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lldiasM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lldiasP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"llmegalhdiasM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lmart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lmegalhdias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpgypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpgypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpgypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpgypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsyneptygmenoydias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsyneptygmenoydiasM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltoxodias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltoxodiasM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltoxomegalhdias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltriolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LVI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lVI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LVII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lVII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LVIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lVIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeAoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeargolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeggypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegpypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegpypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegpypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegpypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfegypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfepgypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfepgypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfepgypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfepgypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyfeypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lygclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martAHXOY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martBAREWS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martBHXOY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martBoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martDHXOY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martDi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martGa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martGHXOY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martHxos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martKe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martNh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martolixkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martPaA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martpaplabfthoraPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martsynela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martTESSERA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"martZw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"megethossymbolwnisokrathmatos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"megethossymbolwnmusikhs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"metBMusic[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"metclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metriosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metriosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mhkosparallaghs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mhkosparallaghs{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mikrht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monogrdieshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monogrdieshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monogryfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monogryfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musictextgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"na\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"naBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwbfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwbfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwbfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwdiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwdiafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwdiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwdiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwdiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhanwM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbfthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiadim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafgah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafnhh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nhdiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NhdiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NhdiafthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NhdiafthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiafthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiamartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdiamartyriaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdianhm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhdibm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhnhdiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonbfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonbfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonbfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtondiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtondiafD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtondiafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtondiafMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtongadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonkebm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonpaplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhtontonboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nota\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nota{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oktashmos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oktw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliantk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olianttk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olidM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliekspsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olieteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oligpp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliketeMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliketeMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikgp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkDlyg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikketepsaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikketepsaDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkomaKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkxAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkxantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkxAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikkxantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliktt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliktteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olikttteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olilygM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olipeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olipetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olippg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oliteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitsapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olittk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olittteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olittteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olitttk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkdeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkdeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkxAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkxantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkxAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkkxantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkomaKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixktt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkxAnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkxAntapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkxantapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkxAntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixkxantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olixpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omaKA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omaMA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxekk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxekkekspsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexkkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexktro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexktropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxexkxAnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oyBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pabf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pabfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pabfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pabk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pabmartyriaKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafpah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiafthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiapam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiatmart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"padiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pakebm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papaplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabboyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfboyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfpah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfthoraM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfthoraMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabfthoraPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paplabmartyriaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parallagh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parallagh{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"parclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parDkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pargolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pargolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patondiplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patonpadiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"payapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"payclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pentashmos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pentashmosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pente\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"peteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"peteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"petkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"petklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pettsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pettt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"petttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"petyantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapodeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapodeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapooliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgapotd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgAypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgAypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgAypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgelad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgeladeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgeladeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggAkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggapoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggapokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggapoomaMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggelakkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgggPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggxypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggxypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGggypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggisokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggisokkoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggisoomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggPAisokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgxypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgxypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgxypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggyolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypodeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGgypokkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pggyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkypsolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkkypsolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgkyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgxamela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGxypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGxypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyolikant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyolix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypodt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoeteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoggpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogpgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGypokkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pGypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopeteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopggkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypoteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypskoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgyypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piaclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plagios\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"platosiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgkkolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgkkyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgolixkant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppgypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prosdexia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prosdexia{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pshclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshfistonanoiktoM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshfistonM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RBMusic{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"redBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbrackethor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbrackethor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightbrackethor[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rightbracketv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbracketv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightbracketv[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rulparbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"rulparbox{${1:width}}[${3:inner-pos}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rulparbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rulparbox{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rulparboxI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulparboxI[${2:inner-pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rulparboxI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulparboxI{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sBMusic[${1:above}][${2:object}]\"\n      }\n    },\n    {\n      \"name\": \"spa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spaBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spafD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spathD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spathh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spathhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"staclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"staP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"staPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stayros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stayrosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synBMusic{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"synBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"synBMusic{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"syndesmos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelagkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelagkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelagpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelagpkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelagpkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelakkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelakkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelakkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelapgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelapgkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelapgkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelaxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synelaxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempoclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tesdidiafh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teskediafh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tessera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tesseraA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thBMusic{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"thBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"thBMusic{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"themaaployn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaaploynKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaaploynM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickagkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thickagkylhhor[${2:thickness}][${3:scale}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickagkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thickagkylhhor[${2:thickness}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickagkylhhor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thickagkylhhor{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickagkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"thickagkylhv[${2:thickness}][${3:scale}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickagkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thickagkylhv[${2:thickness}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"thickagkylhv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thickagkylhv{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"tK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tonoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tonos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triaA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triargon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triargosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triargosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigorosxronos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigorosxronosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigrdieshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigrdieshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigryfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trihmiargon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triplhM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapooli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapooxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapooxetro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapooxetropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaapotro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxetro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxetropsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxexk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxexkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaoxexkpshtro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaxamxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaxamxamxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttgadia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttgadiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttKDmart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttmar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttmart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttnhdiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttpaplabmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttqmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tttK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttttM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vanwoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIanwoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIkatpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIIkatxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkateteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkateteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkatg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkatpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIIkatxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VIkatxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapodeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamapotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamdeteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapoeteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapoeteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapogp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapotteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaapotteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamelaxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamgp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamkkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamkkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamolit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xampg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamtt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapopettt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapopetttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamapoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamelat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamelatt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamelattt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamelaapot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamelaapott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxamelaapottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxamxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxelaxapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxelaxapopet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xamxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIIanwxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIIIanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIIIanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIVanwxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XIVanwxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xkat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xkattt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xkatttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XVkattt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XVkatttt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"y\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yAgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yAgpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yAkolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yAkoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yApgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yapogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yapogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yapopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yAypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydclr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yelaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfenK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfenKA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfenKAvariableheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"yfenKAvariableheight{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"yfenPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfenPAvariableheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"yfenPAvariableheight{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"yfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ygkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ykk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ykkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ykkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yklaapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ykypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolikk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolikkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolikpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolipet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolixk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolixkomaKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yolixkpsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yPDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypoapl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypoBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogkkolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogkkolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypokkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypokkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypopetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypopg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypopgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypott\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypottt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypoxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypoxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypoxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgpoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAgpolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAkkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAkkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAkkoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAkkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklaolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklaolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklaoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklaolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAklayoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolitt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolitteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolitteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAolittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApeteteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApeteteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApgoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsApgolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAyoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsAyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsDxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsgpkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskkypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklayoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaypsoliomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsklaypsoxeomaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoligadiah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolitt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolitteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolitteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolittteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolittteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolizwanwdiah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolizwtondiah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskolizwyh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskpetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskpetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypskypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolieteMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolieteMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoligp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolipg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolitt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolitteteKD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolitteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolittt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsolittteteKDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsosiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsosisokrathmatos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsosmartyrias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsosrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsosxronou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsoxepsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypspetantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypspetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypspgkkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkkypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxkypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsyoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsyolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskkypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskkypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskypsolik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskypsolipet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypskypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoliant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoliantt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsolikla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoliklapsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoliomaMDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsolipsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypspetkla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxkoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxkpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxkxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxkxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypsoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypsxoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypsxoxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypsypsypsxpet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ysyn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ysynBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ysynBMusic{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"ysynBMusic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ysynBMusic{${1:symbols}}[${2:syllable}]\"\n      }\n    },\n    {\n      \"name\": \"yxam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yxamapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yypo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yypsoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yypspet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwdiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwdiafD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfeshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfeshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwanwyMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwBMusic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiafA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiafP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiafPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiafPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zwdiafthora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZwdiafthoraD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwdiatmartyria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zwh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtondiaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtondiafD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtondibm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtondiplabm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtontonboydiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtony\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfeshD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfeshM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfeshMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwtonyMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zwyMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zyg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygfPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygosD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygosM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zygosMD\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"byzantinemusic\"\n    },\n    {\n      \"name\": \"changespaceskip\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:space}][${2:stretch}][${3:shrink}]\"\n      }\n    },\n    {\n      \"name\": \"changetolerance\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:number}][${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"changelinespread\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"changewordspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cabin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cabin\"\n    },\n    {\n      \"name\": \"cabincondensed\"\n    },\n    {\n      \"name\": \"cabinfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cabin#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"semibold\",\n      \"bold\",\n      \"medium\",\n      \"regular\",\n      \"condensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cabin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cahierprof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setLundiRentree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setLundiRentree{${1:JJ}}{${2:MM}}{${3:YYYY}}\"\n      }\n    },\n    {\n      \"name\": \"EmploiDuTemps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmploiDuTemps{${1:tableau%text}}\"\n      }\n    },\n    {\n      \"name\": \"setNombreSemaines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setNombreSemaines{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"setSamedi\"\n    },\n    {\n      \"name\": \"sem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sem{${1:semaine impair%text}}{${2:semaine pair%text}}\"\n      }\n    },\n    {\n      \"name\": \"setDebutToussaint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDebutToussaint{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setDebutNoel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDebutNoel{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setDebutHiver\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDebutHiver{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setDebutPrintemps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDebutPrintemps{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setFinToussaint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFinToussaint{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setFinNoel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFinNoel{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setFinHiver\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFinHiver{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setFinPrintemps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFinPrintemps{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setDNB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setDNB{${1:JD}}{${2:JF}}{${3:YY}}\"\n      }\n    },\n    {\n      \"name\": \"setBac\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setBac{${1:JD}}{${2:JF}}{${3:YY}}\"\n      }\n    },\n    {\n      \"name\": \"setBacPhilo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setBacPhilo{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setBacfrancais\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setBacfrancais{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"setGO\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setGO{${1:JD}}{${2:JF}}{${3:YY}}\"\n      }\n    },\n    {\n      \"name\": \"setLundiPaques\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setLundiPaques{${1:JJ}}{${2:MM}}\"\n      }\n    },\n    {\n      \"name\": \"Classe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Classe{${1:nom%text}}{${2:nombre}}{${3:liste des élèves%text}}\"\n      }\n    },\n    {\n      \"name\": \"ListeEleves\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListeEleves{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cahierprof#c\": [\n      \"samedi\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cahierprof#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/caladea.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"caladea\"\n    },\n    {\n      \"name\": \"caladeafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/caladea#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/caladea#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/calc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounter{${1:ctr}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounter{${1:ctr}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"setlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:cmd}}{${2:len}}\"\n      }\n    },\n    {\n      \"name\": \"addtolength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolength{${1:cmd}}{${2:len}}\"\n      }\n    },\n    {\n      \"name\": \"real\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"real{${1:decimal constant}}\"\n      }\n    },\n    {\n      \"name\": \"ratio\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ratio{${1:dimen expression}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"widthof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"heightof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heightof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"depthof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"depthof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"totalheightof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalheightof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"settototalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settototalheight{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maxof{${1:type expression}}{${2:type expression}}\"\n      }\n    },\n    {\n      \"name\": \"minof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"minof{${1:type expression}}{${2:type expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calcage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fnumprint\"\n    },\n    {\n      \"name\": \"datenumber\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"calcage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"calcage{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"calcage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"calcage[${4:options%keyvals}]{${1:year}}{${2:month}}{${3:day}}\",\n        \"keys\": [\n          \"\\\\calcage\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\calcage\": [\n      \"year=\",\n      \"month=\",\n      \"day=\",\n      \"precision=\",\n      \"positive\",\n      \"printyear\",\n      \"yearsuffix\",\n      \"numberstring\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calcfrac.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cfdisp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfdisp{${1:sign}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"calcfrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calcfrac{${1:expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calctab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"amount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amount{${1:description%text}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"amount\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amount[${3:options%keyvals}]{${1:description%text}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\amount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"perc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perc{${1:description%text}}{${2:percentage}}\"\n      }\n    },\n    {\n      \"name\": \"perc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"perc[${3:options%keyvals}]{${1:description%text}}{${2:percentage}}\",\n        \"keys\": [\n          \"\\\\perc#c,\\\\add#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"add\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"add{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"add\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"add[${2:options%keyvals}]{${1:description%text}}\",\n        \"keys\": [\n          \"\\\\perc#c,\\\\add#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inrule\"\n    },\n    {\n      \"name\": \"amount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"amount{${1:description%text}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"amount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"amount[${4:options%keyvals}]{${1:description%text}}{${2:value1}}{${3:value2}}\",\n        \"keys\": [\n          \"\\\\amount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctcurrency\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctcurrency{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ctdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctdescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ctontranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctontranslation{${1:on translation}}\"\n      }\n    },\n    {\n      \"name\": \"ctheaderone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctheaderone{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctheadertwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctheadertwo{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"calctab\"\n    },\n    {\n      \"name\": \"calctab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:description%text}]\"\n      }\n    },\n    {\n      \"name\": \"xcalctab\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\amount\": [\n      \"id=${1:row id}\"\n    ],\n    \"\\\\perc#c,\\\\add#c\": [\n      \"id=${1:row id}\",\n      \"from=${1:row id}\",\n      \"until=${1:row id}\",\n      \"${1:row id}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calculation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"delarray\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"step{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"step*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"step*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"step[${2:symbol}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"step*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"step*[${2:symbol}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doNumber\"\n    },\n    {\n      \"name\": \"stepsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hblockopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hblockclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hlineopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hlineclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calculcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hposv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"calculation\"\n    },\n    {\n      \"name\": \"calculation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"subcalculation\"\n    },\n    {\n      \"name\": \"subcalculation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:symbol}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/calculation#c\": [\n      \"fleqn\",\n      \"leqno\",\n      \"block\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/calculation#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/calculator.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numberPI\"\n    },\n    {\n      \"name\": \"numberTHREEHALFPI\"\n    },\n    {\n      \"name\": \"numberQUARTERPI\"\n    },\n    {\n      \"name\": \"numberSIXTHPI\"\n    },\n    {\n      \"name\": \"numberE\"\n    },\n    {\n      \"name\": \"numberETWO\"\n    },\n    {\n      \"name\": \"numberLOGTEN\"\n    },\n    {\n      \"name\": \"numberGOLD\"\n    },\n    {\n      \"name\": \"numberSQRTTWO\"\n    },\n    {\n      \"name\": \"numberSQRTFIVE\"\n    },\n    {\n      \"name\": \"numberCOSXXX\"\n    },\n    {\n      \"name\": \"numberHALFPI\"\n    },\n    {\n      \"name\": \"numberTHIRDPI\"\n    },\n    {\n      \"name\": \"numberFIFTHPI\"\n    },\n    {\n      \"name\": \"numberTWOPI\"\n    },\n    {\n      \"name\": \"numberINVE\"\n    },\n    {\n      \"name\": \"numberINVETWO\"\n    },\n    {\n      \"name\": \"numberINVGOLD\"\n    },\n    {\n      \"name\": \"numberSQRTTHREE\"\n    },\n    {\n      \"name\": \"numberCOSXLV\"\n    },\n    {\n      \"name\": \"COPY\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"COPY{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GLOBALCOPY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLOBALCOPY{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MAX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MAX{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MIN\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MIN{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ADD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ADD{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SUBTRACT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SUBTRACT{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MULTIPLY\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MULTIPLY{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DIVIDE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DIVIDE{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SQUARE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SQUARE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"CUBE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CUBE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"POWER\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"POWER{${1:num}}{${2:exp}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ABSVALUE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ABSVALUE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"INTEGERPART\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"INTEGERPART{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FLOOR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FLOOR{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FRACTIONALPART\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FRACTIONALPART{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TRUNCATE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TRUNCATE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TRUNCATE\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TRUNCATE[${3:n}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ROUND\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ROUND{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ROUND\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ROUND[${3:n}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"INTEGERDIVISION\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"INTEGERDIVISION{${1:num1}}{${2:num2}}{${3:cmd1%cmd}}{${4:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"INTEGERQUOTIENT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"INTEGERQUOTIENT{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MODULO\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MODULO{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GCD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GCD{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LCM\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LCM{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FRACTIONSIMPLIFY\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FRACTIONSIMPLIFY{${1:num1}}{${2:num2}}{${3:cmd1%cmd}}{${4:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SQUAREROOT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SQUAREROOT{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SQRT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SQRT{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"EXP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EXP{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"EXP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"EXP[${3:num1}]{${1:num2}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LOG\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LOG{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LOG\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LOG[${3:num1}]{${1:num2}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SIN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SIN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"COS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"COS{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TAN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TAN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"COT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"COT{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESSIN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEGREESSIN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESCOS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEGREESCOS{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESTAN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEGREESTAN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESCOT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEGREESCOT{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESSIN\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DEGREESSIN[${3:degrees}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESCOS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DEGREESCOS[${3:degrees}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESTAN\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DEGREESTAN[${3:degrees}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGREESCOT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DEGREESCOT[${3:degrees}]{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DEGtoRAD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEGtoRAD{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RADtoDEG\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RADtoDEG{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"REDUCERADIANSANGLE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"REDUCERADIANSANGLE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"REDUCEDEGREESANGLE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"REDUCEDEGREESANGLE{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SINH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SINH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"COSH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"COSH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TANH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TANH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"COTH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"COTH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCSIN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCSIN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCCOS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCCOS{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCTAN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCTAN{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCCOT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCCOT{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARSINH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARSINH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCOSH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCOSH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARTANH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARTANH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ARCOTH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ARCOTH{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LENGTHDIVIDE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LENGTHDIVIDE{${1:length1}}{${2:length2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LENGTHADD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LENGTHADD{${1:length1}}{${2:length2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LENGTHSUBTRACT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LENGTHSUBTRACT{${1:length1}}{${2:length2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VECTORSIZE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"VECTORSIZE(${2:x},${3:y},${4:z}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VECTORCOPY\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"VECTORCOPY(${1:x},${2:y},${3:z})(${4:cmd1},${5:cmd2},${6:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"VECTORGLOBALCOPY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"VECTORGLOBALCOPY(${1:x},${2:y},${3:z})(${4:cmd1},${5:cmd2},${6:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"VECTORADD\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"VECTORADD(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})(${7:cmd1},${8:cmd2},${9:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"VECTORSUB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"VECTORSUB(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})(${7:cmd1},${8:cmd2},${9:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"SCALARVECTORPRODUCT\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"SCALARVECTORPRODUCT{${1:num}}(${2:x},${3:y},${4:z})(${5:cmd1},${6:cmd2},${7:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"SCALARPRODUCT\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"SCALARPRODUCT(${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DOTPRODUCT\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DOTPRODUCT(${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VECTORNORM\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"VECTORNORM(${2:x},${3:y},${4:z}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VECTORPRODUCT\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"VECTORPRODUCT(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})(${7:cmd1},${8:cmd2},${9:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"CROSSPRODUCT\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"CROSSPRODUCT(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})(${7:cmd1},${8:cmd2},${9:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"UNITVECTOR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"UNITVECTOR(${1:x},${2:y},${3:z})(${4:cmd1},${5:cmd2},${6:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"VECTORABSVALUE\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"VECTORABSVALUE(${1:x},${2:y},${3:z})(${4:cmd1},${5:cmd2},${6:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"TWOVECTORSANGLE\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"TWOVECTORSANGLE(${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MATRIXSIZE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"MATRIXSIZE(${2:a11...a33}){${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MATRIXCOPY\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MATRIXCOPY(${1:a11...a33})(${2:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXGLOBALCOPY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MATRIXGLOBALCOPY(${1:a11...a33})(${2:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"TRANSPOSEMATRIX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TRANSPOSEMATRIX(${1:a11...a33})(${2:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXADD\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"MATRIXADD(${1:a11...a33})(${2:b11...b33})(${3:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXSUB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"MATRIXSUB(${1:a11...a33})(${2:b11...b33})(${3:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"SCALARMATRIXPRODUCT\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"SCALARMATRIXPRODUCT{${1:num}}(${2:a11...a33})(${3:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXVECTORPRODUCT\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"MATRIXVECTORPRODUCT(${1:a11...a33})(${2:x},${3:y},${4:z})(${5:cmd1},${6:cmd2},${7:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"VECTORMATRIXPRODUCT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"VECTORMATRIXPRODUCT(${1:x},${2:y},${3:z})(${4:a11...a33})(${5:cmd1},${6:cmd2},${7:cmd3%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXPRODUCT\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"MATRIXPRODUCT(${1:a11...a33})(${2:b11...b33})(${3:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"INVERSEMATRIX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"INVERSEMATRIX(${1:a11...a33})(${2:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"MATRIXABSVALUE\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"MATRIXABSVALUE(${1:a11...a33})(${2:cmd11...cmd33%cmd})\"\n      }\n    },\n    {\n      \"name\": \"SOLVELINEARSYSTEM\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"SOLVELINEARSYSTEM(${1:a11...a33})(${2:b1},${3:b2},${4:b3})(${5:cmd1},${6:cmd2},${7:cmd3%cmd})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calculus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calculator\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ZEROfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ZEROfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"IDENTITYfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IDENTITYfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"SQUAREfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SQUAREfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"SQRTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SQRTfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"EXPfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EXPfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"COSfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"COSfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"TANfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TANfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"COSHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"COSHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"TANHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TANHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"HEAVISIDEfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HEAVISIDEfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ONEfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ONEfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"RECIPROCALfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RECIPROCALfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"CUBEfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CUBEfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"LOGfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LOGfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"SINfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SINfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"COTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"COTfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"SINHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SINHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"COTHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"COTHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCCOSfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCCOSfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCTANfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCTANfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCOSHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCOSHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARTANHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARTANHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCSINfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCSINfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCCOTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCCOTfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARSINHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARSINHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"ARCOTHfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ARCOTHfunction{${1:num}}{${2:\\\\sol}}{${3:\\\\Dsol}}\"\n      }\n    },\n    {\n      \"name\": \"CONSTANTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CONSTANTfunction{${1:num}}{${2:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SUMfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SUMfunction{${1:function1}}{${2:function2}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SUBTRACTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SUBTRACTfunction{${1:function1}}{${2:function2}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"PRODUCTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PRODUCTfunction{${1:function1}}{${2:function2}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"QUOTIENTfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"QUOTIENTfunction{${1:function1}}{${2:function2}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"COMPOSITIONfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"COMPOSITIONfunction{${1:function1}}{${2:function2}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SCALEfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SCALEfunction{${1:num}}{${2:function}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SCALEVARIABLEfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SCALEVARIABLEfunction{${1:num}}{${2:function}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"POWERfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"POWERfunction{${1:function}}{${2:num}}{${3:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LINEARCOMBINATIONfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LINEARCOMBINATIONfunction{${1:num1}}{${2:function1}}{${3:num2}}{${4:function2}}{${5:Function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newlpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlpoly{${1:Function%cmd}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"newqpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newqpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"newcpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newcpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\"\n      }\n    },\n    {\n      \"name\": \"renewlpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewlpoly{${1:Function%cmd}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"renewqpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewqpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"renewcpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewcpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\"\n      }\n    },\n    {\n      \"name\": \"ensurelpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ensurelpoly{${1:Function%cmd}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"ensureqpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ensureqpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"ensurecpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ensurecpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\"\n      }\n    },\n    {\n      \"name\": \"forcelpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forcelpoly{${1:Function%cmd}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"forceqpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forceqpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}\"\n      }\n    },\n    {\n      \"name\": \"forcecpoly\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"forcecpoly{${1:Function%cmd}}{${2:a}}{${3:b}}{${4:c}}{${5:d}}\"\n      }\n    },\n    {\n      \"name\": \"PARAMETRICfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PARAMETRICfunction{${1:Xfunction}}{${2:Yfunction}}{${3:myvectorfunction%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VECTORfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"VECTORfunction{${1:Xfunction}}{${2:Yfunction}}{${3:myvectorfunction%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"POLARfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"POLARfunction{${1:rfunction}}{${2:Polarfunction%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfunction{${1:\\\\Function}}{${2:instructions to compute \\\\y and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"renewfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfunction{${1:\\\\Function}}{${2:instructions to compute \\\\y and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"ensurefunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ensurefunction{${1:\\\\Function}}{${2:instructions to compute \\\\y and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"forcefunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcefunction{${1:\\\\Function}}{${2:instructions to compute \\\\y and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"newvectorfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newvectorfunction{${1:\\\\Function}}{${2:instructions to compute \\\\x,\\\\y,\\\\Dx and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"renewvectorfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewvectorfunction{${1:\\\\Function}}{${2:instructions to compute \\\\x,\\\\y,\\\\Dx and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"ensurevectorfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ensurevectorfunction{${1:\\\\Function}}{${2:instructions to compute \\\\x,\\\\y,\\\\Dx and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"forcevectorfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcevectorfunction{${1:\\\\Function}}{${2:instructions to compute \\\\x,\\\\y,\\\\Dx and \\\\Dy from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"newpolarfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpolarfunction{${1:\\\\Function}}{${2:instructions to compute \\\\r and \\\\Dr from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"renewpolarfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewpolarfunction{${1:\\\\Function}}{${2:instructions to compute \\\\r and \\\\Dr from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"ensurepolarfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ensurepolarfunction{${1:\\\\Function}}{${2:instructions to compute \\\\r and \\\\Dr from \\\\t}}\"\n      }\n    },\n    {\n      \"name\": \"forcepolarfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcepolarfunction{${1:\\\\Function}}{${2:instructions to compute \\\\r and \\\\Dr from \\\\t}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/calligra.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"calligra\"\n    },\n    {\n      \"name\": \"textcalligra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcalligra{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/callouts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"helpgrid\"\n    },\n    {\n      \"name\": \"helpgrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"helpgrid[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"callout\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"callout{${1:center-coords}}{${2:note%text}}{${3:tip-coords}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"note{${1:coords}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arrow{${1:center-coords}}{${2:tip-coords}}\"\n      }\n    },\n    {\n      \"name\": \"focol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xtic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytic\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"annotate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:object}}{${2:width-factor}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/callouts#c\": [\n      \"bwr\",\n      \"wby\",\n      \"bww\",\n      \"background=\",\n      \"arrow=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/callouts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cals.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"brow\"\n    },\n    {\n      \"name\": \"erow\"\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cell{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"thead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tfoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tbreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbreak{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lastrule\"\n    },\n    {\n      \"name\": \"alignL\"\n    },\n    {\n      \"name\": \"alignC\"\n    },\n    {\n      \"name\": \"alignR\"\n    },\n    {\n      \"name\": \"nullcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nullcell{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"spancontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spancontent{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"calstable\"\n    },\n    {\n      \"name\": \"calstable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{calstable}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{calstable}\": [\n      \"n\",\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cancel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bcancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"xcancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcancel{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"cancelto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cancelto{${1:value}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"CancelColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cancel#c\": [\n      \"samesize\",\n      \"smaller\",\n      \"Smaller\",\n      \"makeroom\",\n      \"overlap\",\n      \"thicklines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cancel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/canoniclayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"currentfontletters\"\n    },\n    {\n      \"name\": \"charactersperpage\"\n    },\n    {\n      \"name\": \"CLstartdrawings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLstopdrawings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cantarell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cantarell\"\n    },\n    {\n      \"name\": \"cantarellfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cantarell#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"defaultsans\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cantarell#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/capt-of.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:type%keyvals}}{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\captionof#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:type%keyvals}}[${3:move}]{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\captionof#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\captionof#c\": [\n      \"figure\",\n      \"table\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/captcont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caption*[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captcont*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captcont*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captcont*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captcont*[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captcont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captcont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captcont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captcont[${2:short text%text}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/captcont#c\": [\n      \"figbotcap\",\n      \"figtopcap\",\n      \"tabbotcap\",\n      \"tabtopcap\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/captcont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/captdef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DeclareCaption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaption{${1:command}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabcaption[${2:short text%text}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/caption-light.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption3\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:list entry}]{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof*{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptiontype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptiontype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptiontype*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptiontype*{${1:float type}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/caption-light#c\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"box=${1|empty,none,parbox,colorbox|}\",\n      \"boxcolor=\",\n      \"boxsep=\",\n      \"calcmargin*=\",\n      \"calcmargin=\",\n      \"calcwidth*=\",\n      \"calcwidth=\",\n      \"debug\",\n      \"figurename=${1:name}\",\n      \"figureposition=${1|top,above,bottom,below,auto|}\",\n      \"figurewithin=${1:counter}\",\n      \"figurewithout\",\n      \"font+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"font=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"format=${1|plain,hang|}\",\n      \"hangindent=\",\n      \"indention=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelformat=${1|original,empty,simple,brace,parens,autodot,unnumbered|}\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash,gobble,gobbletwo|}\",\n      \"list=${1|on,off,true,false|}\",\n      \"listfigurename=${1:name}\",\n      \"listformat=${1|empty,simple,parens,subsimple,subparens,period,subperiod|}\",\n      \"listtablename=${1:name}\",\n      \"listtype=${1:list type}\",\n      \"listtype+=${1:list type ext}\",\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"margin*=\",\n      \"margin=\",\n      \"maxmargin=\",\n      \"minmargin=\",\n      \"name=${1:name}\",\n      \"oneside\",\n      \"parbox=${1|empty,none,parbox,colorbox|}\",\n      \"parindent=\",\n      \"parskip=\",\n      \"position=${1|top,above,bottom,below,auto|}\",\n      \"singlelinecheck\",\n      \"skip=\",\n      \"strut=${1|on,off|}\",\n      \"style=\",\n      \"style*=\",\n      \"tablename=${1:name}\",\n      \"tableposition=${1|top,above,bottom,below,auto|}\",\n      \"tablewithin=${1:counter}\",\n      \"tablewithout\",\n      \"textfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textformat=${1|empty,simple,period|}\",\n      \"twoside\",\n      \"width*=\",\n      \"width=\",\n      \"within=${1:counter}\",\n      \"without\"\n    ],\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption-light#c,\\\\DeclareCaptionStyle#c\": [\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/caption-light#c\",\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption-light#c,\\\\DeclareCaptionStyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/caption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption3\"\n    },\n    {\n      \"name\": \"ltcaption\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:list entry%text}]{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof*{${1:float type}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionlistentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionlistentry[${2:float type}]{${1:list entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionlistentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionlistentry{${1:list entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"ContinuedFloat\"\n    },\n    {\n      \"name\": \"ContinuedFloat*\"\n    },\n    {\n      \"name\": \"theContinuedFloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piccaptiontype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piccaptiontype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbox*{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}[${4:width}][${5:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}[${4:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"captionbox[${3:list entry}]{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbox{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontext*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"flushsubcaptionlistentries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextfloat\"\n    },\n    {\n      \"name\": \"nextfloat*\"\n    },\n    {\n      \"name\": \"phantomcaption\"\n    },\n    {\n      \"name\": \"setcaptionsubtype*\"\n    },\n    {\n      \"name\": \"setcaptionsubtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionsubtype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptiontype*\"\n    },\n    {\n      \"name\": \"setcaptiontype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptiontype{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptionsetup[${2:float type}]{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsetup{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptionsetup*[${2:float type}]{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsetup*{${1:options%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionblock\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner-pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captiongroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiongroup*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\": [\n      \"list-entry=${1|default,list-entry,entry|}\",\n      \"hypcap\",\n      \"hypcapspace=\",\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\",\n      \"subtype=${1:float type}\",\n      \"subtype*=${1:float type}\"\n    ],\n    \"\\\\usepackage/caption#c\": [\n      \"compatibility\",\n      \"config=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\",\n    \"\\\\usepackage/caption#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/caption3.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionsetup[${2:float type}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"captionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionsetup*[${2:float type}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"captionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionsetup*{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionStyle\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareCaptionStyle{${1:name%specialDef}}[${3:additional options}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionStyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"clearcaptionsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clearcaptionsetup[${2:option%keyvals}]{${1:float type}}\",\n        \"keys\": [\n          \"\\\\clearcaptionsetup#c,\\\\clearcaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clearcaptionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearcaptionsetup{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"clearcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clearcaptionsetup*[${2:option%keyvals}]{${1:float type}}\",\n        \"keys\": [\n          \"\\\\clearcaptionsetup#c,\\\\clearcaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clearcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearcaptionsetup*{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"clearcaptionsetup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clearcaptionsetup*[${2:option%keyvals}]{${1:float type}}\",\n        \"keys\": [\n          \"\\\\clearcaptionsetup#c,\\\\clearcaptionsetup*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"centerfirst\"\n    },\n    {\n      \"name\": \"centerlast\"\n    },\n    {\n      \"name\": \"showcaptionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcaptionsetup{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"bothIfFirst\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bothIfFirst{${1:first arg}}{${2:second arg}}\"\n      }\n    },\n    {\n      \"name\": \"bothIfSecond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bothIfSecond{${1:first arg}}{${2:second arg}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionFont{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionFormat*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionFormat*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionJustification\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionJustification{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionLabelFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionLabelFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionLabelSeparator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionLabelSeparator{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionLabelSeparator*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionLabelSeparator*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionListFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionListFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionTextFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionTextFormat{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionSubType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaptionSubType{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionSubType\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareCaptionSubType[${2:numbering scheme}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionSubType*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaptionSubType*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionSubType*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareCaptionSubType*[${2:numbering scheme}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"AfterCaptionPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterCaptionPackage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginCaption{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtCaptionPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtCaptionPackage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndCaption{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionOption{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionOption*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionOption*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionOptionNoValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionOptionNoValue{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionOptionNoValue*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionOptionNoValue*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetCaptionDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCaptionDefault{${1:option}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"SetCaptionDefault*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCaptionDefault*{${1:option}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"SetCaptionFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCaptionFallback{${1:option}}{${2:fallback value}}\"\n      }\n    },\n    {\n      \"name\": \"captionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionlabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiontextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareCaptionType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareCaptionType[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\DeclareCaptionType\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCaptionType{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionBox{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionLength{${1:name}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionSinglelinecheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionSinglelinecheck{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachCaptionSubType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachCaptionSubType{${1:subtype list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachCaptionType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachCaptionType{${1:type list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfCaptionOptionCheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfCaptionOptionCheck{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"captionnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareCaptionPosition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionPosition{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionAutoPosition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionlisttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinglelinecaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlelinecaptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlelinecaptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtCaptionSingleLineCheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtCaptionSingleLineCheck{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"box=${1|empty,none,parbox,colorbox|}\",\n      \"boxcolor=\",\n      \"boxsep=\",\n      \"calcmargin*=\",\n      \"calcmargin=\",\n      \"calcwidth*=\",\n      \"calcwidth=\",\n      \"debug\",\n      \"figurename=${1:name}\",\n      \"figureposition=${1|top,above,bottom,below,auto|}\",\n      \"figurewithin=${1:counter}\",\n      \"figurewithout\",\n      \"font+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"font=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"format=${1|plain,hang|}\",\n      \"hangindent=\",\n      \"indention=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelformat=${1|original,empty,simple,brace,parens,autodot,unnumbered|}\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash,gobble,gobbletwo|}\",\n      \"list=${1|on,off,true,false|}\",\n      \"listfigurename=${1:name}\",\n      \"listformat=${1|empty,simple,parens,subsimple,subparens,period,subperiod|}\",\n      \"listtablename=${1:name}\",\n      \"listtype=${1:list type}\",\n      \"listtype+=${1:list type ext}\",\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"margin*=\",\n      \"margin=\",\n      \"maxmargin=\",\n      \"minmargin=\",\n      \"name=${1:name}\",\n      \"oneside\",\n      \"parbox=${1|empty,none,parbox,colorbox|}\",\n      \"parindent=\",\n      \"parskip=\",\n      \"position=${1|top,above,bottom,below,auto|}\",\n      \"singlelinecheck\",\n      \"skip=\",\n      \"strut=${1|on,off|}\",\n      \"style=\",\n      \"style*=\",\n      \"tablename=${1:name}\",\n      \"tableposition=${1|top,above,bottom,below,auto|}\",\n      \"tablewithin=${1:counter}\",\n      \"tablewithout\",\n      \"textfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textformat=${1|empty,simple,period|}\",\n      \"twoside\",\n      \"width*=\",\n      \"width=\",\n      \"within=${1:counter}\",\n      \"without\"\n    ],\n    \"\\\\clearcaptionsetup#c,\\\\clearcaptionsetup*#c\": [\n      \"aboveskip\",\n      \"belowskip\",\n      \"box\",\n      \"boxcolor\",\n      \"boxsep\",\n      \"calcmargin\",\n      \"calcmargin*\",\n      \"calcwidth\",\n      \"calcwidth*\",\n      \"figurename\",\n      \"figureposition\",\n      \"figurewithin\",\n      \"figurewithout\",\n      \"font\",\n      \"font+\",\n      \"format\",\n      \"hangindent\",\n      \"indention\",\n      \"justification\",\n      \"labelfont\",\n      \"labelfont+\",\n      \"labelformat\",\n      \"labelsep\",\n      \"list\",\n      \"listfigurename\",\n      \"listformat\",\n      \"listtablename\",\n      \"listtype\",\n      \"listtype+\",\n      \"lofdepth\",\n      \"lotdepth\",\n      \"margin\",\n      \"margin*\",\n      \"maxmargin\",\n      \"minmargin\",\n      \"name\",\n      \"oneside\",\n      \"parbox\",\n      \"parindent\",\n      \"parskip\",\n      \"position\",\n      \"singlelinecheck\",\n      \"skip\",\n      \"strut\",\n      \"style\",\n      \"style*\",\n      \"subtype\",\n      \"subtype*\",\n      \"tablename\",\n      \"tableposition\",\n      \"tablewithin\",\n      \"tablewithout\",\n      \"textfont\",\n      \"textfont+\",\n      \"textformat\",\n      \"twoside\",\n      \"type\",\n      \"type*\",\n      \"width\",\n      \"width*\",\n      \"within\",\n      \"without\"\n    ],\n    \"\\\\DeclareCaptionType\": [\n      \"fileext=${1:file extension}\",\n      \"listname=${1:list name}\",\n      \"name=${1:name}\",\n      \"placement=${1:combination of htbp}\",\n      \"within=${1:<counter> or none}\",\n      \"chapterlistsgaps=${1|on,off|}\",\n      \"without\",\n      \"planb\",\n      \"planb-fileext=${1:file extension}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/caption#c,\\\\DeclareCaptionStyle#c,\\\\bicaptionsetup#c,\\\\bicaptionsetup*#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/carbohydrates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"chemfig\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"carbohydrate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"carbohydrate{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"carbohydrate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"carbohydrate[${2:options%keyvals}]{${1:spec}}\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newaldose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newaldose{${1:cmd}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \"newaldose\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newaldose{${1:cmd}}[${3:options%keyvals}]{${2:spec}}\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewaldose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewaldose{${1:cmd}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \"renewaldose\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewaldose{${1:cmd}}[${3:options%keyvals}]{${2:spec}}\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"allose\"\n    },\n    {\n      \"name\": \"allose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"allose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"altrose\"\n    },\n    {\n      \"name\": \"altrose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"altrose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glucose\"\n    },\n    {\n      \"name\": \"glucose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glucose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mannose\"\n    },\n    {\n      \"name\": \"mannose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mannose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gulose\"\n    },\n    {\n      \"name\": \"gulose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gulose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"idose\"\n    },\n    {\n      \"name\": \"idose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"idose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"galactose\"\n    },\n    {\n      \"name\": \"galactose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"galactose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"talose\"\n    },\n    {\n      \"name\": \"talose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"talose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ribose\"\n    },\n    {\n      \"name\": \"ribose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ribose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arabinose\"\n    },\n    {\n      \"name\": \"arabinose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arabinose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xylose\"\n    },\n    {\n      \"name\": \"xylose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xylose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lyxose\"\n    },\n    {\n      \"name\": \"lyxose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lyxose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"desoxyribose\"\n    },\n    {\n      \"name\": \"desoxyribose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"desoxyribose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"erythrose\"\n    },\n    {\n      \"name\": \"erythrose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"erythrose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threose\"\n    },\n    {\n      \"name\": \"threose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"threose[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glycerinaldehyde\"\n    },\n    {\n      \"name\": \"glycerinaldehyde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glycerinaldehyde[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcarbohydrates\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcarbohydrates{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcarbohydratedefaults\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcarbohydratedefaults{${1:csname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\carbohydrate#c,\\\\newaldose#c,\\\\renewaldose#c,\\\\allose#c,\\\\altrose#c,\\\\glucose#c,\\\\mannose#c,\\\\gulose#c,\\\\idose#c,\\\\galactose#c,\\\\talose#c,\\\\ribose#c,\\\\arabinose#c,\\\\xylose#c,\\\\lyxose#c,\\\\desoxyribose#c,\\\\erythrose#c,\\\\threose#c,\\\\glycerinaldehyde#c,\\\\setcarbohydrates#c,\\\\setcarbohydratedefaults#c\": [\n      \"model={fischer=${1:skeleton or full}}\",\n      \"model=haworth\",\n      \"model=chair\",\n      \"chain\",\n      \"ring\",\n      \"ring=${1|true,pyranose,furanose|}\",\n      \"anomer=${1|alpha,beta,undetermined|}\",\n      \"length=${1|6,5,4,3|}\",\n      \"hexose\",\n      \"pentose\",\n      \"tetrose\",\n      \"triose\",\n      \"3d\",\n      \"color={${1:name}}{${2:color}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/carlito.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"carlito\"\n    },\n    {\n      \"name\": \"carlitoOsF\"\n    },\n    {\n      \"name\": \"carlitoLF\"\n    },\n    {\n      \"name\": \"carlitoTLF\"\n    },\n    {\n      \"name\": \"carlitoTOsF\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"carlitofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/carlito#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"osf\",\n      \"oldstyle\",\n      \"lf\",\n      \"lining\",\n      \"proportional\",\n      \"p\",\n      \"tabular\",\n      \"t\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/carlito#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/carolmin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textcmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cminfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/carom.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"hetarom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"anthracenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anthracenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"anthracenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anthracenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzeneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzeneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzeneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzeneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bzdrh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bzdrh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bzdrh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bzdrh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bzdrv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bzdrv{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bzdrv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bzdrv[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclohexaneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclohexaneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclohexaneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclohexaneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclohexanev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclohexanev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclohexanev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclohexanev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decalineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"decalineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decalinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"decalinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decalinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"decalinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decalinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decalinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"decalinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hanthracenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanthracenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hanthracenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanthracenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hphenanthrenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphenanthrenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hphenanthrenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hphenanthrenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphdrh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphdrh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphdrv{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphdrv[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrvb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphdrvb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrvb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphdrvb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrvt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphdrvt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphdrvt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphdrvt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthaleneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphthaleneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthaleneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphthaleneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphthalenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphthalenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphthalenevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphthalenevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naphthalenevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"naphthalenevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naphthalenevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"phenanthrenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phenanthrenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"phenanthrenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phenanthrenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroid{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroid[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidchain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidchain{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidchain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidchain[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetralineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetralineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetralinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetralinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetralinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetralinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetralinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetralinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tetralinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cartonaugh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autoterms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"autoterms[${1:content}]\"\n      }\n    },\n    {\n      \"name\": \"indeterminants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indeterminants{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"manualterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manualterms{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"maxterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxterms{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"minterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minterms{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"terms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"terms{${1:cells}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"implicant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"implicant{${1:NWcell}}{${2:SEcell}}\"\n      }\n    },\n    {\n      \"name\": \"implicant\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"implicant{${1:NWcell}}{${2:SEcell}}[${3:submaps}]\"\n      }\n    },\n    {\n      \"name\": \"implicantedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"implicantedge{${1:NWpart_NWcell}}{${2:NWpart_SEcell}}{${3:SEpart_NWcell}}{${4:SEpart_SEcell}}\"\n      }\n    },\n    {\n      \"name\": \"implicantedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"implicantedge{${1:NWpart_NWcell}}{${2:NWpart_SEcell}}{${3:SEpart_NWcell}}{${4:SEpart_SEcell}}[${5:submaps}]\"\n      }\n    },\n    {\n      \"name\": \"implicantcorner\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"implicantcorner[${1:submaps}]\"\n      }\n    },\n    {\n      \"name\": \"implicantspread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"implicantspread{${1:inner%l}}{${2:outer%l}}\"\n      }\n    },\n    {\n      \"name\": \"resetimplicantspread\"\n    },\n    {\n      \"name\": \"changecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changecolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cartonaugh\"\n    },\n    {\n      \"name\": \"cartonaugh\",\n      \"arg\": {\n        \"format\": \"[][][][][][]\",\n        \"snippet\": \"[${1:Xsize}][${2:Ysize}][${3:Zsize}][${4:Xlabel}][${5:Ylabel}][${6:Zlabel}]\"\n      }\n    },\n    {\n      \"name\": \"cartonaugh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][][]\",\n        \"snippet\": \"[${1:Xsize}][${2:Ysize}][${3:Zsize}][${4:Xlabel}][${5:Ylabel}][${6:Zlabel}][${7:submap_sep_type}]\"\n      }\n    },\n    {\n      \"name\": \"cartonaugh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[][][][][][][]\",\n        \"snippet\": \"*[${1:Xsize}][${2:Ysize}][${3:Zsize}][${4:Xlabel}][${5:Ylabel}][${6:Zlabel}][${7:submap_sep_type}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cas-common.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affiliation[${2:id}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\affiliation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\affiliation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:ids}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"author[${2:ids}]{${1:name}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\author#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"author{${1:name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\author#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bio\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bio[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\WrapFigure,\\\\bio\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bio{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"cormark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cormark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"corref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corref{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"cortext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cortext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cortext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cortext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"credit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"credit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ead[${2:url}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"endbio\"\n    },\n    {\n      \"name\": \"fnmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fnmark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"fnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnref{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"fntext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fntext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fntext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fntext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newdefinition{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdefinition{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newdefinition{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"newproof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newproof{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"nonumnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonumnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printcredits\"\n    },\n    {\n      \"name\": \"sep\"\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortauthors{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\title#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tnotemark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"tnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tnotetext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapFigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"WrapFigure[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\WrapFigure,\\\\bio\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WrapFigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapFigure{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"MSC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovebioskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abovebioskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"abstracttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"addfiglines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfiglines{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aline{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"aurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"bibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blstr{${1:stretch}}\"\n      }\n    },\n    {\n      \"name\": \"casauhlbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casbiographyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cascaptionbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casgrabsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"city\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"cnty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnty{${1:county}}\"\n      }\n    },\n    {\n      \"name\": \"Columnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContribRole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ContribRole{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"creditauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"creditauthor{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"dashrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dashrule[${3:optlength}]{${1:length1}}{${2:length1}}\"\n      }\n    },\n    {\n      \"name\": \"dashrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dashrule{${1:length1}}{${2:length1}}\"\n      }\n    },\n    {\n      \"name\": \"dept\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dept{${1:department}}\"\n      }\n    },\n    {\n      \"name\": \"divn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"divn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dst[${1:depth}]\"\n      }\n    },\n    {\n      \"name\": \"dstrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dstrut{${1:depth}}\"\n      }\n    },\n    {\n      \"name\": \"eadauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eadsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emailauthor{${1:email%URL}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"endthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"facebookauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"facebookauthor{${1:facebook}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"fax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fax{${1:fax}}\"\n      }\n    },\n    {\n      \"name\": \"firstname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FullWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gplusauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gplusauthor{${1:gplus}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"hidebiobox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hst[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"hstrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hstrut{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"invparsename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invparsename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"JEL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordtitlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linkedinauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"linkedinauthor{${1:linkedin}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"listAff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LongMaketitleBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LongMaketitleBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LongMaketitleBox[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"MaketitleBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaketitleBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MaketitleBox[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"MSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MSC[${1:year}]\"\n      }\n    },\n    {\n      \"name\": \"NewLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewLabel{${1:id}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"orcidauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"orcidauthor{${1:ORCID}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"PACS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paraindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parsename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone}}\"\n      }\n    },\n    {\n      \"name\": \"pprintMaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pprintMaketitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pprintMaketitle[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"printaddrinfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcornotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printemails\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printfacebook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printFirstPageNotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printfnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printgplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlinkedin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printmaltese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnonumnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printorcid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtwitter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printurls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processAffNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processAffNum{${1:nums}}\"\n      }\n    },\n    {\n      \"name\": \"processAffRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processAffRef{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"processbreakafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processFnRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processFnRef{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessLongTitleBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processTmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"published\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"published[${2:online}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"published{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"qed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"received\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"recto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recto{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ResetMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfbc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sssectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssssectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssssparaindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sssssectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmAddrSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmAddrSetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmAffSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmAffSetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmaffsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmaffsetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmausetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmausetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmAuthorSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmAuthorSetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmclbsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmclbsetup{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"stmcollab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmLabel{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"stmRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmRef{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"subparaindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tblwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twitterauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twitterauthor{${1:twitter}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"urlauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlauthor{${1:URL}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"verso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verso{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"wfighcorr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wfighcorr{${1:hcorr}}\"\n      }\n    },\n    {\n      \"name\": \"wfighspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wfighspace{${1:hspace}}\"\n      }\n    },\n    {\n      \"name\": \"wfigvcorr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wfigvcorr{${1:vcorr}}\"\n      }\n    },\n    {\n      \"name\": \"wfigvspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wfigvspace{${1:vspace}}\"\n      }\n    },\n    {\n      \"name\": \"wfigwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wfigwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"wrAun\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrAun{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrAux{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"writemarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"writemarks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"wrShipAun\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrShipAun{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrShipAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrShipAux{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xst[${1:height}][${2:depth}]\"\n      }\n    },\n    {\n      \"name\": \"xstrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xstrut{${1:height}}{${2:depth}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:itemlabel}]\"\n      }\n    },\n    {\n      \"name\": \"figure*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"figure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"graphicalabstract\"\n    },\n    {\n      \"name\": \"graphicalabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"highlights\"\n    },\n    {\n      \"name\": \"highlights\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"keywords\"\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"table*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"table\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Abstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abstract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"augroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:title%text}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"biography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"collaboration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collaboration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"PrelimsAbstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrelimsAbstract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\title#c\": [\n      \"mode=${1|title,alt,sub,trans,transsub,ascii|}\"\n    ],\n    \"\\\\affiliation#c\": [\n      \"organizationsep=${1:punctuation}\",\n      \"addresslinesep=${1:punctuation}\",\n      \"citysep=${1:punctuation}\",\n      \"postcodesep=${1:punctuation}\",\n      \"statesep=${1:punctuation}\",\n      \"countrysep=${1:punctuation}\",\n      \"organization={${1:organization}}\",\n      \"addressline={${1:address}}\",\n      \"city={${1:city}}\",\n      \"postcode={${1:postcode}}\",\n      \"state={${1:state}}\",\n      \"country={${1:country}}\"\n    ],\n    \"\\\\author#c\": [\n      \"auid=\",\n      \"bioid=\",\n      \"alt=\",\n      \"style=\",\n      \"prefix=\",\n      \"suffix=\",\n      \"degree=\",\n      \"role=\",\n      \"orcid=\",\n      \"collab=\",\n      \"type=${1|author,editor,collab,anon|}\",\n      \"anon\",\n      \"deceased\",\n      \"twitter=\",\n      \"facebook=\",\n      \"linkedin=\",\n      \"plus=\",\n      \"gplus=\"\n    ],\n    \"\\\\WrapFigure,\\\\bio\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cascade.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cascade\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Cascade{${1:top_left}}{${2:top_right}}{${3:bot_left}}{${4:bot_right}}\"\n      }\n    },\n    {\n      \"name\": \"Cascade\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Cascade[${5:options%keyvals}]{${1:top_left}}{${2:top_right}}{${3:bot_left}}{${4:bot_right}}\",\n        \"keys\": [\n          \"\\\\Cascade,\\\\ShortCascade\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShortCascade\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShortCascade{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"ShortCascade\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ShortCascade[${3:options%keyvals}]{${1:top}}{${2:bottom}}\",\n        \"keys\": [\n          \"\\\\Cascade,\\\\ShortCascade\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CascadeOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CascadeOptions{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Edacsac\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Edacsac{${1:top_left}}{${2:top_right}}{${3:bot_left}}{${4:bot_right}}\"\n      }\n    },\n    {\n      \"name\": \"Edacsac\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Edacsac[${5:options%keyvals}]{${1:top_left}}{${2:top_right}}{${3:bot_left}}{${4:bot_right}}\",\n        \"keys\": [\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShortEdacsac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShortEdacsac{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"ShortEdacsac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ShortEdacsac[${3:options%keyvals}]{${1:top}}{${2:bottom}}\",\n        \"keys\": [\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac\",\n          \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Cascade,\\\\ShortCascade\": [\n      \"t\"\n    ],\n    \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac\": [\n      \"interline=\"\n    ],\n    \"\\\\Cascade,\\\\ShortCascade,\\\\Edacsac,\\\\ShortEdacsac,\\\\CascadeOptions\": [\n      \"space-between=\",\n      \"interline-all=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cascadia-code.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cascadia-code#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"semibold\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cascadia-code#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cases.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thesubequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themainequation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"numcases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:left side}}\"\n      }\n    },\n    {\n      \"name\": \"subnumcases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:left side}}\"\n      }\n    },\n    {\n      \"name\": \"subequations\"\n    },\n    {\n      \"name\": \"subeqnarray\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cases#c\": [\n      \"subnum\",\n      \"fleqn\",\n      \"leqno\",\n      \"amsstyle\",\n      \"casesstyle\",\n      \"cases\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cases#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/casiofont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"casio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcasio\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcasio{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Shift\"\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"UpArrow\"\n    },\n    {\n      \"name\": \"LeftArrow\"\n    },\n    {\n      \"name\": \"DownArrow\"\n    },\n    {\n      \"name\": \"RightArrow\"\n    },\n    {\n      \"name\": \"Setup\"\n    },\n    {\n      \"name\": \"Menu\"\n    },\n    {\n      \"name\": \"CJKMenu\"\n    },\n    {\n      \"name\": \"CJKOn\"\n    },\n    {\n      \"name\": \"Optn\"\n    },\n    {\n      \"name\": \"LineFrac\"\n    },\n    {\n      \"name\": \"Calc\"\n    },\n    {\n      \"name\": \"casioY\"\n    },\n    {\n      \"name\": \"dydx\"\n    },\n    {\n      \"name\": \"Abs\"\n    },\n    {\n      \"name\": \"casioSum\"\n    },\n    {\n      \"name\": \"casioProd\"\n    },\n    {\n      \"name\": \"casioIntegral\"\n    },\n    {\n      \"name\": \"Simp\"\n    },\n    {\n      \"name\": \"casioX\"\n    },\n    {\n      \"name\": \"casioOdot\"\n    },\n    {\n      \"name\": \"casioObar\"\n    },\n    {\n      \"name\": \"casioDblParen\"\n    },\n    {\n      \"name\": \"FracMult\"\n    },\n    {\n      \"name\": \"Frac\"\n    },\n    {\n      \"name\": \"CubeRoot\"\n    },\n    {\n      \"name\": \"SquareRoot\"\n    },\n    {\n      \"name\": \"CubeParen\"\n    },\n    {\n      \"name\": \"Cube\"\n    },\n    {\n      \"name\": \"nRoot\"\n    },\n    {\n      \"name\": \"nExp\"\n    },\n    {\n      \"name\": \"nTen\"\n    },\n    {\n      \"name\": \"eExp\"\n    },\n    {\n      \"name\": \"nLog\"\n    },\n    {\n      \"name\": \"casioLog\"\n    },\n    {\n      \"name\": \"casioLn\"\n    },\n    {\n      \"name\": \"logParen\"\n    },\n    {\n      \"name\": \"divR\"\n    },\n    {\n      \"name\": \"Factorial\"\n    },\n    {\n      \"name\": \"InverseSin\"\n    },\n    {\n      \"name\": \"minusParen\"\n    },\n    {\n      \"name\": \"DegRadGrad\"\n    },\n    {\n      \"name\": \"Inverse\"\n    },\n    {\n      \"name\": \"InverseParen\"\n    },\n    {\n      \"name\": \"Sen\"\n    },\n    {\n      \"name\": \"casioSin\"\n    },\n    {\n      \"name\": \"InverseCos\"\n    },\n    {\n      \"name\": \"InverseTan\"\n    },\n    {\n      \"name\": \"casioCos\"\n    },\n    {\n      \"name\": \"casioTan\"\n    },\n    {\n      \"name\": \"Sto\"\n    },\n    {\n      \"name\": \"BackArrow\"\n    },\n    {\n      \"name\": \"iParen\"\n    },\n    {\n      \"name\": \"angleParen\"\n    },\n    {\n      \"name\": \"casioAbs\"\n    },\n    {\n      \"name\": \"Eng\"\n    },\n    {\n      \"name\": \"casioLParen\"\n    },\n    {\n      \"name\": \"casioRParen\"\n    },\n    {\n      \"name\": \"CommaParen\"\n    },\n    {\n      \"name\": \"MixedFrac\"\n    },\n    {\n      \"name\": \"switchMixedFrac\"\n    },\n    {\n      \"name\": \"Mminus\"\n    },\n    {\n      \"name\": \"Mplus\"\n    },\n    {\n      \"name\": \"Del\"\n    },\n    {\n      \"name\": \"Times\"\n    },\n    {\n      \"name\": \"Plus\"\n    },\n    {\n      \"name\": \"casioAC\"\n    },\n    {\n      \"name\": \"Divide\"\n    },\n    {\n      \"name\": \"Minus\"\n    },\n    {\n      \"name\": \"casioComma\"\n    },\n    {\n      \"name\": \"casioDot\"\n    },\n    {\n      \"name\": \"casioPi\"\n    },\n    {\n      \"name\": \"xTenx\"\n    },\n    {\n      \"name\": \"Percent\"\n    },\n    {\n      \"name\": \"Ans\"\n    },\n    {\n      \"name\": \"Exe\"\n    },\n    {\n      \"name\": \"Sim\"\n    },\n    {\n      \"name\": \"Equal\"\n    },\n    {\n      \"name\": \"Zero\"\n    },\n    {\n      \"name\": \"One\"\n    },\n    {\n      \"name\": \"Two\"\n    },\n    {\n      \"name\": \"Three\"\n    },\n    {\n      \"name\": \"Four\"\n    },\n    {\n      \"name\": \"Five\"\n    },\n    {\n      \"name\": \"Six\"\n    },\n    {\n      \"name\": \"Seven\"\n    },\n    {\n      \"name\": \"Eight\"\n    },\n    {\n      \"name\": \"Nine\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/catchdq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"actcodes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"asciidq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asciidqtd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enldq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enrdq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endqtd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqtd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dedqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedqtd{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/catchfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"etexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CatchFileDef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CatchFileDef{${1:cmd}}{${2:file}}{${3:setup}}\"\n      }\n    },\n    {\n      \"name\": \"CatchFileEdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CatchFileEdef{${1:cmd}}{${2:file}}{${3:setup}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/catchfilebetweentags.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CatchFileBetweenTags\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CatchFileBetweenTags{${1:csname}}{${2:file}}{${3:tag}}\"\n      }\n    },\n    {\n      \"name\": \"CatchFileBetweenTags*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CatchFileBetweenTags*{${1:csname}}{${2:file}}{${3:tag}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteMetaData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteMetaData{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteMetaData\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExecuteMetaData[${2:file}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteMetaData*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteMetaData*{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteMetaData*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExecuteMetaData*[${2:file}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"CatchFileBetweenDelims\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CatchFileBetweenDelims{${1:csname}}{${2:file}}{${3:start delim}}{${4:stop delim}}\"\n      }\n    },\n    {\n      \"name\": \"CatchFileBetweenDelims\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"CatchFileBetweenDelims{${1:csname}}{${2:file}}{${3:start delim}}{${4:stop delim}}[${5:setup}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/catechis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"paralist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"catques\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"catques{${1:question%text}}{${2:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"catcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"catcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"catexplic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"catexplic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restoreindents\"\n    },\n    {\n      \"name\": \"catcitetitle\"\n    },\n    {\n      \"name\": \"catcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"catcite{${1:citation%text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"scripture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scripture{${1:citation%text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"thecatquesnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catquesnumwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catquesindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catqueshindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catquessty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catquesnumsty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catansindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catanshindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catanssty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commhindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcommsty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explicindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explichindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catexplicsty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitetitleword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitetitlesty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitationbefskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitationaftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catciteindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitehindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcitesty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catsrcindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catsrchindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catsrcsty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"catcitations\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/catppuccinpalette.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CtpReinit\"\n    },\n    {\n      \"name\": \"CtpReinit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CtpReinit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/catppuccinpalette#c,\\\\CtpReinit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/catppuccinpalette#c,\\\\CtpReinit#c\": [\n      \"style=${1|latte,frappe,macchiato,mocha|}\",\n      \"latte\",\n      \"frappe\",\n      \"macchiato\",\n      \"mocha\",\n      \"textcolor\",\n      \"pagecolor\",\n      \"styleAll\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/catppuccinpalette#c,\\\\CtpReinit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/causets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\",\n      \"if\": \"external\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzcausetsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcausetsset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcauset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcauset{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pcauset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcauset[${2:options%keyvals}]{${1:permutation}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcausetP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcausetP{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pcausetP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcausetP[${2:options%keyvals}]{${1:permutation}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcausetL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcausetL{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pcausetL\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcausetL[${2:options%keyvals}]{${1:permutation}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcausetX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcausetX{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pcausetX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcausetX[${2:options%keyvals}]{${1:permutation}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rcauset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcauset{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"rcauset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rcauset[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rcausetP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcausetP{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"rcausetP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rcausetP[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rcausetL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcausetL{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"rcausetL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rcausetL[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rcausetX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcausetX{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"rcausetX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rcausetX[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"causet{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"causet\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"causet[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"causetP{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"causetP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"causetP[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"causetL{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"causetL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"causetL[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"causetX{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"causetX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"causetX[${3:options%keyvals}]{${1:permutation}}{${2:event pairs}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetFence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"causetFence{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"causetFence\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"causetFence[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetCrown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"causetCrown{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"causetCrown\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"causetCrown[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"causetTileSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetRegionLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetGridLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetEventSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetLinkWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetBrokenLinkGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawPermutationtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawPermutationfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawLinkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawLinksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsBreakLinkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsBreakLinksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawSpatialLinkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawSpatialLinksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawLabelsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawULabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawULabelsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawVLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsDrawVLabelsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsNameExternaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetsNameExternalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"causetfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"causetfile{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"causetfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"causetfile[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\causetfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawpcauset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawpcauset{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"drawrcauset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawrcauset{${1:permutation}}{${2:event pairs}}\"\n      }\n    },\n    {\n      \"name\": \"drawcauset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawcauset{${1:permutation}}{${2:event pairs}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/causets\": [\n      \"tiny\",\n      \"smaller\",\n      \"small\",\n      \"large\",\n      \"larger\",\n      \"huge\",\n      \"gray\",\n      \"black\",\n      \"blue\",\n      \"neon\",\n      \"linked\",\n      \"unlinked\",\n      \"caps\",\n      \"arrows\",\n      \"continuous\",\n      \"spatial\",\n      \"external\",\n      \"permutation\",\n      \"labeled\",\n      \"unlabeled\",\n      \"ulabeled\",\n      \"uunlabeled\",\n      \"vlabeled\",\n      \"vunlabeled\"\n    ],\n    \"\\\\tikzcausetsset#c,\\\\pcauset#c,\\\\pcausetP#c,\\\\pcausetL#c,\\\\pcausetX#c,\\\\rcauset#c,\\\\rcausetP#c,\\\\rcausetL#c,\\\\rcausetX#c,\\\\causet#c,\\\\causetP#c,\\\\causetL#c,\\\\causetX#c,\\\\causetFence#c,\\\\causetCrown#c\": [\n      \"all labels={${1:TikZ keys}}\",\n      \"arrow links\",\n      \"baseline=\",\n      \"black colors\",\n      \"blue colors\",\n      \"broken link gap=\",\n      \"brokenly linked\",\n      \"cap links\",\n      \"continuously linked\",\n      \"event=${1:value}\",\n      \"event color=\",\n      \"event outline=\",\n      \"event size=\",\n      \"events={${1:TikZ keys}}\",\n      \"gray colors\",\n      \"grid color=\",\n      \"grid line width=\",\n      \"grid={${1:TikZ keys}}\",\n      \"huge\",\n      \"label=${1:text}\",\n      \"label color=\",\n      \"labeled\",\n      \"labels={${1:TikZ keys}}\",\n      \"large\",\n      \"link color=\",\n      \"link ends={${1:TikZ keys}}\",\n      \"link pauses={${1:TikZ keys}}\",\n      \"link resumes={${1:TikZ keys}}\",\n      \"link starts={${1:TikZ keys}}\",\n      \"link width=\",\n      \"links={${1:TikZ keys}}\",\n      \"name=${1:name}\",\n      \"name external\",\n      \"name prefix=${1:prefix}\",\n      \"neon colors\",\n      \"normal\",\n      \"offset=${1:integer}\",\n      \"padding=\",\n      \"permutation\",\n      \"region color=\",\n      \"region line width=\",\n      \"region={${1:TikZ keys}}\",\n      \"replaced events={${1:TikZ keys}}\",\n      \"replaced labels={${1:TikZ keys}}\",\n      \"set prefix=${1:prefix}\",\n      \"show permutation\",\n      \"small\",\n      \"spatial link color=\",\n      \"spatial links={${1:TikZ keys}}\",\n      \"spatially linked\",\n      \"text font=${1:font commands}\",\n      \"text scale=${1:factor}\",\n      \"tile color=\",\n      \"tile size=\",\n      \"tiles={${1:TikZ keys}}\",\n      \"tiny\",\n      \"ulabel color=\",\n      \"ulabels={${1:TikZ keys}}\",\n      \"very large\",\n      \"very small\",\n      \"vlabel color=\",\n      \"vlabels={${1:TikZ keys}}\"\n    ],\n    \"\\\\causetfile\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/causets\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ccaption.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"captiondelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiondelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"captionnamefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionnamefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captiontitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontitlefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"centerlastline\"\n    },\n    {\n      \"name\": \"flushleftright\"\n    },\n    {\n      \"name\": \"hangcaption\"\n    },\n    {\n      \"name\": \"indentcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentcaption{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"normalcaption\"\n    },\n    {\n      \"name\": \"changecaptionwidth\"\n    },\n    {\n      \"name\": \"normalcaptionwidth\"\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"precaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abovelegendskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowlegendskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedlegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namedlegend{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"namedlegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namedlegend[${2:short title}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfixedcaption{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newfixedcaption[${3:cap-command}]{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfixedcaption{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewfixedcaption[${3:cap-command}]{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefixedcaption{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providefixedcaption[${3:cap-command}]{${1:command}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption[${6:label}]{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption[${6:label}]{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bicaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bicaption[${6:label}]{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicontcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bicontcaption{${1:long1%text}}{${2:name}}{${3:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"midbicaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midbicaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"longbitwonumcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longbitwonumcaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"longbionenumcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longbionenumcaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"longbicaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"longbicaption{${1:short1%text}}{${2:long1%text}}{${3:name}}{${4:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubtop[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubtop[${2:list entry}][${3:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubbottom[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubbottom[${2:list entry}][${3:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subconcluded\",\n      \"if\": \"subfigure\"\n    },\n    {\n      \"name\": \"subtop\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtop[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subbottom[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"if\": \"subfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"contsubfigure\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubfigure{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubfigure\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubfigure[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtable\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtable{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtable\",\n      \"if\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubtable[${2:subcaption}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subconcluded\",\n      \"if\": \"subfigure20\"\n    },\n    {\n      \"name\": \"subtop\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"if\": \"subfigure20\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"contsubfigure\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubfigure{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtable\",\n      \"if\": \"subfigure20\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtable{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newfloatlist{${1:envname}}{${2:ext}}{${3:listname}}{${4:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newfloatlist[${5:within}]{${1:envname}}{${2:ext}}{${3:listname}}{${4:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloatentry{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newfloatentry[${4:within}]{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"setnewfloatindents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setnewfloatindents{${1:envname}}{${2:indent%l}}{${3:numwidth%l}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatpagesoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfloatpagesoff{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatpageson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfloatpageson{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"cftdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdotfill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftdotfill{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftdotsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ccaption#c\": [\n      \"subfigure20\",\n      \"subfigure\",\n      \"caption2\",\n      \"titles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ccaption#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ccfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ccfonts#c\": [\n      \"standard-baselineskips\",\n      \"exscale\",\n      \"slantedGreek\",\n      \"boldsans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ccfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ccicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ccLogo\"\n    },\n    {\n      \"name\": \"ccAttribution\"\n    },\n    {\n      \"name\": \"ccShareAlike\"\n    },\n    {\n      \"name\": \"ccNoDerivatives\"\n    },\n    {\n      \"name\": \"ccNonCommercial\"\n    },\n    {\n      \"name\": \"ccNonCommercialEU\"\n    },\n    {\n      \"name\": \"ccNonCommercialJP\"\n    },\n    {\n      \"name\": \"ccZero\"\n    },\n    {\n      \"name\": \"ccPublicDomain\"\n    },\n    {\n      \"name\": \"ccPublicDomainAlt\"\n    },\n    {\n      \"name\": \"ccSampling\"\n    },\n    {\n      \"name\": \"ccShare\"\n    },\n    {\n      \"name\": \"ccRemix\"\n    },\n    {\n      \"name\": \"ccCopy\"\n    },\n    {\n      \"name\": \"ccby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbysa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbynd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbync\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbynceu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncjp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncsa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncsaeu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncsajp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncndeu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbyncndjp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cczero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccpd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ccicons#c\": [\n      \"scale=${1:factor}\",\n      \"copyright\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ccicons#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cclicenses.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"rotating\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cc\"\n    },\n    {\n      \"name\": \"ccnd\"\n    },\n    {\n      \"name\": \"ccby\"\n    },\n    {\n      \"name\": \"ccnc\"\n    },\n    {\n      \"name\": \"ccsa\"\n    },\n    {\n      \"name\": \"by\"\n    },\n    {\n      \"name\": \"bynd\"\n    },\n    {\n      \"name\": \"byncnd\"\n    },\n    {\n      \"name\": \"bync\"\n    },\n    {\n      \"name\": \"byncsa\"\n    },\n    {\n      \"name\": \"bysa\"\n    },\n    {\n      \"name\": \"nd\"\n    },\n    {\n      \"name\": \"ndnc\"\n    },\n    {\n      \"name\": \"nc\"\n    },\n    {\n      \"name\": \"ncsa\"\n    },\n    {\n      \"name\": \"sa\"\n    },\n    {\n      \"name\": \"chardim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origfontseries\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ccycle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adamantane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adamantane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"BackGroundColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bicycheph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bicycheph[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bicycheph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bicycheph{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bicychepv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bicychepv[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bicychepv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bicychepv{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bornane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bornane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"bornane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bornane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chair[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"chairi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chairi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"chairi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chairi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclobutane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclobutane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"frontthicktothinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontthicktothintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hadamantane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hadamantane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hadamantane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hadamantane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"iffrontthicktothin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinLineWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cdcmd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newcondition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcondition{${1:identifier}}{${2:ids}}\"\n      }\n    },\n    {\n      \"name\": \"setcondition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcondition{${1:identifier=ids list}}\"\n      }\n    },\n    {\n      \"name\": \"clearcondition\"\n    },\n    {\n      \"name\": \"clearcondition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearcondition[${1:identifiers}]\"\n      }\n    },\n    {\n      \"name\": \"conditionif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"conditionif{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"conditionif\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"conditionif[${3:identifier=ids list}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"conditionif*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"conditionif*{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"conditionif*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"conditionif*[${3:identifier=ids list}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"conditioncmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conditioncmd{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"conditioncmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"conditioncmd[${2:identifier=ids list}]{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"conditioncmd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conditioncmd*{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"conditioncmd*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"conditioncmd*[${2:identifier=ids list}]{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"econditionif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"econditionif{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"econditionif\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"econditionif[${3:identifier=ids list}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"econditioncmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"econditioncmd{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"econditioncmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"econditioncmd[${2:identifier=ids list}]{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newconditioncommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newconditioncommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewconditioncommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewconditioncommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideconditioncommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideconditioncommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declareconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareconditioncommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declareconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declareconditioncommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"neweconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"neweconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"neweconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"neweconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"neweconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"neweconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"neweconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"neweconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"reneweconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reneweconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"reneweconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"reneweconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"reneweconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reneweconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"reneweconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"reneweconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideeconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideeconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideeconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideeconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideeconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideeconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideeconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideeconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareeconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareeconditioncommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareeconditioncommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declareeconditioncommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareeconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareeconditioncommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"declareeconditioncommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declareeconditioncommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewExpandableConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewExpandableConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExpandableConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewExpandableConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExpandableConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideExpandableConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExpandableConditionCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExpandableConditionCommand{${1:cmd}}{${2:xargs}}{${3:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cellprops.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mdwtab\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cellprops\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellprops{${1:CSS properties}}\"\n      }\n    },\n    {\n      \"name\": \"cellpropsclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellpropsclass{${1:class1 class2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"cellpropsclass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellpropsclass*{${1:class1 class2 ...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cellspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cellspacetoplimit\"\n    },\n    {\n      \"name\": \"cellspacebottomlimit\"\n    },\n    {\n      \"name\": \"bcolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcolumn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ecolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addparagraphcolumntypes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addparagraphcolumntypes{${1:col type}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cellspace#c\": [\n      \"math\",\n      \"nomath\",\n      \"column=${1:column type}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cellspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/censor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"tokcycle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blackout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blackout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blackoutenv\"\n    },\n    {\n      \"name\": \"censor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"censor*{${1:width multiplier}}\"\n      }\n    },\n    {\n      \"name\": \"censor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"censor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"censorbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"censorbox*[${4:pre-commands}]{${1:width mult}}{${2:height mult}}{${3:depth mult}}\"\n      }\n    },\n    {\n      \"name\": \"censorbox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"censorbox*{${1:width mult}}{${2:height mult}}{${3:depth mult}}\"\n      }\n    },\n    {\n      \"name\": \"censorbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"censorbox[${2:pre-commands}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"censorbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"censorbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"censordot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"censormathgreekfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"censormathgreektrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"censorrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"censorrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"censorruledepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"censorruleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endblackoutenv\"\n    },\n    {\n      \"name\": \"endxblackoutenv\"\n    },\n    {\n      \"name\": \"RestartCensoring\"\n    },\n    {\n      \"name\": \"StopCensoring\"\n    },\n    {\n      \"name\": \"xblackout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xblackout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xblackoutenv\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/centeredline.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centeredline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centeredline{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/centerlastline.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centerlastline\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"centerlastline\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/centernot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centernot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centernot{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cesenaexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarythrough\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"titlesec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"examsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examsection{${1:title}}{${2:italic text%text}}\"\n      }\n    },\n    {\n      \"name\": \"examsection*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examsection*{${1:title}}{${2:italic text%text}}\"\n      }\n    },\n    {\n      \"name\": \"boxempty\"\n    },\n    {\n      \"name\": \"boxcheck\"\n    },\n    {\n      \"name\": \"examparts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examparts{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"maketitle{${1:surname}}{${2:name}}{${3:id}}{${4:signature}}{${5:N}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"maketitle[${6:options%keyvals}]{${1:surname}}{${2:name}}{${3:id}}{${4:signature}}{${5:N}}\",\n        \"keys\": [\n          \"\\\\maketitle,\\\\maketitle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examtwoblocks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"examtwoblocks{${1:length1%l}}{${2:length2%l}}{${3:block1%text}}{${4:block2%text}}\"\n      }\n    },\n    {\n      \"name\": \"examtwoblockstop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"examtwoblockstop{${1:length1%l}}{${2:length2%l}}{${3:block1%text}}{${4:block2%text}}\"\n      }\n    },\n    {\n      \"name\": \"examoneblocktop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examoneblocktop{${1:length}}{${2:block%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cesenaexam#c\": [\n      \"boxed\"\n    ],\n    \"\\\\maketitle,\\\\maketitle*\": [\n      \"textboxheight=\",\n      \"whiteboxheight=\",\n      \"textboxone={${1:content}}\",\n      \"textboxtwo={${1:content}}\",\n      \"textboxthree={${1:content}}\",\n      \"textboxfour={${1:content}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cesenaexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cfr-lm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"regwidth\"\n    },\n    {\n      \"name\": \"textrw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cdwidth\"\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lgweight\"\n    },\n    {\n      \"name\": \"textlg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sbweight\"\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uishape\"\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lstyle\"\n    },\n    {\n      \"name\": \"textl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ostyle\"\n    },\n    {\n      \"name\": \"texto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\"\n    },\n    {\n      \"name\": \"textp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstyle\"\n    },\n    {\n      \"name\": \"textt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plstyle\"\n    },\n    {\n      \"name\": \"textpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postyle\"\n    },\n    {\n      \"name\": \"textpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlstyle\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tostyle\"\n    },\n    {\n      \"name\": \"textto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tvstyle\"\n    },\n    {\n      \"name\": \"texttv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttv{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tmstyle\"\n    },\n    {\n      \"name\": \"texttm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qtstyle\"\n    },\n    {\n      \"name\": \"textqt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tistyle\"\n    },\n    {\n      \"name\": \"textti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textti{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zeroslash\"\n    },\n    {\n      \"name\": \"dotdigitenc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdde{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cfr-lm#c\": [\n      \"rm={${1:options}}\",\n      \"sf={${1:options}}\",\n      \"tt={${1:options}}\",\n      \"qt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cfr-lm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cgloss4e.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gll\"\n    },\n    {\n      \"name\": \"glll\"\n    },\n    {\n      \"name\": \"glt\"\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"singlegloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosinglegloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linetwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotdone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notdonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notdonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lastword{${1:each}}{${2:line box}}{${3:word box}}\"\n      }\n    },\n    {\n      \"name\": \"testdone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getwords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"getwords(${1:line box},${2:each})\"\n      }\n    },\n    {\n      \"name\": \"more\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"donewords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twosent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threesent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordthree\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/changebar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cbcolor\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cbcolor\",\n      \"if\": \"xcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cbstart\"\n    },\n    {\n      \"name\": \"cbend\"\n    },\n    {\n      \"name\": \"cbdelete\"\n    },\n    {\n      \"name\": \"cbdelete\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cbdelete[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"nochangebars\"\n    },\n    {\n      \"name\": \"changebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deletebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changebarsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechangebargrey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"driver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"driver{${1:driver name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"changebar\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/changebar#c\": [\n      \"dvitoln03\",\n      \"dvitops\",\n      \"dvips\",\n      \"emtex\",\n      \"textures\",\n      \"vtex\",\n      \"pdftex\",\n      \"xetex\",\n      \"luatex\",\n      \"outerbars\",\n      \"innerbars\",\n      \"leftbars\",\n      \"rightbars\",\n      \"traceon\",\n      \"traceoff\",\n      \"tracestacks\",\n      \"grey\",\n      \"color\",\n      \"xcolor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/changebar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/changelog.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shortversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortversion{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{changelog},\\\\begin{version},\\\\shortversion\",\n          \"\\\\shortversion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"added\"\n    },\n    {\n      \"name\": \"changed\"\n    },\n    {\n      \"name\": \"deprecated\"\n    },\n    {\n      \"name\": \"removed\"\n    },\n    {\n      \"name\": \"fixed\"\n    },\n    {\n      \"name\": \"security\"\n    },\n    {\n      \"name\": \"misc\"\n    },\n    {\n      \"name\": \"newchangelogsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newchangelogsection{${1:command}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"changelogyanked\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changelogremark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changelogremark{${1:remark%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"changelog\"\n    },\n    {\n      \"name\": \"changelog\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{changelog}\",\n          \"\\\\begin{changelog},\\\\begin{version},\\\\shortversion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"version\"\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{changelog},\\\\begin{version},\\\\shortversion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"changelogdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changelogitemize\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{changelog}\": [\n      \"section\",\n      \"sectioncmd=${1:command}\",\n      \"title=${1:text}\",\n      \"label=\"\n    ],\n    \"\\\\begin{changelog},\\\\begin{version},\\\\shortversion\": [\n      \"version=${1:version}\",\n      \"v=${1:version}\",\n      \"author=${1:author}\",\n      \"date=${1:date}\",\n      \"yanked\",\n      \"remark=${1:text}\",\n      \"remarks={${1:text1,text2,...}}\",\n      \"simple\",\n      \"short\"\n    ],\n    \"\\\\shortversion\": [\n      \"changes=${1:change text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/changepage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifstrictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagecheckfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagechecktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagecheck\"\n    },\n    {\n      \"name\": \"easypagecheck\"\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newpmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpmemlabel{${1:label}}{${2:page num}}\"\n      }\n    },\n    {\n      \"name\": \"pmemlabelref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabelref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"checkoddpage\"\n    },\n    {\n      \"name\": \"changetext\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"changetext{${1:textheight%l}}{${2:textwidth%l}}{${3:evenmargin%l}}{${4:oddmargin%l}}{${5:colsep%l}}\"\n      }\n    },\n    {\n      \"name\": \"changepage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"changepage{${1:textheight%l}}{${2:textwidth%l}}{${3:evenmargin%l}}{${4:oddmargin%l}}{${5:colsep%l}}{${6:topmargin%l}}{${7:headheight%l}}{${8:headsep%l}}{${9:footskip%l}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"adjustwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:leftmargin%l}}{${2:rightmargin%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjustwidth*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:leftmargin%l}}{${2:rightmargin%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/changepage#c\": [\n      \"strict\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/changepage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/changes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"truncate\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"definechangesauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"definechangesauthor[${2:keyvals}]{${1:authorid%specialDef}}\",\n        \"keys\": [\n          \"\\\\definechangesauthor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definechangesauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definechangesauthor{${1:authorid%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"added\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"added[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\added,\\\\deleted,\\\\replaced,\\\\highlight\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"added\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"added{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deleted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"deleted[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\added,\\\\deleted,\\\\replaced,\\\\highlight\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"deleted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deleted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"replaced\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"replaced[${3:keyvals}]{${1:new%text}}{${2:old%text}}\",\n        \"keys\": [\n          \"\\\\added,\\\\deleted,\\\\replaced,\\\\highlight\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"replaced\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"replaced{${1:new%text}}{${2:old%text}}\"\n      }\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"highlight[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\added,\\\\deleted,\\\\replaced,\\\\highlight\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"comment[${2:keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\comment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"listofchanges\"\n    },\n    {\n      \"name\": \"listofchanges\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listofchanges[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\listofchanges\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setaddedmarkup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaddedmarkup{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setdeletedmarkup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdeletedmarkup{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"sethighlightmarkup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethighlightmarkup{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setcommentmarkup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcommentmarkup{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setauthormarkup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setauthormarkup{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setauthormarkupposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setauthormarkupposition{${1:left/right}}\"\n      }\n    },\n    {\n      \"name\": \"setauthormarkuptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setauthormarkuptext{${1:id/name}}\"\n      }\n    },\n    {\n      \"name\": \"setanonymousname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setanonymousname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"settruncatewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settruncatewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsummarywidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsummarywidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsummarytowidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsummarytowidth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsocextension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsocextension{${1:ext}}\"\n      }\n    },\n    {\n      \"name\": \"setlocextension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlocextension{${1:ext}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsInList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfIsInList{${1:arg}}{${2:item1|${5:item2}|...}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsColored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfIsColored{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfIsEmpty{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsAnonymous\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfIsAnonymous{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsAuthorEmptyAtPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfIsAuthorEmptyAtPosition{${1:arg}}{${2:position}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsAuthorOutputEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfIsAuthorOutputEmpty{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"listofchangesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryofchangesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compactsummaryofchangesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesaddedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesdeletedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesreplacedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeshighlightname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changescommentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesauthorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesanonymousname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesnochanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesnoloc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changesnosoc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/changes#c\": [\n      \"draft\",\n      \"final\",\n      \"commandnameprefix=${1|none,ifneeded,always|}\",\n      \"markup=${1|default,underlined,bfit,nocolor|}\",\n      \"addedmarkup=${1|colored,uline,uuline,uwave,dashuline,dotuline,bf,it,sl,em|}\",\n      \"deletedmarkup=${1|sout,xout,colored,uline,uuline,uwave,dashuline,dotuline,bf,it,sl,em|}\",\n      \"highlightmarkup=${1|background,uuline,uwave|}\",\n      \"commentmarkup=${1|todo,margin,footnote,uwave|}\",\n      \"authormarkup=${1|superscript,subscript,brackets,footnote,none|}\",\n      \"authormarkupposition=${1|right,left|}\",\n      \"authormarkuptext=${1|id,name|}\",\n      \"defaultcolor=\",\n      \"todonotes={${1:todonotes options}}\",\n      \"truncate={${1:truncate options}}\",\n      \"ulem={${1:ulem options}}\",\n      \"xcolor={${1:xcolor options}}\"\n    ],\n    \"\\\\definechangesauthor\": [\n      \"name=${1:name}\",\n      \"color=\"\n    ],\n    \"\\\\added,\\\\deleted,\\\\replaced,\\\\highlight\": [\n      \"id=\",\n      \"comment=${1:comment}\"\n    ],\n    \"\\\\comment\": [\n      \"id=\"\n    ],\n    \"\\\\listofchanges\": [\n      \"style=${1|list,summary,compactsummary|}\",\n      \"title=${1:title}\",\n      \"show=${1|all,added,deleted,replaced,highlight,comment|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/changes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chappg.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pagenumbering\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagenumbering[${2:prefix}]{${1:numstyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagenumbering#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chappgsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chappg#c\": [\n      \"auto\",\n      \"noauto\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"bychapter\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chappg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chapterbib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cbinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"sectionbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sectionbib{${1:section cmd}}{${2:section name}}\"\n      }\n    },\n    {\n      \"name\": \"CitationPrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CitationPrefix{${1:prefix code}}\"\n      }\n    },\n    {\n      \"name\": \"FinalBibTitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FinalBibPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StartFinalBibs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CBMainSectioning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeform{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"citepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cbunit\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chapterbib#c\": [\n      \"sectionbib\",\n      \"draft\",\n      \"rootbib\",\n      \"duplicate\",\n      \"gather\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chapterbib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chapterfolder.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cfpart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfpart{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfpart[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpart*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfpart*{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpart*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfpart*[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfchapter{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapter\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfchapter[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapter*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfchapter*{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapter*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfchapter*[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsection\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsection{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsection\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsection[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsection*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsection*{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsection*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsection*[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsubsection{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsubsection[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsection*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsubsection*{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsubsection*[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cfcurrentfolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfinputfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfinputfigure{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cfcurrentfolderfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfinputlistings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfinputlistings{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cfcurrentfolderlistings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfinputalgorithms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfinputalgorithms{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cfcurrentfolderalgorithms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cffolderfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cffolderfigure{${1:folder%file}}{${2:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfaddFolder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cfaddFolder{${1:cmd ext}}{${2:folder%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpartstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfpartstar{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpartstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfpartstar[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapterstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfchapterstar{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapterstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfchapterstar[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsectionstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsectionstar{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsectionstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsectionstar[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsectionstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsubsectionstar{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsectionstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsubsectionstar[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpartstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfpartstd{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfpartstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfpartstd[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapterstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfchapterstd{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfchapterstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfchapterstd[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsectionstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsectionstd{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsectionstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsectionstd[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsectionstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cfsubsectionstd{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfsubsectionstd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cfsubsectionstd[${4:short title}]{${1:title}}{${2:folder%file}}{${3:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cffolderinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cffolderinput{${1:folder%file}}{${2:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"cfincludegraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfincludegraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"cfincludegraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfincludegraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\cfincludegraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\cfincludegraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chbibref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setbibref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibref{${1:name%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/checklistings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"checklistings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checklistings{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/checklistings#c,\\\\checklistings\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chklistingcmd\"\n    },\n    {\n      \"name\": \"chklistingmsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chklistingmsg{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"chklistingerr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chklistingerr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ChkListingErr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chklistingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chklistingfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChkListingMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chklistingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifchklisting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setchklistingcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchklistingcmd{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"thechklisting\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chklisting\"\n    },\n    {\n      \"name\": \"chklisting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{chklisting}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChkListingErr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChkListingMsg\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/checklistings#c,\\\\checklistings\": [\n      \"withresult\",\n      \"withoutresult\",\n      \"showproblems\",\n      \"hideproblems\",\n      \"skipone\",\n      \"skiptwo\",\n      \"codestyle={${1:fancyvrb options}}\",\n      \"msgstyle={${1:fancyvrb options}}\",\n      \"errstyle={${1:fancyvrb options}}\",\n      \"codelst={${1:listings options}}\",\n      \"msglst={${1:listings options}}\",\n      \"errlst={${1:listings options}}\",\n      \"emptyoption=${1:string}\",\n      \"subdir=${1:directory}\",\n      \"prefix=${1:prefix}\",\n      \"ext=${1:extension}\",\n      \"prompt=${1:prompt}\",\n      \"compiler=${1:path}\",\n      \"compilerflags=${1:flags}\",\n      \"lastflags=${1:flags}\",\n      \"includecmd=${1:command}\",\n      \"html=${1:path}\"\n    ],\n    \"\\\\begin{chklisting}\": [\n      \"continue\",\n      \"include=${1:label}\",\n      \"fail\",\n      \"label=${1:label}\",\n      \"skipnone\",\n      \"skipone\",\n      \"skiptwo\",\n      \"hide\",\n      \"withresult\",\n      \"withoutresult\",\n      \"showproblems\",\n      \"hideproblems\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/checklistings#c,\\\\checklistings\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemarr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightleftharpoons{${1:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightleftharpoons[${2:subscript%formula}]{${1:superscript%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemarrow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"chemarrow\"\n    },\n    {\n      \"name\": \"larrowfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"larrowfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rarrowfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rarrowfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rightleftharpoonsfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightleftharpoonsfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightharpoonsfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftrightharpoonsfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"autoleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autoleftarrow{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"autorightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autorightarrow{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"autorightleftharpoons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autorightleftharpoons{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"autoleftrightharpoons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autoleftrightharpoons{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"arro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autobottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autosize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftharpoondownfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftharpoonupfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightharpoonupfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightharpoondownfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftchemarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightchemarrowfill\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemcompounds.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"declarecompound\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarecompound{${1:label%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"declarecompound\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declarecompound[${2:name}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"compound\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compound{${1:label1,label2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\compound#c,\\\\compound*#c,\\\\compound+#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"compound*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compound*{${1:label1,label2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\compound#c,\\\\compound*#c,\\\\compound+#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"compoundseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundglobalprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundglobalsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcompound\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printcompound{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemcompounds#c\": [\n      \"implicit\",\n      \"noimplicit\"\n    ],\n    \"\\\\compound#c,\\\\compound*#c,\\\\compound+#c\": [\n      \"%compound\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemcompounds#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chemfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemfig{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"chemfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chemfig[${2:options%keyvals}]{${1:code%definition}}\",\n        \"keys\": [\n          \"\\\\chemfig,\\\\setchemfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchemfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchemfig{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chemfig,\\\\setchemfig\",\n          \"\\\\setchemfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetchemfig\"\n    },\n    {\n      \"name\": \"printatom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printatom{${1:code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"hflipnext\"\n    },\n    {\n      \"name\": \"vflipnext\"\n    },\n    {\n      \"name\": \"definesubmol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definesubmol{${1:name%cmd}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"definesubmol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"definesubmol{${1:name%cmd}}[${3:code1%definition}]{${2:code2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"redefinesubmol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"redefinesubmol{${1:name%cmd}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"redefinesubmol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"redefinesubmol{${1:name%cmd}}[${3:code1%definition}]{${2:code2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"chemskipalign\"\n    },\n    {\n      \"name\": \"charge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"charge{${1:[${3:parameters}]position[${4:TikZ code}]}}{${2:atom}}\"\n      }\n    },\n    {\n      \"name\": \"Charge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Charge{${1:[${3:parameters}]position[${4:TikZ code}]}}{${2:atom}}\"\n      }\n    },\n    {\n      \"name\": \"setcharge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcharge{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcharge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetcharge\"\n    },\n    {\n      \"name\": \"chargeangle\"\n    },\n    {\n      \"name\": \"chemabove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemabove{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemabove\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chemabove[${3:dim%l}]{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chembelow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chembelow{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chembelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chembelow[${3:dim%l}]{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Chemabove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Chemabove{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Chemabove\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Chemabove[${3:dim%l}]{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Chembelow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Chembelow{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Chembelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Chembelow[${3:dim%l}]{${1:txt1%formula}}{${2:txt2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemname{${1:molecule}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"chemname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chemname[${3:dim%l}]{${1:molecule}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"chemname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemname*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chemnameinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemnameinit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"schemestart\"\n    },\n    {\n      \"name\": \"schemestart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"schemestart[${1:angle,coeff,style}]\"\n      }\n    },\n    {\n      \"name\": \"schemestart\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"schemestart[${1:angle,coeff,style}][${2:position}]\"\n      }\n    },\n    {\n      \"name\": \"schemestop\"\n    },\n    {\n      \"name\": \"arrow\"\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrow[${1:angle,coeff,style}]\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrow{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"arrow{${1:type}}[${2:angle,coeff,style}]\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"arrow(%<n1.a1%>[${2:s1}]--%<n2.a2%>[${3:s2}]){${1:type}}[${4:angle,coeff,style}]\"\n      }\n    },\n    {\n      \"name\": \"setcompoundstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcompoundstyle{${1:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"subscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subscheme{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"definearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definearrow{${1:number}}{${2:name}}{${3:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"chemleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemleft{${1:delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemright{${1:delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemup{${1:delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemdown{${1:delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polymerdelim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polymerdelim{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"polymerdelim\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"polymerdelim[${3:options%keyvals}]{${1:node1}}{${2:node2}}\",\n        \"keys\": [\n          \"\\\\polymerdelim\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\chemfig,\\\\setchemfig\": [\n      \"chemfig style={${1:TikZ keys}}\",\n      \"atom style={${1:TikZ keys}}\",\n      \"bond join\",\n      \"fixed length\",\n      \"cram rectangle\",\n      \"cram width=\",\n      \"cram dash width=\",\n      \"cram dash sep=\",\n      \"atom sep=\",\n      \"bond offset=\",\n      \"double bond sep=\",\n      \"angle increment=${1:degrees}\",\n      \"node style={${1:TikZ keys}}\",\n      \"bond style={${1:TikZ keys}}\",\n      \"cycle radius coeff=\",\n      \"stack sep=\",\n      \"show cntcycle\",\n      \"autoreset cntcycle\",\n      \"compound style={${1:TikZ keys}}\",\n      \"compound sep=\",\n      \"arrow offset=\",\n      \"arrow angle=${1:degrees}\",\n      \"arrow coeff=${1:decimal}\",\n      \"arrow style={${1:TikZ keys}}\",\n      \"arrow double sep=\",\n      \"arrow double coeff=\",\n      \"arrow double harpoon\",\n      \"arrow label sep=\",\n      \"arrow head=\",\n      \"+ sep left=\",\n      \"+ sep right=\",\n      \"+ vshift=\",\n      \"gchemname\",\n      \"schemestart code=${1:code}\",\n      \"schemestop code=${1:code}\",\n      \"baseline=\"\n    ],\n    \"\\\\setchemfig\": [\n      \"debug\",\n      \"scheme debug\"\n    ],\n    \"\\\\setcharge\": [\n      \"debug\",\n      \"macro atom=${1:cmd}\",\n      \"circle\",\n      \"macro charge=${1:cmd}\",\n      \"extra sep=\",\n      \"overlay\",\n      \"shortcuts\",\n      \"lewisautorot\",\n      \".radius=\",\n      \":sep=\",\n      \".style={${1:TikZ keys}}\",\n      \"\\\"length=\",\n      \"\\\"width=\",\n      \"\\\"style={${1:TikZ keys}}\",\n      \"|style={${1:TikZ keys}}\"\n    ],\n    \"\\\\polymerdelim\": [\n      \"delimiters=\",\n      \"height=\",\n      \"depth=\",\n      \"h align\",\n      \"auto rotate\",\n      \"rotate=${1:degrees}\",\n      \"open xshift=\",\n      \"close x shift=\",\n      \"indice=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemformula-ru.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemformula\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemformula-ru#c\": [\n      \"cosh2ch\",\n      \"ch2Ch\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemformula-ru#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemformula.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xfrac\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setchemformula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchemformula{${1:options}}\",\n        \"keys\": [\n          \"\\\\setchemformula\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ch{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ch[${2:options}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\ch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bond{${1:bond name}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemBond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemBond{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemBondAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemBondAlias{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemBondAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemBondAlias{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowChemBond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowChemBond{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chcpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chcpd{${1:compound}}\"\n      }\n    },\n    {\n      \"name\": \"chcpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chcpd[${2:options}]{${1:compound}}\",\n        \"keys\": [\n          \"\\\\chcpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewChemCompoundProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemCompoundProperty{${1:token}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveChemCompoundProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveChemCompoundProperty{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemAdditionSymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemAdditionSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareChemAdditionSymbol{${1:name}}{${2:input}}{${3:output}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemSymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemSymbol{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemArrow{${1:type}}{${2:TikZ}}\"\n      }\n    },\n    {\n      \"name\": \"ShowChemArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowChemArrow{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charrow{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"charrow{${1:type}}[${2:above}]\"\n      }\n    },\n    {\n      \"name\": \"charrow\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"charrow{${1:type}}[${2:above}][${3:below}]\"\n      }\n    },\n    {\n      \"name\": \"chname\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"chname(${1:text 1})(${2:text 2})\"\n      }\n    },\n    {\n      \"name\": \"chlewis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chlewis{${1:electron spec}}{${2:atom}}\"\n      }\n    },\n    {\n      \"name\": \"chlewis\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chlewis[${3:options}]{${1:electron spec}}{${2:atom}}\",\n        \"keys\": [\n          \"\\\\chlewis\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ch\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\",\n      \"kroeger-vink=${1|true,false|}\",\n      \"kv-positive-style={${1:TikZ}}\",\n      \"kv-positive-radius={${1:dim}}\",\n      \"kv-positive-hshift={${1:dim}}\",\n      \"kv-positive-vshift={${1:dim}}\",\n      \"kv-positive-offset={${1:dim}}\",\n      \"kv-positive-symbol={${1:TeX code}}\"\n    ],\n    \"\\\\setchemformula\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\",\n      \"tikz-external-disable=${1|true,false|}\",\n      \"lewis-default=${1|.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty|}\",\n      \"lewis-distance={${1:dim}}\",\n      \"lewis-line-length={${1:dim}}\",\n      \"lewis-line-width={${1:dim}}\",\n      \"lewis-offset={${1:dim}}\",\n      \"kroeger-vink=${1|true,false|}\",\n      \"kv-positive-style={${1:TikZ}}\",\n      \"kv-positive-radius={${1:dim}}\",\n      \"kv-positive-hshift={${1:dim}}\",\n      \"kv-positive-vshift={${1:dim}}\",\n      \"kv-positive-offset={${1:dim}}\",\n      \"kv-positive-symbol={${1:TeX code}}\"\n    ],\n    \"\\\\chcpd\": [\n      \"decimal-marker={${1:marker}}\",\n      \"frac-style=${1|math,xfrac,nicefrac|}\",\n      \"frac-math-cmd={${1:command sequence}}\",\n      \"stoich-space={${1:skip}}\",\n      \"stoich-paren-parse=${1|true,false|}\",\n      \"stoich-format={${1:code}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"subscript-vshift={${1:dim}}\",\n      \"subscript-style=${1|text,math|}\",\n      \"charge-hshift={${1:dim}}\",\n      \"charge-vshift={${1:dim}}\",\n      \"charge-style=${1|text,math|}\",\n      \"math-scripts\",\n      \"adduct-space={${1:dim}}\",\n      \"adduct-penalty={${1:num}}\",\n      \"bond-length={${1:dim}}\",\n      \"bond-offset={${1:dim}}\",\n      \"bond-style={${1:TikZ}}\",\n      \"bond-penalty={${1:num}}\",\n      \"radical-style={${1:TikZ}}\",\n      \"radical-radius={${1:dim}}\",\n      \"radical-hshift={${1:dim}}\",\n      \"radical-vshift={${1:dim}}\",\n      \"radical-space={${1:dim}}\",\n      \"plus-space={${1:skip}}\",\n      \"plus-penalty={${1:num}}\",\n      \"plus-output-symbol={${1:code}}\",\n      \"minus-space={${1:skip}}\",\n      \"minus-penalty={${1:num}}\",\n      \"minus-output-symbol={${1:code}}\",\n      \"math-space={${1:skip}}\",\n      \"arrow-offset={${1:dim}}\",\n      \"arrow-min-length={${1:dim}}\",\n      \"arrow-yshift={${1:dim}}\",\n      \"arrow-ratio={${1:factor}}\",\n      \"compound-sep={${1:dim}}\",\n      \"label-offset={${1:dim}}\",\n      \"label-style={${1:font command}}\",\n      \"arrow-penalty={${1:num}}\",\n      \"arrow-style={${1:TikZ}}\",\n      \"name-format={${1:comands}}\",\n      \"name-width=${2|{${1:dim}},auto|}\",\n      \"format={${1:code}}\",\n      \"atom-format={${1:code}}\",\n      \"font-family={${1:family}}\",\n      \"font-series={${1:series}}\",\n      \"font-shape={${1:shape}}\",\n      \"font-spec={${1:font}}\",\n      \"font-spec={[${1:options}]${2:font}}\"\n    ],\n    \"\\\\chlewis\": [\n      \"lewis-default=${1|.,:,|,o,single,pair,{pair (dotted)},{pair (line)},empty|}\",\n      \"lewis-distance={${1:dim}}\",\n      \"lewis-line-length={${1:dim}}\",\n      \"lewis-line-width={${1:dim}}\",\n      \"lewis-offset={${1:dim}}5ex\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemgreek.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newchemgreekmapping{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"newchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newchemgreekmapping[${3:package}]{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"renewchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewchemgreekmapping{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"renewchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewchemgreekmapping[${3:package}]{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"declarechemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarechemgreekmapping{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"declarechemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"declarechemgreekmapping[${3:package}]{${1:name}}{${2:mapping list}}\"\n      }\n    },\n    {\n      \"name\": \"newchemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newchemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"newchemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newchemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"renewchemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewchemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"renewchemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewchemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"declarechemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarechemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"declarechemgreekmappingalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarechemgreekmappingalias{${1:new mapping name}}{${2:existing mapping name}}\"\n      }\n    },\n    {\n      \"name\": \"activatechemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"activatechemgreekmapping{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"activatechemgreekmapping*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"activatechemgreekmapping*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"selectchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectchemgreekmapping{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"changechemgreeksymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"changechemgreeksymbol{${1:mapping name}}{${2:case%keyvals}}{${3:entry name}}{${4:entry}}\",\n        \"keys\": [\n          \"\\\\changechemgreeksymbol\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"printchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printchemgreekmapping{${1:mapping}}\"\n      }\n    },\n    {\n      \"name\": \"printchemgreekalphabet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showchemgreekmapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showchemgreekmapping{${1:mapping}}\"\n      }\n    },\n    {\n      \"name\": \"chemgreekmappingsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemgreekmappingsymbol{${1:mapping name}}{${2:symbol name}}\"\n      }\n    },\n    {\n      \"name\": \"chemalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chembeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemtheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemomikron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chempi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chempsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemOmikron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemOmega\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\changechemgreeksymbol\": [\n      \"upper\",\n      \"lower\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"assurechemist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bury\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bury{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdonecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cdonecell{${1:dimenA}}{${2:dimenB}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"cdtwocell\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cdtwocell{${1:dimenA}}{${2:dimenB}}{${3:content}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"ChemEqFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChemForm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemForm{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemform{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"chemistsw\"\n    },\n    {\n      \"name\": \"ChemStrut\"\n    },\n    {\n      \"name\": \"compd\"\n    },\n    {\n      \"name\": \"compdlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compdlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dbond\"\n    },\n    {\n      \"name\": \"degC\"\n    },\n    {\n      \"name\": \"degF\"\n    },\n    {\n      \"name\": \"deriv\"\n    },\n    {\n      \"name\": \"deriva\"\n    },\n    {\n      \"name\": \"derivalabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivalabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"derivlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"derivnum\"\n    },\n    {\n      \"name\": \"doublebond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlbarrowstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Equilibarrow\"\n    },\n    {\n      \"name\": \"equilibarrow\"\n    },\n    {\n      \"name\": \"Equiliblongarrow\"\n    },\n    {\n      \"name\": \"equiliblongarrow\"\n    },\n    {\n      \"name\": \"fboxit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fboxit{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftshfbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftshfbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftshframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftshframe{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lllongleftarrow\"\n    },\n    {\n      \"name\": \"lllongleftarrow\"\n    },\n    {\n      \"name\": \"lllongleftharpoondown\"\n    },\n    {\n      \"name\": \"lllongleftharpoonup\"\n    },\n    {\n      \"name\": \"Lllongleftrightarrow\"\n    },\n    {\n      \"name\": \"lllongleftrightarrow\"\n    },\n    {\n      \"name\": \"Lllongrightarrow\"\n    },\n    {\n      \"name\": \"lllongrightarrow\"\n    },\n    {\n      \"name\": \"lllongrightharpoondown\"\n    },\n    {\n      \"name\": \"lllongrightharpoonup\"\n    },\n    {\n      \"name\": \"Llongleftarrow\"\n    },\n    {\n      \"name\": \"llongleftarrow\"\n    },\n    {\n      \"name\": \"llongleftharpoondown\"\n    },\n    {\n      \"name\": \"llongleftharpoonup\"\n    },\n    {\n      \"name\": \"Llongleftrightarrow\"\n    },\n    {\n      \"name\": \"llongleftrightarrow\"\n    },\n    {\n      \"name\": \"Llongrightarrow\"\n    },\n    {\n      \"name\": \"llongrightarrow\"\n    },\n    {\n      \"name\": \"llongrightharpoondown\"\n    },\n    {\n      \"name\": \"llongrightharpoonup\"\n    },\n    {\n      \"name\": \"newchemenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newchemenvironment{${1:envname}}{${2:old envname}}\"\n      }\n    },\n    {\n      \"name\": \"nocompd\"\n    },\n    {\n      \"name\": \"nocompdlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocompdlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"noderiv\"\n    },\n    {\n      \"name\": \"noderiva\"\n    },\n    {\n      \"name\": \"noderivalabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noderivalabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"noderivlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noderivlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"reactarrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reactarrowseprate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reactdarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactdarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactDEqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactDEqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactdeqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactdeqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactdlrarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactdlrarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactduarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactduarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactEqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactEqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reacteqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reacteqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactlarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactlarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactLEqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactLEqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactleqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactleqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactlrarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactlrarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactnearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactnearrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactnwarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactnwarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactrarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactrarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactREqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactREqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactreqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactreqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactsearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactsearrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactswarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactswarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactuarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactuarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactUEqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactUEqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactueqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactueqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactulrarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactulrarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactVEqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactVEqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"reactveqarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reactveqarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"rightshfbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightshfbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightshframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightshframe{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"schemelarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"schemelarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"schemelrarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"schemelrarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"schemerarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"schemerarrow{${1:shift}}{${2:length}}{${3:above}}{${4:below}}\"\n      }\n    },\n    {\n      \"name\": \"tbond\"\n    },\n    {\n      \"name\": \"tboxtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecompd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triplebond\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ChemEqnarray\"\n    },\n    {\n      \"name\": \"ChemEqnarray*\"\n    },\n    {\n      \"name\": \"ChemEquation\"\n    },\n    {\n      \"name\": \"XyMcompd\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"(${3:width},${4:height})(${5:xshift},${6:yshift}){${1:refkey%labeldef}}{${2:subkey}}\"\n      }\n    },\n    {\n      \"name\": \"XyMtab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"chemeqn\"\n    },\n    {\n      \"name\": \"chemeqnarray\"\n    },\n    {\n      \"name\": \"chemeqnarraya\"\n    },\n    {\n      \"name\": \"chemmath\"\n    },\n    {\n      \"name\": \"frameboxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"glshfboxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"grshfboxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"lshfboxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"miniscreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"rshfboxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"screen\"\n    },\n    {\n      \"name\": \"tboxminiscreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tboxscreen\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chemist#c\": [\n      \"chemtimes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemmacros.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"chemformula\"\n    },\n    {\n      \"name\": \"chemgreek\"\n    },\n    {\n      \"name\": \"elements\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"chemnum\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"xfrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chemsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chemsetup#c\",\n          \"\\\\newman#c,\\\\chemsetup#c\",\n          \"\\\\orbital#c,\\\\chemsetup#c\",\n          \"\\\\makepolymerdelims#c,\\\\chemsetup#c\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\ox#c,\\\\ox*#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chemsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chemsetup[${2:module}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chemsetup#c\",\n          \"\\\\newman#c,\\\\chemsetup#c\",\n          \"\\\\orbital#c,\\\\chemsetup#c\",\n          \"\\\\makepolymerdelims#c,\\\\chemsetup#c\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\ox#c,\\\\ox*#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pH\"\n    },\n    {\n      \"name\": \"pOH\"\n    },\n    {\n      \"name\": \"Ka\"\n    },\n    {\n      \"name\": \"Kb\"\n    },\n    {\n      \"name\": \"Kw\"\n    },\n    {\n      \"name\": \"pKa\"\n    },\n    {\n      \"name\": \"pKa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pKa[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"pKb\"\n    },\n    {\n      \"name\": \"pKb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pKb[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"p\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"p{${1:anything}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemEqConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewChemEqConstant{${1:cmd}}{${2:name}}{${3:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemEqConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewChemEqConstant{${1:cmd}}{${2:name}}{${3:default appearance}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemEqConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareChemEqConstant{${1:cmd}}{${2:name}}{${3:default appearance}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemEqConstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideChemEqConstant{${1:cmd}}{${2:name}}{${3:default appearance}}\"\n      }\n    },\n    {\n      \"name\": \"fplus\"\n    },\n    {\n      \"name\": \"fminus\"\n    },\n    {\n      \"name\": \"scrp\"\n    },\n    {\n      \"name\": \"scrm\"\n    },\n    {\n      \"name\": \"fscrp\"\n    },\n    {\n      \"name\": \"fscrm\"\n    },\n    {\n      \"name\": \"fsscrp\"\n    },\n    {\n      \"name\": \"fsscrm\"\n    },\n    {\n      \"name\": \"pch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pch[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"mch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mch[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"fpch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fpch[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"fmch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fmch[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"delp\"\n    },\n    {\n      \"name\": \"delm\"\n    },\n    {\n      \"name\": \"fdelp\"\n    },\n    {\n      \"name\": \"fdelm\"\n    },\n    {\n      \"name\": \"NewChemCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemPartialCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemPartialCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemPartialCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemPartialCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemPartialCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemPartialCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemPartialCharge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemPartialCharge{${1:cmd}}{${2:charge symbol}}\"\n      }\n    },\n    {\n      \"name\": \"iupac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iupac{${1:IUPAC name}}\"\n      }\n    },\n    {\n      \"name\": \"chemprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonbreakinghyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogen\"\n    },\n    {\n      \"name\": \"H\"\n    },\n    {\n      \"name\": \"oxygen\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"nitrogen\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"sulfur\"\n    },\n    {\n      \"name\": \"Sf\"\n    },\n    {\n      \"name\": \"phosphorus\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"cip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cip{${1:conformation}}\"\n      }\n    },\n    {\n      \"name\": \"rectus\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"sinister\"\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"dexter\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"laevus\"\n    },\n    {\n      \"name\": \"L\"\n    },\n    {\n      \"name\": \"cis\"\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"fac\"\n    },\n    {\n      \"name\": \"mer\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"ter\"\n    },\n    {\n      \"name\": \"zusammen\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"entgegen\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"syn\"\n    },\n    {\n      \"name\": \"anti\"\n    },\n    {\n      \"name\": \"tert\"\n    },\n    {\n      \"name\": \"ortho\"\n    },\n    {\n      \"name\": \"meta\"\n    },\n    {\n      \"name\": \"para\"\n    },\n    {\n      \"name\": \"Rconf\"\n    },\n    {\n      \"name\": \"Rconf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Rconf[${1:letter}]\"\n      }\n    },\n    {\n      \"name\": \"Sconf\"\n    },\n    {\n      \"name\": \"Sconf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sconf[${1:letter}]\"\n      }\n    },\n    {\n      \"name\": \"bridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bridge{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hapto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hapto{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dento{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latin{${1:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"latin[${2:options%keyvals}]{${1:phrase}}\",\n        \"keys\": [\n          \"\\\\latin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insitu\"\n    },\n    {\n      \"name\": \"invacuo\"\n    },\n    {\n      \"name\": \"abinitio\"\n    },\n    {\n      \"name\": \"NewChemIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemIUPAC{${1:cmd}}{${2:declaration}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemIUPAC{${1:cmd}}{${2:declaration}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemIUPAC{${1:cmd}}{${2:declaration}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemIUPAC{${1:cmd}}{${2:declaration}}\"\n      }\n    },\n    {\n      \"name\": \"LetChemIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetChemIUPAC{${1:cmd1%cmd}}{${2:cmd2}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemIUPACShorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemIUPACShorthand{${1:shorthand token}}{${2:cs}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemIUPACShorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemIUPACShorthand{${1:shorthand token}}{${2:cs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemIUPACShorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemIUPACShorthand{${1:shorthand token}}{${2:cs}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemIUPACShorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemIUPACShorthand{${1:shorthand token}}{${2:cs}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveChemIUPACShorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveChemIUPACShorthand{${1:shorthand token}}{${2:cs}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemLatin{${1:cmd}}{${2:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemLatin{${1:cmd}}{${2:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemLatin{${1:cmd}}{${2:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemLatin{${1:cmd}}{${2:phrase}}\"\n      }\n    },\n    {\n      \"name\": \"el\"\n    },\n    {\n      \"name\": \"prt\"\n    },\n    {\n      \"name\": \"ntr\"\n    },\n    {\n      \"name\": \"Hyd\"\n    },\n    {\n      \"name\": \"Oxo\"\n    },\n    {\n      \"name\": \"water\"\n    },\n    {\n      \"name\": \"El\"\n    },\n    {\n      \"name\": \"Nuc\"\n    },\n    {\n      \"name\": \"ba\"\n    },\n    {\n      \"name\": \"NewChemParticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemParticle{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemParticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemParticle{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemParticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemParticle{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemParticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemParticle{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemNucleophile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemNucleophile{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemNucleophile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemNucleophile{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemNucleophile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemNucleophile{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemNucleophile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemNucleophile{${1:cmd}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sld\"\n    },\n    {\n      \"name\": \"lqd\"\n    },\n    {\n      \"name\": \"gas\"\n    },\n    {\n      \"name\": \"aq\"\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phase{${1:phase}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemPhase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemPhase{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemPhase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemPhase{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemPhase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemPhase{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemPhase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemPhase{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"transitionstatesymbol\"\n    },\n    {\n      \"name\": \"standardstate\"\n    },\n    {\n      \"name\": \"changestate\"\n    },\n    {\n      \"name\": \"isotope\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isotope{${1:isotope}}\"\n      }\n    },\n    {\n      \"name\": \"isotope*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isotope*{${1:isotope}}\"\n      }\n    },\n    {\n      \"name\": \"mech\"\n    },\n    {\n      \"name\": \"mech\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mech[${1:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\mech\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newman{${1:part-list}}\"\n      }\n    },\n    {\n      \"name\": \"newman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newman[${2:options%keyvals}]{${1:part-list}}\",\n        \"keys\": [\n          \"\\\\newman#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newman\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"newman[${2:options%keyvals}](${3:angle}){${1:part-list}}\",\n        \"keys\": [\n          \"\\\\newman#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"orbital\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orbital{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"orbital\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"orbital[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\orbital#c\",\n          \"\\\\orbital#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"copolymer\"\n    },\n    {\n      \"name\": \"statistical\"\n    },\n    {\n      \"name\": \"random\"\n    },\n    {\n      \"name\": \"alternating\"\n    },\n    {\n      \"name\": \"periodic\"\n    },\n    {\n      \"name\": \"block\"\n    },\n    {\n      \"name\": \"graft\"\n    },\n    {\n      \"name\": \"blend\"\n    },\n    {\n      \"name\": \"comb\"\n    },\n    {\n      \"name\": \"complex\"\n    },\n    {\n      \"name\": \"cyclic\"\n    },\n    {\n      \"name\": \"branch\"\n    },\n    {\n      \"name\": \"network\"\n    },\n    {\n      \"name\": \"ipnetwork\"\n    },\n    {\n      \"name\": \"sipnetwork\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"makepolymerdelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makepolymerdelims{${1:height}}{${2:opening node}}{${3:closing node}}\"\n      }\n    },\n    {\n      \"name\": \"makepolymerdelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"makepolymerdelims[${4:options%keyvals}]{${1:height}}{${2:opening node}}[${5:depth}]{${3:closing node}}\",\n        \"keys\": [\n          \"\\\\makepolymerdelims#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddRxnDesc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddRxnDesc{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"listofreactions\"\n    },\n    {\n      \"name\": \"NewChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemReaction{${1:envname}}{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewChemReaction{${1:envname}}[${3:args}]{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemReaction{${1:envname}}{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"RenewChemReaction{${1:envname}}[${3:args}]{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemReaction{${1:envname}}{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareChemReaction{${1:envname}}[${3:args}]{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemReaction{${1:envname}}{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemReaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ProvideChemReaction{${1:envname}}[${3:args}]{${2:math envname}}\"\n      }\n    },\n    {\n      \"name\": \"reactionlistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareChemReactant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemReactant{${1:ID}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareChemReactant\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"reactant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reactant{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"reactant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reactant[${2:data and units%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\reactant,\\\\reactant+,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reactantplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reactantplain{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"submainreactantplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"submainreactantplain{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"Reactant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reactant{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"Reactant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Reactant[${2:data and units%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\reactant,\\\\reactant+,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Reactantplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reactantplain{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"Submainreactantplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Submainreactantplain{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"solvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solvent{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"solvent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"solvent[${2:data and units%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\reactant,\\\\reactant+,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solventplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solventplain{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"Solventplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Solventplain{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"Solvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Solvent{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"Solvent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Solvent[${2:data and units%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\reactant,\\\\reactant+,\\\\Reactant,\\\\solvent,\\\\Solvent\",\n          \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printreactants\"\n    },\n    {\n      \"name\": \"printreactants*\"\n    },\n    {\n      \"name\": \"reactants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reactants{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"reactantl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reactantl{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"solvents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solvents{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"solventl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solventl{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"ox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ox{${1:number,atom}}\"\n      }\n    },\n    {\n      \"name\": \"ox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ox[${2:options}]{${1:number,atom}}\",\n        \"keys\": [\n          \"\\\\ox#c,\\\\ox*#c\",\n          \"\\\\ox#c,\\\\ox*#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ox*{${1:number,atom}}\"\n      }\n    },\n    {\n      \"name\": \"ox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ox*[${2:options}]{${1:number,atom}}\",\n        \"keys\": [\n          \"\\\\ox#c,\\\\ox*#c\",\n          \"\\\\ox#c,\\\\ox*#c,\\\\chemsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"OX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OX{${1:name,atom}}\"\n      }\n    },\n    {\n      \"name\": \"redox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"redox(${2:%<name1%>},${3:%<name2%>}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"redox\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"redox(${3:%<name1%>},${4:%<name2%>})[${2:TikZ-options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"redox\",\n      \"arg\": {\n        \"format\": \"()[][]{}\",\n        \"snippet\": \"redox(${4:%<name1%>},${5:%<name2%>})[${2:TikZ-options}][${3:vertical-factor}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listschemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofschemes\"\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"NMR{${1:isotope,element}}(${3:%<frequency%>},${4:%<freq. unit%>})[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"NMR{${1:isotope,element}}(${3:%<frequency%>})[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"NMR{${1:isotope,element}}(${2:%<frequency%>},${3:%<freq. unit%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"NMR{${1:isotope,element}}(${2:%<frequency%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NMR{${1:isotope,element}}\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NMR{${1:isotope,element}}[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"NMR(${2:%<frequency%>},${3:%<freq. unit%>})[${1:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"NMR(${2:%<frequency%>})[${1:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"NMR(${1:%<frequency%>},${2:%<freq. unit%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"NMR(${1:%<frequency%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR\"\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"NMR*{${1:isotope,element}}(${3:%<frequency%>},${4:%<freq. unit%>})[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"NMR*{${1:isotope,element}}(${3:%<frequency%>})[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"NMR*{${1:isotope,element}}(${2:%<frequency%>},${3:%<freq. unit%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"NMR*{${1:isotope,element}}(${2:%<frequency%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NMR*{${1:isotope,element}}\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NMR*{${1:isotope,element}}[${2:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"NMR*(${2:%<frequency%>},${3:%<freq. unit%>})[${1:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"NMR*(${2:%<frequency%>})[${1:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"NMR*(${1:%<frequency%>},${2:%<freq. unit%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"NMR*(${1:%<frequency%>})\"\n      }\n    },\n    {\n      \"name\": \"NMR*\"\n    },\n    {\n      \"name\": \"data\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"data{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"data\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"data{${1:type}}[${2:specification}]\"\n      }\n    },\n    {\n      \"name\": \"data*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"data*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"data*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"data*{${1:type}}[${2:specification}]\"\n      }\n    },\n    {\n      \"name\": \"NMR\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"NMR{${1:isotope,element[${2:coupling cores}]}}(${4:%<frequency%>},${5:%<freq. unit%>})[${3:solvent}]\"\n      }\n    },\n    {\n      \"name\": \"J\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"J(${3:%<bonds%>;%<nuclei%>})[${2:unit}]{${1:num-list}}\"\n      }\n    },\n    {\n      \"name\": \"J\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"J(${2:%<bonds%>;%<nuclei%>}){${1:num-list}}\"\n      }\n    },\n    {\n      \"name\": \"J\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"J[${2:unit}]{${1:num-list}}\"\n      }\n    },\n    {\n      \"name\": \"J\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"J{${1:num-list}}\"\n      }\n    },\n    {\n      \"name\": \"\"\n    },\n    {\n      \"name\": \"pos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"val\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"val{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"val\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"val{${1:num1--num2}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemNMR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemNMR{${1:cmd}}{${2:isotope,atom}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemNMR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemNMR{${1:cmd}}{${2:isotope,atom}}\"\n      }\n    },\n    {\n      \"name\": \"RenewChemNMR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemNMR{${1:cmd}}{${2:isotope,atom}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideChemNMR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemNMR{${1:cmd}}{${2:isotope,atom}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"state[${2:options%keyvals}]{${1:symbol}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enthalpy\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"enthalpy[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enthalpy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enthalpy[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enthalpy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"enthalpy(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"enthalpy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enthalpy{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"enthalpy*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"enthalpy*[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enthalpy*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enthalpy*[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enthalpy*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"enthalpy*(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"enthalpy*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enthalpy*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"entropy\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"entropy[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"entropy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"entropy[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"entropy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"entropy(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"entropy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropy{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"entropy*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"entropy*[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"entropy*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"entropy*[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"entropy*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"entropy*(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"entropy*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropy*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"gibbs\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"gibbs[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gibbs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gibbs[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gibbs\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gibbs(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"gibbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gibbs{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"gibbs*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"gibbs*[${2:options%keyvals}](${3:subscript}){${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gibbs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gibbs*[${2:options%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gibbs*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gibbs*(${2:subscript}){${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"gibbs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gibbs*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChemState{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RenewChemState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewChemState{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareChemState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemState{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ProvideChemState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideChemState{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\",\n          \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"atmosphere\"\n    },\n    {\n      \"name\": \"atm\"\n    },\n    {\n      \"name\": \"calory\"\n    },\n    {\n      \"name\": \"cal\"\n    },\n    {\n      \"name\": \"cmc\"\n    },\n    {\n      \"name\": \"molar\"\n    },\n    {\n      \"name\": \"moLar\"\n    },\n    {\n      \"name\": \"Molar\"\n    },\n    {\n      \"name\": \"MolMass\"\n    },\n    {\n      \"name\": \"normal\"\n    },\n    {\n      \"name\": \"torr\"\n    },\n    {\n      \"name\": \"angstrom\"\n    },\n    {\n      \"name\": \"atomicmassunit\"\n    },\n    {\n      \"name\": \"bar\",\n      \"detail\": \" ̄\",\n      \"doc\": \"Macron\"\n    },\n    {\n      \"name\": \"elementarycharge\"\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"NewChemMacroset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewChemMacroset{${1:name}}{${2:arg spec}}{${3:internal command call}}\"\n      }\n    },\n    {\n      \"name\": \"NewChemMacroset*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewChemMacroset*{${1:name}}{${2:arg spec}}{${3:internal command call}}\"\n      }\n    },\n    {\n      \"name\": \"ChemCleverefSupport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ChemCleverefSupport{${1:counter}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"ChemCleverefSupport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"ChemCleverefSupport{${1:counter}}{${2:singular}}[${4:uppercase singular}]{${3:plural}}[${5:uppercase plural}]\"\n      }\n    },\n    {\n      \"name\": \"ChemFancyrefSupport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChemFancyrefSupport{${1:prefix}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ChemFancyrefSupport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ChemFancyrefSupport{${1:prefix}}{${2:name}}[${3:uppercase name}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareChemTranslation{${1:key%plain}}{${2:language}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChemTranslations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareChemTranslations{${1:key%plain}}{${2:language=translation,...}}\"\n      }\n    },\n    {\n      \"name\": \"AddChemTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddChemTranslation{${1:language}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"AddChemTranslations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddChemTranslations{${1:language}}{${2:key=translation,...}}\"\n      }\n    },\n    {\n      \"name\": \"ChemTranslate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemTranslate{${1:translation key}}\"\n      }\n    },\n    {\n      \"name\": \"chemfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"chemfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chemfrac[${3:type%keyvals}]{${1:numerator}}{${2:denominator}}\",\n        \"keys\": [\n          \"\\\\chemfrac\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemStyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ChemStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ChemStyle{${1:name}}[${2:version description%text}]\"\n      }\n    },\n    {\n      \"name\": \"ChemStyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemStyle*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ChemStyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ChemStyle*{${1:name}}[${2:version description%text}]\"\n      }\n    },\n    {\n      \"name\": \"usechemstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usechemstyle{${1:list of styles}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"reaction\"\n    },\n    {\n      \"name\": \"reaction*\"\n    },\n    {\n      \"name\": \"reactions\"\n    },\n    {\n      \"name\": \"reactions*\"\n    },\n    {\n      \"name\": \"scheme\"\n    },\n    {\n      \"name\": \"experimental\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chemmacros#c\": [\n      \"minimal\",\n      \"modules={${1:list of modules}}\"\n    ],\n    \"\\\\chemsetup#c\": [\n      \"p-style=${1|italics,slanted,upright|}\",\n      \"K-acid={${1:text}}\",\n      \"K-base={${1:text}}\",\n      \"K-water={${1:text}}\",\n      \"eq-constant={${1:text}}\",\n      \"circled=${1|formal,all,none|}\",\n      \"circletype=${1|chem,math|}\",\n      \"partial-format={${1:LaTeX code}}\",\n      \"hyphen-pre-space\",\n      \"hyphen-post-space\",\n      \"break-space\",\n      \"iupac=${1|auto,restricted,strict|}\",\n      \"iupac-format={${1:definition}}\",\n      \"cip-kern=\",\n      \"cip-outer-format={${1:format}}\",\n      \"cip-inner-format={${1:format}}\",\n      \"cip-number-format={${1:format}}\",\n      \"bridge-number=${1|sub,super|}\",\n      \"coord-use-hyphen\",\n      \"latin-format={${1:definition}}\",\n      \"elpair=${1|dots,dash,false|}\",\n      \"space=\",\n      \"pos=${1|side,sub|}\",\n      \"formula=${1|chemformula,mhchem,chemist,chemfig|}\",\n      \"format={${1:format}}\",\n      \"greek={${1:mapping}}\",\n      \"side-connect={${1:input}}\",\n      \"tag-open={${1:left delim}}\",\n      \"tag-close={${1:right delim}}\",\n      \"before-tag={${1:format}}\",\n      \"own-counter\",\n      \"autoref-name={${1:name}}\",\n      \"list-name=\",\n      \"list-entry={${1:prefix}}\",\n      \"list-heading-cmd={${1:code}}\",\n      \"initiate\",\n      \"switch\",\n      \"reactant-output-style=${1|name-main-other,main-name-other,main-other-name|}\",\n      \"solvent-output-style=${1|main-name,name-main|}\",\n      \"main=${1|default,amount,equiv|}\",\n      \"equivalents\",\n      \"acronym-support=${1|acro,glossaries,none|}\",\n      \"printreactants-style=${1|xltabular,longtable,none|}\",\n      \"dist=\",\n      \"sep=\",\n      \"float-method=${1|KOMA,memoir,tocbasic,newfloat,floatrow,float,traditional|}\",\n      \"unit=${1:unit}\",\n      \"nucleus={${1:num},${2:atom}}\",\n      \"connector={${1:code}}\",\n      \"method={${1:code}}\",\n      \"nmr-base-format={${1:commands}}\",\n      \"pos-number=${1|side,sub,super|}\",\n      \"coupling-symbol={${1:code}}\",\n      \"coupling-unit=${1:unit}\",\n      \"coupling-pos=${1|side,sub|}\",\n      \"coupling-nuclei-pre={${1:code}}\",\n      \"coupling-nuclei-post={${1:code}}\",\n      \"coupling-bonds-pre={${1:code}}\",\n      \"coupling-bonds-post={${1:code}}\",\n      \"coupling-pos-cs={${1:cmd}}\",\n      \"atom-number-cs={${1:cmd}}\",\n      \"atom-number-space=\",\n      \"delta={${1:tokens}}\",\n      \"list\",\n      \"list-setup={${1:setup}}\",\n      \"use-equal\",\n      \"language=${2|auto,${1:language}|}\"\n    ],\n    \"\\\\latin#c\": [\n      \"format={${1:format}}\"\n    ],\n    \"\\\\mech\": [\n      \"1\",\n      \"2\",\n      \"se\",\n      \"1e\",\n      \"2e\",\n      \"ar\",\n      \"e\",\n      \"e1\",\n      \"e2\",\n      \"cb\"\n    ],\n    \"\\\\newman#c,\\\\chemsetup#c\": [\n      \"angle=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"ring={${1:TikZ options}}\",\n      \"atoms={${1:TikZ options}}\",\n      \"back-atoms={${1:TikZ options}}\"\n    ],\n    \"\\\\orbital#c\": [\n      \"scale=${1:factor}\",\n      \"angle=${1:degrees}\"\n    ],\n    \"\\\\orbital#c,\\\\chemsetup#c\": [\n      \"phase=${1|+,-|}\",\n      \"color=\",\n      \"half\",\n      \"overlay\",\n      \"opacity=${1:number}\"\n    ],\n    \"\\\\makepolymerdelims#c,\\\\chemsetup#c\": [\n      \"delimiters={${1:<left><right>}}\",\n      \"subscript=\",\n      \"superscript=\"\n    ],\n    \"\\\\DeclareChemReactant\": [\n      \"name=${1:name}\",\n      \"short=${1:abbreviation}\",\n      \"bookmark=${1:text}\",\n      \"upper-name=${1:uppercase name}\",\n      \"upper-bookmark=${1:uppercase text}\"\n    ],\n    \"\\\\reactant,\\\\reactant+,\\\\Reactant,\\\\solvent,\\\\Solvent\": [\n      \"mass=${1:number}\",\n      \"volume=${1:number}\",\n      \"fraction=${1:number}\",\n      \"amount=${1:number}\",\n      \"equiv=${1:number}\",\n      \"purity=${1:number}\",\n      \"concentration=${1:number}\",\n      \"solvent=${1:number}\"\n    ],\n    \"\\\\chemsetup#c,\\\\reactant,\\\\Reactant,\\\\solvent,\\\\Solvent\": [\n      \"mass-unit=${1:unit}\",\n      \"volume-unit=${1:unit}\",\n      \"fraction-unit=${1:unit}\",\n      \"amount-unit=${1:unit}\",\n      \"equiv-unit=${1:unit}\",\n      \"concentration-unit=${1:unit}\",\n      \"purity-unit=${1:unit}\"\n    ],\n    \"\\\\ox#c,\\\\ox*#c\": [\n      \"format={${1:code}}\",\n      \"pos=${1|top,super,side|}\",\n      \"side-connect={${1:code}}\"\n    ],\n    \"\\\\ox#c,\\\\ox*#c,\\\\chemsetup#c\": [\n      \"parse\",\n      \"roman\",\n      \"explicit-sign\",\n      \"decimal-marker=${1|comma,point|}\",\n      \"align=${1|center,right|}\",\n      \"text-frac=${1:cmd}\",\n      \"super-frac=${1:cmd}\"\n    ],\n    \"\\\\state,\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\": [\n      \"pre={${1:text}}\",\n      \"post={${1:text}}\",\n      \"superscript-left={${1:text}}\",\n      \"superscript-right={${1:text}}\",\n      \"superscript={${1:text}}\",\n      \"subscript-left={${1:text}}\",\n      \"subscript-right={${1:text}}\",\n      \"subscript={${1:text}}\"\n    ],\n    \"\\\\enthalpy,\\\\enthalpy*,\\\\entropy,\\\\entropy*,\\\\gibbs,\\\\gibbs*,\\\\NewChemState,\\\\RenewChemState,\\\\DeclareChemState,\\\\ProvideChemState\": [\n      \"subscript-pos=${1|left,right|}\",\n      \"symbol=\",\n      \"unit=\"\n    ],\n    \"\\\\chemfrac\": [\n      \"text\",\n      \"superscript\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemmacros#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"chemgreek\"\n    },\n    {\n      \"name\": \"psfrag\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpd{${1:IDs}}\"\n      }\n    },\n    {\n      \"name\": \"cmpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmpd[${2:options%keyvals}]{${1:IDs}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cmpd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpd*{${1:IDs}}\"\n      }\n    },\n    {\n      \"name\": \"cmpd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmpd*[${2:options%keyvals}]{${1:IDs}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refcmpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refcmpd{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"refcmpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refcmpd[${2:options%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"labelcmpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelcmpd{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"labelcmpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"labelcmpd[${2:options%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"replacecmpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"replacecmpd{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"replacecmpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"replacecmpd[${2:options%keyvals}]{${1:ID}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\replacecmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"initcmpd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initcmpd{${1:IDs}}\"\n      }\n    },\n    {\n      \"name\": \"initcmpd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"initcmpd[${2:options%keyvals}]{${1:IDs}}\",\n        \"keys\": [\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\",\n          \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cmpdplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdplain{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"subcmpdplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcmpdplain{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"submaincmpdplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"submaincmpdplain{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"cmpdproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmpdproperty{${1:ID}}{${2:property}}\"\n      }\n    },\n    {\n      \"name\": \"subcmpdproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subcmpdproperty{${1:main ID}}{${2:sub ID}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"newcmpdcounterformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcmpdcounterformat{${1:name}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"resetcmpd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcmpd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetcmpd[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"cmpdshowdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdshowdef{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"cmpdshowref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdshowref{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"subcmpdshowdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcmpdshowdef{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"subcmpdshowref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcmpdshowref{${1:main ID}}{${2:sub ID}}\"\n      }\n    },\n    {\n      \"name\": \"setcmpdproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setcmpdproperty{${1:property}}{${2:main ID}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"setcmpdlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcmpdlabel{${1:main ID}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"chemnumshowdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemnumshowdef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"chemnumshowref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemnumshowref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmpdprintlabelid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdprintlabelid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmpdshowlabelmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdshowlabelmargin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmpdshowlabelinline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpdshowlabelinline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thecmpdmain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setchemnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchemnum{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setchemnum\",\n          \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setchemnum\": [\n      \"counter-within=${1:counter}\",\n      \"replace-auto\",\n      \"replace-tag=${1:text}\",\n      \"replace-tag-nr=${1:integer}\",\n      \"replace-style={${1:code}}\",\n      \"replace-pos={${1:TeX pos}}{${2:PS pos}}\",\n      \"init=${1|true,main,false,strict,main-strict|}\",\n      \"log=${1|true,false,silent,verbose|}\",\n      \"show-keys=${1|true,false,def,ref|}\",\n      \"hyperlinks\",\n      \"\"\n    ],\n    \"\\\\setchemnum,\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\": [\n      \"counter-format=${1|arabic,alph,Alph,roman,Roman,greek,Greek|}\",\n      \"sub-counter-format=${1|arabic,alph,Alph,roman,Roman,greek,Greek|}\",\n      \"compress\",\n      \"merge\",\n      \"pre-label-code={${1:code}}\",\n      \"post-label-code={${1:code}}\",\n      \"pre-main-label-code={${1:code}}\",\n      \"post-main-label-code={${1:code}}\",\n      \"main-sub-sep={${1:token}}\",\n      \"format={${1:formatting commands}}\",\n      \"list-label-sep={${1:token}}\",\n      \"sub-list-label-sep={${1:token}}\",\n      \"list-sep-two={${1:code}}\",\n      \"list-sep-more={${1:code}}\",\n      \"list-sep-last-two={${1:code}}\",\n      \"sub-list-sep-two={${1:code}}\",\n      \"sub-list-sep-more={${1:code}}\",\n      \"sub-list-sep-last-two={${1:code}}\",\n      \"sub-list-sep-range={${1:code}}\"\n    ],\n    \"\\\\cmpd,\\\\cmpd*,\\\\cmpd+,\\\\refcmpd,\\\\labelcmpd,\\\\replacecmpd,\\\\replacecmpd+,\\\\initcmpd\": [\n      \"sub-only\",\n      \"sub-all\"\n    ],\n    \"\\\\replacecmpd\": [\n      \"tag=${1:text}\",\n      \"style={${1:code}}\",\n      \"pos={${1:TeX pos}}{${2:PS pos}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemobabel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chemobabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemobabel{${1:imagefile}}{${2:obabel options}}\"\n      }\n    },\n    {\n      \"name\": \"chemobabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chemobabel[${3:options%keyvals}]{${1:imagefile}}{${2:obabel options}}\",\n        \"keys\": [\n          \"\\\\chemobabel,\\\\chemobabel*,\\\\smilesobabel,\\\\smilesobabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chemobabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemobabel*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"chemobabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chemobabel*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\chemobabel,\\\\chemobabel*,\\\\smilesobabel,\\\\smilesobabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smilesobabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smilesobabel{${1:SMILES notation%definition}}{${2:obabel options}}\"\n      }\n    },\n    {\n      \"name\": \"smilesobabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"smilesobabel[${3:options%keyvals}]{${1:SMILES notation%definition}}{${2:obabel options}}\",\n        \"keys\": [\n          \"\\\\chemobabel,\\\\chemobabel*,\\\\smilesobabel,\\\\smilesobabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smilesobabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smilesobabel*{${1:SMILES notation%definition}}\"\n      }\n    },\n    {\n      \"name\": \"smilesobabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smilesobabel*[${2:options%keyvals}]{${1:SMILES notation%definition}}\",\n        \"keys\": [\n          \"\\\\chemobabel,\\\\chemobabel*,\\\\smilesobabel,\\\\smilesobabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chemobabelimgdir\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemobabel#c\": [\n      \"extract\",\n      \"pdf\",\n      \"eps\",\n      \"inkscape-old\",\n      \"inkscape\",\n      \"librsvg\",\n      \"nocrop\"\n    ],\n    \"\\\\chemobabel,\\\\chemobabel*,\\\\smilesobabel,\\\\smilesobabel*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemobabel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemplants.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibraryhobby\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measure{${1:(${4:x1},${5:y1})}}{${2:(${6:x2},${7:y2})}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measure[${4:anchor spec}]{${1:(${5:x1},${6:y1})}}{${2:(${7:x2},${8:y2})}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"setchpblockfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpblockfontsize{${1:fontsize%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpblockscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpblockscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setchpblockthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpblockthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchphiddencomponentstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchphiddencomponentstyle{${1:line pattern}}\"\n      }\n    },\n    {\n      \"name\": \"setchphiddenstreamstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchphiddenstreamstyle{${1:line pattern}}\"\n      }\n    },\n    {\n      \"name\": \"setchpinstrumentfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpinstrumentfontsize{${1:fontsize%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpinstrumentscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpinstrumentscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setchpinstrumentthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpinstrumentthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpmainstreamthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpmainstreamthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpmeasurecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpmeasurecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setchpmeasurefontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpmeasurefontsize{${1:fontsize%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpmeasurethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpmeasurethickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpmeasuretip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpmeasuretip{${1:line tip}}\"\n      }\n    },\n    {\n      \"name\": \"setchpsecondarystreamthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpsecondarystreamthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpsignalthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpsignalthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchpstreamtip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpstreamtip{${1:arrow tip}}\"\n      }\n    },\n    {\n      \"name\": \"setchpunitscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpunitscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setchpunitthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchpunitthickness{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"setchputilitystreamthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchputilitystreamthickness{${1:thickness%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\draw#c\": [\n      \"main stream\",\n      \"secondary stream\",\n      \"utility stream\",\n      \"hidden stream\",\n      \"signal\",\n      \"short signal\"\n    ],\n    \"\\\\pic#c\": [\n      \"hidden component\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemscheme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"psfrag\"\n    },\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"chemcompounds\"\n    },\n    {\n      \"name\": \"bpchem\",\n      \"if\": \"bpchem\"\n    },\n    {\n      \"name\": \"bpchem\",\n      \"if\": \"tracking=bpchem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"schemerefsub\",\n      \"if\": \"bpchem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"schemerefsub{${1:label%keyvals}}{${2:sublabel}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c,\\\\schemerefsub#c,\\\\chemschemerefsub#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"schemerefsub\",\n      \"if\": \"bpchem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"schemerefsub[${3:marker}]{${1:label%keyvals}}{${2:sublabel}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c,\\\\schemerefsub#c,\\\\chemschemerefsub#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chemschemerefsub\",\n      \"if\": \"bpchem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chemschemerefsub{${1:marker}}{${2:label%keyvals}}{${3:sublabel}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c,\\\\schemerefsub#c,\\\\chemschemerefsub#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"schemerefsub\",\n      \"if\": \"tracking=bpchem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"schemerefsub{${1:label}}{${2:sublabel}}\"\n      }\n    },\n    {\n      \"name\": \"schemerefsub\",\n      \"if\": \"tracking=bpchem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"schemerefsub[${3:marker}]{${1:label}}{${2:sublabel}}\"\n      }\n    },\n    {\n      \"name\": \"chemschemerefsub\",\n      \"if\": \"tracking=bpchem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chemschemerefsub{${1:marker}}{${2:label}}{${3:sublabel}}\"\n      }\n    },\n    {\n      \"name\": \"schemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofschemes\"\n    },\n    {\n      \"name\": \"listschemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schemeref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schemeref{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"schemeref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"schemeref[${2:marker}]{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chemschemeref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chemschemeref{${1:marker}}{${2:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\schemeref#c,\\\\chemschemeref#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"schemerefmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schemerefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcontentscenter\"\n    },\n    {\n      \"name\": \"floatcontentscentre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcontentsleft\"\n    },\n    {\n      \"name\": \"floatcontentsright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scheme\"\n    },\n    {\n      \"name\": \"scheme\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chemscheme#c\": [\n      \"chemcompounds\",\n      \"bpchem\",\n      \"floatrow\",\n      \"tracking=${1|bpchem,chemcompounds|}\",\n      \"floats=${1|float,floatrow,memoir|}\"\n    ],\n    \"\\\\schemeref#c,\\\\chemschemeref#c,\\\\schemerefsub#c,\\\\chemschemerefsub#c\": [\n      \"%bpchemlabel\",\n      \"%bpchemlabel\"\n    ],\n    \"\\\\schemeref#c,\\\\chemschemeref#c\": [\n      \"%compound\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemscheme#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemschemex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"fancylabel\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"customstruct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"customstruct{${1:caption%text}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"customstruct\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"customstruct[${3:capt TikZ keys}]{${1:caption%text}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"customstruct\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"customstruct[${3:capt TikZ keys}][${4:obj TikZ keys}]{${1:caption%text}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"CSXimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSXimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"CSXimage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CSXimage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"struct{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"struct[${2:caption%text}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"struct[${2:caption%text}][${3:family}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"struct[${2:caption%text}][${3:family}][${4:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"struct[${2:caption%text}][${3:family}][${4:options%keyvals}][${5:capt TikZ keys}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"struct\",\n      \"arg\": {\n        \"format\": \"[][][][][]{}\",\n        \"snippet\": \"struct[${2:caption%text}][${3:family}][${4:options%keyvals}][${5:capt TikZ keys}][${6:obj TikZ keys}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"struct*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"struct*[${2:caption%text}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"struct*[${2:caption%text}][${3:family}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"struct*[${2:caption%text}][${3:family}][${4:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"struct*[${2:caption%text}][${3:family}][${4:options%keyvals}][${5:capt TikZ keys}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"struct*\",\n      \"arg\": {\n        \"format\": \"[][][][][]{}\",\n        \"snippet\": \"struct*[${2:caption%text}][${3:family}][${4:options%keyvals}][${5:capt TikZ keys}][${6:obj TikZ keys}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"structalt{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"structalt[${3:caption%text}]{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"structalt[${3:caption%text}][${4:family}]{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"structalt[${3:caption%text}][${4:family}][${5:options%keyvals}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"structalt[${3:caption%text}][${4:family}][${5:options%keyvals}][${6:capt TikZ keys}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt\",\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}\",\n        \"snippet\": \"structalt[${3:caption%text}][${4:family}][${5:options%keyvals}][${6:capt TikZ keys}][${7:obj TikZ keys}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"structalt*{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"structalt*[${3:caption%text}]{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"structalt*[${3:caption%text}][${4:family}]{${1:imagefile}}{${2:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"structalt*[${3:caption%text}][${4:family}][${5:options%keyvals}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"structalt*[${3:caption%text}][${4:family}][${5:options%keyvals}][${6:capt TikZ keys}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"structalt*\",\n      \"arg\": {\n        \"format\": \"[][][][][]{}{}\",\n        \"snippet\": \"structalt*[${3:caption%text}][${4:family}][${5:options%keyvals}][${6:capt TikZ keys}][${7:obj TikZ keys}]{${1:imagefile}}{${2:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newstruct\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newstruct{${1:imagefile}}{${2:structname}}{${3:Structname}}{${4:abbr}}\"\n      }\n    },\n    {\n      \"name\": \"newstruct\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newstruct[${5:sublabels}]{${1:imagefile}}{${2:structname}}{${3:Structname}}{${4:abbr}}\"\n      }\n    },\n    {\n      \"name\": \"Struct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Struct{${1:sublabels}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Struct\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Struct[${3:family}]{${1:sublabels}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Struct\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"Struct[${3:family}][${4:options%keyvals}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Struct\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"Struct[${3:family}][${4:options%keyvals}][${5:capt TikZ keys}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Struct\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"Struct[${3:family}][${4:options%keyvals}][${5:capt TikZ keys}][${6:obj TikZ keys}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Struct*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Struct*{${1:sublabels}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Struct*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Struct*[${3:family}]{${1:sublabels}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Struct*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"Struct*[${3:family}][${4:options%keyvals}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Struct*\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"Struct*[${3:family}][${4:options%keyvals}][${5:capt TikZ keys}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Struct*\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}\",\n        \"snippet\": \"Struct*[${3:family}][${4:options%keyvals}][${5:capt TikZ keys}][${6:obj TikZ keys}]{${1:sublabels}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Structalt{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"Structalt\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Structalt[${4:family}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"Structalt\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"Structalt[${4:family}][${5:options%keyvals}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"Structalt[${4:family}][${5:options%keyvals}][${6:capt TikZ keys}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}\",\n        \"snippet\": \"Structalt[${4:family}][${5:options%keyvals}][${6:capt TikZ keys}][${7:obj TikZ keys}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Structalt*{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"Structalt*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Structalt*[${4:family}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"Structalt*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"Structalt*[${4:family}][${5:options%keyvals}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt*\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"Structalt*[${4:family}][${5:options%keyvals}][${6:capt TikZ keys}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Structalt*\",\n      \"arg\": {\n        \"format\": \"[][][][]{}{}{}\",\n        \"snippet\": \"Structalt*[${4:family}][${5:options%keyvals}][${6:capt TikZ keys}][${7:obj TikZ keys}]{${1:sublabels}}{${2:imagefile}}{${3:alt imagefile%file}}\",\n        \"keys\": [\n          \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"structname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structname{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"Structname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Structname{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"structabbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structabbr{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"ChemschemeNextRow\"\n    },\n    {\n      \"name\": \"ChemschemeNextRow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ChemschemeNextRow[${1:rowsep%l}]\"\n      }\n    },\n    {\n      \"name\": \"CSXcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSXcommands{${1:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"structref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structref{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"structref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"structref[${2:family}]{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"structref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structref*{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"structref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"structref*[${2:family}]{${1:img}}\"\n      }\n    },\n    {\n      \"name\": \"structsubref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"structsubref{${1:img}}{${2:sublabels}}\"\n      }\n    },\n    {\n      \"name\": \"structsubref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"structsubref[${3:family}]{${1:img}}{${2:sublabels}}\"\n      }\n    },\n    {\n      \"name\": \"structsubref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"structsubref*{${1:img}}{${2:sublabels}}\"\n      }\n    },\n    {\n      \"name\": \"structsubref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"structsubref*[${3:family}]{${1:img}}{${2:sublabels}}\"\n      }\n    },\n    {\n      \"name\": \"CSXstructref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSXstructref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"customarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"customarrow{${1:TikZ keys}}{${2:upper caption%text}}{${3:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"customarrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"customarrow[${4:length}]{${1:TikZ keys}}{${2:upper caption%text}}{${3:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoubleRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DoubleRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleLeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoubleLeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleLeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DoubleLeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleLeftRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoubleLeftRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleLeftRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DoubleLeftRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightupHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RightupHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightupHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RightupHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RightdownHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RightdownHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftupHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftupHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftdownHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftdownHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupRightupHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftupRightupHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupRightupHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftupRightupHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupRightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftupRightdownHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftupRightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftupRightdownHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownRightupHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftdownRightupHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownRightupHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftdownRightupHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownRightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftdownRightdownHarpoon{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftdownRightdownHarpoon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftdownRightdownHarpoon[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Equilibrium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Equilibrium{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Equilibrium\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Equilibrium[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightEquilibrium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RightEquilibrium{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RightEquilibrium\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RightEquilibrium[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftEquilibrium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LeftEquilibrium{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LeftEquilibrium\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LeftEquilibrium[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RRightEquilibrium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RRightEquilibrium{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RRightEquilibrium\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RRightEquilibrium[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LLeftEquilibrium\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LLeftEquilibrium{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"LLeftEquilibrium\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LLeftEquilibrium[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TwoRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TwoRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TwoRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TwoRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TTwoRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TTwoRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TTwoRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TTwoRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TwoLeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TwoLeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TwoLeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TwoLeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TTwoLeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TTwoLeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TTwoLeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TTwoLeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThreeRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ThreeRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TThreeRightArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TThreeRightArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TThreeRightArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TThreeRightArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeLeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThreeLeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeLeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ThreeLeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TThreeLeftArrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TThreeLeftArrow{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TThreeLeftArrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TThreeLeftArrow[${3:length}]{${1:upper caption%text}}{${2:lower caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"CSXdeclarearrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CSXdeclarearrow{${1:command}}{${2:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"CSXdeclarearrowbundle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CSXdeclarearrowbundle{${1:csname}}{${2:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"structplus\"\n    },\n    {\n      \"name\": \"structminus\"\n    },\n    {\n      \"name\": \"CSXarrowadvance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXarrowlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXgeneratecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CSXgeneratecaption{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"CSXimagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXmaxlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXmaxtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSXtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancylabelformatCSX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyonlysublabelformatCSX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancysublabelformatCSX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theCSXcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theCSXscheme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theCSXstruct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theCSXstructinarrow\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Chemscheme\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chemschemex#c\": [\n      \"image={${1:\\\\includegraphics options}}\",\n      \"labelseparator=${1:separator}\",\n      \"arrowadvance=\"\n    ],\n    \"\\\\CSXimage,\\\\struct,\\\\struct*,\\\\struct-,\\\\structalt,\\\\structalt*,\\\\Struct,\\\\Struct*,\\\\Structalt,\\\\Structalt*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemschemex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemsec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefineChemical\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineChemical{${1:key%specialDef}}{${2:name}}{${3:sub-label}}\"\n      }\n    },\n    {\n      \"name\": \"ChemCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemFCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemFCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemSCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemSCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemMFCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemMFCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemMSCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemMSCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NoCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoCite{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChemFullLabelStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ChemFullLabelStyle{${1:full name}}{${2:main label}}{${3:sub label}}\"\n      }\n    },\n    {\n      \"name\": \"ChemLabelStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemLabelStyle{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ChemMainCounterStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemMainCounterStyle{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ChemShortLabelStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChemShortLabelStyle{${1:main label}}{${2:sub label}}\"\n      }\n    },\n    {\n      \"name\": \"ChemSubCounterStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChemSubCounterStyle{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemsec#c\": [\n      \"debug\",\n      \"draft\"\n    ],\n    \"\\\\ChemCite#c,\\\\ChemFCite#c,\\\\ChemSCite#c,\\\\ChemMFCite#c,\\\\ChemMSCite#c,\\\\NoCite#c\": [\n      \"%chemseckey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemsec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chemstr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addbscolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addbscolor{${1:bondcolor}}{${2:substituent}}\"\n      }\n    },\n    {\n      \"name\": \"ayl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ayl(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ayl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ayl{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"BiFunc\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"BiFunc(${4:xslope},${5:yslope}){${1:length}}{${2:moietyA}}{${3:moietyB}}\"\n      }\n    },\n    {\n      \"name\": \"bscolorswOFF\"\n    },\n    {\n      \"name\": \"bscolorswON\"\n    },\n    {\n      \"name\": \"changeunitlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeunitlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"downnobond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"downnobond{${1:atom}}{${2:substituent}}\"\n      }\n    },\n    {\n      \"name\": \"iforigpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPDFmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPSmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lmoiety\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmoiety{${1:substituent}}\"\n      }\n    },\n    {\n      \"name\": \"lyl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lyl(${2:link}){${1:ylgroup}}\"\n      }\n    },\n    {\n      \"name\": \"member\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"originalpicture\"\n    },\n    {\n      \"name\": \"origptfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origpttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PDFmodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PDFmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSmodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putlatom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"putlatom{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"putlratom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"putlratom{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"putratom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"putratom{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"resetbdsw\"\n    },\n    {\n      \"name\": \"rmoiety\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmoiety{${1:substituent}}\"\n      }\n    },\n    {\n      \"name\": \"ryl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ryl(${2:link}){${1:ylgroup}}\"\n      }\n    },\n    {\n      \"name\": \"SetTwoAtoms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTwoAtoms{${1:frontobject}}\"\n      }\n    },\n    {\n      \"name\": \"SetTwoAtomx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTwoAtomx{${1:frontobject}}\"\n      }\n    },\n    {\n      \"name\": \"substfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"substfontsize\"\n    },\n    {\n      \"name\": \"thicklines\"\n    },\n    {\n      \"name\": \"thinlines\"\n    },\n    {\n      \"name\": \"upnobond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upnobond{${1:atom}}{${2:substituent}}\"\n      }\n    },\n    {\n      \"name\": \"XyM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XyMTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chemstyle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"chemscheme\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"journal=orglett\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Hz\"\n    },\n    {\n      \"name\": \"Molar\"\n    },\n    {\n      \"name\": \"cmc\"\n    },\n    {\n      \"name\": \"cstsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cstsetup{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"cubiccentimeter\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"invacuo\"\n    },\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"latinemphoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinemphon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"mol\"\n    },\n    {\n      \"name\": \"molar\"\n    },\n    {\n      \"name\": \"standardstate\"\n    },\n    {\n      \"name\": \"thebibnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chemstyle#c,\\\\cstsetup#c\": [\n      \"abbrcomma\",\n      \"abbremph\",\n      \"journal=${1|angew,jomc,ic,jacs,jcp,orglett,rsc,tetlett|}\",\n      \"language=${1:language}\",\n      \"nonotes\",\n      \"nophrases\",\n      \"notes\",\n      \"notesbefore\",\n      \"phrases\",\n      \"rademph\",\n      \"radhyphen\",\n      \"radprefix\",\n      \"radsuper\",\n      \"varioref\",\n      \"xspace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chemstyle#c,\\\\cstsetup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cherokee.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cherokee\"\n    },\n    {\n      \"name\": \"Csoo\"\n    },\n    {\n      \"name\": \"Cga\"\n    },\n    {\n      \"name\": \"Cha\"\n    },\n    {\n      \"name\": \"Cla\"\n    },\n    {\n      \"name\": \"Cma\"\n    },\n    {\n      \"name\": \"Cna\"\n    },\n    {\n      \"name\": \"Cgwa\"\n    },\n    {\n      \"name\": \"Csa\"\n    },\n    {\n      \"name\": \"Cda\"\n    },\n    {\n      \"name\": \"Cdla\"\n    },\n    {\n      \"name\": \"Cdza\"\n    },\n    {\n      \"name\": \"Cwa\"\n    },\n    {\n      \"name\": \"Cya\"\n    },\n    {\n      \"name\": \"Cwoo\"\n    },\n    {\n      \"name\": \"Cge\"\n    },\n    {\n      \"name\": \"Che\"\n    },\n    {\n      \"name\": \"Cle\"\n    },\n    {\n      \"name\": \"Cme\"\n    },\n    {\n      \"name\": \"Cne\"\n    },\n    {\n      \"name\": \"Cgwe\"\n    },\n    {\n      \"name\": \"Cse\"\n    },\n    {\n      \"name\": \"Cde\"\n    },\n    {\n      \"name\": \"Cdle\"\n    },\n    {\n      \"name\": \"Cdze\"\n    },\n    {\n      \"name\": \"Cwe\"\n    },\n    {\n      \"name\": \"Cye\"\n    },\n    {\n      \"name\": \"Chu\"\n    },\n    {\n      \"name\": \"Cgi\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Cli\"\n    },\n    {\n      \"name\": \"Cmi\"\n    },\n    {\n      \"name\": \"Cni\"\n    },\n    {\n      \"name\": \"Cgwi\"\n    },\n    {\n      \"name\": \"Csi\"\n    },\n    {\n      \"name\": \"Cdi\"\n    },\n    {\n      \"name\": \"Cdli\"\n    },\n    {\n      \"name\": \"Cdzi\"\n    },\n    {\n      \"name\": \"Cwi\"\n    },\n    {\n      \"name\": \"Cyi\"\n    },\n    {\n      \"name\": \"Cdlu\"\n    },\n    {\n      \"name\": \"Cgo\"\n    },\n    {\n      \"name\": \"Cho\"\n    },\n    {\n      \"name\": \"Clo\"\n    },\n    {\n      \"name\": \"Cmo\"\n    },\n    {\n      \"name\": \"Cno\"\n    },\n    {\n      \"name\": \"Cgwo\"\n    },\n    {\n      \"name\": \"Cso\"\n    },\n    {\n      \"name\": \"Cdo\"\n    },\n    {\n      \"name\": \"Cdlo\"\n    },\n    {\n      \"name\": \"Cdzo\"\n    },\n    {\n      \"name\": \"Cwo\"\n    },\n    {\n      \"name\": \"Cyo\"\n    },\n    {\n      \"name\": \"Coo\"\n    },\n    {\n      \"name\": \"Cgoo\"\n    },\n    {\n      \"name\": \"Choo\"\n    },\n    {\n      \"name\": \"Cloo\"\n    },\n    {\n      \"name\": \"Cmoo\"\n    },\n    {\n      \"name\": \"Cnoo\"\n    },\n    {\n      \"name\": \"Cgwoo\"\n    },\n    {\n      \"name\": \"Ca\"\n    },\n    {\n      \"name\": \"Cdoo\"\n    },\n    {\n      \"name\": \"Cdloo\"\n    },\n    {\n      \"name\": \"Cdzoo\"\n    },\n    {\n      \"name\": \"Ce\"\n    },\n    {\n      \"name\": \"Cyoo\"\n    },\n    {\n      \"name\": \"Cnah\"\n    },\n    {\n      \"name\": \"Cgu\"\n    },\n    {\n      \"name\": \"Ci\"\n    },\n    {\n      \"name\": \"Clu\"\n    },\n    {\n      \"name\": \"Cnu\"\n    },\n    {\n      \"name\": \"Cgwu\"\n    },\n    {\n      \"name\": \"Csu\"\n    },\n    {\n      \"name\": \"Cdu\"\n    },\n    {\n      \"name\": \"Co\"\n    },\n    {\n      \"name\": \"Cdzu\"\n    },\n    {\n      \"name\": \"Cwu\"\n    },\n    {\n      \"name\": \"Cyu\"\n    },\n    {\n      \"name\": \"Cs\"\n    },\n    {\n      \"name\": \"Chna\"\n    },\n    {\n      \"name\": \"Cu\"\n    },\n    {\n      \"name\": \"Cka\"\n    },\n    {\n      \"name\": \"Cta\"\n    },\n    {\n      \"name\": \"Cti\"\n    },\n    {\n      \"name\": \"Ctla\"\n    },\n    {\n      \"name\": \"Cte\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chessboard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chessfss\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chessboard\"\n    },\n    {\n      \"name\": \"chessboard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chessboard[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\chessboard,\\\\setchessboard,\\\\storechessboardstyle,\\\\newchessgame,\\\\resumechessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchessboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchessboard{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chessboard,\\\\setchessboard,\\\\storechessboardstyle,\\\\newchessgame,\\\\resumechessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"storechessboardstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storechessboardstyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chessboard,\\\\setchessboard,\\\\storechessboardstyle,\\\\newchessgame,\\\\resumechessgame\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cblistK\"\n    },\n    {\n      \"name\": \"cblistQ\"\n    },\n    {\n      \"name\": \"cblistR\"\n    },\n    {\n      \"name\": \"cblistB\"\n    },\n    {\n      \"name\": \"cblistN\"\n    },\n    {\n      \"name\": \"cblistP\"\n    },\n    {\n      \"name\": \"cblistk\"\n    },\n    {\n      \"name\": \"cblistq\"\n    },\n    {\n      \"name\": \"cblistr\"\n    },\n    {\n      \"name\": \"cblistb\"\n    },\n    {\n      \"name\": \"cblistn\"\n    },\n    {\n      \"name\": \"cblistp\"\n    },\n    {\n      \"name\": \"cbDefineLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbDefineLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefineTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cbDefineTranslation{${1:piece letter}}{${2:new piece letter}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefineMoverStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cbDefineMoverStyle{${1:name}}{${2:white top}}{${3:white bot}}{${4:black top}}{${5:black bot}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefineMoverStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cbDefineMoverStyle[${6:cmds}]{${1:name}}{${2:white top}}{${3:white bot}}{${4:black top}}{${5:black bot}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefinePgfFieldStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cbDefinePgfFieldStyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefinePgfRegionStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cbDefinePgfRegionStyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefinePgfMoveStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cbDefinePgfMoveStyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefineNewPiece\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cbDefineNewPiece{${1:color}}{${2:char}}{${3:on white}}{${4:on black}}\"\n      }\n    },\n    {\n      \"name\": \"cbDefineNewPiece\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cbDefineNewPiece[${5:game}]{${1:color}}{${2:char}}{${3:on white}}{${4:on black}}\"\n      }\n    },\n    {\n      \"name\": \"printarea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"board\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentbq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentwk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentwq\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\chessboard,\\\\setchessboard,\\\\storechessboardstyle,\\\\newchessgame,\\\\resumechessgame\": [\n      \"style=${1:style}\",\n      \"maxfield=${1:field}\",\n      \"zero\",\n      \"clearboard\",\n      \"cleararea=${1:area}\",\n      \"clearfile=${1:file}\",\n      \"clearfiles=${1:files}\",\n      \"clearrank=${1:rank}\",\n      \"clearranks={${1:list of ranks}}\",\n      \"clearfield=${1:field}\",\n      \"clearfields={${1:list of fields}}\",\n      \"setpieces={${1:list of positions}}\",\n      \"addpieces={${1:list of positions}}\",\n      \"setwhite={${1:list of positions}}\",\n      \"addwhite={${1:list of positions}}\",\n      \"setblack={${1:list of positions}}\",\n      \"addblack={${1:list of positions}}\",\n      \"setfen=${1:FEN}\",\n      \"addfen=${1:FEN}\",\n      \"startfen=${1:field}\",\n      \"startfill=${1:field}\",\n      \"stopfill=${1:field}\",\n      \"fillarea=${1:area}\",\n      \"storefen=${1:name}\",\n      \"savefen=${1:filename}\",\n      \"startstore=${1:field}\",\n      \"stopstore=${1:field}\",\n      \"storearea=${1:area}\",\n      \"mover=${1|w,b|}\",\n      \"castling=${1:castling possibilies}\",\n      \"enpassant=${1:field}\",\n      \"halfmove=${1:integer}\",\n      \"fullmove=${1:integer}\",\n      \"getpiecelists\",\n      \"restorefen=${1:name}\",\n      \"loadfen=${1:name}\",\n      \"language=${1:language}\",\n      \"marginleftwidth=\",\n      \"marginrightwidth=\",\n      \"margintopwidth=\",\n      \"marginbottomwidth=\",\n      \"hmarginwidth=\",\n      \"vmarginwidth=\",\n      \"marginwidth=\",\n      \"marginleft\",\n      \"marginright\",\n      \"margintop\",\n      \"marginbottom\",\n      \"hmargin\",\n      \"vmargin\",\n      \"margin\",\n      \"borderleftwidth=\",\n      \"borderrightwidth=\",\n      \"bordertopwidth=\",\n      \"borderbottomwidth=\",\n      \"hborderwidth=\",\n      \"vborderwidth=\",\n      \"borderwidth=\",\n      \"borderleft\",\n      \"borderright\",\n      \"bordertop\",\n      \"borderbottom\",\n      \"hborder\",\n      \"vborder\",\n      \"border\",\n      \"borderleftcolor=\",\n      \"borderrightcolor=\",\n      \"bordertopcolor=\",\n      \"borderbottomcolor=\",\n      \"hbordercolor=\",\n      \"vbordercolor=\",\n      \"bordercolor=\",\n      \"boardfontsize=\",\n      \"fontsize=\",\n      \"tinyboard\",\n      \"smallboard\",\n      \"normalboard\",\n      \"largeboard\",\n      \"boardfontfamily=${1:font family}\",\n      \"boardfontseries=${1:font series}\",\n      \"boardfontencoding=${1:font encoding}\",\n      \"clearfontcolors\",\n      \"whitefieldmaskcolor=\",\n      \"blackfieldmaskcolor=\",\n      \"fieldmaskcolor=\",\n      \"whitefieldcolor=\",\n      \"blackfieldcolor=\",\n      \"fieldcolor=\",\n      \"whiteonwhitepiecemaskcolor=\",\n      \"whiteonblackpiecemaskcolor=\",\n      \"blackonwhitepiecemaskcolor=\",\n      \"blackonblackpiecemaskcolor=\",\n      \"whitepiecemaskcolor=\",\n      \"blackpiecemaskcolor=\",\n      \"onwhitepiecemaskcolor=\",\n      \"onblackpiecemaskcolor=\",\n      \"piecemaskcolor=\",\n      \"whitepiececolor=\",\n      \"blackpiececolor=\",\n      \"piececolor=\",\n      \"setfontcolors\",\n      \"addfontcolors\",\n      \"emphstyle=${1:cmds}\",\n      \"coloremph\",\n      \"coloremphstyle=${1:cmds}\",\n      \"emphboard\",\n      \"empharea=${1:area}\",\n      \"emphareas={${1:list of areas}}\",\n      \"emphfile=${1:file}\",\n      \"emphfiles={${1:list of files}}\",\n      \"emphrank=${1:rank}\",\n      \"emphranks={${1:list of ranks}}\",\n      \"emphfield=${1:field}\",\n      \"emphfields={${1:list of fields}}\",\n      \"labelleft\",\n      \"labelright\",\n      \"labeltop\",\n      \"labelbottom\",\n      \"hlabel\",\n      \"vlabel\",\n      \"label\",\n      \"labelleftwidth=\",\n      \"labelrightwidth=\",\n      \"hlabelwidth=\",\n      \"labelleftlift=\",\n      \"labelrightlift=\",\n      \"hlabellift=\",\n      \"labeltoplift=\",\n      \"labelbottomlift=\",\n      \"vlabellift=\",\n      \"labelleftfont=${1:font cmd}\",\n      \"labelrightfont=${1:font cmd}\",\n      \"labeltopfont=${1:font cmd}\",\n      \"labelbottomfont=${1:font cmd}\",\n      \"hlabelfont=${1:font cmd}\",\n      \"vlabelfont=${1:font cmd}\",\n      \"labelfont=${1:font cmd}\",\n      \"labelfontsize=\",\n      \"labelleftformat=${1:cmds}\",\n      \"labelrightformat=${1:cmds}\",\n      \"labeltopformat=${1:cmds}\",\n      \"labelbottomformat=${1:cmds}\",\n      \"hlabelformat=${1:cmds}\",\n      \"vlabelformat=${1:cmds}\",\n      \"labelformat=${1:cmds}\",\n      \"showmover\",\n      \"moversize=\",\n      \"moverlift=\",\n      \"movertoplift=\",\n      \"moverbottomlift=\",\n      \"movershift=\",\n      \"movertopshift=\",\n      \"moverbottomshift=\",\n      \"moverstyle=${1|circle,triangle,squarearrow,unknown|}\",\n      \"print\",\n      \"startprint=${1:field}\",\n      \"stopprint=${1:field}\",\n      \"printarea=${1:field}\",\n      \"inverse\",\n      \"hideboard\",\n      \"hidearea=${1:area}\",\n      \"hideareas={${1:list of areas}}\",\n      \"hidefile=${1:file}\",\n      \"hidefiles={${1:list of files}}\",\n      \"hiderank=${1:rank}\",\n      \"hideranks={${1:list of ranks}}\",\n      \"hidefield=${1:field}\",\n      \"hidefields{${1:list of fields}}\",\n      \"hidepiece=${1:piece char}\",\n      \"hidepieces={${1:list of piece chars}}\",\n      \"hidewhite\",\n      \"hideblack\",\n      \"hideall\",\n      \"showboard\",\n      \"showarea=${1:area}\",\n      \"showareas={${1:list of areas}}\",\n      \"showfile=${1:file}\",\n      \"showfiles={${1:list of files}}\",\n      \"showrank=${1:rank}\",\n      \"showranks={${1:list of ranks}}\",\n      \"showfield=${1:field}\",\n      \"showfields={${1:list of fields}}\",\n      \"showpiece=${1:piece char}\",\n      \"showpieces={${1:list of piece chars}}\",\n      \"showwhite\",\n      \"showblack\",\n      \"showall\",\n      \"pgf\",\n      \"markboard\",\n      \"markarea=${1:area}\",\n      \"markareas={${1:list of areas}}\",\n      \"markfile=${1:file}\",\n      \"markfiles={${1:list of files}}\",\n      \"markrank=${1:rank}\",\n      \"markranks={${1:list of ranks}}\",\n      \"markfield=${1:field}\",\n      \"markfields={${1:list of fields}}\",\n      \"backboard\",\n      \"backarea=${1:area}\",\n      \"backareas={${1:list of areas}}\",\n      \"backfile=${1:file}\",\n      \"backfiles={${1:list of files}}\",\n      \"backrank=${1:rank}\",\n      \"backranks={${1:list of ranks}}\",\n      \"backfield=${1:field}\",\n      \"backfields={${1:list of fields}}\",\n      \"markregions={${1:list of regions}}\",\n      \"markregion={${1:list of regions}}\",\n      \"backregions={${1:list of regions}}\",\n      \"backregion={${1:list of regions}}\",\n      \"markmoves={${1:list of moves}}\",\n      \"markmove={${1:list of moves}}\",\n      \"backmoves={${1:list of moves}}\",\n      \"backmove={${1:list of moves}}\",\n      \"markstyle=${1:style}\",\n      \"markstyle=[${1:options}]${2:style}\",\n      \"backstyle=${1:style}\",\n      \"backstyle=[${1:options}]${2:style}\",\n      \"pgfstyle=${1:style}\",\n      \"pgfstyle=[${1:options}]${2:style}\",\n      \"color=\",\n      \"pgfcolor=\",\n      \"opacity=${1:factor}\",\n      \"pgfopacity=${1:factor}\",\n      \"fillopacity=${1:factor}\",\n      \"pgffillopacity=${1:factor}\",\n      \"strokeopacity=${1:factor}\",\n      \"pgfstrokeopacity=${1:factor}\",\n      \"padding=\",\n      \"pgfpadding=\",\n      \"arrow=${1:arrow type}\",\n      \"pgfarrow=${1:arrow type}\",\n      \"shortenstart=\",\n      \"pgfshortenstart=\",\n      \"shortenend=\",\n      \"pgfshortenend=\",\n      \"shorten=\",\n      \"pgfshorten=\",\n      \"linewidth=\",\n      \"pgflinewidth=\",\n      \"marklinewidth=\",\n      \"backlinewidth=\",\n      \"cornerarc=\",\n      \"pgfcornerarc=\",\n      \"backcornerarc=\",\n      \"addpgf=${1:pgf cmds}\",\n      \"usepgf\",\n      \"usepgf=${1|back,mark,all,both,none|}\",\n      \"pgfborder\",\n      \"pgfborder=${1:area}\",\n      \"colorbackboard\",\n      \"colorbackarea=${1:area}\",\n      \"colorbackareas={${1:list of areas}}\",\n      \"colorbackfile=${1:file}\",\n      \"colorbackfiles={${1:list of files}}\",\n      \"colorbackrank=${1:rank}\",\n      \"colorbackranks={${1:list of ranks}}\",\n      \"colorbackfield=${1:field}\",\n      \"colorbackfields={${1:list of fields}}\",\n      \"colorwhitebackfields={${1:list of fields}}\",\n      \"colorblackbackfields={${1:list of fields}}\",\n      \"clearpgf\",\n      \"clearbackpgf\",\n      \"clearmarkpgf\",\n      \"clip\",\n      \"clip=\",\n      \"markclip\",\n      \"markclip=\",\n      \"backclip\",\n      \"backclip=\",\n      \"trimarea\",\n      \"trimare=${1:area}\",\n      \"captrimtoprint\",\n      \"trim\",\n      \"trimtocolor=${1|white,black,false|}\",\n      \"psset\",\n      \"psskak\",\n      \"text=${1:text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chessfss.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"figfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figsymbol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfigfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfigfontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"king\"\n    },\n    {\n      \"name\": \"symking\"\n    },\n    {\n      \"name\": \"queen\"\n    },\n    {\n      \"name\": \"symqueen\"\n    },\n    {\n      \"name\": \"rook\"\n    },\n    {\n      \"name\": \"symrook\"\n    },\n    {\n      \"name\": \"bishop\"\n    },\n    {\n      \"name\": \"symbishop\"\n    },\n    {\n      \"name\": \"knight\"\n    },\n    {\n      \"name\": \"symknight\"\n    },\n    {\n      \"name\": \"pawn\"\n    },\n    {\n      \"name\": \"sympawn\"\n    },\n    {\n      \"name\": \"settextfigchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"settextfigchars{${1:king}}{${2:queen}}{${3:rook}}{${4:bishop}}{${5:knight}}{${6:pawn}}\"\n      }\n    },\n    {\n      \"name\": \"settextfigchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"settextfigchars[${7:lang}]{${1:king}}{${2:queen}}{${3:rook}}{${4:bishop}}{${5:knight}}{${6:pawn}}\"\n      }\n    },\n    {\n      \"name\": \"settextfiglanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextfiglanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"textfigsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfigsymbol{${1:piecechar}}\"\n      }\n    },\n    {\n      \"name\": \"textking\"\n    },\n    {\n      \"name\": \"textqueen\"\n    },\n    {\n      \"name\": \"textrook\"\n    },\n    {\n      \"name\": \"textbishop\"\n    },\n    {\n      \"name\": \"textknight\"\n    },\n    {\n      \"name\": \"textpawn\"\n    },\n    {\n      \"name\": \"textsymfigsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsymfigsymbol{${1:piece}}\"\n      }\n    },\n    {\n      \"name\": \"textsymking\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsymqueen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsymrook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsymbishop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsymknight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsympawn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usetextfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesymfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfigstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfigstyle{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"boardfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boardsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boardsymbol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setboardfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboardfontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"setboardfontseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboardfontseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"setboardfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboardfontsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"setboardfontencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboardfontencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteEmptySquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackEmptySquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteKingOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackKingOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteKingOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackKingOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteQueenOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackQueenOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteQueenOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackQueenOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteRookOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackRookOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteRookOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackRookOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteBishopOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackBishopOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteBishopOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackBishopOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteKnightOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackKnightOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhiteKnightOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackKnightOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhitePawnOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackPawnOnWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WhitePawnOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackPawnOnBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getsquarewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsquarewidth{${1:reference piece}}\"\n      }\n    },\n    {\n      \"name\": \"showchessboardencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showchessboardencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"showchessboardencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showchessboardencoding[${2:font family}]{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"setboardfontcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboardfontcolors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setboardfontcolors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inffont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infsymbol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setinffontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinffontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"checksymbol\"\n    },\n    {\n      \"name\": \"castlinghyphen\"\n    },\n    {\n      \"name\": \"withattack\"\n    },\n    {\n      \"name\": \"withinit\"\n    },\n    {\n      \"name\": \"zugzwang\"\n    },\n    {\n      \"name\": \"withidea\"\n    },\n    {\n      \"name\": \"onlymove\"\n    },\n    {\n      \"name\": \"diagonal\"\n    },\n    {\n      \"name\": \"file\"\n    },\n    {\n      \"name\": \"centre\"\n    },\n    {\n      \"name\": \"weakpt\"\n    },\n    {\n      \"name\": \"ending\"\n    },\n    {\n      \"name\": \"qside\"\n    },\n    {\n      \"name\": \"kside\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"morepawns\"\n    },\n    {\n      \"name\": \"timelimit\"\n    },\n    {\n      \"name\": \"moreroom\"\n    },\n    {\n      \"name\": \"counterplay\"\n    },\n    {\n      \"name\": \"capturesymbol\"\n    },\n    {\n      \"name\": \"bishoppair\"\n    },\n    {\n      \"name\": \"betteris\"\n    },\n    {\n      \"name\": \"wupperhand\"\n    },\n    {\n      \"name\": \"doublepawns\"\n    },\n    {\n      \"name\": \"bupperhand\"\n    },\n    {\n      \"name\": \"wbetter\"\n    },\n    {\n      \"name\": \"bbetter\"\n    },\n    {\n      \"name\": \"wdecisive\"\n    },\n    {\n      \"name\": \"bdecisive\"\n    },\n    {\n      \"name\": \"unclear\"\n    },\n    {\n      \"name\": \"chesssee\"\n    },\n    {\n      \"name\": \"mate\"\n    },\n    {\n      \"name\": \"compensation\"\n    },\n    {\n      \"name\": \"opposbishops\"\n    },\n    {\n      \"name\": \"seppawns\"\n    },\n    {\n      \"name\": \"passedpawn\"\n    },\n    {\n      \"name\": \"samebishops\"\n    },\n    {\n      \"name\": \"devadvantage\"\n    },\n    {\n      \"name\": \"unitedpawns\"\n    },\n    {\n      \"name\": \"with\"\n    },\n    {\n      \"name\": \"without\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"markera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidesymbol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefontencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefontencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefontseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefontseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefontshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefontshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefontsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"setchessfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchessfontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"setallchessfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallchessfontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"castlingchar\"\n    },\n    {\n      \"name\": \"longcastling\"\n    },\n    {\n      \"name\": \"shortcastling\"\n    },\n    {\n      \"name\": \"novelty\"\n    },\n    {\n      \"name\": \"chesscomment\"\n    },\n    {\n      \"name\": \"various\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setboardfontcolors\": [\n      \"whitefieldmask=\",\n      \"blackfieldmask=\",\n      \"whitefield=\",\n      \"blackfield=\",\n      \"whiteonwhitepiecemask=\",\n      \"whiteonblackpiecemask=\",\n      \"blackonwhitepiecemask=\",\n      \"blackonblackpiecemask=\",\n      \"whitepiece=\",\n      \"blackpiece=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"cite\"\n    },\n    {\n      \"name\": \"collref\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"filecontents\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftmode\"\n    },\n    {\n      \"name\": \"titlemath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlemath{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailV{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emails\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emails{${1:emails%URL}}\"\n      }\n    },\n    {\n      \"name\": \"newsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newsec\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newsec{${1:title}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"subsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsec\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsec{${1:title}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"subsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsec\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsubsec{${1:title}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"eqn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqn{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqn\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"eqn{${1:math%formula}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"eqna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqna{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqna\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"eqna{${1:math%formula}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}{${2:math2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}{${2:math2%formula}}[${3:label2%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}{${2:math2%formula}}[${3:label2%labeldef}][${4:overall-label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}[${3:label1%labeldef}]{${2:math2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}[${3:label1%labeldef}]{${2:math2%formula}}[${4:label2%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"twoseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][]\",\n        \"snippet\": \"twoseqn{${1:math1%formula}}[${3:label1%labeldef}]{${2:math2%formula}}[${4:label2%labeldef}][${5:overall-label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}{${2:math2%formula}}{${3:math3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}{${2:math2%formula}}{${3:math3%formula}}[${4:label3%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}{${2:math2%formula}}[${4:label2%labeldef}]{${3:math3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}[${4:label1%labeldef}]{${2:math2%formula}}{${3:math3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}[${4:label1%labeldef}]{${2:math2%formula}}[${5:label2%labeldef}]{${3:math3%formula}}[${6:label3%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"threeseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[][]\",\n        \"snippet\": \"threeseqn{${1:math1%formula}}[${4:label1%labeldef}]{${2:math2%formula}}[${5:label2%labeldef}]{${3:math3%formula}}[${6:label3%labeldef}][${7:overall-label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}{${2:math2%formula}}{${3:math3%formula}}{${4:math4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}{${2:math2%formula}}{${3:math3%formula}}{${4:math4%formula}}[${5:label4%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}{${2:math2%formula}}{${3:math3%formula}}[${5:label3%labeldef}]{${4:math4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}{${2:math2%formula}}[${5:label2%labeldef}]{${3:math3%formula}}{${4:math4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}[${5:label1%labeldef}]{${2:math2%formula}}{${3:math3%formula}}{${4:math4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]{}[]\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}[${5:label1%labeldef}]{${2:math2%formula}}[${6:label2%labeldef}]{${3:math3%formula}}[${7:label3%labeldef}]{${4:math4%formula}}[${8:label4%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"fourseqn\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]{}[][]\",\n        \"snippet\": \"fourseqn{${1:math1%formula}}[${5:label1%labeldef}]{${2:math2%formula}}[${6:label2%labeldef}]{${3:math3%formula}}[${7:label3%labeldef}]{${4:math4%formula}}[${8:label4%labeldef}][${9:overall-label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"rcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"rcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rcite[${2:add. text}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"toc\"\n    },\n    {\n      \"name\": \"foot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foot[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ack{${1:acknowledgments%text}}\"\n      }\n    },\n    {\n      \"name\": \"appendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprint{${1:preprint}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mytitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcitedraft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcitedraft{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"showkeyslabelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showkeyslabelformat{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendices\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chet#c\": [\n      \"macrosonly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chextras.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"black\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"black\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"gray\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"gray\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"color\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rmosfamily\"\n    },\n    {\n      \"name\": \"sfosfamily\"\n    },\n    {\n      \"name\": \"ttosfamily\"\n    },\n    {\n      \"name\": \"textrmos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrmos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsfos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textttos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textttos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rmosdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfosdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttosdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chextras#c\": [\n      \"nomath\",\n      \"lighttt\",\n      \"variablett\",\n      \"oldstyle\",\n      \"german\",\n      \"french\",\n      \"italian\",\n      \"english\",\n      \"black\",\n      \"gray\",\n      \"color\",\n      \"stdshape\",\n      \"stdspace\",\n      \"stdfield\",\n      \"stdparis\",\n      \"stddimen\",\n      \"stdskips\",\n      \"stdmgpar\",\n      \"stdlists\",\n      \"stdlabel\",\n      \"stditems\",\n      \"stdnotes\",\n      \"stdrules\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chextras#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chhaya.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marathi\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printacronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chhaya#c\": [\n      \"समरेखा=${1:font name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chhaya#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chickenize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ALT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allownumberincommands\"\n    },\n    {\n      \"name\": \"BEClerize\"\n    },\n    {\n      \"name\": \"boustrophedon\"\n    },\n    {\n      \"name\": \"unboustrophedon\"\n    },\n    {\n      \"name\": \"boustrophedonglyphs\"\n    },\n    {\n      \"name\": \"unboustrophedonglyphs\"\n    },\n    {\n      \"name\": \"boustrophedoninverse\"\n    },\n    {\n      \"name\": \"unboustrophedoninverse\"\n    },\n    {\n      \"name\": \"rongorongonize\"\n    },\n    {\n      \"name\": \"unrongorongonize\"\n    },\n    {\n      \"name\": \"bubblesort\"\n    },\n    {\n      \"name\": \"unbubblesort\"\n    },\n    {\n      \"name\": \"chickenize\"\n    },\n    {\n      \"name\": \"unchickenize\"\n    },\n    {\n      \"name\": \"hendlnize\"\n    },\n    {\n      \"name\": \"unhendlnize\"\n    },\n    {\n      \"name\": \"colorstretch\"\n    },\n    {\n      \"name\": \"uncolorstretch\"\n    },\n    {\n      \"name\": \"countglyphs\"\n    },\n    {\n      \"name\": \"countwords\"\n    },\n    {\n      \"name\": \"detectdoublewords\"\n    },\n    {\n      \"name\": \"dubstepenize\"\n    },\n    {\n      \"name\": \"dubstepize\"\n    },\n    {\n      \"name\": \"explainbackslashes\"\n    },\n    {\n      \"name\": \"francize\"\n    },\n    {\n      \"name\": \"unfrancize\"\n    },\n    {\n      \"name\": \"gameoflife\"\n    },\n    {\n      \"name\": \"gameofchicken\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gameofchicken{${1:lua commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"gameofchimken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gameofchimken{${1:lua commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"guttenbergenize\"\n    },\n    {\n      \"name\": \"hammertime\"\n    },\n    {\n      \"name\": \"unhammertime\"\n    },\n    {\n      \"name\": \"italianizerandwords\"\n    },\n    {\n      \"name\": \"unitalianizerandwords\"\n    },\n    {\n      \"name\": \"italianize\"\n    },\n    {\n      \"name\": \"unitalianize\"\n    },\n    {\n      \"name\": \"kernmanipulate\"\n    },\n    {\n      \"name\": \"unkernmanipulate\"\n    },\n    {\n      \"name\": \"leetspeak\"\n    },\n    {\n      \"name\": \"unleetspeak\"\n    },\n    {\n      \"name\": \"leftsideright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftsideright{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"unleftsideright\"\n    },\n    {\n      \"name\": \"letterspaceadjust\"\n    },\n    {\n      \"name\": \"unletterspaceadjust\"\n    },\n    {\n      \"name\": \"listallcommands\"\n    },\n    {\n      \"name\": \"stealsheep\"\n    },\n    {\n      \"name\": \"unstealsheep\"\n    },\n    {\n      \"name\": \"returnsheep\"\n    },\n    {\n      \"name\": \"matrixize\"\n    },\n    {\n      \"name\": \"unmatrixize\"\n    },\n    {\n      \"name\": \"medievalumlaut\"\n    },\n    {\n      \"name\": \"unmedievalumlaut\"\n    },\n    {\n      \"name\": \"pancakenize\"\n    },\n    {\n      \"name\": \"rainbowcolor\"\n    },\n    {\n      \"name\": \"unrainbowcolor\"\n    },\n    {\n      \"name\": \"nyanize\"\n    },\n    {\n      \"name\": \"unnyanize\"\n    },\n    {\n      \"name\": \"randomchars\"\n    },\n    {\n      \"name\": \"unrandomchars\"\n    },\n    {\n      \"name\": \"randomcolor\"\n    },\n    {\n      \"name\": \"unrandomcolor\"\n    },\n    {\n      \"name\": \"randomerror\"\n    },\n    {\n      \"name\": \"unrandomerror\"\n    },\n    {\n      \"name\": \"randomfonts\"\n    },\n    {\n      \"name\": \"unrandomfonts\"\n    },\n    {\n      \"name\": \"randomuclc\"\n    },\n    {\n      \"name\": \"unrandomuclc\"\n    },\n    {\n      \"name\": \"relationship\"\n    },\n    {\n      \"name\": \"scorpionize\"\n    },\n    {\n      \"name\": \"unscorpionize\"\n    },\n    {\n      \"name\": \"substitutewords\"\n    },\n    {\n      \"name\": \"unsubstitutewords\"\n    },\n    {\n      \"name\": \"addtosubstitutions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtosubstitutions{${1:word1}}{${2:word2}}\"\n      }\n    },\n    {\n      \"name\": \"suppressonecharbreak\"\n    },\n    {\n      \"name\": \"unsuppressonecharbreak\"\n    },\n    {\n      \"name\": \"tabularasa\"\n    },\n    {\n      \"name\": \"untabularasa\"\n    },\n    {\n      \"name\": \"tanjanize\"\n    },\n    {\n      \"name\": \"untanjanize\"\n    },\n    {\n      \"name\": \"uppercasecolor\"\n    },\n    {\n      \"name\": \"unuppercasecolor\"\n    },\n    {\n      \"name\": \"upsidedown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upsidedown{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"unupsidedown\"\n    },\n    {\n      \"name\": \"variantjustification\"\n    },\n    {\n      \"name\": \"unvariantjustification\"\n    },\n    {\n      \"name\": \"zebranize\"\n    },\n    {\n      \"name\": \"unzebranize\"\n    },\n    {\n      \"name\": \"leetattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterspaceadjustattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randcolorattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randfontsattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randuclcattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabularasaattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercasecolorattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textleetspeak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textleetspeak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textletterspaceadjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textletterspaceadjust{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlsa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlsa{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrandomcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrandomcolor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrandomfonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrandomfonts{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrandomfonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrandomfonts{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrandomuclc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrandomuclc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttabularasa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttabularasa{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textuppercasecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuppercasecolor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chickenizesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chickenizesetup{${1:lua commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luadraw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luadraw{${1:vshift}}{${2:lua commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"drawchicken\"\n    },\n    {\n      \"name\": \"drawcov\"\n    },\n    {\n      \"name\": \"drawhorse\"\n    },\n    {\n      \"name\": \"drawfathorse\"\n    },\n    {\n      \"name\": \"drawunicorn\"\n    },\n    {\n      \"name\": \"drawfatunicorn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/china2e.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TerrEle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TerrEle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"terrele\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"terrele{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AstrEle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AstrEle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"astrele\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"astrele{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"MoonSta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MoonSta{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"moonsta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moonsta{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"MoonPha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MoonPha{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CyclYears\"\n    },\n    {\n      \"name\": \"Year\"\n    },\n    {\n      \"name\": \"Month\"\n    },\n    {\n      \"name\": \"Day\"\n    },\n    {\n      \"name\": \"Book\"\n    },\n    {\n      \"name\": \"MoonStations\"\n    },\n    {\n      \"name\": \"WaxingZodiac\"\n    },\n    {\n      \"name\": \"WaningZodiac\"\n    },\n    {\n      \"name\": \"ZodiacSign\"\n    },\n    {\n      \"name\": \"New\"\n    },\n    {\n      \"name\": \"TerrElements\"\n    },\n    {\n      \"name\": \"AstrElements\"\n    },\n    {\n      \"name\": \"Solar\"\n    },\n    {\n      \"name\": \"Lunar\"\n    },\n    {\n      \"name\": \"Festival\"\n    },\n    {\n      \"name\": \"Beginning\"\n    },\n    {\n      \"name\": \"Morning\"\n    },\n    {\n      \"name\": \"Leap\"\n    },\n    {\n      \"name\": \"NewGregYear\"\n    },\n    {\n      \"name\": \"NewChinYear\"\n    },\n    {\n      \"name\": \"Calendar\"\n    },\n    {\n      \"name\": \"Wood\"\n    },\n    {\n      \"name\": \"Fire\"\n    },\n    {\n      \"name\": \"Earth\"\n    },\n    {\n      \"name\": \"Metal\"\n    },\n    {\n      \"name\": \"Water\"\n    },\n    {\n      \"name\": \"Nul\"\n    },\n    {\n      \"name\": \"One\"\n    },\n    {\n      \"name\": \"Two\"\n    },\n    {\n      \"name\": \"Three\"\n    },\n    {\n      \"name\": \"Four\"\n    },\n    {\n      \"name\": \"Five\"\n    },\n    {\n      \"name\": \"Six\"\n    },\n    {\n      \"name\": \"Seven\"\n    },\n    {\n      \"name\": \"Eight\"\n    },\n    {\n      \"name\": \"Nine\"\n    },\n    {\n      \"name\": \"Ten\"\n    },\n    {\n      \"name\": \"Eleven\"\n    },\n    {\n      \"name\": \"Twelve\"\n    },\n    {\n      \"name\": \"Thirteen\"\n    },\n    {\n      \"name\": \"Fourteen\"\n    },\n    {\n      \"name\": \"Fifteen\"\n    },\n    {\n      \"name\": \"Sixteen\"\n    },\n    {\n      \"name\": \"Seventeen\"\n    },\n    {\n      \"name\": \"Eighteen\"\n    },\n    {\n      \"name\": \"Nineteen\"\n    },\n    {\n      \"name\": \"Twenty\"\n    },\n    {\n      \"name\": \"Thirty\"\n    },\n    {\n      \"name\": \"Forty\"\n    },\n    {\n      \"name\": \"Fifty\"\n    },\n    {\n      \"name\": \"Sixty\"\n    },\n    {\n      \"name\": \"Seventy\"\n    },\n    {\n      \"name\": \"Eighty\"\n    },\n    {\n      \"name\": \"Ninety\"\n    },\n    {\n      \"name\": \"Hundred\"\n    },\n    {\n      \"name\": \"Thousand\"\n    },\n    {\n      \"name\": \"FirstMonth\"\n    },\n    {\n      \"name\": \"Euro\"\n    },\n    {\n      \"name\": \"Greenpoint\"\n    },\n    {\n      \"name\": \"Info\"\n    },\n    {\n      \"name\": \"Request\"\n    },\n    {\n      \"name\": \"Postbox\"\n    },\n    {\n      \"name\": \"Pound\"\n    },\n    {\n      \"name\": \"Telephone\"\n    },\n    {\n      \"name\": \"symA\"\n    },\n    {\n      \"name\": \"symB\"\n    },\n    {\n      \"name\": \"symC\"\n    },\n    {\n      \"name\": \"symD\"\n    },\n    {\n      \"name\": \"symE\"\n    },\n    {\n      \"name\": \"symF\"\n    },\n    {\n      \"name\": \"symG\"\n    },\n    {\n      \"name\": \"symH\"\n    },\n    {\n      \"name\": \"symI\"\n    },\n    {\n      \"name\": \"symJ\"\n    },\n    {\n      \"name\": \"symK\"\n    },\n    {\n      \"name\": \"symL\"\n    },\n    {\n      \"name\": \"symM\"\n    },\n    {\n      \"name\": \"symN\"\n    },\n    {\n      \"name\": \"symO\"\n    },\n    {\n      \"name\": \"symP\"\n    },\n    {\n      \"name\": \"symQ\"\n    },\n    {\n      \"name\": \"symR\"\n    },\n    {\n      \"name\": \"symS\"\n    },\n    {\n      \"name\": \"symT\"\n    },\n    {\n      \"name\": \"symU\"\n    },\n    {\n      \"name\": \"symV\"\n    },\n    {\n      \"name\": \"symW\"\n    },\n    {\n      \"name\": \"symX\"\n    },\n    {\n      \"name\": \"symY\"\n    },\n    {\n      \"name\": \"symZ\"\n    },\n    {\n      \"name\": \"symAE\"\n    },\n    {\n      \"name\": \"symOE\"\n    },\n    {\n      \"name\": \"symUE\"\n    },\n    {\n      \"name\": \"Chinasym\"\n    },\n    {\n      \"name\": \"BLOCK\"\n    },\n    {\n      \"name\": \"AE\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"UE\"\n    },\n    {\n      \"name\": \"Real\"\n    },\n    {\n      \"name\": \"Natural\"\n    },\n    {\n      \"name\": \"Integer\"\n    },\n    {\n      \"name\": \"Rational\"\n    },\n    {\n      \"name\": \"Complex\"\n    },\n    {\n      \"name\": \"REAL\"\n    },\n    {\n      \"name\": \"NATURAL\"\n    },\n    {\n      \"name\": \"INTEGER\"\n    },\n    {\n      \"name\": \"RATIONAL\"\n    },\n    {\n      \"name\": \"COMPLEX\"\n    },\n    {\n      \"name\": \"chin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textchi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chinarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upperlimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prtarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beginerr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Terrerr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Astrerr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Staterr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Moonerr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errmess\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiprt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"chiprt{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"chincorr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chinesechess.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"l3draw\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cchessboard\"\n    },\n    {\n      \"name\": \"cchessboard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cchessboard[${1:外观选项%keyvals}]\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cchessboard*\"\n    },\n    {\n      \"name\": \"cchessboard*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cchessboard*[${1:外观选项%keyvals}]\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cchessman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cchessman{${1:棋子列表}}\"\n      }\n    },\n    {\n      \"name\": \"cchessman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cchessman[${2:外观选项%keyvals}]{${1:棋子列表}}\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"init\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"init{${1:棋子列表}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"set{${1:棋子位置}}{${2:棋子位置列表}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"del{${1:棋盘坐标}}\"\n      }\n    },\n    {\n      \"name\": \"mov\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mov{${1:棋子编码}}{${2:原棋盘坐标}}{${3:新棋盘坐标}}\"\n      }\n    },\n    {\n      \"name\": \"printman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printman{${1:棋子编码%ref}}\"\n      }\n    },\n    {\n      \"name\": \"printman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printman[${2:外观选项%keyvals}]{${1:棋子编码%ref}}\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getpiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpiece{${1:棋子编码}}\"\n      }\n    },\n    {\n      \"name\": \"getpiece\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getpiece[${2:棋子字号}]{${1:棋子编码}}\"\n      }\n    },\n    {\n      \"name\": \"piecechar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"piecechar{${1:棋子编码}}{${2:棋子字符}}\"\n      }\n    },\n    {\n      \"name\": \"resetpiece\"\n    },\n    {\n      \"name\": \"cchessset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cchessset{${1:外观选项%keyvals}}\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"setcchessman\"\n    },\n    {\n      \"name\": \"setcchessman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:外观选项%keyvals}]\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcchessman*\"\n    },\n    {\n      \"name\": \"setcchessman*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:外观选项%keyvals}]\",\n        \"keys\": [\n          \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/chinesechess#c\": [\n      \"draft\"\n    ],\n    \"\\\\cchessboard,\\\\cchessboard*,\\\\cchessman,\\\\begin{setcchessman},\\\\begin{setcchessman*},\\\\printman,\\\\cchessset\": [\n      \"draft\",\n      \"gridsize=\",\n      \"boardtype=${1|x,x+,x+t,x+tn,x+Xtn|}\",\n      \"boardlinewd=\",\n      \"boardlinecolor=\",\n      \"boardbg=${1:imagefile}\",\n      \"piecechar={${1:piece}}{${2:symbol}}\",\n      \"piecefont=${1:font commands}\",\n      \"piecetype=${1|o,oo,ooo|}\",\n      \"boxlinewd=\",\n      \"boxcolor=\",\n      \"redpiece=\",\n      \"blkpiece=\",\n      \"lower=\",\n      \"donut=\",\n      \"redupper=\",\n      \"blkupper=\",\n      \"shadow=\",\n      \"charstroke=${1|none,solid,white,bold,invisible|}\",\n      \"man={${1:man options}}\",\n      \"man/label=\",\n      \"man/nums=${1:integer}\",\n      \"resize={${1:resize options}}\",\n      \"resize/type=${1|none,real|}\",\n      \"resize/xscale=${1:factor}\",\n      \"resize/yscale=${1:factor}\",\n      \"resize/scale=${1:factor}\",\n      \"resize/width=\",\n      \"resize/height=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chinesechess#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chkfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chkfloat#c\": [\n      \"tolerance=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chkfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chmst-pdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemist\"\n    },\n    {\n      \"name\": \"xymtx-pdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chmstpdfsw\"\n    },\n    {\n      \"name\": \"electronHldshiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronHldshiftarrow(${1:xend},${2:yend})(${3:xstart},${4:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronHldshiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronHldshiftarrow[${1:direction}](${2:xend},${3:yend})(${4:xstart},${5:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronHlushiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronHlushiftarrow(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronHlushiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronHlushiftarrow[${1:direction}](${2:xstart},${3:ystart})(${4:xend},${5:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronHrdshiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronHrdshiftarrow(${1:xend},${2:yend})(${3:xstart},${4:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronHrdshiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronHrdshiftarrow[${1:direction}](${2:xend},${3:yend})(${4:xstart},${5:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronHrushiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronHrushiftarrow(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronHrushiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronHrushiftarrow[${1:direction}](${2:xstart},${3:ystart})(${4:xend},${5:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronlshiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronlshiftarrow(${1:xend},${2:yend})(${3:xstart},${4:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronlshiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronlshiftarrow[${1:direction}](${2:xend},${3:yend})(${4:xstart},${5:ystart})\"\n      }\n    },\n    {\n      \"name\": \"electronrshiftarrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"electronrshiftarrow(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronrshiftarrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"electronrshiftarrow[${1:direction}](${2:xstart},${3:ystart})(${4:xend},${5:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftArrowl\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftArrowl(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftArrowr\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftArrowr(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftHld\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftHld(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftHlu\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftHlu(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftHrd\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftHrd(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"electronshiftHru\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"electronshiftHru(${1:xstart},${2:ystart})(${3:xctrl1},${4:yctrl1})(${5:xctrl2},${6:yctrl2})(${7:xend},${8:yend})\"\n      }\n    },\n    {\n      \"name\": \"futuresubst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"futuresubst{${1:content}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/chmst-pdf#c\": [\n      \"chemtimes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/chmst-pdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/chngcntr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"counterwithin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin{${1:counter}}{${2:within}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin*{${1:counter}}{${2:within}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout{${1:counter}}{${2:within}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout*{${1:counter}}{${2:within}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chordbars.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"wasysym\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tkz-euclide\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addHalfBar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addHalfBar{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"addMeasures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addMeasures{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"addN\"\n    },\n    {\n      \"name\": \"bpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bpm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chordf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chordf{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"chordh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chordh{${1:note1}}{${2:note2}}\"\n      }\n    },\n    {\n      \"name\": \"chordline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chordline{${1:note}}{${2:num of bars}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"countbarsNo\"\n    },\n    {\n      \"name\": \"countbarsYes\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"MajS\"\n    },\n    {\n      \"name\": \"printNbBars\"\n    },\n    {\n      \"name\": \"repeatBar\"\n    },\n    {\n      \"name\": \"repeatBarPair\"\n    },\n    {\n      \"name\": \"resetchordbars\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"songtitle\"\n    },\n    {\n      \"name\": \"susF\"\n    },\n    {\n      \"name\": \"barsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpbfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpbthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chordFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberOfBarsPerLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ycoeff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chordbar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:num of bars}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"chordbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:repetitions}]{${1:num of bars}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"chordbar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:num of bars}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"chordbar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:repetitions}]{${1:num of bars}}{${2:name}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chordbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chordbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chordbox{${1:chord-name%formula}}{${2:fret-positions}}\"\n      }\n    },\n    {\n      \"name\": \"chordbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chordbox[${3:base-fret}]{${1:chord-name%formula}}{${2:fret-positions}}\"\n      }\n    },\n    {\n      \"name\": \"bchordbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bchordbox{${1:chord-name%formula}}{${2:fret-positions}}{${3:barre-frets}}\"\n      }\n    },\n    {\n      \"name\": \"bchordbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bchordbox[${4:base-fret}]{${1:chord-name%formula}}{${2:fret-positions}}{${3:barre-frets}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chordboxenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:basefret}}{${2:chord-name%formula}}{${3:fret-positions}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chronology.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"decimaldate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"decimaldate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"eventspan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eventspan{${1:begin-date}}{${2:end-date}}{${3:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"eventspan\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"eventspan{${1:begin-date}}{${2:end-date}}{${3:label%text}}[${4:fill}]\"\n      }\n    },\n    {\n      \"name\": \"eventspan\",\n      \"arg\": {\n        \"format\": \"{}{}{}[][]\",\n        \"snippet\": \"eventspan{${1:begin-date}}{${2:end-date}}{${3:label%text}}[${4:fill}][${5:opacity}]\"\n      }\n    },\n    {\n      \"name\": \"eventspan\",\n      \"arg\": {\n        \"format\": \"{}{}{}[][][]\",\n        \"snippet\": \"eventspan{${1:begin-date}}{${2:end-date}}{${3:label%text}}[${4:fill}][${5:opacity}][${6:bar-thickness}]\"\n      }\n    },\n    {\n      \"name\": \"eventspan\",\n      \"arg\": {\n        \"format\": \"{}{}{}[][][][]\",\n        \"snippet\": \"eventspan{${1:begin-date}}{${2:end-date}}{${3:label%text}}[${4:fill}][${5:opacity}][${6:bar-thickness}][${7:indicator}]\"\n      }\n    },\n    {\n      \"name\": \"eventpoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eventpoint{${1:date}}{${2:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"eventpoint\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"eventpoint{${1:date}}{${2:label%text}}[${3:fill}]\"\n      }\n    },\n    {\n      \"name\": \"eventpoint\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"eventpoint{${1:date}}{${2:label%text}}[${3:fill}][${4:opacity}]\"\n      }\n    },\n    {\n      \"name\": \"eventpoint\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"eventpoint{${1:date}}{${2:label%text}}[${3:fill}][${4:opacity}][${5:height}]\"\n      }\n    },\n    {\n      \"name\": \"event\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"event{${1:end-date}}{${2:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"event\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"event[${3:begin-date}]{${1:end-date}}{${2:label%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chronology\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:year-start}}{${2:year-stop}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"{${1:year-start}}{${2:year-stop}}{${3:width}}[${4:scaling}]\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:step}]{${1:year-start}}{${2:year-stop}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"[${4:step}]{${1:year-start}}{${2:year-stop}}{${3:width}}[${5:scaling}]\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"arg\": {\n        \"format\": \"*{}{}{}\",\n        \"snippet\": \"*{${1:year-start}}{${2:year-stop}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}{}[]\",\n        \"snippet\": \"*{${1:year-start}}{${2:year-stop}}{${3:width}}[${4:scaling}]\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}{}\",\n        \"snippet\": \"*[${4:step}]{${1:year-start}}{${2:year-stop}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"chronology\",\n      \"arg\": {\n        \"format\": \"*[]{}{}{}[]\",\n        \"snippet\": \"*[${4:step}]{${1:year-start}}{${2:year-stop}}{${3:width}}[${5:scaling}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/chronosys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"startchronology\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startchronology\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"startchronology[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{chronology},\\\\chronology,\\\\startchronology,\\\\setupchronology,\\\\setupchronology\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stopchronology\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chronoevent{${1:year}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chronoevent{${1:month/year}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chronoevent{${1:day/month/year}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chronoevent[${3:options}]{${1:year}}{${2:label text}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chronoevent[${3:options}]{${1:month/year}}{${2:label text}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chronoevent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chronoevent[${3:options}]{${1:day/month/year}}{${2:label text}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chronoperiode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chronoperiode{${1:start-year}}{${2:end-year}}{${3:label text%text}}\"\n      }\n    },\n    {\n      \"name\": \"chronoperiode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"chronoperiode[${4:options%keyvals}]{${1:start-year}}{${2:end-year}}{${3:label text%text}}\",\n        \"keys\": [\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chronoperiodecoloralternation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chronoperiodecoloralternation{${1:color1,color2,...}}\"\n      }\n    },\n    {\n      \"name\": \"restartchronoperiodecolor\"\n    },\n    {\n      \"name\": \"restartchronoperiodecolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restartchronoperiodecolor[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"chronograduation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chronograduation{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"chronograduation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chronograduation[${2:periode|event}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"chronograduation\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chronograduation[${2:periode|event}][${3:options%keyvals}]{${1:integer}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\",\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"definechronoevent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definechronoevent{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"definechronoevent\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"definechronoevent{${1:name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"definechronoperiode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definechronoperiode{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"definechronoperiode\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"definechronoperiode{${1:name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setupchronology\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupchronology{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{chronology},\\\\chronology,\\\\startchronology,\\\\setupchronology,\\\\setupchronology\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupchronoevent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupchronoevent{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupchronoevent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setupchronoevent[${2:name}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setupchronoperiode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupchronoperiode{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupchronoperiode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setupchronoperiode[${2:name}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setupchronograduation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupchronograduation{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\",\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupchronograduation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setupchronograduation[${2:periode|event}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\",\n          \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chronoperiodcolor\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chronology\"\n    },\n    {\n      \"name\": \"chronology\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{chronology},\\\\chronology,\\\\startchronology,\\\\setupchronology,\\\\setupchronology\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{chronology},\\\\chronology,\\\\startchronology,\\\\setupchronology,\\\\setupchronology\": [\n      \"startyear=${1:number}\",\n      \"stopyear=${1:number}\",\n      \"color=\",\n      \"height=\",\n      \"width=\",\n      \"datesstyle=${1:command}\",\n      \"dateselevation=\",\n      \"startdate\",\n      \"stopdate\",\n      \"dates\",\n      \"arrow\",\n      \"arrowheight=\",\n      \"arrowwidth=\",\n      \"arrowcolor=\",\n      \"box\",\n      \"align=${1|right,center,left|}\"\n    ],\n    \"\\\\chronoevent,\\\\chronograduation,\\\\definechronoevent,\\\\setupchronoevent,\\\\setupchronograduation\": [\n      \"barre\",\n      \"date\",\n      \"conversionmonth\",\n      \"mark\",\n      \"year\",\n      \"icon=${1:symbol}\",\n      \"markdepth=\",\n      \"iconheight=\",\n      \"textstyle=${1:command}\",\n      \"datesseparation=${1:symbol}\",\n      \"datestyle=${1:command}\",\n      \"datesstyle=${1:command}\",\n      \"colorbox=\",\n      \"ifcolorbox\",\n      \"textwidth=\"\n    ],\n    \"\\\\chronoperiode,\\\\chronograduation,\\\\definechronoperiode,\\\\setupchronoperiode,\\\\setupchronograduation\": [\n      \"startdate\",\n      \"stopdate\",\n      \"dates\",\n      \"datesstyle=${1:command}\",\n      \"textstyle=${1:command}\",\n      \"color=\",\n      \"dateselevation=\",\n      \"textdepth=\",\n      \"colorbox=\",\n      \"ifcolorbox\",\n      \"topheight=\",\n      \"bottomdepth=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/churchslavonic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"cu-num\"\n    },\n    {\n      \"name\": \"cu-calendar\"\n    },\n    {\n      \"name\": \"cu-util\"\n    },\n    {\n      \"name\": \"cu-kinovar\"\n    },\n    {\n      \"name\": \"cu-kruk\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cuMarginMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuMarginMark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cuMarginMarkSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuMarginMarkText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuMarginMarkText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textchurchslavonic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textchurchslavonic[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/churchslavonic#c,\\\\setmainlanguage/churchslavonic#c,\\\\setotherlanguage/churchslavonic#c,\\\\textlang/churchslavonic#c,\\\\textchurchslavonic#c,\\\\begin{lang}/churchslavonic#c,\\\\begin{churchslavonic}#c,\\\\selectlanguage/churchslavonic#c,\\\\foreignlanguage/churchslavonic#c,\\\\begin{otherlanguage}/churchslavonic#c,\\\\begin{otherlanguage*}/churchslavonic#c,\\\\resetdefaultlanguage/churchslavonic#c,\\\\setlanguagealias/churchslavonic#c,\\\\setlanguagealias*/churchslavonic#c,\\\\pghyphenation/churchslavonic#c,\\\\setlanghyphenmins/churchslavonic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textchurchslavonic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textchurchslavonic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionschurchslavonic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datechurchslavonic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azbuk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"azbuk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cosec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Variance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Proj\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"churchslavonic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/churchslavonic#c,\\\\setmainlanguage/churchslavonic#c,\\\\setotherlanguage/churchslavonic#c,\\\\textlang/churchslavonic#c,\\\\textchurchslavonic#c,\\\\begin{lang}/churchslavonic#c,\\\\begin{churchslavonic}#c,\\\\selectlanguage/churchslavonic#c,\\\\foreignlanguage/churchslavonic#c,\\\\begin{otherlanguage}/churchslavonic#c,\\\\begin{otherlanguage*}/churchslavonic#c,\\\\resetdefaultlanguage/churchslavonic#c,\\\\setlanguagealias/churchslavonic#c,\\\\setlanguagealias*/churchslavonic#c,\\\\pghyphenation/churchslavonic#c,\\\\setlanghyphenmins/churchslavonic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"churchslavonic\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/churchslavonic#c\": [\n      \"color\",\n      \"gray\",\n      \"bw\",\n      \"autocolormarks\",\n      \"noautocolormarks\"\n    ],\n    \"\\\\setdefaultlanguage/churchslavonic#c,\\\\setmainlanguage/churchslavonic#c,\\\\setotherlanguage/churchslavonic#c,\\\\textlang/churchslavonic#c,\\\\textchurchslavonic#c,\\\\begin{lang}/churchslavonic#c,\\\\begin{churchslavonic}#c,\\\\selectlanguage/churchslavonic#c,\\\\foreignlanguage/churchslavonic#c,\\\\begin{otherlanguage}/churchslavonic#c,\\\\begin{otherlanguage*}/churchslavonic#c,\\\\resetdefaultlanguage/churchslavonic#c,\\\\setlanguagealias/churchslavonic#c,\\\\setlanguagealias*/churchslavonic#c,\\\\pghyphenation/churchslavonic#c,\\\\setlanghyphenmins/churchslavonic#c\": [\n      \"spelling=${1|modern,traditional|}\",\n      \"numerals=${1|latin,cyrillic|}\",\n      \"babelshorthands\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/churchslavonic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cinzel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cinzel\"\n    },\n    {\n      \"name\": \"textcinzel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcinzel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cinzelblack\"\n    },\n    {\n      \"name\": \"textcinzelblack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcinzelblack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cinzelfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cinzel#c\": [\n      \"type1\",\n      \"black\",\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cinzel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/circle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Circle\"\n    },\n    {\n      \"name\": \"Circle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Circle[${1:f}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/circledsteps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Circled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Circled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Circled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Circled[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Circled,\\\\CircledTop,\\\\CircledText,\\\\CircledParamOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CircledTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CircledTop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CircledTop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CircledTop[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Circled,\\\\CircledTop,\\\\CircledText,\\\\CircledParamOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CircledText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CircledText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CircledText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CircledText[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Circled,\\\\CircledTop,\\\\CircledText,\\\\CircledParamOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cstep\"\n    },\n    {\n      \"name\": \"startcstep\"\n    },\n    {\n      \"name\": \"resetcstep\"\n    },\n    {\n      \"name\": \"thecstepcnt\"\n    },\n    {\n      \"name\": \"CircledParamOpts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CircledParamOpts{${1:options%keyvals}}{0 or 1}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Circled,\\\\CircledTop,\\\\CircledText,\\\\CircledParamOpts\": [\n      \"inner ysep=\",\n      \"inner xsep=\",\n      \"inner color=\",\n      \"outer color=\",\n      \"fill color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/circledtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"l3draw\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"circledtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circledtext[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\circledtext,\\\\circledtextset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"circledtextset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledtextset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\circledtext,\\\\circledtextset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"charboxwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charboxht\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\circledtext,\\\\circledtextset\": [\n      \"basechar=${1:base char}\",\n      \"charf=${1:format macros}\",\n      \"boxtype=${1|o,o+,ox,ox+,x+,O,O+,OX,OX+,X+,oo,Oo,OO|}\",\n      \"charshrink=${1:factor}\",\n      \"resize=${1|none,real,base|}\",\n      \"xscale=${1:factor}\",\n      \"yscale=${1:factor}\",\n      \"width=\",\n      \"height=\",\n      \"boxlinewidth=\",\n      \"crosslinewidth=\",\n      \"crosscolorratio=${1:percent}\",\n      \"boxcolor=\",\n      \"charcolor=\",\n      \"boxfill=\",\n      \"charstroke=${1|none,solid,dashed,invisible|}\",\n      \"dashpattern={${1:len1,len2,...}}\",\n      \"lowerbgcolor=\",\n      \"upperbgcolor=\",\n      \"shadowcolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/circuitikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    },\n    {\n      \"name\": \"tikzlibraryfpu\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"siunitx\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circuitikzbasekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctikzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzvalof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzvalof{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsetvalof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctikzsetvalof{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfstartlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unexpandedvalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unexpandedvalueof{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarebipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarebipole{${1:anchors}}{${2:lower ysize}}{${3:shape}}{${4:upper ysize}}{${5:width}}{${6:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarebipolescaled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarebipolescaled{${1:scale}}{${2:anchors}}{${3:lower ysize}}{${4:shape}}{${5:upper ysize}}{${6:width}}{${7:code}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaledRlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctikzloadstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzloadstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctikzsetstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzsetstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctikzgetanchor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctikzgetanchor{${1:name}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzgetdirection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzgetdirection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipx{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipy{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzflipxy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzflipxy{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztextnot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikztextnot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsubcircuitdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ctikzsubcircuitdef{${1:name}}{${2:anchor1,anchor2,...}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzsubcircuitactivate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzsubcircuitactivate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztunablearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ctikztunablearrow{${1:thickness}}{${2:length}}{${3:angle}}{${4:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctikztunablearrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ctikztunablearrow[${5:options}]{${1:thickness}}{${2:length}}{${3:angle}}{${4:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircresetpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawpoles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaledwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarethyristor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclarethyristor{${1:name}}{${2:fill}}{${3:gate pos}}{${4:extra code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclaretriac{${1:name}}{${2:fill}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdiodestylemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarecutesw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarecutesw{${1:name}}{${2:bar pos}}{${3:arrow code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarecutespdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarecutespdt{${1:name}}{${2:bar pos}}{${3:arrow code}}\"\n      }\n    },\n    {\n      \"name\": \"drawmeteringcircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarejumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclarejumper{${1:name}}{${2:link arc height}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaresolderjumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclaresolderjumper{${1:name}}{0|1}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaredoublesolderjumper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaredoublesolderjumper{${1:name}}{0|${2:1}{0}|1}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarelogicport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarelogicport{${1:name}}{${2:number}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareeurologicport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareeurologicport{${1:name}}{${2:symbol}}{${3:number}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeeport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeeport{${1:name}}{${2:type}}{${3:polarity}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeeportpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeeportpair{${1:name}}{${2:negated name}}{${3:type}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeebufferport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeebufferport{${1:name}}{${2:polarity}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeebufferportpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeebufferportpair{${1:name}}{${2:negated name}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclareieeetgate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclareieeetgate{${1:name}}{1 or 2}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretransistor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaretransistor{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"drawdobydiodedot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawdobydiodedot{${1:name}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"drawbodydiode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawbodydiode{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declarebpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarebpt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declarebjt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarebjt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declareigbt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareigbt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declaregfet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaregfet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drawfetcore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawfetcore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaretransistorwrapperaddbulk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaretransistorwrapperaddbulk{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarejunctiontransistor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarejunctiontransistor{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaretube\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaretube{${1:name}}{${2:grid anchors}}{${3:grid code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclarequadpole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclarequadpole{${1:name}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircmathresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcircdeclarefourport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcircdeclarefourport{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcircdeclaredbipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcircdeclaredbipole{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"setscaledRlenforclass\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"circuitikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/circuitikz#c\": [\n      \"european\",\n      \"american\",\n      \"europeanvoltages\",\n      \"straightvoltages\",\n      \"americanvoltages\",\n      \"oldvoltagedirection\",\n      \"nooldvoltagedirection\",\n      \"RPvoltages\",\n      \"EFvoltages\",\n      \"europeancurrents\",\n      \"americancurrents\",\n      \"americanresistors\",\n      \"europeanresistors\",\n      \"americaninductors\",\n      \"europeaninductors\",\n      \"cuteinductors\",\n      \"americanports\",\n      \"europeanports\",\n      \"americangfsurgearrester\",\n      \"europeangfsurgearrester\",\n      \"fulldiode\",\n      \"emptydiode\",\n      \"strokediode\",\n      \"arrowmos\",\n      \"noarrowmos\",\n      \"fetbodydiode\",\n      \"nofetbodydiode\",\n      \"fetsolderdot\",\n      \"nofetsolderdot\",\n      \"emptypmoscircle\",\n      \"lazymos\",\n      \"legacytransistorstext\",\n      \"nolegacytransistorstext\",\n      \"centertransistorstext\",\n      \"straightlabels\",\n      \"rotatelabels\",\n      \"smartlabels\",\n      \"betterproportions\",\n      \"siunitx\",\n      \"nosiunitx\",\n      \"compatibility\"\n    ],\n    \"\\\\ctikzloadstyle#c,\\\\ctikzsetstyle#c\": [\n      \"romano\",\n      \"legacy\",\n      \"example\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/circuitikz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/circularglyphs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CircGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CircGlyph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CircGlyph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CircGlyph[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\CircGlyph,\\\\CircGlyph*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CircGlyph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CircGlyph*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CircGlyph*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CircGlyph*[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\CircGlyph,\\\\CircGlyph*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\CircGlyph,\\\\CircGlyph*\": [\n      \"Inline\",\n      \"Ext\",\n      \"Color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/citation-style-language.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cslsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cslsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cslsetup,\\\\usepackage/citation-style-language#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addbibresource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbibresource{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite*[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parencite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parencite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"parencite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencite*[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcite[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:options%keyvals}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citeyearpar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar*[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:options%keyvals}]{${1:keylist}}\",\n        \"keys\": [\n          \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printbibliography\"\n    },\n    {\n      \"name\": \"printbibliography\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibliography[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printbibliography\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newrefsection\"\n    },\n    {\n      \"name\": \"newrefsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newrefsection[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{refsection},\\\\newrefsection\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endrefsection\"\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defbibheading{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defbibheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defbibheading{${1:name}}[${3:title%text}]{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"refsection\"\n    },\n    {\n      \"name\": \"refsection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{refsection},\\\\newrefsection\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\cslsetup,\\\\usepackage/citation-style-language#c\": [\n      \"regression-test\",\n      \"style=${1|american-chemical-society,american-medical-association,american-political-science-association,american-sociological-association,apa,chicago-author-date,chicago-fullnote-bibliography,chicago-note-bibliography,elsevier-harvard,harvard-cite-them-right,ieee,modern-humanities-research-association,modern-language-association,nature,vancouver|}\",\n      \"bib-resource=${1:resource}\",\n      \"locale=${1:language code}\",\n      \"ref-section=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"backref=${1|true,page,section,false|}\",\n      \"bib-font=${1:font commands}\",\n      \"bib-entry-page-break\",\n      \"bib-item-sep=${1:<length> or <glue>}\",\n      \"bib-hang=\",\n      \"bib-par-indent=\",\n      \"prefix-separator=${1:separator}\",\n      \"suffix-separator=${1:separator}\"\n    ],\n    \"\\\\cite,\\\\cite*,\\\\parencite,\\\\parencite*,\\\\citep,\\\\textcite,\\\\citet,\\\\cites,\\\\citeyearpar,\\\\citeyearpar*,\\\\fullcite\": [\n      \"prefix=${1:text}\",\n      \"suffix=${1:text}\",\n      \"act=${1:number}\",\n      \"appendix=${1:number}\",\n      \"article=${1:number}\",\n      \"book=${1:number}\",\n      \"canon=${1:number}\",\n      \"chapter=${1:number}\",\n      \"column=${1:number}\",\n      \"elocation=${1:number}\",\n      \"equation=${1:number}\",\n      \"figure=${1:number}\",\n      \"folio=${1:number}\",\n      \"infix=${1:text}\",\n      \"issue=${1:number}\",\n      \"line=${1:number}\",\n      \"note=${1:number}\",\n      \"opus=${1:number}\",\n      \"page=${1:number}\",\n      \"paragraph=${1:number}\",\n      \"part=${1:number}\",\n      \"rule=${1:number}\",\n      \"scene=${1:number}\",\n      \"section=${1:number}\",\n      \"sub-verbo=${1:number}\",\n      \"supplement=${1:number}\",\n      \"table=${1:number}\",\n      \"timestamp=${1:number}\",\n      \"title=${1:number}\",\n      \"verse=${1:number}\",\n      \"version=${1:number}\",\n      \"volume=${1:number}\"\n    ],\n    \"\\\\printbibliography\": [\n      \"heading=${1:text}\",\n      \"title=${1:text}\",\n      \"prenote=${1:text}\",\n      \"postnote=${1:text}\",\n      \"type=${1:entry type}\",\n      \"nottype=${1:entry type}\",\n      \"keyword=${1:keyword}\",\n      \"notkeyword=${1:keyword}\",\n      \"category=${1:category}\",\n      \"notcategory=${1:category}\"\n    ],\n    \"\\\\begin{refsection},\\\\newrefsection\": [\n      \"style=${1:style id}\",\n      \"bib-resource=${1:resource}\",\n      \"locale=${1:language code}\"\n    ],\n    \"\\\\printbibheading\": [\n      \"heading=${1:text}\",\n      \"title=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\cslsetup,\\\\usepackage/citation-style-language#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cite.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CiteMoveChars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OverciteFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeprepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citemidpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citepunctpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenum{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citen{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonline{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cite#c\": [\n      \"superscript\",\n      \"super\",\n      \"ref\",\n      \"nospace\",\n      \"space\",\n      \"nobreak\",\n      \"nosort\",\n      \"sort\",\n      \"nomove\",\n      \"move\",\n      \"noadjust\",\n      \"adjust\",\n      \"nocompress\",\n      \"compress\",\n      \"biblabel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cite#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/citeall.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citeall\"\n    },\n    {\n      \"name\": \"citeall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"citeall[${1:list of cmds}]\"\n      }\n    },\n    {\n      \"name\": \"citeall\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"citeall[${1:list of cmds}][${2:num of entries}]\"\n      }\n    },\n    {\n      \"name\": \"citeallgroupseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeallseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeallfinentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citealldefaultcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeallpreambledefinition\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cjhebrew.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luabidi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"<\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjhebfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjLR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cjLR{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cjRL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cjRL{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"dottedcircle\",\n      \"detail\": \"◌\",\n      \"doc\": \"Dotted circle\"\n    },\n    {\n      \"name\": \"endofword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcjheb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcjheb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zeronojoin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cjhebrew\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cjkutf8-josa.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jong\"\n    },\n    {\n      \"name\": \"jung\"\n    },\n    {\n      \"name\": \"rieul\"\n    },\n    {\n      \"name\": \"makejosa\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cjkutf8-ko.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"CJKutf8\"\n    },\n    {\n      \"name\": \"cjkutf8-nanummjhanja\"\n    },\n    {\n      \"name\": \"cjkutf8-josa\"\n    },\n    {\n      \"name\": \"kolabels-utf\"\n    },\n    {\n      \"name\": \"ulem\",\n      \"if\": \"usedotemph\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"usedotemph\"\n    },\n    {\n      \"name\": \"konames-utf\",\n      \"if\": \"hangul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dotemph\",\n      \"if\": \"usedotemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dotemphchar\",\n      \"if\": \"usedotemph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotemphraise\",\n      \"if\": \"usedotemph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"lowerCJKchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowerCJKchar{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"CJKpostmathglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HangulGlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HangulPenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cancelCJKscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cancellowerCJKchar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cjkutf8-ko#c\": [\n      \"hangul\",\n      \"hanja\",\n      \"usecjkt1font\",\n      \"usedotemph\",\n      \"nojosa\",\n      \"truetype\",\n      \"mj=${1:font}\",\n      \"gt=${1:font}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cjkutf8-ko#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clara.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/clara#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/clara#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-BHCexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"bbding\"\n    },\n    {\n      \"name\": \"romannum\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"build\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"build{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"choicelengtha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choicelengthb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choicelengthc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choicelengthd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choicelengthe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"example[${1:score}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"exercise[${1:score}]\"\n      }\n    },\n    {\n      \"name\": \"fivechoices\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fivechoices{${1:opt1}}{${2:opt2}}{${3:opt3}}{${4:opt4}}{${5:opt5}}\"\n      }\n    },\n    {\n      \"name\": \"fourchoices\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fourchoices{${1:opt1}}{${2:opt2}}{${3:opt3}}{${4:opt4}}\"\n      }\n    },\n    {\n      \"name\": \"group\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"group{${1:题组%text}}{${2:题组的描述%text}}\"\n      }\n    },\n    {\n      \"name\": \"gt\"\n    },\n    {\n      \"name\": \"hint\"\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"key{${1:key%text}}\"\n      }\n    },\n    {\n      \"name\": \"keylength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lt\"\n    },\n    {\n      \"name\": \"maxlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"method\"\n    },\n    {\n      \"name\": \"methodonly\"\n    },\n    {\n      \"name\": \"myvertspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"question[${1:score}]\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"score\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"score{${1:step}}{${2:total}}\"\n      }\n    },\n    {\n      \"name\": \"sixchoices\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sixchoices{${1:opt1}}{${2:opt2}}{${3:opt3}}{${4:opt4}}{${5:opt5}}{${6:opt6}}\"\n      }\n    },\n    {\n      \"name\": \"subquestion\"\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theExample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theGroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMethod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threechoices\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threechoices{${1:opt1}}{${2:opt2}}{${3:opt3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"groups\"\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"questions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:可选参数}]\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:vspace}}\"\n      }\n    },\n    {\n      \"name\": \"subquestions\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/BHCexam#c\": [\n      \"answers\",\n      \"adobe\",\n      \"ubuntu\",\n      \"mac\",\n      \"windows\",\n      \"fandol\",\n      \"twocolumn\",\n      \"list\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/BHCexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-FUbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlevsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlegraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\titlegraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fachbereich\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fachbereich{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"insertfachbereich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\"\n    },\n    {\n      \"name\": \"datengerman\"\n    },\n    {\n      \"name\": \"extrasngerman\"\n    },\n    {\n      \"name\": \"noextrasngerman\"\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beamer#c\": [\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ],\n    \"\\\\titlegraphic\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-FUpowerdot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-powerdot\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"breakurl\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"pdfbase\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"pdfbase\",\n      \"if\": \"clock=true\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"framelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framelogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"insertframelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlelogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitlelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fachbereich\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fachbereich{${1:fachbereich}}\"\n      }\n    },\n    {\n      \"name\": \"insertfachbereich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"insertinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlegraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\titlegraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inserttitlegraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcentering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/FUpowerdot#c\": [\n      \"mode=${1|present,print,handout|}\",\n      \"nohandoutpagebreaks\",\n      \"nohandoutframes\",\n      \"paper=${1|screen,a4paper,letterpaper,smartboard,169|}\",\n      \"orient=${1|landscape,portrait|}\",\n      \"display=${1|slides,slidesnotes,notes|}\",\n      \"size=${1|8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt|}\",\n      \"fleqn\",\n      \"leqno\",\n      \"nopsheader\",\n      \"hlentries\",\n      \"hlsections\",\n      \"pauseslide\",\n      \"clock\"\n    ],\n    \"\\\\titlegraphic\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/FUpowerdot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-IEEEconf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"mathptmx\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"courier\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"titlesec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"callout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"callout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dobeforekey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dobeforekey{${1:bibid}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"extrareflistcode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"affiliation\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/IEEEconf#c\": [\n      \"latex8\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/IEEEconf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-IEEEtran.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"comsoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifCLASSOPTIONonecolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONonecolumntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONonecolumnfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONtwocolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtwocolumntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtwocolumnfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONoneside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONonesidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONonesidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONtwoside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtwosidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtwosidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONfinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONfinaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONfinalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONdraft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdrafttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdraftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONdraftcls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdraftclstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdraftclsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONdraftclsnofoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdraftclsnofoottrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONdraftclsnofootfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONpeerreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpeerreviewtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpeerreviewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONpeerreviewca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpeerreviewcatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpeerreviewcafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONjournal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONjournaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONjournalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONconference\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONconferencetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONconferencefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONtechnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtechnotetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtechnotefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONnofonttune\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONnofonttunetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONnofonttunefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONcaptionsoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcaptionsofftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcaptionsofffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONcomsoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcomsoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcomsocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONcompsoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcompsoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONcompsocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONtransmag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtransmagtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONtransmagfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSOPTIONromanappendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONromanappendicestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONromanappendicesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCLASSINFOpdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOpdftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOpdffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINPUTbaselinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINPUTinnersidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINPUToutersidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINPUTtoptextmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINPUTbottomtextmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOnormalsizebaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOnormalsizeunitybaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOpaperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSINFOpaperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CLASSOPTIONpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEoverridecommandlockouts\"\n    },\n    {\n      \"name\": \"IEEEmembership\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEmembership{${1:membership%text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEauthorblockN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEauthorblockN{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEauthorblockA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEauthorblockA{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEcompsocitemizethanks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEcompsocitemizethanks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEcompsocthanksitem\"\n    },\n    {\n      \"name\": \"IEEEpubid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEpubid{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEpubidadjcol\"\n    },\n    {\n      \"name\": \"IEEEspecialpapernotice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEspecialpapernotice{${1:notice%text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEaftertitletext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEaftertitletext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEkeywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEtitleabstractindextext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEtitleabstractindextext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEdisplaynontitleabstractindextext\"\n    },\n    {\n      \"name\": \"IEEEpeerreviewmaketitle\"\n    },\n    {\n      \"name\": \"IEEEraisesectionheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEraisesectionheading{${1:section declaration%text}}\"\n      }\n    },\n    {\n      \"name\": \"appendix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"appendix[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"IEEEtriggeratref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEtriggeratref{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEtriggercmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEtriggercmd{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"citedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citepunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEbibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEcompsocdiamondline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdisplayinfolinespercolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedisableglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedisabletitlecmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEtitletopspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEtitletopspaceextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivIEEEquantizevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefPreHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sublargesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theIEEEbiography\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparagraphdis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesectiondis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsectiondis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubsectiondis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEauthorrefmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEauthorrefmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEPARstart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEPARstart{${1:letter}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEPARstartCAPSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartDROPDEPTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartDROPLINES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartFONTSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartHEIGHTTEXT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartHOFFSET\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartITLCORRECT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartMINPAGELINES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartSEP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartWORDCAPSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartWORDFONTSTYLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEproofindentspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEproofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQED\"\n    },\n    {\n      \"name\": \"IEEEQEDhere\"\n    },\n    {\n      \"name\": \"IEEEQEDhereeqn\"\n    },\n    {\n      \"name\": \"IEEEQEDclosed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQEDopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEQEDoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEsetlabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEsetlabelwidth{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEilabelindentA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEilabelindentB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEilabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEelabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdlabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactoriii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactoriv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactorvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEElabelindentfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiednormlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedmathlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEiedlistdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifIEEEnolabelindentfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnolabelindentfactortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnolabelindentfactorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifIEEEnocalcleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnocalcleftmargintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnocalcleftmarginfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEusemathlabelsep\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyl\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyc\"\n    },\n    {\n      \"name\": \"IEEEiedlabeljustifyr\"\n    },\n    {\n      \"name\": \"IEEEeqnarraynumspace\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydefcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEeqnarraydefcol{${1:col id}}{${2:predef%definition}}{${3:postdef%definition}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydefcolsep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraydefcolsep{${1:colsep id}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"yesnumber\"\n    },\n    {\n      \"name\": \"IEEEyesnumber\"\n    },\n    {\n      \"name\": \"IEEEyesnumber*\"\n    },\n    {\n      \"name\": \"IEEEyessubnumber\"\n    },\n    {\n      \"name\": \"IEEEyessubnumber*\"\n    },\n    {\n      \"name\": \"IEEEnonumber\"\n    },\n    {\n      \"name\": \"IEEEnonumber*\"\n    },\n    {\n      \"name\": \"IEEEnosubnumber\"\n    },\n    {\n      \"name\": \"IEEEnosubnumber*\"\n    },\n    {\n      \"name\": \"theIEEEsubequation\"\n    },\n    {\n      \"name\": \"theIEEEsubequationdis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theequationdis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraymathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraytextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraydecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormaljot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraystrutsize{${1:height}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsize\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"IEEEeqnarraystrutsize{${1:height}}{${2:depth}}[${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsizeadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEeqnarraystrutsizeadd{${1:height}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutsizeadd\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"IEEEeqnarraystrutsizeadd{${1:height}}{${2:depth}}[${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\"\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEstrut[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEstrut[${1:height}][${2:depth}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEstrut\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"IEEEstrut[${1:height}][${2:depth}][${3:decl}]\"\n      }\n    },\n    {\n      \"name\": \"ifIEEEvisiblestruts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEvisiblestrutstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEvisiblestrutsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarraystrutmode\"\n    },\n    {\n      \"name\": \"IEEEeqnarraymulticol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEeqnarraymulticol{${1:num cols}}{${2:col type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayomit\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayvrule\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayvrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayvrule[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayseprow[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprow\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarrayseprow[${1:height}][${2:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayseprowcut[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayseprowcut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarrayseprowcut[${1:height}][${2:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayrulerow\"\n    },\n    {\n      \"name\": \"IEEEeqnarrayrulerow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarrayrulerow[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarraydblrulerow[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerow\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarraydblrulerow[${1:thickness%l}][${2:spacing}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\"\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IEEEeqnarraydblrulerowcut[${1:thickness%l}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraydblrulerowcut\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"IEEEeqnarraydblrulerowcut[${1:thickness%l}][${2:spacing}]\"\n      }\n    },\n    {\n      \"name\": \"bstctlcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bstctlcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bstctlcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bstctlcite[${2:aux spec}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEnoauxwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEnoauxwrite{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEcalcleftmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEcalcleftmargin{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEdefaultfootersampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdefaultheadersampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdefaultsampletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodesnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEnormalcatcodespunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEPARstartletwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlengthdiff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedlengthint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedtextheightdiff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizedtextheightlpc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEquantizelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IEEEquantizelength{${1:mode}}{${2:unit}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEquantizetextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IEEEquantizetextheight[${2:unit}]{${1:mode}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEquantizetextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IEEEquantizetextheight{${1:mode}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"IEEEsetfootermargin[${3:footer sample}][${4:text sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsetfootermargin[${3:footer sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetfootermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetfootermargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"IEEEsetheadermargin[${3:header sample}][${4:text sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsetheadermargin[${3:header sample}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetheadermargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetheadermargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsetsidemargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsetsidemargin{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsettextheight[${3:mode}]{${1:top margin}}{${2:bottom margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettextheight{${1:top margin}}{${2:bottom margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettextwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettextwidth{${1:inner margin}}{${2:outer margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettopmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IEEEsettopmargin[${3:sample text}]{${1:mode}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEsettopmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IEEEsettopmargin{${1:mode}}{${2:margin}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"IEEEkeywords\"\n    },\n    {\n      \"name\": \"IEEEbiography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEbiography\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:graphics commands}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEbiographynophoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEproof\"\n    },\n    {\n      \"name\": \"IEEEproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"itemize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEenumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEitemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEitemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"IEEEdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEdescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:decl}]\"\n      }\n    },\n    {\n      \"name\": \"LaTeXenumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXitemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IEEEeqnarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarray*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarraybox*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:decl}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"IEEEeqnarrayboxt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:decl}][${3:pos}][${4:width}]{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/IEEEtran#c\": [\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"conference\",\n      \"journal\",\n      \"technote\",\n      \"peerreview\",\n      \"peerreviewca\",\n      \"draft\",\n      \"draftcls\",\n      \"draftclsnofoot\",\n      \"final\",\n      \"letterpaper\",\n      \"a4paper\",\n      \"cspaper\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"comsoc\",\n      \"compsoc\",\n      \"transmag\",\n      \"romanappendices\",\n      \"captionsoff\",\n      \"nofonttune\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"IEEEtran\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/IEEEtran#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ReadableCV.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"roboto\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setPageColour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPageColour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setHeaderAlignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setHeaderAlignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setHeaderAlignment,\\\\setSectionAlignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setHeadingColours\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setHeadingColours{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setContactLocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setContactLocation{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\setContactLocation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setYourName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setYourJobTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourJobTitle{${1:job title%text}}\"\n      }\n    },\n    {\n      \"name\": \"setYourMobileNo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourMobileNo{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setYourHomeNo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourHomeNo{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setYourEmailAddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourEmailAddr{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"setYourWebAddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setYourWebAddr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"showHeader\"\n    },\n    {\n      \"name\": \"setSectionAlignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSectionAlignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setHeaderAlignment,\\\\setSectionAlignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newHeading{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addSkills\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addSkills{${1:sk1%text}}{${2:sk2%text}}{${3:sk3%text}}{${4:sk4%text}}{${5:sk5%text}}{${6:sk6%text}}{${7:sk7%text}}{${8:sk8%text}}\"\n      }\n    },\n    {\n      \"name\": \"newQuickRole\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newQuickRole{${1:dates}}{${2:job title%text}}{${3:company}}\"\n      }\n    },\n    {\n      \"name\": \"setJobCompanyOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setJobCompanyOrder{${1:order type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setJobCompanyOrder\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newRole\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newRole{${1:dates}}{${2:job title%text}}{${3:company}}{${4:role summary%text}}\"\n      }\n    },\n    {\n      \"name\": \"roleAchievements\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"roleAchievements{${1:ach1%text}}{${2:ach2%text}}{${3:ach3%text}}{${4:ach4%text}}{${5:ach5%text}}{${6:ach6%text}}\"\n      }\n    },\n    {\n      \"name\": \"roleResponsibilities\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"roleResponsibilities{${1:resp1%text}}{${2:resp2%text}}{${3:resp3%text}}{${4:resp4%text}}{${5:resp5%text}}\"\n      }\n    },\n    {\n      \"name\": \"newCourse\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newCourse{${1:date}}{${2:course title%text}}{${3:institution}}{${4:}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpJobTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpJobTitle{${1:job title%text}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpRoad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpRoad{${1:road name}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpTown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpTown{${1:town name}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpCity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpCity{${1:city name}}\"\n      }\n    },\n    {\n      \"name\": \"setRecpPostcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecpPostcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"makeLetter\"\n    },\n    {\n      \"name\": \"closeletter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeletter{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"HeaderAlignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderLeftContact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderLeftImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderRightContact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderRightImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeaderTextOppo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingColour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageColour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SectionAlignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contactloc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setImage{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"rcvemailaddr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvhomeno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvimageloc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvjobtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvmobileno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcvwebaddr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recpcity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recpjobtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recpname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recppostcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recproad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recptown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setHeaderAlignment,\\\\setSectionAlignment\": [\n      \"left\",\n      \"right\"\n    ],\n    \"\\\\setContactLocation\": [\n      \"below\",\n      \"opposite\"\n    ],\n    \"\\\\setJobCompanyOrder\": [\n      \"JobFirst\",\n      \"CompanyFirst\"\n    ],\n    \"\\\\setImage\": [\n      \"useImage\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-a0poster.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifportrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"portraittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"portraitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifanullb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anullbtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anullbfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifanull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anullfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifaeins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeinstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeinsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifazwei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"azweitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"azweifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifadrei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adreitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adreifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifposterdraft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posterdrafttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posterdraftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xkoord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ykoord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tausch\",\n      \"if\": \"portrait\"\n    },\n    {\n      \"name\": \"Ausgabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"veryHuge\"\n    },\n    {\n      \"name\": \"VeryHuge\"\n    },\n    {\n      \"name\": \"VERYHuge\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/a0poster#c\": [\n      \"landscape\",\n      \"portrait\",\n      \"a0b\",\n      \"a0\",\n      \"a1\",\n      \"a2\",\n      \"a3\",\n      \"posterdraft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/a0poster#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-aalok.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"expex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"marathi\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"diagbox\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"paracol\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"minitoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:orcid क्रमांक}}\"\n      }\n    },\n    {\n      \"name\": \"citetitleyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitleyear[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitleyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitleyear[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitleyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitleyear{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"orcidlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcidno\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/aalok#c\": [\n      \"खासगीवितरण\",\n      \"छापील\",\n      \"सुटालेख\",\n      \"रेगे\",\n      \"राजवाडे\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/aalok#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-abntex2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ABNTEXfontereduzida\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pretextualchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretextualchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titulo{${1:texto do título%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirtitulo\"\n    },\n    {\n      \"name\": \"tituloestrangeiro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tituloestrangeiro{${1:exto do título%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirtituloestrangeiro\"\n    },\n    {\n      \"name\": \"autor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autor{${1:nome do(${2:s}) autor(${3:es})}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirautor\"\n    },\n    {\n      \"name\": \"data\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"data{${1:mês e ano ou data em português}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirdata\"\n    },\n    {\n      \"name\": \"instituicao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instituicao{${1:nome da instituição%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirinstituicao\"\n    },\n    {\n      \"name\": \"local\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"local{${1:localidade de apresentação do documento%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirlocal\"\n    },\n    {\n      \"name\": \"preambulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preambulo{${1:preâmbulo do documento%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirpreambulo\"\n    },\n    {\n      \"name\": \"tipotrabalho\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipotrabalho{${1:tipo do trabalho%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirtipotrabalho\"\n    },\n    {\n      \"name\": \"orientador\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orientador{${1:nome do(${2:s}) orientador(${3:es})}}\"\n      }\n    },\n    {\n      \"name\": \"orientador\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"orientador[${2:rótulo}]{${1:nome do(${3:s}) orientador(${4:es})}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirorientador\"\n    },\n    {\n      \"name\": \"imprimirorientadorRotulo\"\n    },\n    {\n      \"name\": \"coorientador\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coorientador{${1:nome do(${2:s}) coorientador(${3:es})}}\"\n      }\n    },\n    {\n      \"name\": \"coorientador\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coorientador[${2:rótulo}]{${1:nome do(${3:s}) coorientador(${4:es})}}\"\n      }\n    },\n    {\n      \"name\": \"imprimircoorientador\"\n    },\n    {\n      \"name\": \"imprimircoorientadorRotulo\"\n    },\n    {\n      \"name\": \"phantompart\"\n    },\n    {\n      \"name\": \"pretextual\"\n    },\n    {\n      \"name\": \"imprimircapa\"\n    },\n    {\n      \"name\": \"imprimirfolhaderosto\"\n    },\n    {\n      \"name\": \"imprimirfolhaderosto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"imprimirfolhaderosto[${1:nome da folha de rosto%text}]\"\n      }\n    },\n    {\n      \"name\": \"imprimirfolhaderosto*\"\n    },\n    {\n      \"name\": \"imprimirfolhaderosto*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"imprimirfolhaderosto*[${1:nome da folha de rosto%text}]\"\n      }\n    },\n    {\n      \"name\": \"folhaderostoname\"\n    },\n    {\n      \"name\": \"folhaderostocontent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errataname\"\n    },\n    {\n      \"name\": \"folhadeaprovacaoname\"\n    },\n    {\n      \"name\": \"assinatura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"assinatura{${1:texto a ser impresso%text}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXsignwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsignthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsignskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedicatorianame\"\n    },\n    {\n      \"name\": \"agradecimentosname\"\n    },\n    {\n      \"name\": \"epigraphname\"\n    },\n    {\n      \"name\": \"resumoname\"\n    },\n    {\n      \"name\": \"listadesiglasname\"\n    },\n    {\n      \"name\": \"listadesimbolosname\"\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"textual\"\n    },\n    {\n      \"name\": \"ABNTEXchapterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXchapterfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXpartfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXpartfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsectionfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsectionfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsubsectionfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsubsubsubsectionfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXcitacaorecuo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXcaptiondelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IBGEtab\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IBGEtab{${1:Nome e rótulo%text}}{${2:Conteúdo da tabela%text}}{${3:Conteúdo da legenda%text}}\"\n      }\n    },\n    {\n      \"name\": \"ibgetab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibgetab{${1:Nome e rótulo%text}}{${2:Conteúdo da tabela%text}}{${3:Conteúdo da legenda%text}}\"\n      }\n    },\n    {\n      \"name\": \"fonte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fonte{${1:Descrição%text}}\"\n      }\n    },\n    {\n      \"name\": \"fonte\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fonte[${2:Rótulo%text}]{${1:Descrição%text}}\"\n      }\n    },\n    {\n      \"name\": \"nota\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nota{${1:Nota%text}}\"\n      }\n    },\n    {\n      \"name\": \"nota\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nota[${2:Rótulo%text}]{${1:Nota%text}}\"\n      }\n    },\n    {\n      \"name\": \"IBGEtabfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postextual\"\n    },\n    {\n      \"name\": \"apendices\"\n    },\n    {\n      \"name\": \"apendicename\"\n    },\n    {\n      \"name\": \"apendicesname\"\n    },\n    {\n      \"name\": \"partpage\"\n    },\n    {\n      \"name\": \"partapendices\"\n    },\n    {\n      \"name\": \"anexos\"\n    },\n    {\n      \"name\": \"anexoname\"\n    },\n    {\n      \"name\": \"anexosname\"\n    },\n    {\n      \"name\": \"partanexos\"\n    },\n    {\n      \"name\": \"abnTeX\"\n    },\n    {\n      \"name\": \"coorientadorname\"\n    },\n    {\n      \"name\": \"fontename\"\n    },\n    {\n      \"name\": \"notaname\"\n    },\n    {\n      \"name\": \"orientadorname\"\n    },\n    {\n      \"name\": \"captionsbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\"\n    },\n    {\n      \"name\": \"orda\"\n    },\n    {\n      \"name\": \"ro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXcaptionfontedelim\"\n    },\n    {\n      \"name\": \"ABNTEXchapterupperifneeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXchapterupperifneeded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXcsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXcsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXisarticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXistwocolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABNTEXsectionupperifneeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXsectionupperifneeded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXsubsectionupperifneeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXsubsectionupperifneeded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXsubsubsectionupperifneeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXsubsubsectionupperifneeded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ABNTEXsubsubsubsectionupperifneeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABNTEXsubsubsubsectionupperifneeded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftbeforesubsubsubsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlastnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternamenumlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"configurecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"configureseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprimirfolhaderostonostar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imprimirfolhaderostonostar{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"imprimirfolhaderostostar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imprimirfolhaderostostar{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"myptabbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myptabboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRIVATEapendiceconfig\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRIVATEapendiceconfig{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"PRIVATEbookmarkthis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRIVATEbookmarkthis{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"PRIVATEclearpageifneeded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setsubsubsubsecheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"switchchapname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switchchapname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"theforeigntitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocinnonumchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpartanexos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpartapendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocprintchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocprintchapternonum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"capa\"\n    },\n    {\n      \"name\": \"fichacatalografica\"\n    },\n    {\n      \"name\": \"errata\"\n    },\n    {\n      \"name\": \"errata\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome da errata%text}]\"\n      }\n    },\n    {\n      \"name\": \"folhadeaprovacao\"\n    },\n    {\n      \"name\": \"folhadeaprovacao\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome da folha de aprovação%text}]\"\n      }\n    },\n    {\n      \"name\": \"dedicatoria\"\n    },\n    {\n      \"name\": \"dedicatoria\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome da dedicatória%text}]\"\n      }\n    },\n    {\n      \"name\": \"agradecimentos\"\n    },\n    {\n      \"name\": \"agradecimentos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome dos agradecimentos%text}]\"\n      }\n    },\n    {\n      \"name\": \"epigrafe\"\n    },\n    {\n      \"name\": \"epigrafe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome da epígrafe%text}]\"\n      }\n    },\n    {\n      \"name\": \"resumo\"\n    },\n    {\n      \"name\": \"resumo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome do resumo%text}]\"\n      }\n    },\n    {\n      \"name\": \"resumoumacoluna\"\n    },\n    {\n      \"name\": \"resumoumacoluna\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nome do resumo%text}]\"\n      }\n    },\n    {\n      \"name\": \"siglas\"\n    },\n    {\n      \"name\": \"simbolos\"\n    },\n    {\n      \"name\": \"citacao\"\n    },\n    {\n      \"name\": \"citacao\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"alineas\"\n    },\n    {\n      \"name\": \"alineas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{alineas}#c,\\\\begin{subalineas}#c,\\\\begin{incisos}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subalineas\"\n    },\n    {\n      \"name\": \"subalineas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{alineas}#c,\\\\begin{subalineas}#c,\\\\begin{incisos}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"incisos\"\n    },\n    {\n      \"name\": \"incisos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{alineas}#c,\\\\begin{subalineas}#c,\\\\begin{incisos}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"apendicesenv\"\n    },\n    {\n      \"name\": \"anexosenv\"\n    },\n    {\n      \"name\": \"folhaderosto*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"folhaderosto*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"folhaderosto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"folhaderosto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/abntex2#c\": [\n      \"article\",\n      \"twocolumn\",\n      \"chapter=TITLE\",\n      \"section=TITLE\",\n      \"subsection=TITLE\",\n      \"subsubsection=TITLE\",\n      \"subsubsubsection=TITLE\",\n      \"sumario=${1|abnt-6027-2012,tradicional|}\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twoside\"\n    ],\n    \"\\\\begin{alineas}#c,\\\\begin{subalineas}#c,\\\\begin{incisos}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/abntex2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-abntexto.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontsize{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"definefontsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definefontsize{${1:id}}{${2:definições}}\"\n      }\n    },\n    {\n      \"name\": \"sizedef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sizedef{${1:cmd}}{${2:tamanho}}{${3:entrelinha natural}}{${4:definições}}\"\n      }\n    },\n    {\n      \"name\": \"spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"singlesp\"\n    },\n    {\n      \"name\": \"onehalfsp\"\n    },\n    {\n      \"name\": \"doublesp\"\n    },\n    {\n      \"name\": \"setlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setlayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pretextual\"\n    },\n    {\n      \"name\": \"textual\"\n    },\n    {\n      \"name\": \"tocifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tociifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tociiifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocivfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocvfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboveparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketoc\"\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legend{${1:type}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"src\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"src{${1:texto%text}}\"\n      }\n    },\n    {\n      \"name\": \"aboveplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definelegendplace\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"definelegendplace{${1:type}}{${2:name}}{${3:list name}}{${4:ref def}}{${5:ext}}\"\n      }\n    },\n    {\n      \"name\": \"enquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote{${1:texto%text}}\"\n      }\n    },\n    {\n      \"name\": \"Enquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Enquote{${1:texto%text}}\"\n      }\n    },\n    {\n      \"name\": \"annex\"\n    },\n    {\n      \"name\": \"appendixlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annexlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corrprinton\"\n    },\n    {\n      \"name\": \"corrprintoff\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"topics\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\setlayout\": [\n      \"paper=${1:size}\",\n      \"width=\",\n      \"height=\",\n      \"left=\",\n      \"right=\",\n      \"top=\",\n      \"bottom=\",\n      \"twoside\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-achemso.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"mciteplus\"\n    },\n    {\n      \"name\": \"natmove\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"journal=orlef7\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affiliation[${2:short affiliation}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"alsoaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alsoaffiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"alsoaffiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alsoaffiliation[${2:short affiliation}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altaffiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fax{${1:fax number}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SectionNumbersOff\"\n    },\n    {\n      \"name\": \"SectionNumbersOn\"\n    },\n    {\n      \"name\": \"SectionsOff\"\n    },\n    {\n      \"name\": \"SectionsOn\"\n    },\n    {\n      \"name\": \"AbstractOff\"\n    },\n    {\n      \"name\": \"AbstractOn\"\n    },\n    {\n      \"name\": \"latin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abbreviations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abbreviations{${1:abbreviations}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgementname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acksize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affilfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affilsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"printbibnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppinfoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thescheme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocentryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scheme\"\n    },\n    {\n      \"name\": \"scheme\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"chart\"\n    },\n    {\n      \"name\": \"chart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"graph\"\n    },\n    {\n      \"name\": \"graph\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"suppinfo\"\n    },\n    {\n      \"name\": \"tocentry\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/achemso#c\": [\n      \"abbreviations\",\n      \"articletitle\",\n      \"biblabel=${1|plain,brackets,period,fullstop|}\",\n      \"biochem\",\n      \"biochemistry\",\n      \"chaptertitle\",\n      \"doi\",\n      \"email\",\n      \"etalmode=${1|firstonly,truncate|}\",\n      \"hyperref\",\n      \"journal=${1|aaembp,aaemcq,aamick,aanmf6,aapmcd,aastgj,abmcb8,abseba,acbcct,accacs,achre4,acncdm,acsccc,acscii,acsodf,aeacb3,aeacc4,aeecco,aelccp,aesccq,aewcaa,afsthl,aidcbc,amacgu,amachv,amclct,amlccd,amlcef,amrcda,anaccx,ancac3,ancham,aoiab5,apcach,apchd5,appccd,asbcd6,ascecg,ascefj,bcches,bichaw,bomaf6,cgdefu,chreay,cmatex,crtoec,enfuem,esthag,estlcu,iecred,inoraj,jaaucr,jacsat,jafcau,jceaax,jceda8,jcisd8,jctcce,jmcmar,jnprdf,joceah,jpcafh,jpcbfk,jpccck,jpclcd,jprobs,langd5,mamobx,mpohbp,nalefd,oprdfk,orgnd7,orlef7|}\",\n      \"keywords\",\n      \"layout=${1|traditional,twocolumn|}\",\n      \"manuscript=${1|article,note,communication,review,letter,perspective|}\",\n      \"maxauthors=${1:number}\",\n      \"super\",\n      \"usetitle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/achemso#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-acm-book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"mathptm\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"mathtime\",\n      \"if\": \"mathtime\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"balancecolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centeroncapheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centeroncapheight{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"chapterauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"mono\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mono{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"monster\"\n    },\n    {\n      \"name\": \"nocaptionrule\"\n    },\n    {\n      \"name\": \"nut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpagenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpagenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setvspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setvspace{${1:skip register}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"softraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standardtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standardvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stringeql\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stringeql{${1:flag}}{${2:string1}}{${3:string2}}\"\n      }\n    },\n    {\n      \"name\": \"thesidebarnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/acm-book#c\": [\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"authoryear\",\n      \"cm\",\n      \"computermodern\",\n      \"mathtime\",\n      \"natbib\",\n      \"nonatbib\",\n      \"numberedpars\",\n      \"numbers\",\n      \"preprint\",\n      \"times\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/acm-book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-acmart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"class-amsart\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"totpages\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"zi4\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"authordraft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"authordraft=true\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"format=acmtog\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"acmtog\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"acmtog=true\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"format=sigconf\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"sigconf\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"sigconf=true\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"format=sigplan\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"sigplan\"\n    },\n    {\n      \"name\": \"balance\",\n      \"if\": \"sigplan=true\"\n    },\n    {\n      \"name\": \"framed\",\n      \"if\": \"format=acmcp\"\n    },\n    {\n      \"name\": \"zref-savepos\",\n      \"if\": \"format=acmcp\"\n    },\n    {\n      \"name\": \"zref-user\",\n      \"if\": \"format=acmcp\"\n    },\n    {\n      \"name\": \"framed\",\n      \"if\": \"acmcp\"\n    },\n    {\n      \"name\": \"zref-savepos\",\n      \"if\": \"acmcp\"\n    },\n    {\n      \"name\": \"zref-user\",\n      \"if\": \"acmcp\"\n    },\n    {\n      \"name\": \"framed\",\n      \"if\": \"acmcp=true\"\n    },\n    {\n      \"name\": \"zref-savepos\",\n      \"if\": \"acmcp=true\"\n    },\n    {\n      \"name\": \"zref-user\",\n      \"if\": \"acmcp=true\"\n    },\n    {\n      \"name\": \"pbalance\",\n      \"if\": \"pbalance\"\n    },\n    {\n      \"name\": \"pbalance\",\n      \"if\": \"pbalance=true\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"language=english\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"language=german\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acmJournal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmJournal{${1:short name%keyvals}}\",\n        \"keys\": [\n          \"\\\\acmJournal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acmConference\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acmConference{${1:name}}{${2:date}}{${3:venue}}\"\n      }\n    },\n    {\n      \"name\": \"acmConference\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"acmConference[${4:short name}]{${1:name}}{${2:date}}{${3:venue}}\"\n      }\n    },\n    {\n      \"name\": \"acmBooktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmBooktitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:editor}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:orcid}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affiliation[${2:obeypunctuation=true|false}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"additionalaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"additionalaffiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"position{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"country\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"country{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"authorsaddresses\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorsaddresses{${1:contact addresses}}\"\n      }\n    },\n    {\n      \"name\": \"titlenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitlenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitlenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authornote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authornotemark\"\n    },\n    {\n      \"name\": \"authornotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"authornotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"acmVolume\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmVolume{${1:volume number}}\"\n      }\n    },\n    {\n      \"name\": \"acmNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmNumber{${1:issue number}}\"\n      }\n    },\n    {\n      \"name\": \"acmArticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmArticle{${1:article number}}\"\n      }\n    },\n    {\n      \"name\": \"acmYear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"acmMonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmMonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"acmArticleSeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmArticleSeq{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"acmSubmissionID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmSubmissionID{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"acmISBN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"acmDOI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmDOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"acmBadge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmBadge{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"acmBadge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acmBadge[${2:URL}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"startPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startPage{${1:page}}\"\n      }\n    },\n    {\n      \"name\": \"ccsdesc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccsdesc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccsdesc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ccsdesc[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcopyright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcopyright{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcopyright#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcctype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcctype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcctype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcctype\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcctype[${2:version}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcctype\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"settopmatter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settopmatter{${1:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\settopmatter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"received[${2:stage}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"setengagemetadata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setengagemetadata{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"acmArticleType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmArticleType{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\acmArticleType\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acmCodeLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmCodeLink{${1:link%URL}}\"\n      }\n    },\n    {\n      \"name\": \"acmDataLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmDataLink{${1:link%URL}}\"\n      }\n    },\n    {\n      \"name\": \"acmContributions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acmContributions{${1:contributions%text}}\"\n      }\n    },\n    {\n      \"name\": \"Description\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Description{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"Description\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Description[${2:short description%text}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"anon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anon{${1:suppressed text%text}}\"\n      }\n    },\n    {\n      \"name\": \"anon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anon[${2:substitute%text}]{${1:suppressed text%text}}\"\n      }\n    },\n    {\n      \"name\": \"grantsponsor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grantsponsor{${1:sponsorID}}{${2:name}}{${3:URL}}\"\n      }\n    },\n    {\n      \"name\": \"grantnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grantnum{${1:sponsorID}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"grantnum\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grantnum[${3:URL}]{${1:sponsorID}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginMaketitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginMaketitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"shortcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortcite[${2:add.text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acksname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightpermissionfootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindentparagraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noindentparagraph*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"noindentparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"noindentparagraph[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"noindentparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noindentparagraph{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"showeprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showeprint[${2:prefix}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"showeprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showeprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"translatedtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedtitle{${1:language}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedsubtitle{${1:language}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedkeywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedkeywords{${1:language}}{${2:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translatedtitle\",\n      \"if\": \"language=english\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedtitle{${1:language}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedsubtitle\",\n      \"if\": \"language=english\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedsubtitle{${1:language}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedkeywords\",\n      \"if\": \"language=english\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedkeywords{${1:language}}{${2:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"language=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"translatedtitle\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedtitle{${1:language}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedsubtitle\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedsubtitle{${1:language}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedkeywords\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedkeywords{${1:language}}{${2:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"language=german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"language=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translatedtitle\",\n      \"if\": \"language=german\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedtitle{${1:language}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedsubtitle\",\n      \"if\": \"language=german\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedsubtitle{${1:language}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"translatedkeywords\",\n      \"if\": \"language=german\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatedkeywords{${1:language}}{${2:keywords%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CCSXML\"\n    },\n    {\n      \"name\": \"teaserfigure\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"printonly\"\n    },\n    {\n      \"name\": \"screenonly\"\n    },\n    {\n      \"name\": \"anonsuppress\"\n    },\n    {\n      \"name\": \"acks\"\n    },\n    {\n      \"name\": \"sidebar\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"translatedabstract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"translatedabstract\",\n      \"if\": \"language=english\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"language=french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"language=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"translatedabstract\",\n      \"if\": \"language=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"translatedabstract\",\n      \"if\": \"language=german\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/acmart#c\": [\n      \"format=${1|manuscript,acmsmall,acmlarge,acmtog,sigconf,sigplan,acmengage,acmcp|}\",\n      \"manuscript\",\n      \"acmsmall\",\n      \"acmlarge\",\n      \"acmtog\",\n      \"sigconf\",\n      \"sigplan\",\n      \"review\",\n      \"screen\",\n      \"natbib\",\n      \"anonymous\",\n      \"authorversion\",\n      \"nonacm\",\n      \"timestamp\",\n      \"authordraft\",\n      \"acmthm\",\n      \"balance\",\n      \"pbalance\",\n      \"urlbreakonhyphens\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"draft\",\n      \"language=${1:language}\",\n      \"8pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\acmJournal#c\": [\n      \"ACMJCSS\",\n      \"CIE\",\n      \"CSUR\",\n      \"DLT\",\n      \"DGOV\",\n      \"DTRAP\",\n      \"FAC\",\n      \"HEALTH\",\n      \"IMWUT\",\n      \"JACM\",\n      \"JATS\",\n      \"JDIQ\",\n      \"JEA\",\n      \"JERIC\",\n      \"JETC\",\n      \"JOCCH\",\n      \"JRC\",\n      \"PACMCGIT\",\n      \"PACMHCI\",\n      \"PACMMOD\",\n      \"PACMNET\",\n      \"PACMPL\",\n      \"PACMSE\",\n      \"POMACS\",\n      \"TAAS\",\n      \"TACCESS\",\n      \"TACO\",\n      \"TALG\",\n      \"TALLIP\",\n      \"TAP\",\n      \"TCPS\",\n      \"TDS\",\n      \"TEAC\",\n      \"TECS\",\n      \"TELO\",\n      \"THRI\",\n      \"TIIS\",\n      \"TIOT\",\n      \"TISSEC\",\n      \"TIST\",\n      \"TKDD\",\n      \"TMIS\",\n      \"TOCE\",\n      \"TOCHI\",\n      \"TOCL\",\n      \"TOCS\",\n      \"TOCT\",\n      \"TODAES\",\n      \"TODS\",\n      \"TOG\",\n      \"TOIS\",\n      \"TOIT\",\n      \"TOMACS\",\n      \"TOMM\",\n      \"TOMPECS\",\n      \"TOMS\",\n      \"TOPC\",\n      \"TOPLAS\",\n      \"TOPML\",\n      \"TOPS\",\n      \"TORS\",\n      \"TOS\",\n      \"TOSEM\",\n      \"TOSN\",\n      \"TQC\",\n      \"TRETS\",\n      \"TSAS\",\n      \"TSC\",\n      \"TSLP\",\n      \"TWEB\"\n    ],\n    \"\\\\setcopyright#c\": [\n      \"none\",\n      \"acmcopyright\",\n      \"acmlicensed\",\n      \"rightsretained\",\n      \"usgov\",\n      \"usgovmixed\",\n      \"cagov\",\n      \"cagovmixed\",\n      \"licensedusgovmixed\",\n      \"licensedcagov\",\n      \"licensedcagovmixed\",\n      \"othergov\",\n      \"licensedothergov\",\n      \"iw3c2w3\",\n      \"iw3c2w3g\",\n      \"cc\"\n    ],\n    \"\\\\setcctype\": [\n      \"zero\",\n      \"by\",\n      \"by-sa\",\n      \"by-nd\",\n      \"by-nc\",\n      \"by-nc-sa\",\n      \"by-nc-nd\"\n    ],\n    \"\\\\settopmatter#c\": [\n      \"printccs\",\n      \"printacmref\",\n      \"printfolios\",\n      \"authorsperrow=${1:number}\"\n    ],\n    \"\\\\acmArticleType\": [\n      \"Research\",\n      \"Review\",\n      \"Discussion\",\n      \"Invited\",\n      \"Position\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"acmplain\",\n      \"acmdefinition\"\n    ],\n    \"\\\\citestyle#c\": [\n      \"acmauthoryear\",\n      \"acmnumeric\"\n    ],\n    \"\\\\setcitestyle\": [\n      \"nobibstyle\",\n      \"bibstyle\",\n      \"sort\",\n      \"nosort\",\n      \"compress\",\n      \"nocompress\",\n      \"sort&compress\",\n      \"mcite\",\n      \"merge\",\n      \"elide\",\n      \"longnamesfirst\",\n      \"nonamebreak=\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/acmart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-altacv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdfx\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"dashrule\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LaTeXcentering\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemmarker\"\n    },\n    {\n      \"name\": \"ratingmarker\"\n    },\n    {\n      \"name\": \"divider\"\n    },\n    {\n      \"name\": \"emailsymbol\"\n    },\n    {\n      \"name\": \"mailaddresssymbol\"\n    },\n    {\n      \"name\": \"phonesymbol\"\n    },\n    {\n      \"name\": \"homepagesymbol\"\n    },\n    {\n      \"name\": \"twittersymbol\"\n    },\n    {\n      \"name\": \"linkedinsymbol\"\n    },\n    {\n      \"name\": \"githubsymbol\"\n    },\n    {\n      \"name\": \"orcidsymbol\"\n    },\n    {\n      \"name\": \"locationsymbol\"\n    },\n    {\n      \"name\": \"printinfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printinfo{${1:symbol}}{${2:detail}}\"\n      }\n    },\n    {\n      \"name\": \"printinfo\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"printinfo{${1:symbol}}{${2:detail}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tagline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagline{${1:information}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photo{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photoR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photoR{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photoL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photoL{${1:size}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailaddress{${1:mail address}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:homepage address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"twitter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twitter{${1:twitter username}}\"\n      }\n    },\n    {\n      \"name\": \"linkedin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linkedin{${1:linkedin username}}\"\n      }\n    },\n    {\n      \"name\": \"github\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"github{${1:github username}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:orcid number}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"personalinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"personalinfo{${1:information}}\"\n      }\n    },\n    {\n      \"name\": \"makecvheader\"\n    },\n    {\n      \"name\": \"cvsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvsection[${2:sidebar file%file}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cvachievement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvachievement{${1:icon}}{${2:name%text}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvevent\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvevent{${1:title%text}}{${2:company or institution}}{${3:time period}}{${4:location}}\"\n      }\n    },\n    {\n      \"name\": \"cvtag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvtag{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvskill{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"wheelchart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wheelchart{${1:outer radius}}{${2:inner radius}}{${3:value/width/color/detail,...}}\"\n      }\n    },\n    {\n      \"name\": \"cvref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvref{${1:name}}{${2:email}}{${3:mailing address}}\"\n      }\n    },\n    {\n      \"name\": \"addsidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsidebar{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addsidebar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsidebar[${2:vspace}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addnextpagesidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addnextpagesidebar{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"addnextpagesidebar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addnextpagesidebar[${2:vspace}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifxetexorluatex\"\n    },\n    {\n      \"name\": \"mynames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mynames{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewInfoField{${1:fieldname}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewInfoField{${1:fieldname}}{${2:symbol}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewInfoField*{${1:fieldname}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NewInfoField*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewInfoField*{${1:fieldname}}{${2:symbol}}[${3:hyperlink prefix}]\"\n      }\n    },\n    {\n      \"name\": \"namefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"taglinefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personalinfofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvsubsectionfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"if\": \"ragged2e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/altacv#c\": [\n      \"normalphoto\",\n      \"ragged2e\",\n      \"withhyper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/altacv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amnestyreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"sidecap\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"titleimagecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimagecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"firstpublicationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstpublicationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"reportyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reportyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"reportmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reportmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"reportindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reportindex{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"blurb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blurb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"sideTableCaptions\"\n    },\n    {\n      \"name\": \"normalTableCaptions\"\n    },\n    {\n      \"name\": \"sideFigureCaptions\"\n    },\n    {\n      \"name\": \"normalFigureCaptions\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"attribution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribution{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"AmnestyGlossary\"\n    },\n    {\n      \"name\": \"AmnestyGlossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"amnestyfonts\",\n      \"freefonts\",\n      \"logo\",\n      \"nologo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amsart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstractbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"addresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altucnm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altucnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"andify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short names}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"authors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeform{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"commby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commby{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contentsnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contrib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contrib[${2:pre text%text}]{${1:contributors}}\"\n      }\n    },\n    {\n      \"name\": \"contribs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrightinfo{${1:year}}{${2:holder}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:current address}}\"\n      }\n    },\n    {\n      \"name\": \"curraddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentvolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateposted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateposted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"except\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"except{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"for\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"for{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"forany\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forany{${1:switch list}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifresetcontrib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issueinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"issueinfo{${1:volume}}{${2:issue}}{${3:month}}{${4:year}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"linespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listisep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:lefthead}}\"\n      }\n    },\n    {\n      \"name\": \"mathqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:MR number}}\"\n      }\n    },\n    {\n      \"name\": \"MRhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MRhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newswitch[${2:True or False}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newswitch{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:style name}}{${2:space above}}{${3:space below}}{${4:body font}}{${5:indent amount}}{${6:head font}}{${7:head punct}}{${8:after head space}}{${9:head spec}}\"\n      }\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonslanted\"\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nxandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"pageinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagespan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pagespan{${1:page1}}{${2:page2}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PII{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"popQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushQED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pushQED{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedhere\"\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"resetcontribfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcontribtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revertcopyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seeonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seeonly{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seeonlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFalse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFalse{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"setTrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTrue{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SMALL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Small\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"specialsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swapnumbers\"\n    },\n    {\n      \"name\": \"swappedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"swappedhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"textprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"thankses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"thmhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thmhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"thmheadnl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocappendix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocappendix{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocchapter{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:translator}}\"\n      }\n    },\n    {\n      \"name\": \"translname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uppercasenonmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercasenonmath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URLhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URLhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"volinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amsart#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amsart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amsbkrev.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"publisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisher{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"publaddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publaddr{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"yr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yr{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"pages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pages{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"binding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binding{${1:hardcover|softcover}}\"\n      }\n    },\n    {\n      \"name\": \"price\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"price{${1:price}}\"\n      }\n    },\n    {\n      \"name\": \"isbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isbn{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"revtransl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revtransl{${1:review translator}}\"\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msc{${1:msc}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bktransl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bktransl{${1:book translator}}\"\n      }\n    },\n    {\n      \"name\": \"bkcontrib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bkcontrib{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bkcontrib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bkcontrib[${2:prefix text%text}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"edition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edition{${1:edition}}\"\n      }\n    },\n    {\n      \"name\": \"series\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"series{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"serieseditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"serieseditor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal}}\"\n      }\n    },\n    {\n      \"name\": \"cmheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmheight{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"altpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altpages{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"brtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ednote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ednote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"loosen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"num\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"num{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Review\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reviewersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Reviews\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reviewsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebookinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therevcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocbkcontribs\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bookinfo\"\n    },\n    {\n      \"name\": \"review\"\n    },\n    {\n      \"name\": \"revinfo\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amsbkrev#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amsbkrev#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amsbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstractbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"addresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altucnm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altucnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"andify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aufm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aufm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short names}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"authors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"chapterrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeform{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contentsnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrightinfo{${1:year}}{${2:holder}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:current address}}\"\n      }\n    },\n    {\n      \"name\": \"curraddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateposted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateposted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"except\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"except{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"for\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"for{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"forany\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forany{${1:switch list}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexchap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexchap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"issueinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"issueinfo{${1:volume}}{${2:issue}}{${3:month}}{${4:year}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"linespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listisep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:lefthead}}\"\n      }\n    },\n    {\n      \"name\": \"mathqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:MR number}}\"\n      }\n    },\n    {\n      \"name\": \"MRhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MRhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newswitch[${2:True or False}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newswitch{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:style name}}{${2:space above}}{${3:space below}}{${4:body font}}{${5:indent amount}}{${6:head font}}{${7:head punct}}{${8:after head space}}{${9:head spec}}\"\n      }\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonslanted\"\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nxandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"paragraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"partrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"popQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushQED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pushQED{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedhere\"\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"rom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"secdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secdef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seeonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seeonly{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seeonlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFalse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFalse{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"setTrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTrue{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SMALL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Small\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"specialsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swapnumbers\"\n    },\n    {\n      \"name\": \"swappedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"swappedhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"textprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"thankses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"thmhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thmhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"thmheadnl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocappendix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocappendix{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocchapter{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:translator}}\"\n      }\n    },\n    {\n      \"name\": \"translname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uppercasenonmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercasenonmath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URLhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URLhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading}]\"\n      }\n    },\n    {\n      \"name\": \"xcb\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amsbook#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"openright\",\n      \"openany\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amsbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amsldoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"*{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"activevert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actualchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addbslash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbslash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"allowtthyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arrayargpatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autoindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"bslchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bst{${1:BibTeX style}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cn{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cnat\"\n    },\n    {\n      \"name\": \"cnbang\"\n    },\n    {\n      \"name\": \"cnbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cnm{${1:csname}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cnmm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cnmm{${1:csname}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cnmsm\",\n      \"arg\": {\n        \"format\": \"{}{}*{}\",\n        \"snippet\": \"cnmsm{${1:csname}}{${2:arg1}}*{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cnom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cnom{${1:csname}}{${2:optarg}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"embrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embrace{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"encapchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"errexa\"\n    },\n    {\n      \"name\": \"errexpl\"\n    },\n    {\n      \"name\": \"errora\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"errora{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"errorbullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fn{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"fnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnt{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"gloss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gloss{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"indexcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcs{${1:cs}}\"\n      }\n    },\n    {\n      \"name\": \"lbracechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"levelchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mdash\"\n    },\n    {\n      \"name\": \"ncn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncn{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ndash\"\n    },\n    {\n      \"name\": \"nobslash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobslash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ommitude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ommitude[${2:optarg}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ommitude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ommitude{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"qc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qc{${1:\\\\<${2:char}>}}\"\n      }\n    },\n    {\n      \"name\": \"qcamp\"\n    },\n    {\n      \"name\": \"qcat\"\n    },\n    {\n      \"name\": \"qcbang\"\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"qq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quotechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbracechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Textures\"\n    },\n    {\n      \"name\": \"verbatimchar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ctab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"ctab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"error\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"histnote\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amsldoc#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amsldoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amsproc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstractbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"addresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altucnm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altucnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"andify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aufm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aufm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short names}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"authors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeform{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contentsnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contrib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contrib[${2:pre text%text}]{${1:contributors}}\"\n      }\n    },\n    {\n      \"name\": \"contribs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrightinfo{${1:year}}{${2:holder}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:current address}}\"\n      }\n    },\n    {\n      \"name\": \"curraddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentvolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateposted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateposted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"except\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"except{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"for\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"for{${1:switch}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"forany\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forany{${1:switch list}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifresetcontrib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issueinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"issueinfo{${1:volume}}{${2:issue}}{${3:month}}{${4:year}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"linespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listisep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:lefthead}}\"\n      }\n    },\n    {\n      \"name\": \"mathqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:MR number}}\"\n      }\n    },\n    {\n      \"name\": \"MRhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MRhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newswitch[${2:True or False}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newswitch{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:style name}}{${2:space above}}{${3:space below}}{${4:body font}}{${5:indent amount}}{${6:head font}}{${7:head punct}}{${8:after head space}}{${9:head spec}}\"\n      }\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonslanted\"\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nxandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"pagespan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pagespan{${1:page1}}{${2:page2}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"popQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushQED\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pushQED{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedhere\"\n    },\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"resetcontribfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcontribtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seeonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seeonly{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seeonlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFalse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFalse{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"setTrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTrue{${1:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SMALL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Small\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"specialsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swapnumbers\"\n    },\n    {\n      \"name\": \"swappedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"swappedhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"textprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"thankses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"thmhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thmhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"thmheadnl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thmnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocappendix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocappendix{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocchapter{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:translator}}\"\n      }\n    },\n    {\n      \"name\": \"translname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uppercasenonmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercasenonmath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urladdrname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URLhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URLhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"volinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amsproc#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amsproc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-amstext-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsbook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"indexintro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcbdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longxcbtoprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortxcbendrule\"\n    },\n    {\n      \"name\": \"xqed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xqed{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"setmathstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inclusionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inclusionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibintro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"framedthm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theorem-type}}\"\n      }\n    },\n    {\n      \"name\": \"inclusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"inchapterbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widestlabel}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/amstext-l#c\": [\n      \"multixcb\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"openright\",\n      \"openany\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/amstext-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-aomart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"yhmath\"\n    },\n    {\n      \"name\": \"cmtiup\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:orcid%URL}}\"\n      }\n    },\n    {\n      \"name\": \"givenname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"givenname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"surname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fulladdress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fulladdress{${1:full address%text}}\"\n      }\n    },\n    {\n      \"name\": \"contrib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contrib{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contrib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contrib[${2:role%text}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contribs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightnote{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"keyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subject{${1:primary or secondary}}{${2:classification scheme}}{${3:subject}}\"\n      }\n    },\n    {\n      \"name\": \"formatdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatdate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"proposed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proposed{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"seconded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seconded{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"corresponding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corresponding{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"publicationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationyear{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"papernumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"papernumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"endpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"publicationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"doinumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mrnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zblnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zblnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"arxivnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxivnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oldsubsections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"EditorialComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EditorialComment{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fullref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fullref{${1:word%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"pfullref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pfullref{${1:word%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"bfullref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bfullref{${1:word%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqfullref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqfullref{${1:word%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"fullpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fullpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullpageref[${2:prefix text%text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem[${3:code}]{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem*[${3:code}]{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"funding\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"funding{${1:sponsor}}{${2:grant-id}}\"\n      }\n    },\n    {\n      \"name\": \"funding\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"funding[${3:text}]{${1:sponsor}}{${2:grant-id}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mr{${1:mathscinet path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"zbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zbl{${1:zentralblatt path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"jfm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jfm{${1:jahrbuch path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"arxiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxiv{${1:arxiv path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"annalsurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annalsurl{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/aomart#c\": [\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"manuscript\",\n      \"screen\",\n      \"olddoi\",\n      \"doi2016\",\n      \"oldkeywords\",\n      \"printscheme\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"aomplain\",\n      \"aomalpha\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/aomart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-apa6.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"txfonts\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"ftnright\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"man\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"babel\"\n    },\n    {\n      \"name\": \"array\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"apacite\",\n      \"if\": \"apacite\"\n    },\n    {\n      \"name\": \"apacite\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftfirst\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftall\"\n    },\n    {\n      \"name\": \"substr\",\n      \"if\": \"mask\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"natbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskParencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskParencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskParencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"masktextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"masktextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masktextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskTextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskTextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskTextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyear[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"if\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"apaSixvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apaSixvector{${1:symbol%%formula}}\"\n      }\n    },\n    {\n      \"name\": \"authornote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccoppy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccoppy{${1:copyright%text}}\"\n      }\n    },\n    {\n      \"name\": \"copnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copnum{${1:copyright info%text}}\"\n      }\n    },\n    {\n      \"name\": \"fitbitmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitbitmap[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fitbitmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitbitmap{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fitfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitfigure[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fitfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitfigure{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fiveaffiliations\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fiveaffiliations{${1:affil1%text}}{${2:affil2%text}}{${3:affil3%text}}{${4:affil4%text}}{${5:affil5%text}}\"\n      }\n    },\n    {\n      \"name\": \"fiveauthors\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fiveauthors{${1:name1}}{${2:name2}}{${3:name3}}{${4:name4}}{${5:name5}}\"\n      }\n    },\n    {\n      \"name\": \"fouraffiliations\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fouraffiliations{${1:affil1%text}}{${2:affil2%text}}{${3:affil3%text}}{${4:affil4%text}}\"\n      }\n    },\n    {\n      \"name\": \"fourauthors\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fourauthors{${1:name1}}{${2:name2}}{${3:name3}}{${4:name4}}\"\n      }\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftheader{${1:author last name(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sixaffiliations\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sixaffiliations{${1:affil1%text}}{${2:affil2%text}}{${3:affil3%text}}{${4:affil4%text}}{${5:affil5%text}}{${6:affil6%text}}\"\n      }\n    },\n    {\n      \"name\": \"sixauthors\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sixauthors{${1:name1}}{${2:name2}}{${3:name3}}{${4:name4}}{${5:name5}}{${6:name6}}\"\n      }\n    },\n    {\n      \"name\": \"tabfnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabfnm{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"tabfnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabfnt{${1:mark}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"threeaffiliations\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threeaffiliations{${1:affil1%text}}{${2:affil2%text}}{${3:affil3%text}}\"\n      }\n    },\n    {\n      \"name\": \"threeauthors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threeauthors{${1:name1}}{${2:name2}}{${3:name3}}\"\n      }\n    },\n    {\n      \"name\": \"twoaffiliations\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoaffiliations{${1:affil1%text}}{${2:affil2%text}}\"\n      }\n    },\n    {\n      \"name\": \"twoauthors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoauthors{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"APAenumerate\"\n    },\n    {\n      \"name\": \"APAitemize\"\n    },\n    {\n      \"name\": \"seriate\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/apa6#c\": [\n      \"man\",\n      \"jou\",\n      \"doc\",\n      \"babel\",\n      \"notimes\",\n      \"notxfonts\",\n      \"nosf\",\n      \"fignum\",\n      \"longtable\",\n      \"tt\",\n      \"helv\",\n      \"notab\",\n      \"nobf\",\n      \"nolmodern\",\n      \"nofontenc\",\n      \"noextraspace\",\n      \"donotrepeattitle\",\n      \"floatsintext\",\n      \"a4paper\",\n      \"apacite\",\n      \"natbib\",\n      \"biblatex\",\n      \"draftfirst\",\n      \"draftall\",\n      \"mask\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/apa6#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-apa7.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"txfonts\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"scalerel\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"ftnright\"\n    },\n    {\n      \"name\": \"apacite\",\n      \"if\": \"apacite\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftall\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftfirst\"\n    },\n    {\n      \"name\": \"float\",\n      \"if\": \"floatsintext\"\n    },\n    {\n      \"name\": \"array\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"man\"\n    },\n    {\n      \"name\": \"substr\",\n      \"if\": \"mask\"\n    },\n    {\n      \"name\": \"apacite\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"pslatex\",\n      \"if\": \"notxfonts\"\n    },\n    {\n      \"name\": \"mathptm\",\n      \"if\": \"notxfonts\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"stu\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footmark\",\n      \"if\": \"man\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"ifnextchar\",\n      \"if\": \"stu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitle{${1:short title%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftheader{${1:author last names}}\"\n      }\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal name}}\"\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"ccoppy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccoppy{${1:copyright notice%text}}\"\n      }\n    },\n    {\n      \"name\": \"copnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copnum{${1:more copyright info%text}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"authorsnames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorsnames{${1:author names}}\"\n      }\n    },\n    {\n      \"name\": \"authorsnames\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authorsnames[${2:superscripts}]{${1:author names}}\"\n      }\n    },\n    {\n      \"name\": \"authorsaffiliations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorsaffiliations{${1:affiliations}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course name}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:professor name}}\"\n      }\n    },\n    {\n      \"name\": \"duedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duedate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:abstract text%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"authornote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addORCIDlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addORCIDlink{${1:author}}{${2:ORCID%URL}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figurenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figurenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablenote\"\n    },\n    {\n      \"name\": \"fitfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitfigure{${1:EPS file}}\"\n      }\n    },\n    {\n      \"name\": \"fitfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitfigure[${2:height}]{${1:EPS file}}\"\n      }\n    },\n    {\n      \"name\": \"fitbitmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitbitmap{${1:EPS file}}\"\n      }\n    },\n    {\n      \"name\": \"fitbitmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitbitmap[${2:height}]{${1:EPS file}}\"\n      }\n    },\n    {\n      \"name\": \"tabfnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabfnm{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"tabfnt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabfnt{${1:id}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"apaSevenvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apaSevenvector{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"apaSevenmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apaSevenmatrix{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskparencite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskParencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskParencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskParencite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskParencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"masktextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"masktextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"masktextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masktextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskTextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskTextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskTextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskTextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyear[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyear[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyear{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcitetext\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcitetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maskfootcitetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"acksname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addperi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apaSevenappeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apaSevenappfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apaSevenapptab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apaSevensmash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apaSevensmash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"authorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayaffiliations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifapamodedoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifapamodedoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifapamodejou\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifapamodejou{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifapamodeman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifapamodeman{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifapamode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifapamode{${1:man}}{${2:jou}}{${3:doc}}\"\n      }\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastauthorseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listaffiliations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listsuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mspart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prelastauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prelastauthorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processtables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stiny\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stiny{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theAPAenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAffiliationNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNumberOfAffiliations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNumberOfAuthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNumberOfSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaskedRefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesectitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesectitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"uprightlowercasegreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"seriate\"\n    },\n    {\n      \"name\": \"APAenumerate\"\n    },\n    {\n      \"name\": \"APAitemize\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/apa7\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"a4paper\",\n      \"apacite\",\n      \"babel\",\n      \"biblatex\",\n      \"doc\",\n      \"donotrepeattitle\",\n      \"draftall\",\n      \"draftfirst\",\n      \"fignum\",\n      \"floatsintext\",\n      \"helv\",\n      \"jou\",\n      \"longtable\",\n      \"man\",\n      \"mask\",\n      \"natbib\",\n      \"nobf\",\n      \"nofontenc\",\n      \"nolmodern\",\n      \"nosf\",\n      \"notab\",\n      \"notimes\",\n      \"notxfonts\",\n      \"stu\",\n      \"tt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/apa7\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-arabic-book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"totalcount\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"collcell\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"xwatermark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arabicfont\"\n    },\n    {\n      \"name\": \"arabicfonttt\"\n    },\n    {\n      \"name\": \"theappendixfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofappendixfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theappendixtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofappendixtables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedappendix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namedappendix{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"SepMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepMark{${1:mark}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendixfigure\"\n    },\n    {\n      \"name\": \"appendixtable\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/arabic-book#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/arabic-book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-argetabelle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"bewerbung\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-artikel1.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:sect font}}{${4:ssect font}}{${5:sssect font}}{${6:para font}}{${7:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/artikel1#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/artikel1#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-artikel2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:sect font}}{${4:ssect font}}{${5:sssect font}}{${6:para font}}{${7:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/artikel2#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/artikel2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-artikel3.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:sect font}}{${4:ssect font}}{${5:sssect font}}{${6:para font}}{${7:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/artikel3#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"titlecentered\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/artikel3#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-asmeconf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"mathalfa\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"fnpos\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"xcoffins\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"lineno\"\n    },\n    {\n      \"name\": \"flushend\",\n      \"if\": \"balance\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=default\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic-r\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"hyphsubst\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    },\n    {\n      \"name\": \"dsserif\",\n      \"if\": \"mathalfa=bb=dsserif\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"mathalfa=bb=bboldx\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"mathalfa=bb=bboldx-light\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AfterBabelLanguage\",\n      \"if\": \"base\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterBabelLanguage{${1:option_name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"captionsbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Belarusian\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nad\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nak\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bulgarian\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"Bul\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectbglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectenglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"weekdaynamebulgarian\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weekdaynamebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abvon\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"abvoff\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxtounicode\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lastJulianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastJulianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstGregorianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstGregorianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indonesianhyphenmins\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macedonian\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"macedonian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mkd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"textoverline\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbarshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbarshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverlineshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverlineshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfItalic\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfItalic{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"sob\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telepl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"polishrz\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polishzx\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Serbianc\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"serbianc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"Ukrainian\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"ukrainian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"captionsukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"viettext\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"viet\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textviet\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textviet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"UHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ABREVE\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIA\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIB\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIC\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BID\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIE\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIF\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIG\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIH\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BII\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIJ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIK\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIL\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIM\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIN\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIO\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIP\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIQ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIR\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIS\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIT\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIU\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIV\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIW\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIX\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIY\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIZ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIa\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIb\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIc\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BId\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIe\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIf\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIg\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIh\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIi\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIj\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIk\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIl\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIm\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIn\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIo\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIp\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIq\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIr\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIs\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIt\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIu\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIv\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIw\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIx\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIy\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIz\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"fAlt\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"rhoAlt\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"highbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixtwofancys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixtwofancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mathpi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=esstix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"mathalfa=bb=px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=tx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=txof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbbi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AffiliationBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AffiliationsBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendicesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CAwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coffinsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ConfAcronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfAcronym{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ConfCity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfCity{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"ConfDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ConfName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfName{${1:conference name%text}}\"\n      }\n    },\n    {\n      \"name\": \"CorrespondingAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrespondingAuthor{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entry{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"EntryHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryHeading{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"fifthrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontspecloadedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontspecloadedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourthrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrefurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefurl{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"iffontspecloaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JAwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JointFirstAuthor\"\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTitlePage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MyColorOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperNo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PaperNo{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"papertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PaperTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"savitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"secondrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAffiliation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAffiliation{${1:number}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"SetAuthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAuthors{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"sfalpha\"\n    },\n    {\n      \"name\": \"sfbeta\"\n    },\n    {\n      \"name\": \"sfchi\"\n    },\n    {\n      \"name\": \"sfDelta\"\n    },\n    {\n      \"name\": \"sfdelta\"\n    },\n    {\n      \"name\": \"sfepsilon\"\n    },\n    {\n      \"name\": \"sfeta\"\n    },\n    {\n      \"name\": \"sfGamma\"\n    },\n    {\n      \"name\": \"sfgamma\"\n    },\n    {\n      \"name\": \"sfhbar\"\n    },\n    {\n      \"name\": \"sfhslash\"\n    },\n    {\n      \"name\": \"sfiota\"\n    },\n    {\n      \"name\": \"sfitnabla\"\n    },\n    {\n      \"name\": \"sfitvarkappa\"\n    },\n    {\n      \"name\": \"sfkappa\"\n    },\n    {\n      \"name\": \"sfLambda\"\n    },\n    {\n      \"name\": \"sflambda\"\n    },\n    {\n      \"name\": \"sfmu\"\n    },\n    {\n      \"name\": \"sfnabla\"\n    },\n    {\n      \"name\": \"sfnu\"\n    },\n    {\n      \"name\": \"sfOmega\"\n    },\n    {\n      \"name\": \"sfomega\"\n    },\n    {\n      \"name\": \"sfPhi\"\n    },\n    {\n      \"name\": \"sfphi\"\n    },\n    {\n      \"name\": \"sfPi\"\n    },\n    {\n      \"name\": \"sfpi\"\n    },\n    {\n      \"name\": \"sfPsi\"\n    },\n    {\n      \"name\": \"sfpsi\"\n    },\n    {\n      \"name\": \"sfrho\"\n    },\n    {\n      \"name\": \"sfSigma\"\n    },\n    {\n      \"name\": \"sfsigma\"\n    },\n    {\n      \"name\": \"sftau\"\n    },\n    {\n      \"name\": \"sfTheta\"\n    },\n    {\n      \"name\": \"sftheta\"\n    },\n    {\n      \"name\": \"sfUpsilon\"\n    },\n    {\n      \"name\": \"sfupsilon\"\n    },\n    {\n      \"name\": \"sfvarepsilon\"\n    },\n    {\n      \"name\": \"sfvarkappa\"\n    },\n    {\n      \"name\": \"sfvarphi\"\n    },\n    {\n      \"name\": \"sfvarpi\"\n    },\n    {\n      \"name\": \"sfvarrho\"\n    },\n    {\n      \"name\": \"sfvarsigma\"\n    },\n    {\n      \"name\": \"sfvartheta\"\n    },\n    {\n      \"name\": \"sfXi\"\n    },\n    {\n      \"name\": \"sfxi\"\n    },\n    {\n      \"name\": \"sfzeta\"\n    },\n    {\n      \"name\": \"shortcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthorcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthorno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versionfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versionno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"nomenclature\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:dimen%l}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:dimen%l}][${2:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/asmeconf#c\": [\n      \"balance\",\n      \"colorlinks\",\n      \"contractor\",\n      \"nofontspec\",\n      \"govt\",\n      \"govtsome\",\n      \"grid\",\n      \"hyphenate\",\n      \"largesc\",\n      \"lineno\",\n      \"mono\",\n      \"nofoot\",\n      \"pdf-a\",\n      \"pdfaconformance=${1|b,u|}\",\n      \"pdfapart=${1|1,2,3|}\",\n      \"var0\",\n      \"unboldcaption\",\n      \"activeacute\",\n      \"activegrave\",\n      \"base\",\n      \"belarusian\",\n      \"bidi=${1|default,basic,basic-r,bidi-l,bidi-r|}\",\n      \"bulgarian\",\n      \"config=${1:file}\",\n      \"french\",\n      \"german\",\n      \"greek\",\n      \"headfoot=${1:language}\",\n      \"hyphenmap=${1|off,first,select,other,other*|}\",\n      \"indonesian\",\n      \"italian\",\n      \"japanese\",\n      \"KeepShorthandsActive\",\n      \"layout=${1|sectioning,counters,contents,footnotes,captions,columns,graphics,extras|}\",\n      \"macedonian\",\n      \"main=${1:language}\",\n      \"math=${1|active,normal|}\",\n      \"nocase\",\n      \"noconfigs\",\n      \"polish\",\n      \"portuguese\",\n      \"provide*=*\",\n      \"provide+=*\",\n      \"provide=*\",\n      \"russian\",\n      \"safe=${1|none,ref,bib|}\",\n      \"serbianc\",\n      \"shorthands=${2|${1:chars},off|}\",\n      \"showlanguages\",\n      \"silent\",\n      \"spanish\",\n      \"strings=${3|generic,unicode,encoded,${1:label},${2:font encoding}|}\",\n      \"turkish\",\n      \"ukrainian\",\n      \"vietnamese\",\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"timesmathacc\",\n      \"bigdelims\",\n      \"varbb\",\n      \"vvarbb\",\n      \"libaltvw\",\n      \"nosymbolsc\",\n      \"libertine\",\n      \"minion\",\n      \"cochineal\",\n      \"garamondx\",\n      \"ebgaramond\",\n      \"baskerville\",\n      \"baskervaldx\",\n      \"utopia\",\n      \"heuristica\",\n      \"erewhon\",\n      \"xcharter\",\n      \"cmintegrals\",\n      \"cmbraces\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"altnu\",\n      \"largelibfigs\",\n      \"liby\",\n      \"frenchmath\",\n      \"nonewtxmathopt\",\n      \"upint\",\n      \"smallerops\",\n      \"useBImacros\",\n      \"noxchvw\",\n      \"noXchvw\",\n      \"stix2\",\n      \"nc\",\n      \"ncf\",\n      \"noto\",\n      \"notosans\",\n      \"cochf\",\n      \"cochrho\",\n      \"alty\",\n      \"varg\",\n      \"varvw\",\n      \"internaldigits\",\n      \"noOT1\",\n      \"amsthm\",\n      \"scaled=${1:factor}\",\n      \"vecsep=\",\n      \"mathalfa=cal=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancy|}\",\n      \"mathalfa=calscaled=${1:factor}\",\n      \"mathalfa=bfcal\",\n      \"mathalfa=calsymbols\",\n      \"mathalfa=scr=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancys|}\",\n      \"mathalfa=scrscaled=${1:factor}\",\n      \"mathalfa=bfscr\",\n      \"mathalfa=scrsymbols\",\n      \"mathalfa=frak=${1|euler,lucida,mathpi,mma,mt,esstix,boondox,pxtx,stixtwo|}\",\n      \"mathalfa=frakscaled=${1:factor}\",\n      \"mathalfa=bffrak\",\n      \"mathalfa=fraksymbols\",\n      \"mathalfa=bb=${1|ams,lucida,mathpi,mma,mt,mth,pazo,fourier,esstix,boondox,px,tx,txof,libus,dsserif,bboldx,bboldx-light,dsfontserif,dsfontsans,stixtwo,stix|}\",\n      \"mathalfa=bbscaled=${1:factor}\",\n      \"mathalfa=bfbb\",\n      \"mathalfa=bbsymbols\",\n      \"mathalfa=oldbold\",\n      \"mathalfa=scaled=${1:factor}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/asmeconf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-asmejour.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"mathalfa\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fnpos\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"xcoffins\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"lineno\"\n    },\n    {\n      \"name\": \"flushend\",\n      \"if\": \"balance\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=default\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=basic-r\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-l\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi=bidi-r\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    },\n    {\n      \"name\": \"dsserif\",\n      \"if\": \"mathalfa=bb=dsserif\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"mathalfa=bb=bboldx\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"mathalfa=bb=bboldx-light\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AfterBabelLanguage\",\n      \"if\": \"base\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterBabelLanguage{${1:option_name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"captionsbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbelarusian\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Belarusian\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAD\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nad\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"NAK\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"nak\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"belarusian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"belarusian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bulgarian\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"Bul\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectbglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectenglanguage\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"weekdaynamebulgarian\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weekdaynamebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abvon\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"abvoff\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxtounicode\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"bulgarian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lastJulianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastJulianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstGregorianDatebulgarian\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstGregorianDatebulgarian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"bulgarian\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasindonesian\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indonesianhyphenmins\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"indonesian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"italian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"italian\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasmacedonian\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macedonian\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"Romannumeral\",\n      \"if\": \"macedonian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mkd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"macedonian\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"textoverline\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbarshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbarshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverlineshort\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverlineshort{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfItalic\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfItalic{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tbar\",\n      \"if\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextraspolish\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Aob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Eob\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Lpb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"Zkb\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"sob\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skb\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telepl\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"polish\"\n    },\n    {\n      \"name\": \"polishrz\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polishzx\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasserbianc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Serbianc\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsh\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arch\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcth\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arccosec\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"sech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arsech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"arcosech\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"Expect\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzs\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"nzd\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZS\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"NZD\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"serbianc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"todayRoman*\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumCyr\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumLat\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"enumEng\",\n      \"if\": \"serbianc\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"serbianc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasturkish\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"Ukrainian\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"ukrainian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"captionsukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasukrainian\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbgyear\",\n      \"if\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"ukrainian\"\n    },\n    {\n      \"name\": \"viettext\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"viet\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textviet\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textviet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasvietnamese\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"UHORN\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Ohorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"Uhorn\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ABREVE\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\",\n      \"if\": \"vietnamese\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"vietnamese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"if\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIA\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIB\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIC\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BID\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIE\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIF\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIG\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIH\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BII\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIJ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIK\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIL\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIM\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIN\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIO\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIP\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIQ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIR\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIS\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIT\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIU\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIV\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIW\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIX\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIY\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIZ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIa\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIb\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIc\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BId\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIe\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIf\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIg\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIh\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIi\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIj\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIk\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIl\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIm\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIn\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIo\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIp\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIq\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIr\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIs\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIt\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIu\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIv\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIw\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIx\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIy\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIz\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"fAlt\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"rhoAlt\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"highbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"if\": \"mathalfa=oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixtwofancys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"mathalfa=scr=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixtwofancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathalfa=cal=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mathpi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=esstix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathalfa=frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"mathalfa=frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=mth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"mathalfa=bb=px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=tx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=txof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"mathalfa=bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbbi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"mathalfa=bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"mathalfa=bbsymbols\"\n    },\n    {\n      \"name\": \"AbstractSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AbstractSep{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"appendicesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CAwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coffinsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CondSans\"\n    },\n    {\n      \"name\": \"CondSansBold\"\n    },\n    {\n      \"name\": \"CorrespondingAuthor\"\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entry{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"EntryHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryHeading{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstrowauthorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrefurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefurl{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"LogNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogNote{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTitlePage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MyColorOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PaperYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"PreprintString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreprintString{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"PreprintString\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PreprintString{${1:string}}[${2:L or R}]\"\n      }\n    },\n    {\n      \"name\": \"rulecofheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAuthorBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAuthorBlock{${1:name}}{${2:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"SetTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sfalpha\"\n    },\n    {\n      \"name\": \"sfbeta\"\n    },\n    {\n      \"name\": \"sfchi\"\n    },\n    {\n      \"name\": \"sfDelta\"\n    },\n    {\n      \"name\": \"sfdelta\"\n    },\n    {\n      \"name\": \"sfepsilon\"\n    },\n    {\n      \"name\": \"sfeta\"\n    },\n    {\n      \"name\": \"sfGamma\"\n    },\n    {\n      \"name\": \"sfgamma\"\n    },\n    {\n      \"name\": \"sfhbar\"\n    },\n    {\n      \"name\": \"sfhslash\"\n    },\n    {\n      \"name\": \"sfiota\"\n    },\n    {\n      \"name\": \"sfitnabla\"\n    },\n    {\n      \"name\": \"sfitvarkappa\"\n    },\n    {\n      \"name\": \"sfkappa\"\n    },\n    {\n      \"name\": \"sfLambda\"\n    },\n    {\n      \"name\": \"sflambda\"\n    },\n    {\n      \"name\": \"sfmu\"\n    },\n    {\n      \"name\": \"sfnabla\"\n    },\n    {\n      \"name\": \"sfnu\"\n    },\n    {\n      \"name\": \"sfOmega\"\n    },\n    {\n      \"name\": \"sfomega\"\n    },\n    {\n      \"name\": \"sfPhi\"\n    },\n    {\n      \"name\": \"sfphi\"\n    },\n    {\n      \"name\": \"sfPi\"\n    },\n    {\n      \"name\": \"sfpi\"\n    },\n    {\n      \"name\": \"sfPsi\"\n    },\n    {\n      \"name\": \"sfpsi\"\n    },\n    {\n      \"name\": \"sfrho\"\n    },\n    {\n      \"name\": \"sfSigma\"\n    },\n    {\n      \"name\": \"sfsigma\"\n    },\n    {\n      \"name\": \"sftau\"\n    },\n    {\n      \"name\": \"sfTheta\"\n    },\n    {\n      \"name\": \"sftheta\"\n    },\n    {\n      \"name\": \"sfUpsilon\"\n    },\n    {\n      \"name\": \"sfupsilon\"\n    },\n    {\n      \"name\": \"sfvarepsilon\"\n    },\n    {\n      \"name\": \"sfvarkappa\"\n    },\n    {\n      \"name\": \"sfvarphi\"\n    },\n    {\n      \"name\": \"sfvarpi\"\n    },\n    {\n      \"name\": \"sfvarrho\"\n    },\n    {\n      \"name\": \"sfvarsigma\"\n    },\n    {\n      \"name\": \"sfvartheta\"\n    },\n    {\n      \"name\": \"sfXi\"\n    },\n    {\n      \"name\": \"sfxi\"\n    },\n    {\n      \"name\": \"sfzeta\"\n    },\n    {\n      \"name\": \"theauthorno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Titleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JourName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JourName{${1:journal}}\"\n      }\n    },\n    {\n      \"name\": \"widest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ruleblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Title\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PaperNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"revfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thesavedlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:dimen%l}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:dimen%l}][${2:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/asmejour#c\": [\n      \"balance\",\n      \"barcolor=\",\n      \"contractor\",\n      \"govt\",\n      \"govtsome\",\n      \"hyphenate\",\n      \"largesc\",\n      \"lineno\",\n      \"main=${1:language}\",\n      \"mono\",\n      \"nocopyright\",\n      \"nofoot\",\n      \"nolists\",\n      \"pdf-a\",\n      \"pdfaconformance=${1|b,u|}\",\n      \"pdfapart=${1|1,2,3|}\",\n      \"singlecolumn\",\n      \"var0\",\n      \"activeacute\",\n      \"activegrave\",\n      \"base\",\n      \"belarusian\",\n      \"bidi=${1|default,basic,basic-r,bidi-l,bidi-r|}\",\n      \"bulgarian\",\n      \"config=${1:file}\",\n      \"french\",\n      \"german\",\n      \"greek\",\n      \"headfoot=${1:language}\",\n      \"hyphenmap=${1|off,first,select,other,other*|}\",\n      \"indonesian\",\n      \"italian\",\n      \"japanese\",\n      \"KeepShorthandsActive\",\n      \"layout=${1|sectioning,counters,contents,footnotes,captions,columns,graphics,extras|}\",\n      \"macedonian\",\n      \"main=${1:language}\",\n      \"math=${1|active,normal|}\",\n      \"nocase\",\n      \"noconfigs\",\n      \"polish\",\n      \"portuguese\",\n      \"provide*=*\",\n      \"provide+=*\",\n      \"provide=*\",\n      \"russian\",\n      \"safe=${1|none,ref,bib|}\",\n      \"serbianc\",\n      \"shorthands=${2|${1:chars},off|}\",\n      \"showlanguages\",\n      \"silent\",\n      \"spanish\",\n      \"strings=${3|generic,unicode,encoded,${1:label},${2:font encoding}|}\",\n      \"turkish\",\n      \"ukrainian\",\n      \"vietnamese\",\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"timesmathacc\",\n      \"bigdelims\",\n      \"varbb\",\n      \"vvarbb\",\n      \"libaltvw\",\n      \"nosymbolsc\",\n      \"libertine\",\n      \"minion\",\n      \"cochineal\",\n      \"garamondx\",\n      \"ebgaramond\",\n      \"baskerville\",\n      \"baskervaldx\",\n      \"utopia\",\n      \"heuristica\",\n      \"erewhon\",\n      \"xcharter\",\n      \"cmintegrals\",\n      \"cmbraces\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"altnu\",\n      \"largelibfigs\",\n      \"liby\",\n      \"frenchmath\",\n      \"nonewtxmathopt\",\n      \"upint\",\n      \"smallerops\",\n      \"useBImacros\",\n      \"noxchvw\",\n      \"noXchvw\",\n      \"stix2\",\n      \"nc\",\n      \"ncf\",\n      \"noto\",\n      \"notosans\",\n      \"cochf\",\n      \"cochrho\",\n      \"alty\",\n      \"varg\",\n      \"varvw\",\n      \"internaldigits\",\n      \"noOT1\",\n      \"amsthm\",\n      \"scaled=${1:factor}\",\n      \"vecsep=\",\n      \"mathalfa=cal=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancy|}\",\n      \"mathalfa=calscaled=${1:factor}\",\n      \"mathalfa=bfcal\",\n      \"mathalfa=calsymbols\",\n      \"mathalfa=scr=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancys|}\",\n      \"mathalfa=scrscaled=${1:factor}\",\n      \"mathalfa=bfscr\",\n      \"mathalfa=scrsymbols\",\n      \"mathalfa=frak=${1|euler,lucida,mathpi,mma,mt,esstix,boondox,pxtx,stixtwo|}\",\n      \"mathalfa=frakscaled=${1:factor}\",\n      \"mathalfa=bffrak\",\n      \"mathalfa=fraksymbols\",\n      \"mathalfa=bb=${1|ams,lucida,mathpi,mma,mt,mth,pazo,fourier,esstix,boondox,px,tx,txof,libus,dsserif,bboldx,bboldx-light,dsfontserif,dsfontsans,stixtwo,stix|}\",\n      \"mathalfa=bbscaled=${1:factor}\",\n      \"mathalfa=bfbb\",\n      \"mathalfa=bbsymbols\",\n      \"mathalfa=oldbold\",\n      \"mathalfa=scaled=${1:factor}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/asmejour#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-aucklandthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"degreesought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreesought{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreediscipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreediscipline{${1:discipline%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreecompletionyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreecompletionyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"thesisdedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesisdedication{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/aucklandthesis#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"examcopy\",\n      \"partial\",\n      \"doublespace\",\n      \"singlespace\",\n      \"onehalfspace\",\n      \"oneside\",\n      \"draft\"\n    ],\n    \"\\\\chapterstyle,\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"Forder\",\n      \"Sewell\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/aucklandthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bangorcsthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fifo-stack\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"berasans\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"draftwatermark\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"totalcount\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"serif\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"serif\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"degreeScheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeScheme{${1:scheme%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bibliographySetup\"\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgements{${1:acknowledgements%text}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acknowledgements[${2:quote text%text}]{${1:acknowledgements%text}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"acknowledgements[${2:quote text%text}][${3:person quoted}]{${1:acknowledgements%text}}\"\n      }\n    },\n    {\n      \"name\": \"statements\"\n    },\n    {\n      \"name\": \"statements\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"statements[${1:imagefile}]\"\n      }\n    },\n    {\n      \"name\": \"tables\"\n    },\n    {\n      \"name\": \"thesisContent\"\n    },\n    {\n      \"name\": \"references\"\n    },\n    {\n      \"name\": \"chapterquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterquote{${1:quote text%text}}{${2:person quoted}}{${3:reason noted%text}}\"\n      }\n    },\n    {\n      \"name\": \"bangorlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctSetFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ctSetFont{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hugequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgcert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgherosfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgherosfontfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesischapterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesisparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesispartfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesispartlabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesissectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesissubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsUKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"totalfigures\"\n    },\n    {\n      \"name\": \"iftotalfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totaltables\"\n    },\n    {\n      \"name\": \"iftotaltables\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bangorcsthesis#c\": [\n      \"bsc\",\n      \"ba\",\n      \"beng\",\n      \"msc\",\n      \"meng\",\n      \"mscres\",\n      \"mres\",\n      \"mphil\",\n      \"phd\",\n      \"pgcert\",\n      \"draft\",\n      \"nohyphen\",\n      \"noindent\",\n      \"nocentredcaptions\",\n      \"serif\",\n      \"serifheadings\",\n      \"twoside\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bangorcsthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bankstatement.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xkvltxp\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bankstatement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bankstatement{${1:csv file%file}}\"\n      }\n    },\n    {\n      \"name\": \"bankstatement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bankstatement[${2:options%keyvals}]{${1:csv file%file}}\",\n        \"keys\": [\n          \"\\\\bankstatement\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bankstatement\": [\n      \"title=${1:title}\",\n      \"logo=${1:logo}\",\n      \"logowidth=\",\n      \"holder=${1:account holder}\",\n      \"bic=${1:BIC}\",\n      \"iban=${1:IBAN}\",\n      \"referencewidth=\",\n      \"negativecolor=\",\n      \"sort=${1:sort key}\",\n      \"openingbalance=\",\n      \"closingbalance=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-basque-book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"basque-date\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionwidth{${1:width}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/basque-book#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/basque-book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-beamer-rl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"localfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainfootnote\",\n      \"if\": \"layout=footnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainfootnotetext\",\n      \"if\": \"layout=footnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"redefbeamertemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"redefbeamertemplate{${1:element}}{${2:option}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beamer-rl#c\": [\n      \"arabic\",\n      \"arabic={${1:\\\\babelprovide options}}\",\n      \"arabic-dz\",\n      \"arabic-dz={${1:\\\\babelprovide options}}\",\n      \"arabic-tn\",\n      \"arabic-tn={${1:\\\\babelprovide options}}\",\n      \"arabic-ma\",\n      \"arabic-ma={${1:\\\\babelprovide options}}\",\n      \"arabic-eg\",\n      \"arabic-eg={${1:\\\\babelprovide options}}\",\n      \"arabic-sa\",\n      \"arabic-sa={${1:\\\\babelprovide options}}\",\n      \"arabic-iq\",\n      \"arabic-iq={${1:\\\\babelprovide options}}\",\n      \"arabic-sy\",\n      \"arabic-sy={${1:\\\\babelprovide options}}\",\n      \"arabic-lb\",\n      \"arabic-lb={${1:\\\\babelprovide options}}\",\n      \"arabic-ps\",\n      \"arabic-ps={${1:\\\\babelprovide options}}\",\n      \"arabic-jo\",\n      \"arabic-jo={${1:\\\\babelprovide options}}\",\n      \"centralkurdish\",\n      \"centralkurdish={${1:\\\\babelprovide options}}\",\n      \"hebrew\",\n      \"hebrew={${1:\\\\babelprovide options}}\",\n      \"kashmiri\",\n      \"kashmiri={${1:\\\\babelprovide options}}\",\n      \"mazanderani\",\n      \"mazanderani={${1:\\\\babelprovide options}}\",\n      \"malayalam\",\n      \"malayalam={${1:\\\\babelprovide options}}\",\n      \"northernkurdish-arab\",\n      \"northernkurdish-arab={${1:\\\\babelprovide options}}\",\n      \"pashto\",\n      \"pashto={${1:\\\\babelprovide options}}\",\n      \"persian\",\n      \"persian={${1:\\\\babelprovide options}}\",\n      \"punjabi-arab\",\n      \"punjabi-arab={${1:\\\\babelprovide options}}\",\n      \"syriac\",\n      \"syriac={${1:\\\\babelprovide options}}\",\n      \"urdu\",\n      \"urdu={${1:\\\\babelprovide options}}\",\n      \"uyghur\",\n      \"uyghur={${1:\\\\babelprovide options}}\",\n      \"uzbek-arab\",\n      \"uzbek-arab={${1:\\\\babelprovide options}}\",\n      \"yiddish\",\n      \"yiddish={${1:\\\\babelprovide options}}\",\n      \"layout=${1|sectioning,counters,counters*,contents,footnotes,captions,columns,graphics,extras|}\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beamer-rl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-beamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"beamerbasemodes\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"beamerbaseoptions\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"xxcolor\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"beamerbaserequires\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"headdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertaspectratio\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beamer#c\": [\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-beamerswitch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xkvltxp\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"class-book\",\n      \"if\": \"articleclass=book\"\n    },\n    {\n      \"name\": \"class-report\",\n      \"if\": \"articleclass=report\"\n    },\n    {\n      \"name\": \"class-memoir\",\n      \"if\": \"articleclass=memoir\"\n    },\n    {\n      \"name\": \"beamerarticle\",\n      \"if\": \"article\"\n    },\n    {\n      \"name\": \"pgfpages\",\n      \"if\": \"handout\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ArticleSuffix\"\n    },\n    {\n      \"name\": \"BeamerSuffix\"\n    },\n    {\n      \"name\": \"HandoutSuffix\"\n    },\n    {\n      \"name\": \"TransSuffix\"\n    },\n    {\n      \"name\": \"BeamerswitchSpawn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeamerswitchSpawn{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"SpawnedCompiler\"\n    },\n    {\n      \"name\": \"SpawnedPDFTeX\"\n    },\n    {\n      \"name\": \"SpawnedLuaTeX\"\n    },\n    {\n      \"name\": \"SpawnedXeTeX\"\n    },\n    {\n      \"name\": \"SpawnedTeX\"\n    },\n    {\n      \"name\": \"handoutlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handoutlayout{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\handoutlayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"articlelayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articlelayout{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\articlelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JobName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"handoutpnobaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionfirstshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehandoutpno\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beamerswitch#c\": [\n      \"articleclass=${1:class}\",\n      \"articleoptions={${1:article class options}}\",\n      \"beameroptions={${1:beamer class options}}\",\n      \"article\",\n      \"beamer\",\n      \"handout\",\n      \"trans\",\n      \"alsoarticle\",\n      \"alsobeamer\",\n      \"alsohandout\",\n      \"alsotrans\",\n      \"also={${1:modes}}\",\n      \"nohyperref\"\n    ],\n    \"\\\\handoutlayout\": [\n      \"paper=${1:paper size}\",\n      \"nup=${1|1,1plus,2,3,3plus,4,4plus,6,8|}\",\n      \"pnos\",\n      \"border=\",\n      \"margin=\",\n      \"align\"\n    ],\n    \"\\\\articlelayout\": [\n      \"frametitles=${1|para,margin,none|}\",\n      \"maketitle\",\n      \"instbreak=${1:definition}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beamerswitch#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-beaulivre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"colorist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"fast=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongequal{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightrightarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightrightarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftleftarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftleftarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"loweredvdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"unusual\": true,\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"unicodevdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"limstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisesymbol{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/beaulivre#c\": [\n      \"draft\",\n      \"fast\",\n      \"a4paper\",\n      \"b5paper\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beaulivre#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-beilstein.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"tgheros\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"flafter\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:si title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sititle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sititle{${1:si title%text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:affil number}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"author[${2:affil number}][${3:email%URL}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"author*{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"author*[${3:affil number}]{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keyword1;keyword2;...}}\"\n      }\n    },\n    {\n      \"name\": \"sifile\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sifile{${1:file}}{${2:format}}{${3:short desc%text}}\"\n      }\n    },\n    {\n      \"name\": \"sifile\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sifile[${4:long desc%text}]{${1:file}}{${2:format}}{${3:short desc%text}}\"\n      }\n    },\n    {\n      \"name\": \"sglcolfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sglcolfigure{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"sglcolscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sglcolscheme{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"dblcolfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dblcolfigure{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"dblcolscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dblcolscheme{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"fnpara\"\n    },\n    {\n      \"name\": \"fnnormal\"\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chem{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IUPAC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IUPAC{${1:chemical compound}}\"\n      }\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    },\n    {\n      \"name\": \"BreakHyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoIUPAC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoIUPAC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FloatBarrier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MultiBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Updelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uplambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uppi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uppsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uptheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affiliations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowhyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angstrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"background\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beilstein\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"celsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conclusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emails\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errorfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"errorfootnote{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"firstoptarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcites\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fudgefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longtablefootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefootnoteparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehboxofhboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpmakefootnoteparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mynobreakdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneORnone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patchAmsMathEnvironmentForLineno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchAmsMathEnvironmentForLineno{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"patchAmsMathEnvironmentForOnecolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchAmsMathEnvironmentForOnecolumn{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"patchBothAmsMathEnvironmentsForLineno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchBothAmsMathEnvironmentsForLineno{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"patchBothAmsMathEnvironmentsForOnecolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchBothAmsMathEnvironmentsForOnecolumn{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"percent\",\n      \"unusual\": true,\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"permil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removehboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"results\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdisplaywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testbx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testfnpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themyfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesuppinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsamerican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateamerican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasamerican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasamerican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"funding\"\n    },\n    {\n      \"name\": \"suppinfo\"\n    },\n    {\n      \"name\": \"scheme\"\n    },\n    {\n      \"name\": \"sglcoltabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"sglcoltabularx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"dblcoltabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"dblcoltabularx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"widetext\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/beilstein#c\": [\n      \"manuscript=${1|bookreport,commentary,fullresearchpaper,letter,review,suppinfo|}\",\n      \"american\",\n      \"british\",\n      \"latin1\",\n      \"utf8\",\n      \"applemac\",\n      \"sectionnumbering\",\n      \"fnpara\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/beilstein#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bewerbung.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"class-scrlttr2\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bewerbung-cv\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"bewerbung\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"lebenslaufXcolor=table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"lebenslaufXcolor=fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtofooter\",\n      \"if\": \"lebenslaufStyle=casual\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtofooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtofooter\",\n      \"if\": \"lebenslaufStyle=casual\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtofooter[${2:symbol}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bewerbung#c\": [\n      \"lebenslaufColor=\",\n      \"lebenslaufXcolor={${1:xcolor options}}\",\n      \"lebenslaufStyle=${1|classic,casual,oldstyle|}\",\n      \"anschrift=${1:.csv file}\",\n      \"idPlain\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bewerbung#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bfhbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"beamerthemeBFH\"\n    },\n    {\n      \"name\": \"bfhmodule\"\n    },\n    {\n      \"name\": \"bfhpub\",\n      \"if\": \"beamerarticle\"\n    },\n    {\n      \"name\": \"beamerarticle\",\n      \"if\": \"beamerarticle\"\n    },\n    {\n      \"name\": \"bfhpub\",\n      \"if\": \"beamerarticle=true\"\n    },\n    {\n      \"name\": \"beamerarticle\",\n      \"if\": \"beamerarticle=true\"\n    },\n    {\n      \"name\": \"handoutWithNotes\",\n      \"if\": \"printNotes\"\n    },\n    {\n      \"name\": \"handoutWithNotes\",\n      \"if\": \"paperNotes\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BFHarraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BFHarrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupBfhTabular\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTblr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/bfhbeamer#c\": [\n      \"authorontitle\",\n      \"logofile=${1:file}\",\n      \"enforce-title-logo=\",\n      \"beamerarticle\",\n      \"printNotes\",\n      \"tabletNotes\",\n      \"paperNotes\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bfhbeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bfhpub.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"bfhlayout\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enableHeadLineLogo\",\n      \"if\": \"type=factsheet\"\n    },\n    {\n      \"name\": \"enableHeadLineLogo*\",\n      \"if\": \"type=factsheet\"\n    },\n    {\n      \"name\": \"disableHeadlineLogo\",\n      \"if\": \"type=factsheet\"\n    },\n    {\n      \"name\": \"coadvisorname\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorname\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpartnername\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expertname\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectstartdatename\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studysubmissiondatename\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportsubmissiondatename\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationdatename\",\n      \"if\": \"type=projectproposal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisor\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coadvisor\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"projectpartner\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"projectpartner{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"expert\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expert{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"projectstartdate\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"projectstartdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"studysubmissiondate\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studysubmissiondate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"reportsubmissiondate\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reportsubmissiondate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"presentationdate\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presentationdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayCompetenceRatingChart\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisplayCompetenceRatingChart{${1:name1=val1,name2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayCompetenceRatingChart\",\n      \"if\": \"type=projectproposal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisplayCompetenceRatingChart[${2:options%keyvals}]{${1:name1=val1,name2=val2,...}}\",\n        \"keys\": [\n          \"\\\\DisplayCompetenceRatingChart\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ProjectDescription\",\n      \"if\": \"type=projectproposal\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\DisplayCompetenceRatingChart\": [\n      \"radius=\",\n      \"max-weight=${1:integer}\",\n      \"color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-bfhsciposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"bfhfonts\"\n    },\n    {\n      \"name\": \"bfhlogo\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"bfhcolors\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"bfhmodule\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"authorandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentheight\"\n    },\n    {\n      \"name\": \"contentwidth\"\n    },\n    {\n      \"name\": \"footer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footergraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footergraphics{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"footerhsep\"\n    },\n    {\n      \"name\": \"footerqrcode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcode*{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"footerqrcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcode{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"raggedfooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"BFHarraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BFHarrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupBfhTabular\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bfhTblr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\posterbox,\\\\begin{posterboxenv}\": [\n      \"BFH-plain\",\n      \"BFH-inner\",\n      \"BFH-abstract\",\n      \"BFH-colored\",\n      \"BFH-framed\",\n      \"BFH-framed-inner\",\n      \"BFH-colored-inner\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-bfhthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"bfhlayout\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coadvisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"projectpartner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"projectpartner{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"expert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expert{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"degreeprogram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeprogram{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"doade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doafr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doaen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupSignature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupSignature{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SignatureBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SignatureBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"declarationOfAuthorship\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declarationOfAuthorship\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declarationOfAuthorship[${1:text}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-biditufte-book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"bidituftefloat\"\n    },\n    {\n      \"name\": \"bidituftesidenote\"\n    },\n    {\n      \"name\": \"bidituftetoc\"\n    },\n    {\n      \"name\": \"bidituftegeneralstructure\"\n    },\n    {\n      \"name\": \"bidituftehyperref\"\n    },\n    {\n      \"name\": \"bidituftetitle\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/biditufte-book#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"reversegeometry\",\n      \"notoc\",\n      \"toc\",\n      \"hyper\",\n      \"nohyper\",\n      \"titlepage\",\n      \"notitlepage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/biditufte-book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-biditufte-handout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bidituftefloat\"\n    },\n    {\n      \"name\": \"bidituftesidenote\"\n    },\n    {\n      \"name\": \"bidituftetoc\"\n    },\n    {\n      \"name\": \"bidituftegeneralstructure\"\n    },\n    {\n      \"name\": \"bidituftehyperref\"\n    },\n    {\n      \"name\": \"bidituftetitle\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/biditufte-handout#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"reversegeometry\",\n      \"notoc\",\n      \"toc\",\n      \"hyper\",\n      \"nohyper\",\n      \"titlepage\",\n      \"notitlepage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/biditufte-handout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bitart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bitart#c\": [\n      \"lab-report\",\n      \"proposal-report\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bitart#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bitbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbeamer\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKhl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKhl{${1:color}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bitbeamer#c\": [\n      \"titlegraphic=${1:imagefile}\",\n      \"framelogo=${1:imagefile}\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bitbeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bitbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xihei\"\n    },\n    {\n      \"name\": \"arabicHeiti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arabicHeiti{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unnumchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unnumchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bitbook#c\": [\n      \"footskip=\",\n      \"titleNumberHeiti\",\n      \"bachelor\",\n      \"translation\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bitbook#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bithesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"zhlineskip\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"type=bachelor_english\"\n    },\n    {\n      \"name\": \"indentfirst\",\n      \"if\": \"type=bachelor_english\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BITSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BITSetup{${1:键值对%keyvals}}\",\n        \"keys\": [\n          \"\\\\BITSetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addpub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpub{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"addpubs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpubs{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Author\"\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Author[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Author[${1:n}][${2:覆盖普通模式下内容}]\"\n      }\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Author[${1:n}][${2:覆盖普通模式下内容}][${3:覆盖盲审模式下内容}]\"\n      }\n    },\n    {\n      \"name\": \"AuthorEn\"\n    },\n    {\n      \"name\": \"AuthorEn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AuthorEn[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"AuthorEn\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"AuthorEn[${1:n}][${2:覆盖普通模式下内容}]\"\n      }\n    },\n    {\n      \"name\": \"AuthorEn\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"AuthorEn[${1:n}][${2:覆盖普通模式下内容}][${3:覆盖盲审模式下内容}]\"\n      }\n    },\n    {\n      \"name\": \"MakeCover\"\n    },\n    {\n      \"name\": \"MakeOriginality\"\n    },\n    {\n      \"name\": \"MakePaperBack\"\n    },\n    {\n      \"name\": \"MakeTitle\"\n    },\n    {\n      \"name\": \"MakeTOC\"\n    },\n    {\n      \"name\": \"pubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubsection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SecretInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecretInfo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SecretInfo\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"SecretInfo{${1:arg}}[${2:opt}]\"\n      }\n    },\n    {\n      \"name\": \"arabicHeiti\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arabicHeiti{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arialfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BigStar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circled[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"circled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circled{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dunderline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dunderline[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dunderline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dunderline{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstractEn\"\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"algo\"\n    },\n    {\n      \"name\": \"algo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"axi\"\n    },\n    {\n      \"name\": \"axi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"bibprint\"\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"conclusion\"\n    },\n    {\n      \"name\": \"conj\"\n    },\n    {\n      \"name\": \"conj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"cor\"\n    },\n    {\n      \"name\": \"cor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"defn\"\n    },\n    {\n      \"name\": \"defn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"exmp\"\n    },\n    {\n      \"name\": \"exmp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"lem\"\n    },\n    {\n      \"name\": \"lem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"prop\"\n    },\n    {\n      \"name\": \"prop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"publications\"\n    },\n    {\n      \"name\": \"rem\"\n    },\n    {\n      \"name\": \"rem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"resume\"\n    },\n    {\n      \"name\": \"symbols\"\n    },\n    {\n      \"name\": \"them\"\n    },\n    {\n      \"name\": \"them\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:留数定理%text}]\"\n      }\n    },\n    {\n      \"name\": \"blindPeerReview\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/bithesis#c\": [\n      \"type=${1|bachelor,bachelor_translation,bachelor_english,master,doctor|}\",\n      \"blindPeerReview\",\n      \"quirks\",\n      \"twoside\"\n    ],\n    \"\\\\BITSetup#c\": [\n      \"cover={${1:键值列表}}\",\n      \"cover/date=${1:任意字符串}\",\n      \"cover/headerImage=${1:图片路径}\",\n      \"cover/xiheiFont=${1:字体路径}\",\n      \"cover/delimiter=${1:任意字符串}\",\n      \"cover/autoWidth\",\n      \"cover/autoWidthPadding=\",\n      \"cover/labelMaxWidth=\",\n      \"cover/valueMaxWidth=\",\n      \"cover/labelAlign=${1|c,l,r|}\",\n      \"cover/valueAlign=${1|c,l,r|}\",\n      \"cover/underlineThickness=\",\n      \"cover/underlineOffset=\",\n      \"cover/hideCoverInPeerReview\",\n      \"cover/showSpecialTypeBox\",\n      \"cover/prefer-zh\",\n      \"cover/reverse-titles\",\n      \"cover/addTitleZh\",\n      \"info={${1:键值列表}}\",\n      \"info/title=${1:字符串}\",\n      \"info/titleEn=${1:字符串}\",\n      \"info/verticalTitle=${1:字符串}\",\n      \"info/school=${1:字符串}\",\n      \"info/schoolEn=${1:字符串}\",\n      \"info/major=${1:字符串}\",\n      \"info/majorEn=${1:字符串}\",\n      \"info/author=${1:字符串}\",\n      \"info/authorEn=${1:字符串}\",\n      \"info/studentId=${1:字符串}\",\n      \"info/supervisor=${1:字符串}\",\n      \"info/supervisorEn=${1:字符串}\",\n      \"info/externalSupervisor=${1:字符串}\",\n      \"info/class=${1:字符串}\",\n      \"info/keywords={${1:字符串；以全角分号分割}}\",\n      \"info/keywordsEn={${1:字符串; 以分号分割}}\",\n      \"info/translationTitle=${1:字符串}\",\n      \"info/translationOriginTitleEn=${1:字符串}\",\n      \"info/classification=${1:字符串}\",\n      \"info/UDC=${1:字符串}\",\n      \"info/chairman=${1:字符串}\",\n      \"info/chairmanEn=${1:字符串}\",\n      \"info/degree=${1:字符串}\",\n      \"info/degreeEn=${1:字符串}\",\n      \"info/institute=${1:字符串}\",\n      \"info/instituteEn=${1:字符串}\",\n      \"info/defenseDate=${1:字符串}\",\n      \"info/defenseDateEn=${1:字符串}\",\n      \"info/classifiedLevel=${1:字符串}\",\n      \"info/crossResearch\",\n      \"info/internationalStudentUGP\",\n      \"info/teacher=${1:字符串}\",\n      \"info/semester=${1:字符串}\",\n      \"style={${1:键值列表}}\",\n      \"style/head=${1:字符串}\",\n      \"style/headline=${1:字符串}\",\n      \"style/bibliographyIndent\",\n      \"style/pageVerticalAlign=${1|top,scattered|}\",\n      \"style/non-CJK-font-in-headings=${1|serif,sans|}\",\n      \"style/mathFont=${1|asana,bonum,cm,concrete,dejavu,erewhon,euler,fira,garamond,gfsneohellenic,kp,libertinus,lm,newcm,pagella,schola,stix,stix2,termes,xcharter,xits,none|}\",\n      \"style/windowsSimSunFakeBold\",\n      \"style/unicodeMathOptions=${1:任意选项}\",\n      \"style/hyphen\",\n      \"style/mathAboveDisplaySkip=\",\n      \"style/mathBelowDisplaySkip=\",\n      \"style/betterTimesNewRoman\",\n      \"TOC={${1:键值列表}}\",\n      \"TOC/title=${1:字符串}\",\n      \"TOC/abstract\",\n      \"TOC/abstractEn\",\n      \"TOC/TOC\",\n      \"TOC/symbols\",\n      \"appendices={${1:键值列表}}\",\n      \"appendices/chapterLeveltrue,false\",\n      \"appendices/title=${1:字符串}\",\n      \"appendices/TOCTitle=${1:字符串}\",\n      \"publications={${1:键值列表}}\",\n      \"publications/sorting\",\n      \"publications/omit\",\n      \"publications/maxbibnames=${1:正整数}\",\n      \"publications/minbibnames=${1:正整数}\",\n      \"misc={${1:键值列表}}\",\n      \"misc/arialFont=${1:字符串}\",\n      \"misc/tabularFontSize=${1:其他字号}\",\n      \"misc/autoref={${1:键值列表}}\",\n      \"misc/hideLinks\",\n      \"misc/floatSeparation=${1:实数}\",\n      \"misc/algorithmSeparation=${1:实数}\",\n      \"misc/tabularRowSeparation=${1:实数}\",\n      \"const={${1:键值列表}}\",\n      \"const/autoref={${1:键值列表}}\",\n      \"const/style/substituteSymbol=${1:字符串}\",\n      \"const/info={${1:键值列表}}\",\n      \"const/heading={${1:键值列表}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bithesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bitreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BITSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BITSetup{${1:键值对%keyvals}}\",\n        \"keys\": [\n          \"\\\\BITSetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeCover\"\n    },\n    {\n      \"name\": \"MakeReviewTable\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bitreport#c\": [\n      \"type=undergraduate_proposal\"\n    ],\n    \"\\\\BITSetup#c\": [\n      \"cover={${1:键值列表}}\",\n      \"cover/date=${1:任意字符串}\",\n      \"cover/delimiter=${1:任意字符串}\",\n      \"cover/autoWidth\",\n      \"cover/autoWidthPadding=\",\n      \"cover/labelMaxWidth=\",\n      \"cover/valueMaxWidth=\",\n      \"cover/labelAlign=${1|c,l,r|}\",\n      \"cover/valueAlign=${1|c,l,r|}\",\n      \"cover/underlineThickness=\",\n      \"cover/underlineOffset=\",\n      \"info={${1:键值列表}}\",\n      \"info/title=${1:字符串}\",\n      \"info/school=${1:字符串}\",\n      \"info/major=${1:字符串}\",\n      \"info/class=${1:字符串}\",\n      \"info/author=${1:字符串}\",\n      \"info/studentId=${1:字符串}\",\n      \"info/supervisor=${1:字符串}\",\n      \"info/externalSupervisor=${1:字符串}\",\n      \"misc={${1:键值列表}}\",\n      \"misc/reviewTable=${1:.pdf file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bitreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bjfuthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"bicaption\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chartnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chartnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kaiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordscn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywordscn{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywordsen{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bjfuthesis#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bjfuthesis#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-boek.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:chap font}}{${4:sect font}}{${5:ssect font}}{${6:sssect font}}{${7:para font}}{${8:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/boek#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"mctitle\",\n      \"uctitle\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/boek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-boek3.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:chap font}}{${4:sect font}}{${5:ssect font}}{${6:sssect font}}{${7:para font}}{${8:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/boek3#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"titlecentered\",\n      \"mctitle\",\n      \"uctitle\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/boek3#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-book.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/book#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bookcover.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fgruler\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bookcovercomponent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bookcovercomponent{${1:type%keyvals}}{${2:part}}{${3:content}}\",\n        \"keys\": [\n          \"\\\\bookcovercomponent#c,\\\\begin{bookcoverelement}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookcovercomponent\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"bookcovercomponent{${1:type%keyvals}}{${2:part}}[${4:left,bottom,right,top}]{${3:content}}\",\n        \"keys\": [\n          \"\\\\bookcovercomponent#c,\\\\begin{bookcoverelement}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partheight\"\n    },\n    {\n      \"name\": \"partwidth\"\n    },\n    {\n      \"name\": \"coverheight\"\n    },\n    {\n      \"name\": \"coverwidth\"\n    },\n    {\n      \"name\": \"spinewidth\"\n    },\n    {\n      \"name\": \"flapwidth\"\n    },\n    {\n      \"name\": \"wrapwidth\"\n    },\n    {\n      \"name\": \"bleedwidth\"\n    },\n    {\n      \"name\": \"marklength\"\n    },\n    {\n      \"name\": \"markthick\"\n    },\n    {\n      \"name\": \"bookcoverdescgeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookcoverdescgeometry{${1:geometry parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\bookcoverdescgeometry\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showbookcoverparameters\"\n    },\n    {\n      \"name\": \"bookcovertrimmedpart\",\n      \"if\": \"trimmed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookcovertrimmedpart{${1:trimmed part}}\"\n      }\n    },\n    {\n      \"name\": \"bookcovertrimmedpart\",\n      \"if\": \"trimmed\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bookcovertrimmedpart{${1:trimmed part}}[${2:left,bottom,right,top}]\"\n      }\n    },\n    {\n      \"name\": \"bookcovertrimmedpart\",\n      \"if\": \"trimmed=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookcovertrimmedpart{${1:trimmed part}}\"\n      }\n    },\n    {\n      \"name\": \"bookcovertrimmedpart\",\n      \"if\": \"trimmed=true\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bookcovertrimmedpart{${1:trimmed part}}[${2:left,bottom,right,top}]\"\n      }\n    },\n    {\n      \"name\": \"setbookcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbookcover{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setbookcover\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newbookcoverpart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbookcoverpart{${1:new part}}{${2:setting}}\"\n      }\n    },\n    {\n      \"name\": \"renewbookcoverpart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbookcoverpart{${1:defined part}}{${2:setting}}\"\n      }\n    },\n    {\n      \"name\": \"setpartposx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartposx{${1:coord x}}\"\n      }\n    },\n    {\n      \"name\": \"setpartposy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartposy{${1:coord y}}\"\n      }\n    },\n    {\n      \"name\": \"setpartwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setpartheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"settrimmedpart\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"settrimmedpart{${1:width minus}}{${2:height minus}}{${3:shift x}}{${4:shift y}}\"\n      }\n    },\n    {\n      \"name\": \"newnamebookcoverpart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnamebookcoverpart{${1:new part}}{${2:defined part}}\"\n      }\n    },\n    {\n      \"name\": \"letnamebookcoverpart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letnamebookcoverpart{${1:new part}}{${2:defined part}}\"\n      }\n    },\n    {\n      \"name\": \"letnamebookcoverpart\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"letnamebookcoverpart{${1:new part}}{${2:defined part}}[${3:left,bottom,right,top}]\"\n      }\n    },\n    {\n      \"name\": \"newbookcovercomponenttype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbookcovercomponenttype{${1:new type%specialDef}}{${2:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"renewbookcovercomponenttype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewbookcovercomponenttype{${1:defined type}}{${2:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"newnamebookcovercomponenttype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnamebookcovercomponenttype{${1:new type%specialDef}}{${2:defined type}}\"\n      }\n    },\n    {\n      \"name\": \"letnamebookcovercomponenttype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letnamebookcovercomponenttype{${1:new type%specialDef}}{${2:defined type}}\"\n      }\n    },\n    {\n      \"name\": \"makebookcover\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bookcover\"\n    },\n    {\n      \"name\": \"bookcoverelement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:type%keyvals}}{${2:part}}\",\n        \"keys\": [\n          \"\\\\bookcovercomponent#c,\\\\begin{bookcoverelement}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookcoverelement\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:type%keyvals}}{${2:part}}[${3:left,bottom,right,top}]\",\n        \"keys\": [\n          \"\\\\bookcovercomponent#c,\\\\begin{bookcoverelement}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bookcoverdescription\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/bookcover#c\": [\n      \"cover=${1|default,a0,a1,a2,a3,a4,a5,a6,b0,b1,b2,b3,b4,b5,b6,c0,c1,c2,c3,c4,c5,c6,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansia,ansib,ansic,ansid,ansie,letter,legal,executive|}\",\n      \"coverheight=\",\n      \"coverwidth=\",\n      \"spinewidth=\",\n      \"flapwidth=\",\n      \"wrapwidth=\",\n      \"bleedwidth=\",\n      \"marklength=\",\n      \"foldingmargin\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"markthick=\",\n      \"markcolor=\",\n      \"pagecolor=\",\n      \"trimmed\",\n      \"trimmingcolor=\"\n    ],\n    \"\\\\bookcovercomponent#c,\\\\begin{bookcoverelement}#c\": [\n      \"color\",\n      \"tikz\",\n      \"tikz clip\",\n      \"picture\",\n      \"normal\",\n      \"center\",\n      \"ruler\",\n      \"%bookcovertype\"\n    ],\n    \"\\\\bookcoverdescgeometry\": [\n      \"layout=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"layoutwidth=\",\n      \"layoutheight=\",\n      \"layoutsize=\",\n      \"layoutsize={${1:width},${2:height}}\",\n      \"layouthoffset=\",\n      \"layoutvoffset=\",\n      \"layoutoffset=\",\n      \"layoutoffset={${1:hoffset},${2:voffset}}\",\n      \"hscale=${1:scale}\",\n      \"vscale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"scale={${1:hscale},${2:vscale}}\",\n      \"width=\",\n      \"totalwidth=\",\n      \"height=\",\n      \"totalheight=\",\n      \"total=\",\n      \"total={${1:width},${2:height}}\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"text=\",\n      \"body={${1:width},${2:height}}\",\n      \"lines=${1:integer}\",\n      \"includehead\",\n      \"includefoot\",\n      \"includeheadfoot\",\n      \"includemp\",\n      \"includeall\",\n      \"ignorehead\",\n      \"ignorefoot\",\n      \"ignoreheadfoot\",\n      \"ignoremp\",\n      \"ignoreall\",\n      \"heightrounded\",\n      \"hdivide={${1:left margin},${2:width},${3:right margin}}\",\n      \"vdivide={${1:top margin},${2:height},${3:bottom margin}}\",\n      \"divide={${1:left/top margin},${2:width/height},${3:right/bottom margin}}\",\n      \"left=\",\n      \"lmargin=\",\n      \"inner=\",\n      \"right=\",\n      \"rmargin=\",\n      \"outer=\",\n      \"top=\",\n      \"tmargin=\",\n      \"bottom=\",\n      \"bmargin=\",\n      \"hmargin=\",\n      \"hmargin={${1:left margin},${2:right margin}}\",\n      \"vmargin=\",\n      \"vmargin={${1:top margin},${2:bottom margin}}\",\n      \"margin=\",\n      \"margin={${1:left/top margin},${2:right/bottom margin}}\",\n      \"hmarginratio=${1:left}:${2:right}\",\n      \"vmarginratio=${1:top}:${2:bottom}\",\n      \"marginratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"marginratio=${1:left/top}:${2:right/bottom}\",\n      \"ratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"ratio=${1:left/top}:${2:right/bottom}\",\n      \"hcentering\",\n      \"vcentering\",\n      \"centering\",\n      \"twoside\",\n      \"asymmetric\",\n      \"bindingoffset=\",\n      \"headheight=\",\n      \"head=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"foot=\",\n      \"nohead\",\n      \"nofoot\",\n      \"noheadfoot\",\n      \"footnotesep=\",\n      \"marginparwidth=\",\n      \"marginparsep=\",\n      \"nomarginpar\",\n      \"columnsep=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"offset=\",\n      \"offset={${1:hoffset},${2:voffset}}\",\n      \"twocolumn\",\n      \"onecolumn\",\n      \"twoside\",\n      \"reversemp\",\n      \"reversemarginpar\"\n    ],\n    \"\\\\setbookcover\": [\n      \"markthick=\",\n      \"markcolor=\",\n      \"pagecolor=\",\n      \"trimmed\",\n      \"trimmingcolor=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bookcover#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bookshelf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makebook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makebook{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeA[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeA[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heightval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bookshelf#c\": [\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"ledgerpaper\",\n      \"tabloidpaper\",\n      \"landscape\",\n      \"portrait\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bookshelf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-br-lex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-mwbk\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"textcase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titulo{${1:Título%text}}\"\n      }\n    },\n    {\n      \"name\": \"descricao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descricao{${1:Descrição%text}}\"\n      }\n    },\n    {\n      \"name\": \"cortado\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cortado{${1:texto%text}}\"\n      }\n    },\n    {\n      \"name\": \"artigo\"\n    },\n    {\n      \"name\": \"paragrafo\"\n    },\n    {\n      \"name\": \"paragrafounico\"\n    },\n    {\n      \"name\": \"inciso\"\n    },\n    {\n      \"name\": \"alinea\"\n    },\n    {\n      \"name\": \"itens\"\n    },\n    {\n      \"name\": \"theartigo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparagrafo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinciso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealinea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theitens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\"\n    },\n    {\n      \"name\": \"orda\"\n    },\n    {\n      \"name\": \"ro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/br-lex#c\": [\n      \"capitulo\",\n      \"paragrafoespaco\",\n      \"paragrafonormal\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"wide\",\n      \"withmarginpar\",\n      \"withoutmarginpar\",\n      \"10pt\",\n      \"10dd\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"rmheadings\",\n      \"sfheadings\",\n      \"floatssmall\",\n      \"floatsnormalsize\",\n      \"authortitle\",\n      \"titleauthor\",\n      \"indentfirst\",\n      \"noindentfirst\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/br-lex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-brandeis-dissertation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"tocloft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"graduationmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduationmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"graduationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"program\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"program{${1:program%text}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"signoff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"signoff{${1:name}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"committee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"committee{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlepage\"\n    },\n    {\n      \"name\": \"makeapproval\"\n    },\n    {\n      \"name\": \"startbody\"\n    },\n    {\n      \"name\": \"sectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-brandeis-thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"sectsty\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"mathptmx\"\n    },\n    {\n      \"name\": \"tocloft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"graduationmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduationmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"graduationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"program\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"program{${1:program%text}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"degreetype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreetype{${1:type%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlepage\"\n    },\n    {\n      \"name\": \"startbody\"\n    },\n    {\n      \"name\": \"sectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-brief.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"afsluiting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afsluiting{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"antwoordadres\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antwoordadres{${1:return address}}\"\n      }\n    },\n    {\n      \"name\": \"betreft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"betreft{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"bijlagen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bijlagen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datum{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"en\"\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"maakbriefhoofd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maakbriefhoofd*{${1:header%text}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"maakbriefhoofd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maakbriefhoofd{${1:header%text}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ondertekening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ondertekening{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"onskenmerk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onskenmerk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"uwbriefvan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uwbriefvan{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"uwkenmerk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uwkenmerk{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"vandaag\"\n    },\n    {\n      \"name\": \"voetitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"voetitem{${1:label%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresveld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adresveldbreedte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanbrief\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betrefttekst\"\n    },\n    {\n      \"name\": \"bijlage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bijlage{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"bijlagentekst\"\n    },\n    {\n      \"name\": \"bijlagetekst\"\n    },\n    {\n      \"name\": \"bladnummertekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"briefhoofd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"datumtekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchbrief\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"englishbrief\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footitem{${1:label%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchbrief\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geadresseerdetekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanbrief\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kleinvet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheader*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeheader*{${1:header%text}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"makeheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeheader{${1:header%text}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"mlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:return address}}{${2:to address}}\"\n      }\n    },\n    {\n      \"name\": \"onderwerp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onderwerp{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"onskenmerktekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfstreepje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"re\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"re{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"referentieregel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refkopfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refveldbreedte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replyaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"replyaddress{${1:return address}}\"\n      }\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"streepje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"streepjes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"streepjes{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"telefoontekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uwbrieftekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uwkenmerktekst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vensterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vervolghoofd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vervolgreferentieregel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voetregel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vouwstreepjes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourletterof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yourletterof{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"yourreference\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yourreference{${1:reference}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"brief\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/brief#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"USletter\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"typhulp\",\n      \"geentyphulp\",\n      \"streepjes\",\n      \"geenstreepjes\",\n      \"adreslinks\",\n      \"adresrechts\",\n      \"dutch\",\n      \"english\",\n      \"american\",\n      \"german\",\n      \"french\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/brief#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-buctcover.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"textpos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coversetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coversetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\coversetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:pdf file%file}]\"\n      }\n    },\n    {\n      \"name\": \"xingkai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhkai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xbsong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbsong\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/buctcover#c\": [\n      \"type=${1|bachelor,master,doctor|}\"\n    ],\n    \"\\\\coversetup\": [\n      \"class={${1:class}}\",\n      \"studentid={${1:id number}}\",\n      \"titleA={${1:text}}\",\n      \"titleB={${1:text}}\",\n      \"major={${1:专业}}\",\n      \"author={${1:中文名}}\",\n      \"supervisor={${1:导师姓名, 教授}}\",\n      \"date={${1:YYYY-MM-DD}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/buctcover#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-buctthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"mhchem\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"bicaption\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"gbt7714\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"fgruler\",\n      \"if\": \"debugger\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"debugger\"\n    },\n    {\n      \"name\": \"fgruler\",\n      \"if\": \"debugger=true\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"debugger=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"buctsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buctsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\buctsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:imagefile}]\"\n      }\n    },\n    {\n      \"name\": \"makedeclare\"\n    },\n    {\n      \"name\": \"makedeclare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makedeclare[${1:imagefile}]\"\n      }\n    },\n    {\n      \"name\": \"taskinfo\"\n    },\n    {\n      \"name\": \"taskinfo*\"\n    },\n    {\n      \"name\": \"taskitem\"\n    },\n    {\n      \"name\": \"tableofcontentsEN\"\n    },\n    {\n      \"name\": \"listofdesignfigures\"\n    },\n    {\n      \"name\": \"echapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"echapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"esection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"esubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"esubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bichapter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bichapter{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bichapter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bichapter[${3:short title}]{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisection{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisection[${3:short title}]{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubsection{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisubsection[${3:short title}]{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubsubsection{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisubsubsection[${3:short title}]{${1:title}}{${2:English title%title}}\"\n      }\n    },\n    {\n      \"name\": \"dcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bfhei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bfsong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cabstract\"\n    },\n    {\n      \"name\": \"eabstract\"\n    },\n    {\n      \"name\": \"taskbook\"\n    },\n    {\n      \"name\": \"taskbook\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"bibenumerate\"\n    },\n    {\n      \"name\": \"denotation\"\n    },\n    {\n      \"name\": \"denotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"foreword\"\n    },\n    {\n      \"name\": \"dfigure\"\n    },\n    {\n      \"name\": \"dfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"conclusion\"\n    },\n    {\n      \"name\": \"translation\"\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"achievements\"\n    },\n    {\n      \"name\": \"resume\"\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/buctthesis#c\": [\n      \"type=${1|bachelor,master,doctor|}\",\n      \"submit\",\n      \"openright\",\n      \"openany\",\n      \"debugger\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\buctsetup\": [\n      \"ChineseTitle={${1:中文标题}}\",\n      \"ChineseTitleLineA=\",\n      \"ChineseTitleLineB=\",\n      \"EnglishTitle={${1:English title}}\",\n      \"author={${1:中文名}}\",\n      \"class={${1:class}}\",\n      \"studentid={${1:id number}}\",\n      \"school={${1:学院}}\",\n      \"major={${1:专业}}\",\n      \"supervisor={${1:导师姓名, 教授}}\",\n      \"msupervisor={${1:导师姓名, 教授}}\",\n      \"ChineseKeywords={${1:关键词 1, 关键词 2}}\",\n      \"EnglishKeywords={${1:keyword1,keyword2,...}}\",\n      \"date={${1:date}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/buctthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-bull-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SuperTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuperTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"STintro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STintro{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/bull-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/bull-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-businesscard-qrcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"DejaVuSans\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"crop\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"content\"\n    },\n    {\n      \"name\": \"papersize\"\n    },\n    {\n      \"name\": \"padding\"\n    },\n    {\n      \"name\": \"border\"\n    },\n    {\n      \"name\": \"cutlen\"\n    },\n    {\n      \"name\": \"textpercents\"\n    },\n    {\n      \"name\": \"imagepercents\"\n    },\n    {\n      \"name\": \"lang\"\n    },\n    {\n      \"name\": \"protdisplay\"\n    },\n    {\n      \"name\": \"protprefix\"\n    },\n    {\n      \"name\": \"printaddress\"\n    },\n    {\n      \"name\": \"registerData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerData{${1:data type}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"givennames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"givennames{${1:given names}}\"\n      }\n    },\n    {\n      \"name\": \"familynames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynames{${1:family names}}\"\n      }\n    },\n    {\n      \"name\": \"honoricprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honoricprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"honoricsuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honoricsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"additionalnames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"additionalnames{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"pobox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pobox{${1:PO box}}\"\n      }\n    },\n    {\n      \"name\": \"extaddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extaddr{${1:address extension}}\"\n      }\n    },\n    {\n      \"name\": \"street\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"street{${1:street}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"region\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"region{${1:region}}\"\n      }\n    },\n    {\n      \"name\": \"zip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zip{${1:ZIP code}}\"\n      }\n    },\n    {\n      \"name\": \"country\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"country{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"jabber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jabber{${1:jabber address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"matrixorg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixorg{${1:matrix address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"cloud\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cloud{${1:nextcloud ID%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"wordpress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wordpress{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"drupal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drupal{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"joomla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joomla{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"wikipedia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wikipedia{${1:page name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"world\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"world{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"git\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"git{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"gitea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gitea{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"github\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"github{${1:account name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"facebook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"facebook{${1:account name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"twitter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twitter{${1:account name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"youtube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youtube{${1:account name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"google\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"google{${1:account name%URL}}\"\n      }\n    },\n    {\n      \"name\": \"pgpurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgpurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pgpfingerprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgpfingerprint{${1:fingerprint%URL}}\"\n      }\n    },\n    {\n      \"name\": \"enforceright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exec{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"insa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"insa{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"insa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"insa[${3:text%plain}]{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"ifexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifexists{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifboth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboth{${1:csname1}}{${2:csname2}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifany\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifany{${1:csname1}}{${2:csname2}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"cond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cond{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"heightscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vcard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertqrcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawcard\"\n    },\n    {\n      \"name\": \"tl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"br\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/businesscard-qrcode#c\": [\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"contentwidth=\",\n      \"contentheight=\",\n      \"fontsize=\",\n      \"padding=\",\n      \"cutdist=${1:number}\",\n      \"cutlen=${1:number}\",\n      \"textwidth=${1:factor}\",\n      \"qrwidth=${1:factor}\",\n      \"lang=${1:lang prefix}\",\n      \"address\",\n      \"noaddress\",\n      \"hint\",\n      \"nohint\",\n      \"icon\",\n      \"noicon\",\n      \"rightalign\",\n      \"leftalign\",\n      \"iconleft\",\n      \"iconright\",\n      \"fill\",\n      \"nofill\",\n      \"qrfirst\",\n      \"textfirst\",\n      \"https\",\n      \"www\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/businesscard-qrcode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-caesar_book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mhchem\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"sidenotes\"\n    },\n    {\n      \"name\": \"morefloats\"\n    },\n    {\n      \"name\": \"marginfix\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"beramono\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"maketitlepage\"\n    },\n    {\n      \"name\": \"marginparstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newthought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newthought{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"overhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisher{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"thesis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-cas-dc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"balance\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"stfloats\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cas-common\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"stix\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ABD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABD{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"blstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blstr{${1:stretch}}\"\n      }\n    },\n    {\n      \"name\": \"casfinallayoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casfinallayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casreviewlayoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casreviewlayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comma\",\n      \"unusual\": true,\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"dcfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcasfinallayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcasreviewlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflongmktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/cas-dc#c\": [\n      \"singleblind\",\n      \"doubleblind\",\n      \"longmktitle\",\n      \"final\",\n      \"review\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cas-dc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-cas-sc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"balance\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"stfloats\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cas-common\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"stix\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"review\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ABD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABD{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"blstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blstr{${1:stretch}}\"\n      }\n    },\n    {\n      \"name\": \"casfinallayoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casfinallayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casreviewlayoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casreviewlayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comma\",\n      \"unusual\": true,\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"dcfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcasfinallayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcasreviewlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflongmktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/cas-sc#c\": [\n      \"singleblind\",\n      \"doubleblind\",\n      \"longmktitle\",\n      \"final\",\n      \"review\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cas-sc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-cesenaexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarythrough\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"examsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examsection{${1:title}}{${2:italic text%text}}\"\n      }\n    },\n    {\n      \"name\": \"examsection*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examsection*{${1:title}}{${2:italic text%text}}\"\n      }\n    },\n    {\n      \"name\": \"boxempty\"\n    },\n    {\n      \"name\": \"boxcheck\"\n    },\n    {\n      \"name\": \"examparts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examparts{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"maketitle{${1:surname}}{${2:name}}{${3:id}}{${4:signature}}{${5:N}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"maketitle[${6:options%keyvals}]{${1:surname}}{${2:name}}{${3:id}}{${4:signature}}{${5:N}}\",\n        \"keys\": [\n          \"\\\\maketitle,\\\\maketitle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examtwoblocks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"examtwoblocks{${1:length1%l}}{${2:length2%l}}{${3:block1%text}}{${4:block2%text}}\"\n      }\n    },\n    {\n      \"name\": \"examtwoblockstop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"examtwoblockstop{${1:length1%l}}{${2:length2%l}}{${3:block1%text}}{${4:block2%text}}\"\n      }\n    },\n    {\n      \"name\": \"examoneblocktop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examoneblocktop{${1:length}}{${2:block%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/cesenaexam#c\": [\n      \"noversion\",\n      \"boxed\",\n      \"times\",\n      \"left=\",\n      \"right=\",\n      \"top=\",\n      \"bottom=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\maketitle,\\\\maketitle*\": [\n      \"textboxheight=\",\n      \"whiteboxheight=\",\n      \"textboxone={${1:content}}\",\n      \"textboxtwo={${1:content}}\",\n      \"textboxthree={${1:content}}\",\n      \"textboxfour={${1:content}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cesenaexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-cheatsheet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theauthor\"\n    },\n    {\n      \"name\": \"thedate\"\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/cheatsheet#c\": [\n      \"columns=${1:integer}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cheatsheet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-chletter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"titlehead\"\n    },\n    {\n      \"name\": \"titletopheight\"\n    },\n    {\n      \"name\": \"titlemidheight\"\n    },\n    {\n      \"name\": \"titlebotheight\"\n    },\n    {\n      \"name\": \"titlemargin\"\n    },\n    {\n      \"name\": \"titlewidth\"\n    },\n    {\n      \"name\": \"addressmargin\"\n    },\n    {\n      \"name\": \"addresswidth\"\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"stopbreaks\"\n    },\n    {\n      \"name\": \"startbreaks\"\n    },\n    {\n      \"name\": \"theletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"return\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"return{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"object\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"object{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"salutation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valediction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ps{${1:header%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closingmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebotmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemidmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titletopmatter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:i|n}]{${1:address}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/chletter#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leftwin\",\n      \"leftsig\",\n      \"foldmark\",\n      \"footfill\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/chletter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-cnltx-doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-tools\"\n    },\n    {\n      \"name\": \"cnltx-names\"\n    },\n    {\n      \"name\": \"cnltx-example\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"libertinehologopatch\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"libertinehologopatch\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble-\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble-\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble-\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble-\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble-\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble-=true\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble-=true\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble-=true\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble-=true\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble-=true\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"add-index\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"add-index=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"add-bib\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"add-bib=true\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"libertinehologopatch\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"libertinehologopatch\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"fnpct\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-microtype\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"load-microtype=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sinceversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sinceversion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"changedversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changedversion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"newnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnote{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newnote\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newnote{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newnote{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newnote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnote*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newnote*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newnote*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newnote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newnote*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newpackagename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpackagename{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"lppl\"\n    },\n    {\n      \"name\": \"LPPL\"\n    },\n    {\n      \"name\": \"license\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"license[${1:maintenance status}]\"\n      }\n    },\n    {\n      \"name\": \"license*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"license*[${1:maintenance status}]\"\n      }\n    },\n    {\n      \"name\": \"ctan\"\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"CTANurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTANurl{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"CTANurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CTANurl[${2:directory}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address}}\"\n      }\n    },\n    {\n      \"name\": \"website\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"website{${1:web address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"securewebsite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"securewebsite{${1:web address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"needpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needpackage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"needpackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"needpackage[${2:directory}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"needclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needclass{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"needclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"needclass[${2:directory}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"command{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"command{${1:name}}[${2:after}]\"\n      }\n    },\n    {\n      \"name\": \"command*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"command*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"command*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"command*{${1:name}}[${2:after}]\"\n      }\n    },\n    {\n      \"name\": \"Default\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Default{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Default*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Default*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"expandable\"\n    },\n    {\n      \"name\": \"unexpandable\"\n    },\n    {\n      \"name\": \"expandablesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandablesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unexpandablesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"opt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"keyval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyval{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keyval*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyval*{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keylit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keylit{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keylit*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keylit*{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keychoice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keychoice{${1:name}}{${2:list of choices}}\"\n      }\n    },\n    {\n      \"name\": \"keychoice*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keychoice*{${1:name}}{${2:list of choices}}\"\n      }\n    },\n    {\n      \"name\": \"keybool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keybool{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"keybool*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keybool*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Module\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Module{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Module*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Module*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environment{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"environment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environment*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"environment{${1:name}}[${2:after}]\"\n      }\n    },\n    {\n      \"name\": \"environment*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"environment*{${1:name}}[${2:after}]\"\n      }\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"load-preamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"load-preamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"load-preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"load-preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"load-preamble\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"load-preamble=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"load-preamble=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"load-preamble=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"load-preamble=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"load-preamble=true\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"load-preamble+\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"load-preamble+\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"load-preamble+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"load-preamble+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"load-preamble+\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"load-preamble+=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"load-preamble+=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"load-preamble+=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"load-preamble+=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"load-preamble+=true\"\n    },\n    {\n      \"name\": \"cnltxpackagenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnltxpackagenameformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visualizespaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"visualizespaces{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"visiblespace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"commands\"\n    },\n    {\n      \"name\": \"options\"\n    },\n    {\n      \"name\": \"environments\"\n    },\n    {\n      \"name\": \"cnltxquote\"\n    },\n    {\n      \"name\": \"cnltxquote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:author/reference}]\"\n      }\n    },\n    {\n      \"name\": \"cnltxlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/cnltx-doc#c\": [\n      \"load-preamble\",\n      \"load-preamble-\",\n      \"load-preamble+\",\n      \"add-index\",\n      \"adapt-layout\",\n      \"babel-options={${1:options}}\",\n      \"scrartcl={${1:options}}\"\n    ],\n    \"\\\\setcnltx#c\": [\n      \"list-setup={${1:definitions}}\",\n      \"expandable-sign={${1:definitions}}\",\n      \"package={${1:package}}\",\n      \"class={${1:class}}\",\n      \"name={${1:name}}\",\n      \"title={${1:title}}\",\n      \"authors={${1:author list}}\",\n      \"version=${1:number}\",\n      \"date=\",\n      \"info={${1:package/class info}}\",\n      \"subtitle={${1:subtitle}}\",\n      \"url={${1:url}}\",\n      \"email={${1:email address}}\",\n      \"abstract={${1:abstract}}\",\n      \"build-title\",\n      \"quote-format={${1:definitions}}\",\n      \"quote-author-format={${1:definitions}}\",\n      \"index-prologue={${1:text}}\",\n      \"index-space=\",\n      \"index-setup={${1:options}}\",\n      \"makeindex-setup={${1:options}}\",\n      \"index-style={${1:style file}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cnltx-doc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-codedoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\",\n      \"if\": \"memoir\"\n    },\n    {\n      \"name\": \"class-book\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"class-ltxdockit\",\n      \"if\": \"ltxdockit\"\n    },\n    {\n      \"name\": \"class-scrartcl\",\n      \"if\": \"scrartcl\"\n    },\n    {\n      \"name\": \"class-scrbook\",\n      \"if\": \"scrbook\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"scrreprt\"\n    },\n    {\n      \"name\": \"class-scrlttr2\",\n      \"if\": \"scrlttr2\"\n    },\n    {\n      \"name\": \"class-ltxdoc\",\n      \"if\": \"ltxdoc\"\n    },\n    {\n      \"name\": \"class-report\",\n      \"if\": \"report\"\n    },\n    {\n      \"name\": \"class-ltxguide\",\n      \"if\": \"ltxguide\"\n    },\n    {\n      \"name\": \"class-ltxguidex\",\n      \"if\": \"ltxguidex\"\n    },\n    {\n      \"name\": \"class-l3doc\",\n      \"if\": \"l3doc\"\n    },\n    {\n      \"name\": \"makeidx\",\n      \"if\": \"index\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProduceFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProduceFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ProduceFile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProduceFile{${1:file}}[${2:file name}]\"\n      }\n    },\n    {\n      \"name\": \"ProduceFile\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"ProduceFile{${1:file}}[${2:file name}][${3:file version}]\"\n      }\n    },\n    {\n      \"name\": \"ProduceFile\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"ProduceFile{${1:file}}[${2:file name}][${3:file version}][${4:file date}]\"\n      }\n    },\n    {\n      \"name\": \"FileSource\"\n    },\n    {\n      \"name\": \"FileName\"\n    },\n    {\n      \"name\": \"FileVersion\"\n    },\n    {\n      \"name\": \"FileDate\"\n    },\n    {\n      \"name\": \"CloseFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CloseFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CodeFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CodeFont{${1:font specs}}\"\n      }\n    },\n    {\n      \"name\": \"LineNumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LineNumber{${1:envname}}{${2:font specs}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"LineNumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"LineNumber{${1:envname}}{${2:font specs}}{${3:width}}[${4:number}]\"\n      }\n    },\n    {\n      \"name\": \"Header\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Header{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AddBlankLine\"\n    },\n    {\n      \"name\": \"TabSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TabSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Gobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gobble{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BoxTolerance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BoxTolerance{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DefineEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeIndexFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeIndexFont{${1:font specs}}\"\n      }\n    },\n    {\n      \"name\": \"DefineIndexFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineIndexFont{${1:font specs}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"DocStripMarginpar\"\n    },\n    {\n      \"name\": \"IgnorePrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IgnorePrefix{${1:macro prefix}}\"\n      }\n    },\n    {\n      \"name\": \"PrintPrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintPrefix{${1:macro prefix}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"StopHere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StopHere{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DangerousEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DangerousEnvironment{${1:envname list}}\"\n      }\n    },\n    {\n      \"name\": \"StartIgnore\"\n    },\n    {\n      \"name\": \"StopIgnore\"\n    },\n    {\n      \"name\": \"CodeInput\"\n    },\n    {\n      \"name\": \"CodeOutput\"\n    },\n    {\n      \"name\": \"NewExample\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewExample{${1:envname}}{${2:code input}}{${3:code output}}{${4:immediate execution}}\"\n      }\n    },\n    {\n      \"name\": \"NewExample\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewExample[${5:options%keyvals}]{${1:envname}}{${2:code input}}{${3:code output}}{${4:immediate execution}}\",\n        \"keys\": [\n          \"\\\\NewExample,\\\\RenewExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RenewExample\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewExample{${1:envname}}{${2:code input}}{${3:code output}}{${4:immediate execution}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExample\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewExample[${5:options%keyvals}]{${1:envname}}{${2:code input}}{${3:code output}}{${4:immediate execution}}\",\n        \"keys\": [\n          \"\\\\NewExample,\\\\RenewExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eTeXOff\"\n    },\n    {\n      \"name\": \"eTeXOn\"\n    },\n    {\n      \"name\": \"ShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShortVerb{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"UndoShortVerb\"\n    },\n    {\n      \"name\": \"ShortCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShortCode{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"ShortCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShortCode[${2:example name}]{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"UndoShortCode\"\n    },\n    {\n      \"name\": \"VerbBreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbBreak{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"UndoVerbBreak\"\n    },\n    {\n      \"name\": \"VerbCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"VerbCommand{${1:escape}}{${2:left brace}}{${3:right brace}}\"\n      }\n    },\n    {\n      \"name\": \"UndoVerbCommand\"\n    },\n    {\n      \"name\": \"CodeEscape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CodeEscape{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"UndoCodeEscape\"\n    },\n    {\n      \"name\": \"AtChar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"code\"\n    },\n    {\n      \"name\": \"code*\"\n    },\n    {\n      \"name\": \"invisible\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/codedoc#c\": [\n      \"autoclose\",\n      \"index\",\n      \"noheader\",\n      \"obeystop\",\n      \"tracing0\",\n      \"tracing1\",\n      \"tracing2\",\n      \"${1:class name}\"\n    ],\n    \"\\\\NewExample,\\\\RenewExample\": [\n      \"numbered\",\n      \"continuous\",\n      \"visibleEOL\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/codedoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-colorart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"colorist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/colorart#c\": [\n      \"draft\",\n      \"fast\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/colorart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-colorbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"colorist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/colorbook#c\": [\n      \"draft\",\n      \"fast\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/colorbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-combine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"class-memoir\",\n      \"if\": \"memoir\"\n    },\n    {\n      \"name\": \"class-book\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"class-letter\",\n      \"if\": \"letter\"\n    },\n    {\n      \"name\": \"class-report\",\n      \"if\": \"report\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"import\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"import{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"maintitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postmaintitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postmainauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maindatefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postmaindate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postimporttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postimportauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importdatefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postimportdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodytitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bodytitle{${1:long title}}\"\n      }\n    },\n    {\n      \"name\": \"bodytitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bodytitle[${2:short title}]{${1:long title}}\"\n      }\n    },\n    {\n      \"name\": \"bodytitlemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bodytitlemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coltoctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coltoctitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"coltoctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coltoctitle{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"published{${1:long%text}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"published[${2:short}]{${1:long%text}}\"\n      }\n    },\n    {\n      \"name\": \"pubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthorindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpubindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erasetitling\"\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"providelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:newlength%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecounter{${1:counter name}}\"\n      }\n    },\n    {\n      \"name\": \"zeroextracounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendiargdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendiargdef{${1:macro}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"emptyAtBeginDocument\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuppapers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"takedownpapers\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"papers\"\n    },\n    {\n      \"name\": \"papers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text/code}]\"\n      }\n    },\n    {\n      \"name\": \"tocindent\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/combine#c\": [\n      \"book\",\n      \"report\",\n      \"letter\",\n      \"memoir\",\n      \"classes\",\n      \"packages\",\n      \"layouts\",\n      \"folios\",\n      \"notoc\",\n      \"nolof\",\n      \"nolot\",\n      \"maintoc\",\n      \"date\",\n      \"noauthor\",\n      \"notitle\",\n      \"nomaketitle\",\n      \"nopubindoc\",\n      \"nopubintoc\",\n      \"onebib\",\n      \"combinedbib\",\n      \"colclass=${1:class name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/combine#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-contracard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"contracard\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"enableidx\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/contracard#c\": [\n      \"small\",\n      \"medium\",\n      \"large\",\n      \"a7paper\",\n      \"draft\",\n      \"showcountafter\",\n      \"showcountbefore\",\n      \"enableidx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/contracard#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-cours.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mafr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chapitre\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chapitre{${1:number}}{${2:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-cquthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"bicaption\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"diagbox\"\n    },\n    {\n      \"name\": \"tabu\"\n    },\n    {\n      \"name\": \"courier\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"mhchem\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"upgreek\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bigcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigcell{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"cdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cec{${1:molecule1,molecule2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cftafterequENtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftafterequtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftequationsENnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftequationsnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftequENtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftequtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterstar{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ckeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckeywords{${1:关键词 1,关键词 2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"colsep\"\n    },\n    {\n      \"name\": \"colsep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"colsep[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"cquauthpage\"\n    },\n    {\n      \"name\": \"cquauthpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cquauthpage[${1:scannedFile}]\"\n      }\n    },\n    {\n      \"name\": \"cqueqshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cquthesis\"\n    },\n    {\n      \"name\": \"edate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekeywords{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"eqlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqlist{${1:中文 name}}\"\n      }\n    },\n    {\n      \"name\": \"eqlist\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"eqlist{${1:中文 name}}[${2:English name}]\"\n      }\n    },\n    {\n      \"name\": \"headcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcell{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"listeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listeq{${1:中文 name}}\"\n      }\n    },\n    {\n      \"name\": \"listeq\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"listeq{${1:中文 name}}[${2:English name}]\"\n      }\n    },\n    {\n      \"name\": \"listofequations\"\n    },\n    {\n      \"name\": \"listofequationsEN\"\n    },\n    {\n      \"name\": \"listofequationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofequationsnameEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoffiguresEN\"\n    },\n    {\n      \"name\": \"listoffiguresnameEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoftablesEN\"\n    },\n    {\n      \"name\": \"listoftablesnameEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeabstract\"\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"MONTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parenthesesthis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenthesesthis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetrownum\"\n    },\n    {\n      \"name\": \"resetxuhao\"\n    },\n    {\n      \"name\": \"rownum\"\n    },\n    {\n      \"name\": \"rownum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rownum[${1:1}]\"\n      }\n    },\n    {\n      \"name\": \"rownumseparator\"\n    },\n    {\n      \"name\": \"rownumtype\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rownumtype[${1:1-6}]\"\n      }\n    },\n    {\n      \"name\": \"secretize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secretize{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortfigurenameEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttablenameEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecquXuHao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecquXuHaoType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"version\"\n    },\n    {\n      \"name\": \"xuhao\"\n    },\n    {\n      \"name\": \"xuhaoseparator\"\n    },\n    {\n      \"name\": \"xuhaotype\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xuhaotype[${1:1-6}]\"\n      }\n    },\n    {\n      \"name\": \"cqusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cqusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cqusetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctitle{${1:论文中文题目%text}}\"\n      }\n    },\n    {\n      \"name\": \"etitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etitle{${1:English title%text}}\"\n      }\n    },\n    {\n      \"name\": \"cauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cauthor{${1:中文名字}}\"\n      }\n    },\n    {\n      \"name\": \"eauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eauthor{${1:English name}}\"\n      }\n    },\n    {\n      \"name\": \"csupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csupervisor{${1:中文名字}}\"\n      }\n    },\n    {\n      \"name\": \"esupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esupervisor{${1:English name}}\"\n      }\n    },\n    {\n      \"name\": \"cpsupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpsupervisor{${1:中文名字}}\"\n      }\n    },\n    {\n      \"name\": \"epsupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epsupervisor{${1:English name}}\"\n      }\n    },\n    {\n      \"name\": \"cassistsupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cassistsupervisor{${1:中文名字}}\"\n      }\n    },\n    {\n      \"name\": \"cextrasupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cextrasupervisor{${1:中文名字}}\"\n      }\n    },\n    {\n      \"name\": \"eassistsupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eassistsupervisor{${1:English name}}\"\n      }\n    },\n    {\n      \"name\": \"cmajor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmajor{${1:中文专业%text}}\"\n      }\n    },\n    {\n      \"name\": \"emajor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emajor{${1:English major%text}}\"\n      }\n    },\n    {\n      \"name\": \"mycdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mycdate{${1:中文日期}}\"\n      }\n    },\n    {\n      \"name\": \"myedate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myedate{${1:English date}}\"\n      }\n    },\n    {\n      \"name\": \"ckeywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckeywords{${1:关键词 1,关键词 2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekeywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekeywords{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"cclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cclass{${1:中文学科%text}}\"\n      }\n    },\n    {\n      \"name\": \"edgree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edgree{${1:English degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdepartment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdepartment{${1:中文系%text}}\"\n      }\n    },\n    {\n      \"name\": \"edepartment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edepartment{${1:English department%text}}\"\n      }\n    },\n    {\n      \"name\": \"studentid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studentid{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cabstract\"\n    },\n    {\n      \"name\": \"Cplus\"\n    },\n    {\n      \"name\": \"eabstract\"\n    },\n    {\n      \"name\": \"denotation\"\n    },\n    {\n      \"name\": \"denotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:indent%l}]\"\n      }\n    },\n    {\n      \"name\": \"denotation\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:indent%l}][${2:labelwidth%l}]\"\n      }\n    },\n    {\n      \"name\": \"Python\"\n    },\n    {\n      \"name\": \"secretizeEnv\"\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/cquthesis#c\": [\n      \"type=${1|bachelor,master,doctor|}\",\n      \"liberalformat\",\n      \"academic\",\n      \"proffesionalmaster\",\n      \"openany\",\n      \"openright\",\n      \"blankleft\",\n      \"abstractopenright\",\n      \"blindtrail\",\n      \"printmode=${1|oneside,twoside,auto|}\",\n      \"secret\",\n      \"seriftoc\",\n      \"continuoustoc\",\n      \"bilinguallist=${1|off,combined,apart|}\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\cqusetup\": [\n      \"ctitle={${1:论文中文题目}}\",\n      \"etitle={${1:English title}}\",\n      \"cauthor={${1:中文名字}}\",\n      \"eauthor={${1:English name}}\",\n      \"csupervisor={${1:中文名字}}\",\n      \"esupervisor={${1:English name}}\",\n      \"cpsupervisor={${1:中文名字}}\",\n      \"epsupervisor={${1:English name}}\",\n      \"cassistsupervisor={${1:中文名字}}\",\n      \"cextrasupervisor={${1:中文名字}}\",\n      \"eassistsupervisor={${1:English name}}\",\n      \"cmajor={${1:中文专业}}\",\n      \"emajor={${1:English major}}\",\n      \"mycdate={${1:中文日期}}\",\n      \"myedate={${1:English date}}\",\n      \"ckeywords={${1:关键词 1,关键词 2,...}}\",\n      \"ekeywords={${1:keyword1,keyword2,...}}\",\n      \"cclass={${1:中文学科}}\",\n      \"edgree={${1:English degree}}\",\n      \"cdepartment={${1:中文系}}\",\n      \"edepartment={${1:English department}}\",\n      \"studentid={${1:id}}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/cquthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-csassignments.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"tgpagella\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gradingtable\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercise{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exercise[${2:points}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercise*{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exercise*[${2:points}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"subexercise\"\n    },\n    {\n      \"name\": \"subexercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subexercise[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"exerciseRules\"\n    },\n    {\n      \"name\": \"subexerciseRules\"\n    },\n    {\n      \"name\": \"noPoints\"\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"sheet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sheet{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"group\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"group{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"due\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"due{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"member\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"member{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"member\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"member[${2:student id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixId\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrefixId{${1:prefix text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrefixAuthor{${1:prefix text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrefixDate{${1:prefix text%text}}\"\n      }\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"primefield\"\n    },\n    {\n      \"name\": \"modring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"modring{${1:ring}}{${2:modulus}}\"\n      }\n    },\n    {\n      \"name\": \"derivative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivative{${1:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"matadd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matadd{${1:mat1%formula}}{${2:mat2%formula}}{${3:mat3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"matmul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matmul{${1:mat1%formula}}{${2:mat2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"matswap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matswap{${1:mat1%formula}}{${2:mat2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"rel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rel{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"theexercisenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubexercisenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalpoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradingTableExerciseLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradingTableExercisePoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PTableA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PTableB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PTHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"points\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vhrulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmembers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmember\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmember{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmember\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfmember[${2:student id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/csassignments#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"it\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/csassignments#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ctexart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexart#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ctexbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexbeamer#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexbeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ctexbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-book\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexbook#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ctexrep.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"class-report\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ctexrep#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctexrep#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ctxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-l3doc\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"multitoc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"fancyvrb-ex\"\n    },\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ctexdocverbaddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctexdisableecglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctexplainps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTtagStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPTtagStyle{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"ctexexamlabelref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thectexexam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctexsetverticalspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctexfixverticalspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SideBySideExampleSet\"\n    },\n    {\n      \"name\": \"exptarget\"\n    },\n    {\n      \"name\": \"rexptarget\"\n    },\n    {\n      \"name\": \"expstar\"\n    },\n    {\n      \"name\": \"rexpstar\"\n    },\n    {\n      \"name\": \"zihaopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zihaopt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"StopSpecialIndexModule\"\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"package[${2:CTAN path%URL}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"GetFileId\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileId{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"orbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultval{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"defaultvalaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultvalaux{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"TF\"\n    },\n    {\n      \"name\": \"TTF\"\n    },\n    {\n      \"name\": \"TFF\"\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"LaTeXiii\"\n    },\n    {\n      \"name\": \"dvipdfmx\"\n    },\n    {\n      \"name\": \"TeXLive\"\n    },\n    {\n      \"name\": \"MiKTeX\"\n    },\n    {\n      \"name\": \"ApTeX\"\n    },\n    {\n      \"name\": \"ApLaTeX\"\n    },\n    {\n      \"name\": \"upLaTeX\"\n    },\n    {\n      \"name\": \"bashcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashcmd{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"BSTACK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ESTACK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctexkit\"\n    },\n    {\n      \"name\": \"ctexkitrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctexkitrev{${1:commit}}\"\n      }\n    },\n    {\n      \"name\": \"IndexLayout\"\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"arguments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{arguments}#c,\\\\begin{optdesc}#c,\\\\begin{tablenotes}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"optdesc\"\n    },\n    {\n      \"name\": \"optdesc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{arguments}#c,\\\\begin{optdesc}#c,\\\\begin{tablenotes}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablenotes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{arguments}#c,\\\\begin{optdesc}#c,\\\\begin{tablenotes}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frameverb\"\n    },\n    {\n      \"name\": \"frameverb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{frameverb},\\\\begin{ctexexam}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctexexam\"\n    },\n    {\n      \"name\": \"ctexexam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{frameverb},\\\\begin{ctexexam}\",\n          \"\\\\begin{ctexexam}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultcapconfig\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ctxdoc#c\": [\n      \"full\",\n      \"onlydoc\",\n      \"check\",\n      \"nocheck\",\n      \"checktest\",\n      \"nochecktest\",\n      \"kernel\",\n      \"stdmodule\",\n      \"cm-default\",\n      \"lm-default\",\n      \"cs-break-off\",\n      \"cs-break-nohyphen\",\n      \"show-notes\",\n      \"hide-notes\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\begin{arguments}#c,\\\\begin{optdesc}#c,\\\\begin{tablenotes}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ],\n    \"\\\\begin{frameverb},\\\\begin{ctexexam}\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ],\n    \"\\\\begin{ctexexam}\": [\n      \"labelref=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ctxdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-curve.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxtable\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftheader{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightheader{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"photo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"photo[${2:hpos%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\photo,\\\\titlealignment,\\\\keyalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"photoscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"photoscale{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"photosep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerscale{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"headerspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlealignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlealignment{${1:hpos%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"titlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefont{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"subtitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitlefont{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"makeheaders\"\n    },\n    {\n      \"name\": \"makeheaders\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeheaders[${1:vpos%keyvals}]\",\n        \"keys\": [\n          \"\\\\makeheaders\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flavor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flavor{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"makerubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makerubric{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"rubricafterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubricalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubricalignment{${1:hpos%keyvals}}\",\n        \"keys\": [\n          \"\\\\rubricalignment,\\\\subrubricalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rubricfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubricfont{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"rubricspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entry{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"entry[${2:key%plain}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"entry*\"\n    },\n    {\n      \"name\": \"entry*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"entry*[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"keyalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyalignment{${1:hpos%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"keyfont\"\n    },\n    {\n      \"name\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prefix{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"noentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noentry{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"subrubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subrubric{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"subrubricalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subrubricalignment{${1:hpos%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"subrubricfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subrubricfont{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"subrubricspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subrubricbeforespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuedname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"continuedname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listpubname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listpubname{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"thebibcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebibtotal\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/curve#c\": [\n      \"skipsamekey\",\n      \"ask\",\n      \"openbib\",\n      \"revbib\",\n      \"english\",\n      \"french\",\n      \"spanish\",\n      \"portuguese\",\n      \"brazilian\",\n      \"italian\",\n      \"german\",\n      \"dutch\",\n      \"danish\",\n      \"swedish\",\n      \"polish\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\"\n    ],\n    \"\\\\photo,\\\\titlealignment,\\\\keyalignment\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\makeheaders\": [\n      \"t\",\n      \"b\",\n      \"c\"\n    ],\n    \"\\\\rubricalignment,\\\\subrubricalignment\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"cl\",\n      \"cc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/curve#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-droit-fr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"engrec\"\n    },\n    {\n      \"name\": \"filecontents\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"refcount\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"university\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"university{${1:université}}\"\n      }\n    },\n    {\n      \"name\": \"school\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"school{${1:école}}\"\n      }\n    },\n    {\n      \"name\": \"speciality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speciality{${1:spécialité%text}}\"\n      }\n    },\n    {\n      \"name\": \"approvaldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"approvaldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"director\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"director{${1:civilité}}{${2:prénom}}{${3:nom}}{${4:poste}}\"\n      }\n    },\n    {\n      \"name\": \"reportera\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reportera{${1:civilité}}{${2:prénom}}{${3:nom}}{${4:poste}}\"\n      }\n    },\n    {\n      \"name\": \"reporterb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"reporterb{${1:civilité}}{${2:prénom}}{${3:nom}}{${4:poste}}\"\n      }\n    },\n    {\n      \"name\": \"membera\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"membera{${1:civilité}}{${2:prénom}}{${3:nom}}{${4:poste}}\"\n      }\n    },\n    {\n      \"name\": \"memberb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memberb{${1:civilité}}{${2:prénom}}{${3:nom}}{${4:poste}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlepage\"\n    },\n    {\n      \"name\": \"partie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partie{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titre*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titre*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titre[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titre{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapitre*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapitre*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapitre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapitre[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapitre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapitre{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphe*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphe*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paragraphe[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphe{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspara*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"souspara*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspara\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"souspara[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"souspara{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"alinea*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alinea*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"alinea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alinea[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"alinea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alinea{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sousalinea*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sousalinea*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sousalinea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sousalinea[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sousalinea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sousalinea{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubparagraph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubparagraph*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubparagraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubparagraph[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubparagraph{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"point*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"point*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"point[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"point{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubparagraph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubparagraph*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubparagraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubparagraph[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubparagraph{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspoint*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"souspoint*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspoint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"souspoint[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"souspoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"souspoint{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"verset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verset{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fvref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fvref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makeindexv\"\n    },\n    {\n      \"name\": \"indexv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexv{${1:mot}}\"\n      }\n    },\n    {\n      \"name\": \"printindexv\"\n    },\n    {\n      \"name\": \"makeindexa\"\n    },\n    {\n      \"name\": \"indexa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexa{${1:mot}}\"\n      }\n    },\n    {\n      \"name\": \"printindexa\"\n    },\n    {\n      \"name\": \"addversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changetocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"counterToFrenchF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"counterToFrenchF{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"idxmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"indexafilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexvfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longtableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibindexnamelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuplongtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupshorttoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubparagraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubparagraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubparagraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubparagraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"theapprovaldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedirector\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedirectorjob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindexv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themembera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thememberajob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thememberb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thememberbjob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereportera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereporterajob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereporterb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereporterbjob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theschool\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespeciality\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versetcontent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versetcontent{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versetdot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versetdot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versetsec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"versetsec{${1:skip}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versetsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versetsecmark{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/droit-fr#c\": [\n      \"footnotereset\",\n      \"versetitle\",\n      \"french\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"revertauthors\",\n      \"namestyle=${1|parens,parensprefix,plain|}\",\n      \"smartinitials\",\n      \"indexnameformat\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/droit-fr#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-dtk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyphsubst\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"dtk-url\"\n    },\n    {\n      \"name\": \"hvqrurl\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"scrhack\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"hvextern\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"dtk-logos\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"tabularx\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"splitidx\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"trimspaces\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"picture\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"tabularx\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"splitidx\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"trimspaces\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"picture\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"AnonymousPro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AtEmbeddedBeginDocument\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEmbeddedEndDocument\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutorenListenName\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKinput\",\n      \"if\": \"full\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTKinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DTKissueTOmonth\",\n      \"if\": \"full\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTKissueTOmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTKmonthName\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKschriftenListe\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ErzeugeMitarbeiterListe\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatPosNumber\",\n      \"if\": \"full\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatPosNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"InfoTeX\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makePosNumbers\",\n      \"if\": \"full\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makePosNumbers{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"MitarbeiterListe\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Part*\",\n      \"if\": \"full\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Part*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Part\",\n      \"if\": \"full\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Part[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Part\",\n      \"if\": \"full\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Part{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"rolllabel\",\n      \"if\": \"full\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rolllabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theartcounter\",\n      \"if\": \"full\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEmbeddedBeginDocument\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEmbeddedEndDocument\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutorenListenName\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKinput\",\n      \"if\": \"full=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTKinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DTKissueTOmonth\",\n      \"if\": \"full=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTKissueTOmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTKmonthName\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKschriftenListe\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ErzeugeMitarbeiterListe\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatPosNumber\",\n      \"if\": \"full=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatPosNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"InfoTeX\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makePosNumbers\",\n      \"if\": \"full=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makePosNumbers{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"MitarbeiterListe\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Part*\",\n      \"if\": \"full=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Part*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Part\",\n      \"if\": \"full=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Part[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Part\",\n      \"if\": \"full=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Part{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"rolllabel\",\n      \"if\": \"full=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rolllabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theartcounter\",\n      \"if\": \"full=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Author{${1:Vorname}}{${2:Nachname}}{${3:Adresse}}\"\n      }\n    },\n    {\n      \"name\": \"Class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Class{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Command{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"DTKcorrVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKfullIssue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKissn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKlstfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKlstKeywordfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKmonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKrecordfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKrecordtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKversiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKvolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Env\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"Environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Environment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTKrecord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalname\"\n    },\n    {\n      \"name\": \"Klasse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Klasse{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Macro{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"Package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Package{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Paket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Paket{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Program\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Program{${1:program name}}\"\n      }\n    },\n    {\n      \"name\": \"Programm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Programm{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"tex4ht\"\n    },\n    {\n      \"name\": \"AutorenListe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"DTKrmFontName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKsfFontName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKttFontName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTKmathFontName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\"\n    },\n    {\n      \"name\": \"datengerman\"\n    },\n    {\n      \"name\": \"extrasngerman\"\n    },\n    {\n      \"name\": \"noextrasngerman\"\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"roll\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"roll\",\n      \"if\": \"full\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:labelwidth%l}]\"\n      }\n    },\n    {\n      \"name\": \"theAutoren\",\n      \"if\": \"full\"\n    },\n    {\n      \"name\": \"roll\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"roll\",\n      \"if\": \"full=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:labelwidth%l}]\"\n      }\n    },\n    {\n      \"name\": \"theAutoren\",\n      \"if\": \"full=true\"\n    },\n    {\n      \"name\": \"Figure\"\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Table\",\n      \"arg\": {\n        \"format\": \"[]{caption\",\n        \"snippet\": \"[${1:width}]{caption\"\n      }\n    },\n    {\n      \"name\": \"Table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/dtk#c\": [\n      \"Ausgabe=\",\n      \"Jahr=\",\n      \"Monat=\",\n      \"korr\",\n      \"full\",\n      \"color\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/dtk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-easybook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"easybase\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"bm\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/easybook#c\": [\n      \"draft\",\n      \"newline\",\n      \"scheme=${1|chinese,plain|}\",\n      \"enmode\",\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"config=${1:配置文件列表}\",\n      \"floatpage\",\n      \"theorem\",\n      \"cjkfont=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"font=${1|noto,times,times*,ebgaramond,libertine,palatino,auto|}\",\n      \"mathfont=${1|times,noto,notosans,nc,stix2,charter,ebgaramond,libertine,none|}\",\n      \"class=${1|book,article|}\",\n      \"book\",\n      \"article\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/easybook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ecgd-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ecgd-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ecgd-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-einfart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"minimalist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"useindent=false\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongequal{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightrightarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightrightarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftleftarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftleftarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"limstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisesymbol{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cosec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Variance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Proj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/einfart#c\": [\n      \"draft\",\n      \"fast\",\n      \"classical\",\n      \"useindent\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"use boldface\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/einfart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ejpecp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"dsfont\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"bera\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"afterpackage\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"PSTRICKS\"\n    },\n    {\n      \"name\": \"auto-pst-pdf\",\n      \"if\": \"PSTRICKS\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ABSTRACT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABSTRACT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ACCEPTED\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACCEPTED{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ACKNO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACKNO{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AMSSUBJ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMSSUBJ{${1:subj1;subj2;...}}\"\n      }\n    },\n    {\n      \"name\": \"AMSSUBJSECONDARY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMSSUBJSECONDARY{${1:subj}}\"\n      }\n    },\n    {\n      \"name\": \"ARXIV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ARXIV{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ARXIVID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ARXIVID{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"AUTHORS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AUTHORS{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"BEMAIL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BEMAIL{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"DEDICATORY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DEDICATORY{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DOI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"EMAIL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EMAIL{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"FIRSTNAMES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FIRSTPAGE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HALID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HALID{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"KEYWORDS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KEYWORDS{${1:word1;word2;...%text}}\"\n      }\n    },\n    {\n      \"name\": \"MR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PAGEEND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PAGEEND{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PAGESTART\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PAGESTART{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PAPERNUM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PAPERNUM{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PDFFIELDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SHORTTITLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SHORTTITLE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SUBMITTED\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SUBMITTED{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"SURNAME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TITLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TITLE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VOLUME\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VOLUME{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"YEAR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"YEAR{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"realmathbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"stitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgementsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"support\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"support{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumptions\"\n    },\n    {\n      \"name\": \"assumptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"condition\"\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definitions\"\n    },\n    {\n      \"name\": \"definitions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"facts\"\n    },\n    {\n      \"name\": \"facts\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\"\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"heuristics\"\n    },\n    {\n      \"name\": \"heuristics\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"hypothesis\"\n    },\n    {\n      \"name\": \"hypothesis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"hypotheses\"\n    },\n    {\n      \"name\": \"hypotheses\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notations\"\n    },\n    {\n      \"name\": \"notations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"supplement\"\n    },\n    {\n      \"name\": \"acks\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ejpecp#c\": [\n      \"EJP\",\n      \"ECP\",\n      \"NOAMS\",\n      \"NODS\",\n      \"PSTRICKS\",\n      \"draft\",\n      \"final\",\n      \"preprint\",\n      \"nofontexpansion\",\n      \"nobera\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"ejpecpbodyit\",\n      \"ejpecpbodyrm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ejpecp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elegantbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"mwe\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"apptools\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"manfnt\"\n    },\n    {\n      \"name\": \"bbding\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"adforn\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"xeCJK\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"xeCJK\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=nl\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"nl\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=hu\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"hu\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"lang=pt\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"pt\"\n    },\n    {\n      \"name\": \"luatexja\",\n      \"if\": \"lang=jp\"\n    },\n    {\n      \"name\": \"luatexja\",\n      \"if\": \"jp\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"math=mtpro2\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"newtx\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"mode=simple\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"simple\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"songti\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"heiti\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"kaishu\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"fangsong\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"songti\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"heiti\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"kaishu\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"fangsong\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"lang=it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"lang=it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"lang=it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"lang=it\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"lang=it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"lang=it\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"XXIletters\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"XXVIletters\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"if\": \"it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"if\": \"it\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"virgoladecimale\",\n      \"if\": \"it\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"if\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"if\": \"it\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"fr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdutch\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdutch\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchhyphenmins\",\n      \"if\": \"lang=nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdutch\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdutch\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchhyphenmins\",\n      \"if\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishrefname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishabstractname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishbibname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishchaptername\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishappendixname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishcontentsname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfigurename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlisttablename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishfigurename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishtablename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpartname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishenclname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishccname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishheadtoname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpagename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishseename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishalsoname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishproofname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishprefacename\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishglossaryname\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishdashitems\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsignitems\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsymbitems\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexchars\",\n      \"if\": \"lang=es\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishindexchars{${1:encap}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"spanishscroman\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishlcroman\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishucroman\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"Today\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishdate\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishdate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishDate\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishDate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdatedel\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishdatede\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishreverseddate\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishdatefirst\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdatefirst{${1:día-uno}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdeactivate\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdeactivate{${1:caracteres}}\"\n      }\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishdecimal\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdecimal{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spanishplainpercent\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"percentsign\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"lang=es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"sen\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"arcsen\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishoperators\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessi\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"selectspanish\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"spanishoptions\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notextspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsspanish\",\n      \"if\": \"lang=es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishrefname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishabstractname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishbibname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishchaptername\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishappendixname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishcontentsname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfigurename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlisttablename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishfigurename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishtablename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpartname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishenclname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishccname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishheadtoname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpagename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishseename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishalsoname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishproofname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishprefacename\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishglossaryname\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishdashitems\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsignitems\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsymbitems\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexchars\",\n      \"if\": \"es\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishindexchars{${1:encap}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"spanishscroman\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishlcroman\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishucroman\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"Today\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishdate\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishdate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishDate\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishDate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdatedel\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishdatede\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishreverseddate\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishdatefirst\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdatefirst{${1:día-uno}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdeactivate\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdeactivate{${1:caracteres}}\"\n      }\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"decimalpoint\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishdecimal\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdecimal{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spanishplainpercent\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"percentsign\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"if\": \"es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lquoti\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"rquoti\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"lquotii\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"rquotii\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"lquotiii\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"rquotiii\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"activatequoting\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"deactivatequoting\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"sen\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"arcsen\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"accentedoperators\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"unaccentedoperators\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spacedoperators\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"unspacedoperators\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishoperators\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessi\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"selectspanish\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"spanishoptions\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notextspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsspanish\",\n      \"if\": \"es\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmongolian\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"datemongolian\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"extrasmongolian\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"noextrasmongolian\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mongolian\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"Mon\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"lang=mn\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"lang=mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Useg\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"useg\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"nsd\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"nsk\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"NSD\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"NSK\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"lang=mn\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"lang=mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsmongolian\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"datemongolian\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"extrasmongolian\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"noextrasmongolian\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mongolian\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"English\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"Mon\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eng\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lat\",\n      \"if\": \"mn\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"mn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Useg\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"useg\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useg{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"nsd\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"nsk\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"NSD\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"NSK\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"mn\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuguese\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuguese\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"lang=pt\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"lang=pt\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"lang=pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuguese\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuguese\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\",\n      \"if\": \"pt\"\n    },\n    {\n      \"name\": \"orda\",\n      \"if\": \"pt\"\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"pt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prodop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prodop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"bioinfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bioinfo{${1:name}}{${2:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"extrainfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrainfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"cover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cover{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"circled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dollar\"\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mailto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailto{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"question{${1:text}}\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"datechange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"datechange{${1:date}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"afterchap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assumptionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axiomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforechap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbfseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conclusionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateinfoline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dateinfoline{${1:date}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekv{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"historyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instancename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institutename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introductionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofchanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postulatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemsetname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propertyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"style\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xchaptertitle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"lang=fr\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"lang=fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"lang=fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"fr\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"fr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"fr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"lang=es\"\n    },\n    {\n      \"name\": \"quoting\",\n      \"if\": \"es\"\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"postulate\"\n    },\n    {\n      \"name\": \"postulate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"conclusion\"\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"custom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"introduction\"\n    },\n    {\n      \"name\": \"introduction\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"problemset\"\n    },\n    {\n      \"name\": \"problemset\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"change\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elegantbook#c\": [\n      \"lang=${1|en,cn,it,fr,nl,hu,de,es,mn,jp,pt|}\",\n      \"device=${1|normal,pad|}\",\n      \"color=${1|green,cyan,blue,gray,black|}\",\n      \"titlestyle=${1|hang,display|}\",\n      \"mode=${1|simple,fancy|}\",\n      \"thmcnt=${1|section,chapter|}\",\n      \"math=${1|cm,newtx,mtpro2|}\",\n      \"citestyle=${1:style}\",\n      \"bibstyle=${1:style}\",\n      \"bibend=${1|bibtex,biber|}\",\n      \"toc=${1|onecol,twocol|}\",\n      \"marginpar=${1|margintrue,marginfalse|}\",\n      \"result=${1|answer,noanswer|}\",\n      \"scheme=${1:scheme}\",\n      \"chinesefont=${1|founder,ctexfont,nofont|}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\",\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elegantbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elegantnote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"extsizes\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"lstautogobble\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"math=mtpro2\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"newtx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"prodop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prodop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"cfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekv{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"IfEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfEmpty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifempty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"updatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versiontext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elegantnote#c\": [\n      \"color=${1|green,cyan,blue,sakura,black,brown|}\",\n      \"device=${1|pc,pad,kindle,normal,screen|}\",\n      \"lang=${1|cn,en|}\",\n      \"mode=${1|geye,hazy,sepia|}\",\n      \"chinesefont=${1|ctexfont,founder,nofont|}\",\n      \"citestyle=${1:style}\",\n      \"bibstyle=${1:style}\",\n      \"bibend=${1|biber,bibtex|}\",\n      \"fontsize=${1|8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt|}\",\n      \"math=${1|newtx,mtpro2,cm|}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elegantnote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elegantpaper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"xeCJK\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"xeCJK\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"math=mtpro2\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"math=newtx\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"newtx\"\n    },\n    {\n      \"name\": \"esint\",\n      \"if\": \"newtx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"songti\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"heiti\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"kaishu\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"fangsong\",\n      \"if\": \"lang=cn\"\n    },\n    {\n      \"name\": \"songti\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"heiti\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"kaishu\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"fangsong\",\n      \"if\": \"cn\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"math=newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prodop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"if\": \"newtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"cfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekv{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"IfEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfEmpty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"updatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versiontext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elegantpaper#c\": [\n      \"lang=${1|cn,en|}\",\n      \"math=${1|newtx,mtpro2,cm|}\",\n      \"citestyle=${1:style}\",\n      \"bibstyle=${1:style}\",\n      \"bibend=${1|biber,bibtex|}\",\n      \"chinesefont=${1|ctexfont,founder,nofont|}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elegantpaper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elpres.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"tmrfont\"\n    },\n    {\n      \"name\": \"courier\",\n      \"if\": \"tmrfont\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"helvetfont\"\n    },\n    {\n      \"name\": \"courier\",\n      \"if\": \"helvetfont\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"distance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"distance{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"auvimm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"auvimm{${1:text}}{${2:media file%file}}\"\n      }\n    },\n    {\n      \"name\": \"fromlinktext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fromlinktext{${1:text}}{${2:link label}}\"\n      }\n    },\n    {\n      \"name\": \"totargettext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"totargettext{${1:text}}{${2:link label}}\"\n      }\n    },\n    {\n      \"name\": \"slidetitlecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slidetitlecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pagenrconst\"\n    },\n    {\n      \"name\": \"fontna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"screenformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"navigation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstand{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psli\"\n    },\n    {\n      \"name\": \"psli\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"rsli\"\n    },\n    {\n      \"name\": \"citemize\"\n    },\n    {\n      \"name\": \"cenumerate\"\n    },\n    {\n      \"name\": \"cdescription\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elpres#c\": [\n      \"nofonts\",\n      \"tmrfont\",\n      \"helvetfont\",\n      \"cmfont\",\n      \"sansfont\",\n      \"4x3\",\n      \"16x9\",\n      \"16x10\",\n      \"navisymb\",\n      \"bulletsymb\",\n      \"ballsymb\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"luatex\",\n      \"pdftex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"xetex\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elpres#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elsarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"txfonts\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"endfloat\"\n    },\n    {\n      \"name\": \"endfloat\",\n      \"if\": \"endfloats\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"1p\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"3p\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"5p\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affiliation[${2:id}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\affiliation\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\affiliation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:id}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"biboptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biboptions{${1:natbib options%keyvals}}\",\n        \"keys\": [\n          \"\\\\biboptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"corref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corref{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"cortext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cortext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cortext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cortext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ead[${2:url}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnref{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"fntext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fntext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fntext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fntext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JEL\"\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal name}}\"\n      }\n    },\n    {\n      \"name\": \"MSC\"\n    },\n    {\n      \"name\": \"MSC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MSC[${1:year}]\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newdefinition{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdefinition{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newdefinition\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newdefinition{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"newpageafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpageafter{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\newpageafter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newproof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newproof{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"PACS\"\n    },\n    {\n      \"name\": \"sep\"\n    },\n    {\n      \"name\": \"tnoteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnoteref{${1:ids}}\"\n      }\n    },\n    {\n      \"name\": \"tnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tnotetext[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ABD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ABD[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ABD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABD{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"absbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstracttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstracttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"addsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alarm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alarm{${1:warning%text}}\"\n      }\n    },\n    {\n      \"name\": \"appnamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caaddressline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caaddressline[${2:punctuation}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"caaddressline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caaddressline{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"caaffcity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caaffcity[${2:punctuation}]{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"caaffcity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caaffcity{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"caaffiliationvalues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caaffitempostskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cacountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cacountry[${2:punctuation}]{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"cacountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cacountry{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"caorganization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caorganization[${2:punctuation}]{${1:organization}}\"\n      }\n    },\n    {\n      \"name\": \"caorganization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caorganization{${1:organization}}\"\n      }\n    },\n    {\n      \"name\": \"capostalcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"capostalcode[${2:punctuation}]{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"capostalcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capostalcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"castate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castate[${2:punctuation}]{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"castate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castate{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"castmaddressline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmaddressline[${2:punctuation}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"castmaddressline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmaddressline{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"castmaffcity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmaffcity[${2:punctuation}]{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"castmaffcity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmaffcity{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"castmcountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmcountry[${2:punctuation}]{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"castmcountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmcountry{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"castmorganization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmorganization[${2:punctuation}]{${1:organization}}\"\n      }\n    },\n    {\n      \"name\": \"castmorganization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmorganization{${1:organization}}\"\n      }\n    },\n    {\n      \"name\": \"castmpostalcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmpostalcode[${2:punctuation}]{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"castmpostalcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmpostalcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"castmstate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"castmstate[${2:punctuation}]{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"castmstate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"castmstate{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"Columnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comma\",\n      \"unusual\": true,\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"cormark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cormark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"doubleblindfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubleblindtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eadsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsarticlegrabsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsarticlehighlightsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsarticleprelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsarticletitlealign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elsLabel{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"elsparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsprelimauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsprelimpagegrabsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsprelimpagegrabstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsprelimpagehlfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsprelimpagehltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elsRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elsRef{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"emailauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emailauthor{${1:id}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"finalMaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fnmark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"fnotenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FNtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FNtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"getSpaceLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gstmappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gstmappto{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"hashchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdoubleblind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifelsprelimpagegrabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifelsprelimpagehl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflongmktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnonatbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnopreprintline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpreprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstmundef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifstmundef{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseexplthreefunctions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywordtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordtitlesep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywordtitlesep{${1:punctuation}}\"\n      }\n    },\n    {\n      \"name\": \"lbracechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longmktitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaketitleBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myfooter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"myfooter[${2:align}]{${1:footer}}\"\n      }\n    },\n    {\n      \"name\": \"myfooterfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myfooterfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"myfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"myfor{${1:num1}}{${2:num2}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"Newlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Newlabel{${1:id}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newstmrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newstmrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newstmrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newstmrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"nonatbibfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonatbibtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonumnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonumnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nopreprintlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopreprintlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pprintMaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pprinttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prelimauthorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprintfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprinttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printFirstPageNotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbracechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetTitleCounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savefpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savetitlepagespan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfbc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmexpandonce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmexpandonce{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textmarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textmarker{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"theaffn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlespancalculator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titlespancalculator{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tmptocnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tmptocnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tnotemark[${1:id}]\"\n      }\n    },\n    {\n      \"name\": \"tnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"underscorechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlauthor{${1:id}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"useauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useelstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useexplthreefunctionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useexplthreefunctionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xstmappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xstmappto{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:itemlabel}]\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"graphicalabstract\"\n    },\n    {\n      \"name\": \"highlights\"\n    },\n    {\n      \"name\": \"keyword\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elsarticle#c\": [\n      \"preprint\",\n      \"review\",\n      \"1p\",\n      \"3p\",\n      \"5p\",\n      \"authoryear\",\n      \"number\",\n      \"sort&compress\",\n      \"longtitle\",\n      \"times\",\n      \"reversenotenum\",\n      \"lefttitle\",\n      \"endfloat\",\n      \"nonatbib\",\n      \"doubleblind\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\affiliation\": [\n      \"organizationsep=${1:punctuation}\",\n      \"addresslinesep=${1:punctuation}\",\n      \"citysep=${1:punctuation}\",\n      \"postcodesep=${1:punctuation}\",\n      \"statesep=${1:punctuation}\",\n      \"countrysep=${1:punctuation}\",\n      \"organization={${1:organization}}\",\n      \"addressline={${1:address}}\",\n      \"city={${1:city}}\",\n      \"postcode={${1:postcode}}\",\n      \"state={${1:state}}\",\n      \"country={${1:country}}\"\n    ],\n    \"\\\\biboptions\": [\n      \"round\",\n      \"square\",\n      \"curly\",\n      \"angle\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"sort\",\n      \"sort&compress\",\n      \"compress\",\n      \"longnamesfirst\",\n      \"sectionbib\",\n      \"nonamebreak\",\n      \"merge\",\n      \"elide\",\n      \"mcite\"\n    ],\n    \"\\\\newpageafter\": [\n      \"title\",\n      \"author\",\n      \"abstract\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elsarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-elteikthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"chngcntr\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"nomencl\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"listingsutf8\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"preview\"\n    },\n    {\n      \"name\": \"hyphenat\",\n      \"if\": \"nohyp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acklabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"alglabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"cityname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"deptname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"documentlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"documentlang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"extaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extaffiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"extsupaff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extsupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extsupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"extsuplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extsupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"facname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faculty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculty{${1:faculty%text}}\"\n      }\n    },\n    {\n      \"name\": \"intsuplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"logofilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstalgorithmlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstcodelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstfigurelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstnomencl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsttablelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"supaff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"superscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"superscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"suplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconpageno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theolabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesistitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesisyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todolabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"university\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"university{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"univname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionshungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrashungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrashungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aref({${1:label}})\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szó}}\"\n      }\n    },\n    {\n      \"name\": \"azc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Azc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azc{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"azp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"azr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Azr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"emitdate[${3:toldalék}]{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"emitdate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emitdate{${1:formátum}}{${2:dátum}}\"\n      }\n    },\n    {\n      \"name\": \"factorial\"\n    },\n    {\n      \"name\": \"footnotestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotestyle{${1:előírás%keyvals}}\",\n        \"keys\": [\n          \"\\\\footnotestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hang{${1:bekezdéskezdő jel}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headingfootnote[${2:szám}]{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"headingfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingfootnote{${1:lábjegyzet-szöveg%text}}\"\n      }\n    },\n    {\n      \"name\": \"HuComma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hunnewlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hunumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hunumeral{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"huordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Huordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Huordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"magyarDumpHuMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnotable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeFootnotable{${1:környezet-név}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrk{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathBrkAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathBrkAll{${1:szimbólum}}\"\n      }\n    },\n    {\n      \"name\": \"MathReal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathReal{${1:képlet tizedestörtekkel%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ondatehungarian\"\n    },\n    {\n      \"name\": \"ontoday\"\n    },\n    {\n      \"name\": \"refstruc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstruc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstrucparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstrucparen{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SafeToday\"\n    },\n    {\n      \"name\": \"textqq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textqq{${1:szövegközti idézet%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/elteikthesis#c\": [\n      \"nohyp\",\n      \"parspace\",\n      \"noindent\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\footnotestyle\": [\n      \"reset=${1|none,section,chapter,page,page-resume,page-cont|}\",\n      \"resume\",\n      \"indent=${1|article-nosp,article-sp,hulist|}\",\n      \"ruler=${1|none,one-line,fourth,choose|}\",\n      \"marksize=max-normal\",\n      \"mark=${1|arabic,stars,stars-max|}\",\n      \"mpmark=${1|arabic,stars,stars-max|}\",\n      \"plain\",\n      \"huplain\",\n      \"starplain\",\n      \"editor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/elteikthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-emisa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"twoopt\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"doclicense\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"british\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUKenglish\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"UKenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasamerican\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"american\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasUSenglish\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"USenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"title[${2:short title%text}][${3:ToC title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}][${3:ToC subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"author[${2:short author}][${3:ToC author}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:letter of address}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"author*{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1 \\\\and word2 \\\\and ...%text}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgements{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authornote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:metatype}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"emisaabbrv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emisaabbrv{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"OMG\"\n    },\n    {\n      \"name\": \"BPM\"\n    },\n    {\n      \"name\": \"BPMN\"\n    },\n    {\n      \"name\": \"UML\"\n    },\n    {\n      \"name\": \"emisainitialism\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emisainitialism{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"accepted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"issue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"issue{${1:number}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"specialissuetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialissuetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CCBYNCSAFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CCBYNCSAThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"license\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"license{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"licence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"licence{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtPageDeadCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtPageDeadCenter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"abstractfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addtocentry[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentry{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"affiliationaddressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affiliationauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affiliationemailfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affiliationfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basecoverfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfpname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightholder{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"coverIII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverIII{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"coverII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverII{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"coverIVbgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverIV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverIV{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"coverIbgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverI{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"coveroff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coveron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverpage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"coverpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverpage[${2:pagenum}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"covertitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covervolumefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doitext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"editorialboardbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorialboardbody{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"editorialboardname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorialboardname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"editorialboxmaxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorialname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"footruleoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footrule{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gislogoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guidelinesbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guidelinesbody{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guidelinesname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guidelinesname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"headbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"headbox{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}{${8:arg8}}\"\n      }\n    },\n    {\n      \"name\": \"headfootruleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headmarkstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headmarkstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"headpageoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprintbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imprintbody{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"imprintname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imprintname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"issn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issn{${1:ISSN}}\"\n      }\n    },\n    {\n      \"name\": \"journalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markarticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markeditorial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markhead{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"outdoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputarticleappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagebg{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pagefootfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"picturepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"picturepage[${2:pagestyle}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"picturepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"picturepage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstretch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sigEMISAlogoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmobislogoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmobispage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmobispagefoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmobispagehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmobispagerule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigmobispagerule{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"specialissuetitleprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialissuetitleprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"subtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaddresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thearticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecovertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecovervolumeline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theevenheadpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theheadvolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoddheadpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagebackground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thispagebackground{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"thispagebackground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thispagebackground[${2:pagestyle}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"bibitemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibitemlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdateiso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateiso{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title elements}}\"\n      }\n    },\n    {\n      \"name\": \"sourcecode\"\n    },\n    {\n      \"name\": \"sourcecode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourcecode},\\\\begin{sourcecode*},\\\\begin{java},\\\\begin{java*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sourcecode*\"\n    },\n    {\n      \"name\": \"sourcecode*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourcecode},\\\\begin{sourcecode*},\\\\begin{java},\\\\begin{java*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"java\"\n    },\n    {\n      \"name\": \"java\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourcecode},\\\\begin{sourcecode*},\\\\begin{java},\\\\begin{java*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"java*\"\n    },\n    {\n      \"name\": \"java*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourcecode},\\\\begin{sourcecode*},\\\\begin{java},\\\\begin{java*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"articleappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articleappendix*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorialcontent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"editorial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"asparablank\"\n    },\n    {\n      \"name\": \"inparablank\"\n    },\n    {\n      \"name\": \"Theorem\"\n    },\n    {\n      \"name\": \"Theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma\"\n    },\n    {\n      \"name\": \"Lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition\"\n    },\n    {\n      \"name\": \"Proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary\"\n    },\n    {\n      \"name\": \"Corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\"\n    },\n    {\n      \"name\": \"Satz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"satz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"satz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Korollar\"\n    },\n    {\n      \"name\": \"Korollar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"korollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korollar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition\"\n    },\n    {\n      \"name\": \"Definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example\"\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\"\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beispiel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beispiel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Anmerkung\"\n    },\n    {\n      \"name\": \"Anmerkung\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"anmerkung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anmerkung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Bemerkung\"\n    },\n    {\n      \"name\": \"Bemerkung\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"bemerkung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bemerkung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Remark\"\n    },\n    {\n      \"name\": \"Remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proof\"\n    },\n    {\n      \"name\": \"Proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\"\n    },\n    {\n      \"name\": \"Beweis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beweis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Theorem*\"\n    },\n    {\n      \"name\": \"Theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorem*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma*\"\n    },\n    {\n      \"name\": \"Lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemma*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition*\"\n    },\n    {\n      \"name\": \"Proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proposition*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary*\"\n    },\n    {\n      \"name\": \"Corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollary*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz*\"\n    },\n    {\n      \"name\": \"Satz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"satz*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"satz*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Korollar*\"\n    },\n    {\n      \"name\": \"Korollar*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"korollar*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korollar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition*\"\n    },\n    {\n      \"name\": \"Definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definition*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example*\"\n    },\n    {\n      \"name\": \"Example*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel*\"\n    },\n    {\n      \"name\": \"Beispiel*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beispiel*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beispiel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Anmerkung*\"\n    },\n    {\n      \"name\": \"Anmerkung*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"anmerkung*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anmerkung*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Bemerkung*\"\n    },\n    {\n      \"name\": \"Bemerkung*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"bemerkung*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bemerkung*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Remark*\"\n    },\n    {\n      \"name\": \"Remark*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proof*\"\n    },\n    {\n      \"name\": \"Proof*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis*\"\n    },\n    {\n      \"name\": \"Beweis*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beweis*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beweis*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/emisa#c\": [\n      \"british\",\n      \"UKenglish\",\n      \"american\",\n      \"USenglish\",\n      \"draft\",\n      \"final\",\n      \"referee\",\n      \"noreferee\",\n      \"review\",\n      \"noreview\",\n      \"cleveref\",\n      \"nocleveref\",\n      \"cover\",\n      \"nocover\",\n      \"nomicrotype\"\n    ],\n    \"\\\\begin{sourcecode},\\\\begin{sourcecode*},\\\\begin{java},\\\\begin{java*}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/emisa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ert-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ert-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ert-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-europasscv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"showframe\",\n      \"if\": \"debug\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"convertstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convertstring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"difflength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecladdressee\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ecladdressee[${5:vspace%l}]{${1:name}}{${2:organization}}{${3:address}}{${4:city}}\"\n      }\n    },\n    {\n      \"name\": \"ecladdressee\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ecladdressee{${1:name}}{${2:organization}}{${3:address}}{${4:city}}\"\n      }\n    },\n    {\n      \"name\": \"eclcitydatesubject\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"eclcitydatesubject[${4:vspace%l}]{${1:city}}{${2:date}}{${3:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"eclcitydatesubject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eclcitydatesubject{${1:city}}{${2:date}}{${3:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"eclclosingsalutation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eclclosingsalutation[${2:vspace%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclclosingsalutation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eclclosingsalutation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclIconwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eclIconwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eclitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eclitem[${2:vspace%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eclitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclmaincontent\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"eclmaincontent[${4:vspace%l}]{${1:opening%text}}{${2:content%text}}{${3:closing%text}}\"\n      }\n    },\n    {\n      \"name\": \"eclmaincontent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eclmaincontent{${1:opening%text}}{${2:content%text}}{${3:closing%text}}\"\n      }\n    },\n    {\n      \"name\": \"eclopeningsalutation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eclopeningsalutation[${2:vspace%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclopeningsalutation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eclopeningsalutation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eclpersonalinfo\"\n    },\n    {\n      \"name\": \"eclpersonalinfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eclpersonalinfo[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"eclsignature\"\n    },\n    {\n      \"name\": \"eclsignature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eclsignature[${1:imagefile}]\"\n      }\n    },\n    {\n      \"name\": \"eclsignature\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"eclsignature[${1:imagefile}][${2:name}]\"\n      }\n    },\n    {\n      \"name\": \"ecvaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvaddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"ecvBasic\"\n    },\n    {\n      \"name\": \"ecvbigitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ecvbigitem[${3:vspace%l}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvbigitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvbigitem{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvblueitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ecvblueitem[${3:vspace%l}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvblueitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvblueitem{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvbluenormalstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvbluenormalstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvbluestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvbluestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvbullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvcoloredtitle\"\n    },\n    {\n      \"name\": \"ecvColSep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvColSep{${1:sep}}\"\n      }\n    },\n    {\n      \"name\": \"ecvcurrvitae\"\n    },\n    {\n      \"name\": \"ecvdateofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvdateofbirth{${1:date%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvdigitalcompetence\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ecvdigitalcompetence{${1:info-processing}}{${2:communication}}{${3:content-creation}}{${4:safety}}{${5:prob-solving}}\"\n      }\n    },\n    {\n      \"name\": \"ecvemail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvemail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvExtraRowHeight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvExtraRowHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfax{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfootername\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfootername{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvgender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvgender{${1:gender%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvgithubpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvgithubpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvgitlabpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvgitlabpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvgitpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvgitpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvhighlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvhighlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvhighlightcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvhighlightcell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvhomepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvhomepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvim{${1:service}}{${2:username}}\"\n      }\n    },\n    {\n      \"name\": \"ecvIndependent\"\n    },\n    {\n      \"name\": \"ecvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ecvitem[${3:vspace%l}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvitem{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlangrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlangrow[${8:vspace%l}]{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}{${7:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlangrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlangrow{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}{${7:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlanguage[${7:vspace%l}]{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlanguage{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguagecertificate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlanguagecertificate{${1:certificate%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguagefooter\"\n    },\n    {\n      \"name\": \"ecvlanguagefooter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvlanguagefooter[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguageheader\"\n    },\n    {\n      \"name\": \"ecvlanguageheader\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvlanguageheader[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"ecvlargenormalstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlargenormalstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLargenormalstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLargenormalstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlastlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlastlanguage[${7:vspace%l}]{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlastlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"ecvlastlanguage{${1:language}}{${2:listening}}{${3:reading}}{${4:speaking-interaction}}{${5:speaking-production}}{${6:writing}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLeftColumnWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLeftColumnWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlinkedinpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlinkedinpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLogoOffset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLogoOffset{${1:offset}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLogoWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLogoWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmobile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvmobile{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmothertongue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvmothertongue[${2:vspace%l}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmothertongue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvmothertongue{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ecvname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ecvnationality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvnationality{${1:nationality%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvNoHorRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvorcid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvorcid[${2:options%keyvals}]{${1:ORCID}}\",\n        \"keys\": [\n          \"\\\\ecvorcid\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ecvorcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvorcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpersonalinfo\"\n    },\n    {\n      \"name\": \"ecvpersonalinfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvpersonalinfo[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"ecvpicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvpicture[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\ecvpictureleft,\\\\ecvpictureright,\\\\ecvpicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ecvpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpictureleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvpictureleft[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\ecvpictureleft,\\\\ecvpictureright,\\\\ecvpicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ecvpictureleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpictureleft{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpictureright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvpictureright[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\ecvpictureleft,\\\\ecvpictureright,\\\\ecvpicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ecvpictureright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpictureright{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ecvProficient\"\n    },\n    {\n      \"name\": \"ecvRuleWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvRuleWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvsection[${2:vspace%l}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ecvsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ecvsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvsectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtelephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvtelephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtitle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ecvtitle[${3:vspace%l}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvtitle{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvTitleKern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvTitleKern{${1:kern}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtitlelevel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ecvtitlelevel[${4:vspace%l}]{${1:left%text}}{${2:right%text}}{${3:degree level}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtitlelevel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ecvtitlelevel{${1:left%text}}{${2:right%text}}{${3:degree level}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvtitlestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvupdatecurrentskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvupdatecurrentskip{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ecvWithHorRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvworkphone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvworkphone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"makesub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesub{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newecvitemize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newecvitemize{${1:envname}}{${2:orig envname}}\"\n      }\n    },\n    {\n      \"name\": \"processlinks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processlinks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"readwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectecvfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toemail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toemail{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tourl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tourl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"europasscv\"\n    },\n    {\n      \"name\": \"ecvitemize\"\n    },\n    {\n      \"name\": \"ecvenumerate\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/europasscv#c\": [\n      \"english\",\n      \"italian\",\n      \"spanish\",\n      \"french\",\n      \"danish\",\n      \"german\",\n      \"finnish\",\n      \"portuguese\",\n      \"swedish\",\n      \"norsk\",\n      \"dutch\",\n      \"catalan\",\n      \"polish\",\n      \"hungarian\",\n      \"estonian\",\n      \"icelandic\",\n      \"lithuanian\",\n      \"czech\",\n      \"slovak\",\n      \"latvian\",\n      \"slovenian\",\n      \"romanian\",\n      \"maltese\",\n      \"bulgarian\",\n      \"greek\",\n      \"galician\",\n      \"serbian\",\n      \"turkish\",\n      \"narrow\",\n      \"bigfont\",\n      \"black\",\n      \"nologo\",\n      \"notitle\",\n      \"nototpages\",\n      \"nodocument\",\n      \"debug\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\ecvorcid\": [\n      \"label\",\n      \"link\"\n    ],\n    \"\\\\ecvpictureleft,\\\\ecvpictureright,\\\\ecvpicture\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/europasscv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-europecv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"totpages\",\n      \"if\": \"totpages\"\n    },\n    {\n      \"name\": \"booktabs\",\n      \"if\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ecvdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ecvname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvname{${1:name,surname}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfootername\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfootername{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfirstname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfirstname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlastname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlastname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ecvaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvaddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"ecvaddress\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvaddress[${2:mobile}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"ecvaddress\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ecvaddress[${2:mobile}][${3:office}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"ecvfax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfax{${1:fax}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtelephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvtelephone{${1:tel}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtelephone\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvtelephone[${2:mobile}]{${1:tel}}\"\n      }\n    },\n    {\n      \"name\": \"ecvtelephone\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ecvtelephone[${2:mobile}][${3:office}]{${1:tel}}\"\n      }\n    },\n    {\n      \"name\": \"ecvemail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvemail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvprofessional\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvprofessional{${1:professional email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpec{${1:PEC}}\"\n      }\n    },\n    {\n      \"name\": \"ecvskype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvskype{${1:skype%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmatrixriot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvmatrixriot{${1:matrixriot%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvyoutube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvyoutube{${1:youtubeChannel%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ecvnationality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvnationality{${1:nationality}}\"\n      }\n    },\n    {\n      \"name\": \"ecvdateofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvdateofbirth{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ecvgender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvgender{${1:gender}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ecvbeforepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvbeforepicture{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvafterpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvafterpicture{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvspace{${1:space}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpersonalinfo\"\n    },\n    {\n      \"name\": \"ecvpersonalinfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvpersonalinfo[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"ecvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ecvitem{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ecvitem[${3:vspace%l}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmothertongue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvmothertongue{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ecvmothertongue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecvmothertongue[${2:vspace%l}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguageheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlanguageheader{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguagefooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvlanguagefooter{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguagefooter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvlanguagefooter[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ecvlanguage{${1:l1%text}}{${2:l2%text}}{${3:l3%text}}{${4:l4%text}}{${5:l5%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"ecvlanguage[${6:vspace%l}]{${1:l1%text}}{${2:l2%text}}{${3:l3%text}}{${4:l4%text}}{${5:l5%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlastlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ecvlastlanguage{${1:l1%text}}{${2:l2%text}}{${3:l3%text}}{${4:l4%text}}{${5:l5%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvlastlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"ecvlastlanguage[${6:vspace%l}]{${1:l1%text}}{${2:l2%text}}{${3:l3%text}}{${4:l4%text}}{${5:l5%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvCEF\"\n    },\n    {\n      \"name\": \"ecvAOne\"\n    },\n    {\n      \"name\": \"ecvATwo\"\n    },\n    {\n      \"name\": \"ecvBOne\"\n    },\n    {\n      \"name\": \"ecvBTwo\"\n    },\n    {\n      \"name\": \"ecvCOne\"\n    },\n    {\n      \"name\": \"ecvCTwo\"\n    },\n    {\n      \"name\": \"ecvdisplayFootNoteCounter\"\n    },\n    {\n      \"name\": \"ecvdisplayFootNoteCounter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayFootNoteCounter[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayConferencePublications\"\n    },\n    {\n      \"name\": \"ecvdisplayConferencePublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayConferencePublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayBookChapterPublications\"\n    },\n    {\n      \"name\": \"ecvdisplayBookChapterPublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayBookChapterPublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayReferredJournalsPublications\"\n    },\n    {\n      \"name\": \"ecvdisplayReferredJournalsPublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayReferredJournalsPublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayWorkshops\"\n    },\n    {\n      \"name\": \"ecvdisplayWorkshops\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayWorkshops[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayPosters\"\n    },\n    {\n      \"name\": \"ecvdisplayPosters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayPosters[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayResearchProjects\"\n    },\n    {\n      \"name\": \"ecvdisplayResearchProjects\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayResearchProjects[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvdisplayAwards\"\n    },\n    {\n      \"name\": \"ecvdisplayAwards\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvdisplayAwards[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefFootNoteCounter\"\n    },\n    {\n      \"name\": \"ecvrefFootNoteCounter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefFootNoteCounter[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefConferencePublications\"\n    },\n    {\n      \"name\": \"ecvrefConferencePublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefConferencePublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefBookChapterPublications\"\n    },\n    {\n      \"name\": \"ecvrefBookChapterPublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefBookChapterPublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefReferredJournalsPublications\"\n    },\n    {\n      \"name\": \"ecvrefReferredJournalsPublications\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefReferredJournalsPublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefWorkshops\"\n    },\n    {\n      \"name\": \"ecvrefWorkshops\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefWorkshops[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefPosters\"\n    },\n    {\n      \"name\": \"ecvrefPosters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefPosters[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefResearchProjects\"\n    },\n    {\n      \"name\": \"ecvrefResearchProjects\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefResearchProjects[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvrefAwards\"\n    },\n    {\n      \"name\": \"ecvrefAwards\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefAwards[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"ecvfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvfootnote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"ecvpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvpage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ecvWithHorRule\"\n    },\n    {\n      \"name\": \"ecvNoHorRule\"\n    },\n    {\n      \"name\": \"ecvRuleWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvRuleWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvExtraRowHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvExtraRowHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"ecvColSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvColSep{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvFlagWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvFlagWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLogoWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLogoWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLogoOffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLogoOffset{${1:offset%l}}\"\n      }\n    },\n    {\n      \"name\": \"ecvLeftColumnWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvLeftColumnWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ecvTitleKern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecvTitleKern{${1:kern%l}}\"\n      }\n    },\n    {\n      \"name\": \"draweuropasslogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draweuropeflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvbullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvdrawpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvrefWorkshopsPublications\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecvrefWorkshopsPublications\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ecvrefWorkshopsPublications[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"myhyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myhyperlink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"oldhypertarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAwards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBookChapterPublications\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theConferencePublications\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFootNoteCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thePosters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theReferredJournalsPublications\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theResearchProjects\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theWorkshops\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"europecv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/europecv#c\": [\n      \"utf8\",\n      \"ansinew\",\n      \"applemac\",\n      \"ascii\",\n      \"cp850\",\n      \"cp852\",\n      \"cp858\",\n      \"cp437\",\n      \"cp437de\",\n      \"cp865\",\n      \"cp866\",\n      \"cp1250\",\n      \"cp1251\",\n      \"cp1252\",\n      \"cp1257\",\n      \"decmulti\",\n      \"koi8-r\",\n      \"koi8-ru\",\n      \"koi8-u\",\n      \"latin1\",\n      \"latin2\",\n      \"latin3\",\n      \"latin4\",\n      \"latin5\",\n      \"latin9\",\n      \"latin10\",\n      \"maccyr\",\n      \"macukr\",\n      \"next\",\n      \"helvetica\",\n      \"arial\",\n      \"narrow\",\n      \"bulgarian\",\n      \"catalan\",\n      \"czech\",\n      \"danish\",\n      \"dutch\",\n      \"english\",\n      \"estonian\",\n      \"french\",\n      \"finnish\",\n      \"galician\",\n      \"german\",\n      \"greek\",\n      \"hungarian\",\n      \"icelandic\",\n      \"italian\",\n      \"latvian\",\n      \"lithuanian\",\n      \"maltese\",\n      \"norwegian\",\n      \"polish\",\n      \"portuguese\",\n      \"romanian\",\n      \"serbian\",\n      \"slovak\",\n      \"slovenian\",\n      \"spanish\",\n      \"swedish\",\n      \"noflag\",\n      \"flagWB\",\n      \"flagBW\",\n      \"flagCMYK\",\n      \"flagBlueCMYK\",\n      \"logo\",\n      \"nologo\",\n      \"notitle\",\n      \"nobranding\",\n      \"totpages\",\n      \"booktabs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/europecv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-exam-n.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"mathptm\",\n      \"if\": \"mathptm\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"mathptm\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"mathtime\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"fontenc\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"stix2\",\n      \"if\": \"stix2\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"sansserif\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"mathtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textdivide\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textlogicalnot\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textmultiply\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textplusminus\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textquotedblbase\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textquotesinglbase\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"textspace\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"mathtime\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"mtpro2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"mtpro2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"mtpro2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"mtpro2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"mtpro2\"\n    },\n    {\n      \"name\": \"italicpi\",\n      \"if\": \"uprightpi\"\n    },\n    {\n      \"name\": \"ifbigfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionNumberChecksOff\"\n    },\n    {\n      \"name\": \"answer\"\n    },\n    {\n      \"name\": \"multiplechoiceanswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multiplechoiceanswers{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"includequestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includequestion{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includequestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includequestion[${2:question number}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"partmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmarks{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"partmarks*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmarks*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftnudge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftnudge{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"questionpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionpreamble{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"exambanner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exambanner{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"universitycoursecode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universitycoursecode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"schoolcoursecode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schoolcoursecode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"degreedescriptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreedescriptions{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coursetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coursetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"paperident\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paperident{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"examdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"examtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examtime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"rubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubric{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"norubric\"\n    },\n    {\n      \"name\": \"baserubric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numquestions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numquestions{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BSc\"\n    },\n    {\n      \"name\": \"MSci\"\n    },\n    {\n      \"name\": \"MSc\"\n    },\n    {\n      \"name\": \"MA\"\n    },\n    {\n      \"name\": \"MEng\"\n    },\n    {\n      \"name\": \"BEng\"\n    },\n    {\n      \"name\": \"dd\"\n    },\n    {\n      \"name\": \"ddd\"\n    },\n    {\n      \"name\": \"Diffl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Diffl{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Diffl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Diffl[${3:ord}]{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Diffl*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Diffl*{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Diffl*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Diffl*[${3:ord}]{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Partial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Partial{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Partial\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Partial[${3:ord}]{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Partial*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Partial*{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Partial*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Partial*[${3:ord}]{${1:arg}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"Partial\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"units\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"units{${1:units%formula}}\"\n      }\n    },\n    {\n      \"name\": \"constantssheet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constantssheet{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"OverrideFormatting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OverrideFormatting{${1:formatting commands}}\"\n      }\n    },\n    {\n      \"name\": \"FormatPartMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatPartNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StylePartNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatQuestionNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffussydescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultpartmarkscategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultpartmarkscategory{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"RequiredMetadata\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RequiredMetadata{${1:field}}{${2:description}}{${3:help-text}}\"\n      }\n    },\n    {\n      \"name\": \"CheckExamMetadata\"\n    },\n    {\n      \"name\": \"CheckTotalQuestions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClosingText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatcontinuations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatcontinuations{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"highlighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlighted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markgoal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marktotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theanswerpartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequestionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UniLogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UniLogo{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WriteLastPageLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\",\n      \"if\": \"noperquestionmarks\"\n    },\n    {\n      \"name\": \"question\",\n      \"if\": \"noperquestionmarks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:question number}]\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:marks}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:question number}]{${1:marks}}\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"questiondata\"\n    },\n    {\n      \"name\": \"mcq\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/exam-n#c\": [\n      \"compose\",\n      \"draft\",\n      \"final\",\n      \"psfonts\",\n      \"cmfonts\",\n      \"mathptm\",\n      \"mathtime\",\n      \"mtpro2\",\n      \"stix2\",\n      \"uprightpi\",\n      \"siunitx\",\n      \"nosiunitx\",\n      \"serif\",\n      \"sansserif\",\n      \"showsolutions\",\n      \"noshowsolutions\",\n      \"pageperquestion\",\n      \"nopageperquestion\",\n      \"perquestionmarks\",\n      \"noperquestionmarks\",\n      \"showmarktotals\",\n      \"noshowmarktotals\",\n      \"twoside\",\n      \"oneside\",\n      \"fleqn\",\n      \"sloppydescription\",\n      \"mono\",\n      \"colour\",\n      \"largefont\",\n      \"hugefont\",\n      \"A1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/exam-n#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-exam-zh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"exam-zh-question\"\n    },\n    {\n      \"name\": \"exam-zh-font\"\n    },\n    {\n      \"name\": \"exam-zh-choices\"\n    },\n    {\n      \"name\": \"exam-zh-symbols\"\n    },\n    {\n      \"name\": \"exam-zh-chinese-english\"\n    },\n    {\n      \"name\": \"exam-zh-textfigure\"\n    },\n    {\n      \"name\": \"exam-zh-math\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ExamPrintAnswerSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExamPrintAnswerSet{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ExamPrintAnswerSet,\\\\examsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExamPrintAnswerSet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExamPrintAnswerSet[${2:cmd list}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ExamPrintAnswerSet,\\\\examsetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ExamPrintAnswer\"\n    },\n    {\n      \"name\": \"examsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examsetup{${1:键值列表%keyvals}}\",\n        \"keys\": [\n          \"\\\\ExamPrintAnswerSet,\\\\examsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"information\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"information{${1:信息内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"information\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"information[${2:分隔符}]{${1:信息内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warning{${1:警告%text}}\"\n      }\n    },\n    {\n      \"name\": \"secret\"\n    },\n    {\n      \"name\": \"secret\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"secret[${1:格式命令}]\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:科目%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subject[${2:宽度}]{${1:科目%text}}\"\n      }\n    },\n    {\n      \"name\": \"draftpaper\"\n    },\n    {\n      \"name\": \"draftpaper\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"draftpaper[${1:参数列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\draftpaper\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examsquare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examsquare{${1:方格个数}}\"\n      }\n    },\n    {\n      \"name\": \"examsquare\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"examsquare[${2:参数列表%keyvals}]{${1:方格个数}}\",\n        \"keys\": [\n          \"\\\\examsquare\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scoringbox\"\n    },\n    {\n      \"name\": \"scoringbox*\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"notice\"\n    },\n    {\n      \"name\": \"notice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表 1%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{notice}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notice\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:键值列表 1%keyvals}][${2:键值列表 2}]\",\n        \"keys\": [\n          \"\\\\begin{notice}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"step\"\n    },\n    {\n      \"name\": \"method\"\n    },\n    {\n      \"name\": \"case\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/exam-zh#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\ExamPrintAnswerSet,\\\\examsetup\": [\n      \"notice={${1:键值列表}}\",\n      \"notice/label=${1:label}\",\n      \"notice/label-format=${1:format}\",\n      \"notice/top-sep=\",\n      \"notice/bottom-sep=\",\n      \"style={${1:键值列表}}\",\n      \"style/fullwidth-stop=${1|catcode,false|}\",\n      \"style/footnote-style=${1|plain,libertinus,libertinus*,libertinus-sans,pifont,pifont*,pifont-sans,pifont-sans*,xits,xits-sans,xits-sans*|}\",\n      \"style/student-version-suffix=${1:suffix}\",\n      \"style/student-version-cleanaux\",\n      \"page={${1:键值列表}}\",\n      \"page/size=${1:a3paper|a4paper}\",\n      \"page/show-head\",\n      \"page/head-content=${1:页眉格式}\",\n      \"page/show-foot\",\n      \"page/foot-type=${1|common,separate|}\",\n      \"page/foot-content=${1:页脚格式}\",\n      \"page/show-columnline\",\n      \"page/columnline-width=\",\n      \"page/show-chapter\",\n      \"sealline={${1:键值列表}}\",\n      \"sealline/show\",\n      \"sealline/scope=${1|firstpage,oddpage,everypage,first-and-last,mod-2,mod-3,mod-4,mod-6|}\",\n      \"sealline/type=${1|firstpage,oddpage,everypage,first-and-last,mod-2,mod-3,mod-4,mod-6|}\",\n      \"sealline/line-thickness=\",\n      \"sealline/odd-line-thickness=\",\n      \"sealline/even-line-thickness=\",\n      \"sealline/line-xshift=\",\n      \"sealline/odd-line-xshift=\",\n      \"sealline/even-line-xshift=\",\n      \"sealline/line-yshift=\",\n      \"sealline/odd-line-yshift=\",\n      \"sealline/even-line-yshift=\",\n      \"sealline/line-type=${1|solid,dotted,densely-dotted,loosely-dotted,dashed,densely-dashed,loosely-dashed,dash-dot,densely-dash-dot,loosely-dash-dot,dash-dot-dot,densely-dash-dot-dot,loosely-dash-dot-dot|}\",\n      \"sealline/odd-line-type=${1|solid,dotted,densely-dotted,loosely-dotted,dashed,densely-dashed,loosely-dashed,dash-dot,densely-dash-dot,loosely-dash-dot,dash-dot-dot,densely-dash-dot-dot,loosely-dash-dot-dot|}\",\n      \"sealline/even-line-type=${1|solid,dotted,densely-dotted,loosely-dotted,dashed,densely-dashed,loosely-dashed,dash-dot,densely-dash-dot,loosely-dash-dot,dash-dot-dot,densely-dash-dot-dot,loosely-dash-dot-dot|}\",\n      \"sealline/text=${1:content}\",\n      \"sealline/odd-text=${1:content}\",\n      \"sealline/even-text=${1:content}\",\n      \"sealline/text-width=\",\n      \"sealline/odd-text-width=\",\n      \"sealline/even-text-width=\",\n      \"sealline/text-format=${1:font commands}\",\n      \"sealline/odd-text-format=${1:font commands}\",\n      \"sealline/even-text-format=${1:font commands}\",\n      \"sealline/text-xshift=\",\n      \"sealline/odd-text-xshift=\",\n      \"sealline/even-text-xshift=\",\n      \"sealline/text-yshift=\",\n      \"sealline/odd-text-yshift=\",\n      \"sealline/even-text-yshift=\",\n      \"sealline/text-xscale=${1:float point}\",\n      \"sealline/odd-text-xscale=${1:float point}\",\n      \"sealline/even-text-xscale=${1:float point}\",\n      \"sealline/text-yscale=${1:float point}\",\n      \"sealline/odd-text-yscale=${1:float point}\",\n      \"sealline/even-text-yscale=${1:float point}\",\n      \"sealline/text-direction-vertical\",\n      \"sealline/odd-text-direction-vertical\",\n      \"sealline/even-text-direction-vertical\",\n      \"sealline/circle-show\",\n      \"sealline/odd-circle-show\",\n      \"sealline/even-circle-show\",\n      \"sealline/circle-start=${1:float point}\",\n      \"sealline/odd-circle-start=${1:float point}\",\n      \"sealline/even-circle-start=${1:float point}\",\n      \"sealline/circle-end=${1:float point}\",\n      \"sealline/odd-circle-end=${1:float point}\",\n      \"sealline/even-circle-end=${1:float point}\",\n      \"sealline/circle-step=\",\n      \"sealline/odd-circle-step=\",\n      \"sealline/even-circle-step=\",\n      \"sealline/circle-diameter=\",\n      \"sealline/odd-circle-diameter=\",\n      \"sealline/even-circle-diameter=\",\n      \"sealline/circle-xshift=\",\n      \"sealline/odd-circle-xshift=\",\n      \"sealline/even-circle-xshift=\",\n      \"sealline/odd-info-content={${1:comma list}}\",\n      \"sealline/odd-info-separator=${1:separator}\",\n      \"sealline/odd-info-align=${1|left,center,right|}\",\n      \"sealline/odd-info-xshift=\",\n      \"sealline/odd-info-yshift=\",\n      \"square={${1:键值列表}}\",\n      \"square/x-length=\",\n      \"square/y-length=\",\n      \"square/baseline=\",\n      \"square/linewidth=\",\n      \"square/xshift=\",\n      \"title={${1:键值列表}}\",\n      \"title/title-format=${1:格式命令}\",\n      \"title/subject-format=${1:格式命令}\",\n      \"title/top-sep=\",\n      \"title/bottom-sep=\",\n      \"list={${1:键值列表}}\",\n      \"list/step-name=${1:step 环境 label 名}\",\n      \"list/method-name=${1:method 环境 label 名}\",\n      \"list/case-name=${1:case 环境 label 名}\",\n      \"list/step-punct=${1:step 环境 label 后的标点}\",\n      \"list/method-punct=${1:method 环境 label 后的标点}\",\n      \"list/case-punct=${1:case 环境 label 后的标点}\",\n      \"draft={${1:键值列表}}\",\n      \"draft/watermark-size=\",\n      \"draft/show-watermark\",\n      \"draft/show-draft=${1|auto,manual|}\",\n      \"scoringbox={${1:键值列表}}\",\n      \"scoringbox/type=${1|onecolumn,twocolumn,none|}\",\n      \"scoringbox/position=${1|left,right|}\"\n    ],\n    \"\\\\begin{notice}\": [\n      \"label=${1:label}\",\n      \"label-format=${1:format}\",\n      \"top-sep=\",\n      \"bottom-sep=\"\n    ],\n    \"\\\\draftpaper\": [\n      \"watermark-size=\",\n      \"show-watermark\",\n      \"show-draft=${1|auto,manual|}\"\n    ],\n    \"\\\\examsquare\": [\n      \"x-length=\",\n      \"y-length=\",\n      \"baseline=\",\n      \"linewidth=\",\n      \"xshift=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/exam-zh#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-exam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addpoints\"\n    },\n    {\n      \"name\": \"addquestionobject\"\n    },\n    {\n      \"name\": \"answerclearance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerline\"\n    },\n    {\n      \"name\": \"answerline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"answerline[${1:answer%text}]\"\n      }\n    },\n    {\n      \"name\": \"answerlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begingradingrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"begingradingrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"bhpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bhtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bonusgradetable\"\n    },\n    {\n      \"name\": \"bonusgradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonusgradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"bonusgradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bonusgradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bonuspart\"\n    },\n    {\n      \"name\": \"bonuspart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonuspart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonuspointformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointpoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bonuspointpoints{${1:singular text%text}}{${2:plural text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bonuspointsinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointsofquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsofquestion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointsonpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspointsonpage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspointtable\"\n    },\n    {\n      \"name\": \"bonuspointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonuspointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"bonuspointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bonuspointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bonusqformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonusqformat{${1:format spec}}\"\n      }\n    },\n    {\n      \"name\": \"bonusquestion\"\n    },\n    {\n      \"name\": \"bonusquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonusquestion[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonussubpart\"\n    },\n    {\n      \"name\": \"bonussubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonussubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonussubsubpart\"\n    },\n    {\n      \"name\": \"bonussubsubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bonussubsubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonustitledquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonustitledquestion{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonustitledquestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bonustitledquestion{${1:title%text}}[${2:points}]\"\n      }\n    },\n    {\n      \"name\": \"bonustotalformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonustotalformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"boxedpoints\"\n    },\n    {\n      \"name\": \"bracketedpoints\"\n    },\n    {\n      \"name\": \"bvpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cancelspace\"\n    },\n    {\n      \"name\": \"cancelspacefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cancelspacetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chbpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chbpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"checkboxchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkboxchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"checkboxeshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkedchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkedchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"choicelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choiceshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorfbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorfbox{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorfillwithdottedlines\"\n    },\n    {\n      \"name\": \"colorfillwithlines\"\n    },\n    {\n      \"name\": \"colorgrids\"\n    },\n    {\n      \"name\": \"colorsolutionboxes\"\n    },\n    {\n      \"name\": \"combinedgradetable\"\n    },\n    {\n      \"name\": \"combinedgradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"combinedgradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"combinedgradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"combinedgradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"combinedpointtable\"\n    },\n    {\n      \"name\": \"combinedpointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"combinedpointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"combinedpointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"combinedpointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ContinuedQuestion\"\n    },\n    {\n      \"name\": \"CorrectChoice\"\n    },\n    {\n      \"name\": \"correctchoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CorrectChoiceEmphasis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrectChoiceEmphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"correctchoiceemphasis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctchoiceemphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"covercfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"covercfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"covercfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covercfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverchead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverchead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverchead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverchead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverextrafootheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverextrafootheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextrafootheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverextrafootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextraheadheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverextraheadheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverextraheadheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverextraheadheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpagefooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfirstpagefooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverfirstpageheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfirstpageheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverlfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverlfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverlfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverlhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverlhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverlhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverrfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverrfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverrhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverrhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverrunningfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverrunningheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"coverrunningheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"coverrunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvbpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvbpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvtword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dottedlinefillheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"droppoints\"\n    },\n    {\n      \"name\": \"droptotalbonuspoints\"\n    },\n    {\n      \"name\": \"droptotalpoints\"\n    },\n    {\n      \"name\": \"endgradingrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endgradingrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"extrafootheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extrafootheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extrafootheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrafootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadheight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extraheadheight[${2:first page height%l}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"extrawidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrawidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fillin\"\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillin[${1:answer%text}]\"\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fillin[${1:answer%text}][${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"fillinlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillwithdottedlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithdottedlines{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fillwithgrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithgrid{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fillwithlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithlines{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"firstpagefooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstpagefooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstpagefootrule\"\n    },\n    {\n      \"name\": \"firstpageheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstpageheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstpageheadrule\"\n    },\n    {\n      \"name\": \"firstqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"footer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"footer{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"footrule\"\n    },\n    {\n      \"name\": \"framedsolutions\"\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullwidth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gradetable\"\n    },\n    {\n      \"name\": \"gradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gradetable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"gradetable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gradetable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gradetablestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradetablestretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"greeknum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"gridlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"half\"\n    },\n    {\n      \"name\": \"header\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"header{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"headrule\"\n    },\n    {\n      \"name\": \"hpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"htword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifcontinuation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcontinuation{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifincomplete\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifincomplete{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"iflastpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iflastpage{${1:true text%text}}{${2:false text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifprintanswers\"\n    },\n    {\n      \"name\": \"IncompleteQuestion\"\n    },\n    {\n      \"name\": \"lastqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"linefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linefillheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linefillthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeemptybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeemptybox{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"marginbonuspointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginbonuspointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginpointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginpointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginpointssep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marksnotpoints\"\n    },\n    {\n      \"name\": \"multicolumnbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnbonusgradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnbonusgradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumnbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnbonuspointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnbonuspointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumncombinedgradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumncombinedgradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumncombinedpointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumncombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumncombinedpointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumngradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumngradetable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumngradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumngradetable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialbonusgradetable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialbonusgradetable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialbonuspointtable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialbonuspointtable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialcombinedgradetable{${1:numcols}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialcombinedgradetable{${1:numcols}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialcombinedpointtable{${1:numcols}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialcombinedpointtable{${1:numcols}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialgradetable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialgradetable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicolumnpartialpointtable{${1:numcols}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multicolumnpartialpointtable{${1:numcols}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multicolumnpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multicolumnpointtable{${1:numcols}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multicolumnpointtable{${1:numcols}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowbonusgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowbonusgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowbonuspointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowbonuspointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowcombinedgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowcombinedgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowcombinedpointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowcombinedpointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowgradetable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowgradetable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialbonusgradetable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialbonusgradetable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialbonuspointtable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialbonuspointtable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialcombinedgradetable{${1:numrows}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialcombinedgradetable{${1:numrows}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialcombinedpointtable{${1:numrows}}{${2:rangename}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialcombinedpointtable{${1:numrows}}{${2:rangename}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialgradetable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialgradetable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialgradetable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowpartialpointtable{${1:numrows}}{${2:range name}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpartialpointtable\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"multirowpartialpointtable{${1:numrows}}{${2:range name}}[${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"multirowpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multirowpointtable{${1:numrows}}\"\n      }\n    },\n    {\n      \"name\": \"multirowpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"multirowpointtable{${1:numrows}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"noaddpoints\"\n    },\n    {\n      \"name\": \"nobonusqformat\"\n    },\n    {\n      \"name\": \"noboxedpoints\"\n    },\n    {\n      \"name\": \"nobracketedpoints\"\n    },\n    {\n      \"name\": \"nocancelspace\"\n    },\n    {\n      \"name\": \"nocolorfillwithdottedlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorfillwithlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorgrids\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocolorsolutionboxes\"\n    },\n    {\n      \"name\": \"nocoverfirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverfirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverrunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocoverrunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofirstpagefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofirstpageheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomorequestions\"\n    },\n    {\n      \"name\": \"nopointsinleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopointsinmargin\"\n    },\n    {\n      \"name\": \"nopointsinrightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noprintanswers\"\n    },\n    {\n      \"name\": \"noqformat\"\n    },\n    {\n      \"name\": \"noquestionsonthispage\"\n    },\n    {\n      \"name\": \"norunningfootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norunningheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosolutionsreseteqcounter\"\n    },\n    {\n      \"name\": \"nounstarredvspace\"\n    },\n    {\n      \"name\": \"numbonuspoints\"\n    },\n    {\n      \"name\": \"numcoverpages\"\n    },\n    {\n      \"name\": \"numpages\"\n    },\n    {\n      \"name\": \"numparts\"\n    },\n    {\n      \"name\": \"numpoints\"\n    },\n    {\n      \"name\": \"numqinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numqinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"numquestions\"\n    },\n    {\n      \"name\": \"numsubparts\"\n    },\n    {\n      \"name\": \"numsubsubparts\"\n    },\n    {\n      \"name\": \"oddeven\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oddeven{${1:odd text%text}}{${2:even text%text}}\"\n      }\n    },\n    {\n      \"name\": \"part\"\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"part[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonusgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialbonusgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialbonuspointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialbonuspointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialcombinedgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialcombinedpointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialcombinedpointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialgradetable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialgradetable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialgradetable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialgradetable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialpointtable{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"partialpointtable{${1:range name}}[${2:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"partialpointtable\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"partialpointtable{${1:range name}}[${2:h or v}][${3:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"partlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PgInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PgInfo{${1:question label}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"pointformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"pointname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pointpoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pointpoints{${1:singular text%text}}{${2:plural text%text}}\"\n      }\n    },\n    {\n      \"name\": \"points\"\n    },\n    {\n      \"name\": \"pointsdroppedatright\"\n    },\n    {\n      \"name\": \"pointsinleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointsinmargin\"\n    },\n    {\n      \"name\": \"pointsinrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsinrange{${1:range name}}\"\n      }\n    },\n    {\n      \"name\": \"pointsinrightmargin\"\n    },\n    {\n      \"name\": \"pointsofquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsofquestion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pointsonpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsonpage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pointstwosided\"\n    },\n    {\n      \"name\": \"pointstwosidedreversed\"\n    },\n    {\n      \"name\": \"pointtable\"\n    },\n    {\n      \"name\": \"pointtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pointtable[${1:h or v}]\"\n      }\n    },\n    {\n      \"name\": \"pointtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pointtable[${1:h or v}][${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"printanswers\"\n    },\n    {\n      \"name\": \"printanswersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printanswerstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qformat{${1:format spec}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"question[${1:points}]\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"questionlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rfoot[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rhead[${2:first page text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightpointsmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runningfooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"runningfooter{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"runningfootrule\"\n    },\n    {\n      \"name\": \"runningheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"runningheader{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"runningheadrule\"\n    },\n    {\n      \"name\": \"settabletotalbonuspoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabletotalbonuspoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"settabletotalpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabletotalpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"shadedsolutions\"\n    },\n    {\n      \"name\": \"SolutionEmphasis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SolutionEmphasis{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"solutionsreseteqcounter\"\n    },\n    {\n      \"name\": \"solutiontitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpart\"\n    },\n    {\n      \"name\": \"subpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"subpartlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpartshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubpart\"\n    },\n    {\n      \"name\": \"subsubpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subsubpart[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"subsubpartlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubpartshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechoice\"\n    },\n    {\n      \"name\": \"themarginpoints\"\n    },\n    {\n      \"name\": \"thenumparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumquestions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumsubparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumsubsubparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartno\"\n    },\n    {\n      \"name\": \"thepoints\"\n    },\n    {\n      \"name\": \"thequestion\"\n    },\n    {\n      \"name\": \"thequestiontitle\"\n    },\n    {\n      \"name\": \"thesubpart\"\n    },\n    {\n      \"name\": \"thesubsubpart\"\n    },\n    {\n      \"name\": \"titledquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titledquestion{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titledquestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"titledquestion{${1:title%text}}[${2:points}]\"\n      }\n    },\n    {\n      \"name\": \"totalbonuspoints\"\n    },\n    {\n      \"name\": \"totalformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalformat{${1:format commands}}\"\n      }\n    },\n    {\n      \"name\": \"totalnumpages\"\n    },\n    {\n      \"name\": \"totalpoints\"\n    },\n    {\n      \"name\": \"unframedsolutions\"\n    },\n    {\n      \"name\": \"unstarredvspace\"\n    },\n    {\n      \"name\": \"uplevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uplevel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usehorizontalhalf\"\n    },\n    {\n      \"name\": \"useslantedhalf\"\n    },\n    {\n      \"name\": \"vpgword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpgword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vpword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vqword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vqword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vsword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vsword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vtword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtword{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"checkboxes\"\n    },\n    {\n      \"name\": \"choices\"\n    },\n    {\n      \"name\": \"coverpages\"\n    },\n    {\n      \"name\": \"EnvFullwidth\"\n    },\n    {\n      \"name\": \"EnvUplevel\"\n    },\n    {\n      \"name\": \"examframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examleftbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneparcheckboxes\"\n    },\n    {\n      \"name\": \"oneparchoices\"\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"solutionorbox\"\n    },\n    {\n      \"name\": \"solutionorbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionordottedlines\"\n    },\n    {\n      \"name\": \"solutionordottedlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionorgrid\"\n    },\n    {\n      \"name\": \"solutionorgrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"solutionorlines\"\n    },\n    {\n      \"name\": \"solutionorlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"subparts\"\n    },\n    {\n      \"name\": \"subsubparts\"\n    },\n    {\n      \"name\": \"TheSolution\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/exam#c\": [\n      \"answers\",\n      \"cancelspace\",\n      \"addpoints\",\n      \"solutionsreseteqcounter\"\n    ],\n    \"\\\\gradetable,\\\\multirowgradetable,\\\\multicolumngradetable,\\\\pointtable,\\\\multirowpointtable,\\\\multicolumnpointtable,\\\\partialgradetable,\\\\partialpointtable,\\\\multirowpartialgradetable,\\\\multirowpartialpointtable,\\\\multicolumnpartialgradetable,\\\\multicolumnpartialpointtable,\\\\bonusgradetable,\\\\bonuspointtable,\\\\combinedgradetable,\\\\combinedpointtable,\\\\multicolumnbonusgradetable,\\\\multicolumnbonuspointtable,\\\\multicolumncombinedgradetable,\\\\multicolumncombinedpointtable,\\\\multicolumnpartialbonusgradetable,\\\\multicolumnpartialbonuspointtable,\\\\multicolumnpartialcombinedgradetable,\\\\multicolumnpartialcombinedpointtable,\\\\multirowbonusgradetable,\\\\multirowbonuspointtable,\\\\multirowcombinedgradetable,\\\\multirowcombinedpointtable,\\\\multirowpartialbonusgradetable,\\\\multirowpartialbonuspointtable,\\\\multirowpartialcombinedgradetable,\\\\multirowpartialcombinedpointtable,\\\\partialbonusgradetable,\\\\partialbonuspointtable,\\\\partialcombinedgradetable,\\\\partialcombinedpointtable\": [\n      \"questions\",\n      \"pages\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/exam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-examz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"counterz\"\n    },\n    {\n      \"name\": \"class-exam\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coveranswers\"\n    },\n    {\n      \"name\": \"covernoanswers\"\n    },\n    {\n      \"name\": \"examname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instructions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instructorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcover\"\n    },\n    {\n      \"name\": \"printworkspace\"\n    },\n    {\n      \"name\": \"promptrandomexam\"\n    },\n    {\n      \"name\": \"promptversions\"\n    },\n    {\n      \"name\": \"questionfrombank\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"questionfrombank[${2:points}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"questionfrombank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionfrombank{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"setcoursename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcoursename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcoveranswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcoveranswers{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"setcovernoanswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcovernoanswers{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"setexamname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setexamname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setinstructions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinstructions{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setinstructorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinstructorname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setnamespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnamespace{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"setnumberofquestions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnumberofquestions{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setquestionpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setquestionpath{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setsolutionspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsolutionspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"settermname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settermname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setworkspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setworkspace{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"termname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"workspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"qbitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:item number}}\"\n      }\n    },\n    {\n      \"name\": \"qbsolution\"\n    },\n    {\n      \"name\": \"qbsolutionbox\"\n    },\n    {\n      \"name\": \"qbsolutionorbox\"\n    },\n    {\n      \"name\": \"qbsolutionordottedlines\"\n    },\n    {\n      \"name\": \"qbsolutionorgrid\"\n    },\n    {\n      \"name\": \"qbsolutionorlines\"\n    },\n    {\n      \"name\": \"questionbank\"\n    },\n    {\n      \"name\": \"versions\"\n    },\n    {\n      \"name\": \"versions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/examz#c\": [\n      \"complete\",\n      \"randomize\",\n      \"norandomize\",\n      \"prompt\",\n      \"answers\",\n      \"cancelspace\",\n      \"addpoints\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/examz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-exesheet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"exesheet\"\n    },\n    {\n      \"name\": \"schooldocs\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/exesheet#c\": [\n      \"exetoc\",\n      \"setlist\",\n      \"output=${1|questions,answers,both|}\",\n      \"display=${1|none,pts,notes|}\",\n      \"answerspace\",\n      \"marginpos=${1|left,right,inner,outer|}\",\n      \"marginwidth=${1|standard,expand,unset|}\",\n      \"noteragged=${1|left,right,center,justify,twoside|}\",\n      \"checkpts\",\n      \"correct=${1|true,false,conditional|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/exesheet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-extarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exscale\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/extarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/extarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-extbook.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/extbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/extbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-extletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exscale\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:returnaddress}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:yourname}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:return address}}{${2:to address}}\"\n      }\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/extletter#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/extletter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-extproc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"copyrightspace\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/extproc#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/extproc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-extreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exscale\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/extreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/extreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-factura.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp-upn\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"datetime2-calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GeometriaFactura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GeometriaFactura{${1:geometría%keyvals}}\",\n        \"keys\": [\n          \"\\\\GeometriaFactura,\\\\GeometriaReverso,\\\\GeometriaReporte\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GeometriaReverso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GeometriaReverso{${1:geometría%keyvals}}\",\n        \"keys\": [\n          \"\\\\GeometriaFactura,\\\\GeometriaReverso,\\\\GeometriaReporte\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GeometriaReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GeometriaReporte{${1:geometría%keyvals}}\",\n        \"keys\": [\n          \"\\\\GeometriaFactura,\\\\GeometriaReverso,\\\\GeometriaReporte\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FondoFactura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FondoFactura{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"PosFecha\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosFecha{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosFecha*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosFecha*{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosFormalibre\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosFormalibre{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosFormalibre*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosFormalibre*{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosDenominacion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosDenominacion{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosDenominacion*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosDenominacion*{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosControl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosControl{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosControl*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PosControl*{${1:pos. x}}{${2:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosNotaFinal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PosNotaFinal{${1:pos. x-inicial}}{${2:pos. x-final}}{${3:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosNotaFinal*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PosNotaFinal*{${1:pos. x-inicial}}{${2:pos. x-final}}{${3:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"PosFirmas\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PosFirmas{${1:pos. x-inicial}}{${2:pos. x-final}}{${3:pos. y}}\"\n      }\n    },\n    {\n      \"name\": \"SepVertical\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepVertical{${1:sep. vertical entre elementos}}\"\n      }\n    },\n    {\n      \"name\": \"SepDatosResumen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepDatosResumen{${1:sep. horizontal}}\"\n      }\n    },\n    {\n      \"name\": \"SepEncabezado\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepEncabezado{${1:sep. interna texto}}\"\n      }\n    },\n    {\n      \"name\": \"SepNotaPrevia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepNotaPrevia{${1:sep. interna texto}}\"\n      }\n    },\n    {\n      \"name\": \"SepDescripcion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepDescripcion{${1:sep. interna texto}}\"\n      }\n    },\n    {\n      \"name\": \"SepNotaFinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepNotaFinal{${1:sep. interna texto}}\"\n      }\n    },\n    {\n      \"name\": \"SepItemsExtra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SepItemsExtra{${1:sep. extra entre items}}\"\n      }\n    },\n    {\n      \"name\": \"SepFilas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SepFilas{${1:sep. en x}}{${2:sep. en y}}\"\n      }\n    },\n    {\n      \"name\": \"LineaEncabezado\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LineaEncabezado{${1:grosor}}{${2:curvatura esquinas}}{${3:tamaño sombra}}\"\n      }\n    },\n    {\n      \"name\": \"LineaNotaPrevia\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LineaNotaPrevia{${1:grosor}}{${2:curvatura esquinas}}{${3:tamaño sombra}}\"\n      }\n    },\n    {\n      \"name\": \"LineaDescripcion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LineaDescripcion{${1:grosor}}{${2:curvatura esquinas}}{${3:tamaño sombra}}\"\n      }\n    },\n    {\n      \"name\": \"LineaNotaFinal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LineaNotaFinal{${1:grosor}}{${2:curvatura esquinas}}{${3:tamaño sombra}}\"\n      }\n    },\n    {\n      \"name\": \"LineaFirmas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LineaFirmas{${1:long. línea}}{${2:grosor}}\"\n      }\n    },\n    {\n      \"name\": \"RazonSocial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RazonSocial{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Nombre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nombre{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"RIF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RIF{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"CI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CI{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Contacto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Contacto{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Direccion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Direccion{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Telefono\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telefono{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Email{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Conforme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Conforme{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Emisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Emisor{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Proveedor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Proveedor{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"FirmaFactura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirmaFactura{${1:inclusión de la imagen}}\"\n      }\n    },\n    {\n      \"name\": \"FirmaFactura\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FirmaFactura{${1:inclusión de la imagen}}[${2:corrimiento en x}]\"\n      }\n    },\n    {\n      \"name\": \"FirmaFactura\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"FirmaFactura{${1:inclusión de la imagen}}[${2:corrimiento en x}][${3:corrimiento en y}]\"\n      }\n    },\n    {\n      \"name\": \"Moneda\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Moneda{${1:código de la moneda utilizada}}\"\n      }\n    },\n    {\n      \"name\": \"Divisa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Divisa{${1:código de la divisa utilizada}}\"\n      }\n    },\n    {\n      \"name\": \"TasaCambio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TasaCambio{${1:tasa de cambio moneda/divisa}}\"\n      }\n    },\n    {\n      \"name\": \"TextoTasaCambio\"\n    },\n    {\n      \"name\": \"Num\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Num{${1:núm}}\"\n      }\n    },\n    {\n      \"name\": \"NumControl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumControl{${1:núm}}\"\n      }\n    },\n    {\n      \"name\": \"NumSerieControl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumSerieControl{${1:núm}}\"\n      }\n    },\n    {\n      \"name\": \"Denominacion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Denominacion{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"Fecha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fecha{${1:fecha}}\"\n      }\n    },\n    {\n      \"name\": \"Fecha*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Fecha*{${1:aaaa}}{${2:mm}}{${3:dd}}\"\n      }\n    },\n    {\n      \"name\": \"FormatoFecha\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FormatoFecha{${1:formato salida}}{${2:separador}}\"\n      }\n    },\n    {\n      \"name\": \"FormatoFecha\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FormatoFecha[${3:formato entrada}]{${1:formato salida}}{${2:separador}}\"\n      }\n    },\n    {\n      \"name\": \"Credito\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Credito{${1:días}}\"\n      }\n    },\n    {\n      \"name\": \"Descuento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Descuento{${1:porcentaje}}\"\n      }\n    },\n    {\n      \"name\": \"Descuento*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Descuento*{${1:monto}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoG{${1:porcentaje}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoG*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoG*{${1:monto}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoR{${1:porcentaje}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoR*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoR*{${1:monto}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoA{${1:porcentaje}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoA*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoA*{${1:monto}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoE{${1:porcentaje}}\"\n      }\n    },\n    {\n      \"name\": \"DescuentoE*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescuentoE*{${1:monto}}\"\n      }\n    },\n    {\n      \"name\": \"Membrete\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Membrete{${1:texto en formato de párrafos}}\"\n      }\n    },\n    {\n      \"name\": \"EncabezadoFactura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EncabezadoFactura{${1:texto en formato de párrafos}}\"\n      }\n    },\n    {\n      \"name\": \"Resumen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resumen{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaPrevia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaPrevia{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaPrevia*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaPrevia*{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaPrevia**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaPrevia**{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaInterna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaInterna{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaInterna*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaInterna*{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaInterna**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaInterna**{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaExterna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaExterna{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaExterna*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaExterna*{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaExterna**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaExterna**{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaFinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaFinal{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaFinal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaFinal*{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NotaFinal**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotaFinal**{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"FondoReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FondoReporte{${1:nombre del archivo de la imagen}}\"\n      }\n    },\n    {\n      \"name\": \"FondoReporte*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FondoReporte*{${1:nombre del archivo de la imagen}}\"\n      }\n    },\n    {\n      \"name\": \"EncabezadoReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EncabezadoReporte{${1:texto en formato de párrafos}}\"\n      }\n    },\n    {\n      \"name\": \"EstiloPagina\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EstiloPagina{${1:estilo páginas restantes}}\"\n      }\n    },\n    {\n      \"name\": \"EstiloPagina\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EstiloPagina[${2:estilo primera página}]{${1:estilo páginas restantes}}\"\n      }\n    },\n    {\n      \"name\": \"InicioReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InicioReporte{${1:longitud}}\"\n      }\n    },\n    {\n      \"name\": \"FirmaReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirmaReporte{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"FirmaReporte\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"FirmaReporte{${1:texto}}[${2:pos. x}][${3:long. línea}]\"\n      }\n    },\n    {\n      \"name\": \"FirmaReporte\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"FirmaReporte[${2:inclusión la imagen}]{${1:texto}}[${3:pos. x}][${4:long. línea}]\"\n      }\n    },\n    {\n      \"name\": \"FirmaReporte\",\n      \"arg\": {\n        \"format\": \"[][][]{}[][]\",\n        \"snippet\": \"FirmaReporte[${2:inclusión la imagen}][${3:corr. en x}][${4:corr. en y}]{${1:texto}}[${5:pos. x}][${6:long. línea}]\"\n      }\n    },\n    {\n      \"name\": \"TituloReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TituloReporte{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"TituloReporte*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TituloReporte*{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"InfoPagina\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InfoPagina{${1:texto}}\"\n      }\n    },\n    {\n      \"name\": \"NumNota\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumNota{${1:núm}}\"\n      }\n    },\n    {\n      \"name\": \"FechaNota\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FechaNota{${1:fecha}}\"\n      }\n    },\n    {\n      \"name\": \"FechaNota*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FechaNota*{${1:aaaa}}{${2:mm}}{${3:dd}}\"\n      }\n    },\n    {\n      \"name\": \"TextoNotaDeCredito\"\n    },\n    {\n      \"name\": \"TextoNotaDeDebito\"\n    },\n    {\n      \"name\": \"Cliente\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cliente{${1:archivo LaTeX}}\"\n      }\n    },\n    {\n      \"name\": \"Item\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Item{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"Item\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"Item{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}[${4:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"Item\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"Item{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"Item\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"Item{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}[${5:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemR\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ItemR{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemR\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"ItemR{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}[${4:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemR\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ItemR{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemR\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"ItemR{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}[${5:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ItemA{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemA\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"ItemA{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}[${4:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemA\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ItemA{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemA\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"ItemA{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}[${5:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ItemE{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemE\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"ItemE{${1:cantidad}}{${2:descripción}}{${3:precio unitario}}[${4:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemE\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ItemE{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}\"\n      }\n    },\n    {\n      \"name\": \"ItemE\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"ItemE{${1:cantidad}}{${2:descripción}}[${4:descripción para csv}]{${3:precio unitario}}[${5:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"ItemX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemX{${1:descripción}}\"\n      }\n    },\n    {\n      \"name\": \"ItemX\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ItemX{${1:descripción}}[${2:descripción para csv}]\"\n      }\n    },\n    {\n      \"name\": \"ItemX\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"ItemX{${1:descripción}}[${2:descripción para csv}][${3:descripción sólo para referencias}]\"\n      }\n    },\n    {\n      \"name\": \"Descripcion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Descripcion{${1:texto en formato de párrafos}}\"\n      }\n    },\n    {\n      \"name\": \"LetraItems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraItems{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNumeros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNumeros{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTipoIVA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTipoIVA{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTitColumnas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTitColumnas{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTitTotales\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTitTotales{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNumTotales\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNumTotales{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTitTotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTitTotal{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNumTotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNumTotal{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTitEnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTitEnc{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraEncFactura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraEncFactura{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraMembrete\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraMembrete{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraEncReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraEncReporte{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNotaPrevia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNotaPrevia{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNotaInterna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNotaInterna{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNotaExterna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNotaExterna{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraDescripcion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraDescripcion{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraFirmas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraFirmas{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNotaFinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNotaFinal{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraFormalibre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraFormalibre{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraDenominacion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraDenominacion{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraNumeracion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraNumeracion{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraFecha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraFecha{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraTitReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraTitReporte{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraInfoPagina\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraInfoPagina{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraReverso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraReverso{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"LetraReporte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LetraReporte{${1:tipo de letra}}\"\n      }\n    },\n    {\n      \"name\": \"itemref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cantref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cantref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"descref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"puref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"subtref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dctoref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dctoref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ivaref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ivaref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ptref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ldescref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ldescref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"BIG\"\n    },\n    {\n      \"name\": \"BIR\"\n    },\n    {\n      \"name\": \"BIA\"\n    },\n    {\n      \"name\": \"BIE\"\n    },\n    {\n      \"name\": \"AlicuotaG\"\n    },\n    {\n      \"name\": \"AlicuotaR\"\n    },\n    {\n      \"name\": \"AlicuotaA\"\n    },\n    {\n      \"name\": \"SubtG\"\n    },\n    {\n      \"name\": \"SubtE\"\n    },\n    {\n      \"name\": \"SubtR\"\n    },\n    {\n      \"name\": \"SubtA\"\n    },\n    {\n      \"name\": \"DescG\"\n    },\n    {\n      \"name\": \"DescE\"\n    },\n    {\n      \"name\": \"DescR\"\n    },\n    {\n      \"name\": \"DescA\"\n    },\n    {\n      \"name\": \"Total\"\n    },\n    {\n      \"name\": \"TotalDivisa\"\n    },\n    {\n      \"name\": \"FechaVencimiento\"\n    },\n    {\n      \"name\": \"BeforeEndPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeEndPreamble{${1:código TeX}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeEndPreamble*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeEndPreamble*{${1:código TeX}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeEndPreamble**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeEndPreamble**{${1:código TeX}}\"\n      }\n    },\n    {\n      \"name\": \"ifagrupatotales\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"agrupatotalestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"agrupatotalesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdescripcioncentrada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descripcioncentradatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descripcioncentradafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffilascentradas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filascentradastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filascentradasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifconlineasha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conlineashatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conlineashafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifconreporte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conreportetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conreportefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcotizacion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cotizaciontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cotizacionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcsv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdcu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcutrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcufalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdescuentos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descuentostrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descuentosfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdivisa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divisatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divisafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdosfirmas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosfirmastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosfirmasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifduc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ductrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ducfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexpandecuadro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandecuadrotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandecuadrofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffilas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifivadescripcion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivadescripciontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivadescripcionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifiva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflinea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmonedaceldas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monedaceldastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monedaceldasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmonedadespues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monedadespuestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monedadespuesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnospanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospanishtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospanishfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotadecredito\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notadecreditotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notadecreditofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotadedebito\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notadedebitotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notadedebitofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numitemtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numitemfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprefactura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacturatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacturafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsincantidad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sincantidadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sincantidadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsindenominacion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sindenominaciontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sindenominacionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinencabezadofactura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinencabezadofacturatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinencabezadofacturafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinencabezadoreporte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinencabezadoreportetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinencabezadoreportefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinexpandir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinexpandirtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinexpandirfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinfirmas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinfirmastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinfirmasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsiniva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinivatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinivafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinivaexpresado\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinivaexpresadotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinivaexpresadofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineahni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahnitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahnifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineahtit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahtittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahtitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineahtot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahtottrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineahtotfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineashe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineashi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineashifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineasv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineasve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinlineasvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinlineasvifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinmarcasfactura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinmarcasfacturatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinmarcasfacturafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinmonedatotales\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinmonedatotalestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinmonedatotalesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinnumero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinnumerotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinnumerofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinreverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinreversotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinreversofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsintotales\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sintotalestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sintotalesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsoloreporte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"soloreportetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"soloreportefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsubtotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtotaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtotalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftodosiva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todosivatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todosivafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftwoside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twosidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twosidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifunafirma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unafirmatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unafirmafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvencimiento\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vencimientotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vencimientofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuxFecha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DibujoFirma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfdef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DTMinformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavedatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavedatex{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"flechaCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextoFirma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNumItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishbibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishappendixname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishcontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlisttablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishenclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishheadtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishseename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishalsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishproofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishprefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishglossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishdashitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsignitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishsymbitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishindexchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishindexchars{${1:encap}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"spanishscroman\"\n    },\n    {\n      \"name\": \"spanishlcroman\"\n    },\n    {\n      \"name\": \"spanishucroman\"\n    },\n    {\n      \"name\": \"Today\"\n    },\n    {\n      \"name\": \"spanishdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishdate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishDate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spanishDate{${1:año}}{${2:mes}}{${3:día}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdatedel\"\n    },\n    {\n      \"name\": \"spanishdatede\"\n    },\n    {\n      \"name\": \"spanishreverseddate\"\n    },\n    {\n      \"name\": \"spanishdatefirst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdatefirst{${1:día-uno}}\"\n      }\n    },\n    {\n      \"name\": \"spanishdeactivate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdeactivate{${1:caracteres}}\"\n      }\n    },\n    {\n      \"name\": \"decimalcomma\"\n    },\n    {\n      \"name\": \"decimalpoint\"\n    },\n    {\n      \"name\": \"spanishdecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishdecimal{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spanishplainpercent\"\n    },\n    {\n      \"name\": \"percentsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lquoti\"\n    },\n    {\n      \"name\": \"rquoti\"\n    },\n    {\n      \"name\": \"lquotii\"\n    },\n    {\n      \"name\": \"rquotii\"\n    },\n    {\n      \"name\": \"lquotiii\"\n    },\n    {\n      \"name\": \"rquotiii\"\n    },\n    {\n      \"name\": \"activatequoting\"\n    },\n    {\n      \"name\": \"deactivatequoting\"\n    },\n    {\n      \"name\": \"sen\"\n    },\n    {\n      \"name\": \"tg\"\n    },\n    {\n      \"name\": \"arcsen\"\n    },\n    {\n      \"name\": \"arctg\"\n    },\n    {\n      \"name\": \"accentedoperators\"\n    },\n    {\n      \"name\": \"unaccentedoperators\"\n    },\n    {\n      \"name\": \"spacedoperators\"\n    },\n    {\n      \"name\": \"unspacedoperators\"\n    },\n    {\n      \"name\": \"spanishoperators\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessi\"\n    },\n    {\n      \"name\": \"selectspanish\"\n    },\n    {\n      \"name\": \"spanishoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notextspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorthandsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"factura\"\n    },\n    {\n      \"name\": \"reverso\"\n    },\n    {\n      \"name\": \"reporte\"\n    },\n    {\n      \"name\": \"quoting\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/factura#c\": [\n      \"agrupatotales\",\n      \"agrupado\",\n      \"conlineasha\",\n      \"conreporte\",\n      \"cotizacion\",\n      \"csv\",\n      \"dcu\",\n      \"descripcioncentrada\",\n      \"centradesc\",\n      \"descuentos\",\n      \"divisa\",\n      \"dosfirmas\",\n      \"duc\",\n      \"expandecuadro\",\n      \"filas\",\n      \"filascentradas\",\n      \"centrado\",\n      \"G\",\n      \"iva\",\n      \"ivadescripcion\",\n      \"impdesc\",\n      \"linea\",\n      \"monedadespues\",\n      \"monedaceldas\",\n      \"nospanish\",\n      \"notadecredito\",\n      \"notadedebito\",\n      \"numitem\",\n      \"prefactura\",\n      \"sincantidad\",\n      \"sindenominacion\",\n      \"sindenom\",\n      \"sinencabezadofactura\",\n      \"sinencabezadoreporte\",\n      \"sinexpandir\",\n      \"sinfirmas\",\n      \"siniva\",\n      \"sinivaexpresado\",\n      \"sinlineahni\",\n      \"sinlineahtot\",\n      \"sinlineahtit\",\n      \"sinlineashe\",\n      \"sinlineashi\",\n      \"sinlineash\",\n      \"sinlineasve\",\n      \"sinlineasvi\",\n      \"sinlineasv\",\n      \"sinmarcasfactura\",\n      \"sinmarcas\",\n      \"sinmonedatotales\",\n      \"sinnumero\",\n      \"sinreverso\",\n      \"sintotales\",\n      \"soloreporte\",\n      \"subtotal\",\n      \"todosiva\",\n      \"twoside\",\n      \"unafirma\",\n      \"vencimiento\"\n    ],\n    \"\\\\GeometriaFactura,\\\\GeometriaReverso,\\\\GeometriaReporte\": [\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"papername=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"c0paper\",\n      \"c1paper\",\n      \"c2paper\",\n      \"c3paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"c6paper\",\n      \"b0j\",\n      \"b1j\",\n      \"b2j\",\n      \"b3j\",\n      \"b4j\",\n      \"b5j\",\n      \"b6j\",\n      \"ansiapaper\",\n      \"ansibpaper\",\n      \"ansicpaper\",\n      \"ansidpaper\",\n      \"ansiepaper\",\n      \"letterpaper\",\n      \"executivepaper\",\n      \"legalpaper\",\n      \"screen\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"papersize=\",\n      \"papersize={${1:width},${2:height}}\",\n      \"landscape\",\n      \"portrait\",\n      \"layout=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"layoutwidth=\",\n      \"layoutheight=\",\n      \"layoutsize=\",\n      \"layoutsize={${1:width},${2:height}}\",\n      \"layouthoffset=\",\n      \"layoutvoffset=\",\n      \"layoutoffset=\",\n      \"layoutoffset={${1:hoffset},${2:voffset}}\",\n      \"hscale=${1:scale}\",\n      \"vscale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"scale={${1:hscale},${2:vscale}}\",\n      \"width=\",\n      \"totalwidth=\",\n      \"height=\",\n      \"totalheight=\",\n      \"total=\",\n      \"total={${1:width},${2:height}}\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"text=\",\n      \"body={${1:width},${2:height}}\",\n      \"lines=${1:integer}\",\n      \"includehead\",\n      \"includefoot\",\n      \"includeheadfoot\",\n      \"includemp\",\n      \"includeall\",\n      \"ignorehead\",\n      \"ignorefoot\",\n      \"ignoreheadfoot\",\n      \"ignoremp\",\n      \"ignoreall\",\n      \"heightrounded\",\n      \"hdivide={${1:left margin},${2:width},${3:right margin}}\",\n      \"vdivide={${1:top margin},${2:height},${3:bottom margin}}\",\n      \"divide={${1:left/top margin},${2:width/height},${3:right/bottom margin}}\",\n      \"left=\",\n      \"lmargin=\",\n      \"inner=\",\n      \"right=\",\n      \"rmargin=\",\n      \"outer=\",\n      \"top=\",\n      \"tmargin=\",\n      \"bottom=\",\n      \"bmargin=\",\n      \"hmargin=\",\n      \"hmargin={${1:left margin},${2:right margin}}\",\n      \"vmargin=\",\n      \"vmargin={${1:top margin},${2:bottom margin}}\",\n      \"margin=\",\n      \"margin={${1:left/top margin},${2:right/bottom margin}}\",\n      \"hmarginratio=${1:left}:${2:right}\",\n      \"vmarginratio=${1:top}:${2:bottom}\",\n      \"marginratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"marginratio=${1:left/top}:${2:right/bottom}\",\n      \"ratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"ratio=${1:left/top}:${2:right/bottom}\",\n      \"hcentering\",\n      \"vcentering\",\n      \"centering\",\n      \"twoside\",\n      \"asymmetric\",\n      \"bindingoffset=\",\n      \"headheight=\",\n      \"head=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"foot=\",\n      \"nohead\",\n      \"nofoot\",\n      \"noheadfoot\",\n      \"footnotesep=\",\n      \"marginparwidth=\",\n      \"marginparsep=\",\n      \"nomarginpar\",\n      \"columnsep=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"offset=\",\n      \"offset={${1:hoffset},${2:voffset}}\",\n      \"twocolumn\",\n      \"onecolumn\",\n      \"twoside\",\n      \"reversemp\",\n      \"reversemarginpar\",\n      \"driver=${1|auto,none,dvips,dvipdfm,pdftex,luatex,xetex,vtex,dvipdfmx,xdvipdfmx|}\",\n      \"dvips\",\n      \"dvipdfm\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"vtex\",\n      \"dvipdfmx\",\n      \"xdvipdfmx\",\n      \"verbose\",\n      \"reset\",\n      \"mag=${1:magnification}\",\n      \"truedimen\",\n      \"pass\",\n      \"showframe\",\n      \"showcrop\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"soloarriba\",\n      \"soloabajo\",\n      \"solonumpag\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/factura#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-facture.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"advdate\"\n    },\n    {\n      \"name\": \"xargs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TVAdefaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TVAdefaut{${1:taux}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"numero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numero{${1:numero}}\"\n      }\n    },\n    {\n      \"name\": \"datelimite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datelimite{${1:nbjours}}\"\n      }\n    },\n    {\n      \"name\": \"nomemet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomemet{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"adresseemet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adresseemet{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"pied\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pied{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"dest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dest{${1:adresse%text}}\"\n      }\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fact{${1:adresse%text}}\"\n      }\n    },\n    {\n      \"name\": \"codedest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codedest{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"entete\"\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ligne{${1:produit%text}}{${2:prix unitaire HT}}\"\n      }\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ligne{${1:produit%text}}{${2:prix unitaire HT}}[${3:remise}]\"\n      }\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"ligne{${1:produit%text}}{${2:prix unitaire HT}}[${3:remise}][${4:taux de TVA}]\"\n      }\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ligne{${1:produit%text}}[${3:quantité}]{${2:prix unitaire HT}}\"\n      }\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"ligne{${1:produit%text}}[${3:quantité}]{${2:prix unitaire HT}}[${4:remise}]\"\n      }\n    },\n    {\n      \"name\": \"ligne\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][]\",\n        \"snippet\": \"ligne{${1:produit%text}}[${3:quantité}]{${2:prix unitaire HT}}[${4:remise}][${5:taux de TVA}]\"\n      }\n    },\n    {\n      \"name\": \"postTotaux\"\n    },\n    {\n      \"name\": \"TVAtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afficheTVA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afficheTVA{${1:numero}}\"\n      }\n    },\n    {\n      \"name\": \"codeclient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelimitetxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epaisseurcadre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"facturation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"facturetxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurChiffres\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurChiffresAvecTVA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurDescriptif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurTVA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libelle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libelle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lignesansTVA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lignesansTVA{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"livraison\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"livraisonfacturation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prixHT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prixTTC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prixtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"produit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quantite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totHTtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totTTCtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totTVAtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tottxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unite\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"facture\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/facture#c\": [\n      \"sansTVA\",\n      \"sansremise\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/facture#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fancyhandout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}]{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author}]{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:short institute%text}]{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:short date}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancysection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancysection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancysubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancysubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/fancyhandout#c\": [\n      \"letter\",\n      \"oneside\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"rmfont\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fancyhandout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fancyslides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"customtextcol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customtextcol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"slogan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slogan{${1:slogan%text}}\"\n      }\n    },\n    {\n      \"name\": \"fbckg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fbckg{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"thankyou\"\n    },\n    {\n      \"name\": \"pointedsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointedsl{${1:slogan%text}}\"\n      }\n    },\n    {\n      \"name\": \"framedsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framedsl{${1:slogan%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemized\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemized{${1:itemize contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"startingslide\"\n    },\n    {\n      \"name\": \"misc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"misc{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sources\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sources{${1:list of resources%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mybox2\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/fancyslides#c\": [\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fancyslides#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fduthesis-en.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdusetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\fdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecoveri\"\n    },\n    {\n      \"name\": \"makecoverii\"\n    },\n    {\n      \"name\": \"makecoveriii\"\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem*[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCoverTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCoverTemplate{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/fduthesis-en#c\": [\n      \"type=${1|doctor,master,bachelor|}\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"config=${1:file}\"\n    ],\n    \"\\\\fdusetup#c\": [\n      \"style={${1:options}}\",\n      \"style/font=${1|garamond,libertinus,lm,palatino,times,times*,none|}\",\n      \"style/font-size=${1|-4,5|}\",\n      \"style/footnote-style=${1|plain,libertinus,libertinus*,libertinus-sans,pifont,pifont*,pifont-sans,pifont-sans*,xits,xits-sans,xits-sans*|}\",\n      \"style/hyperlink=${1|border,color,none|}\",\n      \"style/hyperlink-color=${1|default,classic,material,graylevel,prl|}\",\n      \"style/bib-backend=${1|bibtex,biblatex|}\",\n      \"style/bib-style=${2|author-year,numerical,${1:other style}|}\",\n      \"style/cite-style=${1:style}\",\n      \"style/bib-resource={${1:bib files}}\",\n      \"style/logo=${1:imagefile}\",\n      \"style/logo-size=\",\n      \"style/logo-size={${1:width,height}}\",\n      \"style/auto-make-cover\",\n      \"style/declaration-page=${1:PDF file}\",\n      \"info={${1:options}}\",\n      \"info/degree=${1|academic,professional|}\",\n      \"info/title={${1:title in Chinese}}\",\n      \"info/title*={${1:title in English}}\",\n      \"info/author={${1:name in Chinese}}\",\n      \"info/author*={${1:name in English}}\",\n      \"info/supervisor=${1:name}\",\n      \"info/department=${1:name}\",\n      \"info/major=${1:name}\",\n      \"info/student-id=${1:number}\",\n      \"info/school-id=${1:number}\",\n      \"info/date=${1:date}\",\n      \"info/secret-level=${1|none,i,ii,iii|}\",\n      \"info/secret-year=${1:year}\",\n      \"info/instructors={${1:member1,member2,...}}\",\n      \"info/keywords={${1:keywords in Chinese}}\",\n      \"info/keywords*={${1:keywords in English}}\",\n      \"info/clc={${1:classification codes}}\",\n      \"info/jel={${1:classification codes}}\",\n      \"theorem={${1:options}}\",\n      \"theorem/style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"theorem/header-font=${1:font commands}\",\n      \"theorem/body-font=${1:font commands}\",\n      \"theorem/qed=${1:symbol}\",\n      \"theorem/counter=${1:counter}\"\n    ],\n    \"\\\\newtheorem,\\\\newtheorem*\": [\n      \"style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"header-font=${1:font commands}\",\n      \"body-font=${1:font commands}\",\n      \"qed=${1:symbol}\",\n      \"counter=${1:counter}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fduthesis-en#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fduthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdusetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\fdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecoveri\"\n    },\n    {\n      \"name\": \"makecoverii\"\n    },\n    {\n      \"name\": \"makecoveriii\"\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem*[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCoverTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCoverTemplate{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subheading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/fduthesis#c\": [\n      \"type=${1|doctor,master,bachelor|}\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"config=${1:file}\"\n    ],\n    \"\\\\fdusetup#c\": [\n      \"style={${1:options}}\",\n      \"style/font=${1|garamond,libertinus,lm,palatino,times,times*,none|}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,mac,sinotype,sourcehan,windows,none|}\",\n      \"style/font-size=${1|-4,5|}\",\n      \"style/fullwidth-stop=${1|catcode,mapping,false|}\",\n      \"style/footnote-style=${1|plain,libertinus,libertinus*,libertinus-sans,pifont,pifont*,pifont-sans,pifont-sans*,xits,xits-sans,xits-sans*|}\",\n      \"style/hyperlink=${1|border,color,none|}\",\n      \"style/hyperlink-color=${1|default,classic,material,graylevel,prl|}\",\n      \"style/bib-backend=${1|bibtex,biblatex|}\",\n      \"style/bib-style=${2|author-year,numerical,${1:other style}|}\",\n      \"style/cite-style=${1:style}\",\n      \"style/bib-resource={${1:bib files}}\",\n      \"style/logo=${1:imagefile}\",\n      \"style/logo-size=\",\n      \"style/logo-size={${1:width,height}}\",\n      \"style/auto-make-cover\",\n      \"style/declaration-page=${1:PDF file}\",\n      \"info={${1:options}}\",\n      \"info/degree=${1|academic,professional|}\",\n      \"info/title={${1:title in Chinese}}\",\n      \"info/title*={${1:title in English}}\",\n      \"info/author={${1:name in Chinese}}\",\n      \"info/author*={${1:name in English}}\",\n      \"info/supervisor=${1:name}\",\n      \"info/department=${1:name}\",\n      \"info/major=${1:name}\",\n      \"info/student-id=${1:number}\",\n      \"info/school-id=${1:number}\",\n      \"info/date=${1:date}\",\n      \"info/secret-level=${1|none,i,ii,iii|}\",\n      \"info/secret-year=${1:year}\",\n      \"info/instructors={${1:member1,member2,...}}\",\n      \"info/keywords={${1:keywords in Chinese}}\",\n      \"info/keywords*={${1:keywords in English}}\",\n      \"info/clc={${1:classification codes}}\",\n      \"info/jel={${1:classification codes}}\",\n      \"theorem={${1:options}}\",\n      \"theorem/style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"theorem/header-font=${1:font commands}\",\n      \"theorem/body-font=${1:font commands}\",\n      \"theorem/qed=${1:symbol}\",\n      \"theorem/counter=${1:counter}\"\n    ],\n    \"\\\\newtheorem,\\\\newtheorem*\": [\n      \"style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"header-font=${1:font commands}\",\n      \"body-font=${1:font commands}\",\n      \"qed=${1:symbol}\",\n      \"counter=${1:counter}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fduthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fei.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"icomma\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"morewrites\"\n    },\n    {\n      \"name\": \"algorithm2e\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"pdfx\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"uarial\",\n      \"if\": \"font=arial\"\n    },\n    {\n      \"name\": \"arimo\",\n      \"if\": \"font=arimo\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"record\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\",\n      \"if\": \"record\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"abbr-shortcuts\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewsymbol{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewsymbol[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"if\": \"symbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"if\": \"symbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"abbr-shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"anexos\"\n    },\n    {\n      \"name\": \"cftdesenhoaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdesenhoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdiagramaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdiagramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftesquemaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftesquemaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfluxogramaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfluxogramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfotografiaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfotografianame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftgraficoaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftgraficoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftmapaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftmapaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftorganogramaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftorganogramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftplantaaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftplantaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftquadroaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftquadroname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftretratoaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftretratoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cidade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cidade{${1:cidade%text}}\"\n      }\n    },\n    {\n      \"name\": \"citefloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefloat{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeonline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeonline{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"curso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curso{${1:curso}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatoria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatoria{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"desenhoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epig{${1:citacao%text}}{${2:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"esquemaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fichacatalografica\"\n    },\n    {\n      \"name\": \"fluxogramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"folhadeaprovacao\"\n    },\n    {\n      \"name\": \"fotografianame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instituicao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instituicao{${1:instituição%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"mapaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"organogramaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"palavraschave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"palavraschave{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plantaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quadroname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reformchapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"retratoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitulo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbrazil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\"\n    },\n    {\n      \"name\": \"orda\"\n    },\n    {\n      \"name\": \"ro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Entrada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Entrada{${1:Entrada}}\"\n      }\n    },\n    {\n      \"name\": \"Saida\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Saida{${1:Saída}}\"\n      }\n    },\n    {\n      \"name\": \"Dados\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dados{${1:Dados}}\"\n      }\n    },\n    {\n      \"name\": \"Resultado\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Resultado{${1:Resultado}}\"\n      }\n    },\n    {\n      \"name\": \"Ate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KwRetorna\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KwRetorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Retorna\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Retorna{${1:val}}\"\n      }\n    },\n    {\n      \"name\": \"Inicio\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inicio{${1:inside block}}\"\n      }\n    },\n    {\n      \"name\": \"Repita\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Repita{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lRepita\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lRepita{${1:stop condition}}{${2:line of the loop}}\"\n      }\n    },\n    {\n      \"name\": \"eSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSe{${1:condition}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"Se\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Se{${1:condition}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"uSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSe{${1:condition}}{${2:then block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSe{${1:condition}}{${2:then’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Senao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Senao{${1:else block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uSenao{${1:else block without else}}\"\n      }\n    },\n    {\n      \"name\": \"lSenao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lSenao{${1:else’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"SenaoSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SenaoSe{${1:condition}}{${2:elseif block}}\"\n      }\n    },\n    {\n      \"name\": \"uSenaoSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uSenaoSe{${1:condition}}{${2:elseif block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lSenaoSe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lSenaoSe{${1:condition}}{${2:elseif’s line text}}\"\n      }\n    },\n    {\n      \"name\": \"Selec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Selec{${1:condition}}{${2:switch block}}\"\n      }\n    },\n    {\n      \"name\": \"Caso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Caso{${1:a case}}{${2:case block}}\"\n      }\n    },\n    {\n      \"name\": \"uCaso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uCaso{${1:a case}}{${2:case block without end}}\"\n      }\n    },\n    {\n      \"name\": \"lCaso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lCaso{${1:a case}}{${2:case’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Outro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Outro{${1:otherwise block}}\"\n      }\n    },\n    {\n      \"name\": \"lOutro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lOutro{${1:otherwise’s line}}\"\n      }\n    },\n    {\n      \"name\": \"Para\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Para{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lPara\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lPara{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaPar{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaPar{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaCada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaCada{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaCada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaCada{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"ParaTodo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParaTodo{${1:condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lParaTodo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lParaTodo{${1:condition}}{${2:line text loop}}\"\n      }\n    },\n    {\n      \"name\": \"Enqto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"lEnqto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lEnqto{${1:stop condition}}{${2:text loop}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordUpper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordUpper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWordLCSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWordLCSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartlcsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartlcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smartsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UpperOrSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldregex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffieldregex{${1:field}}{${2:regex}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffieldendswithpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffieldendswithpunct{${1:field}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInitial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abntnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abntnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bibnameunderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopunctdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UpperOrSCCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UpperOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NormalOrSCCite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalOrSCCite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfGivenIsInit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGivenIsInit{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FirstWord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstWord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addapud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apud\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"apud(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"apud(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"apud(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"apud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"apud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"apud\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"apud(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"plaincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plaincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"plaincite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plaincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citelastname[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citelastname[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citelastname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citelastname{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textapud{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"textapud{${1:bibid}}[${3:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"textapud[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textapud\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"textapud[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearorsh*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearorsh*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearorsh*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearorsh*{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"agradecimentos\"\n    },\n    {\n      \"name\": \"axioma\"\n    },\n    {\n      \"name\": \"axioma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjectura\"\n    },\n    {\n      \"name\": \"conjectura\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corolario\"\n    },\n    {\n      \"name\": \"corolario\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definicao\"\n    },\n    {\n      \"name\": \"definicao\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"desenho\"\n    },\n    {\n      \"name\": \"diagrama\"\n    },\n    {\n      \"name\": \"epigrafe\"\n    },\n    {\n      \"name\": \"esquema\"\n    },\n    {\n      \"name\": \"exemplo\"\n    },\n    {\n      \"name\": \"exemplo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"fluxograma\"\n    },\n    {\n      \"name\": \"folhaderosto\"\n    },\n    {\n      \"name\": \"fotografia\"\n    },\n    {\n      \"name\": \"grafico\"\n    },\n    {\n      \"name\": \"hipotese\"\n    },\n    {\n      \"name\": \"hipotese\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lema\"\n    },\n    {\n      \"name\": \"lema\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"mapa\"\n    },\n    {\n      \"name\": \"organograma\"\n    },\n    {\n      \"name\": \"paradoxo\"\n    },\n    {\n      \"name\": \"paradoxo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"planta\"\n    },\n    {\n      \"name\": \"proposicao\"\n    },\n    {\n      \"name\": \"proposicao\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"prova\"\n    },\n    {\n      \"name\": \"prova\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"quadro\"\n    },\n    {\n      \"name\": \"resumo\"\n    },\n    {\n      \"name\": \"retrato\"\n    },\n    {\n      \"name\": \"teorema\"\n    },\n    {\n      \"name\": \"teorema\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/fei#c\": [\n      \"font=${1|times,arial,arimo|}\",\n      \"draft\",\n      \"final\",\n      \"symbols\",\n      \"acronym\",\n      \"record\",\n      \"abbr-shortcuts\",\n      \"sublist\",\n      \"deposito\",\n      \"numeric\",\n      \"oneside\",\n      \"twoside\",\n      \"backrefs\",\n      \"algo-as-figure\",\n      \"nopdfa\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"ittitles\",\n      \"scbib\",\n      \"nosl\",\n      \"nosn\",\n      \"noslsn\",\n      \"repeattitles\",\n      \"repeatfirstfields\",\n      \"repeatfields\",\n      \"usedashes\",\n      \"indent\",\n      \"extradate\",\n      \"extrayear\",\n      \"justify\",\n      \"pretty\",\n      \"citecount\",\n      \"sccite\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fei#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-fiche.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mafr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"entete\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"entete{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"squnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squ\"\n    },\n    {\n      \"name\": \"quenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"que\"\n    },\n    {\n      \"name\": \"qsq\"\n    },\n    {\n      \"name\": \"exenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exe\"\n    },\n    {\n      \"name\": \"droite\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"juxtapose\"\n    },\n    {\n      \"name\": \"juxtapose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-fithesis4.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-rapport3\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"tabu\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thesissetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesissetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\thesissetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thesislong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thesislong{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"thesisload\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alwayssingle\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/fithesis4#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"draft\",\n      \"final\",\n      \"palatino\",\n      \"nopalatino\",\n      \"neuehaas\",\n      \"noneuehaas\",\n      \"monochrome\",\n      \"color\",\n      \"colorbold\",\n      \"nocolorbold\",\n      \"microtype\",\n      \"nomicrotype\",\n      \"sansbold\",\n      \"nosansbold\",\n      \"table\",\n      \"oldtable\",\n      \"nolot\",\n      \"lot\",\n      \"nolof\",\n      \"lof\",\n      \"nocover\",\n      \"cover\",\n      \"digital\",\n      \"printed\"\n    ],\n    \"\\\\thesissetup\": [\n      \"basePath=${1:path}\",\n      \"logoPath=${1:path}\",\n      \"stylePath=${1:path}\",\n      \"localePath=${1:path}\",\n      \"gender=${1:m|f}\",\n      \"author=${1:name}\",\n      \"id=${1:identifier}\",\n      \"type=${1|sem,bc,mgr,prop,d,r|}\",\n      \"university=${1:identifier}\",\n      \"faculty=${1|fi,sci,law,econ,fss,med,ped,phil,fsps,pharm|}\",\n      \"department=${1:name}\",\n      \"departmentEn=${1:name}\",\n      \"programme=${1:name}\",\n      \"programmeEn=${1:name}\",\n      \"field=${1:name}\",\n      \"fieldEn=${1:name}\",\n      \"universityLogo=${1:filename}\",\n      \"facultyLogo=${1:filename}\",\n      \"style=${1:filename}\",\n      \"styleInheritance\",\n      \"locale=${1:name}\",\n      \"localeInheritance\",\n      \"date=${1:YYYY/MM/DD}\",\n      \"place=${1:place}\",\n      \"title=${1:title}\",\n      \"TeXtitle=${1:title}\",\n      \"titleEn=${1:title}\",\n      \"TeXtitleEn=${1:title}\",\n      \"keywords={${1:keyword1,keyword2,...}}\",\n      \"TeXkeywords={${1:keyword1,keyword2,...}}\",\n      \"keywordsEn={${1:keyword1,keyword2,...}}\",\n      \"TeXkeywordsEn={${1:keyword1,keyword2,...}}\",\n      \"abstract={${1:text}}\",\n      \"abstractEn={${1:text}}\",\n      \"advisor=${1:name}\",\n      \"thanks={${1:text}}\",\n      \"assignment={${1:pdffile1,pdffile2,...}}\",\n      \"bib={${1:bibfile1,bibfile2,...}}\",\n      \"autoLayout\",\n      \"extra={${1:keyvals}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/fithesis4#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-flashcards.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cardfrontstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardfrontstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cardfrontstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cardfrontstyle[${2:font commands}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cardfrontfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardfrontfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cardbackstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardbackstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardbackstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cardbackstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cardbackstyle[${2:font commands}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardbackstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cardfrontheadstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardfrontheadstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontheadstyle#c,\\\\cardfrontfootstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cardfrontheadstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cardfrontheadstyle[${2:font commands}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontheadstyle#c,\\\\cardfrontfootstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cardfrontfootstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardfrontfootstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontheadstyle#c,\\\\cardfrontfootstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cardfrontfootstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cardfrontfootstyle[${2:font commands}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\cardfrontheadstyle#c,\\\\cardfrontfootstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cardheight\"\n    },\n    {\n      \"name\": \"cardwidth\"\n    },\n    {\n      \"name\": \"topoffset\"\n    },\n    {\n      \"name\": \"oddoffset\"\n    },\n    {\n      \"name\": \"evenoffset\"\n    },\n    {\n      \"name\": \"oddevenshift\"\n    },\n    {\n      \"name\": \"cardmargin\"\n    },\n    {\n      \"name\": \"cardinnerheight\"\n    },\n    {\n      \"name\": \"cardinnerwidth\"\n    },\n    {\n      \"name\": \"cardpapermode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cardpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cardrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cardcolumns\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"flashcard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"flashcard\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:heading%text}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/flashcards#c\": [\n      \"dvips\",\n      \"grid\",\n      \"frame\",\n      \"fronts\",\n      \"backs\",\n      \"avery5371\",\n      \"avery5388\"\n    ],\n    \"\\\\cardfrontstyle#c\": [\n      \"empty\",\n      \"plain\",\n      \"headings\"\n    ],\n    \"\\\\cardbackstyle#c\": [\n      \"empty\",\n      \"plain\"\n    ],\n    \"\\\\cardfrontheadstyle#c,\\\\cardfrontfootstyle#c\": [\n      \"left\",\n      \"center\",\n      \"right\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/flashcards#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-g-brief.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-letter\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"europs\"\n    },\n    {\n      \"name\": \"eurosym\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adresse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adresse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Adresse{${1:Anschrift}}\"\n      }\n    },\n    {\n      \"name\": \"anlagen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anlagen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anlagen{${1:Anlagen}}\"\n      }\n    },\n    {\n      \"name\": \"anrede\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anrede\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anrede{${1:Anrede%text}}\"\n      }\n    },\n    {\n      \"name\": \"bank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bank{${1:Bank}}\"\n      }\n    },\n    {\n      \"name\": \"banktext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betreff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betreff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Betreff{${1:Betreff%text}}\"\n      }\n    },\n    {\n      \"name\": \"betrefftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BLZ{${1:Bankleitzahl}}\"\n      }\n    },\n    {\n      \"name\": \"blztext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"datumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Einrueckung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Einrueckung{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EMail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EMail{${1:eMail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faltmarken\"\n    },\n    {\n      \"name\": \"fenstermarken\"\n    },\n    {\n      \"name\": \"gruss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gruss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gruss{${1:text}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"grussskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"http\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTTP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTTP{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httptext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffaltmarken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffenstermarken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifklassisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflochermarke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrennlinien\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifunserzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ihrschreiben\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IhrSchreiben\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IhrSchreiben{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"ihrschreibentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ihrzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IhrZeichen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IhrZeichen{${1:Zeichen}}\"\n      }\n    },\n    {\n      \"name\": \"ihrzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klassisch\"\n    },\n    {\n      \"name\": \"konto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Konto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Konto{${1:Kontonummer}}\"\n      }\n    },\n    {\n      \"name\": \"kontotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Land\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Land{${1:Land}}\"\n      }\n    },\n    {\n      \"name\": \"lochermarke\"\n    },\n    {\n      \"name\": \"meinzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MeinZeichen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MeinZeichen{${1:Zeichen}}\"\n      }\n    },\n    {\n      \"name\": \"meinzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"ort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ort{${1:Postleitzahl und Ort}}\"\n      }\n    },\n    {\n      \"name\": \"postvermerk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Postvermerk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Postvermerk{${1:Vermerke}}\"\n      }\n    },\n    {\n      \"name\": \"retouradresse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RetourAdresse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RetourAdresse{${1:Adresse}}\"\n      }\n    },\n    {\n      \"name\": \"sprache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strasse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Strasse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Strasse{${1:Straße}}\"\n      }\n    },\n    {\n      \"name\": \"telefax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Telefax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telefax{${1:Telefaxnummer}}\"\n      }\n    },\n    {\n      \"name\": \"telefaxtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Telefon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telefon{${1:Telefonnummer}}\"\n      }\n    },\n    {\n      \"name\": \"telefontex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Telex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telex{${1:Telexnummer}}\"\n      }\n    },\n    {\n      \"name\": \"telextext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trennlinien\"\n    },\n    {\n      \"name\": \"unserzeichen\"\n    },\n    {\n      \"name\": \"unserzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unterschrift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Unterschrift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unterschrift{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"verteiler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Verteiler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Verteiler{${1:Verteiler}}\"\n      }\n    },\n    {\n      \"name\": \"VorschubH\"\n    },\n    {\n      \"name\": \"VorschubV\"\n    },\n    {\n      \"name\": \"zusatz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zusatz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zusatz{${1:Zusatz zur Adresse}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/g-brief#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"ansinew\",\n      \"applemac\",\n      \"ascii\",\n      \"cp1250\",\n      \"cp1252\",\n      \"cp437de\",\n      \"cp437\",\n      \"cp850\",\n      \"cp852\",\n      \"cp865\",\n      \"decmulti\",\n      \"latin1\",\n      \"latin2\",\n      \"latin3\",\n      \"latin4\",\n      \"latin5\",\n      \"latin9\",\n      \"next\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"american\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/g-brief#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-g-brief2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"class-letter\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"europs\"\n    },\n    {\n      \"name\": \"eurosym\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adresse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adresse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Adresse{${1:Anschrift}}\"\n      }\n    },\n    {\n      \"name\": \"adresstext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adresszeilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresszeileb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresszeilec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresszeiled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresszeilee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adresszeilef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdressZeileF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdressZeileF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"anlagen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anlagen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anlagen{${1:Anlagen}}\"\n      }\n    },\n    {\n      \"name\": \"anrede\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anrede\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anrede{${1:Anrede%text}}\"\n      }\n    },\n    {\n      \"name\": \"banktext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bankzeilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bankzeileb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bankzeilec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bankzeiled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bankzeilee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bankzeilef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BankZeileF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BankZeileF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"betreff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betreff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Betreff{${1:Betreff%text}}\"\n      }\n    },\n    {\n      \"name\": \"datum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"datumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Einrueckung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Einrueckung{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"faltmarken\"\n    },\n    {\n      \"name\": \"fenstermarken\"\n    },\n    {\n      \"name\": \"gruss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gruss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gruss{${1:text}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"grussskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffaltmarken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffenstermarken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflochermarke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrennlinien\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifunserzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ihrschreiben\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IhrSchreiben\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IhrSchreiben{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"ihrschreibentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ihrzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IhrZeichen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IhrZeichen{${1:Zeichen}}\"\n      }\n    },\n    {\n      \"name\": \"ihrzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internettext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internetzeilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"internetzeileb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"internetzeilec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"internetzeiled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"internetzeilee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"internetzeilef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternetZeileF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternetZeileF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lochermarke\"\n    },\n    {\n      \"name\": \"meinzeichen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MeinZeichen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MeinZeichen{${1:Zeichen}}\"\n      }\n    },\n    {\n      \"name\": \"meinzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"namezeilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeileb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeilec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeiled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeilee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeilef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namezeileg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameZeileG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameZeileG{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postvermerk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Postvermerk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Postvermerk{${1:Vermerke}}\"\n      }\n    },\n    {\n      \"name\": \"retouradresse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RetourAdresse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RetourAdresse{${1:Adresse}}\"\n      }\n    },\n    {\n      \"name\": \"sprache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telefontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telefonzeilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telefonzeileb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telefonzeilec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telefonzeiled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telefonzeilee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telefonzeilef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TelefonZeileF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TelefonZeileF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"trennlinien\"\n    },\n    {\n      \"name\": \"unserzeichen\"\n    },\n    {\n      \"name\": \"unserzeichentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unterschrift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Unterschrift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unterschrift{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"verteiler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Verteiler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Verteiler{${1:Verteiler}}\"\n      }\n    },\n    {\n      \"name\": \"VorschubH\"\n    },\n    {\n      \"name\": \"VorschubV\"\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/g-brief#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"ansinew\",\n      \"applemac\",\n      \"ascii\",\n      \"cp1250\",\n      \"cp1252\",\n      \"cp437de\",\n      \"cp437\",\n      \"cp850\",\n      \"cp852\",\n      \"cp865\",\n      \"decmulti\",\n      \"latin1\",\n      \"latin2\",\n      \"latin3\",\n      \"latin4\",\n      \"latin5\",\n      \"latin9\",\n      \"next\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"american\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/g-brief#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-gammas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fourier\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"subdepth\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"usebibtex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gammtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthora\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthora{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorb{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorc{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthord{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorf{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthoraorcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthoraorcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorborcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorborcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorcorcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorcorcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthordorcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthordorcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthoreorcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthoreorcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammauthorforcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorforcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddressa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddressa{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddressb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddressb{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddressc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddressc{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddressd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddressd{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddresse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddresse{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"gammaddressf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammaddressf{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:supscript}}\"\n      }\n    },\n    {\n      \"name\": \"corauth\"\n    },\n    {\n      \"name\": \"gammauthorhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammauthorhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gammcorrespondence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammcorrespondence{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"gammsupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammsupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gammbibfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammbibfilename{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"gammotherpublication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammotherpublication{${1:publication}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"gammasHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammbiberopt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammbiberopt{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"gammfinalmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammfinalmode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gammloadoptbiber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammloadoptbiber{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"gammloadoptbibtex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammloadoptbibtex{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"gammtwocolumnmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gammtwocolumnmode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makegammhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patchAmsMathEnvironmentForLineno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchAmsMathEnvironmentForLineno{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"patchBothAmsMathEnvironmentsForLineno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patchBothAmsMathEnvironmentsForLineno{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"setbiber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbiber{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"setbib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbib{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"GAMMAUTHORA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORAORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORBORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORCORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORDORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHOREORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORFORCID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMADDRESSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMAUTHORHEAD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMCORRESPONDENCE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMSUPERVISOR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMSUPERVISORTEXT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMOTHERPUBLICATION\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMBIBFILENAME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMLOADOPTBIBER\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMBIBEROPT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMLOADOPTBIBTEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMFINALMODE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GAMMTWOCOLUMNMODE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gammabstract\"\n    },\n    {\n      \"name\": \"gammkeywords\"\n    },\n    {\n      \"name\": \"gammacode\"\n    },\n    {\n      \"name\": \"gammacknowledgement\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/gammas#c\": [\n      \"usebiber\",\n      \"usebibtex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/gammas#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-geradwp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"float\",\n      \"if\": \"gdminitabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GDabstracts\"\n    },\n    {\n      \"name\": \"GDaffilitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GDaffilitem{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDannee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDannee{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"GDarticlestart\"\n    },\n    {\n      \"name\": \"GDauteursCopyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDauteursCopyright{${1:authors}}\"\n      }\n    },\n    {\n      \"name\": \"GDauteursCourts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDauteursCourts{${1:authors}}\"\n      }\n    },\n    {\n      \"name\": \"GDauthitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDauthitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDauthorsCopyright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDauthorsCopyright{${1:authors}}\"\n      }\n    },\n    {\n      \"name\": \"GDauthorsShort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDauthorsShort{${1:authors}}\"\n      }\n    },\n    {\n      \"name\": \"GDcoverpage\"\n    },\n    {\n      \"name\": \"GDcoverpagewhitespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDcoverpagewhitespace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"GDemailitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDemailitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDmois\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GDmois{${1:French month}}{${2:English month}}\"\n      }\n    },\n    {\n      \"name\": \"GDmonth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GDmonth{${1:French month}}{${2:English month}}\"\n      }\n    },\n    {\n      \"name\": \"GDnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GDnumero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDnumero{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GDpageCouverture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GDpostpubcitation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GDpostpubcitation{${1:text}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"GDrefsep\"\n    },\n    {\n      \"name\": \"GDrevised\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GDrevised{${1:French month}}{${2:English month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"GDsupplementname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDsupplementname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDtitre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDtitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GDyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDyear{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"GDabstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"GDacknowledgements\"\n    },\n    {\n      \"name\": \"GDaffillist\"\n    },\n    {\n      \"name\": \"GDaffillist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{GDaffillist}#c,\\\\begin{GDauthlist}#c,\\\\begin{GDemaillist}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GDauthlist\"\n    },\n    {\n      \"name\": \"GDauthlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{GDaffillist}#c,\\\\begin{GDauthlist}#c,\\\\begin{GDemaillist}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GDemaillist\"\n    },\n    {\n      \"name\": \"GDemaillist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{GDaffillist}#c,\\\\begin{GDauthlist}#c,\\\\begin{GDemaillist}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GDpagetitre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GDtitlepage\"\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/geradwp#c\": [\n      \"gdweb\",\n      \"gdpaper\",\n      \"gdplain\",\n      \"gdsmallhead\",\n      \"gdfinal\",\n      \"gdpostpub\",\n      \"gdsupplement\",\n      \"gdrevised\",\n      \"gdminitabs\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"gerad\"\n    ],\n    \"\\\\begin{GDaffillist}#c,\\\\begin{GDauthlist}#c,\\\\begin{GDemaillist}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/geradwp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-afosr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-afosr#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-afosr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-aro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-aro#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-aro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-darpa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-darpa#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-darpa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-doe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-doe#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-doe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-nih.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-nih#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-nih#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-nrl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-nrl#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-nrl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-nsf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-nsf#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-nsf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant-onr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-grant\"\n    },\n    {\n      \"name\": \"times\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitepaperstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncompactstatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcompactstatus\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant-onr#c\": [\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant-onr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-grant.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"uarial\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"chappg\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"ltxtable\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"pdfcomment\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AbstractName\"\n    },\n    {\n      \"name\": \"AbstractOtherPersonnelName\"\n    },\n    {\n      \"name\": \"AdminAddress\"\n    },\n    {\n      \"name\": \"AdminEmail\"\n    },\n    {\n      \"name\": \"AdminFax\"\n    },\n    {\n      \"name\": \"AdminInstitution\"\n    },\n    {\n      \"name\": \"AdminName\"\n    },\n    {\n      \"name\": \"AdminPhone\"\n    },\n    {\n      \"name\": \"AdminTitle\"\n    },\n    {\n      \"name\": \"chapternonum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapternonum[${2:secunit}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapternonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternonum{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapternotitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternotitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"dontcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dontcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fntsiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FundingAgency\"\n    },\n    {\n      \"name\": \"FundingDeadline\"\n    },\n    {\n      \"name\": \"FundingId\"\n    },\n    {\n      \"name\": \"FundingIdTitle\"\n    },\n    {\n      \"name\": \"FundingTitle\"\n    },\n    {\n      \"name\": \"FundingUrl\"\n    },\n    {\n      \"name\": \"LeadOrganizationAddress\"\n    },\n    {\n      \"name\": \"LeadOrganizationCAGE\"\n    },\n    {\n      \"name\": \"LeadOrganizationDUNS\"\n    },\n    {\n      \"name\": \"LeadOrganizationName\"\n    },\n    {\n      \"name\": \"LeadOrganizationTIN\"\n    },\n    {\n      \"name\": \"makeabstractcoverpage\"\n    },\n    {\n      \"name\": \"makecoverpage\"\n    },\n    {\n      \"name\": \"oldcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"OtherKeyPersonnel\"\n    },\n    {\n      \"name\": \"partnonum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partnonum[${2:secunit}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"partnonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnonum{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PiAddress\"\n    },\n    {\n      \"name\": \"PiDepartment\"\n    },\n    {\n      \"name\": \"PiEmail\"\n    },\n    {\n      \"name\": \"PiFax\"\n    },\n    {\n      \"name\": \"PiInstitution\"\n    },\n    {\n      \"name\": \"PiName\"\n    },\n    {\n      \"name\": \"PiPhone\"\n    },\n    {\n      \"name\": \"PiTitle\"\n    },\n    {\n      \"name\": \"PiUrl\"\n    },\n    {\n      \"name\": \"PoAddress\"\n    },\n    {\n      \"name\": \"PoEmail\"\n    },\n    {\n      \"name\": \"PoName\"\n    },\n    {\n      \"name\": \"PoPhone\"\n    },\n    {\n      \"name\": \"ProposalCostInMillions\"\n    },\n    {\n      \"name\": \"ProposalDurationInYears\"\n    },\n    {\n      \"name\": \"ProposalTitle\"\n    },\n    {\n      \"name\": \"sectionnonum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sectionnonum[${2:secunit}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionnonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionnonum{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionnonum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsectionnonum[${2:secunit}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionnonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionnonum{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionnonum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsectionnonum[${2:secunit}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionnonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionnonum{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/grant#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"isdraft\",\n      \"isnotdraft\",\n      \"iswhitepaper\",\n      \"isnotwhitepaper\",\n      \"issectioncompact\",\n      \"isnotsectioncompact\",\n      \"isbibcompact\",\n      \"isnotbibcompact\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"articletitle\",\n      \"intitle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/grant#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-graphpaper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"euclideangeometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bilinear\"\n    },\n    {\n      \"name\": \"semilogx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"semilogx{${1:decades along x}}\"\n      }\n    },\n    {\n      \"name\": \"semilogy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"semilogy{${1:decades along y}}\"\n      }\n    },\n    {\n      \"name\": \"loglog\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loglog{${1:decades along x}}{${2:decades along y}}\"\n      }\n    },\n    {\n      \"name\": \"loglog\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loglog[${3:0 or 1}]{${1:decades along x}}{${2:decades along y}}\"\n      }\n    },\n    {\n      \"name\": \"polar\"\n    },\n    {\n      \"name\": \"logpolar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logpolar{${1:decades along radius}}\"\n      }\n    },\n    {\n      \"name\": \"smith\"\n    },\n    {\n      \"name\": \"setxside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxside{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setyside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyside{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setminimumdistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminimumdistance{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setgridcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgridcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setmajorlinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmajorlinethickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumlinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmediumlinethickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setminorlinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminorlinethickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"customcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customcode{${1:picture env cmds}}\"\n      }\n    },\n    {\n      \"name\": \"customcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"customcode[${2:0 or 1}]{${1:picture env cmds}}\"\n      }\n    },\n    {\n      \"name\": \"GradPolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GradPolar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GradResist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GradResist{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CalcRxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalcRxx{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PolarChart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PolarChart[${2:diameter}]{${1:decades}}\"\n      }\n    },\n    {\n      \"name\": \"PolarChart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolarChart{${1:decades}}\"\n      }\n    },\n    {\n      \"name\": \"SmithChart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SmithChart[${1:diameter}]\"\n      }\n    },\n    {\n      \"name\": \"WhileDoOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"WhileDoOne[${4:step}]{${1:init value}}{${2:final value}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"WhileDoOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"WhileDoOne{${1:init value}}{${2:final value}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"WhileDoTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"WhileDoTwo[${4:step}]{${1:init value}}{${2:final value}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"WhileDoTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"WhileDoTwo{${1:init value}}{${2:final value}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xcircle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ycircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ycircle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ycircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"Ycircle{${1:number}}*\"\n      }\n    },\n    {\n      \"name\": \"carta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"carta[${3:0 or 1}]{${1:x-decades}}{${2:y-decades}}\"\n      }\n    },\n    {\n      \"name\": \"carta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"carta{${1:x-decades}}{${2:y-decades}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/graphpaper#c\": [\n      \"a4paper\",\n      \"a3paper\",\n      \"letterpaper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/graphpaper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-gridslides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"gridslides\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-gtpart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"aoben\"\n    },\n    {\n      \"name\": \"arxiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxiv{${1:arxiv}}\"\n      }\n    },\n    {\n      \"name\": \"arxivpassword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxivpassword{${1:password}}\"\n      }\n    },\n    {\n      \"name\": \"arxivreference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxivreference{${1:arxiv}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short authors}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"Bullet\"\n    },\n    {\n      \"name\": \"cedpol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cedpol{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"cl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"co\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corresponding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corresponding{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fullref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gbp\"\n    },\n    {\n      \"name\": \"givenname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"givenname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"J\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeautorefname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeautorefname{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"MR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"np\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ooben\"\n    },\n    {\n      \"name\": \"ppar\"\n    },\n    {\n      \"name\": \"proposed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proposed{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"publishedonline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishedonline{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"qua\"\n    },\n    {\n      \"name\": \"Regis\"\n    },\n    {\n      \"name\": \"regis\"\n    },\n    {\n      \"name\": \"rk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rk{${1:remark%text}}\"\n      }\n    },\n    {\n      \"name\": \"seconded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seconded{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"sh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sh{${1:subheading%text}}\"\n      }\n    },\n    {\n      \"name\": \"sq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sqr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"stdskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subject{${1:primary|secondary}}{${2:classification}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"surname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"theabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thededicatory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theshortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theshorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TIL\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"Zbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zbl{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"asciiabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htmlabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathmlabstract\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/gtpart#c\": [\n      \"microtype\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/gtpart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-guitartabs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"musixtex\"\n    },\n    {\n      \"name\": \"harmony\"\n    },\n    {\n      \"name\": \"intcalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"artistname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artistname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"albumtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"albumtitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"songname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"maketabheader\"\n    },\n    {\n      \"name\": \"thetabstrings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetabbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetabcstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetabcbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetabcn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetabcdn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtuning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timesigtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timesigbot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypostimetop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypostimebot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextbar\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"note{${1:numerator}}{${2:denominator}}{${3:string}}{${4:fret}}\"\n      }\n    },\n    {\n      \"name\": \"notel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"notel{${1:numerator}}{${2:denominator}}{${3:string}}{${4:fret}}{${5:length}}\"\n      }\n    },\n    {\n      \"name\": \"restwhole\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restwhole{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"resthalf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resthalf{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"restquarter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restquarter{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"resteighth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resteighth{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"restsixteenth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restsixteenth{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:bars}}{${2:ts-upper}}{${3:ts-lower}}{${4:tuning}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/guitartabs#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/guitartabs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-guitbeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"guit\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aalert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aalert{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"aalert<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aalert<overlay specification>{${1:highlighted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsty{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"Lsty<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsty<overlay specification>{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"Lcls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"Lcls<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcls<overlay specification>{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"Lopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lopt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Lenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"n\"\n    },\n    {\n      \"name\": \"nn\"\n    },\n    {\n      \"name\": \"fakeind\"\n    },\n    {\n      \"name\": \"LCmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LCmd{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"LCmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LCmd[${2:prefix char}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"LCmdArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LCmdArg{${1:csname}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ncGuIT\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LaTeXcode\"\n    },\n    {\n      \"name\": \"LaTeXcode\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"LaTeXcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"LaTeXcode\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:title}]<${2:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"LaTeXoutput\"\n    },\n    {\n      \"name\": \"LaTeXoutput\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    },\n    {\n      \"name\": \"LaTeXoutput\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"LaTeXoutput\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:title}]<${2:overlay specification}>\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/guitbeamer#c\": [\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/guitbeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-gztarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"standalone\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"kpfonts\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"mwe\"\n    },\n    {\n      \"name\": \"zref-totpages\"\n    },\n    {\n      \"name\": \"zref-xr\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"epigraph\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"nccparskip\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"rsfso\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:option%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\title,\\\\subtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:option%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\title,\\\\subtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:options%keyvals}]{${1:Nom,Prénom}}\",\n        \"keys\": [\n          \"\\\\author\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgements{${1:remerciements%text}}\"\n      }\n    },\n    {\n      \"name\": \"printauthorsdetails\"\n    },\n    {\n      \"name\": \"academicsignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"academicsignature{${1:signature%text}}\"\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"question{${1:question%text}}\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"gztlocaltableofcontents\"\n    },\n    {\n      \"name\": \"smf\"\n    },\n    {\n      \"name\": \"smf*\"\n    },\n    {\n      \"name\": \"gzt\"\n    },\n    {\n      \"name\": \"gzt*\"\n    },\n    {\n      \"name\": \"cad\"\n    },\n    {\n      \"name\": \"cad*\"\n    },\n    {\n      \"name\": \"Cad\"\n    },\n    {\n      \"name\": \"Cad*\"\n    },\n    {\n      \"name\": \"surname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surname{${1:nom de famille}}\"\n      }\n    },\n    {\n      \"name\": \"century\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"century{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"century*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"century*{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"aside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aside{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"cotan\"\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newtheorem[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\newtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gztverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gztverb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"insertbibimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertbibimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookadvertisement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bookadvertisement[${2:opt}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bookadvertisement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookadvertisement{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"classdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"classdesigner{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"classdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"classdesigner[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"classmaintainer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"classmaintainer{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"classmaintainer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"classmaintainer[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"editor{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"editor[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"editorial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"editorial[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"editorinchief\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"editorinchief{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"editorinchief\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"editorinchief[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fontdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fontdesigner{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"fontdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fontdesigner[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"fontdesignertext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontdesignertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"graphicdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"graphicdesigner{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"graphicdesigner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"graphicdesigner[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"gztarticlecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gztcl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gztfiledate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gztfileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interviewee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interviewee{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"interviewee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"interviewee[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"issuesetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuesetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"journalsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalsetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"moralreportsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moralreportsetup{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"president\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"president{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"president\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"president[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"presidentmessage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printertext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printminibios\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printminibios*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secretary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"secretary{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"secretary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"secretary[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"specialeditionsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialeditionsetup{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gztfigure\"\n    },\n    {\n      \"name\": \"gztfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gztfigure*\"\n    },\n    {\n      \"name\": \"gztfigure*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gzttable\"\n    },\n    {\n      \"name\": \"gzttable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gzttable*\"\n    },\n    {\n      \"name\": \"gzttable*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gztframe\"\n    },\n    {\n      \"name\": \"gztframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gztframe*\"\n    },\n    {\n      \"name\": \"gztframe*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoreme\"\n    },\n    {\n      \"name\": \"theoreme\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"theoreme*\"\n    },\n    {\n      \"name\": \"theoreme*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\"\n    },\n    {\n      \"name\": \"theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollaire\"\n    },\n    {\n      \"name\": \"corollaire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollaire*\"\n    },\n    {\n      \"name\": \"corollaire*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\"\n    },\n    {\n      \"name\": \"corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture*\"\n    },\n    {\n      \"name\": \"conjecture*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\"\n    },\n    {\n      \"name\": \"proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemme\"\n    },\n    {\n      \"name\": \"lemme\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemme*\"\n    },\n    {\n      \"name\": \"lemme*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\"\n    },\n    {\n      \"name\": \"lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiome\"\n    },\n    {\n      \"name\": \"axiome\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiome*\"\n    },\n    {\n      \"name\": \"axiome*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom*\"\n    },\n    {\n      \"name\": \"axiom*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\"\n    },\n    {\n      \"name\": \"definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remarque\"\n    },\n    {\n      \"name\": \"remarque\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remarque*\"\n    },\n    {\n      \"name\": \"remarque*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\"\n    },\n    {\n      \"name\": \"remark*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"exemple\"\n    },\n    {\n      \"name\": \"exemple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"exemple*\"\n    },\n    {\n      \"name\": \"exemple*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example*\"\n    },\n    {\n      \"name\": \"example*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation*\"\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"preuve\"\n    },\n    {\n      \"name\": \"preuve\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"gztcode\"\n    },\n    {\n      \"name\": \"gztcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gztcode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"authorsinstructions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookreview\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:opt}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"bookreview\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\title,\\\\subtitle\": [\n      \"short=${1:(sous-)titre court}\"\n    ],\n    \"\\\\author\": [\n      \"affiliation={${1:affiliation(s)}}\",\n      \"photo=${1:imagefile}\",\n      \"email=${1:email}\",\n      \"webpage=${1:URL}\",\n      \"minibio={${1:biographie express}}\"\n    ],\n    \"\\\\begin{gztfigure},\\\\begin{gztfigure*},\\\\begin{gzttable},\\\\begin{gzttable*},\\\\begin{gztframe},\\\\begin{gztframe*}\": [\n      \"title=${1:titre}\",\n      \"label=\",\n      \"copyright=${1:titulaire}\"\n    ],\n    \"\\\\newtheorem\": [\n      \"frenchtitle=${1:titre récurrent en français}\",\n      \"englishtitle=${1:titre récurrent en anglais}\",\n      \"style=${1|theorem,definition,proof|}\"\n    ],\n    \"\\\\begin{gztcode}\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignore|}\",\n      \"savelowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"nameref=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"graphical environment=${1:envname}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\",\n      \"\",\n      \"frame style={${1:TikZ options}}\",\n      \"frame style image=${1:file name}\",\n      \"frame style tile={${1:graphics options}}{${2:file}}\",\n      \"frame hidden\",\n      \"interior style={${1:TikZ options}}\",\n      \"interior style image=${1:file name}\",\n      \"interior style tile={${1:graphics options}}{${2:file}}\",\n      \"interior hidden\",\n      \"segmentation style={${1:TikZ options}}\",\n      \"segmentation hidden\",\n      \"title style={${1:TikZ options}}\",\n      \"title style image=${1:file name}\",\n      \"title style tile={${1:graphics options}}{${2:file}}\",\n      \"title hidden\",\n      \"titlerule style={${1:TikZ options}}\",\n      \"tcb fill frame\",\n      \"tcb fill interior\",\n      \"tcb fill title\",\n      \"attach boxed title to top left\",\n      \"attach boxed title to top left={${1:boxtitle options}}\",\n      \"attach boxed title to top text left\",\n      \"attach boxed title to top text left={${1:boxtitle options}}\",\n      \"attach boxed title to top center\",\n      \"attach boxed title to top center={${1:boxtitle options}}\",\n      \"attach boxed title to top right\",\n      \"attach boxed title to top right={${1:boxtitle options}}\",\n      \"attach boxed title to top text right\",\n      \"attach boxed title to top text right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom left\",\n      \"attach boxed title to bottom left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text left\",\n      \"attach boxed title to bottom text left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom center\",\n      \"attach boxed title to bottom center={${1:boxtitle options}}\",\n      \"attach boxed title to bottom right\",\n      \"attach boxed title to bottom right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text right\",\n      \"attach boxed title to bottom text right={${1:boxtitle options}}\",\n      \"attach boxed title to top\",\n      \"attach boxed title to top={${1:boxtitle options}}\",\n      \"attach boxed title to top*\",\n      \"attach boxed title to top*={${1:boxtitle options}}\",\n      \"attach boxed title to bottom\",\n      \"attach boxed title to bottom={${1:boxtitle options}}\",\n      \"attach boxed title to bottom*\",\n      \"attach boxed title to bottom*={${1:boxtitle options}}\",\n      \"flip title\",\n      \"flip title={${1:boxtitle options}}\",\n      \"boxed title size=${1|title,standard,copy|}\",\n      \"boxed title style={${1:options}}\",\n      \"no boxed title style\",\n      \"hbox boxed title\",\n      \"minipage boxed title\",\n      \"minipage boxed title=\",\n      \"minipage boxed title*\",\n      \"minipage boxed title*=\",\n      \"tikznode boxed title={${1:TikZ options}}\",\n      \"varwidth boxed title\",\n      \"varwidth boxed title=\",\n      \"varwidth boxed title*\",\n      \"varwidth boxed title*=\",\n      \"watermark text=${1:text}\",\n      \"watermark text on=${1:part} is ${2:text}\",\n      \"watermark graphics=${1:file name}\",\n      \"watermark graphics on=${1:part} is ${2:file}\",\n      \"watermark tikz={${1:code}}\",\n      \"watermark tikz on=${1:part} is ${2:code}\",\n      \"no watermark\",\n      \"watermark opacity=${1:fraction}\",\n      \"watermark zoom=${1:fraction}\",\n      \"watermark shrink=${1:fraction}\",\n      \"watermark overzoom=${1:fraction}\",\n      \"watermark stretch=${1:fraction}\",\n      \"watermark color=\",\n      \"clip watermark\",\n      \"clip title\",\n      \"clip upper\",\n      \"clip lower\",\n      \"borderline={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no borderline\",\n      \"show bounding box\",\n      \"show bounding box=\",\n      \"borderline north={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline south={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline east={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline west={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline horizontal={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline vertical={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no shadow\",\n      \"drop shadow\",\n      \"drop shadow=\",\n      \"drop fuzzy shadow\",\n      \"drop fuzzy shadow=\",\n      \"drop midday shadow\",\n      \"drop midday shadow=\",\n      \"drop fuzzy midday shadow\",\n      \"drop fuzzy midday shadow=\",\n      \"halo\",\n      \"halo=${1:size} with ${2:color}\",\n      \"fuzzy halo\",\n      \"fuzzy halo=${1:size} with ${2:color}\",\n      \"drop shadow southeast\",\n      \"drop shadow southeast=\",\n      \"drop shadow south\",\n      \"drop shadow south=\",\n      \"drop shadow southwest\",\n      \"drop shadow southwest=\",\n      \"drop shadow west\",\n      \"drop shadow west=\",\n      \"drop shadow northwest\",\n      \"drop shadow northwest=\",\n      \"drop shadow north\",\n      \"drop shadow north=\",\n      \"drop shadow northeast\",\n      \"drop shadow northeast=\",\n      \"drop shadow east\",\n      \"drop shadow east=\",\n      \"drop fuzzy shadow southeast\",\n      \"drop fuzzy shadow southeast=\",\n      \"drop fuzzy shadow south\",\n      \"drop fuzzy shadow south=\",\n      \"drop fuzzy shadow southwest\",\n      \"drop fuzzy shadow southwest=\",\n      \"drop fuzzy shadow west\",\n      \"drop fuzzy shadow west=\",\n      \"drop fuzzy shadow northwest\",\n      \"drop fuzzy shadow northwest=\",\n      \"drop fuzzy shadow north\",\n      \"drop fuzzy shadow north=\",\n      \"drop fuzzy shadow northeast\",\n      \"drop fuzzy shadow northeast=\",\n      \"drop fuzzy shadow east\",\n      \"drop fuzzy shadow east=\",\n      \"drop lifted shadow\",\n      \"drop lifted shadow=\",\n      \"drop small lifted shadow\",\n      \"drop small lifted shadow=\",\n      \"drop large lifted shadow\",\n      \"drop large lifted shadow=\",\n      \"shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:TikZ options}}\",\n      \"fuzzy shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:step}}{${5:TikZ options}}\",\n      \"smart shadow arc\",\n      \"lifted shadow={${1:xshift}}{${2:yshift}}{${3:bend}}{${4:step}}{${5:TikZ options}}\",\n      \"tikz={${1:TikZ options}}\",\n      \"tikz reset\",\n      \"at begin tikz={${1:TikZ code}}\",\n      \"at begin tikz reset\",\n      \"at end tikz={${1:TikZ code}}\",\n      \"at end tikz reset\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:fraction}\",\n      \"remember\",\n      \"remember as=${1:name}\",\n      \"underlay={${1:code}}\",\n      \"no underlay\",\n      \"underlay broken={${1:code}}\",\n      \"underlay unbroken={${1:code}}\",\n      \"no underlay unbroken\",\n      \"underlay first={${1:code}}\",\n      \"no underlay first\",\n      \"underlay middle={${1:code}}\",\n      \"no underlay middle\",\n      \"underlay last={${1:code}}\",\n      \"no underlay last\",\n      \"underlay boxed title={${1:code}}\",\n      \"no underlay boxed title\",\n      \"underlay unbroken and first={${1:code}}\",\n      \"underlay middle and last={${1:code}}\",\n      \"underlay unbroken and last={${1:code}}\",\n      \"underlay first and middle={${1:code}}\",\n      \"finish={${1:code}}\",\n      \"no finish\",\n      \"finish broken={${1:code}}\",\n      \"finish unbroken={${1:code}}\",\n      \"no finish unbroken\",\n      \"finish first={${1:code}}\",\n      \"no finish first\",\n      \"finish middle={${1:code}}\",\n      \"no finish middle\",\n      \"finish last={${1:code}}\",\n      \"no finish last\",\n      \"finish unbroken and first={${1:code}}\",\n      \"finish middle and last={${1:code}}\",\n      \"finish unbroken and last={${1:code}}\",\n      \"finish first and middle={${1:code}}\",\n      \"hyperref=${1:marker}\",\n      \"hyperref interior=${1:marker}\",\n      \"hyperref title=${1:marker}\",\n      \"hyperref node={${1:marker}}{${2:node}}\",\n      \"hyperlink=${1:marker}\",\n      \"hyperlink interior=${1:marker}\",\n      \"hyperlink title=${1:marker}\",\n      \"hyperlink node={${1:marker}}{${2:node}}\",\n      \"hyperurl=${1:URL}\",\n      \"hyperurl interior=${1:URL}\",\n      \"hyperurl title=${1:URL}\",\n      \"hyperurl node={${1:URL}}{${2:node}}\",\n      \"hyperurl*={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* interior={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* title={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* node={${1:hyperref options}}{${2:URL}}{${3:node}}\",\n      \"draftmode\",\n      \"standard\",\n      \"standard jigsaw\",\n      \"enhanced\",\n      \"enhanced standard\",\n      \"blank\",\n      \"enhanced jigsaw\",\n      \"enhanced standard jigsaw\",\n      \"marker\",\n      \"bicolor\",\n      \"colbacklower=\",\n      \"opacitybacklower=${1:fraction}\",\n      \"overlaplower=\",\n      \"bicolor jigsaw\",\n      \"tile\",\n      \"beamer\",\n      \"widget\",\n      \"empty\",\n      \"blanker\",\n      \"blankest\",\n      \"spartan\",\n      \"draft\",\n      \"freelance\",\n      \"extend freelance={${1:options}}\",\n      \"extend freelancefirst={${1:options}}\",\n      \"extend freelancemiddle={${1:options}}\",\n      \"extend freelancelast={${1:options}}\",\n      \"only=<${1:overlay spec}>{${2:options}}\",\n      \"hide=<${1:overlay spec}>\",\n      \"beamer hidden/.style={${1:options}}\",\n      \"alert=<${1:overlay spec}>\",\n      \"beamer alerted/.style={${1:options}}\",\n      \"\",\n      \"separator sign=${1:sign}\",\n      \"separator sign colon\",\n      \"separator sign dash\",\n      \"separator sign none\",\n      \"description delimiters=\",\n      \"description delimiters parenthesis\",\n      \"description delimiters none\",\n      \"description color\",\n      \"description color=\",\n      \"description font\",\n      \"description font=${1:text}\",\n      \"description formatter\",\n      \"description formatter=${1:macro}\",\n      \"terminator sign=${1:sign}\",\n      \"terminator sign colon\",\n      \"terminator sign dash\",\n      \"terminator sign none\",\n      \"label separator=${1:separator}\",\n      \"theorem full label supplement={${1:style}}\",\n      \"theorem label supplement={${1:style}}\",\n      \"theorem hanging indent=\",\n      \"theorem name and number\",\n      \"theorem number and name\",\n      \"theorem name\",\n      \"theorem number\",\n      \"theorem={${1:display name}}{${2:counter}}{${3:title}}{${4:marker}}\",\n      \"highlight math style={${1:options}}\",\n      \"math upper\",\n      \"math lower\",\n      \"math\",\n      \"ams equation upper\",\n      \"ams equation lower\",\n      \"ams equation\",\n      \"ams equation* upper\",\n      \"ams equation* lower\",\n      \"ams equation*\",\n      \"ams align upper\",\n      \"ams align lower\",\n      \"ams align\",\n      \"ams align* upper\",\n      \"ams align* lower\",\n      \"ams align*\",\n      \"ams gather upper\",\n      \"ams gather lower\",\n      \"ams gather\",\n      \"ams gather* upper\",\n      \"ams gather* lower\",\n      \"ams gather*\",\n      \"ams nodisplayskip upper\",\n      \"ams nodisplayskip lower\",\n      \"ams nodisplayskip\",\n      \"theorem style=${1|standard,change standard,plain,break,plain apart,change,change break,change apart,margin,margin break,margin apart|}\",\n      \"\",\n      \"breakable\",\n      \"breakable=${1|true,false,unlimited|}\",\n      \"unbreakable\",\n      \"enforce breakable\",\n      \"title after break=${1:text}\",\n      \"notitle after break\",\n      \"adjusted title after break=${1:text}\",\n      \"lines before break=${1:number}\",\n      \"break at=${1:length1/length2/...}\",\n      \"enlargepage=${1:length1/length2/...}\",\n      \"enlargepage flexible=\",\n      \"compress page\",\n      \"compress page=${1|all,baselineskip,none|}\",\n      \"shrink break goal=\",\n      \"use color stack\",\n      \"toprule at break=\",\n      \"bottomrule at break=\",\n      \"topsep at break=\",\n      \"bottomsep at break=\",\n      \"pad before break=\",\n      \"pad before break*=\",\n      \"pad after break=\",\n      \"pad at break=\",\n      \"pad at break*=\",\n      \"height fixed for=${1|none,first,middle,last,first and middle,middle and last,all|}\",\n      \"vfill before first\",\n      \"segmentation at break\",\n      \"extras={${1:options}}\",\n      \"no extras\",\n      \"extras broken={${1:options}}\",\n      \"extras unbroken={${1:options}}\",\n      \"no extras unbroken\",\n      \"extras first={${1:options}}\",\n      \"no extras first\",\n      \"extras middle={${1:options}}\",\n      \"no extras middle\",\n      \"extras last={${1:options}}\",\n      \"no extras last\",\n      \"extras unbroken and first={${1:options}}\",\n      \"extras middle and last={${1:options}}\",\n      \"extras unbroken and last={${1:options}}\",\n      \"extras first and middle={${1:options}}\",\n      \"extras title after break={${1:options}}\",\n      \"no extras title after break\",\n      \"\",\n      \"before title app={${1:code}}\",\n      \"before title pre={${1:code}}\",\n      \"after title app={${1:code}}\",\n      \"after title pre={${1:code}}\",\n      \"before upper app={${1:code}}\",\n      \"before upper pre={${1:code}}\",\n      \"after upper app={${1:code}}\",\n      \"after upper pre={${1:code}}\",\n      \"before lower app={${1:code}}\",\n      \"before lower pre={${1:code}}\",\n      \"after lower app={${1:code}}\",\n      \"after lower pre={${1:code}}\",\n      \"before app={${1:code}}\",\n      \"before pre={${1:code}}\",\n      \"after app={${1:code}}\",\n      \"after pre={${1:code}}\",\n      \"before float app={${1:code}}\",\n      \"before float pre={${1:code}}\",\n      \"after float app={${1:code}}\",\n      \"after float pre={${1:code}}\",\n      \"overlay app={${1:code}}\",\n      \"overlay pre={${1:code}}\",\n      \"overlay unbroken app={${1:code}}\",\n      \"overlay unbroken pre={${1:code}}\",\n      \"overlay first app={${1:code}}\",\n      \"overlay first pre={${1:code}}\",\n      \"overlay middle app={${1:code}}\",\n      \"overlay middle pre={${1:code}}\",\n      \"overlay last app={${1:code}}\",\n      \"overlay last pre={${1:code}}\",\n      \"overlay broken app={${1:code}}\",\n      \"overlay broken pre={${1:code}}\",\n      \"overlay unbroken and first app={${1:code}}\",\n      \"overlay unbroken and first pre={${1:code}}\",\n      \"overlay middle and last app={${1:code}}\",\n      \"overlay middle and last pre={${1:code}}\",\n      \"overlay unbroken and last app={${1:code}}\",\n      \"overlay unbroken and last pre={${1:code}}\",\n      \"overlay first and middle app={${1:code}}\",\n      \"overlay first and middle pre={${1:code}}\",\n      \"watermark text app=${1:text}\",\n      \"watermark text pre=${1:text}\",\n      \"watermark text app on=${1:part} is ${2:text}\",\n      \"watermark text pre on=${1:part} is ${2:text}\",\n      \"watermark graphics app=${1:file name}\",\n      \"watermark graphics pre=${1:file name}\",\n      \"watermark graphics app on=${1:part} is ${2:file}\",\n      \"watermark graphics pre on=${1:part} is ${2:file}\",\n      \"watermark tikz app={${1:code}}\",\n      \"watermark tikz pre={${1:code}}\",\n      \"watermark tikz app on=${1:part} is ${2:code}\",\n      \"watermark tikz pre on=${1:part} is ${2:code}\",\n      \"underlay pre={${1:code}}\",\n      \"underlay unbroken pre={${1:code}}\",\n      \"underlay first pre={${1:code}}\",\n      \"underlay middle pre={${1:code}}\",\n      \"underlay last pre={${1:code}}\",\n      \"underlay boxed title pre={${1:code}}\",\n      \"underlay broken pre={${1:code}}\",\n      \"underlay unbroken and first pre={${1:code}}\",\n      \"underlay middle and last pre={${1:code}}\",\n      \"underlay unbroken and last pre={${1:code}}\",\n      \"underlay first and middle pre={${1:code}}\",\n      \"finish pre={${1:code}}\",\n      \"finish unbroken pre={${1:code}}\",\n      \"finish first pre={${1:code}}\",\n      \"finish middle pre={${1:code}}\",\n      \"finish last pre={${1:code}}\",\n      \"finish broken pre={${1:code}}\",\n      \"finish unbroken and first pre={${1:code}}\",\n      \"finish middle and last pre={${1:code}}\",\n      \"finish unbroken and last pre={${1:code}}\",\n      \"finish first and middle pre={${1:code}}\",\n      \"frame code app={${1:code}}\",\n      \"frame code pre={${1:code}}\",\n      \"interior titled code app={${1:code}}\",\n      \"interior titled code pre={${1:code}}\",\n      \"interior code app={${1:code}}\",\n      \"interior code pre={${1:code}}\",\n      \"segmentation code app={${1:code}}\",\n      \"segmentation code pre={${1:code}}\",\n      \"title code app={${1:code}}\",\n      \"title code pre={${1:code}}\",\n      \"extras pre={${1:options}}\",\n      \"extras unbroken pre={${1:options}}\",\n      \"extras first pre={${1:options}}\",\n      \"extras middle pre={${1:options}}\",\n      \"extras last pre={${1:options}}\",\n      \"extras broken pre={${1:options}}\",\n      \"extras unbroken and first pre={${1:options}}\",\n      \"extras middle and last pre={${1:options}}\",\n      \"extras unbroken and last pre={${1:options}}\",\n      \"extras first and middle pre={${1:options}}\",\n      \"listing options app={${1:options}}\",\n      \"listing options pre={${1:options}}\",\n      \"minted options app={${1:options}}\",\n      \"minted options pre={${1:options}}\",\n      \"\",\n      \"verbatim\",\n      \"\",\n      \"listing options={${1:listings options}}\",\n      \"no listing options\",\n      \"listing style=${1:style}\",\n      \"listing inputencoding=${1:encoding}\",\n      \"listing remove caption\",\n      \"every listing line=${1:text}\",\n      \"every listing line*=${1:text}\",\n      \"listing utf8=${1:encoding}\",\n      \"minted language=${1:programming lang}\",\n      \"minted options={${1:minted options}}\",\n      \"default minted options={${1:minted options}}\",\n      \"minted style=${1:style}\",\n      \"listing engine=${1|listings,minted|}\",\n      \"listing file=${1:file name}\",\n      \"listing and text\",\n      \"text and listing\",\n      \"listing only\",\n      \"text only\",\n      \"comment=${1:text}\",\n      \"comment only\",\n      \"image comment={${1:graphics options}}{${2:file}}\",\n      \"tcbimage comment=${1:file name}\",\n      \"pdf comment\",\n      \"pdf comment=${1:file name}\",\n      \"pdf extension=${1:extension}\",\n      \"comment style={${1:options}}\",\n      \"listing and comment\",\n      \"comment and listing\",\n      \"listing side text\",\n      \"text side listing\",\n      \"listing outside text\",\n      \"text outside listing\",\n      \"listing side comment\",\n      \"comment side listing\",\n      \"listing outside comment\",\n      \"comment outside listing\",\n      \"listing above text\",\n      \"listing above* text\",\n      \"text above listing\",\n      \"text above* listing\",\n      \"listing above comment\",\n      \"listing above* comment\",\n      \"comment above listing\",\n      \"comment above* listing\",\n      \"no process\",\n      \"process code={${1:code}}\",\n      \"run system command=${1:system command}\",\n      \"compilable listing\",\n      \"run pdflatex=${1:arguments}\",\n      \"run pdflatex\",\n      \"run xelatex=${1:arguments}\",\n      \"run xelatex\",\n      \"run lualatex=${1:arguments}\",\n      \"run lualatex\",\n      \"run makeindex=${1:arguments}\",\n      \"run makeindex\",\n      \"run bibtex=${1:arguments}\",\n      \"run bibtex\",\n      \"run biber=${1:arguments}\",\n      \"run biber\",\n      \"run arara=${1:arguments}\",\n      \"run arara\",\n      \"run latex=${1:arguments}\",\n      \"run latex\",\n      \"run dvips=${1:arguments}\",\n      \"run dvips\",\n      \"run ps2pdf=${1:arguments}\",\n      \"run ps2pdf\",\n      \"freeze file=${1:file}\",\n      \"freeze none\",\n      \"freeze extension=${1:text}\",\n      \"freeze pdf\",\n      \"freeze png\",\n      \"freeze jpg\",\n      \"externalize listing=${1:name}\",\n      \"externalize listing!=${1:name}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-harnon-cv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"nopageno\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"cantarell\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addcallout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addcallout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"adddocumentheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adddocumentheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addheadertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addheadertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsubheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtimelinebullet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtimelinebullet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtimelineheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtimelineheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"recenthistory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recenthistory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"starttimeline\"\n    },\n    {\n      \"name\": \"stoptimeline\"\n    },\n    {\n      \"name\": \"timelineitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"timelineitem{${1:date}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"timelinespacer\"\n    },\n    {\n      \"name\": \"youraddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youraddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"youremail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youremail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"yourname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yourname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"yournumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yournumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"yourwebsite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yourwebsite{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"callout\"\n    },\n    {\n      \"name\": \"sectionheader\"\n    },\n    {\n      \"name\": \"subheader\"\n    },\n    {\n      \"name\": \"timelinebar\"\n    },\n    {\n      \"name\": \"timelinebullet\"\n    },\n    {\n      \"name\": \"timelineheader\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-hausarbeit-jura.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"class-jurabook\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"tgtermes\"\n    },\n    {\n      \"name\": \"tgheros\"\n    },\n    {\n      \"name\": \"tgcursor\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ellipsis\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"jurabib\"\n    },\n    {\n      \"name\": \"varioref\",\n      \"if\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:Kurzautor}]{${1:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"matrikelnummer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrikelnummer{${1:Matrikelnummer}}\"\n      }\n    },\n    {\n      \"name\": \"prof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prof{${1:Betreuer}}\"\n      }\n    },\n    {\n      \"name\": \"sectionafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionbefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semester\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"semester[${2:Fachsemester}]{${1:Semesterangabe}}\"\n      }\n    },\n    {\n      \"name\": \"semester\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"semester{${1:Semesterangabe}}\"\n      }\n    },\n    {\n      \"name\": \"setpg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpg{${1:Maße}}\"\n      }\n    },\n    {\n      \"name\": \"setpgfront\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpgfront{${1:Maße für Vorspann}}\"\n      }\n    },\n    {\n      \"name\": \"setpgmain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpgmain{${1:Maße für Hauptteil}}\"\n      }\n    },\n    {\n      \"name\": \"setspaceafterchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspaceafterchapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setspaceaftersection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspaceaftersection{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setspacebeforechapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspacebeforechapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setspacebeforesection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspacebeforesection{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsngerman\"\n    },\n    {\n      \"name\": \"datengerman\"\n    },\n    {\n      \"name\": \"extrasngerman\"\n    },\n    {\n      \"name\": \"noextrasngerman\"\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hausarbeit-jura#c\": [\n      \"american\",\n      \"british\",\n      \"english\",\n      \"latin1\",\n      \"utf8\",\n      \"ansinew\",\n      \"applemac\",\n      \"centerpagenumber\",\n      \"texgyre\",\n      \"oldfonts\",\n      \"nosuperscriptedition\",\n      \"varioref\",\n      \"headline\",\n      \"headlinetitlepageleft\",\n      \"noautomatter\",\n      \"automatter\",\n      \"allowhyphens\",\n      \"indexpagenumbers\",\n      \"norunners\",\n      \"rnrefbold\",\n      \"oldfootnotes\",\n      \"fncontinued\",\n      \"showpagenumber\",\n      \"suppresswebdates\",\n      \"longfnrule\",\n      \"classiclayout\",\n      \"centeredpartsintoc\",\n      \"centeredlayout\",\n      \"screenmode\",\n      \"compact\",\n      \"decisionhints\",\n      \"overviewwithsec\",\n      \"seminar\",\n      \"chapterprefix\",\n      \"chaptersuffix\",\n      \"fixtocindent\",\n      \"maketime\",\n      \"ruwtitle\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hausarbeit-jura#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hecthese.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tocvsec2\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"iflang\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HECanneeDepot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECanneeDepot{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HECauteur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECauteur{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"HECauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"HECcodirecteurRecherche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECcodirecteurRecherche{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECcodirectorUniversity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECcodirectorUniversity{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"HECdirecteurRecherche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECdirecteurRecherche{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECdirectorRepresentative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECdirectorRepresentative{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECexaminateurExterne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECexaminateurExterne{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECexaminatorUniversity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECexaminatorUniversity{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"HECexternalExaminator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECexternalExaminator{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECgenererTitres\"\n    },\n    {\n      \"name\": \"HECjuryMember\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECjuryMember{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"HECjuryMemberUniversity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECjuryMemberUniversity{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"HECmembreJury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECmembreJury{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"HECmoisDepot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECmoisDepot{${1:month name}}\"\n      }\n    },\n    {\n      \"name\": \"HECoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECoption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"HECpagestitre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECpdfauteur\"\n    },\n    {\n      \"name\": \"HECpdftitre\"\n    },\n    {\n      \"name\": \"HECpresidentRapporteur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECpresidentRapporteur{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECrapporteurPresident\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECrapporteurPresident{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECrepresentantDirecteur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECrepresentantDirecteur{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECresearchCodirector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECresearchCodirector{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECresearchDirector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HECresearchDirector{${1:name}}{${2:M|F}}\"\n      }\n    },\n    {\n      \"name\": \"HECsoustitre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECsoustitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HECsubMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECsubMonth{${1:month name}}\"\n      }\n    },\n    {\n      \"name\": \"HECsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HECsubYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECsubYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HECtdmAbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtdmAvantPropos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtdmCadreTheorique\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtdmRemerciements\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtdmResumeArticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtdmRevueLitterature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HECtitlepages\"\n    },\n    {\n      \"name\": \"HECtitre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECtitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HECtitreConclusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECtitreIntroduction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECuniversiteCodirecteur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECuniversiteCodirecteur{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"HECuniversiteExaminateur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECuniversiteExaminateur{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"HECuniversiteMembreJury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HECuniversiteMembreJury{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"HECabbreviations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"HECabreviations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"HECdedicace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HECdedication\"\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/hecthese#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"mscclassique\",\n      \"mscarticles\",\n      \"phdclassique\",\n      \"phdarticles\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hecthese#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hepthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"makeidx\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"titling\",\n      \"if\": \"titling\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"hep\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"hepfd\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"heplayout\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"hephyper\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"hepfloat\"\n    },\n    {\n      \"name\": \"hep\",\n      \"if\": \"hepall\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftcopy\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyper\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"hyper\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperpdf\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"hyperpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setfrontmatterspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfrontmatterspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmainmatterspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainmatterspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setappendixspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setappendixspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setbackmatterspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbackmatterspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfrontmatterextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfrontmatterextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setmainmatterextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainmatterextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setappendixextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setappendixextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setbackmatterextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbackmatterextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setabstractextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setabstractextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setdeclarationextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdeclarationextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setacknowledgementsextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setacknowledgementsextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setprefaceextramargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setprefaceextramargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"theauthor\"\n    },\n    {\n      \"name\": \"titlepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlepage{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlepage[${2:elaboration%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"frontquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frontquote{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"frontquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"frontquote[${3:language}]{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"chapterquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chapterquote{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"chapterquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chapterquote[${3:language}]{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"pagequote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pagequote{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"pagequote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pagequote[${3:language}]{${1:quote%text}}{${2:who}}\"\n      }\n    },\n    {\n      \"name\": \"verysubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verysubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"smallfigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mediumfigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largefigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hugefigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chapter\"\n    },\n    {\n      \"name\": \"Section\"\n    },\n    {\n      \"name\": \"Appendix\"\n    },\n    {\n      \"name\": \"Figure\"\n    },\n    {\n      \"name\": \"Table\"\n    },\n    {\n      \"name\": \"Equation\"\n    },\n    {\n      \"name\": \"Reference\"\n    },\n    {\n      \"name\": \"Page\"\n    },\n    {\n      \"name\": \"ChapterRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SectionRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SectionRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AppendixRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AppendixRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FigureRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FigureRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TableRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TableRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"EquationRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EquationRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ReferenceRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReferenceRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PageRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageRef{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"declaration\"\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"colophon\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/hepthesis#c\": [\n      \"oneside\",\n      \"twoside\",\n      \"sftitles\",\n      \"rmtitles\",\n      \"bind\",\n      \"nobind\",\n      \"bindnopdf\",\n      \"noams\",\n      \"alphafoot\",\n      \"draft\",\n      \"hidefront\",\n      \"hideback\",\n      \"hidefrontback\",\n      \"hyper\",\n      \"hyperpdf\",\n      \"booktabs\",\n      \"nobooktabs\",\n      \"index\",\n      \"titling\",\n      \"hep\",\n      \"a4paper\",\n      \"a4narrow\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"hepfd\",\n      \"heplayout\",\n      \"hephyper\",\n      \"hepfloat\",\n      \"hepall\"\n    ],\n    \"\\\\setspacing,\\\\setfrontmatterspacing,\\\\setmainmatterspacing,\\\\setappendixspacing,\\\\setbackmatterspacing\": [\n      \"single\",\n      \"onehalf\",\n      \"double\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hepthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hfutthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"bicaption\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"font=newtx\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"math-font=newtx\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"math-font=newtx\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"math-font=cm\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"math-font=cm\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"math-font=none\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"math-font=none\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hfutsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hfutsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hfutsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"hfutthesisversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"lwtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notationlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notationlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:notes%text}}\"\n      }\n    },\n    {\n      \"name\": \"signaturepage\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"titleBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleLRExtraWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleMultiLineMaxWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleSepWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleSingleLineMaxWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleUnderline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"underlineFixlen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"underlineFixlen[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"underlineFixlen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlineFixlen{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notationlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"publications\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assertion\"\n    },\n    {\n      \"name\": \"assertion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/hfutthesis#c\": [\n      \"degree=${1|bachelor,master,doctor|}\",\n      \"degree-type=${1|academic,professional|}\",\n      \"language=${1|chinese,english|}\",\n      \"fontset=${1|auto,windows,mac,ubuntu,fandol,none|}\",\n      \"output=${1|print,electronic|}\",\n      \"section-style=${1|chinese,arabic|}\",\n      \"cite-style=${1|super,inline,authoryear|}\"\n    ],\n    \"\\\\hfutsetup#c\": [\n      \"font=${1|auto,times,termes,stix,xits,libertinus,newcm,lm,newtx,none|}\",\n      \"cjk-font=${1|auto,windows,mac,noto,fandol,none|}\",\n      \"math-font=${1|auto,stix,xits,libertinus,newcm,cm,lm,newtx,none|}\",\n      \"math-style=${1|GB,ISO,TeX|}\",\n      \"uppercase-greek=${1|italic,upright|}\",\n      \"less-than-or-equal=${1|slanted,horizontal|}\",\n      \"integral=${1|upright,slanted|}\",\n      \"integral-limits\",\n      \"partial=${1|upright,italic|}\",\n      \"math-ellipsis=${1|centered,lower,AMS|}\",\n      \"real-part=${1|roman,fraktur|}\",\n      \"cite-style=${1|super,inline,authoryear|}\",\n      \"badge-color=${1|red,black|}\",\n      \"title={${1:论文中文题目}}\",\n      \"title*={${1:thesis English title}}\",\n      \"ugtype=${1|设计,论文|}\",\n      \"author={${1:中文名}}\",\n      \"author*={${1:name}}\",\n      \"stuID={${1:学号}}\",\n      \"clc={${1:分类号}}\",\n      \"speciality={${1:学科专业}}\",\n      \"hfuteryear={${1:入学年份}}\",\n      \"research={${1:研究方向}}\",\n      \"supervisor={${1:中文名}}\",\n      \"department={${1:学院名称}}\",\n      \"advisor={${1:中文名}}\",\n      \"advisor*={${1:name}}\",\n      \"applydegree={${1:申请学位}}\",\n      \"school={${1:默认培养单位}}\",\n      \"phdchairman={${1:中文名}}\",\n      \"phdmember={${1:中文名}}\",\n      \"date={${1:yyyy-mm}}\",\n      \"defensedate={${1:答辩时间}}\",\n      \"professional-type={${1:}}\",\n      \"professional-type*={${1:}}\",\n      \"secret-level=${1|绝密,机密,秘密,内部交流|}\",\n      \"secret-year={%<%保密年限>}\",\n      \"signchairman={${1:专家工作单位，职称，姓名}}\",\n      \"signmember={${1:text}}\",\n      \"signsupervisor={${1:text}}\",\n      \"keywords={${1:关键词 1; 关键词 2; ...}}\",\n      \"keywords*={${1:English keywords}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hfutthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hgbarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hgb\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"hgbmath\"\n    },\n    {\n      \"name\": \"hgbalgo\"\n    },\n    {\n      \"name\": \"hgbheadings\"\n    },\n    {\n      \"name\": \"hgbabbrev\"\n    },\n    {\n      \"name\": \"hgblistings\"\n    },\n    {\n      \"name\": \"hgbbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hgbarticle#c\": [\n      \"twocolumn\",\n      \"apa\",\n      \"english\",\n      \"german\",\n      \"smartquotes\",\n      \"noUpdateCheck\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hgbarticle#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hgbreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hgb\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"hgbmath\"\n    },\n    {\n      \"name\": \"hgbalgo\"\n    },\n    {\n      \"name\": \"hgbheadings\"\n    },\n    {\n      \"name\": \"hgbabbrev\"\n    },\n    {\n      \"name\": \"hgblistings\"\n    },\n    {\n      \"name\": \"hgbbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hgbreport#c\": [\n      \"notitlepage\",\n      \"apa\",\n      \"english\",\n      \"german\",\n      \"smartquotes\",\n      \"noUpdateCheck\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hgbreport#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hgbthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hgb\"\n    },\n    {\n      \"name\": \"hgbmath\"\n    },\n    {\n      \"name\": \"hgbalgo\"\n    },\n    {\n      \"name\": \"hgbheadings\"\n    },\n    {\n      \"name\": \"hgbabbrev\"\n    },\n    {\n      \"name\": \"hgblistings\"\n    },\n    {\n      \"name\": \"hgbbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cclicense\"\n    },\n    {\n      \"name\": \"companyName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"companyName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"companyUrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"companyUrl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"dateofsubmission\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dateofsubmission{${1:YYYY}}{${2:MM}}{${3:DD}}\"\n      }\n    },\n    {\n      \"name\": \"leadingzero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leadingzero{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"license\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"license{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"logofile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logofile{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"makelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeofstudy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeofstudy{${1:place}}\"\n      }\n    },\n    {\n      \"name\": \"programname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"programname{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"programtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"programtype{${1:type%text}}\"\n      }\n    },\n    {\n      \"name\": \"strictlicense\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hgbthesis#c\": [\n      \"bachelor\",\n      \"master\",\n      \"diploma\",\n      \"internship\",\n      \"apa\",\n      \"proposal\",\n      \"english\",\n      \"german\",\n      \"smartquotes\",\n      \"noUpdateCheck\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hgbthesis#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hitec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:company%text}}\"\n      }\n    },\n    {\n      \"name\": \"confidential\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confidential{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emptyfoottopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyheadtopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcenter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longrule\"\n    },\n    {\n      \"name\": \"longthickrule\"\n    },\n    {\n      \"name\": \"secshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settextfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextfraction{${1:factor}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hitec#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hitec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-hletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hsetup\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"closingtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closingtwo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"opening[${2:add. text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reference{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sign[${2:height%l}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"sign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sign{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"reftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signatureheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signatureimage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/hletter#c\": [\n      \"private\",\n      \"signit\",\n      \"bruni\",\n      \"test\",\n      \"english\",\n      \"german\",\n      \"french\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/hletter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-homework.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-einfart\"\n    },\n    {\n      \"name\": \"ProjLib\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ManualNumbering\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ManualNumbering{${1:envname}}{${2:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"answer\"\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-hu-berlin-letter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrlttr2\"\n    },\n    {\n      \"name\": \"hu-berlin-base\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hubCCseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubEnclSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubMyRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubFromName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubAddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubConnections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubOffice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubBank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubOfficeHours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubAccessibility\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubCCseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubEnclSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubMyRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubFromName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubAddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubConnections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubOffice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubBank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubOfficeHours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hubAccessibility\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-idcc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dccpaper-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/idcc#c\": [\n      \"15\",\n      \"16\",\n      \"17\",\n      \"18\",\n      \"19\",\n      \"20\",\n      \"21\",\n      \"22\",\n      \"24\",\n      \"25\",\n      \"abstract\",\n      \"lightning\",\n      \"poster\",\n      \"practice\",\n      \"research\",\n      \"workshop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/idcc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ijdc-v14.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dccpaper-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ijdc-v14#c\": [\n      \"article\",\n      \"conference\",\n      \"editorial\",\n      \"paper\",\n      \"preprint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ijdc-v14#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ijdc-v9.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dccpaper-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ijdc-v9#c\": [\n      \"article\",\n      \"conference\",\n      \"editorial\",\n      \"paper\",\n      \"preprint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ijdc-v9#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-image-gallery.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"dummy\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makeGallery\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeGallery{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gallerySetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gallerySetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gallerySetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/image-gallery#c\": [\n      \"dummy\",\n      \"nocaption\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\gallerySetup\": [\n      \"width=\",\n      \"height=\",\n      \"top=\",\n      \"bottom=\",\n      \"left=\",\n      \"right=\",\n      \"rows=${1:integer}\",\n      \"columns=${1:integer}\",\n      \"autorotate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/image-gallery#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-imsart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"imsart\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"rotating\",\n      \"if\": \"rotating\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ba\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ps\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ss\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ejs\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"letterspace\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"enumitem\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"mathrsfs\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aihp\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aihp\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"bjps\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"bjps\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"showframe\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thline\",\n      \"if\": \"sts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thline\",\n      \"if\": \"bj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlstracking\",\n      \"if\": \"bj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlstracking{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"texttracking\",\n      \"if\": \"bj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texttracking{${1:value}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"thline\",\n      \"if\": \"bjps\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\",\n      \"if\": \"amsthm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/imsart#c\": [\n      \"printbiddoi\",\n      \"keywordsasfootnote\",\n      \"historyasfootnote\",\n      \"addressasfootnote\",\n      \"addressatend\",\n      \"autosecdot\",\n      \"noautosecdot\",\n      \"noundefthanksref\",\n      \"frontback\",\n      \"amsmath\",\n      \"amsthm\",\n      \"seceqn\",\n      \"natbib\",\n      \"linksfromyear\",\n      \"numbers\",\n      \"nameyear\",\n      \"authoryear\",\n      \"rotating\",\n      \"ba\",\n      \"ps\",\n      \"ss\",\n      \"ejs\",\n      \"aap\",\n      \"aop\",\n      \"aos\",\n      \"aoas\",\n      \"sts\",\n      \"bj\",\n      \"aihp\",\n      \"bjps\",\n      \"doublespacing\",\n      \"singlespacing\",\n      \"noinfoline\",\n      \"infoline\",\n      \"linenumbers\",\n      \"nolinenumbers\",\n      \"showframe\",\n      \"noshowframe\",\n      \"submission\",\n      \"preedit\",\n      \"preprint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/imsart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-invoice-class.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ConfigPrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfigPrefix{${1:file prefix}}\"\n      }\n    },\n    {\n      \"name\": \"InputFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputFile{${1:CSV file%file}}\"\n      }\n    },\n    {\n      \"name\": \"waybill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"waybill{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"shippingdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shippingdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"toaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toaddress{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"destination\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"destination{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"carrier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"carrier{${1:carrier name}}\"\n      }\n    },\n    {\n      \"name\": \"weight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"weight{${1:pounds}}{${2:ounces}}\"\n      }\n    },\n    {\n      \"name\": \"packages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packages{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"packingcost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packingcost{${1:cost}}\"\n      }\n    },\n    {\n      \"name\": \"shippingcost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shippingcost{${1:cost}}\"\n      }\n    },\n    {\n      \"name\": \"insurancecost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insurancecost{${1:cost}}\"\n      }\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fromaddress{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"shipper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shipper{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"printinvoice\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-iodhbwm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"class-scrreprt\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"scrhack\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"auxhook\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"iodhbwm-templates\",\n      \"if\": \"load-dhbw-templates\"\n    },\n    {\n      \"name\": \"iodhbwm-templates\",\n      \"if\": \"load-dhbw-templates=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"add-bibliography\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"add-bibliography=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"add-bibliography-\"\n    },\n    {\n      \"name\": \"blindtext\",\n      \"if\": \"debug\"\n    },\n    {\n      \"name\": \"lipsum\",\n      \"if\": \"debug\"\n    },\n    {\n      \"name\": \"blindtext\",\n      \"if\": \"debug=true\"\n    },\n    {\n      \"name\": \"lipsum\",\n      \"if\": \"debug=true\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"language=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"mainlanguage=english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"language=ngerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"language=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"mainlanguage=ngerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"mainlanguage=ngerman\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/iodhbwm#c\": [\n      \"load-preamble\",\n      \"load-dhbw-templates\",\n      \"add-tocs-to-toc\",\n      \"language=${1:language}\",\n      \"mainlanguage=${1:language}\",\n      \"print-\",\n      \"print\",\n      \"auto-intro-pages=${1|none,custom,default,all|}\",\n      \"add-bibliography\",\n      \"add-bibliography-\",\n      \"bib-file=${1:bib file}\",\n      \"biblatex/style=${1:style}\",\n      \"biblatex/bibstyle=${1:bibstyle}\",\n      \"biblatex/citestyle=${1:citestyle}\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/iodhbwm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-iopart.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ack\"\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"ams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ams{${1:MSC number}}\"\n      }\n    },\n    {\n      \"name\": \"article\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"article[${3:short title%text}]{${1:type%text}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"article\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"article{${1:type%text}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Bibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bibliography{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"br\"\n    },\n    {\n      \"name\": \"broken\"\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"case{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"centre\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"centre{${1:columns}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"chain\"\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"comment[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"crule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crule{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"dashddot\"\n    },\n    {\n      \"name\": \"dashed\"\n    },\n    {\n      \"name\": \"dotted\"\n    },\n    {\n      \"name\": \"e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"eads\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eads{${1:email addresses}}\"\n      }\n    },\n    {\n      \"name\": \"endbib\"\n    },\n    {\n      \"name\": \"endfulltable\"\n    },\n    {\n      \"name\": \"endnumparts\"\n    },\n    {\n      \"name\": \"endrefs\"\n    },\n    {\n      \"name\": \"endtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endTable\"\n    },\n    {\n      \"name\": \"eqalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalign{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"eqalignno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalignno{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"eqnobysec\"\n    },\n    {\n      \"name\": \"eref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Eref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"es\"\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figure{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Figures\"\n    },\n    {\n      \"name\": \"fl\"\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ftc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftc{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"full\"\n    },\n    {\n      \"name\": \"fullcircle\"\n    },\n    {\n      \"name\": \"fullsquare\"\n    },\n    {\n      \"name\": \"fulltable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fulltable{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ioptwocol\"\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letter{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"lineup\"\n    },\n    {\n      \"name\": \"longbroken\"\n    },\n    {\n      \"name\": \"lshad\"\n    },\n    {\n      \"name\": \"mailto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailto{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"mr\"\n    },\n    {\n      \"name\": \"ms\"\n    },\n    {\n      \"name\": \"multiparteqn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noappendix\"\n    },\n    {\n      \"name\": \"nonum\"\n    },\n    {\n      \"name\": \"nosections\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"ns\"\n    },\n    {\n      \"name\": \"numparts\"\n    },\n    {\n      \"name\": \"opencircle\"\n    },\n    {\n      \"name\": \"opendiamond\"\n    },\n    {\n      \"name\": \"opensquare\"\n    },\n    {\n      \"name\": \"opentriangle\"\n    },\n    {\n      \"name\": \"opentriangledown\"\n    },\n    {\n      \"name\": \"Or\"\n    },\n    {\n      \"name\": \"pacno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pacno{${1:PAC number}}\"\n      }\n    },\n    {\n      \"name\": \"pacs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pacs{${1:PAC numbers}}\"\n      }\n    },\n    {\n      \"name\": \"paper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paper[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"paper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prelim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prelim[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"prelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prelim{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"rapid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rapid[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"rapid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rapid{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"References\"\n    },\n    {\n      \"name\": \"refs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"review\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"review[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"review\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"review{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"rmd\"\n    },\n    {\n      \"name\": \"rme\"\n    },\n    {\n      \"name\": \"rmi\"\n    },\n    {\n      \"name\": \"rshad\"\n    },\n    {\n      \"name\": \"sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"submitted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"submitto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submitto{${1:journal}}\"\n      }\n    },\n    {\n      \"name\": \"Table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Table{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Tables\"\n    },\n    {\n      \"name\": \"tdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tdot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topical\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topical[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"topical\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topical{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\"\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"CQG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DSE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EJP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JNE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JOA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JOB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jpb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPCM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MSMSE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NET\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NJP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PAO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PUS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QSO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SLC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SUST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WRM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APNY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JCP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JJAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPhCh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JMMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JMP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JOSA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPSJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JQSRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NIM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PTRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RMP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GRG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SPJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jpa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ERL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JBR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JGE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JOPT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MET\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TDM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MAF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STMP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APJL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ANSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJCP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CPL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EPL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FDR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IZV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JOS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PHU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QEL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SFC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STAM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LPL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JCAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHEP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JSTAT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JINST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JPCS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MSE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bhline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldarrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnumrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eql\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcrule{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"indentedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lequiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lo{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"lsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsimeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"m\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numrefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numrefs{${1:widestlabel}}\"\n      }\n    },\n    {\n      \"name\": \"pcal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pt(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"sssty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theeqnval\"\n    },\n    {\n      \"name\": \"tqs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"equation*\"\n    },\n    {\n      \"name\": \"harvard\"\n    },\n    {\n      \"name\": \"indented\"\n    },\n    {\n      \"name\": \"varindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:length}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/iopart#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/iopart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-iscram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iscramset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iscramset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\documentclass/iscram#c,\\\\iscramset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/iscram#c,\\\\iscramset\": [\n      \"draft\",\n      \"anonymous\",\n      \"first alone\",\n      \"title=${1:title}\",\n      \"short title=${1:short title}\",\n      \"author={short name=${1:short name},full name=${2:full name},affiliation=${3:affiliation}}\",\n      \"footer/line 1=${1:text}\",\n      \"footer/line 2=${1:text}\",\n      \"footer/line 3=${1:text}\",\n      \"iscram 2017 footer\",\n      \"WiPe Paper 2017=${1:track name}\",\n      \"CoRe Paper 2017=${1:track name}\",\n      \"iscram 2018 footer\",\n      \"WiPe Paper 2018=${1:track name}\",\n      \"CoRe Paper 2018=${1:track name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/iscram#c,\\\\iscramset\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-isodoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"forarray\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"memhfixc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showkeys\"\n    },\n    {\n      \"name\": \"setupdocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupdocument{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupdocument#c,\\\\letter#c,\\\\invoice#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letter{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"letter[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\setupdocument#c,\\\\letter#c,\\\\invoice#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"invoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invoice{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"invoice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"invoice[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\setupdocument#c,\\\\letter#c,\\\\invoice#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"itable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itable{${1:table contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"iitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iitem{${1:item}}{${2:amount}}\"\n      }\n    },\n    {\n      \"name\": \"itotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itotal{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"itotal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"itotal[${2:text}]{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"paymentdata\"\n    },\n    {\n      \"name\": \"autograph\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"autograph{${1:number}}{${2:height}}{${3:v-pos-closing}}{${4:v-pos-sig}}{${5:margin-pos}}{${6:image}}\"\n      }\n    },\n    {\n      \"name\": \"logo\"\n    },\n    {\n      \"name\": \"LetterSymbol\"\n    },\n    {\n      \"name\": \"EuroSymbol\"\n    },\n    {\n      \"name\": \"EUR\"\n    },\n    {\n      \"name\": \"EmailSymbol\"\n    },\n    {\n      \"name\": \"PhoneSymbol\"\n    },\n    {\n      \"name\": \"MobileSymbol\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EUROSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Undefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Undefined{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accept\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptaccount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptcents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepteuros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptreference\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accountdata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accountname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accountnametext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accountno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accountnotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amounttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areacode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autographversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bankname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"banknametext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellphone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellphonetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chamber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chambertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"city\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"company\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copytotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"country\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countrycode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creditorid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creditoridtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daystext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptiontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclosures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclosurestext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclosuretext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iban\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibantext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invoicetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isodocFootFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logoaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mandateid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mandateidtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opening\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openingcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ourref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ourreftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paymentdatatext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"payref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"payreftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phoneprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phonetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prezip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processto{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"routingno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"routingnotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"street\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjecttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"term\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelettercount\"\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totaltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vatno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vatnotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vattext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wacceptaccount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wacceptaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wacceptcents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wacceptct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wacceptdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"website\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"websitetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"who\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xacceptaccount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xacceptaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xacceptcents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xacceptct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xacceptdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xproc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xproc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"yacceptaccount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yacceptaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yacceptcents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yacceptct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yacceptdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourlettertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourreftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yproc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yproc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zippedcity\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setupdocument#c,\\\\letter#c,\\\\invoice#c\": [\n      \"language=${1|en-GB,en-US,fr-FR,de-DE,nl-NL,nl-BE,it-IT,es-ES,ca-ES,nb-NO,sr-RS|}\",\n      \"ordinalss\",\n      \"logo\",\n      \"nologo\",\n      \"company=\",\n      \"logoaddress=\",\n      \"who=\",\n      \"street=\",\n      \"city=\",\n      \"zip=\",\n      \"cityzip\",\n      \"country=\",\n      \"countrycode=\",\n      \"areacode=\",\n      \"foreign\",\n      \"leftaddress\",\n      \"rightaddress\",\n      \"addresscenter=\",\n      \"addresswidth=\",\n      \"to=\",\n      \"return\",\n      \"noreturn\",\n      \"returnaddress=\",\n      \"bodyshift=\",\n      \"header\",\n      \"noheader\",\n      \"yourletter=\",\n      \"yourref=\",\n      \"ourref=\",\n      \"date=\",\n      \"forcedate=\",\n      \"subject=\",\n      \"opening=\",\n      \"openingcomma=\",\n      \"closing=\",\n      \"closingcomma=\",\n      \"signature=\",\n      \"autograph=\",\n      \"enclosures=\",\n      \"copyto=\",\n      \"footer\",\n      \"nofooter\",\n      \"footorder=\",\n      \"phoneprefix\",\n      \"phone=\",\n      \"cellphone=\",\n      \"fax=\",\n      \"email=\",\n      \"website=\",\n      \"nofold\",\n      \"foldleft\",\n      \"foldright\",\n      \"fold2\",\n      \"fold3\",\n      \"fold=\",\n      \"term=\",\n      \"bankname=\",\n      \"bic=\",\n      \"routingno=\",\n      \"iban=\",\n      \"accountno=\",\n      \"accountname=\",\n      \"payref=\",\n      \"vatno=\",\n      \"chamber=\",\n      \"paymentorder=\",\n      \"currency=\",\n      \"creditorid=\",\n      \"mandateid=\",\n      \"acceptaccount=\",\n      \"acceptaddress=\",\n      \"accepteuros=\",\n      \"acceptcents=\",\n      \"acceptdescription=\",\n      \"acceptdesc=\",\n      \"acceptreference=\",\n      \"fill\",\n      \"nofill\",\n      \"shift=\",\n      \"vertical\",\n      \"novertical\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-isov2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"clause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"clause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"clause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sclause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sclause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sclause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sclause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sclause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sclause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssclause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssclause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssclause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssclause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssclause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssclause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssclause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sssclause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssclause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sssclause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssclause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sssclause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssssclause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssssclause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssssclause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssssclause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ssssclause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssssclause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssssclause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sssssclause{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssssclause\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sssssclause[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sssssclause*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sssssclause*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"normannex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normannex{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"infannex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infannex{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"repannex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"repannex{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"maxsecnumdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxsecnumdepth{${1:sec%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth#c,\\\\maxtocdepth#c,\\\\setsecnumdepth#c,\\\\settocdepth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxtocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxtocdepth{${1:sec%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth#c,\\\\maxtocdepth#c,\\\\setsecnumdepth#c,\\\\settocdepth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsecnumdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumdepth{${1:sec%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth#c,\\\\maxtocdepth#c,\\\\setsecnumdepth#c,\\\\settocdepth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocdepth{${1:sec%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth#c,\\\\maxtocdepth#c,\\\\setsecnumdepth#c,\\\\settocdepth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"isref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isref{${1:ref%text}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"disref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"disref{${1:ref%text}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"reference\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reference{${1:author}}{${2:title%text}}{${3:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"inscopename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outofscopename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olddefinition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"olddefinition{${1:phrase%text}}{${2:supplement%text}}\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definition{${1:phrase%text}}{${2:definition text%text}}\"\n      }\n    },\n    {\n      \"name\": \"symboldef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symboldef{${1:symbol}}{${2:definition text%text}}\"\n      }\n    },\n    {\n      \"name\": \"contcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"title{${1:intro%text}}{${2:main%text}}{${3:compl%text}}\"\n      }\n    },\n    {\n      \"name\": \"standard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"standard{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"yearofedition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearofedition{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"languageofedition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"languageofedition{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"extrahead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"bref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"forewordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fwdbp\"\n    },\n    {\n      \"name\": \"tspasfwdbp\"\n    },\n    {\n      \"name\": \"trfwdbpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fwdnopatents\"\n    },\n    {\n      \"name\": \"introductionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intropatents\"\n    },\n    {\n      \"name\": \"scopeclause\"\n    },\n    {\n      \"name\": \"normrefsclause\"\n    },\n    {\n      \"name\": \"normrefsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normrefbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normrefbp{${1:document identifier}}\"\n      }\n    },\n    {\n      \"name\": \"defclause\"\n    },\n    {\n      \"name\": \"symclause\"\n    },\n    {\n      \"name\": \"abbclause\"\n    },\n    {\n      \"name\": \"defsymclause\"\n    },\n    {\n      \"name\": \"defabbclause\"\n    },\n    {\n      \"name\": \"symabbclause\"\n    },\n    {\n      \"name\": \"defsymabbclause\"\n    },\n    {\n      \"name\": \"defsubclause\"\n    },\n    {\n      \"name\": \"symsubclause\"\n    },\n    {\n      \"name\": \"abbsubclause\"\n    },\n    {\n      \"name\": \"defsymsubclause\"\n    },\n    {\n      \"name\": \"defabbsubclause\"\n    },\n    {\n      \"name\": \"symabbsubclause\"\n    },\n    {\n      \"name\": \"symname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symabbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defsymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defsymabbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defabbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibannex\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isourl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isourl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ifchangemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changemarkstrue\"\n    },\n    {\n      \"name\": \"changemarksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorial{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"added\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"added{${1:text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"deleted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deleted{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"moved\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"moved{${1:text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pdftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"informativename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listannexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normativename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scopename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbpname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annexrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clauserefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noterefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightnotice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsize\"\n    },\n    {\n      \"name\": \"addannextotoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addannextotoc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"alphaindexspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alphaindexspace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"compelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compelement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrighthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcandaclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcandaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatlist{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"indexfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexsee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexsee{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"indexseealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexseealso{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"introelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"introelement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"isoemptystring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoemptystring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"isostringsequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isostringsequal{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"labelinfref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loftfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loftfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"loftnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loftnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mainelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainelement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeannexhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeannexhead{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"makecommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makecommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makecommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makepreannexhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makepreannexhead{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"notelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notelabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nreferencelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nreferencelabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"otherindexspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"otherindexspace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rectoisotitlehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sclausemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sclausemark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sindexfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssindexfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbollabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbollabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"theannex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebottomfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefloatnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHannex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHfloatnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHssssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsssssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinfrefctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thessclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thessssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesssssclause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestandard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theyextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocbaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocentryskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocskip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"trfwdbpii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trfwdbpii{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"versoisotitlehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zerocounters\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"anote\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"anexample\"\n    },\n    {\n      \"name\": \"nreferences\"\n    },\n    {\n      \"name\": \"references\"\n    },\n    {\n      \"name\": \"inscope\"\n    },\n    {\n      \"name\": \"outofscope\"\n    },\n    {\n      \"name\": \"olddefinitions\"\n    },\n    {\n      \"name\": \"definitions\"\n    },\n    {\n      \"name\": \"symbols\"\n    },\n    {\n      \"name\": \"cover\"\n    },\n    {\n      \"name\": \"foreword\"\n    },\n    {\n      \"name\": \"introduction\"\n    },\n    {\n      \"name\": \"bottomfloat\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/isov2#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"copyright\",\n      \"notcopyright\",\n      \"is\",\n      \"fdis\",\n      \"dis\",\n      \"cd\",\n      \"wd\",\n      \"techrep\",\n      \"techspec\",\n      \"pas\",\n      \"otherdoc\",\n      \"final\",\n      \"draft\"\n    ],\n    \"\\\\maxsecnumdepth#c,\\\\maxtocdepth#c,\\\\setsecnumdepth#c,\\\\settocdepth#c\": [\n      \"clause\",\n      \"sclause\",\n      \"ssclause\",\n      \"sssclause\",\n      \"ssssclause\",\n      \"sssssclause\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/isov2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jacow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"tgtermes\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"cite\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mkpagegrouped\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleblockheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleblockstartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleblockmiddleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleblockendskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightspace\"\n    },\n    {\n      \"name\": \"copyrightspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"copyrightspace[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"ifjacowbiblatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jacowbiblatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jacowbiblatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifjacowrefpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jacowrefpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jacowrefpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlZDtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Enumerate\"\n    },\n    {\n      \"name\": \"Itemize\"\n    },\n    {\n      \"name\": \"Description\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/jacow#c\": [\n      \"acus\",\n      \"aca4\",\n      \"boxit\",\n      \"biblatex\",\n      \"refpage\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jacow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jag-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jag-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jag-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jams-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jams-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jams-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jj_game.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareColors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareColors#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleBanner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleBanner{${1:banner text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bannerTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bannerTextControl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bannerTextControl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GameDesign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GameDesign{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\GameDesign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"APHidden\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APHidden{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\APHidden#c\",\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\",\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APScore#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"APDollar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APDollar{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\",\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APScore#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"APRight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APRight{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\",\n          \"\\\\APRight#c,\\\\APWrong#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"APWrong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APWrong{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\",\n          \"\\\\APRight#c,\\\\APWrong#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"APScore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APScore{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\",\n          \"\\\\APHidden#c,\\\\APDollar#c,\\\\APScore#c\",\n          \"\\\\APScore#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ScoreBoard\"\n    },\n    {\n      \"name\": \"prependCurrency\"\n    },\n    {\n      \"name\": \"appendCurrency\"\n    },\n    {\n      \"name\": \"PlaceScoreBoard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlaceScoreBoard{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"insertJJTitleBanner\"\n    },\n    {\n      \"name\": \"currencyHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currencyHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aboveCurrencySkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aboveCurrencySkip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"contestantName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contestantName{${1:length}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"contestantName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"contestantName[${3:modifications}]{${1:length}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"afterGameBoardInsertion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterGameBoardInsertion{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"gameboardPrintButton\"\n    },\n    {\n      \"name\": \"printButtonCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printButtonCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printButtonLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printButtonLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contestantNameLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contestantNameLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"timestampLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestampLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"timeStampFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timeStampFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setTwoPlayerOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTwoPlayerOptions{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setTwoPlayerOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"correctText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"incorrectText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incorrectText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enterNamePlease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enterNamePlease{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"illegalAccessMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"illegalAccessMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"illegalAnswerTwiceMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"illegalAnswerTwiceMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"playeriWinnerMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"playeriWinnerMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"playeriiWinnerMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"playeriiWinnerMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gameTiedMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gameTiedMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bothLosersMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bothLosersMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defineInstructionPageGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineInstructionPageGraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"defineGameboardPageGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineGameboardPageGraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"defineQuestionPagesGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineQuestionPagesGraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includeFootBanner\"\n    },\n    {\n      \"name\": \"Goal\"\n    },\n    {\n      \"name\": \"aboveanswersSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bJJGInsertLayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corMsgnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eJJGInsertLayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errMsgnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jjAdditionalJSActions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noPrintLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noPrintLayer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"numCategories\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numQuestions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rownum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"instructions\"\n    },\n    {\n      \"name\": \"Questions\"\n    },\n    {\n      \"name\": \"Category\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Question\"\n    },\n    {\n      \"name\": \"Question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:num of columns}]\"\n      }\n    },\n    {\n      \"name\": \"oAnswer\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/jj_game#c\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"debug\",\n      \"final\",\n      \"double\",\n      \"twoplayer\",\n      \"pro\",\n      \"forcredit\",\n      \"allowpeeking\",\n      \"nodesigngraphics\",\n      \"design=${1|jeopardy,florida,iceland,hornet,qatar,norway,germany,bahamas,spain,custom|}\",\n      \"lang=${1|english,german|}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\DeclareColors#c\": [\n      \"fillCells: ${1:color}\",\n      \"fillBanner: ${1:color}\",\n      \"textBanner: ${1:color}\",\n      \"textBoard: ${1:color}\",\n      \"fillInstructions: ${1:color}\",\n      \"fillGameBoard: ${1:color}\",\n      \"fillQuestions: ${1:color}\",\n      \"dollarColor: ${1:color}\",\n      \"linkColor: ${1:color}\"\n    ],\n    \"\\\\GameDesign#c\": [\n      \"Cat: ${1:category}\",\n      \"Cat: [${1:font cmds}] ${2:category}\",\n      \"NumQuestions: ${1:integer}\",\n      \"Goal: ${1:color}\",\n      \"GoalPercentage: ${1:number}\",\n      \"CellWidth: ${1:length}\",\n      \"CellHeight: ${1:length}\",\n      \"ExtraWidth: ${1:length}\",\n      \"ExtraHeight: ${1:length}\",\n      \"Champion: ${1:text}\"\n    ],\n    \"\\\\APHidden#c\": [\n      \"Champion: ${1:text}\"\n    ],\n    \"\\\\APHidden#c,\\\\APDollar#c,\\\\APRight#c,\\\\APWrong#c,\\\\APScore#c\": [\n      \"Font: ${1:font name}\",\n      \"Size: ${1:number}\",\n      \"TextColor: ${1:r g b}\"\n    ],\n    \"\\\\APHidden#c,\\\\APDollar#c,\\\\APScore#c\": [\n      \"BorderColor: ${1:r g b}\",\n      \"FillColor: ${1:r g b}\"\n    ],\n    \"\\\\APRight#c,\\\\APWrong#c\": [\n      \"Message: ${1:text}\"\n    ],\n    \"\\\\APScore#c\": [\n      \"CellHeight: ${1:length}\",\n      \"CellWidth: ${1:length}\",\n      \"AutoPlacement: ${1:true|false}\",\n      \"Score: \\\"${1:text}\\\"\",\n      \"Currency: \\\"${1:symbol}\\\"\",\n      \"align: ${1:l|c|r}\",\n      \"tpScaledCellWidth: ${1:factor}\",\n      \"tpHighlightBorderColor: ${1:r g b}\"\n    ],\n    \"\\\\setTwoPlayerOptions#c\": [\n      \"player1: ${1:name}\",\n      \"player2: ${1:name}\",\n      \"playerFmt: ${1:font commands}\",\n      \"checkbox: ${1:true|false}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jj_game#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jlreq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"jlreq-helpers\"\n    },\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"luatexja-adjust\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"jlreq-complements\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chapter\",\n      \"if\": \"book\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"book\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chapter[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"if\": \"book\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"if\": \"book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"backmatter\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"article_type=book\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"article_type=book\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chapter[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"if\": \"article_type=book\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"if\": \"article_type=book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"if\": \"article_type=book\"\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"if\": \"article_type=book\"\n    },\n    {\n      \"name\": \"backmatter\",\n      \"if\": \"article_type=book\"\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"report\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"report\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chapter[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"if\": \"report\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"if\": \"report\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"article_type=report\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"if\": \"article_type=report\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chapter[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"if\": \"article_type=report\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chapter*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"if\": \"article_type=report\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jlreqsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\jlreqsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"part{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"part[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"part*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"part*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"section{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"section[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"section*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsection{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"subsection[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsection*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsection*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsubsection{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"subsubsection[${2:short title}]{${1:title}}[${3:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsubsection*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsubsection*{${1:title}}[${2:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidenote{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotemark{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenotemark[${2:number}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidenotetext{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidenotetext[${3:number}]{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"endnotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnotetext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theendnotes\"\n    },\n    {\n      \"name\": \"warichu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warichu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"warichu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warichu*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tatechuyoko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tatechuyoko{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tatechuyoko*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tatechuyoko*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jidori\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jidori{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"akigumi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"akigumi{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jafontsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jafontsize{${1:size}}{${2:skip}}\"\n      }\n    },\n    {\n      \"name\": \"jlreqkanjiskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqxkanjiskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewTobiraHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTobiraHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewTobiraHeading#c,\\\\RenewTobiraHeading#c,\\\\ProvideTobiraHeading#c,\\\\DeclareTobiraHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTobiraHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTobiraHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewTobiraHeading#c,\\\\RenewTobiraHeading#c,\\\\ProvideTobiraHeading#c,\\\\DeclareTobiraHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTobiraHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTobiraHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewTobiraHeading#c,\\\\RenewTobiraHeading#c,\\\\ProvideTobiraHeading#c,\\\\DeclareTobiraHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTobiraHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTobiraHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewTobiraHeading#c,\\\\RenewTobiraHeading#c,\\\\ProvideTobiraHeading#c,\\\\DeclareTobiraHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewBlockHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewBlockHeading#c,\\\\RenewBlockHeading#c,\\\\ProvideBlockHeading#c,\\\\DeclareBlockHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewBlockHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewBlockHeading#c,\\\\RenewBlockHeading#c,\\\\ProvideBlockHeading#c,\\\\DeclareBlockHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideBlockHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewBlockHeading#c,\\\\RenewBlockHeading#c,\\\\ProvideBlockHeading#c,\\\\DeclareBlockHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareBlockHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewBlockHeading#c,\\\\RenewBlockHeading#c,\\\\ProvideBlockHeading#c,\\\\DeclareBlockHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetBlockHeadingSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockHeadingSpaces{${1:specs}}\"\n      }\n    },\n    {\n      \"name\": \"NewRuninHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewRuninHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewRuninHeading#c,\\\\RenewRuninHeading#c,\\\\ProvideRuninHeading#c,\\\\DeclareRuninHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewRuninHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewRuninHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewRuninHeading#c,\\\\RenewRuninHeading#c,\\\\ProvideRuninHeading#c,\\\\DeclareRuninHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideRuninHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideRuninHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewRuninHeading#c,\\\\RenewRuninHeading#c,\\\\ProvideRuninHeading#c,\\\\DeclareRuninHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareRuninHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareRuninHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewRuninHeading#c,\\\\RenewRuninHeading#c,\\\\ProvideRuninHeading#c,\\\\DeclareRuninHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewCutinHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewCutinHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewCutinHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewCutinHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideCutinHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideCutinHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareCutinHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareCutinHeading{${1:sectionname}}{${2:level}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ModifyHeading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ModifyHeading{${1:sectionname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SaveHeading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SaveHeading{${1:sectionname}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"NewPageStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewPageStyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RenewPageStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewPageStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ProvidePageStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvidePageStyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclarePageStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePageStyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ModifyPageStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ModifyPageStyle{${1:pagestyle}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"inlinenote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinenote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinenotesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jaspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jaspace{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"jlreqHeadingLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqHeadingSubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqHeadingText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqtateheadlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jlreqyokoheadlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thejlreqreversepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toclineskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jlreq#c\": [\n      \"uplatex\",\n      \"platex\",\n      \"lualatex\",\n      \"tate\",\n      \"report\",\n      \"book\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"draft\",\n      \"final\",\n      \"landscape\",\n      \"openright\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,a7paper,a8paper,a9paper,a10paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,b7paper,b8paper,b9paper,b10paper,c2paper,c3paper,c4paper,c5paper,c6paper,c7paper,c8paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,b7j,b8j,b9j,b10j,letterpaper,legalpaper,executivepaper|}\",\n      \"fontsize=\",\n      \"jafontsize=\",\n      \"jafontscale=${1:factor}\",\n      \"line_length=\",\n      \"number_of_lines\",\n      \"gutter=\",\n      \"fore-edge=\",\n      \"head_space=\",\n      \"foot_space=\",\n      \"baselineskip=\",\n      \"linegap=\",\n      \"headfoot_sidemargin=\",\n      \"column_gap=\",\n      \"sidenote_length=\",\n      \"open_bracket_pos=${1|zenkaku_tentsuki,zenkakunibu_nibu,nibu_tentsuki|}\",\n      \"hanging_punctuation\",\n      \"use_reverse_pagination\"\n    ],\n    \"\\\\jlreqsetup#c\": [\n      \"reference_mark=${1|inline,interlinear|}\",\n      \"footnote_second_indent=\",\n      \"sidenote_type=${1|number,symbol|}\",\n      \"sidenote_symbol=${1:symbol}\",\n      \"sidenote_keyword_font=${1:font commands}\",\n      \"endnote_second_indent=\",\n      \"endnote_position=${2|headings,paragraph,{${1:list of _<sectionname>s}}|}\",\n      \"caption_font=${1:font commands}\",\n      \"caption_label_font=${1:font commands}\",\n      \"caption_after_label_space=\",\n      \"caption_label_format={${1:code}}\",\n      \"caption_align=${1|left,right,center,bottom,top|}\",\n      \"quote_indent=\",\n      \"quote_end_indent\",\n      \"quote_beforeafter_space\",\n      \"quote_fontsize=${1|normalsize,small,footnotesize,scriptsize,tiny|}\",\n      \"itemization_beforeafter_space=\",\n      \"itemization_itemsep=\",\n      \"theorem_beforeafter_space=\",\n      \"theorem_label_font=${1:font commands}\",\n      \"theorem_font=${1:font commands}\",\n      \"frontmatter_pagebreak=${1|cleardoublepage,clearpage|}\",\n      \"frontmatter_counter={${1:counter}={value=${2:integer},the=${3:code},restore=${4:true|false}}${5:,...}}\",\n      \"frontmatter_heading={${1:sectionname}={${2:settings}}${3:,...}}\",\n      \"frontmatter_pagestyle={${1:<pagestyle>,restore=<true|false>}}\",\n      \"frontmatter_pagination={${1:<numstyle>,continuous,independent}}\",\n      \"frontmatter_precode=${1:code}\",\n      \"frontmatter_postcode=${1:code}\",\n      \"mainmatter_pagebreak=${1|cleardoublepage,clearpage|}\",\n      \"mainmatter_counter={${1:counter}={value=${2:integer},the=${3:code}}${4:,...}}\",\n      \"mainmatter_heading={${1:sectionname}={${2:settings}}${3:,...}}\",\n      \"mainmatter_pagestyle=${1:pagestyle}\",\n      \"mainmatter_pagination=${1:numstyle}\",\n      \"mainmatter_precode=${1:code}\",\n      \"mainmatter_postcode=${1:code}\",\n      \"backmatter_pagebreak=${1|cleardoublepage,clearpage|}\",\n      \"backmatter_counter={${1:counter}={value=${2:integer},the=${3:code}}${4:,...}}\",\n      \"backmatter_heading={${1:sectionname}={${2:settings}}${3:,...}}\",\n      \"backmatter_pagestyle=${1:pagestyle}\",\n      \"backmatter_pagination={${1:<numstyle>,continuous,independent}}\",\n      \"backmatter_precode=${1:code}\",\n      \"backmatter_postcode=${1:code}\",\n      \"appendix_counter={${1:counter}={value=${2:integer},the=${3:code}}${4:,...}}\",\n      \"appendix_heading={${1:sectionname}={${2:settings}}${3:,...}}\",\n      \"appendix_precode=${1:code}\",\n      \"appendix_postcode=${1:code}\",\n      \"abstract_with_maketitle\",\n      \"tableofcontents_twocolumn\"\n    ],\n    \"\\\\NewTobiraHeading#c,\\\\RenewTobiraHeading#c,\\\\ProvideTobiraHeading#c,\\\\DeclareTobiraHeading#c,\\\\ModifyHeading#c\": [\n      \"type=${1|han,naka|}\",\n      \"pagestyle=${1:pagestyle}\",\n      \"label_format=${1:code}\",\n      \"format=${1:code}\",\n      \"number\"\n    ],\n    \"\\\\NewBlockHeading#c,\\\\RenewBlockHeading#c,\\\\ProvideBlockHeading#c,\\\\DeclareBlockHeading#c,\\\\ModifyHeading#c\": [\n      \"font=${1:font commands}\",\n      \"subtitle_font=${1:font commands}\",\n      \"label_format=${1:code}\",\n      \"subtitle_format=${1:code}\",\n      \"format=${1:code}\",\n      \"align=${1|left,center,right|}\",\n      \"indent=\",\n      \"end_indent=\",\n      \"after_label_space=\",\n      \"second_heading_text_indent=\",\n      \"subtitle_indent=\",\n      \"subtitle_break\",\n      \"allowbreak_if_evenpage\",\n      \"pagebreak=${1|clearpage,cleardoublepage,clearcolumn,nariyuki,begin_with_odd_page,begin_with_even_page|}\",\n      \"pagestyle=${1:pagestyle}\",\n      \"afterindent\",\n      \"column_spanning\",\n      \"number\",\n      \"lines=${1:integer}\",\n      \"before_lines=${1:integer}\",\n      \"after_lines=${1:integer}\",\n      \"before_space=\",\n      \"after_space=\"\n    ],\n    \"\\\\NewRuninHeading#c,\\\\RenewRuninHeading#c,\\\\ProvideRuninHeading#c,\\\\DeclareRuninHeading#c,\\\\ModifyHeading#c\": [\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"after_label_space=\",\n      \"label_format=${1:code}\",\n      \"after_space=\",\n      \"number\"\n    ],\n    \"\\\\NewCutinHeading#c,\\\\RenewCutinHeading#c,\\\\ProvideCutinHeading#c,\\\\DeclareCutinHeading#c,\\\\ModifyHeading#c\": [\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"after_space=\",\n      \"onelinemax=\",\n      \"twolinemax=\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"%jlreqpagestyle\"\n    ],\n    \"\\\\NewPageStyle#c,\\\\RenewPageStyle#c,\\\\ProvidePageStyle#c,\\\\DeclarePageStyle#c,\\\\ModifyPageStyle#c\": [\n      \"yoko\",\n      \"tate\",\n      \"running_head_font=${1:font commands}\",\n      \"nombre_font=${1:font commands}\",\n      \"running_head_position=\",\n      \"nombre_position=\",\n      \"nombre=${1:code}\",\n      \"odd_running_head=${1:code}\",\n      \"even_running_head=${1:code}\",\n      \"mark_format={odd=${1:code},even=${2:code,_<sectionname>=code,...}}\",\n      \"running_head_ii_font=${1:font commands}\",\n      \"nombre_ii_font=${1:font commands}\",\n      \"running_head_ii_position=\",\n      \"nombre_ii_position=\",\n      \"nombre_ii=${1:code}\",\n      \"clear_markcommand\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jlreq#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jltxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"class-ltxdoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Lcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcount{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Lopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lopt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"NFSS\"\n    },\n    {\n      \"name\": \"dst\"\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"mlineplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlineplus{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstyle{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tsample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:height}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/jltxdoc#c\": [\n      \"nocfg\",\n      \"doc2\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jltxdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jmlr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"algorithm2e\"\n    },\n    {\n      \"name\": \"jmlrutils\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"aliascnt\",\n      \"if\": \"cleveref\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abovestrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abovestrut{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"acks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acks{${1:acknowledgements%text}}\"\n      }\n    },\n    {\n      \"name\": \"addr\"\n    },\n    {\n      \"name\": \"aftermaketitskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artpart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"artpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"artpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"artpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"arttableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"author\"\n    },\n    {\n      \"name\": \"backmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belowstrut{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"bookappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookchapter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookchapter*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bookchapter[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"booklinebreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booklinebreak{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bookpart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bookpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"booktableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booktocpostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booktocpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"editorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editors{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"editorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"figurecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figurecaption{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figurecenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figurecenter{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstpageno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstpageno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteseptext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grayscalefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grayscaletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgrayscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifprint{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifviiXx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interauthorskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrabbrnamelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrabbrnamelist{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrarticlecommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrauthorhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrbookcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrcheckforpseudocode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrhtmlmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrissue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrissue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrmaketitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrnowcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrpages{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrpmlr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrpostauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrposttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrpreauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrpremaketitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrpretitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrproceedings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jmlrproceedings{${1:short title%text}}{${2:long title%text}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrpublished\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrpublished{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrsubmitted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrsubmitted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrSuppressPackageChecks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrtitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrvolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrvolume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"jmlrwcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrworkshop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlrworkshop{${1:workshop title%text}}\"\n      }\n    },\n    {\n      \"name\": \"jmlryear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmlryear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"kernelmachines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morefrontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moremainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nametag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nametag{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"obsoletefontcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obsoletefontcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parttitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postchapterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postparthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechapterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reprint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"researchnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"researchnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebreak\"\n    },\n    {\n      \"name\": \"titletag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titletag{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"viiXxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"viiXxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofalgorithmes\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keywords\"\n    },\n    {\n      \"name\": \"algorithm2e\"\n    },\n    {\n      \"name\": \"algorithm2e\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithm2e*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/jmlr#c\": [\n      \"color\",\n      \"gray\",\n      \"draft\",\n      \"final\",\n      \"tablecaptiontop\",\n      \"tablecaptionbottom\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"nowcp\",\n      \"wcp\",\n      \"pmlr\",\n      \"cleveref\",\n      \"oneside\",\n      \"twoside\",\n      \"7x10\",\n      \"letterpaper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jmlr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jourcl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"orcidlink\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AuthorOrcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthorOrcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"bestregards\"\n    },\n    {\n      \"name\": \"CityPostal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CityPostal{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"conflictofinterest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conflictofinterest{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"declaration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaration{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"final\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"final{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"FirstInstitution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstInstitution{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"FirstNameSurname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstNameSurname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"FirstRecommended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstRecommended{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePath{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"InstitutionName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InstitutionName{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"Introduction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Introduction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JournalName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JournalName{${1:journal%text}}\"\n      }\n    },\n    {\n      \"name\": \"NameSurname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameSurname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pAuthorOrcid\"\n    },\n    {\n      \"name\": \"pCityPostal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pconflictofinterest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pEditor\"\n    },\n    {\n      \"name\": \"pEmail\"\n    },\n    {\n      \"name\": \"PersonAddressing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PersonAddressing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pfinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pFirstEmail\"\n    },\n    {\n      \"name\": \"pFirstInstitution\"\n    },\n    {\n      \"name\": \"pFirstNameSurname\"\n    },\n    {\n      \"name\": \"pFirstRecommended\"\n    },\n    {\n      \"name\": \"Phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"pImagePath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pInstitutionName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pIntroduction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pJournalName\"\n    },\n    {\n      \"name\": \"pNameSurname\"\n    },\n    {\n      \"name\": \"pPersonAddressing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pPhone\"\n    },\n    {\n      \"name\": \"pSecondEmail\"\n    },\n    {\n      \"name\": \"pSecondInstitution\"\n    },\n    {\n      \"name\": \"pSecondNameSurname\"\n    },\n    {\n      \"name\": \"pSecondRecommended\"\n    },\n    {\n      \"name\": \"psignature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pSignaturePath\"\n    },\n    {\n      \"name\": \"pSpecialIssue\"\n    },\n    {\n      \"name\": \"pStreetNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pThirdEmail\"\n    },\n    {\n      \"name\": \"pThirdInstitution\"\n    },\n    {\n      \"name\": \"pThirdNameSurname\"\n    },\n    {\n      \"name\": \"pThirdRecommended\"\n    },\n    {\n      \"name\": \"pTitle\"\n    },\n    {\n      \"name\": \"ptoEditor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pvalediction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecondEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecondEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"SecondInstitution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecondInstitution{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"SecondNameSurname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecondNameSurname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SecondRecommended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecondRecommended{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"showreviewers\"\n    },\n    {\n      \"name\": \"showSignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showSignature{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"signaturePath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signaturePath{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialIssue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialIssue{${1:issue}}\"\n      }\n    },\n    {\n      \"name\": \"StreetNo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StreetNo{${1:streetno}}\"\n      }\n    },\n    {\n      \"name\": \"ThirdEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThirdEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"ThirdInstitution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThirdInstitution{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"ThirdNameSurname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThirdNameSurname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ThirdRecommended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThirdRecommended{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Title\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Title{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"toEditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toEditor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"valediction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valediction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"yoursfaithfully\"\n    },\n    {\n      \"name\": \"yourssincerely\"\n    },\n    {\n      \"name\": \"yourstruly\"\n    },\n    {\n      \"name\": \"RecommendedPerson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RecommendedPerson{${1:role}}{${2:name}}{${3:institution}}{${4:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jourcl#c\": [\n      \"top\",\n      \"afterToEditor\",\n      \"afterIntroduction\",\n      \"afterAbstract\",\n      \"bottom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jourcl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jsarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"type1cm\",\n      \"if\": \"nomag*\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"maybeblue\",\n      \"if\": \"slide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"everyparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jsarticle#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"slide\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"usemag\",\n      \"nomag\",\n      \"nomag*\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"jis\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"papersize\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jsarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jsbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"type1cm\",\n      \"if\": \"nomag*\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"everyparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jsbook#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"usemag\",\n      \"nomag\",\n      \"nomag*\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"jis\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"papersize\",\n      \"english\",\n      \"report\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jsbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jspf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"type1cm\",\n      \"if\": \"nomag*\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorsEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthorsEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"eauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"etitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"everyparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jspf#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"usemag\",\n      \"nomag\",\n      \"nomag*\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"jis\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"papersize\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jspf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jsreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"type1cm\",\n      \"if\": \"nomag*\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"everyparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jsreport#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"usemag\",\n      \"nomag\",\n      \"nomag*\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"jis\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"papersize\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jsreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jurabook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"jurabase\"\n    },\n    {\n      \"name\": \"remreset\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"allowhyphens\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlepublisherbox\",\n      \"if\": \"ruwtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addextrawebcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addextrawebcite{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"bibtotoc\"\n    },\n    {\n      \"name\": \"birthplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"birthplace{${1:geburtsort}}\"\n      }\n    },\n    {\n      \"name\": \"changestarchapters\"\n    },\n    {\n      \"name\": \"chapterlevel\"\n    },\n    {\n      \"name\": \"citeweb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citeweb[${3:abrufdatum}]{${1:URL}}{${2:beschreibung%text}}\"\n      }\n    },\n    {\n      \"name\": \"citeweb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeweb{${1:URL}}{${2:beschreibung%text}}\"\n      }\n    },\n    {\n      \"name\": \"citewebx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citewebx[${3:abrufdatum}]{${1:urldef}}{${2:beschreibung%text}}\"\n      }\n    },\n    {\n      \"name\": \"citewebx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citewebx{${1:urldef}}{${2:beschreibung%text}}\"\n      }\n    },\n    {\n      \"name\": \"dcs*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dcs*{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}\"\n      }\n    },\n    {\n      \"name\": \"dcs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dcs{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}\"\n      }\n    },\n    {\n      \"name\": \"decision*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"decision*[${8:nichtrechtskraeftig}]{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"decision*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"decision*{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"decision\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"decision[${8:nichtrechtskraeftig}]{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"decision\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"decision{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"decree*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"decree*{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:datum}}{${5:az}}{${6:extra}}{${7:anmerkung}}\"\n      }\n    },\n    {\n      \"name\": \"decree\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"decree{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:datum}}{${5:az}}{${6:extra}}{${7:anmerkung}}\"\n      }\n    },\n    {\n      \"name\": \"dumpoptions\"\n    },\n    {\n      \"name\": \"dumpoptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dumpoptions[${1:ausgabe}]\"\n      }\n    },\n    {\n      \"name\": \"examdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdate{${1:datum}}\"\n      }\n    },\n    {\n      \"name\": \"FIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FIndex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"findex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstexaminer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstexaminer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"hnewline\"\n    },\n    {\n      \"name\": \"ifjpdf\"\n    },\n    {\n      \"name\": \"Index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Index{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leveldown\"\n    },\n    {\n      \"name\": \"levelup\"\n    },\n    {\n      \"name\": \"lonelyappendixchapter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lonelyappendixchapter[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lonelyappendixchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lonelyappendixchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"longpage\"\n    },\n    {\n      \"name\": \"longpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"longpage[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"MIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MIndex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newcourt\"\n    },\n    {\n      \"name\": \"nomencltotoc\"\n    },\n    {\n      \"name\": \"notyet\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"notyet[${8:nichtrechtskraeftig}]{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"notyet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"notyet{${1:gericht}}{${2:fundstelle}}{${3:stichwort}}{${4:entschdatum}}{${5:az}}{${6:extra}}{${7:vermerk}}\"\n      }\n    },\n    {\n      \"name\": \"officialtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"officialtitle{${1:kuerzel%keyvals}}\",\n        \"keys\": [\n          \"\\\\officialtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onehalfspacing\"\n    },\n    {\n      \"name\": \"onespacing\"\n    },\n    {\n      \"name\": \"overview\"\n    },\n    {\n      \"name\": \"publishinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishinfo{${1:pubvermerk%text}}\"\n      }\n    },\n    {\n      \"name\": \"publishplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishplace{${1:ort}}\"\n      }\n    },\n    {\n      \"name\": \"publishyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishyear{${1:jahr}}\"\n      }\n    },\n    {\n      \"name\": \"resetstarchapters\"\n    },\n    {\n      \"name\": \"rn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rn[${2:label}]{${1:ersteswort}}\"\n      }\n    },\n    {\n      \"name\": \"rn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rn{${1:ersteswort}}\"\n      }\n    },\n    {\n      \"name\": \"rnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rnreff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnreff{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rnrefff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnrefff{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"secondexaminer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondexaminer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setchaptername\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchaptername[${2:trennz}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setchaptername\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchaptername{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setjbooklength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjbooklength{${1:element%keyvals}}{${2:neuelaenge}}\",\n        \"keys\": [\n          \"\\\\setjbooklength\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setjbookstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjbookstyle{${1:element%keyvals}}{${2:neuerstil}}\",\n        \"keys\": [\n          \"\\\\setjbookstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setjbooktext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjbooktext{${1:element%keyvals}}{${2:neuertext}}\",\n        \"keys\": [\n          \"\\\\setjbooktext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shortindexingoff\"\n    },\n    {\n      \"name\": \"shortindexingon\"\n    },\n    {\n      \"name\": \"shortpage\"\n    },\n    {\n      \"name\": \"shortpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shortpage[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sub[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sub{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subauthor{${1:zusatztext}}\"\n      }\n    },\n    {\n      \"name\": \"subeightsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subeightsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subeightsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subeightsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subeightsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subeightsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfivesection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfivesection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfivesection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfivesection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfivesection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfivesection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfoursection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfoursection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfoursection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfoursection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subfoursection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfoursection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsevensection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsevensection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsevensection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsevensection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsevensection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsevensection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsixsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsixsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsixsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsixsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsixsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsixsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subthreesection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subthreesection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subthreesection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subthreesection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subthreesection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subthreesection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableofwebcites\"\n    },\n    {\n      \"name\": \"toc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"toc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"TODO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TODO{${1:hinweistext%text}}\"\n      }\n    },\n    {\n      \"name\": \"xref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"appendixchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstartspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combinemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dnrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extrarn[${2:label}]{${1:Erstes}}\"\n      }\n    },\n    {\n      \"name\": \"extrarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrarn{${1:Erstes}}\"\n      }\n    },\n    {\n      \"name\": \"findexproofmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstexaminername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lowcontentsline{${1:URL}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"lowcontentslinex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lowcontentslinex{${1:urldef}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"newindexletter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newindexletter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphtocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondexaminername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"SetJuboPagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subeightsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subeightsectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfivesectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfivesectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfoursectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfoursectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsevensectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsevensectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsixsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsixsectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subthreesectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subthreesectiontocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theextrarunner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therealchapters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therunner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubeightsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfivesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfoursection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsevensection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsixsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubthreesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotaldcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotaldecisions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalnotyets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalsections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalwebcites\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprefname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"decisionlist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/jurabook#c\": [\n      \"allowhyphens\",\n      \"indexpagenumbers\",\n      \"norunners\",\n      \"rnrefbold\",\n      \"oldfootnotes\",\n      \"fncontinued\",\n      \"showpagenumber\",\n      \"suppresswebdates\",\n      \"longfnrule\",\n      \"classiclayout\",\n      \"centeredpartsintoc\",\n      \"centeredlayout\",\n      \"screenmode\",\n      \"compact\",\n      \"decisionhints\",\n      \"overviewwithsec\",\n      \"seminar\",\n      \"chapterprefix\",\n      \"chaptersuffix\",\n      \"fixtocindent\",\n      \"maketime\",\n      \"ruwtitle\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\officialtitle\": [\n      \"goe\",\n      \"trier\",\n      \"stgallen\"\n    ],\n    \"\\\\setjbookstyle\": [\n      \"officialtitle\",\n      \"title\",\n      \"subtitle\",\n      \"author\",\n      \"titledate\",\n      \"publishinfo\",\n      \"publishplace\",\n      \"thanks\",\n      \"from\",\n      \"subauthor\",\n      \"maketime\",\n      \"partintro\",\n      \"part\",\n      \"chapter\",\n      \"tocextras\",\n      \"indexprologue\",\n      \"indextext\",\n      \"lowprologue\",\n      \"lowtext\",\n      \"decisionprologue\",\n      \"decisionemph\",\n      \"decisiontext\"\n    ],\n    \"\\\\setjbooklength\": [\n      \"runnersspace\",\n      \"proofmodetextwidth\",\n      \"proofmodeleftmargin\",\n      \"defaulttocindent\",\n      \"chapterbefore\",\n      \"chapterafter\"\n    ],\n    \"\\\\setjbooktext\": [\n      \"maketime\",\n      \"maketimename\",\n      \"rn\",\n      \"page\",\n      \"overview\",\n      \"indexprologue\",\n      \"cwrevisionopen\",\n      \"cwrevision\",\n      \"cwrevisionclose\",\n      \"lowprologue\",\n      \"lowname\",\n      \"decisionsep\",\n      \"decisionlist\",\n      \"notfinal\",\n      \"decisionprologue\",\n      \"decision\",\n      \"decree\",\n      \"decisionfrom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jurabook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-juraovw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"jurabase\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"formulierung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formulierung{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hand\"\n    },\n    {\n      \"name\": \"jdef\"\n    },\n    {\n      \"name\": \"lonelyhand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lonelyhand{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lonelytriangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lonelytriangle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"merke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"merke{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"okay\"\n    },\n    {\n      \"name\": \"settheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settheme{${1:thema}}{${2:datum}}\"\n      }\n    },\n    {\n      \"name\": \"biggerparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bspname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fall[${2:quelle}]{${1:definitionstext%text}}\"\n      }\n    },\n    {\n      \"name\": \"fall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fall{${1:definitionstext%text}}\"\n      }\n    },\n    {\n      \"name\": \"greybox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"greybox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greybox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greybox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jdef[${2:quelle}]{${1:definitionstext%text}}\"\n      }\n    },\n    {\n      \"name\": \"jdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jdef{${1:definitionstext%text}}\"\n      }\n    },\n    {\n      \"name\": \"lithinweis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lithinweis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"litname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"merkename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetparskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"aufzaehlung\"\n    },\n    {\n      \"name\": \"beispiel\"\n    },\n    {\n      \"name\": \"gesetzestext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:paragraph%text}}{${2:ueberschrift%text}}\"\n      }\n    },\n    {\n      \"name\": \"hands\"\n    },\n    {\n      \"name\": \"hinweis\"\n    },\n    {\n      \"name\": \"stars\"\n    },\n    {\n      \"name\": \"triangles\"\n    },\n    {\n      \"name\": \"uebersicht\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-juraurtl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"jurabase\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"angeklagt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angeklagt{${1:verbrecher}}\"\n      }\n    },\n    {\n      \"name\": \"az\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:aktenzeichen}}\"\n      }\n    },\n    {\n      \"name\": \"beweiswuerdigung\"\n    },\n    {\n      \"name\": \"bl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bl{${1:seitenzahl}}\"\n      }\n    },\n    {\n      \"name\": \"gegen\"\n    },\n    {\n      \"name\": \"gericht\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gericht{${1:gericht}}\"\n      }\n    },\n    {\n      \"name\": \"kosten\"\n    },\n    {\n      \"name\": \"lebenslauf\"\n    },\n    {\n      \"name\": \"lmv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmv{${1:datum}}\"\n      }\n    },\n    {\n      \"name\": \"nextsec\"\n    },\n    {\n      \"name\": \"rechtlichewuerdigung\"\n    },\n    {\n      \"name\": \"richter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"richter{${1:namen}}\"\n      }\n    },\n    {\n      \"name\": \"rjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rjust{${1:ausdruck}}\"\n      }\n    },\n    {\n      \"name\": \"sachverhalt\"\n    },\n    {\n      \"name\": \"straftatbestand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"straftatbestand{${1:tatbestände}}\"\n      }\n    },\n    {\n      \"name\": \"strafzumessung\"\n    },\n    {\n      \"name\": \"urteilsart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urteilsart{${1:typ}}\"\n      }\n    },\n    {\n      \"name\": \"AG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AG{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"drafthintssize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gruendename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gutachtenname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thensec\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"eingerueckt\"\n    },\n    {\n      \"name\": \"gruende\"\n    },\n    {\n      \"name\": \"gutachten\"\n    },\n    {\n      \"name\": \"rubrum\"\n    },\n    {\n      \"name\": \"tatbestand\"\n    },\n    {\n      \"name\": \"tenor\"\n    },\n    {\n      \"name\": \"urteilsformel\"\n    },\n    {\n      \"name\": \"wortlaut\"\n    },\n    {\n      \"name\": \"antraege\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/juraurtl#c\": [\n      \"strafurteil\",\n      \"modern\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/juraurtl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-jwjournal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-einfart\"\n    },\n    {\n      \"name\": \"ProjLib\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/jwjournal#c\": [\n      \"month-day-year\",\n      \"day-month-year\",\n      \"paperstyle=${1|lightyellow,yellow,parchment,green,lightgray,gray,nord,dark|}\",\n      \"scroll\",\n      \"color entry\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/jwjournal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-kaobook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"kao\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setchapterstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterstyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setchapterstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chapterstylebar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstylekao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstylelines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstyleplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setchapterimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterimage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterimage[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"hrulefill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hrulefill[${1:height}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setchapterstyle\": [\n      \"plain\",\n      \"kao\",\n      \"bar\",\n      \"lines\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-kaohandt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"kao\"\n    },\n    {\n      \"name\": \"abstract\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-kdpcover.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iexec\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"textpos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"putSpine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putSpine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"putSpine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"putSpine[${2:imagefile}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"putPicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putPicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"putVolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putVolume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"putPrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putPrice{${1:price}}\"\n      }\n    },\n    {\n      \"name\": \"putBack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putBack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"putTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"putAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putAuthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"putTLDR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putTLDR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"putVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"putCopyright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putCopyright{${1:year}}{${2:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/kdpcover#c\": [\n      \"6x9\",\n      \"7x10\",\n      \"8x10\",\n      \"pages=${1:integer}\",\n      \"barless\",\n      \"pdf=${1:PDF file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/kdpcover#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-kerntest.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kernsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kernsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\documentclass/kerntest#c,\\\\kernsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"testkern\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"testkern{${1:glyph1}}{${2:kerning1}}{${3:glyph2}}{${4:kerning2}}{${5:glyph3}}\"\n      }\n    },\n    {\n      \"name\": \"mtxcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtxcomment{${1:comment}}\"\n      }\n    },\n    {\n      \"name\": \"encodingsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encodingsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\encodingsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defglyphclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defglyphclass{${1:side}}{${2:name}}{${3:glyphlist}}\"\n      }\n    },\n    {\n      \"name\": \"newglyphclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newglyphclass{${1:side}}{${2:name}}{${3:glyphlist}}\"\n      }\n    },\n    {\n      \"name\": \"renewglyphclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewglyphclass{${1:side}}{${2:name}}{${3:glyphlist}}\"\n      }\n    },\n    {\n      \"name\": \"provideglyphclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideglyphclass{${1:side}}{${2:name}}{${3:glyphlist}}\"\n      }\n    },\n    {\n      \"name\": \"forallclasses\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forallclasses{${1:side}}{${2:glyph class}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"forallinclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forallinclass{${1:side}}{${2:name}}{${3:glyph}}{${4:action}}\"\n      }\n    },\n    {\n      \"name\": \"getclassofglyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getclassofglyph{${1:side}}{${2:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"getkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getkern{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getpsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpsname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getpsunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpsunit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getslotnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getslotnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifglyphinclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglyphinclass{${1:side}}{${2:name}}{${3:glyph}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"mtxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mtxfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printglyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printglyph{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"round\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"round{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"saveslotnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveslotnumber{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"stoploop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stoploop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stoploop[${1:var}]\"\n      }\n    },\n    {\n      \"name\": \"writemtxkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"writemtxkern[${4:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"writemtxkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"writemtxkern{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"kerntable\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/kerntest#c\": [\n      \"family=${1:font family}\"\n    ],\n    \"\\\\documentclass/kerntest#c,\\\\kernsetup\": [\n      \"encoding=${1:font encoding}\",\n      \"series=${1:font series}\",\n      \"shape=${1:font shape}\",\n      \"size=\",\n      \"baselineskip=\",\n      \"designsize=\",\n      \"example=${1:text}\",\n      \"papersize=${1:geometry papersize}\",\n      \"extraname=${1:fontname extension}\",\n      \"color\",\n      \"copyquotation\",\n      \"writeall\",\n      \"footer\"\n    ],\n    \"\\\\encodingsetup\": [\n      \"ligaturing=${1:number}\",\n      \"italicizing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/kerntest#c\",\n    \"\\\\documentclass/kerntest#c,\\\\kernsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-kiyou.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"type1cm\",\n      \"if\": \"nomag*\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"everyparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpapersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papersizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/kiyou#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"usemag\",\n      \"nomag\",\n      \"nomag*\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"jis\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"papersize\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/kiyou#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-komacv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"xcolor=table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"xcolor=fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acadtitle\"\n    },\n    {\n      \"name\": \"acadtitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acadtitlestyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"address{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"addresscity\"\n    },\n    {\n      \"name\": \"addressstreet\"\n    },\n    {\n      \"name\": \"addressstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressstyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"addresssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtofooter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtofooter[${2:symbol}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtofooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtofooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"afterelementsvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterquotevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitlevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allbordercolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsecvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citebordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"croplink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem[${5:spacing%l}]{${1:header1%text}}{${2:text1%text}}{${3:header2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem{${1:header1%text}}{${2:text1%text}}{${3:header2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cventry[${7:spacing%l}]{${1:years%text}}{${2:degree/job%text}}{${3:institution%text}}{${4:location%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cventry{${1:years%text}}{${2:degree/job%text}}{${3:institution%text}}{${4:location%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvitem[${3:spacing%l}]{${1:header%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvitem{${1:header%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cvitemwithcomment[${4:spacing%l}]{${1:header%text}}{${2:text}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvitemwithcomment{${1:header%text}}{${2:text}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvlistdoubleitem[${3:spacing%l}]{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvlistdoubleitem{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvlistitem[${2:spacing%l}]{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvlistitem{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvquote\"\n    },\n    {\n      \"name\": \"dbitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\"\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrainfo\"\n    },\n    {\n      \"name\": \"facebook\"\n    },\n    {\n      \"name\": \"facebooksymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familyname\"\n    },\n    {\n      \"name\": \"familynamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynamestyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"faxnr\"\n    },\n    {\n      \"name\": \"faxsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filebordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstname\"\n    },\n    {\n      \"name\": \"firstnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstnamestyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"footerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"github\"\n    },\n    {\n      \"name\": \"githubsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headline[${2:alignment}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\headline\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"headline[${2:alignment}]{${1:type%keyvals}}[${3:content%text}]\",\n        \"keys\": [\n          \"\\\\headline\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headline{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"headline{${1:type}}[${2:content%text}]\"\n      }\n    },\n    {\n      \"name\": \"headlinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlinestyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"hintscolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hintstyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\"\n    },\n    {\n      \"name\": \"homepagesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httpslink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httpslink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"infocolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"linkbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linkedin\"\n    },\n    {\n      \"name\": \"linkedinsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listdbitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemmaincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maincolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menubordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mframepicshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobile\"\n    },\n    {\n      \"name\": \"mobilesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mycolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfkeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phonenr\"\n    },\n    {\n      \"name\": \"phonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"photo[${3:frame type%keyvals}]{${1:width}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\photo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photo{${1:width}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"quotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotestyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"quotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"sepcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sepinfocolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setheadline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setheadlinealignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setheadlinetypename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setheadlinetypetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionstyle{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"title\"\n    },\n    {\n      \"name\": \"titlesepwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalpagemark\"\n    },\n    {\n      \"name\": \"twitter\"\n    },\n    {\n      \"name\": \"twittersymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"compactdesc\"\n    },\n    {\n      \"name\": \"compactenum\"\n    },\n    {\n      \"name\": \"compactitem\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/komacv#c\": [\n      \"color=\",\n      \"xcolor=${1|table,dvipsnames,svgnames,x11names|}\",\n      \"style=${1|classic,casual,oldstyle|}\",\n      \"fontawesome\"\n    ],\n    \"\\\\headline\": [\n      \"name\",\n      \"title\"\n    ],\n    \"\\\\photo\": [\n      \"frame\",\n      \"mframe\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"firstnamefont\",\n      \"familynamefont\",\n      \"acadtitlefont\",\n      \"addressfont\",\n      \"quotefont\",\n      \"hintfont\",\n      \"commentfont\",\n      \"commentmainfont\",\n      \"linkfont\",\n      \"httplinkfont\",\n      \"httpslinkfont\",\n      \"emaillinkfont\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/komacv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-l3doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"doc\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"trace\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"underscore\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"hypdoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfstringnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"IniTeX\"\n    },\n    {\n      \"name\": \"Lua\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"pTeX\"\n    },\n    {\n      \"name\": \"upTeX\"\n    },\n    {\n      \"name\": \"epTeX\"\n    },\n    {\n      \"name\": \"eupTeX\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmd[${2:options%keyvals}]{${1:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\cmd#c,\\\\cs#c,\\\\tn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cs[${2:options%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\cmd#c,\\\\cs#c,\\\\tn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tn{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tn[${2:options%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\cmd#c,\\\\cs#c,\\\\tn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"EnableDocumentation\"\n    },\n    {\n      \"name\": \"EnableImplementation\"\n    },\n    {\n      \"name\": \"DisableDocumentation\"\n    },\n    {\n      \"name\": \"DisableImplementation\"\n    },\n    {\n      \"name\": \"CodedocExplain\"\n    },\n    {\n      \"name\": \"CodedocExplainEXP\"\n    },\n    {\n      \"name\": \"CodedocExplainREXP\"\n    },\n    {\n      \"name\": \"CodedocExplainTF\"\n    },\n    {\n      \"name\": \"testfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testfile*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MacroLongFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestFiles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestFiles{${1:list of files%file}}\"\n      }\n    },\n    {\n      \"name\": \"UnitTested\"\n    },\n    {\n      \"name\": \"TestMissing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestMissing{${1:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOption[${2:options}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"PrintOptionName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintOptionName{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"manual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbend\"\n    },\n    {\n      \"name\": \"NB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NB{${1:tag%text}}{${2:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"TemplateArgument\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TemplateArgument{${1:arg no}}{${2:meaning}}\"\n      }\n    },\n    {\n      \"name\": \"TemplateSemantics\"\n    },\n    {\n      \"name\": \"TemplateKey\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TemplateKey{${1:key name}}{${2:type}}{${3:description%text}}{${4:default value}}\"\n      }\n    },\n    {\n      \"name\": \"InstanceKey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InstanceKey{${1:key name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"InstanceSemantics\"\n    },\n    {\n      \"name\": \"DocInputAgain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DocInclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocInclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"currentfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"docincludeaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"documentation\"\n    },\n    {\n      \"name\": \"implementation\"\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:function%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:type%keyvals}]{${1:function%cmd}}\",\n        \"keys\": [\n          \"\\\\begin{function}#c,\\\\begin{variable}#c,\\\\begin{macro}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"variable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"variable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:variable%cmd}}\",\n        \"keys\": [\n          \"\\\\begin{function}#c,\\\\begin{variable}#c,\\\\begin{macro}#c\",\n          \"\\\\begin{variable}#c,\\\\begin{macro}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro1,macro2,...%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"macro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:macro1,macro2,...%cmd}}\",\n        \"keys\": [\n          \"\\\\begin{function}#c,\\\\begin{variable}#c,\\\\begin{macro}#c\",\n          \"\\\\begin{variable}#c,\\\\begin{macro}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"syntax\"\n    },\n    {\n      \"name\": \"texnote\"\n    },\n    {\n      \"name\": \"arguments\"\n    },\n    {\n      \"name\": \"optionenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"danger\"\n    },\n    {\n      \"name\": \"ddanger\"\n    },\n    {\n      \"name\": \"NOTE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag%text}}\"\n      }\n    },\n    {\n      \"name\": \"TemplateInterfaceDescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:template type name}}\"\n      }\n    },\n    {\n      \"name\": \"TemplateDescription\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:template type name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"InstanceDescription\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:template type name}}{${2:instance name}}{${3:template name}}\"\n      }\n    },\n    {\n      \"name\": \"InstanceDescription\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:text for key colwidth}]{${1:template type name}}{${2:instance name}}{${3:template name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/l3doc#c\": [\n      \"full\",\n      \"onlydoc\",\n      \"check\",\n      \"checktest\",\n      \"kernel\",\n      \"stdmodule\",\n      \"lm-default\",\n      \"cs-break\",\n      \"cs-break-nohyphen\",\n      \"show-notes\",\n      \"hide-notes\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\cmd#c,\\\\cs#c,\\\\tn#c\": [\n      \"index=${1:name}\",\n      \"no-index\",\n      \"module=${1:module}\",\n      \"replace\"\n    ],\n    \"\\\\begin{function}#c,\\\\begin{variable}#c,\\\\begin{macro}#c\": [\n      \"EXP\",\n      \"rEXP\",\n      \"TF\",\n      \"pTF\",\n      \"noTF\",\n      \"added=${1:date}\",\n      \"updated=${1:date}\",\n      \"deprecated\",\n      \"no-user-doc\",\n      \"label=\",\n      \"verb\",\n      \"module=\"\n    ],\n    \"\\\\begin{variable}#c,\\\\begin{macro}#c\": [\n      \"int\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/l3doc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-labbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"makeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theHexperiment\",\n      \"if\": \"hyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHlabday\",\n      \"if\": \"hyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubexperiment\",\n      \"if\": \"hyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubfigure\",\n      \"if\": \"hyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labday\"\n    },\n    {\n      \"name\": \"experiment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"experiment{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"experiment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"experiment[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"experiment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"experiment*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subexperiment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexperiment{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subexperiment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subexperiment[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subexperiment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexperiment*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newexperiment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newexperiment{${1:abbrev}}{${2:long form%text}}\"\n      }\n    },\n    {\n      \"name\": \"newexperiment\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newexperiment{${1:abbrev}}[${3:short form%text}]{${2:long form%text}}\"\n      }\n    },\n    {\n      \"name\": \"newsubexperiment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsubexperiment{${1:abbrev}}{${2:long form%text}}\"\n      }\n    },\n    {\n      \"name\": \"newsubexperiment\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newsubexperiment{${1:abbrev}}[${3:short form%text}]{${2:long form%text}}\"\n      }\n    },\n    {\n      \"name\": \"experimentmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"experimentmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subexperimentmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexperimentmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"theexperiment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelabday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubexperiment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/labbook#c\": [\n      \"hyperref\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/labbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-langscibook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"langsci-affiliations\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pst-barcode\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"index\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"chngcntr\"\n    },\n    {\n      \"name\": \"langsci-bidi\",\n      \"if\": \"arabicfont\"\n    },\n    {\n      \"name\": \"xeCJK\",\n      \"if\": \"booklanguage=chinese\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"proofs\"\n    },\n    {\n      \"name\": \"soul\",\n      \"if\": \"showindex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arabicfont\",\n      \"if\": \"arabicfont\"\n    },\n    {\n      \"name\": \"textarab\",\n      \"if\": \"arabicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarab{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"babelshorthands\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"babelshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"booklanguage=german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"booklanguage=german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cn\",\n      \"if\": \"chinesefont\"\n    },\n    {\n      \"name\": \"hebrewfont\",\n      \"if\": \"hebrewfont\"\n    },\n    {\n      \"name\": \"jpn\",\n      \"if\": \"japanesefont\"\n    },\n    {\n      \"name\": \"krn\",\n      \"if\": \"koreanfont\"\n    },\n    {\n      \"name\": \"syriacfont\",\n      \"if\": \"syriacfont\"\n    },\n    {\n      \"name\": \"cn\",\n      \"if\": \"tblseight\"\n    },\n    {\n      \"name\": \"lsSaveValueTopSkip\",\n      \"if\": \"uniformtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSaveValueTextTop\",\n      \"if\": \"uniformtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSaveValueTextBottom\",\n      \"if\": \"uniformtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorebottom\",\n      \"if\": \"uniformtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sloppybottom\",\n      \"if\": \"uniformtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AdditionalFontImprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdditionalFontImprint{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"appendixsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"appendixsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"authorToBib\"\n    },\n    {\n      \"name\": \"BackBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BackBody{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"backcover*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backcover*{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"backcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backcover{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"BackTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BackTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BookDOI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BookDOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"ccby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbynd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccbysa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterDOI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterDOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"chaptersubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptersubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coverbottomtext\"\n    },\n    {\n      \"name\": \"coverbottomtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"coverbottomtext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"covergeometry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"covergeometry{${1:margin%l}}{${2:height}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"coversetup\"\n    },\n    {\n      \"name\": \"eachwordone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigram{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigramsource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigramsource{${1:source}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnoteindex{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"frontcovertoptext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"frontcovertoptext[${3:color}]{${1:width}}{${2:fontsize%l}}\"\n      }\n    },\n    {\n      \"name\": \"frontcovertoptext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frontcovertoptext{${1:width}}{${2:fontsize%l}}\"\n      }\n    },\n    {\n      \"name\": \"githubtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ia{${1:author entry}}\"\n      }\n    },\n    {\n      \"name\": \"iai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iai{${1:author entry}}\"\n      }\n    },\n    {\n      \"name\": \"iasa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iasa{${1:entry}}{${2:seealso}}\"\n      }\n    },\n    {\n      \"name\": \"igobble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"il\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"il{${1:language entry}}\"\n      }\n    },\n    {\n      \"name\": \"ili\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ili{${1:language entry}}\"\n      }\n    },\n    {\n      \"name\": \"illustrator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"illustrator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ilsa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ilsa{${1:entry}}{${2:seealso}}\"\n      }\n    },\n    {\n      \"name\": \"includechapterfooterlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includepaper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepaper{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includepublisherlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includespinelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includestoragelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"infn{${1:page}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"is\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"is{${1:subject entry}}\"\n      }\n    },\n    {\n      \"name\": \"ISBNdigital\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBNdigital{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"ISBNhardcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBNhardcover{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"ISBNsoftcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBNsoftcover{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"ISBNsoftcoverus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBNsoftcoverus{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"isi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isi{${1:subject entry}}\"\n      }\n    },\n    {\n      \"name\": \"issa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"issa{${1:entry}}{${2:seealso}}\"\n      }\n    },\n    {\n      \"name\": \"langsciseealso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logotext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsAbbreviationsTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsAcknowledgementTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsAdditionalFontsImprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBackBody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBackBodyFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBackPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBackTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBackTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBiblatexBackend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookDOI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguageChinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguageEnglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguageFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguageGerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguagePortuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsBookLanguageSpanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsChapterDOI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsChapterFooterSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionEditor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionMetadataToBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsCollectionMetadataToBibliography{${1:bibdata}}\"\n      }\n    },\n    {\n      \"name\": \"lsCollectionPaperAbstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperCitation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperCitationText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperFirstPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperFooterTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionPaperLastPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCollectionTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsConditionalSetupForPaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsConditionalSetupForPaper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lsConditionalSetupForPaper[${1:bib resource}]\"\n      }\n    },\n    {\n      \"name\": \"lsCopyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverAuthorFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverBlockColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverFontColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverSeriesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverSeriesHistoryFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverSubTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverTitleFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsCoverTitleFont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"lsCoverTitleFontBaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverTitleFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsCoverTitleSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lsCoverTitleSizes{${1:fontsize%l}}{${2:baselineskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"lsDedication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsDedicationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsDetermineMultiauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsDeterminePaperAuthorAffiliationIndexing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsDetermineSpineWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsDetermineSpineWidth{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lsDetermineSpineWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lsDetermineSpineWidth[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lsEditorPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsEditorSuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsFontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsFrontPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsImpressum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsImpressumCitationText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsImpressumExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsIndexTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsInsideFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISBNcover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISBNdigital\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISBNhardcover\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lsISBNhardcover[${2:addon}]{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"lsISBNhardcoverTwoDigitAddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISBNsoftcover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISBNsoftcoverus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISSNelectronic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsISSNprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsLanguageIndexTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsLicenseInformation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsLicenseInformation{${1:copyright}}\"\n      }\n    },\n    {\n      \"name\": \"lsNameIndexTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputBook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputCoverBODhc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputCoverBODsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputCoverCS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputGuidelines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsOutputPaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsPageStyleEmpty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsPrefaceTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LSPTmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsReferencesTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSaveValueTextBottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSaveValueTextTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSaveValueTopSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSchmutztitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeeAlsoTerm\"\n    },\n    {\n      \"name\": \"lsSeries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesHistory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesHistoryWheel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lsSeriesHistoryWheel[${2:maxitems}]{${1:items}}\"\n      }\n    },\n    {\n      \"name\": \"lsSeriesHistoryWheel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsSeriesHistoryWheel{${1:items}}\"\n      }\n    },\n    {\n      \"name\": \"lsSeriesNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSpineAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSpineAuthorFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSpineTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSpineTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSpinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSubjectIndexTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsURL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsYear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"name[${3:index entry}]{${1:first name}}{${2:last name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"name{${1:first name}}{${2:last name}}\"\n      }\n    },\n    {\n      \"name\": \"newlineCover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlineSpine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlineTOC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openreviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openreviewer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"paperhivetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papernote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"papernote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"proofreader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proofreader{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"publisherstreetaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisherurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seitenbreite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seitenhoehe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Series\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Series{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"SeriesNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SeriesNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setuptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitlerunninghead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitlerunninghead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SpineAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpineAuthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"SpineTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpineTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storageinstitution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsectionmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsubsectionmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsubsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theappendixsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleTemp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleToHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleToToC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"typesetter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"xelatex\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"citetv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetv[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetv[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetv{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyeartv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyeartv[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyeartv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyeartv[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyeartv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyeartv{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcitetv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textcitetv[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcitetv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcitetv[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"textcitetv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcitetv{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencitetv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"parencitetv[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencitetv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parencitetv[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"parencitetv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parencitetv{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteFooter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullciteFooter[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteFooter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteFooter[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteFooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteFooter{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteImprint\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullciteImprint[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteImprint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullciteImprint[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullciteImprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullciteImprint{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"CiteFullAuthorList\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"CiteFullAuthorList[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"CiteFullAuthorList\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CiteFullAuthorList[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"CiteFullAuthorList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CiteFullAuthorList{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"posscitet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"posscitet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posscitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"posscitealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"posscitealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"posscitealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posscitealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"possciteauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"possciteauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"possciteauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"possciteauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"possciteauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"possciteauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ahl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cogl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dummyseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eotms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eotmsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eurosla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ela\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guidelines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hpls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesFontColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsSeriesTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmwe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"silp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgdi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmnlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"booklanguage=french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"booklanguage=french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"booklanguage=french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"modquote\"\n    },\n    {\n      \"name\": \"modquote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"paperappendix\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/langscibook#c\": [\n      \"arabicfont\",\n      \"babelshorthands\",\n      \"biblatexbackend=${1|bibtex,bibtex8,biber|}\",\n      \"booklanguage=${1:language}\",\n      \"chinesefont\",\n      \"classicfloatnumbers\",\n      \"collection\",\n      \"collectiontoclong\",\n      \"copyright=${1:copyright}\",\n      \"decapbib\",\n      \"draftmode\",\n      \"hebrewfont\",\n      \"japanesefont\",\n      \"koreanfont\",\n      \"minimal\",\n      \"multiauthors\",\n      \"nobabel\",\n      \"oldstylenumbers\",\n      \"openreview\",\n      \"output=${1|book,paper,minimal,guidelines|}\",\n      \"proofs\",\n      \"showindex\",\n      \"smallfont\",\n      \"spinewidth=\",\n      \"syriacfont\",\n      \"infn\",\n      \"uniformtopskip\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/langscibook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-leadsheet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"leadsheets\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"zref-totpages\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"instruction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instruction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choir{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsenparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsenparen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkinstruction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkinstruction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkchoir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkchoir{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mklsenparens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mklsenparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mklsenparen{${1:open paren}}{${2:closing paren}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"prechorus\"\n    },\n    {\n      \"name\": \"prechorus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{prechorus}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{prechorus}\": [\n      \"format={${1:code}}\",\n      \"label-format={${1:code}}\",\n      \"class={${1:class name}}\",\n      \"after-label={${1:code}}\",\n      \"name=${1:name}\",\n      \"template=${1:template}\",\n      \"numbered\",\n      \"named\",\n      \"recall-chords={${1:env-class}}\",\n      \"verses-format={${1:code}}\",\n      \"verses-label-format={${1:code}}\",\n      \"verses-after-label={${1:code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-leaflet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmargins{${1:top%l}}{${2:bottom%l}}{${3:left%l}}{${4:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"CutLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CutLine{${1:page num}}\"\n      }\n    },\n    {\n      \"name\": \"CutLine*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CutLine*{${1:page num}}\"\n      }\n    },\n    {\n      \"name\": \"AddToBackground\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToBackground{${1:page num}}{${2:picture commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AddToBackground*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToBackground*{${1:page num}}{${2:picture commands%definition}}\"\n      }\n    },\n    {\n      \"name\": \"noparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldmarkrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldmarklength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Scissors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflandscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landscapetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landscapefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftumble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tumbletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tumblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftwopart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoparttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twopartfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffoldcorr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldcorrtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldcorrfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/leaflet#c\": [\n      \"dvips\",\n      \"pdftex\",\n      \"vtex\",\n      \"dvipdfm\",\n      \"twoside\",\n      \"twocolumn\",\n      \"landscape\",\n      \"portrait\",\n      \"debug\",\n      \"twopart\",\n      \"notwopart\",\n      \"nospecialtricks\",\n      \"a3paper\",\n      \"combine\",\n      \"nocombine\",\n      \"frontside\",\n      \"backside\",\n      \"bothsides\",\n      \"tumble\",\n      \"notumble\",\n      \"foldmark\",\n      \"nofoldmark\",\n      \"foldcorr\",\n      \"nofoldcorr\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/leaflet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-lebhart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"colorist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"fast=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongequal{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightrightarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightrightarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftleftarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftleftarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"loweredvdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"unusual\": true,\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"unicodevdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"limstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisesymbol{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/lebhart#c\": [\n      \"draft\",\n      \"fast\",\n      \"a4paper\",\n      \"b5paper\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/lebhart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-letgut.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"biolinum\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fourier-orns\"\n    },\n    {\n      \"name\": \"pgfornament\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"bxtexlogo\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"standalone\"\n    },\n    {\n      \"name\": \"attachfile2\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"ninecolors\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"tabularraylibrarybooktabs\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"acro\"\n    },\n    {\n      \"name\": \"xurl\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"letgut-banner\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarydocumentation\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"letgutsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letgutsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\letgutsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputarticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputarticle{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputarticle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputarticle*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:short subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"person\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"person{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"person*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"person*{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"author*{${1:données}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"package[${2:URL}]{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"package*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package*{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"package*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"package*{${1:package%plain}}[${2:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"package*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"package*[${2:URL}]{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"package*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"package*[${2:URL}]{${1:package%plain}}[${3:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"class{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"class[${2:URL}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"class*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"class*{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"class*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"class*{${1:class%plain}}[${2:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"class*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"class*[${2:URL}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"class*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"class*[${2:URL}]{${1:class%plain}}[${3:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"software\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"software{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"software\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"software[${2:URL}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"software*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"software*{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"software*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"software*{${1:nom}}[${2:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"software*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"software*[${2:URL}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"software*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"software*[${2:URL}]{${1:nom}}[${3:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"file*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file*{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"file*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"file*{${1:nom}}[${2:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"foreignloc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreignloc{${1:locution}}\"\n      }\n    },\n    {\n      \"name\": \"latinloc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latinloc{${1:locution}}\"\n      }\n    },\n    {\n      \"name\": \"Ucode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ucode{${1:point de code}}\"\n      }\n    },\n    {\n      \"name\": \"Ucode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ucode[${2:nom%text}]{${1:point de code}}\"\n      }\n    },\n    {\n      \"name\": \"gutenberg\"\n    },\n    {\n      \"name\": \"gut\"\n    },\n    {\n      \"name\": \"assogut\"\n    },\n    {\n      \"name\": \"Assogut\"\n    },\n    {\n      \"name\": \"lettres\"\n    },\n    {\n      \"name\": \"lettresgut\"\n    },\n    {\n      \"name\": \"cahier\"\n    },\n    {\n      \"name\": \"cahiers\"\n    },\n    {\n      \"name\": \"cahiergut\"\n    },\n    {\n      \"name\": \"cahiersgut\"\n    },\n    {\n      \"name\": \"letgut\"\n    },\n    {\n      \"name\": \"letgutcls\"\n    },\n    {\n      \"name\": \"knuth\"\n    },\n    {\n      \"name\": \"lamport\"\n    },\n    {\n      \"name\": \"tl\"\n    },\n    {\n      \"name\": \"tugboat\"\n    },\n    {\n      \"name\": \"linux\"\n    },\n    {\n      \"name\": \"macos\"\n    },\n    {\n      \"name\": \"windows\"\n    },\n    {\n      \"name\": \"lettrenumber\"\n    },\n    {\n      \"name\": \"lettrenumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettrenumber[${1:entier relatif signé}]\"\n      }\n    },\n    {\n      \"name\": \"lettrenumber*\"\n    },\n    {\n      \"name\": \"lettrenumber*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettrenumber*[${1:entier relatif signé}]\"\n      }\n    },\n    {\n      \"name\": \"lettre\"\n    },\n    {\n      \"name\": \"lettre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettre[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"lettre*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettre*[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"lettregut\"\n    },\n    {\n      \"name\": \"lettregut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettregut[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"lettregut*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lettregut*[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"syntaxhl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syntaxhl{${1:liste de dialectes}}\"\n      }\n    },\n    {\n      \"name\": \"syntaxhl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"syntaxhl[${2:langage}]{${1:liste de dialectes}}\"\n      }\n    },\n    {\n      \"name\": \"terminal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"terminal{${1:stdin%definition}}{${2:stdout%definition}}\"\n      }\n    },\n    {\n      \"name\": \"terminal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"terminal[${3:prompt}]{${1:stdin%definition}}{${2:stdout%definition}}\"\n      }\n    },\n    {\n      \"name\": \"terminal\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"terminal[${3:prompt}][${4:options%keyvals}]{${1:stdin%definition}}{${2:stdout%definition}}\",\n        \"keys\": [\n          \"\\\\begin{ltx-code},\\\\begin{ltx-code-result},\\\\begin{ltx-code-external-result},\\\\terminal,\\\\begin{announcement},\\\\begin{rebus},\\\\rebussolution\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"item*\"\n    },\n    {\n      \"name\": \"item*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"item*[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"francophony\"\n    },\n    {\n      \"name\": \"letgutacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letgutacro{${1:COURT}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"letgutacro\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"letgutacro{${1:COURT}}{${2:long}}[${3:traduction française}]\"\n      }\n    },\n    {\n      \"name\": \"letgutacro\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"letgutacro[${3:options%keyvals}]{${1:COURT}}{${2:long}}\",\n        \"keys\": [\n          \"\\\\letgutacro#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"letgutacro\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"letgutacro[${3:options%keyvals}]{${1:COURT}}{${2:long}}[${4:traduction française}]\",\n        \"keys\": [\n          \"\\\\letgutacro#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"separator\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"rebussolution\"\n    },\n    {\n      \"name\": \"rebussolution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rebussolution[${1:solution}]\"\n      }\n    },\n    {\n      \"name\": \"rebussolution\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rebussolution[${1:solution}][${2:numéro}]\"\n      }\n    },\n    {\n      \"name\": \"rebussolution\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"rebussolution[${1:solution}][${2:numéro}][${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ltx-code},\\\\begin{ltx-code-result},\\\\begin{ltx-code-external-result},\\\\terminal,\\\\begin{announcement},\\\\begin{rebus},\\\\rebussolution\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"alertbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alertbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alertbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alertbox[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"letgutissn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wcag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"html\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"css\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"os\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smtp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wysiwyg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"off\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nfss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ascii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"irem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rgpd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndlr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apmep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaysolutions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofcontributors\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ctannews\"\n    },\n    {\n      \"name\": \"bookreview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caractéristiques%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{bookreview}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"announcement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"announcement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:titre%text}}\",\n        \"keys\": [\n          \"\\\\begin{ltx-code},\\\\begin{ltx-code-result},\\\\begin{ltx-code-external-result},\\\\terminal,\\\\begin{announcement},\\\\begin{rebus},\\\\rebussolution\",\n          \"\\\\begin{announcement}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rebus\"\n    },\n    {\n      \"name\": \"rebus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ltx-code},\\\\begin{ltx-code-result},\\\\begin{ltx-code-external-result},\\\\terminal,\\\\begin{announcement},\\\\begin{rebus},\\\\rebussolution\",\n          \"\\\\begin{rebus}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\letgutsetup\": [\n      \"for-readers\",\n      \"for-authors\",\n      \"draft\",\n      \"final\",\n      \"screen\",\n      \"paper\",\n      \"number=${1:numéro}\",\n      \"date=${1:année}-${2:mois}\",\n      \"pagecolor={${1:r,g,b}}\",\n      \"allcolorslinks=\",\n      \"membership-reminder\",\n      \"editorial\",\n      \"informations\",\n      \"detailedtoc=${1|section,subsection,subsubsection,paragraph,subparagraph,all,none|}\",\n      \"reverse-files-attachement\",\n      \"watermark letter=${1:letter}\",\n      \"watermark scale=${1:factor}\"\n    ],\n    \"\\\\begin{bookreview}\": [\n      \"title=${1:titre}\",\n      \"reviewer=${1:rapporteur}\",\n      \"bibkey=${1:clé}\",\n      \"frontcover=${1:fichier}\",\n      \"price=${1:prix}\"\n    ],\n    \"\\\\letgutacro#c\": [\n      \"short={${1:text}}\",\n      \"long={${1:text}}\",\n      \"alt={${1:text}}\",\n      \"extra={${1:text}}\",\n      \"foreign={${1:text}}\",\n      \"long-post={${1:text}}\",\n      \"post={${1:text}}\",\n      \"sort={${1:text}}\",\n      \"tag={${1:csv list}}\",\n      \"before-citation={${1:csv list}}\",\n      \"index-sort={${1:text}}\",\n      \"short-plural={${1:text}}\",\n      \"short-plural-form={${1:text}}\",\n      \"long-plural={${1:text}}\",\n      \"long-plural-form={${1:text}}\",\n      \"alt-plural={${1:text}}\",\n      \"alt-plural-form={${1:text}}\",\n      \"foreign-plural={${1:text}}\",\n      \"foreign-plural-form={${1:text}}\",\n      \"plural={${1:text}}\",\n      \"plural-form={${1:text}}\",\n      \"short-indefinite={${1:text}}\",\n      \"long-indefinite={${1:text}}\",\n      \"alt-indefinite={${1:text}}\",\n      \"pdfstring=${1:string}\",\n      \"pdfcomment={${1:text}}\",\n      \"short-acc={${1:text}}\",\n      \"long-acc={${1:text}}\",\n      \"alt-acc={${1:text}}\",\n      \"foreign-acc={${1:text}}\",\n      \"foreign-acc-plural-form={${1:text}}\",\n      \"extra-acc={${1:text}}\",\n      \"single-acc={${1:text}}\",\n      \"list-acc={${1:text}}\",\n      \"list={${1:text}}\",\n      \"foreign-babel=${1:language}\",\n      \"foreign-locale=${1:language}\",\n      \"preset=${1:set name}\",\n      \"uselist={${1:csv list of ids}}\",\n      \"case-sensitive\",\n      \"case-insensitive\",\n      \"first-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"subsequent-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single-style=${1|long-short,short-long,short,long,footnote|}\",\n      \"single={${1:text}}\",\n      \"use-id-as-short\",\n      \"cite=[${1:prenote}][${2:postnote}]{${3:citation keys}}\",\n      \"index={${1:text}}\",\n      \"index-sort={${1:text}}\",\n      \"no-index\",\n      \"format={${1:code}}\",\n      \"short-format={${1:code}}\",\n      \"long-format={${1:code}}\",\n      \"first-long-format={${1:code}}\",\n      \"alt-format={${1:code}}\",\n      \"extra-format={${1:code}}\",\n      \"foreign-format={${1:code}}\",\n      \"single-format={${1:code}}\",\n      \"list-format={${1:code}}\"\n    ],\n    \"\\\\begin{ltx-code},\\\\begin{ltx-code-result},\\\\begin{ltx-code-external-result},\\\\terminal,\\\\begin{announcement},\\\\begin{rebus},\\\\rebussolution\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignore|}\",\n      \"savelowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"every box on higher layers/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"nameref=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"graphical environment=${1:envname}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\",\n      \"\",\n      \"listing options={${1:listings options}}\",\n      \"no listing options\",\n      \"listing style=${1:style}\",\n      \"listing inputencoding=${1:encoding}\",\n      \"listing remove caption\",\n      \"every listing line=${1:text}\",\n      \"every listing line*=${1:text}\",\n      \"listing engine=${1|listings,minted|}\",\n      \"listing file=${1:file name}\",\n      \"listing and text\",\n      \"text and listing\",\n      \"listing only\",\n      \"text only\",\n      \"comment=${1:text}\",\n      \"comment only\",\n      \"image comment={${1:graphics options}}{${2:file}}\",\n      \"tcbimage comment=${1:file name}\",\n      \"pdf comment\",\n      \"pdf comment=${1:file name}\",\n      \"pdf extension=${1:extension}\",\n      \"comment style={${1:options}}\",\n      \"listing and comment\",\n      \"comment and listing\",\n      \"listing side text\",\n      \"text side listing\",\n      \"listing outside text\",\n      \"text outside listing\",\n      \"listing side comment\",\n      \"comment side listing\",\n      \"listing outside comment\",\n      \"comment outside listing\",\n      \"listing above text\",\n      \"listing above* text\",\n      \"text above listing\",\n      \"text above* listing\",\n      \"listing above comment\",\n      \"listing above* comment\",\n      \"comment above listing\",\n      \"comment above* listing\",\n      \"no process\",\n      \"process code={${1:code}}\",\n      \"run system command=${1:system command}\",\n      \"compilable listing\",\n      \"run pdflatex=${1:arguments}\",\n      \"run pdflatex\",\n      \"run xelatex=${1:arguments}\",\n      \"run xelatex\",\n      \"run lualatex=${1:arguments}\",\n      \"run lualatex\",\n      \"run makeindex=${1:arguments}\",\n      \"run makeindex\",\n      \"run bibtex=${1:arguments}\",\n      \"run bibtex\",\n      \"run biber=${1:arguments}\",\n      \"run biber\",\n      \"run arara=${1:arguments}\",\n      \"run arara\",\n      \"run latex=${1:arguments}\",\n      \"run latex\",\n      \"run dvips=${1:arguments}\",\n      \"run dvips\",\n      \"run ps2pdf=${1:arguments}\",\n      \"run ps2pdf\",\n      \"freeze file=${1:file}\",\n      \"freeze none\",\n      \"freeze extension=${1:text}\",\n      \"freeze pdf\",\n      \"freeze png\",\n      \"freeze jpg\",\n      \"\",\n      \"breakable\",\n      \"breakable=${1|true,false,unlimited|}\",\n      \"unbreakable\",\n      \"enforce breakable\",\n      \"title after break=${1:text}\",\n      \"notitle after break\",\n      \"adjusted title after break=${1:text}\",\n      \"lines before break=${1:number}\",\n      \"break at=${1:length1/length2/...}\",\n      \"enlargepage=${1:length1/length2/...}\",\n      \"enlargepage flexible=\",\n      \"compress page\",\n      \"compress page=${1|all,baselineskip,none|}\",\n      \"shrink break goal=\",\n      \"use color stack\",\n      \"toprule at break=\",\n      \"bottomrule at break=\",\n      \"topsep at break=\",\n      \"bottomsep at break=\",\n      \"pad before break=\",\n      \"pad before break*=\",\n      \"pad after break=\",\n      \"pad at break=\",\n      \"pad at break*=\",\n      \"height fixed for=${1|none,first,middle,last,first and middle,middle and last,all|}\",\n      \"vfill before first\",\n      \"segmentation at break\",\n      \"extras={${1:options}}\",\n      \"no extras\",\n      \"extras broken={${1:options}}\",\n      \"extras unbroken={${1:options}}\",\n      \"no extras unbroken\",\n      \"extras first={${1:options}}\",\n      \"no extras first\",\n      \"extras middle={${1:options}}\",\n      \"no extras middle\",\n      \"extras last={${1:options}}\",\n      \"no extras last\",\n      \"extras unbroken and first={${1:options}}\",\n      \"extras middle and last={${1:options}}\",\n      \"extras unbroken and last={${1:options}}\",\n      \"extras first and middle={${1:options}}\",\n      \"extras title after break={${1:options}}\",\n      \"no extras title after break\",\n      \"\",\n      \"frame style={${1:TikZ options}}\",\n      \"frame style image=${1:file name}\",\n      \"frame style tile={${1:graphics options}}{${2:file}}\",\n      \"frame hidden\",\n      \"interior style={${1:TikZ options}}\",\n      \"interior style image=${1:file name}\",\n      \"interior style tile={${1:graphics options}}{${2:file}}\",\n      \"interior hidden\",\n      \"segmentation style={${1:TikZ options}}\",\n      \"segmentation hidden\",\n      \"title style={${1:TikZ options}}\",\n      \"title style image=${1:file name}\",\n      \"title style tile={${1:graphics options}}{${2:file}}\",\n      \"title hidden\",\n      \"titlerule style={${1:TikZ options}}\",\n      \"attach boxed title to top left\",\n      \"attach boxed title to top left={${1:boxtitle options}}\",\n      \"attach boxed title to top text left\",\n      \"attach boxed title to top text left={${1:boxtitle options}}\",\n      \"attach boxed title to top center\",\n      \"attach boxed title to top center={${1:boxtitle options}}\",\n      \"attach boxed title to top right\",\n      \"attach boxed title to top right={${1:boxtitle options}}\",\n      \"attach boxed title to top text right\",\n      \"attach boxed title to top text right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom left\",\n      \"attach boxed title to bottom left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text left\",\n      \"attach boxed title to bottom text left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom center\",\n      \"attach boxed title to bottom center={${1:boxtitle options}}\",\n      \"attach boxed title to bottom right\",\n      \"attach boxed title to bottom right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text right\",\n      \"attach boxed title to bottom text right={${1:boxtitle options}}\",\n      \"attach boxed title to top\",\n      \"attach boxed title to top={${1:boxtitle options}}\",\n      \"attach boxed title to top*\",\n      \"attach boxed title to top*={${1:boxtitle options}}\",\n      \"attach boxed title to bottom\",\n      \"attach boxed title to bottom={${1:boxtitle options}}\",\n      \"attach boxed title to bottom*\",\n      \"attach boxed title to bottom*={${1:boxtitle options}}\",\n      \"flip title\",\n      \"flip title={${1:boxtitle options}}\",\n      \"boxed title size=${1|title,standard,copy|}\",\n      \"boxed title style={${1:options}}\",\n      \"no boxed title style\",\n      \"hbox boxed title\",\n      \"minipage boxed title\",\n      \"minipage boxed title=\",\n      \"minipage boxed title*\",\n      \"minipage boxed title*=\",\n      \"tikznode boxed title={${1:TikZ options}}\",\n      \"varwidth boxed title\",\n      \"varwidth boxed title=\",\n      \"varwidth boxed title*\",\n      \"varwidth boxed title*=\",\n      \"watermark text=${1:text}\",\n      \"watermark text on=${1:part} is ${2:text}\",\n      \"watermark graphics=${1:file name}\",\n      \"watermark graphics on=${1:part} is ${2:file}\",\n      \"watermark tikz={${1:code}}\",\n      \"watermark tikz on=${1:part} is ${2:code}\",\n      \"no watermark\",\n      \"watermark opacity=${1:fraction}\",\n      \"watermark zoom=${1:fraction}\",\n      \"watermark shrink=${1:fraction}\",\n      \"watermark overzoom=${1:fraction}\",\n      \"watermark stretch=${1:fraction}\",\n      \"watermark color=\",\n      \"clip watermark\",\n      \"clip title\",\n      \"clip upper\",\n      \"clip lower\",\n      \"borderline={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no borderline\",\n      \"show bounding box\",\n      \"show bounding box=\",\n      \"borderline north={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline south={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline east={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline west={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline horizontal={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline vertical={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no shadow\",\n      \"drop shadow\",\n      \"drop shadow=\",\n      \"drop fuzzy shadow\",\n      \"drop fuzzy shadow=\",\n      \"drop midday shadow\",\n      \"drop midday shadow=\",\n      \"drop fuzzy midday shadow\",\n      \"drop fuzzy midday shadow=\",\n      \"halo\",\n      \"halo=${1:size} with ${2:color}\",\n      \"fuzzy halo\",\n      \"fuzzy halo=${1:size} with ${2:color}\",\n      \"drop shadow southeast\",\n      \"drop shadow southeast=\",\n      \"drop shadow south\",\n      \"drop shadow south=\",\n      \"drop shadow southwest\",\n      \"drop shadow southwest=\",\n      \"drop shadow west\",\n      \"drop shadow west=\",\n      \"drop shadow northwest\",\n      \"drop shadow northwest=\",\n      \"drop shadow north\",\n      \"drop shadow north=\",\n      \"drop shadow northeast\",\n      \"drop shadow northeast=\",\n      \"drop shadow east\",\n      \"drop shadow east=\",\n      \"drop fuzzy shadow southeast\",\n      \"drop fuzzy shadow southeast=\",\n      \"drop fuzzy shadow south\",\n      \"drop fuzzy shadow south=\",\n      \"drop fuzzy shadow southwest\",\n      \"drop fuzzy shadow southwest=\",\n      \"drop fuzzy shadow west\",\n      \"drop fuzzy shadow west=\",\n      \"drop fuzzy shadow northwest\",\n      \"drop fuzzy shadow northwest=\",\n      \"drop fuzzy shadow north\",\n      \"drop fuzzy shadow north=\",\n      \"drop fuzzy shadow northeast\",\n      \"drop fuzzy shadow northeast=\",\n      \"drop fuzzy shadow east\",\n      \"drop fuzzy shadow east=\",\n      \"drop lifted shadow\",\n      \"drop lifted shadow=\",\n      \"drop small lifted shadow\",\n      \"drop small lifted shadow=\",\n      \"drop large lifted shadow\",\n      \"drop large lifted shadow=\",\n      \"shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:TikZ options}}\",\n      \"fuzzy shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:step}}{${5:TikZ options}}\",\n      \"smart shadow arc\",\n      \"lifted shadow={${1:xshift}}{${2:yshift}}{${3:bend}}{${4:step}}{${5:TikZ options}}\",\n      \"tikz={${1:TikZ options}}\",\n      \"tikz reset\",\n      \"at begin tikz={${1:TikZ code}}\",\n      \"at begin tikz reset\",\n      \"at end tikz={${1:TikZ code}}\",\n      \"at end tikz reset\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:fraction}\",\n      \"remember\",\n      \"remember as=${1:name}\",\n      \"underlay={${1:code}}\",\n      \"no underlay\",\n      \"underlay broken={${1:code}}\",\n      \"underlay unbroken={${1:code}}\",\n      \"no underlay unbroken\",\n      \"underlay first={${1:code}}\",\n      \"no underlay first\",\n      \"underlay middle={${1:code}}\",\n      \"no underlay middle\",\n      \"underlay last={${1:code}}\",\n      \"no underlay last\",\n      \"underlay boxed title={${1:code}}\",\n      \"no underlay boxed title\",\n      \"underlay unbroken and first={${1:code}}\",\n      \"underlay middle and last={${1:code}}\",\n      \"underlay unbroken and last={${1:code}}\",\n      \"underlay first and middle={${1:code}}\",\n      \"finish={${1:code}}\",\n      \"no finish\",\n      \"finish broken={${1:code}}\",\n      \"finish unbroken={${1:code}}\",\n      \"no finish unbroken\",\n      \"finish first={${1:code}}\",\n      \"no finish first\",\n      \"finish middle={${1:code}}\",\n      \"no finish middle\",\n      \"finish last={${1:code}}\",\n      \"no finish last\",\n      \"finish unbroken and first={${1:code}}\",\n      \"finish middle and last={${1:code}}\",\n      \"finish unbroken and last={${1:code}}\",\n      \"finish first and middle={${1:code}}\",\n      \"hyperref=${1:marker}\",\n      \"hyperref interior=${1:marker}\",\n      \"hyperref title=${1:marker}\",\n      \"hyperref node={${1:marker}}{${2:node}}\",\n      \"hyperlink=${1:marker}\",\n      \"hyperlink interior=${1:marker}\",\n      \"hyperlink title=${1:marker}\",\n      \"hyperlink node={${1:marker}}{${2:node}}\",\n      \"hyperurl=${1:URL}\",\n      \"hyperurl interior=${1:URL}\",\n      \"hyperurl title=${1:URL}\",\n      \"hyperurl node={${1:URL}}{${2:node}}\",\n      \"hyperurl*={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* interior={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* title={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* node={${1:hyperref options}}{${2:URL}}{${3:node}}\",\n      \"draftmode\",\n      \"standard\",\n      \"standard jigsaw\",\n      \"enhanced\",\n      \"enhanced standard\",\n      \"blank\",\n      \"enhanced jigsaw\",\n      \"enhanced standard jigsaw\",\n      \"marker\",\n      \"bicolor\",\n      \"colbacklower=\",\n      \"opacitybacklower=${1:fraction}\",\n      \"overlaplower=\",\n      \"bicolor jigsaw\",\n      \"tile\",\n      \"beamer\",\n      \"widget\",\n      \"empty\",\n      \"blanker\",\n      \"blankest\",\n      \"spartan\",\n      \"draft\",\n      \"freelance\",\n      \"extend freelance={${1:options}}\",\n      \"extend freelancefirst={${1:options}}\",\n      \"extend freelancemiddle={${1:options}}\",\n      \"extend freelancelast={${1:options}}\",\n      \"only=<${1:overlay spec}>{${2:options}}\",\n      \"hide=<${1:overlay spec}>\",\n      \"beamer hidden/.style={${1:options}}\",\n      \"alert=<${1:overlay spec}>\",\n      \"beamer alerted/.style={${1:options}}\",\n      \"\",\n      \"before title app={${1:code}}\",\n      \"before title pre={${1:code}}\",\n      \"after title app={${1:code}}\",\n      \"after title pre={${1:code}}\",\n      \"before upper app={${1:code}}\",\n      \"before upper pre={${1:code}}\",\n      \"after upper app={${1:code}}\",\n      \"after upper pre={${1:code}}\",\n      \"before lower app={${1:code}}\",\n      \"before lower pre={${1:code}}\",\n      \"after lower app={${1:code}}\",\n      \"after lower pre={${1:code}}\",\n      \"before app={${1:code}}\",\n      \"before pre={${1:code}}\",\n      \"after app={${1:code}}\",\n      \"after pre={${1:code}}\",\n      \"before float app={${1:code}}\",\n      \"before float pre={${1:code}}\",\n      \"after float app={${1:code}}\",\n      \"after float pre={${1:code}}\",\n      \"overlay app={${1:code}}\",\n      \"overlay pre={${1:code}}\",\n      \"overlay unbroken app={${1:code}}\",\n      \"overlay unbroken pre={${1:code}}\",\n      \"overlay first app={${1:code}}\",\n      \"overlay first pre={${1:code}}\",\n      \"overlay middle app={${1:code}}\",\n      \"overlay middle pre={${1:code}}\",\n      \"overlay last app={${1:code}}\",\n      \"overlay last pre={${1:code}}\",\n      \"overlay broken app={${1:code}}\",\n      \"overlay broken pre={${1:code}}\",\n      \"overlay unbroken and first app={${1:code}}\",\n      \"overlay unbroken and first pre={${1:code}}\",\n      \"overlay middle and last app={${1:code}}\",\n      \"overlay middle and last pre={${1:code}}\",\n      \"overlay unbroken and last app={${1:code}}\",\n      \"overlay unbroken and last pre={${1:code}}\",\n      \"overlay first and middle app={${1:code}}\",\n      \"overlay first and middle pre={${1:code}}\",\n      \"watermark text app=${1:text}\",\n      \"watermark text pre=${1:text}\",\n      \"watermark text app on=${1:part} is ${2:text}\",\n      \"watermark text pre on=${1:part} is ${2:text}\",\n      \"watermark graphics app=${1:file name}\",\n      \"watermark graphics pre=${1:file name}\",\n      \"watermark graphics app on=${1:part} is ${2:file}\",\n      \"watermark graphics pre on=${1:part} is ${2:file}\",\n      \"watermark tikz app={${1:code}}\",\n      \"watermark tikz pre={${1:code}}\",\n      \"watermark tikz app on=${1:part} is ${2:code}\",\n      \"watermark tikz pre on=${1:part} is ${2:code}\",\n      \"underlay pre={${1:code}}\",\n      \"underlay unbroken pre={${1:code}}\",\n      \"underlay first pre={${1:code}}\",\n      \"underlay middle pre={${1:code}}\",\n      \"underlay last pre={${1:code}}\",\n      \"underlay boxed title pre={${1:code}}\",\n      \"underlay broken pre={${1:code}}\",\n      \"underlay unbroken and first pre={${1:code}}\",\n      \"underlay middle and last pre={${1:code}}\",\n      \"underlay unbroken and last pre={${1:code}}\",\n      \"underlay first and middle pre={${1:code}}\",\n      \"finish pre={${1:code}}\",\n      \"finish unbroken pre={${1:code}}\",\n      \"finish first pre={${1:code}}\",\n      \"finish middle pre={${1:code}}\",\n      \"finish last pre={${1:code}}\",\n      \"finish broken pre={${1:code}}\",\n      \"finish unbroken and first pre={${1:code}}\",\n      \"finish middle and last pre={${1:code}}\",\n      \"finish unbroken and last pre={${1:code}}\",\n      \"finish first and middle pre={${1:code}}\",\n      \"frame code app={${1:code}}\",\n      \"frame code pre={${1:code}}\",\n      \"interior titled code app={${1:code}}\",\n      \"interior titled code pre={${1:code}}\",\n      \"interior code app={${1:code}}\",\n      \"interior code pre={${1:code}}\",\n      \"segmentation code app={${1:code}}\",\n      \"segmentation code pre={${1:code}}\",\n      \"title code app={${1:code}}\",\n      \"title code pre={${1:code}}\",\n      \"extras pre={${1:options}}\",\n      \"extras unbroken pre={${1:options}}\",\n      \"extras first pre={${1:options}}\",\n      \"extras middle pre={${1:options}}\",\n      \"extras last pre={${1:options}}\",\n      \"extras broken pre={${1:options}}\",\n      \"extras unbroken and first pre={${1:options}}\",\n      \"extras middle and last pre={${1:options}}\",\n      \"extras unbroken and last pre={${1:options}}\",\n      \"extras first and middle pre={${1:options}}\",\n      \"listing options app={${1:options}}\",\n      \"listing options pre={${1:options}}\",\n      \"minted options app={${1:options}}\",\n      \"minted options pre={${1:options}}\",\n      \"\",\n      \"title addon=${1:supplément au titre}\",\n      \"result width=\",\n      \"reference text=${1:texte}\"\n    ],\n    \"\\\\begin{announcement}\": [\n      \"toc title=${1:titre alternatif}\",\n      \"color=\"\n    ],\n    \"\\\\begin{rebus}\": [\n      \"no solution\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-letter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:returnaddress}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:yourname}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:return address}}{${2:to address}}\"\n      }\n    },\n    {\n      \"name\": \"returnaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/letter#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/letter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-lettre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:salutations%text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:salutations%text}}\"\n      }\n    },\n    {\n      \"name\": \"Nref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"telex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telex{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"ccp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccp{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"makelabels\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makelabels[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:adresse%text}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpages{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"fax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fax{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"lieu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lieu{${1:lieu%text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"secondsignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondsignature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"thirdsignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdsignature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"username\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"username{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"bitnet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitnet{${1:adresse}}\"\n      }\n    },\n    {\n      \"name\": \"ccitt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccitt{${1:adresse}}\"\n      }\n    },\n    {\n      \"name\": \"decnet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decnet{${1:adresse}}\"\n      }\n    },\n    {\n      \"name\": \"internet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"internet{${1:adresse}}\"\n      }\n    },\n    {\n      \"name\": \"telepac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telepac{${1:adresse}}\"\n      }\n    },\n    {\n      \"name\": \"lettreselectlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettreselectlanguage{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\lettreselectlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tension{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"marge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marge{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"basdepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"basdepage{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"conc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conc{${1:sujet%text}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ps{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:annexes%text}}\"\n      }\n    },\n    {\n      \"name\": \"mencl\"\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:destinataires}}\"\n      }\n    },\n    {\n      \"name\": \"detailledaddress\"\n    },\n    {\n      \"name\": \"institut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institut{${1:fichier}}\"\n      }\n    },\n    {\n      \"name\": \"notelephone\"\n    },\n    {\n      \"name\": \"nofax\"\n    },\n    {\n      \"name\": \"nolieu\"\n    },\n    {\n      \"name\": \"nodate\"\n    },\n    {\n      \"name\": \"faxwarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telefaxstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telephonelabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telefaxlabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telefaxname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tellabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxlabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telexlabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"concname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mentionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lettermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openingindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssigindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FAXSTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auxcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auxflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auxline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bitnetnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccittnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"concdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"concline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decnetnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxopening\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faxopening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"faxpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromssig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromtsig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internetnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letteropening\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letteropening{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LettreDeclareLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LettreDeclareLanguage{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"lettrelabelselectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettrelabelselectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"lettrelmpselectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettrelmpselectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"lettreloadlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettreloadlang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"LettreProvidesLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LettreProvidesLanguage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlabel{${1:l’étiquette}}\"\n      }\n    },\n    {\n      \"name\": \"noinfos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetauxenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcloseenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetemailenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetopenenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopfax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telepacnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telexnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tofaxnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalpages\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:destinataire%text}}\"\n      }\n    },\n    {\n      \"name\": \"telefax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:numéro}}{${2:destinataire \\\\\\\\ adresse%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/lettre#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"a4paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"b5paper\",\n      \"a5paper\",\n      \"twoside\",\n      \"oneside\",\n      \"origdate\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"keepenvs\",\n      \"passlang\",\n      \"noinfo\",\n      \"loghighlight\",\n      \"strict\",\n      \"romand\",\n      \"francais\",\n      \"allemand\",\n      \"anglais\",\n      \"americain\"\n    ],\n    \"\\\\lettreselectlanguage#c\": [\n      \"french\",\n      \"english\",\n      \"german\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/lettre#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-limap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"class-book\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"class-letter\",\n      \"if\": \"letter\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"koma\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Block{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"MapBlockLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapParskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTextFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapRuleWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapRuleStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WideBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WideBlock{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"MapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapContinued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapContinuing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleContinuedFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapNewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTableOfContents\"\n    },\n    {\n      \"name\": \"MapTableOfContentsStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapBlockStartHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapBlockStartHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"MapBlockTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapBlockTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTabularFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOCname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOCpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineLimapLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"defineLimapLanguage{${1:name}}{${2:continued}}{${3:continuing}}{${4:TOCname}}{${5:TOCpage}}\"\n      }\n    },\n    {\n      \"name\": \"MapContinuingFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapContinuingFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapContinuedFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapContinuedFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTOCheadfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Map\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"MapTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/limap#c\": [\n      \"austrian\",\n      \"german\",\n      \"french\",\n      \"english\",\n      \"USenglish\",\n      \"nonstrict\",\n      \"nolines\",\n      \"book\",\n      \"report\",\n      \"article\",\n      \"letter\",\n      \"koma\",\n      \"base\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/limap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-limecv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cvSetLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvSetLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"cvID\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvID{${1:first name}}{${2:last name}}{${3:imagefile}}{${4:job position}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactAddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvContactAddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactEmail\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactEmail{${1:link%URL}}{${2:email address}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactPhone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvContactPhone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactWebsite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactWebsite{${1:URL}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactGithub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactGithub{${1:URL}}{${2:username}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactGitlab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactGitlab{${1:URL}}{${2:username}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactLinkedin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactLinkedin{${1:URL}}{${2:username}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactTwitter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactTwitter{${1:URL}}{${2:username}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactKeybase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvContactKeybase{${1:URL}}{${2:fingerprint}}\"\n      }\n    },\n    {\n      \"name\": \"cvLanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvLanguage{${1:language}}{${2:skill level}}\"\n      }\n    },\n    {\n      \"name\": \"cvInterestsPersonal\"\n    },\n    {\n      \"name\": \"cvInterestsProfessional\"\n    },\n    {\n      \"name\": \"cvInterest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvInterest{${1:icon}}{${2:interest}}\"\n      }\n    },\n    {\n      \"name\": \"cvProject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvProject{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvProject\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvProject[${3:options%keyvals}]{${1:name}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\cvProject\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvItem{${1:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvSkillTwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvSkillTwo{${1:skill-level1}}{${2:skill1}}{${3:skill-level2}}{${4:skill2}}\"\n      }\n    },\n    {\n      \"name\": \"cvSkillOne\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvSkillOne{${1:skill-level}}{${2:skill}}\"\n      }\n    },\n    {\n      \"name\": \"cvAddReference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvAddReference{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\cvAddReference,\\\\cvAddReference*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvAddReference*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvAddReference*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\cvAddReference,\\\\cvAddReference*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvBeneficiary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvBeneficiary{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\cvBeneficiary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvFullName\"\n    },\n    {\n      \"name\": \"cvColSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvNodeSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvTimeDotDiameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvSideWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvMainWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvTimeDotSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvStartEndSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvItemSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvTableSepWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvCoverLetterHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvCoverLetterWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvPictureWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvProgressAreaWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvProgressAreaHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvSectionSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvSectionSBSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvTitleLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvTitleLineSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvProjectDetailsSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvInterestDetailsSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvContactItemSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvCoverLetterLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvCoverLetterPositionSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvSBSectionLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvCoverLetterLineSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvIDNameSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvPositionSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvSkillSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvHeaderIconWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvComma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnodedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnodedefined{${1:node name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"globalcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"globalcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"faVcard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extract{${1:n}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"cvList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvList{${1:envname}}{${2:name}}{${3:icon}}\"\n      }\n    },\n    {\n      \"name\": \"cvContactTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvContactTemplate[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cvSidebar\"\n    },\n    {\n      \"name\": \"cvSidebar*\"\n    },\n    {\n      \"name\": \"cvProfile\"\n    },\n    {\n      \"name\": \"cvContact\"\n    },\n    {\n      \"name\": \"cvLanguages\"\n    },\n    {\n      \"name\": \"cvInterests\"\n    },\n    {\n      \"name\": \"cvProjects\"\n    },\n    {\n      \"name\": \"cvMainContent\"\n    },\n    {\n      \"name\": \"cvMainContent*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvEducation\"\n    },\n    {\n      \"name\": \"cvExperience\"\n    },\n    {\n      \"name\": \"cvSkills\"\n    },\n    {\n      \"name\": \"cvReferences\"\n    },\n    {\n      \"name\": \"cvCoverLetter\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/limecv#c\": [\n      \"print\",\n      \"path=${1:file path}\",\n      \"sansfont=${1:font name}\",\n      \"monofont=${1:font name}\"\n    ],\n    \"\\\\cvSetLanguage#c\": [\n      \"chinese\",\n      \"dutch\",\n      \"english\",\n      \"french\",\n      \"german\",\n      \"italian\",\n      \"spanish\"\n    ],\n    \"\\\\cvProject\": [\n      \"image=${1:imagefile}\",\n      \"link=${1:URL}\",\n      \"width=\",\n      \"height=\"\n    ],\n    \"\\\\cvAddReference,\\\\cvAddReference*\": [\n      \"name=\",\n      \"company=\",\n      \"position=\",\n      \"address line 1=\",\n      \"address line 2=\",\n      \"address line 3=\",\n      \"mobile phone=\",\n      \"work phone=\",\n      \"email=\"\n    ],\n    \"\\\\cvBeneficiary\": [\n      \"name=\",\n      \"position=\",\n      \"company=\",\n      \"address line 1=\",\n      \"address line 2=\",\n      \"address line 3=\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"interesticon/.style={${1:TikZ styles}}\",\n      \"interesttext/.style={${1:TikZ styles}}\",\n      \"eventdottext/.style={${1:TikZ styles}}\",\n      \"invisibletimedot/.style={${1:TikZ styles}}\",\n      \"timedot/.style={${1:TikZ styles}}\",\n      \"eventdot/.style={${1:TikZ styles}}\",\n      \"contactIcon/.style={${1:TikZ styles}}\",\n      \"contactText/.style={${1:TikZ styles}}\",\n      \"headerIcon/.style={${1:TikZ styles}}\",\n      \"skillLevel/.style={${1:TikZ styles}}\",\n      \"languageText/.style={${1:TikZ styles}}\",\n      \"skillText/.style={${1:TikZ styles}}\",\n      \"progressArea/.style={${1:TikZ styles}}\",\n      \"progressBar/.style={${1:TikZ styles}}\",\n      \"sectionTitle/.style={${1:TikZ styles}}\",\n      \"sectionEduText/.style={${1:TikZ styles}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/limecv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-llncs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"aliascnt\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"authorrunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorrunning{${1:abbreviated author list}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fnmsep\"\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institutes%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"orcidID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcidID{${1:ORCID identifier}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerunning{${1:abbreviated title%text}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"grole\"\n    },\n    {\n      \"name\": \"getsto\"\n    },\n    {\n      \"name\": \"lid\"\n    },\n    {\n      \"name\": \"gid\"\n    },\n    {\n      \"name\": \"bbbc\"\n    },\n    {\n      \"name\": \"bbbf\"\n    },\n    {\n      \"name\": \"bbbh\"\n    },\n    {\n      \"name\": \"bbbk\"\n    },\n    {\n      \"name\": \"bbbm\"\n    },\n    {\n      \"name\": \"bbbn\"\n    },\n    {\n      \"name\": \"bbbp\"\n    },\n    {\n      \"name\": \"bbbq\"\n    },\n    {\n      \"name\": \"bbbr\"\n    },\n    {\n      \"name\": \"bbbs\"\n    },\n    {\n      \"name\": \"bbbt\"\n    },\n    {\n      \"name\": \"bbbz\"\n    },\n    {\n      \"name\": \"bbbone\"\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}{${2:caption}}{${3:cap font}}{${4:body font}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}[${5:numbered like}]{${2:caption}}{${3:cap font}}{${4:body font}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spnewtheorem*{${1:envname}}{${2:caption}}{${3:cap font}}{${4:body font}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"ackname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addcontentsmarkwop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmarkwop{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addnumcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addnumcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addtocmark[${4:num}]{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authcount{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"authrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calctocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"claimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearheadinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjecturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contriblistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discintname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnnstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"homedir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperhrefextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institutename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteaddname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propertyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squareforqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauco\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theopargself\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisbottomragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tocchpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparatotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toctitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeauthoryear\",\n      \"if\": \"citeauthoryear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oribibl\",\n      \"if\": \"oribibl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"credits\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/llncs#c\": [\n      \"citeauthoryear\",\n      \"runningheads\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"splncs04\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/llncs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-lni.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"grffile\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"orcidlink\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"authblk\"\n    },\n    {\n      \"name\": \"crop\",\n      \"if\": \"crop\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"author{${1:name}}{${2:email}}{${3:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"author[${4:number}]{${1:name}}{${2:email}}{${3:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"authorrunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorrunning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"booksubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booksubtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"booktitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"booktitle[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"booktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booktitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"BPEL\"\n    },\n    {\n      \"name\": \"BPM\"\n    },\n    {\n      \"name\": \"BPMN\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"doihoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doivoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"lniabbrv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lniabbrv{${1:cmd}}{${2:abbrv}}\"\n      }\n    },\n    {\n      \"name\": \"lnidoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnidoi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"lniinitialism\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lniinitialism{${1:cmd}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"OMG\"\n    },\n    {\n      \"name\": \"orcid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"powerset\"\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thisbottomragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UML\"\n    },\n    {\n      \"name\": \"yearofpublication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearofpublication{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keywords\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/lni#c\": [\n      \"english\",\n      \"nocleveref\",\n      \"biblatex\",\n      \"crop\",\n      \"runningheads\",\n      \"anonymous\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/lni#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjltxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ltxdoc\"\n    },\n    {\n      \"name\": \"luatexja\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"Lcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcount{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Lopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lopt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"NFSS\"\n    },\n    {\n      \"name\": \"dst\"\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"mlineplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlineplus{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstyle{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tsample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:height}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ltjltxdoc#c\": [\n      \"nocfg\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjltxdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjsarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"maybeblue\",\n      \"if\": \"slide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexjis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjsarticle#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"slide\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"nomag\",\n      \"nomag\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"ptexjis\",\n      \"jis\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjsarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjsbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexjis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjsbook#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"nomag\",\n      \"nomag\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"ptexjis\",\n      \"jis\",\n      \"english\",\n      \"report\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjsbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjskiyou.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexjis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjskiyou#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"nomag\",\n      \"nomag\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"ptexjis\",\n      \"jis\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjskiyou#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjspf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorsEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthorsEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"eauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"etitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexjis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjspf#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"nomag\",\n      \"nomag\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"ptexjis\",\n      \"jis\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjspf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjsreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"jslogo\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ifjisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmingoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnarrowbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexjis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jisfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsParagraphMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsTocLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mingothtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselines\"\n    },\n    {\n      \"name\": \"narrowbaselinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowbaselinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainifnotempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexjistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widebaselines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjsreport#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4var\",\n      \"b5var\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"21pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"43pt\",\n      \"12Q\",\n      \"14Q\",\n      \"10ptj\",\n      \"10.5ptj\",\n      \"11ptj\",\n      \"12ptj\",\n      \"nomag\",\n      \"nomag\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"oneside\",\n      \"twoside\",\n      \"vartwoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"disablejfam\",\n      \"draft\",\n      \"final\",\n      \"mingoth\",\n      \"ptexjis\",\n      \"jis\",\n      \"english\",\n      \"jslogo\",\n      \"nojslogo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjsreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjtarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"lltjext\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjtarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjtarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjtbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"lltjext\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjtbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjtbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltjtreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"lltjext\"\n    },\n    {\n      \"name\": \"stfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombow\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"tombo\"\n    },\n    {\n      \"name\": \"stockheight\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"if\": \"mentuke\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"ifptexmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexmintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltjtreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\",\n      \"ptexmin\",\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltjtreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltnews.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AmS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"class{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ctan\"\n    },\n    {\n      \"name\": \"ctanhttp\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"excludecomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludecomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"indicia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latex{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXNews\"\n    },\n    {\n      \"name\": \"ltnewssectformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NFSS\"\n    },\n    {\n      \"name\": \"package\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"PSNFSS\"\n    },\n    {\n      \"name\": \"publicationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publicationday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationday{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"publicationissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationissue{${1:issue}}\"\n      }\n    },\n    {\n      \"name\": \"publicationmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"publicationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"raisefirstsection\"\n    },\n    {\n      \"name\": \"SLiTeX\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"citations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htmlonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latexonly\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-ltugboat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mflogo\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibentry\",\n      \"if\": \"harvardcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhang\",\n      \"if\": \"harvardcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibindent\",\n      \"if\": \"harvardcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeA\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeA{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"citeANP\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeANP{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthoryear\",\n      \"if\": \"harvardcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"citeauthoryear{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"citeN\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeN{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"citeNP\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeNP{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearNP\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearNP{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"etal\",\n      \"if\": \"harvardcite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortciteA\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteA{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteANP\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteANP{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteN\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteN{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"shortciteNP\",\n      \"if\": \"harvardcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortciteNP{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acro{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToResetCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToResetCommands{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"allowhyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AllTeX\"\n    },\n    {\n      \"name\": \"AMS\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"ANSI\"\n    },\n    {\n      \"name\": \"API\"\n    },\n    {\n      \"name\": \"ASCII\"\n    },\n    {\n      \"name\": \"authorlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorlist{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"authornumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AW\"\n    },\n    {\n      \"name\": \"aw\"\n    },\n    {\n      \"name\": \"basezero\"\n    },\n    {\n      \"name\": \"bfBibTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bib\"\n    },\n    {\n      \"name\": \"BibJustification\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BibLaTeX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"bigissdt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackBoxes\"\n    },\n    {\n      \"name\": \"botregister\"\n    },\n    {\n      \"name\": \"botsmash\"\n    },\n    {\n      \"name\": \"boxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"BSD\"\n    },\n    {\n      \"name\": \"bull\"\n    },\n    {\n      \"name\": \"CandT\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"cents\"\n    },\n    {\n      \"name\": \"CMkIV\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"contributor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cplusplus\"\n    },\n    {\n      \"name\": \"CPU\"\n    },\n    {\n      \"name\": \"creditfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"creditfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"CSczabbr\"\n    },\n    {\n      \"name\": \"CSS\"\n    },\n    {\n      \"name\": \"CSTUG\"\n    },\n    {\n      \"name\": \"CSV\"\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"Dag\"\n    },\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"Dash\"\n    },\n    {\n      \"name\": \"DeclareLaTeXLogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareLaTeXLogo{${1:family}}{${2:series}}{${3:shape}}{${4:kern1}}{${5:kern2}}\"\n      }\n    },\n    {\n      \"name\": \"dlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawoutlinebox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drawoutlinebox[${1:height;width;thickness}]\"\n      }\n    },\n    {\n      \"name\": \"DTD\"\n    },\n    {\n      \"name\": \"DTK\"\n    },\n    {\n      \"name\": \"DVD\"\n    },\n    {\n      \"name\": \"DVI\"\n    },\n    {\n      \"name\": \"DVIPDFMx\"\n    },\n    {\n      \"name\": \"DVItoVDU\"\n    },\n    {\n      \"name\": \"ECMA\"\n    },\n    {\n      \"name\": \"EDITORnoaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EDITORnonetaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EdNote[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"EdNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EdNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EdNoteFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emdash\"\n    },\n    {\n      \"name\": \"endash\"\n    },\n    {\n      \"name\": \"EPS\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"ExTeX\"\n    },\n    {\n      \"name\": \"FAQ\"\n    },\n    {\n      \"name\": \"fileinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FirstParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FTP\"\n    },\n    {\n      \"name\": \"Ghostscript\"\n    },\n    {\n      \"name\": \"GNU\"\n    },\n    {\n      \"name\": \"gobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GUI\"\n    },\n    {\n      \"name\": \"HarfBuzz\"\n    },\n    {\n      \"name\": \"Hawaii\"\n    },\n    {\n      \"name\": \"hours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTML\"\n    },\n    {\n      \"name\": \"HTTP\"\n    },\n    {\n      \"name\": \"hyph\"\n    },\n    {\n      \"name\": \"IDE\"\n    },\n    {\n      \"name\": \"IEEE\"\n    },\n    {\n      \"name\": \"ifFirstPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPrelimDraft\"\n    },\n    {\n      \"name\": \"ifpreprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSecTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshortAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTBunicodeengine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTestIf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftubfinaloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftubomitdoioption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftubsecondcolstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftubtitlerulefullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifundefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifundefined{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifWideSecTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Input\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Input{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"iOS\"\n    },\n    {\n      \"name\": \"ISBN\"\n    },\n    {\n      \"name\": \"ISO\"\n    },\n    {\n      \"name\": \"issdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issdt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISSN\"\n    },\n    {\n      \"name\": \"issno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issueseqno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JoT\"\n    },\n    {\n      \"name\": \"JPEG\"\n    },\n    {\n      \"name\": \"JTeX\"\n    },\n    {\n      \"name\": \"KOMAScript\"\n    },\n    {\n      \"name\": \"La\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LAMSTeX\"\n    },\n    {\n      \"name\": \"latexnobreakspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latextubstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldash\"\n    },\n    {\n      \"name\": \"Ldash\"\n    },\n    {\n      \"name\": \"LMTX\"\n    },\n    {\n      \"name\": \"lstlistingnamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuaHBLaTeX\"\n    },\n    {\n      \"name\": \"LuaHBTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"macOS\"\n    },\n    {\n      \"name\": \"MacOSX\"\n    },\n    {\n      \"name\": \"makeother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeRegistrationMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makesignature\"\n    },\n    {\n      \"name\": \"makestrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makestrut[${1:height;depth}]\"\n      }\n    },\n    {\n      \"name\": \"makevmeta\"\n    },\n    {\n      \"name\": \"MathML\"\n    },\n    {\n      \"name\": \"Mc\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mf\"\n    },\n    {\n      \"name\": \"MFB\"\n    },\n    {\n      \"name\": \"midrtitle\"\n    },\n    {\n      \"name\": \"minutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MkIV\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"mspmetavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mspmetavar{${1:var}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"mtex\"\n    },\n    {\n      \"name\": \"nameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"netaddrat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NetAddrChars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"netaddrdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"netaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"netaddress[${2:opt}]{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"netaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"netaddress{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"netaddrpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"network\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"network{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newboxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ninepoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoBlackBoxes\"\n    },\n    {\n      \"name\": \"nohyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomarkfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nomarkfootnote{${1:commands}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoParIndent\"\n    },\n    {\n      \"name\": \"NormalParIndent\"\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspaces\"\n    },\n    {\n      \"name\": \"now\"\n    },\n    {\n      \"name\": \"Now\"\n    },\n    {\n      \"name\": \"NTG\"\n    },\n    {\n      \"name\": \"nth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NTS\"\n    },\n    {\n      \"name\": \"nullhrule\"\n    },\n    {\n      \"name\": \"nullvrule\"\n    },\n    {\n      \"name\": \"OCP\"\n    },\n    {\n      \"name\": \"OMEGA\"\n    },\n    {\n      \"name\": \"OOXML\"\n    },\n    {\n      \"name\": \"OpTeX\"\n    },\n    {\n      \"name\": \"ORCID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORCID{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"OTF\"\n    },\n    {\n      \"name\": \"OTP\"\n    },\n    {\n      \"name\": \"PageXref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PageXrefOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXrefOFF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexrefOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexrefOFF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PageXrefON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXrefON{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexrefON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexrefON{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pas\"\n    },\n    {\n      \"name\": \"pcMF\"\n    },\n    {\n      \"name\": \"PCTeX\"\n    },\n    {\n      \"name\": \"pcTeX\"\n    },\n    {\n      \"name\": \"PDF\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdflatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personalURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"personalURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"PGF\"\n    },\n    {\n      \"name\": \"phone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PHP\"\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"plain\"\n    },\n    {\n      \"name\": \"plaintubstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plusplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PNG\"\n    },\n    {\n      \"name\": \"POBox\"\n    },\n    {\n      \"name\": \"PrelimDraftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrelimDrafttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprint\"\n    },\n    {\n      \"name\": \"preprintfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprinttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProtectNetChars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PS\"\n    },\n    {\n      \"name\": \"PSTricks\"\n    },\n    {\n      \"name\": \"raggedcenter\"\n    },\n    {\n      \"name\": \"raggedparfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedspaces\"\n    },\n    {\n      \"name\": \"raggedstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rdash\"\n    },\n    {\n      \"name\": \"Rdash\"\n    },\n    {\n      \"name\": \"ResetCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetCommands{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"restorecat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorecat{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreCS{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"revauth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revauth{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Review\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Review[${2:header%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Review\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Review{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"revpubinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revpubinfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"revtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rhTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RIT\"\n    },\n    {\n      \"name\": \"RTF\"\n    },\n    {\n      \"name\": \"rtitlenexttopage\"\n    },\n    {\n      \"name\": \"rtitlex\"\n    },\n    {\n      \"name\": \"ruled\"\n    },\n    {\n      \"name\": \"savecat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecat{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveCS{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"SC\"\n    },\n    {\n      \"name\": \"secsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecTitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecTitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SelfDocumenting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetBibJustification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBibJustification{${1:justification command}}\"\n      }\n    },\n    {\n      \"name\": \"setboxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetTime\"\n    },\n    {\n      \"name\": \"SGML\"\n    },\n    {\n      \"name\": \"shortAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortAuthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"shortAuthorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortAuthortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"signaturemark\"\n    },\n    {\n      \"name\": \"signaturewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliTeX\"\n    },\n    {\n      \"name\": \"SMC\"\n    },\n    {\n      \"name\": \"SQL\"\n    },\n    {\n      \"name\": \"STIX\"\n    },\n    {\n      \"name\": \"stTeX\"\n    },\n    {\n      \"name\": \"supportfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supportfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SVG\"\n    },\n    {\n      \"name\": \"TANGLE\"\n    },\n    {\n      \"name\": \"TB\"\n    },\n    {\n      \"name\": \"tbcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbcode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tbcodebreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbcodebreak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TBdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBecircacute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBEnableRemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBError{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbgobbledash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbhurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbhurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbhurlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbhurlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"TBInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBInfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbotregister\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbppkernfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBremark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBremark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbsurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbsurlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsurlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"TBtocsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tburl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tburl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tburlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tburlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbUTF\"\n    },\n    {\n      \"name\": \"TBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBWarning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TBWarningNL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBWarningNL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tensl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestDimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestIffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestIftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXhax\"\n    },\n    {\n      \"name\": \"TeXMaG\"\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texorpdfstring{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"textSMC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSMC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TeXtures\"\n    },\n    {\n      \"name\": \"Textures\"\n    },\n    {\n      \"name\": \"TeXworks\"\n    },\n    {\n      \"name\": \"TeXXeT\"\n    },\n    {\n      \"name\": \"TFM\"\n    },\n    {\n      \"name\": \"Thanh\"\n    },\n    {\n      \"name\": \"theaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theaddress{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"theauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theauthor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thedoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenetaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thenetaddress{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"theORCID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theORCID{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thePersonalURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thePersonalURL{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"therevauth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therevpubinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therevtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TIFF\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"titleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topregister\"\n    },\n    {\n      \"name\": \"topsmash\"\n    },\n    {\n      \"name\": \"TP\"\n    },\n    {\n      \"name\": \"TTN\"\n    },\n    {\n      \"name\": \"ttn\"\n    },\n    {\n      \"name\": \"ttopregister\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUB\"\n    },\n    {\n      \"name\": \"tubabovedoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubbraced\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubbraced{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tubcaptionfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubcaptionleftglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUBdefaulteTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubdoiprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubdots\"\n    },\n    {\n      \"name\": \"TUBedit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TUBedit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TUBfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TUBfilename{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tubfinaloptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubfinaloptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubheadhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubhideheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubhideheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"tubissue\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"tubissue{${1:volume}}(${2:issue})\"\n      }\n    },\n    {\n      \"name\": \"tubjustifiedpar\"\n    },\n    {\n      \"name\": \"tubline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tubmakecaptionbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tubmakecaptionbox{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tubmultipleaffilauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubmultipleaffilnet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubomitdoioptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubomitdoioptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubraggedfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubreflect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubreflect{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tubruninglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubruninsecfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubrunningauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsecfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsecondcolstartextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsecondcolstartfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsecondcolstarttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubsentencespace\"\n    },\n    {\n      \"name\": \"tubsmallerskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubthinnerspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubthinnerspaceneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubtitlerulefullwidthfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubtitlerulefullwidthtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubtypesetdoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubtypesetpageno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubtypesetpageno{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tug\"\n    },\n    {\n      \"name\": \"TUG\"\n    },\n    {\n      \"name\": \"UG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ulap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UNIX\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"URLchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseExtraLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseTrimMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VAX\"\n    },\n    {\n      \"name\": \"vellipsis\"\n    },\n    {\n      \"name\": \"VnTeX\"\n    },\n    {\n      \"name\": \"vol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volyr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VorTeX\"\n    },\n    {\n      \"name\": \"WEAVE\"\n    },\n    {\n      \"name\": \"WEB\"\n    },\n    {\n      \"name\": \"WideSecTitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WideSecTitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WYSIWYG\"\n    },\n    {\n      \"name\": \"Xe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xEdNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xEdNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"XekernafterE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XekernbeforeE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XHTML\"\n    },\n    {\n      \"name\": \"xlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"XML\"\n    },\n    {\n      \"name\": \"XMP\"\n    },\n    {\n      \"name\": \"xrefto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrefto{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xreftoOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xreftoOFF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xreftoON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xreftoON{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"XSL\"\n    },\n    {\n      \"name\": \"XSLFO\"\n    },\n    {\n      \"name\": \"XSLT\"\n    },\n    {\n      \"name\": \"YAML\"\n    },\n    {\n      \"name\": \"ylap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ylap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zlap{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"compactdescription\"\n    },\n    {\n      \"name\": \"compactenumerate\"\n    },\n    {\n      \"name\": \"compactitemize\"\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"longabstract\"\n    },\n    {\n      \"name\": \"reviewitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SafeSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:before code}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ltugboat#c\": [\n      \"draft\",\n      \"extralabel\",\n      \"final\",\n      \"harvardcite\",\n      \"noextralabel\",\n      \"nonumber\",\n      \"numbersec\",\n      \"onecolumn\",\n      \"preprint\",\n      \"rawcite\",\n      \"runningfull\",\n      \"runningminimal\",\n      \"runningoff\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltugboat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"doc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DocInclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocInclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"aalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"docincludeaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaintainedBy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaintainedBy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MaintainedByLaTeXTeam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaintainedByLaTeXTeam{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"currentfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"enquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ltxdoc#c\": [\n      \"nocfg\",\n      \"doc2\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ltxdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ltxdockit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ltxdockit\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"charter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fnurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"fnurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnurl[${2:prefix}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlepage{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\titlepage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printtitlepage\"\n    },\n    {\n      \"name\": \"rcsfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcstime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcslocker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcstoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginToc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndToc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginLot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndLot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tex\"\n    },\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"pdftex\"\n    },\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"latex\"\n    },\n    {\n      \"name\": \"pdflatex\"\n    },\n    {\n      \"name\": \"xelatex\"\n    },\n    {\n      \"name\": \"lualatex\"\n    },\n    {\n      \"name\": \"bibtex\"\n    },\n    {\n      \"name\": \"lppl\"\n    },\n    {\n      \"name\": \"pdf\"\n    },\n    {\n      \"name\": \"utf\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"tablesetup\"\n    },\n    {\n      \"name\": \"textln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textln{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\titlepage\": [\n      \"title=\",\n      \"subtitle=\",\n      \"url=\",\n      \"author=\",\n      \"email=\",\n      \"revision=\",\n      \"date=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-ltxguide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shortvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"clsguide\"\n    },\n    {\n      \"name\": \"usrguide\"\n    },\n    {\n      \"name\": \"fntguide\"\n    },\n    {\n      \"name\": \"cfgguide\"\n    },\n    {\n      \"name\": \"cyrguide\"\n    },\n    {\n      \"name\": \"modguide\"\n    },\n    {\n      \"name\": \"sourcecode\"\n    },\n    {\n      \"name\": \"LaTeXbook\"\n    },\n    {\n      \"name\": \"LaTeXcomp\"\n    },\n    {\n      \"name\": \"LaTeXGcomp\"\n    },\n    {\n      \"name\": \"LaTeXWcomp\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"ctan\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"SLiTeX\"\n    },\n    {\n      \"name\": \"m\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"m{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NFSS\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"NEWfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NEWfeature{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NEWdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NEWdescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"decl\"\n    },\n    {\n      \"name\": \"decl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:date}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-ltxguidex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ltxguide\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"showexpl\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pipe\"\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ctanlogo\"\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"command{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"https\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"https{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"http\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"http{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ctan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctan{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ltxclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltxclass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"filename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"extension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extension{${1:file extension}}\"\n      }\n    },\n    {\n      \"name\": \"New\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"New{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newnotice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnotice{${1:envname}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"advisespace\"\n    },\n    {\n      \"name\": \"alternative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alternative{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"key{${1:key name}}[${2:key value}]\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"key{${1:key name}}[${2:key value}][${3:default value}]\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"key[${2:options%keyvals}]{${1:key name}}[${3:key value}]\",\n        \"keys\": [\n          \"\\\\key\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"key[${2:options%keyvals}]{${1:key name}}[${3:key value}][${4:default value}]\",\n        \"keys\": [\n          \"\\\\key\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bool\"\n    },\n    {\n      \"name\": \"noticestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdescriptionenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdescriptionenvironment{${1:envname}}{${2:label cmd}}\"\n      }\n    },\n    {\n      \"name\": \"labeladvise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"docstrip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Th\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Th{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Th\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Th[${2:cols}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"desc\"\n    },\n    {\n      \"name\": \"latexcode\"\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"bug\"\n    },\n    {\n      \"name\": \"packages\"\n    },\n    {\n      \"name\": \"classes\"\n    },\n    {\n      \"name\": \"options\"\n    },\n    {\n      \"name\": \"advise\"\n    },\n    {\n      \"name\": \"faq\"\n    },\n    {\n      \"name\": \"keys\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\key\": [\n      \"default=${1:default value}\",\n      \"note=${1:note}\",\n      \"v=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-maabook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"upref\"\n    },\n    {\n      \"name\": \"amscip\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"shaderef\",\n      \"if\": \"proofing\"\n    },\n    {\n      \"name\": \"mtpro2\",\n      \"if\": \"mathtimes\"\n    },\n    {\n      \"name\": \"stix2\",\n      \"if\": \"stix2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibintro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"citeform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeform{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrightinfo{${1:year}}{${2:holder}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DOI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"evdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"evdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"forcehyphenbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcelinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexchap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexchap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexintro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initMAAenummargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"initMAAenummargins{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"makededication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehalftitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:lefthead%text}}\"\n      }\n    },\n    {\n      \"name\": \"maxcaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:MR number}}\"\n      }\n    },\n    {\n      \"name\": \"MRhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MRhref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionrunhead{${1:name}}{${2:number}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seeonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seeonly{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seeonlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seriesinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"seriesinfo{${1:publkey}}{${2:volumeid}}{${3:volumeno}}\"\n      }\n    },\n    {\n      \"name\": \"SMALL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Small\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smaller\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tiny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocappendix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocappendix{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocchapter{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tochyphenbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toclinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubparagraph{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:epithet}}{${2:number}}{${3:topic}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"URLhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URLhref{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xcb\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/maabook#c\": [\n      \"letterpaper\",\n      \"a4paper\",\n      \"5.5x8.5\",\n      \"6x9\",\n      \"7x10\",\n      \"draft\",\n      \"proofing\",\n      \"final\",\n      \"openright\",\n      \"openany\",\n      \"cmr\",\n      \"mathtimes\",\n      \"stix2\",\n      \"cambria\",\n      \"brill\",\n      \"10pt\",\n      \"11pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/maabook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-matapli.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"subfig\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"bclogo\"\n    },\n    {\n      \"name\": \"lettrine\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"incgraph\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"listingsutf8\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"pdfcol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titre{${1:titre de l’article%text}}\"\n      }\n    },\n    {\n      \"name\": \"titre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titre[${2:options%keyvals}]{${1:titre de l’article%text}}\",\n        \"keys\": [\n          \"\\\\titre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:options%keyvals}]{${1:Nom,Prénom}}\",\n        \"keys\": [\n          \"\\\\author\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printauthors\"\n    },\n    {\n      \"name\": \"printauthors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printauthors[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\printauthors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partie{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"partie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partie[${2:option%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\partie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thelemma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecorollary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MatapliQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MatapliQuestion{${1:Une question posée%text}}\"\n      }\n    },\n    {\n      \"name\": \"MatapliQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MatapliQuestion[${2:Nom optionnel}]{${1:Une question posée%text}}\"\n      }\n    },\n    {\n      \"name\": \"MatapliReponse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MatapliReponse{${1:Nom}}{${2:Réponse%text}}\"\n      }\n    },\n    {\n      \"name\": \"articletableofcontents\"\n    },\n    {\n      \"name\": \"sommaire\"\n    },\n    {\n      \"name\": \"correspondant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"correspondant{${1:ville}}{${2:Nom Prénom}}{${3:laboratoire/université}}{${4:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"colloque\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"colloque{${1:Titre du colloque%text}}{${2:date et lieu}}{${3:site web%URL}}\"\n      }\n    },\n    {\n      \"name\": \"MatapliChapterFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mois\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redacteurMatapli\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"redacteurMatapli{${1:titre ou thème%text}}{${2:Prénom Nom}}{${3:affiliation laboratoire université}}{${4:email}}\"\n      }\n    },\n    {\n      \"name\": \"creditcouverture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"creditcouverture{${1:Crédit%text}}\"\n      }\n    },\n    {\n      \"name\": \"chapformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ruleundersub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ruleundersub{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ruleunder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ruleunder{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapterpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bloc\"\n    },\n    {\n      \"name\": \"bloc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:titre%text}]\"\n      }\n    },\n    {\n      \"name\": \"Important\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:Titre du théorème%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:Titre de la définition%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"soutenance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:nom du/de la docteure}}{${2:date et lieu}}{${3:titre%text}}{${4:nom du ou de la directrice}}\"\n      }\n    },\n    {\n      \"name\": \"soutenanceHDR\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:nom du/de la docteure}}{${2:date et lieu}}{${3:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"matapliauteurtitre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matapliquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\titre\": [\n      \"court={${1:titre court}}\",\n      \"auteur=${1|article,partie|}\"\n    ],\n    \"\\\\author\": [\n      \"affiliation={${1:Laboratoire, université, etc.}}\",\n      \"email=${1:email}\",\n      \"minibio={${1:Petite biographie de l’auteur}}\",\n      \"photo=${1:imagefile}\",\n      \"webpage=${1:URL}\",\n      \"type=${1|unique,collectif|}\"\n    ],\n    \"\\\\printauthors\": [\n      \"partie\"\n    ],\n    \"\\\\partie\": [\n      \"auteur=${1|article,partie|}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-mcmthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"hhline\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"flafter\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"berasans\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mcmsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcmsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mcmsetup,\\\\documentclass/mcmthesis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dif\"\n    },\n    {\n      \"name\": \"headset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhaddress{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"lstbasicfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makesheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"me\"\n    },\n    {\n      \"name\": \"memodate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memodate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"memofrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memofrom{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"memologo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memologo{${1:logo code}}\"\n      }\n    },\n    {\n      \"name\": \"memosubject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memosubject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"memoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memoto{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mi\"\n    },\n    {\n      \"name\": \"team\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Corollary\"\n    },\n    {\n      \"name\": \"Corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition\"\n    },\n    {\n      \"name\": \"Definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example\"\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma\"\n    },\n    {\n      \"name\": \"Lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:salutation%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\"\n    },\n    {\n      \"name\": \"memo\"\n    },\n    {\n      \"name\": \"memo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition\"\n    },\n    {\n      \"name\": \"Proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Theorem\"\n    },\n    {\n      \"name\": \"Theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\mcmsetup,\\\\documentclass/mcmthesis#c\": [\n      \"CTeX\",\n      \"titlepage\",\n      \"abstract\",\n      \"sheet\",\n      \"titleinsheet\",\n      \"keywordsinsheet\",\n      \"tcn=${1:team control number}\",\n      \"problem=${1:question}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\mcmsetup,\\\\documentclass/mcmthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mcom-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mcom-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mcom-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-meetingmins.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"mathabx\",\n      \"if\": \"chair\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"chair\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"absent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absent{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"alsopresent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alsopresent{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nextmeeting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextmeeting{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"priormins\"\n    },\n    {\n      \"name\": \"role\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"role{${1:name}}{${2:role%text}}\"\n      }\n    },\n    {\n      \"name\": \"secretary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secretary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setcommittee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcommittee{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"setdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"setmembers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmembers{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"setpresent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpresent{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"items\"\n    },\n    {\n      \"name\": \"subitems\"\n    },\n    {\n      \"name\": \"subsubitems\"\n    },\n    {\n      \"name\": \"hiddenitems\"\n    },\n    {\n      \"name\": \"hiddensubitems\"\n    },\n    {\n      \"name\": \"hiddensubsubitems\"\n    },\n    {\n      \"name\": \"hiddentext\"\n    },\n    {\n      \"name\": \"emptysection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subitemlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubitemlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/meetingmins#c\": [\n      \"agenda\",\n      \"chair\",\n      \"notes\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/meetingmins#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-memo-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsbook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PII{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"revertcopyright\"\n    },\n    {\n      \"name\": \"issuenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenote{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/memo-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"openright\",\n      \"openany\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/memo-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-memoir.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"delarray\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abnormalparskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abnormalparskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"abovecolumnspenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abscolnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abscoltextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abslabeldelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abslabeldelim{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"absleftindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absnamepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absrightindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractrunin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstracttextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addappheadtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"added\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"added{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"addperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addperiod{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtodef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtodef{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtodef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtodef*{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtoiargdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtoiargdef{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtoiargdef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtoiargdef*{${1:cmd}}{${2:prepend}}{${3:append}}\"\n      }\n    },\n    {\n      \"name\": \"addtonotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtopsmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtopsmarks{${1:pagestyle%keyvals}}{${2:prepend}}{${3:append}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtostream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtostream{${1:stream}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"afterbookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchaptertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterloftitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterlottitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitlenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterPoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpoemtitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubsubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertoctitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aliaspagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aliaspagestyle{${1:alias%keyvals}}{${2:original}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anyptfilebase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anyptsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpage*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixtocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"arraytostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraytostring{${1:array name}}{${2:result%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"atcentercr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"atendtheglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autocols\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"autocols{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autocols\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"autocols[${5:width}]{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autorows\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"autorows{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"autorows\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"autorows[${5:width}]{${1:preamble}}{${2:numOfCols}}{${3:style}}{${4:entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"beforebookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforechapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforePoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepoemtitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubparaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubsubsecskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begintheglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblistextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bicaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"bicaption[${5:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bicontcaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bicontcaption{${1:long1%text}}{${2:name%text}}{${3:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"binding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bionenumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bionenumcaption[${6:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bitwonumcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"bitwonumcaption[${6:label%labeldef}]{${1:short1%text}}{${2:long1%text}}{${3:name%text}}{${4:short2%text}}{${5:long2%text}}\"\n      }\n    },\n    {\n      \"name\": \"bktabrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bktabrule{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"blockdescriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockdescriptionlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"book{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bookblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booknumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"booknumberlinebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booknumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booknumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"booknumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookpagemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookpagemark{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"bookrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booktitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomsectionpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxedverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedverbatiminput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxedverbatiminput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedverbatiminput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxverbflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"bs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvendofpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvendofpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvendrulehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvleftsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumbersinside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumbersoutside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvnumlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvrightsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvsides\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopandtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopmidhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvtopofpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvtopofpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bvtoprulehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calccentering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calccentering{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cancelthanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiondelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiondelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"captionnamefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionnamefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionstyle[${2:shortstyle}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"captiontitlefinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontitlefinal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captiontitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontitlefont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"centerfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerlastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftaddnumtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cftaddnumtitleline{${1:ext}}{${2:kind}}{${3:num}}{${4:title%text}}{${5:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cftaddtitleline{${1:ext}}{${2:kind}}{${3:title%text}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftappendixname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforebookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforechapterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforefigureskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforeparagraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforepartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubparagraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforesubsubsectionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbeforetableskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftbookformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftbookindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbooknumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftbookpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapteraftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapteraftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapternumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapterpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftdotfill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftdotfill{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfiguredotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurefillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigurefillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigurefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigureformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigureformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftfigureformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftfigureindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigureleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurepagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigurepresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftinsert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftinsert{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cftinsertcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cftinsertcode{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cftinserthook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cftinserthook{${1:file}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"cftlocalchange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftlocalchange{${1:ext}}{${2:pnumwidth}}{${3:toc}}\"\n      }\n    },\n    {\n      \"name\": \"cftnodots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpagenumbersoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumbersoff{${1:kind}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumberson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumberson{${1:kind}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftparagraphformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftparagraphindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparagraphpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartfillnum{${1:pnum}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartformatpnum{${1:pnum}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpartformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftpartindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsetindents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftsetindents{${1:kind}}{${2:indent}}{${3:numwidth}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphdotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubparagraphformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubparagraphindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparagraphpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectiondotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionfillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionfillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsubsubsectionformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cftsubsubsectionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionpagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsectionpresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableafterpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableaftersnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableaftersnumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabledotsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablefillnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttablefillnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cfttablefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableformatpnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttableformatpnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cfttableformatpnumhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfttableformatpnumhook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cfttableindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttableleader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablepagefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttablepresnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftwhatismyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changecaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changed{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossactual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossactual{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossactual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossactual[${2:file}]{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossnum{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossnum[${2:file}]{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossnumformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossnumformat[${2:file}]{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeglossref{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changeglossref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changeglossref[${2:file}]{${1:thecounter}}\"\n      }\n    },\n    {\n      \"name\": \"changemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"changepage{${1:textheight}}{${2:textwidth}}{${3:evensidemargin}}{${4:oddsidemargin}}{${5:columnsep}}{${6:topmargin}}{${7:headheight}}{${8:headsep}}{${9:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"changetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"changetext{${1:textheight}}{${2:textwidth}}{${3:evensidemargin}}{${4:oddsidemargin}}{${5:columnsep}}\"\n      }\n    },\n    {\n      \"name\": \"changetocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changetocdepth{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"chapindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapterheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chapternumberlinebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecishere\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecishere{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterprecistoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterprecistoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\chapterstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaptitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkandfixthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkandfixthelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"checkandfixthelayout[${1:algorithm%keyvals}]\",\n        \"keys\": [\n          \"\\\\checkandfixthelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"checkarrayindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"checkarrayindex{${1:array name}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"checkifinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkifinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"checkoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkthelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"checkthelayout[${1:algorithm%keyvals}]\",\n        \"keys\": [\n          \"\\\\checkthelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citeindexfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearforchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"clearplainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearplainmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartoevenpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"cleartooddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartooddpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartooddpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"cleartorecto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"closeoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cmdprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdprint{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"colorchapnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorchaptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentsoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentsoff{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"commentson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentson{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"continuousmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuousnotenums\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubbottom[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubbottom\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubbottom[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contsubtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contsubtop[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contsubtop\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"contsubtop[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copypagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copypagestyle{${1:copy%specialDef}}{${2:original%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"createmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"createmark{${1:sec}}{${2:marks%keyvals}}{${3:show}}{${4:prefix}}{${5:postfix}}\",\n        \"keys\": [\n          \"\\\\createmark,\\\\createplainmark\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"createplainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"createplainmark{${1:type}}{${2:marks%keyvals}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\createmark,\\\\createplainmark\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"crtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ctableftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctabrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctabsetlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deleted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deleted{${1:change-id}}\"\n      }\n    },\n    {\n      \"name\": \"DisemulatePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisemulatePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"doccoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoubleSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoubleSpacing*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dropchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropchapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"droptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"easypagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptythanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmulatedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmulatedPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"EmulatedPackage{${1:package}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EmulatedPackageWithOptions{${1:options}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"EmulatedPackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"EmulatedPackageWithOptions{${1:options}}{${2:package}}[${3:date}]\"\n      }\n    },\n    {\n      \"name\": \"endMakeFramed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ensureonecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraph{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphfontsize{${1:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphforheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphforheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphforheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphforheader[${2:distance%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphhead[${2:distance%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphsourceposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphsourceposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphtextposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphtextposition{${1:flush}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everylistparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetminihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetreinshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancybreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancybreak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fancybreak*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancybreak*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"feetabovefloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetatbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetbelowfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feetbelowragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixdvipslayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixheaderwidths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixpdflayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixthelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flagverse{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"flegfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegtocfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flegtocfigure{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"flegtoctable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flegtoctable{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"FloatBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FloatBlockAllowAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FloatBlockAllowBelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushleftright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefiddle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesatfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesinmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footruleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottopagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"foremargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameHeightAdjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepichead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepichook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepictextfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"frontmatter*\"\n    },\n    {\n      \"name\": \"Ftrimpicbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getarrayelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getarrayelement{${1:array name}}{${2:index}}{${3:result}}\"\n      }\n    },\n    {\n      \"name\": \"getthelinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthelinenumber{${1:counter}}{${2:start}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossary{${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glossary[${3:file}]{${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"glossary[${3:file}](${4:key%plain}){${1:term}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"glossarycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarymark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glossitem{${1:term}}{${2:description%text}}{${3:ref}}{${4:num}}\"\n      }\n    },\n    {\n      \"name\": \"gobm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hangcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangfrom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hangpara\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangpara{${1:indent%l}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"hangsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headnameref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headstyles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headstyles{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"headwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideindexmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"hyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hyperspindexpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idtextinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idtextinnotes{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ifanappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifartopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbvcountlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvcountlinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvcountlinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbvperpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvperpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvperpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdraftdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmemtortm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnobibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifonlyfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifonlyfloats{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifscapmargleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scapmarglefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scapmargleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfStreamOpen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfStreamOpen{${1:stream}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorenoidxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiirdstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iindstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentafterchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentcaption{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"indentpattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentpattern{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"indexcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexmarkstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertchapterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iscntrmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iscntrmod{${1:counter}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"isopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isopage{${1:spine%l}}\"\n      }\n    },\n    {\n      \"name\": \"iststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"justlastraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keepthetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"killtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"label(${2:bookmark}){${1:label%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"LastFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlineparrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinerulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leadpagetoclevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leavespergathering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leavespergathering{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"leftcenterright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftspringright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"leftspringright{${1:lfrac}}{${2:rfrac}}{${3:ltext}}{${4:rtext}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"letcountercounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letcountercounter{${1:counter1}}{${2:counter2}}\"\n      }\n    },\n    {\n      \"name\": \"linemodnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenottooshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenottooshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linenottooshort[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"linenumberfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"linenumberfrequency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberfrequency{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"linespercol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lofheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lofmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loosesubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lotheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpicbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpicbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpictl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ltrimpictr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lxvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"mainmatter*\"\n    },\n    {\n      \"name\": \"makechapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makechapterstyle{${1:name%specialDef}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"makeevenfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeevenfoot{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeevenhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeevenhead{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makefootmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makefootmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makefootmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefootrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makefootrule{${1:pagestyle%keyvals}}{${2:width}}{${3:thickness%l}}{${4:skip%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeFramed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeFramed{${1:settings}}\"\n      }\n    },\n    {\n      \"name\": \"makeheadfootruleprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootruleprefix{${1:pagestyle%keyvals}}{${2:for headrule}}{${3:for footrule}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadfootstrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootstrut{${1:pagestyle%keyvals}}{${2:head strut}}{${3:foot strut}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadfootvposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadfootvposition{${1:pagestyle%keyvals}}{${2:arg2}}{${3:arg3}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"makeheadposition{${1:pagestyle%keyvals}}{${2:eheadpos}}{${3:oheadpos}}{${4:efootpos}}{${5:ofootpos}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeheadrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeheadrule{${1:pagestyle}}{${2:width}}{${3:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"makeheadstyles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeheadstyles{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"makeindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeindex[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"makememglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makememindexhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeoddfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeoddfoot{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeoddhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"makeoddhead{${1:pagestyle%keyvals}}{${2:left}}{${3:center}}{${4:right}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makepagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makepagestyle{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"makepsmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makepsmarks{${1:pagestyle%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningfootwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningfootwidth{${1:pagestyle%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningheadwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningheadwidth{${1:pagestyle%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makerunningwidth{${1:pagestyle%keyvals}}{${2:headwidth%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makerunningwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makerunningwidth{${1:pagestyle%keyvals}}[${3:footwidth%l}]{${2:headwidth%l}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makesidefootmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesidefootmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesidefootmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethanksmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehooka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marginfloatmarginmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginparmargin{${1:placement}}\"\n      }\n    },\n    {\n      \"name\": \"maxsecnumdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxsecnumdepth{${1:secname%keyvals}}\",\n        \"keys\": [\n          \"\\\\maxsecnumdepth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxtocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxtocdepth{${1:secname}}\"\n      }\n    },\n    {\n      \"name\": \"medievalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medievalpage{${1:spine%l}}\"\n      }\n    },\n    {\n      \"name\": \"memappchapinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memappchapinfo{${1:chapter}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memappchapstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memappchapstarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memapppageinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memapppageinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memapppagestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memapppagestarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"membicaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membicaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membionenumcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membionenumcaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membitwonumcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"membitwonumcaptioninfo{${1:type}}{${2:thetype}}{${3:short1}}{${4:title1}}{${5:short2}}{${6:title2}}\"\n      }\n    },\n    {\n      \"name\": \"membookinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"membookinfo{${1:thebook}}{${2:for toc}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"membookstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membookstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memcaptioninfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memcaptioninfo{${1:type}}{${2:thetype}}{${3:for toc}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memchapinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memchapinfo{${1:chapter}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memchapstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memchapstarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memcline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memcline{${1:width}}{${2:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"memdskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memdskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memendofchapterhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfblineboxa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memfblineboxa{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memfblineboxtwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memfblineboxtwo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memfblistfixparams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontenc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memfontpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memglodesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memglodesc{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"memglonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memglonum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"memgloref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgloref{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"memgloterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgloterm{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"memgobble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memgobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memhline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memhline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"memhline[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"memifmacroused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memifmacroused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memjustarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memjustarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"memleadpageinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memleadpageinfo{${1:pagestyle%keyvals}}{${2:name}}{${3:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"memleadpagestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memleadpagestarinfo{${1:pagestyle%keyvals}}{${2:name}}{${3:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"memlegendinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memlegendinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memletcmdtxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memletcmdtxt{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"memlettxttxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memlettxttxt{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"memlettxtcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memlettxtcmd{${1:csname}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memlistsubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memnamedlegendinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memnamedlegendinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memoirpostopthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorigdbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorigpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempartinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mempartinfo{${1:part}}{${2:for toc}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempartstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempartstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempnofilewarn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempoeminfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempoeminfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempoemstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mempoemstarinfo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPoemTitleinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"memPoemTitleinfo{${1:thepoem}}{${2:for toc}}{${3:for head}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memPoemTitlestarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memPoemTitlestarinfo{${1:for toc}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mempostaddapppagetotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddbooktotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddchaptertotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempostaddparttotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddapppagetotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddbooktotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddchaptertotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mempreaddparttotochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MemRestoreOrigMakecase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLmainraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLmainraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLvleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memRTLvrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memsecinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"memsecinfo{${1:name}}{${2:thename}}{${3:for toc}}{${4:for head}}{${5:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memsecstarinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memsecstarinfo{${1:name}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"memsetcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"memsetcounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"memsetlengthmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memsetlengthmax{${1:length}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"memsetlengthmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"memsetlengthmin{${1:length}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"memsetmacrounused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memsetmacrounused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memsetmacroused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memsetmacroused{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"memUChead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memwritetoglo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"memwritetoglo{${1:key%plain}}{${2:name}}{${3:desc}}{${4:ref}}{${5:number}}\"\n      }\n    },\n    {\n      \"name\": \"mergepagefloatstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mergepagefloatstyle{${1:style}}{${2:textstyle}}{${3:floatstyle}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"midbicaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midbicaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"midbookskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midchapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MidFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midpartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midPoemTitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miniscule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetoevenpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetoevenpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetoevenpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"movetooddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movetooddpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetooddpage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"mpjustification\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msdoublespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mssinglespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedlegend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namedsubappendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumberand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumbercomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nametest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nametest{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"needspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"newarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarray{${1:array name}}{${2:low}}{${3:high}}\"\n      }\n    },\n    {\n      \"name\": \"newcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"newfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newfixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloat{${1:envname}}{${2:ext}}{${3:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newfloat[${4:within}]{${1:envname}}{${2:ext}}{${3:capname}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnoteseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnoteseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"newinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"newleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newleadpage*[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newleadpage*{${1:cmd}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"newleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newleadpage[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newleadpage{${1:cmd}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistentry{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistentry[${4:within}]{${1:counter}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistof{${1:csname}}{${2:ext}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"newloglike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newloglike{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"newloglike*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newloglike*{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"newoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"newpmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpmemlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"nNamec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobibintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobookblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nochangemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noDisplayskipStretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noglossaryintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindentafterchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindexintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonzeroparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopartblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopfbreakOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noprelistbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbottomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalrulethickness\"\n    },\n    {\n      \"name\": \"normalsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notedivision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteidinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noteidinnotes{${1:number}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"noteinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noteinnotes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notenuminnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenuminnotes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notenumintext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenumintext{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"notepageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nouppercaseheads\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberlinebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numberlinebox{${1:length}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"numberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"onecolglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onecolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onecoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnehalfSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnehalfSpacing*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelineskip\"\n    },\n    {\n      \"name\": \"openany\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openinputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openinputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"openleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openoutputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openoutputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"openright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"OrdinalToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrdinalToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordscript{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"overridescapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overridescapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"pageai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageavi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageavii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebroadsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedbill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageexecutive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefoolscapvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageimperialvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageinnotes{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pagelargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelargepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageledger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelegal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemediumvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemlargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemsmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenoteanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenoteanchor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotehyperanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenotehyperanchor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotesubhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pagenotesubhead{${1:chapapp}}{${2:number}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotesubheadstarred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pagenotesubheadstarred{${1:chapapp}}{${2:number}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenumbering*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenumbering*{${1:numstyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagenumbering*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pageold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagepottvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesmalldemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagestatement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesuperroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetofootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"paragraph[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphfootstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"paraheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parahook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paraindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parnopar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partblankpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"partnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnamenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberlinebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partnumberlinebox{${1:length}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberlinehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberlinehook{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"partnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patchcmdError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patchcmdError{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"patchcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"patchcommand{${1:cmd}}{${2:start code}}{${3:end code}}\"\n      }\n    },\n    {\n      \"name\": \"pfbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreak*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreakdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pfbreakdisplay{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pfbreakOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfbreakskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plainbreak{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"plainfancybreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plainfancybreak{${1:space}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"plainfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plainfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"PlainPoemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pmemlabelref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabelref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"pmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnchap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnschap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoemTitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PoemTitle[${2:for toc%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PoemTitle[${2:for toc%text}][${3:for head%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoemTitle*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PoemTitle*[${2:for toc%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PoemTitle*[${2:for toc%text}][${3:for head%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoemTitleheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlemark{${1:for head}}\"\n      }\n    },\n    {\n      \"name\": \"PoemTitlenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlepstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlestarmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlestarmark{${1:for head}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlestarpstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postautotab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postbibhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postchapterprecis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postdate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postnoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preautotab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prebibhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prechapterprecis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechapterprecisshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precisfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistocfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistocformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precistoctext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precistoctext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"predate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"predate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"Pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"preglossaryhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preindexhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prenoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prenotetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbooknum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbooktitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbooktitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchapternonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchaptertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printchaptertitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printglossary[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"printloftitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printloftitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printlottitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlottitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printpageinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printpageinnotes{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"printpageinnoteshyperref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printpageinnoteshyperref{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"printpagenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpagenotes*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpartnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printparttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printparttitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printPoemTitlenonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printPoemTitlenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printPoemTitletitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPoemTitletitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"printtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtime*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtoctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtoctitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"providecounter{${1:counter}}[${2:within}]\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"providefixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providefixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"providelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"provideloglike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideloglike{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qitem{${1:text}}{${2:source%text}}\"\n      }\n    },\n    {\n      \"name\": \"qitemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qitemlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quarkmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedbottomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedrightthenleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedwrap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"raggedyright[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"ragrparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readaline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readaline{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readboxedverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readboxedverbatim{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readboxedverbatim*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readboxedverbatim*{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readverbatim{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readverbatim*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readverbatim*{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"refixpagelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registrationColour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registrationColour{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfixedcaption{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"renewfixedcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewfixedcaption[${3:cap-cmd}]{${1:cmd}}{${2:float}}\"\n      }\n    },\n    {\n      \"name\": \"renewleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewleadpage*[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewleadpage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewleadpage*{${1:cmd}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewleadpage[${3:pagestyle%keyvals}]{${1:cmd}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewleadpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewleadpage{${1:cmd}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"reparticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportnoidxfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RequireAtEndClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RequireAtEndClass{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"RequireAtEndPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RequireAtEndPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"resetbvlinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorefromonecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorepagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoretrivseps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"russianpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savetrivseps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saythanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semiisopage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semiisopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiisopage[${1:spine%l}]\"\n      }\n    },\n    {\n      \"name\": \"setafterparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setafterparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setaftersubsubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaftersubsubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setarrayelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarrayelement{${1:array name}}{${2:index}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforeparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforeparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubparaskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubparaskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforesubsubsecskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforesubsubsecskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setbiblabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbiblabel{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setbinding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbinding{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setbvlinenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbvlinenums{${1:first}}{${2:start at}}\"\n      }\n    },\n    {\n      \"name\": \"setcolsepandrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolsepandrule{${1:colsep%l}}{${2:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"setDisplayskipStretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDisplayskipStretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setfillsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"setfillsize{${1:T}}{${2:C}}{${3:L}}{${4:R}}{${5:r}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatadjustment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfloatadjustment{${1:float name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setFloatBlockFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFloatBlockFor{${1:sectional name}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatlocations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfloatlocations{${1:float}}{${2:locs}}\"\n      }\n    },\n    {\n      \"name\": \"setFloatSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFloatSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setfootins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfootins{${1:length normal}}{${2:length minipage}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfootnoterule{${1:vfill}}{${2:uplift}}{${3:width}}{${4:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"sethangfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethangfrom{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setheaderspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setheaderspaces{${1:headdrop%l}}{${2:headsep%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setheadfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setheadfoot{${1:headheight%l}}{${2:footskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setlrmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlrmargins{${1:spine%l}}{${2:edge%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setlrmarginsandblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlrmarginsandblock{${1:spine%l}}{${2:edge%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setlxvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlxvchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setlxvchars[${1:fontspec}]\"\n      }\n    },\n    {\n      \"name\": \"setmarginfloatcaptionadjustment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmarginfloatcaptionadjustment{${1:float}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setmarginnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setmarginnotes{${1:separation%l}}{${2:width}}{${3:psuh%l}}\"\n      }\n    },\n    {\n      \"name\": \"setmpbools\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmpjustification\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmpjustification{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"setnzplist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpagebl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebl{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagebm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebm{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagebr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagebr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagecc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagecc{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpageml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpageml{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagemr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagemr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setPagenoteSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPagenoteSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetl{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetm{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setpagetr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpagetr{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setparaheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparaheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setparahook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparahook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setparaindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparaindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setpnumwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpnumwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setrectanglesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrectanglesize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setrmarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrmarg{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsecnumdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumdepth{${1:secname%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsecnumdepth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsecnumformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumformat{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setsidebarheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidebarheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidebars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setsidebars{${1:hsep}}{${2:width}}{${3:vsep}}{${4:topsep}}{${5:font}}{${6:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidecappos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidecappos{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"setsidecaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsidecaps{${1:sep}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefeet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setsidefeet{${1:hsep}}{${2:width}}{${3:vsep}}{${4:adj}}{${5:font}}{${6:height}}\"\n      }\n    },\n    {\n      \"name\": \"setsidefootheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidefootheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setSpacing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSpacing{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setspbools\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstocksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstocksize{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparaheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparaheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparahook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparahook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubparaindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubparaindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsecheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsecheadstyle{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsechook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsechook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubsubsecindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubsubsecindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setthesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settocdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocdepth{${1:secname}}\"\n      }\n    },\n    {\n      \"name\": \"settocpreprocessor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settocpreprocessor{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"settrimmedsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settrimmedsize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"settrims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settrims{${1:top}}{${2:foredge}}\"\n      }\n    },\n    {\n      \"name\": \"settypeblocksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settypeblocksize{${1:height}}{${2:width}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"settypeoutlayoutunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settypeoutlayoutunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"setulmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setulmargins{${1:upper%l}}{${2:lower%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setulmarginsandblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setulmarginsandblock{${1:upper%l}}{${2:lower%l}}{${3:ratio}}\"\n      }\n    },\n    {\n      \"name\": \"setupcomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setverbatimfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setverbatimfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setverselinenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setverselinenums{${1:first}}{${2:start at}}\"\n      }\n    },\n    {\n      \"name\": \"setxlvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setxlvchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setxlvchars[${1:fontspec}]\"\n      }\n    },\n    {\n      \"name\": \"shortsubcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showheadfootlocoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showheadfootlocon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showindexmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtextblocklocoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtextblocklocon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtrimsoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtrimson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidebarfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarhsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebarmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidebartopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidebarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapfloatwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidecapraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecapwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefoothsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootmarkstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootmarkstyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidefootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sidefootnotemark[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidefootnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidefootnotetext[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefootparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefoottextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidefootwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideparmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideparmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"sideparvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SingleSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slashfrac{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"slashfracstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slashfracstyle{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"sloppybottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourceatright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sourceatright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceatright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sourceatright[${2:length}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialindex{${1:file}}{${2:counter}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"spinemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"stanzaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockaiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockavi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockavii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbroadsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockbvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockdbill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockexecutive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockfoolscapvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockimperialvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklargepostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockledger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocklegal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmcrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmdemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmediumvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmlargecrownvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockmsmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockpostvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockpottvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksmalldemyvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksmallroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockstatement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stocksuperroyalvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stringtoarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stringtoarray{${1:array name}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subbottom[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subbottom\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subbottom[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionlabelfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionlabelfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"subconcluded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcapmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatcaptopadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatlabelskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloattopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subparagraph[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subparaheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparahook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparaindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsection[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsechook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsecindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsubsection[${2:toc-title%text}][${3:head-title%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtop[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtop\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtop[${2:short text%text}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"symboldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symboldef{${1:symbol}}{${2:meaning}}\"\n      }\n    },\n    {\n      \"name\": \"symbollabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbollabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"symbolthanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teennumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teennumbername{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teenordinalname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensnumbername{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensordinalname{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensunitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksgap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksgap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"thanksheadextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thanksheadextra{${1:pre}}{${2:post}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmark{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksmarkseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmarkseries{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarkstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmarkstyle{${1:defn}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastsheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxsecnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesheetsequence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesidefootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolumnfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threecolumnfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"tiethstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightsubcaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"titleref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref*{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"titlingpageend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkmr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarktr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocbaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocentryskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocnameref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"topsepi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsepii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsepiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"traditionalparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"trimedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimFrame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimLmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimmarkscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trimXmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocoltocetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumnfootstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnfootstyle{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"typeoutlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeoutstandardlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ucminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"undodrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitnumbername{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unitordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitordinalname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unletcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unletcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"unnamedsubappendices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercaseheads\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usethanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verselinebreak[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"verselinenumbersleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinenumbersright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vinphantom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vinphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vleftofline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vleftofline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vleftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vlvnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xindyindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlvchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zerotrivseps\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"adjustwidth*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left%l}}{${2:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjustwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left%l}}{${2:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"altverse\"\n    },\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"bibitemlist\"\n    },\n    {\n      \"name\": \"blockdescription\"\n    },\n    {\n      \"name\": \"boxedverbatim*\"\n    },\n    {\n      \"name\": \"boxedverbatim\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"ctabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"ctabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleSpace*\"\n    },\n    {\n      \"name\": \"DoubleSpace\"\n    },\n    {\n      \"name\": \"epigraphs\"\n    },\n    {\n      \"name\": \"fboxverbatim\"\n    },\n    {\n      \"name\": \"flexlabelled\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"hangparas\"\n    },\n    {\n      \"name\": \"KeepFromToc\"\n    },\n    {\n      \"name\": \"labelled\"\n    },\n    {\n      \"name\": \"leftbar\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"midsloppypar\"\n    },\n    {\n      \"name\": \"onecolabstract\"\n    },\n    {\n      \"name\": \"OnehalfSpace*\"\n    },\n    {\n      \"name\": \"OnehalfSpace\"\n    },\n    {\n      \"name\": \"patverse*\"\n    },\n    {\n      \"name\": \"patverse\"\n    },\n    {\n      \"name\": \"qframe\"\n    },\n    {\n      \"name\": \"qshade\"\n    },\n    {\n      \"name\": \"shaded\"\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:fortoc}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:fortoc}]{${1:title%text}}[${3:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidecontcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecontcaption\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidelegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidelegend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"sidenamedlegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenamedlegend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"SingleSpace\"\n    },\n    {\n      \"name\": \"snugshade\"\n    },\n    {\n      \"name\": \"Spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"subappendices\"\n    },\n    {\n      \"name\": \"subfloat\"\n    },\n    {\n      \"name\": \"symbols\"\n    },\n    {\n      \"name\": \"theglossary\"\n    },\n    {\n      \"name\": \"titlingpage*\"\n    },\n    {\n      \"name\": \"titlingpage\"\n    },\n    {\n      \"name\": \"verbatimoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"vminipage\"\n    },\n    {\n      \"name\": \"vplace\"\n    },\n    {\n      \"name\": \"writeverbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stream}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/memoir\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"a7paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"b7paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\chapterstyle\": [\n      \"article\",\n      \"asu\",\n      \"asuappendix\",\n      \"bianchi\",\n      \"bringhurst\",\n      \"brotherton\",\n      \"chappell\",\n      \"companion\",\n      \"crosshead\",\n      \"culver\",\n      \"dash\",\n      \"default\",\n      \"demo\",\n      \"demo2\",\n      \"demo3\",\n      \"dowding\",\n      \"ell\",\n      \"fred\",\n      \"ger\",\n      \"hangnum\",\n      \"komalike\",\n      \"lyhne\",\n      \"madsen\",\n      \"ntglike\",\n      \"pedersen\",\n      \"reparticle\",\n      \"section\",\n      \"southall\",\n      \"tandh\",\n      \"thatcher\",\n      \"veelo\",\n      \"verville\",\n      \"wilsondob\",\n      \"%chapterstyle\"\n    ],\n    \"\\\\checkandfixthelayout\": [\n      \"fixed\",\n      \"classic\",\n      \"lines\",\n      \"nearest\"\n    ],\n    \"\\\\checkthelayout\": [\n      \"fixed\",\n      \"classic\",\n      \"lines\",\n      \"nearest\"\n    ],\n    \"\\\\createmark,\\\\createplainmark\": [\n      \"left\",\n      \"both\",\n      \"right\"\n    ],\n    \"\\\\maxsecnumdepth\": [\n      \"book\",\n      \"part\",\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"paragraph\",\n      \"subparagraph\",\n      \"all\",\n      \"none\"\n    ],\n    \"\\\\setsecnumdepth\": [\n      \"book\",\n      \"part\",\n      \"chapter\",\n      \"section\",\n      \"subsection\",\n      \"subsubsection\",\n      \"paragraph\",\n      \"subparagraph\",\n      \"all\",\n      \"none\"\n    ],\n    \"\\\\pagenumbering*#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\addtopsmarks#c,\\\\aliaspagestyle#c,\\\\copypagestyle#c,\\\\makeevenfoot#c,\\\\makeevenhead#c,\\\\makefootrule#c,\\\\makeheadfootruleprefix#c,\\\\makeheadfootstrut#c,\\\\makeheadfootvposition#c,\\\\makeheadposition#c,\\\\makeheadrule#c,\\\\makeoddfoot#c,\\\\makeoddhead#c,\\\\makepsmarks#c,\\\\makerunningfootwidth#c,\\\\makerunningheadwidth#c,\\\\makerunningwidth#c,\\\\makerunningwidth#c,\\\\memleadpageinfo#c,\\\\memleadpagestarinfo#c,\\\\newleadpage#c,\\\\newleadpage*#c,\\\\renewleadpage#c,\\\\renewleadpage*#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"simple\",\n      \"ruled\",\n      \"Ruled\",\n      \"companion\",\n      \"book\",\n      \"chapter\",\n      \"cleared\",\n      \"part\",\n      \"title\",\n      \"titlingpage\",\n      \"%pagestyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/memoir\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mensa-tex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"datetime2-calc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mensaname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mensaname{${1:cafeteria name}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute name}}\"\n      }\n    },\n    {\n      \"name\": \"setimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setimage{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"startdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startdate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"monday\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"monday{${1:menu1}}{${2:menu2}}{${3:dessert}}{${4:dinner}}\"\n      }\n    },\n    {\n      \"name\": \"tuesday\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tuesday{${1:menu1}}{${2:menu2}}{${3:dessert}}{${4:dinner}}\"\n      }\n    },\n    {\n      \"name\": \"wednesday\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"wednesday{${1:menu1}}{${2:menu2}}{${3:dessert}}{${4:dinner}}\"\n      }\n    },\n    {\n      \"name\": \"thursday\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"thursday{${1:menu1}}{${2:menu2}}{${3:dessert}}{${4:dinner}}\"\n      }\n    },\n    {\n      \"name\": \"friday\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"friday{${1:menu1}}{${2:menu2}}{${3:dessert}}{${4:dinner}}\"\n      }\n    },\n    {\n      \"name\": \"longremarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longremarks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortremarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortremarks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vgt\"\n    },\n    {\n      \"name\": \"vgn\"\n    },\n    {\n      \"name\": \"setbgcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbgcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setcolorfg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolorfg{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setctextcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setctextcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bgcolor\"\n    },\n    {\n      \"name\": \"colorfg\"\n    },\n    {\n      \"name\": \"ctextcolor\"\n    },\n    {\n      \"name\": \"menuname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dessertname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dinnername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dietname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dowshortdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"swdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swdayname{${1:day}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-metanorma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"set{${1:attribute%specialDef}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"get\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"get{${1:attribute%keyvals}}\",\n        \"keys\": [\n          \"\\\\get#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mn{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alt{${1:term%text}}\"\n      }\n    },\n    {\n      \"name\": \"deprecated\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deprecated{${1:term%text}}\"\n      }\n    },\n    {\n      \"name\": \"domain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"domain{${1:domain%text}}\"\n      }\n    },\n    {\n      \"name\": \"mncite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mncite{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"mncite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mncite[${2:add. text%text}]{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"mncite\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mncite{${1:key}}[${2:localities}]\"\n      }\n    },\n    {\n      \"name\": \"mncite\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mncite[${2:add. text%text}]{${1:key}}[${3:localities}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"source\"\n    },\n    {\n      \"name\": \"key\"\n    },\n    {\n      \"name\": \"requirement\"\n    },\n    {\n      \"name\": \"recommendation\"\n    },\n    {\n      \"name\": \"permission\"\n    },\n    {\n      \"name\": \"specification\"\n    },\n    {\n      \"name\": \"verification\"\n    },\n    {\n      \"name\": \"import\"\n    },\n    {\n      \"name\": \"tip\"\n    },\n    {\n      \"name\": \"important\"\n    },\n    {\n      \"name\": \"caution\"\n    },\n    {\n      \"name\": \"warning\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\get#c\": [\n      \"%metanormaattribute\"\n    ],\n    \"\\\\mn#c\": [\n      \"heading=${1:heading}\",\n      \"level=${1:level}\",\n      \"obligation=${1|informative,normative|}\",\n      \"language=${1:lang code}\",\n      \"script=${1:script name}\",\n      \"reviewer=\\\"${1:name}\\\"\",\n      \"from=${1:anchor}\",\n      \"to=${1:anchor}\",\n      \"date=${1:date}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-milog.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xkvltxp\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"background\"\n    },\n    {\n      \"name\": \"transparent\"\n    },\n    {\n      \"name\": \"pgfplotstable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"milog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"milog{${1:CSV file%file}}\"\n      }\n    },\n    {\n      \"name\": \"milog\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"milog[${2:options%keyvals}]{${1:CSV file%file}}\",\n        \"keys\": [\n          \"\\\\milog,\\\\milogsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Formular\"\n    },\n    {\n      \"name\": \"milogsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"milogsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\milog,\\\\milogsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\milog,\\\\milogsetup\": [\n      \"color=\",\n      \"companyname=${1:Firma}\",\n      \"company=${1:Firmenname}\",\n      \"namename=${1:Name, Vorname}\",\n      \"name=${1:name}\",\n      \"idname=${1:Geburtsdatum, Personalnummer}\",\n      \"id=${1:Zusatz-Id}\",\n      \"monthname=${1:Monat/Jahr}\",\n      \"month=${1:Monat}\",\n      \"heading=${1:Überschrift}\",\n      \"cc\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-minimart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"minimalist\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"useindent=false\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/minimart#c\": [\n      \"draft\",\n      \"fast\",\n      \"classical\",\n      \"useindent\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/minimart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-minimbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"minimalist\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"useindent=false\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/minimart#c\": [\n      \"draft\",\n      \"fast\",\n      \"classical\",\n      \"useindent\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/minimart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mitthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"pdfmanagement-testphase\"\n    },\n    {\n      \"name\": \"FiraSans\",\n      \"if\": \"fontset=fira-newtxsf\"\n    },\n    {\n      \"name\": \"zi4\",\n      \"if\": \"fontset=fira-newtxsf\"\n    },\n    {\n      \"name\": \"newtxsf\",\n      \"if\": \"fontset=fira-newtxsf\"\n    },\n    {\n      \"name\": \"newtx\",\n      \"if\": \"fontset=newtx\"\n    },\n    {\n      \"name\": \"inconsolata\",\n      \"if\": \"fontset=newtx\"\n    },\n    {\n      \"name\": \"newtx\",\n      \"if\": \"fontset=newtx-sans-text\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"fontset=libertine\"\n    },\n    {\n      \"name\": \"inconsolata\",\n      \"if\": \"fontset=libertine\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"fontset=libertine\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"lineno\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"mydesign\"\n    },\n    {\n      \"name\": \"caption\",\n      \"if\": \"mydesign\"\n    },\n    {\n      \"name\": \"subcaption\",\n      \"if\": \"mydesign\"\n    },\n    {\n      \"name\": \"titlesec\",\n      \"if\": \"mydesign\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Author{${1:full name}}{${2:department}}\"\n      }\n    },\n    {\n      \"name\": \"Degree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Degree{${1:degree name}}{${2:department}}\"\n      }\n    },\n    {\n      \"name\": \"DegreeYear\"\n    },\n    {\n      \"name\": \"DegreeMonth\"\n    },\n    {\n      \"name\": \"CopyrightAuthor\"\n    },\n    {\n      \"name\": \"Supervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Supervisor{${1:name}}{${2:department}}\"\n      }\n    },\n    {\n      \"name\": \"Acceptor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Acceptor{${1:name}}{${2:title%text}}{${3:thesis-related position}}\"\n      }\n    },\n    {\n      \"name\": \"DegreeDate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DegreeDate{${1:month}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"ThesisDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThesisDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"Tighten\"\n    },\n    {\n      \"name\": \"SignatureBlockSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SignatureBlockSize{${1:fontsize cmd}}\"\n      }\n    },\n    {\n      \"name\": \"AuthorNameSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthorNameSize{${1:fontsize cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Squash\"\n    },\n    {\n      \"name\": \"CClicense\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CClicense{${1:license type}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Institution{${1:institution}}\"\n      }\n    },\n    {\n      \"name\": \"SupervisorDesignation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SupervisorDesignation{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"PDFRightsText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SuppressMonthError\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SuppressAcceptorError\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EntryHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entry{${1:symbol}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle*\"\n    },\n    {\n      \"name\": \"FRAC\",\n      \"if\": \"fontset=libertine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRAC{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"LucidaBlackletter\",\n      \"if\": \"fontset=lucida\"\n    },\n    {\n      \"name\": \"LucidaCalligraphy\",\n      \"if\": \"fontset=lucida\"\n    },\n    {\n      \"name\": \"LucidaHandwriting\",\n      \"if\": \"fontset=lucida\"\n    },\n    {\n      \"name\": \"LucidaGrandeMonoDK\",\n      \"if\": \"fontset=lucida\"\n    },\n    {\n      \"name\": \"LucidaConsole\",\n      \"if\": \"fontset=lucida\"\n    },\n    {\n      \"name\": \"FRAC\",\n      \"if\": \"fontset=heros-stix2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRAC{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"FRAC\",\n      \"if\": \"fontset=stix2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRAC{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"FRAC\",\n      \"if\": \"fontset=termes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRAC{${1:a/b}}\"\n      }\n    },\n    {\n      \"name\": \"FRAC\",\n      \"if\": \"fontset=termes-stix2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRAC{${1:a/b}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"nomenclature\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:space}][${2:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:space}][${2:heading%text}][${3:level}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/mitthesis#c\": [\n      \"fontset=${1|fira-newtxsf,newtx,newtx-sans-text,defaultfonts,libertine,lucida,heros-stix2,stix2,termes,termes-stix2|}\",\n      \"lineno\",\n      \"mydesign\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mitthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mla.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fullpage\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"hanging\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enotez\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mladate\"\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:professor}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"makemlaheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openrangeformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"openrangemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlanamedash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlesscite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlesscite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlesscite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlesscite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"headlessfullcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlessfullcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"headlessfullcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlessfullcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"titleandsubtitle[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleandsubtitle[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"titleandsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleandsubtitle{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"noindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockquote\"\n    },\n    {\n      \"name\": \"paper\"\n    },\n    {\n      \"name\": \"notes\"\n    },\n    {\n      \"name\": \"mlanotes\"\n    },\n    {\n      \"name\": \"workscited\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/mla#c\": [\n      \"mla7\",\n      \"mla8\",\n      \"mla8alt\",\n      \"nofigures\",\n      \"nonotes\",\n      \"microtype\",\n      \"nopaperheader\",\n      \"nopageheader\",\n      \"noheaders\",\n      \"plainheadings\",\n      \"fullpage\",\n      \"notimes\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"annotation\",\n      \"showlocation\",\n      \"longdash\",\n      \"noremoteinfo\",\n      \"isan\",\n      \"ismn\",\n      \"isrn\",\n      \"issn\",\n      \"firstlonghand\",\n      \"nofullfootnote\",\n      \"mancitepar\",\n      \"footnoterulestrict\",\n      \"mladraft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mla#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mnras.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"usegraphicx\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"usenatbib\"\n    },\n    {\n      \"name\": \"dcolumn\",\n      \"if\": \"usedcolumn\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:running head%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"newauthor\"\n    },\n    {\n      \"name\": \"pubyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal}}\"\n      }\n    },\n    {\n      \"name\": \"numberwithin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numberwithin{${1:counter1}}{${2:counter2}}\"\n      }\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"earth\"\n    },\n    {\n      \"name\": \"micron\"\n    },\n    {\n      \"name\": \"degr\"\n    },\n    {\n      \"name\": \"arcmin\"\n    },\n    {\n      \"name\": \"arcsec\"\n    },\n    {\n      \"name\": \"fdg\"\n    },\n    {\n      \"name\": \"farcm\"\n    },\n    {\n      \"name\": \"farcs\"\n    },\n    {\n      \"name\": \"fd\"\n    },\n    {\n      \"name\": \"fh\"\n    },\n    {\n      \"name\": \"fm\"\n    },\n    {\n      \"name\": \"fs\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"sq\"\n    },\n    {\n      \"name\": \"upi\"\n    },\n    {\n      \"name\": \"umu\"\n    },\n    {\n      \"name\": \"upartial\"\n    },\n    {\n      \"name\": \"lid\"\n    },\n    {\n      \"name\": \"gid\"\n    },\n    {\n      \"name\": \"la\"\n    },\n    {\n      \"name\": \"ga\"\n    },\n    {\n      \"name\": \"loa\"\n    },\n    {\n      \"name\": \"goa\"\n    },\n    {\n      \"name\": \"cor\"\n    },\n    {\n      \"name\": \"sol\"\n    },\n    {\n      \"name\": \"sog\"\n    },\n    {\n      \"name\": \"lse\"\n    },\n    {\n      \"name\": \"gse\"\n    },\n    {\n      \"name\": \"getsto\"\n    },\n    {\n      \"name\": \"grole\"\n    },\n    {\n      \"name\": \"leogr\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"bmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmath{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfss{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ion{${1:element}}{${2:state}}\"\n      }\n    },\n    {\n      \"name\": \"contcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aap\"\n    },\n    {\n      \"name\": \"astap\"\n    },\n    {\n      \"name\": \"aapr\"\n    },\n    {\n      \"name\": \"aaps\"\n    },\n    {\n      \"name\": \"actaa\"\n    },\n    {\n      \"name\": \"afz\"\n    },\n    {\n      \"name\": \"aj\"\n    },\n    {\n      \"name\": \"ao\"\n    },\n    {\n      \"name\": \"applopt\"\n    },\n    {\n      \"name\": \"aplett\"\n    },\n    {\n      \"name\": \"apj\"\n    },\n    {\n      \"name\": \"apjl\"\n    },\n    {\n      \"name\": \"apjlett\"\n    },\n    {\n      \"name\": \"apjs\"\n    },\n    {\n      \"name\": \"apjsupp\"\n    },\n    {\n      \"name\": \"apss\"\n    },\n    {\n      \"name\": \"araa\"\n    },\n    {\n      \"name\": \"arep\"\n    },\n    {\n      \"name\": \"aspc\"\n    },\n    {\n      \"name\": \"azh\"\n    },\n    {\n      \"name\": \"baas\"\n    },\n    {\n      \"name\": \"bac\"\n    },\n    {\n      \"name\": \"bain\"\n    },\n    {\n      \"name\": \"caa\"\n    },\n    {\n      \"name\": \"cjaa\"\n    },\n    {\n      \"name\": \"fcp\"\n    },\n    {\n      \"name\": \"gca\"\n    },\n    {\n      \"name\": \"grl\"\n    },\n    {\n      \"name\": \"iaucirc\"\n    },\n    {\n      \"name\": \"icarus\"\n    },\n    {\n      \"name\": \"japa\"\n    },\n    {\n      \"name\": \"jcap\"\n    },\n    {\n      \"name\": \"jcp\"\n    },\n    {\n      \"name\": \"jgr\"\n    },\n    {\n      \"name\": \"jqsrt\"\n    },\n    {\n      \"name\": \"jrasc\"\n    },\n    {\n      \"name\": \"memras\"\n    },\n    {\n      \"name\": \"memsai\"\n    },\n    {\n      \"name\": \"mnassa\"\n    },\n    {\n      \"name\": \"mnras\"\n    },\n    {\n      \"name\": \"na\"\n    },\n    {\n      \"name\": \"nar\"\n    },\n    {\n      \"name\": \"nat\"\n    },\n    {\n      \"name\": \"nphysa\"\n    },\n    {\n      \"name\": \"pra\"\n    },\n    {\n      \"name\": \"prb\"\n    },\n    {\n      \"name\": \"prc\"\n    },\n    {\n      \"name\": \"prd\"\n    },\n    {\n      \"name\": \"pre\"\n    },\n    {\n      \"name\": \"prl\"\n    },\n    {\n      \"name\": \"pasa\"\n    },\n    {\n      \"name\": \"pasp\"\n    },\n    {\n      \"name\": \"pasj\"\n    },\n    {\n      \"name\": \"physrep\"\n    },\n    {\n      \"name\": \"physscr\"\n    },\n    {\n      \"name\": \"planss\"\n    },\n    {\n      \"name\": \"procspie\"\n    },\n    {\n      \"name\": \"rmxaa\"\n    },\n    {\n      \"name\": \"qjras\"\n    },\n    {\n      \"name\": \"sci\"\n    },\n    {\n      \"name\": \"skytel\"\n    },\n    {\n      \"name\": \"solphys\"\n    },\n    {\n      \"name\": \"sovast\"\n    },\n    {\n      \"name\": \"ssr\"\n    },\n    {\n      \"name\": \"zap\"\n    },\n    {\n      \"name\": \"boxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sevensize\"\n    },\n    {\n      \"name\": \"abslarge\"\n    },\n    {\n      \"name\": \"nokeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volume\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pagerange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerange{${1:range}}\"\n      }\n    },\n    {\n      \"name\": \"bsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eprint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"aquery\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aquery{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authorquery\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authorquery{${1:bold text%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"balpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibheadtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bld\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bld{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BSLquery\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BSLquery{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"btau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullhline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"itl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itl{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"largeital\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largerm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadboldgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadboldmathitalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makenewlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makenewlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeRLlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeRLlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeRRlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeRRlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathch{${1:version}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"microfiche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"microfiche{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mniiiauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mniiiauthor{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"plate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plate{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"proofbox\"\n    },\n    {\n      \"name\": \"realparindent\"\n    },\n    {\n      \"name\": \"rmn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmn{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"romn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romn{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textbfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbfit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbfss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbfss{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thedummy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tquery\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tquery{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keywords\"\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"lquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"query\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/mnras#c\": [\n      \"letters\",\n      \"onecolumn\",\n      \"doublespacing\",\n      \"usenatbib\",\n      \"usegraphicx\",\n      \"useAMS\",\n      \"usedcolumn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mnras#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-moderncv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"tweaklist\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"moderncvcollection\"\n    },\n    {\n      \"name\": \"moderncvcompatibility\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifxetexorluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nopagenumbers\"\n    },\n    {\n      \"name\": \"pagenumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"name{${1:first name}}{${2:last name}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"address{${1:street}}{${2:city}}{${3:country}}\"\n      }\n    },\n    {\n      \"name\": \"born\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"born{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:protocol}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phone[${2:type%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\phone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"social{${1:user name}}\"\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"social[${2:type%keyvals}]{${1:user name}}\",\n        \"keys\": [\n          \"\\\\social\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"social\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"social[${2:type%keyvals}][${3:URL}]{${1:user name}}\",\n        \"keys\": [\n          \"\\\\social\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extrainfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrainfo{${1:extra info%text}}\"\n      }\n    },\n    {\n      \"name\": \"listitemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bornsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilephonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixedphonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxphonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"homepagesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linkedinsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xingsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twittersocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mastodonsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"githubsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gitlabsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stackoverflowsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bitbucketsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skypesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcidsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchgatesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researcheridsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"googlescholarsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telegramsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whatsappsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrixsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signalsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codebergsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discordsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twitchsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"youtubesocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiktoksocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instagramsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"soundcloudsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"steamsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xboxsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"playstationsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"battlenetsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arxivsocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inspiresocialsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefooter\"\n    },\n    {\n      \"name\": \"moderncvstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvstyle[${2:options}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvhead{${1:header variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvhead[${2:options}]{${1:header variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvbody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvbody{${1:body variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvbody[${2:options}]{${1:body variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvfoot{${1:foot variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"moderncvfoot[${2:options}]{${1:foot variant number}}\"\n      }\n    },\n    {\n      \"name\": \"moderncvcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvcolor{${1:color-scheme%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moderncvicons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderncvicons{${1:icon set%keyvals}}\",\n        \"keys\": [\n          \"\\\\moderncvicons\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recomputeheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputebodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputefootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputelengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"photo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"photo[${2:width}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"photo[${2:width}][${3:frame thickness%l}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenumberfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstnamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lastnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastnamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hintstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hintstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenumberstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenumberstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"recomputecvheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvbodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvfootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputecvlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makenewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvtitle\"\n    },\n    {\n      \"name\": \"makecvhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvitem{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvitem[${3:spacing%l}]{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem[${5:spacing%l}]{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtripleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cvtripleitem{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}{${5:heading3%text}}{${6:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvtripleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cvtripleitem[${7:spacing%l}]{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}{${5:heading3%text}}{${6:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvlistitem{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvlistitem[${2:spacing%l}]{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvlistdoubleitem{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlistdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvlistdoubleitem[${3:spacing%l}]{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cventry{${1:years%text}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"cventry[${7:spacing%l}]{${1:years%text}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvitemwithcomment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvitemwithcomment{${1:item%text}}{${2:item description%text}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httpslink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httpslink[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:text}]{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"tellink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tellink{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"tellink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tellink[${2:text}]{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"onlynumberslink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlynumberslink{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thecvcolumnscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecvcolumnsautowidthcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetmpiteratorcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnsdummywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnsautowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumnautowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvcolumn{${1:head%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcolumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvcolumn[${3:width}]{${1:head%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcolumncell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvcolumncell{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliographyhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliographyhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"recipient\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"recipient{${1:recipient}}{${2:recipient address}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:opening%text}}\"\n      }\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:closing%text}}\"\n      }\n    },\n    {\n      \"name\": \"signature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"signature{${1:scale}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"enclosure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enclosure{${1:enclosure%text}}\"\n      }\n    },\n    {\n      \"name\": \"enclosure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enclosure[${2:alternative name%text}]{${1:enclosure%text}}\"\n      }\n    },\n    {\n      \"name\": \"recomputeletterheadlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterbodylengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterfootlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recomputeletterlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makelettertitle\"\n    },\n    {\n      \"name\": \"makeletterhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeletterfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeletterclosing\"\n    },\n    {\n      \"name\": \"hintscolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separatorcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tripleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separatorrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listdoubleitemcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cventryyearbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cventrytitleboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvskill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskill{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}][${2:factor}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskillcolumns\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"setcvskillcolumns[${1:width}][${2:factor}][${3:exp-width%l}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskilllegendcolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setcvskilllegendcolumns[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"setcvskilllegendcolumns\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"setcvskilllegendcolumns[${1:width}][${2:factor}]\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskilllegend{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskilllegend[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskilllegend[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskilllegend*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskilllegend*[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskilllegend*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskilllegend*[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskillplainlegend{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskillplainlegend[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskillplainlegend[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvskillplainlegend*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cvskillplainlegend*[${2:padding%l}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillplainlegend*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][]{}\",\n        \"snippet\": \"cvskillplainlegend*[${2:padding%l}][${3:1st}][${4:2nd}][${5:3rd}][${6:4th}][${7:5th}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cvskillhead[${1:padding%l}]\"\n      }\n    },\n    {\n      \"name\": \"cvskillhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"cvskillhead[${1:padding%l}][${2:name1}][${3:name2}][${4:name3}][${5:name4}]\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry[${6:padding%l}]{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry*{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvskillentry*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cvskillentry*[${6:padding%l}]{${1:category%text}}{${2:level}}{${3:name%text}}{${4:years}}{${5:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"footsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foottempbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtofoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtofoot{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"addtofoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtofoot[${2:symbol}]{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"flushfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadnamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadpicturebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheaddetailswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadpicturewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadnamebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailstempbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeheaddetailsboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtomakeheaddetails\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtomakeheaddetails{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"addtomakeheaddetails\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtomakeheaddetails[${2:symbol}]{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"flushmakeheaddetails\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecvheadinfo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makecvheadinfobox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecvheadinfoheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cvcolumns\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/moderncv#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"sans\",\n      \"roman\",\n      \"draft\",\n      \"final\"\n    ],\n    \"\\\\phone\": [\n      \"fixed\",\n      \"mobile\",\n      \"fax\"\n    ],\n    \"\\\\social\": [\n      \"linkedin\",\n      \"xing\",\n      \"twitter\",\n      \"mastodon\",\n      \"github\",\n      \"gitlab\",\n      \"stackoverflow\",\n      \"bitbucket\",\n      \"skype\",\n      \"orcid\",\n      \"researchgate\",\n      \"researcherid\",\n      \"telegram\",\n      \"whatsapp\",\n      \"signal\",\n      \"matrix\",\n      \"googlescholar\",\n      \"codeberg\",\n      \"discord\",\n      \"twitch\",\n      \"youtube\",\n      \"tiktok\",\n      \"instagram\",\n      \"soundcloud\",\n      \"steam\",\n      \"xbox\",\n      \"playstation\",\n      \"battlenet\",\n      \"arxiv\",\n      \"inspire\"\n    ],\n    \"\\\\moderncvstyle#c\": [\n      \"banking\",\n      \"casual\",\n      \"classic\",\n      \"empty\",\n      \"fancy\",\n      \"oldstyle\"\n    ],\n    \"\\\\moderncvcolor#c\": [\n      \"black\",\n      \"blue\",\n      \"burgundy\",\n      \"green\",\n      \"grey\",\n      \"orange\",\n      \"purple\",\n      \"red\"\n    ],\n    \"\\\\moderncvicons\": [\n      \"academic\",\n      \"awesome\",\n      \"letters\",\n      \"marvosym\",\n      \"symbols\",\n      \"tikz\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/moderncv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-modernposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-a0poster\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"sfmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"FiraSans\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"helvet\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"colheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coltextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posterbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"posterbox{${1:title%text}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"doubleposterbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"doubleposterbox{${1:title1%text}}{${2:contents1%text}}{${3:title2%text}}{${4:contents2%text}}\"\n      }\n    },\n    {\n      \"name\": \"doubleposterbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"doubleposterbox[${5:height}]{${1:title1%text}}{${2:contents1%text}}{${3:title2%text}}{${4:contents2%text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"thenumcols\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"postercolumn\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/modernposter#c\": [\n      \"hlcolor=${1:HTML color}\",\n      \"logo=${1:imagefile}\",\n      \"helvet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/modernposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mosc-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    },\n    {\n      \"name\": \"ams-rust\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"russianvolinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishvolinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eo{${1:original author names}}\"\n      }\n    },\n    {\n      \"name\": \"rv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rv{${1:revised author names}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"op{${1:original published location}}\"\n      }\n    },\n    {\n      \"name\": \"eb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eb{${1:editor name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mosc-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mosc-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-msu-thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"pdflscape\",\n      \"if\": \"lscape\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"lscape\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abbrev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"abbrev{${1:abbreviation}}{${2:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dualmajor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dualmajor{${1:major1%text}}{${2:major2%text}}\"\n      }\n    },\n    {\n      \"name\": \"fieldofstudy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fieldofstudy{${1:field%text}}\"\n      }\n    },\n    {\n      \"name\": \"listofabbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listabbreviationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listalgorithmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makebibliographypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecopyrightpage\"\n    },\n    {\n      \"name\": \"makecopyrightpage*\"\n    },\n    {\n      \"name\": \"makededicationpage\"\n    },\n    {\n      \"name\": \"maketitlepage\"\n    },\n    {\n      \"name\": \"msuabbrevdelim\"\n    },\n    {\n      \"name\": \"msuabbrevfont\"\n    },\n    {\n      \"name\": \"msuabbrevwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msuabbrevwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"msuappendixdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msuappendixnumformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msucaptiondelim\"\n    },\n    {\n      \"name\": \"msutocdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setabstractnamespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setabstractnamespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"themsutocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usememdefaultlineskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abbreviations\"\n    },\n    {\n      \"name\": \"appendix\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/msu-thesis#c\": [\n      \"PhD\",\n      \"DEd\",\n      \"DMA\",\n      \"DNP\",\n      \"MA\",\n      \"MS\",\n      \"MAT\",\n      \"MBA\",\n      \"MFA\",\n      \"MIPS\",\n      \"MHRL\",\n      \"MMus\",\n      \"MPH\",\n      \"MPP\",\n      \"MSW\",\n      \"MURP\",\n      \"lscape\",\n      \"boldtoc\",\n      \"plaintoc\",\n      \"mixedtoc\",\n      \"chapterbib\",\n      \"bibassection\",\n      \"chapterapp\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"a7paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"b7paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/msu-thesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mucproc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"txfonts\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"comment\",\n      \"if\": \"anonymous\"\n    },\n    {\n      \"name\": \"comment\",\n      \"if\": \"anonymous=true\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"forcefinal\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"forcefinal=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanks[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thanksref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"authoraddendum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:author name}}\"\n      }\n    },\n    {\n      \"name\": \"authoraddendum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:imagefile}]{${1:author name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/mucproc#c\": [\n      \"ngerman\",\n      \"english\",\n      \"anonymous\",\n      \"forcefinal\",\n      \"headline\",\n      \"copyrightinfo\",\n      \"pagestyle\",\n      \"\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mucproc#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mugsthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"class-memoir\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreemo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreemo{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"degreeyr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeyr{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"preheadskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postheadskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"dedication\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/mugsthesis#c\": [\n      \"thesis\",\n      \"dissertation\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"final\",\n      \"draft\",\n      \"indentfirsttrue\",\n      \"indentfirstfalse\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mugsthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mwart.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\"\n      }\n    },\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting[${5:flagi%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSectioningCommand{${1:nazwa polecenia}}{${2:odstęp przed}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSectioningCommand[${3:flag%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captionsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centeredlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuresettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatBlockHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FormatChapterHeading{${1:odstęp}}{${2:dekl num}}{${3:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatHangHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatHangHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRigidChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FormatRigidChapterHeading{${1:wys}}{${2:odstęp}}{${3:dekl num}}{${4:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRunInHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatRunInHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"HeadingNumber\"\n    },\n    {\n      \"name\": \"HeadingNumberedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingNumberedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingRHeadText\"\n    },\n    {\n      \"name\": \"HeadingText\"\n    },\n    {\n      \"name\": \"HeadingTOCText\"\n    },\n    {\n      \"name\": \"ifHeadingNumbered\"\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"secondarysize\"\n    },\n    {\n      \"name\": \"sectsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesettings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mwart#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"wide\",\n      \"withmarginpar\",\n      \"withoutmarginpar\",\n      \"10pt\",\n      \"10dd\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"rmheadings\",\n      \"sfheadings\",\n      \"floatssmall\",\n      \"floatsnormalsize\",\n      \"authortitle\",\n      \"titleauthor\",\n      \"indentfirst\",\n      \"noindentfirst\"\n    ],\n    \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\": [\n      \"runin\",\n      \"breakbefore\",\n      \"breakafter\",\n      \"wholewidth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mwart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mwbk.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\"\n      }\n    },\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting[${5:flagi%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSectioningCommand{${1:nazwa polecenia}}{${2:odstęp przed}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSectioningCommand[${3:flag%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"captionsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centeredlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"figuresettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatBlockHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FormatChapterHeading{${1:odstęp}}{${2:dekl num}}{${3:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatHangHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatHangHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRigidChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FormatRigidChapterHeading{${1:wys}}{${2:odstęp}}{${3:dekl num}}{${4:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRunInHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatRunInHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"HeadingNumber\"\n    },\n    {\n      \"name\": \"HeadingNumberedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingNumberedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingRHeadText\"\n    },\n    {\n      \"name\": \"HeadingText\"\n    },\n    {\n      \"name\": \"HeadingTOCText\"\n    },\n    {\n      \"name\": \"ifHeadingNumbered\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"secondarysize\"\n    },\n    {\n      \"name\": \"sectsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesettings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mwbk#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"wide\",\n      \"withmarginpar\",\n      \"withoutmarginpar\",\n      \"10pt\",\n      \"10dd\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"rmheadings\",\n      \"sfheadings\",\n      \"floatssmall\",\n      \"floatsnormalsize\",\n      \"authortitle\",\n      \"titleauthor\",\n      \"indentfirst\",\n      \"noindentfirst\"\n    ],\n    \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\": [\n      \"runin\",\n      \"breakbefore\",\n      \"breakafter\",\n      \"wholewidth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mwbk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mwrep.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\"\n      }\n    },\n    {\n      \"name\": \"SetSectionFormatting\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"SetSectionFormatting[${5:flagi%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}{${3:nagłówek}}{${4:odstęp p}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSectioningCommand{${1:nazwa polecenia}}{${2:odstęp przed}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectioningCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSectioningCommand[${3:flag%keyvals}]{${1:nazwa polecenia}}{${2:odstęp przed}}\",\n        \"keys\": [\n          \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"captionsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centeredlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"figuresettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatBlockHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatBlockHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FormatChapterHeading{${1:odstęp}}{${2:dekl num}}{${3:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatHangHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatHangHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRigidChapterHeading\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FormatRigidChapterHeading{${1:wys}}{${2:odstęp}}{${3:dekl num}}{${4:dekl tyt}}\"\n      }\n    },\n    {\n      \"name\": \"FormatRunInHeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatRunInHeading{${1:dekl}}\"\n      }\n    },\n    {\n      \"name\": \"HeadingNumber\"\n    },\n    {\n      \"name\": \"HeadingNumberedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingNumberedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadingRHeadText\"\n    },\n    {\n      \"name\": \"HeadingText\"\n    },\n    {\n      \"name\": \"HeadingTOCText\"\n    },\n    {\n      \"name\": \"ifHeadingNumbered\"\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"secondarysize\"\n    },\n    {\n      \"name\": \"sectsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesettings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mwrep#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"wide\",\n      \"withmarginpar\",\n      \"withoutmarginpar\",\n      \"10pt\",\n      \"10dd\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"rmheadings\",\n      \"sfheadings\",\n      \"floatssmall\",\n      \"floatsnormalsize\",\n      \"authortitle\",\n      \"titleauthor\",\n      \"indentfirst\",\n      \"noindentfirst\"\n    ],\n    \"\\\\SetSectionFormatting,\\\\DeclareSectioningCommand\": [\n      \"runin\",\n      \"breakbefore\",\n      \"breakafter\",\n      \"wholewidth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mwrep#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-mynsfc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"subfig\",\n      \"if\": \"subfig\"\n    },\n    {\n      \"name\": \"subfig\",\n      \"if\": \"subfig=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boldnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"initauthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initauthors{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tocformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkpagegrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkpagegrouped{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkonepagegrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkonepagegrouped{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/mynsfc#c\": [\n      \"subfig\",\n      \"boldtoc\",\n      \"tocfont=${1:font name}\",\n      \"toccolor=${1:HTML color}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/mynsfc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nanicolle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"rulerbox\",\n      \"if\": \"rulerhead\"\n    },\n    {\n      \"name\": \"makebarcode\",\n      \"if\": \"colbarcode\"\n    },\n    {\n      \"name\": \"qrcode\",\n      \"if\": \"detbarcode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"heading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"collect\"\n    },\n    {\n      \"name\": \"identify\"\n    },\n    {\n      \"name\": \"Collect\"\n    },\n    {\n      \"name\": \"Identify\"\n    },\n    {\n      \"name\": \"Altitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChnName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Collector\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DBH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DateIdentification\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Descr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Family\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Habitat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Height\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Identifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IdentifierStd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LatName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Latitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LifeForm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Location\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumDup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PhotoNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RecNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Remark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aster\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detchinesestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detcommonnamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detlatinstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headingstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"herbariumcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"herbariumcode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"identifierstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mapdef{${1:name}}{${2:file}}{${3:longmin}}{${4:longmax}}{${5:latmin}}{${6:latmax}}\"\n      }\n    },\n    {\n      \"name\": \"mapseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mapseries{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printbarcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printmap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printqrcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strsubs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strsubs{${1:stringA}}{${2:stringB}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/nanicolle#c\": [\n      \"rulerhead\",\n      \"colbarcode\",\n      \"detbarcode\",\n      \"nomap\",\n      \"autoduplicate\",\n      \"internal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nanicolle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ncc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dcounter\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"nccbiblist\"\n    },\n    {\n      \"name\": \"nccheadings\"\n    },\n    {\n      \"name\": \"ncclatex\"\n    },\n    {\n      \"name\": \"nccold\"\n    },\n    {\n      \"name\": \"ncctitlepage\"\n    },\n    {\n      \"name\": \"tocenter\"\n    },\n    {\n      \"name\": \"topsection\"\n    },\n    {\n      \"name\": \"watermark\"\n    },\n    {\n      \"name\": \"ncctitle\",\n      \"if\": \"preprint\"\n    },\n    {\n      \"name\": \"afterpackage\",\n      \"if\": \"preprint\"\n    },\n    {\n      \"name\": \"ncctitle\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"ncctitle\",\n      \"if\": \"report\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setseries\",\n      \"if\": \"article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setseries{${1:series%text}}\"\n      }\n    },\n    {\n      \"name\": \"theseries\",\n      \"if\": \"article\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setvolume\",\n      \"if\": \"article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvolume{${1:volume%text}}\"\n      }\n    },\n    {\n      \"name\": \"thevolume\",\n      \"if\": \"article\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setissue\",\n      \"if\": \"article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setissue{${1:issue%text}}\"\n      }\n    },\n    {\n      \"name\": \"theissue\",\n      \"if\": \"article\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprintname\",\n      \"if\": \"preprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preprint\",\n      \"if\": \"preprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thepreprint\",\n      \"if\": \"preprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookeditor\",\n      \"if\": \"book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookeditor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bookeditor\",\n      \"if\": \"report\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bookeditor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AuthorBeforeTitle\"\n    },\n    {\n      \"name\": \"TitleBeforeAuthor\"\n    },\n    {\n      \"name\": \"alloweqbreak\"\n    },\n    {\n      \"name\": \"noeqbreak\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printglossary\"\n    },\n    {\n      \"name\": \"setyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"theyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openrightorany\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alloweqbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noeqbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theglossary\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ncc#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"a5a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"fittopage\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"openany\",\n      \"openright\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"openbib\",\n      \"article\",\n      \"preprint\",\n      \"book\",\n      \"report\",\n      \"centertags\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ncc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nddiss2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"exscale\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"threeparttablex\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"epsfig\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"pdflscape\"\n    },\n    {\n      \"name\": \"metalogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"secondadvisor\",\n      \"if\": \"twoadvisors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightholder{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightlicense\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightlicense{${1:license}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"dedicationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degaward\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degaward{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"degdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"makecopyright\"\n    },\n    {\n      \"name\": \"makepublicdomain\"\n    },\n    {\n      \"name\": \"nddiss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sym{${1:symbol%formula}}{${2:definition%text}}\"\n      }\n    },\n    {\n      \"name\": \"symbolsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timenow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unnumchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unnumchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"usedtextsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"work\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"work{${1:Thesis|Dissertation%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledge\"\n    },\n    {\n      \"name\": \"copyrightpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"symbols\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/nddiss2e#c\": [\n      \"draft\",\n      \"review\",\n      \"final\",\n      \"numrefs\",\n      \"textrefs\",\n      \"nonatbib\",\n      \"nocenter\",\n      \"openbib\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"twoadvisors\",\n      \"12pt\",\n      \"noinfo\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nddiss2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-newlfm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"setdim\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"class-letter\"\n    },\n    {\n      \"name\": \"addrset\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"envlab\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newlfmP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlfmP{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newlfmP\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addrf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrf{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"addrfromskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrfromskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"addrfromskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrfromskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"addrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrt{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"addrtoskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrtoskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"addrtoskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrtoskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"Alaba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alabb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alabc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alabd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"background\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"background{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Background\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Background{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bottommarginskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottommarginskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"bottommarginskipbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottommarginskipbelow{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"boxht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxht{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"boxwd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxwd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"btwlb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"btwlb{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cellodown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellodown{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"celloheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"celloheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"celloleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"celloleft{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cellowidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellowidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"Cfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clearall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"closeskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"closlfm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"COfooter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"COfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CUheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CUheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"datecenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datecenter{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"dateleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateleft{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"dateno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateno{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"DatePhrase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DatePhrase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dateright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateright{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"dateskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"dateskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"datestamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doletter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doletter{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"doltr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doltr{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"faxblocka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxblockb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxpage\"\n    },\n    {\n      \"name\": \"fixcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixcs{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixem{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixfs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixfs{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixhh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixhh{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixhs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixhs{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixom{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixphr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fixphr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"fixth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixth{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixtm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixtm{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fixtw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixtw{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"footermarginsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footermarginsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"Footlinewd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Footlinewd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"footlinewd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlinewd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"greettoskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greettoskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"headermarginsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headermarginsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"headermarginskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headermarginskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"Headlinewd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Headlinewd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"headlinewd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlinewd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifempty{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffixf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffixf{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffixq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffixq{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffixt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffixt{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpempty{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"labpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labpl{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"labsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"leftmarginsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmarginsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"leftmarginskipleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmarginskipleft{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"leftmarginskipright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmarginskipright{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"leftmargintopdist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmargintopdist{${1:dist%l}}\"\n      }\n    },\n    {\n      \"name\": \"letrh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letrh{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"letterbody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letterbody{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lftwd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lftwd{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"lheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LOfooter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LOfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ltrbody\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltrbody{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LUheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeenvst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memosec\"\n    },\n    {\n      \"name\": \"memoskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memoskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"memoskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memoskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"MinFoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MinFoot{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"minfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minfoot{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"MinHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MinHead{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"minhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minhead{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"MinLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MinLeft{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"minleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minleft{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"MinRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MinRight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"minright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minright{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"monthname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multletter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multletter{${1:id1,id2,...}}\"\n      }\n    },\n    {\n      \"name\": \"noFootline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofootline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noheadline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noHeadline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneletter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oneletter{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"openlfm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgrph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgrph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrCc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrCc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrContact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrContact{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrDocument{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrEmail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrEncl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrEncl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrFax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrFax{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrFAXcovp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrFAXcovp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrFAXpgcnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrFAXpgcnt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrFrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrFrom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrMessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrMessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrMore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrMore{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPager\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPager{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPhone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPhone{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPpps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPpps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPRend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPRend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrPs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrPs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrRe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrRe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrRegard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrRegard{${1:regarding%text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrRelease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrRelease{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrSubre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrSubre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PhrTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhrTo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postsigskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postsigskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"postsigskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postsigskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"pressbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restletter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restletter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restlettera\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restlettera{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restletterb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restletterb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restletterc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restletterc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restletterd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restletterd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"restlettere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restlettere{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Rfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Rheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightmarginsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightmarginsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"rightmarginskipleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightmarginskipleft{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"rightmarginskipright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightmarginskipright{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"rightmargintopdist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightmargintopdist{${1:dist%l}}\"\n      }\n    },\n    {\n      \"name\": \"Rmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ROfooter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ROfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RUheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RUheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsigc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setsigl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setsigr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showdim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showdim{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sigcenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigcenter{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"sigleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigleft{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"signaturecenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signaturecenter{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"signatureleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signatureleft{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"signatureno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signatureno{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"signatureright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signatureright{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"sigright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigright{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"sigsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigsize{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"sigskipafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigskipafter{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"sigskipbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigskipbefore{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"sigskipcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigskipcolumn{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"sigskiprow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigskiprow{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"sigtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigtr{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"textheightsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textheightsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"textwidthsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwidthsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"timestamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topht{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"topmarginsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topmarginsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"topmarginskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topmarginskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"txb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unprbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unprbottom{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"unprleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unprleft{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"unprright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unprright{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"unprtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unprtop{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"waterpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"waterpage{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"newlfm\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/newlfm#c\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"addrfromemail\",\n      \"addrfromfax\",\n      \"addrfromleft\",\n      \"addrfromno\",\n      \"addrfromphone\",\n      \"addrfromright\",\n      \"addrtoemail\",\n      \"addrtofax\",\n      \"addrtoleft\",\n      \"addrtono\",\n      \"addrtophone\",\n      \"addrtoright\",\n      \"american\",\n      \"Avery5160\",\n      \"Avery5161\",\n      \"Avery5162\",\n      \"Avery5163\",\n      \"Avery5164\",\n      \"Avery5261\",\n      \"Avery5264\",\n      \"biggap\",\n      \"Blankall\",\n      \"blankall\",\n      \"blankfooter\",\n      \"Blankfooter\",\n      \"blankheader\",\n      \"Blankheader\",\n      \"blankleftmargin\",\n      \"Blankleftmargin\",\n      \"blanklmargin\",\n      \"blankrightmargin\",\n      \"Blankrightmargin\",\n      \"blankrmargin\",\n      \"BlankTotal\",\n      \"busletter\",\n      \"busletternofrom\",\n      \"cellowindow\",\n      \"datecenter\",\n      \"dateleft\",\n      \"dateno\",\n      \"dateright\",\n      \"dateyes\",\n      \"dspace\",\n      \"english\",\n      \"faxbla\",\n      \"faxblb\",\n      \"faxblocka\",\n      \"faxblockb\",\n      \"faxhba\",\n      \"faxhbb\",\n      \"faxheaderpage\",\n      \"faxhp\",\n      \"french\",\n      \"fullmemo\",\n      \"german\",\n      \"greetno\",\n      \"labcolfrto\",\n      \"labrowfrto\",\n      \"labto\",\n      \"legalpaper\",\n      \"letterpaper\",\n      \"margflush\",\n      \"memoaddrfrom\",\n      \"memoaddrto\",\n      \"memodate\",\n      \"memoemailfrom\",\n      \"memoemailto\",\n      \"memofaxfrom\",\n      \"memofaxto\",\n      \"memonofrom\",\n      \"memonore\",\n      \"memonoto\",\n      \"memopagerfrom\",\n      \"memopagerto\",\n      \"memophonefrom\",\n      \"memophoneto\",\n      \"noaddrfr\",\n      \"noaddrfrom\",\n      \"noaddrto\",\n      \"orderdatefromto\",\n      \"orderfromdateto\",\n      \"orderfromtodate\",\n      \"othlang\",\n      \"piglatin\",\n      \"pressrelease\",\n      \"printallfrom\",\n      \"printallto\",\n      \"setuplabel\",\n      \"sidebyside\",\n      \"sigcenter\",\n      \"sigleft\",\n      \"signaturecenter\",\n      \"signatureleft\",\n      \"signatureno\",\n      \"signatureright\",\n      \"sigright\",\n      \"sspace\",\n      \"stdletter\",\n      \"stdletternofrom\",\n      \"stdmemo\",\n      \"stdpressrelease\",\n      \"useenvlab\",\n      \"a5paper\",\n      \"b5paper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"oneside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\"\n    ],\n    \"\\\\newlfmP\": [\n      \"a3paper\",\n      \"a4paper\",\n      \"addrf=${1:id}\",\n      \"addrfromemail=${1:email}\",\n      \"addrfromfax\",\n      \"addrfromleft\",\n      \"addrfromphone\",\n      \"addrfromright\",\n      \"addrfromskipafter=\",\n      \"addrfromskipbefore=\",\n      \"addrt=${1:id}\",\n      \"addrtoemail\",\n      \"addrtoleft\",\n      \"addrtophone\",\n      \"addrtoright\",\n      \"addrtoskipafter=\",\n      \"addrtoskipbefore=\",\n      \"american\",\n      \"Avery5160\",\n      \"Avery5161\",\n      \"Avery5162\",\n      \"Avery5163\",\n      \"Avery5164\",\n      \"Avery5261\",\n      \"Avery5264\",\n      \"Background=\",\n      \"background=\",\n      \"Blankall\",\n      \"blankall\",\n      \"blankfooter\",\n      \"Blankfooter\",\n      \"blankheader\",\n      \"Blankheader\",\n      \"blankleftmargin\",\n      \"Blankleftmargin\",\n      \"blankrightmargin\",\n      \"Blankrightmargin\",\n      \"BlankTotal\",\n      \"bottommarginskip=\",\n      \"bottommarginskipbelow=\",\n      \"busletter\",\n      \"busletternofrom\",\n      \"cellodown=\",\n      \"celloheight=\",\n      \"celloleft=\",\n      \"cellowidth=\",\n      \"cellowindow\",\n      \"closeskipafter=\",\n      \"closeskipbefore=\",\n      \"datecenter\",\n      \"dateleft\",\n      \"dateno\",\n      \"dateright\",\n      \"dateskipafter=\",\n      \"dateskipbefore=\",\n      \"dspace\",\n      \"english\",\n      \"faxblocka\",\n      \"faxblockb\",\n      \"faxhba\",\n      \"faxheaderpage\",\n      \"footermarginsize=\",\n      \"Footlinewd=\",\n      \"footlinewd=\",\n      \"french\",\n      \"fullmemo\",\n      \"german\",\n      \"greettoskipafter=\",\n      \"headermarginsize=\",\n      \"headermarginskip=\",\n      \"Headlinewd=\",\n      \"headlinewd=\",\n      \"InfoFileName=${1:file name}\",\n      \"labcolfrto\",\n      \"labrowfrto\",\n      \"labsize=${1:size cmd}\",\n      \"labto\",\n      \"leftmarginsize=\",\n      \"leftmarginskipleft=\",\n      \"leftmarginskipright=\",\n      \"leftmargintopdist=\",\n      \"legalpaper\",\n      \"letrh=${1:id}\",\n      \"letterpaper\",\n      \"margflush\",\n      \"memoaddrfrom\",\n      \"memoaddrto\",\n      \"memodate\",\n      \"memoemailfrom\",\n      \"memoemailto\",\n      \"memofaxfrom\",\n      \"memofaxto\",\n      \"memonofrom\",\n      \"memonore\",\n      \"memonoto\",\n      \"memopagerfrom\",\n      \"memopagerto\",\n      \"memophonefrom\",\n      \"memophoneto\",\n      \"memoskipafter=\",\n      \"memoskipbefore=\",\n      \"MinFoot=\",\n      \"minfoot=\",\n      \"MinHead=\",\n      \"minhead=\",\n      \"MinLeft=\",\n      \"minleft=\",\n      \"MinRight=\",\n      \"minright=\",\n      \"noaddrfrom\",\n      \"noaddrto\",\n      \"nofootline\",\n      \"noFootline\",\n      \"nogreet\",\n      \"noheadline\",\n      \"noHeadline\",\n      \"nolines\",\n      \"noLines\",\n      \"orderdatefromto\",\n      \"orderfromdateto\",\n      \"orderfromtodate\",\n      \"othlang\",\n      \"piglatin\",\n      \"postsigskipafter=\",\n      \"postsigskipbefore=\",\n      \"pressrelease\",\n      \"printallfrom\",\n      \"printallto\",\n      \"rightmarginsize=\",\n      \"rightmarginskipleft=\",\n      \"rightmarginskipright=\",\n      \"rightmargintopdist=\",\n      \"setuplabel\",\n      \"sidebyside\",\n      \"sigcenter\",\n      \"sigleft\",\n      \"signaturecenter\",\n      \"signatureleft\",\n      \"signatureno\",\n      \"signatureright\",\n      \"sigright\",\n      \"sigsize=\",\n      \"sigskipafter=\",\n      \"sigskipbefore=\",\n      \"sigskipcolumn=\",\n      \"sigskiprow=\",\n      \"sigtr=${1:id}\",\n      \"sspace\",\n      \"stdletter\",\n      \"stdletternofrom\",\n      \"stdmemo\",\n      \"stdpressrelease\",\n      \"textheightsize=\",\n      \"textwidthsize=\",\n      \"topmarginsize=\",\n      \"topmarginskip=\",\n      \"unprbottom=\",\n      \"unprleft=\",\n      \"unprright=\",\n      \"unprtop=\",\n      \"useenvlab\",\n      \"waterpage=${1:imagefile}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newlfm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-njustthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"cnlogo\"\n    },\n    {\n      \"name\": \"tabu\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"boxedminipage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"njustsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"njustsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\njustsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"reviewpage\"\n    },\n    {\n      \"name\": \"njustwhole\"\n    },\n    {\n      \"name\": \"njustwhole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"njustwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"njustwhole\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"njustwhole[${1:color}][${2:scale}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"keyword\"\n    },\n    {\n      \"name\": \"keyword*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\njustsetup\": [\n      \"logo=${1:logo code}\",\n      \"cover-title=${1:text}\",\n      \"author=${1:name}\",\n      \"id=${1:id number}\",\n      \"department=${1:department}\",\n      \"discipline=${1:discipline}\",\n      \"title=${1:text}\",\n      \"subtitle=${1:text}\",\n      \"supervisor=${1:name}\",\n      \"associate-supervisor=${1:name}\",\n      \"judge=${1:name}\",\n      \"supervisor-title=${1:text}\",\n      \"associate-supervisor-title=${1:text}\",\n      \"judge-title=${1:text}\",\n      \"year=${1:year}\",\n      \"month=${1:month}\",\n      \"day=${1:day}\",\n      \"signature=${1:signature}\",\n      \"signature*=${1:English signature}\",\n      \"abstract-prefix=\",\n      \"title*=${1:English text}\",\n      \"subtitle*=${1:English text}\",\n      \"header-title=${1:text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-njuthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"emptypage\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"lua-ul\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"njuvisual\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"style=gb7714-2015\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"njusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"njusetup{${1:设置项%keyvals}}\",\n        \"keys\": [\n          \"\\\\njusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"njusetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"njusetup[${2:键路径}]{${1:设置项%keyvals}}\",\n        \"keys\": [\n          \"\\\\njusetup#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"njuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"njuline{${1:文字%text}}\"\n      }\n    },\n    {\n      \"name\": \"njuchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"njuchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"njupaperlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"njupaperlist{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"njupaperlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"njupaperlist[${2:标题}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"njusetname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusetname{${1:名称}}{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusetname\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"njusetname{${1:名称}}[${3:变体}]{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusetname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusetname*{${1:名称}}{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusetname*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"njusetname*{${1:名称}}[${3:变体}]{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusettext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusettext{${1:名称}}{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusettext\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"njusettext{${1:名称}}[${3:变体}]{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusettext*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusettext*{${1:名称}}{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusettext*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"njusettext*{${1:名称}}[${3:变体}]{${2:内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"njusetlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusetlength{${1:名称}}{${2:长度}}\"\n      }\n    },\n    {\n      \"name\": \"njusetlength*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusetlength*{${1:名称}}{${2:长度}}\"\n      }\n    },\n    {\n      \"name\": \"njusetformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njusetformat{${1:名称}}{${2:样式}}\"\n      }\n    },\n    {\n      \"name\": \"bigger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"if\": \"style=gb7714-2015\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:说明宽度}]\"\n      }\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:说明宽度}][${2:符号宽度}]\"\n      }\n    },\n    {\n      \"name\": \"notation*\"\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:说明宽度}]\"\n      }\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:说明宽度}][${2:符号宽度}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/njuthesis#c\": [\n      \"type=${1|bachelor,master,doctor,postdoc|}\",\n      \"degree=${1|academic,professional|}\",\n      \"nl-cover\",\n      \"decl-page\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"anonymous\",\n      \"anonymous-mode/no-nju\",\n      \"biblatex\",\n      \"cleveref\",\n      \"ntheorem\",\n      \"enumitem\",\n      \"footmisc\",\n      \"unicode-math\",\n      \"minimal\",\n      \"config={${1:文件}}\",\n      \"cjk-font=${1|fandol,founder,mac,macoffice,noto,source,win,none|}\",\n      \"latin-font=${1|fandol,gyre,mac,macoffice,win,none|}\",\n      \"math-font=${1|asana,cambria,fira,garamond,lm,libertinus,stix,bonum,dejavu,pagella,schola,termes,xits,none|}\"\n    ],\n    \"\\\\njusetup#c\": [\n      \"info/title={${1:标题}}\",\n      \"info/title*={${1:英文标题}}\",\n      \"info/keywords={${1:关键词}}\",\n      \"info/keywords*={${1:英文关键词}}\",\n      \"info/grade={${1:20XX}}\",\n      \"info/student-id={${1:学号}}\",\n      \"info/author={${1:你的名字}}\",\n      \"info/author*={${1:姓名拼音}}\",\n      \"info/department={${1:院系}}\",\n      \"info/department*={${1:院系}}\",\n      \"info/major={${1:专业}}\",\n      \"info/major={${1:专业},${2:专业全称}}\",\n      \"info/major*={${1:专业}}\",\n      \"info/field={${1:方向}}\",\n      \"info/field*={${1:方向}}\",\n      \"info/supervisor={${1:导师姓名,职称}}\",\n      \"info/supervisor*={${1:导师英文全称}}\",\n      \"info/supervisor-ii={${1:第二导师姓名,职称}}\",\n      \"info/supervisor-ii*={${1:第二导师英文全称}}\",\n      \"info/submit-date={${1:yyyy-mm-dd}}\",\n      \"info/defend-date={${1:yyyy-mm-dd}}\",\n      \"info/confer-date={${1:yyyy-mm-dd}}\",\n      \"info/bottom-date={${1:yyyy-mm-dd}}\",\n      \"info/chairman={${1:答辩主席姓名职称}}\",\n      \"info/reviewer={${1:答辩评委姓名职称}}\",\n      \"info/clc={${1:中图分类号}}\",\n      \"info/udc={${1:udc}}\",\n      \"info/secret-level={${1:密级}}\",\n      \"info/supervisor-contact={${1:导师联系方式}}\",\n      \"info/school-code={${1:number}}\",\n      \"info/degree={${1:中文学位名}}\",\n      \"info/degree*={${1:英文学位名}}\",\n      \"header/content={{${1:位置}}{${2:内容}}${3:,{位置}{内容},...}}\",\n      \"header/content*={{${1:位置}}{${2:内容}}${3:,{位置}{内容},...}}\",\n      \"footer/content={{${1:位置}}{${2:内容}}${3:,{位置}{内容},...}}\",\n      \"footer/content*={{${1:位置}}{${2:内容}}${3:,{位置}{内容},...}}\",\n      \"image/path={${1:{路径1},{路径2},...}}\",\n      \"image/nju-emblem={${1:文件}}\",\n      \"image/nju-name={${1:文件}}\",\n      \"footnote/style=${1|plain,pifont,circled,circled*|}\",\n      \"footnote/hang\",\n      \"footnote/circledtext-option=${1:选项列表}\",\n      \"math/style=${1|TeX,ISO,GB|}\",\n      \"math/integral=${1|upright,slanted|}\",\n      \"math/integral-limits\",\n      \"math/less-than-or-equal=${1|slanted,horizontal|}\",\n      \"math/math-ellipsis=${1|centered,lower|}\",\n      \"math/partial=${1|upright,italic|}\",\n      \"math/real-part=${1|roman,fraktur|}\",\n      \"math/vector=${1|boldfont,arrow|}\",\n      \"math/uppercase-greek=${1|upright,italic|}\",\n      \"theorem/style=${1|plain,break,change,margin,empty|}\",\n      \"theorem/header-font={${1:头部字体格式}}\",\n      \"theorem/body-font={${1:内部字体格式}}\",\n      \"theorem/qed-symbol=${1:证毕符号}\",\n      \"theorem/counter=${1:counter}\",\n      \"theorem/share-counter\",\n      \"theorem/type={${1:{环境名,类型标识}{头名称},...}}\",\n      \"theorem/define\",\n      \"label-sep/figure=${1:符号}\",\n      \"label-sep/table=${1:符号}\",\n      \"label-sep/equation=${1:符号}\",\n      \"bib/style=${1:自定义样式}\",\n      \"bib/option={${1:选项列表}}\",\n      \"bib/resource={${1:文件}}\",\n      \"abstract/toc-entry\",\n      \"abstract/underline\",\n      \"abstract/title-style=${1|strict,centered,natural|}\",\n      \"tableofcontents/dotline=${1|chapter,section|}\",\n      \"tableofcontents/toc-entry\",\n      \"listoffigures/toc-entry\",\n      \"listoftables/toc-entry\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/njuthesis#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nlctdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"fourier\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"doc\"\n    },\n    {\n      \"name\": \"dox\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"class-scrbook\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"report\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifnlctdocinlinetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwidecs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwbprompt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"letterheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdocmarginfmt\"\n    },\n    {\n      \"name\": \"nlctdocmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctdocmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdocmarginwide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctdocmarginwide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"mgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintChanges\"\n    },\n    {\n      \"name\": \"RecordChanges\"\n    },\n    {\n      \"name\": \"main\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"main{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"usage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usage{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdocmainencap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctdochyperencap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialPageIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialPageIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"macrowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importantfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importantsymbolfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importantsymbolfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"importantpar\"\n    },\n    {\n      \"name\": \"importantsymbol\"\n    },\n    {\n      \"name\": \"defsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmpwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmpheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doidxmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iapp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iapp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"app\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"app{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"qt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"termdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"termdef{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iterm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dequals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxmarkedfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxmarkedfont{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ics{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csmeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csmeta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csmetameta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csmetameta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csoptfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"icsopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icsopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoptfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ipkgopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ipkgopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ideprecatedpkgopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ideprecatedpkgopt[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"deprecatedpkgopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"deprecatedpkgopt[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoptval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsoptfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iclsopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iclsopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ideprecatedclsopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ideprecatedclsopt[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"deprecatedclsopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"deprecatedclsopt[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsoptval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsoptval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"filetypefmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filetypefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifiletype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifiletype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"filetype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filetype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"styfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"styfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"isty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"icls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icls{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"envfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ienv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ienv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ctrfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ictr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ictr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ctr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"boolfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ibool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibool{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bool{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bstfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bstfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ibst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ctandoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctandoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theexample\"\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toTop\"\n    },\n    {\n      \"name\": \"oldlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sectionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xrsectionref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrsectionref{${1:filename%file}}{${2:arg}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"qtdocref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtdocref{${1:filename%file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"docref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"docref{${1:filename%file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"altdocref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"altdocref{${1:filename1%file}}{${2:filename2%file}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"urlref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlref{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"urlfootref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlfootref{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"submenu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submenu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listofexamples\"\n    },\n    {\n      \"name\": \"nlcthlangle\"\n    },\n    {\n      \"name\": \"nlcthrangle\"\n    },\n    {\n      \"name\": \"aargh\"\n    },\n    {\n      \"name\": \"promptsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label%plain}]\"\n      }\n    },\n    {\n      \"name\": \"important\"\n    },\n    {\n      \"name\": \"prompt\"\n    },\n    {\n      \"name\": \"display\"\n    },\n    {\n      \"name\": \"labelledbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/nlctdoc#c\": [\n      \"article\",\n      \"book\",\n      \"report\",\n      \"a5paper\",\n      \"normalmp\",\n      \"inlinetitle\",\n      \"widecs\",\n      \"wbprompt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nlctdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nostarch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"subfigure\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"brieftableofcontents\"\n    },\n    {\n      \"name\": \"chapterart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterart{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"chapterartfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterartfile{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"colophon\"\n    },\n    {\n      \"name\": \"makehalftitle\"\n    },\n    {\n      \"name\": \"NextCaptionWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextCaptionWidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"nostarchlocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nostarchlocation{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"nostarchlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nostarchlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"sectionnumberwidth\"\n    },\n    {\n      \"name\": \"subsectionnumberwidth\"\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbfont\"\n    },\n    {\n      \"name\": \"thfont\"\n    },\n    {\n      \"name\": \"updatespage\"\n    },\n    {\n      \"name\": \"boldsectionnumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxlst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxlst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"briefcontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionlst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionlst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterwithquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codewingding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codewingding{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"colophonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dogma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futuraboldc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futuraboldcoblique\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futurabook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futuraheavy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futuraoblique\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexgroup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginwingding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginwingding{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"projecthead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"projecthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"timesnewroman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnoffbigpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wingding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wingding{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"aside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"cipblock\"\n    },\n    {\n      \"name\": \"Code\"\n    },\n    {\n      \"name\": \"Code\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Code}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"dedicationpage\"\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"codewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codewide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"custombox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"customboxcontinued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurewide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"nspbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nspboxcontinued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablewide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"tabularwide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/nostarch#c\": [\n      \"cfonts\",\n      \"nocfonts\",\n      \"fontsdir\",\n      \"nofontsdir\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ],\n    \"\\\\begin{Code}\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nostarch#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-novel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luatex85\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"noindentafter\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"magaz\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"ifdraftdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draftdoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draftdocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmsdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msdoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msdocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesandboxcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testsuiteoops\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testsuiteoops{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SetTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"theTitle\"\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAuthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"theAuthor\"\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetSubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSubtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"theSubtitle\"\n    },\n    {\n      \"name\": \"thesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetApplication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetApplication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetProducer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetProducer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPDFX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPDFX{${1:compliance standard}}\"\n      }\n    },\n    {\n      \"name\": \"SetPDFX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetPDFX[${2:ouput intent}]{${1:compliance standard}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrimSize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrimSize{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"SetMargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetMargins{${1:top%l}}{${2:outer%l}}{${3:bottom%l}}{${4:inner%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetUnsafeZone\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetUnsafeZone{${1:top%l}}{${2:outer%l}}{${3:bottom%l}}{${4:inner%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetMediaSize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetMediaSize{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"SetLinesPerPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLinesPerPage{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontSize{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ifWithinFrontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinFrontmattertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinFrontmatterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifWithinMainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinMainmattertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinMainmatterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"CreateFontFeature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CreateFontFeature{${1:code}}{${2:substitutions}}\"\n      }\n    },\n    {\n      \"name\": \"SetChapterFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetChapterFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetChapterFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetChapterFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetDecoFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDecoFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetDecoFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetDecoFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetHeadFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHeadFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetHeadFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetHeadFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetParentFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetParentFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetParentFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetParentFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetSubchFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSubchFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetSubchFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetSubchFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewFontFamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewFontFamily{${1:cmd}}{${2:font family}}\"\n      }\n    },\n    {\n      \"name\": \"NewFontFamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewFontFamily{${1:cmd}}[${3:features%keyvals}]{${2:font family}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewFontFace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewFontFace{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"NewFontFamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewFontFamily{${1:cmd}}[${3:features%keyvals}]{${2:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetSansFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSansFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetSansFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetSansFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetMonoFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMonoFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetMonoFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetMonoFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetMathFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMathFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"SetMathFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetMathFont[${2:features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddFontFeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddFontFeatures{${1:features%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddFontFeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddFontFeature{${1:features%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetDropCapColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDropCapColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetDropCapColor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetDropCapColor[${2:color model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetDropCapFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDropCapFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"mainfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfontfeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smcp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theNDCDefaultLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNDCDefaultDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCDefaultVoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCDefaultHoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCDefaultScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCDefaultBloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCDefaultGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NDCboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dropcap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropcap{${1:letter or image}}\"\n      }\n    },\n    {\n      \"name\": \"dropcap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dropcap[${2:options%keyvals}]{${1:letter or image}}\",\n        \"keys\": [\n          \"\\\\dropcap,\\\\dropcap*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dropcap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropcap*{${1:letter or image}}\"\n      }\n    },\n    {\n      \"name\": \"dropcap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dropcap*[${2:options%keyvals}]{${1:letter or image}}\",\n        \"keys\": [\n          \"\\\\dropcap,\\\\dropcap*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"straightquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"straightdblquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midcase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"decoglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decoglyph{${1:char number}}\"\n      }\n    },\n    {\n      \"name\": \"memo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stake\"\n    },\n    {\n      \"name\": \"allsmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allsmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldscshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flexbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flexbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"flexbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"flexbox[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"bigemdash\"\n    },\n    {\n      \"name\": \"bigemdash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bigemdash[${1:yoffset,thickness}]\"\n      }\n    },\n    {\n      \"name\": \"charscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charscale{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charscale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"charscale[${2:scale,hoffset,voffset}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charscale*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charscale*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charscale*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"charscale*[${2:scale,hoffset,voffset}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TotalYpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PosTolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getParapos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentParapos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaHowdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaLinesdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaResidual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaComplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaDeficit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tocitem{${1:description%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"tocitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tocitem[${3:chapter number}]{${1:description%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"tocitem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tocitem*{${1:description%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"tocitem*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tocitem*[${3:chapter number}]{${1:description%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"hangleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangleft{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"showlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showlength{${1:length}}{${2:units}}\"\n      }\n    },\n    {\n      \"name\": \"showlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showlength[${3:decimal places}]{${1:length}}{${2:units}}\"\n      }\n    },\n    {\n      \"name\": \"lnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnum{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"yadacurrentcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yadaendcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novelyadayada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novelyadayada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"novelyadayada[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"novelyadayada*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novelyadayada*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"novelyadayada*[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"sidebyside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidebyside{${1:content1%text}}{${2:content2%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidebyside\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidebyside[${3:a,b,c,d}]{${1:content1%text}}{${2:content2%text}}\"\n      }\n    },\n    {\n      \"name\": \"myparindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myparindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"nfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalXheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalscxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalAringheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaldescender\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetHeadFootStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHeadFootStyle{${1:style number}}\"\n      }\n    },\n    {\n      \"name\": \"SetHeadJump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHeadJump{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFootJump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFootJump{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetLooseHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLooseHead{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetEmblems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetEmblems{${1:verso}}{${2:recto}}\"\n      }\n    },\n    {\n      \"name\": \"SetPageNumberStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPageNumberStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewVersoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewVersoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoheadtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVersoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetVersoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RenewVersoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewVersoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NewRectoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewRectoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoheadtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetRectoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetRectoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RenewRectoHeadText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewRectoHeadText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetChapterStartStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetChapterStartStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"SetChapterStartHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetChapterStartHeight{${1:lines}}\"\n      }\n    },\n    {\n      \"name\": \"SetScenebreakIndent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetScenebreakIndent{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"scenebreak\"\n    },\n    {\n      \"name\": \"sceneline\"\n    },\n    {\n      \"name\": \"scenestars\"\n    },\n    {\n      \"name\": \"getBreakpos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getBreakpos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentBreakpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstLine*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstLine*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thenovelcn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapterTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterTitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterTitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ChapterTitle[${2:alignment%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\ChapterTitle,\\\\ChapterSubtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChapterSubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterSubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterSubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ChapterSubtitle[${2:alignment%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\ChapterTitle,\\\\ChapterSubtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChapterDeco\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterDeco{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterDeco\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ChapterDeco[${2:alignment scale}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"QuickChapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuickChapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"QuickChapter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"QuickChapter[${2:line length%l}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"cleartorecto\"\n    },\n    {\n      \"name\": \"cleartoend\"\n    },\n    {\n      \"name\": \"thisline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PDFHasDisallowedColorspaceTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PDFHasDisallowedColorspaceTF{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"PDFVerifyInfoFieldTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PDFVerifyInfoFieldTF{${1:string1}}{${2:string2}}{${3:string3}}\"\n      }\n    },\n    {\n      \"name\": \"ScriptCoverImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ScriptCoverImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"imagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagehoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagevoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagestarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagefilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InlineImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InlineImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"InlineImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"InlineImage[${2:hoffset,voffset}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"InlineImage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InlineImage*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"InlineImage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"InlineImage*[${2:hoffset,voffset}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"floatlocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatlocation{${1:float}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"FloatImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FloatImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"FloatImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FloatImage[${2:pos,xoffset,yoffset}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"WrapImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"WrapImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"WrapImage[${2:position%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\WrapImage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"novelgetbytes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"novelgetbytes{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"novelbytesare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novelpngbitdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"novelpngbitdepth{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"novelpngcolortype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"novelpngcolortype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SetKnownGoodImages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetKnownGoodImages{${1:imagefile list}}\"\n      }\n    },\n    {\n      \"name\": \"sups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sups{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"realmarker\"\n    },\n    {\n      \"name\": \"fakemarker\"\n    },\n    {\n      \"name\": \"SetMarkerStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMarkerStyle{${1:astersk,dagger,number}}\"\n      }\n    },\n    {\n      \"name\": \"SetMarkerStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetMarkerStyle[${2:real,fake}]{${1:astersk,dagger,number}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"endnotetext{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Resetendnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetFootnoteSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetFootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nentext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nentext{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"labeling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labeling*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parascale\"\n    },\n    {\n      \"name\": \"parascale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"toc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:extra margins}}\"\n      }\n    },\n    {\n      \"name\": \"toc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:extra entry sep}]{${1:extra margins}}\"\n      }\n    },\n    {\n      \"name\": \"legalese\"\n    },\n    {\n      \"name\": \"ChapterStart\"\n    },\n    {\n      \"name\": \"ChapterStart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines}]\"\n      }\n    },\n    {\n      \"name\": \"ChapterStart\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:lines}][${2:style}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/novel#c\": [\n      \"draft\",\n      \"sandbox\",\n      \"shademargins\",\n      \"cropmarks\",\n      \"cropview\",\n      \"closecrop\",\n      \"xml\",\n      \"coverart\",\n      \"mtoff\",\n      \"test\",\n      \"unblock\",\n      \"revert\"\n    ],\n    \"\\\\SetChapterFont,\\\\SetDecoFont,\\\\SetHeadFont,\\\\SetMasterFont,\\\\SetParentFont,\\\\SetSubchFont,\\\\NewFontFamily,\\\\NewFontFamily,\\\\SetSansFont,\\\\SetMonoFont,\\\\SetMathFont,\\\\AddFontFeatures,\\\\AddFontFeature\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,Lowercase,Lining,OldStyle,Proportional,Monospaced,SlashedZero,Arabic,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ],\n    \"\\\\dropcap,\\\\dropcap*\": [\n      \"lines=${1:integer}\",\n      \"gap=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"ante={${1:text}}\",\n      \"ante*={${1:text}}\",\n      \"scale=${1:number}\",\n      \"bloat=${1:number}\",\n      \"depth=${1:integer}\"\n    ],\n    \"\\\\ChapterTitle,\\\\ChapterSubtitle\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\WrapImage\": [\n      \"l\",\n      \"r\",\n      \"o\",\n      \"i\",\n      \"L\",\n      \"R\",\n      \"O\",\n      \"I\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/novel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nwafuthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"bicaption\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nwafuset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nwafuset{${1:键值列表%keyvals}}\",\n        \"keys\": [\n          \"\\\\nwafuset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"frontmatter[${1:编号格式}]\"\n      }\n    },\n    {\n      \"name\": \"frontmatter*\"\n    },\n    {\n      \"name\": \"frontmatter*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"frontmatter*[${1:编号格式}]\"\n      }\n    },\n    {\n      \"name\": \"mainmatter*\"\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem*[${3:options%keyvals}]{${1:envname}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\newtheorem,\\\\newtheorem*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibmatter\"\n    },\n    {\n      \"name\": \"bibmatter*\"\n    },\n    {\n      \"name\": \"researchitem\"\n    },\n    {\n      \"name\": \"researchitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"researchitem[${1:个人简历分类名称}]\"\n      }\n    },\n    {\n      \"name\": \"nwafuthesis\"\n    },\n    {\n      \"name\": \"datezh\"\n    },\n    {\n      \"name\": \"dateen\"\n    },\n    {\n      \"name\": \"fakebold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakebold{${1:文字内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"fakebold\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fakebold[${2:加粗系数}]{${1:文字内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"makecoveri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecoverii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecoveriii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecoveriv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecoverv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecovervi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecovervii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makecovers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefront\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoublepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleardoublepage[${1:页面风格}]\"\n      }\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"nwafubibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compextradelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citets{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citets(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citets(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citets(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citets[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citets[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citets(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:小标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"resume\"\n    },\n    {\n      \"name\": \"publications\"\n    },\n    {\n      \"name\": \"achievements\"\n    },\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/nwafuthesis#c\": [\n      \"type=${1|doctor,master,bachelor|}\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\"\n    ],\n    \"\\\\nwafuset#c\": [\n      \"style={${1:键值列表}}\",\n      \"style/font=${1|garamond,libertinus,lm,palatino,times,times*,none|}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,mac,sinotype,sourcehan,windows,none|}\",\n      \"style/font-size=${1|-4,5|}\",\n      \"style/fullwidth-stop=${1|catcode,mapping,false|}\",\n      \"style/footnote-style=${1|plain,libertinus,libertinus*,libertinus-sans,pifont,pifont*,pifont-sans,pifont-sans*,xits,xits-sans,xits-sans*|}\",\n      \"style/hyperlink=${1|border,color,none|}\",\n      \"style/hyperlink-color=${1|default,classic,elegant,fantasy,material,business,science,summer,autumn,graylevel,prl|}\",\n      \"style/bib-resource={${1:文件}}\",\n      \"style/logo={${1:文件}}\",\n      \"style/logo-size=\",\n      \"style/logo-size={${1:宽度,高度}}\",\n      \"style/auto-make-cover\",\n      \"style/withchapter\",\n      \"style/withsig\",\n      \"style/anonymous\",\n      \"style/chapnum=${1|zh,en|}\",\n      \"info={${1:键值列表}}\",\n      \"info/degree=${1|academic,professional|}\",\n      \"info/btype=${1|paper,design|}\",\n      \"info/title={${1:中文标题}}\",\n      \"info/title*={${1:英文标题}}\",\n      \"info/author={${1:姓名}}\",\n      \"info/author*={${1:英文姓名或拼音}}\",\n      \"info/supervisor={${1:姓名}}\",\n      \"info/supervisor*={${1:英文姓名或拼音}}\",\n      \"info/cosupervisor={${1:姓名}}\",\n      \"info/cosupervisor*={${1:英文姓名或拼音}}\",\n      \"info/department={${1:名称}}\",\n      \"info/department*={${1:英文名称}}\",\n      \"info/major={${1:名称}}\",\n      \"info/major*={${1:英文名称}}\",\n      \"info/researchfield={${1:名称}}\",\n      \"info/researchfield*={${1:英文名称}}\",\n      \"info/professionaltype={${1:名称}}\",\n      \"info/professionaltype*={${1:英文名称}}\",\n      \"info/professionalfield={${1:名称}}\",\n      \"info/professionalfield*={${1:英文名称}}\",\n      \"info/mastertype={${1:研究生学位英文名称}}\",\n      \"info/student-id={${1:数字}}\",\n      \"info/class-id={${1:数字}}\",\n      \"info/grade={${1:数字}}\",\n      \"info/enroll={${1:数字}}\",\n      \"info/school-id={${1:数字}}\",\n      \"info/date={${1:日期}}\",\n      \"info/date*={${1:英文日期}}\",\n      \"info/defensedate={${1:日期}}\",\n      \"info/secret-level=${1|none,i,ii,iii,iv|}\",\n      \"info/instructors={${1:成员 1, 成员 2, ...}}\",\n      \"info/defensecommittees={${1:{单位, 姓名, 职称}, {单位, 姓名, 职称}, ...}}\",\n      \"info/foundation={${1:{来源, 名称, 编号}, {来源, 名称, 编号}, ...}}\",\n      \"info/clc={${1:分类号}}\",\n      \"info/udc={${1:UDC码}}\",\n      \"abstract={${1:键值列表}}\",\n      \"abstract/abstractfile={${1:中文摘要文件名}}\",\n      \"abstract/abstractfile*={${1:英文摘要文件名}}\",\n      \"abstract/keywords={${1:中文关键字}}\",\n      \"abstract/keywords*={${1:英文关键字}}\",\n      \"abstract/notationfile={${1:主要符号对照表文件名}}\",\n      \"theorem={${1:键值列表}}\",\n      \"theorem/style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"theorem/header-font={${1:字体}}\",\n      \"theorem/body-font={${1:字体}}\",\n      \"theorem/qed={${1:符号}}\",\n      \"theorem/counter={${1:计数器}}\"\n    ],\n    \"\\\\newtheorem,\\\\newtheorem*\": [\n      \"style=${1|plain,margin,change,break,marginbreak,changebreak|}\",\n      \"header-font={${1:字体}}\",\n      \"body-font={${1:字体}}\",\n      \"qed={${1:符号}}\",\n      \"counter={${1:计数器}}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nwafuthesis#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-nwejmart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"nag\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"kpfonts\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"xr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"tocvsec2\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"footnote\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"ngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasdutch\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutchhyphenmins\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refpagename\",\n      \"if\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articlesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articlesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\articlesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:titre alternatif tdm%text}]{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"title[${2:titre alternatif tdm%text}][${3:titre alternatif entête%text}]{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:sous-titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:sous-titre alternatif tdm%text}]{${1:sous-titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:options%keyvals}]{${1:Nom,Prénom}}\",\n        \"keys\": [\n          \"\\\\author\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:mots clés%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keywords[${2:variante des mots clés}]{${1:mots clés%text}}\"\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msc{${1:msc}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgments{${1:remerciements%text}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:titre alternatif tdm%text}][${3:titre alternatif entête%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"E\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"E[${1:argument%formula}]\"\n      }\n    },\n    {\n      \"name\": \"log*\"\n    },\n    {\n      \"name\": \"ln*\"\n    },\n    {\n      \"name\": \"bbN\"\n    },\n    {\n      \"name\": \"bbZ\"\n    },\n    {\n      \"name\": \"bbD\"\n    },\n    {\n      \"name\": \"bbQ\"\n    },\n    {\n      \"name\": \"bbR\"\n    },\n    {\n      \"name\": \"bbC\"\n    },\n    {\n      \"name\": \"bbK\"\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:définition%plain}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"set{${1:définition%plain}}[${2:caractérisation}]\"\n      }\n    },\n    {\n      \"name\": \"cotan\"\n    },\n    {\n      \"name\": \"arccosh\"\n    },\n    {\n      \"name\": \"arcsinh\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"Argch\"\n    },\n    {\n      \"name\": \"Argsh\"\n    },\n    {\n      \"name\": \"arctanh\"\n    },\n    {\n      \"name\": \"Argth\"\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnorm{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lnorm[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnorm*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"llnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llnorm{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"llnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"llnorm[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"llnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llnorm*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lpnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpnorm{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lpnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lpnorm[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lpnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpnorm*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supnorm{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"supnorm[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supnorm*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"prt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prt{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"prt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prt[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"prt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prt*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brk{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brk\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"brk[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brk*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brk*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brc{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"brc[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"brc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brc*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"leqgeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqgeq{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"leqgeq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leqgeq[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"leqgeq*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqgeq*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lrangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrangle{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lrangle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lrangle[${2:paramètre de taille}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"lrangle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrangle*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"NewPairedDelimiter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewPairedDelimiter{${1:command}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPairedDelimiter\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"dif\"\n    },\n    {\n      \"name\": \"grad\"\n    },\n    {\n      \"name\": \"Div\"\n    },\n    {\n      \"name\": \"curl\"\n    },\n    {\n      \"name\": \"supp\"\n    },\n    {\n      \"name\": \"BinaryOperators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BinaryOperators{${1:opérateurs binaires}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newtheorem[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\newtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newenumeration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newenumeration{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newenumeration\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newenumeration[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\newenumeration,\\\\renewenumeration\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewenumeration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewenumeration{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"renewenumeration\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"renewenumeration[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\newenumeration,\\\\renewenumeration\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"ie*\"\n    },\n    {\n      \"name\": \"Ie\"\n    },\n    {\n      \"name\": \"Ie*\"\n    },\n    {\n      \"name\": \"century\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"century{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"century*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"century*{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"aside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aside{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aside*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aside*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nwejm\"\n    },\n    {\n      \"name\": \"nwejm*\"\n    },\n    {\n      \"name\": \"dates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dates{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\dates\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fixpagenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixpagenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fontdesignertext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontdesignertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"graphicdesigntext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicdesigntext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibnamelast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibnamelast{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\"\n    },\n    {\n      \"name\": \"theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\"\n    },\n    {\n      \"name\": \"corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture*\"\n    },\n    {\n      \"name\": \"conjecture*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\"\n    },\n    {\n      \"name\": \"proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\"\n    },\n    {\n      \"name\": \"lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom*\"\n    },\n    {\n      \"name\": \"axiom*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\"\n    },\n    {\n      \"name\": \"definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\"\n    },\n    {\n      \"name\": \"remark*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"example*\"\n    },\n    {\n      \"name\": \"example*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation*\"\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"assertions\"\n    },\n    {\n      \"name\": \"hypotheses\"\n    },\n    {\n      \"name\": \"conditions\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/nwejmart#c\": [\n      \"english\",\n      \"french\",\n      \"german\",\n      \"dutch\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"draft\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ],\n    \"\\\\articlesetup\": [\n      \"gradient=${1|grad,nabla|}\"\n    ],\n    \"\\\\author\": [\n      \"affiliation={${1:affiliation}}\",\n      \"affiliation=[${1:tag}]{${2:affiliation}}\",\n      \"affiliationtagged={${1:tag}}\"\n    ],\n    \"\\\\NewPairedDelimiter\": [\n      \"left=${1:delimiter}\",\n      \"right=${1:delimiter}\",\n      \"subscript=${1:indice}\"\n    ],\n    \"\\\\newtheorem\": [\n      \"style=${1|theorem,definition,proof|}\",\n      \"title=${1:titre récurrent}\",\n      \"title-plural=${1:forme plurielle du titre récurrent}\"\n    ],\n    \"\\\\newenumeration,\\\\renewenumeration\": [\n      \"label=${1:label}\",\n      \"singular=${1:forme singulière de l'énumération}\",\n      \"plural=${1:forme plurielle de l'énumération}\"\n    ],\n    \"\\\\dates\": [\n      \"received=${1:YYYY-MM-DD}\",\n      \"accepted=${1:YYYY-MM-DD}\",\n      \"online=${1:YYYY-MM-DD}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/nwejmart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-oblivoir.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"oblivoir-xl\"\n    },\n    {\n      \"name\": \"moreverb\",\n      \"if\": \"moreverb\"\n    },\n    {\n      \"name\": \"lwarp\",\n      \"if\": \"lwarp\"\n    },\n    {\n      \"name\": \"xob-lwarp\",\n      \"if\": \"lwarp\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"xob-amssymb\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"bookmark\",\n      \"if\": \"bookmark\"\n    },\n    {\n      \"name\": \"ob-nokoreanappendix\",\n      \"if\": \"nokorean\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"babelhangul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifLuaOrXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MSNormalSize\",\n      \"if\": \"ms\"\n    },\n    {\n      \"name\": \"sethangulfont\",\n      \"if\": \"polyglossia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"sethangulfont\",\n      \"if\": \"polyglossia\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sethangulfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"hangulfont\",\n      \"if\": \"polyglossia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangulfonttt\",\n      \"if\": \"polyglossia\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/oblivoir#c\": [\n      \"cjk\",\n      \"dhucs\",\n      \"fontspec={${1:fontspec options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"xcolor={${1:xcolor options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/oblivoir#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-octavo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/octavo#c\": [\n      \"foolscap\",\n      \"crown\",\n      \"post\",\n      \"largepost\",\n      \"demy\",\n      \"medium\",\n      \"royal\",\n      \"superroyal\",\n      \"imperial\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/octavo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-oup-authoring-template.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"crop\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"stfloats\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"chngpage\"\n    },\n    {\n      \"name\": \"totcount\"\n    },\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"subfloat\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"footnote\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"accepted{${1:date}}{${2:number}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"access\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"access{${1:access text%text}}\"\n      }\n    },\n    {\n      \"name\": \"addappheadtotoc\"\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:sequence}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"appendicestocpagenum\"\n    },\n    {\n      \"name\": \"appendixheaderoff\"\n    },\n    {\n      \"name\": \"appendixheaderon\"\n    },\n    {\n      \"name\": \"appendixpage\"\n    },\n    {\n      \"name\": \"appendixpagename\"\n    },\n    {\n      \"name\": \"appendixpageoff\"\n    },\n    {\n      \"name\": \"appendixpageon\"\n    },\n    {\n      \"name\": \"appendixtitleoff\"\n    },\n    {\n      \"name\": \"appendixtitleon\"\n    },\n    {\n      \"name\": \"appendixtitletocoff\"\n    },\n    {\n      \"name\": \"appendixtitletocon\"\n    },\n    {\n      \"name\": \"appendixtocname\"\n    },\n    {\n      \"name\": \"appendixtocoff\"\n    },\n    {\n      \"name\": \"appendixtocon\"\n    },\n    {\n      \"name\": \"appnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:address num,$\\\\ast$}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:address num}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"authormark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authormark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"boxedtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"corresp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"corresp[$\\\\ast$]{${1:author info}}\"\n      }\n    },\n    {\n      \"name\": \"corresp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corresp{${1:author info}}\"\n      }\n    },\n    {\n      \"name\": \"country\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"country{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"DOI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"firstpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"journaltitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journaltitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keyword1,keyword2,...}}\"\n      }\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"noappendicestocpagenum\"\n    },\n    {\n      \"name\": \"ORCID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORCID{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"orgaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgaddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"orgdiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgdiv{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"orgname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"postcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"pubyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"received{${1:date}}{${2:number}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"restoreapp\"\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"revised{${1:date}}{${2:number}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"setthesection\"\n    },\n    {\n      \"name\": \"setthesubsection\"\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"street\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"street{${1:street}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlemark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"aboveskipchk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresscommasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"application\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authbiotextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorcommasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"croppaperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"croppaperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Croppdfheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Croppdfwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcase{${1:number}}{${2:case}}\"\n      }\n    },\n    {\n      \"name\": \"dropfromtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evensideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"history\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"history{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"historycommasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflastpagegiven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsBleedSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsCropSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issue{${1:issue}}\"\n      }\n    },\n    {\n      \"name\": \"IsTrimSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastmodifieddate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpagegivenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpagegiventrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"myswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myswitch{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oddsideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opensquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotatecenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotateendcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotfinish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotl{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"rotr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotr{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"rotstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotstart{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetBleed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetBleed{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"SetCrop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCrop{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"setlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTrim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrim{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"sffamilyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontbold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontbolditalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontcn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontcnbold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontcnbolditalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontcnitalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyfontitalic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsecsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempdime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temptbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefirstpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themyaddcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themyauthcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themyhistorycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagerange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagewd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Trimpdfheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Trimpdfwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vol{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"wraplines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writelastpage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendices\"\n    },\n    {\n      \"name\": \"subappendices\"\n    },\n    {\n      \"name\": \"tablenotes\"\n    },\n    {\n      \"name\": \"unlist\"\n    },\n    {\n      \"name\": \"methods\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/oup-authoring-template#c\": [\n      \"namedate\",\n      \"draft\",\n      \"b4paper\",\n      \"centre\",\n      \"crop\",\n      \"nocrop\",\n      \"info\",\n      \"noinfo\",\n      \"final\",\n      \"unnumsec\",\n      \"webpdf\",\n      \"modern\",\n      \"traditional\",\n      \"contemporary\",\n      \"large\",\n      \"medium\",\n      \"small\",\n      \"toc\",\n      \"title\",\n      \"titletoc\",\n      \"header\",\n      \"page\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"thmstyleone\",\n      \"thmstyletwo\",\n      \"thmstylethree\",\n      \"thmstylefour\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/oup-authoring-template#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-pagelayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"class-standalone\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"twoside\"\n    },\n    {\n      \"name\": \"beginleft\"\n    },\n    {\n      \"name\": \"fanfold\"\n    },\n    {\n      \"name\": \"cover\"\n    },\n    {\n      \"name\": \"beginright\"\n    },\n    {\n      \"name\": \"pagewidth\"\n    },\n    {\n      \"name\": \"pageheight\"\n    },\n    {\n      \"name\": \"bleed\"\n    },\n    {\n      \"name\": \"outerbleed\"\n    },\n    {\n      \"name\": \"innerbleed\"\n    },\n    {\n      \"name\": \"topbleed\"\n    },\n    {\n      \"name\": \"bottombleed\"\n    },\n    {\n      \"name\": \"safetymargin\"\n    },\n    {\n      \"name\": \"topsafetymargin\"\n    },\n    {\n      \"name\": \"bottomsafetymargin\"\n    },\n    {\n      \"name\": \"innersafetymargin\"\n    },\n    {\n      \"name\": \"outersafetymargin\"\n    },\n    {\n      \"name\": \"margin\"\n    },\n    {\n      \"name\": \"innermargin\"\n    },\n    {\n      \"name\": \"bottommargin\"\n    },\n    {\n      \"name\": \"outermargin\"\n    },\n    {\n      \"name\": \"gutter\"\n    },\n    {\n      \"name\": \"coverwidth\"\n    },\n    {\n      \"name\": \"coverheight\"\n    },\n    {\n      \"name\": \"spinewidth\"\n    },\n    {\n      \"name\": \"bindingoffset\"\n    },\n    {\n      \"name\": \"coverbleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverouterbleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverinnerbleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covertopbleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverbottombleed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coversafetymargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covertopsafetymargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverbottomsafetymargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverinnersafetymargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coveroutersafetymargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grid\"\n    },\n    {\n      \"name\": \"nogrid\"\n    },\n    {\n      \"name\": \"safezone\"\n    },\n    {\n      \"name\": \"nosafezone\"\n    },\n    {\n      \"name\": \"cuttingmarks\"\n    },\n    {\n      \"name\": \"nocuttingmarks\"\n    },\n    {\n      \"name\": \"graphpaper\"\n    },\n    {\n      \"name\": \"nographpaper\"\n    },\n    {\n      \"name\": \"placeholders\"\n    },\n    {\n      \"name\": \"noplaceholders\"\n    },\n    {\n      \"name\": \"fillpages\"\n    },\n    {\n      \"name\": \"nofillpages\"\n    },\n    {\n      \"name\": \"page\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"page{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"page\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"page[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\page,\\\\newtemplate,\\\\template\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pagecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagecolor[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setpagecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setpagecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpagecolor[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setpagegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpagegraphic{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setpagegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpagegraphic[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\setpagegraphic,\\\\newgraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newbeforepage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbeforepage{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setbeforepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbeforepage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifleftpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifleftpage{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrightpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifrightpage{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftpage{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightpage{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifspine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifspine{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setgrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgrid{${1:config}}\"\n      }\n    },\n    {\n      \"name\": \"setgrid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setgrid[${2:options%keyvals}]{${1:config}}\",\n        \"keys\": [\n          \"\\\\setgrid\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:fromrow fromcell torow tocell}}\"\n      }\n    },\n    {\n      \"name\": \"text\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"text[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\text\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetext\"\n    },\n    {\n      \"name\": \"usetext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"usetext[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"newgraphic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgraphic{${1:name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"graphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphic{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"graphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graphic[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\graphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xput{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"tikzgraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzgraphic{${1:TikZ code%text}}\"\n      }\n    },\n    {\n      \"name\": \"newborder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newborder{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newborder,\\\\setborder\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setborder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setborder{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setborder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setborder[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\newborder,\\\\setborder\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newshadow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newshadow{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newshadow,\\\\setshadow\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setshadow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshadow{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setshadow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setshadow[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\newshadow,\\\\setshadow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtemplate{${1:name}}{${2:layout}}\"\n      }\n    },\n    {\n      \"name\": \"newtemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtemplate[${3:options%keyvals}]{${1:name}}{${2:layout}}\"\n      }\n    },\n    {\n      \"name\": \"placeholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholder{${1:fromrow fromcell torow tocell}}\"\n      }\n    },\n    {\n      \"name\": \"template\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"template{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"template\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"template[${3:options%keyvals}]{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"optimize\"\n    },\n    {\n      \"name\": \"optimize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"optimize[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\optimize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"import\"\n    },\n    {\n      \"name\": \"preflight\"\n    },\n    {\n      \"name\": \"nopreflight\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/pagelayout#c\": [\n      \"pagewidth=\",\n      \"pageheight=\",\n      \"bleed=\",\n      \"outerbleed=\",\n      \"innerbleed=\",\n      \"topbleed=\",\n      \"bottombleed=\",\n      \"safetymargin=\",\n      \"outersafetymargin=\",\n      \"innersafetymargin=\",\n      \"topsafetymargin=\",\n      \"bottomsafetymargin=\",\n      \"coverwidth=\",\n      \"coverheight=\",\n      \"coverbleed=\",\n      \"coverouterbleed=\",\n      \"coverinnerbleed=\",\n      \"covertopbleed=\",\n      \"coverbottombleed=\",\n      \"coversafetymargin=\",\n      \"coveroutersafetymargin=\",\n      \"coverinnersafetymargin=\",\n      \"covertopsafetymargin=\",\n      \"coverbottomsafetymargin=\",\n      \"spinewidth=\",\n      \"bindingoffset=\",\n      \"margin=\",\n      \"outermargin=\",\n      \"innermargin=\",\n      \"topmargin=\",\n      \"bottommargin=\",\n      \"gutter=\",\n      \"pagecolor=\",\n      \"pagegraphic=${1:name}\",\n      \"color=\",\n      \"grid\",\n      \"safezone\",\n      \"cuttingmarks\",\n      \"graphpaper\",\n      \"placeholder\",\n      \"fillpages\",\n      \"draft\",\n      \"preflight\",\n      \"twoside\",\n      \"fanfold\",\n      \"cover\",\n      \"beginleft\",\n      \"beginright\",\n      \"import\"\n    ],\n    \"\\\\page,\\\\newtemplate,\\\\template\": [\n      \"gutter=\",\n      \"margin=\",\n      \"top margin=\",\n      \"bottom margin=\",\n      \"inner margin=\",\n      \"outer margin=\",\n      \"vpos=${1:number 0-1}\",\n      \"hpos=${1:number 0-1}\",\n      \"color=\",\n      \"page color=\",\n      \"page graphic=${1:name}\",\n      \"before page=${1:name}\",\n      \"double\",\n      \"front cover\",\n      \"back cover\"\n    ],\n    \"\\\\setpagegraphic,\\\\newgraphic\": [\n      \"file=${1:imagefile}\",\n      \"scale=${1:factor}\",\n      \"orientation=${1:number}\",\n      \"hflip\",\n      \"vflip\",\n      \"vpos=${1:number 0-1}\",\n      \"hpos=${1:number 0-1}\",\n      \"unsharp=\"\n    ],\n    \"\\\\setgrid\": [\n      \"gutter=\",\n      \"margin=\",\n      \"top margin=\",\n      \"bottom margin=\",\n      \"inner margin=\",\n      \"outer margin=\",\n      \"width=\",\n      \"height=\",\n      \"x=\",\n      \"y=\",\n      \"vpos=${1:number 0-1}\",\n      \"hpos=${1:number 0-1}\"\n    ],\n    \"\\\\text\": [\n      \"name=${1:name}\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"top\",\n      \"center\",\n      \"bottom\",\n      \"boxrule=\",\n      \"toprule=\",\n      \"rightrule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"height=\",\n      \"parbox\",\n      \"breakable\",\n      \"baselinesnap=\",\n      \"border radius=\",\n      \"arc=\",\n      \"border width=\",\n      \"border color=\",\n      \"border opacity=${1:factor}\",\n      \"shadow=${1:name}\",\n      \"shadow size=\",\n      \"shadow color=\",\n      \"shadow opacity=${1:factor}\",\n      \"shadow xshift=\",\n      \"shadow yshift=\"\n    ],\n    \"\\\\graphic\": [\n      \"file=${1:imagefile}\",\n      \"scale=${1:factor}\",\n      \"orientation=${1:number}\",\n      \"hflip\",\n      \"vflip\",\n      \"vpos=${1:number 0-1}\",\n      \"hpos=${1:number 0-1}\",\n      \"unsharp=\",\n      \"border=\",\n      \"border radius=\",\n      \"border width=\",\n      \"border color=\",\n      \"border opacity=${1:factor}\",\n      \"shadow=${1:name}\",\n      \"shadow size=\",\n      \"shadow color=\",\n      \"shadow opacity=${1:factor}\",\n      \"shadow xshift=\",\n      \"shadow yshift=\"\n    ],\n    \"\\\\newborder,\\\\setborder\": [\n      \"radius=\",\n      \"width=\",\n      \"color=\",\n      \"opacity=${1:factor}\"\n    ],\n    \"\\\\newshadow,\\\\setshadow\": [\n      \"size=\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ],\n    \"\\\\optimize\": [\n      \"density=${1:pixels per inch}\",\n      \"quality=${1:number 1-100}\",\n      \"unsharp=\",\n      \"downsample threshold=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/pagelayout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-papertex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"authorandplace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authorandplace{${1:author}}{${2:place}}\"\n      }\n    },\n    {\n      \"name\": \"columntitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"columntitle{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\columntitle,\\\\expandedtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edition{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"expandedtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandedtitle{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\columntitle,\\\\expandedtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"firstimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"firstimage{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstnews\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstnews{${1:heading%text}}{${2:text}}{${3:time}}\"\n      }\n    },\n    {\n      \"name\": \"foot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foot{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"heading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"heading{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"image\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"image{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"indexitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexitem{${1:text}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"newsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newssep\"\n    },\n    {\n      \"name\": \"secondnews\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"secondnews{${1:heading%text}}{${2:subheading%text}}{${3:text}}{${4:pages of}}{${5:time}}\"\n      }\n    },\n    {\n      \"name\": \"shortnewsitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shortnewsitem{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"thirdnews\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"thirdnews{${1:heading%text}}{${2:subheading%text}}{${3:text}}{${4:pages of}}{${5:time}}\"\n      }\n    },\n    {\n      \"name\": \"timestamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestamp{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"weatheritem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"weatheritem{${1:imagefile}}{${2:day}}{${3:max}}{${4:min}}{${5:short desc%text}}\"\n      }\n    },\n    {\n      \"name\": \"columnlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editionFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorialAuthorFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorialTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grid[${3:show}]{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grid{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"headDateTimeFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryPageFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryPageTxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntrySeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerAuthorFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerPlaceFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerTextFinalMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minilogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mylogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mylogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pagesFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papertexInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pictureCaptionFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortnewsItemTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortnewsSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortnewsTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampTxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherTempFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherUnits\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"authorblock\"\n    },\n    {\n      \"name\": \"editorial\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:n}}{${2:heading%text}}{${3:author}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"frontpage\"\n    },\n    {\n      \"name\": \"indexblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"news\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:n}}{${2:heading%text}}{${3:subheading%text}}{${4:pages of}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"shortnews\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:n}}{${2:title%text}}{${3:subtitle%text}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"weatherblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/papertex#c\": [\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"a3paper\",\n      \"columnlines\",\n      \"hyphenatedtitles\",\n      \"showgrid\"\n    ],\n    \"\\\\columntitle,\\\\expandedtitle\": [\n      \"shadowbox\",\n      \"doublebox\",\n      \"ovalbox\",\n      \"Ovalbox\",\n      \"lines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/papertex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-pdfArticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"graphbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fifo-stack\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"contour\"\n    },\n    {\n      \"name\": \"shadowtext\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"overpic\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"tabto\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\",\n      \"if\": \"extra=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\",\n      \"if\": \"extra=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"forceNewPageGeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceNewPageGeometry{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\forceNewPageGeometry\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hl[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"st{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"st[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ul[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namedLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namedLabel{${1:label}}{${2:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/pdfArticle#c\": [\n      \"fontSize=\",\n      \"mainFontFeat={${1:fontspec features}}\",\n      \"mainFont=${1:font name}\",\n      \"sansFontFeat={${1:fontspec features}}\",\n      \"sansFont=${1:font name}\",\n      \"monoFontFeat={${1:fontspec features}}\",\n      \"monoFont=${1:font name}\",\n      \"paperSize=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"paperMode=${1|portrait,landscape|}\",\n      \"tmargin=\",\n      \"bmargin=\",\n      \"lmargin=\",\n      \"rmargin=\",\n      \"twoside\",\n      \"imgResolution=${1:ppi}\",\n      \"extra\"\n    ],\n    \"\\\\forceNewPageGeometry\": [\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"papername=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"c0paper\",\n      \"c1paper\",\n      \"c2paper\",\n      \"c3paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"c6paper\",\n      \"b0j\",\n      \"b1j\",\n      \"b2j\",\n      \"b3j\",\n      \"b4j\",\n      \"b5j\",\n      \"b6j\",\n      \"ansiapaper\",\n      \"ansibpaper\",\n      \"ansicpaper\",\n      \"ansidpaper\",\n      \"ansiepaper\",\n      \"letterpaper\",\n      \"executivepaper\",\n      \"legalpaper\",\n      \"screen\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"papersize=\",\n      \"papersize={${1:width},${2:height}}\",\n      \"landscape\",\n      \"portrait\",\n      \"layout=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"layoutwidth=\",\n      \"layoutheight=\",\n      \"layoutsize=\",\n      \"layoutsize={${1:width},${2:height}}\",\n      \"layouthoffset=\",\n      \"layoutvoffset=\",\n      \"layoutoffset=\",\n      \"layoutoffset={${1:hoffset},${2:voffset}}\",\n      \"hscale=${1:scale}\",\n      \"vscale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"scale={${1:hscale},${2:vscale}}\",\n      \"width=\",\n      \"totalwidth=\",\n      \"height=\",\n      \"totalheight=\",\n      \"total=\",\n      \"total={${1:width},${2:height}}\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"text=\",\n      \"body={${1:width},${2:height}}\",\n      \"lines=${1:integer}\",\n      \"includehead\",\n      \"includefoot\",\n      \"includeheadfoot\",\n      \"includemp\",\n      \"includeall\",\n      \"ignorehead\",\n      \"ignorefoot\",\n      \"ignoreheadfoot\",\n      \"ignoremp\",\n      \"ignoreall\",\n      \"heightrounded\",\n      \"hdivide={${1:left margin},${2:width},${3:right margin}}\",\n      \"vdivide={${1:top margin},${2:height},${3:bottom margin}}\",\n      \"divide={${1:left/top margin},${2:width/height},${3:right/bottom margin}}\",\n      \"left=\",\n      \"lmargin=\",\n      \"inner=\",\n      \"right=\",\n      \"rmargin=\",\n      \"outer=\",\n      \"top=\",\n      \"tmargin=\",\n      \"bottom=\",\n      \"bmargin=\",\n      \"hmargin=\",\n      \"hmargin={${1:left margin},${2:right margin}}\",\n      \"vmargin=\",\n      \"vmargin={${1:top margin},${2:bottom margin}}\",\n      \"margin=\",\n      \"margin={${1:left/top margin},${2:right/bottom margin}}\",\n      \"hmarginratio=${1:left}:${2:right}\",\n      \"vmarginratio=${1:top}:${2:bottom}\",\n      \"marginratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"marginratio=${1:left/top}:${2:right/bottom}\",\n      \"ratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"ratio=${1:left/top}:${2:right/bottom}\",\n      \"hcentering\",\n      \"vcentering\",\n      \"centering\",\n      \"twoside\",\n      \"asymmetric\",\n      \"bindingoffset=\",\n      \"headheight=\",\n      \"head=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"foot=\",\n      \"nohead\",\n      \"nofoot\",\n      \"noheadfoot\",\n      \"footnotesep=\",\n      \"marginparwidth=\",\n      \"marginparsep=\",\n      \"nomarginpar\",\n      \"columnsep=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"offset=\",\n      \"offset={${1:hoffset},${2:voffset}}\",\n      \"twocolumn\",\n      \"onecolumn\",\n      \"twoside\",\n      \"reversemp\",\n      \"reversemarginpar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/pdfArticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-petiteannonce.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"petiteannonce\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"petiteannonce{${1:phone number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"petiteannonce\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"petiteannonce[${3:options%keyvals}]{${1:phone number}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\petiteannonce\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"petiteannoncewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"petiteannoncewidth{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"petiteannonceaddtowidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"petiteannonceaddtowidth{${1:dimen%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/petiteannonce#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"margin=\"\n    ],\n    \"\\\\petiteannonce\": [\n      \"cols=${1:integer}\",\n      \"count=${1:integer}\",\n      \"cutvspace=\",\n      \"skip=${1:integer}\",\n      \"telcolsep=\",\n      \"telrulewidth=\",\n      \"telvspace=\",\n      \"textvspace=\",\n      \"texthspace=\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/petiteannonce#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-phfextendedabstract.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-revtex4-2\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"phfnote\"\n    },\n    {\n      \"name\": \"phfthm\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"verbdef\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"dsfont\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"section<decoration>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"section<decoration>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section<decoration>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section<decoration>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph<decoration>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraph<decoration>{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph<decoration>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paragraph<decoration>[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"phfeaSectionDecoration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfeaSectionDecoration{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"phfeaParagraphDecoration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfeaParagraphDecoration{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"phfeaSectionDecorationSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaParagraphDecorationSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaSectionBeforeSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaSectionAfterHSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaParagraphBeforeSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaParagraphAfterHSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaSectionStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaParagraphStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaSectionFormatHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfeaSectionFormatHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"phfeaParagraphFormatHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfeaParagraphFormatHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"phfeaVerticalSpacingCompressionFactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaDefineTheoremStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaDisplayVerticalSpacingFactorWeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaParskipVerticalSpacingFactorWeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaListsVerticalSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaListsItemSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaListsParSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaHeadingStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfeaTitleStyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/phfextendedabstract#c\": [\n      \"papertype=${1:type}\",\n      \"ptsize=${1|10pt,11pt,12pt|}\",\n      \"sectiondecorations\",\n      \"paragraphdecorations\",\n      \"noheadingdecorations\",\n      \"compressverticalspacing=${1:factor}\",\n      \"loadtheorems\",\n      \"sansstyle\",\n      \"usehyperref\",\n      \"pkgset=${1|none,minimal,rich,extended|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/phfextendedabstract#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-philosophersimprint.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"courier\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"trajan\"\n    },\n    {\n      \"name\": \"flushend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short names}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightinfo{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightlicense\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightlicense{${1:license}}\"\n      }\n    },\n    {\n      \"name\": \"journalnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"journalvolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalvolume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/philosophersimprint#c\": [\n      \"titleimage\",\n      \"notitleimage\",\n      \"trajantitle\",\n      \"notrajantitle\",\n      \"nosc\",\n      \"noosf\",\n      \"slantedGreek\",\n      \"noBBpl\",\n      \"flushend\",\n      \"noflushend\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/philosophersimprint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-photobook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xint\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pagecolor\"\n    },\n    {\n      \"name\": \"colorspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bindingoffset\"\n    },\n    {\n      \"name\": \"bleed\"\n    },\n    {\n      \"name\": \"bleedblockheight\"\n    },\n    {\n      \"name\": \"bleedblockwidth\"\n    },\n    {\n      \"name\": \"blockheight\"\n    },\n    {\n      \"name\": \"blockwidth\"\n    },\n    {\n      \"name\": \"BookAuthors\"\n    },\n    {\n      \"name\": \"BookEdition\"\n    },\n    {\n      \"name\": \"BookFonts\"\n    },\n    {\n      \"name\": \"BookFullInfoPage\"\n    },\n    {\n      \"name\": \"BookFullInfoPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BookFullInfoPage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"BookInfo\"\n    },\n    {\n      \"name\": \"BookInfoPage\"\n    },\n    {\n      \"name\": \"BookInfoPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BookInfoPage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"BookSoftwareInfoPage\"\n    },\n    {\n      \"name\": \"BookSoftwareInfoPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BookSoftwareInfoPage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"BookTitle\"\n    },\n    {\n      \"name\": \"BookType\"\n    },\n    {\n      \"name\": \"BookVersion\"\n    },\n    {\n      \"name\": \"BookYear\"\n    },\n    {\n      \"name\": \"ByNotice\"\n    },\n    {\n      \"name\": \"captionblockcell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionblockcell[${2:options%keyvals}]{${1:caption%text}}\",\n        \"keys\": [\n          \"\\\\captionblockcell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captionblockcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionblockcell{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"captioncell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captioncell[${2:options%keyvals}]{${1:caption%text}}\",\n        \"keys\": [\n          \"\\\\captioncell,\\\\rcaptioncell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captioncell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captioncell{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"captioncellspacing\"\n    },\n    {\n      \"name\": \"captionclearpage\"\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CellContentOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CellContentOptions{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cellheight\"\n    },\n    {\n      \"name\": \"celloffsetleft\"\n    },\n    {\n      \"name\": \"celloffsettop\"\n    },\n    {\n      \"name\": \"cellparentheight\"\n    },\n    {\n      \"name\": \"cellparentwidth\"\n    },\n    {\n      \"name\": \"cellwidth\"\n    },\n    {\n      \"name\": \"clearancebottom\"\n    },\n    {\n      \"name\": \"clearanceleft\"\n    },\n    {\n      \"name\": \"clearanceright\"\n    },\n    {\n      \"name\": \"clearancetop\"\n    },\n    {\n      \"name\": \"clearcaption\"\n    },\n    {\n      \"name\": \"clearfoldoutedge\"\n    },\n    {\n      \"name\": \"clearfoldoutfold\"\n    },\n    {\n      \"name\": \"clearfoldoutgutter\"\n    },\n    {\n      \"name\": \"clearimage\"\n    },\n    {\n      \"name\": \"cleartoleftpage\"\n    },\n    {\n      \"name\": \"cliptocellbleeds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliptocellclearances\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CopyrightNotice\"\n    },\n    {\n      \"name\": \"coverboardgrow\"\n    },\n    {\n      \"name\": \"coverflap\"\n    },\n    {\n      \"name\": \"defaultfoldout\"\n    },\n    {\n      \"name\": \"emptypage\"\n    },\n    {\n      \"name\": \"emptypage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"emptypage[${1:pagestyle}]\"\n      }\n    },\n    {\n      \"name\": \"flatfold\"\n    },\n    {\n      \"name\": \"foldmarkoffset\"\n    },\n    {\n      \"name\": \"foldmarksfalse\"\n    },\n    {\n      \"name\": \"foldmarkstrue\"\n    },\n    {\n      \"name\": \"foldoutwidth\"\n    },\n    {\n      \"name\": \"GenerateTemplate\"\n    },\n    {\n      \"name\": \"GenerateTemplate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GenerateTemplate[${1:unit}]\"\n      }\n    },\n    {\n      \"name\": \"gsavecell\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"gsavecell[${5:valign}]{${1:name}}{${2:width}}{${3:height}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"gsavecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gsavecell{${1:name}}{${2:width}}{${3:height}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"gutteroffset\"\n    },\n    {\n      \"name\": \"iffoldmarks\"\n    },\n    {\n      \"name\": \"ifwriteimagelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imageblockheight\"\n    },\n    {\n      \"name\": \"imageblockoffsettop\"\n    },\n    {\n      \"name\": \"imageblockwidth\"\n    },\n    {\n      \"name\": \"imagecell\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"imagecell[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"imagecell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"imagecell{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageHalfPageL*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageHalfPageL*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageHalfPageL[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageHalfPageL{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageLCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageHalfPageLCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageR*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageHalfPageR*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageR*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageHalfPageR*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageHalfPageR[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageHalfPageR{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageHalfPageRCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageHalfPageRCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"imageoffsetleft\"\n    },\n    {\n      \"name\": \"imageoffsettop\"\n    },\n    {\n      \"name\": \"ImagePage*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePage*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePage*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePage*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePage[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePage{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClear*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClear*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClear*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClear*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClear\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClear[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClear{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearB*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearB*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearB*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearB*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearB[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearB{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearBCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageClearBCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageClearCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearL*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearL*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearL[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearL{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearLCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageClearLCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearR*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearR*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearR*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearR*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearR[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearR{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearRCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageClearRCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearT*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearT*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearT*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearT*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageClearT[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageClearT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageClearT{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageClearTCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageClearTCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFill*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFill*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFill*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFill*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFill\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFill[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFill{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFillCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFillCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFit*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFit*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFit*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFit*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFit[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFit{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitB*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitB*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitB*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitB*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitB[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitB{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitBCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFitBCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFitCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitL*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitL*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitL[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitL{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitLCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFitLCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitR*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitR*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitR*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitR*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitR[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitR{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitRCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFitRCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitT*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitT*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitT*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitT*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImagePageFitT[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePageFitT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageFitT{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageFitTCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePageFitTCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePageTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImagePageTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"imagescale\"\n    },\n    {\n      \"name\": \"ImageSpread*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpread*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpread*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpread*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpread\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpread[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpread{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadB*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadB*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadB*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadB*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadB[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadB{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadBCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadBCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFill*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFill*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFill*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFill*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFill\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFill[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFill{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFillCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFillCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFit*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFit*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFit*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFit*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFit[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFit{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitB*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitB*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitB*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitB*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitB[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitB{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitBCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFitBCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFitCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitL*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitL*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitL[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitL{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitLCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFitLCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitR*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitR*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitR*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitR*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitR[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitR{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitRCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFitRCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitT*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitT*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitT*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitT*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadFitT[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadFitT{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadFitTCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadFitTCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadL*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadL*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadL[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadL{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadLCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadLCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadR*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadR*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadR*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadR*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadR[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadR{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadRCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadRCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadT*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadT*[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadT*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadT*{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ImageSpreadT[${3:options%keyvals}]{${1:caption%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImageSpreadT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ImageSpreadT{${1:caption%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ImageSpreadTCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImageSpreadTCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"InitPages\"\n    },\n    {\n      \"name\": \"ISBN\"\n    },\n    {\n      \"name\": \"jacketflap\"\n    },\n    {\n      \"name\": \"jacketflapback\"\n    },\n    {\n      \"name\": \"jacketflapfront\"\n    },\n    {\n      \"name\": \"jacketwrap\"\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"LATEX\"\n    },\n    {\n      \"name\": \"layoutmode\"\n    },\n    {\n      \"name\": \"License\"\n    },\n    {\n      \"name\": \"maxdim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maxdim{${1:dimen1%l}}{${2:dimen2%l}}\"\n      }\n    },\n    {\n      \"name\": \"mindim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mindim{${1:dimen1%l}}{${2:dimen2%l}}\"\n      }\n    },\n    {\n      \"name\": \"OtherSoftware\"\n    },\n    {\n      \"name\": \"pageblockheight\"\n    },\n    {\n      \"name\": \"pageblockwidth\"\n    },\n    {\n      \"name\": \"pagefold\"\n    },\n    {\n      \"name\": \"pagefoldpanelfolds\"\n    },\n    {\n      \"name\": \"pagefoldpanels\"\n    },\n    {\n      \"name\": \"PageInfo\"\n    },\n    {\n      \"name\": \"PageInfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PageInfo[${1:unit}]\"\n      }\n    },\n    {\n      \"name\": \"pagetextheight\"\n    },\n    {\n      \"name\": \"pagetextwidth\"\n    },\n    {\n      \"name\": \"pdfboxesset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfboxesset[${3:bleed}]{${1:bleedboxwidth}}{${2:bleedboxheight}}\"\n      }\n    },\n    {\n      \"name\": \"pdfboxesset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfboxesset{${1:bleedboxwidth}}{${2:bleedboxheight}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcommentcell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfcommentcell[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfcommentcell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfcommentcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcommentcell{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagecount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpagecount{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagelayout\"\n    },\n    {\n      \"name\": \"pdfspinewidth\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfspinewidth{${1:paper-thickness}}{${2:cover-thickness}}{${3:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfspreadstopages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfspreadstopages{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfspreadstopages\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfspreadstopages[${2:delta}]{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"rcaptioncell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rcaptioncell[${2:options%keyvals}]{${1:caption%text}}\",\n        \"keys\": [\n          \"\\\\captioncell,\\\\rcaptioncell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rcaptioncell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcaptioncell{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ReInitPages\"\n    },\n    {\n      \"name\": \"ChangeLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChangeLayout{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\ChangeLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetImageHalfPageLCaption\"\n    },\n    {\n      \"name\": \"resetImageHalfPageRCaption\"\n    },\n    {\n      \"name\": \"resetImagePageCaption\"\n    },\n    {\n      \"name\": \"resetImagePageClearBCaption\"\n    },\n    {\n      \"name\": \"resetImagePageClearCaption\"\n    },\n    {\n      \"name\": \"resetImagePageClearLCaption\"\n    },\n    {\n      \"name\": \"resetImagePageClearRCaption\"\n    },\n    {\n      \"name\": \"resetImagePageClearTCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFillCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFitBCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFitCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFitLCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFitRCaption\"\n    },\n    {\n      \"name\": \"resetImagePageFitTCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadBCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFillCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFitBCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFitCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFitLCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFitRCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadFitTCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadLCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadRCaption\"\n    },\n    {\n      \"name\": \"resetImageSpreadTCaption\"\n    },\n    {\n      \"name\": \"resetimagetweaks\"\n    },\n    {\n      \"name\": \"ResettableMacro\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ResettableMacro{${1:name}}[${3:args}][${4:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ResettableMacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ResettableMacro{${1:name}}[${3:args}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ResettableMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ResettableMacro{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"savecell\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"savecell[${5:valign}]{${1:name}}{${2:width}}{${3:height}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"savecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"savecell{${1:name}}{${2:width}}{${3:height}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcliptocellbleeds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcliptocellbleeds{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"SoftwareInfo\"\n    },\n    {\n      \"name\": \"SoftwareNotice\"\n    },\n    {\n      \"name\": \"spinefold\"\n    },\n    {\n      \"name\": \"spinewidth\"\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"TEX\"\n    },\n    {\n      \"name\": \"ThanksTo\"\n    },\n    {\n      \"name\": \"tweakimageoffsetleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweakimageoffsetleft{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tweakimageoffsettop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweakimageoffsettop{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tweakimagescale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweakimagescale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"usecell*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usecell*{${1:name}}{${2:top,left}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"usecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usecell{${1:name}}{${2:top,left}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"usespreadpage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usespreadpage*[${2:page-num}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usespreadpage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usespreadpage*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usespreadpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usespreadpage[${2:page-num}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usespreadpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usespreadpage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"vcaptioncell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vcaptioncell[${2:options%keyvals}]{${1:caption%text}}\",\n        \"keys\": [\n          \"\\\\vcaptioncell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vcaptioncell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcaptioncell{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"writeimagelisttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeimagelistfalse\"\n    },\n    {\n      \"name\": \"foldinmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldinmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"foldinmark[${1:baseline}]\"\n      }\n    },\n    {\n      \"name\": \"foldoutmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foldoutmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"foldoutmark[${1:baseline}]\"\n      }\n    },\n    {\n      \"name\": \"ifblocklayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcoverlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcoverlikelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifendpaperlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhardcoverlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifjacketlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsoftcoverlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifspreadlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcover\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcover{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcoverback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcoverback{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcoverfront\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcoverfront{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfendpaper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfendpaper{${1:.pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfweb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfweb{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"ResetFoldMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorepdfboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorepdfboxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restorepdfboxes[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"ShowMarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowMarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ShowMarks[${1:unit}]\"\n      }\n    },\n    {\n      \"name\": \"storepdfboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storepdfboxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"storepdfboxes[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"thefoldoutpanel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"adjustcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:adjustbox options%keyvals}}{${2:width}}{${3:height}}\",\n        \"keys\": [\n          \"\\\\begin{adjustcell},\\\\begin{adjustcell*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adjustcell\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:valign}]{${1:adjustbox options%keyvals}}{${2:width}}{${3:height}}\",\n        \"keys\": [\n          \"\\\\begin{adjustcell},\\\\begin{adjustcell*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"adjustcell*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:adjustbox options%keyvals}}{${2:width}}{${3:height}}\",\n        \"keys\": [\n          \"\\\\begin{adjustcell},\\\\begin{adjustcell*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adjustcell*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:valign}]{${1:adjustbox options%keyvals}}{${2:width}}{${3:height}}\",\n        \"keys\": [\n          \"\\\\begin{adjustcell},\\\\begin{adjustcell*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"backcover\"\n    },\n    {\n      \"name\": \"backflap\"\n    },\n    {\n      \"name\": \"bottomup\"\n    },\n    {\n      \"name\": \"bottomup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:valign}]\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:left,top}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cell*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:left,top}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"CellContent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"CellContent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:parent-align}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"CellContent*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"CellContent*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:parent-align}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cliptocell\"\n    },\n    {\n      \"name\": \"cliptocell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"foldout\"\n    },\n    {\n      \"name\": \"foldout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:fold-spec}]\"\n      }\n    },\n    {\n      \"name\": \"foldoutcell\"\n    },\n    {\n      \"name\": \"foldoutcell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"foldoutcell*\"\n    },\n    {\n      \"name\": \"foldoutcell*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<from>-<${2:to}>}]\"\n      }\n    },\n    {\n      \"name\": \"frontcover\"\n    },\n    {\n      \"name\": \"frontflap\"\n    },\n    {\n      \"name\": \"inlinecell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecell\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:valign}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecell*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecell*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:valign}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"leftpage\"\n    },\n    {\n      \"name\": \"leftside\"\n    },\n    {\n      \"name\": \"leftside*\"\n    },\n    {\n      \"name\": \"minipagecell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"minipagecell\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:valign}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"minipagecell*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"minipagecell*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:valign}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MinipageCellContent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"MinipageCellContent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:parent-align}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"MinipageCellContent*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"MinipageCellContent*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:parent-align}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"page\"\n    },\n    {\n      \"name\": \"pagebleedcell\"\n    },\n    {\n      \"name\": \"pagecell\"\n    },\n    {\n      \"name\": \"pagecell*\"\n    },\n    {\n      \"name\": \"paperbleedcell\"\n    },\n    {\n      \"name\": \"papercell\"\n    },\n    {\n      \"name\": \"rightside\"\n    },\n    {\n      \"name\": \"rightside*\"\n    },\n    {\n      \"name\": \"spine\"\n    },\n    {\n      \"name\": \"spreadtopages\"\n    },\n    {\n      \"name\": \"spreadtopages\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:page-count}]\"\n      }\n    },\n    {\n      \"name\": \"spreadtopages*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"spreadtopages*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:page-count}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"textcell\"\n    },\n    {\n      \"name\": \"topdown\"\n    },\n    {\n      \"name\": \"topdown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:valign}]\"\n      }\n    },\n    {\n      \"name\": \"vspine\"\n    },\n    {\n      \"name\": \"zinlinecell\"\n    },\n    {\n      \"name\": \"zinlinecell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:valign}]\"\n      }\n    },\n    {\n      \"name\": \"zinlinecell*\"\n    },\n    {\n      \"name\": \"zinlinecell*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:valign}]\"\n      }\n    },\n    {\n      \"name\": \"resizedpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"resizedpages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:bleed}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"shipoutbgcell\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/photobook#c\": [\n      \"blockwidth=\",\n      \"blockheight=\",\n      \"bindingoffset=\",\n      \"gutteroffset=\",\n      \"bleed=\",\n      \"flatfold=\",\n      \"pagefold=${1|in,out|}\",\n      \"foldout=${1:fold-spec}\",\n      \"layoutmode=${1|block,spread,endpaper,cover,jacket|}\",\n      \"block\",\n      \"endpaper\",\n      \"cover\",\n      \"jacket\",\n      \"spinewidth=\",\n      \"spinefold=\",\n      \"coverboardgrow=\",\n      \"coverflap=\",\n      \"jacketwrap=\",\n      \"jacketflap=\",\n      \"jacketflapfront=\",\n      \"jacketflapback=\",\n      \"clearimage=\",\n      \"imageblockwidth=\",\n      \"imageblockheight=\",\n      \"imageblockoffsettop=\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnRight,TwoColumnLeft,TwoPageRight,TwoPageLeft|}\",\n      \"SinglePage\",\n      \"OneColumn\",\n      \"TwoColumnRight\",\n      \"TwoColumnLeft\",\n      \"TwoPageRight\",\n      \"TwoPageLeft\",\n      \"nofoldmarks\",\n      \"foldmarksize=\",\n      \"geometrynodefaults\",\n      \"roundprintedlengthsto=${1:number}\"\n    ],\n    \"\\\\captionblockcell\": [\n      \"left\",\n      \"right\",\n      \"align=${1|flushleft,center,flushright|}\",\n      \"valign=${1|t,c,b|}\",\n      \"clearance=\",\n      \"constraintoparent\",\n      \"clearparent=\",\n      \"spacing=\",\n      \"width=\",\n      \"showbox\"\n    ],\n    \"\\\\captioncell,\\\\rcaptioncell\": [\n      \"over\",\n      \"top\",\n      \"center\",\n      \"bottom\",\n      \"under\",\n      \"align=${1|flushleft,center,flushright|}\",\n      \"margin=\"\n    ],\n    \"\\\\imagecell,\\\\ImageHalfPageL,\\\\ImageHalfPageL*,\\\\ImageHalfPageR,\\\\ImageHalfPageR*,\\\\ImagePage,\\\\ImagePage*,\\\\ImagePageClear,\\\\ImagePageClear*,\\\\ImagePageClearB,\\\\ImagePageClearB*,\\\\ImagePageClearL,\\\\ImagePageClearL*,\\\\ImagePageClearR,\\\\ImagePageClearR*,\\\\ImagePageClearT,\\\\ImagePageClearT*,\\\\ImagePageFill,\\\\ImagePageFill*,\\\\ImagePageFit,\\\\ImagePageFit*,\\\\ImagePageFitB,\\\\ImagePageFitB*,\\\\ImagePageFitL,\\\\ImagePageFitL*,\\\\ImagePageFitR,\\\\ImagePageFitR*,\\\\ImagePageFitT,\\\\ImagePageFitT*,\\\\ImageSpread,\\\\ImageSpread*,\\\\ImageSpreadB,\\\\ImageSpreadB*,\\\\ImageSpreadFill,\\\\ImageSpreadFill*,\\\\ImageSpreadFit,\\\\ImageSpreadFit*,\\\\ImageSpreadFitB,\\\\ImageSpreadFitB*,\\\\ImageSpreadFitL,\\\\ImageSpreadFitL*,\\\\ImageSpreadFitR,\\\\ImageSpreadFitR*,\\\\ImageSpreadFitT,\\\\ImageSpreadFitT*,\\\\ImageSpreadL,\\\\ImageSpreadL*,\\\\ImageSpreadR,\\\\ImageSpreadR*,\\\\ImageSpreadT,\\\\ImageSpreadT*\": [\n      \"fit\",\n      \"fill\",\n      \"center\",\n      \"left\",\n      \"right\",\n      \"inside\",\n      \"outside\",\n      \"top\",\n      \"bottom\",\n      \"clearance=\",\n      \"offsettop=\",\n      \"offsetleft=\",\n      \"scale=${1:factor}\",\n      \"captionalign=${1|t,c,b|}\",\n      \"captionclearparent=\"\n    ],\n    \"\\\\vcaptioncell\": [\n      \"bottomup\",\n      \"topdown\",\n      \"before\",\n      \"left\",\n      \"center\",\n      \"right\",\n      \"after\",\n      \"align=${1|flushleft,center,flushright|}\",\n      \"margin=\"\n    ],\n    \"\\\\pdfcommentcell\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"icon=${1|Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,Check,Circle,Cross,Star,RightArrow,RightPointer,UpArrow,UpLeftArrow,CrossHairs|}\",\n      \"color=${1:color}\",\n      \"opacity=\",\n      \"open\",\n      \"hspace=\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"id=\",\n      \"deadline=${1:deadline}\"\n    ],\n    \"\\\\begin{adjustcell},\\\\begin{adjustcell*}\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\",\n      \"intent\",\n      \"maskarray\",\n      \"ocobjnum\",\n      \"ocobjref\",\n      \"resetcolor\",\n      \"resolution\",\n      \"xmpfile\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\"\n    ],\n    \"\\\\ChangeLayout\": [\n      \"block\",\n      \"spread\",\n      \"endpaper\",\n      \"cover\",\n      \"jacket\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/photobook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-pkuthss.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setpdfproperties\",\n      \"if\": \"pdfprop\"\n    },\n    {\n      \"name\": \"ctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctitle{${1:中文标题%text}}\"\n      }\n    },\n    {\n      \"name\": \"etitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etitle{${1:English title%text}}\"\n      }\n    },\n    {\n      \"name\": \"cauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cauthor{${1:中文名}}\"\n      }\n    },\n    {\n      \"name\": \"eauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eauthor{${1:English name}}\"\n      }\n    },\n    {\n      \"name\": \"studentid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studentid{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"school\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"school{${1:school%text}}\"\n      }\n    },\n    {\n      \"name\": \"cmajor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmajor{${1:中文专业%text}}\"\n      }\n    },\n    {\n      \"name\": \"emajor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emajor{${1:English major%text}}\"\n      }\n    },\n    {\n      \"name\": \"direction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmentor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmentor{${1:中文导师}}\"\n      }\n    },\n    {\n      \"name\": \"ementor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ementor{${1:English mentor}}\"\n      }\n    },\n    {\n      \"name\": \"ckeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckeywords{${1:中文关键词%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekeywords{${1:English keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreetype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreetype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"blindid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blindid{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:discipline%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeblind\"\n    },\n    {\n      \"name\": \"cuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ethesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesiscover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mentorlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkuthssinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkuthssinfo{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pkuthssinfo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"specialchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"thssnl\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacksquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cabstract\"\n    },\n    {\n      \"name\": \"eabstract\"\n    },\n    {\n      \"name\": \"beabstract\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/pkuthss#c\": [\n      \"uppermark\",\n      \"nouppermark\",\n      \"pkufont\",\n      \"nopkufont\",\n      \"pkufoot\",\n      \"nopkufoot\",\n      \"pkuspace\",\n      \"nopkuspace\",\n      \"spacing\",\n      \"nospacing\",\n      \"spechap\",\n      \"nospechap\",\n      \"pdftoc\",\n      \"nopdftoc\",\n      \"pdfprop\",\n      \"nopdfprop\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\pkuthssinfo\": [\n      \"ctitle={${1:中文标题}}\",\n      \"etitle={${1:English title}}\",\n      \"cauthor={${1:中文名}}\",\n      \"eauthor={${1:English name}}\",\n      \"date={${1:date}}\",\n      \"studentid={${1:number}}\",\n      \"school={${1:school}}\",\n      \"cmajor={${1:中文专业}}\",\n      \"emajor={${1:English major}}\",\n      \"direction={${1:text}}\",\n      \"cmentor={${1:中文导师}}\",\n      \"ementor={${1:English mentor}}\",\n      \"ckeywords={${1:中文关键词}}\",\n      \"ekeywords={${1:English keywords}}\",\n      \"degreetype={${1:type}}\",\n      \"blindid={${1:number}}\",\n      \"discipline={${1:discipline}}\",\n      \"cuniversity={${1:text}}\",\n      \"euniversity={${1:text}}\",\n      \"cthesisname={${1:text}}\",\n      \"ethesisname={${1:text}}\",\n      \"thesiscover={${1:text}}\",\n      \"mentorlines={${1:text}}\",\n      \"cabstractname={${1:text}}\",\n      \"eabstractname={${1:text}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/pkuthss#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-powerdot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-ovl\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"powerdot-default\"\n    },\n    {\n      \"name\": \"pdfbase\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"pdfbase\",\n      \"if\": \"clock=true\"\n    },\n    {\n      \"name\": \"powerdot-aggie\",\n      \"if\": \"style=aggie\"\n    },\n    {\n      \"name\": \"powerdot-BerlinFU\",\n      \"if\": \"style=BerlinFU\"\n    },\n    {\n      \"name\": \"powerdot-bframe\",\n      \"if\": \"style=bframe\"\n    },\n    {\n      \"name\": \"powerdot-ciment\",\n      \"if\": \"style=ciment\"\n    },\n    {\n      \"name\": \"powerdot-elcolors\",\n      \"if\": \"style=elcolors\"\n    },\n    {\n      \"name\": \"powerdot-fyma\",\n      \"if\": \"style=fyma\"\n    },\n    {\n      \"name\": \"powerdot-horatio\",\n      \"if\": \"style=horatio\"\n    },\n    {\n      \"name\": \"powerdot-husky\",\n      \"if\": \"style=husky\"\n    },\n    {\n      \"name\": \"powerdot-ikeda\",\n      \"if\": \"style=ikeda\"\n    },\n    {\n      \"name\": \"powerdot-jefka\",\n      \"if\": \"style=jefka\"\n    },\n    {\n      \"name\": \"powerdot-klope\",\n      \"if\": \"style=klope\"\n    },\n    {\n      \"name\": \"powerdot-paintings\",\n      \"if\": \"style=paintings\"\n    },\n    {\n      \"name\": \"powerdot-pazik\",\n      \"if\": \"style=pazik\"\n    },\n    {\n      \"name\": \"powerdot-sailor\",\n      \"if\": \"style=sailor\"\n    },\n    {\n      \"name\": \"powerdot-simple\",\n      \"if\": \"style=simple\"\n    },\n    {\n      \"name\": \"powerdot-tuliplab\",\n      \"if\": \"style=tuliplab\"\n    },\n    {\n      \"name\": \"powerdot-tycja\",\n      \"if\": \"style=tycja\"\n    },\n    {\n      \"name\": \"powerdot-upen\",\n      \"if\": \"style=upen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pdsetup\",\n          \"\\\\pdsetup,\\\\maketitle,\\\\begin{titleslide},\\\\begin{basic},\\\\begin{wideslide},\\\\begin{slide},\\\\begin{sectionslide},\\\\begin{sectionwideslide},\\\\section\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"pause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pause[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"item<overlays>\"\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"item[${1:label}]<${2:overlays}>\"\n      }\n    },\n    {\n      \"name\": \"onslide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onslide{${1:overlays}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"onslide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onslide*{${1:overlays}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slidewidth\"\n    },\n    {\n      \"name\": \"slideheight\"\n    },\n    {\n      \"name\": \"thenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twocolumn{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"twocolumn[${3:options%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\twocolumn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pddefinetemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pddefinetemplate{${1:envname}}{${2:options}}{${3:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pddefinetemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pddefinetemplate[${4:basis}]{${1:envname}}{${2:options}}{${3:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pdifsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdifsetup{${1:desired}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pdbookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pdbookmark{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pdcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdcontentsline{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:type=0|1,}][${2:enumitem options}]\"\n      }\n    },\n    {\n      \"name\": \"itemize\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:type=0|1}][${2:enumitem options}]\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"emptyslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"pauseslide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/powerdot#c\": [\n      \"mode=${1|present,print,handout|}\",\n      \"nohandoutpagebreaks\",\n      \"nohandoutframes\",\n      \"paper=${1|screen,a4paper,letterpaper,smartboard,169|}\",\n      \"orient=${1|landscape,portrait|}\",\n      \"display=${1|slides,slidesnotes,notes|}\",\n      \"size=${1|8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt|}\",\n      \"style=${1:style name}\",\n      \"fleqn\",\n      \"leqno\",\n      \"nopsheader\",\n      \"hlentries\",\n      \"hlsections\",\n      \"pauseslide\",\n      \"clock\"\n    ],\n    \"\\\\pdsetup\": [\n      \"theslide=${1:code}\",\n      \"thenote=${1:code}\",\n      \"counters={${1:counter1,counter2,...}}\",\n      \"list={${1:enumitem options}}\",\n      \"enumerate={${1:enumitem options}}\",\n      \"itemize={${1:enumitem options}}\",\n      \"clockformat=${1:format}\",\n      \"clockrefresh=${1:milliseconds}\"\n    ],\n    \"\\\\pdsetup,\\\\maketitle,\\\\begin{titleslide},\\\\begin{basic},\\\\begin{wideslide},\\\\begin{slide},\\\\begin{sectionslide},\\\\begin{sectionwideslide},\\\\section\": [\n      \"palette=${1:palette name}\",\n      \"lf=${1:text}\",\n      \"cf=${1:text}\",\n      \"rf=${1:text}\",\n      \"trans=${1:transition}\",\n      \"method=${1|normal,direct,file|}\",\n      \"logohook=${1|tl,t,tr,r,Br,br,b,bl,Bl,l,B,c|}\",\n      \"logopos={${1:width,height}}\",\n      \"logocmd={${1:code}}\",\n      \"randomdots\",\n      \"dmindots=${1:integer}\",\n      \"dmaxdots=${1:integer}\",\n      \"dminsize=\",\n      \"dmaxsize=\",\n      \"dminwidth=\",\n      \"dmaxwidth=\",\n      \"dminheight=\",\n      \"dmaxheight=\",\n      \"dbright=${1:integer}\",\n      \"dprop={${1:pstricks options}}\"\n    ],\n    \"\\\\begin{titleslide},\\\\begin{basic},\\\\begin{wideslide},\\\\begin{slide},\\\\begin{sectionslide},\\\\begin{sectionwideslide},\\\\section\": [\n      \"toc=${1:TOC entry}\",\n      \"bm=${1:bookmark entry}\"\n    ],\n    \"\\\\section\": [\n      \"tocsection=${1|true,false,hidden|}\",\n      \"slide\",\n      \"template=${1:template name}\"\n    ],\n    \"\\\\tableofcontents\": [\n      \"type=${1|0,1|}\",\n      \"content=${1|all,sections,currentsection,future,futuresections|}\"\n    ],\n    \"\\\\twocolumn\": [\n      \"lineheight=\",\n      \"lineprop={${1:pstricks options}}\",\n      \"lfrheight=\",\n      \"lfrprop={${1:pstricks options}}\",\n      \"rfrheight=\",\n      \"rfrprop={${1:pstricks options}}\",\n      \"lcolwidth=\",\n      \"rcolwidth=\",\n      \"frsep=\",\n      \"colsep=\",\n      \"topsep=\",\n      \"bottomsep=\",\n      \"indent=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/powerdot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-pressrelease.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"pressrelease-symbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"pressrelease-symbols\",\n      \"if\": \"symbols=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PRset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\PRset#c,\\\\documentclass/pressrelease#c\",\n          \"\\\\PRset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PRusevar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRusevar{${1:variable%keyvals}}\",\n        \"keys\": [\n          \"\\\\PRusevar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PRheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRheadline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRsubheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRsubheadline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRrelease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRrelease{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRlogo{${1:logo}}\"\n      }\n    },\n    {\n      \"name\": \"PRcompany\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRcompany{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRdepartment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRdepartment{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRlocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRlocation{${1:place%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRcontact\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRcontact{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"PRaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRaddress{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRphone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRphone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PRmobile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRmobile{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PRfax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRfax{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PRurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"PRemail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRemail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"PRemailformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRemailformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRhours\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRhours{${1:times}}\"\n      }\n    },\n    {\n      \"name\": \"PRencl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRencl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRtagformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRtagformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfotopline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRinfotopline{${1:tag}}{${2:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfobottomline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRinfobottomline{${1:tag}}{${2:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfoline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRinfoline{${1:tag}}{${2:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfoentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRinfoentry{${1:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRenclformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRenclformat{${1:tag}}{${2:details%text}}\"\n      }\n    },\n    {\n      \"name\": \"PRurlformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRurlformat{${1:tag}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"PRcontacttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRphonetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRmobiletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRemailtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRurltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRfaxtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRcompanytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRdepartmenttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRaddresstext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRhourstext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRdatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRlocationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRencltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRabouttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRreleasetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRnOfm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRnOfm{${1:n}}{${2:m}}\"\n      }\n    },\n    {\n      \"name\": \"ifPRheadabove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPRloadsymbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPRruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRaboutposturlhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRdohrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRendsignal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRformatendsignal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRformatendsignal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRheadabovefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRheadabovetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRheadalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRheadalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRheaderfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRheaderfont{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRheadformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRheadformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfobottomalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRinfobottomalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfobottombeginhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRinfobottomblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"PRinfobottomblock{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}{${8:arg8}}{${9:arg9}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfobottomendhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRinfotopalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRinfotopalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfotopbeginhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRinfotopblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"PRinfotopblock{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}{${8:arg8}}{${9:arg9}}\"\n      }\n    },\n    {\n      \"name\": \"PRinfotopendhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRloadsymbolsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRloadsymbolstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRlogoalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRlogoalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRlogoformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRlogoformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRreleasealign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRreleasealign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRreleaseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRreleaseformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRruledfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRruledtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRsubheadformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRsubheadformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PRthelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepressrelease\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pressrelease\"\n    },\n    {\n      \"name\": \"about\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/pressrelease#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"letterpaper\",\n      \"a4paper\"\n    ],\n    \"\\\\PRset#c,\\\\documentclass/pressrelease#c\": [\n      \"symbols\",\n      \"head=${1|above,below,center,left,right,above center,above left,above right,below center,below left,below right|}\",\n      \"smashlogo\",\n      \"logo=${1|left,right,above,below,above left,above right,below left,below right|}\",\n      \"releasealign=${1|center,left,right|}\",\n      \"ruled\",\n      \"topinfoalign=${1|center,left,right|}\",\n      \"bottominfoalign=${1|center,left,right|}\"\n    ],\n    \"\\\\PRset#c\": [\n      \"topinfo=${1:company/department/location/date}\",\n      \"bottominfo=${1:contact/address/hours/phone/email}\"\n    ],\n    \"\\\\PRusevar#c\": [\n      \"address\",\n      \"company\",\n      \"contact\",\n      \"date\",\n      \"department\",\n      \"email\",\n      \"encl\",\n      \"fax\",\n      \"headline\",\n      \"hours\",\n      \"location\",\n      \"logo\",\n      \"mobile\",\n      \"phone\",\n      \"release\",\n      \"subheadline\",\n      \"url\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/pressrelease#c\",\n    \"\\\\PRset#c,\\\\documentclass/pressrelease#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-proc-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/proc-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/proc-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-proc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"copyrightspace\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/proc#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/proc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-protocol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"groupname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"groupname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"writer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:place}}\"\n      }\n    },\n    {\n      \"name\": \"begintime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"begintime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"endtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endtime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"nextdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"nexttime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nexttime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"nextplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextplace{${1:place}}\"\n      }\n    },\n    {\n      \"name\": \"actionitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"actionitem{${1:item%text}}{${2:name}}{${3:date}}\"\n      }\n    },\n    {\n      \"name\": \"vote\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vote{${1:item%text}}{${2:Stimmen dafür}}{${3:Stimmen dagegen}}{${4:Enthaltungen}}{${5:Ergebnis%text}}\"\n      }\n    },\n    {\n      \"name\": \"makehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProtocolGroupName\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Persons\"\n    },\n    {\n      \"name\": \"Absent\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-prtec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"dcolumn\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fnpos\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"xcoffins\"\n    },\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"hologo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"confname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confname{${1:conference%text}}\"\n      }\n    },\n    {\n      \"name\": \"confdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"confcity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confcity{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"paperno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paperno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"papertitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"papertitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetAuthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAuthors{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"JointFirstAuthor\"\n    },\n    {\n      \"name\": \"CorrespondingAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrespondingAuthor{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"SetAffiliation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAffiliation{${1:number}}{${2:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTitlePage\"\n    },\n    {\n      \"name\": \"SetAuthorBlock\"\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"nomenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entry{${1:symbol}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"HeaderConfName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaperTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AffiliationBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AffiliationsBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CAemail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CAemail{${1:email%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"nomenclature\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:width}][${2:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/prtec#c\": [\n      \"nofoot\",\n      \"upint\",\n      \"smallerops\",\n      \"varvw\",\n      \"varg\",\n      \"slantedGreek\",\n      \"frenchmath\",\n      \"varbb\",\n      \"cmbraces\",\n      \"subscriptcorrection\",\n      \"largesc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/prtec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-pylatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pylatex\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"breqn\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-qam-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifprintonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printonlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printonlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sepaddresses\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/qam-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/qam-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-qcm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"qcm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"titlespace\"\n    },\n    {\n      \"name\": \"questiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"questiontitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questiontitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"questiontitlespace\"\n    },\n    {\n      \"name\": \"questionsepspace\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/qcm#c\": [\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/qcm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-quantumarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ltxgrid\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"amsfonts\",\n      \"if\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowledgmentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addauthortolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addauthortolabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affil[${2:id}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altaffiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collaboration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaboration{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ead[${2:url}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"email[${2:prefix}]{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:prefix}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"nocontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nocontentsline{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"openone\"\n    },\n    {\n      \"name\": \"orcid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"orcid[${2:prefix}]{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"Quantum\"\n    },\n    {\n      \"name\": \"quantumarticleversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanks[${2:prefix}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"widetext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/quantumarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"amsfonts\",\n      \"noamsfonts\",\n      \"amssymb\",\n      \"noamssymb\",\n      \"amsmath\",\n      \"noamsmath\",\n      \"unpublished\",\n      \"accepted=${1:YYYY-MM-DD}\",\n      \"noarxiv\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/quantumarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-quantumview.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"verbatim\",\n      \"if\": \"html\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"html\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowledgmentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addauthortolabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addauthortolabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affil[${2:id}]{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altaffiliation{${1:affiliation}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collaboration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaboration{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"corr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"corr{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ead[${2:url}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"email[${2:prefix}]{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:prefix}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"nocontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nocontentsline{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"openone\"\n    },\n    {\n      \"name\": \"orcid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"orcid[${2:prefix}]{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"Quantum\"\n    },\n    {\n      \"name\": \"quantumarticleversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanks[${2:prefix}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgements\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/quantumview#c\": [\n      \"html\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/quantumview#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-randexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"functional\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"tabularraylibrarydiagbox\"\n    },\n    {\n      \"name\": \"mathdesign\"\n    },\n    {\n      \"name\": \"pdfpages\",\n      \"if\": \"a3paper\"\n    },\n    {\n      \"name\": \"pdfpages\",\n      \"if\": \"a3input\"\n    },\n    {\n      \"name\": \"freealign\",\n      \"if\": \"freealign\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"random\"\n    },\n    {\n      \"name\": \"pgffor\",\n      \"if\": \"random\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"mathdesign=false\"\n    },\n    {\n      \"name\": \"medmath\",\n      \"if\": \"medmath\"\n    },\n    {\n      \"name\": \"mathtools\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"extarrows\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"freealign\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"freealign\",\n      \"if\": \"math=many\"\n    },\n    {\n      \"name\": \"freealign\",\n      \"if\": \"math=most\"\n    },\n    {\n      \"name\": \"medmath\",\n      \"if\": \"math=most\"\n    },\n    {\n      \"name\": \"freealign\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"medmath\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"diagbox\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"mathtools\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"extarrows\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"ctex\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"ctex\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"ctex\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"ctex\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"ctex\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"language=chinese\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"language=chinese\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"language=chinese\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"language=chinese\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"language=chinese\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"chinese\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"chinese\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"chinese\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"chinese\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"chinese\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"chinese=many\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"chinese=many\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"chinese=many\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"chinese=many\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"chinese=many\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"chinese=most\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"chinese=most\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"chinese=most\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"chinese=most\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"chinese=most\"\n    },\n    {\n      \"name\": \"ctex\",\n      \"if\": \"chinese=all\"\n    },\n    {\n      \"name\": \"CJKnumb\",\n      \"if\": \"chinese=all\"\n    },\n    {\n      \"name\": \"CJKfntef\",\n      \"if\": \"chinese=all\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"chinese=all\"\n    },\n    {\n      \"name\": \"xeCJKfntef\",\n      \"if\": \"chinese=all\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"diff\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dx\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dy\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dz\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"du\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dv\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dr\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"ds\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dt\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"dS\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pd\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdf\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdg\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdh\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdl\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdn\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdu\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdv\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdx\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdy\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdz\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdF\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdL\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdP\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdQ\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"pdR\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"widebar\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"va\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vb\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vc\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vd\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"ve\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vi\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vj\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vk\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vn\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vs\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"vv\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"wfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wdfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wdfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wdfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wdfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wtfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wtfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wtfrac\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wtfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"if\": \"moremath\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"if\": \"moremath\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"if\": \"moremath\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"if\": \"moremath\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"e\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"jacobi\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jacobi{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ii\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"Zi\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"arccot\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"Corr\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"Cov\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"diag\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"grad\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"Prj\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"tr\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"Var\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"diver\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"division\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"ov\",\n      \"if\": \"moremath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ov{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lb\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"rb\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"moremath\"\n    },\n    {\n      \"name\": \"diagboxtwo\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diagboxtwo{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"diagboxtwo\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diagboxtwo[${3:options%keyvals}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"diagboxthree\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diagboxthree{${1:left}}{${2:middle}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"diagboxthree\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"diagboxthree[${4:options%keyvals}]{${1:left}}{${2:middle}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"diff\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dx\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dy\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dz\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"du\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dv\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dr\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"ds\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dt\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"dS\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pd\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdf\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdg\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdh\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdl\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdn\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdu\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdv\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdx\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdy\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdz\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdF\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdL\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdP\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdQ\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"pdR\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"widebar\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"va\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vb\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vc\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vd\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"ve\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vi\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vj\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vk\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vn\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vs\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"vv\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"wfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wdfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wdfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wdfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wdfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wtfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wtfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"wtfrac\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wtfrac[${3:space}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"if\": \"math=all\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"if\": \"math=all\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"if\": \"math=all\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"if\": \"math=all\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"e\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"arccot\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"Corr\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"Cov\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"diag\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"grad\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"Prj\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"tr\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"Var\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"diver\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"division\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"ov\",\n      \"if\": \"math=all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ov{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lb\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"rb\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"math=all\"\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"answertable\"\n    },\n    {\n      \"name\": \"answertable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"answertable[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareExamTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExamTemplate{${1:element}}{${2:name}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExamTheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExamTheme{${1:theme name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExamTranslation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExamTranslation{${1:language}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"examdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdata{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ExamFillCdot\"\n    },\n    {\n      \"name\": \"ExamFillUline\"\n    },\n    {\n      \"name\": \"ExamFillUlinePhantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExamFillUlinePhantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ExamFillUlineText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExamFillUlineText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"exampart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exampart{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exampart\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"exampart{${1:title%text}}[${2:note%text}]\"\n      }\n    },\n    {\n      \"name\": \"examtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examtitle{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fillout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gradetable\"\n    },\n    {\n      \"name\": \"gradetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gradetable[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"IfExamBoolF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExamBoolF{${1:bool name}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamBoolT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExamBoolT{${1:bool name}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamBoolTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamBoolTF{${1:bool name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamLanguageEqF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExamLanguageEqF{${1:language}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamLanguageEqT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExamLanguageEqT{${1:language}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamLanguageEqTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamLanguageEqTF{${1:language}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueEmptyF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamValueEmptyF{${1:module}}{${2:key%plain}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueEmptyT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamValueEmptyT{${1:module}}{${2:key%plain}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueEmptyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExamValueEmptyTF{${1:module}}{${2:key%plain}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueExistF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamValueExistF{${1:module}}{${2:key%plain}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueExistT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExamValueExistT{${1:module}}{${2:key%plain}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExamValueExistTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExamValueExistTF{${1:module}}{${2:key%plain}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"NewExamBool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewExamBool{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"pickin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pickin{${1:A|${2:B}|${3:C}|D}}\"\n      }\n    },\n    {\n      \"name\": \"pickout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pickout{${1:A|${2:B}|${3:C}|D}}\"\n      }\n    },\n    {\n      \"name\": \"points\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SelectExamTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SelectExamTemplate{${1:element}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SelectExamTheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectExamTheme{${1:theme name}}\"\n      }\n    },\n    {\n      \"name\": \"SelectExamTranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectExamTranslation{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"SetExamBoolFalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetExamBoolFalse{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"SetExamBoolTrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetExamBoolTrue{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"SetExamOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetExamOption{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetExamOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExamTranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetExamTranslation{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetExamValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExamValue{${1:module}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"TheExamCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheExamCounter{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"tickout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tickout{${1:T|${2:F}|${3:t}|f}}\"\n      }\n    },\n    {\n      \"name\": \"UseExamTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseExamTemplate{${1:element}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseExamTranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseExamTranslation{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"UseExamValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseExamValue{${1:module}}{${2:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abcd\"\n    },\n    {\n      \"name\": \"abcd*\"\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points=number}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/randexam#c\": [\n      \"plain\",\n      \"a3paper\",\n      \"a3input\",\n      \"oneside\",\n      \"random\",\n      \"noanswer\",\n      \"evaluator\",\n      \"mathdesign\",\n      \"freealign\",\n      \"medmath\",\n      \"moremath\",\n      \"math=${1|many,most,all|}\",\n      \"ctex\",\n      \"solidot\",\n      \"sourcehan\",\n      \"chinese\",\n      \"seed=${1:integer}\",\n      \"language=${1:language}\"\n    ],\n    \"\\\\SetExamOption\": [\n      \"noanswer\",\n      \"random\",\n      \"seed=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/randexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-rapport1.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:chap font}}{${4:sect font}}{${5:ssect font}}{${6:sssect font}}{${7:para font}}{${8:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/rapport1#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"mctitle\",\n      \"uctitle\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/rapport1#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-rapport3.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"CaptionFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CaptionFonts{${1:label font}}{${2:text font}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"HeadingFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"HeadingFonts{${1:title font}}{${2:part font}}{${3:chap font}}{${4:sect font}}{${5:ssect font}}{${6:sssect font}}{${7:para font}}{${8:spara font}}\"\n      }\n    },\n    {\n      \"name\": \"MarkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PageFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RunningFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RunningFonts{${1:page font}}{${2:mark font}}\"\n      }\n    },\n    {\n      \"name\": \"SectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SParaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSSectFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/rapport3#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"voorwerk\",\n      \"geenvoorwerk\",\n      \"oldtoc\",\n      \"titlecentered\",\n      \"mctitle\",\n      \"uctitle\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/rapport3#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-report.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\"\n    },\n    {\n      \"name\": \"bibname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/report#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/report#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-resphilosophica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-amsart\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"collect\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"mathdesign\"\n    },\n    {\n      \"name\": \"lsabon\"\n    },\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AddtoEndMatter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddtoEndMatter{${1:bibliography commands}}\"\n      }\n    },\n    {\n      \"name\": \"authornote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightnote{${1:copyright statement%text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"doinumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinumber{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"ECSelect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ECSelect{${1:level1,level2,...}}\"\n      }\n    },\n    {\n      \"name\": \"EditorialComment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EditorialComment[${2:level}]{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"EditorialComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EditorialComment{${1:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"endpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenumber{${1:number(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"manuscriptid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manuscriptid{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"onlinedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlinedate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"papernumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"papernumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paperUrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paperUrl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"prevpaper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prevpaper{${1:previous paper%definition}}\"\n      }\n    },\n    {\n      \"name\": \"publicationmonth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"publicationmonth[${2:abbrev month(${3:s})}]{${1:month(${4:s})}}\"\n      }\n    },\n    {\n      \"name\": \"publicationmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationmonth{${1:month(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"publicationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publicationyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"rpdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TC[${2:level}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TCSelect\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCSelect[${2:color}]{${1:level1,level2,...}}\"\n      }\n    },\n    {\n      \"name\": \"TCSelect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCSelect{${1:level1,level2,...}}\"\n      }\n    },\n    {\n      \"name\": \"titlenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlenote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"volumenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumenumber{${1:number(${2:s})}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"notes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/resphilosophica#c\": [\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"manuscript\",\n      \"screen\",\n      \"preprint\",\n      \"forthcoming\",\n      \"bodyfont=${1|auto,sabon,cm|}\",\n      \"rpfont=${1|auto,imprintshadow,cm|}\",\n      \"natbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/resphilosophica#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-resumecls.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"heading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"entry{${1:indent%l}}{${2:cols}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"organization\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"organization{${1:organization%text}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"mobile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobile{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"leftfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrclscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclscolortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclscolorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclshomepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsleftfooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsmail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsmobile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsorganization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rclsrightfooter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/resumecls#c\": [\n      \"color\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/resumecls#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-revtex4-2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"revsymb4-2\"\n    },\n    {\n      \"name\": \"amsfonts\",\n      \"if\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"lineno\",\n      \"if\": \"linenumbers\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"absbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"accepted[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgmentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addstuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addstuff{${1:penalty}}{${2:glue}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"altaffiliation[${2:optional text%text}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altaffiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"appendixesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blankaffiliation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"checkindate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collaboration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaboration{${1:collaboration%text}}\"\n      }\n    },\n    {\n      \"name\": \"colrule\"\n    },\n    {\n      \"name\": \"copyrightname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doauthor{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doibase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eid{${1:eid}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"email[${2:optional text%text}]{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"endpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endpage{${1:endpage}}\"\n      }\n    },\n    {\n      \"name\": \"eprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eprint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqncolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuresname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstname{${1:firstname}}\"\n      }\n    },\n    {\n      \"name\": \"flushing\"\n    },\n    {\n      \"name\": \"footsofar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullinterlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gappdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gappdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:optional text%text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"intertabularlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"journalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1; word2; ...%text}}\"\n      }\n    },\n    {\n      \"name\": \"linefoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linefoot{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lineloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineloop{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"listofvideos\"\n    },\n    {\n      \"name\": \"lofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loopuntil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopuntil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"loopwhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopwhile{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lotname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lovname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lrstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noaffiliation\"\n    },\n    {\n      \"name\": \"numbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneapage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onecolumngrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onlinecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onlinecite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"onlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlinecite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"other\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pacs{${1:PACS codes}}\"\n      }\n    },\n    {\n      \"name\": \"pagesofar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prepdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"preprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprint{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"printfigures\"\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printtables\"\n    },\n    {\n      \"name\": \"printvideos\"\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"published[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"published{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"received[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"removephantombox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removestuff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replacestuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"replacestuff{${1:penalty}}{${2:glue}}\"\n      }\n    },\n    {\n      \"name\": \"restorecolumngrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"revised[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"say\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"say{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"saythe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saythe{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfloatlink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"squeezetable\"\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:startpage}}\"\n      }\n    },\n    {\n      \"name\": \"surname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"tableftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabmidsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabrightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"theaffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecollab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHvideo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelinecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagegrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevideo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"traceoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triggerpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumngrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"volumeyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bmf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jqe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aprop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mtt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iovs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"josa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"josaa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"josab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jpp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pspie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sjqe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"byrevtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aapmreprint\",\n      \"if\": \"aapm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aapmpreprint\",\n      \"if\": \"aapm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aipreprint\",\n      \"if\": \"aip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aippreprint\",\n      \"if\": \"aip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ruledtabular\"\n    },\n    {\n      \"name\": \"turnpage\"\n    },\n    {\n      \"name\": \"video\"\n    },\n    {\n      \"name\": \"video\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"video*\"\n    },\n    {\n      \"name\": \"video*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"widetext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/revtex4-2#c\": [\n      \"checkin\",\n      \"preprint\",\n      \"reprint\",\n      \"showpacs\",\n      \"noshowpacs\",\n      \"showkeys\",\n      \"noshowkeys\",\n      \"balancelastpage\",\n      \"nobalancelastpage\",\n      \"nopreprintnumbers\",\n      \"preprintnumbers\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"bibnotes\",\n      \"nobibnotes\",\n      \"footinbib\",\n      \"nofootinbib\",\n      \"altaffilletter\",\n      \"altaffilsymbol\",\n      \"superbib\",\n      \"citeautoscript\",\n      \"longbibliography\",\n      \"nolongbibliography\",\n      \"eprint\",\n      \"noeprint\",\n      \"twoside\",\n      \"oneside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"author\",\n      \"numerical\",\n      \"galley\",\n      \"raggedbottom\",\n      \"flushbottom\",\n      \"tightenlines\",\n      \"lengthcheck\",\n      \"draft\",\n      \"final\",\n      \"eqsecnum\",\n      \"secnumarabic\",\n      \"fleqn\",\n      \"floats\",\n      \"endfloats\",\n      \"endfloats\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"osa\",\n      \"osameet\",\n      \"opex\",\n      \"tops\",\n      \"josa\",\n      \"amsfonts\",\n      \"amssymb\",\n      \"noamssymb\",\n      \"amsmath\",\n      \"noamsmath\",\n      \"byrevtex\",\n      \"floatfix\",\n      \"nofloatfix\",\n      \"ltxgridinfo\",\n      \"outputdebug\",\n      \"raggedfooter\",\n      \"noraggedfooter\",\n      \"frontmatterverbose\",\n      \"linenumbers\",\n      \"nomerge\",\n      \"hypertext\",\n      \"frontmatterverbose\",\n      \"inactive\",\n      \"groupedaddress\",\n      \"unsortedaddress\",\n      \"runinaddress\",\n      \"superscriptaddress\",\n      \"aapm\",\n      \"aip\",\n      \"aps\",\n      \"aps10pt\",\n      \"aps11pt\",\n      \"aps12pt\",\n      \"apsrmp\",\n      \"sor\",\n      \"pra\",\n      \"prb\",\n      \"prc\",\n      \"prd\",\n      \"pre\",\n      \"prl\",\n      \"prab\",\n      \"prper\",\n      \"rmp\",\n      \"prx\",\n      \"prapplied\",\n      \"prmaterials\",\n      \"prfluids\",\n      \"physrev\",\n      \"mph\",\n      \"jcp\",\n      \"pop\",\n      \"rsi\",\n      \"jap\",\n      \"apl\",\n      \"apm\",\n      \"cha\",\n      \"pof\",\n      \"bmf\",\n      \"rse\",\n      \"jmp\",\n      \"adv\",\n      \"sd\",\n      \"jor\",\n      \"cp\",\n      \"author-numerical\",\n      \"article-title\",\n      \"jor\",\n      \"author-numerical\",\n      \"article-title\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/revtex4-2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ryersonSGSThesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cite\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"subfiles\"\n    },\n    {\n      \"name\": \"blindtext\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"charter\"\n    },\n    {\n      \"name\": \"IEEEtrantools\"\n    },\n    {\n      \"name\": \"sectsty\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"B\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"define\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"define{${1:index entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexText{${1:index entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setAbstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAbstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setAcknowledgements\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAcknowledgements{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAuthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setAuthorsDeclaration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAuthorsDeclaration{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setDedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setDepartment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDepartment{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"setLocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLocation{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPastDegreeA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPastDegreeA{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPastDegreeB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPastDegreeB{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPastDegreeC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPastDegreeC{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPastDegreeD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPastDegreeD{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"setThesisDegree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setThesisDegree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"setThesisYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setThesisYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"setTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setUniversity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setUniversity{${1:university}}\"\n      }\n    },\n    {\n      \"name\": \"T\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printacronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ryersonSGSThesis\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-sagej.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"endnotes\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"tracefnt\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"doublespace\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sageh\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sagev\"\n    },\n    {\n      \"name\": \"mslapa\",\n      \"if\": \"sageapa\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"shortAfour\"\n    },\n    {\n      \"name\": \"ftnright\",\n      \"if\": \"shortAfour\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"Afour\"\n    },\n    {\n      \"name\": \"ftnright\",\n      \"if\": \"Afour\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"MCfour\"\n    },\n    {\n      \"name\": \"ftnright\",\n      \"if\": \"MCfour\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"PCfour\"\n    },\n    {\n      \"name\": \"ftnright\",\n      \"if\": \"PCfour\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"Royal\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"Crown\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"Review\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affilnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affilnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"corrauth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corrauth{${1:name and address%text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"endpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalclassshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"refsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runninghead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runninghead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"startpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumeyear\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acks\"\n    },\n    {\n      \"name\": \"biog\"\n    },\n    {\n      \"name\": \"biogs\"\n    },\n    {\n      \"name\": \"dci\"\n    },\n    {\n      \"name\": \"funding\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"sm\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/sagej#c\": [\n      \"times\",\n      \"doublespace\",\n      \"sageh\",\n      \"sagev\",\n      \"sageapa\",\n      \"shortAfour\",\n      \"Afour\",\n      \"MCfour\",\n      \"PCfour\",\n      \"Royal\",\n      \"Crown\",\n      \"Review\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sagej#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-sapthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IDnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IDnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"cycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cycle{${1:cycle}}\"\n      }\n    },\n    {\n      \"name\": \"courseorganizer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"courseorganizer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AcademicYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcademicYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"customadvisorlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customadvisorlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coadvisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"customcoadvisorlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customcoadvisorlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"director\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"director{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"customdirectorlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customdirectorlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examiner{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"examiner[${2:role}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"thesistype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesistype{${1:type%text}}\"\n      }\n    },\n    {\n      \"name\": \"ISBN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"copyyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightstatement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightstatement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versiondate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versiondate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"website\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"website{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"authoremail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authoremail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"extrainfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrainfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"iu\"\n    },\n    {\n      \"name\": \"der\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"der{${1:function}}{${2:var1,var2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pder{${1:function}}{${2:var1,var2,...}}\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rb{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"rp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rp{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"tb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tb{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"tp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tp{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"un\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"un{${1:units%formula}}\"\n      }\n    },\n    {\n      \"name\": \"g\"\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"celsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"angstrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"di\"\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"acknowledgments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/sapthesis#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"layout=${1|a5paper,b5paper|}\",\n      \"draft\",\n      \"oneside\",\n      \"twoside\",\n      \"binding=\",\n      \"noexaminfo\",\n      \"nodefaultfont\",\n      \"romandiff\",\n      \"italian\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sapthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schulma-ab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"schulma\"\n    },\n    {\n      \"name\": \"schulma-physik\"\n    },\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Kurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kurs{${1:Kursbezeichnung%text}}\"\n      }\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Thema\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thema{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Thema\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Thema[${2:Nummer}]{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Bearbeiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bearbeiter{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"schulmaalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schulmaalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Aufgabentitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aufgabentitel{${1:Bezeichnung%text}}\"\n      }\n    },\n    {\n      \"name\": \"Aufgabenabstand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aufgabe\"\n    },\n    {\n      \"name\": \"Aufgabe*\"\n    },\n    {\n      \"name\": \"Uebung\"\n    },\n    {\n      \"name\": \"Uebung*\"\n    },\n    {\n      \"name\": \"theAufgabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTeilaufgabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teilaufgabenabstand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Luecke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Luecke{${1:Breite}}\"\n      }\n    },\n    {\n      \"name\": \"NurAufgabe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NurAufgabe{${1:Teil der Aufgabe}}\"\n      }\n    },\n    {\n      \"name\": \"NurLoesung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NurLoesung{${1:Teil der Aufgabe}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Kreisliste\"\n    },\n    {\n      \"name\": \"Aufgaben\"\n    },\n    {\n      \"name\": \"Teilaufgaben\"\n    },\n    {\n      \"name\": \"Lsg\"\n    },\n    {\n      \"name\": \"Lsg\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/schulma-ab#c\": [\n      \"A4quer\",\n      \"A5\",\n      \"A5quer\",\n      \"AT\",\n      \"Musterloesung\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/schulma-ab#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schulma-gutachten.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Schule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Schule{${1:Schulname}}\"\n      }\n    },\n    {\n      \"name\": \"Ort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ort{${1:Schulort}}\"\n      }\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Fach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fach{${1:Unterrichtsfach%text}}\"\n      }\n    },\n    {\n      \"name\": \"Gesamtpunktzahl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gesamtpunktzahl{${1:Punktzahl}}\"\n      }\n    },\n    {\n      \"name\": \"Name\"\n    },\n    {\n      \"name\": \"NameDativ\"\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Gutachten\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:Vorname}}{${2:Nachname}}{${3:Geschlecht}}{${4:Punktzahl}}\"\n      }\n    },\n    {\n      \"name\": \"Gutachten\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"{${1:Vorname}}{${2:Nachname}}{${3:Geschlecht}}{${4:Punktzahl}}[${5:Abwertung}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/schulma-gutachten#c\": [\n      \"BELL\",\n      \"AT\",\n      \"Referentin\",\n      \"Korreferentin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/schulma-gutachten#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schulma-klausur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"schulma\"\n    },\n    {\n      \"name\": \"schulma-physik\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"beamerarticle\"\n    },\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"class-schulma-praes\",\n      \"if\": \"Musterloesung\"\n    },\n    {\n      \"name\": \"pgfpages\",\n      \"if\": \"druck\"\n    },\n    {\n      \"name\": \"pgfpages\",\n      \"if\": \"druck2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Nr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nr{${1:Nummer}}\"\n      }\n    },\n    {\n      \"name\": \"theAufgabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTeilaufgabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aufgabenabstand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teilaufgabenabstand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kurs{${1:Kursbezeichnung%text}}\"\n      }\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\"\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Aufgabe[${1:Thema%text}]\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Aufgabe[${1:Thema%text}][${2:Bearbeitungszeit}]\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aufgabe(${1:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"Aufgabe[${1:Thema%text}](${2:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"arg\": {\n        \"format\": \"[][]()\",\n        \"snippet\": \"Aufgabe[${1:Thema%text}][${2:Bearbeitungszeit}](${3:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe*\"\n    },\n    {\n      \"name\": \"Aufgabe*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Aufgabe*[${1:Thema%text}]\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Aufgabe*[${1:Thema%text}][${2:Bearbeitungszeit}]\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Aufgabe*(${1:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"Aufgabe*[${1:Thema%text}](${2:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe*\",\n      \"arg\": {\n        \"format\": \"[][]()\",\n        \"snippet\": \"Aufgabe*[${1:Thema%text}][${2:Bearbeitungszeit}](${3:Punktzahl})\"\n      }\n    },\n    {\n      \"name\": \"schulmaalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schulmaalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Klausurtitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Klausurtitel{${1:Titel%text}}\"\n      }\n    },\n    {\n      \"name\": \"Klausuruntertitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Klausuruntertitel{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"Klausurteiltitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Klausurteiltitel{${1:Teiltitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"Bearbeitungszeit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bearbeitungszeit{${1:Zeit in Minuten}}\"\n      }\n    },\n    {\n      \"name\": \"Hilfsmittel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hilfsmittel{${1:Hilfsmittel%text}}\"\n      }\n    },\n    {\n      \"name\": \"Loesungsdatum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Loesungsdatum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Formeldokument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Formeldokument{${1:Seitenzahlen}}\"\n      }\n    },\n    {\n      \"name\": \"Gruppen\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gruppen{${1:Text für GruppeA%text}}{${2:Text für GruppeB%text}}\"\n      }\n    },\n    {\n      \"name\": \"Gruppen*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gruppen*{${1:Text für GruppeA%text}}{${2:Text für GruppeB%text}}\"\n      }\n    },\n    {\n      \"name\": \"Aufgabentitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aufgabentitel{${1:Bezeichnung%text}}\"\n      }\n    },\n    {\n      \"name\": \"Notenspiegel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Notenspiegel{${1:kommaseparierte Notenliste}}\"\n      }\n    },\n    {\n      \"name\": \"Notenpunktspiegel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Notenpunktspiegel{${1:kommaseparierte Notenliste}}\"\n      }\n    },\n    {\n      \"name\": \"FarbeAufgabe\"\n    },\n    {\n      \"name\": \"FarbeLoesung\"\n    },\n    {\n      \"name\": \"NurAufgabe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NurAufgabe{${1:Teil der Aufgabe}}\"\n      }\n    },\n    {\n      \"name\": \"NurLoesung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NurLoesung{${1:Teil der Aufgabe}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Teilaufgaben\"\n    },\n    {\n      \"name\": \"Lsg\"\n    },\n    {\n      \"name\": \"Lsg\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/schulma-klausur#c\": [\n      \"SLK\",\n      \"p-q-Formel\",\n      \"Differenzenquotient\",\n      \"Differentialquotient\",\n      \"A5quer\",\n      \"AT\",\n      \"GruppeA\",\n      \"GruppeB\",\n      \"Musterloesung\",\n      \"MusterloesungD\",\n      \"Seitenzahlen\",\n      \"Druck\",\n      \"Druck2\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/schulma-klausur#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schulma-komp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-schulma-ab\"\n    },\n    {\n      \"name\": \"datetime2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Nr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nr{${1:Nummer}}\"\n      }\n    },\n    {\n      \"name\": \"Klausurdatum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Klausurdatum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Abschnitt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abschnitt{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Abschnitt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Abschnitt[${2:Nummer}]{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Unterabschnitt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unterabschnitt{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Unterabschnitt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Unterabschnitt[${2:Nummer}]{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Unterabschnitt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Unterabschnitt{${1:Thema%text}}[${2:Kompetenzen%text}]\"\n      }\n    },\n    {\n      \"name\": \"Unterabschnitt\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Unterabschnitt[${2:Nummer}]{${1:Thema%text}}[${3:Kompetenzen%text}]\"\n      }\n    },\n    {\n      \"name\": \"Unterunterabschnitt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterunterabschnitt{${1:Thema%text}}{${2:Kompetenzen%text}}\"\n      }\n    },\n    {\n      \"name\": \"Unterunterabschnitt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Unterunterabschnitt[${3:Nummer}]{${1:Thema%text}}{${2:Kompetenzen%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-schulma-mdlprf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"schulma\"\n    },\n    {\n      \"name\": \"schulma-physik\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Schule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Schule{${1:Schulname}}\"\n      }\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Fach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fach{${1:Unterrichtsfach%text}}\"\n      }\n    },\n    {\n      \"name\": \"Vorbereitungsraum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vorbereitungsraum{${1:Raum}}\"\n      }\n    },\n    {\n      \"name\": \"Vorbereitungszeit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vorbereitungszeit{${1:Zeit}}\"\n      }\n    },\n    {\n      \"name\": \"Pruefungsraum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pruefungsraum{${1:Raum}}\"\n      }\n    },\n    {\n      \"name\": \"Pruefer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pruefer{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"PNummer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PNummer{${1:Nummer}}\"\n      }\n    },\n    {\n      \"name\": \"Hilfsmittel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hilfsmittel{${1:Hilfsmittel%text}}\"\n      }\n    },\n    {\n      \"name\": \"Aufgabe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aufgabe{${1:Aufgabentext%text}}\"\n      }\n    },\n    {\n      \"name\": \"Erwartungshorizont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Erwartungshorizont{${1:Lösung%text}}\"\n      }\n    },\n    {\n      \"name\": \"WeitereThemen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WeitereThemen{${1:Themen%text}}\"\n      }\n    },\n    {\n      \"name\": \"Pruefung\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pruefung{${1:Name}}{${2:Uhrzeit}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/schulma-mdlprf#c\": [\n      \"AT\",\n      \"Prueferin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/schulma-mdlprf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schulma-praes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"schulma\"\n    },\n    {\n      \"name\": \"schulma-physik\"\n    },\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"pgfpages\",\n      \"if\": \"druck\"\n    },\n    {\n      \"name\": \"pgfpages\",\n      \"if\": \"druck2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Kurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kurs{${1:Kursbezeichnung%text}}\"\n      }\n    },\n    {\n      \"name\": \"Datum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Datum{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"Thema\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thema{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"Thema\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Thema[${2:Nummer}]{${1:Thema%text}}\"\n      }\n    },\n    {\n      \"name\": \"schulmaalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schulmaalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Unterklammer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterklammer{${1:Formelteil}}{${2:Kommentar}}\"\n      }\n    },\n    {\n      \"name\": \"Unterklammer<Folienspezifikaton>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Unterklammer<Folienspezifikaton>{${1:Formelteil}}{${2:Kommentar}}\"\n      }\n    },\n    {\n      \"name\": \"Produktregel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Produktregel{${1:Foliennummer}}{${2:u'}}{${3:v}}{${4:u}}{${5:v'}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasnaustrian\",\n      \"if\": \"AT\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/schulma-praes#c\": [\n      \"Seitenzahlen\",\n      \"Druck\",\n      \"Druck2\",\n      \"AT\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"color={${1:color options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/schulma-praes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-schwalbe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"schwalbe\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Heft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Heft{${1:volume}}{${2:issue}}{${3:year}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"Abteilung\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Abteilung{${1:dept}}{${2:firstrefname}}{${3:lastrefname}}{${4:name}}{${5:email}}\"\n      }\n    },\n    {\n      \"name\": \"Abteilung*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Abteilung*{${1:dept}}{${2:firstrefname}}{${3:name}}{${4:email}}\"\n      }\n    },\n    {\n      \"name\": \"maerchenart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maerchenart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"retroart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retroart{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Loeser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Loeser{${1:short name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Loeser*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Loeser*{${1:short name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ListeLoeserKuerzel\"\n    },\n    {\n      \"name\": \"Loesung\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Loesung{${1:nummer}}{${2:liste}}{${3:Lösung}}\"\n      }\n    },\n    {\n      \"name\": \"Loesung*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Loesung*{${1:nummer}}{${2:liste}}{${3:Lösung}}\"\n      }\n    },\n    {\n      \"name\": \"showsol\"\n    },\n    {\n      \"name\": \"Buch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Buch{${1:authors}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Buch*\"\n    },\n    {\n      \"name\": \"WebSite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WebSite{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"TurnierAusschreibung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TurnierAusschreibung{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Nachruf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nachruf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dauerkonto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dauerkonto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"loesungswettbewerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loesungswettbewerb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"ua\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"ep\"\n    },\n    {\n      \"name\": \"seedia\"\n    },\n    {\n      \"name\": \"bsol\"\n    },\n    {\n      \"name\": \"esol\"\n    },\n    {\n      \"name\": \"figline\"\n    },\n    {\n      \"name\": \"foto\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foto{${1:Breite}}{${2:Hoehe}}{${3:Bildunterschrift}}\"\n      }\n    },\n    {\n      \"name\": \"mal\"\n    },\n    {\n      \"name\": \"MeasureNewpage\"\n    },\n    {\n      \"name\": \"Briefkasten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Einladung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Einladung{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Entscheid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Geburtstag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Geburtstag{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Inhalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoesungenBis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SchwalbeCopyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Turnierberichte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Verstorben\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Verstorben{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"aTurnier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aTurnier{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"aufsatz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aufsatz{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"bTurnier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bTurnier{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eEntscheid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eEntscheid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"editorial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorial{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"turnier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turnier{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"wK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ruler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowRuler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\"\n    },\n    {\n      \"name\": \"cyra\"\n    },\n    {\n      \"name\": \"CYRAE\"\n    },\n    {\n      \"name\": \"cyrae\"\n    },\n    {\n      \"name\": \"CYRB\"\n    },\n    {\n      \"name\": \"cyrb\"\n    },\n    {\n      \"name\": \"CYRC\"\n    },\n    {\n      \"name\": \"cyrc\"\n    },\n    {\n      \"name\": \"CYRCH\"\n    },\n    {\n      \"name\": \"cyrch\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\"\n    },\n    {\n      \"name\": \"cyrchrdsc\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\"\n    },\n    {\n      \"name\": \"cyrchvcrs\"\n    },\n    {\n      \"name\": \"CYRD\"\n    },\n    {\n      \"name\": \"cyrd\"\n    },\n    {\n      \"name\": \"cyrdash\"\n    },\n    {\n      \"name\": \"CYRDJE\"\n    },\n    {\n      \"name\": \"cyrdje\"\n    },\n    {\n      \"name\": \"CYRDZE\"\n    },\n    {\n      \"name\": \"cyrdze\"\n    },\n    {\n      \"name\": \"CYRDZHE\"\n    },\n    {\n      \"name\": \"cyrdzhe\"\n    },\n    {\n      \"name\": \"CYRE\"\n    },\n    {\n      \"name\": \"cyre\"\n    },\n    {\n      \"name\": \"CYREREV\"\n    },\n    {\n      \"name\": \"cyrerev\"\n    },\n    {\n      \"name\": \"CYRERY\"\n    },\n    {\n      \"name\": \"cyrery\"\n    },\n    {\n      \"name\": \"CYRF\"\n    },\n    {\n      \"name\": \"cyrf\"\n    },\n    {\n      \"name\": \"CYRG\"\n    },\n    {\n      \"name\": \"cyrg\"\n    },\n    {\n      \"name\": \"CYRGHCRS\"\n    },\n    {\n      \"name\": \"cyrghcrs\"\n    },\n    {\n      \"name\": \"CYRGUP\"\n    },\n    {\n      \"name\": \"cyrgup\"\n    },\n    {\n      \"name\": \"CYRH\"\n    },\n    {\n      \"name\": \"cyrh\"\n    },\n    {\n      \"name\": \"CYRHDSC\"\n    },\n    {\n      \"name\": \"cyrhdsc\"\n    },\n    {\n      \"name\": \"CYRHRDSN\"\n    },\n    {\n      \"name\": \"cyrhrdsn\"\n    },\n    {\n      \"name\": \"CYRI\"\n    },\n    {\n      \"name\": \"cyri\"\n    },\n    {\n      \"name\": \"CYRIE\"\n    },\n    {\n      \"name\": \"cyrie\"\n    },\n    {\n      \"name\": \"CYRII\"\n    },\n    {\n      \"name\": \"cyrii\"\n    },\n    {\n      \"name\": \"CYRISHRT\"\n    },\n    {\n      \"name\": \"cyrishrt\"\n    },\n    {\n      \"name\": \"CYRJE\"\n    },\n    {\n      \"name\": \"cyrje\"\n    },\n    {\n      \"name\": \"CYRK\"\n    },\n    {\n      \"name\": \"cyrk\"\n    },\n    {\n      \"name\": \"CYRKBEAK\"\n    },\n    {\n      \"name\": \"cyrkbeak\"\n    },\n    {\n      \"name\": \"CYRKDSC\"\n    },\n    {\n      \"name\": \"cyrkdsc\"\n    },\n    {\n      \"name\": \"CYRKVCRS\"\n    },\n    {\n      \"name\": \"cyrkvcrs\"\n    },\n    {\n      \"name\": \"CYRL\"\n    },\n    {\n      \"name\": \"cyrl\"\n    },\n    {\n      \"name\": \"cyrlangle\"\n    },\n    {\n      \"name\": \"CYRLJE\"\n    },\n    {\n      \"name\": \"cyrlje\"\n    },\n    {\n      \"name\": \"CYRM\"\n    },\n    {\n      \"name\": \"cyrm\"\n    },\n    {\n      \"name\": \"CYRN\"\n    },\n    {\n      \"name\": \"cyrn\"\n    },\n    {\n      \"name\": \"CYRNDSC\"\n    },\n    {\n      \"name\": \"cyrndsc\"\n    },\n    {\n      \"name\": \"CYRNG\"\n    },\n    {\n      \"name\": \"cyrng\"\n    },\n    {\n      \"name\": \"CYRNJE\"\n    },\n    {\n      \"name\": \"cyrnje\"\n    },\n    {\n      \"name\": \"CYRO\"\n    },\n    {\n      \"name\": \"cyro\"\n    },\n    {\n      \"name\": \"CYROTLD\"\n    },\n    {\n      \"name\": \"cyrotld\"\n    },\n    {\n      \"name\": \"CYRP\"\n    },\n    {\n      \"name\": \"cyrp\"\n    },\n    {\n      \"name\": \"CYRpalochka\"\n    },\n    {\n      \"name\": \"CYRQ\"\n    },\n    {\n      \"name\": \"cyrq\"\n    },\n    {\n      \"name\": \"CYRR\"\n    },\n    {\n      \"name\": \"cyrr\"\n    },\n    {\n      \"name\": \"cyrrangle\"\n    },\n    {\n      \"name\": \"CYRS\"\n    },\n    {\n      \"name\": \"cyrs\"\n    },\n    {\n      \"name\": \"CYRSCHWA\"\n    },\n    {\n      \"name\": \"cyrschwa\"\n    },\n    {\n      \"name\": \"CYRSDSC\"\n    },\n    {\n      \"name\": \"cyrsdsc\"\n    },\n    {\n      \"name\": \"CYRSFTSN\"\n    },\n    {\n      \"name\": \"cyrsftsn\"\n    },\n    {\n      \"name\": \"CYRSH\"\n    },\n    {\n      \"name\": \"cyrsh\"\n    },\n    {\n      \"name\": \"CYRSHCH\"\n    },\n    {\n      \"name\": \"cyrshch\"\n    },\n    {\n      \"name\": \"CYRSHHA\"\n    },\n    {\n      \"name\": \"cyrshha\"\n    },\n    {\n      \"name\": \"CYRT\"\n    },\n    {\n      \"name\": \"cyrt\"\n    },\n    {\n      \"name\": \"CYRTSHE\"\n    },\n    {\n      \"name\": \"cyrtshe\"\n    },\n    {\n      \"name\": \"CYRU\"\n    },\n    {\n      \"name\": \"cyru\"\n    },\n    {\n      \"name\": \"CYRUSHRT\"\n    },\n    {\n      \"name\": \"cyrushrt\"\n    },\n    {\n      \"name\": \"CYRV\"\n    },\n    {\n      \"name\": \"cyrv\"\n    },\n    {\n      \"name\": \"CYRW\"\n    },\n    {\n      \"name\": \"cyrw\"\n    },\n    {\n      \"name\": \"CYRY\"\n    },\n    {\n      \"name\": \"cyry\"\n    },\n    {\n      \"name\": \"CYRYA\"\n    },\n    {\n      \"name\": \"cyrya\"\n    },\n    {\n      \"name\": \"CYRYHCRS\"\n    },\n    {\n      \"name\": \"cyryhcrs\"\n    },\n    {\n      \"name\": \"CYRYI\"\n    },\n    {\n      \"name\": \"cyryi\"\n    },\n    {\n      \"name\": \"CYRYO\"\n    },\n    {\n      \"name\": \"cyryo\"\n    },\n    {\n      \"name\": \"CYRYU\"\n    },\n    {\n      \"name\": \"cyryu\"\n    },\n    {\n      \"name\": \"CYRZ\"\n    },\n    {\n      \"name\": \"cyrz\"\n    },\n    {\n      \"name\": \"CYRZDSC\"\n    },\n    {\n      \"name\": \"cyrzdsc\"\n    },\n    {\n      \"name\": \"CYRZH\"\n    },\n    {\n      \"name\": \"cyrzh\"\n    },\n    {\n      \"name\": \"CYRZHDSC\"\n    },\n    {\n      \"name\": \"cyrzhdsc\"\n    },\n    {\n      \"name\": \"f\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"U\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cyrdash\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"tg\"\n    },\n    {\n      \"name\": \"ctg\"\n    },\n    {\n      \"name\": \"arctg\"\n    },\n    {\n      \"name\": \"arcctg\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"cth\"\n    },\n    {\n      \"name\": \"cosec\"\n    },\n    {\n      \"name\": \"Prob\"\n    },\n    {\n      \"name\": \"Variance\"\n    },\n    {\n      \"name\": \"NOD\"\n    },\n    {\n      \"name\": \"nod\"\n    },\n    {\n      \"name\": \"NOK\"\n    },\n    {\n      \"name\": \"nok\"\n    },\n    {\n      \"name\": \"Proj\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Editorial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"Editorial\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"aktuell\"\n    },\n    {\n      \"name\": \"InformalEntscheid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:dept}}{${2:year}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"Aufsatz\"\n    },\n    {\n      \"name\": \"Titel\"\n    },\n    {\n      \"name\": \"Untertitel\"\n    },\n    {\n      \"name\": \"Urdrucke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"maerchenlexikon\"\n    },\n    {\n      \"name\": \"retrolexikon\"\n    },\n    {\n      \"name\": \"Loesungen\"\n    },\n    {\n      \"name\": \"BuB\"\n    },\n    {\n      \"name\": \"turnierberichte\"\n    },\n    {\n      \"name\": \"Buecher\"\n    },\n    {\n      \"name\": \"WebSites\"\n    },\n    {\n      \"name\": \"Briefkasten\"\n    },\n    {\n      \"name\": \"Turnierbericht\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:tournament}}{${2:author}}\"\n      }\n    },\n    {\n      \"name\": \"Entscheid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Loeserliste\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"Bericht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gruss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tagung\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-sciposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lettrine\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"shadow\"\n    },\n    {\n      \"name\": \"a0size\"\n    },\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"boxedminipage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"leftlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftlogo[${2:width%plain}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"rightlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"rightlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightlogo[${2:width%plain}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"noleftlogo\"\n    },\n    {\n      \"name\": \"norightlogo\"\n    },\n    {\n      \"name\": \"nologos\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"titlesize\"\n    },\n    {\n      \"name\": \"authorsize\"\n    },\n    {\n      \"name\": \"instsize\"\n    },\n    {\n      \"name\": \"VERYHuge\"\n    },\n    {\n      \"name\": \"VeryHuge\"\n    },\n    {\n      \"name\": \"veryHuge\"\n    },\n    {\n      \"name\": \"conference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conference{${1:conference%text}}\"\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LEFTSIDEfootlogo\"\n    },\n    {\n      \"name\": \"setmargins\"\n    },\n    {\n      \"name\": \"setmargins\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setmargins[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"PARstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PARstart{${1:letter}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subfigure{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"capstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mastercapstartstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mastercapstartstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcapstartstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcapstartstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablecapstartstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecapstartstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algcapstartstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algcapstartstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mastercapbodystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figcapbodystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablecapbodystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algcapbodystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealgorithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papertype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontpointsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpspagesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orientation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PlainBoxSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlainBoxSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PlainBoxSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PlainBoxSection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PlainSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlainSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"PlainSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PlainSection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"RuledSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RuledSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"RuledSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RuledSection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Section\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Section{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Section\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Section[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"SubSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"SubSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SubSection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"capbodystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capfirstskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figbotskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papermargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parstartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printleftlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printrightlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"requestpointsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sPlainBoxSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sPlainBoxSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sPlainSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sPlainSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sRuledSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sRuledSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sSubSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sSubSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"secboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/sciposter#c\": [\n      \"largefonts\",\n      \"boxedsections\",\n      \"ruledsections\",\n      \"plainsections\",\n      \"plainboxedsections\",\n      \"a0\",\n      \"a1\",\n      \"a2\",\n      \"a3\",\n      \"ansiE\",\n      \"ansiD\",\n      \"ansiC\",\n      \"tabloid\",\n      \"landscape\",\n      \"portrait\",\n      \"draft\",\n      \"final\",\n      \"36pt\",\n      \"30pt\",\n      \"25pt\",\n      \"20pt\",\n      \"17pt\",\n      \"14pt\",\n      \"ra0\",\n      \"ra1\",\n      \"ra2\",\n      \"b0\",\n      \"b1\",\n      \"b2\",\n      \"b3\",\n      \"custom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sciposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-scrartcl,scrreprt,scrbook.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-scrartcl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"abstract=${1|true,on,yes,false,off,no|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"sectionentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"headings=${1|big,normal,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-scrbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchapmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchapmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addchaptertocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addchaptertocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:additional test}}\"\n      }\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlinesformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfChapterUsesPrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfChapterUsesPrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheademptypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapterentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,chapterentrywithdots,chapterentrydotfill,chapterentrywithoutdots,chapterentryfill,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"chapterentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"open=${1|any,left,right|}\",\n      \"chapterprefix=${1|true,on,yes,false,off,no|}\",\n      \"appendixprefix=${1|true,on,yes,false,off,no|}\",\n      \"headings=${1|big,normal,onelineappendix,noappendixprefix,appendixwithoutprefix,appendixwithoutprefixline,onelinechapter,nochapterprefix,chapterwithoutprefix,chapterwithoutprefixline,openany,openleft,openright,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses,twolineappendix,appendixprefix,appendixwithprefix,appendixwithprefixline,twolinechapter,chapterprefix,chapterwithprefix,chapterwithprefixline|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"chapteratlists\",\n      \"chapteratlists=\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|chapterentry,withchapterentry,chaptergapline,onelinechaptergap,chaptergapsmall,smallchaptergap,entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,nochaptergap,ignorechapter,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"chapter\",\n      \"chapterentry\",\n      \"chapterentrydots\",\n      \"chapterentrypagenumber\",\n      \"chapterprefix\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\setpartpreamble,\\\\setchapterpreamble\": [\n      \"o\",\n      \"u\",\n      \"l\",\n      \"r\",\n      \"c\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-scrdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ltxdoc\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Class{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"CounterName\"\n    },\n    {\n      \"name\": \"CountersName\"\n    },\n    {\n      \"name\": \"EnvName\"\n    },\n    {\n      \"name\": \"EnvsName\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"File\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"File{${1:file%definition}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAfontName\"\n    },\n    {\n      \"name\": \"KOMAfontsName\"\n    },\n    {\n      \"name\": \"KOMAvarName\"\n    },\n    {\n      \"name\": \"KOMAvarsName\"\n    },\n    {\n      \"name\": \"LengthName\"\n    },\n    {\n      \"name\": \"LengthsName\"\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Macro{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"newDescribe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newDescribe{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"Option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"OptionName\"\n    },\n    {\n      \"name\": \"OptionsName\"\n    },\n    {\n      \"name\": \"Package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"PrintCounterName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintCounterName{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeKOMAfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeKOMAfont{${1:KOMA font}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeKOMAvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeKOMAvar{${1:KOMA var}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKOMAfontName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKOMAfontName{${1:KOMA font}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKOMAvarName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKOMAvarName{${1:KOMA var}}\"\n      }\n    },\n    {\n      \"name\": \"PrintLengthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintLengthName{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"PrintOptionName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintOptionName{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialCounterIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialCounterIndex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialKOMAvarIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialKOMAvarIndex{${1:KOMA var}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialLengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialLengthIndex{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainCounterIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainCounterIndex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainKOMAfontIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainKOMAfontIndex{${1:KOMA font}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainKOMAvarIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainKOMAvarIndex{${1:KOMA var}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainLengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainLengthIndex{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainOptionIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainOptionIndex{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialOptionIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialOptionIndex{${1:option}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Counter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:KOMA font}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:KOMA var}}\"\n      }\n    },\n    {\n      \"name\": \"Length\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/scrdoc#c\": [\n      \"nocfg\",\n      \"a4paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/scrdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-screenplay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"courier\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"realauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"agent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agent{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coverpage\"\n    },\n    {\n      \"name\": \"nicholl\"\n    },\n    {\n      \"name\": \"fadein\"\n    },\n    {\n      \"name\": \"intslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intextslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intextslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intextslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intextslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extintslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extintslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extintslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extintslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paren{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dialbreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dialbreak{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"dialbreak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dialbreak[${2:directions%text}]{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"titbreak\"\n    },\n    {\n      \"name\": \"centretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intercut\"\n    },\n    {\n      \"name\": \"pov\"\n    },\n    {\n      \"name\": \"revert\"\n    },\n    {\n      \"name\": \"fadeout\"\n    },\n    {\n      \"name\": \"theend\"\n    },\n    {\n      \"name\": \"addrseplen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addrwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"byskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialfix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialgutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialnametab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fadeintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fadeouttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercuttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"more\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sccentre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sccentre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sepintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scflushright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scflushright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"slugspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slug{${1:pretext}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"slug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"slug[${3:time}]{${1:pretext}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"thirty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titheadskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleovertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widthgutter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dialogue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"dialogue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:directions%text}]{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"titleover\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-scrlttr2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"copy\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"copy\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrchar{${1:initial letter}}\"\n      }\n    },\n    {\n      \"name\": \"addrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addrentry{${1:last name}}{${2:first name}}{${3:address}}{${4:phone}}{${5:F1}}{${6:F2}}{${7:F3}}{${8:F4}}{${9:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtolengthplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolengthplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtoplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtoplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtoreffields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoreffields{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bankname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:distribution list%text}}\"\n      }\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:concluding text%text}}\"\n      }\n    },\n    {\n      \"name\": \"customername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultreffields\"\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:enclosures%text}}\"\n      }\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreachemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachkomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavarifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreachkomavarifempty{${1:list of variables}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"foreachnonemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachnonemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavar{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty*{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifplength{${1:pseudo-length}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invoicename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelitemfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LetterOptionNeedsPapersize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetterOptionNeedsPapersize{${1:option name}}{${2:paper size}}\"\n      }\n    },\n    {\n      \"name\": \"letterpagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadLetterOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOption{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadLetterOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOptions{${1:list of names%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"mobilephonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar*[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newplength{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:salutation%text}}\"\n      }\n    },\n    {\n      \"name\": \"phonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\"\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsignature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removereffields\"\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}[${3:description%text}]{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setlengthtoplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlengthtoplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtodepth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtodepth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtoheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtoheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtototalheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtototalheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtowidth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtowidth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar*[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useplength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useplength{${1:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wwwname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourmailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfields{${1:field list%keyvals}}\",\n        \"keys\": [\n          \"\\\\showfields\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setshowstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshowstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\setshowstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edgesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"showenvelope(${1:width},${2:height})(${3:h-offset},${4:v-offset})\"\n      }\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"showenvelope(${2:width},${3:height})(${4:h-offset},${5:v-offset})[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showUScheck[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"unitfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfields\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfields{${1:field list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setshowstyle\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshowstyle{${1:style%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"edgesize\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"showenvelope(${1:width},${2:height})(${3:h-offset},${4:v-offset})\"\n      }\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"showenvelope(${2:width},${3:height})(${4:h-offset},${5:v-offset})[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}[${2:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}[${2:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"if\": \"visualize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showUScheck[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"unitfactor\",\n      \"if\": \"visualize\"\n    },\n    {\n      \"name\": \"makelabels\",\n      \"if\": \"makelabels\"\n    },\n    {\n      \"name\": \"selectlabeltype\",\n      \"if\": \"makelabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlabeltype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectlabeltype#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectlabeltype\",\n      \"if\": \"makelabels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"selectlabeltype[${2:integer}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectlabeltype#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"startlabels\",\n      \"if\": \"makelabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlabel\",\n      \"if\": \"makelabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlabeltype\",\n      \"if\": \"makelabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlabeltype{${1:integer}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"LetterCopyMarker\",\n      \"if\": \"copy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyname\",\n      \"if\": \"copy\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:recipient}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:recipient}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"foldmarks=${1:setting}\",\n      \"firsthead=${1|true,on,yes,false,off,no|}\",\n      \"fromalign=${1|center,centered,middle,false,no,off,left,locationleft,leftlocation,locationright,rightlocation,location,right|}\",\n      \"fromrule=${1|afteraddress,below,on,true,yes,aftername,false,no,off|}\",\n      \"symbolicnames=${1|true,on,yes,false,off,no,marvosym,fontawesome,awesome|}\",\n      \"fromphone=${1|true,on,yes,false,off,no|}\",\n      \"frommobilephone=${1|true,on,yes,false,off,no|}\",\n      \"fromfax=${1|true,on,yes,false,off,no|}\",\n      \"fromemail=${1|true,on,yes,false,off,no|}\",\n      \"fromurl=${1|true,on,yes,false,off,no|}\",\n      \"fromlogo=${1|true,on,yes,false,off,no|}\",\n      \"addrfield=${1|backgroundimage,PPbackgroundimage,PPBackgroundImage,PPBackGroundImage,ppbackgroundimage,ppBackgroundImage,ppBackGroundImage,false,off,no,image,Image,PPimage,PPImage,ppimage,ppImage,PP,pp,PPexplicite,PPExplicite,ppexplicite,ppExplicite,topaligned,alignedtop,true,on,yes|}\",\n      \"backaddress=${1|true,on,yes,false,off,no,underlined,plain|}\",\n      \"priority=${1|false,off,no,manual,B,b,economy,Economy,ECONOMY,B-ECONOMY,B-Economy,b-economy,A,a,priority,Priority,PRIORITY,A-PRIORITY,A-Priority,a-priority|}\",\n      \"locfield=${1|narrow,wide|}\",\n      \"numericaldate=${1|true,on,yes,false,off,no|}\",\n      \"refline=${1|dateleft,dateright,narrow,nodate,wide|}\",\n      \"subject=${1|afteropening,beforeopening,centered,left,right,titled,underlined,untitled|}\",\n      \"enlargefirstpage=${1|true,on,yes,false,off,no|}\",\n      \"firstfoot=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"pagenumber=${1|bot,foot,botcenter,botcentered,botmittle,footcenter,footcentered,footmiddle,botleft,footleft,botright,footright,center,centered,middle,false,no,off,head,top,headcenter,headcentered,headmiddle,topcenter,topcentered,topmiddle,headleft,topleft,headright,topright,left,right|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\"\n    ],\n    \"\\\\showfields\": [\n      \"test\",\n      \"head\",\n      \"foot\",\n      \"address\",\n      \"location\",\n      \"refline\"\n    ],\n    \"\\\\setshowstyle\": [\n      \"frame\",\n      \"rule\",\n      \"edges\"\n    ],\n    \"\\\\showISOenvelope#c\": [\n      \"C4\",\n      \"C5\",\n      \"C5/6\",\n      \"DL\",\n      \"C6\"\n    ],\n    \"\\\\showUScommercial#c\": [\n      \"9\",\n      \"10\"\n    ],\n    \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\": [\n      \"addresseeimage\",\n      \"backaddress\",\n      \"backaddressseparator\",\n      \"ccseparator\",\n      \"customer\",\n      \"date\",\n      \"emailseparator\",\n      \"enclseparator\",\n      \"faxseparator\",\n      \"firstfoot\",\n      \"firsthead\",\n      \"fromaddress\",\n      \"frombank\",\n      \"fromemail\",\n      \"fromfax\",\n      \"fromlogo\",\n      \"frommobilephone\",\n      \"fromname\",\n      \"fromphone\",\n      \"fromurl\",\n      \"fromzipcode\",\n      \"invoice\",\n      \"location\",\n      \"myref\",\n      \"nextfoot\",\n      \"nexthead\",\n      \"phoneseparator\",\n      \"place\",\n      \"placeseparator\",\n      \"PPdatamatrix\",\n      \"PPcode\",\n      \"signature\",\n      \"specialmail\",\n      \"subject\",\n      \"subjectseparator\",\n      \"title\",\n      \"toaddress\",\n      \"toname\",\n      \"yourmail\",\n      \"yourref\",\n      \"zipcodeseparator\"\n    ],\n    \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\": [\n      \"backaddrheight\",\n      \"bfoldmarklength\",\n      \"bfoldmarkvpos\",\n      \"firstfoothpos\",\n      \"firstfootvpos\",\n      \"firstfootwidth\",\n      \"firstheadhpos\",\n      \"firstheadvpos\",\n      \"firstheadwidth\",\n      \"foldmarkhpos\",\n      \"foldmarkvpos\",\n      \"fromrulethickness\",\n      \"fromrulewidth\",\n      \"lfoldmarkhpos\",\n      \"lfoldmarklength\",\n      \"locheight\",\n      \"lochpos\",\n      \"locvpos\",\n      \"locwidth\",\n      \"mfoldmarklength\",\n      \"mfoldmarkvpos\",\n      \"pfoldmarklength\",\n      \"PPdatamatrixvskip\",\n      \"PPheadheight\",\n      \"PPheadwidth\",\n      \"refaftervskip\",\n      \"refhpos\",\n      \"refvpos\",\n      \"refwidth\",\n      \"sigbeforevskip\",\n      \"sigindent\",\n      \"specialmailindent\",\n      \"specialmailrightindent\",\n      \"subjectaftervskip\",\n      \"subjectbeforevskip\",\n      \"additional verti\",\n      \"subjectvpos\",\n      \"tfoldmarklength\",\n      \"tfoldmarkvpos\",\n      \"toaddrheight\",\n      \"toaddrhpos\",\n      \"toaddrindent\",\n      \"toaddrvpos\",\n      \"toaddrwidth\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"addressee\",\n      \"backaddress\",\n      \"descriptionlabel\",\n      \"foldmark\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"fromaddress\",\n      \"fromname\",\n      \"fromrule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"placeanddate\",\n      \"refname\",\n      \"refvalue\",\n      \"specialmail\",\n      \"lettersubject\",\n      \"lettertitle\",\n      \"toaddress\",\n      \"toname\"\n    ],\n    \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\": [\n      \"DIN\",\n      \"DINmtext\",\n      \"KakuLL\",\n      \"KOMAold\",\n      \"NF\",\n      \"NipponEH\",\n      \"NipponEL\",\n      \"NipponLH\",\n      \"NipponLL\",\n      \"NipponRL\",\n      \"SN\",\n      \"SNleft\",\n      \"UScommercial9\",\n      \"UScommercial9DW\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\selectlabeltype#c\": [\n      \"avery_5162\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-scrreprt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrpage2\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\",\n      \"if\": \"emulatestandardclasses\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:bcor}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionbelow[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:width}]{${1:indent}}{${2:parindent}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\"\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:shorttitle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfoutput{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:pagenumber}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"othersectionlevelsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othersectionlevelsformat{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:middle}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:align}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetDIVList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDIVList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:pos}][${3:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:bcor}]{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:div}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\"\n    },\n    {\n      \"name\": \"autodot\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAScript{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenusingstyle{${1:pagestyle%special}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:pagestyle%specialDef}}{${2:header}}{${3:footer}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpapersize\",\n      \"if\": \"emulatestandardclasses\"\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addchap[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addchapmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addchapmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addchaptertocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addchaptertocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addpartmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpartmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addparttocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addparttocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addsec[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addsecmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addsecmark{${1:running head}}\"\n      }\n    },\n    {\n      \"name\": \"addsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubparagraphtocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubparagraphtocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addsubsubsectiontocentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsubsubsectiontocentry{${1:number}}{${2:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocentrydefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocentrydefault{${1:level}}{${2:number}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"AddToSectionCommandOptionsDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToSectionCommandOptionsDoList{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AfterBibliographyPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBibliographyPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"appendixmore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtEndBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndBibliography{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"autodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakBibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreakBibliography{${1:interruption code}}\"\n      }\n    },\n    {\n      \"name\": \"capfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionabove[${2:entry}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionabove{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionaboveof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionaboveof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionbelow{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionbelowof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionbelowof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionnopagebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"captionof{${1:float type}}[${3:entry}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size%l}}\"\n      }\n    },\n    {\n      \"name\": \"chapapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapappifchapterprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapappifchapterprefix{${1:additional test}}\"\n      }\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlinesformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewSectionCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFontOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFontOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleFuzzyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleFuzzyOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}{${5:alt}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleLengthOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleNumberOption{${1:section level}}{${2:key%plain}}{${3:prefix}}{${4:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionCommandStyleOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSectionCommandStyleOption{${1:section level}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"descfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfChapterUsesPrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfChapterUsesPrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"ifonelinecaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfSectionCommandStyleIs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSectionCommandStyleIs{${1:name}}{${2:style}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifunnumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifunnumbered{${1:section level}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUseNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUseNumber{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfUsePrefixLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUsePrefixLine{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"listoftocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"minisec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisec{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newbibstyle[${3:parent style}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newbibstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newbibstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"onelinecaptionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onelinecaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheademptypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadmidvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partheadstartvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partlineswithprefixformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partlineswithprefixformat{${1:level}}{${2:number}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggedcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedchapterentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsectionentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommand[${2:attributes%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareSectionCommands[${2:attributes%keyvals}]{${1:list of names}}\",\n        \"keys\": [\n          \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareSectionCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareSectionCommands{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxSectionCommandOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SecDef{${1:star command}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectioncatchphraseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectioncatchphraseformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionlinesformat{${1:level}}{${2:indent%l}}{${3:number}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbibpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbibpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapdynwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapdynwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapdynwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setcaphanging\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcapindent*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent*{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapindent{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin*[${2:inner margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin*{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapmargin[${2:left margin%l}]{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcapmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapmargin{${1:margin%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcaptionalignment[${2:float type}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setcaptionalignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcaptionalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcapwidth[${2:justification%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\setcapwidth,\\\\setcapdynwidth\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcapwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcapwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setchapterpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setchapterpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchapterpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootnoterule[${2:thickness}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootnoterule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}][${3:width}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpartpreamble[${2:position%keyvals}]{${1:preamble%text}}\",\n        \"keys\": [\n          \"\\\\setpartpreamble,\\\\setchapterpreamble\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpartpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseNumberUsageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseNumberUsageError{${1:then code}}{${2:else code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:leftindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:middleindent}]{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"[${2:short}]{${1:title}}[${3:pos}][${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title}}[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"{${1:title}}[${2:pos}][${3:width}][${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"[${2:short title}]{${1:caption text%text}}[${3:placement}][${4:width}][${5:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionbeside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}[]{}[][][]\",\n        \"snippet\": \"{${1:float type}}[${3:short title}]{${2:caption text%text}}[${4:placement}][${5:width}][${6:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"captionofbeside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:caption text%text}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"abstract=${1|true,on,yes,false,off,no|}\",\n      \"toc=${1|bibliography,bib,bibliographynumbered,bibnumbered,numberedbibliography,numberedbib,chapterentrywithdots,chapterentrydotfill,chapterentrywithoutdots,chapterentryfill,flat,left,graduated,indent,indented,indenttextentries,indentunnumbered,numberline,index,idx,indexnumbered,idxnumbered,numberedindex,numberedidx,leftaligntextentries,leftalignunnumbered,nonumberline,listof,listofnumbered,numberedlistof,nobibliography,nobib,noindex,noidx,nolistof,sectionentrywithdots,sectionentrydotfill,sectionentrywithoutdots,sectionentryfill|}\",\n      \"chapterentrydots=${1|true,on,yes,false,off,no|}\",\n      \"parskip=${1|false,off,no,full,true,yes,full-,full+,full*,half,half-,half+,half*,never|}\",\n      \"cleardoublepage=${1|empty,headings,myheadings,plain,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\",\n      \"open=${1|any,left,right|}\",\n      \"chapterprefix=${1|true,on,yes,false,off,no|}\",\n      \"appendixprefix=${1|true,on,yes,false,off,no|}\",\n      \"headings=${1|big,normal,onelineappendix, noappendixprefix, appendixwithoutprefix,appendixwithoutprefixline,onelinechapter, nochapterprefix, chapterwithoutprefix,chapterwithoutprefixline,openany,openleft,openright,optiontohead,optiontoheadandtoc,optiontotocandhead,optiontotoc,small,standardclasses,twolineappendix,appendixprefix,appendixwithprefix,appendixwithprefixline,twolinechapter,chapterprefix,chapterwithprefix,chapterwithprefixline|}\",\n      \"numbers=${1|autoendperiod,autoenddot,auto,endperiod,withendperiod,periodatend,enddot,withenddot,dotatend,noendperiod,noperiodatend,noenddot,nodotatend|}\",\n      \"chapteratlists\",\n      \"chapteratlists=\",\n      \"captions=${1|bottombeside,besidebottom,centeredbeside,besidecentered,middlebeside,besidemiddle,figureheading,figureabove,abovefigure,topatfigure,figuresignature,belowfigure,bottomatfiggure,heading,above,top,innerbeside,besideinner,leftbeside,besideleft,nooneline,oneline,outerbeside,besideouter,rightbeside,besideright,signature,below,bot,bottom,tableheading,tableabove,abovetable,abovetabular,topattable,tablesignature,belowtable,belowtabular,bottomattable,topbeside,besidetop|}\",\n      \"listof=${1|chapterentry,withchapterentry,chaptergapline,onelinechaptergap,chaptergapsmall,smallchaptergap,entryprefix,flat,left,graduated,indent,indented,leveldown,indenttextentries,indentunnumbered,numberline,leftaligntextentries,leftalignunnumbered,nonumberline,nochaptergap,ignorechapter,notoc,nottotoc,plainheading,numbered,totocnumbered,tocnumbered,numberedtoc,numberedtotoc,standardlevel,totoc,toc,notnumbered|}\",\n      \"bibliography=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,oldstyle,openstyle,standardlevel,toc,totoc,notnumbered|}\",\n      \"index=${1|leveldown,notoc,nottotoc,plainheading,numbered,tocnumbered,totocnumbered,numberedtoc,numberedtotoc,standardlevel,toc,totoc,notnumbered|}\",\n      \"bookmarkpackage=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"author\",\n      \"caption\",\n      \"captionlabel\",\n      \"chapter\",\n      \"chapterentry\",\n      \"chapterentrydots\",\n      \"chapterentrypagenumber\",\n      \"chapterprefix\",\n      \"date\",\n      \"dedication\",\n      \"descriptionlabel\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"disposition\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"minisec\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"paragraph\",\n      \"part\",\n      \"partentry\",\n      \"partentrypagenumber\",\n      \"partnumber\",\n      \"publishers\",\n      \"section\",\n      \"sectionentry\",\n      \"sectionentrydots\",\n      \"sectionentrypagenumber\",\n      \"sectioning\",\n      \"subject\",\n      \"subparagraph\",\n      \"subsection\",\n      \"subsubsection\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\"\n    ],\n    \"\\\\DeclareSectionCommand#c,\\\\DeclareNewSectionCommand#c,\\\\RedeclareSectionCommand#c,\\\\ProvideSectionCommand#c,\\\\DeclareSectionCommands#c,\\\\DeclareNewSectionCommands#c,\\\\RedeclareSectionCommands#c,\\\\ProvideSectionCommands#c\": [\n      \"counterwithin=${1:counter}\",\n      \"counterwithout=${1:counter}\",\n      \"expandtopt=${1|true,on,yes,false,off,no|}\",\n      \"level=${1:integer}\",\n      \"style=${1:style}\",\n      \"tocstyle=${1:TOC style}\",\n      \"afterindent=\",\n      \"afterskip=\",\n      \"beforeskip=\",\n      \"font=${1:font commands}\",\n      \"indent=\",\n      \"runin=${1|true,on,yes,false,off,no|}\",\n      \"innerskip=\",\n      \"pagestyle=${1:page style}\",\n      \"prefixfont=${1:font commands}\"\n    ],\n    \"\\\\setcapwidth,\\\\setcapdynwidth\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"i\",\n      \"o\"\n    ],\n    \"\\\\setcaptionalignment\": [\n      \"c\",\n      \"j\",\n      \"l\",\n      \"r\",\n      \"C\",\n      \"J\",\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"empty\",\n      \"headings\",\n      \"myheadings\",\n      \"plain\"\n    ],\n    \"\\\\setpartpreamble,\\\\setchapterpreamble\": [\n      \"o\",\n      \"u\",\n      \"l\",\n      \"r\",\n      \"c\"\n    ],\n    \"\\\\floatstyle\": [\n      \"komaabove\",\n      \"komabelow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-sdapsclassic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"sdapsbase\"\n    },\n    {\n      \"name\": \"sdapslayout\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"sectsty\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"translator\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addinfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addinfo{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"sdapsinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdapspagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkbox\"\n    },\n    {\n      \"name\": \"checkbox*\"\n    },\n    {\n      \"name\": \"checkedbox\"\n    },\n    {\n      \"name\": \"checkedbox*\"\n    },\n    {\n      \"name\": \"filledbox\"\n    },\n    {\n      \"name\": \"filledbox*\"\n    },\n    {\n      \"name\": \"correctedbox\"\n    },\n    {\n      \"name\": \"correctedbox*\"\n    },\n    {\n      \"name\": \"singlemark\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"singlemark{${1:question%text}}{${2:lower%text}}{${3:upper%text}}\"\n      }\n    },\n    {\n      \"name\": \"singlemark\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"singlemark[${4:options%keyvals}]{${1:question%text}}{${2:lower%text}}{${3:upper%text}}\",\n        \"keys\": [\n          \"\\\\singlemark,\\\\singlemarkother\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"singlemarkother\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"singlemarkother{${1:question%text}}{${2:lower%text}}{${3:upper%text}}\"\n      }\n    },\n    {\n      \"name\": \"singlemarkother\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"singlemarkother[${4:options%keyvals}]{${1:question%text}}{${2:lower%text}}{${3:upper%text}}\",\n        \"keys\": [\n          \"\\\\singlemark,\\\\singlemarkother\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textbox{${1:height}}{${2:question}}\"\n      }\n    },\n    {\n      \"name\": \"textbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textbox[${3:options%keyvals}]{${1:height}}{${2:question}}\",\n        \"keys\": [\n          \"\\\\textbox,\\\\textbox*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textbox*{${1:height}}{${2:question}}\"\n      }\n    },\n    {\n      \"name\": \"textbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textbox*[${3:options%keyvals}]{${1:height}}{${2:question}}\",\n        \"keys\": [\n          \"\\\\textbox,\\\\textbox*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choiceitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choiceitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choiceitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"choiceitem[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\choiceitem,\\\\choicemulticolitem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choicemulticolitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"choicemulticolitem{${1:cols}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"choicemulticolitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"choicemulticolitem[${3:options%keyvals}]{${1:cols}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\choiceitem,\\\\choicemulticolitem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choiceitemtext\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"choiceitemtext{${1:height}}{${2:cols}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"choiceitemtext\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"choiceitemtext[${4:options%keyvals}]{${1:height}}{${2:cols}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\choiceitemtext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"markline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markline{${1:question}}{${2:lower}}{${3:upper}}\"\n      }\n    },\n    {\n      \"name\": \"markline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"markline[${4:options%keyvals}]{${1:question}}{${2:lower}}{${3:upper}}\"\n      }\n    },\n    {\n      \"name\": \"groupaddchoice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"groupaddchoice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"groupaddchoice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"groupaddchoice[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\groupaddchoice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choiceline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choiceline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choiceline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"choiceline[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\choiceline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectbox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"themarkcheckboxcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"questionnaire\"\n    },\n    {\n      \"name\": \"questionnaire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{questionnaire}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choicequestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choicequestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{choicequestion}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"optionquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"optionquestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{optionquestion}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"info\"\n    },\n    {\n      \"name\": \"markgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{markgroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choicegroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choicegroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{choicegroup},\\\\begin{optiongroup}\",\n          \"\\\\begin{choicegroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"optiongroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"optiongroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{choicegroup},\\\\begin{optiongroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{questionnaire}\": [\n      \"noinfo\"\n    ],\n    \"\\\\singlemark,\\\\singlemarkother\": [\n      \"var=${1:variable}\",\n      \"count=${1:integer}\"\n    ],\n    \"\\\\textbox,\\\\textbox*\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\"\n    ],\n    \"\\\\begin{choicequestion}\": [\n      \"cols=${1:integer}\",\n      \"colsep=\",\n      \"rowsep=\",\n      \"var=${1:variable}\",\n      \"text=${1:text}\",\n      \"type=${1|multichoice,singlechoice|}\",\n      \"multichoice\",\n      \"singlechoice\"\n    ],\n    \"\\\\choiceitem,\\\\choicemulticolitem\": [\n      \"var=${1:variable}\",\n      \"val=${1:value}\",\n      \"text=${1:text}\"\n    ],\n    \"\\\\choiceitemtext\": [\n      \"var=${1:variable}\",\n      \"text=${1:text}\"\n    ],\n    \"\\\\begin{optionquestion}\": [\n      \"cols=${1:integer}\",\n      \"colsep=\",\n      \"rowsep=\",\n      \"var=${1:variable}\",\n      \"text=${1:text}\"\n    ],\n    \"\\\\begin{markgroup}\": [\n      \"count=${1:integer}\",\n      \"align=${1:string}\",\n      \"other\"\n    ],\n    \"\\\\begin{choicegroup},\\\\begin{optiongroup}\": [\n      \"align=\",\n      \"noalign\",\n      \"horizontal\",\n      \"layouter=${1|default,rotated|}\",\n      \"angle=${1:angle}\",\n      \"vertical\",\n      \"type=${1|multichoice,singlechoice|}\",\n      \"multichoice\",\n      \"singlechoice\"\n    ],\n    \"\\\\begin{choicegroup}\": [\n      \"type=${1|multichoice,singlechoice|}\",\n      \"multichoice\",\n      \"singlechoice\"\n    ],\n    \"\\\\groupaddchoice\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\",\n      \"val=${1:value}\"\n    ],\n    \"\\\\choiceline\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\",\n      \"range=${1:list}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-se2thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"se2colors\"\n    },\n    {\n      \"name\": \"se2fonts\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"class-scrartcl\",\n      \"if\": \"class=scrartcl\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"class=scrreprt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"degreeprogramme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeprogramme{${1:programme-name}}\"\n      }\n    },\n    {\n      \"name\": \"matrnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrnumber{${1:matriculation-number}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coadvisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:short-name}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"external\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"external{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:name-of-town}}\"\n      }\n    },\n    {\n      \"name\": \"authorshipDeclaration\"\n    },\n    {\n      \"name\": \"authorshipDeclaration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"authorshipDeclaration[${1:location}]\"\n      }\n    },\n    {\n      \"name\": \"signatureBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signatureBox{${1:signature-name}}\"\n      }\n    },\n    {\n      \"name\": \"signatureBox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"signatureBox[${2:width}]{${1:signature-name}}\"\n      }\n    },\n    {\n      \"name\": \"summarybox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"summarybox{${1:label text%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"headingdot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"resq\"\n    },\n    {\n      \"name\": \"resq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"hyp\"\n    },\n    {\n      \"name\": \"hyp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"summary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label text%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/se2thesis#c\": [\n      \"class=${1|scrreprt,scrbook|}\",\n      \"paper=${1|a4,b5|}\",\n      \"logofile={${1:path-to-file}}\",\n      \"thesistype=${1|bachelor,bachelorproposal,master,masterproposal,phd,phdeng,phdphil,phdproposal|}\",\n      \"colormode=${1|cmyk,rgb,bw|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/se2thesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-shtthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"tocvsec2\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shtsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shtsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\shtsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"header\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"header[${3:单位表头%text}]{${1:符号表头%text}}{${2:描述表头%text}}\"\n      }\n    },\n    {\n      \"name\": \"header\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"header{${1:符号表头%text}}{${2:描述表头%text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"intobmk*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intobmk*[${3:level}]{${1:extra commands}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"intobmk*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intobmk*{${1:extra commands}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"intobmk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"intobmk[${4:level}]{${1:section-type}}{${2:*}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"intobmk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"intobmk{${1:section-type}}{${2:*}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"intotoc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intotoc*[${3:section-type}]{${1:extra commands}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"intotoc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intotoc*{${1:extra commands}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"intotoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"intotoc{${1:section-type}}{${2:*}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"makebiblio\"\n    },\n    {\n      \"name\": \"makedeclarations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeindices\"\n    },\n    {\n      \"name\": \"ShtThesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shtthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"square\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"nomenclatures\"\n    },\n    {\n      \"name\": \"nomenclatures\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:标题%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"resume\"\n    },\n    {\n      \"name\": \"publications\"\n    },\n    {\n      \"name\": \"publications*\"\n    },\n    {\n      \"name\": \"patents\"\n    },\n    {\n      \"name\": \"patents*\"\n    },\n    {\n      \"name\": \"projects\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/shtthesis#c\": [\n      \"bachelor\",\n      \"master\",\n      \"doctor\",\n      \"anonymous\",\n      \"print\",\n      \"comfort\"\n    ],\n    \"\\\\shtsetup\": [\n      \"degree-name={${1:您要申请什么学位}}\",\n      \"degree-name*={${1:English degree name}}\",\n      \"language=${1|chinese,english|}\",\n      \"secret-level={${1:秘密}}\",\n      \"secret-year=${1:year}\",\n      \"title={${1:论文中文题目}}\",\n      \"title*={${1:English thesis title}}\",\n      \"keywords={${1:关键词 1, 关键词 2}}\",\n      \"keywords*={${1:keyword1,keyword2,...}}\",\n      \"author={${1:中文姓名}}\",\n      \"author*={${1:name in Pinyin}}\",\n      \"author-id={${1:id}}\",\n      \"entrance-year=${1:year}\",\n      \"supervisor={${1:导师姓名, 教授}}\",\n      \"supervisor*={${1:Professor Supervisor Name}}\",\n      \"supervisor-institution={${1:机构}}\",\n      \"supervisor-institution*={${1:institution}}\",\n      \"institution={${1:机构}}\",\n      \"institution*={${1:institution}}\",\n      \"discipline={${1:学科名称}}\",\n      \"discipline*={${1:English discipline name}}\",\n      \"discipline-level-1={${1:流动站（一级学科）名称}}\",\n      \"discipline-level-1*=\",\n      \"discipline-level-2={${1:专业（二级学科）名称}}\",\n      \"discipline-level-2*=\",\n      \"date={${1:中文日期}}\",\n      \"date*={${1:English date}}\",\n      \"clc={${1:分类号}}\",\n      \"udc={${1:udc}}\",\n      \"id={${1:id}}\",\n      \"anonymous-str=\",\n      \"bib-resource={${1:bib file}}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/shtthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-simplethesisdissertation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"cite\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"xltxtra\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"underscore\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"arydshln\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"lipsum\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BlankFootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlankFootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Break\"\n    },\n    {\n      \"name\": \"CaptionFontSize\"\n    },\n    {\n      \"name\": \"Chapter\"\n    },\n    {\n      \"name\": \"Chaptermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Chaptermark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chapters\"\n    },\n    {\n      \"name\": \"Claim\"\n    },\n    {\n      \"name\": \"Claims\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"CommentLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentLeft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CommentRight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentRight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Conjecture\"\n    },\n    {\n      \"name\": \"Conjectures\"\n    },\n    {\n      \"name\": \"Corollaries\"\n    },\n    {\n      \"name\": \"Corollary\"\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dashhorizontal\"\n    },\n    {\n      \"name\": \"dashvertical\"\n    },\n    {\n      \"name\": \"DefineItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineItem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Definition\"\n    },\n    {\n      \"name\": \"Definitions\"\n    },\n    {\n      \"name\": \"DisableTOCUpdates\"\n    },\n    {\n      \"name\": \"DummyThree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DummyThree{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"EnableTOCUpdates\"\n    },\n    {\n      \"name\": \"Example\"\n    },\n    {\n      \"name\": \"Examples\"\n    },\n    {\n      \"name\": \"Figure\"\n    },\n    {\n      \"name\": \"Figures\"\n    },\n    {\n      \"name\": \"FooterText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Goto\"\n    },\n    {\n      \"name\": \"Hide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IndentBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndentBlock{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"IndentHanging\"\n    },\n    {\n      \"name\": \"Lemma\"\n    },\n    {\n      \"name\": \"Lemmas\"\n    },\n    {\n      \"name\": \"mathbbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"one\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"one{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Part\"\n    },\n    {\n      \"name\": \"Parts\"\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Problem\"\n    },\n    {\n      \"name\": \"Problems\"\n    },\n    {\n      \"name\": \"Proposition\"\n    },\n    {\n      \"name\": \"Propositions\"\n    },\n    {\n      \"name\": \"qedmarker\"\n    },\n    {\n      \"name\": \"Section\"\n    },\n    {\n      \"name\": \"Sectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sections\"\n    },\n    {\n      \"name\": \"sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Stateu\"\n    },\n    {\n      \"name\": \"Subsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Subsubsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsubsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Table\"\n    },\n    {\n      \"name\": \"Tables\"\n    },\n    {\n      \"name\": \"Theorem\"\n    },\n    {\n      \"name\": \"Theorems\"\n    },\n    {\n      \"name\": \"Timestamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TODO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TODO{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"tref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TypesetInDraftMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseHeaderFooterFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Thm:Theorem\"\n    },\n    {\n      \"name\": \"Thm:Theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Lemma\"\n    },\n    {\n      \"name\": \"Thm:Lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Corollary\"\n    },\n    {\n      \"name\": \"Thm:Corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Claim\"\n    },\n    {\n      \"name\": \"Thm:Claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Proposition\"\n    },\n    {\n      \"name\": \"Thm:Proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Conjecture\"\n    },\n    {\n      \"name\": \"Thm:Conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Problem\"\n    },\n    {\n      \"name\": \"Thm:Problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Thm:Definition\"\n    },\n    {\n      \"name\": \"Thm:Definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"ResizedAlign\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:h-length%l}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"ResizedAlign*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:h-length%l}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"CodeBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/simplethesisdissertation#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"nonstopmode\",\n      \"draftmode\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"MyPlain\",\n      \"MyDefinition\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/simplethesisdissertation#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-simplivre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"minimalist\"\n    },\n    {\n      \"name\": \"projlib-font\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"fast=true\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"useindent=false\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongequal{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwoheadleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightrightarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xrightrightarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightrightarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftleftarrows{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xleftleftarrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftleftarrows[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPrintModeTF{${1:true-code}}{${2:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeT{${1:true-code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPrintModeF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfPrintModeF{${1:false-code}}\"\n      }\n    },\n    {\n      \"name\": \"limstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisesymbol{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"th\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cosec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Variance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Proj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/simplivre#c\": [\n      \"draft\",\n      \"fast\",\n      \"classical\",\n      \"useindent\",\n      \"a4paper\",\n      \"b5paper\",\n      \"oneside\",\n      \"twoside\",\n      \"11pt\",\n      \"12pt\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\",\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/simplivre#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-skdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"ydoc-code\"\n    },\n    {\n      \"name\": \"ydoc-desc\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"PTSerif\"\n    },\n    {\n      \"name\": \"sourcecodepro\"\n    },\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"minted\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"package[${2:options%keyvals}]{${1:package}}\",\n        \"keys\": [\n          \"\\\\package\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"ctan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctan{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"repository\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"repository{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"theversion\"\n    },\n    {\n      \"name\": \"thepackage\"\n    },\n    {\n      \"name\": \"thepkg\"\n    },\n    {\n      \"name\": \"PrintLPPL\"\n    },\n    {\n      \"name\": \"Notice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Notice{${1:notice%text}}\"\n      }\n    },\n    {\n      \"name\": \"Warning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Warning{${1:warning%text}}\"\n      }\n    },\n    {\n      \"name\": \"LongWarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LongWarning{${1:warning%text}}\"\n      }\n    },\n    {\n      \"name\": \"cs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"env*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env*{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pkg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg*{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"opt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt*{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"bib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bib{${1:BibTeX entry type}}\"\n      }\n    },\n    {\n      \"name\": \"bib*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bib*{${1:BibTeX entry type}}\"\n      }\n    },\n    {\n      \"name\": \"thm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thm{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"thm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thm*{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"file*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Options\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Options{${1:option1,option2,...}}\"\n      }\n    },\n    {\n      \"name\": \"WithValues\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WithValues{${1:value1,value2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AndDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AndDefault{${1:default value}}\"\n      }\n    },\n    {\n      \"name\": \"BibEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibEntry{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"WithFields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WithFields{${1:mandatory fields}}\"\n      }\n    },\n    {\n      \"name\": \"WithFields\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"WithFields[${2:optional fields}]{${1:mandatory fields}}\"\n      }\n    },\n    {\n      \"name\": \"Theme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Theme{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareFile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\DeclareFile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PreambleTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PreambleTo{${1:token}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"SelfPreambleTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelfPreambleTo{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"Implementation\"\n    },\n    {\n      \"name\": \"Finale\"\n    },\n    {\n      \"name\": \"OnlyDescription\"\n    },\n    {\n      \"name\": \"changes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"changes{${1:version}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"PrintChanges\"\n    },\n    {\n      \"name\": \"PrintIndex\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"macro*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"environment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"option*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"bibentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"bibentry*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"theme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"theme*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"MacroCode\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/skdoc#c\": [\n      \"load=${1:package}\",\n      \"highlight\",\n      \"babel=${1:babel options}\"\n    ],\n    \"\\\\package\": [\n      \"ctan=${1:identifier}\",\n      \"vcs=${1:URL}\"\n    ],\n    \"\\\\DeclareFile\": [\n      \"key=${1:key}\",\n      \"preamble=${1:preamble}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/skdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-skrapport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"isomath\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"skmath\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"grid\",\n      \"if\": \"twocolumn\"\n    },\n    {\n      \"name\": \"grid\",\n      \"if\": \"twocolumn=true\"\n    },\n    {\n      \"name\": \"kpfonts\",\n      \"if\": \"font=kpfonts\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"font=lmodern\"\n    },\n    {\n      \"name\": \"sourcecodepro\",\n      \"if\": \"font=lmodern\"\n    },\n    {\n      \"name\": \"arev\",\n      \"if\": \"font=palatino\"\n    },\n    {\n      \"name\": \"pxfonts\",\n      \"if\": \"font=palatino\"\n    },\n    {\n      \"name\": \"tgpagella\",\n      \"if\": \"font=palatino\"\n    },\n    {\n      \"name\": \"sourcecodepro\",\n      \"if\": \"font=palatino\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"font=minion\"\n    },\n    {\n      \"name\": \"MnSymbol\",\n      \"if\": \"font=minion\"\n    },\n    {\n      \"name\": \"MyriadPro\",\n      \"if\": \"font=minion\"\n    },\n    {\n      \"name\": \"sourcecodepro\",\n      \"if\": \"font=minion\"\n    },\n    {\n      \"name\": \"PTSerif\",\n      \"if\": \"font=skdoc\"\n    },\n    {\n      \"name\": \"opensans\",\n      \"if\": \"font=skdoc\"\n    },\n    {\n      \"name\": \"sourcecodepro\",\n      \"if\": \"font=skdoc\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"font=word\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswedish\",\n      \"if\": \"lang=en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswedish\",\n      \"if\": \"lang=en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswedish\",\n      \"if\": \"lang=en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswedish\",\n      \"if\": \"lang=en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swedishhyphenmins\",\n      \"if\": \"lang=en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"lang=en\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"lang=en\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"lang=en\"\n    },\n    {\n      \"name\": \"captionsswedish\",\n      \"if\": \"lang=sv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswedish\",\n      \"if\": \"lang=sv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasswedish\",\n      \"if\": \"lang=sv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasswedish\",\n      \"if\": \"lang=sv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swedishhyphenmins\",\n      \"if\": \"lang=sv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesymd\",\n      \"if\": \"lang=sv\"\n    },\n    {\n      \"name\": \"datesdmy\",\n      \"if\": \"lang=sv\"\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"lang=sv\"\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"lang=de\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"lang=de\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:email%URL}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"regarding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regarding{${1:topic%text}}\"\n      }\n    },\n    {\n      \"name\": \"license\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"license{${1:license name%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"comment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment*{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"note*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note*{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"com\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"com{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"com*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"com*{${1:comment%todo}}\"\n      }\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"viz\"\n    },\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"colortheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colortheme{${1:theme%keyvals}}\",\n        \"keys\": [\n          \"\\\\colortheme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"onecol\",\n      \"if\": \"twocolumn\"\n    },\n    {\n      \"name\": \"onecol\",\n      \"if\": \"twocolumn=true\"\n    },\n    {\n      \"name\": \"figcenter\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/skrapport#c\": [\n      \"paper=${1|a4,a5|}\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"indent\",\n      \"titles=${1|rm,it,bf,sf|}\",\n      \"hanging-titles\",\n      \"color=${1|default,unscathed,cruelwater,violet,skdoc,false|}\",\n      \"ptsize=${1|10pt,11pt,12pt|}\",\n      \"font=${1|none,kpfonts,lmodern,palatino,minion,skdoc,word|}\",\n      \"nomath\",\n      \"lang=${1|en,sv,de|}\",\n      \"draft\"\n    ],\n    \"\\\\maketitle\": [\n      \"hide={${1:types}}\",\n      \"nopdfinfo\"\n    ],\n    \"\\\\colortheme\": [\n      \"default\",\n      \"unscathed\",\n      \"cruelwater\",\n      \"violet\",\n      \"skdoc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/skrapport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-slides.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theminutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theseconds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settime{${1:seconds}}\"\n      }\n    },\n    {\n      \"name\": \"addtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtime{${1:seconds}}\"\n      }\n    },\n    {\n      \"name\": \"ifourteenpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iseventeenpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itwentypt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itwentyfourpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itwentyninept\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ithirtyfourpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifortyonept\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoverlay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onlyslides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyslides{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"onlynotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlynotes{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"invisible\"\n    },\n    {\n      \"name\": \"visible\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slide\"\n    },\n    {\n      \"name\": \"overlay\"\n    },\n    {\n      \"name\": \"note\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/slides#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"clock\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/slides#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-smfart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"altkeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altkeywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"alttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"ISBN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"ISSN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISSN{${1:ISSN}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"larger\"\n    },\n    {\n      \"name\": \"larger\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"SMALL\"\n    },\n    {\n      \"name\": \"Small\"\n    },\n    {\n      \"name\": \"smaller\"\n    },\n    {\n      \"name\": \"smaller\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"specialsection\"\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Subsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Subsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"abstractfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altkeywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliosection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliosection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibliosection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibliosection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibliosection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliosection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coroname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedicatoryfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsmfabstracta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtableename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeQed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nxandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"otheraddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"skippointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfabstractafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfabstractatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfedbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfmastersthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfphdthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tochyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"translatedby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercasenonmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercasenonmath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"altabstract\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/smfart#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"reqno\",\n      \"fleqn\",\n      \"boldmath\",\n      \"french\",\n      \"francais\",\n      \"english\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"8pt\",\n      \"9pt\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"smfplain\",\n      \"smfalpha\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/smfart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-smfbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"altkeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altkeywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"alttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"ISBN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"ISSN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISSN{${1:ISSN}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"larger\"\n    },\n    {\n      \"name\": \"larger\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"SMALL\"\n    },\n    {\n      \"name\": \"Small\"\n    },\n    {\n      \"name\": \"smaller\"\n    },\n    {\n      \"name\": \"smaller\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"specialchapter\"\n    },\n    {\n      \"name\": \"specialsection\"\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Subsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsubsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Subsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Tiny\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"translator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"urladdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urladdr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"abstractfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altkeywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliochapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliochapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibliochapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibliochapter[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibliochapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliochapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bibliofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calclayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"chapterspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coroname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedicatoryfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumerate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidthdisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsmfabstracta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexchapter[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"indexmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"indexrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtableename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeQed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonbreakingspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nxandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"otheraddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionrunhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionrunhead{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"skippointrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfabstractafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfabstractatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfedbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfmastersthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smfphdthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocappendix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocappendix{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocchapter{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tochyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocparagraph{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocpart{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tocsubsubsection{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"translatedby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercasenonmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercasenonmath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xandlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xandlist{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"altabstract\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/smfbook#c\": [\n      \"a4paper\",\n      \"letterpaper\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"reqno\",\n      \"fleqn\",\n      \"boldmath\",\n      \"french\",\n      \"francais\",\n      \"english\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"8pt\",\n      \"9pt\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"smfplain\",\n      \"smfalpha\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/smfbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-sn-jnl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithmicx\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"program\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"breakurl\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"referee\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-basic\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-mathphys\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-aps\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-vancouver\"\n    },\n    {\n      \"name\": \"apacite\",\n      \"if\": \"sn-apa\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-apa\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-chicago\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"sn-standardnature\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"default\"\n    },\n    {\n      \"name\": \"vruler\",\n      \"if\": \"lineno\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"refdoi\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refdoi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citeauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citeauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthort\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthorp\",\n      \"if\": \"sn-apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteyearpar[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteyearpar\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteyearpar[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitenum[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitenum\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitenum[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitetalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitetalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitetalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitepalias[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitepalias\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitepalias[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitep\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitet\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitet[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitealt[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitealt\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitealt[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskciteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskciteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskciteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskciteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthorp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthorp\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthorp[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCiteauthort{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCiteauthort[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCiteauthort\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCiteauthort[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskcitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskcitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskCitefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"maskCitefullauthor\",\n      \"if\": \"sn-apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maskCitefullauthor[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"linenoon\",\n      \"if\": \"lineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absraggedcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abstractfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstracthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstractsubheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"addcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affil*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affil*[${2:num}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affil*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil*{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"affil[${2:num}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artcatbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Artcatfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articletype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articletype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"artnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ArtType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aucount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authbiotextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author*[${2:affil-num}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"author*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:affil-num}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Authorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"backmatterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmattertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcommenthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofigadjskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bmhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"bmheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"capbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"columnhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copytext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copytext{${1:text}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"corraucount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corrauthemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"country\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"country{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"dgr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dgr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Doublecolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Doublecoltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqnhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqnheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalcont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equalcont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"equalcontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalconttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalcontxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equalcontxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FIG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FIG{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"figcapbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FigName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurecaptionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FMremark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmremarkbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FMremarkdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnm{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"footerfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteA[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FootnoteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnoteA{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemarkA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemarkA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemarkA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"FootnotemarkA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FootnotemarkA{${1:marker}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetextA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotetextA[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextA{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetextA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotetextA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GetRoman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gloshead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headwidthskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"historyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbackmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDoublecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifequalcont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpagebody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpresentaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmkLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmkLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"jmkRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmkRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"jyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"keywordfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywordhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"labelwidthi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"larg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medsize\"\n    },\n    {\n      \"name\": \"miscnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"miscnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"motto[${2:head}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"motto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mottofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mottoraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Newlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Newlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"nomail\"\n    },\n    {\n      \"name\": \"numbered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opensquare\"\n    },\n    {\n      \"name\": \"opheaderfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opshortpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orgaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgaddress{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"orgdiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgdiv{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"orgname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgname{${1:organization%text}}\"\n      }\n    },\n    {\n      \"name\": \"pacs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pacs[${2:name%text}]{${1:codes}}\"\n      }\n    },\n    {\n      \"name\": \"pacs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pacs{${1:codes}}\"\n      }\n    },\n    {\n      \"name\": \"pacsbullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PacsCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PacsTmpCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebodyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebodytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pfx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"presentaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presentaddress{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"presentaddressfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentaddresstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentaddresstxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presentaddresstxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcopyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printcopyright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printhistory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printkeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"scrisize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setleftmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setleftmargin{${1:i|${3:ii}|${4:iii}|iv}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"sfx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecapwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidewaystablefn\"\n    },\n    {\n      \"name\": \"spfx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spfx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"StepDownCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StepDownCounter{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"StepUpCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StepUpCounter{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"StorePacsText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StorePacsText{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"street\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"street{${1:street}}\"\n      }\n    },\n    {\n      \"name\": \"subabstracthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SubTitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sur{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"tabcapbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabhtdime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablebodyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablecaptionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablecolheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablefootnotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabraggedcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tanm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tanm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TBL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TBL{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"TCH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCH{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tempdime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temptbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaffn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titraggedcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"totalwrapline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unenumargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unnumbered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrapcapline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrapfigcapbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wraplines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wraptotline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"biography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fmremark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name%text}]\"\n      }\n    },\n    {\n      \"name\": \"spiproof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spiproof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name%text}]\"\n      }\n    },\n    {\n      \"name\": \"tablenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unenumerate\"\n    },\n    {\n      \"name\": \"unenumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:widest label}]\"\n      }\n    },\n    {\n      \"name\": \"unnumfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glos\"\n    },\n    {\n      \"name\": \"glos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/sn-jnl#c\": [\n      \"a4paper\",\n      \"a3paper\",\n      \"centre\",\n      \"crop\",\n      \"nocrop\",\n      \"info\",\n      \"noinfo\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"openbib\",\n      \"pagegrid\",\n      \"iicol\",\n      \"bibcomment\",\n      \"referee\",\n      \"lineno\",\n      \"pdflatex\",\n      \"remarkboxoff\",\n      \"sn-basic\",\n      \"sn-mathphys\",\n      \"sn-aps\",\n      \"sn-vancouver\",\n      \"sn-apa\",\n      \"sn-chicago\",\n      \"sn-standardnature\",\n      \"default\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"thmstyleone\",\n      \"thmstyletwo\",\n      \"thmstylethree\",\n      \"thmstylefour\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sn-jnl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-spmj-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    },\n    {\n      \"name\": \"ams-rust\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"russianvolinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishvolinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eo{${1:original author names}}\"\n      }\n    },\n    {\n      \"name\": \"rv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rv{${1:revised author names}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"op{${1:original published location}}\"\n      }\n    },\n    {\n      \"name\": \"eb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eb{${1:editor name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/spmj-l#c\": [\n      \"altfigurecaption\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/spmj-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-sr-vorl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"chngcntr\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"onlyamsmath\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"format=autouni\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"deutsch\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"deutsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"deutsch-ar\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"if\": \"deutsch-ar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"englisch\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbritish\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"englisch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutorinTOCFormatierung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermituntertitel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chaptermituntertitel{${1:Titel%text}}{${2:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptermituntertitel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chaptermituntertitel[${3:Kurztitel%text}]{${1:Titel%text}}{${2:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"geleitwort\"\n    },\n    {\n      \"name\": \"GeleitwortTitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kapitel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kapitel{${1:Titel%text}}{${2:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"kapitel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kapitel[${3:Kurztitel%text}]{${1:Titel%text}}{${2:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"KapitelAutor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KapitelAutor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KapitelimTOC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KapitelKurztitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kapitelmituntertitel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kapitelmituntertitel{${1:Titel%text}}{${2:Untertitel%text}}{${3:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"kapitelmituntertitel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kapitelmituntertitel[${4:Kurztitel%text}]{${1:Titel%text}}{${2:Untertitel%text}}{${3:Autor}}\"\n      }\n    },\n    {\n      \"name\": \"KapitelTitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KapitelUntertitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verfasser\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"verfasser[${3:Ortbreite,Namebreite}]{${1:Ort%text}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"verfasser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"verfasser{${1:Ort%text}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"vorwort\"\n    },\n    {\n      \"name\": \"VorwortTitel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifMicrotype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Microtypetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Microtypefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMStrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMSfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifautorintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autorintoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autorintocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifGermanshorthands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Germanshorthandstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Germanshorthandsfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"widmung\"\n    },\n    {\n      \"name\": \"widmung\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Überschrift%text}]\"\n      }\n    },\n    {\n      \"name\": \"zusammenfassung\"\n    },\n    {\n      \"name\": \"zusammenfassung\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Überschrift%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/sr-vorl#c\": [\n      \"no-shorthands\",\n      \"test\",\n      \"deutsch\",\n      \"deutsch-ar\",\n      \"englisch\",\n      \"no-microtype\",\n      \"non-ams\",\n      \"autor-in-toc\",\n      \"schriftgroesse=${1:Wert}\",\n      \"format=${1|a5-monografie,handbuch-monografie,a5-mehrautorenbuch,vs,autouni|}\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"sr-frontmatter\",\n      \"sr-standard\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sr-vorl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-sslides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-slides\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oddh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oddh{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"oddf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oddf{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"evenh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evenh{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"evenf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evenf{${1:footer%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/sslides#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"clock\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/sslides#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-stage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"extramarks\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"addcharacter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcharacter{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"act\"\n    },\n    {\n      \"name\": \"dialog\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dialog{${1:character}}{${2:speech%text}}\"\n      }\n    },\n    {\n      \"name\": \"dialogue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dialogue{${1:character}}{${2:speech%text}}\"\n      }\n    },\n    {\n      \"name\": \"introduce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"introduce{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"scene\"\n    },\n    {\n      \"name\": \"charsd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charsd{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"opensd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opensd{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"open\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"open{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"stage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stage{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"actname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"castname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theactcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theendname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thescenecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paren\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paren{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"saveparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stageoldep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"castpage\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/stage#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/stage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-standalone.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-beamer\",\n      \"if\": \"beamer\"\n    },\n    {\n      \"name\": \"class-beamer\",\n      \"if\": \"beamer=true\"\n    },\n    {\n      \"name\": \"multido\",\n      \"if\": \"multido\"\n    },\n    {\n      \"name\": \"multido\",\n      \"if\": \"multido=true\"\n    },\n    {\n      \"name\": \"preview\",\n      \"if\": \"preview\"\n    },\n    {\n      \"name\": \"preview\",\n      \"if\": \"preview=true\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks=true\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz=true\"\n    },\n    {\n      \"name\": \"varwidth\",\n      \"if\": \"varwidth\"\n    },\n    {\n      \"name\": \"varwidth\",\n      \"if\": \"varwidth=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multimathsep\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidisplaymathsep\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimathsep\",\n      \"if\": \"math=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidisplaymathsep\",\n      \"if\": \"math=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standaloneconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"standaloneconfig{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"standaloneenv{${1:envname1,envname2,...}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneignore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesapage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstandalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstandalonebeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonebeamertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonebeamerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfStandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfStandalone{${1:code for standalone}}{${2:code for main document}}\"\n      }\n    },\n    {\n      \"name\": \"onlyifstandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyifstandalone{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\"\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay spec}>\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay spec}>[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay spec}>[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay spec}>[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay spec}>[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\"\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay spec}>\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay spec}>[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay spec}>[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay spec}>[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay spec}>[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multimath\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"multidisplaymath\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"multimath\",\n      \"if\": \"math=true\"\n    },\n    {\n      \"name\": \"multidisplaymath\",\n      \"if\": \"math=true\"\n    },\n    {\n      \"name\": \"standalone\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/standalone,\\\\standaloneconfig\": [\n      \"beamer\",\n      \"border=\",\n      \"border={${1:<l/r> <t/b>}}\",\n      \"border={${1:<l> <b> <r> <t>}}\",\n      \"class=${1:class name}\",\n      \"convert\",\n      \"convert={${1:conversion options}}\",\n      \"crop\",\n      \"float\",\n      \"float\",\n      \"gif\",\n      \"gif={${1:conversion options}}\",\n      \"ignoreempty\",\n      \"ignorerest\",\n      \"jpg\",\n      \"jpg={${1:conversion options}}\",\n      \"margin=\",\n      \"math\",\n      \"multi\",\n      \"multi={${1:envname1,envname2,...}}\",\n      \"multido\",\n      \"png\",\n      \"png={${1:conversion options}}\",\n      \"preview\",\n      \"pstricks\",\n      \"tikz\",\n      \"varwidth\",\n      \"varwidth=\"\n    ],\n    \"\\\\documentclass/standalone\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/standalone,\\\\standaloneconfig\",\n    \"\\\\documentclass/standalone\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-stex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"stex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/stex#c\": [\n      \"lang=${1:language}\",\n      \"mathhub=${1:directory}\",\n      \"writesms\",\n      \"usems\",\n      \"image\",\n      \"debug=${1:log-prefix}\",\n      \"checkterms\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/stex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-suftesi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"fontsize\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"emptypage\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"crop\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"cochineal\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"biolinum\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"zref-perpage\",\n      \"if\": \"fewfootnotes=true\"\n    },\n    {\n      \"name\": \"zref-perpage\",\n      \"if\": \"fewfootnotes\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"defaultfont=standard\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"defaultfont=palatino\"\n    },\n    {\n      \"name\": \"newpxmath\",\n      \"if\": \"defaultfont=palatino\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"defaultfont=libertine\"\n    },\n    {\n      \"name\": \"libertinust1math\",\n      \"if\": \"defaultfont=libertine\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"defaultfont=compatibility\"\n    },\n    {\n      \"name\": \"beramono\",\n      \"if\": \"defaultfont=compatibility\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"mathfont=extended\"\n    },\n    {\n      \"name\": \"mathalpha\",\n      \"if\": \"mathfont=extended\"\n    },\n    {\n      \"name\": \"cclicenses\",\n      \"if\": \"style=FSPLa\"\n    },\n    {\n      \"name\": \"cclicenses\",\n      \"if\": \"style=FSPLb\"\n    },\n    {\n      \"name\": \"cclicenses\",\n      \"if\": \"style=FSPLc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fAlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoAlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"mathfont=extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greekfont=artemisia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greektext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greekfont=artemisia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greekfont=porson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greektext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greekfont=porson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greekfont=bodoni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greektext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greekfont=bodoni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greekfont=cbgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greektext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greekfont=cbgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FSPLcolophon\",\n      \"if\": \"style=FSPLa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSPLcolophon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"FSPLcolophon\",\n      \"if\": \"style=FSPLb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSPLcolophon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"FSPLcolophon\",\n      \"if\": \"style=FSPLc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSPLcolophon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"partfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"chapfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"secfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subsecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"parfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subparfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"chapnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"secnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subsecnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsecnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsecnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"parnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"subparnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"breakintoc\"\n    },\n    {\n      \"name\": \"breakinbody\"\n    },\n    {\n      \"name\": \"breakinbodyleft\"\n    },\n    {\n      \"name\": \"chapterintro\"\n    },\n    {\n      \"name\": \"chapterintroname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterintroname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tocpartfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocpartfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocchapfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocparfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocpartnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocpartnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocchapnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocchapnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsecnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsecnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsecnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubsecnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubsubsecnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubsubsecnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocparnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocparnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tocsubparnumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocsubparnumfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"toclabelwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toclabelwidth{${1:level}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"tocpartname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocpartname{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"printpartialtoc\",\n      \"if\": \"printpartialtoc\"\n    },\n    {\n      \"name\": \"partialtocsecfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsecfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubsecfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocparfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubparfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocseclabelfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubseclabelfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubseclabelfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocparlabelfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocparlabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubparlabelfont\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubparlabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsize\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsize{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocbeforespace\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocbeforespace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocafterpace\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocafterpace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocbeforecode\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocbeforecode{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocaftercode\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocaftercode{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocafterspace\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocafterspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocseclabel\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubseclabel\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubseclabel\",\n      \"if\": \"printpartialtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"startchappartialtoc\",\n      \"if\": \"printpartialtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startsecpartialtoc\",\n      \"if\": \"printpartialtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpartialtoc\",\n      \"if\": \"printpartialtoc=true\"\n    },\n    {\n      \"name\": \"partialtocsecfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsecfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubsecfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubsecfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocparfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubparfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubparfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocseclabelfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubseclabelfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubseclabelfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubseclabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocparlabelfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocparlabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubparlabelfont\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubparlabelfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsize\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsize{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocbeforespace\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocbeforespace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocafterpace\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocafterpace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocbeforecode\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocbeforecode{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocaftercode\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocaftercode{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocafterspace\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocafterspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocseclabel\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubseclabel\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialtocsubsubseclabel\",\n      \"if\": \"printpartialtoc=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialtocsubsubseclabel{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"startchappartialtoc\",\n      \"if\": \"printpartialtoc=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startsecpartialtoc\",\n      \"if\": \"printpartialtoc=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xfootnote[${2:symbol}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"authorfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorfont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"datefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datefont{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"Cauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ctitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Csubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Csubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ceditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ceditor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cpagecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cpagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"Ctextcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ctextcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"Cfootcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cfootcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colophon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colophon{${1:name}}{${2:additional info%text}}\"\n      }\n    },\n    {\n      \"name\": \"colophon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colophon[${3:OS}]{${1:name}}{${2:additional info%text}}\"\n      }\n    },\n    {\n      \"name\": \"bookcolophon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bookcolophon{${1:copyright notice%text}}{${2:attribution%text}}\"\n      }\n    },\n    {\n      \"name\": \"artcolophon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artcolophon{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"finalcolophon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"finalcolophon{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectiontitlepage\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"collectiontitle\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"collectioneditor\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectioneditor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fulljournal\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"issue\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"issuename\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalname\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalnumber\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalnumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalvolume\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalvolume{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalwebsite\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalwebsite{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalyear\",\n      \"if\": \"structure=collection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalyear{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theissue\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"thejournalnumber\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"thejournalvolume\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"thearticle\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"SUFfntscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjtoclabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjtocpagesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendicesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"isbn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isbn{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"itlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lmfntscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"article\",\n      \"if\": \"structure=collection\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/suftesi#c\": [\n      \"structure=${1|book,article,collection|}\",\n      \"pagelayout=${1|standard,standardaureo,periodical,periodicalaureo,compact,compactaureo,supercompact,supercompactaureo,pocketa,pocketb,pocketc|}\",\n      \"version=${1|screen,cscreen,draft,final|}\",\n      \"parindent=\",\n      \"defaultfont=${1|none,cochineal,libertine,palatino,standard|}\",\n      \"fontsize=\",\n      \"smallcapsstyle=${1|low,upper|}\",\n      \"mathfont=${1|none,minimal,extended|}\",\n      \"greekfont=${1|none,artemisia,porson,bodoni,cbgreek|}\",\n      \"partfont=${1|roman,italic,smallcaps|}\",\n      \"chapfont=${1|roman,italic,smallcaps|}\",\n      \"secfont=${1|roman,italic,smallcaps|}\",\n      \"subsecfont=${1|roman,italic,smallcaps|}\",\n      \"subsubsecfont=${1|roman,italic,smallcaps|}\",\n      \"parfont=${1|roman,italic,smallcaps|}\",\n      \"subparfont=${1|roman,italic,smallcaps|}\",\n      \"partstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"chapstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"secstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"subsecstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"subsubsecstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"parstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"subparstyle=${1|left,center,right,parleft,parcenter,parright|}\",\n      \"partnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"chapnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"secnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"subsecnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"subsubsecnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"parnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"subparnumstyle=${1|arabic,roman,Roman,dotarabic,dotroman,dotRoman|}\",\n      \"partpage\",\n      \"tocstyle=${1|standard,dotted,ragged,leftpage|}\",\n      \"compacttoc=${1|sec,subsec,subsubsec,par,subpar|}\",\n      \"tocpartfont=${1|roman,italic,smallcaps|}\",\n      \"tocchapfont=${1|roman,italic,smallcaps|}\",\n      \"tocsecfont=${1|roman,italic,smallcaps|}\",\n      \"tocsubsecfont=${1|roman,italic,smallcaps|}\",\n      \"tocsubsubsecfont=${1|roman,italic,smallcaps|}\",\n      \"tocparfont=${1|roman,italic,smallcaps|}\",\n      \"tocsubparfont=${1|roman,italic,smallcaps|}\",\n      \"twocolcontents=${1|toc,lof,lot,toclof,toclot,loflot,all|}\",\n      \"partialtoc\",\n      \"headerstyle=${1|inner,center,plain,authortitleinner,authortitlecenter|}\",\n      \"headerfont=${1|roman,italic,smallcaps|}\",\n      \"draftdate\",\n      \"footnotestyle=${1|bulged,hung,dotted,superscript|}\",\n      \"fewfootnotes\",\n      \"marginpar\",\n      \"captionstyle=${1|standard,sanserif,italic,smallcaps|}\",\n      \"liststyle=${1|bulged,aligned,indented|}\",\n      \"quotestyle=${1|center,right,justify|}\",\n      \"quotesize=${1|tiny,tinyr,tinyrr,tinyrrr,scriptsizer,scriptsizerr,scriptsizerrr,footnotesizer,footnotesizerr,footnotesizerrr,smallr,smallrr,smallrrr,normalsizer,normalsizerr,normalsizerrr,larger,largerr,largerrr,Larger,Largerr,Largerrr,LARGEr,LARGErr,LARGErrr,huger,hugerr,hugerrr,Huger,Hugerr,Hugerrr,HUGE,HUGEr,HUGErr,HUGErrr|}\",\n      \"style=${1|roman1,roman2,roman3,roman4,roman5,roman6italic1,italic2,italic3,italic4,italic5,italic6,italic7,italic8,italic9,italic10,italic11,italic12,smallcaps1,smallcaps2,smallcaps3,smallcaps4,smallcaps5,smallcaps6,smallcaps7,smallcaps8,smallcaps9,smallcaps10,smallcaps11,smallcaps12|}\",\n      \"maketitlestyle=${1|suftesi,standard|}\",\n      \"reverseauthortitle\",\n      \"titlefont=${1|roman,italic,smallcaps|}\",\n      \"authorfont=${1|roman,italic,smallcaps|}\",\n      \"datefont=${1|roman,italic,smallcaps|}\",\n      \"authortitlealign=${1|left,center,right|}\",\n      \"toctitlefont=${1|roman,italic,smallcaps|}\",\n      \"tocauthorfont=${1|roman,italic,smallcaps|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/suftesi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-surv-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsbook\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/surv-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"openright\",\n      \"openany\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/surv-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-svmono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"framed\",\n      \"if\": \"graybox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstract*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ackname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addcontentsmarkwop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmarkwop{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addnumcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addnumcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"aftertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allmodesymb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allmodesymb{${1:cmd}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorrunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorrunning{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"authrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bbbc\"\n    },\n    {\n      \"name\": \"bbbf\"\n    },\n    {\n      \"name\": \"bbbh\"\n    },\n    {\n      \"name\": \"bbbk\"\n    },\n    {\n      \"name\": \"bbbm\"\n    },\n    {\n      \"name\": \"bbbn\"\n    },\n    {\n      \"name\": \"bbbone\"\n    },\n    {\n      \"name\": \"bbbp\"\n    },\n    {\n      \"name\": \"bbbq\"\n    },\n    {\n      \"name\": \"bbbr\"\n    },\n    {\n      \"name\": \"bbbs\"\n    },\n    {\n      \"name\": \"bbbt\"\n    },\n    {\n      \"name\": \"bbbz\"\n    },\n    {\n      \"name\": \"betweenumberspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblstarthook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblstarthook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"calctocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chapauthsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapauthstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circledmark[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"circledmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"claimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassInfoNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassInfoNoLine{${1:class name}}{${2:info text}}\"\n      }\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearheadinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjecturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contriblistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customizhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"describelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"describelabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"eul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrachap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrachap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Extrachap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Extrachap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"figcapgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcounterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatlegendstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnmsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreword\"\n    },\n    {\n      \"name\": \"foreword\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"foreword[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"forewordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formtmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"formtmp{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"getsto\"\n    },\n    {\n      \"name\": \"gid\"\n    },\n    {\n      \"name\": \"greeksym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeksym{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"greeksymbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeksymbold{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"grole\"\n    },\n    {\n      \"name\": \"guidelinedefn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guidemaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guidetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guidetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"guidetitle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guidetitle*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"guisection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guisection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"guisubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guisubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"headlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"iand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexstarthook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexstarthook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"instindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institutename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"LArge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftfigure\"\n    },\n    {\n      \"name\": \"leftfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leftfigure[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"leftlegendglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lid\"\n    },\n    {\n      \"name\": \"mailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"makereferee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketimestamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"motto[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"motto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mottosize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mottostyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mottowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpicplace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mpicplace{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"nand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nixchapnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocaption\"\n    },\n    {\n      \"name\": \"normalthmheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteaddname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"preface\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"preface[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"probref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"processchapauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processchapsubtit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processmotto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propertyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetsubfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversethmheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightfigure\"\n    },\n    {\n      \"name\": \"rightfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightfigure[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"runheadsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runinhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runinhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"runinsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samenumber\"\n    },\n    {\n      \"name\": \"seccounterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seccountergap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setitemindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setitemindent{${1:largelabel}}\"\n      }\n    },\n    {\n      \"name\": \"setitemitemindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setitemitemindent{${1:largelabel}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\"\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sidecaption[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"smartqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spdefaulttheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spdefaulttheorem{${1:envname}}{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spnewtheorem*{${1:envname}}{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}[${5:numbered like}]{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}{${2:caption}}[${5:within}]{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"SpringerMacroPackageNameA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spthmsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmtopen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmtopen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigures\"\n    },\n    {\n      \"name\": \"subruninhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subruninhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsecsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubruninhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubruninhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"svhline\"\n    },\n    {\n      \"name\": \"svitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svlanginfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabcapgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tens{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"theauco\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecontribution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themerk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminitocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisbottomragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolindex\"\n    },\n    {\n      \"name\": \"timstamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"title*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerunning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"tocchpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparatotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toctitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocaptionwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twocaptionwidth{${1:width1%l}}{${2:width2%l}}\"\n      }\n    },\n    {\n      \"name\": \"ualpha\"\n    },\n    {\n      \"name\": \"ubeta\"\n    },\n    {\n      \"name\": \"uchi\"\n    },\n    {\n      \"name\": \"udelta\"\n    },\n    {\n      \"name\": \"ugamma\"\n    },\n    {\n      \"name\": \"umu\"\n    },\n    {\n      \"name\": \"unu\"\n    },\n    {\n      \"name\": \"upi\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"utau\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"verbatimindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"label{${1:label}}[${2:type}]\"\n      }\n    },\n    {\n      \"name\": \"thref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tinted\",\n      \"if\": \"graybox\"\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"backgroundinformation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:largelabel}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"important\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"legaltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"newshaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"noteadd\"\n    },\n    {\n      \"name\": \"overview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"partbacktext\"\n    },\n    {\n      \"name\": \"petit\"\n    },\n    {\n      \"name\": \"prob\"\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"programcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"refguide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"sol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"svgraybox\"\n    },\n    {\n      \"name\": \"svtintedbox\"\n    },\n    {\n      \"name\": \"thecontriblist\"\n    },\n    {\n      \"name\": \"theopargself\"\n    },\n    {\n      \"name\": \"theopargself*\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"tips\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"trailer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/svmono#c\": [\n      \"natbib\",\n      \"nospthms\",\n      \"envcountresetchap\",\n      \"envcountresetsect\",\n      \"envcountsame\",\n      \"envcountchap\",\n      \"envcountsect\",\n      \"numart\",\n      \"nosecnum\",\n      \"nochapnum\",\n      \"nonum\",\n      \"vecphys\",\n      \"vecarrow\",\n      \"norunningheads\",\n      \"referee\",\n      \"openbib\",\n      \"oribibl\",\n      \"sectrefs\",\n      \"footinfo\",\n      \"openany\",\n      \"fleqn\",\n      \"nosechang\",\n      \"graybox\",\n      \"deutsch\",\n      \"francais\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/svmono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-svmult.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"framed\",\n      \"if\": \"graybox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abbrsymbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abstract*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ackname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addcontentsmarkwop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addcontentsmarkwop{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addnumcontentsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addnumcontentsmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtocmark{${1:file}}{${2:type}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"aftertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allmodesymb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allmodesymb{${1:cmd}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authcount{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"authorrunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorrunning{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"authrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bbbc\"\n    },\n    {\n      \"name\": \"bbbf\"\n    },\n    {\n      \"name\": \"bbbh\"\n    },\n    {\n      \"name\": \"bbbk\"\n    },\n    {\n      \"name\": \"bbbm\"\n    },\n    {\n      \"name\": \"bbbn\"\n    },\n    {\n      \"name\": \"bbbone\"\n    },\n    {\n      \"name\": \"bbbp\"\n    },\n    {\n      \"name\": \"bbbq\"\n    },\n    {\n      \"name\": \"bbbr\"\n    },\n    {\n      \"name\": \"bbbs\"\n    },\n    {\n      \"name\": \"bbbt\"\n    },\n    {\n      \"name\": \"bbbz\"\n    },\n    {\n      \"name\": \"betweenumberspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblstarthook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblstarthook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bppendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calctocindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"chapauthsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapauthstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circledmark[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"circledmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"claimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassInfoNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassInfoNoLine{${1:class name}}{${2:info text}}\"\n      }\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearheadinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjecturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contriblistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contributors\"\n    },\n    {\n      \"name\": \"contributors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"contributors[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customizhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"describelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"describelabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dominitoc\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"eul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrachap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrachap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Extrachap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Extrachap{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"figcapgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcounterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatlegendstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnmsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreword\"\n    },\n    {\n      \"name\": \"foreword\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"foreword[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"forewordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formtmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"formtmp{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"getsto\"\n    },\n    {\n      \"name\": \"gid\"\n    },\n    {\n      \"name\": \"greeksym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeksym{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"greeksymbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeksymbold{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"grole\"\n    },\n    {\n      \"name\": \"guisection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guisection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"guisubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guisubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"headlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperhrefextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"iand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexstarthook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexstarthook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"instindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institutename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"LArge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftfigure\"\n    },\n    {\n      \"name\": \"leftfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leftfigure[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"leftlegendglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lid\"\n    },\n    {\n      \"name\": \"mailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"makereferee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketimestamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"motto[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"motto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mottosize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mottostyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mottowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpicplace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mpicplace{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"mtaddtocont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtaddtocont{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nixchapnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocaption\"\n    },\n    {\n      \"name\": \"normalthmheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteaddname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"preface\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"preface[${1:title}]\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"probref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"processchapauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processchapsubtit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processmotto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propertyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetsubfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversethmheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightfigure\"\n    },\n    {\n      \"name\": \"rightfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightfigure[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"runheadsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runheadstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runinhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runinhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"runinsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samenumber\"\n    },\n    {\n      \"name\": \"seccounterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seccountergap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setitemindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setitemindent{${1:largelabel}}\"\n      }\n    },\n    {\n      \"name\": \"setitemitemindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setitemitemindent{${1:largelabel}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\"\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sidecaption[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"smartqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spdefaulttheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spdefaulttheorem{${1:envname}}{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spnewtheorem*{${1:envname}}{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}[${5:numbered like}]{${2:caption}}{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"spnewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"spnewtheorem{${1:envname}}{${2:caption}}[${5:within}]{${3:capfont}}{${4:bodyfont}}\"\n      }\n    },\n    {\n      \"name\": \"SpringerMacroPackageNameA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spthmsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmtopen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmtopen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigures\"\n    },\n    {\n      \"name\": \"subruninhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subruninhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsecsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsecstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubruninhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubruninhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsecstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"svhline\"\n    },\n    {\n      \"name\": \"svitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svlanginfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabcapgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tens{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"theauco\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechapterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecontribution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themerk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theminitocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisbottomragged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threecolindex\"\n    },\n    {\n      \"name\": \"timstamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"title*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerunning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerunning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocaftauthskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"tocauthorstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocchpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocparatotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubparanum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocsubsubsectotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toctitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"toctitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocaptionwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twocaptionwidth{${1:width1%l}}{${2:width2%l}}\"\n      }\n    },\n    {\n      \"name\": \"ualpha\"\n    },\n    {\n      \"name\": \"ubeta\"\n    },\n    {\n      \"name\": \"uchi\"\n    },\n    {\n      \"name\": \"udelta\"\n    },\n    {\n      \"name\": \"ugamma\"\n    },\n    {\n      \"name\": \"umu\"\n    },\n    {\n      \"name\": \"unu\"\n    },\n    {\n      \"name\": \"upi\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"utau\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"verbatimindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"label{${1:label}}[${2:type}]\"\n      }\n    },\n    {\n      \"name\": \"thref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tinted\",\n      \"if\": \"graybox\"\n    },\n    {\n      \"name\": \"abbrsymblist\"\n    },\n    {\n      \"name\": \"abbrsymblist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:largelabel}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"backgroundinformation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:largelabel}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"important\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"legaltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"newshaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"noteadd\"\n    },\n    {\n      \"name\": \"overview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"partbacktext\"\n    },\n    {\n      \"name\": \"petit\"\n    },\n    {\n      \"name\": \"prob\"\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"programcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"refguide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"sol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"svgraybox\"\n    },\n    {\n      \"name\": \"svtintedbox\"\n    },\n    {\n      \"name\": \"thecontriblist\"\n    },\n    {\n      \"name\": \"theopargself\"\n    },\n    {\n      \"name\": \"theopargself*\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"tips\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"trailer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/svmult#c\": [\n      \"natbib\",\n      \"nospthms\",\n      \"envcountresetchap\",\n      \"envcountresetsect\",\n      \"envcountsame\",\n      \"envcountchap\",\n      \"envcountsect\",\n      \"nosecnum\",\n      \"vecphys\",\n      \"vecarrow\",\n      \"norunningheads\",\n      \"referee\",\n      \"openbib\",\n      \"oribibl\",\n      \"chaprefs\",\n      \"footinfo\",\n      \"openany\",\n      \"fleqn\",\n      \"nosechang\",\n      \"graybox\",\n      \"deutsch\",\n      \"francais\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/svmult#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-talk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short author}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"slidesmag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slidesmag{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"slidestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slidestyle{${1:style%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"fromslide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fromslide{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"fromslide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fromslide*{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"toslide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toslide{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"toslide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toslide*{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"onlyslide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onlyslide{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"onlyslide*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onlyslide*{${1:slide number}}{${2:material%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:<fromsec>.<${2:fromsubsec}>-<${3:tosec}>.<${4:tosubsec}>}]\"\n      }\n    },\n    {\n      \"name\": \"slidewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slideheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslidelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slidesadjust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slidesadjust{${1:hadjust}}{${2:vadjust}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:style%keyvals}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"notes\"\n    },\n    {\n      \"name\": \"multislide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:sub-slides}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"multislide\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:style%keyvals}]{${1:sub-slides}}{${2:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/talk#c\": [\n      \"notes\",\n      \"slides\",\n      \"screen\",\n      \"rotate\",\n      \"norotate\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/talk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-thesis-ekf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fixcmex\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks\"\n    },\n    {\n      \"name\": \"cmupint\",\n      \"if\": \"upint\"\n    },\n    {\n      \"name\": \"cmupint\",\n      \"if\": \"upint=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"authorcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"collaborator\"\n    },\n    {\n      \"name\": \"collaborator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"collaborator[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:kép vagy szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"supervisorcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisorcaption{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/thesis-ekf#c\": [\n      \"twoside\",\n      \"colorlinks\",\n      \"times\",\n      \"upint\",\n      \"logodown\",\n      \"tocnopagenum\",\n      \"reverseorder\",\n      \"centeredchapter\",\n      \"warning\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"fontsize=\",\n      \"institutesep=\",\n      \"logosep=\",\n      \"titlesep=\",\n      \"authorsep=\",\n      \"hminsep=\",\n      \"authorxmargin=\",\n      \"captionsep=\",\n      \"collcaptionsep=\",\n      \"authoralign=${1|left,center,right|}\",\n      \"supervisoralign=${1|left,center,right|}\",\n      \"institutefont=${1:font commands}\",\n      \"logofont=${1:font commands}\",\n      \"titlefont=${1:font commands}\",\n      \"authorfont=${1:font commands}\",\n      \"captionfont=${1:font commands}\",\n      \"cityfont=${1:font commands}\",\n      \"datefont=${1:font commands}\",\n      \"datesep=${1:separator}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/thesis-ekf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-thuthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"notoccite\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"bibunits\",\n      \"if\": \"degree=bachelor\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"math-font=newtx\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"math-font=newtx\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"font=newtx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\thusetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"copyrightpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"copyrightpage[${1:file=PDF file}]\"\n      }\n    },\n    {\n      \"name\": \"listoffigures*\"\n    },\n    {\n      \"name\": \"listoftables*\"\n    },\n    {\n      \"name\": \"listofequations\"\n    },\n    {\n      \"name\": \"listofequations*\"\n    },\n    {\n      \"name\": \"listofalgorithms*\"\n    },\n    {\n      \"name\": \"equcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"statement\"\n    },\n    {\n      \"name\": \"statement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"statement[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\statement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"record\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"record{${1:file=PDF file}}\"\n      }\n    },\n    {\n      \"name\": \"spine\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"CJKmove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKmovesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKmovesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"CJKpunctsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKpunctsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listequationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoffiguresandtables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thuthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"version\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"committee\"\n    },\n    {\n      \"name\": \"committee\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{committee}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract*\"\n    },\n    {\n      \"name\": \"denotation\"\n    },\n    {\n      \"name\": \"denotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"survey\"\n    },\n    {\n      \"name\": \"translation\"\n    },\n    {\n      \"name\": \"resume\"\n    },\n    {\n      \"name\": \"achievements\"\n    },\n    {\n      \"name\": \"comments\"\n    },\n    {\n      \"name\": \"comments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${2:name={${1:name}}}]\"\n      }\n    },\n    {\n      \"name\": \"resolution\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/thuthesis#c\": [\n      \"degree=${1|bachelor,master,doctor,postdoc|}\",\n      \"degree-type=${1|academic,professional|}\",\n      \"fontset=${1|auto,windows,mac,ubuntu,fandol,none|}\",\n      \"openright\",\n      \"openany\",\n      \"raggedbottom\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ],\n    \"\\\\thusetup\": [\n      \"thesis-type=${1|thesis,proposal|}\",\n      \"title={${1:论文中文题目}}\",\n      \"title*={${1:English thesis title}}\",\n      \"degree-category={${1:您要申请什么学位}}\",\n      \"degree-category*={${1:English degree name}}\",\n      \"department={${1:系名全称}}\",\n      \"discipline={${1:学科名称}}\",\n      \"discipline*={${1:English discipline name}}\",\n      \"professional-field={${1:专业领域}}\",\n      \"professional-field*={${1:English field name}}\",\n      \"author={${1:中文姓名}}\",\n      \"author*={${1:name in Pinyin}}\",\n      \"student-id={${1:id number}}\",\n      \"supervisor={${1:导师姓名, 教授}}\",\n      \"supervisor*={${1:Professor Supervisor Name}}\",\n      \"associate-supervisor={${1:副导师姓名, 副教授}}\",\n      \"associate-supervisor*={${1:Professor Assoc-Supervisor Name}}\",\n      \"co-supervisor={${1:联合导师姓名, 教授}}\",\n      \"co-supervisor*={${1:Professor Co-Supervisor Name}}\",\n      \"date={${1:YYYY-MM-DD}}\",\n      \"secret-year=${1:number}\",\n      \"secret-level={${1:秘密}}\",\n      \"clc={${1:分类号}}\",\n      \"udc={${1:udc}}\",\n      \"id={${1:id}}\",\n      \"discipline-level-1={${1:流动站（一级学科）名称}}\",\n      \"discipline-level-2={${1:专业（二级学科）名称}}\",\n      \"start-date={${1:YYYY-MM-DD}}\",\n      \"end-date={${1:YYYY-MM-DD}}\",\n      \"keywords={${1:关键词 1, 关键词 2}}\",\n      \"keywords*={${1:keyword1,keyword2,...}}\",\n      \"toc-chapter-style=${1|arial,times|}\",\n      \"figure-number-separator={${1:separator}}\",\n      \"table-number-separator={${1:separator}}\",\n      \"equation-number-separator={${1:separator}}\",\n      \"number-separator={${1:separator}}\",\n      \"math-style=${1|GB,ISO,TeX|}\",\n      \"uppercase-greek=${1|italic,upright|}\",\n      \"less-than-or-equal=${1|slanted,horizontal|}\",\n      \"integral=${1|upright,slanted|}\",\n      \"integral-limits\",\n      \"partial=${1|upright,italic|}\",\n      \"math-ellipsis=${1|centered,lower,AMS|}\",\n      \"real-part=${1|roman,fraktur|}\",\n      \"math-font=${1|auto,stix,xits,libertinus,newcm,lm,newtx,none|}\",\n      \"eqn-paren-style=${1|full,half|}\",\n      \"cite-style=${1|super,inline,author-year|}\",\n      \"toc-depth=${1:integer}\",\n      \"spine-font={${1:font commands}}\",\n      \"spine-title={${1:书脊的标题}}\",\n      \"spine-author={${1:书脊的作者姓名}}\",\n      \"include-spine\",\n      \"appendix-figure-in-lof\",\n      \"main-language=${1|chinese,english|}\",\n      \"language=${1|chinese,english|}\",\n      \"system=${1|auto,mac,unix,windows|}\",\n      \"font=${1|auto,times,termes,stix,xits,libertinus,newcm,lm,newtx,none|}\",\n      \"cjk-font=${1|auto,windows,windows-local,mac,mac-word,noto,fandol,none|}\",\n      \"windows-font-dir=${1:path}\",\n      \"output=${1|print,electronic|}\",\n      \"statement-page-style=${1|auto,empty,plain|}\"\n    ],\n    \"\\\\begin{committee}\": [\n      \"name={${1:学位论文公开评阅人和答辩委员会名单}}\",\n      \"file=${1:file path}\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"thuthesis-numeric\",\n      \"thuthesis-author-year\",\n      \"thuthesis-bachelor\"\n    ],\n    \"\\\\statement\": [\n      \"page-style=${1|auto,empty,plain|}\",\n      \"file=${1:PDF file}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/thuthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tikz-kalender.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"tgheros\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalendar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeKalender\"\n    },\n    {\n      \"name\": \"period\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"period{${1:date1}}{${2:date2}}\"\n      },\n      \"detail\": \".\",\n      \"doc\": \"Full stop, period\"\n    },\n    {\n      \"name\": \"period\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"period{${1:date1}}{${2:date2}}[${3:options}]\"\n      },\n      \"detail\": \".\",\n      \"doc\": \"Full stop, period\"\n    },\n    {\n      \"name\": \"event\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"event{${1:date}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"event\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"event{${1:date}}{${2:text}}[${3:options}]\"\n      }\n    },\n    {\n      \"name\": \"theweeknumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setup#c\": [\n      \"lang={${1:babel options}}\",\n      \"paper=${1|a0,a1,a2,a3,a4,a5,a6,b0,b1,b2,b3,b4,b5,b6,c0,c1,c2,c3,c4,c5,c6,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansia,ansib,ansic,ansid,ansie,letter,executive,legal|}\",\n      \"showweeknumbers\",\n      \"print\",\n      \"events={${1:.events files}}\",\n      \"titleFont=${1:font commands}\",\n      \"yearFont=${1:font commands}\",\n      \"monthFont=${1:font commands}\",\n      \"dayFont=${1:font commands}\",\n      \"dayNbFont=${1:font commands}\",\n      \"weekNbFont=${1:font commands}\",\n      \"eventFont=${1:font commands}\",\n      \"title=${1:text}\",\n      \"year=${1:year}\",\n      \"yearText=${1:text}\",\n      \"titleColor=\",\n      \"eventColor=\",\n      \"periodColor=\",\n      \"monthBGcolor=\",\n      \"monthColor=\",\n      \"workdayColor=\",\n      \"saturdayColor=\",\n      \"sundayColor=\",\n      \"xcoloroptions={${1:xcolor options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-tikzposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ae\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"class-extarticle\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlelinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleroundedcorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titletotopverticalspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphicheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleposleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleposright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepostop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleposbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blocktitleinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockbodyinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifBlockHasTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlockHasTitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlockHasTitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockroundedcorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blocklinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerblocktitleinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerblockbodyinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifInnerblockHasTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InnerblockHasTitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InnerblockHasTitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerblockroundedcorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerblocklinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteinnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNoteHasConnection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoteHasConnectiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoteHasConnectionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noterotate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteroundedcorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notelinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definebackgroundstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definebackgroundstyle{${1:name%specialDef}}{${2:background commands}}\"\n      }\n    },\n    {\n      \"name\": \"usebackgroundstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebackgroundstyle{${1:background style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usebackgroundstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definetitlestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definetitlestyle{${1:name%specialDef}}{${2:options%keyvals}}{${3:title commands}}\",\n        \"keys\": [\n          \"\\\\definetitlestyle,\\\\maketitle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usetitlestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetitlestyle{${1:title style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetitlestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetitlestyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usetitlestyle[${2:options}]{${1:title style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetitlestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\definetitlestyle,\\\\maketitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphic commands}}\"\n      }\n    },\n    {\n      \"name\": \"settitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitle{${1:title code}}\"\n      }\n    },\n    {\n      \"name\": \"defineblockstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineblockstyle{${1:name%specialDef}}{${2:options%keyvals}}{${3:commands}}\",\n        \"keys\": [\n          \"\\\\defineblockstyle,\\\\block\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"useblockstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useblockstyle{${1:block style%keyvals}}\",\n        \"keys\": [\n          \"\\\\useblockstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useblockstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useblockstyle[${2:options}]{${1:block style%keyvals}}\",\n        \"keys\": [\n          \"\\\\useblockstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"block{${1:title}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"block[${3:options%keyvals}]{${1:title}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\defineblockstyle,\\\\block\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defineinnerblockstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineinnerblockstyle{${1:name%specialDef}}{${2:options%keyvals}}{${3:commands}}\",\n        \"keys\": [\n          \"\\\\defineinnerblockstyle,\\\\innerblock\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"useinnerblockstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useinnerblockstyle{${1:innerblock style%keyvals}}\",\n        \"keys\": [\n          \"\\\\useinnerblockstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useinnerblockstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useinnerblockstyle[${2:options}]{${1:innerblock style%keyvals}}\",\n        \"keys\": [\n          \"\\\\useinnerblockstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"innerblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerblock{${1:heading%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"innerblock\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"innerblock[${3:options%keyvals}]{${1:heading%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\defineinnerblockstyle,\\\\innerblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coloredbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coloredbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"coloredbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coloredbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\coloredbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definenotestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definenotestyle{${1:name%specialDef}}{${2:options%keyvals}}{${3:commands}}\",\n        \"keys\": [\n          \"\\\\definenotestyle,\\\\note\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usenotestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usenotestyle{${1:note style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usenotestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usenotestyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usenotestyle[${2:options}]{${1:note style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usenotestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\definenotestyle,\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definecolorpalette\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definecolorpalette{${1:name%specialDef}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"usecolorpalette\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolorpalette{${1:color palette%keyvals}}\",\n        \"keys\": [\n          \"\\\\usecolorpalette#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definecolorstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolorstyle{${1:name%specialDef}}{${2:default palette}}{${3:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"usecolorstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolorstyle{${1:color style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usecolorstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usecolorstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usecolorstyle[${2:options}]{${1:color style%keyvals}}\",\n        \"keys\": [\n          \"\\\\usecolorstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definelayouttheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definelayouttheme{${1:name%specialDef}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"usetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetheme{${1:theme%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetheme#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"column{${1:relative width}}\"\n      }\n    },\n    {\n      \"name\": \"subcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcolumn{${1:relative width}}\"\n      }\n    },\n    {\n      \"name\": \"tikzposterlatexaffectionproofon\"\n    },\n    {\n      \"name\": \"tikzposterlatexaffectionproofoff\"\n    },\n    {\n      \"name\": \"thefigurecounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"columns\"\n    },\n    {\n      \"name\": \"subcolumns\"\n    },\n    {\n      \"name\": \"tikzfigure\"\n    },\n    {\n      \"name\": \"tikzfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:caption%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tikzposter#c\": [\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"fleqn\",\n      \"leqno\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"landscape\",\n      \"portrait\",\n      \"margin=\",\n      \"innermargin=\",\n      \"colspace=\",\n      \"subcolspace=\",\n      \"blockverticalspace=\"\n    ],\n    \"\\\\definetitlestyle,\\\\maketitle\": [\n      \"width=\",\n      \"roundedcorners=${1:number}\",\n      \"linewidth=\",\n      \"innersep=\",\n      \"titletotopverticalspace=\",\n      \"titletoblockverticalspace=\",\n      \"titlegraphictotitledistance=\",\n      \"titletextscale=${1:factor}\"\n    ],\n    \"\\\\defineblockstyle,\\\\block\": [\n      \"titleoffsetx=\",\n      \"titleoffsety=\",\n      \"bodyoffsetx=\",\n      \"bodyoffsety=\",\n      \"titlewidthscale=${1:factor}\",\n      \"bodywidthscale=${1:factor}\",\n      \"titleleft\",\n      \"titlecenter\",\n      \"titleright\",\n      \"bodyverticalshift=\",\n      \"roundedcorners=${1:number}\",\n      \"linewidth=\",\n      \"titleinnersep=\",\n      \"bodyinnersep=\"\n    ],\n    \"\\\\defineinnerblockstyle,\\\\innerblock\": [\n      \"titlewidth=\",\n      \"bodywidth=\",\n      \"titlewidthscale=${1:factor}\",\n      \"bodywidthscale=${1:factor}\",\n      \"titleleft\",\n      \"titlecenter\",\n      \"titleright\",\n      \"titleoffsetx=\",\n      \"titleoffsety=\",\n      \"bodyoffsetx=\",\n      \"bodyoffsety=\",\n      \"roundedcorners=${1:number}\",\n      \"linewidth=\",\n      \"titleinnersep=\",\n      \"bodyinnersep=\"\n    ],\n    \"\\\\coloredbox\": [\n      \"width=\",\n      \"linewidth=\",\n      \"roundedcorners=${1:number}\",\n      \"bgcolor=\",\n      \"fgcolor=\",\n      \"framecolor=\"\n    ],\n    \"\\\\definenotestyle,\\\\note\": [\n      \"targetoffsetx=\",\n      \"targetoffsety=\",\n      \"angle=${1:degrees}\",\n      \"radius=\",\n      \"width=\",\n      \"connection\",\n      \"rotate=${1:degrees}\",\n      \"roundedcorners=${1:number}\",\n      \"linewidth=\",\n      \"innersep=\"\n    ],\n    \"\\\\usecolorpalette#c\": [\n      \"Default\",\n      \"BlueGrayOrange\",\n      \"GreenGrayViolet\",\n      \"PurpleGrayBlue\",\n      \"BrownBlueOrange\",\n      \"%tikzpostercolorpalette\"\n    ],\n    \"\\\\usecolorstyle#c\": [\n      \"Default\",\n      \"Australia\",\n      \"Britain\",\n      \"Sweden\",\n      \"Spain\",\n      \"Russia\",\n      \"Denmark\",\n      \"Germany\",\n      \"%tikzpostercolorstyle\"\n    ],\n    \"\\\\usebackgroundstyle#c\": [\n      \"Default\",\n      \"Rays\",\n      \"VerticalGradation\",\n      \"BottomVerticalGradation\",\n      \"Empty\",\n      \"%tikzposterbackgroundstyle\"\n    ],\n    \"\\\\usetitlestyle#c\": [\n      \"Default\",\n      \"Basic\",\n      \"Envelope\",\n      \"Wave\",\n      \"VerticalShading\",\n      \"Filled\",\n      \"Empty\",\n      \"%tikzpostertitlestyle\"\n    ],\n    \"\\\\useblockstyle#c\": [\n      \"Default\",\n      \"Basic\",\n      \"Minimal\",\n      \"Envelope\",\n      \"Corner\",\n      \"Slide\",\n      \"TornOut\",\n      \"%tikzposterblockstyle\"\n    ],\n    \"\\\\useinnerblockstyle#c\": [\n      \"Default\",\n      \"Table\",\n      \"Basic\",\n      \"Minimal\",\n      \"Envelope\",\n      \"Corner\",\n      \"Slide\",\n      \"TornOut\",\n      \"%tikzposterinnerblockstyle\"\n    ],\n    \"\\\\usenotestyle#c\": [\n      \"Default\",\n      \"Corner\",\n      \"VerticalShading\",\n      \"Sticky\",\n      \"%tikzposternotestyle\"\n    ],\n    \"\\\\usetheme#c\": [\n      \"Default\",\n      \"Rays\",\n      \"Basic\",\n      \"Simple\",\n      \"Envelope\",\n      \"Wave\",\n      \"Board\",\n      \"Autumn\",\n      \"Desert\",\n      \"%tikzpostertheme\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tikzposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tkz-doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.shapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"cellspace\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ActivBoxName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BS\"\n    },\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cn{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"defoffile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defoffile{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"fn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fn{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Iaccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Iaccent{${1:csname}}{${2:accents}}\"\n      }\n    },\n    {\n      \"name\": \"Iarg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Iarg{${1:csname}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"IargEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IargEnv{${1:envname}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"IargName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IargName{${1:csname}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"IargNameEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IargNameEnv{${1:envname}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"Ienv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ienv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"Ilib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ilib{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"Imacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Imacro{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"Iopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Iopt{${1:csname}}{${2:opts}}\"\n      }\n    },\n    {\n      \"name\": \"IoptEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IoptEnv{${1:envname}}{${2:opts}}\"\n      }\n    },\n    {\n      \"name\": \"IoptName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IoptName{${1:csname}}{${2:opts}}\"\n      }\n    },\n    {\n      \"name\": \"IoptNameEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IoptNameEnv{${1:envname}}{${2:opts}}\"\n      }\n    },\n    {\n      \"name\": \"Istyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Istyle{${1:csname}}{${2:styles}}\"\n      }\n    },\n    {\n      \"name\": \"IstyleEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IstyleEnv{${1:csname}}{${2:styles}}\"\n      }\n    },\n    {\n      \"name\": \"LATEX\"\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NameDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameDist{${1:distribution}}\"\n      }\n    },\n    {\n      \"name\": \"NameFonct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameFonct{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"NameLib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameLib{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"nameoffile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameoffile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"NamePack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NamePack{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"NameSys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NameSys{${1:os}}\"\n      }\n    },\n    {\n      \"name\": \"nodeshadowedone\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"nodeshadowedone(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ntt\"\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ooarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ooarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"PackageName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PackageVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pdf\"\n    },\n    {\n      \"name\": \"PGF\"\n    },\n    {\n      \"name\": \"pgfname\"\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"presentation\"\n    },\n    {\n      \"name\": \"restorelastnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savelastnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SectionFontStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TAline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TAline{${1:args}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"tbody\"\n    },\n    {\n      \"name\": \"TEX\"\n    },\n    {\n      \"name\": \"thead\"\n    },\n    {\n      \"name\": \"thecnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TIKZ\"\n    },\n    {\n      \"name\": \"tikzname\"\n    },\n    {\n      \"name\": \"titleinframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkz\"\n    },\n    {\n      \"name\": \"tkzAttention\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tkzAttention{${1:text}}{${2:skip}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"tkzBomb\"\n    },\n    {\n      \"name\": \"tkzbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzcname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzcname{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzdft\"\n    },\n    {\n      \"name\": \"tkzHand\"\n    },\n    {\n      \"name\": \"tkzHandBomb\"\n    },\n    {\n      \"name\": \"tkzhname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzhname{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzimp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzimp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzNameDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzNameDist{${1:distribution}}\"\n      }\n    },\n    {\n      \"name\": \"tkzNameEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzNameEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzNameMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzNameMacro{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"tkzNamePack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzNamePack{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"tkzNameSys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzNameSys{${1:os}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpColors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpColors[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzsubf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzsubf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTitleFrame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzTitleFrame{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTwoBomb\"\n    },\n    {\n      \"name\": \"TMline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TMline{${1:csname}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"TOenvline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TOenvline{${1:opts}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"TOline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TOline{${1:args}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"var{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vara{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varp{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NewEnvBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewMacroBox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:csname}}{${2:suffix}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tkz-doc#c\": [\n      \"cadre\"\n    ],\n    \"\\\\tkzSetUpColors\": [\n      \"background=\",\n      \"text=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tkz-doc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tlc-article.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"spverbatim\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"csvsimple\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"pdflscape\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tlcDarkblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlcDarkblue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlcBeginLandscape\"\n    },\n    {\n      \"name\": \"tlcEndLandscape\"\n    },\n    {\n      \"name\": \"tlcVersionPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlcVersionPart{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"ER\"\n    },\n    {\n      \"name\": \"tlcVspace\"\n    },\n    {\n      \"name\": \"inputIfExists\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputIfExists{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tlcTitlePageAndTableOfContents\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tlcTitlePageAndTableOfContents{${1:title%text}}{${2:author%text}}{${3:abstract%text}}\"\n      }\n    },\n    {\n      \"name\": \"tlcIsDefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlcIsDefined{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tlcDebug\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"printacronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tlc-article#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tlc-article#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-toptesi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"trace\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"toptesi\"\n    },\n    {\n      \"name\": \"frontespizio\",\n      \"if\": \"tipotesi=frontespizio\"\n    },\n    {\n      \"name\": \"toptesi-scudo\",\n      \"if\": \"tipotesi=scudo\"\n    },\n    {\n      \"name\": \"toptesi-sss\",\n      \"if\": \"tipotesi=secondaria\"\n    },\n    {\n      \"name\": \"toptesi-sss\",\n      \"if\": \"tipotesi=sss\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodistudi\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodistudi{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"giorno\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"giorno{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"luogo\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luogo{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"NomeAteneo\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeAteneo{${1:university proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeCorsoDiStudi\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NomeElaborato\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeElaborato{${1:thesis name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeRelatore\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NomeRelatore{${1:singular}}{${2:plural}}\"\n      }\n    },\n    {\n      \"name\": \"StrutturaDi\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrutturaDi{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodistudi\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodistudi{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"giorno\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"giorno{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"luogo\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luogo{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"NomeAteneo\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeAteneo{${1:university proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeCorsoDiStudi\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NomeElaborato\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeElaborato{${1:thesis name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeRelatore\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NomeRelatore{${1:singular}}{${2:plural}}\"\n      }\n    },\n    {\n      \"name\": \"StrutturaDi\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrutturaDi{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"GetFileInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfo{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"classdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stydate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\"\n    },\n    {\n      \"name\": \"XXIletters\"\n    },\n    {\n      \"name\": \"XXVIletters\"\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\"\n    },\n    {\n      \"name\": \"virgoladecimale\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"greektext\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"if\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"anwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"katwtonos\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"qoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"stigma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"sampi\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"euro\",\n      \"if\": \"greek\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"greek\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=triennale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=monografia\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=magistrale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=dottorale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=dottorale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/toptesi#c\": [\n      \"formato=${1:formato della carta}\",\n      \"cucitura=\",\n      \"corpo=\",\n      \"chapterbib\",\n      \"evenboxes\",\n      \"libro\",\n      \"stile=${1|standard,classica,trieste|}\",\n      \"autoretitolo\",\n      \"oldstyle\",\n      \"nocenterfolio\",\n      \"nocenterhead\",\n      \"folioinhead\",\n      \"numerazioneromana\",\n      \"tipotesi=${1|topfront,frontespizio,triennale,monografia,magistrale,dottorale,scudo,secondaria,sss,custom|}\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/toptesi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tpms-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"englishvolinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datereceivedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateacceptedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateaccepted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateaccepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"UDC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UDC{${1:UDC number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tpms-l#c\": [\n      \"editor\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tpms-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tran-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tran-l#c\": [\n      \"editor\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"e-only\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tran-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-trans2-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsproc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oa{${1:original appearance date}}\"\n      }\n    },\n    {\n      \"name\": \"lcandify\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/trans2-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/trans2-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-treport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/treport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/treport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudabeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"URspecialopts\"\n    },\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"beamerthemeTUDa\"\n    },\n    {\n      \"name\": \"scrlfile\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"scrlfile\",\n      \"if\": \"pdfa=true\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa=true\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"ucs\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"utf8\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertdepartment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdepartment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertshortdepartment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertshortdepartment[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"Metadata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Metadata{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tudabeamer#c\": [\n      \"accentcolor=\",\n      \"colorframetitle\",\n      \"logo\",\n      \"pdfa\",\n      \"logofile=${1:imagefile}\",\n      \"serif\",\n      \"sans-serif\",\n      \"department=mecheng\",\n      \"departmentlogofile=${1:imagefile}\",\n      \"tudacolors={${1:color options}}\",\n      \"usepdftitle\",\n      \"envcountsect\",\n      \"notheorems\",\n      \"noamsthm\",\n      \"compress\",\n      \"t\",\n      \"c\",\n      \"leqno\",\n      \"fleqn\",\n      \"handout\",\n      \"trans\",\n      \"pdftex\",\n      \"nativepdf\",\n      \"pdfmark\",\n      \"dvips\",\n      \"dviwindo\",\n      \"dvipsone\",\n      \"vtex\",\n      \"ps2pdf\",\n      \"ignorenonframetext\",\n      \"noamssymb\",\n      \"bigger\",\n      \"smaller\",\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"draft\",\n      \"CJK\",\n      \"cjk\",\n      \"onlytextwidth\",\n      \"pgf={${1:pgf options}}\",\n      \"hyperref={${1:hyperref options}}\",\n      \"xcolor={${1:xcolor options}}\",\n      \"ucs\",\n      \"utf8x\",\n      \"utf8\",\n      \"aspectratio=${2|2013,1610,169,149,141,54,43,32,${1:xxxx}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudabeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudaexercise.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"department=mecheng\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MechEngArrow\",\n      \"if\": \"department=mecheng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MechEngArrow{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"MechEngArrow*\",\n      \"if\": \"department=mecheng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MechEngArrow*{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:Kurztitel für die Kopfzeile%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:Semester}}\"\n      }\n    },\n    {\n      \"name\": \"sheetnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sheetnumber{${1:Nummer des Übungsblatts}}\"\n      }\n    },\n    {\n      \"name\": \"thetask\"\n    },\n    {\n      \"name\": \"thesubtask\"\n    },\n    {\n      \"name\": \"ConfigureHeadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfigureHeadline{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ConfigureHeadline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShortTitle\"\n    },\n    {\n      \"name\": \"StudentID\"\n    },\n    {\n      \"name\": \"StudentName\"\n    },\n    {\n      \"name\": \"IfSolutionT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSolutionT{${1:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSolutionF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSolutionF{${1:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSolutionTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfSolutionTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"creditformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"creditformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"creditformatsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"creditformatsum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PointName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PointsName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"getPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getPoints{${1:Nummer}}\"\n      }\n    },\n    {\n      \"name\": \"getPointsTotal\"\n    },\n    {\n      \"name\": \"refPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPoints{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mapPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mapPoints{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"mapPoints*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mapPoints*{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"authorandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:Einrichtung}}\"\n      }\n    },\n    {\n      \"name\": \"sheetsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StudentIDname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StudentIDsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StudentNamesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtaskformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"taskformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tasksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimage{${1:graphics code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Überschrift%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Optionen%keyvals}]{${1:Überschrift%text}}\",\n        \"keys\": [\n          \"\\\\begin{task}#c,\\\\begin{task*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"task*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Aufgabentitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"task*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Optionen%keyvals}]{${1:Aufgabentitel%text}}\",\n        \"keys\": [\n          \"\\\\begin{task}#c,\\\\begin{task*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subtask\"\n    },\n    {\n      \"name\": \"subtask\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Optionen%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{subtask}#c,\\\\begin{subtask*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subtask*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Titel der Teilaufgabe%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtask*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Optionen%keyvals}]{${1:Titel der Teilaufgabe%text}}\",\n        \"keys\": [\n          \"\\\\begin{subtask}#c,\\\\begin{subtask*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tudaexercise#c\": [\n      \"color=\",\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"custommargins=${1|true,false,geometry|}\",\n      \"fontsize=\",\n      \"BCOR=${1:Länge}\",\n      \"paper=${1|a0,a1,a2,a3,a4,a5,a6|}\",\n      \"logofile=${1:Dateipfad}\",\n      \"credit\",\n      \"headontitle\",\n      \"colorback=${1|true,false|}\",\n      \"title=${1|default,small,large|}\",\n      \"department=mecheng\",\n      \"departmentlogofile=${1:Dateipfad}\",\n      \"match-task-subtask-syntax\",\n      \"solution\",\n      \"points=${1|true,false,auto|}\",\n      \"subtask=${1|ruled,runin,plain|}\"\n    ],\n    \"\\\\begin{task}#c,\\\\begin{task*}#c\": [\n      \"points=${1:auto|<Nummer>}\",\n      \"credit=${1:Nummer}\",\n      \"solution\"\n    ],\n    \"\\\\begin{subtask}#c,\\\\begin{subtask*}#c\": [\n      \"points=${1:Nummer}\",\n      \"credit=${1:Nummer}\",\n      \"title=${1:text}\"\n    ],\n    \"\\\\ConfigureHeadline#c\": [\n      \"headline={${1:text}}\",\n      \"even={${1:text}}\",\n      \"odd={${1:text}}\",\n      \"oneside={${1:text}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudaexercise#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudaleaflet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-leaflet\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"scrlayer\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sectionlinesformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionlinesformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"raggedtitle\"\n    },\n    {\n      \"name\": \"AddSponsor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddSponsor{${1:logo}}\"\n      }\n    },\n    {\n      \"name\": \"sponsors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sponsors{${1:logo code}}\"\n      }\n    },\n    {\n      \"name\": \"footergraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footergraphics{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"titleimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimage{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"insertSponsors\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tudaleaflet#c\": [\n      \"color=\",\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"logofile=${1:Dateipfad}\",\n      \"colorback\",\n      \"colorbacktitle\",\n      \"colorbacksubtitle\",\n      \"sponsor=${1|title,lastfoot,manual|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudaleaflet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudaletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"scrletter\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Metadata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Metadata{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tudaletter#c\": [\n      \"logo\",\n      \"premium\",\n      \"accentcolor=\",\n      \"firstpagenumber\",\n      \"raggedright\",\n      \"pdfa\",\n      \"logofile=${1:imagefile}\",\n      \"headrule\",\n      \"textwidth=${1|wide,narrow|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudaletter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudaposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"scrlayer\"\n    },\n    {\n      \"name\": \"scrlayer-notecolumn\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"contentwidth\"\n    },\n    {\n      \"name\": \"contentheight\"\n    },\n    {\n      \"name\": \"SetMarginpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMarginpar{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"SetMarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetMarginpar[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\SetMarginpar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleinfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo*{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"footer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footerqrcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcode{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"footerqrcodeimg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcodeimg{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"infofont\"\n    },\n    {\n      \"name\": \"infotext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infotext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authorandname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tudaposter#c\": [\n      \"color=\",\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"logo=${1|head,body|}\",\n      \"footer\",\n      \"paper=${1|a0,a1,a2,a3,a4|}\",\n      \"fontsize=\",\n      \"logofile=${1:Dateipfad}\",\n      \"type=announcement\",\n      \"indenttext\",\n      \"marginpar\",\n      \"title=${1|default,large,small|}\",\n      \"colorback\",\n      \"colorsubtitle\"\n    ],\n    \"\\\\SetMarginpar\": [\n      \"valign=\",\n      \"overlap\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudaposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudapub.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"URspecialopts\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"class=report\"\n    },\n    {\n      \"name\": \"class-scrreprt\",\n      \"if\": \"class=scrreprt\"\n    },\n    {\n      \"name\": \"class-scrbook\",\n      \"if\": \"class=book\"\n    },\n    {\n      \"name\": \"class-scrbook\",\n      \"if\": \"class=scrbook\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa=true\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"department=mecheng\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MechEngArrow\",\n      \"if\": \"department=mecheng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MechEngArrow{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"MechEngArrow*\",\n      \"if\": \"department=mecheng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MechEngArrow*{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic*{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"addTitleBoxLogo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addTitleBoxLogo*{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"AddSponsor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddSponsor{${1:logo}}\"\n      }\n    },\n    {\n      \"name\": \"sponsors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sponsors{${1:logo code}}\"\n      }\n    },\n    {\n      \"name\": \"Metadata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Metadata{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\Metadata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sep\"\n    },\n    {\n      \"name\": \"IMRADlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IMRADlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"SetPaperID\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetPaperID{${1:Buchstabe}}{${2:tiefgestelle Nummer}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:Einrichtung}}\"\n      }\n    },\n    {\n      \"name\": \"titleimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleimage{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"authorandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"departmentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"departmentfullname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleintro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleintro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleaddendum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleaddendum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short name}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"studentID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studentID{${1:Matrikelnummer}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:Kürzel/Bezeichnung}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"department[${2:Ersatztext}]{${1:Kürzel/Bezeichnung}}\"\n      }\n    },\n    {\n      \"name\": \"department*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department*{${1:Text zwischen Typ und Autor}}\"\n      }\n    },\n    {\n      \"name\": \"department*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"department*[${2:Text für die Box}]{${1:Text zwischen Typ und Autor}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Einrichtung}}\"\n      }\n    },\n    {\n      \"name\": \"group\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"group{${1:Arbeitsgruppe}}\"\n      }\n    },\n    {\n      \"name\": \"birthplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"birthplace{${1:Geburtsort}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:Name1 \\\\and Name2}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reviewer[${2:Ersatzbezeichner}]{${1:Name1 \\\\and Name2}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer*{${1:Name1 \\\\and Name2}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reviewer*[${2:Bezeichner1,Bezeichner2}]{${1:Name1 \\\\and Name2}}\"\n      }\n    },\n    {\n      \"name\": \"examdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdate{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"submissiondate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submissiondate{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"tuprints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tuprints{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"affidavit\"\n    },\n    {\n      \"name\": \"affidavit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affidavit[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"AffidavitSignature\"\n    },\n    {\n      \"name\": \"AffidavitSignature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AffidavitSignature[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"SignatureBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SignatureBox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SignatureBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SignatureBox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setupReviewName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupReviewName{${1:Ersatzwort für „Gutachten“}}\"\n      }\n    },\n    {\n      \"name\": \"setupReviewName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setupReviewName[${2:num}]{${1:Referent}}\"\n      }\n    },\n    {\n      \"name\": \"setupReviewName*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupReviewName*{${1:Bezeicher1,Bezeicher2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"affidavit*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Überschrift%text}}\"\n      }\n    },\n    {\n      \"name\": \"affidavit*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Babel-Sprachoption}]{${1:Überschrift%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tudapub#c\": [\n      \"class=${1|article,report,book|}\",\n      \"color=\",\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"marginpar\",\n      \"custommargins=${1|true,false,geometry|}\",\n      \"fontsize=\",\n      \"ruledheaders=${1|false,none,chapter,section,true,all|}\",\n      \"type=${1|publication,thesis,intern|}\",\n      \"headline=${1|true,false,automark|}\",\n      \"colorback=${1|true,false,title,body,head|}\",\n      \"pdfa\",\n      \"twocolumn\",\n      \"BCOR=${1:Länge}\",\n      \"logo=${1|head,body,top,bottom|}\",\n      \"paper=${1|a0,a1,a2,a3,a4,a5,a6|}\",\n      \"IMRAD\",\n      \"logofile=${1:Dateipfad}\",\n      \"title=${1|default,small,large|}\",\n      \"department=mecheng\",\n      \"departmentlogofile=${1:Dateipfad}\",\n      \"BCORtitlepage\"\n    ],\n    \"\\\\Metadata#c\": [\n      \"author=${1:name}\",\n      \"title=${1:text}\",\n      \"subject=${1:text}\",\n      \"date=${1:YYYY-MM-DD}\",\n      \"keywords=${1:word1 \\\\sep word2 \\\\sep ...}\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"TUDa.headings\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudapub#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudasciposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"tudafonts\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    },\n    {\n      \"name\": \"pdfcol\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tudarules\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footergraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footergraphics{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"footer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footerqrcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcode{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"footerqrcode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerqrcode*{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Metadata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Metadata{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"authorandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Einrichtung}}\"\n      }\n    },\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"contentwidth\"\n    },\n    {\n      \"name\": \"contentheight\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/tudasciposter#c\": [\n      \"color=\",\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"footer\",\n      \"pdfa\",\n      \"boxstyle=${1|official,colored,boxed,default|}\",\n      \"paper=${1|a0,a1,a2,a3|}\",\n      \"fontsize=\",\n      \"logofile=${1:Dateipfad}\",\n      \"title=${1|default,large,small|}\",\n      \"colorback\"\n    ],\n    \"\\\\posterbox,\\\\begin{posterboxenv}\": [\n      \"TUDa\",\n      \"TUDa-inner\",\n      \"TUDa-colored\",\n      \"TUDa-colored-inner\",\n      \"TUDa-boxed\",\n      \"TUDa-boxed-inner\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tudasciposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tudscrartcl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tudscrbase\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tudscrcolor\"\n    },\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"iwona\"\n    },\n    {\n      \"name\": \"mathastext\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfont{${1:Schriftart}}\"\n      }\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcd{${1:Schriftart}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontln\"\n    },\n    {\n      \"name\": \"textcdln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdln{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontrn\"\n    },\n    {\n      \"name\": \"textcdrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdrn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsn\"\n    },\n    {\n      \"name\": \"textcdsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbn\"\n    },\n    {\n      \"name\": \"textcdbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxn\"\n    },\n    {\n      \"name\": \"textcdxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontli\"\n    },\n    {\n      \"name\": \"textcdli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdli{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontri\"\n    },\n    {\n      \"name\": \"textcdri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdri{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsi\"\n    },\n    {\n      \"name\": \"textcdsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbi\"\n    },\n    {\n      \"name\": \"textcdbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxi\"\n    },\n    {\n      \"name\": \"textcdxi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faculty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculty{${1:Fakultät}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:Einrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Institut%text}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:Lehrstuhl}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadline{${1:Textzeile%text}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogosep\"\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcontent{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"footcontent{${1:linker Inhalt%text}}[${2:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:linker Inhalt%text}}[${3:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maketitleonecolumn{${1:Einspaltentext%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maketitleonecolumn[${2:Parameterliste%keyvals}]{${1:Einspaltentext%text}}\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"raggedtitle\"\n    },\n    {\n      \"name\": \"authormore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authormore{${1:Autorenzusatz}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emailaddress[${2:Einstellungen}]{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress*{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"dateofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateofbirth{${1:Geburtsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"placeofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeofbirth{${1:Geburtsort}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationnumber{${1:Matrikelnummer}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationyear{${1:Immatrikulationsjahr}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:Studiengang%text}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:Studienrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"date*{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date*[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defensedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defensedate{${1:Verteidigungsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"thesis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesis{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"habilitationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplomathesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"masterthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bachelorthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentresearchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seminarpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internshipname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduation{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graduation[${2:Kurzform%text}]{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"referee{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"titledelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titledelimiter{${1:Trennzeichen}}\"\n      }\n    },\n    {\n      \"name\": \"setpartsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartsubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"getfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfield{${1:Feldname}}\"\n      }\n    },\n    {\n      \"name\": \"nextabstract\"\n    },\n    {\n      \"name\": \"nextabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextabstract[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nextdeclaration{${1:Überschrift%text}}{${2:Erklärung%text}}\"\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nextdeclaration[${3:Parameterliste%keyvals}]{${1:Überschrift%text}}{${2:Erklärung%text}}\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration\"\n    },\n    {\n      \"name\": \"declaration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration*\"\n    },\n    {\n      \"name\": \"declaration*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation\"\n    },\n    {\n      \"name\": \"confirmation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation*\"\n    },\n    {\n      \"name\": \"confirmation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blocking\"\n    },\n    {\n      \"name\": \"blocking\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blocking[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\blocking#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supporter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supporter{${1:Unterstützer}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:Ort%text}}\"\n      }\n    },\n    {\n      \"name\": \"confirmationclosing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confirmationclosing{${1:Ende%text}}\"\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:Firma%text}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tudbookmark{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tudbookmark[${3:Ebene}]{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"refereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereeothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defensedatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationnumbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationyearname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disciplinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdate{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tudpage\"\n    },\n    {\n      \"name\": \"tudpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tudpage}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declarations\"\n    },\n    {\n      \"name\": \"declarations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\TUDoptions#c\": [\n      \"cdfont=${1:Einstellung}\",\n      \"ttfont=${1:Einstellung}\",\n      \"cdmath=${1:Ein-Aus-Wert}\",\n      \"slantedgreek=${1:Ein-Aus-Wert}\",\n      \"relspacing=${1:Ein-Aus-Wert}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"extrabottommargin=\",\n      \"cd=${1:Einstellung}\",\n      \"headings=${1:Einstellung}\",\n      \"cdtitle=${1:Einstellung}\",\n      \"cdcover=${1:Einstellung}\",\n      \"cdpart=${1:Einstellung}\",\n      \"cdsection=${1:Einstellung}\",\n      \"pageheadingsvskip=\",\n      \"headingsvskip=\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"footlogoheight=\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\",\n      \"subjectthesis=${1:Ein-Aus-Wert}\",\n      \"titlesignature=${1:Ein-Aus-Wert}\",\n      \"parttitle=${1:Ein-Aus-Wert}\",\n      \"abstract=${1:Einstellung}\",\n      \"declaration=${1:Einstellung}\",\n      \"tudbookmarks=${1:Ein-Aus-Wert}\",\n      \"tudscrver=${1:Version}\"\n    ],\n    \"\\\\TUDoption#c\": [\n      \"cdfont\",\n      \"ttfont\",\n      \"cdmath\",\n      \"slantedgreek\",\n      \"relspacing\",\n      \"cdgeometry\",\n      \"extrabottommargin\",\n      \"cd\",\n      \"headings\",\n      \"cdtitle\",\n      \"cdcover\",\n      \"cdpart\",\n      \"cdsection\",\n      \"pageheadingsvskip\",\n      \"headingsvskip\",\n      \"cdhead\",\n      \"cdfoot\",\n      \"footlogoheight\",\n      \"ddc\",\n      \"ddchead\",\n      \"ddcfoot\",\n      \"subjectthesis\",\n      \"titlesignature\",\n      \"parttitle\",\n      \"abstract\",\n      \"declaration\",\n      \"tudbookmarks\",\n      \"tudscrver\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"tudheadings\",\n      \"plain.tudheadings\",\n      \"empty.tudheadings\"\n    ],\n    \"\\\\headlogo,\\\\footlogo\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{tudpage}#c\": [\n      \"language=${1:Sprache}\",\n      \"columns=${1:Anzahl}\",\n      \"pagestyle=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\": [\n      \"pagenumber=${1:Seitenzahl}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\date#c,\\\\date*#c\": [\n      \"before=${1:Präfix}\",\n      \"after=${1:Suffix}\",\n      \"place=${1:Ort}\"\n    ],\n    \"\\\\begin{abstract}#c,\\\\nextabstract#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\",\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"company=${1:Firma}\"\n    ],\n    \"\\\\confirmation#c,\\\\confirmation*#c\": [\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\blocking#c\": [\n      \"company=${1:Firma}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-tudscrbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tudscrbase\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tudscrcolor\"\n    },\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"iwona\"\n    },\n    {\n      \"name\": \"mathastext\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfont{${1:Schriftart}}\"\n      }\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcd{${1:Schriftart}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontln\"\n    },\n    {\n      \"name\": \"textcdln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdln{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontrn\"\n    },\n    {\n      \"name\": \"textcdrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdrn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsn\"\n    },\n    {\n      \"name\": \"textcdsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbn\"\n    },\n    {\n      \"name\": \"textcdbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxn\"\n    },\n    {\n      \"name\": \"textcdxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontli\"\n    },\n    {\n      \"name\": \"textcdli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdli{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontri\"\n    },\n    {\n      \"name\": \"textcdri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdri{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsi\"\n    },\n    {\n      \"name\": \"textcdsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbi\"\n    },\n    {\n      \"name\": \"textcdbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxi\"\n    },\n    {\n      \"name\": \"textcdxi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faculty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculty{${1:Fakultät}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:Einrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Institut%text}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:Lehrstuhl}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadline{${1:Textzeile%text}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogosep\"\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcontent{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"footcontent{${1:linker Inhalt%text}}[${2:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:linker Inhalt%text}}[${3:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maketitleonecolumn{${1:Einspaltentext%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maketitleonecolumn[${2:Parameterliste%keyvals}]{${1:Einspaltentext%text}}\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"raggedtitle\"\n    },\n    {\n      \"name\": \"authormore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authormore{${1:Autorenzusatz}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emailaddress[${2:Einstellungen}]{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress*{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"dateofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateofbirth{${1:Geburtsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"placeofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeofbirth{${1:Geburtsort}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationnumber{${1:Matrikelnummer}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationyear{${1:Immatrikulationsjahr}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:Studiengang%text}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:Studienrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"date*{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date*[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defensedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defensedate{${1:Verteidigungsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"thesis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesis{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"habilitationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplomathesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"masterthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bachelorthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentresearchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seminarpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internshipname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduation{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graduation[${2:Kurzform%text}]{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"referee{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"titledelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titledelimiter{${1:Trennzeichen}}\"\n      }\n    },\n    {\n      \"name\": \"setpartsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartsubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"setchaptersubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchaptersubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"getfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfield{${1:Feldname}}\"\n      }\n    },\n    {\n      \"name\": \"nextabstract\"\n    },\n    {\n      \"name\": \"nextabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextabstract[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nextdeclaration{${1:Überschrift%text}}{${2:Erklärung%text}}\"\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nextdeclaration[${3:Parameterliste%keyvals}]{${1:Überschrift%text}}{${2:Erklärung%text}}\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration\"\n    },\n    {\n      \"name\": \"declaration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration*\"\n    },\n    {\n      \"name\": \"declaration*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation\"\n    },\n    {\n      \"name\": \"confirmation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation*\"\n    },\n    {\n      \"name\": \"confirmation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blocking\"\n    },\n    {\n      \"name\": \"blocking\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blocking[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\blocking#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supporter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supporter{${1:Unterstützer}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:Ort%text}}\"\n      }\n    },\n    {\n      \"name\": \"confirmationclosing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confirmationclosing{${1:Ende%text}}\"\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:Firma%text}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tudbookmark{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tudbookmark[${3:Ebene}]{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"refereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereeothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defensedatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationnumbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationyearname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disciplinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdate{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tudpage\"\n    },\n    {\n      \"name\": \"tudpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tudpage}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declarations\"\n    },\n    {\n      \"name\": \"declarations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\TUDoptions#c\": [\n      \"cdfont=${1:Einstellung}\",\n      \"ttfont=${1:Einstellung}\",\n      \"cdmath=${1:Ein-Aus-Wert}\",\n      \"slantedgreek=${1:Ein-Aus-Wert}\",\n      \"relspacing=${1:Ein-Aus-Wert}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"extrabottommargin=\",\n      \"cd=${1:Einstellung}\",\n      \"headings=${1:Einstellung}\",\n      \"cdtitle=${1:Einstellung}\",\n      \"cdcover=${1:Einstellung}\",\n      \"cdpart=${1:Einstellung}\",\n      \"cdsection=${1:Einstellung}\",\n      \"pageheadingsvskip=\",\n      \"headingsvskip=\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"footlogoheight=\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\",\n      \"subjectthesis=${1:Ein-Aus-Wert}\",\n      \"titlesignature=${1:Ein-Aus-Wert}\",\n      \"parttitle=${1:Ein-Aus-Wert}\",\n      \"abstract=${1:Einstellung}\",\n      \"declaration=${1:Einstellung}\",\n      \"tudbookmarks=${1:Ein-Aus-Wert}\",\n      \"tudscrver=${1:Version}\",\n      \"cleardoublespecialpage=${1:Einstellung}\",\n      \"cdchapter=${1:Einstellung}\",\n      \"chapterpage=${1:Ein-Aus-Wert}\"\n    ],\n    \"\\\\TUDoption#c\": [\n      \"cdfont\",\n      \"ttfont\",\n      \"cdmath\",\n      \"slantedgreek\",\n      \"relspacing\",\n      \"cdgeometry\",\n      \"extrabottommargin\",\n      \"cd\",\n      \"headings\",\n      \"cdtitle\",\n      \"cdcover\",\n      \"cdpart\",\n      \"cdsection\",\n      \"pageheadingsvskip\",\n      \"headingsvskip\",\n      \"cdhead\",\n      \"cdfoot\",\n      \"footlogoheight\",\n      \"ddc\",\n      \"ddchead\",\n      \"ddcfoot\",\n      \"subjectthesis\",\n      \"titlesignature\",\n      \"parttitle\",\n      \"abstract\",\n      \"declaration\",\n      \"tudbookmarks\",\n      \"tudscrver\",\n      \"cleardoublespecialpage\",\n      \"cdchapter\",\n      \"chapterpage\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"tudheadings\",\n      \"plain.tudheadings\",\n      \"empty.tudheadings\"\n    ],\n    \"\\\\headlogo,\\\\footlogo\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{tudpage}#c\": [\n      \"language=${1:Sprache}\",\n      \"columns=${1:Anzahl}\",\n      \"pagestyle=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\": [\n      \"pagenumber=${1:Seitenzahl}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\date#c,\\\\date*#c\": [\n      \"before=${1:Präfix}\",\n      \"after=${1:Suffix}\",\n      \"place=${1:Ort}\"\n    ],\n    \"\\\\begin{abstract}#c,\\\\nextabstract#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\",\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"company=${1:Firma}\"\n    ],\n    \"\\\\confirmation#c,\\\\confirmation*#c\": [\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\blocking#c\": [\n      \"company=${1:Firma}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-tudscrposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tudscrbase\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tudscrcolor\"\n    },\n    {\n      \"name\": \"mathastext\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfont{${1:Schriftart}}\"\n      }\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcd{${1:Schriftart}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontln\"\n    },\n    {\n      \"name\": \"textcdln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdln{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontrn\"\n    },\n    {\n      \"name\": \"textcdrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdrn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsn\"\n    },\n    {\n      \"name\": \"textcdsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbn\"\n    },\n    {\n      \"name\": \"textcdbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxn\"\n    },\n    {\n      \"name\": \"textcdxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontli\"\n    },\n    {\n      \"name\": \"textcdli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdli{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontri\"\n    },\n    {\n      \"name\": \"textcdri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdri{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsi\"\n    },\n    {\n      \"name\": \"textcdsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbi\"\n    },\n    {\n      \"name\": \"textcdbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxi\"\n    },\n    {\n      \"name\": \"textcdxi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faculty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculty{${1:Fakultät}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:Einrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Institut%text}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:Lehrstuhl}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadline{${1:Textzeile%text}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogosep\"\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcontent{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"footcontent{${1:linker Inhalt%text}}[${2:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:linker Inhalt%text}}[${3:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maketitleonecolumn{${1:Einspaltentext%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maketitleonecolumn[${2:Parameterliste%keyvals}]{${1:Einspaltentext%text}}\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"raggedtitle\"\n    },\n    {\n      \"name\": \"authormore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authormore{${1:Autorenzusatz}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emailaddress[${2:Einstellungen}]{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress*{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:Studiengang%text}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:Studienrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"date*{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date*[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"habilitationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplomathesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"masterthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bachelorthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentresearchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seminarpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internshipname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"setpartsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartsubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"getfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfield{${1:Feldname}}\"\n      }\n    },\n    {\n      \"name\": \"nextabstract\"\n    },\n    {\n      \"name\": \"nextabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextabstract[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tudbookmark{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tudbookmark[${3:Ebene}]{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disciplinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"webpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webpage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"webpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"webpage[${2:Einstellungen}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"contactperson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contactperson{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"office\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"office{${1:Adresse/Gebäude%text}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:Telefonnummer}}\"\n      }\n    },\n    {\n      \"name\": \"telefax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telefax{${1:Telefaxnummer}}\"\n      }\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contactname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contactpersonname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figurehere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablehere\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\TUDoptions#c\": [\n      \"cdfont=${1:Einstellung}\",\n      \"ttfont=${1:Einstellung}\",\n      \"cdmath=${1:Ein-Aus-Wert}\",\n      \"slantedgreek=${1:Ein-Aus-Wert}\",\n      \"relspacing=${1:Ein-Aus-Wert}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"extrabottommargin=\",\n      \"cd=${1:Einstellung}\",\n      \"headings=${1:Einstellung}\",\n      \"cdtitle=${1:Einstellung}\",\n      \"cdcover=${1:Einstellung}\",\n      \"cdpart=${1:Einstellung}\",\n      \"cdsection=${1:Einstellung}\",\n      \"pageheadingsvskip=\",\n      \"headingsvskip=\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"footlogoheight=\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\",\n      \"subjectthesis=${1:Ein-Aus-Wert}\",\n      \"parttitle=${1:Ein-Aus-Wert}\",\n      \"abstract=${1:Einstellung}\",\n      \"declaration=${1:Einstellung}\",\n      \"tudbookmarks=${1:Ein-Aus-Wert}\",\n      \"tudscrver=${1:Version}\"\n    ],\n    \"\\\\TUDoption#c\": [\n      \"cdfont\",\n      \"ttfont\",\n      \"cdmath\",\n      \"slantedgreek\",\n      \"relspacing\",\n      \"cdgeometry\",\n      \"extrabottommargin\",\n      \"cd\",\n      \"headings\",\n      \"cdtitle\",\n      \"cdcover\",\n      \"cdpart\",\n      \"cdsection\",\n      \"pageheadingsvskip\",\n      \"headingsvskip\",\n      \"cdhead\",\n      \"cdfoot\",\n      \"footlogoheight\",\n      \"ddc\",\n      \"ddchead\",\n      \"ddcfoot\",\n      \"subjectthesis\",\n      \"titlesignature\",\n      \"parttitle\",\n      \"abstract\",\n      \"declaration\",\n      \"tudbookmarks\",\n      \"tudscrver\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"tudheadings\",\n      \"plain.tudheadings\",\n      \"empty.tudheadings\"\n    ],\n    \"\\\\headlogo,\\\\footlogo\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\maketitle#c,\\\\maketitleonecolumn#c\": [\n      \"pagenumber=${1:Seitenzahl}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\date#c,\\\\date*#c\": [\n      \"before=${1:Präfix}\",\n      \"after=${1:Suffix}\",\n      \"place=${1:Ort}\"\n    ],\n    \"\\\\begin{abstract}#c,\\\\nextabstract#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-tudscrreprt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tudscrbase\"\n    },\n    {\n      \"name\": \"class-scrreprt\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tudscrcolor\"\n    },\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"iwona\"\n    },\n    {\n      \"name\": \"mathastext\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfont{${1:Schriftart}}\"\n      }\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcd{${1:Schriftart}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontln\"\n    },\n    {\n      \"name\": \"textcdln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdln{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontrn\"\n    },\n    {\n      \"name\": \"textcdrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdrn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsn\"\n    },\n    {\n      \"name\": \"textcdsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbn\"\n    },\n    {\n      \"name\": \"textcdbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxn\"\n    },\n    {\n      \"name\": \"textcdxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontli\"\n    },\n    {\n      \"name\": \"textcdli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdli{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontri\"\n    },\n    {\n      \"name\": \"textcdri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdri{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsi\"\n    },\n    {\n      \"name\": \"textcdsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbi\"\n    },\n    {\n      \"name\": \"textcdbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxi\"\n    },\n    {\n      \"name\": \"textcdxi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faculty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculty{${1:Fakultät}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:Einrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:Institut%text}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:Lehrstuhl}}\"\n      }\n    },\n    {\n      \"name\": \"extraheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraheadline{${1:Textzeile%text}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"headlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"footlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footlogo[${2:Parameterliste%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\headlogo,\\\\footlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footlogosep\"\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcontent{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"footcontent{${1:linker Inhalt%text}}[${2:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:Inhalt%text}}\"\n      }\n    },\n    {\n      \"name\": \"footcontent\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"footcontent[${2:Anweisungen}]{${1:linker Inhalt%text}}[${3:rechter Inhalt%text}]\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maketitleonecolumn{${1:Einspaltentext%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitleonecolumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maketitleonecolumn[${2:Parameterliste%keyvals}]{${1:Einspaltentext%text}}\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makecover\"\n    },\n    {\n      \"name\": \"makecover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makecover[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"raggedtitle\"\n    },\n    {\n      \"name\": \"authormore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authormore{${1:Autorenzusatz}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emailaddress[${2:Einstellungen}]{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emailaddress*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailaddress*{${1:E-Mail-Adresse%URL}}\"\n      }\n    },\n    {\n      \"name\": \"dateofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateofbirth{${1:Geburtsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"placeofbirth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeofbirth{${1:Geburtsort}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationnumber{${1:Matrikelnummer}}\"\n      }\n    },\n    {\n      \"name\": \"matriculationyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matriculationyear{${1:Immatrikulationsjahr}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:Studiengang%text}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:Studienrichtung%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"date*{${1:Datum}}\"\n      }\n    },\n    {\n      \"name\": \"date*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"date*[${2:Parameterliste%keyvals}]{${1:Datum}}\",\n        \"keys\": [\n          \"\\\\date#c,\\\\date*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defensedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defensedate{${1:Verteidigungsdatum}}\"\n      }\n    },\n    {\n      \"name\": \"thesis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesis{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:Typisierung%text}}\"\n      }\n    },\n    {\n      \"name\": \"habilitationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dissertationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplomathesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"masterthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bachelorthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentresearchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seminarpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"researchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internshipname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduation{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"graduation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graduation[${2:Kurzform%text}]{${1:Grad%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"referee{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:Name(${2:n})}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"titledelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titledelimiter{${1:Trennzeichen}}\"\n      }\n    },\n    {\n      \"name\": \"setpartsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartsubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"setchaptersubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchaptersubtitle{${1:Untertitel%text}}\"\n      }\n    },\n    {\n      \"name\": \"getfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfield{${1:Feldname}}\"\n      }\n    },\n    {\n      \"name\": \"nextabstract\"\n    },\n    {\n      \"name\": \"nextabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextabstract[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nextdeclaration{${1:Überschrift%text}}{${2:Erklärung%text}}\"\n      }\n    },\n    {\n      \"name\": \"nextdeclaration\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nextdeclaration[${3:Parameterliste%keyvals}]{${1:Überschrift%text}}{${2:Erklärung%text}}\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration\"\n    },\n    {\n      \"name\": \"declaration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaration*\"\n    },\n    {\n      \"name\": \"declaration*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"declaration*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation\"\n    },\n    {\n      \"name\": \"confirmation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"confirmation*\"\n    },\n    {\n      \"name\": \"confirmation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"confirmation*[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\confirmation#c,\\\\confirmation*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blocking\"\n    },\n    {\n      \"name\": \"blocking\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blocking[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\blocking#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supporter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supporter{${1:Unterstützer}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"place{${1:Ort%text}}\"\n      }\n    },\n    {\n      \"name\": \"confirmationclosing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"confirmationclosing{${1:Ende%text}}\"\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:Firma%text}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tudbookmark{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"tudbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tudbookmark[${3:Ebene}]{${1:Text%text}}{${2:Ankername}}\"\n      }\n    },\n    {\n      \"name\": \"refereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereeothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supervisorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"professorothername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defensedatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeofbirthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationnumbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationyearname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disciplinename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlepagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confirmationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdate{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tudpage\"\n    },\n    {\n      \"name\": \"tudpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tudpage}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{abstract}#c,\\\\nextabstract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declarations\"\n    },\n    {\n      \"name\": \"declarations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\TUDoptions#c\": [\n      \"cdfont=${1:Einstellung}\",\n      \"ttfont=${1:Einstellung}\",\n      \"cdmath=${1:Ein-Aus-Wert}\",\n      \"slantedgreek=${1:Ein-Aus-Wert}\",\n      \"relspacing=${1:Ein-Aus-Wert}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"extrabottommargin=\",\n      \"cd=${1:Einstellung}\",\n      \"headings=${1:Einstellung}\",\n      \"cdtitle=${1:Einstellung}\",\n      \"cdcover=${1:Einstellung}\",\n      \"cdpart=${1:Einstellung}\",\n      \"cdsection=${1:Einstellung}\",\n      \"pageheadingsvskip=\",\n      \"headingsvskip=\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"footlogoheight=\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\",\n      \"subjectthesis=${1:Ein-Aus-Wert}\",\n      \"titlesignature=${1:Ein-Aus-Wert}\",\n      \"parttitle=${1:Ein-Aus-Wert}\",\n      \"abstract=${1:Einstellung}\",\n      \"declaration=${1:Einstellung}\",\n      \"tudbookmarks=${1:Ein-Aus-Wert}\",\n      \"tudscrver=${1:Version}\",\n      \"cleardoublespecialpage=${1:Einstellung}\",\n      \"cdchapter=${1:Einstellung}\",\n      \"chapterpage=${1:Ein-Aus-Wert}\"\n    ],\n    \"\\\\TUDoption#c\": [\n      \"cdfont\",\n      \"ttfont\",\n      \"cdmath\",\n      \"slantedgreek\",\n      \"relspacing\",\n      \"cdgeometry\",\n      \"extrabottommargin\",\n      \"cd\",\n      \"headings\",\n      \"cdtitle\",\n      \"cdcover\",\n      \"cdpart\",\n      \"cdsection\",\n      \"pageheadingsvskip\",\n      \"headingsvskip\",\n      \"cdhead\",\n      \"cdfoot\",\n      \"footlogoheight\",\n      \"ddc\",\n      \"ddchead\",\n      \"ddcfoot\",\n      \"subjectthesis\",\n      \"titlesignature\",\n      \"parttitle\",\n      \"abstract\",\n      \"declaration\",\n      \"tudbookmarks\",\n      \"tudscrver\",\n      \"cleardoublespecialpage\",\n      \"cdchapter\",\n      \"chapterpage\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"tudheadings\",\n      \"plain.tudheadings\",\n      \"empty.tudheadings\"\n    ],\n    \"\\\\headlogo,\\\\footlogo\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{tudpage}#c\": [\n      \"language=${1:Sprache}\",\n      \"columns=${1:Anzahl}\",\n      \"pagestyle=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\maketitle#c,\\\\maketitleonecolumn#c,\\\\makecover#c\": [\n      \"pagenumber=${1:Seitenzahl}\",\n      \"cdgeometry=${1:Einstellung}\",\n      \"cdfont=${1:Einstellung}\",\n      \"cdhead=${1:Einstellung}\",\n      \"cdfoot=${1:Einstellung}\",\n      \"headlogo=${1:Dateiname}\",\n      \"footlogo=${1:Dateinamenliste}\",\n      \"ddc=${1:Einstellung}\",\n      \"ddchead=${1:Einstellung}\",\n      \"ddcfoot=${1:Einstellung}\"\n    ],\n    \"\\\\date#c,\\\\date*#c\": [\n      \"before=${1:Präfix}\",\n      \"after=${1:Suffix}\",\n      \"place=${1:Ort}\"\n    ],\n    \"\\\\begin{abstract}#c,\\\\nextabstract#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\begin{declarations}#c,\\\\nextdeclaration#c,\\\\declaration#c,\\\\declaration*#c\": [\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\",\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"company=${1:Firma}\"\n    ],\n    \"\\\\confirmation#c,\\\\confirmation*#c\": [\n      \"supporter=${1:Unterstützer}\",\n      \"place=${1:Ort}\",\n      \"closing=${1:Ende}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ],\n    \"\\\\blocking#c\": [\n      \"company=${1:Firma}\",\n      \"language=${1:Sprache}\",\n      \"markboth=${1:Einstellung}\",\n      \"pagestyle=${1:Seitenstil}\",\n      \"columns=${1:Anzahl}\",\n      \"option=${1:Einstellung}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-tufte-book.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"hardwrap\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"letterspace\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"bibentry\"\n    },\n    {\n      \"name\": \"optparams\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"beramono\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"allcapsspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caption\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"caption[${2:short text}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"floatalignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcerectofloat\"\n    },\n    {\n      \"name\": \"forceversofloat\"\n    },\n    {\n      \"name\": \"gsetboolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetboolean{${1:name}}{${2:truth value}}\"\n      }\n    },\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:length cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"langwohyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lettergroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettergroup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginnote[${2:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"morefloats\"\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlinetospace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlinetospace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newthought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newthought{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nohyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyphens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plainauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainpublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plaintitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintTufteSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"publisher[${2:short text}]{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"publisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisher{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setcitationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcitationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfloatalignment{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfloatalignment#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmarginnotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarginnotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setsidenotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidenotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smallcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smallcapsspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsmallcaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsmallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thanklessauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesspublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tuftebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TufteLoadHyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TufteRecalculate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tufteskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tufteskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeoutbool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typeoutbool{${1:text}}{${2:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"typeoutstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typeoutstr{${1:text}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tufte-book#c\": [\n      \"debug\",\n      \"fonts\",\n      \"nofonts\",\n      \"ls\",\n      \"nols\",\n      \"nobib\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"a4paper\",\n      \"b5paper\",\n      \"sfsidenotes\",\n      \"symmetric\",\n      \"twoside\",\n      \"notoc\",\n      \"toc\",\n      \"justified\",\n      \"bidi\",\n      \"nobidi\",\n      \"hyper\",\n      \"nohyper\",\n      \"sidenote=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"marginnote=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"caption=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"citation=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"marginals=${1|justified,raggedleft,raggedright,raggedouter,auto|}\"\n    ],\n    \"\\\\setfloatalignment#c\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tufte-book#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-tufte-handout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"hardwrap\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"letterspace\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"bibentry\"\n    },\n    {\n      \"name\": \"optparams\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"beramono\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"bidi\",\n      \"if\": \"bidi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"allcapsspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caption\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"caption[${2:short text}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"floatalignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcerectofloat\"\n    },\n    {\n      \"name\": \"forceversofloat\"\n    },\n    {\n      \"name\": \"gsetboolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetboolean{${1:name}}{${2:truth value}}\"\n      }\n    },\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:length cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"langwohyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lettergroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lettergroup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginnote[${2:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"morefloats\"\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlinetospace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlinetospace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newthought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newthought{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nohyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyphens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plainauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainpublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plaintitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintTufteSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"publisher[${2:short text}]{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"publisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisher{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"setcaptionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcaptionfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setcitationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcitationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfloatalignment{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfloatalignment#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmarginnotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarginnotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"setsidenotefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidenotefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smallcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smallcapsspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsmallcaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsmallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thanklessauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesspublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanklesstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tuftebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TufteLoadHyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TufteRecalculate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tufteskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tufteskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeoutbool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typeoutbool{${1:text}}{${2:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"typeoutstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typeoutstr{${1:text}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/tufte-handout#c\": [\n      \"debug\",\n      \"fonts\",\n      \"nofonts\",\n      \"ls\",\n      \"nols\",\n      \"nobib\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"a4paper\",\n      \"b5paper\",\n      \"sfsidenotes\",\n      \"symmetric\",\n      \"twoside\",\n      \"notoc\",\n      \"toc\",\n      \"justified\",\n      \"bidi\",\n      \"nobidi\",\n      \"hyper\",\n      \"nohyper\",\n      \"sidenote=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"marginnote=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"caption=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"citation=${1|justified,raggedleft,raggedright,raggedouter,auto|}\",\n      \"marginals=${1|justified,raggedleft,raggedright,raggedouter,auto|}\"\n    ],\n    \"\\\\setfloatalignment#c\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/tufte-handout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-turabian-researchpaper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"turabian-formatting\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"noadjustssect\"\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"submissioninfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submissioninfo{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"enoteheading\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendixes\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/turabian-researchpaper#c\": [\n      \"noraggedright\",\n      \"authordate\",\n      \"noadjustbib\",\n      \"endnotes\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/turabian-researchpaper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-turabian-thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"turabian-formatting\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"submissioninfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submissioninfo{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:institution%text}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"theappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteheading\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendixes\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/turabian-thesis#c\": [\n      \"noraggedright\",\n      \"authordate\",\n      \"noadjustbib\",\n      \"endnotes\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/turabian-thesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ucalgmthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxmath\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"garamondx\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"utopia\"\n    },\n    {\n      \"name\": \"erewhon\",\n      \"if\": \"utopia\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"utopia\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"libertine\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"libertine\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"libertine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"dept\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dept{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"fixmdhrulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullpagethesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"makethesistitle\"\n    },\n    {\n      \"name\": \"manuscriptthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monthname{${1:month%text}}\"\n      }\n    },\n    {\n      \"name\": \"prog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prog{${1:program%text}}\"\n      }\n    },\n    {\n      \"name\": \"thesis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thesisyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesisyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ucalgmthesis#c\": [\n      \"singlespaced\",\n      \"onehalfspaced\",\n      \"doublespaced\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"utopia\",\n      \"libertine\",\n      \"plain\",\n      \"headers\",\n      \"fullpage\",\n      \"manuscript\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ucalgmthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ucbthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowledgename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"approvalpage\"\n    },\n    {\n      \"name\": \"campus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campus{${1:campus}}\"\n      }\n    },\n    {\n      \"name\": \"chair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cochair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cochair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cochairs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cochairs{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"degreesemester\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreesemester{${1:semester}}\"\n      }\n    },\n    {\n      \"name\": \"degreeyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"dsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emphasis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emphasis{${1:emphasis%text}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:field%text}}\"\n      }\n    },\n    {\n      \"name\": \"fmfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmsmallfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jointinstitution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jointinstitution{${1:institution%text}}\"\n      }\n    },\n    {\n      \"name\": \"memoirlistoffigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoirlistoftables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoirtableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberofmembers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberofmembers{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"othermembers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othermembers{${1:name1 \\\\\\\\ name2 \\\\\\\\...}}\"\n      }\n    },\n    {\n      \"name\": \"ssp\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgements\"\n    },\n    {\n      \"name\": \"alwayssingle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ucbthesis#c\": [\n      \"phd\",\n      \"masters\",\n      \"oldmasters\",\n      \"oneside\",\n      \"twoside\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"final\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ucbthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ucdavisthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acknowledgments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgments{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"authordegrees\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authordegrees{${1:degree1 \\\\\\\\ degree2 \\\\\\\\ ...%text}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapternamefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternamefont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"chapternamesize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternamesize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitlefont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitlesize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitlesize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ColumnRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColumnSave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColumnSaveHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ColumnSaveHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"committee\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"committee{${1:member1}}{${2:member2}}{${3:member3}}{${4:member4}}{${5:member5}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degreemonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreemonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"degreeyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degreeyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"dissertation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graduateprogram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduateprogram{${1:program%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeintropages\"\n    },\n    {\n      \"name\": \"nocopyright\"\n    },\n    {\n      \"name\": \"officialmajor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"officialmajor{${1:major%text}}\"\n      }\n    },\n    {\n      \"name\": \"secfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secfontsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SetSinglespace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"singlespacing\"\n    },\n    {\n      \"name\": \"ssubsecfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssubsecfontsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"subsecfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsecfontsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleHyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlesize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UMIabstract\"\n    },\n    {\n      \"name\": \"UMIabstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"UMIabstract[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"UMIfoliosep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"code\"\n    },\n    {\n      \"name\": \"UMImargins\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ucdavisthesis#c\": [\n      \"MA\",\n      \"MS\",\n      \"ME\",\n      \"PhD\",\n      \"DEngr\",\n      \"single\",\n      \"double\",\n      \"twoside\",\n      \"openright\",\n      \"openany\",\n      \"draft\",\n      \"draftcls\",\n      \"final\",\n      \"nofigureslist\",\n      \"notableslist\",\n      \"nohyphenatetitles\",\n      \"hyphenatetitles\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"13pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ucdavisthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-udes-genie-these.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"flafter\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ConfigurationDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConfigurationDocument{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ConfigurationDocument\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Auteur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Auteur{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Date\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Date{${1:mois}}{${2:année}}\"\n      }\n    },\n    {\n      \"name\": \"Dedicace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dedicace{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"Directeur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Directeur{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Directrice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Directrice{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Codirecteur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Codirecteur{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Codirectrice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Codirectrice{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Evaluateur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Evaluateur{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Evaluatrice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Evaluatrice{${1:prénom}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MotsClesAnglais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MotsClesAnglais{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"MotsClesFrancais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MotsClesFrancais{${1:mots-clés%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitreAnglais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitreAnglais{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitreFrancais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitreFrancais{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/udes-genie-these#c\": [\n      \"livre\",\n      \"simple\",\n      \"bibtex\",\n      \"biblatex\"\n    ],\n    \"\\\\ConfigurationDocument\": [\n      \"langue=${1|francais,english|}\",\n      \"type=${1|dprmaitrise,dprdoctorat,essai,memoire,these|}\",\n      \"programme=${1|electrique,mecanique,aerospatial,chimique,civil|}\",\n      \"lignes\",\n      \"liste-figures\",\n      \"liste-tableaux\",\n      \"fichier-resume-francais={${1:fichier}}\",\n      \"fichier-resume-anglais={${1:fichier}}\",\n      \"fichier-remerciements={${1:fichier}}\",\n      \"fichier-lexique={${1:fichier}}\",\n      \"fichier-symboles={${1:fichier}}\",\n      \"fichier-acronymes={${1:fichier}}\",\n      \"fichiers-references={${1:bib-fichier}}\",\n      \"style-references={${1:bib-style}}\",\n      \"auto-bib\",\n      \"legendes-min\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/udes-genie-these#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-udiss.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"expkv-def\"\n    },\n    {\n      \"name\": \"expkv-opt\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"doclicense\",\n      \"if\": \"license=CC-BY-SA\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pronouns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pronouns{${1:pronouns%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stream\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stream{${1:stream%text}}\"\n      }\n    },\n    {\n      \"name\": \"discipline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discipline{${1:discipline%text}}\"\n      }\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:supervisor}}\"\n      }\n    },\n    {\n      \"name\": \"university\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"university{${1:university}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"logo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dissertationstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dissertationstyle{${1:style}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/udiss#c\": [\n      \"title={${1:text}}\",\n      \"author={${1:author}}\",\n      \"pronouns={${1:pronouns}}\",\n      \"subtitle={${1:text}}\",\n      \"shorttitle={${1:text}}\",\n      \"stream={${1:stream}}\",\n      \"discipline={${1:discipline}}\",\n      \"degree={${1:degree}}\",\n      \"supervisor={${1:supervisor}}\",\n      \"university={${1:university}}\",\n      \"department={${1:department}}\",\n      \"logo=${1:imagefile}\",\n      \"logo*=${1:code}\",\n      \"language={${1:babel language names}}\",\n      \"ldfbabel={${1:babel ldf language names}}\",\n      \"nofontwarning\",\n      \"license=${1|all-rights-reserved,CC-BY-SA,GFDL|}\",\n      \"copyright-yrs=${1:years}\",\n      \"localcopyright=${1:word}\",\n      \"placeholders\",\n      \"lot\",\n      \"lof\",\n      \"declaration\",\n      \"declarationtxt=${1:text}\",\n      \"decllocal=${1:word}\",\n      \"blind\",\n      \"framed-title\",\n      \"print\",\n      \"norefcolors\",\n      \"udisslinkclr=\",\n      \"udissurlclr=\",\n      \"udissciteclr=\",\n      \"oldstylenumoff\",\n      \"oldone\",\n      \"fulfilment=${1:text}\",\n      \"explicitext\",\n      \"ignorefsoff\",\n      \"rmfeatures={${1:font features}}\",\n      \"sffeatures={${1:font features}}\",\n      \"ttfeatures={${1:font features}}\",\n      \"mathfeatures={${1:font features}}\",\n      \"rmfntext=${1|ttf,otf|}\",\n      \"sffntext=${1|ttf,otf|}\",\n      \"ttfntext=${1|ttf,otf|}\",\n      \"mathfntext=${1|ttf,otf|}\",\n      \"logowidth=${1:factor}\",\n      \"logoheight=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/udiss#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ujarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ujarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ujarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ujbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ujbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ujbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ujreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ujreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ujreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ukbill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"ccicons\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"lettrine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drafter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printdrafter\"\n    },\n    {\n      \"name\": \"billcopyright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billcopyright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbillcopyright\"\n    },\n    {\n      \"name\": \"publishedby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishedby{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printpublishedby\"\n    },\n    {\n      \"name\": \"billtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbilltitle\"\n    },\n    {\n      \"name\": \"billto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbillto\"\n    },\n    {\n      \"name\": \"humanrights\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"humanrights{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printhumanrights\"\n    },\n    {\n      \"name\": \"exptitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exptitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printexptitle\"\n    },\n    {\n      \"name\": \"exptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printexptext\"\n    },\n    {\n      \"name\": \"billnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printbillnum\"\n    },\n    {\n      \"name\": \"whereas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whereas{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printwhereas\"\n    },\n    {\n      \"name\": \"billday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billday{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"printbillday\"\n    },\n    {\n      \"name\": \"billmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billmonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"printbillmonth\"\n    },\n    {\n      \"name\": \"billyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"billyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"printbillyear\"\n    },\n    {\n      \"name\": \"startschedule\"\n    },\n    {\n      \"name\": \"schedule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schedule{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"schdpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schdpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"numstat\"\n    },\n    {\n      \"name\": \"alphstat\"\n    },\n    {\n      \"name\": \"romstat\"\n    },\n    {\n      \"name\": \"twoalphstat\"\n    },\n    {\n      \"name\": \"nostat\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ukbill#c\": [\n      \"private\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ukbill#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ulect-l.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-amsbook\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ulect-l#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"8pt\",\n      \"9pt\",\n      \"a4paper\",\n      \"centertags\",\n      \"draft\",\n      \"final\",\n      \"fleqn\",\n      \"landscape\",\n      \"leqno\",\n      \"letterpaper\",\n      \"openright\",\n      \"openany\",\n      \"noamsfonts\",\n      \"nomath\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"oneside\",\n      \"portrait\",\n      \"reqno\",\n      \"tbtags\",\n      \"titlepage\",\n      \"twocolumn\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ulect-l#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ulthese.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bname\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"titre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titre{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"soustitre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soustitre{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"auteur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"auteur{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"programme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"programme{${1:programme%text}}\"\n      }\n    },\n    {\n      \"name\": \"direction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direction{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"codirection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codirection{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"frontispice\"\n    },\n    {\n      \"name\": \"dedicace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicace{${1:texte%text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraphe{${1:texte%text}}{${2:auteur}}\"\n      }\n    },\n    {\n      \"name\": \"faculteUL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculteUL{${1:faculté}}\"\n      }\n    },\n    {\n      \"name\": \"faculteUdeS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculteUdeS{${1:faculté}}\"\n      }\n    },\n    {\n      \"name\": \"faculteUQO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculteUQO{${1:faculté}}\"\n      }\n    },\n    {\n      \"name\": \"faculteUQAC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faculteUQAC{${1:faculté}}\"\n      }\n    },\n    {\n      \"name\": \"annee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annee{${1:année}}\"\n      }\n    },\n    {\n      \"name\": \"univcotutelle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"univcotutelle{${1:université \\\\\\\\ location}}\"\n      }\n    },\n    {\n      \"name\": \"gradecotutelle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradecotutelle{${1:grade}}\"\n      }\n    },\n    {\n      \"name\": \"univbidiplomation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"univbidiplomation{${1:université \\\\\\\\ location}}\"\n      }\n    },\n    {\n      \"name\": \"gradebidiplomation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradebidiplomation{${1:grade}}\"\n      }\n    },\n    {\n      \"name\": \"pagetitre\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ulthese#c\": [\n      \"nonatbib\",\n      \"nobabel\",\n      \"nohyperref\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"LLD\",\n      \"DMus\",\n      \"DPsy\",\n      \"DThP\",\n      \"PhD\",\n      \"MATDR\",\n      \"MArch\",\n      \"MA\",\n      \"LLM\",\n      \"MErg\",\n      \"MMus\",\n      \"MSc\",\n      \"MScGeogr\",\n      \"MServSoc\",\n      \"MTravSoc\",\n      \"MPsEd\",\n      \"multifacultaire\",\n      \"cotutelle\",\n      \"bidiplomation\",\n      \"extensionUdeS\",\n      \"extensionUQO\",\n      \"extensionUQAC\",\n      \"examen\",\n      \"essai\",\n      \"projet\",\n      \"stage\",\n      \"english\",\n      \"french\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ulthese#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-unbtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-abntex2\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"subfig\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"icomma\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"stickstootext\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"inconsolata\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ano\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ano{${1:ano}}\"\n      }\n    },\n    {\n      \"name\": \"asptname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autori\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"autori[${3:}]{${1:Nome}}{${2:Sobrenome}}\"\n      }\n    },\n    {\n      \"name\": \"autori\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autori{${1:Nome}}{${2:Sobrenome}}\"\n      }\n    },\n    {\n      \"name\": \"autorii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"autorii[${3:}]{${1:Nome}}{${2:Sobrenome}}\"\n      }\n    },\n    {\n      \"name\": \"autorii\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"autorii{${1:Nome}}{${2:Sobrenome}}\"\n      }\n    },\n    {\n      \"name\": \"autoriinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autoriisobrenome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autorinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autorisobrenome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BackgroundPic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coorientnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coorientsobrenome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coorienttitulo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dia{${1:dia}}\"\n      }\n    },\n    {\n      \"name\": \"ecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrynumberwithprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entrynumberwithprefix{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"epname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fichacatalografica\"\n    },\n    {\n      \"name\": \"imprimirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprimircurso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprimircutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprimirdia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imprimirfolhadeaprovacao\"\n    },\n    {\n      \"name\": \"imprimirmes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instituicaoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instituicaoii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instituicaoiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kwordi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwordi{${1:Keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"kwordii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwordii{${1:Keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"kwordiii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwordiii{${1:Keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"kwordiiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kwordiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kwordinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kwordiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwordiv{${1:Keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"kwordivnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancai{${1:Nome}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaifuncao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaifuncao{${1:Funcao}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaifuncaonome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaii{${1:Nome}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaiifuncao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaiifuncao{${1:Funcao}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaiifuncaonome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaiii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaiii{${1:Nome}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaiiifuncao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaiiifuncao{${1:Funcao}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaiiifuncaonome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaiiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancainome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaiv{${1:Nome}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaivfuncao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancaivfuncao{${1:Funcao}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancaivfuncaonome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancaivnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancav\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancav{${1:Nome}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancavfuncao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"membrodabancavfuncao{${1:Funcao}}\"\n      }\n    },\n    {\n      \"name\": \"membrodabancavfuncaonome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"membrodabancavnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mes{${1:mes}}\"\n      }\n    },\n    {\n      \"name\": \"numerocutter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numerocutter{${1:numero}}\"\n      }\n    },\n    {\n      \"name\": \"orientnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orientsobrenome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orienttitulo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pchavei\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pchavei{${1:Palavra chave%text}}\"\n      }\n    },\n    {\n      \"name\": \"pchaveii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pchaveii{${1:Palavra chave%text}}\"\n      }\n    },\n    {\n      \"name\": \"pchaveiii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pchaveiii{${1:Palavra chave%text}}\"\n      }\n    },\n    {\n      \"name\": \"pchaveiiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pchaveiinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pchaveinome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pchaveiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pchaveiv{${1:Palavra chave%text}}\"\n      }\n    },\n    {\n      \"name\": \"pchaveivnome\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"source{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thmnamebr\"\n    },\n    {\n      \"name\": \"thmnameen\"\n    },\n    {\n      \"name\": \"thname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipocurso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipocurso{${1:Programa%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/unbtex#c\": [\n      \"article\",\n      \"twocolumn\",\n      \"chapter=TITLE\",\n      \"section=TITLE\",\n      \"subsection=TITLE\",\n      \"subsubsection=TITLE\",\n      \"subsubsubsection=TITLE\",\n      \"sumario=${1|abnt-6027-2012,tradicional|}\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"a7paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"b7paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twoside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/unbtex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-unifith.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IDnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IDnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"cycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cycle{${1:cycle}}\"\n      }\n    },\n    {\n      \"name\": \"courseorganizer\"\n    },\n    {\n      \"name\": \"courseorganizer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"courseorganizer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AcademicYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcademicYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coadvisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"customcoadvisorlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customcoadvisorlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"director\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"director{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"customdirectorlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customdirectorlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examiner{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"examiner[${2:role}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"thesistype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesistype{${1:type%text}}\"\n      }\n    },\n    {\n      \"name\": \"ISBN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"copyyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightstatement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightstatement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versiondate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versiondate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"website\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"website{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"authoremail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authoremail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"reviewerlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewerlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"iu\"\n    },\n    {\n      \"name\": \"der\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"der{${1:func}}{${2:vars}}\"\n      }\n    },\n    {\n      \"name\": \"pder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pder{${1:func}}{${2:vars}}\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rb{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"rp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rp{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"tb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tb{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"tp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tp{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"un\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"un{${1:units%formula}}\"\n      }\n    },\n    {\n      \"name\": \"g\"\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"celsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"angstrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"di\"\n    },\n    {\n      \"name\": \"x\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"acknowledgments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/unifith#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"layout=${1|a5paper,b5paper|}\",\n      \"draft\",\n      \"oneside\",\n      \"twoside\",\n      \"binding=\",\n      \"noexaminfo\",\n      \"nodefaultfont\",\n      \"romandiff\",\n      \"fem\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/unifith#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-unigrazpub.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-scrbook\"\n    },\n    {\n      \"name\": \"roboto\"\n    },\n    {\n      \"name\": \"sourceserifpro\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex-chicago\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"doclicense\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"edition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edition{${1:edition%text}}\"\n      }\n    },\n    {\n      \"name\": \"insertedition\"\n    },\n    {\n      \"name\": \"insertpublishersaddress\"\n    },\n    {\n      \"name\": \"insertauthor\"\n    },\n    {\n      \"name\": \"insertdate\"\n    },\n    {\n      \"name\": \"insertpublishers\"\n    },\n    {\n      \"name\": \"Article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Article{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Article\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Article[${2:options%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\Article#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"listofauthors\"\n    },\n    {\n      \"name\": \"HUGE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TocAuthorEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TocAuthorEntry{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"currentarticlelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeimprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeimprint{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citearticleauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citearticleauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"publishersaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishersaddress{${1:address%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/unigrazpub#c\": [\n      \"collection\",\n      \"license-type=${1:type}\",\n      \"license-modifier=${1|by,by-sa,by-nd,by-nc,by-nc-sa,by-nc-nd|}\",\n      \"license-version=${1|1.0,3.0,4.0|}\"\n    ],\n    \"\\\\Article#c\": [\n      \"author=${1:author}\",\n      \"authorkeys={${1:author1,author2,...}}\",\n      \"head=${1:text}\",\n      \"subtitle=${1:text}\",\n      \"imprint=${1:text}\",\n      \"doi=${1:DOI}\",\n      \"license-type=${1:type}\",\n      \"license-modifier=${1|by,by-sa,by-nd,by-nc,by-nc-sa,by-nc-nd|}\",\n      \"license-version=${1|1.0,3.0,4.0|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/unigrazpub#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-expose.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mathptmx\"\n    },\n    {\n      \"name\": \"uarial\"\n    },\n    {\n      \"name\": \"sourcecodepro\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=firstpage\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fonts=otf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"studienkennzahl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studienkennzahl{${1:degree program code}}\"\n      }\n    },\n    {\n      \"name\": \"studienrichtung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studienrichtung{${1:field of study%text}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"advisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"footnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-expose#c\": [\n      \"all\",\n      \"biblatex\",\n      \"apa\",\n      \"caption\",\n      \"ref\",\n      \"covington\",\n      \"draftmark=${1|true,false,firstpage|}\",\n      \"microtype\",\n      \"polyglossia\",\n      \"fonts=${1|ps,otf,none|}\",\n      \"fontenc={${1:enc1,enc2,...}}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"issueeditor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-expose#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-handout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"sourceserifpro\"\n    },\n    {\n      \"name\": \"sourcesanspro\"\n    },\n    {\n      \"name\": \"sourcecodepro\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=firstpage\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fonts=otf\"\n    },\n    {\n      \"name\": \"lastpage\",\n      \"if\": \"totalpages\"\n    },\n    {\n      \"name\": \"lastpage\",\n      \"if\": \"totalpages=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"hoDept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoDept{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoDept\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoDept[${2:English name%text}]{${1:German name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoName{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"hoName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoName[${2:English names}]{${1:German names}}\"\n      }\n    },\n    {\n      \"name\": \"hoShortName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoShortName{${1:short names}}\"\n      }\n    },\n    {\n      \"name\": \"hoShortName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoShortName[${2:English names}]{${1:German names}}\"\n      }\n    },\n    {\n      \"name\": \"hoFunction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoFunction{${1:function%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoFunction\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoFunction[${2:English name%text}]{${1:German name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoSecName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoSecName{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoShortSecName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoShortSecName{${1:short name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoSecFunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoSecFunction{${1:function%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoSecFunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoSecFunction[${2:English name%text}]{${1:German name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoStreet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoStreet{${1:street%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoPostCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoPostCode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"hoLoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoLoc{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoLoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoLoc[${2:English name%text}]{${1:German name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoCountry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoCountry{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"hoCountry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoCountry[${2:English name}]{${1:German name}}\"\n      }\n    },\n    {\n      \"name\": \"hoPhone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoPhone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"hoFax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoFax{${1:fax number}}\"\n      }\n    },\n    {\n      \"name\": \"hoEMail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoEMail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"hoUrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoUrl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hoTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoTitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoTitle[${2:header%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoTitlePrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoTitlePrefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"hoSubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoSubtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoEvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoEvent{${1:event%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoEvent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoEvent[${2:header%text}]{${1:event%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoEventLoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoEventLoc{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoEventLoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoEventLoc[${2:header%text}]{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"hoEventDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoEventDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"hoEventDate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoEventDate[${2:header%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"hoDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hoDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"hoDate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hoDate[${2:header%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"Bibheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bibheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"aftertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeevent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eventline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headeroffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heventtitlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umbruch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umbruch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umbruch[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-handout#c\": [\n      \"all\",\n      \"biblatex\",\n      \"apa\",\n      \"caption\",\n      \"ref\",\n      \"covington\",\n      \"draftmark=${1|true,false,firstpage|}\",\n      \"microtype\",\n      \"polyglossia\",\n      \"fonts=${1|ps,otf,none|}\",\n      \"fontenc={${1:enc1,enc2,...}}\",\n      \"fontsize=${1:size}\",\n      \"papersize=${1:size}\",\n      \"landscape\",\n      \"pplogo\",\n      \"bwlogo\",\n      \"swaphead\",\n      \"totalpages\",\n      \"firstpagination\",\n      \"breakevent\",\n      \"widesubtitle\",\n      \"cd=${1|german,english|}\",\n      \"punchmarks\",\n      \"foldmarks\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"issueeditor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-handout#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-paper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"uarial\"\n    },\n    {\n      \"name\": \"sourcecodepro\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=firstpage\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fonts=otf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"studienkennzahl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studienkennzahl{${1:degree program code}}\"\n      }\n    },\n    {\n      \"name\": \"matrikelnr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrikelnr{${1:registration number}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"course{${1:type%keyvals}}{${2:course title%text}}\",\n        \"keys\": [\n          \"\\\\course\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semester\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"semester{${1:type%keyvals}}{${2:year}}\",\n        \"keys\": [\n          \"\\\\semester\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"instructor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instructor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"texttype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttype{${1:text type}}\"\n      }\n    },\n    {\n      \"name\": \"makedeclaration\"\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"footnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-paper#c\": [\n      \"all\",\n      \"biblatex\",\n      \"apa\",\n      \"caption\",\n      \"ref\",\n      \"covington\",\n      \"draftmark=${1|true,false,firstpage|}\",\n      \"microtype\",\n      \"polyglossia\",\n      \"fonts=${1|ps,otf,none|}\",\n      \"fontenc={${1:enc1,enc2,...}}\",\n      \"short\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"issueeditor\"\n    ],\n    \"\\\\course\": [\n      \"ps\",\n      \"se\",\n      \"vo\",\n      \"ue\",\n      \"ko\",\n      \"pv\"\n    ],\n    \"\\\\semester\": [\n      \"ss\",\n      \"ws\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-paper#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-poster.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-beamer\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"beamerposter\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fonts=otf\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:in footline}]{${1:in title}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"eventtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eventtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eventlocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eventlocation{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"eventdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eventdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"eventlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eventlogo{${1:graphics%text}}\"\n      }\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bibheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bibheading{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"restspace\"\n    },\n    {\n      \"name\": \"restspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restspace[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"headeroffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeevent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umbruch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umbruch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umbruch[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"lmoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bluebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"redbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"greenbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"blueframedbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"redframedbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"greenframedbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-poster#c\": [\n      \"fonts=${1|ps,otf,none|}\",\n      \"fontsize=${1:size}\",\n      \"fontenc={${1:enc1,enc2,...}}\",\n      \"cd=${1|german,english|}\",\n      \"pagesize=${1|a0,a1,a2,a3,a4|}\",\n      \"portrait\",\n      \"smallmargins\",\n      \"scale=${1:factor}\",\n      \"polyglossia\",\n      \"all\",\n      \"apa\",\n      \"biblatex\",\n      \"caption\",\n      \"covington\",\n      \"microtype\",\n      \"ref\",\n      \"tcolorbox\",\n      \"draftmark\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"issueeditor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-poster#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrreprt\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"sourcesanspro\"\n    },\n    {\n      \"name\": \"sourcecodepro\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=firstpage\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"polyglossia=true\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa\"\n    },\n    {\n      \"name\": \"pdfx\",\n      \"if\": \"pdfa=true\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fonts=otf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:pre}]{${1:bibid}}[${4:pre}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"apa=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"studienkennzahl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studienkennzahl{${1:degree program code}}\"\n      }\n    },\n    {\n      \"name\": \"studienrichtung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studienrichtung{${1:field of study%text}}\"\n      }\n    },\n    {\n      \"name\": \"thesistype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesistype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\thesistype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volume{${1:current}}{${2:total}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:custom degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"makedeclaration\"\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"footnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-thesis#c\": [\n      \"all\",\n      \"biblatex\",\n      \"apa\",\n      \"caption\",\n      \"ref\",\n      \"covington\",\n      \"fdegree\",\n      \"draftmark=${1|true,false,firstpage|}\",\n      \"microtype\",\n      \"polyglossia\",\n      \"pdfa\",\n      \"fonts=${1|ps,otf,none|}\",\n      \"fontenc={${1:enc1,enc2,...}}\",\n      \"titlepage\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\",\n      \"apamaxprtauth=${1:number}\",\n      \"issueeditor\"\n    ],\n    \"\\\\thesistype\": [\n      \"magister\",\n      \"diplom\",\n      \"bachelor\",\n      \"master\",\n      \"diss\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-thesis#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-univie-ling-wlg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"cochineal\"\n    },\n    {\n      \"name\": \"sourcesanspro\"\n    },\n    {\n      \"name\": \"DejaVuSansMono\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"doclicense\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"totpages\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"covington\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"prettyref\"\n    },\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex=true\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"expertfonts\"\n    },\n    {\n      \"name\": \"MyriadPro\",\n      \"if\": \"expertfonts\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"expertfonts=true\"\n    },\n    {\n      \"name\": \"MyriadPro\",\n      \"if\": \"expertfonts=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=true\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draftmark=firstpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibdateunified\",\n      \"if\": \"biblatex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mkbibdateunified{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"aff*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aff*[${2:m|f}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"aff*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aff*{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"aff\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aff[${2:m|f}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"aff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aff{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"AfterInputencOrAtEndPreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterInputencOrAtEndPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:short names}]{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"computelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Concept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Concept{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"condbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condbreak{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"edboardAL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edboardAL{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"edboardGL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edboardGL{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"edboardHL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edboardHL{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Expression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expression{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"impressum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includefinalpaper\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includefinalpaper[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includefinalpaper\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includefinalpaper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includefinalpaper{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"issue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"issue{${1:number}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"issueeditors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issueeditors{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"issuesubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuesubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"issuetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jedboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jedboard{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"jeditors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jeditors{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"lastpageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ljobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"makeissuetitle\"\n    },\n    {\n      \"name\": \"maxfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Meaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meaning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"motto[${2:source}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"motto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"startpageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"techboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"techboard{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"thestartpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"urlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wlgurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weblink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"weblink\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"weblink{${1:URL}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"SetURLDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetURLDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"urldate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldate{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/univie-ling-wlg#c\": [\n      \"biblatex\",\n      \"covington\",\n      \"expertfonts\",\n      \"titlepage=${1|none,specialprint,issue|}\",\n      \"preprint\",\n      \"peerrev\",\n      \"type=${1|paper,review|}\",\n      \"draftmark=${1|true,false,firstpage|}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"issueeditor\",\n      \"issueeditor\"\n    ],\n    \"\\\\includefinalpaper\": [\n      \"author=${1:name}\",\n      \"title=${1:text}\",\n      \"subtitle=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/univie-ling-wlg#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-upmethodology-document.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"a4wide\"\n    },\n    {\n      \"name\": \"upmethodology-document\"\n    },\n    {\n      \"name\": \"upmethodology-extension\"\n    },\n    {\n      \"name\": \"upmethodology-frontpage\"\n    },\n    {\n      \"name\": \"upmethodology-backpage\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"class-book\",\n      \"if\": \"book\"\n    },\n    {\n      \"name\": \"upmethodology-task\",\n      \"if\": \"taskpackage\"\n    },\n    {\n      \"name\": \"upmethodology-spec\",\n      \"if\": \"specpackage\"\n    },\n    {\n      \"name\": \"upmethodology-code\",\n      \"if\": \"codepackage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"backmatter\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/upmethodology-document#c\": [\n      \"twoside\",\n      \"oneside\",\n      \"french\",\n      \"francais\",\n      \"english\",\n      \"standardlists\",\n      \"nodocumentinfo\",\n      \"documentinfo\",\n      \"nopubpage\",\n      \"pubpage\",\n      \"nofrontmatter\",\n      \"frontmatter\",\n      \"nofrontcover\",\n      \"frontcover\",\n      \"nobackcover\",\n      \"backcover\",\n      \"taskpackage\",\n      \"specpackage\",\n      \"codepackage\",\n      \"book\",\n      \"report\",\n      \"article\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/upmethodology-document#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ut-thesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"gradyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"department[${2:pre text%text}]{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrighttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrighttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headerstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerstyle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"acknowledgements\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ut-thesis#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\",\n      \"equalmargins\",\n      \"unequalmargins\",\n      \"oneside\",\n      \"twoside\",\n      \"narrowmargins\",\n      \"normalmargins\",\n      \"widemargins\",\n      \"extrawidemargins\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ut-thesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-utarticle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/utarticle#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/utarticle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-utbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/utbook#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/utbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-utexasthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-report\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"declaretypist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaretypist{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"graduationdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduationdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"headingsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeappendix\"\n    },\n    {\n      \"name\": \"makebibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makebibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"maketableofcontents\"\n    },\n    {\n      \"name\": \"othercommitteemembers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othercommitteemembers{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"address\"\n    },\n    {\n      \"name\": \"dedication\"\n    },\n    {\n      \"name\": \"middlecenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vita\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/utexasthesis#c\": [\n      \"masters\",\n      \"copyright\",\n      \"draft\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/utexasthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-utreport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    },\n    {\n      \"name\": \"plext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibname\"\n    },\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"heisei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/utreport#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"a4j\",\n      \"a5j\",\n      \"b4j\",\n      \"b5j\",\n      \"a4p\",\n      \"a5p\",\n      \"b4p\",\n      \"b5p\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"landscape\",\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tate\",\n      \"oneside\",\n      \"twoside\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openleft\",\n      \"openany\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"disablejfam\",\n      \"mathrmmc\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/utreport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-uuthesis2e.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"abstracttitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"approvaldepartment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"approvaldepartment{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"boxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chairtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chairtitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"committeeapproval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"committeechair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"committeechair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"CSREPORTTITLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicationpage\"\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degree{${1:degree title%text}}\"\n      }\n    },\n    {\n      \"name\": \"department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"departmentchair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"departmentchair{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublespacedheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EMX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstreader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstreader{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fivelevels\"\n    },\n    {\n      \"name\": \"fourlevels\"\n    },\n    {\n      \"name\": \"fourthreader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthreader{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frontmatter{${1:required file}}{${2:file}}{${3:title}}\"\n      }\n    },\n    {\n      \"name\": \"graduatedean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graduatedean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"honorsadvisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honorsadvisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"honorsdepartment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honorsdepartment{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"honorsdirector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honorsdirector{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"honorssupervisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"honorssupervisor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"HONORSTITLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainheadingtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mainheadingtext{${1:text}}{${2:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"mainheadingwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minilength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusfourthline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minushalfline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionalfront\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionalfront{${1:title}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"pf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plusfourthline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plushalfline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plusline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"preface{${1:file}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"prefacesection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prefacesection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proofline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proofline{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"ReaderPerson\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReaderPerson{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"readingapproval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reportnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reportnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"reporttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reporttitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"requiredfrontmatter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"requiredfrontmatter{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"secondreader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondreader{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"singlespacedheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"submitdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submitdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"thechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesisTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesisTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thesistype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesistype{${1:thesis|dissertation}}\"\n      }\n    },\n    {\n      \"name\": \"thesubsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdreader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirdreader{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"threelevels\"\n    },\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"topicslabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topicslabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"twopagefigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twopagefigure{${1:caption%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"ulabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ulabel{${1:label}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"uunumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uunumberline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightpage\"\n    },\n    {\n      \"name\": \"doublespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixchapterheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatterformat\"\n    },\n    {\n      \"name\": \"maintext\"\n    },\n    {\n      \"name\": \"optionalfront\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionalfront{${1:title}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"singlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesisTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesisTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"tracingoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"approvaldepartment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"approvaldepartment{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"bfunderline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bfunderline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chairdateapproved\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chairdateapproved{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dissertationapproval\"\n    },\n    {\n      \"name\": \"firstdateapproved\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstdateapproved{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"fourthdateapproved\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthdateapproved{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"seconddateapproved\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seconddateapproved{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"thirddateapproved\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thirddateapproved{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"epigraph\"\n    },\n    {\n      \"name\": \"doublespace\"\n    },\n    {\n      \"name\": \"Proof\"\n    },\n    {\n      \"name\": \"singlespace\"\n    },\n    {\n      \"name\": \"topics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:template%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/uuthesis2e#c\": [\n      \"11pt\",\n      \"12pt\",\n      \"Chicago\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"report\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"honors\",\n      \"csreport\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/uuthesis2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-verifica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"nccmath\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"gensymb\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"tabto\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"class-extarticle\",\n      \"if\": \"14pt\"\n    },\n    {\n      \"name\": \"cmbright\",\n      \"if\": \"senzagrazie\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"biglabelbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biglabelbox{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"CalcNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CalcNumber{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"classe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classe{${1:classe}}\"\n      }\n    },\n    {\n      \"name\": \"data\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"data{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"ddfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"Del\"\n    },\n    {\n      \"name\": \"del\"\n    },\n    {\n      \"name\": \"denfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"denfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"disciplina\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disciplina{${1:disciplina}}\"\n      }\n    },\n    {\n      \"name\": \"dotrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"dotword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"dss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dss{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"eps\"\n    },\n    {\n      \"name\": \"fattorevf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fattorevf{${1:fattore}}\"\n      }\n    },\n    {\n      \"name\": \"intestazione\"\n    },\n    {\n      \"name\": \"intestazionedefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intestazionerighe\"\n    },\n    {\n      \"name\": \"intestazionesemplice\"\n    },\n    {\n      \"name\": \"istituto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"istituto{${1:istituto}}\"\n      }\n    },\n    {\n      \"name\": \"labelbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelbox{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"labeltest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labeltest{${1:labeltype}}\"\n      }\n    },\n    {\n      \"name\": \"lineanome\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"numfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"punti\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"punti[${2:testo aggiuntivo%text}]{${1:punteggio}}\"\n      }\n    },\n    {\n      \"name\": \"punti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"punti{${1:punteggio}}\"\n      }\n    },\n    {\n      \"name\": \"puntiadestra\"\n    },\n    {\n      \"name\": \"puntiman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"puntiman[${2:testo aggiuntivo%text}]{${1:punteggio}}\"\n      }\n    },\n    {\n      \"name\": \"puntiman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puntiman{${1:punteggio}}\"\n      }\n    },\n    {\n      \"name\": \"puntipt\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"Repeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Repeat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restorephi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoretheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"riga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"riga{${1:numero di righe}}\"\n      }\n    },\n    {\n      \"name\": \"tempo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tempo{${1:tempo}}\"\n      }\n    },\n    {\n      \"name\": \"tipologia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipologia{${1:tipologia}}\"\n      }\n    },\n    {\n      \"name\": \"totpunti\"\n    },\n    {\n      \"name\": \"totpunti\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"totpunti[${1:calcolo}]\"\n      }\n    },\n    {\n      \"name\": \"tsa\"\n    },\n    {\n      \"name\": \"tso\"\n    },\n    {\n      \"name\": \"unitx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitx{${1:units%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vartotpunti\"\n    },\n    {\n      \"name\": \"vartotpunti\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vartotpunti[${1:calcolo}]\"\n      }\n    },\n    {\n      \"name\": \"verofalso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"verofalso[${2:factor}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"verofalso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verofalso{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vf\"\n    },\n    {\n      \"name\": \"vfitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vfitem{${1:testo%text}}\"\n      }\n    },\n    {\n      \"name\": \"Z\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"esercizi\"\n    },\n    {\n      \"name\": \"esercizi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{esercizi},\\\\begin{test},\\\\begin{test-orizz},\\\\begin{test-orizz-newline},\\\\begin{test-vf},\\\\begin{test-verofalso}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"test\"\n    },\n    {\n      \"name\": \"test\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{esercizi},\\\\begin{test},\\\\begin{test-orizz},\\\\begin{test-orizz-newline},\\\\begin{test-vf},\\\\begin{test-verofalso}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/verifica#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"default\",\n      \"itembullet\",\n      \"intestazionerighe\",\n      \"intestazionesemplice\",\n      \"senzagrazie\"\n    ],\n    \"\\\\begin{test-vf},\\\\begin{test-verofalso}\": [\n      \"fattorevf=${1:fattore}\"\n    ],\n    \"\\\\begin{esercizi},\\\\begin{test},\\\\begin{test-orizz},\\\\begin{test-orizz-newline},\\\\begin{test-vf},\\\\begin{test-verofalso}\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/verifica#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-webquiz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"bbding\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer{${1:correct answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"answer[${2:comparison type%keyvals}]{${1:correct answer%text}}\",\n        \"keys\": [\n          \"\\\\answer,\\\\answer*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"answer*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer*{${1:correct answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"answer*[${2:comparison type%keyvals}]{${1:correct answer%text}}\",\n        \"keys\": [\n          \"\\\\answer,\\\\answer*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"whenRight\"\n    },\n    {\n      \"name\": \"whenWrong\"\n    },\n    {\n      \"name\": \"correct\"\n    },\n    {\n      \"name\": \"incorrect\"\n    },\n    {\n      \"name\": \"feedback\"\n    },\n    {\n      \"name\": \"dref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dref[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dref*[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qref[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qref*[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Qref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Qref{${1:question number}}\"\n      }\n    },\n    {\n      \"name\": \"Qref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Qref[${2:text}]{${1:question number}}\"\n      }\n    },\n    {\n      \"name\": \"Qref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Qref*{${1:question number}}\"\n      }\n    },\n    {\n      \"name\": \"Qref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Qref*[${2:text}]{${1:question number}}\"\n      }\n    },\n    {\n      \"name\": \"quiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quiz{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"quiz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quiz[${2:URL}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"quiz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quiz*{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"quiz*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quiz*[${2:URL}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"BreadCrumbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreadCrumbs{${1:navigation spec%URL}}\"\n      }\n    },\n    {\n      \"name\": \"BreadCrumb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BreadCrumb{${1:breadcrumb}}\"\n      }\n    },\n    {\n      \"name\": \"Department\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Department{${1:department%text}}\"\n      }\n    },\n    {\n      \"name\": \"DepartmentURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DepartmentURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Institution{${1:institution%text}}\"\n      }\n    },\n    {\n      \"name\": \"InstitutionURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InstitutionURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"QuizzesURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuizzesURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"UnitCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnitCode{${1:unit code}}\"\n      }\n    },\n    {\n      \"name\": \"UnitName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnitName{${1:unit name%text}}\"\n      }\n    },\n    {\n      \"name\": \"UnitURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnitURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayAsImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisplayAsImage{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayAsImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisplayAsImage[${2:options}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"thechoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thediscussion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webquiz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webquiz{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AddIniFileKeyValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddIniFileKeyValue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddIniFileValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddIniFileValue{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"inifile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddEntry{${1:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"discussion\"\n    },\n    {\n      \"name\": \"quizindex\"\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{choice}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dicussion\"\n    },\n    {\n      \"name\": \"dicussion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:short heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"dicussion\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:short heading%text}][${2:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"quizindex\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/webquiz#c\": [\n      \"fixedorder\",\n      \"randomorder\",\n      \"hidesidemenu\",\n      \"sidemenu\",\n      \"language=${1:language}\",\n      \"onepage\",\n      \"separatepages\",\n      \"pst2pdf\",\n      \"separatepages\",\n      \"showsidemenu\",\n      \"theme=${1|blue,darkblue,darkred,default,earthy,fresh,light,lively,muted,sleek,spring,vibrant|}\",\n      \"tikz\"\n    ],\n    \"\\\\answer,\\\\answer*\": [\n      \"complex\",\n      \"integer\",\n      \"lowercase\",\n      \"number\",\n      \"string\"\n    ],\n    \"\\\\begin{choice}\": [\n      \"single\",\n      \"multiple\",\n      \"columns=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/webquiz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-wgexport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-standalone\"\n    },\n    {\n      \"name\": \"wargame\"\n    },\n    {\n      \"name\": \"class-beamer\",\n      \"if\": \"beamer\"\n    },\n    {\n      \"name\": \"class-beamer\",\n      \"if\": \"beamer=true\"\n    },\n    {\n      \"name\": \"multido\",\n      \"if\": \"multido\"\n    },\n    {\n      \"name\": \"multido\",\n      \"if\": \"multido=true\"\n    },\n    {\n      \"name\": \"preview\",\n      \"if\": \"preview\"\n    },\n    {\n      \"name\": \"preview\",\n      \"if\": \"preview=true\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks=true\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz=true\"\n    },\n    {\n      \"name\": \"varwidth\",\n      \"if\": \"varwidth\"\n    },\n    {\n      \"name\": \"varwidth\",\n      \"if\": \"varwidth=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"info\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"info{${1:image-name}}{${2:category}}{${3:subcategory}}\"\n      }\n    },\n    {\n      \"name\": \"info*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"info*{${1:image-name}}{${2:category}}{${3:subcategory}}\"\n      }\n    },\n    {\n      \"name\": \"chitimages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chitimages{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"chitimages\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chitimages[${2:faction}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"chitimages\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chitimages[${2:faction}][${3:TikZ keys}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"doublechitimages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublechitimages{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"doublechitimages\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublechitimages[${2:faction}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"doublechitimages\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"doublechitimages[${2:faction}][${3:TikZ keys}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"dice\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dice{${1:name}}{${2:name}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"dice\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dice[${4:tikz-options}]{${1:name}}{${2:name}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"dice\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"dice[${4:tikz-options}][${5:node-options}]{${1:name}}{${2:name}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"multimathsep\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidisplaymathsep\",\n      \"if\": \"math\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimathsep\",\n      \"if\": \"math=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidisplaymathsep\",\n      \"if\": \"math=true\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"imagelist\"\n    },\n    {\n      \"name\": \"imagelist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:jobname}]\"\n      }\n    },\n    {\n      \"name\": \"boardimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:image-name}}{${2:subcategory}}\"\n      }\n    },\n    {\n      \"name\": \"boardimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:classification}]{${1:image-name}}{${2:subcategory}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\"\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay spec}>\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay spec}>[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay spec}>[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay spec}>[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay spec}>[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\"\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay spec}>\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:overlay spec}>[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]\",\n        \"snippet\": \"<${3:overlay spec}>[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:overlay spec}>[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"<>[][]{}{}\",\n        \"snippet\": \"<${5:overlay spec}>[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<default overlay spec>}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:<default overlay spec>}][${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:<default overlay spec>}][${3:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"[${3:<default overlay spec>}][${4:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneframe\",\n      \"if\": \"beamer=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"multimath\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"multidisplaymath\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"multimath\",\n      \"if\": \"math=true\"\n    },\n    {\n      \"name\": \"multidisplaymath\",\n      \"if\": \"math=true\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/wgexport#c\": [\n      \"noterrainpic\",\n      \"terrainpic\",\n      \"beamer\",\n      \"border=\",\n      \"border={${1:<l/r> <t/b>}}\",\n      \"border={${1:<l> <b> <r> <t>}}\",\n      \"class=${1:class name}\",\n      \"convert\",\n      \"convert={${1:conversion options}}\",\n      \"crop\",\n      \"float\",\n      \"float\",\n      \"gif\",\n      \"gif={${1:conversion options}}\",\n      \"ignoreempty\",\n      \"ignorerest\",\n      \"jpg\",\n      \"jpg={${1:conversion options}}\",\n      \"margin=\",\n      \"math\",\n      \"multi\",\n      \"multi={${1:envname1,envname2,...}}\",\n      \"multido\",\n      \"png\",\n      \"png={${1:conversion options}}\",\n      \"preview\",\n      \"pstricks\",\n      \"tikz\",\n      \"varwidth\",\n      \"varwidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/wgexport#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-willowtreebook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"isomath\"\n    },\n    {\n      \"name\": \"cfr-lm\"\n    },\n    {\n      \"name\": \"eucal\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"embrac\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"braket\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"memhfixc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"CJKutf8\",\n      \"if\": \"ContainsChinese\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Chinese\",\n      \"if\": \"ContainsChinese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Chinese{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Title\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Title{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Author{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"BibliographyFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibliographyFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Colophon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Colophon{${1:colophon%text}}\"\n      }\n    },\n    {\n      \"name\": \"afterpreface\"\n    },\n    {\n      \"name\": \"SubIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubIndex{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"Notation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Notation{${1:term}}{${2:symbol%formula}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"define\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"define{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"chapterSummary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterSummary{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"optionalSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionalSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"imageborderinexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imageborderinexample{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsinexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicsinexample{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsinexample\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicsinexample[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicsinexample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputinexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputinexample{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"scotsMc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scotsMC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scotsMcx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scotsMcx{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tallmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NotationIndexName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paddedpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftAbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightAbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftDoubleAbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightDoubleAbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normNotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normNotation{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"orderForNotationIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orderForNotationIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lengthForNotationIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lengthForNotationIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"normForNotationIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normForNotationIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lcl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ceilForNotationIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceilForNotationIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floorForNotationIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floorForNotationIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyIndexEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyIndexEntry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"idxmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"doidxbookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doidxbookmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"doglobookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doglobookmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stdFigSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:list-entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:list-entry}][${3:subtitle%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printanswers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultArrayRuleColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"writetitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcolr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallboxh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallboxd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallboxw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blanksp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcolouredbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifchaptercolours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptercolourstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptercoloursfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"negphantom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"negphantom{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hintsPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliographyPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:subtitle%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"exampleAndImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"examples\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ReviewExercises\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subproblems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemTheorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HardProblemTheorem\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/willowtreebook#c\": [\n      \"ContainsChinese\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"openright\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\",\n      \"twoside\"\n    ],\n    \"\\\\includegraphicsinexample\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/willowtreebook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xdupgthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"tabularraylibraryfunctional\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xdusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noauxwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noauxwrite{${1:参考文献引用命令}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chapter{${1:英文标题%title}}{${2:中文标题%title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"section{${1:英文标题%title}}{${2:中文标题%title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subsection{${1:英文标题%title}}{${2:中文标题%title}}\"\n      }\n    },\n    {\n      \"name\": \"anon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anon{${1:非匿名内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"anon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anon[${2:匿名内容%text}]{${1:非匿名内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"figname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"edubg\"\n    },\n    {\n      \"name\": \"resresult\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\xdusetup#c\": [\n      \"style={${1:keyvals}}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,hanyi,sinotype,win,none|}\",\n      \"style/cjk-fake-bold=${1:伪粗体粗细程度}\",\n      \"style/cjk-fake-slant=${1:伪斜体倾斜程度}\",\n      \"style/latin-font=${1|gyre,tac,tacn,tcc,thcs,tll,none|}\",\n      \"style/latin-sans-scale=${1|upper,lower,off|}\",\n      \"style/latin-mono-scale=${1|upper,lower,off|}\",\n      \"style/math-font=${1|asana,cambria,cm,concrete,erewhon,euler,fira,garamond,gfsneohellenic,kp,libertinus,lm,newcm,stix2,stix,xcharter,xits,bonum,dejavu,pagella,schola,termes,none|}\",\n      \"style/unicode-math={${1:unicode-math宏包选项}}\",\n      \"style/font-type=${1|font,file|}\",\n      \"style/font-path={${1:路径}}\",\n      \"style/en-cjk-font\",\n      \"style/title-bold-math\",\n      \"style/language=${1|zh,en|}\",\n      \"style/bib-backend=${1|bibtex,biblatex|}\",\n      \"style/biblatex-option={${1:biblatex宏包选项}}\",\n      \"style/symmetric-margin\",\n      \"style/page-vertical-align=${1|分散对齐,顶部对齐|}\",\n      \"style/file-search-path={${1:路径}}\",\n      \"style/fix-input\",\n      \"style/fix-include\",\n      \"style/fix-includegraphics\",\n      \"style/ref-add-space\",\n      \"style/caption-label-sep={${1:间距}}\",\n      \"style/caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-align=${1|left,centering,centering-left|}\",\n      \"style/figure-align=${1|left,centering,right|}\",\n      \"style/table-align=${1|left,centering,right|}\",\n      \"style/table-small-font\",\n      \"style/alg-small-caption\",\n      \"style/alg-small-font\",\n      \"style/alg-caption-format=${1|plain,hang|}\",\n      \"style/alg-caption-align=${1|left,centering,centering-left|}\",\n      \"add-alg-rule-vspace\",\n      \"style/before-skip={${1:间距列表}}\",\n      \"style/after-skip={${1:间距列表}}\",\n      \"style/chap-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/sec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsubsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/para-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subpara-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/customize-los\",\n      \"style/customize-loa\",\n      \"style/colspec-los={${1:符号对照表列格式}}\",\n      \"style/colspec-loa={${1:缩略语对照表列格式}}\",\n      \"style/title-row-los\",\n      \"style/title-row-loa\",\n      \"style/customize-edubg\",\n      \"style/customize-resresult\",\n      \"style/remove-page=${1|封面,提名页,声明页,摘要,索引,对照表,目录,附录,参考文献,致谢,作者简介|}\",\n      \"style/remove-header\",\n      \"style/remove-footer\",\n      \"style/anonymous\",\n      \"info={${1:keyvals}}\",\n      \"info/graduate-type=${1|硕士,博士|}\",\n      \"info/degree-type=${1|学术,专业|}\",\n      \"info/degree={${1:研究生学位类别中文名称}}\",\n      \"info/degree*={${1:研究生学位类别英文名称}}\",\n      \"info/title={${1:论文中文标题}}\",\n      \"info/title*={${1:论文英文标题}}\",\n      \"info/department={${1:院系名称}}\",\n      \"info/major={${1:专业名称/一级学科名称}}\",\n      \"info/major*={${1:一级学科英文名称}}\",\n      \"info/sub-major={${1:二级学科名称}}\",\n      \"info/domain={${1:领域}}\",\n      \"info/author={${1:作者姓名}}\",\n      \"info/author*={${1:作者姓名拼音}}\",\n      \"info/supervisor={${1:导师姓名}}\",\n      \"info/supervisor*={${1:导师姓名拼音}}\",\n      \"info/supv-ent={${1:校外导师姓名}}\",\n      \"info/supv-ent*={${1:校外导师姓名拼音}}\",\n      \"info/supv-title={${1:导师职称}}\",\n      \"info/supv-title*={${1:导师职称英文名称}}\",\n      \"info/supv-ent-title={${1:校外导师职称}}\",\n      \"info/supv-ent-title*={${1:校外导师职称英文名称}}\",\n      \"info/student-id={${1:作者学号}}\",\n      \"info/clc={${1:中图分类号}}\",\n      \"info/secret-level=${1|秘密,公开|}\",\n      \"info/secret-year={${1:保密年限}}\",\n      \"info/submit-date={${1:yyyy-mm}}\",\n      \"info/statement-scan={${1:学位论文独创性声明和关于论文使用授权的说明页扫描文件路径}}\",\n      \"info/statement-sign={${1:文件路径1,文件路径2,文件路径3,文件路径4,文件路径5,文件路径6}}\",\n      \"info/abstract={${1:中文摘要文件路径}}\",\n      \"info/abstract*={${1:英文摘要文件路径}}\",\n      \"info/keywords={${1:中文关键词}}\",\n      \"info/keywords*={${1:英文关键词}}\",\n      \"info/los={${1:符号对照表文件路径}}\",\n      \"info/loa={${1:缩略语对照表文件路径}}\",\n      \"info/bib-resource={${1:参考文献文件路径}}\",\n      \"info/appendix={${1:附录文件路径}}\",\n      \"info/acknowledgements={${1:致谢文件路径}}\",\n      \"info/bio={${1:作者简介路径}}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xduugthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexbook\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xdusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noauxwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noauxwrite{${1:参考文献引用命令}}\"\n      }\n    },\n    {\n      \"name\": \"figname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\xdusetup#c\": [\n      \"style={${1:keyvals}}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,hanyi,sinotype,win,none|}\",\n      \"style/cjk-fake-bold=${1:伪粗体粗细程度}\",\n      \"style/cjk-fake-slant=${1:伪斜体倾斜程度}\",\n      \"style/latin-font=${1|gyre,tac,tacn,tcc,thcs,tll,none|}\",\n      \"style/latin-sans-scale=${1|upper,lower,off|}\",\n      \"style/latin-mono-scale=${1|upper,lower,off|}\",\n      \"style/math-font=${1|asana,cambria,cm,concrete,erewhon,euler,fira,garamond,gfsneohellenic,kp,libertinus,lm,newcm,stix2,stix,xcharter,xits,bonum,dejavu,pagella,schola,termes,none|}\",\n      \"style/unicode-math={${1:unicode-math宏包选项}}\",\n      \"style/font-type=${1|font,file|}\",\n      \"style/font-path={${1:路径}}\",\n      \"style/en-cjk-font\",\n      \"style/title-bold-math\",\n      \"style/language=${1|zh,en|}\",\n      \"style/bib-backend=${1|bibtex,biblatex|}\",\n      \"style/biblatex-option={${1:biblatex宏包选项}}\",\n      \"style/symmetric-margin\",\n      \"style/page-vertical-align=${1|分散对齐,顶部对齐|}\",\n      \"style/file-search-path={${1:路径}}\",\n      \"style/fix-input\",\n      \"style/fix-include\",\n      \"style/fix-includegraphics\",\n      \"style/ref-add-space\",\n      \"style/caption-label-sep={${1:间距}}\",\n      \"style/caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-align=${1|left,centering,centering-left|}\",\n      \"style/figure-align=${1|left,centering,right|}\",\n      \"style/table-align=${1|left,centering,right|}\",\n      \"style/table-small-font\",\n      \"style/alg-small-caption\",\n      \"style/alg-small-font\",\n      \"style/alg-caption-format=${1|plain,hang|}\",\n      \"style/alg-caption-align=${1|left,centering,centering-left|}\",\n      \"add-alg-rule-vspace\",\n      \"style/before-skip={${1:间距列表}}\",\n      \"style/after-skip={${1:间距列表}}\",\n      \"style/chap-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/sec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsubsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/para-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subpara-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"info={${1:keyvals}}\",\n      \"info/title={${1:论文中文标题}}\",\n      \"info/department={${1:院系名称}}\",\n      \"info/major={${1:专业名称/一级学科名称}}\",\n      \"info/author={${1:作者姓名}}\",\n      \"info/supervisor={${1:导师姓名}}\",\n      \"info/supv-dept={${1:院内导师姓名}}\",\n      \"info/supv-ent={${1:校外导师姓名}}\",\n      \"info/supv-school={${1:校内导师姓名}}\",\n      \"info/class-id={${1:作者班级号}}\",\n      \"info/student-id={${1:作者学号}}\",\n      \"info/abstract={${1:中文摘要文件路径}}\",\n      \"info/abstract*={${1:英文摘要文件路径}}\",\n      \"info/keywords={${1:中文关键词}}\",\n      \"info/keywords*={${1:英文关键词}}\",\n      \"info/los={${1:符号对照表文件路径}}\",\n      \"info/loa={${1:缩略语对照表文件路径}}\",\n      \"info/bib-resource={${1:参考文献文件路径}}\",\n      \"info/appendix={${1:附录文件路径}}\",\n      \"info/acknowledgements={${1:致谢文件路径}}\",\n      \"info/bio={${1:作者简介路径}}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xduugtp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ctexart\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxbreakable\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xdusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testCJKfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testCJKfirst{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"multivolparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multivolparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multinumberparser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multinumberparser{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BracketLift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbibfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbibmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footbiblabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfootbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbnamefmtcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkgbnumlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkgbnumlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thegbalignlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbcitelocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegbbiblocalcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodeah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelanordernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execlanodudf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execlanodudf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbibstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbibstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlocalbiblstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlocalbiblstring{${1:string}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dealsortlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblabelextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthlw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setaligngbstyleay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publocpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpubfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execgbfdfmtstd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertransdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbcaselocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbpinyinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbquanpinlocalset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defdoublelangentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdoublelangentry{${1:match}}{${2:fieldvalue}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibleftborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibrightborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkbibsuperbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperbracket{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkbibsuperscriptusp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkbibsuperscriptusp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"upcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"upcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"pagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearpagescite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearpagescite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearpagescite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearpagescite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yearcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yearcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"yearcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"yearcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authornumcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"authornumcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"authornumcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepns{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citepns[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citepns[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"inlinecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"inlinecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citec{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citec[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citec\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citec[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citecs{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"citecs(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"citecs(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"citecs(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"citecs[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"citecs[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citecs\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"citecs(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authornumcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"authornumcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"authornumcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"authornumcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"authornumcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"authornumcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"authornumcites\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"authornumcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tpbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tpbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:options}][${2:comment}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\xdusetup#c\": [\n      \"style={${1:keyvals}}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,hanyi,sinotype,win,none|}\",\n      \"style/cjk-fake-bold=${1:伪粗体粗细程度}\",\n      \"style/cjk-fake-slant=${1:伪斜体倾斜程度}\",\n      \"style/latin-font=${1|gyre,tac,tacn,tcc,thcs,tll,none|}\",\n      \"style/latin-sans-scale=${1|upper,lower,off|}\",\n      \"style/latin-mono-scale=${1|upper,lower,off|}\",\n      \"style/math-font=${1|asana,cambria,cm,concrete,erewhon,euler,fira,garamond,gfsneohellenic,kp,libertinus,lm,newcm,stix2,stix,xcharter,xits,bonum,dejavu,pagella,schola,termes,none|}\",\n      \"style/unicode-math={${1:unicode-math宏包选项}}\",\n      \"style/font-type=${1|font,file|}\",\n      \"style/font-path={${1:路径}}\",\n      \"style/en-cjk-font\",\n      \"style/title-bold-math\",\n      \"style/language=${1|zh,en|}\",\n      \"style/bib-backend=${1|bibtex,biblatex|}\",\n      \"style/biblatex-option={${1:biblatex宏包选项}}\",\n      \"style/symmetric-margin\",\n      \"style/page-vertical-align=${1|分散对齐,顶部对齐|}\",\n      \"style/file-search-path={${1:路径}}\",\n      \"style/fix-input\",\n      \"style/fix-include\",\n      \"style/fix-includegraphics\",\n      \"style/ref-add-space\",\n      \"style/caption-label-sep={${1:间距}}\",\n      \"style/caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-format=${1|plain,hang|}\",\n      \"style/ft-caption-align=${1|left,centering,centering-left|}\",\n      \"style/figure-align=${1|left,centering,right|}\",\n      \"style/table-align=${1|left,centering,right|}\",\n      \"style/table-small-font\",\n      \"style/alg-small-caption\",\n      \"style/alg-small-font\",\n      \"style/alg-caption-format=${1|plain,hang|}\",\n      \"style/alg-caption-align=${1|left,centering,centering-left|}\",\n      \"add-alg-rule-vspace\",\n      \"style/before-skip={${1:间距列表}}\",\n      \"style/after-skip={${1:间距列表}}\",\n      \"style/chap-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/sec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subsubsec-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/para-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"style/subpara-zihao=${1|0,-0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,8|}\",\n      \"info={${1:keyvals}}\",\n      \"info/title={${1:论文中文标题}}\",\n      \"info/department={${1:院系名称}}\",\n      \"info/major={${1:专业名称/一级学科名称}}\",\n      \"info/author={${1:作者姓名}}\",\n      \"info/supervisor={${1:导师姓名}}\",\n      \"info/supv-ent={${1:界}}\",\n      \"info/class={${1:院内导师姓名}}\",\n      \"info/submit-date={${1:yyyy-mm-dd}}\",\n      \"info/sign={${1:文件路径1,文件路径2}}\",\n      \"info/date={${1:日期1,日期2}}\",\n      \"info/student-id={${1:作者学号}}\",\n      \"info/abstract={${1:中文摘要文件路径}}\",\n      \"info/abstract*={${1:英文摘要文件路径}}\",\n      \"info/keywords={${1:中文关键词}}\",\n      \"info/keywords*={${1:英文关键词}}\",\n      \"info/los={${1:符号对照表文件路径}}\",\n      \"info/loa={${1:缩略语对照表文件路径}}\",\n      \"info/bib-resource={${1:参考文献文件路径}}\",\n      \"info/appendix={${1:附录文件路径}}\",\n      \"info/acknowledgements={${1:致谢文件路径}}\",\n      \"info/bio={${1:作者简介路径}}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"citexref\",\n      \"gbmedium\",\n      \"gbannote\",\n      \"gbfieldtype\",\n      \"gbfootbibfmt\",\n      \"gbfnperpage\",\n      \"gbfootbib\",\n      \"gbstyle\",\n      \"gbtype\",\n      \"gbcodegbk\",\n      \"gbstrict\",\n      \"gbtitlelink\",\n      \"gbctexset\",\n      \"gbnoauthor\",\n      \"gbfieldstd\",\n      \"gbpub\",\n      \"gbpunctin\",\n      \"gblanorder=${2|chineseahead,englishahead,${1:string}|}\",\n      \"gbcitelocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gblocal=${1|gb7714-2015,chinese,english|}\",\n      \"gbbiblabel=${1|bracket,parens,plain,dot,box,circle|}\",\n      \"gbnamefmt=${1|uppercase,lowercase,givenahead,familyahead,pinyin,quanpin,reverseorder|}\",\n      \"gbalign=${1|right,left,center,gb7714-2015,gb7714-2015ay|}\",\n      \"gblabelref\",\n      \"gbcitecomp\",\n      \"gbcitelabel=${1|bracket,parens,plain,dot,box,circle|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xebaposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"pgfpages\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"background\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"background{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"boxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxstartx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxstarty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"headerbox{${1:title}}{${2:options%keyvals}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"headerheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xebaposterBoxDrawBackground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xebaposterBoxDrawBackground{${1:color}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterBoxDrawBorder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xebaposterBoxDrawBorder{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterBoxGetShape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xebaposterHeaderDrawBackground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xebaposterHeaderDrawBackground{${1:color}}{${2:color}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterHeaderDrawBorder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xebaposterHeaderDrawBorder{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterHeaderDrawText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xebaposterHeaderDrawText{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterHeaderGetShape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xebaposterHeaderSetShade\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xebaposterHeaderSetShade{${1:color}}{${2:color}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"xebaposterPosterDrawBackground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xebaposterPosterDrawBackground{${1:color}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"poster\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:settings%keyvals}}{${2:eyecatcher}}{${3:title%text}}{${4:author}}{${5:logo}}\",\n        \"keys\": [\n          \"\\\\begin{poster}\",\n          \"\\\\begin{poster},\\\\begin{posterbox},\\\\headerbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"posterbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"posterbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\begin{poster},\\\\begin{posterbox},\\\\headerbox\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/xebaposter#c\": [\n      \"landscape\",\n      \"portrait\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"archA\",\n      \"archB\",\n      \"archC\",\n      \"archD\",\n      \"archE\",\n      \"archE1\",\n      \"archE2\",\n      \"archE3\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"ansiapaper\",\n      \"ansibpaper\",\n      \"ansicpaper\",\n      \"ansidpaper\",\n      \"ansiepaper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"screen\",\n      \"fontscale=${1:factor}\",\n      \"margin=\",\n      \"movebody=\",\n      \"debug\",\n      \"table\",\n      \"showframe\",\n      \"persian\",\n      \"latin\"\n    ],\n    \"\\\\begin{poster}\": [\n      \"grid\",\n      \"eyecatcher\",\n      \"headerheight=\",\n      \"columns=${1:number}\",\n      \"colspacing=\",\n      \"bgColorOne=\",\n      \"bgColorTwo=\",\n      \"background=${1|shadeLR,shadeTB,plain,user,none|}\"\n    ],\n    \"\\\\begin{poster},\\\\begin{posterbox},\\\\headerbox\": [\n      \"cornerradius=\",\n      \"boxheaderheight=\",\n      \"boxpadding=\",\n      \"textborder=${1|none,bars,coils,triangles,rectangle,rounded,roundedleft,roundedright,roundedsmall,faded|}\",\n      \"boxshade=${1|shadelr,shaderl,shadetb,plain,none|}\",\n      \"headershade=${1|shadelr,shaderl,shadetb,shadetbinverse,plain|}\",\n      \"headershape=${1|rectangle,rounded,smallrounded,roundedleft,roundedright|}\",\n      \"headerborder=${1|open,closed,none|}\",\n      \"borderColor=\",\n      \"headerColorOne=\",\n      \"headerColorTwo=\",\n      \"headerFontColor=\",\n      \"boxColorOne=\",\n      \"boxColorTwo=\",\n      \"headerfont=${1:font commands}\",\n      \"textfont=${1:font commands}\",\n      \"linewidth=\",\n      \"below=${1:box name}\",\n      \"above=${1:box name}\",\n      \"aligned=${1:box name}\",\n      \"bottomaligned=${1:box name}\",\n      \"column=${1:number}\",\n      \"row=${1:number}\",\n      \"span=${1:number}\",\n      \"height=\",\n      \"name=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/xebaposter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xepersian-magazine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firstimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"firstimage{${1:imagefile}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstarticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstarticle{${1:title%text}}{${2:opening%text}}{${3:time}}\"\n      }\n    },\n    {\n      \"name\": \"secondarticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"secondarticle{${1:title%text}}{${2:subtitle%text}}{${3:opening%text}}{${4:pagesof}}{${5:time}}\"\n      }\n    },\n    {\n      \"name\": \"thirdarticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"thirdarticle{${1:title%text}}{${2:subtitle%text}}{${3:opening%text}}{${4:pagesof}}{${5:time}}\"\n      }\n    },\n    {\n      \"name\": \"indexitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexitem{${1:title%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"weatheritem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"weatheritem{${1:imagefile}}{${2:day}}{${3:max}}{${4:min}}{${5:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"authorandplace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authorandplace{${1:author}}{${2:place%text}}\"\n      }\n    },\n    {\n      \"name\": \"timestamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestamp{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"image\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"image{${1:imagefile}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"columntitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"columntitle{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\columntitle,\\\\expandedtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"expandedtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandedtitle{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\columntitle,\\\\expandedtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shortarticleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shortarticleitem{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"articlesep\"\n    },\n    {\n      \"name\": \"newsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsection{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"customlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customlogo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"customminilogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customminilogo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"custommagazinename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"custommagazinename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"edition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edition{${1:edition}}\"\n      }\n    },\n    {\n      \"name\": \"editionFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryPageTxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntryPageFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexEntrySeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherTempFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weatherUnits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdTextFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pictureCaptionFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerAuthorFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerPlaceFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampTxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innerTextFinalMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minraggedcols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"heading{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"foot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foot{${1:left%text}}{${2:center%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"columnlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customwwwTxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customwwwTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"editorialAuthorFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorialTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grid{${1:cols}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grid[${3:show}]{${1:cols}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"headDateTimeFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minilogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mylogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mylogo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortarticleItemTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortarticleSubtitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortarticleTitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepersianInit\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frontpage\"\n    },\n    {\n      \"name\": \"indexblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"authorblock\"\n    },\n    {\n      \"name\": \"weatherblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"article\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:num of columns}}{${2:title%text}}{${3:subtitle%text}}{${4:pagesof}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"editorial\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:num of columns}}{${2:title%text}}{${3:author}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"shortarticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:num of columns}}{${2:title%text}}{${3:subtitle%text}}{${4:label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/xepersian-magazine#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"9pt\",\n      \"hyphenatedtitles\",\n      \"columnlines\",\n      \"showgrid\",\n      \"a3paper\"\n    ],\n    \"\\\\columntitle,\\\\expandedtitle\": [\n      \"shadowbox\",\n      \"doublebox\",\n      \"ovalbox\",\n      \"Ovalbox\",\n      \"lines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/xepersian-magazine#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ximera.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"pgfplotslibrarygroupplots\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"sagetex\"\n    },\n    {\n      \"name\": \"titleps\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowledgement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acknowledgement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alt{${1:alt text%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"answer[${2:options%keyvals}]{${1:answer}}\",\n        \"keys\": [\n          \"\\\\answer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer{${1:answer}}\"\n      }\n    },\n    {\n      \"name\": \"chapterstyle\"\n    },\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"choice[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\choice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"desmos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"desmos{${1:desmos id}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"desmosThreeD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"desmosThreeD{${1:desmos3D id}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"geogebra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"geogebra{${1:geogebra id}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"googleSheet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"googleSheet{${1:id}}{${2:width}}{${3:height}}{${4:sheet id}}{${5:cell range}}\"\n      }\n    },\n    {\n      \"name\": \"graph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graph[${2:options%keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\graph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"graph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graph{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"handoutfalse\"\n    },\n    {\n      \"name\": \"handouttrue\"\n    },\n    {\n      \"name\": \"ifhandout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeinteractive\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeinteractive[${2:id=id}]{${1:js file}}\"\n      }\n    },\n    {\n      \"name\": \"includeinteractive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeinteractive{${1:js file%file}}\"\n      }\n    },\n    {\n      \"name\": \"js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"js{${1:js code}}\"\n      }\n    },\n    {\n      \"name\": \"license\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"license{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"outcome\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outcome{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfOnly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfOnly{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionstyle\"\n    },\n    {\n      \"name\": \"wordChoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wordChoice{${1:choices%text}}\"\n      }\n    },\n    {\n      \"name\": \"xkcd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xkcd{${1:xkcd name}}\"\n      }\n    },\n    {\n      \"name\": \"youtube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youtube{${1:youtube id}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conclusion\"\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"condition\"\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"criterion\"\n    },\n    {\n      \"name\": \"criterion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"dialogue\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"expandable\"\n    },\n    {\n      \"name\": \"explanation\"\n    },\n    {\n      \"name\": \"explanation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exploration\"\n    },\n    {\n      \"name\": \"fact\"\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"feedback\"\n    },\n    {\n      \"name\": \"feedback\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"foldable\"\n    },\n    {\n      \"name\": \"formula\"\n    },\n    {\n      \"name\": \"formula\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"freeResponse\"\n    },\n    {\n      \"name\": \"hint\"\n    },\n    {\n      \"name\": \"idea\"\n    },\n    {\n      \"name\": \"idea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"image\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"instructorIntro\"\n    },\n    {\n      \"name\": \"instructorNotes\"\n    },\n    {\n      \"name\": \"javascript\"\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"model\"\n    },\n    {\n      \"name\": \"model\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"multipleChoice\"\n    },\n    {\n      \"name\": \"multipleChoice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:id=id}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"observation\"\n    },\n    {\n      \"name\": \"observation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"onlineOnly\"\n    },\n    {\n      \"name\": \"paradox\"\n    },\n    {\n      \"name\": \"paradox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"procedure\"\n    },\n    {\n      \"name\": \"procedure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"prompt\"\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"sageCell\"\n    },\n    {\n      \"name\": \"sageOutput\"\n    },\n    {\n      \"name\": \"selectAll\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"summary\"\n    },\n    {\n      \"name\": \"summary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"template\"\n    },\n    {\n      \"name\": \"template\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"ungraded\"\n    },\n    {\n      \"name\": \"validator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:expr}]\"\n      }\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/ximera#c\": [\n      \"handout\",\n      \"noauthor\",\n      \"nooutcomes\",\n      \"instructornotes\",\n      \"noinstructornotes\",\n      \"hints\",\n      \"newpage\",\n      \"numbers\",\n      \"wordchoicegiven\",\n      \"xake\",\n      \"tikzexport\"\n    ],\n    \"\\\\answer\": [\n      \"given\",\n      \"tolerance=${1:tolerance}\",\n      \"validator=${1:expr}\",\n      \"id=${1:id}\",\n      \"format=${1:format}\",\n      \"onlinenoinput\",\n      \"onlineshowanswerbutton\"\n    ],\n    \"\\\\choice\": [\n      \"value=${1:value}\",\n      \"correct\"\n    ],\n    \"\\\\graph\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"panel\",\n      \"xAxisLabel=\\\"${1:text}\\\"\",\n      \"yAxisLabel=\\\"${1:text}\\\"\",\n      \"hideXAxis\",\n      \"hideYAxis\",\n      \"hideXAxisNumbers\",\n      \"hideYAxisNumbers\",\n      \"polar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ximera#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-xourse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-ximera\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"activity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"activity{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"practice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"practice{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"graded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:weight}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/xourse#c\": [\n      \"notoc\",\n      \"nonewpage\",\n      \"handout\",\n      \"noauthor\",\n      \"nooutcomes\",\n      \"instructornotes\",\n      \"noinstructornotes\",\n      \"hints\",\n      \"newpage\",\n      \"numbers\",\n      \"wordchoicegiven\",\n      \"xake\",\n      \"tikzexport\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/xourse#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-yaletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"textpos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yadate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yadate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"yahdateskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yadatestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yainsideaddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yainsideaddr{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"yahinsideaddrskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yainsideaddrstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yasalutation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yasalutation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"yahsalutationskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yasalutationstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yafarewell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yafarewell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"yahfarewellskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yafarewellstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yasignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yasignature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"yahsignatureskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yasignaturestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenclosure\"\n    },\n    {\n      \"name\": \"yahenclosureskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenclosurestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yaoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\yaoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defineletterhead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineletterhead{${1:name%specialDef}}{${2:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"yauseletterhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yauseletterhead{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\yauseletterhead#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yaletterblock\"\n    },\n    {\n      \"name\": \"yalettermodblock\"\n    },\n    {\n      \"name\": \"yaletternormal\"\n    },\n    {\n      \"name\": \"yaparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yawriter\"\n    },\n    {\n      \"name\": \"yasetwriter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yasetwriter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"yawriterstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yasetaddressee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yasetaddressee{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"yaaddresseestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaaddressee\"\n    },\n    {\n      \"name\": \"yathedate\"\n    },\n    {\n      \"name\": \"yalastpage\"\n    },\n    {\n      \"name\": \"defineaddress\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineaddress{${1:name%specialDef}}{${2:short name%text}}{${3:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"yatoaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yatoaddress{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\yatoaddress#c,\\\\yareturnaddress#c,\\\\yafromaddress#c,\\\\yaaddress#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yareturnaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yareturnaddress{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\yatoaddress#c,\\\\yareturnaddress#c,\\\\yafromaddress#c,\\\\yaaddress#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yafromaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yafromaddress{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\yatoaddress#c,\\\\yareturnaddress#c,\\\\yafromaddress#c,\\\\yaaddress#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yaaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yaaddress{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\yatoaddress#c,\\\\yareturnaddress#c,\\\\yafromaddress#c,\\\\yaaddress#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yaenvelope\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yaenvelope{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"yaenvunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yaenvunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"yaenvrethskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenvretvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenvtohskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenvtovskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenvtoaddr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaenvretaddr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yabusiness\"\n    },\n    {\n      \"name\": \"yananoxenvelope\"\n    },\n    {\n      \"name\": \"yadlenvelope\"\n    },\n    {\n      \"name\": \"yacvienvelope\"\n    },\n    {\n      \"name\": \"yacvicvenvelope\"\n    },\n    {\n      \"name\": \"yacvenvelope\"\n    },\n    {\n      \"name\": \"yacivenvelope\"\n    },\n    {\n      \"name\": \"yaciiienvelope\"\n    },\n    {\n      \"name\": \"yanaaiienvelope\"\n    },\n    {\n      \"name\": \"yanaavienvelope\"\n    },\n    {\n      \"name\": \"yanaaviienvelope\"\n    },\n    {\n      \"name\": \"yanaaviiienvelope\"\n    },\n    {\n      \"name\": \"yanaaixenvelope\"\n    },\n    {\n      \"name\": \"yanaaxenvelope\"\n    },\n    {\n      \"name\": \"yananovienvelope\"\n    },\n    {\n      \"name\": \"yananoviienvelope\"\n    },\n    {\n      \"name\": \"yananoixenvelope\"\n    },\n    {\n      \"name\": \"yananoxienvelope\"\n    },\n    {\n      \"name\": \"yananoxiienvelope\"\n    },\n    {\n      \"name\": \"yananoxivenvelope\"\n    },\n    {\n      \"name\": \"yalabelsheet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"yalabelsheet{${1:pagewidth}}{${2:pageheight}}{${3:labelwidth}}{${4:labelheight}}{${5:hsep}}{${6:vsep}}{${7:num across}}{${8:num down}}\"\n      }\n    },\n    {\n      \"name\": \"yalableftmarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yalabrightmarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yalabtopmarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yalabbotmarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yalabeltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaplacelabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"yaplacelabel{${1:text}}{${2:num across}}{${3:num down}}\"\n      }\n    },\n    {\n      \"name\": \"yalabelmarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yashowboxeson\"\n    },\n    {\n      \"name\": \"yashowboxesoff\"\n    },\n    {\n      \"name\": \"yaavery\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yaavery{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"yalastpagestyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\yaoptions\": [\n      \"pageheight=\",\n      \"pagewidth=\",\n      \"lftmarg=\",\n      \"rgtmarg=\",\n      \"topmarg=\",\n      \"botmarg=\",\n      \"footskip=\",\n      \"headsep=\",\n      \"headheight=\",\n      \"headwidth=\",\n      \"headrulewidth=\",\n      \"footrulewidth=\",\n      \"predate=\",\n      \"postdate=\",\n      \"datehskip=\",\n      \"preinsideaddr=\",\n      \"postinsideaddr=\",\n      \"insideaddrhskip=\",\n      \"presalutation=\",\n      \"postsalutation=\",\n      \"saluword=${1:word}\",\n      \"salupunct=${1:punctuation}\",\n      \"saluskip=\",\n      \"prefarewell=\",\n      \"postfarewell=\",\n      \"farewellskip=\",\n      \"farewellword=${1:word}\",\n      \"farewellpunct=${1:punctuation}\",\n      \"presignature=\",\n      \"postsignature=\",\n      \"signatureskip=\",\n      \"signatureword=${1:word}\",\n      \"preenclosure=\",\n      \"postenclosure=\",\n      \"enclosureskip=\",\n      \"enclosureword=${1:word}\",\n      \"parskip=\",\n      \"parindent=\",\n      \"datafile=${1:file}\"\n    ],\n    \"\\\\yauseletterhead#c\": [\n      \"%yaletterhead\"\n    ],\n    \"\\\\yatoaddress#c,\\\\yareturnaddress#c,\\\\yafromaddress#c,\\\\yaaddress#c\": [\n      \"%yaaddress\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/class-yathesis.json",
    "content": "{\n  \"includes\": {\n    \"class-book\": [],\n    \"adjustbox\": [],\n    \"array\": [],\n    \"babel\": [],\n    \"biblatex\": [],\n    \"bookmark\": [],\n    \"colophon\": [],\n    \"csquotes\": [],\n    \"datatool\": [],\n    \"datetime2\": [],\n    \"draftwatermark\": [],\n    \"environ\": [],\n    \"epigraph\": [],\n    \"etoc\": [],\n    \"etoolbox\": [],\n    \"fncychap\": [],\n    \"geometry\": [],\n    \"graphicx\": [],\n    \"hypcap\": [],\n    \"ifdraft\": [],\n    \"iflang\": [],\n    \"iftex\": [],\n    \"letltxmacro\": [],\n    \"marvosym\": [],\n    \"morewrites\": [],\n    \"nonumonpart\": [],\n    \"pgfopts\": [],\n    \"setspace\": [],\n    \"tabularx\": [],\n    \"tcolorbox\": [],\n    \"textcase\": [],\n    \"titlesec\": [],\n    \"tocbibind\": [],\n    \"translator\": [],\n    \"twoopt\": [],\n    \"xcolor\": [],\n    \"xifthen\": [],\n    \"xkeyval\": [],\n    \"xpatch\": [],\n    \"xstring\": [],\n    \"tcolorboxlibraryskins\": [],\n    \"titleps\": []\n  },\n  \"macros\": {\n    \"yadsetup{}\": {\n      \"snippet\": \"yadsetup{${1:⟨options⟩}}\"\n    },\n    \"author{}{}\": {\n      \"snippet\": \"author{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"author[]{}{}\": {\n      \"snippet\": \"author[${3:⟨email⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"title[]{}\": {\n      \"snippet\": \"title[${2:⟨titre dans la langue secondaire⟩}]{${1:⟨titre dans la langue principale⟩}}\"\n    },\n    \"subtitle[]{}\": {\n      \"snippet\": \"subtitle[${2:⟨sous-titre dans la langue secondaire⟩}]{${1:⟨sous-titre dans la langue principale⟩}}\"\n    },\n    \"academicfield[]{}\": {\n      \"snippet\": \"academicfield[${2:⟨discipline dans la langue secondaire⟩}]{${1:⟨discipline dans la langue principale⟩}}\"\n    },\n    \"speciality[]{}\": {\n      \"snippet\": \"speciality[${2:⟨spécialité dans la langue secondaire⟩}]{${1:⟨spécialité dans la langue principale⟩}}\"\n    },\n    \"subject[]{}\": {\n      \"snippet\": \"subject[${2:⟨sujet dans la langue secondaire⟩}]{${1:⟨sujet dans la langue principale⟩}}\"\n    },\n    \"subtitle{}\": {\n      \"snippet\": \"subtitle{${1:⟨sous-titre⟩}}\"\n    },\n    \"academicfield{}\": {\n      \"snippet\": \"academicfield{${1:⟨discipline⟩}}\"\n    },\n    \"speciality{}\": {\n      \"snippet\": \"speciality{${1:⟨spécialité⟩}}\"\n    },\n    \"subject{}\": {\n      \"snippet\": \"subject{${1:⟨sujet⟩}}\"\n    },\n    \"date{}{}{}\": {\n      \"snippet\": \"date{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n    },\n    \"submissiondate{}{}{}\": {\n      \"snippet\": \"submissiondate{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n    },\n    \"pres{}\": {\n      \"snippet\": \"pres{${1:⟨nom du PRES⟩}}\"\n    },\n    \"comue{}\": {\n      \"snippet\": \"comue{${1:⟨nom de la ComUE⟩}}\"\n    },\n    \"institute{}\": {\n      \"snippet\": \"institute{${1:⟨nom de l'institut⟩}}\"\n    },\n    \"coinstitute{}\": {\n      \"snippet\": \"coinstitute{${1:⟨nom de l'institut de cotutelle⟩}}\"\n    },\n    \"company{}\": {\n      \"snippet\": \"company{${1:⟨nom de l'entreprise⟩}}\"\n    },\n    \"doctoralschool{}\": {\n      \"snippet\": \"doctoralschool{${1:⟨nom de l'école doctorale⟩}}\"\n    },\n    \"laboratory{}{}\": {\n      \"snippet\": \"laboratory{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n    },\n    \"pres[]{}\": {\n      \"snippet\": \"pres[${2:⟨précisions⟩}]{${1:⟨nom du PRES⟩}}\"\n    },\n    \"comue[]{}\": {\n      \"snippet\": \"comue[${2:⟨précisions⟩}]{${1:⟨nom de la ComUE⟩}}\"\n    },\n    \"institute[]{}\": {\n      \"snippet\": \"institute[${2:⟨précisions⟩}]{${1:⟨nom de l'institut⟩}}\"\n    },\n    \"coinstitute[]{}\": {\n      \"snippet\": \"coinstitute[${2:⟨précisions⟩}]{${1:⟨nom de l'institut de cotutelle⟩}}\"\n    },\n    \"company[]{}\": {\n      \"snippet\": \"company[${2:⟨précisions⟩}]{${1:⟨nom de l'entreprise⟩}}\"\n    },\n    \"doctoralschool[]{}\": {\n      \"snippet\": \"doctoralschool[${2:⟨précisions⟩}]{${1:⟨nom de l'école doctorale⟩}}\"\n    },\n    \"laboratory[]{}{}\": {\n      \"snippet\": \"laboratory[${3:⟨précisions⟩}]{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n    },\n    \"supervisor[]{}{}\": {\n      \"snippet\": \"supervisor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"cosupervisor[]{}{}\": {\n      \"snippet\": \"cosupervisor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"comonitor[]{}{}\": {\n      \"snippet\": \"comonitor[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"referee[]{}{}\": {\n      \"snippet\": \"referee[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"examiner[]{}{}\": {\n      \"snippet\": \"examiner[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"committeepresident[]{}{}\": {\n      \"snippet\": \"committeepresident[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"guest[]{}{}\": {\n      \"snippet\": \"guest[${3:⟨précisions⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"supervisor{}{}\": {\n      \"snippet\": \"supervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"cosupervisor{}{}\": {\n      \"snippet\": \"cosupervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"comonitor{}{}\": {\n      \"snippet\": \"comonitor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"referee{}{}\": {\n      \"snippet\": \"referee{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"examiner{}{}\": {\n      \"snippet\": \"examiner{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"committeepresident{}{}\": {\n      \"snippet\": \"committeepresident{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"guest{}{}\": {\n      \"snippet\": \"guest{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n    },\n    \"ordernumber[]\": {\n      \"snippet\": \"ordernumber[${1:⟨numéro d'ordre⟩}]\"\n    },\n    \"ordernumber\": {},\n    \"keywords{}{}\": {\n      \"snippet\": \"keywords{${1:⟨mots clés dans la langue principale⟩}}{${2:⟨mots clés dans la langue secondaire⟩}}\"\n    },\n    \"maketitle[]\": {\n      \"snippet\": \"maketitle[${1:⟨options⟩}]\"\n    },\n    \"colophontext{}\": {\n      \"snippet\": \"colophontext{${1:⟨texte⟩}}\"\n    },\n    \"disclaimertext{}\": {\n      \"snippet\": \"disclaimertext{${1:⟨clause⟩}}\"\n    },\n    \"makedisclaimer\": {},\n    \"makedisclaimer*\": {},\n    \"makekeywords\": {},\n    \"makekeywords*\": {},\n    \"makelaboratory\": {},\n    \"makelaboratory*\": {},\n    \"dedication{}\": {\n      \"snippet\": \"dedication{${1:⟨dédicace⟩}}\"\n    },\n    \"makededications\": {},\n    \"makededications*\": {},\n    \"frontepigraph{}{}\": {\n      \"snippet\": \"frontepigraph{${1:⟨épigraphe⟩}}{${2:⟨auteur⟩}}\"\n    },\n    \"frontepigraph[]{}{}\": {\n      \"snippet\": \"frontepigraph[${3:⟨langue⟩}]{${1:⟨épigraphe⟩}}{${2:⟨auteur⟩}}\"\n    },\n    \"makefrontepigraphs\": {},\n    \"makefrontepigraphs*\": {},\n    \"makeabstract\": {},\n    \"newglssymbol{}{}{}{}\": {\n      \"snippet\": \"newglssymbol{${1:⟨label⟩}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩}}\"\n    },\n    \"newglssymbol[]{}{}{}{}\": {\n      \"snippet\": \"newglssymbol[${5:⟨classement⟩}]{${1:⟨label⟩}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩}}\"\n    },\n    \"tableofcontents[]\": {\n      \"snippet\": \"tableofcontents[${1:⟨précisions⟩}]\"\n    },\n    \"chapter*[]{}\": {\n      \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"chapter[][]{}\": {\n      \"snippet\": \"chapter[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"chapter*[][]{}\": {\n      \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section*[]{}\": {\n      \"snippet\": \"section*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section[][]{}\": {\n      \"snippet\": \"section[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"section*[][]{}\": {\n      \"snippet\": \"section*[${2:⟨titre alt. pour TdM⟩}][${3:⟨titre alt. pour entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"subsection*[]{}\": {\n      \"snippet\": \"subsection*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"subsubsection*[]{}\": {\n      \"snippet\": \"subsubsection*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"paragraph*[]{}\": {\n      \"snippet\": \"paragraph*[${2:⟨titre alt. pour TdM et entête⟩}]{${1:⟨titre⟩}}\"\n    },\n    \"makebackcover\": {},\n    \"startlocaltocs\": {},\n    \"stoplocaltocs\": {},\n    \"nextwithlocaltoc\": {},\n    \"nextwithoutlocaltoc\": {},\n    \"leadchapter{}\": {\n      \"snippet\": \"leadchapter{${1:⟨texte⟩}}\"\n    },\n    \"printsymbols[]\": {\n      \"snippet\": \"printsymbols[${1:⟨options⟩}]\"\n    },\n    \"expression{}{}{}\": {\n      \"snippet\": \"expression{${1:⟨label⟩}}{${2:⟨valeur en français⟩}}{${3:⟨valeur en anglais⟩}}\"\n    },\n    \"frenchsetup{}\": {\n      \"snippet\": \"frenchsetup{${1:options}}\",\n      \"keyvalindex\": 0,\n      \"keyvalpos\": 0\n    },\n    \"frenchbsetup{}\": {\n      \"snippet\": \"frenchbsetup{${1:options}}\",\n      \"keyvalindex\": 0,\n      \"keyvalpos\": 0\n    },\n    \"AddThinSpaceBeforeFootnotes\": {},\n    \"alsoname\": {},\n    \"at\": {},\n    \"bibname\": {},\n    \"AutoSpaceBeforeFDP\": {},\n    \"boi\": {},\n    \"bname{}\": {\n      \"snippet\": \"bname{${1:text}}\"\n    },\n    \"bsc{}\": {\n      \"snippet\": \"bsc{${1:text}}\"\n    },\n    \"CaptionSeparator\": {},\n    \"captionsfrench\": {},\n    \"ccname\": {},\n    \"chaptername\": {},\n    \"circonflexe\": {},\n    \"dateacadian\": {},\n    \"datefrench\": {},\n    \"DecimalMathComma\": {},\n    \"degre\": {},\n    \"degres\": {},\n    \"descindentFB\": {},\n    \"dotFFN\": {},\n    \"enclname\": {},\n    \"extrasfrench\": {},\n    \"FBcolonspace\": {},\n    \"FBdatebox\": {},\n    \"FBdatespace\": {},\n    \"FBeverylineguill\": {},\n    \"FBfigtabshape\": {},\n    \"FBfnindent\": {},\n    \"FBFrenchFootnotesfalse\": {},\n    \"FBFrenchFootnotestrue\": {},\n    \"FBFrenchSuperscriptstrue\": {},\n    \"FBGlobalLayoutFrenchtrue\": {},\n    \"FBgspchar\": {},\n    \"FBguillopen\": {},\n    \"FBguillspace\": {},\n    \"FBInnerGuillSinglefalse\": {},\n    \"FBInnerGuillSingletrue\": {},\n    \"FBListItemsAsParfalse\": {},\n    \"FBListItemsAsPartrue\": {},\n    \"FBLowercaseSuperscriptstrue\": {},\n    \"FBmedkern\": {},\n    \"FBPartNameFulltrue\": {},\n    \"FBsetspaces[]{}{}{}{}\": {\n      \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n    },\n    \"FBsetspaces{}{}{}{}\": {\n      \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n    },\n    \"FBSmallCapsFigTabCaptionstrue\": {},\n    \"FBStandardEnumerateEnvtrue\": {},\n    \"FBStandardItemizeEnvtrue\": {},\n    \"FBStandardItemLabelstrue\": {},\n    \"FBStandardLayouttrue\": {},\n    \"FBStandardListSpacingtrue\": {},\n    \"FBStandardListstrue\": {},\n    \"FBsupR\": {},\n    \"FBsupS\": {},\n    \"FBtextellipsis\": {},\n    \"FBthickkern\": {},\n    \"FBthinspace\": {},\n    \"FBthousandsep\": {},\n    \"FBWarning{}\": {\n      \"snippet\": \"FBWarning{${1:message}}\"\n    },\n    \"fg\": {},\n    \"fgi\": {},\n    \"fgii\": {},\n    \"fprimo)\": {},\n    \"frenchdate{}{}{}\": {\n      \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n    },\n    \"FrenchEnumerate{}\": {\n      \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n    },\n    \"FrenchFootnotes\": {},\n    \"FrenchLabelItem\": {},\n    \"frenchpartfirst\": {},\n    \"frenchpartsecond\": {},\n    \"FrenchPopularEnumerate{}\": {\n      \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n    },\n    \"frenchtoday\": {},\n    \"Frlabelitemi\": {},\n    \"Frlabelitemii\": {},\n    \"Frlabelitemiii\": {},\n    \"Frlabelitemiv\": {},\n    \"frquote{}\": {\n      \"snippet\": \"frquote{${1:text}}\"\n    },\n    \"fup{}\": {\n      \"snippet\": \"fup{${1:text}}\"\n    },\n    \"glossaryname\": {},\n    \"headtoname\": {},\n    \"ieme\": {},\n    \"iemes\": {},\n    \"ier\": {},\n    \"iere\": {},\n    \"ieres\": {},\n    \"iers\": {},\n    \"ifFBAutoSpaceFootnotes\": {},\n    \"ifFBCompactItemize\": {},\n    \"ifFBCustomiseFigTabCaptions\": {},\n    \"ifFBfrench\": {},\n    \"ifFBFrenchFootnotes\": {},\n    \"ifFBFrenchSuperscripts\": {},\n    \"ifFBGlobalLayoutFrench\": {},\n    \"ifFBIndentFirst\": {},\n    \"ifFBINGuillSpace\": {},\n    \"ifFBListItemsAsPar\": {},\n    \"ifFBListOldLayout\": {},\n    \"ifFBLowercaseSuperscripts\": {},\n    \"ifFBLuaTeX\": {},\n    \"ifFBOldFigTabCaptions\": {},\n    \"ifFBOriginalTypewriter\": {},\n    \"ifFBPartNameFull\": {},\n    \"ifFBReduceListSpacing\": {},\n    \"ifFBShowOptions\": {},\n    \"ifFBSmallCapsFigTabCaptions\": {},\n    \"ifFBStandardEnumerateEnv\": {},\n    \"ifFBStandardItemizeEnv\": {},\n    \"ifFBStandardItemLabels\": {},\n    \"ifFBStandardLayout\": {},\n    \"ifFBStandardLists\": {},\n    \"ifFBStandardListSpacing\": {},\n    \"ifFBSuppressWarning\": {},\n    \"ifFBThinColonSpace\": {},\n    \"ifFBThinSpaceInFrenchNumbers\": {},\n    \"ifFBunicode\": {},\n    \"ifFBXeTeX\": {},\n    \"ifLaTeXe\": {},\n    \"kernFFN\": {},\n    \"labelindentFB\": {},\n    \"labelwidthFB\": {},\n    \"leftmarginFB\": {},\n    \"listfigurename\": {},\n    \"listindentFB\": {},\n    \"No\": {},\n    \"no\": {},\n    \"NoAutoSpaceBeforeFDP\": {},\n    \"NoAutoSpacing\": {},\n    \"NoEveryParQuote\": {},\n    \"noextrasfrench\": {},\n    \"nombre{}\": {\n      \"snippet\": \"nombre{${1:arg}}\"\n    },\n    \"nos\": {},\n    \"Nos\": {},\n    \"og\": {},\n    \"ogi\": {},\n    \"ogii\": {},\n    \"parindentFFN\": {},\n    \"partfirst\": {},\n    \"partnameord\": {},\n    \"partsecond\": {},\n    \"prefacename\": {},\n    \"primo\": {},\n    \"proofname\": {},\n    \"quarto\": {},\n    \"rmfamilyFB\": {},\n    \"secundo\": {},\n    \"seename\": {},\n    \"sffamilyFB\": {},\n    \"StandardFootnotes\": {},\n    \"StandardMathComma\": {},\n    \"tertio\": {},\n    \"tild\": {},\n    \"ttfamilyFB\": {},\n    \"up{}\": {\n      \"snippet\": \"up{${1:text}}\"\n    },\n    \"xspace\": {}\n  },\n  \"envs\": {\n    \"abstract\": {},\n    \"abstract[]\": {\n      \"name\": \"abstract\",\n      \"snippet\": \"[${1:⟨titre alternatif⟩}]\"\n    },\n    \"descriptionFB\": {},\n    \"enumerateFB\": {},\n    \"itemizeFB\": {},\n    \"listFB{}\": {\n      \"name\": \"listFB\",\n      \"snippet\": \"{${1:symbol}}\"\n    },\n    \"listORI{}\": {\n      \"name\": \"listORI\",\n      \"snippet\": \"{${1:symbol}}\"\n    }\n  },\n  \"options\": [\n    \"mainlanguage=${1|french,english|}\",\n    \"secnumdepth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n    \"space=${1|single,onehalf,double|}\",\n    \"chap-style=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n    \"fncychap=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n    \"nofrontcover\",\n    \"sepcorpaffilfrench=\",\n    \"sepcorpaffilenglish=\",\n    \"version=${1|inprogress,inprogress*,submitted,submitted*,final,draft|}\",\n    \"output=${1|screen,paper,paper*|}\",\n    \"colophon-location=${1|verso-frontcover,recto-backcover,nowhere|}\",\n    \"hdr\",\n    \"numlaboratories=${1:⟨nombre de laboratoires affichés⟩}\",\n    \"localtocs\",\n    \"localtocs/depth=${1|section,subsection,subsubsection,paragraph,subparagraph|}\",\n    \"localbibs\",\n    \"localbibs*\",\n    \"10pt\",\n    \"11pt\",\n    \"12pt\",\n    \"leqno\",\n    \"fleqn\",\n    \"oneside\",\n    \"noerror\",\n    \"noauthor\",\n    \"notitle\",\n    \"noacademicfield\",\n    \"nodate\",\n    \"noinstitute\",\n    \"nodoctoralschool\",\n    \"nolaboratory\",\n    \"nolaboratoryaddress\",\n    \"nosupervisor\",\n    \"nomaketitle\",\n    \"nokeywords\",\n    \"noabstract\",\n    \"nomakeabstract\",\n    \"notableofcontents\",\n    \"noprintbibliography\",\n    \"graphicx={${1:⟨options du package graphicx⟩}}\",\n    \"adjustbox={${1:⟨options du package adjustbox⟩}}\",\n    \"setspace={${1:⟨options du package setspace⟩}}\",\n    \"xcolor={${1:⟨options du package xcolor⟩}}\",\n    \"datatool={${1:⟨options du package datatool⟩}}\",\n    \"titlesec={${1:⟨options du package titlesec⟩}}\",\n    \"draftwatermark={${1:⟨options du package draftwatermark⟩}}\",\n    \"babel={${1:⟨options du package babel⟩}}\",\n    \"datetime2={${1:⟨options du package datetime2⟩}}\",\n    \"corps=${1:⟨corporation⟩}\",\n    \"role=${1:⟨role⟩}\"\n  ],\n  \"keyvals\": [\n    [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ycbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-mwbk\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fancytoc\"\n    },\n    {\n      \"name\": \"traditionaltoc\"\n    },\n    {\n      \"name\": \"coloredheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coloredheadline{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"coloredfootline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coloredfootline{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"twopagepicture\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"twopagepicture{${1:placement}}{${2:l or p}}{${3:imagefile}}{${4:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"twopagepicturen\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"twopagepicturen{${1:placement}}{${2:l or p}}{${3:imagefile}}{${4:caption%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ycbook#c\": [\n      \"chapterrule\",\n      \"sectionrule\",\n      \"chaptercentered\",\n      \"chapterleft\",\n      \"chapterright\",\n      \"nochaptercentered\",\n      \"nochapterleft\",\n      \"nochapterright\",\n      \"sansserifnotes\",\n      \"nodots\",\n      \"nofootnoterule\",\n      \"traditionalfootnote\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"wide\",\n      \"withmarginpar\",\n      \"withoutmarginpar\",\n      \"10pt\",\n      \"10dd\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"openright\",\n      \"openany\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\",\n      \"rmheadings\",\n      \"sfheadings\",\n      \"floatssmall\",\n      \"floatsnormalsize\",\n      \"authortitle\",\n      \"titleauthor\",\n      \"indentfirst\",\n      \"noindentfirst\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"headingsbeforeplain\",\n      \"myheadingsbeforeplain\",\n      \"uheadings\",\n      \"myuheadings\",\n      \"headingsnodot\",\n      \"uheadingsnodot\",\n      \"headingsbeforeplainnodot\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ycbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-ydoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ydoc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/ydoc#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/ydoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/class-zbMATH.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"zb-basics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makefooter\"\n    },\n    {\n      \"name\": \"blue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"helper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"helper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kwx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwx{${1:text1;text2;...%text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:text1;text2;...%text}}\"\n      }\n    },\n    {\n      \"name\": \"citationbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msclen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msc{${1:class1 class2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"blueitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blueitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:name (${2:location})}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/classico.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"classico\"\n    },\n    {\n      \"name\": \"classicofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/classico#c\": [\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/classico#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/classics.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newclassic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newclassic{${1:classic}}{${2:formatting directives}}\"\n      }\n    },\n    {\n      \"name\": \"newclassic\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newclassic[${3:range sep}]{${1:classic}}{${2:formatting directives}}\"\n      }\n    },\n    {\n      \"name\": \"newpagination\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newpagination{${1:pagination%cmd}}{${2:singular}}{${3:plural}}{${4:conjunction}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareClassicWorkFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareClassicWorkFormat{${1:formatting directive}}\"\n      }\n    },\n    {\n      \"name\": \"classicsalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicsalph{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"classicsAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicsAlph{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"classicsroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicsroman{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"classicsRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicsRoman{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/classicthesis-arsclassica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"classicthesis\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"formatchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatchapter{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/classicthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"mathpazo\"\n    },\n    {\n      \"name\": \"beramono\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"mparhack\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"scrtime\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"remreset\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"prelim2e\",\n      \"if\": \"drafting\"\n    },\n    {\n      \"name\": \"prelim2e\",\n      \"if\": \"drafting=true\"\n    },\n    {\n      \"name\": \"classicthesis-arsclassica\",\n      \"if\": \"style=arsclassica\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ctparttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctparttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spacedallcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacedallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spacedlowsmallcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacedlowsmallcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"classicthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterNumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"beforebibskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurelabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalVersionString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingslabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newchnumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newnumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldmarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldmarginpar{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"oldmarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oldmarginpar[${2:left}]{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocEntry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deactivateaddvspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"aenumerate\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/classicthesis#c\": [\n      \"drafting\",\n      \"parts\",\n      \"linedheaders\",\n      \"style=${1|classicthesis,arsclassica|}\",\n      \"palatino\",\n      \"eulerchapternumbers\",\n      \"beramono\",\n      \"eulermath\",\n      \"tocaligned\",\n      \"dottedtoc\",\n      \"manychapters\",\n      \"floatperchapter\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/classicthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/classif2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Comm\"\n    },\n    {\n      \"name\": \"EmptyName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmptyName{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"INCL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"INCL{${1:footnote%text}}\"\n      }\n    },\n    {\n      \"name\": \"LevelName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LevelName{${1:level}}{${2:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"Numerate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Numerate[${2:cmd}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Numerate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numerate{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Reset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reset{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Digitsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digitstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Globalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Globaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifGlobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifHide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IHOOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Level\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Numbersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Numberstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theGlobalLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLeveli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLevelii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLeveliii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLeveliv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"classif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:level}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/classif2#c\": [\n      \"nonames\",\n      \"names\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/classif2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/classlist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MainClassName\"\n    },\n    {\n      \"name\": \"ClassList\"\n    },\n    {\n      \"name\": \"ClassListEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClassListEntry{${1:class}}{${2:class options}}{${3:requested version}}\"\n      }\n    },\n    {\n      \"name\": \"PrintClassList\"\n    },\n    {\n      \"name\": \"PrintClassListTitle\"\n    },\n    {\n      \"name\": \"PrintClassListEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PrintClassListEntry{${1:class}}{${2:class options}}{${3:requested version}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cleanthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"charter\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"blindtext\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"tgheros\",\n      \"if\": \"sansserif\"\n    },\n    {\n      \"name\": \"tgheros\",\n      \"if\": \"sansserif=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"configurebiblatex\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"configurebiblatex\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"configurebiblatex=true\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"configurebiblatex=true\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"configurelistings\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"configurelistings=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cthesissetcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cthesissetcolor{${1:model}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"cthesissetcolorbluemagenta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cthesissetcolorbluegreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensectionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctfooterline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctfooterrightpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctfooterleftpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TODO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TODO{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"treft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"treft{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"textref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"textreft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textreft{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"frefadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frefadd{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figrefadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figrefadd{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"figreft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figreft{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figrefaddt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figrefaddt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"seepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seepage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ctSetFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ctSetFont{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"helv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"book\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgherosfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesispartlabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesispartfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesischapterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesissectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesissubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesisparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctfontfooterpagenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctfontfootertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctchapternumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctchapternumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ctchaptertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctchaptertitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hugequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleanchapterquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cleanchapterquote{${1:text1}}{${2:text2}}{${3:text3}}\"\n      }\n    },\n    {\n      \"name\": \"cthesisorigin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cthesisorigin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"my_list\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"my_list_num\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"my_list_item\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ct_version_list\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ct_version_list_sub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"my_list_desc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesis_quotation\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cleanthesis#c\": [\n      \"hangfigurecaption\",\n      \"hangsection\",\n      \"hangsubsection\",\n      \"sansserif\",\n      \"configurelistings\",\n      \"figuresep=${1|none,colon,period,space,quad,endash|}\",\n      \"colorize=${1|full,reduced,bw|}\",\n      \"colortheme=${1|bluemagenta,bluegreen|}\",\n      \"quotesstyle=${1:csquotes style options}\",\n      \"configurebiblatex\",\n      \"bibsys=${1|biber,bibtex|}\",\n      \"bibfile=${1:file name}\",\n      \"bibstyle=${1:biblatex style options}\",\n      \"bibsorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cleanthesis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clefval.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TheKey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TheKey{${1:key}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"TheValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheValue{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"newkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newkey{${1:key}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cleveref-forward.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"crefthe\",\n      \"if\": \"crefthe\"\n    },\n    {\n      \"name\": \"crefthe\",\n      \"if\": \"crefthe=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref*[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref*[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"labelcref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"labelcref[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetUsedOnMessageText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUsedOnMessageText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetUsedByMessageText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUsedByMessageText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetUsedByAndOnMessageText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUsedByAndOnMessageText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetForwardReferenceStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetForwardReferenceStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetForwardReferenceStyleInsideMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetForwardReferenceStyleInsideMath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetForwardReferenceStyleOutsideMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetForwardReferenceStyleOutsideMath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetForwardReferenceRefForm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetForwardReferenceRefForm{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetForwardReferencePagerefForm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetForwardReferencePagerefForm{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"restorelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorelabel{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cleveref-forward#c\": [\n      \"default=${1|used on,used by,used by and on|}\",\n      \"crefthe\"\n    ],\n    \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c,\\\\labelcref#c\": [\n      \"used on\",\n      \"used by\",\n      \"used by and on\",\n      \"no use\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cleveref-forward#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cleveref-usedon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cleveref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref*[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref*[${2:option%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cleveref-usedon#c\": [\n      \"poorman\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"nosort\",\n      \"capitalise\",\n      \"capitalize\",\n      \"nameinlink\",\n      \"noabbrev\",\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"dutch\",\n      \"french\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"ukrainian\",\n      \"norsk\",\n      \"danish\",\n      \"esperanto\",\n      \"swedish\",\n      \"brazilian\",\n      \"catalan\"\n    ],\n    \"\\\\cref#c,\\\\cref*#c,\\\\Cref#c,\\\\Cref*#c\": [\n      \"UsedOn\",\n      \"UsedBy\",\n      \"UsedByAndOn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cleveref-usedon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cleveref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Crefformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"Crefmultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Crefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"Crefname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Crefname{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Crefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"crefalias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefalias{${1:counter}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"crefdefaultlabelformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefdefaultlabelformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"creflabelformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"creflabelformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefmultiformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"crefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"crefname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crefname{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangelabelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrangelabelformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"crefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"label[${2:type}]{${1:key%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelcrefformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefmultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"labelcrefmultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefrangeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelcrefrangeformat{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"labelcrefrangemultiformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"labelcrefrangemultiformat{${1:type}}{${2:first}}{${3:second}}{${4:middle}}{${5:last}}\"\n      }\n    },\n    {\n      \"name\": \"Cpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cpagerefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"cpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpagerefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefrange{${1:key1}}{${2:key2}}\"\n      }\n    },\n    {\n      \"name\": \"labelcpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelcpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"labelcref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelcref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"lcnamecref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcnamecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"lcnamecrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcnamecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"nameCref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"namecref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"crefrangeconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefrangepreconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefrangepostconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefpairconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefmiddleconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creflastconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefpairgroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefmiddlegroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creflastgroupconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crefstripprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefstripprefix{${1:string1}}{${2:string2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cleveref#c\": [\n      \"poorman\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"nosort\",\n      \"capitalise\",\n      \"capitalize\",\n      \"nameinlink\",\n      \"noabbrev\",\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"dutch\",\n      \"french\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"ukrainian\",\n      \"norsk\",\n      \"danish\",\n      \"esperanto\",\n      \"swedish\",\n      \"brazilian\",\n      \"catalan\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cleveref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clicks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theminutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"print\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"print{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"flush\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flush[${1:minutes}]\"\n      }\n    },\n    {\n      \"name\": \"click\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"click[${1:minutes}]\"\n      }\n    },\n    {\n      \"name\": \"plush\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plush{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plush\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plush[${2:minutes}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plick{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plick[${2:minutes}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/clicks#c\": [\n      \"static\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/clicks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clipboard.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newclipboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newclipboard{${1:basename}}\"\n      }\n    },\n    {\n      \"name\": \"openclipboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openclipboard{${1:basename}}\"\n      }\n    },\n    {\n      \"name\": \"clipboard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clipboard{${1:key%plain}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Copy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Copy{${1:key%plain}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Paste\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Paste{${1:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/clock.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"clock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clock{${1:hour}}{${2:minute}}\"\n      }\n    },\n    {\n      \"name\": \"clocktime\"\n    },\n    {\n      \"name\": \"clockfont\"\n    },\n    {\n      \"name\": \"bigclockfont\"\n    },\n    {\n      \"name\": \"ifClockFrame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClockFrametrue\"\n    },\n    {\n      \"name\": \"ClockFramefalse\"\n    },\n    {\n      \"name\": \"texthours\"\n    },\n    {\n      \"name\": \"textminutes\"\n    },\n    {\n      \"name\": \"texttime\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/clojure-pamphlet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getchunk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getchunk{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chunk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cloze.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"transparent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cloze\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cloze{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cloze\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cloze[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\cloze,\\\\clozefix,\\\\clozefil,\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozesetfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozesetfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"clozefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clozefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clozefix[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\clozefix,\\\\clozeset\",\n          \"\\\\cloze,\\\\clozefix,\\\\clozefil,\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozenol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozenol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clozenol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clozenol[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozefil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozefil{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clozefil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clozefil[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\cloze,\\\\clozefix,\\\\clozefil,\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozeextend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clozeextend[${1:spaces}]\"\n      }\n    },\n    {\n      \"name\": \"clozeparcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozeparcmd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clozeparcmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clozeparcmd[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozeline\"\n    },\n    {\n      \"name\": \"clozeline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clozeline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozelinefil\"\n    },\n    {\n      \"name\": \"clozelinefil\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clozelinefil[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozestrike\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clozestrike{${1:wrong text%text}}{${2:correct text%text}}\"\n      }\n    },\n    {\n      \"name\": \"clozestrike\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"clozestrike[${3:options%keyvals}]{${1:wrong text%text}}{${2:correct text%text}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozesetoption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clozesetoption{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"clozeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clozeset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\clozefix,\\\\clozeset\",\n          \"\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\clozeset\",\n          \"\\\\cloze,\\\\clozefix,\\\\clozefil,\\\\clozeset\",\n          \"\\\\begin{clozespace},\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozereset\"\n    },\n    {\n      \"name\": \"clozeshow\"\n    },\n    {\n      \"name\": \"clozehide\"\n    },\n    {\n      \"name\": \"ifclozeshow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clozeshowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clozeshowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClozeSetToGlobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClozeSetToLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClozeGetOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeGetOption{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeStartMarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeStartMarker{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeStopMarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeStopMarker{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeMargin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clozefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClozeSetLocalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeSetLocalOptions{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeTextColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClozeTextColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ClozeStrikeLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClozeBox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"clozepar\"\n    },\n    {\n      \"name\": \"clozepar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozebox\"\n    },\n    {\n      \"name\": \"clozebox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozebox\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"clozebox\",\n      \"arg\": {\n        \"format\": \"*[]\",\n        \"snippet\": \"*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clozespace\"\n    },\n    {\n      \"name\": \"clozespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\",\n          \"\\\\begin{clozespace},\\\\clozeset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cloze#c\": [\n      \"align=${1|left,center,right|}\",\n      \"boxheight=\",\n      \"boxwidth=\",\n      \"distance=\",\n      \"hide\",\n      \"linecolor=\",\n      \"margin=\",\n      \"spacing=${1:number}\",\n      \"textcolor=\",\n      \"thickness=\",\n      \"width=\"\n    ],\n    \"\\\\cloze,\\\\clozefix,\\\\clozenol,\\\\clozefil,\\\\begin{clozepar},\\\\clozeparcmd,\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\begin{clozespace},\\\\clozeline,\\\\clozelinefil,\\\\clozestrike,\\\\clozeset,\\\\ClozeSetLocalOptions\": [\n      \"show\",\n      \"hide\",\n      \"distance=\",\n      \"linecolor=\",\n      \"textcolor=\",\n      \"thickness=\"\n    ],\n    \"\\\\clozefix,\\\\clozeset\": [\n      \"align=${1|left,center,right|}\",\n      \"width=\"\n    ],\n    \"\\\\begin{clozebox},\\\\begin{clozebox}*,\\\\clozeset\": [\n      \"boxheight=\",\n      \"boxwidth=\"\n    ],\n    \"\\\\cloze,\\\\clozefix,\\\\clozefil,\\\\clozeset\": [\n      \"margin=\"\n    ],\n    \"\\\\begin{clozespace},\\\\clozeset\": [\n      \"spacing=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cloze#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clrdblpg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/clrdblpg#c\": [\n      \"style=${1:page style}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/clrdblpg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/clrscode3e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"id\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"id{${1:identifier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"proc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proc{${1:procedure}}\"\n      }\n    },\n    {\n      \"name\": \"const\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"const{${1:constant}}\"\n      }\n    },\n    {\n      \"name\": \"func\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"func{${1:function%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attrib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attrib{${1:object%formula}}{${2:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribxi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attribxi{${1:object%formula}}{${2:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribxx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attribxx{${1:object%formula}}{${2:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribii\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attribii{${1:object%formula}}{${2:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attribix{${1:object%formula}}{${2:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attribb{${1:object%formula}}{${2:attribute1%formula}}{${3:attribute2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"attribbb{${1:object%formula}}{${2:attribute1%formula}}{${3:attribute2%formula}}{${4:attribute3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribbbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"attribbbb{${1:object%formula}}{${2:attribute1%formula}}{${3:attribute2%formula}}{${4:attribute3%formula}}{${5:attribute4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribbxxi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attribbxxi{${1:object%formula}}{${2:attribute1%formula}}{${3:attribute2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attribe{${1:vertex1%formula}}{${2:vertex2%formula}}{${3:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"attribex\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attribex{${1:vertex1%formula}}{${2:vertex2%formula}}{${3:attribute%formula}}\"\n      }\n    },\n    {\n      \"name\": \"twodots\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"isequal\"\n    },\n    {\n      \"name\": \"Procname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Procname{${1:procedure}}\"\n      }\n    },\n    {\n      \"name\": \"li\"\n    },\n    {\n      \"name\": \"zi\"\n    },\n    {\n      \"name\": \"kw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kw{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"For\"\n    },\n    {\n      \"name\": \"To\"\n    },\n    {\n      \"name\": \"Downto\"\n    },\n    {\n      \"name\": \"By\"\n    },\n    {\n      \"name\": \"While\"\n    },\n    {\n      \"name\": \"If\"\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"Goto\"\n    },\n    {\n      \"name\": \"Error\"\n    },\n    {\n      \"name\": \"Spawn\"\n    },\n    {\n      \"name\": \"Sync\"\n    },\n    {\n      \"name\": \"Parfor\"\n    },\n    {\n      \"name\": \"Comment\"\n    },\n    {\n      \"name\": \"CommentSymbol\"\n    },\n    {\n      \"name\": \"Do\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"Repeat\"\n    },\n    {\n      \"name\": \"Until\"\n    },\n    {\n      \"name\": \"If\"\n    },\n    {\n      \"name\": \"Then\"\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"ElseIf\"\n    },\n    {\n      \"name\": \"ElseNoIf\"\n    },\n    {\n      \"name\": \"Indentmore\"\n    },\n    {\n      \"name\": \"RComment\"\n    },\n    {\n      \"name\": \"setlinenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlinenumber{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setlinenumberplus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlinenumberplus{${1:label}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Startalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Startalign{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"Stopalign\"\n    },\n    {\n      \"name\": \"codeboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codeindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digitwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndTest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FakeIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcodelinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcodelinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstcodeline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumberedline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Indent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lispace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lispace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"numberedlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberedlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"procnamefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"procnametrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putfakeindents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putindents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savecode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveprocname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecodelinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethisindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useregularv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeroli\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"codebox\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/clrstrip.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colorstripSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorstripSet{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\colorstripSet,\\\\begin{colorstrip}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"colorstrip\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:color}}[${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\colorstripSet,\\\\begin{colorstrip}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"colorstrip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:model}]{${1:color}}[${3:keyvals}]\",\n        \"keys\": [\n          \"\\\\colorstripSet,\\\\begin{colorstrip}\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\colorstripSet,\\\\begin{colorstrip}\": [\n      \"inner=\",\n      \"inner top=\",\n      \"inner bot=\",\n      \"outer=\",\n      \"outer top=\",\n      \"outer bot=\",\n      \"width=\",\n      \"left=\",\n      \"afterheading\",\n      \"noindent\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cmathbb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CMath{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cmbright.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsterling\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmbright#c\": [\n      \"slantedGreek\",\n      \"enlarged-baselineskips\",\n      \"standard-baselineskips\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmbright#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmdstring.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cmdstring\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cmdtrack.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"commandlist\"\n    },\n    {\n      \"name\": \"untrack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"untrack{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"logcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logcmd{${1:cmd1%cmd}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"testthm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testthm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowPackageInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowPackageInfo{${1:package}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmdtrack#c\": [\n      \"?\",\n      \"morose\",\n      \"simple\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmdtrack#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmll.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"relsize\",\n      \"if\": \"emu\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"biginvampemu\",\n      \"if\": \"emu\"\n    },\n    {\n      \"name\": \"bigwithemu\",\n      \"if\": \"emu\"\n    },\n    {\n      \"name\": \"invampemu\",\n      \"if\": \"emu\"\n    },\n    {\n      \"name\": \"biginvamp\"\n    },\n    {\n      \"name\": \"bigparr\"\n    },\n    {\n      \"name\": \"bigwith\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"coh\"\n    },\n    {\n      \"name\": \"incoh\"\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"nmultimap\"\n    },\n    {\n      \"name\": \"nmultimapboth\"\n    },\n    {\n      \"name\": \"nmultimapinv\"\n    },\n    {\n      \"name\": \"oc\"\n    },\n    {\n      \"name\": \"parr\"\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"scoh\"\n    },\n    {\n      \"name\": \"shift\"\n    },\n    {\n      \"name\": \"shneg\"\n    },\n    {\n      \"name\": \"shpos\"\n    },\n    {\n      \"name\": \"simbot\"\n    },\n    {\n      \"name\": \"simperp\"\n    },\n    {\n      \"name\": \"sincoh\"\n    },\n    {\n      \"name\": \"with\"\n    },\n    {\n      \"name\": \"wn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmll#c\": [\n      \"cm\",\n      \"ss\",\n      \"euler\",\n      \"emu\",\n      \"auto\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmll#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmsendnotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"endnotes\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"nameref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enoteheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enotepartheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enotesubheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intropartheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introsubheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theendnotesbypart\"\n    },\n    {\n      \"name\": \"theendnotesbypart*\"\n    },\n    {\n      \"name\": \"theendnotesbypart*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"theendnotesbypart*[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"theendnotesbypart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"theendnotesbypart[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"theHendnote\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmsendnotes#c\": [\n      \"split=${1|part,chapter,section,subsection|}\",\n      \"headername=${1:name}\",\n      \"subheadername=${1:name}\",\n      \"runningname=${1:name}\",\n      \"hyper\",\n      \"enotelinks\",\n      \"noheader\",\n      \"nosubheader\",\n      \"blocknotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmsendnotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmsrb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cmupint\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CYRA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRKJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSJE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrkje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"f\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"DH\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmsrb#c\": [\n      \"math\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmsrb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmtt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mttfamily\"\n    },\n    {\n      \"name\": \"textmtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmtt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nbsp\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmtt#c\": [\n      \"override\",\n      \"t1\",\n      \"ot1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmtt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cmupint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"longint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longint{${1:bottom}}{${2:top}}{${3:expr}}\"\n      }\n    },\n    {\n      \"name\": \"longoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longoint{${1:bottom}}{${2:top}}{${3:expr}}\"\n      }\n    },\n    {\n      \"name\": \"longiint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longiint{${1:bottom}}{${2:top}}{${3:expr}}\"\n      }\n    },\n    {\n      \"name\": \"longoiint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longoiint{${1:bottom}}{${2:top}}{${3:expr}}\"\n      }\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"pointint\",\n      \"detail\": \"⨕\",\n      \"doc\": \"Integral around a point operator\"\n    },\n    {\n      \"name\": \"npolint\",\n      \"detail\": \"⨔\",\n      \"doc\": \"Line integration not including the pole\"\n    },\n    {\n      \"name\": \"scpolint\",\n      \"detail\": \"⨓\",\n      \"doc\": \"Line integration with semicircular path around pole\"\n    },\n    {\n      \"name\": \"rppolint\",\n      \"detail\": \"⨒\",\n      \"doc\": \"Line integration with rectangular path around pole\"\n    },\n    {\n      \"name\": \"cirfnint\",\n      \"detail\": \"⨐\",\n      \"doc\": \"Circulation function\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"barint\"\n    },\n    {\n      \"name\": \"doublebarint\"\n    },\n    {\n      \"name\": \"xint\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"intlarhk\",\n      \"detail\": \"⨗\",\n      \"doc\": \"Integral with leftwards arrow with hook\"\n    },\n    {\n      \"name\": \"upint\",\n      \"detail\": \"⨛\",\n      \"doc\": \"Integral with overbar\"\n    },\n    {\n      \"name\": \"downint\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"intcap\",\n      \"detail\": \"⨙\",\n      \"doc\": \"Integral with intersection\"\n    },\n    {\n      \"name\": \"intcup\",\n      \"detail\": \"⨚\",\n      \"doc\": \"Integral with union\"\n    },\n    {\n      \"name\": \"varidotsint\"\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"uprightintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightiiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightoiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightoiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varuprightointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varuprightointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightsqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightsqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightpointintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightnpolintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightscpolintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightrppolintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightcirfnintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightawintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightbarintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightdoublebarintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightxintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlandupintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlanddownintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightintlarhkop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightupintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightdownintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightidotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightsumintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightintcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightintcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlongintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlongointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlongiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightlongoiintop\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cmupint#c\": [\n      \"displaylimits\",\n      \"limits\",\n      \"nolimits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cmupint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cncolours.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cncolours#c\": [\n      \"cas-rgb\",\n      \"cas-rgb*\",\n      \"cas-cmyk\",\n      \"cas-cmyk*\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cncolours#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cnlogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ahulogo\",\n      \"if\": \"ahu\"\n    },\n    {\n      \"name\": \"ahulogo\",\n      \"if\": \"ahu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ahulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ahulogo\",\n      \"if\": \"ahu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ahulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hgyulogo\",\n      \"if\": \"ahu\"\n    },\n    {\n      \"name\": \"hgyulogo\",\n      \"if\": \"ahu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hgyulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hgyulogo\",\n      \"if\": \"ahu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hgyulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bhulogo\",\n      \"if\": \"bhu\"\n    },\n    {\n      \"name\": \"bhulogo\",\n      \"if\": \"bhu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bhulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"bhulogo\",\n      \"if\": \"bhu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bhulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bjtuwhole\",\n      \"if\": \"bjtu\"\n    },\n    {\n      \"name\": \"bjtuwhole\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bjtuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"bjtuwhole\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bjtuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bjtulogo\",\n      \"if\": \"bjtu\"\n    },\n    {\n      \"name\": \"bjtulogo\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bjtulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"bjtulogo\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bjtulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bjtutext\",\n      \"if\": \"bjtu\"\n    },\n    {\n      \"name\": \"bjtutext\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bjtutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"bjtutext\",\n      \"if\": \"bjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bjtutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bjydulogo\",\n      \"if\": \"bjydu\"\n    },\n    {\n      \"name\": \"bjydulogo\",\n      \"if\": \"bjydu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bjydulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"bjydulogo\",\n      \"if\": \"bjydu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bjydulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bnuwhole\",\n      \"if\": \"bnu\"\n    },\n    {\n      \"name\": \"bnuwhole\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bnuwhole[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"bnuwhole\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"bnuwhole[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bnulogo\",\n      \"if\": \"bnu\"\n    },\n    {\n      \"name\": \"bnulogo\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bnulogo[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"bnulogo\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"bnulogo[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bnutext\",\n      \"if\": \"bnu\"\n    },\n    {\n      \"name\": \"bnutext\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"bnutext[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"bnutext\",\n      \"if\": \"bnu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"bnutext[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"chulogo\",\n      \"if\": \"chu\"\n    },\n    {\n      \"name\": \"chulogo\",\n      \"if\": \"chu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"chulogo\",\n      \"if\": \"chu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"chulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ckyulogo\",\n      \"if\": \"ckyu\"\n    },\n    {\n      \"name\": \"ckyulogo\",\n      \"if\": \"ckyu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ckyulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ckyulogo\",\n      \"if\": \"ckyu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ckyulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"csulogo\",\n      \"if\": \"csu\"\n    },\n    {\n      \"name\": \"csulogo\",\n      \"if\": \"csu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"csulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"csulogo\",\n      \"if\": \"csu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"csulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"cuglogo\",\n      \"if\": \"cug\"\n    },\n    {\n      \"name\": \"cuglogo\",\n      \"if\": \"cug\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cuglogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"cuglogo\",\n      \"if\": \"cug\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cuglogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"cupslwhole\",\n      \"if\": \"cupsl\"\n    },\n    {\n      \"name\": \"cupslwhole\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cupslwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"cupslwhole\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cupslwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"cupsllogo\",\n      \"if\": \"cupsl\"\n    },\n    {\n      \"name\": \"cupsllogo\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cupsllogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"cupsllogo\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cupsllogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"cupsltext\",\n      \"if\": \"cupsl\"\n    },\n    {\n      \"name\": \"cupsltext\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cupsltext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"cupsltext\",\n      \"if\": \"cupsl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cupsltext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"dbcjulogo\",\n      \"if\": \"dbcju\"\n    },\n    {\n      \"name\": \"dbcjulogo\",\n      \"if\": \"dbcju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dbcjulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"dbcjulogo\",\n      \"if\": \"dbcju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dbcjulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"dllguwhole\",\n      \"if\": \"dllgu\"\n    },\n    {\n      \"name\": \"dllguwhole\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dllguwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"dllguwhole\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dllguwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"dllgulogo\",\n      \"if\": \"dllgu\"\n    },\n    {\n      \"name\": \"dllgulogo\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dllgulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"dllgulogo\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dllgulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"dllgutext\",\n      \"if\": \"dllgu\"\n    },\n    {\n      \"name\": \"dllgutext\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dllgutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"dllgutext\",\n      \"if\": \"dllgu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dllgutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"fdulogo\",\n      \"if\": \"fdu\"\n    },\n    {\n      \"name\": \"fdulogo\",\n      \"if\": \"fdu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fdulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"fdulogo\",\n      \"if\": \"fdu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fdulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"fdu\"\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"fdu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fdutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"fdu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fdutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"gnulogo\",\n      \"if\": \"gnu\"\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"gnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fdutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"gnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fdutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"gnutext\",\n      \"if\": \"gnu\"\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"gnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fdutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"fdutext\",\n      \"if\": \"gnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fdutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"gufswhole\",\n      \"if\": \"gufs\"\n    },\n    {\n      \"name\": \"gufswhole\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gufswhole[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"gufswhole\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"gufswhole[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"gufslogo\",\n      \"if\": \"gufs\"\n    },\n    {\n      \"name\": \"gufslogo\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gufslogo[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"gufslogo\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"gufslogo[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"gufstext\",\n      \"if\": \"gufs\"\n    },\n    {\n      \"name\": \"gufstext\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gufstext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"gufstext\",\n      \"if\": \"gufs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gufstext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hbulogo\",\n      \"if\": \"hbu\"\n    },\n    {\n      \"name\": \"hbulogo\",\n      \"if\": \"hbu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hbulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hbulogo\",\n      \"if\": \"hbu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hbulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hdsfulogo\",\n      \"if\": \"hdsfu\"\n    },\n    {\n      \"name\": \"hdsfulogo\",\n      \"if\": \"hdsfu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hdsfulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hdsfulogo\",\n      \"if\": \"hdsfu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hdsfulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfuwhole\",\n      \"if\": \"hdzfu\"\n    },\n    {\n      \"name\": \"hdzfuwhole\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hdzfuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfuwhole\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hdzfuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfulogo\",\n      \"if\": \"hdzfu\"\n    },\n    {\n      \"name\": \"hdzfulogo\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hdzfulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfulogo\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hdzfulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfutext\",\n      \"if\": \"hdzfu\"\n    },\n    {\n      \"name\": \"hdzfutext\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hdzfutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hdzfutext\",\n      \"if\": \"hdzfu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hdzfutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hhuwhole\",\n      \"if\": \"hhu\"\n    },\n    {\n      \"name\": \"hhuwhole\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hhuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hhuwhole\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hhuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hhulogo\",\n      \"if\": \"hhu\"\n    },\n    {\n      \"name\": \"hhulogo\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hhulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hhulogo\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hhulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hhutext\",\n      \"if\": \"hhu\"\n    },\n    {\n      \"name\": \"hhutext\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hhutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hhutext\",\n      \"if\": \"hhu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hhutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hitwhole\",\n      \"if\": \"hit\"\n    },\n    {\n      \"name\": \"hitwhole\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hitwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hitwhole\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hitwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hitside\",\n      \"if\": \"hit\"\n    },\n    {\n      \"name\": \"hitside\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hitside[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hitside\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hitside[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hitlogo\",\n      \"if\": \"hit\"\n    },\n    {\n      \"name\": \"hitlogo\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hitlogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hitlogo\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hitlogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hittext\",\n      \"if\": \"hit\"\n    },\n    {\n      \"name\": \"hittext\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hittext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hittext\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hittext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hitjt\",\n      \"if\": \"hit\"\n    },\n    {\n      \"name\": \"hitjt\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hitjt[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"hitjt\",\n      \"if\": \"hit\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"hitjt[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hnlguwhole\",\n      \"if\": \"hnlgu\"\n    },\n    {\n      \"name\": \"hnlgulogo\",\n      \"if\": \"hnlgu\"\n    },\n    {\n      \"name\": \"hnlgutext\",\n      \"if\": \"hnlgu\"\n    },\n    {\n      \"name\": \"hnnutext\",\n      \"if\": \"hnnu\"\n    },\n    {\n      \"name\": \"hnnutext\",\n      \"if\": \"hnnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hnnutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hnnutext\",\n      \"if\": \"hnnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hnnutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hnnulogo\",\n      \"if\": \"hnnu\"\n    },\n    {\n      \"name\": \"hnnulogo\",\n      \"if\": \"hnnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hnnulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hnnulogo\",\n      \"if\": \"hnnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hnnulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hnuwhole\",\n      \"if\": \"hnu\"\n    },\n    {\n      \"name\": \"hnuwhole\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hnuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hnuwhole\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hnuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hnutext\",\n      \"if\": \"hnu\"\n    },\n    {\n      \"name\": \"hnutext\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hnutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hnutext\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hnutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hnulogo\",\n      \"if\": \"hnu\"\n    },\n    {\n      \"name\": \"hnulogo\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hnulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hnulogo\",\n      \"if\": \"hnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hnulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hustcwhole\",\n      \"if\": \"hustc\"\n    },\n    {\n      \"name\": \"hustcwhole\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hustcwhole[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hustcwhole\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"hustcwhole[${1:scale}][${2:color1}][${3:color2}][${4:color3}]\"\n      }\n    },\n    {\n      \"name\": \"hustclogo\",\n      \"if\": \"hustc\"\n    },\n    {\n      \"name\": \"hustclogo\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hustclogo[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hustclogo\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"hustclogo[${1:scale}][${2:color1}][${3:color2}][${4:color3}]\"\n      }\n    },\n    {\n      \"name\": \"hustctext\",\n      \"if\": \"hustc\"\n    },\n    {\n      \"name\": \"hustctext\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hustctext[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hustctext\",\n      \"if\": \"hustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hustctext[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"hznuwhole\",\n      \"if\": \"hznu\"\n    },\n    {\n      \"name\": \"hznuwhole\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hznuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hznuwhole\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hznuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hznulogo\",\n      \"if\": \"hznu\"\n    },\n    {\n      \"name\": \"hznulogo\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hznulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hznulogo\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hznulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"hznutext\",\n      \"if\": \"hznu\"\n    },\n    {\n      \"name\": \"hznutext\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hznutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"hznutext\",\n      \"if\": \"hznu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hznutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"jlulogo\",\n      \"if\": \"jlu\"\n    },\n    {\n      \"name\": \"jlulogo\",\n      \"if\": \"jlu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jlulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"jlulogo\",\n      \"if\": \"jlu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"jlulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"jnuwhole\",\n      \"if\": \"jnu\"\n    },\n    {\n      \"name\": \"jnuwhole\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jnuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"jnuwhole\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"jnuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"jnulogo\",\n      \"if\": \"jnu\"\n    },\n    {\n      \"name\": \"jnulogo\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jnulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"jnulogo\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"jnulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"jnutext\",\n      \"if\": \"jnu\"\n    },\n    {\n      \"name\": \"jnutext\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jnutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"jnutext\",\n      \"if\": \"jnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"jnutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"julogo\",\n      \"if\": \"ju\"\n    },\n    {\n      \"name\": \"julogo\",\n      \"if\": \"ju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"julogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"julogo\",\n      \"if\": \"ju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"julogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lzuwhole\",\n      \"if\": \"lzu\"\n    },\n    {\n      \"name\": \"lzuwhole\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lzuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"lzuwhole\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lzuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lzulogo\",\n      \"if\": \"lzu\"\n    },\n    {\n      \"name\": \"lzulogo\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lzulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"lzulogo\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lzulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lzutext\",\n      \"if\": \"lzu\"\n    },\n    {\n      \"name\": \"lzutext\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lzutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"lzutext\",\n      \"if\": \"lzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lzutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"mucwhole\",\n      \"if\": \"muc\"\n    },\n    {\n      \"name\": \"mucwhole\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mucwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"mucwhole\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"mucwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"muclogo\",\n      \"if\": \"muc\"\n    },\n    {\n      \"name\": \"muclogo\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"muclogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"muclogo\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"muclogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"muctext\",\n      \"if\": \"muc\"\n    },\n    {\n      \"name\": \"muctext\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"muctext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"muctext\",\n      \"if\": \"muc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"muctext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"nculogo\",\n      \"if\": \"ncu\"\n    },\n    {\n      \"name\": \"nculogo\",\n      \"if\": \"ncu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nculogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"nculogo\",\n      \"if\": \"ncu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"nculogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ncutext\",\n      \"if\": \"ncu\"\n    },\n    {\n      \"name\": \"ncutext\",\n      \"if\": \"ncu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ncutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ncutext\",\n      \"if\": \"ncu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ncutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"neuwhole\",\n      \"if\": \"neu\"\n    },\n    {\n      \"name\": \"neuwhole\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"neuwhole\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"neuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"neulogo\",\n      \"if\": \"neu\"\n    },\n    {\n      \"name\": \"neulogo\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"neulogo\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"neulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"neutext\",\n      \"if\": \"neu\"\n    },\n    {\n      \"name\": \"neutext\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"neutext\",\n      \"if\": \"neu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"neutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"njuwhole\",\n      \"if\": \"nju\"\n    },\n    {\n      \"name\": \"njuwhole\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"njuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"njuwhole\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"njuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"njulogo\",\n      \"if\": \"nju\"\n    },\n    {\n      \"name\": \"njulogo\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"njulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"njulogo\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"njulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"njutext\",\n      \"if\": \"nju\"\n    },\n    {\n      \"name\": \"njutext\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"njutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"njutext\",\n      \"if\": \"nju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"njutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"njustwhole\",\n      \"if\": \"njust\"\n    },\n    {\n      \"name\": \"njustwhole\",\n      \"if\": \"njust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"njustwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"njustwhole\",\n      \"if\": \"njust\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"njustwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"nkuwhole\",\n      \"if\": \"nku\"\n    },\n    {\n      \"name\": \"nkuwhole\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nkuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"nkuwhole\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"nkuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"nkulogo\",\n      \"if\": \"nku\"\n    },\n    {\n      \"name\": \"nkulogo\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nkulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"nkulogo\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"nkulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"nkutext\",\n      \"if\": \"nku\"\n    },\n    {\n      \"name\": \"nkutext\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nkutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"nkutext\",\n      \"if\": \"nku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"nkutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pkutext\",\n      \"if\": \"pku\"\n    },\n    {\n      \"name\": \"pkutext\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pkutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"pkutext\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pkutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pkulogo\",\n      \"if\": \"pku\"\n    },\n    {\n      \"name\": \"pkulogo\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pkulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"pkulogo\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pkulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pkuwhole\",\n      \"if\": \"pku\"\n    },\n    {\n      \"name\": \"pkuwhole\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pkuwhole[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"pkuwhole\",\n      \"if\": \"pku\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"pkuwhole[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rucside\",\n      \"if\": \"ruc\"\n    },\n    {\n      \"name\": \"rucside\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rucside[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"rucside\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rucside[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rucwhole\",\n      \"if\": \"ruc\"\n    },\n    {\n      \"name\": \"rucwhole\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rucwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"rucwhole\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rucwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ruclogo\",\n      \"if\": \"ruc\"\n    },\n    {\n      \"name\": \"ruclogo\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ruclogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ruclogo\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ruclogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ructext\",\n      \"if\": \"ruc\"\n    },\n    {\n      \"name\": \"ructext\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ructext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ructext\",\n      \"if\": \"ruc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ructext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"scuwhole\",\n      \"if\": \"scu\"\n    },\n    {\n      \"name\": \"scuwhole\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"scuwhole\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"scuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sculogo\",\n      \"if\": \"scu\"\n    },\n    {\n      \"name\": \"sculogo\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sculogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sculogo\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sculogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"scutext\",\n      \"if\": \"scu\"\n    },\n    {\n      \"name\": \"scutext\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"scutext\",\n      \"if\": \"scu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"scutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjuwhole\",\n      \"if\": \"sdcju\"\n    },\n    {\n      \"name\": \"sdcjuwhole\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sdcjuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjuwhole\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sdcjuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjulogo\",\n      \"if\": \"sdcju\"\n    },\n    {\n      \"name\": \"sdcjulogo\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sdcjulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjulogo\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sdcjulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjutext\",\n      \"if\": \"sdcju\"\n    },\n    {\n      \"name\": \"sdcjutext\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sdcjutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sdcjutext\",\n      \"if\": \"sdcju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sdcjutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sdulogo\",\n      \"if\": \"sdu\"\n    },\n    {\n      \"name\": \"sdulogo\",\n      \"if\": \"sdu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sdulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sdulogo\",\n      \"if\": \"sdu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sdulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"shulogo\",\n      \"if\": \"shu\"\n    },\n    {\n      \"name\": \"shulogo\",\n      \"if\": \"shu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"shulogo\",\n      \"if\": \"shu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"shulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"stjulogo\",\n      \"if\": \"stju\"\n    },\n    {\n      \"name\": \"stjulogo\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stjulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"stjulogo\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"stjulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"stjutext\",\n      \"if\": \"stju\"\n    },\n    {\n      \"name\": \"stjutext\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stjutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"stjutext\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"stjutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"stjuside\",\n      \"if\": \"stju\"\n    },\n    {\n      \"name\": \"stjuside\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stjuside[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"stjuside\",\n      \"if\": \"stju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"stjuside[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sustclogoen\",\n      \"if\": \"sustc\"\n    },\n    {\n      \"name\": \"sustclogoen\",\n      \"if\": \"sustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sustclogoen[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"sustclogoen\",\n      \"if\": \"sustc\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"sustclogoen[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sustclogocn\",\n      \"if\": \"sustc\"\n    },\n    {\n      \"name\": \"sustclogocn\",\n      \"if\": \"sustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sustclogocn[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"sustclogocn\",\n      \"if\": \"sustc\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"sustclogocn[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"swaulogo\",\n      \"if\": \"swau\"\n    },\n    {\n      \"name\": \"swaulogo\",\n      \"if\": \"swau\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"swaulogo[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"swaulogo\",\n      \"if\": \"swau\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"swaulogo[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"swcnulogo\",\n      \"if\": \"swcnu\"\n    },\n    {\n      \"name\": \"swcnulogo\",\n      \"if\": \"swcnu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"swcnulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"swcnulogo\",\n      \"if\": \"swcnu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"swcnulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sysulogo\",\n      \"if\": \"sysu\"\n    },\n    {\n      \"name\": \"sysulogo\",\n      \"if\": \"sysu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sysulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sysulogo\",\n      \"if\": \"sysu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sysulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sysutext\",\n      \"if\": \"sysu\"\n    },\n    {\n      \"name\": \"sysutext\",\n      \"if\": \"sysu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sysutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"sysutext\",\n      \"if\": \"sysu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sysutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"szuwhole\",\n      \"if\": \"szu\"\n    },\n    {\n      \"name\": \"szuwhole\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"szuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"szuwhole\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"szuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"szulogo\",\n      \"if\": \"szu\"\n    },\n    {\n      \"name\": \"szulogo\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"szulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"szulogo\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"szulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"szutext\",\n      \"if\": \"szu\"\n    },\n    {\n      \"name\": \"szutext\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"szutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"szutext\",\n      \"if\": \"szu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"szutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"thulogo\",\n      \"if\": \"thu\"\n    },\n    {\n      \"name\": \"thulogo\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"thulogo\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"thulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"thulib\",\n      \"if\": \"thu\"\n    },\n    {\n      \"name\": \"thulib\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thulib[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"thulib\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"thulib[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"thutext\",\n      \"if\": \"thu\"\n    },\n    {\n      \"name\": \"thutext\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"thutext\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"thutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"thuside\",\n      \"if\": \"thu\"\n    },\n    {\n      \"name\": \"thuside\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thuside[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"thuside\",\n      \"if\": \"thu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"thuside[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjuwhole\",\n      \"if\": \"tju\"\n    },\n    {\n      \"name\": \"tjuwhole\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjuwhole\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjulogo\",\n      \"if\": \"tju\"\n    },\n    {\n      \"name\": \"tjulogo\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjulogo\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjutext\",\n      \"if\": \"tju\"\n    },\n    {\n      \"name\": \"tjutext\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjutext\",\n      \"if\": \"tju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjuuwhole\",\n      \"if\": \"tjuu\"\n    },\n    {\n      \"name\": \"tjuuwhole\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjuuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjuuwhole\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjuuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjuulogo\",\n      \"if\": \"tjuu\"\n    },\n    {\n      \"name\": \"tjuulogo\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjuulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjuulogo\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjuulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tjuutext\",\n      \"if\": \"tjuu\"\n    },\n    {\n      \"name\": \"tjuutext\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tjuutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tjuutext\",\n      \"if\": \"tjuu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"tjuutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ustblogo\",\n      \"if\": \"ustb\"\n    },\n    {\n      \"name\": \"ustblogo\",\n      \"if\": \"ustb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ustblogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ustblogo\",\n      \"if\": \"ustb\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ustblogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ustclogo\",\n      \"if\": \"ustc\"\n    },\n    {\n      \"name\": \"ustclogo\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ustclogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ustclogo\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ustclogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ustcside\",\n      \"if\": \"ustc\"\n    },\n    {\n      \"name\": \"ustcside\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ustcside[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ustcside\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ustcside[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ustcwhole\",\n      \"if\": \"ustc\"\n    },\n    {\n      \"name\": \"ustcwhole\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ustcwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ustcwhole\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ustcwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"ustctext\",\n      \"if\": \"ustc\"\n    },\n    {\n      \"name\": \"ustctext\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ustctext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ustctext\",\n      \"if\": \"ustc\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ustctext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"whlgulogo\",\n      \"if\": \"whlgu\"\n    },\n    {\n      \"name\": \"whlgulogo\",\n      \"if\": \"whlgu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whlgulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"whlgulogo\",\n      \"if\": \"whlgu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"whlgulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"whulogo\",\n      \"if\": \"whu\"\n    },\n    {\n      \"name\": \"whulogo\",\n      \"if\": \"whu\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"whulogo[${1:color1}][${2:color2}][${3:color3}][${4:color4}]\"\n      }\n    },\n    {\n      \"name\": \"whulogo\",\n      \"if\": \"whu\",\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"whulogo[${1:color1}][${2:color2}][${3:color3}][${4:color4}][${5:scale}]\"\n      }\n    },\n    {\n      \"name\": \"wzulogo\",\n      \"if\": \"wzu\"\n    },\n    {\n      \"name\": \"wzulogo\",\n      \"if\": \"wzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wzulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"wzulogo\",\n      \"if\": \"wzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"wzulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjuwhole\",\n      \"if\": \"xbnlkju\"\n    },\n    {\n      \"name\": \"xbnlkjuwhole\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xbnlkjuwhole[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjuwhole\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"xbnlkjuwhole[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjulogo\",\n      \"if\": \"xbnlkju\"\n    },\n    {\n      \"name\": \"xbnlkjulogo\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xbnlkjulogo[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjulogo\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"xbnlkjulogo[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjutext\",\n      \"if\": \"xbnlkju\"\n    },\n    {\n      \"name\": \"xbnlkjutext\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xbnlkjutext[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"xbnlkjutext\",\n      \"if\": \"xbnlkju\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"xbnlkjutext[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xdulogo\",\n      \"if\": \"xdu\"\n    },\n    {\n      \"name\": \"xdulogo\",\n      \"if\": \"xdu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xdulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xdulogo\",\n      \"if\": \"xdu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xdulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xjtuwhole\",\n      \"if\": \"xjtu\"\n    },\n    {\n      \"name\": \"xjtuwhole\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xjtuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xjtuwhole\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xjtuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xjtulogo\",\n      \"if\": \"xjtu\"\n    },\n    {\n      \"name\": \"xjtulogo\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xjtulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xjtulogo\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xjtulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xjtutext\",\n      \"if\": \"xjtu\"\n    },\n    {\n      \"name\": \"xjtutext\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xjtutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xjtutext\",\n      \"if\": \"xjtu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xjtutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xmutext\",\n      \"if\": \"xmu\"\n    },\n    {\n      \"name\": \"xmutext\",\n      \"if\": \"xmu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xmutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xmutext\",\n      \"if\": \"xmu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xmutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xmulogo\",\n      \"if\": \"xmu\"\n    },\n    {\n      \"name\": \"xmulogo\",\n      \"if\": \"xmu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xmulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"xmulogo\",\n      \"if\": \"xmu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xmulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"yzuwhole\",\n      \"if\": \"yzu\"\n    },\n    {\n      \"name\": \"yzuwhole\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yzuwhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"yzuwhole\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"yzuwhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"yzulogo\",\n      \"if\": \"yzu\"\n    },\n    {\n      \"name\": \"yzulogo\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yzulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"yzulogo\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"yzulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"yzutext\",\n      \"if\": \"yzu\"\n    },\n    {\n      \"name\": \"yzutext\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yzutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"yzutext\",\n      \"if\": \"yzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"yzutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zcmulogo\",\n      \"if\": \"zcmu\"\n    },\n    {\n      \"name\": \"zcmulogo\",\n      \"if\": \"zcmu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zcmulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zcmulogo\",\n      \"if\": \"zcmu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zcmulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zhyulogo\",\n      \"if\": \"zhyu\"\n    },\n    {\n      \"name\": \"zhyulogo\",\n      \"if\": \"zhyu\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"zhyulogo[${1:color1}][${2:color2}][${3:color3}][${4:color4}]\"\n      }\n    },\n    {\n      \"name\": \"zhyulogo\",\n      \"if\": \"zhyu\",\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"zhyulogo[${1:color1}][${2:color2}][${3:color3}][${4:color4}][${5:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zjulogo\",\n      \"if\": \"zju\"\n    },\n    {\n      \"name\": \"zjulogo\",\n      \"if\": \"zju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zjulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zjulogo\",\n      \"if\": \"zju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zjulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zjutext\",\n      \"if\": \"zju\"\n    },\n    {\n      \"name\": \"zjutext\",\n      \"if\": \"zju\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zjutext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zjutext\",\n      \"if\": \"zju\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zjutext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zkywhole\",\n      \"if\": \"zky\"\n    },\n    {\n      \"name\": \"zkywhole\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zkywhole[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zkywhole\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zkywhole[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zkylogo\",\n      \"if\": \"zky\"\n    },\n    {\n      \"name\": \"zkylogo\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zkylogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zkylogo\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zkylogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zkytext\",\n      \"if\": \"zky\"\n    },\n    {\n      \"name\": \"zkytext\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zkytext[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"zkytext\",\n      \"if\": \"zky\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zkytext[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"znyulogo\",\n      \"if\": \"znyu\"\n    },\n    {\n      \"name\": \"znyulogo\",\n      \"if\": \"znyu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"znyulogo[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"znyulogo\",\n      \"if\": \"znyu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"znyulogo[${1:color}][${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zzuwhole\",\n      \"if\": \"zzu\"\n    },\n    {\n      \"name\": \"zzuwhole\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zzuwhole[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"zzuwhole\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"zzuwhole[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zzulogo\",\n      \"if\": \"zzu\"\n    },\n    {\n      \"name\": \"zzulogo\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zzulogo[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"zzulogo\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"zzulogo[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"zzutext\",\n      \"if\": \"zzu\"\n    },\n    {\n      \"name\": \"zzutext\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zzutext[${1:color1}][${2:color2}]\"\n      }\n    },\n    {\n      \"name\": \"zzutext\",\n      \"if\": \"zzu\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"zzutext[${1:color1}][${2:color2}][${3:scale}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cnlogo#c\": [\n      \"ahu\",\n      \"bhu\",\n      \"bjtu\",\n      \"bjydu\",\n      \"bnu\",\n      \"chu\",\n      \"ckyu\",\n      \"csu\",\n      \"cug\",\n      \"cupsl\",\n      \"dbcju\",\n      \"dllgu\",\n      \"fdu\",\n      \"gnu\",\n      \"gufs\",\n      \"hbu\",\n      \"hdsfu\",\n      \"hdzfu\",\n      \"hhu\",\n      \"hit\",\n      \"hnlgu\",\n      \"hnnu\",\n      \"hnu\",\n      \"hustc\",\n      \"hznu\",\n      \"jlu\",\n      \"jnu\",\n      \"ju\",\n      \"lzu\",\n      \"muc\",\n      \"ncu\",\n      \"neu\",\n      \"nju\",\n      \"njust\",\n      \"nku\",\n      \"pku\",\n      \"ruc\",\n      \"scu\",\n      \"sdcju\",\n      \"sdu\",\n      \"shu\",\n      \"stju\",\n      \"sustc\",\n      \"swau\",\n      \"swcnu\",\n      \"sysu\",\n      \"szu\",\n      \"thu\",\n      \"tju\",\n      \"tju\",\n      \"tjuu\",\n      \"ustb\",\n      \"ustc\",\n      \"whlgu\",\n      \"whu\",\n      \"wzu\",\n      \"xbnlkju\",\n      \"xdu\",\n      \"xjtu\",\n      \"xmu\",\n      \"yzu\",\n      \"zcmu\",\n      \"zhyu\",\n      \"zju\",\n      \"zky\",\n      \"znyu\",\n      \"zzu\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cnlogo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cnltx-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iftest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftest{${1:test directive}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"nottest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nottest{${1:test directive}}{${2:not true}}{${3:not false}}\"\n      }\n    },\n    {\n      \"name\": \"expandtwice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandtwice{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"cnltxat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnltxletterat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnltxotherat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnltxbang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnltxequal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcnltx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcnltx{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCounterRepresentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCounterRepresentation{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcounterrepresentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcounterrepresentation{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecounterrepresentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecounterrepresentation{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcounterrepresentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcounterrepresentation{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newexpandablecmd{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newexpandablecmd{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newexpandablecmd{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newexpandablecmd*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newexpandablecmd*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newexpandablecmd*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewexpandablecmd{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewexpandablecmd{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewexpandablecmd{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewexpandablecmd*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewexpandablecmd*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewexpandablecmd*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideexpandablecmd{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideexpandablecmd{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideexpandablecmd{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideexpandablecmd*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"provideexpandablecmd*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"provideexpandablecmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"provideexpandablecmd*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorscheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definecolorscheme{${1:name}}{${2:color assignments}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setcnltx#c\": [\n      \"color-scheme=${1:color scheme name}\",\n      \"set-trail-punct={${1:punctuation marks}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx-example.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-listings\"\n    },\n    {\n      \"name\": \"cnltx-translations\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"idxcmds\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ulem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"verbcode\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"verbcode|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"csidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csidx{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"env*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"envidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envidx{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"beginend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"beginenv\"\n    },\n    {\n      \"name\": \"beginenv*\"\n    },\n    {\n      \"name\": \"endenv\"\n    },\n    {\n      \"name\": \"endenv*\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:meta}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"darg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"darg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Darg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Darg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sarg\"\n    },\n    {\n      \"name\": \"newarg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarg{${1:cmd}}{${2:left delim}}{${3:right delim}}\"\n      }\n    },\n    {\n      \"name\": \"newarg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newarg[${4:formatting}]{${1:cmd}}{${2:left delim}}{${3:right delim}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"option*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"optionidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionidx{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"module\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"module{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"module*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"module*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"moduleidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moduleidx{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"key{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"key*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"key*{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keyis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyis{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"keyis*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyis*{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"choices\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choices{${1:list of choices}}\"\n      }\n    },\n    {\n      \"name\": \"choicekey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"choicekey{${1:name}}{${2:list of choices}}\"\n      }\n    },\n    {\n      \"name\": \"boolkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolkey{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"default\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"default{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg*{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgidx{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls*{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"clsidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsidx{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"bnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnd{${1:bundle}}\"\n      }\n    },\n    {\n      \"name\": \"bnd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnd*{${1:bundle}}\"\n      }\n    },\n    {\n      \"name\": \"bnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnd{${1:bundle}}\"\n      }\n    },\n    {\n      \"name\": \"inputexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputexample{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputexample\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputexample[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputsidebyside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputsidebyside{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputsidebyside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputsidebyside[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputsourcecode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputsourcecode{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputsourcecode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputsourcecode[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"implementation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"implementation{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"implementation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"implementation[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\implementation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newinputsourcefilecmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newinputsourcefilecmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newinputsourcefilecmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newinputsourcefilecmd[${2:options%keyvals}]{${1:cmd}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newsourcecodeenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsourcecodeenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newsourcecodeenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsourcecodeenv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourceformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionnoteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"packageformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argumentformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"indexenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexenv{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"MakePercentComment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidebyside\"\n    },\n    {\n      \"name\": \"sidebyside\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sourcecode\"\n    },\n    {\n      \"name\": \"sourcecode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bash\"\n    },\n    {\n      \"name\": \"bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\implementation\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ],\n    \"\\\\setcnltx#c,\\\\inputexample,\\\\inputsidebyside,\\\\inputsourcecode,\\\\newinputsourcefilecmd,\\\\begin{example},\\\\begin{sidebyside},\\\\begin{sourcecode},\\\\newsourcecodeenv\": [\n      \"side-by-side\",\n      \"code-only\",\n      \"code-left\",\n      \"compile\",\n      \"code-sep={${1:definitions}}\",\n      \"pre-code={${1:definitions}}\",\n      \"after-code={${1:definitions}}\",\n      \"pre-output={${1:definitions}}\",\n      \"after-output={${1:definitions}}\",\n      \"add-frame-options={${1:mdframed options}}\",\n      \"frame-options={${1:mdframed options}}\",\n      \"add-local-frame={${1:mdframed options}}\",\n      \"local-frame={${1:mdframed options}}\",\n      \"gobble=${1:integer}\",\n      \"add-cmds={${1:list of csnames}}\",\n      \"add-silent-cmds={${1:list of csnames}}\",\n      \"listings-options={${1:listings options}}\",\n      \"add-listings-options={${1:listings options}}\",\n      \"add-sourcecode-options={${1:listings options}}\",\n      \"sourcecode-options={${1:listings options}}\",\n      \"add-envs={${1:list of envnames}}\",\n      \"add-silent-envs={${1:list of envnames}}\",\n      \"max-pages=${1:number}\",\n      \"max-height=\",\n      \"pages={${1:specs}}\",\n      \"runs=${1:number}\",\n      \"program=${1|pdflatex,lualatex,xelatex,arara|}\",\n      \"file-ext=${1:extension}\",\n      \"exe-with={${1:options}}\",\n      \"graphics={${1:options}}\",\n      \"float\",\n      \"float-env=${1:envname}\",\n      \"caption={${1:text}}\",\n      \"float-pos={${1:float parameters}}\",\n      \"outside\",\n      \"add-frame\",\n      \"before-skip=\",\n      \"after-skip=\"\n    ],\n    \"\\\\setcnltx#c\": [\n      \"title-format={${1:definitions}}\",\n      \"abstract-width=\",\n      \"abstract-format={${1:definitions}}\",\n      \"caption-font={${1:definitions}}\",\n      \"caption-label-font={${1:definitions}}\",\n      \"code-font={${1:definitions}}\",\n      \"source-format={${1:definitions}}\",\n      \"expl-format={${1:definitions}}\",\n      \"module-sep={${1:definitions}}\",\n      \"version-note-format={${1:definitions}}\",\n      \"pkg-format={${1:definitions}}\",\n      \"cls-format={${1:definitions}}\",\n      \"arg-format={${1:definitions}}\",\n      \"deafult-format={${1:definitions}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx-listings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listsilentcmds\"\n    },\n    {\n      \"name\": \"listsilentenvs\"\n    },\n    {\n      \"name\": \"listbibfilekeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listbibfilekeys{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"listbibfiletypes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listbibfiletypes{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"listbibfileentries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listbibfileentries{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setcnltx#c\": [\n      \"list-sep=${1:separator}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx-names.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newfirstformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfirstformat{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"writename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defnameformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"defnameformat{${1:format name}}{${2:first}}{${3:middle}}{${4:last}}\"\n      }\n    },\n    {\n      \"name\": \"writenameformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writenameformat{${1:format name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"name*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nameformat\"\n    },\n    {\n      \"name\": \"namefirstformat\"\n    },\n    {\n      \"name\": \"resetname\"\n    },\n    {\n      \"name\": \"newname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newname{${1:cmd}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx-tools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"cnltx-translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cnltxacronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cnltxacronym{${1:string}}{${2:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newabbr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newabbr*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewabbr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewabbr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewabbr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewabbr*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defabbr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defabbr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defabbr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defabbr*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"cnltxlatin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnltxlatin{${1:abbreviation}}\"\n      }\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"ZB\"\n    },\n    {\n      \"name\": \"usw\"\n    },\n    {\n      \"name\": \"usf\"\n    },\n    {\n      \"name\": \"uswusf\"\n    },\n    {\n      \"name\": \"bzw\"\n    },\n    {\n      \"name\": \"dsh\"\n    },\n    {\n      \"name\": \"Dsh\"\n    },\n    {\n      \"name\": \"vgl\"\n    },\n    {\n      \"name\": \"Vgl\"\n    },\n    {\n      \"name\": \"cnltxtimeformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnltxtimeformat{${1:abbreviation}}\"\n      }\n    },\n    {\n      \"name\": \"PM\"\n    },\n    {\n      \"name\": \"AM\"\n    },\n    {\n      \"name\": \"BC\"\n    },\n    {\n      \"name\": \"AD\"\n    },\n    {\n      \"name\": \"nohyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texorpdfstring{${1:TEXstring}}{${2:PDFstring}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setcnltx#c\": [\n      \"acronym-format={${1:definition}}\",\n      \"name-format={${1:formatting cmds}}\",\n      \"last-name-format={${1:formatting cmds}}\",\n      \"first-name-format={${1:formatting cmds}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx-translations.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cnltx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    },\n    {\n      \"name\": \"cnltx-listings\",\n      \"if\": \"listings\"\n    },\n    {\n      \"name\": \"cnltx-example\",\n      \"if\": \"example\"\n    },\n    {\n      \"name\": \"cnltx-names\",\n      \"if\": \"names\"\n    },\n    {\n      \"name\": \"cnltx-tools\",\n      \"if\": \"tools\"\n    },\n    {\n      \"name\": \"cnltx-translations\",\n      \"if\": \"translations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cntdwn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cntdwnlTimers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnaTimers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnYear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnYears\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnDay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnDays\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnHour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnHours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnMinute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnMinutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnSecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnSeconds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CDO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setShortCntDwn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setShortCntDwn{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setShortCntDwn\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"seconds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntdwnDisplay\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnDisplay{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnDisplay\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnDisplay[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStartT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnStartT{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStartT\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnStartT[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnPauseT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnPauseT{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnPauseT\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnPauseT[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStopT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnStopT{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStopT\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnStopT[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnEndTarget\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnEndTarget{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnEndTarget\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnEndTarget[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnStart{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnStart[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnPause\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnPause{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnPause\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnPause[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnStop{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnStop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnStop[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnopts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cntdwnopts{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thetimername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetimername{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"isStopwatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnddwnDefaultEndMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLongCntDwn\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setLongCntDwn{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setLongCntDwn\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"days\",\n      \"if\": \"longcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weeks\",\n      \"if\": \"longcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"years\",\n      \"if\": \"longcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcntdwnDisplay\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lcntdwnDisplay{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"lcntdwnDisplay\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lcntdwnDisplay[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"lcntdwnToggle\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lcntdwnToggle{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"lcntdwnToggle\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lcntdwnToggle[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"setClockTimer\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setClockTimer{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setClockTimer\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cntdwnclocktime\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnclocktime{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnclocktime\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnclocktime[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnclockdate\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cntdwnclockdate{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"cntdwnclockdate\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"cntdwnclockdate[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"clockToggle\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"clockToggle{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"clockToggle\",\n      \"if\": \"longcount\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"clockToggle[${4:eforms options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"lcnddwnDefaultEndMsg\",\n      \"if\": \"longcount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cntdwn#c\": [\n      \"shortcount\",\n      \"longcount\"\n    ],\n    \"\\\\setShortCntDwn\": [\n      \"length=${1:time}\",\n      \"stopwatch\",\n      \"onfinish=${1|stop,continue|}\",\n      \"endmsg=${1:text}\",\n      \"notify1=${1:time}\",\n      \"notify2=${1:time}\",\n      \"notify3=${1:time}\",\n      \"event1=${1:JavaScript function}\",\n      \"event2=${1:JavaScript function}\",\n      \"event3=${1:JavaScript function}\",\n      \"endEvent=${1:JavaScript function}\",\n      \"startcolor=${1:JavaScript color}\",\n      \"pausecolor=${1:JavaScript color}\",\n      \"stopcolor=${1:JavaScript color}\",\n      \"autorun\",\n      \"refreshrate=${1:number}\"\n    ],\n    \"\\\\setLongCntDwn\": [\n      \"date=${1:YYYY/MM/DD}\",\n      \"time=${1:HH:mm:SS}\",\n      \"tzoffset=\",\n      \"refreshrate=${1:number}\",\n      \"autorun\",\n      \"autopause\",\n      \"autorunenabled\",\n      \"notify1=${1:time}\",\n      \"notify2=${1:time}\",\n      \"notify3=${1:time}\",\n      \"notify5=${1:time}\",\n      \"notify6=${1:time}\",\n      \"notify7=${1:time}\",\n      \"eventhandler=\",\n      \"endtimecolor=${1:JavaScript color}\",\n      \"displayfunc=${1:JavaScript function}\",\n      \"onfinish=${1|stop,continue|}\",\n      \"endmsg=${1:text}\"\n    ],\n    \"\\\\setClockTimer\": [\n      \"tzoffset=\",\n      \"refreshrate=${1:number}\",\n      \"autorun\",\n      \"autopause\",\n      \"currtimefunc=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cntdwn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cntformats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cnltx-base\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AddCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddCounterPattern{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"AddCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddCounterPattern[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"AddCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddCounterPattern*{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"AddCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddCounterPattern*[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"NewCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCounterPattern{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"NewCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewCounterPattern[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"NewCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCounterPattern*{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"NewCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewCounterPattern*[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"RenewCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewCounterPattern{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"RenewCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewCounterPattern[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"RenewCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewCounterPattern*{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"RenewCounterPattern*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewCounterPattern*[${3:module}]{${1:counter}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReadCounterFrom{${1:counter}}{${2:internal cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ReadCounterFrom[${3:module}]{${1:counter}}{${2:internal cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadCounterPattern{${1:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReadCounterPattern[${2:module}]{${1:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadCounterPatternFrom{${1:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"ReadCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReadCounterPatternFrom[${2:module}]{${1:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SaveCounterPattern{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SaveCounterPattern[${4:module}]{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"eSaveCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSaveCounterPattern{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"eSaveCounterPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"eSaveCounterPattern[${4:module}]{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SaveCounterPatternFrom{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SaveCounterPatternFrom[${4:module}]{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"eSaveCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eSaveCounterPatternFrom{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"eSaveCounterPatternFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"eSaveCounterPatternFrom[${4:module}]{${1:cmd a%cmd}}{${2:cmd b%cmd}}{${3:pattern macro}}\"\n      }\n    },\n    {\n      \"name\": \"NewPatternFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewPatternFormat{${1:pattern}}{${2:format}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cochineal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cochLF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cochOsF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cochTLF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cochTOsF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"destyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Qnoswash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qswash\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"sustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cochineal#c\": [\n      \"type1\",\n      \"defaultfeatures={${1:fontspec options}}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"altQ\",\n      \"altJ\",\n      \"oldSS\",\n      \"theoremfont\",\n      \"otfmath\",\n      \"thmtabular\",\n      \"thmlining\",\n      \"swashQ\",\n      \"sups\",\n      \"scosf\",\n      \"bold\",\n      \"regular\",\n      \"foresolidus=\",\n      \"aftsolidus=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cochineal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/codeanatomy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"codeBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codeBlock{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"cPart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cPart{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cPart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cPart[${3:TikZ keys}]{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"iPart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iPart{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"iPart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"iPart[${3:TikZ keys}]{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"mtPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtPoint{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"hmtPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hmtPoint{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"mbPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mbPoint{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"dmbPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dmbPoint{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"extremPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extremPoint{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"extremPoint\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"extremPoint{${1:node name}}[${2:yshift}]\"\n      }\n    },\n    {\n      \"name\": \"extremPoint\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"extremPoint{${1:node name}}[${2:yshift}][${3:xshift}]\"\n      }\n    },\n    {\n      \"name\": \"extremPoint\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"extremPoint{${1:node name}}[${2:yshift}][${3:xshift}][${4:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fitExtrem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fitExtrem{${1:node name}}{${2:extrem points}}\"\n      }\n    },\n    {\n      \"name\": \"bgcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bgcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ptab\"\n    },\n    {\n      \"name\": \"phspace\"\n    },\n    {\n      \"name\": \"codeAnnotation\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"codeAnnotation{${1:node name}}(${3:coordinate}){${2:label text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/codebox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"codefile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"codefile{${1:title%text}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"codefile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"codefile[${3:options%keyvals}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codefile*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"codefile*{${1:title%text}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"codefile*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"codefile*[${3:options%keyvals}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvfile{${1:title%text}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"cvfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvfile[${3:options%keyvals}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\",\n          \"\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cvfile*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvfile*{${1:title%text}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"cvfile*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvfile*[${3:options%keyvals}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\",\n          \"\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codeset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"thecvcounter\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"codebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"codebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"codebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codeview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"codeview\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\",\n          \"\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codeview*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"codeview*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\",\n          \"\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{codebox},\\\\begin{codebox*},\\\\codefile,\\\\codefile*,\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\": [\n      \"minted\",\n      \"lang=${1:source code lang}\",\n      \"pretitle=${1:title prefix}\",\n      \"codestyle=${1:highlight style}\",\n      \"codesize=${1:fontsize macro}\",\n      \"comments=${1:text}\",\n      \"commentf=${1:format macros}\",\n      \"codestretch=${1:factor}\",\n      \"linenumsep=${1:number}\"\n    ],\n    \"\\\\begin{codeview},\\\\begin{codeview*},\\\\cvfile,\\\\cvfile*\": [\n      \"label=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/codedescribe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"codelisting\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defgroupfmt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defgroupfmt{${1:format-group}}{${2:format-keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\defgroupfmt#c,\\\\defobjectfmt#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"defobjectfmt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defobjectfmt{${1:obj-type}}{${2:format-group}}{${3:format-keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\defgroupfmt#c,\\\\defobjectfmt#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"describe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"describe{${1:item-name}}{${2:item-description%text}}\"\n      }\n    },\n    {\n      \"name\": \"typesetobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetobj{${1:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"typesetobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typesetobj[${2:obj-type%keyvals}]{${1:csv-list}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\",\n          \"\\\\typesetobj#c,\\\\tsobj#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsobj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsobj{${1:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"tsobj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsobj[${2:obj-type%keyvals}]{${1:csv-list}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\",\n          \"\\\\typesetobj#c,\\\\tsobj#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typesetargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetargs{${1:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"typesetargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typesetargs[${2:obj-type%keyvals}]{${1:csv-list}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsargs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsargs{${1:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"tsargs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsargs[${2:obj-type%keyvals}]{${1:csv-list}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typesetmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typesetmacro{${1:macro-list}}{${2:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"typesetmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"typesetmacro{${1:macro-list}}[${3:oargs-list}]{${2:margs-list}}\"\n      }\n    },\n    {\n      \"name\": \"tsmacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsmacro{${1:macro-list%definition}}{${2:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"tsmacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tsmacro{${1:macro-list%definition}}[${3:oargs-list}]{${2:margs-list}}\"\n      }\n    },\n    {\n      \"name\": \"typesetmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetmeta{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tsmeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsmeta{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"typesetverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetverb{${1:verbatim text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"typesetverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typesetverb[${2:obj-type%keyvals}]{${1:verbatim text%definition}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsverb{${1:verbatim text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"tsverb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsverb[${2:obj-type%keyvals}]{${1:verbatim text%definition}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typesetmarginnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetmarginnote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"tsmarginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsmarginnote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"typesettitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesettitle{${1:title-keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\typesettitle,\\\\tstitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tstitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstitle{${1:title-keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\typesettitle,\\\\tstitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typesetdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsdate\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"codedescribe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"codedescribe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:obj-type%keyvals}]{${1:csv-list}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\",\n          \"\\\\begin{codedescribe}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codesyntax\"\n    },\n    {\n      \"name\": \"describelist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:obj-type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"describelist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:item-indent}]{${1:obj-type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"describelist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:obj-type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"describelist*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:item-indent}]{${1:obj-type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"tsremark\"\n    },\n    {\n      \"name\": \"tsremark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:NB}]\"\n      }\n    },\n    {\n      \"name\": \"typesetabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsabstract\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/codedescribe#c\": [\n      \"nolisting\"\n    ],\n    \"\\\\defgroupfmt#c,\\\\defobjectfmt#c\": [\n      \"meta\",\n      \"xmeta\",\n      \"verb\",\n      \"xverb\",\n      \"code\",\n      \"nofmt\",\n      \"slshape\",\n      \"itshape\",\n      \"noshape\",\n      \"lbracket=${1:symbol}\",\n      \"rbracket=${1:symbol}\",\n      \"color=\"\n    ],\n    \"\\\\begin{codedescribe}#c,\\\\begin{describelist}#c,\\\\begin{describelist*}#c,\\\\typesetobj#c,\\\\tsobj#c,\\\\typesetargs#c,\\\\tsargs#c,\\\\typesetverb#c,\\\\tsverb#c\": [\n      \"arg\",\n      \"meta\",\n      \"verb\",\n      \"xverb\",\n      \"marg\",\n      \"oarg\",\n      \"parg\",\n      \"xarg\",\n      \"code\",\n      \"macro\",\n      \"function\",\n      \"syntax\",\n      \"keyval\",\n      \"key\",\n      \"keys\",\n      \"value\",\n      \"option\",\n      \"defaultval\",\n      \"env\",\n      \"pkg\",\n      \"pack\"\n    ],\n    \"\\\\begin{codedescribe}#c\": [\n      \"rulecolor=${1:color}\",\n      \"new=${1:date}\",\n      \"update=${1:date}\",\n      \"note=${1:text}\",\n      \"EXP\",\n      \"rEXP\"\n    ],\n    \"\\\\typesetobj#c,\\\\tsobj#c\": [\n      \"sep=${1:separator}\"\n    ],\n    \"\\\\typesettitle,\\\\tstitle\": [\n      \"title=${1:text}\",\n      \"author=${1:name}\",\n      \"date=${1:date}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/codedescribe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/codehigh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ninecolors\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CodeHigh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CodeHigh{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{codehigh},\\\\begin{demohigh},\\\\CodeHigh,\\\\dochighinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dochighinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dochighinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dochighinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dochighinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{codehigh},\\\\begin{demohigh},\\\\CodeHigh,\\\\dochighinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fakeverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakeverb{${1:verbatim content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewCodeHighEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCodeHighEnv{${1:envname}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"NewCodeHighInput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCodeHighInput{${1:command}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"AddCodeHighRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddCodeHighRule{${1:type}}{${2:name}}{${3:regex%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AddCodeHighRule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"AddCodeHighRule[${4:language}]{${1:type}}{${2:name}}{${3:regex%definition}}\"\n      }\n    },\n    {\n      \"name\": \"SetCodeHighStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCodeHighStyle{${1:type}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetCodeHighStyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetCodeHighStyle[${3:theme}]{${1:type}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"GetCodeHighStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetCodeHighStyle{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"GetCodeHighStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GetCodeHighStyle[${2:theme}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"SetCodeHighTracing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCodeHighTracing{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetCodeHighTracing\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"codehigh\"\n    },\n    {\n      \"name\": \"codehigh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{codehigh},\\\\begin{demohigh},\\\\CodeHigh,\\\\dochighinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demohigh\"\n    },\n    {\n      \"name\": \"demohigh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{codehigh},\\\\begin{demohigh},\\\\CodeHigh,\\\\dochighinput\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{codehigh},\\\\begin{demohigh},\\\\CodeHigh,\\\\dochighinput\": [\n      \"language=${1|latex,latex/latex2,latex/latex3,latex/math,latex/table|}\",\n      \"style/main=\",\n      \"style/code=\",\n      \"style/demo=\",\n      \"boxsep=\",\n      \"lite\",\n      \"long\",\n      \"demo\",\n      \"theme=${1:theme}\"\n    ],\n    \"\\\\SetCodeHighTracing\": [\n      \"+code\",\n      \"-code\",\n      \"+demo\",\n      \"-demo\",\n      \"+parser\",\n      \"-parser\",\n      \"all\",\n      \"none\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/codelisting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"scontents\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tscode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tscode{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tscode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tscode[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tscode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tscode*{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tscode*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tscode*[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsdemo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsdemo{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tsdemo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsdemo[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsdemo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsdemo*{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tsdemo*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsdemo*[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsresult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsresult{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tsresult\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsresult[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsresult*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsresult*{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"tsresult*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsresult*[${2:code-keys%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcodekeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcodekeys{${1:code-keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"codestore\"\n    },\n    {\n      \"name\": \"codestore\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{codestore}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{codestore}#c\": [\n      \"${1:st-name}\",\n      \"st=${1:st-name}\",\n      \"store-at=${1:st-name}\",\n      \"store-env=${1:seq name}\",\n      \"print-env\",\n      \"write-env=${1:file.ext}\",\n      \"write-out=${1:file.ext}\",\n      \"overwrite\",\n      \"force-eol\"\n    ],\n    \"\\\\tscode,\\\\tscode*,\\\\tsdemo,\\\\tsdemo*,\\\\tsresult,\\\\tsresult*,\\\\setcodekeys\": [\n      \"settexcs={${1:csname1,csname2,...}}\",\n      \"settexcs2={${1:csname1,csname2,...}}\",\n      \"settexcs3={${1:csname1,csname2,...}}\",\n      \"texcs={${1:csname1,csname2,...}}\",\n      \"texcs2={${1:csname1,csname2,...}}\",\n      \"texcs3={${1:csname1,csname2,...}}\",\n      \"texcsstyle=${1:font commands}\",\n      \"texcs2style=${1:font commands}\",\n      \"texcs3style=${1:font commands}\",\n      \"setkeywd={${1:keyword1,keyword2,...}}\",\n      \"setkeywd2={${1:keyword1,keyword2,...}}\",\n      \"setkeywd3={${1:keyword1,keyword2,...}}\",\n      \"keywd={${1:keyword1,keyword2,...}}\",\n      \"keywd2={${1:keyword1,keyword2,...}}\",\n      \"keywd3={${1:keyword1,keyword2,...}}\",\n      \"keywdstyle=${1:font commands}\",\n      \"keywd2style=${1:font commands}\",\n      \"keywd3style=${1:font commands}\",\n      \"setemph={${1:keyword1,keyword2,...}}\",\n      \"setemph2={${1:keyword1,keyword2,...}}\",\n      \"setemph3={${1:keyword1,keyword2,...}}\",\n      \"emph={${1:keyword1,keyword2,...}}\",\n      \"emph2={${1:keyword1,keyword2,...}}\",\n      \"emph3={${1:keyword1,keyword2,...}}\",\n      \"emphstyle=${1:font commands}\",\n      \"emph2style=${1:font commands}\",\n      \"emph3style=${1:font commands}\",\n      \"numbers=${1|none,left|}\",\n      \"numberstyle=${1:font commands}\",\n      \"stringstyle=${1:font commands}\",\n      \"commentstyle=${1:font commands}\",\n      \"bckgndcolor=${1:color commands}\",\n      \"rulecolor=${1:color commands}\",\n      \"codeprefix=${1:text}\",\n      \"resultprefix=${1:text}\",\n      \"parindent=\",\n      \"ruleht=${1:number}\",\n      \"basicstyle=${1:font commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/codesection.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefineCodeSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineCodeSection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineCodeSection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineCodeSection[${2:true|false%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DefineCodeSection,\\\\SetCodeSection\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCodeSection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetCodeSection{${1:name}}{${2:true|false%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefineCodeSection,\\\\SetCodeSection\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"BeginCodeSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeginCodeSection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"EndCodeSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EndCodeSection{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DefineCodeSection,\\\\SetCodeSection\": [\n      \"true\",\n      \"false\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coelacanth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/coelacanth#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"l\",\n      \"el\",\n      \"sb\",\n      \"h\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/coelacanth#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/coffeestains.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coffeestainA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"coffeestainA{${1:transparency}}{${2:scale}}{${3:angle}}{${4:xoff%l}}{${5:yoff%l}}\"\n      }\n    },\n    {\n      \"name\": \"coffeestainB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"coffeestainB{${1:transparency}}{${2:scale}}{${3:angle}}{${4:xoff%l}}{${5:yoff%l}}\"\n      }\n    },\n    {\n      \"name\": \"coffeestainC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"coffeestainC{${1:transparency}}{${2:scale}}{${3:angle}}{${4:xoff%l}}{${5:yoff%l}}\"\n      }\n    },\n    {\n      \"name\": \"coffeestainD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"coffeestainD{${1:transparency}}{${2:scale}}{${3:angle}}{${4:xoff%l}}{${5:yoff%l}}\"\n      }\n    },\n    {\n      \"name\": \"stainA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stainA{${1:transparency}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"stainB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stainB{${1:transparency}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"stainC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stainC{${1:transparency}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"stainD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stainD{${1:transparency}}{${2:scale}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/collargs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CollectArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CollectArguments{${1:argspec}}{${2:next-code}}\"\n      }\n    },\n    {\n      \"name\": \"CollectArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CollectArguments[${3:options%keyvals}]{${1:argspec}}{${2:next-code}}\",\n        \"keys\": [\n          \"\\\\CollectArguments\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CollectArgumentsRaw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CollectArgumentsRaw{${1:option-setting code}}{${2:argspec}}{${3:next-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\CollectArguments\": [\n      \"caller=${1:control sequence}\",\n      \"environment=${1:envname}\",\n      \"begin tag\",\n      \"end tag\",\n      \"tags\",\n      \"ignore nesting\",\n      \"ignore other tags\",\n      \"append preprocessor=${1:code}\",\n      \"prepend preprocessor=${1:code}\",\n      \"append postprocessor=${1:code}\",\n      \"prepend postprocessor=${1:code}\",\n      \"clear preprocessors\",\n      \"clear postprocessors\",\n      \"append expandable preprocessor=${1:code}\",\n      \"prepend expandable preprocessor=${1:code}\",\n      \"append expandable postprocessor=${1:code}\",\n      \"prepend expandable postprocessor=${1:code}\",\n      \"no delimiters\",\n      \"return=${1|braced,plain,no|}\",\n      \"clear args\",\n      \"verbatim\",\n      \"verb\",\n      \"no verbatim\",\n      \"fix from verbatim\",\n      \"fix from verb\",\n      \"fix from no verbatim\",\n      \"braces=${1:<begin-char><end-char>}\",\n      \"verbatim ranges={${1:from-to}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/collcell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tabularx\",\n      \"if\": \"verb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"collectcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectcell{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"endcollectcell\"\n    },\n    {\n      \"name\": \"ccunskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cci\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/collcell#c\": [\n      \"verb\",\n      \"noverb\",\n      \"robustcr\",\n      \"norobustcr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/collcell#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/collect.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"definecollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definecollection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"includecollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includecollection{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"collect*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:before}}{${3:after}}{${4:before-col}}{${5:after-col}}\"\n      }\n    },\n    {\n      \"name\": \"collect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:before-col}}{${3:after-col}}\"\n      }\n    },\n    {\n      \"name\": \"collectinmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:macro%cmd}}{${2:before}}{${3:after}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/collectbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"collectbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectbox{${1:code}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectbox*{${1:code}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"collectbox[${3:begin code}]{${1:code}}[${4:end code}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"collectbox*[${3:begin code}]{${1:code}}[${4:end code}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectboxto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"collectboxto{${1:register}}{${2:code}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectboxto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"collectboxto{${1:register}}[${4:begin code}]{${2:code}}[${5:end code}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"collectboxcheckenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectboxcheckenv{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collectedbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BOXCONTENT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcollectboxenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectboxenvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectboxenvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectboxcheckenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectboxcheckenv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collectboxenvend\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/college-math-j.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"papertrimheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papertrimwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theannual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"editor{${1:name}}{${2:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"editors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"editors{${1:names}}{${2:affiliations%text}}\"\n      }\n    },\n    {\n      \"name\": \"schapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"intro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registeredsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillerhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillerhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"fillerheadmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillerheadmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"psection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"psection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"psection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"boxedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"boxedhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"boxedhead[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"boxedhead*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedhead*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"biogwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biogpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biogpic{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"separator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fudgetrimdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fudgetrimright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dffudge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jotskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settildes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threeem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"final\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"absquotation\"\n    },\n    {\n      \"name\": \"filler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biog\"\n    },\n    {\n      \"name\": \"biog\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"affil\"\n    },\n    {\n      \"name\": \"acknowledgment\"\n    },\n    {\n      \"name\": \"acknowledgment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"mtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbleqnarray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbleqnarray*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/collref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"collectsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectsep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"collectsep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"collectsep[${2:punctuation}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"nocollect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocollect{${1:key}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/collref#c\": [\n      \"nosep\",\n      \"parsep\",\n      \"bulletsep\",\n      \"punctsep\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/collref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colonequals.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"approxcolon\"\n    },\n    {\n      \"name\": \"approxcoloncolon\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"coloncolon\"\n    },\n    {\n      \"name\": \"coloncolonapprox\"\n    },\n    {\n      \"name\": \"coloncolonequals\"\n    },\n    {\n      \"name\": \"coloncolonminus\"\n    },\n    {\n      \"name\": \"coloncolonsim\"\n    },\n    {\n      \"name\": \"colonequals\"\n    },\n    {\n      \"name\": \"colonminus\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"equalscolon\"\n    },\n    {\n      \"name\": \"equalscoloncolon\"\n    },\n    {\n      \"name\": \"minuscolon\"\n    },\n    {\n      \"name\": \"minuscoloncolon\"\n    },\n    {\n      \"name\": \"ratio\"\n    },\n    {\n      \"name\": \"simcolon\"\n    },\n    {\n      \"name\": \"simcoloncolon\"\n    },\n    {\n      \"name\": \"colonsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublecolonsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colophon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colophon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endcolophon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"colophontitlestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontitlestyle{${1:style cmds}}\"\n      }\n    },\n    {\n      \"name\": \"colophontitlesize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontitlesize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"colophonmidspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophonmidspace{${1:length%l}}\"\n      }\n    },\n    {\n      \"name\": \"colophonpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophonpagestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"colophontitlealign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontitlealign{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\colophontitlealign\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colophonpretitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonposttitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonparstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonparsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonparlead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonnofirstindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonpreparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonpostparhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonparalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonnofullpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonnoclrdblpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonclrpg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophontopspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colophonbotspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"colophon\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/colophon#c\": [\n      \"title={${1:text}}\",\n      \"titlestyle=${1:font csname}\",\n      \"titlesize=\",\n      \"aftertitle=\",\n      \"titlealign=${1|l,c,r|}\",\n      \"parstyle=${1:font csname}\",\n      \"parsize=\",\n      \"parlead=\",\n      \"nofullpage\",\n      \"noclrdblpg\",\n      \"clrpg\",\n      \"topspace=\",\n      \"botspace=\",\n      \"nofirstindent\"\n    ],\n    \"\\\\colophontitlealign\": [\n      \"c\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colophon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/color-edits.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addauthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addauthor{${1:author}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"addauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addauthor[${3:author name}]{${1:author}}{${2:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/color-edits#c\": [\n      \"suppress\",\n      \"showdeletions\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/color-edits#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/color.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcolor{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcolor[${3:model}]{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathcolor{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mathcolor[${3:model}]{${1:color}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"pagecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"nopagecolor\"\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolor{${1:name%specialDef}}{${2:model}}{${3:color-spec}}\"\n      }\n    },\n    {\n      \"name\": \"DefineNamedColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineNamedColor{${1:type}}{${2:name}}{${3:model}}{${4:spec}}\"\n      }\n    },\n    {\n      \"name\": \"normalcolor\"\n    },\n    {\n      \"name\": \"color\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"color[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"color{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colorbox[${3:model}]{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"colorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorbox{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fcolorbox[${4:model}]{${1:border-color}}{${2:fill-color}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"fcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcolorbox{${1:border-color}}{${2:fill-color}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/color#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/color#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colorblind.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawScheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawScheme{${1:scheme}}\"\n      }\n    },\n    {\n      \"name\": \"drawSchemeC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawSchemeC{${1:scheme}}\"\n      }\n    },\n    {\n      \"name\": \"drawSchemeC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawSchemeC[${2:width}]{${1:scheme}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colorblind#c\": [\n      \"Tol\",\n      \"OkabeIto\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colorblind#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colordoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textnew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnew{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"doctheCodelineNo\",\n      \"if\": \"contents\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colordoc#c\": [\n      \"numbers\",\n      \"numbered\",\n      \"nothing\",\n      \"braces\",\n      \"contents\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colordoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colordvi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"background\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"background{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"subdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdef{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textColor{${1:c m y k}}\"\n      }\n    },\n    {\n      \"name\": \"Color\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Color{${1:c m y k}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"GreenYellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreenYellow{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Yellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yellow{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Goldenrod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Goldenrod{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dandelion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dandelion{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Apricot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apricot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Peach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Peach{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Melon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Melon{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"YellowOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"YellowOrange{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Orange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Orange{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"BurntOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BurntOrange{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Bittersweet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bittersweet{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RedOrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedOrange{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Mahogany\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mahogany{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Maroon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Maroon{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"BrickRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BrickRed{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Red\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Red{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"OrangeRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrangeRed{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RubineRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubineRed{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"WildStrawberry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WildStrawberry{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Salmon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Salmon{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"CarnationPink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CarnationPink{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Magenta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Magenta{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"VioletRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VioletRed{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rhodamine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rhodamine{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Mulberry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mulberry{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RedViolet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedViolet{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fuchsia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fuchsia{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Lavender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lavender{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Thistle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thistle{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Orchid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Orchid{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"DarkOrchid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DarkOrchid{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Purple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Purple{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Plum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Plum{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Violet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Violet{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RoyalPurple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RoyalPurple{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"BlueViolet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlueViolet{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Periwinkle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Periwinkle{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"CadetBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadetBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"CornflowerBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CornflowerBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"MidnightBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MidnightBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"NavyBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NavyBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RoyalBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RoyalBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Blue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cerulean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cerulean{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cyan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cyan{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"SkyBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SkyBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Turquoise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Turquoise{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"TealBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TealBlue{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Aquamarine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aquamarine{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"BlueGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlueGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Emerald\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Emerald{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"JungleGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JungleGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"SeaGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SeaGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Green\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Green{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ForestGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForestGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"PineGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PineGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"LimeGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LimeGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"YellowGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"YellowGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"SpringGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpringGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"OliveGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OliveGreen{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"RawSienna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RawSienna{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Sepia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sepia{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Brown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brown{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Tan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tan{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Gray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gray{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Black\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Black{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"White\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"White{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorframed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colorframedbordercolorcommand\"\n    },\n    {\n      \"name\": \"colorframedcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorframedcolorbox{${1:color}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"colorframedTFconlabcolorcommand\"\n    },\n    {\n      \"name\": \"colorframedTitleBarFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorframedTitleBarFrame{${1:title%text}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"colorframedTitleBarFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colorframedTitleBarFrame[${3:marker}]{${1:title%text}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"colorframedTFtitlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorframedTFconlabsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorinfo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"colorInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorInfo{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorInfoRGB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorInfoRGB{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorModel\"\n    },\n    {\n      \"name\": \"colorValue\"\n    },\n    {\n      \"name\": \"colorDriver\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorist-fancy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"extramarks\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"projlib-draft\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"projlib-theorem\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"projlib-author\"\n    },\n    {\n      \"name\": \"projlib-titlepage\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"scontents\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"parttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEnvEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEnvEnd{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ScanEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ScanEnv{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ScanEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ScanEnv*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexDotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexLinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keyword\"\n    },\n    {\n      \"name\": \"emphasis\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-paper\"\n    },\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"colorist-fancy\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colorist#c\": [\n      \"draft\",\n      \"fast\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colorist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colorjamo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacolor\"\n    },\n    {\n      \"name\": \"transparent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colorjamo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorjamo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jamocolorcho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamocolorcho{${1:hex color}}\"\n      }\n    },\n    {\n      \"name\": \"jamocolorjung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamocolorjung{${1:hex color}}\"\n      }\n    },\n    {\n      \"name\": \"jamocolorjong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamocolorjong{${1:hex color}}\"\n      }\n    },\n    {\n      \"name\": \"jamotransparency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamotransparency{${1:opacity}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorpalette.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"macrolist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newpalettetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpalettetheme{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"addcolortotheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcolortotheme{${1:theme}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"newpalette\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpalette{${1:theme}}{${2:palette}}\"\n      }\n    },\n    {\n      \"name\": \"setpalettecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"setpalettecolor{${1:theme}}{${2:palette}}{${3:color}}[${5:encoding}]{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"activepalette\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"activepalette{${1:theme}}{${2:palette}}\"\n      }\n    },\n    {\n      \"name\": \"getcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcolor{${1:theme}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"applycolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"applycolor{${1:theme}}{${2:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"definespotcolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definespotcolor{${1:name%specialDef}}{${2:PDF name}}{${3:CMYK-equivalent}}\"\n      }\n    },\n    {\n      \"name\": \"definespotcolor\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"definespotcolor{${1:name%specialDef}}{${2:PDF name}}[${4:model}]{${3:equivalent}}\"\n      }\n    },\n    {\n      \"name\": \"definespotcolor\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"definespotcolor{${1:name}}{${2:PDF name}}[${4:alt=lab}]{${3:lab-values}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorspace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolorspace{${1:name}}{${2:mixed}}{${3:color-list}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorspace*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolorspace*{${1:name}}{${2:iccbased}}{${3:icc-file}}\"\n      }\n    },\n    {\n      \"name\": \"pagecolorspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagecolorspace{${1:colorspace list}}\"\n      }\n    },\n    {\n      \"name\": \"resetpagecolorspace\"\n    },\n    {\n      \"name\": \"overprintstate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overprintstate{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"textoverprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverprint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textoverprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textoverprint[${2:state}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colorspace#c\": [\n      \"illuminant=${1|a,c,e,d50,d55,d65,d75|}\",\n      \"overprint\",\n      \"opm=${1|0,1|}\",\n      \"knockout\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colorspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colortbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrayrulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrayrulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arrayrulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrayrulecolor[${2:color model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"cellcolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columncolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"columncolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublerulesepcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublerulesepcolor[${2:color model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"rowcolor[${2:color model}]{${1:color}}[${3:left overhang}][${4:right overhang}]\"\n      }\n    },\n    {\n      \"name\": \"minrowclearance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rowcolors{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rowcolors[${4:commands}]{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rowcolors*{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rowcolors*[${4:commands}]{${1:row}}{${2:odd-row-color}}{${3:even-row-color}}\"\n      }\n    },\n    {\n      \"name\": \"showrowcolors\"\n    },\n    {\n      \"name\": \"hiderowcolors\"\n    },\n    {\n      \"name\": \"rownum\"\n    },\n    {\n      \"name\": \"therownum\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colortbl#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colortbl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/colorwav.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"storeRGBofWavelength\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"storeRGBofWavelength{${1:r-val-cmd%cmd}}{${2:g-val-cmd%cmd}}{${3:b-val-cmd%cmd}}{${4:wavelength}}\"\n      }\n    },\n    {\n      \"name\": \"setUnitsE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setUnitsE{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setMinVisibleWavelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMinVisibleWavelength{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setMaxVisibleWavelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMaxVisibleWavelength{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colorweb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/colourchange.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"selectmanualcolour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectmanualcolour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"selectmanualcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectmanualcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"selectcolourchanges\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectcolourchanges{${1:first color}}{${2:second color}}\"\n      }\n    },\n    {\n      \"name\": \"selectcolorchanges\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectcolorchanges{${1:first color}}{${2:second color}}\"\n      }\n    },\n    {\n      \"name\": \"setcolours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fractionate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstruccol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstruccol{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setstruccolx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserttotalslidenumber\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/colourchange#c\": [\n      \"defaultstyle\",\n      \"slidechange\",\n      \"framechange\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/colourchange#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/combelow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cb{${1:letter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/combinedgraphics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includecombinedgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includecombinedgraphics{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includecombinedgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includecombinedgraphics[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includecombinedgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/combinedgraphics#c\": [\n      \"textfontcmd=${1:font csname}\",\n      \"textcolorcmd=${1:color csname}\",\n      \"vecscale=${1:factor}\",\n      \"vecwidth=\",\n      \"vecheight=\",\n      \"vecinclude=${1:file name}\",\n      \"vecfirst\"\n    ],\n    \"\\\\includecombinedgraphics\": [\n      \"textfont=${1:font commands}\",\n      \"textcolor=${1:color commands}\",\n      \"vecscale=${1:factor}\",\n      \"vecwidth=\",\n      \"vecheight=\",\n      \"vecinclude=${1|auto,true,false,overwrite|}\",\n      \"vecfirst\",\n      \"vecfile=${1:file name}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"x=\",\n      \"y=\",\n      \"units=\",\n      \"scale=${1:factor}\",\n      \"hscale=${1:factor}\",\n      \"vscale=${1:factor}\",\n      \"height=\",\n      \"totalheight=\",\n      \"width=\",\n      \"keepaspectratio\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/combinedgraphics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/combofont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupcombofont\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setupcombofont{${1:name}}{${2:list of basefonts}}{${3:list of ranges and code-points}}\"\n      }\n    },\n    {\n      \"name\": \"combodefaultfeat\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/comfortaa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"comfortaa\"\n    },\n    {\n      \"name\": \"comfortaafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/comfortaa#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"defaultsans\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/comfortaa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/comicneue.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"comicneue\"\n    },\n    {\n      \"name\": \"comicneuelight\"\n    },\n    {\n      \"name\": \"comicneueangular\"\n    },\n    {\n      \"name\": \"comicneueangularlight\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/comicneue#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"light\",\n      \"regular\",\n      \"angular\",\n      \"opentype\",\n      \"type1\",\n      \"otf\",\n      \"t1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/comicneue#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/comicsans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\",\n      \"if\": \"ulemph\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/comicsans#c\": [\n      \"ulemph\",\n      \"boldemph\",\n      \"largesymbols\",\n      \"plusminus\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/comicsans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/comma.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"commaform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commaform{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"commaformtoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcomma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"addcomma{${1:digit1}}{${2:digit2}}{${3:digit3}}{${4:digit4 or \\\\relax}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/commado.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DoWithCSL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoWithCSL{${1:cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifltx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PushCatMakeLetterAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopLetterCatAt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/commath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"appref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"assref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"assref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"cbr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cbr[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"colref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"defnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defnref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"del{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"del[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dif\"\n    },\n    {\n      \"name\": \"Dif\"\n    },\n    {\n      \"name\": \"dmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"dmd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"dod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dod[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dpd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dpd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dpd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dpd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"enVert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enVert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"enVert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"enVert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"envert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"envert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"envert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"exref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fullfunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fullfunction{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"intcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcc{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intcc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intcc[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intco\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intco{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intco\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intco[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intoc{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intoc[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intoo{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"intoo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intoo[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"lemref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lemref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"md\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"md{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"od{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"od[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"propref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"propref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"remref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"remref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sVert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sVert{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sVert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sVert[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sbr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sbr[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"set[${2:size}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"thmref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tmd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"tod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tod[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tpd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tpd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tpd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tpd[${3:order}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ordinarycolon\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/commedit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"everyshi\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"commentscolskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentscolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentscolTheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentscolSheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basepageboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basepageargs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"basepageargs{${1:includegraphics options%keyvals}}\",\n        \"keys\": [\n          \"\\\\basepageargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"commentsOddPageSetup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"commentsOddPageSetup{${1:num leftcols}}{${2:num shortcols}}{${3:num rightcols}}\"\n      }\n    },\n    {\n      \"name\": \"commentsEvenPageSetup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"commentsEvenPageSetup{${1:num leftcols}}{${2:num shortcols}}{${3:num rightcols}}\"\n      }\n    },\n    {\n      \"name\": \"commentsContinuationPageSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentsContinuationPageSetup{${1:num cols}}\"\n      }\n    },\n    {\n      \"name\": \"commentsHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentsHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"commentsraggedbottom\"\n    },\n    {\n      \"name\": \"commentsflushbottom\"\n    },\n    {\n      \"name\": \"ifCommentedEdition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CommentedEditiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CommentedEditionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetComments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetComments{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"typesetContinuation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"commeditPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"commeditComments\"\n    },\n    {\n      \"name\": \"commeditText\"\n    },\n    {\n      \"name\": \"commentsBox\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\basepageargs\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/comment.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"includecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includecomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"excludecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludecomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"CommentCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"generalcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"generalcomment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"specialcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialcomment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"Thiscomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thiscomment{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"WriteCommentLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteCommentLine{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThisComment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisComment{${1:line stuff}}\"\n      }\n    },\n    {\n      \"name\": \"processcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"processcomment{${1:envname}}{${2:def}}{${3:begdef}}{${4:enddef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/commonunicode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"wasysym\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/commutative-diagrams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycommutative-diagrams\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"codi\"\n    },\n    {\n      \"name\": \"codi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{codi}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{codi}#c\": [\n      \"prompter\",\n      \"expand=${1|none,once,full|}\",\n      \"replace character=${1:character1} with ${2:character2}\",\n      \"replace charcode=${1:charcode} with ${2:character}\",\n      \"remove characters=${1:characters}\",\n      \"remove character=${1:character}\",\n      \"remove charcode=${1:charcode}\",\n      \"overwrite=${1|false,alias,true|}\",\n      \"every diagram/.append style={${1:TikZ options}}\",\n      \"every layout/.append style={${1:TikZ options}}\",\n      \"every object/.append style={${1:TikZ options}}\",\n      \"every arrow/.append style={${1:TikZ options}}\",\n      \"every label/.append style={${1:TikZ options}}\",\n      \"tetragonal\",\n      \"tetragonal=base ${1:<length>} height ${2:<length>}\",\n      \"hexagonal\",\n      \"hexagonal=${1:<direction>} side ${2:<length>} angle ${3:<angle>}\",\n      \"square=\",\n      \"golden=\",\n      \"arrows/crossing over\",\n      \"arrows/crossing over/clearance=\",\n      \"arrows/crossing over/color=\",\n      \"arrows/slide=\",\n      \"arrows/shove=\",\n      \"%color\",\n      \"x=\",\n      \"y=\",\n      \"node distance=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/competences.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"declareprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"declarecompetence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarecompetence{${1:competence}}\"\n      }\n    },\n    {\n      \"name\": \"addGlobalCompetence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addGlobalCompetence{${1:competence}}\"\n      }\n    },\n    {\n      \"name\": \"addGlobalCompetence\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addGlobalCompetence[${2:value}]{${1:competence}}\"\n      }\n    },\n    {\n      \"name\": \"addcompetence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addcompetence{${1:competence}}\"\n      }\n    },\n    {\n      \"name\": \"addcompetence\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addcompetence[${2:value}]{${1:competence}}\"\n      }\n    },\n    {\n      \"name\": \"tableaupartie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableaupartie{${1:partie}}\"\n      }\n    },\n    {\n      \"name\": \"tableauprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableauprefix{${1:partie1,partie2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cstotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getCurrentSectionNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getCurrentpartiedocument\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gptotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcompexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcompexists{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpartexists{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifquestexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifquestexists{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"partie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pctotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pftotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumcspartie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sumcspartie{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sumpfpartie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sumpfpartie{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tableaucompetences\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"total\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/complexity.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defaultL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"co\"\n    },\n    {\n      \"name\": \"parity\"\n    },\n    {\n      \"name\": \"llog\"\n    },\n    {\n      \"name\": \"poly\"\n    },\n    {\n      \"name\": \"polylog\"\n    },\n    {\n      \"name\": \"qpoly\"\n    },\n    {\n      \"name\": \"qlog\"\n    },\n    {\n      \"name\": \"MOD\"\n    },\n    {\n      \"name\": \"Mod\"\n    },\n    {\n      \"name\": \"CVP\"\n    },\n    {\n      \"name\": \"SAT\"\n    },\n    {\n      \"name\": \"MaxSAT\"\n    },\n    {\n      \"name\": \"AC\"\n    },\n    {\n      \"name\": \"A\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ACC\"\n    },\n    {\n      \"name\": \"AH\"\n    },\n    {\n      \"name\": \"AL\"\n    },\n    {\n      \"name\": \"AlgP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AM\"\n    },\n    {\n      \"name\": \"AMEXP\"\n    },\n    {\n      \"name\": \"Amp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmpMP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmpPBQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AP\"\n    },\n    {\n      \"name\": \"APP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"APX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AUCSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuxPDA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVBPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AvE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AvP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AWPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BH\"\n    },\n    {\n      \"name\": \"BP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPE\"\n    },\n    {\n      \"name\": \"BPEE\"\n    },\n    {\n      \"name\": \"BPHSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPP\"\n    },\n    {\n      \"name\": \"BPPOBDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPPpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BPSPACE\"\n    },\n    {\n      \"name\": \"BPTIME\"\n    },\n    {\n      \"name\": \"BQNC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BQNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BQP\"\n    },\n    {\n      \"name\": \"BQPOBDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BQTIME\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"cc\"\n    },\n    {\n      \"name\": \"CeL\"\n    },\n    {\n      \"name\": \"CeP\"\n    },\n    {\n      \"name\": \"CFL\"\n    },\n    {\n      \"name\": \"CH\"\n    },\n    {\n      \"name\": \"CkP\"\n    },\n    {\n      \"name\": \"CLOG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coAM\"\n    },\n    {\n      \"name\": \"coBPP\"\n    },\n    {\n      \"name\": \"coCeP\"\n    },\n    {\n      \"name\": \"cofrIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Coh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coMA\"\n    },\n    {\n      \"name\": \"compIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coNE\"\n    },\n    {\n      \"name\": \"coNEXP\"\n    },\n    {\n      \"name\": \"coNL\"\n    },\n    {\n      \"name\": \"coNP\"\n    },\n    {\n      \"name\": \"coNQP\"\n    },\n    {\n      \"name\": \"coRE\"\n    },\n    {\n      \"name\": \"coRNC\"\n    },\n    {\n      \"name\": \"coRP\"\n    },\n    {\n      \"name\": \"coSL\"\n    },\n    {\n      \"name\": \"coUCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coUP\"\n    },\n    {\n      \"name\": \"CP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSIZE\"\n    },\n    {\n      \"name\": \"CSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"DCFL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DET\"\n    },\n    {\n      \"name\": \"DiffAC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DistNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DSPACE\"\n    },\n    {\n      \"name\": \"DTIME\"\n    },\n    {\n      \"name\": \"DTISP\"\n    },\n    {\n      \"name\": \"Dyn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DynFO\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"EE\"\n    },\n    {\n      \"name\": \"EEE\"\n    },\n    {\n      \"name\": \"EESPACE\"\n    },\n    {\n      \"name\": \"EEXP\"\n    },\n    {\n      \"name\": \"EH\"\n    },\n    {\n      \"name\": \"EL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ELEMENTARY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ELkP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EPTAS\"\n    },\n    {\n      \"name\": \"EQBP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQTIME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ESPACE\"\n    },\n    {\n      \"name\": \"ExistsBPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExistsNISZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EXP\"\n    },\n    {\n      \"name\": \"EXPSPACE\"\n    },\n    {\n      \"name\": \"FBQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Few\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FewP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FNL\"\n    },\n    {\n      \"name\": \"FNP\"\n    },\n    {\n      \"name\": \"FO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FOLL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FP\"\n    },\n    {\n      \"name\": \"FPR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPRAS\"\n    },\n    {\n      \"name\": \"FPT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPTAS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPTnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPTsu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FQMA\"\n    },\n    {\n      \"name\": \"frIP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FTAPE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FTIME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"G\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GA\"\n    },\n    {\n      \"name\": \"GANSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gap\"\n    },\n    {\n      \"name\": \"GapAC\"\n    },\n    {\n      \"name\": \"GapL\"\n    },\n    {\n      \"name\": \"GapP\"\n    },\n    {\n      \"name\": \"GC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GCSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GI\"\n    },\n    {\n      \"name\": \"GPCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Heur\"\n    },\n    {\n      \"name\": \"HeurBPP\"\n    },\n    {\n      \"name\": \"HeurBPTIME\"\n    },\n    {\n      \"name\": \"HkP\"\n    },\n    {\n      \"name\": \"HSPACE\"\n    },\n    {\n      \"name\": \"HVSZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IP\"\n    },\n    {\n      \"name\": \"IPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"kBQBP\"\n    },\n    {\n      \"name\": \"kBWBP\"\n    },\n    {\n      \"name\": \"kEQBP\"\n    },\n    {\n      \"name\": \"kPBP\"\n    },\n    {\n      \"name\": \"KT\"\n    },\n    {\n      \"name\": \"LIN\"\n    },\n    {\n      \"name\": \"LkP\"\n    },\n    {\n      \"name\": \"LOGCFL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogFew\"\n    },\n    {\n      \"name\": \"LogFewNL\"\n    },\n    {\n      \"name\": \"LOGNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LOGSNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"MA\"\n    },\n    {\n      \"name\": \"MAC\"\n    },\n    {\n      \"name\": \"MAE\"\n    },\n    {\n      \"name\": \"MAEXP\"\n    },\n    {\n      \"name\": \"mAL\"\n    },\n    {\n      \"name\": \"MaxNP\"\n    },\n    {\n      \"name\": \"MaxPB\"\n    },\n    {\n      \"name\": \"MaxSNP\"\n    },\n    {\n      \"name\": \"mcoNL\"\n    },\n    {\n      \"name\": \"MinPB\"\n    },\n    {\n      \"name\": \"MIP\"\n    },\n    {\n      \"name\": \"MkP\"\n    },\n    {\n      \"name\": \"mL\"\n    },\n    {\n      \"name\": \"mNC\"\n    },\n    {\n      \"name\": \"mNL\"\n    },\n    {\n      \"name\": \"mNP\"\n    },\n    {\n      \"name\": \"ModkL\"\n    },\n    {\n      \"name\": \"ModkP\"\n    },\n    {\n      \"name\": \"ModP\"\n    },\n    {\n      \"name\": \"ModZkL\"\n    },\n    {\n      \"name\": \"mP\"\n    },\n    {\n      \"name\": \"MP\"\n    },\n    {\n      \"name\": \"MPC\"\n    },\n    {\n      \"name\": \"mTC\"\n    },\n    {\n      \"name\": \"NAuxPDA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NC\"\n    },\n    {\n      \"name\": \"NE\"\n    },\n    {\n      \"name\": \"NEE\"\n    },\n    {\n      \"name\": \"NEEE\"\n    },\n    {\n      \"name\": \"NEEXP\"\n    },\n    {\n      \"name\": \"NEXP\"\n    },\n    {\n      \"name\": \"NIPZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NIQPZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NIQSZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NISZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NL\"\n    },\n    {\n      \"name\": \"NLIN\"\n    },\n    {\n      \"name\": \"NLOG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NP\"\n    },\n    {\n      \"name\": \"NPC\"\n    },\n    {\n      \"name\": \"NPI\"\n    },\n    {\n      \"name\": \"NPMV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NPMVsel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NPO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NPOPB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NPSPACE\"\n    },\n    {\n      \"name\": \"NPSV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NPSVsel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NQP\"\n    },\n    {\n      \"name\": \"NSPACE\"\n    },\n    {\n      \"name\": \"NT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NTIME\"\n    },\n    {\n      \"name\": \"OBDD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OCQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Opt\"\n    },\n    {\n      \"name\": \"OptP\"\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"PAC\"\n    },\n    {\n      \"name\": \"PBP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PCD\"\n    },\n    {\n      \"name\": \"Pclose\"\n    },\n    {\n      \"name\": \"PCP\"\n    },\n    {\n      \"name\": \"PermUP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PEXP\"\n    },\n    {\n      \"name\": \"PF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PFCHK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PH\"\n    },\n    {\n      \"name\": \"PhP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PIO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PKC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PL\"\n    },\n    {\n      \"name\": \"PLF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PLL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POBDD\"\n    },\n    {\n      \"name\": \"PODN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polyL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PostBQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PP\"\n    },\n    {\n      \"name\": \"PPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPAD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPADS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ppoly\"\n    },\n    {\n      \"name\": \"PPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPSPACE\"\n    },\n    {\n      \"name\": \"PQUERY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrHSPACE\"\n    },\n    {\n      \"name\": \"Promise\"\n    },\n    {\n      \"name\": \"PromiseBPP\"\n    },\n    {\n      \"name\": \"PromiseBQP\"\n    },\n    {\n      \"name\": \"PromiseP\"\n    },\n    {\n      \"name\": \"PromiseRP\"\n    },\n    {\n      \"name\": \"promiseBPP\"\n    },\n    {\n      \"name\": \"promiseBQP\"\n    },\n    {\n      \"name\": \"promiseP\"\n    },\n    {\n      \"name\": \"promiseRP\"\n    },\n    {\n      \"name\": \"PrSPACE\"\n    },\n    {\n      \"name\": \"PSel\"\n    },\n    {\n      \"name\": \"PSK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSPACE\"\n    },\n    {\n      \"name\": \"PT\"\n    },\n    {\n      \"name\": \"PTAPE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PTAS\"\n    },\n    {\n      \"name\": \"PTWK\"\n    },\n    {\n      \"name\": \"PZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QAC\"\n    },\n    {\n      \"name\": \"QACC\"\n    },\n    {\n      \"name\": \"QAM\"\n    },\n    {\n      \"name\": \"QCFL\"\n    },\n    {\n      \"name\": \"QCMA\"\n    },\n    {\n      \"name\": \"QH\"\n    },\n    {\n      \"name\": \"QIP\"\n    },\n    {\n      \"name\": \"QMA\"\n    },\n    {\n      \"name\": \"QMAM\"\n    },\n    {\n      \"name\": \"QMIP\"\n    },\n    {\n      \"name\": \"QMIPle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QMIPne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QNC\"\n    },\n    {\n      \"name\": \"QP\"\n    },\n    {\n      \"name\": \"QPLIN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qpoly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QPSPACE\"\n    },\n    {\n      \"name\": \"QSZK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"RE\"\n    },\n    {\n      \"name\": \"REG\"\n    },\n    {\n      \"name\": \"RevSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RHL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RHSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RL\"\n    },\n    {\n      \"name\": \"RNC\"\n    },\n    {\n      \"name\": \"RNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RP\"\n    },\n    {\n      \"name\": \"RPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSPACE\"\n    },\n    {\n      \"name\": \"SAC\"\n    },\n    {\n      \"name\": \"SAPTIME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SC\"\n    },\n    {\n      \"name\": \"SE\"\n    },\n    {\n      \"name\": \"SEH\"\n    },\n    {\n      \"name\": \"Sel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SelfNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SIZE\"\n    },\n    {\n      \"name\": \"SKC\"\n    },\n    {\n      \"name\": \"SL\"\n    },\n    {\n      \"name\": \"SLICEWISEPSPACE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SOE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SPACE\"\n    },\n    {\n      \"name\": \"spanP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SPARSE\"\n    },\n    {\n      \"name\": \"SPL\"\n    },\n    {\n      \"name\": \"SPP\"\n    },\n    {\n      \"name\": \"SUBEXP\"\n    },\n    {\n      \"name\": \"symP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SZK\"\n    },\n    {\n      \"name\": \"TALLY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TC\"\n    },\n    {\n      \"name\": \"TFNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TreeBQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TREEREGULAR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UP\"\n    },\n    {\n      \"name\": \"US\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VNC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VNP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VQP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"W\"\n    },\n    {\n      \"name\": \"WAPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WPP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XORMIP\"\n    },\n    {\n      \"name\": \"XP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XPuniform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YACC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZPE\"\n    },\n    {\n      \"name\": \"ZPP\"\n    },\n    {\n      \"name\": \"ZPTIME\"\n    },\n    {\n      \"name\": \"newclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newclass{${1:cmd}}{${2:class_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewclass{${1:cmd}}{${2:class_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"class{${1:class_name}}\"\n      }\n    },\n    {\n      \"name\": \"ComplexityFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newlang{${1:cmd}}{${2:language_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewlang{${1:cmd}}{${2:language_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"lang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lang{${1:language_name}}\"\n      }\n    },\n    {\n      \"name\": \"newfunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfunc{${1:cmd}}{${2:function_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewfunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfunc{${1:cmd}}{${2:function_name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"func\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"func{${1:function_name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/complexity#c\": [\n      \"full\",\n      \"basic\",\n      \"disableredefinitions\",\n      \"sanserif\",\n      \"roman\",\n      \"bold\",\n      \"typewriter\",\n      \"italic\",\n      \"caps\",\n      \"slant\",\n      \"classfont=${1|sanserif,roman,bold,typewriter,italic,caps,slant|}\",\n      \"langfont=${1|sanserif,roman,bold,typewriter,italic,caps,slant|}\",\n      \"funcfont=${1|sanserif,roman,bold,typewriter,italic,caps,slant|}\",\n      \"small\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/complexity#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/compsci.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"abbrevs\"\n    },\n    {\n      \"name\": \"alltt\"\n    },\n    {\n      \"name\": \"lips\"\n    },\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    },\n    {\n      \"name\": \"slemph\"\n    },\n    {\n      \"name\": \"titles\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"bst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bst{${1:bibstyle}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"cat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cat{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"class{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ext{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"caveat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caveat{${1:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:verbatim text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"typeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typeset{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"program\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"program{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cname{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newprogram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newprogram{${1:cmd}}{${2:initial}}\"\n      }\n    },\n    {\n      \"name\": \"newprogram\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newprogram{${1:cmd}}{${2:initial}}[${3:subsequent}]\"\n      }\n    },\n    {\n      \"name\": \"ProcessDTXFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessDTXFile{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"AddToCheckSum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToCheckSum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"filename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfCitations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfCitations{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfJustLoadInformation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfJustLoadInformation{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MakePercentComment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePercentIgnore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TMFontProgram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frankenstein\"\n    },\n    {\n      \"name\": \"monster\"\n    },\n    {\n      \"name\": \"ALaTeX\"\n    },\n    {\n      \"name\": \"ctan\"\n    },\n    {\n      \"name\": \"kpse\"\n    },\n    {\n      \"name\": \"gemacs\"\n    },\n    {\n      \"name\": \"auctex\"\n    },\n    {\n      \"name\": \"nts\"\n    },\n    {\n      \"name\": \"MakeIndex\"\n    },\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"LaTeXiii\"\n    },\n    {\n      \"name\": \"idvi\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"todoenv\"\n    },\n    {\n      \"name\": \"typesetexample\"\n    },\n    {\n      \"name\": \"codeexample\"\n    },\n    {\n      \"name\": \"codeexample*\"\n    },\n    {\n      \"name\": \"codeexamplex\"\n    },\n    {\n      \"name\": \"bothexample\"\n    },\n    {\n      \"name\": \"bothexample*\"\n    },\n    {\n      \"name\": \"splitexample\"\n    },\n    {\n      \"name\": \"splitexample*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/compsci#c\": [\n      \"hyperlatex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/compsci#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/concepts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etextools\"\n    },\n    {\n      \"name\": \"nth\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"ltxkeys\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewConcept\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewConcept{${1:concept key}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewConcept\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ConceptOption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConceptOption{${1:concept key}}{${2:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\ConceptOption\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ConceptName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConceptName{${1:concept key}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptName^\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConceptName^{${1:concept key}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptName*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConceptName*{${1:concept key}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptName^*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConceptName^*{${1:concept key}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConceptSymbol{${1:concept key}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptSymbol\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ConceptSymbol{${1:concept key}}[${2:symbol index}]\"\n      }\n    },\n    {\n      \"name\": \"ConceptSymbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConceptSymbols{${1:concept key}}{${2:symbol indices}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptSymbols\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ConceptSymbols{${1:concept key}}[${3:separator}]{${2:symbol indices}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptSymbols\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ConceptSymbols{${1:concept key}}[${3:separator}][${4:last separator}]{${2:symbol indices}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptNameAndSymbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConceptNameAndSymbols{${1:concept key}}{${2:symbol indices}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptNameAndSymbols\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ConceptNameAndSymbols{${1:concept key}}[${3:separator}]{${2:symbol indices}}\"\n      }\n    },\n    {\n      \"name\": \"ConceptNameAndSymbols\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ConceptNameAndSymbols{${1:concept key}}[${3:separator}][${4:last separator}]{${2:symbol indices}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\NewConcept\": [\n      \"name=\",\n      \"Name=\",\n      \"plural=\",\n      \"Plural=\",\n      \"namecmd=\",\n      \"symbols={${1:list of symbols}}\",\n      \"symbolcmd=\"\n    ],\n    \"\\\\ConceptOption\": [\n      \"name\",\n      \"Name\",\n      \"plural\",\n      \"Plural\",\n      \"namecmd\",\n      \"symbols\",\n      \"symbolcmd\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/concmath-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gtreqqslantless\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lesseqqslantgtr\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mbfdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"mithbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqqslant\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"CCMtoks\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/concmath-otf#c\": [\n      \"no-text\",\n      \"tight\",\n      \"loose\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"StylisticSet=${1|4,5,6|}\",\n      \"Style=${1|leqslant,smaller,subsetneq,upint|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/concmath-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/concmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exscale\",\n      \"if\": \"exscale\"\n    },\n    {\n      \"name\": \"amsfonts\",\n      \"if\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"amssymb\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/concmath#c\": [\n      \"exscale\",\n      \"amsfonts\",\n      \"amssymb\",\n      \"boldsans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/concmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/conditext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcondispace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcondispace{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"setcondispace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcondispace[${2:domaine de condition}]{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"setcondispace*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcondispace*{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"setcondispace*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcondispace*[${2:domaine de condition}]{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"newcondifield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcondifield{${1:nouveau domaine de condition}}\"\n      }\n    },\n    {\n      \"name\": \"newcondifield*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcondifield*{${1:nouveau domaine de condition}}\"\n      }\n    },\n    {\n      \"name\": \"newcondiprop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcondiprop{${1:domaine de condition}}{${2:nouvelle propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"setimplicitcondifield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setimplicitcondifield{${1:domaine de condition}}\"\n      }\n    },\n    {\n      \"name\": \"miniconditext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"miniconditext{${1:forme-substituable}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondiprop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setminicondiprop{${1:i-ix}}{${2:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropi{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropii{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropiii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropiii{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropiv{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropv{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropvi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropvi{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropvii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropvii{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropviii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropviii{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"setminicondipropix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondipropix{${1:propriété de condition redéfinie}}\"\n      }\n    },\n    {\n      \"name\": \"resettingminicondiprops\"\n    },\n    {\n      \"name\": \"setminicondispace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminicondispace{${1:propriété de condition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"conditext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"conditext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:domaine de condition}]{${1:propriété de condition}}\"\n      }\n    },\n    {\n      \"name\": \"conditext\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"{${1:propriété de condition}}*\"\n      }\n    },\n    {\n      \"name\": \"conditext\",\n      \"arg\": {\n        \"format\": \"[]{}*\",\n        \"snippet\": \"[${2:domaine de condition}]{${1:propriété de condition}}*\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/conditext#c\": [\n      \"defaultdisplayall\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/conditext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/conditionals.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"given\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"given{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"blank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blank{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nil{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/constants.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"C[${1:family}]\"\n      }\n    },\n    {\n      \"name\": \"Cl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cl{${1:label%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"Cl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cl[${2:family}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Cr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cr{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\Cr#c,\\\\pagerefconstant#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pagerefconstant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerefconstant{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\Cr#c,\\\\pagerefconstant#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetconstant\"\n    },\n    {\n      \"name\": \"resetconstant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetconstant[${1:family}]\"\n      }\n    },\n    {\n      \"name\": \"newconstantfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newconstantfamily{${1:family name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newconstantfamily,\\\\renewconstantfamily\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewconstantfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewconstantfamily{${1:family name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newconstantfamily,\\\\renewconstantfamily\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newlabelconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{{}{}{}}\",\n        \"snippet\": \"newlabelconstant{${1:label}}{{${2:number}}{${3:page}}{${4:family}}}\"\n      }\n    },\n    {\n      \"name\": \"refconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refconstant{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"familyconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familyconstant{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"counterconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"counterconstant{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstepcounterconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstepcounterconstant{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"labelconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelconstant{${1:label}}{${2:family}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Cr#c,\\\\pagerefconstant#c\": [\n      \"%constantslabel\"\n    ],\n    \"\\\\newconstantfamily,\\\\renewconstantfamily\": [\n      \"format=${1:font command}\",\n      \"symbol=${1:symbol}\",\n      \"reset=${1:counter}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/conteq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ConteqExplStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConteqExplStyle{${1:explanation}}\"\n      }\n    },\n    {\n      \"name\": \"ConteqSetDefaultLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConteqSetDefaultLayout{${1:layout%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ConteqDefineLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"ConteqDefineLayout{${1:name}}{${2:before}}{${3:left}}{${4:right1}}{${5:right2}}{${6:sep}}{${7:after}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"conteq\"\n    },\n    {\n      \"name\": \"conteq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:layout%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{conteq}#c,\\\\ConteqSetDefaultLayout#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{conteq}#c,\\\\ConteqSetDefaultLayout#c\": [\n      \"plain\",\n      \"explline\",\n      \"headline\",\n      \"onecolumn\",\n      \"oneline\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/continue.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"flagcont\"\n    },\n    {\n      \"name\": \"flagend\"\n    },\n    {\n      \"name\": \"flagword\"\n    },\n    {\n      \"name\": \"preflagword\"\n    },\n    {\n      \"name\": \"postflagword\"\n    },\n    {\n      \"name\": \"contsep\"\n    },\n    {\n      \"name\": \"contdrop\"\n    },\n    {\n      \"name\": \"ifcontmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contmarginfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contmargintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcontword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contwordfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contwordtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcontallpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contallpagesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contallpagestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contgo\"\n    },\n    {\n      \"name\": \"contstop\"\n    },\n    {\n      \"name\": \"FirstWordBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NextWordBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastWordBox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/continue#c\": [\n      \"margin\",\n      \"word\",\n      \"allpages\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/continue#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/contour.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"contour\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contour{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"contour*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contour*{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"contour\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"contour[${3:number}]{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"contourlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contourlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"contournumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contournumber{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/contour#c\": [\n      \"auto\",\n      \"dvips\",\n      \"xdvi\",\n      \"pdftex\",\n      \"vtex\",\n      \"dvipsone\",\n      \"outline\",\n      \"copies\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/contour#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/contracard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"enableidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defaultcontraenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dancetitleenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dancetitleformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danceauthorformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danceformformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movedelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midpartdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phrasevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phraseseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showcountbefore\"\n    },\n    {\n      \"name\": \"showcountafter\"\n    },\n    {\n      \"name\": \"hidecountbefore\"\n    },\n    {\n      \"name\": \"hidecountafter\"\n    },\n    {\n      \"name\": \"countleftbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countleftbracket{${1:bracket}}\"\n      }\n    },\n    {\n      \"name\": \"countrightbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countrightbracket{${1:bracket}}\"\n      }\n    },\n    {\n      \"name\": \"setdefaultnotesenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaultnotesenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"prenotevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thephrasecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancephrase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancepartlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancephraselength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetdancepartlength\"\n    },\n    {\n      \"name\": \"resetdancephraselength\"\n    },\n    {\n      \"name\": \"resetdancephrase\"\n    },\n    {\n      \"name\": \"resetdancephrase*\"\n    },\n    {\n      \"name\": \"resetdancepart\"\n    },\n    {\n      \"name\": \"resetdancepart*\"\n    },\n    {\n      \"name\": \"newdancephrase\"\n    },\n    {\n      \"name\": \"newdancepart\"\n    },\n    {\n      \"name\": \"thephrasemovenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartmovenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehalfpartmovenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedancemovenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"move\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"move{${1:move%text}}\"\n      }\n    },\n    {\n      \"name\": \"move\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"move[${2:beats}]{${1:move%text}}\"\n      }\n    },\n    {\n      \"name\": \"move*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"move*{${1:move%text}}\"\n      }\n    },\n    {\n      \"name\": \"move*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"move*[${2:beats}]{${1:move%text}}\"\n      }\n    },\n    {\n      \"name\": \"themovecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allemande\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allemande{${1:beats}}{${2:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"allemande\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"allemande[${3:person}]{${1:beats}}{${2:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"allemande*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allemande*{${1:beats}}{${2:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"allemande*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"allemande*[${3:person}]{${1:beats}}{${2:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"balance\"\n    },\n    {\n      \"name\": \"balance\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"balance[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"balance*\"\n    },\n    {\n      \"name\": \"balance*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"balance*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"balanceand\"\n    },\n    {\n      \"name\": \"balanceand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"balanceand[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"balanceand*\"\n    },\n    {\n      \"name\": \"balanceand*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"balanceand*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"butterflywhirl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"butterflywhirl{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"butterflywhirl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"butterflywhirl[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"butterflywhirl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"butterflywhirl*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"butterflywhirl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"butterflywhirl*[${2:pre-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circleleft{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circleleft[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleleft*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circleleft*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleleft*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circleleft*[${2:pre-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circleright{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circleright[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleright*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circleright*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"circleright*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circleright*[${2:pre-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"courtesyturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"courtesyturn{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"courtesyturn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"courtesyturn[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"courtesyturn*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"courtesyturn*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"courtesyturn*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"courtesyturn*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"dosido\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dosido{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"dosido\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dosido[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"dosido*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dosido*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"dosido*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dosido*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"seesaw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seesaw{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"seesaw\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"seesaw[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"seesaw*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seesaw*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"seesaw*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"seesaw*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaround{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaround\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaround[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaround*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaround*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaround*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaround*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaroundleft{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaroundleft[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundleft*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaroundleft*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundleft*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaroundleft*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaroundright{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaroundright[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundright*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"walkaroundright*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"walkaroundright*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"walkaroundright*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"heyforfour\"\n    },\n    {\n      \"name\": \"heyforfour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"heyforfour[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"heyforfour*\"\n    },\n    {\n      \"name\": \"heyforfour*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"heyforfour*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfhey\"\n    },\n    {\n      \"name\": \"halfhey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfhey[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfhey*\"\n    },\n    {\n      \"name\": \"halfhey*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfhey*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfheyricochet\"\n    },\n    {\n      \"name\": \"halfheyricochet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfheyricochet[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfheyricochet*\"\n    },\n    {\n      \"name\": \"halfheyricochet*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfheyricochet*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullhey\"\n    },\n    {\n      \"name\": \"fullhey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullhey[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullhey*\"\n    },\n    {\n      \"name\": \"fullhey*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullhey*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullheyricochet\"\n    },\n    {\n      \"name\": \"fullheyricochet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullheyricochet[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullheyricochet*\"\n    },\n    {\n      \"name\": \"fullheyricochet*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullheyricochet*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"ladieschain\"\n    },\n    {\n      \"name\": \"ladieschain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ladieschain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"ladieschain*\"\n    },\n    {\n      \"name\": \"ladieschain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ladieschain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"menchain\"\n    },\n    {\n      \"name\": \"menchain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"menchain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"menchain*\"\n    },\n    {\n      \"name\": \"menchain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"menchain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfladieschain\"\n    },\n    {\n      \"name\": \"halfladieschain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfladieschain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfladieschain*\"\n    },\n    {\n      \"name\": \"halfladieschain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfladieschain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfmenchain\"\n    },\n    {\n      \"name\": \"halfmenchain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfmenchain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"halfmenchain*\"\n    },\n    {\n      \"name\": \"halfmenchain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfmenchain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullladieschain\"\n    },\n    {\n      \"name\": \"fullladieschain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullladieschain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullladieschain*\"\n    },\n    {\n      \"name\": \"fullladieschain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullladieschain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullmenchain\"\n    },\n    {\n      \"name\": \"fullmenchain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullmenchain[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"fullmenchain*\"\n    },\n    {\n      \"name\": \"fullmenchain*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fullmenchain*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"lines\"\n    },\n    {\n      \"name\": \"lines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lines[${1:type%text}]\"\n      }\n    },\n    {\n      \"name\": \"lines*\"\n    },\n    {\n      \"name\": \"lines*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lines*[${1:type%text}]\"\n      }\n    },\n    {\n      \"name\": \"longlines\"\n    },\n    {\n      \"name\": \"longlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"longlines[${1:type%text}]\"\n      }\n    },\n    {\n      \"name\": \"longlines*\"\n    },\n    {\n      \"name\": \"longlines*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"longlines*[${1:type%text}]\"\n      }\n    },\n    {\n      \"name\": \"madrobin\"\n    },\n    {\n      \"name\": \"madrobin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"madrobin[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"madrobin*\"\n    },\n    {\n      \"name\": \"madrobin*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"madrobin*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"petronella\"\n    },\n    {\n      \"name\": \"petronella\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"petronella[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"petronella*\"\n    },\n    {\n      \"name\": \"petronella*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"petronella*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"petronellanella\"\n    },\n    {\n      \"name\": \"petronellanella\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"petronellanella[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"petronellanella*\"\n    },\n    {\n      \"name\": \"petronellanella*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"petronellanella*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"promenade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"promenade{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"promenade\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"promenade[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"promenade*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"promenade*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"promenade*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"promenade*[${2:person}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"halfpromenade\"\n    },\n    {\n      \"name\": \"halfpromenade\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfpromenade[${1:person}]\"\n      }\n    },\n    {\n      \"name\": \"halfpromenade*\"\n    },\n    {\n      \"name\": \"halfpromenade*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfpromenade*[${1:person}]\"\n      }\n    },\n    {\n      \"name\": \"rightandleftthrough\"\n    },\n    {\n      \"name\": \"rightandleftthrough\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightandleftthrough[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rightandleftthrough*\"\n    },\n    {\n      \"name\": \"rightandleftthrough*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightandleftthrough*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rightsandlefts\"\n    },\n    {\n      \"name\": \"rightsandlefts\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightsandlefts[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rightsandlefts*\"\n    },\n    {\n      \"name\": \"rightsandlefts*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rightsandlefts*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rollaway\"\n    },\n    {\n      \"name\": \"rollaway\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rollaway[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rollaway*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rollaway*{${1:post-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"rollaway*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rollaway*[${2:pre-text%text}]{${1:post-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"rollawaysashay\"\n    },\n    {\n      \"name\": \"rollawaysashay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rollawaysashay[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"rollawaysashay*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rollawaysashay*{${1:post-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"rollawaysashay*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rollawaysashay*[${2:pre-text%text}]{${1:post-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"starleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starleft{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"starleft*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starleft*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"starright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starright{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"starright*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starright*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"sashay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sashay{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"sashay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sashay[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"sashay*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sashay*{${1:beats}}{${2:pre-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"sashay*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sashay*[${3:post-text%text}]{${1:beats}}{${2:pre-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"swing\"\n    },\n    {\n      \"name\": \"swing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"swing[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"swing*\"\n    },\n    {\n      \"name\": \"swing*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"swing*[${1:pre-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"turnalone\"\n    },\n    {\n      \"name\": \"turnalone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"turnalone[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"turnalone*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turnalone*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"turnalone*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"turnalone*[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"turncouple\"\n    },\n    {\n      \"name\": \"turncouple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"turncouple[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"turncouple*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turncouple*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"turncouple*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"turncouple*[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"turntogether\"\n    },\n    {\n      \"name\": \"turntogether\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"turntogether[${1:post-text%text}]\"\n      }\n    },\n    {\n      \"name\": \"turntogether*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turntogether*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"turntogether*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"turntogether*[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"twirltoswap\"\n    },\n    {\n      \"name\": \"californiatwirl\"\n    },\n    {\n      \"name\": \"starthrough\"\n    },\n    {\n      \"name\": \"starthru\"\n    },\n    {\n      \"name\": \"boxthegnat\"\n    },\n    {\n      \"name\": \"swattheflea\"\n    },\n    {\n      \"name\": \"jerseytwirl\"\n    },\n    {\n      \"name\": \"arizonatwirl\"\n    },\n    {\n      \"name\": \"downthehall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"downthehall{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"downthehall\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"downthehall[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"downthehall*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"downthehall*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"downthehall*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"downthehall*[${2:pre-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"upthehall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upthehall{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"upthehall\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upthehall[${2:post-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"upthehall*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upthehall*{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"upthehall*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"upthehall*[${2:pre-text%text}]{${1:beats}}\"\n      }\n    },\n    {\n      \"name\": \"dancetitle\"\n    },\n    {\n      \"name\": \"danceauthor\"\n    },\n    {\n      \"name\": \"danceform\"\n    },\n    {\n      \"name\": \"listofdances\"\n    },\n    {\n      \"name\": \"thedance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lodtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enableidx\"\n    },\n    {\n      \"name\": \"pauseindexing\"\n    },\n    {\n      \"name\": \"resumeindexing\"\n    },\n    {\n      \"name\": \"dbtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mvpname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mvdname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moveindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveindex{${1:entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"moveindex*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveindex*{${1:entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"timesaround\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"timesaround{${1:beats-around}}{${2:total-beats}}\"\n      }\n    },\n    {\n      \"name\": \"thetimesaround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequartertimesaround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelldosido\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spellDosido\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdosidospelling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdosidospelling{${1:spelling}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"contra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:title}}{${2:author}}{${3:form}}\"\n      }\n    },\n    {\n      \"name\": \"contra\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:envname}]{${1:title}}{${2:author}}{${3:form}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/contracard#c\": [\n      \"showcountafter\",\n      \"showcountbefore\",\n      \"enableidx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/contracard#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/contract.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"contractSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contractSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\contractSetup,\\\\usepackage/contract#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Clause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Clause[${1:properties%keyvals}]\",\n        \"keys\": [\n          \"\\\\Clause,\\\\SubClause\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SubClause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SubClause[${1:properties%keyvals}]\",\n        \"keys\": [\n          \"\\\\Clause,\\\\SubClause\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Clauseformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parformatseparation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withoutparnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ellipsispar\"\n    },\n    {\n      \"name\": \"ellipsispar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ellipsispar[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"parellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencenumberformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sentence\"\n    },\n    {\n      \"name\": \"refL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refClause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refClause{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refClauseN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refClauseN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refParL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refParS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refParN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refParN[${2:number format}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentence{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewJuraEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareNewJuraEnvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewJuraEnvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareNewJuraEnvironment{${1:envname}}[${4:properties%keyvals}]{${2:begdef}}{${3:enddef}}\",\n        \"keys\": [\n          \"\\\\DeclareNewJuraEnvironment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"parname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentenceshortname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"contract\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\contractSetup,\\\\usepackage/contract#c\": [\n      \"juratotoc=${1:true|false|<integer>}\",\n      \"juratocindent=\",\n      \"juratocnumberwidth=\",\n      \"contract\",\n      \"juratitlepagebreak\",\n      \"clausemark=${1|both,false,off,no,forceboth,forceright,right|}\",\n      \"parnumber=${1|auto,true,false,manual|}\",\n      \"ref=${1|long,numeric,clauseonly,onlyclause,ClauseOnly,OnlyClause,parlong,longpar,ParL,parnumeric,numericpar,ParN,paroff,nopar,parshort,shortpar,ParS,sentencelong,longsentence,SentenceL,sentencenumeric,numericsentence,SentenceN,sentenceoff,nosentence,sentenceshort,shortsentence,SentenceS,short|}\"\n    ],\n    \"\\\\Clause,\\\\SubClause\": [\n      \"dummy\",\n      \"head=${1:running head}\",\n      \"nohead\",\n      \"notocentry\",\n      \"number=${1:number}\",\n      \"preskip=\",\n      \"postskip=\",\n      \"title=${1:text}\",\n      \"tocentry=${1:entry}\"\n    ],\n    \"\\\\DeclareNewJuraEnvironment\": [\n      \"Clause=${1:command}\",\n      \"ClauseFont=${1:commands}\",\n      \"SubClause=${1:command}\",\n      \"Sentence=${1:command}\",\n      \"ClauseNumberFormat=${1:command}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\contractSetup,\\\\usepackage/contract#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/conv-xkv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cxkvsetkeys\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cxkvsetkeys{${1:family}}{${2:keyval pairs}}\"\n      }\n    },\n    {\n      \"name\": \"cxkvsetkeys\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cxkvsetkeys(${3:name}){${1:family}}{${2:keyval pairs}}\"\n      }\n    },\n    {\n      \"name\": \"cxkvsetkeys\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"cxkvsetkeys(${4:name})[${3:prefix}]{${1:family}}{${2:keyval pairs}}\"\n      }\n    },\n    {\n      \"name\": \"cxkvsetkeys\",\n      \"arg\": {\n        \"format\": \"()[]{}[]{}\",\n        \"snippet\": \"cxkvsetkeys(${5:name})[${3:prefix}]{${1:family}}[${4:na}]{${2:keyval pairs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelimiter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelimiter{${1:name}}{${2:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"usekvdelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekvdelim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cxkvSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cxkvSetup{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cooking-units.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"xfrac\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fmtcount\",\n      \"if\": \"use-fmtcount-numerals\"\n    },\n    {\n      \"name\": \"fmtcount\",\n      \"if\": \"use-fmtcount-numerals=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cunum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cunum{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cunum\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cunum[${3:options%keyvals}]{${1:amount}}{${2:unit}}\",\n        \"keys\": [\n          \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cunum<label>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cunum<label>{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cunum<label>\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cunum<label>[${3:options%keyvals}]{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cunum<label>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"cunum<label>[${3:options%keyvals}]{${1:amount}}[${4:space%l}]{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cutext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cutext{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cutext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cutext[${3:options%keyvals}]{${1:amount}}{${2:unit}}\",\n        \"keys\": [\n          \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cutext<label>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cutext<label>{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cutext<label>\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cutext<label>[${3:options%keyvals}]{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"Cutext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cutext{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"Cutext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Cutext[${3:options%keyvals}]{${1:amount}}{${2:unit}}\",\n        \"keys\": [\n          \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cutext<label>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cutext<label>{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"Cutext<label>\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Cutext<label>[${3:options%keyvals}]{${1:amount}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"cuam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuam{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"cuam\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cuam[${2:options%keyvals}]{${1:amount}}\",\n        \"keys\": [\n          \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cuam<label>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuam<label>{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"cuam<label>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cuam<label>[${2:options%keyvals}]{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"cusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cudeclareunitgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cudeclareunitgroup{${1:group name}}{${2:unit list}}\"\n      }\n    },\n    {\n      \"name\": \"cuaddtounitgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuaddtounitgroup{${1:group name}}{${2:unit list}}\"\n      }\n    },\n    {\n      \"name\": \"culabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"culabel{${1:label}}{${2:number of persons}}\"\n      }\n    },\n    {\n      \"name\": \"curef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"declarecookingunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarecookingunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"declarecookingunit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declarecookingunit[${2:options%keyvals}]{${1:unit}}\",\n        \"keys\": [\n          \"\\\\declarecookingunit#c,\\\\newcookingunit#c,\\\\providecookingunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newcookingunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcookingunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"newcookingunit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newcookingunit[${2:options%keyvals}]{${1:unit}}\",\n        \"keys\": [\n          \"\\\\declarecookingunit#c,\\\\newcookingunit#c,\\\\providecookingunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"providecookingunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecookingunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"providecookingunit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"providecookingunit[${2:options%keyvals}]{${1:unit}}\",\n        \"keys\": [\n          \"\\\\declarecookingunit#c,\\\\newcookingunit#c,\\\\providecookingunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declarecookingderivatives\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"declarecookingderivatives{${1:unit list}}{${2:unit}}{${3:relation}}{${4:unit symbol}}\"\n      }\n    },\n    {\n      \"name\": \"cudefinekeychain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cudefinekeychain{${1:key specs}}\"\n      }\n    },\n    {\n      \"name\": \"cudefinesinglekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cudefinesinglekey{${1:key%plain}}{${2:key specs}}\"\n      }\n    },\n    {\n      \"name\": \"cuaddtokeychain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuaddtokeychain{${1:key specs}}\"\n      }\n    },\n    {\n      \"name\": \"cuaddsinglekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuaddsinglekeys{${1:key%plain}}{${2:key specs}}\"\n      }\n    },\n    {\n      \"name\": \"cudefinename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cudefinename{${1:language}}{${2:specs}}\"\n      }\n    },\n    {\n      \"name\": \"cudefinesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cudefinesymbol{${1:language}}{${2:specs}}\"\n      }\n    },\n    {\n      \"name\": \"cudefinephrase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cudefinephrase{${1:language}}{${2:specs}}\"\n      }\n    },\n    {\n      \"name\": \"cusetoptionfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cusetoptionfor{${1:unit list}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"cuaddoptionfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuaddoptionfor{${1:unit list}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"cuclearoptionfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuclearoptionfor{${1:unit list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cooking-units#c\": [\n      \"use-fmtcount-numerals\"\n    ],\n    \"\\\\cunum#c,\\\\cutext#c,\\\\Cutext#c,\\\\cuam#c,\\\\cusetup#c\": [\n      \"${1:old unit}=${2:new unit}\",\n      \"${1:group}=${2:unit}\",\n      \"add-unit-to-group={${1:group={unit list},...}}\",\n      \"set-option-for-${1:unit}={${2:keyvals}}\",\n      \"add-option-for-${1:unit}={${2:keyvals}}\",\n      \"set-option-for={${1:unit={keyvals},...}}\",\n      \"add-option-for={${1:unit={keyvals},...}}\",\n      \"erase-all-options\",\n      \"erase-all-options-for={${1:unit list}}\",\n      \"cutext-to-cunum\",\n      \"cutext-change-unit\",\n      \"cuam-version=${1|old,new|}\",\n      \"cutext-version=${1|old,new|}\",\n      \"commands-add-hook={${1:code}}\",\n      \"cunum-add-hook={${1:code}}\",\n      \"cutext-add-hook={${1:code}}\",\n      \"Cutext-add-hook={${1:code}}\",\n      \"cuam-add-hook={${1:code}}\",\n      \"expand-both=${1|n,o,f,x|}\",\n      \"expand-amount=${1|n,o,f,x|}\",\n      \"expand-unit=${1|n,o,f,x|}\",\n      \"set-special-sign={${1:characters}}\",\n      \"add-special-sign={${1:characters}}\",\n      \"set-unknown-message=${1|error,warning,none|}\",\n      \"set-cutext-translation-message=${1|error,warning,none|}\",\n      \"print-numerals\",\n      \"use-numerals-below=${1:integer}\",\n      \"numeral-function=${1:function}\",\n      \"Numeral-function=${1:function}\",\n      \"parse-number\",\n      \"range-sign=${1:string}\",\n      \"cunum-range-sign=${1:string}\",\n      \"cutext-range-sign=${1:string}\",\n      \"use-phrases\",\n      \"round-precision=${1:integer}\",\n      \"round-to-int\",\n      \"round-half=${1|default,commercial|}\",\n      \"eval-fraction\",\n      \"convert-fraction\",\n      \"fraction-inline={${1:input}}\",\n      \"mixed-fraction-space=\",\n      \"cutext-space=${1:string}\",\n      \"phrase-space=${1:string}\",\n      \"amount-unit-space=${1:string}\",\n      \"times-space=${1:string}\",\n      \"recalculate-amount\",\n      \"set-number-of-persons=${1:integer}\",\n      \"label=${1:string}*${2:integer}\",\n      \"get-label=${1:label}\",\n      \"ref=${1:label}\",\n      \"curef-add-forbidden-unit={${1:unit list}}\",\n      \"curef-remove-forbidden-unit={${1:unit list}}\",\n      \"curef-clear-forbidden-units\",\n      \"check-temperature\",\n      \"add-temperature-to-check={${1:unit=min value,...}}\",\n      \"convert-to-eV\",\n      \"add-natural-unit=${1:unit}\",\n      \"42\",\n      \"nothing-special\",\n      \"going-bonkers\",\n      \"fully-bonkers\",\n      \"xD-lol\"\n    ],\n    \"\\\\declarecookingunit#c,\\\\newcookingunit#c,\\\\providecookingunit#c\": [\n      \"symbol=${1:symbol}\",\n      \"gender=${1|m,f,n|}\",\n      \"set-options={${1:keyvals}}\",\n      \"add-to-group=${1:group}\",\n      \"natural-unit\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cooking-units#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cooking.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ingredient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ingredient{${1:ingredient%text}}\"\n      }\n    },\n    {\n      \"name\": \"energy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energy{${1:energy}}\"\n      }\n    },\n    {\n      \"name\": \"sidedish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidedish{${1:sidedish%text}}\"\n      }\n    },\n    {\n      \"name\": \"hint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preparationtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparationtime{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"modification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"modification{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"recipemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ingredientfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recipeendhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recipetitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recipetitle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"recipe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cooking#c\": [\n      \"bf\",\n      \"it\",\n      \"nopage\",\n      \"newpage\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"recipe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cooking#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cookingsymbols.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Oven\"\n    },\n    {\n      \"name\": \"Topbottomheat\"\n    },\n    {\n      \"name\": \"Topheat\"\n    },\n    {\n      \"name\": \"Bottomheat\"\n    },\n    {\n      \"name\": \"Fanoven\"\n    },\n    {\n      \"name\": \"Gasstove\"\n    },\n    {\n      \"name\": \"Dish\"\n    },\n    {\n      \"name\": \"Knife\"\n    },\n    {\n      \"name\": \"Fork\"\n    },\n    {\n      \"name\": \"Spoon\"\n    },\n    {\n      \"name\": \"Gloves\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coolfn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hanging\"\n    },\n    {\n      \"name\": \"footmisc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fnindent\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Parskip\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coollist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"coolstr\"\n    },\n    {\n      \"name\": \"forloop\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setlistStop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlistStop{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setlistEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlistEnd{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"listval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listval{${1:list}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"liststore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"liststore{${1:list}}{${2:macro base name}}\"\n      }\n    },\n    {\n      \"name\": \"listlen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listlen{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listlenstore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listlenstore{${1:counter}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"listcopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcopy{${1:list1}}{${2:list2}}\"\n      }\n    },\n    {\n      \"name\": \"listsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listsum{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"listsum\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listsum[${3:stored list}]{${1:list}}{${2:macro%cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coolstr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"substr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"substr{${1:string}}{${2:index}}{${3:numchar}}\"\n      }\n    },\n    {\n      \"name\": \"isdecimal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isdecimal{${1:string}}{${2:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"isnumeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isnumeric{${1:string}}{${2:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"isint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isint{${1:string}}{${2:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"setstrEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstrEnd{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"strchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strchar{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"strlen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strlen{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"strlenstore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strlenstore{${1:string}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrchareq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifstrchareq{${1:string}}{${2:char index}}{${3:comparison char}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrleneq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifstrleneq{${1:string}}{${2:number}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coolthms.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"cleveref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"definetheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definetheorem{${1:envname}}{${2:thm name}}\"\n      }\n    },\n    {\n      \"name\": \"definetheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"definetheorem[${3:numbered like}]{${1:envname}}{${2:thm name}}\"\n      }\n    },\n    {\n      \"name\": \"definetheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"definetheorem{${1:envname}}{${2:thm name}}[${3:counter within}]\"\n      }\n    },\n    {\n      \"name\": \"definetheorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"definetheorem[${3:numbered like}]{${1:envname}}{${2:thm name}}[${4:counter within}]\"\n      }\n    },\n    {\n      \"name\": \"definetheorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"definetheorem{${1:envname}}[${3:thm plural name}]{${2:thm name}}\"\n      }\n    },\n    {\n      \"name\": \"Label\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Label{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"theoremmarkup\",\n      \"arg\": {\n        \"format\": \"[][][][][][]\",\n        \"snippet\": \"theoremmarkup[${1:header font}][${2:body font}][${3:symbol}][${4:indent}][${5:separator}][${6:numbering}]\"\n      }\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/coolthms#c\": [\n      \"proofname=${1:text}\",\n      \"proofsymbol=${1:symbol}\",\n      \"proofcaptionstyle=${1:font commands}\",\n      \"proofindent=\",\n      \"separator=${1:symbol}\",\n      \"indent=\",\n      \"minskip=\",\n      \"maxskip=\",\n      \"externalchapters\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/coolthms#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cooltooltips.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cooltooltip\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cooltooltip{${1:subject%text}}{${2:message%text}}{${3:URL}}{${4:tooltip}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"cooltooltip\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cooltooltip[${6:popup color}]{${1:subject%text}}{${2:message%text}}{${3:URL}}{${4:tooltip}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"cooltooltip\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}\",\n        \"snippet\": \"cooltooltip[${6:popup color}][${7:link color}]{${1:subject%text}}{${2:message%text}}{${3:URL}}{${4:tooltip}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"cooltooltiptoggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cooltooltiptoggle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifcoolpdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coolpdftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coolpdffalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coop-writing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"soulutf8\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coopwritingversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcoopwritingversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwnamedef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cwnamedef{${1:csname}}{${2:color}}{${3:author name}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwauthor{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwauthor[${2:selection%text}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cweditor{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cweditor[${2:selection%text}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cwauthorr{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cwauthorr[${3:selection%text}]{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cweditorr{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cweditorr[${3:selection%text}]{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwauthorx{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwauthorx[${2:selection%text}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cweditorx{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cweditorx[${2:selection%text}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorrx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cwauthorrx{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorrx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cwauthorrx[${3:selection%text}]{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorrx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cweditorrx{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorrx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cweditorrx[${3:selection%text}]{${1:comment%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorsug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwauthorsug{${1:suggested text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorsug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwauthorsug[${2:comment%text}]{${1:suggested text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorsug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cweditorsug{${1:suggested text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorsug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cweditorsug[${2:comment%text}]{${1:suggested text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorrem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwauthorrem{${1:suggested removal%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorrem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwauthorrem[${2:comment%text}]{${1:suggested removal%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorrem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cweditorrem{${1:suggested removal%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorrem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cweditorrem[${2:comment%text}]{${1:suggested removal%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorswap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cwauthorswap{${1:suggested removal%text}}{${2:suggested insertion%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwauthorswap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cwauthorswap[${3:comment%text}]{${1:suggested removal%text}}{${2:suggested insertion%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorswap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cweditorswap{${1:suggested removal%text}}{${2:suggested insertion%text}}\"\n      }\n    },\n    {\n      \"name\": \"cweditorswap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cweditorswap[${3:comment%text}]{${1:suggested removal%text}}{${2:suggested insertion%text}}\"\n      }\n    },\n    {\n      \"name\": \"cwsetcommwarn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwsetcommwarn{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"cwanon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwanon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwanoncite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwanoncite[${2:prefix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncitet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwanoncitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncitet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwanoncitet[${2:prefix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncitep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwanoncitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwanoncitep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwanoncitep[${2:prefix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cwdefanontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwdefanontext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwdefanoncitetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwdefanoncitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwdefanoncitettext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwdefanoncitettext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwdefanonciteptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwdefanonciteptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cssetdraftcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cssetdraftcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cwsubject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwsubject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwsubject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwsubject[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwsetsubjectcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwsetsubjectcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cwmain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwmain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwmain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwmain[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwsetmaincolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwsetmaincolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"cwmainemphasis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwmainemphasis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listofcomments\"\n    },\n    {\n      \"name\": \"listofcitationneeds\"\n    },\n    {\n      \"name\": \"listofsubjects\"\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:inline}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"cwdefinetodocolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwdefinetodocolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pleasecite\"\n    },\n    {\n      \"name\": \"pleasecite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pleasecite[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"cwcommentstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwdrafttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwsubjtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwcitationstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwpleasecitetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwpleasecitemessage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwpleasecitemarginnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwautor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cwautor{${1:csname}}{${2:color}}{${3:author name}}\"\n      }\n    },\n    {\n      \"name\": \"cwassunto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwassunto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwassunto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cwassunto[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listofcomentario\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofassunto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofcomentarioref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowednotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showednotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showednotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifednotebookmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ednotebookmarkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ednotebookmarksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecwnotecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cwnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cwnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cwnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cwnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cwnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cwnote{${1:text}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"cwnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cwnote[${3:label}]{${1:text}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"corleve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corleve{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"listsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listcomentario\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecomentario\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftcomentarionumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listcomentarioref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecomentarioref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftcomentariorefnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubject\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cwdraft\"\n    },\n    {\n      \"name\": \"cwdraft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"rascunho\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/coop-writing#c\": [\n      \"rascunhos\",\n      \"comentarios\",\n      \"anonimizar\",\n      \"naoanonimizar\",\n      \"sugestoes\",\n      \"assuntos\",\n      \"edicao\",\n      \"submeter\",\n      \"publicar\",\n      \"publicaraceitando\",\n      \"nopdfbookmarks\",\n      \"comments\",\n      \"anonymize\",\n      \"noanonymize\",\n      \"suggestions\",\n      \"subjects\",\n      \"drafts\",\n      \"todos\",\n      \"editing\",\n      \"submit\",\n      \"publish\",\n      \"acceptingpublish\",\n      \"toclofttitles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/coop-writing#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/coordsys.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numbline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numbline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numbline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numbline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"numbline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numbline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vnumbline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vnumbline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vnumbline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vnumbline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vnumbline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fcoordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fcoordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"fcoordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fcoordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fcoordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"fcoordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"fcoordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"bcoordsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"bcoordsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"bcoordsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"bcoordsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"bcoordsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"bcoordsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"bcoordsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"window(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"window[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"window[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"window*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"window*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"window*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"window*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordgrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordgrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordgrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"coordgrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"coordgrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"coordgrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"coordgrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"gridstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gridstyle{${1:thin-declaration}}{${2:thick-declaration}}\"\n      }\n    },\n    {\n      \"name\": \"sethlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sethlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sethlabel[${2:alignment}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setvlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setvlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setvlabel[${2:alignment}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hthickratio\"\n    },\n    {\n      \"name\": \"vthickratio\"\n    },\n    {\n      \"name\": \"rescaleby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rescaleby{${1:num}}{${2:den}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rescaleby\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rescaleby[${4:symb}]{${1:num}}{${2:den}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"tickstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tickstyle{${1:thin-declaration}}{${2:thick-declaration}}\"\n      }\n    },\n    {\n      \"name\": \"ticklength\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/coordsys#c\": [\n      \"centred\",\n      \"outside\",\n      \"inside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/coordsys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/coptic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"asterisco\"\n    },\n    {\n      \"name\": \"Asterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bar{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"barretta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barretta{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"crocetta\"\n    },\n    {\n      \"name\": \"crucicula\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Crux\"\n    },\n    {\n      \"name\": \"djois\"\n    },\n    {\n      \"name\": \"dubbio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dubbio{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"dubious\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dubious{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"horiakh\"\n    },\n    {\n      \"name\": \"iesus\"\n    },\n    {\n      \"name\": \"LatinEnc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ov\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ov{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Overline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Overline{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pont{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"puntonero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puntonero{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setcopto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sic{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcopte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcopte{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcoptic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcoptic{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcopto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcopto{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textlatin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlatin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"threedots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trepun\"\n    },\n    {\n      \"name\": \"trepund\"\n    },\n    {\n      \"name\": \"xc\"\n    },\n    {\n      \"name\": \"xcr\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"coptic\"\n    },\n    {\n      \"name\": \"copte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copto\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/copyrightbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"copyrightbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrightbox{${1:content}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"copyrightbox[${3:placement%keyvals}]{${1:content}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\copyrightbox\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\copyrightbox\": [\n      \"l\",\n      \"r\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/correctmathalign.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/correctmathalign#c\": [\n      \"latexorg\",\n      \"fleqn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/correctmathalign#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/corridx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ia{${1:expanded text}}{${2:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"noia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noia{${1:expanded text}}{${2:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ic{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"noic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noic{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"ib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ib{${1:expanded text}}{${2:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"noib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noib{${1:expanded text}}{${2:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"ig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ig{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"ig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ig[${2:subentry}]{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"noig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noig{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"noig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"noig[${2:subentry}]{${1:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"crrdxformatpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crrdxformatpage{${1:type}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"sectioncrrdx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectioncrrdx{${1:index heading}}\"\n      }\n    },\n    {\n      \"name\": \"swallow\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"crrdxchem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crrdxacr\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/coseoul.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"levelup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"levelup{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"leveldown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leveldown{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"levelstay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"levelstay{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"levelmultiup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"levelmultiup{${1:title}}{${2:levels}}\"\n      }\n    },\n    {\n      \"name\": \"chex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"findnewlevel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findnewlevel{${1:levels}}\"\n      }\n    },\n    {\n      \"name\": \"levelchange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"levelchange{${1:title}}{${2:levels}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentlevel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/couleurs-fr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/couleurs-fr#c\": [\n      \"Prefixe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/couleurs-fr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/counterz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"makecmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcounterprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcounterprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"clearcounterprefix\"\n    },\n    {\n      \"name\": \"xnewcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnewcounter{${1:counter name}}\"\n      }\n    },\n    {\n      \"name\": \"xprovidecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xprovidecounter{${1:counter name}}\"\n      }\n    },\n    {\n      \"name\": \"xsetcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xsetcounter{${1:counter}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xaddtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xaddtocounter{${1:counter}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xvalue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifctrequal{${1:counter1}}{${2:counter2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrless\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifctrless{${1:counter1}}{${2:counter2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrmore\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifctrmore{${1:counter1}}{${2:counter2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrzero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifctrzero{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrneg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifctrneg{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifctrpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifctrpos{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"xarabic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xarabic{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xRoman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xfnsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xfnsymbol{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsigned\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsigned{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsignednz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsignednz{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xarabicnz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xarabicnz{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegof{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegofnz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegofnz{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegsigned\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegsigned{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegsignednz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegsignednz{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xabsof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xabsof{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsignof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsignof{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegsignof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegsignof{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xabsofcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xabsofcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsignofcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsignofcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegsignofcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegsignofcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsignedcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsignedcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xnegsignedcoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnegsignedcoef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"randsetcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"randsetcounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"xrandsetcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrandsetcounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"randaddtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"randaddtocounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"xrandaddtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrandaddtocounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"randomizectr\"\n    },\n    {\n      \"name\": \"norandomizectr\"\n    },\n    {\n      \"name\": \"ifrandomizectr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifrandomizectr{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"opencountersfile\"\n    },\n    {\n      \"name\": \"savecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xsavecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsavecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"inputcountersfile\"\n    },\n    {\n      \"name\": \"promptrandomizectr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"promptrandomizectr{${1:message}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"promptrandomizectr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"promptrandomizectr[${3:macro%cmd}]{${1:message}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"randprovidecounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"randprovidecounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"randprovidecounternz\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"randprovidecounternz{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"xrandprovidecounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrandprovidecounter{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"xrandprovidecounternz\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrandprovidecounternz{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/countriesofeurope.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"countriesofeuropefamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoEF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EUCountry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EUCountry{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"EUCountry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EUCountry[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\EUCountry,\\\\setCoEkeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCoEkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCoEkeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\EUCountry,\\\\setCoEkeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Albania\"\n    },\n    {\n      \"name\": \"Andorra\"\n    },\n    {\n      \"name\": \"Austria\"\n    },\n    {\n      \"name\": \"Belarus\"\n    },\n    {\n      \"name\": \"Belgium\"\n    },\n    {\n      \"name\": \"Bosnia\"\n    },\n    {\n      \"name\": \"Bulgaria\"\n    },\n    {\n      \"name\": \"Croatia\"\n    },\n    {\n      \"name\": \"Czechia\"\n    },\n    {\n      \"name\": \"Denmark\"\n    },\n    {\n      \"name\": \"Estonia\"\n    },\n    {\n      \"name\": \"Finland\"\n    },\n    {\n      \"name\": \"France\"\n    },\n    {\n      \"name\": \"Germany\"\n    },\n    {\n      \"name\": \"GreatBritain\"\n    },\n    {\n      \"name\": \"Greece\"\n    },\n    {\n      \"name\": \"Hungary\"\n    },\n    {\n      \"name\": \"Iceland\"\n    },\n    {\n      \"name\": \"Ireland\"\n    },\n    {\n      \"name\": \"Italy\"\n    },\n    {\n      \"name\": \"Latvia\"\n    },\n    {\n      \"name\": \"Liechtenstein\"\n    },\n    {\n      \"name\": \"Lithuania\"\n    },\n    {\n      \"name\": \"Luxembourg\"\n    },\n    {\n      \"name\": \"Macedonia\"\n    },\n    {\n      \"name\": \"Malta\"\n    },\n    {\n      \"name\": \"Moldova\"\n    },\n    {\n      \"name\": \"Montenegro\"\n    },\n    {\n      \"name\": \"Netherlands\"\n    },\n    {\n      \"name\": \"Norway\"\n    },\n    {\n      \"name\": \"Poland\"\n    },\n    {\n      \"name\": \"Portugal\"\n    },\n    {\n      \"name\": \"Romania\"\n    },\n    {\n      \"name\": \"Serbia\"\n    },\n    {\n      \"name\": \"Slovakia\"\n    },\n    {\n      \"name\": \"Slovenia\"\n    },\n    {\n      \"name\": \"Spain\"\n    },\n    {\n      \"name\": \"Sweden\"\n    },\n    {\n      \"name\": \"Switzerland\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/countriesofeurope#c\": [\n      \"Scale=${1:factor}\",\n      \"Ligatures=\"\n    ],\n    \"\\\\EUCountry,\\\\setCoEkeys\": [\n      \"Scale=${1:factor}\",\n      \"outline\",\n      \"fillcolor=\",\n      \"linecolor=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/countriesofeurope#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/counttexruns.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thecounttexruns\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/counttexruns#c\": [\n      \"extension=${1:file ext}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/counttexruns#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/couriers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/couriers#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/couriers#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/courierten.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/courierten#c\": [\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"lining\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/courierten#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/covington.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"varwidth\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"twodias\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"twodias{${1:upper diac}}{${2:lower diac}}{${3:char}}\"\n      }\n    },\n    {\n      \"name\": \"acm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"grm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cim{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SetDiaOffset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDiaOffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"twoacc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twoacc[${1:upper|lower}]\"\n      }\n    },\n    {\n      \"name\": \"exampleno\"\n    },\n    {\n      \"name\": \"exampleno*\"\n    },\n    {\n      \"name\": \"covchapexsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setexampleoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setexampleoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\setexampleoptions\",\n          \"\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examplenumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subexamplenumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"expostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expostamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexpreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subexpostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexpostamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"covexnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covexnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"covexnumberfn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covexnumberfn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"covsubexnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covsubexnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"covexamplefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covexamplenofs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expreamblefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subexpreamblefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expostamblefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subexpostamblefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecovfnex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ownexcounterprep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digloss\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"digloss{${1:glossline1}}{${2:glossline2}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"digloss\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"digloss{${1:glossline1}}[${4:comment1}]{${2:glossline2}}[${5:comment2}]{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"digloss\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"digloss[${4:options%keyvals}]{${1:glossline1}}{${2:glossline2}}{${3:translation}}\",\n        \"keys\": [\n          \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"digloss\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"digloss[${4:options%keyvals}]{${1:glossline1}}[${5:comment1}]{${2:glossline2}}[${6:comment2}]{${3:translation}}\",\n        \"keys\": [\n          \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trigloss\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"trigloss{${1:glossline1}}{${2:glossline2}}{${3:glossline3}}{${4:translation}}\"\n      }\n    },\n    {\n      \"name\": \"trigloss\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]{}\",\n        \"snippet\": \"trigloss{${1:glossline1}}[${5:comment1}]{${2:glossline2}}[${6:comment2}]{${3:glossline3}}[${7:comment3}]{${4:translation}}\"\n      }\n    },\n    {\n      \"name\": \"trigloss\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"trigloss[${5:options%keyvals}]{${1:glossline1}}{${2:glossline2}}{${3:glossline3}}{${4:translation}}\",\n        \"keys\": [\n          \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trigloss\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}[]{}\",\n        \"snippet\": \"trigloss[${5:options%keyvals}]{${1:glossline1}}[${6:comment1}]{${2:glossline2}}[${7:comment2}]{${3:glossline3}}[${8:comment3}]{${4:translation}}\",\n        \"keys\": [\n          \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setglossoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glosswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glosssep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xgll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xglll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xgle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glot{${1:translation}}\"\n      }\n    },\n    {\n      \"name\": \"glot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glot[${2:judgment marker}]{${1:translation}}\"\n      }\n    },\n    {\n      \"name\": \"glosspreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosspreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glosslinetrans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosslinetrans{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"covenquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covenquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glosslinepreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glosslinepostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psr{${1:constituent}}{${2:sub-constituents}}\"\n      }\n    },\n    {\n      \"name\": \"fs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fs{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"lfs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lfs{${1:label%plain}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"drs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drs{${1:variables}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"sdrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sdrs{${1:above-text%text}}{${2:variables}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"negdrs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"negdrs{${1:variables}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"ifdrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdrs{${1:variables1}}{${2:contents1}}{${3:variables2}}{${4:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"alifdrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"alifdrs{${1:variables1}}{${2:contents1}}{${3:variables2}}{${4:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"reflistindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflistitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflistparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sentence{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sentencefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lexp{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"lcon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcon{${1:concept}}\"\n      }\n    },\n    {\n      \"name\": \"lmean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmean{${1:meaning}}\"\n      }\n    },\n    {\n      \"name\": \"either\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"either{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"twoaccsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glosspwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecovex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"covexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covexample\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examples\"\n    },\n    {\n      \"name\": \"examples\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"covexamples\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covexamples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subexamples\"\n    },\n    {\n      \"name\": \"subexamples\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"covsubexamples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\",\n          \"\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"covexercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covexercise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"reflist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/covington#c\": [\n      \"force\",\n      \"keeplayout\",\n      \"noglossbreaks\",\n      \"owncounter\",\n      \"fnexamplecounter=${1|main,own,own-reset|}\"\n    ],\n    \"\\\\begin{example},\\\\begin{covexample},\\\\begin{examples},\\\\begin{covexamples},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\": [\n      \"fs={${1:font settings}}\",\n      \"fsno={${1:font settings}}\",\n      \"judge={${1:text}}\",\n      \"*\",\n      \"?\",\n      \"*?\",\n      \"??\",\n      \"fsjudge={${1:font settings}}\",\n      \"leftmargin=\",\n      \"addnumbersep=\",\n      \"judgewidth={${1:text}}\",\n      \"addjudgesep=\",\n      \"numberformat={${1:template}}\",\n      \"fnnumberformat={${1:template}}\"\n    ],\n    \"\\\\begin{example},\\\\begin{covexample},\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\": [\n      \"preamble={${1:text}}\",\n      \"postamble={${1:text}}\",\n      \"fspreamble={${1:font settings}}\",\n      \"fspostamble={${1:font settings}}\"\n    ],\n    \"\\\\begin{example},\\\\begin{covexample},\\\\setexampleoptions\": [\n      \"postamble*={${1:text}}\"\n    ],\n    \"\\\\begin{subexamples},\\\\begin{covsubexamples},\\\\setexampleoptions\": [\n      \"fssubpreamble={${1:font settings}}\",\n      \"fssubpostamble={${1:font settings}}\",\n      \"addsubnumbersep=\",\n      \"subnumberformat={${1:template}}\",\n      \"subjudge={${1:text}}\",\n      \"subpreamble={${1:text}}\",\n      \"subpostamble={${1:text}}\"\n    ],\n    \"\\\\digloss,\\\\trigloss,\\\\setglossoptions\": [\n      \"ex\",\n      \"tlr\",\n      \"tlr*\",\n      \"fsi={${1:font settings}}\",\n      \"fsii={${1:font settings}}\",\n      \"fsiii={${1:font settings}}\",\n      \"fstl={${1:font settings}}\",\n      \"enquotetl\",\n      \"addlinesepi=\",\n      \"addlinesepii=\",\n      \"addlinesepiii=\",\n      \"judge={${1:text}}\",\n      \"fsjudge={${1:font settings}}\",\n      \"addjudgesep=\",\n      \"preamble={${1:text}}\",\n      \"postamble={${1:text}}\",\n      \"fspreamble={${1:font settings}}\",\n      \"fspostamble={${1:font settings}}\",\n      \"glosswidth=\",\n      \"glosssep=\",\n      \"glosscommentwidth=\",\n      \"fscomments={${1:font settings}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/covington#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cprotect.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cprotect\"\n    },\n    {\n      \"name\": \"cprotect\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cprotect[${1:args}]\"\n      }\n    },\n    {\n      \"name\": \"cMakeRobust\"\n    },\n    {\n      \"name\": \"icprotect\"\n    },\n    {\n      \"name\": \"cprotEnv\"\n    },\n    {\n      \"name\": \"CPTbegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CPTbegin{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ReadVerbatimUntil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReadVerbatimUntil[${2:arg1}]{${1:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cprotectinside.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cprotectinside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cprotectinside{${1:delimiter}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cprotectinsideAppend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cprotectinsideReexec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cprotectinsideReexec{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cpssp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cpsspformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpsspformat{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/cpssp#c,\\\\cpsspformat,\\\\cpsspinput,\\\\begin{cpsspimage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cpsspinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpsspinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cpsspinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/cpssp#c,\\\\cpsspformat,\\\\cpsspinput,\\\\begin{cpsspimage}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cpsspGap\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspGap{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspBridge\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspBridge{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspCoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspCoil{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspSheet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspSheet{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspSheetT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspSheetT{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspThreeTenHelix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspThreeTenHelix{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspAlphaHelix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspAlphaHelix{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspPiHelix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspPiHelix{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspBend\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspBend{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspTurn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspTurn{${1:y}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpsspLabel{${1:y}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspStartRes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspStartRes{${1:y}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspEndRes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpsspEndRes{${1:y}}{${2:x}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cpsspimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cpsspimage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/cpssp#c,\\\\cpsspformat,\\\\cpsspinput,\\\\begin{cpsspimage}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cpssp#c,\\\\cpsspformat,\\\\cpsspinput,\\\\begin{cpsspimage}\": [\n      \"style=${1|small,large,graylines,pdb|}\",\n      \"labels\",\n      \"numbers\",\n      \"labelformat=${1:font commands}\",\n      \"numberformat=${1:font commands}\",\n      \"threehelixname=${1:name}\",\n      \"pihelixname=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cpssp#c,\\\\cpsspformat,\\\\cpsspinput,\\\\begin{cpsspimage}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cquthesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dirtree\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"speakyourlove\"\n    },\n    {\n      \"name\": \"speakyourlove\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"speakyourlove[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"qthis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qthis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csgo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgo{${1:csname}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"myicon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myicon{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"myfolder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"myfolder{${1:color}}{${2:folder}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/crbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"crbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\crbox\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\crbox\": [\n      \"curved\",\n      \"hollowcurved\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/create-theorem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"crefthe\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NameTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameTheorem{${1:envname}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NameTheorem#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"CreateTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CreateTheorem{${1:envname}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\CreateTheorem#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTheorem{${1:envname}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTheorem#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetTheoremBinding\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTheoremBinding{${1:envname}}{${2:envname to bind with}}\"\n      }\n    },\n    {\n      \"name\": \"NameTheorems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameTheorems{${1:language}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NameTheorems#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"CreateTheoremAddLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CreateTheoremAddLanguage{${1:language}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/create-theorem#c\": [\n      \"name as context\",\n      \"name as is\",\n      \"name in link\",\n      \"no preset names\"\n    ],\n    \"\\\\NameTheorem#c\": [\n      \"heading=${1:string}\",\n      \"heading={${1:lang1=string1,lang2=string2,...}}\",\n      \"heading style=${1:font commands}\",\n      \"crefname={${1:singular name}}{${2:plural name}}\",\n      \"crefname={${1:lang1={name1}{pluralname1},...}}\",\n      \"crefname style=${1:font commands}\",\n      \"Crefname={${1:singular name}}{${2:plural name}}\",\n      \"Crefname={${1:lang1={name1}{pluralname1},...}}\",\n      \"Crefname style=${1:font commands}\",\n      \"numbering style=${1:font commands}\",\n      \"use name={${1:envname1;envname2;...}}\"\n    ],\n    \"\\\\CreateTheorem#c\": [\n      \"name={${1:\\\\NameTheorem keyvals}}\",\n      \"use name={${1:envname1;envname2;...}}\",\n      \"style=${1:theorem style}\",\n      \"qed=${1:symbol}\",\n      \"parent counter=${1:counter}\",\n      \"shared counter=${1:counter}\",\n      \"numberless\",\n      \"create starred version\",\n      \"copy existed=${1:envname}\"\n    ],\n    \"\\\\SetTheorem#c\": [\n      \"name={${1:\\\\NameTheorem keyvals}}\",\n      \"qed=${1:symbol}\",\n      \"parent counter=${1:counter}\",\n      \"shared counter=${1:counter}\"\n    ],\n    \"\\\\NameTheorems#c\": [\n      \"heading={${1:envname}=${2:string}}\",\n      \"crefname={${1:envname}={${2:singular}}{${3:plural}}}\",\n      \"Crefname={${1:envname}={${2:singular}}{${3:plural}}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/create-theorem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/createsudoku.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"solvesudoku\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"generategrid\"\n    },\n    {\n      \"name\": \"generategrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"generategrid[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"genfile\"\n    },\n    {\n      \"name\": \"prevfile\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"setsudrandom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsudrandom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"initialelimination\"\n    },\n    {\n      \"name\": \"elimseventeen\"\n    },\n    {\n      \"name\": \"elimnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elimnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"elimcross\"\n    },\n    {\n      \"name\": \"elimex\"\n    },\n    {\n      \"name\": \"elimcrossandnines\"\n    },\n    {\n      \"name\": \"elimcrossandex\"\n    },\n    {\n      \"name\": \"elimcrossandexandnines\"\n    },\n    {\n      \"name\": \"deleteaclue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elimclues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elimcluesonebyone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gencommentary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gencommentary{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printsudresults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swapcolpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"swapcolpair{${1:colstartcell1}}{${2:colstartcell2}}\"\n      }\n    },\n    {\n      \"name\": \"swaprowpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"swaprowpair{${1:rowstartcell1}}{${2:rowstartcell2}}\"\n      }\n    },\n    {\n      \"name\": \"swaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trysolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writestartgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writestate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writestate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/crefthe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"regexpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefthe*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefthe*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefthe*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crefthe*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Crefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Crefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthe*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Crefthe*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthe*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Crefthe*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecrefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecrefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCrefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCrefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefsthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namecrefsthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefsthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecrefsthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefsthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameCrefsthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefsthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCrefsthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpagerefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpagerefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpagerefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cpagerefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpagerefthe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cpagerefthe{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpagerefthe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cpagerefthe[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefthemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefthemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"crefthename\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crefthename{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"crefthename\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"crefthename{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthename\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Crefthename{${1:type}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthename\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"Crefthename{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"crefthevariantname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crefthevariantname{${1:type}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"Crefthevariantname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crefthevariantname{${1:type}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"setcrefname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcrefname{${1:type}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"setCrefname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCrefname{${1:type}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"crefthepatchname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crefthepatchname{${1:counters}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefs\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecrefs[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefs\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCrefs[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpageref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cpageref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpageref\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cpageref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefname\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"crefname{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefname\",\n      \"if\": \"overwrite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"Crefname{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"cref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cref*\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cref*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cref*\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cref*[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"namecrefs\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namecrefs[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"nameCrefs\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameCrefs[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"cpageref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cpageref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Cpageref\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cpageref[${2:prep}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"crefname\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"crefname{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"Crefname\",\n      \"if\": \"overwrite=true\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"Crefname{${1:type}}[${4:prep1}]{${2:singular}}[${5:prep2}]{${3:plural}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/crefthe#c\": [\n      \"overwrite\",\n      \"disable german article contractions\",\n      \"poorman\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"nosort\",\n      \"capitalise\",\n      \"capitalize\",\n      \"nameinlink\",\n      \"noabbrev\",\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"dutch\",\n      \"french\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"ukrainian\",\n      \"norsk\",\n      \"danish\",\n      \"esperanto\",\n      \"swedish\",\n      \"brazilian\",\n      \"catalan\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/crefthe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/crimson.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crimson\"\n    },\n    {\n      \"name\": \"crimsonsemibold\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/crimson#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"semibold\",\n      \"sb\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/crimson#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/crop.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crop\"\n    },\n    {\n      \"name\": \"crop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crop[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\crop,\\\\usepackage/crop#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cropdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cropdef{${1:ul-macro}}{${2:ur-macro}}{${3:ll-macro}}{${4:lr-macro}}{${5:mode name}}\"\n      }\n    },\n    {\n      \"name\": \"cropdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cropdef[${6:page-info macro}]{${1:ul-macro}}{${2:ur-macro}}{${3:ll-macro}}{${4:lr-macro}}{${5:mode name}}\"\n      }\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/crop#c\": [\n      \"a0\",\n      \"a1\",\n      \"a2\",\n      \"a3\",\n      \"a4\",\n      \"a5\",\n      \"a6\",\n      \"b0\",\n      \"b1\",\n      \"b2\",\n      \"b3\",\n      \"b4\",\n      \"b5\",\n      \"b6\",\n      \"letter\",\n      \"legal\",\n      \"executive\",\n      \"width=\",\n      \"height=\",\n      \"center\",\n      \"landscape\",\n      \"dvips\",\n      \"pdftex\",\n      \"pdflatex\",\n      \"luatex\",\n      \"lualatex\",\n      \"vtex\",\n      \"nodriver\",\n      \"mirror\",\n      \"rotate\",\n      \"invert\",\n      \"notext\"\n    ],\n    \"\\\\crop,\\\\usepackage/crop#c\": [\n      \"cam\",\n      \"cross\",\n      \"frame\",\n      \"off\",\n      \"odd\",\n      \"even\",\n      \"axes\",\n      \"noaxes\",\n      \"info\",\n      \"noinfo\",\n      \"font=${1:font csname}\",\n      \"color=\",\n      \"mount1\",\n      \"mount1=${1:integer}\",\n      \"mount2\",\n      \"mount2=${1:integer}\",\n      \"horigin=\",\n      \"vorigin=\",\n      \"graphics\",\n      \"nographics\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/crop#c\",\n    \"\\\\crop,\\\\usepackage/crop#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cropmark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"croplength\"\n    },\n    {\n      \"name\": \"cropwidth\"\n    },\n    {\n      \"name\": \"cropsep\"\n    },\n    {\n      \"name\": \"croppadtop\"\n    },\n    {\n      \"name\": \"croppadbot\"\n    },\n    {\n      \"name\": \"croppadlr\"\n    },\n    {\n      \"name\": \"crophrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cropvrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shipAfterBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shipAfterRegister\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yshipout\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/crossrefenum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crossrefenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crossrefenum{${1:enumeration}}\"\n      }\n    },\n    {\n      \"name\": \"crossrefenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crossrefenum[${2:type%keyvals}]{${1:enumeration}}\",\n        \"keys\": [\n          \"\\\\crossrefenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crossrefenum\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"crossrefenum[${2:type%keyvals}][${3:print prefix?}]{${1:enumeration}}\",\n        \"keys\": [\n          \"\\\\crossrefenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crfnmPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmNote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmNotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmEdpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmEdpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmEdline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmEdlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultEnumDelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultBeforeLastInEnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultRangeSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultCollapsable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmNoteCollapsable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultSubtypesSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultPrintFirstPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultFormatInSecond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crfnmDefaultFormatInSecond{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crfnmEdlineFormatInSecond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crfnmEdlineFormatInSecond{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crfnmEdlinePrintPrefixInSecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultEnumDelimInSecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultBeforeLastInEnumInSecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultGroupSubtypes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultNumberingContinuousAcrossDocument\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crfnmDefaultOrder\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\crossrefenum#c\": [\n      \"page\",\n      \"note\",\n      \"pagenote\",\n      \"edpage\",\n      \"edline\",\n      \"edpageline\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/crossreference.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"addxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addxref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crossreferences\"\n    },\n    {\n      \"name\": \"thexref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xreflabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xreflabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xref{${1:key}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/crossreftools.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"crtrefundefinedtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefundefinedtext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefundefinedcountervalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefundefinedcountervalue{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"crtextractref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crtextractref{${1:property%keyvals}}{${2:label}}\",\n        \"keys\": [\n          \"\\\\crtextractref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crtcrefpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefpage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefnumber{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefanchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefanchor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefunused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefunused{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefcounter{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtextractcref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crtextractcref{${1:property%keyvals}}{${2:label}}\",\n        \"keys\": [\n          \"\\\\crtextractcref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crtcrefcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefcounter{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefnumber{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefcountervalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefcountervalue{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefresult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefresult{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefreference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefreference{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefname{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"crtCrefname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtCrefname{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefpluralname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefpluralname{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"crtCrefpluralname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtCrefpluralname{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefnamebylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrefnamebylabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtCrefnamebylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtCrefnamebylabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtcref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtCref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtCref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crthyperlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crthyperlink{${1:anchor}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"crthypercref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crthypercref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crthyperCref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crthyperCref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtlnameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtlnameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtlnameref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtlnameref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtunameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtunameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtunameref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtunameref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtnameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtnameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtnameref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtnameref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtprovidecurrentlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtprovidecurrentlabel{${1:label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtprovidecurrentlabelname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtprovidecurrentlabelname{${1:nameref label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtprovidecurrentlabelinfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crtprovidecurrentlabelinfo{${1:label content}}{${2:nameref label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrossreflabel{${1:label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crtcrossreflabel[${2:nameref label content}]{${1:label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"crtcrossreflabel[${2:nameref label content}]{${1:label content}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtcrossreflabel*{${1:label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crtcrossreflabel*[${2:nameref label content}]{${1:label content}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrossreflabel*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"crtcrossreflabel*[${2:nameref label content}]{${1:label content}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"crtifdefinedlabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crtifdefinedlabel{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"crtifundefinedlabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crtifundefinedlabel{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefifdefinedlabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crtcrefifdefinedlabel{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"crtcrefifundefinedlabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crtcrefifundefinedlabel{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"crtlistoflabels\"\n    },\n    {\n      \"name\": \"crtlistoflabels*\"\n    },\n    {\n      \"name\": \"crtlistoflabelsfileextension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtlistoflabelsfileextension{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"listoflabelsname\"\n    },\n    {\n      \"name\": \"crtlistoflabelsstructurelevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtlistoflabelsstructurelevel{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"crtprelabelhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtprelabelhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"crtpostlabelhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtpostlabelhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"crtaddlabeltotoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtaddlabeltotoc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crtrefpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtrefpage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"listoflabelstructurelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcrtfinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crtfinaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crtfinalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcleverefcompatmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleverefcompatmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleverefcompatmodefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/crossreftools#c\": [\n      \"draft\",\n      \"final\",\n      \"cleverefcompat\"\n    ],\n    \"\\\\crtextractref\": [\n      \"reference\",\n      \"page\",\n      \"anchor\",\n      \"name\",\n      \"unused\"\n    ],\n    \"\\\\crtextractcref\": [\n      \"counter\",\n      \"number\",\n      \"result\",\n      \"reference\",\n      \"page\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/crossreftools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/crumbs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crumbs\"\n    },\n    {\n      \"name\": \"subcrumbs\"\n    },\n    {\n      \"name\": \"appendwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendtofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendtofile{${1:file}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"crumbection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crumbection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"crumbection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crumbection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subcrumbection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcrumbection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subcrumbection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcrumbection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"crumb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crumb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"subcrumb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcrumb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"thecrumbi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubcrumbi\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/crumbs#c\": [\n      \"dry\",\n      \"increment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/crumbs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cryptocode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsfonts\",\n      \"if\": \"probability\"\n    },\n    {\n      \"name\": \"amsfonts\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"centernot\",\n      \"if\": \"logic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sample\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"floor\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tfloor\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tfloor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tceil\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Angle\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Angle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tAngle\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tAngle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabs\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tnorm\",\n      \"if\": \"operators\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"concat\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"emptystring\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"argmax\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"argmin\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"pindist\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"sindist\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"cindist\",\n      \"if\": \"operators\"\n    },\n    {\n      \"name\": \"adversary\",\n      \"if\": \"adversary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adversary{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"bdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"cdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"ddv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"edv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"mdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"pdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"rdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"sdv\",\n      \"if\": \"adversary\"\n    },\n    {\n      \"name\": \"bigO\",\n      \"if\": \"landau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigO{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"smallO\",\n      \"if\": \"landau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallO{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bigOmega\",\n      \"if\": \"landau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigOmega{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"smallOmega\",\n      \"if\": \"landau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallOmega{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bigTheta\",\n      \"if\": \"landau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigTheta{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"orderOf\",\n      \"if\": \"landau\"\n    },\n    {\n      \"name\": \"probname\",\n      \"if\": \"probability\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expectationname\",\n      \"if\": \"probability\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportname\",\n      \"if\": \"probability\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprob\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tprob{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"prob\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prob{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tprobsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tprobsub{${1:sub%formula}}{${2:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"probsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"probsub{${1:sub%formula}}{${2:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"probsublong\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"probsublong{${1:sub%formula}}{${2:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondprob\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcondprob{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condprob\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condprob{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondprobsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tcondprobsub{${1:sub%formula}}{${2:arg%formula}}{${3:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condprobsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"condprobsub{${1:sub%formula}}{${2:arg%formula}}{${3:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"texpect\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texpect{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"expect\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expect{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"texpsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texpsub{${1:sub%formula}}{${2:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"expsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expsub{${1:sub%formula}}{${2:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondexp\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcondexp{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condexp\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condexp{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondexpsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tcondexpsub{${1:sub%formula}}{${2:arg%formula}}{${3:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condexpsub\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"condexpsub{${1:sub%formula}}{${2:arg%formula}}{${3:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"supp\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supp{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"entropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropy{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condentropy{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"minentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minentropy{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tminentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tminentropy{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condminentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condminentropy{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondminentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcondminentropy{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"condavgminentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condavgminentropy{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcondavgminentropy\",\n      \"if\": \"probability\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcondavgminentropy{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"NN\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"ZZ\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"CC\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"QQ\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"RR\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"PP\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"FF\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"GG\",\n      \"if\": \"sets\"\n    },\n    {\n      \"name\": \"set\",\n      \"if\": \"sets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sequence\",\n      \"if\": \"sets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequence{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bin\",\n      \"if\": \"sets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bin{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"indcpa\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"indcca\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"indccai\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"indccaii\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"priv\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"ind\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"indcda\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"prvcda\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"prvrcda\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"kiae\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"kdae\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"mle\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"uce\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"eufcma\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"eufnacma\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"seufcma\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"eufko\",\n      \"if\": \"notions\"\n    },\n    {\n      \"name\": \"AND\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"OR\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"NOR\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"NOT\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"NAND\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"XOR\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"XNOR\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"xor\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"false\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"true\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"notimplies\",\n      \"if\": \"logic\"\n    },\n    {\n      \"name\": \"kgen\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"pgen\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"eval\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"invert\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"il\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"ol\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"kl\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"nl\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"rl\",\n      \"if\": \"ff\"\n    },\n    {\n      \"name\": \"CRKT\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"TM\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"PROG\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"uTM\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"uC\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"uP\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"csize\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"tmtime\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"ppt\",\n      \"if\": \"mm\"\n    },\n    {\n      \"name\": \"pcadvantagesuperstyle\",\n      \"if\": \"advantage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcadvantagesuperstyle{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcadvantagesubstyle\",\n      \"if\": \"advantage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcadvantagesubstyle{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcadvantagename\",\n      \"if\": \"advantage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advantage\",\n      \"if\": \"advantage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"advantage{${1:sup%formula}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"advantage\",\n      \"if\": \"advantage\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"advantage{${1:sup%formula}}{${2:sub%formula}}[${3:arg%formula}]\"\n      }\n    },\n    {\n      \"name\": \"prover\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"verifier\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"nizk\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"hash\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"gash\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"fash\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"pad\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"enc\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"dec\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"sig\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"sign\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"verify\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"obf\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"iO\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"diO\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"owf\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"owp\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"tdf\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"inv\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"hcf\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"prf\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"prp\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"prg\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"mac\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"puncture\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"source\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"predictor\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"sam\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"dist\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"distinguisher\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"simulator\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"ext\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"extractor\",\n      \"if\": \"primitives\"\n    },\n    {\n      \"name\": \"Oracle\",\n      \"if\": \"oracles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Oracle{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"oracle\",\n      \"if\": \"oracles\"\n    },\n    {\n      \"name\": \"oracle\",\n      \"if\": \"oracles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oracle[${1:arg%formula}]\"\n      }\n    },\n    {\n      \"name\": \"ro\",\n      \"if\": \"oracles\"\n    },\n    {\n      \"name\": \"event\",\n      \"if\": \"events\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"event{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nevent\",\n      \"if\": \"events\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nevent{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bad\",\n      \"if\": \"events\"\n    },\n    {\n      \"name\": \"nbad\",\n      \"if\": \"events\"\n    },\n    {\n      \"name\": \"complclass\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"complclass{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cocomplclass\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cocomplclass{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"npol\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"conpol\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"pol\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"bpp\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"ppoly\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"AM\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"coAM\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"AC\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AC{${1:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"NC\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NC{${1:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TC{${1:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PH\",\n      \"if\": \"complexity\"\n    },\n    {\n      \"name\": \"csigma\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csigma{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cpi\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpi{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cosigma\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosigma{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"copi\",\n      \"if\": \"complexity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copi{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"negl\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"negl\",\n      \"if\": \"asymptotics\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"negl[${1:arg}]\"\n      }\n    },\n    {\n      \"name\": \"poly\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"poly\",\n      \"if\": \"asymptotics\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"poly[${1:arg}]\"\n      }\n    },\n    {\n      \"name\": \"pp\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"pp\",\n      \"if\": \"asymptotics\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pp[${1:arg%formula}]\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"ee\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"kk\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"nn\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"qq\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"rr\",\n      \"if\": \"asymptotics\"\n    },\n    {\n      \"name\": \"pk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"vk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"sk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"key\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"key\",\n      \"if\": \"keys\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"key[${1:arg%formula}]\"\n      }\n    },\n    {\n      \"name\": \"hk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"gk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"fk\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"st\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"state\",\n      \"if\": \"keys\"\n    },\n    {\n      \"name\": \"state\",\n      \"if\": \"keys\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"state[${1:arg%formula}]\"\n      }\n    },\n    {\n      \"name\": \"SECPAR\"\n    },\n    {\n      \"name\": \"secpar\"\n    },\n    {\n      \"name\": \"secparam\"\n    },\n    {\n      \"name\": \"pseudocode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudocode{${1:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pseudocode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pseudocode[${2:options%keyvals}]{${1:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudocodeblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudocodeblock{${1:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pseudocodeblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pseudocodeblock[${2:options%keyvals}]{${1:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"procedure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"procedure{${1:header%text}}{${2:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"procedure\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"procedure[${3:options%keyvals}]{${1:header%text}}{${2:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"procedureblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"procedureblock{${1:header%text}}{${2:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"procedureblock\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"procedureblock[${3:options%keyvals}]{${1:header%text}}{${2:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"createpseudocodecommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"createpseudocodecommand{${1:csname}}{${2:begin code}}{${3:head prefix}}{${4:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"createpseudocodeblock\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"createpseudocodeblock{${1:csname}}{${2:stack options}}{${3:begin code}}{${4:head prefix}}{${5:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"createprocedurecommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"createprocedurecommand{${1:csname}}{${2:begin code}}{${3:head prefix}}{${4:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"createprocedureblock\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"createprocedureblock{${1:csname}}{${2:stack options}}{${3:begin code}}{${4:head prefix}}{${5:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"pcminlineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcind\"\n    },\n    {\n      \"name\": \"pcind\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcind[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"t\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"t[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"pcindentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcif\"\n    },\n    {\n      \"name\": \"pcif\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcif[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pcfor\"\n    },\n    {\n      \"name\": \"pcfor\"\n    },\n    {\n      \"name\": \"pcwhile\"\n    },\n    {\n      \"name\": \"pcrepeat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcrepeat{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcrepeatuntil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcrepeatuntil{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcforeach\"\n    },\n    {\n      \"name\": \"pcfi\"\n    },\n    {\n      \"name\": \"pcendif\"\n    },\n    {\n      \"name\": \"pcendfor\"\n    },\n    {\n      \"name\": \"pcendwhile\"\n    },\n    {\n      \"name\": \"pcuntil\"\n    },\n    {\n      \"name\": \"pcendforeach\"\n    },\n    {\n      \"name\": \"pcelse\"\n    },\n    {\n      \"name\": \"pcelse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcelse[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pcelseif\"\n    },\n    {\n      \"name\": \"pcelseif\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcelseif[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pcabort\"\n    },\n    {\n      \"name\": \"pcassert\"\n    },\n    {\n      \"name\": \"pccontinue\"\n    },\n    {\n      \"name\": \"pccomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pccomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pccomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pccomment[${2:skip%l}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pclinecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pclinecomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pclinecomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pclinecomment[${2:skip%l}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pcdo\"\n    },\n    {\n      \"name\": \"pcdo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcdo[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"pcdo\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pcdo[${1:prefix}][${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pcdone\"\n    },\n    {\n      \"name\": \"pcfail\"\n    },\n    {\n      \"name\": \"pcfalse\"\n    },\n    {\n      \"name\": \"pcglobvar\"\n    },\n    {\n      \"name\": \"pcin\"\n    },\n    {\n      \"name\": \"pcin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcin[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"pcin\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pcin[${1:prefix}][${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pcnew\"\n    },\n    {\n      \"name\": \"pcnull\"\n    },\n    {\n      \"name\": \"pcparse\"\n    },\n    {\n      \"name\": \"pcreturn\"\n    },\n    {\n      \"name\": \"pcthen\"\n    },\n    {\n      \"name\": \"pcthen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcthen[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"pcthen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pcthen[${1:prefix}][${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"pctrue\"\n    },\n    {\n      \"name\": \"highlightkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlightkeyword{${1:word%formula}}\"\n      }\n    },\n    {\n      \"name\": \"highlightkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"highlightkeyword[${2:suffix}]{${1:word%formula}}\"\n      }\n    },\n    {\n      \"name\": \"highlightaltkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlightaltkeyword{${1:word%formula}}\"\n      }\n    },\n    {\n      \"name\": \"highlightaltkeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"highlightaltkeyword[${2:suffix}]{${1:word%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcskipln\"\n    },\n    {\n      \"name\": \"pcln\"\n    },\n    {\n      \"name\": \"pclnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pclnstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pclnstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pchspace\"\n    },\n    {\n      \"name\": \"pchspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pchspace[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"pcvspace\"\n    },\n    {\n      \"name\": \"pcvspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcvspace[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"pcvstackspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pchstackspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcsetargs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcsetargs{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcsethstackargs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcsethstackargs{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pchstack},\\\\begin{pcvstack},\\\\pcsethstackargs,\\\\pcsetvstackargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcsetvstackargs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcsetvstackargs{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pchstack},\\\\begin{pcvstack},\\\\pcsethstackargs,\\\\pcsetvstackargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcnode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcnode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcnode\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pcnode{${1:text%plain}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"pcdraw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcdraw{${1:TikZ commands}}\"\n      }\n    },\n    {\n      \"name\": \"pcdraw\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pcdraw{${1:TikZ commands}}[${2:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"pctabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcdbltabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sendmessageright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendmessageright{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sendmessageright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendmessageright[${2:TikZ keys}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sendmessageright*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendmessageright*{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageright*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendmessageright*[${2:length}]{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendmessageleft{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sendmessageleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendmessageleft[${2:TikZ keys}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sendmessageleft*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendmessageleft*{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleft*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendmessageleft*[${2:length}]{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessagerightleft*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendmessagerightleft*{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessagerightleft*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendmessagerightleft*[${2:length}]{${1:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sendmessage{${1:TikZ keys}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sendmessage*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sendmessage*{${1:TikZ keys}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sendmessagerightx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sendmessagerightx{${1:columnspan}}{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessagerightx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sendmessagerightx{${1:columnspan}}[${3:below%formula}]{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessagerightx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sendmessagerightx[${3:length}]{${1:columnspan}}{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessagerightx\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"sendmessagerightx[${3:length}]{${1:columnspan}}[${4:below%formula}]{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleftx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sendmessageleftx{${1:columnspan}}{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleftx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sendmessageleftx{${1:columnspan}}[${3:below%formula}]{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleftx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sendmessageleftx[${3:length}]{${1:columnspan}}{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendmessageleftx\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"sendmessageleftx[${3:length}]{${1:columnspan}}[${4:below%formula}]{${2:message%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcintertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcintertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pcintertext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcintertext[${2:dotted|center}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pclb\"\n    },\n    {\n      \"name\": \"pclnr\"\n    },\n    {\n      \"name\": \"pcrln\"\n    },\n    {\n      \"name\": \"pclnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcrlnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pclnspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pclnrspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gameprocedure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gameprocedure{${1:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"gameprocedure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gameprocedure[${2:options%keyvals}]{${1:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcgame\"\n    },\n    {\n      \"name\": \"pcgame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pcgame[${1:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"gamechange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gamechange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gamechange\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gamechange[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbxgameprocedure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbxgameprocedure{${1:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tbxgameprocedure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tbxgameprocedure[${2:options%keyvals}]{${1:body%formula}}\",\n        \"keys\": [\n          \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcbox{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"addgamehop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addgamehop{${1:start}}{${2:end}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"addstartgamehop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addstartgamehop{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addstartgamehop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addstartgamehop[${2:first game}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addendgamehop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addendgamehop{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addendgamehop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addendgamehop[${2:last game}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pcgamename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gameprocedurearg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxgameprocedure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bxgameprocedure{${1:number}}{${2:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bxgameprocedure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bxgameprocedure[${3:options}]{${1:number}}{${2:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"addloopgamehop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addloopgamehop{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addloopgamehop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addloopgamehop[${2:number}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"describegame\"\n    },\n    {\n      \"name\": \"describegame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"describegame[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrinput{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"bbrinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bbrinput{${1:input}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"bbroutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbroutput{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"bbroutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bbroutput{${1:output}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"bbrmsgto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrmsgto{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrmsgfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrmsgfrom{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrmsgtofrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrmsgtofrom{${1:to options%keyvals}}{${2:from options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrmsgfromto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrmsgfromto{${1:from options%keyvals}}{${2:to options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqryto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrqryto{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqryfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrqryfrom{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqrytofrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrqrytofrom{${1:to options%keyvals}}{${2:from options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqryfromto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrqryfromto{${1:from options%keyvals}}{${2:to options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrfirstmessageoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrmsgvdots\"\n    },\n    {\n      \"name\": \"bbrmsgvdots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bbrmsgvdots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqryvdots\"\n    },\n    {\n      \"name\": \"bbrqryvdots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bbrqryvdots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrmsgspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrmsgspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"bbrqryspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrqryspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"bbrloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bbrloop{${1:beginloop}}{${2:endloop}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrloop\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"bbrmsgtxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrmsgtxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bbrmsgtxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bbrmsgtxt[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrqrytxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrqrytxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bbrqrytxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bbrqrytxt[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracleqryfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbroracleqryfrom{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracleqryto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbroracleqryto{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracleqrytofrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbroracleqrytofrom{${1:to options%keyvals}}{${2:from options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracleqryfromto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbroracleqryfromto{${1:from options%keyvals}}{${2:to options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracleqryspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbroracletxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbroracletxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bbroracletxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bbroracletxt[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrchallengerqryfrom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrchallengerqryfrom{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrchallengerqryto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrchallengerqryto{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrchallengerqrytofrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrchallengerqrytofrom{${1:to options%keyvals}}{${2:from options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrchallengerqryfromto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bbrchallengerqryfromto{${1:from options%keyvals}}{${2:to options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrchallengerqryspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrchallengerqryspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"bbrchallengertxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbrchallengertxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bbrchallengertxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bbrchallengertxt[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addbxgamehop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addbxgamehop{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"bbrboxabovesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxafterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxminheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxminwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxnamepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxnamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxxshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrboxyshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrchallengerhdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrchallengernodenameprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrchallengervdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopcenterstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopleftstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomloopright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrcomlooprightstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrenvnodenameprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputbottomstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputedgestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputhoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputnodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputnodestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrinputtopstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrintertexthoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbroraclehdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbroraclenodenameprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbroraclevdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrtikzargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerincol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerincol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pcadvstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcadvstyle{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcafterhstackskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcaftermessageskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcalgostyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcalgostyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcbeforehstackskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcbeforemessageskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pccomplexitystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pccomplexitystyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcdefaultlongmessagelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcdefaultmessagelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcfixcleveref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcfixhyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcgameprocedurestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcgameprocedurestyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pckeystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pckeystyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcmachinemodelstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcmachinemodelstyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcmessagearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcnotionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcnotionstyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcolb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcoraclestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcoraclestyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcpolynomialstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcpolynomialstyle{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcsetstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcsetstyle{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcshortmessageoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpcgamecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpclinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpcrlinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepccolumncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepcgamecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepclinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepcrlinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepcstartgamecounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subprocedure\"\n    },\n    {\n      \"name\": \"pchstack\"\n    },\n    {\n      \"name\": \"pchstack\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pchstack},\\\\begin{pcvstack},\\\\pcsethstackargs,\\\\pcsetvstackargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcvstack\"\n    },\n    {\n      \"name\": \"pcvstack\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pchstack},\\\\begin{pcvstack},\\\\pcsethstackargs,\\\\pcsetvstackargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcmbox\"\n    },\n    {\n      \"name\": \"pcimage\"\n    },\n    {\n      \"name\": \"gameproof\"\n    },\n    {\n      \"name\": \"gameproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gameproof},\\\\begin{gamedescription}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gamedescription\"\n    },\n    {\n      \"name\": \"gamedescription\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gameproof},\\\\begin{gamedescription}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"bbrenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\begin{bbrenv}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbrbox\"\n    },\n    {\n      \"name\": \"bbrbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{bbrbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bbroracle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"bbroracle\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:id}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{bbroracle},\\\\begin{bbrchallenger}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bbrchallenger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"bbrchallenger\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:id}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{bbroracle},\\\\begin{bbrchallenger}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bbrpic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrpic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"pccenter\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cryptocode#c\": [\n      \"operators\",\n      \"adversary\",\n      \"landau\",\n      \"probability\",\n      \"sets\",\n      \"noamsfonts\",\n      \"notions\",\n      \"logic\",\n      \"ff\",\n      \"mm\",\n      \"advantage\",\n      \"primitives\",\n      \"oracles\",\n      \"events\",\n      \"complexity\",\n      \"asymptotics\",\n      \"keys\",\n      \"n\",\n      \"lambda\"\n    ],\n    \"\\\\pseudocode,\\\\pseudocodeblock,\\\\procedure,\\\\procedureblock,\\\\createpseudocodecommand,\\\\createpseudocodeblock,\\\\createprocedurecommand,\\\\createprocedureblock,\\\\pcsetargs,\\\\gameprocedure,\\\\tbxgameprocedure\": [\n      \"skipfirstln\",\n      \"headlinesep=\",\n      \"bodylinesep=\",\n      \"headheight=\",\n      \"beginline=${1:code}\",\n      \"endline=${1:code}\",\n      \"jot=\",\n      \"codesize=${1:size cmd}\",\n      \"subcodesize=${1:size cmd}\",\n      \"head=${1:header}\",\n      \"width=\",\n      \"valign=${1:alignment}\",\n      \"xshift=\",\n      \"yshift=\",\n      \"colspace=\",\n      \"linenumbering\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"lnstart=${1:line number}\",\n      \"lnstartright=${1:line number}\",\n      \"colsep=\",\n      \"headlinecmd=${1:cmd}\",\n      \"addtolength=\",\n      \"nodraft\",\n      \"keywords={${1:word1,word2,...}}\",\n      \"keywordsindent={${1:word1,word2,...}}\",\n      \"keywordsunindent={${1:word1,word2,...}}\",\n      \"keywordsuninindent={${1:word1,word2,...}}\",\n      \"addkeywords={${1:word1,word2,...}}\",\n      \"altkeywords={${1:word1,word2,...}}\",\n      \"syntaxhighlight=auto\",\n      \"mode=${1|text,math|}\",\n      \"minlineheight=\",\n      \"space=${1|keep,auto|}\"\n    ],\n    \"\\\\begin{pchstack},\\\\begin{pcvstack},\\\\pcsethstackargs,\\\\pcsetvstackargs\": [\n      \"center\",\n      \"boxed\",\n      \"noindent\",\n      \"inline\",\n      \"space=\",\n      \"aboveskip=\",\n      \"belowskip=\"\n    ],\n    \"\\\\sendmessageright,\\\\sendmessageleft,\\\\sendmessage#c,\\\\sendmessage*#c\": [\n      \"centercol=${1:column number}\",\n      \"width=\",\n      \"style={${1:TikZ keys}}\",\n      \"length=\",\n      \"top={${1:content}}\",\n      \"bottom={${1:content}}\",\n      \"right={${1:content}}\",\n      \"left={${1:content}}\",\n      \"topname=${1:name}\",\n      \"bottomname=${1:name}\",\n      \"rightname=${1:name}\",\n      \"leftname=${1:name}\",\n      \"topstyle={${1:TikZ keys}}\",\n      \"bottomstyle={${1:TikZ keys}}\",\n      \"rightstyle={${1:TikZ keys}}\",\n      \"leftstyle={${1:TikZ keys}}\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"topaligned\",\n      \"bottomaligned\",\n      \"leftaligned\",\n      \"rightaligned\"\n    ],\n    \"\\\\begin{gameproof},\\\\begin{gamedescription}\": [\n      \"nr=${1:number}\",\n      \"name=${1:name}\",\n      \"arg=${1:argument}\"\n    ],\n    \"\\\\addgamehop,\\\\addstartgamehop,\\\\addendgamehop,\\\\addloopgamehop,\\\\describegame\": [\n      \"hint=${1:text}\",\n      \"belowhint=${1:text}\",\n      \"inhint=${1:text}\",\n      \"length=\",\n      \"nodestyle={${1:TikZ keys}}\",\n      \"edgestyle={${1:TikZ keys}}\",\n      \"pathstyle={${1:TikZ keys}}\"\n    ],\n    \"\\\\begin{bbrenv}\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"tikzargs={${1:TikZ keys}}\"\n    ],\n    \"\\\\begin{bbrbox}\": [\n      \"abovesep=\",\n      \"name=${1:name}\",\n      \"namestyle={${1:TikZ keys}}\",\n      \"namepos=${1|left,center,right,top left,top center,top right,middle|}\",\n      \"style={${1:TikZ keys}}\",\n      \"minwidth=\",\n      \"addheight=\",\n      \"minheight=\",\n      \"xshift=\",\n      \"yshift=\"\n    ],\n    \"\\\\bbrmsgto,\\\\bbrmsgfrom,\\\\bbrmsgtofrom,\\\\bbrmsgfromto,\\\\bbrqryto,\\\\bbrqryfrom,\\\\bbrqrytofrom,\\\\bbrqryfromto,\\\\bbroracleqryfrom,\\\\bbroracleqryto,\\\\bbroracleqrytofrom,\\\\bbroracleqryfromto,\\\\bbrchallengerqryfrom,\\\\bbrchallengerqryto,\\\\bbrchallengerqrytofrom,\\\\bbrchallengerqryfromto\": [\n      \"sidestyle={${1:TikZ keys}}\",\n      \"osidestyle={${1:TikZ keys}}\",\n      \"topstyle={${1:TikZ keys}}\",\n      \"bottomstyle={${1:TikZ keys}}\",\n      \"side=${1:side label}\",\n      \"oside=${1:other side label}\",\n      \"top=${1:top label}\",\n      \"bottom=${1:bottom label}\",\n      \"edgestyle={${1:TikZ keys}}\",\n      \"length=\",\n      \"topname=${1:name}\",\n      \"bottomname=${1:name}\",\n      \"sidename=${1:name}\",\n      \"osidename=${1:name}\",\n      \"beforeskip=\",\n      \"aboveskip=\",\n      \"afterskip=\",\n      \"belowskip=\",\n      \"fixedoffset=\",\n      \"fixedboffset=\",\n      \"islast\"\n    ],\n    \"\\\\bbrloop\": [\n      \"left=${1:left label}\",\n      \"leftstyle={${1:TikZ keys}}\",\n      \"right=${1:right label}\",\n      \"rightstyle={${1:TikZ keys}}\",\n      \"center=${1:center label}\",\n      \"centerstyle={${1:TikZ keys}}\",\n      \"angle=${1:degrees}\",\n      \"clockwise\"\n    ],\n    \"\\\\bbrmsgtxt,\\\\bbrqrytxt,\\\\bbrmsgvdots,\\\\bbrqryvdots,\\\\bbroracletxt,\\\\bbrchallengertxt\": [\n      \"sidestyle={${1:TikZ keys}}\",\n      \"osidestyle={${1:TikZ keys}}\",\n      \"topstyle={${1:TikZ keys}}\",\n      \"bottomstyle={${1:TikZ keys}}\",\n      \"side=${1:side label}\",\n      \"oside=${1:other side label}\",\n      \"top=${1:top label}\",\n      \"bottom=${1:bottom label}\",\n      \"edgestyle={${1:TikZ keys}}\",\n      \"length=\",\n      \"topname=${1:name}\",\n      \"bottomname=${1:name}\",\n      \"sidename=${1:name}\",\n      \"osidename=${1:name}\",\n      \"beforeskip=\",\n      \"aboveskip=\",\n      \"afterskip=\",\n      \"belowskip=\",\n      \"fixedoffset=\",\n      \"fixedboffset=\",\n      \"islast\",\n      \"nodestyle={${1:TikZ keys}}\",\n      \"nodename=${1:name}\",\n      \"xshift=\"\n    ],\n    \"\\\\begin{bbroracle},\\\\begin{bbrchallenger}\": [\n      \"distance=\",\n      \"hdistance=\",\n      \"vdistance=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cryptocode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/csquotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enquote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enquote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignquote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textquote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textquote[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textquote*[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textquote[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textquote*[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreigntextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphentextquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blockquote[${2:manual citation}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"blockquote[${2:manual citation}][${3:punct}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreignblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"foreignblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphenblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hyphenblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}[${3:manual citation}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hybridblockquote{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockquote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"hybridblockquote*{${1:language}}[${3:manual citation}][${4:punct}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setquotestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setquotestyle[${2:variant}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setquotestyle{${1:alias}}\"\n      }\n    },\n    {\n      \"name\": \"setquotestyle*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeOuterQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeOuterQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeInnerQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeInnerQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAutoQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAutoQuote{${1:character 1}}{${2:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeAutoQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeAutoQuote*{${1:character 1}}{${2:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeForeignQuote{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeForeignQuote*{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeHyphenQuote{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenQuote*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeHyphenQuote*{${1:language}}{${2:character 1}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeBlockQuote{${1:character 1}}{${2:delimiter}}{${3:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeForeignBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeForeignBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHyphenBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeHyphenBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeHybridBlockQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeHybridBlockQuote{${1:language}}{${2:character 1}}{${3:delimiter}}{${4:character 2}}\"\n      }\n    },\n    {\n      \"name\": \"EnableQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisableQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeleteQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcquote{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcquote[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcquote*{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcquote*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcquote*[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreigntextcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreigntextcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreigntextcquote*{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreigntextcquote*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreigntextcquote*{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphentextcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphentextcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphentextcquote*{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphentextcquote*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphentextcquote*{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blockcquote{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockcquote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"blockcquote[${3:prenote}]{${1:bibid}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreignblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"foreignblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyphenblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hyphenblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockcquote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hybridblockcquote{${1:language}}{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hybridblockcquote\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"hybridblockcquote{${1:language}}[${4:prenote}]{${2:bibid}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"textelp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"textelp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textelp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textelp*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textins*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textins*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareQuoteStyle{${1:style}}{${2:openoutermark}}{${3:closeoutermark}}{${4:openinnermark}}{${5:closeinnermark}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}[]{}{}[]{}\",\n        \"snippet\": \"DeclareQuoteStyle[${6:variant}]{${1:style}}[${7:outerinit}][${8:innerinit}]{${2:openouter}}[${9:midouter}]{${3:closeouter}}{${4:openinner}}[${10:midinner}]{${5:closeinner}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteAlias{${1:style}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareQuoteAlias[${3:variant}]{${1:style}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteAlias{${1:first-level alias}}{${2:second-level alias}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareQuoteOption{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteQuoteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteQuoteOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePlainStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclarePlainStyle{${1:openoutermark}}{${2:closeoutermark}}{${3:openinnermark}}{${4:closeinnermark}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockThreshold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockThreshold{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBlockEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SetCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCiteCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"mkcitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkcitation{${1:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkccitation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkccitation{${1:cite code}}\"\n      }\n    },\n    {\n      \"name\": \"mktextquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mktextquote{${1:open}}{${2:text}}{${3:close}}{${4:punct}}{${5:tpunct}}{${6:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mkblockquote{${1:text}}{${2:punct}}{${3:tpunct}}{${4:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkbegdispquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkbegdispquote{${1:punct}}{${2:cite}}\"\n      }\n    },\n    {\n      \"name\": \"mkenddispquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mkenddispquote{${1:punct}}{${2:cite}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpunctmark{${1:character}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpunct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifterm{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextpunctmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iftextpunctmark{${1:text}}{${2:character}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftextpunct{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftextterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftextterm{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblockquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifblockquote{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"unspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAutoPunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAutoPunct{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"mktextelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mktextelpins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextelpins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextinselp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextinselp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextmod{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mktextdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mktextdel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BlockquoteDisable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlockquoteDisable{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuoteGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareQuoteGlyph{${1:encoding}}{${2:position}}\"\n      }\n    },\n    {\n      \"name\": \"openautoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeautoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openinnerquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeinnerquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textooquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textoiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textciquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initoquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initiquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csqQQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqQQ{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQbeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQbeg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQend{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQsep{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"csqBQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csqBQ{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"initfrenchquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkfrenchopenquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfrenchopenquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkfrenchclosequote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkfrenchclosequote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fixligatures\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"displayquote\"\n    },\n    {\n      \"name\": \"displayquote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"displayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:manual citation}][${2:punct}]\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}][${3:punct}]\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}]\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplayquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:language}}[${2:manual citation}][${3:punct}]\"\n      }\n    },\n    {\n      \"name\": \"displaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"displaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"foreigndisplaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplaycquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"hyphendisplaycquote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:prenote}]{${1:bibid}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\": [\n      \"strict\",\n      \"style=${1:style}\",\n      \"autostyle=${1|true,false,try,once,tryonce|}\",\n      \"maxlevel=${1:integer}\",\n      \"autopunct\",\n      \"threshold=${1:integer}\",\n      \"thresholdtype=${1|lines,words|}\",\n      \"parthreshold\",\n      \"splitcomp\",\n      \"csdisplay\",\n      \"debug\",\n      \"version=${1:version}\",\n      \"austrian=${1|quotes,guillemets|}\",\n      \"croatian=${1|quotes,guillemets|}\",\n      \"czech=${1|quotes,guillemets|}\",\n      \"danish=${1|quotes,guillemets,topquotes|}\",\n      \"english=${1|american,british|}\",\n      \"estonian\",\n      \"french=${1|quotes,quotes*,guillemets,guillemets*|}\",\n      \"galician=${1|quotes,guillemets|}\",\n      \"german=${1|quotes,guillemets,swiss|}\",\n      \"hungarian\",\n      \"italian=${1|guillemets,quotes|}\",\n      \"latin=${1|italianguillemets,germanquotes,germanguillemets,britishquotes,americanquotes|}\",\n      \"japanese\",\n      \"latvian\",\n      \"norwegian=${1|guillemets,quotes|}\",\n      \"polish=${1|guillemets,guillemets*|}\",\n      \"portuguese=${1|portuguese,brazilian|}\",\n      \"romanian\",\n      \"serbian=${1|quotes,guillemets,german|}\",\n      \"slovenian=${1|quotes,guillemets|}\",\n      \"spanish=${1|spanish,mexican|}\",\n      \"swedish=${1|quotes,guillemets,guillemets*|}\",\n      \"turkish=${1|quotes,guillemets|}\",\n      \"ukrainian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/csquotes#c,\\\\ExecuteQuoteOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/css-colors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cstypo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cstypoSingleLetterEnable\"\n    },\n    {\n      \"name\": \"cstypoSingleLetterDisable\"\n    },\n    {\n      \"name\": \"cstypoALetterEnable\"\n    },\n    {\n      \"name\": \"cstypoALetterDisable\"\n    },\n    {\n      \"name\": \"cstypoPercentsEnable\"\n    },\n    {\n      \"name\": \"cstypoPercentsDisable\"\n    },\n    {\n      \"name\": \"cstypoParagraphEnable\"\n    },\n    {\n      \"name\": \"cstypoParagraphDisable\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/csvmerge.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mergeFields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mergeFields{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"Field\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Field{${1:field name}}\"\n      }\n    },\n    {\n      \"name\": \"ifFieldEmpty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifFieldEmpty{${1:field name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"setDelimitersCommaQuote\"\n    },\n    {\n      \"name\": \"setDelimitersTabQuote\"\n    },\n    {\n      \"name\": \"makeMePublic\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/csvsimple-l3.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"csvreader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"csvreader{${1:file}}{${2:assignments%definition}}{${3:command list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"csvreader\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"csvreader[${4:options%keyvals}]{${1:file}}{${2:assignments%definition}}{${3:command list%definition}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\",\n          \"\\\\csvreader,\\\\csvloop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvcoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcolii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcoliii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcoliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcolv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvloop{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\",\n          \"\\\\csvreader,\\\\csvloop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautotabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautotabular{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautotabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautotabular[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautotabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautotabular*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautotabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautotabular*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautolongtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautolongtable{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautolongtable[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautolongtable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautolongtable*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtable*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautolongtable*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooktabular{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooktabular[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooktabular*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooktabular*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooklongtable{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooklongtable[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooklongtable*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooklongtable*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautotabularray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautotabularray{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautotabularray\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"csvautotabularray{${1:file}}[${2:taboptions1}]\"\n      }\n    },\n    {\n      \"name\": \"csvautotabularray\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"csvautotabularray{${1:file}}[${2:taboptions1}][${3:taboptions2}]\"\n      }\n    },\n    {\n      \"name\": \"csvautotabularray*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautotabularray*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautotabularray*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"csvautotabularray*{${1:file}}[${2:taboptions1}]\"\n      }\n    },\n    {\n      \"name\": \"csvautotabularray*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"csvautotabularray*{${1:file}}[${2:taboptions1}][${3:taboptions2}]\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautolongtabularray{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"csvautolongtabularray{${1:file}}[${2:taboptions1}]\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"csvautolongtabularray{${1:file}}[${2:taboptions1}][${3:taboptions2}]\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautolongtabularray*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"csvautolongtabularray*{${1:file}}[${2:taboptions1}]\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtabularray*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"csvautolongtabularray*{${1:file}}[${2:taboptions1}][${3:taboptions2}]\"\n      }\n    },\n    {\n      \"name\": \"csvset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvstyle{${1:key name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"csvnames\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvnames{${1:key name%specialDef}}{${2:assignments%definition}}\"\n      }\n    },\n    {\n      \"name\": \"csvfilterbool\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvfilterbool{${1:key name%specialDef}}{${2:boolean expr}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvoddrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcsvoddrow{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvfirstrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcsvfirstrow{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"csvfilteraccept\"\n    },\n    {\n      \"name\": \"csvfilterreject\"\n    },\n    {\n      \"name\": \"csvline\"\n    },\n    {\n      \"name\": \"csvlinetotablerow\"\n    },\n    {\n      \"name\": \"thecsvrow\"\n    },\n    {\n      \"name\": \"thecsvcolumncount\"\n    },\n    {\n      \"name\": \"thecsvinputline\"\n    },\n    {\n      \"name\": \"csvsortingrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvsortingrule{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvdatacollection\"\n    },\n    {\n      \"name\": \"csvcollectn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvcollectn{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"csvcollecte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvcollecte{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"csvcollectx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvcollectx{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfCsvsimStrEqualTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfCsvsimStrEqualTF{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvstrcmp{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvnotstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvnotstrcmp{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfCsvsimTlEqualTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfCsvsimTlEqualTF{${1:tokenlistA}}{${2:tokenlistB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvstrequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvstrequal{${1:tokenlistA}}{${2:tokenlistB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfCsvsimTlProtectedEqualTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfCsvsimTlProtectedEqualTF{${1:tokenlistA}}{${2:tokenlistB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvprostrequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvprostrequal{${1:tokenlistA}}{${2:tokenlistB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfCsvsimFpCompareTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfCsvsimFpCompareTF{${1:floating point expr}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvfpcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsvfpcmp{${1:floating point expr}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfCsvsimIntCompareTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfCsvsimIntCompareTF{${1:integer expr}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvintcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsvintcmp{${1:integer expr}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnewline\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautotabular*,\\\\csvautolongtable,\\\\csvautolongtable*,\\\\csvautobooktabular,\\\\csvautobooktabular*,\\\\csvautobooklongtable,\\\\csvautobooklongtable*,\\\\csvautotabularray,\\\\csvautotabularray*,\\\\csvautolongtabularray,\\\\csvautolongtabularray*,\\\\csvset,\\\\csvstyle\": [\n      \"before reading=${1:code}\",\n      \"after head=${1:code}\",\n      \"before filter=${1:code}\",\n      \"after filter=${1:code}\",\n      \"late after head=${1:code}\",\n      \"late after line=${1:code}\",\n      \"late after first line=${1:code}\",\n      \"late after last line=${1:code}\",\n      \"before line=${1:code}\",\n      \"before first line=${1:code}\",\n      \"command=${1:code}\",\n      \"after line=${1:code}\",\n      \"after first line=${1:code}\",\n      \"after reading=${1:code}\",\n      \"head\",\n      \"no head\",\n      \"column names={${1:assignments}}\",\n      \"column names reset\",\n      \"head to column names\",\n      \"head to column names prefix=${1:text}\",\n      \"column names detection\",\n      \"check column count\",\n      \"no check column count\",\n      \"column count=${1:number}\",\n      \"on column count error=${1:code}\",\n      \"warn on column count error\",\n      \"filter strcmp={${1:stringA}}{${2:stringB}}\",\n      \"filter not strcmp={${1:stringA}}{${2:stringB}}\",\n      \"filter equal={${1:stringA}}{${2:stringB}}\",\n      \"filter not equal={${1:stringA}}{${2:stringB}}\",\n      \"filter fp=${1:floating point expr}\",\n      \"filter bool=${1:boolean expr}\",\n      \"and filter strcmp={${1:stringA}}{${2:stringB}}\",\n      \"or filter strcmp={${1:stringA}}{${2:stringB}}\",\n      \"and filter not strcmp={${1:stringA}}{${2:stringB}}\",\n      \"or filter not strcmp={${1:stringA}}{${2:stringB}}\",\n      \"and filter fp=${1:floating point expr}\",\n      \"or filter fp=${1:floating point expr}\",\n      \"and filter bool=${1:boolean expr}\",\n      \"or filter bool=${1:boolean expr}\",\n      \"filter test=${1:condition}\",\n      \"filter ifthen=${1:boolean expr}\",\n      \"no filter\",\n      \"filter accept all\",\n      \"filter reject all\",\n      \"full filter=${1:code}\",\n      \"range={${1:range1,range2,...}}\",\n      \"tabular=${1:preamble}\",\n      \"centered tabular=${1:preamble}\",\n      \"longtable=${1:preamble}\",\n      \"tabbing\",\n      \"centered tabbing\",\n      \"tabularray=${1:preamble}\",\n      \"long tabularray=${1:preamble}\",\n      \"centered tabularray=${1:preamble}\",\n      \"no table\",\n      \"before table=${1:code}\",\n      \"table head=${1:code}\",\n      \"table foot=${1:code}\",\n      \"after table=${1:code}\",\n      \"table centered\",\n      \"generic table=${1:name}\",\n      \"generic collected table=${1:name}\",\n      \"generic table options={${1:code}}\",\n      \"respect tab\",\n      \"respect percent\",\n      \"respect sharp\",\n      \"respect dollar\",\n      \"respect and\",\n      \"respect backslash\",\n      \"respect underscore\",\n      \"respect tilde\",\n      \"respect circumflex\",\n      \"respect leftbrace\",\n      \"respect rightbrace\",\n      \"respect all\",\n      \"respect none\",\n      \"separator=${1|comma,semicolon,pipe,tab,space|}\",\n      \"file=${1:file}\",\n      \"preprocessed file=${1:file}\",\n      \"preprocessor=${1:macro}\",\n      \"no preprocessing\",\n      \"csvsorter command=${1:system command}\",\n      \"csvsorter configpath=${1:path}\",\n      \"csvsorter log=${1:file}\",\n      \"csvsorter token=${1:file}\",\n      \"sort by=${1:file}\",\n      \"new sorting rule={${1:name}}{${2:file}}\",\n      \"collect data\",\n      \"consume collected data\",\n      \"data collection=${1:macro}\",\n      \"%csvstyle\"\n    ],\n    \"\\\\csvreader,\\\\csvloop\": [\n      \"autotabular=${1:file}\",\n      \"autotabular*=${1:file}\",\n      \"autolongtable=${1:file}\",\n      \"autolongtable*=${1:file}\",\n      \"autobooktabular=${1:file}\",\n      \"autobooktabular*=${1:file}\",\n      \"autobooklongtable=${1:file}\",\n      \"autobooklongtable*=${1:file}\",\n      \"autotabularray=${1:file}\",\n      \"autotabularray*=${1:file}\",\n      \"autolongtabularray=${1:file}\",\n      \"autolongtabularray*=${1:file}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/csvsimple-legacy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"csvreader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"csvreader{${1:file}}{${2:assignments}}{${3:command list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"csvreader\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"csvreader[${4:options%keyvals}]{${1:file}}{${2:assignments}}{${3:command list%definition}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\",\n          \"\\\\csvreader,\\\\csvloop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvcoli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcolii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcoliii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcoliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvcolv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvloop{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\",\n          \"\\\\csvreader,\\\\csvloop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautotabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautotabular{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautotabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautotabular[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautolongtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautolongtable{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautolongtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautolongtable[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooktabular{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooktabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooktabular[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvautobooklongtable{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"csvautobooklongtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvautobooklongtable[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csvstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvstyle{${1:key name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"csvnames\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvnames{${1:key name%specialDef}}{${2:assignments%definition}}\"\n      }\n    },\n    {\n      \"name\": \"csvheadset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvheadset{${1:assignments%definition}}\"\n      }\n    },\n    {\n      \"name\": \"csviffirstrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csviffirstrow{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"csvifoddrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvifoddrow{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"csvfilteraccept\"\n    },\n    {\n      \"name\": \"csvfilterreject\"\n    },\n    {\n      \"name\": \"csvline\"\n    },\n    {\n      \"name\": \"thecsvrow\"\n    },\n    {\n      \"name\": \"thecsvcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecsvinputline\"\n    },\n    {\n      \"name\": \"csvlinetotablerow\"\n    },\n    {\n      \"name\": \"ifcsvstrcmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvstrcmp{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvnotstrcmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvnotstrcmp{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvstrequal{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvprostrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsvprostrequal{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnewline\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\csvreader,\\\\csvloop,\\\\csvautotabular,\\\\csvautolongtable,\\\\csvautobooktabular,\\\\csvautobooklongtable,\\\\csvset,\\\\csvstyle\": [\n      \"before reading=${1:code}\",\n      \"after head=${1:code}\",\n      \"before filter=${1:code}\",\n      \"after filter=${1:code}\",\n      \"late after head=${1:code}\",\n      \"late after line=${1:code}\",\n      \"late after first line=${1:code}\",\n      \"late after last line=${1:code}\",\n      \"before line=${1:code}\",\n      \"before first line=${1:code}\",\n      \"command=${1:code}\",\n      \"after line=${1:code}\",\n      \"after first line=${1:code}\",\n      \"after reading=${1:code}\",\n      \"head\",\n      \"no head\",\n      \"column names={${1:assignments}}\",\n      \"column names reset\",\n      \"head to column names\",\n      \"head to column names prefix=${1:text}\",\n      \"check column count\",\n      \"no check column count\",\n      \"column count=${1:number}\",\n      \"on column count error=${1:code}\",\n      \"warn on column count error\",\n      \"filter test=${1:condition}\",\n      \"filter strcmp={${1:stringA}}{${2:stringB}}\",\n      \"filter not strcmp={${1:stringA}}{${2:stringB}}\",\n      \"filter expr=${1:condition}\",\n      \"filter ifthen=${1:boolean expr}\",\n      \"filter=${1:condition}\",\n      \"filter equal={${1:stringA}}{${2:stringB}}\",\n      \"filter not equal={${1:stringA}}{${2:stringB}}\",\n      \"no filter\",\n      \"filter accept all\",\n      \"filter reject all\",\n      \"full filter=${1:code}\",\n      \"range={${1:range1,range2,...}}\",\n      \"tabular=${1:preamble}\",\n      \"centered tabular=${1:preamble}\",\n      \"longtable=${1:preamble}\",\n      \"tabbing\",\n      \"centered tabbing\",\n      \"no table\",\n      \"before table=${1:code}\",\n      \"table head=${1:code}\",\n      \"table foot=${1:code}\",\n      \"after table=${1:code}\",\n      \"respect tab\",\n      \"respect percent\",\n      \"respect sharp\",\n      \"respect dollar\",\n      \"respect and\",\n      \"respect backslash\",\n      \"respect underscore\",\n      \"respect tilde\",\n      \"respect circumflex\",\n      \"respect leftbrace\",\n      \"respect rightbrace\",\n      \"respect all\",\n      \"respect none\",\n      \"separator=${1|comma,semicolon,pipe,tab|}\",\n      \"every csv/.style={${1:options}}\",\n      \"default/.style={${1:options}}\",\n      \"file=${1:file}\",\n      \"preprocessed file=${1:file}\",\n      \"preprocessor=${1:macro}\",\n      \"no preprocessing\",\n      \"csvsorter command=${1:system command}\",\n      \"csvsorter configpath=${1:path}\",\n      \"csvsorter log=${1:file}\",\n      \"csvsorter token=${1:file}\",\n      \"sort by=${1:file}\",\n      \"new sorting rule={${1:name}}{${2:file}}\",\n      \"%csvstyle\"\n    ],\n    \"\\\\csvreader,\\\\csvloop\": [\n      \"autotabular=${1:file}\",\n      \"autolongtable=${1:file}\",\n      \"autobooktabular=${1:file}\",\n      \"autobooklongtable=${1:file}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/csvsimple.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"csvsimple-legacy\"\n    },\n    {\n      \"name\": \"csvsimple-l3\",\n      \"if\": \"l3\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/csvsimple#c\": [\n      \"l3\",\n      \"legacy\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/csvsimple#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ctable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"transparent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupctable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupctable{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupctable,\\\\ctable\",\n          \"\\\\setupctable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ctable{${1:preamble}}{${2:tnote cmds}}{${3:table}}\"\n      }\n    },\n    {\n      \"name\": \"ctable\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ctable[${4:options%keyvals}]{${1:preamble}}{${2:tnote cmds}}{${3:table}}\",\n        \"keys\": [\n          \"\\\\setupctable,\\\\ctable\",\n          \"\\\\ctable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnote{${1:footnote text}}\"\n      }\n    },\n    {\n      \"name\": \"tnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tnote[${2:label}]{${1:footnote text}}\"\n      }\n    },\n    {\n      \"name\": \"tmark\"\n    },\n    {\n      \"name\": \"tmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tmark[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"NN\"\n    },\n    {\n      \"name\": \"FL\"\n    },\n    {\n      \"name\": \"ML\"\n    },\n    {\n      \"name\": \"LL\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setupctable,\\\\ctable\": [\n      \"bgopacity=\",\n      \"botcap\",\n      \"captionskip=\",\n      \"center\",\n      \"continued\",\n      \"continued=\",\n      \"doinside=${1:code}\",\n      \"figure\",\n      \"footerwidth=\",\n      \"framebg=${1:r g b}\",\n      \"framefg=${1:r g b}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"left\",\n      \"maxwidth=\",\n      \"mincapwidth=\",\n      \"nonotespar\",\n      \"nosideways\",\n      \"nostar\",\n      \"nosuper\",\n      \"notespar\",\n      \"pos=\",\n      \"right\",\n      \"sidecap\",\n      \"sideways\",\n      \"star\",\n      \"super\",\n      \"table\",\n      \"topcap\",\n      \"width=\"\n    ],\n    \"\\\\setupctable\": [\n      \"captionsleft\",\n      \"captionsright\",\n      \"captionsinside\"\n    ],\n    \"\\\\ctable\": [\n      \"caption=${1:text}\",\n      \"cap=${1:short caption text}\",\n      \"label=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ctablestack.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ctex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zhnumber\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CTEXnumberline\",\n      \"if\": \"heading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumberline\",\n      \"if\": \"heading=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTEXnumberline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"songti\"\n    },\n    {\n      \"name\": \"heiti\"\n    },\n    {\n      \"name\": \"fangsong\"\n    },\n    {\n      \"name\": \"kaishu\"\n    },\n    {\n      \"name\": \"lishu\"\n    },\n    {\n      \"name\": \"youyuan\"\n    },\n    {\n      \"name\": \"yahei\"\n    },\n    {\n      \"name\": \"pingfang\"\n    },\n    {\n      \"name\": \"ctexset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctexset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ctexset,\\\\usepackage/ctex#c\",\n          \"\\\\ctexset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CTEXthepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXtheparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXthesubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTEXifname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXifname{${1:contents with name}}{${2:contents with name}}\"\n      }\n    },\n    {\n      \"name\": \"zihao\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zihao{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ziju\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ziju{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"ccwd\"\n    },\n    {\n      \"name\": \"chinese\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chinese{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXnumber{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"CTEXdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CTEXdigits{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"CTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures*[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures*{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKfontspec[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"CJKfontspec{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"defaultCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultCJKfontfeatures{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}[${4:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmainfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmathfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmonofont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKsansfont[${2:font features%keyvals}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}[${2:font features}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ctex#c\": [\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\"\n    ],\n    \"\\\\ctexset,\\\\usepackage/ctex#c\": [\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\"\n    ],\n    \"\\\\ctexset\": [\n      \"linestretch=\",\n      \"today=${1|small,big,old|}\",\n      \"contentsname=${1:name}\",\n      \"listfigurename=${1:name}\",\n      \"listtablename=${1:name}\",\n      \"figurename=${1:name}\",\n      \"tablename=${1:name}\",\n      \"abstractname=${1:name}\",\n      \"indexname=${1:name}\",\n      \"appendixname=${1:name}\",\n      \"bibname=${1:name}\",\n      \"proofname=${1:name}\",\n      \"refname=${1:name}\",\n      \"algorithmname=${1:name}\",\n      \"continuation=${1:name}\",\n      \"part={${1:settings}}\",\n      \"chapter={${1:settings}}\",\n      \"section={${1:settings}}\",\n      \"subsection={${1:settings}}\",\n      \"subsubsection={${1:settings}}\",\n      \"paragraph={${1:settings}}\",\n      \"subparagraph={${1:settings}}\",\n      \"part/numbering\",\n      \"chapter/numbering\",\n      \"section/numbering\",\n      \"subsection/numbering\",\n      \"subsubsection/numbering\",\n      \"paragraph/numbering\",\n      \"subparagraph/numbering\",\n      \"secnumdepth=\",\n      \"part/name=\",\n      \"chapter/name=\",\n      \"section/name=\",\n      \"subsection/name=\",\n      \"subsubsection/name=\",\n      \"paragraph/name=\",\n      \"subparagraph/name=\",\n      \"part/number=\",\n      \"chapter/number=\",\n      \"section/number=\",\n      \"subsection/number=\",\n      \"subsubsection/number=\",\n      \"paragraph/number=\",\n      \"subparagraph/number=\",\n      \"part/format=${1:format commands}\",\n      \"chapter/format=${1:format commands}\",\n      \"section/format=${1:format commands}\",\n      \"subsection/format=${1:format commands}\",\n      \"subsubsection/format=${1:format commands}\",\n      \"paragraph/format=${1:format commands}\",\n      \"subparagraph/format=${1:format commands}\",\n      \"part/format+=${1:format commands}\",\n      \"chapter/format+=${1:format commands}\",\n      \"section/format+=${1:format commands}\",\n      \"subsection/format+=${1:format commands}\",\n      \"subsubsection/format+=${1:format commands}\",\n      \"paragraph/format+=${1:format commands}\",\n      \"subparagraph/format+=${1:format commands}\",\n      \"part/nameformat=${1:format commands}\",\n      \"chapter/nameformat=${1:format commands}\",\n      \"section/nameformat=${1:format commands}\",\n      \"subsection/nameformat=${1:format commands}\",\n      \"subsubsection/nameformat=${1:format commands}\",\n      \"paragraph/nameformat=${1:format commands}\",\n      \"subparagraph/nameformat=${1:format commands}\",\n      \"part/nameformat+=${1:format commands}\",\n      \"chapter/nameformat+=${1:format commands}\",\n      \"section/nameformat+=${1:format commands}\",\n      \"subsection/nameformat+=${1:format commands}\",\n      \"subsubsection/nameformat+=${1:format commands}\",\n      \"paragraph/nameformat+=${1:format commands}\",\n      \"subparagraph/nameformat+=${1:format commands}\",\n      \"part/numberformat=${1:format commands}\",\n      \"chapter/numberformat=${1:format commands}\",\n      \"section/numberformat=${1:format commands}\",\n      \"subsection/numberformat=${1:format commands}\",\n      \"subsubsection/numberformat=${1:format commands}\",\n      \"paragraph/numberformat=${1:format commands}\",\n      \"subparagraph/numberformat=${1:format commands}\",\n      \"part/numberformat+=${1:format commands}\",\n      \"chapter/numberformat+=${1:format commands}\",\n      \"section/numberformat+=${1:format commands}\",\n      \"subsection/numberformat+=${1:format commands}\",\n      \"subsubsection/numberformat+=${1:format commands}\",\n      \"paragraph/numberformat+=${1:format commands}\",\n      \"subparagraph/numberformat+=${1:format commands}\",\n      \"part/titleformat=${1:format commands}\",\n      \"chapter/titleformat=${1:format commands}\",\n      \"section/titleformat=${1:format commands}\",\n      \"subsection/titleformat=${1:format commands}\",\n      \"subsubsection/titleformat=${1:format commands}\",\n      \"paragraph/titleformat=${1:format commands}\",\n      \"subparagraph/titleformat=${1:format commands}\",\n      \"part/titleformat+=${1:format commands}\",\n      \"chapter/titleformat+=${1:format commands}\",\n      \"section/titleformat+=${1:format commands}\",\n      \"subsection/titleformat+=${1:format commands}\",\n      \"subsubsection/titleformat+=${1:format commands}\",\n      \"paragraph/titleformat+=${1:format commands}\",\n      \"subparagraph/titleformat+=${1:format commands}\",\n      \"part/aftername=${1:code}\",\n      \"chapter/aftername=${1:code}\",\n      \"section/aftername=${1:code}\",\n      \"subsection/aftername=${1:code}\",\n      \"subsubsection/aftername=${1:code}\",\n      \"paragraph/aftername=${1:code}\",\n      \"subparagraph/aftername=${1:code}\",\n      \"part/aftername+=${1:code}\",\n      \"chapter/aftername+=${1:code}\",\n      \"section/aftername+=${1:code}\",\n      \"subsection/aftername+=${1:code}\",\n      \"subsubsection/aftername+=${1:code}\",\n      \"paragraph/aftername+=${1:code}\",\n      \"subparagraph/aftername+=${1:code}\",\n      \"part/aftertitle=${1:code}\",\n      \"chapter/aftertitle=${1:code}\",\n      \"section/aftertitle=${1:code}\",\n      \"subsection/aftertitle=${1:code}\",\n      \"subsubsection/aftertitle=${1:code}\",\n      \"paragraph/aftertitle=${1:code}\",\n      \"subparagraph/aftertitle=${1:code}\",\n      \"part/aftertitle+=${1:code}\",\n      \"chapter/aftertitle+=${1:code}\",\n      \"section/aftertitle+=${1:code}\",\n      \"subsection/aftertitle+=${1:code}\",\n      \"subsubsection/aftertitle+=${1:code}\",\n      \"paragraph/aftertitle+=${1:code}\",\n      \"subparagraph/aftertitle+=${1:code}\",\n      \"part/pagestyle=\",\n      \"chapter/pagestyle=\",\n      \"section/runin\",\n      \"subsection/runin\",\n      \"subsubsection/runin\",\n      \"paragraph/runin\",\n      \"subparagraph/runin\",\n      \"section/hang\",\n      \"subsection/hang\",\n      \"subsubsection/hang\",\n      \"paragraph/hang\",\n      \"subparagraph/hang\",\n      \"part/indent=\",\n      \"chapter/indent=\",\n      \"section/indent=\",\n      \"subsection/indent=\",\n      \"subsubsection/indent=\",\n      \"paragraph/indent=\",\n      \"subparagraph/indent=\",\n      \"part/beforeskip=\",\n      \"chapter/beforeskip=\",\n      \"section/beforeskip=\",\n      \"subsection/beforeskip=\",\n      \"subsubsection/beforeskip=\",\n      \"paragraph/beforeskip=\",\n      \"subparagraph/beforeskip=\",\n      \"part/afterskip=\",\n      \"chapter/afterskip=\",\n      \"section/afterskip=\",\n      \"subsection/afterskip=\",\n      \"subsubsection/afterskip=\",\n      \"paragraph/afterskip=\",\n      \"subparagraph/afterskip=\",\n      \"part/fixskip\",\n      \"chapter/fixskip\",\n      \"section/fixskip\",\n      \"subsection/fixskip\",\n      \"subsubsection/fixskip\",\n      \"paragraph/fixskip\",\n      \"subparagraph/fixskip\",\n      \"part/break=\",\n      \"chapter/break=\",\n      \"section/break=\",\n      \"subsection/break=\",\n      \"subsubsection/break=\",\n      \"paragraph/break=\",\n      \"subparagraph/break=\",\n      \"part/break+=\",\n      \"chapter/break+=\",\n      \"section/break+=\",\n      \"subsection/break+=\",\n      \"subsubsection/break+=\",\n      \"paragraph/break+=\",\n      \"subparagraph/break+=\",\n      \"part/afterindent\",\n      \"chapter/afterindent\",\n      \"section/afterindent\",\n      \"subsection/afterindent\",\n      \"subsubsection/afterindent\",\n      \"paragraph/afterindent\",\n      \"subparagraph/afterindent\",\n      \"tocdepth=\",\n      \"part/tocline=\",\n      \"chapter/tocline=\",\n      \"section/tocline=\",\n      \"subsection/tocline=\",\n      \"subsubsection/tocline=\",\n      \"paragraph/tocline=\",\n      \"subparagraph/tocline=\",\n      \"chapter/lofskip=\",\n      \"chapter/lotskip=\",\n      \"appendix/numbering\",\n      \"appendix/name=\",\n      \"appendix/number=\",\n      \"declarecharrange=\",\n      \"clearalternatefont={${1:family1,family2,...}}\",\n      \"resetalternatefont={${1:family1,family2,...}}\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"chinese\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ctex#c\",\n    \"\\\\ctexset,\\\\usepackage/ctex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cu-calendar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"cu-num\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cuDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuDate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"cuDateJulian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuDateJulian{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"cuDefineDateFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuDefineDateFormat{${1:name%specialDef}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"cuYEAR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuYEARAM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuMONTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuDAY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuDOW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuINDICTION\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuDISPLAYDATE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuUseDateFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuUseDateFormat{${1:format name%keyvals}}\",\n        \"keys\": [\n          \"\\\\cuUseDateFormat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cuMonthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuMonthName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cuDayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuDayName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cuDayNameAccusative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuDayNameAccusative{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cuToday\"\n    },\n    {\n      \"name\": \"cuTodayJulian\"\n    },\n    {\n      \"name\": \"cuAsJulian\"\n    },\n    {\n      \"name\": \"cuAsGregorian\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\cuUseDateFormat#c\": [\n      \"default\",\n      \"%cudateformat\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cu-kinovar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cu-util\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luacolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cuKinovar\"\n    },\n    {\n      \"name\": \"cuKinovarColor\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cu-kinovar#c\": [\n      \"color\",\n      \"gray\",\n      \"bw\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cu-kinovar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cu-kruk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"cu-kinovar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cuKruk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuKruk{${1:neume}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cuKruk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cuKruk[${3:options%keyvals}]{${1:neume}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\cuKruk,\\\\cuKrukPara\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cuKrukPara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuKrukPara{${1:neumes \\\\\\\\ ... \\\\\\\\ lyrics}}\"\n      }\n    },\n    {\n      \"name\": \"cuKrukPara\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cuKrukPara[${2:options%keyvals}]{${1:neumes \\\\\\\\ ... \\\\\\\\ lyrics}}\",\n        \"keys\": [\n          \"\\\\cuKruk,\\\\cuKrukPara\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cuSup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cuSup{${1:sup text}}{${2:base text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cuSup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cuSup[${3:options%keyvals}]{${1:sup text}}{${2:base text%text}}\",\n        \"keys\": [\n          \"\\\\cuSup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cuKrukFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuKrukSylSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuKrukTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuKrukSylRuleHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuKrukRaise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cuSupRaise\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/cu-kruk#c\": [\n      \"autocolormarks\",\n      \"noautocolormarks\"\n    ],\n    \"\\\\cuKruk,\\\\cuKrukPara\": [\n      \"krukFont=${1:font}\",\n      \"sylSpace=\",\n      \"topMargin=\",\n      \"krukRaise=\",\n      \"sylRuleHeight=\"\n    ],\n    \"\\\\cuSup\": [\n      \"raise=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cu-kruk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cu-num.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cuNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuNum{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/currency.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"eurosym\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefineCurrency\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineCurrency{${1:ISO}}{${2:maps%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefineCurrency,\\\\CurrencySetup,\\\\CurrencySetupAppend\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"CurrencySetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrencySetup{${1:maps%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefineCurrency,\\\\CurrencySetup,\\\\CurrencySetupAppend\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CurrencySetupAppend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrencySetupAppend{${1:maps%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefineCurrency,\\\\CurrencySetup,\\\\CurrencySetupAppend\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currencyunit\"\n    },\n    {\n      \"name\": \"displayCurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"displayCurrency{${1:ISO}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"displayCurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"displayCurrency{${1:ISO}}[${3:options}]{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"displayCurrencySymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayCurrencySymbol{${1:ISO}}\"\n      }\n    },\n    {\n      \"name\": \"displayCurrencySymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"displayCurrencySymbol{${1:ISO}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"SetPrecision\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DefineCurrency,\\\\CurrencySetup,\\\\CurrencySetupAppend\": [\n      \"name={${1:name}}\",\n      \"plural={${1:plural}}\",\n      \"iso={${1:ISO}}\",\n      \"symbol={${1:symbol}}\",\n      \"pre-between={${1:tokens}}\",\n      \"post-between={${1:tokens}}\",\n      \"before={${1:tokens}}\",\n      \"before+={${1:tokens}}\",\n      \"before<={${1:tokens}}\",\n      \"font={${1:tokens}}\",\n      \"font+={${1:tokens}}\",\n      \"after={${1:tokens}}\",\n      \"after+={${1:tokens}}\",\n      \"after<={${1:tokens}}\",\n      \"prefix={${1:tokens}}\",\n      \"kind=${1|iso,plural,name,symbol|}\",\n      \"cents=${1|true,false,always|}\",\n      \"pre\",\n      \"number\",\n      \"base=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/currfile-abspath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"currfileabsdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfileabspath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcurrfileabsdir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfileabsdir{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfileabspath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfileabspath{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"getpwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getmainfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themainfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getabspath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getabspath{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"theabspath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsdir\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/currfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"abspath\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"abspath=true\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"realmainfile\"\n    },\n    {\n      \"name\": \"currfile-abspath\",\n      \"if\": \"realmainfile=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"currfiledir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilebase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfileext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcurrfiledir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfiledir{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilebase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilebase{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfileext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfileext{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilename{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfilepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrfilepath{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcurrfile{${1:macro or text}}{${2:text}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"parentfiledir\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebase\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileext\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilename\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepath\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdir\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspath\",\n      \"if\": \"parent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currfilegetparents\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilediri\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfiledirii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebasei\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilebaseii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileexti\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileextii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilenamei\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilenameii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepathi\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfilepathii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdiri\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabsdirii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspathi\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentfileabspathii\",\n      \"if\": \"parents\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/currfile#c\": [\n      \"mainext=${1:extension}\",\n      \"maindir=${1:directory}\",\n      \"fink\",\n      \"abspath\",\n      \"realmainfile\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/currfile#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/currvita.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cvplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvplace{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"cvheadingfont\"\n    },\n    {\n      \"name\": \"cvlistheadingfont\"\n    },\n    {\n      \"name\": \"cvlabelfont\"\n    },\n    {\n      \"name\": \"cvlabelwidth\"\n    },\n    {\n      \"name\": \"cvlabelskip\"\n    },\n    {\n      \"name\": \"cvlabelsep\"\n    },\n    {\n      \"name\": \"cvbibname\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading of the curriculum vitae%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/currvita#c\": [\n      \"LabelsAligned\",\n      \"TextAligned\",\n      \"openbib\",\n      \"ManyBibs\",\n      \"NoDate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/currvita#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cursor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cursorformula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cursorformula{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Lc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Rc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LRc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LRc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cursorheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cursorheight{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ruled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ruleh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cursorlinew\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/curve2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Arc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Arc(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"AutoGrid\"\n    },\n    {\n      \"name\": \"AutoGrid\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"AutoGrid(${1:coordinates})\"\n      }\n    },\n    {\n      \"name\": \"ChangeDir<cmd>\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurveEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurveFinish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dashline\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Dashline(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dash length}}\"\n      }\n    },\n    {\n      \"name\": \"defaultlinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultlinethickness{${1:dimension%l}}\"\n      }\n    },\n    {\n      \"name\": \"defaultlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Divvect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Divvect{${1:vector1}}{${2:vector2}}{${3:vector macro}}\"\n      }\n    },\n    {\n      \"name\": \"Dotline\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Dotline(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dot gap}}\"\n      }\n    },\n    {\n      \"name\": \"Dotline\",\n      \"arg\": {\n        \"format\": \"()(){}[]\",\n        \"snippet\": \"Dotline(${3:x1},${4:y1})(${5:x2},${6:y2}){${1:dot gap}}[${2:dot diameter}]\"\n      }\n    },\n    {\n      \"name\": \"FillCurve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpdowhile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpdowhile{${1:test}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"fptest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fptest{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"fpwhiledo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpwhiledo{${1:test}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"GetCoord\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"GetCoord(${3:cmd}){${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"GraphGrid\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"GraphGrid(${1:coordinates})\"\n      }\n    },\n    {\n      \"name\": \"Integer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Integer{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"IsPolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IsPolar{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"legenda\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"legenda(${2:coordinates}){${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"LIne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"LIne(${1:cmd})\"\n      }\n    },\n    {\n      \"name\": \"ModDirDot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Multvect\",\n      \"arg\": {\n        \"format\": \"{}*{}*{}\",\n        \"snippet\": \"Multvect{${1:vector1}}*{${2:vector2}}*{${3:vector macro}}\"\n      }\n    },\n    {\n      \"name\": \"Multvect\",\n      \"arg\": {\n        \"format\": \"{}*{}{}\",\n        \"snippet\": \"Multvect{${1:vector1}}*{${2:vector2}}{${3:vector macro}}\"\n      }\n    },\n    {\n      \"name\": \"Multvect\",\n      \"arg\": {\n        \"format\": \"{}{}*{}\",\n        \"snippet\": \"Multvect{${1:vector1}}{${2:vector2}}*{${3:vector macro}}\"\n      }\n    },\n    {\n      \"name\": \"Multvect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Multvect{${1:vector1}}{${2:vector2}}{${3:vector macro}}\"\n      }\n    },\n    {\n      \"name\": \"Numero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Numero{${1:cmd}}{${2:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"PbDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"Pbox(${3:coordinates})[${2:position}]{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}*\",\n        \"snippet\": \"Pbox(${3:coordinates})[${2:position}]{${1:formula}}*\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}*<>\",\n        \"snippet\": \"Pbox(${4:coordinates})[${2:position}]{${1:formula}}*<${3:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"()[]{}[]\",\n        \"snippet\": \"Pbox(${4:coordinates})[${2:position}]{${1:formula}}[${3:dot diameter}]\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"()[]{}[]*\",\n        \"snippet\": \"Pbox(${4:coordinates})[${2:position}]{${1:formula}}[${3:dot diameter}]*\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"()[]{}[]*<>\",\n        \"snippet\": \"Pbox(${5:coordinates})[${2:position}]{${1:formula}}[${3:dot diameter}]*<${4:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"()[]{}[]<>\",\n        \"snippet\": \"Pbox(${5:coordinates})[${2:position}]{${1:formula}}[${3:dot diameter}]<${4:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}<>\",\n        \"snippet\": \"Pbox(${4:coordinates})[${2:position}]{${1:formula}}<${3:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Pbox(${2:coordinates}){${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"(){}*\",\n        \"snippet\": \"Pbox(${2:coordinates}){${1:formula}}*\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"(){}*<>\",\n        \"snippet\": \"Pbox(${3:coordinates}){${1:formula}}*<${2:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"Pbox(${3:coordinates}){${1:formula}}[${2:dot diameter}]\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}[]*\",\n        \"snippet\": \"Pbox(${3:coordinates}){${1:formula}}[${2:dot diameter}]*\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}[]*<>\",\n        \"snippet\": \"Pbox(${4:coordinates}){${1:formula}}[${2:dot diameter}]*<${3:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}[]<>\",\n        \"snippet\": \"Pbox(${4:coordinates}){${1:formula}}[${2:dot diameter}]<${3:angle}>\"\n      }\n    },\n    {\n      \"name\": \"Pbox\",\n      \"arg\": {\n        \"format\": \"(){}<>\",\n        \"snippet\": \"Pbox(${3:coordinates}){${1:formula}}<${2:angle}>\"\n      }\n    },\n    {\n      \"name\": \"segment\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"segment(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"SplitCartesian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"SplitCartesian(${3:x},${4:y}){${1:xmacro%cmd}}{${2:ymacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SplitPolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"SplitPolar(${3:angle:radius}){${1:anglemacro%cmd}}{${2:radiusmacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TROF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TRON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VECTOR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"VECTOR(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"VectorArc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"VectorArc(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"VectorARC\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"VectorARC(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"VVECTOR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"VVECTOR(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"VVectorArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"VVectorArc(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"xmultiput\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"xmultiput(${3:x},${4:y})(${5:Δx},${6:Δy}){${1:copies}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"xmultiput\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"xmultiput[${3:center}](${4:x},${5:y})(${6:Δx},${7:Δy}){${1:copies}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"Zbox\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"Zbox(${3:coordinates})[${2:position}]{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Zbox\",\n      \"arg\": {\n        \"format\": \"()[]{}[]\",\n        \"snippet\": \"Zbox(${4:coordinates})[${2:position}]{${1:formula}}[${3:dot diameter}]\"\n      }\n    },\n    {\n      \"name\": \"Zbox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Zbox(${2:coordinates}){${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Zbox\",\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"Zbox(${3:coordinates}){${1:formula}}[${2:dot diameter}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/curve2e#c\": [\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctex32\",\n      \"vtex\",\n      \"original\",\n      \"ltxarrows\",\n      \"pstarrows\",\n      \"debug\",\n      \"hide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/curve2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/curves.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"csdiameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curvelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcurvewarn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curvewarntrue\"\n    },\n    {\n      \"name\": \"curvewarnfalse\"\n    },\n    {\n      \"name\": \"ifstraight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"straighttrue\"\n    },\n    {\n      \"name\": \"straightfalse\"\n    },\n    {\n      \"name\": \"curvesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curvesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"curvedashes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curvedashes{${1:dash pattern}}\"\n      }\n    },\n    {\n      \"name\": \"curvedashes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curvedashes[${2:length}]{${1:dash pattern}}\"\n      }\n    },\n    {\n      \"name\": \"diskpitchstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patternresolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscaley\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yscalex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"arc(${2:x},${3:y}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"arc[${2:n}](${3:x},${4:y}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"bigcircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigcircle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"bigcircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bigcircle[${2:n}]{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"closecurve\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"closecurve(${1:coords})\"\n      }\n    },\n    {\n      \"name\": \"closecurve\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"closecurve[${1:n}](${2:coords})\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"curve(${1:coords})\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"curve[${1:n}](${2:coords})\"\n      }\n    },\n    {\n      \"name\": \"scaleput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"scaleput(${2:x},${3:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"tagcurve\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tagcurve(${1:coords})\"\n      }\n    },\n    {\n      \"name\": \"tagcurve\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tagcurve[${1:n}](${2:coords})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/curves#c\": [\n      \"dvips\",\n      \"emtex\",\n      \"xdvi\",\n      \"WML\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/curves#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/customdice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bigdotdice\"\n    },\n    {\n      \"name\": \"bigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"layoutdice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"layoutdice{${1:face1}}{${2:face2}}{${3:face3}}{${4:face4}}{${5:face5}}{${6:face6}}\"\n      }\n    },\n    {\n      \"name\": \"tinydice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tinydice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tinydice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tinydice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scriptsizedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scriptsizedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"scriptsizedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scriptsizedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footnotesizedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotesizedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"footnotesizedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotesizedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smalldice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalldice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"smalldice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smalldice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalsizedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalsizedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"normalsizedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"normalsizedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"largedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"largedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"largedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"largedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Largedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Largedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Largedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LARGEdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LARGEdice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LARGEdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LARGEdice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hugedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hugedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hugedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hugedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hugedice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hugedice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Hugedice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hugedice[${2:background,foreground%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tinybigdotdice\"\n    },\n    {\n      \"name\": \"tinybigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tinybigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scriptsizebigdotdice\"\n    },\n    {\n      \"name\": \"scriptsizebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scriptsizebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footnotesizebigdotdice\"\n    },\n    {\n      \"name\": \"footnotesizebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotesizebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smallbigdotdice\"\n    },\n    {\n      \"name\": \"smallbigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smallbigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalsizebigdotdice\"\n    },\n    {\n      \"name\": \"normalsizebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalsizebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"largebigdotdice\"\n    },\n    {\n      \"name\": \"largebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"largebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Largebigdotdice\"\n    },\n    {\n      \"name\": \"Largebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Largebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LARGEbigdotdice\"\n    },\n    {\n      \"name\": \"LARGEbigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LARGEbigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hugebigdotdice\"\n    },\n    {\n      \"name\": \"hugebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hugebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hugebigdotdice\"\n    },\n    {\n      \"name\": \"Hugebigdotdice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hugebigdotdice[${1:background,foreground%keyvals}]\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tinytextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tinytextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tinytextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tinytextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scriptsizetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scriptsizetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scriptsizetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scriptsizetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footnotesizetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotesizetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"footnotesizetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotesizetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smalltextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalltextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"smalltextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smalltextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalsizetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalsizetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"normalsizetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"normalsizetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"largetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"largetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"largetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"largetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Largetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Largetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Largetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LARGEtextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LARGEtextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LARGEtextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LARGEtextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hugetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hugetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hugetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hugetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hugetextdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hugetextdice{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Hugetextdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hugetextdice[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tinytextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tinytextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tinytextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tinytextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scriptsizetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scriptsizetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scriptsizetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scriptsizetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footnotesizetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotesizetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"footnotesizetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotesizetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smalltextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalltextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"smalltextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smalltextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalsizetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalsizetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"normalsizetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"normalsizetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"largetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"largetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"largetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"largetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Largetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Largetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Largetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Largetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LARGEtextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LARGEtextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LARGEtextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LARGEtextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hugetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hugetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hugetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hugetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hugetextdicebot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hugetextdicebot{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Hugetextdicebot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hugetextdicebot[${2:background,foreground%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdicebaseline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdicebaseline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setdicefacesize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdicefacesize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"customdicebaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicefacesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicehalfway\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicelower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdiceupper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicedotsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicebigdotsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicecornerrounding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdiceborderthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicetextscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicefg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdicebg\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"customdiceenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customdiceenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:background,foreground%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\dice#c,\\\\bigdotdice#c,\\\\textdice#c,\\\\textdicebot#c,\\\\tinydice#c,\\\\scriptsizedice#c,\\\\footnotesizedice#c,\\\\smalldice#c,\\\\normalsizedice#c,\\\\largedice#c,\\\\Largedice#c,\\\\LARGEdice#c,\\\\hugedice#c,\\\\Hugedice#c,\\\\tinybigdotdice#c,\\\\scriptsizebigdotdice#c,\\\\footnotesizebigdotdice#c,\\\\smallbigdotdice#c,\\\\normalsizebigdotdice#c,\\\\largebigdotdice#c,\\\\Largebigdotdice#c,\\\\LARGEbigdotdice#c,\\\\hugebigdotdice#c,\\\\Hugebigdotdice#c,\\\\tinytextdice#c,\\\\scriptsizetextdice#c,\\\\footnotesizetextdice#c,\\\\smalltextdice#c,\\\\normalsizetextdice#c,\\\\largetextdice#c,\\\\Largetextdice#c,\\\\LARGEtextdice#c,\\\\hugetextdice#c,\\\\Hugetextdice#c,\\\\tinytextdicebot#c,\\\\scriptsizetextdicebot#c,\\\\footnotesizetextdicebot#c,\\\\smalltextdicebot#c,\\\\normalsizetextdicebot#c,\\\\largetextdicebot#c,\\\\Largetextdicebot#c,\\\\LARGEtextdicebot#c,\\\\hugetextdicebot#c,\\\\Hugetextdicebot#c,\\\\begin{customdiceenv}#c\": [\n      \"%color\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cuted.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"preCutedStrip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preCutedStrip{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"postCutedStrip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postCutedStrip{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"stripsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldcolsbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldcolsbreak{${1:adds}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"strip\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cuted#c\": [\n      \"spread\",\n      \"nospread\",\n      \"lspread\",\n      \"nolspread\",\n      \"rspread\",\n      \"norspread\",\n      \"shrink\",\n      \"noshrink\",\n      \"lshrink\",\n      \"nolshrink\",\n      \"rshrink\",\n      \"norshrink\",\n      \"debug\",\n      \"nodebug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cuted#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cutwin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"opencutleft\"\n    },\n    {\n      \"name\": \"opencutright\"\n    },\n    {\n      \"name\": \"opencutcenter\"\n    },\n    {\n      \"name\": \"cutfuzz\"\n    },\n    {\n      \"name\": \"pageinwindow\"\n    },\n    {\n      \"name\": \"windowpagestuff\"\n    },\n    {\n      \"name\": \"picinwindow\"\n    },\n    {\n      \"name\": \"putstuffinpic\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cutout\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:num top}}{${2:left width}}{${3:right width}}{${4:num cut}}\"\n      }\n    },\n    {\n      \"name\": \"shapedcutout\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:num top}}{${2:num cut}}{${3:shape sec}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cvss.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cvssScore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssScore{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"cvssScorepretty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssScorepretty{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"cvssLevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssLevel{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"cvssLevelpretty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssLevelpretty{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"cvssTag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssTag{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"cvssPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssPrint{${1:CVSS string}}\"\n      }\n    },\n    {\n      \"name\": \"category\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"category{${1:CVSS score}}\"\n      }\n    },\n    {\n      \"name\": \"cvssFrame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cvssFrame{${1:CVSS score}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cwpuzzle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PuzzleDefineCell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PuzzleDefineCell{${1:key%plain}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleDefineColorCell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PuzzleDefineColorCell{${1:key%plain}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"Frame\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Frame{${1:llx}}{${2:lly}}{${3:width%plain}}{${4:height%plain}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"Clue\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Clue{${1:number}}{${2:word%text}}{${3:clue%text}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleLetters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PuzzleLetters{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleNumbers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PuzzleNumbers{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"Word\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Word{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleSolution\"\n    },\n    {\n      \"name\": \"PuzzleSolution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PuzzleSolution[${1:true or false}]\"\n      }\n    },\n    {\n      \"name\": \"PuzzleUnitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleBlackBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleNumberFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleClueFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleWordsText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleLettersText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleUnsolved\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzlePutNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PuzzlePutNumber{${1:x}}{${2:y}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleLineThickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleThickline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzlePre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzlePost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleCluePre \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleCluePost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PuzzleSolutionContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SudokuLinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KakuroNumberFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KakuroHintType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KakuroNumberFont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Puzzle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:columns}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleClues\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleWords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:word length}}\"\n      }\n    },\n    {\n      \"name\": \"Sudoku\"\n    },\n    {\n      \"name\": \"Kakuro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:columns}}{${2:rows}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/cwpuzzle#c\": [\n      \"numbered\",\n      \"nocenter\",\n      \"unboxed\",\n      \"normalsize\",\n      \"small\",\n      \"large\",\n      \"german\",\n      \"ngerman\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/cwpuzzle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/cyber.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"index\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"documents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"documents{${1:requirement type}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"notapplicable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"notapplicable{${1:requirement type}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"implements\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"implements{${1:requirement type}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"doneby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doneby{${1:who}}{${2:requirement type}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"bydefault\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bydefault{${1:product}}{${2:requirement type}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"unimplemented\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"unimplemented{${1:requirement type}}{${2:requirement name}}{${3:reason%text}}\"\n      }\n    },\n    {\n      \"name\": \"articlesecuritylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articlesecuritylabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"booksecuritylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booksecuritylabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"distributionA{${1:other information%text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"distributionB{${1:reason why%text}}{${2:controlling office%text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"distributionC{${1:reason why%text}}{${2:controlling office%text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"distributionD{${1:reason why%text}}{${2:controlling office%text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"distributionE{${1:reason why%text}}{${2:controlling office%text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"distributionF{${1:controlling office%text}}\"\n      }\n    },\n    {\n      \"name\": \"makedodtitle\"\n    },\n    {\n      \"name\": \"narrowermargins\"\n    },\n    {\n      \"name\": \"change\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"change{${1:date}}{${2:name}}{${3:change%text}}\"\n      }\n    },\n    {\n      \"name\": \"executivesummaryiacontrol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"executivesummaryiacontrol{${1:IA control id}}{${2:IA control name}}\"\n      }\n    },\n    {\n      \"name\": \"requirementsdocument\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"requirementsdocument{${1:document id}}{${2:header%text}}{${3:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ifCyberindexingenabled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cyberindexingenabledtrue\"\n    },\n    {\n      \"name\": \"Cyberindexingenabledfalse\"\n    },\n    {\n      \"name\": \"foreach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"foreach{${1:macro}}{${2:arg1}}{${3:arg2}}{${4:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"requirement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"requirement{${1:document id}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"namedrequirement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"namedrequirement{${1:index name}}{${2:prefix}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"iaindexheadstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iaindexheadstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexhelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"indexhelper{${1:index name}}{${2:implementation status}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"marginhelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"marginhelper{${1:index name}}{${2:prefix}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"compliancehelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"compliancehelper{${1:index name}}{${2:compliance status}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"explanationshelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"explanationshelper{${1:index name}}{${2:explanation}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"sectionnamehelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionnamehelper{${1:index name}}{${2:}}{${3:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"iamarginsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prescribed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prescribed{${1:requirement type}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"documented\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"documented{${1:requirement type}}{${2:requirement name}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"changelog\"\n    },\n    {\n      \"name\": \"executivesummary\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cypriot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cyprfamily\"\n    },\n    {\n      \"name\": \"textcypr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcypr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ca\"\n    },\n    {\n      \"name\": \"Ce\"\n    },\n    {\n      \"name\": \"Cga\"\n    },\n    {\n      \"name\": \"Ci\"\n    },\n    {\n      \"name\": \"Cja\"\n    },\n    {\n      \"name\": \"Cjo\"\n    },\n    {\n      \"name\": \"Cka\"\n    },\n    {\n      \"name\": \"Cke\"\n    },\n    {\n      \"name\": \"Cki\"\n    },\n    {\n      \"name\": \"Cko\"\n    },\n    {\n      \"name\": \"Cku\"\n    },\n    {\n      \"name\": \"Cla\"\n    },\n    {\n      \"name\": \"Cle\"\n    },\n    {\n      \"name\": \"Cli\"\n    },\n    {\n      \"name\": \"Clo\"\n    },\n    {\n      \"name\": \"Clu\"\n    },\n    {\n      \"name\": \"Cma\"\n    },\n    {\n      \"name\": \"Cme\"\n    },\n    {\n      \"name\": \"Cmi\"\n    },\n    {\n      \"name\": \"Cmo\"\n    },\n    {\n      \"name\": \"Cmu\"\n    },\n    {\n      \"name\": \"Cna\"\n    },\n    {\n      \"name\": \"Cne\"\n    },\n    {\n      \"name\": \"Cni\"\n    },\n    {\n      \"name\": \"Cno\"\n    },\n    {\n      \"name\": \"Cnu\"\n    },\n    {\n      \"name\": \"Co\"\n    },\n    {\n      \"name\": \"Cpa\"\n    },\n    {\n      \"name\": \"Cpe\"\n    },\n    {\n      \"name\": \"Cpi\"\n    },\n    {\n      \"name\": \"Cpo\"\n    },\n    {\n      \"name\": \"Cpu\"\n    },\n    {\n      \"name\": \"Cra\"\n    },\n    {\n      \"name\": \"Cre\"\n    },\n    {\n      \"name\": \"Cri\"\n    },\n    {\n      \"name\": \"Cro\"\n    },\n    {\n      \"name\": \"Cru\"\n    },\n    {\n      \"name\": \"Csa\"\n    },\n    {\n      \"name\": \"Cse\"\n    },\n    {\n      \"name\": \"Csi\"\n    },\n    {\n      \"name\": \"Cso\"\n    },\n    {\n      \"name\": \"Csu\"\n    },\n    {\n      \"name\": \"Cta\"\n    },\n    {\n      \"name\": \"Cte\"\n    },\n    {\n      \"name\": \"Cti\"\n    },\n    {\n      \"name\": \"Cto\"\n    },\n    {\n      \"name\": \"Ctu\"\n    },\n    {\n      \"name\": \"Cu\"\n    },\n    {\n      \"name\": \"Cwa\"\n    },\n    {\n      \"name\": \"Cwe\"\n    },\n    {\n      \"name\": \"Cwi\"\n    },\n    {\n      \"name\": \"Cwo\"\n    },\n    {\n      \"name\": \"Cxa\"\n    },\n    {\n      \"name\": \"Cxe\"\n    },\n    {\n      \"name\": \"translitcypr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitcypr{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitcyprfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cga\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cjo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/cyrillic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CYRA\"\n    },\n    {\n      \"name\": \"CYRB\"\n    },\n    {\n      \"name\": \"CYRV\"\n    },\n    {\n      \"name\": \"CYRG\"\n    },\n    {\n      \"name\": \"CYRD\"\n    },\n    {\n      \"name\": \"CYRE\"\n    },\n    {\n      \"name\": \"CYRYO\"\n    },\n    {\n      \"name\": \"CYRZH\"\n    },\n    {\n      \"name\": \"CYRZ\"\n    },\n    {\n      \"name\": \"CYRI\"\n    },\n    {\n      \"name\": \"CYRISHRT\"\n    },\n    {\n      \"name\": \"CYRK\"\n    },\n    {\n      \"name\": \"CYRL\"\n    },\n    {\n      \"name\": \"CYRM\"\n    },\n    {\n      \"name\": \"CYRN\"\n    },\n    {\n      \"name\": \"CYRO\"\n    },\n    {\n      \"name\": \"CYRP\"\n    },\n    {\n      \"name\": \"CYRR\"\n    },\n    {\n      \"name\": \"CYRS\"\n    },\n    {\n      \"name\": \"CYRT\"\n    },\n    {\n      \"name\": \"CYRU\"\n    },\n    {\n      \"name\": \"CYRF\"\n    },\n    {\n      \"name\": \"CYRH\"\n    },\n    {\n      \"name\": \"CYRC\"\n    },\n    {\n      \"name\": \"CYRCH\"\n    },\n    {\n      \"name\": \"CYRSH\"\n    },\n    {\n      \"name\": \"CYRSHCH\"\n    },\n    {\n      \"name\": \"CYRHRDSN\"\n    },\n    {\n      \"name\": \"CYRERY\"\n    },\n    {\n      \"name\": \"CYRSFTSN\"\n    },\n    {\n      \"name\": \"CYREREV\"\n    },\n    {\n      \"name\": \"CYRYU\"\n    },\n    {\n      \"name\": \"CYRYA\"\n    },\n    {\n      \"name\": \"cyra\"\n    },\n    {\n      \"name\": \"cyrb\"\n    },\n    {\n      \"name\": \"cyrv\"\n    },\n    {\n      \"name\": \"cyrg\"\n    },\n    {\n      \"name\": \"cyrd\"\n    },\n    {\n      \"name\": \"cyre\"\n    },\n    {\n      \"name\": \"cyryo\"\n    },\n    {\n      \"name\": \"cyrzh\"\n    },\n    {\n      \"name\": \"cyrz\"\n    },\n    {\n      \"name\": \"cyri\"\n    },\n    {\n      \"name\": \"cyrishrt\"\n    },\n    {\n      \"name\": \"cyrk\"\n    },\n    {\n      \"name\": \"cyrl\"\n    },\n    {\n      \"name\": \"cyrm\"\n    },\n    {\n      \"name\": \"cyrn\"\n    },\n    {\n      \"name\": \"cyro\"\n    },\n    {\n      \"name\": \"cyrp\"\n    },\n    {\n      \"name\": \"cyrr\"\n    },\n    {\n      \"name\": \"cyrs\"\n    },\n    {\n      \"name\": \"cyrt\"\n    },\n    {\n      \"name\": \"cyru\"\n    },\n    {\n      \"name\": \"cyrf\"\n    },\n    {\n      \"name\": \"cyrh\"\n    },\n    {\n      \"name\": \"cyrc\"\n    },\n    {\n      \"name\": \"cyrch\"\n    },\n    {\n      \"name\": \"cyrsh\"\n    },\n    {\n      \"name\": \"cyrshch\"\n    },\n    {\n      \"name\": \"cyrhrdsn\"\n    },\n    {\n      \"name\": \"cyrery\"\n    },\n    {\n      \"name\": \"cyrsftsn\"\n    },\n    {\n      \"name\": \"cyrerev\"\n    },\n    {\n      \"name\": \"cyryu\"\n    },\n    {\n      \"name\": \"cyrya\"\n    },\n    {\n      \"name\": \"CYRABHCH\"\n    },\n    {\n      \"name\": \"CYRABHCHDSC\"\n    },\n    {\n      \"name\": \"CYRZHDSC\"\n    },\n    {\n      \"name\": \"CYRABHDZE\"\n    },\n    {\n      \"name\": \"CYRZDSC\"\n    },\n    {\n      \"name\": \"CYRKHK\"\n    },\n    {\n      \"name\": \"CYRKHCRS\"\n    },\n    {\n      \"name\": \"CYRKDSC\"\n    },\n    {\n      \"name\": \"CYRKVCRS\"\n    },\n    {\n      \"name\": \"CYRLJE\"\n    },\n    {\n      \"name\": \"CYRLDSC\"\n    },\n    {\n      \"name\": \"CYRMDSC\"\n    },\n    {\n      \"name\": \"CYRNDSC\"\n    },\n    {\n      \"name\": \"CYRNG\"\n    },\n    {\n      \"name\": \"CYRNJE\"\n    },\n    {\n      \"name\": \"CYRNHK\"\n    },\n    {\n      \"name\": \"CYROTLD\"\n    },\n    {\n      \"name\": \"CYRPHK\"\n    },\n    {\n      \"name\": \"CYRRTICK\"\n    },\n    {\n      \"name\": \"CYRSDSC\"\n    },\n    {\n      \"name\": \"CYRTDSC\"\n    },\n    {\n      \"name\": \"CYRTSHE\"\n    },\n    {\n      \"name\": \"CYRDJE\"\n    },\n    {\n      \"name\": \"CYRUSHRT\"\n    },\n    {\n      \"name\": \"CYRSHHA\"\n    },\n    {\n      \"name\": \"CYRGHK\"\n    },\n    {\n      \"name\": \"CYRGUP\"\n    },\n    {\n      \"name\": \"CYRGHCRS\"\n    },\n    {\n      \"name\": \"CYRHDSC\"\n    },\n    {\n      \"name\": \"CYRDZHE\"\n    },\n    {\n      \"name\": \"CYRDZE\"\n    },\n    {\n      \"name\": \"CYRTETSE\"\n    },\n    {\n      \"name\": \"CYRCHLDSC\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\"\n    },\n    {\n      \"name\": \"CYRSEMISFTSN\"\n    },\n    {\n      \"name\": \"CYRIE\"\n    },\n    {\n      \"name\": \"CYRSCHWA\"\n    },\n    {\n      \"name\": \"CYRII\"\n    },\n    {\n      \"name\": \"CYRJE\"\n    },\n    {\n      \"name\": \"CYRYI\"\n    },\n    {\n      \"name\": \"CYRY\"\n    },\n    {\n      \"name\": \"CYRYHCRS\"\n    },\n    {\n      \"name\": \"CYRAE\"\n    },\n    {\n      \"name\": \"CYRABHHA\"\n    },\n    {\n      \"name\": \"CYRpalochka\"\n    },\n    {\n      \"name\": \"cyrabhch\"\n    },\n    {\n      \"name\": \"cyrabhchdsc\"\n    },\n    {\n      \"name\": \"cyrzhdsc\"\n    },\n    {\n      \"name\": \"cyrabhdze\"\n    },\n    {\n      \"name\": \"cyrzdsc\"\n    },\n    {\n      \"name\": \"cyrkhk\"\n    },\n    {\n      \"name\": \"cyrkhcrs\"\n    },\n    {\n      \"name\": \"cyrkdsc\"\n    },\n    {\n      \"name\": \"cyrkvcrs\"\n    },\n    {\n      \"name\": \"cyrlje\"\n    },\n    {\n      \"name\": \"cyrldsc\"\n    },\n    {\n      \"name\": \"cyrmdsc\"\n    },\n    {\n      \"name\": \"cyrndsc\"\n    },\n    {\n      \"name\": \"cyrng\"\n    },\n    {\n      \"name\": \"cyrnje\"\n    },\n    {\n      \"name\": \"cyrnhk\"\n    },\n    {\n      \"name\": \"cyrotld\"\n    },\n    {\n      \"name\": \"cyrphk\"\n    },\n    {\n      \"name\": \"cyrrtick\"\n    },\n    {\n      \"name\": \"cyrsdsc\"\n    },\n    {\n      \"name\": \"cyrtdsc\"\n    },\n    {\n      \"name\": \"cyrtshe\"\n    },\n    {\n      \"name\": \"cyrdje\"\n    },\n    {\n      \"name\": \"cyrushrt\"\n    },\n    {\n      \"name\": \"cyrshha\"\n    },\n    {\n      \"name\": \"cyrghk\"\n    },\n    {\n      \"name\": \"cyrgup\"\n    },\n    {\n      \"name\": \"cyrghcrs\"\n    },\n    {\n      \"name\": \"cyrhdsc\"\n    },\n    {\n      \"name\": \"cyrdzhe\"\n    },\n    {\n      \"name\": \"cyrdze\"\n    },\n    {\n      \"name\": \"cyrtetse\"\n    },\n    {\n      \"name\": \"cyrchldsc\"\n    },\n    {\n      \"name\": \"cyrchvcrs\"\n    },\n    {\n      \"name\": \"cyrchrdsc\"\n    },\n    {\n      \"name\": \"cyrsemisftsn\"\n    },\n    {\n      \"name\": \"cyrie\"\n    },\n    {\n      \"name\": \"cyrschwa\"\n    },\n    {\n      \"name\": \"cyrii\"\n    },\n    {\n      \"name\": \"cyrje\"\n    },\n    {\n      \"name\": \"cyryi\"\n    },\n    {\n      \"name\": \"cyry\"\n    },\n    {\n      \"name\": \"cyryhcrs\"\n    },\n    {\n      \"name\": \"cyrae\"\n    },\n    {\n      \"name\": \"cyrabhha\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dad.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"luatex85\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arab{${1:arabic text}}\"\n      }\n    },\n    {\n      \"name\": \"arabttexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arabttexample{${1:arabic text}}\"\n      }\n    },\n    {\n      \"name\": \"arabtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arabtt{${1:arabic text}}\"\n      }\n    },\n    {\n      \"name\": \"kesh\"\n    },\n    {\n      \"name\": \"arabdottedcircle\"\n    },\n    {\n      \"name\": \"arabttsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arabttsep{${1:arabic text}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dantelogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dantelogo\"\n    },\n    {\n      \"name\": \"dantelogo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dantelogo[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/darkmode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pagecolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enabledarkmode\"\n    },\n    {\n      \"name\": \"disabledarkmode\"\n    },\n    {\n      \"name\": \"IfDarkModeT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfDarkModeT{${1:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfDarkModeF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfDarkModeF{${1:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfDarkModeTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfDarkModeTF{${1:true code}}{${2:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/darkmode#c\": [\n      \"enable\",\n      \"defaulthook\",\n      \"nodefaulthook\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/darkmode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dashbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dashbox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"dashbox[${2:width}][${3:pos}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lbox[${2:layers}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dlbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dlbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dlbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dlbox[${2:layers}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dashrule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hdashrule{${1:width}}{${2:height}}{${3:dash}}\"\n      }\n    },\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"hdashrule[${4:raise%l}]{${1:width}}{${2:height}}{${3:dash}}\"\n      }\n    },\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"hdashrule[${4:raise%l}][${5:leaders%keyvals}]{${1:width}}{${2:height}}{${3:dash}}\",\n        \"keys\": [\n          \"\\\\hdashrule\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hdashrule\": [\n      \"c\",\n      \"x\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dashrulex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hdashrule{${1:width}}{${2:thickness list}}{${3:dash rules}}\"\n      }\n    },\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"hdashrule[${4:raise}]{${1:width}}{${2:thickness list}}{${3:dash rules}}\"\n      }\n    },\n    {\n      \"name\": \"hdashrule\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"hdashrule[${4:raise}][${5:leader}]{${1:width}}{${2:thickness list}}{${3:dash rules}}\"\n      }\n    },\n    {\n      \"name\": \"vrulemod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrulemod{${1:width}}{${2:thickness list}}\"\n      }\n    },\n    {\n      \"name\": \"vrulemod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vrulemod[${3:raise}]{${1:width}}{${2:thickness list}}\"\n      }\n    },\n    {\n      \"name\": \"vrulemod\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"vrulemod[${3:raise}][${4:height}]{${1:width}}{${2:thickness list}}\"\n      }\n    },\n    {\n      \"name\": \"vrulemod\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"vrulemod[${3:raise}][${4:height}][${5:depth}]{${1:width}}{${2:thickness list}}\"\n      }\n    },\n    {\n      \"name\": \"hanyrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hanyrule{${1:width}}{${2:symbol list}}\"\n      }\n    },\n    {\n      \"name\": \"hanyrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hanyrule[${3:leader}]{${1:width}}{${2:symbol list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dashundergaps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"underscore\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gap[${2:style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gap,\\\\gap*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gap*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gap*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gap*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gap*[${2:style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gap,\\\\gap*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TeacherModeOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeacherModeOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashundergapssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashundergapssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dashundergapssetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thegapnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalgapnumber\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\gap,\\\\gap*\": [\n      \"u\",\n      \"d\",\n      \"w\",\n      \"b\",\n      \"-\",\n      \".\"\n    ],\n    \"\\\\dashundergapssetup\": [\n      \"teacher-mode\",\n      \"gap-mode\",\n      \"teachermode\",\n      \"gap-format=${1|underline,double-underline,dash,dot,wave,blank|}\",\n      \"gap-format-adjust\",\n      \"teacher-gap-format=${1|underline,double-underline,dash,dot,wave,blank|}\",\n      \"gap-font=\",\n      \"dash\",\n      \"dot\",\n      \"gap-numbers\",\n      \"gap-number-format=\",\n      \"numbers\",\n      \"display-total-gaps\",\n      \"displaynbgaps\",\n      \"gap-widen\",\n      \"gap-extend-minimum=\",\n      \"gap-extend-percent=\",\n      \"widen\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/databar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"dataplot\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLbarchart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLbarchart{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLbarchart\",\n          \"\\\\DTLbarchart,\\\\DTLmultibarchart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLbarchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLbarchart[${4:condition}]{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLbarchart\",\n          \"\\\\DTLbarchart,\\\\DTLmultibarchart\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DTLmultibarchart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmultibarchart{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLmultibarchart\",\n          \"\\\\DTLbarchart,\\\\DTLmultibarchart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLmultibarchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLmultibarchart[${4:condition}]{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLmultibarchart\",\n          \"\\\\DTLbarchart,\\\\DTLmultibarchart\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DTLbarchartlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarlabeloffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsetbarcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsetbarcolor{${1:index}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdobarcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdobarcolor{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbaroutlinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaroutlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaratbegintikz\"\n    },\n    {\n      \"name\": \"DTLbaratendtikz\"\n    },\n    {\n      \"name\": \"DTLeverybarhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstartpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmidpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLendpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLverticalbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLverticalbarstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLverticalbarsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLcolorbarchart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcolorbarcharttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcolorbarchartfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLbarxaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarxaxistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarxaxisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLbaryaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaryaxistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaryaxisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLbarytics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaryticstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbaryticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarXlabelalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarYticklabelalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbardisplayYticklabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLbardisplayYticklabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylowerbarlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaylowerbarlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylowermultibarlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaylowermultibarlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplayupperbarlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplayupperbarlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplayuppermultibarlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplayuppermultibarlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbarchartwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbargroupwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnegextent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbarvariable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLBarXAxisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLBarYAxisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLdocurrentbarcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgetbarcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgetbarcolor{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"theDTLbarroundvar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/databar#c\": [\n      \"color\",\n      \"gray\",\n      \"vertical\",\n      \"horizontal\"\n    ],\n    \"\\\\DTLbarchart\": [\n      \"variable=${1:\\\\var}\",\n      \"upperbarlabel=${1:text}\"\n    ],\n    \"\\\\DTLmultibarchart\": [\n      \"variables={${1:\\\\var1,\\\\var2,...}}\",\n      \"multibarlabels={${1:text1,text2,...}}\",\n      \"uppermultibarlabels={${1:text1,text2,...}}\",\n      \"groupgap=\"\n    ],\n    \"\\\\DTLbarchart,\\\\DTLmultibarchart\": [\n      \"max=${1:decimal}\",\n      \"length=\",\n      \"maxdepth=${1:decimal}\",\n      \"axes=${1|both,x,y,none|}\",\n      \"barlabel=${1:text}\",\n      \"yticpoints={${1:decimal1,decimal2,...}}\",\n      \"yticgap=\",\n      \"yticlabels={${1:text1,text2,...}}\",\n      \"ylabel=${1:text}\",\n      \"verticalbars\",\n      \"barwidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/databar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/databib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLloadbbl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloadbbl{${1:db%specialDef}}{${2:bib list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadbbl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLloadbbl[${3:bbl name}]{${1:db%specialDef}}{${2:bib list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLbibliography{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibliography\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTLbibliography[${2:conditions}]{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLbibfieldexists{${1:field label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldiseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldiseq{${1:field label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldcontains\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldcontains{${1:field label}}{${2:substring}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldislt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldislt{${1:field label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldisle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldisle{${1:field label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldisgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldisgt{${1:field label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldisge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldisge{${1:field label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLmonthname{${1:nn}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibliographystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLbibliographystyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLformatauthor{${1:von part}}{${2:surname}}{${3:jr part}}{${4:forname}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformateditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLformateditor{${1:von part}}{${2:surname}}{${3:jr part}}{${4:forname}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatforenames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatforenames{${1:forenames}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatabbrvforenames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatabbrvforenames{${1:forenames}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatsurname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatsurname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatvon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatvon{${1:von part}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatjr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatjr{${1:jr part}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcheckendsperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcheckendsperiod{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DTLandlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLandnotlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtwoand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmbibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLendbibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLforeachbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLforeachbibentry{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeachbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLforeachbibentry[${3:condition}]{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeachbibentry*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLforeachbibentry*{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeachbibentry*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLforeachbibentry*[${3:condition}]{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gDTLforeachbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gDTLforeachbibentry{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gDTLforeachbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gDTLforeachbibentry[${3:condition}]{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gDTLforeachbibentry*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gDTLforeachbibentry*{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gDTLforeachbibentry*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gDTLforeachbibentry*[${3:condition}]{${1:db%special}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DBIBcitekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DBIBcitekey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbibfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLbibfield{${1:field label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLbibfieldlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLbibfieldlet{${1:cmd}}{${2:field label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifbibfieldexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifbibfieldexists{${1:field label}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifanybibfieldexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifanybibfieldexists{${1:field label list}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatbibentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gDTLformatbibentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DBIBentrytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatthisbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLformatthisbibentry{${1:db%special}}{${2:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcustombibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLcustombibitem{${1:marker code}}{${2:ref text}}{${3:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcomputewidestbibentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLcomputewidestbibentry{${1:conditions}}{${2:db%special}}{${3:bib label}}{${4:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"theDTLbibrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLmaxauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLmaxeditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmultibibs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLmultibibs{${1:name list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLcite{${1:mbib}}{${2:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLcite[${3:text}]{${1:mbib}}{${2:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLnocite{${1:mbib}}{${2:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadmbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLloadmbbl{${1:mbib}}{${2:db%specialDef}}{${3:bib list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmbibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLmbibliography{${1:mbib}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmbibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLmbibliography[${3:condition}]{${1:mbib}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLBIBdbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DBIBname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLacmcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLacta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLaddcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLaddperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcacm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcheckbibfieldendsperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcheckbibfieldendsperiod{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatarticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatarticlecrossref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatauthorlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatbookcrossref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatbooklet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatbooktitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatbooktitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformatbvolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatchapterpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatcrossrefeditor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatcrossrefeditor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatedition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatedition{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformateditorlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatinbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatincollection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatincollproccrossref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatinedbooktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatinproceedings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatmanual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatmastersthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatmisc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatnumberseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatphdthesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatproceedings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatsurnameonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLformatsurnameonly{${1:von part}}{${2:surname}}{${3:jr part}}{${4:forenames}}\"\n      }\n    },\n    {\n      \"name\": \"DTLformattechreport\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatunpublished\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatvolnumpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLibmjrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLibmsj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLieeese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLieeetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLieeetcad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLipl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLjacm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLjcss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmidsentencefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmidsentencetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnewbibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLnewbibitem{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewbibrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLpcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DTLperiodfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLperiodtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLscp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsicomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstartsentencefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstartsentencespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstartsentencetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtocs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtods\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtoms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtoois\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLtoplas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLmidsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLstartsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phdthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"techreportname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLbibrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DTLthebibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:db}}\"\n      }\n    },\n    {\n      \"name\": \"DTLthebibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:condition}]{${1:db}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/databib#c\": [\n      \"style=${1|plain,abbrv,alpha|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/databib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datagidx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mfirstuc\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"loadgidx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loadgidx{${1:file}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"loadgidx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loadgidx[${3:options%keyvals}]{${1:file}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\loadgidx,\\\\newgidx\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newgidx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgidx{${1:db%specialDef}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newgidx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newgidx[${3:options%keyvals}]{${1:db%specialDef}}{${2:title%text}}\",\n        \"keys\": [\n          \"\\\\loadgidx,\\\\newgidx\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLgidxCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxAddLocationType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxAddLocationType{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSetCompositor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSetCompositor{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\newterm#c,\\\\newacro#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLgidxSetDefaultDB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSetDefaultDB{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxParen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxParen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxPlace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxPlace{${1:country/county}}{${2:city/town}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSubject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxSubject{${1:subject}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxName{${1:forename}}{${2:surname}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxRank\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxRank{${1:title%plain}}{${2:forename/initials}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxNameNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxNameNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxMac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxMac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSaint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSaint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxParticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxParticle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxOffice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxOffice{${1:office}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"newtermlabelhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxNoFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxNoFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxGobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxGobble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxIgnore\"\n    },\n    {\n      \"name\": \"DTLgidxStripBackslash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxStripBackslash{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"useentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"useentry{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"Useentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Useentry{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"USEentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"USEentry{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"useentrynl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"useentrynl{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"Useentrynl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Useentrynl{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"USEentrynl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"USEentrynl{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslink{${1:label%plain}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdispentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdispentry{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdispentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsdispentry{${1:label%plain}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFetchEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgidxFetchEntry{${1:cmd}}{${2:label%plain}}{${3:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsadd{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaddall{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsplnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsplnl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gls{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glspl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Glsnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsnl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Glsplnl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsplnl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glssym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssym{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Glssym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glssym{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtermaddfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtermaddfield{${1:field name}}{${2:key name}}{${3:default value}}\"\n      }\n    },\n    {\n      \"name\": \"newtermaddfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newtermaddfield[${4:db list}]{${1:field name}}{${2:key name}}{${3:default value}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newacro{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"newacro\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newacro[${3:options%keyvals}]{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"acronymfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxAcrStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxAcrStyle{${1:long}}{${2:short}}\"\n      }\n    },\n    {\n      \"name\": \"acr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acr{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acrpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrpl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Acr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acr{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Acrpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrpl{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsreset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsreset{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsunset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsunset{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"glsresetall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsresetall{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"glsunsetall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsunsetall{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"iftermexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftermexists{${1:label%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifentryused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifentryused{${1:label%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"printterms\"\n    },\n    {\n      \"name\": \"printterms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printterms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printterms\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLgidxChildSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxPostChild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxCategoryNameFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxCategorySep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSubCategorySep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxDictPostItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxdictindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxCurrentdb\"\n    },\n    {\n      \"name\": \"datagidxbalancefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxbalancetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxchildend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxchilditem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxchildstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxconvertchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxcurrentgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxdb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxdb{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxdescwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxdictparshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxdoseealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxdoseealso{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxextendedtoascii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxgroupheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxgroupsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxhighoptfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxhighoptfilename{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxlastlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"datagidxlink{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxlocalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxlocationwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxnamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxprevgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxseealsoend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxseealsostart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxsetstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxsetstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxshowgroupsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxshowgroupstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxshowifdraft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxshowifdraft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxstripaccents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxsymalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datagidxtarget{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"datagidxtermkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datagidxwordifygreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldofirstlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldolocationlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxChildCountLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxChildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxChildrenSeeAlso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxChildStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxChildStyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxDictHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxDisableHyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxDoSeeOrLocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxEnableHyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxForeachEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxForeachEntry{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFormatAcr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgidxFormatAcr{${1:label}}{${2:long}}{${3:short}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFormatAcrUC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgidxFormatAcrUC{${1:label}}{${2:long}}{${3:short}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFormatDesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxFormatDesc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFormatSee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxFormatSee{${1:tag}}{${2:label list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxFormatSeeAlso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxFormatSeeAlso{${1:tag}}{${2:label list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxGroupHeaderTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxGroupHeaderTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxLocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxLocationF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxLocationF{${1:loc1}}{${2:loc2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxLocationFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgidxLocationFF{${1:loc1}}{${2:loc2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxLocationSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxNameCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxNameCase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxNameFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxNameFont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxNoHeading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxPostChildName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxPostDescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxPostName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxPreLocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSeeAlso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSeeList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSeeList{${1:label list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSeeTagFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSeeTagFont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSetColumns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgidxSetColumns{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgidxSymbolDescLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSymbolDescRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSymbolDescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgidxSymDescSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLidxFormatSeeItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLidxFormatSeeItem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLidxSeeLastSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLidxSeeSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdatagidxbalance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdatagidxshowgroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnewtermfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnewtermfield{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newtermfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtermfield{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"postnewtermhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtermsrestoreonecolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtermsstartpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seealsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLgidxChildCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLgidxChildCount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/datagidx#c\": [\n      \"utf8\",\n      \"optimize=${1|off,low,high|}\",\n      \"columns=${1:integer}\",\n      \"child=${1|named,noname|}\",\n      \"namecase=${1|nochange,uc,lc,firstuc,capitalise|}\",\n      \"namefont=${1:font cmd}\",\n      \"postname=${1:text}\",\n      \"postdesc=${1|dot,none|}\",\n      \"prelocation=${1|none,enspace,space,dotfill,hfill|}\",\n      \"location=${1|hide,list,first|}\",\n      \"see=${1|comma,brackets,dot,space,nosep,semicolon,location|}\",\n      \"symboldesc=${1|symbol,desc,(symbol) desc,desc (symbol),symbol desc,desc symbol|}\",\n      \"compositor=${1:symbol}\",\n      \"draft\",\n      \"final\",\n      \"verbose\",\n      \"nowarn\"\n    ],\n    \"\\\\loadgidx,\\\\newgidx\": [\n      \"showgroups\",\n      \"style=${1|index,indexalign,align,gloss,dict|}\",\n      \"sort={${1:sort cmd}}\",\n      \"balance\",\n      \"heading=${1:text}\",\n      \"postheading=${1:text}\"\n    ],\n    \"\\\\newterm#c,\\\\newacro#c\": [\n      \"database=${1:database name}\",\n      \"label=${1:label}\",\n      \"sort=${1:sort key}\",\n      \"parent=${1:parent entry}\",\n      \"text=${1:text}\",\n      \"description=${1:text}\",\n      \"plural=${1:plural form}\",\n      \"symbol=${1:symbol}\",\n      \"short=${1:short form}\",\n      \"long=${1:long form}\",\n      \"shortplural=${1:short plural form}\",\n      \"longplural=${1:long plural form}\",\n      \"see=${1:label}\",\n      \"seealso=${1:label}\"\n    ],\n    \"\\\\printterms\": [\n      \"database=${1:database name}\",\n      \"postdesc=${1|dot,none|}\",\n      \"prelocation=${1|none,enspace,space,dotfill,hfill|}\",\n      \"location=${1|hide,list,first|}\",\n      \"symboldesc=${1|symbol,desc,(symbol) desc,desc (symbol),symbol desc,desc symbol|}\",\n      \"columns=${1:integer}\",\n      \"namecase=${1|nochange,uc,lc,firstuc,capitalise|}\",\n      \"namefont=${1:font cmd}\",\n      \"postname=${1:text}\",\n      \"see=${1|comma,brackets,dot,space,nosep,semicolon,location|}\",\n      \"child=${1|named,noname|}\",\n      \"showgroups\",\n      \"style=${1|index,indexalign,align,gloss,dict|}\",\n      \"symbolwidth=\",\n      \"locationwidth=\",\n      \"childsort\",\n      \"heading=${1:text}\",\n      \"postheading=${1:text}\",\n      \"sort={${1:sort cmd}}\",\n      \"balance\",\n      \"condition={${1:condition}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datagidx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datapie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLpiechart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLpiechart{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLpiechart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTLpiechart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLpiechart[${4:condition}]{${1:settings%keyvals}}{${2:db%special}}{${3:values}}\",\n        \"keys\": [\n          \"\\\\DTLpiechart\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DTLpievariable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpiepercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLdisplayinnerlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplayinnerlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplayouterlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplayouterlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetpiesegmentcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsetpiesegmentcolor{${1:index}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdopiesegmentcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdopiesegmentcolor{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdocurrentpiesegmentcolor\"\n    },\n    {\n      \"name\": \"DTLpieoutlinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpieoutlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpieatbegintikz\"\n    },\n    {\n      \"name\": \"DTLpieatendtikz\"\n    },\n    {\n      \"name\": \"DTLcolorpiechartfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcolorpiecharttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcutawayratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgetpiesegmentcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgetpiesegmentcolor{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLinnerratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLouterratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLradius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrotateinnerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrotateinnertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrotateouterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrotateoutertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstartangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLcolorpiechart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLrotateinner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLrotateouter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLpieroundvar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/datapie#c\": [\n      \"color\",\n      \"gray\",\n      \"rotateinner\",\n      \"norotateinner\",\n      \"rotateouter\",\n      \"norotateouter\"\n    ],\n    \"\\\\DTLpiechart\": [\n      \"variable=${1:\\\\var}\",\n      \"start=${1:angle}\",\n      \"radius=\",\n      \"innerratio=${1:factor}\",\n      \"outerratio=${1:factor}\",\n      \"cutawayratio=${1:factor}\",\n      \"inneroffset=\",\n      \"outeroffset=\",\n      \"cutawayoffset=\",\n      \"cutaway={${1:num1,num2,...}}\",\n      \"cutaway={${1:range1,range2,...}}\",\n      \"innerlabel=${1:text}\",\n      \"outerlabel=${1:text}\",\n      \"rotateinner\",\n      \"rotateouter\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datapie#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dataplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLplot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLplot{${1:db list%special}}{${2:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTLplot\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DTLplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLplot[${3:condition}]{${1:db list%special}}{${2:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTLplot\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DTLplotatbegintikz\"\n    },\n    {\n      \"name\": \"DTLplotatendtikz\"\n    },\n    {\n      \"name\": \"dtlplothandlermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlplothandlermark{${1:pgf code}}\"\n      }\n    },\n    {\n      \"name\": \"DTLaddtoplotlegend\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLaddtoplotlegend{${1:marker}}{${2:line style}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLplotwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLplotheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLticklength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLminorticklength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLticklabeloffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmintickgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlegendxoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlegendyoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLplotmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLplotmarkcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLplotlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLplotlinecolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLXAxisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLYAxisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmajorgridstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLminorgridstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatlegend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatlegend{${1:legend}}\"\n      }\n    },\n    {\n      \"name\": \"DTLplotstream\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLplotstream{${1:db%special}}{${2:x key}}{${3:y key}}\"\n      }\n    },\n    {\n      \"name\": \"DTLplotstream\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLplotstream[${4:condition}]{${1:db%special}}{${2:x key}}{${3:y key}}\"\n      }\n    },\n    {\n      \"name\": \"DTLboxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLboxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLgridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmaxX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLmaxY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLminminortickgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLminX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLminY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLshowlinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLshowlinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLshowmarkersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLshowmarkerstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxaxisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxaxistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxminorticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxminorticstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxticsinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxticsintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLxticstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyaxisfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyaxistrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyminorticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyminorticstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyticsinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyticsintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLyticstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLshowlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLshowmarkers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLxaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLxminortics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLxtics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLxticsin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLyaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLyminortics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLytics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTLyticsin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLplotroundXvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLplotroundYvar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DTLplot\": [\n      \"x=${1:db key}\",\n      \"y=${1:db key}\",\n      \"markcolors={${1:color1,color2,...}}\",\n      \"linecolors={${1:color1,color2,...}}\",\n      \"colors={${1:color1,color2,...}}\",\n      \"marks={${1:mark1,mark2,...}}\",\n      \"lines={${1:linestyle1,linestyle2,...}}\",\n      \"width=\",\n      \"height=\",\n      \"style=${1|both,lines,markers|}\",\n      \"axes=${1|both,x,y,none|}\",\n      \"box\",\n      \"xtics\",\n      \"ytics\",\n      \"xminortics\",\n      \"yminortics\",\n      \"xticdir=${1|in,out|}\",\n      \"yticdir=${1|in,out|}\",\n      \"ticdir=${1|in,out|}\",\n      \"bounds={${1:min-x,min-y,max-x,max-y}}\",\n      \"minx=${1:decimal}\",\n      \"miny=${1:decimal}\",\n      \"maxx=${1:decimal}\",\n      \"maxy=${1:decimal}\",\n      \"xticpoints={${1:decimal1,decimal2,...}}\",\n      \"xticgap=\",\n      \"yticpoints={${1:decimal1,decimal2,...}}\",\n      \"yticgap=\",\n      \"grid\",\n      \"xticlabels={${1:text1,text2,...}}\",\n      \"yticlabels={${1:text1,text2,...}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"legend=${1|none,north,northeast,east,southeast,south,southwest,west,northwest|}\",\n      \"legendlabels={${1:text1,text2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dataref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xtab\",\n      \"if\": \"usagereport\"\n    },\n    {\n      \"name\": \"booktabs\",\n      \"if\": \"usagereport\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drefusagereport\",\n      \"if\": \"usagereport\"\n    },\n    {\n      \"name\": \"drefset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drefset{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"drefset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drefset[${3:options%keyvals}]{${1:name}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefsave\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drefsave{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"drefsave\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drefsave[${3:options%keyvals}]{${1:name}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"drefinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefinput[${2:prefix}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dref{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dref[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dref*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dref*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefvalueof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefvalueof{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drefref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefref{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drefsethelp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drefsethelp{${1:pattern}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"drefhelp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefhelp{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"drefresult\"\n    },\n    {\n      \"name\": \"drefcalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefcalc{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"drefcalc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefcalc[${2:options%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefcalc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefcalc*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"drefcalc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefcalc*[${2:options%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefformat{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"drefcalc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefcalc*[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefrel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefrel{${1:key or value}}\"\n      }\n    },\n    {\n      \"name\": \"drefrel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefrel[${2:options%keyvals}]{${1:key or value}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefrel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefrel*{${1:key or value}}\"\n      }\n    },\n    {\n      \"name\": \"drefrel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drefrel*[${2:options%keyvals}]{${1:key or value}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drefrow{${1:csv list}}{${2:key template}}\"\n      }\n    },\n    {\n      \"name\": \"drefrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drefrow[${3:options%keyvals}]{${1:csv list}}{${2:key template}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drefrow*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drefrow*{${1:csv list}}{${2:key template}}\"\n      }\n    },\n    {\n      \"name\": \"drefassert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefassert{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"drefkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drefkeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\drefset#c,\\\\drefsave#c,\\\\dref#c,\\\\dref*#c,\\\\drefcalc#c,\\\\drefcalc*#c,\\\\drefrel#c,\\\\drefrel*#c,\\\\drefrow#c,\\\\drefkeys#c\": [\n      \"set=${1:key}\",\n      \"save=${1:key}\",\n      \"to macro=${1:macro}\",\n      \"prefix=${1:key prefix}\",\n      \"ignoremissing\",\n      \"defaultvalue=${1:value}\",\n      \"unit=${1:unit}\",\n      \"unit/format=${1|false,plain,siunitx|}\",\n      \"unit/format default=${1|false,plain,siunitx|}\",\n      \"unit/new scala={${1:scala}}\",\n      \"unit/scale to=${1:unit}\",\n      \"unit/scale to auto\",\n      \"unit/scale to auto=${1:number}\",\n      \"scale by=${1:key or value}\",\n      \"percent\",\n      \"negate\",\n      \"divide by=${1:key or value}\",\n      \"abs\",\n      \"factor of=${1:key or value}\",\n      \"percent of=${1:key or value}\",\n      \"increase from=${1:key or value}\",\n      \"decrease from=${1:key or value}\",\n      \"increase factor from=${1:key or value}\",\n      \"decrease factor from=${1:key or value}\",\n      \"increase percent from=${1:key or value}\",\n      \"decrease percent from=${1:key or value}\",\n      \"noassert\",\n      \"annotate=${1|none,footnote,pdfcomment,typeout|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/datatool-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"datatool-fp\"\n    },\n    {\n      \"name\": \"datatool-pgfmath\",\n      \"if\": \"math=pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLsetnumberchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsetnumberchars{${1:number group character}}{${2:decimal character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewcurrencysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewcurrencysymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifint{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifreal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifreal{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifcurrency{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcurrencyunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifcurrencyunit{${1:text%plain}}{${2:symbol}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumerical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnumerical{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifstring{${1:text%plain}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifcasedatatype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifcasedatatype{${1:text%plain}}{${2:string case}}{${3:int case}}{${4:real case}}{${5:currency case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumeq{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringeq{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringeq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringeq*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifeq{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifeq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifeq*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumlt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringlt{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringlt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringlt*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLiflt{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLiflt*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifnumgt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringgt{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringgt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifstringgt*{${1:string1}}{${2:string2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifgt{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifgt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifgt*{${1:arg1}}{${2:arg2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifnumclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringclosedbetween{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringclosedbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringclosedbetween*{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifclosedbetween{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifclosedbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifclosedbetween*{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifnumopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringopenbetween{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifstringopenbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifstringopenbetween*{${1:string}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifopenbetween{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifopenbetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifopenbetween*{${1:arg}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifFPclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifFPclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifFPopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLifFPopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifAllUpperCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifAllUpperCase{${1:string}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifAllLowerCase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifAllLowerCase{${1:string}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifSubString{${1:string}}{${2:substring}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifStartsWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifStartsWith{${1:string}}{${2:substring}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifintclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifintclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifintopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifintopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisstring{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumerical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisnumerical{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiscurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLiscurrency{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiscurrencyunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiscurrencyunit{${1:test}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisreal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisreal{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLisint{${1:test}}\"\n      }\n    },\n    {\n      \"name\": \"DTLislt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLislt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisilt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisilt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisgt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisigt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisigt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiseq{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisieq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisieq{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisclosedbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisiclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisiclosedbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisopenbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisiopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisiopenbetween{${1:arg}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPlt{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPlteq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPlteq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPgt{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPgteq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPgteq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisFPeq{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisFPclosedbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisFPopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisFPopenbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisSubString{${1:string}}{${2:substring}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisPrefix{${1:string}}{${2:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLisinlist{${1:element}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisnumclosedbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLisnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLisnumopenbetween{${1:num}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"DTLconverttodecimal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLconverttodecimal{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdecimaltolocale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLdecimaltolocale{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdecimaltocurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLdecimaltocurrency{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetdefaultcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetdefaultcurrency{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DTLadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLaddall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLaddall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgaddall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgaddall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLneg{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgneg{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsqrt{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgsqrt{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLminall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgminall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgminall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLmaxall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmaxall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgmaxall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLmeanforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgmeanforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgmeanforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLvarianceforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgvarianceforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgvarianceforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsdforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgsdforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgsdforall{${1:cmd}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLround{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLground{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLtrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLtrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgtrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgtrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"DTLclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLgclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsubstitute{${1:cmd}}{${2:original}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsubstituteall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsubstituteall{${1:cmd}}{${2:original}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsplitstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLsplitstring{${1:string}}{${2:split text}}{${3:before cmd%cmd}}{${4:after cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLinitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLinitials{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"DTLstoreinitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLstoreinitials{${1:string}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLafterinitials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLbetweeninitials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLinitialhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLafterinitialbeforehyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLformatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLformatlist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifDTLlistskipempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistskipemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistskipemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatoxford\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLandname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLlistformatitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLlistformatitem{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifinlist{${1:element}}{${2:list}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnumitemsinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLnumitemsinlist{${1:list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLlistelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLlistelement{${1:list}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLfetchlistelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLfetchlistelement{${1:list}}{${2:index}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsortlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsortlist{${1:list cmd}}{${2:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlcompare{${1:register}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"dtlicompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlicompare{${1:register}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"ifdtlcompareskipcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcompareskipcstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcompareskipcsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlwordindexcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlwordindexcompare{${1:register}}{${2:word1}}{${3:word1}}\"\n      }\n    },\n    {\n      \"name\": \"dtlletterindexcompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlletterindexcompare{${1:register}}{${2:letter1}}{${3:letter2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlicomparewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlicomparewords{${1:count}}{${2:word1}}{${3:word2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcomparewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlcomparewords{${1:count}}{${2:word1}}{${3:word2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlinsertinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlinsertinto{${1:element}}{${2:list cmd}}{${3:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"edtlinsertinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edtlinsertinto{${1:element}}{${2:list cmd}}{${3:criteria cmd}}\"\n      }\n    },\n    {\n      \"name\": \"datatoolpersoncomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolplacecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolsubjectcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datatoolparenstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlsetcharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetcharcode{${1:character}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetlccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetlccharcode{${1:character}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetUTFviiicharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetUTFviiicharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetUTFviiilccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetUTFviiilccharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetdefaultUTFviiicharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetdefaultUTFviiicharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsetdefaultUTFviiilccharcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlsetdefaultUTFviiilccharcode{${1:octet tokens}}{${2:count}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifcasechargroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifcasechargroup{${1:char}}{${2:case letter}}{${3:case digit}}{${4:case symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dtlparsewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlparsewords{${1:phrase}}{${2:handler cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlgforint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdtlverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlverbosefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlenableUTFviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisableUTFviii\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dtlenvgforint\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/datatool-base#c\": [\n      \"verbose\",\n      \"math=${1|fp,pgfmath|}\",\n      \"utf8\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datatool-base#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datatool-fp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dtlifnumeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumeq{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumlt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumgt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifnumopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifnumclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtladd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtladd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtldiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtldiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlroot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlroot{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlround{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"dtltrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtltrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"dtlclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlneg{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"ifFPmessages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPmessagestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPmessagesfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/datatool-pgfmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dtlifnumeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumeq{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumlt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlifnumgt{${1:num1}}{${2:num2}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumopenbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifnumopenbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlifnumclosedbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dtlifnumclosedbetween{${1:num}}{${2:min}}{${3:max}}{${4:true case}}{${5:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtladd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtladd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtldiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtldiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlroot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlroot{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlround{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"dtltrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtltrunc{${1:cmd}}{${2:num}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"dtlclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlclip{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmin{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlmax{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"dtlabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlabs{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"dtlneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlneg{${1:cmd}}{${2:num}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/datatool.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    },\n    {\n      \"name\": \"datatool-pgfmath\",\n      \"if\": \"math=pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTLnewdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewdb{${1:db%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgnewdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgnewdb{${1:db%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifdbempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifdbempty{${1:db%special}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLrowcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLrowcount{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcolumncount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcolumncount{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLnewrow{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLnewdbentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLnewdbentry{${1:db%special}}{${2:dbkey}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlexpandnewvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoexpandnewvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLaddentryforrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLaddentryforrow{${1:db%special}}{${2:assign list}}{${3:condition}}{${4:dbkey}}{${5:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetheader\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsetheader{${1:db%special}}{${2:dbkey}}{${3:header}}\"\n      }\n    },\n    {\n      \"name\": \"DTLaddcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLaddcolumn{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloaddb{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLloaddb[${3:options%keyvals}]{${1:db%specialDef}}{${2:filename%file}}\",\n        \"keys\": [\n          \"\\\\DTLloaddb,\\\\DTLloadrawdb\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifDTLnewdbonload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnewdbonloadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnewdbonloadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldefaultkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsettabseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsettabseparator{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaketabspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLsetseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetseparator{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsetdelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsetdelimiter{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadrawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloadrawdb{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloadrawdb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLloadrawdb[${3:options%keyvals}]{${1:db%specialDef}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"DTLrawmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLrawmap{${1:string}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaydb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaydb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaydb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTLdisplaydb[${2:omit list}]{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylongdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdisplaylongdb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdisplaylongdb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTLdisplaylongdb[${2:options%keyvals}]{${1:db%special}}\",\n        \"keys\": [\n          \"\\\\DTLdisplaylongdb\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dtlstringalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlintalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrealalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcurrencyalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbeforecols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbetweencols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlaftercols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtladdalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtladdalign{${1:cmd}}{${2:type}}{${3:col index}}{${4:max cols}}\"\n      }\n    },\n    {\n      \"name\": \"dtlheaderformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlheaderformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlstringformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlstringformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlintformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlintformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlrealformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlrealformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcurrencyformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlcurrencyformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"dtldisplayvalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaystarttab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplayendtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplayafterhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldisplaystartrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLforeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLforeach{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLforeach[${4:condition}]{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLforeach*{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeach*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLforeach*[${4:condition}]{${1:db%special}}{${2:assign list}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"theDTLrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDTLrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcurrentindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLiffirstrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiffirstrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLiflastrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLiflastrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifoddrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLifoddrow{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavelastrowcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLsavelastrowcount{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLforeachkeyinrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLforeachkeyinrow{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dtlkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstringnull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLnumbernull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLifnull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnull{${1:cmd}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifnullorempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifnullorempty{${1:cmd}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"dtlnovalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlswaprows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlswaprows{${1:db%special}}{${2:row1 index}}{${3:row2 index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremoverow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLremoverow{${1:db%special}}{${2:row index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLappendtorow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLappendtorow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLreplaceentryforrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLreplaceentryforrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremoveentryfromrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLremoveentryfromrow{${1:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLremovecurrentrow\"\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsumforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLsumforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLsumforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsumcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsumcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLmeanforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmeanforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmeanforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLvarianceforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLvarianceforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLvarianceforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsdforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLsdforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLsdforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsdforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLsdforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLminforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLminforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLminforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLminforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLminforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys[${4:condition}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforkeys\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"DTLmaxforkeys[${4:condition}][${5:assign list}]{${1:db%special}}{${2:key list}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLmaxforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLmaxforcolumn{${1:db%special}}{${2:dbkey}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLcomputebounds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"DTLcomputebounds{${1:db%special}}{${2:x key}}{${3:y key}}{${4:minX%cmd}}{${5:minY%cmd}}{${6:maxX%cmd}}{${7:maxY%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsort\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlsort{${1:sort criteria}}{${2:db%special}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"dtlsort\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dtlsort[${4:replacement key list}]{${1:sort criteria}}{${2:db%special}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsort{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLsort[${3:replacement key list}]{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsort*{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsort*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTLsort*[${3:replacement key list}]{${1:sort criteria}}{${2:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavedb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsavedb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsavetexdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsavetexdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLsaverawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLsaverawdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLprotectedsaverawdb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLprotectedsaverawdb{${1:db%special}}{${2:filename}}\"\n      }\n    },\n    {\n      \"name\": \"DTLloaddbtex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTLloaddbtex{${1:cmd}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"dtllastloadeddb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcleardb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLcleardb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgcleardb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgcleardb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLdeletedb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLdeletedb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgdeletedb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTLgdeletedb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetdatatype\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetdatatype{${1:cmd}}{${2:db%special}}{${3:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLunsettype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLstringtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLinttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLrealtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLcurrencytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTLifdbexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLifdbexists{${1:db%special}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifhaskey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifhaskey{${1:db%special}}{${2:dbkey}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetcolumnindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetcolumnindex{${1:cmd}}{${2:db%special}}{${3:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetkeyforcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLgetkeyforcolumn{${1:cmd}}{${2:db%special}}{${3:column index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcolumnindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlcolumnindex{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetkeydata\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLgetkeydata{${1:dbkey}}{${2:db%special}}{${3:col cmd%cmd}}{${4:type cmd%cmd}}{${5:header cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetvalue{${1:cmd}}{${2:db%special}}{${3:row}}{${4:column}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetlocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetlocation{${1:row cmd%cmd}}{${2:column cmd%cmd}}{${3:db%special}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetvalueforkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTLgetvalueforkey{${1:cmd}}{${2:dbkey}}{${3:db%special}}{${4:ref key}}{${5:ref value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetrowforkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetrowforkey{${1:cmd}}{${2:db%special}}{${3:ref key}}{${4:ref value}}\"\n      }\n    },\n    {\n      \"name\": \"DTLfetch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLfetch{${1:db%special}}{${2:col1 name}}{${3:col1 value}}{${4:col2 name}}\"\n      }\n    },\n    {\n      \"name\": \"DTLassign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLassign{${1:db%special}}{${2:row index}}{${3:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLassignfirstmatch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLassignfirstmatch{${1:db%special}}{${2:dbkey}}{${3:value}}{${4:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"xDTLassignfirstmatch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xDTLassignfirstmatch{${1:db%special}}{${2:dbkey}}{${3:value}}{${4:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLswaprows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTLswaprows{${1:db%special}}{${2:row1 index}}{${3:row2 index}}\"\n      }\n    },\n    {\n      \"name\": \"DTLgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"xdtlgetrowindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xdtlgetrowindex{${1:row cmd%cmd}}{${2:db%special}}{${3:col index}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlcurrentrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlbeforerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlafterrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrownum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlcolumnnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtldbname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlgetrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlgetrow{${1:db%special}}{${2:row index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetrowforvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlgetrowforvalue{${1:db%special}}{${2:col index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"edtlgetrowforvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edtlgetrowforvalue{${1:db%special}}{${2:col index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlrecombine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlrecombineomitcurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlsplitrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlsplitrow{${1:row specs}}{${2:col index}}{${3:before cmd%cmd}}{${4:after cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetentryfromcurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlgetentryfromcurrentrow{${1:cmd}}{${2:col index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlgetentryfromrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dtlgetentryfromrow{${1:cmd}}{${2:col index}}{${3:row toks}}\"\n      }\n    },\n    {\n      \"name\": \"dtlreplaceentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlreplaceentryincurrentrow{${1:new value}}{${2:col index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlswapentriesincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlswapentriesincurrentrow{${1:col1 index}}{${2:col2 index}}\"\n      }\n    },\n    {\n      \"name\": \"dtlappendentrytocurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlappendentrytocurrentrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlupdateentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlupdateentryincurrentrow{${1:dbkey}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"dtlremoveentryincurrentrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlremoveentryincurrentrow{${1:col index}}\"\n      }\n    },\n    {\n      \"name\": \"in\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"in{${1:db%special}}\"\n      },\n      \"detail\": \"∈\",\n      \"doc\": \"Set membership, variant\"\n    },\n    {\n      \"name\": \"do\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"do{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforcolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlforcolumn{${1:cmd}}{${2:db%special}}{${3:dbkey}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"dtlforcolumnidx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dtlforcolumnidx{${1:cmd}}{${2:db%special}}{${3:col index}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"theHDTLrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHDTLrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlforeachlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlshowdb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlshowdb{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"dtlshowdbkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtlshowdbkeys{${1:db%special}}\"\n      }\n    },\n    {\n      \"name\": \"dtlshowtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtlshowtype{${1:db%special}}{${2:dbkey}}\"\n      }\n    },\n    {\n      \"name\": \"ifdtlnoheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoheadertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlnoheaderfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdtlautokeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlautokeystrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtlautokeysfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DTLenvforeach\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:condition}]{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:db%special}}{${2:assign list}}\"\n      }\n    },\n    {\n      \"name\": \"DTLenvforeach*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:condition}]{${1:db%special}}{${2:assign list}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/datatool#c\": [\n      \"utf8\",\n      \"verbose\",\n      \"math=${1|fp,pgfmath|}\",\n      \"delimiter=${1:delimiter}\",\n      \"separator=${1:separator}\"\n    ],\n    \"\\\\DTLloaddb,\\\\DTLloadrawdb\": [\n      \"noheader\",\n      \"keys={${1:key1,key2,...}}\",\n      \"autokeys\",\n      \"headers={${1:header1,header2,...}}\",\n      \"omitlines=${1:integer}\"\n    ],\n    \"\\\\DTLdisplaylongdb\": [\n      \"caption={${1:text}}\",\n      \"contcaption={${1:text}}\",\n      \"shortcaption={${1:text}}\",\n      \"label=\",\n      \"omit={${1:key1,key2,...}}\",\n      \"foot={${1:text}}\",\n      \"lastfoot={${1:text}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datatool#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"datax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datax{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"dataxfile\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/datax#c\": [\n      \"dataxfile=${1:file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datax#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dateiliste.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"rcsinfo\"\n    },\n    {\n      \"name\": \"ltxtable\"\n    },\n    {\n      \"name\": \"svninfo\",\n      \"if\": \"svn\"\n    },\n    {\n      \"name\": \"svninfo\",\n      \"if\": \"subversion\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProvideFileInfos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideFileInfos{${1:id-string}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"mainFileToList\"\n    },\n    {\n      \"name\": \"printFileList\"\n    },\n    {\n      \"name\": \"printFileList\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printFileList[${1:section command}]\"\n      }\n    },\n    {\n      \"name\": \"fileListName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileListPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileNameName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageName\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dateiliste#c\": [\n      \"addmain\",\n      \"noaddmain\",\n      \"cat12\",\n      \"nocat12\",\n      \"showpages\",\n      \"noshowpages\",\n      \"svn\",\n      \"subversion\",\n      \"cvs\",\n      \"rcs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dateiliste#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datenumber.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setstartyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstartyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"thestartyear\"\n    },\n    {\n      \"name\": \"thedatenumber\"\n    },\n    {\n      \"name\": \"thedateyear\"\n    },\n    {\n      \"name\": \"thedatemonth\"\n    },\n    {\n      \"name\": \"thedateday\"\n    },\n    {\n      \"name\": \"thedatedayname\"\n    },\n    {\n      \"name\": \"setdatenumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setdatenumber{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"setdatebynumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdatebynumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nextdate\"\n    },\n    {\n      \"name\": \"prevdate\"\n    },\n    {\n      \"name\": \"setdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setdate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"setdatetoday\"\n    },\n    {\n      \"name\": \"datemonthname\"\n    },\n    {\n      \"name\": \"datedayname\"\n    },\n    {\n      \"name\": \"datedate\"\n    },\n    {\n      \"name\": \"setmydatenumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmydatenumber{${1:numbercount}}{${2:year}}{${3:month}}{${4:day}}\"\n      }\n    },\n    {\n      \"name\": \"setmydatebynumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmydatebynumber{${1:number}}{${2:yearcount}}{${3:monthcount}}{${4:daycount}}\"\n      }\n    },\n    {\n      \"name\": \"mynextdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mynextdate{${1:yearcount}}{${2:monthcount}}{${3:daycount}}\"\n      }\n    },\n    {\n      \"name\": \"mynextdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mynextdate{${1:yearcount}}{${2:monthcount}}{${3:daycount}}\"\n      }\n    },\n    {\n      \"name\": \"setmonthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonthname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setdayname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdayname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setdaynamebynumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdaynamebynumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dateselectlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateselectlanguage{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\dateselectlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifleapyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifleapyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"ifvaliddate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifvaliddate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/datenumber#c\": [\n      \"english\",\n      \"USenglish\",\n      \"french\",\n      \"italian\",\n      \"spanish\",\n      \"german\",\n      \"ngerman\"\n    ],\n    \"\\\\dateselectlanguage#c\": [\n      \"english\",\n      \"USenglish\",\n      \"french\",\n      \"spanish\",\n      \"german\",\n      \"ngerman\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datenumber#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datestamp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adddatestamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adddatestamp{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"adddaystamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adddaystamp{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addmonthstamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addmonthstamp{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addyearstamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addyearstamp{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"luacodefordatestamp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luacodefordatestamp{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/datetime2-calc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfcalendar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTMsavejulianday\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavejulianday{${1:name}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaveddatetojulianday\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsaveddatetojulianday{${1:name}}{${2:register}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaveddateoffsettojulianday\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMsaveddateoffsettojulianday{${1:name}}{${2:offset}}{${3:register}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTMifdate{${1:name}}{${2:test}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaveddatediff\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMsaveddatediff{${1:name1}}{${2:name2}}{${3:register}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaveaszulutime\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DTMsaveaszulutime{${1:name}}{${2:YYYY}}{${3:MM}}{${4:DD}}{${5:hh}}{${6:mm}}{${7:ss}}{${8:TZh}}{${9:TZm}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtozulu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMtozulu{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcomputedayofweekindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMcomputedayofweekindex{${1:YYYY-MM-DD}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DTMweekdayname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMWeekdayname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMshortweekdayname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMshortWeekdayname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dtmnamewarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dtmnamewarning{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dtmSundayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmMondayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmTuesdayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmWednesdayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmThursdayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmFridayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtmSaturdayIndex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/datetime2-en-fulltext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"calc\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"calc=true\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"showdow\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"showdow=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTMAfterNoonstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMafternoonstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenfulltextmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMHalfPaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhalfpaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMMinutePaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMminutepaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMMinutesPaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMminutespaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMMinutesTostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMminutestostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMMinuteTostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMminutetostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMMorningstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmorningstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMOClockstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMoclockstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMQuarterPaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMquarterpaststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMQuarterTostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMquartertostring\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/datetime2-en-fulltext#c\": [\n      \"yearmonthsep=${1:separator}\",\n      \"monthdaysep=${1:separator}\",\n      \"dayyearsep=${1:separator}\",\n      \"datesep=${1:separator}\",\n      \"hourminsep=${1:separator}\",\n      \"minsecsep=${1:separator}\",\n      \"timesep=${1:separator}\",\n      \"datetimesep=${1:separator}\",\n      \"timezonesep=${1:separator}\",\n      \"showseconds\",\n      \"showdate\",\n      \"showzone\",\n      \"showzoneminutes\",\n      \"showisoZ\",\n      \"useregional=${1|false,text,numeric,num|}\",\n      \"showdow\",\n      \"warn\",\n      \"style=${1:style name}\",\n      \"calc\",\n      \"${1:language}\"\n    ],\n    \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c\": [\n      \"en-fulltext\",\n      \"en-FullText\",\n      \"en-FULLTEXT\"\n    ],\n    \"\\\\DTMsettimestyle#c\": [\n      \"en-Fulltext\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/datetime2-en-fulltext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/datetime2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tracklang\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"calc\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"calc=true\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"showdow\"\n    },\n    {\n      \"name\": \"datetime2-calc\",\n      \"if\": \"showdow=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DTMdisplaydate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTMdisplaydate{${1:year}}{${2:month}}{${3:day}}{${4:day of week}}\"\n      }\n    },\n    {\n      \"name\": \"DTMDisplaydate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTMDisplaydate{${1:year}}{${2:month}}{${3:day}}{${4:day of week}}\"\n      }\n    },\n    {\n      \"name\": \"Today\"\n    },\n    {\n      \"name\": \"DTMtoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMToday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"DTMDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMDate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdate*{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"DTMDate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMDate*{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdisplaytime\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMdisplaytime{${1:hour}}{${2:minute}}{${3:second}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdisplayzone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMdisplayzone{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcurrenttime\"\n    },\n    {\n      \"name\": \"DTMcurrentzone\"\n    },\n    {\n      \"name\": \"DTMtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMtime{${1:hh:mm:ss}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdisplay\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DTMdisplay{${1:year}}{${2:month}}{${3:day}}{${4:day of week}}{${5:hour}}{${6:min}}{${7:sec}}{${8:hour offset}}{${9:min offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMDisplay\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DTMDisplay{${1:year}}{${2:month}}{${3:day}}{${4:day of week}}{${5:hour}}{${6:min}}{${7:sec}}{${8:hour offset}}{${9:min offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnow\"\n    },\n    {\n      \"name\": \"DTMNow\"\n    },\n    {\n      \"name\": \"DTMsavedate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavedate{${1:name}}{${2:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavenoparsedate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTMsavenoparsedate{${1:name}}{${2:YYYY}}{${3:MM}}{${4:DD}}{${5:dow}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavetime\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavetime{${1:name}}{${2:hh:mm:ss}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavetimezn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavetimezn{${1:name}}{${2:hh:mm:ss TZh:TZm}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavetimestamp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavetimestamp{${1:name}}{${2:YYYY-MM-DDThh:mm:ss TZh:TZm}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavepdftimestamp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavepdftimestamp{${1:name}}{${2:PDF data}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavefrompdfdata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavefrompdfdata{${1:name}}{${2:PDF data}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavenow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsavenow{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsavefilemoddate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsavefilemoddate{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmakeglobal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmakeglobal{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusedate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMUsedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMUsedate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusetime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusetime{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusezone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusezone{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMuse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMUse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMUse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifsaveddate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifsaveddate{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchyear{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchmonth{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchday{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchdow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchdow{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchhour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchhour{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchminute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchminute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchsecond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchsecond{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchTZhour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchTZhour{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfetchTZminute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfetchTZminute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsetdatestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsetdatestyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c,\\\\DTMsetzonestyle#c,\\\\DTMsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMsettimestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsettimestyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c,\\\\DTMsetzonestyle#c,\\\\DTMsetstyle#c\",\n          \"\\\\DTMsettimestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMsetzonestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsetzonestyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c,\\\\DTMsetzonestyle#c,\\\\DTMsetstyle#c\",\n          \"\\\\DTMsetzonestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMsetstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsetstyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c,\\\\DTMsetzonestyle#c,\\\\DTMsetstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMtryregional\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMtryregional{${1:lang code}}{${2:country code}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtryregional\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTMtryregional[${3:lang name}]{${1:lang code}}{${2:country code}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtryregional*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMtryregional*{${1:lang code cs}}{${2:country code cs}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtryregional*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DTMtryregional*[${3:lang name}]{${1:lang code cs}}{${2:country code cs}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnewdatestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMnewdatestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinaldot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnewtimestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMnewtimestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnewzonestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMnewzonestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnewstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTMnewstyle{${1:name}}{${2:data style def}}{${3:time style def}}{${4:zone style def}}{${5:full style def}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrenewdatestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMrenewdatestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrenewtimestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMrenewtimestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrenewzonestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMrenewzonestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrenewstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMrenewstyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMprovidedatestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMprovidedatestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMprovidetimestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMprovidetimestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMprovidezonestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMprovidezonestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMprovidestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMprovidestyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifhasstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifhasstyle{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifhasdatestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifhasdatestyle{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifhastimestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifhastimestyle{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifhaszonestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifhaszonestyle{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtwodigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMtwodigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcentury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcentury{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdivhundred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdivhundred{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMtexorpdfstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMtexorpdfstring{${1:TeX}}{${2:PDF}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsep{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusezonemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMusezonemap{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefzonemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMdefzonemap{${1:hour offset}}{${2:minute offset}}{${3:abbr}}\"\n      }\n    },\n    {\n      \"name\": \"DTMNatoZoneMaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMclearmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMclearmap{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMresetzones\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhaszonemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTMhaszonemap{${1:hour offset}}{${2:minute offset}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusezonemapordefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMusezonemapordefault{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlangsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlangsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMlangsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMlangsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DTMlangsetup[${2:module list}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMlangsetup#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RequireDateTimeModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireDateTimeModule{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusemodule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMusemodule{${1:language}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdialecttomodulemap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdialecttomodulemap{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmonthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMMonthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMshortmonthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMshortMonthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMshortMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DTMsetup,\\\\usepackage/datetime2#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMsetregional\"\n    },\n    {\n      \"name\": \"DTMsetregional\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DTMsetregional[${1:value%keyvals}]\",\n        \"keys\": [\n          \"\\\\DTMsetregional\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DTMdefboolkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMdefboolkey{${1:region}}{${2:key%plain}}{${3:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefboolkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DTMdefboolkey{${1:region}}{${2:key%plain}}[${4:default}]{${3:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefboolkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}\",\n        \"snippet\": \"DTMdefboolkey{${1:region}}{${2:key%plain}}[${5:mp}]{${3:choice list}}[${6:default}]{${4:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefchoicekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTMdefchoicekey{${1:region}}{${2:key%plain}}{${3:choice list}}{${4:default}}{${5:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefchoicekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}{}\",\n        \"snippet\": \"DTMdefchoicekey{${1:region}}{${2:key%plain}}[${6:bin}]{${3:choice list}}{${4:default}}{${5:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMdefkey{${1:region}}{${2:key%plain}}{${3:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdefkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DTMdefkey{${1:region}}{${2:key%plain}}[${4:default}]{${3:func}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifbool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTMifbool{${1:region}}{${2:key%plain}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"DTMifcaseregional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMifcaseregional{${1:false}}{${2:text}}{${3:numeric}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsetbool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DTMsetbool{${1:region}}{${2:key%plain}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsetcurrentzone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMsetcurrentzone{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"DTMshowmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DTMshowmap{${1:hour offset}}{${2:minute offset}}\"\n      }\n    },\n    {\n      \"name\": \"ifDTMshowdow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowdowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowdowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesDateTimeModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesDateTimeModule{${1:module name}}\"\n      }\n    },\n    {\n      \"name\": \"ifDTMshowseconds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowsecondstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowsecondsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTMshowzone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowzonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowzonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTMshowzoneminutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowzoneminutestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowzoneminutesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTMshowisoZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowisoZtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowisoZfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDTMshowdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowdatetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMshowdatefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaiordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbahasaiordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbahasaimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbahasaimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbahasaidaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaimonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaidatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaitimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaidatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaitimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbahasaizonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasqueordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbasqueordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbasquemonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbasquemonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbasquedaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquemonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquedatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquetimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquedatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbasquezonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretonordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbretonordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbretonfmtordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbretonfmtordinal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbretonfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbretonfmtordsuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbretonmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbretonmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbretondaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretonmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretondatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretontimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretondatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretontimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbretonzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgarianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbulgarianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbulgarianyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbulgarianyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbulgarianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbulgarianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbulgarianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMbulgarianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMbulgariandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgarianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgariandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgariantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgariandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgariantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMbulgarianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalanordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcatalanordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcatalanmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcatalanmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcatalanMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcatalanMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcatalandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalanmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcatalanzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatianshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMcroatianshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMcroatiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMcroatianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMczechordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMczechmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMczechmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMczechMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMczechMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMczechdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMczechzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdanishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdanishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdanishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdanishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdanishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdanishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdanishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdanishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdanishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdanishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdanishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdutchshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdutchdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdutchzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglisham\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishpm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishmidnight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishnoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenglishampmfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenglishampmfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenglishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBtimesep \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGBfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenGBfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenGBzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSmonthdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSdowmonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSdayyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUStimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUStimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenUSfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenUSzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSstdzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSdstzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSatlanticzonemaps \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSeasternzonemaps \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUScentralzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSmountainzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSpacificzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSalaskazonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUShawaiialeutianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSsamoazonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenUSchamorrozonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAmonthdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAdowmonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAdayyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenCAfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenCAzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAstdzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAdstzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAnewfoundlandzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAatlanticzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAeasternzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAcentralzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCAmountainzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenCApacificzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenAUfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenAUzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUstdzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUdstzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUcentralzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUcentralwesternzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUwesternzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUeasternzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUchrismaszonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUlordhowezonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUnorfolkzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenAUcocoszonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenNZfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenNZfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenNZzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenGGfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenGGfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenGGzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenJEfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenJEfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenJEzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIMfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenIMfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenIMzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenMTfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenMTfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenMTzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMenIEfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMenIEfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMenIEzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantoordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMesperantoordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMesperantomonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMesperantomonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMesperantoMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMesperantoMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMesperantodaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantomonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantodatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantotimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantodatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantotimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMesperantozonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestonianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMestonianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMestonianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMestonianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMestonianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMestonianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMestoniandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestonianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestoniandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestoniantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestoniandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestoniantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMestonianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishshortMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishshortMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfinnishshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfinnishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfinnishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMfrenchshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMfrenchmidnight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchnoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchtimesymsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchhoursym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMfrenchzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgalicianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgalicianshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgalicianshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgaliciandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgalicianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgaliciandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgaliciantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgaliciandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgaliciantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgalicianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermanordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermanmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdeATmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdeATmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermanshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgermanshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdeATshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdeATshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMdeCHshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMdeCHshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgermandowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermanmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgermantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeDEtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeATtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMdeCHtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreekordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgreekordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgreekmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgreekmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgreekMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMgreekMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMgreekdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreekmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreekdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreektimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreekdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreektimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMgreekzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMhebrewzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandicordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMicelandicordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMicelandicmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMicelandicmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMicelandicMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMicelandicMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMicelandicdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandicmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandicdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandictimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandicdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandictimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMicelandiczonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMirishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMirishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMirishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMirishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMirishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMirishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMirishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitalianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitalianshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitalianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitalianshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitaliandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitaliandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitaliantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitaliandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitaliantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianpm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianmidnight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitaliannoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMitalianampmfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMitalianampmfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMitalianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatindatefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlatindatefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlatinordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlatinordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlatinyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlatinyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlatinmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlatinmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlatindaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatinmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatindatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatintimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatindatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatintimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlatinzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbiannewmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbiannewmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbiannewMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbiannewMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbianoldmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbianoldmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbianoldMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbianoldMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMlsorbianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMlsorbiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMlsorbianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyarordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmagyarordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmagyaryear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmagyaryear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmagyarmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmagyarmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmagyarMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMmagyarMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMmagyardaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyarmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyardatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyartimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyardatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyartimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMmagyarzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorskordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMnorskordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnorskmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMnorskmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnorskMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMnorskMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnorskweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMnorskweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnorskWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMnorskWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMnorskdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorskmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorskdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorsktimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorskdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorsktimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMnorskzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMpolishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMpolishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMpolishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMpolishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMpolishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMpolishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMpolishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMpolishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMpolishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMpolishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMpolishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugesordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMportugesordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMportugesmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMportugesmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMportugesweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMportugesweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMportugesWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMportugesWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMportugesdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugesmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugesdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugestimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugesdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugestimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMportugeszonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromanianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianshortmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianshortmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianshortMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianshortMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromanianshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMromanianshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMromaniandowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromaniandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromanianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromaniandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromaniantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromaniandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromaniantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMromanianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMrussianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrussianyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMrussianyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrussianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMrussianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrussianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMrussianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMrussiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMrussianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsaminordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsaminordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaminmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsaminmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsaminMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsaminMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsamindaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsaminmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsamindatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsamintimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsamindatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsamintimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsaminzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMscottishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMscottishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMscottishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMscottishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMscottishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMscottishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMscottishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbianciMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianciMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianctimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbianctimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiancweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrekweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrekweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrekWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrekWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrijweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrijweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrijWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrijWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyriMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyriMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiancyrnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiancyrnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianczonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiandayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiandayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiandowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbianimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatekweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatekweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatekWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatekWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatijweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatijweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatijWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatijWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianlatnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianlatnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiannoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiannoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiannoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbiannoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianordinalROMAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianordinalROMAN{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianordinalroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianordinalroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMserbianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMserbianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMserbianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlBAtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlBAweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlBAweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrldatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrldatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrldaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrldayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrldayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrldowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrliMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrliMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlMEtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlMEweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlMEweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRSnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrlRStimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRStimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlRSweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlRSweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrCyrltimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrltimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrCyrlweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrCyrlweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnBAtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnBAweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnBAweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatndatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatndatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatndaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatndayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatndayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatndowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatniMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatniMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnMEtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnMEweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnMEweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSdayordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSdayordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSdowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSmonthordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSmonthordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSnoiMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSnoiMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRSnoimonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSnoimonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatnRStimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRStimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnRSweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnRSweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsrLatntimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatntimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsrLatnweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsrLatnweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovakordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMslovakordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovakmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMslovakmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovakMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMslovakMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovakdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovakmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovakdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovaktimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovakdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovaktimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovakzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMsloveneordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsloveneordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovenemonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMslovenemonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMsloveneMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMsloveneMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMslovenedaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenemonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenedatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenetimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenedatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMslovenezonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMspanishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMspanishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMspanishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMspanishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMspanishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMspanishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMspanishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMspanishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMspanishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMspanishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMspanishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMswedishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMswedishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMswedishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMswedishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMswedishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMswedishweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMswedishweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMswedishWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMswedishWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMswedishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMswedishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMturkishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMturkishmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMturkishmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMturkishMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMturkishMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMturkishdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMturkishzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiannominativemonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainiannominativemonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiannominativeMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainiannominativeMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiannominativeMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainiannominativeMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiangenitiveMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainiangenitiveMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiangenitiveMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainiangenitiveMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianshortMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianshortMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianshortweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianshortweekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianshortWeekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianshortWeekdayname{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMukrainianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMukrainiandowdaysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMukrainianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbianordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusorbianordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusorbiannewmonthname\"\n    },\n    {\n      \"name\": \"DTMusorbiannewMonthname\"\n    },\n    {\n      \"name\": \"DTMusorbianoldmonthname\"\n    },\n    {\n      \"name\": \"DTMusorbianoldMonthname\"\n    },\n    {\n      \"name\": \"DTMusorbianmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusorbianmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusorbianMonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMusorbianMonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMusorbiandaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbianmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbiandatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbiantimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbiandatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbiantimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMusorbianzonemaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMwelshordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTMwelshfmtordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMwelshfmtordinal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTMwelshmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMwelshmonthname{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"DTMwelshfmtordsuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTMwelshfmtordsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DTMwelshdaymonthsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshmonthyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshdatetimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshtimezonesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshdatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshtimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTMwelshzonemaps\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DTMsetdatestyle#c,\\\\DTMsettimestyle#c,\\\\DTMsetzonestyle#c,\\\\DTMsetstyle#c\": [\n      \"default\",\n      \"iso\",\n      \"yyyymd\",\n      \"ddmmyyyy\",\n      \"dmyyyy\",\n      \"dmyy\",\n      \"ddmmyy\",\n      \"mmddyyyy\",\n      \"mmddyy\",\n      \"mdyyyy\",\n      \"mdyy\",\n      \"pdf\",\n      \"bahasai\",\n      \"bahasai-numeric\",\n      \"basque\",\n      \"basque-numeric\",\n      \"breton\",\n      \"breton-numeric\",\n      \"bulgarian\",\n      \"bulgarian-numeric\",\n      \"catalan\",\n      \"catalan-numeric\",\n      \"croatian\",\n      \"croatian-numeric\",\n      \"czech\",\n      \"czech-numeric\",\n      \"danish\",\n      \"danish-numeric\",\n      \"dutch\",\n      \"dutch-numeric\",\n      \"english\",\n      \"en-GB\",\n      \"en-GB-numeric\",\n      \"en-US\",\n      \"en-US-numeric\",\n      \"en-CA\",\n      \"en-CA-numeric\",\n      \"en-AU\",\n      \"en-AU-numeric\",\n      \"en-NZ\",\n      \"en-NZ-numeric\",\n      \"en-GG\",\n      \"en-GG-numeric\",\n      \"en-JE\",\n      \"en-JE-numeric\",\n      \"en-IM\",\n      \"en-IM-numeric\",\n      \"en-MT\",\n      \"en-MT-numeric\",\n      \"en-IE\",\n      \"en-IE-numeric\",\n      \"esperanto\",\n      \"esperanto-numeric\",\n      \"estonian\",\n      \"estonian-numeric\",\n      \"finnish\",\n      \"finnish-numeric\",\n      \"french\",\n      \"french-numeric\",\n      \"galician\",\n      \"galician-numeric\",\n      \"german\",\n      \"german-numeric\",\n      \"de-DE\",\n      \"de-DE-numeric\",\n      \"de-AT\",\n      \"de-AT-numeric\",\n      \"de-CH\",\n      \"de-CH-numeric\",\n      \"greek\",\n      \"greek-numeric\",\n      \"hebrew\",\n      \"hebrew-numeric\",\n      \"icelandic\",\n      \"icelandic-numeric\",\n      \"irish\",\n      \"irish-numeric\",\n      \"italian\",\n      \"italian-numeric\",\n      \"latin\",\n      \"latin-numeric\",\n      \"lsorbian\",\n      \"lsorbian-numeric\",\n      \"magyar\",\n      \"magyar-numeric\",\n      \"norsk\",\n      \"norsk-numeric\",\n      \"polish\",\n      \"polish-numeric\",\n      \"portuges\",\n      \"portuges-numeric\",\n      \"romanian\",\n      \"romanian-numeric\",\n      \"russian\",\n      \"russian-numeric\",\n      \"samin\",\n      \"samin-numeric\",\n      \"scottish\",\n      \"scottish-numeric\",\n      \"serbian\",\n      \"serbian-numeric\",\n      \"sr-Latn\",\n      \"sr-Latn-numeric\",\n      \"sr-Latn-RS\",\n      \"sr-Latn-RS-numeric\",\n      \"sr-Latn-ME\",\n      \"sr-Latn-ME-numeric\",\n      \"sr-Latn-BA\",\n      \"sr-Latn-BA-numeric\",\n      \"serbianc\",\n      \"serbianc-numeric\",\n      \"sr-Cyrl\",\n      \"sr-Cyrl-numeric\",\n      \"sr-Cyrl\",\n      \"sr-Cyrl-numeric\",\n      \"sr-Cyrl-RS\",\n      \"sr-Cyrl-RS-numeric\",\n      \"sr-Cyrl-ME\",\n      \"sr-Cyrl-ME-numeric\",\n      \"sr-Cyrl-BA\",\n      \"sr-Cyrl-BA-numeric\",\n      \"slovak\",\n      \"slovak-numeric\",\n      \"slovene\",\n      \"slovene-numeric\",\n      \"spanish\",\n      \"spanish-numeric\",\n      \"swedish\",\n      \"swedish-numeric\",\n      \"turkish\",\n      \"turkish-numeric\",\n      \"ukrainian\",\n      \"ukrainian-numeric\",\n      \"usorbian\",\n      \"usorbian-numeric\",\n      \"welsh\",\n      \"welsh-numeric\"\n    ],\n    \"\\\\DTMsettimestyle#c\": [\n      \"hmmss\"\n    ],\n    \"\\\\DTMsetzonestyle#c\": [\n      \"map\",\n      \"hhmm\"\n    ],\n    \"\\\\DTMsetup,\\\\usepackage/datetime2#c\": [\n      \"yearmonthsep=${1:separator}\",\n      \"monthdaysep=${1:separator}\",\n      \"dayyearsep=${1:separator}\",\n      \"datesep=${1:separator}\",\n      \"hourminsep=${1:separator}\",\n      \"minsecsep=${1:separator}\",\n      \"timesep=${1:separator}\",\n      \"datetimesep=${1:separator}\",\n      \"timezonesep=${1:separator}\",\n      \"showseconds\",\n      \"showdate\",\n      \"showzone\",\n      \"showzoneminutes\",\n      \"showisoZ\",\n      \"useregional=${1|false,text,numeric,num|}\",\n      \"showdow\",\n      \"warn\"\n    ],\n    \"\\\\usepackage/datetime2#c\": [\n      \"style=${1:style name}\",\n      \"calc\",\n      \"${1:language}\"\n    ],\n    \"\\\\DTMsetregional\": [\n      \"false\",\n      \"text\",\n      \"numeric\"\n    ],\n    \"\\\\DTMlangsetup#c\": [\n      \"dowdaysep=${1:separator}\",\n      \"daymonthsep=${1:separator}\",\n      \"monthyearsep=${1:separator}\",\n      \"datesep=${1:separator}\",\n      \"timesep=${1:separator}\",\n      \"datetimesep=${1:separator}\",\n      \"timezonesep=${1:separator}\",\n      \"abbr\",\n      \"mapzone\",\n      \"ord=${1|level,raise,omit,sc|}\",\n      \"showdayofmonth\",\n      \"showyear\",\n      \"monthdaysep=${1:separator}\",\n      \"dayyearsep=${1:separator}\",\n      \"dowmonthsep=${1:separator}\",\n      \"zone=${1|std,standard,dst,daylight,atlantic,eastern,central,mountain,pacific,alaska,hawaii-aleutian,hawaii,aleutian,samoa,chamorro,clear,newfoundland,central-western,western,christmas,lord-howe,norfolk,cocos,keeling|}\",\n      \"pronunciation=${1|ekavian,ijekavian|}\",\n      \"monthi\",\n      \"leadingzero\",\n      \"monthord=${1|arabic,roman,romanlsc|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\DTMsetup,\\\\usepackage/datetime2#c\",\n    \"\\\\usepackage/datetime2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/daytime.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"daytime\"\n    },\n    {\n      \"name\": \"Daytime\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dblfnote.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DFNallowcbreak\"\n    },\n    {\n      \"name\": \"DFNalwaysdouble\"\n    },\n    {\n      \"name\": \"DFNinhibitcbreak\"\n    },\n    {\n      \"name\": \"DFNruleboth\"\n    },\n    {\n      \"name\": \"DFNruleleft\"\n    },\n    {\n      \"name\": \"DFNtrysingle\"\n    },\n    {\n      \"name\": \"DFNcolumnwidth\"\n    },\n    {\n      \"name\": \"DFNcolumnsep\"\n    },\n    {\n      \"name\": \"theDFNsloppiness\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dbshow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dbNewDatabase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbNewDatabase{${1:database}}{${2:attr1=val1,attr2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewDatabase\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dbNewDatabase[${3:base database}]{${1:database}}{${2:attr1=val1,attr2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewDatabase*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbNewDatabase*{${1:database}}{${2:attr1=val1,attr2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewDatabase*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbNewDatabase*{${1:database}}{${2:attr1=val1,attr2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dbshow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbshow{${1:style}}{${2:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbclear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbclear{${1:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewStyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dbNewStyle{${1:style}}{${2:database}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dbNewStyle#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"dbNewStyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dbNewStyle[${4:base styles}]{${1:style}}{${2:database}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dbNewStyle#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"dbdatesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbdatesep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewReviewPoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbNewReviewPoints{${1:name}}{${2:points}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewConditional\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dbNewConditional{${1:name}}{${2:attr}}{${3:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewConditional\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dbNewConditional{${1:name}}{${2:attr}}{${3:cond spec}}[${4:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbNewConditional*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dbNewConditional*{${1:name}}{${2:attr}}{${3:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewConditional*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dbNewConditional*{${1:name}}{${2:attr}}{${3:cond spec}}[${4:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbNewCond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dbNewCond{${1:name}}{${2:attr}}{${3:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewCond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dbNewCond{${1:name}}{${2:attr}}{${3:cond spec}}[${4:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbNewCond*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dbNewCond*{${1:name}}{${2:attr}}{${3:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewCond*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dbNewCond*{${1:name}}{${2:attr}}{${3:cond spec}}[${4:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbNewRawFilter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dbNewRawFilter{${1:name}}{${2:database}}{${3:attr}}{${4:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewRawFilter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"dbNewRawFilter{${1:name}}{${2:database}}{${3:attr}}{${4:cond spec}}[${5:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbNewRawFilter*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dbNewRawFilter*{${1:name}}{${2:database}}{${3:attr}}{${4:cond spec}}\"\n      }\n    },\n    {\n      \"name\": \"dbNewRawFilter*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"dbNewRawFilter*{${1:name}}{${2:database}}{${3:attr}}{${4:cond spec}}[${5:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbCombineConditionals\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbCombineConditionals{${1:name}}{${2:cond combination}}\"\n      }\n    },\n    {\n      \"name\": \"dbCombineConditionals\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dbCombineConditionals{${1:name}}{${2:cond combination}}[${3:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbCombCond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbCombCond{${1:name}}{${2:cond combination}}\"\n      }\n    },\n    {\n      \"name\": \"dbCombCond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dbCombCond{${1:name}}{${2:cond combination}}[${3:filter info}]\"\n      }\n    },\n    {\n      \"name\": \"dbitemkv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbitemkv{${1:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbitemkv\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dbitemkv{${1:database}}[${2:attr1=val1,attr2=val2,...}]\"\n      }\n    },\n    {\n      \"name\": \"dbsave\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbsave{${1:attr}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"dbsave*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbsave*{${1:attr}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"dbuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbuse{${1:attr}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfEmptyT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIfEmptyT{${1:true code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfEmptyF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIfEmptyF{${1:false code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfEmptyTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIfEmptyTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfLastT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIfLastT{${1:true code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfLastF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIfLastF{${1:false code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIfLastTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIfLastTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIntAbs{${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntSign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbIntSign{${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntDivRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIntDivRound{${1:int expr1}}{${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntDivTruncate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIntDivTruncate{${1:int expr1}}{${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntMax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIntMax{${1:int expr1}}{${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntMin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIntMin{${1:int expr1}}{${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dbIntMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbIntMod{${1:int expr1}}{${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dbFpSign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbFpSign{${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"dbval\"\n    },\n    {\n      \"name\": \"dbtoday\"\n    },\n    {\n      \"name\": \"dbDatabase\"\n    },\n    {\n      \"name\": \"dbFilterName\"\n    },\n    {\n      \"name\": \"dbFilterInfo\"\n    },\n    {\n      \"name\": \"dbIndex\"\n    },\n    {\n      \"name\": \"dbarabic\"\n    },\n    {\n      \"name\": \"dbalph\"\n    },\n    {\n      \"name\": \"dbAlph\"\n    },\n    {\n      \"name\": \"dbroman\"\n    },\n    {\n      \"name\": \"dbRoman\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dbFilters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbFilters\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:database}}\"\n      }\n    },\n    {\n      \"name\": \"dbitem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:database}}[${2:attr1=val1,attr2=val2,...}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\dbNewStyle#c\": [\n      \"filter=${1:filter}\",\n      \"raw-filter={${1:conditional expr}}\",\n      \"sort={${1:attr spec1,attr spec2,...}}\",\n      \"before-code=${1:code}\",\n      \"after-code=${1:code}\",\n      \"item-code=${1:code}\",\n      \"item-code*=${1:code}\",\n      \"item-before-code=${1:code}\",\n      \"item-after-code=${1:code}\",\n      \"${1:<attr>}/code=${2:code}\",\n      \"${1:<attr>}/code*=${2:code}\",\n      \"${1:<attr>}/before-code=${2:code}\",\n      \"${1:<attr>}/after-code=${2:code}\",\n      \"${1:<attr>}/item-code=${2:code}\",\n      \"${1:<attr>}/item-code*=${2:code}\",\n      \"${1:<attr>}/item-before-code=${2:code}\",\n      \"${1:<attr>}/item-after-code=${2:code}\",\n      \"${1:<attr>}/sep=${2:separator}\",\n      \"${1:<attr>}/format-code=${2:code}\",\n      \"${1:<attr>}/zfill\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dccpaper-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"baskervillef\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"GoSans\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"affil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Affilfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affilsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authblksep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conference{${1:name of conference}}\"\n      }\n    },\n    {\n      \"name\": \"conference*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conference*{${1:name of conference}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"FixTextHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushleftright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HeadTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"MainAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NormalFoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NormalHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OtherMainAuthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProperTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedParindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"raggedyright[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"submitted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"submitted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"subno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thecorrespondence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:name%text}]{${1:full version%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitleFoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TitleHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"captionsbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"widequote\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dcounter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DeclareDynamicCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDynamicCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"countstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countstyle{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"countstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"countstyle[${2:list of counters}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DynamicCount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DynamicCount{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ddphonism.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dmatrix{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"dmatrix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dmatrix[${2:options%keyvals}]{${1:number list}}\",\n        \"keys\": [\n          \"\\\\dmatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddiagram{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"ddiagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ddiagram[${2:options%keyvals}]{${1:number list}}\",\n        \"keys\": [\n          \"\\\\ddiagram\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddihedral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddihedral{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"ddihedral\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ddihedral[${2:options%keyvals}]{${1:number list}}\",\n        \"keys\": [\n          \"\\\\ddihedral\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"darrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"darrows{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"darrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"darrows[${2:options%keyvals}]{${1:number list}}\",\n        \"keys\": [\n          \"\\\\darrows\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drow{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"drow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drow[${2:options%keyvals}]{${1:number list}}\",\n        \"keys\": [\n          \"\\\\drow\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dmatrix\": [\n      \"sep=\",\n      \"vsep=\",\n      \"hsep=\",\n      \"lines\",\n      \"outside lines\",\n      \"inside lines\",\n      \"vlines\",\n      \"hlines\",\n      \"no tikz\"\n    ],\n    \"\\\\ddiagram\": [\n      \"name=\",\n      \"up=\",\n      \"arrow shift=\",\n      \"no numbers\",\n      \"no arrow\",\n      \"xshift=\",\n      \"yshift=\",\n      \"no tikz\"\n    ],\n    \"\\\\ddihedral\": [\n      \"t=\",\n      \"s=\",\n      \"c=\",\n      \"v=\",\n      \"no italics\",\n      \"new t=\",\n      \"new s=\",\n      \"new c=\",\n      \"new v=\",\n      \"no tikz\"\n    ],\n    \"\\\\darrows\": [\n      \"no tikz\"\n    ],\n    \"\\\\drow\": [\n      \"sep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/debate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"debate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"debate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"debate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"debate[${2:author}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/debate#c\": [\n      \"hide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/debate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/decimalcomma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"icomma\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/decision-table.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nicematrix\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dmntable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dmntable{${1:title}}{${2:hit policy}}{${3:input}}{${4:output}}{${5:entries}}\"\n      }\n    },\n    {\n      \"name\": \"dmnoutputtable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dmnoutputtable{${1:title}}{${2:hit policy}}{${3:output}}{${4:entries}}\"\n      }\n    },\n    {\n      \"name\": \"glossarytable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glossarytable{${1:title}}{${2:subtitles}}{${3:entries}}\"\n      }\n    },\n    {\n      \"name\": \"goaltable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"goaltable{${1:title}}{${2:entries}}\"\n      }\n    },\n    {\n      \"name\": \"pdmntable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pdmntable{${1:title}}{${2:hit policy}}{${3:inputs}}{${4:outputs}}{${5:output vals}}{${6:entries}}\"\n      }\n    },\n    {\n      \"name\": \"pdmnoutputtable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pdmnoutputtable{${1:title}}{${2:hit policy}}{${3:output}}{${4:output val}}{${5:probabilities}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/decorule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"decorule\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dejavu-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DejaVuSerifCondensed\"\n    },\n    {\n      \"name\": \"DejaVuSansCondensed\"\n    },\n    {\n      \"name\": \"DejaVuSansLight\"\n    },\n    {\n      \"name\": \"blackpointerleft\",\n      \"detail\": \"◄\",\n      \"doc\": \"Black left-pointing pointer\"\n    },\n    {\n      \"name\": \"blackpointerright\",\n      \"detail\": \"►\",\n      \"doc\": \"Black right-pointing pointer\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dejavu-otf#c\": [\n      \"usefilenames\",\n      \"mono\",\n      \"sans\",\n      \"serif\",\n      \"math\",\n      \"RM={${1:fontspec features}}\",\n      \"SS={${1:fontspec features}}\",\n      \"TT={${1:fontspec features}}\",\n      \"MM={${1:fontspec features}}\",\n      \"MMbold={${1:fontspec features}}\",\n      \"DefaultFeatures={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dejavu-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/delim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dleft\"\n    },\n    {\n      \"name\": \"dright\"\n    },\n    {\n      \"name\": \"dmiddle\"\n    },\n    {\n      \"name\": \"mnorm\"\n    },\n    {\n      \"name\": \"mbig\"\n    },\n    {\n      \"name\": \"mBig\"\n    },\n    {\n      \"name\": \"mbigg\"\n    },\n    {\n      \"name\": \"mBigg\"\n    },\n    {\n      \"name\": \"mauto\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/delimseasy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"prn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prnb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prnb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prnbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prnbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prnbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prnbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prnbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prnbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqpr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqprb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqprb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqprbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqprbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqprbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqprbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqprbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqprbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crlb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crlb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crlbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crlbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crlbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crlbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crlbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crlbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ngl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ngl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nglb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nglb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nglbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nglbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nglbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nglbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nglbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nglbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flrb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flrb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flrbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flrbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flrbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flrbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flrbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flrbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceilb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceilb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceilbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceilbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceilbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceilbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceilbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceilbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"absb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"absbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"absbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"absbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrmb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrmb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrmbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrmbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrmbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrmbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrmbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrmbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bprn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bprn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bprnb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bprnb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bprnbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bprnbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bprnbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bprnbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bprnbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bprnbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bsqpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsqpr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bsqprb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsqprb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bsqprbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsqprbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bsqprbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsqprbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bsqprbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsqprbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bcrl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcrlb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bcrlb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcrlbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bcrlbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcrlbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bcrlbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcrlbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bcrlbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bngl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bngl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnglb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnglb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnglbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnglbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnglbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnglbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnglbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnglbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bflr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bflr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bflrb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bflrb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bflrbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bflrbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bflrbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bflrbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bflrbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bflrbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bceilb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bceilb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bceilbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bceilbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bceilbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bceilbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bceilbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bceilbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Babs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Babs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Babsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Babsb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Babsbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Babsbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Babsbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Babsbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Babsbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Babsbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrmb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrmb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrmbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrmbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrmbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrmbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrmbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrmbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrpb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrpb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrpbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrpbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrpbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrpbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nrpbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrpbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rpqs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpqs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rpqsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpqsb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rpqsbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpqsbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rpqsbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpqsbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rpqsbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpqsbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrpb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrpb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrpbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrpbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrpbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrpbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bnrpbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnrpbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Brpqs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brpqs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Brpqsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brpqsb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Brpqsbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brpqsbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Brpqsbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brpqsbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Brpqsbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Brpqsbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stgt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stgtb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stgtb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stgtbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stgtbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stgtbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stgtbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stgtbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stgtbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bstgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bstgt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bstgtb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bstgtb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bstgtbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bstgtbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bstgtbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bstgtbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bstgtbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bstgtbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bigb\"\n    },\n    {\n      \"name\": \"bigbb\"\n    },\n    {\n      \"name\": \"bigbbb\"\n    },\n    {\n      \"name\": \"llgg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llgg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"llggb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llggb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"llggbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llggbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"llggbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llggbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"llggbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llggbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bllgg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bllgg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bllggb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bllggb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bllggbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bllggbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bllggbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bllggbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bllggbbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bllggbbbb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"valentine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valentine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"diamondsgbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diamondsgbf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bnom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnombb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnombb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnombbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnombbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnombbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnombbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnombb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnombb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnombbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnombbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnombbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnombbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomsq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomsq{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomsqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomsqb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomsqbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomsqbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomsqbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomsqbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomsqbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomsqbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomsq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomsq{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomsqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomsqb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomsqbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomsqbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomsqbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomsqbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomsqbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomsqbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomcrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomcrl{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomcrlb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomcrlb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomcrlbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomcrlbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomcrlbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomcrlbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomcrlbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomcrlbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomcrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomcrl{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomcrlb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomcrlb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomcrlbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomcrlbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomcrlbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomcrlbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomcrlbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomcrlbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomngl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomngl{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomnglb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomnglb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomnglbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomnglbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomnglbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomnglbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"bnomnglbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnomnglbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomngl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomngl{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomnglb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomnglb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomnglbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomnglbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomnglbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomnglbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Bbnomnglbbbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bbnomnglbbbb{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"Dprn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dprn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dsqpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dsqpr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dcrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dcrl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dngl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dngl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dabs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dnrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dnrm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dflr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dflr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dstgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dstgt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Labs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Labsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Labsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Labsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Labsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blceil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLceil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brceil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprnbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprnbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRprnbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsqpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsqprb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsqprbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsqprbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRsqprbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRcrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRcrlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRcrlbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRcrlbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRcrlbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRceil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRceilb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRceilbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRceilbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRceilbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRflr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRflrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRflrbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRflrbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRflrbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRngl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnglbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnglbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnglbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRabsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRabsbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRabsbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRabsbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnrmb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnrmbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnrmbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BRnrmbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstgtb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstgtbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstgtbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstgtbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blstgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blstgtb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blstgtbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blstgtbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blstgtbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstgtb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstgtbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstgtbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstgtbbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brstgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brstgtb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brstgtbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brstgtbbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brstgtbbbb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/delimset.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"delimsize\"\n    },\n    {\n      \"name\": \"kerndelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kerndelim{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"usedelim\"\n    },\n    {\n      \"name\": \"DeclareMathDelimiterSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMathDelimiterSet{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathDelimiterSet\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareMathDelimiterSet{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"selectdeliml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdeliml{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdeliml*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdeliml*{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdelim*{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"selectdelim[${2:class%plain}]{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelim\",\n      \"arg\": {\n        \"format\": \"[]*{}\",\n        \"snippet\": \"selectdelim[${2:class%plain}]*{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelimr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdelimr{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"selectdelimr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectdelimr*{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathDelimiterSel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareMathDelimiterSel{${1:command}}{${2:left-def%definition}}{${3:right-def%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parsedelimflags\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parsedelimflags{${1:compositor}}{${2:selector}}\"\n      }\n    },\n    {\n      \"name\": \"bigp\"\n    },\n    {\n      \"name\": \"bigb\"\n    },\n    {\n      \"name\": \"Bigb\"\n    },\n    {\n      \"name\": \"Biggb\"\n    },\n    {\n      \"name\": \"Biggp\"\n    },\n    {\n      \"name\": \"Bigp\"\n    },\n    {\n      \"name\": \"biggb\"\n    },\n    {\n      \"name\": \"biggp\"\n    },\n    {\n      \"name\": \"bigi\"\n    },\n    {\n      \"name\": \"Bigi\"\n    },\n    {\n      \"name\": \"biggi\"\n    },\n    {\n      \"name\": \"Biggi\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/delimset#c\": [\n      \"stddef\",\n      \"extdef\",\n      \"scriptstyle\"\n    ],\n    \"\\\\brk\": [\n      \"r\",\n      \"s\",\n      \"c\",\n      \"a\"\n    ],\n    \"\\\\eval\": [\n      \"v\",\n      \"s\"\n    ],\n    \"\\\\intv\": [\n      \"c\",\n      \"o\",\n      \"l\",\n      \"r\",\n      \"c\",\n      \"o\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/delimset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/democodelisting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"scontents\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DisplayCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisplayCode{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisplayCode[${2:options%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DemoCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DemoCode{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"DemoCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DemoCode[${2:options%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DemoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DemoCode{${1:st-name}}[${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"DemoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DemoCode[${2:options%keyvals}]{${1:st-name}}[${3:length}]\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TabbedDemoCode{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TabbedDemoCode[${2:options%keyvals}]{${1:st-name}}\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"TabbedDemoCode{${1:st-name}}[${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"TabbedDemoCode[${2:options%keyvals}]{${1:st-name}}[${3:length}]\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdclisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdclisting{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdcpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdcpar{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisplayCodeB{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisplayCodeB[${2:options}]{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"DemoCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DemoCodeB{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"DemoCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DemoCodeB[${2:options}]{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TabbedDemoCodeB{${1:st-name}}\"\n      }\n    },\n    {\n      \"name\": \"TabbedDemoCodeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TabbedDemoCodeB[${2:options}]{${1:st-name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"stcode\"\n    },\n    {\n      \"name\": \"stcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{stcode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"verbsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{stcode}\": [\n      \"st=${1:st-name}\",\n      \"store-env=${1:st-name}\",\n      \"print-env\",\n      \"write-env=${1:file.ext}\",\n      \"write-out=${1:file.ext}\",\n      \"overwrite\",\n      \"force-eol\"\n    ],\n    \"\\\\DisplayCode,\\\\DemoCode,\\\\TabbedDemoCode,\\\\setdclisting\": [\n      \"settexcs={${1:list of csnames}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcsstyle=${1:font commands}\",\n      \"settexcs2={${1:list of csnames}}\",\n      \"texcs2={${1:list of csnames}}\",\n      \"texcs2style=${1:font commands}\",\n      \"settexcs3={${1:list of csnames}}\",\n      \"texcs3={${1:list of csnames}}\",\n      \"texcs3style=${1:font commands}\",\n      \"setkeywd={${1:list of csnames}}\",\n      \"keywd={${1:list of keywords}}\",\n      \"keywdstyle=${1:font commands}\",\n      \"setkeywd2={${1:list of keywords}}\",\n      \"keywd2={${1:list of keywords}}\",\n      \"keywd2style=${1:font commands}\",\n      \"setkeywd3={${1:list of keywords}}\",\n      \"keywd3={${1:list of keywords}}\",\n      \"keywd3style=${1:font commands}\",\n      \"setemph={${1:identifier list}}\",\n      \"emph={${1:identifier list}}\",\n      \"emphstyle=${1:font commands}\",\n      \"setemph2={${1:identifier list}}\",\n      \"emph2={${1:identifier list}}\",\n      \"emph2style=${1:font commands}\",\n      \"setemph3={${1:identifier list}}\",\n      \"emph3={${1:identifier list}}\",\n      \"emph3style=${1:font commands}\",\n      \"stringstyle=${1:font commands}\",\n      \"commentstyle=${1:font commands}\",\n      \"bckgndcolor=\",\n      \"rulecolor=\",\n      \"numbers=${1|none,left|}\",\n      \"numberstyle=${1:font commands}\",\n      \"codeprefix=${1:prefix}\",\n      \"resultprefix=${1:prefix}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/democodetools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"democodelisting\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DescribeMacro{${1:macro%cmd}}{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DescribeMacro{${1:macro%cmd}}[${3:oarglist}]{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DescribeMacro*{${1:macro%cmd}}{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DescribeMacro*{${1:macro%cmd}}[${3:oarglist}]{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeArg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeArg*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArg*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeArg*[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeKey[${2:type}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKey*{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeKey*[${2:type}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeValue{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeValue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeValue[${2:type}]{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeValue*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeValue*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeValue*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeValue*[${2:type}]{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOption[${2:type}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOption*{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOption*[${2:type}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePackage[${2:type}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePackage*{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePackage*[${2:type}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Macro{${1:macro%cmd}}{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Macro{${1:macro%cmd}}[${3:oarglist}]{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}<>{}\",\n        \"snippet\": \"Macro{${1:macro%cmd}}<${3:embellishments}>{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}<>[]{}\",\n        \"snippet\": \"Macro{${1:macro%cmd}}<${4:embellishments}>[${3:oarglist}]{${2:marglist}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oarg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xarg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xarg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Arg[${2:type}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Key{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Key\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Key[${2:pre}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Keylst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Keylst{${1:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Keylst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Keylst[${2:default}]{${1:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"KeyUse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KeyUse{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"Env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"Env\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Env[${2:pre}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"Envlst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Envlst{${1:env1,env2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Envlst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Envlst[${2:pre}]{${1:env1,env2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Option\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Option[${2:pre}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Optionlst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Optionlst{${1:opt1,opt2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Optionlst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Optionlst[${2:pre}]{${1:opt1,opt2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Pack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pack{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"Pack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pack[${2:pre}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"Packlst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Packlst{${1:package1,package2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Packlst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Packlst[${2:pre}]{${1:package1,package2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Value\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Value{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Value\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Value[${2:pre}]{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"Valuelst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Valuelst{${1:val1,val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Valuelst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Valuelst[${2:pre}]{${1:val1,val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"MetaFmt\"\n    },\n    {\n      \"name\": \"MetaFmt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MetaFmt[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"MetaFmt*\"\n    },\n    {\n      \"name\": \"MetaFmt*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MetaFmt*[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"MarginNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarginNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dcAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcAuthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dcDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dcTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"dcMakeTitle\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Macros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macrolist}}\"\n      }\n    },\n    {\n      \"name\": \"Envs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envlist}}\"\n      }\n    },\n    {\n      \"name\": \"Syntax\"\n    },\n    {\n      \"name\": \"Args\"\n    },\n    {\n      \"name\": \"Keys\"\n    },\n    {\n      \"name\": \"Values\"\n    },\n    {\n      \"name\": \"Options\"\n    },\n    {\n      \"name\": \"dcAbstract\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/derivative.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"pdv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"pdv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"pdv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"pdv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"odv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"odv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"odv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"odv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"odv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"odv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"odv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"odv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"odv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"odv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"odv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"odv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"mdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"mdv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"mdv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"mdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"mdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"mdv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"mdv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"mdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"fdv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fdv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"fdv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"fdv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fdv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"fdv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"adv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"adv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"adv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"adv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"adv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"adv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"adv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"adv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"adv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"jdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"jdv[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"jdv[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jdv\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"jdv{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"jdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jdv{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"jdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}_{}^{}\",\n        \"snippet\": \"jdv*[${5:keyvals}]{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jdv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"jdv*[${3:keyvals}]{${1:function}}{${2:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jdv*\",\n      \"arg\": {\n        \"format\": \"{}{}_{}^{}\",\n        \"snippet\": \"jdv*{${1:function}}{${2:variables}}_{${3:pt1}}^{${4:pt2}}\"\n      }\n    },\n    {\n      \"name\": \"jdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jdv*{${1:function}}{${2:variables}}\"\n      }\n    },\n    {\n      \"name\": \"odif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"odif[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"odif{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"odif*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"odif*[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"odif*{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"pdif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdif[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdif{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"pdif*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdif*[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdif*{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"mdif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdif[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdif{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"mdif*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdif*[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdif*{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"fdif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fdif[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdif{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"fdif*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fdif*[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fdif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdif*{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"adif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adif[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adif{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"adif*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adif*[${2:keyvals}]{${1:variables}}\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adif*{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"derivset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivset{${1:derivative%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"derivset\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"derivset{${1:derivative%cmd}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\",\n          \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\",\n          \"\\\\derivset\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewDerivative{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"RenewDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RenewDerivative{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ProvideDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ProvideDerivative{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"DeclareDerivative{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"NewDifferential\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewDifferential{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"RenewDifferential\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RenewDifferential{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ProvideDifferential\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ProvideDifferential{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareDifferential\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"DeclareDifferential{${1:cmd}}{${2:infinitesimal%formula}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"slashfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slashfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"slashfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"slashfrac[${3:scale%keyvals}]{${1:numerator}}{${2:denominator}}\",\n        \"keys\": [\n          \"\\\\slashfrac\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/derivative#c\": [\n      \"italic\",\n      \"upright\"\n    ],\n    \"\\\\derivset,\\\\NewDerivative,\\\\RenewDerivative,\\\\ProvideDerivative,\\\\DeclareDerivative,\\\\pdv,\\\\pdv*,\\\\odv,\\\\odv*,\\\\mdv,\\\\mdv*,\\\\fdv,\\\\fdv*,\\\\adv,\\\\adv*,\\\\jdv,\\\\jdv*\": [\n      \"style-inf=${1:infinitesimal}\",\n      \"style-inf-num=${1:infinitesimal}\",\n      \"style-inf-den=${1:infinitesimal}\",\n      \"style-frac=${1:frac macro}\",\n      \"style-frac-/=${1:slashfrac macro}\",\n      \"style-var=${1|single,multiple|}\",\n      \"style-var-/=${1|single,multiple|}\",\n      \"style-var-!=${1|single,multiple,mixed|}\",\n      \"style-var-/!=${1|single,multiple,mixed|}\",\n      \"scale-eval=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-eval-/=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-eval-!=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-fun=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-var=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-var-!=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-frac=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-frac-/=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"delims-eval={${1:left delim}}{${2:right delim}}\",\n      \"delims-eval-/={${1:left delim}}{${2:right delim}}\",\n      \"delims-eval-!={${1:left delim}}{${2:right delim}}\",\n      \"delims-fun={${1:left delim}}{${2:right delim}}\",\n      \"delims-var={${1:left delim}}{${2:right delim}}\",\n      \"delims-var-!={${1:left delim}}{${2:right delim}}\",\n      \"delims-frac={${1:left delim}}{${2:right delim}}\",\n      \"delims-frac-/={${1:left delim}}{${2:right delim}}\",\n      \"sep-inf-ord=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-inf-fun=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-func=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-frac-fun=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-inf-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-var-ord=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-var-inf=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-inf=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-ord=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-var-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-eval-sb=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-eval-sp=${1:<num>, <mspace>, or <delim>}\",\n      \"switch-*\",\n      \"switch-/\",\n      \"switch-!\",\n      \"switch-sort\",\n      \"sort-method={${1:abs, lexical, number, sign, and/or symbol}}\",\n      \"sort-numerical=${1|auto,first,last,symbolic|}\",\n      \"sort-abs-reverse\",\n      \"sort-number-reverse\",\n      \"sort-sign-reverse\",\n      \"sort-symbol-reverse\",\n      \"sort-lexical-reverse\",\n      \"fun\",\n      \"frac\",\n      \"var\",\n      \"var=${1:none, all, or {cs-numbers}}\",\n      \"order={${1:cs-orders}}\",\n      \"ord={${1:cs-orders}}\",\n      \"mixed-order={${1:mixed order}}\",\n      \"mixord={${1:mixed order}}\"\n    ],\n    \"\\\\derivset,\\\\NewDifferential,\\\\RenewDifferential,\\\\ProvideDifferential,\\\\DeclareDifferential,\\\\odif,\\\\odif*,\\\\pdif,\\\\pdif*,\\\\mdif,\\\\mdif*,\\\\fdif,\\\\fdif*,\\\\adif,\\\\adif*\": [\n      \"style-inf=${1:infinitesimal}\",\n      \"style-var=${1|single,multiple,mixed|}\",\n      \"style-var-*=${1|single,multiple,mixed|}\",\n      \"scale-var=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"scale-var-*=${1|auto,none,big,Big,bigg,Bigg|}\",\n      \"delims-var={${1:left delim}}{${2:right delim}}\",\n      \"delims-var-*={${1:left delim}}{${2:right delim}}\",\n      \"sep-begin=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-inf-ord=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-inf-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-var-inf=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-var-var=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-ord-ord=${1:<num>, <mspace>, or <delim>}\",\n      \"sep-end=${1:<num>, <mspace>, or <delim>}\",\n      \"switch-*=${1|true,false|}\",\n      \"var\",\n      \"var=${1:none, all, or {cs-numbers}}\",\n      \"order={${1:cs-orders}}\",\n      \"ord={${1:cs-orders}}\"\n    ],\n    \"\\\\derivset\": [\n      \"scale-auto=${1|leftright,mleftright|}\"\n    ],\n    \"\\\\slashfrac\": [\n      \"auto\",\n      \"none\",\n      \"big\",\n      \"Big\",\n      \"bigg\",\n      \"Bigg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/derivative#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/desclist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"desclist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:prefix}}{${2:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"desclist\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:prefix}}{${2:suffix}}[${3:prototype}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dgruyter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"tipa\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"zi4\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"bigstrut\"\n    },\n    {\n      \"name\": \"supertabular\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"sidecap\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"doi\"\n    },\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"authblk\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"changepage\",\n      \"if\": \"margincol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"starttabularbody\"\n    },\n    {\n      \"name\": \"baretabulars\"\n    },\n    {\n      \"name\": \"layouttabulars\"\n    },\n    {\n      \"name\": \"articletype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articletype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"articlesubtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articlesubtype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"openaccess\"\n    },\n    {\n      \"name\": \"runningauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runningauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"runningtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runningtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"transabstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transabstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"transabstract\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"transabstract[${2:language}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"transkeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transkeywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"transkeywords\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"transkeywords[${2:language}]{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"correctionnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctionnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"correctionnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"correctionnote[${2:heading%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"classification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classification{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"classification\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"classification[${2:system}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"communicated\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"communicated{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"journalname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalname{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"journalyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"journalvolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalvolume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"journalissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalissue{${1:issue}}\"\n      }\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aop\"\n    },\n    {\n      \"name\": \"DOI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOI{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"contributioncopyright\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"contributioncopyright{${1:year}}{${2:holder}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"contributioncopyright\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"contributioncopyright[${4:imagefile}]{${1:year}}{${2:holder}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"articlenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"articlenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"graphicalabstract\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"graphicalabstract{${1:names}}{${2:title%text}}{${3:metainfo}}{${4:abstract%text}}{${5:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"contributor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"contributor{${1:name}}{${2:address}}{${3:email%URL}}{${4:imagefile}}{${5:short vita%text}}\"\n      }\n    },\n    {\n      \"name\": \"reviewauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"reviewinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewinfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"furtherreview\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"furtherreview{${1:text}}{${2:name}}{${3:address}}{${4:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"transtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"distributionseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"distributionseries{${1:series%text}}\"\n      }\n    },\n    {\n      \"name\": \"seriestitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriestitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"transseriestitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transseriestitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seriessubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriessubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"serieseditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"serieseditor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"seriesvolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriesvolume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collaborator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaborator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"edition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edition{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"publisherlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publisherlogo{${1:logo choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\publisherlogo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"authorinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorinfo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"isbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isbn{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"eisbnpdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eisbnpdf{${1:eISBN}}\"\n      }\n    },\n    {\n      \"name\": \"eisbnepub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eisbnepub{${1:eISBN}}\"\n      }\n    },\n    {\n      \"name\": \"issn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issn{${1:ISSN}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"copyrighttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrighttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cover{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"typesetter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printbind\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbind{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"otherpubl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"otherpubl{${1:title%text}}{${2:authors}}{${3:ISBN info}}\"\n      }\n    },\n    {\n      \"name\": \"otherpubl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"otherpubl[${4:imagefile}]{${1:title%text}}{${2:authors}}{${3:ISBN info}}\"\n      }\n    },\n    {\n      \"name\": \"otherpubl\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"otherpubl[${4:imagefile}][${5:volume}]{${1:title%text}}{${2:authors}}{${3:ISBN info}}\"\n      }\n    },\n    {\n      \"name\": \"makeadvertisement\"\n    },\n    {\n      \"name\": \"partmotto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmotto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contribution\"\n    },\n    {\n      \"name\": \"makecontributiontitle\"\n    },\n    {\n      \"name\": \"contributionauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributionauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contributionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contributionauthor[${2:mark}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contributionauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributionauthor*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"contributiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contributionsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributionsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contributionnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contributionnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acceptedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acknowledgementname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addissuecontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addissuecontentsline{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"addissuetwocolcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addissuetwocolcontentsline{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"adverttitlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baretablefirsthead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baretablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"baretablehead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baretablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"baretablelasttail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baretablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"baretabletail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baretabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"classificationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"communicatedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conflictofinterestname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CorrAuth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"correctionnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Footnotetextauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnotetextauthor{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Footnotetextnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnotetextnote{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fundingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"generaltitledef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"generaltitledef{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"graphicalabstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuetableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laytablefirsthead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laytablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"laytablehead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laytablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"laytablelasttail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laytablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"laytabletail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laytabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listauthorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnumberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberline{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"receivedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recital\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recital{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reviewedbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revisedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setisbn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setisbn{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"showinmm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showinmm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaptionrelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecaptionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tailrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefrontmatterpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinchapequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinchapfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinchapsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinchaptable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplainequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplainfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplainsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theplaintable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeisbnpdf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeisbnpdf{${1:ISBN}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:vignette choice%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{note}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acknowledgement\"\n    },\n    {\n      \"name\": \"funding\"\n    },\n    {\n      \"name\": \"conflictofinterest\"\n    },\n    {\n      \"name\": \"thegraphicalabstractsection\"\n    },\n    {\n      \"name\": \"contributors\"\n    },\n    {\n      \"name\": \"contributors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"advertisement\"\n    },\n    {\n      \"name\": \"advertisement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"legaltext\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dgruyter#c\": [\n      \"small\",\n      \"medium\",\n      \"big\",\n      \"margincol\",\n      \"online\",\n      \"print\",\n      \"printona4\",\n      \"work\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"dgdef\",\n      \"dgthm\"\n    ],\n    \"\\\\begin{note}#c\": [\n      \"DG_attention\",\n      \"DG_exercise\",\n      \"DG_information\",\n      \"DG_notice\",\n      \"DG_question\"\n    ],\n    \"\\\\publisherlogo#c\": [\n      \"dg-degruyter\",\n      \"dg-mouton\",\n      \"dg-saur\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dgruyter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dhua.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\",\n      \"if\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dhuaspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhuaSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dhuaxspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdhua\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdhua{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newtwopartdhua\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtwopartdhua{${1:cmd}}{${2:letter1}}{${3:letter2}}\"\n      }\n    },\n    {\n      \"name\": \"ua\"\n    },\n    {\n      \"name\": \"idR\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"oae\"\n    },\n    {\n      \"name\": \"so\"\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"uae\"\n    },\n    {\n      \"name\": \"vglu\"\n    },\n    {\n      \"name\": \"vglo\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"zT\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dhucs-gremph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dhucs\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GrEmphFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GrEmphHanjaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regremph\"\n    },\n    {\n      \"name\": \"ungremph\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dhucs-gremph#c\": [\n      \"bfemph\",\n      \"gremphhangul=${1:font}\",\n      \"gremphhanja=${1:font}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dhucs-gremph#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dhucs-interword.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dhucs\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"interhchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interhchar{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"interhword\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"interhword{${1:skip}}{${2:plus}}{${3:minus}}\"\n      }\n    },\n    {\n      \"name\": \"interhword\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"interhword[${4:xskip}]{${1:skip}}{${2:plus}}{${3:minus}}\"\n      }\n    },\n    {\n      \"name\": \"DEFAULTskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HWPinterwordskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowerhangul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setinterwordskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setinterwordskip{${1:skip}}{${2:plus}}{${3:minus}}\"\n      }\n    },\n    {\n      \"name\": \"setinterwordskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"setinterwordskip[${4:xskip}]{${1:skip}}{${2:plus}}{${3:minus}}\"\n      }\n    },\n    {\n      \"name\": \"ucsfninterwordhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widerhangul\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"engtext\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dhucs-interword#c\": [\n      \"HWP\",\n      \"default\",\n      \"nonfrench\",\n      \"wider\",\n      \"narrower\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dhucs-interword#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dhucs-setspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetHangulspace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHangulspace{${1:factor1}}{${2:factor2}}\"\n      }\n    },\n    {\n      \"name\": \"SetHangulVerbatimSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHangulVerbatimSpace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"hangulspacing\"\n    },\n    {\n      \"name\": \"hangulfspacing\"\n    },\n    {\n      \"name\": \"hangulverbspacing\"\n    },\n    {\n      \"name\": \"ucsfninterwordhook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dhucs-setspace#c\": [\n      \"nofloatspacing\",\n      \"noquotespacing\",\n      \"hangul\",\n      \"adjustfootnotesep\",\n      \"adjustverbatim\",\n      \"nodisplayskipstretch\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dhucs-setspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dhucs-trivcj.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"trivcjtypesetting\"\n    },\n    {\n      \"name\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Schinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tchinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interCJskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interXCJskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbs\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"japanese\"\n    },\n    {\n      \"name\": \"Schinese\"\n    },\n    {\n      \"name\": \"Tchinese\"\n    },\n    {\n      \"name\": \"chinese\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dhucs-ucshyper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dhucs-ucshyper#c\": [\n      \"dvips\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dhucs-ucshyper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dhucsfn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fnpara\",\n      \"if\": \"multipara\"\n    },\n    {\n      \"name\": \"fnpara\",\n      \"if\": \"para\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footnumbersep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dhucsfn#c\": [\n      \"superscript\",\n      \"parenthesis\",\n      \"hang\",\n      \"multipara\",\n      \"para\",\n      \"leftflush\",\n      \"indent\",\n      \"leftflushindent\",\n      \"hangpar\",\n      \"varhangpar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dhucsfn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/diadia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"pgfplotstable\"\n    },\n    {\n      \"name\": \"pgfcalendar\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pgfplotslibrarydateplot\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"diadiatab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diadiatab{${1:pgfplotstable options}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"diadiatab\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diadiatab[${3:options%keyvals}]{${1:pgfplotstable options}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\diadiatab#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diadiaaddplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diadiaaddplot{${1:addplot options}}{${2:key mappings}}{${3:file}}\"\n      }\n    },\n    {\n      \"name\": \"diadiaaddplot*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diadiaaddplot*{${1:addplot options}}{${2:key mappings}}{${3:file}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"annotation{${1:x}}{${2:y}}{${3:annotation%text}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"annotation[${4:TikZ options}]{${1:x}}{${2:y}}{${3:annotation%text}}\"\n      }\n    },\n    {\n      \"name\": \"setlimit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlimit{${1:limit list}}\"\n      }\n    },\n    {\n      \"name\": \"setlimit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlimit[${2:TikZ options}]{${1:limit list}}\"\n      }\n    },\n    {\n      \"name\": \"mcentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mcentry{${1:pharmaceutical}}{${2:morning}}{${3:noon}}{${4:evening}}{${5:night}}{${6:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"infobox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"infobox{${1:tcolorbox options}}{${2:date}}{${3:information%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"diadiaplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:pgfplots options}}\"\n      }\n    },\n    {\n      \"name\": \"diadiaplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:pgfplots options}}\",\n        \"keys\": [\n          \"\\\\begin{diadiaplot}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"medicationchart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:tcolorbox options}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"medicationchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:tcolorbox options}}{${2:date}}\",\n        \"keys\": [\n          \"\\\\begin{medicationchart}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diadiasidebyside\"\n    },\n    {\n      \"name\": \"diadiasidebyside\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{diadiasidebyside}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/diadia#c\": [\n      \"tabstyle=${1|simple,advanced|}\",\n      \"tabcolor=\",\n      \"plotstyle=${1|none,bloodsugar,bloodpressure,insulin,weight,cu,pulse,hbaonec|}\",\n      \"plotclosedcycle\",\n      \"mcnotewidth=\",\n      \"columnsep=\",\n      \"columnseprule=\",\n      \"columnseprulecolor=${1:color command}\"\n    ],\n    \"\\\\diadiatab#c\": [\n      \"tabstyle=${1|simple,advanced|}\",\n      \"tabcolor=\"\n    ],\n    \"\\\\begin{diadiaplot}#c\": [\n      \"plotstyle=${1|none,bloodsugar,bloodpressure,insulin,weight,cu,pulse,hbaonec|}\",\n      \"plotclosedcycle\"\n    ],\n    \"\\\\begin{medicationchart}#c\": [\n      \"mcnotewidth=\"\n    ],\n    \"\\\\begin{diadiasidebyside}#c\": [\n      \"columnsep=\",\n      \"columnseprule=\",\n      \"columnseprulecolor=${1:color command}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/diadia#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/diagbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"diagbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diagbox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"diagbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diagbox[${3:options%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\diagbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diagbox{${1:left%text}}{${2:middle%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"backslashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backslashbox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"backslashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"backslashbox[${3:width}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"backslashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"backslashbox[${3:width}][${4:trim%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\backslashbox,\\\\slashbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slashbox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"slashbox[${3:width}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"slashbox[${3:width}][${4:trim%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\backslashbox,\\\\slashbox\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\diagbox\": [\n      \"width=\",\n      \"height=\",\n      \"dir=${1|NW,NE,SW,SE|}\",\n      \"innerwidth=\",\n      \"innerleftsep=\",\n      \"innerrightsep=\",\n      \"outerleftsep=\",\n      \"outerrightsep=\",\n      \"leftsep=\",\n      \"rightsep=\",\n      \"trim=${1|l,r,lr,rl|}\",\n      \"font=${1:font commands}\",\n      \"linewidth=\",\n      \"linecolor=\"\n    ],\n    \"\\\\backslashbox,\\\\slashbox\": [\n      \"l\",\n      \"r\",\n      \"lr\",\n      \"rl\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/diagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"putsol\"\n    },\n    {\n      \"name\": \"normalnames\"\n    },\n    {\n      \"name\": \"reversednames\"\n    },\n    {\n      \"name\": \"Dr\"\n    },\n    {\n      \"name\": \"Prof\"\n    },\n    {\n      \"name\": \"ProfDr\"\n    },\n    {\n      \"name\": \"pieces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pieces{${1:pieces}}\"\n      }\n    },\n    {\n      \"name\": \"pieces\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pieces[${2:white+black}]{${1:pieces}}\"\n      }\n    },\n    {\n      \"name\": \"fen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fen{${1:pieces}}\"\n      }\n    },\n    {\n      \"name\": \"fen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fen[${2:white+black}]{${1:pieces}}\"\n      }\n    },\n    {\n      \"name\": \"stipulation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stipulation{${1:stipulation}}\"\n      }\n    },\n    {\n      \"name\": \"stip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stip{${1:stipulation}}\"\n      }\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"specialdiagnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialdiagnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sourcenr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sourcenr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"source{${1:source}}\"\n      }\n    },\n    {\n      \"name\": \"issue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pages{${1:pages}}\"\n      }\n    },\n    {\n      \"name\": \"day\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"day{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"month\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"month{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"months\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"months{${1:months}}\"\n      }\n    },\n    {\n      \"name\": \"year\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"year{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"tournament\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tournament{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tourn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tourn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"award\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"award{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cond{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"twins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twins{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"remark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"judgement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"judgement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"themes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"themes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"verticalcylinder\"\n    },\n    {\n      \"name\": \"horizontalcylinder\"\n    },\n    {\n      \"name\": \"noframe\"\n    },\n    {\n      \"name\": \"noinnerframe\"\n    },\n    {\n      \"name\": \"gridchess\"\n    },\n    {\n      \"name\": \"stdgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagleft\"\n    },\n    {\n      \"name\": \"diagcenter\"\n    },\n    {\n      \"name\": \"diagright\"\n    },\n    {\n      \"name\": \"widedias\"\n    },\n    {\n      \"name\": \"dianamestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dianamestyle{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\dianamestyle#c,\\\\solnamestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solnamestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solnamestyle{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\dianamestyle#c,\\\\solnamestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagnumbering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagnumbering{${1:numstyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\diagnumbering#c,\\\\setmonthstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonthstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonthstyle{${1:numstyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\diagnumbering#c,\\\\setmonthstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nocomputer\"\n    },\n    {\n      \"name\": \"showcomputer\"\n    },\n    {\n      \"name\": \"notcomputerproofedsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"computerproofedsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectelchfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectelchfont{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectelchfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagramx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagramxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagramxii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"diagnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"diagnum[${2:prefix}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"spacelayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacelayout{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\spacelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"allwhite\"\n    },\n    {\n      \"name\": \"switchcolors\"\n    },\n    {\n      \"name\": \"nofields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nofields{${1:list of squares}}\"\n      }\n    },\n    {\n      \"name\": \"nosquares\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nosquares{${1:list of squares}}\"\n      }\n    },\n    {\n      \"name\": \"fieldframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fieldframe{${1:list of fields}}\"\n      }\n    },\n    {\n      \"name\": \"magic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magic{${1:list of fields}}\"\n      }\n    },\n    {\n      \"name\": \"gridlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridlines{${1:list of lines}}\"\n      }\n    },\n    {\n      \"name\": \"swL\"\n    },\n    {\n      \"name\": \"ssL\"\n    },\n    {\n      \"name\": \"wNr\"\n    },\n    {\n      \"name\": \"nNr\"\n    },\n    {\n      \"name\": \"sNr\"\n    },\n    {\n      \"name\": \"wGh\"\n    },\n    {\n      \"name\": \"nGh\"\n    },\n    {\n      \"name\": \"sGh\"\n    },\n    {\n      \"name\": \"Imi\"\n    },\n    {\n      \"name\": \"wC\"\n    },\n    {\n      \"name\": \"nC\"\n    },\n    {\n      \"name\": \"sC\"\n    },\n    {\n      \"name\": \"wE\"\n    },\n    {\n      \"name\": \"sE\"\n    },\n    {\n      \"name\": \"nE\"\n    },\n    {\n      \"name\": \"wX\"\n    },\n    {\n      \"name\": \"sX\"\n    },\n    {\n      \"name\": \"nX\"\n    },\n    {\n      \"name\": \"set\"\n    },\n    {\n      \"name\": \"ra\"\n    },\n    {\n      \"name\": \"lra\"\n    },\n    {\n      \"name\": \"OO\"\n    },\n    {\n      \"name\": \"OOO\"\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"any\"\n    },\n    {\n      \"name\": \"DefinePieces\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefinePieces{${1:color letters}}{${2:piece letters}}{${3:rotation letters}}\"\n      }\n    },\n    {\n      \"name\": \"develop\"\n    },\n    {\n      \"name\": \"makeaindex\"\n    },\n    {\n      \"name\": \"authorindex\"\n    },\n    {\n      \"name\": \"makesindex\"\n    },\n    {\n      \"name\": \"sourceindex\"\n    },\n    {\n      \"name\": \"maketindex\"\n    },\n    {\n      \"name\": \"themeindex\"\n    },\n    {\n      \"name\": \"solpar\"\n    },\n    {\n      \"name\": \"after\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"after{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"authorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"awardfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cityfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Co\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Co{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"correction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correction{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dedicfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultDiagramSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultelchfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elchfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fidealbum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fidealbum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"further\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifimitator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imitatorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imitatortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legendfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodiagnumbering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalboardwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nowidedias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setboardwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"showtypis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showtypis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"solafterdiagram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solhead{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sourcefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacehorizontal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stipfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textproblem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thediag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"version\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"diagram\"\n    },\n    {\n      \"name\": \"diagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:<cols>x<${2:rows}>}]\"\n      }\n    },\n    {\n      \"name\": \"stereodiagram\"\n    },\n    {\n      \"name\": \"spacediagram\"\n    },\n    {\n      \"name\": \"figurine\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/diagram#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ],\n    \"\\\\dianamestyle#c,\\\\solnamestyle#c\": [\n      \"fullname\",\n      \"sirname\",\n      \"short\",\n      \"noname\"\n    ],\n    \"\\\\diagnumbering#c,\\\\setmonthstyle#c\": [\n      \"arabic\",\n      \"Roman\",\n      \"roman\",\n      \"Alph\",\n      \"alph\"\n    ],\n    \"\\\\selectelchfont\": [\n      \"pk\",\n      \"fs\"\n    ],\n    \"\\\\spacelayout\": [\n      \"vertical\",\n      \"horizontal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/diagram#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/diagxy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bfig\"\n    },\n    {\n      \"name\": \"efig\"\n    },\n    {\n      \"name\": \"mon^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"mon^{${1:L}}_{${2:L}}\"\n      }\n    },\n    {\n      \"name\": \"epi^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"epi^{${1:L}}_{${2:L}}\"\n      }\n    },\n    {\n      \"name\": \"toleft^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"toleft^{${1:L}}_{${2:L}}\"\n      }\n    },\n    {\n      \"name\": \"monleft^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"monleft^{${1:L}}_{${2:L}}\"\n      }\n    },\n    {\n      \"name\": \"epileft^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"epileft^{${1:L}}_{${2:L}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"place({${1:x}},{${2:y}})[${4:{${3:item}}}]\"\n      }\n    },\n    {\n      \"name\": \"twoar\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"twoar({${1:dx}},{${2:dy}})\"\n      }\n    },\n    {\n      \"name\": \"node \",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"node {${1:id}}({${2:x}},{${3:y}})[${5:{${4:N}}}]\"\n      }\n    },\n    {\n      \"name\": \"Loop\",\n      \"arg\": {\n        \"format\": \"(){}()_{}\",\n        \"snippet\": \"Loop({${1:x}},{${2:y}}){${3:N}}({${4:dirstart}},{${5:dirend}})_{${6:L}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dialogue.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"blkcntrl\"\n    },\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"direct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direct{${1:directions%text}}\"\n      }\n    },\n    {\n      \"name\": \"refer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refer{${1:speaker}}\"\n      }\n    },\n    {\n      \"name\": \"speak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speak{${1:speaker}}\"\n      }\n    },\n    {\n      \"name\": \"ReferStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DirectStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DialogueLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DialogueLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PreDialogue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dialogue\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dichokey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alter\"\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"name[${2:prefix}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"altindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keylabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thebacksteps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebinarycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebincouplet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecouplet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindentcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastcouplet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetemp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gprefix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:prefix}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dictsym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dsarchitectural\"\n    },\n    {\n      \"name\": \"dsbiological\"\n    },\n    {\n      \"name\": \"dschemical\"\n    },\n    {\n      \"name\": \"dsagricultural\"\n    },\n    {\n      \"name\": \"dsheraldical\"\n    },\n    {\n      \"name\": \"dsjuridical\"\n    },\n    {\n      \"name\": \"dsliterary\"\n    },\n    {\n      \"name\": \"dsmathematical\"\n    },\n    {\n      \"name\": \"dsrailways\"\n    },\n    {\n      \"name\": \"dstechnical\"\n    },\n    {\n      \"name\": \"dsmilitary\"\n    },\n    {\n      \"name\": \"dsaeronautical\"\n    },\n    {\n      \"name\": \"dscommercial\"\n    },\n    {\n      \"name\": \"dsmedical\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/dictsym#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/dictsym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/didec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"didecnew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didecnew{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"didecset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecset{${1:var}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecsetequal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecsetequal{${1:var1}}{${2:var2}}\"\n      }\n    },\n    {\n      \"name\": \"didecsetnegative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecsetnegative{${1:var}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecsetfp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecsetfp{${1:var}}{${2:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecadd{${1:expr1}}{${2:expr2}}\"\n      }\n    },\n    {\n      \"name\": \"didecadd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"didecadd[${3:var}]{${1:expr1}}{${2:expr2}}\"\n      }\n    },\n    {\n      \"name\": \"didecsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecsub{${1:expr1}}{${2:expr2}}\"\n      }\n    },\n    {\n      \"name\": \"didecsub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"didecsub[${3:var}]{${1:expr1}}{${2:expr2}}\"\n      }\n    },\n    {\n      \"name\": \"didecmulfp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecmulfp{${1:var}}{${2:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecmulfp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"didecmulfp[${3:var2}]{${1:var1}}{${2:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecdivfp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecdivfp{${1:var}}{${2:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecdivfp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"didecdivfp[${3:var2}]{${1:var1}}{${2:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecsetsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didecsetsum{${1:sum of exprs}}\"\n      }\n    },\n    {\n      \"name\": \"didecsetsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecsetsum{${1:var}}{${2:sum of exprs}}\"\n      }\n    },\n    {\n      \"name\": \"didectoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didectoint{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"didectofp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didectofp{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"didectofc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didectofc{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"didecuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didecuse{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"didecuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"didecuse[${2:keyvals}]{${1:var}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dideccoluse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dideccoluse{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dideccoluse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dideccoluse[${2:keyvals}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dideccolinvuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dideccolinvuse{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dideccolinvuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dideccolinvuse[${2:keyvals}]{${1:var}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"didecformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didecformat{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"didecformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"didecformat[${2:keyvals}]{${1:expr}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dideccolformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dideccolformat{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"dideccolformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dideccolformat[${2:keyvals}]{${1:expr}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dideccolinvformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dideccolinvformat{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"dideccolinvformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dideccolinvformat[${2:keyvals}]{${1:expr}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"didecsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"didecsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"didecwrite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"didecwrite{${1:var}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"didecifpositive\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"didecifpositive{${1:var}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"didecifnegative\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"didecifnegative{${1:var}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"didecifzero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"didecifzero{${1:var}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"dideciflowerthan\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dideciflowerthan{${1:expr1}}{${2:expr2}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"didecifequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"didecifequal{${1:expr1}}{${2:expr2}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"didecifgreaterthan\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"didecifgreaterthan{${1:expr1}}{${2:expr2}}{${3:true code}}{${4:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/didec#c\": [\n      \"int\",\n      \"fp\"\n    ],\n    \"\\\\didecuse,\\\\dideccolinvuse,\\\\didecformat,\\\\dideccolformat,\\\\dideccolinvformat,\\\\didecsetup\": [\n      \"decimal-separator=${1:separator}\",\n      \"grouping-separator=${1:separator}\",\n      \"currency={${1:prefix}}{${2:postfix}}\",\n      \"currency-negative={${1:prefix}}{${2:postfix}}\",\n      \"german\",\n      \"english\",\n      \"french\",\n      \"float\",\n      \"color-positive=\",\n      \"color-negative=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/didec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/diffcoeff.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"mleftright\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"diff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diff{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diff{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diff\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diff[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diff[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diff*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diff*{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diff*{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diff*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diff*[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diff*[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diff**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diff**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diff**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diff**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diff**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diff**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diff**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difs{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difs{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difs[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difs[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difs*{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difs*{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difs*[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difs*[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difs**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difs**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difs**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difs**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difs**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difs**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difc{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difc\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difc{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difc[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difc\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difc[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difc**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difc**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difc**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difc**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difc**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difc**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difc**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difc**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diffp{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diffp{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diffp[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diffp[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diffp*{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diffp*{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diffp*[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diffp*[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diffp**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"diffp**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"diffp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"diffp**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"diffp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"diffp**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difsp{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difsp{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difsp[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difsp[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difsp*{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difsp*{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difsp*[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difsp*[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difsp**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difsp**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difsp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difsp**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difsp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difsp**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difcp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difcp{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difcp\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difcp{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difcp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difcp[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difcp\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difcp[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difcp**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difcp**{${1:variable(${3:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difcp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"difcp**{${1:variable(${4:s})}}{${2:differentiand}}[${3:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"difcp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"difcp**[${3:order-spec}]{${1:variable(${4:s})}}{${2:differentiand}}\"\n      }\n    },\n    {\n      \"name\": \"difcp**\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"difcp**[${3:order-spec}]{${1:variable(${5:s})}}{${2:differentiand}}[${4:pt of eval}]\"\n      }\n    },\n    {\n      \"name\": \"negmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nilmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twomu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"difoverride\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"difoverride{${1:order}}\"\n      }\n    },\n    {\n      \"name\": \"difdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"difdef{${1:id-list}}{${2:variant-name}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\difdef\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"dl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dl{${1:variable(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"dl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dl[${2:order-spec}]{${1:variable(${3:s})}}\"\n      }\n    },\n    {\n      \"name\": \"difl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"difl{${1:variable(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"difl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"difl[${2:order-spec}]{${1:variable(${3:s})}}\"\n      }\n    },\n    {\n      \"name\": \"jacob\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jacob{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"difj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"difj{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareChildTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareChildTemplate{${1:object type}}{${2:parent template}}{${3:new template}}{${4:parameters}}{${5:new defaults}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/diffcoeff#c\": [\n      \"spaced=${1|1,0,-1|}\",\n      \"mleftright\",\n      \"def-file=${1:filename}\",\n      \"DIF={${1:keyvals}}\"\n    ],\n    \"\\\\difdef\": [\n      \"style=${1|frac,tfrac,dfrac,/,auto,big,Big,bigg,Bigg,_,dl,d^|}\",\n      \"slash-tok=${1:token(s)}\",\n      \"slash-sep=\",\n      \"derivand-sep=\",\n      \"op-symbol=${1:symbol}\",\n      \"op-symbol-alt=${1:symbol}\",\n      \"op-order-nudge=\",\n      \"var-sup-nudge=\",\n      \"multi-term-sep=\",\n      \"term-sep-adjust=\",\n      \"long-var-wrap=${1|dv,d(v),(dv)|}\",\n      \"lvwrap-Ldelim=${1:delimiter}\",\n      \"lvwrap-Rdelim=${1:delimiter}\",\n      \"lvwrap-sup-nudge=\",\n      \"outer-Ldelim=${1:delimiter}\",\n      \"outer-Rdelim=${1:delimiter}\",\n      \"elbowroom=\",\n      \"sub-nudge=\",\n      \"op-sub-nudge=\",\n      \"*derivand-sep=\",\n      \"*op-set-left\",\n      \"*italic-nudge=\",\n      \"*inner-wrap\",\n      \"*inner-Ldelim=${1:delimiter}\",\n      \"*inner-Rdelim=${1:delimiter}\",\n      \"*outer-Ldelim=${1:delimiter}\",\n      \"*outer-Rdelim=${1:delimiter}\",\n      \"*sub-nudge=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/diffcoeff#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/digicap-pro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"graphicxbox\"\n    },\n    {\n      \"name\": \"opacity-pro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"digiCap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"digiCap{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"digiCap\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"digiCap{${1:imagefile}}[${3:design keyvals}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"digiCap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"digiCap[${3:pos keyvals%keyvals}]{${1:imagefile}}{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\digiCap,\\\\digiCap*,\\\\dcFirstOpt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"digiCap\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"digiCap[${3:pos keyvals%keyvals}]{${1:imagefile}}[${4:design keyvals}]{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\digiCap,\\\\digiCap*,\\\\dcFirstOpt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"digiCap*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"digiCap*{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"digiCap*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"digiCap*{${1:imagefile}}[${3:design keyvals}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"digiCap*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"digiCap*[${3:pos keyvals%keyvals}]{${1:imagefile}}{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\digiCap,\\\\digiCap*,\\\\dcFirstOpt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"digiCap*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"digiCap*[${3:pos keyvals%keyvals}]{${1:imagefile}}[${4:design keyvals}]{${2:caption%text}}\",\n        \"keys\": [\n          \"\\\\digiCap,\\\\digiCap*,\\\\dcFirstOpt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"graphicHeight\"\n    },\n    {\n      \"name\": \"graphicWidth\"\n    },\n    {\n      \"name\": \"opcolorbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opcolorbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"opcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"opcolorbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\opcolorbox,\\\\dcSecondOpt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"presentationOrder\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presentationOrder{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"digiDisplaySpace\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"digiDisplaySpace{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"insertCaptions\",\n      \"if\": \"display1\"\n    },\n    {\n      \"name\": \"insertThumbs\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"insertThumbs{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"dcFirstOpt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcFirstOpt{${1:pos keyvals%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"dcFirstOpt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dcFirstOpt[${2:name}]{${1:pos keyvals%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"dcSecondOpt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcSecondOpt{${1:design keyvals%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"dcSecondOpt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dcSecondOpt[${2:name}]{${1:design keyvals%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"useRollovers\",\n      \"if\": \"display1\"\n    },\n    {\n      \"name\": \"noRollovers\",\n      \"if\": \"display1\"\n    },\n    {\n      \"name\": \"longCapFmt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longCapFmt{${1:format cmds}}\"\n      }\n    },\n    {\n      \"name\": \"shortCapFmt\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortCapFmt{${1:format cmds}}\"\n      }\n    },\n    {\n      \"name\": \"setThumbAppearances\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setThumbAppearances{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setThumbAppearances\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setThumbAppearances\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setThumbAppearances[${2:name}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setThumbAppearances\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setWidthOfThumbs\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setWidthOfThumbs{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"addvspacetorows\",\n      \"if\": \"display1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvspacetorows{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"digiDSWidth\",\n      \"if\": \"display1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digiDSHeight\",\n      \"if\": \"display1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertPhotos\",\n      \"if\": \"display1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalAppr\",\n      \"if\": \"display1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalAppr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"downAppr\",\n      \"if\": \"display1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"downAppr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rolloverAppr\",\n      \"if\": \"display1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rolloverAppr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"digiCapsPresets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"digiCapsPresets{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hiddenPresets\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/digicap-pro#c\": [\n      \"display1\"\n    ],\n    \"\\\\digiCap,\\\\digiCap*,\\\\dcFirstOpt\": [\n      \"outerboxsep=\",\n      \"vcaption=${1|b,c,t|}\",\n      \"hcaption=${1|l,c,r|}\",\n      \"inclgraphicx={${1:\\\\includegraphics keys}}\",\n      \"rollovername=${1:name}\"\n    ],\n    \"\\\\opcolorbox,\\\\dcSecondOpt\": [\n      \"borderwidth=\",\n      \"fboxsep=\",\n      \"width=\",\n      \"bordercolor=\",\n      \"bgcolor=\",\n      \"borderop=${1:factor}\",\n      \"bgop=${1:factor}\",\n      \"textop=${1:factor}\",\n      \"borderblendmode=${1:mode}\",\n      \"bgblendmode=${1:mode}\"\n    ],\n    \"\\\\setThumbAppearances\": [\n      \"normalop=${1:factor}\",\n      \"rolloverop=${1:factor}\",\n      \"downop=${1:factor}\",\n      \"boundarywidth\",\n      \"rgbcolor=${1:r g b}\",\n      \"cmykcolor=${1:c m y k}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/digicap-pro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/digiconfigs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dconfig{${1:config string}}\"\n      }\n    },\n    {\n      \"name\": \"dconfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dconfig[${2:rowsxcols}]{${1:config string}}\"\n      }\n    },\n    {\n      \"name\": \"setCircleChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCircleChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"setBulletChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBulletChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"setCdotChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCdotChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"setBlankChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBlankChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"setCircleSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCircleSymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setBulletSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBulletSymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setCdotSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCdotSymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setMatrixStart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMatrixStart{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setMatrixEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMatrixEnd{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setDefaultMatrixSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDefaultMatrixSize{${1:size}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/digsig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"digsigfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"digsigfield{${1:width}}{${2:height}}{${3:field name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dijkstra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"readgraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readgraph{${1:graph specs}}\"\n      }\n    },\n    {\n      \"name\": \"readgraph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readgraph*{${1:graph specs}}\"\n      }\n    },\n    {\n      \"name\": \"dijkstra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dijkstra{${1:vertex1}}{${2:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"dijkstra\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dijkstra[${3:options%keyvals}]{${1:vertex1}}{${2:vertex2}}\",\n        \"keys\": [\n          \"\\\\dijkstra,\\\\setdijk,\\\\setdijkdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdijk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdijk{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dijkstra,\\\\setdijk,\\\\setdijkdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdijkdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdijkdefault{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dijkstra,\\\\setdijk,\\\\setdijkdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dijkdist\"\n    },\n    {\n      \"name\": \"dijkpath\"\n    },\n    {\n      \"name\": \"initdijk\"\n    },\n    {\n      \"name\": \"formatnodewithprev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"formatnodewithprev{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"highlightfirstnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlightfirstnode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"highlightnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"highlightnode{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dijkstra,\\\\setdijk,\\\\setdijkdefault\": [\n      \"show-tab\",\n      \"v-position=\",\n      \"pre-tab=${1:code}\",\n      \"post-tab=${1:code}\",\n      \"col-type=\",\n      \"infinity-code=${1:code}\",\n      \"norevisit-code=${1:code}\",\n      \"h-rules\",\n      \"show-lastcol\",\n      \"lastcol-type=\",\n      \"lastcol-label=\",\n      \"nopath-string=\",\n      \"path-sep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dimnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newdimnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newdimnum{${1:csname}}{${2:symbol%definition}}{${3:name}}{${4:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"Ar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ar[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"At\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"At[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ba\"\n    },\n    {\n      \"name\": \"Ba\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ba[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Be\"\n    },\n    {\n      \"name\": \"Be\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Be[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Bm\"\n    },\n    {\n      \"name\": \"Bm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bm[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Bi\"\n    },\n    {\n      \"name\": \"Bi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bi[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Bl\"\n    },\n    {\n      \"name\": \"Bl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bl[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Bs\"\n    },\n    {\n      \"name\": \"Bs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bs[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Bo\"\n    },\n    {\n      \"name\": \"Bo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Br\"\n    },\n    {\n      \"name\": \"Br\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Br[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"BK\"\n    },\n    {\n      \"name\": \"BK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BK[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ca\"\n    },\n    {\n      \"name\": \"Ca\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ca[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Cau\"\n    },\n    {\n      \"name\": \"Cau\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cau[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ch\"\n    },\n    {\n      \"name\": \"Ch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ch[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CoF\"\n    },\n    {\n      \"name\": \"CoF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoF[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Co\"\n    },\n    {\n      \"name\": \"Co\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Co[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Dah\"\n    },\n    {\n      \"name\": \"Dah\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dah[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Dar\"\n    },\n    {\n      \"name\": \"Dar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dar[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"De\"\n    },\n    {\n      \"name\": \"De\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"De[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Deb\"\n    },\n    {\n      \"name\": \"Deb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Deb[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Cd\"\n    },\n    {\n      \"name\": \"Cd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cd[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Du\"\n    },\n    {\n      \"name\": \"Du\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Du[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ec\"\n    },\n    {\n      \"name\": \"Ec\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ec[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ek\"\n    },\n    {\n      \"name\": \"Ek\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ek[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ela\"\n    },\n    {\n      \"name\": \"Ela\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ela[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"El\"\n    },\n    {\n      \"name\": \"El\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"El[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Eo\"\n    },\n    {\n      \"name\": \"Eo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Eo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Er\"\n    },\n    {\n      \"name\": \"Er\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Er[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Eu\"\n    },\n    {\n      \"name\": \"Eu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Eu[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Fo\"\n    },\n    {\n      \"name\": \"Fo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Fr\"\n    },\n    {\n      \"name\": \"Fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ga\"\n    },\n    {\n      \"name\": \"Ga\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ga[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Go\"\n    },\n    {\n      \"name\": \"Go\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Go[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Gz\"\n    },\n    {\n      \"name\": \"Gz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Gz[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Gr\"\n    },\n    {\n      \"name\": \"Gr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Gr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ha\"\n    },\n    {\n      \"name\": \"Ha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ha[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Hg\"\n    },\n    {\n      \"name\": \"Hg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hg[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ho\"\n    },\n    {\n      \"name\": \"Ho\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ho[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ir\"\n    },\n    {\n      \"name\": \"Ir\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ir[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ja\"\n    },\n    {\n      \"name\": \"Ja\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ja[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ka\"\n    },\n    {\n      \"name\": \"Ka\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ka[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"KC\"\n    },\n    {\n      \"name\": \"KC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"KC[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Kn\"\n    },\n    {\n      \"name\": \"Kn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Kn[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ku\"\n    },\n    {\n      \"name\": \"Ku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ku[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"La\"\n    },\n    {\n      \"name\": \"La\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"La[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Le\"\n    },\n    {\n      \"name\": \"Le\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Le[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ma\"\n    },\n    {\n      \"name\": \"Ma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ma[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Mg\"\n    },\n    {\n      \"name\": \"Mg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Mg[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Mo\"\n    },\n    {\n      \"name\": \"Mo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Mo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Nus\"\n    },\n    {\n      \"name\": \"Nus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Nus[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Oh\"\n    },\n    {\n      \"name\": \"Oh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Oh[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Pe\"\n    },\n    {\n      \"name\": \"Pe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pe[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"pH\"\n    },\n    {\n      \"name\": \"pH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pH[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Po\"\n    },\n    {\n      \"name\": \"Po\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Po[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"Pr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ra\"\n    },\n    {\n      \"name\": \"Ra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ra[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Rey\"\n    },\n    {\n      \"name\": \"Rey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Rey[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ri\"\n    },\n    {\n      \"name\": \"Ri\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ri[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ro\"\n    },\n    {\n      \"name\": \"Ro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ro[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ros\"\n    },\n    {\n      \"name\": \"Ros\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ros[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Rou\"\n    },\n    {\n      \"name\": \"Rou\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Rou[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Sc\"\n    },\n    {\n      \"name\": \"Sc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sc[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Sh\"\n    },\n    {\n      \"name\": \"Sh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sh[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"So\"\n    },\n    {\n      \"name\": \"So\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"So[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"St\"\n    },\n    {\n      \"name\": \"St\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"St[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ste\"\n    },\n    {\n      \"name\": \"Ste\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ste[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Stk\"\n    },\n    {\n      \"name\": \"Stk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Stk[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Sr\"\n    },\n    {\n      \"name\": \"Sr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Stu\"\n    },\n    {\n      \"name\": \"Stu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Stu[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Sv\"\n    },\n    {\n      \"name\": \"Sv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sv[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ta\"\n    },\n    {\n      \"name\": \"Ta\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ta[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ur\"\n    },\n    {\n      \"name\": \"Ur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ur[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Va\"\n    },\n    {\n      \"name\": \"Va\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Va[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Wa\"\n    },\n    {\n      \"name\": \"Wa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wa[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Wea\"\n    },\n    {\n      \"name\": \"Wea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wea[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"We\"\n    },\n    {\n      \"name\": \"We\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"We[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Wei\"\n    },\n    {\n      \"name\": \"Wei\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wei[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Ab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ab[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"AC\"\n    },\n    {\n      \"name\": \"AC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AC[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"Al\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Al[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Arr\"\n    },\n    {\n      \"name\": \"Arr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Arr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"AW\"\n    },\n    {\n      \"name\": \"AW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AW[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Rz\"\n    },\n    {\n      \"name\": \"Rz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Rz[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Blo\"\n    },\n    {\n      \"name\": \"Blo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Jm\"\n    },\n    {\n      \"name\": \"Jm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Jm[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Jh\"\n    },\n    {\n      \"name\": \"Jh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Jh[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Jd\"\n    },\n    {\n      \"name\": \"Jd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Jd[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CoD\"\n    },\n    {\n      \"name\": \"CoD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoD[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CoK\"\n    },\n    {\n      \"name\": \"CoK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoK[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CoS\"\n    },\n    {\n      \"name\": \"CoS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoS[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CoV\"\n    },\n    {\n      \"name\": \"CoV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoV[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Coh\"\n    },\n    {\n      \"name\": \"Coh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Coh[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"CFL\"\n    },\n    {\n      \"name\": \"CFL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CFL[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Dr\"\n    },\n    {\n      \"name\": \"Dr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"fD\"\n    },\n    {\n      \"name\": \"fD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fD[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"ExT\"\n    },\n    {\n      \"name\": \"ExT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExT[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"fF\"\n    },\n    {\n      \"name\": \"fF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fF[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Fs\"\n    },\n    {\n      \"name\": \"Fs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fs[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"FvK\"\n    },\n    {\n      \"name\": \"FvK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FvK[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Fre\"\n    },\n    {\n      \"name\": \"Fre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fre[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Hav\"\n    },\n    {\n      \"name\": \"Hav\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hav[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"He\"\n    },\n    {\n      \"name\": \"He\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"He[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Cl\"\n    },\n    {\n      \"name\": \"Cl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cl[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"LM\"\n    },\n    {\n      \"name\": \"LM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LM[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Lu\"\n    },\n    {\n      \"name\": \"Lu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Lu[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Mar\"\n    },\n    {\n      \"name\": \"Mar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Mar[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Peel\"\n    },\n    {\n      \"name\": \"Peel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Peel[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Pie\"\n    },\n    {\n      \"name\": \"Pie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pie[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Poi\"\n    },\n    {\n      \"name\": \"Poi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Poi[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Pf\"\n    },\n    {\n      \"name\": \"Pf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pf[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Pn\"\n    },\n    {\n      \"name\": \"Pn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pn[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Cp\"\n    },\n    {\n      \"name\": \"Cp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cp[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Rfi\"\n    },\n    {\n      \"name\": \"Rfi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Rfi[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Crr\"\n    },\n    {\n      \"name\": \"Crr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Crr[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Shi\"\n    },\n    {\n      \"name\": \"Shi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Shi[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"vtH\"\n    },\n    {\n      \"name\": \"vtH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vtH[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Wal\"\n    },\n    {\n      \"name\": \"Wal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wal[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Wo\"\n    },\n    {\n      \"name\": \"Wo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wo[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"Zd\"\n    },\n    {\n      \"name\": \"Zd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Zd[${1:l or s}]\"\n      }\n    },\n    {\n      \"name\": \"ifstartedinmathmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startedinmathmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startedinmathmodefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dingbat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"anchor\"\n    },\n    {\n      \"name\": \"carriagereturn\",\n      \"detail\": \"↵\",\n      \"doc\": \"Downwards arrow with corner leftward = carriage return\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"eye\"\n    },\n    {\n      \"name\": \"filledsquarewithdots\"\n    },\n    {\n      \"name\": \"largepencil\"\n    },\n    {\n      \"name\": \"leftpointright\"\n    },\n    {\n      \"name\": \"leftthumbsdown\"\n    },\n    {\n      \"name\": \"leftthumbsup\"\n    },\n    {\n      \"name\": \"rightpointleft\"\n    },\n    {\n      \"name\": \"rightpointright\"\n    },\n    {\n      \"name\": \"rightthumbsdown\"\n    },\n    {\n      \"name\": \"rightthumbsup\"\n    },\n    {\n      \"name\": \"satellitedish\"\n    },\n    {\n      \"name\": \"Sborder\"\n    },\n    {\n      \"name\": \"smallpencil\"\n    },\n    {\n      \"name\": \"squarewithdots\"\n    },\n    {\n      \"name\": \"Zborder\"\n    },\n    {\n      \"name\": \"arkfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dingbatfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dirtree.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dirtree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dirtree{${1:tree structure}}\"\n      }\n    },\n    {\n      \"name\": \"DTstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTstylecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DTstylecomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DTsetlength\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DTsetlength{${1:offset%l}}{${2:width}}{${3:sep%l}}{${4:rule width%l}}{${5:dot size%l}}\"\n      }\n    },\n    {\n      \"name\": \"DTbaselineskip\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dirtytalk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"say\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"say{${1:quotation%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dirtytalk#c\": [\n      \"left=${1:symbol}\",\n      \"right=${1:symbol}\",\n      \"leftsub=${1:symbol}\",\n      \"rightsub=${1:symbol}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dirtytalk#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ditaa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ditaacaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ditaadir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ditaafigwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ditaafile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ditaastem\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ditaa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:caption%text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ditaa\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:width}]{${1:caption%text}}{${2:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ditaa#c\": [\n      \"imagepath=${1:path}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ditaa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dlfltxbcodetips.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"NewShadedTheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewShadedTheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"NewShadedTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewShadedTheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"NewShadedTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewShadedTheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"theoremframecommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTheoremBreak\"\n    },\n    {\n      \"name\": \"InsertTheoremBreak*\"\n    },\n    {\n      \"name\": \"MathIndent\"\n    },\n    {\n      \"name\": \"SetMathIndent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMathIndent{${1:math code}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoMathIndent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddtoMathIndent{${1:math code}}\"\n      }\n    },\n    {\n      \"name\": \"PopMathIndent\"\n    },\n    {\n      \"name\": \"PopMathIndent*\"\n    },\n    {\n      \"name\": \"DeclareMathSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMathSet{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareMathSet[${2:options%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\DeclareMathSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvidePGFPagesFourOnOneWithSpaceForNotes\"\n    },\n    {\n      \"name\": \"OverloadUnderscoreInMath\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DeclareMathSet\": [\n      \"format=\",\n      \"name=\",\n      \"prefix=\",\n      \"overwrite\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dlfltxbmarkup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"dlfltxbmarkupbookkeys\",\n      \"if\": \"loadsampleconfig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"markup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"markup[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\markup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"felineKeyGenerator\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"felineKeyGenerator{${1:key%specialDef}}{${2:description}}{${3:margin code}}{${4:index code}}{${5:text code}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"css\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"css{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"felineWriteInMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"felineWriteInMargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifNoMarginparAvail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoMarginparAvailfalse\"\n    },\n    {\n      \"name\": \"NoMarginparAvailtrue\"\n    },\n    {\n      \"name\": \"felineMarginAdjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"felineIndexCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itindex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"felineStandardKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"felineMarkupDescription\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dlfltxbmarkup#c\": [\n      \"loadsampleconfig\"\n    ],\n    \"\\\\markup#c\": [\n      \"notxt\",\n      \"nowr\",\n      \"nomk\",\n      \"noidx\",\n      \"idxit\",\n      \"idxbf\",\n      \"idxn\",\n      \"addtospvrt=${1:number}\",\n      \"vaddtosp=${1:number}\",\n      \"forcesidepar\",\n      \"%felineKey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dlfltxbmarkup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dlfltxbmarkupbookkeys.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"felineStandardKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ENcs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"felinenameuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"felinenameuse{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\markup#c\": [\n      \"macro\",\n      \"sty\",\n      \"nsty\",\n      \"cls\",\n      \"ps\",\n      \"env\",\n      \"list\",\n      \"w\",\n      \"prog\",\n      \"msym\",\n      \"tcsym\",\n      \"bigmsym\",\n      \"mlog\",\n      \"sym\",\n      \"delim\",\n      \"delims\",\n      \"nthm\",\n      \"nthmstl\",\n      \"xym\",\n      \"xymar\",\n      \"mtoolsenv\",\n      \"ftype\",\n      \"err\",\n      \"nb\",\n      \"nbop\",\n      \"bibfelt\",\n      \"bibtype\",\n      \"bibstyle\",\n      \"mem\",\n      \"menv\",\n      \"chapstyle\",\n      \"bt\",\n      \"lt\",\n      \"ctbl\",\n      \"dop\",\n      \"mdop\",\n      \"fixme\",\n      \"vario\",\n      \"fnchdr\",\n      \"memps\",\n      \"inclgrfopt\",\n      \"cap\",\n      \"subfig\",\n      \"clskoma\",\n      \"grffmt\",\n      \"ei\",\n      \"eio\",\n      \"inputenc\",\n      \"counter\",\n      \"mcounter\",\n      \"length\",\n      \"gauss\",\n      \"tabs\",\n      \"mltbib\",\n      \"bbtpc\",\n      \"bbtpcenv\",\n      \"sistyle\",\n      \"sux\",\n      \"suxu\",\n      \"suxsu\",\n      \"suxp\",\n      \"suxpp\",\n      \"acronym\",\n      \"beamerenv\",\n      \"beamer\",\n      \"beamerclsopt\",\n      \"beamertheme\",\n      \"xiftst\",\n      \"tl\",\n      \"editor\",\n      \"leditor\",\n      \"weditor\",\n      \"meditor\",\n      \"viewer\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dlfltxbmisc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Arg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arg*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"marg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oarg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"parg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addurl{${1:URL}}{${2:see below}}\"\n      }\n    },\n    {\n      \"name\": \"addurl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addurl[${3:pre text}]{${1:URL}}{${2:see below}}\"\n      }\n    },\n    {\n      \"name\": \"addCTAN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addCTAN{${1:URL}}{${2:see below}}\"\n      }\n    },\n    {\n      \"name\": \"addCTAN\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addCTAN[${3:pre text}]{${1:URL}}{${2:see below}}\"\n      }\n    },\n    {\n      \"name\": \"CTAN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTAN{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"dbx\"\n    },\n    {\n      \"name\": \"dbx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dbx[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"lastlinedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlastlinesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mypath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"href\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"syntax\"\n    },\n    {\n      \"name\": \"syntax*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"vplref\",\n      \"if\": \"addpageno\"\n    },\n    {\n      \"name\": \"ednmath0\",\n      \"if\": \"mathrefs\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"edtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"ltabptch\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"nolongtablepatch\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nolongtablepatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dlinebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlinerule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddlinerule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddlinesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dline\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dline#c\": [\n      \"addpageno\",\n      \"mathrefs\",\n      \"edtable\",\n      \"longtable\",\n      \"nolongtablepatch\",\n      \"left\",\n      \"right\",\n      \"switch\",\n      \"switch*\",\n      \"columnwise\",\n      \"pagewise\",\n      \"running\",\n      \"modulo\",\n      \"modulo*\",\n      \"mathlines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dline#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dljslib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exerquiz\"\n    },\n    {\n      \"name\": \"insdljs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includeOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/dljslib#c,\\\\includeOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MsgDei\"\n    },\n    {\n      \"name\": \"MsgDeii\"\n    },\n    {\n      \"name\": \"MsgEni\"\n    },\n    {\n      \"name\": \"MsgEnii\"\n    },\n    {\n      \"name\": \"numDe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numDe{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"numEn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numEn{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"rndNumDeOpt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndNumDeOpt{${1:num}}{${2:msg}}\"\n      }\n    },\n    {\n      \"name\": \"rndNumDeReq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndNumDeReq{${1:num}}{${2:msg}}\"\n      }\n    },\n    {\n      \"name\": \"rndNumEnOpt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndNumEnOpt{${1:num}}{${2:msg}}\"\n      }\n    },\n    {\n      \"name\": \"rndNumEnReq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rndNumEnReq{${1:num}}{${2:msg}}\"\n      }\n    },\n    {\n      \"name\": \"setdecimalpoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdecimalpoint{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aebdecimalpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alertNotComplexMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowWrngNormSciNotn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowWrngNSN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complexCisAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complexPowerAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalsOnlyErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAndRegister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAndRegister{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dljsRegister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dljsRegister[${2:suffix}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dljsRegister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dljsRegister{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"emptyCompComplexMsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"emptyCompComplexMsg(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"eqDuplEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqNonzeroEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqSyntaxErrorNoParens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqTooFewEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqTooManyEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationsAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"facNoPropForm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MsgDeiAlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAddOrSubErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noBinFactBinCoeffAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noBinFactFactAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noBinFactPermAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noBracesInAnsMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noBracketsInAnsMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodecAlertMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noDecPtDeMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noDecPtEnMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoDivisionErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoExpAllowedErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoNegExpMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noNotEncloseMonos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoPiAllowedErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoProductsErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notifyWrongNumEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoTrigAllowedErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoTrigLogAllowedErrorMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointEmptyCompMsgiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pointEmptyCompMsgiv(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"pointErrorMsgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointErrorMsgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointErrorMsgiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"satisfyEqNotify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sciNotNormalForm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sciNotSyntaxError\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SyntaxErrorAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorEmptyCompMsgiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"vectorEmptyCompMsgiv(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"vectorsErrorMsgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorsErrorMsgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorsErrorMsgiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warnDecDeOnly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warnDecDeOnlyOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warnDefDeOnlyOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrongNumEntriesMsg\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dljslib#c,\\\\includeOptions#c\": [\n      \"equations\",\n      \"vectors\",\n      \"indefIntegral\",\n      \"ImplMulti\",\n      \"nodec\",\n      \"noBinFac\",\n      \"limitArith\",\n      \"combinatorics\",\n      \"setSupport\",\n      \"complex\",\n      \"satisfyEq\",\n      \"useGermanNums\",\n      \"useDeNums\",\n      \"useEnNums\",\n      \"factors\",\n      \"point\",\n      \"intervals\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dljslib#c,\\\\includeOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dmlb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"ellipsis\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"pgfplotstable\"\n    },\n    {\n      \"name\": \"pgfplotslibrarydateplot\"\n    },\n    {\n      \"name\": \"pgfcalendar\",\n      \"if\": \"graph\"\n    },\n    {\n      \"name\": \"tikzlibrarycalendar\",\n      \"if\": \"graph\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\",\n      \"if\": \"graph\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"row\"\n    },\n    {\n      \"name\": \"dmlbsetdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dmlbsetdate{${1:YYYY}}{${2:MM}}{${3:DD}}\"\n      }\n    },\n    {\n      \"name\": \"dmlbsetdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dmlbsetdate{${1:YYYY}}{${2:MM}}{${3:DD}}[${4:rel path}]\"\n      }\n    },\n    {\n      \"name\": \"QQQ\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"QQQ{${1:time}}{${2:blood glucose}}{${3:insulin}}{${4:carbohydrates}}{${5:protein}}{${6:fat}}{${7:remarks%text}}\"\n      }\n    },\n    {\n      \"name\": \"QQQ\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"QQQ[${8:date}]{${1:time}}{${2:blood glucose}}{${3:insulin}}{${4:carbohydrates}}{${5:protein}}{${6:fat}}{${7:remarks%text}}\"\n      }\n    },\n    {\n      \"name\": \"autoFileInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoFileInput{${1:rel path}}\"\n      }\n    },\n    {\n      \"name\": \"calcmaxrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changestrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Day\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Month\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowstyle{${1:style commands}}\"\n      }\n    },\n    {\n      \"name\": \"TwoDigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoDigits{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"writeperiods\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dmlb#c\": [\n      \"graph\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dmlb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dnaseq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DNAblock\"\n    },\n    {\n      \"name\": \"DNAreserve\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/doafter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"hypdoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetupDoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetupDoc{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/doc#c,\\\\SetupDoc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DocInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"IndexInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeMacro{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeMacro[${2:options%keyvals}]{${1:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\DescribeMacro#c,\\\\DescribeEnv#c,\\\\begin{macro}#c,\\\\begin{environment}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeEnv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\DescribeMacro#c,\\\\DescribeEnv#c,\\\\begin{macro}#c,\\\\begin{environment}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MacrocodeTopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MacroTopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MacroIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MacroFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintDescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeMacro{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMacroName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMacroName{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEnvName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEnvName{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocElement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDocElement{${1:element}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocElement\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewDocElement[${3:options%keyvals}]{${1:element}}{${2:envname}}\",\n        \"keys\": [\n          \"\\\\NewDocElement#c,\\\\RenewDocElement#c,\\\\ProvideDocElement#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RenewDocElement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewDocElement{${1:element}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocElement\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewDocElement[${3:options%keyvals}]{${1:element}}{${2:envname}}\",\n        \"keys\": [\n          \"\\\\NewDocElement#c,\\\\RenewDocElement#c,\\\\ProvideDocElement#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideDocElement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideDocElement{${1:element}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocElement\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ProvideDocElement[${3:options%keyvals}]{${1:element}}{${2:envname}}\",\n        \"keys\": [\n          \"\\\\NewDocElement#c,\\\\RenewDocElement#c,\\\\ProvideDocElement#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SpecialEscapechar\"\n    },\n    {\n      \"name\": \"DisableCrossrefs\"\n    },\n    {\n      \"name\": \"EnableCrossrefs\"\n    },\n    {\n      \"name\": \"DoNotIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoNotIndex{${1:macro list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"PageIndex\"\n    },\n    {\n      \"name\": \"CodelineIndex\"\n    },\n    {\n      \"name\": \"theCodelineNo\"\n    },\n    {\n      \"name\": \"CodelineNumbered\"\n    },\n    {\n      \"name\": \"actualchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encapchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"levelchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialMainMacroIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainMacroIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainEnvIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainEnvIndex{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMacroIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMacroIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialEnvIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialEnvIndex{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialShortIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialShortIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialUsageIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialUsageIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SortIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SortIndex{${1:sort key}}{${2:index entry}}\"\n      }\n    },\n    {\n      \"name\": \"verbatimchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintIndex\"\n    },\n    {\n      \"name\": \"IndexMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexPrologue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexPrologue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IndexParms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"main\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"main{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"usage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usage{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DocstyleParms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortVerb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortVerb*{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"Web\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"SliTeX\"\n    },\n    {\n      \"name\": \"PlainTeX\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"OnlyDescription\"\n    },\n    {\n      \"name\": \"MaybeStop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaybeStop{${1:finale code}}\"\n      }\n    },\n    {\n      \"name\": \"StopEventually\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StopEventually{${1:finale code}}\"\n      }\n    },\n    {\n      \"name\": \"Finale\"\n    },\n    {\n      \"name\": \"AlsoImplementation\"\n    },\n    {\n      \"name\": \"changes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changes{${1:version}}{${2:date}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"generalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"RecordChanges\"\n    },\n    {\n      \"name\": \"PrintChanges\"\n    },\n    {\n      \"name\": \"GlossaryMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlossaryPrologue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlossaryPrologue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlossaryParms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"MakePrivateLetters\"\n    },\n    {\n      \"name\": \"DontCheckModules\"\n    },\n    {\n      \"name\": \"CheckModules\"\n    },\n    {\n      \"name\": \"Module\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Module{${1:directive}}\"\n      }\n    },\n    {\n      \"name\": \"AltMacroFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theStandardModuleDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OldMakeindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"percentchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CharacterTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CharacterTable{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CharTableChanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CheckSum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckSum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"efill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetFileInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfo{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LeftBraceIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePercentComment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePercentIgnore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PercentIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RecordIndexType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RecordIndexType{${1:cmd}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"RecordIndexTypeAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RecordIndexTypeAux{${1:cmd}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"RightBraceIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowIndexingState\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"macrocode\"\n    },\n    {\n      \"name\": \"macrocode*\"\n    },\n    {\n      \"name\": \"macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"macro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\DescribeMacro#c,\\\\DescribeEnv#c,\\\\begin{macro}#c,\\\\begin{environment}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\DescribeMacro#c,\\\\DescribeEnv#c,\\\\begin{macro}#c,\\\\begin{environment}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theglossary\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/doc#c,\\\\SetupDoc#c\": [\n      \"hyperref\",\n      \"nohyperref\",\n      \"multicol\",\n      \"nomulticol\",\n      \"debugshow\",\n      \"noindex\",\n      \"noprint\",\n      \"reportchangedates\",\n      \"toplevel\",\n      \"notoplevel\"\n    ],\n    \"\\\\DescribeMacro#c,\\\\DescribeEnv#c,\\\\begin{macro}#c,\\\\begin{environment}#c\": [\n      \"noindex\",\n      \"noprint\"\n    ],\n    \"\\\\NewDocElement#c,\\\\RenewDocElement#c,\\\\ProvideDocElement#c\": [\n      \"macrolike\",\n      \"envlike\",\n      \"toplevel\",\n      \"notoplevel\",\n      \"idxtype=${1:string}\",\n      \"printtype=${1:string}\",\n      \"idxgroup=${1:string}\",\n      \"noindex\",\n      \"noprint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/doc#c,\\\\SetupDoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/docassembly.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"insdljs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"certifyInvisibleSign\"\n    },\n    {\n      \"name\": \"chngDocObjectTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chngDocObjectTo{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareJSHelper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareJSHelper{${1:command}}{${2:JS cmd}}\"\n      }\n    },\n    {\n      \"name\": \"sigInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigInfo{${1:signature specs%definition}}\"\n      }\n    },\n    {\n      \"name\": \"signatureSign\"\n    },\n    {\n      \"name\": \"theDocObject\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"docassembly\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/doclicense.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"ccicons\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"hyphenation=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"hyphenation={RaggedRight}\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doclicenseType\"\n    },\n    {\n      \"name\": \"doclicenseLongType\"\n    },\n    {\n      \"name\": \"doclicenseModifier\"\n    },\n    {\n      \"name\": \"doclicenseVersion\"\n    },\n    {\n      \"name\": \"doclicenseURL\"\n    },\n    {\n      \"name\": \"doclicenseName\"\n    },\n    {\n      \"name\": \"doclicenseLongName\"\n    },\n    {\n      \"name\": \"doclicenseNameRef\"\n    },\n    {\n      \"name\": \"doclicenseLongNameRef\"\n    },\n    {\n      \"name\": \"doclicenseText\"\n    },\n    {\n      \"name\": \"doclicenseLongText\"\n    },\n    {\n      \"name\": \"doclicenseLongTextForHyperref\"\n    },\n    {\n      \"name\": \"doclicensePlainFullText\"\n    },\n    {\n      \"name\": \"doclicensePlainFullTextFileName\"\n    },\n    {\n      \"name\": \"doclicenseFullText\"\n    },\n    {\n      \"name\": \"doclicenseFullTextFileName\"\n    },\n    {\n      \"name\": \"doclicenseTypeIcon\"\n    },\n    {\n      \"name\": \"doclicenseIcon\"\n    },\n    {\n      \"name\": \"doclicenseImage\"\n    },\n    {\n      \"name\": \"doclicenseImage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"doclicenseImage[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"doclicenseImageFileName\"\n    },\n    {\n      \"name\": \"doclicenseThis\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/doclicense#c\": [\n      \"type=${1:type}\",\n      \"modifier=${1|by,by-sa,by-nd,by-nc,by-nc-sa,by-nc-nd|}\",\n      \"version=${1|1.0,3.0,4.0|}\",\n      \"lang=${1|UKenglish,USenglish,acadian,american,australian,brazilian,british,bulgarian,canadian,canadien,catalan,chinese-gbk,chinese-utf8,croatian,english,french,galician,german,italian,japanese,marathi,newzealand,ngerman,polish,portuguese,russian,spanish,ukrainian|}\",\n      \"imagemodifier=${1:modifier}\",\n      \"imageposition=${1|right,left|}\",\n      \"imagewidth=\",\n      \"imagedistance=\",\n      \"hyphenation=${1:macro}\",\n      \"hyperxmp\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/doclicense#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/docmfp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DescribeRoutine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeRoutine{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"routinestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"routineheadname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DescribeVariable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeVariable{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"variablestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variableheadname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Describe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Describe{${1:head}}{${2:flag}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMfpName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMfpName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainMfpIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SpecialMainMfpIndex{${1:name}}{${2:string}}{${3:heading}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMfpIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SpecialMfpIndex{${1:name}}{${2:string}}{${3:heading}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"routine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"variable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"Code\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:head}}{${2:flag}}{${3:name}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/docmute.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"docmute\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/docshots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iexec\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"docshotOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docshotOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\docshotOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docshotPrerequisite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docshotPrerequisite{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"docshotAfter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docshotAfter{${1:command line}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"docshot\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/docshots#c\": [\n      \"pdflatex=${1:path}\",\n      \"gs=${1:path}\",\n      \"pdfcrop=${1:path}\",\n      \"margin=${1:number}\",\n      \"nocrop\",\n      \"hspace=\",\n      \"left=\",\n      \"right=\",\n      \"dtx\",\n      \"tmpdir=${1:path}\",\n      \"runs=${1:integer}\",\n      \"small\",\n      \"tiny\",\n      \"log\",\n      \"inputminted=${1:language}\",\n      \"lstinputlisting\"\n    ],\n    \"\\\\docshotOptions#c\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\",\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/docshots#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/doctools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:abc}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"command{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ltxclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltxclass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"parameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parameter{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"person\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"person{${1:person}}\"\n      }\n    },\n    {\n      \"name\": \"AfterLastParam\"\n    },\n    {\n      \"name\": \"Default\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Default{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Example{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"latex\"\n    },\n    {\n      \"name\": \"printCodeFromFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printCodeFromFile{${1:last line}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"printCodeFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printCodeFromFile[${3:first line}]{${1:last line}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"labelfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelfile{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"thelstFirstLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelstLastLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintFileName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintFileName{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"thefile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHfile\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Optionlist\"\n    },\n    {\n      \"name\": \"latexcode\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dogma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dogmabold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dogmabold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dogmablack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dogmablack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dogmaoutline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dogmaoutline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dogmascript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dogmascript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dogma#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dogma#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/doi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"doitext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiurl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/doibanner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doibanner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doibanner{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doibanner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doibanner[${2:options}]{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doibanner*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doibanner*{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doibanner*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doibanner*[${2:options}]{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doiurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doiurl{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doiurl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doiurl*{${1:DOI}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/doibanner#c\": [\n      \"label=${1:string}\",\n      \"urlbase=${1:string}\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/doibanner#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/doipubmed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:ref number}}\"\n      }\n    },\n    {\n      \"name\": \"pubmed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubmed{${1:ref number}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"doitext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doitext{${1:doi ref}}\"\n      }\n    },\n    {\n      \"name\": \"pubmedtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubmedtext{${1:pub med code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/domaincoloring.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DomainColoring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DomainColoring{${1:complex function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DomainColoring\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DomainColoring[${2:options%keyvals}]{${1:complex function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setDColkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDColkeys{${1:options%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/domitian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lining\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lining{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/domitian#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/domitian#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/domore.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"StopDoing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdo[${2:digit}]{${1:do%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"setdo[${2:digit}][${3:default}]{${1:do%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DoWithAllOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoWithAllOf{${1:repeat}}{${2:<arg1><arg2>...<${3:argN}>}}\"\n      }\n    },\n    {\n      \"name\": \"DoWithAllIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoWithAllIn{${1:repeat}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"ifltx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PushCatMakeLetterAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopLetterCatAt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dot2texi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setoutputdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setoutputdir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeStream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottotexCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottotexgraphicsinclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottotexgraphicsprocess\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dot2tex\"\n    },\n    {\n      \"name\": \"dot2tex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dot2tex}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dottotexverbatimwrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dot2texi\": [\n      \"shell\",\n      \"noshell\",\n      \"forceshell\",\n      \"miktex\",\n      \"pgf\",\n      \"tikz\",\n      \"pstricks\",\n      \"autosize\",\n      \"dot\",\n      \"neato\",\n      \"circo\",\n      \"fdp\",\n      \"twopi\",\n      \"outputdir=${1:directory}\",\n      \"debug\"\n    ],\n    \"\\\\begin{dot2tex}\": [\n      \"shell\",\n      \"noshell\",\n      \"dot\",\n      \"neato\",\n      \"circo\",\n      \"fdp\",\n      \"twopi\",\n      \"prog=${1|dot,neato,circo,fdp,twopi|}\",\n      \"pgf\",\n      \"tikz\",\n      \"pstricks\",\n      \"format=${1|tikz,pgf,pstricks|}\",\n      \"styleonly\",\n      \"codeonly\",\n      \"autosize\",\n      \"noautosize\",\n      \"straightedges\",\n      \"tikzedgelabels\",\n      \"mathmode\",\n      \"graphstyle={${1:TikZ options}}\",\n      \"scale=${1:factor}\",\n      \"outputdir=${1:directory}\",\n      \"file=${1:file name}\",\n      \"options={${1:dot2tex options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dot2texi\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dotlessi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dotlessi\"\n    },\n    {\n      \"name\": \"dotlessj\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dotseqn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EqnDots\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dotseqn#c\": [\n      \"leftjust\",\n      \"nocolsep\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dotseqn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dowith.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"StopDoing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdo{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DoWithAllOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoWithAllOf{${1:cmd}}{${2:<arg1><arg2>...<${3:argN}>}}\"\n      }\n    },\n    {\n      \"name\": \"DoDoWithAllOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoDoWithAllOf{${1:<arg1><arg2>...<${2:argN}>}}\"\n      }\n    },\n    {\n      \"name\": \"DoWithAllIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoWithAllIn{${1:cmd}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"DoDoWithAllIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoDoWithAllIn{${1:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"InitializeListMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitializeListMacro{${1:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"ReInitializeListMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReInitializeListMacro{${1:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"ToListMacroAdd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ToListMacroAdd{${1:list macro}}{${2:cmd-or}}\"\n      }\n    },\n    {\n      \"name\": \"TestListMacroForToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TestListMacroForToken{${1:list macro}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FromTokenListMacroRemove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FromTokenListMacroRemove{${1:list macro}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"InTokenListMacroProvide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InTokenListMacroProvide{${1:list macro}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifltx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PushCatMakeLetterAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopLetterCatAt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/download.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"download\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"download{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"download\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"download[${2:filename%URL}]{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/download#c\": [\n      \"engine=${1|auto,curl,wget,aria2,axel|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/download#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doxitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doxitem{${1:name}}{${2:envname}}{${3:index category}}\"\n      }\n    },\n    {\n      \"name\": \"doxitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"doxitem[${4:options%keyvals}]{${1:name}}{${2:envname}}{${3:index category}}\",\n        \"keys\": [\n          \"\\\\doxitem\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dox#c\": [\n      \"noprint\",\n      \"noindex\",\n      \"macrolike\",\n      \"idxtype=\"\n    ],\n    \"\\\\doxitem\": [\n      \"idxtype=\",\n      \"macrolike\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dozenal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fixltx2e\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"mfirstuc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"basexii\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"basexii{${1:number}}{10sym}{11sym}\"\n      }\n    },\n    {\n      \"name\": \"dozens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dozens{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"basex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"basex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"doznumtoword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doznumtoword{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DOZnumtoword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOZnumtoword{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Doznumtoword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Doznumtoword{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Doman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Doman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"doman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"tally\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tally{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dozenal#c\": [\n      \"nocounters\",\n      \"typeone\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dozenal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dpfloat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"leftfullpage\"\n    },\n    {\n      \"name\": \"fullpage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"icon-appr\",\n      \"if\": \"usebtnappr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"quesNumTxt\",\n      \"if\": \"usebtnappr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quesNumTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quesNumTxTPost\",\n      \"if\": \"usebtnappr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltrToNum\",\n      \"if\": \"usebtnappr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltrToNum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dpsEmbedIcons\",\n      \"if\": \"usebtnappr\"\n    },\n    {\n      \"name\": \"dpsQuesIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dpsQuesIcon{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"dpsQuesIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dpsQuesIcon[${4:modifications}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"dpsOtherIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dpsOtherIcon{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"dpsOtherIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dpsOtherIcon[${4:modifications}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"placeQuesIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeQuesIcon{${1:placement cmds}}\"\n      }\n    },\n    {\n      \"name\": \"placeOtherIcon\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeOtherIcon{${1:placement cmds}}\"\n      }\n    },\n    {\n      \"name\": \"dpsEmbedSideShow\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dpsEmbedSideShow{${1:n}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"dpsEmbedSideShow\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dpsEmbedSideShow[${3:ext}]{${1:n}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"dpsNumSideShowPics\",\n      \"if\": \"usebtnappr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertSideshow\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertSideshow{${1:rows}}{${2:cols}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"iconPresets\",\n      \"if\": \"usebtnappr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmtOCGQues\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmtOCGQues{${1:formatting cmds}}\"\n      }\n    },\n    {\n      \"name\": \"dpsQuesLayer\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dpsQuesLayer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"placeQuesLayer\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeQuesLayer{${1:formatting cmds}}\"\n      }\n    },\n    {\n      \"name\": \"placeOtherLayer\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeOtherLayer{${1:formatting cmds}}\"\n      }\n    },\n    {\n      \"name\": \"insertQuesLayer\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertQuesLayer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quesNumTxt\",\n      \"if\": \"uselayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quesNumTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quesNumTxTPost\",\n      \"if\": \"uselayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertSideshow\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"insertSideshow{${1:rows}}{${2:cols}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"insertSideshow\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"insertSideshow{${1:rows}}{${2:cols}}[${4:options%keyvals}]{${3:imagefile}}\",\n        \"keys\": [\n          \"\\\\insertSideshow\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"AnswerKey\"\n    },\n    {\n      \"name\": \"setdpsfootskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdpsfootskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"nPuzzleCols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nPuzzleCols{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"sideshowPackaged\"\n    },\n    {\n      \"name\": \"writeComposingEnv\"\n    },\n    {\n      \"name\": \"insertPuzzle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertPuzzle{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"PuzzleAppearance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PuzzleAppearance{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"rowsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowsep{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"wdPuzzleFields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wdPuzzleFields{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"htPuzzleFields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htPuzzleFields{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"displayRandomizedQuestions\"\n    },\n    {\n      \"name\": \"QuesAppearance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuesAppearance{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"widestFmtdQNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widestFmtdQNum{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"htOfQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htOfQ{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"displayRandomizedAnswers\"\n    },\n    {\n      \"name\": \"displayRandomizedAnswersLeftPanel\"\n    },\n    {\n      \"name\": \"displayRandomizedAnswersRightPanel\"\n    },\n    {\n      \"name\": \"AnsAppearance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnsAppearance{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"ltrFmtA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltrFmtA{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"widestFmtdALtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widestFmtdALtr{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"htOfA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htOfA{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"placeMessageField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeMessageField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"placeMessageField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"placeMessageField[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"useRandomSeed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRandomSeed{${1:seed}}\"\n      }\n    },\n    {\n      \"name\": \"inputRandomSeed\"\n    },\n    {\n      \"name\": \"useLastSeed\"\n    },\n    {\n      \"name\": \"printDPS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printDPS{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"printDPS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printDPS[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"resetDPS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resetDPS{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"resetDPS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"resetDPS[${3:modifications}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"dpsResetHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dpsResetHook{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dpsFinishedEvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dpsFinishedEvent{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dpsfinishedevent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomizePicMappings\"\n    },\n    {\n      \"name\": \"sortPicMappings\"\n    },\n    {\n      \"name\": \"clearOnCloseOrSave\"\n    },\n    {\n      \"name\": \"threshold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threshold{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"dsthreshold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penaltypoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"penaltypoints{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"dspenaltypoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"passing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"passing{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"dspassing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dpsLastSeed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dpsLastSeed{${1:seed}}\"\n      }\n    },\n    {\n      \"name\": \"nextPuzzleChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextPuzzleLetter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextPuzzlePair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puzzleParameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redefnextrandomAsNeeded\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"setContent\",\n      \"if\": \"usebtnappr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setContent\",\n      \"if\": \"uselayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Composing\"\n    },\n    {\n      \"name\": \"cQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alt-letter}]{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dps#c\": [\n      \"nonrandomized\",\n      \"!nonrandomized\",\n      \"viewmode\",\n      \"!viewmode\",\n      \"showletters\",\n      \"!showletters\",\n      \"showanswerlabels\",\n      \"!showanswerlabels\",\n      \"showanswerkey\",\n      \"!showanswerkey\",\n      \"usebtnappr\",\n      \"uselayers\",\n      \"savedata\",\n      \"!savedata\",\n      \"lang=${1|english,german,custom|}\"\n    ],\n    \"\\\\insertSideshow\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/drac.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DeclareRobustActChar\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustActChar{${1:active-char%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustActChar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustActChar{${1:active-char%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustActChar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustActChar{${1:active-char%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustActChar*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustActChar*{${1:active-char%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustActChar*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustActChar*{${1:active-char%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustActChar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustActChar*{${1:active-char%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ReDeclareRobActChar{${1:active-char%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ReDeclareRobActChar{${1:active-char%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReDeclareRobActChar{${1:active-char%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ReDeclareRobActChar*{${1:active-char%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ReDeclareRobActChar*{${1:active-char%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ReDeclareRobActChar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReDeclareRobActChar*{${1:active-char%cmd}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/draftcopy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"draftcopyBottomTransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyBottomTransform{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyBottomX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyBottomX{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyBottomY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyBottomY{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyFirstPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyFirstPage{${1:pagenum}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyLastPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyLastPage{${1:pagenum}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"draftcopyName{${1:word%text}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyPageTransform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyPageTransform{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyPageX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyPageX{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyPageY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyPageY{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopySetGrey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopySetGrey{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopySetScaleFactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopySetScaleFactor{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopySetScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopySetScale{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"draftcopyVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftcopyVersion{${1:version}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/draftcopy#c\": [\n      \"conditional\",\n      \"draft\",\n      \"final\",\n      \"timestamp\",\n      \"vtex\",\n      \"dvips\",\n      \"dvipsone\",\n      \"textures\",\n      \"outline\",\n      \"light\",\n      \"dark\",\n      \"none\",\n      \"first\",\n      \"firsttwo\",\n      \"all\",\n      \"bottom\",\n      \"bottomafter\",\n      \"${1:language}\",\n      \"portrait\",\n      \"landscape\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/draftcopy#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/draftfigure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdf{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setdf,\\\\usepackage/draftfigure#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setdf,\\\\usepackage/draftfigure#c\": [\n      \"content={%|}\",\n      \"filename\",\n      \"style=${1|sf,tt,rm,normal,bf,it,sc|}\",\n      \"size=${1|tiny,scriptsize,small,footnotesize,normal,large,Large,LARGE,huge|}\",\n      \"position=${1|left,center,right|}\",\n      \"noframe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setdf,\\\\usepackage/draftfigure#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/draftmark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"etextools\"\n    },\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ltxnew\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"draftmarksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"draftmarksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/draftmark#c,\\\\draftmarksetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/draftmark#c\": [\n      \"draft\",\n      \"final\",\n      \"allpages\",\n      \"evenpages\",\n      \"oddpages\",\n      \"pages=${1:num1-num2}\",\n      \"page=${1:num}\"\n    ],\n    \"\\\\usepackage/draftmark#c,\\\\draftmarksetup\": [\n      \"mark=${1:text}\",\n      \"angle=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"grayness=${1:factor}\",\n      \"color=\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=\",\n      \"xcoord=${1:number}\",\n      \"ycoord=${1:number}\",\n      \"coordunit=${1:unit}\",\n      \"showcenter\",\n      \"acceptrange\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/draftmark#c\",\n    \"\\\\usepackage/draftmark#c,\\\\draftmarksetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/draftwatermark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DraftwatermarkOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DraftwatermarkOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DraftwatermarkOptions,\\\\usepackage/draftwatermark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DraftwatermarkStdMark\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DraftwatermarkOptions,\\\\usepackage/draftwatermark#c\": [\n      \"firstpageonly\",\n      \"firstpage\",\n      \"stamp\",\n      \"nostamp\",\n      \"final\",\n      \"angle=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"fontsize=\",\n      \"text=${1:text}\",\n      \"hpos=\",\n      \"vpos=\",\n      \"pos={${1:hpos,vpos}}\",\n      \"hanchor=${1|l,c,r|}\",\n      \"vanchor=${1|t,m,b|}\",\n      \"anchor=${1:string}\",\n      \"alignment=${1|l,c,r|}\",\n      \"colormodel=${1:color model}\",\n      \"colorspec=${1:color spec}\",\n      \"color=${1:color}\",\n      \"color={[${1:model}]{${2:spec}}}\",\n      \"markcmd=${1:macro}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\DraftwatermarkOptions,\\\\usepackage/draftwatermark#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dramatist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"speakswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speaksindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speechskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"act\"\n    },\n    {\n      \"name\": \"act\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"act[${1:add. text%text}]\"\n      }\n    },\n    {\n      \"name\": \"act*\"\n    },\n    {\n      \"name\": \"Act\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Act{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Act\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Act[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Act*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Act*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"scene\"\n    },\n    {\n      \"name\": \"scene\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scene[${1:add. text%text}]\"\n      }\n    },\n    {\n      \"name\": \"scene*\"\n    },\n    {\n      \"name\": \"Scene\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Scene{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Scene\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Scene[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Scene*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Scene*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"printactname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printactnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printacttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actcontentsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printscenename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printscenenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printscenetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenenamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenetitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thescene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenecontentsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"scenemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scenemark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Character\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Character{${1:name}}{${2:base}}\"\n      }\n    },\n    {\n      \"name\": \"Character\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Character[${3:entry text%text}]{${1:name}}{${2:base}}\"\n      }\n    },\n    {\n      \"name\": \"printcasttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casttitlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"castfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speaksfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speaksdel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DramPer\"\n    },\n    {\n      \"name\": \"DramPer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DramPer[${1:add. text%text}]\"\n      }\n    },\n    {\n      \"name\": \"speaker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speaker{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GCharacter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GCharacter{${1:entry text%text}}{${2:name}}{${3:base}}\"\n      }\n    },\n    {\n      \"name\": \"CharWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParenWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GroupWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StageDir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StageDir{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"direct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direct{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"direct*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direct*{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"StageDirConf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StageDirConf{${1:opening code}}{${2:closing code}}\"\n      }\n    },\n    {\n      \"name\": \"CastWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StageDirCloseSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StageDirOpenSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afteract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afteractskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftercasttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftercasttitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterscene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersceneskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeactskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforecastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesceneskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"castheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dirdelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dirdelimiter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dirwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dodramperlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dogrouplist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drampermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drampermark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"grouplist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grouplist{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sceneheadstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speakslabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speakslabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"speaksskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speakstab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecharacter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestorelineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestoreprintlineindex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"drama\"\n    },\n    {\n      \"name\": \"drama*\"\n    },\n    {\n      \"name\": \"CharacterGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:common denomination}}\"\n      }\n    },\n    {\n      \"name\": \"stagedir\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dramatist#c\": [\n      \"lnpa\",\n      \"lnps\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dramatist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/drawmatrix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawmatrix{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"drawmatrix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawmatrix[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\drawmatrix#c,\\\\drawmatrixset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawmatrixset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawmatrixset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\drawmatrix#c,\\\\drawmatrixset#c\",\n          \"\\\\drawmatrixset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\drawmatrix#c,\\\\drawmatrixset#c\": [\n      \"label text=${1:text}\",\n      \"height=\",\n      \"width=\",\n      \"size=\",\n      \"lower\",\n      \"upper\",\n      \"lower banded\",\n      \"upper banded\",\n      \"banded\",\n      \"lower bandwidth=\",\n      \"upper bandwidth=\",\n      \"bandwidth=\",\n      \"diag\",\n      \"label base=${1:text}\",\n      \"label base anchor=${1:anchor}\",\n      \"exponent=${1:text}\",\n      \"fill=\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:pattern}\",\n      \"dash phase=\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"bbox style={${1:TikZ options}}\",\n      \"bbox height=\",\n      \"bbox width=\",\n      \"bbox size=\",\n      \"offset height=\",\n      \"offset width=\",\n      \"offset=\",\n      \"scale=${1:factor}\",\n      \"x=\",\n      \"y=\",\n      \"label anchor=${1:anchor}\",\n      \"label pos=bbox.${1:anchor}\",\n      \"label pos=matrix.${1:anchor}\",\n      \"baseline=${1:node.anchor}\"\n    ],\n    \"\\\\drawmatrixset#c\": [\n      \"every picture/.append style={${1:TikZ options}}\",\n      \"every bbox/.append style={${1:TikZ options}}\",\n      \"every drawmatrix/.append style={${1:TikZ options}}\",\n      \"every label/.append style={${1:TikZ options}}\",\n      \"every node/.append style={${1:TikZ options}}\",\n      \"externalize\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/drawstack.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bcell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cell[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cellcom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellcom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cellcomL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellcomL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cellptr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellptr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cellround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellround{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawstruct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawstruct{${1:(${2:x},${3:y})}}\"\n      }\n    },\n    {\n      \"name\": \"ebp\"\n    },\n    {\n      \"name\": \"esp\"\n    },\n    {\n      \"name\": \"finishframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"finishframe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"padding\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"padding{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"separator\"\n    },\n    {\n      \"name\": \"separator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"separator[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"stackbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stackbottom[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stackbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stackbottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stacktop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stacktop[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stacktop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stacktop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"startframe\"\n    },\n    {\n      \"name\": \"structcell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"structcell[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"structcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structcell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"structname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bigcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigcell{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"bstackbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bstacktop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellptrnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellptrnext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"llcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"llcell{${1:number}}{${2:TikZ options}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"llstructcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"llstructcell{${1:number}}{${2:TikZ options}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"stackframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stackframe{${1:num1}}{${2:num2}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"thecellnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theptrnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestartframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestructnb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"drawstack\"\n    },\n    {\n      \"name\": \"drawstack\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/drawstack#c\": [\n      \"nocolor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/drawstack#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/drcaps.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"formatCap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RCap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RCap{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"HCap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HCap{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"DCap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DCap{${1:letter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/drm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"modroman\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"gmp\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifnodefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaulttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaultfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnodefaultmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaultmathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaultmathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnodefaulttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaulttexttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodefaulttextfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsymbolsonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolsonlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolsonlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftypeone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmshortq\"\n    },\n    {\n      \"name\": \"tcshape\"\n    },\n    {\n      \"name\": \"texttc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ittcshape\"\n    },\n    {\n      \"name\": \"textittc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textittc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"itscshape\"\n    },\n    {\n      \"name\": \"textitsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textitsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uishape\"\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"grktext\"\n    },\n    {\n      \"name\": \"textgrk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgrk{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"drmsupfigs\"\n    },\n    {\n      \"name\": \"textdrmsupfigs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdrmsupfigs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drminffigs\"\n    },\n    {\n      \"name\": \"textdrminffigs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdrminffigs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lseries\"\n    },\n    {\n      \"name\": \"textl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bseries\"\n    },\n    {\n      \"name\": \"textb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"loosen\"\n    },\n    {\n      \"name\": \"excelsior\"\n    },\n    {\n      \"name\": \"minikin\"\n    },\n    {\n      \"name\": \"brilliant\"\n    },\n    {\n      \"name\": \"diamondsize\"\n    },\n    {\n      \"name\": \"pearl\"\n    },\n    {\n      \"name\": \"agate\"\n    },\n    {\n      \"name\": \"ruby\"\n    },\n    {\n      \"name\": \"nonpareille\"\n    },\n    {\n      \"name\": \"minionette\"\n    },\n    {\n      \"name\": \"emerald\"\n    },\n    {\n      \"name\": \"minion\"\n    },\n    {\n      \"name\": \"brevier\"\n    },\n    {\n      \"name\": \"petit\"\n    },\n    {\n      \"name\": \"smalltext\"\n    },\n    {\n      \"name\": \"bourgeois\"\n    },\n    {\n      \"name\": \"galliard\"\n    },\n    {\n      \"name\": \"longprimer\"\n    },\n    {\n      \"name\": \"corpus\"\n    },\n    {\n      \"name\": \"garamond\"\n    },\n    {\n      \"name\": \"smallpica\"\n    },\n    {\n      \"name\": \"philosophy\"\n    },\n    {\n      \"name\": \"pica\"\n    },\n    {\n      \"name\": \"english\"\n    },\n    {\n      \"name\": \"mittel\"\n    },\n    {\n      \"name\": \"augustin\"\n    },\n    {\n      \"name\": \"columbian\"\n    },\n    {\n      \"name\": \"twolinebrevier\"\n    },\n    {\n      \"name\": \"greatprimer\"\n    },\n    {\n      \"name\": \"paragon\"\n    },\n    {\n      \"name\": \"doublesmallpica\"\n    },\n    {\n      \"name\": \"doublesmallpicaus\"\n    },\n    {\n      \"name\": \"doublepicabrit\"\n    },\n    {\n      \"name\": \"doublepica\"\n    },\n    {\n      \"name\": \"twolinepica\"\n    },\n    {\n      \"name\": \"doubleenglish\"\n    },\n    {\n      \"name\": \"twolineenglish\"\n    },\n    {\n      \"name\": \"fivelinenonpareil\"\n    },\n    {\n      \"name\": \"fourlinebrevier\"\n    },\n    {\n      \"name\": \"doublegreatprimer\"\n    },\n    {\n      \"name\": \"twolinegreatprimer\"\n    },\n    {\n      \"name\": \"meridian\"\n    },\n    {\n      \"name\": \"twolinedoublepica\"\n    },\n    {\n      \"name\": \"trafalgar\"\n    },\n    {\n      \"name\": \"canon\"\n    },\n    {\n      \"name\": \"fourline\"\n    },\n    {\n      \"name\": \"fivelinepica\"\n    },\n    {\n      \"name\": \"inch\"\n    },\n    {\n      \"name\": \"drmmathlets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drmmathlets{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bigd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigd{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"drmsym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drmsym{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"drmsymbolredef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsoundrecording\"\n    },\n    {\n      \"name\": \"textmale\"\n    },\n    {\n      \"name\": \"textfemale\"\n    },\n    {\n      \"name\": \"textcrusadecross\"\n    },\n    {\n      \"name\": \"textcrusadecrossoutline\"\n    },\n    {\n      \"name\": \"textlatincross\"\n    },\n    {\n      \"name\": \"textlatincrossoutline\"\n    },\n    {\n      \"name\": \"textgreekcross\"\n    },\n    {\n      \"name\": \"textgreekcrossoutline\"\n    },\n    {\n      \"name\": \"textsaltirecross\"\n    },\n    {\n      \"name\": \"textsaltirecrossoutline\"\n    },\n    {\n      \"name\": \"texteucharist\"\n    },\n    {\n      \"name\": \"textstardavid\"\n    },\n    {\n      \"name\": \"textstardavidsolid\"\n    },\n    {\n      \"name\": \"textstardavidoutline\"\n    },\n    {\n      \"name\": \"textsun\"\n    },\n    {\n      \"name\": \"textsunvar\"\n    },\n    {\n      \"name\": \"textwaxcrescent\"\n    },\n    {\n      \"name\": \"textfullmoon\"\n    },\n    {\n      \"name\": \"textwanecrescent\"\n    },\n    {\n      \"name\": \"textnewmoon\"\n    },\n    {\n      \"name\": \"textmercury\"\n    },\n    {\n      \"name\": \"textearth\"\n    },\n    {\n      \"name\": \"textterra\"\n    },\n    {\n      \"name\": \"textearthvar\"\n    },\n    {\n      \"name\": \"textterravar\"\n    },\n    {\n      \"name\": \"textmars\"\n    },\n    {\n      \"name\": \"textvenus\"\n    },\n    {\n      \"name\": \"textjupiter\"\n    },\n    {\n      \"name\": \"textsaturn\"\n    },\n    {\n      \"name\": \"texturanus\"\n    },\n    {\n      \"name\": \"texturanusvar\"\n    },\n    {\n      \"name\": \"textneptune\"\n    },\n    {\n      \"name\": \"textceres\"\n    },\n    {\n      \"name\": \"textpallas\"\n    },\n    {\n      \"name\": \"textjuno\"\n    },\n    {\n      \"name\": \"textjunovar\"\n    },\n    {\n      \"name\": \"textvesta\"\n    },\n    {\n      \"name\": \"textvestavar\"\n    },\n    {\n      \"name\": \"textastraea\"\n    },\n    {\n      \"name\": \"textastraeavar\"\n    },\n    {\n      \"name\": \"texthebe\"\n    },\n    {\n      \"name\": \"textiris\"\n    },\n    {\n      \"name\": \"textaries\"\n    },\n    {\n      \"name\": \"textari\"\n    },\n    {\n      \"name\": \"texttaurus\"\n    },\n    {\n      \"name\": \"texttau\"\n    },\n    {\n      \"name\": \"textgemini\"\n    },\n    {\n      \"name\": \"textgem\"\n    },\n    {\n      \"name\": \"textcancer\"\n    },\n    {\n      \"name\": \"textcnc\"\n    },\n    {\n      \"name\": \"textleo\"\n    },\n    {\n      \"name\": \"textvirgo\"\n    },\n    {\n      \"name\": \"textvir\"\n    },\n    {\n      \"name\": \"textlibra\"\n    },\n    {\n      \"name\": \"textlib\"\n    },\n    {\n      \"name\": \"textscorpius\"\n    },\n    {\n      \"name\": \"textsco\"\n    },\n    {\n      \"name\": \"textsagittarius\"\n    },\n    {\n      \"name\": \"textsgr\"\n    },\n    {\n      \"name\": \"textcapricorn\"\n    },\n    {\n      \"name\": \"textcap\"\n    },\n    {\n      \"name\": \"textaquarius\"\n    },\n    {\n      \"name\": \"textaqr\"\n    },\n    {\n      \"name\": \"textpisces\"\n    },\n    {\n      \"name\": \"textpsc\"\n    },\n    {\n      \"name\": \"textpluto\"\n    },\n    {\n      \"name\": \"textplutovar\"\n    },\n    {\n      \"name\": \"textstar\"\n    },\n    {\n      \"name\": \"textcomet\"\n    },\n    {\n      \"name\": \"textquadrature\"\n    },\n    {\n      \"name\": \"textopposition\"\n    },\n    {\n      \"name\": \"textconjunction\"\n    },\n    {\n      \"name\": \"textascendingnode\"\n    },\n    {\n      \"name\": \"textdescendingnode\"\n    },\n    {\n      \"name\": \"textdollarsign\"\n    },\n    {\n      \"name\": \"textolddollarsign\"\n    },\n    {\n      \"name\": \"textcentsign\"\n    },\n    {\n      \"name\": \"textoldcentsign\"\n    },\n    {\n      \"name\": \"textpoundsterling\"\n    },\n    {\n      \"name\": \"textoldpoundsterling\"\n    },\n    {\n      \"name\": \"textcolon\"\n    },\n    {\n      \"name\": \"textruble\"\n    },\n    {\n      \"name\": \"romone\"\n    },\n    {\n      \"name\": \"romfive\"\n    },\n    {\n      \"name\": \"romten\"\n    },\n    {\n      \"name\": \"romfifty\"\n    },\n    {\n      \"name\": \"romhundred\"\n    },\n    {\n      \"name\": \"romfivehundred\"\n    },\n    {\n      \"name\": \"romthousand\"\n    },\n    {\n      \"name\": \"liningzero\"\n    },\n    {\n      \"name\": \"liningone\"\n    },\n    {\n      \"name\": \"liningtwo\"\n    },\n    {\n      \"name\": \"liningthree\"\n    },\n    {\n      \"name\": \"liningfour\"\n    },\n    {\n      \"name\": \"liningfive\"\n    },\n    {\n      \"name\": \"liningsix\"\n    },\n    {\n      \"name\": \"liningseven\"\n    },\n    {\n      \"name\": \"liningeight\"\n    },\n    {\n      \"name\": \"liningnine\"\n    },\n    {\n      \"name\": \"textrefmark\"\n    },\n    {\n      \"name\": \"textasterism\"\n    },\n    {\n      \"name\": \"textfeminineordinal\"\n    },\n    {\n      \"name\": \"textmasculineordinal\"\n    },\n    {\n      \"name\": \"textsupone\"\n    },\n    {\n      \"name\": \"textsuptwo\"\n    },\n    {\n      \"name\": \"textsupthree\"\n    },\n    {\n      \"name\": \"textpilcrowsolid\"\n    },\n    {\n      \"name\": \"textpilcrowoutline\"\n    },\n    {\n      \"name\": \"textdag\"\n    },\n    {\n      \"name\": \"textdbldagger\"\n    },\n    {\n      \"name\": \"textdbldag\"\n    },\n    {\n      \"name\": \"dbldag\"\n    },\n    {\n      \"name\": \"textpipe\"\n    },\n    {\n      \"name\": \"textbrokenpipe\"\n    },\n    {\n      \"name\": \"textprime\"\n    },\n    {\n      \"name\": \"textdoubleprime\"\n    },\n    {\n      \"name\": \"texttripleprime\"\n    },\n    {\n      \"name\": \"textsqrt\"\n    },\n    {\n      \"name\": \"textquarter\"\n    },\n    {\n      \"name\": \"texthalf\"\n    },\n    {\n      \"name\": \"textthird\"\n    },\n    {\n      \"name\": \"texttwothirds\"\n    },\n    {\n      \"name\": \"textpermille\"\n    },\n    {\n      \"name\": \"textperbiqua\"\n    },\n    {\n      \"name\": \"textpertenmille\"\n    },\n    {\n      \"name\": \"textpertriqua\"\n    },\n    {\n      \"name\": \"textequals\"\n    },\n    {\n      \"name\": \"textslash\"\n    },\n    {\n      \"name\": \"textradiation\"\n    },\n    {\n      \"name\": \"textradiationnocircle\"\n    },\n    {\n      \"name\": \"textbiohazard\"\n    },\n    {\n      \"name\": \"textbiohazardnocircle\"\n    },\n    {\n      \"name\": \"texthighvoltage\"\n    },\n    {\n      \"name\": \"texthighvoltagenotriangle\"\n    },\n    {\n      \"name\": \"textgeneralwarning\"\n    },\n    {\n      \"name\": \"textintbang\"\n    },\n    {\n      \"name\": \"textopenintbang\"\n    },\n    {\n      \"name\": \"textheart\"\n    },\n    {\n      \"name\": \"textopenheart\"\n    },\n    {\n      \"name\": \"texteighthnote\"\n    },\n    {\n      \"name\": \"textdiamond\"\n    },\n    {\n      \"name\": \"textopendiamond\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"texttilde\"\n    },\n    {\n      \"name\": \"tilde\"\n    },\n    {\n      \"name\": \"textdegreec\"\n    },\n    {\n      \"name\": \"textrightupfleuron\"\n    },\n    {\n      \"name\": \"textrightdownfleuron\"\n    },\n    {\n      \"name\": \"textleftupfleuron\"\n    },\n    {\n      \"name\": \"textleftdownfleuron\"\n    },\n    {\n      \"name\": \"textupleftfleuron\"\n    },\n    {\n      \"name\": \"textuprightfleuron\"\n    },\n    {\n      \"name\": \"textdownrightfleuron\"\n    },\n    {\n      \"name\": \"textdownleftfleuron\"\n    },\n    {\n      \"name\": \"textsquaretulip\"\n    },\n    {\n      \"name\": \"textsquaretulipside\"\n    },\n    {\n      \"name\": \"textupdoubletulip\"\n    },\n    {\n      \"name\": \"textdowndoubletulip\"\n    },\n    {\n      \"name\": \"textrightdoubletulip\"\n    },\n    {\n      \"name\": \"textleftdoubletulip\"\n    },\n    {\n      \"name\": \"textupleftcornertulip\"\n    },\n    {\n      \"name\": \"textuprightcornertulip\"\n    },\n    {\n      \"name\": \"textlowleftcornertulip\"\n    },\n    {\n      \"name\": \"textlowrightcornertulip\"\n    },\n    {\n      \"name\": \"textupsingletuliplong\"\n    },\n    {\n      \"name\": \"textdownsingletuliplong\"\n    },\n    {\n      \"name\": \"textleftsingletuliplong\"\n    },\n    {\n      \"name\": \"textrightsingletuliplong\"\n    },\n    {\n      \"name\": \"textupsingletulip\"\n    },\n    {\n      \"name\": \"textdownsingletulip\"\n    },\n    {\n      \"name\": \"textleftsingletulip\"\n    },\n    {\n      \"name\": \"textrightsingletulip\"\n    },\n    {\n      \"name\": \"spearright\"\n    },\n    {\n      \"name\": \"spearleft\"\n    },\n    {\n      \"name\": \"horizspearext\"\n    },\n    {\n      \"name\": \"spearup\"\n    },\n    {\n      \"name\": \"speardown\"\n    },\n    {\n      \"name\": \"vertspearext\"\n    },\n    {\n      \"name\": \"fleurdelis\"\n    },\n    {\n      \"name\": \"fleurdelys\"\n    },\n    {\n      \"name\": \"fleurdelisdown\"\n    },\n    {\n      \"name\": \"fleurdelysdown\"\n    },\n    {\n      \"name\": \"fleurdelisleft\"\n    },\n    {\n      \"name\": \"fleurdelysleft\"\n    },\n    {\n      \"name\": \"fleurdelisright\"\n    },\n    {\n      \"name\": \"fleurdelysright\"\n    },\n    {\n      \"name\": \"woundcordleftext\"\n    },\n    {\n      \"name\": \"woundcordrightext\"\n    },\n    {\n      \"name\": \"woundcordleftend\"\n    },\n    {\n      \"name\": \"woundcordrightend\"\n    },\n    {\n      \"name\": \"woundcordleftendinv\"\n    },\n    {\n      \"name\": \"woundcordrightendinv\"\n    },\n    {\n      \"name\": \"romanize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"tulipframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tulipframe{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"counterA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"counterB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extcharwid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftcharwid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightcharwid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greaterwid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"extrule{${1:orient}}{${2:length}}{${3:start}}{${4:end}}{${5:ext}}\"\n      }\n    },\n    {\n      \"name\": \"drmelipgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmelipbef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmelipaft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmelipchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmelip\"\n    },\n    {\n      \"name\": \"drmfelipbef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmfelipaft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmfelipwid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmfelip\"\n    },\n    {\n      \"name\": \"drmdecinitfontdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmdecinitfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drmdecinit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"drmdecinit{${1:width}}{${2:height}}{${3:bgcolor}}{${4:fgcolor}}{${5:fgchar}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/drm#c\": [\n      \"nodefault\",\n      \"nodefaultmath\",\n      \"nodefaulttext\",\n      \"symbolsonly\",\n      \"typeone\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/drm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/droid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"droidserif\"\n    },\n    {\n      \"name\": \"droidsans\"\n    },\n    {\n      \"name\": \"droidsansmono\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/droidsans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"droidsans\"\n    },\n    {\n      \"name\": \"droidsansfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/droidsans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"defaultsans\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/droidsans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/droidsansmono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"droidsansmono\"\n    },\n    {\n      \"name\": \"droidsansmonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/droidsansmono#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"defaultmono\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/droidsansmono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/droidserif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"droidserif\"\n    },\n    {\n      \"name\": \"droidseriffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/droidserif#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/droidserif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/drs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"drs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drs{${1:variables}}{${2:conditions}}\"\n      }\n    },\n    {\n      \"name\": \"drs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drs*{${1:variables}}{${2:conditions}}\"\n      }\n    },\n    {\n      \"name\": \"ifdrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdrs{${1:lvar}}{${2:lcond}}{${3:rvar}}{${4:rcond}}\"\n      }\n    },\n    {\n      \"name\": \"condrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"condrs{${1:lvar}}{${2:lcond}}{${3:connective}}{${4:rvar}}{${5:rcond}}\"\n      }\n    },\n    {\n      \"name\": \"qdrs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"qdrs{${1:lvar}}{${2:lcond}}{${3:quantifier}}{${4:qvar}}{${5:rvar}}{${6:rcond}}\"\n      }\n    },\n    {\n      \"name\": \"negdrs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"negdrs{${1:variables}}{${2:conditions}}\"\n      }\n    },\n    {\n      \"name\": \"drsdiamond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drsdiamond{${1:quantifier}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"sdrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sdrs{${1:sentence%text}}{${2:variables}}{${3:conditions}}\"\n      }\n    },\n    {\n      \"name\": \"alifdrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"alifdrs{${1:lvar}}{${2:lcond}}{${3:rvar}}{${4:rcond}}\"\n      }\n    },\n    {\n      \"name\": \"drsalignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drsboxalignh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drsboxalignv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drscondfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drshacksetspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drslinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drsseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drsvarfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dsfont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dsfont#c\": [\n      \"sans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dsfont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dspblocks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BDConnHNext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BDConnHNext{${1:n}}{${2:m}}\"\n      }\n    },\n    {\n      \"name\": \"BDConnH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BDConnH{${1:n}}{${2:m}}{${3:p}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDConnH\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BDConnH[${5:options%keyvals}]{${1:n}}{${2:m}}{${3:p}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDConnV\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BDConnV{${1:n}}{${2:m}}{${3:q}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDConnV\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BDConnV[${5:options%keyvals}]{${1:n}}{${2:m}}{${3:q}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDsplit\"\n    },\n    {\n      \"name\": \"BDadd\"\n    },\n    {\n      \"name\": \"BDsub\"\n    },\n    {\n      \"name\": \"BDmul\"\n    },\n    {\n      \"name\": \"BDdelay\"\n    },\n    {\n      \"name\": \"BDdelayN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BDdelayN{${1:N}}\"\n      }\n    },\n    {\n      \"name\": \"BDfilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BDfilter{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDfilterMulti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BDfilterMulti{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"BDlowpass\"\n    },\n    {\n      \"name\": \"BDlowpass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BDlowpass[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"BDsampler\"\n    },\n    {\n      \"name\": \"BDsamplerFramed\"\n    },\n    {\n      \"name\": \"BDsamplerFramed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BDsamplerFramed[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"BDsinc\"\n    },\n    {\n      \"name\": \"BDsinc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BDsinc[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"BDupsmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BDupsmp{${1:N}}\"\n      }\n    },\n    {\n      \"name\": \"BDdwsmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BDdwsmp{${1:N}}\"\n      }\n    },\n    {\n      \"name\": \"BDwidth\"\n    },\n    {\n      \"name\": \"BDclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BDclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BDclip[${1:length}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dspBlocks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x}}{${2:y}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dspfunctions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dspToDeg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspRect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspRect{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspTri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspTri{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspExpDec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspExpDec{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspQuad\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspQuad{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspPorkpie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspPorkpie{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspRaisedCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspRaisedCos{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspRaisedCosine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspRaisedCosine{${1:a}}{${2:b}}{${3:r}}\"\n      }\n    },\n    {\n      \"name\": \"dspSinc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSinc{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspSincN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSincN{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspSincS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSincS{${1:a}}{${2:N}}\"\n      }\n    },\n    {\n      \"name\": \"dspSincC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSincC{${1:a}}{${2:N}}\"\n      }\n    },\n    {\n      \"name\": \"dspRand\"\n    },\n    {\n      \"name\": \"dspDFT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspDFT{${1:x0 x1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspDFTRE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspDFTRE{${1:x0 x1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspDFTIM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspDFTIM{${1:x0 x1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspDFTMAG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspDFTMAG{${1:x0 x1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspFIRI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspFIRI{${1:a0 a1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspTFM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspTFM{${1:a0 a1 ...}}{${2:b0 b1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspAudio\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspAudio{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"dspSetFilter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSetFilter{${1:b0 b1 ...}}{${2:a0 a1 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspFilter\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dsptricks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dspW\"\n    },\n    {\n      \"name\": \"dspH\"\n    },\n    {\n      \"name\": \"dspPlotFrame\"\n    },\n    {\n      \"name\": \"dspCustomTicks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspCustomTicks{${1:pos1 label1 pos2 label2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspCustomTicks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspCustomTicks[${2:options%keyvals}]{${1:pos1 label1 pos2 label2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"dspText(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dspTaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspTaps{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspTaps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspTaps[${2:options%keyvals}]{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspTapsAt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspTapsAt{${1:start}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspTapsAt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dspTapsAt[${3:options%keyvals}]{${1:start}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspTapsFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspTapsFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dspTapsFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspTapsFile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dspSignal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspSignal{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspSignal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspSignal[${2:options%keyvals}]{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspSignalOpt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspSignalOpt{${1:init}}{${2:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspSignalOpt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dspSignalOpt[${3:options%keyvals}]{${1:init}}{${2:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspFunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspFunc{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspFunc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspFunc[${2:options%keyvals}]{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"dspFuncData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspFuncData{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspFuncData\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspFuncData[${2:options%keyvals}]{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"dspFuncFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspFuncFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dspFuncFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspFuncFile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dspDiracs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspDiracs{${1:pos1 label1 pos2 label2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspDiracs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspDiracs[${2:options%keyvals}]{${1:pos1 label1 pos2 label2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"dspPeriodize\"\n    },\n    {\n      \"name\": \"dspPZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspPZ{${1:a,b}}\"\n      }\n    },\n    {\n      \"name\": \"dspPZ\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspPZ[${2:options%keyvals}]{${1:a,b}}\"\n      }\n    },\n    {\n      \"name\": \"PZAROC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PZCROC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PZLP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PZLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"action\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dirac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doOnPairs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"doOnPairs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dspAxisColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspBU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspCA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspCPArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dspCPArcn{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dspCPArc{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPCirclePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dspCPCirclePoint{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspCPCircle{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPPointSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspCPPointSC{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspCPPoint{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspCPW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspCircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspCircleLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspDotSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspFrameLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspFuncDataAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspFuncDataAt{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspFuncOpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspFuncOpt{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspImageFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspImageFile{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspLegend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspMainPeriod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspMainPeriod{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspMakeTicks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspMaxActX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspMinActX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspMkTk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspPeriod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspPeriod{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspPointValueSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspPointValueSC{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspPointValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dspPointValue{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dspPoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dspPoints{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dspSetDims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspSetDims{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspSetupAxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspShowImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dspShowImage[${2:opt}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspShowImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dspShowImage{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"dspStemWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickLabelX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickLabelY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickLabelYR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickLen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTickY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspTmpLen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspUnitX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspUnitY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspXLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspXTickGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspXlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspXmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspXmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspYLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspYLabelR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dspYTickGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outTicks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcorps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removeFactor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removeFactor{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"sg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sideGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simplifyPiFrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"simplifyPiFrac{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"thisTickLabelX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisTickX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tickColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoArgSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twoArgSplit{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"xt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dspPlot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:xmin,xmax}}{${2:ymin,ymax}}\"\n      }\n    },\n    {\n      \"name\": \"dspPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:xmin,xmax}}{${2:ymin,ymax}}\"\n      }\n    },\n    {\n      \"name\": \"dspClip\"\n    },\n    {\n      \"name\": \"dspPZPlot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:M}}\"\n      }\n    },\n    {\n      \"name\": \"dspPZPlot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:M}}\"\n      }\n    },\n    {\n      \"name\": \"dspCP\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dsserif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbfbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dsserif#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"bfbb\",\n      \"bbsymbols\",\n      \"symbols\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dsserif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dtk-extern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ResetKeys\"\n    },\n    {\n      \"name\": \"LineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoubleperCent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtkExternDateiname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perCent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"externalDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Dateiname}}\"\n      }\n    },\n    {\n      \"name\": \"externalDocument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Optionen%keyvals}]{${1:Dateiname}}\",\n        \"keys\": [\n          \"\\\\begin{externalDocument},\\\\begin{ErstelleGrafik}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ErstelleGrafik\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Dateiname}}\"\n      }\n    },\n    {\n      \"name\": \"ErstelleGrafik\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Optionen%keyvals}]{${1:Dateiname}}\",\n        \"keys\": [\n          \"\\\\begin{externalDocument},\\\\begin{ErstelleGrafik}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{externalDocument},\\\\begin{ErstelleGrafik}\": [\n      \"compiler=${1:compiler}\",\n      \"runsequence=${1:runsequence}\",\n      \"runs=${1:number}\",\n      \"grfOptions={${1:\\\\includegraphics options}}\",\n      \"lstOptions={${1:listings options}}\",\n      \"docType=${1:type}\",\n      \"caption=${1:text}\",\n      \"label=\",\n      \"pages={${1:pages}}\",\n      \"mpwidth=\",\n      \"usefancyvrb\",\n      \"showFilename\",\n      \"code\",\n      \"force\",\n      \"crop\",\n      \"biber\",\n      \"xindex\",\n      \"xindexOptions={${1:xindex options}}\",\n      \"includegraphic\",\n      \"inline\",\n      \"frame\",\n      \"float\",\n      \"cleanup\",\n      \"copyToExampleDir\",\n      \"align=${1:alignment commands}\",\n      \"ExamplesDir=${1:name}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dtk-logos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fetamont\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"dantelogo\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mpShort\"\n    },\n    {\n      \"name\": \"mfShort\"\n    },\n    {\n      \"name\": \"LaTeXTeX\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"biber\"\n    },\n    {\n      \"name\": \"Biber\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"BibTeXacht\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"context\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emTeX\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"ExTeX\"\n    },\n    {\n      \"name\": \"HanTheThanh\"\n    },\n    {\n      \"name\": \"iniTeX\"\n    },\n    {\n      \"name\": \"KOMAScript\"\n    },\n    {\n      \"name\": \"LaTeXIII\"\n    },\n    {\n      \"name\": \"LaTeXML\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"lualatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"METAFONT\"\n    },\n    {\n      \"name\": \"MetaFun\"\n    },\n    {\n      \"name\": \"MFun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"METAPOST\"\n    },\n    {\n      \"name\": \"MetaPost\"\n    },\n    {\n      \"name\": \"MiKTeX\"\n    },\n    {\n      \"name\": \"NTS\"\n    },\n    {\n      \"name\": \"OzMF\"\n    },\n    {\n      \"name\": \"OzMP\"\n    },\n    {\n      \"name\": \"OzTeX\"\n    },\n    {\n      \"name\": \"OzTtH\"\n    },\n    {\n      \"name\": \"PCTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdflatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"plainTeX\"\n    },\n    {\n      \"name\": \"PostScript\"\n    },\n    {\n      \"name\": \"PS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SageTeX\"\n    },\n    {\n      \"name\": \"SLiTeX\"\n    },\n    {\n      \"name\": \"teTeX\"\n    },\n    {\n      \"name\": \"TeXivht\"\n    },\n    {\n      \"name\": \"TTH\"\n    },\n    {\n      \"name\": \"virTeX\"\n    },\n    {\n      \"name\": \"VTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"BibTool\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ALEPH\"\n    },\n    {\n      \"name\": \"TikZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eV\"\n    },\n    {\n      \"name\": \"dante\"\n    },\n    {\n      \"name\": \"Dante\"\n    },\n    {\n      \"name\": \"DTK\"\n    },\n    {\n      \"name\": \"TUG\"\n    },\n    {\n      \"name\": \"TUGboat\"\n    },\n    {\n      \"name\": \"DANTE\"\n    },\n    {\n      \"name\": \"DANTE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DANTE[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"pgftikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXLive\"\n    },\n    {\n      \"name\": \"BibLaTeX\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"PSTricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WikipediA\"\n    },\n    {\n      \"name\": \"wikipedia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macOS\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dtk-url.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"embedfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"File\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"File{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CTANurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTANurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ctanurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"license\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"license{${1:license}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dtxdescribe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeMacro{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeMacro[${2:category}]{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeEnv[${2:category}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArgument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeArgument{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeArgument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeArgument[${2:category}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeBoolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeBoolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeBoolean\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeBoolean[${2:category}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeLength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeLength[${2:category}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeCounter[${2:category}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeHook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeHook[${2:category}]{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeSocket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeSocket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeSocket[${2:category}]{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePlug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePlug{${1:plug}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePlug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePlug[${2:category}]{${1:plug}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeKey[${2:category}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePackage[${2:category}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeClass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeClass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeClass[${2:category}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOption[${2:category}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeFile[${2:category}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeProgram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeProgram{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeProgram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeProgram[${2:category}]{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeCommand{${1:OS-cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeCommand[${2:category}]{${1:OS-cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeObject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeObject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeObject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeObject[${2:category}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOther\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOther{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOther\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOther[${2:category}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeMacro{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeMacro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeMacro[${2:category}]{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeEnv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeEnv[${2:category}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeArgument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeArgument{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeArgument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeArgument[${2:category}]{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeBoolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeBoolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeBoolean\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeBoolean[${2:category}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeLength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeLength[${2:category}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeCounter[${2:category}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeHook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeHook[${2:category}]{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeSocket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeSocket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeSocket[${2:category}]{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribePlug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribePlug{${1:plug}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribePlug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribePlug[${2:category}]{${1:plug}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeKey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeKey\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeKey[${2:category}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribePackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribePackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribePackage[${2:category}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeClass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeClass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeClass[${2:category}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeOption[${2:category}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeFile[${2:category}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeProgram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeProgram{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeProgram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeProgram[${2:category}]{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeCommand{${1:OS-cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeCommand[${2:category}]{${1:OS-cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeObject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeObject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeObject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeObject[${2:category}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeOther\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescribeOther{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ItemDescribeOther\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ItemDescribeOther[${2:category}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeDefault{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeDefaultcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shownesting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shownesting{${1:container name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"shownesting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"shownesting[${3:fraction}]{${1:container name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"shownesting*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shownesting*{${1:container name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"shownesting*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"shownesting*[${3:fraction}]{${1:container name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"margintag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margintag{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margintagcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"watchout\"\n    },\n    {\n      \"name\": \"watchout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"watchout[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"watchoutcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtxexamplecodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtxexampleresultname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fquad\"\n    },\n    {\n      \"name\": \"fqquad\"\n    },\n    {\n      \"name\": \"fqqquad\"\n    },\n    {\n      \"name\": \"userentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"userentry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"userentryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ctr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctr{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"bool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bool{${1:bool}}\"\n      }\n    },\n    {\n      \"name\": \"optn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optn{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"TOC\"\n    },\n    {\n      \"name\": \"LOF\"\n    },\n    {\n      \"name\": \"LOT\"\n    },\n    {\n      \"name\": \"progcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"progcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"prog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prog{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"filenm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filenm{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UI{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmds{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ODT\"\n    },\n    {\n      \"name\": \"SVG\"\n    },\n    {\n      \"name\": \"PNG\"\n    },\n    {\n      \"name\": \"GIF\"\n    },\n    {\n      \"name\": \"JPG\"\n    },\n    {\n      \"name\": \"EPS\"\n    },\n    {\n      \"name\": \"PDF\"\n    },\n    {\n      \"name\": \"DVI\"\n    },\n    {\n      \"name\": \"UTF\"\n    },\n    {\n      \"name\": \"URL\"\n    },\n    {\n      \"name\": \"element\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"element{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribute{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"attrib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attrib{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"HTML\"\n    },\n    {\n      \"name\": \"HTMLfive\"\n    },\n    {\n      \"name\": \"CSS\"\n    },\n    {\n      \"name\": \"CSSthree\"\n    },\n    {\n      \"name\": \"EPUB\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"MathML\"\n    },\n    {\n      \"name\": \"MathJax\"\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"TDS\"\n    },\n    {\n      \"name\": \"brand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brand{${1:brand}}\"\n      }\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acro{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"supregistered\"\n    },\n    {\n      \"name\": \"dviTeX\"\n    },\n    {\n      \"name\": \"dviLaTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"MakeIndex\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"MiKTeX\"\n    },\n    {\n      \"name\": \"thinskip\"\n    },\n    {\n      \"name\": \"endash\"\n    },\n    {\n      \"name\": \"emdash\"\n    },\n    {\n      \"name\": \"thinbrspace\"\n    },\n    {\n      \"name\": \"thinthinbrspace\"\n    },\n    {\n      \"name\": \"Dash\"\n    },\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"Slash\"\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"warningsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actualchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"levelchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encapchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbatimchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintEnvName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEnvName{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"usage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usage{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"removebs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removebs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MacroFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DTXDbreak\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dtxexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption/label%text}}\"\n      }\n    },\n    {\n      \"name\": \"dtxexample\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:notes/crossrefs%text}]{${1:caption/label%text}}\"\n      }\n    },\n    {\n      \"name\": \"sourceverb\"\n    },\n    {\n      \"name\": \"sourceverb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourceverb},\\\\begin{fsourceverb}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fsourceverb\"\n    },\n    {\n      \"name\": \"fsourceverb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sourceverb},\\\\begin{fsourceverb}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sourcedisplay\"\n    },\n    {\n      \"name\": \"UIdisplay\"\n    },\n    {\n      \"name\": \"docsidebar\"\n    },\n    {\n      \"name\": \"docsidebar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"dtxdexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noindmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"noindenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{sourceverb},\\\\begin{fsourceverb}\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ducksay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"grabbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefaultAnimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultAnimal{${1:animal%keyvals}}\",\n        \"keys\": [\n          \"\\\\DefaultAnimal#c,\\\\ducksay#c,\\\\duckthink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DucksayOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DucksayOptions{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\DucksayOptions#c,\\\\ducksay#c,\\\\duckthink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AnimalOptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AnimalOptions{${1:animal}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\AnimalOptions#c,\\\\AnimalOptions*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"AnimalOptions*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AnimalOptions*{${1:animal}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\AnimalOptions#c,\\\\AnimalOptions*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ducksay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ducksay{${1:message}}\"\n      }\n    },\n    {\n      \"name\": \"ducksay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ducksay[${2:options%keyvals}]{${1:message}}\",\n        \"keys\": [\n          \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\DucksayOptions#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\DefaultAnimal#c,\\\\ducksay#c,\\\\duckthink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"duckthink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duckthink{${1:message}}\"\n      }\n    },\n    {\n      \"name\": \"duckthink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"duckthink[${2:options%keyvals}]{${1:message}}\",\n        \"keys\": [\n          \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\DucksayOptions#c,\\\\ducksay#c,\\\\duckthink#c\",\n          \"\\\\DefaultAnimal#c,\\\\ducksay#c,\\\\duckthink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DucksayOptions#c,\\\\AnimalOptions#c,\\\\AnimalOptions*#c,\\\\ducksay#c,\\\\duckthink#c\": [\n      \"ligatures=${1:tokenlist}\",\n      \"no-tail\",\n      \"random\",\n      \"say\",\n      \"schroedinger\",\n      \"tail-1=${1:tokenlist}\",\n      \"tail-2=${1:tokenlist}\",\n      \"think\"\n    ],\n    \"\\\\AnimalOptions#c,\\\\AnimalOptions*#c\": [\n      \"tail-count=\",\n      \"tail-symbol=\"\n    ],\n    \"\\\\DucksayOptions#c,\\\\ducksay#c,\\\\duckthink#c\": [\n      \"arg=${1|box,tab,tab*|}\",\n      \"b\",\n      \"body=${1:font}\",\n      \"body*=${1:font}\",\n      \"body-align=${1|l,c,r|}\",\n      \"body-bigger=${1:count}\",\n      \"body-mirrored\",\n      \"body-to-msg=\",\n      \"body-x=\",\n      \"body-y=\",\n      \"bubble=${1:font}\",\n      \"bubble*=${1:font}\",\n      \"bubble-bot-kern=\",\n      \"bubble-delim-left-1=${1:tokenlist}\",\n      \"bubble-delim-left-2=${1:tokenlist}\",\n      \"bubble-delim-left-3=${1:tokenlist}\",\n      \"bubble-delim-left-4=${1:tokenlist}\",\n      \"bubble-delim-right-1=${1:tokenlist}\",\n      \"bubble-delim-right-2=${1:tokenlist}\",\n      \"bubble-delim-right-3=${1:tokenlist}\",\n      \"bubble-delim-right-4=${1:tokenlist}\",\n      \"bubble-delim-top=${1:tokenlist}\",\n      \"bubble-side-kern=\",\n      \"bubble-top-kern=\",\n      \"c\",\n      \"col=\",\n      \"hpad=${1:count}\",\n      \"ht=${1:count}\",\n      \"ignore-body\",\n      \"msg=${1:font}\",\n      \"msg*=${1:font}\",\n      \"MSG=${1:font}\",\n      \"MSG*=${1:font}\",\n      \"msg-align=${1|l,c,r,j|}\",\n      \"msg-align-c=${1:tokenlist}\",\n      \"msg-align-l=${1:tokenlist}\",\n      \"msg-align-r=${1:tokenlist}\",\n      \"msg-align-j=${1:tokenlist}\",\n      \"msg-to-body=\",\n      \"no-bubble\",\n      \"none\",\n      \"out-h=\",\n      \"out-v=\",\n      \"out-x=\",\n      \"out-y=\",\n      \"strip-spaces\",\n      \"t\",\n      \"vpad=${1:count}\",\n      \"wd=${1:count}\",\n      \"wd*=\",\n      \"wd-eq-body\"\n    ],\n    \"\\\\DefaultAnimal#c,\\\\ducksay#c,\\\\duckthink#c\": [\n      \"animal=\",\n      \"duck\",\n      \"small-duck\",\n      \"duck-family\",\n      \"small-rabbit\",\n      \"squirrel\",\n      \"cow\",\n      \"tux\",\n      \"head-in\",\n      \"platypus\",\n      \"pig\",\n      \"turtle\",\n      \"frog\",\n      \"snowman\",\n      \"bunny\",\n      \"dragon\",\n      \"sodomized\",\n      \"hedgehog\",\n      \"kangaroo\",\n      \"small-horse\",\n      \"dog\",\n      \"sheep\",\n      \"rabbit\",\n      \"snail\",\n      \"whale\",\n      \"snake\",\n      \"cat\",\n      \"sleepy-cat\",\n      \"schroedinger-dead\",\n      \"schroedinger-alive\",\n      \"crusader\",\n      \"knight\",\n      \"fairy\",\n      \"ghost\",\n      \"unicorn\",\n      \"r2d2\",\n      \"vader\",\n      \"yoda-head\",\n      \"small-yoda\",\n      \"yoda\",\n      \"only-tail\",\n      \"only-tail3\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/duckuments.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"duckument\"\n    },\n    {\n      \"name\": \"duckument\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"duckument[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\duckument#c,\\\\blindduck#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blindduck\"\n    },\n    {\n      \"name\": \"blindduck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindduck[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\duckument#c,\\\\blindduck#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ducklist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ducklist{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"ducklist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ducklist*{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"ducklistlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ducklistlist{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"ducklistlist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ducklistlist*{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"duckitemize\"\n    },\n    {\n      \"name\": \"duckenumerate\"\n    },\n    {\n      \"name\": \"duckdescription\"\n    },\n    {\n      \"name\": \"duckumentsCreateExampleFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckumentsDrawRandomDucks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckumentsDrawRandomDucks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"duckumentsDrawRandomDucks[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"duckumentsDrawRandomDucks*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckumentsDrawRandomDucks*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"duckumentsDrawRandomDucks*[${1:number}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\duckument#c,\\\\blindduck#c\": [\n      \"toc\",\n      \"maths=${1|both,inline,display,none|}\",\n      \"full\",\n      \"all\",\n      \"immediate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/duerer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textdurm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdurm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdubf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdubf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdusl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdusl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdutt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdutt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdusf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdusf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textduin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textduin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"durmfamily\"\n    },\n    {\n      \"name\": \"dusffamily\"\n    },\n    {\n      \"name\": \"duttfamily\"\n    },\n    {\n      \"name\": \"duinfamily\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"durmfamily\"\n    },\n    {\n      \"name\": \"dusffamily\"\n    },\n    {\n      \"name\": \"duttfamily\"\n    },\n    {\n      \"name\": \"duinfamily\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dutchcal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/dutchcal#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dutchcal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dvgloss.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gl{${1:gloss}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ft{${1:translation text%text}}\"\n      }\n    },\n    {\n      \"name\": \"lb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lb{${1:label text%text}}\"\n      }\n    },\n    {\n      \"name\": \"glescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossword{${1:word1}}{${2:word2}}\"\n      }\n    },\n    {\n      \"name\": \"aboveglftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboveglskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtokens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"betweenglskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkspecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkspecial{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dvglspecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everygla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyglb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixglstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glhangindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstrutdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstrutheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnotin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifspecial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"istchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makespecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makespecial{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"noglstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"popoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"popoff{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"split\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"split{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ssplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssplit{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"withinglskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zipper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zipper{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dvipscol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nogroupcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nogroupcolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dvisirule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"sitabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"silongtable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dynamicnumber.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dndeclare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dndeclare{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dnsetcurrent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dnsetcurrent{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dncurrent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dncurrent{${1:dnlist}}\"\n      }\n    },\n    {\n      \"name\": \"dnload\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dnload{${1:dnlist}}\"\n      }\n    },\n    {\n      \"name\": \"dnget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dnget{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"dnget\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dnget[${2:dnlist}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"dninstream\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dynblocks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"shadow\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"opaqueblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opaqueblock<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"opaqueblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"opaqueblock<overlay specification>[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"invblock<overlay specification>\"\n    },\n    {\n      \"name\": \"setalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setalignment{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\setalignment#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setvisopacity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvisopacity{${1:opacity}}\"\n      }\n    },\n    {\n      \"name\": \"setinvopacity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinvopacity{${1:opacity}}\"\n      }\n    },\n    {\n      \"name\": \"dynalert<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynalert<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setwordscolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwordscolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setshadowopacity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshadowopacity{${1:opacity}}\"\n      }\n    },\n    {\n      \"name\": \"setblockcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setblockcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setbordercolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbordercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setinnercolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinnercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setoutercolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setoutercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"settopcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settopcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setbottomcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbottomcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setleftcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setleftcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setrightcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrightcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fancyblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyblock<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyblock<overlay specification>[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vshadeblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vshadeblock<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vshadeblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vshadeblock<overlay specification>[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oshadeblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oshadeblock<overlay specification>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oshadeblock<overlay specification>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oshadeblock<overlay specification>[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebordercol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myalert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myalert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printthistext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printthistext{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"savetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savetext{${1:id}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"thethistext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intdimension\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dynblock\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/dynblocks#c\": [\n      \"customcolors\",\n      \"getthemecolors\",\n      \"roundedcorners\",\n      \"shadow\"\n    ],\n    \"\\\\setalignment#c\": [\n      \"left\",\n      \"flush left\",\n      \"right\",\n      \"flush right\",\n      \"center\",\n      \"flush center\",\n      \"justify\",\n      \"none\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/dynblocks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/dynbrackets.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbr{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"dbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbs{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"dbc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbc{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"dba\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dba{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"dbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbp{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"dbdp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbdp{${1:formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dynkin-diagrams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dynkin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkin{${1:letter}}{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkin\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dynkin{${1:letter}}[${3:twisted rank}]{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkin[${3:options}]{${1:letter}}{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dynkin\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"dynkin[${3:options}]{${1:letter}}[${4:twisted rank}]{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dynkinName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinName{${1:letter}}{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"dynkinName{${1:letter}}[${3:twisted rank}]{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinName[${3:options}]{${1:letter}}{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dynkinName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"dynkinName[${3:options}]{${1:letter}}[${4:twisted rank}]{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dynkins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkins{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinFold\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinFold{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinFold\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinFold[${3:TikZ keys}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"drlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drlap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinBrace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinBrace{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinBrace\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinBrace[${3:label%formula}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinBrace*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinBrace*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinBrace*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinBrace*[${3:label%formula}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTripleEdge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinTripleEdge{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTripleEdge\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinTripleEdge[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTripleEdge*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinTripleEdge*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTripleEdge*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinTripleEdge*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinQuadrupleEdge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinQuadrupleEdge{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinQuadrupleEdge\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinQuadrupleEdge[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinQuadrupleEdge*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinQuadrupleEdge*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinQuadrupleEdge*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinQuadrupleEdge*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleEdge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleEdge{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleEdge\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleEdge[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleEdge*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleEdge*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleEdge*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleEdge*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"Adynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerarc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"centerarc[${1:TikZ keys}](${2:center})(${3:initangle:finalangle:radius})\"\n      }\n    },\n    {\n      \"name\": \"convertRootNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convertRootNumber{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"convertRootPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"convertRootPair{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"currentDynkinOrdering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ddynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultpgflinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DfourPly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOneFourFourPly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DthreePly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinCrossRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinCrossRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinCrossRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinCrossRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinCrossRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinCrossRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownLeftArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownLeftArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownLeftArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownLeftArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownLeftArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownLeftArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownLeftArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownLeftArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightSemiCircle*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightSemiCircle*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightSemiCircle[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleDownRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleDownRightSemiCircle{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleLeftUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleRightUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpLeftArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpLeftArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpLeftArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpLeftArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpLeftArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpLeftArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpLeftArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpLeftArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightSemiCircle*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightSemiCircle*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightSemiCircle[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteDoubleUpRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteDoubleUpRightSemiCircle{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteLeftUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteRightDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteRightDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteRightDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteRightDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteRightUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteRightUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteRightUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteRightUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteSemiCircle*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteSemiCircle*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteSemiCircle[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteSemiCircle{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSingleEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteSingleEdge*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSingleEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteSingleEdge*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSingleEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteSingleEdge[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteSingleEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteSingleEdge{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteTripleDownRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteTripleDownRightSemiCircle*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteTripleDownRightSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteTripleDownRightSemiCircle*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteTripleDownRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinDefiniteTripleDownRightSemiCircle[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDefiniteTripleDownRightSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinDefiniteTripleDownRightSemiCircle{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDoubleHollowRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinDoubleHollowRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDoubleHollowRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinDoubleHollowRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDoubleHollowRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinDoubleHollowRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDoubleHollowRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinDoubleHollowRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDrawCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinDrawCrossRootMark[${2:TikZ keys}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDrawCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinDrawCrossRootMark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDrawSolidRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinDrawSolidRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDrawSolidRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinDrawSolidRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinEast*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dynkinEdge*[${4:TikZ keys}]{${1:type}}{${2:root1}}{${3:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dynkinEdge*{${1:type}}{${2:root1}}{${3:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dynkinEdge[${4:TikZ keys}]{${1:type}}{${2:root1}}{${3:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dynkinEdge{${1:type}}{${2:root1}}{${3:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdgeArrow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinEdgeArrow*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdgeArrow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinEdgeArrow*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdgeArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinEdgeArrow[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdgeArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinEdgeArrow{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinEdgeLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dynkinEdgeLabel{${1:root1}}{${2:root2}}{${3:label text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHeavyCrossRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinHeavyCrossRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHeavyCrossRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinHeavyCrossRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHeavyCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinHeavyCrossRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHeavyCrossRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinHeavyCrossRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHollowRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinHollowRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHollowRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinHollowRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHollowRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinHollowRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinHollowRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinHollowRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteLeftUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteLeftUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightDownArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightDownArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightDownArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightDownArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightDownArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightDownArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightUpArc*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightUpArc*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightUpArc*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightUpArc[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteRightUpArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteRightUpArc{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteSemiCircle*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSemiCircle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteSemiCircle*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteSemiCircle[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSemiCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteSemiCircle{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSingleEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteSingleEdge*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSingleEdge*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteSingleEdge*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSingleEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinIndefiniteSingleEdge[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSingleEdge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinIndefiniteSingleEdge{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinIndefiniteSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinIndefiniteSymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacDoubleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinKacDoubleArrow[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacDoubleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinKacDoubleArrow{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacQuadrupleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinKacQuadrupleArrow[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacQuadrupleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinKacQuadrupleArrow{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacTripleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinKacTripleArrow[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinKacTripleArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinKacTripleArrow{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLabelRoot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinLabelRoot*{${1:root}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLabelRoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinLabelRoot{${1:root}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLeftFold*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinLeftFold*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLeftFold*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinLeftFold*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLeftFold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinLeftFold[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinLeftFold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinLeftFold{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinMoveToRoot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinMoveToRoot*{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinMoveToRoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinMoveToRoot{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinNorth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinNorth*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinNorthEast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinNorthEast*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinNorthWest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinNorthWest*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinOrder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinOrderFromBourbaki\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dynkinOrderFromBourbaki{${1:series}}{${2:rank}}{${3:root}}{${4:to order}}{${5:count}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinOrderToBourbaki\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dynkinOrderToBourbaki{${1:series}}{${2:rank}}{${3:from order}}{${4:root}}{${5:count}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinOverrideRoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinPlaceRootHere*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dynkinPlaceRootHere*{${1:n}}{${2:L}}{${3:L*}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinPlaceRootHere\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dynkinPlaceRootHere{${1:n}}{${2:L}}{${3:L*}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinPlaceRootRelativeTo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dynkinPlaceRootRelativeTo*{${1:root1}}{${2:root2}}{${3:dir}}{${4:L}}{${5:L*}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinPlaceRootRelativeTo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"dynkinPlaceRootRelativeTo{${1:root1}}{${2:root2}}{${3:dir}}{${4:L}}{${5:L*}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinPrintLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinPrintLabelsStar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinPutLabelInDirection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinPutLabelInDirection*{${1:root}}{${2:val 0-7}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinPutLabelInDirection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinPutLabelInDirection{${1:root}}{${2:val 0-7}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRefreshRoots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinRightFold*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinRightFold*[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRightFold*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinRightFold*{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRightFold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dynkinRightFold[${3:TikZ keys}]{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRightFold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinRightFold{${1:root1}}{${2:root2}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinRootMark*{${1:mark style}}{${2:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynkinRootMark{${1:mark style}}{${2:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSolidRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinSolidRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinSolidRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinSolidRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinSolidRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinSolidRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinSolidRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinSolidRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinSouth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouth*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthEast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthEast*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthEastFold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthFold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthWest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthWest*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinSouthWestFold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinTensorRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinTensorRootMark*[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTensorRootMark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinTensorRootMark*{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTensorRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dynkinTensorRootMark[${2:TikZ keys}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinTensorRootMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynkinTensorRootMark{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinWest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dynkinWest*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Edynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ESixThreePly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ESixTwoPly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedAdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedBdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedBthreePly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedCdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedDdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedDthreePly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedEdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedESevenFolded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedFdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedGdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedHdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendedIdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forDynkinSemicolonsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forDynkinSemicolonsvlist{${1:macro}}{${2:item1;item2;...}}\"\n      }\n    },\n    {\n      \"name\": \"Gdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pipebmo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pipefpo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regurgitate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regurgitate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"repeatCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"repeatCharacter{${1:n}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"replacementLeftString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replacementN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replacementRightString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replaceNthChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"replaceNthChar{${1:string}}{${2:N}}{${3:char}}\"\n      }\n    },\n    {\n      \"name\": \"replaceNthCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stringCharacterInPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stringCharacterInPosition{${1:string}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"swapRootIfInLastTwoRoots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swapRootIfInLastTwoRoots{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"testbit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"testbit{${1:n}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"thedynkinRootNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedAdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedDdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedDTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedEdynkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeDynkinOrder\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dynkinDiagram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:letter}}{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDiagram\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:letter}}[${3:twisted rank}]{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"dynkinDiagram\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options}]{${1:letter}}{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dynkinDiagram\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:options}]{${1:letter}}[${4:twisted rank}]{${2:rank}}\",\n        \"keys\": [\n          \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DynkinDiagrams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:spec}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\dynkin#c,\\\\begin{dynkinDiagram}#c,\\\\pgfkeys#c,\\\\tikzset#c,\\\\dynkinName#c\": [\n      \"*/.style={${1:style specs}}\",\n      \"affine mark=${1|o,O,*,t,x,X|}\",\n      \"arrow shape/.style={${1:style specs}}\",\n      \"arrow style={${1:style specs}}\",\n      \"arrow width=\",\n      \"arrows\",\n      \"at=(${1:node})\",\n      \"backwards\",\n      \"bird arrow\",\n      \"Bourbaki arrow\",\n      \"ceref\",\n      \"Coxeter\",\n      \"Coxeter above\",\n      \"double edges\",\n      \"double fold\",\n      \"double fold left\",\n      \"double fold right\",\n      \"double left\",\n      \"double right\",\n      \"edge label/.style={${1:style specs}}\",\n      \"edge length=\",\n      \"edge/.style={${1:style specs}}\",\n      \"extended\",\n      \"fold\",\n      \"fold left\",\n      \"fold left style/.style={${1:style specs}}\",\n      \"fold radius=\",\n      \"fold right\",\n      \"fold right style/.style={${1:style specs}}\",\n      \"fold style/.style={${1:style specs}}\",\n      \"gonality=${1:math}\",\n      \"horizontal shift=\",\n      \"indefinite edge/.style={${1:style specs}}\",\n      \"indefinite edge=\",\n      \"indefinite edge ratio=${1:number}\",\n      \"involution/.style={${1:style specs}}\",\n      \"involutions={${1:inv1;inv2;...}}\",\n      \"Kac\",\n      \"Kac arrows\",\n      \"label\",\n      \"label depth=${1:label text}\",\n      \"label directions={${1:dir1,dir2,...}}\",\n      \"label height=${1:label text}\",\n      \"label macro*/.code={${1:code}}\",\n      \"label macro/.code={${1:code}}\",\n      \"label* directions={${1:dir1,dir2,...}}\",\n      \"labels*={${1:label list}}\",\n      \"labels={${1:label list}}\",\n      \"make indefinite edge/.list={${1:i1-j1,i2-j2,...}}\",\n      \"make indefinite edge={${1:i-j}}\",\n      \"mark=${1|o,O,*,t,x,X|}\",\n      \"name=${1:name}\",\n      \"o/.append style={${1:style specs}}\",\n      \"o/.style={${1:style specs}}\",\n      \"O/.style={${1:style specs}}\",\n      \"odd\",\n      \"ordering=${1|Kac,Dynkin,Adams,Bourbaki,Carter|}\",\n      \"parabolic=${1:integer}\",\n      \"ply=${1|0,1,2,3,4|}\",\n      \"reverse arrows\",\n      \"root radius=\",\n      \"separator length=\",\n      \"scale=${1:factor}\",\n      \"t/.style={${1:style specs}}\",\n      \"text style/.style={${1:style specs}}\",\n      \"text style={${1:style specs}}\",\n      \"upside down\",\n      \"vertical shift=\",\n      \"x/.style={${1:style specs}}\",\n      \"X/.style={${1:style specs}}\"\n    ],\n    \"\\\\pgfkeys#c,\\\\tikzset#c\": [\n      \"/Dynkin diagram\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/dyntree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"coollist\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"epic\"\n    },\n    {\n      \"name\": \"eepic\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"start\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"start{${1:dyntree}}{${2:num roots}}\"\n      }\n    },\n    {\n      \"name\": \"dynbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynbox{${1:cartan coeffs%formula}}{${2:root list}}\"\n      }\n    },\n    {\n      \"name\": \"lend\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ean13isbn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EANsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EANsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/ean13isbn#c,\\\\EANsetup,\\\\EANisbn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ISBN\"\n    },\n    {\n      \"name\": \"EANisbn\"\n    },\n    {\n      \"name\": \"EANisbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EANisbn[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ean13isbn#c,\\\\EANsetup,\\\\EANisbn\": [\n      \"ISBN=${1:ISBN}\",\n      \"SC0\",\n      \"SC0a\",\n      \"SC0b\",\n      \"SC1\",\n      \"SC1a\",\n      \"SC2\",\n      \"SC2a\",\n      \"SC3\",\n      \"SC3a\",\n      \"SC4\",\n      \"SC4a\",\n      \"SC5\",\n      \"SC5a\",\n      \"SC5b\",\n      \"SC5c\",\n      \"SC6\",\n      \"SC6a\",\n      \"SC7\",\n      \"SC7a\",\n      \"SC7b\",\n      \"SC7c\",\n      \"SC8\",\n      \"SC8a\",\n      \"SC8b\",\n      \"SC8c\",\n      \"SC9\",\n      \"SC10\",\n      \"help\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ean13isbn#c,\\\\EANsetup,\\\\EANisbn\"\n  ]\n}"
  },
  {
    "path": "dev/packages/easy-todo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:note%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todoi{${1:note%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todoii\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todoii{${1:note%todo}}{${2:information%text}}\"\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"todoindextitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todoindexpagetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todocolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoftodosname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/easy-todo#c\": [\n      \"chapter\",\n      \"section\",\n      \"obeyFinal\",\n      \"enable\",\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easy-todo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/easyReview.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"add\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"add{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alertColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comment{${1:text}}{${2:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"removeColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"remove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"replace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"replace{${1:text}}{${2:replacement%text}}\"\n      }\n    },\n    {\n      \"name\": \"setreviewsoff\"\n    },\n    {\n      \"name\": \"setreviewson\"\n    },\n    {\n      \"name\": \"substitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"substitute{${1:text}}{${2:replacement%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifistoreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"istoreviewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"istoreviewtrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/easybase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ctex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"spbmark\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"chemformula\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"tabularraylibrarybooktabs\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"frontmatter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"frontmatter[${1:numstyle%keyvals}]\",\n        \"keys\": [\n          \"\\\\frontmatter#c,\\\\frontmatter*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frontmatter*\"\n    },\n    {\n      \"name\": \"frontmatter*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"frontmatter*[${1:numstyle%keyvals}]\",\n        \"keys\": [\n          \"\\\\frontmatter#c,\\\\frontmatter*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"mainmatter*\"\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"cleardoublepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleardoublepage[${1:pagestyle%keyvals}]\",\n        \"keys\": [\n          \"\\\\cleardoublepage#c,\\\\blankpagestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blankpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blankpagestyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoublepage#c,\\\\blankpagestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tableofcontents[${1:options%keyvals}](${2:代码钩子})\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableofcontents*\"\n    },\n    {\n      \"name\": \"tableofcontents*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableofcontents*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tableofcontents*[${1:options%keyvals}](${2:代码钩子})\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoffigures\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoffigures[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoffigures*\"\n    },\n    {\n      \"name\": \"listoffigures*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoffigures*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftables\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftables[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftables*\"\n    },\n    {\n      \"name\": \"listoftables*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftables*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoflstlistings\"\n    },\n    {\n      \"name\": \"listoflstlistings\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoflstlistings[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoflstlistings*\"\n    },\n    {\n      \"name\": \"listoflstlistings*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoflstlistings*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bichapter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bichapter{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bichapter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bichapter[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bichapter*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bichapter*{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bichapter*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bichapter*[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisection{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisection[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisection*{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisection*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisection*[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubsection{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisubsection[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bisubsection*{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"bisubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bisubsection*[${3:short chinese title%text}]{${1:title}}{${2:short english title}}\"\n      }\n    },\n    {\n      \"name\": \"thebichapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebisection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebisubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"appendix[${1:前名字,后名字}]\"\n      }\n    },\n    {\n      \"name\": \"appendix\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"appendix[${1:前名字,后名字}](${2:数字输出命令})\"\n      }\n    },\n    {\n      \"name\": \"appendix\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"appendix(${1:数字输出命令})\"\n      }\n    },\n    {\n      \"name\": \"BeforeAddBitoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeAddBitoc{${1:英文标题加入目录前的代码}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeAddBitoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeAddBitoc*{${1:英文标题加入目录前的代码}}\"\n      }\n    },\n    {\n      \"name\": \"ebstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebstyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebrefset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebrefset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebrefset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebspread\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebspread{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebspread\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebsubfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebsubfont{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebsubfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebbibset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebbibset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebbibset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebthmset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebthmset{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"ebgeoset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebgeoset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebgeoset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebhdrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebhdrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebhdrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebtocset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebtocset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebtocset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareThemeColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareThemeColor{${1:name,frame color,emph color,verb color}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLinkColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLinkColor{${1:name,link color,url color,cite color}}\"\n      }\n    },\n    {\n      \"name\": \"addtosubfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtosubfont{${1:字体类型}}{${2:字体命令}}\"\n      }\n    },\n    {\n      \"name\": \"printbibliography\"\n    },\n    {\n      \"name\": \"printbibliography\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbibliography[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"markdouble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdouble{${1:双页标题标记}}\"\n      }\n    },\n    {\n      \"name\": \"markrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markrule{${1:线宽}}\"\n      }\n    },\n    {\n      \"name\": \"markrule\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"markrule[${2:长度}](${4:颜色名}){${1:线宽}}[${3:上间距|下间距}]\"\n      }\n    },\n    {\n      \"name\": \"fnfirstindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnafterindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefineFntSymbols\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineFntSymbols{${1:符号表名}}{${2:符号数量}}{${3:符号列表}}\"\n      }\n    },\n    {\n      \"name\": \"setfntsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfntsymbol{${1:符号表名}}\"\n      }\n    },\n    {\n      \"name\": \"defupfntmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defupfntmark{${1:脚注正文标记格式}}\"\n      }\n    },\n    {\n      \"name\": \"defdownfntmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defdownfntmark{${1:脚注内容标记格式}}\"\n      }\n    },\n    {\n      \"name\": \"notminipage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"notminipage{${1:普通页内容}}{${2:迷你页内容}}\"\n      }\n    },\n    {\n      \"name\": \"theupfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedownfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Footnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnote{${1:正文标记}}{${2:脚注文本%text}}\"\n      }\n    },\n    {\n      \"name\": \"Footnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Footnote[${3:内容标记}]{${1:正文标记}}{${2:脚注文本%text}}\"\n      }\n    },\n    {\n      \"name\": \"Footnotetext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnotetext{${1:内容标记}}{${2:脚注文本%text}}\"\n      }\n    },\n    {\n      \"name\": \"Footnotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Footnotemark{${1:正文标记}}\"\n      }\n    },\n    {\n      \"name\": \"tocrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocrule{${1:引导点}}\"\n      }\n    },\n    {\n      \"name\": \"tocrule\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"tocrule[${2:引导点间距}](${4:放大因子}){${1:引导点}}[${3:页码格式}]\"\n      }\n    },\n    {\n      \"name\": \"tocrule*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocrule*{${1:引导点}}\"\n      }\n    },\n    {\n      \"name\": \"tocrule*\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"tocrule*[${2:引导点间距}](${4:放大因子}){${1:引导点}}[${3:页码格式}]\"\n      }\n    },\n    {\n      \"name\": \"RegisterTocName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RegisterTocName{${1:条目名}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFloatList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatList{${1:条目名}}{${2:扩展名}}\"\n      }\n    },\n    {\n      \"name\": \"listnumberline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listnumberline{${1:条目名}}\"\n      }\n    },\n    {\n      \"name\": \"hangpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangpara{${1:缩进长度}}{${2:缩进开始行数}}\"\n      }\n    },\n    {\n      \"name\": \"deftcbstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deftcbstyle{${1:name%specialDef}}{${2:tcolorbox keys}}\"\n      }\n    },\n    {\n      \"name\": \"addtotcbstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtotcbstyle{${1:name}}{${2:tcolorbox keys}}\"\n      }\n    },\n    {\n      \"name\": \"ebemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebemph{${1:内容}}\"\n      }\n    },\n    {\n      \"name\": \"ebemph\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ebemph[${2:颜色名}]{${1:内容}}[${3:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"ebfbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebfbox{${1:内容}}\"\n      }\n    },\n    {\n      \"name\": \"ebfbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ebfbox[${2:颜色名}]{${1:内容}}[${3:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"counteruse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"counteruse{${1:计数器}}\"\n      }\n    },\n    {\n      \"name\": \"counteruse\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"counteruse[${2:编号}](${4:分隔符}){${1:计数器}}[${3:父计数器}]\"\n      }\n    },\n    {\n      \"name\": \"counteruse*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"counteruse*{${1:计数器}}\"\n      }\n    },\n    {\n      \"name\": \"counteruse*\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"counteruse*[${2:编号}](${4:分隔符}){${1:计数器}}[${3:父计数器}]\"\n      }\n    },\n    {\n      \"name\": \"counterwithin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithin[${3:⟨格式⟩}]{${1:⟨计数器⟩}}{${2:⟨父计数器⟩}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithin*[${3:⟨格式⟩}]{${1:⟨计数器⟩}}{${2:⟨父计数器⟩}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithout[${3:⟨格式⟩}]{${1:⟨计数器⟩}}{${2:⟨父计数器⟩}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithout*[${3:⟨格式⟩}]{${1:⟨计数器⟩}}{${2:⟨父计数器⟩}}\"\n      }\n    },\n    {\n      \"name\": \"symb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symb{${1:⟨符号⟩}}\"\n      }\n    },\n    {\n      \"name\": \"symb\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"symb{${1:⟨符号⟩}}[${2:⟨引导符⟩}]\"\n      }\n    },\n    {\n      \"name\": \"symb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symb*{${1:⟨符号⟩}}\"\n      }\n    },\n    {\n      \"name\": \"symb*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"symb*{${1:⟨符号⟩}}[${2:⟨引导符⟩}]\"\n      }\n    },\n    {\n      \"name\": \"seteqcomplist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seteqcomplist{${1:键值列表 2}}\"\n      }\n    },\n    {\n      \"name\": \"seteqcomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seteqcomp{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{eqcomp},\\\\seteqcomp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"LoadPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LoadPackage[${2:options}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"listlstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspread\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspread{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"bicontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sp[${2:keyvals}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sp[${2:keyvals}][${3:height,depth}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sp{${1:content}}[${2:keyvals%plain}]\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sb[${2:keyvals}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sb[${2:keyvals}][${3:height,depth}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sb{${1:content}}[${2:keyvals%plain}]\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}][${3:height,depth}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsuperscript{${1:content}}[${2:keyvals%plain}]\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}][${3:height,depth}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsubscript{${1:content}}[${2:keyvals%plain}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hangparas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:缩进长度}}{${2:缩进开始行数}}\"\n      }\n    },\n    {\n      \"name\": \"easybox\"\n    },\n    {\n      \"name\": \"easybox\",\n      \"arg\": {\n        \"format\": \"[]()[]\",\n        \"snippet\": \"[${1:颜色名}](${3:段落标题})[${2:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"easybox\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"easybox\",\n      \"arg\": {\n        \"format\": \"*[]()[]\",\n        \"snippet\": \"*[${1:颜色名}](${3:段落标题})[${2:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"ebparbox\"\n    },\n    {\n      \"name\": \"ebparbox\",\n      \"arg\": {\n        \"format\": \"[]()[]\",\n        \"snippet\": \"[${1:颜色名}](${3:段落标题})[${2:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"ebparbox\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ebparbox\",\n      \"arg\": {\n        \"format\": \"*[]()[]\",\n        \"snippet\": \"*[${1:颜色名}](${3:段落标题})[${2:配置选项}]\"\n      }\n    },\n    {\n      \"name\": \"eqcomp\"\n    },\n    {\n      \"name\": \"eqcomp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{eqcomp},\\\\seteqcomp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/easybase#c\": [\n      \"draft\",\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"floatpage\",\n      \"theorem\",\n      \"class=${1|book,article|}\",\n      \"book\",\n      \"article\",\n      \"GBK\",\n      \"UTF8\",\n      \"zhmap=${1|true,false,zhmCJK|}\",\n      \"zihao=${1|-4,5,false|}\",\n      \"heading\",\n      \"sub3section\",\n      \"sub4section\",\n      \"scheme=${1|chinese,plain|}\",\n      \"linespread=${1:number}\",\n      \"fontset=${1|adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none|}\",\n      \"punct=${1|quanjiao,banjiao,kaiming,CCT,plain|}\",\n      \"space=${1|true,false,auto|}\",\n      \"autoindent=\"\n    ],\n    \"\\\\frontmatter#c,\\\\frontmatter*#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ],\n    \"\\\\cleardoublepage#c,\\\\blankpagestyle#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\"\n    ],\n    \"\\\\tableofcontents#c,\\\\tableofcontents*#c,\\\\listoffigures#c,\\\\listoffigures*#c,\\\\listoftables#c,\\\\listoftables*#c,\\\\listoflstlistings#c,\\\\listoflstlistings*#c\": [\n      \"plan=${1|cn,bi,both|}\",\n      \"bicontentsname=${1:英文目录标题}\",\n      \"level=${1:标题命令}\",\n      \"multoc=${1:整数}\",\n      \"title={${1:中文目录标题,英文目录标题}}\",\n      \"bilist=${1|mix,new|}\",\n      \"format=${1:目录标题格式}\",\n      \"aftertitle=${1:标题后代码}\",\n      \"pagestyle=${1:页面风格}\"\n    ],\n    \"\\\\ctexset\": [\n      \"chapter/biname={${1:英文目录前名字,英文目录后名字}}\",\n      \"chapter/binmuber=${1:英文目录数字输出命令}\",\n      \"style={${1:options}}\",\n      \"style/color=${1|none,seaside,energy,cyberpunk|}\",\n      \"style/color-every=${1:HTML 颜色代码}\",\n      \"style/multoc=${1:整数}\",\n      \"style/withpart\",\n      \"style/fntnumwith=${1|part,chapter,page|}\",\n      \"style/uppercase=${1|all,first,none,none*|}\",\n      \"style/brackets={${1:左括号,右括号}}\",\n      \"style/figurepath={${1:路径名 1}}{${2:路径名 2}}${3:...{路径名 n}}\",\n      \"style/hyphen-figure=${1:图片连字符}\",\n      \"style/hyphen-table=${1:表格连字符}\",\n      \"style/hyphen-listing=${1:代码连字符}\",\n      \"style/hyphen-equation=${1:公式连字符}\",\n      \"style/hyphen-every=${1:连字符}\",\n      \"style/spvmove=\",\n      \"style/sphmove=\",\n      \"style/sbvmove=\",\n      \"style/sbhmove=\",\n      \"style/nohmove\",\n      \"style/novmove\",\n      \"style/spcmd=${1:格式命令}\",\n      \"style/sbcmd=${1:格式命令}\",\n      \"style/spbhmove=\",\n      \"style/spbcmd={${1:上标格式,下标格式}}\",\n      \"style/vsep={${1:上标偏移,下标偏移}}\",\n      \"style/halign=${1|l,c,r|}\",\n      \"refset={${1:options}}\",\n      \"refset/linktype=${1|edge,colors,none|}\",\n      \"refset/linkcolor=${1|fresh,cutepink,navyblue,crimson|}\",\n      \"refset/linkcolor-every=${1:HTML 颜色代码}\",\n      \"refset/linktoc=${1|none,section,page,all|}\",\n      \"spread={${1:options}}\",\n      \"spread/line=${1:数值}\",\n      \"spread/table=${1:数值}\",\n      \"spread/math=${1:数值}\",\n      \"spread/caption-figure=${1:数值}\",\n      \"spread/caption-table=${1:数值}\",\n      \"spread/caption-listing=${1:数值}\",\n      \"spread/caption-every=${1:数值}\",\n      \"spread/footnote=${1:数值}\",\n      \"spread/every=${1:数值}\",\n      \"subfont={${1:options}}\",\n      \"subfont/caption-table=${1:字体命令}\",\n      \"subfont/caption-figure=${1:字体命令}\",\n      \"subfont/caption-listing=${1:字体命令}\",\n      \"subfont/caption-every=${1:字体命令}\",\n      \"subfont/footnote=${1:字体命令}\",\n      \"subfont/marginpar=${1:字体命令}\",\n      \"bibset={${1:options}}\",\n      \"bibset/backend=${1|bibtex,biblatex|}\",\n      \"bibset/bibstyle=${1:bibstyle}\",\n      \"bibset/citestyle=${1:标注风格}\",\n      \"bibset/datafile=${1:数据库列表}\",\n      \"bibset/bititle=${1:title}\",\n      \"thmset={${1:options}}\",\n      \"geoset={${1:options}}\",\n      \"geoset/headruleskip=\",\n      \"geoset/footruleskip=\",\n      \"geoset/hdivide={${1:左边距,页面文本宽度},${2:右边距}}\",\n      \"geoset/hmargin={${1:左边距,右边距}}\",\n      \"geoset/textheight=${1:页面文本高度}\",\n      \"geoset/nofoot\",\n      \"hdrset={${1:options}}\",\n      \"hdrset/chap-mark=${1:标题标记}\",\n      \"hdrset/sec-mark=${1:标题标记}\",\n      \"hdrset/subsec-mark= ${1:标题标记}\",\n      \"hdrset/chap-label={${1:距离命令}}\",\n      \"hdrset/chap-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"hdrset/sec-label={${1:距离命令}}\",\n      \"hdrset/sec-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"hdrset/subsec-label={${1:距离命令}}\",\n      \"hdrset/subsec-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"hdrset/headrule=${1:横线命令}\",\n      \"hdrset/footrule=${1:横线命令}\",\n      \"hdrset/footnoterule=${1:横线命令}\",\n      \"hdrset/headrulewd=\",\n      \"hdrset/footnoterulewd=\",\n      \"hdrset/footnotetype=${1|plain,hang,flush,bottom|}\",\n      \"hdrset/fnfirstindent=\",\n      \"hdrset/fnafterindent=\",\n      \"hdrset/fnparskip=\",\n      \"hdrset/fntext-pos=${1|normal,super|}\",\n      \"hdrset/fnmark-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"hdrset/fntext-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"hdrset/fnmarktext-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"hdrset/fnmark-vmove=\",\n      \"hdrset/fnmark-hmove=\",\n      \"hdrset/fntext-vmove=\",\n      \"hdrset/fnmarktext-form=${1:format code}\",\n      \"hdrset/fncustom-format=${1:format code}\",\n      \"hdrset/fnboth-format=${1:format code}\",\n      \"hdrset/fnpara-format=${1:格式代码}\",\n      \"hdrset/fntext-code={${1:前代码,后代码}}\",\n      \"tocset={${1:options}}\",\n      \"tocset/tocformat=${1:条目格式}\",\n      \"tocset/tocformat+=${1:条目格式}\",\n      \"tocset/tocindent=${1:刚性长度}\",\n      \"tocset/tocrule=${1:引导线命令}\",\n      \"tocset/tocafter=${1:距离命令}\",\n      \"tocset/tocbelow=${1:距离命令}\",\n      \"tocset/tocline=${1:条目定义}\",\n      \"tocset/hang\",\n      \"tocset/lolskip=\",\n      \"tocset/between=${1:代码钩子}\",\n      \"tocset/bibetween=${1:代码钩子}\",\n      \"tocset/dotalign\",\n      \"tocset/pagenumwd=\",\n      \"tocset/tocafter-every=${1:距离命令}\",\n      \"tocset/tocindent-every=${1:刚性长度}\",\n      \"tocset/tocrule-every=${1:引导线命令}\",\n      \"lstlistlistingname=${1:代码目录标题名}\",\n      \"lstlistingname=${1:代码题注标题名}\"\n    ],\n    \"\\\\ebstyle\": [\n      \"color=${1|none,seaside,energy,cyberpunk|}\",\n      \"color-every=${1:HTML 颜色代码}\",\n      \"multoc=${1:整数}\",\n      \"withpart\",\n      \"fntnumwith=${1|part,chapter,page|}\",\n      \"uppercase=${1|all,first,none,none*|}\",\n      \"brackets={${1:左括号,右括号}}\",\n      \"figurepath={${1:路径名 1}}{${2:路径名 2}}${3:...{路径名 n}}\",\n      \"hyphen-figure=${1:图片连字符}\",\n      \"hyphen-table=${1:表格连字符}\",\n      \"hyphen-listing=${1:代码连字符}\",\n      \"hyphen-equation=${1:公式连字符}\",\n      \"hyphen-every=${1:连字符}\",\n      \"spvmove=\",\n      \"sphmove=\",\n      \"sbvmove=\",\n      \"sbhmove=\",\n      \"nohmove\",\n      \"novmove\",\n      \"spcmd=${1:格式命令}\",\n      \"sbcmd=${1:格式命令}\",\n      \"spbhmove=\",\n      \"spbcmd={${1:上标格式,下标格式}}\",\n      \"vsep={${1:上标偏移,下标偏移}}\",\n      \"halign=${1|l,c,r|}\"\n    ],\n    \"\\\\ebrefset\": [\n      \"linktype=${1|edge,colors,none|}\",\n      \"linkcolor=${1|fresh,cutepink,navyblue,crimson|}\",\n      \"linkcolor-every=${1:HTML 颜色代码}\",\n      \"linktoc=${1|none,section,page,all|}\"\n    ],\n    \"\\\\ebspread\": [\n      \"line=${1:数值}\",\n      \"table=${1:数值}\",\n      \"math=${1:数值}\",\n      \"caption-figure=${1:数值}\",\n      \"caption-table=${1:数值}\",\n      \"caption-listing=${1:数值}\",\n      \"caption-every=${1:数值}\",\n      \"footnote=${1:数值}\",\n      \"every=${1:数值}\"\n    ],\n    \"\\\\ebsubfont\": [\n      \"caption-table=${1:字体命令}\",\n      \"caption-figure=${1:字体命令}\",\n      \"caption-listing=${1:字体命令}\",\n      \"caption-every=${1:字体命令}\",\n      \"footnote=${1:字体命令}\",\n      \"marginpar=${1:字体命令}\"\n    ],\n    \"\\\\ebbibset\": [\n      \"backend=${1|bibtex,biblatex|}\",\n      \"bibstyle=${1:bibstyle}\",\n      \"citestyle=${1:标注风格}\",\n      \"datafile=${1:数据库列表}\",\n      \"bititle=${1:title}\"\n    ],\n    \"\\\\ebgeoset\": [\n      \"headruleskip=\",\n      \"footruleskip=\",\n      \"hdivide={${1:左边距,页面文本宽度},${2:右边距}}\",\n      \"hmargin={${1:左边距,右边距}}\",\n      \"textheight=${1:页面文本高度}\",\n      \"nofoot\"\n    ],\n    \"\\\\ebhdrset\": [\n      \"chap-mark=${1:标题标记}\",\n      \"sec-mark=${1:标题标记}\",\n      \"subsec-mark= ${1:标题标记}\",\n      \"chap-label={${1:距离命令}}\",\n      \"chap-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"sec-label={${1:距离命令}}\",\n      \"sec-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"subsec-label={${1:距离命令}}\",\n      \"subsec-label=[${1:数字输出命令}]{${2:距离命令}}\",\n      \"headrule=${1:横线命令}\",\n      \"footrule=${1:横线命令}\",\n      \"footnoterule=${1:横线命令}\",\n      \"headrulewd=\",\n      \"footnoterulewd=\",\n      \"footnotetype=${1|plain,hang,flush,bottom|}\",\n      \"fnfirstindent=\",\n      \"fnafterindent=\",\n      \"fnparskip=\",\n      \"fntext-pos=${1|normal,super|}\",\n      \"fnmark-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"fntext-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"fnmarktext-num=${1|plain,pifont,pifont*,pisans,pisans*,short num|}\",\n      \"fnmark-vmove=\",\n      \"fnmark-hmove=\",\n      \"fntext-vmove=\",\n      \"fnmarktext-format=${1:format code}\",\n      \"fncustom-format=${1:format code}\",\n      \"fnboth-format=${1:format code}\",\n      \"fnpara-format=${1:格式代码}\",\n      \"fntext-code={${1:前代码,后代码}}\"\n    ],\n    \"\\\\ebtocset\": [\n      \"tocformat=${1:条目格式}\",\n      \"tocformat+=${1:条目格式}\",\n      \"tocindent=${1:刚性长度}\",\n      \"tocrule=${1:引导线命令}\",\n      \"tocafter=${1:距离命令}\",\n      \"tocbelow=${1:距离命令}\",\n      \"tocline=${1:条目定义}\",\n      \"hang\",\n      \"lolskip=\",\n      \"between=${1:代码钩子}\",\n      \"bibetween=${1:代码钩子}\",\n      \"dotalign\",\n      \"pagenumwd=\",\n      \"tocafter-every=${1:距离命令}\",\n      \"tocindent-every=${1:刚性长度}\",\n      \"tocrule-every=${1:引导线命令}\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\newtcbtheorem,\\\\renewtcbtheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"%easybooktcbstyle\",\n      \"tc-easybox\",\n      \"tc-ebparbox\",\n      \"tc-ebemph\",\n      \"tc-ebfbox\"\n    ],\n    \"\\\\begin{eqcomp},\\\\seteqcomp\": [\n      \"width=\",\n      \"delim=${1:引导符}\",\n      \"space=\",\n      \"item-align=${1|l,c,r|}\",\n      \"delim-align=${1|l,c,r|}\",\n      \"enumitem=${1:键值列表 2}\",\n      \"intro=${1:首行文字}\",\n      \"font=${1:符号字体}\",\n      \"mode=${1|math,text|}\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easybase#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/easyfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figure{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Figure[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\Figure,\\\\Figure*,\\\\easyfigdefault,\\\\easyfigdefault*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Figure*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figure*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Figure*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Figure*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\Figure,\\\\Figure*,\\\\easyfigdefault,\\\\easyfigdefault*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"easyfigdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"easyfigdefault{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Figure,\\\\Figure*,\\\\easyfigdefault,\\\\easyfigdefault*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"easyfigdefault*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"easyfigdefault*{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Figure,\\\\Figure*,\\\\easyfigdefault,\\\\easyfigdefault*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Figure,\\\\Figure*,\\\\easyfigdefault,\\\\easyfigdefault*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"color=\",\n      \"color*=${1:color cmd}\",\n      \"sep=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\",\n      \"placement=${1:placement chars}\",\n      \"here\",\n      \"twocolumn\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/easyfloats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"graphbox\",\n      \"if\": \"graphbox\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includegraphicobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicobject{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicobject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicobject[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicobject#c,\\\\includegraphicsubobject#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicsubobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicsubobject{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsubobject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicsubobject[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicobject#c,\\\\includegraphicsubobject#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"objectset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objectset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"objectset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"objectset[${2:style names}]{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"graphicobjectstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicobjectstyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"NewObjectStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewObjectStyle{${1:style name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"NewObjectStyleGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewObjectStyleGroup{${1:group}}{${2:style names}}\"\n      }\n    },\n    {\n      \"name\": \"AddObjectStyleToGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddObjectStyleToGroup{${1:group}}{${2:style name}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginObject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginObject{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginSubobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubobject{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginGraphicObject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginGraphicObject{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ShowObjectStylesInGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowObjectStylesInGroup{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"ShowObjectStyleOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowObjectStyleOptions{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"AppendGraphicobjectOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AppendGraphicobjectOption{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AppendOptionToObjectStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AppendOptionToObjectStyle{${1:style name}}{${2:option}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"AppendOptionToObjectStyleGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AppendOptionToObjectStyleGroup{${1:group}}{${2:option}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"AppendOptionToObjectStyleGroups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AppendOptionToObjectStyleGroups{${1:groups}}{${2:option}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"AppendToOptionsList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AppendToOptionsList{${1:macro}}{${2:option}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckGraphicobjectOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckGraphicobjectOption{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckObjectEnvArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckObjectEnvArgs{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckObjectGraphicOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckObjectGraphicOption{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckObjectOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckObjectOption{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"DeprecateStandardFloatObject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeprecateStandardFloatObject{${1:envname}}{${2:alt object envname}}\"\n      }\n    },\n    {\n      \"name\": \"GobbleLeadingSpaceIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GobbleLeadingSpaceIn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndsOn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfEndsOn{${1:char}}{${2:text}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndsOnPlus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEndsOnPlus{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndsOnSpacePlus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEndsOnSpacePlus{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEnvironmentExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEnvironmentExists{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEnvironmentExistsOrIsEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEnvironmentExistsOrIsEmpty{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfObjectStyleExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfObjectStyleExists{${1:style name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfObjectStyleNotGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfObjectStyleNotGroup{${1:style name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectAppendEnvargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ObjectAppendEnvargs{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectDefineEnvargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObjectDefineEnvargs{${1:envname}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectDefineEnvargsAuto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ObjectDefineEnvargsAuto{${1:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectDefineEnvargsCheckName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObjectDefineEnvargsCheckName{${1:envname}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectProcessArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ObjectProcessArgs{${1:option}}{${2:value}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectProcessGraphicOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ObjectProcessGraphicOption{${1:option}}{${2:value}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"ObjectProcessKeyPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ObjectProcessKeyPattern{${1:option}}{${2:value}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"PatchUnderscore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PatchUnderscore{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"StripGraphicSpace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StripGraphicSpace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"strippath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strippath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"StripPlus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StripPlus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"StripSpacePlus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StripSpacePlus{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"object\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\begin{subobject}#c,\\\\includegraphicobject#c,\\\\includegraphicsubobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\",\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\includegraphicobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figureobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\begin{subobject}#c,\\\\includegraphicobject#c,\\\\includegraphicsubobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\",\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\includegraphicobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\begin{subobject}#c,\\\\includegraphicobject#c,\\\\includegraphicsubobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\",\n          \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\includegraphicobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{subobject}#c,\\\\includegraphicsubobject#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/easyfloats#c\": [\n      \"graphicx\",\n      \"graphbox\",\n      \"nographic\",\n      \"longtable\",\n      \"nolongtable\",\n      \"booktabs\",\n      \"nobooktabs\",\n      \"array\",\n      \"noarray\",\n      \"allowstandardfloats\"\n    ],\n    \"\\\\includegraphicobject#c,\\\\includegraphicsubobject#c\": [\n      \"hide\",\n      \"align=${1|b,c,l,m,t,u|}\",\n      \"vsmash=${1|b,c,l,m,n,t,u|}\",\n      \"hsmash=${1|c,l,n,r|}\",\n      \"smash=${1:vpos}${2:hpos}\",\n      \"vshift=\",\n      \"hshift=\",\n      \"tmargin=\",\n      \"bmargin=\",\n      \"vmargin=\",\n      \"lmargin=\",\n      \"rmargin=\",\n      \"hmargin=\",\n      \"margin=\",\n      \"auto caption\",\n      \"auto caption strip path\",\n      \"auto label\",\n      \"auto label strip path\",\n      \"warn env\",\n      \"no env\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\begin{subobject}#c,\\\\includegraphicobject#c,\\\\includegraphicsubobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\": [\n      \"graphic hide\",\n      \"graphic align=${1|b,c,l,m,t,u|}\",\n      \"graphic vsmash=${1|b,c,l,m,n,t,u|}\",\n      \"graphic hsmash=${1|c,l,n,r|}\",\n      \"graphic smash=${1:vpos}${2:hpos}\",\n      \"graphic vshift=\",\n      \"graphic hshift=\",\n      \"graphic tmargin=\",\n      \"graphic bmargin=\",\n      \"graphic vmargin=\",\n      \"graphic lmargin=\",\n      \"graphic rmargin=\",\n      \"graphic hmargin=\",\n      \"graphic margin=\",\n      \"type=${1:type}\",\n      \"float style=${1|plain,plaintop,ruled,boxed|}\",\n      \"caption=${1:text}\",\n      \"list caption=${1:text}\",\n      \"details=${1:text}\",\n      \"details sep=${1:code}\",\n      \"label=\",\n      \"add label=\",\n      \"placement=${1:placement}\",\n      \"align=${1:code}\",\n      \"exec=${1:code}\",\n      \"exec +=${1:code}\",\n      \"graphic alt={${1:alt text}}\",\n      \"graphic bb=${1:llx lly urx ury}\",\n      \"graphic bbllx=\",\n      \"graphic bblly=\",\n      \"graphic bburx=\",\n      \"graphic bbury=\",\n      \"graphic natwidth=\",\n      \"graphic natheight=\",\n      \"graphic hiresbb\",\n      \"graphic pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"graphic viewport=${1:llx lly urx ury}\",\n      \"graphic trim=${1:llx lly urx ury}\",\n      \"graphic angle=${1:degrees}\",\n      \"graphic origin=\",\n      \"graphic width=\",\n      \"graphic height=\",\n      \"graphic totalheight=\",\n      \"graphic keepaspectratio\",\n      \"graphic scale=${1:factor}\",\n      \"graphic clip\",\n      \"graphic draft\",\n      \"graphic type=${1:file type}\",\n      \"graphic ext=${1:file extension}\",\n      \"graphic read=${1:read-file extension}\",\n      \"graphic command=\",\n      \"graphic quiet\",\n      \"graphic page=${1:page number}\",\n      \"graphic interpolate\",\n      \"graphic decodearray={${1:color array}}\",\n      \"env=${1:envname}\",\n      \"${1:env} arg=${2:value}\",\n      \"${1:env} args=${2:value}\",\n      \"arg=${1:value}\",\n      \"args=${1:value}\",\n      \"${1:env} arg +=${2:value}\",\n      \"${1:env} args +=${2:value}\",\n      \"arg +=${1:value}\",\n      \"args +=${1:value}\",\n      \"show env args\",\n      \"warn no caption\",\n      \"warn no label\",\n      \"warn other env\",\n      \"subcaptionbox\",\n      \"subcaptionbox inner pos=${1|c,l,r,s|}\",\n      \"subpage\",\n      \"subpage outer pos=${1|c,t,b,T,B,auto,Auto|}\",\n      \"subpage height=\",\n      \"subpage inner pos=${1|c,t,b,s|}\",\n      \"subpage align=${1:code}\"\n    ],\n    \"\\\\begin{object}#c,\\\\begin{figureobject}#c,\\\\begin{tableobject}#c,\\\\includegraphicobject#c,\\\\objectset#c,\\\\NewObjectStyle#c\": [\n      \"first head=${1:code}\",\n      \"last foot=${1:code}\",\n      \"head=${1:code}\",\n      \"foot=${1:code}\",\n      \"table head=${1:code}\",\n      \"table break text=${1:text}\",\n      \"table head style=${1:code}\",\n      \"contains subobjects\",\n      \"subobject linewidth\",\n      \"subobject sep=${1:code}\",\n      \"subobject hor=${1:code}\",\n      \"subobject hor sep=${1:code}\",\n      \"subobject hor sep +=${1:code}\",\n      \"subobject ver=${1:code}\",\n      \"subobject ver sep=${1:code}\",\n      \"subobject ver sep +=${1:code}\",\n      \"subobject exec=${1:code}\",\n      \"subobject exec +=${1:code}\",\n      \"subobject env=${1:envname}\",\n      \"subobject warn no caption\",\n      \"subobject warn no label\"\n    ],\n    \"\\\\begin{subobject}#c,\\\\includegraphicsubobject#c\": [\n      \"linewidth=\",\n      \"sep=${1:code}\",\n      \"hor=${1:code}\",\n      \"hor sep=${1:code}\",\n      \"hor sep +=${1:code}\",\n      \"ver=${1:code}\",\n      \"ver sep=${1:code}\",\n      \"ver sep +=${1:code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easyfloats#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/easyformat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cir\"\n    },\n    {\n      \"name\": \"enableeasyformat\"\n    },\n    {\n      \"name\": \"disableeasyformat\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/easylist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ListProperties\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ListProperties(${1:options%keyvals})\"\n      }\n    },\n    {\n      \"name\": \"NewList\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"NewList(${1:options%keyvals})\"\n      }\n    },\n    {\n      \"name\": \"ifPilcrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pilcrowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pilcrowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Attrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sharptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sharpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAmpersand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ampersandtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ampersandfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDubiousFigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DubiousFiguretrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DubiousFigurefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"easylist\"\n    },\n    {\n      \"name\": \"easylist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{easylist}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"easylist\",\n      \"if\": \"ampersand\"\n    },\n    {\n      \"name\": \"easylist\",\n      \"if\": \"ampersand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{easylist}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/easylist#c\": [\n      \"pilcrow\",\n      \"at\",\n      \"sharp\",\n      \"ampersand\",\n      \"${1:number of counters}\"\n    ],\n    \"\\\\begin{easylist}#c\": [\n      \"tractatus\",\n      \"checklist\",\n      \"booktoc\",\n      \"articletoc\",\n      \"enumerate\",\n      \"itemize\"\n    ],\n    \"\\\\ListProperties#c,\\\\NewList#c\": [\n      \"Start${1:n}=${2:number}\",\n      \"Start${1:n}*=${2:counter}\",\n      \"Mark=${1:punctuation}\",\n      \"Mark${1:n}=${2:punctuation}\",\n      \"FinalMark=${1:punctuation}\",\n      \"FinalMark${1:n}=${2:punctuation}\",\n      \"Numbers=${1|r,R,l,L,z,a|}\",\n      \"Numbers${1:n}=${2|r,R,l,L,z,a|}\",\n      \"Hide=${1:number}\",\n      \"Hide${1:n}=${2:number}\",\n      \"Style=${1:format}\",\n      \"Style${1:n}=${2:format}\",\n      \"Style*=${1:format}\",\n      \"Style${1:n}*=${2:format}\",\n      \"Style**=${1:format}\",\n      \"Style${1:n}**=${2:format}\",\n      \"CtrCom=${1:command}\",\n      \"CtrCom${1:n}=${2:command}\",\n      \"Hang\",\n      \"Hang${1:n}\",\n      \"Align=${1:move, fixed, or <dimen>}\",\n      \"Align${1:n}=${2:move, fixed, or <dimen>}\",\n      \"Margin=\",\n      \"Margin${1:n}=\",\n      \"Progressive=\",\n      \"Progressive${1:n}=\",\n      \"Space=\",\n      \"Space${1:n}=\",\n      \"Space*=\",\n      \"Space${1:n}*=\",\n      \"Indent=\",\n      \"Indent${1:n}=\",\n      \"FinalSpace=\",\n      \"FinalSpace${1:n}=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easylist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/easyvector.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newvector\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newvector[${2:scalar macro,vector macro%definition}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newvector\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"newvector(${2:letter})[${1:text%plain}]\"\n      }\n    },\n    {\n      \"name\": \"newvectora\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newvectora{${1:macro}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newcustomvector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newcustomvector[${3:scalar macro,vector macro%definition}]{${1:text%plain}}{${2:index macro%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AA\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"AA\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AA[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BB\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BB\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BB[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"CC\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"CC\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CC[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"DD\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"DD\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DD[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"EE\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"EE\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EE[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"FF\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"FF\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FF[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"GG\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"GG\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GG[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"HH\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"HH\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"HH[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"II\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"II\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"II[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"JJ\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"JJ\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"JJ[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"KK\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"KK\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"KK[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"LL\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"LL\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LL[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"MM\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"MM\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MM[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"NN\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"NN\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NN[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"OO\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"OO\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OO[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"PP\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"PP\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PP[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"QQ\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"QQ\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"QQ[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"RR\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"RR\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RR[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"SS\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"SS\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SS[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"TT\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"TT\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TT[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"UU\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"UU\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"UU[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"VV\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"VV\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VV[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"WW\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"WW\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WW[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"XX\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"XX\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"XX[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"YY\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"YY\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"YY[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ZZ\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ZZ\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZZ[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"aa\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"aa\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aa[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"bb\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"bb\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bb[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"cc\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cc[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"dd\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dd[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ee\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ee\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ee[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ff\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ff\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ff[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"gg\",\n      \"if\": \"definevectors\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"gg\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gg[${1:indices}]\"\n      },\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"hh\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"hh\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hh[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ii\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ii\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ii[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"jj\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"jj\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jj[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"kk\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"kk\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kk[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"if\": \"definevectors\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"ll\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ll[${1:indices}]\"\n      },\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mm[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"nn\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"nn\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nn[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"oo\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"oo\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oo[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"pp\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"pp\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pp[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"qq\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"qq\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qq[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"rr\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"rr\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rr[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ss\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ss\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ss[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"tt\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"tt\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tt[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"uu\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"uu\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uu[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"vv\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"vv\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vv[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"ww\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"ww\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ww[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"xx\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"xx\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xx[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"yy\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"yy\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yy[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"zz\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"zz\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zz[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Balpha\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Balpha\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Balpha[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bbeta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bbeta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bbeta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bgamma\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bgamma\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bgamma[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bdelta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bdelta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bdelta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bepsilon\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bepsilon\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bepsilon[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bzeta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bzeta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bzeta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Beta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Btheta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Btheta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Btheta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Biota\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Biota\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Biota[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bkappa\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bkappa\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bkappa[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Blambda\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Blambda\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Blambda[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bmu\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bmu\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bmu[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bnu\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bnu\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bnu[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bxi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bxi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bxi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bpi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bpi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bpi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Brho\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Brho\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Brho[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bsigma\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bsigma\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bsigma[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Btau\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Btau\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Btau[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bupsilon\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bupsilon\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bupsilon[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bphi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bphi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bphi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bchi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bchi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bchi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bpsi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bpsi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bpsi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bomega\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bomega\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bomega[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvarepsilon\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvarepsilon\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvarepsilon[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvartheta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvartheta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvartheta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvarpi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvarpi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvarpi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvarrho\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvarrho\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvarrho[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvarsigma\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvarsigma\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvarsigma[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"Bvarphi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"Bvarphi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bvarphi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BGamma\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BGamma\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BGamma[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BDelta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BDelta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BDelta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BTheta\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BTheta\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BTheta[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BLambda\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BLambda\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BLambda[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BXi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BXi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BXi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BPi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BPi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BPi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BSigma\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BSigma\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BSigma[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BUpsilon\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BUpsilon\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BUpsilon[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BPhi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BPhi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BPhi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BPsi\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BPsi\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BPsi[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"BOmega\",\n      \"if\": \"definevectors\"\n    },\n    {\n      \"name\": \"BOmega\",\n      \"if\": \"definevectors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BOmega[${1:indices}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/easyvector#c\": [\n      \"boldcm\",\n      \"boldcc\",\n      \"definevectors\",\n      \"spacesep\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/easyvector#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ebgaramond.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ebgaramond\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textsw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"initials\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:letter%keyvals}}\",\n        \"keys\": [\n          \"\\\\textin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebgaramondlgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ebgaramond#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"medium\",\n      \"m\",\n      \"semibold\",\n      \"sb\",\n      \"extrabold\",\n      \"eb\"\n    ],\n    \"\\\\textin\": [\n      \"A\",\n      \"D\",\n      \"F\",\n      \"G\",\n      \"L\",\n      \"N\",\n      \"O\",\n      \"Q\",\n      \"T\",\n      \"X\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ebgaramond#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ebook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"moreverb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pagefill\"\n    },\n    {\n      \"name\": \"pagefill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pagefill[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"ebook\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ebproof.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hypo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypo{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hypo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hypo[${2:options%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ellipsis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellipsis{${1:label}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rewrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rewrite{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"treebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"treemark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"delims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"delims{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"overlay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebproofset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebproofset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\ebproofnewstyle#c\",\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ebproofnewstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ebproofnewstyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\ebproofnewstyle#c\",\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"inserttext\"\n    },\n    {\n      \"name\": \"ebproofnewrulestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ebproofnewrulestyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ebproofnewrulestyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"prooftree\"\n    },\n    {\n      \"name\": \"prooftree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\ebproofnewstyle#c\",\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prooftree*\"\n    },\n    {\n      \"name\": \"prooftree*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ebproofset#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\ebproofnewstyle#c\",\n          \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\ebproofset#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\ebproofnewstyle#c\": [\n      \"proof style=${1|upwards,downwards|}\",\n      \"center\"\n    ],\n    \"\\\\ebproofset#c,\\\\set#c,\\\\begin{prooftree}#c,\\\\begin{prooftree*}#c,\\\\hypo#c,\\\\infer#c,\\\\ebproofnewstyle#c\": [\n      \"separation=\",\n      \"rule margin=\",\n      \"rule style=\",\n      \"rule thickness=\",\n      \"rule separation=\",\n      \"rule dash length=\",\n      \"rule dash space=\",\n      \"rule code=${1:code}\",\n      \"template=${1:code}\",\n      \"left template=${1:code}\",\n      \"right template=${1:code}\",\n      \"left label=\",\n      \"right label=\",\n      \"left label template=${1:code}\",\n      \"right label template=${1:code}\",\n      \"label separation=\"\n    ],\n    \"\\\\infer#c\": [\n      \"simple\",\n      \"no rule\",\n      \"double\",\n      \"dashed\"\n    ],\n    \"\\\\ebproofnewrulestyle#c\": [\n      \"rule margin=\",\n      \"rule style=\",\n      \"rule thickness=\",\n      \"rule separation=\",\n      \"rule dash length=\",\n      \"rule dash space=\",\n      \"rule code=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eco.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newstylenums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/econlipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"econ\"\n    },\n    {\n      \"name\": \"econ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"econ[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"econ\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"econ[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"econ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"econ[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"econ\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"econ[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"econ*\"\n    },\n    {\n      \"name\": \"econ*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"econ*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"econ*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"econ*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"econ*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"econ*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"econ*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"econ*[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"econdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"econdef{${1:cmd}}{${2:num}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/econlipsum#c\": [\n      \"par\",\n      \"nopar\",\n      \"numbers\",\n      \"index\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/econlipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/econometrics.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newoperator\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newoperator{${1:cmd}}{${2:text%plain}}{${3:after code}}\"\n      }\n    },\n    {\n      \"name\": \"renewoperator\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewoperator{${1:cmd}}{${2:text%plain}}{${3:after code}}\"\n      }\n    },\n    {\n      \"name\": \"SC\"\n    },\n    {\n      \"name\": \"SN\"\n    },\n    {\n      \"name\": \"SQ\"\n    },\n    {\n      \"name\": \"SR\"\n    },\n    {\n      \"name\": \"SZ\"\n    },\n    {\n      \"name\": \"calA\"\n    },\n    {\n      \"name\": \"calB\"\n    },\n    {\n      \"name\": \"calC\"\n    },\n    {\n      \"name\": \"calD\"\n    },\n    {\n      \"name\": \"calE\"\n    },\n    {\n      \"name\": \"calF\"\n    },\n    {\n      \"name\": \"calG\"\n    },\n    {\n      \"name\": \"calH\"\n    },\n    {\n      \"name\": \"calI\"\n    },\n    {\n      \"name\": \"calJ\"\n    },\n    {\n      \"name\": \"calK\"\n    },\n    {\n      \"name\": \"calL\"\n    },\n    {\n      \"name\": \"calM\"\n    },\n    {\n      \"name\": \"calN\"\n    },\n    {\n      \"name\": \"calO\"\n    },\n    {\n      \"name\": \"calP\"\n    },\n    {\n      \"name\": \"calQ\"\n    },\n    {\n      \"name\": \"calR\"\n    },\n    {\n      \"name\": \"calS\"\n    },\n    {\n      \"name\": \"calT\"\n    },\n    {\n      \"name\": \"calU\"\n    },\n    {\n      \"name\": \"calV\"\n    },\n    {\n      \"name\": \"calW\"\n    },\n    {\n      \"name\": \"calX\"\n    },\n    {\n      \"name\": \"calY\"\n    },\n    {\n      \"name\": \"calZ\"\n    },\n    {\n      \"name\": \"mA\"\n    },\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"mB\"\n    },\n    {\n      \"name\": \"vb\"\n    },\n    {\n      \"name\": \"mC\"\n    },\n    {\n      \"name\": \"vc\"\n    },\n    {\n      \"name\": \"mD\"\n    },\n    {\n      \"name\": \"vd\"\n    },\n    {\n      \"name\": \"mE\"\n    },\n    {\n      \"name\": \"ve\"\n    },\n    {\n      \"name\": \"mF\"\n    },\n    {\n      \"name\": \"vf\"\n    },\n    {\n      \"name\": \"mG\"\n    },\n    {\n      \"name\": \"vg\"\n    },\n    {\n      \"name\": \"mH\"\n    },\n    {\n      \"name\": \"vh\"\n    },\n    {\n      \"name\": \"mI\"\n    },\n    {\n      \"name\": \"vi\"\n    },\n    {\n      \"name\": \"mJ\"\n    },\n    {\n      \"name\": \"vj\"\n    },\n    {\n      \"name\": \"mK\"\n    },\n    {\n      \"name\": \"vk\"\n    },\n    {\n      \"name\": \"mL\"\n    },\n    {\n      \"name\": \"vl\"\n    },\n    {\n      \"name\": \"mM\"\n    },\n    {\n      \"name\": \"vm\"\n    },\n    {\n      \"name\": \"mN\"\n    },\n    {\n      \"name\": \"vn\"\n    },\n    {\n      \"name\": \"mO\"\n    },\n    {\n      \"name\": \"vo\"\n    },\n    {\n      \"name\": \"mP\"\n    },\n    {\n      \"name\": \"vp\"\n    },\n    {\n      \"name\": \"mQ\"\n    },\n    {\n      \"name\": \"vq\"\n    },\n    {\n      \"name\": \"mR\"\n    },\n    {\n      \"name\": \"vr\"\n    },\n    {\n      \"name\": \"mS\"\n    },\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"mT\"\n    },\n    {\n      \"name\": \"vt\"\n    },\n    {\n      \"name\": \"mU\"\n    },\n    {\n      \"name\": \"vu\"\n    },\n    {\n      \"name\": \"mV\"\n    },\n    {\n      \"name\": \"vv\"\n    },\n    {\n      \"name\": \"mW\"\n    },\n    {\n      \"name\": \"vw\"\n    },\n    {\n      \"name\": \"mX\"\n    },\n    {\n      \"name\": \"vx\"\n    },\n    {\n      \"name\": \"mY\"\n    },\n    {\n      \"name\": \"vy\"\n    },\n    {\n      \"name\": \"mZ\"\n    },\n    {\n      \"name\": \"vz\"\n    },\n    {\n      \"name\": \"valpha\"\n    },\n    {\n      \"name\": \"vbeta\"\n    },\n    {\n      \"name\": \"vgamma\"\n    },\n    {\n      \"name\": \"vdelta\"\n    },\n    {\n      \"name\": \"vepsi\"\n    },\n    {\n      \"name\": \"vvarepsilon\"\n    },\n    {\n      \"name\": \"vzeta\"\n    },\n    {\n      \"name\": \"veta\"\n    },\n    {\n      \"name\": \"vtheta\"\n    },\n    {\n      \"name\": \"viota\"\n    },\n    {\n      \"name\": \"vkappa\"\n    },\n    {\n      \"name\": \"vlambda\"\n    },\n    {\n      \"name\": \"vmu\"\n    },\n    {\n      \"name\": \"vnu\"\n    },\n    {\n      \"name\": \"vxi\"\n    },\n    {\n      \"name\": \"vpi\"\n    },\n    {\n      \"name\": \"vrho\"\n    },\n    {\n      \"name\": \"vsigma\"\n    },\n    {\n      \"name\": \"vtau\"\n    },\n    {\n      \"name\": \"vupsilon\"\n    },\n    {\n      \"name\": \"vphi\"\n    },\n    {\n      \"name\": \"vchi\"\n    },\n    {\n      \"name\": \"vpsi\"\n    },\n    {\n      \"name\": \"vomega\"\n    },\n    {\n      \"name\": \"mGamma\"\n    },\n    {\n      \"name\": \"mDelta\"\n    },\n    {\n      \"name\": \"mTheta\"\n    },\n    {\n      \"name\": \"mLambda\"\n    },\n    {\n      \"name\": \"mXi\"\n    },\n    {\n      \"name\": \"mPi\"\n    },\n    {\n      \"name\": \"mSigma\"\n    },\n    {\n      \"name\": \"mUpsilon\"\n    },\n    {\n      \"name\": \"mPhi\"\n    },\n    {\n      \"name\": \"mPsi\"\n    },\n    {\n      \"name\": \"mOmega\"\n    },\n    {\n      \"name\": \"rb\"\n    },\n    {\n      \"name\": \"rB\"\n    },\n    {\n      \"name\": \"rC\"\n    },\n    {\n      \"name\": \"rD\"\n    },\n    {\n      \"name\": \"rf\"\n    },\n    {\n      \"name\": \"rF\"\n    },\n    {\n      \"name\": \"rH\"\n    },\n    {\n      \"name\": \"rL\"\n    },\n    {\n      \"name\": \"rN\"\n    },\n    {\n      \"name\": \"rt\"\n    },\n    {\n      \"name\": \"rU\"\n    },\n    {\n      \"name\": \"rGam\"\n    },\n    {\n      \"name\": \"rBeta\"\n    },\n    {\n      \"name\": \"Bin\"\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"iu\"\n    },\n    {\n      \"name\": \"LN\"\n    },\n    {\n      \"name\": \"IN\"\n    },\n    {\n      \"name\": \"Poi\"\n    },\n    {\n      \"name\": \"ped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DIfF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiffSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deriv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deriv{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"deriv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"deriv[${3:order}]{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"pderiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pderiv{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"pderiv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pderiv[${3:order}]{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"bias\"\n    },\n    {\n      \"name\": \"col\"\n    },\n    {\n      \"name\": \"corr\"\n    },\n    {\n      \"name\": \"cov\"\n    },\n    {\n      \"name\": \"dg\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"etr\"\n    },\n    {\n      \"name\": \"ip\"\n    },\n    {\n      \"name\": \"kur\"\n    },\n    {\n      \"name\": \"MSE\"\n    },\n    {\n      \"name\": \"MSFE\"\n    },\n    {\n      \"name\": \"OLS\"\n    },\n    {\n      \"name\": \"plim\"\n    },\n    {\n      \"name\": \"resid\"\n    },\n    {\n      \"name\": \"rk\"\n    },\n    {\n      \"name\": \"SE\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"var\"\n    },\n    {\n      \"name\": \"vech\"\n    },\n    {\n      \"name\": \"distr\"\n    },\n    {\n      \"name\": \"adistr\"\n    },\n    {\n      \"name\": \"diff\"\n    },\n    {\n      \"name\": \"fdiff\"\n    },\n    {\n      \"name\": \"bdiff\"\n    },\n    {\n      \"name\": \"eps\"\n    },\n    {\n      \"name\": \"epsi\"\n    },\n    {\n      \"name\": \"longto\"\n    },\n    {\n      \"name\": \"pto\"\n    },\n    {\n      \"name\": \"dto\"\n    },\n    {\n      \"name\": \"wto\"\n    },\n    {\n      \"name\": \"Infmat\"\n    },\n    {\n      \"name\": \"Hesmat\"\n    },\n    {\n      \"name\": \"bcdot\"\n    },\n    {\n      \"name\": \"vones\"\n    },\n    {\n      \"name\": \"vzeros\"\n    },\n    {\n      \"name\": \"mZeros\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"mply\"\n    },\n    {\n      \"name\": \"rW\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ecrc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BottomRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CopyrightLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CopyrightLine[${3:prefix}]{${1:year}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"CopyrightLine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CopyrightLine{${1:year}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightowner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightowner{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"dochead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dochead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dummyjnllogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dummylogowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elslogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"jid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jid{${1:abbrv}}\"\n      }\n    },\n    {\n      \"name\": \"jnllogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnltitlebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnltitlelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jnltitlelogo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"journalname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"MaketitleBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reprintline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runauth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runauth{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sdlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TopRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ecrc#c\": [\n      \"procedia\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ecrc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ednote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ednote{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"ednote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ednote[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Ednote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ednote{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Ednote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ednote[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"edissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edissue{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"edissue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"edissue[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"edIssue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edIssue{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"edIssue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"edIssue[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"tweak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweak{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"tweak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tweak[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Tweak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tweak{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Tweak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tweak[${2:label}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"edstubURI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edstubURI{${1:URI}}\"\n      }\n    },\n    {\n      \"name\": \"ednoteshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowednotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showednotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showednotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theednote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ednotelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ednotelabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ednotemargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ednotemargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tweaklabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweaklabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tweakmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tweakmargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"edissuelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edissuelabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"edissuemargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edissuemargin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newpartmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpartmargins{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"oldpartlabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oldpartlabels{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"oldpartmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oldpartmargins{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"todolabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todolabels{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"todomargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todomargins{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"ifhref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hreftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hreffalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"Todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"todolist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"Todolist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"newpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"Newpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"oldpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"Oldpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"edstub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"edstub\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:desc}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"musings\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ed#c\": [\n      \"show\",\n      \"hide\",\n      \"nomargins\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ed#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/edcntwd0.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"countword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countword{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"countword\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"countword[${2:subst%text}]{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"CWClosePar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CWtextscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CWtextscript{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/edichokey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alter\"\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:taxon name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"name[${2:prefix}]{${1:taxon name}}\"\n      }\n    },\n    {\n      \"name\": \"edknamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alterindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"taxonrightskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Key\"\n    },\n    {\n      \"name\": \"Key\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:prefix}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/edichokey#c\": [\n      \"hyperref\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/edichokey#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ednmath0.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathlemmaellipsis\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NotesToMath\"\n    },\n    {\n      \"name\": \"NoNotesToMath\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ednotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"manyfoot\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"mfparptc\",\n      \"if\": \"edmacpara\"\n    },\n    {\n      \"name\": \"edcntwd0\",\n      \"if\": \"countoccurrences\"\n    },\n    {\n      \"name\": \"perpage\",\n      \"if\": \"perpage\"\n    },\n    {\n      \"name\": \"ednmath0\",\n      \"if\": \"mathnotes\"\n    },\n    {\n      \"name\": \"vplref\",\n      \"if\": \"addpageno\"\n    },\n    {\n      \"name\": \"ednmath0\",\n      \"if\": \"mathrefs\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"edtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"ltabptch\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"nolongtablepatch\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nolongtablepatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FootnotetextB\",\n      \"if\": \"Bpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextB{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsB\",\n      \"if\": \"Bpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnote\",\n      \"if\": \"Bpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Bnotelabel\",\n      \"if\": \"Bpara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextB\",\n      \"if\": \"Bplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextB{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsB\",\n      \"if\": \"Bplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnote\",\n      \"if\": \"Bplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Bnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Bnotelabel\",\n      \"if\": \"Bplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextC\",\n      \"if\": \"Cpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextC{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsC\",\n      \"if\": \"Cpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cnote\",\n      \"if\": \"Cpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cnotelabel\",\n      \"if\": \"Cpara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextC\",\n      \"if\": \"Cplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextC{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsC\",\n      \"if\": \"Cplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cnote\",\n      \"if\": \"Cplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Cnotelabel\",\n      \"if\": \"Cplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextD\",\n      \"if\": \"Dpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextD{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsD\",\n      \"if\": \"Dpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dnote\",\n      \"if\": \"Dpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dnotelabel\",\n      \"if\": \"Dpara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextD\",\n      \"if\": \"Dplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextD{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsD\",\n      \"if\": \"Dplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dnote\",\n      \"if\": \"Dplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dnote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dnotelabel\",\n      \"if\": \"Dplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dnotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextE\",\n      \"if\": \"Epara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextE{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsE\",\n      \"if\": \"Epara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Enote\",\n      \"if\": \"Epara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Enotelabel\",\n      \"if\": \"Epara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Enotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextE\",\n      \"if\": \"Eplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextE{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsE\",\n      \"if\": \"Eplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Enote\",\n      \"if\": \"Eplain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Enote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Enotelabel\",\n      \"if\": \"Eplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Enotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"FootnotetextA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FootnotetextA{${1:marker}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footinsA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Anote{${1:lemma%text}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"Anotelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anotelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"donote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"donote{${1:label}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"pause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pause{${1:label%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"pause\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"pause{${1:label}}<${2:ellipsis}>\"\n      }\n    },\n    {\n      \"name\": \"resume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resume{${1:label%keyvals}}\",\n        \"keys\": [\n          \"\\\\resume#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsymmdots\"\n    },\n    {\n      \"name\": \"lemmaellipsis\"\n    },\n    {\n      \"name\": \"notinnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notinnote{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"addlemmaexpands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlemmaexpands{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLemmaTag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLemmaTag{${1:in lemma tag%text}}{${2:in main text%text}}\"\n      }\n    },\n    {\n      \"name\": \"nopunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linesfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linesfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showlemmaexpands\"\n    },\n    {\n      \"name\": \"sameline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sameline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"differentlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"differentlines{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"pageandline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pageandline{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"repeatref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"repeatref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lemmafmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lemmafmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrecedeLevelWith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrecedeLevelWith{${1:level}}{${2:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"IfTypesetting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfTypesetting{${1:for typesetting%text}}{${2:for expanding%text}}\"\n      }\n    },\n    {\n      \"name\": \"RobustTestOpt\"\n    },\n    {\n      \"name\": \"NewEdnotesCommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewEdnotesCommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewEdnotesCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewEdnotesCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewEdnotesCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEdnotesCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewEdnotesCommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewEdnotesCommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewEdnotesCommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewEdnotesCommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewEdnotesCommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEdnotesCommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"warningpagebreak\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ednotes#c\": [\n      \"Aplain\",\n      \"Bpara\",\n      \"Bplain\",\n      \"Cpara\",\n      \"Cplain\",\n      \"Dpara\",\n      \"Dplain\",\n      \"Epara\",\n      \"Eplain\",\n      \"edmacpara\",\n      \"countoccurrences\",\n      \"para*\",\n      \"perpage\",\n      \"mathnotes\",\n      \"addpageno\",\n      \"edtable\",\n      \"longtable\",\n      \"nolongtablepatch\",\n      \"left\",\n      \"right\",\n      \"switch\",\n      \"switch*\",\n      \"columnwise\",\n      \"pagewise\",\n      \"running\",\n      \"modulo\",\n      \"modulo*\",\n      \"mathlines\"\n    ],\n    \"\\\\resume#c\": [\n      \"%pauselabel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ednotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/edtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"ltabptch\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nolongtablepatch\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"edtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:table envname}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"edtable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[$ or $$%plain]{${1:array envname}}{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eemeir.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"E*\"\n    },\n    {\n      \"name\": \"Em\"\n    },\n    {\n      \"name\": \"Em*\"\n    },\n    {\n      \"name\": \"Eir\"\n    },\n    {\n      \"name\": \"Eir*\"\n    },\n    {\n      \"name\": \"Eirs\"\n    },\n    {\n      \"name\": \"Eirs*\"\n    },\n    {\n      \"name\": \"swapgender\"\n    },\n    {\n      \"name\": \"swapgender\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"swapgender[${1:person}]\"\n      }\n    },\n    {\n      \"name\": \"newwordpair\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newwordpair{${1:command}}{${2:male%text}}{${3:female%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewwordpair\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewwordpair{${1:command}}{${2:male%text}}{${3:female%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifmale\"\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"male\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"male[${1:person}]\"\n      },\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"female\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"female[${1:person}]\"\n      },\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"askforgender\"\n    },\n    {\n      \"name\": \"askforgender\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"askforgender[${1:person}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"swapgender\"\n    },\n    {\n      \"name\": \"swapgender\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:person}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/eemeir#c\": [\n      \"male\",\n      \"female\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eemeir#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eepic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"line\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"line(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"circle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle*{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"oval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"oval(${2:width},${3:height})[${1:portion}]\"\n      }\n    },\n    {\n      \"name\": \"maxovaldiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allinethickness{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Thicklines\"\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellipse{${1:x diameter}}{${2:y diameter}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellipse*{${1:x diameter}}{${2:y diameter}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"arc{${1:diameter}}{${2:start angle}}{${3:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"filltype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filltype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\filltype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blacken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whiten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texture{${1:hex nums}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\filltype\": [\n      \"black\",\n      \"white\",\n      \"shade\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/efbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"efbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"efbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"efbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"efbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\efbox,\\\\efboxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"efboxsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"efboxsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\efbox,\\\\efboxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\efbox,\\\\efboxsetup\": [\n      \"leftline\",\n      \"rightline\",\n      \"topline\",\n      \"bottomline\",\n      \"hidealllines\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"margin=\",\n      \"font=\",\n      \"baselinestretch=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eforms.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"insdljs\"\n    },\n    {\n      \"name\": \"taborder\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifpreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewOn\"\n    },\n    {\n      \"name\": \"previewOff\"\n    },\n    {\n      \"name\": \"pmpvOn\"\n    },\n    {\n      \"name\": \"pmpvOff\"\n    },\n    {\n      \"name\": \"tops\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tops{${1:preview%text}}{${2:display%text}}\"\n      }\n    },\n    {\n      \"name\": \"pmpvMrk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpvMrk{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"pushButton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pushButton{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"pushButton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pushButton[${4:modifications}]{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"everyPushButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyPushButton{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"checkBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkBox{${1:title%text}}{${2:width}}{${3:height}}{${4:on-name}}\"\n      }\n    },\n    {\n      \"name\": \"checkBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"checkBox[${5:modifications}]{${1:title%text}}{${2:width}}{${3:height}}{${4:on-name}}\"\n      }\n    },\n    {\n      \"name\": \"everyCheckBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyCheckBox{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"radioButton\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"radioButton{${1:title%text}}{${2:width}}{${3:height}}{${4:on-name}}\"\n      }\n    },\n    {\n      \"name\": \"radioButton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"radioButton[${5:modifications}]{${1:title%text}}{${2:width}}{${3:height}}{${4:on-name}}\"\n      }\n    },\n    {\n      \"name\": \"everyRadioButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyRadioButton{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"listBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"listBox{${1:title%text}}{${2:width}}{${3:height}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"listBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"listBox[${5:modifications}]{${1:title%text}}{${2:width}}{${3:height}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"everyListBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyListBox{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"comboBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"comboBox{${1:title%text}}{${2:width}}{${3:height}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"comboBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"comboBox[${5:modifications}]{${1:title%text}}{${2:width}}{${3:height}}{${4:array}}\"\n      }\n    },\n    {\n      \"name\": \"everyComboBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyComboBox{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"textField\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"textField{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"textField\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"textField[${4:modifications}]{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"everyTextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyTextField{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"sigField\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sigField{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"sigField\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sigField[${4:modifications}]{${1:title%text}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"everySigField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everySigField{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"everyButtonField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyButtonField{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"makeXasPDOn\"\n    },\n    {\n      \"name\": \"makeXasPDOff\"\n    },\n    {\n      \"name\": \"makePDasXOn\"\n    },\n    {\n      \"name\": \"makePDasXOff\"\n    },\n    {\n      \"name\": \"olBdry\"\n    },\n    {\n      \"name\": \"cgBdry\"\n    },\n    {\n      \"name\": \"cgBdry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cgBdry[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"cgBdry*\"\n    },\n    {\n      \"name\": \"cgBdry*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cgBdry*[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"volBdry\"\n    },\n    {\n      \"name\": \"vcgBdry\"\n    },\n    {\n      \"name\": \"vcgBdry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vcgBdry[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"efKern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"efKern{${1:length1%l}}{${2:length2%l}}\"\n      }\n    },\n    {\n      \"name\": \"setLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLink{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"setLink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setLink[${2:modifications}]{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"everyLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyLink{${1:modifications}}\"\n      }\n    },\n    {\n      \"name\": \"setLinkText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLinkText{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"setLinkText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setLinkText[${2:modifications}]{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"setLinkBbox\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"setLinkBbox{${1:width}}{${2:height}}[${4:position}]{${3:link content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setLinkBbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"setLinkBbox[${4:modifications}]{${1:width}}{${2:height}}[${5:position}]{${3:link content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Page\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ui\",\n      \"if\": \"useui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ui{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ui\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FHidden\"\n    },\n    {\n      \"name\": \"FPrint\"\n    },\n    {\n      \"name\": \"FNoView\"\n    },\n    {\n      \"name\": \"FLock\"\n    },\n    {\n      \"name\": \"FNoPrint\"\n    },\n    {\n      \"name\": \"FfReadOnly\"\n    },\n    {\n      \"name\": \"FfRequired\"\n    },\n    {\n      \"name\": \"FfNoExport\"\n    },\n    {\n      \"name\": \"FfMultiline\"\n    },\n    {\n      \"name\": \"FfPassword\"\n    },\n    {\n      \"name\": \"FfNoToggleToOff\"\n    },\n    {\n      \"name\": \"FfRadio\"\n    },\n    {\n      \"name\": \"FfPushButton\"\n    },\n    {\n      \"name\": \"FfCombo\"\n    },\n    {\n      \"name\": \"FfEdit\"\n    },\n    {\n      \"name\": \"FfSort\"\n    },\n    {\n      \"name\": \"FfFileSelect\"\n    },\n    {\n      \"name\": \"FfMultiSelect\"\n    },\n    {\n      \"name\": \"FfDoNotSpellCheck\"\n    },\n    {\n      \"name\": \"FfDoNotScroll\"\n    },\n    {\n      \"name\": \"FfComb\"\n    },\n    {\n      \"name\": \"FfRadiosInUnison\"\n    },\n    {\n      \"name\": \"FfCommitOnSelChange\"\n    },\n    {\n      \"name\": \"FfRichText\"\n    },\n    {\n      \"name\": \"textFontDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textFontDefault{${1:font spec}}\"\n      }\n    },\n    {\n      \"name\": \"textSizeDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSizeDefault{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ff{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"F\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"F{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TU{${1:tooltip text}}\"\n      }\n    },\n    {\n      \"name\": \"W\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"W{0|1}\"\n      }\n    },\n    {\n      \"name\": \"S\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"S{${1:S|${2:D}|${3:B}|${4:I}|U}}\"\n      }\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"BC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BC{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"BG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BG{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"mkIns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkIns{${1:MK keyval}}\"\n      }\n    },\n    {\n      \"name\": \"textFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textFont{${1:font spec}}\"\n      }\n    },\n    {\n      \"name\": \"textSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"textColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"DV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DV{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"V{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"A{${1:actions}}\"\n      }\n    },\n    {\n      \"name\": \"AA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AA{${1:actions}}\"\n      }\n    },\n    {\n      \"name\": \"Color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Color{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"Border\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Border{${1:num1 num2 num3}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:num1 num2}}\"\n      }\n    },\n    {\n      \"name\": \"AP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AP{${1:appearance dictionary}}\"\n      }\n    },\n    {\n      \"name\": \"AS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AS{${1:appearance state}}\"\n      }\n    },\n    {\n      \"name\": \"MK\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MK{${1:dictionary}}\"\n      }\n    },\n    {\n      \"name\": \"CA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"I\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"I{${1:XObject}}\"\n      }\n    },\n    {\n      \"name\": \"RI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RI{${1:XObject}}\"\n      }\n    },\n    {\n      \"name\": \"IX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IX{${1:XObject}}\"\n      }\n    },\n    {\n      \"name\": \"importIcons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importIcons{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"TP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TP{0|${1:1}|${2:2}|${3:3}|${4:4}|${5:5}|6}\"\n      }\n    },\n    {\n      \"name\": \"SW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SW{${1:A|${2:B}|${3:S}|N}}\"\n      }\n    },\n    {\n      \"name\": \"ST\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ST{${1:A|P}}\"\n      }\n    },\n    {\n      \"name\": \"PA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PA{${1:num1 num2}}\"\n      }\n    },\n    {\n      \"name\": \"FB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FB{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"Q\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Q{0|${1:1}|2}\"\n      }\n    },\n    {\n      \"name\": \"DA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DA{${1:default appearance}}\"\n      }\n    },\n    {\n      \"name\": \"MaxLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaxLen{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Lock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lock{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"rectW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectW{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rectH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectH{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"width\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"width{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"height\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"height{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"scalefactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scalefactor{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"rawPDF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rawPDF{${1:PDF-KVPs}}\"\n      }\n    },\n    {\n      \"name\": \"autoCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoCenter{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"inline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inline{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"presets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presets{${1:\\\\cmd}}\"\n      }\n    },\n    {\n      \"name\": \"symbolchoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolchoice{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\symbolchoice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd-args}}\"\n      }\n    },\n    {\n      \"name\": \"linktxtcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linktxtcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"defaultlinkcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlstrut{${1:strut}}\"\n      }\n    },\n    {\n      \"name\": \"mlcrackat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlcrackat{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mlhyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlhyph{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"mlfix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlfix{${1:y|n}}\"\n      }\n    },\n    {\n      \"name\": \"mlignore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlignore{0|1}\"\n      }\n    },\n    {\n      \"name\": \"mlcrackinsat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlcrackinsat{${1:LaTeX content}}\"\n      }\n    },\n    {\n      \"name\": \"AAMouseUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAMouseUp{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAMouseDown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAMouseDown{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAMouseEnter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAMouseEnter{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAMouseExit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAMouseExit{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAOnFocus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAOnFocus{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAOnBlur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAOnBlur{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAFormat{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAKeystroke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAKeystroke{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAValidate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAValidate{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AACalculate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AACalculate{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAPageOpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAPageOpen{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAPageClose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAPageClose{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAPageVisible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAPageVisible{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"AAPageInvisible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAPageInvisible{${1:JS code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"definePath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definePath{${1:cmd}}{${2:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eforms#c\": [\n      \"dvipsone\",\n      \"dvips\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"textures\",\n      \"preview\",\n      \"useui\",\n      \"setcorder\",\n      \"nodljs\",\n      \"debug\",\n      \"execJS\",\n      \"nopro\",\n      \"reqjs\",\n      \"!reqjs\",\n      \"usealtadobe\"\n    ],\n    \"\\\\ui\": [\n      \"border=${1|visible,invisible|}\",\n      \"linewidth=${1|thin,medium,thick|}\",\n      \"highlight=${1|none,invert,outline,inset,push|}\",\n      \"bordercolor={${1:R G B}}\",\n      \"linestyle=${1|solid,dashed,underlined,beveled,inset|}\",\n      \"dasharray=${1:number}\",\n      \"linktxtcolor=\",\n      \"annotflags=${1|hidden,print,-print,noview,lock|}\",\n      \"fieldflags=${1|readonly,required,noexport,multiline,password,notoggleoff,radio,pushbutton,combo,edit,sort,fileselect,multiselect,nospellcheck,noscrolling,comb,radiosinunison,commitonchange,richtext|}\",\n      \"maxlength=${1:number}\",\n      \"tooltip={${1:text}}\",\n      \"default=${1:text}\",\n      \"value=${1:text}\",\n      \"rotate=${1|0,90,180,270|}\",\n      \"bgcolor={${1:R G B}}\",\n      \"uptxt={${1:text}}\",\n      \"downtxt={${1:text}}\",\n      \"rollovertxt={${1:text}}\",\n      \"normappr=${1:string}\",\n      \"rollappr=${1:string}\",\n      \"downappr=${1:string}\",\n      \"importicons=${1|yes,no|}\",\n      \"layout=${1|labelonly,icononly,icontop,iconbottom,iconleft,iconright,labelover|}\",\n      \"scalewhen=${1|always,never,iconbig,iconsmall|}\",\n      \"scale=${1|proportional,nonproportional|}\",\n      \"position={${1:x y}}\",\n      \"fitbounds\",\n      \"appr={${1:specs}}\",\n      \"align=${1|left,centered,right|}\",\n      \"textfont=${1:font name}\",\n      \"textsize=${1:number}\",\n      \"textcolor=${1:number}\",\n      \"autocenter=${1|yes,no|}\",\n      \"inline=${1|yes,no|}\",\n      \"presets=${1:\\\\cmd}\",\n      \"symbolchoice=${1|check,circle,cross,diamond,square,star|}\",\n      \"rectW=\",\n      \"rectH=\",\n      \"width=\",\n      \"height=\",\n      \"scalefactor=${1:factor}\",\n      \"goto={${1:KV-pairs}}\",\n      \"js={${1:script}}\",\n      \"mouseup={${1:script}}\",\n      \"mousedown={${1:script}}\",\n      \"onenter={${1:script}}\",\n      \"onexit={${1:script}}\",\n      \"onfocus={${1:script}}\",\n      \"onblur={${1:script}}\",\n      \"format={${1:script}}\",\n      \"keystroke={${1:script}}\",\n      \"validate={${1:script}}\",\n      \"calculate={${1:script}}\",\n      \"pageopen={${1:script}}\",\n      \"pageclose={${1:script}}\",\n      \"pagevisible={${1:script}}\",\n      \"pageinvisible={${1:script}}\",\n      \"lock={${1:KV-pairs}}\"\n    ],\n    \"\\\\symbolchoice\": [\n      \"check\",\n      \"circle\",\n      \"cross\",\n      \"diamond\",\n      \"square\",\n      \"star\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eforms#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/egothic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textegoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textegoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"egothfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/egpeirce.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-text\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"everypage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notinlinetrue\"\n    },\n    {\n      \"name\": \"notinlinefalse\"\n    },\n    {\n      \"name\": \"cut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ellipsecuttrue\"\n    },\n    {\n      \"name\": \"ellipsecutfalse\"\n    },\n    {\n      \"name\": \"ontop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ontop{${1:above \\\\\\\\ below%text}}\"\n      }\n    },\n    {\n      \"name\": \"ontopl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ontopl{${1:above \\\\\\\\ below%text}}\"\n      }\n    },\n    {\n      \"name\": \"ontopr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ontopr{${1:above \\\\\\\\ below%text}}\"\n      }\n    },\n    {\n      \"name\": \"vcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vvcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scroll{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"scroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"scroll*{${1:left-width}}{${2:left%text}}{${3:middle-width}}{${4:right%text}}{${5:right-width}}\"\n      }\n    },\n    {\n      \"name\": \"vscroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vscroll{${1:top%text}}{${2:bottom%text}}\"\n      }\n    },\n    {\n      \"name\": \"vscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vscroll*{${1:top-width}}{${2:top%text}}{${3:middle-width}}{${4:bottom%text}}{${5:bottom-width}}\"\n      }\n    },\n    {\n      \"name\": \"inversescroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inversescroll{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"inversescroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"inversescroll*{${1:left-width}}{${2:left%text}}{${3:middle-width}}{${4:right%text}}{${5:right-width}}\"\n      }\n    },\n    {\n      \"name\": \"inversevscroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inversevscroll{${1:top%text}}{${2:bottom%text}}\"\n      }\n    },\n    {\n      \"name\": \"inversevscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"inversevscroll*{${1:top-width}}{${2:top%text}}{${3:middle-width}}{${4:bottom%text}}{${5:bottom-width}}\"\n      }\n    },\n    {\n      \"name\": \"longscroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longscroll{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"longscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longscroll*{${1:left-width}}{${2:left%text}}{${3:middle-width}}{${4:right%text}}{${5:right-width}}\"\n      }\n    },\n    {\n      \"name\": \"longvscroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longvscroll{${1:top%text}}{${2:bottom%text}}\"\n      }\n    },\n    {\n      \"name\": \"longvscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longvscroll*{${1:top-width}}{${2:top%text}}{${3:middle-width}}{${4:bottom%text}}{${5:bottom-width}}\"\n      }\n    },\n    {\n      \"name\": \"longinversescroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longinversescroll{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"longinversescroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longinversescroll*{${1:left-width}}{${2:left%text}}{${3:middle-width}}{${4:right%text}}{${5:right-width}}\"\n      }\n    },\n    {\n      \"name\": \"longinversevscroll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longinversevscroll{${1:top%text}}{${2:bottom%text}}\"\n      }\n    },\n    {\n      \"name\": \"longinversevscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"longinversevscroll*{${1:top-width}}{${2:top%text}}{${3:middle-width}}{${4:bottom%text}}{${5:bottom-width}}\"\n      }\n    },\n    {\n      \"name\": \"nscroll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nscroll{${1:A,B,C,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"nscroll*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nscroll*{${1:A,B,C,...%text}}{${2:center%text}}\"\n      }\n    },\n    {\n      \"name\": \"nscrollwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nscrollwidth{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"nscrolldistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nscrolldistance{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"defaultscrollwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultscrolldistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultnscrollangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colouredcutstrue\"\n    },\n    {\n      \"name\": \"colouredcutsfalse\"\n    },\n    {\n      \"name\": \"cutx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cutx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vcutx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcutx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vvcutx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvcutx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"li\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"li{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"li\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"li[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"upright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upright{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"upright\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"upright[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"downright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"downright{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"downright\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"downright[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"rightdown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightdown{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"rightdown\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rightdown[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"rightup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightup{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"rightup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rightup[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"sligature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sligature{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"sligature\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sligature[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"hsligature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hsligature{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"hsligature\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hsligature[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"reflexivel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reflexivel{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"reflexivel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"reflexivel[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"reflexiver\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reflexiver{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"reflexiver\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"reflexiver[${3:gap spec}]{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"debugmodetrue\"\n    },\n    {\n      \"name\": \"debugmodefalse\"\n    },\n    {\n      \"name\": \"gcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gvcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gvcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gvvcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gvvcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dbcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pcut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ncut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncut{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"everygraphhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everygraphhook{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DefNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefNodes{${1:ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"egatn\"\n    },\n    {\n      \"name\": \"vv\"\n    },\n    {\n      \"name\": \"cutwidth\"\n    },\n    {\n      \"name\": \"ligaturewidth\"\n    },\n    {\n      \"name\": \"cutxfillcolour\"\n    },\n    {\n      \"name\": \"cutxwidth\"\n    },\n    {\n      \"name\": \"cutxcolour\"\n    },\n    {\n      \"name\": \"xfillstyle\"\n    },\n    {\n      \"name\": \"cutcolour\"\n    },\n    {\n      \"name\": \"licolour\"\n    },\n    {\n      \"name\": \"scrollstretch\"\n    },\n    {\n      \"name\": \"commoncoefficient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scaledsymbolstrue\"\n    },\n    {\n      \"name\": \"scaledsymbolsfalse\"\n    },\n    {\n      \"name\": \"aggregate\"\n    },\n    {\n      \"name\": \"varaggregate\"\n    },\n    {\n      \"name\": \"Paries\"\n    },\n    {\n      \"name\": \"dragonhead\"\n    },\n    {\n      \"name\": \"reversedragonhead\"\n    },\n    {\n      \"name\": \"flatinfty\"\n    },\n    {\n      \"name\": \"fsymbol\"\n    },\n    {\n      \"name\": \"implicates\"\n    },\n    {\n      \"name\": \"cursiveimplicates\"\n    },\n    {\n      \"name\": \"varinclusion\"\n    },\n    {\n      \"name\": \"Ppropto\"\n    },\n    {\n      \"name\": \"Pinversepropto\"\n    },\n    {\n      \"name\": \"varwedge\"\n    },\n    {\n      \"name\": \"weirdone\"\n    },\n    {\n      \"name\": \"weirdtwo\"\n    },\n    {\n      \"name\": \"weirdthree\"\n    },\n    {\n      \"name\": \"weirdfour\"\n    },\n    {\n      \"name\": \"napierianbase\"\n    },\n    {\n      \"name\": \"Pratiocircdia\"\n    },\n    {\n      \"name\": \"boxxoperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxxoperator{${1:lines%keyvals}}\",\n        \"keys\": [\n          \"\\\\boxxoperator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PPi\"\n    },\n    {\n      \"name\": \"PSigma\"\n    },\n    {\n      \"name\": \"heartright\"\n    },\n    {\n      \"name\": \"heartleft\"\n    },\n    {\n      \"name\": \"heartleftnofill\"\n    },\n    {\n      \"name\": \"heartdown\"\n    },\n    {\n      \"name\": \"heartup\"\n    },\n    {\n      \"name\": \"norlike\"\n    },\n    {\n      \"name\": \"inversenorlike\"\n    },\n    {\n      \"name\": \"whiskers\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"whiskers{${1:text1}}{${2:text2}}{${3:text3}}\"\n      }\n    },\n    {\n      \"name\": \"inversewhiskers\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"inversewhiskers{${1:text1}}{${2:text2}}{${3:text3}}\"\n      }\n    },\n    {\n      \"name\": \"whiskersdot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"whiskersdot{${1:text1}}{${2:text2}}{${3:text3}}\"\n      }\n    },\n    {\n      \"name\": \"inversewhiskersdot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"inversewhiskersdot{${1:text1}}{${2:text2}}{${3:text3}}\"\n      }\n    },\n    {\n      \"name\": \"agoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reverseagoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reverseagoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlineagoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineagoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reverseinlineagoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reverseinlineagoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"croverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"croverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reversecroverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reversecroverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cuoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"reversecuoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reversecuoverline{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"inline\"\n    },\n    {\n      \"name\": \"inline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:stretch factor}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\boxxoperator\": [\n      \"t\",\n      \"b\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/egplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"egpwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpwrite{${1:gnuplot code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpprelude{${1:gnuplot prelude%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpaddtoprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpaddtoprelude{${1:gnuplot code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpuse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"egpuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"egpuse[${2:keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\begin{egpx},\\\\egpuse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"egpfigprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpfigprelude{${1:gnuplot prelude%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpaddtofigprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpaddtofigprelude{${1:gnuplot code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpfigepilog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpfigepilog{${1:gnuplot epilog%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpaddtofigepilog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpaddtofigepilog{${1:gnuplot code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpcalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpcalc{${1:gnuplot expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpcalc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"egpcalc[${2:name%definition}]{${1:gnuplot expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpuseval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpuseval{${1:name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpshowval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"egpshowval{${1:gnuplot expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpshowval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"egpshowval[${2:name%definition}]{${1:gnuplot expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"egpassign\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"egpassign{${1:variable%definition}}{${2:gnuplot expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"theegpcalc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theegpfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theegpfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theegpfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theegpfilenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egpcomment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"egpfile\"\n    },\n    {\n      \"name\": \"egpfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:gnuplot file%file}]\"\n      }\n    },\n    {\n      \"name\": \"egpcmds\"\n    },\n    {\n      \"name\": \"egp\"\n    },\n    {\n      \"name\": \"egp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"egpx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{egpx},\\\\egpuse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"egpx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:name}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{egpx},\\\\egpuse\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"egpdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/egplot#c\": [\n      \"german\",\n      \"gnuplot35\",\n      \"gnuplot36beta\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\begin{egpx},\\\\egpuse\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/egplot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/egypto.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    },\n    {\n      \"name\": \"accolade\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"accolade{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"affligne\"\n    },\n    {\n      \"name\": \"affpage\"\n    },\n    {\n      \"name\": \"dico\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dico{${1:Y}}{${2:translation%text}}{${3:comments%text}}\"\n      }\n    },\n    {\n      \"name\": \"DicoIndex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"DicoIndex{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}\"\n      }\n    },\n    {\n      \"name\": \"EcritTraduction\"\n    },\n    {\n      \"name\": \"EcritTraductionEnColonne\"\n    },\n    {\n      \"name\": \"EcritTraductionEnLigne\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"EXEMPLE\"\n    },\n    {\n      \"name\": \"Montitre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Montitre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"numligne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numligne{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"numpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numpage{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SourceTexte\"\n    },\n    {\n      \"name\": \"traduction\"\n    },\n    {\n      \"name\": \"zero\"\n    },\n    {\n      \"name\": \"*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afficheReference\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afficheReference{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"BeginCreateVBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boiteA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boiteB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DemiLigneA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DemiLigneB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diconame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdiTexte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndCreateVBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EstRectoVerso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EstRectoVerso{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FixeReference\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FixeReference{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"HauteurLigne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifRectoVerso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laligne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lapage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numeroligne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numeropage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RectoVersofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RectoVersotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"References\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rien\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setPageAndLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setPageAndLine{${1:page}}{${2:line}}\"\n      }\n    },\n    {\n      \"name\": \"texteg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texteg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"theexemple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"echange{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exemple\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:pagenum or recto/verso}}{${3:linenums}}{${4:references}}\"\n      }\n    },\n    {\n      \"name\": \"gramrule\"\n    },\n    {\n      \"name\": \"possib\"\n    },\n    {\n      \"name\": \"translit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:pagenum or recto/verso}}{${3:linenums}}{${4:references}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ekdosis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"expkv-opt\"\n    },\n    {\n      \"name\": \"expkv-def\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"paracol\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"trivfloat\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"keyfloat\",\n      \"if\": \"layout=keyfloat\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"layout=fitapp\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\",\n      \"if\": \"layout=fitapp\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\",\n      \"if\": \"layout=fitapp\"\n    },\n    {\n      \"name\": \"verse\",\n      \"if\": \"poetry=verse\"\n    },\n    {\n      \"name\": \"parnotes\",\n      \"if\": \"parnotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekdsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekdsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ekdsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareWitness\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareWitness{${1:unique id}}{${2:rendition}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareWitness\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"DeclareWitness{${1:unique id}}{${2:rendition}}{${3:description%text}}[${4:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\DeclareWitness\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareHand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareHand{${1:unique id}}{${2:base ms.}}{${3:rendition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareHand\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"DeclareHand{${1:unique id}}{${2:base ms.}}{${3:rendition}}[${4:note}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSource\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSource{${1:unique label}}{${2:rendition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareScholar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareScholar{${1:unique id}}{${2:rendition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareScholar\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"DeclareScholar{${1:unique id}}{${2:rendition}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\DeclareScholar\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareShorthand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareShorthand{${1:unique id}}{${2:rendition}}{${3:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"getsiglum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsiglum{${1:list of witnesses}}\"\n      }\n    },\n    {\n      \"name\": \"SigLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SigLine{${1:unique id}}\"\n      }\n    },\n    {\n      \"name\": \"app\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"app{${1:apparatus entries%text}}\"\n      }\n    },\n    {\n      \"name\": \"app\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"app[${2:type=type}]{${1:apparatus entries}}\"\n      }\n    },\n    {\n      \"name\": \"lem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lem{${1:lemma text%text}}\"\n      }\n    },\n    {\n      \"name\": \"lem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lem[${2:options%keyvals}]{${1:lemma text%text}}\",\n        \"keys\": [\n          \"\\\\lem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rdg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rdg{${1:variant reading}}\"\n      }\n    },\n    {\n      \"name\": \"rdg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rdg[${2:options%keyvals}]{${1:variant reading}}\",\n        \"keys\": [\n          \"\\\\rdg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\note,\\\\note*\",\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"note*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"note*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note*[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\note,\\\\note*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rdgGrp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rdgGrp{${1:lemma text%text}}\"\n      }\n    },\n    {\n      \"name\": \"rdgGrpe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rdgGrpe[${2:type=type}]{${1:lemma text}}\"\n      }\n    },\n    {\n      \"name\": \"SetCritSymbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCritSymbols{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetCritSymbols\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supplied\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supplied{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"surplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surplus{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sic*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gap{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetAlignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAlignment{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{alignment},\\\\SetAlignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetHooks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHooks{${1:list of hooks%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHooks\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetLTRapp\"\n    },\n    {\n      \"name\": \"SetRTLapp\"\n    },\n    {\n      \"name\": \"SetSeparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSeparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"SetSubseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSubseparator{${1:subseparator}}\"\n      }\n    },\n    {\n      \"name\": \"ekdsep\"\n    },\n    {\n      \"name\": \"ekdsubsep\"\n    },\n    {\n      \"name\": \"SetBeginApparatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBeginApparatus{${1:characters or commands}}\"\n      }\n    },\n    {\n      \"name\": \"SetEndApparatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetEndApparatus{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"SetUnitDelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUnitDelimiter{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"SetDefaultRule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultRule{${1:line definition}}\"\n      }\n    },\n    {\n      \"name\": \"SetApparatusLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetApparatusLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"SetApparatusNoteLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetApparatusNoteLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"SetApparatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetApparatus{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetApparatus,\\\\DeclareApparatus\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iffootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteruletrue\"\n    },\n    {\n      \"name\": \"footnoterulefalse\"\n    },\n    {\n      \"name\": \"SetDefaultApparatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultApparatus{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareApparatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareApparatus{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareApparatus\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareApparatus{${1:name}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"SetLineation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLineation{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetLineation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"innerlinenumbers\"\n    },\n    {\n      \"name\": \"outerlinenumbers\"\n    },\n    {\n      \"name\": \"vmodulolinenumbers\",\n      \"if\": \"poetry=verse\"\n    },\n    {\n      \"name\": \"vmodulolinenumbers\",\n      \"if\": \"poetry=verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vmodulolinenumbers[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"resetvlinenumber\",\n      \"if\": \"poetry=verse\"\n    },\n    {\n      \"name\": \"resetvlinenumber\",\n      \"if\": \"poetry=verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetvlinenumber[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"setRL\"\n    },\n    {\n      \"name\": \"setLR\"\n    },\n    {\n      \"name\": \"MkBodyDivs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"MkBodyDivs{${1:div1}}{${2:div2}}{${3:div3}}{${4:div4}}{${5:div5}}{${6:div6}}\"\n      }\n    },\n    {\n      \"name\": \"ekddiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekddiv{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ekddiv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FormatDiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FormatDiv{${1:n}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"ekdmark\"\n    },\n    {\n      \"name\": \"endmark\"\n    },\n    {\n      \"name\": \"ekdprintmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekdprintmark{${1:selector}}{${2:signpost}}\"\n      }\n    },\n    {\n      \"name\": \"ekdnohfmark\"\n    },\n    {\n      \"name\": \"ekdresethfmarks\"\n    },\n    {\n      \"name\": \"ekdpb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekdpb{${1:line no}}\"\n      }\n    },\n    {\n      \"name\": \"ekdpb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ekdpb[${2:page no}]{${1:line no}}\"\n      }\n    },\n    {\n      \"name\": \"ekdpb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekdpb*{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"addentries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addentries{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"addentries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addentries[${2:layer}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SetTEIFileName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTEIFileName{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"SetTEIxmlExport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTEIxmlExport{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTEIxmlExport\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TeXtoTEI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXtoTEI{${1:csname}}{${2:TEI element}}\"\n      }\n    },\n    {\n      \"name\": \"TeXtoTEI\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"TeXtoTEI{${1:csname}}{${2:TEI element}}[${3:TEI attributes}]\"\n      }\n    },\n    {\n      \"name\": \"EnvtoTEI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnvtoTEI{${1:envname}}{${2:TEI element}}\"\n      }\n    },\n    {\n      \"name\": \"EnvtoTEI\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"EnvtoTEI{${1:envname}}{${2:TEI element}}[${3:TEI attributes}]\"\n      }\n    },\n    {\n      \"name\": \"EnvtoTEI*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnvtoTEI*{${1:envname}}{${2:TEI element}}\"\n      }\n    },\n    {\n      \"name\": \"EnvtoTEI*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"EnvtoTEI*{${1:envname}}{${2:TEI element}}[${3:TEI attributes}]\"\n      }\n    },\n    {\n      \"name\": \"TeXtoTEIPat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXtoTEIPat{${1:TeX pattern}}{${2:TEI pattern}}\"\n      }\n    },\n    {\n      \"name\": \"teidirect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"teidirect{${1:XML element}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"teidirect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"teidirect[${3:XML attributes}]{${1:XML element}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddxmlBibResource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddxmlBibResource{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"EkdosisColStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EkdosisColStop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EkdosisOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EkdosisOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LRnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTEIFileName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTEIFileName{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"apparatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ekdatbegshihook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekdnohfmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekdpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekdverseindentlength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ekdosis\"\n    },\n    {\n      \"name\": \"alignment\"\n    },\n    {\n      \"name\": \"alignment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{alignment},\\\\SetAlignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edition\"\n    },\n    {\n      \"name\": \"edition*\"\n    },\n    {\n      \"name\": \"translation\"\n    },\n    {\n      \"name\": \"translation*\"\n    },\n    {\n      \"name\": \"ekdverse\"\n    },\n    {\n      \"name\": \"ekdverse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ekdverse}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ekdstanza\"\n    },\n    {\n      \"name\": \"ekdstanza\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ekdstanza}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ekdpar\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ekdosis#c\": [\n      \"layout=${1|float,footins,keyfloat,fitapp|}\",\n      \"divs=${1|ekdosis,latex|}\",\n      \"poetry=verse\",\n      \"parnotes=${1|true,false,roman|}\",\n      \"teiexport=${1|true,false,tidy|}\"\n    ],\n    \"\\\\ekdsetup\": [\n      \"showpagebreaks\",\n      \"spbmk=${1:string}\",\n      \"hpbmk=${1:string}\"\n    ],\n    \"\\\\DeclareWitness\": [\n      \"settlement=${1:name}\",\n      \"institution=${1:name}\",\n      \"repository=${1:name}\",\n      \"collection=${1:name}\",\n      \"idno=${1:call number}\",\n      \"msName=${1:name}\",\n      \"origDate=${1:date}\",\n      \"locus=${1:locus}\"\n    ],\n    \"\\\\DeclareScholar\": [\n      \"rawname=${1:name}\",\n      \"forename=${1:name}\",\n      \"surname=${1:name}\",\n      \"addname=${1:additional name}\",\n      \"note=${1:note}\"\n    ],\n    \"\\\\lem\": [\n      \"wit=${1:list of witnesses}\",\n      \"source=${1:list of sources}\",\n      \"resp=${1:list of scholars}\",\n      \"alt=${1:alternate lemma}\",\n      \"sep=${1:separator}\",\n      \"nosep\",\n      \"nolem\",\n      \"type=${1:type}\",\n      \"num\",\n      \"nonum\",\n      \"pre=${1:words}\",\n      \"post=${1:words}\",\n      \"prewit=${1:words}\",\n      \"postwit=${1:words}\"\n    ],\n    \"\\\\rdg\": [\n      \"wit=${1:list of witnesses}\",\n      \"source=${1:list of sources}\",\n      \"resp=${1:list of scholars}\",\n      \"alt=${1:alternate lemma}\",\n      \"nordg\",\n      \"type=${1:type}\",\n      \"pre=${1:words}\",\n      \"post=${1:words}\",\n      \"prewit=${1:words}\",\n      \"postwit=${1:words}\",\n      \"subsep=${1:subseparator}\",\n      \"nosubsep\"\n    ],\n    \"\\\\note,\\\\note*\": [\n      \"pre=${1:words}\",\n      \"post=${1:words}\",\n      \"sep\",\n      \"subsep\"\n    ],\n    \"\\\\SetCritSymbols\": [\n      \"suppbegin=${1:symbol}\",\n      \"suppend=${1:symbol}\",\n      \"delbegin=${1:symbol}\",\n      \"delend=${1:symbol}\",\n      \"sicbegin=${1:symbol}\",\n      \"sicend=${1:symbol}\",\n      \"gapmark=${1:symbols}\",\n      \"keepinapp\"\n    ],\n    \"\\\\gap\": [\n      \"reason=${1:reason}\",\n      \"unit=${1:unit}\",\n      \"quantity=${1:n}\",\n      \"extent=${1:description}\"\n    ],\n    \"\\\\begin{alignment},\\\\SetAlignment\": [\n      \"tcols=${1:number}\",\n      \"lcols=${1:number}\",\n      \"texts=${1:semicolon-separated values}\",\n      \"apparatus=${1:semicolon-separated values}\",\n      \"paired\",\n      \"lineation=${1|page,document|}\",\n      \"flush\",\n      \"segmentation=${1|auto,noauto|}\"\n    ],\n    \"\\\\SetHooks\": [\n      \"appfontsize=${1:command}\",\n      \"refnumstyle=${1:command}\",\n      \"postrefnum=${1:<command> or <chars>}\",\n      \"lemmastyle=${1:command}\",\n      \"readingstyle=${1:command}\",\n      \"familysep=${1:<symbol> or reset}\",\n      \"initialrule=${1:command}\",\n      \"noinitialrule\",\n      \"keyparopts={${1:keyfloat options}}\",\n      \"appheight=\",\n      \"fitalgorithm=${1|fontsize,hybrid,areasize,squeeze|}\"\n    ],\n    \"\\\\SetApparatus,\\\\DeclareApparatus\": [\n      \"direction=${1|LR,RL|}\",\n      \"sep=${1:separator}\",\n      \"subsep=${1:subseparator}\",\n      \"delim=${1:delimiter}\",\n      \"bhook=${1:characters or commands}\",\n      \"ehook=${1:characters}\",\n      \"rule=${1:line definition}\",\n      \"norule\",\n      \"lang=${1:language}\",\n      \"notelang=${1:language}\",\n      \"maxentries=${1:integer}\"\n    ],\n    \"\\\\note\": [\n      \"type=${1:type}\",\n      \"sep=${1:separator}\",\n      \"nosep\",\n      \"lem=${1:lemma text}\",\n      \"num\",\n      \"nonum\",\n      \"labelb=${1:label}\",\n      \"labele=${1:label}\"\n    ],\n    \"\\\\begin{ekdverse}\": [\n      \"width=\",\n      \"type=${1:type}\"\n    ],\n    \"\\\\begin{ekdstanza}\": [\n      \"type=${1:type}\"\n    ],\n    \"\\\\SetLineation\": [\n      \"lineation=${1|page,document,none|}\",\n      \"modulo\",\n      \"modulonum=${1:integer}\",\n      \"margin=${1|right,left,inner,outer|}\",\n      \"numbers=${1|elided,full|}\",\n      \"vlineation=${1|page,document|}\",\n      \"vmodulo=${1:integer}\",\n      \"vnumbrokenlines\",\n      \"vmargin=${1|right,left|}\",\n      \"continuousvnum\"\n    ],\n    \"\\\\ekddiv\": [\n      \"type=${1:type}\",\n      \"n=${1:value}\",\n      \"head=${1:name}\",\n      \"barehead=${1:name}\",\n      \"depth=${1:n}\",\n      \"toc=${1|book,part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"mark=${1:signpost}\"\n    ],\n    \"\\\\SetTEIxmlExport\": [\n      \"autopar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ekdosis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/electrum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lgweight\"\n    },\n    {\n      \"name\": \"textlg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sbweight\"\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lstyle\"\n    },\n    {\n      \"name\": \"textl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ostyle\"\n    },\n    {\n      \"name\": \"texto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infstyle\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/electrum#c\": [\n      \"lig\",\n      \"osf\",\n      \"lf\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/electrum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/elements.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"elementname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elementname{${1:atomic number|element symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setatomname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setatomname{${1:atomic number}}{${2:element name}}\"\n      }\n    },\n    {\n      \"name\": \"setatomname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setatomname[${3:alt name}]{${1:atomic number}}{${2:element name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAtomName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAtomName{${1:atomic number}}{${2:element name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAtomName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareAtomName[${3:alt name}]{${1:atomic number}}{${2:element name}}\"\n      }\n    },\n    {\n      \"name\": \"saveelementname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveelementname{${1:cmd}}{${2:atomic number|${3:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"elementsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elementsymbol{${1:atomic number|element name}}\"\n      }\n    },\n    {\n      \"name\": \"setatomsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setatomsymbol{${1:atomic number}}{${2:element symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAtomSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAtomSymbol{${1:atomic number}}{${2:element symbol}}\"\n      }\n    },\n    {\n      \"name\": \"saveelementsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveelementsymbol{${1:cmd}}{${2:atomic number|${3:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"atomicnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atomicnumber{${1:element symbol|element name}}\"\n      }\n    },\n    {\n      \"name\": \"Z\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Z{${1:element symbol|element name}}\"\n      }\n    },\n    {\n      \"name\": \"saveatomicnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveatomicnumber{${1:cmd}}{${2:atomic number|${3:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"elconf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elconf{${1:atomic number|${2:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"writeelconf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writeelconf{${1:electron distribution}}\"\n      }\n    },\n    {\n      \"name\": \"setelectrondistribution\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setelectrondistribution{${1:atomic number}}{${2:element distribution}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareElectronDistribution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareElectronDistribution{${1:atomic number}}{${2:element distribution}}\"\n      }\n    },\n    {\n      \"name\": \"setangularmomentum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setangularmomentum{${1:type}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"printangularmomentum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printangularmomentum{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"setatomisotopes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setatomisotopes{${1:atomic number}}{${2:isotope list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAtomIsotopes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAtomIsotopes{${1:atomic number}}{${2:isotope list}}\"\n      }\n    },\n    {\n      \"name\": \"saveelementisotopes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveelementisotopes{${1:cmd}}{${2:atomic number|${3:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"savemainelementisotope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savemainelementisotope{${1:cmd}}{${2:atomic number|${3:element symbol}|element name}}\"\n      }\n    },\n    {\n      \"name\": \"mainelementisotope\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainelementisotope{${1:atomic number|${2:element symbol}|element name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ellipsis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\",\n      \"if\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ellipsisgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ellipsispunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midwordellipsis\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ellipsis#c\": [\n      \"chicago\",\n      \"mla\",\n      \"xspace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ellipsis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/elocalloc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"loccount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loctoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafloats\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elpresbluelightgrayscheme.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elpresgrayscheme.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elpreswhitebluescheme.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elpreswhiteredscheme.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elpreswhitetealscheme.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/elzcards.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BusinessCard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BusinessCard{${1:front side%text}}\"\n      }\n    },\n    {\n      \"name\": \"BusinessCard\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"BusinessCard{${1:front side%text}}[${2:back side%text}]\"\n      }\n    },\n    {\n      \"name\": \"IndexCard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexCard{${1:front side%text}}\"\n      }\n    },\n    {\n      \"name\": \"IndexCard\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"IndexCard{${1:front side%text}}[${2:back side%text}]\"\n      }\n    },\n    {\n      \"name\": \"FlashCard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FlashCard{${1:front side%text}}\"\n      }\n    },\n    {\n      \"name\": \"FlashCard\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FlashCard{${1:front side%text}}[${2:back side%text}]\"\n      }\n    },\n    {\n      \"name\": \"CurrentIC\"\n    },\n    {\n      \"name\": \"CurrentFC\"\n    },\n    {\n      \"name\": \"TotalIC\"\n    },\n    {\n      \"name\": \"TotalFC\"\n    },\n    {\n      \"name\": \"MakeBC\"\n    },\n    {\n      \"name\": \"MakeBC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeBC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeBC*\"\n    },\n    {\n      \"name\": \"MakeBC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeBC*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeIC\"\n    },\n    {\n      \"name\": \"MakeIC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeIC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeIC*\"\n    },\n    {\n      \"name\": \"MakeIC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeIC*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeFC\"\n    },\n    {\n      \"name\": \"MakeFC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeFC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeFC*\"\n    },\n    {\n      \"name\": \"MakeFC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MakeFC*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Transverse\"\n    },\n    {\n      \"name\": \"NoTransverse\"\n    },\n    {\n      \"name\": \"BCdim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BCdim{${1:h-size}}{${2:v-size}}\"\n      }\n    },\n    {\n      \"name\": \"ICdim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ICdim{${1:h-size}}{${2:v-size}}\"\n      }\n    },\n    {\n      \"name\": \"FCdim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FCdim{${1:h-size}}{${2:v-size}}\"\n      }\n    },\n    {\n      \"name\": \"CardGap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CardGap{${1:h-gap}}{${2:v-gap}}\"\n      }\n    },\n    {\n      \"name\": \"AutoGapInner\"\n    },\n    {\n      \"name\": \"AutoGapTotal\"\n    },\n    {\n      \"name\": \"NoAutoGap\"\n    },\n    {\n      \"name\": \"CropCrosses\"\n    },\n    {\n      \"name\": \"CropSegments\"\n    },\n    {\n      \"name\": \"CropLines\"\n    },\n    {\n      \"name\": \"CropDots\"\n    },\n    {\n      \"name\": \"NoCropMarks\"\n    },\n    {\n      \"name\": \"SegmentLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SegmentLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"LineThickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LineThickness{${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"DotSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DotSize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"CropColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CropColor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\MakeBC,\\\\MakeBC*,\\\\MakeIC,\\\\MakeIC*,\\\\MakeFC,\\\\MakeFC*\": [\n      \"order=${1:num1 num2 ...}\",\n      \"transverse\",\n      \"no transverse\",\n      \"rows=${1:number}\",\n      \"columns=${1:number}\",\n      \"hsize=\",\n      \"vsize=\",\n      \"hgap=\",\n      \"vgap=\",\n      \"autogap inner\",\n      \"autogap total\",\n      \"no autogap\",\n      \"crosses\",\n      \"segments\",\n      \"lines\",\n      \"dots\",\n      \"no marks\",\n      \"segment length=\",\n      \"line thickness=\",\n      \"dot size=\",\n      \"crop color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/emarks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"marksthe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marksthe{${1:named-mark}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"marksthe*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marksthe*{${1:named-mark}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"marksthecs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marksthecs{${1:named-mark}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"marksthecs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marksthecs*{${1:named-mark}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"thefirstmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thefirstmarks{${1:named-mark}}\"\n      }\n    },\n    {\n      \"name\": \"thebotmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thebotmarks{${1:named-mark}}\"\n      }\n    },\n    {\n      \"name\": \"thetopmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetopmarks{${1:named-mark}}\"\n      }\n    },\n    {\n      \"name\": \"getthemarks\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getthemarks{${1:marks}}{${2:named-mark}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"getthefirstmarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthefirstmarks{${1:named-mark}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"getthebotmarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthebotmarks{${1:named-mark}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"getthetopmarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthetopmarks{${1:named-mark}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"firstmarks\"\n    },\n    {\n      \"name\": \"botmarks\"\n    },\n    {\n      \"name\": \"topmarks\"\n    },\n    {\n      \"name\": \"ifmarksvoid\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifmarksvoid{${1:marks}}{${2:named-mark}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmarksequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifmarksequal{${1:marks1}}{${2:marks2}}{${3:named-mark}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"showthemarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showthemarks{${1:named-mark}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/embedall.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"embedfile\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"letltxmacro\",\n      \"if\": \"compat\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"embedsource\"\n    },\n    {\n      \"name\": \"embedsource\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"embedsource[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\embedsource#c,\\\\embedinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"embedinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"embedinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"embedinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\embedsource#c,\\\\embedinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/embedall#c\": [\n      \"all\",\n      \"notall\",\n      \"main\",\n      \"input\",\n      \"include\",\n      \"graphicx\",\n      \"csvsimple\",\n      \"compat\"\n    ],\n    \"\\\\embedsource#c,\\\\embedinput#c\": [\n      \"filespec=\",\n      \"ucfilespec=\",\n      \"filesystem=\",\n      \"mimetype=\",\n      \"desc=${1:description}\",\n      \"afrelationship=${1:PDF name}\",\n      \"stringmethod=${1|psd,escape|}\",\n      \"id=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/embedall#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/embedfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwaerr\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"embedfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"embedfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"embedfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\embedfile#c,\\\\embedfilesetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"embedfilesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedfilesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\embedfile#c,\\\\embedfilesetup#c\",\n          \"\\\\embedfilesetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"embedfilefinish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"embedfilefield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"embedfilefield{${1:key%plain}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\embedfilefield\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"embedfilesort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedfilesort{${1:key-sort-list}}\"\n      }\n    },\n    {\n      \"name\": \"embedfileifobjectexists\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"embedfileifobjectexists{${1:id}}{${2:type%keyvals}}{${3:then}}{${4:else}}\",\n        \"keys\": [\n          \"\\\\embedfileifobjectexists,\\\\embedfilegetobject\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"embedfilegetobject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"embedfilegetobject{${1:id}}{${2:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\embedfileifobjectexists,\\\\embedfilegetobject\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\embedfile#c,\\\\embedfilesetup#c\": [\n      \"filespec=\",\n      \"ucfilespec=\",\n      \"filesystem=\",\n      \"mimetype=\",\n      \"desc=${1:description}\",\n      \"afrelationship=${1:PDF name}\",\n      \"stringmethod=${1|psd,escape|}\",\n      \"id=\"\n    ],\n    \"\\\\embedfilesetup#c\": [\n      \"view=${1|details,tile,hidden|}\",\n      \"initialfile=\"\n    ],\n    \"\\\\embedfilefield\": [\n      \"type=${1|text,date,number,file,desc,moddate,size|}\",\n      \"title=\",\n      \"visible\",\n      \"edit\"\n    ],\n    \"\\\\embedfileifobjectexists,\\\\embedfilegetobject\": [\n      \"EmbeddedFile\",\n      \"Filespec\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/embrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"emph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emph*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textit*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsl*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsi*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AddEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddEmph{${1:o}}{${2:c}}\"\n      }\n    },\n    {\n      \"name\": \"AddEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"AddEmph{${1:o}}[${3:io-kern,oo-kern}]{${2:c}}[${4:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"ChangeEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChangeEmph{${1:o}}{${2:c}}\"\n      }\n    },\n    {\n      \"name\": \"ChangeEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"ChangeEmph{${1:o}}[${3:io-kern,oo-kern}]{${2:c}}[${4:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"RenewEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewEmph{${1:o}}{${2:c}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"RenewEmph{${1:o}}[${3:io-kern,oo-kern}]{${2:c}}[${4:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"DeleteEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeleteEmph{${1:o}}{${2:c}}\"\n      }\n    },\n    {\n      \"name\": \"AddOpEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AddOpEmph{${1:o}}[${2:io-kern,oo-kern}]\"\n      }\n    },\n    {\n      \"name\": \"AddClEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AddClEmph{${1:c}}[${2:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"ChangeOpEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ChangeOpEmph{${1:o}}[${2:io-kern,oo-kern}]\"\n      }\n    },\n    {\n      \"name\": \"ChangeClEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ChangeClEmph{${1:c}}[${2:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"RenewOpEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RenewOpEmph{${1:o}}[${2:io-kern,oo-kern}]\"\n      }\n    },\n    {\n      \"name\": \"RenewClEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RenewClEmph{${1:c}}[${2:ic-kern,oc-kern}]\"\n      }\n    },\n    {\n      \"name\": \"DeleteOpEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteOpEmph{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteClEmph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteClEmph{${1:c}}\"\n      }\n    },\n    {\n      \"name\": \"EmbracMakeKnown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmbracMakeKnown{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"EmbracOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmbracOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"emb{${1:open}}{${2:close}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"embparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embparen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"embbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embbracket{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/emf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"emf\"\n    },\n    {\n      \"name\": \"mathemf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathemf{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/emf#c\": [\n      \"scale=${1:factor}\",\n      \"boondox\",\n      \"cmr\",\n      \"calligra\",\n      \"frcursive\",\n      \"fourier\",\n      \"miama\",\n      \"chorus\",\n      \"rsfs\",\n      \"cal\",\n      \"U0\",\n      \"u0\",\n      \"text=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/emf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/emo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"index\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lingchi\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"YHWH\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"emo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emo{${1:emoji-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\emo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/emo#c\": [\n      \"extra\",\n      \"index\",\n      \"debug\"\n    ],\n    \"\\\\emo#c\": [\n      \"lingchi\",\n      \"YHWH\",\n      \"keycap-one\",\n      \"biohazard\",\n      \"balance-scale\",\n      \"check-mark-button\",\n      \"check-mark\",\n      \"cross-mark\",\n      \"plus\",\n      \"eu\",\n      \"japanese-bargain-button\",\n      \"foggy\",\n      \"globe-africa-europe\",\n      \"party-popper\",\n      \"classical-building\",\n      \"desert-island\",\n      \"stadium\",\n      \"rainbow-flag\",\n      \"label\",\n      \"baby-chick\",\n      \"eye\",\n      \"busts\",\n      \"collision\",\n      \"currency-exchange\",\n      \"floppy-disk\",\n      \"chart-increasing\",\n      \"triangular-ruler\",\n      \"pager\",\n      \"loupe-left\",\n      \"detective\",\n      \"wastebasket\",\n      \"enraged-face\",\n      \"stop-sign\",\n      \"robot\",\n      \"handshake\",\n      \"person-facepalming\",\n      \"zany-face\",\n      \"exploding-head\",\n      \"pleading-face\",\n      \"parrot\",\n      \"judge\",\n      \"roll-of-paper\",\n      \"receipt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/emo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/emoji.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setemojifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setemojifont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setemojifont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setemojifont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\setemojifont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"emoji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emoji{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setemojifont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,Lowercase,Lining,OldStyle,Proportional,Monospaced,SlashedZero,Arabic,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/emojicite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"emoji\"\n    },\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"emojicite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emojicite{${1:key,emoji}}\"\n      }\n    },\n    {\n      \"name\": \"emojicitep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emojicitep{${1:key,emoji}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/emotion.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"emotionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emotionsetup{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"emotiondef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emotiondef{${1:name}}{${2:emoji}}\"\n      }\n    },\n    {\n      \"name\": \"emotion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emotion{${1:emoji}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/emp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"empuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empuse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"empTeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empTeX{${1:LaTeX prelude%definition}}\"\n      }\n    },\n    {\n      \"name\": \"empaddtoTeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empaddtoTeX{${1:LaTeX code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"empprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empprelude{${1:METAPOST prelude%definition}}\"\n      }\n    },\n    {\n      \"name\": \"empaddtoprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empaddtoprelude{${1:METAPOST code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"empwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empwrite{${1:METAPOST code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"theempfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theempfile\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"empfile\"\n    },\n    {\n      \"name\": \"empfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:METAPOST file%file}]\"\n      }\n    },\n    {\n      \"name\": \"emp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"emp\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:name}](${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"empdef\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"empdef\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:name}](${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"empcmds\"\n    },\n    {\n      \"name\": \"empgraph\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"empgraph\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:name}](${2:width},${3:height})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/emp#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/emp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/empheq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"empheqset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"empheqset{${1:markup instructions%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{empheq},\\\\empheqset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"empheqlbrace\"\n    },\n    {\n      \"name\": \"empheqrbrace\"\n    },\n    {\n      \"name\": \"empheqbiglbrace\"\n    },\n    {\n      \"name\": \"empheqbigrbrace\"\n    },\n    {\n      \"name\": \"empheqlbrack\"\n    },\n    {\n      \"name\": \"empheqrbrack\"\n    },\n    {\n      \"name\": \"empheqbiglbrack\"\n    },\n    {\n      \"name\": \"empheqbigrbrack\"\n    },\n    {\n      \"name\": \"empheqlangle\"\n    },\n    {\n      \"name\": \"empheqrangle\"\n    },\n    {\n      \"name\": \"empheqbiglangle\"\n    },\n    {\n      \"name\": \"empheqbigrangle\"\n    },\n    {\n      \"name\": \"empheqlparen\"\n    },\n    {\n      \"name\": \"empheqrparen\"\n    },\n    {\n      \"name\": \"empheqbiglparen\"\n    },\n    {\n      \"name\": \"empheqbigrparen\"\n    },\n    {\n      \"name\": \"empheqlvert\"\n    },\n    {\n      \"name\": \"empheqrvert\"\n    },\n    {\n      \"name\": \"empheqbiglvert\"\n    },\n    {\n      \"name\": \"empheqbigrvert\"\n    },\n    {\n      \"name\": \"empheqlVert\"\n    },\n    {\n      \"name\": \"empheqrVert\"\n    },\n    {\n      \"name\": \"empheqbiglVert\"\n    },\n    {\n      \"name\": \"empheqbigrVert\"\n    },\n    {\n      \"name\": \"empheqlfloor\"\n    },\n    {\n      \"name\": \"empheqrfloor\"\n    },\n    {\n      \"name\": \"empheqbiglfloor\"\n    },\n    {\n      \"name\": \"empheqbigrfloor\"\n    },\n    {\n      \"name\": \"empheqlceil\"\n    },\n    {\n      \"name\": \"empheqrceil\"\n    },\n    {\n      \"name\": \"empheqbiglceil\"\n    },\n    {\n      \"name\": \"empheqbigrceil\"\n    },\n    {\n      \"name\": \"shadowbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowbox*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mintagvsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareLeftDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLeftDelimiter{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLeftDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLeftDelimiter[${2:space adjustment}]{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRightDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareRightDelimiter{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRightDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareRightDelimiter[${2:space adjustment}]{${1:delimiter}}\"\n      }\n    },\n    {\n      \"name\": \"EmphEqdelimitershortfall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdelimiterfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdisplayheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqdisplaydepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EmphEqMainEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endEmphEqMainEnv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"empheq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:AMS env name}}\"\n      }\n    },\n    {\n      \"name\": \"empheq\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:markup instructions%keyvals}]{${1:AMS env name}}\",\n        \"keys\": [\n          \"\\\\begin{empheq},\\\\empheqset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MTmultlined\",\n      \"if\": \"oldmultline\"\n    },\n    {\n      \"name\": \"MTmultlined\",\n      \"if\": \"oldmultline\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:pos}][${2:width}]\"\n      }\n    },\n    {\n      \"name\": \"align\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"align*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"equation\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"equation*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline*\",\n      \"if\": \"overload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AmSalign\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalign*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalignat\",\n      \"if\": \"overload\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSalignat*\",\n      \"if\": \"overload\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSequation\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSequation*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline*\",\n      \"if\": \"overload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"align\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"align*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignat\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"alignat*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:ncols}}[${2:markup instructions%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"equation\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"equation*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flalign*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gather*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multline*\",\n      \"if\": \"overload2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:markup instructions%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AmSalign\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalign*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSalignat\",\n      \"if\": \"overload2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSalignat*\",\n      \"if\": \"overload2\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:ncols}}\"\n      }\n    },\n    {\n      \"name\": \"AmSequation\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSequation*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSflalign*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSgather*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSmultline*\",\n      \"if\": \"overload2\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/empheq#c\": [\n      \"overload\",\n      \"overload2\",\n      \"oldmultline\",\n      \"newmultline\",\n      \"ntheorem\",\n      \"fixamsmath\",\n      \"donotfixamsmathbugs\",\n      \"allowspaces\",\n      \"disallowspaces\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\begin{empheq},\\\\empheqset\": [\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\"\n    ],\n    \"\\\\begin{align},\\\\begin{align*},\\\\begin{alignat}{ncols},\\\\begin{alignat*}{ncols},\\\\begin{equation},\\\\begin{equation*},\\\\begin{flalign},\\\\begin{flalign*},\\\\begin{gather},\\\\begin{gather*},\\\\begin{multline},\\\\begin{multline*}\": [\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\",\n      \"box=${1:box cmd}\",\n      \"innerbox=${1:box cmd}\",\n      \"left=${1:math}\",\n      \"right=${1:math}\",\n      \"outerbox=${1:box cmd}\",\n      \"marginbox=${1:box cmd}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/empheq#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/emptypage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/emptypage#c\": [\n      \"odd\",\n      \"even\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/emptypage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/endfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tableplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatplace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginFigures\"\n    },\n    {\n      \"name\": \"AtBeginTables\"\n    },\n    {\n      \"name\": \"AtBeginDelayedFloats\"\n    },\n    {\n      \"name\": \"addtodelayedfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtodelayedfloat{${1:float type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtodelayedfloat*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtodelayedfloat*{${1:float type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"processdelayedfloats\"\n    },\n    {\n      \"name\": \"efloatpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatpostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloattype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatbeginlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efloatendlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareDelayedFloatFlavor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelayedFloatFlavor{${1:envname}}{${2:float type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelayedFloatFlavor*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelayedFloatFlavor*{${1:envname}}{${2:float type}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelayedFloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDelayedFloat{${1:envname}}{${2:heading}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDelayedFloat\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareDelayedFloat{${1:envname}}[${3:file ext}]{${2:heading}}\"\n      }\n    },\n    {\n      \"name\": \"SetupDelayedFloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupDelayedFloat{${1:float type}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetupDelayedFloat\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"dofiglist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotablist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markersintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomarkersintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofiglist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notablist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processotherdelayedfloats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepostfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theposttable\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/endfloat#c\": [\n      \"nofiglist\",\n      \"notablist\",\n      \"nolists\",\n      \"figlist\",\n      \"tablist\",\n      \"lists\",\n      \"nofighead\",\n      \"notabhead\",\n      \"noheads\",\n      \"fighead\",\n      \"tabhead\",\n      \"heads\",\n      \"markers\",\n      \"nomarkers\",\n      \"tablesfirst\",\n      \"figuresfirst\",\n      \"tablesonly\",\n      \"figuresonly\",\n      \"notables\",\n      \"nofigures\",\n      \"disable\"\n    ],\n    \"\\\\SetupDelayedFloat\": [\n      \"nolist\",\n      \"list\",\n      \"nohead\",\n      \"head\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/endfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/endheads.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setupendnoteheaders\"\n    },\n    {\n      \"name\": \"notesbychapter\"\n    },\n    {\n      \"name\": \"setstyleforchapternotebegin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstyleforchapternotebegin{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setstyleforchapternoteend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstyleforchapternoteend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"resetendnotes\"\n    },\n    {\n      \"name\": \"changenotesname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changenotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changenotesheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changenotesheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changenotescontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changenotescontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notesincontents\"\n    },\n    {\n      \"name\": \"changesinglepageabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changesinglepageabbrev{${1:new abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changemultiplepageabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changemultiplepageabbrev{${1:new abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changechapternotesline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changechapternotesline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcounterfrompageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterfrompageref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"setcounterfromref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterfromref{${1:counter}}{${2:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/endiagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ENsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ENsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ENsetup#c,\\\\begin{endiagram}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ENsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ENsetup[${2:module}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ENsetup#c,\\\\begin{endiagram}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ENcurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ENcurve{${1:level1,level2,level3,...}}\"\n      }\n    },\n    {\n      \"name\": \"ENcurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ENcurve[${2:options%keyvals}]{${1:level1,level2,level3,...}}\",\n        \"keys\": [\n          \"\\\\ENcurve\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShowNiveaus\"\n    },\n    {\n      \"name\": \"ShowNiveaus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ShowNiveaus[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ShowNiveaus\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShowGain\"\n    },\n    {\n      \"name\": \"ShowGain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ShowGain[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ShowGain\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShowEa\"\n    },\n    {\n      \"name\": \"ShowEa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ShowEa[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ShowEa\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeOrigin\"\n    },\n    {\n      \"name\": \"AddAxisLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAxisLabel{${1:(${3:point1})[${2:label1}];(${4:point2});...}}\"\n      }\n    },\n    {\n      \"name\": \"AddAxisLabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddAxisLabel[${2:options}]{${1:(${4:point1})[${3:label1}];(${5:point2});...}}\",\n        \"keys\": [\n          \"\\\\AddAxisLabel,\\\\AddAxisLabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddAxisLabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAxisLabel*{${1:level1[${2:label1}];level2;...}}\"\n      }\n    },\n    {\n      \"name\": \"AddAxisLabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddAxisLabel*[${2:options}]{${1:level1[${3:label1}];level2;...}}\",\n        \"keys\": [\n          \"\\\\AddAxisLabel,\\\\AddAxisLabel*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"endiagram\"\n    },\n    {\n      \"name\": \"endiagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ENsetup#c,\\\\begin{endiagram}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\ENsetup#c,\\\\begin{endiagram}\": [\n      \"unit=\",\n      \"scale=${1:factor}\",\n      \"offset=${1:integer}\",\n      \"r-offset=${1:integer}\",\n      \"l-offset=${1:integer}\",\n      \"axes=${1|xy,y,y-l,y-r,x,all,false|}\",\n      \"x-axis={${1:TikZ keys}}\",\n      \"y-axis={${1:TikZ keys}}\",\n      \"x-label=${1|below,right|}\",\n      \"y-label=${1|above,left|}\",\n      \"x-label-pos=${1:value}\",\n      \"y-label-pos=${1:value}\",\n      \"x-label-offset=\",\n      \"y-label-offset=\",\n      \"x-label-angle=${1:degrees}\",\n      \"y-label-angle=${1:degrees}\",\n      \"x-label-text=${1:text}\",\n      \"y-label-text=${1:text}\",\n      \"debug\",\n      \"draft\",\n      \"final\",\n      \"tikz={${1:TikZ keys}}\",\n      \"ticks=${1|y,y-l,y-r,none|}\",\n      \"ticks-step=${1:number}\",\n      \"energy-unit=${1:unit}\",\n      \"energy-step=${1:number}\",\n      \"energy-zero=${1:number}\",\n      \"energy-unit-separator=${1:separator}\",\n      \"energy-round=${1:number}\",\n      \"calculate\"\n    ],\n    \"\\\\ENcurve\": [\n      \"step=${1:integer}\",\n      \"looseness=${1:factor}\",\n      \"minima\",\n      \"tikz={${1:TikZ keys}}\"\n    ],\n    \"\\\\ShowNiveaus\": [\n      \"length=${1:number}\",\n      \"shift=${1:number}\",\n      \"tikz={${1:TikZ keys}}\",\n      \"niveau=${1:id}\"\n    ],\n    \"\\\\ShowGain\": [\n      \"tikz={${1:TikZ keys}}\",\n      \"connect={${1:TikZ keys}}\",\n      \"connect-from-line\",\n      \"offset=${1:number}\",\n      \"label\",\n      \"label=${1:text}\",\n      \"label-side=${1|right,left|}\",\n      \"label-pos=${1:value}\",\n      \"label-tikz={${1:TikZ keys}}\"\n    ],\n    \"\\\\ShowEa\": [\n      \"max=${1|first,all|}\",\n      \"from={(${1:x1,y1}) to (${2:x2,y2})}\",\n      \"tikz={${1:TikZ keys}}\",\n      \"connect={${1:TikZ keys}}\",\n      \"label\",\n      \"label=${1:text}\",\n      \"label-side=${1|right,left|}\",\n      \"label-pos=${1:value}\",\n      \"label-tikz={${1:TikZ keys}}\"\n    ],\n    \"\\\\AddAxisLabel,\\\\AddAxisLabel*\": [\n      \"axis=${1|y-l,y-r,x|}\",\n      \"connect={${1:TikZ keys}}\",\n      \"font=${1:font commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/endnotes-hy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"endnotes\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"phantomendnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnoteautorefname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/endnotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotemark\"\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"endnotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnotetext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoendnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enotesize\"\n    },\n    {\n      \"name\": \"theendnotes\"\n    },\n    {\n      \"name\": \"theendnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/endnotesj.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja-otf\"\n    },\n    {\n      \"name\": \"otf\",\n      \"if\": \"otf\"\n    },\n    {\n      \"name\": \"utf\",\n      \"if\": \"utf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotemark\"\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"endnotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnotetext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoendnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enotesize\"\n    },\n    {\n      \"name\": \"theendnotes\"\n    },\n    {\n      \"name\": \"theendnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeenmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enoteheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kcharparline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcharparline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linesparpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linesparpage{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/endnotesj#c\": [\n      \"tate\",\n      \"yoko\",\n      \"auto-tateyoko\",\n      \"twin\",\n      \"single\",\n      \"utf\",\n      \"otf\",\n      \"ver3\",\n      \"ver2\",\n      \"${1:notesname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/endnotesj#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/endofproofwd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"import\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wasserdicht\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/engord.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"engord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"engord{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"engordnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"engordnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"engordletters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"engordletters{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"engorderror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"engorderror{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifengordraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"engordraisetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"engordraisefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/engord#c\": [\n      \"normal\",\n      \"raise\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/engord#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/engpron.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tipa\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"drac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pron{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Pron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pron{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PRON\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PRON{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EPaccentprincipal\"\n    },\n    {\n      \"name\": \"EPaccentsecondaire\"\n    },\n    {\n      \"name\": \"EPSyllabeCoupure\"\n    },\n    {\n      \"name\": \"EPSyllabeMarque\"\n    },\n    {\n      \"name\": \"EPAccentCoupure\"\n    },\n    {\n      \"name\": \"EPouvrante\"\n    },\n    {\n      \"name\": \"EPfermante\"\n    },\n    {\n      \"name\": \"EPtextestyle\"\n    },\n    {\n      \"name\": \"ActiveLaLivre\"\n    },\n    {\n      \"name\": \"MakeHyphenable\"\n    },\n    {\n      \"name\": \"MakeUnHyphenable\"\n    },\n    {\n      \"name\": \"MakeVisible\"\n    },\n    {\n      \"name\": \"MakeInVisible\"\n    },\n    {\n      \"name\": \"makepoundletter\"\n    },\n    {\n      \"name\": \"makepoundother\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LivreActive\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/engpron#c\": [\n      \"wild\",\n      \"tame\",\n      \"drac\",\n      \"nodrac\",\n      \"jones\",\n      \"harraps\",\n      \"hyphenable\",\n      \"unhyphenable\",\n      \"visible\",\n      \"invisible\",\n      \"monstress\",\n      \"tipastress\",\n      \"final\",\n      \"draft\",\n      \"nice\",\n      \"tough\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/engpron#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/engrec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"upgreek\",\n      \"if\": \"upgreek\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"engrec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"engrec{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"EnGrec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnGrec{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upomicron\",\n      \"unusual\": true,\n      \"detail\": \"ο\",\n      \"doc\": \"Small omicron, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/engrec#c\": [\n      \"upright\",\n      \"sloped\",\n      \"upgreek\",\n      \"slgreek\",\n      \"varepsilon\",\n      \"epsilon\",\n      \"vartheta\",\n      \"theta\",\n      \"varpi\",\n      \"pi\",\n      \"varrho\",\n      \"rho\",\n      \"varsigma\",\n      \"sigma\",\n      \"varphi\",\n      \"phi\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/engrec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/enigma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defineenigma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineenigma{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setupenigma\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setupenigma{${1:name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setupenigma\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifenigmaisrunningplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enigmaisrunningplaintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enigmaisrunningplainfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luastringsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enigmasetupcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"escapecatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begingroupcatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endgroupcatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacecatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lettercatcode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setupenigma\": [\n      \"other_chars=${1:boolean}\",\n      \"day_key=${1:string}\",\n      \"rotor_setting=${1:string}\",\n      \"spacing=${1:boolean}\",\n      \"verbose=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/enotez.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endnote[${2:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"endnotemark[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"endnotetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enotezwritemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enmarkstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printendnotes\"\n    },\n    {\n      \"name\": \"printendnotes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printendnotes[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\printendnotes#c,\\\\printendnotes*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printendnotes*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printendnotes*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printendnotes*[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\printendnotes#c,\\\\printendnotes*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AtEveryEndnotesList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryEndnotesList{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextEndnotesList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextEndnotesList{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEveryEndnotesList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEveryEndnotesList{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AfterNextEndnotesList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterNextEndnotesList{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setenotez\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setenotez{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setenotez\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryListSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryListSplit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEveryListSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEveryListSplit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"EnotezCurrentSplitTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewSplitTitleTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewSplitTitleTag{${1:tag}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"enotezlistheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enotezlistheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enotezsplitlistheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enotezdisable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theendnote\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\printendnotes#c,\\\\printendnotes*#c\": [\n      \"description\",\n      \"itemize\"\n    ],\n    \"\\\\setenotez\": [\n      \"list-name=\",\n      \"reset\",\n      \"counter-format=${1|arabic,alph,Alph,roman,Roman,symbols|}\",\n      \"mark-format={${1:code}}\",\n      \"mark-cs={${1:command}}\",\n      \"backref\",\n      \"totoc=${1|subsection,section,chapter,part,auto,false|}\",\n      \"list-heading=\",\n      \"list-style=\",\n      \"list-preamble-skip=\",\n      \"list-postamble-skip=\",\n      \"split=${1|section,chapter,false|}\",\n      \"split-sectioning={${1:csname}}\",\n      \"split-heading=\",\n      \"split-title={${1:token list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/enparen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"protecteddef\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"uniquecounter\"\n    },\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enparen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enparenLeft\"\n    },\n    {\n      \"name\": \"enparenRight\"\n    },\n    {\n      \"name\": \"enparenSetSymbols\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"enparenSetSymbols{${1:level}}{${2:open}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"enparenUnsetSymbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enparenUnsetSymbols{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"enparenBeginContext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enparenBeginContext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"enparenEndContext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enparenEndContext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"enparenSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enparenSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\enparenSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enparenContextDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enparenBeginContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enparenEndContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enparenCheckEmptyStack\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\enparenSetup\": [\n      \"caption\",\n      \"footnote\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/enumerate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/enumitem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlist{${1:name%envname}}{${2:type%keyvals}}{${3:max-depth}}\",\n        \"keys\": [\n          \"\\\\newlist#c,\\\\renewlist#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewlist{${1:name%envname}}{${2:type%keyvals}}{${3:max-depth}}\",\n        \"keys\": [\n          \"\\\\newlist#c,\\\\renewlist#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlist{${1:options}}\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlist*{${1:options}}\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlist[${2:names, levels}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setlist*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlist*[${2:names, levels}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"restartlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restartlist{${1:list name}}\"\n      }\n    },\n    {\n      \"name\": \"EnumitemId\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetLabelAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLabelAlign{${1:value}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"labelindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetEnumerateShortLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetEnumerateShortLabel{${1:key%plain}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"setlistdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlistdepth{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"AddEnumerateCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddEnumerateCounter{${1:LaTeX-cmd}}{${2:internal-cmd}}{${3:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"AddEnumerateCounter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddEnumerateCounter*{${1:LaTeX-cmd}}{${2:internal-cmd}}{${3:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SetEnumitemKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetEnumitemKey{${1:key%specialDef}}{${2:replacement options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetEnumitemValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetEnumitemValue{${1:key%plain}}{${2:string-value}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"SetEnumitemSize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetEnumitemSize{${1:name}}{${2:selector}}\"\n      }\n    },\n    {\n      \"name\": \"DrawEnumitemLabel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate*\",\n      \"if\": \"inline\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"if\": \"inline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\",\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"itemize*\",\n      \"if\": \"inline\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"if\": \"inline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\",\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"description*\",\n      \"if\": \"inline\"\n    },\n    {\n      \"name\": \"description*\",\n      \"if\": \"inline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\",\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"itemize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/enumitem#c\": [\n      \"shortlabels\",\n      \"inline\",\n      \"sizes\",\n      \"ignoredisplayed\",\n      \"includedisplayed\",\n      \"series=override\",\n      \"loadonly\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ],\n    \"\\\\newlist#c,\\\\renewlist#c\": [\n      \"enumerate\",\n      \"itemize\",\n      \"description\",\n      \"enumerate*\",\n      \"itemize*\",\n      \"description*\"\n    ],\n    \"\\\\setlist,\\\\setlist*,\\\\SetEnumitemKey,\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\",\n      \"%enumitemkey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/enumitem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/enverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv-def\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"enverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enverb{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\enverb,\\\\enverb*,\\\\enverbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enverb\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"enverb{${1:keyvals}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\enverb,\\\\enverb*,\\\\enverbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enverb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enverb*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\enverb,\\\\enverb*,\\\\enverbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enverbBody\"\n    },\n    {\n      \"name\": \"enverbExecute\"\n    },\n    {\n      \"name\": \"enverbListing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"enverbListing{${1:env}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"enverbsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enverbsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\enverb,\\\\enverb*,\\\\enverbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\enverb,\\\\enverb*,\\\\enverbsetup\": [\n      \"ignore=${1:integer}\",\n      \"auto-ignore\",\n      \"more-ignore=${1:integer}\",\n      \"bol=${1:tokens}\",\n      \"bol+=${1:tokens}\",\n      \"+bol=${1:tokens}\",\n      \"eol=${1:tokens}\",\n      \"eol+=${1:tokens}\",\n      \"+eol=${1:tokens}\",\n      \"key-handler=${1:code}\",\n      \"key-set=${1:set}\",\n      \"oarg-not-enverb\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/environ.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"trimspaces\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewEnviron\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEnviron{${1:envname}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnviron\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewEnviron{${1:envname}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnviron\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewEnviron{${1:envname}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnviron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}[]\",\n        \"snippet\": \"NewEnviron{${1:envname}}[${3:args}][${4:default}]{${2:definition}}[${5:final code}]\"\n      }\n    },\n    {\n      \"name\": \"RenewEnviron\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewEnviron{${1:envname}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEnviron\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"RenewEnviron{${1:envname}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEnviron\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"RenewEnviron{${1:envname}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEnviron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}[]\",\n        \"snippet\": \"RenewEnviron{${1:envname}}[${3:args}][${4:default}]{${2:definition}}[${5:final code}]\"\n      }\n    },\n    {\n      \"name\": \"BODY\"\n    },\n    {\n      \"name\": \"environfinalcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environfinalcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"environbodyname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environbodyname{${1:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/envlab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printreturnlabels\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printreturnlabels{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetEnvelope\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetEnvelope{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"SetEnvelope\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetEnvelope[${3:top margin}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"SetLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetLabel{${1:W}}{${2:H}}{${3:t}}{${4:l}}{${5:r}}{${6:Nc}}{${7:Nr}}\"\n      }\n    },\n    {\n      \"name\": \"SetBigLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetBigLabel{${1:W}}{${2:H}}{${3:t}}{${4:l}}{${5:r}}{${6:Nc}}{${7:Nr}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLabels{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLabelPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLabelPage{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"EnvelopeLeftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FirstLabel{${1:row}}{${2:column}}\"\n      }\n    },\n    {\n      \"name\": \"suppresslabels\"\n    },\n    {\n      \"name\": \"resumelabels\"\n    },\n    {\n      \"name\": \"suppressonelabel\"\n    },\n    {\n      \"name\": \"resumeonelabel\"\n    },\n    {\n      \"name\": \"ChangeEnvelope\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChangeEnvelope{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ChangeEnvelope\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ChangeEnvelope[${3:top margin}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ChangeLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"ChangeLabel{${1:W}}{${2:H}}{${3:t}}{${4:l}}{${5:r}}{${6:Nc}}{${7:Nr}}\"\n      }\n    },\n    {\n      \"name\": \"ChangeBigLabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"ChangeBigLabel{${1:W}}{${2:H}}{${3:t}}{${4:l}}{${5:r}}{${6:Nc}}{${7:Nr}}\"\n      }\n    },\n    {\n      \"name\": \"re\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"re{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"ReName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSwait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnvelopeHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnvelopeTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnvelopeWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FromAddressHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FromAddressLeftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FromAddressTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FromAddressWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelLeftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelRightMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintAddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintAddress{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintBarCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintBarCode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"PrintBigLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrintBigLabel{${1:return address}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEnvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrintEnvelope{${1:return address}}{${2:address}}\"\n      }\n    },\n    {\n      \"name\": \"PrintLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printonelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintReturnAddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintReturnAddress{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PSautotray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSEnvelopeTray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelCountCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelCountRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelMaxCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelMaxRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelOffsetCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLabelOffsetRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ToAddressLeftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ToAddressTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ToAddressWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/envlab#c\": [\n      \"businessenvelope\",\n      \"executiveenvelope\",\n      \"bookletenvelope\",\n      \"personalenvelope\",\n      \"c6envelope\",\n      \"c65envelope\",\n      \"c5envelope\",\n      \"dlenvelope\",\n      \"avery5160label\",\n      \"avery5161label\",\n      \"avery5162label\",\n      \"avery5163label\",\n      \"avery5164label\",\n      \"herma4625label\",\n      \"avery5262label\",\n      \"avery5163biglabel\",\n      \"avery5164biglabel\",\n      \"rotateenvelopes\",\n      \"norotateenvelopes\",\n      \"centerenvelopes\",\n      \"leftenvelopes\",\n      \"rightenvelopes\",\n      \"customenvelopes\",\n      \"printbarcodes\",\n      \"noprintbarcodes\",\n      \"alwaysbarcodes\",\n      \"noalwaysbarcodes\",\n      \"capaddress\",\n      \"nocapaddress\",\n      \"printreturnaddress\",\n      \"noprintreturnaddress\",\n      \"pswait\",\n      \"nopswait\",\n      \"psautotray\",\n      \"nopsautotray\",\n      \"re\",\n      \"nore\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/envlab#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/envmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MultiLineIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MultiLineStarIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SystemColSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SystemBraceSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SystemStarIndent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Equation\"\n    },\n    {\n      \"name\": \"Equation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"equation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"equation*\"\n    },\n    {\n      \"name\": \"MultiLine\"\n    },\n    {\n      \"name\": \"MultiLine\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"MultiLine*\"\n    },\n    {\n      \"name\": \"System\"\n    },\n    {\n      \"name\": \"System\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"System*\"\n    },\n    {\n      \"name\": \"EqSystem\"\n    },\n    {\n      \"name\": \"EqSystem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"EqSystem*\"\n    },\n    {\n      \"name\": \"EqSystem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/envmath#c\": [\n      \"RedefEquation\",\n      \"StdEquation\",\n      \"RedefBrackets\",\n      \"StdBrackets\",\n      \"Standard\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/envmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eolang.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"iexec\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibraryarrows.meta\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phiq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phiq{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eolang\"\n    },\n    {\n      \"name\": \"phic\"\n    },\n    {\n      \"name\": \"xmir\"\n    },\n    {\n      \"name\": \"phiSlot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phiSlot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"phiConst\"\n    },\n    {\n      \"name\": \"phiWave\"\n    },\n    {\n      \"name\": \"phiDotted\"\n    },\n    {\n      \"name\": \"phiOset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phiOset{${1:over}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"phiUset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phiUset{${1:under}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"phiMany\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phiMany{${1:arg}}{${2:under}}{${3:over}}\"\n      }\n    },\n    {\n      \"name\": \"phiSaveTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phiSaveTo{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sodgSaveTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sodgSaveTo{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eoAnon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eoAnon{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"eoAnon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eoAnon[${2:substitution}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"phiEOL\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"phiquation\"\n    },\n    {\n      \"name\": \"phiquation*\"\n    },\n    {\n      \"name\": \"sodg\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/eolang#c\": [\n      \"tmpdir=${1:path}\",\n      \"nocomments\",\n      \"anonymous\",\n      \"noshell\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eolang#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eolgrab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eolgrab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eolgrab{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"eolgrabopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eolgrabopt{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epcqrcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calculator\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epcqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epcqr{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\epcqr\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\epcqr\": [\n      \"bic=${1:BIC}\",\n      \"name=${1:text}\",\n      \"iban=${1:IBAN}\",\n      \"amount=${1:number}\",\n      \"reason=${1:text}\",\n      \"ref=${1:text}\",\n      \"text=${1:text}\",\n      \"information=${1:text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multiputlist\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"multiputlist(${2:x},${3:y})(${4:Δx},${5:Δy}){${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"multiputlist\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"multiputlist(${3:x},${4:y})(${5:Δx},${6:Δy})[${2:pos}]{${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"lopoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrixput\",\n      \"arg\": {\n        \"format\": \"()(){}(){}{}\",\n        \"snippet\": \"matrixput(${4:x},${5:y})(${6:Δx1},${7:Δy1}){${1:n1}}(${8:Δx2},${9:Δy2}){${2:n2}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"grid(${1:width},${2:height})(${3:Δwidth},${4:Δheight})\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"grid(${2:width},${3:height})(${4:Δwidth},${5:Δheight})[${1:x0,y0}]\"\n      }\n    },\n    {\n      \"name\": \"dashlinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawlinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"jput(${2:x},${3:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"picsquare\"\n    },\n    {\n      \"name\": \"putfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putfile{${1:file}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"sqrtandstuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sqrtandstuff{${1:Δx}}{${2:Δy}}{${3:dotgap}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dottedjoin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dotgap}}\"\n      }\n    },\n    {\n      \"name\": \"dottedjoin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:character}]{${1:dotgap}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dashlength}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:dashlength}}[${2:dashgap}]\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:stretch}]{${1:dashlength}}\"\n      }\n    },\n    {\n      \"name\": \"dashjoin\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:stretch}]{${1:dashlength}}[${3:dashgap}]\"\n      }\n    },\n    {\n      \"name\": \"drawjoin\"\n    },\n    {\n      \"name\": \"drawjoin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:stretch}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epigrafica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pxfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"trademark\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epigraph-keys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"conditionals\"\n    },\n    {\n      \"name\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraph[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\epigraph,\\\\qitem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qitem[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\epigraph,\\\\qitem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"beforeepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterepigraphskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphtextindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphauthorsourceindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphquotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphtranslationfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"epigraphs\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\epigraph,\\\\qitem\": [\n      \"author={${1:author}}\",\n      \"source={${1:source}}\",\n      \"translation={${1:translation text}}\",\n      \"etc={${1:text}}\",\n      \"after skip=\",\n      \"before skip=\",\n      \"author and source indent=\",\n      \"text indent=\",\n      \"width=\",\n      \"style=${1:font commands}\",\n      \"quote style=${1:font commands}\",\n      \"translation style=${1:font commands}\",\n      \"dash={${1:dash code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epigraph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraph{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"qitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qitem{${1:text}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphnoindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphnoindentfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphwidth\"\n    },\n    {\n      \"name\": \"textflush\"\n    },\n    {\n      \"name\": \"epigraphflush\"\n    },\n    {\n      \"name\": \"sourceflush\"\n    },\n    {\n      \"name\": \"epigraphsize\"\n    },\n    {\n      \"name\": \"epigraphrule\"\n    },\n    {\n      \"name\": \"beforeepigraphskip\"\n    },\n    {\n      \"name\": \"afterepigraphskip\"\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epigraphhead[${2:distance}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphhead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dropchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropchapter{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"undodrop\"\n    },\n    {\n      \"name\": \"cleartoevenpage\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"epigraphs\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epiolmec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EOafter\"\n    },\n    {\n      \"name\": \"EOandThen\"\n    },\n    {\n      \"name\": \"EOAppear\"\n    },\n    {\n      \"name\": \"EOBeardMask\"\n    },\n    {\n      \"name\": \"EOBedeck\"\n    },\n    {\n      \"name\": \"EOBlood\"\n    },\n    {\n      \"name\": \"EObrace\"\n    },\n    {\n      \"name\": \"EObuilding\"\n    },\n    {\n      \"name\": \"EOBundle\"\n    },\n    {\n      \"name\": \"EOChop\"\n    },\n    {\n      \"name\": \"EOChronI\"\n    },\n    {\n      \"name\": \"EOCloth\"\n    },\n    {\n      \"name\": \"EODealWith\"\n    },\n    {\n      \"name\": \"EODeer\"\n    },\n    {\n      \"name\": \"EOeat\"\n    },\n    {\n      \"name\": \"EOflint\"\n    },\n    {\n      \"name\": \"EOflower\"\n    },\n    {\n      \"name\": \"EOFold\"\n    },\n    {\n      \"name\": \"EOGod\"\n    },\n    {\n      \"name\": \"EOGoUp\"\n    },\n    {\n      \"name\": \"EOgovernor\"\n    },\n    {\n      \"name\": \"EOGuise\"\n    },\n    {\n      \"name\": \"EOHallow\"\n    },\n    {\n      \"name\": \"EOja\"\n    },\n    {\n      \"name\": \"EOjaguar\"\n    },\n    {\n      \"name\": \"EOje\"\n    },\n    {\n      \"name\": \"EOji\"\n    },\n    {\n      \"name\": \"EOJI\"\n    },\n    {\n      \"name\": \"EOjo\"\n    },\n    {\n      \"name\": \"EOju\"\n    },\n    {\n      \"name\": \"EOkak\"\n    },\n    {\n      \"name\": \"EOke\"\n    },\n    {\n      \"name\": \"EOki\"\n    },\n    {\n      \"name\": \"EOkij\"\n    },\n    {\n      \"name\": \"EOKing\"\n    },\n    {\n      \"name\": \"EOknottedCloth\"\n    },\n    {\n      \"name\": \"EOknottedClothStraps\"\n    },\n    {\n      \"name\": \"EOko\"\n    },\n    {\n      \"name\": \"EOku\"\n    },\n    {\n      \"name\": \"EOkuu\"\n    },\n    {\n      \"name\": \"EOLetBlood\"\n    },\n    {\n      \"name\": \"EOloinCloth\"\n    },\n    {\n      \"name\": \"EOlongLipII\"\n    },\n    {\n      \"name\": \"EOLord\"\n    },\n    {\n      \"name\": \"EOLose\"\n    },\n    {\n      \"name\": \"EOma\"\n    },\n    {\n      \"name\": \"EOmacaw\"\n    },\n    {\n      \"name\": \"EOmacawI\"\n    },\n    {\n      \"name\": \"EOme\"\n    },\n    {\n      \"name\": \"EOmexNew\"\n    },\n    {\n      \"name\": \"EOmi\"\n    },\n    {\n      \"name\": \"EOMiddle\"\n    },\n    {\n      \"name\": \"EOmonster\"\n    },\n    {\n      \"name\": \"EOMountain\"\n    },\n    {\n      \"name\": \"EOmuu\"\n    },\n    {\n      \"name\": \"EOna\"\n    },\n    {\n      \"name\": \"EOne\"\n    },\n    {\n      \"name\": \"EOni\"\n    },\n    {\n      \"name\": \"EOnow\"\n    },\n    {\n      \"name\": \"EOnu\"\n    },\n    {\n      \"name\": \"EOnuu\"\n    },\n    {\n      \"name\": \"EOofficerI\"\n    },\n    {\n      \"name\": \"EOofficerII\"\n    },\n    {\n      \"name\": \"EOofficerIII\"\n    },\n    {\n      \"name\": \"EOofficerIV\"\n    },\n    {\n      \"name\": \"EOpa\"\n    },\n    {\n      \"name\": \"EOpak\"\n    },\n    {\n      \"name\": \"EOPatron\"\n    },\n    {\n      \"name\": \"EOPatronII\"\n    },\n    {\n      \"name\": \"EOpe\"\n    },\n    {\n      \"name\": \"EOpenis\"\n    },\n    {\n      \"name\": \"EOpi\"\n    },\n    {\n      \"name\": \"EOPierce\"\n    },\n    {\n      \"name\": \"EOPlant\"\n    },\n    {\n      \"name\": \"EOPlay\"\n    },\n    {\n      \"name\": \"EOpo\"\n    },\n    {\n      \"name\": \"EOpriest\"\n    },\n    {\n      \"name\": \"EOPrince\"\n    },\n    {\n      \"name\": \"EOpu\"\n    },\n    {\n      \"name\": \"EOpuu\"\n    },\n    {\n      \"name\": \"EOpuuk\"\n    },\n    {\n      \"name\": \"EORain\"\n    },\n    {\n      \"name\": \"EOSa\"\n    },\n    {\n      \"name\": \"EOsa\"\n    },\n    {\n      \"name\": \"EOsacrifice\"\n    },\n    {\n      \"name\": \"EOSaw\"\n    },\n    {\n      \"name\": \"EOScorpius\"\n    },\n    {\n      \"name\": \"EOset\"\n    },\n    {\n      \"name\": \"EOsi\"\n    },\n    {\n      \"name\": \"EOSi\"\n    },\n    {\n      \"name\": \"EOsing\"\n    },\n    {\n      \"name\": \"EOSini\"\n    },\n    {\n      \"name\": \"EOskin\"\n    },\n    {\n      \"name\": \"EOSky\"\n    },\n    {\n      \"name\": \"EOskyAnimal\"\n    },\n    {\n      \"name\": \"EOskyPillar\"\n    },\n    {\n      \"name\": \"EOsnake\"\n    },\n    {\n      \"name\": \"EOSo\"\n    },\n    {\n      \"name\": \"EOSpan\"\n    },\n    {\n      \"name\": \"EOSprinkle\"\n    },\n    {\n      \"name\": \"EOstar\"\n    },\n    {\n      \"name\": \"EOStarWarrior\"\n    },\n    {\n      \"name\": \"EOstarWarrior\"\n    },\n    {\n      \"name\": \"EOstep\"\n    },\n    {\n      \"name\": \"EOSu\"\n    },\n    {\n      \"name\": \"EOsu\"\n    },\n    {\n      \"name\": \"EOsun\"\n    },\n    {\n      \"name\": \"EOsuu\"\n    },\n    {\n      \"name\": \"EOSuu\"\n    },\n    {\n      \"name\": \"EOta\"\n    },\n    {\n      \"name\": \"EOte\"\n    },\n    {\n      \"name\": \"EOthrone\"\n    },\n    {\n      \"name\": \"EOti\"\n    },\n    {\n      \"name\": \"EOtime\"\n    },\n    {\n      \"name\": \"EOTime\"\n    },\n    {\n      \"name\": \"EOTitle\"\n    },\n    {\n      \"name\": \"EOTitleII\"\n    },\n    {\n      \"name\": \"EOTitleIV\"\n    },\n    {\n      \"name\": \"EOto\"\n    },\n    {\n      \"name\": \"EOtu\"\n    },\n    {\n      \"name\": \"EOtuki\"\n    },\n    {\n      \"name\": \"EOtukpa\"\n    },\n    {\n      \"name\": \"EOturtle\"\n    },\n    {\n      \"name\": \"EOtuu\"\n    },\n    {\n      \"name\": \"EOtza\"\n    },\n    {\n      \"name\": \"EOtze\"\n    },\n    {\n      \"name\": \"EOtzetze\"\n    },\n    {\n      \"name\": \"EOtzi\"\n    },\n    {\n      \"name\": \"EOtzu\"\n    },\n    {\n      \"name\": \"EOtzuu\"\n    },\n    {\n      \"name\": \"EOundef\"\n    },\n    {\n      \"name\": \"EOvarBeardMask\"\n    },\n    {\n      \"name\": \"EOvarja\"\n    },\n    {\n      \"name\": \"EOvarji\"\n    },\n    {\n      \"name\": \"EOvarki\"\n    },\n    {\n      \"name\": \"EOvarkuu\"\n    },\n    {\n      \"name\": \"EOvarni\"\n    },\n    {\n      \"name\": \"EOvarpa\"\n    },\n    {\n      \"name\": \"EOvarSi\"\n    },\n    {\n      \"name\": \"EOvarsi\"\n    },\n    {\n      \"name\": \"EOvartza\"\n    },\n    {\n      \"name\": \"EOvarwuu\"\n    },\n    {\n      \"name\": \"EOvarYear\"\n    },\n    {\n      \"name\": \"EOvi\"\n    },\n    {\n      \"name\": \"EOwa\"\n    },\n    {\n      \"name\": \"EOwe\"\n    },\n    {\n      \"name\": \"EOwi\"\n    },\n    {\n      \"name\": \"EOwo\"\n    },\n    {\n      \"name\": \"EOwuu\"\n    },\n    {\n      \"name\": \"EOxii\"\n    },\n    {\n      \"name\": \"EOxviii\"\n    },\n    {\n      \"name\": \"EOya\"\n    },\n    {\n      \"name\": \"EOyaj\"\n    },\n    {\n      \"name\": \"EOye\"\n    },\n    {\n      \"name\": \"EOYear\"\n    },\n    {\n      \"name\": \"EOyuu\"\n    },\n    {\n      \"name\": \"EOzero\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epltxfn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"everyfootnote\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epsdice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epsdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epsdice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"epsdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"epsdice[${2:black}]{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/epspdfconversion.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epstopdf-base\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epspdfconversionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epspdfconversionsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/epspdfconversion#c,\\\\epspdfconversionsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"epspdfconversioncmdline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epspdfconversioncmdline{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"CheckOutdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MinorVersion\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/epspdfconversion#c,\\\\epspdfconversionsetup\": [\n      \"cmd=${1:command}\",\n      \"gray\",\n      \"GRAY\",\n      \"grey\",\n      \"GREY\",\n      \"nogrey\",\n      \"nogray\",\n      \"target=${1|default,printer,prepress,screen,ebook|}\",\n      \"default\",\n      \"printer\",\n      \"prepress\",\n      \"screen\",\n      \"ebook\",\n      \"pdfversion=${1|default,1.2,1.3,1.4|}\",\n      \"bbox\",\n      \"pdftopdf\",\n      \"pstopdf\",\n      \"pdftops\",\n      \"nopdftops\",\n      \"hires\",\n      \"no-hires\",\n      \"custom={${1:GhostScript options}}\",\n      \"psoptions={${1:pdftops options}}\",\n      \"pagenumber=${1:number}\",\n      \"simple\",\n      \"help\",\n      \"update\",\n      \"verbose\",\n      \"prefersuffix\",\n      \"suffix=${1:suffix}\",\n      \"outdir=${1:directory}\",\n      \"prepend\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/epspdfconversion#c,\\\\epspdfconversionsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/epstopdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"grfext\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"epstopdfsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epstopdfsetup{${1:key-value-list%keyvals}}\",\n        \"keys\": [\n          \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"OutputFile\"\n    },\n    {\n      \"name\": \"SourceFile\"\n    },\n    {\n      \"name\": \"SourceExt\"\n    },\n    {\n      \"name\": \"epstopdfDeclareGraphicsRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"epstopdfDeclareGraphicsRule{${1:ext}}{${2:type}}{${3:read-file}}{${4:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"epstopdfcall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epstopdfcall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AppendGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AppendGraphicsExtensions{${1:ext}}\"\n      }\n    },\n    {\n      \"name\": \"PrependGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrependGraphicsExtensions{${1:ext}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\": [\n      \"update\",\n      \"append\",\n      \"prepend\",\n      \"outdir=${1:directory}\",\n      \"suffix=${1:string}\",\n      \"prefersuffix\",\n      \"program@epstopdf=${1:program}\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\epstopdfsetup,\\\\usepackage/epstopdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eq-fetchbbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exerquiz\"\n    },\n    {\n      \"name\": \"fetchbibpes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qFP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qFP{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"qFP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qFP[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\qFP,\\\\sFP,\\\\qFV,\\\\sFV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sFP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sFP{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"sFP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sFP[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\qFP,\\\\sFP,\\\\qFV,\\\\sFV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qFV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qFV{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"qFV\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qFV[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\qFP,\\\\sFP,\\\\qFV,\\\\sFV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sFV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sFV{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"sFV\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sFV[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\qFP,\\\\sFP,\\\\qFV,\\\\sFV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useNumbersOn\"\n    },\n    {\n      \"name\": \"useNumbersOff\"\n    },\n    {\n      \"name\": \"adjCAB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjCAB{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"adjCAB\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adjCAB[${2:hfill code}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"adjTBX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjTBX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"adjTBX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adjTBX[${2:hfill code}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"priorRBT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorRBT{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"priorPsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorPsg{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setRBTWidthTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRBTWidthTo{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"setRBTWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRBTWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"RBTWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CATorTBX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CATorTBX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eqfQorS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presetMBbl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"BblPsg\"\n    },\n    {\n      \"name\": \"BblVrs\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\qFP,\\\\sFP,\\\\qFV,\\\\sFV\": [\n      \"abbr=${1|esword,none,long,short|}\",\n      \"roman\",\n      \"from=${1|KVJ,KVJ+,ISV|}\",\n      \"alt=${1:word}\",\n      \"alt*={${1:word1,word2,...}}\",\n      \"transl=${1:text}\",\n      \"from*=${1|KJV,KJV+,ISV|}\",\n      \"pcolor=\",\n      \"pformat=${1:format cmds}\",\n      \"delims=${1:<tok1><tok2>}\",\n      \"enclosewith=${1:<tok1><tok2>\\\\quote}\",\n      \"format=${1:format cmds}\",\n      \"caps\",\n      \"showfirst\",\n      \"shownone\",\n      \"useperiod\",\n      \"citeatend\",\n      \"nocite\",\n      \"priorref=\",\n      \"ltxquotes\",\n      \"replace={${1:find1}}{${2:replace1}}${3:{find2}{replace2}...}\",\n      \"localdefs={${1:localdefs}}\",\n      \"typeset=\",\n      \"typeset*=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eq-pin2corr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exerquiz\"\n    },\n    {\n      \"name\": \"eq-save\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"classPINVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classPINVar{${1:class pin var}}\"\n      }\n    },\n    {\n      \"name\": \"CorrBtnActionsJSSave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CorrBtnActionsPwdJS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declPINId\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declPINId{${1:pin num}}{${2:hash string}}\"\n      }\n    },\n    {\n      \"name\": \"declRePINId\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declRePINId{${1:pin num}}{${2:hash string}}\"\n      }\n    },\n    {\n      \"name\": \"eQzBtnActnsPIN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eQzBtnActnsSave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FreezeQuizfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FreezeQuiztrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FreezeThisQuiz\"\n    },\n    {\n      \"name\": \"FreezeThisQuizNot\"\n    },\n    {\n      \"name\": \"hashPINId\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hashRePINId\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFreezeQuiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPINSecurity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPINshowScore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeEndQuizPIN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nMaxRetakes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nMaxRetakes{${1:qz name}}\"\n      }\n    },\n    {\n      \"name\": \"numPINId\"\n    },\n    {\n      \"name\": \"numRePINId\"\n    },\n    {\n      \"name\": \"PINclassPV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINgobii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINgobiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINSecurityfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINSecuritytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINshowScorefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PINshowScoretrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postSubmitQuizPIN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qzResetTally\"\n    },\n    {\n      \"name\": \"qzResetTally\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qzResetTally[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"qzTallyTotalDefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorBeginQuiz\"\n    },\n    {\n      \"name\": \"restoreCorrBtn\"\n    },\n    {\n      \"name\": \"restoreEndQuiz\"\n    },\n    {\n      \"name\": \"SaveAndSendMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setMaxRetakes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMaxRetakes{${1:qz name}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"showScoreOff\"\n    },\n    {\n      \"name\": \"showScoreOn\"\n    },\n    {\n      \"name\": \"useBeginQuizCnt\"\n    },\n    {\n      \"name\": \"useBeginQuizPIN\"\n    },\n    {\n      \"name\": \"usePINCorrBtn\"\n    },\n    {\n      \"name\": \"useWarnEndQuiz\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eq-pin2corr#c\": [\n      \"showscore\",\n      \"!showscore\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eq-pin2corr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eq-save.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"exerquiz\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"sField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ooField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ooField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ooField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ooField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"sooField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sooField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"sooField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sooField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"declareScorePhrase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareScorePhrase{${1:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pooField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pooField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pooField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pooField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psooField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psooField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psooField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psooField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAllField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clearAllField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clearAllField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"clearAllField[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"nameField\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nameField{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"nameField\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nameField[${4:eforms params}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"BeginNoPeeking\"\n    },\n    {\n      \"name\": \"EnterNameFirstMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqerrUnfinishQuizAtSave\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eq-save#c\": [\n      \"devmode\",\n      \"!devmode\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eq-save#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eq2db.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"exerquiz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"htmlSubmitType\",\n      \"if\": \"eqEmail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertHTMLs\",\n      \"if\": \"eqEmail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htmlSubmitType\",\n      \"if\": \"eqText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertHTMLs\",\n      \"if\": \"eqText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addHiddenTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addHiddenTextField[${3:eforms params}]{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"addHiddenTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addHiddenTextField{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"addtohidden\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basicFieldsSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hiddenTextField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hiddenTextField[${3:eforms params}]{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"hiddenTextField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hiddenTextField{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"populateHiddenField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"populateHiddenField{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"populatehiddenfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtnURL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtnURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"thisRtnURL\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eq2db#c\": [\n      \"eqRecord\",\n      \"eqEmail\",\n      \"eqText\",\n      \"taoas\",\n      \"custom=${1:file name}\",\n      \"tagged\",\n      \"submitAs=${1|FDF,HTML,XML|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eq2db#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eqell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ece\"\n    },\n    {\n      \"name\": \"que\"\n    },\n    {\n      \"name\": \"eqe\"\n    },\n    {\n      \"name\": \"qee\"\n    },\n    {\n      \"name\": \"ele\"\n    },\n    {\n      \"name\": \"elq\"\n    },\n    {\n      \"name\": \"eco\"\n    },\n    {\n      \"name\": \"coe\"\n    },\n    {\n      \"name\": \"beb\"\n    },\n    {\n      \"name\": \"vev\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"aeb-comment\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"email\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"email\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"links\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"links\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"pdf\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"online\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"online\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"InitSeedValue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeSeedToSolnFile\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputRandomSeed\",\n      \"if\": \"allowrandomize\"\n    },\n    {\n      \"name\": \"useRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRandomSeed{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifsaveseed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedtrue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedfalse\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFreeze\",\n      \"if\": \"allowrandomize\"\n    },\n    {\n      \"name\": \"randomi\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbookOpts\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbookOpts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\textbookOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotPage\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"annotThePage\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annotThePage{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"ANS\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"ANSFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ANSFmt{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"autoInsSolns\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"bGrpANS\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bGrpANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"bpartsmrk\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapHeadSolnFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapHeadSolnFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterexercisesfalse\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"chapterexercisestrue\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"chaptersolutions\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"chkmarginboxwidth\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearBotMargin\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"clearTopMargin\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"cngMargHeadColorTo\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cngMargHeadColorTo{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"convertChapHeadToChapters\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"currProbHead\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayProbNumOnce\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"eGrpANS\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eGrpANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"epartsmrk\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqedecPointSoln\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqedsplyOnlyFrst\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqedsplyOnlyFrst{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"eqeGenProbNumfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeGenProbNumtrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeifnext\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqeifnext{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquesitemsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquesitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquesparsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquesparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquestopsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquestopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqExtArg\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examenvfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examenvtrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplenoname\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"exercisesAtEndOfChapter\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"exPrtsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fbInsSolnsStyle\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstemitfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstemittrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstPartLtr\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frstProbNumShownfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frstProbNumShowntrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftbFmtChapter\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftbFmtChapter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ftbInputBookAux\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftbInputBookAux{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ftbInputSolnFiles\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"ftbInputSolnFiles\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ftbInputSolnFiles[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"ftblabel\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftblabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gobblelabel\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grpANSDelimiter\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangSolWPrtsFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangSolWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"ifchapterexercises\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"ifeqeGenProbNum\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexamenv\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstemit\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffrstProbNumShown\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifiscarryover\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisinlineans\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisinstred\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifismarginans\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisstudented\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmarginsonleft\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowlsols\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowssols\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifWithinANSGrp\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initChapAfterSolns\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"insertpageifcarryover\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"insertpageifcarryover\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertpageifcarryover[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"insMargHead\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insMargHead[${2:mark text%text}]{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insMargHead\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insMargHead{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insMidMarg\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insMidMarg{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"insProbHead\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insProbHead[${2:mark text%text}]{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insProbHead\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insProbHead{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"iscarryoverfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iscarryovertrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinlineansfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinlineanstrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinstredfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinstredtrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ismarginansfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ismarginanstrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isstudentedfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isstudentedtrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsonleftfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsonlefttrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarParBoxFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marparboxwidth\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marparboxwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"midMargFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midMargFmt{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"mrgDecPt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgDecPt{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"mrgDigitFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgDigitFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"mrgNumPrtsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgNumPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mrgPartFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgPartFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"mrgPrtsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewCommentCutFile\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noProbHeader\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postChapSolnHead\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preChapSolnHead\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"probSet\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probSet{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"resetMargHeadColor\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"RestoreCommentCutFile\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreFromChapAfterSolns\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"restorelabel\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreLastBotMargin\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"restoreLastTopMargin\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"restorePageLayout\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"saveBasicLayoutParams\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setBotMargin\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBotMargin{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setFullWidthHeader\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"setFullWidthLayout\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"setMarIndents\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setMarIndents[${3:formatting}]{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setMarIndents\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMarIndents{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setSolnIndent\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setSolnIndent[${3:formatting}]{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setSolnIndent\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setSolnIndent{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setTopMargin\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTopMargin{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"showlsolsfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlsolstrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showssolsfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showssolstrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solDecPt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solDecPt{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"solnGutter\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solnsAtEndcomment\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solNumPrtsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solNumPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"solPrtsep\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"solWoPrtsFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solWoPrtsFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"solWPrtsFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"solWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"tballowAllNums\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"tbBaseName\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbBotMargin\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbcontinued\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"tbfilterOutEvenNums\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"tblastpageshipped\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbMakeFinalCalcs\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbMarginHeaderFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbMarginHeaderFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbmarparboxwidth\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbminskipbtnlayers\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbmrgpartwdth\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbplaceMargins\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbPostMarginHeader\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbprbNumFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbprbNumFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"tbPreMarginHeader\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSaveBotMargin\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSaveTopMargin\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSetupForMargins\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbsolnpartwdth\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbsolWoPrtsFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsolWoPrtsFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"tbsolWPrtsFmt\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbsolWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"tbSourceFile\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbTopMargin\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theeqquestionnoi\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexampleno\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisPart\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleInstrAns\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOffFTBShipout\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOffMarAnsOnAnsInline\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"turnOnFTBShipout\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOnMarAnsOffAnsInline\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"WithinANSGrpfalse\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinANSGrptrue\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeallsolutions\",\n      \"if\": \"fortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtChapSolnHead\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrtChapSolnHead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aboveexskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aboveexskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"acvspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acvspace{${1:vspace%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjDisplayBelow\"\n    },\n    {\n      \"name\": \"adjDisplayBelowPlus\"\n    },\n    {\n      \"name\": \"aebshowgraylettersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aebshowgrayletterstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowcircmcfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowcircmctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AllowFitItIn\"\n    },\n    {\n      \"name\": \"allowRandomizedChoices\"\n    },\n    {\n      \"name\": \"allowZeroTotals\"\n    },\n    {\n      \"name\": \"altTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aNewPage\"\n    },\n    {\n      \"name\": \"annotContStr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerkeyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerkeytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"auto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autoExamName\"\n    },\n    {\n      \"name\": \"autotabOn\"\n    },\n    {\n      \"name\": \"bChoices\"\n    },\n    {\n      \"name\": \"bChoices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bChoices[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bChoices#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"belowexskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belowexskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"belowexsolnskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bItemInsert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bItemInsert{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"bMatchChoices\"\n    },\n    {\n      \"name\": \"bopCoverPageText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bopText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bProbInsert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bProbInsert{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"calcFromMarkers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"calcFromMarkers[${3:formatting}]{${1:name2}}{${2:name3}}\"\n      }\n    },\n    {\n      \"name\": \"calcFromMarkers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"calcFromMarkers{${1:name2}}{${2:name3}}\"\n      }\n    },\n    {\n      \"name\": \"calcQsBtwnMarkers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"calcQsBtwnMarkers[${2:mrk2}]{${1:mrk1}}\"\n      }\n    },\n    {\n      \"name\": \"calcQsBtwnMarkers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calcQsBtwnMarkers{${1:mrk1}}\"\n      }\n    },\n    {\n      \"name\": \"cfooteqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfooteqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cheadeqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cheadeqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cheadSol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cheadSol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chngToNoSolns\"\n    },\n    {\n      \"name\": \"ckboxColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckboxColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ckcirColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckcirColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ckSolnOpt\"\n    },\n    {\n      \"name\": \"copyrightyears\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyears{${1:years}}\"\n      }\n    },\n    {\n      \"name\": \"coverpageSubjectFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverpageSubjectFmt{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"coverpageTitleFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverpageTitleFmt{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"cpSetSumryWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpSetSumryWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"cpSumryGrade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cpSumryHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cpSumryPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cpSumryPts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cpSumryTotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqCopiedQues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqIsActivefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqIsActivetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqQS*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cqQS*{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"cqQS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cqQS{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"cqQSA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cqQSA{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"cqqsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqqstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqQSV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cqQSV{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"cqSAfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cqSAtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customNaming\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"customNaming{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"defaultInstructions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultInstructions{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defaultTFwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayworkareafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayworkareatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoNotFitItIn\"\n    },\n    {\n      \"name\": \"doNotRandomizeChoices\"\n    },\n    {\n      \"name\": \"DoNotRecordThisExamfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoNotRecordThisExamtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoNum\"\n    },\n    {\n      \"name\": \"duedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duedate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"eachLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eachLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eAns\"\n    },\n    {\n      \"name\": \"eChoices\"\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"EmailCourseName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmailCourseName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EmailExamName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmailExamName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EmailSubject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmailSubject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eMatchChoices\"\n    },\n    {\n      \"name\": \"emitMessageNearBottom*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emitMessageNearBottom*[${2:vspace%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emitMessageNearBottom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emitMessageNearBottom*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emitMessageNearBottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emitMessageNearBottom[${2:vspace%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emitMessageNearBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emitMessageNearBottom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"encloseProblemsWith\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encloseProblemsWith{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"endlongTitleText\"\n    },\n    {\n      \"name\": \"endshortTitleText\"\n    },\n    {\n      \"name\": \"eoeTotalOff\"\n    },\n    {\n      \"name\": \"eoeTotalOn\"\n    },\n    {\n      \"name\": \"eProbInsert\"\n    },\n    {\n      \"name\": \"eqCommentsColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqCommentsColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqCommentsColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqCommentsColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqCommentsColorBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqCommentsColorBody{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqCommentsColorBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqCommentsColorBody{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqcustomdesignfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcustomdesigntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQEcalculateAllTotals\"\n    },\n    {\n      \"name\": \"eqeCurrProb\"\n    },\n    {\n      \"name\": \"eqedbfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqedbtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqEmail\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqEmail[${2:eforms params}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqEmail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqEmail{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqEndExamTotalColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqEndExamTotalColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqeonlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeonlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqequesitemsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqequesitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqequeslistparindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqequeslistparindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqequesparsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqequesparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqequestopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqequestopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqeSetExamPageParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeSumryHoriz\"\n    },\n    {\n      \"name\": \"eqeSumryVert\"\n    },\n    {\n      \"name\": \"eqevtranstotbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexammargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqexammargin[${2:formatting}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"eqexammargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexammargin{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"eqExamName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqExamName[${2:eforms params}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqExamName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqExamName{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqExamPageLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexcoverpagedesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqfititin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqfititin{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"eqforinstrfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforinstrtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforpaperfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforpapertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqfortextbookfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqfortextbooktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqglobalversionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqglobalversiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlocalversionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlocalversiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqobeylocalversionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqobeylocalversiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqpanelbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqpartsitemsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqpartsitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqSID\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqSID[${2:eforms params}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqSID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqSID{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqsolutionshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equsecolorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equsecolortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqWLSpacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqWLSpacing{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqWriteLineColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqWriteLineColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eqwritetomarginsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqwritetomarginstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exam\"\n    },\n    {\n      \"name\": \"examAnsKeyLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examAnsKeyLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examEmailLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examEmailLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examNameLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examNameLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"examSIDLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examSIDLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"examSolnHeadFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examSolnHeadFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"exerSolnHeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"exerSolnHeader{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"exerSolnInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerSolnsHeadnToc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exlabel\"\n    },\n    {\n      \"name\": \"exlabelformat\"\n    },\n    {\n      \"name\": \"exlabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exrtnlabelformat\"\n    },\n    {\n      \"name\": \"exsllabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsllabelformatwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exSolafterDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exSolafterDefault{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ExSolutionsSetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExSolutionsSettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fillin[${3:options%keyvals}]{${1:width}}{${2:answer%text}}\",\n        \"keys\": [\n          \"\\\\fillin,\\\\fillineol,\\\\fillineol*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillin{${1:width}}{${2:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fillinColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillinColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fillineol*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fillineol*{${1:phrase%text}}[${3:options%keyvals}]{${2:answer%text}}\",\n        \"keys\": [\n          \"\\\\fillin,\\\\fillineol,\\\\fillineol*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fillineol*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillineol*{${1:phrase%text}}{${2:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fillineol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fillineol{${1:phrase%text}}[${3:options%keyvals}]{${2:answer%text}}\",\n        \"keys\": [\n          \"\\\\fillin,\\\\fillineol,\\\\fillineol*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fillineol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillineol{${1:phrase%text}}{${2:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fillInFormatDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillinWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillinWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fillTypeBlankLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillTypeDashLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillTypeDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillTypeDots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillTypeGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillTypeHRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstitemfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstitemtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstPageOfExam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstPageOfExam{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"flbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flfrstsplitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flfrstsplittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flPageBreakMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flPageBreakMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forceEqualCellsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceEqualCellstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceNoColor\"\n    },\n    {\n      \"name\": \"ForceNoColorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ForceNoColortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foritem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foritem{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"forproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forproblem{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"forVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forVersion{${1:version letter}}\"\n      }\n    },\n    {\n      \"name\": \"fvsizeskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fvsizeskip{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"graylettersOff\"\n    },\n    {\n      \"name\": \"graylettersOn\"\n    },\n    {\n      \"name\": \"gridpgbrkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridpgbrktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iacvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifAB{${1:version A text}}{${2:version B text}}\"\n      }\n    },\n    {\n      \"name\": \"ifaebshowgrayletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifallowcircmc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifanswerkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcqIsActive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcqqs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcqSA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdisplayworkarea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDoNotRecordThisExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqcustomdesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqedb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqeonline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqforinstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqforpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqfortextbook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqglobalversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqlocalversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqobeylocalversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifequsecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqwritetomargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifExSolutionsSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifflfrstsplit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifforceEqualCells\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifForceNoColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgridpgbrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisleadin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifIsRespBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifkeepdeclaredvspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifkeyalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmakeExSlLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmakeQzSlLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnocorrections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNoSolutions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifNoSolutions{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifObeyPTsStar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifOKToWriteExamData\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoxfordcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsolutionsafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsolutionsAtEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsolutionsonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifterminexchanged\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftherearequizsolutions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftherearesolutions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifthereissolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuseNumForParts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuserectforms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifVersionA\"\n    },\n    {\n      \"name\": \"ifvspacewithsolns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwithinparts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwithinqsldoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwithinsoldoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeexersolutions\"\n    },\n    {\n      \"name\": \"insertContAnnot\"\n    },\n    {\n      \"name\": \"insertContAnnot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertContAnnot[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"instructionsColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instructionsColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"isleadinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isleadintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsRespBoxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsRespBoxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemPTsTxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemPTsTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keepdeclaredvspacingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keepdeclaredvspacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keyaltfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keyalttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"lastPageOfExam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastPageOfExam{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"leadinitem\"\n    },\n    {\n      \"name\": \"leadinitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leadinitem[${1:h|H}]\"\n      }\n    },\n    {\n      \"name\": \"leftmarginPtsEaTxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmarginPtsEaTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftmarginPtsTxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftmarginPtsTxt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfooteqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfooteqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lheadeqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lheadeqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lheadSol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lheadSol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"linkcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linkcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"makeExSlLocalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeExSlLocaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeQzSlLocalfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeQzSlLocaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeRoomForProb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeRoomForProb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"maketitledesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginpointsboxtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marginpointsboxtext{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markEndFor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markEndFor{${1:mrk1}}\"\n      }\n    },\n    {\n      \"name\": \"markerTotalFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markerTotalFmt{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"markNumQsFor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markNumQsFor{${1:mrk1}}\"\n      }\n    },\n    {\n      \"name\": \"markStartFor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markStartFor{${1:mrk1}}\"\n      }\n    },\n    {\n      \"name\": \"nbaselineskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbaselineskip{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"nDoNum\"\n    },\n    {\n      \"name\": \"nExam\"\n    },\n    {\n      \"name\": \"nocorrectionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocorrectionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolinkcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolinkcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"NoPoints\"\n    },\n    {\n      \"name\": \"noSolnOpt\"\n    },\n    {\n      \"name\": \"NoSolutions\"\n    },\n    {\n      \"name\": \"NoSpaceToWork\"\n    },\n    {\n      \"name\": \"NoTotals\"\n    },\n    {\n      \"name\": \"nOutOfNum\"\n    },\n    {\n      \"name\": \"noZeroTotals\"\n    },\n    {\n      \"name\": \"nPagesOnExam\"\n    },\n    {\n      \"name\": \"nPctDecPts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nQuesInExam\"\n    },\n    {\n      \"name\": \"nQuesInExam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nQuesInExam[${1:exam name}]\"\n      }\n    },\n    {\n      \"name\": \"numPtsOfProblem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numPtsOfProblem[${2:exam label}]{${1:prob num}}\"\n      }\n    },\n    {\n      \"name\": \"numPtsOfProblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numPtsOfProblem{${1:prob num}}\"\n      }\n    },\n    {\n      \"name\": \"numVersions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numVersions{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"obeyLocalRandomize\"\n    },\n    {\n      \"name\": \"ObeyPTsStarfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ObeyPTsStartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OKToWriteExamDatafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OKToWriteExamDatatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnBackOfPage\"\n    },\n    {\n      \"name\": \"OnBackOfPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OnBackOfPage[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"optsFillIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optsFillIn{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"optsMlTxtFld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optsMlTxtFld{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"OutOfNum\"\n    },\n    {\n      \"name\": \"oxfordcommafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oxfordcommatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partsformat{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"partsitemsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partsitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"partsparsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partsparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"partstabcolsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partstabcolsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"partstabrowsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partstabrowsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"partstabtopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partstabtopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"partstopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partstopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"percentForPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"percentForPart{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"placeAtxy\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeAtxy{${1:xdim%l}}{${2:ydim%l}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"placeCoverPageLogo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeCoverPageLogo{${1:hshift%l}}{${2:vshift%l}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"placeMarkerHere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeMarkerHere{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pointLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pointsLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointsLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PointsOnBothSides\"\n    },\n    {\n      \"name\": \"PointsOnLeft\"\n    },\n    {\n      \"name\": \"PointsOnRight\"\n    },\n    {\n      \"name\": \"popProblem\"\n    },\n    {\n      \"name\": \"postExamSolnHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prbDecPt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prbDecPt{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"prbNumFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prbNumFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"prbNumPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prbNumPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"prbPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prbPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"preExamSolnHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previewtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priorexsectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priorexslinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priorPageBreakMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorPageBreakMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"priorworkareaCmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorworkareaCmds{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"probInMinipage\"\n    },\n    {\n      \"name\": \"probInsertSoln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probInsertSoln{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"promoteNewPage\"\n    },\n    {\n      \"name\": \"promoteNewPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"promoteNewPage[${1:vspace%l}]\"\n      }\n    },\n    {\n      \"name\": \"proofingsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proofingsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"proofingsymbolColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proofingsymbolColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ptLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PTs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PTs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ptsLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptsLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pushProblem\"\n    },\n    {\n      \"name\": \"qNewPage\"\n    },\n    {\n      \"name\": \"quesNumColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quesNumColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"REF*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REF*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"REF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"renameSolnAfterTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renameSolnAfterTo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetacvspace\"\n    },\n    {\n      \"name\": \"resetSolnAfterToDefault\"\n    },\n    {\n      \"name\": \"RESTOREPAR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfooteqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfooteqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rheadeqe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rheadeqe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rheadSol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rheadSol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rowsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"runExamFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runExamHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runExamHeaderSol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sameVspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"selectVersion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectVersion{${1:number}}{${2:total versions}}\"\n      }\n    },\n    {\n      \"name\": \"separationrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"separationruleOff\"\n    },\n    {\n      \"name\": \"separationruleOn\"\n    },\n    {\n      \"name\": \"ServerRetnMsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ServerRetnMsg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setDefaultfvsizeskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDefaultfvsizeskip{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setFillLinesFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setFillLinesFmt{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setFillLinesFmt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setMClabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMClabelsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setMClabelsepDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMClabelsepDefault{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setPartsWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPartsWidth{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"setSolnMargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSolnMargins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"settotalsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sExam\"\n    },\n    {\n      \"name\": \"shortVersionAtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortVersionAtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortVersionBtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortVersionBtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortwebsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showAllAnsAtEnd\"\n    },\n    {\n      \"name\": \"solAtEndFormatting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solAtEndFormatting{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"solutionafterExCmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solutionafterExCmds{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SolutionsAfter\"\n    },\n    {\n      \"name\": \"solutionsafterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionsaftertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SolutionsAtEnd\"\n    },\n    {\n      \"name\": \"solutionsAtEndfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionsAtEndtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionsonlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionsonlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceToWork\"\n    },\n    {\n      \"name\": \"sqForms\"\n    },\n    {\n      \"name\": \"sqLinks\"\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subject[${2:short subject%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjectColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjectColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SubmitButtonLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubmitButtonLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SubmitInfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubmitInfo{${1:URL}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"summaryPointTotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SummaryTotalsOff\"\n    },\n    {\n      \"name\": \"SummaryTotalsOn\"\n    },\n    {\n      \"name\": \"summaryTotalsTxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableadin\"\n    },\n    {\n      \"name\": \"terminexchangedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminexchangedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texorpdfstring{${1:TEXstring}}{${2:PDFstring}}\"\n      }\n    },\n    {\n      \"name\": \"TF\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TF[${2:width}]{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"TF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TF{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"theduedate\"\n    },\n    {\n      \"name\": \"theeqpointsthispage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theGrandTotal\"\n    },\n    {\n      \"name\": \"themarkerCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therearequizsolutionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therearequizsolutionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therearesolutionsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therearesolutionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereissolutionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereissolutiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisterm\"\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:short title%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"totalForPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalForPart{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"totalsboxtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TotalsOnLeft\"\n    },\n    {\n      \"name\": \"TotalsOnRight\"\n    },\n    {\n      \"name\": \"trackProblemsOff\"\n    },\n    {\n      \"name\": \"trackProblemsOn\"\n    },\n    {\n      \"name\": \"turnContAnnotOff\"\n    },\n    {\n      \"name\": \"turnContAnnotOn\"\n    },\n    {\n      \"name\": \"turnflanskeyOff\"\n    },\n    {\n      \"name\": \"turnflanskeyOn\"\n    },\n    {\n      \"name\": \"turnflnosolnsOff\"\n    },\n    {\n      \"name\": \"turnflnosolnsOn\"\n    },\n    {\n      \"name\": \"turnOnRandomize\"\n    },\n    {\n      \"name\": \"university\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"university{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"universityColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universityColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"useCheckForProof\"\n    },\n    {\n      \"name\": \"useCircForMC\"\n    },\n    {\n      \"name\": \"useCircForProof\"\n    },\n    {\n      \"name\": \"useCrossForProof\"\n    },\n    {\n      \"name\": \"useCustomPartNames\"\n    },\n    {\n      \"name\": \"useFillerDefault\"\n    },\n    {\n      \"name\": \"useFillerLines\"\n    },\n    {\n      \"name\": \"usenLineDimen\"\n    },\n    {\n      \"name\": \"useNumForPartsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useNumForPartstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useRectForMC\"\n    },\n    {\n      \"name\": \"userectformsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"userectformstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useSavedAlts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useSavedAlts[${2:num}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedAlts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useSavedAlts{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedAltsAns\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useSavedAltsAns[${2:num}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedAltsAns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useSavedAltsAns{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedAns\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useSavedAns[${2:num}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedAns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useSavedAns{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useSavedNumAns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useSavedNumAns{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"useUIPartNames\"\n    },\n    {\n      \"name\": \"useVspaceDimen\"\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"VersionAtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VersionAtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VersionBtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VersionBtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vspacewithkeyOff\"\n    },\n    {\n      \"name\": \"vspacewithkeyOn\"\n    },\n    {\n      \"name\": \"vspacewithsolnsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vspacewithsolnstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wdthMlTxtFld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wdthMlTxtFld{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"webArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webcopyrightyears\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webkeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"websubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinpartsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinpartstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinqsldocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinqsldoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinsoldocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withinsoldoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wlVspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeAllAnsAtEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeToSolnFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writeToSolnFile{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"afterChapSolns\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"carryOverFmt\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"eqeList\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqeList\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqepartsquestions\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"example\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"example*\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"fullwidthtext\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"lsol\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"probset\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"probset\",\n      \"if\": \"fortextbook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:margin title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"solnsAtEnd\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"ssol\",\n      \"if\": \"fortextbook\"\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"cq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cq*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqComments\"\n    },\n    {\n      \"name\": \"eqComments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"eqequestions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"exam\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:friendly name%text}]{${1:exam name}}\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exercise}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercise*\"\n    },\n    {\n      \"name\": \"instructions\"\n    },\n    {\n      \"name\": \"instructions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"manswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"panel\"\n    },\n    {\n      \"name\": \"panel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:l|r}]\"\n      }\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"parts\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:nCols}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{problem}#c,\\\\begin{problem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:points%keyvals}][${2:h|H}]\",\n        \"keys\": [\n          \"\\\\begin{problem}#c,\\\\begin{problem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"problem*\"\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{problem}#c,\\\\begin{problem*}#c\",\n          \"\\\\begin{problem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:points%keyvals}][${2:h|H}]\",\n        \"keys\": [\n          \"\\\\begin{problem}#c,\\\\begin{problem*}#c\",\n          \"\\\\begin{problem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{solution}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"splitsolution\"\n    },\n    {\n      \"name\": \"splitsolution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"splitsolution\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:width}][${2:depth}]\"\n      }\n    },\n    {\n      \"name\": \"workarea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:depth%l}}\"\n      }\n    },\n    {\n      \"name\": \"workarea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:depth%l}}\"\n      }\n    },\n    {\n      \"name\": \"priorworkarea\"\n    },\n    {\n      \"name\": \"vadjForSolnInBx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/eqexam#c\": [\n      \"usecustomdesign\",\n      \"nocustomdesign\",\n      \"fortextbook\",\n      \"forinstr\",\n      \"forstudent\",\n      \"nomarginwrite\",\n      \"cfg=${1:basename}\",\n      \"pointsonleft\",\n      \"pointsonright\",\n      \"pointsonboth\",\n      \"nopoints\",\n      \"totalsonleft\",\n      \"totalsonright\",\n      \"nozerototals\",\n      \"nototals\",\n      \"noparttotals\",\n      \"parttotalsonright\",\n      \"parttotalsonleft\",\n      \"noseparationrule\",\n      \"nosummarytotals\",\n      \"coverpage\",\n      \"coverpagesumry=${1|byparts,bypages,none|}\",\n      \"nospacetowork\",\n      \"answerkey\",\n      \"vspacewithsolns\",\n      \"ftbsolns\",\n      \"flextended\",\n      \"useforms\",\n      \"allowcirc4mc\",\n      \"online\",\n      \"pdf\",\n      \"links\",\n      \"email\",\n      \"obeylocalversions\",\n      \"usexkv\",\n      \"max=${1:integer}\",\n      \"rendition=${1:version letter}\",\n      \"allowrandomize\",\n      \"forpaper\",\n      \"forcolorpaper\",\n      \"forcolorpaper*\",\n      \"preview\",\n      \"nosolutions\",\n      \"nohiddensolutions\",\n      \"noHiddensolutions\",\n      \"solutionsafter\",\n      \"solutionsonly\",\n      \"proofing\",\n      \"showgrayletters\",\n      \"noxcolor\",\n      \"useclassmaketitle\",\n      \"bypasspkgpagestyle\",\n      \"dvipsone\",\n      \"dvips\",\n      \"pdftex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"textures\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\textbookOpts\": [\n      \"instred\",\n      \"studented\",\n      \"marginans\",\n      \"inlineans\",\n      \"marginsonleft\",\n      \"ssols\",\n      \"lsols\"\n    ],\n    \"\\\\bChoices#c\": [\n      \"${1:⟨n⟩}\",\n      \"nCols=${1:n}\",\n      \"random\",\n      \"label=\"\n    ],\n    \"\\\\begin{exercise}#c\": [\n      \"${1:⟨counter⟩}\",\n      \"h\",\n      \"H\",\n      \"0\"\n    ],\n    \"\\\\begin{problem}#c,\\\\begin{problem*}#c\": [\n      \"${1:⟨number⟩}\",\n      \"*${1:⟨number⟩}\"\n    ],\n    \"\\\\begin{problem*}#c\": [\n      \"${1:⟨number⟩}ea\",\n      \"*${1:⟨number⟩}ea\",\n      \"\\\\auto\",\n      \"*\\\\auto\"\n    ],\n    \"\\\\begin{solution}#c\": [\n      \"${1:⟨vspace⟩}\",\n      \"nLines=${1:n}\"\n    ],\n    \"\\\\fillin,\\\\fillineol,\\\\fillineol*\": [\n      \"underline\",\n      \"u\",\n      \"b\",\n      \"boxed\",\n      \"boxpretext=${1:text}\",\n      \"parbox\",\n      \"parbox={[${1:pos}]}\",\n      \"parbox={[${1:pos}][${2:height}]}\",\n      \"parbox={[${1:pos}][${2:height}][${3:inner-pos}]}\",\n      \"hiddenbox\",\n      \"enclosesoln\",\n      \"boxsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"fboxsep=\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"color=\",\n      \"align=${1|l,c,r|}\",\n      \"defaultalign=${1|l,c,r|}\",\n      \"format=${1:format cmds}\",\n      \"fitwidth\",\n      \"boxcmd=${1:cmd}\",\n      \"ulcmd=${1:cmd}\",\n      \"lift=\",\n      \"autolift\",\n      \"addtoautolift=\"\n    ],\n    \"\\\\setFillLinesFmt\": [\n      \"fltype=${1|line,dash,dots,blank,grid|}\",\n      \"align=${1|default,left|}\",\n      \"bgcolor=\",\n      \"bgonly\",\n      \"bgonly*\",\n      \"equalcells\",\n      \"color=\",\n      \"gridtype=${1|line,dash,dots|}\",\n      \"linegap=\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"numfmt=${1:code}\",\n      \"outlineonly\",\n      \"outlineonly*\",\n      \"topline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eqexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eqexpl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eqexplSetSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexplSetSpace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"eqexplSetIntro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexplSetIntro{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqexplSetDelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexplSetDelim{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"eqexplSetItemWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexplSetItemWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqexplSetItemAlign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqexplSetItemAlign{${1:align%keyvals}}\",\n        \"keys\": [\n          \"\\\\eqexplSetItemAlign\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"item{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"item{${1:label}}[${2:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"eqexplDelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexplIntro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexplItemAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexplItemWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqexplSpaceWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftSideWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"eqexpl\"\n    },\n    {\n      \"name\": \"eqexpl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\eqexplSetItemAlign\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqlist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eqparbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"longitem\"\n    },\n    {\n      \"name\": \"longitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"longitem[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"eqlistinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqliststarinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlistinitpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlistlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlistauto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqlistauto{${1:max length%l}}\"\n      }\n    },\n    {\n      \"name\": \"eqlistnoauto\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"eqlist\"\n    },\n    {\n      \"name\": \"eqlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"eqlist*\"\n    },\n    {\n      \"name\": \"eqlist*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"Eqlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Eqlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:code}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Eqlist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Eqlist*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:code}]{${1:tag}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqnalign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqname.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"eqname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqname{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqnarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yesnumber\"\n    },\n    {\n      \"name\": \"eqnnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqnnum{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"equationarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"equationarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{equationarray},\\\\begin{equationarray*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"equationarray*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{equationarray},\\\\begin{equationarray*}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{equationarray},\\\\begin{equationarray*}\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqnnumwarn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"intomargin\"\n    },\n    {\n      \"name\": \"noeqnnumwarn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eqparbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eqparbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqparbox{${1:tag}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqparbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"eqparbox[${3:position}]{${1:tag}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqparbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"eqparbox[${3:position}][${4:height}]{${1:tag}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqparbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"eqparbox[${3:position}][${4:height}][${5:inner-pos}]{${1:tag}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqmakebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqmakebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqmakebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqmakebox[${2:tag}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqmakebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"eqmakebox[${2:tag}][${3:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqframebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqframebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqframebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqframebox[${2:tag}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqframebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"eqframebox[${2:tag}][${3:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqsavebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqsavebox{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqsavebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"eqsavebox{${1:cmd}}[${3:tag}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqsavebox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"eqsavebox{${1:cmd}}[${3:tag}][${4:position}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqboxwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqboxwidth{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"eqsetminwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqsetminwidth{${1:tag}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqsetmaxwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqsetmaxwidth{${1:tag}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"eqsetminwidthto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqsetminwidthto{${1:tag}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"eqsetmaxwidthto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqsetmaxwidthto{${1:tag}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"eqminipage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"eqminipage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"eqminipage\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"eqminipage\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner-pos}]{${1:tag}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/erewhon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"destyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"nustyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textruble\"\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/erewhon#c\": [\n      \"scaled=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"space=${1:factor}\",\n      \"foresolidus=\",\n      \"aftsolidus=\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"sups\",\n      \"scosf\",\n      \"looser\",\n      \"loosest\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/erewhon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/errata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffoots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrecord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erratumAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erratumAdd{${1:explanation%text}}{${2:new text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumAdd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"erratumAdd[${3:options%keyvals}]{${1:explanation%text}}{${2:new text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumDelete\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erratumDelete{${1:explanation%text}}{${2:deleted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumDelete\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"erratumDelete[${3:options%keyvals}]{${1:explanation%text}}{${2:deleted text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumReplace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"erratumReplace{${1:explanation%text}}{${2:old text%text}}{${3:new text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumReplace\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"erratumReplace[${4:options%keyvals}]{${1:explanation%text}}{${2:old text%text}}{${3:new text%text}}\"\n      }\n    },\n    {\n      \"name\": \"erratumItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erratumItem{${1:reference}}{${2:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"printerrata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printerrata{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PrintErrata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintErrata{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"eAdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eAdd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eDelete\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eDelete{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eReplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eReplace{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ErratumRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theerratum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ednotemessage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"erratum\"\n    },\n    {\n      \"name\": \"erratum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"errata\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/errata#c\": [\n      \"show\",\n      \"hide\",\n      \"margins\",\n      \"foots\",\n      \"record\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/errata#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esami.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"autopstoff\"\n    },\n    {\n      \"name\": \"pstricks-add\",\n      \"if\": \"autopstoff\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"autopston\"\n    },\n    {\n      \"name\": \"pstricks-add\",\n      \"if\": \"autopston\"\n    },\n    {\n      \"name\": \"auto-pst-pdf\",\n      \"if\": \"autopston\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"annu\",\n      \"if\": \"xyz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"annu{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"arcsen\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"D\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"dif\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"dlim\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"dsum\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"eps\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"istruzionii\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"istruzioniii\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"me\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"punteggio\",\n      \"if\": \"xyz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sen\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"stringasol\",\n      \"if\": \"xyz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testa\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"vect\",\n      \"if\": \"xyz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newproblem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"esercizi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esercizi{${1:file1,file2,...%file}}\"\n      }\n    },\n    {\n      \"name\": \"selectrandomlyn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectrandomlyn{${1:exercise number}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"esercizidb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esercizidb{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PTs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PTs{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"bChoices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bChoices[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"eChoices\"\n    },\n    {\n      \"name\": \"eAns\"\n    },\n    {\n      \"name\": \"eFreeze\"\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillin{${1:width}}{${2:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fillin[${3:type%keyvals}]{${1:width}}{${2:answer%text}}\",\n        \"keys\": [\n          \"\\\\fillin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matching\"\n    },\n    {\n      \"name\": \"pair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pair{${1:item1%text}}{${2:item2%text}}\"\n      }\n    },\n    {\n      \"name\": \"selectallproblems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectallproblems{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"esercizio\"\n    },\n    {\n      \"name\": \"FPsetpar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPsetpar{${1:param}}{${2:first-value}}{${3:last-value}}\"\n      }\n    },\n    {\n      \"name\": \"FPsetpar\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"FPsetpar{${1:param}}{${2:first-value}}{${3:last-value}}[${4:excl-values}]\"\n      }\n    },\n    {\n      \"name\": \"FPsetpar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FPsetpar[${4:seed}]{${1:param}}{${2:first-value}}{${3:last-value}}\"\n      }\n    },\n    {\n      \"name\": \"FPsetpar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"FPsetpar[${4:seed}]{${1:param}}{${2:first-value}}{${3:last-value}}[${5:excl-values}]\"\n      }\n    },\n    {\n      \"name\": \"FPsv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPsv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"FPsv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FPsv[${2:decimal-places}]{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"FPval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPval{${1:name}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"FPval\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FPval{${1:name}}[${3:decimal-places}]{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"sempli\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sempli{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"semplix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"semplix{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"esempli\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"esempli{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"sempliz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sempliz{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"simpsqrt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"simpsqrt{${1:index}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"RandS\"\n    },\n    {\n      \"name\": \"FPsignpol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPsignpol{${1:expression}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"estrai\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"estrai[${3:m}]{${1:list}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"randestrai\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"randestrai[${3:m}]{${1:list}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"estraialfa\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"estraialfa{${1:m}}{${2:list}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"estraies\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"estraies[${2:m}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"randestraies\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"randestraies[${2:m}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"longdate\"\n    },\n    {\n      \"name\": \"shortdate\"\n    },\n    {\n      \"name\": \"thevers\"\n    },\n    {\n      \"name\": \"stepvers\"\n    },\n    {\n      \"name\": \"thenomefile\"\n    },\n    {\n      \"name\": \"permuta\"\n    },\n    {\n      \"name\": \"testversioni\"\n    },\n    {\n      \"name\": \"closevers\"\n    },\n    {\n      \"name\": \"closeverssols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepverssols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillinproblem\"\n    },\n    {\n      \"name\": \"newfillinproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfillinproblem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seme\"\n    },\n    {\n      \"name\": \"semeex\"\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sistema\",\n      \"if\": \"xyz\"\n    },\n    {\n      \"name\": \"test\"\n    },\n    {\n      \"name\": \"test\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"esdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:db name}}\"\n      }\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"problem*\"\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"problemmp\"\n    },\n    {\n      \"name\": \"problemmp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"problemmp*\"\n    },\n    {\n      \"name\": \"problemmp*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"domanda\"\n    },\n    {\n      \"name\": \"risposta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:vspace}}\"\n      }\n    },\n    {\n      \"name\": \"risposta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:type%keyvals}]{${1:vspace}}\",\n        \"keys\": [\n          \"\\\\begin{risposta}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabella\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:visible-align}}{${2:hidden-align}}\"\n      }\n    },\n    {\n      \"name\": \"tabella\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:number of columns}]{${1:visible-align}}{${2:hidden-align}}\"\n      }\n    },\n    {\n      \"name\": \"workarea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"workarea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"shortquiz\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/esami#c\": [\n      \"twocolumns\",\n      \"sansserif\",\n      \"solutionsonly\",\n      \"allowrandomize\",\n      \"norandomize\",\n      \"shuffle\",\n      \"shufflerandom\",\n      \"noshuffle\",\n      \"pointsonright\",\n      \"solutions\",\n      \"nosolutions\",\n      \"noquizsolutions\",\n      \"quizsolutions\",\n      \"xyz\",\n      \"autopstoff\",\n      \"autopston\",\n      \"prova\",\n      \"correzione\",\n      \"param\"\n    ],\n    \"\\\\fillin#c\": [\n      \"u\",\n      \"b\",\n      \"e\"\n    ],\n    \"\\\\begin{risposta}#c\": [\n      \"b\",\n      \"l\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esami#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esindex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"esindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"esindexactual\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"esindexactual{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"esindexsort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"esindexsort{${1:entry}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"everyesindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyesindex{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ignorewords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ignorewords{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"esindexexpandkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexexpandkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexexpandsubkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexexpandsubsubkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexlastchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexreplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"esindexreplace{${1:text%plain}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"esindexreplacesub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"esindexreplacesub{${1:text%plain}}{${2:replacement}}{${3:integer}}\"\n      }\n    },\n    {\n      \"name\": \"esindexreplacesubsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"esindexreplacesubsub{${1:text%plain}}{${2:replacement}}{${3:integer1}}{${4:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"esindexsubkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esindexsubsubkey\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esindex#c\": [\n      \"ignorespaces\",\n      \"replaceindex\",\n      \"nospanish\",\n      \"babel\",\n      \"encap=\",\n      \"level=\",\n      \"actual=\",\n      \"quote=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"varoiint\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landupintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"landdownintop\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esint#c\": [\n      \"intlimits\",\n      \"nointlimits\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eskwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskwrite{${1:Sketch code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"eskprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskprelude{${1:Sketch prelude%definition}}\"\n      }\n    },\n    {\n      \"name\": \"eskaddtoprelude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskaddtoprelude{${1:Sketch code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"eskglobals\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskglobals{${1:Sketch properties}}\"\n      }\n    },\n    {\n      \"name\": \"eskaddtoglobals\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskaddtoglobals{${1:Sketch properties}}\"\n      }\n    },\n    {\n      \"name\": \"eskwritetoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eskwritetoken{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"theeskfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theeskfile\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"esk\"\n    },\n    {\n      \"name\": \"esk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"esk\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:def1},${2:def2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"esk\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:name}](${2:def1},${3:def2},${4:...})\"\n      }\n    },\n    {\n      \"name\": \"eskdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eskfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eskfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eso-pic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AddToShipoutPictureBG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPictureBG{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToShipoutPictureBG*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPictureBG*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToShipoutPicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPicture{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToShipoutPicture*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPicture*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToShipoutPictureFG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPictureFG{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToShipoutPictureFG*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToShipoutPictureFG*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ClearShipoutPictureBG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearShipoutPictureBG{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ClearShipoutPicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearShipoutPicture{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"LenToUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LenToUnit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gridSetup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"gridSetup{${1:unit}}{${2:label factor}}{${3:delta}}{${4:Delta}}{${5:gap}}\"\n      }\n    },\n    {\n      \"name\": \"gridSetup\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"gridSetup[${6:unit name}]{${1:unit}}{${2:label factor}}{${3:delta}}{${4:Delta}}{${5:gap}}\"\n      }\n    },\n    {\n      \"name\": \"AtPageUpperLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtPageUpperLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtPageLowerLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtPageLowerLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtPageCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtPageCenter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtTextUpperLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtTextUpperLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtTextLowerLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtTextLowerLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtTextCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtTextCenter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtStockUpperLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtStockUpperLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtStockLowerLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtStockLowerLeft{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtStockCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtStockCenter{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eso-pic#c\": [\n      \"pscoord\",\n      \"texcoord\",\n      \"grid\",\n      \"gridBG\",\n      \"gridunit=${1|mm,in,bp,pt|}\",\n      \"gridcolor=\",\n      \"subgridcolor=\",\n      \"subgridstyle=${1|solid,dotted|}\",\n      \"colorgrid\",\n      \"dvips\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eso-pic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esrelation.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"relationrightproject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relationrightproject{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"relationleftproject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relationleftproject{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"relationlifting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relationlifting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictwand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictwand{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictwandup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictwandup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictbarb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictbarb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictbarbup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictbarbup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictmallet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictmallet{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restrictmalletup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restrictmalletup{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/esstixbb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esstixbb#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esstixbb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esstixfrak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esstixfrak#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esstixfrak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/esvect.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vv*{${1:arg}}{${2:subscript}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/esvect#c\": [\n      \"a\",\n      \"b\",\n      \"c\",\n      \"d\",\n      \"e\",\n      \"f\",\n      \"g\",\n      \"h\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/esvect#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/etaremune.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"etaremune\"\n    },\n    {\n      \"name\": \"etaremune\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{etaremune},\\\\usepackage/etaremune#c\",\n          \"\\\\begin{etaremune}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{etaremune},\\\\usepackage/etaremune#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"itemsep=\",\n      \"parsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"itemindent=\",\n      \"labelwidth=\",\n      \"labelsep=\"\n    ],\n    \"\\\\begin{etaremune}\": [\n      \"start=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\begin{etaremune},\\\\usepackage/etaremune#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/etextools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"expandaftercmds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandaftercmds{${1:code}}{${2:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"expandnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandnext{${1:code}}{${2:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"expandnexttwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"expandnexttwo{${1:code}}{${2:control sequences}}{${3:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandAftercmds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpandAftercmds{${1:code}}{${2:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpandNext{${1:code}}{${2:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandNextTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExpandNextTwo{${1:code}}{${2:control sequences}}{${3:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"noexpandcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noexpandcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"noexpandafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"showthecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showthecs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"meaningcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meaningcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefcount{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdeftoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdeftoks{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefskip{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefmuskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefmuskip{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefchar{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefmathchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefmathchar{${1:token}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avoidvoid{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avoidvoid[${2:replacement code}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avoidvoid*{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avoidvoid*[${2:replacement code}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoidcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avoidvoidcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoidcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avoidvoidcs[${2:replacement code}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoidcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avoidvoidcs*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"avoidvoidcs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avoidvoidcs*[${2:replacement code}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifsingletoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsingletoken{${1:token}}{${2:code}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifOneToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifOneToken{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsinglechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsinglechar{${1:token}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifOneChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifOneChar{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifOneCharWithBlanks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifOneCharWithBlanks{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirsttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffirsttoken{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iffirstchar{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifiscs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifiscs{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"detokenizeChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detokenizeChars{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"protectspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"protectspace{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifempty{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xifempty{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnotempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnotempty{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnotblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnotblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"deblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deblank{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifstrcmp{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifstrequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifstrequal{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifstrcmp{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcharupper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcharupper{${1:char}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcharlower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcharlower{${1:char}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuppercase{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflowercase{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrmatch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifstrmatch{${1:pattern}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrdigit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifstrdigit{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifstrnum{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareStringFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareStringFilter{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareStringFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareStringFilter[${3:\\\\global}]{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"futuredef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"futuredef{${1:cmd}}{${2:commands to expand after}}\"\n      }\n    },\n    {\n      \"name\": \"futuredef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"futuredef[${3:allowed token list}]{${1:cmd}}{${2:commands to expand after}}\"\n      }\n    },\n    {\n      \"name\": \"futuredef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"futuredef*{${1:cmd}}{${2:commands to expand after}}\"\n      }\n    },\n    {\n      \"name\": \"futuredef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"futuredef*[${3:allowed token list}]{${1:cmd}}{${2:commands to expand after}}\"\n      }\n    },\n    {\n      \"name\": \"AfterGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterGroup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterGroup*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterGroup*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAssignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterAssignment{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"naturalloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"naturalloop{${1:number}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"naturalloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"naturalloop[${3:auxiliary cmds}]{${1:number}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"ifintokslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifintokslist{${1:token}}{${2:token list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifincharlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifincharlist{${1:token}}{${2:token list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"gettokslistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gettokslistindex{${1:item}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"getcharlistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcharlistindex{${1:item}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"gettokslistcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gettokslistcount{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"gettokslisttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gettokslisttoken{${1:item}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"getcharlistcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getcharlistcount{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"getcharlisttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcharlisttoken{${1:item}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCmdListParser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCmdListParser{${1:cmd}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCmdListParser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareCmdListParser[${3:\\\\global}]{${1:cmd}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"breakloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"breakloop{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"csvloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvloop{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvloop[${2:auxiliary cmds}]{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvloop*{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvloop*[${2:auxiliary cmds}]{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"listloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listloop{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listloop[${2:auxiliary cmds}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listloop*{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listloop*[${2:auxiliary cmds}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"toksloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toksloop{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"toksloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toksloop[${2:auxiliary cmds}]{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"toksloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toksloop*{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"toksloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toksloop*[${2:auxiliary cmds}]{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"forcsvloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcsvloop{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"fortoksloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fortoksloop{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"forcsvloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcsvloop*{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"forlistloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forlistloop*{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"fortoksloop*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fortoksloop*{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"csvlistadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvlistadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvlistgadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvlistgadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvlisteadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvlisteadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvlistxadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvlistxadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvtolist{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvtolist[${2:list macro}]{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csvtolist*{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"csvtolist*[${2:list macro}]{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tokstolist{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tokstolist[${2:list macro}]{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tokstolist*{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tokstolist*[${2:list macro}]{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"listtocsv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listtocsv{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listtocsv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listtocsv[${2:list macro}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listtocsv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listtocsv*{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listtocsv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listtocsv*[${2:list macro}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolistadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvtolistadd{${1:list macro}}{${2:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"csvtolistadd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvtolistadd*{${1:list macro}}{${2:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolistadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tokstolistadd{${1:list macro}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"tokstolistadd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tokstolistadd*{${1:list macro}}{${2:token list}}\"\n      }\n    },\n    {\n      \"name\": \"ifincsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifincsvlist{${1:item}}{${2:csv list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifincsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifincsvlist{${1:item}}{${2:csv list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifincsvlist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifincsvlist*{${1:item}}{${2:csv list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifincsvlist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifincsvlist*{${1:item}}{${2:csv list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"listdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listgdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listgdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listedel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listedel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listxdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listxdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"csvdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvgdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"csvgdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvedel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"csvedel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csvxdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"csvxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"csvxdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toksdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toksdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toksgdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksgdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toksgdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toksedel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksedel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toksedel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toksxdel{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"toksxdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toksxdel[${3:number}]{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"getlistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getlistindex{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"getlistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getlistindex[${3:result index}]{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"getlistindex*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getlistindex*{${1:item}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"getlistindex*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getlistindex*[${3:result index}]{${1:item}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"getcsvlistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcsvlistindex{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"getcsvlistindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getcsvlistindex[${3:result index}]{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"getcsvlistindex*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getcsvlistindex*{${1:item}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"getcsvlistindex*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getcsvlistindex*[${3:result index}]{${1:item}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"interval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"interval{${1:number}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"locinterplin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"locinterplin{${1:number}}{${2:sorted number list}}{${3:number list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/etoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"locallistoffigures\",\n      \"if\": \"lof\"\n    },\n    {\n      \"name\": \"etoclocallistoffigureshook\",\n      \"if\": \"lof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locallistoftables\",\n      \"if\": \"lot\"\n    },\n    {\n      \"name\": \"etoclocallistoftableshook\",\n      \"if\": \"lot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\etocsetup,\\\\usepackage/etoc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableofcontents*\"\n    },\n    {\n      \"name\": \"localtableofcontents\"\n    },\n    {\n      \"name\": \"localtableofcontents*\"\n    },\n    {\n      \"name\": \"etocclasstocstyle\"\n    },\n    {\n      \"name\": \"etocetoclocaltocstyle\"\n    },\n    {\n      \"name\": \"etocusertocstyle\"\n    },\n    {\n      \"name\": \"etocstandardlines\"\n    },\n    {\n      \"name\": \"etoctoclines\"\n    },\n    {\n      \"name\": \"etocdefaultlines\"\n    },\n    {\n      \"name\": \"etocstoretocstyleinto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocstoretocstyleinto{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"etocstorelinestylesinto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocstorelinestylesinto{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"etocstorethislinestyleinto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocstorethislinestyleinto{${1:name or number}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"etocifislocal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifislocal{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifislocaltoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifislocaltoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifislocallof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifislocallof{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifislocallot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifislocallot{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifmaintoctotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifmaintoctotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etociflocaltoctotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etociflocaltoctotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etociflocalloftotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etociflocalloftotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etociflocallottotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etociflocallottotoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifisstarred\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifisstarred{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalheadtotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etoclocalheadtotoc{${1:level name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"etocglobalheadtotoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocglobalheadtotoc{${1:level name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etoclevel{${1:level name}}\"\n      }\n    },\n    {\n      \"name\": \"etocthelevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocthelevel{${1:level name}}\"\n      }\n    },\n    {\n      \"name\": \"etocthemaxlevel\"\n    },\n    {\n      \"name\": \"etocifunknownlevelTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"etocifunknownlevelTF{${1:level name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocdivisionnameatlevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocdivisionnameatlevel{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"etocetoclocaltocmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocetoclistoffiguresmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocetoclistoftablesmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localcontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locallistfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locallisttablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocaltocmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocallofmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocallotmaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclassmaintocaddtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocaltocaddtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocallofaddtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocclasslocallotaddtotoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsettocstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocsettocstyle{${1:before toc}}{${2:after toc}}\"\n      }\n    },\n    {\n      \"name\": \"etocarticlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocarticlestylenomarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocreportstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocreportstylenomarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbookstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbookstylenomarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocmemoirstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocscrartclstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocscrreprtstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocscrbookstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoctocloftstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinline\"\n    },\n    {\n      \"name\": \"etocnopar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocdisplay\"\n    },\n    {\n      \"name\": \"etocmulticolstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocmulticolstyle{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocmulticolstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocmulticolstyle[${2:num of cols}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocmulticol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocmulticol{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocmulticol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocmulticol[${2:num of cols}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocmulticol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocmulticol*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocmulticol*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocmulticol*[${2:num of cols}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalmulticol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etoclocalmulticol{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalmulticol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etoclocalmulticol[${2:num of cols}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etoctocstyle{${1:num of cols}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"etoctocstyle[${3:kind}]{${1:num of cols}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstylewithmarks\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"etoctocstylewithmarks{${1:num of cols}}{${2:title%plain}}{${3:mark}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstylewithmarks\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"etoctocstylewithmarks[${4:kind}]{${1:num of cols}}{${2:title%text}}{${3:mark}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstylewithmarksnouc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"etoctocstylewithmarksnouc{${1:num of cols}}{${2:title%text}}{${3:mark}}\"\n      }\n    },\n    {\n      \"name\": \"etoctocstylewithmarksnouc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"etoctocstylewithmarksnouc[${4:kind}]{${1:num of cols}}{${2:title%text}}{${3:mark}}\"\n      }\n    },\n    {\n      \"name\": \"etocruledstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocruledstyle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocruledstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocruledstyle[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocruled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocruled{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocruled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocruled[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalruled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etoclocalruled{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalruled\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etoclocalruled[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocframedstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocframedstyle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocframedstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocframedstyle[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocframed{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocframed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etocframed[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etoclocalframed{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etoclocalframed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etoclocalframed[${2:num of cols}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"etocabovetocskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbelowtocskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoccolumnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocmulticolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocmulticolpretolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocmulticoltolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocdefaultnbcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinnertopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoctoprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoctoprulecolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinnerleftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinnerrightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinnerbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocleftrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocrightrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbottomrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocleftrulecolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocrightrulecolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbottomrulecolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbkgcolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocframedmphook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocoldpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocinnertopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocaftertitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocaftercontentshook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbeforetitlehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocaftertochook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsetstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"etocsetstyle{${1:level name}}{${2:start}}{${3:prefix}}{${4:contents}}{${5:finish}}\"\n      }\n    },\n    {\n      \"name\": \"etocname\"\n    },\n    {\n      \"name\": \"etocnumber\"\n    },\n    {\n      \"name\": \"etocpage\"\n    },\n    {\n      \"name\": \"etocskipfirstprefix\"\n    },\n    {\n      \"name\": \"etociffirst\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etociffirst{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocxiffirst\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocxiffirst{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocifnumbered\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifnumbered{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocxifnumbered\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocxifnumbered{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocthename\"\n    },\n    {\n      \"name\": \"etocthenumber\"\n    },\n    {\n      \"name\": \"etocthepage\"\n    },\n    {\n      \"name\": \"etoclink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etoclink{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"etocthelinkedname\"\n    },\n    {\n      \"name\": \"etocthelinkednumber\"\n    },\n    {\n      \"name\": \"etocthelinkedpage\"\n    },\n    {\n      \"name\": \"etocthelink\"\n    },\n    {\n      \"name\": \"etocsetlevel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocsetlevel{${1:level name}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"etocglobaldefs\"\n    },\n    {\n      \"name\": \"etoclocaldefs\"\n    },\n    {\n      \"name\": \"etocfontminustwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocfontminusone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocfontzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocfontone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocfonttwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocfontthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsepminustwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsepminusone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsepzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsepone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocseptwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocsepthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocminustwoleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocminustworightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocminusoneleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocminusonerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadminustwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadminusone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbaselinespreadthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoctoclineleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocabbrevpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etocbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etoctableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etockeeporiginaltableofcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localtableofcontentswithrelativedepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localtableofcontentswithrelativedepth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"invisibletableofcontents\"\n    },\n    {\n      \"name\": \"invisiblelocaltableofcontents\"\n    },\n    {\n      \"name\": \"etocsettocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocsettocdepth{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"etocsetnexttocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etocsetnexttocdepth{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"etocobeytoctocdepth\"\n    },\n    {\n      \"name\": \"etocignoretoctocdepth\"\n    },\n    {\n      \"name\": \"etocsettagdepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocsettagdepth{${1:tag name}}{${2:level}}\"\n      }\n    },\n    {\n      \"name\": \"etocobeydepthtags\"\n    },\n    {\n      \"name\": \"etocignoredepthtags\"\n    },\n    {\n      \"name\": \"etoclocaltop\"\n    },\n    {\n      \"name\": \"etocchecksemptiness\"\n    },\n    {\n      \"name\": \"etocdoesnotcheckemptiness\"\n    },\n    {\n      \"name\": \"etocnotocifnotoc\"\n    },\n    {\n      \"name\": \"etocifwasempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocifwasempty{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etocxifwasempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocxifwasempty{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"etoctoccontentsline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etoctoccontentsline{${1:level name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"etoctoccontentsline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"etoctoccontentsline*{${1:level name}}{${2:name}}{${3:bookmark level}}\"\n      }\n    },\n    {\n      \"name\": \"etocimmediatetoccontentsline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etocimmediatetoccontentsline{${1:level name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"etocimmediatetoccontentsline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"etocimmediatetoccontentsline*{${1:level name}}{${2:name}}{${3:bookmark level}}\"\n      }\n    },\n    {\n      \"name\": \"etocnoprotrusion\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/etoc#c\": [\n      \"lof\",\n      \"lot\",\n      \"deeplevels\"\n    ],\n    \"\\\\etocsetup,\\\\usepackage/etoc#c\": [\n      \"maintoctotoc\",\n      \"localtoctotoc\",\n      \"localloftotoc\",\n      \"locallottotoc\",\n      \"ouroboros\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/etoc#c\",\n    \"\\\\etocsetup,\\\\usepackage/etoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/etoolbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewrobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewrobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewrobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providerobustcmd{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providerobustcmd*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providerobustcmd*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"robustify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robustify{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"protecting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"protecting{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"defcounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcounter{${1:counter}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"deflength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deflength{${1:length%cmd}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndPreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEndPreamble{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterEndDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cslet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cslet{${1:csname}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"letcs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letcs{${1:command}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csletcs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csletcs{${1:csname}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csuse{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"undef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undef{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"gundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gundef{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"csundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csundef{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csgundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csgundef{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csmeaning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csmeaning{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csshow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csshow{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"numdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numdef{${1:command}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"numgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numgdef{${1:command}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"csnumdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csnumdef{${1:csname}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"csnumgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csnumgdef{${1:csname}}{${2:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"dimdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimdef{${1:command}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"dimgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimgdef{${1:command}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"csdimdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csdimdef{${1:csname}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"csdimgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csdimgdef{${1:csname}}{${2:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"gluedef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gluedef{${1:command}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"gluegdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gluegdef{${1:command}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csgluedef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgluedef{${1:csname}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csgluegdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgluegdef{${1:csname}}{${2:glue expression}}\"\n      }\n    },\n    {\n      \"name\": \"mudef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mudef{${1:command}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"mugdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mugdef{${1:command}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csmudef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csmudef{${1:csname}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"csmugdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csmugdef{${1:csname}}{${2:muglue expression}}\"\n      }\n    },\n    {\n      \"name\": \"expandonce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandonce{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"csexpandonce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csexpandonce{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"appto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"gappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"eappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"xappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xappto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csgappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cseappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cseappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csxappto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxappto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"preto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"preto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"gpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gpreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"epreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"xpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpreto{${1:hook%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cspreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cspreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csgpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csgpreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csepreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csepreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"csxpreto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csxpreto{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"patchcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"patchcmd{${1:command}}{${2:search}}{${3:replace}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"patchcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"patchcmd[${6:prefix}]{${1:command}}{${2:search}}{${3:replace}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"ifpatchable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifpatchable{${1:command}}{${2:search}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpatchable*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpatchable*{${1:command}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"apptocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"apptocmd{${1:command}}{${2:code}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"pretocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pretocmd{${1:command}}{${2:code}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"tracingpatches\"\n    },\n    {\n      \"name\": \"newbool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newbool{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"providebool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providebool{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"booltrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booltrue{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"boolfalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolfalse{${1:bool name}}\"\n      }\n    },\n    {\n      \"name\": \"setbool\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbool{${1:bool name}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbool\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbool{${1:bool name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"notbool\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"notbool{${1:bool name}}{${2:not true}}{${3:not false}}\"\n      }\n    },\n    {\n      \"name\": \"newtoggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtoggle{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"providetoggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providetoggle{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"toggletrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toggletrue{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"togglefalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"togglefalse{${1:toggle name}}\"\n      }\n    },\n    {\n      \"name\": \"settoggle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoggle{${1:toggle name}}{${2:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"iftoggle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftoggle{${1:toggle name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"nottoggle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nottoggle{${1:toggle name}}{${2:not true}}{${3:not false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdef{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsdef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifundef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifundef{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsundef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsundef{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefmacro{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsmacro{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefparam\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefparam{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsparam\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsparam{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefprefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefprefix{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsprefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsprefix{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefprotected\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefprotected{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsprotected\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsprotected{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefltxprotect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefltxprotect{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsltxprotect\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsltxprotect{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefempty{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsempty{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefvoid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefvoid{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsvoid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsvoid{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefequal{${1:control sequence}}{${2:control sequence}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsequal{${1:csname}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefstring{${1:command}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsstring{${1:csname}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdefstrequal{${1:command}}{${2:command}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifcsstrequal{${1:csname}}{${2:csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefcounter{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcscounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcscounter{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifltxcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifltxcounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdeflength\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdeflength{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcslength\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcslength{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefdimen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdefdimen{${1:control sequence}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcsdimen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsdimen{${1:csname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifstrequal{${1:string}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifstrempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifstrempty{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifblank\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"notblank\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"notblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifnumcomp{${1:integer expression}}{${2:relation}}{${3:integer expression}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumequal{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumgreater\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumgreater{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumless\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifnumless{${1:integer expression}}{${2:integer expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumodd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumodd{${1:integer expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimcomp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifdimcomp{${1:dimen expression}}{${2:relation}}{${3:dimen expression}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimequal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdimequal{${1:dimen expression}}{${2:dimen expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimgreater\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifdimgreater{${1:dimen expression}}{${2:dimen expression}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifdimless\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdimless{${1:dimen expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpr{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifboolexpe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboolexpe{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"whileboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whileboolexpr{${1:expression}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"unlessboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unlessboolexpr{${1:expression}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListParser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListParser{${1:command}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareListParser*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareListParser*{${1:command}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"docsvlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docsvlist{${1:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"listbreak\"\n    },\n    {\n      \"name\": \"forcsvlist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forcsvlist{${1:handler}}{${2:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"listadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listgadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listeadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listeadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listxadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listxadd{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsgadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsgadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcseadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcseadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsxadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsxadd{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listremove{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listgremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listgremove{${1:list macro}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsremove{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"listcsgremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listcsgremove{${1:list csname}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"dolistloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolistloop{${1:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"dolistcsloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolistcsloop{${1:list csname}}\"\n      }\n    },\n    {\n      \"name\": \"forlistloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forlistloop{${1:handler}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"forlistcsloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forlistcsloop{${1:handler}}{${2:list csname}}\"\n      }\n    },\n    {\n      \"name\": \"ifinlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifinlist{${1:item}}{${2:list macro}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifinlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifinlist{${1:item}}{${2:list macro}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifinlistcs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifinlistcs{${1:item}}{${2:list csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"xifinlistcs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xifinlistcs{${1:item}}{${2:list csname}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"rmntonum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmntonum{${1:numeral}}\"\n      }\n    },\n    {\n      \"name\": \"ifrmnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifrmnum{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/etruscan.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"etrfamily\"\n    },\n    {\n      \"name\": \"textetr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textetr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Aalpha\"\n    },\n    {\n      \"name\": \"Abeta\"\n    },\n    {\n      \"name\": \"Agamma\"\n    },\n    {\n      \"name\": \"Adelta\"\n    },\n    {\n      \"name\": \"Aepsilon\"\n    },\n    {\n      \"name\": \"Adigamma\"\n    },\n    {\n      \"name\": \"Azeta\"\n    },\n    {\n      \"name\": \"Aeta\"\n    },\n    {\n      \"name\": \"Atheta\"\n    },\n    {\n      \"name\": \"Aiota\"\n    },\n    {\n      \"name\": \"Akappa\"\n    },\n    {\n      \"name\": \"Alambda\"\n    },\n    {\n      \"name\": \"Amu\"\n    },\n    {\n      \"name\": \"Anu\"\n    },\n    {\n      \"name\": \"Axi\"\n    },\n    {\n      \"name\": \"Aomicron\"\n    },\n    {\n      \"name\": \"Api\"\n    },\n    {\n      \"name\": \"Aesade\"\n    },\n    {\n      \"name\": \"Aqoph\"\n    },\n    {\n      \"name\": \"Arho\"\n    },\n    {\n      \"name\": \"Asigma\"\n    },\n    {\n      \"name\": \"Atau\"\n    },\n    {\n      \"name\": \"Aupsilon\"\n    },\n    {\n      \"name\": \"Achi\"\n    },\n    {\n      \"name\": \"Aphi\"\n    },\n    {\n      \"name\": \"Apsi\"\n    },\n    {\n      \"name\": \"Avau\"\n    },\n    {\n      \"name\": \"ARalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARdigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AReta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARtheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AResade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARqoph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARvau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translitetr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitetr{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitetrfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eucal.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EuScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EuScript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"CMcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CMcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eucal#c\": [\n      \"mathcal\",\n      \"mathscr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eucal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/euclideangeometry.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"curve2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EllipseWithFocus\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"EllipseWithFocus(${1:vertex1})(${2:vertex2})(${3:vertex3})(${4:focus})\"\n      }\n    },\n    {\n      \"name\": \"EllipseWithFocus*\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"EllipseWithFocus*(${1:vertex1})(${2:vertex2})(${3:vertex3})(${4:focus})\"\n      }\n    },\n    {\n      \"name\": \"ellisse*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellisse*{${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"ellisse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ellisse{${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"EllisseConFuoco\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"EllisseConFuoco(${1:vertex1})(${2:vertex2})(${3:vertex3})(${4:focus})\"\n      }\n    },\n    {\n      \"name\": \"EllisseConFuoco*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"EllisseConFuoco*(${1:vertex1})(${2:vertex2})(${3:vertex3})(${4:focus})\"\n      }\n    },\n    {\n      \"name\": \"EllisseSteiner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"EllisseSteiner(${1:vertex1})(${2:vertex2})(${3:vertex3})\"\n      }\n    },\n    {\n      \"name\": \"EllisseSteiner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()[]\",\n        \"snippet\": \"EllisseSteiner(${2:vertex1})(${3:vertex2})(${4:vertex3})[${1:diameter}]\"\n      }\n    },\n    {\n      \"name\": \"EllisseSteiner*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"EllisseSteiner*(${1:vertex1})(${2:vertex2})(${3:vertex3})\"\n      }\n    },\n    {\n      \"name\": \"EllisseSteiner*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()[]\",\n        \"snippet\": \"EllisseSteiner*(${2:vertex1})(${3:vertex2})(${4:vertex3})[${1:diameter}]\"\n      }\n    },\n    {\n      \"name\": \"EUGpolyvector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"EUGpolyvector(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"EUGpreviouspoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EUGsplitArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"EUGsplitArgs(${3:x},${4:y}){${1:xmacro%cmd}}{${2:ymacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"IntersectionOfLines\",\n      \"arg\": {\n        \"format\": \"()() and ()() to ()\",\n        \"snippet\": \"IntersectionOfLines(${1:%<point1%>})(${2:%<dir1%>}) and (${3:%<point2%>})(${4:%<dir2%>}) to (${5:%<vector%>})\"\n      }\n    },\n    {\n      \"name\": \"IntersectionOfSegments\",\n      \"arg\": {\n        \"format\": \"()() and ()() to ()\",\n        \"snippet\": \"IntersectionOfSegments(${1:%<point1%>})(${2:%<dir1%>}) and (${3:%<point2%>})(${4:%<dir2%>}) to (${5:%<vector%>})\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"RegPolygon(${3:center}){${1:radius}}{${2:sides}}\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon\",\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"RegPolygon(${4:center}){${1:radius}}{${2:sides}}[${3:angle}]\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon\",\n      \"arg\": {\n        \"format\": \"(){}{}[]<>\",\n        \"snippet\": \"RegPolygon(${5:center}){${1:radius}}{${2:sides}}[${3:angle}]<${4:settings}>\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"RegPolygon*(${3:center}){${1:radius}}{${2:sides}}\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon*\",\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"RegPolygon*(${4:center}){${1:radius}}{${2:sides}}[${3:angle}]\"\n      }\n    },\n    {\n      \"name\": \"RegPolygon*\",\n      \"arg\": {\n        \"format\": \"(){}{}[]<>\",\n        \"snippet\": \"RegPolygon*(${5:center}){${1:radius}}{${2:sides}}[${3:angle}]<${4:settings}>\"\n      }\n    },\n    {\n      \"name\": \"Sellisse*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sellisse*{${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"Sellisse*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Sellisse*{${1:semiaxis-h}}{${2:semiaxis-v}}[${3:shear}]\"\n      }\n    },\n    {\n      \"name\": \"Sellisse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sellisse{${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"Sellisse\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Sellisse{${1:semiaxis-h}}{${2:semiaxis-v}}[${3:shear}]\"\n      }\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfontsize[${2:linespread}]{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"SteinerEllipse\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"SteinerEllipse(${1:vertex1})(${2:vertex2})(${3:vertex3})\"\n      }\n    },\n    {\n      \"name\": \"SteinerEllipse\",\n      \"arg\": {\n        \"format\": \"()()()[]\",\n        \"snippet\": \"SteinerEllipse(${2:vertex1})(${3:vertex2})(${4:vertex3})[${1:diameter}]\"\n      }\n    },\n    {\n      \"name\": \"SteinerEllipse*\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"SteinerEllipse*(${1:vertex1})(${2:vertex2})(${3:vertex3})\"\n      }\n    },\n    {\n      \"name\": \"SteinerEllipse*\",\n      \"arg\": {\n        \"format\": \"()()()[]\",\n        \"snippet\": \"SteinerEllipse*(${2:vertex1})(${3:vertex2})(${4:vertex3})[${1:diameter}]\"\n      }\n    },\n    {\n      \"name\": \"ThreePointCircle\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"ThreePointCircle(${1:%<point1%>})(${2:%<point2%>})(${3:%<point3%>})\"\n      }\n    },\n    {\n      \"name\": \"ThreePointCircle*\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"ThreePointCircle*(${1:%<point1%>})(${2:%<point2%>})(${3:%<point3%>})\"\n      }\n    },\n    {\n      \"name\": \"TriangleCircummcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"TriangleCircummcircle(${1:%<point1%>})(${2:%<point2%>})(${3:%<point3%>})\"\n      }\n    },\n    {\n      \"name\": \"Xellisse\",\n      \"arg\": {\n        \"format\": \"()[]<>{}{}[][]\",\n        \"snippet\": \"Xellisse(${7:center})[${3:angle}]<${6:shear}>{${1:semiaxis-h}}{${2:semiaxis-v}}[${4:settings1}][${5:settings2}]\"\n      }\n    },\n    {\n      \"name\": \"Xellisse\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Xellisse(${3:center}){${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"Xellisse*\",\n      \"arg\": {\n        \"format\": \"()[]<>{}{}[][]\",\n        \"snippet\": \"Xellisse*(${7:center})[${3:angle}]<${6:shear}>{${1:semiaxis-h}}{${2:semiaxis-v}}[${4:settings1}][${5:settings2}]\"\n      }\n    },\n    {\n      \"name\": \"Xellisse*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Xellisse*(${3:center}){${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"XSellisse\",\n      \"arg\": {\n        \"format\": \"()[]<>{}{}[][]\",\n        \"snippet\": \"XSellisse(${7:center})[${3:angle}]<${6:shear}>{${1:semiaxis-h}}{${2:semiaxis-v}}[${4:settings1}][${5:settings2}]\"\n      }\n    },\n    {\n      \"name\": \"XSellisse\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"XSellisse(${3:center}){${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    },\n    {\n      \"name\": \"XSellisse*\",\n      \"arg\": {\n        \"format\": \"()[]<>{}{}[][]\",\n        \"snippet\": \"XSellisse*(${7:center})[${3:angle}]<${6:shear}>{${1:semiaxis-h}}{${2:semiaxis-v}}[${4:settings1}][${5:settings2}]\"\n      }\n    },\n    {\n      \"name\": \"XSellisse*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"XSellisse*(${3:center}){${1:semiaxis-h}}{${2:semiaxis-v}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/euflag.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"euflag\"\n    },\n    {\n      \"name\": \"euflag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"euflag[${1:baseline%l}]\"\n      }\n    },\n    {\n      \"name\": \"eustar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makestars\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/euflag#c\": [\n      \"baseline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/euflag#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eufrak.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EuFrak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EuFrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eukdate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"weekday\"\n    },\n    {\n      \"name\": \"monthname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eukdate#c\": [\n      \"no-weekday\",\n      \"ukdate\",\n      \"usdate\",\n      \"gregorian\",\n      \"julian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eukdate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eukleides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TRS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TRS{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Simple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Simple{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Double\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Double{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Triple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Triple{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Cross\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Cross{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"Dot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Dot{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"Dash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Dash{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleDash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DoubleDash{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"TripleDash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"TripleDash{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DoubleArc{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"TripleArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"TripleArc{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}\"\n      }\n    },\n    {\n      \"name\": \"Right\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"Right{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"packages\"\n    },\n    {\n      \"name\": \"eukleides\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/euler-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"muphbar\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"mbfwp\"\n    },\n    {\n      \"name\": \"mbfdotlessi\"\n    },\n    {\n      \"name\": \"mbfdotlessj\"\n    },\n    {\n      \"name\": \"mbfhbar\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqslantless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lesseqqslantgtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqqslantless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleqqslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngeqqslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"varpropto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicksim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsmile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"Diamond\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/euler-math#c\": [\n      \"CharacterVariant={${1:glyph num list}}\",\n      \"StylisticSet=${1|5,6|}\",\n      \"Style=${1|smaller,subsetneq|}\",\n      \"Scale=${2|${1:factor},MatchUppercase|}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/euler-math#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/euler.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MathOldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathOldstyle{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TextOldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextOldstyle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/euler#c\": [\n      \"mathbf\",\n      \"mathcal\",\n      \"text-hat-accent\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/euler#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eulerpx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"newpxmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varmathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varmathscr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varaleph\"\n    },\n    {\n      \"name\": \"varsum\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eulerpx#c\": [\n      \"scale=${1:factor}\",\n      \"nonpxmath\",\n      \"noslant\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eulerpx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/eulervm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"mathcomma\",\n      \"if\": \"icomma\"\n    },\n    {\n      \"name\": \"domathcomma\",\n      \"if\": \"icomma\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eulervm#c\": [\n      \"small\",\n      \"euler-digits\",\n      \"euler-hat-accent\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"icomma\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eulervm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/euroitc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"sanseuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serifeuro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/euroitc#c\": [\n      \"sans\",\n      \"serif\",\n      \"scaled\",\n      \"scaled=${1:factor}\",\n      \"bolder\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/euroitc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/europasscv-bibliography.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biblatex-ext-tabular\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ecvbibhighlight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ecvbibhighlight{${1:last name}}{${2:first name}}{${3:first initial}}\"\n      }\n    },\n    {\n      \"name\": \"defecvbibtabulartwocolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"defecvbibtabulartwocolumn{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"lastname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstinit\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/europs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EURtm\"\n    },\n    {\n      \"name\": \"EURhv\"\n    },\n    {\n      \"name\": \"EURcr\"\n    },\n    {\n      \"name\": \"EUR\"\n    },\n    {\n      \"name\": \"EURofc\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/eurosym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"EUR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EUR{${1:amount}}\"\n      }\n    },\n    {\n      \"name\": \"eurobars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eurobarsnarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eurobarswide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneuronarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geneurowide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"officialeuro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/eurosym#c\": [\n      \"left\",\n      \"right\",\n      \"official\",\n      \"gen\",\n      \"gennarrow\",\n      \"genwide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/eurosym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/euscript.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"EuScript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EuScript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"CMcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CMcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/euscript#c\": [\n      \"mathcal\",\n      \"mathscr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/euscript#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/everyhook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PushPreHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PushPreHook{${1:hook}}{${2:balanced text}}\"\n      }\n    },\n    {\n      \"name\": \"PopPreHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PopPreHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"PushPostHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PushPostHook{${1:hook}}{${2:balanced text}}\"\n      }\n    },\n    {\n      \"name\": \"PopPostHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PopPostHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"SavePreHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SavePreHook{${1:hook}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"SavePostHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SavePostHook{${1:hook}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"RestorePreHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RestorePreHook{${1:hook}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"RestorePostHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RestorePostHook{${1:hook}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"ClearPreHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearPreHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ClearPostHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearPostHook{${1:hook}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/everyhook#c\": [\n      \"excludeor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/everyhook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/everypage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/everyshi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exaccent.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"upperaccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"upperaccent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-randomizechoices.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setrandomizerseed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrandomizerseed{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printkeytable\"\n    },\n    {\n      \"name\": \"printkeytable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printkeytable[${1:range}]\"\n      }\n    },\n    {\n      \"name\": \"keylistquestionname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keylistquestionname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keylistkeyname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keylistkeyname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"savekeylist\"\n    },\n    {\n      \"name\": \"savekeylist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"savekeylist[${1:macro%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"writekeylist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writekeylist{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"writekeylist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"writekeylist[${2:file}]{${1:command}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"randomizechoices\"\n    },\n    {\n      \"name\": \"randomizechoices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{randomizechoices},\\\\begin{randomizeoneparchoices},\\\\begin{randomizecheckboxes},\\\\begin{randomizeoneparcheckboxes}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"randomizeoneparchoices\"\n    },\n    {\n      \"name\": \"randomizeoneparchoices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{randomizechoices},\\\\begin{randomizeoneparchoices},\\\\begin{randomizecheckboxes},\\\\begin{randomizeoneparcheckboxes}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"randomizecheckboxes\"\n    },\n    {\n      \"name\": \"randomizecheckboxes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{randomizechoices},\\\\begin{randomizeoneparchoices},\\\\begin{randomizecheckboxes},\\\\begin{randomizeoneparcheckboxes}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"randomizeoneparcheckboxes\"\n    },\n    {\n      \"name\": \"randomizeoneparcheckboxes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{randomizechoices},\\\\begin{randomizeoneparchoices},\\\\begin{randomizecheckboxes},\\\\begin{randomizeoneparcheckboxes}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exam-randomizechoices#c\": [\n      \"randomize\",\n      \"norandomize\",\n      \"keeplast\",\n      \"nokeeplast\",\n      \"overload\",\n      \"nooverload\",\n      \"debug\"\n    ],\n    \"\\\\begin{randomizechoices},\\\\begin{randomizeoneparchoices},\\\\begin{randomizecheckboxes},\\\\begin{randomizeoneparcheckboxes}\": [\n      \"randomize\",\n      \"norandomize\",\n      \"keeplast\",\n      \"nokeeplast\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exam-randomizechoices#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exam-zh-chinese-english.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"varwidth\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"linelistset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linelistset{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"linelistset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"linelistset[${2:键值列表%keyvals}]{${1:list}}\",\n        \"keys\": [\n          \"\\\\begin{lineto},\\\\linelistset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lineconnect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineconnect{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"lineconnect\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lineconnect[${2:TikZ keys}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"zhu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhu{${1:注释%text}}\"\n      }\n    },\n    {\n      \"name\": \"zhu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhu[${2:数}]{${1:注释%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"select\"\n    },\n    {\n      \"name\": \"select\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{select}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lineto\"\n    },\n    {\n      \"name\": \"lineto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{lineto},\\\\linelistset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"material\"\n    },\n    {\n      \"name\": \"material\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{material}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"poem\"\n    },\n    {\n      \"name\": \"poem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{poem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"writingbox\"\n    },\n    {\n      \"name\": \"writingbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox keys}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"select={${1:键值列表}}\",\n      \"select/mark-symbol=${1:symbol}\",\n      \"select/show-mark\",\n      \"select/mark-position=${1|top,above,below,bottom,left,right|}\",\n      \"select/mark-xshift=\",\n      \"select/mark-yshift=\",\n      \"select/separator=${1:symbol}\",\n      \"select/pre-content=${1:content}\",\n      \"select/post-content=${1:content}\",\n      \"lineto={${1:键值列表}}\",\n      \"lineto/xsep=\",\n      \"lineto/ysep=\",\n      \"lineto/name=${1:name}\",\n      \"material={${1:键值列表}}\",\n      \"material/title=${1:标题}\",\n      \"material/title-format=${1:格式}\",\n      \"material/author=${1:作者}\",\n      \"material/author-format=${1:格式}\",\n      \"material/title-author-sep=\",\n      \"material/format=${1:格式}\",\n      \"material/source=${1:来源出处}\",\n      \"material/source-format=${1:格式}\",\n      \"material/top-sep=\",\n      \"material/bottom-sep=\",\n      \"material/title-material-sep=\",\n      \"poem={${1:键值列表}}\",\n      \"poem/title=${1:标题}\",\n      \"poem/title-format=${1:格式}\",\n      \"poem/author=${1:作者}\",\n      \"poem/author-format=${1:格式}\",\n      \"poem/title-author-sep=\",\n      \"poem/format=${1:格式}\",\n      \"poem/align=${1|l,c,r|}\",\n      \"poem/top-sep=\",\n      \"poem/bottom-sep=\",\n      \"poem/title-poem-sep=\",\n      \"poem/type=${1|minipage,chinese|}\",\n      \"poem/zhu-circlednumber-base=${1|tikz,font|}\"\n    ],\n    \"\\\\begin{select}\": [\n      \"mark-symbol=${1:symbol}\",\n      \"show-mark\",\n      \"mark-position=${1|top,above,below,bottom,left,right|}\",\n      \"mark-xshift=\",\n      \"mark-yshift=\",\n      \"separator=${1:symbol}\",\n      \"pre-content=${1:content}\",\n      \"post-content=${1:content}\"\n    ],\n    \"\\\\begin{lineto},\\\\linelistset\": [\n      \"xsep=\",\n      \"ysep=\",\n      \"name=${1:name}\"\n    ],\n    \"\\\\begin{material}\": [\n      \"title=${1:标题}\",\n      \"title-format=${1:格式}\",\n      \"author=${1:作者}\",\n      \"author-format=${1:格式}\",\n      \"title-author-sep=\",\n      \"format=${1:格式}\",\n      \"source=${1:来源出处}\",\n      \"source-format=${1:格式}\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"title-material-sep=\"\n    ],\n    \"\\\\begin{poem}\": [\n      \"title=${1:标题}\",\n      \"title-format=${1:格式}\",\n      \"author=${1:作者}\",\n      \"author-format=${1:格式}\",\n      \"title-author-sep=\",\n      \"format=${1:格式}\",\n      \"align=${1|l,c,r|}\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"title-poem-sep=\",\n      \"type=${1|minipage,chinese|}\",\n      \"zhu-circlednumber-base=${1|tikz,font|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-choices.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setchoices\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchoices{${1:键值列表%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{choices},\\\\setchoices\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddChoicesCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddChoicesCounter{${1:LaTeX command%cmd}}{${2:internal command%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"choices\"\n    },\n    {\n      \"name\": \"choices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{choices},\\\\setchoices\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"choices={${1:键值列表}}\",\n      \"choices/index=${1:integer}\",\n      \"choices/column-sep=\",\n      \"choices/columns=${1:integer}\",\n      \"choices/label=${1:label}\",\n      \"choices/label-pos=${1|auto,top-left,left,bottom|}\",\n      \"choices/label-align=${1|left,center,right|}\",\n      \"choices/label-sep=\",\n      \"choices/label-width=\",\n      \"choices/max-columns=${1:integer}\",\n      \"choices/top-sep=\",\n      \"choices/bottom-sep=\",\n      \"choices/linesep=\"\n    ],\n    \"\\\\begin{choices},\\\\setchoices\": [\n      \"index=${1:integer}\",\n      \"column-sep=\",\n      \"columns=${1:integer}\",\n      \"label=${1:label}\",\n      \"label-pos=${1|auto,top-left,left,bottom|}\",\n      \"label-align=${1|left,center,right|}\",\n      \"label-sep=\",\n      \"label-width=\",\n      \"max-columns=${1:integer}\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"linesep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"font=${1|newcm,lm,times,termes,stix,xits,libertinus,garamond,pala,none|}\",\n      \"math-font=${1|newcm,lm,termes,stix,xits,libertinus,cambria,garamond,pala,asana,none|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"wrapstuff\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"calculations\"\n    },\n    {\n      \"name\": \"calculations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{calculations}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"calculations=${1:{〈键值列表〉}}\",\n      \"calculations/index=${1:integer}\",\n      \"calculations/columns=${1:integer}\",\n      \"calculations/fig-pos=${1|top,above,bottom,below,left,right,left-top|}\",\n      \"calculations/top-sep=\",\n      \"calculations/bottom-sep=\",\n      \"calculations/hsep=\",\n      \"calculations/vsep=\",\n      \"calculations/align=${1|t,m,b|}\",\n      \"calculations/xshift=\",\n      \"calculations/hshift=\",\n      \"calculations/yshift=\",\n      \"calculations/vshift=\",\n      \"calculations/label-xshift=\",\n      \"calculations/label-hshift=\",\n      \"calculations/label-yshift=\",\n      \"calculations/label-vshift=\"\n    ],\n    \"\\\\begin{calculations}\": [\n      \"label=${1:code}\",\n      \"index=${1:integer}\",\n      \"columns=${1:integer}\",\n      \"fig-pos=${1|top,above,bottom,below,left,right,left-top|}\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"hsep=\",\n      \"vsep=\",\n      \"align=${1|t,m,b|}\",\n      \"xshift=\",\n      \"hshift=\",\n      \"yshift=\",\n      \"vshift=\",\n      \"label-xshift=\",\n      \"label-hshift=\",\n      \"label-yshift=\",\n      \"label-vshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-question.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"xeCJKfntef\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"linegoal\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"questionsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionsetup{${1:键值列表%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{question},\\\\begin{problem},\\\\questionsetup\",\n          \"\\\\begin{question},\\\\questionsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"paren\"\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"paren[${1:答案}]\"\n      }\n    },\n    {\n      \"name\": \"AddQuestionCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddQuestionCounter{${1:LaTeX command%cmd}}{${2:internal command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"circlednumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circlednumber{${1:数字或计数器名字}}\"\n      }\n    },\n    {\n      \"name\": \"circlednumber*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circlednumber*{${1:数字或计数器名字}}\"\n      }\n    },\n    {\n      \"name\": \"fillin\"\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillin[${1:答案}]\"\n      }\n    },\n    {\n      \"name\": \"fillin\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fillin[${1:键值列表%keyvals}][${2:答案}]\",\n        \"keys\": [\n          \"\\\\fillin#c,\\\\fillin*#c,\\\\fillinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillin*\"\n    },\n    {\n      \"name\": \"fillin*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillin*[${1:答案}]\"\n      }\n    },\n    {\n      \"name\": \"fillin*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fillin*[${1:键值列表%keyvals}][${2:答案}]\",\n        \"keys\": [\n          \"\\\\fillin#c,\\\\fillin*#c,\\\\fillinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillinsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillinsetup{${1:键值列表%keyvals}}\",\n        \"keys\": [\n          \"\\\\fillin#c,\\\\fillin*#c,\\\\fillinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddFillinCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddFillinCounter{${1:LaTeX command%cmd}}{${2:internal command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"score\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"score{${1:分数}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{question},\\\\begin{problem},\\\\questionsetup\",\n          \"\\\\begin{question},\\\\questionsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{question},\\\\begin{problem},\\\\questionsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{solution}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"question={${1:键值列表}}\",\n      \"question/show-answer\",\n      \"question/points=${1:number}\",\n      \"question/show-points=${1|true,auto,false|}\",\n      \"question/points-separate-par\",\n      \"question/top-sep=\",\n      \"question/bottom-sep=\",\n      \"question/index=${1:integer}\",\n      \"question/label=${1:label}\",\n      \"question/combine-fillin\",\n      \"question/combine-fillin-args=${1:\\\\fillin 命令的参数}\",\n      \"question/hang\",\n      \"question/points-prelabel=${1:points 前面的内容}\",\n      \"question/points-postlabel=${1:points 后面的内容}\",\n      \"question/label-align=${1|left,center,right|}\",\n      \"problem={${1:键值列表}}\",\n      \"problem/show-answer\",\n      \"problem/points=${1:number}\",\n      \"problem/show-points=${1|true,auto,false|}\",\n      \"problem/points-separate-par\",\n      \"problem/top-sep=\",\n      \"problem/bottom-sep=\",\n      \"problem/index=${1:integer}\",\n      \"problem/label=${1:label}\",\n      \"problem/points-prelabel=${1:points 前面的内容}\",\n      \"problem/points-postlabel=${1:points 后面的内容}\",\n      \"problem/label-align=${1|left,center,right|}\",\n      \"paren={${1:键值列表}}\",\n      \"paren/show-answer\",\n      \"paren/show-paren\",\n      \"paren/text-color=\",\n      \"paren/type=${1|hfill,none|}\",\n      \"fillin={${1:键值列表}}\",\n      \"fillin/type=${1|line,paren,circle,rectangle,blank|}\",\n      \"fillin/no-answer-type=${1|blacktriangle,counter,none|}\",\n      \"fillin/no-answer-counter-index=${1:integer}\",\n      \"fillin/no-answer-counter-label=${1:label}\",\n      \"fillin/show-answer\",\n      \"fillin/width=\",\n      \"fillin/width-type=${1|fill,normal|}\",\n      \"fillin/box-color=\",\n      \"fillin/text-color=\",\n      \"fillin/paren-type=${1|banjiao,quanjiao|}\",\n      \"fillin/depth=\",\n      \"solution={${1:键值列表}}\",\n      \"solution/show-solution=${1|hide,show-stay,show-move|}\",\n      \"solution/parbreak\",\n      \"solution/show-qed\",\n      \"solution/qedsymbol=${1:symbol}\",\n      \"solution/label-content=${1:content}\",\n      \"solution/label-punct=${1:punct}\",\n      \"solution/score-pre-content=${1:content}\",\n      \"solution/score-post-content=${1:content}\",\n      \"solution/score-format=${1:风格设置}\",\n      \"solution/score-showleader\",\n      \"solution/text-color=\",\n      \"solution/top-sep=\",\n      \"solution/bottom-sep=\",\n      \"solution/blank-type=${1|none,manual,hide|}\",\n      \"solution/blank-vsep=\"\n    ],\n    \"\\\\begin{question},\\\\begin{problem},\\\\questionsetup\": [\n      \"show-answer\",\n      \"points=${1:number}\",\n      \"show-points=${1|true,auto,false|}\",\n      \"points-separate-par\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"index=${1:integer}\",\n      \"label=${1:label}\",\n      \"points-prelabel=${1:points 前面的内容}\",\n      \"points-postlabel=${1:points 后面的内容}\",\n      \"label-align=${1|left,center,right|}\"\n    ],\n    \"\\\\begin{question},\\\\questionsetup\": [\n      \"combine-fillin\",\n      \"combine-fillin-args=${1:\\\\fillin 命令的参数}\",\n      \"hang\"\n    ],\n    \"\\\\fillin#c,\\\\fillin*#c,\\\\fillinsetup\": [\n      \"type=${1|line,paren,circle,rectangle,blank|}\",\n      \"no-answer-type=${1|blacktriangle,counter,none|}\",\n      \"no-answer-counter-index=${1:integer}\",\n      \"no-answer-counter-label=${1:label}\",\n      \"show-answer\",\n      \"width=\",\n      \"width-type=${1|fill,normal|}\",\n      \"box-color=\",\n      \"text-color=\",\n      \"paren-type=${1|banjiao,quanjiao|}\",\n      \"depth=\"\n    ],\n    \"\\\\begin{solution}\": [\n      \"show-solution=${1|hide,show-stay,show-move|}\",\n      \"parbreak\",\n      \"show-qed\",\n      \"qedsymbol=${1:symbol}\",\n      \"label-content=${1:content}\",\n      \"label-punct=${1:punct}\",\n      \"score-pre-content=${1:content}\",\n      \"score-post-content=${1:content}\",\n      \"score-format=${1:风格设置}\",\n      \"score-showleader\",\n      \"text-color=\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"blank-type=${1|none,manual,hide|}\",\n      \"blank-vsep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-symbols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"upe\"\n    },\n    {\n      \"name\": \"iu\"\n    },\n    {\n      \"name\": \"upi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"paralleleq\"\n    },\n    {\n      \"name\": \"subset*\"\n    },\n    {\n      \"name\": \"nsubset*\"\n    },\n    {\n      \"name\": \"subseteq*\"\n    },\n    {\n      \"name\": \"nsubseteq*\"\n    },\n    {\n      \"name\": \"subsetneqq*\"\n    },\n    {\n      \"name\": \"nsubsetneqq\"\n    },\n    {\n      \"name\": \"supset*\"\n    },\n    {\n      \"name\": \"nsupset*\"\n    },\n    {\n      \"name\": \"supseteq*\"\n    },\n    {\n      \"name\": \"nsupseteq*\"\n    },\n    {\n      \"name\": \"supsetneqq*\"\n    },\n    {\n      \"name\": \"nsupsetneqq\"\n    },\n    {\n      \"name\": \"cap*\"\n    },\n    {\n      \"name\": \"cup*\"\n    },\n    {\n      \"name\": \"sim*\"\n    },\n    {\n      \"name\": \"cong*\"\n    },\n    {\n      \"name\": \"examzhfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examzhfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"examzhdfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examzhdfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"symbols={${1:键值列表}}\",\n      \"symbols/paralleleq-type=${1|slant,perpendicular|}\",\n      \"symbols/change-frac-style\",\n      \"symbols/change-dfrac-style\",\n      \"symbols/frac-add=${1:muskip}\",\n      \"symbols/dfrac-add=${1:muskip}\",\n      \"symbols/parallel-angle=${1:degrees}\",\n      \"symbols/parallel-twoline-distance=\",\n      \"symbols/parallel-length=\",\n      \"symbols/parallel-baseline=\",\n      \"symbols/nparallel-slant-angle=${1:degrees}\",\n      \"symbols/nparallel-slant-length=\",\n      \"symbols/parallel-type=${1|slant,perpendicular|}\",\n      \"symbols/nparallel-type=${1|slant,perpendicular|}\",\n      \"symbols/paralleleq-slant-angle=${1:degrees}\",\n      \"symbols/paralleleq-upper-line-length=\",\n      \"symbols/paralleleq-lower-line-length=\",\n      \"symbols/paralleleq-upper-twoline-distance=\",\n      \"symbols/paralleleq-lower-twoline-distance=\",\n      \"symbols/paralleleq-lower-xshift=\",\n      \"symbols/subset-radius=\",\n      \"symbols/subset-upper-linewidth=\",\n      \"symbols/subset-lower-linewidth=\",\n      \"symbols/subset-upper-lower-distance=\",\n      \"symbols/subsetneqq-lower-twoline-distance=\",\n      \"symbols/subsetneqq-lower-slant-length=\",\n      \"symbols/supsetneqq-lower-slant-length=\",\n      \"symbols/subsetneqq-lower-slant-angle=${1:degrees}\",\n      \"symbols/supsetneqq-lower-slant-angle=${1:degrees}\",\n      \"symbols/nsubset-n-slant-angle=${1:degrees}\",\n      \"symbols/nsubseteq-n-slant-angle=${1:degrees}\",\n      \"symbols/nsubsetneqq-n-slant-angle=${1:degrees}\",\n      \"symbols/nsubset-n-slant-length=\",\n      \"symbols/nsubseteq-n-slant-length=\",\n      \"symbols/nsubsetneqq-n-slant-length=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exam-zh-textfigure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"wrapstuff\"\n    },\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"filehook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfigure{${1:文本%text}}{${2:图片}}\"\n      }\n    },\n    {\n      \"name\": \"textfigure\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfigure[${3:参数列表%keyvals}]{${1:文本%text}}{${2:图片}}\",\n        \"keys\": [\n          \"\\\\textfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"multifigures\"\n    },\n    {\n      \"name\": \"multifigures\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:键值列表%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{multifigures}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\examsetup,\\\\ExamPrintAnswerSet\": [\n      \"multifigures={${1:键值列表}}\",\n      \"multifigures/columns=${1:integer}\",\n      \"multifigures/fig-pos=${1|top,above,bottom,below,left,right|}\",\n      \"multifigures/top-sep=\",\n      \"multifigures/bottom-sep=\",\n      \"multifigures/align=${1|t,m,b|}\",\n      \"multifigures/xshift=\",\n      \"multifigures/hshift=\",\n      \"multifigures/yshift=\",\n      \"multifigures/vshift=\",\n      \"multifigures/label-xshift=\",\n      \"multifigures/label-hshift=\",\n      \"multifigures/label-yshift=\",\n      \"multifigures/label-vshift=\",\n      \"textfigure={${1:键值列表}}\",\n      \"textfigure/fig-pos=${1|left,right,top,bottom,top-left,top-right,top-center,top-flushright,bottom-flushright,bottom-left,bottom-right,bottom-center,right-top,right-bottom,right-center,left-top,left-bottom,left-center|}\",\n      \"textfigure/figure-xshift=\",\n      \"textfigure/figure-hshift=\",\n      \"textfigure/figure-yshift=\",\n      \"textfigure/figure-vshift=\",\n      \"textfigure/xshift=\",\n      \"textfigure/hshift=\",\n      \"textfigure/yshift=\",\n      \"textfigure/vshift=\",\n      \"textfigure/top-sep=\",\n      \"textfigure/bottom-sep=\",\n      \"textfigure/text-width=\",\n      \"textfigure/figure-width=\",\n      \"textfigure/ratio=${1:比例}\",\n      \"textfigure/text-ratio=${1:比例}\",\n      \"textfigure/top=${1:integer}\",\n      \"textfigure/parindent=\"\n    ],\n    \"\\\\begin{multifigures}\": [\n      \"columns=${1:integer}\",\n      \"fig-pos=${1|top,above,bottom,below,left,right|}\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"align=${1|t,m,b|}\",\n      \"xshift=\",\n      \"hshift=\",\n      \"yshift=\",\n      \"vshift=\",\n      \"label-xshift=\",\n      \"label-hshift=\",\n      \"label-yshift=\",\n      \"label-vshift=\"\n    ],\n    \"\\\\textfigure\": [\n      \"fig-pos=${1|left,right,top,bottom,top-left,top-right,top-center,top-flushright,bottom-flushright,bottom-left,bottom-right,bottom-center,right-top,right-bottom,right-center,left-top,left-bottom,left-center|}\",\n      \"figure-xshift=\",\n      \"figure-hshift=\",\n      \"figure-yshift=\",\n      \"figure-vshift=\",\n      \"xshift=\",\n      \"hshift=\",\n      \"yshift=\",\n      \"vshift=\",\n      \"top-sep=\",\n      \"bottom-sep=\",\n      \"text-width=\",\n      \"figure-width=\",\n      \"ratio=${1:比例}\",\n      \"text-ratio=${1:比例}\",\n      \"top=${1:integer}\",\n      \"parindent=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/example.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ExampleWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExampleSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExampleVerb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"example\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exceltex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cellrefs\",\n      \"if\": \"cellrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexceltexCounterC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexceltexCounterT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inccell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inccell{${1:file!sheet!cell}}\"\n      }\n    },\n    {\n      \"name\": \"inctab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inctab{${1:file!sheet!cell1!cell2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/exceltex#c\": [\n      \"cellrefs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exceltex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/excludeonly.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"excludeonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludeonly{${1:filelist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exercise.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shipoutAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shipoutExercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exercise\"\n    },\n    {\n      \"name\": \"Exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Exercise[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Exercise},\\\\begin{Exercise*},\\\\Exercise,\\\\Exercise*,\\\\ExerciseSelect,\\\\ExerciseSelect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Exercise*\"\n    },\n    {\n      \"name\": \"Exercise*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Exercise*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Exercise},\\\\begin{Exercise*},\\\\Exercise,\\\\Exercise*,\\\\ExerciseSelect,\\\\ExerciseSelect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Answer\"\n    },\n    {\n      \"name\": \"Answer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Answer[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Answer},\\\\Answer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExePart\"\n    },\n    {\n      \"name\": \"ExePart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExePart[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ExePart,\\\\ExePart*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExePart*\"\n    },\n    {\n      \"name\": \"ExePart*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExePart*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ExePart,\\\\ExePart*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"Question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Question[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Question,\\\\subQuestion,\\\\subsubQuestion\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"subQuestion\"\n    },\n    {\n      \"name\": \"subQuestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subQuestion[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Question,\\\\subQuestion,\\\\subsubQuestion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubQuestion\"\n    },\n    {\n      \"name\": \"subsubQuestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subsubQuestion[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Question,\\\\subQuestion,\\\\subsubQuestion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExeText\"\n    },\n    {\n      \"name\": \"ExerciseSelect\"\n    },\n    {\n      \"name\": \"ExerciseSelect\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExerciseSelect[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ExerciseSelect*\"\n    },\n    {\n      \"name\": \"ExerciseSelect*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExerciseSelect*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ExerciseStopSelect\"\n    },\n    {\n      \"name\": \"refAnswer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refAnswer{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseLabel\"\n    },\n    {\n      \"name\": \"marker\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marker{${1:symbol}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"DifficultyMarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofexercises\"\n    },\n    {\n      \"name\": \"ListOfExerciseInToc\"\n    },\n    {\n      \"name\": \"ExerciseLevelInToc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExerciseLevelInToc{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseListName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerListName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderOrigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseListHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerListHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartHeaderDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartHeaderNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartListHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExePartDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExePart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginExercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionHeaderDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionHeaderNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionHeaderDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionHeaderNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionHeaderTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionHeaderDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionHeaderNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSkipBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSkipAfter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerSkipBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerSkipAfter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exetopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exeparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exepartopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exeleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exelabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exelabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renewcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewcounter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"renewcounter\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"renewcounter{${1:name}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"EndCurrentQuestion\"\n    },\n    {\n      \"name\": \"EndCurrentsubQuestion\"\n    },\n    {\n      \"name\": \"EndCurrentsubsubQuestion\"\n    },\n    {\n      \"name\": \"AnswerCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerHeaderRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerListHeaderRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnswerRef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArticleOf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginAnswerEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginExerciseEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginExerciseListEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colonnesLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineAnswerCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineAnswerEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineExePartInEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineExePartInList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineExerciseCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineExerciseEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deuxcolonnes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endAnswerEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endExerciseEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endExerciseListEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseBefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseHeaderYear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseLocalNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseOrigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectOrigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseSelectYear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseTrueLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExerciseYear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listexercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuestionTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"recordExerciseLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recordExerciseLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refstepExecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subQuestionTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionNB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubQuestionTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termineliste\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"termineliste{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"theAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExePartDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExerciseDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theQuestionDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesavedQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesavedsubQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesavedsubsubQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubQuestionDifficulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubQuestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubQuestionDifficulty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Exercise\"\n    },\n    {\n      \"name\": \"Exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Exercise},\\\\begin{Exercise*},\\\\Exercise,\\\\Exercise*,\\\\ExerciseSelect,\\\\ExerciseSelect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Exercise*\"\n    },\n    {\n      \"name\": \"Exercise*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Exercise},\\\\begin{Exercise*},\\\\Exercise,\\\\Exercise*,\\\\ExerciseSelect,\\\\ExerciseSelect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Answer\"\n    },\n    {\n      \"name\": \"Answer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Answer},\\\\Answer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExerciseList\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exercise#c\": [\n      \"noanswer\",\n      \"answeronly\",\n      \"noexercise\",\n      \"exerciseonly\",\n      \"outputnothing\",\n      \"exercisedelayed\",\n      \"answerdelayed\",\n      \"lastexercise\",\n      \"showlabel\"\n    ],\n    \"\\\\begin{Exercise},\\\\begin{Exercise*},\\\\Exercise,\\\\Exercise*,\\\\ExerciseSelect,\\\\ExerciseSelect*\": [\n      \"label=\",\n      \"title={${1:text}}\",\n      \"difficulty=${1:number}\",\n      \"origin={${1:text}}\",\n      \"name={${1:text}}\",\n      \"counter=${1:counter}\",\n      \"number={${1:string}}\",\n      \"exam={${1:text}}\",\n      \"year=${1:year}\"\n    ],\n    \"\\\\begin{Answer},\\\\Answer\": [\n      \"ref=${1:label}\",\n      \"number={${1:string}}\"\n    ],\n    \"\\\\ExePart,\\\\ExePart*\": [\n      \"title={${1:text}}\",\n      \"difficulty=${1:number}\",\n      \"name={${1:text}}\"\n    ],\n    \"\\\\Question,\\\\subQuestion,\\\\subsubQuestion\": [\n      \"title={${1:text}}\",\n      \"difficulty=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exercise#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exercisebank.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pgfpages\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"needspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DisplaySolutions\"\n    },\n    {\n      \"name\": \"SolutionsOnly\"\n    },\n    {\n      \"name\": \"makesetdefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesetdefaults{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"spritesets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spritesets{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"makeset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makeset{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"makeset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"makeset[${3:options%keyvals}]{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"phead\"\n    },\n    {\n      \"name\": \"about\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"about{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"buildall\"\n    },\n    {\n      \"name\": \"sprite\"\n    },\n    {\n      \"name\": \"sprite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sprite[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"exec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exec{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExerciseCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareExerciseCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"exclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exclude{${1:file}}{${2:list of numbers}}\"\n      }\n    },\n    {\n      \"name\": \"select\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"select{${1:file}}{${2:list of numbers}}\"\n      }\n    },\n    {\n      \"name\": \"buildset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildset{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"buildset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"buildset[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setName\"\n    },\n    {\n      \"name\": \"buildsets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildsets{${1:list of names}}\"\n      }\n    },\n    {\n      \"name\": \"buildsets\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"buildsets[${2:options%keyvals}]{${1:list of sets}}\"\n      }\n    },\n    {\n      \"name\": \"buildtags\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"buildtags{${1:list of tags}}{${2:list of sets}}\"\n      }\n    },\n    {\n      \"name\": \"buildsprite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildsprite{${1:list of sets}}\"\n      }\n    },\n    {\n      \"name\": \"pplabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pplabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ppref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ppref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ppgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ppgref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"HideTags\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HideTags{${1:list of tags}}\"\n      }\n    },\n    {\n      \"name\": \"ShowAllTags\"\n    },\n    {\n      \"name\": \"exercisenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercisenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ShowNumbers\"\n    },\n    {\n      \"name\": \"ShowTags\"\n    },\n    {\n      \"name\": \"ShowFilenames\"\n    },\n    {\n      \"name\": \"exercisebanksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercisebanksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\exercisebanksetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"translateExBank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translateExBank{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\translateExBank\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextproblem{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\nextproblem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"totalpoints\"\n    },\n    {\n      \"name\": \"exercisepoints\"\n    },\n    {\n      \"name\": \"PartProblemHeaderSuffix\"\n    },\n    {\n      \"name\": \"PostPPHeader\"\n    },\n    {\n      \"name\": \"BeginPartproblem\"\n    },\n    {\n      \"name\": \"VeryBeginPartproblem\"\n    },\n    {\n      \"name\": \"InputExercise\"\n    },\n    {\n      \"name\": \"BeginProblem\"\n    },\n    {\n      \"name\": \"EndProblem\"\n    },\n    {\n      \"name\": \"BeginBuildset\"\n    },\n    {\n      \"name\": \"EndBuildset\"\n    },\n    {\n      \"name\": \"ownLineNoSpacesGotIt\"\n    },\n    {\n      \"name\": \"exercisebankversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisebankbuild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisfilepath\"\n    },\n    {\n      \"name\": \"exerciseFile\"\n    },\n    {\n      \"name\": \"theproblemcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartproblemcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pMarginBelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pMarginAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pMarginLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppMarginBelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppMarginAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introOutdent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtNextPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtNextPar{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"buildex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildex{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"continueLoop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csvtags\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerciseFileInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuresPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileInputBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileInputPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haystack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifppMode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifppMode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ignoreOutlineSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incl{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"introarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ipm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ipm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"isFalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isInList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isppMode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isppMode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"isTrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keystring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markeverypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ncArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"needle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextprobargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextproblems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextproblems{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nohead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numppex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeyOutlineSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orderedselect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"orderedselect{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ppList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pppref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pppref{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pptag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removebs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removebs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"resetnextproblems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showhideproblem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showhideproblem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shownextchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shownextchar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"skeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionMarginAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squeeze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopfilbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strif{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"themetacounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumppInFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thissetid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmpargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whentrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"intro\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\exercisebanksetup\": [\n      \"part problems\",\n      \"tighten paragraphs\",\n      \"problem header\",\n      \"problem needs space\",\n      \"no needspace\",\n      \"part problem header\",\n      \"part problem header suffix\",\n      \"solution header\",\n      \"exercise directory\",\n      \"figure root directory\",\n      \"use margins\",\n      \"front page\",\n      \"style margins\",\n      \"show lonely part problems\",\n      \"current points style\",\n      \"disable points\"\n    ],\n    \"\\\\translateExBank\": [\n      \"\"\n    ],\n    \"\\\\nextproblem#c\": [\n      \"head=${1:text}\",\n      \"solution only\",\n      \"points=${1:number}\",\n      \"hide\",\n      \"tag=${1:tag}\",\n      \"tag={${1:tag1,tag2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exercisepoints.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"points\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"itempoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itempoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setitempointsunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setitempointsunit{${1:singular}}{${2:plural}}\"\n      }\n    },\n    {\n      \"name\": \"numberofexercises\"\n    },\n    {\n      \"name\": \"totalpoints\"\n    },\n    {\n      \"name\": \"getpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpoints{${1:exercise number}}\"\n      }\n    },\n    {\n      \"name\": \"bonuspoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonuspoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"getbonuspoints\"\n    },\n    {\n      \"name\": \"totalpointswithbonus\"\n    },\n    {\n      \"name\": \"AtBeginExercise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginExercise{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndExercise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndExercise{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"currentexercisetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentexercisenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentexercisepoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginSubexercise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginSubexercise{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndSubexercise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndSubexercise{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"currentsubexercisenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentsubexercisepoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentsubexercisetitle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"subexercise\"\n    },\n    {\n      \"name\": \"subexercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exercisepoints#c\": [\n      \"customlayout\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exercisepoints#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exercises.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"marginnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"totalpoints\"\n    },\n    {\n      \"name\": \"exercisenewpage\"\n    },\n    {\n      \"name\": \"solutionnewpage\"\n    },\n    {\n      \"name\": \"ifsolutionthenelse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsolutionthenelse{${1:then}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"thei\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:points}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:space%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exercises#c\": [\n      \"printsolution\",\n      \"exercisespaceabove=\",\n      \"exercisespacebelow=\",\n      \"solutionspaceabove=\",\n      \"solutionspacebelow=\",\n      \"blockspace=\",\n      \"inlinespace=\",\n      \"exercisenumberformat=${1|arabic,roman,Roman,alph,Alph|}\",\n      \"pointsposition=${1|aftername,margin|}\",\n      \"pointsfontsize=${1|normalsize,footnotesize|}\",\n      \"pointsname=${1:text}\",\n      \"exercisename=${1:text}\",\n      \"exercisenameposition=${1|block,inline|}\",\n      \"solutionname=${1:text}\",\n      \"solutionnameposition=${1|block,inline|}\",\n      \"totalpointsname=${1:text}\",\n      \"braces=${1|nobraces,round,square|}\",\n      \"starpoints\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exercises#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exerquiz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"aeb-comment\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ui\",\n      \"if\": \"useui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ui{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ui\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"InitSeedValue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeSeedToSolnFile\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputRandomSeed\",\n      \"if\": \"allowrandomize\"\n    },\n    {\n      \"name\": \"useRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRandomSeed{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifsaveseed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedtrue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedfalse\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomi\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaySumryTbl\",\n      \"if\": \"usesumrytbls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displaySumryTbl{${1:quiz name}}\"\n      }\n    },\n    {\n      \"name\": \"displaySumryTbl\",\n      \"if\": \"usesumrytbls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"displaySumryTbl[${2:options%keyvals}]{${1:quiz name}}\",\n        \"keys\": [\n          \"\\\\displaySumryTbl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ccatCurrQzWith\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ccatCurrQzWith(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"pbPopulateSumTable\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pbDoNoCorrectSumryTbl\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumryTblQ\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumryTblR\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumryTblP\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showOutOfinSmryTbl\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmarkupbox\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sthline\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumrytblCkMUsep\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumrytbllinkHook\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumrytbllinkHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"sumryTblProbFmt\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumryTblProbFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sumrytablesep\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmarkupWidth\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmarkupHeight\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmarkupTextSize\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeProListAux\",\n      \"if\": \"usesumrytbls\"\n    },\n    {\n      \"name\": \"setParamSumryTblAux\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"correctColor\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrongColor\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialColor\",\n      \"if\": \"usesumrytbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bMCFI\",\n      \"if\": \"usemcfi\"\n    },\n    {\n      \"name\": \"eMCFI\",\n      \"if\": \"usemcfi\"\n    },\n    {\n      \"name\": \"mcfiMarkupfmt\",\n      \"if\": \"usemcfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcfiMarkup\",\n      \"if\": \"usemcfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clickChkBxMCFI\",\n      \"if\": \"usemcfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intrCAns\",\n      \"if\": \"userbmintrvl\"\n    },\n    {\n      \"name\": \"intrPrec\",\n      \"if\": \"userbmintrvl\"\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}{${2:answer}}{${3:samples}}{${4:precision}}{${5:[${7:a1,b1}]x[${8:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}{}(){}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}{${2:answer}}(${9:%<variables%>}){${3:samples}}{${4:precision}}{${5:[${7:a1,b1}]x[${8:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}{}()[]{}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}{${2:answer}}(${10:%<variables%>})[${7:dest}]{${3:samples}}{${4:precision}}{${5:[${8:a1,b1}]x[${9:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}{}()[]{}{}{}[]\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}{${2:answer}}(${11:%<variables%>})[${7:dest}]{${3:samples}}{${4:precision}}{${5:[${8:a1,b1}]x[${9:a2,b2}]x...}}[${10:comp func}]\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}[${7:eforms params}]{${2:answer}}{${3:samples}}{${4:precision}}{${5:[${8:a1,b1}]x[${9:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}[]{}(){}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}[${7:eforms params}]{${2:answer}}(${10:%<variables%>}){${3:samples}}{${4:precision}}{${5:[${8:a1,b1}]x[${9:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}[]{}()[]{}{}{}\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}[${7:eforms params}]{${2:answer}}(${11:%<variables%>})[${8:dest}]{${3:samples}}{${4:precision}}{${5:[${9:a1,b1}]x[${10:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"rbmIntrvl\",\n      \"if\": \"userbmintrvl\",\n      \"arg\": {\n        \"format\": \"{}[]{}()[]{}{}{}[]\",\n        \"snippet\": \"rbmIntrvl{${1:[${6:a,b}]}}[${7:eforms params}]{${2:answer}}(${12:%<variables%>})[${8:dest}]{${3:samples}}{${4:precision}}{${5:[${9:a1,b1}]x[${10:a2,b2}]x...}}[${11:comp func}]\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RespBoxMath{${1:answer}}{${2:samples}}{${3:precision}}{${4:[${5:a1,b1}]x[${6:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"RespBoxMath{${1:answer}}(${7:%<variables%>}){${2:samples}}{${3:precision}}{${4:[${5:a1,b1}]x[${6:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"{}()[]{}{}{}\",\n        \"snippet\": \"RespBoxMath{${1:answer}}(${8:%<variables%>})[${5:dest}]{${2:samples}}{${3:precision}}{${4:[${6:a1,b1}]x[${7:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"{}()[]{}{}{}[]\",\n        \"snippet\": \"RespBoxMath{${1:answer}}(${9:%<variables%>})[${5:dest}]{${2:samples}}{${3:precision}}{${4:[${6:a1,b1}]x[${7:a2,b2}]x...}}[${8:comp func}]\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RespBoxMath[${5:eforms params}]{${1:answer}}{${2:samples}}{${3:precision}}{${4:[${6:a1,b1}]x[${7:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"RespBoxMath[${5:eforms params}]{${1:answer}}(${8:%<variables%>}){${2:samples}}{${3:precision}}{${4:[${6:a1,b1}]x[${7:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}{}{}\",\n        \"snippet\": \"RespBoxMath[${5:eforms params}]{${1:answer}}(${9:%<variables%>})[${6:dest}]{${2:samples}}{${3:precision}}{${4:[${7:a1,b1}]x[${8:a2,b2}]x...}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxMath\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}{}{}[]\",\n        \"snippet\": \"RespBoxMath[${5:eforms params}]{${1:answer}}(${10:%<variables%>})[${6:dest}]{${2:samples}}{${3:precision}}{${4:[${7:a1,b1}]x[${8:a2,b2}]x...}}[${9:comp func}]\"\n      }\n    },\n    {\n      \"name\": \"everyRespBoxTxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyRespBoxTxt{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"aboveanswersSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddAAFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAAFormat{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddAAKeystroke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAAKeystroke{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddAAMouseUpMC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAAMouseUpMC{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddAAMouseUpMS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAAMouseUpMS{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addToAction*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToAction*{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addToAction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToAction{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"adjDisplayBelow\"\n    },\n    {\n      \"name\": \"aebshowgraylettersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aebshowgrayletterstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aebTitleQuiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterSplChkActn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterSplChkActn{${1:action}}\"\n      }\n    },\n    {\n      \"name\": \"AllowPeeking\"\n    },\n    {\n      \"name\": \"allowRandomizedChoices\"\n    },\n    {\n      \"name\": \"Ans\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ans[${1:partial pts}]{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"AnswerField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AnswerField[${2:eforms params}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"AnswerField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnswerField{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"answersEndHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answersEndHook{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"Array\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Array(${1:JS funcs})\"\n      }\n    },\n    {\n      \"name\": \"autoAnsFldRaiseBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoAnsFldRaiseBox{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"autoAnswerField\"\n    },\n    {\n      \"name\": \"autoAnswerField\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"autoAnswerField[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"autotabOff\"\n    },\n    {\n      \"name\": \"autotabOn\"\n    },\n    {\n      \"name\": \"bChoices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bChoices[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bChoices#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bInitAltAppr\"\n    },\n    {\n      \"name\": \"bottomOfAnsfStack\"\n    },\n    {\n      \"name\": \"bqlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CorrAnsButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrAnsButton{${1:display answer%definition}}\"\n      }\n    },\n    {\n      \"name\": \"CorrAnsButton\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"CorrAnsButton{${1:display answer%definition}}*{${2:JS function}}\"\n      }\n    },\n    {\n      \"name\": \"CorrAnsButtonGrp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrAnsButtonGrp{${1:n1,n2,...}}\"\n      }\n    },\n    {\n      \"name\": \"CorrButton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CorrButton[${2:eforms params}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"CorrButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorrButton{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"CorrectionsOff\"\n    },\n    {\n      \"name\": \"CorrectionsOn\"\n    },\n    {\n      \"name\": \"currQuiz\"\n    },\n    {\n      \"name\": \"databaseName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"databaseName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareQuiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareQuiz{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"defaultColorJSDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultquiztype\"\n    },\n    {\n      \"name\": \"defaultRDPrecision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultRDPrecision{${1:precision}}\"\n      }\n    },\n    {\n      \"name\": \"dockQuiz\"\n    },\n    {\n      \"name\": \"doNotRandomizeChoices\"\n    },\n    {\n      \"name\": \"eAns\"\n    },\n    {\n      \"name\": \"eChoices\"\n    },\n    {\n      \"name\": \"eFreeze\"\n    },\n    {\n      \"name\": \"eInitAltAppr\"\n    },\n    {\n      \"name\": \"endQuizHere\"\n    },\n    {\n      \"name\": \"eqButton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqButton[${2:eforms params}]{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"eqButton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqButton{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"eqCGI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqCGI{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"eqforpaperfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforpapertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqGradeScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqPTs\"\n    },\n    {\n      \"name\": \"eqQuizType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqsanitize\"\n    },\n    {\n      \"name\": \"eqScore\"\n    },\n    {\n      \"name\": \"eqSubmit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eqSubmit{${1:URL}}{${2:db name}}{${3:table name%text}}\"\n      }\n    },\n    {\n      \"name\": \"everyAnswerField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyAnswerField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyBeginQuizButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyBeginQuizButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyCorrAnsButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyCorrAnsButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyCorrButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyCorrButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyEndQuizButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyEndQuizButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyeqButtonField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeqButtonField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyeqTextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeqTextField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyeqTextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeqTextField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyGradeField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyGradeField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyPercentField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyPercentField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyPointsField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyPointsField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyqRadioButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyqRadioButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyRespBoxMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyRespBoxMath{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everyScoreField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyScoreField{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everysqClearButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everysqClearButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everysqRadioButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everysqRadioButton{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everysqTallyBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everysqTallyBox{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"everysqTallyTotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everysqTallyTotal{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"exbookmarkfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exlabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exlabelsol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expdfbookmark{${1:bookmark title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exrtnlabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsecrunhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsllabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsolafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyQuizHeaders\"\n    },\n    {\n      \"name\": \"floatQuiz\"\n    },\n    {\n      \"name\": \"formatAsSet\"\n    },\n    {\n      \"name\": \"formatAsVector\"\n    },\n    {\n      \"name\": \"formatInitAltApprs\"\n    },\n    {\n      \"name\": \"GradeField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GradeField[${2:eforms params}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"GradeField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GradeField{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"graylettersOff\"\n    },\n    {\n      \"name\": \"graylettersOn\"\n    },\n    {\n      \"name\": \"hideCreditMarkup\"\n    },\n    {\n      \"name\": \"holdDest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifaebshowgrayletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeqforpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifQuizType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifQuizType{${1:quiz code}}{${2:shortquiz code}}\"\n      }\n    },\n    {\n      \"name\": \"ifstaroption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifstaroption{${1:code if \\\\titlequiz*}}{${2:otherwise}}\"\n      }\n    },\n    {\n      \"name\": \"includeexersolutions\"\n    },\n    {\n      \"name\": \"includequizsolutions\"\n    },\n    {\n      \"name\": \"insertGrayLetters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isQZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isSQZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeExSolnsLocalOff\"\n    },\n    {\n      \"name\": \"makeExSolnsLocalOn\"\n    },\n    {\n      \"name\": \"makeQzSolnsLocalOff\"\n    },\n    {\n      \"name\": \"makeQzSolnsLocalOn\"\n    },\n    {\n      \"name\": \"manualAnswerField\"\n    },\n    {\n      \"name\": \"manualAnswerField\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"manualAnswerField[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"minQuizResp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multipartquestion\"\n    },\n    {\n      \"name\": \"natlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"negPointsAllowed\"\n    },\n    {\n      \"name\": \"NoPeeking\"\n    },\n    {\n      \"name\": \"noResetAnsFieldOnClose\"\n    },\n    {\n      \"name\": \"noSolnOpt\"\n    },\n    {\n      \"name\": \"obeyLocalRandomize\"\n    },\n    {\n      \"name\": \"oqpriorhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partbookmarkfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialColorJSDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PercentField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PercentField[${2:eforms params}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"PercentField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PercentField{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"PointsField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PointsField[${2:eforms params}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"PointsField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PointsField{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"popquestions\"\n    },\n    {\n      \"name\": \"promoteNewPageHere\"\n    },\n    {\n      \"name\": \"promoteNewPageHere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"promoteNewPageHere[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"proofingsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PTs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PTs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PTsHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PTsHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ptsLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptsLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pushquestions\"\n    },\n    {\n      \"name\": \"quesNumColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quesNumColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"quizpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quizpdfbookmark{${1:bookmark title%text}}\"\n      }\n    },\n    {\n      \"name\": \"quiztype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quiztype{${1:f|l}}\"\n      }\n    },\n    {\n      \"name\": \"qzbookmarkfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbMarkup\"\n    },\n    {\n      \"name\": \"rbMarkup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rbMarkup[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"REF*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REF*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"REF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"renameSolnAfterTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renameSolnAfterTo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetAnsFieldOnClose\"\n    },\n    {\n      \"name\": \"resetMClabelsep\"\n    },\n    {\n      \"name\": \"resetSolnAfterToDefault\"\n    },\n    {\n      \"name\": \"RespBoxEssay*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RespBoxEssay*{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"RespBoxEssay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RespBoxEssay{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"restoreDefaultQuizHeaders\"\n    },\n    {\n      \"name\": \"restoreFLTypeDefault\"\n    },\n    {\n      \"name\": \"rghtColorJSDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rowsepDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowsepDefault{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpl{${1:text->symbol}}\"\n      }\n    },\n    {\n      \"name\": \"saveDest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saveDest{${1:dest}}\"\n      }\n    },\n    {\n      \"name\": \"ScoreField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ScoreField[${2:eforms params}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"ScoreField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ScoreField{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"setActionKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setActionKeys{${1:eforms params}}\"\n      }\n    },\n    {\n      \"name\": \"setAnsEnvLinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAnsEnvLinewidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setMClabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMClabelsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setsolnspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsolnspace{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"showCreditMarkup\"\n    },\n    {\n      \"name\": \"SolutionsAfter\"\n    },\n    {\n      \"name\": \"SolutionsAtEnd\"\n    },\n    {\n      \"name\": \"SpellCheck\"\n    },\n    {\n      \"name\": \"SpellCheck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SpellCheck[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"sqbookmarkfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqClearButton\"\n    },\n    {\n      \"name\": \"sqClearButton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqClearButton[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"sqlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsllabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqslrtnlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqslsectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqSolnBtn\"\n    },\n    {\n      \"name\": \"sqSolnBtn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqSolnBtn[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"sqSolnMCMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqSolnMSMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqStrongMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqTallyBox\"\n    },\n    {\n      \"name\": \"sqTallyBox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqTallyBox[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"sqTallyTotal\"\n    },\n    {\n      \"name\": \"sqTallyTotal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqTallyTotal[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"sqTurnOffAlerts\"\n    },\n    {\n      \"name\": \"sqTurnOnAlerts\"\n    },\n    {\n      \"name\": \"sqWeakMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startQuizHere\"\n    },\n    {\n      \"name\": \"strongpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strongpass{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"symbolchoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolchoice{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\symbolchoice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"theeqexno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequestionno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleQuiz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleQuiz*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleQuiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleQuiz{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleQuizfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUChoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TUChoice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"turnOnRandomize\"\n    },\n    {\n      \"name\": \"useBeginQuizButton\"\n    },\n    {\n      \"name\": \"useBeginQuizButton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useBeginQuizButton[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"useBeginQuizLink\"\n    },\n    {\n      \"name\": \"useDest\"\n    },\n    {\n      \"name\": \"useEndQuizButton\"\n    },\n    {\n      \"name\": \"useEndQuizButton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useEndQuizButton[${1:eforms params}]\"\n      }\n    },\n    {\n      \"name\": \"useEndQuizLink\"\n    },\n    {\n      \"name\": \"useForms\"\n    },\n    {\n      \"name\": \"useLinks\"\n    },\n    {\n      \"name\": \"useMCCircles\"\n    },\n    {\n      \"name\": \"useMCCRects\"\n    },\n    {\n      \"name\": \"weakpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weakpass{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"word\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"word{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wrngColorJSDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altApprOff\"\n    },\n    {\n      \"name\": \"altApprOn\"\n    },\n    {\n      \"name\": \"corrChoiceFullyOff\"\n    },\n    {\n      \"name\": \"corrChoiceFullyOn\"\n    },\n    {\n      \"name\": \"corrLocalChoiceFullyOff\"\n    },\n    {\n      \"name\": \"corrLocalChoiceFullyOn\"\n    },\n    {\n      \"name\": \"eqCorrChoiceFully\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqCorrLocalChoiceFully\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifShowAppr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSubstVars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newNoPeekArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoPeekAlert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noPeekArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noPeekArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"postDenyForm\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"postDenyForm(${1:regexp})\"\n      }\n    },\n    {\n      \"name\": \"preDenyForm\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"preDenyForm(${1:regexp},${2:cMsg})\"\n      }\n    },\n    {\n      \"name\": \"preReqForm\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"preReqForm(${1:regexp},${2:cMsg})\"\n      }\n    },\n    {\n      \"name\": \"reany\"\n    },\n    {\n      \"name\": \"rebstr\"\n    },\n    {\n      \"name\": \"rechrclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rechrclass{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"redigit\"\n    },\n    {\n      \"name\": \"rediv\"\n    },\n    {\n      \"name\": \"redm\"\n    },\n    {\n      \"name\": \"reestr\"\n    },\n    {\n      \"name\": \"refac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refac{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"regrp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regrp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"remul\"\n    },\n    {\n      \"name\": \"replaceExclPt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"replaceExclPt{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"repow\"\n    },\n    {\n      \"name\": \"resetLocalChoiceFully\"\n    },\n    {\n      \"name\": \"ShowApprfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowApprtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubstVarsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubstVarstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqModelInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqModelInfo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"jsColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jsColor{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sumryTblAux\",\n      \"if\": \"usesumrytbls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:quiz name}}\"\n      }\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:dest}]{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"exEnumerate\"\n    },\n    {\n      \"name\": \"exEnumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exEnumerate}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumex\"\n    },\n    {\n      \"name\": \"enumex*\"\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exercise}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercise*\"\n    },\n    {\n      \"name\": \"manswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"manswers\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"manswers\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:dest}]{${1:nCols}}\"\n      }\n    },\n    {\n      \"name\": \"mathGrp\"\n    },\n    {\n      \"name\": \"oQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"parts\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:columns}]\"\n      }\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"quiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"quiz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"shortquiz\"\n    },\n    {\n      \"name\": \"shortquiz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:base name}]\"\n      }\n    },\n    {\n      \"name\": \"shortquiz*\"\n    },\n    {\n      \"name\": \"shortquiz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:base name}]\"\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:vspace%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exerquiz#c\": [\n      \"noxcolor\",\n      \"forpaper\",\n      \"forcolorpaper\",\n      \"preview\",\n      \"nosolutions\",\n      \"noquizsolutions\",\n      \"allowanswers\",\n      \"online\",\n      \"nohiddensolutions\",\n      \"noHiddensolutions\",\n      \"solutionsafter\",\n      \"solutionsonly\",\n      \"contsolns\",\n      \"nocorrections\",\n      \"proofing\",\n      \"showgrayletters\",\n      \"vspacewithsolns\",\n      \"nodljs\",\n      \"execJS\",\n      \"usealtadobe\",\n      \"exercisesonly\",\n      \"debug\",\n      \"allowrandomize\",\n      \"usesumrytbls\",\n      \"usemcfi\",\n      \"userbmintrvl\",\n      \"dvipsone\",\n      \"dvips\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"textures\",\n      \"dviwindo\",\n      \"unicode\",\n      \"useui\",\n      \"french\",\n      \"german\",\n      \"norsk\",\n      \"dutch\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"dansk\",\n      \"polish\",\n      \"finnish\",\n      \"catalan\",\n      \"czech\",\n      \"brazil\",\n      \"turkish\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\ui\": [\n      \"border=${1|visible,invisible|}\",\n      \"linewidth=${1|thin,medium,thick|}\",\n      \"highlight=${1|none,invert,outline,inset,push|}\",\n      \"bordercolor={${1:R G B}}\",\n      \"linestyle=${1|solid,dashed,underlined,beveled,inset|}\",\n      \"dasharray=${1:number}\",\n      \"linktxtcolor=\",\n      \"annotflags=${1|hidden,print,-print,noview,lock|}\",\n      \"fieldflags=${1|readonly,required,noexport,multiline,password,notoggleoff,radio,pushbutton,combo,edit,sort,fileselect,multiselect,nospellcheck,noscrolling,comb,radiosinunison,commitonchange,richtext|}\",\n      \"maxlength=${1:number}\",\n      \"tooltip={${1:text}}\",\n      \"default=${1:text}\",\n      \"value=${1:text}\",\n      \"rotate=${1|0,90,180,270|}\",\n      \"bgcolor={${1:R G B}}\",\n      \"uptxt={${1:text}}\",\n      \"downtxt={${1:text}}\",\n      \"rollovertxt={${1:text}}\",\n      \"normappr=${1:string}\",\n      \"rollappr=${1:string}\",\n      \"downappr=${1:string}\",\n      \"importicons=${1|yes,no|}\",\n      \"layout=${1|labelonly,icononly,icontop,iconbottom,iconleft,iconright,labelover|}\",\n      \"scalewhen=${1|always,never,iconbig,iconsmall|}\",\n      \"scale=${1|proportional,nonproportional|}\",\n      \"position={${1:x y}}\",\n      \"fitbounds\",\n      \"appr={${1:specs}}\",\n      \"align=${1|left,centered,right|}\",\n      \"textfont=${1:font name}\",\n      \"textsize=${1:number}\",\n      \"textcolor=${1:number}\",\n      \"autocenter=${1|yes,no|}\",\n      \"inline=${1|yes,no|}\",\n      \"presets=${1:\\\\cmd}\",\n      \"symbolchoice=${1|check,circle,cross,diamond,square,star|}\",\n      \"rectW=\",\n      \"rectH=\",\n      \"width=\",\n      \"height=\",\n      \"scalefactor=${1:factor}\",\n      \"goto={${1:KV-pairs}}\",\n      \"js={${1:script}}\",\n      \"mouseup={${1:script}}\",\n      \"mousedown={${1:script}}\",\n      \"onenter={${1:script}}\",\n      \"onexit={${1:script}}\",\n      \"onfocus={${1:script}}\",\n      \"onblur={${1:script}}\",\n      \"format={${1:script}}\",\n      \"keystroke={${1:script}}\",\n      \"validate={${1:script}}\",\n      \"calculate={${1:script}}\",\n      \"pageopen={${1:script}}\",\n      \"pageclose={${1:script}}\",\n      \"pagevisible={${1:script}}\",\n      \"pageinvisible={${1:script}}\",\n      \"lock={${1:KV-pairs}}\"\n    ],\n    \"\\\\displaySumryTbl\": [\n      \"ntables=${1|1,2|}\",\n      \"showmarkup\",\n      \"nocorrections\",\n      \"showOutOf\"\n    ],\n    \"\\\\begin{exEnumerate}\": [\n      \"labelwidthTo=${1:font commands}\",\n      \"labelwidth=\",\n      \"topsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"labelsep=\",\n      \"continue\"\n    ],\n    \"\\\\begin{exercise}#c\": [\n      \"${1:⟨counter⟩}\",\n      \"h\",\n      \"H\",\n      \"0\"\n    ],\n    \"\\\\bChoices#c\": [\n      \"${1:⟨n⟩}\",\n      \"nCols=${1:n}\",\n      \"random\",\n      \"insertAt=${1:n}\",\n      \"label=\"\n    ],\n    \"\\\\symbolchoice\": [\n      \"check\",\n      \"circle\",\n      \"cross\",\n      \"diamond\",\n      \"square\",\n      \"star\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exerquiz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exesheet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"versions\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"exesheetset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exesheetset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\exesheetset,\\\\usepackage/exesheet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"exercise[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelexercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelexercisestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercise*{${1:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exercise*[${2:text}]{${1:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"subpart\"\n    },\n    {\n      \"name\": \"subpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subpart[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"thesubpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsubpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsubpartstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subpart*{${1:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"subpart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subpart*[${2:text}]{${1:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"annex\"\n    },\n    {\n      \"name\": \"annex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"annex[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"annexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"annexstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exe\"\n    },\n    {\n      \"name\": \"exname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exsepmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exe*\"\n    },\n    {\n      \"name\": \"labelenumone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenuma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"correctionstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"correctionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"question{${1:question%text}}\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"question*{${1:question%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer*{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"answerspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answerspace{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"points\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pointsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointsstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pts{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ptsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptsstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalexe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalexe{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:points}]{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"note*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note*{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"markingstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptsboxlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"totalsheet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totalsheet{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exenumerate\"\n    },\n    {\n      \"name\": \"exenumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colsenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"colsenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:cols}}\",\n        \"keys\": [\n          \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colsenum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"colsenum*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:cols}}\",\n        \"keys\": [\n          \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colsitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"colsitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:cols}}\",\n        \"keys\": [\n          \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colsitem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"colsitem*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:cols}}\",\n        \"keys\": [\n          \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablenum1\"\n    },\n    {\n      \"name\": \"tablenum1\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:cols})\"\n      }\n    },\n    {\n      \"name\": \"tablenum1\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:cols})\",\n        \"keys\": [\n          \"\\\\begin{tablenum1},\\\\begin{tablenuma},\\\\begin{tablitem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablenuma\"\n    },\n    {\n      \"name\": \"tablenuma\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:cols})\"\n      }\n    },\n    {\n      \"name\": \"tablenuma\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:cols})\",\n        \"keys\": [\n          \"\\\\begin{tablenum1},\\\\begin{tablenuma},\\\\begin{tablitem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablenuma*\"\n    },\n    {\n      \"name\": \"tablitem\"\n    },\n    {\n      \"name\": \"tablitem\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:cols})\"\n      }\n    },\n    {\n      \"name\": \"tablitem\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:cols})\",\n        \"keys\": [\n          \"\\\\begin{tablenum1},\\\\begin{tablenuma},\\\\begin{tablitem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablitem*\"\n    },\n    {\n      \"name\": \"questions\"\n    },\n    {\n      \"name\": \"answers\"\n    },\n    {\n      \"name\": \"answers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"answers*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\exesheetset,\\\\usepackage/exesheet#c\": [\n      \"exetoc\",\n      \"setlist\",\n      \"output=${1|questions,answers,both|}\",\n      \"display=${1|none,pts,notes|}\",\n      \"answerspace\",\n      \"marginpos=${1|left,right,inner,outer|}\",\n      \"marginwidth=${1|standard,expand,unset|}\",\n      \"noteragged=${1|left,right,center,justify,twoside|}\",\n      \"checkpts\",\n      \"correct=${1|true,false,conditional|}\"\n    ],\n    \"\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c,\\\\begin{colsitem}#c,\\\\begin{colsitem*}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\",\n      \"%enumitemkey\"\n    ],\n    \"\\\\begin{tablenum1},\\\\begin{tablenuma},\\\\begin{tablitem}\": [\n      \"style=${1|itemize,enumerate|}\",\n      \"label-format=${1:code}\",\n      \"label=${1:code}\",\n      \"ref=${1:code}\",\n      \"label-width=\",\n      \"label-offset=\",\n      \"item-format=${1:code}\",\n      \"item-indent=\",\n      \"column-sep=\",\n      \"label-align=${1|left,right,center|}\",\n      \"before-skip=\",\n      \"after-skip=\",\n      \"after-item-skip=\",\n      \"resume\",\n      \"start=${1:integer}\",\n      \"counter=${1:counter}\",\n      \"debug\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{exenumerate}#c,\\\\begin{colsenum}#c,\\\\begin{colsenum*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\exesheetset,\\\\usepackage/exesheet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"metastr\",\n      \"if\": \"metastr\"\n    },\n    {\n      \"name\": \"metastr\",\n      \"if\": \"metastr=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"exercisesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercisesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/exframe#c,\\\\exercisesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifsolutions\"\n    },\n    {\n      \"name\": \"insertsolutions\"\n    },\n    {\n      \"name\": \"writesolutions\"\n    },\n    {\n      \"name\": \"writesolutions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"writesolutions[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"readsolutions\"\n    },\n    {\n      \"name\": \"readsolutions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"readsolutions[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"insertproblems\"\n    },\n    {\n      \"name\": \"writeproblems\"\n    },\n    {\n      \"name\": \"writeproblems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"writeproblems[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"readproblems\"\n    },\n    {\n      \"name\": \"readproblems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"readproblems[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"exercisedata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercisedata{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\exercisedata\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defexercisedata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defexercisedata{${1:key%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"getexercisedata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getexercisedata{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\getexercisedata\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercisedataempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"exercisedataempty{${1:key%plain}}{${2:empty code}}{${3:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"defsheetdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defsheetdata{${1:key%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"setsheetdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsheetdata{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"getsheetdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsheetdata{${1:key%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"sheetdataempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sheetdataempty{${1:key%plain}}{${2:empty code}}{${3:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"defproblemdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defproblemdata{${1:key%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"setproblemdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setproblemdata{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"getproblemdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getproblemdata{${1:key%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"problemdataempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"problemdataempty{${1:key%plain}}{${2:empty code}}{${3:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"writeexercisedata\"\n    },\n    {\n      \"name\": \"showprobleminfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showprobleminfo{${1:keys%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"defprobleminfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defprobleminfo{${1:key%specialDef}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addprobleminfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addprobleminfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"addprobleminfo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addprobleminfo*{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"showpoints\"\n    },\n    {\n      \"name\": \"getsheetpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsheetpoints{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getproblempoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getproblempoints{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getsubproblempoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsubproblempoints{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getsolutionpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsolutionpoints{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"extractpoints\"\n    },\n    {\n      \"name\": \"extractpoints*\"\n    },\n    {\n      \"name\": \"switchpoints\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"switchpoints{${1:reg}}{${2:bonus}}{${3:both}}{${4:none}}{${5:val}}\"\n      }\n    },\n    {\n      \"name\": \"awardpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"awardpoints{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"awardpoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"awardpoints[${2:details}]{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"awardpoints*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"awardpoints*{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"awardpoints*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"awardpoints*[${2:details}]{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"sheettag\"\n    },\n    {\n      \"name\": \"problemtag\"\n    },\n    {\n      \"name\": \"subproblemtag\"\n    },\n    {\n      \"name\": \"getsheetlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsheetlist{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"getproblemlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getproblemlist{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getproblemlist*\"\n    },\n    {\n      \"name\": \"getsubproblemlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getsubproblemlist{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseloop{${1:items}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseloopstr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseloopstr{${1:items}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseloopstr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"exerciseloopstr[${3:macro%cmd}]{${1:items}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseloopret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexerciseloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerciseconfig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseconfig{${1:key%keyvals}}{${2:definition}}\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciseconfig\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exerciseconfig{${1:key%keyvals}}[${3:args}]{${2:definition}}\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciseconfigappend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseconfigappend{${1:key%keyvals}}{${2:definition}}\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciseconfigprepend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseconfigprepend{${1:key%keyvals}}{${2:definition}}\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getexerciseconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getexerciseconfig{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getexerciseconfig\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"getexerciseconfig{${1:key%keyvals}}[${2:args}]\",\n        \"keys\": [\n          \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciseconfigempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"exerciseconfigempty{${1:key%plain}}{${2:empty code}}{${3:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseifempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"exerciseifempty{${1:expr}}{${2:empty code}}{${3:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseifnotempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exerciseifnotempty{${1:expr}}{${2:filled code}}\"\n      }\n    },\n    {\n      \"name\": \"exercisestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exercisestyle{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\exercisestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defexercisestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defexercisestyle{${1:style%specialDef}}{${2:init}}\"\n      }\n    },\n    {\n      \"name\": \"defexercisestylearg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defexercisestylearg{${1:style%specialDef}}{${2:init}}\"\n      }\n    },\n    {\n      \"name\": \"defexercisestylearg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defexercisestylearg[${3:default}]{${1:style%specialDef}}{${2:init}}\"\n      }\n    },\n    {\n      \"name\": \"closeproblems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closesolutions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisecleardoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfracpoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfracpoints{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"solutionssection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solutionssection{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{problem},\\\\setproblemdata\",\n          \"\\\\begin{problem},\\\\begin{subproblem},\\\\begin{solution}\",\n          \"\\\\begin{problem},\\\\begin{subproblem}\",\n          \"\\\\begin{sheet},\\\\begin{problem},\\\\begin{subproblem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subproblem\"\n    },\n    {\n      \"name\": \"subproblem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{problem},\\\\begin{subproblem},\\\\begin{solution}\",\n          \"\\\\begin{problem},\\\\begin{subproblem}\",\n          \"\\\\begin{sheet},\\\\begin{problem},\\\\begin{subproblem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{problem},\\\\begin{subproblem},\\\\begin{solution}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sheet\"\n    },\n    {\n      \"name\": \"sheet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sheet},\\\\setsheetdata\",\n          \"\\\\begin{sheet},\\\\begin{problem},\\\\begin{subproblem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onlysolutions\"\n    },\n    {\n      \"name\": \"printproblem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keys%plain}}\"\n      }\n    },\n    {\n      \"name\": \"printsolution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keys%plain}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exframe#c\": [\n      \"extdata\",\n      \"extstyle\",\n      \"metastr\",\n      \"problemenv=${1:name}\",\n      \"subproblemenv=${1:name}\",\n      \"solutionenv=${1:name}\",\n      \"sheetenv=${1:name}\",\n      \"problemcounter=${1:name}\",\n      \"subproblemcounter=${1:name}\",\n      \"solutioncounter=${1:name}\",\n      \"sheetcounter=${1:name}\"\n    ],\n    \"\\\\usepackage/exframe#c,\\\\exercisesetup\": [\n      \"solutions\",\n      \"pdfdata=${1|auto,manual,sheet,off|}\",\n      \"lineno\",\n      \"twoside\",\n      \"solutionhref\",\n      \"warntext\",\n      \"autolabelsheet\",\n      \"autolabelproblem\",\n      \"solutionbuf\",\n      \"problembuf\",\n      \"emptytestchar=${1:char}\"\n    ],\n    \"\\\\begin{problem},\\\\setproblemdata\": [\n      \"title={${1:text}}\",\n      \"rawtitle={${1:text}}\",\n      \"%userproblemdatakey\"\n    ],\n    \"\\\\getproblemdata\": [\n      \"title\",\n      \"rawtitle\",\n      \"%userproblemdatakey\"\n    ],\n    \"\\\\begin{problem},\\\\begin{subproblem},\\\\begin{solution}\": [\n      \"author={${1:text}}\",\n      \"editor={${1:text}}\",\n      \"source={${1:text}}\",\n      \"difficulty={${1:text}}\",\n      \"keyword={${1:text}}\",\n      \"comment={${1:text}}\",\n      \"optional={${1:text}}\",\n      \"%userprobleminfokey\",\n      \"review={${1:text}}\",\n      \"recycle={${1:text}}\",\n      \"timesolve={${1:text}}\",\n      \"timepresent={${1:text}}\",\n      \"review={${1:text}}\",\n      \"recycle={${1:text}}\",\n      \"timesolve={${1:text}}\",\n      \"timepresent={${1:text}}\"\n    ],\n    \"\\\\showprobleminfo\": [\n      \"author\",\n      \"editor\",\n      \"source\",\n      \"difficulty\",\n      \"keyword\",\n      \"comment\",\n      \"optional\",\n      \"%userprobleminfokey\",\n      \"review\",\n      \"recycle\",\n      \"timesolve\",\n      \"timepresent\",\n      \"review\",\n      \"recycle\",\n      \"timesolve\",\n      \"timepresent\"\n    ],\n    \"\\\\begin{sheet},\\\\setsheetdata\": [\n      \"due={${1:text}}\",\n      \"handout={${1:text}}\",\n      \"title={${1:text}}\",\n      \"rawtitle={${1:text}}\",\n      \"author={${1:text}}\",\n      \"editor={${1:text}}\",\n      \"editdate={${1:text}}\",\n      \"%usersheetdatakey\",\n      \"points=${1:points}\"\n    ],\n    \"\\\\getsheetdata\": [\n      \"due\",\n      \"handout\",\n      \"title\",\n      \"rawtitle\",\n      \"author\",\n      \"editor\",\n      \"editdate\",\n      \"%usersheetdatakey\",\n      \"points\"\n    ],\n    \"\\\\exercisedata\": [\n      \"author={${1:text}}\",\n      \"title={${1:text}}\",\n      \"date={${1:text}}\",\n      \"subject={${1:text}}\",\n      \"keyword={${1:text}}\",\n      \"course={${1:text}}\",\n      \"institution={${1:text}}\",\n      \"instructor={${1:text}}\",\n      \"period={${1:text}}\",\n      \"material={${1:text}}\",\n      \"%userdatakey\"\n    ],\n    \"\\\\getexercisedata\": [\n      \"author\",\n      \"title\",\n      \"date\",\n      \"subject\",\n      \"keyword\",\n      \"course\",\n      \"institution\",\n      \"instructor\",\n      \"period\",\n      \"material\",\n      \"%userdatakey\"\n    ],\n    \"\\\\begin{problem},\\\\begin{subproblem}\": [\n      \"points=${1:points}\"\n    ],\n    \"\\\\begin{sheet},\\\\begin{problem},\\\\begin{subproblem}\": [\n      \"label=\",\n      \"tag=${1:tag}\"\n    ],\n    \"\\\\exerciseconfig,\\\\exerciseconfigappend,\\\\exerciseconfigprepend,\\\\getexerciseconfig\": [\n      \"termsheet\",\n      \"termsheets\",\n      \"termproblem\",\n      \"termproblems\",\n      \"termsolution\",\n      \"termsolutions\",\n      \"termpoint\",\n      \"termpoints\",\n      \"styletext\",\n      \"styletextproblem\",\n      \"styletextsolution\",\n      \"styletitle\",\n      \"styletitleproblem\",\n      \"styletitlesubproblem\",\n      \"styletitlesolution\",\n      \"styletitlesolutionsproblem\",\n      \"styletitlesolutions\",\n      \"styletitleproblems\",\n      \"skipproblemabove\",\n      \"skipproblembelow\",\n      \"skipproblemtitle\",\n      \"skipprobleminfo\",\n      \"skipproblemitem\",\n      \"skipsubproblemabove\",\n      \"skipsubproblembelow\",\n      \"skipsubproblemtitle\",\n      \"skipsubprobleminfo\",\n      \"skipsubproblemitem\",\n      \"skipsolutionabove\",\n      \"skipsolutionbelow\",\n      \"skipsolutiontitle\",\n      \"skipsolutioninfo\",\n      \"skipsolutionitem\",\n      \"skipsolutionitemsub\",\n      \"skipsolutionsabove\",\n      \"skipsolutionsbelow\",\n      \"skipsolutionsproblemabove\",\n      \"skipsolutionsproblemtitle\",\n      \"skipsolutionsproblem\",\n      \"skipsolutionstitle\",\n      \"skipproblemsabove\",\n      \"skipproblemsbelow\",\n      \"skipproblemstitle\",\n      \"insertsheettitle\",\n      \"insertsheetclearpage\",\n      \"insertsheetbefore\",\n      \"insertsheetafter\",\n      \"insertsolutionsbefore\",\n      \"insertsolutionsafter\",\n      \"insertproblemsbefore\",\n      \"insertproblemsafter\",\n      \"insertproblembefore\",\n      \"insertproblemafter\",\n      \"insertproblemsolution\",\n      \"insertprobleminfo\",\n      \"insertproblemselect\",\n      \"insertsubproblembefore\",\n      \"insertsubproblemafter\",\n      \"insertsubprobleminfo\",\n      \"insertsubproblemsolution\",\n      \"insertsolutionbefore\",\n      \"insertsolutionafter\",\n      \"insertsolutioninfo\",\n      \"composeitemsep\",\n      \"composetitlesheet\",\n      \"composemetasheet\",\n      \"composetocsheet\",\n      \"composeitemproblem\",\n      \"composeitemproblemsep\",\n      \"composetitleproblem\",\n      \"composetocproblem\",\n      \"composeitemsubproblem\",\n      \"composeitemsubproblemsep\",\n      \"composetitlesubproblem\",\n      \"composeitemsolution\",\n      \"composeitemsolutionsub\",\n      \"composeitemsolutionsep\",\n      \"composetitlesolutionsingle\",\n      \"composetitlesolutionmulti\",\n      \"composetocsolution\",\n      \"composetitlesolutions\",\n      \"composetitleproblems\",\n      \"composetocsolutions\",\n      \"composetocproblems\",\n      \"composetitlesolutionsproblemsingle\",\n      \"composetitlesolutionsproblemmulti\",\n      \"composeitemsolutionlabel\",\n      \"composepointsnum\",\n      \"composepoints\",\n      \"composepointsstart\",\n      \"composepointsmargin\",\n      \"composepointsbody\",\n      \"composepointssheet\",\n      \"composepointsaward\",\n      \"composepointsawardalt\",\n      \"composepointspair\",\n      \"composepointspairbody\",\n      \"composepointspairstart\",\n      \"composepointspairmargin\",\n      \"composepointspairsheet\",\n      \"composepointspairaward\",\n      \"composepointspairawardalt\",\n      \"composepointspairbodyproblem\",\n      \"composepointspairbodysubproblem\",\n      \"composepointspairbodysolution\",\n      \"composepointspairstartproblem\",\n      \"composepointspairstartsubproblem\",\n      \"composepointspairstartsolution\",\n      \"insertpointsmargin\",\n      \"insertwarnpoints\",\n      \"insertwarnpointsrerun\",\n      \"countersheet\",\n      \"counterproblem\",\n      \"counterproblemmax\",\n      \"countersubproblem\",\n      \"countersubproblemmax\",\n      \"countersheetequation\",\n      \"counterproblemequation\",\n      \"countersolutionequation\",\n      \"tagsheet\",\n      \"tagproblem\",\n      \"tagsubproblem\",\n      \"labelsheet\",\n      \"labelproblem\",\n      \"labelsubproblem\",\n      \"toclevelsheet\",\n      \"toclevelproblem\",\n      \"toclevelproblems\",\n      \"toclevelsolution\",\n      \"toclevelsolutions\",\n      \"extsolutions\",\n      \"extproblems\"\n    ],\n    \"\\\\exercisestyle\": [\n      \"solutionbelow=${1|here,subproblem,subproblem*,problem,problem*,sheet,manual|}\",\n      \"problempointsat=${1|start,start*,margin,end,manual|}\",\n      \"subproblempointsat=${1|start,start*,margin,end,manual|}\",\n      \"solutionpointsat=${1|start,start*,margin,end,manual|}\",\n      \"problemby=${1:counter}\",\n      \"equationby=${1:counter}\",\n      \"problembysheet\",\n      \"equationbysheet\",\n      \"pagebysheet\",\n      \"sheetequation\",\n      \"problemequation\",\n      \"solutionequation\",\n      \"fracpoints\",\n      \"twoside\",\n      \"%userexercisestyle\",\n      \"plainheader\",\n      \"contents\",\n      \"solutionsf\",\n      \"solutiondimproblem\",\n      \"solutionsep\",\n      \"plainheader\",\n      \"contents\",\n      \"solutionsf\",\n      \"solutiondimproblem\",\n      \"solutionsep\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exframe#c\",\n    \"\\\\usepackage/exframe#c,\\\\exercisesetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/exp-testopt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"expnewcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"expnewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"expnewcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"expnewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"expnewcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expnewcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"expnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"expnewcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"expnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"expnewcommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"expnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expnewcommand*{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expex-acro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"acro\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"exref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exref{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"exref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exref[${2:tag1}]{${1:tag2}}\"\n      }\n    },\n    {\n      \"name\": \"exref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"exref[${2:range}][${3:tag1}]{${1:tag2}}\"\n      }\n    },\n    {\n      \"name\": \"exrefnil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exrefnil{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"exrefnil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exrefnil[${2:tag1}]{${1:tag2}}\"\n      }\n    },\n    {\n      \"name\": \"mexref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mexref{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mexref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mexref[${2:separator}]{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gl{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"newGlossingAbbrev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newGlossingAbbrev{${1:id}}{${2:long form}}\"\n      }\n    },\n    {\n      \"name\": \"glossingAbbrevsList\"\n    },\n    {\n      \"name\": \"obj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obj{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ort{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dbqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dbqu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ungr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ungr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bad{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lxm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lxm{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/expex-acro#c\": [\n      \"abbrevs=${1|leipzig,all|}\",\n      \"refmode=${1|expex,latex|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/expex-acro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/expex-glossonly.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"expex\"\n    },\n    {\n      \"name\": \"gb4e\",\n      \"if\": \"gb4e\"\n    },\n    {\n      \"name\": \"gb4e-emulate\",\n      \"if\": \"gb4e-emulate\"\n    },\n    {\n      \"name\": \"linguex\",\n      \"if\": \"linguex\"\n    },\n    {\n      \"name\": \"covington\",\n      \"if\": \"covington\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/expex-glossonly#c\": [\n      \"gb4e\",\n      \"gb4e-emulate\",\n      \"linguex\",\n      \"covington\",\n      \"covington={${1:package options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/expex-glossonly#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/expex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lingset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lingset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ex\"\n    },\n    {\n      \"name\": \"ex<tag>\"\n    },\n    {\n      \"name\": \"ex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ex\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"ex[${1:options%keyvals}]<${2:tag}>\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xe\"\n    },\n    {\n      \"name\": \"excnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingnumoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingtextoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingaboveexskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingbelowexskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pex\"\n    },\n    {\n      \"name\": \"pex<tag>\"\n    },\n    {\n      \"name\": \"pex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pex\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"pex[${1:options%keyvals}]<${2:tag}>\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pexcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linglabeloffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linglabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingpreambleoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linginterpartskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingbelowgpreambleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"a\"\n    },\n    {\n      \"name\": \"a<label>\"\n    },\n    {\n      \"name\": \"a\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"a[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\a\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"a\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"a[${1:options%keyvals}]<${2:label}>\",\n        \"keys\": [\n          \"\\\\a\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definelabeltype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definelabeltype{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"actualexno\"\n    },\n    {\n      \"name\": \"keepexcntlocal\"\n    },\n    {\n      \"name\": \"definelingstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definelingstyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lingeveryex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingEveryex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"judge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"judge{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"judge*\"\n    },\n    {\n      \"name\": \"ljudge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ljudge{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ljudge*\"\n    },\n    {\n      \"name\": \"begingl\"\n    },\n    {\n      \"name\": \"begingl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"begingl[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glpreamble\"\n    },\n    {\n      \"name\": \"glpreamble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glpreamble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gla\",\n      \"detail\": \"⪥\",\n      \"doc\": \"Greater-than beside less-than\"\n    },\n    {\n      \"name\": \"gla\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gla[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"⪥\",\n      \"doc\": \"Greater-than beside less-than\"\n    },\n    {\n      \"name\": \"glb\"\n    },\n    {\n      \"name\": \"glb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glb[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glc\"\n    },\n    {\n      \"name\": \"glc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glc[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glft\"\n    },\n    {\n      \"name\": \"glft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glft[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endgl\"\n    },\n    {\n      \"name\": \"lingaboveglbskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingaboveglcskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingbelowglpreambleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingaboveglftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingextraglskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lingglspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nogloss\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nogloss{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"endpreamble\"\n    },\n    {\n      \"name\": \"trailingcitation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trailingcitation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defineglwlevels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defineglwlevels{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"beginglpanel\"\n    },\n    {\n      \"name\": \"beginglpanel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"beginglpanel[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"endpanel\"\n    },\n    {\n      \"name\": \"gluf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastx\"\n    },\n    {\n      \"name\": \"nextx\"\n    },\n    {\n      \"name\": \"blastx\"\n    },\n    {\n      \"name\": \"anextx\"\n    },\n    {\n      \"name\": \"bblastx\"\n    },\n    {\n      \"name\": \"deftag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deftag{${1:reference%text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"deftagex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deftagex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"deftaglabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deftaglabel{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"deftagpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deftagpage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"getref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getref{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getref{${1:tag.label}}\"\n      }\n    },\n    {\n      \"name\": \"getfullref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfullref{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getfullref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfullref{${1:tag.label}}\"\n      }\n    },\n    {\n      \"name\": \"refproofing\"\n    },\n    {\n      \"name\": \"gathertags\"\n    },\n    {\n      \"name\": \"tagfilesuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagfilesuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"lastlabel\"\n    },\n    {\n      \"name\": \"hwit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hwit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"labels\"\n    },\n    {\n      \"name\": \"labels\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"labels[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tl\"\n    },\n    {\n      \"name\": \"nl\"\n    },\n    {\n      \"name\": \"tspace\"\n    },\n    {\n      \"name\": \"tspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tspace[${1:key%plain}]\"\n      }\n    },\n    {\n      \"name\": \"crs\"\n    },\n    {\n      \"name\": \"exdisplay\"\n    },\n    {\n      \"name\": \"exdisplay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"exdisplay[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noexno\"\n    },\n    {\n      \"name\": \"exnoprint\"\n    },\n    {\n      \"name\": \"crnb\"\n    },\n    {\n      \"name\": \"Lingset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lingset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exbreak\"\n    },\n    {\n      \"name\": \"exbreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"exbreak[${1:dimen%l}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\a\": [\n      \"label=${1:text}\",\n      \"tag=${1:tag}\"\n    ],\n    \"\\\\lingset,\\\\ex,\\\\pex,\\\\definelabeltype,\\\\definelingstyle,\\\\begingl,\\\\glpreamble,\\\\gla,\\\\glb,\\\\glc,\\\\glft,\\\\beginglpanel,\\\\labels,\\\\exdisplay,\\\\Lingset#c\": [\n      \"numoffset=\",\n      \"textoffset=\",\n      \"aboveexskip=\",\n      \"belowexskip=\",\n      \"exskip=\",\n      \"exno=${1:text}\",\n      \"exnoformat=${1:format}\",\n      \"exnotype=${1|arabic|}\",\n      \"labeltype=${1|alpha,caps,numeric,roman|}\",\n      \"labeloffset=\",\n      \"labelwidth=\",\n      \"preambleoffset=\",\n      \"interpartskip=\",\n      \"belowgpreambleskip=\",\n      \"samplelabel=${1:text}\",\n      \"nopreamble\",\n      \"labelanchor=${1|numright,numleft,margin|}\",\n      \"preambleanchor=${1|numright,labelleft,text|}\",\n      \"textanchor=${1|numleft,normal|}\",\n      \"everylabel=${1:code}\",\n      \"labelformat=${1:format}\",\n      \"labelalign=${1|left,center,right|}\",\n      \"labelgen=${1|char,number,romannumber,list|}\",\n      \"pexcnt=${1:integer}\",\n      \"labellist={${1:labels}}\",\n      \"sampleexno=${1:text}\",\n      \"avoidnumlabelclash\",\n      \"appendtopexarg={${1:tokens}}\",\n      \"everyex=${1:code}\",\n      \"Everyex=${1:code}\",\n      \"lingstyle=${1:style name}\",\n      \"*=${1:string}\",\n      \"everygl=${1:code}\",\n      \"everyglpreamble=${1:code}\",\n      \"everyglilg=${1:code}\",\n      \"everygla=${1:code}\",\n      \"everyglb=${1:code}\",\n      \"everyglc=${1:code}\",\n      \"everyglft=${1:code}\",\n      \"aboveglbskip=\",\n      \"aboveglcskip=\",\n      \"belowglpreambleskip=\",\n      \"aboveglftskip=\",\n      \"extraglskip=\",\n      \"glspace=\",\n      \"glrightskip=\",\n      \"glhangindent=\",\n      \"glhangstyle=${1|none,normal,cascade|}\",\n      \"glstyle=${1|wrap,nlevel|}\",\n      \"everyglword=${1:code}\",\n      \"glneveryline={${1:tokens1,tokens2,...}}\",\n      \"glnabovelineskip={${1:dimen1,dimen2,...}}\",\n      \"glwidth=\",\n      \"mincitesep=\",\n      \"everytrailingcitation=${1:code}\",\n      \"glrightskip=\",\n      \"glftpos=${1|below,right|}\",\n      \"sssep=\",\n      \"ssratio=${1:ratio}\",\n      \"ssrightskip=\",\n      \"everypanel=${1:code}\",\n      \"glufcloseup=\",\n      \"everygluf=${1:code}\",\n      \"glwordalign=${1|left,center|}\",\n      \"tag=${1:tag}\",\n      \"fullrefformat=${1:format}\",\n      \"exbreakfil=\",\n      \"exbreakpenalty=${1:integer}\",\n      \"splitpartspenalty=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expkv-cs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv-pop\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekvcSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcSplit{${1:cmd}}{${2:primary keys}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcSplitAndForward\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcSplitAndForward{${1:cmd}}{${2:after}}{${3:primary keys}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcSplitAndUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcSplitAndUse{${1:cmd}}{${2:primary keys}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcHash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcHash{${1:cmd}}{${2:primary keys}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcHashAndForward\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcHashAndForward{${1:cmd}}{${2:after}}{${3:primary keys}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcHashAndUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcHashAndUse{${1:cmd}}{${2:primary keys}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcValue{${1:key%plain}}{${2:key list}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcValueFast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcValueFast{${1:key%plain}}{${2:key list}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcValueSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcValueSplit{${1:key%plain}}{${2:key list}}{${3:next}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcValueSplitFast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcValueSplitFast{${1:key%plain}}{${2:key list}}{${3:next}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcSecondaryKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcSecondaryKeys{${1:cmd}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcChange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcChange{${1:cmd}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcFlagGetHeights\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcFlagGetHeights{${1:flag-list}}{${2:next}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcPass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcPass{${1:cmd}}{${2:key%plain}}{${3:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expkv-def.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv-pop\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekvdefinekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvdefinekeys{${1:set}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expkv-opt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekvoProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvoProcessOptions{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoProcessLocalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvoProcessLocalOptions{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoProcessGlobalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvoProcessGlobalOptions{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoProcessFutureOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvoProcessFutureOptions{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoProcessOptionsList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvoProcessOptionsList{${1:list macro}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoUseUnknownHandlers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvoUseUnknownHandlers{${1:cmd1}}{${2:cmd2}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoUseUnknownHandlers*\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expkv-pop.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekvpNewParser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpNewParser{${1:parser}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvpDefType{${1:parser}}{${2:type}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvpDefPrefix{${1:parser}}{${2:prefix}}{${3:pre}}{${4:post}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefAutoPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvpDefAutoPrefix{${1:parser}}{${2:pre}}{${3:post}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefPrefixStore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ekvpDefPrefixStore{${1:parser}}{${2:prefix}}{${3:cmd}}{${4:pre}}{${5:post}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefPrefixLet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ekvpDefPrefixLet{${1:parser}}{${2:prefix}}{${3:cmd}}{${4:pre}}{${5:post}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpLet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvpLet{${1:parser}}{${2:type}}{${3:name1}}{${4:name2}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpLet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"ekvpLet{${1:parser1}}{${2:type}}{${3:name1}}[${5:parser2}]{${4:name2}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpValueAlwaysRequired\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpValueAlwaysRequired{${1:parser}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefNoValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpDefNoValue{${1:parser}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpUseNoValueMarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpUseNoValueMarker{${1:parser}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefNoValuePrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvpDefNoValuePrefix{${1:parser}}{${2:pre}}{${3:post}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpDefNoType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpDefNoType{${1:parser}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpEOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpGobbleP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpEOT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpGobbleT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpEOA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpGobbleA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekvpIfNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvpIfNoVal{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpAssertIf{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertIf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ekvpAssertIf[${3:marker}]{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertIfNot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpAssertIfNot{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertIfNot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ekvpAssertIfNot[${3:marker}]{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpAssertTF{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ekvpAssertTF[${3:marker}]{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTFNot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpAssertTFNot{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTFNot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ekvpAssertTFNot[${3:marker}]{${1:if}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpAssertValue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ekvpAssertValue[${2:marker}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertNoValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpAssertNoValue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertNoValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ekvpAssertNoValue[${2:marker}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertOneValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpAssertOneValue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertOneValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ekvpAssertOneValue[${2:marker}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTwoValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpAssertTwoValues{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpAssertTwoValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ekvpAssertTwoValues[${2:marker}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpProtect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvpProtect{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvpParse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvpParse{${1:parser}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/expkv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"expkv-pop\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"expkv-cs\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"expkv-def\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"expkv-opt\",\n      \"if\": \"all\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ekvdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvdef{${1:set}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvdefNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvdefNoVal{${1:set}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvlet{${1:set}}{${2:key%plain}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ekvletNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvletNoVal{${1:set}}{${2:key%plain}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ekvletkv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvletkv{${1:set1}}{${2:key1}}{${3:set2}}{${4:key2}}\"\n      }\n    },\n    {\n      \"name\": \"ekvletkvNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvletkvNoVal{${1:set1}}{${2:key1}}{${3:set2}}{${4:key2}}\"\n      }\n    },\n    {\n      \"name\": \"ekvdefunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvdefunknown{${1:set}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvdefunknownNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvdefunknownNoVal{${1:set}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ekvredirectunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvredirectunknown{${1:set}}{${2:set-list}}\"\n      }\n    },\n    {\n      \"name\": \"ekvredirectunknownNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvredirectunknownNoVal{${1:set}}{${2:set-list}}\"\n      }\n    },\n    {\n      \"name\": \"ekvletunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvletunknown{${1:set}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ekvletunknownNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvletunknownNoVal{${1:set}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ekvifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvifdefined{${1:set}}{${2:key%plain}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ekvifdefinedNoVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ekvifdefinedNoVal{${1:set}}{${2:key%plain}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ekvifdefinedset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvifdefinedset{${1:set}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsneak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvsneak{${1:after}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsneakPre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvsneakPre{${1:after}}\"\n      }\n    },\n    {\n      \"name\": \"ekvbreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvbreak{${1:after}}\"\n      }\n    },\n    {\n      \"name\": \"ekvbreakPreSneak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvbreakPreSneak{${1:after}}\"\n      }\n    },\n    {\n      \"name\": \"ekvbreakPostSneak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvbreakPostSneak{${1:after}}\"\n      }\n    },\n    {\n      \"name\": \"ekvmorekv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvmorekv{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvchangeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ekvchangeset{${1:new-set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvset{${1:set}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsetSneaked\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvsetSneaked{${1:set}}{${2:sneak}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsetdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvsetdef{${1:cmd}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsetSneakeddef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvsetSneakeddef{${1:cmd}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"ekvsetdefSneaked\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvsetdefSneaked{${1:cmd}}{${2:set}}{${3:sneaked}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcompile{${1:cmd}}{${2:set}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcompile*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvcompile*{${1:cmd}}{${2:set}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ekvparse{${1:code1}}{${2:code2}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoptarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvoptarg{${1:next}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"ekvoptargTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvoptargTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ekvcsvloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekvcsvloop{${1:code}}{${2:csv-list}}\"\n      }\n    },\n    {\n      \"name\": \"ekverr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ekverr{${1:package}}{${2:message%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/expkv#c\": [\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/expkv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/export.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"openexport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openexport{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"openexport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"openexport[${2:extension}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"closeexport\"\n    },\n    {\n      \"name\": \"Export\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Export{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ExportLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExportLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"PreciseExportLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreciseExportLength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ExportMuskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExportMuskip{${1:muskip}}\"\n      }\n    },\n    {\n      \"name\": \"ExportParameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExportParameter{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"ExportIf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExportIf{${1:ifname}}\"\n      }\n    },\n    {\n      \"name\": \"ExportPageLayout\"\n    },\n    {\n      \"name\": \"ExportArrayParams\"\n    },\n    {\n      \"name\": \"Import\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Import{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Import\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Import[${2:extension}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"xcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcaption{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"xcaptionf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcaptionf{${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"xcaptiont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcaptiont{${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"AddInputInAux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddInputInAux{${1:secondary document.aux}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/exsol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"varwidth\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"exercisename\"\n    },\n    {\n      \"name\": \"exercisesname\"\n    },\n    {\n      \"name\": \"seriesname\"\n    },\n    {\n      \"name\": \"solutionname\"\n    },\n    {\n      \"name\": \"solutionsname\"\n    },\n    {\n      \"name\": \"loadSolutions\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exercises\"\n    },\n    {\n      \"name\": \"exercises\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exercises},\\\\begin{exerciseseries}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciseseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"exerciseseries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{exercises},\\\\begin{exerciseseries}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"informulacollection\"\n    },\n    {\n      \"name\": \"informulacollectiononly\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/exsol#c\": [\n      \"local\",\n      \"external\",\n      \"inline\",\n      \"nolabels\",\n      \"exercisesfontsize=${1:fontsize csname}\",\n      \"exerciseaslist\",\n      \"copyexercisesinsolutions\",\n      \"minipage\",\n      \"usesolutionserieslabels\"\n    ],\n    \"\\\\begin{exercises},\\\\begin{exerciseseries}\": [\n      \"columns=${1:integer}\",\n      \"exsubrule\",\n      \"solsubrule\",\n      \"subrule\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/exsol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/extarrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongequal{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongleftarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongleftarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongleftrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongleftrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLeftrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLeftrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongleftrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongleftrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongleftarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongleftarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongleftarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongleftarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongrightarrow{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongrightarrow[${2:subscript}]{${1:superscript}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/extdash.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Hyphdash\"\n    },\n    {\n      \"name\": \"Hyphdash*\"\n    },\n    {\n      \"name\": \"Endash\"\n    },\n    {\n      \"name\": \"Endash*\"\n    },\n    {\n      \"name\": \"Emdash\"\n    },\n    {\n      \"name\": \"Emdash*\"\n    },\n    {\n      \"name\": \"Halfspace\"\n    },\n    {\n      \"name\": \"Halfspace*\"\n    },\n    {\n      \"name\": \"HyphOrDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BarOrDash\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/extdash#c\": [\n      \"allowbreakbefore\",\n      \"wordspacearound\",\n      \"nospacearound\",\n      \"shortcuts\",\n      \"shortemdash\",\n      \"cyremdash\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/extdash#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/extpfeil.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shortleftarrow\"\n    },\n    {\n      \"name\": \"shortrightarrow\"\n    },\n    {\n      \"name\": \"xlongequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongequal[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtwoheadrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwoheadrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xtofrom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtofrom[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"newextarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newextarrow{${1:cmd}}{${2:space}}{${3:arrow}}\"\n      }\n    },\n    {\n      \"name\": \"twoarrowsleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoarrowsleft{${1:arrow1}}{${2:arrow2}}\"\n      }\n    },\n    {\n      \"name\": \"twoarrowsright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twoarrowsright{${1:arrow1}}{${2:arrow2}}\"\n      }\n    },\n    {\n      \"name\": \"bigtwoarrowsleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigtwoarrowsleft{${1:arrow1}}{${2:arrow2}}\"\n      }\n    },\n    {\n      \"name\": \"bigtwoarrowsright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bigtwoarrowsright{${1:arrow1}}{${2:arrow2}}\"\n      }\n    },\n    {\n      \"name\": \"bigRelbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigRelbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bigRelbar[${1:dimen%l}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/extract.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"extractionlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractionlabel{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"extractline\"\n    },\n    {\n      \"name\": \"extractline*\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"extract\"\n    },\n    {\n      \"name\": \"extract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"extract*\"\n    },\n    {\n      \"name\": \"extract*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"extractskip\"\n    },\n    {\n      \"name\": \"extractskip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:name}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/extract#c\": [\n      \"active\",\n      \"header\",\n      \"handles\",\n      \"copydocumentclass\",\n      \"generate=${1:file}\",\n      \"extract-env={${1:env1,env2,...}}\",\n      \"extract-cmd=${1:cmd}\",\n      \"extract-cmdline=${1:cmd}\",\n      \"line-nrs=${1:number spec}\",\n      \"line-labels={${1:label1,label2,...}}\",\n      \"extract-nrs=${1:number spec}\",\n      \"extract-labels={${1:label1,label2,...}}\",\n      \"extractskip-nrs=${1:number spec}\",\n      \"extractskip-labels={${1:label1,label2,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/extract#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/extraipa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tipa\"\n    },\n    {\n      \"name\": \"tipx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"crtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dottedtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dottedtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"doubletilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doubletilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"finpartvoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"finpartvoice{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"finpartvoiceless\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"finpartvoiceless{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"inipartvoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inipartvoice{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"inipartvoiceless\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inipartvoiceless{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"partvoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partvoice{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"partvoiceless\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partvoiceless{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sliding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sliding{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"spreadlips\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spreadlips{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subcorner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcorner{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subdoublebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdoublebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subdoublevert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdoublevert{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sublptr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublptr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subrptr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subrptr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"whistle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whistle{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/extramarks.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"firstleftmark\"\n    },\n    {\n      \"name\": \"lastrightmark\"\n    },\n    {\n      \"name\": \"firstrightmark\"\n    },\n    {\n      \"name\": \"lastleftmark\"\n    },\n    {\n      \"name\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extramarks{${1:left-mark%text}}{${2:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"firstleftxmark\"\n    },\n    {\n      \"name\": \"firstrightxmark\"\n    },\n    {\n      \"name\": \"topleftxmark\"\n    },\n    {\n      \"name\": \"toprightxmark\"\n    },\n    {\n      \"name\": \"lastleftxmark\"\n    },\n    {\n      \"name\": \"lastrightxmark\"\n    },\n    {\n      \"name\": \"firstxmark\"\n    },\n    {\n      \"name\": \"lastxmark\"\n    },\n    {\n      \"name\": \"topxmark\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/extsizes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/extsizes#c\": [\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/extsizes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fadingimage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UPFadingImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UPFadingImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"UPFadingImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UPFadingImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UPFadingImage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UPFadingImage*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"UPFadingImage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UPFadingImage*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LOWFadingImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LOWFadingImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LOWFadingImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LOWFadingImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LOWFadingImage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LOWFadingImage*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LOWFadingImage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LOWFadingImage*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LTFadingImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTFadingImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LTFadingImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTFadingImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LTFadingImage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTFadingImage*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LTFadingImage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTFadingImage*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RITFadingImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RITFadingImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"RITFadingImage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RITFadingImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RITFadingImage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RITFadingImage*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"RITFadingImage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RITFadingImage*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\UPFadingImage,\\\\UPFadingImage*,\\\\LOWFadingImage,\\\\LOWFadingImage*,\\\\LTFadingImage,\\\\LTFadingImage*,\\\\RITFadingImage,\\\\RITFadingImage*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/faktor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"faktor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"faktor{${1:left expr}}{${2:right expr}}\"\n      }\n    },\n    {\n      \"name\": \"faktor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"faktor[${3:stylecmd}]{${1:left expr}}{${2:right expr}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/familytree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"indvdldef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indvdldef{${1:new box name}}{${2:individual name}}\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"indvdldef{${1:new box name}}{${2:individual name}}[${3:additional info}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"indvdldef{${1:new box name}}{${2:individual name}}[${3:additional info}][${4:maleline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"indvdldef{${1:new box name}}[${3:title%text}]{${2:individual name}}\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"indvdldef{${1:new box name}}[${3:title%text}]{${2:individual name}}[${4:additional info}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]\",\n        \"snippet\": \"indvdldef{${1:new box name}}[${3:title%text}]{${2:individual name}}[${4:additional info}][${5:maleline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}{${2:individual name}}\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}{${2:individual name}}[${4:additional info}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}{${2:individual name}}[${4:additional info}][${5:maleline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}[${4:title%text}]{${2:individual name}}\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}[${4:title%text}]{${2:individual name}}[${5:additional info}]\"\n      }\n    },\n    {\n      \"name\": \"indvdldef\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[][]\",\n        \"snippet\": \"indvdldef[${3:child mark}]{${1:new box name}}[${4:title%text}]{${2:individual name}}[${5:additional info}][${6:maleline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"biological\"\n    },\n    {\n      \"name\": \"ftbiological\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adopted\"\n    },\n    {\n      \"name\": \"ftadopted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"top\",\n      \"detail\": \"⊤\",\n      \"doc\": \"Down tack, top\"\n    },\n    {\n      \"name\": \"fttop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blank\"\n    },\n    {\n      \"name\": \"ftblank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haschild\"\n    },\n    {\n      \"name\": \"fthaschild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"private\"\n    },\n    {\n      \"name\": \"ftprivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleline\"\n    },\n    {\n      \"name\": \"ftmaleline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femaleline\"\n    },\n    {\n      \"name\": \"ftfemaleline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patrilineal\"\n    },\n    {\n      \"name\": \"ftpatrilineal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrilineal\"\n    },\n    {\n      \"name\": \"ftmatrilineal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nameboxcfg{${1:space from child mark}}{${2:font}}{${3:space to maleline}}{${4:maleline length}}\"\n      }\n    },\n    {\n      \"name\": \"ftnameboxcfg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ftnameboxcfg{${1:space from child mark}}{${2:font}}{${3:space to maleline}}{${4:maleline length}}\"\n      }\n    },\n    {\n      \"name\": \"cmarkboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmarkboxcfg{${1:space between two lines}}{${2:line length}}\"\n      }\n    },\n    {\n      \"name\": \"ftcmarkboxcfg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ftcmarkboxcfg{${1:space between two lines}}{${2:line length}}\"\n      }\n    },\n    {\n      \"name\": \"titleboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titleboxcfg{${1:indent}}{${2:font}}{${3:linestretch}}{${4:vspace to individual name}}\"\n      }\n    },\n    {\n      \"name\": \"fttitleboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fttitleboxcfg{${1:indent}}{${2:font}}{${3:linestretch}}{${4:vspace to individual name}}\"\n      }\n    },\n    {\n      \"name\": \"optboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"optboxcfg{${1:vspace to individual name}}{${2:indent}}{${3:font}}{${4:linestretch}}\"\n      }\n    },\n    {\n      \"name\": \"ftoptboxcfg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ftoptboxcfg{${1:vspace to individual name}}{${2:indent}}{${3:font}}{${4:linestretch}}\"\n      }\n    },\n    {\n      \"name\": \"sblngdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sblngdef{${1:new box name}}{${2:list of individual boxes}}\"\n      }\n    },\n    {\n      \"name\": \"ftsblngdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ftsblngdef{${1:new box name}}{${2:list of individual boxes}}\"\n      }\n    },\n    {\n      \"name\": \"ivaldef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ivaldef{${1:new box name}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"ftivaldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ftivaldef{${1:new box name}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"ival\"\n    },\n    {\n      \"name\": \"ftival\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivali\"\n    },\n    {\n      \"name\": \"ftivali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivalii\"\n    },\n    {\n      \"name\": \"ftivalii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sblngboxcfg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sblngboxcfg{${1:space between siblings}}\"\n      }\n    },\n    {\n      \"name\": \"ftsblngboxcfg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftsblngboxcfg{${1:space between siblings}}\"\n      }\n    },\n    {\n      \"name\": \"pcdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pcdef{${1:new box name}}{${2:parent box name}}{${3:child box name}}\"\n      }\n    },\n    {\n      \"name\": \"ftpcdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ftpcdef{${1:new box name}}{${2:parent box name}}{${3:child box name}}\"\n      }\n    },\n    {\n      \"name\": \"gensdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gensdef{${1:new box name}}{${2:parent box name}}{${3:list of connection pairs}}\"\n      }\n    },\n    {\n      \"name\": \"ftgensdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ftgensdef{${1:new box name}}{${2:parent box name}}{${3:list of connection pairs}}\"\n      }\n    },\n    {\n      \"name\": \"mrrgdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrrgdef{${1:new box name}}{${2:spouse list A}}{${3:oneself}}{${4:spouse list B}}\"\n      }\n    },\n    {\n      \"name\": \"mrrgdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"mrrgdef{${1:new box name}}{${2:spouse list A}}{${3:oneself}}{${4:spouse list B}}[${5:childline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"ftmrrgdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ftmrrgdef{${1:new box name}}{${2:spouse list A}}{${3:oneself}}{${4:spouse list B}}\"\n      }\n    },\n    {\n      \"name\": \"ftmrrgdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"ftmrrgdef{${1:new box name}}{${2:spouse list A}}{${3:oneself}}{${4:spouse list B}}[${5:childline xlength}]\"\n      }\n    },\n    {\n      \"name\": \"mrrgboxcfg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mrrgboxcfg{${1:space between two lines}}{${2:space between name and line}}{${3:line length}}\"\n      }\n    },\n    {\n      \"name\": \"ftmrrgboxcfg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ftmrrgboxcfg{${1:space between two lines}}{${2:space between name and line}}{${3:line length}}\"\n      }\n    },\n    {\n      \"name\": \"ftymd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftymd{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"ftymd\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ftymd{${1:year}}[${2:month}]\"\n      }\n    },\n    {\n      \"name\": \"ftymd\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"ftymd{${1:year}}[${2:month}][${3:date}]\"\n      }\n    },\n    {\n      \"name\": \"ftundef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftundef{${1:box name}}\"\n      }\n    },\n    {\n      \"name\": \"ifftdbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftdbgtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftdbgfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancybox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shadowbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doublebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ovalbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thinlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicklines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadowsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cornersize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cornersize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cornersize*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cornersize*{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"fancyoval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"fancyoval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fancyoval\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"fancyoval(${2:width},${3:height})[${1:portion%keyvals}]\",\n        \"keys\": [\n          \"\\\\fancyoval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TheSbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GenericCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GenericCaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"item(${1:vspace%l})\"\n      }\n    },\n    {\n      \"name\": \"item\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"item(${2:vspace%l})[${1:label%plain}]\"\n      }\n    },\n    {\n      \"name\": \"boxput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"boxput(${3:x},${4:y}){${1:contents1}}{${2:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"boxput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"boxput*(${3:x},${4:y}){${1:contents1}}{${2:contents2}}\"\n      }\n    },\n    {\n      \"name\": \"fancyput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fancyput(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"thisfancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancyput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"thisfancyput*(${2:x},${3:y}){${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fancypage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancypage{${1:cmds1}}{${2:cmds2}}\"\n      }\n    },\n    {\n      \"name\": \"thisfancypage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thisfancypage{${1:cmds1}}{${2:cmds2}}\"\n      }\n    },\n    {\n      \"name\": \"LandScape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LandScape{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Landscape{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Landscape*{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UsePageParameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VerbBox{${1:cmd}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AltGetVerbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndVerbatimTokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimEnvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput[${2:alignment%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim[${2:alignment%keyvals}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb{${1:cmd}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb[${2:default}]{${1:cmd}}|${3:code}|\"\n      }\n    },\n    {\n      \"name\": \"VerbatimSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimFuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatimLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbatimCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbOutCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EveryVerbOutLine\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Sbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beqnarray\"\n    },\n    {\n      \"name\": \"Beqnarray*\"\n    },\n    {\n      \"name\": \"landfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float}}{${2:rotation_command}}\"\n      }\n    },\n    {\n      \"name\": \"Bcenter\"\n    },\n    {\n      \"name\": \"Bcenter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bflushleft\"\n    },\n    {\n      \"name\": \"Bflushleft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bflushright\"\n    },\n    {\n      \"name\": \"Bflushright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Blist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:item_type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Blist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:item_type}}{${2:code}}[${3:alignment%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"LandScape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Landscape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:paperwidth%l}}{${2:paperheight%l}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Verbatim\"\n    },\n    {\n      \"name\": \"LVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"VerbatimOut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\fancyoval\": [\n      \"t\",\n      \"b\",\n      \"l\",\n      \"r\"\n    ],\n    \"\\\\begin{Bcenter},\\\\begin{Bflushleft},\\\\begin{Bflushright},\\\\begin{Bitemize},\\\\begin{Benumerate},\\\\begin{Bdescription},\\\\begin{Blist},\\\\begin{BVerbatim},\\\\BVerbatimInput\": [\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyhdr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fancyfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyfoot[${2:places}]{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhead[${2:places}]{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhf[${2:places}]{${1:output%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhf{${1:output%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyfootoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfootoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyheadoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyheadoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyheadoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyheadoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfoffset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyhfoffset[${2:places}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhfoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fancypagestyle\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"fancypagestyle{${1:style name}}[${3:base style}]{${2:definitions%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancypagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancypagestyle{${1:style name%specialDef}}{${2:definitions%text}}\"\n      }\n    },\n    {\n      \"name\": \"iftopfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftopfloat{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifbotfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbotfloat{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"iffloatpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffloatpage{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"iffootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iffootnote{${1:float page%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"headrulewidth\"\n    },\n    {\n      \"name\": \"footrulewidth\"\n    },\n    {\n      \"name\": \"headruleskip\"\n    },\n    {\n      \"name\": \"footruleskip\"\n    },\n    {\n      \"name\": \"headrule\"\n    },\n    {\n      \"name\": \"footrule\"\n    },\n    {\n      \"name\": \"headwidth\"\n    },\n    {\n      \"name\": \"fancyheadinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyheadinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancyfootinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyfootinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancyhfinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyhfinit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"fancycenter[${4:distance%l}][${5:stretch}]{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fancycenter[${4:distance%l}]{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"fancycenter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fancycenter{${1:left-mark%text}}{${2:center-mark%text}}{${3:right-mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"nouppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nouppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:CH-even%text}]{${1:CH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:CF-even%text}]{${1:CF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lhead[${2:LH-even%text}]{${1:LH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"lhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lfoot[${2:LF-even%text}]{${1:LF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"lfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfoot{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rhead[${2:RH-even%text}]{${1:RH-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"rhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhead{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rfoot[${2:RF-even%text}]{${1:RF-odd%text}}\"\n      }\n    },\n    {\n      \"name\": \"rfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfoot{${1:footer%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancyhdr#c\": [\n      \"nocheck\",\n      \"compatV3\",\n      \"twoside\",\n      \"myheadings\",\n      \"headings\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"fancy\",\n      \"%fancypagestyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancyhdr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancylabel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fancylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancylabel{${1:marker%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"fancylabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancylabel[${2:family}]{${1:marker%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"fancylabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancylabel*{${1:marker%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"fancylabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancylabel*[${2:family}]{${1:marker%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"fancysublabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancysublabel{${1:marker%labeldef}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysublabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fancysublabel[${3:family}]{${1:marker%labeldef}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysublabel*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancysublabel*{${1:marker%labeldef}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysublabel*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fancysublabel*[${3:family}]{${1:marker%labeldef}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancyref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyref{${1:marker%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fancyref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyref[${2:family}]{${1:marker%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fancyref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyref*{${1:marker%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fancyref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyref*[${2:family}]{${1:marker%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancysubref{${1:marker%ref}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fancysubref[${3:family}]{${1:marker%ref}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancysubref*{${1:marker%ref}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancysubref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fancysubref*[${3:family}]{${1:marker%ref}}{${2:submarker}}\"\n      }\n    },\n    {\n      \"name\": \"fancylabelformatdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancysublabelformatdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyonlysublabelformatdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancylabelNewLabelEvent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancylabelShowLabelEvent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancylabelShowRefEvent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefancylabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefancysublabel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancylabel#c\": [\n      \"families={${1:list of families}}\",\n      \"IgnoreFamilies\",\n      \"numbering=${1|continuous,ondemand,referenced|}\",\n      \"level=${1|sub,same|}\",\n      \"sort\",\n      \"compress\",\n      \"CompressLink=${1:separator}\",\n      \"CompressTwo\",\n      \"ListLastSublabelOnly\",\n      \"ListSeparator=${1:separator}\",\n      \"ListLastLabelSeparator=${1:separator}\",\n      \"ListLastRefSeparator=${1:separator}\",\n      \"DisableFamilyCheck\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancylabel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancynum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setfnumdsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfnumdsym{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setfnumgsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfnumgsym{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setfnummsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfnummsym{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancynum#c\": [\n      \"english\",\n      \"french\",\n      \"tight\",\n      \"loose\",\n      \"commas\",\n      \"thinspaces\",\n      \"plain\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancynum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancypar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fancyparsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyparsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\NotebookPar,\\\\fancyparsetup\",\n          \"\\\\ZebraPar,\\\\fancyparsetup\",\n          \"\\\\DashedPar,\\\\fancyparsetup\",\n          \"\\\\MarkedPar,\\\\fancyparsetup\",\n          \"\\\\UnderlinedPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NotebookPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotebookPar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NotebookPar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NotebookPar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\NotebookPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ZebraPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZebraPar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ZebraPar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ZebraPar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\ZebraPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyZColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyZTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DashedPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DashedPar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DashedPar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DashedPar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\DashedPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MarkedPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarkedPar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MarkedPar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MarkedPar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MarkedPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UnderlinedPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnderlinedPar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UnderlinedPar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UnderlinedPar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\UnderlinedPar,\\\\fancyparsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyPreFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddFancyFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefancycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyZColorOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyZColorTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyZTextColorOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyZTextColorTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNlColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNilColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNilHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNSColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyNTWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyUColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyDSeparation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyDColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyDSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textindentright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyMarkPosition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leaderfill\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\NotebookPar,\\\\fancyparsetup\": [\n      \"linecolor=\",\n      \"intercolor=\",\n      \"textcolor=\",\n      \"spiralcolor=\",\n      \"interheight=\",\n      \"spiral\",\n      \"nbtextwidth=\"\n    ],\n    \"\\\\ZebraPar,\\\\fancyparsetup\": [\n      \"colorone=\",\n      \"colortwo=\",\n      \"textcolorone=\",\n      \"textcolortwo=\"\n    ],\n    \"\\\\DashedPar,\\\\fancyparsetup\": [\n      \"dashsymbol=${1:symbol}\",\n      \"dashcolor=\",\n      \"separation=\"\n    ],\n    \"\\\\MarkedPar,\\\\fancyparsetup\": [\n      \"mark=${1:symbol}\",\n      \"position=${1|left,right|}\"\n    ],\n    \"\\\\UnderlinedPar,\\\\fancyparsetup\": [\n      \"rulecolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyqr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"qrcode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fancyqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyqr{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"fancyqr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyqr[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\fancyqr,\\\\fancyqrset,\\\\fancyqr*\",\n          \"\\\\fancyqr,\\\\fancyqrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyqr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyqr*{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"fancyqr*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fancyqr*[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\fancyqr,\\\\fancyqrset,\\\\fancyqr*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyqrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyqrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\fancyqr,\\\\fancyqrset,\\\\fancyqr*\",\n          \"\\\\fancyqr,\\\\fancyqrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyQrDoNotPrintSquare\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FancyQrDoNotPrintSquare{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"FancyQrRoundCut\"\n    },\n    {\n      \"name\": \"FancyQrHardCut\"\n    },\n    {\n      \"name\": \"FancyQrLoad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyQrLoad{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\FancyQrLoad\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyQrLoadDefault\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fancyqr,\\\\fancyqrset,\\\\fancyqr*\": [\n      \"classic\",\n      \"color=\",\n      \"gradient\",\n      \"gradient angle=${1:degrees}\",\n      \"image=${1:graphics code}\",\n      \"image padding=${1:number}\",\n      \"image x padding=${1:number}\",\n      \"image y padding=${1:number}\",\n      \"l color=\",\n      \"left color=\",\n      \"r color=\",\n      \"random color=${1:colors}\",\n      \"right color=\",\n      \"size=\",\n      \"width=\",\n      \"height=\",\n      \"level=${1|L,M,Q,H|}\",\n      \"version=\",\n      \"tight\",\n      \"padding\"\n    ],\n    \"\\\\fancyqr,\\\\fancyqrset\": [\n      \"link\",\n      \"nolink\"\n    ],\n    \"\\\\FancyQrLoad\": [\n      \"flat\",\n      \"frame\",\n      \"blobs\",\n      \"glitch\",\n      \"dots\",\n      \"default\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fref[${2:format%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fref[${2:format%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyrefchangeprefix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancyrefchangeprefix{${1:prefix macro}}{${2:preﬁx}}\"\n      }\n    },\n    {\n      \"name\": \"fancyrefaddcaptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancyrefaddcaptions{${1:language}}{${2:string defs}}\"\n      }\n    },\n    {\n      \"name\": \"frefformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frefformat{${1:format%keyvals}}{${2:preﬁx macro}}{${3:output}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Frefformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Frefformat{${1:format%keyvals}}{${2:preﬁx macro}}{${3:output}}\",\n        \"keys\": [\n          \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancyrefhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancyrefhook{${1:output of format}}\"\n      }\n    },\n    {\n      \"name\": \"fancyrefchaplabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefseclabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefeqlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreffiglabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreftablabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefenumlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreffnlabelprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefargdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefloosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyreftightspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefdefaultspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefenumname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefeqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefpgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefseename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freftabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefenumname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefeqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefpgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefseename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freftabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freffigshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frefpgshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Freftabshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freffigshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frefpgshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freftabshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyrefdefaultformat\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancyref#c\": [\n      \"german\",\n      \"english\",\n      \"loose\",\n      \"margin\",\n      \"paren\",\n      \"plain\",\n      \"tight\",\n      \"vario\"\n    ],\n    \"\\\\fref,\\\\Fref,\\\\frefformat,\\\\Frefformat\": [\n      \"vario\",\n      \"plain\",\n      \"margin\",\n      \"main\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancyref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancytabs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fancytab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fancytab{${1:text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"fancytab\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fancytab[${3:HPos%keyvals}]{${1:text}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\fancytab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fancytabsStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsCount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsCount{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsLeftColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsLeftColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsRightColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsRightColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsTop{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsTextVPos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsTextVPos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsTextHPos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsTextHPos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsGap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsGap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsFloor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsFloor{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"fancytabsRotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fancytabsRotate{${1:degrees}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fancytab\": [\n      \"LEFT\",\n      \"RIGHT\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancytooltips.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"ocg\"\n    },\n    {\n      \"name\": \"transparent\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keytip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytip{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"tooltip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tooltip{${1:text}}{${2:keyword or pagenumber}}\"\n      }\n    },\n    {\n      \"name\": \"tooltip*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tooltip*{${1:text}}{${2:keyword or pagenumber}}\"\n      }\n    },\n    {\n      \"name\": \"TooltipExtratext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TooltipFilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tooltipanim\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tooltipanim{${1:text}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"tooltipanim*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tooltipanim*{${1:text}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"delayinterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TooltipRefmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FindTipNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FindTipNumber{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"SaveTooltipExtratext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TipNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TipNumberA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TipNumberB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TooltipHidden\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TooltipPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TooltipPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TooltipPage{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"checkTipNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkTipNumber{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eqIconDefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqIconFTT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"eqIconFTT{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"everyeqIcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeqIcon{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"fancytooltipsdebugmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frametip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tooltipname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tooltipname{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tooltippage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fancytooltips#c\": [\n      \"createtips\",\n      \"dvips\",\n      \"noextratext\",\n      \"movetips\",\n      \"mouseover\",\n      \"inactive\",\n      \"active\",\n      \"fg\",\n      \"filename=${1:file name}\",\n      \"pages=${1:number}\",\n      \"blur\",\n      \"blur=${1:factor}\",\n      \"fixcolor\",\n      \"preview\",\n      \"previewall\",\n      \"nosoap\",\n      \"tooltipmark=${1|1,2,3,4|}\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancytooltips#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancyunits-base.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unit{${1:number}}{${2:unit commands}}\"\n      }\n    },\n    {\n      \"name\": \"addunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addunit{${1:new unit command}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pow{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ufrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ufrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"Ufrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ufrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"UFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UFrac{${1:}}{${2:}}\"\n      }\n    },\n    {\n      \"name\": \"per\"\n    },\n    {\n      \"name\": \"power\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"power{${1:text}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"Square\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Square{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Squared\"\n    },\n    {\n      \"name\": \"cubic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cubic{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"cubed\"\n    },\n    {\n      \"name\": \"fourth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourth{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"reciprocal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reciprocal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpsquare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpsquare{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpsquared\"\n    },\n    {\n      \"name\": \"rpcubic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpcubic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rpcubed\"\n    },\n    {\n      \"name\": \"rpfourth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpfourth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"metre\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"yocto\"\n    },\n    {\n      \"name\": \"zepto\"\n    },\n    {\n      \"name\": \"atto\"\n    },\n    {\n      \"name\": \"fempto\"\n    },\n    {\n      \"name\": \"pico\"\n    },\n    {\n      \"name\": \"nano\"\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"milli\"\n    },\n    {\n      \"name\": \"centi\"\n    },\n    {\n      \"name\": \"deci\"\n    },\n    {\n      \"name\": \"deca\"\n    },\n    {\n      \"name\": \"deka\"\n    },\n    {\n      \"name\": \"hecto\"\n    },\n    {\n      \"name\": \"kilo\"\n    },\n    {\n      \"name\": \"mega\"\n    },\n    {\n      \"name\": \"giga\"\n    },\n    {\n      \"name\": \"tera\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"exa\"\n    },\n    {\n      \"name\": \"zetta\"\n    },\n    {\n      \"name\": \"yotta\"\n    },\n    {\n      \"name\": \"yoctod\"\n    },\n    {\n      \"name\": \"zeptod\"\n    },\n    {\n      \"name\": \"attod\"\n    },\n    {\n      \"name\": \"femptod\"\n    },\n    {\n      \"name\": \"picod\"\n    },\n    {\n      \"name\": \"nanod\"\n    },\n    {\n      \"name\": \"microd\"\n    },\n    {\n      \"name\": \"millid\"\n    },\n    {\n      \"name\": \"centid\"\n    },\n    {\n      \"name\": \"decid\"\n    },\n    {\n      \"name\": \"decad\"\n    },\n    {\n      \"name\": \"dekad\"\n    },\n    {\n      \"name\": \"decaD\"\n    },\n    {\n      \"name\": \"hectod\"\n    },\n    {\n      \"name\": \"kilod\"\n    },\n    {\n      \"name\": \"megad\"\n    },\n    {\n      \"name\": \"gigad\"\n    },\n    {\n      \"name\": \"terad\"\n    },\n    {\n      \"name\": \"petad\"\n    },\n    {\n      \"name\": \"exad\"\n    },\n    {\n      \"name\": \"zettad\"\n    },\n    {\n      \"name\": \"yottad\"\n    },\n    {\n      \"name\": \"rad\"\n    },\n    {\n      \"name\": \"sterad\"\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"celsius\"\n    },\n    {\n      \"name\": \"degreecelsius\"\n    },\n    {\n      \"name\": \"lumen\"\n    },\n    {\n      \"name\": \"lux\"\n    },\n    {\n      \"name\": \"becquerel\"\n    },\n    {\n      \"name\": \"Gray\"\n    },\n    {\n      \"name\": \"sievert\"\n    },\n    {\n      \"name\": \"radianbase\"\n    },\n    {\n      \"name\": \"steradianbase\"\n    },\n    {\n      \"name\": \"hertzbase\"\n    },\n    {\n      \"name\": \"newtonbase\"\n    },\n    {\n      \"name\": \"pascalbase\"\n    },\n    {\n      \"name\": \"joulebase\"\n    },\n    {\n      \"name\": \"wattbase\"\n    },\n    {\n      \"name\": \"coulombbase\"\n    },\n    {\n      \"name\": \"voltbase\"\n    },\n    {\n      \"name\": \"faradbase\"\n    },\n    {\n      \"name\": \"ohmbase\"\n    },\n    {\n      \"name\": \"siemensbase\"\n    },\n    {\n      \"name\": \"weberbase\"\n    },\n    {\n      \"name\": \"teslabase\"\n    },\n    {\n      \"name\": \"henrybase\"\n    },\n    {\n      \"name\": \"celsiusbase\"\n    },\n    {\n      \"name\": \"degreecelsiusbase\"\n    },\n    {\n      \"name\": \"lumenbase\"\n    },\n    {\n      \"name\": \"luxbase\"\n    },\n    {\n      \"name\": \"becquerelbase\"\n    },\n    {\n      \"name\": \"Graybase\"\n    },\n    {\n      \"name\": \"sievertbase\"\n    },\n    {\n      \"name\": \"derradian\"\n    },\n    {\n      \"name\": \"dersteradian\"\n    },\n    {\n      \"name\": \"derhertz\"\n    },\n    {\n      \"name\": \"dernewton\"\n    },\n    {\n      \"name\": \"derpascal\"\n    },\n    {\n      \"name\": \"derjoule\"\n    },\n    {\n      \"name\": \"derwatt\"\n    },\n    {\n      \"name\": \"dercoulomb\"\n    },\n    {\n      \"name\": \"dervolt\"\n    },\n    {\n      \"name\": \"derfarad\"\n    },\n    {\n      \"name\": \"derohm\"\n    },\n    {\n      \"name\": \"dersiemens\"\n    },\n    {\n      \"name\": \"derweber\"\n    },\n    {\n      \"name\": \"dertesla\"\n    },\n    {\n      \"name\": \"derhenry\"\n    },\n    {\n      \"name\": \"dercelsius\"\n    },\n    {\n      \"name\": \"derdegreecelsius\"\n    },\n    {\n      \"name\": \"derlumen\"\n    },\n    {\n      \"name\": \"derlux\"\n    },\n    {\n      \"name\": \"derbecquerel\"\n    },\n    {\n      \"name\": \"derGray\"\n    },\n    {\n      \"name\": \"dersievert\"\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"dday\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"paminute\"\n    },\n    {\n      \"name\": \"parsecond\"\n    },\n    {\n      \"name\": \"angstrom\"\n    },\n    {\n      \"name\": \"AstroE\"\n    },\n    {\n      \"name\": \"lightyear\"\n    },\n    {\n      \"name\": \"parsec\"\n    },\n    {\n      \"name\": \"gal\"\n    },\n    {\n      \"name\": \"liter\"\n    },\n    {\n      \"name\": \"litre\"\n    },\n    {\n      \"name\": \"atomicmass\"\n    },\n    {\n      \"name\": \"gram\"\n    },\n    {\n      \"name\": \"ton\"\n    },\n    {\n      \"name\": \"tonne\"\n    },\n    {\n      \"name\": \"barn\"\n    },\n    {\n      \"name\": \"hectare\"\n    },\n    {\n      \"name\": \"are\"\n    },\n    {\n      \"name\": \"bbar\"\n    },\n    {\n      \"name\": \"curie\"\n    },\n    {\n      \"name\": \"rem\"\n    },\n    {\n      \"name\": \"roentgen\"\n    },\n    {\n      \"name\": \"oersted\"\n    },\n    {\n      \"name\": \"electronvolt\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyunits-np.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Graypersecondnp\"\n    },\n    {\n      \"name\": \"metrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"joulepermolenp\"\n    },\n    {\n      \"name\": \"molepercubicmetrenp\"\n    },\n    {\n      \"name\": \"radianpersquaresecondnp\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondnp\"\n    },\n    {\n      \"name\": \"radianpersecondnp\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetrenp\"\n    },\n    {\n      \"name\": \"coulombpermolnp\"\n    },\n    {\n      \"name\": \"amperepersquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrenp\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonsecondnp\"\n    },\n    {\n      \"name\": \"pascalsecondnp\"\n    },\n    {\n      \"name\": \"coulombpercubicmetrenp\"\n    },\n    {\n      \"name\": \"voltpermetrenp\"\n    },\n    {\n      \"name\": \"coulombpersquaremetrenp\"\n    },\n    {\n      \"name\": \"faradpermetrenp\"\n    },\n    {\n      \"name\": \"wattpersquaremetrenp\"\n    },\n    {\n      \"name\": \"joulepersquaremetrenp\"\n    },\n    {\n      \"name\": \"newtonpercubicmetrenp\"\n    },\n    {\n      \"name\": \"newtonperkilogramnp\"\n    },\n    {\n      \"name\": \"jouleperkelvinnp\"\n    },\n    {\n      \"name\": \"jouleperkilogramnp\"\n    },\n    {\n      \"name\": \"coulombperkilogramnp\"\n    },\n    {\n      \"name\": \"Squaremetrepersecondnp\"\n    },\n    {\n      \"name\": \"Squaremetrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondnp\"\n    },\n    {\n      \"name\": \"candelapersquaremetrenp\"\n    },\n    {\n      \"name\": \"amperepermetrenp\"\n    },\n    {\n      \"name\": \"jouleperteslanp\"\n    },\n    {\n      \"name\": \"henrypermetrenp\"\n    },\n    {\n      \"name\": \"kilogrampersecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrampermetrenp\"\n    },\n    {\n      \"name\": \"joulepermolekelvinnp\"\n    },\n    {\n      \"name\": \"kilogramperkilomolenp\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrenp\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondnp\"\n    },\n    {\n      \"name\": \"newtonpersquaremetrenp\"\n    },\n    {\n      \"name\": \"persquaremetresecondnp\"\n    },\n    {\n      \"name\": \"wattperkilogramnp\"\n    },\n    {\n      \"name\": \"wattpercubicmetrenp\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradiannp\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinnp\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogramnp\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramnp\"\n    },\n    {\n      \"name\": \"newtonpermetrenp\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinnp\"\n    },\n    {\n      \"name\": \"newtonmetrenp\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicsecondnp\"\n    },\n    {\n      \"name\": \"metrepersecondnp\"\n    },\n    {\n      \"name\": \"joulepercubicmetrenp\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombnp\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondnp\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetrenp\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyunits-per.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Squaremetre\"\n    },\n    {\n      \"name\": \"cubicmetre\"\n    },\n    {\n      \"name\": \"Graypersecond\"\n    },\n    {\n      \"name\": \"metrepersquaresecond\"\n    },\n    {\n      \"name\": \"joulepermole\"\n    },\n    {\n      \"name\": \"molepercubicmetre\"\n    },\n    {\n      \"name\": \"radianpersquaresecond\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecond\"\n    },\n    {\n      \"name\": \"radianpersecond\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetre\"\n    },\n    {\n      \"name\": \"coulombpermol\"\n    },\n    {\n      \"name\": \"amperepersquaremetre\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetre\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonsecond\"\n    },\n    {\n      \"name\": \"pascalsecond\"\n    },\n    {\n      \"name\": \"coulombpercubicmetre\"\n    },\n    {\n      \"name\": \"amperemetresecond\"\n    },\n    {\n      \"name\": \"voltpermetre\"\n    },\n    {\n      \"name\": \"coulombpersquaremetre\"\n    },\n    {\n      \"name\": \"faradpermetre\"\n    },\n    {\n      \"name\": \"ohmmetre\"\n    },\n    {\n      \"name\": \"kilowatthour\"\n    },\n    {\n      \"name\": \"wattpersquaremetre\"\n    },\n    {\n      \"name\": \"joulepersquaremetre\"\n    },\n    {\n      \"name\": \"newtonpercubicmetre\"\n    },\n    {\n      \"name\": \"newtonperkilogram\"\n    },\n    {\n      \"name\": \"jouleperkelvin\"\n    },\n    {\n      \"name\": \"jouleperkilogram\"\n    },\n    {\n      \"name\": \"coulombperkilogram\"\n    },\n    {\n      \"name\": \"Squaremetrepersecond\"\n    },\n    {\n      \"name\": \"rpsquaremetrepersecond\"\n    },\n    {\n      \"name\": \"Squaremetrepersquaresecond\"\n    },\n    {\n      \"name\": \"rpsquaremetrepersquaresecond\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecond\"\n    },\n    {\n      \"name\": \"candelapersquaremetre\"\n    },\n    {\n      \"name\": \"amperepermetre\"\n    },\n    {\n      \"name\": \"joulepertesla\"\n    },\n    {\n      \"name\": \"henrypermetre\"\n    },\n    {\n      \"name\": \"kilogrampersecond\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecond\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetre\"\n    },\n    {\n      \"name\": \"kilogrampermetre\"\n    },\n    {\n      \"name\": \"joulepermolekelvin\"\n    },\n    {\n      \"name\": \"kilogramperkilomole\"\n    },\n    {\n      \"name\": \"kilogramsquaremetre\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecond\"\n    },\n    {\n      \"name\": \"newtonpersquaremetre\"\n    },\n    {\n      \"name\": \"persquaremetresecond\"\n    },\n    {\n      \"name\": \"wattperkilogram\"\n    },\n    {\n      \"name\": \"wattpercubicmetre\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradian\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvin\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogram\"\n    },\n    {\n      \"name\": \"rpsquaremetreperkilogram\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogram\"\n    },\n    {\n      \"name\": \"rpcubicmetreperkilogram\"\n    },\n    {\n      \"name\": \"newtonpermetre\"\n    },\n    {\n      \"name\": \"Celsius\"\n    },\n    {\n      \"name\": \"wattpermetrekelvin\"\n    },\n    {\n      \"name\": \"newtonmetre\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicsecond\"\n    },\n    {\n      \"name\": \"metrepersecond\"\n    },\n    {\n      \"name\": \"joulepercubicmetre\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulomb\"\n    },\n    {\n      \"name\": \"cubicmetrepersecond\"\n    },\n    {\n      \"name\": \"rpcubicmetrepersecond\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetre\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyunits_big-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GraypersecondUF\"\n    },\n    {\n      \"name\": \"metrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"joulepermoleUF\"\n    },\n    {\n      \"name\": \"molepercubicmetreUF\"\n    },\n    {\n      \"name\": \"radianpersquaresecondUF\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondUF\"\n    },\n    {\n      \"name\": \"radianpersecondUF\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicmetreUF\"\n    },\n    {\n      \"name\": \"coulombpermolUF\"\n    },\n    {\n      \"name\": \"amperepersquaremetreUF\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreUF\"\n    },\n    {\n      \"name\": \"SquaremetrepernewtonsecondUF\"\n    },\n    {\n      \"name\": \"pascalsecondUF\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreUF\"\n    },\n    {\n      \"name\": \"voltpermetreUF\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreUF\"\n    },\n    {\n      \"name\": \"faradpermetreUF\"\n    },\n    {\n      \"name\": \"wattpersquaremetreUF\"\n    },\n    {\n      \"name\": \"joulepersquaremetreUF\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreUF\"\n    },\n    {\n      \"name\": \"newtonperkilogramUF\"\n    },\n    {\n      \"name\": \"jouleperkelvinUF\"\n    },\n    {\n      \"name\": \"jouleperkilogramUF\"\n    },\n    {\n      \"name\": \"coulombperkilogramUF\"\n    },\n    {\n      \"name\": \"SquaremetrepersecondUF\"\n    },\n    {\n      \"name\": \"SquaremetrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondUF\"\n    },\n    {\n      \"name\": \"candelapersquaremetreUF\"\n    },\n    {\n      \"name\": \"amperepermetreUF\"\n    },\n    {\n      \"name\": \"jouleperteslaUF\"\n    },\n    {\n      \"name\": \"henrypermetreUF\"\n    },\n    {\n      \"name\": \"kilogrampersecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreUF\"\n    },\n    {\n      \"name\": \"kilogrampermetreUF\"\n    },\n    {\n      \"name\": \"joulepermolekelvinUF\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleUF\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondUF\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreUF\"\n    },\n    {\n      \"name\": \"persquaremetresecondUF\"\n    },\n    {\n      \"name\": \"wattperkilogramUF\"\n    },\n    {\n      \"name\": \"wattpercubicmetreUF\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianUF\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinUF\"\n    },\n    {\n      \"name\": \"SquaremetreperkilogramUF\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramUF\"\n    },\n    {\n      \"name\": \"newtonpermetreUF\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinUF\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicsecondUF\"\n    },\n    {\n      \"name\": \"metrepersecondUF\"\n    },\n    {\n      \"name\": \"joulepercubicmetreUF\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombUF\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondUF\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreUF\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyunits_medium-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GraypersecondUf\"\n    },\n    {\n      \"name\": \"metrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"joulepermoleUf\"\n    },\n    {\n      \"name\": \"molepercubicmetreUf\"\n    },\n    {\n      \"name\": \"radianpersquaresecondUf\"\n    },\n    {\n      \"name\": \"kilogramsquaremetrepersecondUf\"\n    },\n    {\n      \"name\": \"radianpersecondUf\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicmetreUf\"\n    },\n    {\n      \"name\": \"coulombpermolUf\"\n    },\n    {\n      \"name\": \"amperepersquaremetreUf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreUf\"\n    },\n    {\n      \"name\": \"SquaremetrepernewtonsecondUf\"\n    },\n    {\n      \"name\": \"pascalsecondUf\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreUf\"\n    },\n    {\n      \"name\": \"voltpermetreUf\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreUf\"\n    },\n    {\n      \"name\": \"faradpermetreUf\"\n    },\n    {\n      \"name\": \"wattpersquaremetreUf\"\n    },\n    {\n      \"name\": \"joulepersquaremetreUf\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreUf\"\n    },\n    {\n      \"name\": \"newtonperkilogramUf\"\n    },\n    {\n      \"name\": \"jouleperkelvinUf\"\n    },\n    {\n      \"name\": \"jouleperkilogramUf\"\n    },\n    {\n      \"name\": \"coulombperkilogramUf\"\n    },\n    {\n      \"name\": \"SquaremetrepersecondUf\"\n    },\n    {\n      \"name\": \"SquaremetrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersecondUf\"\n    },\n    {\n      \"name\": \"candelapersquaremetreUf\"\n    },\n    {\n      \"name\": \"amperepermetreUf\"\n    },\n    {\n      \"name\": \"jouleperteslaUf\"\n    },\n    {\n      \"name\": \"henrypermetreUf\"\n    },\n    {\n      \"name\": \"kilogrampersecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetresecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreUf\"\n    },\n    {\n      \"name\": \"kilogrampermetreUf\"\n    },\n    {\n      \"name\": \"joulepermolekelvinUf\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleUf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquaresecondUf\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreUf\"\n    },\n    {\n      \"name\": \"persquaremetresecondUf\"\n    },\n    {\n      \"name\": \"wattperkilogramUf\"\n    },\n    {\n      \"name\": \"wattpercubicmetreUf\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianUf\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinUf\"\n    },\n    {\n      \"name\": \"SquaremetreperkilogramUf\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramUf\"\n    },\n    {\n      \"name\": \"newtonpermetreUf\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinUf\"\n    },\n    {\n      \"name\": \"SquaremetrepercubicsecondUf\"\n    },\n    {\n      \"name\": \"metrepersecondUf\"\n    },\n    {\n      \"name\": \"joulepercubicmetreUf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombUf\"\n    },\n    {\n      \"name\": \"cubicmetrepersecondUf\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreUf\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyunits_small-fractions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Grayperseconduf\"\n    },\n    {\n      \"name\": \"metrepersquareseconduf\"\n    },\n    {\n      \"name\": \"joulepermoleuf\"\n    },\n    {\n      \"name\": \"molepercubicmetreuf\"\n    },\n    {\n      \"name\": \"radianpersquareseconduf\"\n    },\n    {\n      \"name\": \"kilogramsquaremetreperseconduf\"\n    },\n    {\n      \"name\": \"radianperseconduf\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicmetreuf\"\n    },\n    {\n      \"name\": \"coulombpermoluf\"\n    },\n    {\n      \"name\": \"amperepersquaremetreuf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetreuf\"\n    },\n    {\n      \"name\": \"Squaremetrepernewtonseconduf\"\n    },\n    {\n      \"name\": \"pascalseconduf\"\n    },\n    {\n      \"name\": \"coulombpercubicmetreuf\"\n    },\n    {\n      \"name\": \"voltpermetreuf\"\n    },\n    {\n      \"name\": \"coulombpersquaremetreuf\"\n    },\n    {\n      \"name\": \"faradpermetreuf\"\n    },\n    {\n      \"name\": \"wattpersquaremetreuf\"\n    },\n    {\n      \"name\": \"joulepersquaremetreuf\"\n    },\n    {\n      \"name\": \"newtonpercubicmetreuf\"\n    },\n    {\n      \"name\": \"newtonperkilogramuf\"\n    },\n    {\n      \"name\": \"jouleperkelvinuf\"\n    },\n    {\n      \"name\": \"jouleperkilogramuf\"\n    },\n    {\n      \"name\": \"coulombperkilogramuf\"\n    },\n    {\n      \"name\": \"Squaremetreperseconduf\"\n    },\n    {\n      \"name\": \"Squaremetrepersquareseconduf\"\n    },\n    {\n      \"name\": \"kilogrammetreperseconduf\"\n    },\n    {\n      \"name\": \"candelapersquaremetreuf\"\n    },\n    {\n      \"name\": \"amperepermetreuf\"\n    },\n    {\n      \"name\": \"jouleperteslauf\"\n    },\n    {\n      \"name\": \"henrypermetreuf\"\n    },\n    {\n      \"name\": \"kilogramperseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersquaremetreuf\"\n    },\n    {\n      \"name\": \"kilogrampermetreuf\"\n    },\n    {\n      \"name\": \"joulepermolekelvinuf\"\n    },\n    {\n      \"name\": \"kilogramperkilomoleuf\"\n    },\n    {\n      \"name\": \"kilogrammetrepersquareseconduf\"\n    },\n    {\n      \"name\": \"newtonpersquaremetreuf\"\n    },\n    {\n      \"name\": \"persquaremetreseconduf\"\n    },\n    {\n      \"name\": \"wattperkilogramuf\"\n    },\n    {\n      \"name\": \"wattpercubicmetreuf\"\n    },\n    {\n      \"name\": \"wattpersquaremetresteradianuf\"\n    },\n    {\n      \"name\": \"jouleperkilogramkelvinuf\"\n    },\n    {\n      \"name\": \"Squaremetreperkilogramuf\"\n    },\n    {\n      \"name\": \"cubicmetreperkilogramuf\"\n    },\n    {\n      \"name\": \"newtonpermetreuf\"\n    },\n    {\n      \"name\": \"wattpermetrekelvinuf\"\n    },\n    {\n      \"name\": \"Squaremetrepercubicseconduf\"\n    },\n    {\n      \"name\": \"metreperseconduf\"\n    },\n    {\n      \"name\": \"joulepercubicmetreuf\"\n    },\n    {\n      \"name\": \"kilogrampercubicmetrecoulombuf\"\n    },\n    {\n      \"name\": \"cubicmetreperseconduf\"\n    },\n    {\n      \"name\": \"kilogrampersecondcubicmetreuf\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fancyvrb-ex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hbaw\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showgrid\",\n      \"if\": \"pstricks\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"PCenterExample\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"PCenterExample\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PSideBySideExample\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"PSideBySideExample\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Example\"\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CenterExample\"\n    },\n    {\n      \"name\": \"CenterExample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SideBySideExample\"\n    },\n    {\n      \"name\": \"SideBySideExample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fancyvrb-ex#c\": [\n      \"pstricks\",\n      \"color\"\n    ],\n    \"\\\\begin{Example},\\\\begin{CenterExample},\\\\begin{SideBySideExample},\\\\begin{PCenterExample},\\\\begin{PSideBySideExample}\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fancyvrb-ex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fancyvrb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Verb[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Verb*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Verb*|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Verb*\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Verb*[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimFootnotes\"\n    },\n    {\n      \"name\": \"DefineShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"DefineShortVerb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineShortVerb[${2:options}]{${1:\\\\character}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UndefineShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndefineShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"fvset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fvset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefineVerbatimEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CustomVerbatimEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CustomVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RecustomVerbatimEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecustomVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CustomVerbatimCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CustomVerbatimCommand{${1:command}}{${2:cmd type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RecustomVerbatimCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecustomVerbatimCommand{${1:command}}{${2:cmd type}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb{${1:name}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb[${2:options}]{${1:name}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SaveVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"SaveVerb*{${1:name}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"SaveVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"SaveVerb*[${2:options}]{${1:name}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\",\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerb[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerb*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerb*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BUseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BUseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LUseVerbatim[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LUseVerbatim*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LUseVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LUseVerbatim*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LVerbatimInput[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LVerbatimInput*[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbAfterSave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbCodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbDefineActive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFileExtension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFormatCom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFormatLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbGetLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbGetVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbHFuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbRuleColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStartNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStartString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStopNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbStopString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbTabSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbVspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pUseMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaveGVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaveMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFancyVerbLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseMVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimEnvironment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Verbatim\"\n    },\n    {\n      \"name\": \"Verbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Verbatim*\"\n    },\n    {\n      \"name\": \"Verbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatim\"\n    },\n    {\n      \"name\": \"BVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatim*\"\n    },\n    {\n      \"name\": \"BVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\",\n          \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LVerbatim\"\n    },\n    {\n      \"name\": \"LVerbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LVerbatim*\"\n    },\n    {\n      \"name\": \"LVerbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SaveVerbatim\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file name%file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\SaveVerb,\\\\SaveVerb*,\\\\fvset\": [\n      \"aftersave={${1:code}}\"\n    ],\n    \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ],\n    \"\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\BUseVerbatim,\\\\BVerbatimInput\": [\n      \"boxwidth=\",\n      \"baseline=${1|b,c,t|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fapapersize.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"usefastocksize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefastocksize{${1:width,height}}\"\n      }\n    },\n    {\n      \"name\": \"usefapapersize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefapapersize{${1:width,height,lmargin,rmargin,tmargin,bmargin}}\"\n      }\n    },\n    {\n      \"name\": \"definefageometry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definefageometry{${1:name%specialDef}}{${2:layout}}\"\n      }\n    },\n    {\n      \"name\": \"definefageometry\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"definefageometry{${1:name}}{${2:layout}}[${3:after}]\"\n      }\n    },\n    {\n      \"name\": \"definefageometry\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"definefageometry{${1:name}}[${3:before}]{${2:layout}}\"\n      }\n    },\n    {\n      \"name\": \"definefageometry\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"definefageometry{${1:name}}[${3:before}]{${2:layout}}[${4:after}]\"\n      }\n    },\n    {\n      \"name\": \"selectfageometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectfageometry{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectfageometry#c,\\\\selectfageometry*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectfageometry*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectfageometry*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectfageometry#c,\\\\selectfageometry*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"evenmarginsameasodd\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fapapersize#c\": [\n      \"dbl4x6\",\n      \"mum\",\n      \"newmum\",\n      \"1in\",\n      \"a4\",\n      \"stock\",\n      \"showtrims\"\n    ],\n    \"\\\\selectfageometry#c,\\\\selectfageometry*#c\": [\n      \"%fageometry\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fapapersize#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fascicules.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"beamerarticle\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"tagging\"\n    },\n    {\n      \"name\": \"xcomment\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"answers\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fasciculestitle\"\n    },\n    {\n      \"name\": \"backgroundimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"listofmethods\"\n    },\n    {\n      \"name\": \"onecolumnexos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onecolumnexos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"groupexos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"groupexos{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"activity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"activity{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"window{${1:Xmin}}{${2:Xmax}}{${3:Ymin}}{${4:Ymax}}\"\n      }\n    },\n    {\n      \"name\": \"axeH\"\n    },\n    {\n      \"name\": \"axeH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"axeH[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"axeV\"\n    },\n    {\n      \"name\": \"axeV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"axeV[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"tickX\"\n    },\n    {\n      \"name\": \"tickX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tickX[${1:graduation}]\"\n      }\n    },\n    {\n      \"name\": \"tickY\"\n    },\n    {\n      \"name\": \"tickY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tickY[${1:graduation}]\"\n      }\n    },\n    {\n      \"name\": \"activitiescolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activitytitleFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coloredbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisescolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groupexosFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headcoloredbg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcoloredbg{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"headcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headerFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lessoncolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"methodscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notez\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poslabelX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poslabelY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebeamerExo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"windowwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ymax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ymin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lesson\"\n    },\n    {\n      \"name\": \"activities\"\n    },\n    {\n      \"name\": \"exercises\"\n    },\n    {\n      \"name\": \"solutions\"\n    },\n    {\n      \"name\": \"exo\"\n    },\n    {\n      \"name\": \"exo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exo}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sol\"\n    },\n    {\n      \"name\": \"sol*\"\n    },\n    {\n      \"name\": \"activity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"objective\"\n    },\n    {\n      \"name\": \"method\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"method\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:label}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:label}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:label}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:label}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"formula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"formula\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:label}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"windowsratio\"\n    },\n    {\n      \"name\": \"windowsratio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:ratio}]\"\n      }\n    },\n    {\n      \"name\": \"cours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cours\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"defi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"form\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"meth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"obj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"prop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    },\n    {\n      \"name\": \"Solution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"theo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:marker}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fascicules#c\": [\n      \"exercises\",\n      \"activities\",\n      \"lesson=${1|true,false,methods|}\",\n      \"solutions=${1|true,false,inside|}\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"chapterpage\"\n    ],\n    \"\\\\begin{exo}\": [\n      \"title=${1:text}\",\n      \"type=${1|solution,method|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fascicules#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fast-diagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FT\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FT{${1:Fonction technique%text}}{${2:Descendance%text}}\"\n      }\n    },\n    {\n      \"name\": \"FT\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FT[${3:option%keyvals}]{${1:Fonction technique%text}}{${2:Descendance%text}}\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ST\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ST{${1:Solution technique%text}}\"\n      }\n    },\n    {\n      \"name\": \"ST\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ST{${1:Solution technique%text}}[${2:Descendance%text}]\"\n      }\n    },\n    {\n      \"name\": \"ST\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ST[${2:option%keyvals}]{${1:Solution technique%text}}\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ST\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ST[${2:option%keyvals}]{${1:Solution technique%text}}[${3:Descendance%text}]\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FV\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FV{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FV\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FV{${1:text}}[${2:Descendance%text}]\"\n      }\n    },\n    {\n      \"name\": \"trait\",\n      \"if\": \"raccourcis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trait{${1:Descendance%text}}\"\n      }\n    },\n    {\n      \"name\": \"fastFT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fastFT{${1:Fonction technique%text}}{${2:Descendance%text}}\"\n      }\n    },\n    {\n      \"name\": \"fastFT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fastFT[${3:option%keyvals}]{${1:Fonction technique%text}}{${2:Descendance%text}}\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fastST\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastST{${1:Solution technique%text}}\"\n      }\n    },\n    {\n      \"name\": \"fastST\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fastST{${1:Solution technique%text}}[${2:Descendance%text}]\"\n      }\n    },\n    {\n      \"name\": \"fastST\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastST[${2:option%keyvals}]{${1:Solution technique%text}}\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fastST\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"fastST[${2:option%keyvals}]{${1:Solution technique%text}}[${3:Descendance%text}]\",\n        \"keys\": [\n          \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fastVide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastVide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fastVide\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fastVide{${1:text}}[${2:Descendance%text}]\"\n      }\n    },\n    {\n      \"name\": \"fastTrait\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastTrait{${1:Descendance%text}}\"\n      }\n    },\n    {\n      \"name\": \"fastReset\"\n    },\n    {\n      \"name\": \"fastInterligne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastLargeurBoite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastHauteurBoite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastEspaceColonne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastDecalageTrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastEpaisseurTraits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastDecalageOuVertical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastDecalageOuHorizontal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastSetCouleurBordures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastSetCouleurBordures{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurBordures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastSetCouleurBordures[${2:type}]{${1:color%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurTexte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastSetCouleurTexte{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurTexte\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastSetCouleurTexte[${2:type}]{${1:color%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurFond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastSetCouleurFond{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurFond\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastSetCouleurFond[${2:type}]{${1:color%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurConnecteurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastSetCouleurConnecteurs{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurConnecteurs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastSetCouleurConnecteurs[${2:type}]{${1:color%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurTraits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fastSetCouleurTraits{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"fastSetCouleurTraits\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fastSetCouleurTraits[${2:type}]{${1:color%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fastAvanceColonne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastEnregistreMinimum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFSStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFSarrondi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFStexteStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFTStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFTarrondi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFTtexteStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFVStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastFVtexteStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastReculeColonne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastSTStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastSTarrondi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastSTtexteStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastTraceConnecteurs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fastTraceConnecteurs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fastTraceConnecteurs[${1:option%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"posX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecptAbscisse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecptAbscisseParent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecptBoite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Fonction de Service%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fast-diagram#c\": [\n      \"raccourcis\"\n    ],\n    \"\\\\fastFT,\\\\fastST,\\\\FT,\\\\ST,\\\\fastTraceConnecteurs\": [\n      \"tempo\",\n      \"ou\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fast-diagram#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fbb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifetex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"inffigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"Qswash\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\"\n    },\n    {\n      \"name\": \"useproportional\"\n    },\n    {\n      \"name\": \"Qnoswash\",\n      \"if\": \"swashQ\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fbb#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"foresolidus=\",\n      \"aftsolidus=\",\n      \"raisefrac=\",\n      \"altP\",\n      \"swashQ\",\n      \"lining\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"p\",\n      \"sups\",\n      \"scosf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fbb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\fbox#c,\\\\fbox*#c,\\\\fparbox#c,\\\\fparbox*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fbox*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fbox*[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\fbox#c,\\\\fbox*#c,\\\\fparbox#c,\\\\fparbox*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fparbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fparbox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\fbox#c,\\\\fbox*#c,\\\\fparbox#c,\\\\fparbox*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fparbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fparbox*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fparbox*[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\fbox#c,\\\\fbox*#c,\\\\fparbox#c,\\\\fparbox*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fbox#c,\\\\fbox*#c,\\\\fparbox#c,\\\\fparbox*#c\": [\n      \"boxrule=\",\n      \"boxsep=\",\n      \"lcolor=\",\n      \"tcolor=\",\n      \"rcolor=\",\n      \"bcolor=\",\n      \"linewidth=\",\n      \"\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fc_arith.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"popupmenu\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fcSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSettingsColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptionsMenuItem\"\n    },\n    {\n      \"name\": \"fcMouseKPMenuItemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcToggleKeypadMenuItem\"\n    },\n    {\n      \"name\": \"fcToggleKeypadMenuItemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcTouchKPMenuItem\"\n    },\n    {\n      \"name\": \"fcTouchKPMenuItemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMouseKPMenuItem\"\n    },\n    {\n      \"name\": \"fcMouseKPMenuItemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcAboutFC\"\n    },\n    {\n      \"name\": \"fcAboutFCTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amtChngMouToTou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arithProb\"\n    },\n    {\n      \"name\": \"tBGNoBorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monoSpaceFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setDimOf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setDimOf{${1:field%keyvals}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"inputRegion\"\n    },\n    {\n      \"name\": \"inputRegion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inputRegion[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"cBGNoBorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startAgain\"\n    },\n    {\n      \"name\": \"startAgain\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"startAgain[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"newCard\"\n    },\n    {\n      \"name\": \"newCard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newCard[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"tBGNoBorderI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fieldFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alertbox\"\n    },\n    {\n      \"name\": \"alertbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"alertbox[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"Keypad\"\n    },\n    {\n      \"name\": \"szNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myNumPadI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpBack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpEnter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbTiming\"\n    },\n    {\n      \"name\": \"cbTiming\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cbTiming[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"fcNoTiming\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ansField\"\n    },\n    {\n      \"name\": \"ansField\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ansField[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"fmtAnswer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbOperation\"\n    },\n    {\n      \"name\": \"cbOperation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cbOperation[${1:eform parameters}]\"\n      }\n    },\n    {\n      \"name\": \"cBGBorder\"\n    },\n    {\n      \"name\": \"fcAddition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSubtraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMultiplication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcDivision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statsFields\"\n    },\n    {\n      \"name\": \"statsFieldOpColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statsFieldColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareArithParams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareArithParams{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareArithParams\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timeUpMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrongMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startAgainMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newCar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleKeypad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"operation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numCorrect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numAttempted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"percentCorrect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timedScores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctCharWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctInstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctTimeElapsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctLessThanV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctLessThanVPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnVAndX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnVAndXPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXAndXV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXAndXVPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXVAndXX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXVAndXXPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXXAndXXV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctBtwnXXAndXXVPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctGtrXXV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fctGtrXXVPoints\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcAdditionName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSubtractionName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMultiplicationName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcDivisionName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMenuFCMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleKeyPadBtnColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleKeyPadBtnTooltip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSettingsTooltip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbTimingToolip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbOperationTooltip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timeScoresTooltip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptTextWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptTopRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptBottomRange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptTopRangeDiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptBottomRangeDiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptAllowNegNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptDecimal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptDecimalNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bFCa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bFCd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bFCm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bFCs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbvOptChoices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFCa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFCd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFCm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFCs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcAddBParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcAddTParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcAllowNegSub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcDivBParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcDivQParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMulBParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcMulTParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcOptionsMenuItemTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSubBParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcSubTParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcTimedScores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcaddDecB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcaddDecT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcdivDecB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcdivDecQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcmulDecB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcmulDecT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcsubDecB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcsubDecT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isReadOnlyTiming\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpDec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kpMinus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newCardMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeImageOpts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleKeyPadBtn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"MenuFC\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fc_arith#c\": [\n      \"allownegsub\",\n      \"nomenu\",\n      \"operations={${1:add, sub, mul, and/or div}}\",\n      \"showkeypadlink\",\n      \"notimedscores\"\n    ],\n    \"\": [\n      \"top\",\n      \"operation\",\n      \"bottom\",\n      \"result\",\n      \"StartAgain\",\n      \"NewProblem\",\n      \"alertbox\",\n      \"TimeDelay\",\n      \"ansregion\",\n      \"ChooseOperation\",\n      \"fcSF\"\n    ],\n    \"\\\\DeclareArithParams\": [\n      \"addT={[${1:a,b}]}\",\n      \"addB={[${1:a,b}]}\",\n      \"subT={[${1:a,b}]}\",\n      \"subB={[${1:a,b}]}\",\n      \"mulT={[${1:a,b}]}\",\n      \"mulB={[${1:a,b}]}\",\n      \"divQ={[${1:a,b}]}\",\n      \"divB={[${1:a,b}]}\",\n      \"addDecT=${1|none,1,2|}\",\n      \"addDecB=${1|none,1,2|}\",\n      \"subDecT=${1|none,1,2|}\",\n      \"subDecB=${1|none,1,2|}\",\n      \"mulDecT=${1|none,1,2|}\",\n      \"mulDecB=${1|none,1,2|}\",\n      \"divDecQ=${1|none,1,2|}\",\n      \"divDecB=${1|none,1,2|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fc_arith#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fclfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newlfont\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ttseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"m\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"m{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"M\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"M{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"B{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"G\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"G{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"U\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"I\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"I{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"T\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"copyleft\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"SS\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"tsh\"\n    },\n    {\n      \"name\": \"TSH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fcolumn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sumline\"\n    },\n    {\n      \"name\": \"sumline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sumline[${1:space-above%l}]\"\n      }\n    },\n    {\n      \"name\": \"sumline\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"sumline[${1:space-above%l}][${2:space-below%l}]\"\n      }\n    },\n    {\n      \"name\": \"resetsumline\"\n    },\n    {\n      \"name\": \"leeg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leeg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"checkfcolumns\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"checkfcolumns{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fcolumn#c\": [\n      \"red\",\n      \"strict\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fcolumn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fcprefix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"fcnumparser\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"latinnumeralstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latinnumeralstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"latinnumeralstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"latinnumeralstring{${1:counter}}[${2:prefix options%keyvals}]\",\n        \"keys\": [\n          \"\\\\latinnumeralstring#c,\\\\latinnumeralstringnum#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"latinnumeralstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latinnumeralstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"latinnumeralstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"latinnumeralstringnum{${1:number}}[${2:prefix options%keyvals}]\",\n        \"keys\": [\n          \"\\\\latinnumeralstring#c,\\\\latinnumeralstringnum#c\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\latinnumeralstring#c,\\\\latinnumeralstringnum#c\": [\n      \"use duode and unde=${1|below 20,never|}\",\n      \"numeral u in duo\",\n      \"e accute\",\n      \"power of millia=${1|recursive,arabic,prefix|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fdsymbol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"acwcirclearrowdown\"\n    },\n    {\n      \"name\": \"acwcirclearrowleft\"\n    },\n    {\n      \"name\": \"acwcirclearrowright\"\n    },\n    {\n      \"name\": \"acwcirclearrowup\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"acwleftarcarrow\",\n      \"detail\": \"⤹\",\n      \"doc\": \"Left-side arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwnearcarrow\"\n    },\n    {\n      \"name\": \"acwnwarcarrow\"\n    },\n    {\n      \"name\": \"acwopencirclearrow\",\n      \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n    },\n    {\n      \"name\": \"acwoverarcarrow\",\n      \"detail\": \"⤺\",\n      \"doc\": \"Top arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwrightarcarrow\"\n    },\n    {\n      \"name\": \"acwsearcarrow\"\n    },\n    {\n      \"name\": \"acwswarcarrow\"\n    },\n    {\n      \"name\": \"acwunderarcarrow\",\n      \"detail\": \"⤻\",\n      \"doc\": \"Bottom arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"Assert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backneg\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backpropto\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"backsimneqq\"\n    },\n    {\n      \"name\": \"Barv\",\n      \"detail\": \"⫧\",\n      \"doc\": \"Short down tack with overbar\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"bdleftarcarrow\"\n    },\n    {\n      \"name\": \"bdnearcarrow\"\n    },\n    {\n      \"name\": \"bdnwarcarrow\"\n    },\n    {\n      \"name\": \"bdoverarcarrow\"\n    },\n    {\n      \"name\": \"bdrightarcarrow\"\n    },\n    {\n      \"name\": \"bdsearcarrow\"\n    },\n    {\n      \"name\": \"bdswarcarrow\"\n    },\n    {\n      \"name\": \"bdunderarcarrow\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapdot\"\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bigcurlyvee\"\n    },\n    {\n      \"name\": \"bigcurlywedge\"\n    },\n    {\n      \"name\": \"bigdoublevee\"\n    },\n    {\n      \"name\": \"bigdoublewedge\"\n    },\n    {\n      \"name\": \"bigoast\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapdot\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupdot\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigveedot\"\n    },\n    {\n      \"name\": \"bigwedgedot\"\n    },\n    {\n      \"name\": \"blackdiamond\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blackwhitespoon\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxbackslash\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boxvert\"\n    },\n    {\n      \"name\": \"bracemd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btimes\",\n      \"detail\": \"⨲\",\n      \"doc\": \"Semidirect product with bottom closed\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"bumpeqq\",\n      \"detail\": \"⪮\",\n      \"doc\": \"Equals sign with bumpy above\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capplus\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"circledvert\",\n      \"detail\": \"⦶\",\n      \"doc\": \"Circled vertical bar\"\n    },\n    {\n      \"name\": \"cirmid\",\n      \"unusual\": true,\n      \"detail\": \"⫯\",\n      \"doc\": \"Vertical line with circle above\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"conjquant\",\n      \"detail\": \"⨇\",\n      \"doc\": \"Two logical and operator\"\n    },\n    {\n      \"name\": \"crossing\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupplus\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"cwcirclearrowdown\"\n    },\n    {\n      \"name\": \"cwcirclearrowleft\"\n    },\n    {\n      \"name\": \"cwcirclearrowright\"\n    },\n    {\n      \"name\": \"cwcirclearrowup\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"cwleftarcarrow\"\n    },\n    {\n      \"name\": \"cwnearcarrow\"\n    },\n    {\n      \"name\": \"cwnwarcarrow\"\n    },\n    {\n      \"name\": \"cwopencirclearrow\",\n      \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n    },\n    {\n      \"name\": \"cwoverarcarrow\"\n    },\n    {\n      \"name\": \"cwrightarcarrow\",\n      \"detail\": \"⤸\",\n      \"doc\": \"Right-side arc clockwise arrow\"\n    },\n    {\n      \"name\": \"cwsearcarrow\"\n    },\n    {\n      \"name\": \"cwswarcarrow\"\n    },\n    {\n      \"name\": \"cwunderarcarrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashVv\"\n    },\n    {\n      \"name\": \"dawint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbiguplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dconjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ddashv\"\n    },\n    {\n      \"name\": \"ddisjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddotdot\"\n    },\n    {\n      \"name\": \"ddotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"dfint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"diamondbackslash\"\n    },\n    {\n      \"name\": \"diamondbslash\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"diamonddiamond\"\n    },\n    {\n      \"name\": \"diamonddot\"\n    },\n    {\n      \"name\": \"diamondminus\"\n    },\n    {\n      \"name\": \"diamondplus\"\n    },\n    {\n      \"name\": \"diamondslash\"\n    },\n    {\n      \"name\": \"diamondtimes\"\n    },\n    {\n      \"name\": \"diamondvert\"\n    },\n    {\n      \"name\": \"didotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disjquant\",\n      \"detail\": \"⨈\",\n      \"doc\": \"Two logical or operator\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"divides\"\n    },\n    {\n      \"name\": \"divslash\",\n      \"detail\": \"∕\",\n      \"doc\": \"Division slash\"\n    },\n    {\n      \"name\": \"dlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotcong\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsint\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublesqcap\"\n    },\n    {\n      \"name\": \"doublesqcup\"\n    },\n    {\n      \"name\": \"doublevee\"\n    },\n    {\n      \"name\": \"doublewedge\"\n    },\n    {\n      \"name\": \"downarrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downassert\"\n    },\n    {\n      \"name\": \"downbkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downblackspoon\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"unusual\": true,\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"unusual\": true,\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downleftcurvedarrow\"\n    },\n    {\n      \"name\": \"downlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Downmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downmodels\"\n    },\n    {\n      \"name\": \"downpitchfork\"\n    },\n    {\n      \"name\": \"downrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"downrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downspoon\"\n    },\n    {\n      \"name\": \"downtherefore\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downupharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"unusual\": true,\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downupsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downvdash\"\n    },\n    {\n      \"name\": \"downwavearrow\"\n    },\n    {\n      \"name\": \"downY\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"dprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtimes\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"dvarcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equal\",\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"frowneq\"\n    },\n    {\n      \"name\": \"frownsmile\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqclosed\"\n    },\n    {\n      \"name\": \"geqdot\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"geqslantdot\"\n    },\n    {\n      \"name\": \"geqslcc\"\n    },\n    {\n      \"name\": \"gescc\",\n      \"detail\": \"⪩\",\n      \"doc\": \"Greater-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"gesdot\",\n      \"detail\": \"⪀\",\n      \"doc\": \"Greater-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"gesl\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtcc\",\n      \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Greater-than closed by curve\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"gtr\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrcc\"\n    },\n    {\n      \"name\": \"gtrclosed\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqlessslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hateq\"\n    },\n    {\n      \"name\": \"hdotdot\"\n    },\n    {\n      \"name\": \"hknearrow\",\n      \"unusual\": true,\n      \"detail\": \"⤤\",\n      \"doc\": \"North east arrow with hook\"\n    },\n    {\n      \"name\": \"hknwarrow\",\n      \"unusual\": true,\n      \"detail\": \"⤣\",\n      \"doc\": \"North west arrow with hook\"\n    },\n    {\n      \"name\": \"hksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hkswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hookdownminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hookupminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hourglass\",\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"imageof\",\n      \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Image of\"\n    },\n    {\n      \"name\": \"intBar\",\n      \"detail\": \"⨎\",\n      \"doc\": \"Integral with double stroke\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"intctrclockwise\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intprod\",\n      \"detail\": \"⨼\",\n      \"doc\": \"Interior product\"\n    },\n    {\n      \"name\": \"intprodr\",\n      \"detail\": \"⨽\",\n      \"doc\": \"Righthand interior product\"\n    },\n    {\n      \"name\": \"invneg\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"langledot\",\n      \"detail\": \"⦑\",\n      \"doc\": \"Left angle bracket with dot\"\n    },\n    {\n      \"name\": \"largeblackcircle\"\n    },\n    {\n      \"name\": \"largeblacksquare\"\n    },\n    {\n      \"name\": \"largeblackstar\"\n    },\n    {\n      \"name\": \"largecircle\"\n    },\n    {\n      \"name\": \"largesquare\"\n    },\n    {\n      \"name\": \"largetriangledown\"\n    },\n    {\n      \"name\": \"largetriangleup\"\n    },\n    {\n      \"name\": \"largewhitestar\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"lcircleleftint\"\n    },\n    {\n      \"name\": \"lcirclerightint\"\n    },\n    {\n      \"name\": \"Ldsh\",\n      \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left down angled arrow\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"unusual\": true,\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftassert\"\n    },\n    {\n      \"name\": \"leftbkarrow\",\n      \"unusual\": true,\n      \"detail\": \"⤌\",\n      \"doc\": \"Leftwards double dash arrow\"\n    },\n    {\n      \"name\": \"leftblackspoon\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leftfootline\"\n    },\n    {\n      \"name\": \"leftlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmapsto\"\n    },\n    {\n      \"name\": \"Leftmapsto\"\n    },\n    {\n      \"name\": \"leftmodels\"\n    },\n    {\n      \"name\": \"leftpitchfork\"\n    },\n    {\n      \"name\": \"leftrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightblackspoon\"\n    },\n    {\n      \"name\": \"leftrightcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"unusual\": true,\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"unusual\": true,\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"unusual\": true,\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightspoon\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftrightwavearrow\"\n    },\n    {\n      \"name\": \"leftrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftspoon\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"lefttherefore\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftupcurvedarrow\"\n    },\n    {\n      \"name\": \"leftvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftvdash\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leftY\"\n    },\n    {\n      \"name\": \"leqclosed\"\n    },\n    {\n      \"name\": \"leqdot\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"leqslantdot\"\n    },\n    {\n      \"name\": \"leqslcc\"\n    },\n    {\n      \"name\": \"lescc\",\n      \"detail\": \"⪨\",\n      \"doc\": \"Less-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"lesdot\",\n      \"detail\": \"⩿\",\n      \"doc\": \"Less-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"lesg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"less\",\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lesscc\"\n    },\n    {\n      \"name\": \"lessclosed\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqgtrslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"unusual\": true,\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtcircle\",\n      \"detail\": \"◯\",\n      \"doc\": \"Large circle\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lhookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longdashv\",\n      \"detail\": \"⟞\",\n      \"doc\": \"Long right tack\"\n    },\n    {\n      \"name\": \"longleadsto\"\n    },\n    {\n      \"name\": \"longleftfootline\"\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longleftwavearrow\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"unusual\": true,\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longrightfootline\"\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longrightwavearrow\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lozengeminus\",\n      \"detail\": \"⟠\",\n      \"doc\": \"Lozenge divided by horizontal rule\"\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"lsem\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltcc\",\n      \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Less-than closed by curve\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"lVvert\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"unusual\": true,\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"Mapsdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"unusual\": true,\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"Mapsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathcolon\",\n      \"detail\": \":\",\n      \"doc\": \"\\\\colon (literal), colon (not ratio)\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathratio\",\n      \"detail\": \"∶\",\n      \"doc\": \"X \\\\colon, ratio\"\n    },\n    {\n      \"name\": \"mathslash\",\n      \"unusual\": true,\n      \"detail\": \"/\",\n      \"doc\": \"\\\\slash, solidus\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"measuredangleleft\",\n      \"detail\": \"⦛\",\n      \"doc\": \"Measured angle opening left\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"measuredrightangledot\"\n    },\n    {\n      \"name\": \"medbackslash\"\n    },\n    {\n      \"name\": \"medblackcircle\"\n    },\n    {\n      \"name\": \"medblackdiamond\"\n    },\n    {\n      \"name\": \"medblacklozenge\"\n    },\n    {\n      \"name\": \"medblacksquare\"\n    },\n    {\n      \"name\": \"medblackstar\",\n      \"detail\": \"⭑\",\n      \"doc\": \"Black medium star\"\n    },\n    {\n      \"name\": \"medblacktriangledown\"\n    },\n    {\n      \"name\": \"medblacktriangleleft\"\n    },\n    {\n      \"name\": \"medblacktriangleright\"\n    },\n    {\n      \"name\": \"medblacktriangleup\"\n    },\n    {\n      \"name\": \"medcircle\"\n    },\n    {\n      \"name\": \"meddiamond\"\n    },\n    {\n      \"name\": \"medlozenge\"\n    },\n    {\n      \"name\": \"medslash\"\n    },\n    {\n      \"name\": \"medsquare\"\n    },\n    {\n      \"name\": \"medstar\"\n    },\n    {\n      \"name\": \"medtriangledown\"\n    },\n    {\n      \"name\": \"medtriangleleft\"\n    },\n    {\n      \"name\": \"medtriangleright\"\n    },\n    {\n      \"name\": \"medtriangleup\"\n    },\n    {\n      \"name\": \"medwhitestar\",\n      \"detail\": \"⭐\",\n      \"doc\": \"White medium star\"\n    },\n    {\n      \"name\": \"midcir\",\n      \"detail\": \"⫰\",\n      \"doc\": \"Vertical line with circle below\"\n    },\n    {\n      \"name\": \"middlebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middlebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"middleslash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middleslash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minusfdots\",\n      \"detail\": \"⨫\",\n      \"doc\": \"Minus sign with falling dots\"\n    },\n    {\n      \"name\": \"minushookdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minushookup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusrdots\",\n      \"detail\": \"⨬\",\n      \"doc\": \"Minus sign with rising dots\"\n    },\n    {\n      \"name\": \"modtwosum\",\n      \"detail\": \"⨊\",\n      \"doc\": \"Modulo two sum\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"nacwcirclearrowdown\"\n    },\n    {\n      \"name\": \"nacwcirclearrowleft\"\n    },\n    {\n      \"name\": \"nacwcirclearrowright\"\n    },\n    {\n      \"name\": \"nacwcirclearrowup\"\n    },\n    {\n      \"name\": \"nacwgapcirclearrow\"\n    },\n    {\n      \"name\": \"nacwleftarcarrow\"\n    },\n    {\n      \"name\": \"nacwnearcarrow\"\n    },\n    {\n      \"name\": \"nacwnwarcarrow\"\n    },\n    {\n      \"name\": \"nacwopencirclearrow\"\n    },\n    {\n      \"name\": \"nacwoverarcarrow\"\n    },\n    {\n      \"name\": \"nacwrightarcarrow\"\n    },\n    {\n      \"name\": \"nacwsearcarrow\"\n    },\n    {\n      \"name\": \"nacwswarcarrow\"\n    },\n    {\n      \"name\": \"nacwunderarcarrow\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"napproxident\"\n    },\n    {\n      \"name\": \"narceq\"\n    },\n    {\n      \"name\": \"nAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nassert\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbackcong\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nBarv\"\n    },\n    {\n      \"name\": \"nbarV\"\n    },\n    {\n      \"name\": \"nbdleftarcarrow\"\n    },\n    {\n      \"name\": \"nbdnearcarrow\"\n    },\n    {\n      \"name\": \"nbdnwarcarrow\"\n    },\n    {\n      \"name\": \"nbdoverarcarrow\"\n    },\n    {\n      \"name\": \"nbdrightarcarrow\"\n    },\n    {\n      \"name\": \"nbdsearcarrow\"\n    },\n    {\n      \"name\": \"nbdswarcarrow\"\n    },\n    {\n      \"name\": \"nbdunderarcarrow\"\n    },\n    {\n      \"name\": \"nblackwhitespoon\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"nbumpeqq\"\n    },\n    {\n      \"name\": \"ncirceq\"\n    },\n    {\n      \"name\": \"ncirclearrowleft\"\n    },\n    {\n      \"name\": \"ncirclearrowright\"\n    },\n    {\n      \"name\": \"ncirmid\"\n    },\n    {\n      \"name\": \"nclosure\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ncurlyeqprec\"\n    },\n    {\n      \"name\": \"ncurlyeqsucc\"\n    },\n    {\n      \"name\": \"ncurvearrowleft\"\n    },\n    {\n      \"name\": \"ncurvearrowright\"\n    },\n    {\n      \"name\": \"ncwcirclearrowdown\"\n    },\n    {\n      \"name\": \"ncwcirclearrowleft\"\n    },\n    {\n      \"name\": \"ncwcirclearrowright\"\n    },\n    {\n      \"name\": \"ncwcirclearrowup\"\n    },\n    {\n      \"name\": \"ncwgapcirclearrow\"\n    },\n    {\n      \"name\": \"ncwleftarcarrow\"\n    },\n    {\n      \"name\": \"ncwnearcarrow\"\n    },\n    {\n      \"name\": \"ncwnwarcarrow\"\n    },\n    {\n      \"name\": \"ncwopencirclearrow\"\n    },\n    {\n      \"name\": \"ncwoverarcarrow\"\n    },\n    {\n      \"name\": \"ncwrightarcarrow\"\n    },\n    {\n      \"name\": \"ncwsearcarrow\"\n    },\n    {\n      \"name\": \"ncwswarcarrow\"\n    },\n    {\n      \"name\": \"ncwunderarcarrow\"\n    },\n    {\n      \"name\": \"ndasharrow\"\n    },\n    {\n      \"name\": \"ndashleftarrow\"\n    },\n    {\n      \"name\": \"ndashrightarrow\"\n    },\n    {\n      \"name\": \"nDashv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndashV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nDashV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndashv\"\n    },\n    {\n      \"name\": \"ndashVv\"\n    },\n    {\n      \"name\": \"nDdashv\"\n    },\n    {\n      \"name\": \"nDdownarrow\"\n    },\n    {\n      \"name\": \"ndivides\"\n    },\n    {\n      \"name\": \"nDoteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndoteq\"\n    },\n    {\n      \"name\": \"nDownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"ndownarrowtail\"\n    },\n    {\n      \"name\": \"ndownAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownassert\"\n    },\n    {\n      \"name\": \"ndownbkarrow\"\n    },\n    {\n      \"name\": \"ndownblackspoon\"\n    },\n    {\n      \"name\": \"ndowndownarrows\"\n    },\n    {\n      \"name\": \"ndownharpoonleft\"\n    },\n    {\n      \"name\": \"ndownharpoonright\"\n    },\n    {\n      \"name\": \"ndownlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownleftcurvedarrow\"\n    },\n    {\n      \"name\": \"ndownlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nDownmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownmapsto\"\n    },\n    {\n      \"name\": \"ndownmodels\"\n    },\n    {\n      \"name\": \"ndownpitchfork\"\n    },\n    {\n      \"name\": \"ndownrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownrightcurvedarrow\"\n    },\n    {\n      \"name\": \"ndownrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownspoon\"\n    },\n    {\n      \"name\": \"ndownuparrows\"\n    },\n    {\n      \"name\": \"ndownupcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownupharpoons\"\n    },\n    {\n      \"name\": \"ndownupharpoonsleftright\"\n    },\n    {\n      \"name\": \"ndownupsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownvdash\"\n    },\n    {\n      \"name\": \"ndownwavearrow\"\n    },\n    {\n      \"name\": \"ndualmap\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nearrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nebkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neharpoonnw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neharpoonse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nelcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nenearrows\"\n    },\n    {\n      \"name\": \"neqcirc\"\n    },\n    {\n      \"name\": \"neqdot\"\n    },\n    {\n      \"name\": \"neqsim\"\n    },\n    {\n      \"name\": \"neqslantgtr\"\n    },\n    {\n      \"name\": \"neqslantless\"\n    },\n    {\n      \"name\": \"nequal\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Neswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"neswarrows\"\n    },\n    {\n      \"name\": \"neswcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswharpoonnwse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswharpoonsenw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nfallingdotseq\"\n    },\n    {\n      \"name\": \"nfrown\"\n    },\n    {\n      \"name\": \"nfrowneq\"\n    },\n    {\n      \"name\": \"nfrownsmile\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqclosed\"\n    },\n    {\n      \"name\": \"ngeqdot\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngeqslantdot\"\n    },\n    {\n      \"name\": \"ngeqslcc\"\n    },\n    {\n      \"name\": \"ngescc\"\n    },\n    {\n      \"name\": \"ngesdot\"\n    },\n    {\n      \"name\": \"ngesl\"\n    },\n    {\n      \"name\": \"ngets\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"nggg\"\n    },\n    {\n      \"name\": \"ngtcc\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrcc\"\n    },\n    {\n      \"name\": \"ngtrclosed\"\n    },\n    {\n      \"name\": \"ngtrdot\"\n    },\n    {\n      \"name\": \"ngtreqless\"\n    },\n    {\n      \"name\": \"ngtreqlessslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngtreqqless\"\n    },\n    {\n      \"name\": \"ngtreqslantless\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nhateq\"\n    },\n    {\n      \"name\": \"nhknearrow\"\n    },\n    {\n      \"name\": \"nhknwarrow\"\n    },\n    {\n      \"name\": \"nhksearrow\"\n    },\n    {\n      \"name\": \"nhkswarrow\"\n    },\n    {\n      \"name\": \"nhookdownarrow\"\n    },\n    {\n      \"name\": \"nhookleftarrow\"\n    },\n    {\n      \"name\": \"nhooknearrow\"\n    },\n    {\n      \"name\": \"nhooknwarrow\"\n    },\n    {\n      \"name\": \"nhookrightarrow\"\n    },\n    {\n      \"name\": \"nhooksearrow\"\n    },\n    {\n      \"name\": \"nhookswarrow\"\n    },\n    {\n      \"name\": \"nhookuparrow\"\n    },\n    {\n      \"name\": \"nimageof\"\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"nleadsto\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"unusual\": true,\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nleftarrowtail\"\n    },\n    {\n      \"name\": \"nleftAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftassert\"\n    },\n    {\n      \"name\": \"nleftbkarrow\"\n    },\n    {\n      \"name\": \"nleftblackspoon\"\n    },\n    {\n      \"name\": \"nleftcurvedarrow\"\n    },\n    {\n      \"name\": \"nleftdowncurvedarrow\"\n    },\n    {\n      \"name\": \"nleftfootline\"\n    },\n    {\n      \"name\": \"nleftharpoondown\"\n    },\n    {\n      \"name\": \"nleftharpoonup\"\n    },\n    {\n      \"name\": \"nleftlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftleftarrows\"\n    },\n    {\n      \"name\": \"nleftlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nLeftmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftmapsto\"\n    },\n    {\n      \"name\": \"nleftmodels\"\n    },\n    {\n      \"name\": \"nleftpitchfork\"\n    },\n    {\n      \"name\": \"nleftrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"unusual\": true,\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleftrightarrows\"\n    },\n    {\n      \"name\": \"nleftrightblackspoon\"\n    },\n    {\n      \"name\": \"nleftrightcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftrightharpoondownup\"\n    },\n    {\n      \"name\": \"nleftrightharpoons\"\n    },\n    {\n      \"name\": \"nleftrightharpoonupdown\"\n    },\n    {\n      \"name\": \"nleftrightspoon\"\n    },\n    {\n      \"name\": \"nleftrightsquigarrow\"\n    },\n    {\n      \"name\": \"nleftrightwavearrow\"\n    },\n    {\n      \"name\": \"nleftrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftspoon\"\n    },\n    {\n      \"name\": \"nleftsquigarrow\"\n    },\n    {\n      \"name\": \"nleftupcurvedarrow\"\n    },\n    {\n      \"name\": \"nleftvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftvdash\"\n    },\n    {\n      \"name\": \"nleftwavearrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqclosed\"\n    },\n    {\n      \"name\": \"nleqdot\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nleqslantdot\"\n    },\n    {\n      \"name\": \"nleqslcc\"\n    },\n    {\n      \"name\": \"nlescc\"\n    },\n    {\n      \"name\": \"nlesdot\"\n    },\n    {\n      \"name\": \"nlesg\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlesscc\"\n    },\n    {\n      \"name\": \"nlessclosed\"\n    },\n    {\n      \"name\": \"nlessdot\"\n    },\n    {\n      \"name\": \"nlesseqgtr\"\n    },\n    {\n      \"name\": \"nlesseqgtrslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlesseqqgtr\"\n    },\n    {\n      \"name\": \"nlesseqslantgtr\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nLleftarrow\"\n    },\n    {\n      \"name\": \"nlll\"\n    },\n    {\n      \"name\": \"nlongdashv\"\n    },\n    {\n      \"name\": \"nlongleadsto\"\n    },\n    {\n      \"name\": \"nLongleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlongleftarrow\"\n    },\n    {\n      \"name\": \"nlongleftfootline\"\n    },\n    {\n      \"name\": \"nLongleftrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlongleftrightarrow\"\n    },\n    {\n      \"name\": \"nlongleftsquigarrow\"\n    },\n    {\n      \"name\": \"nlongleftwavearrow\"\n    },\n    {\n      \"name\": \"nLongmapsfrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlongmapsfrom\"\n    },\n    {\n      \"name\": \"nLongmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlongmapsto\"\n    },\n    {\n      \"name\": \"nLongrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlongrightarrow\"\n    },\n    {\n      \"name\": \"nlongrightfootline\"\n    },\n    {\n      \"name\": \"nlongrightsquigarrow\"\n    },\n    {\n      \"name\": \"nlongrightwavearrow\"\n    },\n    {\n      \"name\": \"nltcc\"\n    },\n    {\n      \"name\": \"nMapsdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmapsdown\"\n    },\n    {\n      \"name\": \"nMapsfrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmapsfrom\"\n    },\n    {\n      \"name\": \"nMapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmapsto\"\n    },\n    {\n      \"name\": \"nMapsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmapsup\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nmidcir\"\n    },\n    {\n      \"name\": \"nmodels\"\n    },\n    {\n      \"name\": \"nmultimap\"\n    },\n    {\n      \"name\": \"nmultimapinv\"\n    },\n    {\n      \"name\": \"nNearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnearrow\"\n    },\n    {\n      \"name\": \"nnearrowtail\"\n    },\n    {\n      \"name\": \"nnebkarrow\"\n    },\n    {\n      \"name\": \"nneharpoonnw\"\n    },\n    {\n      \"name\": \"nneharpoonse\"\n    },\n    {\n      \"name\": \"nnelcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnenearrows\"\n    },\n    {\n      \"name\": \"nnercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNeswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nneswarrow\"\n    },\n    {\n      \"name\": \"nneswarrows\"\n    },\n    {\n      \"name\": \"nneswcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nneswharpoonnwse\"\n    },\n    {\n      \"name\": \"nneswharpoons\"\n    },\n    {\n      \"name\": \"nneswharpoonsenw\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"nNwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwarrow\"\n    },\n    {\n      \"name\": \"nnwarrowtail\"\n    },\n    {\n      \"name\": \"nnwbkarrow\"\n    },\n    {\n      \"name\": \"nnwharpoonne\"\n    },\n    {\n      \"name\": \"nnwharpoonsw\"\n    },\n    {\n      \"name\": \"nnwlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwnwarrows\"\n    },\n    {\n      \"name\": \"nnwrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNwsearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwsearrow\"\n    },\n    {\n      \"name\": \"nnwsearrows\"\n    },\n    {\n      \"name\": \"nnwsecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwseharpoonnesw\"\n    },\n    {\n      \"name\": \"nnwseharpoons\"\n    },\n    {\n      \"name\": \"nnwseharpoonswne\"\n    },\n    {\n      \"name\": \"norigof\"\n    },\n    {\n      \"name\": \"nowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nperp\"\n    },\n    {\n      \"name\": \"npitchfork\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrestriction\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"unusual\": true,\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nrightarrowtail\"\n    },\n    {\n      \"name\": \"nrightAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightassert\"\n    },\n    {\n      \"name\": \"nrightbkarrow\"\n    },\n    {\n      \"name\": \"nrightblackspoon\"\n    },\n    {\n      \"name\": \"nrightcurvedarrow\"\n    },\n    {\n      \"name\": \"nrightdowncurvedarrow\"\n    },\n    {\n      \"name\": \"nrightfootline\"\n    },\n    {\n      \"name\": \"nrightharpoondown\"\n    },\n    {\n      \"name\": \"nrightharpoonup\"\n    },\n    {\n      \"name\": \"nrightlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightleftarrows\"\n    },\n    {\n      \"name\": \"nrightleftcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightleftharpoons\"\n    },\n    {\n      \"name\": \"nrightleftsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nRightmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightmapsto\"\n    },\n    {\n      \"name\": \"nrightmodels\"\n    },\n    {\n      \"name\": \"nrightpitchfork\"\n    },\n    {\n      \"name\": \"nrightrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightrightarrows\"\n    },\n    {\n      \"name\": \"nrightrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightspoon\"\n    },\n    {\n      \"name\": \"nrightsquigarrow\"\n    },\n    {\n      \"name\": \"nrightupcurvedarrow\"\n    },\n    {\n      \"name\": \"nrightvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightvdash\"\n    },\n    {\n      \"name\": \"nrightwavearrow\"\n    },\n    {\n      \"name\": \"nrisingdotseq\"\n    },\n    {\n      \"name\": \"nRrightarrow\"\n    },\n    {\n      \"name\": \"nSearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsearrow\"\n    },\n    {\n      \"name\": \"nsearrowtail\"\n    },\n    {\n      \"name\": \"nsebkarrow\"\n    },\n    {\n      \"name\": \"nseharpoonne\"\n    },\n    {\n      \"name\": \"nseharpoonsw\"\n    },\n    {\n      \"name\": \"nselcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsenwarrows\"\n    },\n    {\n      \"name\": \"nsenwcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsenwharpoons\"\n    },\n    {\n      \"name\": \"nsercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsesearrows\"\n    },\n    {\n      \"name\": \"nshortdowntack\"\n    },\n    {\n      \"name\": \"nshortlefttack\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortrighttack\"\n    },\n    {\n      \"name\": \"nshortuptack\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsmile\"\n    },\n    {\n      \"name\": \"nsmileeq\"\n    },\n    {\n      \"name\": \"nsmilefrown\"\n    },\n    {\n      \"name\": \"nSqsubset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsubseteqq\"\n    },\n    {\n      \"name\": \"nSqsupset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteqq\"\n    },\n    {\n      \"name\": \"nstareq\"\n    },\n    {\n      \"name\": \"nSubset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nSupset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nSwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswarrow\"\n    },\n    {\n      \"name\": \"nswarrowtail\"\n    },\n    {\n      \"name\": \"nswbkarrow\"\n    },\n    {\n      \"name\": \"nswharpoonnw\"\n    },\n    {\n      \"name\": \"nswharpoonse\"\n    },\n    {\n      \"name\": \"nswlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswnearrows\"\n    },\n    {\n      \"name\": \"nswnecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswneharpoons\"\n    },\n    {\n      \"name\": \"nswrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswswarrows\"\n    },\n    {\n      \"name\": \"nto\"\n    },\n    {\n      \"name\": \"ntriangleeq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntriplesim\"\n    },\n    {\n      \"name\": \"ntwoheaddownarrow\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadnearrow\"\n    },\n    {\n      \"name\": \"ntwoheadnwarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"ntwoheadsearrow\"\n    },\n    {\n      \"name\": \"ntwoheadswarrow\"\n    },\n    {\n      \"name\": \"ntwoheaduparrow\"\n    },\n    {\n      \"name\": \"nUparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"nuparrowtail\"\n    },\n    {\n      \"name\": \"nupAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupassert\"\n    },\n    {\n      \"name\": \"nupbkarrow\"\n    },\n    {\n      \"name\": \"nupblackspoon\"\n    },\n    {\n      \"name\": \"nUpdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupdownarrow\"\n    },\n    {\n      \"name\": \"nupdownarrows\"\n    },\n    {\n      \"name\": \"nupdowncurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupdownharpoonleftright\"\n    },\n    {\n      \"name\": \"nupdownharpoonrightleft\"\n    },\n    {\n      \"name\": \"nupdownharpoons\"\n    },\n    {\n      \"name\": \"nupdownharpoonsleftright\"\n    },\n    {\n      \"name\": \"nupdownsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupdownwavearrow\"\n    },\n    {\n      \"name\": \"nupharpoonleft\"\n    },\n    {\n      \"name\": \"nupharpoonright\"\n    },\n    {\n      \"name\": \"nuplcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupleftcurvedarrow\"\n    },\n    {\n      \"name\": \"nuplsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nUpmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupmapsto\"\n    },\n    {\n      \"name\": \"nupmodels\"\n    },\n    {\n      \"name\": \"nuppitchfork\"\n    },\n    {\n      \"name\": \"nuprcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuprightcurvearrow\"\n    },\n    {\n      \"name\": \"nuprsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupspoon\"\n    },\n    {\n      \"name\": \"nupuparrows\"\n    },\n    {\n      \"name\": \"nupvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupvdash\"\n    },\n    {\n      \"name\": \"nupwavearrow\"\n    },\n    {\n      \"name\": \"nUuparrow\"\n    },\n    {\n      \"name\": \"nvardownwavearrow\"\n    },\n    {\n      \"name\": \"nvarhookdownarrow\"\n    },\n    {\n      \"name\": \"nvarhookleftarrow\"\n    },\n    {\n      \"name\": \"nvarhooknearrow\"\n    },\n    {\n      \"name\": \"nvarhooknwarrow\"\n    },\n    {\n      \"name\": \"nvarhookrightarrow\"\n    },\n    {\n      \"name\": \"nvarhooksearrow\"\n    },\n    {\n      \"name\": \"nvarhookswarrow\"\n    },\n    {\n      \"name\": \"nvarhookuparrow\"\n    },\n    {\n      \"name\": \"nvarleftrightwavearrow\"\n    },\n    {\n      \"name\": \"nvarleftwavearrow\"\n    },\n    {\n      \"name\": \"nvarrightwavearrow\"\n    },\n    {\n      \"name\": \"nvarupdownwavearrow\"\n    },\n    {\n      \"name\": \"nvarupwavearrow\"\n    },\n    {\n      \"name\": \"nvBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nVbar\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"unusual\": true,\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"unusual\": true,\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"unusual\": true,\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDdash\"\n    },\n    {\n      \"name\": \"nveeeq\"\n    },\n    {\n      \"name\": \"nvlongdash\"\n    },\n    {\n      \"name\": \"nVvdash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwarrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwbkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwedgeq\"\n    },\n    {\n      \"name\": \"nwharpoonne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwharpoonsw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwhiteblackspoon\"\n    },\n    {\n      \"name\": \"nwlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwnwarrows\"\n    },\n    {\n      \"name\": \"nwrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nwsearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"nwsearrows\"\n    },\n    {\n      \"name\": \"nwsecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwseharpoonnesw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwseharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwseharpoonswne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oast\"\n    },\n    {\n      \"name\": \"obackslash\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"odash\"\n    },\n    {\n      \"name\": \"oequal\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"osum\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overt\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"plusdot\",\n      \"detail\": \"⨥\",\n      \"doc\": \"Plus sign with dot below\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"propfrom\"\n    },\n    {\n      \"name\": \"pullback\",\n      \"detail\": \"⟓\",\n      \"doc\": \"Lower right corner with dot\"\n    },\n    {\n      \"name\": \"pushout\",\n      \"detail\": \"⟔\",\n      \"doc\": \"Upper left corner with dot\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"rangledot\",\n      \"detail\": \"⦒\",\n      \"doc\": \"Right angle bracket with dot\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rcircleleftint\"\n    },\n    {\n      \"name\": \"rcirclerightint\"\n    },\n    {\n      \"name\": \"Rdsh\",\n      \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Right down angled arrow\"\n    },\n    {\n      \"name\": \"restriction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"revmeasuredangle\"\n    },\n    {\n      \"name\": \"revsphericalangle\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightanglesquare\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"unusual\": true,\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightassert\"\n    },\n    {\n      \"name\": \"rightbkarrow\",\n      \"unusual\": true,\n      \"detail\": \"⤍\",\n      \"doc\": \"Rightwards double dash arrow\"\n    },\n    {\n      \"name\": \"rightblackspoon\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"rightfootline\"\n    },\n    {\n      \"name\": \"rightlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightleftsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rightmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmodels\"\n    },\n    {\n      \"name\": \"rightpitchfork\"\n    },\n    {\n      \"name\": \"rightrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightspoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"righttherefore\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightupcurvedarrow\"\n    },\n    {\n      \"name\": \"rightvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightvdash\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"rightY\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"rsem\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rVvert\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"searrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sebkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sector\"\n    },\n    {\n      \"name\": \"seharpoonne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seharpoonsw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senwarrows\"\n    },\n    {\n      \"name\": \"senwcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senwharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sesearrows\"\n    },\n    {\n      \"name\": \"shortdowntack\",\n      \"detail\": \"⫟\",\n      \"doc\": \"Short down tack\"\n    },\n    {\n      \"name\": \"shortlefttack\",\n      \"detail\": \"⫞\",\n      \"doc\": \"Short left tack\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortrighttack\"\n    },\n    {\n      \"name\": \"shortuptack\",\n      \"detail\": \"⫠\",\n      \"doc\": \"Short up tack\"\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"smallblackcircle\"\n    },\n    {\n      \"name\": \"smallblackdiamond\"\n    },\n    {\n      \"name\": \"smallblacklozenge\"\n    },\n    {\n      \"name\": \"smallblacksquare\"\n    },\n    {\n      \"name\": \"smallblackstar\"\n    },\n    {\n      \"name\": \"smallblacktriangledown\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleup\"\n    },\n    {\n      \"name\": \"smallcircle\"\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smalldiamond\"\n    },\n    {\n      \"name\": \"smalldivslash\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalllozenge\"\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsquare\"\n    },\n    {\n      \"name\": \"smalltriangledown\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleup\"\n    },\n    {\n      \"name\": \"smallwhitestar\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smblksquare\",\n      \"detail\": \"▪\",\n      \"doc\": \"Sq bullet, filled\"\n    },\n    {\n      \"name\": \"smileeq\"\n    },\n    {\n      \"name\": \"smilefrown\"\n    },\n    {\n      \"name\": \"smwhitestar\",\n      \"detail\": \"⭒\",\n      \"doc\": \"White small star\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"smwhtsquare\",\n      \"detail\": \"▫\",\n      \"doc\": \"White small square\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sphericalangledown\"\n    },\n    {\n      \"name\": \"sphericalangleleft\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"Sqcap\",\n      \"detail\": \"⩎\",\n      \"doc\": \"Double square intersection\"\n    },\n    {\n      \"name\": \"sqcapdot\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"Sqcup\",\n      \"detail\": \"⩏\",\n      \"doc\": \"Double square union\"\n    },\n    {\n      \"name\": \"sqcupdot\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"Sqsubset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubseteqq\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsubsetneqq\"\n    },\n    {\n      \"name\": \"Sqsupset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupseteqq\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"sqsupsetneqq\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squaredots\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"starofdavid\"\n    },\n    {\n      \"name\": \"strokethrough\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strokethrough{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"swarrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swbkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swharpoonnw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swharpoonse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swnearrows\"\n    },\n    {\n      \"name\": \"swnecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swneharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swswarrows\"\n    },\n    {\n      \"name\": \"tawint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbiguplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tconjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdisjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tfint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tidotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timesbar\",\n      \"detail\": \"⨱\",\n      \"doc\": \"Multiplication sign with underbar\"\n    },\n    {\n      \"name\": \"tint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleeq\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"triplesim\"\n    },\n    {\n      \"name\": \"tsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttimes\"\n    },\n    {\n      \"name\": \"turnedbackneg\"\n    },\n    {\n      \"name\": \"turnedneg\"\n    },\n    {\n      \"name\": \"turnednot\",\n      \"detail\": \"⌙\",\n      \"doc\": \"Turned not sign\"\n    },\n    {\n      \"name\": \"tvarcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"unusual\": true,\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadnearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheadnwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheadsearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheadswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"udotdot\"\n    },\n    {\n      \"name\": \"udots\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"ullcorner\"\n    },\n    {\n      \"name\": \"ulrcorner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"uparrowtail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upAssert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upassert\"\n    },\n    {\n      \"name\": \"upbkarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upblackspoon\"\n    },\n    {\n      \"name\": \"upbowtie\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updowncurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"unusual\": true,\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"unusual\": true,\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"unusual\": true,\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"updownsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownwavearrow\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"unusual\": true,\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"unusual\": true,\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"uplcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upleftcurvedarrow\"\n    },\n    {\n      \"name\": \"uplsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upmapsto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmodels\"\n    },\n    {\n      \"name\": \"uppitchfork\"\n    },\n    {\n      \"name\": \"uprcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"uprsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upspoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptherefore\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upvDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upVdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upVDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upvdash\"\n    },\n    {\n      \"name\": \"upwavearrow\"\n    },\n    {\n      \"name\": \"upY\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"utimes\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"varamalg\"\n    },\n    {\n      \"name\": \"varcoprod\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"vardownwavearrow\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varhookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhookleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhookrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varhookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varleftrightwavearrow\"\n    },\n    {\n      \"name\": \"varleftwavearrow\"\n    },\n    {\n      \"name\": \"varmodtwosum\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varosum\"\n    },\n    {\n      \"name\": \"varprod\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrightwavearrow\"\n    },\n    {\n      \"name\": \"varsmallcoprod\"\n    },\n    {\n      \"name\": \"varsmallprod\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsum\"\n    },\n    {\n      \"name\": \"varsumint\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varupdownwavearrow\"\n    },\n    {\n      \"name\": \"varupwavearrow\"\n    },\n    {\n      \"name\": \"vBar\",\n      \"detail\": \"⫨\",\n      \"doc\": \"Short up tack with underbar\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"vDdash\",\n      \"detail\": \"⫢\",\n      \"doc\": \"Vertical bar triple right turnstile\"\n    },\n    {\n      \"name\": \"vdotdot\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"unusual\": true,\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"vlongdash\",\n      \"detail\": \"⟝\",\n      \"doc\": \"Long left tack\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wedgeonwedge\",\n      \"detail\": \"⩕\",\n      \"doc\": \"Two intersecting logical and\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"whiteblackspoon\"\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wreath\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fdsymbol#c\": [\n      \"normalweight=${1|Book,regular,auto|}\",\n      \"boldweight=${1|Medium,Bold,auto|}\",\n      \"scale=${1:factor}\",\n      \"largedelims\",\n      \"opstyle=${1|serif,sans|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fdsymbol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fdulogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex85\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fduname\"\n    },\n    {\n      \"name\": \"fduname\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fduname[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fduemblem\"\n    },\n    {\n      \"name\": \"fduemblem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fduemblem[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fduemblem*\"\n    },\n    {\n      \"name\": \"fduemblem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fduemblem*[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fdumotto\"\n    },\n    {\n      \"name\": \"fdumotto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fdumotto[${1:TikZ keys}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fenixpar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fenixtok\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewParType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewParType{${1:type name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NextParL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextParL{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"NextParR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextParR{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"NextPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextPar{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"AllParsL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AllParsL{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"AllParsR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AllParsR{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"AllPars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AllPars{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"EndPars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EndPars{${1:type name}}\"\n      }\n    },\n    {\n      \"name\": \"nextpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextpar{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fenixtok.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fornexttokl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fornexttokl{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"fornexttokr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fornexttokr{${1:csname}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewTypeoftok\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTypeoftok{${1:csname}}{${2:type name}}{${3:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fetamont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MF\"\n    },\n    {\n      \"name\": \"MP\"\n    },\n    {\n      \"name\": \"MT\"\n    },\n    {\n      \"name\": \"textffm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textffm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textffmw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textffmw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ffmfamily\"\n    },\n    {\n      \"name\": \"ffmwfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fetchbibpes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fetchverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchverse{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"fetchverse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fetchverse[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\fetchverse,\\\\fetchverses,\\\\fetchverses*,\\\\useBookStyle,\\\\fetchversestxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fetchverses\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchverses{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"fetchverses\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fetchverses[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\fetchverse,\\\\fetchverses,\\\\fetchverses*,\\\\useBookStyle,\\\\fetchversestxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fetchverses*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchverses*{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"fetchverses*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fetchverses*[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\fetchverse,\\\\fetchverses,\\\\fetchverses*,\\\\useBookStyle,\\\\fetchversestxt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useOldAlt\"\n    },\n    {\n      \"name\": \"useNewAlt\"\n    },\n    {\n      \"name\": \"showTranslAlways\"\n    },\n    {\n      \"name\": \"showTranslDecld\"\n    },\n    {\n      \"name\": \"verseFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXQuotesOff\"\n    },\n    {\n      \"name\": \"LaTeXQuotesOn\"\n    },\n    {\n      \"name\": \"gobbleto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobbleto{${1:word}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"addtoBibles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoBibles{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"defaultBible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultBible{${1:transl}}\"\n      }\n    },\n    {\n      \"name\": \"fbdefaultBible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useBookStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useBookStyle{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"usePassage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usePassage{${1:verse ref}}\"\n      }\n    },\n    {\n      \"name\": \"fetchversestxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchversestxt{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"fetchversestxt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fetchversestxt[${2:options%keyvals}]{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"versetxt\"\n    },\n    {\n      \"name\": \"passagetxt\"\n    },\n    {\n      \"name\": \"cobblevrs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cobblevrs{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cobblevrs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cobblevrs*{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"translFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translFmt{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"translFmtDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translTxtFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translTxtFmt{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"translTxtFmtDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priorRefSpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorRefSpc{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fbFitItIn\"\n    },\n    {\n      \"name\": \"fbFillRght\"\n    },\n    {\n      \"name\": \"afterBookSpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterBookSpc{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"resetAfterBookSpc\"\n    },\n    {\n      \"name\": \"afterRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterRef{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"afterNumSpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterNumSpc{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"verseFmtReset\"\n    },\n    {\n      \"name\": \"verseFmtDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseFmtDef{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"afterVerseFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterVerseFmt{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"registerBibles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerBibles{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"fbMarParFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fbMarParFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fbResetMarParFmt\"\n    },\n    {\n      \"name\": \"fbMarNotesOn\"\n    },\n    {\n      \"name\": \"fbMarNotesOff\"\n    },\n    {\n      \"name\": \"sr\",\n      \"if\": \"usesr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sr{${1:text}}{${2:passages}}\"\n      }\n    },\n    {\n      \"name\": \"BV\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"BV(${1:verse ref})\"\n      }\n    },\n    {\n      \"name\": \"null\"\n    },\n    {\n      \"name\": \"markverse\",\n      \"if\": \"fetchsubtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markverse{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"markverse\",\n      \"if\": \"fetchsubtr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"markverse[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\markverse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bMrkFP\",\n      \"if\": \"fetchsubtr\"\n    },\n    {\n      \"name\": \"eMrkFP\",\n      \"if\": \"fetchsubtr\"\n    },\n    {\n      \"name\": \"markverse\",\n      \"if\": \"fetchsubstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markverse{${1:book ch:vrs}}\"\n      }\n    },\n    {\n      \"name\": \"markverse\",\n      \"if\": \"fetchsubstr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"markverse[${2:options%keyvals}]{${1:book ch:vrs}}\",\n        \"keys\": [\n          \"\\\\markverse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bMrkFP\",\n      \"if\": \"fetchsubstr\"\n    },\n    {\n      \"name\": \"eMrkFP\",\n      \"if\": \"fetchsubstr\"\n    },\n    {\n      \"name\": \"bDQ\"\n    },\n    {\n      \"name\": \"eDQ\"\n    },\n    {\n      \"name\": \"bSQ\"\n    },\n    {\n      \"name\": \"eSQ\"\n    },\n    {\n      \"name\": \"AlwaysShowDefBible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookexistsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookexiststrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bookFmt{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"csarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csarg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cvrtdqs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expBkAbbrChoices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fbSetFromChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fbSetFromChoiceKey{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"fetchInputMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fetchsubstrfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fetchsubstrtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fetchtoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchtoks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fetchversetxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fetchWarningMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsbstrInputMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsbstrWarningMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"G\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"G{${1:nnnn}}\"\n      }\n    },\n    {\n      \"name\": \"H\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"H{${1:nnnn}}\"\n      }\n    },\n    {\n      \"name\": \"handleUnRegBibles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handleUnRegBibles{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ifbookexists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffetchsubstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifparsefetcharg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowDefBible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifuseoldalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversestochend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiioiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iiioiv{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"inputVerseList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputVerseList{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ioiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ioiv{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"isitstar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isstopreplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isstopreplace{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"istopreplacei\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"istopreplacei{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"NeverShowDefBible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsefetchargfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsefetchargtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selBkAbbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setNumStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showDefBiblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showDefBibletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srInputMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srWarningMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useoldaltfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useoldalttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useverseslist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verseCmtsi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseCmtsi{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"versestochendfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versestochendtrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"declareBVs\"\n    },\n    {\n      \"name\": \"declareBVs*\"\n    },\n    {\n      \"name\": \"fpquote\"\n    },\n    {\n      \"name\": \"fpquote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fpquote},\\\\begin{fpverse},\\\\begin{fpquotation}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fpverse\"\n    },\n    {\n      \"name\": \"fpverse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fpquote},\\\\begin{fpverse},\\\\begin{fpquotation}\",\n          \"\\\\begin{fpverse},\\\\begin{fpquotation}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fpquotation\"\n    },\n    {\n      \"name\": \"fpquotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fpquote},\\\\begin{fpverse},\\\\begin{fpquotation}\",\n          \"\\\\begin{fpverse},\\\\begin{fpquotation}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fetchbibpes#c\": [\n      \"deffolder=${1:file path}\",\n      \"useverses={${1:file1,file2,...}}\",\n      \"useselverses\",\n      \"usesr\",\n      \"fetchsubtr\",\n      \"ignorecfg\",\n      \"cfg=${1:name}\"\n    ],\n    \"\\\\fetchverse,\\\\fetchverses,\\\\fetchverses*,\\\\useBookStyle,\\\\fetchversestxt\": [\n      \"abbr=${1|esword,none,long,short|}\",\n      \"roman\",\n      \"from=${1|KVJ,KVJ+,ISV|}\",\n      \"alt=${1:word}\",\n      \"alt*={${1:word1,word2,...}}\",\n      \"transl=${1:text}\",\n      \"from*=${1|KJV,KJV+,ISV|}\",\n      \"pcolor=\",\n      \"pformat=${1:format cmds}\",\n      \"delims=${1:<tok1><tok2>}\",\n      \"enclosewith=${1:<tok1><tok2>\\\\quote}\",\n      \"format=${1:format cmds}\",\n      \"caps\",\n      \"showfirst\",\n      \"shownone\",\n      \"useperiod\",\n      \"citeatend\",\n      \"nocite\",\n      \"priorref=\",\n      \"ltxquotes\",\n      \"replace={${1:find1}}{${2:replace1}}${3:{find2}{replace2}...}\",\n      \"localdefs={${1:localdefs}}\",\n      \"typeset=\",\n      \"typeset*=\"\n    ],\n    \"\\\\markverse\": [\n      \"name=${1:name}\",\n      \"from=${1:transl}\",\n      \"marks={${1:bfind1}}{${2:efind1}}${3:{bfind2}{efind2}...}\",\n      \"name=${1:name}\",\n      \"from=${1:transl}\",\n      \"marks={${1:bfind1}}{${2:efind1}}${3:{bfind2}{efind2}...}\"\n    ],\n    \"\\\\begin{fpquote},\\\\begin{fpverse},\\\\begin{fpquotation}\": [\n      \"leftmargin=\",\n      \"rightmargin=\"\n    ],\n    \"\\\\begin{fpverse},\\\\begin{fpquotation}\": [\n      \"itemindent=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fetchbibpes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fetchcls.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"classname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fewerfloatpages.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"floatpagekeepfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefloatpagedeferlimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefloatpagekeeplimit\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fewerfloatpages#c\": [\n      \"checktb\",\n      \"addbang\",\n      \"nocheck\",\n      \"trace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fewerfloatpages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/feyn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"feyn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feyn{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"Feyn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Feyn{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"FEYN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FEYN{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"momentum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"momentum{${1:chars}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"momentum\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"momentum[${3:pos%keyvals}]{${1:chars}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\momentum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"belowl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belowl{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"belowr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belowr{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"Diagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Diagram{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"Diagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Diagram[${2:alignment%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\Diagram,\\\\DIAGRAM\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DIAGRAM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DIAGRAM{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"DIAGRAM\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DIAGRAM[${2:alignment%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\Diagram,\\\\DIAGRAM\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vertexlabel\"\n    },\n    {\n      \"name\": \"feynstrut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"feynstrut{${1:height}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"annotate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"annotate{${1:x}}{${2:y}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tannotate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tannotate{${1:x}}{${2:y}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"FeynSpaceChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeynxSpaceChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wfermion\"\n    },\n    {\n      \"name\": \"hfermion\"\n    },\n    {\n      \"name\": \"shfermion\"\n    },\n    {\n      \"name\": \"whfermion\"\n    },\n    {\n      \"name\": \"gvcropped\"\n    },\n    {\n      \"name\": \"bigbosonloop\"\n    },\n    {\n      \"name\": \"smallbosonloop\"\n    },\n    {\n      \"name\": \"bigbosonloopA\"\n    },\n    {\n      \"name\": \"smallbosonloopA\"\n    },\n    {\n      \"name\": \"bigbosonloopV\"\n    },\n    {\n      \"name\": \"smallbosonloopV\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/feyn#c\": [\n      \"globalbang\",\n      \"noglobalbang\"\n    ],\n    \"\\\\momentum\": [\n      \"top\",\n      \"urt\",\n      \"lrt\",\n      \"bot\",\n      \"llft\",\n      \"ulft\"\n    ],\n    \"\\\\Diagram,\\\\DIAGRAM\": [\n      \"bottom\",\n      \"centre\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/feyn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/feynmf.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fmf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmf{${1:style,opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfblob\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfblob{${1:diameter}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfblobn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfblobn{${1:diameter}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfbottom{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfbottomn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfbottomn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfcmd{${1:METAFONT code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmfcurved\"\n    },\n    {\n      \"name\": \"fmfcyclen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfcyclen{${1:style}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdisplay\"\n    },\n    {\n      \"name\": \"fmfdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfdot{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdotn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfdotn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdraw\"\n    },\n    {\n      \"name\": \"fmffixed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixed{${1:dist}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmffixedx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixedx{${1:dx}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmffixedy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixedy{${1:dy}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfforce\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfforce{${1:pos}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfframe\",\n      \"arg\": {\n        \"format\": \"(left,top}(){}\",\n        \"snippet\": \"fmfframe(left,top}(${2:right},${3:bottom}){${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"fmffreeze\"\n    },\n    {\n      \"name\": \"fmfi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfi{${1:style,opt=val,...}}{${2:p}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiequ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiequ{${1:lval}}{${2:rval}}\"\n      }\n    },\n    {\n      \"name\": \"fmfipair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfipair{${1:METAFONT pairs}}\"\n      }\n    },\n    {\n      \"name\": \"fmfipath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfipath{${1:METAFONT paths}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiset{${1:lval}}{${2:rval}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiv{${1:shape=val,opt=val,...}}{${2:v}}\"\n      }\n    },\n    {\n      \"name\": \"fmfkeep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfkeep{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"fmflabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmflabel{${1:label}}{${2:v}}\"\n      }\n    },\n    {\n      \"name\": \"fmfleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfleft{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfleftn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfleftn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfnotrace\"\n    },\n    {\n      \"name\": \"fmfpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfpen{${1:weight}}\"\n      }\n    },\n    {\n      \"name\": \"fmfpoly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfpoly{${1:style,opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfpolyn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfpolyn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfposition\"\n    },\n    {\n      \"name\": \"fmfrcyclen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfrcyclen{${1:style}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfreuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfreuse{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\fmfreuse#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fmfright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfright{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfrightn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfrightn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfrpolyn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfrpolyn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfset{${1:parameter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"fmfshift\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfshift{${1:dist}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfstopdisplay\"\n    },\n    {\n      \"name\": \"fmfstraight\"\n    },\n    {\n      \"name\": \"fmfsurround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfsurround{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfsurroundn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfsurroundn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmftop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmftop{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmftopn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmftopn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmftrace\"\n    },\n    {\n      \"name\": \"fmfv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfv{${1:opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfvn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfvn{${1:opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfwizard\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fmffile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:METAFONT-file%file}}\"\n      }\n    },\n    {\n      \"name\": \"fmfchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfchar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmffor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:var}}{${2:from}}{${3:step}}{${4:to}}\"\n      }\n    },\n    {\n      \"name\": \"fmfgraph\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfgraph*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfgroup\"\n    },\n    {\n      \"name\": \"fmfshrink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"fmfsubgraph\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/feynmf#c\": [\n      \"errorstop\",\n      \"scroll\",\n      \"nonstop\",\n      \"batch\"\n    ],\n    \"\\\\fmfreuse#c\": [\n      \"%fmfname\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/feynmf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/feynmp-auto.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"feynmp\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/feynmp-auto#c\": [\n      \"force\",\n      \"errorstop\",\n      \"scroll\",\n      \"nonstop\",\n      \"batch\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/feynmp-auto#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/feynmp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fmf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmf{${1:style,opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfblob\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfblob{${1:diameter}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfblobn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfblobn{${1:diameter}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfbottom{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfbottomn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfbottomn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfcmd{${1:METAPOST code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmfcurved\"\n    },\n    {\n      \"name\": \"fmfcyclen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfcyclen{${1:style}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdisplay\"\n    },\n    {\n      \"name\": \"fmfdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfdot{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdotn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfdotn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfdraw\"\n    },\n    {\n      \"name\": \"fmffixed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixed{${1:dist}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmffixedx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixedx{${1:dx}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmffixedy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmffixedy{${1:dy}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfforce\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfforce{${1:pos}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfframe\",\n      \"arg\": {\n        \"format\": \"(left,top}(){}\",\n        \"snippet\": \"fmfframe(left,top}(${2:right},${3:bottom}){${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"fmffreeze\"\n    },\n    {\n      \"name\": \"fmfi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfi{${1:style,opt=val,...}}{${2:p}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiequ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiequ{${1:lval}}{${2:rval}}\"\n      }\n    },\n    {\n      \"name\": \"fmfipair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfipair{${1:METAPOST pairs}}\"\n      }\n    },\n    {\n      \"name\": \"fmfipath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfipath{${1:METAPOST paths}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiset{${1:lval}}{${2:rval}}\"\n      }\n    },\n    {\n      \"name\": \"fmfiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfiv{${1:shape=val,opt=val,...}}{${2:v}}\"\n      }\n    },\n    {\n      \"name\": \"fmfkeep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfkeep{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"fmflabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmflabel{${1:label}}{${2:v}}\"\n      }\n    },\n    {\n      \"name\": \"fmfleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfleft{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfleftn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfleftn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfnotrace\"\n    },\n    {\n      \"name\": \"fmfpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfpen{${1:weight}}\"\n      }\n    },\n    {\n      \"name\": \"fmfpoly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfpoly{${1:style,opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfpolyn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfpolyn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfposition\"\n    },\n    {\n      \"name\": \"fmfrcyclen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfrcyclen{${1:style}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfreuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfreuse{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\fmfreuse#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fmfright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfright{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfrightn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfrightn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfrpolyn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfrpolyn{${1:style,opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfset{${1:parameter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"fmfshift\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfshift{${1:dist}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfstopdisplay\"\n    },\n    {\n      \"name\": \"fmfstraight\"\n    },\n    {\n      \"name\": \"fmfsurround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmfsurround{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfsurroundn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfsurroundn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmftop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmftop{${1:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmftopn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmftopn{${1:v}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmftrace\"\n    },\n    {\n      \"name\": \"fmfv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmfv{${1:opt=val,...}}{${2:v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fmfvn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fmfvn{${1:opt=val,...}}{${2:v}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"fmfwizard\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fmffile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:METAPOST-file%file}}\"\n      }\n    },\n    {\n      \"name\": \"fmfchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfchar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmffor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:var}}{${2:from}}{${3:step}}{${4:to}}\"\n      }\n    },\n    {\n      \"name\": \"fmfgraph\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfgraph*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fmfgroup\"\n    },\n    {\n      \"name\": \"fmfshrink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"fmfsubgraph\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x},${2:y})(${3:width},${4:height})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/feynmp#c\": [\n      \"errorstop\",\n      \"scroll\",\n      \"nonstop\",\n      \"batch\"\n    ],\n    \"\\\\fmfreuse#c\": [\n      \"%fmfname\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/feynmp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ffcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ff{${1:code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ffcode\"\n    },\n    {\n      \"name\": \"ffcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:listings options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ffcode#c\": [\n      \"noframes\",\n      \"nobars\",\n      \"nonumbers\",\n      \"nocn\",\n      \"bold\",\n      \"sf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ffcode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fge.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"spirituslenis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spirituslenis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"spiritusasper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spiritusasper{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fgerighttwo\"\n    },\n    {\n      \"name\": \"fgerightB\"\n    },\n    {\n      \"name\": \"fgelefttwo\"\n    },\n    {\n      \"name\": \"fgeleftthree\"\n    },\n    {\n      \"name\": \"fgeleftB\"\n    },\n    {\n      \"name\": \"fgeleftC\"\n    },\n    {\n      \"name\": \"fgec\"\n    },\n    {\n      \"name\": \"fgee\"\n    },\n    {\n      \"name\": \"fgeeszett\"\n    },\n    {\n      \"name\": \"fgeA\"\n    },\n    {\n      \"name\": \"fged\"\n    },\n    {\n      \"name\": \"fgef\"\n    },\n    {\n      \"name\": \"fgeF\"\n    },\n    {\n      \"name\": \"fgestruckzero\"\n    },\n    {\n      \"name\": \"fgestruckone\"\n    },\n    {\n      \"name\": \"fgerightarrow\"\n    },\n    {\n      \"name\": \"fgeuparrow\"\n    },\n    {\n      \"name\": \"fgeupbracket\"\n    },\n    {\n      \"name\": \"fgecap\"\n    },\n    {\n      \"name\": \"fgecup\"\n    },\n    {\n      \"name\": \"fgecupbar\"\n    },\n    {\n      \"name\": \"fgecapbar\"\n    },\n    {\n      \"name\": \"fgebarcap\"\n    },\n    {\n      \"name\": \"fgecupacute\"\n    },\n    {\n      \"name\": \"fgebaracute\"\n    },\n    {\n      \"name\": \"fgemark\"\n    },\n    {\n      \"name\": \"fgelb\"\n    },\n    {\n      \"name\": \"fgeinfty\"\n    },\n    {\n      \"name\": \"fgelangle\"\n    },\n    {\n      \"name\": \"fges\"\n    },\n    {\n      \"name\": \"fgebackslash\"\n    },\n    {\n      \"name\": \"fgevareta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgeeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgeN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgeoverU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgeU\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fge#c\": [\n      \"crescent\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fge#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fgruler.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setfgruler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfgruler{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/fgruler#c,\\\\setfgruler,\\\\fgruler*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgruler*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgruler*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"fgruler*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fgruler*[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\usepackage/fgruler#c,\\\\setfgruler,\\\\fgruler*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgruler\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fgruler{${1:type%keyvals}}{${2:hshift%l}}{${3:vshift%l}}\",\n        \"keys\": [\n          \"\\\\fgruler,\\\\squareruler,\\\\squareruler*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fgruler\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fgruler[${4:unit}]{${1:type%keyvals}}{${2:hshift%l}}{${3:vshift%l}}\",\n        \"keys\": [\n          \"\\\\fgruler,\\\\squareruler,\\\\squareruler*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ruler\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruler{${1:type%keyvals}}{${2:length}}\",\n        \"keys\": [\n          \"\\\\ruler,\\\\ruler*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ruler\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ruler[${3:unit}]{${1:type%keyvals}}{${2:length}}\",\n        \"keys\": [\n          \"\\\\ruler,\\\\ruler*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ruler*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruler*{${1:type%keyvals}}{${2:length}}\",\n        \"keys\": [\n          \"\\\\ruler,\\\\ruler*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ruler*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ruler*[${3:unit}]{${1:type%keyvals}}{${2:length}}\",\n        \"keys\": [\n          \"\\\\ruler,\\\\ruler*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"squareruler\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"squareruler{${1:type%keyvals}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"squareruler\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"squareruler[${4:unit}]{${1:type%keyvals}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"squareruler*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"squareruler*{${1:type%keyvals}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"squareruler*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"squareruler*[${4:unit}]{${1:type%keyvals}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"rulerparams\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"rulerparams{${1:markthick%l}}{${2:numfont}}{${3:color}}{${4:marklength%l}}{${5:numsep%l}}\"\n      }\n    },\n    {\n      \"name\": \"rulerparamsfromfg\"\n    },\n    {\n      \"name\": \"rulernorotatenum\"\n    },\n    {\n      \"name\": \"rulerrotatenum\"\n    },\n    {\n      \"name\": \"fgrulerstartnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerstartnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerstartnumh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerstartnumh{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerstartnumv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerstartnumv{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulernoborderline\"\n    },\n    {\n      \"name\": \"fgrulerborderline\"\n    },\n    {\n      \"name\": \"fgrulercaptioncm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulercaptioncm{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulercaptionin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulercaptionin{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerdefnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerdefnum{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerratiocm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fgrulerratiocm{${1:ratio1}}{${2:ratio2}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerratioin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fgrulerratioin{${1:ratio1}}{${2:ratio2}}{${3:ratio3}}{${4:ratio4}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerthickcm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fgrulerthickcm{${1:thick1%l}}{${2:thick2%l}}{${3:thick3%l}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerthickin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fgrulerthickin{${1:thick1%l}}{${2:thick2%l}}{${3:thick3%l}}{${4:thick4%l}}{${5:thick5%l}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulercolorcm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fgrulercolorcm{${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulercolorin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fgrulercolorin{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerreset\"\n    },\n    {\n      \"name\": \"fgrulerdefuser\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerdefuser{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerdefusercm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerdefusercm{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulerdefuserin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fgrulerdefuserin{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"fgrulertype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fgrulertype{${1:unit}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"thefgrulernum\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fgruler#c,\\\\setfgruler,\\\\fgruler*\": [\n      \"unit=${1|cm,in|}\",\n      \"type=${1|upperleft,upperright,lowerleft,lowerright,upperleftT,upperrightT,lowerleftT,lowerrightT,alledges,alledges*,alledgesT,alledgesT*,none,user|}\",\n      \"hshift=\",\n      \"vshift=\",\n      \"color=\",\n      \"numsep=\",\n      \"markthick=\",\n      \"numfont=${1:font commands}\",\n      \"showframe\",\n      \"nonefgrulers\"\n    ],\n    \"\\\\fgruler,\\\\squareruler,\\\\squareruler*\": [\n      \"upperleft\",\n      \"upperright\",\n      \"lowerleft\",\n      \"lowerright\"\n    ],\n    \"\\\\ruler,\\\\ruler*\": [\n      \"downright\",\n      \"downleft\",\n      \"upright\",\n      \"upleft\",\n      \"rightdown\",\n      \"rightup\",\n      \"leftdown\",\n      \"leftup\",\n      \"taperight\",\n      \"tapeleft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fgruler#c,\\\\setfgruler,\\\\fgruler*\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fhgtechdoku_additional.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fulltextwidth\"\n    },\n    {\n      \"name\": \"setauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setauthor{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setinstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinstitute{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setpartnerlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartnerlogo{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setpartner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpartner{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"settitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"innertitlepage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fibnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"bigintcalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fibnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fibnum{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"fibnumPreCalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fibnumPreCalc{${1:index}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fifinddo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stacklet\"\n    },\n    {\n      \"name\": \"actcodes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fdPatternCodes\"\n    },\n    {\n      \"name\": \"SetPatternCodes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPatternCodes{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ResetPatternCodes\"\n    },\n    {\n      \"name\": \"PatternCodes\"\n    },\n    {\n      \"name\": \"Delimiters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Delimiters{${1:delim1}}{${2:delim2}}\"\n      }\n    },\n    {\n      \"name\": \"PercentChar\"\n    },\n    {\n      \"name\": \"BackslashChar\"\n    },\n    {\n      \"name\": \"BasicNormalCatCodes\"\n    },\n    {\n      \"name\": \"ResultFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResultFile{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"WriteResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteResult{${1:balanced}}\"\n      }\n    },\n    {\n      \"name\": \"WriteProvides\"\n    },\n    {\n      \"name\": \"CloseResultFile\"\n    },\n    {\n      \"name\": \"ProcessFileWith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessFileWith{${1:file}}{${2:loop-body}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessFileWith\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ProcessFileWith[${3:changes}]{${1:file}}{${2:loop-body}}\"\n      }\n    },\n    {\n      \"name\": \"fdInputLine\"\n    },\n    {\n      \"name\": \"CopyFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CopyFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CopyFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CopyFile[${2:changes}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CopyFile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CopyFile*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CopyFile*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CopyFile*[${2:changes}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CopyLine\"\n    },\n    {\n      \"name\": \"ifFinalInputFile\"\n    },\n    {\n      \"name\": \"FinalInputFiletrue\"\n    },\n    {\n      \"name\": \"FinalInputFilefalse\"\n    },\n    {\n      \"name\": \"ProcessFinalFileWith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessFinalFileWith{${1:file}}{${2:loop-body}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessFinalFileWith\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ProcessFinalFileWith[${3:changes}]{${1:file}}{${2:loop-body}}\"\n      }\n    },\n    {\n      \"name\": \"StartFDsetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StartFDsetup{${1:do-setup}}{${2:job-id}}\"\n      }\n    },\n    {\n      \"name\": \"StartFDsetup\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StartFDsetup{${1:do-setup}}{${2:job-id}}[${3:changes}]\"\n      }\n    },\n    {\n      \"name\": \"fdParserId\"\n    },\n    {\n      \"name\": \"MakeSetupCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeSetupCommand{${1:setup-cmd%cmd}}{${2:do-setup}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSetupCommand\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"MakeSetupCommand{${1:setup-cmd%cmd}}{${2:do-setup}}[${4:args}]{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSubstringConditional\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeSubstringConditional{${1:id}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSubstringConditional\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"MakeSubstringConditional{${1:id}}[${3:changes}]{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSetupSubstringCondition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MakeSetupSubstringCondition{${1:id}}{${2:pattern}}{${3:more-args}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSetupSubstringCondition\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"MakeSetupSubstringCondition{${1:id}}[${4:changes}]{${2:pattern}}{${3:more-args}}\"\n      }\n    },\n    {\n      \"name\": \"noexpandcsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TildeGobbles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TildeGobbles{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveDummyPattern\"\n    },\n    {\n      \"name\": \"RemoveDummyPatternArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveDummyPatternArg{${1:macro}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveTilde\"\n    },\n    {\n      \"name\": \"RemoveTildeArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveTildeArg{${1:macro}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FDnormalTilde\"\n    },\n    {\n      \"name\": \"FDpseudoTilde\"\n    },\n    {\n      \"name\": \"ProcessStringWith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessStringWith{${1:target-string}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessExpandedWith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessExpandedWith{${1:string-macro}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessInputWith\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessInputWith{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"CopyFDconditionFromTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CopyFDconditionFromTo{${1:id1}}{${2:id2}}\"\n      }\n    },\n    {\n      \"name\": \"IfFDempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFDempty{${1:arg}}{${2:when-empty}}{${3:when-not-empty}}\"\n      }\n    },\n    {\n      \"name\": \"IfFDinputEmpty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFDinputEmpty{${1:when-empty}}{${2:when-not-empty}}\"\n      }\n    },\n    {\n      \"name\": \"IfFDdollar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFDdollar{${1:arg}}{${2:when-dollar}}{${3:when-not-dollar}}\"\n      }\n    },\n    {\n      \"name\": \"IfFDpreviousInputEmpty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFDpreviousInputEmpty{${1:when-empty}}{${2:when-not-empty}}\"\n      }\n    },\n    {\n      \"name\": \"thefdInputLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CountInputLines\"\n    },\n    {\n      \"name\": \"IfInputLine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInputLine{${1:<relation><${4:number}>}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"MakeExpandableAllReplacer\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeExpandableAllReplacer{${1:id}}{${2:find}}{${3:replace}}{${4:id-next}}\"\n      }\n    },\n    {\n      \"name\": \"MakeExpandableAllReplacer\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"MakeExpandableAllReplacer{${1:id}}[${5:changes}]{${2:find}}{${3:replace}}{${4:id-next}}\"\n      }\n    },\n    {\n      \"name\": \"PrependExpandableAllReplacer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PrependExpandableAllReplacer{${1:id}}{${2:find}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"PrependExpandableAllReplacer\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"PrependExpandableAllReplacer{${1:id}}[${4:changes}]{${2:find}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"StartPrependingChain\"\n    },\n    {\n      \"name\": \"SetCorrectHookJob\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCorrectHookJob{${1:job-id}}\"\n      }\n    },\n    {\n      \"name\": \"MakeDocCorrectHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeDocCorrectHook{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"SetCorrectHookJobLast\"\n    },\n    {\n      \"name\": \"CorrectedInputLine\"\n    },\n    {\n      \"name\": \"ApplySubstringConditional\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ApplySubstringConditional{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ApplySubstringConditionalToExpanded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ApplySubstringConditionalToExpanded{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ApplySubstringConditionalToInputString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ApplySubstringConditionalToInputString{${1:id}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fifo-stack.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FSCreate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FSCreate{${1:fifoStackName}}{${2:defaultValue}}\"\n      }\n    },\n    {\n      \"name\": \"FSClear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSClear{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSDestroy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSDestroy{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSPush\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FSPush{${1:fifoStackName}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FSPop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSPop{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSTop{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSShowTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSShowTop{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSUnshift\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FSUnshift{${1:fifoStackName}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FSShift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSShift{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSBottom{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSShowBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSShowBottom{${1:fifoStackName}}\"\n      }\n    },\n    {\n      \"name\": \"FSSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FSSize{${1:fifoStackName}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/figchild.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fcAbajourA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAbajourA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAbajourB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAbajourB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAbajourC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAbajourC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAbajourD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAbajourD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAirBallon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAirBallon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAlarmClockA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAlarmClockA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAlarmClockB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAlarmClockB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAlligator\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAlligator{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAlligatorA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAlligatorA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAlligatorB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAlligatorB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAngel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAngel{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAnt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAnt{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAntA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAntA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAntelope\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAntelope{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcApple\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcApple{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAppleTree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAppleTree{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcArmadillo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcArmadillo{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcArmadilloA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcArmadilloA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcAubergine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcAubergine{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBabe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBabe{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBall\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBall{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBallA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBallA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBallB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBallB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBallC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBallC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBalloon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBalloon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBaloonsA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBaloonsA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBaloonsB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBaloonsB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBarbecue\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBarbecue{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBarquet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBarquet{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBaseballBat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBaseballBat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBatA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBatA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBear{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBearG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBearG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBears\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBears{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBed\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBed{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBedA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBedA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBedsideLamp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBedsideLamp{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBee\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBee{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBeeA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBeeA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBell{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBellA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBellA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBellPepper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBellPepper{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBike\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBike{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBinoculars\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBinoculars{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBird\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBird{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBirdF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBirdF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBoard\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBoard{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBoat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBoat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBonnet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBonnet{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBookA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBookA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBookB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBookB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBread\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBread{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBroom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBroom{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBrownie\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBrownie{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBud\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBud{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBull\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBull{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBullA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBullA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBulldozer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBulldozer{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBullet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBullet{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBunnyA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBunnyA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBunnyB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBunnyB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBunnyC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBunnyC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBunnyD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBunnyD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBunnyE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBunnyE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBurrito\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBurrito{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBus{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcBusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcBusA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcButterfly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcButterfly{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcButterflyA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcButterflyA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcButterflyB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcButterflyB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcButterflyC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcButterflyC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCabbage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCabbage{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCabbageA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCabbageA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCabinet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCabinet{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCactoopuntia\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCactoopuntia{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCactus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCactus{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCactusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCactusA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCactusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCactusB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCactusC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCactusC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCalf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCalf{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCandle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCandle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCarA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCarA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCarrot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCarrot{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCarrotA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCarrotA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCart{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCartA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCartA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCashier\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCashier{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCaterpillar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCaterpillar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCatfish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCatfish{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCellPhone\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCellPhone{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCentipede\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCentipede{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChair\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChair{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChairA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChairA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChairB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChairB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChairC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChairC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChairD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChairD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCheese\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCheese{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCherry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCherry{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChick\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChick{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChicken\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChicken{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChickenA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChickenA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChickenThigh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChickenThigh{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChicks\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChicks{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChive\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChive{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChristmasTree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChristmasTree{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcChrysanthemum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcChrysanthemum{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcClock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcClock{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcClockA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcClockA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCloud\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCloud{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCloudA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCloudA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCloudB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCloudB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCloudC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCloudC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCoach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCoach{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCobrabebe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCobrabebe{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcComb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcComb{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcComputer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcComputer{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcComputerA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcComputerA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCow{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCrabA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCrabA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCrabB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCrabB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCrane\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCrane{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCrown\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCrown{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCrownA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCrownA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCucumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCucumber{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCucumberA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCucumberA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCupcake\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCupcake{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCupcakeA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCupcakeA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCupcakeB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCupcakeB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCushion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCushion{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCutlery\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCutlery{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcCuttingBoard\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcCuttingBoard{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDaisy\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDaisy{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDarts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDarts{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcData\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcData{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDeskLamp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDeskLamp{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDeskLampA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDeskLampA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDeskLampB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDeskLampB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDeskLampC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDeskLampC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDeskLampD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDeskLampD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDino\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDino{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurI\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurI{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDinosaurJ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDinosaurJ{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDog\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDog{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDolphin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDolphin{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDolphinA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDolphinA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDolphinB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDolphinB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDragonFly\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDragonFly{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDressingTable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDressingTable{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDressingTableA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDressingTableA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDryer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDryer{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDuck\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDuck{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDuckA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDuckA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDuckB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDuckB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcDuckC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcDuckC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEgg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEgg{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEggA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEggA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEggB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEggB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEggplant\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEggplant{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcElephant\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcElephant{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcElephantA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcElephantA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcElephantB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcElephantB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcET\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcET{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcExcavator\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcExcavator{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEyebrows\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEyebrows{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcEyes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcEyes{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFaceTowel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFaceTowel{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFan{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFanA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFanA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFish{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishI\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishI{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishJ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishJ{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishK\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishK{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishL{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFishM\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFishM{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlamingo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlamingo{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlamingoA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlamingoA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlamingoB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlamingoB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlashlight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlashlight{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlower{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerI\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerI{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerJ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerJ{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerK\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerK{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerL{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerM\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerM{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerN\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerN{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerO\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerO{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlowerP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlowerP{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFlyingSaucer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFlyingSaucer{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFrenchFries\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFrenchFries{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFridge\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFridge{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFrog\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFrog{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcfrog\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcfrog{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcFrogA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcFrogA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGhost\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGhost{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGiraffe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGiraffe{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGiraffeA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGiraffeA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGiraffeB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGiraffeB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGiraffes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGiraffes{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGlass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGlass{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGloves\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGloves{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGnat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGnat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcGoose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcGoose{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fchamburger\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fchamburger{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHamster\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHamster{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHand{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHatA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHatA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHelicopter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHelicopter{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHerring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHerring{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHippo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHippo{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHorse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHorse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHorseA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHorseA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHorseB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHorseB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHouse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHouse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHouseA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHouseA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHouseB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHouseB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHouseC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHouseC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcHummingbird\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcHummingbird{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcIceCreamH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcIceCreamH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcJuicy\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcJuicy{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKetchup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKetchup{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKettle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKettle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKettleA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKettleA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKey\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKey{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKite\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKite{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKiteA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKiteA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKittenA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKittenA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKittenB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKittenB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKittensA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKittensA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKittensB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKittensB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKnees\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKnees{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKnife\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKnife{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKnifeA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKnifeA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcKnifeB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcKnifeB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLadle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLadle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLadybird\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLadybird{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLadybirdA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLadybirdA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLadybirdB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLadybirdB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLadyBug\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLadyBug{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLamb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLamb{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLamp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLamp{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLanguage{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterK\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterK{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterKA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterKA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterL{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterLA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterLA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterM\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterM{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterMA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterMA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterN\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterN{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterNA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterNA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterO\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterO{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterOA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterOA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterP{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterPA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterPA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterQ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterQ{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterQA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterQA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterR\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterR{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterRA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterRA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterS\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterS{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterSA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterSA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterT{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterTA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterTA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterU{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterUA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterUA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterV\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterV{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterVA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterVA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterW\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterW{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterWA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterWA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterX{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterXA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterXA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterY\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterY{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterYA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterYA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterZ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterZ{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLetterZA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLetterZA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLightBulb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLightBulb{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLightning\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLightning{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLion{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLionA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLionA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLittleBirds\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLittleBirds{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLittleMouse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLittleMouse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLocust\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLocust{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLouvadeus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLouvadeus{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcLoveLetter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcLoveLetter{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMacaw\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMacaw{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMailbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMailbox{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMailBoxA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMailBoxA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMeton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMeton{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMill\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMill{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMirror\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMirror{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMonkey\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMonkey{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMonkeyA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMonkeyA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMonster\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMonster{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoonA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoonA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoonB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoonB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoonfish\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoonfish{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoose{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMoped\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMoped{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMotorcycle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMotorcycle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMotorcycleA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMotorcycleA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMotorScooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMotorScooter{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMouse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMouse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMouseA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMouseA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMouseB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMouseB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMouseC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMouseC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMouseD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMouseD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMug\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMug{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMushroom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMushroom{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMushroomA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMushroomA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcMushroomB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcMushroomB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNose{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNuggets\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNuggets{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberEight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberEight{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberFive\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberFive{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberFour\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberFour{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberNine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberNine{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberOne\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberOne{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberSeven\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberSeven{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberSix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberSix{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberTen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberTen{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberThree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberThree{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcNumberTwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcNumberTwo{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOctopus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOctopus{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOctopusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOctopusA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOctopusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOctopusB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOnion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOnion{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOnionA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOnionA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOrca\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOrca{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOstrich\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOstrich{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOwl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOwl{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOwlA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOwlA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOwlB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOwlB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcOx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcOx{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPalmTree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPalmTree{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPan{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPanA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPanA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPanB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPanB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPandaBear\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPandaBear{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcParrot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcParrot{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPassA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPassA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPassB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPassB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPeacock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPeacock{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPencil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPencil{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPencilA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPencilA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPenguin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPenguin{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPenguinA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPenguinA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPerch\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPerch{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPeruA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPeruA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPeruB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPeruB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPhone\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPhone{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPig\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPig{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPigI\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPigI{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPillow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPillow{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPimento\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPimento{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPineapple\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPineapple{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcpink\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcpink{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlane\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlane{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlaneA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlaneA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanetG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanetG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPlanets\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPlanets{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPopsicle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPopsicle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPotato\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPotato{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPotatoA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPotatoA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPulse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPulse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPumpkin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPumpkin{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPumpkinA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPumpkinA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPuppy\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPuppy{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcPyramid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcPyramid{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRabbit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRabbit{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRabbitA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRabbitA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRabbitB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRabbitB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRabbits\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRabbits{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRaccoon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRaccoon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRacoon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRacoon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRake\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRake{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRazor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRazor{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRefrigerator\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRefrigerator{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRoastChicken\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRoastChicken{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRobe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRobe{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRocket\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRocket{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRocketA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRocketA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRocketB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRocketB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRocketC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRocketC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRoller\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRoller{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcRollingPin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcRollingPin{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSandal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSandal{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSaturnA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSaturnA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSaturnB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSaturnB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScallion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScallion{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScaredEgg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScaredEgg{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSchoolbag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSchoolbag{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScissors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScissors{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScooter{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScooterA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScooterA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcScorpion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcScorpion{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSeahorse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSeahorse{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSeahorseA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSeahorseA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSeeds\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSeeds{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShark\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShark{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSharkA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSharkA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSharpKnife\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSharpKnife{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSheep\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSheep{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSheepA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSheepA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSheepB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSheepB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSheepC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSheepC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSheet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSheet{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcsheetA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcsheetA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcsheetB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcsheetB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShell{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShip\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShip{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShootingStar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShootingStar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShower{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcShrimp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcShrimp{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSleepingBag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSleepingBag{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSleepingBagA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSleepingBagA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSnail\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSnail{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSnailA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSnailA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSnailB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSnailB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSnailC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSnailC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSnowflake\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSnowflake{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSock{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSofaA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSofaA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSofaB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSofaB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpacecraftA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpacecraftA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpacecraftB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpacecraftB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpatulas\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpatulas{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpider\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpider{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpiderA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpiderA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpiderB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpiderB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpinning\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpinning{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSpray\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSpray{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSquirrel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSquirrel{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSquirrelA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSquirrelA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStarA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStarA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStarB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStarB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStars\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStars{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSteak\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSteak{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSteamroller\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSteamroller{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSteamrollerA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSteamrollerA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStoolA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStoolA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStoolB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStoolB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStoolC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStoolC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStrawberry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStrawberry{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcStrawberryA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcStrawberryA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSturgeon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSturgeon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSubmarineA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSubmarineA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSugar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSugar{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSun\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSun{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSunA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSunA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcSunB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcSunB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTableLight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTableLight{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTeapot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTeapot{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTelevision\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTelevision{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTent{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcThermometerA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcThermometerA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcThermometerB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcThermometerB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcThroat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcThroat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcToiletPaper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcToiletPaper{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTomato\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTomato{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTomatoA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTomatoA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTony\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTony{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTornado\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTornado{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcToucan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcToucan{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTractorA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTractorA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTractorB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTractorB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTractorC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTractorC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTrain\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTrain{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTree{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTricycle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTricycle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTricycleA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTricycleA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruck\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruck{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckD{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckE{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckF{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckG\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckG{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTruckH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTruckH{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTrunk\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTrunk{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTulip\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTulip{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTurnip\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTurnip{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTurtle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTurtle{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTurtleA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTurtleA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTurtleB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTurtleB{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcTurtleC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcTurtleC{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcUmbrella\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcUmbrella{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcUrchin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcUrchin{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcUrchinA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcUrchinA{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcVan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcVan{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcVase\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcVase{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWagon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWagon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWardrobe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWardrobe{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWateringCan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWateringCan{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWatermelon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWatermelon{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWhale\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWhale{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcWitchHat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcWitchHat{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcYoyo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcYoyo{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"fcZebra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fcZebra{${1:scale}}{${2:color}}{${3:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"imagewidthh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagescaleh\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/figlatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/figlatex#c\": [\n      \"debug\"\n    ],\n    \"\\\\includegraphics\": [\n      \"subfig=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/figlatex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/figput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"zref-thepage\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"zref-pagelayout\"\n    },\n    {\n      \"name\": \"xsim\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FigPut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FigPut{${1:fig_name,fig_ht}}\"\n      }\n    },\n    {\n      \"name\": \"FigPut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FigPut{${1:fig_name,fig_ht}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"SetInnerMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetInnerMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetOuterMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOuterMargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"NeverSkip\"\n    },\n    {\n      \"name\": \"AllowSkip\"\n    },\n    {\n      \"name\": \"LoadFigureCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadFigureCode{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"figput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:fig_name,fig_ht}}\"\n      }\n    },\n    {\n      \"name\": \"figput\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:fig_name,fig_ht}}[${2:options}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/figsize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"subfigure\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetFigLayout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetFigLayout{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"SetFigLayout\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetFigLayout[${3:space}]{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"figheight\"\n    },\n    {\n      \"name\": \"figwidth\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/filecontentsdef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"filecontentsprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filecontentsprint{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"FCDprintenvname\"\n    },\n    {\n      \"name\": \"FCDprintenvoptions\"\n    },\n    {\n      \"name\": \"filecontentsprintviascan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filecontentsprintviascan{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsexec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filecontentsexec{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsheremacro\"\n    },\n    {\n      \"name\": \"filecontentsdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsgdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsgdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsdefstarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsdefstarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsgdefstarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsgdefstarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsdefmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsdefmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsgdefmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsgdefmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentshere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentshere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filecontentsherestarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfilecontentsherestarred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCDtabtofile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCDtabtomacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCDformfeedtofile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCDformfeedtomacro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"filecontentsdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsdef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsgdef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsdefstarred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsgdefstarred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:file}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsdefmacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentsgdefmacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentshere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filecontentshere*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/filehook.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AtBeginOfEveryFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginOfEveryFile{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfEveryFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfEveryFile{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfFiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginOfFiles{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfFiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfFiles{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfIncludes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginOfIncludes{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfIncludes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfIncludes{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterIncludes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterIncludes{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfIncludeFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfIncludeFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfIncludeFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfIncludeFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterIncludeFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterIncludeFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfInputs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginOfInputs{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfInputs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfInputs{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfInputFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfInputFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfInputFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfInputFile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfPackageFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfPackageFile{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfPackageFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfPackageFile{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfPackageFile*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfPackageFile*{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfPackageFile*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfPackageFile*{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfClassFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfClassFile{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfClassFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfClassFile{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginOfClassFile*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginOfClassFile*{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfClassFile*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndOfClassFile*{${1:class}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ClearHook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/filemod-expmin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"filemodNumdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodNumdate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodNumtime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodNumtime{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodCmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"filemodCmp{${1:file1%file}}{${2:file2%file}}{${3:clause1}}{${4:clause2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/filemod.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"filemod-expmin\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"filemodprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodprint{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodprintdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodprintdate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodprinttime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodprinttime{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"thefilemod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefilemoddate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefilemodtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefilemod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filemodsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Filemodtoday\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Filemodtoday{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FilemodToday\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FilemodToday{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodnumdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodnumdate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodnumtime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodnumtime{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodgetnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Filemodgetnum{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"filemodcmp{${1:file1%file}}{${2:file2%file}}{${3:clause1}}{${4:clause2}}\"\n      }\n    },\n    {\n      \"name\": \"filemodcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"filemodcmp[${6:num}]{${1:file1%file}}{${2:file2%file}}{${3:clause1}}{${4:clause2}}{${5:clause3}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Filemodcmp{${1:file1%file}}{${2:file2%file}}{${3:clause1}}{${4:clause2}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"Filemodcmp[${6:num}]{${1:file1%file}}{${2:file2%file}}{${3:clause1}}{${4:clause2}}{${5:clause3}}\"\n      }\n    },\n    {\n      \"name\": \"FilemodCmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FilemodCmp{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"FilemodCmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FilemodCmp[${3:num}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodoptdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filemodnewest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"filemodnewest{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodnewest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"filemodnewest[${3:num}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodoldest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"filemodoldest{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodoldest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"filemodoldest[${3:num}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodnewest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Filemodnewest{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodnewest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Filemodnewest[${3:num}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodoldest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Filemodoldest{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"Filemodoldest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Filemodoldest[${3:num}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"filemodparse{${1:macro}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"filemodnotexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemodnotexists{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"filemodZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filemodz\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/filesdo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"commado\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DoWithExtBases\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DoWithExtBases{${1:cmd}}{${2:ext}}{${3:basenames}}\"\n      }\n    },\n    {\n      \"name\": \"DoWithBasesExts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DoWithBasesExts{${1:cmd}}{${2:basenames}}{${3:exts}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fillwith.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fillwith\"\n    },\n    {\n      \"name\": \"fillwith\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwith[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwith*\"\n    },\n    {\n      \"name\": \"fillwith*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwith*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithrules\"\n    },\n    {\n      \"name\": \"fillwithrules\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithrules[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithrules*\"\n    },\n    {\n      \"name\": \"fillwithrules*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithrules*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithdottedlines\"\n    },\n    {\n      \"name\": \"fillwithdottedlines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithdottedlines[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithdottedlines*\"\n    },\n    {\n      \"name\": \"fillwithdottedlines*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithdottedlines*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithnolines\"\n    },\n    {\n      \"name\": \"fillwithnolines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithnolines[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithnolines*\"\n    },\n    {\n      \"name\": \"fillwithnolines*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fillwithnolines*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillwithset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillwithset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\",\n          \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\": [\n      \"color=\",\n      \"dottedcolor=\"\n    ],\n    \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\fillwithset#c\": [\n      \"cont\",\n      \"fillwith ht=${1:number}\",\n      \"goal ht=\",\n      \"no font=${1:font commands}\"\n    ],\n    \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithset#c\": [\n      \"style=${1|rule,dots,line,lines,rules|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\fillwith#c,\\\\fillwith*#c,\\\\fillwithrules#c,\\\\fillwithrules*#c,\\\\fillwithdottedlines#c,\\\\fillwithdottedlines*#c,\\\\fillwithnolines#c,\\\\fillwithnolines*#c,\\\\usepackage/fillwith#c,\\\\fillwithset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/finstrut.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/finstrut#c\": [\n      \"v\",\n      \"par\",\n      \"argdelim\",\n      \"dptest\",\n      \"full\",\n      \"fullpar\",\n      \"show\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/finstrut#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/firamath-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"xfakebold\",\n      \"if\": \"fakebold\"\n    },\n    {\n      \"name\": \"xfakebold\",\n      \"if\": \"fakebold=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"angdnr\",\n      \"detail\": \"⦟\",\n      \"doc\": \"Acute angle\"\n    },\n    {\n      \"name\": \"annuity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annuity{${1:arg}}\"\n      },\n      \"detail\": \"x⃧\",\n      \"doc\": \"Combining annuity symbol\"\n    },\n    {\n      \"name\": \"bardownharpoonleft\",\n      \"detail\": \"⥡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"bardownharpoonright\",\n      \"detail\": \"⥝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"barrightharpoondown\",\n      \"detail\": \"⥟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"barrightharpoonup\",\n      \"detail\": \"⥛ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"baruparrow\",\n      \"detail\": \"⤒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards arrow to bar\"\n    },\n    {\n      \"name\": \"blackcircleulquadwhite\",\n      \"detail\": \"◕\",\n      \"doc\": \"Circle with all but upper left quadrant black\"\n    },\n    {\n      \"name\": \"blackinwhitesquare\",\n      \"detail\": \"▣\",\n      \"doc\": \"White square containing black small square\"\n    },\n    {\n      \"name\": \"blacklefthalfcircle\",\n      \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Left half black circle\"\n    },\n    {\n      \"name\": \"blackpointerleft\",\n      \"detail\": \"◄\",\n      \"doc\": \"Black left-pointing pointer\"\n    },\n    {\n      \"name\": \"blackpointerright\",\n      \"detail\": \"►\",\n      \"doc\": \"Black right-pointing pointer\"\n    },\n    {\n      \"name\": \"blackrighthalfcircle\",\n      \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Right half black circle\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"blocklefthalf\",\n      \"detail\": \"▌\",\n      \"doc\": \"Left half block\"\n    },\n    {\n      \"name\": \"blocklowhalf\",\n      \"detail\": \"▄\",\n      \"doc\": \"Lower half block\"\n    },\n    {\n      \"name\": \"blockrighthalf\",\n      \"detail\": \"▐\",\n      \"doc\": \"Right half block\"\n    },\n    {\n      \"name\": \"blockuphalf\",\n      \"detail\": \"▀\",\n      \"doc\": \"Upper half block\"\n    },\n    {\n      \"name\": \"botsemicircle\",\n      \"detail\": \"◡\",\n      \"doc\": \"Lower half circle\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"circlebottomhalfblack\",\n      \"detail\": \"◒\",\n      \"doc\": \"Circle, filled bottom half\"\n    },\n    {\n      \"name\": \"circlelefthalfblack\",\n      \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled left half [harvey ball]\"\n    },\n    {\n      \"name\": \"circlellquad\",\n      \"detail\": \"◵\",\n      \"doc\": \"White circle with lower left quadrant\"\n    },\n    {\n      \"name\": \"circlelrquad\",\n      \"detail\": \"◶\",\n      \"doc\": \"White circle with lower right quadrant\"\n    },\n    {\n      \"name\": \"circleonleftarrow\",\n      \"detail\": \"⬰\",\n      \"doc\": \"Left arrow with small circle\"\n    },\n    {\n      \"name\": \"circleonrightarrow\",\n      \"detail\": \"⇴\",\n      \"doc\": \"Right arrow with small circle\"\n    },\n    {\n      \"name\": \"circlerighthalfblack\",\n      \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled right half\"\n    },\n    {\n      \"name\": \"circletophalfblack\",\n      \"detail\": \"◓\",\n      \"doc\": \"Circle, filled top half\"\n    },\n    {\n      \"name\": \"circleulquad\",\n      \"detail\": \"◴\",\n      \"doc\": \"White circle with upper left quadrant\"\n    },\n    {\n      \"name\": \"circleurquad\",\n      \"detail\": \"◷\",\n      \"doc\": \"White circle with upper right quadrant\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"DDownarrow\",\n      \"detail\": \"⟱\",\n      \"doc\": \"Downwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"downarrowbar\",\n      \"detail\": \"⤓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards arrow to bar\"\n    },\n    {\n      \"name\": \"downarrowbarred\",\n      \"detail\": \"⤈\",\n      \"doc\": \"Downwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"inversewhitecircle\",\n      \"detail\": \"◙\",\n      \"doc\": \"Inverse white circle\"\n    },\n    {\n      \"name\": \"invwhitelowerhalfcircle\",\n      \"detail\": \"◛\",\n      \"doc\": \"Lower half inverse white circle\"\n    },\n    {\n      \"name\": \"invwhiteupperhalfcircle\",\n      \"detail\": \"◚\",\n      \"doc\": \"Upper half inverse white circle\"\n    },\n    {\n      \"name\": \"leftarrowonoplus\",\n      \"detail\": \"⬲\",\n      \"doc\": \"Left arrow with circled plus\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftdbltail\",\n      \"detail\": \"⤛\",\n      \"doc\": \"Leftwards double arrow-tail\"\n    },\n    {\n      \"name\": \"leftharpoondownbar\",\n      \"detail\": \"⥞ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"leftharpoonupbar\",\n      \"detail\": \"⥚ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoondowndown\",\n      \"detail\": \"⥐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb down right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonupup\",\n      \"detail\": \"⥎ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb up right barb up harpoon\"\n    },\n    {\n      \"name\": \"lefttail\",\n      \"detail\": \"⤙\",\n      \"doc\": \"Leftwards arrow-tail\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"llarc\",\n      \"detail\": \"◟\",\n      \"doc\": \"Lower left quadrant circular arc\"\n    },\n    {\n      \"name\": \"llblacktriangle\",\n      \"detail\": \"◣\",\n      \"doc\": \"Lower left triangle, filled\"\n    },\n    {\n      \"name\": \"LLeftarrow\",\n      \"detail\": \"⭅\",\n      \"doc\": \"Leftwards quadruple arrow\"\n    },\n    {\n      \"name\": \"lrarc\",\n      \"detail\": \"◞\",\n      \"doc\": \"Lower right quadrant circular arc\"\n    },\n    {\n      \"name\": \"lrblacktriangle\",\n      \"detail\": \"◢\",\n      \"doc\": \"Lower right triangle, filled\"\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"mbfDigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟊\",\n      \"doc\": \"Mathematical bold capital digamma\"\n    },\n    {\n      \"name\": \"mbfdigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟋\",\n      \"doc\": \"Mathematical bold small digamma\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nvleftarrow\",\n      \"detail\": \"⇷\",\n      \"doc\": \"Leftwards arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvLeftarrow\",\n      \"detail\": \"⤂\",\n      \"doc\": \"Leftwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftarrowtail\",\n      \"detail\": \"⬹\",\n      \"doc\": \"Leftwards arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrowtail\",\n      \"detail\": \"⬺\",\n      \"doc\": \"Leftwards arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftrightarrow\",\n      \"detail\": \"⇹\",\n      \"doc\": \"Left right arrow with vertical stroke, partial relation\"\n    },\n    {\n      \"name\": \"nVleftrightarrow\",\n      \"detail\": \"⇼\",\n      \"doc\": \"Left right arrow with double vertical stroke, finite relation\"\n    },\n    {\n      \"name\": \"nvLeftrightarrow\",\n      \"detail\": \"⤄\",\n      \"doc\": \"Left right double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrow\",\n      \"detail\": \"⇸ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with vertical stroke, partial function\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"nvRightarrow\",\n      \"detail\": \"⤃\",\n      \"doc\": \"Rightwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrowtail\",\n      \"detail\": \"⤔ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with vertical stroke, partial injection\"\n    },\n    {\n      \"name\": \"nVrightarrowtail\",\n      \"detail\": \"⤕ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with double vertical stroke, finite injection\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrow\",\n      \"detail\": \"⬴\",\n      \"doc\": \"Leftwards two-headed arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrow\",\n      \"detail\": \"⬵\",\n      \"doc\": \"Leftwards two-headed arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrowtail\",\n      \"detail\": \"⬼\",\n      \"doc\": \"Leftwards two-headed arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrowtail\",\n      \"detail\": \"⬽\",\n      \"doc\": \"Leftwards two-headed arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrow\",\n      \"detail\": \"⤀ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\psurj (oz), rightwards two-headed arrow with vertical stroke, partial surjection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrow\",\n      \"detail\": \"⤁\",\n      \"doc\": \"Rightwards two-headed arrow with double vertical stroke, finite surjection\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrowtail\",\n      \"detail\": \"⤗\",\n      \"doc\": \"Rightwards two-headed arrow with tail with vertical stroke, surjective injection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrowtail\",\n      \"detail\": \"⤘\",\n      \"doc\": \"Rightwards two-headed arrow with tail with double vertical stroke, finite surjective injection\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightdbltail\",\n      \"detail\": \"⤜\",\n      \"doc\": \"Rightwards double arrow-tail\"\n    },\n    {\n      \"name\": \"righttail\",\n      \"detail\": \"⤚\",\n      \"doc\": \"Rightwards arrow-tail\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"RRightarrow\",\n      \"detail\": \"⭆\",\n      \"doc\": \"Rightwards quadruple arrow\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"squareleftblack\",\n      \"detail\": \"◧\",\n      \"doc\": \"Square, filled left half\"\n    },\n    {\n      \"name\": \"squarellquad\",\n      \"detail\": \"◱\",\n      \"doc\": \"White square with lower left quadrant\"\n    },\n    {\n      \"name\": \"squarelrblack\",\n      \"detail\": \"◪\",\n      \"doc\": \"Square, filled bottom right corner\"\n    },\n    {\n      \"name\": \"squarelrquad\",\n      \"detail\": \"◲\",\n      \"doc\": \"White square with lower right quadrant\"\n    },\n    {\n      \"name\": \"squarerightblack\",\n      \"detail\": \"◨\",\n      \"doc\": \"Square, filled right half\"\n    },\n    {\n      \"name\": \"squareulblack\",\n      \"detail\": \"◩\",\n      \"doc\": \"Square, filled top left corner\"\n    },\n    {\n      \"name\": \"squareulquad\",\n      \"detail\": \"◰\",\n      \"doc\": \"White square with upper left quadrant\"\n    },\n    {\n      \"name\": \"squareurquad\",\n      \"detail\": \"◳\",\n      \"doc\": \"White square with upper right quadrant\"\n    },\n    {\n      \"name\": \"squoval\",\n      \"detail\": \"▢\",\n      \"doc\": \"White square with rounded corners\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"topsemicircle\",\n      \"detail\": \"◠\",\n      \"doc\": \"Upper half circle\"\n    },\n    {\n      \"name\": \"turnangle\",\n      \"detail\": \"⦢\",\n      \"doc\": \"Turned angle\"\n    },\n    {\n      \"name\": \"twoheadleftarrowtail\",\n      \"detail\": \"⬻\",\n      \"doc\": \"Leftwards two-headed arrow with tail\"\n    },\n    {\n      \"name\": \"twoheadmapsfrom\",\n      \"detail\": \"⬶\",\n      \"doc\": \"Leftwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadmapsto\",\n      \"detail\": \"⤅\",\n      \"doc\": \"Rightwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadrightarrowtail\",\n      \"detail\": \"⤖ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards two-headed arrow with tail, bijection\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"ularc\",\n      \"detail\": \"◜\",\n      \"doc\": \"Upper left quadrant circular arc\"\n    },\n    {\n      \"name\": \"ulblacktriangle\",\n      \"detail\": \"◤\",\n      \"doc\": \"Upper left triangle, filled\"\n    },\n    {\n      \"name\": \"uparrowbarred\",\n      \"detail\": \"⤉\",\n      \"doc\": \"Upwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"updownharpoonleftleft\",\n      \"detail\": \"⥑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb left down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightright\",\n      \"detail\": \"⥏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb right down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upharpoonleftbar\",\n      \"detail\": \"⥠ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"upharpoonrightbar\",\n      \"detail\": \"⥜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"urarc\",\n      \"detail\": \"◝\",\n      \"doc\": \"Upper right quadrant circular arc\"\n    },\n    {\n      \"name\": \"urblacktriangle\",\n      \"detail\": \"◥\",\n      \"doc\": \"Upper right triangle, filled\"\n    },\n    {\n      \"name\": \"UUparrow\",\n      \"detail\": \"⟰\",\n      \"doc\": \"Upwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"vrectangle\",\n      \"detail\": \"▯\",\n      \"doc\": \"Rectangle, white (vertical)\"\n    },\n    {\n      \"name\": \"vrectangleblack\",\n      \"detail\": \"▮\",\n      \"doc\": \"Black vertical rectangle\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"wideangledown\",\n      \"detail\": \"⦦\",\n      \"doc\": \"Oblique angle opening up\"\n    },\n    {\n      \"name\": \"wideangleup\",\n      \"detail\": \"⦧\",\n      \"doc\": \"Oblique angle opening down\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/firamath-otf#c\": [\n      \"fakebold\",\n      \"weight=${1:weight}\",\n      \"lining\",\n      \"oldstyle\",\n      \"usefilenames\",\n      \"nomath\",\n      \"tabular\",\n      \"proportional\",\n      \"Scale=${1:factor}\",\n      \"defaultfeatures={${1:fontspec features}}\",\n      \"normal-style=${1|ISO,TeX,french,upright,literal|}\",\n      \"math-style=${1|ISO,TeX,french,upright,literal|}\",\n      \"bold-style=${1|ISO,TeX,upright,literal|}\",\n      \"sans-style=${1|italic,upright,literal|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"colon=${1|TeX,literal|}\",\n      \"slash-delimiter=${1|ascii,frac,div|}\",\n      \"active-frac=${1|small,normalsize|}\",\n      \"mathrm=${1|text,sym|}\",\n      \"mathup=${1|text,sym|}\",\n      \"mathit=${1|text,sym|}\",\n      \"mathsf=${1|text,sym|}\",\n      \"mathbf=${1|text,sym|}\",\n      \"mathtt=${1|text,sym|}\",\n      \"trace=${1|on,debug,off|}\",\n      \"warnings-off={${1:warning list}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/firamath-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fistrum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setfistrum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfistrum{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/fistrum#c,\\\\setfistrum#c\",\n          \"\\\\setfistrum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fistrum\"\n    },\n    {\n      \"name\": \"fistrum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fistrum[${1:par range}]\"\n      }\n    },\n    {\n      \"name\": \"fistrum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fistrum[${1:par range}][${2:sentence range}]\"\n      }\n    },\n    {\n      \"name\": \"fistrum*\"\n    },\n    {\n      \"name\": \"fistrum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fistrum*[${1:par range}]\"\n      }\n    },\n    {\n      \"name\": \"fistrum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fistrum*[${1:par range}][${2:sentence range}]\"\n      }\n    },\n    {\n      \"name\": \"unpackfistrum\"\n    },\n    {\n      \"name\": \"unpackfistrum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpackfistrum[${1:par range}]\"\n      }\n    },\n    {\n      \"name\": \"unpackfistrum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"unpackfistrum[${1:par range}][${2:sentence range}]\"\n      }\n    },\n    {\n      \"name\": \"unpackfistrum*\"\n    },\n    {\n      \"name\": \"unpackfistrum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpackfistrum*[${1:par range}]\"\n      }\n    },\n    {\n      \"name\": \"unpackfistrum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"unpackfistrum*[${1:par range}][${2:sentence range}]\"\n      }\n    },\n    {\n      \"name\": \"fistrumexp\"\n    },\n    {\n      \"name\": \"SetFistrumText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFistrumText{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetFistrumDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFistrumDefault{${1:range}}\"\n      }\n    },\n    {\n      \"name\": \"NewFistrumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewFistrumPar{${1:paragraph}}\"\n      }\n    },\n    {\n      \"name\": \"SetFistrumLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFistrumLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"fistrumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fistrumPar{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"fistrumRestoreParList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fistrumRestoreSentenceList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fistrumRestoreAll\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fistrum#c,\\\\setfistrum#c\": [\n      \"nopar\",\n      \"text=${1|fistrum-la,fistrum-es|}\",\n      \"language=${1:language}\",\n      \"auto-lang\",\n      \"default-range=${1:num1-num2}\"\n    ],\n    \"\\\\setfistrum#c\": [\n      \"par-before=${1:tokens}\",\n      \"par-begin=${1:tokens}\",\n      \"par-sep=${1:tokens}\",\n      \"par-end=${1:tokens}\",\n      \"par-after=${1:tokens}\",\n      \"sentence-before=${1:tokens}\",\n      \"sentence-begin=${1:tokens}\",\n      \"sentence-sep=${1:tokens}\",\n      \"sentence-end=${1:tokens}\",\n      \"sentence-after=${1:tokens}\",\n      \"par-before*=${1:tokens}\",\n      \"par-begin*=${1:tokens}\",\n      \"par-sep*=${1:tokens}\",\n      \"par-end*=${1:tokens}\",\n      \"par-after*=${1:tokens}\",\n      \"sentence-before*=${1:tokens}\",\n      \"sentence-begin*=${1:tokens}\",\n      \"sentence-sep*=${1:tokens}\",\n      \"sentence-end*=${1:tokens}\",\n      \"sentence-after*=${1:tokens}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fistrum#c,\\\\setfistrum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fitbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fitbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fitbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitbox[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\fitbox,\\\\fitbox*,\\\\fitboxset,\\\\SetFitboxLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fitbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitbox*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fitbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fitbox*[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\fitbox,\\\\fitbox*,\\\\fitboxset,\\\\SetFitboxLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fitboxset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitboxset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\fitbox,\\\\fitbox*,\\\\fitboxset,\\\\SetFitboxLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fitboxnatwidth\"\n    },\n    {\n      \"name\": \"fitboxnatheight\"\n    },\n    {\n      \"name\": \"SetFitboxLayout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetFitboxLayout{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"SetFitboxLayout\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetFitboxLayout[${3:options%keyvals}]{${1:rows}}{${2:columns}}\",\n        \"keys\": [\n          \"\\\\fitbox,\\\\fitbox*,\\\\fitboxset,\\\\SetFitboxLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fitbox,\\\\fitbox*,\\\\fitboxset,\\\\SetFitboxLayout\": [\n      \"maxheight=\",\n      \"maxwidth=\",\n      \"minheight=\",\n      \"minwidth=\",\n      \"belowboxspace=\",\n      \"maxenlargepage=\",\n      \"colsep=\",\n      \"colsepexpr=${1:space macro}\",\n      \"maincapheight=\",\n      \"maincaplines=${1:integer}\",\n      \"subcapheight=\",\n      \"subcaplines=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fitch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hypo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hypo{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hypo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hypo[${3:symbol}]{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hypo\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"hypo[${3:symbol}][${4:offset}]{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"have\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"have{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"have\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"have[${3:symbol}]{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"have\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"have[${3:symbol}][${4:offset}]{${1:label}}{${2:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"open\"\n    },\n    {\n      \"name\": \"open\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"open[${1:guard}]\"\n      }\n    },\n    {\n      \"name\": \"close\"\n    },\n    {\n      \"name\": \"close\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"close[${1:guard}]\"\n      }\n    },\n    {\n      \"name\": \"r\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"r{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ii{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ie{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ai{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ae\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ae{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"oi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oi{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"oe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oe{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ni{${1:ref list}}\"\n      },\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"ne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ne{${1:ref list}}\"\n      },\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"be\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"be{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"nne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nne{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"Ai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ai{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"Ae\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ae{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"Ei\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ei{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"Ee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ee{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"guard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guard{${1:guard}}\"\n      }\n    },\n    {\n      \"name\": \"guard\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"guard[${2:n}]{${1:guard}}\"\n      }\n    },\n    {\n      \"name\": \"by\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"by{${1:text}}{${2:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"ndref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ndref{${1:ref list}}\"\n      }\n    },\n    {\n      \"name\": \"hypocont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypocont{${1:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"havecont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"havecont{${1:formula%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ndrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndjustformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndrefformat\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"nd\"\n    },\n    {\n      \"name\": \"nd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"fitchproof\"\n    },\n    {\n      \"name\": \"fitchproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ndresume\"\n    },\n    {\n      \"name\": \"ndresume\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"fitchproof*\"\n    },\n    {\n      \"name\": \"fitchproof*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fitch#c,\\\\setkeys/fitch#c,\\\\begin{nd},\\\\begin{fitchproof},\\\\begin{ndresume},\\\\begin{fitchproof*}\": [\n      \"rules=${1:csname}\",\n      \"arrayenv=${1:envname}\",\n      \"justformat=${1:csname}\",\n      \"refformat=${1:csname}\",\n      \"height=\",\n      \"topheight=\",\n      \"depth=\",\n      \"labelsep=\",\n      \"indent=\",\n      \"hsep=\",\n      \"justsep=\",\n      \"linethickness=\",\n      \"cindent=\",\n      \"outerline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fitch#c,\\\\setkeys/fitch#c,\\\\begin{nd},\\\\begin{fitchproof},\\\\begin{ndresume},\\\\begin{fitchproof*}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fitr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"collectbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jdRect\"\n    },\n    {\n      \"name\": \"jdRect\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jdRect[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\jdRect,\\\\jdRect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jdRect*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jdRect*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"jdRect*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jdRect*[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\jdRect,\\\\jdRect*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restoreOverlayPresets\"\n    },\n    {\n      \"name\": \"viewMagWinOff\"\n    },\n    {\n      \"name\": \"viewMagWinOn\"\n    },\n    {\n      \"name\": \"allowFXDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overlayPresets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowFXcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FitRbboxB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FitRbboxB{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"FRblinkonjmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRblinkonjmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRblinkonrestorefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRblinkonrestoretrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRusedljsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRusedljstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFRblinkonjmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFRblinkonrestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFRusedljs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifviewMagWin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pbJmpLnkPresets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFitRDest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setFitRDest{${1:width}}{${2:height}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"themagCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"viewMagWinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"viewMagWintrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fitr#c\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"preview\",\n      \"!preview\",\n      \"viewMagWin\",\n      \"!viewMagWin\",\n      \"gonative\",\n      \"blinkonjmp\",\n      \"!blinkonjmp\",\n      \"blinkonrestore\",\n      \"!blinkonrestore\",\n      \"blink\",\n      \"!blink\"\n    ],\n    \"\\\\jdRect,\\\\jdRect*\": [\n      \"lift=\",\n      \"shift=\",\n      \"width=\",\n      \"height=\",\n      \"ref=${1|t,c,b|}\",\n      \"adddestw=\",\n      \"adddesth=\",\n      \"button\",\n      \"link=${1|jmp,restore|}\",\n      \"nodest\",\n      \"dest=${1:name}\",\n      \"allowFX\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fitr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fixdif.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"resetdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetdfont{${1:math font cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"letdif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letdif{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"letdif*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letdif*{${1:cmd}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"partialnondif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdif{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newdif*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdif*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewdif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewdif{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewdif*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewdif*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mathdif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdif{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"mathdif*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdif*{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fixdif#c\": [\n      \"rm\",\n      \"normal\",\n      \"partial\",\n      \"nopartial\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fixdif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fixfoot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DeclareFixedFootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFixedFootnote{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFixedFootnote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFixedFootnote*{${1:cmd}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fixjfm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fixjfmspacing\"\n    },\n    {\n      \"name\": \"UseStandardCJKTextFontCommands\"\n    },\n    {\n      \"name\": \"UseFixJFMCJKTextFontCommands\"\n    },\n    {\n      \"name\": \"SetFixJFMSpacingShrink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFixJFMSpacingShrink{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetFixJFMSpacingStretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFixJFMSpacingStretch{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFixJFMCJKTextFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFixJFMCJKTextFontCommand{${1:cmd}}{${2:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareStandardCJKTextFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareStandardCJKTextFontCommand{${1:cmd}}{${2:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"AppendToUseXCJKTextFontCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AppendToUseXCJKTextFontCommands{${1:cmd}}{${2:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"FixJFMSpacing\"\n    },\n    {\n      \"name\": \"fixjfmparindent\"\n    },\n    {\n      \"name\": \"FixJFMParindent\"\n    },\n    {\n      \"name\": \"EveryparPreHook\"\n    },\n    {\n      \"name\": \"EveryparPostHook\"\n    },\n    {\n      \"name\": \"ifUseFixJFMCJKTextFontCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifUseStandardCJKTextFontCommands\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fixlatvian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"perpage\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    },\n    {\n      \"name\": \"icomma\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"npageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fixmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fixme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fxsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnote{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxnote[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxwarning{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxwarning\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxwarning[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxerror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxerror{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxerror\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxerror[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxfatal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxfatal{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxfatal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxfatal[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnote*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxnote*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxwarning*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxwarning*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxwarning*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxwarning*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxerror*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxerror*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxerror*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxerror*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxfatal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxfatal*{${1:FIX%todo}}\"\n      }\n    },\n    {\n      \"name\": \"fxfatal*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fxfatal*[${2:options%keyvals}]{${1:FIX%todo}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoffixmes\"\n    },\n    {\n      \"name\": \"fxuselayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxuselayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuselayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxloadlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxuseenvlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxuseenvlayout{${1:layout%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadenvlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadenvlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxusetargetlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxusetargetlayout{${1:layout%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxloadtargetlayouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxloadtargetlayouts{${1:layouts%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fxsetface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fxsetface{${1:face%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\fxsetface\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXRegisterAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXRegisterAuthor{${1:cmdprefix}}{${2:envprefix}}{${3:author}}\"\n      }\n    },\n    {\n      \"name\": \"fxusetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxusetheme{${1:theme%keyvals}}\",\n        \"keys\": [\n          \"\\\\fxusetheme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutInline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutInline{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutFootnote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutIndex{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMarginClue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMarginClue{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutMarginNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutMarginNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFSigNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFSigNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFSigMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFSigMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCSigNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCSigNote{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutPDFCSigMargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutPDFCSigMargin{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXLayoutContentsLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXLayoutContentsLine{${1:type%keyvals}}{${2:annotation}}{${3:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutPlainBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutPlainBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutPlainEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutPlainEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutSignatureBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutSignatureBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutSignatureEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutSignatureEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorSigBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorSigBegin{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXEnvLayoutColorSigEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXEnvLayoutColorSigEnd{${1:type%keyvals}}{${2:author}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutPlain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutPlain{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutChangeBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutChangeBar{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutColor{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXTargetLayoutColorCB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXTargetLayoutColorCB{${1:type%keyvals}}{${2:target}}\",\n        \"keys\": [\n          \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FXRegisterLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FXRegisterLayout[${3:excluded layouts}]{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterLayout*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FXRegisterLayout*[${3:excluded layouts}]{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesLayout{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FXRegisterEnvLayout{${1:name}}{${2:begincmd%cmd}}{${3:endcmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesEnvLayout{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"FXRegisterTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXRegisterTargetLayout{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesTargetLayout{${1:name}}[${2:relase info}]\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutKey{${1:key%plain}}[${3:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutCmdKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutCmdKey[${3:mp}]{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutChoiceKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutChoiceKey{${1:key%plain}}[${4:bin}]{${2:alternatives}}[${5:default}]{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineEnvLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutVoidKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FXDefineTargetLayoutVoidKey{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineEnvLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineEnvLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXDefineTargetLayoutBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FXDefineTargetLayoutBoolKey[${2:function}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireLayouts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireLayouts{${1:layouts}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireEnvLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireEnvLayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"FXRequireTargetLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXRequireTargetLayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"FXProvidesTheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FXProvidesTheme{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"croatianlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixmeindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixmelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"francaislistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxaddcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxaddcontentsline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"fxcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fxcontentsline{${1:contents}}{${2:target}}\"\n      }\n    },\n    {\n      \"name\": \"fxcroatianerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatiannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatiannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxcroatianwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxdanishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxenglishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaiserrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaisfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaisnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrancaiswarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrencherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrencherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxfrenchwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxgermanwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianerrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitaliannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitaliannotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxitalianwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanerrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermannotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxngermanwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxnotename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnotename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fxnotesname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fxnotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fxspanisherrorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanisherrorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishfatalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishfatalsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishwarningname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxspanishwarningsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishlistfixmename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FXLogError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogError{${1:error text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogFatal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogFatal{${1:error text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogNote{${1:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"FXLogWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FXLogWarning{${1:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"thefixmecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxnotecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxwarningcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxerrorcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefxfatalcount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"anfxnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxwarning\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxerror\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxerror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxfatal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxfatal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxwarning*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxwarning*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxerror*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxerror*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    },\n    {\n      \"name\": \"anfxfatal*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:summary}}\",\n        \"keys\": [\n          \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\",\n          \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anfxfatal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:summary}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"final\",\n      \"draft\",\n      \"status=${1|final,draft|}\",\n      \"layout={${1:options}}\",\n      \"morelayout={${1:options}}\",\n      \"inline\",\n      \"noinline\",\n      \"margin\",\n      \"nomargin\",\n      \"footnote\",\n      \"nofootnote\",\n      \"index\",\n      \"noindex\",\n      \"marginclue\",\n      \"nomarginclue\",\n      \"marginnote\",\n      \"nomarginnote\",\n      \"pdfnote\",\n      \"nopdfnote\",\n      \"pdfmargin\",\n      \"nopdfmargin\",\n      \"pdfsignote\",\n      \"nopdfsignote\",\n      \"pdfsigmargin\",\n      \"nopdfsigmargin\",\n      \"pdfcnote\",\n      \"nopdfcnote\",\n      \"pdfcmargin\",\n      \"nopdfcmargin\",\n      \"pdfcsignote\",\n      \"nopdfcsignote\",\n      \"pdfcsigmargin\",\n      \"nopdfcsigmargin\",\n      \"innerlayout={${1:options}}\",\n      \"target=\",\n      \"inlineface=${1:font commands}\",\n      \"marginface=${1:font commands}\",\n      \"envface=${1:font commands}\",\n      \"signatureface=${1:font commands}\",\n      \"targetface=${1:font commands}\",\n      \"silent\",\n      \"nosilent\",\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"spanish\",\n      \"italian\",\n      \"german\",\n      \"ngerman\",\n      \"danish\",\n      \"croatian\",\n      \"lang=${1|english,french,francais,spanish,italian,german,ngerman,danish,croatian|}\",\n      \"langtrack\",\n      \"defaultlang=${1|english,french,francais,spanish,italian,german,ngerman,danish,croatian|}\",\n      \"author=${1:name}\",\n      \"singleuser\",\n      \"multiuser\",\n      \"mode=${1|singleuser,multiuser|}\"\n    ],\n    \"\\\\fxuselayouts\": [\n      \"inline\",\n      \"noinline\",\n      \"margin\",\n      \"nomargin\",\n      \"footnote\",\n      \"nofootnote\",\n      \"index\",\n      \"noindex\",\n      \"marginclue\",\n      \"nomarginclue\",\n      \"marginnote\",\n      \"nomarginnote\",\n      \"pdfnote\",\n      \"nopdfnote\",\n      \"pdfmargin\",\n      \"nopdfmargin\",\n      \"pdfsignote\",\n      \"nopdfsignote\",\n      \"pdfsigmargin\",\n      \"nopdfsigmargin\",\n      \"pdfcnote\",\n      \"nopdfcnote\",\n      \"pdfcmargin\",\n      \"nopdfcmargin\",\n      \"pdfcsignote\",\n      \"nopdfcsignote\",\n      \"pdfcsigmargin\",\n      \"nopdfcsigmargin\"\n    ],\n    \"\\\\fxloadlayouts\": [\n      \"inline\",\n      \"margin\",\n      \"footnote\",\n      \"index\",\n      \"marginclue\",\n      \"marginnote\",\n      \"pdfnote\",\n      \"pdfmargin\",\n      \"pdfsignote\",\n      \"pdfsigmargin\",\n      \"pdfcnote\",\n      \"pdfcmargin\",\n      \"pdfcsignote\",\n      \"pdfcsigmargin\"\n    ],\n    \"\\\\fxuseenvlayout,\\\\fxloadenvlayouts\": [\n      \"plain\",\n      \"signature\",\n      \"color\",\n      \"colorsig\"\n    ],\n    \"\\\\fxsetup,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"envlayout=${1|plain,signature,color,colorsig|}\"\n    ],\n    \"\\\\fxsetup,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\": [\n      \"targetlayout=${1|plain,changebar,color,colorcb|}\"\n    ],\n    \"\\\\fxusetargetlayout,\\\\fxloadtargetlayouts\": [\n      \"plain\",\n      \"changebar\",\n      \"color\",\n      \"colorcb\"\n    ],\n    \"\\\\fxsetface\": [\n      \"inline\",\n      \"margin\",\n      \"env\",\n      \"signature\",\n      \"target\"\n    ],\n    \"\\\\fxusetheme\": [\n      \"signature\",\n      \"color\",\n      \"colorsig\"\n    ],\n    \"\\\\fxsetup\": [\n      \"theme=${1|signature,color,colorsig|}\"\n    ],\n    \"\\\\FXLayoutInline,\\\\FXLayoutMargin,\\\\FXLayoutFootnote,\\\\FXLayoutIndex,\\\\FXLayoutMarginClue,\\\\FXLayoutMarginNote,\\\\FXLayoutPDFNote,\\\\FXLayoutPDFMargin,\\\\FXLayoutPDFSigNote,\\\\FXLayoutPDFSigMargin,\\\\FXLayoutPDFCNote,\\\\FXLayoutPDFCMargin,\\\\FXLayoutPDFCSigNote,\\\\FXLayoutPDFCSigMargin,\\\\FXEnvLayoutPlainBegin,\\\\FXEnvLayoutPlainEnd,\\\\FXEnvLayoutSignatureBegin,\\\\FXEnvLayoutSignatureEnd,\\\\FXEnvLayoutColorBegin,\\\\FXEnvLayoutColorEnd,\\\\FXEnvLayoutColorSigBegin,\\\\FXEnvLayoutColorSigEnd,\\\\FXTargetLayoutPlain,\\\\FXTargetLayoutChangeBar,\\\\FXTargetLayoutColor,\\\\FXTargetLayoutColorCB,\\\\FXLayoutContentsLine\": [\n      \"note\",\n      \"warning\",\n      \"error\",\n      \"fatal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fixme#c,\\\\fxsetup,\\\\fxnote,\\\\fxwarning,\\\\fxerror,\\\\fxfatal,\\\\fxnote*,\\\\fxwarning*,\\\\fxerror*,\\\\fxfatal*,\\\\begin{anfxnote},\\\\begin{anfxwarning},\\\\begin{anfxerror},\\\\begin{anfxfatal},\\\\begin{anfxnote*},\\\\begin{anfxwarning*},\\\\begin{anfxerror*},\\\\begin{anfxfatal*}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fjodor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fjodor#c\": [\n      \"fjodor\",\n      \"katajev\",\n      \"hese\",\n      \"puskin\",\n      \"ernest\",\n      \"viktor\",\n      \"remark\",\n      \"tehnicar\",\n      \"ulro\",\n      \"aristotel\",\n      \"jaeger\",\n      \"tesla\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fjodor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/flabels.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setbgcompany\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbgcompany{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setfgcompany\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfgcompany{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setbglabel\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbglabel{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setfglabel\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfglabel{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"narrowlabels\"\n    },\n    {\n      \"name\": \"widelabels\"\n    },\n    {\n      \"name\": \"fullheight\"\n    },\n    {\n      \"name\": \"normalheight\"\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"thenumberauxlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auxlinedistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"auxlinedistance{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"companylabelheight\"\n    },\n    {\n      \"name\": \"ylowercompany\"\n    },\n    {\n      \"name\": \"yuppercompany\"\n    },\n    {\n      \"name\": \"extratopmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratopmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hspaceinterlabel\"\n    },\n    {\n      \"name\": \"labeltextmargin\"\n    },\n    {\n      \"name\": \"emptylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emptylabel{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"labeltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labeltext{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/flabels#c\": [\n      \"leitz\",\n      \"fullheight\",\n      \"narrow\",\n      \"color\",\n      \"a4paper\",\n      \"nice\",\n      \"nohole\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/flabels#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/flagderiv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"introduce\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"introduce{${1:label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"assume\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"assume{${1:label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"step{${1:label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclude\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"conclude{${1:label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"conclude[${4:number}]{${1:label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"introduce*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"introduce*{${1:custom label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"assume*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"assume*{${1:custom label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"step*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"step*{${1:custom label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclude*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"conclude*{${1:custom label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclude*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"conclude*[${4:number}]{${1:custom label}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"skipsteps\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"skipsteps{${1:number}}{${2:formula}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"skipsteps*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"skipsteps*{${1:formula}}{${2:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"done\"\n    },\n    {\n      \"name\": \"done\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"done[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"derivskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introsymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestepcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesteplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlcmnts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noinlcmnts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinlcmnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablefirsthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlastfoot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"flagderiv\"\n    },\n    {\n      \"name\": \"flagderiv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label prefix}]\"\n      }\n    },\n    {\n      \"name\": \"flagderiv*\"\n    },\n    {\n      \"name\": \"flagderiv*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label prefix}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/flexipage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"mparhack\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"show\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewMarginPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewMarginPage{${1:marginalgrid}}\"\n      }\n    },\n    {\n      \"name\": \"NewMarginPage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewMarginPage[${2:grid}]{${1:marginalgrid}}\"\n      }\n    },\n    {\n      \"name\": \"NewFullPage\"\n    },\n    {\n      \"name\": \"OldMarginPage\"\n    },\n    {\n      \"name\": \"ResetFlexiPage\"\n    },\n    {\n      \"name\": \"IfNoValueOrEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueOrEmptyTF{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"fleximarginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsepeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsepodd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Landscape\"\n    },\n    {\n      \"name\": \"landscape\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/flexipage#c\": [\n      \"binding=\",\n      \"inner=\",\n      \"outer=\",\n      \"top=\",\n      \"bot=\",\n      \"marginparsep=\",\n      \"paperheight=\",\n      \"paperwidth=\",\n      \"outerbleed=\",\n      \"innerbleed=\",\n      \"grid=${1:number}\",\n      \"marginalgrid=${1:number}\",\n      \"show\",\n      \"NoFixMargin\",\n      \"headsep=\",\n      \"headheight=\",\n      \"footskip=\",\n      \"extrafirstfoot=\",\n      \"fancyhdrOff\",\n      \"a4paper\",\n      \"a5paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"b4jpaper\",\n      \"b5jpaper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"10x8paper\",\n      \"US-Trade\",\n      \"UK-B-Format\",\n      \"US-B-Format\",\n      \"UK-Royal\",\n      \"Quarto\",\n      \"Octavo\",\n      \"CrownQuarto\",\n      \"Demi\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/flexipage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/flexisym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathstyle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sumlimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intlimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namelimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareFlexSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFlexSymbol{${1:cmd}}{${2:type}}{${3:encoding}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFlexCompoundSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFlexCompoundSymbol{${1:cmd}}{${2:type}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFlexDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareFlexDelimiter{${1:cmd}}{${2:type}}{${3:enc1}}{${4:slot1}}{${5:enc2}}{${6:slot2}}\"\n      }\n    },\n    {\n      \"name\": \"textchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textprime\"\n    },\n    {\n      \"name\": \"usesymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usesymbols{${1:symbol set}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesSymbols{${1:symbol set name}}\"\n      }\n    },\n    {\n      \"name\": \"OrdSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrdSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ldotPun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookRel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookRel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notRel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapstoOrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdotOrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lVert\"\n    },\n    {\n      \"name\": \"rVert\"\n    },\n    {\n      \"name\": \"lvert\"\n    },\n    {\n      \"name\": \"rvert\"\n    },\n    {\n      \"name\": \"hbarOrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surdOrd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/flippdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FlipPDF\"\n    },\n    {\n      \"name\": \"UnFlipPDF\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/flippdf#c\": [\n      \"off\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/flippdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/float.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloat{${1:float type%envname}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newfloat{${1:float type%envname}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"floatstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatstyle{${1:default style%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floatname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatname{${1:float type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"floatplacement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatplacement{${1:float type}}{${2:default placement}}\"\n      }\n    },\n    {\n      \"name\": \"restylefloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restylefloat{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"listof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listof{${1:float type}}{${2:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\floatstyle\": [\n      \"plain\",\n      \"plaintop\",\n      \"boxed\",\n      \"ruled\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/floatbytocbasic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"deffloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffloat{${1:float type%envname}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"deffloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"deffloat{${1:float type%envname}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"providefloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providefloat{${1:float type%envname}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"providefloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"providefloat{${1:float type%envname}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"renewfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewfloat{${1:float type}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"renewfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"renewfloat{${1:float type}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/floatflt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fltitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fltitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fltitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fltitem[${2:space%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fltditem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fltditem{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fltditem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fltditem[${3:space%l}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"figbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffigcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftabcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fftest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosuccesstryfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosuccesstrytab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figgutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabgutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htdone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startpageht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabbredd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatfltwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fltitemwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftryingfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryingfigfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryingfigtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftryingtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryingtabfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryingtabtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdoingfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doingfigfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doingfigtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdoingtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doingtabfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doingtabtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffigprocessing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figprocessingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figprocessingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabprocessing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabprocessingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabprocessingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpageafterfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageafterfigfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageafterfigtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpageaftertab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaftertabfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageaftertabtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputpretest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dofigtest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dohangf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dohangt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotabtest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theOptionTest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trytab\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"floatingfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"floatingfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:option%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{floatingfigure},\\\\begin{floatingtable}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floatingtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tabular content%text}}\"\n      }\n    },\n    {\n      \"name\": \"floatingtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:option%keyvals}]{${1:tabular content%text}}\",\n        \"keys\": [\n          \"\\\\begin{floatingfigure},\\\\begin{floatingtable}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/floatflt#c\": [\n      \"rflt\",\n      \"lflt\",\n      \"vflt\"\n    ],\n    \"\\\\begin{floatingfigure},\\\\begin{floatingtable}\": [\n      \"r\",\n      \"l\",\n      \"p\",\n      \"v\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/floatflt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/floatpag.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"floatpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatpagestyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatpagestyle#c,\\\\rotfloatpagestyle#c,\\\\thisfloatpagestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rotfloatpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotfloatpagestyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatpagestyle#c,\\\\rotfloatpagestyle#c,\\\\thisfloatpagestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thisfloatpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisfloatpagestyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatpagestyle#c,\\\\rotfloatpagestyle#c,\\\\thisfloatpagestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\floatpagestyle#c,\\\\rotfloatpagestyle#c,\\\\thisfloatpagestyle#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/floatpagestyle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"floatpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatpagestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"emptyfloatpage\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/floatrow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"caption3\"\n    },\n    {\n      \"name\": \"fr-subfig\"\n    },\n    {\n      \"name\": \"fr-fancy\",\n      \"if\": \"fancyboxes=true\"\n    },\n    {\n      \"name\": \"fr-fancy\",\n      \"if\": \"fancyboxes=yes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"floatsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatsetup#c,\\\\thisfloatsetup#c,\\\\usepackage/floatrow#c,\\\\DeclareFloatStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floatsetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"floatsetup[${2:float type}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatsetup#c,\\\\thisfloatsetup#c,\\\\usepackage/floatrow#c,\\\\DeclareFloatStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"thisfloatsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisfloatsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\floatsetup#c,\\\\thisfloatsetup#c,\\\\usepackage/floatrow#c,\\\\DeclareFloatStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"floatbox{${1:float type}}{${2:caption%text}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"floatbox{${1:float type}}{${2:caption%text}}[${4:width}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"floatbox{${1:float type}}{${2:caption%text}}[${4:width}][${5:height}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]{}\",\n        \"snippet\": \"floatbox{${1:float type}}{${2:caption%text}}[${4:width}][${5:height}][${6:vert pos}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"floatbox[${4:preamble}]{${1:float type}}{${2:caption%text}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"floatbox[${4:preamble}]{${1:float type}}{${2:caption%text}}[${5:width}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}\",\n        \"snippet\": \"floatbox[${4:preamble}]{${1:float type}}{${2:caption%text}}[${5:width}][${6:height}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"floatbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]{}\",\n        \"snippet\": \"floatbox[${4:preamble}]{${1:float type}}{${2:caption%text}}[${5:width}][${6:height}][${7:vert pos}]{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"capbeside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocapbeside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBwidth\"\n    },\n    {\n      \"name\": \"FBheight\"\n    },\n    {\n      \"name\": \"newfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfloatcommand{${1:csname}}{${2:float type}}\"\n      }\n    },\n    {\n      \"name\": \"newfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfloatcommand{${1:csname}}{${2:float type}}[${3:preamble}]\"\n      }\n    },\n    {\n      \"name\": \"newfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"newfloatcommand{${1:csname}}{${2:float type}}[${3:preamble}][${4:default width%l}]\"\n      }\n    },\n    {\n      \"name\": \"renewfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfloatcommand{${1:csname}}{${2:float type}}\"\n      }\n    },\n    {\n      \"name\": \"renewfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewfloatcommand{${1:csname}}{${2:float type}}[${3:preamble}]\"\n      }\n    },\n    {\n      \"name\": \"renewfloatcommand\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"renewfloatcommand{${1:csname}}{${2:float type}}[${3:preamble}][${4:default width%l}]\"\n      }\n    },\n    {\n      \"name\": \"ffigbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ffigbox{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ffigbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ffigbox[${3:width}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ffigbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"ffigbox[${3:width}][${4:height}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ffigbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"ffigbox[${3:width}][${4:height}][${5:vert pos}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ttabbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttabbox{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ttabbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ttabbox[${3:width}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ttabbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"ttabbox[${3:width}][${4:height}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ttabbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"ttabbox[${3:width}][${4:height}][${5:vert pos}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"fcapside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fcapside{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"fcapside\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fcapside[${3:width}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"fcapside\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"fcapside[${3:width}][${4:height}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"fcapside\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"fcapside[${3:width}][${4:height}][${5:vert pos}]{${1:caption%text}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"Xhsize\"\n    },\n    {\n      \"name\": \"clearfloatsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearfloatsetup{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"killfloatstyle\"\n    },\n    {\n      \"name\": \"CenterFloatBoxes\"\n    },\n    {\n      \"name\": \"TopFloatBoxes\"\n    },\n    {\n      \"name\": \"BottomFloatBoxes\"\n    },\n    {\n      \"name\": \"PlainFloatBoxes\"\n    },\n    {\n      \"name\": \"buildFBBOX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"buildFBBOX{${1:start code}}{${2:finish code}}\"\n      }\n    },\n    {\n      \"name\": \"RawFloats\"\n    },\n    {\n      \"name\": \"RawFloats\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RawFloats[${1:type1,type2,...}]\"\n      }\n    },\n    {\n      \"name\": \"RawFloats\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"RawFloats[${1:type}][${2:subtype1,subtype2,...}]\"\n      }\n    },\n    {\n      \"name\": \"RawCaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RawCaption{${1:caption code}}\"\n      }\n    },\n    {\n      \"name\": \"floatfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"floatfoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatfoot*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FBaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBbskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareFloatStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatStyle{${1:name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFloatFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatFont{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFloatVCode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatVCode{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareColorBox{${1:name%specialDef}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCBoxCorners\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareCBoxCorners{${1:name%specialDef}}{${2:llcorner}}{${3:lrcorner}}{${4:urcorner}}{${5:ulcorner}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareObjectSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareObjectSet{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMarginSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMarginSet{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatmargins\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfloatmargins{${1:left margin}}{${2:right margin}}\"\n      }\n    },\n    {\n      \"name\": \"floatfacing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatfacing{${1:odd page def}}{${2:even page def}}\"\n      }\n    },\n    {\n      \"name\": \"floatfacing*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatfacing*{${1:odd page def}}{${2:even page def}}\"\n      }\n    },\n    {\n      \"name\": \"floatboxmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatrowmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcapbesidemargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareFloatSeparators\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatSeparators{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFloatFootnoterule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatFootnoterule{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewFloatType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNewFloatType{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareNewFloatType\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfloat{${1:envname}}{${2:placement}}{${3:ext}}\"\n      }\n    },\n    {\n      \"name\": \"newfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newfloat{${1:envname}}{${2:placement}}{${3:ext}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"floatname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatname{${1:float type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"floatplacement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"floatplacement{${1:float type}}{${2:placement}}\"\n      }\n    },\n    {\n      \"name\": \"listof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listof{${1:float type}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"floatHpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RestoreSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RemoveSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatfootskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RawCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RawCaption{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newdimentocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newdimentocommand{${1:dimen macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewdimentocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewdimentocommand{${1:dimen macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"newskiptocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newskiptocommand{${1:skip macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewskiptocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewskiptocommand{${1:skip macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"newlengthtocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlengthtocommand{${1:length macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewlengthtocommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewlengthtocommand{${1:length macro}}{${2:cmd}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultCommonHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CommonHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CommonHeightRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommonHeightRow{${1:floatrow env}}\"\n      }\n    },\n    {\n      \"name\": \"CommonHeightRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CommonHeightRow[${2:height}]{${1:floatrow env}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFNOpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFNOpt{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFNOpt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFNOpt*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFROpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFROpt{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFROpt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFROpt*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFtPos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFtPos{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareHtAdj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareHtAdj{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSCPos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSCPos{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"CADJfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CADJtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capbot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsubrowsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionfootfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CAPTOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBafil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBbfil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBbuildfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBbuildtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBifcapbeside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBifCAPTOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBifcaptop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBiffloatrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBoheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBrightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCrightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FCwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filFCOhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatcapbesidesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatobjectset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floatstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FPOScnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRcolorboxdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRcolorboxht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRcolorboxwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRifFBOX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FRleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frulemax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCADJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBbuild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifOADJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpfootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofilFCOhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofilFCOhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OADJfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OADJtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessOptionsWithKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessOptionsWithKV{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"refsteponlycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restylefloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sXhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sZhsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFBcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFRobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFRsobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useFCwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zhsize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"floatrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number of beside floats}]\"\n      }\n    },\n    {\n      \"name\": \"subfloatrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number of beside floats}]\"\n      }\n    },\n    {\n      \"name\": \"subfloatrow*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfloatrow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number of beside floats}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\floatsetup#c,\\\\thisfloatsetup#c,\\\\usepackage/floatrow#c,\\\\DeclareFloatStyle#c\": [\n      \"style=${1|plain,plaintop,Plaintop,ruled,Ruled,boxed,Boxed,BOXED,shadowbox,Shadowbox,SHADOWBOX,doublebox,Doublebox,DOUBLEBOX,wshadowbox,Wshadowbox,WSHADOWBOX|}\",\n      \"font=${1|scriptsize,footnotesize,small,normalsize,large,Large,up,it,sl,sc,md,bf,rm,sf,tt|}\",\n      \"footfont=${1|scriptsize,footnotesize,small,normalsize,large,Large,up,it,sl,sc,md,bf,rm,sf,tt|}\",\n      \"capposition=${1|top,TOP,bottom,beside|}\",\n      \"capbesideposition=${1|left,right,inside,outside,top,bottom,center|}\",\n      \"capbesidewidth=\",\n      \"floatwidth=\",\n      \"capbesideframe=${1|yes,no|}\",\n      \"footposition=${1|default,caption,bottom|}\",\n      \"heightadjust=${1|all,caption,object,none,nocaption,noobject|}\",\n      \"valign=${1|t,c,b,s|}\",\n      \"facing=${1|yes,no|}\",\n      \"objectset=${1|justified,centering,raggedright,RaggedRight,raggedleft|}\",\n      \"margins=${1|centering,raggedright,raggedleft,hangleft,hangright,hanginside,hangoutside|}\",\n      \"floatrowsep=${1|columnsep,quad,qquad,hfil,hfill,none|}\",\n      \"capbesidesep=${1|columnsep,quad,qquad,hfil,hfill,none|}\",\n      \"precode=${1|none,thickrule,rule,lowrule,captionskip|}\",\n      \"rowprecode=${1|none,thickrule,rule,lowrule,captionskip|}\",\n      \"midcode=${1|none,thickrule,rule,lowrule,captionskip|}\",\n      \"postcode=${1|none,thickrule,rule,lowrule,captionskip|}\",\n      \"rowpostcode=${1|none,thickrule,rule,lowrule,captionskip|}\",\n      \"framestyle=${1|fbox,colorbox,FRcolorbox,corners,doublebox,shadowbox,wshadowbox|}\",\n      \"frameset={${1:code}}\",\n      \"framearound=${1|none,object,all,row|}\",\n      \"framefit\",\n      \"rowfill\",\n      \"colorframeset=\",\n      \"colorframecorners=\",\n      \"captionskip=\",\n      \"footskip=\",\n      \"footnoterule=${1|normal,limited,fullsize,none|}\",\n      \"doublefloataswide\",\n      \"floatHaslist\"\n    ],\n    \"\\\\usepackage/floatrow#c\": [\n      \"rawfloats\"\n    ],\n    \"\\\\DeclareNewFloatType\": [\n      \"placement=${1:combination of t,b,h,p}\",\n      \"name=${1:name}\",\n      \"fileext=${1:ext}\",\n      \"within=${1:counter}\",\n      \"relatedcapstyle=${1|yes,no|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\floatsetup#c,\\\\thisfloatsetup#c,\\\\usepackage/floatrow#c,\\\\DeclareFloatStyle#c\",\n    \"\\\\usepackage/floatrow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/floatrowbytocbasic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareFloatType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFloatType{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareFloatType,\\\\ProvideFloatType,\\\\RedeclareFloatType\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ProvideFloatType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideFloatType{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareFloatType,\\\\ProvideFloatType,\\\\RedeclareFloatType\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RedeclareFloatType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RedeclareFloatType{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareFloatType,\\\\ProvideFloatType,\\\\RedeclareFloatType\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DeclareFloatType,\\\\ProvideFloatType,\\\\RedeclareFloatType\": [\n      \"placement=${1:combination of t,b,h,p}\",\n      \"name=${1:name}\",\n      \"fileext=${1:ext}\",\n      \"within=${1:counter}\",\n      \"relatedcapstyle=${1|yes,no|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/flowchart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"makeshape\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"band\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predprocAnchorpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predprocBackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storagepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storageParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storageParamsOuter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storageAnchorpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"storageBackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionrefout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decisionborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalrefneout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalrefne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"northeastBB\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/flowfram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifshowtypeblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtypeblocktrue\"\n    },\n    {\n      \"name\": \"showtypeblockfalse\"\n    },\n    {\n      \"name\": \"ifshowmargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showmarginstrue\"\n    },\n    {\n      \"name\": \"showmarginsfalse\"\n    },\n    {\n      \"name\": \"ifshowframebbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showframebboxtrue\"\n    },\n    {\n      \"name\": \"showframebboxfalse\"\n    },\n    {\n      \"name\": \"flowframeshowlayout\"\n    },\n    {\n      \"name\": \"chapterfirstpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffprechapterhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newflowframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newflowframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newflowframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newflowframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newflowframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newflowframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newflowframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newflowframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"newflowframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newflowframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newflowframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newflowframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newflowframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newflowframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newflowframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newflowframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"getflowlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getflowlabel{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getflowid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getflowid{${1:cmd}}{${2:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"framebreak\"\n    },\n    {\n      \"name\": \"fftolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newstaticframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newstaticframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newstaticframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newstaticframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newstaticframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newstaticframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newstaticframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newstaticframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newstaticframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newstaticframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"getstaticlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstaticlabel{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getstaticid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getstaticid{${1:cmd}}{${2:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"setstaticcontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstaticcontents{${1:IDN}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"setstaticcontents*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstaticcontents*{${1:IDL}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newdynamicframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newdynamicframe{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newdynamicframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newdynamicframe[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newdynamicframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"newdynamicframe*{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newdynamicframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"newdynamicframe*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newdynamicframe*[${5:page list}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}[${6:label}]\"\n      }\n    },\n    {\n      \"name\": \"getdynamiclabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdynamiclabel{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getdynamicid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getdynamicid{${1:cmd}}{${2:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"setdynamiccontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setdynamiccontents{${1:IDN}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"setdynamiccontents*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setdynamiccontents*{${1:IDL}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"appenddynamiccontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appenddynamiccontents{${1:IDN}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"appenddynamiccontents*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appenddynamiccontents*{${1:IDL}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"dfchaphead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dfchaphead{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dfchaphead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dfchaphead*{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"DFchapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DFchapterstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DFschapterstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DFschapterstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makedfheaderfooter\"\n    },\n    {\n      \"name\": \"continueonframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"continueonframe{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"continueonframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"continueonframe[${2:continuation text%text}]{${1:ID}}\"\n      }\n    },\n    {\n      \"name\": \"ffcontinuedtextlayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ffcontinuedtextlayout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ffcontinuedtextfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ffcontinuedtextfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setflowframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setflowframe{${1:IDN list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setflowframe*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setflowframe*{${1:IDL list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setallflowframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallflowframes{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setstaticframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstaticframe{${1:IDN list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setstaticframe*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstaticframe*{${1:IDL list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setallstaticframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallstaticframes{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdynamicframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setdynamicframe{${1:IDN list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setdynamicframe*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setdynamicframe*{${1:IDL list}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setalldynamicframes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setalldynamicframes{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ffswapoddeven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ffswapoddeven{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"sfswapoddeven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfswapoddeven{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dfswapoddeven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dfswapoddeven{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowsetpagelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flowsetpagelist{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicsetpagelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynamicsetpagelist{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"staticsetpagelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"staticsetpagelist{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"flowsetexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flowsetexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicsetexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynamicsetexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"staticsetexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"staticsetexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"flowaddexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flowaddexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicaddexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dynamicaddexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"staticaddexclusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"staticaddexclusion{${1:IDN}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"simpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowswitchonnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchonnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchonnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"flowswitchoffnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowswitchoffnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchonnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchonnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicswitchoffnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicswitchoffnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnext{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnext*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextodd{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextodd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextodd*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchonnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchonnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextoddonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextoddonly{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"staticswitchoffnextoddonly*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticswitchoffnextoddonly*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"computeleftedgeodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computeleftedgeodd{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computeleftedgeeven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computeleftedgeeven{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computetopedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computetopedge{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computebottomedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computebottomedge{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computerightedgeodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computerightedgeodd{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computerightedgeeven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computerightedgeeven{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"computeflowframearea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computeflowframearea{${1:IDN list}}\"\n      }\n    },\n    {\n      \"name\": \"computeflowframearea*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computeflowframearea*{${1:IDL list}}\"\n      }\n    },\n    {\n      \"name\": \"getstaticbounds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstaticbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getstaticbounds*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstaticbounds*{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"getflowbounds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getflowbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getflowbounds*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getflowbounds*{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"getdynamicbounds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdynamicbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getdynamicbounds*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdynamicbounds*{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"ffareawidth\"\n    },\n    {\n      \"name\": \"ffareaheight\"\n    },\n    {\n      \"name\": \"ffareax\"\n    },\n    {\n      \"name\": \"ffareay\"\n    },\n    {\n      \"name\": \"relativeframelocation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"relativeframelocation{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"relativeframelocation*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"relativeframelocation*{${1:type1%keyvals}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FFaboveleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFaboveright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFbelowleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFbelowright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFabove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFbelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FFoverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reldynamicloc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reldynamicloc{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"reldynamicloc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reldynamicloc*{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"relstaticloc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relstaticloc{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"relstaticloc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relstaticloc*{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"relflowloc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relflowloc{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"relflowloc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relflowloc*{${1:IDN1}}{${2:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"ifffvadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffvadjusttrue\"\n    },\n    {\n      \"name\": \"ffvadjustfalse\"\n    },\n    {\n      \"name\": \"onecolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"onecolumn[${1:pages}]\"\n      }\n    },\n    {\n      \"name\": \"twocolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twocolumn[${1:pages}]\"\n      }\n    },\n    {\n      \"name\": \"Ncolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ncolumn{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Ncolumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ncolumn[${2:pages}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumninarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"onecolumninarea{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumninarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"onecolumninarea[${5:pages}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumninarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"twocolumninarea{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumninarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"twocolumninarea[${5:pages}]{${1:width}}{${2:height}}{${3:x}}{${4:y}}\"\n      }\n    },\n    {\n      \"name\": \"Ncolumninarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Ncolumninarea{${1:n}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"Ncolumninarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"Ncolumninarea[${6:pages}]{${1:n}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumntopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"onecolumntopinarea{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onecolumntopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"onecolumntopinarea[${7:pages}]{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"twocolumntopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"twocolumntopinarea{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"twocolumntopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"twocolumntopinarea[${7:pages}]{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Ncolumntopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Ncolumntopinarea{${1:type%keyvals}}{${2:n}}{${3:H}}{${4:width}}{${5:height}}{${6:x}}{${7:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ncolumntopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Ncolumntopinarea[${8:pages}]{${1:type%keyvals}}{${2:n}}{${3:H}}{${4:width}}{${5:height}}{${6:x}}{${7:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"onecolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"onecolumnbottominarea{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onecolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"onecolumnbottominarea[${7:pages}]{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"twocolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"twocolumnbottominarea{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"twocolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"twocolumnbottominarea[${7:pages}]{${1:type%keyvals}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Ncolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Ncolumnbottominarea{${1:type%keyvals}}{${2:n}}{${3:H}}{${4:width}}{${5:height}}{${6:x}}{${7:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ncolumnbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Ncolumnbottominarea[${8:pages}]{${1:type%keyvals}}{${2:n}}{${3:H}}{${4:width}}{${5:height}}{${6:x}}{${7:y}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"onecolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"onecolumnStopinarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"onecolumnStopinarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"onecolumnDtopinarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"onecolumnDtopinarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumntop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onecolumntop{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onecolumntop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"onecolumntop[${3:pages}]{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"onecolumnStop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onecolumnStop{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnStop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onecolumnStop[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onecolumnDtop{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onecolumnDtop[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"twocolumnStopinarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"twocolumnStopinarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"twocolumnDtopinarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"twocolumnDtopinarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumntop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twocolumntop{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"twocolumntop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"twocolumntop[${3:pages}]{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"twocolumnStop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnStop{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnStop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"twocolumnStop[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnDtop{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDtop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"twocolumnDtop[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnStopinarea{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnStopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnStopinarea[${7:pages}]{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnDtopinarea{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDtopinarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnDtopinarea[${7:pages}]{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"Ncolumntop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ncolumntop{${1:type%keyvals}}{${2:n}}{${3:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ncolumntop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Ncolumntop[${4:pages}]{${1:type%keyvals}}{${2:n}}{${3:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NcolumnStop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NcolumnStop{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnStop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NcolumnStop[${3:pages}]{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDtop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NcolumnDtop{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDtop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NcolumnDtop[${3:pages}]{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"onecolumnSbottominarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"onecolumnSbottominarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"onecolumnDbottominarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"onecolumnDbottominarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onecolumnbottom{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onecolumnbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"onecolumnbottom[${3:pages}]{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"onecolumnSbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onecolumnSbottom{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnSbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onecolumnSbottom[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onecolumnDbottom{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumnDbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onecolumnDbottom[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"twocolumnSbottominarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"twocolumnSbottominarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"twocolumnDbottominarea{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"twocolumnDbottominarea[${6:pages}]{${1:H}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"twocolumnbottom{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"twocolumnbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"twocolumnbottom[${3:pages}]{${1:type%keyvals}}{${2:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"twocolumnSbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnSbottom{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnSbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"twocolumnSbottom[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocolumnDbottom{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnDbottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"twocolumnDbottom[${2:pages}]{${1:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnSbottominarea{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnSbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnSbottominarea[${7:pages}]{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnDbottominarea{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDbottominarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"NcolumnDbottominarea[${7:pages}]{${1:n}}{${2:H}}{${3:width}}{${4:height}}{${5:x}}{${6:y}}\"\n      }\n    },\n    {\n      \"name\": \"Ncolumnbottom\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ncolumnbottom{${1:type%keyvals}}{${2:n}}{${3:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ncolumnbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Ncolumnbottom[${4:pages}]{${1:type%keyvals}}{${2:n}}{${3:H}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NcolumnSbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NcolumnSbottom{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnSbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NcolumnSbottom[${3:pages}]{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NcolumnDbottom{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"NcolumnDbottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NcolumnDbottom[${3:pages}]{${1:n}}{${2:H}}\"\n      }\n    },\n    {\n      \"name\": \"iflefttorightcolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lefttorightcolumnstrue\"\n    },\n    {\n      \"name\": \"lefttorightcolumnsfalse\"\n    },\n    {\n      \"name\": \"vtwotone\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotone{${1:width1}}{${2:color1}}{${3:IDL1}}{${4:width2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotone\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotone[${7:pages}]{${1:width1}}{${2:color1}}{${3:IDL1}}{${4:width2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotone\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotone[${7:pages}][${8:xoffset}]{${1:width1}}{${2:color1}}{${3:IDL1}}{${4:width2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonebottom\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonebottom{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonebottom\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonebottom[${8:pages}]{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonebottom\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonebottom[${8:pages}][${9:xoffset}]{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonetop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonetop{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonetop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonetop[${8:pages}]{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"vtwotonetop\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}{}\",\n        \"snippet\": \"vtwotonetop[${8:pages}][${9:xoffset}]{${1:H}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotone\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"htwotone{${1:height1}}{${2:color1}}{${3:IDL1}}{${4:height2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotone\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"htwotone[${7:pages}]{${1:height1}}{${2:color1}}{${3:IDL1}}{${4:height2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotone\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}\",\n        \"snippet\": \"htwotone[${7:pages}][${8:yoffset}]{${1:height1}}{${2:color1}}{${3:IDL1}}{${4:height2}}{${5:color2}}{${6:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneleft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneleft{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneleft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneleft[${8:pages}]{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneleft\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneleft[${8:pages}][${9:xoffset}]{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneright\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneright{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneright\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneright[${8:pages}]{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"htwotoneright\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}{}{}{}\",\n        \"snippet\": \"htwotoneright[${8:pages}][${9:xoffset}]{${1:W}}{${2:width1}}{${3:color1}}{${4:IDL1}}{${5:width2}}{${6:color2}}{${7:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"makebackgroundframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makebackgroundframe{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"makebackgroundframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makebackgroundframe[${2:pages}]{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"insertvrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"insertvrule{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertvrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"insertvrule[${5:ytop}]{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"insertvrule\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"insertvrule[${5:ytop}][${6:ybottom}]{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ffcolumnseprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffvrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ffvrule{${1:offset}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"inserthrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"inserthrule{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inserthrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"inserthrule[${5:xleft}]{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"inserthrule\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"inserthrule[${5:xleft}][${6:xright}]{${1:type1%keyvals}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\",\n        \"keys\": [\n          \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ffhrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ffhrule{${1:offset}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ffruledeclarations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethumbtabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makethumbtabs{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"makethumbtabs\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"makethumbtabs{${1:height}}[${2:section type}]\"\n      }\n    },\n    {\n      \"name\": \"makethumbtabs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makethumbtabs[${2:yoffset}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"makethumbtabs\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"makethumbtabs[${2:yoffset}]{${1:height}}[${3:section type}]\"\n      }\n    },\n    {\n      \"name\": \"thumbtabwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbtabindex\"\n    },\n    {\n      \"name\": \"enablethumbtabs\"\n    },\n    {\n      \"name\": \"disablethumbtabs\"\n    },\n    {\n      \"name\": \"tocandthumbtabindex\"\n    },\n    {\n      \"name\": \"thumbtabindexformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"thumbtabindexformat{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"thumbtabformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thumbtabformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setthumbtab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setthumbtab{${1:n}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setthumbtabindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setthumbtabindex{${1:n}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"themaxthumbtabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enableminitoc\"\n    },\n    {\n      \"name\": \"enableminitoc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"enableminitoc[${1:section type}]\"\n      }\n    },\n    {\n      \"name\": \"appenddfminitoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appenddfminitoc{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"appenddfminitoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appenddfminitoc*{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"minitocstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minitocstyle{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"beforeminitocskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterminitocskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setffdraftcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setffdrafttypeblockcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fflabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fflabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowframesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowframerule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdfparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vcolumnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelflowidn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelflowidn{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"labelflow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelflow{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"themaxflow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethisframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedisplayedframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxstatic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxdynamic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsolutepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjustheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"adjustcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aligntocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aligntoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkifframeabove*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeabove*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframeabove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeabove{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframebelow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframebelow*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframebelow{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframeleft*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeleft*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframeleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeleft{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframeright*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeright*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"checkifframeright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkifframeright{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"defaultthumbtabtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dfcontinuedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dfcontinuedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dominitoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dominitoc{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicframeevenx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicframeevenx{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicframeeveny\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicframeeveny{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicframex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicframex{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dynamicframey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dynamicframey{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeabove*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeabove*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeabove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeabove{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframebelow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframebelow*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframebelow{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeleft*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeleft*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeleft{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeright*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeright*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"evencheckifframeright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evencheckifframeright{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"ffaddtoadjustframeshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ffaddtoadjustframeshook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ffpshpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finishthispage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFabovefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFabovetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFbelowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFbelowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFlefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFrightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FLFrighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowframecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowframeevenx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframeevenx{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowframeeveny\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframeeveny{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowframeheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframeheight{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowframetextcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flowframewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframewidth{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowframex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframex{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"flowframey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flowframey{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getdynamicevenbounds*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdynamicevenbounds*{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getdynamicevenbounds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getdynamicevenbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getflowevenbounds*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getflowevenbounds*{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getflowevenbounds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getflowevenbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getstaticevenbounds*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstaticevenbounds*{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"getstaticevenbounds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstaticevenbounds{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"globalnormalmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalreversemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifaligntoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdfcontinued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFLFabove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFLFbelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFLFleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFLFright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifusedframebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"newframe[${6:pages}]{${1:type}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"newframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newframe{${1:type}}{${2:width}}{${3:height}}{${4:x}}{${5:y}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeabove*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeabove*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeabove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeabove{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframebelow*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframebelow*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframebelow{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeleft*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeleft*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeleft{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeright*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeright*{${1:type1}}{${2:IDL1}}{${3:type2}}{${4:IDL2}}\"\n      }\n    },\n    {\n      \"name\": \"oddcheckifframeright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"oddcheckifframeright{${1:type1}}{${2:IDN1}}{${3:type2}}{${4:IDN2}}\"\n      }\n    },\n    {\n      \"name\": \"rotateframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotateframe{${1:angle}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setinitialframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinitialframe{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"setmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"staticframeevenx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticframeevenx{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"staticframeeveny\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticframeeveny{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"staticframex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticframex{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"staticframey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"staticframey{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"theminitoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocandhumbtabindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedframebreakfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedframebreaktrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"staticfigure\"\n    },\n    {\n      \"name\": \"statictable\"\n    },\n    {\n      \"name\": \"staticcontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"staticcontents*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:IDL}}\"\n      }\n    },\n    {\n      \"name\": \"dynamiccontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:IDN}}\"\n      }\n    },\n    {\n      \"name\": \"dynamiccontents*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:IDL}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/flowfram#c\": [\n      \"pages=${1|relative,absolute|}\",\n      \"draft\",\n      \"final\",\n      \"thumbtabs=${1|title,number,both,none|}\",\n      \"LR\",\n      \"RL\",\n      \"rotate\",\n      \"color\",\n      \"verbose\"\n    ],\n    \"\\\\setflowframe,\\\\setflowframe*,\\\\setallflowframes,\\\\setstaticframe,\\\\setstaticframe*,\\\\setallstaticframes,\\\\setdynamicframe,\\\\setdynamicframe*,\\\\setalldynamicframes,\\\\setthumbtab,\\\\setthumbtabindex\": [\n      \"width=\",\n      \"height=\",\n      \"x=\",\n      \"y=\",\n      \"evenx=\",\n      \"eveny=\",\n      \"oddx=\",\n      \"oddy=\",\n      \"valign=${1|c,t,b|}\",\n      \"label=${1:text}\",\n      \"border=${1:frame csname}\",\n      \"offset=\",\n      \"bordercolor=\",\n      \"textcolor=\",\n      \"backcolor=\",\n      \"pages={${1:page list}}\",\n      \"excludepages={${1:page list}}\",\n      \"hide\",\n      \"hidethis\",\n      \"margin=${1|left,right,inner,outer|}\",\n      \"clear\",\n      \"style=${1:style csname}\",\n      \"angle=${1:degrees}\",\n      \"shape=${1:shape command}\"\n    ],\n    \"\\\\relativeframelocation,\\\\relativeframelocation*,\\\\onecolumntopinarea,\\\\twocolumntopinarea,\\\\Ncolumntopinarea,\\\\onecolumnbottominarea,\\\\twocolumnbottominarea,\\\\Ncolumnbottominarea,\\\\onecolumntop,\\\\twocolumntop,\\\\Ncolumntop,\\\\onecolumnbottom,\\\\twocolumnbottom,\\\\Ncolumnbottom,\\\\insertvrule,\\\\inserthrule\": [\n      \"flow\",\n      \"static\",\n      \"dynamic\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/flowfram#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fltpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"varioref\",\n      \"if\": \"varioref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"FPfigure\"\n    },\n    {\n      \"name\": \"FPtable\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fltpage#c\": [\n      \"german\",\n      \"varioref\",\n      \"closeFloats\",\n      \"leftFloats\",\n      \"rightFloats\",\n      \"CaptionAfterwards\",\n      \"CaptionBefore\",\n      \"draft\",\n      \"oneside\",\n      \"twoside\",\n      \"noSeparatorLine\",\n      \"noHints\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fltpage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fltpoint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fpAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpAdd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"fpSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpSub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpMul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"fpDiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpDiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"fpNeg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpNeg{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"fpAbs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpAbs{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"fpRound\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpRound{${1:cmd}}{${2:number}}{${3:precision}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegSet{${1:reg-name}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegGet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegGet{${1:reg-name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegAdd{${1:reg-name1}}{${2:reg-name2}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegSub{${1:reg-name1}}{${2:reg-name2}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegMul{${1:reg-name1}}{${2:reg-name2}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegDiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegDiv{${1:reg-name1}}{${2:reg-name2}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpRegAbs{${1:reg-name}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegNeg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpRegNeg{${1:reg-name}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegRound{${1:reg name}}{${2:precision}}\"\n      }\n    },\n    {\n      \"name\": \"fpRegCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpRegCopy{${1:reg-name1}}{${2:reg-name2}}\"\n      }\n    },\n    {\n      \"name\": \"fpAccuracy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpAccuracy{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fpDecimalSign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpDecimalSign{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"fpThousandSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpThousandSep{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"iloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"irepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xnext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fltpoint#c\": [\n      \"comma\",\n      \"point\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fltpoint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fltrace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tracefloats\"\n    },\n    {\n      \"name\": \"tracefloatsoff\"\n    },\n    {\n      \"name\": \"tracefloatvals\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/flushend.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"raggedend\"\n    },\n    {\n      \"name\": \"flushcolsend\"\n    },\n    {\n      \"name\": \"raggedcolsend\"\n    },\n    {\n      \"name\": \"atColsBreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atColsBreak{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"atColsEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atColsEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"showcolsendrule\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/flushend#c\": [\n      \"spread\",\n      \"nospread\",\n      \"lspread\",\n      \"nolspread\",\n      \"rspread\",\n      \"norspread\",\n      \"shrink\",\n      \"noshrink\",\n      \"lshrink\",\n      \"nolshrink\",\n      \"rshrink\",\n      \"norshrink\",\n      \"checkfootnote\",\n      \"nocheckfootnote\",\n      \"checkfloat\",\n      \"nocheckfloat\",\n      \"debug\",\n      \"nodebug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/flushend#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fmp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fmpfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpfigure{${1:IDstring}}\"\n      }\n    },\n    {\n      \"name\": \"fmpfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fmpfigure[${2:options%keyvals}]{${1:IDstring}}\",\n        \"keys\": [\n          \"\\\\fmpfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fmpsourcefilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpsourcefilename{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"fmpscriptfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpscriptfilename{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"fmpfigurebasename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpfigurebasename{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"fmpsourcepreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpsourcepreamble{${1:preamble%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpaddtosourcepreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpaddtosourcepreamble{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpscriptpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpscriptpreamble{${1:preamble%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpaddtoscriptpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpaddtoscriptpreamble{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpsourcepostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpsourcepostamble{${1:preamble%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpaddtosourcepostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpaddtosourcepostamble{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpscriptpostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpscriptpostamble{${1:preamble%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fmpaddtoscriptpostamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmpaddtoscriptpostamble{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"thefmpfigure\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fmp\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fmp#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\fmpfigure\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fmp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fmtcount.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fcprefix\"\n    },\n    {\n      \"name\": \"amsgen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordinal\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ordinal{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"FCordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FCordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"FCordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"FCordinal{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"fmtord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmtord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ordinalnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"numberstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"numberstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"numberstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"Numberstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numberstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Numberstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Numberstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"NUMBERstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NUMBERstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NUMBERstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NUMBERstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"numberstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numberstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"numberstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"Numberstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numberstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numberstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Numberstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"NUMBERstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NUMBERstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NUMBERstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NUMBERstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"ordinalstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinalstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ordinalstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"Ordinalstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordinalstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordinalstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ordinalstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"ORDINALstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORDINALstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ORDINALstring\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ORDINALstring{${1:counter}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"ordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinalstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ordinalstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"Ordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordinalstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ordinalstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"ORDINALstringnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORDINALstringnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ORDINALstringnum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ORDINALstringnum{${1:number}}[${2:gender}]\"\n      }\n    },\n    {\n      \"name\": \"FMCuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FMCuse{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"storeordinal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeordinal{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeordinal\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeordinal{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeordinalstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeordinalstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeordinalstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeordinalstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeOrdinalstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeOrdinalstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeOrdinalstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeOrdinalstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeORDINALstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeORDINALstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeORDINALstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeORDINALstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storenumberstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storenumberstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storenumberstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storenumberstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeNumberstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeNumberstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeNumberstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeNumberstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeNUMBERstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeNUMBERstring{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"storeNUMBERstring\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeNUMBERstring{${1:label}}{${2:counter}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeordinalnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeordinalnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeordinalnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeordinalnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeordinalstringnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeordinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeordinalstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeOrdinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeOrdinalstringnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeOrdinalstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeOrdinalstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeORDINALstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeORDINALstringnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeORDINALstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeORDINALstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storenumberstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storenumberstring{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storenumberstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storenumberstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeNumberstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeNumberstringnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeNumberstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeNumberstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"storeNUMBERstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storeNUMBERstringnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"storeNUMBERstringnum\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"storeNUMBERstringnum{${1:label}}{${2:number}}[${3:gender}]\"\n      }\n    },\n    {\n      \"name\": \"binary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binary{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"padzeroes\"\n    },\n    {\n      \"name\": \"padzeroes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"padzeroes[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"binarynum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binarynum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"octal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"octalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hexadecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexadecimal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"HEXADecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HEXADecimal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hexadecimalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexadecimalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"HEXADecimalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HEXADecimalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"decimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decimal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"decimalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decimalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aaalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aaalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"AAAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"aaalphnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aaalphnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AAAlphnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AAAlphnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"abalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ABAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"abalphnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abalphnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ABAlphnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABAlphnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fmtcountsetoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmtcountsetoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\fmtcountsetoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FCloadlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FCloadlang{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\FCloadlang#c,\\\\usepackage/fmtcount#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvidesFCLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesFCLanguage{${1:language}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fmtcount#c\": [\n      \"${1:dialect}\",\n      \"raise\",\n      \"level\"\n    ],\n    \"\\\\fmtcountsetoptions#c\": [\n      \"fmtord=${1|level,raise|}\",\n      \"english={${1:options}}\",\n      \"UKenglish={${1:options}}\",\n      \"brazilian={${1:options}}\",\n      \"british={${1:options}}\",\n      \"USenglish={${1:options}}\",\n      \"american={${1:options}}\",\n      \"spanish={${1:options}}\",\n      \"portuges={${1:options}}\",\n      \"portuguese={${1:options}}\",\n      \"french={${1:options}}\",\n      \"frenchb={${1:options}}\",\n      \"francais={${1:options}}\",\n      \"german={${1:options}}\",\n      \"germanb={${1:options}}\",\n      \"ngerman={${1:options}}\",\n      \"ngermanb={${1:options}}\",\n      \"italian={${1:options}}\",\n      \"abbr\"\n    ],\n    \"\\\\FCloadlang#c,\\\\usepackage/fmtcount#c\": [\n      \"english\",\n      \"UKenglish\",\n      \"brazilian\",\n      \"british\",\n      \"USenglish\",\n      \"american\",\n      \"spanish\",\n      \"portuges\",\n      \"portuguese\",\n      \"french\",\n      \"frenchb\",\n      \"francais\",\n      \"german\",\n      \"germanb\",\n      \"ngerman\",\n      \"ngermanb\",\n      \"italian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fmtcount#c\",\n    \"\\\\FCloadlang#c,\\\\usepackage/fmtcount#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fnbreak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fnbreaklabel\"\n    },\n    {\n      \"name\": \"fnbreaknolabel\"\n    },\n    {\n      \"name\": \"fnbreaknonverbose\"\n    },\n    {\n      \"name\": \"fnbreakverbose\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fnbreak#c\": [\n      \"label\",\n      \"nolabel\",\n      \"verbose\",\n      \"nonverbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fnbreak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fncychap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"Bjornstrup\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mghrulefill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mghrulefill{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ChNameUpperCase\"\n    },\n    {\n      \"name\": \"ChNameLowerCase\"\n    },\n    {\n      \"name\": \"ChNameAsIs\"\n    },\n    {\n      \"name\": \"ChTitleUpperCase\"\n    },\n    {\n      \"name\": \"ChTitleLowerCase\"\n    },\n    {\n      \"name\": \"ChTitleAsIs\"\n    },\n    {\n      \"name\": \"ChRuleWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChRuleWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ChNameVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChNameVar{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ChNumVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChNumVar{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ChTitleVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChTitleVar{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"TheAlphaChapter\"\n    },\n    {\n      \"name\": \"DOCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DOTI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOTI{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DOTIS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DOTIS{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mylen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"px\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"py\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pyy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CNV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CNoV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CTV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FmN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FmN{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FmTi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FmTi{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bl\",\n      \"if\": \"PetersLenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BL\",\n      \"if\": \"PetersLenny\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BL{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"br\",\n      \"if\": \"PetersLenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BR\",\n      \"if\": \"PetersLenny\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BR{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tl\",\n      \"if\": \"PetersLenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TL\",\n      \"if\": \"PetersLenny\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TL{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trr\",\n      \"if\": \"PetersLenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TR\",\n      \"if\": \"PetersLenny\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"blrule\",\n      \"if\": \"PetersLenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BLrule\",\n      \"if\": \"PetersLenny\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BLrule{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"backskip\",\n      \"if\": \"Glenn\"\n    },\n    {\n      \"name\": \"AlphaDecNo\",\n      \"if\": \"Bjarne\"\n    },\n    {\n      \"name\": \"AlphaNo\",\n      \"if\": \"Bjarne\"\n    },\n    {\n      \"name\": \"theAlphaCnt\",\n      \"if\": \"Bjarne\"\n    },\n    {\n      \"name\": \"theAlphaDecCnt\",\n      \"if\": \"Bjarne\"\n    },\n    {\n      \"name\": \"ifusecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usecolortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usecolorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifUCN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCNtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCNfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLCN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LCNtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LCNfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinapp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inapptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inappfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifUCT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCTtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCTfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLCT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LCTtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LCTfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fncychap#c\": [\n      \"Sonny\",\n      \"Lenny\",\n      \"PetersLenny\",\n      \"Bjornstrup\",\n      \"Glenn\",\n      \"Conny\",\n      \"Rejne\",\n      \"Bjarne\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fncychap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fnlineno.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"finstrut\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TheLineNoLaTeXOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GStoreReg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GStoreReg{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreReg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreReg{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"GRestoreReg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GRestoreReg{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"GStoreSetReg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GStoreSetReg{${1:register}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"GStoreGSetReg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GStoreGSetReg{${1:register}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SwapFootnoteMain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertFootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unsetfootnotelinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GStoreUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GStoreUse{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"setgetfootnotelinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFootnoteLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfootnotelinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFootnoteLineNumber\"\n    },\n    {\n      \"name\": \"setgetpagewiselinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unsetfootnotelinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theWiseLineNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theWiseLineNumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getwiselinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getwiselinenumber{${1:choice}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"getfootnotelinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfootnotelinenumber{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fnlineno#c\": [\n      \"check-latex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fnlineno#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fnpct.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnote*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemark*[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setfnpct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfnpct{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfnpct\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootnote\",\n      \"if\": \"multiple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multfootnote{${1:fn1;fn2;...}}\"\n      }\n    },\n    {\n      \"name\": \"multfootnote*\",\n      \"if\": \"multiple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multfootnote*{${1:fn1;fn2;...}}\"\n      }\n    },\n    {\n      \"name\": \"AdaptNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdaptNote{${1:cmd}}{${2:args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AdaptNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"AdaptNote{${1:cmd}}{${2:args}}[${4:counter}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AdaptNoteName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AdaptNoteName{${1:csname}}{${2:args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AdaptNoteName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"AdaptNoteName{${1:csname}}{${2:args}}[${4:counter}]{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"MultVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MultVariant{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MultVariantName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MultVariantName{${1:csname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setfnpct\": [\n      \"dont-mess-around\",\n      \"reverse\",\n      \"unspace\",\n      \"ranges\",\n      \"add-trailing-token={${1:token}{${2:name}}}\",\n      \"add-trailing-token={[${1:before}]${2:token}[${3:after}]{${4:name}}}\",\n      \"activate-trailing-tokens={${1:tokenlist}}\",\n      \"deactivate-trailing-tokens={${1:tokenlist}}\",\n      \"before-footnote-space=\",\n      \"before-dot-space=\",\n      \"before-comma-space=\",\n      \"before-punct-space=\",\n      \"after-dot-space=\",\n      \"after-comma-space=\",\n      \"after-punct-space=\",\n      \"mult-variant-prefix={${1:letters}}\",\n      \"mult-fn-delim={${1:code}}\",\n      \"separation-symbol=${1:symbol}\",\n      \"range-symbol=${1:symbol}\",\n      \"print-separation={${1:code}}\",\n      \"print-range={${1:code}}\",\n      \"keep-ranges\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fnpos.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"makeFNabove\"\n    },\n    {\n      \"name\": \"makeFNbelow\"\n    },\n    {\n      \"name\": \"makeFNbottom\"\n    },\n    {\n      \"name\": \"makeFNmid\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fnspe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"physics\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"substr\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mat{${1:letter%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tder{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"tder\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tder[${3:order}]{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"oi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oi{${1:left%formula}}{${2:right%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ci\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ci{${1:left%formula}}{${2:right%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rci\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rci{${1:left%formula}}{${2:right%formula}}\"\n      }\n    },\n    {\n      \"name\": \"lci\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lci{${1:left%formula}}{${2:right%formula}}\"\n      }\n    },\n    {\n      \"name\": \"dif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dif{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hlf\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"hem\"\n    },\n    {\n      \"name\": \"hem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hem[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"htwoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oover{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"realn\"\n    },\n    {\n      \"name\": \"compn\"\n    },\n    {\n      \"name\": \"inte\"\n    },\n    {\n      \"name\": \"ratin\"\n    },\n    {\n      \"name\": \"natun\"\n    },\n    {\n      \"name\": \"nnzero\"\n    },\n    {\n      \"name\": \"impem\"\n    },\n    {\n      \"name\": \"rot\"\n    },\n    {\n      \"name\": \"lapl\"\n    },\n    {\n      \"name\": \"varun\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"varun{${1:var%formula}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"expv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"df\"\n    },\n    {\n      \"name\": \"allset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allset{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"allsetzero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allsetzero{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"cclass\"\n    },\n    {\n      \"name\": \"ccof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccof{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"ccinf\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fnspe#c\": [\n      \"isointerval\",\n      \"isoointerval\",\n      \"fnspeinterval\",\n      \"isotensor\",\n      \"undertensor\",\n      \"arrowtensor\",\n      \"oldcomplex\",\n      \"isocomplex\",\n      \"deftext\",\n      \"defcolon\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fnspe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fnumprint.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"zahl2string\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"zahl2string\",\n      \"if\": \"ngerman\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fnumprintc\",\n      \"if\": \"german\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnumprintc[${2:eins}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"fnumprint\",\n      \"if\": \"german\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnumprint[${2:eins}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fnumprintc\",\n      \"if\": \"ngerman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnumprintc[${2:eins}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"fnumprint\",\n      \"if\": \"ngerman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnumprint[${2:eins}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fnumprintc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnumprintc{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"fnumprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnumprint{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fnumprint#c\": [\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"USenglish\",\n      \"american\",\n      \"UKenglish\",\n      \"british\",\n      \"canadian\",\n      \"australian\",\n      \"newzealand\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fnumprint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/foekfont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"foekfamily\"\n    },\n    {\n      \"name\": \"foek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"madsfoek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/foliono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"folionumber\"\n    },\n    {\n      \"name\": \"folionoquirefolios\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionoquirefolios{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"stepfolio\"\n    },\n    {\n      \"name\": \"setfoliono\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfoliono{${1:quire-num}}{${2:folio-num}}\"\n      }\n    },\n    {\n      \"name\": \"currentfolio\"\n    },\n    {\n      \"name\": \"currentfoliowithsides\"\n    },\n    {\n      \"name\": \"currentfoliowithstyles\"\n    },\n    {\n      \"name\": \"folionostyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quirenostyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"folionofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionofont{${1:fontname}}\"\n      }\n    },\n    {\n      \"name\": \"folionofontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionofontsize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"foliofontcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foliofontcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"quirenoprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quirenoprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quirenosuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quirenosuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"folionoprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionoprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"folionosuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionosuffix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"folionoseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionoseparator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"folionolabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionolabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"folionolabelwithstyles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionolabelwithstyles{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"folionoindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionoindex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"folionoindexwithstyles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"folionoindexwithstyles{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/foliono#c\": [\n      \"AllQuires\",\n      \"ArabicNumbers\",\n      \"LowerCase\",\n      \"NoQuires\",\n      \"OnlyQuire\",\n      \"SheetNumbers\",\n      \"ShowSides\",\n      \"SkipFirst\",\n      \"SkipEnd\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/foliono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fonetika.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fonetikashape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fonetikafamily\"\n    },\n    {\n      \"name\": \"fonetikasansfamily\"\n    },\n    {\n      \"name\": \"fonetikaseriffamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fonetika#c\": [\n      \"sans\",\n      \"serif\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fonetika#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontawesome.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"faicon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faicon{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\faicon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"faBattery\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faBattery[${1:0/1/2/3/4}]\"\n      }\n    },\n    {\n      \"name\": \"faHourglass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHourglass[${1:1/2/3}]\"\n      }\n    },\n    {\n      \"name\": \"fa500Px\"\n    },\n    {\n      \"name\": \"faCss3\"\n    },\n    {\n      \"name\": \"faHtml5\"\n    },\n    {\n      \"name\": \"faAdjust\"\n    },\n    {\n      \"name\": \"faAdn\"\n    },\n    {\n      \"name\": \"faAlignCenter\"\n    },\n    {\n      \"name\": \"faAlignJustify\"\n    },\n    {\n      \"name\": \"faAlignLeft\"\n    },\n    {\n      \"name\": \"faAlignRight\"\n    },\n    {\n      \"name\": \"faAmazon\"\n    },\n    {\n      \"name\": \"faAmbulance\"\n    },\n    {\n      \"name\": \"faAmericanSignLanguageInterpreting\"\n    },\n    {\n      \"name\": \"faAnchor\"\n    },\n    {\n      \"name\": \"faAndroid\"\n    },\n    {\n      \"name\": \"faAngellist\"\n    },\n    {\n      \"name\": \"faAngleDoubleDown\"\n    },\n    {\n      \"name\": \"faAngleDoubleLeft\"\n    },\n    {\n      \"name\": \"faAngleDoubleRight\"\n    },\n    {\n      \"name\": \"faAngleDoubleUp\"\n    },\n    {\n      \"name\": \"faAngleDown\"\n    },\n    {\n      \"name\": \"faAngleLeft\"\n    },\n    {\n      \"name\": \"faAngleRight\"\n    },\n    {\n      \"name\": \"faAngleUp\"\n    },\n    {\n      \"name\": \"faApple\"\n    },\n    {\n      \"name\": \"faArchive\"\n    },\n    {\n      \"name\": \"faAreaChart\"\n    },\n    {\n      \"name\": \"faArrowCircleDown\"\n    },\n    {\n      \"name\": \"faArrowCircleLeft\"\n    },\n    {\n      \"name\": \"faArrowCircleODown\"\n    },\n    {\n      \"name\": \"faArrowCircleOLeft\"\n    },\n    {\n      \"name\": \"faArrowCircleORight\"\n    },\n    {\n      \"name\": \"faArrowCircleOUp\"\n    },\n    {\n      \"name\": \"faArrowCircleRight\"\n    },\n    {\n      \"name\": \"faArrowCircleUp\"\n    },\n    {\n      \"name\": \"faArrowDown\"\n    },\n    {\n      \"name\": \"faArrowLeft\"\n    },\n    {\n      \"name\": \"faArrowRight\"\n    },\n    {\n      \"name\": \"faArrowUp\"\n    },\n    {\n      \"name\": \"faArrows\"\n    },\n    {\n      \"name\": \"faArrowsAlt\"\n    },\n    {\n      \"name\": \"faArrowsH\"\n    },\n    {\n      \"name\": \"faArrowsV\"\n    },\n    {\n      \"name\": \"faAslInterpreting\"\n    },\n    {\n      \"name\": \"faAssistiveListeningSystems\"\n    },\n    {\n      \"name\": \"faAsterisk\"\n    },\n    {\n      \"name\": \"faAt\"\n    },\n    {\n      \"name\": \"faAudioDescription\"\n    },\n    {\n      \"name\": \"faAutomobile\"\n    },\n    {\n      \"name\": \"faBackward\"\n    },\n    {\n      \"name\": \"faBalanceScale\"\n    },\n    {\n      \"name\": \"faBan\"\n    },\n    {\n      \"name\": \"faBank\"\n    },\n    {\n      \"name\": \"faBarChart\"\n    },\n    {\n      \"name\": \"faBarChartO\"\n    },\n    {\n      \"name\": \"faBarcode\"\n    },\n    {\n      \"name\": \"faBars\"\n    },\n    {\n      \"name\": \"faBatteryEmpty\"\n    },\n    {\n      \"name\": \"faBatteryFull\"\n    },\n    {\n      \"name\": \"faBatteryHalf\"\n    },\n    {\n      \"name\": \"faBatteryQuarter\"\n    },\n    {\n      \"name\": \"faBatteryThreeQuarters\"\n    },\n    {\n      \"name\": \"faBed\"\n    },\n    {\n      \"name\": \"faBeer\"\n    },\n    {\n      \"name\": \"faBehance\"\n    },\n    {\n      \"name\": \"faBehanceSquare\"\n    },\n    {\n      \"name\": \"faBell\"\n    },\n    {\n      \"name\": \"faBellO\"\n    },\n    {\n      \"name\": \"faBellSlash\"\n    },\n    {\n      \"name\": \"faBellSlashO\"\n    },\n    {\n      \"name\": \"faBicycle\"\n    },\n    {\n      \"name\": \"faBinoculars\"\n    },\n    {\n      \"name\": \"faBirthdayCake\"\n    },\n    {\n      \"name\": \"faBitbucket\"\n    },\n    {\n      \"name\": \"faBitbucketSquare\"\n    },\n    {\n      \"name\": \"faBitcoin\"\n    },\n    {\n      \"name\": \"faBlackTie\"\n    },\n    {\n      \"name\": \"faBlind\"\n    },\n    {\n      \"name\": \"faBluetooth\"\n    },\n    {\n      \"name\": \"faBluetoothB\"\n    },\n    {\n      \"name\": \"faBold\"\n    },\n    {\n      \"name\": \"faBolt\"\n    },\n    {\n      \"name\": \"faBomb\"\n    },\n    {\n      \"name\": \"faBook\"\n    },\n    {\n      \"name\": \"faBookmark\"\n    },\n    {\n      \"name\": \"faBookmarkO\"\n    },\n    {\n      \"name\": \"faBraille\"\n    },\n    {\n      \"name\": \"faBriefcase\"\n    },\n    {\n      \"name\": \"faBtc\"\n    },\n    {\n      \"name\": \"faBug\"\n    },\n    {\n      \"name\": \"faBuilding\"\n    },\n    {\n      \"name\": \"faBuildingO\"\n    },\n    {\n      \"name\": \"faBullhorn\"\n    },\n    {\n      \"name\": \"faBullseye\"\n    },\n    {\n      \"name\": \"faBus\"\n    },\n    {\n      \"name\": \"faBuysellads\"\n    },\n    {\n      \"name\": \"faCab\"\n    },\n    {\n      \"name\": \"faCalculator\"\n    },\n    {\n      \"name\": \"faCalendar\"\n    },\n    {\n      \"name\": \"faCalendarCheckO\"\n    },\n    {\n      \"name\": \"faCalendarMinusO\"\n    },\n    {\n      \"name\": \"faCalendarO\"\n    },\n    {\n      \"name\": \"faCalendarPlusO\"\n    },\n    {\n      \"name\": \"faCalendarTimesO\"\n    },\n    {\n      \"name\": \"faCamera\"\n    },\n    {\n      \"name\": \"faCameraRetro\"\n    },\n    {\n      \"name\": \"faCar\"\n    },\n    {\n      \"name\": \"faCaretDown\"\n    },\n    {\n      \"name\": \"faCaretLeft\"\n    },\n    {\n      \"name\": \"faCaretRight\"\n    },\n    {\n      \"name\": \"faCaretSquareODown\"\n    },\n    {\n      \"name\": \"faCaretSquareOLeft\"\n    },\n    {\n      \"name\": \"faCaretSquareORight\"\n    },\n    {\n      \"name\": \"faCaretSquareOUp\"\n    },\n    {\n      \"name\": \"faCaretUp\"\n    },\n    {\n      \"name\": \"faCartArrowDown\"\n    },\n    {\n      \"name\": \"faCartPlus\"\n    },\n    {\n      \"name\": \"faCc\"\n    },\n    {\n      \"name\": \"faCcAmex\"\n    },\n    {\n      \"name\": \"faCcDinersClub\"\n    },\n    {\n      \"name\": \"faCcDiscover\"\n    },\n    {\n      \"name\": \"faCcJcb\"\n    },\n    {\n      \"name\": \"faCcMastercard\"\n    },\n    {\n      \"name\": \"faCcPaypal\"\n    },\n    {\n      \"name\": \"faCcStripe\"\n    },\n    {\n      \"name\": \"faCcVisa\"\n    },\n    {\n      \"name\": \"faCertificate\"\n    },\n    {\n      \"name\": \"faChain\"\n    },\n    {\n      \"name\": \"faChainBroken\"\n    },\n    {\n      \"name\": \"faCheck\"\n    },\n    {\n      \"name\": \"faCheckCircle\"\n    },\n    {\n      \"name\": \"faCheckCircleO\"\n    },\n    {\n      \"name\": \"faCheckSquare\"\n    },\n    {\n      \"name\": \"faCheckSquareO\"\n    },\n    {\n      \"name\": \"faChevronCircleDown\"\n    },\n    {\n      \"name\": \"faChevronCircleLeft\"\n    },\n    {\n      \"name\": \"faChevronCircleRight\"\n    },\n    {\n      \"name\": \"faChevronCircleUp\"\n    },\n    {\n      \"name\": \"faChevronDown\"\n    },\n    {\n      \"name\": \"faChevronLeft\"\n    },\n    {\n      \"name\": \"faChevronRight\"\n    },\n    {\n      \"name\": \"faChevronUp\"\n    },\n    {\n      \"name\": \"faChild\"\n    },\n    {\n      \"name\": \"faChrome\"\n    },\n    {\n      \"name\": \"faCircle\"\n    },\n    {\n      \"name\": \"faCircleO\"\n    },\n    {\n      \"name\": \"faCircleONotch\"\n    },\n    {\n      \"name\": \"faCircleThin\"\n    },\n    {\n      \"name\": \"faClipboard\"\n    },\n    {\n      \"name\": \"faClockO\"\n    },\n    {\n      \"name\": \"faClone\"\n    },\n    {\n      \"name\": \"faClose\"\n    },\n    {\n      \"name\": \"faCloud\"\n    },\n    {\n      \"name\": \"faCloudDownload\"\n    },\n    {\n      \"name\": \"faCloudUpload\"\n    },\n    {\n      \"name\": \"faCny\"\n    },\n    {\n      \"name\": \"faCode\"\n    },\n    {\n      \"name\": \"faCodeFork\"\n    },\n    {\n      \"name\": \"faCodepen\"\n    },\n    {\n      \"name\": \"faCodiepie\"\n    },\n    {\n      \"name\": \"faCoffee\"\n    },\n    {\n      \"name\": \"faCog\"\n    },\n    {\n      \"name\": \"faCogs\"\n    },\n    {\n      \"name\": \"faColumns\"\n    },\n    {\n      \"name\": \"faComment\"\n    },\n    {\n      \"name\": \"faCommentO\"\n    },\n    {\n      \"name\": \"faCommenting\"\n    },\n    {\n      \"name\": \"faCommentingO\"\n    },\n    {\n      \"name\": \"faComments\"\n    },\n    {\n      \"name\": \"faCommentsO\"\n    },\n    {\n      \"name\": \"faCompass\"\n    },\n    {\n      \"name\": \"faCompress\"\n    },\n    {\n      \"name\": \"faConnectdevelop\"\n    },\n    {\n      \"name\": \"faContao\"\n    },\n    {\n      \"name\": \"faCopy\"\n    },\n    {\n      \"name\": \"faCopyright\"\n    },\n    {\n      \"name\": \"faCreativeCommons\"\n    },\n    {\n      \"name\": \"faCreditCard\"\n    },\n    {\n      \"name\": \"faCreditCardAlt\"\n    },\n    {\n      \"name\": \"faCrop\"\n    },\n    {\n      \"name\": \"faCrosshairs\"\n    },\n    {\n      \"name\": \"faCube\"\n    },\n    {\n      \"name\": \"faCubes\"\n    },\n    {\n      \"name\": \"faCut\"\n    },\n    {\n      \"name\": \"faCutlery\"\n    },\n    {\n      \"name\": \"faDashboard\"\n    },\n    {\n      \"name\": \"faDashcube\"\n    },\n    {\n      \"name\": \"faDatabase\"\n    },\n    {\n      \"name\": \"faDeaf\"\n    },\n    {\n      \"name\": \"faDeafness\"\n    },\n    {\n      \"name\": \"faDedent\"\n    },\n    {\n      \"name\": \"faDelicious\"\n    },\n    {\n      \"name\": \"faDesktop\"\n    },\n    {\n      \"name\": \"faDeviantart\"\n    },\n    {\n      \"name\": \"faDiamond\"\n    },\n    {\n      \"name\": \"faDigg\"\n    },\n    {\n      \"name\": \"faDollar\"\n    },\n    {\n      \"name\": \"faDotCircleO\"\n    },\n    {\n      \"name\": \"faDownload\"\n    },\n    {\n      \"name\": \"faDribbble\"\n    },\n    {\n      \"name\": \"faDropbox\"\n    },\n    {\n      \"name\": \"faDrupal\"\n    },\n    {\n      \"name\": \"faEdge\"\n    },\n    {\n      \"name\": \"faEdit\"\n    },\n    {\n      \"name\": \"faEject\"\n    },\n    {\n      \"name\": \"faEllipsisH\"\n    },\n    {\n      \"name\": \"faEllipsisV\"\n    },\n    {\n      \"name\": \"faEmpire\"\n    },\n    {\n      \"name\": \"faEnvelope\"\n    },\n    {\n      \"name\": \"faEnvelopeO\"\n    },\n    {\n      \"name\": \"faEnvelopeSquare\"\n    },\n    {\n      \"name\": \"faEnvira\"\n    },\n    {\n      \"name\": \"faEraser\"\n    },\n    {\n      \"name\": \"faEur\"\n    },\n    {\n      \"name\": \"faEuro\"\n    },\n    {\n      \"name\": \"faExchange\"\n    },\n    {\n      \"name\": \"faExclamation\"\n    },\n    {\n      \"name\": \"faExclamationCircle\"\n    },\n    {\n      \"name\": \"faExclamationTriangle\"\n    },\n    {\n      \"name\": \"faExpand\"\n    },\n    {\n      \"name\": \"faExpeditedssl\"\n    },\n    {\n      \"name\": \"faExternalLink\"\n    },\n    {\n      \"name\": \"faExternalLinkSquare\"\n    },\n    {\n      \"name\": \"faEye\"\n    },\n    {\n      \"name\": \"faEyeSlash\"\n    },\n    {\n      \"name\": \"faEyedropper\"\n    },\n    {\n      \"name\": \"faFa\"\n    },\n    {\n      \"name\": \"faFacebook\"\n    },\n    {\n      \"name\": \"faFacebookF\"\n    },\n    {\n      \"name\": \"faFacebookOfficial\"\n    },\n    {\n      \"name\": \"faFacebookSquare\"\n    },\n    {\n      \"name\": \"faFastBackward\"\n    },\n    {\n      \"name\": \"faFastForward\"\n    },\n    {\n      \"name\": \"faFax\"\n    },\n    {\n      \"name\": \"faFeed\"\n    },\n    {\n      \"name\": \"faFemale\"\n    },\n    {\n      \"name\": \"faFighterJet\"\n    },\n    {\n      \"name\": \"faFile\"\n    },\n    {\n      \"name\": \"faFileArchiveO\"\n    },\n    {\n      \"name\": \"faFileAudioO\"\n    },\n    {\n      \"name\": \"faFileCodeO\"\n    },\n    {\n      \"name\": \"faFileExcelO\"\n    },\n    {\n      \"name\": \"faFileImageO\"\n    },\n    {\n      \"name\": \"faFileMovieO\"\n    },\n    {\n      \"name\": \"faFileO\"\n    },\n    {\n      \"name\": \"faFilePdfO\"\n    },\n    {\n      \"name\": \"faFilePhotoO\"\n    },\n    {\n      \"name\": \"faFilePictureO\"\n    },\n    {\n      \"name\": \"faFilePowerpointO\"\n    },\n    {\n      \"name\": \"faFileSoundO\"\n    },\n    {\n      \"name\": \"faFileText\"\n    },\n    {\n      \"name\": \"faFileTextO\"\n    },\n    {\n      \"name\": \"faFileVideoO\"\n    },\n    {\n      \"name\": \"faFileWordO\"\n    },\n    {\n      \"name\": \"faFileZipO\"\n    },\n    {\n      \"name\": \"faFilesO\"\n    },\n    {\n      \"name\": \"faFilm\"\n    },\n    {\n      \"name\": \"faFilter\"\n    },\n    {\n      \"name\": \"faFire\"\n    },\n    {\n      \"name\": \"faFireExtinguisher\"\n    },\n    {\n      \"name\": \"faFirefox\"\n    },\n    {\n      \"name\": \"faFirstOrder\"\n    },\n    {\n      \"name\": \"faFlag\"\n    },\n    {\n      \"name\": \"faFlagCheckered\"\n    },\n    {\n      \"name\": \"faFlagO\"\n    },\n    {\n      \"name\": \"faFlash\"\n    },\n    {\n      \"name\": \"faFlask\"\n    },\n    {\n      \"name\": \"faFlickr\"\n    },\n    {\n      \"name\": \"faFloppyO\"\n    },\n    {\n      \"name\": \"faFolder\"\n    },\n    {\n      \"name\": \"faFolderO\"\n    },\n    {\n      \"name\": \"faFolderOpen\"\n    },\n    {\n      \"name\": \"faFolderOpenO\"\n    },\n    {\n      \"name\": \"faFont\"\n    },\n    {\n      \"name\": \"faFontAwesome\"\n    },\n    {\n      \"name\": \"faFonticons\"\n    },\n    {\n      \"name\": \"faFortAwesome\"\n    },\n    {\n      \"name\": \"faForumbee\"\n    },\n    {\n      \"name\": \"faForward\"\n    },\n    {\n      \"name\": \"faFoursquare\"\n    },\n    {\n      \"name\": \"faFrownO\"\n    },\n    {\n      \"name\": \"faFutbolO\"\n    },\n    {\n      \"name\": \"faGamepad\"\n    },\n    {\n      \"name\": \"faGavel\"\n    },\n    {\n      \"name\": \"faGbp\"\n    },\n    {\n      \"name\": \"faGe\"\n    },\n    {\n      \"name\": \"faGear\"\n    },\n    {\n      \"name\": \"faGears\"\n    },\n    {\n      \"name\": \"faGenderless\"\n    },\n    {\n      \"name\": \"faGetPocket\"\n    },\n    {\n      \"name\": \"faGg\"\n    },\n    {\n      \"name\": \"faGgCircle\"\n    },\n    {\n      \"name\": \"faGift\"\n    },\n    {\n      \"name\": \"faGit\"\n    },\n    {\n      \"name\": \"faGitSquare\"\n    },\n    {\n      \"name\": \"faGithub\"\n    },\n    {\n      \"name\": \"faGithubAlt\"\n    },\n    {\n      \"name\": \"faGithubSquare\"\n    },\n    {\n      \"name\": \"faGitlab\"\n    },\n    {\n      \"name\": \"faGittip\"\n    },\n    {\n      \"name\": \"faGlass\"\n    },\n    {\n      \"name\": \"faGlide\"\n    },\n    {\n      \"name\": \"faGlideG\"\n    },\n    {\n      \"name\": \"faGlobe\"\n    },\n    {\n      \"name\": \"faGoogle\"\n    },\n    {\n      \"name\": \"faGooglePlus\"\n    },\n    {\n      \"name\": \"faGooglePlusCircle\"\n    },\n    {\n      \"name\": \"faGooglePlusOfficial\"\n    },\n    {\n      \"name\": \"faGooglePlusSquare\"\n    },\n    {\n      \"name\": \"faGoogleWallet\"\n    },\n    {\n      \"name\": \"faGraduationCap\"\n    },\n    {\n      \"name\": \"faGratipay\"\n    },\n    {\n      \"name\": \"faGroup\"\n    },\n    {\n      \"name\": \"faHSquare\"\n    },\n    {\n      \"name\": \"faHackerNews\"\n    },\n    {\n      \"name\": \"faHandGrabO\"\n    },\n    {\n      \"name\": \"faHandLizardO\"\n    },\n    {\n      \"name\": \"faHandODown\"\n    },\n    {\n      \"name\": \"faHandOLeft\"\n    },\n    {\n      \"name\": \"faHandORight\"\n    },\n    {\n      \"name\": \"faHandOUp\"\n    },\n    {\n      \"name\": \"faHandPaperO\"\n    },\n    {\n      \"name\": \"faHandPeaceO\"\n    },\n    {\n      \"name\": \"faHandPointerO\"\n    },\n    {\n      \"name\": \"faHandRockO\"\n    },\n    {\n      \"name\": \"faHandScissorsO\"\n    },\n    {\n      \"name\": \"faHandSpockO\"\n    },\n    {\n      \"name\": \"faHandStopO\"\n    },\n    {\n      \"name\": \"faHardOfHearing\"\n    },\n    {\n      \"name\": \"faHashtag\"\n    },\n    {\n      \"name\": \"faHddO\"\n    },\n    {\n      \"name\": \"faHeader\"\n    },\n    {\n      \"name\": \"faHeadphones\"\n    },\n    {\n      \"name\": \"faHeart\"\n    },\n    {\n      \"name\": \"faHeartO\"\n    },\n    {\n      \"name\": \"faHeartbeat\"\n    },\n    {\n      \"name\": \"faHistory\"\n    },\n    {\n      \"name\": \"faHome\"\n    },\n    {\n      \"name\": \"faHospitalO\"\n    },\n    {\n      \"name\": \"faHotel\"\n    },\n    {\n      \"name\": \"faHourglass\"\n    },\n    {\n      \"name\": \"faHourglassEnd\"\n    },\n    {\n      \"name\": \"faHourglassHalf\"\n    },\n    {\n      \"name\": \"faHourglassO\"\n    },\n    {\n      \"name\": \"faHourglassStart\"\n    },\n    {\n      \"name\": \"faHouzz\"\n    },\n    {\n      \"name\": \"faICursor\"\n    },\n    {\n      \"name\": \"faIls\"\n    },\n    {\n      \"name\": \"faImage\"\n    },\n    {\n      \"name\": \"faInbox\"\n    },\n    {\n      \"name\": \"faIndent\"\n    },\n    {\n      \"name\": \"faIndustry\"\n    },\n    {\n      \"name\": \"faInfo\"\n    },\n    {\n      \"name\": \"faInfoCircle\"\n    },\n    {\n      \"name\": \"faInr\"\n    },\n    {\n      \"name\": \"faInstagram\"\n    },\n    {\n      \"name\": \"faInstitution\"\n    },\n    {\n      \"name\": \"faInternetExplorer\"\n    },\n    {\n      \"name\": \"faIntersex\"\n    },\n    {\n      \"name\": \"faIoxhost\"\n    },\n    {\n      \"name\": \"faItalic\"\n    },\n    {\n      \"name\": \"faJoomla\"\n    },\n    {\n      \"name\": \"faJpy\"\n    },\n    {\n      \"name\": \"faJsfiddle\"\n    },\n    {\n      \"name\": \"faKey\"\n    },\n    {\n      \"name\": \"faKeyboardO\"\n    },\n    {\n      \"name\": \"faKrw\"\n    },\n    {\n      \"name\": \"faLanguage\"\n    },\n    {\n      \"name\": \"faLaptop\"\n    },\n    {\n      \"name\": \"faLastfm\"\n    },\n    {\n      \"name\": \"faLastfmSquare\"\n    },\n    {\n      \"name\": \"faLeaf\"\n    },\n    {\n      \"name\": \"faLeanpub\"\n    },\n    {\n      \"name\": \"faLegal\"\n    },\n    {\n      \"name\": \"faLemonO\"\n    },\n    {\n      \"name\": \"faLevelDown\"\n    },\n    {\n      \"name\": \"faLevelUp\"\n    },\n    {\n      \"name\": \"faLifeBouy\"\n    },\n    {\n      \"name\": \"faLifeBuoy\"\n    },\n    {\n      \"name\": \"faLifeRing\"\n    },\n    {\n      \"name\": \"faLifeSaver\"\n    },\n    {\n      \"name\": \"faLightbulbO\"\n    },\n    {\n      \"name\": \"faLineChart\"\n    },\n    {\n      \"name\": \"faLink\"\n    },\n    {\n      \"name\": \"faLinkedin\"\n    },\n    {\n      \"name\": \"faLinkedinSquare\"\n    },\n    {\n      \"name\": \"faLinux\"\n    },\n    {\n      \"name\": \"faList\"\n    },\n    {\n      \"name\": \"faListAlt\"\n    },\n    {\n      \"name\": \"faListOl\"\n    },\n    {\n      \"name\": \"faListUl\"\n    },\n    {\n      \"name\": \"faLocationArrow\"\n    },\n    {\n      \"name\": \"faLock\"\n    },\n    {\n      \"name\": \"faLongArrowDown\"\n    },\n    {\n      \"name\": \"faLongArrowLeft\"\n    },\n    {\n      \"name\": \"faLongArrowRight\"\n    },\n    {\n      \"name\": \"faLongArrowUp\"\n    },\n    {\n      \"name\": \"faLowVision\"\n    },\n    {\n      \"name\": \"faMagic\"\n    },\n    {\n      \"name\": \"faMagnet\"\n    },\n    {\n      \"name\": \"faMailForward\"\n    },\n    {\n      \"name\": \"faMailReply\"\n    },\n    {\n      \"name\": \"faMailReplyAll\"\n    },\n    {\n      \"name\": \"faMale\"\n    },\n    {\n      \"name\": \"faMap\"\n    },\n    {\n      \"name\": \"faMapMarker\"\n    },\n    {\n      \"name\": \"faMapO\"\n    },\n    {\n      \"name\": \"faMapPin\"\n    },\n    {\n      \"name\": \"faMapSigns\"\n    },\n    {\n      \"name\": \"faMars\"\n    },\n    {\n      \"name\": \"faMarsDouble\"\n    },\n    {\n      \"name\": \"faMarsStroke\"\n    },\n    {\n      \"name\": \"faMarsStrokeH\"\n    },\n    {\n      \"name\": \"faMarsStrokeV\"\n    },\n    {\n      \"name\": \"faMaxcdn\"\n    },\n    {\n      \"name\": \"faMeanpath\"\n    },\n    {\n      \"name\": \"faMedium\"\n    },\n    {\n      \"name\": \"faMedkit\"\n    },\n    {\n      \"name\": \"faMehO\"\n    },\n    {\n      \"name\": \"faMercury\"\n    },\n    {\n      \"name\": \"faMicrophone\"\n    },\n    {\n      \"name\": \"faMicrophoneSlash\"\n    },\n    {\n      \"name\": \"faMinus\"\n    },\n    {\n      \"name\": \"faMinusCircle\"\n    },\n    {\n      \"name\": \"faMinusSquare\"\n    },\n    {\n      \"name\": \"faMinusSquareO\"\n    },\n    {\n      \"name\": \"faMixcloud\"\n    },\n    {\n      \"name\": \"faMobile\"\n    },\n    {\n      \"name\": \"faMobilePhone\"\n    },\n    {\n      \"name\": \"faModx\"\n    },\n    {\n      \"name\": \"faMoney\"\n    },\n    {\n      \"name\": \"faMoonO\"\n    },\n    {\n      \"name\": \"faMortarBoard\"\n    },\n    {\n      \"name\": \"faMotorcycle\"\n    },\n    {\n      \"name\": \"faMousePointer\"\n    },\n    {\n      \"name\": \"faMusic\"\n    },\n    {\n      \"name\": \"faNavicon\"\n    },\n    {\n      \"name\": \"faNeuter\"\n    },\n    {\n      \"name\": \"faNewspaperO\"\n    },\n    {\n      \"name\": \"faObjectGroup\"\n    },\n    {\n      \"name\": \"faObjectUngroup\"\n    },\n    {\n      \"name\": \"faOdnoklassniki\"\n    },\n    {\n      \"name\": \"faOdnoklassnikiSquare\"\n    },\n    {\n      \"name\": \"faOpencart\"\n    },\n    {\n      \"name\": \"faOpenid\"\n    },\n    {\n      \"name\": \"faOpera\"\n    },\n    {\n      \"name\": \"faOptinMonster\"\n    },\n    {\n      \"name\": \"faOutdent\"\n    },\n    {\n      \"name\": \"faPagelines\"\n    },\n    {\n      \"name\": \"faPaintBrush\"\n    },\n    {\n      \"name\": \"faPaperPlane\"\n    },\n    {\n      \"name\": \"faPaperPlaneO\"\n    },\n    {\n      \"name\": \"faPaperclip\"\n    },\n    {\n      \"name\": \"faParagraph\"\n    },\n    {\n      \"name\": \"faPaste\"\n    },\n    {\n      \"name\": \"faPause\"\n    },\n    {\n      \"name\": \"faPauseCircle\"\n    },\n    {\n      \"name\": \"faPauseCircleO\"\n    },\n    {\n      \"name\": \"faPaw\"\n    },\n    {\n      \"name\": \"faPaypal\"\n    },\n    {\n      \"name\": \"faPencil\"\n    },\n    {\n      \"name\": \"faPencilSquare\"\n    },\n    {\n      \"name\": \"faPencilSquareO\"\n    },\n    {\n      \"name\": \"faPercent\"\n    },\n    {\n      \"name\": \"faPhone\"\n    },\n    {\n      \"name\": \"faPhoneSquare\"\n    },\n    {\n      \"name\": \"faPhoto\"\n    },\n    {\n      \"name\": \"faPictureO\"\n    },\n    {\n      \"name\": \"faPieChart\"\n    },\n    {\n      \"name\": \"faPiedPiper\"\n    },\n    {\n      \"name\": \"faPiedPiperAlt\"\n    },\n    {\n      \"name\": \"faPiedPiperPp\"\n    },\n    {\n      \"name\": \"faPinterest\"\n    },\n    {\n      \"name\": \"faPinterestP\"\n    },\n    {\n      \"name\": \"faPinterestSquare\"\n    },\n    {\n      \"name\": \"faPlane\"\n    },\n    {\n      \"name\": \"faPlay\"\n    },\n    {\n      \"name\": \"faPlayCircle\"\n    },\n    {\n      \"name\": \"faPlayCircleO\"\n    },\n    {\n      \"name\": \"faPlug\"\n    },\n    {\n      \"name\": \"faPlus\"\n    },\n    {\n      \"name\": \"faPlusCircle\"\n    },\n    {\n      \"name\": \"faPlusSquare\"\n    },\n    {\n      \"name\": \"faPlusSquareO\"\n    },\n    {\n      \"name\": \"faPowerOff\"\n    },\n    {\n      \"name\": \"faPrint\"\n    },\n    {\n      \"name\": \"faProductHunt\"\n    },\n    {\n      \"name\": \"faPuzzlePiece\"\n    },\n    {\n      \"name\": \"faQq\"\n    },\n    {\n      \"name\": \"faQrcode\"\n    },\n    {\n      \"name\": \"faQuestion\"\n    },\n    {\n      \"name\": \"faQuestionCircle\"\n    },\n    {\n      \"name\": \"faQuestionCircleO\"\n    },\n    {\n      \"name\": \"faQuoteLeft\"\n    },\n    {\n      \"name\": \"faQuoteRight\"\n    },\n    {\n      \"name\": \"faRa\"\n    },\n    {\n      \"name\": \"faRandom\"\n    },\n    {\n      \"name\": \"faRebel\"\n    },\n    {\n      \"name\": \"faRecycle\"\n    },\n    {\n      \"name\": \"faReddit\"\n    },\n    {\n      \"name\": \"faRedditAlien\"\n    },\n    {\n      \"name\": \"faRedditSquare\"\n    },\n    {\n      \"name\": \"faRefresh\"\n    },\n    {\n      \"name\": \"faRegistered\"\n    },\n    {\n      \"name\": \"faRemove\"\n    },\n    {\n      \"name\": \"faRenren\"\n    },\n    {\n      \"name\": \"faReorder\"\n    },\n    {\n      \"name\": \"faRepeat\"\n    },\n    {\n      \"name\": \"faReply\"\n    },\n    {\n      \"name\": \"faReplyAll\"\n    },\n    {\n      \"name\": \"faResistance\"\n    },\n    {\n      \"name\": \"faRetweet\"\n    },\n    {\n      \"name\": \"faRmb\"\n    },\n    {\n      \"name\": \"faRoad\"\n    },\n    {\n      \"name\": \"faRocket\"\n    },\n    {\n      \"name\": \"faRotateLeft\"\n    },\n    {\n      \"name\": \"faRotateRight\"\n    },\n    {\n      \"name\": \"faRouble\"\n    },\n    {\n      \"name\": \"faRss\"\n    },\n    {\n      \"name\": \"faRssSquare\"\n    },\n    {\n      \"name\": \"faRub\"\n    },\n    {\n      \"name\": \"faRuble\"\n    },\n    {\n      \"name\": \"faRupee\"\n    },\n    {\n      \"name\": \"faSafari\"\n    },\n    {\n      \"name\": \"faSave\"\n    },\n    {\n      \"name\": \"faScissors\"\n    },\n    {\n      \"name\": \"faScribd\"\n    },\n    {\n      \"name\": \"faSearch\"\n    },\n    {\n      \"name\": \"faSearchMinus\"\n    },\n    {\n      \"name\": \"faSearchPlus\"\n    },\n    {\n      \"name\": \"faSellsy\"\n    },\n    {\n      \"name\": \"faSend\"\n    },\n    {\n      \"name\": \"faSendO\"\n    },\n    {\n      \"name\": \"faServer\"\n    },\n    {\n      \"name\": \"faShare\"\n    },\n    {\n      \"name\": \"faShareAlt\"\n    },\n    {\n      \"name\": \"faShareAltSquare\"\n    },\n    {\n      \"name\": \"faShareSquare\"\n    },\n    {\n      \"name\": \"faShareSquareO\"\n    },\n    {\n      \"name\": \"faShekel\"\n    },\n    {\n      \"name\": \"faSheqel\"\n    },\n    {\n      \"name\": \"faShield\"\n    },\n    {\n      \"name\": \"faShip\"\n    },\n    {\n      \"name\": \"faShirtsinbulk\"\n    },\n    {\n      \"name\": \"faShoppingBag\"\n    },\n    {\n      \"name\": \"faShoppingBasket\"\n    },\n    {\n      \"name\": \"faShoppingCart\"\n    },\n    {\n      \"name\": \"faSignIn\"\n    },\n    {\n      \"name\": \"faSignLanguage\"\n    },\n    {\n      \"name\": \"faSignOut\"\n    },\n    {\n      \"name\": \"faSignal\"\n    },\n    {\n      \"name\": \"faSigning\"\n    },\n    {\n      \"name\": \"faSimplybuilt\"\n    },\n    {\n      \"name\": \"faSitemap\"\n    },\n    {\n      \"name\": \"faSkyatlas\"\n    },\n    {\n      \"name\": \"faSkype\"\n    },\n    {\n      \"name\": \"faSlack\"\n    },\n    {\n      \"name\": \"faSliders\"\n    },\n    {\n      \"name\": \"faSlideshare\"\n    },\n    {\n      \"name\": \"faSmileO\"\n    },\n    {\n      \"name\": \"faSnapchat\"\n    },\n    {\n      \"name\": \"faSnapchatGhost\"\n    },\n    {\n      \"name\": \"faSnapchatSquare\"\n    },\n    {\n      \"name\": \"faSoccerBallO\"\n    },\n    {\n      \"name\": \"faSort\"\n    },\n    {\n      \"name\": \"faSortAlphaAsc\"\n    },\n    {\n      \"name\": \"faSortAlphaDesc\"\n    },\n    {\n      \"name\": \"faSortAmountAsc\"\n    },\n    {\n      \"name\": \"faSortAmountDesc\"\n    },\n    {\n      \"name\": \"faSortAsc\"\n    },\n    {\n      \"name\": \"faSortDesc\"\n    },\n    {\n      \"name\": \"faSortDown\"\n    },\n    {\n      \"name\": \"faSortNumericAsc\"\n    },\n    {\n      \"name\": \"faSortNumericDesc\"\n    },\n    {\n      \"name\": \"faSortUp\"\n    },\n    {\n      \"name\": \"faSoundcloud\"\n    },\n    {\n      \"name\": \"faSpaceShuttle\"\n    },\n    {\n      \"name\": \"faSpinner\"\n    },\n    {\n      \"name\": \"faSpoon\"\n    },\n    {\n      \"name\": \"faSpotify\"\n    },\n    {\n      \"name\": \"faSquare\"\n    },\n    {\n      \"name\": \"faSquareO\"\n    },\n    {\n      \"name\": \"faStackExchange\"\n    },\n    {\n      \"name\": \"faStackOverflow\"\n    },\n    {\n      \"name\": \"faStar\"\n    },\n    {\n      \"name\": \"faStarHalf\"\n    },\n    {\n      \"name\": \"faStarHalfEmpty\"\n    },\n    {\n      \"name\": \"faStarHalfFull\"\n    },\n    {\n      \"name\": \"faStarHalfO\"\n    },\n    {\n      \"name\": \"faStarO\"\n    },\n    {\n      \"name\": \"faSteam\"\n    },\n    {\n      \"name\": \"faSteamSquare\"\n    },\n    {\n      \"name\": \"faStepBackward\"\n    },\n    {\n      \"name\": \"faStepForward\"\n    },\n    {\n      \"name\": \"faStethoscope\"\n    },\n    {\n      \"name\": \"faStickyNote\"\n    },\n    {\n      \"name\": \"faStickyNoteO\"\n    },\n    {\n      \"name\": \"faStop\"\n    },\n    {\n      \"name\": \"faStopCircle\"\n    },\n    {\n      \"name\": \"faStopCircleO\"\n    },\n    {\n      \"name\": \"faStreetView\"\n    },\n    {\n      \"name\": \"faStrikethrough\"\n    },\n    {\n      \"name\": \"faStumbleupon\"\n    },\n    {\n      \"name\": \"faStumbleuponCircle\"\n    },\n    {\n      \"name\": \"faSubscript\"\n    },\n    {\n      \"name\": \"faSubway\"\n    },\n    {\n      \"name\": \"faSuitcase\"\n    },\n    {\n      \"name\": \"faSunO\"\n    },\n    {\n      \"name\": \"faSuperscript\"\n    },\n    {\n      \"name\": \"faSupport\"\n    },\n    {\n      \"name\": \"faTable\"\n    },\n    {\n      \"name\": \"faTablet\"\n    },\n    {\n      \"name\": \"faTachometer\"\n    },\n    {\n      \"name\": \"faTag\"\n    },\n    {\n      \"name\": \"faTags\"\n    },\n    {\n      \"name\": \"faTasks\"\n    },\n    {\n      \"name\": \"faTaxi\"\n    },\n    {\n      \"name\": \"faTelevision\"\n    },\n    {\n      \"name\": \"faTencentWeibo\"\n    },\n    {\n      \"name\": \"faTerminal\"\n    },\n    {\n      \"name\": \"faTextHeight\"\n    },\n    {\n      \"name\": \"faTextWidth\"\n    },\n    {\n      \"name\": \"faTh\"\n    },\n    {\n      \"name\": \"faThLarge\"\n    },\n    {\n      \"name\": \"faThList\"\n    },\n    {\n      \"name\": \"faThemeisle\"\n    },\n    {\n      \"name\": \"faThumbTack\"\n    },\n    {\n      \"name\": \"faThumbsDown\"\n    },\n    {\n      \"name\": \"faThumbsODown\"\n    },\n    {\n      \"name\": \"faThumbsOUp\"\n    },\n    {\n      \"name\": \"faThumbsUp\"\n    },\n    {\n      \"name\": \"faTicket\"\n    },\n    {\n      \"name\": \"faTimes\"\n    },\n    {\n      \"name\": \"faTimesCircle\"\n    },\n    {\n      \"name\": \"faTimesCircleO\"\n    },\n    {\n      \"name\": \"faTint\"\n    },\n    {\n      \"name\": \"faToggleDown\"\n    },\n    {\n      \"name\": \"faToggleLeft\"\n    },\n    {\n      \"name\": \"faToggleOff\"\n    },\n    {\n      \"name\": \"faToggleOn\"\n    },\n    {\n      \"name\": \"faToggleRight\"\n    },\n    {\n      \"name\": \"faToggleUp\"\n    },\n    {\n      \"name\": \"faTrademark\"\n    },\n    {\n      \"name\": \"faTrain\"\n    },\n    {\n      \"name\": \"faTransgender\"\n    },\n    {\n      \"name\": \"faTransgenderAlt\"\n    },\n    {\n      \"name\": \"faTrash\"\n    },\n    {\n      \"name\": \"faTrashO\"\n    },\n    {\n      \"name\": \"faTree\"\n    },\n    {\n      \"name\": \"faTrello\"\n    },\n    {\n      \"name\": \"faTripadvisor\"\n    },\n    {\n      \"name\": \"faTrophy\"\n    },\n    {\n      \"name\": \"faTruck\"\n    },\n    {\n      \"name\": \"faTry\"\n    },\n    {\n      \"name\": \"faTty\"\n    },\n    {\n      \"name\": \"faTumblr\"\n    },\n    {\n      \"name\": \"faTumblrSquare\"\n    },\n    {\n      \"name\": \"faTurkishLira\"\n    },\n    {\n      \"name\": \"faTv\"\n    },\n    {\n      \"name\": \"faTwitch\"\n    },\n    {\n      \"name\": \"faTwitter\"\n    },\n    {\n      \"name\": \"faTwitterSquare\"\n    },\n    {\n      \"name\": \"faUmbrella\"\n    },\n    {\n      \"name\": \"faUnderline\"\n    },\n    {\n      \"name\": \"faUndo\"\n    },\n    {\n      \"name\": \"faUniversalAccess\"\n    },\n    {\n      \"name\": \"faUniversity\"\n    },\n    {\n      \"name\": \"faUnlink\"\n    },\n    {\n      \"name\": \"faUnlock\"\n    },\n    {\n      \"name\": \"faUnlockAlt\"\n    },\n    {\n      \"name\": \"faUnsorted\"\n    },\n    {\n      \"name\": \"faUpload\"\n    },\n    {\n      \"name\": \"faUsb\"\n    },\n    {\n      \"name\": \"faUsd\"\n    },\n    {\n      \"name\": \"faUser\"\n    },\n    {\n      \"name\": \"faUserMd\"\n    },\n    {\n      \"name\": \"faUserPlus\"\n    },\n    {\n      \"name\": \"faUserSecret\"\n    },\n    {\n      \"name\": \"faUserTimes\"\n    },\n    {\n      \"name\": \"faUsers\"\n    },\n    {\n      \"name\": \"faVenus\"\n    },\n    {\n      \"name\": \"faVenusDouble\"\n    },\n    {\n      \"name\": \"faVenusMars\"\n    },\n    {\n      \"name\": \"faViacoin\"\n    },\n    {\n      \"name\": \"faViadeo\"\n    },\n    {\n      \"name\": \"faViadeoSquare\"\n    },\n    {\n      \"name\": \"faVideoCamera\"\n    },\n    {\n      \"name\": \"faVimeo\"\n    },\n    {\n      \"name\": \"faVimeoSquare\"\n    },\n    {\n      \"name\": \"faVine\"\n    },\n    {\n      \"name\": \"faVk\"\n    },\n    {\n      \"name\": \"faVolumeControlPhone\"\n    },\n    {\n      \"name\": \"faVolumeDown\"\n    },\n    {\n      \"name\": \"faVolumeOff\"\n    },\n    {\n      \"name\": \"faVolumeUp\"\n    },\n    {\n      \"name\": \"faWarning\"\n    },\n    {\n      \"name\": \"faWechat\"\n    },\n    {\n      \"name\": \"faWeibo\"\n    },\n    {\n      \"name\": \"faWeixin\"\n    },\n    {\n      \"name\": \"faWhatsapp\"\n    },\n    {\n      \"name\": \"faWheelchair\"\n    },\n    {\n      \"name\": \"faWheelchairAlt\"\n    },\n    {\n      \"name\": \"faWifi\"\n    },\n    {\n      \"name\": \"faWikipediaW\"\n    },\n    {\n      \"name\": \"faWindows\"\n    },\n    {\n      \"name\": \"faWon\"\n    },\n    {\n      \"name\": \"faWordpress\"\n    },\n    {\n      \"name\": \"faWpbeginner\"\n    },\n    {\n      \"name\": \"faWpforms\"\n    },\n    {\n      \"name\": \"faWrench\"\n    },\n    {\n      \"name\": \"faXing\"\n    },\n    {\n      \"name\": \"faXingSquare\"\n    },\n    {\n      \"name\": \"faYCombinator\"\n    },\n    {\n      \"name\": \"faYCombinatorSquare\"\n    },\n    {\n      \"name\": \"faYahoo\"\n    },\n    {\n      \"name\": \"faYc\"\n    },\n    {\n      \"name\": \"faYcSquare\"\n    },\n    {\n      \"name\": \"faYelp\"\n    },\n    {\n      \"name\": \"faYen\"\n    },\n    {\n      \"name\": \"faYoast\"\n    },\n    {\n      \"name\": \"faYoutube\"\n    },\n    {\n      \"name\": \"faYoutubePlay\"\n    },\n    {\n      \"name\": \"faYoutubeSquare\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\faicon\": [\n      \"500px\",\n      \"adjust\",\n      \"adn\",\n      \"align-center\",\n      \"align-justify\",\n      \"align-left\",\n      \"align-right\",\n      \"amazon\",\n      \"ambulance\",\n      \"american-sign-language-interpreting\",\n      \"anchor\",\n      \"android\",\n      \"angellist\",\n      \"angle-double-down\",\n      \"angle-double-left\",\n      \"angle-double-right\",\n      \"angle-double-up\",\n      \"angle-down\",\n      \"angle-left\",\n      \"angle-right\",\n      \"angle-up\",\n      \"apple\",\n      \"archive\",\n      \"area-chart\",\n      \"arrow-circle-down\",\n      \"arrow-circle-left\",\n      \"arrow-circle-o-down\",\n      \"arrow-circle-o-left\",\n      \"arrow-circle-o-right\",\n      \"arrow-circle-o-up\",\n      \"arrow-circle-right\",\n      \"arrow-circle-up\",\n      \"arrow-down\",\n      \"arrow-left\",\n      \"arrow-right\",\n      \"arrow-up\",\n      \"arrows\",\n      \"arrows-alt\",\n      \"arrows-h\",\n      \"arrows-v\",\n      \"asl-interpreting\",\n      \"assistive-listening-systems\",\n      \"asterisk\",\n      \"at\",\n      \"audio-description\",\n      \"automobile\",\n      \"backward\",\n      \"balance-scale\",\n      \"ban\",\n      \"bank\",\n      \"bar-chart\",\n      \"bar-chart-o\",\n      \"barcode\",\n      \"bars\",\n      \"battery-0\",\n      \"battery-1\",\n      \"battery-2\",\n      \"battery-3\",\n      \"battery-4\",\n      \"battery-empty\",\n      \"battery-full\",\n      \"battery-half\",\n      \"battery-quarter\",\n      \"battery-three-quarters\",\n      \"bed\",\n      \"beer\",\n      \"behance\",\n      \"behance-square\",\n      \"bell\",\n      \"bell-o\",\n      \"bell-slash\",\n      \"bell-slash-o\",\n      \"bicycle\",\n      \"binoculars\",\n      \"birthday-cake\",\n      \"bitbucket\",\n      \"bitbucket-square\",\n      \"bitcoin\",\n      \"black-tie\",\n      \"blind\",\n      \"bluetooth\",\n      \"bluetooth-b\",\n      \"bold\",\n      \"bolt\",\n      \"bomb\",\n      \"book\",\n      \"bookmark\",\n      \"bookmark-o\",\n      \"braille\",\n      \"briefcase\",\n      \"btc\",\n      \"bug\",\n      \"building\",\n      \"building-o\",\n      \"bullhorn\",\n      \"bullseye\",\n      \"bus\",\n      \"buysellads\",\n      \"cab\",\n      \"calculator\",\n      \"calendar\",\n      \"calendar-check-o\",\n      \"calendar-minus-o\",\n      \"calendar-o\",\n      \"calendar-plus-o\",\n      \"calendar-times-o\",\n      \"camera\",\n      \"camera-retro\",\n      \"car\",\n      \"caret-down\",\n      \"caret-left\",\n      \"caret-right\",\n      \"caret-square-o-down\",\n      \"caret-square-o-left\",\n      \"caret-square-o-right\",\n      \"caret-square-o-up\",\n      \"caret-up\",\n      \"cart-arrow-down\",\n      \"cart-plus\",\n      \"cc\",\n      \"cc-amex\",\n      \"cc-diners-club\",\n      \"cc-discover\",\n      \"cc-jcb\",\n      \"cc-mastercard\",\n      \"cc-paypal\",\n      \"cc-stripe\",\n      \"cc-visa\",\n      \"certificate\",\n      \"chain\",\n      \"chain-broken\",\n      \"check\",\n      \"check-circle\",\n      \"check-circle-o\",\n      \"check-square\",\n      \"check-square-o\",\n      \"chevron-circle-down\",\n      \"chevron-circle-left\",\n      \"chevron-circle-right\",\n      \"chevron-circle-up\",\n      \"chevron-down\",\n      \"chevron-left\",\n      \"chevron-right\",\n      \"chevron-up\",\n      \"child\",\n      \"chrome\",\n      \"circle\",\n      \"circle-o\",\n      \"circle-o-notch\",\n      \"circle-thin\",\n      \"clipboard\",\n      \"clock-o\",\n      \"clone\",\n      \"close\",\n      \"cloud\",\n      \"cloud-download\",\n      \"cloud-upload\",\n      \"cny\",\n      \"code\",\n      \"code-fork\",\n      \"codepen\",\n      \"codiepie\",\n      \"coffee\",\n      \"cog\",\n      \"cogs\",\n      \"columns\",\n      \"comment\",\n      \"comment-o\",\n      \"commenting\",\n      \"commenting-o\",\n      \"comments\",\n      \"comments-o\",\n      \"compass\",\n      \"compress\",\n      \"connectdevelop\",\n      \"contao\",\n      \"copy\",\n      \"copyright\",\n      \"creative-commons\",\n      \"credit-card\",\n      \"credit-card-alt\",\n      \"crop\",\n      \"crosshairs\",\n      \"css3\",\n      \"cube\",\n      \"cubes\",\n      \"cut\",\n      \"cutlery\",\n      \"dashboard\",\n      \"dashcube\",\n      \"database\",\n      \"deaf\",\n      \"deafness\",\n      \"dedent\",\n      \"delicious\",\n      \"desktop\",\n      \"deviantart\",\n      \"diamond\",\n      \"digg\",\n      \"dollar\",\n      \"dot-circle-o\",\n      \"download\",\n      \"dribbble\",\n      \"dropbox\",\n      \"drupal\",\n      \"edge\",\n      \"edit\",\n      \"eject\",\n      \"ellipsis-h\",\n      \"ellipsis-v\",\n      \"empire\",\n      \"envelope\",\n      \"envelope-o\",\n      \"envelope-square\",\n      \"envira\",\n      \"eraser\",\n      \"eur\",\n      \"euro\",\n      \"exchange\",\n      \"exclamation\",\n      \"exclamation-circle\",\n      \"exclamation-triangle\",\n      \"expand\",\n      \"expeditedssl\",\n      \"external-link\",\n      \"external-link-square\",\n      \"eye\",\n      \"eye-slash\",\n      \"eyedropper\",\n      \"fa\",\n      \"facebook\",\n      \"facebook-f\",\n      \"facebook-official\",\n      \"facebook-square\",\n      \"fast-backward\",\n      \"fast-forward\",\n      \"fax\",\n      \"feed\",\n      \"female\",\n      \"fighter-jet\",\n      \"file\",\n      \"file-archive-o\",\n      \"file-audio-o\",\n      \"file-code-o\",\n      \"file-excel-o\",\n      \"file-image-o\",\n      \"file-movie-o\",\n      \"file-o\",\n      \"file-pdf-o\",\n      \"file-photo-o\",\n      \"file-picture-o\",\n      \"file-powerpoint-o\",\n      \"file-sound-o\",\n      \"file-text\",\n      \"file-text-o\",\n      \"file-video-o\",\n      \"file-word-o\",\n      \"file-zip-o\",\n      \"files-o\",\n      \"film\",\n      \"filter\",\n      \"fire\",\n      \"fire-extinguisher\",\n      \"firefox\",\n      \"first-order\",\n      \"flag\",\n      \"flag-checkered\",\n      \"flag-o\",\n      \"flash\",\n      \"flask\",\n      \"flickr\",\n      \"floppy-o\",\n      \"folder\",\n      \"folder-o\",\n      \"folder-open\",\n      \"folder-open-o\",\n      \"font\",\n      \"font-awesome\",\n      \"fonticons\",\n      \"fort-awesome\",\n      \"forumbee\",\n      \"forward\",\n      \"foursquare\",\n      \"frown-o\",\n      \"futbol-o\",\n      \"gamepad\",\n      \"gavel\",\n      \"gbp\",\n      \"ge\",\n      \"gear\",\n      \"gears\",\n      \"genderless\",\n      \"get-pocket\",\n      \"gg\",\n      \"gg-circle\",\n      \"gift\",\n      \"git\",\n      \"git-square\",\n      \"github\",\n      \"github-alt\",\n      \"github-square\",\n      \"gitlab\",\n      \"gittip\",\n      \"glass\",\n      \"glide\",\n      \"glide-g\",\n      \"globe\",\n      \"google\",\n      \"google-plus\",\n      \"google-plus-circle\",\n      \"google-plus-official\",\n      \"google-plus-square\",\n      \"google-wallet\",\n      \"graduation-cap\",\n      \"gratipay\",\n      \"group\",\n      \"h-square\",\n      \"hacker-news\",\n      \"hand-grab-o\",\n      \"hand-lizard-o\",\n      \"hand-o-down\",\n      \"hand-o-left\",\n      \"hand-o-right\",\n      \"hand-o-up\",\n      \"hand-paper-o\",\n      \"hand-peace-o\",\n      \"hand-pointer-o\",\n      \"hand-rock-o\",\n      \"hand-scissors-o\",\n      \"hand-spock-o\",\n      \"hand-stop-o\",\n      \"hard-of-hearing\",\n      \"hashtag\",\n      \"hdd-o\",\n      \"header\",\n      \"headphones\",\n      \"heart\",\n      \"heart-o\",\n      \"heartbeat\",\n      \"history\",\n      \"home\",\n      \"hospital-o\",\n      \"hotel\",\n      \"hourglass\",\n      \"hourglass-1\",\n      \"hourglass-2\",\n      \"hourglass-3\",\n      \"hourglass-end\",\n      \"hourglass-half\",\n      \"hourglass-o\",\n      \"hourglass-start\",\n      \"houzz\",\n      \"html5\",\n      \"i-cursor\",\n      \"ils\",\n      \"image\",\n      \"inbox\",\n      \"indent\",\n      \"industry\",\n      \"info\",\n      \"info-circle\",\n      \"inr\",\n      \"instagram\",\n      \"institution\",\n      \"internet-explorer\",\n      \"intersex\",\n      \"ioxhost\",\n      \"italic\",\n      \"joomla\",\n      \"jpy\",\n      \"jsfiddle\",\n      \"key\",\n      \"keyboard-o\",\n      \"krw\",\n      \"language\",\n      \"laptop\",\n      \"lastfm\",\n      \"lastfm-square\",\n      \"leaf\",\n      \"leanpub\",\n      \"legal\",\n      \"lemon-o\",\n      \"level-down\",\n      \"level-up\",\n      \"life-bouy\",\n      \"life-buoy\",\n      \"life-ring\",\n      \"life-saver\",\n      \"lightbulb-o\",\n      \"line-chart\",\n      \"link\",\n      \"linkedin\",\n      \"linkedin-square\",\n      \"linux\",\n      \"list\",\n      \"list-alt\",\n      \"list-ol\",\n      \"list-ul\",\n      \"location-arrow\",\n      \"lock\",\n      \"long-arrow-down\",\n      \"long-arrow-left\",\n      \"long-arrow-right\",\n      \"long-arrow-up\",\n      \"low-vision\",\n      \"magic\",\n      \"magnet\",\n      \"mail-forward\",\n      \"mail-reply\",\n      \"mail-reply-all\",\n      \"male\",\n      \"map\",\n      \"map-marker\",\n      \"map-o\",\n      \"map-pin\",\n      \"map-signs\",\n      \"mars\",\n      \"mars-double\",\n      \"mars-stroke\",\n      \"mars-stroke-h\",\n      \"mars-stroke-v\",\n      \"maxcdn\",\n      \"meanpath\",\n      \"medium\",\n      \"medkit\",\n      \"meh-o\",\n      \"mercury\",\n      \"microphone\",\n      \"microphone-slash\",\n      \"minus\",\n      \"minus-circle\",\n      \"minus-square\",\n      \"minus-square-o\",\n      \"mixcloud\",\n      \"mobile\",\n      \"mobile-phone\",\n      \"modx\",\n      \"money\",\n      \"moon-o\",\n      \"mortar-board\",\n      \"motorcycle\",\n      \"mouse-pointer\",\n      \"music\",\n      \"navicon\",\n      \"neuter\",\n      \"newspaper-o\",\n      \"object-group\",\n      \"object-ungroup\",\n      \"odnoklassniki\",\n      \"odnoklassniki-square\",\n      \"opencart\",\n      \"openid\",\n      \"opera\",\n      \"optin-monster\",\n      \"outdent\",\n      \"pagelines\",\n      \"paint-brush\",\n      \"paper-plane\",\n      \"paper-plane-o\",\n      \"paperclip\",\n      \"paragraph\",\n      \"paste\",\n      \"pause\",\n      \"pause-circle\",\n      \"pause-circle-o\",\n      \"paw\",\n      \"paypal\",\n      \"pencil\",\n      \"pencil-square\",\n      \"pencil-square-o\",\n      \"percent\",\n      \"phone\",\n      \"phone-square\",\n      \"photo\",\n      \"picture-o\",\n      \"pie-chart\",\n      \"pied-piper\",\n      \"pied-piper-alt\",\n      \"pied-piper-pp\",\n      \"pinterest\",\n      \"pinterest-p\",\n      \"pinterest-square\",\n      \"plane\",\n      \"play\",\n      \"play-circle\",\n      \"play-circle-o\",\n      \"plug\",\n      \"plus\",\n      \"plus-circle\",\n      \"plus-square\",\n      \"plus-square-o\",\n      \"power-off\",\n      \"print\",\n      \"product-hunt\",\n      \"puzzle-piece\",\n      \"qq\",\n      \"qrcode\",\n      \"question\",\n      \"question-circle\",\n      \"question-circle-o\",\n      \"quote-left\",\n      \"quote-right\",\n      \"ra\",\n      \"random\",\n      \"rebel\",\n      \"recycle\",\n      \"reddit\",\n      \"reddit-alien\",\n      \"reddit-square\",\n      \"refresh\",\n      \"registered\",\n      \"remove\",\n      \"renren\",\n      \"reorder\",\n      \"repeat\",\n      \"reply\",\n      \"reply-all\",\n      \"resistance\",\n      \"retweet\",\n      \"rmb\",\n      \"road\",\n      \"rocket\",\n      \"rotate-left\",\n      \"rotate-right\",\n      \"rouble\",\n      \"rss\",\n      \"rss-square\",\n      \"rub\",\n      \"ruble\",\n      \"rupee\",\n      \"safari\",\n      \"save\",\n      \"scissors\",\n      \"scribd\",\n      \"search\",\n      \"search-minus\",\n      \"search-plus\",\n      \"sellsy\",\n      \"send\",\n      \"send-o\",\n      \"server\",\n      \"share\",\n      \"share-alt\",\n      \"share-alt-square\",\n      \"share-square\",\n      \"share-square-o\",\n      \"shekel\",\n      \"sheqel\",\n      \"shield\",\n      \"ship\",\n      \"shirtsinbulk\",\n      \"shopping-bag\",\n      \"shopping-basket\",\n      \"shopping-cart\",\n      \"sign-in\",\n      \"sign-language\",\n      \"sign-out\",\n      \"signal\",\n      \"signing\",\n      \"simplybuilt\",\n      \"sitemap\",\n      \"skyatlas\",\n      \"skype\",\n      \"slack\",\n      \"sliders\",\n      \"slideshare\",\n      \"smile-o\",\n      \"snapchat\",\n      \"snapchat-ghost\",\n      \"snapchat-square\",\n      \"soccer-ball-o\",\n      \"sort\",\n      \"sort-alpha-asc\",\n      \"sort-alpha-desc\",\n      \"sort-amount-asc\",\n      \"sort-amount-desc\",\n      \"sort-asc\",\n      \"sort-desc\",\n      \"sort-down\",\n      \"sort-numeric-asc\",\n      \"sort-numeric-desc\",\n      \"sort-up\",\n      \"soundcloud\",\n      \"space-shuttle\",\n      \"spinner\",\n      \"spoon\",\n      \"spotify\",\n      \"square\",\n      \"square-o\",\n      \"stack-exchange\",\n      \"stack-overflow\",\n      \"star\",\n      \"star-half\",\n      \"star-half-empty\",\n      \"star-half-full\",\n      \"star-half-o\",\n      \"star-o\",\n      \"steam\",\n      \"steam-square\",\n      \"step-backward\",\n      \"step-forward\",\n      \"stethoscope\",\n      \"sticky-note\",\n      \"sticky-note-o\",\n      \"stop\",\n      \"stop-circle\",\n      \"stop-circle-o\",\n      \"street-view\",\n      \"strikethrough\",\n      \"stumbleupon\",\n      \"stumbleupon-circle\",\n      \"subscript\",\n      \"subway\",\n      \"suitcase\",\n      \"sun-o\",\n      \"superscript\",\n      \"support\",\n      \"table\",\n      \"tablet\",\n      \"tachometer\",\n      \"tag\",\n      \"tags\",\n      \"tasks\",\n      \"taxi\",\n      \"television\",\n      \"tencent-weibo\",\n      \"terminal\",\n      \"text-height\",\n      \"text-width\",\n      \"th\",\n      \"th-large\",\n      \"th-list\",\n      \"themeisle\",\n      \"thumb-tack\",\n      \"thumbs-down\",\n      \"thumbs-o-down\",\n      \"thumbs-o-up\",\n      \"thumbs-up\",\n      \"ticket\",\n      \"times\",\n      \"times-circle\",\n      \"times-circle-o\",\n      \"tint\",\n      \"toggle-down\",\n      \"toggle-left\",\n      \"toggle-off\",\n      \"toggle-on\",\n      \"toggle-right\",\n      \"toggle-up\",\n      \"trademark\",\n      \"train\",\n      \"transgender\",\n      \"transgender-alt\",\n      \"trash\",\n      \"trash-o\",\n      \"tree\",\n      \"trello\",\n      \"tripadvisor\",\n      \"trophy\",\n      \"truck\",\n      \"try\",\n      \"tty\",\n      \"tumblr\",\n      \"tumblr-square\",\n      \"turkish-lira\",\n      \"tv\",\n      \"twitch\",\n      \"twitter\",\n      \"twitter-square\",\n      \"umbrella\",\n      \"underline\",\n      \"undo\",\n      \"universal-access\",\n      \"university\",\n      \"unlink\",\n      \"unlock\",\n      \"unlock-alt\",\n      \"unsorted\",\n      \"upload\",\n      \"usb\",\n      \"usd\",\n      \"user\",\n      \"user-md\",\n      \"user-plus\",\n      \"user-secret\",\n      \"user-times\",\n      \"users\",\n      \"venus\",\n      \"venus-double\",\n      \"venus-mars\",\n      \"viacoin\",\n      \"viadeo\",\n      \"viadeo-square\",\n      \"video-camera\",\n      \"vimeo\",\n      \"vimeo-square\",\n      \"vine\",\n      \"vk\",\n      \"volume-control-phone\",\n      \"volume-down\",\n      \"volume-off\",\n      \"volume-up\",\n      \"warning\",\n      \"wechat\",\n      \"weibo\",\n      \"weixin\",\n      \"whatsapp\",\n      \"wheelchair\",\n      \"wheelchair-alt\",\n      \"wifi\",\n      \"wikipedia-w\",\n      \"windows\",\n      \"won\",\n      \"wordpress\",\n      \"wpbeginner\",\n      \"wpforms\",\n      \"wrench\",\n      \"xing\",\n      \"xing-square\",\n      \"y-combinator\",\n      \"y-combinator-square\",\n      \"yahoo\",\n      \"yc\",\n      \"yc-square\",\n      \"yelp\",\n      \"yen\",\n      \"yoast\",\n      \"youtube\",\n      \"youtube-play\",\n      \"youtube-square\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fontawesome5.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"faStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faStyle{${1:solid/regular}}\"\n      }\n    },\n    {\n      \"name\": \"faIcon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faIcon{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\faIcon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"faIcon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"faIcon[${2:regular}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\faIcon\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"faPreselectedIcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faPreselectedIcon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"faAccessibleIcon\"\n    },\n    {\n      \"name\": \"faAccusoft\"\n    },\n    {\n      \"name\": \"faAcquisitionsIncorporated\"\n    },\n    {\n      \"name\": \"faAd\"\n    },\n    {\n      \"name\": \"faAddressBook\"\n    },\n    {\n      \"name\": \"faAddressBook\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faAddressBook[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faAddressCard\"\n    },\n    {\n      \"name\": \"faAddressCard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faAddressCard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faAdjust\"\n    },\n    {\n      \"name\": \"faAdn\"\n    },\n    {\n      \"name\": \"faAdobe\"\n    },\n    {\n      \"name\": \"faAdversal\"\n    },\n    {\n      \"name\": \"faAffiliatetheme\"\n    },\n    {\n      \"name\": \"faAirbnb\"\n    },\n    {\n      \"name\": \"faAirFreshener\"\n    },\n    {\n      \"name\": \"faAlgolia\"\n    },\n    {\n      \"name\": \"faAlignCenter\"\n    },\n    {\n      \"name\": \"faAlignJustify\"\n    },\n    {\n      \"name\": \"faAlignLeft\"\n    },\n    {\n      \"name\": \"faAlignRight\"\n    },\n    {\n      \"name\": \"faAlipay\"\n    },\n    {\n      \"name\": \"faAllergies\"\n    },\n    {\n      \"name\": \"faAmazon\"\n    },\n    {\n      \"name\": \"faAmazonPay\"\n    },\n    {\n      \"name\": \"faAmbulance\"\n    },\n    {\n      \"name\": \"faAmericanSignLanguageInterpreting\"\n    },\n    {\n      \"name\": \"faAmilia\"\n    },\n    {\n      \"name\": \"faAnchor\"\n    },\n    {\n      \"name\": \"faAndroid\"\n    },\n    {\n      \"name\": \"faAngellist\"\n    },\n    {\n      \"name\": \"faAngleDoubleDown\"\n    },\n    {\n      \"name\": \"faAngleDoubleLeft\"\n    },\n    {\n      \"name\": \"faAngleDoubleRight\"\n    },\n    {\n      \"name\": \"faAngleDoubleUp\"\n    },\n    {\n      \"name\": \"faAngleDown\"\n    },\n    {\n      \"name\": \"faAngleLeft\"\n    },\n    {\n      \"name\": \"faAngleRight\"\n    },\n    {\n      \"name\": \"faAngleUp\"\n    },\n    {\n      \"name\": \"faAngry\"\n    },\n    {\n      \"name\": \"faAngry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faAngry[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faAngrycreative\"\n    },\n    {\n      \"name\": \"faAngular\"\n    },\n    {\n      \"name\": \"faAnkh\"\n    },\n    {\n      \"name\": \"faApper\"\n    },\n    {\n      \"name\": \"faApple\"\n    },\n    {\n      \"name\": \"faApple*\"\n    },\n    {\n      \"name\": \"faApplePay\"\n    },\n    {\n      \"name\": \"faAppStore\"\n    },\n    {\n      \"name\": \"faAppStoreIos\"\n    },\n    {\n      \"name\": \"faArchive\"\n    },\n    {\n      \"name\": \"faArchway\"\n    },\n    {\n      \"name\": \"faArrowAltCircleDown\"\n    },\n    {\n      \"name\": \"faArrowAltCircleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faArrowAltCircleDown[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faArrowAltCircleLeft\"\n    },\n    {\n      \"name\": \"faArrowAltCircleLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faArrowAltCircleLeft[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faArrowAltCircleRight\"\n    },\n    {\n      \"name\": \"faArrowAltCircleRight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faArrowAltCircleRight[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faArrowAltCircleUp\"\n    },\n    {\n      \"name\": \"faArrowAltCircleUp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faArrowAltCircleUp[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faArrowCircleDown\"\n    },\n    {\n      \"name\": \"faArrowCircleLeft\"\n    },\n    {\n      \"name\": \"faArrowCircleRight\"\n    },\n    {\n      \"name\": \"faArrowCircleUp\"\n    },\n    {\n      \"name\": \"faArrowDown\"\n    },\n    {\n      \"name\": \"faArrowLeft\"\n    },\n    {\n      \"name\": \"faArrowRight\"\n    },\n    {\n      \"name\": \"faArrows*\"\n    },\n    {\n      \"name\": \"faArrowsAltH\"\n    },\n    {\n      \"name\": \"faArrowsAltV\"\n    },\n    {\n      \"name\": \"faArrowUp\"\n    },\n    {\n      \"name\": \"faArtstation\"\n    },\n    {\n      \"name\": \"faAssistiveListeningSystems\"\n    },\n    {\n      \"name\": \"faAsterisk\"\n    },\n    {\n      \"name\": \"faAsymmetrik\"\n    },\n    {\n      \"name\": \"faAt\"\n    },\n    {\n      \"name\": \"faAtlas\"\n    },\n    {\n      \"name\": \"faAtlassian\"\n    },\n    {\n      \"name\": \"faAtom\"\n    },\n    {\n      \"name\": \"faAudible\"\n    },\n    {\n      \"name\": \"faAudioDescription\"\n    },\n    {\n      \"name\": \"faAutoprefixer\"\n    },\n    {\n      \"name\": \"faAvianex\"\n    },\n    {\n      \"name\": \"faAviato\"\n    },\n    {\n      \"name\": \"faAward\"\n    },\n    {\n      \"name\": \"faAws\"\n    },\n    {\n      \"name\": \"faBaby\"\n    },\n    {\n      \"name\": \"faBabyCarriage\"\n    },\n    {\n      \"name\": \"faBackspace\"\n    },\n    {\n      \"name\": \"faBackward\"\n    },\n    {\n      \"name\": \"faBacon\"\n    },\n    {\n      \"name\": \"faBacteria\"\n    },\n    {\n      \"name\": \"faBacterium\"\n    },\n    {\n      \"name\": \"faBahai\"\n    },\n    {\n      \"name\": \"faBalanceScale\"\n    },\n    {\n      \"name\": \"faBalanceScaleLeft\"\n    },\n    {\n      \"name\": \"faBalanceScaleRight\"\n    },\n    {\n      \"name\": \"faBan\"\n    },\n    {\n      \"name\": \"faBandAid\"\n    },\n    {\n      \"name\": \"faBandcamp\"\n    },\n    {\n      \"name\": \"faBarcode\"\n    },\n    {\n      \"name\": \"faBars\"\n    },\n    {\n      \"name\": \"faBaseballBall\"\n    },\n    {\n      \"name\": \"faBasketballBall\"\n    },\n    {\n      \"name\": \"faBath\"\n    },\n    {\n      \"name\": \"faBatteryEmpty\"\n    },\n    {\n      \"name\": \"faBatteryFull\"\n    },\n    {\n      \"name\": \"faBatteryHalf\"\n    },\n    {\n      \"name\": \"faBatteryQuarter\"\n    },\n    {\n      \"name\": \"faBatteryThreeQuarters\"\n    },\n    {\n      \"name\": \"faBattleNet\"\n    },\n    {\n      \"name\": \"faBed\"\n    },\n    {\n      \"name\": \"faBeer\"\n    },\n    {\n      \"name\": \"faBehance\"\n    },\n    {\n      \"name\": \"faBehanceSquare\"\n    },\n    {\n      \"name\": \"faBell\"\n    },\n    {\n      \"name\": \"faBell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faBell[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faBellSlash\"\n    },\n    {\n      \"name\": \"faBellSlash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faBellSlash[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faBezierCurve\"\n    },\n    {\n      \"name\": \"faBible\"\n    },\n    {\n      \"name\": \"faBicycle\"\n    },\n    {\n      \"name\": \"faBiking\"\n    },\n    {\n      \"name\": \"faBimobject\"\n    },\n    {\n      \"name\": \"faBinoculars\"\n    },\n    {\n      \"name\": \"faBiohazard\"\n    },\n    {\n      \"name\": \"faBirthdayCake\"\n    },\n    {\n      \"name\": \"faBitbucket\"\n    },\n    {\n      \"name\": \"faBitcoin\"\n    },\n    {\n      \"name\": \"faBity\"\n    },\n    {\n      \"name\": \"faBlackberry\"\n    },\n    {\n      \"name\": \"faBlackTie\"\n    },\n    {\n      \"name\": \"faBlender\"\n    },\n    {\n      \"name\": \"faBlenderPhone\"\n    },\n    {\n      \"name\": \"faBlind\"\n    },\n    {\n      \"name\": \"faBlog\"\n    },\n    {\n      \"name\": \"faBlogger\"\n    },\n    {\n      \"name\": \"faBloggerB\"\n    },\n    {\n      \"name\": \"faBluetooth\"\n    },\n    {\n      \"name\": \"faBluetoothB\"\n    },\n    {\n      \"name\": \"faBold\"\n    },\n    {\n      \"name\": \"faBolt\"\n    },\n    {\n      \"name\": \"faBomb\"\n    },\n    {\n      \"name\": \"faBone\"\n    },\n    {\n      \"name\": \"faBong\"\n    },\n    {\n      \"name\": \"faBook\"\n    },\n    {\n      \"name\": \"faBookDead\"\n    },\n    {\n      \"name\": \"faBookmark\"\n    },\n    {\n      \"name\": \"faBookmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faBookmark[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faBookMedical\"\n    },\n    {\n      \"name\": \"faBookOpen\"\n    },\n    {\n      \"name\": \"faBookReader\"\n    },\n    {\n      \"name\": \"faBootstrap\"\n    },\n    {\n      \"name\": \"faBorderAll\"\n    },\n    {\n      \"name\": \"faBorderNone\"\n    },\n    {\n      \"name\": \"faBorderStyle\"\n    },\n    {\n      \"name\": \"faBowlingBall\"\n    },\n    {\n      \"name\": \"faBox\"\n    },\n    {\n      \"name\": \"faBoxes\"\n    },\n    {\n      \"name\": \"faBoxOpen\"\n    },\n    {\n      \"name\": \"faBoxTissue\"\n    },\n    {\n      \"name\": \"faBraille\"\n    },\n    {\n      \"name\": \"faBrain\"\n    },\n    {\n      \"name\": \"faBreadSlice\"\n    },\n    {\n      \"name\": \"faBriefcase\"\n    },\n    {\n      \"name\": \"faBriefcaseMedical\"\n    },\n    {\n      \"name\": \"faBroadcastTower\"\n    },\n    {\n      \"name\": \"faBroom\"\n    },\n    {\n      \"name\": \"faBrush\"\n    },\n    {\n      \"name\": \"faBtc\"\n    },\n    {\n      \"name\": \"faBuffer\"\n    },\n    {\n      \"name\": \"faBug\"\n    },\n    {\n      \"name\": \"faBuilding\"\n    },\n    {\n      \"name\": \"faBuilding\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faBuilding[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faBullhorn\"\n    },\n    {\n      \"name\": \"faBullseye\"\n    },\n    {\n      \"name\": \"faBurn\"\n    },\n    {\n      \"name\": \"faBuromobelexperte\"\n    },\n    {\n      \"name\": \"faBus\"\n    },\n    {\n      \"name\": \"faBus*\"\n    },\n    {\n      \"name\": \"faBusinessTime\"\n    },\n    {\n      \"name\": \"faBuyNLarge\"\n    },\n    {\n      \"name\": \"faBuysellads\"\n    },\n    {\n      \"name\": \"faCalculator\"\n    },\n    {\n      \"name\": \"faCalendar\"\n    },\n    {\n      \"name\": \"faCalendar*\"\n    },\n    {\n      \"name\": \"faCalendar*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendar*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendar[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendarCheck\"\n    },\n    {\n      \"name\": \"faCalendarCheck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendarCheck[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendarDay\"\n    },\n    {\n      \"name\": \"faCalendarMinus\"\n    },\n    {\n      \"name\": \"faCalendarMinus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendarMinus[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendarPlus\"\n    },\n    {\n      \"name\": \"faCalendarPlus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendarPlus[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendarTimes\"\n    },\n    {\n      \"name\": \"faCalendarTimes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCalendarTimes[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCalendarWeek\"\n    },\n    {\n      \"name\": \"faCamera\"\n    },\n    {\n      \"name\": \"faCameraRetro\"\n    },\n    {\n      \"name\": \"faCampground\"\n    },\n    {\n      \"name\": \"faCanadianMapleLeaf\"\n    },\n    {\n      \"name\": \"faCandyCane\"\n    },\n    {\n      \"name\": \"faCannabis\"\n    },\n    {\n      \"name\": \"faCapsules\"\n    },\n    {\n      \"name\": \"faCar\"\n    },\n    {\n      \"name\": \"faCar*\"\n    },\n    {\n      \"name\": \"faCaravan\"\n    },\n    {\n      \"name\": \"faCarBattery\"\n    },\n    {\n      \"name\": \"faCarCrash\"\n    },\n    {\n      \"name\": \"faCaretDown\"\n    },\n    {\n      \"name\": \"faCaretLeft\"\n    },\n    {\n      \"name\": \"faCaretRight\"\n    },\n    {\n      \"name\": \"faCaretSquareDown\"\n    },\n    {\n      \"name\": \"faCaretSquareDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCaretSquareDown[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCaretSquareLeft\"\n    },\n    {\n      \"name\": \"faCaretSquareLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCaretSquareLeft[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCaretSquareRight\"\n    },\n    {\n      \"name\": \"faCaretSquareRight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCaretSquareRight[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCaretSquareUp\"\n    },\n    {\n      \"name\": \"faCaretSquareUp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCaretSquareUp[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCaretUp\"\n    },\n    {\n      \"name\": \"faCarrot\"\n    },\n    {\n      \"name\": \"faCarSide\"\n    },\n    {\n      \"name\": \"faCartArrowDown\"\n    },\n    {\n      \"name\": \"faCartPlus\"\n    },\n    {\n      \"name\": \"faCashRegister\"\n    },\n    {\n      \"name\": \"faCat\"\n    },\n    {\n      \"name\": \"faCcAmazonPay\"\n    },\n    {\n      \"name\": \"faCcAmex\"\n    },\n    {\n      \"name\": \"faCcApplePay\"\n    },\n    {\n      \"name\": \"faCcDinersClub\"\n    },\n    {\n      \"name\": \"faCcDiscover\"\n    },\n    {\n      \"name\": \"faCcJcb\"\n    },\n    {\n      \"name\": \"faCcMastercard\"\n    },\n    {\n      \"name\": \"faCcPaypal\"\n    },\n    {\n      \"name\": \"faCcStripe\"\n    },\n    {\n      \"name\": \"faCcVisa\"\n    },\n    {\n      \"name\": \"faCentercode\"\n    },\n    {\n      \"name\": \"faCentos\"\n    },\n    {\n      \"name\": \"faCertificate\"\n    },\n    {\n      \"name\": \"faChair\"\n    },\n    {\n      \"name\": \"faChalkboard\"\n    },\n    {\n      \"name\": \"faChalkboardTeacher\"\n    },\n    {\n      \"name\": \"faChargingStation\"\n    },\n    {\n      \"name\": \"faChartArea\"\n    },\n    {\n      \"name\": \"faChartBar\"\n    },\n    {\n      \"name\": \"faChartBar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faChartBar[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faChartLine\"\n    },\n    {\n      \"name\": \"faChartPie\"\n    },\n    {\n      \"name\": \"faCheck\"\n    },\n    {\n      \"name\": \"faCheckCircle\"\n    },\n    {\n      \"name\": \"faCheckCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCheckCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCheckDouble\"\n    },\n    {\n      \"name\": \"faCheckSquare\"\n    },\n    {\n      \"name\": \"faCheckSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCheckSquare[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCheese\"\n    },\n    {\n      \"name\": \"faChess\"\n    },\n    {\n      \"name\": \"faChessBishop\"\n    },\n    {\n      \"name\": \"faChessBoard\"\n    },\n    {\n      \"name\": \"faChessKing\"\n    },\n    {\n      \"name\": \"faChessKnight\"\n    },\n    {\n      \"name\": \"faChessPawn\"\n    },\n    {\n      \"name\": \"faChessQueen\"\n    },\n    {\n      \"name\": \"faChessRook\"\n    },\n    {\n      \"name\": \"faChevronCircleDown\"\n    },\n    {\n      \"name\": \"faChevronCircleLeft\"\n    },\n    {\n      \"name\": \"faChevronCircleRight\"\n    },\n    {\n      \"name\": \"faChevronCircleUp\"\n    },\n    {\n      \"name\": \"faChevronDown\"\n    },\n    {\n      \"name\": \"faChevronLeft\"\n    },\n    {\n      \"name\": \"faChevronRight\"\n    },\n    {\n      \"name\": \"faChevronUp\"\n    },\n    {\n      \"name\": \"faChild\"\n    },\n    {\n      \"name\": \"faChrome\"\n    },\n    {\n      \"name\": \"faChromecast\"\n    },\n    {\n      \"name\": \"faChurch\"\n    },\n    {\n      \"name\": \"faCircle\"\n    },\n    {\n      \"name\": \"faCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCircleNotch\"\n    },\n    {\n      \"name\": \"faCity\"\n    },\n    {\n      \"name\": \"faClinicMedical\"\n    },\n    {\n      \"name\": \"faClipboard\"\n    },\n    {\n      \"name\": \"faClipboard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faClipboard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faClipboardCheck\"\n    },\n    {\n      \"name\": \"faClipboardList\"\n    },\n    {\n      \"name\": \"faClock\"\n    },\n    {\n      \"name\": \"faClock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faClock[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faClone\"\n    },\n    {\n      \"name\": \"faClone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faClone[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faClosedCaptioning\"\n    },\n    {\n      \"name\": \"faClosedCaptioning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faClosedCaptioning[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCloud\"\n    },\n    {\n      \"name\": \"faCloudDownload*\"\n    },\n    {\n      \"name\": \"faCloudflare\"\n    },\n    {\n      \"name\": \"faCloudMeatball\"\n    },\n    {\n      \"name\": \"faCloudMoon\"\n    },\n    {\n      \"name\": \"faCloudMoonRain\"\n    },\n    {\n      \"name\": \"faCloudRain\"\n    },\n    {\n      \"name\": \"faCloudscale\"\n    },\n    {\n      \"name\": \"faCloudShowersHeavy\"\n    },\n    {\n      \"name\": \"faCloudsmith\"\n    },\n    {\n      \"name\": \"faCloudSun\"\n    },\n    {\n      \"name\": \"faCloudSunRain\"\n    },\n    {\n      \"name\": \"faCloudUpload*\"\n    },\n    {\n      \"name\": \"faCloudversify\"\n    },\n    {\n      \"name\": \"faCocktail\"\n    },\n    {\n      \"name\": \"faCode\"\n    },\n    {\n      \"name\": \"faCodeBranch\"\n    },\n    {\n      \"name\": \"faCodepen\"\n    },\n    {\n      \"name\": \"faCodiepie\"\n    },\n    {\n      \"name\": \"faCoffee\"\n    },\n    {\n      \"name\": \"faCog\"\n    },\n    {\n      \"name\": \"faCogs\"\n    },\n    {\n      \"name\": \"faCoins\"\n    },\n    {\n      \"name\": \"faColumns\"\n    },\n    {\n      \"name\": \"faComment\"\n    },\n    {\n      \"name\": \"faComment*\"\n    },\n    {\n      \"name\": \"faComment*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faComment*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faComment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faComment[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCommentDollar\"\n    },\n    {\n      \"name\": \"faCommentDots\"\n    },\n    {\n      \"name\": \"faCommentDots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCommentDots[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCommentMedical\"\n    },\n    {\n      \"name\": \"faComments\"\n    },\n    {\n      \"name\": \"faComments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faComments[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCommentsDollar\"\n    },\n    {\n      \"name\": \"faCommentSlash\"\n    },\n    {\n      \"name\": \"faCompactDisc\"\n    },\n    {\n      \"name\": \"faCompass\"\n    },\n    {\n      \"name\": \"faCompass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCompass[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCompress\"\n    },\n    {\n      \"name\": \"faCompress*\"\n    },\n    {\n      \"name\": \"faCompressArrows*\"\n    },\n    {\n      \"name\": \"faConciergeBell\"\n    },\n    {\n      \"name\": \"faConfluence\"\n    },\n    {\n      \"name\": \"faConnectdevelop\"\n    },\n    {\n      \"name\": \"faContao\"\n    },\n    {\n      \"name\": \"faCookie\"\n    },\n    {\n      \"name\": \"faCookieBite\"\n    },\n    {\n      \"name\": \"faCopy\"\n    },\n    {\n      \"name\": \"faCopy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCopy[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCopyright\"\n    },\n    {\n      \"name\": \"faCopyright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCopyright[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCottonBureau\"\n    },\n    {\n      \"name\": \"faCouch\"\n    },\n    {\n      \"name\": \"faCpanel\"\n    },\n    {\n      \"name\": \"faCreativeCommons\"\n    },\n    {\n      \"name\": \"faCreativeCommonsBy\"\n    },\n    {\n      \"name\": \"faCreativeCommonsNc\"\n    },\n    {\n      \"name\": \"faCreativeCommonsNcEu\"\n    },\n    {\n      \"name\": \"faCreativeCommonsNcJp\"\n    },\n    {\n      \"name\": \"faCreativeCommonsNd\"\n    },\n    {\n      \"name\": \"faCreativeCommonsPd\"\n    },\n    {\n      \"name\": \"faCreativeCommonsPd*\"\n    },\n    {\n      \"name\": \"faCreativeCommonsRemix\"\n    },\n    {\n      \"name\": \"faCreativeCommonsSa\"\n    },\n    {\n      \"name\": \"faCreativeCommonsSampling\"\n    },\n    {\n      \"name\": \"faCreativeCommonsSamplingPlus\"\n    },\n    {\n      \"name\": \"faCreativeCommonsShare\"\n    },\n    {\n      \"name\": \"faCreativeCommonsZero\"\n    },\n    {\n      \"name\": \"faCreditCard\"\n    },\n    {\n      \"name\": \"faCreditCard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faCreditCard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faCriticalRole\"\n    },\n    {\n      \"name\": \"faCrop\"\n    },\n    {\n      \"name\": \"faCrop*\"\n    },\n    {\n      \"name\": \"faCross\"\n    },\n    {\n      \"name\": \"faCrosshairs\"\n    },\n    {\n      \"name\": \"faCrow\"\n    },\n    {\n      \"name\": \"faCrown\"\n    },\n    {\n      \"name\": \"faCrutch\"\n    },\n    {\n      \"name\": \"faCss3\"\n    },\n    {\n      \"name\": \"faCss3*\"\n    },\n    {\n      \"name\": \"faCube\"\n    },\n    {\n      \"name\": \"faCubes\"\n    },\n    {\n      \"name\": \"faCut\"\n    },\n    {\n      \"name\": \"faCuttlefish\"\n    },\n    {\n      \"name\": \"faDailymotion\"\n    },\n    {\n      \"name\": \"faDAndD\"\n    },\n    {\n      \"name\": \"faDAndDBeyond\"\n    },\n    {\n      \"name\": \"faDashcube\"\n    },\n    {\n      \"name\": \"faDatabase\"\n    },\n    {\n      \"name\": \"faDeaf\"\n    },\n    {\n      \"name\": \"faDeezer\"\n    },\n    {\n      \"name\": \"faDelicious\"\n    },\n    {\n      \"name\": \"faDemocrat\"\n    },\n    {\n      \"name\": \"faDeploydog\"\n    },\n    {\n      \"name\": \"faDeskpro\"\n    },\n    {\n      \"name\": \"faDesktop\"\n    },\n    {\n      \"name\": \"faDev\"\n    },\n    {\n      \"name\": \"faDeviantart\"\n    },\n    {\n      \"name\": \"faDharmachakra\"\n    },\n    {\n      \"name\": \"faDhl\"\n    },\n    {\n      \"name\": \"faDiagnoses\"\n    },\n    {\n      \"name\": \"faDiaspora\"\n    },\n    {\n      \"name\": \"faDice\"\n    },\n    {\n      \"name\": \"faDiceD20\"\n    },\n    {\n      \"name\": \"faDiceD6\"\n    },\n    {\n      \"name\": \"faDiceFive\"\n    },\n    {\n      \"name\": \"faDiceFour\"\n    },\n    {\n      \"name\": \"faDiceOne\"\n    },\n    {\n      \"name\": \"faDiceSix\"\n    },\n    {\n      \"name\": \"faDiceThree\"\n    },\n    {\n      \"name\": \"faDiceTwo\"\n    },\n    {\n      \"name\": \"faDigg\"\n    },\n    {\n      \"name\": \"faDigitalOcean\"\n    },\n    {\n      \"name\": \"faDigitalTachograph\"\n    },\n    {\n      \"name\": \"faDirections\"\n    },\n    {\n      \"name\": \"faDiscord\"\n    },\n    {\n      \"name\": \"faDiscourse\"\n    },\n    {\n      \"name\": \"faDisease\"\n    },\n    {\n      \"name\": \"faDivide\"\n    },\n    {\n      \"name\": \"faDizzy\"\n    },\n    {\n      \"name\": \"faDizzy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faDizzy[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faDna\"\n    },\n    {\n      \"name\": \"faDochub\"\n    },\n    {\n      \"name\": \"faDocker\"\n    },\n    {\n      \"name\": \"faDog\"\n    },\n    {\n      \"name\": \"faDollarSign\"\n    },\n    {\n      \"name\": \"faDolly\"\n    },\n    {\n      \"name\": \"faDollyFlatbed\"\n    },\n    {\n      \"name\": \"faDonate\"\n    },\n    {\n      \"name\": \"faDoorClosed\"\n    },\n    {\n      \"name\": \"faDoorOpen\"\n    },\n    {\n      \"name\": \"faDotCircle\"\n    },\n    {\n      \"name\": \"faDotCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faDotCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faDove\"\n    },\n    {\n      \"name\": \"faDownload\"\n    },\n    {\n      \"name\": \"faDraft2digital\"\n    },\n    {\n      \"name\": \"faDraftingCompass\"\n    },\n    {\n      \"name\": \"faDragon\"\n    },\n    {\n      \"name\": \"faDrawPolygon\"\n    },\n    {\n      \"name\": \"faDribbble\"\n    },\n    {\n      \"name\": \"faDribbbleSquare\"\n    },\n    {\n      \"name\": \"faDropbox\"\n    },\n    {\n      \"name\": \"faDrum\"\n    },\n    {\n      \"name\": \"faDrumSteelpan\"\n    },\n    {\n      \"name\": \"faDrumstickBite\"\n    },\n    {\n      \"name\": \"faDrupal\"\n    },\n    {\n      \"name\": \"faDumbbell\"\n    },\n    {\n      \"name\": \"faDumpster\"\n    },\n    {\n      \"name\": \"faDumpsterFire\"\n    },\n    {\n      \"name\": \"faDungeon\"\n    },\n    {\n      \"name\": \"faDyalog\"\n    },\n    {\n      \"name\": \"faEarlybirds\"\n    },\n    {\n      \"name\": \"faEbay\"\n    },\n    {\n      \"name\": \"faEdge\"\n    },\n    {\n      \"name\": \"faEdgeLegacy\"\n    },\n    {\n      \"name\": \"faEdit\"\n    },\n    {\n      \"name\": \"faEdit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faEdit[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faEgg\"\n    },\n    {\n      \"name\": \"faEject\"\n    },\n    {\n      \"name\": \"faElementor\"\n    },\n    {\n      \"name\": \"faEllipsisH\"\n    },\n    {\n      \"name\": \"faEllipsisV\"\n    },\n    {\n      \"name\": \"faEllo\"\n    },\n    {\n      \"name\": \"faEmber\"\n    },\n    {\n      \"name\": \"faEmpire\"\n    },\n    {\n      \"name\": \"faEnvelope\"\n    },\n    {\n      \"name\": \"faEnvelope\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faEnvelope[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faEnvelopeOpen\"\n    },\n    {\n      \"name\": \"faEnvelopeOpen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faEnvelopeOpen[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faEnvelopeOpenText\"\n    },\n    {\n      \"name\": \"faEnvelopeSquare\"\n    },\n    {\n      \"name\": \"faEnvira\"\n    },\n    {\n      \"name\": \"faEquals\"\n    },\n    {\n      \"name\": \"faEraser\"\n    },\n    {\n      \"name\": \"faErlang\"\n    },\n    {\n      \"name\": \"faEthereum\"\n    },\n    {\n      \"name\": \"faEthernet\"\n    },\n    {\n      \"name\": \"faEtsy\"\n    },\n    {\n      \"name\": \"faEuroSign\"\n    },\n    {\n      \"name\": \"faEvernote\"\n    },\n    {\n      \"name\": \"faExchange*\"\n    },\n    {\n      \"name\": \"faExclamation\"\n    },\n    {\n      \"name\": \"faExclamationCircle\"\n    },\n    {\n      \"name\": \"faExclamationTriangle\"\n    },\n    {\n      \"name\": \"faExpand\"\n    },\n    {\n      \"name\": \"faExpandArrows*\"\n    },\n    {\n      \"name\": \"faExpeditedssl\"\n    },\n    {\n      \"name\": \"faExternalLink*\"\n    },\n    {\n      \"name\": \"faExternalLinkSquare*\"\n    },\n    {\n      \"name\": \"faEye\"\n    },\n    {\n      \"name\": \"faEye\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faEye[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faEyeDropper\"\n    },\n    {\n      \"name\": \"faEyeSlash\"\n    },\n    {\n      \"name\": \"faEyeSlash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faEyeSlash[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFacebook\"\n    },\n    {\n      \"name\": \"faFacebookF\"\n    },\n    {\n      \"name\": \"faFacebookMessenger\"\n    },\n    {\n      \"name\": \"faFacebookSquare\"\n    },\n    {\n      \"name\": \"faFan\"\n    },\n    {\n      \"name\": \"faFantasyFlightGames\"\n    },\n    {\n      \"name\": \"faFastBackward\"\n    },\n    {\n      \"name\": \"faFastForward\"\n    },\n    {\n      \"name\": \"faFaucet\"\n    },\n    {\n      \"name\": \"faFax\"\n    },\n    {\n      \"name\": \"faFeather\"\n    },\n    {\n      \"name\": \"faFeather*\"\n    },\n    {\n      \"name\": \"faFedex\"\n    },\n    {\n      \"name\": \"faFedora\"\n    },\n    {\n      \"name\": \"faFemale\"\n    },\n    {\n      \"name\": \"faFighterJet\"\n    },\n    {\n      \"name\": \"faFigma\"\n    },\n    {\n      \"name\": \"faFile\"\n    },\n    {\n      \"name\": \"faFile*\"\n    },\n    {\n      \"name\": \"faFile*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFile*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFile[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileArchive\"\n    },\n    {\n      \"name\": \"faFileArchive\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileArchive[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileAudio\"\n    },\n    {\n      \"name\": \"faFileAudio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileAudio[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileCode\"\n    },\n    {\n      \"name\": \"faFileCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileCode[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileContract\"\n    },\n    {\n      \"name\": \"faFileCsv\"\n    },\n    {\n      \"name\": \"faFileDownload\"\n    },\n    {\n      \"name\": \"faFileExcel\"\n    },\n    {\n      \"name\": \"faFileExcel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileExcel[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileExport\"\n    },\n    {\n      \"name\": \"faFileImage\"\n    },\n    {\n      \"name\": \"faFileImage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileImage[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileImport\"\n    },\n    {\n      \"name\": \"faFileInvoice\"\n    },\n    {\n      \"name\": \"faFileInvoiceDollar\"\n    },\n    {\n      \"name\": \"faFileMedical\"\n    },\n    {\n      \"name\": \"faFileMedical*\"\n    },\n    {\n      \"name\": \"faFilePdf\"\n    },\n    {\n      \"name\": \"faFilePdf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFilePdf[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFilePowerpoint\"\n    },\n    {\n      \"name\": \"faFilePowerpoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFilePowerpoint[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFilePrescription\"\n    },\n    {\n      \"name\": \"faFileSignature\"\n    },\n    {\n      \"name\": \"faFileUpload\"\n    },\n    {\n      \"name\": \"faFileVideo\"\n    },\n    {\n      \"name\": \"faFileVideo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileVideo[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFileWord\"\n    },\n    {\n      \"name\": \"faFileWord\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFileWord[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFill\"\n    },\n    {\n      \"name\": \"faFillDrip\"\n    },\n    {\n      \"name\": \"faFilm\"\n    },\n    {\n      \"name\": \"faFilter\"\n    },\n    {\n      \"name\": \"faFingerprint\"\n    },\n    {\n      \"name\": \"faFire\"\n    },\n    {\n      \"name\": \"faFire*\"\n    },\n    {\n      \"name\": \"faFireExtinguisher\"\n    },\n    {\n      \"name\": \"faFirefox\"\n    },\n    {\n      \"name\": \"faFirefoxBrowser\"\n    },\n    {\n      \"name\": \"faFirstAid\"\n    },\n    {\n      \"name\": \"faFirstdraft\"\n    },\n    {\n      \"name\": \"faFirstOrder\"\n    },\n    {\n      \"name\": \"faFirstOrder*\"\n    },\n    {\n      \"name\": \"faFish\"\n    },\n    {\n      \"name\": \"faFistRaised\"\n    },\n    {\n      \"name\": \"faFlag\"\n    },\n    {\n      \"name\": \"faFlag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFlag[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFlagCheckered\"\n    },\n    {\n      \"name\": \"faFlagUsa\"\n    },\n    {\n      \"name\": \"faFlask\"\n    },\n    {\n      \"name\": \"faFlickr\"\n    },\n    {\n      \"name\": \"faFlipboard\"\n    },\n    {\n      \"name\": \"faFlushed\"\n    },\n    {\n      \"name\": \"faFlushed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFlushed[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFly\"\n    },\n    {\n      \"name\": \"faFolder\"\n    },\n    {\n      \"name\": \"faFolder\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFolder[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFolderMinus\"\n    },\n    {\n      \"name\": \"faFolderOpen\"\n    },\n    {\n      \"name\": \"faFolderOpen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFolderOpen[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFolderPlus\"\n    },\n    {\n      \"name\": \"faFont\"\n    },\n    {\n      \"name\": \"faFontAwesome\"\n    },\n    {\n      \"name\": \"faFontAwesome*\"\n    },\n    {\n      \"name\": \"faFontAwesomeFlag\"\n    },\n    {\n      \"name\": \"faFonticons\"\n    },\n    {\n      \"name\": \"faFonticonsFi\"\n    },\n    {\n      \"name\": \"faFootballBall\"\n    },\n    {\n      \"name\": \"faFortAwesome\"\n    },\n    {\n      \"name\": \"faFortAwesome*\"\n    },\n    {\n      \"name\": \"faForumbee\"\n    },\n    {\n      \"name\": \"faForward\"\n    },\n    {\n      \"name\": \"faFoursquare\"\n    },\n    {\n      \"name\": \"faFreebsd\"\n    },\n    {\n      \"name\": \"faFreeCodeCamp\"\n    },\n    {\n      \"name\": \"faFrog\"\n    },\n    {\n      \"name\": \"faFrown\"\n    },\n    {\n      \"name\": \"faFrown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFrown[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFrownOpen\"\n    },\n    {\n      \"name\": \"faFrownOpen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFrownOpen[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faFulcrum\"\n    },\n    {\n      \"name\": \"faFunnelDollar\"\n    },\n    {\n      \"name\": \"faFutbol\"\n    },\n    {\n      \"name\": \"faFutbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faFutbol[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGalacticRepublic\"\n    },\n    {\n      \"name\": \"faGalacticSenate\"\n    },\n    {\n      \"name\": \"faGamepad\"\n    },\n    {\n      \"name\": \"faGasPump\"\n    },\n    {\n      \"name\": \"faGavel\"\n    },\n    {\n      \"name\": \"faGem\"\n    },\n    {\n      \"name\": \"faGem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGem[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGenderless\"\n    },\n    {\n      \"name\": \"faGetPocket\"\n    },\n    {\n      \"name\": \"faGg\"\n    },\n    {\n      \"name\": \"faGgCircle\"\n    },\n    {\n      \"name\": \"faGhost\"\n    },\n    {\n      \"name\": \"faGift\"\n    },\n    {\n      \"name\": \"faGifts\"\n    },\n    {\n      \"name\": \"faGit\"\n    },\n    {\n      \"name\": \"faGit*\"\n    },\n    {\n      \"name\": \"faGithub\"\n    },\n    {\n      \"name\": \"faGithub*\"\n    },\n    {\n      \"name\": \"faGithubSquare\"\n    },\n    {\n      \"name\": \"faGitkraken\"\n    },\n    {\n      \"name\": \"faGitlab\"\n    },\n    {\n      \"name\": \"faGitSquare\"\n    },\n    {\n      \"name\": \"faGitter\"\n    },\n    {\n      \"name\": \"faGlassCheers\"\n    },\n    {\n      \"name\": \"faGlasses\"\n    },\n    {\n      \"name\": \"faGlassMartini\"\n    },\n    {\n      \"name\": \"faGlassMartini*\"\n    },\n    {\n      \"name\": \"faGlassWhiskey\"\n    },\n    {\n      \"name\": \"faGlide\"\n    },\n    {\n      \"name\": \"faGlideG\"\n    },\n    {\n      \"name\": \"faGlobe\"\n    },\n    {\n      \"name\": \"faGlobeAfrica\"\n    },\n    {\n      \"name\": \"faGlobeAmericas\"\n    },\n    {\n      \"name\": \"faGlobeAsia\"\n    },\n    {\n      \"name\": \"faGlobeEurope\"\n    },\n    {\n      \"name\": \"faGofore\"\n    },\n    {\n      \"name\": \"faGolfBall\"\n    },\n    {\n      \"name\": \"faGoodreads\"\n    },\n    {\n      \"name\": \"faGoodreadsG\"\n    },\n    {\n      \"name\": \"faGoogle\"\n    },\n    {\n      \"name\": \"faGoogleDrive\"\n    },\n    {\n      \"name\": \"faGooglePay\"\n    },\n    {\n      \"name\": \"faGooglePlay\"\n    },\n    {\n      \"name\": \"faGooglePlus\"\n    },\n    {\n      \"name\": \"faGooglePlusG\"\n    },\n    {\n      \"name\": \"faGooglePlusSquare\"\n    },\n    {\n      \"name\": \"faGoogleWallet\"\n    },\n    {\n      \"name\": \"faGopuram\"\n    },\n    {\n      \"name\": \"faGraduationCap\"\n    },\n    {\n      \"name\": \"faGratipay\"\n    },\n    {\n      \"name\": \"faGrav\"\n    },\n    {\n      \"name\": \"faGreaterThan\"\n    },\n    {\n      \"name\": \"faGreaterThanEqual\"\n    },\n    {\n      \"name\": \"faGrimace\"\n    },\n    {\n      \"name\": \"faGrimace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrimace[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrin\"\n    },\n    {\n      \"name\": \"faGrin*\"\n    },\n    {\n      \"name\": \"faGrin*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrin*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrin[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinBeam\"\n    },\n    {\n      \"name\": \"faGrinBeam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinBeam[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinBeamSweat\"\n    },\n    {\n      \"name\": \"faGrinBeamSweat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinBeamSweat[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinHearts\"\n    },\n    {\n      \"name\": \"faGrinHearts\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinHearts[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinSquint\"\n    },\n    {\n      \"name\": \"faGrinSquint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinSquint[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinSquintTears\"\n    },\n    {\n      \"name\": \"faGrinSquintTears\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinSquintTears[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinStars\"\n    },\n    {\n      \"name\": \"faGrinStars\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinStars[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinTears\"\n    },\n    {\n      \"name\": \"faGrinTears\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinTears[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinTongue\"\n    },\n    {\n      \"name\": \"faGrinTongue\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinTongue[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinTongueSquint\"\n    },\n    {\n      \"name\": \"faGrinTongueSquint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinTongueSquint[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinTongueWink\"\n    },\n    {\n      \"name\": \"faGrinTongueWink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinTongueWink[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGrinWink\"\n    },\n    {\n      \"name\": \"faGrinWink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faGrinWink[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faGripfire\"\n    },\n    {\n      \"name\": \"faGripHorizontal\"\n    },\n    {\n      \"name\": \"faGripLines\"\n    },\n    {\n      \"name\": \"faGripLinesVertical\"\n    },\n    {\n      \"name\": \"faGripVertical\"\n    },\n    {\n      \"name\": \"faGrunt\"\n    },\n    {\n      \"name\": \"faGuilded\"\n    },\n    {\n      \"name\": \"faGuitar\"\n    },\n    {\n      \"name\": \"faGulp\"\n    },\n    {\n      \"name\": \"faHackerNews\"\n    },\n    {\n      \"name\": \"faHackerNewsSquare\"\n    },\n    {\n      \"name\": \"faHackerrank\"\n    },\n    {\n      \"name\": \"faHamburger\"\n    },\n    {\n      \"name\": \"faHammer\"\n    },\n    {\n      \"name\": \"faHamsa\"\n    },\n    {\n      \"name\": \"faHandHolding\"\n    },\n    {\n      \"name\": \"faHandHoldingHeart\"\n    },\n    {\n      \"name\": \"faHandHoldingMedical\"\n    },\n    {\n      \"name\": \"faHandHoldingUsd\"\n    },\n    {\n      \"name\": \"faHandHoldingWater\"\n    },\n    {\n      \"name\": \"faHandLizard\"\n    },\n    {\n      \"name\": \"faHandLizard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandLizard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandMiddleFinger\"\n    },\n    {\n      \"name\": \"faHandPaper\"\n    },\n    {\n      \"name\": \"faHandPaper\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPaper[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPeace\"\n    },\n    {\n      \"name\": \"faHandPeace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPeace[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPointDown\"\n    },\n    {\n      \"name\": \"faHandPointDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPointDown[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPointer\"\n    },\n    {\n      \"name\": \"faHandPointer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPointer[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPointLeft\"\n    },\n    {\n      \"name\": \"faHandPointLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPointLeft[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPointRight\"\n    },\n    {\n      \"name\": \"faHandPointRight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPointRight[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandPointUp\"\n    },\n    {\n      \"name\": \"faHandPointUp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandPointUp[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandRock\"\n    },\n    {\n      \"name\": \"faHandRock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandRock[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHands\"\n    },\n    {\n      \"name\": \"faHandScissors\"\n    },\n    {\n      \"name\": \"faHandScissors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandScissors[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandshake\"\n    },\n    {\n      \"name\": \"faHandshake\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandshake[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandshakeAltSlash\"\n    },\n    {\n      \"name\": \"faHandshakeSlash\"\n    },\n    {\n      \"name\": \"faHandsHelping\"\n    },\n    {\n      \"name\": \"faHandSparkles\"\n    },\n    {\n      \"name\": \"faHandSpock\"\n    },\n    {\n      \"name\": \"faHandSpock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHandSpock[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHandsWash\"\n    },\n    {\n      \"name\": \"faHanukiah\"\n    },\n    {\n      \"name\": \"faHardHat\"\n    },\n    {\n      \"name\": \"faHashtag\"\n    },\n    {\n      \"name\": \"faHatCowboy\"\n    },\n    {\n      \"name\": \"faHatCowboySide\"\n    },\n    {\n      \"name\": \"faHatWizard\"\n    },\n    {\n      \"name\": \"faHdd\"\n    },\n    {\n      \"name\": \"faHdd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHdd[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHeading\"\n    },\n    {\n      \"name\": \"faHeadphones\"\n    },\n    {\n      \"name\": \"faHeadphones*\"\n    },\n    {\n      \"name\": \"faHeadset\"\n    },\n    {\n      \"name\": \"faHeadSideCough\"\n    },\n    {\n      \"name\": \"faHeadSideCoughSlash\"\n    },\n    {\n      \"name\": \"faHeadSideMask\"\n    },\n    {\n      \"name\": \"faHeadSideVirus\"\n    },\n    {\n      \"name\": \"faHeart\"\n    },\n    {\n      \"name\": \"faHeart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHeart[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHeartbeat\"\n    },\n    {\n      \"name\": \"faHeartBroken\"\n    },\n    {\n      \"name\": \"faHelicopter\"\n    },\n    {\n      \"name\": \"faHighlighter\"\n    },\n    {\n      \"name\": \"faHiking\"\n    },\n    {\n      \"name\": \"faHippo\"\n    },\n    {\n      \"name\": \"faHips\"\n    },\n    {\n      \"name\": \"faHireAHelper\"\n    },\n    {\n      \"name\": \"faHistory\"\n    },\n    {\n      \"name\": \"faHive\"\n    },\n    {\n      \"name\": \"faHockeyPuck\"\n    },\n    {\n      \"name\": \"faHollyBerry\"\n    },\n    {\n      \"name\": \"faHome\"\n    },\n    {\n      \"name\": \"faHooli\"\n    },\n    {\n      \"name\": \"faHornbill\"\n    },\n    {\n      \"name\": \"faHorse\"\n    },\n    {\n      \"name\": \"faHorseHead\"\n    },\n    {\n      \"name\": \"faHospital\"\n    },\n    {\n      \"name\": \"faHospital*\"\n    },\n    {\n      \"name\": \"faHospital\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHospital[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHospitalSymbol\"\n    },\n    {\n      \"name\": \"faHospitalUser\"\n    },\n    {\n      \"name\": \"faHotdog\"\n    },\n    {\n      \"name\": \"faHotel\"\n    },\n    {\n      \"name\": \"faHotjar\"\n    },\n    {\n      \"name\": \"faHotTub\"\n    },\n    {\n      \"name\": \"faHourglass\"\n    },\n    {\n      \"name\": \"faHourglass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faHourglass[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faHourglassEnd\"\n    },\n    {\n      \"name\": \"faHourglassHalf\"\n    },\n    {\n      \"name\": \"faHourglassStart\"\n    },\n    {\n      \"name\": \"faHouseDamage\"\n    },\n    {\n      \"name\": \"faHouseUser\"\n    },\n    {\n      \"name\": \"faHouzz\"\n    },\n    {\n      \"name\": \"faHryvnia\"\n    },\n    {\n      \"name\": \"faHSquare\"\n    },\n    {\n      \"name\": \"faHtml5\"\n    },\n    {\n      \"name\": \"faHubspot\"\n    },\n    {\n      \"name\": \"faIceCream\"\n    },\n    {\n      \"name\": \"faIcicles\"\n    },\n    {\n      \"name\": \"faIcons\"\n    },\n    {\n      \"name\": \"faICursor\"\n    },\n    {\n      \"name\": \"faIdBadge\"\n    },\n    {\n      \"name\": \"faIdBadge\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faIdBadge[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faIdCard\"\n    },\n    {\n      \"name\": \"faIdCard*\"\n    },\n    {\n      \"name\": \"faIdCard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faIdCard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faIdeal\"\n    },\n    {\n      \"name\": \"faIgloo\"\n    },\n    {\n      \"name\": \"faImage\"\n    },\n    {\n      \"name\": \"faImage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faImage[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faImages\"\n    },\n    {\n      \"name\": \"faImages\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faImages[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faImdb\"\n    },\n    {\n      \"name\": \"faInbox\"\n    },\n    {\n      \"name\": \"faIndent\"\n    },\n    {\n      \"name\": \"faIndustry\"\n    },\n    {\n      \"name\": \"faInfinity\"\n    },\n    {\n      \"name\": \"faInfo\"\n    },\n    {\n      \"name\": \"faInfoCircle\"\n    },\n    {\n      \"name\": \"faInnosoft\"\n    },\n    {\n      \"name\": \"faInstagram\"\n    },\n    {\n      \"name\": \"faInstagramSquare\"\n    },\n    {\n      \"name\": \"faInstalod\"\n    },\n    {\n      \"name\": \"faIntercom\"\n    },\n    {\n      \"name\": \"faInternetExplorer\"\n    },\n    {\n      \"name\": \"faInvision\"\n    },\n    {\n      \"name\": \"faIoxhost\"\n    },\n    {\n      \"name\": \"faItalic\"\n    },\n    {\n      \"name\": \"faItchIo\"\n    },\n    {\n      \"name\": \"faItunes\"\n    },\n    {\n      \"name\": \"faItunesNote\"\n    },\n    {\n      \"name\": \"faJava\"\n    },\n    {\n      \"name\": \"faJedi\"\n    },\n    {\n      \"name\": \"faJediOrder\"\n    },\n    {\n      \"name\": \"faJenkins\"\n    },\n    {\n      \"name\": \"faJira\"\n    },\n    {\n      \"name\": \"faJoget\"\n    },\n    {\n      \"name\": \"faJoint\"\n    },\n    {\n      \"name\": \"faJoomla\"\n    },\n    {\n      \"name\": \"faJournalWhills\"\n    },\n    {\n      \"name\": \"faJs\"\n    },\n    {\n      \"name\": \"faJsfiddle\"\n    },\n    {\n      \"name\": \"faJsSquare\"\n    },\n    {\n      \"name\": \"faKaaba\"\n    },\n    {\n      \"name\": \"faKaggle\"\n    },\n    {\n      \"name\": \"faKey\"\n    },\n    {\n      \"name\": \"faKeybase\"\n    },\n    {\n      \"name\": \"faKeyboard\"\n    },\n    {\n      \"name\": \"faKeyboard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faKeyboard[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faKeycdn\"\n    },\n    {\n      \"name\": \"faKhanda\"\n    },\n    {\n      \"name\": \"faKickstarter\"\n    },\n    {\n      \"name\": \"faKickstarterK\"\n    },\n    {\n      \"name\": \"faKiss\"\n    },\n    {\n      \"name\": \"faKiss\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faKiss[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faKissBeam\"\n    },\n    {\n      \"name\": \"faKissBeam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faKissBeam[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faKissWinkHeart\"\n    },\n    {\n      \"name\": \"faKissWinkHeart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faKissWinkHeart[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faKiwiBird\"\n    },\n    {\n      \"name\": \"faKorvue\"\n    },\n    {\n      \"name\": \"faLandmark\"\n    },\n    {\n      \"name\": \"faLanguage\"\n    },\n    {\n      \"name\": \"faLaptop\"\n    },\n    {\n      \"name\": \"faLaptopCode\"\n    },\n    {\n      \"name\": \"faLaptopHouse\"\n    },\n    {\n      \"name\": \"faLaptopMedical\"\n    },\n    {\n      \"name\": \"faLaravel\"\n    },\n    {\n      \"name\": \"faLastfm\"\n    },\n    {\n      \"name\": \"faLastfmSquare\"\n    },\n    {\n      \"name\": \"faLaugh\"\n    },\n    {\n      \"name\": \"faLaugh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLaugh[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLaughBeam\"\n    },\n    {\n      \"name\": \"faLaughBeam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLaughBeam[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLaughSquint\"\n    },\n    {\n      \"name\": \"faLaughSquint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLaughSquint[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLaughWink\"\n    },\n    {\n      \"name\": \"faLaughWink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLaughWink[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLayerGroup\"\n    },\n    {\n      \"name\": \"faLeaf\"\n    },\n    {\n      \"name\": \"faLeanpub\"\n    },\n    {\n      \"name\": \"faLemon\"\n    },\n    {\n      \"name\": \"faLemon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLemon[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLess\"\n    },\n    {\n      \"name\": \"faLessThan\"\n    },\n    {\n      \"name\": \"faLessThanEqual\"\n    },\n    {\n      \"name\": \"faLevelDown*\"\n    },\n    {\n      \"name\": \"faLevelUp*\"\n    },\n    {\n      \"name\": \"faLifeRing\"\n    },\n    {\n      \"name\": \"faLifeRing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLifeRing[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLightbulb\"\n    },\n    {\n      \"name\": \"faLightbulb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faLightbulb[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faLine\"\n    },\n    {\n      \"name\": \"faLink\"\n    },\n    {\n      \"name\": \"faLinkedin\"\n    },\n    {\n      \"name\": \"faLinkedinIn\"\n    },\n    {\n      \"name\": \"faLinode\"\n    },\n    {\n      \"name\": \"faLinux\"\n    },\n    {\n      \"name\": \"faLiraSign\"\n    },\n    {\n      \"name\": \"faList\"\n    },\n    {\n      \"name\": \"faList*\"\n    },\n    {\n      \"name\": \"faList*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faList*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faListOl\"\n    },\n    {\n      \"name\": \"faListUl\"\n    },\n    {\n      \"name\": \"faLocationArrow\"\n    },\n    {\n      \"name\": \"faLock\"\n    },\n    {\n      \"name\": \"faLockOpen\"\n    },\n    {\n      \"name\": \"faLongArrowAltDown\"\n    },\n    {\n      \"name\": \"faLongArrowAltLeft\"\n    },\n    {\n      \"name\": \"faLongArrowAltRight\"\n    },\n    {\n      \"name\": \"faLongArrowAltUp\"\n    },\n    {\n      \"name\": \"faLowVision\"\n    },\n    {\n      \"name\": \"faLuggageCart\"\n    },\n    {\n      \"name\": \"faLungs\"\n    },\n    {\n      \"name\": \"faLungsVirus\"\n    },\n    {\n      \"name\": \"faLyft\"\n    },\n    {\n      \"name\": \"faMagento\"\n    },\n    {\n      \"name\": \"faMagic\"\n    },\n    {\n      \"name\": \"faMagnet\"\n    },\n    {\n      \"name\": \"faMailBulk\"\n    },\n    {\n      \"name\": \"faMailchimp\"\n    },\n    {\n      \"name\": \"faMale\"\n    },\n    {\n      \"name\": \"faMandalorian\"\n    },\n    {\n      \"name\": \"faMap\"\n    },\n    {\n      \"name\": \"faMap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMap[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMapMarked\"\n    },\n    {\n      \"name\": \"faMapMarked*\"\n    },\n    {\n      \"name\": \"faMapMarker\"\n    },\n    {\n      \"name\": \"faMapMarker*\"\n    },\n    {\n      \"name\": \"faMapPin\"\n    },\n    {\n      \"name\": \"faMapSigns\"\n    },\n    {\n      \"name\": \"faMarkdown\"\n    },\n    {\n      \"name\": \"faMarker\"\n    },\n    {\n      \"name\": \"faMars\"\n    },\n    {\n      \"name\": \"faMarsDouble\"\n    },\n    {\n      \"name\": \"faMarsStroke\"\n    },\n    {\n      \"name\": \"faMarsStrokeH\"\n    },\n    {\n      \"name\": \"faMarsStrokeV\"\n    },\n    {\n      \"name\": \"faMask\"\n    },\n    {\n      \"name\": \"faMastodon\"\n    },\n    {\n      \"name\": \"faMaxcdn\"\n    },\n    {\n      \"name\": \"faMdb\"\n    },\n    {\n      \"name\": \"faMedal\"\n    },\n    {\n      \"name\": \"faMedapps\"\n    },\n    {\n      \"name\": \"faMedium\"\n    },\n    {\n      \"name\": \"faMediumM\"\n    },\n    {\n      \"name\": \"faMedkit\"\n    },\n    {\n      \"name\": \"faMedrt\"\n    },\n    {\n      \"name\": \"faMeetup\"\n    },\n    {\n      \"name\": \"faMegaport\"\n    },\n    {\n      \"name\": \"faMeh\"\n    },\n    {\n      \"name\": \"faMeh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMeh[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMehBlank\"\n    },\n    {\n      \"name\": \"faMehBlank\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMehBlank[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMehRollingEyes\"\n    },\n    {\n      \"name\": \"faMehRollingEyes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMehRollingEyes[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMemory\"\n    },\n    {\n      \"name\": \"faMendeley\"\n    },\n    {\n      \"name\": \"faMenorah\"\n    },\n    {\n      \"name\": \"faMercury\"\n    },\n    {\n      \"name\": \"faMeteor\"\n    },\n    {\n      \"name\": \"faMicroblog\"\n    },\n    {\n      \"name\": \"faMicrochip\"\n    },\n    {\n      \"name\": \"faMicrophone\"\n    },\n    {\n      \"name\": \"faMicrophone*\"\n    },\n    {\n      \"name\": \"faMicrophoneAltSlash\"\n    },\n    {\n      \"name\": \"faMicrophoneSlash\"\n    },\n    {\n      \"name\": \"faMicroscope\"\n    },\n    {\n      \"name\": \"faMicrosoft\"\n    },\n    {\n      \"name\": \"faMinus\"\n    },\n    {\n      \"name\": \"faMinusCircle\"\n    },\n    {\n      \"name\": \"faMinusSquare\"\n    },\n    {\n      \"name\": \"faMinusSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMinusSquare[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMitten\"\n    },\n    {\n      \"name\": \"faMix\"\n    },\n    {\n      \"name\": \"faMixcloud\"\n    },\n    {\n      \"name\": \"faMixer\"\n    },\n    {\n      \"name\": \"faMizuni\"\n    },\n    {\n      \"name\": \"faMobile\"\n    },\n    {\n      \"name\": \"faMobile*\"\n    },\n    {\n      \"name\": \"faModx\"\n    },\n    {\n      \"name\": \"faMonero\"\n    },\n    {\n      \"name\": \"faMoneyBill\"\n    },\n    {\n      \"name\": \"faMoneyBill*\"\n    },\n    {\n      \"name\": \"faMoneyBill*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMoneyBill*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMoneyBillWave\"\n    },\n    {\n      \"name\": \"faMoneyBillWave*\"\n    },\n    {\n      \"name\": \"faMoneyCheck\"\n    },\n    {\n      \"name\": \"faMoneyCheck*\"\n    },\n    {\n      \"name\": \"faMonument\"\n    },\n    {\n      \"name\": \"faMoon\"\n    },\n    {\n      \"name\": \"faMoon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faMoon[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faMortarPestle\"\n    },\n    {\n      \"name\": \"faMosque\"\n    },\n    {\n      \"name\": \"faMotorcycle\"\n    },\n    {\n      \"name\": \"faMountain\"\n    },\n    {\n      \"name\": \"faMouse\"\n    },\n    {\n      \"name\": \"faMousePointer\"\n    },\n    {\n      \"name\": \"faMugHot\"\n    },\n    {\n      \"name\": \"faMusic\"\n    },\n    {\n      \"name\": \"faNapster\"\n    },\n    {\n      \"name\": \"faNeos\"\n    },\n    {\n      \"name\": \"faNetworkWired\"\n    },\n    {\n      \"name\": \"faNeuter\"\n    },\n    {\n      \"name\": \"faNewspaper\"\n    },\n    {\n      \"name\": \"faNewspaper\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faNewspaper[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faNimblr\"\n    },\n    {\n      \"name\": \"faNode\"\n    },\n    {\n      \"name\": \"faNodeJs\"\n    },\n    {\n      \"name\": \"faNotEqual\"\n    },\n    {\n      \"name\": \"faNotesMedical\"\n    },\n    {\n      \"name\": \"faNpm\"\n    },\n    {\n      \"name\": \"faNs8\"\n    },\n    {\n      \"name\": \"faNutritionix\"\n    },\n    {\n      \"name\": \"faObjectGroup\"\n    },\n    {\n      \"name\": \"faObjectGroup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faObjectGroup[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faObjectUngroup\"\n    },\n    {\n      \"name\": \"faObjectUngroup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faObjectUngroup[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faOctopusDeploy\"\n    },\n    {\n      \"name\": \"faOdnoklassniki\"\n    },\n    {\n      \"name\": \"faOdnoklassnikiSquare\"\n    },\n    {\n      \"name\": \"faOilCan\"\n    },\n    {\n      \"name\": \"faOldRepublic\"\n    },\n    {\n      \"name\": \"faOm\"\n    },\n    {\n      \"name\": \"faOpencart\"\n    },\n    {\n      \"name\": \"faOpenid\"\n    },\n    {\n      \"name\": \"faOpera\"\n    },\n    {\n      \"name\": \"faOptinMonster\"\n    },\n    {\n      \"name\": \"faOrcid\"\n    },\n    {\n      \"name\": \"faOsi\"\n    },\n    {\n      \"name\": \"faOtter\"\n    },\n    {\n      \"name\": \"faOutdent\"\n    },\n    {\n      \"name\": \"faPage4\"\n    },\n    {\n      \"name\": \"faPagelines\"\n    },\n    {\n      \"name\": \"faPager\"\n    },\n    {\n      \"name\": \"faPaintBrush\"\n    },\n    {\n      \"name\": \"faPaintRoller\"\n    },\n    {\n      \"name\": \"faPalette\"\n    },\n    {\n      \"name\": \"faPalfed\"\n    },\n    {\n      \"name\": \"faPallet\"\n    },\n    {\n      \"name\": \"faPaperclip\"\n    },\n    {\n      \"name\": \"faPaperPlane\"\n    },\n    {\n      \"name\": \"faPaperPlane\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faPaperPlane[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faParachuteBox\"\n    },\n    {\n      \"name\": \"faParagraph\"\n    },\n    {\n      \"name\": \"faParking\"\n    },\n    {\n      \"name\": \"faPassport\"\n    },\n    {\n      \"name\": \"faPastafarianism\"\n    },\n    {\n      \"name\": \"faPaste\"\n    },\n    {\n      \"name\": \"faPatreon\"\n    },\n    {\n      \"name\": \"faPause\"\n    },\n    {\n      \"name\": \"faPauseCircle\"\n    },\n    {\n      \"name\": \"faPauseCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faPauseCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faPaw\"\n    },\n    {\n      \"name\": \"faPaypal\"\n    },\n    {\n      \"name\": \"faPeace\"\n    },\n    {\n      \"name\": \"faPen\"\n    },\n    {\n      \"name\": \"faPen*\"\n    },\n    {\n      \"name\": \"faPencil*\"\n    },\n    {\n      \"name\": \"faPencilRuler\"\n    },\n    {\n      \"name\": \"faPenFancy\"\n    },\n    {\n      \"name\": \"faPenNib\"\n    },\n    {\n      \"name\": \"faPennyArcade\"\n    },\n    {\n      \"name\": \"faPenSquare\"\n    },\n    {\n      \"name\": \"faPeopleArrows\"\n    },\n    {\n      \"name\": \"faPeopleCarry\"\n    },\n    {\n      \"name\": \"faPepperHot\"\n    },\n    {\n      \"name\": \"faPerbyte\"\n    },\n    {\n      \"name\": \"faPercent\"\n    },\n    {\n      \"name\": \"faPercentage\"\n    },\n    {\n      \"name\": \"faPeriscope\"\n    },\n    {\n      \"name\": \"faPersonBooth\"\n    },\n    {\n      \"name\": \"faPhabricator\"\n    },\n    {\n      \"name\": \"faPhoenixFramework\"\n    },\n    {\n      \"name\": \"faPhoenixSquadron\"\n    },\n    {\n      \"name\": \"faPhone\"\n    },\n    {\n      \"name\": \"faPhone*\"\n    },\n    {\n      \"name\": \"faPhoneSlash\"\n    },\n    {\n      \"name\": \"faPhoneSquare\"\n    },\n    {\n      \"name\": \"faPhoneSquare*\"\n    },\n    {\n      \"name\": \"faPhoneVolume\"\n    },\n    {\n      \"name\": \"faPhotoVideo\"\n    },\n    {\n      \"name\": \"faPhp\"\n    },\n    {\n      \"name\": \"faPiedPiper\"\n    },\n    {\n      \"name\": \"faPiedPiper*\"\n    },\n    {\n      \"name\": \"faPiedPiperHat\"\n    },\n    {\n      \"name\": \"faPiedPiperPp\"\n    },\n    {\n      \"name\": \"faPiedPiperSquare\"\n    },\n    {\n      \"name\": \"faPiggyBank\"\n    },\n    {\n      \"name\": \"faPills\"\n    },\n    {\n      \"name\": \"faPinterest\"\n    },\n    {\n      \"name\": \"faPinterestP\"\n    },\n    {\n      \"name\": \"faPinterestSquare\"\n    },\n    {\n      \"name\": \"faPizzaSlice\"\n    },\n    {\n      \"name\": \"faPlaceOfWorship\"\n    },\n    {\n      \"name\": \"faPlane\"\n    },\n    {\n      \"name\": \"faPlaneArrival\"\n    },\n    {\n      \"name\": \"faPlaneDeparture\"\n    },\n    {\n      \"name\": \"faPlaneSlash\"\n    },\n    {\n      \"name\": \"faPlay\"\n    },\n    {\n      \"name\": \"faPlayCircle\"\n    },\n    {\n      \"name\": \"faPlayCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faPlayCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faPlaystation\"\n    },\n    {\n      \"name\": \"faPlug\"\n    },\n    {\n      \"name\": \"faPlus\"\n    },\n    {\n      \"name\": \"faPlusCircle\"\n    },\n    {\n      \"name\": \"faPlusSquare\"\n    },\n    {\n      \"name\": \"faPlusSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faPlusSquare[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faPodcast\"\n    },\n    {\n      \"name\": \"faPoll\"\n    },\n    {\n      \"name\": \"faPollH\"\n    },\n    {\n      \"name\": \"faPoo\"\n    },\n    {\n      \"name\": \"faPoop\"\n    },\n    {\n      \"name\": \"faPooStorm\"\n    },\n    {\n      \"name\": \"faPortrait\"\n    },\n    {\n      \"name\": \"faPoundSign\"\n    },\n    {\n      \"name\": \"faPowerOff\"\n    },\n    {\n      \"name\": \"faPray\"\n    },\n    {\n      \"name\": \"faPrayingHands\"\n    },\n    {\n      \"name\": \"faPrescription\"\n    },\n    {\n      \"name\": \"faPrescriptionBottle\"\n    },\n    {\n      \"name\": \"faPrescriptionBottle*\"\n    },\n    {\n      \"name\": \"faPrint\"\n    },\n    {\n      \"name\": \"faProcedures\"\n    },\n    {\n      \"name\": \"faProductHunt\"\n    },\n    {\n      \"name\": \"faProjectDiagram\"\n    },\n    {\n      \"name\": \"faPumpMedical\"\n    },\n    {\n      \"name\": \"faPumpSoap\"\n    },\n    {\n      \"name\": \"faPushed\"\n    },\n    {\n      \"name\": \"faPuzzlePiece\"\n    },\n    {\n      \"name\": \"faPython\"\n    },\n    {\n      \"name\": \"faQq\"\n    },\n    {\n      \"name\": \"faQrcode\"\n    },\n    {\n      \"name\": \"faQuestion\"\n    },\n    {\n      \"name\": \"faQuestionCircle\"\n    },\n    {\n      \"name\": \"faQuestionCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faQuestionCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faQuidditch\"\n    },\n    {\n      \"name\": \"faQuinscape\"\n    },\n    {\n      \"name\": \"faQuora\"\n    },\n    {\n      \"name\": \"faQuoteLeft\"\n    },\n    {\n      \"name\": \"faQuoteRight\"\n    },\n    {\n      \"name\": \"faQuran\"\n    },\n    {\n      \"name\": \"faRadiation\"\n    },\n    {\n      \"name\": \"faRadiation*\"\n    },\n    {\n      \"name\": \"faRainbow\"\n    },\n    {\n      \"name\": \"faRandom\"\n    },\n    {\n      \"name\": \"faRaspberryPi\"\n    },\n    {\n      \"name\": \"faRavelry\"\n    },\n    {\n      \"name\": \"faReact\"\n    },\n    {\n      \"name\": \"faReacteurope\"\n    },\n    {\n      \"name\": \"faReadme\"\n    },\n    {\n      \"name\": \"faRebel\"\n    },\n    {\n      \"name\": \"faReceipt\"\n    },\n    {\n      \"name\": \"faRecordVinyl\"\n    },\n    {\n      \"name\": \"faRecycle\"\n    },\n    {\n      \"name\": \"faReddit\"\n    },\n    {\n      \"name\": \"faRedditAlien\"\n    },\n    {\n      \"name\": \"faRedditSquare\"\n    },\n    {\n      \"name\": \"faRedhat\"\n    },\n    {\n      \"name\": \"faRedo\"\n    },\n    {\n      \"name\": \"faRedo*\"\n    },\n    {\n      \"name\": \"faRedRiver\"\n    },\n    {\n      \"name\": \"faRegistered\"\n    },\n    {\n      \"name\": \"faRegistered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faRegistered[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faRemoveFormat\"\n    },\n    {\n      \"name\": \"faRenren\"\n    },\n    {\n      \"name\": \"faReply\"\n    },\n    {\n      \"name\": \"faReplyAll\"\n    },\n    {\n      \"name\": \"faReplyd\"\n    },\n    {\n      \"name\": \"faRepublican\"\n    },\n    {\n      \"name\": \"faResearchgate\"\n    },\n    {\n      \"name\": \"faResolving\"\n    },\n    {\n      \"name\": \"faRestroom\"\n    },\n    {\n      \"name\": \"faRetweet\"\n    },\n    {\n      \"name\": \"faRev\"\n    },\n    {\n      \"name\": \"faRibbon\"\n    },\n    {\n      \"name\": \"faRing\"\n    },\n    {\n      \"name\": \"faRoad\"\n    },\n    {\n      \"name\": \"faRobot\"\n    },\n    {\n      \"name\": \"faRocket\"\n    },\n    {\n      \"name\": \"faRocketchat\"\n    },\n    {\n      \"name\": \"faRockrms\"\n    },\n    {\n      \"name\": \"faRoute\"\n    },\n    {\n      \"name\": \"faRProject\"\n    },\n    {\n      \"name\": \"faRss\"\n    },\n    {\n      \"name\": \"faRssSquare\"\n    },\n    {\n      \"name\": \"faRubleSign\"\n    },\n    {\n      \"name\": \"faRuler\"\n    },\n    {\n      \"name\": \"faRulerCombined\"\n    },\n    {\n      \"name\": \"faRulerHorizontal\"\n    },\n    {\n      \"name\": \"faRulerVertical\"\n    },\n    {\n      \"name\": \"faRunning\"\n    },\n    {\n      \"name\": \"faRupeeSign\"\n    },\n    {\n      \"name\": \"faRust\"\n    },\n    {\n      \"name\": \"faSadCry\"\n    },\n    {\n      \"name\": \"faSadCry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSadCry[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSadTear\"\n    },\n    {\n      \"name\": \"faSadTear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSadTear[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSafari\"\n    },\n    {\n      \"name\": \"faSalesforce\"\n    },\n    {\n      \"name\": \"faSass\"\n    },\n    {\n      \"name\": \"faSatellite\"\n    },\n    {\n      \"name\": \"faSatelliteDish\"\n    },\n    {\n      \"name\": \"faSave\"\n    },\n    {\n      \"name\": \"faSave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSave[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSchlix\"\n    },\n    {\n      \"name\": \"faSchool\"\n    },\n    {\n      \"name\": \"faScrewdriver\"\n    },\n    {\n      \"name\": \"faScribd\"\n    },\n    {\n      \"name\": \"faScroll\"\n    },\n    {\n      \"name\": \"faSdCard\"\n    },\n    {\n      \"name\": \"faSearch\"\n    },\n    {\n      \"name\": \"faSearchDollar\"\n    },\n    {\n      \"name\": \"faSearchengin\"\n    },\n    {\n      \"name\": \"faSearchLocation\"\n    },\n    {\n      \"name\": \"faSearchMinus\"\n    },\n    {\n      \"name\": \"faSearchPlus\"\n    },\n    {\n      \"name\": \"faSeedling\"\n    },\n    {\n      \"name\": \"faSellcast\"\n    },\n    {\n      \"name\": \"faSellsy\"\n    },\n    {\n      \"name\": \"faServer\"\n    },\n    {\n      \"name\": \"faServicestack\"\n    },\n    {\n      \"name\": \"faShapes\"\n    },\n    {\n      \"name\": \"faShare\"\n    },\n    {\n      \"name\": \"faShare*\"\n    },\n    {\n      \"name\": \"faShareAltSquare\"\n    },\n    {\n      \"name\": \"faShareSquare\"\n    },\n    {\n      \"name\": \"faShareSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faShareSquare[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faShekelSign\"\n    },\n    {\n      \"name\": \"faShield*\"\n    },\n    {\n      \"name\": \"faShieldVirus\"\n    },\n    {\n      \"name\": \"faShip\"\n    },\n    {\n      \"name\": \"faShippingFast\"\n    },\n    {\n      \"name\": \"faShirtsinbulk\"\n    },\n    {\n      \"name\": \"faShoePrints\"\n    },\n    {\n      \"name\": \"faShopify\"\n    },\n    {\n      \"name\": \"faShoppingBag\"\n    },\n    {\n      \"name\": \"faShoppingBasket\"\n    },\n    {\n      \"name\": \"faShoppingCart\"\n    },\n    {\n      \"name\": \"faShopware\"\n    },\n    {\n      \"name\": \"faShower\"\n    },\n    {\n      \"name\": \"faShuttleVan\"\n    },\n    {\n      \"name\": \"faSign\"\n    },\n    {\n      \"name\": \"faSignal\"\n    },\n    {\n      \"name\": \"faSignature\"\n    },\n    {\n      \"name\": \"faSignIn*\"\n    },\n    {\n      \"name\": \"faSignLanguage\"\n    },\n    {\n      \"name\": \"faSignOut*\"\n    },\n    {\n      \"name\": \"faSimCard\"\n    },\n    {\n      \"name\": \"faSimplybuilt\"\n    },\n    {\n      \"name\": \"faSink\"\n    },\n    {\n      \"name\": \"faSistrix\"\n    },\n    {\n      \"name\": \"faSitemap\"\n    },\n    {\n      \"name\": \"faSith\"\n    },\n    {\n      \"name\": \"faSkating\"\n    },\n    {\n      \"name\": \"faSketch\"\n    },\n    {\n      \"name\": \"faSkiing\"\n    },\n    {\n      \"name\": \"faSkiingNordic\"\n    },\n    {\n      \"name\": \"faSkull\"\n    },\n    {\n      \"name\": \"faSkullCrossbones\"\n    },\n    {\n      \"name\": \"faSkyatlas\"\n    },\n    {\n      \"name\": \"faSkype\"\n    },\n    {\n      \"name\": \"faSlack\"\n    },\n    {\n      \"name\": \"faSlackHash\"\n    },\n    {\n      \"name\": \"faSlash\"\n    },\n    {\n      \"name\": \"faSleigh\"\n    },\n    {\n      \"name\": \"faSlidersH\"\n    },\n    {\n      \"name\": \"faSlideshare\"\n    },\n    {\n      \"name\": \"faSmile\"\n    },\n    {\n      \"name\": \"faSmile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSmile[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSmileBeam\"\n    },\n    {\n      \"name\": \"faSmileBeam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSmileBeam[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSmileWink\"\n    },\n    {\n      \"name\": \"faSmileWink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSmileWink[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSmog\"\n    },\n    {\n      \"name\": \"faSmoking\"\n    },\n    {\n      \"name\": \"faSmokingBan\"\n    },\n    {\n      \"name\": \"faSms\"\n    },\n    {\n      \"name\": \"faSnapchat\"\n    },\n    {\n      \"name\": \"faSnapchatGhost\"\n    },\n    {\n      \"name\": \"faSnapchatSquare\"\n    },\n    {\n      \"name\": \"faSnowboarding\"\n    },\n    {\n      \"name\": \"faSnowflake\"\n    },\n    {\n      \"name\": \"faSnowflake\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSnowflake[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSnowman\"\n    },\n    {\n      \"name\": \"faSnowplow\"\n    },\n    {\n      \"name\": \"faSoap\"\n    },\n    {\n      \"name\": \"faSocks\"\n    },\n    {\n      \"name\": \"faSolarPanel\"\n    },\n    {\n      \"name\": \"faSort\"\n    },\n    {\n      \"name\": \"faSortAlphaDown\"\n    },\n    {\n      \"name\": \"faSortAlphaDown*\"\n    },\n    {\n      \"name\": \"faSortAlphaUp\"\n    },\n    {\n      \"name\": \"faSortAlphaUp*\"\n    },\n    {\n      \"name\": \"faSortAmountDown\"\n    },\n    {\n      \"name\": \"faSortAmountDown*\"\n    },\n    {\n      \"name\": \"faSortAmountUp\"\n    },\n    {\n      \"name\": \"faSortAmountUp*\"\n    },\n    {\n      \"name\": \"faSortDown\"\n    },\n    {\n      \"name\": \"faSortNumericDown\"\n    },\n    {\n      \"name\": \"faSortNumericDown*\"\n    },\n    {\n      \"name\": \"faSortNumericUp\"\n    },\n    {\n      \"name\": \"faSortNumericUp*\"\n    },\n    {\n      \"name\": \"faSortUp\"\n    },\n    {\n      \"name\": \"faSoundcloud\"\n    },\n    {\n      \"name\": \"faSourcetree\"\n    },\n    {\n      \"name\": \"faSpa\"\n    },\n    {\n      \"name\": \"faSpaceShuttle\"\n    },\n    {\n      \"name\": \"faSpeakap\"\n    },\n    {\n      \"name\": \"faSpeakerDeck\"\n    },\n    {\n      \"name\": \"faSpellCheck\"\n    },\n    {\n      \"name\": \"faSpider\"\n    },\n    {\n      \"name\": \"faSpinner\"\n    },\n    {\n      \"name\": \"faSplotch\"\n    },\n    {\n      \"name\": \"faSpotify\"\n    },\n    {\n      \"name\": \"faSprayCan\"\n    },\n    {\n      \"name\": \"faSquare\"\n    },\n    {\n      \"name\": \"faSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSquare[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSquareFull\"\n    },\n    {\n      \"name\": \"faSquareRoot*\"\n    },\n    {\n      \"name\": \"faSquarespace\"\n    },\n    {\n      \"name\": \"faStackExchange\"\n    },\n    {\n      \"name\": \"faStackOverflow\"\n    },\n    {\n      \"name\": \"faStackpath\"\n    },\n    {\n      \"name\": \"faStamp\"\n    },\n    {\n      \"name\": \"faStar\"\n    },\n    {\n      \"name\": \"faStar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faStar[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faStarAndCrescent\"\n    },\n    {\n      \"name\": \"faStarHalf\"\n    },\n    {\n      \"name\": \"faStarHalf*\"\n    },\n    {\n      \"name\": \"faStarHalf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faStarHalf[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faStarOfDavid\"\n    },\n    {\n      \"name\": \"faStarOfLife\"\n    },\n    {\n      \"name\": \"faStaylinked\"\n    },\n    {\n      \"name\": \"faSteam\"\n    },\n    {\n      \"name\": \"faSteamSquare\"\n    },\n    {\n      \"name\": \"faSteamSymbol\"\n    },\n    {\n      \"name\": \"faStepBackward\"\n    },\n    {\n      \"name\": \"faStepForward\"\n    },\n    {\n      \"name\": \"faStethoscope\"\n    },\n    {\n      \"name\": \"faStickerMule\"\n    },\n    {\n      \"name\": \"faStickyNote\"\n    },\n    {\n      \"name\": \"faStickyNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faStickyNote[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faStop\"\n    },\n    {\n      \"name\": \"faStopCircle\"\n    },\n    {\n      \"name\": \"faStopCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faStopCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faStopwatch\"\n    },\n    {\n      \"name\": \"faStore\"\n    },\n    {\n      \"name\": \"faStore*\"\n    },\n    {\n      \"name\": \"faStoreAltSlash\"\n    },\n    {\n      \"name\": \"faStoreSlash\"\n    },\n    {\n      \"name\": \"faStrava\"\n    },\n    {\n      \"name\": \"faStream\"\n    },\n    {\n      \"name\": \"faStreetView\"\n    },\n    {\n      \"name\": \"faStrikethrough\"\n    },\n    {\n      \"name\": \"faStripe\"\n    },\n    {\n      \"name\": \"faStripeS\"\n    },\n    {\n      \"name\": \"faStroopwafel\"\n    },\n    {\n      \"name\": \"faStudiovinari\"\n    },\n    {\n      \"name\": \"faStumbleupon\"\n    },\n    {\n      \"name\": \"faStumbleuponCircle\"\n    },\n    {\n      \"name\": \"faSubscript\"\n    },\n    {\n      \"name\": \"faSubway\"\n    },\n    {\n      \"name\": \"faSuitcase\"\n    },\n    {\n      \"name\": \"faSuitcaseRolling\"\n    },\n    {\n      \"name\": \"faSun\"\n    },\n    {\n      \"name\": \"faSun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSun[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSuperpowers\"\n    },\n    {\n      \"name\": \"faSuperscript\"\n    },\n    {\n      \"name\": \"faSupple\"\n    },\n    {\n      \"name\": \"faSurprise\"\n    },\n    {\n      \"name\": \"faSurprise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faSurprise[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faSuse\"\n    },\n    {\n      \"name\": \"faSwatchbook\"\n    },\n    {\n      \"name\": \"faSwift\"\n    },\n    {\n      \"name\": \"faSwimmer\"\n    },\n    {\n      \"name\": \"faSwimmingPool\"\n    },\n    {\n      \"name\": \"faSymfony\"\n    },\n    {\n      \"name\": \"faSynagogue\"\n    },\n    {\n      \"name\": \"faSync\"\n    },\n    {\n      \"name\": \"faSync*\"\n    },\n    {\n      \"name\": \"faSyringe\"\n    },\n    {\n      \"name\": \"faTable\"\n    },\n    {\n      \"name\": \"faTablet\"\n    },\n    {\n      \"name\": \"faTablet*\"\n    },\n    {\n      \"name\": \"faTableTennis\"\n    },\n    {\n      \"name\": \"faTablets\"\n    },\n    {\n      \"name\": \"faTachometer*\"\n    },\n    {\n      \"name\": \"faTag\"\n    },\n    {\n      \"name\": \"faTags\"\n    },\n    {\n      \"name\": \"faTape\"\n    },\n    {\n      \"name\": \"faTasks\"\n    },\n    {\n      \"name\": \"faTaxi\"\n    },\n    {\n      \"name\": \"faTeamspeak\"\n    },\n    {\n      \"name\": \"faTeeth\"\n    },\n    {\n      \"name\": \"faTeethOpen\"\n    },\n    {\n      \"name\": \"faTelegram\"\n    },\n    {\n      \"name\": \"faTelegramPlane\"\n    },\n    {\n      \"name\": \"faTemperatureHigh\"\n    },\n    {\n      \"name\": \"faTemperatureLow\"\n    },\n    {\n      \"name\": \"faTencentWeibo\"\n    },\n    {\n      \"name\": \"faTenge\"\n    },\n    {\n      \"name\": \"faTerminal\"\n    },\n    {\n      \"name\": \"faTextHeight\"\n    },\n    {\n      \"name\": \"faTextWidth\"\n    },\n    {\n      \"name\": \"faTh\"\n    },\n    {\n      \"name\": \"faTheaterMasks\"\n    },\n    {\n      \"name\": \"faThemeco\"\n    },\n    {\n      \"name\": \"faThemeisle\"\n    },\n    {\n      \"name\": \"faTheRedYeti\"\n    },\n    {\n      \"name\": \"faThermometer\"\n    },\n    {\n      \"name\": \"faThermometerEmpty\"\n    },\n    {\n      \"name\": \"faThermometerFull\"\n    },\n    {\n      \"name\": \"faThermometerHalf\"\n    },\n    {\n      \"name\": \"faThermometerQuarter\"\n    },\n    {\n      \"name\": \"faThermometerThreeQuarters\"\n    },\n    {\n      \"name\": \"faThinkPeaks\"\n    },\n    {\n      \"name\": \"faThLarge\"\n    },\n    {\n      \"name\": \"faThList\"\n    },\n    {\n      \"name\": \"faThumbsDown\"\n    },\n    {\n      \"name\": \"faThumbsDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faThumbsDown[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faThumbsUp\"\n    },\n    {\n      \"name\": \"faThumbsUp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faThumbsUp[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faThumbtack\"\n    },\n    {\n      \"name\": \"faTicket*\"\n    },\n    {\n      \"name\": \"faTiktok\"\n    },\n    {\n      \"name\": \"faTimes\"\n    },\n    {\n      \"name\": \"faTimesCircle\"\n    },\n    {\n      \"name\": \"faTimesCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faTimesCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faTint\"\n    },\n    {\n      \"name\": \"faTintSlash\"\n    },\n    {\n      \"name\": \"faTired\"\n    },\n    {\n      \"name\": \"faTired\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faTired[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faToggleOff\"\n    },\n    {\n      \"name\": \"faToggleOn\"\n    },\n    {\n      \"name\": \"faToilet\"\n    },\n    {\n      \"name\": \"faToiletPaper\"\n    },\n    {\n      \"name\": \"faToiletPaperSlash\"\n    },\n    {\n      \"name\": \"faToolbox\"\n    },\n    {\n      \"name\": \"faTools\"\n    },\n    {\n      \"name\": \"faTooth\"\n    },\n    {\n      \"name\": \"faTorah\"\n    },\n    {\n      \"name\": \"faToriiGate\"\n    },\n    {\n      \"name\": \"faTractor\"\n    },\n    {\n      \"name\": \"faTradeFederation\"\n    },\n    {\n      \"name\": \"faTrademark\"\n    },\n    {\n      \"name\": \"faTrafficLight\"\n    },\n    {\n      \"name\": \"faTrailer\"\n    },\n    {\n      \"name\": \"faTrain\"\n    },\n    {\n      \"name\": \"faTram\"\n    },\n    {\n      \"name\": \"faTransgender\"\n    },\n    {\n      \"name\": \"faTransgender*\"\n    },\n    {\n      \"name\": \"faTrash\"\n    },\n    {\n      \"name\": \"faTrash*\"\n    },\n    {\n      \"name\": \"faTrash*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faTrash*[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faTrashRestore\"\n    },\n    {\n      \"name\": \"faTrashRestore*\"\n    },\n    {\n      \"name\": \"faTree\"\n    },\n    {\n      \"name\": \"faTrello\"\n    },\n    {\n      \"name\": \"faTripadvisor\"\n    },\n    {\n      \"name\": \"faTrophy\"\n    },\n    {\n      \"name\": \"faTruck\"\n    },\n    {\n      \"name\": \"faTruckLoading\"\n    },\n    {\n      \"name\": \"faTruckMonster\"\n    },\n    {\n      \"name\": \"faTruckMoving\"\n    },\n    {\n      \"name\": \"faTruckPickup\"\n    },\n    {\n      \"name\": \"faTshirt\"\n    },\n    {\n      \"name\": \"faTty\"\n    },\n    {\n      \"name\": \"faTumblr\"\n    },\n    {\n      \"name\": \"faTumblrSquare\"\n    },\n    {\n      \"name\": \"faTv\"\n    },\n    {\n      \"name\": \"faTwitch\"\n    },\n    {\n      \"name\": \"faTwitter\"\n    },\n    {\n      \"name\": \"faTwitterSquare\"\n    },\n    {\n      \"name\": \"faTypo3\"\n    },\n    {\n      \"name\": \"faUber\"\n    },\n    {\n      \"name\": \"faUbuntu\"\n    },\n    {\n      \"name\": \"faUikit\"\n    },\n    {\n      \"name\": \"faUmbraco\"\n    },\n    {\n      \"name\": \"faUmbrella\"\n    },\n    {\n      \"name\": \"faUmbrellaBeach\"\n    },\n    {\n      \"name\": \"faUncharted\"\n    },\n    {\n      \"name\": \"faUnderline\"\n    },\n    {\n      \"name\": \"faUndo\"\n    },\n    {\n      \"name\": \"faUndo*\"\n    },\n    {\n      \"name\": \"faUniregistry\"\n    },\n    {\n      \"name\": \"faUnity\"\n    },\n    {\n      \"name\": \"faUniversalAccess\"\n    },\n    {\n      \"name\": \"faUniversity\"\n    },\n    {\n      \"name\": \"faUnlink\"\n    },\n    {\n      \"name\": \"faUnlock\"\n    },\n    {\n      \"name\": \"faUnlock*\"\n    },\n    {\n      \"name\": \"faUnsplash\"\n    },\n    {\n      \"name\": \"faUntappd\"\n    },\n    {\n      \"name\": \"faUpload\"\n    },\n    {\n      \"name\": \"faUps\"\n    },\n    {\n      \"name\": \"faUsb\"\n    },\n    {\n      \"name\": \"faUser\"\n    },\n    {\n      \"name\": \"faUser*\"\n    },\n    {\n      \"name\": \"faUser\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faUser[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faUserAltSlash\"\n    },\n    {\n      \"name\": \"faUserAstronaut\"\n    },\n    {\n      \"name\": \"faUserCheck\"\n    },\n    {\n      \"name\": \"faUserCircle\"\n    },\n    {\n      \"name\": \"faUserCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faUserCircle[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faUserClock\"\n    },\n    {\n      \"name\": \"faUserCog\"\n    },\n    {\n      \"name\": \"faUserEdit\"\n    },\n    {\n      \"name\": \"faUserFriends\"\n    },\n    {\n      \"name\": \"faUserGraduate\"\n    },\n    {\n      \"name\": \"faUserInjured\"\n    },\n    {\n      \"name\": \"faUserLock\"\n    },\n    {\n      \"name\": \"faUserMd\"\n    },\n    {\n      \"name\": \"faUserMinus\"\n    },\n    {\n      \"name\": \"faUserNinja\"\n    },\n    {\n      \"name\": \"faUserNurse\"\n    },\n    {\n      \"name\": \"faUserPlus\"\n    },\n    {\n      \"name\": \"faUsers\"\n    },\n    {\n      \"name\": \"faUsersCog\"\n    },\n    {\n      \"name\": \"faUserSecret\"\n    },\n    {\n      \"name\": \"faUserShield\"\n    },\n    {\n      \"name\": \"faUserSlash\"\n    },\n    {\n      \"name\": \"faUsersSlash\"\n    },\n    {\n      \"name\": \"faUserTag\"\n    },\n    {\n      \"name\": \"faUserTie\"\n    },\n    {\n      \"name\": \"faUserTimes\"\n    },\n    {\n      \"name\": \"faUsps\"\n    },\n    {\n      \"name\": \"faUssunnah\"\n    },\n    {\n      \"name\": \"faUtensils\"\n    },\n    {\n      \"name\": \"faUtensilSpoon\"\n    },\n    {\n      \"name\": \"faVaadin\"\n    },\n    {\n      \"name\": \"faVectorSquare\"\n    },\n    {\n      \"name\": \"faVenus\"\n    },\n    {\n      \"name\": \"faVenusDouble\"\n    },\n    {\n      \"name\": \"faVenusMars\"\n    },\n    {\n      \"name\": \"faVest\"\n    },\n    {\n      \"name\": \"faVestPatches\"\n    },\n    {\n      \"name\": \"faViacoin\"\n    },\n    {\n      \"name\": \"faViadeo\"\n    },\n    {\n      \"name\": \"faViadeoSquare\"\n    },\n    {\n      \"name\": \"faVial\"\n    },\n    {\n      \"name\": \"faVials\"\n    },\n    {\n      \"name\": \"faViber\"\n    },\n    {\n      \"name\": \"faVideo\"\n    },\n    {\n      \"name\": \"faVideoSlash\"\n    },\n    {\n      \"name\": \"faVihara\"\n    },\n    {\n      \"name\": \"faVimeo\"\n    },\n    {\n      \"name\": \"faVimeoSquare\"\n    },\n    {\n      \"name\": \"faVimeoV\"\n    },\n    {\n      \"name\": \"faVine\"\n    },\n    {\n      \"name\": \"faVirus\"\n    },\n    {\n      \"name\": \"faViruses\"\n    },\n    {\n      \"name\": \"faVirusSlash\"\n    },\n    {\n      \"name\": \"faVk\"\n    },\n    {\n      \"name\": \"faVnv\"\n    },\n    {\n      \"name\": \"faVoicemail\"\n    },\n    {\n      \"name\": \"faVolleyballBall\"\n    },\n    {\n      \"name\": \"faVolumeDown\"\n    },\n    {\n      \"name\": \"faVolumeMute\"\n    },\n    {\n      \"name\": \"faVolumeOff\"\n    },\n    {\n      \"name\": \"faVolumeUp\"\n    },\n    {\n      \"name\": \"faVoteYea\"\n    },\n    {\n      \"name\": \"faVrCardboard\"\n    },\n    {\n      \"name\": \"faVuejs\"\n    },\n    {\n      \"name\": \"faWalking\"\n    },\n    {\n      \"name\": \"faWallet\"\n    },\n    {\n      \"name\": \"faWarehouse\"\n    },\n    {\n      \"name\": \"faWatchmanMonitoring\"\n    },\n    {\n      \"name\": \"faWater\"\n    },\n    {\n      \"name\": \"faWaveSquare\"\n    },\n    {\n      \"name\": \"faWaze\"\n    },\n    {\n      \"name\": \"faWeebly\"\n    },\n    {\n      \"name\": \"faWeibo\"\n    },\n    {\n      \"name\": \"faWeight\"\n    },\n    {\n      \"name\": \"faWeightHanging\"\n    },\n    {\n      \"name\": \"faWeixin\"\n    },\n    {\n      \"name\": \"faWhatsapp\"\n    },\n    {\n      \"name\": \"faWhatsappSquare\"\n    },\n    {\n      \"name\": \"faWheelchair\"\n    },\n    {\n      \"name\": \"faWhmcs\"\n    },\n    {\n      \"name\": \"faWifi\"\n    },\n    {\n      \"name\": \"faWikipediaW\"\n    },\n    {\n      \"name\": \"faWind\"\n    },\n    {\n      \"name\": \"faWindowClose\"\n    },\n    {\n      \"name\": \"faWindowClose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faWindowClose[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faWindowMaximize\"\n    },\n    {\n      \"name\": \"faWindowMaximize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faWindowMaximize[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faWindowMinimize\"\n    },\n    {\n      \"name\": \"faWindowMinimize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faWindowMinimize[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faWindowRestore\"\n    },\n    {\n      \"name\": \"faWindowRestore\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"faWindowRestore[${1:regular}]\"\n      }\n    },\n    {\n      \"name\": \"faWindows\"\n    },\n    {\n      \"name\": \"faWineBottle\"\n    },\n    {\n      \"name\": \"faWineGlass\"\n    },\n    {\n      \"name\": \"faWineGlass*\"\n    },\n    {\n      \"name\": \"faWix\"\n    },\n    {\n      \"name\": \"faWizardsOfTheCoast\"\n    },\n    {\n      \"name\": \"faWodu\"\n    },\n    {\n      \"name\": \"faWolfPackBattalion\"\n    },\n    {\n      \"name\": \"faWonSign\"\n    },\n    {\n      \"name\": \"faWordpress\"\n    },\n    {\n      \"name\": \"faWordpressSimple\"\n    },\n    {\n      \"name\": \"faWpbeginner\"\n    },\n    {\n      \"name\": \"faWpexplorer\"\n    },\n    {\n      \"name\": \"faWpforms\"\n    },\n    {\n      \"name\": \"faWpressr\"\n    },\n    {\n      \"name\": \"faWrench\"\n    },\n    {\n      \"name\": \"faXbox\"\n    },\n    {\n      \"name\": \"faXing\"\n    },\n    {\n      \"name\": \"faXingSquare\"\n    },\n    {\n      \"name\": \"faXRay\"\n    },\n    {\n      \"name\": \"faYahoo\"\n    },\n    {\n      \"name\": \"faYammer\"\n    },\n    {\n      \"name\": \"faYandex\"\n    },\n    {\n      \"name\": \"faYandexInternational\"\n    },\n    {\n      \"name\": \"faYarn\"\n    },\n    {\n      \"name\": \"faYCombinator\"\n    },\n    {\n      \"name\": \"faYelp\"\n    },\n    {\n      \"name\": \"faYenSign\"\n    },\n    {\n      \"name\": \"faYinYang\"\n    },\n    {\n      \"name\": \"faYoast\"\n    },\n    {\n      \"name\": \"faYoutube\"\n    },\n    {\n      \"name\": \"faYoutubeSquare\"\n    },\n    {\n      \"name\": \"faZhihu\"\n    },\n    {\n      \"name\": \"faDuotoneSetSecondary\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faDuotoneSetSecondary{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"faArrows\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faCloudDownload\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faCloudUpload\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faExchange\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faExpandArrows\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faExternalLink\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faExternalLinkSquare\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faLevelDown\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faLevelUp\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faPencil\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faRepeat\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faShield\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faSignalAlt\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faSignIn\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faSignOut\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faSquareRoot\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faTachometer\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faTicket\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"faTransporter\",\n      \"if\": \"pro\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fontawesome5#c\": [\n      \"fixed\",\n      \"free\",\n      \"pro\"\n    ],\n    \"\\\\faIcon\": [\n      \"500px\",\n      \"accessible-icon\",\n      \"accusoft\",\n      \"acquisitions-incorporated\",\n      \"ad\",\n      \"address-book\",\n      \"address-card\",\n      \"adjust\",\n      \"adn\",\n      \"adobe\",\n      \"adversal\",\n      \"affiliatetheme\",\n      \"airbnb\",\n      \"air-freshener\",\n      \"algolia\",\n      \"align-center\",\n      \"align-justify\",\n      \"align-left\",\n      \"align-right\",\n      \"alipay\",\n      \"allergies\",\n      \"amazon\",\n      \"amazon-pay\",\n      \"ambulance\",\n      \"american-sign-language-interpreting\",\n      \"amilia\",\n      \"anchor\",\n      \"android\",\n      \"angellist\",\n      \"angle-double-down\",\n      \"angle-double-left\",\n      \"angle-double-right\",\n      \"angle-double-up\",\n      \"angle-down\",\n      \"angle-left\",\n      \"angle-right\",\n      \"angle-up\",\n      \"angry\",\n      \"angrycreative\",\n      \"angular\",\n      \"ankh\",\n      \"apper\",\n      \"apple\",\n      \"apple-alt\",\n      \"apple-pay\",\n      \"app-store\",\n      \"app-store-ios\",\n      \"archive\",\n      \"archway\",\n      \"arrow-alt-circle-down\",\n      \"arrow-alt-circle-left\",\n      \"arrow-alt-circle-right\",\n      \"arrow-alt-circle-up\",\n      \"arrow-circle-down\",\n      \"arrow-circle-left\",\n      \"arrow-circle-right\",\n      \"arrow-circle-up\",\n      \"arrow-down\",\n      \"arrow-left\",\n      \"arrow-right\",\n      \"arrows-alt\",\n      \"arrows-alt-h\",\n      \"arrows-alt-v\",\n      \"arrow-up\",\n      \"artstation\",\n      \"assistive-listening-systems\",\n      \"asterisk\",\n      \"asymmetrik\",\n      \"at\",\n      \"atlas\",\n      \"atlassian\",\n      \"atom\",\n      \"audible\",\n      \"audio-description\",\n      \"autoprefixer\",\n      \"avianex\",\n      \"aviato\",\n      \"award\",\n      \"aws\",\n      \"baby\",\n      \"baby-carriage\",\n      \"backspace\",\n      \"backward\",\n      \"bacon\",\n      \"bacteria\",\n      \"bacterium\",\n      \"bahai\",\n      \"balance-scale\",\n      \"balance-scale-left\",\n      \"balance-scale-right\",\n      \"ban\",\n      \"band-aid\",\n      \"bandcamp\",\n      \"barcode\",\n      \"bars\",\n      \"baseball-ball\",\n      \"basketball-ball\",\n      \"bath\",\n      \"battery-empty\",\n      \"battery-full\",\n      \"battery-half\",\n      \"battery-quarter\",\n      \"battery-three-quarters\",\n      \"battle-net\",\n      \"bed\",\n      \"beer\",\n      \"behance\",\n      \"behance-square\",\n      \"bell\",\n      \"bell-slash\",\n      \"bezier-curve\",\n      \"bible\",\n      \"bicycle\",\n      \"biking\",\n      \"bimobject\",\n      \"binoculars\",\n      \"biohazard\",\n      \"birthday-cake\",\n      \"bitbucket\",\n      \"bitcoin\",\n      \"bity\",\n      \"blackberry\",\n      \"black-tie\",\n      \"blender\",\n      \"blender-phone\",\n      \"blind\",\n      \"blog\",\n      \"blogger\",\n      \"blogger-b\",\n      \"bluetooth\",\n      \"bluetooth-b\",\n      \"bold\",\n      \"bolt\",\n      \"bomb\",\n      \"bone\",\n      \"bong\",\n      \"book\",\n      \"book-dead\",\n      \"bookmark\",\n      \"book-medical\",\n      \"book-open\",\n      \"book-reader\",\n      \"bootstrap\",\n      \"border-all\",\n      \"border-none\",\n      \"border-style\",\n      \"bowling-ball\",\n      \"box\",\n      \"boxes\",\n      \"box-open\",\n      \"box-tissue\",\n      \"braille\",\n      \"brain\",\n      \"bread-slice\",\n      \"briefcase\",\n      \"briefcase-medical\",\n      \"broadcast-tower\",\n      \"broom\",\n      \"brush\",\n      \"btc\",\n      \"buffer\",\n      \"bug\",\n      \"building\",\n      \"bullhorn\",\n      \"bullseye\",\n      \"burn\",\n      \"buromobelexperte\",\n      \"bus\",\n      \"bus-alt\",\n      \"business-time\",\n      \"buy-n-large\",\n      \"buysellads\",\n      \"calculator\",\n      \"calendar\",\n      \"calendar-alt\",\n      \"calendar-check\",\n      \"calendar-day\",\n      \"calendar-minus\",\n      \"calendar-plus\",\n      \"calendar-times\",\n      \"calendar-week\",\n      \"camera\",\n      \"camera-retro\",\n      \"campground\",\n      \"canadian-maple-leaf\",\n      \"candy-cane\",\n      \"cannabis\",\n      \"capsules\",\n      \"car\",\n      \"car-alt\",\n      \"caravan\",\n      \"car-battery\",\n      \"car-crash\",\n      \"caret-down\",\n      \"caret-left\",\n      \"caret-right\",\n      \"caret-square-down\",\n      \"caret-square-left\",\n      \"caret-square-right\",\n      \"caret-square-up\",\n      \"caret-up\",\n      \"carrot\",\n      \"car-side\",\n      \"cart-arrow-down\",\n      \"cart-plus\",\n      \"cash-register\",\n      \"cat\",\n      \"cc-amazon-pay\",\n      \"cc-amex\",\n      \"cc-apple-pay\",\n      \"cc-diners-club\",\n      \"cc-discover\",\n      \"cc-jcb\",\n      \"cc-mastercard\",\n      \"cc-paypal\",\n      \"cc-stripe\",\n      \"cc-visa\",\n      \"centercode\",\n      \"centos\",\n      \"certificate\",\n      \"chair\",\n      \"chalkboard\",\n      \"chalkboard-teacher\",\n      \"charging-station\",\n      \"chart-area\",\n      \"chart-bar\",\n      \"chart-line\",\n      \"chart-pie\",\n      \"check\",\n      \"check-circle\",\n      \"check-double\",\n      \"check-square\",\n      \"cheese\",\n      \"chess\",\n      \"chess-bishop\",\n      \"chess-board\",\n      \"chess-king\",\n      \"chess-knight\",\n      \"chess-pawn\",\n      \"chess-queen\",\n      \"chess-rook\",\n      \"chevron-circle-down\",\n      \"chevron-circle-left\",\n      \"chevron-circle-right\",\n      \"chevron-circle-up\",\n      \"chevron-down\",\n      \"chevron-left\",\n      \"chevron-right\",\n      \"chevron-up\",\n      \"child\",\n      \"chrome\",\n      \"chromecast\",\n      \"church\",\n      \"circle\",\n      \"circle-notch\",\n      \"city\",\n      \"clinic-medical\",\n      \"clipboard\",\n      \"clipboard-check\",\n      \"clipboard-list\",\n      \"clock\",\n      \"clone\",\n      \"closed-captioning\",\n      \"cloud\",\n      \"cloud-download-alt\",\n      \"cloudflare\",\n      \"cloud-meatball\",\n      \"cloud-moon\",\n      \"cloud-moon-rain\",\n      \"cloud-rain\",\n      \"cloudscale\",\n      \"cloud-showers-heavy\",\n      \"cloudsmith\",\n      \"cloud-sun\",\n      \"cloud-sun-rain\",\n      \"cloud-upload-alt\",\n      \"cloudversify\",\n      \"cocktail\",\n      \"code\",\n      \"code-branch\",\n      \"codepen\",\n      \"codiepie\",\n      \"coffee\",\n      \"cog\",\n      \"cogs\",\n      \"coins\",\n      \"columns\",\n      \"comment\",\n      \"comment-alt\",\n      \"comment-dollar\",\n      \"comment-dots\",\n      \"comment-medical\",\n      \"comments\",\n      \"comments-dollar\",\n      \"comment-slash\",\n      \"compact-disc\",\n      \"compass\",\n      \"compress\",\n      \"compress-alt\",\n      \"compress-arrows-alt\",\n      \"concierge-bell\",\n      \"confluence\",\n      \"connectdevelop\",\n      \"contao\",\n      \"cookie\",\n      \"cookie-bite\",\n      \"copy\",\n      \"copyright\",\n      \"cotton-bureau\",\n      \"couch\",\n      \"cpanel\",\n      \"creative-commons\",\n      \"creative-commons-by\",\n      \"creative-commons-nc\",\n      \"creative-commons-nc-eu\",\n      \"creative-commons-nc-jp\",\n      \"creative-commons-nd\",\n      \"creative-commons-pd\",\n      \"creative-commons-pd-alt\",\n      \"creative-commons-remix\",\n      \"creative-commons-sa\",\n      \"creative-commons-sampling\",\n      \"creative-commons-sampling-plus\",\n      \"creative-commons-share\",\n      \"creative-commons-zero\",\n      \"credit-card\",\n      \"critical-role\",\n      \"crop\",\n      \"crop-alt\",\n      \"cross\",\n      \"crosshairs\",\n      \"crow\",\n      \"crown\",\n      \"crutch\",\n      \"css3\",\n      \"css3-alt\",\n      \"cube\",\n      \"cubes\",\n      \"cut\",\n      \"cuttlefish\",\n      \"dailymotion\",\n      \"d-and-d\",\n      \"d-and-d-beyond\",\n      \"dashcube\",\n      \"database\",\n      \"deaf\",\n      \"deezer\",\n      \"delicious\",\n      \"democrat\",\n      \"deploydog\",\n      \"deskpro\",\n      \"desktop\",\n      \"dev\",\n      \"deviantart\",\n      \"dharmachakra\",\n      \"dhl\",\n      \"diagnoses\",\n      \"diaspora\",\n      \"dice\",\n      \"dice-d20\",\n      \"dice-d6\",\n      \"dice-five\",\n      \"dice-four\",\n      \"dice-one\",\n      \"dice-six\",\n      \"dice-three\",\n      \"dice-two\",\n      \"digg\",\n      \"digital-ocean\",\n      \"digital-tachograph\",\n      \"directions\",\n      \"discord\",\n      \"discourse\",\n      \"disease\",\n      \"divide\",\n      \"dizzy\",\n      \"dna\",\n      \"dochub\",\n      \"docker\",\n      \"dog\",\n      \"dollar-sign\",\n      \"dolly\",\n      \"dolly-flatbed\",\n      \"donate\",\n      \"door-closed\",\n      \"door-open\",\n      \"dot-circle\",\n      \"dove\",\n      \"download\",\n      \"draft2digital\",\n      \"drafting-compass\",\n      \"dragon\",\n      \"draw-polygon\",\n      \"dribbble\",\n      \"dribbble-square\",\n      \"dropbox\",\n      \"drum\",\n      \"drum-steelpan\",\n      \"drumstick-bite\",\n      \"drupal\",\n      \"dumbbell\",\n      \"dumpster\",\n      \"dumpster-fire\",\n      \"dungeon\",\n      \"dyalog\",\n      \"earlybirds\",\n      \"ebay\",\n      \"edge\",\n      \"edge-legacy\",\n      \"edit\",\n      \"egg\",\n      \"eject\",\n      \"elementor\",\n      \"ellipsis-h\",\n      \"ellipsis-v\",\n      \"ello\",\n      \"ember\",\n      \"empire\",\n      \"envelope\",\n      \"envelope-open\",\n      \"envelope-open-text\",\n      \"envelope-square\",\n      \"envira\",\n      \"equals\",\n      \"eraser\",\n      \"erlang\",\n      \"ethereum\",\n      \"ethernet\",\n      \"etsy\",\n      \"euro-sign\",\n      \"evernote\",\n      \"exchange-alt\",\n      \"exclamation\",\n      \"exclamation-circle\",\n      \"exclamation-triangle\",\n      \"expand\",\n      \"expand-alt\",\n      \"expand-arrows-alt\",\n      \"expeditedssl\",\n      \"external-link-alt\",\n      \"external-link-square-alt\",\n      \"eye\",\n      \"eye-dropper\",\n      \"eye-slash\",\n      \"facebook\",\n      \"facebook-f\",\n      \"facebook-messenger\",\n      \"facebook-square\",\n      \"fan\",\n      \"fantasy-flight-games\",\n      \"fast-backward\",\n      \"fast-forward\",\n      \"faucet\",\n      \"fax\",\n      \"feather\",\n      \"feather-alt\",\n      \"fedex\",\n      \"fedora\",\n      \"female\",\n      \"fighter-jet\",\n      \"figma\",\n      \"file\",\n      \"file-alt\",\n      \"file-archive\",\n      \"file-audio\",\n      \"file-code\",\n      \"file-contract\",\n      \"file-csv\",\n      \"file-download\",\n      \"file-excel\",\n      \"file-export\",\n      \"file-image\",\n      \"file-import\",\n      \"file-invoice\",\n      \"file-invoice-dollar\",\n      \"file-medical\",\n      \"file-medical-alt\",\n      \"file-pdf\",\n      \"file-powerpoint\",\n      \"file-prescription\",\n      \"file-signature\",\n      \"file-upload\",\n      \"file-video\",\n      \"file-word\",\n      \"fill\",\n      \"fill-drip\",\n      \"film\",\n      \"filter\",\n      \"fingerprint\",\n      \"fire\",\n      \"fire-alt\",\n      \"fire-extinguisher\",\n      \"firefox\",\n      \"firefox-browser\",\n      \"first-aid\",\n      \"firstdraft\",\n      \"first-order\",\n      \"first-order-alt\",\n      \"fish\",\n      \"fist-raised\",\n      \"flag\",\n      \"flag-checkered\",\n      \"flag-usa\",\n      \"flask\",\n      \"flickr\",\n      \"flipboard\",\n      \"flushed\",\n      \"fly\",\n      \"folder\",\n      \"folder-minus\",\n      \"folder-open\",\n      \"folder-plus\",\n      \"font\",\n      \"font-awesome\",\n      \"font-awesome-alt\",\n      \"font-awesome-flag\",\n      \"fonticons\",\n      \"fonticons-fi\",\n      \"football-ball\",\n      \"fort-awesome\",\n      \"fort-awesome-alt\",\n      \"forumbee\",\n      \"forward\",\n      \"foursquare\",\n      \"freebsd\",\n      \"free-code-camp\",\n      \"frog\",\n      \"frown\",\n      \"frown-open\",\n      \"fulcrum\",\n      \"funnel-dollar\",\n      \"futbol\",\n      \"galactic-republic\",\n      \"galactic-senate\",\n      \"gamepad\",\n      \"gas-pump\",\n      \"gavel\",\n      \"gem\",\n      \"genderless\",\n      \"get-pocket\",\n      \"gg\",\n      \"gg-circle\",\n      \"ghost\",\n      \"gift\",\n      \"gifts\",\n      \"git\",\n      \"git-alt\",\n      \"github\",\n      \"github-alt\",\n      \"github-square\",\n      \"gitkraken\",\n      \"gitlab\",\n      \"git-square\",\n      \"gitter\",\n      \"glass-cheers\",\n      \"glasses\",\n      \"glass-martini\",\n      \"glass-martini-alt\",\n      \"glass-whiskey\",\n      \"glide\",\n      \"glide-g\",\n      \"globe\",\n      \"globe-africa\",\n      \"globe-americas\",\n      \"globe-asia\",\n      \"globe-europe\",\n      \"gofore\",\n      \"golf-ball\",\n      \"goodreads\",\n      \"goodreads-g\",\n      \"google\",\n      \"google-drive\",\n      \"google-pay\",\n      \"google-play\",\n      \"google-plus\",\n      \"google-plus-g\",\n      \"google-plus-square\",\n      \"google-wallet\",\n      \"gopuram\",\n      \"graduation-cap\",\n      \"gratipay\",\n      \"grav\",\n      \"greater-than\",\n      \"greater-than-equal\",\n      \"grimace\",\n      \"grin\",\n      \"grin-alt\",\n      \"grin-beam\",\n      \"grin-beam-sweat\",\n      \"grin-hearts\",\n      \"grin-squint\",\n      \"grin-squint-tears\",\n      \"grin-stars\",\n      \"grin-tears\",\n      \"grin-tongue\",\n      \"grin-tongue-squint\",\n      \"grin-tongue-wink\",\n      \"grin-wink\",\n      \"gripfire\",\n      \"grip-horizontal\",\n      \"grip-lines\",\n      \"grip-lines-vertical\",\n      \"grip-vertical\",\n      \"grunt\",\n      \"guilded\",\n      \"guitar\",\n      \"gulp\",\n      \"hacker-news\",\n      \"hacker-news-square\",\n      \"hackerrank\",\n      \"hamburger\",\n      \"hammer\",\n      \"hamsa\",\n      \"hand-holding\",\n      \"hand-holding-heart\",\n      \"hand-holding-medical\",\n      \"hand-holding-usd\",\n      \"hand-holding-water\",\n      \"hand-lizard\",\n      \"hand-middle-finger\",\n      \"hand-paper\",\n      \"hand-peace\",\n      \"hand-point-down\",\n      \"hand-pointer\",\n      \"hand-point-left\",\n      \"hand-point-right\",\n      \"hand-point-up\",\n      \"hand-rock\",\n      \"hands\",\n      \"hand-scissors\",\n      \"handshake\",\n      \"handshake-alt-slash\",\n      \"handshake-slash\",\n      \"hands-helping\",\n      \"hand-sparkles\",\n      \"hand-spock\",\n      \"hands-wash\",\n      \"hanukiah\",\n      \"hard-hat\",\n      \"hashtag\",\n      \"hat-cowboy\",\n      \"hat-cowboy-side\",\n      \"hat-wizard\",\n      \"hdd\",\n      \"heading\",\n      \"headphones\",\n      \"headphones-alt\",\n      \"headset\",\n      \"head-side-cough\",\n      \"head-side-cough-slash\",\n      \"head-side-mask\",\n      \"head-side-virus\",\n      \"heart\",\n      \"heartbeat\",\n      \"heart-broken\",\n      \"helicopter\",\n      \"highlighter\",\n      \"hiking\",\n      \"hippo\",\n      \"hips\",\n      \"hire-a-helper\",\n      \"history\",\n      \"hive\",\n      \"hockey-puck\",\n      \"holly-berry\",\n      \"home\",\n      \"hooli\",\n      \"hornbill\",\n      \"horse\",\n      \"horse-head\",\n      \"hospital\",\n      \"hospital-alt\",\n      \"hospital-symbol\",\n      \"hospital-user\",\n      \"hotdog\",\n      \"hotel\",\n      \"hotjar\",\n      \"hot-tub\",\n      \"hourglass\",\n      \"hourglass-end\",\n      \"hourglass-half\",\n      \"hourglass-start\",\n      \"house-damage\",\n      \"house-user\",\n      \"houzz\",\n      \"hryvnia\",\n      \"h-square\",\n      \"html5\",\n      \"hubspot\",\n      \"ice-cream\",\n      \"icicles\",\n      \"icons\",\n      \"i-cursor\",\n      \"id-badge\",\n      \"id-card\",\n      \"id-card-alt\",\n      \"ideal\",\n      \"igloo\",\n      \"image\",\n      \"images\",\n      \"imdb\",\n      \"inbox\",\n      \"indent\",\n      \"industry\",\n      \"infinity\",\n      \"info\",\n      \"info-circle\",\n      \"innosoft\",\n      \"instagram\",\n      \"instagram-square\",\n      \"instalod\",\n      \"intercom\",\n      \"internet-explorer\",\n      \"invision\",\n      \"ioxhost\",\n      \"italic\",\n      \"itch-io\",\n      \"itunes\",\n      \"itunes-note\",\n      \"java\",\n      \"jedi\",\n      \"jedi-order\",\n      \"jenkins\",\n      \"jira\",\n      \"joget\",\n      \"joint\",\n      \"joomla\",\n      \"journal-whills\",\n      \"js\",\n      \"jsfiddle\",\n      \"js-square\",\n      \"kaaba\",\n      \"kaggle\",\n      \"key\",\n      \"keybase\",\n      \"keyboard\",\n      \"keycdn\",\n      \"khanda\",\n      \"kickstarter\",\n      \"kickstarter-k\",\n      \"kiss\",\n      \"kiss-beam\",\n      \"kiss-wink-heart\",\n      \"kiwi-bird\",\n      \"korvue\",\n      \"landmark\",\n      \"language\",\n      \"laptop\",\n      \"laptop-code\",\n      \"laptop-house\",\n      \"laptop-medical\",\n      \"laravel\",\n      \"lastfm\",\n      \"lastfm-square\",\n      \"laugh\",\n      \"laugh-beam\",\n      \"laugh-squint\",\n      \"laugh-wink\",\n      \"layer-group\",\n      \"leaf\",\n      \"leanpub\",\n      \"lemon\",\n      \"less\",\n      \"less-than\",\n      \"less-than-equal\",\n      \"level-down-alt\",\n      \"level-up-alt\",\n      \"life-ring\",\n      \"lightbulb\",\n      \"line\",\n      \"link\",\n      \"linkedin\",\n      \"linkedin-in\",\n      \"linode\",\n      \"linux\",\n      \"lira-sign\",\n      \"list\",\n      \"list-alt\",\n      \"list-ol\",\n      \"list-ul\",\n      \"location-arrow\",\n      \"lock\",\n      \"lock-open\",\n      \"long-arrow-alt-down\",\n      \"long-arrow-alt-left\",\n      \"long-arrow-alt-right\",\n      \"long-arrow-alt-up\",\n      \"low-vision\",\n      \"luggage-cart\",\n      \"lungs\",\n      \"lungs-virus\",\n      \"lyft\",\n      \"magento\",\n      \"magic\",\n      \"magnet\",\n      \"mail-bulk\",\n      \"mailchimp\",\n      \"male\",\n      \"mandalorian\",\n      \"map\",\n      \"map-marked\",\n      \"map-marked-alt\",\n      \"map-marker\",\n      \"map-marker-alt\",\n      \"map-pin\",\n      \"map-signs\",\n      \"markdown\",\n      \"marker\",\n      \"mars\",\n      \"mars-double\",\n      \"mars-stroke\",\n      \"mars-stroke-h\",\n      \"mars-stroke-v\",\n      \"mask\",\n      \"mastodon\",\n      \"maxcdn\",\n      \"mdb\",\n      \"medal\",\n      \"medapps\",\n      \"medium\",\n      \"medium-m\",\n      \"medkit\",\n      \"medrt\",\n      \"meetup\",\n      \"megaport\",\n      \"meh\",\n      \"meh-blank\",\n      \"meh-rolling-eyes\",\n      \"memory\",\n      \"mendeley\",\n      \"menorah\",\n      \"mercury\",\n      \"meteor\",\n      \"microblog\",\n      \"microchip\",\n      \"microphone\",\n      \"microphone-alt\",\n      \"microphone-alt-slash\",\n      \"microphone-slash\",\n      \"microscope\",\n      \"microsoft\",\n      \"minus\",\n      \"minus-circle\",\n      \"minus-square\",\n      \"mitten\",\n      \"mix\",\n      \"mixcloud\",\n      \"mixer\",\n      \"mizuni\",\n      \"mobile\",\n      \"mobile-alt\",\n      \"modx\",\n      \"monero\",\n      \"money-bill\",\n      \"money-bill-alt\",\n      \"money-bill-wave\",\n      \"money-bill-wave-alt\",\n      \"money-check\",\n      \"money-check-alt\",\n      \"monument\",\n      \"moon\",\n      \"mortar-pestle\",\n      \"mosque\",\n      \"motorcycle\",\n      \"mountain\",\n      \"mouse\",\n      \"mouse-pointer\",\n      \"mug-hot\",\n      \"music\",\n      \"napster\",\n      \"neos\",\n      \"network-wired\",\n      \"neuter\",\n      \"newspaper\",\n      \"nimblr\",\n      \"node\",\n      \"node-js\",\n      \"not-equal\",\n      \"notes-medical\",\n      \"npm\",\n      \"ns8\",\n      \"nutritionix\",\n      \"object-group\",\n      \"object-ungroup\",\n      \"octopus-deploy\",\n      \"odnoklassniki\",\n      \"odnoklassniki-square\",\n      \"oil-can\",\n      \"old-republic\",\n      \"om\",\n      \"opencart\",\n      \"openid\",\n      \"opera\",\n      \"optin-monster\",\n      \"orcid\",\n      \"osi\",\n      \"otter\",\n      \"outdent\",\n      \"page4\",\n      \"pagelines\",\n      \"pager\",\n      \"paint-brush\",\n      \"paint-roller\",\n      \"palette\",\n      \"palfed\",\n      \"pallet\",\n      \"paperclip\",\n      \"paper-plane\",\n      \"parachute-box\",\n      \"paragraph\",\n      \"parking\",\n      \"passport\",\n      \"pastafarianism\",\n      \"paste\",\n      \"patreon\",\n      \"pause\",\n      \"pause-circle\",\n      \"paw\",\n      \"paypal\",\n      \"peace\",\n      \"pen\",\n      \"pen-alt\",\n      \"pencil-alt\",\n      \"pencil-ruler\",\n      \"pen-fancy\",\n      \"pen-nib\",\n      \"penny-arcade\",\n      \"pen-square\",\n      \"people-arrows\",\n      \"people-carry\",\n      \"pepper-hot\",\n      \"perbyte\",\n      \"percent\",\n      \"percentage\",\n      \"periscope\",\n      \"person-booth\",\n      \"phabricator\",\n      \"phoenix-framework\",\n      \"phoenix-squadron\",\n      \"phone\",\n      \"phone-alt\",\n      \"phone-slash\",\n      \"phone-square\",\n      \"phone-square-alt\",\n      \"phone-volume\",\n      \"photo-video\",\n      \"php\",\n      \"pied-piper\",\n      \"pied-piper-alt\",\n      \"pied-piper-hat\",\n      \"pied-piper-pp\",\n      \"pied-piper-square\",\n      \"piggy-bank\",\n      \"pills\",\n      \"pinterest\",\n      \"pinterest-p\",\n      \"pinterest-square\",\n      \"pizza-slice\",\n      \"place-of-worship\",\n      \"plane\",\n      \"plane-arrival\",\n      \"plane-departure\",\n      \"plane-slash\",\n      \"play\",\n      \"play-circle\",\n      \"playstation\",\n      \"plug\",\n      \"plus\",\n      \"plus-circle\",\n      \"plus-square\",\n      \"podcast\",\n      \"poll\",\n      \"poll-h\",\n      \"poo\",\n      \"poop\",\n      \"poo-storm\",\n      \"portrait\",\n      \"pound-sign\",\n      \"power-off\",\n      \"pray\",\n      \"praying-hands\",\n      \"prescription\",\n      \"prescription-bottle\",\n      \"prescription-bottle-alt\",\n      \"print\",\n      \"procedures\",\n      \"product-hunt\",\n      \"project-diagram\",\n      \"pump-medical\",\n      \"pump-soap\",\n      \"pushed\",\n      \"puzzle-piece\",\n      \"python\",\n      \"qq\",\n      \"qrcode\",\n      \"question\",\n      \"question-circle\",\n      \"quidditch\",\n      \"quinscape\",\n      \"quora\",\n      \"quote-left\",\n      \"quote-right\",\n      \"quran\",\n      \"radiation\",\n      \"radiation-alt\",\n      \"rainbow\",\n      \"random\",\n      \"raspberry-pi\",\n      \"ravelry\",\n      \"react\",\n      \"reacteurope\",\n      \"readme\",\n      \"rebel\",\n      \"receipt\",\n      \"record-vinyl\",\n      \"recycle\",\n      \"reddit\",\n      \"reddit-alien\",\n      \"reddit-square\",\n      \"redhat\",\n      \"redo\",\n      \"redo-alt\",\n      \"red-river\",\n      \"registered\",\n      \"remove-format\",\n      \"renren\",\n      \"reply\",\n      \"reply-all\",\n      \"replyd\",\n      \"republican\",\n      \"researchgate\",\n      \"resolving\",\n      \"restroom\",\n      \"retweet\",\n      \"rev\",\n      \"ribbon\",\n      \"ring\",\n      \"road\",\n      \"robot\",\n      \"rocket\",\n      \"rocketchat\",\n      \"rockrms\",\n      \"route\",\n      \"r-project\",\n      \"rss\",\n      \"rss-square\",\n      \"ruble-sign\",\n      \"ruler\",\n      \"ruler-combined\",\n      \"ruler-horizontal\",\n      \"ruler-vertical\",\n      \"running\",\n      \"rupee-sign\",\n      \"rust\",\n      \"sad-cry\",\n      \"sad-tear\",\n      \"safari\",\n      \"salesforce\",\n      \"sass\",\n      \"satellite\",\n      \"satellite-dish\",\n      \"save\",\n      \"schlix\",\n      \"school\",\n      \"screwdriver\",\n      \"scribd\",\n      \"scroll\",\n      \"sd-card\",\n      \"search\",\n      \"search-dollar\",\n      \"searchengin\",\n      \"search-location\",\n      \"search-minus\",\n      \"search-plus\",\n      \"seedling\",\n      \"sellcast\",\n      \"sellsy\",\n      \"server\",\n      \"servicestack\",\n      \"shapes\",\n      \"share\",\n      \"share-alt\",\n      \"share-alt-square\",\n      \"share-square\",\n      \"shekel-sign\",\n      \"shield-alt\",\n      \"shield-virus\",\n      \"ship\",\n      \"shipping-fast\",\n      \"shirtsinbulk\",\n      \"shoe-prints\",\n      \"shopify\",\n      \"shopping-bag\",\n      \"shopping-basket\",\n      \"shopping-cart\",\n      \"shopware\",\n      \"shower\",\n      \"shuttle-van\",\n      \"sign\",\n      \"signal\",\n      \"signature\",\n      \"sign-in-alt\",\n      \"sign-language\",\n      \"sign-out-alt\",\n      \"sim-card\",\n      \"simplybuilt\",\n      \"sink\",\n      \"sistrix\",\n      \"sitemap\",\n      \"sith\",\n      \"skating\",\n      \"sketch\",\n      \"skiing\",\n      \"skiing-nordic\",\n      \"skull\",\n      \"skull-crossbones\",\n      \"skyatlas\",\n      \"skype\",\n      \"slack\",\n      \"slack-hash\",\n      \"slash\",\n      \"sleigh\",\n      \"sliders-h\",\n      \"slideshare\",\n      \"smile\",\n      \"smile-beam\",\n      \"smile-wink\",\n      \"smog\",\n      \"smoking\",\n      \"smoking-ban\",\n      \"sms\",\n      \"snapchat\",\n      \"snapchat-ghost\",\n      \"snapchat-square\",\n      \"snowboarding\",\n      \"snowflake\",\n      \"snowman\",\n      \"snowplow\",\n      \"soap\",\n      \"socks\",\n      \"solar-panel\",\n      \"sort\",\n      \"sort-alpha-down\",\n      \"sort-alpha-down-alt\",\n      \"sort-alpha-up\",\n      \"sort-alpha-up-alt\",\n      \"sort-amount-down\",\n      \"sort-amount-down-alt\",\n      \"sort-amount-up\",\n      \"sort-amount-up-alt\",\n      \"sort-down\",\n      \"sort-numeric-down\",\n      \"sort-numeric-down-alt\",\n      \"sort-numeric-up\",\n      \"sort-numeric-up-alt\",\n      \"sort-up\",\n      \"soundcloud\",\n      \"sourcetree\",\n      \"spa\",\n      \"space-shuttle\",\n      \"speakap\",\n      \"speaker-deck\",\n      \"spell-check\",\n      \"spider\",\n      \"spinner\",\n      \"splotch\",\n      \"spotify\",\n      \"spray-can\",\n      \"square\",\n      \"square-full\",\n      \"square-root-alt\",\n      \"squarespace\",\n      \"stack-exchange\",\n      \"stack-overflow\",\n      \"stackpath\",\n      \"stamp\",\n      \"star\",\n      \"star-and-crescent\",\n      \"star-half\",\n      \"star-half-alt\",\n      \"star-of-david\",\n      \"star-of-life\",\n      \"staylinked\",\n      \"steam\",\n      \"steam-square\",\n      \"steam-symbol\",\n      \"step-backward\",\n      \"step-forward\",\n      \"stethoscope\",\n      \"sticker-mule\",\n      \"sticky-note\",\n      \"stop\",\n      \"stop-circle\",\n      \"stopwatch\",\n      \"stopwatch-20\",\n      \"store\",\n      \"store-alt\",\n      \"store-alt-slash\",\n      \"store-slash\",\n      \"strava\",\n      \"stream\",\n      \"street-view\",\n      \"strikethrough\",\n      \"stripe\",\n      \"stripe-s\",\n      \"stroopwafel\",\n      \"studiovinari\",\n      \"stumbleupon\",\n      \"stumbleupon-circle\",\n      \"subscript\",\n      \"subway\",\n      \"suitcase\",\n      \"suitcase-rolling\",\n      \"sun\",\n      \"superpowers\",\n      \"superscript\",\n      \"supple\",\n      \"surprise\",\n      \"suse\",\n      \"swatchbook\",\n      \"swift\",\n      \"swimmer\",\n      \"swimming-pool\",\n      \"symfony\",\n      \"synagogue\",\n      \"sync\",\n      \"sync-alt\",\n      \"syringe\",\n      \"table\",\n      \"tablet\",\n      \"tablet-alt\",\n      \"table-tennis\",\n      \"tablets\",\n      \"tachometer-alt\",\n      \"tag\",\n      \"tags\",\n      \"tape\",\n      \"tasks\",\n      \"taxi\",\n      \"teamspeak\",\n      \"teeth\",\n      \"teeth-open\",\n      \"telegram\",\n      \"telegram-plane\",\n      \"temperature-high\",\n      \"temperature-low\",\n      \"tencent-weibo\",\n      \"tenge\",\n      \"terminal\",\n      \"text-height\",\n      \"text-width\",\n      \"th\",\n      \"theater-masks\",\n      \"themeco\",\n      \"themeisle\",\n      \"the-red-yeti\",\n      \"thermometer\",\n      \"thermometer-empty\",\n      \"thermometer-full\",\n      \"thermometer-half\",\n      \"thermometer-quarter\",\n      \"thermometer-three-quarters\",\n      \"think-peaks\",\n      \"th-large\",\n      \"th-list\",\n      \"thumbs-down\",\n      \"thumbs-up\",\n      \"thumbtack\",\n      \"ticket-alt\",\n      \"tiktok\",\n      \"times\",\n      \"times-circle\",\n      \"tint\",\n      \"tint-slash\",\n      \"tired\",\n      \"toggle-off\",\n      \"toggle-on\",\n      \"toilet\",\n      \"toilet-paper\",\n      \"toilet-paper-slash\",\n      \"toolbox\",\n      \"tools\",\n      \"tooth\",\n      \"torah\",\n      \"torii-gate\",\n      \"tractor\",\n      \"trade-federation\",\n      \"trademark\",\n      \"traffic-light\",\n      \"trailer\",\n      \"train\",\n      \"tram\",\n      \"transgender\",\n      \"transgender-alt\",\n      \"trash\",\n      \"trash-alt\",\n      \"trash-restore\",\n      \"trash-restore-alt\",\n      \"tree\",\n      \"trello\",\n      \"tripadvisor\",\n      \"trophy\",\n      \"truck\",\n      \"truck-loading\",\n      \"truck-monster\",\n      \"truck-moving\",\n      \"truck-pickup\",\n      \"tshirt\",\n      \"tty\",\n      \"tumblr\",\n      \"tumblr-square\",\n      \"tv\",\n      \"twitch\",\n      \"twitter\",\n      \"twitter-square\",\n      \"typo3\",\n      \"uber\",\n      \"ubuntu\",\n      \"uikit\",\n      \"umbraco\",\n      \"umbrella\",\n      \"umbrella-beach\",\n      \"uncharted\",\n      \"underline\",\n      \"undo\",\n      \"undo-alt\",\n      \"uniregistry\",\n      \"unity\",\n      \"universal-access\",\n      \"university\",\n      \"unlink\",\n      \"unlock\",\n      \"unlock-alt\",\n      \"unsplash\",\n      \"untappd\",\n      \"upload\",\n      \"ups\",\n      \"usb\",\n      \"user\",\n      \"user-alt\",\n      \"user-alt-slash\",\n      \"user-astronaut\",\n      \"user-check\",\n      \"user-circle\",\n      \"user-clock\",\n      \"user-cog\",\n      \"user-edit\",\n      \"user-friends\",\n      \"user-graduate\",\n      \"user-injured\",\n      \"user-lock\",\n      \"user-md\",\n      \"user-minus\",\n      \"user-ninja\",\n      \"user-nurse\",\n      \"user-plus\",\n      \"users\",\n      \"users-cog\",\n      \"user-secret\",\n      \"user-shield\",\n      \"user-slash\",\n      \"users-slash\",\n      \"user-tag\",\n      \"user-tie\",\n      \"user-times\",\n      \"usps\",\n      \"ussunnah\",\n      \"utensils\",\n      \"utensil-spoon\",\n      \"vaadin\",\n      \"vector-square\",\n      \"venus\",\n      \"venus-double\",\n      \"venus-mars\",\n      \"vest\",\n      \"vest-patches\",\n      \"viacoin\",\n      \"viadeo\",\n      \"viadeo-square\",\n      \"vial\",\n      \"vials\",\n      \"viber\",\n      \"video\",\n      \"video-slash\",\n      \"vihara\",\n      \"vimeo\",\n      \"vimeo-square\",\n      \"vimeo-v\",\n      \"vine\",\n      \"virus\",\n      \"viruses\",\n      \"virus-slash\",\n      \"vk\",\n      \"vnv\",\n      \"voicemail\",\n      \"volleyball-ball\",\n      \"volume-down\",\n      \"volume-mute\",\n      \"volume-off\",\n      \"volume-up\",\n      \"vote-yea\",\n      \"vr-cardboard\",\n      \"vuejs\",\n      \"walking\",\n      \"wallet\",\n      \"warehouse\",\n      \"watchman-monitoring\",\n      \"water\",\n      \"wave-square\",\n      \"waze\",\n      \"weebly\",\n      \"weibo\",\n      \"weight\",\n      \"weight-hanging\",\n      \"weixin\",\n      \"whatsapp\",\n      \"whatsapp-square\",\n      \"wheelchair\",\n      \"whmcs\",\n      \"wifi\",\n      \"wikipedia-w\",\n      \"wind\",\n      \"window-close\",\n      \"window-maximize\",\n      \"window-minimize\",\n      \"window-restore\",\n      \"windows\",\n      \"wine-bottle\",\n      \"wine-glass\",\n      \"wine-glass-alt\",\n      \"wix\",\n      \"wizards-of-the-coast\",\n      \"wodu\",\n      \"wolf-pack-battalion\",\n      \"won-sign\",\n      \"wordpress\",\n      \"wordpress-simple\",\n      \"wpbeginner\",\n      \"wpexplorer\",\n      \"wpforms\",\n      \"wpressr\",\n      \"wrench\",\n      \"xbox\",\n      \"xing\",\n      \"xing-square\",\n      \"x-ray\",\n      \"yahoo\",\n      \"yammer\",\n      \"yandex\",\n      \"yandex-international\",\n      \"yarn\",\n      \"y-combinator\",\n      \"yelp\",\n      \"yen-sign\",\n      \"yin-yang\",\n      \"yoast\",\n      \"youtube\",\n      \"youtube-square\",\n      \"zhihu\",\n      \"arrows\",\n      \"cloud-download\",\n      \"cloud-upload\",\n      \"dice-d10\",\n      \"dice-d12\",\n      \"dice-d4\",\n      \"dice-d8\",\n      \"exchange\",\n      \"expand-arrows\",\n      \"external-link\",\n      \"external-link-square\",\n      \"level-down\",\n      \"level-up\",\n      \"pencil\",\n      \"repeat\",\n      \"repeat-1\",\n      \"shield\",\n      \"signal-1\",\n      \"signal-2\",\n      \"signal-3\",\n      \"signal-4\",\n      \"signal-alt\",\n      \"signal-alt-1\",\n      \"signal-alt-2\",\n      \"signal-alt-3\",\n      \"signal-alt-slash\",\n      \"signal-slash\",\n      \"sign-in\",\n      \"sign-out\",\n      \"square-root\",\n      \"tachometer\",\n      \"ticket\",\n      \"transporter\",\n      \"transporter-1\",\n      \"transporter-2\",\n      \"transporter-3\",\n      \"transporter-empty\",\n      \"wifi-1\",\n      \"wifi-2\",\n      \"wifi-slash\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontawesome5#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontaxes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"figureversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureversion{${1:versions%keyvals}}\",\n        \"keys\": [\n          \"\\\\figureversion#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"liningfigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningfigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lnfigures\"\n    },\n    {\n      \"name\": \"noscshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfigures\"\n    },\n    {\n      \"name\": \"proportionalfigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalfigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalmath\"\n    },\n    {\n      \"name\": \"tabularfigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularfigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularmath\"\n    },\n    {\n      \"name\": \"tbfigures\"\n    },\n    {\n      \"name\": \"textfigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"txfigures\"\n    },\n    {\n      \"name\": \"fontbasefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontbasefamily{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"fontfigurealignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontfigurealignment{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"fontfigurestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontfigurestyle{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"fontprimaryshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontprimaryshape{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"fontsecondaryshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontsecondaryshape{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"mathfigurealignment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfigurealignment{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"mathweight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathweight{${1:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\figureversion#c\": [\n      \"text\",\n      \"osf\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tab\",\n      \"proportional\",\n      \"prop\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fontbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setsampletext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsampletext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printfont{${1:font}}{${2:license}}\"\n      }\n    },\n    {\n      \"name\": \"printfont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printfont[${3:options%keyvals}]{${1:font}}{${2:license}}\",\n        \"keys\": [\n          \"\\\\printfont,\\\\samplefeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sampletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sampletext{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sampletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sampletext[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"samplefeature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"samplefeature{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\printfont,\\\\samplefeature\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fontbook#c\": [\n      \"size={${1:size1,size2,...}}\",\n      \"features={${1:feat1,feat2,...}}\",\n      \"featuresize=${1:fontsize csname}\"\n    ],\n    \"\\\\printfont,\\\\samplefeature\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,Lowercase,Lining,OldStyle,Proportional,Monospaced,SlashedZero,Arabic,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontenc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DH\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"B1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textct\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textet\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textrhalf\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textslong\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textslongt\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"textst\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"B1\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"D\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"EZH\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"ezh\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"ECMSRB1\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"ECMSRB1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRGJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrgje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRKJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrkje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRSJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrsje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRYAT\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyryat\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"CYRZJE\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"cyrzje\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"D\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"EZH\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"ezh\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"ECMSRB2\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"ECMSRB2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"flqq\",\n      \"if\": \"IL2\"\n    },\n    {\n      \"name\": \"frqq\",\n      \"if\": \"IL2\"\n    },\n    {\n      \"name\": \"clqq\",\n      \"if\": \"IL2\"\n    },\n    {\n      \"name\": \"crqq\",\n      \"if\": \"IL2\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"L7x\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"textlogicalnot\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"textquotedblbase\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"textquotesinglbase\",\n      \"if\": \"L7x\"\n    },\n    {\n      \"name\": \"alef\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"alefhamza\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"aleflowerhamza\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"alefmadda\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"alefmaqsura\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"ayn\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"baa\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"dad\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"dal\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"damma\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"Decimalchar\",\n      \"if\": \"LAE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dhal\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"fa\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"fatha\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"ghayn\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"ha\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"Haa\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"hamza\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"jarr\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"jeem\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"kaf\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"kasra\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"keshchar\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"kha\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"lam\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"llahchar\",\n      \"if\": \"LAE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meem\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"nasb\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"nun\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"qaf\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"raff\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"sad\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"seen\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shadda\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddadamma\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddafatha\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddajarr\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddakasra\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddanasb\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"shaddaraff\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"sheen\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"sukun\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"Ta\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"taa\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"tatweel\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"thaa\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"waw\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"wawhamza\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"ya\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"yahamza\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"za\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"zay\",\n      \"if\": \"LAE\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"LCY\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"LCYW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"LCYW\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"LCYW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"alef\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"alefhamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"aleflowerhamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"alefmadda\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"alefmaqsura\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ayn\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"baa\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"dad\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"dal\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"damma\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Decimalchar\",\n      \"if\": \"LFE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dhal\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"fa\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Farsihamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Farsihamzabelow\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"farsikaf\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Farsimadda\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"farsiya\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"fatha\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"gaf\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ghayn\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ha\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Haa\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"hamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"jarr\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"jeem\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"jeh\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"kaf\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"kasra\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"keshchar\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"kha\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"lam\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"llahchar\",\n      \"if\": \"LFE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meem\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"nasb\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Notdef\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"nun\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"peh\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"qaf\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ra\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"raff\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"rialchar\",\n      \"if\": \"LFE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sad\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"seen\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shadda\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddadamma\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddafatha\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddajarr\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddakasra\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddanasb\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"shaddaraff\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"sheen\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"sukun\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"Ta\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"taa\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"tatweel\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"tcheh\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"thaa\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"waw\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"wawhamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ya\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"yahamza\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"za\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"zay\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"ZWNJ\",\n      \"if\": \"LFE\"\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acckoronis\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acckoronis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accoxia\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greekscript\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textBeta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textChi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textEta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"texteta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textGamma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textIota\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textKappa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textkappa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppagreek\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textLambda\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textmicro\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textMu\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textmugreek\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textNu\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textnu\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textomicron\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textPhi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textPsi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textpsi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textRho\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textrho\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textSampi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textsampi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textsigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textstigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textStigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"if\": \"LGR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"LGR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textTau\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"texttau\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textTheta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textXi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textxi\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textZeta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"textzeta\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"if\": \"LGR\"\n    },\n    {\n      \"name\": \"alef\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"ayin\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"bet\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"dalet\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"finalkaf\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"finalmem\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"finalnun\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"finalpe\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"finaltsadi\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"if\": \"LHE\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"he\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"het\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"kaf\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"lamed\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"mem\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"nun\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"pe\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"qof\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"resh\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"samekh\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"shin\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"tav\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"tet\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"tsadi\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"vav\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"yod\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"zayin\",\n      \"if\": \"LHE\"\n    },\n    {\n      \"name\": \"textangkhankhu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textfongmun\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textkhomut\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textThoThanPali\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textyamakkan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"textYoYingPali\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiAngkhankhu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiBoBaimai\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiChoChan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiChoChang\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiChoChing\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiChoChoe\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiDoChada\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiDoDek\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaieight\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaifive\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiFoFa\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiFoFan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiFongman\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaifour\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiHoHip\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiHoNokhuk\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhoKhai\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhoKhon\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhoKhuat\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhoKhwai\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhomut\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKhoRakhang\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiKoKai\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiLakkhangyao\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiLoChula\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiLoLing\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiLu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiChattawa\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiEk\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiHanakat\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaitaikhu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiTho\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiTri\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMaiyamok\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiMoMa\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiNgoNgu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiNikhahit\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thainine\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiNoNen\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiNoNu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiOAng\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaione\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPaiyannoi\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPhinthu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPhoPhan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPhoPhung\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPhoSamphao\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiPoPla\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiRoRua\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiRu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraA\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraAa\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraAe\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimalai\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraAiMaimuan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraAm\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraE\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraI\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraIi\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraO\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraU\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraUe\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraUee\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSaraUu\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiseven\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaisix\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSoRusi\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSoSala\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSoSo\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiSoSua\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThanthakhat\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoNangmontho\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoPhuthao\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoThahan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoThan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoThong\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiThoThung\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaithree\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiToPatak\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiToTao\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaitwo\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiWoWaen\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiYamakkan\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiYoYak\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaiYoYing\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"thaizero\",\n      \"if\": \"LTH\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"LY1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"LY1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"LY1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textdivide\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textlogicalnot\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textmultiply\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textplusminus\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textquotedblbase\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textquotesinglbase\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"textspace\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"LY1\"\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRFITA\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrfita\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRIZH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrizh\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRYAT\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyryat\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"OT2\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"OT2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"OT2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"OT2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"OT4\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"OT4\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"OT4\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"OT4\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"OT4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"OT4\"\n    },\n    {\n      \"name\": \"armabbrev\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armabr\",\n      \"if\": \"OT6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armabr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"armaccent\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armapostrophe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armat\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armat\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armayb\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armayb\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armben\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armben\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armbl\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armcha\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armcha\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armcomma\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armda\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armda\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armdot\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armdram\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armdza\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armdza\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Arme\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"arme\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armellipsis\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armemdash\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armendash\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armeternity\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armew\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armexclam\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armfe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armfe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armfullstop\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armghat\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armghat\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armgim\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armgim\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armhi\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armhi\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armho\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armho\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armini\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armini\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armje\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armje\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armke\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armke\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armken\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armken\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armkhe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armkhe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armlyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armlyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armmen\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armmen\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armnu\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armnu\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armnum\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armo\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armo\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armparenleft\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armparenright\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armpe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armpe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armpyur\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armpyur\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armquestion\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armquotleft\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armquotright\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armra\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armra\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armre\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armre\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armse\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armse\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armsection\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armsep\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armsha\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armsha\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armtche\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armtche\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armto\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armto\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armtsa\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armtsa\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armtso\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armtso\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armtyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armtyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armuh\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armvev\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armvev\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armvo\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armvo\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armvovyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armvovyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armvyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armvyun\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armyech\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armyech\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armyentamna\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armza\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armza\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"Armzhe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"armzhe\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"textand\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"textanjgic\",\n      \"if\": \"OT6\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbreaklig\",\n      \"if\": \"OT6\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textexclam\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"texthash\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"textpercent\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"textquestion\",\n      \"if\": \"OT6\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"QX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textanglearc\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textapprox\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textdiameter\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textell\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textEuro\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textinfty\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textxgeq\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textxleq\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T1R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"T1R\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"T2A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"T2A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T2A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T2A\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"T2A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"T2ASRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"T2ASRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T2ASRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T2ASRB\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"T2ASRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"T2B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRABHDZE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrabhdze\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRCHLDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrchldsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRDELTA\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrdelta\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYREPS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyreps\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRGDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrgdsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRGDSCHCRS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrgdschcrs\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRGHK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrghk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRHHCRS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrhhcrs\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRHHK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrhhk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRKHK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrkhk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRLDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrldsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRLHK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrlhk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRNHK\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrnhk\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSACRS\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrsacrs\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"T2B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T2B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T2B\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"T2B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"T2C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRABHCH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrabhch\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRABHCHDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrabhchdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRABHDZE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrabhdze\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRABHHA\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrabhha\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRGHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrghk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRISHRTDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrishrtdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRKHCRS\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrkhcrs\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRLDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrldsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRLHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrlhk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRMDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrmdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRMHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrmhk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRNHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrnhk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRNLHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrnlhk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRPHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrphk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRRDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrrdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRRHK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrrhk\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRRTICK\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrrtick\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSEMISFTSN\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrsemisftsn\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRTDSC\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrtdsc\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRTETSE\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrtetse\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"T2C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T2C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T2C\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"T2C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"ipabar\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ipabar{${1:symbol}}{${2:height}}{${3:width}}{${4:lkern}}{${5:rkern}}\"\n      }\n    },\n    {\n      \"name\": \"ipaclap\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ipaclap{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textacutemacron\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textacutemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textacutewedge\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textacutewedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textadvancing\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textadvancing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbabygamma\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarb\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarc\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbard\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbardotlessj\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbari\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarl\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbaro\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbarrevglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbaru\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbeltl\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textbottomtiebar\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbottomtiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbrevemacron\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbrevemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbullseye\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textceltpal\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textchi\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcircumacute\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircumacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textcircumdot\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircumdot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textcloseepsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcloseomega\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcloserevepsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcommatailz\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcorner\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrb\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrd\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrinvglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrlambda\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcrtwo\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctc\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctd\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctdctzlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctesh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctj\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctt\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textcttctclig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctyogh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textctz\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdctzlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdotacute\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdotacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdotbreve\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdotbreve{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublebaresh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdoublebarpipe\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdoublebarslash\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdoublegrave\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublegrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublepipe\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdoublevbaraccent\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublevbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublevertline\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdownstep\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdyoghlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textdzlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textesh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textfallrise\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfallrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textfishhookr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textgamma\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textglobfall\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textglobrise\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textgravecircum\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravecircum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravedot\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravedot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravemacron\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravemid\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravemid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texthalflength\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthardsign\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthighrise\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthighrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texthooktop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtb\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtbardotlessj\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtc\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtd\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthth\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texththeng\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtk\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtp\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtq\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtrtaild\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtscg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthtt\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texthvlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textinvglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textinvscr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textinvsubbridge\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinvsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textiota\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlambda\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlengthmark\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlhookt\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlhtlongi\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlhtlongy\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlonglegr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlowering\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlowering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlowrise\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlowrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlptr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textltailm\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textltailn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textltilde\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textlyoghlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textmidacute\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmidacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textObardotlessj\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textOlyoghlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textomega\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textopencorner\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textopeno\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textovercross\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textovercross{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverw\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverw{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textpalhook\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textphi\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textpipe\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textpolhook\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpolhook{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textprimstress\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textraiseglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textraisevibyi\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textraising\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textraising{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textramshorns\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textretracting\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textretracting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrevapostrophe\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textreve\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrevepsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrevglotstop\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrevyogh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrhookrevepsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrhookschwa\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrhoticity\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textringmacron\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textringmacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrisefall\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrisefall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textroundcap\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textroundcap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrptr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtaild\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtaill\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtailn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtailr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtails\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtailt\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrtailz\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textrthook\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsca\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscb\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsce\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsch\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textschwa\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsci\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscj\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscl\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscoelig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscomega\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscripta\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscriptg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscriptv\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscu\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textscy\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textseagull\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textseagull{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsecstress\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsoftsign\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textstretchc\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textsubacute\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbar\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbridge\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubcircum\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubcircum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubdot\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubdot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubgrave\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubgrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsublhalfring\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsublhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubplus\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubplus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubrhalfring\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubrhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubring\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubsquare\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubsquare{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubtilde\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubumlaut\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubumlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubw\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubw{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubwedge\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubwedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperimposetilde\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperimposetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsyllabic\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsyllabic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttctclig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textteshlig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texttheta\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textthorn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texttildedot\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttildedot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttoneletterstem\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"texttoptiebar\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttoptiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttslig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturna\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturncelig\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnk\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnlonglegr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnm\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnmrleg\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnr\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnrrtail\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnscripta\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnt\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnv\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturnw\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textturny\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textupstep\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textvbaraccent\",\n      \"if\": \"T3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textvertline\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textvibyi\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textvibyy\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textwynn\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"textyogh\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"T3\"\n    },\n    {\n      \"name\": \"tipaencoding\",\n      \"if\": \"T3\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"upperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaupperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaupperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaupperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaupperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaUpperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaUpperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaUpperaccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaUpperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaloweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaloweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaloweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaloweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaLoweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaLoweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaLoweraccent\",\n      \"if\": \"T3\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaLoweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"B\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"B{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"copyleft\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"G\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"G{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"I\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"I{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"m\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"m{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"M\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"M{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"T\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"tsh\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"TSH\",\n      \"if\": \"T4\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"T4\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Abreve\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"abreve\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ABREVE\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"Acircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"acircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"Ecircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ecircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"T5\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ocircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ocircumflex\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"OHORN\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"ohorn\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"Ohorn\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"UHORN\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"uhorn\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"Uhorn\",\n      \"if\": \"T5\"\n    },\n    {\n      \"name\": \"textaolig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textbenttailyogh\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textbktailgamma\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textctinvglotstop\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textctjvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textctstretchc\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textctstretchcvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textctturnt\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textdblig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textdoublebarpipevar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textdoublepipevar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textdownfullarrow\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfemale\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfrbarn\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfrhookd\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfrhookdvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfrhookt\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textfrtailgamma\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textglotstopvari\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textglotstopvarii\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textglotstopvariii\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textgrgamma\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textheng\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"texthmlig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"texthtbardotlessjvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textinvomega\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textinvsca\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textinvscripta\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textlfishhookrlig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textlhookfour\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textlhookp\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textlhti\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textlooptoprevesh\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textnrleg\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textObullseye\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textpalhooklong\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textpalhookvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textpipevar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textqplig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrectangle\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textretractingvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrevscl\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrevscr\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrhooka\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrhooke\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrhookepsilon\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrhookopeno\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrtailhth\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textrthooklong\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscaolig\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscdelta\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscf\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textsck\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscm\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscp\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textscq\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textspleftarrow\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textstretchcvar\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textsubdoublearrow\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textsubrightarrow\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textthornvari\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textthornvarii\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textthornvariii\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textthornvariv\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textturnglotstop\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textturnsck\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textturnscu\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textturnthree\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textturntwo\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textuncrfemale\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"textupfullarrow\",\n      \"if\": \"TS3\"\n    },\n    {\n      \"name\": \"DeclareUnicodeAccent\",\n      \"if\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeAccent{${1:cmd}}{${2:encoding}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeComposite\",\n      \"if\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeComposite{${1:cmd}}{${2:argument}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"TU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"TU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"UnicodeEncodingName\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"UnicodeFontFile\",\n      \"if\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontFile{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeFontName\",\n      \"if\": \"TU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontName{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeFontTeXLigatures\",\n      \"if\": \"TU\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"X2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRABHCH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrabhch\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRABHCHDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrabhchdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRABHDZE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrabhdze\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRABHHA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrabhha\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRAE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrae\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRBYUS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrbyus\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRCHLDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrchldsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRCHRDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrchrdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRCHVCRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrchvcrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRDELTA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrdelta\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRDJE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrdje\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRDZE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrdze\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRDZHE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrdzhe\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYREPS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyreps\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYREREV\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrerev\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRGDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrgdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRGHCRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrghcrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRGHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrghk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRHDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrhdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRHHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrhhk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRHRDSN\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrhrdsn\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRIZH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrizh\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRJE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrje\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRKBEAK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrkbeak\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRKDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrkdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRKHCRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrkhcrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRKHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrkhk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRKVCRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrkvcrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrlangle\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRLDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrldsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRLHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrlhk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRLJE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrlje\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRMDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrmdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRNDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrndsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRNG\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrng\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRNHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrnhk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRNJE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrnje\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRNLHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrnlhk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYROTLD\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrotld\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRpalochka\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRPHK\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrphk\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRQ\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrq\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrrangle\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRRDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrrdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSCHWA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrschwa\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrsdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRSHHA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrshha\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRTDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrtdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRTETSE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrtetse\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRTSHE\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrtshe\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRUSHRT\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrushrt\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRW\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrw\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRY\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyry\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYAT\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyryat\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYHCRS\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyryhcrs\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYO\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyryo\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRZDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrzdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"CYRZHDSC\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"cyrzhdsc\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"f\",\n      \"if\": \"X2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"X2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"X2\"\n    },\n    {\n      \"name\": \"U\",\n      \"if\": \"X2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fontenc#c\": [\n      \"B1\",\n      \"ECMSRB1\",\n      \"ECMSRB2\",\n      \"IL2\",\n      \"L7x\",\n      \"LAE\",\n      \"LCY\",\n      \"LCYW\",\n      \"LFE\",\n      \"LGR\",\n      \"LHE\",\n      \"LTH\",\n      \"LY1\",\n      \"OT1\",\n      \"OT2\",\n      \"OT4\",\n      \"OT6\",\n      \"QX\",\n      \"T1\",\n      \"T1R\",\n      \"T2A\",\n      \"T2ASRB\",\n      \"T2B\",\n      \"T2C\",\n      \"T3\",\n      \"T4\",\n      \"T5\",\n      \"TS3\",\n      \"TU\",\n      \"X2\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontenc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontmfizz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mfThreedprint\"\n    },\n    {\n      \"name\": \"mfAlpinelinux\"\n    },\n    {\n      \"name\": \"mfAngular\"\n    },\n    {\n      \"name\": \"mfAngularAlt\"\n    },\n    {\n      \"name\": \"mfAntenna\"\n    },\n    {\n      \"name\": \"mfApache\"\n    },\n    {\n      \"name\": \"mfArchlinux\"\n    },\n    {\n      \"name\": \"mfAws\"\n    },\n    {\n      \"name\": \"mfAzure\"\n    },\n    {\n      \"name\": \"mfBackbone\"\n    },\n    {\n      \"name\": \"mfBlackberry\"\n    },\n    {\n      \"name\": \"mfBomb\"\n    },\n    {\n      \"name\": \"mfBootstrap\"\n    },\n    {\n      \"name\": \"mfC\"\n    },\n    {\n      \"name\": \"mfCassandra\"\n    },\n    {\n      \"name\": \"mfCentos\"\n    },\n    {\n      \"name\": \"mfClojure\"\n    },\n    {\n      \"name\": \"mfCodeigniter\"\n    },\n    {\n      \"name\": \"mfCodepen\"\n    },\n    {\n      \"name\": \"mfCoffeeBean\"\n    },\n    {\n      \"name\": \"mfCplusplus\"\n    },\n    {\n      \"name\": \"mfCsharp\"\n    },\n    {\n      \"name\": \"mfCss\"\n    },\n    {\n      \"name\": \"mfCssthree\"\n    },\n    {\n      \"name\": \"mfCssthreeAlt\"\n    },\n    {\n      \"name\": \"mfDthree\"\n    },\n    {\n      \"name\": \"mfDatabase\"\n    },\n    {\n      \"name\": \"mfDatabaseAlt\"\n    },\n    {\n      \"name\": \"mfDatabaseAlttwo\"\n    },\n    {\n      \"name\": \"mfDebian\"\n    },\n    {\n      \"name\": \"mfDocker\"\n    },\n    {\n      \"name\": \"mfDreamhost\"\n    },\n    {\n      \"name\": \"mfElixir\"\n    },\n    {\n      \"name\": \"mfElm\"\n    },\n    {\n      \"name\": \"mfErlang\"\n    },\n    {\n      \"name\": \"mfExherbo\"\n    },\n    {\n      \"name\": \"mfFedora\"\n    },\n    {\n      \"name\": \"mfFireAlt\"\n    },\n    {\n      \"name\": \"mfFreebsd\"\n    },\n    {\n      \"name\": \"mfFreecodecamp\"\n    },\n    {\n      \"name\": \"mfGentoo\"\n    },\n    {\n      \"name\": \"mfGhost\"\n    },\n    {\n      \"name\": \"mfGit\"\n    },\n    {\n      \"name\": \"mfGnome\"\n    },\n    {\n      \"name\": \"mfGo\"\n    },\n    {\n      \"name\": \"mfGoAlt\"\n    },\n    {\n      \"name\": \"mfGoogle\"\n    },\n    {\n      \"name\": \"mfGoogleAlt\"\n    },\n    {\n      \"name\": \"mfGoogleCode\"\n    },\n    {\n      \"name\": \"mfGoogleDevelopers\"\n    },\n    {\n      \"name\": \"mfGradle\"\n    },\n    {\n      \"name\": \"mfGrails\"\n    },\n    {\n      \"name\": \"mfGrailsAlt\"\n    },\n    {\n      \"name\": \"mfGrunt\"\n    },\n    {\n      \"name\": \"mfGulp\"\n    },\n    {\n      \"name\": \"mfGulpAlt\"\n    },\n    {\n      \"name\": \"mfHadoop\"\n    },\n    {\n      \"name\": \"mfHaskell\"\n    },\n    {\n      \"name\": \"mfHeroku\"\n    },\n    {\n      \"name\": \"mfHtml\"\n    },\n    {\n      \"name\": \"mfHtmlfive\"\n    },\n    {\n      \"name\": \"mfHtmlfiveAlt\"\n    },\n    {\n      \"name\": \"mfIphone\"\n    },\n    {\n      \"name\": \"mfJava\"\n    },\n    {\n      \"name\": \"mfJavaBold\"\n    },\n    {\n      \"name\": \"mfJavaDuke\"\n    },\n    {\n      \"name\": \"mfJavascript\"\n    },\n    {\n      \"name\": \"mfJavascriptAlt\"\n    },\n    {\n      \"name\": \"mfJetty\"\n    },\n    {\n      \"name\": \"mfJquery\"\n    },\n    {\n      \"name\": \"mfKde\"\n    },\n    {\n      \"name\": \"mfLaravel\"\n    },\n    {\n      \"name\": \"mfLineGraph\"\n    },\n    {\n      \"name\": \"mfLinuxMint\"\n    },\n    {\n      \"name\": \"mfLooking\"\n    },\n    {\n      \"name\": \"mfMagento\"\n    },\n    {\n      \"name\": \"mfMariadb\"\n    },\n    {\n      \"name\": \"mfMaven\"\n    },\n    {\n      \"name\": \"mfMicroscope\"\n    },\n    {\n      \"name\": \"mfMobileDevice\"\n    },\n    {\n      \"name\": \"mfMobilePhoneAlt\"\n    },\n    {\n      \"name\": \"mfMobilePhoneBroadcast\"\n    },\n    {\n      \"name\": \"mfMongodb\"\n    },\n    {\n      \"name\": \"mfMssql\"\n    },\n    {\n      \"name\": \"mfMysql\"\n    },\n    {\n      \"name\": \"mfMysqlAlt\"\n    },\n    {\n      \"name\": \"mfNetbsd\"\n    },\n    {\n      \"name\": \"mfNginx\"\n    },\n    {\n      \"name\": \"mfNginxAlt\"\n    },\n    {\n      \"name\": \"mfNginxAlttwo\"\n    },\n    {\n      \"name\": \"mfNodejs\"\n    },\n    {\n      \"name\": \"mfNpm\"\n    },\n    {\n      \"name\": \"mfObjc\"\n    },\n    {\n      \"name\": \"mfOpenshift\"\n    },\n    {\n      \"name\": \"mfOracle\"\n    },\n    {\n      \"name\": \"mfOracleAlt\"\n    },\n    {\n      \"name\": \"mfOsx\"\n    },\n    {\n      \"name\": \"mfPerl\"\n    },\n    {\n      \"name\": \"mfPhoneAlt\"\n    },\n    {\n      \"name\": \"mfPhoneGap\"\n    },\n    {\n      \"name\": \"mfPhoneRetro\"\n    },\n    {\n      \"name\": \"mfPhp\"\n    },\n    {\n      \"name\": \"mfPhpAlt\"\n    },\n    {\n      \"name\": \"mfPlayframework\"\n    },\n    {\n      \"name\": \"mfPlayframeworkAlt\"\n    },\n    {\n      \"name\": \"mfPlone\"\n    },\n    {\n      \"name\": \"mfPostgres\"\n    },\n    {\n      \"name\": \"mfPostgresAlt\"\n    },\n    {\n      \"name\": \"mfPython\"\n    },\n    {\n      \"name\": \"mfRaspberrypi\"\n    },\n    {\n      \"name\": \"mfReactjs\"\n    },\n    {\n      \"name\": \"mfRedhat\"\n    },\n    {\n      \"name\": \"mfRedis\"\n    },\n    {\n      \"name\": \"mfRuby\"\n    },\n    {\n      \"name\": \"mfRubyOnRails\"\n    },\n    {\n      \"name\": \"mfRubyOnRailsAlt\"\n    },\n    {\n      \"name\": \"mfRust\"\n    },\n    {\n      \"name\": \"mfSass\"\n    },\n    {\n      \"name\": \"mfSatellite\"\n    },\n    {\n      \"name\": \"mfScala\"\n    },\n    {\n      \"name\": \"mfScalaAlt\"\n    },\n    {\n      \"name\": \"mfScript\"\n    },\n    {\n      \"name\": \"mfScriptAlt\"\n    },\n    {\n      \"name\": \"mfShell\"\n    },\n    {\n      \"name\": \"mfSitefinity\"\n    },\n    {\n      \"name\": \"mfSolaris\"\n    },\n    {\n      \"name\": \"mfSplatter\"\n    },\n    {\n      \"name\": \"mfSpring\"\n    },\n    {\n      \"name\": \"mfSuse\"\n    },\n    {\n      \"name\": \"mfSvg\"\n    },\n    {\n      \"name\": \"mfSymfony\"\n    },\n    {\n      \"name\": \"mfTomcat\"\n    },\n    {\n      \"name\": \"mfUbuntu\"\n    },\n    {\n      \"name\": \"mfUnity\"\n    },\n    {\n      \"name\": \"mfWireless\"\n    },\n    {\n      \"name\": \"mfWordpress\"\n    },\n    {\n      \"name\": \"mfXeleven\"\n    },\n    {\n      \"name\": \"MF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mficon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mficon{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fonts-arundina.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thaitext\"\n    },\n    {\n      \"name\": \"latintext\"\n    },\n    {\n      \"name\": \"thairmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaisfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaittdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishrmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishsfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaifamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishfamilydefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fonts-arundina#c\": [\n      \"sans\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fonts-arundina#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fonts-tlwg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thaitext\"\n    },\n    {\n      \"name\": \"latintext\"\n    },\n    {\n      \"name\": \"thairmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaisfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaittdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishrmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishsfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thaifamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishfamilydefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fonts-tlwg#c\": [\n      \"scale=${1:factor}\",\n      \"sans\",\n      \"rmkinnari\",\n      \"rmnorasi\",\n      \"sfgaruda\",\n      \"sflaksaman\",\n      \"sfumpush\",\n      \"sfloma\",\n      \"sfwaree\",\n      \"ttttype\",\n      \"ttttypist\",\n      \"kinnari\",\n      \"garuda\",\n      \"norasi\",\n      \"laksaman\",\n      \"loma\",\n      \"purisa\",\n      \"sawasdee\",\n      \"ttype\",\n      \"ttypist\",\n      \"umpush\",\n      \"waree\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fonts-tlwg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontscale.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fontscalesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontscalesetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\fontscalesetup,\\\\fontscalesetup*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fontscalesetup*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontscalesetup*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\fontscalesetup,\\\\fontscalesetup*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CurrentFontStep\"\n    },\n    {\n      \"name\": \"CurrentFontScale\"\n    },\n    {\n      \"name\": \"CurrentFontSize\"\n    },\n    {\n      \"name\": \"CurrentFontBaselineskip\"\n    },\n    {\n      \"name\": \"SetFontStep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontStep{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontStep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontStep*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontScale*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontScale*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontSize{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontSize*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontSize*{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"ScaleFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ScaleFont{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontSizeBaselineskip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetFontSizeBaselineskip{${1:dimen}}{${2:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontBaselineskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontBaselineskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetFontBaselineskip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFontBaselineskip*{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"PrintFontSizeParameters\"\n    },\n    {\n      \"name\": \"PrintAllFontSizeParameters\"\n    },\n    {\n      \"name\": \"PrintSampleText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintSampleText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintSampleText*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintSampleText*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintFontSizeCommand\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\fontscalesetup,\\\\fontscalesetup*\": [\n      \"baselineskip-size-ratio=${1:number}\",\n      \"typographic-scale=${1|classic-10pt,classic-11pt,classic-12pt,musical|}\",\n      \"classic-10pt\",\n      \"classic-11pt\",\n      \"classic-12pt\",\n      \"musical\",\n      \"musical/base=\",\n      \"musical/ratio=${1:number}\",\n      \"musical/notes=${1:integer}\",\n      \"tiny/scale=${1:number}\",\n      \"tiny/size=${1:size}\",\n      \"tiny/baselineskip=\",\n      \"tiny=${1:size}\",\n      \"tiny=${1:size}/${2:baselineskip}\",\n      \"scriptsize/scale=${1:number}\",\n      \"scriptsize/size=${1:size}\",\n      \"scriptsize/baselineskip=\",\n      \"scriptsize=${1:size}\",\n      \"scriptsize=${1:size}/${2:baselineskip}\",\n      \"footnotesize/scale=${1:number}\",\n      \"footnotesize/size=${1:size}\",\n      \"footnotesize/baselineskip=\",\n      \"footnotesize=${1:size}\",\n      \"footnotesize=${1:size}/${2:baselineskip}\",\n      \"small/scale=${1:number}\",\n      \"small/size=${1:size}\",\n      \"small/baselineskip=\",\n      \"small=${1:size}\",\n      \"small=${1:size}/${2:baselineskip}\",\n      \"normalsize/scale=${1:number}\",\n      \"normalsize/size=${1:size}\",\n      \"normalsize/baselineskip=\",\n      \"normalsize=${1:size}\",\n      \"normalsize=${1:size}/${2:baselineskip}\",\n      \"large/scale=${1:number}\",\n      \"large/size=${1:size}\",\n      \"large/baselineskip=\",\n      \"large=${1:size}\",\n      \"large=${1:size}/${2:baselineskip}\",\n      \"Large/scale=${1:number}\",\n      \"Large/size=${1:size}\",\n      \"Large/baselineskip=\",\n      \"Large=${1:size}\",\n      \"Large=${1:size}/${2:baselineskip}\",\n      \"LARGE/scale=${1:number}\",\n      \"LARGE/size=${1:size}\",\n      \"LARGE/baselineskip=\",\n      \"LARGE=${1:size}\",\n      \"LARGE=${1:size}/${2:baselineskip}\",\n      \"huge/scale=${1:number}\",\n      \"huge/size=${1:size}\",\n      \"huge/baselineskip=\",\n      \"huge=${1:size}\",\n      \"huge=${1:size}/${2:baselineskip}\",\n      \"Huge/scale=${1:number}\",\n      \"Huge/size=${1:size}\",\n      \"Huge/baselineskip=\",\n      \"Huge=${1:size}\",\n      \"Huge=${1:size}/${2:baselineskip}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fontsetup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"newcomputermodern\",\n      \"if\": \"default\"\n    },\n    {\n      \"name\": \"newcomputermodern\",\n      \"if\": \"olddefault\"\n    },\n    {\n      \"name\": \"fourier-otf\",\n      \"if\": \"erewhon\"\n    },\n    {\n      \"name\": \"gfsneohellenicot\",\n      \"if\": \"gfsneohellenic\"\n    },\n    {\n      \"name\": \"libertinus-otf\",\n      \"if\": \"libertinus\"\n    },\n    {\n      \"name\": \"xcharter-otf\",\n      \"if\": \"xcharter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftgrquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightgrquotes\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fontsetup#c\": [\n      \"default\",\n      \"upint\",\n      \"varnothing\",\n      \"newcmbb\",\n      \"olddefault\",\n      \"cambria\",\n      \"concrete\",\n      \"ebgaramond\",\n      \"erewhon\",\n      \"euler\",\n      \"fira\",\n      \"gfsartemisia\",\n      \"gfsdidotclassic\",\n      \"gfsdidot\",\n      \"gfsneohellenic\",\n      \"kerkis\",\n      \"libertinus\",\n      \"lucida\",\n      \"minion\",\n      \"msgaramond\",\n      \"oldstandard\",\n      \"palatino\",\n      \"stixtwo\",\n      \"talos\",\n      \"times\",\n      \"xcharter\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontsetup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontsize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"changefontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsize{${1:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"changefontsize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changefontsize[${2:baselineskip}]{${1:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"generateclofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"generateclofile{${1:name}}{${2:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"generateclofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"generateclofile{${1:name}}[${3:baselineskip}]{${2:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"printsamples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printsamples{${1:baselineskip}}{${2:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"printsamples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"printsamples{${1:baselineskip}}{${2:fontsize}}[${3:sizes}]\"\n      }\n    },\n    {\n      \"name\": \"sampletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sampletext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tinyr\"\n    },\n    {\n      \"name\": \"tinyrr\"\n    },\n    {\n      \"name\": \"tinyrrr\"\n    },\n    {\n      \"name\": \"scriptsizer\"\n    },\n    {\n      \"name\": \"scriptsizerr\"\n    },\n    {\n      \"name\": \"scriptsizerrr\"\n    },\n    {\n      \"name\": \"footnotesizer\"\n    },\n    {\n      \"name\": \"footnotesizerr\"\n    },\n    {\n      \"name\": \"footnotesizerrr\"\n    },\n    {\n      \"name\": \"smallr\"\n    },\n    {\n      \"name\": \"smallrr\"\n    },\n    {\n      \"name\": \"smallrrr\"\n    },\n    {\n      \"name\": \"normalsizer\"\n    },\n    {\n      \"name\": \"normalsizerr\"\n    },\n    {\n      \"name\": \"normalsizerrr\"\n    },\n    {\n      \"name\": \"larger\"\n    },\n    {\n      \"name\": \"largerr\"\n    },\n    {\n      \"name\": \"largerrr\"\n    },\n    {\n      \"name\": \"Larger\"\n    },\n    {\n      \"name\": \"Largerr\"\n    },\n    {\n      \"name\": \"Largerrr\"\n    },\n    {\n      \"name\": \"LARGEr\"\n    },\n    {\n      \"name\": \"LARGErr\"\n    },\n    {\n      \"name\": \"LARGErrr\"\n    },\n    {\n      \"name\": \"huger\"\n    },\n    {\n      \"name\": \"hugerr\"\n    },\n    {\n      \"name\": \"hugerrr\"\n    },\n    {\n      \"name\": \"Huger\"\n    },\n    {\n      \"name\": \"Hugerr\"\n    },\n    {\n      \"name\": \"Hugerrr\"\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"HUGEr\"\n    },\n    {\n      \"name\": \"HUGErr\"\n    },\n    {\n      \"name\": \"HUGErrr\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fontsize#c\": [\n      \"fontsize=\",\n      \"parindent=\",\n      \"cloname=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontsize#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fontsmpl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fontsample\"\n    },\n    {\n      \"name\": \"fontsampletext\"\n    },\n    {\n      \"name\": \"fontsampleglyphs\"\n    },\n    {\n      \"name\": \"fontsampleglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontsampleglyph{${1:glyph}}\"\n      }\n    },\n    {\n      \"name\": \"fontsampleaccents\"\n    },\n    {\n      \"name\": \"fontsampleaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontsampleaccent{${1:accent}}\"\n      }\n    },\n    {\n      \"name\": \"typewriterfont\"\n    },\n    {\n      \"name\": \"TextSymbolUnavailable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextSymbolUnavailable{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fontspec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strongfontdeclare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strongfontdeclare{${1:font-switching list}}\"\n      }\n    },\n    {\n      \"name\": \"strongreset\"\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmainfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmainfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setromanfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setromanfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setromanfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setromanfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setromanfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsansfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsansfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setsansfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setsansfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonofont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonofont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmonofont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmonofont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"setfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewfontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providefontfamily{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"providefontfamily{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"providefontfamily{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontspec{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fontspec[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fontspec{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"fontspec[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"IfFontExistsTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontExistsTF{${1:font name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"setfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providefontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providefontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"providefontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providefontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"providefontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathrm{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathrm[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathrm{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathrm[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathsf{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathsf[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathsf{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathsf[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathtt{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathtt[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathtt{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathtt[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldmathrm{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldmathrm[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setboldmathrm{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setboldmathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setboldmathrm[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"defaultfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultfontfeatures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defaultfontfeatures[${2:font name list}]{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"IfFontFeatureActiveTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontFeatureActiveTF{${1:font feature}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"addfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addfontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EncodingCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"EncodingCommand{${1:cmd}}[${3:num}][${4:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EncodingAccent{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EncodingSymbol{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EncodingComposite{${1:cmd}}{${2:letter}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"EncodingCompositeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"EncodingCompositeCommand(${3:cmd}){${1:letter}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareSymbol{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareAccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareAccent{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndeclareCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndeclareComposite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndeclareComposite{${1:cmd}}{${2:letter}}\"\n      }\n    },\n    {\n      \"name\": \"newAATfeature\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newAATfeature{${1:feature}}{${2:option}}{${3:feature code}}{${4:selector code}}\"\n      }\n    },\n    {\n      \"name\": \"newopentypefeature\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newopentypefeature{${1:feature}}{${2:option}}{${3:feature tag}}\"\n      }\n    },\n    {\n      \"name\": \"newfontfeature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontfeature{${1:name}}{${2:input string}}\"\n      }\n    },\n    {\n      \"name\": \"newfontscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontscript{${1:fontspec name}}{${2:OpenType tag list}}\"\n      }\n    },\n    {\n      \"name\": \"newfontlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfontlanguage{${1:fontspec name}}{${2:OpenType tag list}}\"\n      }\n    },\n    {\n      \"name\": \"aliasfontfeature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aliasfontfeature{${1:existing name}}{${2:new name}}\"\n      }\n    },\n    {\n      \"name\": \"aliasfontfeatureoption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aliasfontfeatureoption{${1:font feature}}{${2:existing name}}{${3:new name}}\"\n      }\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UTFencname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emfontdeclare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfontdeclare{${1:font-switching list}}\"\n      }\n    },\n    {\n      \"name\": \"FontspecSetCheckBoolFalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FontspecSetCheckBoolTrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scitdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scsldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scswdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeEncodingName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontTeXLigatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontFile{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeFontName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontName{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeAccent{${1:cmd}}{${2:encoding}}{${3:char code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCommand{${1:command}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeComposite{${1:cmd}}{${2:letter}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeSymbol{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"strongenv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fontspec#c\": [\n      \"math\",\n      \"no-math\",\n      \"config\",\n      \"no-config\",\n      \"quiet\",\n      \"silent\",\n      \"verbose\"\n    ],\n    \"\\\\addfontfeature,\\\\addfontfeatures,\\\\defaultfontfeatures,\\\\fontspec,\\\\newfontface,\\\\newfontfamily,\\\\providefontface,\\\\providefontfamily,\\\\renewfontface,\\\\renewfontfamily,\\\\setboldmathrm,\\\\setfontface,\\\\setfontfamily,\\\\setmainfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmonofont,\\\\setromanfont,\\\\setsansfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,SwashOff,Alternate,AlternateOff,WordInitial,WordInitialOff,WordFinal,WordFinalOff,LineFinal,LineFinalOff,Inner,InnerOff,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"Instance=${1:instance}\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"KpseOnly\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,Uppercase,Lowercase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"Opacity=${1:factor}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawAxis={${1:tag=number}}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"Slant=${1:number}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,Uppercase,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"Weight=${1:number}\",\n      \"Width=${1:number}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fontspec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fonttable.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fnthours\"\n    },\n    {\n      \"name\": \"fonttable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fonttable{${1:test font}}\"\n      }\n    },\n    {\n      \"name\": \"xfonttable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xfonttable{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"pikfont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pikfont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"fontrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fontrange{${1:low}}{${2:high}}\"\n      }\n    },\n    {\n      \"name\": \"decimals\"\n    },\n    {\n      \"name\": \"nodecimals\"\n    },\n    {\n      \"name\": \"hexoct\"\n    },\n    {\n      \"name\": \"nohexoct\"\n    },\n    {\n      \"name\": \"ftablewidth\"\n    },\n    {\n      \"name\": \"fntcolwidth\"\n    },\n    {\n      \"name\": \"fonttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fonttext{${1:test font}}\"\n      }\n    },\n    {\n      \"name\": \"simpletext\"\n    },\n    {\n      \"name\": \"fulltext\"\n    },\n    {\n      \"name\": \"regulartext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regulartext{${1:font spec}}\"\n      }\n    },\n    {\n      \"name\": \"fonttexts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fonttexts{${1:test font}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"regulartexts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"regulartexts{${1:font spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"germanparatext\"\n    },\n    {\n      \"name\": \"latinparatext\"\n    },\n    {\n      \"name\": \"aztext\"\n    },\n    {\n      \"name\": \"AZtext\"\n    },\n    {\n      \"name\": \"digitstext\"\n    },\n    {\n      \"name\": \"punctext\"\n    },\n    {\n      \"name\": \"glyphmixture\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glyphmixture{${1:test glyph}}{${2:start glyph}}{${3:end glyph}}\"\n      }\n    },\n    {\n      \"name\": \"glyphalternation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glyphalternation{${1:test glyph}}{${2:start glyph}}{${3:end glyph}}\"\n      }\n    },\n    {\n      \"name\": \"glyphseries\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glyphseries{${1:test glyph}}{${2:start glyph}}{${3:end glyph}}\"\n      }\n    },\n    {\n      \"name\": \"glyphalphabet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glyphalphabet{${1:test glyph}}\"\n      }\n    },\n    {\n      \"name\": \"GLYPHALPHABET\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLYPHALPHABET{${1:test glyph}}\"\n      }\n    },\n    {\n      \"name\": \"glyphlowers\"\n    },\n    {\n      \"name\": \"glyphuppers\"\n    },\n    {\n      \"name\": \"glyphdigits\"\n    },\n    {\n      \"name\": \"glyphpunct\"\n    },\n    {\n      \"name\": \"sevenrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhexoct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knutext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreknutext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capknutext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knunames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flqq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frqq\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fontwrap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"xltxtra\"\n    },\n    {\n      \"name\": \"perltex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setfontwrapdefaultfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontwrapdefaultfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setunicodegroupfont{${1:group%keyvals}}{${2:font}}\",\n        \"keys\": [\n          \"\\\\setunicodegroupfont#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setunicodeblockfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setunicodeblockfont{${1:block%keyvals}}{${2:font}}\",\n        \"keys\": [\n          \"\\\\setunicodeblockfont#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fontwrap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontwrap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfontwrapallowedmacros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontwrapallowedmacros{${1:csname1,csname2,...}}\"\n      }\n    },\n    {\n      \"name\": \"setfontwrapallowedenvironments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontwrapallowedenvironments{${1:envname1,envname2,...}}\"\n      }\n    },\n    {\n      \"name\": \"autfontunicodedata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontwrapallowedenvironments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontwrapallowedmacros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontwrapdefaultCJKfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontwrapdefaultfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perlfontwrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"perlfontwrap{${1:text}}{${2:data}}{${3:allowed macros}}{${4:allowed envs}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupArabicFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupArabicFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupCJKFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupCJKFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupChineseFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupChineseFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupCyrillicFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupCyrillicFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupDiacriticsFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupDiacriticsFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupGreekFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupGreekFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupJapaneseFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupJapaneseFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupKoreanFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupKoreanFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupLatinFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupLatinFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupMathematicsFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupMathematicsFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupOtherFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupOtherFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupPhoneticsFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupPhoneticsFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupPunctuationFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupPunctuationFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupSymbolsFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupSymbolsFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setunicodegroupYiFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setunicodegroupYiFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockAegeanNumbersFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockAegeanNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockAegeanNumbers{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockAlphabeticPresentationFormsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockAlphabeticPresentationForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockAlphabeticPresentationForms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockAncientGreekMusicalNotationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockAncientGreekMusicalNotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockAncientGreekMusicalNotation{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockAncientGreekNumbersFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockAncientGreekNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockAncientGreekNumbers{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArabicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArabicPresentationFormsAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArabicPresentationFormsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArabicPresentationFormsA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArabicPresentationFormsBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArabicPresentationFormsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArabicPresentationFormsB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArabicSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArabicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArabicSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArabic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArmenianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArmenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArmenian{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockArrowsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockArrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockArrows{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBalineseFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBalinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBalinese{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBasicLatinFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBasicLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBasicLatin{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBengaliFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBengali\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBengali{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBlockElementsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBlockElements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBlockElements{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBopomofoExtendedFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBopomofoExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBopomofoExtended{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBopomofoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBopomofo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBopomofo{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBoxDrawingFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBoxDrawing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBoxDrawing{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBraillePatternsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBraillePatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBraillePatterns{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBugineseFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBuginese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBuginese{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockBuhidFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockBuhid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockBuhid{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockByzantineMusicalSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockByzantineMusicalSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockByzantineMusicalSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityFormsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKCompatibilityForms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityIdeographsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityIdeographsSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityIdeographsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKCompatibilityIdeographsSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibilityIdeographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKCompatibilityIdeographs{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKCompatibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKCompatibility{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKRadicalsSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKRadicalsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKRadicalsSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKStrokesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKStrokes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKStrokes{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKSymbolsandPunctuationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKSymbolsandPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKSymbolsandPunctuation{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographsExtensionAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographsExtensionA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKUnifiedIdeographsExtensionA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographsExtensionBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographsExtensionB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKUnifiedIdeographsExtensionB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCJKUnifiedIdeographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCJKUnifiedIdeographs{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCherokeeFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCherokee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCherokee{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarksFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarksSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarksSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCombiningDiacriticalMarksSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarksforSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarksforSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCombiningDiacriticalMarksforSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCombiningDiacriticalMarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCombiningDiacriticalMarks{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCombiningHalfMarksFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCombiningHalfMarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCombiningHalfMarks{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockControlPicturesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockControlPictures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockControlPictures{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCopticFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCoptic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCountingRodNumeralsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCountingRodNumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCountingRodNumerals{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCuneiformFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCuneiformNumbersandPunctuationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCuneiformNumbersandPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCuneiformNumbersandPunctuation{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCuneiform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCuneiform{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCurrencySymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCurrencySymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCurrencySymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCypriotSyllabaryFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCypriotSyllabary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCypriotSyllabary{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCyrillicExtendedAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCyrillicExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCyrillicExtendedA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCyrillicExtendedBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCyrillicExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCyrillicExtendedB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCyrillicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCyrillicSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockCyrillicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCyrillicSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockCyrillic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockCyrillic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockDeseretFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockDeseret\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockDeseret{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockDevanagariFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockDevanagari\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockDevanagari{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockDingbatsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockDingbats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockDingbats{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockDominoTilesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockDominoTiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockDominoTiles{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockEnclosedAlphanumericsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockEnclosedAlphanumerics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockEnclosedAlphanumerics{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockEnclosedCJKLettersandMonthsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockEnclosedCJKLettersandMonths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockEnclosedCJKLettersandMonths{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockEthiopicExtendedFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockEthiopicExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockEthiopicExtended{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockEthiopicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockEthiopicSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockEthiopicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockEthiopicSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockEthiopic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockEthiopic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGeneralPunctuationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGeneralPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGeneralPunctuation{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGeometricShapesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGeometricShapes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGeometricShapes{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGeorgianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGeorgianSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGeorgianSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGeorgianSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGeorgian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGeorgian{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGlagoliticFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGlagolitic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGlagolitic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGothicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGothic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGothic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGreekExtendedFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGreekExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGreekExtended{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGreekandCopticFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGreekandCoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGreekandCoptic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGujaratiFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGujarati\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGujarati{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockGurmukhiFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockGurmukhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockGurmukhi{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHalfwidthandFullwidthFormsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHalfwidthandFullwidthForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHalfwidthandFullwidthForms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHangulCompatibilityJamoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHangulCompatibilityJamo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHangulCompatibilityJamo{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHangulJamoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHangulJamo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHangulJamo{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHangulSyllablesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHangulSyllables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHangulSyllables{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHanunooFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHanunoo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHanunoo{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHebrewFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHebrew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHebrew{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHighPrivateUseSurrogatesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHighPrivateUseSurrogates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHighPrivateUseSurrogates{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHighSurrogatesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHighSurrogates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHighSurrogates{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockHiraganaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockHiragana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockHiragana{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockIPAExtensionsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockIPAExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockIPAExtensions{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockIdeographicDescriptionCharactersFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockIdeographicDescriptionCharacters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockIdeographicDescriptionCharacters{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKanbunFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKanbun\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKanbun{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKangxiRadicalsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKangxiRadicals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKangxiRadicals{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKannadaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKannada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKannada{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKatakanaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKatakanaPhoneticExtensionsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKatakanaPhoneticExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKatakanaPhoneticExtensions{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKatakana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKatakana{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKharoshthiFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKharoshthi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKharoshthi{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKhmerFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKhmerSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockKhmerSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKhmerSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockKhmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockKhmer{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLaoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLao{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedAdditionalFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedAdditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinExtendedAdditional{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinExtendedA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinExtendedB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedCFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinExtendedC{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedDFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinExtendedD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinExtendedD{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLatinSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLatinSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLatinSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLetterlikeSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLetterlikeSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLetterlikeSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLimbuFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLimbu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLimbu{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLinearBIdeogramsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLinearBIdeograms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLinearBIdeograms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLinearBSyllabaryFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLinearBSyllabary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLinearBSyllabary{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockLowSurrogatesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockLowSurrogates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockLowSurrogates{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMahjongTilesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMahjongTiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMahjongTiles{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMalayalamFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMalayalam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMalayalam{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMathematicalAlphanumericSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMathematicalAlphanumericSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMathematicalAlphanumericSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMathematicalOperatorsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMathematicalOperators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMathematicalOperators{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousMathematicalSymbolsAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousMathematicalSymbolsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMiscellaneousMathematicalSymbolsA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousMathematicalSymbolsBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousMathematicalSymbolsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMiscellaneousMathematicalSymbolsB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousSymbolsandArrowsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousSymbolsandArrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMiscellaneousSymbolsandArrows{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMiscellaneousSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousTechnicalFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMiscellaneousTechnical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMiscellaneousTechnical{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockModifierToneLettersFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockModifierToneLetters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockModifierToneLetters{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMongolianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMongolian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMongolian{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMusicalSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMusicalSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMusicalSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockMyanmarFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockMyanmar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockMyanmar{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockNKoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockNKo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockNKo{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockNewTaiLueFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockNewTaiLue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockNewTaiLue{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockNumberFormsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockNumberForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockNumberForms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOghamFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOgham\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOgham{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOldItalicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOldItalic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOldItalic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOldPersianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOldPersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOldPersian{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOpticalCharacterRecognitionFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOpticalCharacterRecognition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOpticalCharacterRecognition{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOriyaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOriya\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOriya{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockOsmanyaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockOsmanya\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockOsmanya{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockPhagsPaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockPhagsPa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockPhagsPa{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockPhoenicianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockPhoenician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockPhoenician{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockPhoneticExtensionsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockPhoneticExtensionsSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockPhoneticExtensionsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockPhoneticExtensionsSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockPhoneticExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockPhoneticExtensions{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockPrivateUseAreaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockPrivateUseArea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockPrivateUseArea{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockRunicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockRunic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockRunic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockShavianFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockShavian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockShavian{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSinhalaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSinhala\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSinhala{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSmallFormVariantsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSmallFormVariants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSmallFormVariants{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSpacingModifierLettersFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSpacingModifierLetters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSpacingModifierLetters{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSpecialsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSpecials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSpecials{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSuperscriptsandSubscriptsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSuperscriptsandSubscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSuperscriptsandSubscripts{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementalArrowsAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementalArrowsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementalArrowsA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementalArrowsBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementalArrowsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementalArrowsB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementalMathematicalOperatorsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementalMathematicalOperators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementalMathematicalOperators{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementalPunctuationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementalPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementalPunctuation{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementaryPrivateUseAreaAFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementaryPrivateUseAreaA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementaryPrivateUseAreaA{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSupplementaryPrivateUseAreaBFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSupplementaryPrivateUseAreaB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSupplementaryPrivateUseAreaB{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSylotiNagriFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSylotiNagri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSylotiNagri{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockSyriacFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockSyriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockSyriac{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTagalogFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTagalog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTagalog{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTagbanwaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTagbanwa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTagbanwa{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTagsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTags\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTags{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTaiLeFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTaiLe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTaiLe{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTaiXuanJingSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTaiXuanJingSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTaiXuanJingSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTamilFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTamil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTamil{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTeluguFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTelugu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTelugu{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockThaanaFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockThaana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockThaana{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockThaiFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockThai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockThai{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTibetanFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTibetan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTibetan{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockTifinaghFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockTifinagh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockTifinagh{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockUgariticFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockUgaritic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockUgaritic{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockUnifiedCanadianAboriginalSyllabicsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockUnifiedCanadianAboriginalSyllabics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockUnifiedCanadianAboriginalSyllabics{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockVariationSelectorsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockVariationSelectorsSupplementFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockVariationSelectorsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockVariationSelectorsSupplement{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockVariationSelectors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockVariationSelectors{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockVerticalFormsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockVerticalForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockVerticalForms{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockYiRadicalsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockYiRadicals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockYiRadicals{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockYiSyllablesFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockYiSyllables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockYiSyllables{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeblockYijingHexagramSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodeblockYijingHexagramSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodeblockYijingHexagramSymbols{${1:font macro}}\"\n      }\n    },\n    {\n      \"name\": \"unicodegroupArabicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupCJKFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupChineseFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupCyrillicFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupDiacriticsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupGreekFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupJapaneseFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupKoreanFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupLatinFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupMathematicsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupOtherFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupPhoneticsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupPunctuationFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupSymbolsFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodegroupYiFont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verbatimfontwrap\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\setunicodegroupfont#c\": [\n      \"Arabic\",\n      \"Chinese\",\n      \"CJK\",\n      \"Cyrillic\",\n      \"Diacritics\",\n      \"Greek\",\n      \"Korean\",\n      \"Japanese\",\n      \"Latin\",\n      \"Mathematics\",\n      \"Phonetics\",\n      \"Punctuation\",\n      \"Symbols\",\n      \"Yi\",\n      \"Other\"\n    ],\n    \"\\\\setunicodeblockfont#c\": [\n      \"AegeanNumbers\",\n      \"AlphabeticPresentationForms\",\n      \"AncientGreekMusicalNotation\",\n      \"AncientGreekNumbers\",\n      \"ArabicPresentationFormsA\",\n      \"ArabicPresentationFormsB\",\n      \"ArabicSupplement\",\n      \"Arabic\",\n      \"Armenian\",\n      \"Arrows\",\n      \"Balinese\",\n      \"BasicLatin\",\n      \"Bengali\",\n      \"BlockElements\",\n      \"BopomofoExtended\",\n      \"Bopomofo\",\n      \"BoxDrawing\",\n      \"BraillePatterns\",\n      \"Buginese\",\n      \"Buhid\",\n      \"ByzantineMusicalSymbols\",\n      \"CJKCompatibilityForms\",\n      \"CJKCompatibilityIdeographsSupplement\",\n      \"CJKCompatibilityIdeographs\",\n      \"CJKCompatibility\",\n      \"CJKRadicalsSupplement\",\n      \"CJKStrokes\",\n      \"CJKSymbolsandPunctuation\",\n      \"CJKUnifiedIdeographsExtensionA\",\n      \"CJKUnifiedIdeographsExtensionB\",\n      \"CJKUnifiedIdeographs\",\n      \"Cherokee\",\n      \"CombiningDiacriticalMarksSupplement\",\n      \"CombiningDiacriticalMarksforSymbols\",\n      \"CombiningDiacriticalMarks\",\n      \"CombiningHalfMarks\",\n      \"ControlPictures\",\n      \"Coptic\",\n      \"CountingRodNumerals\",\n      \"CuneiformNumbersandPunctuation\",\n      \"Cuneiform\",\n      \"CurrencySymbols\",\n      \"CypriotSyllabary\",\n      \"CyrillicExtendedA\",\n      \"CyrillicExtendedB\",\n      \"CyrillicSupplement\",\n      \"Cyrillic\",\n      \"Deseret\",\n      \"Devanagari\",\n      \"Dingbats\",\n      \"DominoTiles\",\n      \"EnclosedAlphanumerics\",\n      \"EnclosedCJKLettersandMonths\",\n      \"EthiopicExtended\",\n      \"EthiopicSupplement\",\n      \"Ethiopic\",\n      \"GeneralPunctuation\",\n      \"GeometricShapes\",\n      \"GeorgianSupplement\",\n      \"Georgian\",\n      \"Glagolitic\",\n      \"Gothic\",\n      \"GreekExtended\",\n      \"GreekandCoptic\",\n      \"Gujarati\",\n      \"Gurmukhi\",\n      \"HalfwidthandFullwidthForms\",\n      \"HangulCompatibilityJamo\",\n      \"HangulJamo\",\n      \"HangulSyllables\",\n      \"Hanunoo\",\n      \"Hebrew\",\n      \"HighPrivateUseSurrogates\",\n      \"HighSurrogates\",\n      \"Hiragana\",\n      \"IPAExtensions\",\n      \"IdeographicDescriptionCharacters\",\n      \"Kanbun\",\n      \"KangxiRadicals\",\n      \"Kannada\",\n      \"KatakanaPhoneticExtensions\",\n      \"Katakana\",\n      \"Kharoshthi\",\n      \"KhmerSymbols\",\n      \"Khmer\",\n      \"Lao\",\n      \"LatinExtendedAdditional\",\n      \"LatinExtendedA\",\n      \"LatinExtendedB\",\n      \"LatinExtendedC\",\n      \"LatinExtendedD\",\n      \"LatinSupplement\",\n      \"LetterlikeSymbols\",\n      \"Limbu\",\n      \"LinearBIdeograms\",\n      \"LinearBSyllabary\",\n      \"LowSurrogates\",\n      \"MahjongTiles\",\n      \"Malayalam\",\n      \"MathematicalAlphanumericSymbols\",\n      \"MathematicalOperators\",\n      \"MiscellaneousMathematicalSymbolsA\",\n      \"MiscellaneousMathematicalSymbolsB\",\n      \"MiscellaneousSymbolsandArrows\",\n      \"MiscellaneousSymbols\",\n      \"MiscellaneousTechnical\",\n      \"ModifierToneLetters\",\n      \"Mongolian\",\n      \"MusicalSymbols\",\n      \"Myanmar\",\n      \"NKo\",\n      \"NewTaiLue\",\n      \"NumberForms\",\n      \"Ogham\",\n      \"OldItalic\",\n      \"OldPersian\",\n      \"OpticalCharacterRecognition\",\n      \"Oriya\",\n      \"Osmanya\",\n      \"PhagsPa\",\n      \"Phoenician\",\n      \"PhoneticExtensionsSupplement\",\n      \"PhoneticExtensions\",\n      \"PrivateUseArea\",\n      \"Runic\",\n      \"Shavian\",\n      \"Sinhala\",\n      \"SmallFormVariants\",\n      \"SpacingModifierLetters\",\n      \"Specials\",\n      \"SuperscriptsandSubscripts\",\n      \"SupplementalArrowsA\",\n      \"SupplementalArrowsB\",\n      \"SupplementalMathematicalOperators\",\n      \"SupplementalPunctuation\",\n      \"SupplementaryPrivateUseAreaA\",\n      \"SupplementaryPrivateUseAreaB\",\n      \"SylotiNagri\",\n      \"Syriac\",\n      \"Tagalog\",\n      \"Tagbanwa\",\n      \"Tags\",\n      \"TaiLe\",\n      \"TaiXuanJingSymbols\",\n      \"Tamil\",\n      \"Telugu\",\n      \"Thaana\",\n      \"Thai\",\n      \"Tibetan\",\n      \"Tifinagh\",\n      \"Ugaritic\",\n      \"UnifiedCanadianAboriginalSyllabics\",\n      \"VariationSelectorsSupplement\",\n      \"VariationSelectors\",\n      \"VerticalForms\",\n      \"YiRadicals\",\n      \"YiSyllables\",\n      \"YijingHexagramSymbols\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/footmisc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DefineFNsymbols\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DefineFNsymbols{${1:set name%specialDef}}[${3:style}]{${2:symbol list}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFNsymbols*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DefineFNsymbols*{${1:set name%specialDef}}[${3:style}]{${2:symbol list}}\"\n      }\n    },\n    {\n      \"name\": \"setfnsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfnsymbol{${1:set name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfnsymbol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpfootnotemark\"\n    },\n    {\n      \"name\": \"mpfootnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mpfootnotemark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotebaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fudgefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefootnoteparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makehboxofhboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removehboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotehint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfootparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfootparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpfootnoterule\",\n      \"if\": \"splitrule\"\n    },\n    {\n      \"name\": \"pagefootnoterule\",\n      \"if\": \"splitrule\"\n    },\n    {\n      \"name\": \"splitfootnoterule\",\n      \"if\": \"splitrule\"\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"multiple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"if\": \"multiple\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/footmisc#c\": [\n      \"perpage\",\n      \"para\",\n      \"side\",\n      \"ragged\",\n      \"symbol\",\n      \"symbol*\",\n      \"abovefloats\",\n      \"belowfloats\",\n      \"bottom\",\n      \"bottomfloats\",\n      \"marginal\",\n      \"flushmargin\",\n      \"hang\",\n      \"norule\",\n      \"splitrule\",\n      \"stable\",\n      \"multiple\"\n    ],\n    \"\\\\setfnsymbol#c\": [\n      \"bringhurst\",\n      \"chicago\",\n      \"wiley\",\n      \"%fnsymbolset\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/footmisc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/footnote.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"savenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spewnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makesavenoteenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesavenoteenv{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"makesavenoteenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makesavenoteenv[${2:new_envname%envname}]{${1:environment}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"savenotes\"\n    },\n    {\n      \"name\": \"minipage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{minipage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minipage*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position%keyvals}][${3:height}][${4:inner-pos}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{minipage*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"footnote\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnotetext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{minipage*}\": [\n      \"c\",\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/footnotebackref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BackrefFootnoteTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theBackrefHyperFootnoteCounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/footnotebackref#c\": [\n      \"symbol=${1:symbol}\",\n      \"numberlinked\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/footnotebackref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/footnotehyper.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"savenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spewnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makesavenoteenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesavenoteenv{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"makesavenoteenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makesavenoteenv[${2:new_envname%envname}]{${1:environment}}\"\n      }\n    },\n    {\n      \"name\": \"footnotehyperwarnfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"savenotes\"\n    },\n    {\n      \"name\": \"footnote\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnotetext\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/footnoterange.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"footnoterange\"\n    },\n    {\n      \"name\": \"footnoterange*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/forarray.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForEach{${1:separator}}{${2:function}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"thislevelitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thislevelcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ForEachX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForEachX{${1:separator}}{${2:function}}{${3:list token}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachSublevel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachSublevel{${1:separator}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"ExitForEach\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ForArray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ForArray{${1:sep list}}{${2:sublevel tok}}{${3:func list sep}}{${4:func list}}{${5:array}}\"\n      }\n    },\n    {\n      \"name\": \"ForArray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"ForArray{${1:sep list}}[${6:marker list}]{${2:sublevel tok}}{${3:func list sep}}{${4:func list}}{${5:array}}\"\n      }\n    },\n    {\n      \"name\": \"thislevelmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thislevelnr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExitForEachLevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExitForEachLevels{${1:start level}}{${2:num of levels}}\"\n      }\n    },\n    {\n      \"name\": \"DefineArrayVar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DefineArrayVar{${1:name}}{${2:varnamesep}}{${3:varlistsep}}{${4:varlist}}{${5:varcontentlistsep}}{${6:varcontent}}\"\n      }\n    },\n    {\n      \"name\": \"DefineArrayVars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"DefineArrayVars{${1:varlistsep}}{${2:arraydefsep}}{${3:arraynamesep}}{${4:contentsep}}{${5:varnamesep}}{${6:varlist}}{${7:contentlist}}\"\n      }\n    },\n    {\n      \"name\": \"DefineArrayDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DefineArrayDefault{${1:arraylistsep}}{${2:varnamesep}}{${3:indexvar}}{${4:defaultvar}}{${5:arraylist}}\"\n      }\n    },\n    {\n      \"name\": \"DefineArrayVarTo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DefineArrayVarTo{${1:varlistsep}}{${2:varnamesep}}{${3:array name}}{${4:content}}{${5:varlist}}\"\n      }\n    },\n    {\n      \"name\": \"CommandForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CommandForEach{${1:varlist sep}}{${2:command}}{${3:var list}}\"\n      }\n    },\n    {\n      \"name\": \"FunctionForEach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FunctionForEach{${1:varlist sep}}{${2:command}}{${3:var list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/foreign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpunctuate\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defasforeign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defasforeign{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"defasforeign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defasforeign[${2:csname}]{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"defnotforeign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defnotforeign{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"defnotforeign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defnotforeign[${2:csname}]{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"redefasforeign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"redefasforeign{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"redefasforeign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"redefasforeign[${2:csname}]{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"redefnotforeign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"redefnotforeign{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"redefnotforeign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"redefnotforeign[${2:csname}]{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"foreign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreign{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notforeign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notforeign{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignfullfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreignabbrfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addendum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Addendum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"adhoc\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Adhoc\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"aposteriori\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Aposteriori\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"apriori\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Apriori\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"caveat\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Caveat\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"circa\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Circa\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"curriculum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Curriculum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"erratum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Erratum\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"ibidem\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Ibidem\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"idem\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Idem\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"sic\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Sic\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"viceversa\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Viceversa\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"vitae\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"Vitae\",\n      \"if\": \"xlatin\"\n    },\n    {\n      \"name\": \"ala\",\n      \"if\": \"xfrench\"\n    },\n    {\n      \"name\": \"Ala\",\n      \"if\": \"xfrench\"\n    },\n    {\n      \"name\": \"visavis\",\n      \"if\": \"xfrench\"\n    },\n    {\n      \"name\": \"Visavis\",\n      \"if\": \"xfrench\"\n    },\n    {\n      \"name\": \"ansatz\",\n      \"if\": \"xgerman\"\n    },\n    {\n      \"name\": \"Ansatz\",\n      \"if\": \"xgerman\"\n    },\n    {\n      \"name\": \"gedanken\",\n      \"if\": \"xgerman\"\n    },\n    {\n      \"name\": \"Gedanken\",\n      \"if\": \"xgerman\"\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"eg\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"etal\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"etc\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"etseq\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"ibid\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"ie\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"loccit\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"opcit\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"viz\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Cf\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Eg\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Etal\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Etc\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Etseq\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Ibid\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Ie\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Loccit\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Opcit\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"Viz\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"ala\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"Ala\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"visavis\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"Visavis\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"ansatz\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"Ansatz\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"gedanken\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"Gedanken\",\n      \"if\": \"phrases\"\n    },\n    {\n      \"name\": \"addendum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Addendum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"adhoc\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Adhoc\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"aposteriori\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Aposteriori\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"apriori\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Apriori\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"caveat\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Caveat\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"circa\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Circa\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"curriculum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Curriculum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"erratum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Erratum\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"ibidem\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Ibidem\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"idem\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Idem\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"sic\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Sic\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"viceversa\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Viceversa\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"vitae\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Vitae\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"ala\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Ala\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"visavis\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Visavis\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"ansatz\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Ansatz\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"gedanken\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Gedanken\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"eg\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"etal\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"etc\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"etseq\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"ibid\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"ie\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"loccit\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"opcit\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"viz\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Cf\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Eg\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Etal\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Etc\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Etseq\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Ibid\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Ie\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Loccit\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Opcit\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"Viz\",\n      \"if\": \"all\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/foreign#c\": [\n      \"abbreviations\",\n      \"xfrench\",\n      \"xgerman\",\n      \"xlatin\",\n      \"phrases\",\n      \"all\",\n      \"UKenglish\",\n      \"british\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/foreign#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/forest-index.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"forest\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:index options}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"index(${2:early options}){${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"index(${3:early options})[${2:index options}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"indexdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexdef{${1:option>content}}\"\n      }\n    },\n    {\n      \"name\": \"indexex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexex{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"indexex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexex[${2:index option}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"indexitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexitem{${1:option>content}}\"\n      }\n    },\n    {\n      \"name\": \"indexitem\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"indexitem(${2:%<default%>}){${1:option>content}}\"\n      }\n    },\n    {\n      \"name\": \"indexset\",\n      \"arg\": {\n        \"format\": \"[]>{}\",\n        \"snippet\": \"indexset[${2:index options}]>{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"indexdefineshortkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexdefineshortkey{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagenumbernormal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexpagenumbernormal{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagenumberdefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexpagenumberdefinition{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagenumberexample\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexpagenumberexample{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinknocolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlinknocolor{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysglobaldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysglobaldef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysgloballet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysgloballet{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysglobalsetvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysglobalsetvalue{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/forest.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"elocalloc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"inlinedef\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\",\n      \"if\": \"external\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"standardnodestrut\",\n      \"if\": \"linguistics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standardnodestrutbox\",\n      \"if\": \"linguistics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Forest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Forest{${1:tree}}\"\n      }\n    },\n    {\n      \"name\": \"Forest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Forest(${2:config%keyvals}){${1:tree}}\"\n      }\n    },\n    {\n      \"name\": \"Forest*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Forest*{${1:tree}}\"\n      }\n    },\n    {\n      \"name\": \"Forest*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Forest*(${2:config%keyvals}){${1:tree}}\"\n      }\n    },\n    {\n      \"name\": \"forestset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestset{${1:specs%keyvals}}\",\n        \"keys\": [\n          \"\\\\forestset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useforestlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useforestlibrary{${1:libraries}}\"\n      }\n    },\n    {\n      \"name\": \"useforestlibrary\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useforestlibrary[${2:options%keyvals}]{${1:libraries}}\",\n        \"keys\": [\n          \"\\\\useforestlibrary,\\\\useforestlibrary*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useforestlibrary*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useforestlibrary*{${1:libraries}}\"\n      }\n    },\n    {\n      \"name\": \"useforestlibrary*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useforestlibrary*[${2:options%keyvals}]{${1:libraries}}\",\n        \"keys\": [\n          \"\\\\useforestlibrary,\\\\useforestlibrary*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"forestapplylibrarydefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestapplylibrarydefaults{${1:libraries}}\"\n      }\n    },\n    {\n      \"name\": \"forestcompat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestcompat{${1:compat keylist}}\"\n      }\n    },\n    {\n      \"name\": \"forestoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestoption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"foresteoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foresteoption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"forestregister\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestregister{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"foresteregister\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foresteregister{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"bracketset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracketset{${1:bracket options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bracketset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bracketResume\"\n    },\n    {\n      \"name\": \"forestStandardNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"forestStandardNode[${4:node}]{${1:code}}{${2:calibration}}{${3:export}}\"\n      }\n    },\n    {\n      \"name\": \"apptotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apptotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bracketEndParsingHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketParse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bracketParse{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"eapptotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eapptotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"epretotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epretotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"etotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"etotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandIfF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpandIfF{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandIfT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpandIfT{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandIfTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExpandIfTF{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"expandnumberarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandnumberarg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"expandthreenumberargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"expandthreenumberargs{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"expandtwonumberargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"expandtwonumberargs{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestanchortotikzanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestanchortotikzanchor{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestdebugtypeouttree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"forestdebugtypeouttree(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"forestdebugtypeouttree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"forestdebugtypeouttree(${2:arg})[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"forestdebugtypeouttreenodeinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestdebugtypeouttrees\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestdebugtypeouttrees\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"forestdebugtypeouttrees[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"forestdebugtypeouttreesprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestdebugtypeouttreessuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestloopbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestloopBreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestloopBreak{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestloopcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestloopCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestloopCount{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathadd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathdivide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathdivide{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmatheq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmatheq{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathgt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathlt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathmultiply\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathmultiply{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestmathparse{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathresulttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathsetcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathsetcount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathsetlength{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathsetlengthmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathsetlengthmacro{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathsetmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathsetmacro{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathsettypefrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestmathsettypefrom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestmathtruncatemacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestmathtruncatemacro{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestmathzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestnovalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forestoappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestoappto{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOappto{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestOeappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOeappto{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestOepreto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOepreto{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestoeset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOeset{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestoget{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOget{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestoifdefined{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestOifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forestOifdefined{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"forestoinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestoinit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestolet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestolet{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOlet{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoleto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestoleto{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOleto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOleto{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoletO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestoletO{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestOletO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forestOletO{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"forestom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestOm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestOm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOpreto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOpreto{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestoset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestoset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestOset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestOset{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestov{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestOv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestOv{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestove{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forestOve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestOve{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestrappto{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestreset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestrget{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"forestrifdefined{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"forestrlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestrlet{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestrm{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"forestRNOget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestRNOget{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrpreto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestrpreto{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forestrset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"forestrv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestrv{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"forestrve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forestrve{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"gapptotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gapptotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"gpretotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gpretotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"InlineNoDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InlineNoDef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lapptotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lapptotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"makehashother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewInlineCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewInlineCommand[${3:args}]{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewInlineCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewInlineCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newloop{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newsafeloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsafeloop{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newsafeRKloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsafeRKloop{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pretotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pretotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesForestLibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesForestLibrary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesForestLibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesForestLibrary{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"safeloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safeloopn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saferepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safeRKloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safeRKloopn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safeRKrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xapptotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xapptotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"xpretotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpretotoks{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"forest\"\n    },\n    {\n      \"name\": \"forest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:config%keyvals})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/forest#c\": [\n      \"external\",\n      \"linguistics\"\n    ],\n    \"\\\\begin{forest}#c,\\\\Forest#c,\\\\Forest*#c\": [\n      \"stages=${1:keylist}\"\n    ],\n    \"\\\\forestset#c\": [\n      \"+form/.style={${1:specs}}\",\n      \"+format/.style={${1:specs}}\",\n      \"afterthought/.style={${1:style}}\",\n      \"also margin/.style={${1:style}}\",\n      \"anchors/.style={${1:specs}}\",\n      \"associate/.style={${1:specs}}\",\n      \"Autoforward register={${1:register}}{${2:style def}}\",\n      \"Autoforward={${1:option}}{${2:style def}}\",\n      \"background tree/.style={${1:specs}}\",\n      \"box/.style={${1:specs}}\",\n      \"compute xy stage/.style={${1:specs}}\",\n      \"decision edge label/.style n args={${1:args}}{${2:specs}}\",\n      \"decision tree/.style={${1:specs}}\",\n      \"decision/.style={${1:specs}}\",\n      \"declare boolean register=${1:register name}\",\n      \"declare dimen register=${1:register name}\",\n      \"declare dimen={${1:dimen name}}{${2:default value}}\",\n      \"declare keylist={${1:option name}}{${2:default value}}\",\n      \"declare toks register=${1:register name}\",\n      \"declare toks={${1:option name}}{${2:default value}}\",\n      \"default preamble={${1:specs}}\",\n      \"define long step/.append code={${1:code}}\",\n      \"define long step={${1:name}}{${2:options}}{${3:nodewalk}}\",\n      \"definition color/.initial=\",\n      \"definition/.style={${1:specs}}\",\n      \"detokenize/.style={${1:specs}}\",\n      \"dot/.default=\",\n      \"dot/.style={${1:specs}}\",\n      \"draw anchors/.default=\",\n      \"draw anchors/.style n args={${1:args}}{${2:specs}}\",\n      \"draw brackets compact/.code={${1:code}}\",\n      \"draw brackets wide/.code={${1:code}}\",\n      \"draw brackets/.style={${1:specs}}\",\n      \"draw tree stage/.style={${1:specs}}\",\n      \"el/.style={${1:specs}}\",\n      \"empty/.style={${1:style}}\",\n      \"encircle/.style={${1:specs}}\",\n      \"enumerate/.style={${1:specs}}\",\n      \"environment/.style={${1:style}}\",\n      \"every index begin/.style={${1:specs}}\",\n      \"every index end/.style={${1:specs}}\",\n      \"example color/.initial=\",\n      \"example/.style={${1:specs}}\",\n      \"fen/.style={${1:specs}}\",\n      \"folder/.style={${1:specs}}\",\n      \"forked edge/.style={${1:specs}}\",\n      \"forked edge’/.style={${1:specs}}\",\n      \"forked edges/.default=\",\n      \"forked edges/.style={${1:specs}}\",\n      \"form/.style={${1:specs}}\",\n      \"form+/.style={${1:specs}}\",\n      \"format/.style={${1:specs}}\",\n      \"format’/.style={${1:specs}}\",\n      \"format+/.style={${1:specs}}\",\n      \"govern/.style={${1:specs}}\",\n      \"GP1/.default=\",\n      \"GP1/.style 2 args={${1:specs}}\",\n      \"handler/.style={${1:style}}\",\n      \"head/.style={${1:specs}}\",\n      \"hyper/.style={${1:specs}}\",\n      \"important/.style={${1:specs}}\",\n      \"index library/.style={${1:style}}\",\n      \"item/.style={${1:specs}}\",\n      \"macro/.style={${1:specs}}\",\n      \"margin/.style={${1:style}}\",\n      \"mark/.style={${1:specs}}\",\n      \"meta/.style={${1:style}}\",\n      \"myGP1/.style={${1:specs}}\",\n      \"nice empty nodes/.style={${1:specs}}\",\n      \"no p-govern/.style={${1:specs}}\",\n      \"normal color/.initial=\",\n      \"normal/.style={${1:specs}}\",\n      \"option value/.style={${1:style}}\",\n      \"path/.style={${1:style}}\",\n      \"pgfkey/.style={${1:style}}\",\n      \"p-govern/.style={${1:specs}}\",\n      \"print in color/.default=\",\n      \"print in color/.style={${1:specs}}\",\n      \"random tree/.style n args={${1:args}}{${2:specs}}\",\n      \"roof/.style={${1:specs}}\",\n      \"show boundary/.style={${1:style}}\",\n      \"sn edges/.style={${1:specs}}\",\n      \"spread/.style={${1:specs}}\",\n      \"stages/.style={${1:specs}}\",\n      \"test/.style n args={${1:args}}{${2:specs}}\",\n      \"tt/.style={${1:specs}}\",\n      \"typeset nodes stage/.style={${1:specs}}\",\n      \"xlist/.default=\",\n      \"xlist/.style={${1:specs}}\"\n    ],\n    \"\\\\useforestlibrary,\\\\useforestlibrary*\": [\n      \"external\",\n      \"compat={${1:compat keylist}}\",\n      \"tikzcshack\",\n      \"tikzinstallkeys\",\n      \"debug=${1|nodewalks,dynamics,process|}\"\n    ],\n    \"\\\\bracketset#c\": [\n      \"opening bracket=${1:character}\",\n      \"closing bracket=${1:character}\",\n      \"action character=${1:character}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/forest#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/forloop.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"forloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forloop{${1:counter}}{${2:initial value}}{${3:condition}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"forloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"forloop[${5:step}]{${1:counter}}{${2:initial value}}{${3:condition}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"forLoop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"forLoop{${1:start}}{${2:stop}}{${3:counter}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"forLoop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"forLoop[${5:step}]{${1:start}}{${2:stop}}{${3:counter}}{${4:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/formal-grammar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firstcase\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstcase{${1:letter}}{${2:definition%formula}}{${3:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"otherform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"otherform{${1:definition%formula}}{${2:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"nonterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonterm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"gralt\"\n    },\n    {\n      \"name\": \"nontermsubtil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nontermsubtil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"firstcasesubtil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"firstcasesubtil{${1:arg}}{${2:definition%formula}}{${3:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"downplay\"\n    },\n    {\n      \"name\": \"highlight\"\n    },\n    {\n      \"name\": \"lochighlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lochighlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rowstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowstyle{${1:style code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"grammar\"\n    },\n    {\n      \"name\": \"grammar\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:caption%text}][${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"grammar\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:caption%text}][${2:pos}][${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"floatgrammar\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/formal-grammar#c\": [\n      \"center\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/formal-grammar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/forms16be.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"defUniStr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defUniStr{${1:name%specialDef}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeStr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"unicodeStr(${1:name%keyvals})\"\n      }\n    },\n    {\n      \"name\": \"EURO\"\n    },\n    {\n      \"name\": \"BSLASH\"\n    },\n    {\n      \"name\": \"LBRACE\"\n    },\n    {\n      \"name\": \"RBRACE\"\n    },\n    {\n      \"name\": \"DQUOTE\"\n    },\n    {\n      \"name\": \"ucspace\"\n    },\n    {\n      \"name\": \"aref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"aref(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"convertChriiUnicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"convertChriiUnicode{${1:char}}{${2:codepoint}}\"\n      }\n    },\n    {\n      \"name\": \"displayUnicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayUnicode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getUniDescript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stringiiUnicode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\unicodeStr#c\": [\n      \"%unicodestr\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fortextbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eqexam\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"email\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"email\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"links\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"links\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"pdf\"\n    },\n    {\n      \"name\": \"web\",\n      \"if\": \"online\"\n    },\n    {\n      \"name\": \"exerquiz\",\n      \"if\": \"online\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"InitSeedValue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeSeedToSolnFile\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputRandomSeed\",\n      \"if\": \"allowrandomize\"\n    },\n    {\n      \"name\": \"useRandomSeed\",\n      \"if\": \"allowrandomize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRandomSeed{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifsaveseed\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedtrue\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedfalse\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eFreeze\",\n      \"if\": \"allowrandomize\"\n    },\n    {\n      \"name\": \"randomi\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"if\": \"allowrandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbookOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbookOpts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\textbookOpts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotPage\"\n    },\n    {\n      \"name\": \"annotThePage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annotThePage{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"ANS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"ANSFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ANSFmt{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"autoInsSolns\"\n    },\n    {\n      \"name\": \"bGrpANS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bGrpANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"bpartsmrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapHeadSolnFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapHeadSolnFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterexercisesfalse\"\n    },\n    {\n      \"name\": \"chapterexercisestrue\"\n    },\n    {\n      \"name\": \"chaptersolutions\"\n    },\n    {\n      \"name\": \"chkmarginboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearBotMargin\"\n    },\n    {\n      \"name\": \"clearTopMargin\"\n    },\n    {\n      \"name\": \"cngMargHeadColorTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cngMargHeadColorTo{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"convertChapHeadToChapters\"\n    },\n    {\n      \"name\": \"currProbHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayProbNumOnce\"\n    },\n    {\n      \"name\": \"eGrpANS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eGrpANS{${1:answer%text}}\"\n      }\n    },\n    {\n      \"name\": \"epartsmrk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqedecPointSoln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqedsplyOnlyFrst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqedsplyOnlyFrst{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"eqeGenProbNumfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeGenProbNumtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqeifnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqeifnext{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquesitemsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquesitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquesparsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquesparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqepquestopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqepquestopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"eqExtArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examenvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examenvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplenoname\"\n    },\n    {\n      \"name\": \"exercisesAtEndOfChapter\"\n    },\n    {\n      \"name\": \"exPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fbInsSolnsStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstemitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstemittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstPartLtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frstProbNumShownfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frstProbNumShowntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftbFmtChapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftbFmtChapter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ftbInputBookAux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftbInputBookAux{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ftbInputSolnFiles\"\n    },\n    {\n      \"name\": \"ftbInputSolnFiles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ftbInputSolnFiles[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"ftblabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftblabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gobblelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grpANSDelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangSolWPrtsFmt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangSolWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"ifchapterexercises\"\n    },\n    {\n      \"name\": \"ifeqeGenProbNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexamenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstemit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffrstProbNumShown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifiscarryover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisinlineans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisinstred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifismarginans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisstudented\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmarginsonleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowlsols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowssols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifWithinANSGrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initChapAfterSolns\"\n    },\n    {\n      \"name\": \"insertpageifcarryover\"\n    },\n    {\n      \"name\": \"insertpageifcarryover\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"insertpageifcarryover[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"insMargHead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insMargHead[${2:mark text%text}]{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insMargHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insMargHead{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insMidMarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insMidMarg{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"insProbHead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insProbHead[${2:mark text%text}]{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"insProbHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insProbHead{${1:head text%text}}\"\n      }\n    },\n    {\n      \"name\": \"iscarryoverfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iscarryovertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinlineansfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinlineanstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinstredfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isinstredtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ismarginansfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ismarginanstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isstudentedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isstudentedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsonleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsonlefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarParBoxFmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marparboxwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marparboxwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"midMargFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midMargFmt{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"mrgDecPt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgDecPt{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"mrgDigitFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgDigitFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"mrgNumPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgNumPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mrgPartFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgPartFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"mrgPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrgPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewCommentCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noProbHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postChapSolnHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preChapSolnHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"probSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probSet{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"resetMargHeadColor\"\n    },\n    {\n      \"name\": \"RestoreCommentCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreFromChapAfterSolns\"\n    },\n    {\n      \"name\": \"restorelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreLastBotMargin\"\n    },\n    {\n      \"name\": \"restoreLastTopMargin\"\n    },\n    {\n      \"name\": \"restorePageLayout\"\n    },\n    {\n      \"name\": \"saveBasicLayoutParams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setBotMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBotMargin{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"setFullWidthHeader\"\n    },\n    {\n      \"name\": \"setFullWidthLayout\"\n    },\n    {\n      \"name\": \"setMarIndents\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setMarIndents[${3:formatting}]{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setMarIndents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMarIndents{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setSolnIndent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setSolnIndent[${3:formatting}]{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setSolnIndent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setSolnIndent{${1:num content}}{${2:label content}}\"\n      }\n    },\n    {\n      \"name\": \"setTopMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTopMargin{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"showlsolsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlsolstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showssolsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showssolstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solDecPt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solDecPt{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"solnGutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solnsAtEndcomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solNumPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solNumPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"solPrtsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solPrtsep{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"solWoPrtsFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solWoPrtsFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"solWPrtsFmt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"solWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"tballowAllNums\"\n    },\n    {\n      \"name\": \"tbBaseName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbBotMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbcontinued\"\n    },\n    {\n      \"name\": \"tbfilterOutEvenNums\"\n    },\n    {\n      \"name\": \"tblastpageshipped\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbMakeFinalCalcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbMarginHeaderFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbMarginHeaderFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbmarparboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbminskipbtnlayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbmrgpartwdth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbplaceMargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbPostMarginHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbprbNumFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbprbNumFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"tbPreMarginHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSaveBotMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSaveTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbSetupForMargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbsolnpartwdth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbsolWoPrtsFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsolWoPrtsFmt{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"tbsolWPrtsFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbsolWPrtsFmt{${1:num format}}{${2:label format}}\"\n      }\n    },\n    {\n      \"name\": \"tbSourceFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbTopMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theeqquestionnoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexampleno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisPart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleInstrAns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOffFTBShipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOffMarAnsOnAnsInline\"\n    },\n    {\n      \"name\": \"turnOnFTBShipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnOnMarAnsOffAnsInline\"\n    },\n    {\n      \"name\": \"WithinANSGrpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithinANSGrptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeallsolutions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtChapSolnHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrtChapSolnHead{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"afterChapSolns\"\n    },\n    {\n      \"name\": \"carryOverFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"eqeList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqeList\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqepartsquestions\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example*\"\n    },\n    {\n      \"name\": \"fullwidthtext\"\n    },\n    {\n      \"name\": \"lsol\"\n    },\n    {\n      \"name\": \"probset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"probset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:margin title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"solnsAtEnd\"\n    },\n    {\n      \"name\": \"ssol\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/fortextbook#c\": [\n      \"nocustomdesign\",\n      \"forinstr\",\n      \"forstudent\",\n      \"nomarginwrite\",\n      \"cfg=${1:basename}\",\n      \"pointsonleft\",\n      \"pointsonright\",\n      \"pointsonboth\",\n      \"nopoints\",\n      \"totalsonleft\",\n      \"totalsonright\",\n      \"nozerototals\",\n      \"nototals\",\n      \"noparttotals\",\n      \"parttotalsonright\",\n      \"parttotalsonleft\",\n      \"nosummarytotals\",\n      \"coverpage\",\n      \"coverpagesumry=${1|byparts,bypages,none|}\",\n      \"nospacetowork\",\n      \"answerkey\",\n      \"flextended\",\n      \"useforms\",\n      \"allowcirc4mc\",\n      \"online\",\n      \"pdf\",\n      \"links\",\n      \"email\",\n      \"obeylocalversions\",\n      \"max=${1:integer}\",\n      \"rendition=${1:version letter}\",\n      \"allowrandomize\",\n      \"forpaper\",\n      \"forcolorpaper*\",\n      \"preview\",\n      \"nosolutions\",\n      \"nohiddensolutions\",\n      \"noHiddensolutions\",\n      \"solutionsafter\",\n      \"solutionsonly\",\n      \"proofing\",\n      \"showgrayletters\",\n      \"noxcolor\",\n      \"useclassmaketitle\",\n      \"bypasspkgpagestyle\",\n      \"dvipsone\",\n      \"dvips\",\n      \"pdftex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"textures\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\textbookOpts\": [\n      \"instred\",\n      \"studented\",\n      \"marginans\",\n      \"inlineans\",\n      \"marginsonleft\",\n      \"ssols\",\n      \"lsols\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fortextbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/forum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"forum\"\n    },\n    {\n      \"name\": \"forumfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/forum#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/forum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fouridx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fourIdx\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fourIdx{${1:left sup}}{${2:left sub}}{${3:right sup}}{${4:right sub}}{${5:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fourier-orns.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eurologo\"\n    },\n    {\n      \"name\": \"noway\"\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"caution\"\n    },\n    {\n      \"name\": \"oldpilcrowone\"\n    },\n    {\n      \"name\": \"oldpilcrowtwo\"\n    },\n    {\n      \"name\": \"oldpilcrowthree\"\n    },\n    {\n      \"name\": \"oldpilcrowfour\"\n    },\n    {\n      \"name\": \"oldpilcrowfive\"\n    },\n    {\n      \"name\": \"oldpilcrowsix\"\n    },\n    {\n      \"name\": \"bomb\"\n    },\n    {\n      \"name\": \"grimace\"\n    },\n    {\n      \"name\": \"textthing\"\n    },\n    {\n      \"name\": \"textxswup\"\n    },\n    {\n      \"name\": \"textxswdown\"\n    },\n    {\n      \"name\": \"decoone\"\n    },\n    {\n      \"name\": \"decothreeleft\"\n    },\n    {\n      \"name\": \"decothreeright\"\n    },\n    {\n      \"name\": \"decofourleft\"\n    },\n    {\n      \"name\": \"decofourright\"\n    },\n    {\n      \"name\": \"decosix\"\n    },\n    {\n      \"name\": \"decotwo\"\n    },\n    {\n      \"name\": \"floweroneleft\"\n    },\n    {\n      \"name\": \"floweroneright\"\n    },\n    {\n      \"name\": \"starredbullet\"\n    },\n    {\n      \"name\": \"leafNE\"\n    },\n    {\n      \"name\": \"leafSE\"\n    },\n    {\n      \"name\": \"leafNW\"\n    },\n    {\n      \"name\": \"leafSW\"\n    },\n    {\n      \"name\": \"leafleft\"\n    },\n    {\n      \"name\": \"leafright\"\n    },\n    {\n      \"name\": \"aldinesmall\"\n    },\n    {\n      \"name\": \"aldinesmallup\"\n    },\n    {\n      \"name\": \"aldinesmallrevert\"\n    },\n    {\n      \"name\": \"aldineleft\"\n    },\n    {\n      \"name\": \"aldineright\"\n    },\n    {\n      \"name\": \"aldine\"\n    },\n    {\n      \"name\": \"lefthand\"\n    },\n    {\n      \"name\": \"righthand\"\n    },\n    {\n      \"name\": \"leftblackhand\"\n    },\n    {\n      \"name\": \"rightblackhand\"\n    },\n    {\n      \"name\": \"grappe\"\n    },\n    {\n      \"name\": \"leftgrappe\"\n    },\n    {\n      \"name\": \"rightgrappe\"\n    },\n    {\n      \"name\": \"FourierOrns\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fourier-orns#c\": [\n      \"noOTF\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fourier-orns#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fourier-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fourier-orns\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"realscripts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"Bbbbackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beware\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"boom\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"forbidden\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gtreqqslantless\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lesseqqslantgtr\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mbfdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfhbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfithbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitvarpartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitvarvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitvarvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfjmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbftriangleleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbftriangleright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvarpartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvarvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvarvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvarzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"mithbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitvarpartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitvarvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitvarvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mupvarpartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqqslant\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nparallelslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortparallelslant\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parallelslant\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortparallelslant\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"thething\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varsymbfscrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymbfscrQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymbfscrT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xswordsdown\"\n    },\n    {\n      \"name\": \"xswordsup\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fourier-otf#c\": [\n      \"no-text\",\n      \"tight\",\n      \"loose\",\n      \"fulloldstyle\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|italic,upright|}\",\n      \"partial=${1|italic,upright|}\",\n      \"CharacterVariant={${1:variants}}\",\n      \"StylisticSet=${1|3,4,5,6,7|}\",\n      \"Style=${1|upint,leqslant,smaller,subsetneq,parallelslant,fulloldstyle,smalldelim|}\",\n      \"Scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fourier-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fourier.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fourier-orns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"lvert\"\n    },\n    {\n      \"name\": \"lVert\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nparallelslant\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"otheralpha\"\n    },\n    {\n      \"name\": \"otherbeta\"\n    },\n    {\n      \"name\": \"otherchi\"\n    },\n    {\n      \"name\": \"otherDelta\"\n    },\n    {\n      \"name\": \"otherdelta\"\n    },\n    {\n      \"name\": \"otherepsilon\"\n    },\n    {\n      \"name\": \"othereta\"\n    },\n    {\n      \"name\": \"otherGamma\"\n    },\n    {\n      \"name\": \"othergamma\"\n    },\n    {\n      \"name\": \"otheriota\"\n    },\n    {\n      \"name\": \"otherkappa\"\n    },\n    {\n      \"name\": \"otherLambda\"\n    },\n    {\n      \"name\": \"otherlambda\"\n    },\n    {\n      \"name\": \"othermu\"\n    },\n    {\n      \"name\": \"othernu\"\n    },\n    {\n      \"name\": \"otherOmega\"\n    },\n    {\n      \"name\": \"otheromega\"\n    },\n    {\n      \"name\": \"otherPhi\"\n    },\n    {\n      \"name\": \"otherphi\"\n    },\n    {\n      \"name\": \"otherPi\"\n    },\n    {\n      \"name\": \"otherpi\"\n    },\n    {\n      \"name\": \"otherPsi\"\n    },\n    {\n      \"name\": \"otherpsi\"\n    },\n    {\n      \"name\": \"otherrho\"\n    },\n    {\n      \"name\": \"otherSigma\"\n    },\n    {\n      \"name\": \"othersigma\"\n    },\n    {\n      \"name\": \"othertau\"\n    },\n    {\n      \"name\": \"otherTheta\"\n    },\n    {\n      \"name\": \"othertheta\"\n    },\n    {\n      \"name\": \"otherUpsilon\"\n    },\n    {\n      \"name\": \"otherupsilon\"\n    },\n    {\n      \"name\": \"othervarepsilon\"\n    },\n    {\n      \"name\": \"othervarkappa\"\n    },\n    {\n      \"name\": \"othervarphi\"\n    },\n    {\n      \"name\": \"othervarpi\"\n    },\n    {\n      \"name\": \"othervarrho\"\n    },\n    {\n      \"name\": \"othervarsigma\"\n    },\n    {\n      \"name\": \"othervartheta\"\n    },\n    {\n      \"name\": \"othervarvarpi\"\n    },\n    {\n      \"name\": \"othervarvarrho\"\n    },\n    {\n      \"name\": \"otherXi\"\n    },\n    {\n      \"name\": \"otherxi\"\n    },\n    {\n      \"name\": \"otherzeta\"\n    },\n    {\n      \"name\": \"parallelslant\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"rvert\"\n    },\n    {\n      \"name\": \"rVert\"\n    },\n    {\n      \"name\": \"slashint\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"thething\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varpartialdiff\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varvarpi\"\n    },\n    {\n      \"name\": \"varvarrho\"\n    },\n    {\n      \"name\": \"varvarrho\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"VERT\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideOarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideOarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xswordsdown\"\n    },\n    {\n      \"name\": \"xswordsup\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"lining\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"oldstyle\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"sbseries\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"scishape\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"superieures\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"textblack\",\n      \"if\": \"expert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsb\",\n      \"if\": \"expert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsci\",\n      \"if\": \"expert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsci{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttitle\",\n      \"if\": \"expert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleshape\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"lining\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"oldstyle\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"sbseries\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"scishape\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"superieures\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"textblack\",\n      \"if\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsb\",\n      \"if\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsci\",\n      \"if\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsci{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttitle\",\n      \"if\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleshape\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"lining\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"oldstyle\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"sbseries\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"scishape\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"superieures\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"textblack\",\n      \"if\": \"fulloldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsb\",\n      \"if\": \"fulloldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsci\",\n      \"if\": \"fulloldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsci{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttitle\",\n      \"if\": \"fulloldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleshape\",\n      \"if\": \"fulloldstyle\"\n    },\n    {\n      \"name\": \"SetFourierSpace\",\n      \"if\": \"widespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fourier#c\": [\n      \"widespace\",\n      \"poorman\",\n      \"expert\",\n      \"oldstyle\",\n      \"fulloldstyle\",\n      \"sloped\",\n      \"upright\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fourier#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fouriernc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fourier\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fouriernc#c\": [\n      \"sloped\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fouriernc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fp-addons.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FPmin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPmin{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPmax\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPmax{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-basic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FPset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPset{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPprint{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"FPadd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPadd{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPdiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPdiv{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPmul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPmul{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPsub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPsub{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPabs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPabs{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPneg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPneg{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPsgn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPsgn{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPiflt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPiflt{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPifeq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPifeq{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPifgt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPifgt{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPifneg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPifneg{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPifpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPifpos{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPifzero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPifzero{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPifint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPifint{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"ifFPdebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPdebugfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPdebugtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFPmessages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPmessagesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FPmessagestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFPtest\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-eqn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPlsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPlsolve{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FPqsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"FPqsolve{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:val1}}{${4:val2}}{${5:val3}}\"\n      }\n    },\n    {\n      \"name\": \"FPcsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"FPcsolve{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:variable3%cmd}}{${4:val1}}{${5:val2}}{${6:val3}}{${7:val4}}\"\n      }\n    },\n    {\n      \"name\": \"FPqqsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"FPqqsolve{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:variable2%cmd}}{${4:variable4%cmd}}{${5:val1}}{${6:val2}}{${7:val3}}{${8:val4}}{${9:val5}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-eval.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"defpattern\"\n    },\n    {\n      \"name\": \"fp-upn\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPeval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPeval{${1:variable%cmd}}{${2:expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-exp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPe\"\n    },\n    {\n      \"name\": \"FPexp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPexp{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPln\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPln{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPpow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPpow{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"FProot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FProot{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-pas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPpascal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPpascal{${1:variable%cmd}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-random.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPseed\"\n    },\n    {\n      \"name\": \"FPrandom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FPrandom{${1:variable%cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-snap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPround\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPround{${1:variable%cmd}}{${2:value}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"FPtrunc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPtrunc{${1:variable%cmd}}{${2:value}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"FPclip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPclip{${1:variable%cmd}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-trigo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPpi\"\n    },\n    {\n      \"name\": \"FPsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPsin{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPcos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPcos{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPsincos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPsincos{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPtan\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPtan{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPcot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPcot{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FPtancot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FPtancot{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParcsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FParcsin{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParccos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FParccos{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParcsincos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FParcsincos{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParctan\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FParctan{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParccot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FParccot{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"FParctancot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FParctancot{${1:variable1%cmd}}{${2:variable2%cmd}}{${3:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp-upn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"defpattern\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FPupn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FPupn{${1:variable%cmd}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"defpattern\"\n    },\n    {\n      \"name\": \"fp-basic\"\n    },\n    {\n      \"name\": \"fp-addons\"\n    },\n    {\n      \"name\": \"fp-snap\"\n    },\n    {\n      \"name\": \"fp-exp\"\n    },\n    {\n      \"name\": \"fp-trigo\"\n    },\n    {\n      \"name\": \"fp-pas\"\n    },\n    {\n      \"name\": \"fp-random\"\n    },\n    {\n      \"name\": \"fp-eqn\"\n    },\n    {\n      \"name\": \"fp-upn\"\n    },\n    {\n      \"name\": \"fp-eval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fp#c\": [\n      \"nomessages\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fr-fancy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancybox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wshadowbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wshadowbox{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/framed.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MakeFramed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeFramed{${1:settings}}\"\n      }\n    },\n    {\n      \"name\": \"endMakeFramed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MidFrameCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrameHeightAdjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OuterFrameSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CustomFBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"CustomFBox{${1:after-top}}{${2:above-bottom}}{${3:trulewidth}}{${4:brulewidth}}{${5:lrulewidth}}{${6:rrulewidth}}\"\n      }\n    },\n    {\n      \"name\": \"OpenFBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OpenFBox{${1:trulewidth}}{${2:brulewidth}}\"\n      }\n    },\n    {\n      \"name\": \"TitleBarFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TitleBarFrame[${3:marker}]{${1:title}}{${2:contents}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"oframed\"\n    },\n    {\n      \"name\": \"shaded\"\n    },\n    {\n      \"name\": \"shaded*\"\n    },\n    {\n      \"name\": \"snugshade\"\n    },\n    {\n      \"name\": \"snugshade*\"\n    },\n    {\n      \"name\": \"leftbar\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/frcursive.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cursive\"\n    },\n    {\n      \"name\": \"textcursive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcursive{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"calseries\"\n    },\n    {\n      \"name\": \"textcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ftseries\"\n    },\n    {\n      \"name\": \"textft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wideseries\"\n    },\n    {\n      \"name\": \"textwide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acadshape\"\n    },\n    {\n      \"name\": \"textacad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textacad{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seyes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seyes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seyesThickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seyesDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cursive\"\n    },\n    {\n      \"name\": \"calseries\"\n    },\n    {\n      \"name\": \"ftseries\"\n    },\n    {\n      \"name\": \"wideseries\"\n    },\n    {\n      \"name\": \"acadshape\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/frcursive#c\": [\n      \"OT1\",\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/frcursive#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/freealign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"<\"\n    },\n    {\n      \"name\": \"tabpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tabpoint[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"tabto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableft\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/frege.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"bguq\",\n      \"if\": \"bguq\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Fcontent\"\n    },\n    {\n      \"name\": \"Fcontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fcontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"F\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"F\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"F[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fncontent\"\n    },\n    {\n      \"name\": \"Fncontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fncontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fn[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fnncontent\"\n    },\n    {\n      \"name\": \"Fnncontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fnncontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fnn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fnn[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Facontent\"\n    },\n    {\n      \"name\": \"Facontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Facontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fa[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fancontent\"\n    },\n    {\n      \"name\": \"Fancontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fancontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fan[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fanncontent\"\n    },\n    {\n      \"name\": \"Fanncontent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fanncontent[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fann\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fann\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fann[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fq[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fnquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnq[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnq[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnqnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnqnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnnqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fnnqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnnqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faq[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanq[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannquant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannquant[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannq[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Faqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Faqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Faqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fanqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fanqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fanqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquantn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannquantn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquantn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannquantn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannqn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannqn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquantnn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannquantnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannquantnn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannquantnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fannqnn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fannqnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fannqnn[${2:scale}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fconditional\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fconditional{${1:antecedent%formula}}{${2:consequent%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fconditional\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fconditional[${3:option}]{${1:antecedent%formula}}{${2:consequent%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fcdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fcdt{${1:antecedent%formula}}{${2:consequent%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fcdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fcdt[${3:option}]{${1:antecedent%formula}}{${2:consequent%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fbox{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fb{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fbracket{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fbb{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fargument\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Fargument[${4:premise0%formula}]{${1:premise1%formula}}{${2:premise2%formula}}{${3:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Farg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Farg[${4:premise0%formula}]{${1:premise1%formula}}{${2:premise2%formula}}{${3:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Fstrut\"\n    },\n    {\n      \"name\": \"Fstrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fstrut[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fs[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fbaselength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Flinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fassertwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fraiseheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fnegsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fnegshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fquantwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/frenchmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsopn\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ibrackets\"\n    },\n    {\n      \"name\": \"decimalcomma\"\n    },\n    {\n      \"name\": \"mathgreeks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"curs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curs{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ssi\"\n    },\n    {\n      \"name\": \"Oij\"\n    },\n    {\n      \"name\": \"Oijk\"\n    },\n    {\n      \"name\": \"Ouv\"\n    },\n    {\n      \"name\": \"Oij*\"\n    },\n    {\n      \"name\": \"Oijk*\"\n    },\n    {\n      \"name\": \"Ouv*\"\n    },\n    {\n      \"name\": \"ijk\"\n    },\n    {\n      \"name\": \"infeg\"\n    },\n    {\n      \"name\": \"supeg\"\n    },\n    {\n      \"name\": \"vide\"\n    },\n    {\n      \"name\": \"paral\"\n    },\n    {\n      \"name\": \"paral*\"\n    },\n    {\n      \"name\": \"cmod\"\n    },\n    {\n      \"name\": \"pgcd\"\n    },\n    {\n      \"name\": \"ppcm\"\n    },\n    {\n      \"name\": \"card\"\n    },\n    {\n      \"name\": \"Card\"\n    },\n    {\n      \"name\": \"Ker\"\n    },\n    {\n      \"name\": \"Hom\"\n    },\n    {\n      \"name\": \"rg\"\n    },\n    {\n      \"name\": \"Vect\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"cosec\"\n    },\n    {\n      \"name\": \"cosech\"\n    },\n    {\n      \"name\": \"DeclareMathUp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMathUp{${1:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/frenchmath#c\": [\n      \"capsit\",\n      \"noibrackets\",\n      \"lgrmath\",\n      \"lgrmath=${1:font name}\",\n      \"fontspec\",\n      \"fontspec=${1:font name}\",\n      \"unicode-math\",\n      \"unicode-math=${1:font name}\",\n      \"upgreek\",\n      \"upgreek=${1|Euler,Symbol,Symbolsmallscale|}\",\n      \"mathdesign\",\n      \"mathdesign=${1|Utopia,Garamond,Charter|}\",\n      \"kpfonts\",\n      \"kpfonts=${1|normal,light|}\",\n      \"fourier\",\n      \"pxfonts\",\n      \"txfonts\",\n      \"libertinus\",\n      \"concrete\",\n      \"cmbright\",\n      \"savegreeks\",\n      \"otherfonts\",\n      \"libsans\",\n      \"lowercase\",\n      \"uppercase\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/frenchmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/frimurer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textfrimurer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrimurer{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frimurer\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/frontespizio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includefront\",\n      \"if\": \"onlyinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includefront{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includefront\",\n      \"if\": \"onlyinclude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includefront[${2:numero}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Universita\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Universita{${1:nome breve}}\"\n      }\n    },\n    {\n      \"name\": \"Istituzione\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Istituzione{${1:nome completo}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Logo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Logo[${2:dimen%l}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Filigrana\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Filigrana{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"Filigrana\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Filigrana[${2:parametri%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\Filigrana\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Facolta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Facolta{${1:nome breve}}\"\n      }\n    },\n    {\n      \"name\": \"Dipartimento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dipartimento{${1:nome breve}}\"\n      }\n    },\n    {\n      \"name\": \"Divisione\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Divisione{${1:nome completo}}\"\n      }\n    },\n    {\n      \"name\": \"Interfacolta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Interfacolta{${1:nomi completi}}\"\n      }\n    },\n    {\n      \"name\": \"Corso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Corso{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Corso\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Corso[${2:tipo}]{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Scuola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Scuola{${1:nome completo}}\"\n      }\n    },\n    {\n      \"name\": \"Titoletto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Titoletto{${1:tipo}}\"\n      }\n    },\n    {\n      \"name\": \"Titolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Titolo{${1:titolo}}\"\n      }\n    },\n    {\n      \"name\": \"Sottotitolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sottotitolo{${1:sottotitolo}}\"\n      }\n    },\n    {\n      \"name\": \"Candidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Candidato{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Candidato\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Candidato[${2:matricola}]{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Relatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Relatore{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Correlatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Correlatore{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"Annoaccademico\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Annoaccademico{${1:anno}}\"\n      }\n    },\n    {\n      \"name\": \"Piede\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Piede{${1:testo}}\"\n      }\n    },\n    {\n      \"name\": \"NCandidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NCandidato{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"NCandidati\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NCandidati{${1:nome}}\"\n      }\n    },\n    {\n      \"name\": \"NRelatore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NRelatore{${1:singolare}}{${2:plurale}}\"\n      }\n    },\n    {\n      \"name\": \"NCorrelatore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NCorrelatore{${1:singolare}}{${2:plurale}}\"\n      }\n    },\n    {\n      \"name\": \"Punteggiatura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Punteggiatura{${1:carattere}}\"\n      }\n    },\n    {\n      \"name\": \"Preambolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Preambolo{${1:comandi}}\"\n      }\n    },\n    {\n      \"name\": \"Rientro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rientro{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"Margini\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Margini{${1:dimen1%l}}{${2:dimen2%l}}{${3:dimen3%l}}{${4:dimen4%l}}\"\n      }\n    },\n    {\n      \"name\": \"frontinstitutionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontdivisionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontpretitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fronttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontsubtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontfixednamesfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontnamesfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontsmallfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontfootfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fronttitlecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontoptionnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontoptionsans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontadjustforsignatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontcandidatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontlogosep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontrelcorrelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparefrontpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparefrontpagestandard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparefrontpagesuftesi\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frontespizio\"\n    },\n    {\n      \"name\": \"Preambolo*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/frontespizio#c\": [\n      \"write\",\n      \"nowrite\",\n      \"standard\",\n      \"suftesi\",\n      \"signatures\",\n      \"noadvisor\",\n      \"swapnames\",\n      \"normal\",\n      \"sans\",\n      \"norules\",\n      \"nouppercase\",\n      \"noinputenc\",\n      \"onlyinclude\",\n      \"driver=${1:driver}\"\n    ],\n    \"\\\\Filigrana\": [\n      \"height=\",\n      \"before=${1:numero}\",\n      \"after=${1:numero}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/frontespizio#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/froufrou.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setfroufrou\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfroufrou{${1:ornament%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfroufrou#c,\\\\froufrou#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"froufrou\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"froufrou[${1:ornament%keyvals}]\",\n        \"keys\": [\n          \"\\\\setfroufrou#c,\\\\froufrou#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setfroufrou#c,\\\\froufrou#c\": [\n      \"fleuron\",\n      \"simplefleuron\",\n      \"asterism\",\n      \"tightasterism\",\n      \"trueasterism\",\n      \"dinkus\",\n      \"closing\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/frpseudocode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algpseudocode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ForFT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForFT{${1:for}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmicwhilem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicdom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicfrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicifm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fullminipage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"fullminipage\"\n    },\n    {\n      \"name\": \"fullminipage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fullminipage}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{fullminipage}\": [\n      \"left=\",\n      \"right=\",\n      \"top=\",\n      \"bottom=\",\n      \"alignment=${1|t,c,b|}\",\n      \"bgcolor\",\n      \"bgcolor=\",\n      \"background=${1:code}\",\n      \"pagebreak=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fullpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/fullpage#c\": [\n      \"in\",\n      \"cm\",\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/fullpage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fullpict.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xaxis\"\n    },\n    {\n      \"name\": \"yaxis\"\n    },\n    {\n      \"name\": \"axes\"\n    },\n    {\n      \"name\": \"xticks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xticks{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"xticks\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"xticks{${1:gap}}[${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"yticks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yticks{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"yticks\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"yticks{${1:gap}}[${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"ticks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ticks{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"ticks\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ticks{${1:gap}}[${2:length}]\"\n      }\n    },\n    {\n      \"name\": \"xnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnums{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"xnums\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"xnums{${1:gap}}[${2:dist}]\"\n      }\n    },\n    {\n      \"name\": \"ynums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ynums{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"ynums\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ynums{${1:gap}}[${2:dist}]\"\n      }\n    },\n    {\n      \"name\": \"nums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nums{${1:gap}}\"\n      }\n    },\n    {\n      \"name\": \"nums\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nums{${1:gap}}[${2:dist}]\"\n      }\n    },\n    {\n      \"name\": \"origin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"origin{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"cput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"cput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"nput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"sput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"eput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"wput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"neput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"neput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"seput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nwput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"nwput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"swput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"angleput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"angleput{${1:angle}}(${3:x},${4:y}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"angleput\",\n      \"arg\": {\n        \"format\": \"{}[](){}\",\n        \"snippet\": \"angleput{${1:angle}}[${3:radius}](${4:x},${5:y}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Vector\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Vector(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lcm\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullpicture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"fullpicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:width},${2:height})(${3:xoffset},${4:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"halfpicture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"halfpicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:width},${2:height})(${3:xoffset},${4:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"scalepicture\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"scalepicture\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})(${4:xoffset},${5:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"Scalepicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"Scalepicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})(${4:xoffset},${5:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"scaledpicture\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"scaledpicture\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})(${4:xoffset},${5:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"Scaledpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"Scaledpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:percent}}(${2:width},${3:height})(${4:xoffset},${5:yoffset})\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fullwidth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fullwidthsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullwidthsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{fullwidth},\\\\fullwidthsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidth\"\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fullwidth},\\\\fullwidthsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{fullwidth},\\\\fullwidthsetup\": [\n      \"width=\",\n      \"skipabove=\",\n      \"skipbelow=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"innertopmargin=\",\n      \"innerbottommargin=\",\n      \"outermargin=\",\n      \"innermargin=\",\n      \"splittopskip=\",\n      \"splitbottomskip=\",\n      \"twosidemode\",\n      \"needspace=\",\n      \"footnotedistance=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/functional.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"IgnoreSpacesOn\"\n    },\n    {\n      \"name\": \"IgnoreSpacesOff\"\n    },\n    {\n      \"name\": \"Functional\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Functional{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Functional\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prgReturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prgReturn{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"prgPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prgPrint{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"gResultTl\"\n    },\n    {\n      \"name\": \"prgDo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prgDo{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"prgRunOneArgCode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prgRunOneArgCode{${1:arg1}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"prgRunTwoArgCode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"prgRunTwoArgCode{${1:arg1}}{${2:arg2}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"prgRunThreeArgCode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"prgRunThreeArgCode{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"prgRunFourArgCode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"prgRunFourArgCode{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"evalWhole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evalWhole{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"evalNone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evalNone{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"expName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"expWhole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expWhole{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"unExpand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unExpand{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"onlyName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyName{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"onlyValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyValue{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"useOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useOne{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gobbleOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobbleOne{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"useGobble\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"useGobble{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"gobbleUse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobbleUse{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cTrueBool\"\n    },\n    {\n      \"name\": \"cFalseBool\"\n    },\n    {\n      \"name\": \"lTmpaBool\"\n    },\n    {\n      \"name\": \"lTmpbBool\"\n    },\n    {\n      \"name\": \"lTmpcBool\"\n    },\n    {\n      \"name\": \"lTmpiBool\"\n    },\n    {\n      \"name\": \"lTmpjBool\"\n    },\n    {\n      \"name\": \"lTmpkBool\"\n    },\n    {\n      \"name\": \"gTmpaBool\"\n    },\n    {\n      \"name\": \"gTmpbBool\"\n    },\n    {\n      \"name\": \"gTmpcBool\"\n    },\n    {\n      \"name\": \"gTmpiBool\"\n    },\n    {\n      \"name\": \"gTmpjBool\"\n    },\n    {\n      \"name\": \"gTmpkBool\"\n    },\n    {\n      \"name\": \"boolLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolLog {${1:bool expr}}\"\n      }\n    },\n    {\n      \"name\": \"boolShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolShow {${1:bool expr}}\"\n      }\n    },\n    {\n      \"name\": \"cSpaceTl\"\n    },\n    {\n      \"name\": \"cEmptyTl\"\n    },\n    {\n      \"name\": \"lTmpaTl\"\n    },\n    {\n      \"name\": \"lTmpbTl\"\n    },\n    {\n      \"name\": \"lTmpcTl\"\n    },\n    {\n      \"name\": \"lTmpiTl\"\n    },\n    {\n      \"name\": \"lTmpjTl\"\n    },\n    {\n      \"name\": \"lTmpkTl\"\n    },\n    {\n      \"name\": \"gTmpaTl\"\n    },\n    {\n      \"name\": \"gTmpbTl\"\n    },\n    {\n      \"name\": \"gTmpcTl\"\n    },\n    {\n      \"name\": \"gTmpiTl\"\n    },\n    {\n      \"name\": \"gTmpjTl\"\n    },\n    {\n      \"name\": \"gTmpkTl\"\n    },\n    {\n      \"name\": \"tlToStr \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlToStr {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlLog {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlShow {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlTrimSpaces \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlTrimSpaces {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlCount \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlCount {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlHead \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlHead {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlTail \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlTail {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlItem \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlItem {${1:tokens}} {${2:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"tlRandItem \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlRandItem {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlMapInline \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlMapInline {${1:tokens}} {${2:inline function}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEmpty \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlIfEmpty {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEmptyT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfEmptyT {${1:tokens}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEmptyF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfEmptyF {${1:tokens}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEmptyTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfEmptyTF {${1:tokens}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfBlank \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlIfBlank {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfBlankT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfBlankT {${1:tokens}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfBlankF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfBlankF {${1:tokens}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfBlankTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfBlankTF {${1:tokens}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEq \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfEq {${1:tokens1}} {${2:tokens2}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEqT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfEqT {${1:tokens1}} {${2:tokens2}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEqF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfEqF {${1:tokens1}} {${2:tokens2}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfEqTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"tlIfEqTF {${1:tokens1}} {${2:tokens2}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfIn \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfIn {${1:tokens1}} {${2:tokens2}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfInT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfInT {${1:tokens1}} {${2:tokens2}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfInF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfInF {${1:tokens1}} {${2:tokens2}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfInTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"tlIfInTF {${1:tokens1}} {${2:tokens2}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfSingle \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlIfSingle {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfSingleT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfSingleT {${1:tokens}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfSingleF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"tlIfSingleF {${1:tokens}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tlIfSingleTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"tlIfSingleTF {${1:tokens}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"cAmpersandStr\"\n    },\n    {\n      \"name\": \"cAtsignStr\"\n    },\n    {\n      \"name\": \"cBackslashStr\"\n    },\n    {\n      \"name\": \"cLeftBraceStr\"\n    },\n    {\n      \"name\": \"cRightBraceStr\"\n    },\n    {\n      \"name\": \"cCircumflexStr\"\n    },\n    {\n      \"name\": \"cColonStr\"\n    },\n    {\n      \"name\": \"cDollarStr\"\n    },\n    {\n      \"name\": \"cHashStr\"\n    },\n    {\n      \"name\": \"cPercentStr\"\n    },\n    {\n      \"name\": \"cTildeStr\"\n    },\n    {\n      \"name\": \"cUnderscoreStr\"\n    },\n    {\n      \"name\": \"cZeroStr\"\n    },\n    {\n      \"name\": \"lTmpaStr\"\n    },\n    {\n      \"name\": \"lTmpbStr\"\n    },\n    {\n      \"name\": \"lTmpcStr\"\n    },\n    {\n      \"name\": \"lTmpiStr\"\n    },\n    {\n      \"name\": \"lTmpjStr\"\n    },\n    {\n      \"name\": \"lTmpkStr\"\n    },\n    {\n      \"name\": \"gTmpaStr\"\n    },\n    {\n      \"name\": \"gTmpbStr\"\n    },\n    {\n      \"name\": \"gTmpcStr\"\n    },\n    {\n      \"name\": \"gTmpiStr\"\n    },\n    {\n      \"name\": \"gTmpjStr\"\n    },\n    {\n      \"name\": \"gTmpkStr\"\n    },\n    {\n      \"name\": \"strLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strLog {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strShow {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strCount \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strCount {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strSize \",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strSize {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strHead \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strHead {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strTail \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strTail {${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"strItem \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"strItem {${1:tokens}} {${2:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"strMapInline \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"strMapInline {${1:tokens}} {${2:inline function}}\"\n      }\n    },\n    {\n      \"name\": \"strIfEq \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"strIfEq {${1:tokens1}} {${2:tokens2}}\"\n      }\n    },\n    {\n      \"name\": \"strIfEqT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"strIfEqT {${1:tokens1}} {${2:tokens2}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"strIfEqF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"strIfEqF {${1:tokens1}} {${2:tokens2}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"strIfEqTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"strIfEqTF {${1:tokens1}} {${2:tokens2}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"strIfIn \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"strIfIn {${1:tokens1}} {${2:tokens2}}\"\n      }\n    },\n    {\n      \"name\": \"strIfInT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"strIfInT {${1:tokens1}} {${2:tokens2}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"strIfInF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"strIfInF {${1:tokens1}} {${2:tokens2}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"strIfInTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"strIfInTF {${1:tokens1}} {${2:tokens2}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"cZeroInt\"\n    },\n    {\n      \"name\": \"cOneInt\"\n    },\n    {\n      \"name\": \"cMaxInt\"\n    },\n    {\n      \"name\": \"cMaxRegisterInt\"\n    },\n    {\n      \"name\": \"cMaxCharInt\"\n    },\n    {\n      \"name\": \"lTmpaInt\"\n    },\n    {\n      \"name\": \"lTmpbInt\"\n    },\n    {\n      \"name\": \"lTmpcInt\"\n    },\n    {\n      \"name\": \"lTmpiInt\"\n    },\n    {\n      \"name\": \"lTmpjInt\"\n    },\n    {\n      \"name\": \"lTmpkInt\"\n    },\n    {\n      \"name\": \"gTmpaInt\"\n    },\n    {\n      \"name\": \"gTmpbInt\"\n    },\n    {\n      \"name\": \"gTmpcInt\"\n    },\n    {\n      \"name\": \"gTmpiInt\"\n    },\n    {\n      \"name\": \"gTmpjInt\"\n    },\n    {\n      \"name\": \"gTmpkInt\"\n    },\n    {\n      \"name\": \"intEval \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intEval {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intMathAdd \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathAdd {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathSub \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathSub {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathMult \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathMult {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathDiv \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathDiv {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathDivTruncate \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathDivTruncate {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathSign \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intMathSign {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intMathAbs \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intMathAbs {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intMathMax \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathMax {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathMin \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathMin {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathMod \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathMod {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intMathRand \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intMathRand {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"intLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intLog {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intShow {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intReplicate \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intReplicate {${1:int expr}} {${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"intStepInline \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"intStepInline {${1:init value}} {${2:step}} {${3:final value}} {${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"intStepOneInline \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"intStepOneInline {${1:init value}} {${2:final value}} {${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfOdd \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intIfOdd {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intIfOddT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intIfOddT {${1:int expr}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfOddF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intIfOddF {${1:int expr}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfOddTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"intIfOddTF {${1:int expr}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfEven \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intIfEven {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"intIfEvenT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intIfEvenT {${1:int expr}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfEvenF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"intIfEvenF {${1:int expr}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"intIfEvenTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"intIfEvenTF {${1:int expr}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"cZeroFp\"\n    },\n    {\n      \"name\": \"cMinusZeroFp\"\n    },\n    {\n      \"name\": \"cOneFp\"\n    },\n    {\n      \"name\": \"cInfFp\"\n    },\n    {\n      \"name\": \"cMinusInfFp\"\n    },\n    {\n      \"name\": \"cEFp\"\n    },\n    {\n      \"name\": \"cPiFp\"\n    },\n    {\n      \"name\": \"cOneDegreeFp\"\n    },\n    {\n      \"name\": \"lTmpaFp\"\n    },\n    {\n      \"name\": \"lTmpbFp\"\n    },\n    {\n      \"name\": \"lTmpcFp\"\n    },\n    {\n      \"name\": \"lTmpiFp\"\n    },\n    {\n      \"name\": \"lTmpjFp\"\n    },\n    {\n      \"name\": \"lTmpkFp\"\n    },\n    {\n      \"name\": \"gTmpaFp\"\n    },\n    {\n      \"name\": \"gTmpbFp\"\n    },\n    {\n      \"name\": \"gTmpcFp\"\n    },\n    {\n      \"name\": \"gTmpiFp\"\n    },\n    {\n      \"name\": \"gTmpjFp\"\n    },\n    {\n      \"name\": \"gTmpkFp\"\n    },\n    {\n      \"name\": \"fpEval \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpEval {${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathAdd \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathAdd {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathSub \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathSub {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathMult \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathMult {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathDiv \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathDiv {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathSign \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpMathSign {${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathAbs \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpMathAbs {${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathMax \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathMax {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpMathMin \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fpMathMin {${1:fp expr1}} {${2:fp expr2}}\"\n      }\n    },\n    {\n      \"name\": \"fpLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpLog {${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"fpShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpShow {${1:fp expr}}\"\n      }\n    },\n    {\n      \"name\": \"fpStepInline \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"fpStepInline {${1:init value}} {${2:step}} {${3:final value}} {${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"cMaxDim\"\n    },\n    {\n      \"name\": \"cZeroDim\"\n    },\n    {\n      \"name\": \"lTmpaDim\"\n    },\n    {\n      \"name\": \"lTmpbDim\"\n    },\n    {\n      \"name\": \"lTmpcDim\"\n    },\n    {\n      \"name\": \"lTmpiDim\"\n    },\n    {\n      \"name\": \"lTmpjDim\"\n    },\n    {\n      \"name\": \"lTmpkDim\"\n    },\n    {\n      \"name\": \"gTmpaDim\"\n    },\n    {\n      \"name\": \"gTmpbDim\"\n    },\n    {\n      \"name\": \"gTmpcDim\"\n    },\n    {\n      \"name\": \"gTmpiDim\"\n    },\n    {\n      \"name\": \"gTmpjDim\"\n    },\n    {\n      \"name\": \"gTmpkDim\"\n    },\n    {\n      \"name\": \"dimEval \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimEval {${1:dim expr}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathAdd \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"dimMathAdd {${1:dim expr1}} {${2:dim expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathSub \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"dimMathSub {${1:dim expr1}} {${2:dim expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathRatio \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"dimMathRatio {${1:dim expr1}} {${2:dim expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathSign \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimMathSign {${1:dim expr}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathAbs \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimMathAbs {${1:dim expr}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathMax \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"dimMathMax {${1:dim expr1}} {${2:dim expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimMathMin \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"dimMathMin {${1:dim expr1}} {${2:dim expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimLog {${1:dim expr}}\"\n      }\n    },\n    {\n      \"name\": \"dimShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimShow {${1:dim expr}}\"\n      }\n    },\n    {\n      \"name\": \"dimStepInline \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"dimStepInline {${1:init value}} {${2:step}} {${3:final value}} {${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"cEmptyClist\"\n    },\n    {\n      \"name\": \"lTmpaClist\"\n    },\n    {\n      \"name\": \"lTmpbClist\"\n    },\n    {\n      \"name\": \"lTmpcClist\"\n    },\n    {\n      \"name\": \"lTmpiClist\"\n    },\n    {\n      \"name\": \"lTmpjClist\"\n    },\n    {\n      \"name\": \"lTmpkClist\"\n    },\n    {\n      \"name\": \"gTmpaClist\"\n    },\n    {\n      \"name\": \"gTmpbClist\"\n    },\n    {\n      \"name\": \"gTmpcClist\"\n    },\n    {\n      \"name\": \"gTmpiClist\"\n    },\n    {\n      \"name\": \"gTmpjClist\"\n    },\n    {\n      \"name\": \"gTmpkClist\"\n    },\n    {\n      \"name\": \"clistJoin \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistJoin {${1:comma list}} {${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"clistJoinExtended \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"clistJoinExtended {${1:comma list}} {${2:sep for 2}} {${3:sep for >2}} {${4:sep for final 2}}\"\n      }\n    },\n    {\n      \"name\": \"clistLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clistLog {${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"clistShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clistShow {${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"clistCount \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clistCount {${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"clistItem \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistItem {${1:comma list}} {${2:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"clistRandItem \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clistRandItem {${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"clistMapInline \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistMapInline {${1:comma list}} {${2:inline function}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfEmpty \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clistIfEmpty {${1:comma list}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfEmptyT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistIfEmptyT {${1:comma list}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfEmptyF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistIfEmptyF {${1:comma list}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfEmptyTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"clistIfEmptyTF {${1:comma list}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfIn \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"clistIfIn {${1:comma list}} {${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfInT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"clistIfInT {${1:comma list}} {${2:item}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfInF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"clistIfInF {${1:comma list}} {${2:item}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"clistIfInTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"clistIfInTF {${1:comma list}} {${2:item}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"cEmptySeq\"\n    },\n    {\n      \"name\": \"lTmpaSeq\"\n    },\n    {\n      \"name\": \"lTmpbSeq\"\n    },\n    {\n      \"name\": \"lTmpcSeq\"\n    },\n    {\n      \"name\": \"lTmpiSeq\"\n    },\n    {\n      \"name\": \"lTmpjSeq\"\n    },\n    {\n      \"name\": \"lTmpkSeq\"\n    },\n    {\n      \"name\": \"gTmpaSeq\"\n    },\n    {\n      \"name\": \"gTmpbSeq\"\n    },\n    {\n      \"name\": \"gTmpcSeq\"\n    },\n    {\n      \"name\": \"gTmpiSeq\"\n    },\n    {\n      \"name\": \"gTmpjSeq\"\n    },\n    {\n      \"name\": \"gTmpkSeq\"\n    },\n    {\n      \"name\": \"cEmptyProp\"\n    },\n    {\n      \"name\": \"lTmpaProp\"\n    },\n    {\n      \"name\": \"lTmpbProp\"\n    },\n    {\n      \"name\": \"lTmpcProp\"\n    },\n    {\n      \"name\": \"lTmpiProp\"\n    },\n    {\n      \"name\": \"lTmpjProp\"\n    },\n    {\n      \"name\": \"lTmpkProp\"\n    },\n    {\n      \"name\": \"gTmpaProp\"\n    },\n    {\n      \"name\": \"gTmpbProp\"\n    },\n    {\n      \"name\": \"gTmpcProp\"\n    },\n    {\n      \"name\": \"gTmpiProp\"\n    },\n    {\n      \"name\": \"gTmpjProp\"\n    },\n    {\n      \"name\": \"gTmpkProp\"\n    },\n    {\n      \"name\": \"lTmpaRegex\"\n    },\n    {\n      \"name\": \"lTmpbRegex\"\n    },\n    {\n      \"name\": \"lTmpcRegex\"\n    },\n    {\n      \"name\": \"lTmpiRegex\"\n    },\n    {\n      \"name\": \"lTmpjRegex\"\n    },\n    {\n      \"name\": \"lTmpkRegex\"\n    },\n    {\n      \"name\": \"gTmpaRegex\"\n    },\n    {\n      \"name\": \"gTmpbRegex\"\n    },\n    {\n      \"name\": \"gTmpcRegex\"\n    },\n    {\n      \"name\": \"gTmpiRegex\"\n    },\n    {\n      \"name\": \"gTmpjRegex\"\n    },\n    {\n      \"name\": \"gTmpkRegex\"\n    },\n    {\n      \"name\": \"regexLog \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regexLog {${1:regex}}\"\n      }\n    },\n    {\n      \"name\": \"regexShow \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regexShow {${1:regex}}\"\n      }\n    },\n    {\n      \"name\": \"regexMatch \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"regexMatch {${1:regex}} {${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"regexMatchT \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"regexMatchT {${1:regex}} {${2:tokens}} {${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"regexMatchF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"regexMatchF {${1:regex}} {${2:tokens}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"regexMatchTF \",\n      \"arg\": {\n        \"format\": \"{} {} {} {}\",\n        \"snippet\": \"regexMatchTF {${1:regex}} {${2:tokens}} {${3:true code}} {${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"x\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"x{${1:hh}}\"\n      }\n    },\n    {\n      \"name\": \"a\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"e\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"f\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"n\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"r\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"t\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"d\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"h\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"s\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"v\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"w\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"D\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"H\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"N\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"S\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"V\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"W\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"K\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"c\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"c{${1:regex}}\"\n      }\n    },\n    {\n      \"name\": \"cC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"u\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"u{${1:var name}}\"\n      }\n    },\n    {\n      \"name\": \"ur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ur{${1:var name}}\"\n      }\n    },\n    {\n      \"name\": \"b\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"B\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"A\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Z\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"z\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"G\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charSetLccode \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"charSetLccode {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"charSetUccode \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"charSetUccode {${1:int expr1}} {${2:int expr2}}\"\n      }\n    },\n    {\n      \"name\": \"charValueLccode \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charValueLccode {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"charValueUccode \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charValueUccode {${1:int expr}}\"\n      }\n    },\n    {\n      \"name\": \"textExpand \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textExpand {${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLowercase \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLowercase {${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textUppercase \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textUppercase {${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textTitlecase \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textTitlecase {${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textTitlecaseFirst \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textTitlecaseFirst {${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLangLowercase \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"textLangLowercase {${1:language}} {${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLangUppercase \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"textLangUppercase {${1:language}} {${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLangTitlecase \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"textLangTitlecase {${1:language}} {${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLangTitlecaseFirst \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"textLangTitlecaseFirst {${1:language}} {${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fileInput \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileInput {${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExistInput \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileIfExistInput {${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExistInputF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fileIfExistInputF {${1:file name}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExist \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileIfExist {${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExistT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fileIfExistT {${1:file name}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExistF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"fileIfExistF {${1:file name}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"fileIfExistTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"fileIfExistTF {${1:file name}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"qNoValue\"\n    },\n    {\n      \"name\": \"legacyIf \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legacyIf {${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfT \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"legacyIfT {${1:name}} {${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfF \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"legacyIfF {${1:name}} {${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfTF \",\n      \"arg\": {\n        \"format\": \"{} {} {}\",\n        \"snippet\": \"legacyIfTF {${1:name}} {${2:true code}} {${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfSetTrue \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legacyIfSetTrue {${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfSetFalse \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legacyIfSetFalse {${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"legacyIfSet \",\n      \"arg\": {\n        \"format\": \"{} {}\",\n        \"snippet\": \"legacyIfSet {${1:name}} {${2:bool expr}}\"\n      }\n    },\n    {\n      \"name\": \"clistMapBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clistVarSort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clistVarSort{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cNoValueTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expOnce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expOnce{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"expPartial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expPartial{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fileInputStop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prgLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noExpand{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"onlyOnce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyOnce{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"onlyPartial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyPartial{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"prgBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prgBreakDo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propMapBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seqJoin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seqJoin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"seqJoinExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"seqJoinExtended{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"seqMapBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seqVarSort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seqVarSort{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sortReturnSame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sortReturnSwapped\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Functional\": [\n      \"scoping\",\n      \"tracing\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fusering.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"carom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    },\n    {\n      \"name\": \"hetarom\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fivefuseh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fivefuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"fivefuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fivefuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"fivefuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"fivefuseh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"fivefuseh(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"fivefuseh(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefuseh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"fivefuseh(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fivefusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"fivefusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fivefusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"fivefusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"fivefusehi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"fivefusehi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"fivefusehi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusehi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"fivefusehi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fivefusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"fivefusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fivefusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"fivefusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"fivefusev(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"fivefusev(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"fivefusev(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusev\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"fivefusev(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fivefusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"fivefusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fivefusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"fivefusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"fivefusevi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"fivefusevi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"fivefusevi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fivefusevi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"fivefusevi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fourfuse{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"fourfuse{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fourfuse[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"fourfuse[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"fourfuse(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"fourfuse(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"fourfuse(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"fourfuse\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"fourfuse(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sixfuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"sixfuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sixfuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"sixfuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"sixfuseh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"sixfuseh(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"sixfuseh(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfuseh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"sixfuseh(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sixfusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"sixfusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sixfusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"sixfusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"sixfusehi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"sixfusehi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"sixfusehi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusehi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"sixfusehi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sixfusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"sixfusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sixfusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"sixfusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"sixfusev(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"sixfusev(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"sixfusev(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusev\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"sixfusev(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sixfusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"sixfusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sixfusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"sixfusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"sixfusevi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"sixfusevi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"sixfusevi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"sixfusevi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"sixfusevi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threefuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"threefuseh{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"threefuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"threefuseh[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"threefuseh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"threefuseh(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"threefuseh(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefuseh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"threefuseh(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threefusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"threefusehi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"threefusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"threefusehi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"threefusehi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"threefusehi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"threefusehi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusehi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"threefusehi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threefusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"threefusev{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"threefusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"threefusev[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"threefusev(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"threefusev(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"threefusev(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusev\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"threefusev(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"threefusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"threefusevi{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"threefusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"threefusevi[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"threefusevi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}[]\",\n        \"snippet\": \"threefusevi(${5:skelbdlist}){${1:atomlist}}{${2:subslist}}{${3:fuse}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}{}\",\n        \"snippet\": \"threefusevi(${5:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}\"\n      }\n    },\n    {\n      \"name\": \"threefusevi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}{}[]\",\n        \"snippet\": \"threefusevi(${6:skelbdlist})[${4:bondlist}]{${1:atomlist}}{${2:subslist}}{${3:fuse}}[${5:delbdlist}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/futurans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/futurans#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/futurans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/fvextra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"lineno\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fvinlineset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fvinlineset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\fvinlineset,\\\\EscVerb,\\\\EscVerb*,\\\\begin{VerbEnv},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\RobustVerb,\\\\RobustVerb*,\\\\RobustUseVerb,\\\\RobustUseVerb*,\\\\RobustEscVerb,\\\\RobustEscVerb*\",\n          \"\\\\fvinlineset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyVerbFormatInline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbFormatInline{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbFormatText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EscVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EscVerb{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"EscVerb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EscVerb[${2:options%keyvals}]{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"EscVerb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EscVerb*{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"EscVerb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EscVerb*[${2:options%keyvals}]{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbWriteFileHandle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbDefaultWriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbDefaultBufferer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBufferLineName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimInsertBuffer\"\n    },\n    {\n      \"name\": \"VerbatimInsertBuffer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VerbatimInsertBuffer[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{VerbatimBuffer},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\fvset\",\n          \"\\\\VerbatimInsertBuffer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimClearBuffer\"\n    },\n    {\n      \"name\": \"VerbatimClearBuffer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VerbatimClearBuffer[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{VerbatimBuffer},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\fvset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FancyVerbBreakStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakStop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakAnywhereBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakBeforeBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakAfterBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakByTokenAnywhereBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerbatimPygments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VerbatimPygments{${1:literal macro%cmd}}{${2:actual macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraDoSpecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FVExtraReadOArgBeforeVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraReadOArgBeforeVArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraReadOArgBeforeVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FVExtraReadOArgBeforeVArg[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraReadOArgBeforeVEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraReadOArgBeforeVEnv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraReadOArgBeforeVEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FVExtraReadOArgBeforeVEnv[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraReadVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraReadVArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraReadVArgSingleLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraReadVArgSingleLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtrapdfstringdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FVExtrapdfstringdef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtrapdfstringdefDisableCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FVExtraAlwaysUnexpanded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraAlwaysUnexpanded{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FVExtraRobustCommand{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraUnexpandedReadStarOArgMArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraUnexpandedReadStarOArgMArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraUseVerbUnexpandedReadStarOArgMArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraUseVerbUnexpandedReadStarOArgMArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraUnexpandedReadStarOArgBVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraUnexpandedReadStarOArgBVArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraUnexpandedReadStarOArgBEscVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraUnexpandedReadStarOArgBEscVArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraPDFStringEscapeChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraPDFStringEscapeChar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraPDFStringEscapeChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraPDFStringEscapeChars{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraVerbatimDetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraVerbatimDetokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraPDFStringVerbatimDetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraPDFStringVerbatimDetokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraEscapedVerbatimDetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraEscapedVerbatimDetokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraPDFStringEscapedVerbatimDetokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraPDFStringEscapedVerbatimDetokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraDetokenizeVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FVExtraDetokenizeVArg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraDetokenizeEscVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FVExtraDetokenizeEscVArg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraDetokenizeREscVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FVExtraDetokenizeREscVArg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraRetokenizeVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FVExtraRetokenizeVArg{${1:macro%cmd}}{${2:code}}{${3:chars}}\"\n      }\n    },\n    {\n      \"name\": \"FVExtraUnexpandedReadStarOArgMArgBVArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FVExtraUnexpandedReadStarOArgMArgBVArg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RobustVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"RobustVerb|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"RobustVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"RobustVerb[${1:options}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"RobustVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"RobustVerb*|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"RobustVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"RobustVerb*[${1:options}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"RobustUseVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RobustUseVerb{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RobustUseVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RobustUseVerb[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RobustUseVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RobustUseVerb*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RobustUseVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RobustUseVerb*[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RobustEscVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RobustEscVerb{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"RobustEscVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RobustEscVerb[${2:options%keyvals}]{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"RobustEscVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RobustEscVerb*{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"RobustEscVerb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RobustEscVerb*[${2:options%keyvals}]{${1:backslash-escaped text}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbMathSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbMathEscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBeamerOverlays\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbCurlyQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbHighlightColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbHighlightLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLine{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbHighlightLineNormal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLineNormal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbHighlightLineFirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLineFirst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbHighlightLineMiddle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLineMiddle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbHighlightLineLast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLineLast{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbHighlightLineSingle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbHighlightLineSingle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbBreakSymbolLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakSymbolRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakSymbolLeftLogic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbBreakSymbolLeftLogic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"theFancyVerbLineBreakLast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakSymbolRightLogic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FancyVerbBreakSymbolRightLogic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FancyVerbBreakAnywhereSymbolPre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakAnywhereSymbolPost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakBeforeSymbolPre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakBeforeSymbolPost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakAfterSymbolPre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBreakAfterSymbolPost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbSpaceBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBackgroundColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBackgroundColorVPhantom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbBackgroundColorPadding\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"VerbEnv\"\n    },\n    {\n      \"name\": \"VerbEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"VerbatimWrite\"\n    },\n    {\n      \"name\": \"VerbatimWrite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{VerbatimWrite}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimBuffer\"\n    },\n    {\n      \"name\": \"VerbatimBuffer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{VerbatimBuffer},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\fvset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\Verb,\\\\Verb*,\\\\DefineShortVerb,\\\\begin{Verbatim},\\\\begin{Verbatim*},\\\\begin{BVerbatim},\\\\begin{BVerbatim*},\\\\begin{LVerbatim},\\\\begin{LVerbatim*},\\\\fvset,\\\\DefineVerbatimEnvironment,\\\\CustomVerbatimEnvironment,\\\\RecustomVerbatimEnvironment,\\\\CustomVerbatimCommand,\\\\RecustomVerbatimCommand,\\\\SaveVerb,\\\\SaveVerb*,\\\\UseVerb,\\\\UseVerb*,\\\\begin{SaveVerbatim},\\\\UseVerbatim,\\\\BUseVerbatim,\\\\LUseVerbatim,\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LLVerbatimInput,\\\\fvinlineset,\\\\EscVerb,\\\\EscVerb*,\\\\begin{VerbEnv},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\RobustVerb,\\\\RobustVerb*,\\\\RobustUseVerb,\\\\RobustUseVerb*,\\\\RobustEscVerb,\\\\RobustEscVerb*\": [\n      \"backgroundcolor=\",\n      \"backgroundcolorpadding=\",\n      \"backgroundcolorvphantom=${1:macro}\",\n      \"bgcolor=\",\n      \"bgcolorpadding=\",\n      \"bgcolorvphantom=${1:macro}\",\n      \"beameroverlays\",\n      \"curlyquotes\",\n      \"extra\",\n      \"fontencoding=${1:encoding}\",\n      \"highlightcolor=\",\n      \"highlightlines={${1:line ranges}}\",\n      \"linenos\",\n      \"mathescape\",\n      \"numberfirstline\",\n      \"numbers=${1|none,left,right,both|}\",\n      \"retokenize\",\n      \"space=${1:macro}\",\n      \"spacecolor=\",\n      \"stepnumberfromfirst\",\n      \"stepnumberoffsetvalues\",\n      \"tab=${1:macro}\",\n      \"tabcolor=\",\n      \"vargsingleline\",\n      \"breakafter=${1:string}\",\n      \"breakafterinrun\",\n      \"breakaftersymbolpre=${1:string}\",\n      \"breakaftersymbolpost=${1:string}\",\n      \"breakanywhere\",\n      \"breakanywheresymbolpre=${1:string}\",\n      \"breakanywhereinlinestretch=\",\n      \"breakanywheresymbolpost=${1:string}\",\n      \"breakautoindent\",\n      \"breakbefore=${1:string}\",\n      \"breakbeforeinrun\",\n      \"breakbeforesymbolpre=${1:string}\",\n      \"breakbeforesymbolpost=${1:string}\",\n      \"breakcollapsespaces\",\n      \"breakindent=\",\n      \"breakindentnchars=${1:integer}\",\n      \"breaklines\",\n      \"breaknonspaceingroup\",\n      \"breakpreferspaces\",\n      \"breaksymbol=${1:string}\",\n      \"breaksymbolleft=${1:string}\",\n      \"breaksymbolright=${1:string}\",\n      \"breaksymbolindent=\",\n      \"breaksymbolindentnchars=${1:integer}\",\n      \"breaksymbolindentleft=\",\n      \"breaksymbolindentleftnchars=${1:integer}\",\n      \"breaksymbolindentright=\",\n      \"breaksymbolindentrightnchars=${1:integer}\",\n      \"breaksymbolsep=\",\n      \"breaksymbolsepnchars=${1:integer}\",\n      \"breaksymbolsepleft=\",\n      \"breaksymbolsepleftnchars=${1:integer}\",\n      \"breaksymbolsepright=\",\n      \"breaksymbolseprightnchars=${1:integer}\",\n      \"spacebreak=${1:macro}\",\n      \"breakbytoken\",\n      \"breakbytokenanywhere\"\n    ],\n    \"\\\\fvinlineset,\\\\EscVerb,\\\\EscVerb*,\\\\begin{VerbEnv},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\RobustVerb,\\\\RobustVerb*,\\\\RobustUseVerb,\\\\RobustUseVerb*,\\\\RobustEscVerb,\\\\RobustEscVerb*\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ],\n    \"\\\\fvinlineset\": [\n      \"aftersave={${1:code}}\"\n    ],\n    \"\\\\begin{VerbatimWrite}\": [\n      \"writefilehandle=${1:file handle}\",\n      \"writer=${1:macro}\"\n    ],\n    \"\\\\begin{VerbatimBuffer},\\\\VerbatimInsertBuffer,\\\\VerbatimClearBuffer,\\\\fvset\": [\n      \"afterbuffer=${1:macro}\",\n      \"bufferer=${1:macro}\",\n      \"bufferlengthname=${1:string}\",\n      \"bufferlinename=${1:string}\",\n      \"buffername=${1:string}\",\n      \"globalbuffer\"\n    ],\n    \"\\\\VerbatimInsertBuffer\": [\n      \"insertenvname=${1:string}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/fwlw.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FirstWordBox\"\n    },\n    {\n      \"name\": \"NextWordBox\"\n    },\n    {\n      \"name\": \"LastWordBox\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/galois.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"galois\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"galois{${1:above%formula}}{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"galois\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"galois[${3:color1}]{${1:above%formula}}[${4:color2}]{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"galoiS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"galoiS{${1:above%formula}}{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"galoiS\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"galoiS[${3:color1}]{${1:above%formula}}[${4:color2}]{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Galois\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Galois{${1:above%formula}}{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Galois\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"Galois[${3:color1}]{${1:above%formula}}[${4:color2}]{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GaloiS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GaloiS{${1:above%formula}}{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GaloiS\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"GaloiS[${3:color1}]{${1:above%formula}}[${4:color2}]{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"galoiSr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"galoiSr{${1:above%formula}}{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"galoiSr\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"galoiSr[${3:color1}]{${1:above%formula}}[${4:color2}]{${2:below%formula}}\"\n      }\n    },\n    {\n      \"name\": \"comp\"\n    },\n    {\n      \"name\": \"comp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"comp[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"GaloisStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaloisArrowThickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaloisArrowsSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GaloisArrowTagSep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gamebook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"extramarks\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"draftwatermark\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"scrtime\",\n      \"if\": \"draft\"\n    },\n    {\n      \"name\": \"prelim2e\",\n      \"if\": \"draft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gbsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbsection{${1:id%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"gbturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbturn{${1:id%ref}}\"\n      }\n    },\n    {\n      \"name\": \"gbturntext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gbitem{${1:text}}{${2:id%ref}}\"\n      }\n    },\n    {\n      \"name\": \"gbvillain\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"gbvillain{${1:name}}{${2:skill%text}}{${3:skill level%text}}{${4:life%text}}{${5:life level%text}}\"\n      }\n    },\n    {\n      \"name\": \"gbheader\"\n    },\n    {\n      \"name\": \"gbheadtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbdebugx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbdebugx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gbdebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbdebug{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gbturnoptions\"\n    },\n    {\n      \"name\": \"gbturnoptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gbturnoptions}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gbtabbing\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gamebook#c\": [\n      \"debug\",\n      \"draft\"\n    ],\n    \"\\\\begin{gbturnoptions}\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gamebook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gamebooklib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"macroswap\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lcg\"\n    },\n    {\n      \"name\": \"silence\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thegentryctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentryidx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentrycode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentryidxu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentryidxs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentrytitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextidx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegentries\"\n    },\n    {\n      \"name\": \"gentrycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentryheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gentryheader{${1:counterIdx}}{${2:fixedIdx}}{${3:code}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"gentryshouldoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gentryfooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputfootnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outputfootnotes{${1:maxIdx}}\"\n      }\n    },\n    {\n      \"name\": \"noentryfoot\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:entrylabel}}\"\n      }\n    },\n    {\n      \"name\": \"gentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:index}]{${1:entrylabel}}\"\n      }\n    },\n    {\n      \"name\": \"gentry\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:index}]{${1:entrylabel}}[${3:title%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gamebooklib#c\": [\n      \"verbose\",\n      \"endpage\",\n      \"jukebox\",\n      \"footnote\",\n      \"noshuffle\",\n      \"counter=${1:counter}\",\n      \"first=${1:integer}\",\n      \"last=${1:integer}\",\n      \"seed=${1:integer}\",\n      \"quiet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gamebooklib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gandhi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gandhi\"\n    },\n    {\n      \"name\": \"gandhisans\"\n    },\n    {\n      \"name\": \"gandhifamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gandhisffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gandhi#c\": [\n      \"scaled=${1:factor}\",\n      \"sf\",\n      \"rm\",\n      \"sfdefault\",\n      \"type1\",\n      \"osf\",\n      \"oldstyle\",\n      \"lf\",\n      \"lining\",\n      \"proportional\",\n      \"p\",\n      \"tabular\",\n      \"t\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gandhi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/garamondlibre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashshape\"\n    },\n    {\n      \"name\": \"textsw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ornaments\"\n    },\n    {\n      \"name\": \"ornament\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ornament{${1:char slot}}\"\n      }\n    },\n    {\n      \"name\": \"textornaments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textornaments{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"garamondlibrelgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/garamondlibre#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"oldstyle\",\n      \"osf\",\n      \"lining\",\n      \"lf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/garamondlibre#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/garamondx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"swashQ\"\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosfI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosfI{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useosfI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/garamondx#c\": [\n      \"babel\",\n      \"sups\",\n      \"swashQ\",\n      \"scaled\",\n      \"scaled=${1:factor}\",\n      \"osf\",\n      \"osfI\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/garamondx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gastex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"trig\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"auto-pst-pdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gasset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gasset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gsavepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gsavepicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gusepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gusepicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gusepicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gusepicture[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\gusepicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"node\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"node(${2:name})(${3:x},${4:y}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"node\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"node[${2:options%keyvals}](${3:name})(${4:x},${5:y}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rpnode\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"rpnode(${2:name})(${3:x},${4:y})(${5:n},${6:r}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"rpnode\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"rpnode[${2:options%keyvals}](${3:name})(${4:x},${5:y})(${6:n},${7:r}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"imark\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"imark(${1:node name})\"\n      }\n    },\n    {\n      \"name\": \"imark\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"imark[${1:options%keyvals}](${2:node name})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fmark\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"fmark(${1:node name})\"\n      }\n    },\n    {\n      \"name\": \"fmark\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"fmark[${1:options%keyvals}](${2:node name})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rmark\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rmark(${1:node name})\"\n      }\n    },\n    {\n      \"name\": \"rmark\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"rmark[${1:options%keyvals}](${2:node name})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nodelabel\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"nodelabel(${2:node name}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"nodelabel\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"nodelabel[${2:options%keyvals}](${3:node name}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawedge\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawedge(${2:startNode},${3:endNode}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawedge\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawedge[${2:options%keyvals}](${3:startNode},${4:endNode}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawloop\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawloop(${2:node name}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawloop\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawloop[${2:options%keyvals}](${3:node name}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawqbedge\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawqbedge(${2:startNode},${3:x},${4:y},${5:endNode}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawqbedge\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawqbedge[${2:options%keyvals}](${3:startNode},${4:x},${5:y},${6:endNode}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawqbpedge\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawqbpedge(${2:startNode},${3:sa},${4:endNode},${5:ea}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawqbpedge\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawqbpedge[${2:options%keyvals}](${3:startNode},${4:sa},${5:endNode},${6:ea}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawbcedge\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawbcedge(${2:startNode},${3:xs},${4:ys},${5:endNode},${6:xe},${7:ye}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawbcedge\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawbcedge[${2:options%keyvals}](${3:startNode},${4:xs},${5:ys},${6:endNode},${7:xe},${8:ye}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawbpedge\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"drawbpedge(${2:startNode},${3:sa},${4:sr},${5:endNode},${6:ea},${7:er}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawbpedge\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"drawbpedge[${2:options%keyvals}](${3:startNode},${4:sa},${5:sr},${6:endNode},${7:ea},${8:er}){${1:label text}}\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawcircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawcircle(${1:x},${2:y},${3:d})\"\n      }\n    },\n    {\n      \"name\": \"drawcircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawcircle[${1:options%keyvals}](${2:x},${3:y},${4:d})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawarc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawarc(${1:x},${2:y},${3:r},${4:a},${5:b})\"\n      }\n    },\n    {\n      \"name\": \"drawarc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawarc[${1:options%keyvals}](${2:x},${3:y},${4:r},${5:a},${6:b})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawrect\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawrect(${1:x0},${2:y0},${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"drawrect\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawrect[${1:options%keyvals}](${2:x0},${3:y0},${4:x1},${5:y1})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawoval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawoval(${1:x},${2:y},${3:w},${4:h},${5:mr})\"\n      }\n    },\n    {\n      \"name\": \"drawoval\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawoval[${1:options%keyvals}](${2:x},${3:y},${4:w},${5:h},${6:mr})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawrpolygon\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"drawrpolygon(${1:x},${2:y})(${3:n},${4:r})\"\n      }\n    },\n    {\n      \"name\": \"drawrpolygon\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"drawrpolygon[${1:options%keyvals}](${2:x},${3:y})(${4:n},${5:r})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawqbezier\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawqbezier(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"drawqbezier\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawqbezier[${1:options%keyvals}](${2:x0},${3:y0},${4:x1},${5:y1},${6:x2},${7:y2})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawcbezier\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"drawcbezier(${1:x0},${2:y0},${3:x1},${4:y1},${5:x2},${6:y2},${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"drawcbezier\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"drawcbezier[${1:options%keyvals}](${2:x0},${3:y0},${4:x1},${5:y1},${6:x2},${7:y2},${8:x3},${9:y3})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawsnake\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"drawsnake(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"drawsnake\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"drawsnake[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gpicture\"\n    },\n    {\n      \"name\": \"gpicture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"gpicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:width},${2:height})(${3:xoffset},${4:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"gpicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\",\n          \"\\\\begin{gpicture}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gpicture\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:width},${3:height})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\",\n          \"\\\\begin{gpicture}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gpicture\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:width},${3:height})(${4:xoffset},${5:yoffset})\",\n        \"keys\": [\n          \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\",\n          \"\\\\begin{gpicture}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gastex#c\": [\n      \"slide\",\n      \"paper\",\n      \"pdflatex\",\n      \"recompilepics=${1|auto,true,false|}\",\n      \"runs=${1:number}\",\n      \"crop=${1|on,off|}\"\n    ],\n    \"\\\\gusepicture\": [\n      \"frame\",\n      \"innerframe\",\n      \"ignore\",\n      \"showname\",\n      \"namefont=${1:font commands}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\gasset,\\\\begin{gpicture},\\\\node,\\\\rpnode,\\\\imark,\\\\fmark,\\\\rmark,\\\\nodelabel,\\\\drawedge,\\\\drawloop,\\\\drawqbedge,\\\\drawqbpedge,\\\\drawbcedge,\\\\drawbpedge,\\\\drawline,\\\\drawcurve,\\\\drawpolygon,\\\\drawccurve,\\\\drawcircle,\\\\drawarc,\\\\drawrect,\\\\drawoval,\\\\drawrpolygon,\\\\drawqbezier,\\\\drawcbezier,\\\\drawsnake\": [\n      \"AHangle=${1:degrees}\",\n      \"AHdist=${1:number}\",\n      \"AHLength=${1:number}\",\n      \"AHlength=${1:number}\",\n      \"AHnb=${1:integer}\",\n      \"arcPie=${1|y,n|}\",\n      \"arcradius=${1:number}\",\n      \"ATangle=${1:degrees}\",\n      \"ATdist=${1:number}\",\n      \"ATLength=${1:number}\",\n      \"ATlength=${1:number}\",\n      \"ATnb=${1:integer}\",\n      \"curvedepth=${1:number}\",\n      \"dash={${1:pattern}}{${2:offset}}\",\n      \"ELdist=${1:number}\",\n      \"ELdistC=${1|y,n|}\",\n      \"ELpos=${1:value 0-100}\",\n      \"ELside=${1|l,r|}\",\n      \"exo=${1:number}\",\n      \"ExtNL=${1|y,n|}\",\n      \"eyo=${1:number}\",\n      \"fangle=${1:degrees}\",\n      \"fillcolor=\",\n      \"fillgray=${1:factor}\",\n      \"flength=${1:number}\",\n      \"frame\",\n      \"iangle=${1:degrees}\",\n      \"ilength=${1:number}\",\n      \"linecolor=\",\n      \"linegray=${1:factor}\",\n      \"linewidth=${1:number}\",\n      \"loopangle=${1:degrees}\",\n      \"loopCW=${1|y,n|}\",\n      \"loopdiam=${1:number}\",\n      \"loopheight=${1:number}\",\n      \"loopwidth=${1:number}\",\n      \"Nadjust=${1:combination of w,h,n}\",\n      \"Nadjustdist=${1:number}\",\n      \"Nfill=${1|y,n|}\",\n      \"Nframe=${1|y,n|}\",\n      \"Nh=${1:number}\",\n      \"NLangle=${1:degrees}\",\n      \"NLdist=${1:number}\",\n      \"Nmarks=${1:combination of i,f,r,n}\",\n      \"Nmr=${1:number}\",\n      \"Nw=${1:number}\",\n      \"polyangle=${1:degrees}\",\n      \"rdist=${1:number}\",\n      \"snakeh=${1:number}\",\n      \"snakew=${1:number}\",\n      \"sxo=${1:number}\",\n      \"syo=${1:number}\"\n    ],\n    \"\\\\begin{gpicture}\": [\n      \"ignore\",\n      \"name=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gastex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"texapi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gates family\"\n    },\n    {\n      \"name\": \"gates return0\"\n    },\n    {\n      \"name\": \"gates return1\"\n    },\n    {\n      \"name\": \"gates return2\"\n    },\n    {\n      \"name\": \"gates return3\"\n    },\n    {\n      \"name\": \"gates return4\"\n    },\n    {\n      \"name\": \"gates return5\"\n    },\n    {\n      \"name\": \"gates return6\"\n    },\n    {\n      \"name\": \"gates return7\"\n    },\n    {\n      \"name\": \"gates return8\"\n    },\n    {\n      \"name\": \"gates return9\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gatherenum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{enumerate}#c\": [\n      \"gathered\",\n      \"gatherformat=${1:formatting commands}\",\n      \"center\",\n      \"alignleft\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gb4e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cgloss4e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"exewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exewidth{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ex[${2:judgment}]{${1:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"judgewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"judgewidth{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"exi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exi{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"exi\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exi{${1:identifier}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"exr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exr{${1:label}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exp{${1:label}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"sn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sn[${2:judgment}]{${1:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"obar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obar{${1:arg}}\"\n      },\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"mbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ibar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iibar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iibar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"primebars\"\n    },\n    {\n      \"name\": \"lb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lb\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"lb{${1:arg}}[${2:sub}]\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rb{${1:arg}}[${2:sub}]\"\n      }\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"al\"\n    },\n    {\n      \"name\": \"be\"\n    },\n    {\n      \"name\": \"ga\"\n    },\n    {\n      \"name\": \"de\"\n    },\n    {\n      \"name\": \"noautomath\"\n    },\n    {\n      \"name\": \"automath\"\n    },\n    {\n      \"name\": \"attop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attop{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"atcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atcenter{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"fillright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fillleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arrowalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowalign{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"pu\"\n    },\n    {\n      \"name\": \"pd\"\n    },\n    {\n      \"name\": \"lf\"\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"spacer\"\n    },\n    {\n      \"name\": \"centr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prmbrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ct{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexgroupmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexgroupmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therxnumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therxnumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therxnumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therxnumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"z\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcommentsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leaderfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointerup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointerdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elevenex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pijl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"boven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boven{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bovenop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bovenop{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"vl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exe\"\n    },\n    {\n      \"name\": \"exe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlist\"\n    },\n    {\n      \"name\": \"xlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlista\"\n    },\n    {\n      \"name\": \"xlista\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlisti\"\n    },\n    {\n      \"name\": \"xlisti\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlistn\"\n    },\n    {\n      \"name\": \"xlistn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlistA\"\n    },\n    {\n      \"name\": \"xlistA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlistI\"\n    },\n    {\n      \"name\": \"xlistI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"qlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gbt7714.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"natbib\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gbt7714#c\": [\n      \"round\",\n      \"square\",\n      \"curly\",\n      \"angle\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"sort\",\n      \"sort&compress\",\n      \"compress\",\n      \"longnamesfirst\",\n      \"sectionbib\",\n      \"nonamebreak\",\n      \"merge\",\n      \"elide\",\n      \"mcite\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"gbt7714-numerical\",\n      \"gbt7714-author-year\"\n    ],\n    \"\\\\citestyle#c\": [\n      \"super\",\n      \"numbers\",\n      \"authoryear\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gbt7714#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gchords.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"chord\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chord{${1:modifiers}}{${2:x1,x2,...}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"chords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chords{${1:chords}}\"\n      }\n    },\n    {\n      \"name\": \"upchord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upchord{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"strings\"\n    },\n    {\n      \"name\": \"numfrets\"\n    },\n    {\n      \"name\": \"chordsize\"\n    },\n    {\n      \"name\": \"fingerfont\"\n    },\n    {\n      \"name\": \"namefont\"\n    },\n    {\n      \"name\": \"fretposfont\"\n    },\n    {\n      \"name\": \"dampsymbol\"\n    },\n    {\n      \"name\": \"fatsiz\"\n    },\n    {\n      \"name\": \"normalsiz\"\n    },\n    {\n      \"name\": \"fingsiz\"\n    },\n    {\n      \"name\": \"fatfingsiz\"\n    },\n    {\n      \"name\": \"topfretsiz\"\n    },\n    {\n      \"name\": \"xoff\"\n    },\n    {\n      \"name\": \"yoff\"\n    },\n    {\n      \"name\": \"smallchords\"\n    },\n    {\n      \"name\": \"mediumchords\"\n    },\n    {\n      \"name\": \"Lnow\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gckanbun.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifuptex\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gckanbunruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gckanbunruby{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"gckanbunokurigana\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gckanbunokurigana{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gckanbunkaeriten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gckanbunkaeriten{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"if\": \"prefix=\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"okurigana\",\n      \"if\": \"prefix=\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"okurigana{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kaeriten\",\n      \"if\": \"prefix=\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kaeriten{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kanbunruby\",\n      \"if\": \"prefix=kanbun\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kanbunruby{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"kanbunokurigana\",\n      \"if\": \"prefix=kanbun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanbunokurigana{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kanbunkaeriten\",\n      \"if\": \"prefix=kanbun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanbunkaeriten{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gckanbun#c\": [\n      \"prefix=${1:prefix}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gckanbun#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gelasio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gelasio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gelasio#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"tabular\",\n      \"proportional\",\n      \"medium\",\n      \"semibold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gelasio#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gelasiomath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"newtx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textSC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsmde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsmde{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gelasiomath#c\": [\n      \"scale=${1:factor}\",\n      \"scosf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gelasiomath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/genealogy-profiles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"genealogytree\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gprKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprKeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gprKeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gprName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprName*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprName*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprRef{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprRef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gprRef[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprRef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprRef*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprRef*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gprRef*[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"gprYear*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprYear*{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"gprYears\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprYears{${1:year range}}\"\n      }\n    },\n    {\n      \"name\": \"gprYears*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gprYears*{${1:year range}}\"\n      }\n    },\n    {\n      \"name\": \"gprHeader\"\n    },\n    {\n      \"name\": \"gprID\"\n    },\n    {\n      \"name\": \"gprStyledName\"\n    },\n    {\n      \"name\": \"gprFullName\"\n    },\n    {\n      \"name\": \"gprGivenName\"\n    },\n    {\n      \"name\": \"gprPatronymic\"\n    },\n    {\n      \"name\": \"gprSurname\"\n    },\n    {\n      \"name\": \"gprByname\"\n    },\n    {\n      \"name\": \"gprSpouse\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gprProfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gprProfile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:name}}[${2:life events}]\"\n      }\n    },\n    {\n      \"name\": \"gprProfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\begin{gprProfile},\\\\begin{gprProfile*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gprProfile\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}[${3:life events}]\",\n        \"keys\": [\n          \"\\\\begin{gprProfile},\\\\begin{gprProfile*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gprProfile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{gprProfile},\\\\begin{gprProfile*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gprProfile*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:options%keyvals}}[${2:life events}]\",\n        \"keys\": [\n          \"\\\\begin{gprProfile},\\\\begin{gprProfile*}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\gprKeys\": [\n      \"name part order=${1:list}\",\n      \"name type=${1|given and surname,nordic historical|}\",\n      \"auto id\",\n      \"auto id prefix=${1:prefix}\",\n      \"begin profile=${1:code}\",\n      \"end profile=${1:code}\",\n      \"begin header=${1:code}\",\n      \"end header=${1:code}\",\n      \"begin life events=${1:code}\",\n      \"end life events=${1:code}\",\n      \"reference style=\",\n      \"unknown reference style=\",\n      \"page number style=\",\n      \"givenname style=${1:style}\",\n      \"patronymic style=${1:style}\",\n      \"surname style=${1:style}\",\n      \"byname style=${1:style}\",\n      \"header format=${1:code}\",\n      \"auto header\",\n      \"id index=\",\n      \"fullname index=\",\n      \"patronymic index=\",\n      \"surname index=\",\n      \"byname index=\",\n      \"nest index entries\",\n      \"id in index entries\",\n      \"main index entry style=${1:style}\",\n      \"include unknown in index\",\n      \"include ambiguous in index\"\n    ],\n    \"\\\\begin{gprProfile},\\\\begin{gprProfile*}\": [\n      \"id=\",\n      \"fullname=\",\n      \"givenname=\",\n      \"patronymic=\",\n      \"surname=\",\n      \"byname=\",\n      \"life events=\",\n      \"no index\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/genealogytree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"array\",\n      \"if\": \"debug\"\n    },\n    {\n      \"name\": \"tabularx\",\n      \"if\": \"debug\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\",\n      \"if\": \"debug\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gtruselibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtruselibrary{${1:library list%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/genealogytree#c,\\\\gtruselibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"genealogytree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genealogytree{${1:tree contents}}\"\n      }\n    },\n    {\n      \"name\": \"genealogytree\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"genealogytree[${2:options%keyvals}]{${1:tree contents}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"genealogytreeinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genealogytreeinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"genealogytreeinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"genealogytreeinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gtrfanchart#c,\\\\gtrfanchartinput#c,\\\\gtrset#c\",\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrkeysappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrkeysappto{${1:hook}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gtrkeysgappto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrkeysgappto{${1:hook}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gtrnodetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrnodeid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrnodenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrnodefamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrnodelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrifnodeid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifnodeid{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifgnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifgnode{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifcnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifcnode{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifpnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifpnode{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifroot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifroot{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifleaf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifleaf{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifchild\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifchild{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifparent{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifleafchild\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifleafchild{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifleafparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifleafparent{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrautosizebox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrautosizebox{${1:width}}{${2:height}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"gtrautosizebox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrautosizebox*{${1:width}}{${2:height}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"gtrsetoptionsfornode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrsetoptionsfornode{${1:id list}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gtrsetoptionsforfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrsetoptionsforfamily{${1:id list}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gtrsetoptionsforsubtree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrsetoptionsforsubtree{${1:id list}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gtrignorenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrignorenode{${1:id list}}\"\n      }\n    },\n    {\n      \"name\": \"gtrignoresubtree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrignoresubtree{${1:id list}}\"\n      }\n    },\n    {\n      \"name\": \"gtrBoxContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrNodeMinWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrNodeMaxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrNodeMinHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrNodeMaxHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrNodeBoxOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBsex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBcomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBprofession\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBimage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBimageopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBviewport\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBuuid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBkekule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBrelation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBrelationship\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrParseDate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrParseDate{${1:name}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"gtrDeclareDatabaseFormat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrDeclareDatabaseFormat{${1:format}}{${2:option code}}{${3:content code}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintDatabase\"\n    },\n    {\n      \"name\": \"gtrPrintName\"\n    },\n    {\n      \"name\": \"pref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:given name}}\"\n      }\n    },\n    {\n      \"name\": \"surn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surn{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"nick\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nick{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrPrintDate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifdatedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrifdatedefined{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintPlace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrPrintPlace{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifplacedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrifplacedefined{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintEvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrPrintEvent{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifeventdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gtrifeventdefined{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintEventPrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrPrintEventPrefix{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrlistseparator\"\n    },\n    {\n      \"name\": \"gtrPrintComment\"\n    },\n    {\n      \"name\": \"gtrifcommentdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifcommentdefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintProfession\"\n    },\n    {\n      \"name\": \"gtrifprofessiondefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifprofessiondefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintSex\"\n    },\n    {\n      \"name\": \"gtriffemale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtriffemale{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifmale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifmale{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrifimagedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifimagedefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrincludeDBimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrincludeDBimage{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintAge\"\n    },\n    {\n      \"name\": \"gtrifagedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifagedefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtredgeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtredgeset{${1:edge options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gtredgeset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrSymbolsSetCreate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrSymbolsSetCreate{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"gtrSymbolsSetCreateSelected\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrSymbolsSetCreateSelected{${1:color}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"gtrSymbolsSetDraw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrSymbolsSetDraw{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"gtrsymBorn\"\n    },\n    {\n      \"name\": \"gtrsymBornoutofwedlock\"\n    },\n    {\n      \"name\": \"gtrsymStillborn\"\n    },\n    {\n      \"name\": \"gtrsymDiedonbirthday\"\n    },\n    {\n      \"name\": \"gtrsymBaptized\"\n    },\n    {\n      \"name\": \"gtrsymEngaged\"\n    },\n    {\n      \"name\": \"gtrsymMarried\"\n    },\n    {\n      \"name\": \"gtrsymDivorced\"\n    },\n    {\n      \"name\": \"gtrsymPartnership\"\n    },\n    {\n      \"name\": \"gtrsymDied\"\n    },\n    {\n      \"name\": \"gtrsymKilled\"\n    },\n    {\n      \"name\": \"gtrsymBuried\"\n    },\n    {\n      \"name\": \"gtrsymFuneralurn\"\n    },\n    {\n      \"name\": \"gtrsymFloruit\"\n    },\n    {\n      \"name\": \"gtrsymFemale\"\n    },\n    {\n      \"name\": \"gtrsymMale\"\n    },\n    {\n      \"name\": \"gtrsymNeuter\"\n    },\n    {\n      \"name\": \"gtrSymbolsRecordReset\"\n    },\n    {\n      \"name\": \"gtrSymbolsFullLegend\"\n    },\n    {\n      \"name\": \"gtrSymbolsFullLegend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gtrSymbolsFullLegend[${1:language%keyvals}]\",\n        \"keys\": [\n          \"\\\\gtrSymbolsFullLegend#c,\\\\gtrSymbolsLegend#c,\\\\gtrloadlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrSymbolsLegend\"\n    },\n    {\n      \"name\": \"gtrSymbolsLegend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gtrSymbolsLegend[${1:language%keyvals}]\",\n        \"keys\": [\n          \"\\\\gtrSymbolsFullLegend#c,\\\\gtrSymbolsLegend#c,\\\\gtrloadlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrlanguagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrloadlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrloadlanguage{${1:list of languages%keyvals}}\",\n        \"keys\": [\n          \"\\\\gtrSymbolsFullLegend#c,\\\\gtrSymbolsLegend#c,\\\\gtrloadlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrparserdebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrparserdebug{${1:graph content}}\"\n      }\n    },\n    {\n      \"name\": \"gtrparserdebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrparserdebug[${2:options%keyvals}]{${1:graph content}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrparserdebuginput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrparserdebuginput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gtrparserdebuginput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrparserdebuginput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrprocessordebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrprocessordebug{${1:graph content}}\"\n      }\n    },\n    {\n      \"name\": \"gtrprocessordebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrprocessordebug[${2:options%keyvals}]{${1:graph content}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrprocessordebuginput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrprocessordebuginput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gtrprocessordebuginput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrprocessordebuginput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrdebugdrawcontour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrdebugdrawcontour{${1:options%keyvals}}{${2:path options}}\",\n        \"keys\": [\n          \"\\\\gtrdebugdrawcontour#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrDrawSymbolicPortrait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrfanchart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrfanchart{${1:tree contents}}\"\n      }\n    },\n    {\n      \"name\": \"gtrfanchart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrfanchart[${2:options%keyvals}]{${1:tree contents}}\",\n        \"keys\": [\n          \"\\\\gtrfanchart#c,\\\\gtrfanchartinput#c,\\\\gtrset#c\",\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrfanchartinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrfanchartinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gtrfanchartinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gtrfanchartinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\gtrfanchart#c,\\\\gtrfanchartinput#c,\\\\gtrset#c\",\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrcomplemented\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrnewstack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrnewstack{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstacksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrstacksize{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstackpush\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrstackpush{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstackpop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrstackpop{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstackpopto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrstackpopto{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstackpeek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrstackpeek{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gtrstackpeekto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrstackpeekto{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"gtrmakestack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrmakestack{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"genealogypicture\"\n    },\n    {\n      \"name\": \"genealogypicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exgenealogypicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"exgenealogypicture\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:name}}[${2:options}]\",\n        \"keys\": [\n          \"\\\\begin{exgenealogypicture}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"exgenealogypicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:externalization options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\begin{exgenealogypicture}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exgenealogypicture\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:externalization options%keyvals}]{${1:name}}[${3:options}]\",\n        \"keys\": [\n          \"\\\\begin{exgenealogypicture}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autosizetikzpicture\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"autosizetikzpicture\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:width}}{${2:height}}\",\n        \"keys\": [\n          \"\\\\begin{autosizetikzpicture}#c,\\\\begin{autosizetikzpicture*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autosizetikzpicture*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"autosizetikzpicture*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:width}}{${2:height}}\",\n        \"keys\": [\n          \"\\\\begin{autosizetikzpicture}#c,\\\\begin{autosizetikzpicture*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gtrprintlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:first}}{${2:middle}}{${3:last}}{${4:empty}}\"\n      }\n    },\n    {\n      \"name\": \"gtreventlist\"\n    },\n    {\n      \"name\": \"gtrinfolist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/genealogytree#c,\\\\gtruselibrary#c\": [\n      \"debug\",\n      \"templates\",\n      \"fanchart\",\n      \"all\"\n    ],\n    \"\\\\begin{exgenealogypicture}#c\": [\n      \"runner=${1:file name}\",\n      \"prefix=${1:text}\",\n      \"externalize\",\n      \"force remake\",\n      \"!\",\n      \"-\",\n      \"name=${1:name}\",\n      \"safety=\",\n      \"environment=${1:env}\",\n      \"environment with percent\",\n      \"minipage\",\n      \"minipage=\",\n      \"plain\",\n      \"compiler=${1:text}\",\n      \"runs=${1:number}\",\n      \"input source on error\",\n      \"preclass={${1:code}}\",\n      \"PassOptionsToPackage={${1:options}}{${2:package}}\",\n      \"PassOptionsToClass={${1:options}}{${2:class}}\",\n      \"clear preclass\",\n      \"preamble={${1:code}}\",\n      \"preamble tcbset={${1:tcolorbox options}}\",\n      \"clear preamble\"\n    ],\n    \"\\\\begin{autosizetikzpicture}#c,\\\\begin{autosizetikzpicture*}#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name path=${1:path}\",\n      \"name path global=${1:path}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"on grid\",\n      \"node distance=\",\n      \"base left=\",\n      \"base right=\",\n      \"mid left=\",\n      \"mid right=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"remember picture\",\n      \"overlay\",\n      \"every new ->\",\n      \"every new --\",\n      \"every new <->\",\n      \"every new <-\",\n      \"every new -!-\",\n      \"new set=${1:set name}\",\n      \"set=${1:set name}\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\",\n      \"decoration={${1:options}}\",\n      \"decorate\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"column sep=\",\n      \"row sep=\",\n      \"every cell={${1:row}}{${2:column}}\",\n      \"cells={${1:options}}\",\n      \"nodes={${1:options}}\",\n      \"column ${1:n}/.style={${2:options}}\",\n      \"every odd column/.style={${1:options}}\",\n      \"every even column/.style={${1:options}}\",\n      \"row ${1:m}/.style={${2:options}}\",\n      \"every odd row/.style={${1:options}}\",\n      \"every even row/.style={${1:options}}\",\n      \"row ${1:m} column ${2:n}/.style={${3:options}}\",\n      \"execute at begin cell=${1:code}\",\n      \"execute at end cell=${1:code}\",\n      \"execute at empty cell=${1:code}\",\n      \"matrix anchor=${1:anchor}\",\n      \"ampersand replacement=${1:macro}\",\n      \"baseline\",\n      \"baseline=${1:<dimen> or <coord> or default}\",\n      \"execute at begin picture=${1:code}\",\n      \"execute at end picture=${1:code}\",\n      \"every scope/.style={${1:options}}\",\n      \"every path/.style={${1:options}}\",\n      \"every circle/.style={${1:options}}\",\n      \"every to/.style={${1:options}}\",\n      \"every node/.style={${1:options}}\",\n      \"every lower node part/.style={${1:options}}\",\n      \"every label/.style={${1:options}}\",\n      \"every pin/.style={${1:options}}\",\n      \"every pin edge/.style={${1:options}}\",\n      \"every label quotes/.style={${1:options}}\",\n      \"every pin quotes/.style={${1:options}}\",\n      \"every edge/.style={${1:options}}\",\n      \"every edge quotes/.style={${1:options}}\",\n      \"every pic/.style={${1:options}}\",\n      \"every pic quotes/.style={${1:options}}\",\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"every matrix/.style={${1:options}}\",\n      \"every outer matrix/.style={${1:options}}\",\n      \"every child/.style={${1:options}}\",\n      \"every child node/.style={${1:options}}\",\n      \"every plot/.style={${1:options}}\",\n      \"every mark/.style={${1:options}}\",\n      \"every loop/.style={${1:options}}\",\n      \"execute at begin to=${1:code}\",\n      \"execute at end to=${1:code}\",\n      \"execute at begin node=${1:code}\",\n      \"execute at end node=${1:code}\",\n      \"trim left\",\n      \"trim left=${1:<dimen> or <coord> or default}\",\n      \"trim right\",\n      \"trim right=${1:<dimen> or <coord> or default}\",\n      \"tri lowlevel\",\n      \"name prefix=${1:text}\",\n      \"name suffix=${1:text}\",\n      \"badness warnings for centered text\",\n      \"node halign header=${1:macro}\",\n      \"quotes mean label\",\n      \"quotes mean pin\",\n      \"level/.style={${1:options}}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"level distance=\",\n      \"sibling distance=\",\n      \"edge from parent/.style={${1:options}}\",\n      \"variable=${1:macro}\",\n      \"samples=${1:number}\",\n      \"domain=${1:start}:${2:end}\",\n      \"samples at=${1:samples list}\",\n      \"parametric\",\n      \"range=${1:start}:${2:end}\",\n      \"yrange=${1:start}:${2:end}\",\n      \"xrange=${1:start}:${2:end}\",\n      \"id=${1:id}\",\n      \"prefix\",\n      \"raw gnuplot\",\n      \"mark=${1:mark}\",\n      \"mark repeat=${1:number}\",\n      \"mark phase=${1:number}\",\n      \"mark indices=${1:list}\",\n      \"mark size=\",\n      \"mark options={${1:options}}\",\n      \"no marks\",\n      \"no markers\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:value}\",\n      \"smooth cycle\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"ycomb\",\n      \"xcomb\",\n      \"polar comb\",\n      \"ybar\",\n      \"xbar\",\n      \"ybar interval\",\n      \"xbar interval\",\n      \"only marks\",\n      \"blend mode=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"blend group=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar interval shift=${1:factor}\",\n      \"bar interval width=${1:scale}\",\n      \"matrix/inner style order={${1:list}}\",\n      \"pic type=${1:type}\",\n      \"pics/code=${1:code}\",\n      \"pics/foreground code=${1:code}\",\n      \"pics/background code=${1:code}\",\n      \"pic text=${1:text}\",\n      \"pic text options={${1:options}}\"\n    ],\n    \"\\\\gtredgeset#c\": [\n      \"perpendicular\",\n      \"rounded\",\n      \"rounded=\",\n      \"swing\",\n      \"swing=\",\n      \"mesh\",\n      \"mesh={${1:options}}\",\n      \"custom={${1:down}}{${2:up}}{${3:left}}{${4:right}}\",\n      \"none\",\n      \"foreground={${1:TikZ options}}\",\n      \"no foreground\",\n      \"background={${1:TikZ options}}\",\n      \"no background\",\n      \"anchoring=${1|periphery,center|}\",\n      \"hide single leg\",\n      \"xshift=\",\n      \"yshift=\"\n    ],\n    \"\\\\gtrSymbolsFullLegend#c,\\\\gtrSymbolsLegend#c,\\\\gtrloadlanguage#c\": [\n      \"catalan\",\n      \"chinese\",\n      \"danish\",\n      \"dutch\",\n      \"english\",\n      \"french\",\n      \"german\",\n      \"german-german\",\n      \"german-austrian\",\n      \"italian\",\n      \"portuguese\",\n      \"spanish\",\n      \"swedish\"\n    ],\n    \"\\\\gtrdebugdrawcontour#c\": [\n      \"family number=${1:number}\",\n      \"family id=${1:id}\",\n      \"contour=${1|west,east,both,none|}\"\n    ],\n    \"\\\\gtrfanchart#c,\\\\gtrfanchartinput#c,\\\\gtrset#c\": [\n      \"fanchart radii={${1:radius1,radius2,...}}\",\n      \"fanchart inner offset={${1:offset1,offset2,...}}\",\n      \"fanchart outer offset={${1:offset1,offset2,...}}\",\n      \"fanchart minor angle=${1:angle}\",\n      \"fanchart major angle=${1:angle}\",\n      \"fanchart angles=${1:minor angle}:${2:major angle}\",\n      \"fanchart open full\",\n      \"fanchart open up\",\n      \"fanchart open up=${1:angle}\",\n      \"fanchart open down\",\n      \"fanchart open down=${1:angle}\",\n      \"fanchart open left\",\n      \"fanchart open left=${1:angle}\",\n      \"fanchart open right\",\n      \"fanchart open right=${1:angle}\",\n      \"fanchart open for=${1:width} x ${2:height}\",\n      \"fanchart reset bounds\",\n      \"fanchart bounds border=\",\n      \"fanchart landscape from level=${1:number}\",\n      \"fanchart text portrait=${1|inwards,outwards,auto|}\",\n      \"fanchart text landscape=${1|clockwise,counterclockwise,auto|}\",\n      \"fanchart boundary color=\",\n      \"fanchart boundary width=\",\n      \"fanchart root style={${1:TikZ options}}\",\n      \"fanchart root malefemale\",\n      \"fanchart segment style={${1:TikZ options}}\",\n      \"fanchart segment malefemale\",\n      \"fanchart segment relation\",\n      \"fanchart segment wave\",\n      \"fanchart segment colorwheel\",\n      \"fanchart segment radial\",\n      \"fanchart marker style={${1:TikZ options}}\",\n      \"fanchart marker malefemale\",\n      \"fanchart marker relation\",\n      \"fanchart marker wave\",\n      \"fanchart marker colorwheel\",\n      \"fanchart marker radial\",\n      \"fanchart complemented segment style={${1:TikZ options}}\",\n      \"fanchart complemented marker style={${1:TikZ options}}\",\n      \"fanchart segment style for levels={${1:level list}}{${2:TikZ options}}\",\n      \"fanchart marker style for levels={${1:level list}}{${2:TikZ options}}\",\n      \"fanchart segment style for ids={${1:id list}}{${2:TikZ options}}\",\n      \"fanchart marker style for ids={${1:id list}}{${2:TikZ options}}\",\n      \"fanchart male style={${1:TikZ options}}\",\n      \"fanchart female style={${1:TikZ options}}\",\n      \"fanchart neuter style={${1:TikZ options}}\",\n      \"fanchart ancestor style={${1:TikZ options}}\",\n      \"fanchart descendant style={${1:TikZ options}}\",\n      \"fanchart sibling style={${1:TikZ options}}\",\n      \"fanchart unrelated style={${1:TikZ options}}\",\n      \"fanchart template=${1|spartan,malefemale sober,malefemale relation,colorwheel sober,colorwheel serious,colorwheel malefemale,colorwheel rich,colorwheel opulent,wave sober,wave serious,wave malefemale,wave rich,wave opulent,radial sober,radial serious,radial malefemale,radial rich,radial opulent|}\",\n      \"fanchart-segment-definition={${1:code}}\",\n      \"fanchart-marker-definition={${1:code}}\",\n      \"fanchart-segment-code={${1:code}}\",\n      \"fanchart-root-code={${1:code}}\"\n    ],\n    \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\": [\n      \"timeflow=${1|down,up,left,right|}\",\n      \"level distance=\",\n      \"level size=\",\n      \"node size=\",\n      \"node size from=${1:<minlength>} to ${2:<maxlength>}\",\n      \"child distance in parent graph=\",\n      \"child distance in child graph=\",\n      \"child distance=\",\n      \"parent distance in parent graph=\",\n      \"parent distance in child graph=\",\n      \"parent distance=\",\n      \"further distance=\",\n      \"id=${1:name}\",\n      \"id prefix=${1:text}\",\n      \"id suffix=${1:text}\",\n      \"options for node={${1:id list}}{${2:options}}\",\n      \"node={${1:options}}\",\n      \"distance=\",\n      \"pivot\",\n      \"pivot=${1|none,child,parent,both|}\",\n      \"box={${1:options}}\",\n      \"box clear\",\n      \"node box={${1:options}}\",\n      \"family box={${1:options}}\",\n      \"subtree box={${1:options}}\",\n      \"turn\",\n      \"turn=${1|off,right,upsidedown,left|}\",\n      \"male\",\n      \"female\",\n      \"neuter\",\n      \"tikz={${1:TikZ options}}\",\n      \"options for family={${1:id list}}{${2:options}}\",\n      \"family={${1:options}}\",\n      \"pivot shift=\",\n      \"options for subtree={${1:id list}}{${2:options}}\",\n      \"subtree={${1:options}}\",\n      \"level=${1:number}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"proband level=${1:number}\",\n      \"tree offset=\",\n      \"after parser={${1:code}}\",\n      \"set position=${1:<node>} at ${2:<position>}\",\n      \"adjust position=${1:<node> <direction>} of ${2:<position>} distance ${3:<distance>}\",\n      \"adjust position=${1:<node> <direction>} of ${2:<position>} distance ${3:<distance>} shift ${4:<shift>}\",\n      \"adjust node=${1:<node> <direction>} of ${2:<ref node>} distance ${3:<distance>}\",\n      \"adjust node=${1:<node> <direction>} of ${2:<ref node>} distance ${3:<distance>} shift ${4:<shift>}\",\n      \"tikzpicture={${1:TikZ options}}\",\n      \"tikzset={${1:TikZ options}}\",\n      \"after tree={${1:TikZ code}}\",\n      \"tcbset={${1:tcolorbox options}}\",\n      \"fit to family=${1:id}\",\n      \"fit to subtree=${1:id}\",\n      \"ignore\",\n      \"ignore node={${1:id list}}\",\n      \"ignore subtree={${1:id list}}\",\n      \"ignore level=${1:number}\",\n      \"ignore parent childs\",\n      \"insert after node={${1:id}}{${2:input data}}\",\n      \"insert after family={${1:id}}{${2:input data}}\",\n      \"insert at begin family={${1:id}}{${2:input data}}\",\n      \"insert at end family={${1:id}}{${2:input data}}\",\n      \"phantom\",\n      \"phantom=\",\n      \"phantom*\",\n      \"phantom*=\",\n      \"insert for childless families={${1:input data}}\",\n      \"insert phantom for childless families\",\n      \"insert for childless families level limit=${1:level}\",\n      \"autofill parents unspecific\",\n      \"autofill parents unspecific=${1:level}\",\n      \"autofill parents unspecific*\",\n      \"autofill parents unspecific*=${1:level}\",\n      \"complemented/.style={${1:options}}\",\n      \"complemented family/.style={${1:options}}\",\n      \"complemented phantom\",\n      \"autofill parents male female\",\n      \"autofill parents male female=${1:level}\",\n      \"autofill parents male female*\",\n      \"autofill parents male female*=${1:level}\",\n      \"autofill parents female male\",\n      \"autofill parents female male=${1:level}\",\n      \"autofill parents female male*\",\n      \"autofill parents female male*=${1:level}\",\n      \"autofill parents none\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"keysfrom=${1:macro}\",\n      \"\",\n      \"node processor=${1:macro}\",\n      \"processing=${1|fit,tcolorbox,tcbox,tcbox*,tikznode,database|}\",\n      \"content interpreter=${1:macro}\",\n      \"content interpreter code={${1:code}}\",\n      \"content interpreter content={${1:code}}\",\n      \"no content interpreter\",\n      \"deletion content interpreter\",\n      \"database content interpreter\",\n      \"id content interpreter\",\n      \"content interpreter id and content={${1:id}}{${2:code}}\",\n      \"database format=${1|full,full marriage above,full marriage below,full no marriage,medium,medium marriage above,medium marriage below,medium no marriage,short,short marriage above,short marriage below,short no marriage,name,symbol,empty,marriage|}\",\n      \"pref code={${1:code}}\",\n      \"surn code={${1:code}}\",\n      \"nick code={${1:code}}\",\n      \"name=${1|full,short|}\",\n      \"name font={${1:code}}\",\n      \"empty name text={${1:text}}\",\n      \"name code={${1:code}}\",\n      \"date format=${1|typical,dd.mm.yyyy,d.m.yyyy,d.M.yyyy,d.month yyyy,dd.mon.yyyy,d.mon.yyyy,dd mon.yyyy,d mon.yyyy,dd/mm/yyyy,d/m/yyyy,d/m yyyy,d/M/yyyy,dd/month/yyyy,d/month/yyyy,dd/mon/yyyy,d/mon/yyyy,dd/mm yyyy,dd mm yyyy,d M yyyy,d month yyyy,dd mon yyyy,d mon yyyy,dd-mm-yyyy,d-m-yyyy,d-M-yyyy,dd-month-yyyy,d-month-yyyy,dd-mon-yyyy,d-mon-yyyy,ddmonyyyy,yyyy.mm.dd,yyyy.m.d,yyyy.m.d.,yyyy.M.d.,yyyy.month d.,yyyy.mon.d.,yyyy/mm/dd,yyyy/m/d,yyyy d/m,yyyy mm dd,yyyy month d,yyyy mon dd,yyyy-mm-dd,yyyy-mon-dd,yyyy-mon-d,yyyymondd,yyyymmdd,mm.dd.yyyy,m.d.yyyy,mm/dd/yyyy,m/d/yyyy,mm-dd-yyyy,m-d-yyyy,month d yyyy,mon.d yyyy,mon d yyyy,yyyy|}\",\n      \"date code={${1:code}}\",\n      \"calendar text for=${1:<calendar>} is %<{${2:prefix}}{${3:postfix}}\",\n      \"calendar print=${1|all,none,all but AD|}\",\n      \"date range full={${1:pre}}{${2:mid}}{${3:app}}\",\n      \"date range before={${1:pre}}{${2:app}}\",\n      \"date range after={${1:pre}}{${2:app}}\",\n      \"date range separator={${1:text}}\",\n      \"place text={${1:pre}}{${2:app}}\",\n      \"event prefix/birth=${1:text}\",\n      \"event prefix/birth/out of wedlock=${1:text}\",\n      \"event prefix/birth/stillborn=${1:text}\",\n      \"event prefix/birth/died=${1:text}\",\n      \"event prefix/baptism=${1:text}\",\n      \"event prefix/engagement=${1:text}\",\n      \"event prefix/marriage=${1:text}\",\n      \"event prefix/marriage/other=${1:text}\",\n      \"event prefix/divorce=${1:text}\",\n      \"event prefix/floruit=${1:text}\",\n      \"event prefix/death=${1:text}\",\n      \"event prefix/death/killed=${1:text}\",\n      \"event prefix/burial=${1:text}\",\n      \"event prefix/burial/cremated=${1:text}\",\n      \"event format=${1|prefix date place,prefix date,date|}\",\n      \"event text={${1:pre}}{${2:sep date}}{${3:sep place}}{${4:app}}\",\n      \"event code={${1:code}}\",\n      \"list separators={${1:first}}{${2:middle}}{${3:last}}{${4:empty}}\",\n      \"list separators hang\",\n      \"list separators hang=\",\n      \"comment code={${1:code}}\",\n      \"profession code={${1:code}}\",\n      \"info separators={${1:first}}{${2:middle}}{${3:last}}{${4:empty}}\",\n      \"if image defined={${1:true}}{${2:false}}\",\n      \"image prefix=${1:text}\",\n      \"fill zoom DBimage\",\n      \"fill overzoom DBimage\",\n      \"age code={${1:code}}\",\n      \"\",\n      \"edges={${1:edge options}}\",\n      \"family edges={${1:edge options}}\",\n      \"edges for family={${1:family}}{${2:edge options}}\",\n      \"subtree edges={${1:edge options}}\",\n      \"edges for subtree={${1:subtree}}{${2:edge options}}\",\n      \"edge/perpendicular\",\n      \"edge/rounded\",\n      \"edge/rounded=\",\n      \"edge/swing\",\n      \"edge/swing=\",\n      \"edge/mesh\",\n      \"edge/mesh={${1:options}}\",\n      \"edge/custom={${1:down}}{${2:up}}{${3:left}}{${4:right}}\",\n      \"edge/none\",\n      \"edge/foreground={${1:TikZ options}}\",\n      \"edge/no foreground\",\n      \"edge/background={${1:TikZ options}}\",\n      \"edge/no background\",\n      \"edge/anchoring=${1|periphery,center|}\",\n      \"edge/hide single leg\",\n      \"edge/xshift=\",\n      \"edge/yshift=\",\n      \"label={${1:text}}\",\n      \"label options={${1:TikZ options}}\",\n      \"family label={${1:text}}\",\n      \"subtree label={${1:text}}\",\n      \"family database={${1:data keys}}\",\n      \"label database options={${1:options}}\",\n      \"ignore family database\",\n      \"use family database\",\n      \"add child=${1:<child>} to ${2:<family>}\",\n      \"add parent=${1:<parent>} to ${2:<family>}\",\n      \"remove child=${1:<child>} from ${2:<family>}\",\n      \"remove parent=${1:<parent>} from ${2:<family>}\",\n      \"disconnect\",\n      \"disconnect=${1|child,parent,both|}\",\n      \"extra edges={${1:parents}}{${2:children}}{${3:edge options}}\",\n      \"family extra edges={${1:parents}}{${2:children}}{${3:edge options}}\",\n      \"extra edges for family={${1:family}}{${2:parents}}{${3:children}}{${4:edge options}}\",\n      \"extra edges for families={${1:family list}}{${2:edge options}}\",\n      \"extra edges prepend={${1:parents}}{${2:children}}{${3:edge options}}\",\n      \"family extra edges prepend={${1:parents}}{${2:children}}{${3:edge options}}\",\n      \"extra edges prepend for family={${1:family}}{${2:parents}}{${3:children}}{${4:edge options}}\",\n      \"extra edges prepend for families={${1:family list}}{${2:edge options}}\",\n      \"edges shift=\",\n      \"edges up by=${1:<number>} of ${2:<parts>}\",\n      \"edges down by=${1:<number>} of ${2:<parts>}\",\n      \"edges up\",\n      \"edges down\",\n      \"reset edge level shift\",\n      \"switch edge level shift\",\n      \"nullify edge level shift\",\n      \"\",\n      \"symbols record reset\",\n      \"symlang/Born=${1:text}\",\n      \"symlang/Bornoutofwedlock=${1:text}\",\n      \"symlang/Stillborn=${1:text}\",\n      \"symlang/Diedonbirthday=${1:text}\",\n      \"symlang/Baptized=${1:text}\",\n      \"symlang/Engaged=${1:text}\",\n      \"symlang/Married=${1:text}\",\n      \"symlang/Divorced=${1:text}\",\n      \"symlang/Partnership=${1:text}\",\n      \"symlang/Died=${1:text}\",\n      \"symlang/Killed=${1:text}\",\n      \"symlang/Buried=${1:text}\",\n      \"symlang/Funeralurn=${1:text}\",\n      \"symlang/Floruit=${1:text}\",\n      \"symlang/Female=${1:text}\",\n      \"symlang/Male=${1:text}\",\n      \"symlang/Neuter=${1:text}\",\n      \"\",\n      \"language=${1|catalan,chinese,danish,dutch,english,french,german,german-german,german-austrian,italian,portuguese,spanish,swedish|}\",\n      \"\",\n      \"show=${1:text}\",\n      \"show id\",\n      \"show level\",\n      \"show number\",\n      \"show family\",\n      \"show type\",\n      \"\",\n      \"template=${1|formal graph,signpost,symbol nodes,tiny boxes,tiny circles,directory,database pole,database pole reduced,database poleportrait,database poleportrait reduced,database portrait,database portrait reduced,database traditional,database traditional reduced,database sideways,database sideways reduced,database sidewaysportrait,database sidewaysportrait reduced,database relationship,ahnentafel 3,ahnentafel 4,ahnentafel 5,a4paper 3,a4paper 4,a3paper 5,letterpaper 3,letterpaper 4,display 16:9 3,display 16:9 4,display 16:9 5,display 16:10 3,display 16:10 4,display 16:10 5|}\",\n      \"template horizontal border=\",\n      \"template vertical border=\"\n    ],\n    \"\\\\tcbset\": [\n      \"male/.style={${1:options}}\",\n      \"female/.style={${1:options}}\",\n      \"neuter/.style={${1:options}}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"genealogytree edges scope/.style={${1:options}}\",\n      \"genealogytree extra edges scope/.style={${1:options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/genealogytree#c,\\\\gtruselibrary#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gensymb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"celsius\"\n    },\n    {\n      \"name\": \"perthousand\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"micro\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gensymb#c\": [\n      \"Upomega\",\n      \"Omega\",\n      \"upmu\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gensymb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gentium.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gentium#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gentium#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gentiumbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gentium#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gentium#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gentombow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"settombowbannerfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settombowbannerfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"settombowbanner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settombowbanner{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"settombowbleed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settombowbleed{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"settombowcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settombowcolor{${1:color declaration}}\"\n      }\n    },\n    {\n      \"name\": \"settombowwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settombowwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"maketombowbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minute\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gentombow#c\": [\n      \"tombow\",\n      \"tombo\",\n      \"mentuke\",\n      \"tombowbanner\",\n      \"notombowbanner\",\n      \"tombow-a0\",\n      \"tombow-a1\",\n      \"tombow-a2\",\n      \"tombow-a3\",\n      \"tombow-a4\",\n      \"tombow-a5\",\n      \"tombow-a6\",\n      \"tombow-a7\",\n      \"tombow-a8\",\n      \"tombow-a9\",\n      \"tombow-a10\",\n      \"tombow-b0\",\n      \"tombow-b1\",\n      \"tombow-b2\",\n      \"tombow-b3\",\n      \"tombow-b4\",\n      \"tombow-b5\",\n      \"tombow-b6\",\n      \"tombow-b7\",\n      \"tombow-b8\",\n      \"tombow-b9\",\n      \"tombow-b10\",\n      \"tombow-c0\",\n      \"tombow-c1\",\n      \"tombow-c2\",\n      \"tombow-c3\",\n      \"tombow-c4\",\n      \"tombow-c5\",\n      \"tombow-c6\",\n      \"tombow-c7\",\n      \"tombow-c8\",\n      \"tombow-c9\",\n      \"tombow-c10\",\n      \"tombow-a4var\",\n      \"tombow-b5var\",\n      \"tombow-letter\",\n      \"tombow-legal\",\n      \"tombow-executive\",\n      \"tombo-a0\",\n      \"tombo-a1\",\n      \"tombo-a2\",\n      \"tombo-a3\",\n      \"tombo-a4\",\n      \"tombo-a5\",\n      \"tombo-a6\",\n      \"tombo-a7\",\n      \"tombo-a8\",\n      \"tombo-a9\",\n      \"tombo-a10\",\n      \"tombo-b0\",\n      \"tombo-b1\",\n      \"tombo-b2\",\n      \"tombo-b3\",\n      \"tombo-b4\",\n      \"tombo-b5\",\n      \"tombo-b6\",\n      \"tombo-b7\",\n      \"tombo-b8\",\n      \"tombo-b9\",\n      \"tombo-b10\",\n      \"tombo-c0\",\n      \"tombo-c1\",\n      \"tombo-c2\",\n      \"tombo-c3\",\n      \"tombo-c4\",\n      \"tombo-c5\",\n      \"tombo-c6\",\n      \"tombo-c7\",\n      \"tombo-c8\",\n      \"tombo-c9\",\n      \"tombo-c10\",\n      \"tombo-a4var\",\n      \"tombo-b5var\",\n      \"tombo-letter\",\n      \"tombo-legal\",\n      \"tombo-executive\",\n      \"mentuke-a0\",\n      \"mentuke-a1\",\n      \"mentuke-a2\",\n      \"mentuke-a3\",\n      \"mentuke-a4\",\n      \"mentuke-a5\",\n      \"mentuke-a6\",\n      \"mentuke-a7\",\n      \"mentuke-a8\",\n      \"mentuke-a9\",\n      \"mentuke-a10\",\n      \"mentuke-b0\",\n      \"mentuke-b1\",\n      \"mentuke-b2\",\n      \"mentuke-b3\",\n      \"mentuke-b4\",\n      \"mentuke-b5\",\n      \"mentuke-b6\",\n      \"mentuke-b7\",\n      \"mentuke-b8\",\n      \"mentuke-b9\",\n      \"mentuke-b10\",\n      \"mentuke-c0\",\n      \"mentuke-c1\",\n      \"mentuke-c2\",\n      \"mentuke-c3\",\n      \"mentuke-c4\",\n      \"mentuke-c5\",\n      \"mentuke-c6\",\n      \"mentuke-c7\",\n      \"mentuke-c8\",\n      \"mentuke-c9\",\n      \"mentuke-c10\",\n      \"mentuke-a4var\",\n      \"mentuke-b5var\",\n      \"mentuke-letter\",\n      \"mentuke-legal\",\n      \"mentuke-executive\",\n      \"pdfbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gentombow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/geometry.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"geometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"geometry{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\geometry,\\\\usepackage/geometry#c\",\n          \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newgeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newgeometry{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restoregeometry\"\n    },\n    {\n      \"name\": \"savegeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savegeometry{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"loadgeometry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadgeometry{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\loadgeometry\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\loadgeometry\": [\n      \"%geometry\"\n    ],\n    \"\\\\geometry,\\\\usepackage/geometry#c\": [\n      \"paper=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"papername=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"c0paper\",\n      \"c1paper\",\n      \"c2paper\",\n      \"c3paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"c6paper\",\n      \"b0j\",\n      \"b1j\",\n      \"b2j\",\n      \"b3j\",\n      \"b4j\",\n      \"b5j\",\n      \"b6j\",\n      \"ansiapaper\",\n      \"ansibpaper\",\n      \"ansicpaper\",\n      \"ansidpaper\",\n      \"ansiepaper\",\n      \"letterpaper\",\n      \"executivepaper\",\n      \"legalpaper\",\n      \"screen\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"papersize=\",\n      \"papersize={${1:width},${2:height}}\",\n      \"landscape\",\n      \"portrait\",\n      \"driver=${1|auto,none,dvips,dvipdfm,pdftex,luatex,xetex,vtex,dvipdfmx,xdvipdfmx|}\",\n      \"dvips\",\n      \"dvipdfm\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"vtex\",\n      \"dvipdfmx\",\n      \"xdvipdfmx\",\n      \"verbose\",\n      \"reset\",\n      \"mag=${1:magnification}\",\n      \"truedimen\",\n      \"pass\",\n      \"showframe\",\n      \"showcrop\"\n    ],\n    \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\": [\n      \"layout=${1|a0paper,a1paper,a2paper,a3paper,a4paper,a5paper,a6paper,b0paper,b1paper,b2paper,b3paper,b4paper,b5paper,b6paper,c0paper,c1paper,c2paper,c3paper,c4paper,c5paper,c6paper,b0j,b1j,b2j,b3j,b4j,b5j,b6j,ansiapaper,ansibpaper,ansicpaper,ansidpaper,ansiepaper,letterpaper,executivepaper,legalpaper|}\",\n      \"layoutwidth=\",\n      \"layoutheight=\",\n      \"layoutsize=\",\n      \"layoutsize={${1:width},${2:height}}\",\n      \"layouthoffset=\",\n      \"layoutvoffset=\",\n      \"layoutoffset=\",\n      \"layoutoffset={${1:hoffset},${2:voffset}}\",\n      \"hscale=${1:scale}\",\n      \"vscale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"scale={${1:hscale},${2:vscale}}\",\n      \"width=\",\n      \"totalwidth=\",\n      \"height=\",\n      \"totalheight=\",\n      \"total=\",\n      \"total={${1:width},${2:height}}\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"text=\",\n      \"body={${1:width},${2:height}}\",\n      \"lines=${1:integer}\",\n      \"includehead\",\n      \"includefoot\",\n      \"includeheadfoot\",\n      \"includemp\",\n      \"includeall\",\n      \"ignorehead\",\n      \"ignorefoot\",\n      \"ignoreheadfoot\",\n      \"ignoremp\",\n      \"ignoreall\",\n      \"heightrounded\",\n      \"hdivide={${1:left margin},${2:width},${3:right margin}}\",\n      \"vdivide={${1:top margin},${2:height},${3:bottom margin}}\",\n      \"divide={${1:left/top margin},${2:width/height},${3:right/bottom margin}}\",\n      \"left=\",\n      \"lmargin=\",\n      \"inner=\",\n      \"right=\",\n      \"rmargin=\",\n      \"outer=\",\n      \"top=\",\n      \"tmargin=\",\n      \"bottom=\",\n      \"bmargin=\",\n      \"hmargin=\",\n      \"hmargin={${1:left margin},${2:right margin}}\",\n      \"vmargin=\",\n      \"vmargin={${1:top margin},${2:bottom margin}}\",\n      \"margin=\",\n      \"margin={${1:left/top margin},${2:right/bottom margin}}\",\n      \"hmarginratio=${1:left}:${2:right}\",\n      \"vmarginratio=${1:top}:${2:bottom}\",\n      \"marginratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"marginratio=${1:left/top}:${2:right/bottom}\",\n      \"ratio={${1:left}:${2:right},${3:top}:${4:bottom}}\",\n      \"ratio=${1:left/top}:${2:right/bottom}\",\n      \"hcentering\",\n      \"vcentering\",\n      \"centering\",\n      \"twoside\",\n      \"asymmetric\",\n      \"bindingoffset=\",\n      \"headheight=\",\n      \"head=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"foot=\",\n      \"nohead\",\n      \"nofoot\",\n      \"noheadfoot\",\n      \"footnotesep=\",\n      \"marginparwidth=\",\n      \"marginpar=\",\n      \"marginparsep=\",\n      \"nomarginpar\",\n      \"columnsep=\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"offset=\",\n      \"offset={${1:hoffset},${2:voffset}}\",\n      \"twocolumn\",\n      \"onecolumn\",\n      \"twoside\",\n      \"reversemp\",\n      \"reversemarginpar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\geometry,\\\\usepackage/geometry#c\",\n    \"\\\\geometry,\\\\newgeometry,\\\\usepackage/geometry#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/german.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/getfiledate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etextools\"\n    },\n    {\n      \"name\": \"ltxnew\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"boxedminipage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getfiledate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfiledate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"getfiledate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getfiledate[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\getfiledate\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\getfiledate\": [\n      \"file=\",\n      \"prefix=\",\n      \"postfix=\",\n      \"width=\",\n      \"head=\",\n      \"foot=\",\n      \"marker=\",\n      \"markercolor=\",\n      \"filenamecolor=\",\n      \"datecolor=\",\n      \"inlinespace=\",\n      \"separator=\",\n      \"sepcolor=\",\n      \"framecolor=\",\n      \"framesep=\",\n      \"framerule=\",\n      \"align=${1|center,left,right,justified|}\",\n      \"putprefix\",\n      \"notime\",\n      \"boxed\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/getitems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gatheritems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gatheritems{${1:text to parse%text}}\"\n      }\n    },\n    {\n      \"name\": \"thenumgathereditems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gathereditem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gathereditem{${1:item number}}\"\n      }\n    },\n    {\n      \"name\": \"loopthroughitemswithcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopthroughitemswithcommand{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentitemnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgatherbeginningofloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatherbeginningoflooptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatherbeginningofloopfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/getmap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getmap{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"getmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getmap[${2:options%keyvals}]{${1:address}}\",\n        \"keys\": [\n          \"\\\\usepackage/getmap#c,\\\\getmap\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/getmap#c,\\\\getmap\": [\n      \"mode=${1|osm,gm,gsv|}\",\n      \"inputencoding=${1:encoding}\",\n      \"overwrite\",\n      \"file=${1:file name}\",\n      \"key=${1:service key}\",\n      \"scale=${1:number}\",\n      \"zoom=${1:number}\",\n      \"xsize=${1:width in pixels}\",\n      \"ysize=${1:height in pixels}\",\n      \"imagetype=${1|png,png8,png32,jpeg,jpg,jpg-baseline,gif|}\",\n      \"type=${1|map,sat,hyb,roadmap,satellite,hybrid,terrain|}\",\n      \"color=${1:color}\",\n      \"number=${1:number}\",\n      \"language=${1:lang code}\",\n      \"markers={${1:&markers=...}}\",\n      \"visible={${1:loc1|loc2|...}}\",\n      \"path={${1:&path=...}}\",\n      \"pathfile=${1:file name}\",\n      \"heading=${1:degrees}\",\n      \"pitch=${1:degrees}\",\n      \"fov=${1:degrees}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/getmap#c,\\\\getmap\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gettitlestring.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GetTitleStringSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTitleStringSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\GetTitleStringSetup,\\\\usepackage/gettitlestring#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GetTitleString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTitleString{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GetTitleStringExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTitleStringExpand{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GetTitleStringNonExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTitleStringNonExpand{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GetTitleStringResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetTitleStringDisableCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTitleStringDisableCommands{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\GetTitleStringSetup,\\\\usepackage/gettitlestring#c\": [\n      \"expand\"\n    ]\n  },\n  \"args\": [\n    \"\\\\GetTitleStringSetup,\\\\usepackage/gettitlestring#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfdl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"expkv-def\"\n    },\n    {\n      \"name\": \"expkv-opt\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gfdlcopyrightdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfdlcopyrightdescription{${1:project-description%text}}\"\n      }\n    },\n    {\n      \"name\": \"gfdlcopyrightableyears\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfdlcopyrightableyears{${1:copyrightable-years}}\"\n      }\n    },\n    {\n      \"name\": \"gfdlcopyrightholders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfdlcopyrightholders{${1:copyright-holders}}\"\n      }\n    },\n    {\n      \"name\": \"printgfdlnotice\"\n    },\n    {\n      \"name\": \"printgfdltext\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gfdl#c\": [\n      \"manual\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gfdl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfsartemisia-euler.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"euler\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"artemisiatextparagraph\"\n    },\n    {\n      \"name\": \"artemisiatextparagraphalt\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"numero\"\n    },\n    {\n      \"name\": \"estimated\"\n    },\n    {\n      \"name\": \"whitebullet\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"eurocurrency\"\n    },\n    {\n      \"name\": \"interrobang\"\n    },\n    {\n      \"name\": \"yencurrency\"\n    },\n    {\n      \"name\": \"stirling\"\n    },\n    {\n      \"name\": \"stirlingoldstyle\"\n    },\n    {\n      \"name\": \"greekfemfirst\"\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onethird\"\n    },\n    {\n      \"name\": \"twothirds\"\n    },\n    {\n      \"name\": \"onefifth\"\n    },\n    {\n      \"name\": \"twofifths\"\n    },\n    {\n      \"name\": \"threefifths\"\n    },\n    {\n      \"name\": \"fourfifths\"\n    },\n    {\n      \"name\": \"onesixth\"\n    },\n    {\n      \"name\": \"fivesixths\"\n    },\n    {\n      \"name\": \"oneeighth\"\n    },\n    {\n      \"name\": \"threeeighths\"\n    },\n    {\n      \"name\": \"fiveeighths\"\n    },\n    {\n      \"name\": \"seveneighths\"\n    },\n    {\n      \"name\": \"textgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textparagraphalt\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"artemisiaeulertextdagger\"\n    },\n    {\n      \"name\": \"artemisiaeulertextdaggerdbl\"\n    },\n    {\n      \"name\": \"trademark\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gfsartemisia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"txfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"artemisiatextparagraph\"\n    },\n    {\n      \"name\": \"artemisiatextparagraphalt\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"numero\"\n    },\n    {\n      \"name\": \"estimated\"\n    },\n    {\n      \"name\": \"whitebullet\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"eurocurrency\"\n    },\n    {\n      \"name\": \"interrobang\"\n    },\n    {\n      \"name\": \"yencurrency\"\n    },\n    {\n      \"name\": \"stirling\"\n    },\n    {\n      \"name\": \"stirlingoldstyle\"\n    },\n    {\n      \"name\": \"greekfemfirst\"\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onethird\"\n    },\n    {\n      \"name\": \"twothirds\"\n    },\n    {\n      \"name\": \"onefifth\"\n    },\n    {\n      \"name\": \"twofifths\"\n    },\n    {\n      \"name\": \"threefifths\"\n    },\n    {\n      \"name\": \"fourfifths\"\n    },\n    {\n      \"name\": \"onesixth\"\n    },\n    {\n      \"name\": \"fivesixths\"\n    },\n    {\n      \"name\": \"oneeighth\"\n    },\n    {\n      \"name\": \"threeeighths\"\n    },\n    {\n      \"name\": \"fiveeighths\"\n    },\n    {\n      \"name\": \"seveneighths\"\n    },\n    {\n      \"name\": \"textgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textparagraphalt\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"artemisiatextdagger\"\n    },\n    {\n      \"name\": \"artemisiatextdaggerdbl\"\n    },\n    {\n      \"name\": \"trademark\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gfsbaskerville.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textgfsbaskerville\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgfsbaskerville{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ou\"\n    },\n    {\n      \"name\": \"ouox\"\n    },\n    {\n      \"name\": \"oudas\"\n    },\n    {\n      \"name\": \"oupsil\"\n    },\n    {\n      \"name\": \"oupsilvar\"\n    },\n    {\n      \"name\": \"oudasox\"\n    },\n    {\n      \"name\": \"oupsilox\"\n    },\n    {\n      \"name\": \"ouper\"\n    },\n    {\n      \"name\": \"oupsilper\"\n    },\n    {\n      \"name\": \"oudasper\"\n    },\n    {\n      \"name\": \"oudier\"\n    },\n    {\n      \"name\": \"oudierox\"\n    },\n    {\n      \"name\": \"oudiervar\"\n    },\n    {\n      \"name\": \"kai\"\n    },\n    {\n      \"name\": \"pialt\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"gammaalt\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gfsbaskerville\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gfsbodoni.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textbodoni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbodoni{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"numero\"\n    },\n    {\n      \"name\": \"estimated\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"eurocurrency\"\n    },\n    {\n      \"name\": \"yencurrency\"\n    },\n    {\n      \"name\": \"bodonitextparagraph\"\n    },\n    {\n      \"name\": \"whitebullet\"\n    },\n    {\n      \"name\": \"interrobang\"\n    },\n    {\n      \"name\": \"stirling\"\n    },\n    {\n      \"name\": \"stirlingoldstyle\"\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onethird\"\n    },\n    {\n      \"name\": \"twothirds\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"trademark\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bodoni\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gfsbodoni#c\": [\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gfsbodoni#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfscomplutum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"taualt\"\n    },\n    {\n      \"name\": \"textcomplutum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcomplutum{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"complutum\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gfscomplutum#c\": [\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gfscomplutum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfsdidot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pxfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"uishape\"\n    },\n    {\n      \"name\": \"textgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"textparagraphalt\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"numero\"\n    },\n    {\n      \"name\": \"estimated\"\n    },\n    {\n      \"name\": \"whitebullet\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"eurocurrency\"\n    },\n    {\n      \"name\": \"interrobang\"\n    },\n    {\n      \"name\": \"yencurrency\"\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onethird\"\n    },\n    {\n      \"name\": \"twothirds\"\n    },\n    {\n      \"name\": \"lambdadbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gfsdidot#c\": [\n      \"noGFSDidotTS1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gfsdidot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfsneohellenic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textneohellenic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textneohellenic{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"tabnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"neohellenictextparagraph\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"numero\"\n    },\n    {\n      \"name\": \"estimated\"\n    },\n    {\n      \"name\": \"whitebullet\"\n    },\n    {\n      \"name\": \"textlozenge\"\n    },\n    {\n      \"name\": \"eurocurrency\"\n    },\n    {\n      \"name\": \"interrobang\"\n    },\n    {\n      \"name\": \"yencurrency\"\n    },\n    {\n      \"name\": \"stirling\"\n    },\n    {\n      \"name\": \"stirlingoldstyle\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onethird\"\n    },\n    {\n      \"name\": \"twothirds\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"trademark\"\n    },\n    {\n      \"name\": \"deltaalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilonalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xionealt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xitwoalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaalt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"neohellenic\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gfsneohellenic#c\": [\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gfsneohellenic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gfsneohellenicot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nrightrightarrows\"\n    },\n    {\n      \"name\": \"nleftleftarrows\"\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smallsum\"\n    },\n    {\n      \"name\": \"Bigint\"\n    },\n    {\n      \"name\": \"biggint\"\n    },\n    {\n      \"name\": \"Biggint\"\n    },\n    {\n      \"name\": \"bigggint\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ghab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"darghab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"darghab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"darghab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"darghab[${2:width}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ghsystem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemmacros\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ghssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ghssetup,\\\\ghs,\\\\ghs*,\\\\ghslistall\",\n          \"\\\\ghssetup,\\\\ghspic\",\n          \"\\\\ghssetup\",\n          \"\\\\ghssetup,\\\\ghslistall\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ghs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ghs{${1:type}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ghs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ghs[${3:options%keyvals}]{${1:type}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\ghssetup,\\\\ghs,\\\\ghs*,\\\\ghslistall\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ghs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ghs*{${1:type}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ghs*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ghs*[${3:options%keyvals}]{${1:type}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\ghssetup,\\\\ghs,\\\\ghs*,\\\\ghslistall\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ghspic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghspic{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ghspic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ghspic[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\ghssetup,\\\\ghspic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ghslistall\"\n    },\n    {\n      \"name\": \"ghslistall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ghslistall[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ghssetup,\\\\ghslistall\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GHSfahrenheit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHScelsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHSkilogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHSpounds\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ghssetup,\\\\ghs,\\\\ghs*,\\\\ghslistall\": [\n      \"hide\",\n      \"space=${1:space cmd}\",\n      \"fill-in\",\n      \"exposure={${1:text}}\",\n      \"effect={${1:text}}\",\n      \"organs={${1:text}}\",\n      \"substance={${1:text}}\",\n      \"text={${1:text}}\",\n      \"dots={${1:text}}\",\n      \"C-temperature={${1:num}}\",\n      \"F-temperature={${1:num}}\",\n      \"kg-mass={${1:num}}\",\n      \"lbs-mass={${1:num}}\"\n    ],\n    \"\\\\ghssetup,\\\\ghspic\": [\n      \"scale=${1:factor}\",\n      \"includegraphics={${1:includegraphics keyval}}\",\n      \"pic-type=${1|eps,pdf,jpg,png|}\"\n    ],\n    \"\\\\ghssetup\": [\n      \"language=\"\n    ],\n    \"\\\\ghssetup,\\\\ghslistall\": [\n      \"table-head-number={${1:text}}\",\n      \"table-head-text={${1:text}}\",\n      \"table-next-page={${1:text}}\",\n      \"table-caption={${1:text}}\",\n      \"table-caption-short={${1:text}}\",\n      \"table-label={${1:text}}\",\n      \"table-row-sep=\",\n      \"table-rules=${1|default,booktabs,none|}\",\n      \"table-top-head-rule=${1|default,booktabs,none|}\",\n      \"table-head-rule=${1|default,booktabs,none|}\",\n      \"table-foot-rule=${1|default,booktabs,none|}\",\n      \"table-last-foot-rule=${1|default,booktabs,none|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gillcm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gishape\"\n    },\n    {\n      \"name\": \"gushape\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gillius.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gillius\"\n    },\n    {\n      \"name\": \"gilliuscondensed\"\n    },\n    {\n      \"name\": \"gilliusfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gilliuscondensedfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gillius#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"condensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gillius#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gillius2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gilliustwo\"\n    },\n    {\n      \"name\": \"gilliustwocondensed\"\n    },\n    {\n      \"name\": \"gilliusfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gilliuscondensedfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gillius2#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"condensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gillius2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gincltex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gincltex#c\": [\n      \"bb=${1|file,aux|}\",\n      \"draft\",\n      \"final\",\n      \"export\",\n      \"Export\",\n      \"pgf\",\n      \"PGF\",\n      \"minimal\",\n      \"etex\",\n      \"calc\",\n      \"pgfmath\",\n      \"defaultunit=${1:unit}\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"xetex\",\n      \"dvipdfm\",\n      \"dvipdfmx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gincltex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gindex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"indexitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"indexnoitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexnoitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"indexsubitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexsubitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"indexsubsubitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexsubsubitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"indexitemhang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"indexitemhang{${1:leftmargin1}}{${2:leftmargin2}}{${3:after}}{${4:separator}}{${5:entry}}{${6:locator}}\"\n      }\n    },\n    {\n      \"name\": \"indexpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexpostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexskip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"indexheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexrangesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexpagessep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexspecial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addindexitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addindexitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"addindexsubitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addindexsubitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"addindexsubsubitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addindexsubsubitem{${1:entry}}{${2:locator}}\"\n      }\n    },\n    {\n      \"name\": \"addindexheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addindexheading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addindexskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addindexskip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"indexflushitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindexsubitems\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gitfile-info.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gfiGetDay\"\n    },\n    {\n      \"name\": \"gfiGetMonth\"\n    },\n    {\n      \"name\": \"gfiGetYear\"\n    },\n    {\n      \"name\": \"gfiGetHour\"\n    },\n    {\n      \"name\": \"gfiGetMin\"\n    },\n    {\n      \"name\": \"gfiGetAuthorName\"\n    },\n    {\n      \"name\": \"gfiGetAuthorMail\"\n    },\n    {\n      \"name\": \"gfiGetDate\"\n    },\n    {\n      \"name\": \"gfiGetCommit\"\n    },\n    {\n      \"name\": \"gfiGetCommitAbr\"\n    },\n    {\n      \"name\": \"gfiInfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gfiInfo[${1:hash length}]\"\n      }\n    },\n    {\n      \"name\": \"gfiInfo\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"gfiInfo[${1:hash length}][${2:date format}]\"\n      }\n    },\n    {\n      \"name\": \"gfiInfo\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"gfiInfo[${1:hash length}][${2:date format}][${3:author format}]\"\n      }\n    },\n    {\n      \"name\": \"gfiInfo\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"gfiInfo[${1:hash length}][${2:date format}][${3:author format}][${4:tcolorbox}]\"\n      }\n    },\n    {\n      \"name\": \"gfiInclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfiInclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gfiInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfiInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gfiSetDate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gfiSetDate{${1:day}}{${2:month}}{${3:year}}{${4:hour}}{${5:minute}}{${6:long form}}\"\n      }\n    },\n    {\n      \"name\": \"gfiSetAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gfiSetAuthor{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"gfiSetCommit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gfiSetCommit{${1:hash}}{${2:hash-abr}}\"\n      }\n    },\n    {\n      \"name\": \"gfiCurrentConfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gfiInitInc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gfiInitInc{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gfiInitJob\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gfiInfoBox\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gitinfo-lua.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gitdirectory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gitdirectory{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"gitunsetdirectory\"\n    },\n    {\n      \"name\": \"gitversion\"\n    },\n    {\n      \"name\": \"ifgitdirty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifgitdirty{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"gitdate\"\n    },\n    {\n      \"name\": \"gitauthor\"\n    },\n    {\n      \"name\": \"gitemail\"\n    },\n    {\n      \"name\": \"dogitauthors\"\n    },\n    {\n      \"name\": \"dogitauthors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dogitauthors[${1:conjunction}]\"\n      }\n    },\n    {\n      \"name\": \"forgitauthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forgitauthors{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"forgitauthors\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"forgitauthors[${2:conjunction}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"gitcommit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gitcommit{${1:csname}}{${2:revision}}\"\n      }\n    },\n    {\n      \"name\": \"gitcommit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gitcommit[${3:format}]{${1:csname}}{${2:revision}}\"\n      }\n    },\n    {\n      \"name\": \"forgitcommit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forgitcommit{${1:csname}}{${2:rev-spec}}\"\n      }\n    },\n    {\n      \"name\": \"forgitcommit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forgitcommit[${3:format}]{${1:csname}}{${2:rev-spec}}\"\n      }\n    },\n    {\n      \"name\": \"forgittag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forgittag{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"forgittag\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"forgittag[${2:format}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"forgittagseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forgittagseq{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"gittag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gittag{${1:csname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"gittag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gittag[${3:format}]{${1:csname}}{${2:tag}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gitinfo-lua#c\": [\n      \"contrib\",\n      \"alpha\",\n      \"authors\",\n      \"titlepage\",\n      \"rootdir\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gitinfo-lua#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gitinfo2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gitReferences\"\n    },\n    {\n      \"name\": \"gitBranch\"\n    },\n    {\n      \"name\": \"gitDirty\"\n    },\n    {\n      \"name\": \"gitAbbrevHash\"\n    },\n    {\n      \"name\": \"gitHash\"\n    },\n    {\n      \"name\": \"gitAuthorName\"\n    },\n    {\n      \"name\": \"gitAuthorEmail\"\n    },\n    {\n      \"name\": \"gitAuthorDate\"\n    },\n    {\n      \"name\": \"gitAuthorIsoDate\"\n    },\n    {\n      \"name\": \"gitAuthorUnixDate\"\n    },\n    {\n      \"name\": \"gitCommitterName\"\n    },\n    {\n      \"name\": \"gitCommitterEmail\"\n    },\n    {\n      \"name\": \"gitCommitterDate\"\n    },\n    {\n      \"name\": \"gitCommitterIsoDate\"\n    },\n    {\n      \"name\": \"gitCommitterUnixDate\"\n    },\n    {\n      \"name\": \"gitVtag\"\n    },\n    {\n      \"name\": \"gitVtags\"\n    },\n    {\n      \"name\": \"gitVtagn\"\n    },\n    {\n      \"name\": \"gitFirstTagDescribe\"\n    },\n    {\n      \"name\": \"gitRel\"\n    },\n    {\n      \"name\": \"gitRels\"\n    },\n    {\n      \"name\": \"gitReln\"\n    },\n    {\n      \"name\": \"gitRoff\"\n    },\n    {\n      \"name\": \"gitTags\"\n    },\n    {\n      \"name\": \"gitDescribe\"\n    },\n    {\n      \"name\": \"gitMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gitMarkFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gitMarkPref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gitWrapEmail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gitWrapEmail{${1:email}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gitinfo2#c\": [\n      \"local\",\n      \"grumpy\",\n      \"missing=${1:text}\",\n      \"notags=${1:text}\",\n      \"dirty=${1:text}\",\n      \"maxdepth=${1:integer}\",\n      \"mark\",\n      \"markifdraft\",\n      \"markifdirty\",\n      \"marknotags\",\n      \"raisemark=\",\n      \"pcount\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gitinfo2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gitlog.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printGitLog\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gitlog#c\": [\n      \"title=${1:log title}\",\n      \"date\",\n      \"nodate\",\n      \"write\",\n      \"nowrite\",\n      \"bibfile=${1:file name}\",\n      \"github=${1:repository path}\",\n      \"bitbucket=${1:repository path}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gitlog#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gitstatus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"watermark\"\n    },\n    {\n      \"name\": \"xwatermark\",\n      \"if\": \"watermark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gitdir\"\n    },\n    {\n      \"name\": \"gitcommit\"\n    },\n    {\n      \"name\": \"gitbranch\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gitstatus#c\": [\n      \"gitdir=${1:file path}\",\n      \"watermark\",\n      \"nowatermark\",\n      \"novariables\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gitstatus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gitver.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gitVer\"\n    },\n    {\n      \"name\": \"versionBox\"\n    },\n    {\n      \"name\": \"getenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getenv{${1:env-var}}\"\n      }\n    },\n    {\n      \"name\": \"getenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getenv[${2:cmd}]{${1:env-var}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gitver#c\": [\n      \"noheader\",\n      \"nopdfinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gitver#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/globalvals.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"defVal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defVal{${1:key%special}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"useVal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useVal{${1:key%special}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glosmathtools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    },\n    {\n      \"name\": \"glossaries-compatible-207\",\n      \"if\": \"compatible-2.07\"\n    },\n    {\n      \"name\": \"glossaries-compatible-207\",\n      \"if\": \"compatible-2.07=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qtmark\",\n      \"if\": \"qtmarkupright\"\n    },\n    {\n      \"name\": \"sbu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbu{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newglosentrymath\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newglosentrymath{${1:label}}{${2:math sym%formula}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\newglosentrymath#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"glscatnamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscatnamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsac[${2:accent-type%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsub{${1:label}}{${2:sub-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsub[${3:accent-type%keyvals}]{${1:label}}{${2:sub-label}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsubs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsubs{${1:label}}{${2:sub-label1}}{${3:sub-label2}}\"\n      }\n    },\n    {\n      \"name\": \"glsubs\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"glsubs[${4:accent type1%keyvals}]{${1:label}}{${2:sub-label1}}{${3:sub-label2}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsubs\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"glsubs[${4:accent type1%keyvals}][${5:accent-type2}]{${1:label}}{${2:sub-label1}}{${3:sub-label2}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsvi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsvi{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glsvi\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsvi[${3:accent-type1%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsvi\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"glsvi[${3:accent-type1%keyvals}][${4:accent-type2}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsvisub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsvisub{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glsvisub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsvisub[${3:accent type%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glslang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslang{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslang\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glslang[${2:language%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\glslang#c,\\\\setacronymlang#c,\\\\begin{acronymlang}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setacronymlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setacronymlang{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\glslang#c,\\\\setacronymlang#c,\\\\begin{acronymlang}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsentrydescsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Glsentrydescsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdescsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Glsdescsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GLSdescsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glosstyledesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosstyledesc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentryddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrybar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentryhat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentryvec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrytilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowtarget\",\n      \"if\": \"debug=showtargets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetouter\",\n      \"if\": \"debug=showtargets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetouter{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetfont\",\n      \"if\": \"debug=showtargets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowaccsupp\",\n      \"if\": \"debug=showaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsshowaccsupp{${1:options}}{${2:tag}}{${3:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{term{\",\n        \"snippet\": \"newterm{term{\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"acronymlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\glslang#c,\\\\setacronymlang#c,\\\\begin{acronymlang}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/glosmathtools#c\": [\n      \"qtmarkupright\",\n      \"singlelineskip\",\n      \"nodefop\",\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|standard,def,use,none|}\",\n      \"order=${1|word,letter|}\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"automake=${1|false,true,immediate|}\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"nomain\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronym\",\n      \"acronyms\",\n      \"acronymlists={${1:value}}\",\n      \"shortcuts\",\n      \"compatible-2.07\",\n      \"compatible-3.07\",\n      \"kernelglossredefs={${1:value}}\"\n    ],\n    \"\\\\newglosentrymath#c\": [\n      \"description=\",\n      \"parent=\",\n      \"descriptionplural=\",\n      \"text=\",\n      \"first=\",\n      \"plural=\",\n      \"firstplural=\",\n      \"symbol=\",\n      \"symbolplural=\",\n      \"sort=\",\n      \"type=\",\n      \"user1=\",\n      \"user2=\",\n      \"user3=\",\n      \"user4=\",\n      \"user5=\",\n      \"user6=\",\n      \"nonumberlist\",\n      \"see=\",\n      \"descseclang=\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\": [\n      \"descseclang=\"\n    ],\n    \"\\\\glsac#c,\\\\glsub#c,\\\\glsubs#c,\\\\glsvi#c,\": [\n      \"dot\",\n      \"ddot\",\n      \"bar\",\n      \"hat\",\n      \"vec\",\n      \"tilde\"\n    ],\n    \"\\\\glslang#c,\\\\setacronymlang#c,\\\\begin{acronymlang}#c\": [\n      \"L1\",\n      \"L2\",\n      \"L1L2\",\n      \"L2L1\"\n    ],\n    \"\\\\setglossarystyle#c\": [\n      \"nomencl\",\n      \"nomencl-L1\",\n      \"nomencl-L2\",\n      \"nomencl-L1L2\",\n      \"nomencl-L2L1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glosmathtools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossaries-accsupp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{term{\",\n        \"snippet\": \"newterm{term{\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:style name list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary-type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:codepage}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:H-prefix}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:name}}{${2:xindy code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsdefaultshortaccess\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdefaultshortaccess{${1:long}}{${2:short}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsaccsupp{${1:replacement}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"xglsaccsupp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xglsaccsupp{${1:replacement}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsfieldaccsupp{${1:replacement}}{${2:content}}{${3:field}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"xglsfieldaccsupp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xglsfieldaccsupp{${1:replacement}}{${2:content}}{${3:field}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsshortaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsshortaccsupp{${1:replacement}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsshortplaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsshortplaccsupp{${1:replacement}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessibility\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessibility{${1:tag}}{${2:value}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessibility\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"glsaccessibility[${4:options}]{${1:tag}}{${2:value}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrytextaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrytextaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirstaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirstaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrypluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrypluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirstpluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirstpluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbolaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbolaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbolpluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbolpluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydescaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydescaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydescpluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydescpluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshortaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshortaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshortpluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshortpluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrylongaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylongaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrylongpluralaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylongpluralaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriiaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriiaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriiiaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriiiaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserivaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserivaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuservaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuservaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserviaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserviaccess{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnameaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsnameaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstextaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstextaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glspluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsfirstaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstpluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsfirstpluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbolaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glssymbolaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbolpluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glssymbolpluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdescriptionaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdescriptionaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdescriptionpluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdescriptionpluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsshortaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsshortaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsshortpluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsshortpluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongpluralaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongpluralaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuseriaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriiaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuseriiaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriiiaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuseriiiaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserivaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuserivaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuservaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuservaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserviaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuserviaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsaccessdisplay{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"accsuppglossaryentryfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"accsuppglossaryentryfield{${1:label}}{${2:name}}{${3:description}}{${4:symbol}}{${5:page-list}}\"\n      }\n    },\n    {\n      \"name\": \"accsuppglossarysubentryfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"accsuppglossarysubentryfield{${1:level}}{${2:label}}{${3:name}}{${4:description}}{${5:symbol}}{${6:page-list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/glossaries-accsupp#c\": [\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"languages=${1:language}\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindy={${1:options}}\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"acronyms\",\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronymlists={${1:label-list}}\",\n      \"shortcuts\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs=${1|false,true,nowarn|}\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\": [\n      \"access=${1:text}\",\n      \"textaccess=${1:text}\",\n      \"firstaccess=${1:text}\",\n      \"pluralaccess=${1:text}\",\n      \"firstpluralaccess=${1:text}\",\n      \"symbolaccess=${1:text}\",\n      \"symbolpluralaccess=${1:text}\",\n      \"descriptionaccess=${1:text}\",\n      \"descriptionpluralaccess=${1:text}\",\n      \"longaccess=${1:text}\",\n      \"shortaccess=${1:text}\",\n      \"longpluralaccess=${1:text}\",\n      \"shortpluralaccess=${1:text}\",\n      \"user1access=${1:text}\",\n      \"user2access=${1:text}\",\n      \"user3access=${1:text}\",\n      \"user4access=${1:text}\",\n      \"user5access=${1:text}\",\n      \"user6access=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries-accsupp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossaries-extra-bib2gls.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dgls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dgls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dgls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dGls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dGls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dGls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dGls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dGls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGLS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dGLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dGLS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dGLS[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dGLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dGLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dglspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dglspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dglspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGlspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dGlspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dGlspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dGlspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dGlspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dGlspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGLSpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dGLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dGLSpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dGLSpl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"dGLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"dGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"dGLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dglslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dglslink{${1:label}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"dglslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dglslink[${3:options%keyvals}]{${1:label}}{${2:link text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGlslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dGlslink{${1:label}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"dGlslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dGlslink[${3:options%keyvals}]{${1:label}}{${2:link text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dglsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dglsdisp{${1:label}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"dglsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dglsdisp[${3:options%keyvals}]{${1:label}}{${2:link text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGlsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dGlsdisp{${1:label}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"dGlsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dGlsdisp[${3:options%keyvals}]{${1:label}}{${2:link text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dglsfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dglsfield{${1:label}}{${2:field-label}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"dglsfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dglsfield[${4:options%keyvals}]{${1:label}}{${2:field-label}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGlsfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dGlsfield{${1:label}}{${2:field-label}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"dGlsfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dGlsfield[${4:options%keyvals}]{${1:label}}{${2:field-label}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dGLSfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dGLSfield{${1:label}}{${2:field-label}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"dGLSfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dGLSfield[${4:options%keyvals}]{${1:label}}{${2:field-label}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newdglsfield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdglsfield{${1:field}}{${2:cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newdglsfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newdglsfield[${3:default-options%keyvals}]{${1:field}}{${2:cs%cmd}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newdglsfieldlike\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newdglsfieldlike{${1:field}}{${2:cs%cmd}}{${3:Cs%cmd}}{${4:CS%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newdglsfieldlike\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newdglsfieldlike[${5:default-options%keyvals}]{${1:field}}{${2:cs%cmd}}{${3:Cs%cmd}}{${4:CS%cmd}}\",\n        \"keys\": [\n          \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustedname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrmultientryadjustedname{${1:sublist1}}{${2:name}}{${3:sublist2}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrmultientryadjustedname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrmultientryadjustedname{${1:sublist1}}{${2:name}}{${3:sublist2}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrmultientryadjustedname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrmultientryadjustedname{${1:sublist1}}{${2:name}}{${3:sublist2}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrmultientryadjustedname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrmultientryadjustedname{${1:sublist1}}{${2:name}}{${3:sublist2}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustednamesep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrmultientryadjustednamesep{${1:pre label}}{${2:post label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustednamepresep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrmultientryadjustednamepresep{${1:pre label}}{${2:post label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustednamepostsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrmultientryadjustednamepostsep{${1:pre label}}{${2:post label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustednamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultientryadjustednamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrmultientryadjustednamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrmultientryadjustednamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrmultientryadjustednamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrmultientryadjustednamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrmultientryadjustednamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrmultientryadjustednamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultientryadjustednameother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultientryadjustednameother{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrmultientryadjustednameother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrmultientryadjustednameother{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrmultientryadjustednameother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrmultientryadjustednameother{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrmultientryadjustednameother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrmultientryadjustednameother{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrprovidecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrprovidecommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrprovidecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"glsxtrprovidecommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrprovidecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"glsxtrprovidecommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsrenewcommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"glsrenewcommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsrenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"glsrenewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIndexCounterLink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrIndexCounterLink{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrDualBackLink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrDualBackLink{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrDualField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrSetWidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrSetWidest{${1:type}}{${2:level}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrSetWidestFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrSetWidestFallback{${1:max depth}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdisplaysupploc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrdisplaysupploc{${1:prefix}}{${2:counter}}{${3:format}}{${4:src}}{${5:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultisupplocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrmultisupplocation{${1:location}}{${2:src}}{${3:format}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdisplaylocnameref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"glsxtrdisplaylocnameref{${1:prefix}}{${2:counter}}{${3:format}}{${4:location}}{${5:title%text}}{${6:href}}{${7:hcounter}}{${8:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnamereflink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrnamereflink{${1:format}}{${2:title%text}}{${3:target}}{${4:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmtinternalnameref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfmtinternalnameref{${1:target}}{${2:format}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmtexternalnameref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrfmtexternalnameref{${1:target}}{${2:format}}{${3:title%text}}{${4:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnameloclink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"glsxtrnameloclink{${1:prefix}}{${2:counter}}{${3:format}}{${4:location}}{${5:title%text}}{${6:file}}\"\n      }\n    },\n    {\n      \"name\": \"glshex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glscapturedgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrResourceInitEscSequences\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrIfHasNonZeroChildCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrIfHasNonZeroChildCount{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrBibTeXEntryAliases\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrProvideBibTeXFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcontrolrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrspacerules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrnonprintablerules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcombiningdiacriticrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcombiningdiacriticIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcombiningdiacriticIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcombiningdiacriticIIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcombiningdiacriticIVrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrhyphenrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcurrencyrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdigitrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrBasicDigitrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrSubScriptDigitrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrSuperScriptDigitrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfractionrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinIIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinIVrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinVrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinVIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinVIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinVIIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinEszettSs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinEszettSz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinEth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinThorn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinAELigature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinOELigature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinOslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinLslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinWynn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinInsularG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinSchwa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrLatinAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathGreekIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathGreekIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathUpGreekIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathUpGreekIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicGreekIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicGreekIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicUpperGreekIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicUpperGreekIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicLowerGreekIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicLowerGreekIIrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicPartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicNabla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMathItalicZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpDigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrUpZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfTeXParserLib\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfTeXParserLib{${1:TeX-parser-lib-code}}{${2:TeX-code}}\"\n      }\n    },\n    {\n      \"name\": \"glshashchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrrecentanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlocationanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtractualanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsetactualanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetactualanchor{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlednamereflink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrtitlednamereflink{${1:format}}{${2:location}}{${3:title%text}}{${4:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrequationlocfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrequationlocfmt{${1:location}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrwrglossarylocfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrwrglossarylocfmt{${1:location}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtraddlabelprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtraddlabelprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrprependlabelprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrprependlabelprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrclearlabelprefixes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrifinlabelprefixlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifinlabelprefixlist{${1:prefix}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifGlsXtrPrefixLabelFallbackLast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrPrefixLabelFallbackLasttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrPrefixLabelFallbackLastfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dglsfieldcurrentfieldlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dglsfieldfallbackfieldlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dglsfieldactualfieldlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrIgnorableRules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralInitRules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncmarksrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncaccentsrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncquoterules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncbracketrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgeneralpuncsignrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinAtoMrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinNtoZrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinAtoGrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinHtoMrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinNtoSrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrGeneralLatinTtoZrules\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dgls#c,\\\\dGls#c,\\\\dGLS#c,\\\\dglspl#c,\\\\dGlspl#c,\\\\dGLSpl#c,\\\\dglslink#c,\\\\dGlslink#c,\\\\dglsdisp#c,\\\\dGlsdisp#c,\\\\dglsfield#c,\\\\dGlsfield#c,\\\\dGLSfield#c,\\\\newdglsfield#c,\\\\newdglsfieldlike#c\": [\n      \"hyperoutside\",\n      \"textformat=${1:csname}\",\n      \"innertextformat=${1:csname}\",\n      \"postunset=${1|global,local,none|}\",\n      \"prereset\",\n      \"prereset=${1|global,local,none|}\",\n      \"preunset=${1|global,local,none|}\",\n      \"noindex\",\n      \"wrgloss=${1|before,after|}\",\n      \"thevalue=${1:location}\",\n      \"theHvalue=${1:the-H-value}\",\n      \"prefix=${1:link-prefix}\",\n      \"hyper\",\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossaries-extra-stylemods.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossary-inline\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-list\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-tree\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-mcols\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-long\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-longragged\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-longbooktabs\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-super\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-superragged\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-bookindex\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-longextra\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-topic\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-table\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"glossary-inline\",\n      \"if\": \"inline\"\n    },\n    {\n      \"name\": \"glossary-list\",\n      \"if\": \"list\"\n    },\n    {\n      \"name\": \"glossary-tree\",\n      \"if\": \"tree\"\n    },\n    {\n      \"name\": \"glossary-mcols\",\n      \"if\": \"mcols\"\n    },\n    {\n      \"name\": \"glossary-long\",\n      \"if\": \"long\"\n    },\n    {\n      \"name\": \"glossary-longragged\",\n      \"if\": \"longragged\"\n    },\n    {\n      \"name\": \"glossary-longbooktabs\",\n      \"if\": \"longbooktabs\"\n    },\n    {\n      \"name\": \"glossary-super\",\n      \"if\": \"super\"\n    },\n    {\n      \"name\": \"glossary-superragged\",\n      \"if\": \"superragged\"\n    },\n    {\n      \"name\": \"glossary-bookindex\",\n      \"if\": \"bookindex\"\n    },\n    {\n      \"name\": \"glossary-longextra\",\n      \"if\": \"longextra\"\n    },\n    {\n      \"name\": \"glossary-topic\",\n      \"if\": \"topic\"\n    },\n    {\n      \"name\": \"glossary-table\",\n      \"if\": \"table\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsxtrprelocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistprelocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistchildprelocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslistdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslistitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaltlistitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaltlistitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslistgroupheaderitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslistgroupheaderitem{${1:group-label}}{${2:header code}}\"\n      }\n    },\n    {\n      \"name\": \"glslistgroupafterheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistchildpostlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistgroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreedefaultnamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreedefaultnamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstreegroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreegroupheaderskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreePreHeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreePreHeader{${1:label}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsalttreepredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsalttreechildpredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreeprelocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreechildprelocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreenonamedesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreenonamedesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreenonamesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreenonamesymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreenonamechilddesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreenonamechilddesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreedesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreedesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreesymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreechilddesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreechilddesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreenonameDescLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreenonameDescLoc{${1:label}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstreenonameChildDescLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreenonameChildDescLoc{${1:label}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstreechildsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreechildsymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstreeDescLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreeDescLoc{${1:label}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstreeChildDescLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreeChildDescLoc{${1:label}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstreeNoDescSymbolPreLocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreesubgroupitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glstreesubgroupitem{${1:prev-group-level}}{${2:level}}{${3:parent-label}}{${4:group-label}}{${5:group-title}}\"\n      }\n    },\n    {\n      \"name\": \"gglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gglssetwidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gglssetwidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eglssetwidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eglssetwidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xglssetwidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xglssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xglssetwidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsupdatewidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsupdatewidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gglsupdatewidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gglsupdatewidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eglsupdatewidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eglsupdatewidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xglsupdatewidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xglsupdatewidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xglsupdatewidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsgetwidestname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgetwidestsubname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgetwidestsubname{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestTopLevelName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestTopLevelName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestTopLevelName[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedTopLevelName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestUsedTopLevelName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestUsedTopLevelName[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestUsedAnyName[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestAnyName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestAnyName[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedLevelTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestUsedLevelTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestUsedLevelTwo[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestLevelTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsFindWidestLevelTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsFindWidestLevelTwo[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameSymbol{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameSymbol[${2:glossary list}]{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsFindWidestAnyNameSymbol{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsFindWidestAnyNameSymbol[${2:glossary list}]{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameSymbolLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameSymbolLocation{${1:sym register%cmd}}{${2:loc register}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameSymbolLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameSymbolLocation[${3:glossary list}]{${1:sym register%cmd}}{${2:loc register}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameSymbolLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsFindWidestAnyNameSymbolLocation{${1:sym register%cmd}}{${2:loc register}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameSymbolLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsFindWidestAnyNameSymbolLocation[${3:glossary list}]{${1:sym register%cmd}}{${2:loc register}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameLocation{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestUsedAnyNameLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsFindWidestUsedAnyNameLocation[${2:glossary list}]{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsFindWidestAnyNameLocation{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsFindWidestAnyNameLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsFindWidestAnyNameLocation[${2:glossary list}]{${1:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtralttreeSymbolDescLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtralttreeSymbolDescLocation{${1:label}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtralttreeSubSymbolDescLocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtralttreeSubSymbolDescLocation{${1:label}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtralttreeInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrAltTreeIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrAltTreePar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrAltTreeSetHangIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrAltTreeSetSubHangIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrComputeTreeIndent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrComputeTreeIndent{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrComputeTreeSubIndent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrComputeTreeSubIndent{${1:level}}{${2:label}}{${3:register%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtreechildpredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrtreepredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrtreetopindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsindexingsetting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsindexingsetting{${1:prev-group-level}}{${2:level}}{${3:parent-label}}{${4:group-label}}{${5:group-title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/glossaries-extra-stylemods#c\": [\n      \"all\",\n      \"inline\",\n      \"list\",\n      \"tree\",\n      \"mcols\",\n      \"long\",\n      \"longragged\",\n      \"longbooktabs\",\n      \"super\",\n      \"superragged\",\n      \"bookindex\",\n      \"longextra\",\n      \"topic\",\n      \"table\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries-extra-stylemods#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossaries-extra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=default\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-inline\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-mcols\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-longragged\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-longbooktabs\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-superragged\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-bookindex\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-longextra\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-topic\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossary-table\",\n      \"if\": \"stylemods=all\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=inline\"\n    },\n    {\n      \"name\": \"glossary-inline\",\n      \"if\": \"stylemods=inline\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=list\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=tree\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=mcols\"\n    },\n    {\n      \"name\": \"glossary-mcols\",\n      \"if\": \"stylemods=mcols\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=long\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=longragged\"\n    },\n    {\n      \"name\": \"glossary-longragged\",\n      \"if\": \"stylemods=longragged\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=longbooktabs\"\n    },\n    {\n      \"name\": \"glossary-longbooktabs\",\n      \"if\": \"stylemods=longbooktabs\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=super\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=superragged\"\n    },\n    {\n      \"name\": \"glossary-superragged\",\n      \"if\": \"stylemods=superragged\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=bookindex\"\n    },\n    {\n      \"name\": \"glossary-bookindex\",\n      \"if\": \"stylemods=bookindex\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=longextra\"\n    },\n    {\n      \"name\": \"glossary-longextra\",\n      \"if\": \"stylemods=longextra\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=topic\"\n    },\n    {\n      \"name\": \"glossary-topic\",\n      \"if\": \"stylemods=topic\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\",\n      \"if\": \"stylemods=table\"\n    },\n    {\n      \"name\": \"glossary-table\",\n      \"if\": \"stylemods=table\"\n    },\n    {\n      \"name\": \"glossaries-prefix\",\n      \"if\": \"prefix\"\n    },\n    {\n      \"name\": \"glossaries-accsupp\",\n      \"if\": \"accsupp\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\",\n      \"if\": \"record\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\",\n      \"if\": \"record=only\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\",\n      \"if\": \"record=nameref\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glossariesextrasetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossariesextrasetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/glossaries-extra#c,\\\\glossariesextrasetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printabbreviations\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"printabbreviations\",\n      \"if\": \"abbreviations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printabbreviations[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtabbreviations\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtabbreviations\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtabbreviations[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abbreviationsname\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewsymbol{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewsymbol[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"if\": \"symbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"if\": \"symbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtsymbols[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescsymbol\",\n      \"if\": \"symbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrnewnumber\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewnumber{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewnumber\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewnumber[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtnumbers\",\n      \"if\": \"numbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtnumbers\",\n      \"if\": \"numbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtnumbers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescnumber\",\n      \"if\": \"numbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printunsrtindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescindex\",\n      \"if\": \"index\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\",\n          \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pglsxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pglsxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pglsxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pglsxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pglsxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pglsxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshort\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLSxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLSxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLSxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pglsxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pglsxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pglsxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pglsxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pglsxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pglsxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshortpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLSxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLSxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLSxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pglsxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pglsxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pglsxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pglsxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pglsxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pglsxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlong\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLSxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLSxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLSxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pglsxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pglsxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pglsxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pglsxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pglsxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pglsxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlongpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLSxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLSxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSxtrlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLSxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglsfmtshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsfmtshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSfmtshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsfmtshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsfmtshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSfmtshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsfmtlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsfmtlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSfmtlong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglsfmtlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglsfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsfmtlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSfmtlongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrtitleshort\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrtitleshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrtitleshortpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrtitleshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrtitlelong\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrtitlelong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglsxtrtitlelongpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglsxtrtitlelongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mpgls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpgls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mpgls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpgls[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpgls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mpgls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mpgls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mpgls[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpglspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpglspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mpglspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpglspl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpglspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mpglspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mpglspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mpglspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpglsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpglsmainpl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mpglsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mpglsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpgls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mpgls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mpgls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mpgls[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpgls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mpgls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mpgls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mpgls[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpglspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mpglspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mpglspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mpglspl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpglspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mpglspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mpglspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mpglspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mpglsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mpglsmainpl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mpglsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mpglsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mpglsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGls\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGls[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGls\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGls[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGlspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGlspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGlspl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGlspl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGlspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGlspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGlspl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGlspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGlsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGlsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGlsmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGlsmainpl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGlsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGlsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGlsmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGlsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLS\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGLS{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGLS\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGLS[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLS\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGLS{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGLS\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGLS[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLSpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGLSpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGLSpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGLSpl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLSpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGLSpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGLSpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGLSpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLSmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGLSmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MPGLSmainpl\",\n      \"if\": \"prefix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MPGLSmainpl[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPGLSmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MPGLSmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MPGLSmainpl\",\n      \"if\": \"prefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MPGLSmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACS[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACS[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACSP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACSP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACSP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACSP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACSP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACSP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACSP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACSP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACL[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACL{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACL[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACLP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACLP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACLP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACLP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACLP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACLP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACLP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACLP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACF[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACF{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACF[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACFP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACFP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACFP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACFP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AC{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AC[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AC{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AC[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ACP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ab{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ab[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ab{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ab[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"abp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"abp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"as{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"as[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"as{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"as[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"asp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"asp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"asp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"al{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"al[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"al{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"al[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"alp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"alp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"af{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"af[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"af{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"af[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"afp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"afp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"afp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ab{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ab[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ab{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ab[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Abp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Abp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Abp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Abp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"As{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"As[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"As{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"As[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Asp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Asp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Asp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Asp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Al{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Al[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Al{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Al\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Al[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Alp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Alp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Alp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Alp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Alp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Af{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Af[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Af{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Af\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Af[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Afp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Afp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Afp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Afp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Afp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AB{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AB[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AB{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AB[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ABP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ABP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ABP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ABP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ABP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ABP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ABP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ABP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AS[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AS[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ASP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ASP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ASP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ASP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ASP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ASP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ASP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ASP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AL[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AL{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AL[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ALP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ALP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ALP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ALP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ALP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ALP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ALP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ALP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AF[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AF{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AF[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AFP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AFP[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"AFP{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"AFP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"AFP[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbreviations\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbreviations\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:style name list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary-type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:codepage}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:H-prefix}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:name}}{${2:xindy code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrundeftag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrundefaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrundefaction{${1:message}}{${2:additional help}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetbibglsaux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetbibglsaux{${1:basename}}\"\n      }\n    },\n    {\n      \"name\": \"thewrglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrwrglossmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrwrglosscountermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrwrglosscountermark{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshowtargetouter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrshowtargetouter{${1:target-name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshowtargetinner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrshowtargetinner{${1:target-name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetinnersymleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetinnersymleft{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshowtargetsymbolleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowtargetinnersymright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetinnersymright{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshowtargetsymbolright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longnewglossaryentry*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longnewglossaryentry*{${1:label}}{${2:keyvals}}{${3:long description}}\",\n        \"keys\": [\n          \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\",\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlongdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrprovidestoragekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrprovidestoragekey{${1:key%plain}}{${2:default value}}{${3:no link cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifkeydefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifkeydefined{${1:key%plain}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtraliashook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtraliashook{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdeffield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrdeffield{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtredeffield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtredeffield{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrapptocsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrapptocsvfield{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldlistadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfieldlistadd{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldlistgadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfieldlistgadd{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldlisteadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfieldlisteadd{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldlistxadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfieldlistxadd{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetfieldifexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrsetfieldifexists{${1:label}}{${2:field}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrSetField{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"gGlsXtrSetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gGlsXtrSetField{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"eGlsXtrSetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eGlsXtrSetField{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"xGlsXtrSetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xGlsXtrSetField{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrLetField{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"csGlsXtrLetField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"csGlsXtrLetField{${1:label}}{${2:field}}{${3:csname}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLetFieldToField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrLetFieldToField{${1:label1%ref}}{${2:field1}}{${3:label2%ref}}{${4:field2}}\"\n      }\n    },\n    {\n      \"name\": \"newabbreviation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbreviation{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbreviation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbreviation[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrabbrvpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrabbrvtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrnewabbrevpresetkeyhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrnewabbrevpresetkeyhook{${1:options}}{${2:label}}{${3:short}}\"\n      }\n    },\n    {\n      \"name\": \"newabbreviationhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsxtrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsxtrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsxtrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsxtrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSxtrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSxtrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSxtrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetlongfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetlongfirstuse{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetupfulldefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfullsaveinsert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfullsaveinsert{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableInitialTagging\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrEnableInitialTagging{${1:categories}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableInitialTagging*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrEnableInitialTagging*{${1:categories}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtagfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtagfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setabbreviationstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setabbreviationstyle{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setabbreviationstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setabbreviationstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setabbreviationstyle[${2:category}]{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setabbreviationstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifglsxtrinsertinside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinsertinsidetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinsertinsidefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrparen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfullsep{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsabbrvdefaultfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvdefaultfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvdefaultfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvdefaultfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdefaultrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrdefaultrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslongdefaultfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongdefaultfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlongdefaultfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlongdefaultfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongshortdescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongshortdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshortlongname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshortlongdescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshortlongdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtruserfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtruserparensep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtruserfieldfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtruserfieldfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsabbrvuserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvuserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvuserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvuserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusersuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslonguserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslonguserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlonguserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlonguserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsabbrvscuserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvscuserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvscuserfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvscuserfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrscuserrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrscuserrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrscusersuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsuserdescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuserdescription{${1:long}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruserparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtruserparen{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtruserparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtruserparen{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongshortuserdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongshortscusername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongshortscuserdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshortlonguserdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtruserlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtruserlongshortformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtruserlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtruserlongshortformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtruserlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtruserlongshortformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruserlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtruserlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtruserlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtruserlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtruserlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtruserlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusershortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrusershortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrusershortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrusershortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrusershortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrusershortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusershortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrusershortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrusershortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrusershortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrusershortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrusershortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusershortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrusershortformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusershortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrusershortplformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrusershortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrusershortformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrusershortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrusershortplformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostusershortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpostusershortformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruserlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtruserlongformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtruserlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtruserlongformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruserlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtruserlongplformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtruserlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtruserlongplformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostuserlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpostuserlongformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfootnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfootnotedescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfootnotedescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongfootnotefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongfootnotefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlongfootnotefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlongfootnotefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrabbrvfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrabbrvfootnote{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfootnotelongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfootnotelongformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfootnotelongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfootnotelongplformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostfootnotelongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpostfootnotelongformat{${1:label}}{${2:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortnolongname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshortdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongnoshortdescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlongnoshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsabbrvhyphenfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvhyphenfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvhyphenfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvhyphenfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslonghyphenfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslonghyphenfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlonghyphenfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlonghyphenfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrhyphensuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlonghyphenshortsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrshorthyphenlongsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlonghyphennoshortsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlonghyphennoshortdescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrlonghyphenshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrlonghyphenshort{${1:label}}{${2:long}}{${3:short}}{${4:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlonghyphenshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrlonghyphenshort{${1:label}}{${2:long}}{${3:short}}{${4:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlonghyphennoshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlonghyphennoshort{${1:label}}{${2:long}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlonghyphennoshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlonghyphennoshort{${1:label}}{${2:long}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlonghyphen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlonghyphen{${1:label}}{${2:long}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"xpglsxtrposthyphenshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrposthyphenshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrposthyphenshort{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrposthyphenshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrposthyphenshort{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrposthyphenshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrposthyphenshortpl{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrposthyphenshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrposthyphenshortpl{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"xpglsxtrposthyphensubsequent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrposthyphensubsequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrposthyphensubsequent{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrposthyphensubsequent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrposthyphensubsequent{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshorthyphenlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrshorthyphenlong{${1:label}}{${2:long}}{${3:short}}{${4:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshorthyphenlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrshorthyphenlong{${1:label}}{${2:long}}{${3:short}}{${4:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshorthyphen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrshorthyphen{${1:label}}{${2:short}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"xpglsxtrposthyphenlong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrposthyphenlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrposthyphenlong{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrposthyphenlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrposthyphenlong{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrposthyphenlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrposthyphenlongpl{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrposthyphenlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrposthyphenlongpl{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsabbrvonlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvonlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvonlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvonlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslongonlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongonlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlongonlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlongonlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtronlysuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsabbrvsconlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvsconlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvsconlyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvsconlyfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsconlyrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsconlyrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsconlysuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtronlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtronlydescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtronlydescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsconlyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsconlydescname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsconlydescsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsabbrvscfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvscfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvscfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvscfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrscrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrscrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrscsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsabbrvsmfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvsmfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvsmfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvsmfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsmrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsmrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsmsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsabbrvemfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvemfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstabbrvemfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvemfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtremrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtremrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtremsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongemfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongemfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlongemfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlongemfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glssetabbrvfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetabbrvfmt{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuseabbrvfont{${1:style-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsuselongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsuselongfont{${1:style-name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrUseAbbrStyleSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrUseAbbrStyleSetup{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrUseAbbrStyleFmts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrUseAbbrStyleFmts{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"xpglsxtrpostabbrvfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostabbrvfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpostabbrvfootnote{${1:label}}{${2:fmt-code}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifhyphenstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifhyphenstart{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrWarnDeprecatedAbbrStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrWarnDeprecatedAbbrStyle{${1:old name}}{${2:new name}}\"\n      }\n    },\n    {\n      \"name\": \"newabbreviationstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbreviationstyle{${1:name%specialDef}}{${2:setup}}{${3:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"renewabbreviationstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewabbreviationstyle{${1:name}}{${2:setup}}{${3:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"letabbreviationstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letabbreviationstyle{${1:new-style%specialDef}}{${2:existing-style}}\"\n      }\n    },\n    {\n      \"name\": \"glscategorylabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrorgkeylist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrorgshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshortpltok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrorglong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongpltok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExtraCustomAbbreviationFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CustomAbbreviationFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrPostNewAbbreviation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsetcomplexstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsetcomplexstyle{${1:label}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstinnerfmtabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstinnerfmtabbrvfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstxpabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsfirstxpabbrvfont{${1:text}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsinnerfmtabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsinnerfmtabbrvfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxpabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxpabbrvfont{${1:text}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstinnerfmtlongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstinnerfmtlongfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstxplongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsfirstxplongfont{${1:text}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsinnerfmtlongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsinnerfmtlongfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxplongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxplongfont{${1:text}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAccSuppAbbrSetNoLongAttrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrAccSuppAbbrSetNoLongAttrs{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAccSuppAbbrSetNameLongAttrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrAccSuppAbbrSetNameLongAttrs{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAccSuppAbbrSetFirstLongAttrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrAccSuppAbbrSetFirstLongAttrs{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAccSuppAbbrSetTextShortAttrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrAccSuppAbbrSetTextShortAttrs{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAccSuppAbbrSetNameShortAttrs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrAccSuppAbbrSetNameShortAttrs{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"abbrvpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsfirstabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstabbrvfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsabbrvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabbrvfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrrevert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrrevert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstlongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstlongfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslongfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrfullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrfullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrfullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdefaultsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdefaultsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdefaultsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdefaultsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrdefaultsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrdefaultsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrdefaultsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrdefaultsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrdefaultsubsequentfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrdefaultsubsequentfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrdefaultsubsequentplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrdefaultsubsequentplfmt{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrinlinefullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrinlinefullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrinlinefullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrinlinefullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrinlinefullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrinlinefullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrinlinefullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrinlinefullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrinlinefullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrinlinefullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrinlinefullplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrinlinefullplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlongformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrlongformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlongformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlongplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrlongplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlongplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlongformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrlongformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlongformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlongplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrlongplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlongplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrshortplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrshortplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrshortplformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrshortformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrshortformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrshortformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrshortplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrshortplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortplformatgrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrshortplformatgrp{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlongshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsxtrlongshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongshortformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSxtrlongshortformat{${1:label}}{${2:insert}}{${3:format-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrlongshortplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrlongshortplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrshortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrshortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortlongformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrshortlongformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrshortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrshortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrshortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsxtrshortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrshortlongplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSxtrshortlongplformat{${1:label}}{${2:insert}}{${3:long-cs}}{${4:short-cs}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreAcronyms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeAcronymsAbbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrSetAltModifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrSetAltModifier{${1:token}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetStarModifier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetStarModifier{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetPlusModifier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetPlusModifier{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glslinkwrcontent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslinkwrcontent{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetDefaultGlsOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetDefaultGlsOpts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrAppToDefaultGlsOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrAppToDefaultGlsOpts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrPreToDefaultGlsOpts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrPreToDefaultGlsOpts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetDefaultNumberFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetDefaultNumberFormat{${1:encap}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrFmtDefaultOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslinkpresetkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddpresetkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddpostsetkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinitreunsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrchecknohyperfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrchecknohyperfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrinitwrgloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinithyperoutside\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupglslink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupglslink{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\",\n          \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupglsadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupglsadd{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupglsadd#c,\\\\glsaddeach#c,\\\\glsstartrange#c,\\\\glsendrange#c,\\\\GlsXtrAutoAddOnFormat#c\",\n          \"\\\\glsadd#c,\\\\glsaddall#c,\\\\setupglsadd#c,\\\\glsaddeach#c,\\\\glsstartrange#c,\\\\glsendrange#c,\\\\GlsXtrAutoAddOnFormat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifglsxtrinitwrgloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinitwrglosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinitwrglossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsupphypernumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsupphypernumber{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrRevertMarks\"\n    },\n    {\n      \"name\": \"glsxtrRevertTocMarks\"\n    },\n    {\n      \"name\": \"glsxtrtitleopts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspdffmtfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspdffmtfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspdffmtfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspdffmtfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmttext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmttext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmttext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtfirstpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfmtfirstpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtfirstpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfmtfirstpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtfirstpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfmtfirstpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifinmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifinmark{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifintoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifintoc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitleorpdforheading\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrtitleorpdforheading{${1:title%text}}{${2:PDF bookmarks%text}}{${3:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifheaduc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifheaduc{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitleshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitleshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitleshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitleshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitleshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitleshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitleshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitleshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitleshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitleshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitleshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitleshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlelong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlelong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlelong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlelong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlelongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlelongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlelongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlelongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlelongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlelongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlefull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlefull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlefull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlefull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlefull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlefull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlefullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlefullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlefullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlefullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlefullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlefullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlename{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlename{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlename{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitletext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadtext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitletext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadtext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitletext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitletext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadtext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitleplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitleplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitleplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitleplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitleplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitleplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlefirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlefirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlefirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlefirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlefirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlefirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtitlefirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrtitlefirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrheadfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrheadfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrtitlefirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrtitlefirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrheadfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrheadfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrtitlefirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrtitlefirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrheadfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrheadfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrrestoremarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrp{${1:field}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpInit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpInit{${1:csname}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetpopts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetpopts{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"glossxtrsetpopts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsps{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsps{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glspt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glspt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSps{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSpt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrp{${1:field}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrp{${1:field}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrExpandedFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrExpandedFmt{${1:cs}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrregularfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrregularfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrabbreviationfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrabbreviationfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrassignfieldfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrassignfieldfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrgenentrytextfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdefaultentrytextfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrdefaultentrytextfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrattrentrytextfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrattrentrytextfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsifapplyinnerfmtfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsifapplyinnerfmtfield{${1:label}}{${2:internal-field}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsexclapplyinnerfmtfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsexclapplyinnerfmtfield{${1:label}}{${2:internal-field}}\"\n      }\n    },\n    {\n      \"name\": \"glsfmtfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsfmtfield{${1:insert}}{${2:cs}}{${3:label}}{${4:internal-field}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfmtfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Glsfmtfield{${1:insert}}{${2:cs}}{${3:label}}{${4:internal-field}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfmtfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GLSfmtfield{${1:insert}}{${2:cs}}{${3:label}}{${4:internal-field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdiscardperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrdiscardperiod{${1:label}}{${2:discarded}}{${3:no discard}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdiscardperiodretainfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrdiscardperiodretainfirstuse{${1:label}}{${2:discarded}}{${3:no discard}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifcustomdiscardperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifcustomdiscardperiod{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlinkendsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrifperiod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifperiod{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifnextpunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifnextpunc{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdopostpunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrdopostpunc{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtraddpunctuationmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtraddpunctuationmark{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetpunctuationmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetpunctuationmarks{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdefpostlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdefpostlink{${1:category}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glspretopostlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glspretopostlink{${1:category}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsapptopostlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsapptopostlink{${1:category}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlinkAddDescOnFirstUse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostlinkAddSymbolOnFirstUse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostlinkAddSymbolDescOnFirstUse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostlinkSymbolDescSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcurrentfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrifwasglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifwasglslike{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifwasglslikeandfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifwasglslikeandfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifwassubsequentuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifwassubsequentuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifwassubsequentorshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifwassubsequentorshort{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifallcaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifallcaps{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsaveinsert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsaveinsert{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrassignlinktextfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgenabbrvfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrtarget{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtargetfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrnewgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewgls{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewgls[${3:default-options%keyvals}]{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrnewglslike{${1:prefix}}{${2:gls-cmd%cmd}}{${3:glspl-cmd%cmd}}{${4:Gls-cmd%cmd}}{${5:Glspl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"glsxtrnewglslike[${6:default-options%keyvals}]{${1:prefix}}{${2:gls-cmd%cmd}}{${3:glspl-cmd%cmd}}{${4:Gls-cmd%cmd}}{${5:Glspl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewGLSlike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrnewGLSlike{${1:prefix}}{${2:GLS-cmd%cmd}}{${3:GLSpl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewGLSlike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"glsxtrnewGLSlike[${4:default options%keyvals}]{${1:prefix}}{${2:GLS-cmd%cmd}}{${3:GLSpl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglslink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewglslink{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglslink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewglslink[${3:default-options%keyvals}]{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglsdisp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewglsdisp{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewglsdisp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewglsdisp[${3:default-options%keyvals}]{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtridentifyglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtridentifyglslike{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewrgls{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewrgls[${3:default-options%keyvals}]{${1:prefix}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrnewrglslike{${1:prefix}}{${2:rgls-cmd%cmd}}{${3:rglspl-cmd%cmd}}{${4:rGls-cmd%cmd}}{${5:rGlspl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrglslike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"glsxtrnewrglslike[${6:default-options%keyvals}]{${1:prefix}}{${2:rgls-cmd%cmd}}{${3:rglspl-cmd%cmd}}{${4:rGls-cmd%cmd}}{${5:rGlspl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrGLSlike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrnewrGLSlike{${1:prefix}}{${2:rGLS-cmd%cmd}}{${3:rGLSpl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewrGLSlike\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"glsxtrnewrGLSlike[${4:default-options%keyvals}]{${1:prefix}}{${2:rGLS-cmd%cmd}}{${3:rGLSpl-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddallunindexed\"\n    },\n    {\n      \"name\": \"glsaddallunindexed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsaddallunindexed[${1:glossary-types}]\"\n      }\n    },\n    {\n      \"name\": \"glsaddeach\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaddeach{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddeach\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsaddeach[${2:options%keyvals}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsstartrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsstartrange{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsstartrange\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsstartrange[${2:options%keyvals}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsendrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsendrange{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsendrange\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsendrange[${2:options%keyvals}]{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetDefaultRangeFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetDefaultRangeFormat{${1:encap}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrAutoAddOnFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrAutoAddOnFormat{${1:format list}}{${2:glsadd options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrAutoAddOnFormat\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsXtrAutoAddOnFormat[${3:label}]{${1:format list}}{${2:glsadd options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdowrglossaryhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrdowrglossaryhook{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryindexcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryindexcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsifindexed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifindexed{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifindexing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifindexing{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrseelists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrseelists{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrseelistsencap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrseelistsencap{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrseelistsdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrusesee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrusesee{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrusealias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrusealias{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruseseealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtruseseealso{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtralias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtralias{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrseealsolabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrseealsolabels{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtruseseealsoformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtruseseealsoformat{${1:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrindexseealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrindexseealso{${1:label}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetaliasnoindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrindexaliased\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtraddallcrossrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtraddunusedxrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrunusedformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrunusedformat{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpostunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlocalunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpostlocalunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpostreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostlocalreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpostlocalreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalunseteach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalunseteach{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalreseteach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalreseteach{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifwasfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrifwasfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfUnusedOrUndefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrIfUnusedOrUndefined{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStartUnsetBuffering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrClearUnsetBuffer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrStopUnsetBuffering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrForUnsetBufferedList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrForUnsetBufferedList{${1:handler-cs}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrDiscardUnsetBuffering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrUnsetBufferEnableRepeatLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrResetLocalBuffer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrUnsetBufferDisableRepeatLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrusefield{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrusefield{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GLSxtrusefield{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldtitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfieldtitlecase{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldtitlecasecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfieldtitlecasecs{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrentryparentname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrentryparentname{${1:entry-name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrhiername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrhiername{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrhiernamesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Glsxtrhiername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrhiername{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrhiername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrhiername{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSxtrhiername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSxtrhiername{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSXTRhiername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSXTRhiername{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrForeignTextField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrForeignText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrForeignText{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrUnknownDialectWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrUnknownDialectWarning{${1:locale}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrFmtField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrfmt[${3:options%keyvals}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfmt*{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"glsxtrfmt*{${1:label}}{${2:text}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrfmt*[${3:options%keyvals}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"glsxtrfmt*[${3:options%keyvals}]{${1:label}}{${2:text}}[${4:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfmtdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfmtdisplay{${1:csname}}{${2:text}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrentryfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpdfentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrpdfentryfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glsxtrfmt[${3:options%keyvals}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrfmt*{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Glsxtrfmt*{${1:label}}{${2:text}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glsxtrfmt*[${3:options%keyvals}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrfmt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"Glsxtrfmt*[${3:options%keyvals}]{${1:label}}{${2:text}}[${4:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrentryfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrpdfentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsxtrpdfentryfmt{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrseelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrseelist{${1:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtaggedlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrtaggedlist{${1:sing-tag}}{${2:plural-tag}}{${3:prefix}}{${4:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrtaggedlistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsseefirstitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseefirstitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsseelastoxfordsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrforcsvfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrforcsvfield{${1:label}}{${2:field}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrendfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfieldformatcsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfieldformatcsvlist{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfValueInFieldCsvList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfValueInFieldCsvList{${1:label}}{${2:field}}{${3:value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldValueInCsvList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldValueInCsvList{${1:label}}{${2:field}}{${3:list}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"xGlsXtrIfValueInFieldCsvList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xGlsXtrIfValueInFieldCsvList{${1:label}}{${2:field}}{${3:value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldformatlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfieldformatlist{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfielddolistloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrfielddolistloop{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldforlistloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrfieldforlistloop{${1:label}}{${2:field}}{${3:handler}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldifinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrfieldifinlist{${1:label}}{${2:field}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfieldxifinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrfieldxifinlist{${1:label}}{${2:field}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldUndef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldUndef{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifhasfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrifhasfield{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifhasfield*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtrifhasfield*{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldCmpNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldCmpNum{${1:field}}{${2:label}}{${3:comparison}}{${4:integer}}{${5:true}}{${6:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldCmpNum*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldCmpNum*{${1:field}}{${2:label}}{${3:comparison}}{${4:integer}}{${5:true}}{${6:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqNum{${1:field}}{${2:label}}{${3:integer}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqNum*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqNum*{${1:field}}{${2:label}}{${3:integer}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldNonZero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldNonZero{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldNonZero*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldNonZero*{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqStr{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqStr*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqStr*{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqXpStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqXpStr{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfFieldEqXpStr*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfFieldEqXpStr*{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfXpFieldEqXpStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfXpFieldEqXpStr{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfXpFieldEqXpStr*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfXpFieldEqXpStr*{${1:field}}{${2:label}}{${3:text}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableEntryCounting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrEnableEntryCounting{${1:category-list}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"cGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGLS[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGLSpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGLSformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGLSformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cGLSplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGLSplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifcounttrigger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifcounttrigger{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsenableentryunitcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrEnableEntryUnitCounting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrEnableEntryUnitCounting{${1:category-list}}{${2:value}}{${3:counter}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprevtotalcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprevtotalcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprevmaxcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprevmaxcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableLinkCounting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrEnableLinkCounting{${1:categories}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableLinkCounting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsXtrEnableLinkCounting[${2:parent-counter}]{${1:categories}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrinclinkcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrinclinkcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLinkCounterValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrLinkCounterValue{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrTheLinkCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrTheLinkCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfLinkCounterDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrIfLinkCounterDef{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLinkCounterName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrLinkCounterName{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"multiglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multiglossaryentry{${1:multi-label}}{${2:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"multiglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"multiglossaryentry{${1:multi-label}}[${3:main-label}]{${2:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"multiglossaryentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"multiglossaryentry[${3:options%keyvals}]{${1:multi-label}}{${2:labellist}}\",\n        \"keys\": [\n          \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multiglossaryentry\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"multiglossaryentry[${3:options%keyvals}]{${1:multi-label}}[${4:main-label}]{${2:labellist}}\",\n        \"keys\": [\n          \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mgls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mgls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mgls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mgls[${2:options%keyvals}]{${1:multi-label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mgls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mgls[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"providemultiglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providemultiglossaryentry{${1:multi-label}}{${2:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"providemultiglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providemultiglossaryentry{${1:multi-label}}[${3:main label}]{${2:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"providemultiglossaryentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providemultiglossaryentry[${3:options%keyvals}]{${1:multi-label}}{${2:labellist}}\",\n        \"keys\": [\n          \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"providemultiglossaryentry\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"providemultiglossaryentry[${3:options%keyvals}]{${1:multi-label}}[${4:main label}]{${2:labellist}}\",\n        \"keys\": [\n          \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multiglossaryentryglobaltrue\"\n    },\n    {\n      \"name\": \"multiglossaryentryglobalfalse\"\n    },\n    {\n      \"name\": \"ifmultiglossaryentryglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsSetOptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsSetOptions{${1:multi-label}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mglsAddOptions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsAddOptions{${1:multi-label}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"GlsXtrMglsOrGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrMglsOrGls{${1:mgls-cmd}}{${2:gls-cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrMglsOrGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"GlsXtrMglsOrGls{${1:mgls-cmd}}{${2:gls-cmd}}[${4:options%keyvals}]{${3:label}}\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"GlsXtrMglsOrGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"GlsXtrMglsOrGls{${1:mgls-cmd}}{${2:gls-cmd}}[${4:options%keyvals}]{${3:label}}[${5:insert}]\",\n        \"keys\": [\n          \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"mglsprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglssuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsdefcategoryprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsdefcategoryprefix{${1:category}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglsdefcategorysuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsdefcategorysuffix{${1:category}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglshascategoryprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglshascategoryprefix{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsusecategoryprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsusecategoryprefix{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"mglshascategorysuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglshascategorysuffix{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsusecategorysuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsusecategorysuffix{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glscombinedsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glscombinedsep{${1:prev label%ref}}{${2:next label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glscombinedfirstsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glscombinedfirstsep{${1:prev label%ref}}{${2:next label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glscombinedsepfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glscombinedsepfirst{${1:prev label%ref}}{${2:next label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glscombinedfirstsepfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glscombinedfirstsepfirst{${1:prev label%ref}}{${2:next label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glssetcombinedsepabbrvnbsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssetcombinedsepabbrvnone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssetcombinedsepnarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glssetcombinedsepnarrow{${1:width}}{${2:narrow sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"mglselementprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglselementposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentmultilabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentmainlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentcategory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrcurrentmglscsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsisfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsisfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglscurrentlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglselementindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglscurrentsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsiflast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflast{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglscustompostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglslastelementpostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglslastmainpostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglslastmultilabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglslastcategory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglswasfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglswasfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglslastelementlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsiflastelementskipped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastelementskipped{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastelementwasfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastelementwasfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastelementwasplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastelementwasplural{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastelementcapscase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglsiflastelementcapscase{${1:no-change}}{${2:firstuc}}{${3:all caps}}\"\n      }\n    },\n    {\n      \"name\": \"mglslastmainlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsiflastmainskipped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastmainskipped{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastmainwasfirstuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastmainwasfirstuse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastmainwasplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsiflastmainwasplural{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsiflastmaincapscase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglsiflastmaincapscase{${1:no-change}}{${2:firstuc}}{${3:all caps}}\"\n      }\n    },\n    {\n      \"name\": \"ifmglsused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmglsused{${1:multi-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"mglsunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsunset{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsreset{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglslocalunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglslocalunset{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglslocalreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglslocalreset{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsunsetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiglossaryentrysetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multiglossaryentrysetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrmglsWarnAllSkipped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrmglsWarnAllSkipped{${1:message%text}}{${2:insert}}{${3:fmt-cs}}\"\n      }\n    },\n    {\n      \"name\": \"mglselementreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglselementreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mglselementunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglselementunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsunsetothers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsunsetothers{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglslocalunsetothers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglslocalunsetothers{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglspl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsmainpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsmainpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglsmainpl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mgls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mgls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mgls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mgls[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mgls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGls{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGls[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGls{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGls[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglspl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsmainpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsmainpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglsmainpl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGlspl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGlspl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGlspl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGlspl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsmainpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGlsmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsmainpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGlsmainpl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGlsmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGlsmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGLS{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGLS[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGLS{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGLS[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLSpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGLSpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLSpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGLSpl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGLSpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGLSpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLSmainpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGLSmainpl{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLSmainpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGLSmainpl[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGLSmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGLSmainpl{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGLSmainpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGLSmainpl[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsshort{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglsshort[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglsshort{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglsshort[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglslong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglslong{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglslong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglslong[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglslong{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglslong[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsfull{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglsfull[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglsfull{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglsfull[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglsshort{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglsshort[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglsshort{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglsshort[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglslong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglslong{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglslong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglslong[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglslong{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglslong[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglsfull{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglsfull[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglsfull{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglsfull[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsname{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglsname[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglsname{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglsname[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglssymbol{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglssymbol[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglssymbol{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglssymbol[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsusefield{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglsusefield[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mglsusefield{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mglsusefield[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglsname{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglsname[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglsname{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglsname[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglssymbol{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglssymbol[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglssymbol{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglssymbol[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mglsusefield{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mglsusefield[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"Mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Mglsusefield{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Mglsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Mglsusefield[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGlsname{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGlsname[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGlsname{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGlsname[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGlssymbol{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGlssymbol[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGlssymbol{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGlssymbol[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MGlsusefield{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MGlsusefield[${2:options%keyvals}]{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"MGlsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MGlsusefield{${1:multi-label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"MGlsusefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"MGlsusefield[${2:options%keyvals}]{${1:multi-label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"mglsfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpglsWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsseefirstitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsseefirstitem{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsseeitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsseeitem{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifmulti\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifmulti{${1:multi-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultimain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultimain{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultilist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultilist{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"mglsforelements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglsforelements{${1:multi-label}}{${2:cmd}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"mglsforotherelements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mglsforotherelements{${1:multi-label}}{${2:cmd}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultitotalelements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultitotalelements{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultimainindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultimainindex{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrmultilastotherindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrmultilastotherindex{${1:multi-label}}\"\n      }\n    },\n    {\n      \"name\": \"writemultiglossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"writemultiglossentry{${1:options}}{${2:multi-label}}{${3:main-label}}{${4:list}}\"\n      }\n    },\n    {\n      \"name\": \"makeglossaries\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeglossaries[${1:types}]\"\n      }\n    },\n    {\n      \"name\": \"newignoredglossary*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newignoredglossary*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"provideignoredglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideignoredglossary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrcopytoglossary\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrcopytoglossary{${1:label}}{${2:glossary-type}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrcopytoglossary*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrcopytoglossary*{${1:label}}{${2:glossary-type}}\"\n      }\n    },\n    {\n      \"name\": \"forallabbreviationlists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallabbreviationlists{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apptoglossarypreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apptoglossarypreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"apptoglossarypreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"apptoglossarypreamble[${2:type}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pretoglossarypreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretoglossarypreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pretoglossarypreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pretoglossarypreamble[${2:type}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetglossarylabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsetglossarylabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossary\"\n    },\n    {\n      \"name\": \"printunsrtglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtglossary[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossary*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossary*{${1:init-code}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossary*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printunsrtglossary*[${2:options%keyvals}]{${1:init-code}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaries\"\n    },\n    {\n      \"name\": \"glsxtrnoidxgroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrgroupfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtraddgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtraddgroup{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossarygrouphook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossarygrouphook{${1:internal cs}}\"\n      }\n    },\n    {\n      \"name\": \"glssubgroupheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glssubgroupheading{${1:prev-level}}{${2:level}}{${3:parent-label}}{${4:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLocationField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtglossarypostbegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossarypostbegin{${1:internal cs}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossarypreend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossarypreend{${1:internal cs}}\"\n      }\n    },\n    {\n      \"name\": \"glscurrententrylevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glscurrenttoplevelentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glscurrentrootentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtglossaryentryprocesshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossaryentryprocesshook{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaryskipentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtglossarypreentryprocesshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossarypreentryprocesshook{${1:internal cs}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossarypostentryprocesshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossarypostentryprocesshook{${1:internal cs}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossarypredoglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtglossaryhandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossaryhandler{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrunsrtdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrunsrtdo{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtriflabelinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsxtriflabelinlist{${1:label}}{${2:labellist}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsxtrprintglossflatten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrprintglossflattentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrprintglossflattenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtinnerglossary\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printunsrtinnerglossary{${1:pre-code}}{${2:post-code}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtinnerglossary\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printunsrtinnerglossary[${3:options%keyvals}]{${1:pre-code}}{${2:post-code}}\",\n        \"keys\": [\n          \"\\\\printunsrtinnerglossary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrRecordCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrRecordCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrAddCounterRecordHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrAddCounterRecordHook{${1:label}}{${2:counter}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaryunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossaryunit{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaryunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printunsrtglossaryunit[${2:options%keyvals}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaryunitsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printunsrtglossaryunitsetup{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtglossaryunitpostskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrglossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrglossentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneGlossaryType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrStandaloneSubEntryItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrStandaloneSubEntryItem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryName{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtractivatenopost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrglossentryother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrglossentryother{${1:header}}{${2:label}}{${3:field}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryOther{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryPdfName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryPdfName{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryHeadName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryHeadName{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryPdfOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryPdfOther{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrStandaloneEntryHeadOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrStandaloneEntryHeadOther{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpreglossarystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrypdfsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrypdfsymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentrynameother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossentrynameother{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostnamehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpostnamehook{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdefpostname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdefpostname{${1:category}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsextrapostnamehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsextrapostnamehook{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostdescgeneral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostdescterm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostdescacronym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrpostdescabbreviation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdefpostdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdefpostdesc{${1:category}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnopostpunc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrrestorepostpunc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrFormatLocationList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrFormatLocationList{${1:location list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnablePreLocationTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrEnablePreLocationTag{${1:page tag}}{${2:pages tag}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdisplaysingleloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdisplaysingleloc{${1:format}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdisplaystartloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdisplaystartloc{${1:format}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrdisplayendloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdisplayendloc{${1:format}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlocrangefmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdisplayendlochook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdisplayendlochook{${1:format}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsetgrouptitle{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlocalsetgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrlocalsetgrouptitle{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrgetgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrgetgrouptitle{${1:group-label}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrassignactualsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdefaultshortaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdefaultshortaccess{${1:long}}{${2:short}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccesstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccesstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccesstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccesstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccesstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccesstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccesssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccesssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccesssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccesssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccesssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccesssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccesssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccesssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccesssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccesssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccesssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccesssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{label\",\n        \"snippet\": \"GLSaccessdescplural{label\"\n      }\n    },\n    {\n      \"name\": \"glsaccessshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccesslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccesslong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccesslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccesslong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccesslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccesslong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccesslongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccesslongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccesslongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccesslongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccesslongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccesslongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaccessuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsaccessuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSaccessuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtname{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtname{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtname{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmttext{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmttext{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmttext{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtfirst{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtfirst{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtfirst{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtfirstplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtfirstplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtfirstplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtsymbol{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtsymbol{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtsymbol{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtsymbolplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtsymbolplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtsymbolplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtdesc{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtdesc{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtdesc{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtdescplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtdescplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtdescplural{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtshort{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtshort{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtshort{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtshortpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtshortpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtshortpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtlong{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtlong{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtlong{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtlongpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtlongpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtlongpl{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuseri{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuseri{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuseri{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuserii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuserii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuserii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuseriii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuseriii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuseriii{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuseriv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuseriv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuseriv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuserv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuserv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuserv{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaccessfmtuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaccessfmtuservi{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsaccessfmtuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Glsaccessfmtuservi{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSaccessfmtuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GLSaccessfmtuservi{${1:insert}}{${2:cmd}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glscategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscategory{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsifcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsifcategory{${1:label}}{${2:category}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsetcategory{${1:labellist}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsetcategoryforall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrsetcategoryforall{${1:glossary-labels}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsforeachincategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsforeachincategory{${1:category}}{${2:glossarycmd}}{${3:labelcmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsforeachincategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"glsforeachincategory[${5:glossary-types}]{${1:category}}{${2:glossarycmd}}{${3:labelcmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsforeachwithattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsforeachwithattribute{${1:attribute}}{${2:value}}{${3:glossary-cmd}}{${4:label-cmd}}{${5:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsforeachwithattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"glsforeachwithattribute[${6:glossary-types}]{${1:attribute}}{${2:value}}{${3:glossary-cmd}}{${4:label-cmd}}{${5:body}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrwordsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"glssetcategoryattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glssetcategoryattribute{${1:category}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glssetcategoriesattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glssetcategoriesattribute{${1:category list}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glssetcategoryattributes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glssetcategoryattributes{${1:category}}{${2:attribute list}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glssetcategoriesattributes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glssetcategoriesattributes{${1:category list}}{${2:attribute list}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glssetattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glssetattribute{${1:label}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glssetregularcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetregularcategory{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"glsunsetcategoryattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsunsetcategoryattribute{${1:category}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"glsgetcategoryattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsgetcategoryattribute{${1:category}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"glsgetattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsgetattribute{${1:label}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"glshascategoryattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glshascategoryattribute{${1:category}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glshasattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glshasattribute{${1:label}}{${2:attribute}}{${3:value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifcategoryattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsifcategoryattribute{${1:category}}{${2:attribute}}{${3:value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsifattribute{${1:label}}{${2:attribute}}{${3:value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifregularcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifregularcategory{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifnotregularcategory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifnotregularcategory{${1:category}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifregular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifregular{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifnotregular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifnotregular{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifcategoryattributetrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsifcategoryattributetrue{${1:category}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifattributetrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsifattributetrue{${1:label}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsifcategoryattributehasitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsifcategoryattributehasitem{${1:category}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrresourcefile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrresourcefile{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrresourcefile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrresourcefile[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\glsxtrresourcefile#c,\\\\GlsXtrLoadResources#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GlsXtrLoadResources\"\n    },\n    {\n      \"name\": \"GlsXtrLoadResources\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GlsXtrLoadResources[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\glsxtrresourcefile#c,\\\\GlsXtrLoadResources#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsxtrresourcecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrresourceinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrMFUsave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrDefaultResourceOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdetoklocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrdetoklocation{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrTotalRecordCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrTotalRecordCount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrRecordCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrRecordCount{${1:label}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrLocationRecordCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrLocationRecordCount{${1:label}}{${2:counter}}{${3:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifrecordtrigger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifrecordtrigger{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrrecordtriggervalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrrecordtriggervalue{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetRecordCountAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrSetRecordCountAttribute{${1:category list}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"glstriggerrecordformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstriggerrecordformat{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"rgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rgls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rGls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rGls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rGls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rGls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rGLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rGLS[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rGLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rGLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rglspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rGlspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rGlspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rGlspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rGlspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rGLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rGLSpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rGLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rGLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"rglsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rglsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"rglsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rglsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"rGlsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rGlsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"rGlsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rGlsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"rGLSformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rGLSformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"rGLSplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rGLSplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrenablerecordcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrdoautoindexname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrdoautoindexname{${1:label}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrautoindexentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrautoindexentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrautoindexassignsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrautoindexassignsort{${1:cmd}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrautoindexesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrautoindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrautoindex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableIndexFormatOverride\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrSetActualChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetActualChar{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetLevelChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetLevelChar{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetEscChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetEscChar{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrSetEncapChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrSetEncapChar{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrEnableOnTheFly\"\n    },\n    {\n      \"name\": \"glsxtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtr[${2:gls-options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtr\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"glsxtr[${2:gls-options%keyvals}][${3:dfn-options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrWarning{${1:defn options}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsxtrpl[${2:gls-options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"glsxtrpl[${2:gls-options%keyvals}][${3:dfn-options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtr[${2:gls-options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtr\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Glsxtr[${2:gls-options%keyvals}][${3:dfn-options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsxtrpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsxtrpl[${2:gls-options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsxtrpl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Glsxtrpl[${2:gls-options%keyvals}][${3:dfn-options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesGlossariesExtraLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesGlossariesExtraLang{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsXtrNoGlsWarningHead{${1:glossary-label}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningEmptyStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningEmptyMain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningEmptyNotMain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrNoGlsWarningEmptyNotMain{${1:glossary-label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningCheckFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrNoGlsWarningCheckFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningMisMatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningNoOut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrNoGlsWarningNoOut{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningTail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningBuildInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrNoGlsWarningAutoMake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrNoGlsWarningAutoMake{${1:glossary-label}}\"\n      }\n    },\n    {\n      \"name\": \"GlossariesAbbrStyleTooComplexWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlossariesAbbrStyleTooComplexWarning{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlossariesExtraInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlossariesExtraInfo{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"GlossariesExtraWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlossariesExtraWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"GlossariesExtraWarningNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlossariesExtraWarningNoLine{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsabspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsabspace{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsacspacemax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsfmtinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GLSfmtinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrDefineAbbreviationShortcuts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrDefineAcShortcuts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrDefineOtherShortcuts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfirstscfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfirstscfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrfirstsmfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrfirstsmfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrifemptyglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrifemptyglossary{${1:type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrIfInGlossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GlsXtrIfInGlossary{${1:label}}{${2:glossary-type}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrinitwrglossbeforefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrinitwrglossbeforetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsXtrInternalLocationHyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GlsXtrInternalLocationHyperlink{${1:counter}}{${2:prefix}}{${3:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrlocationhyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsxtrlocationhyperlink{${1:counter}}{${2:prefix}}{${3:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrNoGlossaryWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrNoGlossaryWarning{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrprovideaccsuppcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrprovideaccsuppcmd{${1:category}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"GlsXtrRecordWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsXtrRecordWarning{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrscfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrscfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrsmfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrsmfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrstarflywarn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsupplocationurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtruseseeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtruseseeformat{${1:tag}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrwordsephyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsxtrinitwrglossbefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglsSetMain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mglsSetMain{${1:multi-label}}{${2:new-main-label}}\"\n      }\n    },\n    {\n      \"name\": \"RequireGlossariesExtraLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireGlossariesExtraLang{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"seealsoname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"printunsrtglossarywrap\"\n    },\n    {\n      \"name\": \"printunsrtglossarywrap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/glossaries-extra#c\": [\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"languages=${1:language}\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindy={${1:options}}\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"acronyms\"\n    ],\n    \"\\\\usepackage/glossaries-extra#c,\\\\glossariesextrasetup\": [\n      \"debug=${1|false,true,showtargets,showaccsupp,showwrgloss,all|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"nomain\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronymlists={${1:label-list}}\",\n      \"shortcuts=${1|acronyms,acro,ac,abbreviations,abbr,acother,abother,other,all,true,none,false|}\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs={${1:value}}\",\n      \"nomissingglstext\",\n      \"abbreviations\",\n      \"postdot\",\n      \"postpunc=${1|comma,dot,none|}\",\n      \"stylemods\",\n      \"stylemods=${1|default,all,inline,list,tree,mcols,long,longragged,longbooktabs,super,superragged,bookindex,longextra,topic,table|}\",\n      \"prefix\",\n      \"accsupp\",\n      \"undefaction=${1|warn,error|}\",\n      \"docdef=${1|false,true,restricted,atom|}\",\n      \"indexcrossrefs\",\n      \"autoseeindex\",\n      \"record=${1|off,only,nameref,hybrid|}\",\n      \"bibglsaux=${1:basename}\",\n      \"equations\",\n      \"floats\",\n      \"indexcounter\",\n      \"showtargets=${1|left,right,innerleft,innerright,annoteleft,annoteright|}\"\n    ],\n    \"\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\": [\n      \"name=${1:text}\",\n      \"description=${1:text}\",\n      \"parent=${1:parent-label}\",\n      \"descriptionplural=${1:text}\",\n      \"text=${1:text}\",\n      \"first=${1:text}\",\n      \"plural=${1:text}\",\n      \"firstplural=${1:text}\",\n      \"symbol=${1:symbol}\",\n      \"symbolplural=${1:symbol}\",\n      \"sort=${1:entry}\",\n      \"type=${1:glossary-label}\",\n      \"user1=${1:text}\",\n      \"user2=${1:text}\",\n      \"user3=${1:text}\",\n      \"user4=${1:text}\",\n      \"user5=${1:text}\",\n      \"user6=${1:text}\",\n      \"nonumberlist\",\n      \"see={${1:xr-list}}\",\n      \"see={[${1:tag}]${2:xr-list}}\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\": [\n      \"category=${1:category-label}\",\n      \"seealso={${1:xr-list}}\",\n      \"alias={${1:xr-label}}\"\n    ],\n    \"\\\\setabbreviationstyle#c\": [\n      \"short-nolong\",\n      \"short\",\n      \"short-nolong-desc\",\n      \"short-desc\",\n      \"nolong-short\",\n      \"short-sc-nolong\",\n      \"short-sc\",\n      \"short-sc-nolong-desc\",\n      \"short-sc-desc\",\n      \"short-sm-nolong\",\n      \"short-sm\",\n      \"short-sm-nolong-desc\",\n      \"short-sm-desc\",\n      \"nolong-short-sm\",\n      \"short-em-nolong\",\n      \"short-em\",\n      \"short-em-nolong-desc\",\n      \"short-em-desc\",\n      \"nolong-short-em\",\n      \"long-noshort-desc\",\n      \"long-desc\",\n      \"long-noshort\",\n      \"long\",\n      \"long-noshort-sc\",\n      \"long-noshort-sc-desc\",\n      \"long-noshort-sm\",\n      \"long-noshort-sm-desc\",\n      \"long-noshort-em\",\n      \"long-noshort-em-desc\",\n      \"long-em-noshort-em\",\n      \"long-em-noshort-em-desc\",\n      \"long-short\",\n      \"long-short-desc\",\n      \"long-short-sc\",\n      \"long-short-sc-desc\",\n      \"long-short-sm\",\n      \"long-short-sm-desc\",\n      \"long-short-em\",\n      \"long-short-em-desc\",\n      \"long-em-short-em\",\n      \"long-em-short-em-desc\",\n      \"long-short-user\",\n      \"long-short-user-desc\",\n      \"long-postshort-user\",\n      \"long-postshort-user-desc\",\n      \"long-postshort-sc-user\",\n      \"long-postshort-sc-user-desc\",\n      \"short-long\",\n      \"short-long-desc\",\n      \"short-sc-long\",\n      \"short-sc-long-desc\",\n      \"short-sm-long\",\n      \"short-sm-long-desc\",\n      \"short-em-long\",\n      \"short-em-long-desc\",\n      \"short-em-long-em\",\n      \"short-em-long-em-desc\",\n      \"short-long-user\",\n      \"short-long-user-desc\",\n      \"short-postlong-user\",\n      \"short-postlong-user-desc\",\n      \"long-hyphen-short-hyphen\",\n      \"long-hyphen-postshort-hyphen\",\n      \"long-hyphen-short-hyphen-desc\",\n      \"long-hyphen-postshort-hyphen-desc\",\n      \"long-hyphen-noshort-desc-noreg\",\n      \"long-hyphen-noshort-noreg\",\n      \"short-hyphen-long-hyphen\",\n      \"short-hyphen-postlong-hyphen\",\n      \"short-hyphen-long-hyphen-desc\",\n      \"short-hyphen-postlong-hyphen-desc\",\n      \"long-only-short-only\",\n      \"long-only-short-only-desc\",\n      \"long-only-short-sc-only\",\n      \"long-only-short-sc-only-desc\",\n      \"short-footnote\",\n      \"footnote\",\n      \"short-footnote-desc\",\n      \"footnote-desc\",\n      \"short-postfootnote\",\n      \"postfootnote\",\n      \"short-postfootnote-desc\",\n      \"postfootnote-desc\",\n      \"short-sc-footnote\",\n      \"short-sc-footnote-desc\",\n      \"short-sc-postfootnote\",\n      \"short-sc-postfootnote-desc\",\n      \"short-sm-footnote\",\n      \"short-sm-footnote-desc\",\n      \"short-sm-postfootnote\",\n      \"short-sm-postfootnote-desc\",\n      \"short-em-footnote\",\n      \"short-em-footnote-desc\",\n      \"short-em-postfootnote\",\n      \"short-em-postfootnote-desc\",\n      \"short-nolong-noreg\",\n      \"short-nolong-desc-noreg\",\n      \"nolong-short-noreg\",\n      \"long-noshort-desc-noreg\",\n      \"long-noshort-noreg\",\n      \"long-em-noshort-em-noreg\",\n      \"long-em-noshort-em-desc-noreg\",\n      \"%abbreviationstyle\"\n    ],\n    \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c,\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrnewrgls#c,\\\\glsxtrnewrglslike#c,\\\\glsxtrnewrGLSlike#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\": [\n      \"hyperoutside\",\n      \"textformat=${1:csname}\",\n      \"innertextformat=${1:csname}\",\n      \"postunset=${1|global,local,none|}\",\n      \"prereset\",\n      \"prereset=${1|global,local,none|}\",\n      \"preunset=${1|global,local,none|}\",\n      \"noindex\",\n      \"wrgloss=${1|before,after|}\",\n      \"thevalue=${1:location}\",\n      \"theHvalue=${1:the-H-value}\",\n      \"prefix=${1:link-prefix}\"\n    ],\n    \"\\\\GlsXtrSetAltModifier#c,\\\\GlsXtrSetStarModifier#c,\\\\GlsXtrSetPlusModifier#c,\\\\GlsXtrSetDefaultGlsOpts#c,\\\\GlsXtrAppToDefaultGlsOpts#c,\\\\GlsXtrPreToDefaultGlsOpts#c,\\\\setupglslink#c,\\\\glsxtrsetpopts#c,\\\\glsxtrnewgls#c,\\\\glsxtrnewglslike#c,\\\\glsxtrnewGLSlike#c,\\\\glsxtrnewglslink#c,\\\\glsxtrnewglsdisp#c,\\\\glsxtrfmt#c,\\\\glsxtrfmt*#c,\\\\Glsxtrfmt#c,\\\\Glsxtrfmt*#c,\\\\cGLS#c,\\\\cGLS*#c,\\\\cGLS+#c,\\\\cGLSpl#c,\\\\cGLSpl*#c,\\\\cGLSpl+#c,\\\\rgls#c,\\\\rgls*#c,\\\\rgls+#c,\\\\rGls#c,\\\\rGls*#c,\\\\rGls+#c,\\\\rGLS#c,\\\\rGLS*#c,\\\\rGLS+#c,\\\\rglspl#c,\\\\rglspl*#c,\\\\rglspl+#c,\\\\rGlspl#c,\\\\rGlspl*#c,\\\\rGlspl+#c,\\\\rGLSpl#c,\\\\rGLSpl*#c,\\\\rGLSpl+#c,\\\\glsxtr#c,\\\\glsxtrpl#c,\\\\Glsxtr#c,\\\\Glsxtrpl#c\": [\n      \"hyper\",\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\setupglsadd#c,\\\\glsaddeach#c,\\\\glsstartrange#c,\\\\glsendrange#c,\\\\GlsXtrAutoAddOnFormat#c\": [\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\glsadd#c,\\\\glsaddall#c,\\\\setupglsadd#c,\\\\glsaddeach#c,\\\\glsstartrange#c,\\\\glsendrange#c,\\\\GlsXtrAutoAddOnFormat#c\": [\n      \"thevalue=${1:location}\",\n      \"theHvalue=${1:<prefix><location>}\"\n    ],\n    \"\\\\multiglossaryentry#c,\\\\providemultiglossaryentry#c,\\\\multiglossaryentrysetup#c\": [\n      \"indexmain=${1|false,true,first|}\",\n      \"indexothers=${1|false,true,first|}\",\n      \"encapmain=${1:csname}\",\n      \"encapothers=${1:csname}\",\n      \"postlinks=${1|none,all,notlast,mainnotlast,mainonly,othernotlast,otheronly|}\",\n      \"mpostlink=${1|false,true,firstonly,usedonly|}\",\n      \"mpostlinkelement=${1|last,main,custom|}\",\n      \"firstprefix=${1:prefix}\",\n      \"usedprefix=${1:prefix}\",\n      \"firstsuffix=${1:suffix}\",\n      \"usedsuffix=${1:suffix}\",\n      \"firstskipmain\",\n      \"firstskipothers\",\n      \"usedskipmain\",\n      \"usedskipothers\",\n      \"hyper=${1|none,allmain,mainonly,individual,otheronly,notmainfirst,nototherfirst,notfirst|}\",\n      \"textformat=${1:csname}\",\n      \"category=${1:category}\",\n      \"mglsopts={${1:mgls options}}\"\n    ],\n    \"\\\\mgls#c,\\\\mgls*#c,\\\\mgls+#c,\\\\Mgls#c,\\\\Mgls*#c,\\\\Mgls+#c,\\\\MGls#c,\\\\MGls*#c,\\\\MGls+#c,\\\\MGLS#c,\\\\MGLS*#c,\\\\MGLS+#c,\\\\mglspl#c,\\\\mglspl*#c,\\\\mglspl+#c,\\\\Mglspl#c,\\\\Mglspl*#c,\\\\Mglspl+#c,\\\\MGlspl#c,\\\\MGlspl*#c,\\\\MGlspl+#c,\\\\MGLSpl#c,\\\\MGLSpl*#c,\\\\MGLSpl+#c,\\\\mglsname#c,\\\\mglsname*#c,\\\\mglsname+#c,\\\\Mglsname#c,\\\\Mglsname*#c,\\\\Mglsname+#c,\\\\MGlsname#c,\\\\MGlsname*#c,\\\\MGlsname+#c,\\\\MGLSname#c,\\\\MGLSname*#c,\\\\MGLSname+#c,\\\\mglsmainpl#c,\\\\mglsmainpl*#c,\\\\mglsmainpl+#c,\\\\Mglsmainpl#c,\\\\Mglsmainpl*#c,\\\\Mglsmainpl+#c,\\\\MGlsmainpl#c,\\\\MGlsmainpl*#c,\\\\MGlsmainpl+#c,\\\\MGLSmainpl#c,\\\\MGLSmainpl*#c,\\\\MGLSmainpl+#c,\\\\mglsshort#c,\\\\mglsshort*#c,\\\\mglsshort+#c,\\\\Mglsshort#c,\\\\Mglsshort*#c,\\\\Mglsshort+#c,\\\\MGlsshort#c,\\\\MGlsshort*#c,\\\\MGlsshort+#c,\\\\MGLSshort#c,\\\\MGLSshort*#c,\\\\MGLSshort+#c,\\\\mglslong#c,\\\\mglslong*#c,\\\\mglslong+#c,\\\\Mglslong#c,\\\\Mglslong*#c,\\\\Mglslong+#c,\\\\MGlslong#c,\\\\MGlslong*#c,\\\\MGlslong+#c,\\\\MGLSlong#c,\\\\MGLSlong*#c,\\\\MGLSlong+#c,\\\\mglsfull#c,\\\\mglsfull*#c,\\\\mglsfull+#c,\\\\Mglsfull#c,\\\\Mglsfull*#c,\\\\Mglsfull+#c,\\\\MGlsfull#c,\\\\MGlsfull*#c,\\\\MGlsfull+#c,\\\\MGLSfull#c,\\\\MGLSfull*#c,\\\\MGLSfull+#c,\\\\mglssymbol#c,\\\\mglssymbol*#c,\\\\mglssymbol+#c,\\\\Mglssymbol#c,\\\\Mglssymbol*#c,\\\\Mglssymbol+#c,\\\\MGlssymbol#c,\\\\MGlssymbol*#c,\\\\MGlssymbol+#c,\\\\MGLSsymbol#c,\\\\MGLSsymbol*#c,\\\\MGLSsymbol+#c,\\\\mglsusefield#c,\\\\mglsusefield*#c,\\\\mglsusefield+#c,\\\\Mglsusefield#c,\\\\Mglsusefield*#c,\\\\Mglsusefield+#c,\\\\MGlsusefield#c,\\\\MGlsusefield*#c,\\\\MGlsusefield+#c,\\\\MGLSusefield#c,\\\\MGLSusefield*#c,\\\\MGLSusefield+#c,\\\\mpgls#c,\\\\mpglspl#c,\\\\mpglsmainpl#c,\\\\Mpgls#c,\\\\Mpglspl#c,\\\\Mpglsmainpl#c,\\\\MPGls#c,\\\\MPGlspl#c,\\\\MPGlsmainpl#c,\\\\MPGLS#c,\\\\MPGLSpl#c,\\\\MPGLSmainpl#c,\\\\mglsSetOptions#c,\\\\mglsAddOptions#c,\\\\GlsXtrMglsOrGls#c\": [\n      \"setup={${1:options}}\",\n      \"all={${1:gls options}}\",\n      \"main={${1:gls options}}\",\n      \"others={${1:gls options}}\",\n      \"hyper\",\n      \"multiunset=${1|global,local,none|}\",\n      \"presetlocal\",\n      \"resetall\",\n      \"resetmain\",\n      \"resetothers\",\n      \"unsetall\",\n      \"unsetmain\",\n      \"unsetothers\"\n    ],\n    \"\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\": [\n      \"type=${1:glossary-label}\",\n      \"title=${1:text}\",\n      \"toctitle=${1:text}\",\n      \"style=${1:style-name}\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|use,def,nocase,case,word,letter,standard|}\"\n    ],\n    \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c,\\\\printabbreviations#c,\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\": [\n      \"label=\",\n      \"prefix=${1:prefix}\",\n      \"targetnameprefix=${1:prefix}\",\n      \"target\",\n      \"preamble=${1:text}\",\n      \"postamble=${1:text}\"\n    ],\n    \"\\\\printunsrtabbreviations#c,\\\\printunsrtsymbols#c,\\\\printunsrtnumbers#c,\\\\printunsrtindex#c,\\\\printunsrtacronyms#c,\\\\printunsrtglossary#c,\\\\printunsrtglossary*#c,\\\\begin{printunsrtglossarywrap}#c,\\\\printunsrtglossaryunit#c\": [\n      \"leveloffset=${1:<n> or ++<n>}\",\n      \"flatten\",\n      \"groups\"\n    ],\n    \"\\\\printunsrtinnerglossary#c\": [\n      \"type=${1:glossary-label}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"target\",\n      \"targetnameprefix=${1:prefix}\",\n      \"prefix=${1:prefix}\",\n      \"groups\",\n      \"leveloffset=${1:<n> or ++<n>}\"\n    ],\n    \"\\\\setglossarystyle#c\": [\n      \"abbr-long-short\",\n      \"abbr-short-long\",\n      \"bookindex\",\n      \"long-custom1-name\",\n      \"long-custom2-name\",\n      \"long-custom3-name\",\n      \"long-desc-custom1-name\",\n      \"long-desc-custom2-name\",\n      \"long-desc-custom3-name\",\n      \"long-desc-name\",\n      \"long-desc-sym-name\",\n      \"long-desc-sym\",\n      \"long-loc-desc-name\",\n      \"long-loc-desc-sym-name\",\n      \"long-loc-sym-desc-name\",\n      \"long-name-custom1\",\n      \"long-name-custom1-desc\",\n      \"long-name-custom2\",\n      \"long-name-custom2-desc\",\n      \"long-name-custom3\",\n      \"long-name-custom3-desc\",\n      \"long-name-desc-loc\",\n      \"long-name-desc-sym-loc\",\n      \"long-name-desc-sym\",\n      \"long-name-desc\",\n      \"long-name-sym-desc-loc\",\n      \"long-name-sym-desc\",\n      \"long-sym-desc-name\",\n      \"long-sym-desc\",\n      \"table\",\n      \"topic\",\n      \"topicmcols\"\n    ],\n    \"\\\\glsxtrresourcefile#c,\\\\GlsXtrLoadResources#c\": [\n      \"charset=${1:encoding name}\",\n      \"locale=${1:lang tag}\",\n      \"interpret-preamble\",\n      \"write-preamble\",\n      \"set-widest\",\n      \"entry-type-aliases={${1:keyvals}}\",\n      \"unknown-entry-alias=${1:value}\",\n      \"action=${1|define,copy,define or copy|}\",\n      \"copy-to-glossary={${1:list}}\",\n      \"copy-to-glossary-missing-field-action=${1|skip,fallback,empty|}\",\n      \"src={${1:list}}\",\n      \"selection=${1|recorded and deps,recorded and deps and see,recorded and deps and see not also,recorded no deps,recorded and ancestors,deps but not recorded,ancestors but not recorded,selected before,all|}\",\n      \"match={${1:keyvals}}\",\n      \"match-op=${1|and,or|}\",\n      \"not-match={${1:keyvals}}\",\n      \"match-action=${1|filter,add|}\",\n      \"limit=${1:number}\",\n      \"save-child-count\",\n      \"save-sibling-count\",\n      \"save-root-ancestor\",\n      \"flatten\",\n      \"flatten-lonely=${1|false,presort,postsort|}\",\n      \"flatten-lonely-rule=${1|only unrecorded parents,discard unrecorded,no discard|}\",\n      \"flatten-lonely-condition=${1:value}\",\n      \"flatten-lonely-missing-field-action=${1|skip,fallback,empty|}\",\n      \"strip-missing-parents\",\n      \"missing-parents=${1|strip,warn,create|}\",\n      \"missing-parent-category=${2|same as child,same as base,no value,false,${1:label}|}\",\n      \"group-level=${6|{${1:n}},{>${2:n}},{>=${3:n}},{<${4:n}},{<=${5:n}},all|}\",\n      \"merge-small-groups\",\n      \"merge-small-groups=${1:n}\",\n      \"master=${1:name}\",\n      \"master-resources={${1:list}}\",\n      \"interpret-label-fields\",\n      \"labelify={${1:list}}\",\n      \"labelify-replace={${1:list}}\",\n      \"label-prefix=${1:prefix}\",\n      \"duplicate-label-suffix=${1:suffix}\",\n      \"record-label-prefix=${1:tag}\",\n      \"cs-label-prefix=${1:tag}\",\n      \"ext-prefixes={${1:list}}\",\n      \"prefix-only-existing\",\n      \"save-original-id=${2|false,true,${1:field}|}\",\n      \"save-original-id-action=${1|always,no override,changed override,changes,diff|}\",\n      \"save-definition-index\",\n      \"save-use-index\",\n      \"dependency-fields={${1:list}}\",\n      \"group=${1:label}\",\n      \"category=${2|false,same as entry,same as original entry,same as base,same as type,${1:label}|}\",\n      \"type=${2|false,same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"trigger-type=${1:type}\",\n      \"progenitor-type=${1:type}\",\n      \"progeny-type=${1:type}\",\n      \"adopted-parent-field=${1:field}\",\n      \"abbreviation-name-fallback=${1:field}\",\n      \"abbreviation-text-fallback=${1:field}\",\n      \"ignore-fields={${1:list}}\",\n      \"field-aliases={${1:keyvals}}\",\n      \"replicate-fields={${1:keyvals}}\",\n      \"replicate-override\",\n      \"replicate-missing-field-action=${1|skip,fallback,empty|}\",\n      \"assign-fields={${1:keyvals}}\",\n      \"assign-override\",\n      \"assign-missing-field-action=${1|skip,fallback,empty|}\",\n      \"counter=${1:value}\",\n      \"copy-action-group-field=${1:value}\",\n      \"copy-alias-to-see\",\n      \"save-from-see=${1:value}\",\n      \"save-from-seealso=${1:value}\",\n      \"save-from-alias=${1:value}\",\n      \"save-crossref-tail=${1:value}\",\n      \"save-original-entrytype=${1:value}\",\n      \"save-original-entrytype-action=${1|always,no override,changed override,changed,diff,changed no override|}\",\n      \"post-description-dot=${1|none,all,check|}\",\n      \"strip-trailing-nopost=${1|true,false|}\",\n      \"check-end-punctuation={${1:list}}\",\n      \"sort-label-list={${1:list}}\",\n      \"prune-xr\",\n      \"prune-see-match={${1:keyvals}}\",\n      \"prune-see-op=${1|and,or|}\",\n      \"prune-seealso-match={${1:keyvals}}\",\n      \"prune-seealso-op=${1|and,or|}\",\n      \"prune-iterations=${1:number}\",\n      \"bibtex-contributor-fields={${1:list}}\",\n      \"contributor-order=${1|surname,von,forenames|}\",\n      \"encapsulate-fields={${1:keyvals}}\",\n      \"encapsulate-fields*={${1:keyvals}}\",\n      \"format-integer-fields={${1:keyvals}}\",\n      \"format-decimal-fields={${1:keyvals}}\",\n      \"interpret-fields={${1:list}}\",\n      \"interpret-fields-action=${1|replace,replace non empty|}\",\n      \"hex-unicode-fields={${1:list}}\",\n      \"date-time-fields={${1:list}}\",\n      \"date-fields={${1:list}}\",\n      \"time-fields={${1:list}}\",\n      \"date-time-field-format=${1:value}\",\n      \"date-field-format=${1:value}\",\n      \"time-field-format=${1:value}\",\n      \"date-time-field-locale=${1:value}\",\n      \"date-field-locale=${1:value}\",\n      \"time-field-locale=${1:value}\",\n      \"prefix-fields={${1:list}}\",\n      \"append-prefix-field=${1|none,space,space or nbsp|}\",\n      \"append-prefix-field-cs=${1:cs}\",\n      \"append-prefix-field-exceptions=${1:sequence}\",\n      \"append-prefix-field-cs-exceptions=${1:sequence}\",\n      \"append-prefix-field-nbsp-match=${1:pattern}\",\n      \"no-case-change-cs={${1:list}}\",\n      \"word-boundaries={${1:list}}\",\n      \"short-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"long-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"name-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"description-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"field-case-change={${1:keyvals}}\",\n      \"short-plural-suffix=${1:suffix}\",\n      \"dual-short-plural-suffix=${1:suffix}\",\n      \"save-locations=${1|false,true,see,see not also,alias only|}\",\n      \"save-loclist\",\n      \"save-primary-locations=${1|false,retain,default format,start,remove|}\",\n      \"save-principal-locations=${1|false,retain,default format,start,remove|}\",\n      \"primary-location-formats={${1:list}}\",\n      \"principal-location-formats={${1:list}}\",\n      \"primary-loc-counters=${1|combine,match,split|}\",\n      \"principal-loc-counters=${1|combine,match,split|}\",\n      \"merge-ranges\",\n      \"min-loc-range=${1:value}\",\n      \"max-loc-diff=${1:integer}\",\n      \"suffixF=${1:value}\",\n      \"suffixFF=${1:value}\",\n      \"compact-ranges=${1:value}\",\n      \"see=${1|omit,before,after|}\",\n      \"seealso=${1|omit,before,after|}\",\n      \"alias=${1|omit,before,after|}\",\n      \"alias-loc=${1|keep,transfer,omit|}\",\n      \"loc-prefix=${1:value}\",\n      \"loc-prefix-def=${1|global,local,individual|}\",\n      \"loc-suffix=${1:value}\",\n      \"loc-suffix-def=${1|global,local,individual|}\",\n      \"loc-counters={${1:list}}\",\n      \"save-index-counter=${1:value}\",\n      \"supplemental-locations=${1:basename}\",\n      \"supplemental-selection=${1:value}\",\n      \"supplemental-category=${1:value}\",\n      \"sort=${1:value}\",\n      \"shuffle=${1:seed}\",\n      \"sort-field=${1:field}\",\n      \"missing-sort-fallback=${1:field}\",\n      \"custom-sort-fallbacks={${1:keyvals}}\",\n      \"entry-sort-fallback=${1:field}\",\n      \"abbreviation-sort-fallback=${1:field}\",\n      \"symbol-sort-fallback=${1:field}\",\n      \"bibtexentry-sort-fallback=${1:field}\",\n      \"field-concat-sep=${1:separator}\",\n      \"trim-sort\",\n      \"sort-replace={${1:list}}\",\n      \"sort-rule=${1:value}\",\n      \"break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"break-marker=${1:marker}\",\n      \"break-at-match={${1:keyvals}}\",\n      \"break-at-match-op=${1|and,or|}\",\n      \"break-at-not-match={${1:keyvals}}\",\n      \"sort-number-pad=${1:number}\",\n      \"sort-pad-plus=${1:marker}\",\n      \"sort-pad-minus=${1:marker}\",\n      \"identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"sort-suffix-marker=${1:marker}\",\n      \"encapsulate-sort=${1:csname}\",\n      \"strength=${1|primary,secondary,tertiary,identical|}\",\n      \"decomposition=${1|canonical,full,none|}\",\n      \"letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"numeric-sort-pattern=${1:value}\",\n      \"numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"secondary=${1:value}\",\n      \"secondary-match={${1:keyvals}}\",\n      \"secondary-not-match={${1:keyvals}}\",\n      \"secondary-match-op=${1|and,or|}\",\n      \"secondary-match-action=${1|filter,add|}\",\n      \"secondary-missing-sort-fallback=${1:field}\",\n      \"secondary-trim-sort\",\n      \"secondary-sort-replace={${1:list}}\",\n      \"secondary-sort-rule=${1:value}\",\n      \"secondary-break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"secondary-break-marker=${1:marker}\",\n      \"secondary-break-at-match={${1:keyvals}}\",\n      \"secondary-break-at-match-op=${1|and,or|}\",\n      \"secondary-break-at-not-match={${1:keyvals}}\",\n      \"secondary-sort-number-pad=${1:number}\",\n      \"secondary-sort-pad-plus=${1:marker}\",\n      \"secondary-sort-pad-minus=${1:marker}\",\n      \"secondary-identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"secondary-sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"secondary-sort-suffix-marker=${1:marker}\",\n      \"secondary-strength=${1|primary,secondary,tertiary,identical|}\",\n      \"secondary-decomposition=${1|canonical,full,none|}\",\n      \"secondary-letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"secondary-letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"secondary-numeric-sort-pattern=${1:value}\",\n      \"secondary-numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"secondary-date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"secondary-date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"secondary-group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"dual-prefix=${1:prefix}\",\n      \"primary-dual-dependency\",\n      \"combine-dual-locations=${1|false,both,dual,primary,dual retain principal,primary retain principal|}\",\n      \"dual-type=${2|false,same as entry,same as original entry,same as base,same as primary,same as parent,same as category,${1:label}|}\",\n      \"dual-category=${2|false,same as entry,same as original entry,same as base,same as primary,same as type,${1:label}|}\",\n      \"dual-counter=${1:value}\",\n      \"dual-short-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"dual-long-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"dual-field=${1:value}\",\n      \"dual-date-time-field-format=${1:value}\",\n      \"dual-date-field-format=${1:value}\",\n      \"dual-time-field-format=${1:value}\",\n      \"dual-date-time-field-locale=${1:value}\",\n      \"dual-date-field-locale=${1:value}\",\n      \"date-time-field-locale=${1:value}\",\n      \"dual-sort=${1:value}\",\n      \"dual-sort-field=${1:value}\",\n      \"dual-missing-sort-fallback=${1:field}\",\n      \"dual-trim-sort\",\n      \"dual-sort-replace={${1:list}}\",\n      \"dual-sort-rule=${1:value}\",\n      \"dual-break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"dual-break-marker=${1:marker}\",\n      \"dual-break-at-match={${1:keyvals}}\",\n      \"dual-break-at-match-op=${1|and,or|}\",\n      \"dual-break-at-not-match={${1:keyvals}}\",\n      \"dual-sort-number-pad=${1:number}\",\n      \"dual-sort-pad-plus=${1:marker}\",\n      \"dual-sort-pad-minus=${1:marker}\",\n      \"dual-identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"dual-sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"dual-sort-suffix-marker=${1:marker}\",\n      \"dual-strength=${1|primary,secondary,tertiary,identical|}\",\n      \"dual-decomposition=${1|canonical,full,none|}\",\n      \"dual-letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"dual-letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"dual-numeric-sort-pattern=${1:value}\",\n      \"dual-numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"dual-date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"dual-date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"dual-group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"dual-entry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-abbrv-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-abbrventry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-symbol-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexentry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexsymbol-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexabbrv-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-entry-backlink\",\n      \"dual-abbrv-backlink\",\n      \"dual-symbol-backlink\",\n      \"dual-abbrventry-backlink\",\n      \"dual-entryabbrv-backlink\",\n      \"dual-indexentry-backlink\",\n      \"dual-indexsymbol-backlink\",\n      \"dual-indexabbrv-backlink\",\n      \"dual-backlink\",\n      \"tertiary-prefix=${1:prefix}\",\n      \"tertiary-type=${1:value}\",\n      \"tertiary-category=${1:value}\",\n      \"compound-options-global\",\n      \"compound-dependent\",\n      \"compound-add-hierarchy\",\n      \"compound-has-records\",\n      \"compound-adjust-name=${1|false,unique,once|}\",\n      \"compound-main-type=${2|same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"compound-other-type=${2|same as main,same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"compound-type-override\",\n      \"compound-write-def=${1|none,all,ref|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries-extra#c\",\n    \"\\\\usepackage/glossaries-extra#c,\\\\glossariesextrasetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossaries-prefix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{term{\",\n        \"snippet\": \"newterm{term{\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:style name list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary-type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:codepage}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:H-prefix}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:name}}{${2:xindy code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsprefixsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pgls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pgls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pgls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PGLS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLS[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pglspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pglspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pglspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"pglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pglspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pglspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pglspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Pglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Pglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Pglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PGLSpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PGLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PGLSpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PGLSpl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PGLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"PGLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PGLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifglshasprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasprefix{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasprefixplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasprefixplural{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasprefixfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasprefixfirst{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasprefixfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasprefixfirstplural{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprefix{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprefixfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprefixfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprefixplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprefixplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprefixfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprefixfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryprefix{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryprefixfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryprefixfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryprefixplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryprefixplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryprefixfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryprefixfirstplural{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/glossaries-prefix#c\": [\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"languages=${1:language}\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindy={${1:options}}\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"acronyms\",\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronymlists={${1:label-list}}\",\n      \"shortcuts\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs=${1|false,true,nowarn|}\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c,\\\\longnewglossaryentry*#c,\\\\newentry#c,\\\\newabbr#c,\\\\newsym#c,\\\\newnum#c,\\\\glsxtrnewsymbol#c,\\\\glsxtrnewnumber#c,\\\\newabbreviation#c\": [\n      \"prefix=${1:text}\",\n      \"prefixplural=${1:text}\",\n      \"prefixfirst=${1:text}\",\n      \"prefixfirstplural=${1:text}\"\n    ],\n    \"\\\\pgls#c,\\\\Pgls#c,\\\\PGLS#c,\\\\pglspl#c,\\\\Pglspl#c,\\\\PGLSpl#c\": [\n      \"hyper\",\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\pgls*#c,\\\\pgls+#c,\\\\Pgls*#c,\\\\Pgls+#c,\\\\PGLS*#c,\\\\PGLS+#c,\\\\pglspl*#c,\\\\pglspl+#c,\\\\Pglspl*#c,\\\\Pglspl+#c,\\\\PGLSpl*#c,\\\\PGLSpl+#c\": [\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries-prefix#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossaries.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mfirstuc\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"datatool-base\"\n    },\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"glossary-hypernav\"\n    },\n    {\n      \"name\": \"glossary-list\"\n    },\n    {\n      \"name\": \"glossary-long\"\n    },\n    {\n      \"name\": \"glossary-super\"\n    },\n    {\n      \"name\": \"glossary-tree\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate\"\n    },\n    {\n      \"name\": \"translator\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"tracklang\",\n      \"if\": \"translate=true\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsindexingsetting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsSetQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetQuote{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtarget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetinner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetinner{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetfonttext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetfonttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetouter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetouter{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowtargetfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowaccsupp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsshowaccsupp{${1:options}}{${2:tag}}{${3:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkcheckfirsthyperhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglstoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarysection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarysection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsucmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsucmarkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsucmarktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsautoprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsrefentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsrefentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GlsEntryCounterLabelPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsstepentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsstepentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theglossaryentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycounterlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycounterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycountertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetsubentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsstepsubentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsstepsubentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theglossarysubentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycounterlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglssubentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycounterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssubentrycountertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarystyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarystyle{${1:style name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setglossarystyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsnogroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnogroupskipfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnogroupskiptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglswrallowprimitivemods\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrallowprimitivemodstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrallowprimitivemodsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsindexonlyfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsindexonlyfirstfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsindexonlyfirsttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswriteentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glswriteentry{${1:label}}{${2:wr-code}}\"\n      }\n    },\n    {\n      \"name\": \"glssortnumberfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssortnumberfmt{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"glsprestandardsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsprestandardsort{${1:sort cs}}{${2:type}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdosanitizesort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsxindy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxindyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxindytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsDeclareNoHyperList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsDeclareNoHyperList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareAcronymList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcronymList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"SetAcronymLists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAcronymLists{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"glsIfListOfAcronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsIfListOfAcronyms{${1:glossary-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DefineAcronymSynonyms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupglossaries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupglossaries{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"makenoidxglossaries\"\n    },\n    {\n      \"name\": \"makeglossaries\"\n    },\n    {\n      \"name\": \"writeist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setStyleFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setStyleFile{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetWriteIstHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetWriteIstHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"glswrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noist\"\n    },\n    {\n      \"name\": \"glsSetCompositor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetCompositor{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"glsSetAlphaCompositor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetAlphaCompositor{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossaryentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"longnewglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longnewglossaryentry{${1:label}}{${2:keyvals}}{${3:description}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"provideglossaryentry{${1:label}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"longprovideglossaryentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"longprovideglossaryentry{${1:label}}{${2:keyvals}}{${3:description}}\",\n        \"keys\": [\n          \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nopostdesc\"\n    },\n    {\n      \"name\": \"glspar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"glsaddkey{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}{${4:nolink ucfirst cs%cmd}}{${5:link cs%cmd}}{${6:link ucfirst cs%cmd}}{${7:link allcaps cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddkey*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"glsaddkey*{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}{${4:nolink ucfirst cs%cmd}}{${5:link cs%cmd}}{${6:link ucfirst cs%cmd}}{${7:link allcaps cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddstoragekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsaddstoragekey{${1:key%plain}}{${2:default}}{${3:nolink cs%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glssetexpandfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetexpandfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"glssetnoexpandfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetnoexpandfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsexpandfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoexpandfields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadglsentries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadglsentries{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadglsentries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loadglsentries[${2:type}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"glsmoveentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmoveentry{${1:label}}{${2:target glossary label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glstextformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstextformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glspatchtabularx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"gls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"gls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gls[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Gls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Gls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Gls[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLS[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLS{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLS[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glspl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSpl[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdisp{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsdisp[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdisp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glsdisp{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdisp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glsdisp[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslink{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glslink[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glslink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Glslink{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Glslink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Glslink[${3:options%keyvals}]{${1:label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glstext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glstext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glstext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glstext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glstext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glstext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glstext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glstext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLStext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLStext[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLStext{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLStext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLStext[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSfirst[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSfirst{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSfirst[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSfirstplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSfirstplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSfirstplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSname[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSname{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSname[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glssymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glssymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glssymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glssymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glssymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glssymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glssymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glssymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSsymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSsymbol[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSsymbol{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSsymbol[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glssymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glssymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glssymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glssymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glssymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glssymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glssymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glssymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSsymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSsymbolplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSsymbolplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSsymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSsymbolplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSdesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSdesc[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSdesc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSdesc[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSdescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSdescplural[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSdescplural{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSdescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSdescplural[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseri[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseri{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseri[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuserii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuserii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuserii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseriii[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseriii{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseriii[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuseriv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuseriv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuseriv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuserv[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuserv{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuserv[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"glsuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"glsuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Glsuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Glsuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Glsuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Glsuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLSuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GLSuservi[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GLSuservi{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"GLSuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"GLSuservi[${2:options%keyvals}]{${1:label}}[${3:insert}]\",\n        \"keys\": [\n          \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsentryfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defglsentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defglsentryfmt{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defglsentryfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defglsentryfmt[${2:glossary-type}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glslabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifplural{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glscapscase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glscapscase{${1:no case}}{${2:first uc}}{${3:all caps}}\"\n      }\n    },\n    {\n      \"name\": \"glscustomtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifhyperon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifhyperon{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkvar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glslinkvar{${1:unmodified}}{${2:star case}}{${3:plus case}}\"\n      }\n    },\n    {\n      \"name\": \"glsgenentryfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgenacfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"genplacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genplacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Genacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Genacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Genplacrfullformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Genplacrfullformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"glslinkpostsetkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostlinkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdisablehyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsenablehyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrytitlecase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsentrytitlecase{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glshyperlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glshyperlink{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glshyperlink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glshyperlink[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentryname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrytext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrytext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrytext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrytext{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfirst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfirst{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfirstplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfirstplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentrydesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentrydesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrydescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrydescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrydescplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrydescplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glossentrysymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glossentrysymbol{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrysymbolplural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrysymbolplural{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseri{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuserii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuserii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseriii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseriii{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuseriv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuseriv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuserv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuserv{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryuservi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryuservi{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrynumberlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrynumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsdisplaynumberlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsdisplaynumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumlistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnumlistlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoidxdisplayloclisthandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxdisplayloclisthandler{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"newacronym\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacronym{${1:label}}{${2:abbrv}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newacronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newacronym[${4:options%keyvals}]{${1:label}}{${2:abbrv}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\newacronym#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsacrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRshort[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRshort{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRshort[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRshortpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRshortpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRshortpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRlong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRlong[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRlong{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRlong[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRlongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRlongpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRlongpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRlongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRlongpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRfull[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRfull{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRfull[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acrfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acrfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acrfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acrfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acrfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ACRfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ACRfullpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ACRfullpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ACRfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ACRfullpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acrfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ACRfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Acrfullfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"ACRfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ACRfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"Acrfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Acrfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"acrfullplfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acrfullplfmt{${1:options%keyvals}}{${2:label}}{${3:insert}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"glsentrylong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrylong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrylong{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrylongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrylongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentrylongpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentrylongpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryshort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryshortpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryshortpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfull{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Glsentryfullpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Glsentryfullpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setacronymstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setacronymstyle{${1:style-name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setacronymstyle#c,\\\\GlsUseAcrEntryDispStyle#c,\\\\GlsUseAcrStyleDefs#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"acronymentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronymsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acronymsort{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"firstacronymfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstacronymfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acronymfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronymfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"acrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsupacrpluralsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstextup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstextup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsacspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsacspace{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newacronymstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newacronymstyle{${1:name%specialDef}}{${2:format def}}{${3:style defs}}\"\n      }\n    },\n    {\n      \"name\": \"renewacronymstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewacronymstyle{${1:name}}{${2:format def}}{${3:style defs}}\"\n      }\n    },\n    {\n      \"name\": \"GenericAcronymFields\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glskeylisttok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabeltok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshorttok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsUseAcrEntryDispStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsUseAcrEntryDispStyle{${1:style-name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GlsUseAcrStyleDefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsUseAcrStyleDefs{${1:style-name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"oldacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oldacronym{${1:short}}{${2:long}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"oldacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"oldacronym[${4:label}]{${1:short}}{${2:long}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"glsreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalreset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslocalunset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslocalunset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsresetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glslocalresetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocalresetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glslocalresetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsunsetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsunsetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsunsetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glslocalunsetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocalunsetall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glslocalunsetall[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glsenableentrycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsresetcurrcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetcurrcounttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsresetcurrcountfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsentrycurrcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrycurrcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryprevcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryprevcount{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cgls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cgls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cgls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cgls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGls[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGls{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGls[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cglspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cglspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cglspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cglspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cGlspl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cGlspl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cGlspl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cGlspl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"cGlspl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"cglsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cglsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cglsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cglsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cGlsformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGlsformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"cGlsplformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cGlsplformat{${1:label}}{${2:insert}}\"\n      }\n    },\n    {\n      \"name\": \"printnoidxglossaries\"\n    },\n    {\n      \"name\": \"printglossaries\"\n    },\n    {\n      \"name\": \"printnoidxglossary\"\n    },\n    {\n      \"name\": \"printnoidxglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnoidxglossary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printglossary\"\n    },\n    {\n      \"name\": \"printglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printglossary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currentglossary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarysection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossarysection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"glossarysection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glossarysection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"glsglossarymark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsglossarymark{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsclearpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarytitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossarytoctitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssettoctitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssettoctitle{${1:glossary-type}}\"\n      }\n    },\n    {\n      \"name\": \"glossarypreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setglossarypreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setglossarypreamble{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setglossarypreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setglossarypreamble[${2:type}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossarypostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryentrynumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glossaryentrynumbers{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glsresetentrylist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnoidxprenumberlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxprenumberlist{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnonextpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsnextpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newglossary\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newglossary{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newglossary[${5:log-ext}]{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"newglossary[${5:log-ext}]{${1:name}}{${2:in-ext}}{${3:out-ext}}{${4:title%text}}[${6:counter}]\"\n      }\n    },\n    {\n      \"name\": \"newglossary*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossary*{${1:name}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossary*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newglossary*{${1:name}}{${2:title%text}}[${3:counter}]\"\n      }\n    },\n    {\n      \"name\": \"altnewglossary\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"altnewglossary{${1:name}}{${2:tag}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"altnewglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"altnewglossary{${1:name}}{${2:tag}}{${3:title%text}}[${4:counter}]\"\n      }\n    },\n    {\n      \"name\": \"newignoredglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newignoredglossary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifignoredglossary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifignoredglossary{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"acronymtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsadd{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsadd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsadd[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddall\"\n    },\n    {\n      \"name\": \"glsaddall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsaddall[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\glsaddall#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glsaddallunused\"\n    },\n    {\n      \"name\": \"glsaddallunused\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsaddallunused[${1:glossary types}]\"\n      }\n    },\n    {\n      \"name\": \"glssee\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glssee{${1:label}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glssee\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glssee[${3:tag}]{${1:label}}{${2:xr-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsseeformat{${1:xr-list}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsseeformat[${3:tag}]{${1:xr-list}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsseelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseelist{${1:label-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsseesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsseelastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsseeitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseeitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsseeitemformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsseeitemformat{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"delimN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsignore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsignore{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnumberformat{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glshypernumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glshypernumber{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"glswrglosslocationtextfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glswrglosslocationtextfmt{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"setentrycounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setentrycounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"setentrycounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setentrycounter[${2:prefix}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrglossdisableanchorcmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswrglosslocationtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glswrglosslocationtarget{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"delimR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsSetSuffixF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetSuffixF{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"glsSetSuffixFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsSetSuffixFF{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"glswrglossdisablelocationcmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslocationcstoencap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslocationcstoencap{${1:encap-csname}}{${2:location-csname}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxloclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxloclist{${1:list cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxloclisthandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxloclisthandler{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumberlistloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsnumberlistloop{${1:label}}{${2:handler cs}}{${3:xr handler cs}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxdisplayloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glsnoidxdisplayloc{${1:prefix}}{${2:counter}}{${3:format}}{${4:location}}\"\n      }\n    },\n    {\n      \"name\": \"glsnoidxnumberlistloophandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnoidxnumberlistloophandler{${1:location item}}\"\n      }\n    },\n    {\n      \"name\": \"glsnamefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnamefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newglossarystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newglossarystyle{${1:name%specialDef}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"renewglossarystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewglossarystyle{${1:name}}{${2:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glssubentryitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssubentryitem{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstarget{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glolinkprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgetgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgetgrouptitle{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsgroupheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgroupheading{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glossentry{${1:label}}{${2:number-list}}\"\n      }\n    },\n    {\n      \"name\": \"subglossentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subglossentry{${1:level}}{${2:label}}{${3:number-list}}\"\n      }\n    },\n    {\n      \"name\": \"glsgroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsopenbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsclosebrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspercentchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstildechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsbackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:style-name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:style name list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary-type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:codepage}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:H-prefix}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:name}}{${2:xindy code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"glsdonohyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdonohyperlink{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohypertarget{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohyperlink{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohypertargethook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohypertargethook{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsdohyperlinkhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdohyperlinkhook{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslabelhypertarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslabelhypertarget{${1:target}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslabelhypertargetprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabelhypertargetdefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslabelhypertargetvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstexorpdfstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstexorpdfstring{${1:TeX string}}{${2:PDF string}}\"\n      }\n    },\n    {\n      \"name\": \"glsuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsuppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glssentencecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssentencecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glscapitalisewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscapitalisewords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfuexcl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsmfuexcl{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfublocker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsmfublocker{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsmfuaddmap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmfuaddmap{${1:cmd1%cmd}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"forallglossaries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallglossaries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglossaries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forallglossaries[${3:types}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallacronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallacronyms{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forglsentries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forglsentries[${3:glossary label}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forallglsentries{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"forallglsentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"forallglsentries[${3:types}]{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"ifglossaryexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglossaryexists{${1:glossary-type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsentryexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsentryexists{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexists{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifnoexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifnoexists{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexistsorwarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexistsorwarn{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"glsdoifexistsordo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsdoifexistsordo{${1:label}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsused{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshaschildren\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshaschildren{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasparent{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshassymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshassymbol{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshaslong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshaslong{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasshort{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasdesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglshasdesc{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsdescsuppressed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifglsdescsuppressed{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfieldvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifglsfieldvoid{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshasfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifglshasfield{${1:field}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"glscurrentfieldvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifglsfieldeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfieldeq{${1:label}}{${2:field}}{${3:string}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfielddefeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfielddefeq{${1:label}}{${2:field}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifglsfieldcseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifglsfieldcseq{${1:label}}{${2:field}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasureheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasureheight{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasuredepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasuredepth{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmeasurewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsmeasurewidth{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsifmeasuring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsifmeasuring{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrytype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrytype{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentryparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentryparent{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsentrysort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsentrysort{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldfetch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldfetch{${1:label}}{${2:field}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"glsletentryfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsletentryfield{${1:cmd}}{${2:label}}{${3:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsunexpandedfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsunexpandedfieldvalue{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"glsfielddef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfielddef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldedef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldedef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldgdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldgdef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"glsfieldxdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsfieldxdef{${1:label}}{${2:field}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"acrnameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acrnameformat{${1:short text}}{${2:long text}}\"\n      }\n    },\n    {\n      \"name\": \"acronymname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addglossarytocaptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addglossarytocaptions{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glscurrententrylabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsdefaulttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glshyperfirstfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glshyperfirsttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsifusedtranslatordict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsifusedtranslatordict{${1:lang}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsnumbersgroupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssymbolsgroupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glswritedefhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperbf{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperemph{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperit{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypermd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypermd{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperrm{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersc{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersf{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypersl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersl{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hypertt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypertt{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"hyperup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperup{${1:locations}}\"\n      }\n    },\n    {\n      \"name\": \"ifglshyperfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newacronymhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelistname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesGlossariesLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesGlossariesLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"RequireGlossariesLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireGlossariesLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsaddprotectedpagefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaddprotectedpagefmt{${1:internal cs name}}\"\n      }\n    },\n    {\n      \"name\": \"glsgetgrouplabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgetgrouplabel{${1:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theglossary\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/glossaries#c\": [\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"languages=${1:language}\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindy={${1:options}}\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"acronyms\"\n    ],\n    \"\\\\usepackage/glossaries#c,\\\\setupglossaries\": [\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronymlists={${1:label-list}}\",\n      \"shortcuts\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs=${1|false,true,nowarn|}\"\n    ],\n    \"\\\\setglossarystyle#c\": [\n      \"list\",\n      \"listgroup\",\n      \"listhypergroup\",\n      \"altlist\",\n      \"altlistgroup\",\n      \"altlisthypergroup\",\n      \"listdotted\",\n      \"sublistdotted\",\n      \"index\",\n      \"indexgroup\",\n      \"indexhypergroup\",\n      \"tree\",\n      \"treegroup\",\n      \"treehypergroup\",\n      \"treenoname\",\n      \"treenonamegroup\",\n      \"treenonamehypergroup\",\n      \"alttree\",\n      \"alttreegroup\",\n      \"alttreehypergroup\",\n      \"mcolindex\",\n      \"mcolindexgroup\",\n      \"mcolindexhypergroup\",\n      \"mcolindexspannav\",\n      \"mcoltree\",\n      \"mcoltreegroup\",\n      \"mcoltreehypergroup\",\n      \"mcoltreespannav\",\n      \"mcoltreenoname\",\n      \"mcoltreenonamegroup\",\n      \"mcoltreenonamehypergroup\",\n      \"mcoltreenonamespannav\",\n      \"mcolalttree\",\n      \"mcolalttreegroup\",\n      \"mcolalttreehypergroup\",\n      \"mcolalttreespannav\",\n      \"long\",\n      \"longborder\",\n      \"longheader\",\n      \"longheaderborder\",\n      \"long3col\",\n      \"long3colborder\",\n      \"long3colheader\",\n      \"long3colheaderborder\",\n      \"long4col\",\n      \"long4colborder\",\n      \"long4colheader\",\n      \"long4colheaderborder\",\n      \"altlong4col\",\n      \"altlong4colborder\",\n      \"altlong4colheader\",\n      \"altlong4colheaderborder\",\n      \"longragged\",\n      \"longraggedborder\",\n      \"longraggedheader\",\n      \"longraggedheaderborder\",\n      \"longragged3col\",\n      \"longragged3colborder\",\n      \"longragged3colheader\",\n      \"longragged3colheaderborder\",\n      \"altlongragged4col\",\n      \"altlongragged4colborder\",\n      \"altlongragged4colheader\",\n      \"altlongragged4colheaderborder\",\n      \"long-booktabs\",\n      \"long3col-booktabs\",\n      \"long4col-booktabs\",\n      \"altlong4col-booktabs\",\n      \"longragged-booktabs\",\n      \"longragged3col-booktabs\",\n      \"altlongragged4col-booktabs\",\n      \"super\",\n      \"superborder\",\n      \"superheader\",\n      \"superheaderborder\",\n      \"super3col\",\n      \"super3colborder\",\n      \"super3colheader\",\n      \"super3colheaderborder\",\n      \"super4col\",\n      \"super4colborder\",\n      \"super4colheader\",\n      \"super4colheaderborder\",\n      \"altsuper4col\",\n      \"altsuper4colborder\",\n      \"altsuper4colheader\",\n      \"altsuper4colheaderborder\",\n      \"superragged\",\n      \"superraggedborder\",\n      \"superraggedheader\",\n      \"superraggedheaderborder\",\n      \"superragged3col\",\n      \"superragged3colborder\",\n      \"superragged3colheader\",\n      \"superragged3colheaderborder\",\n      \"altsuperragged4col\",\n      \"altsuperragged4colborder\",\n      \"altsuperragged4colheader\",\n      \"altsuperragged4colheaderborder\",\n      \"inline\",\n      \"%glossarystyle\"\n    ],\n    \"\\\\newglossaryentry#c,\\\\longnewglossaryentry#c,\\\\provideglossaryentry#c,\\\\longprovideglossaryentry#c,\\\\newacronym#c,\\\\newterm#c\": [\n      \"name=${1:text}\",\n      \"description=${1:text}\",\n      \"parent=${1:parent-label}\",\n      \"descriptionplural=${1:text}\",\n      \"text=${1:text}\",\n      \"first=${1:text}\",\n      \"plural=${1:text}\",\n      \"firstplural=${1:text}\",\n      \"symbol=${1:symbol}\",\n      \"symbolplural=${1:symbol}\",\n      \"sort=${1:entry-name}\",\n      \"type=${1:glossary-label}\",\n      \"user1=${1:text}\",\n      \"user2=${1:text}\",\n      \"user3=${1:text}\",\n      \"user4=${1:text}\",\n      \"user5=${1:text}\",\n      \"user6=${1:text}\",\n      \"nonumberlist\",\n      \"see={${1:xr-list}}\",\n      \"see={[${1:tag}]${2:xr-list}}\"\n    ],\n    \"\\\\gls#c,\\\\Gls#c,\\\\GLS#c,\\\\glspl#c,\\\\Glspl#c,\\\\GLSpl#c,\\\\glsdisp#c,\\\\Glsdisp#c,\\\\glslink#c,\\\\Glslink#c,\\\\glstext#c,\\\\Glstext#c,\\\\GLStext#c,\\\\glsfirst#c,\\\\Glsfirst#c,\\\\GLSfirst#c,\\\\glsplural#c,\\\\Glsplural#c,\\\\GLSplural#c,\\\\glsfirstplural#c,\\\\Glsfirstplural#c,\\\\GLSfirstplural#c,\\\\glsname#c,\\\\Glsname#c,\\\\GLSname#c,\\\\glssymbol#c,\\\\Glssymbol#c,\\\\GLSsymbol#c,\\\\glssymbolplural#c,\\\\Glssymbolplural#c,\\\\GLSsymbolplural#c,\\\\glsdesc#c,\\\\Glsdesc#c,\\\\GLSdesc#c,\\\\glsdescplural#c,\\\\Glsdescplural#c,\\\\GLSdescplural#c,\\\\glsuseri#c,\\\\Glsuseri#c,\\\\GLSuseri#c,\\\\glsuserii#c,\\\\Glsuserii#c,\\\\GLSuserii#c,\\\\glsuseriii#c,\\\\Glsuseriii#c,\\\\GLSuseriii#c,\\\\glsuseriv#c,\\\\Glsuseriv#c,\\\\GLSuseriv#c,\\\\glsuserv#c,\\\\Glsuserv#c,\\\\GLSuserv#c,\\\\glsuservi#c,\\\\Glsuservi#c,\\\\GLSuservi#c,\\\\cgls#c,\\\\cGls#c,\\\\cglspl#c,\\\\cGlspl#c,\\\\acrshort#c,\\\\Acrshort#c,\\\\acrshortpl#c,\\\\Acrshortpl#c,\\\\acrlong#c,\\\\Acrlong#c,\\\\acrlongpl#c,\\\\Acrlongpl#c,\\\\acrfull#c,\\\\Acrfull#c,\\\\acrfullpl#c,\\\\Acrfullpl#c,\\\\acs#c,\\\\Acs#c,\\\\acsp#c,\\\\Acsp#c,\\\\acl#c,\\\\Acl#c,\\\\aclp#c,\\\\Aclp#c,\\\\acf#c,\\\\Acf#c,\\\\acfp#c,\\\\Acfp#c,\\\\ac#c,\\\\Ac#c,\\\\acp#c,\\\\Acp#c,\\\\acrfullfmt#c,\\\\ACRfullfmt#c,\\\\Acrfullfmt#c,\\\\ACRfullplfmt#c,\\\\Acrfullplfmt#c,\\\\acrfullplfmt#c\": [\n      \"hyper\",\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\gls*#c,\\\\gls+#c,\\\\Gls*#c,\\\\Gls+#c,\\\\GLS*#c,\\\\GLS+#c,\\\\glspl*#c,\\\\glspl+#c,\\\\Glspl*#c,\\\\Glspl+#c,\\\\GLSpl*#c,\\\\GLSpl+#c,\\\\glsdisp*#c,\\\\glsdisp+#c,\\\\Glsdisp*#c,\\\\Glsdisp+#c,\\\\glslink*#c,\\\\glslink+#c,\\\\Glslink*#c,\\\\Glslink+#c,\\\\glstext*#c,\\\\glstext+#c,\\\\Glstext*#c,\\\\Glstext+#c,\\\\GLStext*#c,\\\\GLStext+#c,\\\\glsfirst*#c,\\\\glsfirst+#c,\\\\Glsfirst*#c,\\\\Glsfirst+#c,\\\\GLSfirst*#c,\\\\GLSfirst+#c,\\\\glsplural*#c,\\\\glsplural+#c,\\\\Glsplural*#c,\\\\Glsplural+#c,\\\\GLSplural*#c,\\\\GLSplural+#c,\\\\glsfirstplural*#c,\\\\glsfirstplural+#c,\\\\Glsfirstplural*#c,\\\\Glsfirstplural+#c,\\\\GLSfirstplural*#c,\\\\GLSfirstplural+#c,\\\\glsname*#c,\\\\glsname+#c,\\\\Glsname*#c,\\\\Glsname+#c,\\\\GLSname*#c,\\\\GLSname+#c,\\\\glssymbol*#c,\\\\glssymbol+#c,\\\\Glssymbol*#c,\\\\Glssymbol+#c,\\\\GLSsymbol*#c,\\\\GLSsymbol+#c,\\\\glssymbolplural*#c,\\\\glssymbolplural+#c,\\\\Glssymbolplural*#c,\\\\Glssymbolplural+#c,\\\\GLSsymbolplural*#c,\\\\GLSsymbolplural+#c,\\\\glsdesc*#c,\\\\glsdesc+#c,\\\\Glsdesc*#c,\\\\Glsdesc+#c,\\\\GLSdesc*#c,\\\\GLSdesc+#c,\\\\glsdescplural*#c,\\\\glsdescplural+#c,\\\\Glsdescplural*#c,\\\\Glsdescplural+#c,\\\\GLSdescplural*#c,\\\\GLSdescplural+#c,\\\\glsuseri*#c,\\\\glsuseri+#c,\\\\Glsuseri*#c,\\\\Glsuseri+#c,\\\\GLSuseri*#c,\\\\GLSuseri+#c,\\\\glsuserii*#c,\\\\glsuserii+#c,\\\\Glsuserii*#c,\\\\Glsuserii+#c,\\\\GLSuserii*#c,\\\\GLSuserii+#c,\\\\glsuseriii*#c,\\\\glsuseriii+#c,\\\\Glsuseriii*#c,\\\\Glsuseriii+#c,\\\\GLSuseriii*#c,\\\\GLSuseriii+#c,\\\\glsuseriv*#c,\\\\glsuseriv+#c,\\\\Glsuseriv*#c,\\\\Glsuseriv+#c,\\\\GLSuseriv*#c,\\\\GLSuseriv+#c,\\\\glsuserv*#c,\\\\glsuserv+#c,\\\\Glsuserv*#c,\\\\Glsuserv+#c,\\\\GLSuserv*#c,\\\\GLSuserv+#c,\\\\glsuservi*#c,\\\\glsuservi+#c,\\\\Glsuservi*#c,\\\\Glsuservi+#c,\\\\GLSuservi*#c,\\\\GLSuservi+#c,\\\\cgls*#c,\\\\cgls+#c,\\\\cGls*#c,\\\\cGls+#c,\\\\cglspl*#c,\\\\cglspl+#c,\\\\cGlspl*#c,\\\\cGlspl+#c,\\\\acrshort*#c,\\\\acrshort+#c,\\\\Acrshort*#c,\\\\Acrshort+#c,\\\\acrshortpl*#c,\\\\acrshortpl+#c,\\\\Acrshortpl*#c,\\\\Acrshortpl+#c,\\\\acrlong*#c,\\\\acrlong+#c,\\\\Acrlong*#c,\\\\Acrlong+#c,\\\\acrlongpl*#c,\\\\acrlongpl+#c,\\\\Acrlongpl*#c,\\\\Acrlongpl+#c,\\\\acrfull*#c,\\\\acrfull+#c,\\\\Acrfull*#c,\\\\Acrfull+#c,\\\\acrfullpl*#c,\\\\acrfullpl+#c,\\\\Acrfullpl*#c,\\\\Acrfullpl+#c,\\\\acs*#c,\\\\acs+#c,\\\\Acs*#c,\\\\Acs+#c,\\\\acsp*#c,\\\\acsp+#c,\\\\Acsp*#c,\\\\Acsp+#c,\\\\acl*#c,\\\\acl+#c,\\\\Acl*#c,\\\\Acl+#c,\\\\aclp*#c,\\\\aclp+#c,\\\\Aclp*#c,\\\\Aclp+#c,\\\\acf*#c,\\\\acf+#c,\\\\Acf*#c,\\\\Acf+#c,\\\\acfp*#c,\\\\acfp+#c,\\\\Acfp*#c,\\\\Acfp+#c,\\\\ac*#c,\\\\ac+#c,\\\\Ac*#c,\\\\Ac+#c,\\\\acp*#c,\\\\acp+#c,\\\\Acp*#c,\\\\Acp+#c,\\\\glsadd#c,\\\\glsaddall#c\": [\n      \"format=${1:csname}\",\n      \"counter=${1:counter}\",\n      \"local\"\n    ],\n    \"\\\\newacronym#c\": [\n      \"long=${1:text}\",\n      \"longplural=${1:text}\",\n      \"short=${1:text}\",\n      \"shortplural=${1:text}\"\n    ],\n    \"\\\\setacronymstyle#c,\\\\GlsUseAcrEntryDispStyle#c,\\\\GlsUseAcrStyleDefs#c\": [\n      \"long-short\",\n      \"long-sc-short\",\n      \"long-sm-short\",\n      \"long-sp-short\",\n      \"short-long\",\n      \"sc-short-long\",\n      \"sm-short-long\",\n      \"long-short-desc\",\n      \"long-sc-short-desc\",\n      \"long-sm-short-desc\",\n      \"long-sp-short-desc\",\n      \"short-long-desc\",\n      \"sc-short-long-desc\",\n      \"sm-short-long-desc\",\n      \"dua\",\n      \"dua-desc\",\n      \"footnote\",\n      \"footnote-sc\",\n      \"footnote-sm\",\n      \"footnote-desc\",\n      \"footnote-sc-desc\",\n      \"footnote-sm-desc\",\n      \"%acronymstyle\"\n    ],\n    \"\\\\printnoidxglossary#c,\\\\printglossary#c,\\\\printsymbols#c,\\\\printnumbers#c,\\\\printindex#c,\\\\printacronyms#c\": [\n      \"type=${1:glossary-label}\",\n      \"title=${1:text}\",\n      \"toctitle=${1:text}\",\n      \"style=${1:style-name}\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|use,def,nocase,case,word,letter,standard|}\"\n    ],\n    \"\\\\glsaddall#c\": [\n      \"types={${1:glossary-list}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/glossaries#c\",\n    \"\\\\usepackage/glossaries#c,\\\\setupglossaries\"\n  ]\n}"
  },
  {
    "path": "dev/packages/glossary-bookindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"glossary-tree\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsxtrbookindexcols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexcolspread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexmulticolsenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexsubname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexprelocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexprelocation{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubprelocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexsubprelocation{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexlocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexlocation{${1:label}}{${2:location list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsublocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexsublocation{${1:label}}{${2:location list}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexparentchildsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexparentsubchildsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexbetween{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexsubbetween{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubsubbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexsubsubbetween{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubsubatendgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexsubsubatendgroup{${1:sub-sub-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexsubatendgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexsubatendgroup{${1:sub-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexatendgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexatendgroup{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexbookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrbookindexbookmark{${1:group title}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexformatheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexformatheader{${1:group title}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexmarkentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexmarkentry{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexfirstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexlastmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexfirstmarkfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexfirstmarkfmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexlastmarkfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexlastmarkfmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexbookmarkprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexgroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexthepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrbookindexpregroupskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsxtrbookindexpregroupskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrbookindexformatsubheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glsxtrbookindexformatsubheader{${1:prev-level}}{${2:level}}{${3:parent-label}}{${4:group-label}}{${5:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-hypernav.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glsnavhypertarget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsnavhypertarget{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhypertarget\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsnavhypertarget[${3:glossary-label}]{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhypergroupdotarget\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsnavhypergroupdotarget{${1:glossary-label}}{${2:group-label}}{${3:group-title}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhyperlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsnavhyperlink{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhyperlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsnavhyperlink[${3:glossary-label}]{${1:group-label}}{${2:group-title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhyperlinkname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnavhyperlinkname{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavhyperlinkname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glsnavhyperlinkname[${2:glossary-label}]{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glsnavigation\"\n    },\n    {\n      \"name\": \"glsnavigationitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsnavigationitem{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glshypernavsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssymbolnav\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-inline.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glsinlineseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinlinesubseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinlineparentchildseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostinline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinlinenameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsinlinenameformat{${1:label}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlineifhaschildren\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsinlineifhaschildren{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlinesubnameformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsinlinesubnameformat{${1:label}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlineemptydescformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsinlineemptydescformat{${1:symbol}}{${2:location list}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlinedescformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsinlinedescformat{${1:description}}{${2:symbol}}{${3:location list}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlinesubdescformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsinlinesubdescformat{${1:description}}{${2:symbol}}{${3:location list}}\"\n      }\n    },\n    {\n      \"name\": \"glsinlinepostchild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinlinedopostchild\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-list.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glslistinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistexpandedname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslistexpandedname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"indexspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslistgroupheaderfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslistgroupheaderfmt{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glslistnavigationitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslistnavigationitem{${1:navigation items}}\"\n      }\n    },\n    {\n      \"name\": \"glslistdottedwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-long.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsdescwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspagelistwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-longbooktabs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"glossary-long\"\n    },\n    {\n      \"name\": \"glossary-longragged\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsLTpenaltycheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspenaltygroupskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsrestoreLToutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspatchLToutput\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-longextra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossary-longbooktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GlsLongExtraUseTabulartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlsLongExtraUseTabularfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifGlsLongExtraUseTabular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraTabularVAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraHeaderFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraHeaderFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraNameFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraNameFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubNameFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubNameFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraNameAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraDescFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubDescFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubDescFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraDescAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSetWidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraSetWidest{${1:widest-name}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraUpdateWidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraUpdateWidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraUpdateWidestChild\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraUpdateWidestChild{${1:level}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraLocationFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraLocationFmt{${1:label}}{${2:location-list}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubLocationFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glslongextraSubLocationFmt{${1:level}}{${2:label}}{${3:location-list}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraLocationAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymbolFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraSymbolFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubSymbolFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubSymbolFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSymbolAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraGroupHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraGroupHeading{${1:num-cols}}{${2:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubGroupHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"glslongextraSubGroupHeading{${1:num-cols}}{${2:prev-group-level}}{${3:group-level}}{${4:parent-label}}{${5:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescLocationTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescLocationTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescLocationHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymLocSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymLocationTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymLocationTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameDescSymLocationHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescLocationTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescLocationTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameSymDescLocationHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationSymDescNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationSymDescNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationSymDescNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescSymNameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescSymNameTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLocationDescSymNameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymbolNameAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymbolTargetFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraSymbolTargetFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubSymbolTargetFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubSymbolTargetFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSymbolOrName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraSymbolOrName{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubSymbolOrName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubSymbolOrName{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSymNoNameSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraSymDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescSymHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraShortHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLongHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraShortTargetFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraShortTargetFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraLongFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraLongFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubShortTargetFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubShortTargetFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubLongFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubLongFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraShortNoNameSetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraShortLongTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraShortLongTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraShortLongHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLongShortTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLongShortTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraLongShortHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIIField\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraCustomIFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubCustomIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubCustomIFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraCustomIIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraCustomIIFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubCustomIIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubCustomIIFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraCustomIIIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glslongextraCustomIIIFmt{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraSubCustomIIIFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glslongextraSubCustomIIIFmt{${1:level}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"glslongextraCustomIAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIIAlign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomTabularFooter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomITabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomINameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIITabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIINameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIITabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIIHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIINameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomISetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIISetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraCustomIIISetDescWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomINameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomIINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomIINameHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIIDescTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraNameCustomIIIDescHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomIIINameTabularHeader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glslongextraDescCustomIIINameHeader\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-longragged.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsdescwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspagelistwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-mcols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"glossary-tree\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"indexspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsmcols\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-super.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"supertabular\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glsdescwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspagelistwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-table.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printunsrttable\"\n    },\n    {\n      \"name\": \"printunsrttable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrttable[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printunsrttable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstableiffilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glstableiffilter{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glstableChildEntries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableChildEntries{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstableiffilterchild\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glstableiffilterchild{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glstablePreChildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablesubentryalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableblocksubentrysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glstablecaption{${1:lot title%text}}{${2:title%text}}{${3:label code}}\"\n      }\n    },\n    {\n      \"name\": \"glstablenextcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstablenextcaption{${1:lot title%text}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"glstablepostnextcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablenameheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstabledescheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablesymbolheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableotherheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablesetstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstablesetstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\glstablesetstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"glstablenewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableleftalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableleftalign{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"glstablerightalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstablerightalign{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"glstablecenteralign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstablecenteralign{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"glstablenamecolalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstabledesccolalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablesymbolcolalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableothercolalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablenamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstabledescwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablesymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableotherwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableblockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstablepostpreambleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableprepostambleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableNameFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableNameFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableSubNameFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableSubNameFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableSymbolFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableSymbolFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableSubSymbolFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableSubSymbolFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableDescFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableDescFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableSubDescFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableSubDescFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableotherfield\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstableOtherFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableOtherFmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstableOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableOther{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstableSubOtherNoDesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableSubOtherNoDesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstableifhasotherfield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glstableifhasotherfield{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"glstableHeaderFmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstableHeaderFmt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"glstablesubentries\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\printunsrttable\": [\n      \"type=${1:glossary-label}\",\n      \"title=${1:text}\",\n      \"toctitle=${1:text}\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|word,letter,standard,use,def,nocase,case|}\",\n      \"target\",\n      \"targetnameprefix=${1:prefix}\",\n      \"prefix=${1:prefix}\",\n      \"label=\",\n      \"groups\",\n      \"leveloffset=${1:<n> or ++<n>}\",\n      \"preamble=${1:text}\",\n      \"postamble=${1:text}\",\n      \"flatten\",\n      \"blocks=${1:n}\",\n      \"header\",\n      \"rules\",\n      \"blocksep=${1:alignment spec}\",\n      \"par=${1|false,justified,ragged|}\",\n      \"other=${1:field-label}\",\n      \"init={${1:code}}\",\n      \"block-style=${1|name,name-desc,desc-name,name-symbol,symbol-name,name-other,other-name,symbol-other,other-symbol,name-symbol-desc,name-desc-symbol,name-other-desc,desc-other-name,name-symbol-other-desc,name-other-symbol-desc,desc-symbol-other-name,desc-other-symbol-name|}\",\n      \"clearpage\"\n    ],\n    \"\\\\glstablesetstyle\": [\n      \"name\",\n      \"name-desc\",\n      \"desc-name\",\n      \"name-symbol\",\n      \"symbol-name\",\n      \"name-other\",\n      \"other-name\",\n      \"symbol-other\",\n      \"other-symbol\",\n      \"name-symbol-desc\",\n      \"name-desc-symbol\",\n      \"name-other-desc\",\n      \"desc-other-name\",\n      \"name-symbol-other-desc\",\n      \"name-other-symbol-desc\",\n      \"desc-symbol-other-name\",\n      \"desc-other-symbol-name\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-topic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"glstopicColsEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicCols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicParIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicSubIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicSubItemParIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicGroupHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicGroupHeading{${1:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicSubGroupHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"glstopicSubGroupHeading{${1:prev-group-level}}{${2:group-level}}{${3:parent-entry}}{${4:group-label}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstopicItem{${1:label}}{${2:location-list}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicPreSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicMarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicMarker{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicTitle{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicTitleFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicTitleFont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicMidSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicDesc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicDesc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicPostSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstopicLoc{${1:label}}{${2:location-list}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicAssignSubIndent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicAssignSubIndent{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicAssignWidest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicSubItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glstopicSubItem{${1:level}}{${2:label}}{${3:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicSubNameFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstopicSubNameFont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicSubItemSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicSubItemBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstopicSubItemBox{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicSubPreLocSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicSubLoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstopicSubLoc{${1:label}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"glstopicsubitemhangindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstopicwidest\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glossary-tree.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glstreenamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreenamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstreegroupheaderfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreegroupheaderfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstreenavigationfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glstreenavigationfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glstreepredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreechildpredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreeitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreesubitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreesubsubitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glstreeindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glssetwidest{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glssetwidest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glssetwidest[${2:level}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"glsfindwidesttoplevelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsfindwidesttoplevelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"glsfindwidesttoplevelname[${1:glossary list}]\"\n      }\n    },\n    {\n      \"name\": \"glstreenamebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glstreenamebox{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/glosstex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosstex{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glosstex[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"glosstex(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"glosstex(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glosstex*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glosstex*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"glosstex*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glosstex*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"glosstex*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronym{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acronym[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"acronym(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acronym(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronym*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acronym*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"acronym*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acronym*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gls(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"gls(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gls*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gls*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gls*(${2:list}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gls*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"gls*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"ac[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"ac*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"ac*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acs[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acs*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acs*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acl[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acl*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acl*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acf[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf*[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf*(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*<form>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"acf*<form>(${3:list})[${2:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf*\",\n      \"arg\": {\n        \"format\": \"[]<>()[]{}\",\n        \"snippet\": \"acf*[${2:, lparen , rparen ,}]<${4:form}>(${5:list})[${3:pageref-mode}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printglosstex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"printglosstex(${1:list})\"\n      }\n    },\n    {\n      \"name\": \"printglosstex\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"printglosstex(${2:list})[${1:pageref-mode}]\"\n      }\n    },\n    {\n      \"name\": \"glxitemorderdefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxitemorderdefault{${1:list}}{${2:item-order i/l/\\\"\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"glxitemplacementdefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxitemplacementdefault{${1:list}}{${2:item-order t/f/\\\"\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"glxparendefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxparendefault{${1:lparen}}{${2:rparen}}\"\n      }\n    },\n    {\n      \"name\": \"glxparenlistdefault\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glxparenlistdefault{${1:list}}{${2:lparen}}{${3:rparen}}\"\n      }\n    },\n    {\n      \"name\": \"glxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glxref{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"glxref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glxref*{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"glxheading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glxheading{${1:glo, acr or own list}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gmiflink.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gmhypertarget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmhypertarget{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gmhypertarget\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gmhypertarget[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gmiflink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmiflink{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gmiflink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gmiflink[${2:target name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gmifref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmifref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gmifref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gmifref[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theGMhlabel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gmp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gmpoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmpoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/gmp#c,\\\\gmpoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usempxclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usempxclass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"usempxclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usempxclass[${2:options}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"usempxpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usempxpackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"usempxpackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usempxpackage[${2:options}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"resetmpxpackages\"\n    },\n    {\n      \"name\": \"mpxcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpxcommands{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"resetmpxcommands\"\n    },\n    {\n      \"name\": \"mpdim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpdim{${1:dimen param}}\"\n      }\n    },\n    {\n      \"name\": \"usempost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usempost{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"usempost\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usempost[${2:options%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\usempost\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"btex\"\n    },\n    {\n      \"name\": \"verbatimtex\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpost\"\n    },\n    {\n      \"name\": \"mpost\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mpost},\\\\begin{mpost*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpost*\"\n    },\n    {\n      \"name\": \"mpost*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mpost},\\\\begin{mpost*}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gmp#c,\\\\gmpoptions\": [\n      \"tex\",\n      \"latex\",\n      \"noshellescape\",\n      \"shellescape\",\n      \"nowrite\",\n      \"write\",\n      \"envname=${1:envname}\",\n      \"extension=${1:extension}\",\n      \"everymp={${1:metapost code}}\",\n      \"clean=${1|none,aux,mp|}\",\n      \"rmcommand=${1:cmd}\",\n      \"postrmcommand=${1:cmd}\"\n    ],\n    \"\\\\usempost\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{mpost},\\\\begin{mpost*}\": [\n      \"name=${1:string}\",\n      \"use\",\n      \"mpmem=${1:metapost format}\",\n      \"mpxprogram=${1|tex,latex|}\",\n      \"mpxcommands=${1:commands}\",\n      \"mpsettings={${1:metapost code}}\",\n      \"runs=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gmp#c,\\\\gmpoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gnuplottex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gnuplotloadfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gnuplotloadfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gnuplotloadfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gnuplotloadfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{gnuplot},\\\\gnuplotloadfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifShellEscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShellEscapetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShellEscapefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmiktex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miktextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miktexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifusesiunitx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesiunitxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesiunitxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcleanup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleanuptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleanupfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifusesubfolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesubfoldertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesubfolderfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usesiunitxingnuplot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotterminal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotterminaloptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotgraphicsprocess\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotgraphicsinclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gnuplotloadfilewrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gnuplotloadfilewrite{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gnuplot\"\n    },\n    {\n      \"name\": \"gnuplot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{gnuplot},\\\\gnuplotloadfile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/gnuplottex#c\": [\n      \"shell\",\n      \"noshell\",\n      \"miktex\",\n      \"siunitx\",\n      \"cleanup\",\n      \"subfolder\"\n    ],\n    \"\\\\begin{gnuplot},\\\\gnuplotloadfile\": [\n      \"scale=${1:factor}\",\n      \"terminal=${1|latex,epslatex,jpeg,cairolatex,eepic,emtex,tikz|}\",\n      \"terminaloptions=${1:terminal options}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gnuplottex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gobble-user.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"gobble\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblefour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletwoopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleallopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletwoopttwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstofone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstoftwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondoftwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstofthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondofthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdofthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletoelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletoor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gotoh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Gotoh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Gotoh{${1:sequenceA}}{${2:sequenceB}}\"\n      }\n    },\n    {\n      \"name\": \"Gotoh\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Gotoh[${3:options%keyvals}]{${1:sequenceA}}{${2:sequenceB}}\",\n        \"keys\": [\n          \"\\\\Gotoh,\\\\GotohConfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GotohConfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GotohConfig{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Gotoh,\\\\GotohConfig\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Gotoh,\\\\GotohConfig\": [\n      \"score=${1:control sequence}\",\n      \"result A=${1:control sequence}\",\n      \"result B=${1:control sequence}\",\n      \"match=${1:number}\",\n      \"mismatch=${1:number}\",\n      \"d=${1:number}\",\n      \"e=${1:number}\",\n      \"memoization\",\n      \"gap char=${1:character}\",\n      \"uppercase\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/grabbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"grabbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grabbox{${1:box register}}{${2:box type}}{${3:afterwards}}\"\n      }\n    },\n    {\n      \"name\": \"grabbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"grabbox[${4:pre pre}]{${1:box register}}[${5:pre}]{${2:box type}}[${6:post}]{${3:afterwards}}\"\n      }\n    },\n    {\n      \"name\": \"grabbox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grabbox*{${1:box register}}{${2:box type}}{${3:afterwards}}\"\n      }\n    },\n    {\n      \"name\": \"grabbox*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"grabbox*[${4:pre pre}]{${1:box register}}[${5:pre}]{${2:box type}}[${6:post}]{${3:afterwards}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gradient-text.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gradientRGB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gradientRGB{${1:text}}{${2:R1,G1,B1}}{${3:R2,G2,B2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gradientframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gradientframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradientframe{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"gradientframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gradientframe[${2:options%keyvals}]{${1:object}}\",\n        \"keys\": [\n          \"\\\\gradientframe\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\gradientframe\": [\n      \"linewidth=\",\n      \"padding=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/grading-scheme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"rotating\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entry{${1:description%text}}{${2:points}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gradingscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"gradingscheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:description%text}]{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:description%text}]{${1:operator}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/grading-scheme#c\": [\n      \"pipe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grading-scheme#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grafcet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifsym\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Etape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Etape{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Etape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Etape[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeInit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EtapeInit{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeInit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EtapeInit[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeActive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EtapeActive{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MacroEtape{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MacroEtape[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtapeE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MacroEtapeE{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtapeE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MacroEtapeE[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtapeS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MacroEtapeS{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"MacroEtapeS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MacroEtapeS[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeEncapsulante\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EtapeEncapsulante{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeEncapsulante\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EtapeEncapsulante[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeEncapsulanteInit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EtapeEncapsulanteInit{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeEncapsulanteInit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EtapeEncapsulanteInit[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"LienActivation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LienActivation{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Transition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Transition{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Transition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Transition[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Recept\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Recept{${1:Tnnn}}{${2:condition}}\"\n      }\n    },\n    {\n      \"name\": \"Recepts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Recepts{1/r1,2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"TransitionSource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TransitionSource{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"TransitionSource\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TransitionSource[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"TransitionPuits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TransitionPuits{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"TransitionPuits\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TransitionPuits[${2:pos}]{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"TransitionRecept\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TransitionRecept{${1:nom}}{${2:condition}}\"\n      }\n    },\n    {\n      \"name\": \"TransitionRecept\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TransitionRecept[${3:pos}]{${1:nom}}{${2:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ActionX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ActionX{${1:Xnnn}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"ActionX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ActionX[${3:dist}]{${1:Xnnn}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"Action\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Action{${1:Xnnn}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"ActionCond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ActionCond{${1:Xnnn}}{${2:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ActionActiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActionActiv{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"ActionDesactiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActionDesactiv{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"ActionEvenement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ActionEvenement{${1:Xnnn}}{${2:condition}}\"\n      }\n    },\n    {\n      \"name\": \"ActionFranchissement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ActionFranchissement{${1:Tnnn}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"ActionXV\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ActionXV{${1:etape}}{${2:liste actions}}\"\n      }\n    },\n    {\n      \"name\": \"ActionXV\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ActionXV[${3:dist}]{${1:etape}}{${2:liste actions}}\"\n      }\n    },\n    {\n      \"name\": \"Actions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Actions{1/A1,2/A2,...}\"\n      }\n    },\n    {\n      \"name\": \"ForcageX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForcageX{${1:Xnnn}}{${2:forçage}}\"\n      }\n    },\n    {\n      \"name\": \"ForcageXV\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForcageXV{${1:etape}}{${2:liste forçage}}\"\n      }\n    },\n    {\n      \"name\": \"ForcageXV\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ForcageXV[${3:dist}]{${1:etape}}{${2:liste forçage}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeTransition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EtapeTransition{${1:nom}}{${2:action}}{${3:recept}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeTransition\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"EtapeTransition[${4:pos}]{${1:nom}}{${2:action}}{${3:recept}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeInitTransition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EtapeInitTransition{${1:nom}}{${2:action}}{${3:recept}}\"\n      }\n    },\n    {\n      \"name\": \"EtapeInitTransition\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"EtapeInitTransition[${4:pos}]{${1:nom}}{${2:action}}{${3:recept}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceET\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SequenceET{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceET\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SequenceET[${2:pos}]{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceEE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceEE{${1:liste}}{${2:derniere etape}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceEE\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SequenceEE[${3:pos}]{${1:liste}}{${2:derniere etape}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceTE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SequenceTE{${1:nom trans}}{${2:liste}}{${3:derniere etape}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceTE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SequenceTE[${4:pos}]{${1:nom trans}}{${2:liste}}{${3:derniere etape}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceTT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceTT{${1:trans init}}{${2:liste}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceTT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SequenceTT[${3:pos}]{${1:trans init}}{${2:liste}}\"\n      }\n    },\n    {\n      \"name\": \"ActionRecept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActionRecept{1/A1/r1,2/A2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"Graphe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Graphe{1/A1/r1,2/A2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"Graphe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Graphe[${1:pos}]{1/A1/r1,2/A2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"GrapheBoucle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrapheBoucle{1/A1/r1,2/A2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"GrapheBoucle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GrapheBoucle[${1:pos}]{1/A1/r1,2/A2/r2,...}\"\n      }\n    },\n    {\n      \"name\": \"DivOU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DivOU{${1:Xnnn}}{${2:d1/nom1,d2/nom2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ConvOU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ConvOU{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"ConvOU\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ConvOU[${4:dist}]{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"SautEtapes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SautEtapes{${1:Xnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"SautEtapes\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SautEtapes[${4:dist}]{${1:Xnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"RepriseEtapes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RepriseEtapes{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"RepriseEtapes\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RepriseEtapes[${4:dist}]{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"DeplaceNoeudx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeplaceNoeudx{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DeplaceNoeudx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeplaceNoeudx[${3:dist}]{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DeplaceNoeudy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeplaceNoeudy{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DeplaceNoeudy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeplaceNoeudy[${3:dist}]{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DecaleNoeudx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DecaleNoeudx{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DecaleNoeudx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DecaleNoeudx[${3:dist}]{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DecaleNoeudy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DecaleNoeudy{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DecaleNoeudy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DecaleNoeudy[${3:dist}]{${1:ni}}{${2:nf}}\"\n      }\n    },\n    {\n      \"name\": \"DivET\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DivET{${1:Tnnn}}{${2:d1/br1,d2/br2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ConvET\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ConvET{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"ConvET\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ConvET[${4:dist}]{${1:Tnnn}}{${2:liste}}{${3:nom}}\"\n      }\n    },\n    {\n      \"name\": \"LienRetour\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LienRetour{${1:Tnnn}}{${2:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"LienRetour\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LienRetour[${3:dist}]{${1:Tnnn}}{${2:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"Lien\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Lien{${1:NoeudGraf}}{${2:noeud2}}{${3:noeud3}}\"\n      }\n    },\n    {\n      \"name\": \"Lien\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Lien[${4:dist}]{${1:NoeudGraf}}{${2:noeud2}}{${3:noeud3}}\"\n      }\n    },\n    {\n      \"name\": \"LienET\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LienET{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"LienET\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LienET[${2:long}]{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"LienTE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LienTE{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"LienTE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LienTE[${2:long}]{${1:Xnnn}}\"\n      }\n    },\n    {\n      \"name\": \"Comment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Comment{${1:pos}}{${2:commentaire}}\"\n      }\n    },\n    {\n      \"name\": \"Comment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Comment[${3:dist}]{${1:pos}}{${2:commentaire}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Encap\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:pos}}{${2:etape}}{${3:Grafcet}}\"\n      }\n    },\n    {\n      \"name\": \"Encap\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:nom}]{${1:pos}}{${2:etape}}{${3:Grafcet}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/graph35.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pixelart0\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"sansmath\"\n    },\n    {\n      \"name\": \"letterspace\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"graph35-pixelart\"\n    },\n    {\n      \"name\": \"graph35-keys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setgraphcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgraphcolor{${1:color setting%keyvals}}\",\n        \"keys\": [\n          \"\\\\setgraphcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"calculator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calculator{${1:model}}\"\n      }\n    },\n    {\n      \"name\": \"calculator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"calculator[${2:options%keyvals}]{${1:model}}\",\n        \"keys\": [\n          \"\\\\calculator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcalculator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcalculator{${1:model}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"key{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"key[${2:options%keyvals}]{${1:key%plain}}\",\n        \"keys\": [\n          \"\\\\key,\\\\tikzkey\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzkey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzkey{${1:key%plain}}{${2:coordinates}}\"\n      }\n    },\n    {\n      \"name\": \"tikzkey\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tikzkey[${3:options%keyvals}]{${1:key%plain}}{${2:coordinates}}\",\n        \"keys\": [\n          \"\\\\key,\\\\tikzkey\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"menu{${1:icon}}{${2:shortcut}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmenu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikzmenu{${1:icon}}{${2:shortcut}}{${3:coordinates}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmenu\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tikzmenu[${4:options%keyvals}]{${1:icon}}{${2:shortcut}}{${3:coordinates}}\",\n        \"keys\": [\n          \"\\\\tikzmenu,\\\\tikzfunction,\\\\tikzbattery\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"function{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"tikzfunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzfunction{${1:function}}{${2:coordinates}}\"\n      }\n    },\n    {\n      \"name\": \"tikzfunction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tikzfunction[${3:options%keyvals}]{${1:function}}{${2:coordinates}}\",\n        \"keys\": [\n          \"\\\\tikzmenu,\\\\tikzfunction,\\\\tikzbattery\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"battery\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"battery{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"tikzbattery\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzbattery{${1:state}}{${2:coordinates}}\"\n      }\n    },\n    {\n      \"name\": \"tikzbattery\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tikzbattery[${3:options%keyvals}]{${1:state}}{${2:coordinates}}\",\n        \"keys\": [\n          \"\\\\tikzmenu,\\\\tikzfunction,\\\\tikzbattery\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graph35#c\": [\n      \"color=${1|real,blackandwhite|}\"\n    ],\n    \"\\\\setgraphcolor#c\": [\n      \"real\",\n      \"blackandwhite\"\n    ],\n    \"\\\\calculator\": [\n      \"color=${1|real,blackandwhite,default|}\",\n      \"scale=${1:factor}\"\n    ],\n    \"\\\\key,\\\\tikzkey\": [\n      \"color=${1|real,blackandwhite,default|}\",\n      \"scale=${1:factor}\",\n      \"shift\",\n      \"alpha\",\n      \"prefix=${1:anchor prefix}\",\n      \"suffix=${1:anchor suffix}\"\n    ],\n    \"\\\\tikzmenu,\\\\tikzfunction,\\\\tikzbattery\": [\n      \"color=\",\n      \"scale=${1:factor}\",\n      \"raise=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graph35#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphbox#c\": [\n      \"nobeamer\"\n    ],\n    \"\\\\includegraphics\": [\n      \"hide\",\n      \"align=${1|b,c,l,m,t,u|}\",\n      \"vsmash=${1|b,c,l,m,n,t,u|}\",\n      \"hsmash=${1|c,l,n,r|}\",\n      \"smash=${1:vpos}${2:hpos}\",\n      \"vshift=\",\n      \"hshift=\",\n      \"tmargin=\",\n      \"bmargin=\",\n      \"vmargin=\",\n      \"lmargin=\",\n      \"rmargin=\",\n      \"hmargin=\",\n      \"margin=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphbox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"subfigure\"\n    },\n    {\n      \"name\": \"float\",\n      \"if\": \"AllowH\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"graphfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphfile{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphfile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"graphfile{${1:imagefile}}[${2:subcaption%text}]\"\n      }\n    },\n    {\n      \"name\": \"graphfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graphfile[${2:width}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphfile\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"graphfile[${2:width}]{${1:imagefile}}[${3:subcaption%text}]\"\n      }\n    },\n    {\n      \"name\": \"graphfile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphfile*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphfile*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"graphfile*{${1:imagefile}}[${2:subcaption%text}]\"\n      }\n    },\n    {\n      \"name\": \"graphfile*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graphfile*[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphfile*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"graphfile*[${2:height}]{${1:imagefile}}[${3:subcaption%text}]\"\n      }\n    },\n    {\n      \"name\": \"FigureDefaultPlacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FigureDefaultPlacement{${1:placement}}\"\n      }\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:caption%text}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:placement}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Figure\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:placement}]{${1:caption%text}}[${3:label}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/graphfig#c\": [\n      \"subfigure\",\n      \"AllowH\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphfig#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"trig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareGraphicsExtensions{${1:ext-list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareGraphicsRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareGraphicsRule{${1:ext}}{${2:type}}{${3:read-file}}{${4:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"graphicspath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicspath{${1:dir-list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"includegraphics[${2:llx,lly}][${3:urx,ury}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphics*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphics*[${2:llx,lly}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"includegraphics*[${2:llx,lly}][${3:urx,ury}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"reflectbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflectbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox*{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotatebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotatebox{${1:angle}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}[${3:v-scale}]{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphics#c\": [\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicscache.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"filemod\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includegraphicscache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includegraphicscache{${1:options%keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\usepackage/graphicscache#c,\\\\includegraphics,\\\\includegraphicscache\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicscache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includegraphicscache[${3:graphicx options}]{${1:options%keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\usepackage/graphicscache#c,\\\\includegraphics,\\\\includegraphicscache\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicscache#c,\\\\includegraphics,\\\\includegraphicscache\": [\n      \"compress=${1|false,flat,jpeg|}\",\n      \"dpi=${1:number}\",\n      \"qfactor=${1:number}\",\n      \"listing\",\n      \"render\",\n      \"cachedir=${1:directory}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicscache#c,\\\\includegraphics,\\\\includegraphicscache\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicsonthefly.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"animate\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"animate\",\n      \"if\": \"animate\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"animatedgifonthefly\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"animatedgifonthefly[${6:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}{${5:URL}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animatedgifonthefly*\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"animatedgifonthefly*[${6:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}{${5:URL}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animatedgif\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"animatedgif[${5:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usegifonthefly\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usegifonthefly[${2:options}]{${1:fps,start,end}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animatedgifonthefly\",\n      \"if\": \"animate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"animatedgifonthefly[${6:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}{${5:URL}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animatedgifonthefly*\",\n      \"if\": \"animate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"animatedgifonthefly*[${6:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}{${5:URL}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"animatedgif\",\n      \"if\": \"animate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"animatedgif[${5:options%keyvals}]{${1:fps}}{${2:image name}}{${3:start}}{${4:end}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usegifonthefly\",\n      \"if\": \"animate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usegifonthefly[${2:options}]{${1:fps,start,end}}\",\n        \"keys\": [\n          \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicsonthefly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includegraphicsonthefly{${1:image name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsonthefly\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includegraphicsonthefly[${3:options%keyvals}]{${1:image name}}{${2:URL}}\",\n        \"keys\": [\n          \"\\\\includegraphicsonthefly#c,\\\\includegraphicsonthefly*#c,\\\\useimgonthefly#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicsonthefly*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includegraphicsonthefly*{${1:image name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsonthefly*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includegraphicsonthefly*[${3:options%keyvals}]{${1:image name}}{${2:URL}}\",\n        \"keys\": [\n          \"\\\\includegraphicsonthefly#c,\\\\includegraphicsonthefly*#c,\\\\useimgonthefly#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prepareimgonthefly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prepareimgonthefly{${1:image name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"prepareimgonthefly*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prepareimgonthefly*{${1:image name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"useimgonthefly\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useimgonthefly[${1:options}]\",\n        \"keys\": [\n          \"\\\\includegraphicsonthefly#c,\\\\includegraphicsonthefly*#c,\\\\useimgonthefly#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicsonthefly#c\": [\n      \"renewall\",\n      \"animate\",\n      \"all\",\n      \"curl\",\n      \"nocoalesce\",\n      \"convert\"\n    ],\n    \"\\\\animatedgifonthefly#c,\\\\animatedgifonthefly*#c,\\\\animatedgif#c,\\\\usegifonthefly#c,\\\\animategraphicsonthefly#c,\\\\animategraphicsonthefly*#c\": [\n      \"label=${1:label}\",\n      \"type=${1:file ext}\",\n      \"poster\",\n      \"poster=${2|first,last,none,${1:number}|}\",\n      \"every=${1:number}\",\n      \"autopause\",\n      \"autoplay\",\n      \"autoresume\",\n      \"loop\",\n      \"palindrome\",\n      \"step\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:left bottom right top}\",\n      \"clip\",\n      \"hiresbb\",\n      \"interpolate\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"controls=${1|all,true,on,none,false,off|}\",\n      \"controlsaligned=${3|left,left+${1:<indent>},center,right,right+${2:<indent>}|}\",\n      \"buttonsize=\",\n      \"buttonbg=\",\n      \"buttonfg=\",\n      \"buttonalpha=${1:opacity}\",\n      \"draft\",\n      \"final\",\n      \"nomouse\",\n      \"method=${1|icon,widget,ocg|}\",\n      \"measure\",\n      \"alttext=${2|none,${1:alt description}|}\",\n      \"begin={${1:begin code}}\",\n      \"end={${1:end code}}\",\n      \"timeline=${1:file}\"\n    ],\n    \"\\\\includegraphicsonthefly#c,\\\\includegraphicsonthefly*#c,\\\\useimgonthefly#c\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicsonthefly#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicx-psmin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"loadgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadgraphics{${1:list of graphics%URL}}\"\n      }\n    },\n    {\n      \"name\": \"loadgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loadgraphics[${2:bb}]{${1:list of graphics%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicx-psmin#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicx-psmin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"trig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareGraphicsExtensions{${1:ext-list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareGraphicsRule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareGraphicsRule{${1:ext}}{${2:type}}{${3:read-file}}{${4:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"graphicspath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicspath{${1:dir-list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphics*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphics*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphics*[${2:keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"reflectbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflectbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox*{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"resizebox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resizebox{${1:h-length%l}}{${2:v-length%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotatebox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rotatebox[${3:keyvals}]{${1:angle}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\rotatebox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rotatebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotatebox{${1:angle}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"scalebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"scalebox{${1:h-scale}}[${3:v-scale}]{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicx#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\includegraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\rotatebox\": [\n      \"origin=\",\n      \"x=\",\n      \"y=\",\n      \"units=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicxbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"graphicxbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"graphicxbox{${1:imagefile}}{${2:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"graphicxbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"graphicxbox[${3:graphicx options}]{${1:imagefile}}{${2:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgraphicxbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fgraphicxbox{${1:color}}{${2:imagefile}}{${3:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgraphicxbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"fgraphicxbox{${1:color}}[${4:graphicx options}]{${2:imagefile}}{${3:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgraphicxbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"fgraphicxbox[${4:model}]{${1:color spec}}{${2:imagefile}}{${3:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fgraphicxbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"fgraphicxbox[${4:model}]{${1:color spec}}[${5:graphicx options}]{${2:imagefile}}{${3:box content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/graphicxpsd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphicxpsd#c\": [\n      \"dvipdfmx\",\n      \"xetex\",\n      \"luatex\",\n      \"pdftex\",\n      \"sips\",\n      \"imagemagick\",\n      \"magick\",\n      \"convert\",\n      \"graphicsmagick\",\n      \"cache=${1|true,false|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicxpsd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphicxsp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bboxOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bboxOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"llxOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llxOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"llyOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llyOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urxOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urxOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uryOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uryOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"heightOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heightOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"widthOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csOf{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"insertEPS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertEPS{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insertEPS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insertEPS[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\insertEPS,\\\\includegraphics\",\n          \"\\\\insertEPS\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"previewOn\"\n    },\n    {\n      \"name\": \"previewOff\"\n    },\n    {\n      \"name\": \"ifpreview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddToEmbeddedEPSs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToEmbeddedEPSs{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setSMask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSMask{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"setSMask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setSMask[${2:group}]{${1:options}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"createImage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:bbox}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"createImage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:bbox}}{${2:name}}\",\n        \"keys\": [\n          \"\\\\begin{createImage}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/graphicxsp#c\": [\n      \"preview\",\n      \"dvipsone\",\n      \"dvips\",\n      \"showembeds\",\n      \"!showembeds\",\n      \"draft\",\n      \"!draft\",\n      \"final\",\n      \"shownonames\",\n      \"!shownonames\"\n    ],\n    \"\\\\embedEPS\": [\n      \"hiresbb\",\n      \"transparencyGroup\"\n    ],\n    \"\\\\bboxOf#c,\\\\llxOf#c,\\\\llyOf#c,\\\\urxOf#c,\\\\uryOf#c,\\\\heightOf#c,\\\\widthOf#c,\\\\csOf#c\": [\n      \"%EPSname\"\n    ],\n    \"\\\\begin{createImage}\": [\n      \"transparencyGroup\"\n    ],\n    \"\\\\insertEPS,\\\\includegraphics\": [\n      \"name=${1:name}\",\n      \"transparency={${1:specs}}\",\n      \"presp={${1:PS code}}\",\n      \"postsp={${1:PS code}}\"\n    ],\n    \"\\\\insertEPS\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphicxsp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/graphpap.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"graphpaper\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"graphpaper(${1:x_init},${2:y_init})(${3:x_dimen},${4:y_dimen})\"\n      }\n    },\n    {\n      \"name\": \"graphpaper\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"graphpaper[${1:spacing}](${2:x_init},${3:y_init})(${4:x_dimen},${5:y_dimen})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/graphviz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"psfrag\",\n      \"if\": \"psfrag\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"digraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"digraph{${1:name}}{${2:graph}}\"\n      }\n    },\n    {\n      \"name\": \"digraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"digraph[${3:options%keyvals}]{${1:name}}{${2:graph}}\",\n        \"keys\": [\n          \"\\\\digraph,\\\\neatograph,\\\\inputdigraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"neatograph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"neatograph{${1:name}}{${2:graph}}\"\n      }\n    },\n    {\n      \"name\": \"neatograph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"neatograph[${3:options%keyvals}]{${1:name}}{${2:graph}}\",\n        \"keys\": [\n          \"\\\\digraph,\\\\neatograph,\\\\inputdigraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputdigraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"inputdigraph{${1:name}}{${2:graph}}{${3:type}}\"\n      }\n    },\n    {\n      \"name\": \"inputdigraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"inputdigraph[${4:options%keyvals}]{${1:name}}{${2:graph}}{${3:type}}\",\n        \"keys\": [\n          \"\\\\digraph,\\\\neatograph,\\\\inputdigraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifsinglefile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlefiletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlefilefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpsfrag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psfragtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psfragfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/graphviz#c\": [\n      \"singlefile\",\n      \"psfrag\",\n      \"ps\",\n      \"pdf\",\n      \"tmpdir\"\n    ],\n    \"\\\\digraph,\\\\neatograph,\\\\inputdigraph\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/graphviz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grayhints.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BlurToBlack\"\n    },\n    {\n      \"name\": \"CalcToGray\"\n    },\n    {\n      \"name\": \"CommitSuccessEvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommitSuccessEvent{${1:actions}}\"\n      }\n    },\n    {\n      \"name\": \"EnterCommitFailEvent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnterCommitFailEvent{${1:actions}}\"\n      }\n    },\n    {\n      \"name\": \"FmtToGray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FmtToGray{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FocusToBlack\"\n    },\n    {\n      \"name\": \"KeyToGray\"\n    },\n    {\n      \"name\": \"matchGray\"\n    },\n    {\n      \"name\": \"normalGrayColors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"normalGrayColors{${1:normalcolor}}{${2:graycolor}}\"\n      }\n    },\n    {\n      \"name\": \"EnterCommitFailDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FailStringDef\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/grayhints#c\": [\n      \"usehyforms\",\n      \"nocalcs\",\n      \"nodljs\",\n      \"dvipsone\",\n      \"dvips\",\n      \"textures\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"nodljs\",\n      \"debug\",\n      \"execJS\",\n      \"nopro\",\n      \"reqjs\",\n      \"!reqjs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grayhints#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/greek4cbc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"givbcfamily\"\n    },\n    {\n      \"name\": \"textgivbc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgivbc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Aalpha\"\n    },\n    {\n      \"name\": \"Abeta\"\n    },\n    {\n      \"name\": \"Agamma\"\n    },\n    {\n      \"name\": \"Adelta\"\n    },\n    {\n      \"name\": \"Aepsilon\"\n    },\n    {\n      \"name\": \"Azeta\"\n    },\n    {\n      \"name\": \"Aeta\"\n    },\n    {\n      \"name\": \"Atheta\"\n    },\n    {\n      \"name\": \"Aiota\"\n    },\n    {\n      \"name\": \"Akappa\"\n    },\n    {\n      \"name\": \"Alambda\"\n    },\n    {\n      \"name\": \"Amu\"\n    },\n    {\n      \"name\": \"Anu\"\n    },\n    {\n      \"name\": \"Axi\"\n    },\n    {\n      \"name\": \"Aomicron\"\n    },\n    {\n      \"name\": \"Api\"\n    },\n    {\n      \"name\": \"Arho\"\n    },\n    {\n      \"name\": \"Asigma\"\n    },\n    {\n      \"name\": \"Atau\"\n    },\n    {\n      \"name\": \"Aupsilon\"\n    },\n    {\n      \"name\": \"Achi\"\n    },\n    {\n      \"name\": \"Aphi\"\n    },\n    {\n      \"name\": \"Apsi\"\n    },\n    {\n      \"name\": \"Aomega\"\n    },\n    {\n      \"name\": \"ARalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AReta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARtheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARtau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ARomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translitgivbc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitgivbc{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitgivbcfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/greek6cbc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gvibcfamily\"\n    },\n    {\n      \"name\": \"textgvibc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgvibc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Aalpha\"\n    },\n    {\n      \"name\": \"Abeta\"\n    },\n    {\n      \"name\": \"Agamma\"\n    },\n    {\n      \"name\": \"Adelta\"\n    },\n    {\n      \"name\": \"Aepsilon\"\n    },\n    {\n      \"name\": \"Adigamma\"\n    },\n    {\n      \"name\": \"Azeta\"\n    },\n    {\n      \"name\": \"Aeta\"\n    },\n    {\n      \"name\": \"Atheta\"\n    },\n    {\n      \"name\": \"Aiota\"\n    },\n    {\n      \"name\": \"Akappa\"\n    },\n    {\n      \"name\": \"Alambda\"\n    },\n    {\n      \"name\": \"Amu\"\n    },\n    {\n      \"name\": \"Anu\"\n    },\n    {\n      \"name\": \"Axi\"\n    },\n    {\n      \"name\": \"Aomicron\"\n    },\n    {\n      \"name\": \"Api\"\n    },\n    {\n      \"name\": \"Akoppa\"\n    },\n    {\n      \"name\": \"Arho\"\n    },\n    {\n      \"name\": \"Asigma\"\n    },\n    {\n      \"name\": \"Atau\"\n    },\n    {\n      \"name\": \"Aupsilon\"\n    },\n    {\n      \"name\": \"Achi\"\n    },\n    {\n      \"name\": \"Aphi\"\n    },\n    {\n      \"name\": \"Apsi\"\n    },\n    {\n      \"name\": \"Aomega\"\n    },\n    {\n      \"name\": \"translitgvibc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitgvibc{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitgvibcfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/greekctr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greek{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greek{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/greekdates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Athensmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Athensmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Delphimonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Delphimonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Dilosmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dilosmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Epidavrosmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Epidavrosmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Rhodesmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rhodesmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Macedoniamonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Macedoniamonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Aitoliamonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aitoliamonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Biotiamonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Biotiamonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Samosmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Samosmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Militosmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Militosmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Tinosmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tinosmonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Lamiamonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lamiamonth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fullgreekday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullgreekday{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"shortgreekday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortgreekday{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sshortgreekday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sshortgreekday{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"shortdategreek\",\n      \"if\": \"fullconversion\"\n    },\n    {\n      \"name\": \"Grshortdategreek\",\n      \"if\": \"fullconversion\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/greektonoi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"perispwmeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tildeOFF\"\n    },\n    {\n      \"name\": \"tildeON\"\n    },\n    {\n      \"name\": \"loy\"\n    },\n    {\n      \"name\": \"Coy\"\n    },\n    {\n      \"name\": \"coy\"\n    },\n    {\n      \"name\": \"\"\n    },\n    {\n      \"name\": \"\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"greektonoi\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gregoriosyms.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luaotfload\"\n    },\n    {\n      \"name\": \"luamplib\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gredefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gredefsymbol{${1:csname}}{${2:font name}}{${3:glyph name or code point}}\"\n      }\n    },\n    {\n      \"name\": \"gredefsizedsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gredefsizedsymbol{${1:csname}}{${2:font name}}{${3:glyph name or code point}}\"\n      }\n    },\n    {\n      \"name\": \"greABar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"grebarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"grebarredsymbol{${1:definition}}{${2:symbol}}{${3:size}}{${4:hshift}}{${5:vshift}}\"\n      }\n    },\n    {\n      \"name\": \"gredefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gredefbarredsymbol{${1:csname}}{${2:definition}}{${3:symbol}}{${4:size}}{${5:hshift}}{${6:vshift}}\"\n      }\n    },\n    {\n      \"name\": \"gresimpledefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresimpledefbarredsymbol{${1:A, R, or V}}{${2:left shift}}\"\n      }\n    },\n    {\n      \"name\": \"ABar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grelatexsimpledefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"grelatexsimpledefbarredsymbol{${1:A, R, or V}}{${2:upmedium shift}}{${3:itmedium shift}}{${4:upbold shift}}{${5:itbold shift}}\"\n      }\n    },\n    {\n      \"name\": \"gothRbar\"\n    },\n    {\n      \"name\": \"gothVbar\"\n    },\n    {\n      \"name\": \"GreDagger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grecross\"\n    },\n    {\n      \"name\": \"grealtcross\"\n    },\n    {\n      \"name\": \"greheightstar\"\n    },\n    {\n      \"name\": \"gresixstar\"\n    },\n    {\n      \"name\": \"GreStar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greLineOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineOne{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineTwo{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineThree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineThree{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineFour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineFour{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineFive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineFive{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greseparator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greseparator{${1:integer 1-5}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"greOrnamentOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greOrnamentOne{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greOrnamentTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greOrnamentTwo{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greornamentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greornamentation{${1:integer 1-2}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"gresetspecial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetspecial{${1:text%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"greunsetspecial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greunsetspecial{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GreSpecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSpecial{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gregoriosyms#c\": [\n      \"debug\",\n      \"debug={${1:types}}\",\n      \"allowdeprecated\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gregoriosyms#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gregoriotex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"luacolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luaotfload\"\n    },\n    {\n      \"name\": \"luamplib\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GreItalic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreItalic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreSmallCaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSmallCaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreBold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreBold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreTypewriter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreTypewriter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreUnderline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreUnderline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreColored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreColored{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlinecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlinecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"GreScoreId\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GregorioTeXAPIVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GregorioTeXAPIVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"GreNewLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreNewParLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreFinalNewLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greillumination\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greillumination{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"greannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greannotation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greannotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"greannotation[${2:alignment%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\greannotation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetannotationby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetannotationby{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetannotationby\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetannotationvalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetannotationvalign{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetannotationvalign\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreMode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreMode{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"gresetmodenumbersystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetmodenumbersystem{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetmodenumbersystem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreModeNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreModeNumber{${1:integer 1-8}}\"\n      }\n    },\n    {\n      \"name\": \"GreAnnotationLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreAnnotationLines{${1:line1%text}}{${2:line2%text}}\"\n      }\n    },\n    {\n      \"name\": \"grecommentary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grecommentary{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"grecommentary\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grecommentary[${2:distance}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gresetabovelinestext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetabovelinestext{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetabovelinestext,\\\\gresetlines,\\\\gresettranslation,\\\\gresetclef,\\\\gresetcustosalteration,\\\\gresetlinesbehinddottedbar,\\\\gresetlinesbehindpunctumcavum,\\\\gresetlinesbehindalteration,\\\\gresetlyrics,\\\\gresetnotes,\\\\gresetnabc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreSetTextAboveLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSetTextAboveLines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetNabcAboveLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSetNabcAboveLines{${1:Nabc names}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlines{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreFuseTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreFuseTwo{${1:glyph1}}{${2:glyph2}}\"\n      }\n    },\n    {\n      \"name\": \"GreFuse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grechangeglyph\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grechangeglyph{${1:glyph name}}{${2:font name}}{${3:glyph or variant name}}\"\n      }\n    },\n    {\n      \"name\": \"grechangecavumglyph\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"grechangecavumglyph{${1:glyph name}}{${2:font name}}{${3:glyph or variant name}}{${4:hollow font name}}{${5:hollow glyph or variant name}}\"\n      }\n    },\n    {\n      \"name\": \"greresetglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greresetglyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"greresetcavumglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greresetcavumglyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"gresettranslationcentering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresettranslationcentering{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresettranslationcentering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetbreakintranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbreakintranslation{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetbreakintranslation,\\\\gresetbreakineuouae,\\\\gresetgabcforcecenters\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresettranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresettranslation{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreWriteTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreWriteTranslation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreWriteTranslationWithCenterBeginning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreWriteTranslationWithCenterBeginning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreTranslationCenterEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gresetlastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlastline{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetlastline,\\\\gresetbreakbeforeeuouae\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetlineheightexpansion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlineheightexpansion{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetlineheightexpansion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetnoteadditionalspacelinestext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetnoteadditionalspacelinestext{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetnoteadditionalspacelinestext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreBeginScore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreBeginScore{${1:id}}{${2:high height}}{${3:low height}}{${4:translation:0 or 1}}{${5:abovelines:0 or 1}}{${6:filename}}{${7:staff lines}}{${8:before code}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndScore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreLastOfLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreLastOfScore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gresetbolshifts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbolshifts{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetbolshifts,\\\\greseteolshifts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"greseteolshifts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greseteolshifts{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreSuppressEolCustos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greseteolcustos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greseteolcustos{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\greseteolcustos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreResetEolCustos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greseteolcustosbeforeeuouae\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greseteolcustosbeforeeuouae{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\greseteolcustosbeforeeuouae\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetbreakbeforeeuouae\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbreakbeforeeuouae{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreAdHocSpaceEndOfElement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreAdHocSpaceEndOfElement{${1:factor}}{0 or 1}{${2:number of notes}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndOfElement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreEndOfElement{${1:integer}}{0 or 1}{${2:number of notes}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndOfGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreEndOfGlyph{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GreBeginNLBArea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreBeginNLBArea{${1:in neumes: 0 or 1}}{${2:from translation centering: 0 or 1}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndNLBArea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreEndNLBArea{${1:integer}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"gresetbreakineuouae\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbreakineuouae{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreBeginEUOUAE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreBeginEUOUAE{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndEUOUAE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreEndEUOUAE{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"gretilde\"\n    },\n    {\n      \"name\": \"gresetgregoriofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetgregoriofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"gresetgregoriofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gresetgregoriofont[${2:alt font}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"gresetgregoriofontscaled\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetgregoriofontscaled{${1:font name}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"gresetgregoriofontscaled\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gresetgregoriofontscaled[${3:alt font}]{${1:font name}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"GreCPVirgaReversaAscendensOnDLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreCPVirgaReversaAscendensOnDLine{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"greloadholehollowfonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greloadholehollowfonts{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\greloadholehollowfonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grechangestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grechangestyle{${1:element%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\grechangestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grechangestyle\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"grechangestyle{${1:element%keyvals}}{${2:on code}}[${3:off code}]\",\n        \"keys\": [\n          \"\\\\grechangestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grechangestaffsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grechangestaffsize{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"gresetheadercapture\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gresetheadercapture{${1:gabc header name}}{${2:csname}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetheadercapture\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"GreHeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreHeader{${1:header name}}{${2:header value}}\"\n      }\n    },\n    {\n      \"name\": \"gresetgregpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetgregpath{${1:file path%file}}\"\n      }\n    },\n    {\n      \"name\": \"gresetcompilegabc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetcompilegabc{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetcompilegabc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gregorioscore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gregorioscore{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gregorioscore\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gregorioscore[${2:option%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\gregorioscore\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gabcsnippet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gabcsnippet{${1:gabc}}\"\n      }\n    },\n    {\n      \"name\": \"GreHyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greseteolhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greseteolhyphen{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\greseteolhyphen\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresethyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresethyphen{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresethyphen,\\\\gresetemptyfirstsyllablehyphen\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreBeginHeaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grebeforeheaders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grebeforeheaders{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreEndHeaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greafterheaders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greafterheaders{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreForceBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreNoBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grechangestafflinethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grechangestafflinethickness{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"grebolshiftcleftype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grebolshiftcleftype{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\grebolshiftcleftype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grelocalbolshiftcleftype\"\n    },\n    {\n      \"name\": \"GreProtrusionFactor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreProtrusionFactor{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"gresetprotrusionfactor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetprotrusionfactor{${1:choice%keyvals}}{${2:factor}}\",\n        \"keys\": [\n          \"\\\\gresetprotrusionfactor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreProtrusion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreProtrusion{${1:factor}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"gresetledgerlineheuristic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetledgerlineheuristic{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetledgerlineheuristic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreSupposeHighLedgerLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreSupposeLowLedgerLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grechangedim\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grechangedim{${1:dim name}}{${2:distance}}{${3:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\grechangedim,\\\\grechangenextscorelinedim\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"grechangecount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grechangecount{${1:count name%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\grechangecount,\\\\grechangenextscorelinecount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grescaledim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grescaledim{${1:dim name}}{${2:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\grescaledim#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"grechangenextscorelinedim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"grechangenextscorelinedim{${1:line numbers}}{${2:dim name}}{${3:distance}}{${4:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"grechangenextscorelinecount\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"grechangenextscorelinecount{${1:line numbers}}{${2:count name%keyvals}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"greconffactor\"\n    },\n    {\n      \"name\": \"greloadspaceconf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greloadspaceconf{${1:config file id}}\"\n      }\n    },\n    {\n      \"name\": \"gresetglyphstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetglyphstyle{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetglyphstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grebarbracewidth\"\n    },\n    {\n      \"name\": \"greprintsigns\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greprintsigns{${1:choice%keyvals}}{${2:enable|disable}}\",\n        \"keys\": [\n          \"\\\\greprintsigns\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreDiscretionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDiscretionary{${1:integer}}{${2:first arg}}{${3:third arg}}\"\n      }\n    },\n    {\n      \"name\": \"gresetclef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetclef{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetLinesClef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreSetLinesClef{${1:type}}{${2:line}}{0 or 1}{${3:height}}{${4:secondary type}}{${5:secondary line}}{${6:secondary height}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetLargestClef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GreSetLargestClef{${1:type}}{${2:line}}{${3:height}}{${4:secondary type}}{${5:secondary line}}{${6:secondary height}}\"\n      }\n    },\n    {\n      \"name\": \"GreInitialClefPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreInitialClefPosition{${1:primary line}}{${2:secondary line}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetInitialClef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreSetInitialClef{${1:type}}{${2:line}}{${3:height}}{${4:secondary type}}{${5:secondary line}}{${6:secondary height}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreChangeClef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreChangeClef{${1:type}}{${2:line}}{0 or 1}{${3:height}}{${4:secondary type}}{${5:secondary line}}{${6:secondary height}}\"\n      }\n    },\n    {\n      \"name\": \"GreCustos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreCustos{${1:height}}{${2:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\GreCustos,\\\\GreFinalCustos,\\\\GreNextCustos\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"GreFinalCustos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreFinalCustos{${1:height}}{${2:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\GreCustos,\\\\GreFinalCustos,\\\\GreNextCustos\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"GreNextCustos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreNextCustos{${1:height}}{${2:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\GreCustos,\\\\GreFinalCustos,\\\\GreNextCustos\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"gresetcustosalteration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetcustosalteration{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gresetbracerendering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbracerendering{${1:metapost|font}}\"\n      }\n    },\n    {\n      \"name\": \"gresetbracerendering\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gresetbracerendering[${2:option%keyvals}]{${1:metapost|font}}\",\n        \"keys\": [\n          \"\\\\gresetbracerendering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreOverCurlyBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreOverCurlyBrace{${1:width}}{${2:vshift}}{${3:hshift}}{0 or 1}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreOverBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GreOverBrace{${1:width}}{${2:vshift}}{${3:hshift}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreUnderBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GreUnderBrace{${1:width}}{${2:vshift}}{${3:hshift}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"grebracemetapostpreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grebracemetapostpreamble{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"greslurheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreSlur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GreSlur{${1:height}}{${2:integer}}{${3:integer}}{${4:hdimen}}{${5:vdimen}}{${6:end height}}\"\n      }\n    },\n    {\n      \"name\": \"GreVarBraceLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreVarBraceLength{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"GreVarBraceSavePos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreVarBraceSavePos{${1:id}}{${2:integer}}{${3:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GrePunctumMora\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GrePunctumMora{${1:height}}{${2:integer}}{0 or 1}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreAugmentumDuplex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreAugmentumDuplex{${1:height1}}{${2:height2}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreLowChoralSign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreLowChoralSign{${1:height}}{${2:sign}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreHighChoralSign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreHighChoralSign{${1:height}}{${2:sign}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreVEpisema\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreVEpisema{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreBarBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreBarBrace{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreBarVEpisema\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreBarVEpisema{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreAccentus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreAccentus{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreSemicirculus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreSemicirculus{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreCirculus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreCirculus{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreReversedAccentus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreReversedAccentus{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreReversedSemicirculus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreReversedSemicirculus{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreMusicaFictaFlat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreMusicaFictaFlat{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreMusicaFictaNatural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreMusicaFictaNatural{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreMusicaFictaSharp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreMusicaFictaSharp{${1:height}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"GreAdditionalLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreAdditionalLine{${1:type}}{${2:ambitus}}{${3:episema}}\"\n      }\n    },\n    {\n      \"name\": \"GreDrawAdditionalLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GreDrawAdditionalLine{0 or 1}{${1:distance}}{${2:integer}}{${3:distance}}{${4:integer}}{${5:distance}}\"\n      }\n    },\n    {\n      \"name\": \"GreHEpisema\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreHEpisema{${1:height}}{${2:type}}{${3:ambitus}}{${4:integer}}{${5:choice}}{${6:integer}}{${7:code}}{${8:nudge}}{${9:integer}}\"\n      }\n    },\n    {\n      \"name\": \"gresethepisema\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresethepisema{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresethepisema\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreHEpisemaBridge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GreHEpisemaBridge{${1:height}}{0 or 1}{${2:integer}}{${3:code}}{${4:nudge}}{${5:integer}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlinesbehinddottedbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlinesbehinddottedbar{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreInVirgula\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInVirgula{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreVirgula\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreVirgula{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInVirgulaHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInVirgulaHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreVirgulaHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreVirgulaHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInVirgulaParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInVirgulaParen{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreVirgulaParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreVirgulaParen{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInVirgulaParenHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInVirgulaParenHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreVirgulaParenHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreVirgulaParenHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinimis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinimis{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinimis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinimis{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinimisHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinimisHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinimisHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinimisHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinima\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinima{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinima\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinima{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinimaHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinimaHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinimaHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinimaHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinimaParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinimaParen{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinimaParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinimaParen{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinimaParenHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDivisioMinimaParenHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinimaParenHigh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDivisioMinimaParenHigh{0 or 1}{${1:code}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMinor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreInDivisioMinor{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMinor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreDivisioMinor{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMaior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreInDivisioMaior{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMaior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreDivisioMaior{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioMaiorDotted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreInDivisioMaiorDotted{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioMaiorDotted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreDivisioMaiorDotted{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreDominica\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreDominica{${1:type}}{0 or 1}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreInDominica\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GreInDominica{${1:type}}{0 or 1}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreInDivisioFinalis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreInDivisioFinalis{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GreDivisioFinalis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreDivisioFinalis{0 or 1}{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"gresetshiftaftermora\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetshiftaftermora{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetshiftaftermora\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreFinalDivisioFinalis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreFinalDivisioFinalis{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreFinalDivisioMaior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreFinalDivisioMaior{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"gresetlinesbehindpunctumcavum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlinesbehindpunctumcavum{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlinesbehindalteration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlinesbehindalteration{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreFlat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreFlat{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"GreFlatParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreFlatParen{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"GreNatural\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreNatural{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"GreNaturalParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreNaturalParen{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"GreSharp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreSharp{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"GreSharpParen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreSharpParen{${1:height}}{0 or 1}{${2:before code}}{${3:after code}}{${4:info string}}\"\n      }\n    },\n    {\n      \"name\": \"gresetpunctumcavum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetpunctumcavum{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetpunctumcavum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreCavum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreCavum{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"GreBracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GreBracket{0 or 1}{${1:lowest height}}{${2:highest height}}{${3:info string}}\"\n      }\n    },\n    {\n      \"name\": \"gresetpointandclick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetpointandclick{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetpointandclick\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreGlyphHeights\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreGlyphHeights{${1:high height}}{${2:low height}}\"\n      }\n    },\n    {\n      \"name\": \"GreGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreGlyph{${1:char}}{${2:glyphnum}}{${3:code}}{${4:integer}}{${5:before code}}{${6:after code}}{${7:info string}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlyrics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlyrics{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gresetnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetnotes{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreFirstWord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreFirstWord{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreFirstSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreFirstSyllable{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreFirstSyllableInitial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreFirstSyllableInitial{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GreElision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreElision{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetFixedTextFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSetFixedTextFormat{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetFixedNextTextFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSetFixedNextTextFormat{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GreUnstyled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreUnstyled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GreGABCForceCenters\"\n    },\n    {\n      \"name\": \"GreGABCNextForceCenters\"\n    },\n    {\n      \"name\": \"gresetgabcforcecenters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetgabcforcecenters{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetThisSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreSetThisSyllable{${1:first letters}}{${2:middle letters}}{${3:end letters}}{${4:first letter}}{${5:all but first letters}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetNextSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreSetNextSyllable{${1:first letters}}{${2:middle letters}}{${3:end letters}}{${4:first letter}}{${5:all but first letters}}\"\n      }\n    },\n    {\n      \"name\": \"gresetlyriccentering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetlyriccentering{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetlyriccentering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetclivisalignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetclivisalignment{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetclivisalignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gresetemptyfirstsyllablehyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetemptyfirstsyllablehyphen{${1:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreForceHyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreEmptyFirstSyllableHyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gresetunbreakablesyllablenotes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gresetunbreakablesyllablenotes{${1:int1}}{${2:int2}}{${3:int3}}\"\n      }\n    },\n    {\n      \"name\": \"GreSyllableNoteCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSyllableNoteCount{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"gresetsyllablerewriting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetsyllablerewriting{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetsyllablerewriting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreClearSyllableText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreSyllable{${1:macro}}{${2:}}{${3:style cs}}{0 or 1}{${4:macros}}{${5:info string}}{${6:integer pair}}{${7:other macros}}{${8:notes}}\"\n      }\n    },\n    {\n      \"name\": \"GreNextSyllableBeginsEUOUAE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreNextSyllableBeginsEUOUAE{${1:id}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreLastSyllableBeforeEUOUAE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GreLastSyllableBeforeEUOUAE{${1:id}}{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"gresetbarspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetbarspacing{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\gresetbarspacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreBarSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreBarSyllable{${1:macro}}{${2:}}{${3:style cs}}{0 or 1}{${4:macros}}{${5:info string}}{${6:integer pair}}{${7:other macros}}{${8:bar line}}\"\n      }\n    },\n    {\n      \"name\": \"GreNoNoteSyllable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"GreNoNoteSyllable{${1:macro}}{${2:}}{${3:style cs}}{0 or 1}{${4:macros}}{${5:info string}}{${6:integer pair}}{${7:other macros}}{${8:bar line}}\"\n      }\n    },\n    {\n      \"name\": \"gresetinitiallines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gresetinitiallines{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetFirstSyllableText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"GreSetFirstSyllableText{${1:initial}}{${2:first letter}}{${3:other letters}}{${4:sep initial parts}}{${5:nosep initial parts}}{${6:extra macros}}\"\n      }\n    },\n    {\n      \"name\": \"GreSetNoFirstSyllableText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreUpcomingNewLineForcesCustos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreUpcomingNewLineForcesCustos{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"GreScoreOpening\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"GreScoreOpening{${1:after init code}}{${2:after notes code}}{${3:before init code}}{${4:syllable cs}}{${5:first syllable code}}\"\n      }\n    },\n    {\n      \"name\": \"gredefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gredefsymbol{${1:csname}}{${2:font name}}{${3:glyph name or code point}}\"\n      }\n    },\n    {\n      \"name\": \"gredefsizedsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gredefsizedsymbol{${1:csname}}{${2:font name}}{${3:glyph name or code point}}\"\n      }\n    },\n    {\n      \"name\": \"greABar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBar{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmall{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmallSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmallSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarSmallSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarSmallSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaption{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaptionSlant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaptionSlant{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarCaptionSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarCaptionSC{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greABarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greABarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greRBarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greRBarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greVBarAlt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greVBarAlt{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"grebarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"grebarredsymbol{${1:definition}}{${2:symbol}}{${3:size}}{${4:hshift}}{${5:vshift}}\"\n      }\n    },\n    {\n      \"name\": \"gredefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gredefbarredsymbol{${1:csname}}{${2:definition}}{${3:symbol}}{${4:size}}{${5:hshift}}{${6:vshift}}\"\n      }\n    },\n    {\n      \"name\": \"gresimpledefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresimpledefbarredsymbol{${1:A, R, or V}}{${2:left shift}}\"\n      }\n    },\n    {\n      \"name\": \"ABar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grelatexsimpledefbarredsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"grelatexsimpledefbarredsymbol{${1:A, R, or V}}{${2:upmedium shift}}{${3:itmedium shift}}{${4:upbold shift}}{${5:itbold shift}}\"\n      }\n    },\n    {\n      \"name\": \"gothRbar\"\n    },\n    {\n      \"name\": \"gothVbar\"\n    },\n    {\n      \"name\": \"GreDagger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grecross\"\n    },\n    {\n      \"name\": \"grealtcross\"\n    },\n    {\n      \"name\": \"greheightstar\"\n    },\n    {\n      \"name\": \"gresixstar\"\n    },\n    {\n      \"name\": \"GreStar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greLineOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineOne{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineTwo{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineThree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineThree{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineFour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineFour{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greLineFive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greLineFive{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greseparator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greseparator{${1:integer 1-5}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"greOrnamentOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greOrnamentOne{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greOrnamentTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greOrnamentTwo{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"greornamentation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greornamentation{${1:integer 1-2}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"gresetspecial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetspecial{${1:text%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"greunsetspecial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greunsetspecial{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GreSpecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreSpecial{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"gresetnabcfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetnabcfont{${1:font name%keyvals}}{${2:size}}\",\n        \"keys\": [\n          \"\\\\gresetnabcfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GreNABCChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreNABCChar{${1:nabc code}}\"\n      }\n    },\n    {\n      \"name\": \"gresetnabc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gresetnabc{${1:nabc voice number}}{${2:choice%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"GreNABCNeumes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GreNABCNeumes{${1:line}}{${2:nabc code}}{${3:high pitch}}{${4:low pitch}}\"\n      }\n    },\n    {\n      \"name\": \"GreScoreNABCLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GreScoreNABCLines{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gregoriotex#c\": [\n      \"debug\",\n      \"debug={${1:types}}\",\n      \"nevercompile\",\n      \"autocompile\",\n      \"forcecompile\",\n      \"allowdeprecated\"\n    ],\n    \"\\\\greannotation\": [\n      \"c\",\n      \"l\",\n      \"r\"\n    ],\n    \"\\\\gresetannotationby\": [\n      \"topline\",\n      \"bottomline\"\n    ],\n    \"\\\\gresetannotationvalign\": [\n      \"top\",\n      \"baseline\",\n      \"bottom\"\n    ],\n    \"\\\\gresetmodenumbersystem\": [\n      \"roman-minuscule\",\n      \"roman-majuscule\",\n      \"arabic\"\n    ],\n    \"\\\\gresetabovelinestext,\\\\gresetlines,\\\\gresettranslation,\\\\gresetclef,\\\\gresetcustosalteration,\\\\gresetlinesbehinddottedbar,\\\\gresetlinesbehindpunctumcavum,\\\\gresetlinesbehindalteration,\\\\gresetlyrics,\\\\gresetnotes,\\\\gresetnabc\": [\n      \"visible\",\n      \"invisible\"\n    ],\n    \"\\\\gresettranslationcentering\": [\n      \"left\",\n      \"center\"\n    ],\n    \"\\\\gresetbreakintranslation,\\\\gresetbreakineuouae,\\\\gresetgabcforcecenters\": [\n      \"allow\",\n      \"prohibit\"\n    ],\n    \"\\\\gresetlastline,\\\\gresetbreakbeforeeuouae\": [\n      \"justified\",\n      \"ragged\"\n    ],\n    \"\\\\gresetlineheightexpansion\": [\n      \"variable\",\n      \"uniform\"\n    ],\n    \"\\\\gresetnoteadditionalspacelinestext\": [\n      \"automatic\",\n      \"manual\"\n    ],\n    \"\\\\gresetbolshifts,\\\\greseteolshifts\": [\n      \"enable\",\n      \"disable\"\n    ],\n    \"\\\\greseteolcustos\": [\n      \"auto\",\n      \"manual\"\n    ],\n    \"\\\\greseteolcustosbeforeeuouae\": [\n      \"suppressed\",\n      \"auto\"\n    ],\n    \"\\\\greloadholehollowfonts\": [\n      \"true\",\n      \"false\"\n    ],\n    \"\\\\grechangestyle\": [\n      \"abovelinestext\",\n      \"additionalstafflines\",\n      \"annotation\",\n      \"commentary\",\n      \"elision\",\n      \"firstsyllable\",\n      \"firstsyllableinitial\",\n      \"firstword\",\n      \"highchoralsign\",\n      \"initial\",\n      \"lowchoralsign\",\n      \"modedifferentia\",\n      \"modeline\",\n      \"modemodifier\",\n      \"nabc\",\n      \"normalstafflines\",\n      \"translation\"\n    ],\n    \"\\\\gresetheadercapture\": [\n      \"name\",\n      \"string\"\n    ],\n    \"\\\\gresetcompilegabc\": [\n      \"force\",\n      \"auto\",\n      \"never\"\n    ],\n    \"\\\\gregorioscore\": [\n      \"n\",\n      \"a\",\n      \"f\"\n    ],\n    \"\\\\greseteolhyphen\": [\n      \"normal\",\n      \"zero\"\n    ],\n    \"\\\\gresethyphen,\\\\gresetemptyfirstsyllablehyphen\": [\n      \"force\",\n      \"auto\"\n    ],\n    \"\\\\grebolshiftcleftype\": [\n      \"largest\",\n      \"current\"\n    ],\n    \"\\\\grelocalbolshiftcleftype\": [\n      \"largest\",\n      \"current\",\n      \"f\",\n      \"c\",\n      \"fb\",\n      \"cb\"\n    ],\n    \"\\\\gresetprotrusionfactor\": [\n      \",\",\n      \";\",\n      \":\",\n      \".\",\n      \"eolhyphen\",\n      \"default\"\n    ],\n    \"\\\\gresetledgerlineheuristic\": [\n      \"enable\",\n      \"disable\"\n    ],\n    \"\\\\grechangedim,\\\\grechangenextscorelinedim\": [\n      \"fixed\",\n      \"scalable\",\n      \"inherited\"\n    ],\n    \"\\\\grechangecount,\\\\grechangenextscorelinecount\": [\n      \"additionaltopspacethreshold\",\n      \"additionaltopspacealtthreshold\",\n      \"additionaltopspacenabcthreshold\",\n      \"noteadditionalspacelinestextthreshold\",\n      \"brokenpenalty\",\n      \"clubpenalty\",\n      \"widowpenalty\",\n      \"emergencystretch\",\n      \"endafterbarpenalty\",\n      \"endafterbaraltpenalty\",\n      \"endofelementpenalty\",\n      \"endofsyllablepenalty\",\n      \"endofwordpenalty\",\n      \"hyphenpenalty\",\n      \"nobreakpenalty\",\n      \"newlinepenalty\",\n      \"finalpenalty\",\n      \"looseness\",\n      \"tolerance\",\n      \"pretolerance\"\n    ],\n    \"\\\\grescaledim#c\": [\n      \"yes\",\n      \"true\",\n      \"on\",\n      \"scalable\"\n    ],\n    \"\\\\gresetglyphstyle\": [\n      \"default\",\n      \"medicaea\",\n      \"hufnagel\",\n      \"mensural\"\n    ],\n    \"\\\\greprintsigns\": [\n      \"vepisema\",\n      \"hepisema\",\n      \"mora\",\n      \"all\"\n    ],\n    \"\\\\GreCustos,\\\\GreFinalCustos,\\\\GreNextCustos\": [\n      \"Flat\",\n      \"Natural\",\n      \"Sharp\"\n    ],\n    \"\\\\gresetbracerendering\": [\n      \"brace\",\n      \"underbrace\",\n      \"curlybrace\",\n      \"barbrace\"\n    ],\n    \"\\\\gresethepisema\": [\n      \"bridge\",\n      \"break\"\n    ],\n    \"\\\\gresetshiftaftermora\": [\n      \"always\",\n      \"notesonly\",\n      \"barsonly\",\n      \"notextonly\",\n      \"insideonly\",\n      \"never\"\n    ],\n    \"\\\\gresetpunctumcavum\": [\n      \"alternate\",\n      \"normal\"\n    ],\n    \"\\\\gresetpointandclick\": [\n      \"on\",\n      \"off\"\n    ],\n    \"\\\\gresetlyriccentering\": [\n      \"vowel\",\n      \"syllable\",\n      \"firstletter\"\n    ],\n    \"\\\\gresetclivisalignment\": [\n      \"always\",\n      \"never\",\n      \"special\"\n    ],\n    \"\\\\gresetsyllablerewriting\": [\n      \"auto\",\n      \"off\"\n    ],\n    \"\\\\gresetbarspacing\": [\n      \"new\",\n      \"old\"\n    ],\n    \"\\\\gresetnabcfont\": [\n      \"gregall\",\n      \"grelaon\",\n      \"gresgmodern\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gregoriotex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grfext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AppendGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AppendGraphicsExtensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"AppendGraphicsExtensions*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AppendGraphicsExtensions*{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"PrependGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrependGraphicsExtensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"PrependGraphicsExtensions*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrependGraphicsExtensions*{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveGraphicsExtensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveGraphicsExtensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"PrintGraphicsExtensions\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\includegraphics\": [\n      \"AppendGraphicsExtensions={${1:ext-list}}\",\n      \"AppendGraphicsExtensions*={${1:ext-list}}\",\n      \"PrependGraphicsExtensions={${1:ext-list}}\",\n      \"PrependGraphicsExtensions*={${1:ext-list}}\",\n      \"RemoveGraphicsExtensions={${1:ext-list}}\",\n      \"PrintGraphicsExtensions\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/grfpaste.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"paste\",\n      \"if\": \"defpaste\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"paste{${1:fragment number}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"sendout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendout{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"sendout\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sendout[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"xxx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/grfpaste#c\": [\n      \"write\",\n      \"writepages\",\n      \"include\",\n      \"defpaste\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\includegraphics\": [\n      \"num=${1:fragment number}\",\n      \"ref=${1:fragment label}\",\n      \"natdepth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grfpaste#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grid-system.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"Row\"\n    },\n    {\n      \"name\": \"Row\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Row},\\\\begin{row}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cell\"\n    },\n    {\n      \"name\": \"row\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:num of cols}}{${2:num of cells}}\"\n      }\n    },\n    {\n      \"name\": \"row\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:num of cols}}{${2:num of cells}}\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:num of cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{Row},\\\\begin{row}\": [\n      \"cellsep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/grid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"roundoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allfloats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halfbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figboxht\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"gridenv\"\n    },\n    {\n      \"name\": \"gridfltenv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/grid#c\": [\n      \"fontsize=\",\n      \"baseline=\",\n      \"lines=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grid#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gridpapers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns.meta\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"pagecolor\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gridpapers#c\": [\n      \"pattern=${1|std,stdeight,majmin,dot,hex,hexup,tri,iso,lightcone,ruled,doubleruled|}\",\n      \"colorset=${1|std,precocious,ghostly,brickred,engineer,plumpad|}\",\n      \"majorcolor=\",\n      \"minorcolor=\",\n      \"bgcolor=\",\n      \"patternsize=\",\n      \"dotsize=\",\n      \"fullpage\",\n      \"textarea\",\n      \"geometry={${1:geometry spec}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gridpapers#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gridset.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gridinterval\"\n    },\n    {\n      \"name\": \"gridbase\"\n    },\n    {\n      \"name\": \"SavePos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SavePos{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"vskipnextgrid\"\n    },\n    {\n      \"name\": \"thegridinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thegridinfo{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"theposinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theposinfo{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"theypos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theypos{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"thegridcnt\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gridslides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"braket\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"dsfont\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bg{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"txt\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"txt(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"block\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"block(${2:x},${3:y},${4:w}){${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"block<>\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"block<>(${2:x},${3:y},${4:w}){${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fig(${2:x},${3:y},${4:w}){${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"eq\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"eq(${2:x},${3:y}){${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute%text}}\"\n      }\n    },\n    {\n      \"name\": \"theheadline\"\n    },\n    {\n      \"name\": \"theslide\"\n    },\n    {\n      \"name\": \"theauthor\"\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"thedate\"\n    },\n    {\n      \"name\": \"theinstitute\"\n    },\n    {\n      \"name\": \"rgb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rgb{${1:rgb}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"style\"\n    },\n    {\n      \"name\": \"rawslide\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/grmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lcm\"\n    },\n    {\n      \"name\": \"arccot\"\n    },\n    {\n      \"name\": \"arcsec\"\n    },\n    {\n      \"name\": \"arccsc\"\n    },\n    {\n      \"name\": \"symgroperators\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/grmath#c\": [\n      \"grlog\",\n      \"enlog\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grruby.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"grrubystyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grrubystyle{${1:options}}\",\n        \"keys\": [\n          \"\\\\grrubystyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grrubycolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grrubycolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"grexpos\"\n    },\n    {\n      \"name\": \"grexpos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grexpos[${1:options}]\",\n        \"keys\": [\n          \"\\\\grexpos#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grrubyUserDefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grrubyUserDefined{${1:hangul}}{${2:hanja}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"grruby\"\n    },\n    {\n      \"name\": \"grrubypars\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/grruby#c\": [\n      \"rubystyle=${1|default,gromob,XXruby,ruby,progress,rup,lw,rw,user|}\",\n      \"rubycolor=\",\n      \"expos\",\n      \"pdflatex\"\n    ],\n    \"\\\\grrubystyle#c\": [\n      \"default\",\n      \"gromob\",\n      \"XXruby\",\n      \"ruby\",\n      \"progress\",\n      \"rup\",\n      \"lw\",\n      \"rw\",\n      \"user\"\n    ],\n    \"\\\\grexpos#c\": [\n      \"true\",\n      \"false\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grruby#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grundgesetze.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"bguq\",\n      \"if\": \"bguq\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GGhorizontal\"\n    },\n    {\n      \"name\": \"GGnot\"\n    },\n    {\n      \"name\": \"GGconditional\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GGconditional{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGquant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGquant{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGjudge\"\n    },\n    {\n      \"name\": \"GGdef\"\n    },\n    {\n      \"name\": \"GGbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGbracket{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGsqbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGsqbracket{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGterm{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGjudgelong\"\n    },\n    {\n      \"name\": \"GGjudgevar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGjudgevar{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"GGdeflong\"\n    },\n    {\n      \"name\": \"GGdefvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGdefvar{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"GGnotalone\"\n    },\n    {\n      \"name\": \"GGdnot\"\n    },\n    {\n      \"name\": \"GGall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGall{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GGnoboth\"\n    },\n    {\n      \"name\": \"GGnonotalone\"\n    },\n    {\n      \"name\": \"GGnodnot\"\n    },\n    {\n      \"name\": \"GGnoquant\"\n    },\n    {\n      \"name\": \"GGnonot\"\n    },\n    {\n      \"name\": \"GGcontent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGassert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGjudgealone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGassertlong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGassertalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGassertvar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GGassertvar{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"GGdefalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGoddspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGtinyspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGtiniestspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGquantthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforelen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGafterlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGlift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GGlinewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/grundgesetze#c\": [\n      \"bguq\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/grundgesetze#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/grverb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"grverb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"grverb|${1:text}|\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"grverbatim\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/gtrcrd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"A{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"A[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"B{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"B\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"B[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"C[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"D[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"E\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"E{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"E\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"E[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"F\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"F{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"F\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"F[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"G\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"G{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"G\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"G[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ab[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bb[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cb[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Db\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Db{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Db\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Db[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Eb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Eb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Eb[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fb[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gb[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"As{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"As[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bs[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cs[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ds{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ds\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ds[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Es\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Es{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Es\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Es[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fs[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gs[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Am\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Am{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Am\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Am[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Em\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Em{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Em\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Em[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Abm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Abm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Abm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bbm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bbm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bbm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cbm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cbm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cbm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dbm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dbm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dbm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ebm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ebm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ebm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ebm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fbm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fbm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fbm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gbm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gbm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gbm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gbm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Asm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Asm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Asm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bsm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bsm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bsm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bsm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Csm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Csm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Csm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Csm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dsm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dsm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dsm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dsm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Esm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Esm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Esm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Esm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fsm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fsm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fsm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fsm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gsm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gsm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gsm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gsm[${2:suffix}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chordsbelow\"\n    },\n    {\n      \"name\": \"neolatin\"\n    },\n    {\n      \"name\": \"transposeOneUp\"\n    },\n    {\n      \"name\": \"transposeTwoUp\"\n    },\n    {\n      \"name\": \"transposeThreeUp\"\n    },\n    {\n      \"name\": \"transposeFourUp\"\n    },\n    {\n      \"name\": \"transposeFiveUp\"\n    },\n    {\n      \"name\": \"transposeSixUp\"\n    },\n    {\n      \"name\": \"transposeOneDown\"\n    },\n    {\n      \"name\": \"transposeTwoDown\"\n    },\n    {\n      \"name\": \"transposeThreeDown\"\n    },\n    {\n      \"name\": \"transposeFourDown\"\n    },\n    {\n      \"name\": \"transposeFiveDown\"\n    },\n    {\n      \"name\": \"transposeSixDown\"\n    },\n    {\n      \"name\": \"notranspose\"\n    },\n    {\n      \"name\": \"sharponly\"\n    },\n    {\n      \"name\": \"flatonly\"\n    },\n    {\n      \"name\": \"normalize\"\n    },\n    {\n      \"name\": \"crdheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crdfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crdwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CHORD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CHORD{${1:symbol}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"CHORD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CHORD[${3:suffix}]{${1:symbol}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/gtrcrd#c\": [\n      \"notranspose\",\n      \"transposeOneUp\",\n      \"transposeTwoUp\",\n      \"transposeThreeUp\",\n      \"transposeFourUp\",\n      \"transposeFiveUp\",\n      \"transposeSixUp\",\n      \"transposeSixDown\",\n      \"transposeFiveDown\",\n      \"transposeFourDown\",\n      \"transposeThreeDown\",\n      \"transposeTwoDown\",\n      \"transposeOneDown\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/gtrcrd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/gtrlib.largetrees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"genealogytree\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gtrDBspouse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrifspousedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifspousedefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintSpouse\"\n    },\n    {\n      \"name\": \"gtrPrintSpouseDetails\"\n    },\n    {\n      \"name\": \"gtrDBchildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBdaughters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrDBsons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrifchildrendefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrifchildrendefined{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrPrintChildren\"\n    },\n    {\n      \"name\": \"gtrltSparseNodeProcessor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrltIfSparseEnabled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrltIfSparseEnabled{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrltFieldCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrltIfSparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrltIfSparse{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"gtrltDeclareFieldCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtrltDeclareFieldCount{${1:db-format}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"gtrltFieldCountByConditionals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gtrltFieldCountByConditionals{${1:cond-list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\genealogytree#c,\\\\genealogytreeinput#c,\\\\begin{genealogypicture}#c,\\\\gtrset#c,\\\\gtrkeysappto#c,\\\\gtrkeysgappto#c,\\\\gtrsetoptionsfornode#c,\\\\gtrsetoptionsforfamily#c,\\\\gtrsetoptionsforsubtree#c,\\\\gtrparserdebug#c,\\\\gtrparserdebuginput#c,\\\\gtrprocessordebug#c,\\\\gtrprocessordebuginput#c,\\\\gtrfanchart#c,\\\\gtrfanchartinput#c\": [\n      \"sparse display\",\n      \"sparse node size from=${1:min} to ${2:max}\",\n      \"sparse max fields=${1:integer}\",\n      \"sparse inner from level=${1:integer}\",\n      \"sparse leaf from level=${1:integer}\",\n      \"sparse inner never\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/guit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GuIT\"\n    },\n    {\n      \"name\": \"GuIT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuIT[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuIT,\\\\GuIT*,\\\\guit,\\\\guit*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuIT,\\\\GuIT*,\\\\guit,\\\\guit*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuIT*\"\n    },\n    {\n      \"name\": \"GuIT*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuIT*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuIT,\\\\GuIT*,\\\\guit,\\\\guit*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guit*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guit*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuIT,\\\\GuIT*,\\\\guit,\\\\guit*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ars\"\n    },\n    {\n      \"name\": \"Arsob\"\n    },\n    {\n      \"name\": \"ars\"\n    },\n    {\n      \"name\": \"tecnica\"\n    },\n    {\n      \"name\": \"arsta\"\n    },\n    {\n      \"name\": \"arstb\"\n    },\n    {\n      \"name\": \"arstv\"\n    },\n    {\n      \"name\": \"arsto\"\n    },\n    {\n      \"name\": \"Arsto\"\n    },\n    {\n      \"name\": \"GuITcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GuITcolor{${1:c,m,y,k}}\"\n      }\n    },\n    {\n      \"name\": \"GuITcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GuITcolor[${2:model}]{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"guitcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitcolor{${1:c,m,y,k}}\"\n      }\n    },\n    {\n      \"name\": \"guitcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"guitcolor[${2:model}]{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"GuITcolor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GuITcolor*{${1:c,m,y,k}}\"\n      }\n    },\n    {\n      \"name\": \"GuITcolor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GuITcolor*[${2:model}]{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"guitcolor*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitcolor*{${1:c,m,y,k}}\"\n      }\n    },\n    {\n      \"name\": \"guitcolor*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"guitcolor*[${2:model}]{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"GuITtext\"\n    },\n    {\n      \"name\": \"GuITtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITtext[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITtext,\\\\guittext,\\\\GuITtextEN,\\\\guittexten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guittext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guittext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guittext[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITtext,\\\\guittext,\\\\GuITtextEN,\\\\guittexten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuITtextEn\"\n    },\n    {\n      \"name\": \"GuITtextEn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITtextEn[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"guittexten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guittexten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guittexten[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITtext,\\\\guittext,\\\\GuITtextEN,\\\\guittexten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuITurl\"\n    },\n    {\n      \"name\": \"GuITurl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITurl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITurl,\\\\guiturl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guiturl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guiturl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guiturl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITurl,\\\\guiturl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuITforum\"\n    },\n    {\n      \"name\": \"GuITforum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITforum[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITforum,\\\\guitforum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guitforum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitforum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guitforum[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITforum,\\\\guitforum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuITmeeting\"\n    },\n    {\n      \"name\": \"GuITmeeting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITmeeting[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITmeeting,\\\\GuITmeeting*,\\\\guitmeeting,\\\\guitmeeting*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guitmeeting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitmeeting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guitmeeting[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITmeeting,\\\\GuITmeeting*,\\\\guitmeeting,\\\\guitmeeting*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GuITmeeting*\"\n    },\n    {\n      \"name\": \"GuITmeeting*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GuITmeeting*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITmeeting,\\\\GuITmeeting*,\\\\guitmeeting,\\\\guitmeeting*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guitmeeting*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitmeeting*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"guitmeeting*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GuITmeeting,\\\\GuITmeeting*,\\\\guitmeeting,\\\\guitmeeting*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupGuIT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setupGuIT[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setupGuIT,\\\\setupguit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setupguit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setupguit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setupGuIT,\\\\setupguit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareGuITLogoCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareGuITLogoCommand{${1:family}}{${2:u-hor}}{${3:u-vert}}{${4:i-hor}}{${5:t-hor}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareGuITLogoCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareGuITLogoCommand{${1:family}}[${6:series}]{${2:u-hor}}{${3:u-vert}}{${4:i-hor}}{${5:t-hor}}\"\n      }\n    },\n    {\n      \"name\": \"AliasGuITLogoCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AliasGuITLogoCommand{${1:family1}}{${2:series1}}{${3:family2}}{${4:series2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/guit#c\": [\n      \"color\",\n      \"nocolor\",\n      \"link\"\n    ],\n    \"\\\\GuIT,\\\\GuIT*,\\\\guit,\\\\guit*\": [\n      \"color=${1|yes,no,true,false|}\",\n      \"link=${1|yes,no,true,false|}\",\n      \"family=${1:family}\",\n      \"series=${1:series}\",\n      \"url=${1:URL}\"\n    ],\n    \"\\\\GuITtext,\\\\guittext,\\\\GuITtextEN,\\\\guittexten\": [\n      \"link=${1|yes,no,true,false|}\",\n      \"url=${1:URL}\"\n    ],\n    \"\\\\GuITurl,\\\\guiturl\": [\n      \"link=${1|yes,no,true,false|}\",\n      \"url=${1:URL}\",\n      \"document=${1:path}\"\n    ],\n    \"\\\\GuITforum,\\\\guitforum\": [\n      \"link=${1|yes,no,true,false|}\",\n      \"url=${1:URL}\"\n    ],\n    \"\\\\GuITmeeting,\\\\GuITmeeting*,\\\\guitmeeting,\\\\guitmeeting*\": [\n      \"color=${1|yes,no,true,false|}\",\n      \"link=${1|yes,no,true,false|}\",\n      \"url=${1:URL}\",\n      \"year=${1:year}\",\n      \"style=${1|display,inline|}\"\n    ],\n    \"\\\\setupGuIT,\\\\setupguit\": [\n      \"color=${1|yes,no,true,false|}\",\n      \"link=${1|yes,no,true,false|}\",\n      \"family=${1:family}\",\n      \"series=${1:series}\",\n      \"url=${1:URL}\",\n      \"document=${1:path}\",\n      \"year=${1:year}\",\n      \"style=${1|display,inline|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/guit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/guitar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"toolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"guitarChord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitarChord{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"guitarOn\"\n    },\n    {\n      \"name\": \"guitarOff\"\n    },\n    {\n      \"name\": \"guitarMagicOn\"\n    },\n    {\n      \"name\": \"guitarMagicOff\"\n    },\n    {\n      \"name\": \"guitarCrOn\"\n    },\n    {\n      \"name\": \"guitarCrOff\"\n    },\n    {\n      \"name\": \"guitarFirstLeft\"\n    },\n    {\n      \"name\": \"guitarFirstFlush\"\n    },\n    {\n      \"name\": \"guitarSharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarEndLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarEndPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarEndDoublePar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarNoChord\"\n    },\n    {\n      \"name\": \"guitarPreAccord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarAccord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarMagicOnHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarMagicOffHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarCrOnHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarCrOffHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarSplitDist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarSplitMerge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarCalcDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarPut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitarPut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guitarPutOnSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guitarPutDist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitarPutDist{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guitarPutMerge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guitarPutMerge{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"guitar\"\n    },\n    {\n      \"name\": \"guitarMagic\"\n    },\n    {\n      \"name\": \"guitarCr\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/guitarchordschemes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"cnltx-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chordscheme\"\n    },\n    {\n      \"name\": \"chordscheme\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chordscheme[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\chordscheme\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scales\"\n    },\n    {\n      \"name\": \"scales\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scales[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\scales#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setfingering\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setfingering{${1:name}}{${2:fingers}}{${3:roots}}\"\n      }\n    },\n    {\n      \"name\": \"setchordscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchordscheme{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setchordscheme,\\\\usepackage/guitarchordschemes#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rootsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showrootsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ringingstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mutedstring\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\chordscheme\": [\n      \"fret-number=${1:number}\",\n      \"name=${1:chord symbol}\",\n      \"position=${1:position}\",\n      \"finger=${1:fret}/${2:string}:${3:label}\",\n      \"root=${1:fret}/${2:string}:${3:label}\",\n      \"show-root=${1:fret}/${2:string}\",\n      \"barre=${1:fret}/${2:string range}:${3:label}\",\n      \"ring={${1:strings}}\",\n      \"mute={${1:strings}}\"\n    ],\n    \"\\\\scales#c\": [\n      \"fret-number=${1:number}\",\n      \"name=${1:title}\",\n      \"position=${1:position}\",\n      \"finger=${1:fret}/${2:string}:${3:label}\",\n      \"root=${1:fret}/${2:string}:${3:label}\",\n      \"fingering=${1|type 1,type 1A,type 2,type 3,type 4|}\",\n      \"fingering*=${1|type 1,type 1A,type 2,type 3,type 4|}\",\n      \"fingering?=${1|type 1,type 1A,type 2,type 3,type 4|}\"\n    ],\n    \"\\\\setchordscheme,\\\\usepackage/guitarchordschemes#c\": [\n      \"x-unit=\",\n      \"y-unit=\",\n      \"rotate=${1:angle}\",\n      \"finger-format={${1:TeX code}}\",\n      \"finger-format+={${1:TeX code}}\",\n      \"position-format={${1:TeX code}}\",\n      \"position-format+={${1:TeX code}}\",\n      \"name-format={${1:TeX code}}\",\n      \"name-format+={${1:TeX code}}\",\n      \"name-below\",\n      \"name-distance=\",\n      \"chord-name-cs=${1:cs}\",\n      \"scales-name-cs=${1:cs}\",\n      \"string-name-format={${1:TeX code}}\",\n      \"string-name-format+={${1:TeX code}}\",\n      \"strings=${1:number}\",\n      \"chord-frets=${1:number}\",\n      \"scales-frets=${1:number}\",\n      \"line-width=\",\n      \"finger-radius=${1:number}\",\n      \"finger-x-offset=${1:number}\",\n      \"finger-y-offset=${1:number}\",\n      \"finger-style={${1:TikZ style}}\",\n      \"root-style={${1:TikZ style}}\",\n      \"show-root-style={${1:TikZ style}}\",\n      \"ringing-style={${1:TikZ style}}\",\n      \"muted-style={${1:TikZ style}}\",\n      \"tuning={${1:strings}}\",\n      \"restrict-bounding-box\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setchordscheme,\\\\usepackage/guitarchordschemes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hackthefootline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"appendixnumberbeamer\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"numprint\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"htfconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htfconfig{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\htfconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"htfcheckauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfcheckinstit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfcheckboth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfchecknone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfframenrboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfprogress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfprintmessage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htfupdateprogress\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hackthefootline#c\": [\n      \"onecol\",\n      \"twocols\",\n      \"threecols\",\n      \"countappendixframes\",\n      \"nofun\"\n    ],\n    \"\\\\htfconfig\": [\n      \"cols=${1|one,two,three,none|}\",\n      \"title=${1|short,long,none|}\",\n      \"authinst=${1|onlyauthor,onlyinst,instpths,authpths,both,none|}\",\n      \"date=${1|short,long,none|}\",\n      \"framenrs=${1|counter,fraction,percent,none|}\",\n      \"atsep=${1|colon,comma,space|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hackthefootline#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/halloweenmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathleftghost\"\n    },\n    {\n      \"name\": \"mathghost\"\n    },\n    {\n      \"name\": \"mathrightghost\"\n    },\n    {\n      \"name\": \"mathleftbat\"\n    },\n    {\n      \"name\": \"mathbat\"\n    },\n    {\n      \"name\": \"mathrightbat\"\n    },\n    {\n      \"name\": \"pumpkin\"\n    },\n    {\n      \"name\": \"skull\"\n    },\n    {\n      \"name\": \"mathwitch\"\n    },\n    {\n      \"name\": \"reversemathwitch\"\n    },\n    {\n      \"name\": \"mathwitch*\"\n    },\n    {\n      \"name\": \"reversemathwitch*\"\n    },\n    {\n      \"name\": \"bigpumpkin\"\n    },\n    {\n      \"name\": \"bigskull\"\n    },\n    {\n      \"name\": \"greatpumpkin\"\n    },\n    {\n      \"name\": \"mathcloud\"\n    },\n    {\n      \"name\": \"reversemathcloud\"\n    },\n    {\n      \"name\": \"leftbroom\"\n    },\n    {\n      \"name\": \"rightbroom\"\n    },\n    {\n      \"name\": \"hmleftpitchfork\"\n    },\n    {\n      \"name\": \"hmrightpitchfork\"\n    },\n    {\n      \"name\": \"xleftwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftwitchonbroom{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonbroom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftwitchonbroom[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightwitchonbroom{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonbroom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightwitchonbroom[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftwitchonbroom*{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftwitchonbroom*[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightwitchonbroom*{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightwitchonbroom*[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftwitchonpitchfork{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftwitchonpitchfork[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightwitchonpitchfork{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightwitchonpitchfork[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftwitchonpitchfork*{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftwitchonpitchfork*[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightwitchonpitchfork*{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightwitchonpitchfork*[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftbroom{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftbroom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftbroom[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightbroom{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightbroom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightbroom[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftpitchfork{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftpitchfork\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftpitchfork[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightpitchfork{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightpitchfork\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightpitchfork[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftswishingghost{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftswishingghost\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftswishingghost[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightswishingghost{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightswishingghost\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightswishingghost[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftflutteringbat{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xleftflutteringbat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftflutteringbat[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightflutteringbat{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"xrightflutteringbat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightflutteringbat[${2:below}]{${1:above}}\"\n      }\n    },\n    {\n      \"name\": \"overleftwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftwitchonbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightwitchonbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftwitchonbroom*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightwitchonbroom*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftwitchonpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightwitchonpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftwitchonpitchfork*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightwitchonpitchfork*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptleftbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptleftbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptrightbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptrightbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptleftpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptleftpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptrightpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptrightpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftswishingghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightswishingghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftflutteringbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightflutteringbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftwitchonbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightwitchonbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightwitchonbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftwitchonbroom*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightwitchonbroom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightwitchonbroom*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftwitchonpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightwitchonpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightwitchonpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftwitchonpitchfork*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightwitchonpitchfork*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightwitchonpitchfork*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptleftbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptleftbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptrightbroom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptrightbroom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptleftpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptleftpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptrightpitchfork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptrightpitchfork{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftswishingghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightswishingghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightswishingghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftflutteringbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightflutteringbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightflutteringbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underbat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overscriptleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overscriptleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underscriptleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underscriptleftrightarrow{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hamnosys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"texthamnosys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthamnosys{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hamnosysfont\"\n    },\n    {\n      \"name\": \"hamnosys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hamnosys{${1:sym1,sym2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\hamnosys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hamfist\"\n    },\n    {\n      \"name\": \"hamflathand\"\n    },\n    {\n      \"name\": \"hamfingertwo\"\n    },\n    {\n      \"name\": \"hamfingertwothree\"\n    },\n    {\n      \"name\": \"hamfingertwothreespread\"\n    },\n    {\n      \"name\": \"hamfingertwothreefourfive\"\n    },\n    {\n      \"name\": \"hampinchonetwo\"\n    },\n    {\n      \"name\": \"hampinchall\"\n    },\n    {\n      \"name\": \"hampinchonetwoopen\"\n    },\n    {\n      \"name\": \"hamceeonetwo\"\n    },\n    {\n      \"name\": \"hamceeall\"\n    },\n    {\n      \"name\": \"hamceeopen\"\n    },\n    {\n      \"name\": \"hamthumboutmod\"\n    },\n    {\n      \"name\": \"hamthumbacrossmod\"\n    },\n    {\n      \"name\": \"hamthumbopenmod\"\n    },\n    {\n      \"name\": \"hamfingerstraightmod\"\n    },\n    {\n      \"name\": \"hamfingerbendmod\"\n    },\n    {\n      \"name\": \"hamfingerhookmod\"\n    },\n    {\n      \"name\": \"hamdoublebent\"\n    },\n    {\n      \"name\": \"hamdoublehooked\"\n    },\n    {\n      \"name\": \"hamextfingeru\"\n    },\n    {\n      \"name\": \"hamextfingerur\"\n    },\n    {\n      \"name\": \"hamextfingerr\"\n    },\n    {\n      \"name\": \"hamextfingerdr\"\n    },\n    {\n      \"name\": \"hamextfingerd\"\n    },\n    {\n      \"name\": \"hamextfingerdl\"\n    },\n    {\n      \"name\": \"hamextfingerl\"\n    },\n    {\n      \"name\": \"hamextfingerul\"\n    },\n    {\n      \"name\": \"hamextfingerol\"\n    },\n    {\n      \"name\": \"hamextfingero\"\n    },\n    {\n      \"name\": \"hamextfingeror\"\n    },\n    {\n      \"name\": \"hamextfingeril\"\n    },\n    {\n      \"name\": \"hamextfingeri\"\n    },\n    {\n      \"name\": \"hamextfingerir\"\n    },\n    {\n      \"name\": \"hamextfingerui\"\n    },\n    {\n      \"name\": \"hamextfingerdi\"\n    },\n    {\n      \"name\": \"hamextfingerdo\"\n    },\n    {\n      \"name\": \"hamextfingeruo\"\n    },\n    {\n      \"name\": \"hampalmu\"\n    },\n    {\n      \"name\": \"hampalmur\"\n    },\n    {\n      \"name\": \"hampalmr\"\n    },\n    {\n      \"name\": \"hampalmdr\"\n    },\n    {\n      \"name\": \"hampalmd\"\n    },\n    {\n      \"name\": \"hampalmdl\"\n    },\n    {\n      \"name\": \"hampalml\"\n    },\n    {\n      \"name\": \"hampalmul\"\n    },\n    {\n      \"name\": \"hamhead\"\n    },\n    {\n      \"name\": \"hamheadtop\"\n    },\n    {\n      \"name\": \"hamforehead\"\n    },\n    {\n      \"name\": \"hameyebrows\"\n    },\n    {\n      \"name\": \"hameyes\"\n    },\n    {\n      \"name\": \"hamnose\"\n    },\n    {\n      \"name\": \"hamnostrils\"\n    },\n    {\n      \"name\": \"hamear\"\n    },\n    {\n      \"name\": \"hamearlobe\"\n    },\n    {\n      \"name\": \"hamcheek\"\n    },\n    {\n      \"name\": \"hamlips\"\n    },\n    {\n      \"name\": \"hamtongue\"\n    },\n    {\n      \"name\": \"hamteeth\"\n    },\n    {\n      \"name\": \"hamchin\"\n    },\n    {\n      \"name\": \"hamunderchin\"\n    },\n    {\n      \"name\": \"hamneck\"\n    },\n    {\n      \"name\": \"hamshouldertop\"\n    },\n    {\n      \"name\": \"hamshoulders\"\n    },\n    {\n      \"name\": \"hamchest\"\n    },\n    {\n      \"name\": \"hamstomach\"\n    },\n    {\n      \"name\": \"hambelowstomach\"\n    },\n    {\n      \"name\": \"hamneutralspace\"\n    },\n    {\n      \"name\": \"hamupperarm\"\n    },\n    {\n      \"name\": \"hamelbow\"\n    },\n    {\n      \"name\": \"hamelbowinside\"\n    },\n    {\n      \"name\": \"hamlowerarm\"\n    },\n    {\n      \"name\": \"hamwristback\"\n    },\n    {\n      \"name\": \"hamwristpulse\"\n    },\n    {\n      \"name\": \"hamthumbball\"\n    },\n    {\n      \"name\": \"hampalm\"\n    },\n    {\n      \"name\": \"hamhandback\"\n    },\n    {\n      \"name\": \"hamthumbside\"\n    },\n    {\n      \"name\": \"hampinkyside\"\n    },\n    {\n      \"name\": \"hamthumb\"\n    },\n    {\n      \"name\": \"hamindexfinger\"\n    },\n    {\n      \"name\": \"hammiddlefinger\"\n    },\n    {\n      \"name\": \"hamringfinger\"\n    },\n    {\n      \"name\": \"hampinky\"\n    },\n    {\n      \"name\": \"hamfingertip\"\n    },\n    {\n      \"name\": \"hamfingernail\"\n    },\n    {\n      \"name\": \"hamfingerpad\"\n    },\n    {\n      \"name\": \"hamfingermidjoint\"\n    },\n    {\n      \"name\": \"hamfingerbase\"\n    },\n    {\n      \"name\": \"hamfingerside\"\n    },\n    {\n      \"name\": \"hamlrbeside\"\n    },\n    {\n      \"name\": \"hamlrat\"\n    },\n    {\n      \"name\": \"hamcoreftag\"\n    },\n    {\n      \"name\": \"hamcorefref\"\n    },\n    {\n      \"name\": \"hammoveu\"\n    },\n    {\n      \"name\": \"hammoveur\"\n    },\n    {\n      \"name\": \"hammover\"\n    },\n    {\n      \"name\": \"hammovedr\"\n    },\n    {\n      \"name\": \"hammoved\"\n    },\n    {\n      \"name\": \"hammovedl\"\n    },\n    {\n      \"name\": \"hammovel\"\n    },\n    {\n      \"name\": \"hammoveul\"\n    },\n    {\n      \"name\": \"hammoveol\"\n    },\n    {\n      \"name\": \"hammoveo\"\n    },\n    {\n      \"name\": \"hammoveor\"\n    },\n    {\n      \"name\": \"hammoveil\"\n    },\n    {\n      \"name\": \"hammovei\"\n    },\n    {\n      \"name\": \"hammoveir\"\n    },\n    {\n      \"name\": \"hammoveui\"\n    },\n    {\n      \"name\": \"hammovedi\"\n    },\n    {\n      \"name\": \"hammovedo\"\n    },\n    {\n      \"name\": \"hammoveuo\"\n    },\n    {\n      \"name\": \"hamcircleo\"\n    },\n    {\n      \"name\": \"hamcirclei\"\n    },\n    {\n      \"name\": \"hamcircled\"\n    },\n    {\n      \"name\": \"hamcircleu\"\n    },\n    {\n      \"name\": \"hamcirclel\"\n    },\n    {\n      \"name\": \"hamcircler\"\n    },\n    {\n      \"name\": \"hamcircleul\"\n    },\n    {\n      \"name\": \"hamcircledr\"\n    },\n    {\n      \"name\": \"hamcircleur\"\n    },\n    {\n      \"name\": \"hamcircledl\"\n    },\n    {\n      \"name\": \"hamcircleol\"\n    },\n    {\n      \"name\": \"hamcircleir\"\n    },\n    {\n      \"name\": \"hamcircleor\"\n    },\n    {\n      \"name\": \"hamcircleil\"\n    },\n    {\n      \"name\": \"hamcircleui\"\n    },\n    {\n      \"name\": \"hamcircledo\"\n    },\n    {\n      \"name\": \"hamcircleuo\"\n    },\n    {\n      \"name\": \"hamcircledi\"\n    },\n    {\n      \"name\": \"hamfingerplay\"\n    },\n    {\n      \"name\": \"hamnodding\"\n    },\n    {\n      \"name\": \"hamswinging\"\n    },\n    {\n      \"name\": \"hamtwisting\"\n    },\n    {\n      \"name\": \"hamstircw\"\n    },\n    {\n      \"name\": \"hamstirccw\"\n    },\n    {\n      \"name\": \"hamreplace\"\n    },\n    {\n      \"name\": \"hamnomotion\"\n    },\n    {\n      \"name\": \"hamclocku\"\n    },\n    {\n      \"name\": \"hamclockul\"\n    },\n    {\n      \"name\": \"hamclockl\"\n    },\n    {\n      \"name\": \"hamclockdl\"\n    },\n    {\n      \"name\": \"hamclockd\"\n    },\n    {\n      \"name\": \"hamclockdr\"\n    },\n    {\n      \"name\": \"hamclockr\"\n    },\n    {\n      \"name\": \"hamclockur\"\n    },\n    {\n      \"name\": \"hamclockfull\"\n    },\n    {\n      \"name\": \"hamarcl\"\n    },\n    {\n      \"name\": \"hamarcu\"\n    },\n    {\n      \"name\": \"hamarcr\"\n    },\n    {\n      \"name\": \"hamarcd\"\n    },\n    {\n      \"name\": \"hamwavy\"\n    },\n    {\n      \"name\": \"hamzigzag\"\n    },\n    {\n      \"name\": \"hamellipseh\"\n    },\n    {\n      \"name\": \"hamellipseur\"\n    },\n    {\n      \"name\": \"hamellipsev\"\n    },\n    {\n      \"name\": \"hamellipseul\"\n    },\n    {\n      \"name\": \"hamincreasing\"\n    },\n    {\n      \"name\": \"hamdecreasing\"\n    },\n    {\n      \"name\": \"hamfast\"\n    },\n    {\n      \"name\": \"hamslow\"\n    },\n    {\n      \"name\": \"hamtense\"\n    },\n    {\n      \"name\": \"hamrest\"\n    },\n    {\n      \"name\": \"hamhalt\"\n    },\n    {\n      \"name\": \"hamclose\"\n    },\n    {\n      \"name\": \"hamtouch\"\n    },\n    {\n      \"name\": \"haminterlock\"\n    },\n    {\n      \"name\": \"hamcross\"\n    },\n    {\n      \"name\": \"hamarmextended\"\n    },\n    {\n      \"name\": \"hambehind\"\n    },\n    {\n      \"name\": \"hambrushing\"\n    },\n    {\n      \"name\": \"hamsmallmod\"\n    },\n    {\n      \"name\": \"hamlargemod\"\n    },\n    {\n      \"name\": \"hamrepeatfromstart\"\n    },\n    {\n      \"name\": \"hamrepeatfromstartseveral\"\n    },\n    {\n      \"name\": \"hamrepeatcontinue\"\n    },\n    {\n      \"name\": \"hamrepeatcontinueseveral\"\n    },\n    {\n      \"name\": \"hamrepeatreverse\"\n    },\n    {\n      \"name\": \"hamalternatingmotion\"\n    },\n    {\n      \"name\": \"hamseqbegin\"\n    },\n    {\n      \"name\": \"hamseqend\"\n    },\n    {\n      \"name\": \"hamparbegin\"\n    },\n    {\n      \"name\": \"hamparend\"\n    },\n    {\n      \"name\": \"hamfusionbegin\"\n    },\n    {\n      \"name\": \"hamfusionend\"\n    },\n    {\n      \"name\": \"hambetween\"\n    },\n    {\n      \"name\": \"hamplus\"\n    },\n    {\n      \"name\": \"hamsymmpar\"\n    },\n    {\n      \"name\": \"hamsymmlr\"\n    },\n    {\n      \"name\": \"hamnondominant\"\n    },\n    {\n      \"name\": \"hamnonipsi\"\n    },\n    {\n      \"name\": \"hametc\"\n    },\n    {\n      \"name\": \"hamorirelative\"\n    },\n    {\n      \"name\": \"hammime\"\n    },\n    {\n      \"name\": \"hamversionfourzero\"\n    },\n    {\n      \"name\": \"hamspace\"\n    },\n    {\n      \"name\": \"hamexclaim\"\n    },\n    {\n      \"name\": \"hamcomma\"\n    },\n    {\n      \"name\": \"hamfullstop\"\n    },\n    {\n      \"name\": \"hamquery\"\n    },\n    {\n      \"name\": \"hamaltbegin\"\n    },\n    {\n      \"name\": \"hammetaalt\"\n    },\n    {\n      \"name\": \"hamaltend\"\n    },\n    {\n      \"name\": \"hamwristtopulse\"\n    },\n    {\n      \"name\": \"hamwristtoback\"\n    },\n    {\n      \"name\": \"hamwristtothumb\"\n    },\n    {\n      \"name\": \"hamwristtopinky\"\n    },\n    {\n      \"name\": \"hammovecross\"\n    },\n    {\n      \"name\": \"hammoveX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hamnosys#c\": [\n      \"autofont\"\n    ],\n    \"\\\\hamnosys\": [\n      \"hamfist\",\n      \"hamflathand\",\n      \"hamfinger2\",\n      \"hamfinger23\",\n      \"hamfinger23spread\",\n      \"hamfinger2345\",\n      \"hampinch12\",\n      \"hampinchall\",\n      \"hampinch12open\",\n      \"hamcee12\",\n      \"hamceeall\",\n      \"hamceeopen\",\n      \"\",\n      \"hamthumboutmod\",\n      \"hamthumbacrossmod\",\n      \"hamthumbopenmod\",\n      \"hamfingerstraightmod\",\n      \"hamfingerbendmod\",\n      \"hamfingerhookmod\",\n      \"hamdoublebent\",\n      \"hamdoublehooked\",\n      \"\",\n      \"hamextfingeru\",\n      \"hamextfingerur\",\n      \"hamextfingerr\",\n      \"hamextfingerdr\",\n      \"hamextfingerd\",\n      \"hamextfingerdl\",\n      \"hamextfingerl\",\n      \"hamextfingerul\",\n      \"hamextfingerol\",\n      \"hamextfingero\",\n      \"hamextfingeror\",\n      \"hamextfingeril\",\n      \"hamextfingeri\",\n      \"hamextfingerir\",\n      \"hamextfingerui\",\n      \"hamextfingerdi\",\n      \"hamextfingerdo\",\n      \"hamextfingeruo\",\n      \"\",\n      \"hampalmu\",\n      \"hampalmur\",\n      \"hampalmr\",\n      \"hampalmdr\",\n      \"hampalmd\",\n      \"hampalmdl\",\n      \"hampalml\",\n      \"hampalmul\",\n      \"\",\n      \"hamhead\",\n      \"hamheadtop\",\n      \"hamforehead\",\n      \"hameyebrows\",\n      \"hameyes\",\n      \"hamnose\",\n      \"hamnostrils\",\n      \"hamear\",\n      \"hamearlobe\",\n      \"hamcheek\",\n      \"hamlips\",\n      \"hamtongue\",\n      \"hamteeth\",\n      \"hamchin\",\n      \"hamunderchin\",\n      \"hamneck\",\n      \"hamshouldertop\",\n      \"hamshoulders\",\n      \"hamchest\",\n      \"hamstomach\",\n      \"hambelowstomach\",\n      \"hamneutralspace\",\n      \"hamupperarm\",\n      \"hamelbow\",\n      \"hamelbowinside\",\n      \"hamlowerarm\",\n      \"hamwristback\",\n      \"hamwristpulse\",\n      \"hamthumbball\",\n      \"hampalm\",\n      \"hamhandback\",\n      \"hamthumbside\",\n      \"hampinkyside\",\n      \"hamthumb\",\n      \"hamindexfinger\",\n      \"hammiddlefinger\",\n      \"hamringfinger\",\n      \"hampinky\",\n      \"hamfingertip\",\n      \"hamfingernail\",\n      \"hamfingerpad\",\n      \"hamfingermidjoint\",\n      \"hamfingerbase\",\n      \"hamfingerside\",\n      \"\",\n      \"hamlrbeside\",\n      \"hamlrat\",\n      \"hamcoreftag\",\n      \"hamcorefref\",\n      \"\",\n      \"hammoveu\",\n      \"hammoveur\",\n      \"hammover\",\n      \"hammovedr\",\n      \"hammoved\",\n      \"hammovedl\",\n      \"hammovel\",\n      \"hammoveul\",\n      \"hammoveol\",\n      \"hammoveo\",\n      \"hammoveor\",\n      \"hammoveil\",\n      \"hammovei\",\n      \"hammoveir\",\n      \"hammoveui\",\n      \"hammovedi\",\n      \"hammovedo\",\n      \"hammoveuo\",\n      \"hamcircleo\",\n      \"hamcirclei\",\n      \"hamcircled\",\n      \"hamcircleu\",\n      \"hamcirclel\",\n      \"hamcircler\",\n      \"hamcircleul\",\n      \"hamcircledr\",\n      \"hamcircleur\",\n      \"hamcircledl\",\n      \"hamcircleol\",\n      \"hamcircleir\",\n      \"hamcircleor\",\n      \"hamcircleil\",\n      \"hamcircleui\",\n      \"hamcircledo\",\n      \"hamcircleuo\",\n      \"hamcircledi\",\n      \"hamfingerplay\",\n      \"hamnodding\",\n      \"hamswinging\",\n      \"hamtwisting\",\n      \"hamstircw\",\n      \"hamstirccw\",\n      \"hamreplace\",\n      \"hamnomotion\",\n      \"hamclocku\",\n      \"hamclockul\",\n      \"hamclockl\",\n      \"hamclockdl\",\n      \"hamclockd\",\n      \"hamclockdr\",\n      \"hamclockr\",\n      \"hamclockur\",\n      \"hamclockfull\",\n      \"hamarcl\",\n      \"hamarcu\",\n      \"hamarcr\",\n      \"hamarcd\",\n      \"hamwavy\",\n      \"hamzigzag\",\n      \"hamellipseh\",\n      \"hamellipseur\",\n      \"hamellipsev\",\n      \"hamellipseul\",\n      \"hamincreasing\",\n      \"hamdecreasing\",\n      \"hamfast\",\n      \"hamslow\",\n      \"hamtense\",\n      \"hamrest\",\n      \"hamhalt\",\n      \"hamclose\",\n      \"hamtouch\",\n      \"haminterlock\",\n      \"hamcross\",\n      \"hamarmextended\",\n      \"hambehind\",\n      \"hambrushing\",\n      \"\",\n      \"hamsmallmod\",\n      \"hamlargemod\",\n      \"\",\n      \"hamrepeatfromstart\",\n      \"hamrepeatfromstartseveral\",\n      \"hamrepeatcontinue\",\n      \"hamrepeatcontinueseveral\",\n      \"hamrepeatreverse\",\n      \"hamalternatingmotion\",\n      \"hamseqbegin\",\n      \"hamseqend\",\n      \"hamparbegin\",\n      \"hamparend\",\n      \"hamfusionbegin\",\n      \"hamfusionend\",\n      \"hambetween\",\n      \"hamplus\",\n      \"hamsymmpar\",\n      \"hamsymmlr\",\n      \"hamnondominant\",\n      \"hamnonipsi\",\n      \"hametc\",\n      \"hamorirelative\",\n      \"hammime\",\n      \"\",\n      \"hamversion40\",\n      \"\",\n      \"hamspace\",\n      \"hamexclaim\",\n      \"hamcomma\",\n      \"hamfullstop\",\n      \"hamquery\",\n      \"hamaltbegin\",\n      \"hammetaalt\",\n      \"hamaltend\",\n      \"\",\n      \"hamwristtopulse\",\n      \"hamwristtoback\",\n      \"hamwristtothumb\",\n      \"hamwristtopinky\",\n      \"hammovecross\",\n      \"hammoveX\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hamnosys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/handout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"handout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handout{${1:file path%file}}\"\n      }\n    },\n    {\n      \"name\": \"thehandoutnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"handoutnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handoutnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"handoutnumberintxt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handoutnumberintxt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"disablehandout\"\n    },\n    {\n      \"name\": \"enablehandout\"\n    },\n    {\n      \"name\": \"onlyhandout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyhandout{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"nothandout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nothandout{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"forhandout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forhandout{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"forhandout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forhandout*{${1:contents%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/handout#c\": [\n      \"dir=${1:file path}\",\n      \"sectioning\",\n      \"disabled\",\n      \"printing\",\n      \"numbering\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/handout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/handoutWithNotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"pgfpages\"\n    },\n    {\n      \"name\": \"translator\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notesbox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/handoutWithNotes#c\": [\n      \"slide-frame\",\n      \"note-frame\",\n      \"lines=${1:integer}\",\n      \"graph\",\n      \"rule=\",\n      \"beamer-notes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/handoutWithNotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hang.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hangingindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangingleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labeledleftmargin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hangingpar\"\n    },\n    {\n      \"name\": \"hanginglist\"\n    },\n    {\n      \"name\": \"compacthang\"\n    },\n    {\n      \"name\": \"labeledpar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:widest-label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"labeledlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest-label}}\"\n      }\n    },\n    {\n      \"name\": \"compactlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest-label}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hanging.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hangpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hangpara{${1:indent%l}}{${2:afternum}}\"\n      }\n    },\n    {\n      \"name\": \"nhpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhlq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nhrq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activatepunct\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hangparas\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:indent%l}}{${2:afternum}}\"\n      }\n    },\n    {\n      \"name\": \"hangpunct\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hanging#c\": [\n      \"notcomma\",\n      \"notperiod\",\n      \"notquote\",\n      \"notquery\",\n      \"notexcl\",\n      \"notcolon\",\n      \"notscolon\",\n      \"fine\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hanging#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hangulfontset.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kotex\"\n    },\n    {\n      \"name\": \"unfontsxe\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hangulfontset#c\": [\n      \"nanum\",\n      \"nanumx\",\n      \"barun\",\n      \"barunx\",\n      \"hcr\",\n      \"noto\",\n      \"notocjk\",\n      \"kopub\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hangulfontset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hanjacnt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kotex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NumHanja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHanja{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumHangul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHangul{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumHanjaBig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHanjaBig{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumHangulBig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHangulBig{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"FinHanjaMode\"\n    },\n    {\n      \"name\": \"FinHanjaMode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FinHanjaMode{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\FinHanjaMode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ManSpaceOn\"\n    },\n    {\n      \"name\": \"ManSpaceOff\"\n    },\n    {\n      \"name\": \"NumHanjaDig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHanjaDig{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaZero{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaZeroFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaZeroFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"TwentyHanjaChar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TwentyHanjaChar[${1:options}]\",\n        \"keys\": [\n          \"\\\\TwentyHanjaChar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KRVcom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KRVcom{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"KRVverse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KRVverse{${1:book}}{${2:verse}}\"\n      }\n    },\n    {\n      \"name\": \"KRVverse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KRVverse{${1:book}}{${2:verse}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"MarkHanja\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MarkHanja{${1:name%keyvals}}{${2:hanja}}\",\n        \"keys\": [\n          \"\\\\MarkHanja#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HANJA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HANJA{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"HANGUL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HANGUL{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"HANJADIG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HANJADIG{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaMonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaDay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaDay{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"HangulYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HangulMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulMonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"HangulDay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulDay{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaToday\"\n    },\n    {\n      \"name\": \"HangulToday\"\n    },\n    {\n      \"name\": \"HanjaTodayWithGanji\"\n    },\n    {\n      \"name\": \"HangulTodayWithGanji\"\n    },\n    {\n      \"name\": \"HangulLunarToday\"\n    },\n    {\n      \"name\": \"HangulLunarTodayWithGanji\"\n    },\n    {\n      \"name\": \"HangulLunarDay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulLunarDay{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"HangulDangiYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulDangiYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaDangiYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaDangiYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HangulBulgiYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulBulgiYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaBulgiYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaBulgiYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HangulGanji\"\n    },\n    {\n      \"name\": \"HangulGanji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HangulGanji{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"HanjaGanji\"\n    },\n    {\n      \"name\": \"HanjaGanji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HanjaGanji{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"NumHanjaFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumHanjaFont{${1:font}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hanjacnt#c\": [\n      \"manspace\",\n      \"20\",\n      \"30\",\n      \"finhanja\",\n      \"fullfinhanja\",\n      \"varfinhanja\"\n    ],\n    \"\\\\FinHanjaMode\": [\n      \"full\",\n      \"var\",\n      \"fullvar\",\n      \"off\",\n      \"on\"\n    ],\n    \"\\\\TwentyHanjaChar#c\": [\n      \"2\",\n      \"10\",\n      \"20\",\n      \"30\",\n      \"21\",\n      \"31\"\n    ],\n    \"\\\\MarkHanja#c\": [\n      \"default\",\n      \"one\",\n      \"two\",\n      \"three\",\n      \"four\",\n      \"five\",\n      \"six\",\n      \"seven\",\n      \"eight\",\n      \"nine\",\n      \"ten\",\n      \"hundred\",\n      \"thousand\",\n      \"shi\",\n      \"bae\",\n      \"chu\",\n      \"man\",\n      \"eok\",\n      \"cho\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hanjacnt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hanzibox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"l3draw\"\n    },\n    {\n      \"name\": \"xpinyin\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanzibox{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"hanzibox{${1:character}}[${2:pinyin}]\"\n      }\n    },\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"hanzibox{${1:character}}[${2:pinyin}][${3:translation}]\"\n      }\n    },\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanzibox[${2:options%keyvals}]{${1:character}}\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"hanzibox[${2:options%keyvals}]{${1:character}}[${3:pinyin}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzibox\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"hanzibox[${2:options%keyvals}]{${1:character}}[${3:pinyin}][${4:translation}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanzibox*{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"hanzibox*{${1:character}}[${2:pinyin}]\"\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"hanzibox*{${1:character}}[${2:pinyin}][${3:translation}]\"\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanzibox*[${2:options%keyvals}]{${1:character}}\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"hanzibox*[${2:options%keyvals}]{${1:character}}[${3:pinyin}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzibox*\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"hanzibox*[${2:options%keyvals}]{${1:character}}[${3:pinyin}][${4:translation}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanzidialog{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"hanzidialog{${1:characters}}[${2:pinyin}]\"\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"hanzidialog{${1:characters}}[${2:pinyin}][${3:translation}]\"\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanzidialog[${2:options%keyvals}]{${1:characters}}\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"hanzidialog[${2:options%keyvals}]{${1:characters}}[${3:pinyin}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanzidialog\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"hanzidialog[${2:options%keyvals}]{${1:characters}}[${3:pinyin}][${4:translation}]\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"writegrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writegrid{${1:number of rows}}\"\n      }\n    },\n    {\n      \"name\": \"writegrid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"writegrid[${2:options%keyvals}]{${1:number of rows}}\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanziboxset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanziboxset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hanzibox,\\\\hanzibox*,\\\\hanzidialog,\\\\writegrid,\\\\hanziboxset\": [\n      \"basechar=${1:character}\",\n      \"zihao=${1:font size}\",\n      \"pinyinf=${1:fontsize command}\",\n      \"charf=${1:fontsize command}\",\n      \"tranf=${1:fontsize command}\",\n      \"frametype=${1|none,十,×,米,口,田,咪|}\",\n      \"resize=${1|none,real,base|}\",\n      \"xscale=${1:scale ratio}\",\n      \"yscale=${1:scale ratio}\",\n      \"scale=${1:scale ratio}\",\n      \"width=\",\n      \"height=\",\n      \"linewidth=\",\n      \"dashpattern={${1:dim1,dim2,...}}\",\n      \"framearc=\",\n      \"framearc*={${1:dim1}}{${2:dim2}}\",\n      \"framelinewidth=\",\n      \"pinyinlinewidth=\",\n      \"crosslinewidth=\",\n      \"crosscolorratio=${1:integer}\",\n      \"framecolor=\",\n      \"framecolor*={${1:model}}{${2:value}}\",\n      \"charcolor=\",\n      \"charcolor*={${1:model}}{${2:value}}\",\n      \"pinyincolor=\",\n      \"pinyincolor*={${1:model}}{${2:value}}\",\n      \"trancolor=\",\n      \"trancolor*={${1:model}}{${2:value}}\",\n      \"fillcolor=\",\n      \"fillcolor*={${1:model}}{${2:value}}\",\n      \"charstroke=${1|none,solid,dashed,invisible|}\",\n      \"initial\",\n      \"vowel\",\n      \"tone\",\n      \"pinyinline\",\n      \"pinyin\",\n      \"hanzi\",\n      \"tran\",\n      \"gridsepv=${1:number}\",\n      \"gridcols=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/har2nat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeaffixed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"citeaffixed{${1:prefix}}{${2:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeasnoun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeasnoun{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeasnoun\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeasnoun[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeasnoun*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeasnoun*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citename{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citename*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citename*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyear*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyear*{${1:keylist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hardwrap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HardWrap\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"HardWrap{${1:function}}{${2:width}}{${3:setup code}}{${4:newline}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"GenerateLogMacros\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GenerateLogMacros{${1:type%keyvals}}{${2:name}}\",\n        \"keys\": [\n          \"\\\\GenerateLogMacros\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GenerateLogMacros\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"GenerateLogMacros{${1:type%keyvals}}[${3:prefix}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\GenerateLogMacros\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HardWrapSetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmaxprintline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxprintline{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GeneratePackageLogMacros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GeneratePackageLogMacros{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GeneratePackageLogMacros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GeneratePackageLogMacros[${2:prefix}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GenerateClassLogMacros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GenerateClassLogMacros{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GenerateClassLogMacros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GenerateClassLogMacros[${2:prefix}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\GenerateLogMacros\": [\n      \"package\",\n      \"class\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/harmony.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AAcht\"\n    },\n    {\n      \"name\": \"Acht\"\n    },\n    {\n      \"name\": \"AchtBL\"\n    },\n    {\n      \"name\": \"AchtBR\"\n    },\n    {\n      \"name\": \"achteltriole\"\n    },\n    {\n      \"name\": \"AcPa\"\n    },\n    {\n      \"name\": \"Blkn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Blkn{${1:length1%l}}{${2:length2%l}}\"\n      }\n    },\n    {\n      \"name\": \"DD\"\n    },\n    {\n      \"name\": \"DDohne\"\n    },\n    {\n      \"name\": \"DDohneR\"\n    },\n    {\n      \"name\": \"DDohner\"\n    },\n    {\n      \"name\": \"DDR\"\n    },\n    {\n      \"name\": \"DDr\"\n    },\n    {\n      \"name\": \"DDsans\"\n    },\n    {\n      \"name\": \"DDsansR\"\n    },\n    {\n      \"name\": \"DDsansr\"\n    },\n    {\n      \"name\": \"Dohne\"\n    },\n    {\n      \"name\": \"DohneR\"\n    },\n    {\n      \"name\": \"Dohner\"\n    },\n    {\n      \"name\": \"DS\"\n    },\n    {\n      \"name\": \"Ds\"\n    },\n    {\n      \"name\": \"Dsans\"\n    },\n    {\n      \"name\": \"DsansR\"\n    },\n    {\n      \"name\": \"Dsansr\"\n    },\n    {\n      \"name\": \"Ferli\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ferli[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ferli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ferli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Fermi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fermi[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Fermi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fermi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ganz\"\n    },\n    {\n      \"name\": \"GaPa\"\n    },\n    {\n      \"name\": \"Halb\"\n    },\n    {\n      \"name\": \"Halb\"\n    },\n    {\n      \"name\": \"halbetrioleA\"\n    },\n    {\n      \"name\": \"halbetrioleB\"\n    },\n    {\n      \"name\": \"HaPa\"\n    },\n    {\n      \"name\": \"Kr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Kr[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Kr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ohne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ohne[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Ohne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ohne{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Pu\"\n    },\n    {\n      \"name\": \"Sans\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sans[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Sans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Sech\"\n    },\n    {\n      \"name\": \"SechBL\"\n    },\n    {\n      \"name\": \"SechBl\"\n    },\n    {\n      \"name\": \"SechBR\"\n    },\n    {\n      \"name\": \"SechBr\"\n    },\n    {\n      \"name\": \"SePa\"\n    },\n    {\n      \"name\": \"Takt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Takt{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"UB\"\n    },\n    {\n      \"name\": \"Umd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Umd[${2:shift%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Umd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Umd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Vier\"\n    },\n    {\n      \"name\": \"Vier\"\n    },\n    {\n      \"name\": \"vierteltrioleA\"\n    },\n    {\n      \"name\": \"vierteltrioleB\"\n    },\n    {\n      \"name\": \"ViPa\"\n    },\n    {\n      \"name\": \"VM\"\n    },\n    {\n      \"name\": \"Zwdr\"\n    },\n    {\n      \"name\": \"ZwPa\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/harmony#c\": [\n      \"8pt\",\n      \"9pt\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"13pt\",\n      \"14pt\",\n      \"sf\",\n      \"rm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/harmony#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/harpoon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"overleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharp{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharp{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpdown{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpdown{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharp{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharp{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpdown{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpdown{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"argwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arght\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overharp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"overharp{${1:symbol%formula}}{${2:width}}{${3:height}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/harvard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"html\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"citeaffixed\"\n    },\n    {\n      \"name\": \"citeasnoun\"\n    },\n    {\n      \"name\": \"citename\"\n    },\n    {\n      \"name\": \"citeyear\"\n    },\n    {\n      \"name\": \"possessivecite\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/harveyballs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"harveyBallNone\"\n    },\n    {\n      \"name\": \"harveyBallNone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"harveyBallNone[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"harveyBallQuarter\"\n    },\n    {\n      \"name\": \"harveyBallQuarter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"harveyBallQuarter[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"harveyBallHalf\"\n    },\n    {\n      \"name\": \"harveyBallHalf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"harveyBallHalf[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"harveyBallThreeQuarter\"\n    },\n    {\n      \"name\": \"harveyBallThreeQuarter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"harveyBallThreeQuarter[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"harveyBallFull\"\n    },\n    {\n      \"name\": \"harveyBallFull\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"harveyBallFull[${1:size%l}]\"\n      }\n    },\n    {\n      \"name\": \"harveyBallsSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harveyBallsLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harveyBallsColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harveyBallsLineColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/havannah.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HLetterCoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HCoordinateStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDrawHex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HGame{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"HGame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HGame[${2:options%keyvals}]{${1:moves}}\",\n        \"keys\": [\n          \"\\\\HGame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HStoneGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HStoneGroup{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"HStoneGroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HStoneGroup[${2:options%keyvals}]{${1:moves}}\",\n        \"keys\": [\n          \"\\\\HStoneGroup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HMoveNumberStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HWhiteStone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HBlackStone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTransparentStone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HBeforeOddMove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HBeforeEvenMove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HBeforeStone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HHexGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HHexGroup{${1:hexes}}\"\n      }\n    },\n    {\n      \"name\": \"HHexGroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HHexGroup[${2:options%keyvals}]{${1:hexes}}\",\n        \"keys\": [\n          \"\\\\HHexGroup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"HavannahBoard\"\n    },\n    {\n      \"name\": \"HavannahBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{HavannahBoard},\\\\begin{InnerHavannahBoard}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HexBoard\"\n    },\n    {\n      \"name\": \"HexBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{HexBoard},\\\\begin{InnerHexBoard}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"InnerHavannahBoard\"\n    },\n    {\n      \"name\": \"InnerHavannahBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{InnerHavannahBoard},\\\\begin{InnerHexBoard}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"InnerHexBoard\"\n    },\n    {\n      \"name\": \"InnerHexBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{InnerHavannahBoard},\\\\begin{InnerHexBoard}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{HavannahBoard},\\\\begin{InnerHavannahBoard}\": [\n      \"board size=${1:integer}\",\n      \"coordinate style=${1|little golem,classical|}\",\n      \"hex height=\",\n      \"show coordinates\",\n      \"show hexes\"\n    ],\n    \"\\\\begin{HexBoard},\\\\begin{InnerHexBoard}\": [\n      \"board size=${1:integer}\",\n      \"top left color=${1|white,black|}\",\n      \"hex height=\",\n      \"show coordinates\",\n      \"show hexes\"\n    ],\n    \"\\\\begin{InnerHavannahBoard},\\\\begin{InnerHexBoard}\": [\n      \"prefix=\",\n      \"x=\",\n      \"y=\"\n    ],\n    \"\\\\HGame\": [\n      \"first move label=\",\n      \"first player=${1|white,black|}\",\n      \"numbered moves\",\n      \"relative stone size=\"\n    ],\n    \"\\\\HStoneGroup\": [\n      \"color=${1|white,black,transparent|}\",\n      \"label=\",\n      \"relative stone size=\"\n    ],\n    \"\\\\HHexGroup\": [\n      \"label=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hcycle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FiveSugarh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FiveSugarh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"FiveSugarh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FiveSugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"FiveSugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"FiveSugarh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"FiveSugarh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"FiveSugarh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"FiveSugarh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"FiveSugarh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"Furanose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Furanose{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Furanose\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Furanose[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Furanosew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Furanosew{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Furanosew\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Furanosew[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Pyranose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pyranose{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Pyranose\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pyranose[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Pyranosew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pyranosew{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"Pyranosew\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pyranosew[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SixSugarh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"SixSugarh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SixSugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"SixSugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"SixSugarh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"SixSugarh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"SixSugarh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"SixSugarh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"SixSugarh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fivesugarh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fivesugarh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fivesugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fivesugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fivesugarh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fivesugarh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fivesugarh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fivesugarh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fivesugarhw{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fivesugarhw{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fivesugarhw[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fivesugarhw[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fivesugarhw(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fivesugarhw(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fivesugarhw(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fivesugarhw\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fivesugarhw(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"furanose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanose{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanose\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanose[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanosew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanosew{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanosew\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanosew[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyranose{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranose\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyranose[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranosew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyranosew{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranosew\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyranosew[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixsugarh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixsugarh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixsugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixsugarh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixsugarh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixsugarh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixsugarh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixsugarh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixsugarhw{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixsugarhw{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixsugarhw[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixsugarhw[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixsugarhw(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixsugarhw(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixsugarhw(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixsugarhw\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixsugarhw(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/he-she.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"everyhook\",\n      \"if\": \"para\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"heshe\"\n    },\n    {\n      \"name\": \"he\"\n    },\n    {\n      \"name\": \"she\"\n    },\n    {\n      \"name\": \"himher\"\n    },\n    {\n      \"name\": \"him\"\n    },\n    {\n      \"name\": \"her\"\n    },\n    {\n      \"name\": \"himherself\"\n    },\n    {\n      \"name\": \"himself\"\n    },\n    {\n      \"name\": \"herself\"\n    },\n    {\n      \"name\": \"hisher\"\n    },\n    {\n      \"name\": \"his\"\n    },\n    {\n      \"name\": \"hir\"\n    },\n    {\n      \"name\": \"hishers\"\n    },\n    {\n      \"name\": \"hiss\"\n    },\n    {\n      \"name\": \"hers\"\n    },\n    {\n      \"name\": \"Heshe\"\n    },\n    {\n      \"name\": \"Himher\"\n    },\n    {\n      \"name\": \"Himherself\"\n    },\n    {\n      \"name\": \"Hisher\"\n    },\n    {\n      \"name\": \"Hishers\"\n    },\n    {\n      \"name\": \"He\"\n    },\n    {\n      \"name\": \"She\"\n    },\n    {\n      \"name\": \"Him\"\n    },\n    {\n      \"name\": \"Her\"\n    },\n    {\n      \"name\": \"Himself\"\n    },\n    {\n      \"name\": \"Herself\"\n    },\n    {\n      \"name\": \"His\"\n    },\n    {\n      \"name\": \"Hir\"\n    },\n    {\n      \"name\": \"Hiss\"\n    },\n    {\n      \"name\": \"Hers\"\n    },\n    {\n      \"name\": \"ifxspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xspacetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xspacefalse\"\n    },\n    {\n      \"name\": \"setgender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgender{${1:gender}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/he-she#c\": [\n      \"noxspace\",\n      \"they\",\n      \"para\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/he-she#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/helmholtz-ellis-ji-notation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"heji\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"heji{${1:note}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"acc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acc{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"otonal\"\n    },\n    {\n      \"name\": \"utonal\"\n    },\n    {\n      \"name\": \"Otonal\"\n    },\n    {\n      \"name\": \"Utonal\"\n    },\n    {\n      \"name\": \"HEJIfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempnat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tempsharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalsixtwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalsixtwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalsixtwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalsixtwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalsixtwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalonetwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalonetwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalonetwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalonetwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalonetwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flat\",\n      \"unusual\": true,\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"nat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sharp\",\n      \"unusual\": true,\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"sharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalonetwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalonetwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalonetwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalonetwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalonetwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalsixtwentyfiveflatflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalsixtwentyfiveflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalsixtwentyfivenat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalsixtwentyfivesharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalsixtwentyfivesharpsharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfortynine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfortynine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaleleven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaleleven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalthirteen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalthirteen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalseventeen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalseventeen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalnineteen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalnineteen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentythree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentythree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonaltwentynine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonaltwentynine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalthirtyone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalthirtyone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalthirtyseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalthirtyseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfortyone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfortyone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfortythree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfortythree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otonalfortyseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utonalfortyseven\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/helmholtz-ellis-ji-notation#c\": [\n      \"accfirst\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/helmholtz-ellis-ji-notation#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/helvet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/helvet#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/helvet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-acronym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"glossaries-extra\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acronym{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"acronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"acronym{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"acronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"acronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acronym*{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"acronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"acronym*{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"acronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"acronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"sentence\"\n    },\n    {\n      \"name\": \"shortacronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shortacronym{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"shortacronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"shortacronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"shortacronym\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"shortacronym{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"shortacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"shortacronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"shortacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shortacronym*{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"shortacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"shortacronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"shortacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"shortacronym*{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"shortacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"shortacronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"longacronym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longacronym{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"longacronym\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"longacronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"longacronym\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"longacronym{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"longacronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"longacronym[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"longacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longacronym*{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"longacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"longacronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"longacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"longacronym*{${1:abbr}}{${2:def%text}}[${3:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"longacronym*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"longacronym*[${3:typeset abbr}]{${1:abbr}}{${2:def%text}}[${4:plural def%text}]\"\n      }\n    },\n    {\n      \"name\": \"resetacronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetacronym{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"dummyacronym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dummyacronym{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"acronymalternative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"acronymalternative{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"acronymalternative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}*{}\",\n        \"snippet\": \"acronymalternative{${1:arg1}}{${2:arg2}}*{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mathdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mathdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"mathdef{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"acronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acronyms{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"acronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acronyms[${2:opt}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hep-acronym#c\": [\n      \"hyper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-acronym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-bibliography.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"online\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"online{${1:text}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"commalistbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relateddelimerratum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ccite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ccite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ccite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"ccite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ccite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Ccite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ccite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ccite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Ccite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ccite{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"commalist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commalist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:opt}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hep-bibliography#c\": [\n      \"style=${1|authoryear,authortitle,alphabetic,numeric,alphabetic-verb,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-tcomp,authortitle-terse,authortitle-ticomp,authoryear-comp,authoryear-ibid,authoryear-icomp,debug,draft,numeric-comp,numeric-verb,reading,verbose,verbose-ibid,verbose-inote,verbose-note,verbose-trad1,verbose-trad2,verbose-trad3|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-bibliography#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-feynman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz-feynman\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hep-float.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"panel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panel{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"graphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"graphic[${2:width}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphics{${1:file path}}\"\n      }\n    },\n    {\n      \"name\": \"figurehspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelhspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablehspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablevspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzsetnextfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetnextfilename{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"figures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"figures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"panels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"panels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tables\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tables\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:width%plain}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hep-float#c\": [\n      \"manualplacement\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-float#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"cfr-lm\"\n    },\n    {\n      \"name\": \"slantsc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"units\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"oldstyle\"\n    },\n    {\n      \"name\": \"units\",\n      \"if\": \"oldstyle=true\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"oldstyle=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifxetexorluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"codestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hep-font#c\": [\n      \"size=${1|8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt,default|}\",\n      \"sans\",\n      \"serif\",\n      \"oldstyle\",\n      \"lining\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-font#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-graphic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    },\n    {\n      \"name\": \"standalone\"\n    },\n    {\n      \"name\": \"hep-plot\",\n      \"if\": \"plot\"\n    },\n    {\n      \"name\": \"hep-plot\",\n      \"if\": \"plot=true\"\n    },\n    {\n      \"name\": \"hep-feynman\",\n      \"if\": \"feynman\"\n    },\n    {\n      \"name\": \"hep-feynman\",\n      \"if\": \"feynman=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"graphicpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphicpath{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includetikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includetikz{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includetikz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includetikz[${2:width%plain}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includetikz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includetikz*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includetikz*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includetikz*[${2:width%plain}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includefeynman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includefeynman{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hep-graphic#c\": [\n      \"plot\",\n      \"feynman\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-graphic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-math-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"fixmath\"\n    },\n    {\n      \"name\": \"textalpha\"\n    },\n    {\n      \"name\": \"substitutefont\"\n    },\n    {\n      \"name\": \"exscale\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"MnSymbol\",\n      \"if\": \"symbols=minion\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifxetexorluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"finalsigma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"varstigma\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Koppa\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"Qoppa\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"pisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhosymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"betasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"kappasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathsftext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsftext{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hep-math-font#c\": [\n      \"symbols=${1|ams,true,minion,false|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-math-font#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"soulutf8\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"units\"\n    },\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"slashed\"\n    },\n    {\n      \"name\": \"mleftright\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mathdef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"mathdef{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"mathdef\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"mathdef{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"textoverline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:text%formula}}\"\n      }\n    },\n    {\n      \"name\": \"oset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oset{${1:over%formula}}{${2:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"overleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleft{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"overright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overright{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"overleftright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftright{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"Tr\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"erf\"\n    },\n    {\n      \"name\": \"Res\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"transpose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccsc\"\n    },\n    {\n      \"name\": \"arcsec\"\n    },\n    {\n      \"name\": \"arccot\"\n    },\n    {\n      \"name\": \"asin\"\n    },\n    {\n      \"name\": \"acos\"\n    },\n    {\n      \"name\": \"atan\"\n    },\n    {\n      \"name\": \"acsc\"\n    },\n    {\n      \"name\": \"asec\"\n    },\n    {\n      \"name\": \"acot\"\n    },\n    {\n      \"name\": \"csch\"\n    },\n    {\n      \"name\": \"sech\"\n    },\n    {\n      \"name\": \"inv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inv{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"inv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inv[${2:power%formula}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"flatfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flatfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"differential\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"differential{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newderivative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newderivative{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newpartialderivative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpartialderivative{${1:cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"diffsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"derivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivative{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"derivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"derivative[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"derivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"derivative*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"derivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"derivative*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dv{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dv[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dv*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"dv*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dv*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"partialdifferential\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pd\"\n    },\n    {\n      \"name\": \"partialderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialderivative{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"partialderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partialderivative[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"partialderivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialderivative*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"partialderivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partialderivative*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdv{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdv[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdv*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdv*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"gaugediffsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaugediff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"covariantdiff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cd\"\n    },\n    {\n      \"name\": \"variation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"var\"\n    },\n    {\n      \"name\": \"functionalderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"functionalderivative{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"functionalderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"functionalderivative[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"functionalderivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"functionalderivative*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"functionalderivative*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"functionalderivative*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdv{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fdv[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdv*{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fdv*[${2:func}]{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"noargumentsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionalargument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionalargument{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:sub}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm*[${2:sub}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ordersymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"evaluated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evaluated{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"evaluated*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evaluated*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rowseperator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"row\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"row{${1:x1,x2,...}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"column{${1:x1,x2,...}}\"\n      }\n    },\n    {\n      \"name\": \"midbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"midbar[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"suchthat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suchthat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suchthat[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"probabilitysymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"given\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"given\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"given[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"Pr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pr[${1:arg}]\"\n      }\n    },\n    {\n      \"name\": \"Pr*\"\n    },\n    {\n      \"name\": \"Pr*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pr*[${1:arg}]\"\n      }\n    },\n    {\n      \"name\": \"newpair\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpair{${1:cmd}}{${2:leftdelim}}{${3:rightdelim}}\"\n      }\n    },\n    {\n      \"name\": \"newpair\",\n      \"arg\": {\n        \"format\": \"{}{}{}_{}^{}\",\n        \"snippet\": \"newpair{${1:cmd}}{${2:leftdelim}}{${3:rightdelim}}_{${4:sub}}^{${5:sup}}\"\n      }\n    },\n    {\n      \"name\": \"innerproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerproduct{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"poissonbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poissonbracket{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"commutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"commutator{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"comm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"acomm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acomm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"braketouterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braketinnerspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixelement{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expectationvalue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"expectationvalue[${2:arg1}]{${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expectationvalue*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"expectationvalue*[${2:arg1}]{${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ev[${2:arg1}]{${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ev*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ev*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ev*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ev*[${2:arg1}]{${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"vev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"imaginaryunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hep-paper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"hep-font\"\n    },\n    {\n      \"name\": \"hep-math-font\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"hep-text\"\n    },\n    {\n      \"name\": \"hep-math\"\n    },\n    {\n      \"name\": \"hep-float\"\n    },\n    {\n      \"name\": \"hep-title\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"hep-bibliography\"\n    },\n    {\n      \"name\": \"hep-reference\"\n    },\n    {\n      \"name\": \"hep-acronym\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"parskip\"\n    },\n    {\n      \"name\": \"parskip\",\n      \"if\": \"parskip=true\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"revtex\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"revtex=true\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"amsart\"\n    },\n    {\n      \"name\": \"xpatch\",\n      \"if\": \"amsart=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useparskip\",\n      \"if\": \"parskip\"\n    },\n    {\n      \"name\": \"useparindent\",\n      \"if\": \"parskip\"\n    },\n    {\n      \"name\": \"useparskip\",\n      \"if\": \"parskip=true\"\n    },\n    {\n      \"name\": \"useparindent\",\n      \"if\": \"parskip=true\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hep-paper#c\": [\n      \"paper=${1|a0,a1,a2,a3,a4,a5,a6,b0,b1,b2,b3,b4,b5,b6,c0,c1,c2,c3,c4,c5,c6,ansia,ansib,ansic,ansid,ansie,letter,executive,legal|}\",\n      \"font=${1|8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt|}\",\n      \"lang=${1:language}\",\n      \"serif\",\n      \"sansserif\",\n      \"lining\",\n      \"oldstyle\",\n      \"parindent\",\n      \"parskip\",\n      \"symbols=${1|ams,true,minion,false|}\",\n      \"defaults\",\n      \"title\",\n      \"physics\",\n      \"style=${1|authoryear,authortitle,alphabetic,numeric,alphabetic-verb,authortitle-comp,authortitle-ibid,authortitle-icomp,authortitle-tcomp,authortitle-terse,authortitle-ticomp,authoryear-comp,authoryear-ibid,authoryear-icomp,debug,draft,numeric-comp,numeric-verb,reading,verbose,verbose-ibid,verbose-inote,verbose-note,verbose-trad1,verbose-trad2,verbose-trad3|}\",\n      \"glossaries\",\n      \"references\",\n      \"beamer\",\n      \"revtex\",\n      \"jhep\",\n      \"jcap\",\n      \"pos\",\n      \"springer\",\n      \"amsart\",\n      \"eqnarray\",\n      \"manualplacement\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-paper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-plot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thecyclelistshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyclelistshift\"\n    },\n    {\n      \"name\": \"addlegendtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addlegendtitle[${2:options}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"dashdotdotdotted\",\n      \"dashdotdotdotdotted\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hep-text.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"soulutf8\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"foreign\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"no\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"no{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"software\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"software{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"software\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"software[${2:version}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"online\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"online{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"prefix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prefix{${1:prefix}}{${2:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"subsubparagraph\"\n    },\n    {\n      \"name\": \"addendum\"\n    },\n    {\n      \"name\": \"Addendum\"\n    },\n    {\n      \"name\": \"adhoc\"\n    },\n    {\n      \"name\": \"Adhoc\"\n    },\n    {\n      \"name\": \"aposteriori\"\n    },\n    {\n      \"name\": \"Aposteriori\"\n    },\n    {\n      \"name\": \"apriori\"\n    },\n    {\n      \"name\": \"Apriori\"\n    },\n    {\n      \"name\": \"caveat\"\n    },\n    {\n      \"name\": \"Caveat\"\n    },\n    {\n      \"name\": \"circa\"\n    },\n    {\n      \"name\": \"Circa\"\n    },\n    {\n      \"name\": \"curriculum\"\n    },\n    {\n      \"name\": \"Curriculum\"\n    },\n    {\n      \"name\": \"erratum\"\n    },\n    {\n      \"name\": \"Erratum\"\n    },\n    {\n      \"name\": \"ibidem\"\n    },\n    {\n      \"name\": \"Ibidem\"\n    },\n    {\n      \"name\": \"idem\"\n    },\n    {\n      \"name\": \"Idem\"\n    },\n    {\n      \"name\": \"sic\"\n    },\n    {\n      \"name\": \"Sic\"\n    },\n    {\n      \"name\": \"viceversa\"\n    },\n    {\n      \"name\": \"Viceversa\"\n    },\n    {\n      \"name\": \"vitae\"\n    },\n    {\n      \"name\": \"Vitae\"\n    },\n    {\n      \"name\": \"ala\"\n    },\n    {\n      \"name\": \"Ala\"\n    },\n    {\n      \"name\": \"visavis\"\n    },\n    {\n      \"name\": \"Visavis\"\n    },\n    {\n      \"name\": \"ansatz\"\n    },\n    {\n      \"name\": \"Ansatz\"\n    },\n    {\n      \"name\": \"gedanken\"\n    },\n    {\n      \"name\": \"Gedanken\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"etseq\"\n    },\n    {\n      \"name\": \"ibid\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"loccit\"\n    },\n    {\n      \"name\": \"opcit\"\n    },\n    {\n      \"name\": \"viz\"\n    },\n    {\n      \"name\": \"Cf\"\n    },\n    {\n      \"name\": \"Eg\"\n    },\n    {\n      \"name\": \"Etal\"\n    },\n    {\n      \"name\": \"Etc\"\n    },\n    {\n      \"name\": \"Etseq\"\n    },\n    {\n      \"name\": \"Ibid\"\n    },\n    {\n      \"name\": \"Ie\"\n    },\n    {\n      \"name\": \"Loccit\"\n    },\n    {\n      \"name\": \"Opcit\"\n    },\n    {\n      \"name\": \"Viz\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"inlinelist\"\n    },\n    {\n      \"name\": \"inlinelist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{inlinelist}#c,\\\\begin{enumdescript}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumdescript\"\n    },\n    {\n      \"name\": \"enumdescript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{inlinelist}#c,\\\\begin{enumdescript}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hep-text#c\": [\n      \"lang=${1:language}\"\n    ],\n    \"\\\\begin{inlinelist}#c,\\\\begin{enumdescript}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hep-text#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hep-title.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"titling\"\n    },\n    {\n      \"name\": \"authblk\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"series\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"series{${1:series%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"seriesfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriesfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"titlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"subtitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:editor%text}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"editor[${2:affil}]{${1:editor%text}}\"\n      }\n    },\n    {\n      \"name\": \"endorser\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endorser{${1:endorser%text}}\"\n      }\n    },\n    {\n      \"name\": \"endorser\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"endorser[${2:affil}]{${1:endorser%text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"authorfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"editorfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editorfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"endorserfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endorserfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"affiliationfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliationfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"preprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"preprintfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprintfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"online\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"online{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"placepreprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preseries{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postseries{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"presubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presubtitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postsubtitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"preeditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preeditor{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"posteditor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posteditor{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"editortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"editortitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"editortitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editortitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"preeditortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preeditortitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"posteditortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posteditortitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"authortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"authortitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"authortitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authortitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"preauthortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preauthortitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postauthortitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postauthortitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"preendorser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preendorser{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postendorser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postendorser{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"endorsertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"endorsertitle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"preendorsertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preendorsertitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postendorsertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postendorsertitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"endorsertitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endorsertitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"theeditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theendorsers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaffiliation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datefont{${1:font commands}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hepparticles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"subdepth\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HepGenParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepGenParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepGenAntiParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepGenAntiParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepAntiParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepAntiParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepGenSusyParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepGenSusyParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepSusyParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepSusyParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepGenSusyAntiParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepGenSusyAntiParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepSusyAntiParticle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepSusyAntiParticle{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepResonanceMassTerm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepResonanceMassTerm{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepResonanceSpecTerm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HepResonanceSpecTerm{${1:main%formula}}{${2:subscript%formula}}{${3:superscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepParticleResonance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"HepParticleResonance{${1:name%formula}}{${2:mass%formula}}{${3:massSub%formula}}{${4:massSup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepParticleResonanceFull\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"HepParticleResonanceFull{${1:main%formula}}{${2:sub%formula}}{${3:sup%formula}}{${4:mass%formula}}{${5:massSub%formula}}{${6:massSup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepParticleResonanceFormal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"HepParticleResonanceFormal{${1:mass%formula}}{${2:massSub%formula}}{${3:massSup%formula}}{${4:spec%formula}}{${5:specSub%formula}}{${6:specSup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepParticleResonanceFormalFull\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"HepParticleResonanceFormalFull{${1:main%formula}}{${2:sub%formula}}{${3:sup%formula}}{${4:mass%formula}}{${5:massSub%formula}}{${6:massSup%formula}}{${7:spec%formula}}{${8:specSub%formula}}{${9:specSup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"HepProcess\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HepProcess{${1:iParticles \\\\to fParticles%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hepparticles#c\": [\n      \"italic\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hepparticles#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hepunits.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nm\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"um\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"cm\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"micron\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"ns\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"ps\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"fs\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"as\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"mHz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"Hz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"kHz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"MHz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"GHz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"THz\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"mrad\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"fermi\",\n      \"if\": \"sicmds\"\n    },\n    {\n      \"name\": \"gauss\"\n    },\n    {\n      \"name\": \"invcmsq\"\n    },\n    {\n      \"name\": \"invcmsqpersecond\"\n    },\n    {\n      \"name\": \"invcmsqpersec\"\n    },\n    {\n      \"name\": \"invbarn\"\n    },\n    {\n      \"name\": \"millibarn\"\n    },\n    {\n      \"name\": \"microbarn\"\n    },\n    {\n      \"name\": \"nanobarn\"\n    },\n    {\n      \"name\": \"invnanobarn\"\n    },\n    {\n      \"name\": \"invnb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"picobarn\"\n    },\n    {\n      \"name\": \"invpicobarn\"\n    },\n    {\n      \"name\": \"invpb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femtobarn\"\n    },\n    {\n      \"name\": \"invfemtobarn\"\n    },\n    {\n      \"name\": \"invfb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attobarn\"\n    },\n    {\n      \"name\": \"invattobarn\"\n    },\n    {\n      \"name\": \"invab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeptobarn\"\n    },\n    {\n      \"name\": \"invzeptobarn\"\n    },\n    {\n      \"name\": \"invzb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoctobarn\"\n    },\n    {\n      \"name\": \"invyoctobarn\"\n    },\n    {\n      \"name\": \"invyb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eV\"\n    },\n    {\n      \"name\": \"eVc\"\n    },\n    {\n      \"name\": \"eVcsq\"\n    },\n    {\n      \"name\": \"meV\"\n    },\n    {\n      \"name\": \"keV\"\n    },\n    {\n      \"name\": \"MeV\"\n    },\n    {\n      \"name\": \"GeV\"\n    },\n    {\n      \"name\": \"TeV\"\n    },\n    {\n      \"name\": \"meVc\"\n    },\n    {\n      \"name\": \"keVc\"\n    },\n    {\n      \"name\": \"MeVc\"\n    },\n    {\n      \"name\": \"GeVc\"\n    },\n    {\n      \"name\": \"TeVc\"\n    },\n    {\n      \"name\": \"meVcsq\"\n    },\n    {\n      \"name\": \"keVcsq\"\n    },\n    {\n      \"name\": \"MeVcsq\"\n    },\n    {\n      \"name\": \"GeVcsq\"\n    },\n    {\n      \"name\": \"TeVcsq\"\n    },\n    {\n      \"name\": \"electronvolt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronvoltc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronvoltcsq\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hepunits#c\": [\n      \"sicmds\",\n      \"noprefixcmds\",\n      \"freestanding\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hepunits#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hereapplies.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"refcount\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hereapplies\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereapplies{${1:identifiers}}\"\n      }\n    },\n    {\n      \"name\": \"hereapplies\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hereapplies[${2:label}]{${1:identifiers}}\"\n      }\n    },\n    {\n      \"name\": \"hereapplies*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereapplies*{${1:identifiers}}\"\n      }\n    },\n    {\n      \"name\": \"hereapplies*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hereapplies*[${2:label}]{${1:identifiers}}\"\n      }\n    },\n    {\n      \"name\": \"whereapplies\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whereapplies{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"whereapplies*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whereapplies*{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"hapage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hapages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hadelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halastdelimiter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/heros-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"heros\"\n    },\n    {\n      \"name\": \"heroscn\"\n    },\n    {\n      \"name\": \"herosOsF\"\n    },\n    {\n      \"name\": \"heroscnOsF\"\n    },\n    {\n      \"name\": \"herosTLF\"\n    },\n    {\n      \"name\": \"heroscnTLF\"\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/heros-otf#c\": [\n      \"lining\",\n      \"oldstyle\",\n      \"condensed\",\n      \"default\",\n      \"tabular\",\n      \"proportional\",\n      \"ScaleSF=${1:factor}\",\n      \"defaultfeatures={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/heros-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hetarom.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"azetidine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azetidine{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"azetidine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"azetidine[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aziridinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aziridinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aziridinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aziridinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzofuranev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzofuranev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzofuranevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzofuranevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzoxazolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzoxazolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzoxazolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzoxazolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheterov{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheterov{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheterov(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheterov(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheterov(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterov\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheterov(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheterovi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheterovb{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheterovb{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheterovb[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheterovb[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheterovb(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheterovb(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheterovb(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovb\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheterovb(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheterovt{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheterovt{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheterovt[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheterovt[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheterovt(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheterovt(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheterovt(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterovt\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheterovt(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fiveheterov{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fiveheterov{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fiveheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fiveheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fiveheterov(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fiveheterov(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fiveheterov(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterov\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fiveheterov(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fiveheterovi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fiveheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fiveheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fiveheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fiveheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fiveheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fiveheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fiveheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fourhetero{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fourhetero{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fourhetero[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fourhetero[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fourhetero(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fourhetero(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fourhetero(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fourhetero\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fourhetero(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"furanv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanv{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanv[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanvi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanvi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanvi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanvi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imidazolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imidazolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imidazolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imidazolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolizinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolizinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolizinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolizinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isobenzofuranev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isobenzofuranev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isobenzofuranevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isobenzofuranevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoindolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoindolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoindolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoindolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoxazolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoxazolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoxazolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoxazolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonaheterov{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"nonaheterov{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonaheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"nonaheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nonaheterov(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"nonaheterov(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"nonaheterov(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterov\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"nonaheterov(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonaheterovi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"nonaheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonaheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"nonaheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nonaheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"nonaheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"nonaheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"nonaheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"oxazolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxazolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxazolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxazolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxazolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxetane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxetane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxetane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxetane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxiranev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxiranev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxiranevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxiranevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"purinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"purinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridazinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridazinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridazinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridazinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrimidinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrimidinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrimidinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrimidinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrrolev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrrolev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrrolevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrrolevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalinevb{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalinevb[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalinevt{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinevt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalinevt[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixheterov{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixheterov{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixheterov(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixheterov(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixheterov(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterov\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixheterov(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixheterovi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"thietane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thietane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thietane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thietane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiiranev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiiranev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiiranevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiiranevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiophenev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiophenev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiophenevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiophenevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threehetero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threehetero{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threeheteroi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"threeheteroi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"threeheteroi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"threeheteroi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"threeheteroi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"threeheteroi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"threeheteroi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"threeheteroi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threeheterov{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"threeheterov{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"threeheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"threeheterov[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"threeheterov(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"threeheterov(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"threeheterov(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterov\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"threeheterov(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threeheterovi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"threeheterovi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"threeheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"threeheterovi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"threeheterovi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"threeheterovi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"threeheterovi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterovi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"threeheterovi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"triazinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triazinev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazinev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"triazinev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazinevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triazinevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazinevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"triazinevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hetaromh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"hetarom\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aziridineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aziridineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aziridineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aziridinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"aziridineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aziridineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuraneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzofuraneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuraneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzofuraneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzofuranehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzofuranehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzofuranehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzoxazoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzoxazoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"benzoxazolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"benzoxazolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"benzoxazolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cinnolinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cinnolinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cinnolinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheteroh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheteroh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheteroh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheteroh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheteroh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheteroh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheteroh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decaheterohi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decaheterohi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decaheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"decaheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"decaheterohi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"decaheterohi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"decaheterohi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decaheterohi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"decaheterohi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fiveheteroh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fiveheteroh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fiveheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fiveheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fiveheteroh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fiveheteroh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fiveheteroh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheteroh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fiveheteroh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fiveheterohi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fiveheterohi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fiveheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"fiveheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"fiveheterohi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"fiveheterohi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"fiveheterohi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"fiveheterohi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"fiveheterohi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"furanh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanhi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furanhi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furanhi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furanhi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imidazoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imidazoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imidazolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"imidazolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imidazolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolizineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolizineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indolizinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indolizinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indolizinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuraneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isobenzofuraneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuraneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isobenzofuraneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isobenzofuranehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isobenzofuranehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isobenzofuranehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoindoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoindoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoindolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoindolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoindolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoquinolinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoquinolinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoquinolinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoxazoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoxazoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isoxazolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"isoxazolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isoxazolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonaheteroh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"nonaheteroh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonaheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"nonaheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nonaheteroh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"nonaheteroh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"nonaheteroh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheteroh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"nonaheteroh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonaheterohi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"nonaheterohi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonaheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"nonaheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nonaheterohi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"nonaheterohi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"nonaheterohi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonaheterohi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"nonaheterohi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"oxazoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxazoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxazoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxazolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxazolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxazolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiraneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxiraneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiraneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxiraneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxiranehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"oxiranehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oxiranehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pteridinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pteridinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pteridinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"purineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"purinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"purinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazoleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazoleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazoleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazoleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrazolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrazolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrazolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridazineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridazineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridazinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridazinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridazinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyridinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyridinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyridinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrimidineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrimidineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrimidinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrimidinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrimidinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrroleh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrroleh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrroleh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrroleh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyrrolehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyrrolehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyrrolehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinazolinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinazolinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinazolinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinolinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinolinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinolinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quinoxalinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"quinoxalinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quinoxalinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixheteroh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixheteroh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixheteroh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixheteroh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixheteroh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheteroh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixheteroh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sixheterohi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sixheterohi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sixheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"sixheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"sixheterohi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"sixheterohi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"sixheterohi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"sixheterohi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"sixheterohi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"thiiraneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiiraneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiraneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiiraneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiiranehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiiranehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiiranehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiopheneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiopheneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiopheneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiopheneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiophenehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"thiophenehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thiophenehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threeheteroh{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"threeheteroh{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"threeheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"threeheteroh[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"threeheteroh(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"threeheteroh(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"threeheteroh(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheteroh\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"threeheteroh(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"threeheterohi{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"threeheterohi{${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"threeheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"threeheterohi[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"threeheterohi(${3:skelbdlist}){${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}[]\",\n        \"snippet\": \"threeheterohi(${4:skelbdlist}){${1:atomlist}}{${2:subslist}}[${3:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"threeheterohi(${4:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"threeheterohi\",\n      \"arg\": {\n        \"format\": \"()[]{}{}[]\",\n        \"snippet\": \"threeheterohi(${5:skelbdlist})[${3:bondlist}]{${1:atomlist}}{${2:subslist}}[${4:delbdlist}]\"\n      }\n    },\n    {\n      \"name\": \"triazineh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triazineh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazineh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"triazineh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazinehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triazinehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"triazinehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"triazinehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/heuristica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"Qswash\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/heuristica#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"space=${1:factor}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"sups\",\n      \"looser\",\n      \"loosest\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/heuristica#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hexboard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"belowIa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorA\"\n    },\n    {\n      \"name\": \"colorB\"\n    },\n    {\n      \"name\": \"hexboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexboard{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hexbottomsubborder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexbottomsubborder{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"hexcell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexcell{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexcellshaded\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hexcellshaded[${3:color}]{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexcellshaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexcellshaded{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexconnect\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hexconnect{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"hexcontent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hexcontent{${1:x}}{${2:y}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"hexcoord\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexcoord{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexcounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hexcounter{${1:x}}{${2:y}}{${3:player}}\"\n      }\n    },\n    {\n      \"name\": \"hexcounterlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hexcounterlabel{${1:x}}{${2:y}}{${3:player}}{${4:content}}\"\n      }\n    },\n    {\n      \"name\": \"hexdot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexdot{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexedgewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexgrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexgrid{${1:columns}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"hexgridnolabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexgridnolabel{${1:columns}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"hexlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexmove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexmove{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"hexmovenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexreducing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexreducing{${1:columns}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"hexreducingnoborder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexreducingnoborder{${1:columns}}{${2:rows}}\"\n      }\n    },\n    {\n      \"name\": \"hexscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexscale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hexshadedsubrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hexshadedsubrow{${1:start}}{${2:end}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"hexsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexskipmove\"\n    },\n    {\n      \"name\": \"hexsubrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hexsubrow{${1:start}}{${2:end}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"hexthinline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hexthismover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iaend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftofIa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftofxchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcolorA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolorA{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setcolorB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolorB{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"thehexedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehexlabelling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehexletternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehexmovecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehexmoveskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thiscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xchor\"\n    },\n    {\n      \"name\": \"ychor\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hexpicture\"\n    },\n    {\n      \"name\": \"hexgame\"\n    },\n    {\n      \"name\": \"hexgame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"hexgamelabels\"\n    },\n    {\n      \"name\": \"hexgamelabels\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hexdump.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moreverb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dumpname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dumpname{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"dumpfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dumpfontsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"dumpwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedumpcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dumptocname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dumptocname{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"listofdumps\"\n    },\n    {\n      \"name\": \"dcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inputdump\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputdump{${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"inputdump\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputdump[${3:pos}]{${1:file}}{${2:caption%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hf-tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzmarkin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzmarkin{${1:marker-id}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmarkin\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"tikzmarkin{${1:marker-id}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"tikzmarkin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzmarkin[${2:options%keyvals}]{${1:marker-id}}\",\n        \"keys\": [\n          \"\\\\tikzmarkin#c,\\\\tikzset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzmarkend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzmarkend{${1:marker-id}}\"\n      }\n    },\n    {\n      \"name\": \"thejumping\",\n      \"if\": \"beamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfsetfillcolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hfsetfillcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"hfsetbordercolor\",\n      \"if\": \"customcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hfsetbordercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ifshowmarkers\",\n      \"if\": \"markings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showmarkerstrue\",\n      \"if\": \"markings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showmarkersfalse\",\n      \"if\": \"markings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepointas\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savepointas{${1:name}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsyspdfmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfsyspdfmark{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hf-tikz#c\": [\n      \"nofill\",\n      \"customcolors\",\n      \"shade\",\n      \"beamer\",\n      \"norndcorners\",\n      \"markings\"\n    ],\n    \"\\\\tikzmarkin#c,\\\\tikzset#c\": [\n      \"left offset=\",\n      \"right offset=\",\n      \"above offset=\",\n      \"below offset=\",\n      \"below right offset=\",\n      \"above left offset=\",\n      \"top color=\",\n      \"top color=\",\n      \"bottom color=\",\n      \"left color=\",\n      \"right color=\",\n      \"outer color=\",\n      \"inner color=\",\n      \"disable rounded corners\",\n      \"set fill color=\",\n      \"set border color=\",\n      \"mark at=${1:position}\",\n      \"use marker id=${1:id number}\",\n      \"show markers\",\n      \"marker size=\",\n      \"marker color=\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"offset definition/.style={${1:style specs}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hf-tikz#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hfoldsty.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fix-cm\",\n      \"if\": \"fix-cm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newstylenums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newstylenums{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hfoldsty#c\": [\n      \"oldstylett\",\n      \"newstylett\",\n      \"origtt\",\n      \"fix-cm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hfoldsty#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hgb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"cmap\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"overpic\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    },\n    {\n      \"name\": \"breakurl\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"csquotes\",\n      \"if\": \"smartquotes\"\n    },\n    {\n      \"name\": \"datetime2-calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"calibrationbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"calibrationbox{${1:width in mm}}{${2:height in mm}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"fitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitem{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"getcurrentlabel\"\n    },\n    {\n      \"name\": \"hgbAge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hgbDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hgbWarnOldPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hgbWarnOldPackage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PackageToDTMdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageToDTMdate{${1:YYYY/MM/DD}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowParameter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowParameter{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"thehgbAgeLimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trennstrich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widedotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\"\n    },\n    {\n      \"name\": \"datengerman\"\n    },\n    {\n      \"name\": \"extrasngerman\"\n    },\n    {\n      \"name\": \"noextrasngerman\"\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"block\"\n    },\n    {\n      \"name\": \"english\"\n    },\n    {\n      \"name\": \"FileList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"german\"\n    },\n    {\n      \"name\": \"NarrowList\"\n    },\n    {\n      \"name\": \"nowidows\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hgb#c\": [\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"smartquotes\",\n      \"noUpdateCheck\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hgb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hgbabbrev.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"latex\"\n    },\n    {\n      \"name\": \"tex\"\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"obnh\"\n    },\n    {\n      \"name\": \"bzgl\"\n    },\n    {\n      \"name\": \"bzw\"\n    },\n    {\n      \"name\": \"ca\"\n    },\n    {\n      \"name\": \"dah\"\n    },\n    {\n      \"name\": \"Dah\"\n    },\n    {\n      \"name\": \"ds\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"evtl\"\n    },\n    {\n      \"name\": \"ia\"\n    },\n    {\n      \"name\": \"sa\"\n    },\n    {\n      \"name\": \"so\"\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"ua\"\n    },\n    {\n      \"name\": \"Ua\"\n    },\n    {\n      \"name\": \"uae\"\n    },\n    {\n      \"name\": \"usw\"\n    },\n    {\n      \"name\": \"uva\"\n    },\n    {\n      \"name\": \"uvm\"\n    },\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"vgl\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"ZB\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"Eg\"\n    },\n    {\n      \"name\": \"wrt\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hgbalgo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"algpseudocodex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"algorithm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"StateNN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StateNN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"StateNN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"StateNN[${2:nesting}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Input\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Input{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"Output\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Output{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"Returns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Returns{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"algsmallskip\"\n    },\n    {\n      \"name\": \"algmedskip\"\n    },\n    {\n      \"name\": \"algbigskip\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hgbbib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"csquotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"foreverunspace\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printtexte\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printtexte[${2:format}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maxprtauth\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apanum\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apanum{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalong\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalong{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"mkdaterangeapalongextra\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkdaterangeapalongextra{${1:datetype}}\"\n      }\n    },\n    {\n      \"name\": \"begrelateddelimcommenton\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreviewof\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begrelateddelimreprintfrom\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomma\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apashortdash\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeresetapa\",\n      \"if\": \"apa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcitebib[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcitebib[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcitebib\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullcitebib{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nptextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nptextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcite\",\n      \"if\": \"apa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nptextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nptextcites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"nptextcites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nptextcites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"nptextcites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nptextcites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"nptextcites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nptextcites\",\n      \"if\": \"apa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"nptextcites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"AddBibFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddBibFile{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBibliography\"\n    },\n    {\n      \"name\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcite{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"mcite(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"mcite(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"mcite(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"mcite[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"mcite[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"mcite(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bibhyphenation\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hgbbib#c\": [\n      \"apa\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"apamaxprtauth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hgbbib#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hgbheadings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titlesec\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hgblistings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listingsutf8\"\n    },\n    {\n      \"name\": \"inputenc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"CCode\"\n    },\n    {\n      \"name\": \"CCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CppCode\"\n    },\n    {\n      \"name\": \"CppCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CsCode\"\n    },\n    {\n      \"name\": \"CsCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CssCode\"\n    },\n    {\n      \"name\": \"CssCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GenericCode\"\n    },\n    {\n      \"name\": \"GenericCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HtmlCode\"\n    },\n    {\n      \"name\": \"HtmlCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JavaCode\"\n    },\n    {\n      \"name\": \"JavaCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JsCode\"\n    },\n    {\n      \"name\": \"JsCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LaTeXCode\"\n    },\n    {\n      \"name\": \"LaTeXCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ObjCCode\"\n    },\n    {\n      \"name\": \"ObjCCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PhpCode\"\n    },\n    {\n      \"name\": \"PhpCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PythonCode\"\n    },\n    {\n      \"name\": \"PythonCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SwiftCode\"\n    },\n    {\n      \"name\": \"SwiftCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"XmlCode\"\n    },\n    {\n      \"name\": \"XmlCode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{CCode},\\\\begin{CppCode},\\\\begin{CsCode},\\\\begin{CssCode},\\\\begin{GenericCode},\\\\begin{HtmlCode},\\\\begin{JavaCode},\\\\begin{JsCode},\\\\begin{LaTeXCode},\\\\begin{ObjCCode},\\\\begin{PhpCode},\\\\begin{PythonCode},\\\\begin{SwiftCode},\\\\begin{XmlCode}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hgbmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"subdepth\"\n    },\n    {\n      \"name\": \"exscale\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Cpx\"\n    },\n    {\n      \"name\": \"Q\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hhead.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hsetup\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"barlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"heading\"\n    },\n    {\n      \"name\": \"heading\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"heading[${1:text}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hhead#c\": [\n      \"private\",\n      \"signit\",\n      \"bruni\",\n      \"test\",\n      \"english\",\n      \"german\",\n      \"french\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hhead#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hhline.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hhline{${1:colspec}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hhtensor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ushort\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"matr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matr{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"tens\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tens{${1:symbol}}{${2:step}}\"\n      }\n    },\n    {\n      \"name\": \"dcdot\"\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"origvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"origvec{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hhtensor#c\": [\n      \"bold\",\n      \"uline\",\n      \"arrow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hhtensor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hideanswer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sethideanswer\"\n    },\n    {\n      \"name\": \"unsethideanswer\"\n    },\n    {\n      \"name\": \"hideanswer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideanswer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hideanswer*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideanswer*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smashanswer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashanswer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smashanswer*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashanswer*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hidegraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidegraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"hidegraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hidegraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\hidegraphics,\\\\hidegraphics*,\\\\smashgraphics,\\\\smashgraphics*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hidegraphics*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidegraphics*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"hidegraphics*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hidegraphics*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\hidegraphics,\\\\hidegraphics*,\\\\smashgraphics,\\\\smashgraphics*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smashgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"smashgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smashgraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\hidegraphics,\\\\hidegraphics*,\\\\smashgraphics,\\\\smashgraphics*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smashgraphics*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashgraphics*{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"smashgraphics*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smashgraphics*[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\hidegraphics,\\\\hidegraphics*,\\\\smashgraphics,\\\\smashgraphics*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"switchanswer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchanswer{${1:sethide-text%text}}{${2:unsethide-text%text}}\"\n      }\n    },\n    {\n      \"name\": \"switchanswer*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchanswer*{${1:unsethide-text%text}}{${2:sethide-text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hideanswerdiv\"\n    },\n    {\n      \"name\": \"hideanswerdiv*\"\n    },\n    {\n      \"name\": \"smashanswerdiv\"\n    },\n    {\n      \"name\": \"smashanswerdiv*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\hidegraphics,\\\\hidegraphics*,\\\\smashgraphics,\\\\smashgraphics*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hiero.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boxrightleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxrightleft{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"Cadrat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cadrat{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"CadratLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadratLine{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"CadratLineI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CadratLineI{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"cartouche\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cartouche{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"Centrer\"\n    },\n    {\n      \"name\": \"chateau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chateau{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"debcartouche\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"debcartouche{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"declareHieroGlyphicFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareHieroGlyphicFont{${1:HieroTeX fontname}}{${2:TeX fontname}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayHieroglyphs\"\n    },\n    {\n      \"name\": \"ediajoutauteur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ediajoutauteur{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ediajoutscribe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ediajoutscribe{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"edidisparu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edidisparu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ediefface\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ediefface{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"edisuperfet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edisuperfet{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"EnColonne\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EnColonne[${2:width}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"endOfcartouche\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endOfcartouche{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"endOfserekh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endOfserekh{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"EnGros\"\n    },\n    {\n      \"name\": \"EnPetit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EnPetit{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"enrouge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enrouge{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hachure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hachure{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hachureg\"\n    },\n    {\n      \"name\": \"hachurega\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hachurega{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hachureh\"\n    },\n    {\n      \"name\": \"hachureha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hachureha{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hachuret\"\n    },\n    {\n      \"name\": \"hachureta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hachureta{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hachurev\"\n    },\n    {\n      \"name\": \"hachureva\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hachureva{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"HendOfLine\"\n    },\n    {\n      \"name\": \"HendOfPage\"\n    },\n    {\n      \"name\": \"HfullSpace\"\n    },\n    {\n      \"name\": \"hierCC\"\n    },\n    {\n      \"name\": \"HinterSignsSpace\"\n    },\n    {\n      \"name\": \"HquarterSpace\"\n    },\n    {\n      \"name\": \"Hrevert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hrevert{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"Hrotate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Hrotate{${1:degrees}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"Hsmaller\"\n    },\n    {\n      \"name\": \"HsmallSpace\"\n    },\n    {\n      \"name\": \"hsuperpose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hsuperpose{${1:content1}}{${2:content2}}\"\n      }\n    },\n    {\n      \"name\": \"Htm\"\n    },\n    {\n      \"name\": \"HwordSpace\"\n    },\n    {\n      \"name\": \"InternalCadrat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternalCadrat{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"leftright\"\n    },\n    {\n      \"name\": \"ligAROBD\"\n    },\n    {\n      \"name\": \"ligAROBDd\"\n    },\n    {\n      \"name\": \"ligAROBDra\"\n    },\n    {\n      \"name\": \"ligAROBDt\"\n    },\n    {\n      \"name\": \"LoneHorizontalLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoneHorizontalLine{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"loneSign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loneSign{${1:sign}}\"\n      }\n    },\n    {\n      \"name\": \"milcartouche\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"milcartouche{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"negAROBspace\"\n    },\n    {\n      \"name\": \"negAROBvspace\"\n    },\n    {\n      \"name\": \"newShading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newShading{${1:part spec}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pointnoir\"\n    },\n    {\n      \"name\": \"pointrouge\"\n    },\n    {\n      \"name\": \"rightleft\"\n    },\n    {\n      \"name\": \"serekh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"serekh{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"SmallerText\"\n    },\n    {\n      \"name\": \"SurLigne\"\n    },\n    {\n      \"name\": \"TextHieroglyphs\"\n    },\n    {\n      \"name\": \"traittexte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"traittexte{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cartoucheBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cartoucheLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColumnSepar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ColumnSepar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"EgypS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullShade\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullShade{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"HachureBoxII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HachureBoxIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hachuregaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Himbt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Himbt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"HorizontalOverlapAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HorizontalOverlapAux{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"HRemplir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HRemplir{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"HrotateXC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HrotateXC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"HRXC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HRXC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Hta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HtaH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HtaW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Htmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Htmii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Htmiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Htmiiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Htmiiiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HToLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InternalCadratAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InternalCadratAux{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LargeHieroglyphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loneSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loneSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MInEx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoRulesBetweenColumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parconstruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parconstruct{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"RulesBetweenColumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShadingBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShadingBoxA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShadingBoxB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShadingBoxC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShadingBoxD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallSkipAroundSigns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xxxparconstruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xxxparconstruct{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hieroglyph\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hiero#c\": [\n      \"psfonts\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hiero#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hieroglf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"oands\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HA\"\n    },\n    {\n      \"name\": \"Ha\"\n    },\n    {\n      \"name\": \"Hb\"\n    },\n    {\n      \"name\": \"HB\"\n    },\n    {\n      \"name\": \"Hc\"\n    },\n    {\n      \"name\": \"HC\"\n    },\n    {\n      \"name\": \"HCthousand\"\n    },\n    {\n      \"name\": \"Hd\"\n    },\n    {\n      \"name\": \"HD\"\n    },\n    {\n      \"name\": \"Hdual\"\n    },\n    {\n      \"name\": \"He\"\n    },\n    {\n      \"name\": \"HE\"\n    },\n    {\n      \"name\": \"Hf\"\n    },\n    {\n      \"name\": \"HF\"\n    },\n    {\n      \"name\": \"HG\"\n    },\n    {\n      \"name\": \"Hg\"\n    },\n    {\n      \"name\": \"Hh\"\n    },\n    {\n      \"name\": \"HH\"\n    },\n    {\n      \"name\": \"Hhundred\"\n    },\n    {\n      \"name\": \"HI\"\n    },\n    {\n      \"name\": \"Hi\"\n    },\n    {\n      \"name\": \"Hibl\"\n    },\n    {\n      \"name\": \"Hibp\"\n    },\n    {\n      \"name\": \"Hibs\"\n    },\n    {\n      \"name\": \"Hibw\"\n    },\n    {\n      \"name\": \"Hj\"\n    },\n    {\n      \"name\": \"HJ\"\n    },\n    {\n      \"name\": \"HK\"\n    },\n    {\n      \"name\": \"Hk\"\n    },\n    {\n      \"name\": \"HL\"\n    },\n    {\n      \"name\": \"Hl\"\n    },\n    {\n      \"name\": \"Hm\"\n    },\n    {\n      \"name\": \"HM\"\n    },\n    {\n      \"name\": \"Hman\"\n    },\n    {\n      \"name\": \"Hmillion\"\n    },\n    {\n      \"name\": \"Hms\"\n    },\n    {\n      \"name\": \"HN\"\n    },\n    {\n      \"name\": \"Hn\"\n    },\n    {\n      \"name\": \"HO\"\n    },\n    {\n      \"name\": \"Ho\"\n    },\n    {\n      \"name\": \"Hone\"\n    },\n    {\n      \"name\": \"HP\"\n    },\n    {\n      \"name\": \"Hp\"\n    },\n    {\n      \"name\": \"Hplural\"\n    },\n    {\n      \"name\": \"Hplus\"\n    },\n    {\n      \"name\": \"HQ\"\n    },\n    {\n      \"name\": \"Hq\"\n    },\n    {\n      \"name\": \"Hquery\"\n    },\n    {\n      \"name\": \"Hr\"\n    },\n    {\n      \"name\": \"HR\"\n    },\n    {\n      \"name\": \"HS\"\n    },\n    {\n      \"name\": \"Hs\"\n    },\n    {\n      \"name\": \"Hscribe\"\n    },\n    {\n      \"name\": \"Hslash\"\n    },\n    {\n      \"name\": \"Hsv\"\n    },\n    {\n      \"name\": \"HT\"\n    },\n    {\n      \"name\": \"Ht\"\n    },\n    {\n      \"name\": \"Hten\"\n    },\n    {\n      \"name\": \"Hthousand\"\n    },\n    {\n      \"name\": \"Htongue\"\n    },\n    {\n      \"name\": \"Hu\"\n    },\n    {\n      \"name\": \"HU\"\n    },\n    {\n      \"name\": \"Hv\"\n    },\n    {\n      \"name\": \"HV\"\n    },\n    {\n      \"name\": \"Hvbar\"\n    },\n    {\n      \"name\": \"Hw\"\n    },\n    {\n      \"name\": \"HW\"\n    },\n    {\n      \"name\": \"HX\"\n    },\n    {\n      \"name\": \"Hx\"\n    },\n    {\n      \"name\": \"HXthousand\"\n    },\n    {\n      \"name\": \"HY\"\n    },\n    {\n      \"name\": \"Hy\"\n    },\n    {\n      \"name\": \"HZ\"\n    },\n    {\n      \"name\": \"Hz\"\n    },\n    {\n      \"name\": \"HAai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAaxii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAxxviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDlviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDxlvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDxlvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDxxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HDxxxvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HExxiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HFi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HFxl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HFxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HFxxxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HFxxxiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxliii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxxvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxxvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxxviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxxvis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HGxxxvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HHviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HIix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HIviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HIx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HKi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HMiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HMviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HMxii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HMxvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HNxxix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HNxxxv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HNxxxvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HOi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HOiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HOxliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HPWi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HPWii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HQiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HRvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HSxii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HSxli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HSxxix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HSxxxix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTxiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUxxxvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HViv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVxiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVxxiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVxxviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HVxxxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HWxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HYiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HYiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HZxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmglyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmglyph{${1:codes}}\"\n      }\n    },\n    {\n      \"name\": \"cartouche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cartouche{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cartouche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cartouche{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmhgfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpmhg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpmhg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmvglyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvglyph{${1:codes}}\"\n      }\n    },\n    {\n      \"name\": \"vertouche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertouche{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Vertouche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vertouche{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cartouchecorner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cartouchecorner{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"cartouchecorner*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cartouchecorner*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"translitpmhg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitpmhg{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitpmhgfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/highlightlatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defaultgobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatehighlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"updatehighlight{${1:highlight rules%keyvals}}\",\n        \"keys\": [\n          \"\\\\updatehighlight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useblock{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"consumeblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"consumeblock{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"highlightblock\"\n    },\n    {\n      \"name\": \"highlightblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{highlightblock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"saveblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{highlightblock}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ],\n    \"\\\\updatehighlight#c\": [\n      \"label=\",\n      \"name=\",\n      \"classoffset=\",\n      \"macros=\",\n      \"commands=\",\n      \"add=\",\n      \"remove=\",\n      \"keywords=\",\n      \"style=\",\n      \"color=\",\n      \"clear\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/highlightx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SurlignerFormule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurlignerFormule{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"SurlignerFormule{${1:formula}}<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SurlignerFormule[${2:clés%keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"SurlignerFormule[${2:clés%keyvals}]{${1:formula}}<${3:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurlignerFormule*{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule*\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"SurlignerFormule*{${1:formula}}<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SurlignerFormule*[${2:clés%keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerFormule*\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"SurlignerFormule*[${2:clés%keyvals}]{${1:formula}}<${3:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerFormule,\\\\SurlignerFormule*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurlignerTexte{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"SurlignerTexte{${1:text}}<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SurlignerTexte[${2:clés%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"SurlignerTexte[${2:clés%keyvals}]{${1:text}}<${3:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurlignerTexte*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte*\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"SurlignerTexte*{${1:text}}<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SurlignerTexte*[${2:clés%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SurlignerTexte*\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"SurlignerTexte*[${2:clés%keyvals}]{${1:text}}<${3:options TikZ}>\",\n        \"keys\": [\n          \"\\\\SurlignerTexte,\\\\SurlignerTexte*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightFormula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HighlightFormula{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"HighlightFormula\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"HighlightFormula{${1:formula}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"HighlightFormula\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HighlightFormula[${2:keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\HighlightFormula,\\\\HighlightFormula*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightFormula\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"HighlightFormula[${2:keyvals}]{${1:formula}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\HighlightFormula,\\\\HighlightFormula*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightFormula*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HighlightFormula*{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"HighlightFormula*\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"HighlightFormula*{${1:formula}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"HighlightFormula*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HighlightFormula*[${2:keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\HighlightFormula,\\\\HighlightFormula*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightFormula*\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"HighlightFormula*[${2:keyvals}]{${1:formula}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\HighlightFormula,\\\\HighlightFormula*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HighlightText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HighlightText\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"HighlightText{${1:text}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"HighlightText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HighlightText[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\HighlightText,\\\\HighlightText*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightText\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"HighlightText[${2:keyvals}]{${1:text}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\HighlightText,\\\\HighlightText*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightText*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HighlightText*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HighlightText*\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"HighlightText*{${1:text}}<${2:TikZ options}>\"\n      }\n    },\n    {\n      \"name\": \"HighlightText*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HighlightText*[${2:keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\HighlightText,\\\\HighlightText*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HighlightText*\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"HighlightText*[${2:keyvals}]{${1:text}}<${3:TikZ options}>\",\n        \"keys\": [\n          \"\\\\HighlightText,\\\\HighlightText*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"genhighlightpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genhighlightpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"genhighlightpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"genhighlightpar[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"genhighlightpar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genhighlightpar*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"genhighlightpar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"genhighlightpar*[${2:color}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/highlightx#c\": [\n      \"nobabel\"\n    ],\n    \"\\\\SurlignerFormule,\\\\SurlignerFormule*\": [\n      \"Fond=\",\n      \"Bord=\",\n      \"Texte=\",\n      \"Offset=\"\n    ],\n    \"\\\\SurlignerTexte,\\\\SurlignerTexte*\": [\n      \"Fond=\",\n      \"Bord=\",\n      \"Opacite=${1:factor}\",\n      \"Offset=\"\n    ],\n    \"\\\\HighlightFormula,\\\\HighlightFormula*\": [\n      \"bg=\",\n      \"border=\",\n      \"text=\",\n      \"offset=\"\n    ],\n    \"\\\\HighlightText,\\\\HighlightText*\": [\n      \"bg=\",\n      \"border=\",\n      \"opacity=${1:factor}\",\n      \"offset=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/highlightx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hitex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"HINTversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HINTminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HINTendlink\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hlist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hitem\"\n    },\n    {\n      \"name\": \"hitem>\"\n    },\n    {\n      \"name\": \"hitem*\"\n    },\n    {\n      \"name\": \"hitem*>\"\n    },\n    {\n      \"name\": \"hitem\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"hitem(${1:num})\"\n      }\n    },\n    {\n      \"name\": \"sethlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethlist{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\sethlist,\\\\setdefaulthlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdefaulthlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaulthlist{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\sethlist,\\\\setdefaulthlist\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:num of colums}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\sethlist,\\\\setdefaulthlist\": [\n      \"pre skip=\",\n      \"post skip=\",\n      \"left margin=\",\n      \"col sep=\",\n      \"item offset=\",\n      \"label sep=\",\n      \"label width=\",\n      \"label align=${1|left,right,center|}\",\n      \"label=${1:code}\",\n      \"pre label=${1:code}\",\n      \"post label=${1:code}\",\n      \"item sep=\",\n      \"resume\",\n      \"autoindent\",\n      \"pre item=${1:code}\",\n      \"post item=${1:code}\",\n      \"show label\",\n      \"list parindent=\",\n      \"show frame\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hmtrump.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BLACKJOKER\"\n    },\n    {\n      \"name\": \"blackjoker\"\n    },\n    {\n      \"name\": \"hmC\"\n    },\n    {\n      \"name\": \"hmD\"\n    },\n    {\n      \"name\": \"hmH\"\n    },\n    {\n      \"name\": \"hmS\"\n    },\n    {\n      \"name\": \"hmtcfont\"\n    },\n    {\n      \"name\": \"JOKER\"\n    },\n    {\n      \"name\": \"joker\"\n    },\n    {\n      \"name\": \"REDJOKER\"\n    },\n    {\n      \"name\": \"redjoker\"\n    },\n    {\n      \"name\": \"romanindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanindex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tarottrump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tarottrump{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"trump\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trump{${1:rank}}{${2:suit}}\"\n      }\n    },\n    {\n      \"name\": \"trumpblank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trumpblank{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"trumpx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trumpx{${1:rank}}\"\n      }\n    },\n    {\n      \"name\": \"unitrump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitrump{${1:<rank><${2:suit}>}}\"\n      }\n    },\n    {\n      \"name\": \"WHITEJOKER\"\n    },\n    {\n      \"name\": \"whitejoker\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hnja2hngl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"grruby\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"readhanja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanja{${1:hanja}}\"\n      }\n    },\n    {\n      \"name\": \"readhanja\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"readhanja{${1:hanja}}[${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"readhanjaword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanjaword{${1:hanja}}\"\n      }\n    },\n    {\n      \"name\": \"rwhanja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rwhanja{${1:hanja}}\"\n      }\n    },\n    {\n      \"name\": \"AssignReading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AssignReading{${1:hanja}}{${2:reading}}\"\n      }\n    },\n    {\n      \"name\": \"rpSetReading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpSetReading{${1:hanja=reading}}\"\n      }\n    },\n    {\n      \"name\": \"grrwhanja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grrwhanja{${1:hanja}}\"\n      }\n    },\n    {\n      \"name\": \"rwhanjachar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rwhanjachar{${1:hanja}}\"\n      }\n    },\n    {\n      \"name\": \"rpRead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpRead{${1:options}}\",\n        \"keys\": [\n          \"\\\\rpRead#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rpRead\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpRead{${1:options}}[${2:hanja=reading}]\",\n        \"keys\": [\n          \"\\\\rpRead#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"viewCodePoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"viewCodePoint{${1:unicode char}}\"\n      }\n    },\n    {\n      \"name\": \"viewCodePoint*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"viewCodePoint*{${1:unicode char}}\"\n      }\n    },\n    {\n      \"name\": \"showReadings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showReadings{${1:hanja}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hnja2hngl#c\": [\n      \"grruby=false\"\n    ],\n    \"\\\\rpRead#c\": [\n      \"comma\",\n      \"para\",\n      \"at\",\n      \"period\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hnja2hngl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hobete.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xfrac\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"beamerthemehohenheim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hoversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertmylogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mylogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mylogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"sectionpage\"\n    },\n    {\n      \"name\": \"sectionpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sectionpage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\sectionpage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printframelist\"\n    },\n    {\n      \"name\": \"HohenheimLogoKlein\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HohenheimLogoKlein{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"HohenheimLogoLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HohenheimLogoLang{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"inserthotpwolang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthotpwokurz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inserthotpwokurz{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"inserthotp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inserthotp{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"HohenheimFancyTitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HohenheimFancyTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thetgpostercount\",\n      \"if\": \"poster=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertemail\",\n      \"if\": \"poster=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posteremail\",\n      \"if\": \"poster=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posteremail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"insertwebsite\",\n      \"if\": \"poster=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posterwebsite\",\n      \"if\": \"poster=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posterwebsite{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"posterblock\",\n      \"if\": \"poster=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"outerretainblock\",\n      \"if\": \"poster=true\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hobete#c\": [\n      \"poster\",\n      \"framelist front=${1:code}\",\n      \"framelist back=${1:code}\"\n    ],\n    \"\\\\sectionpage#c\": [\n      \"plain\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hobete#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hologo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hologo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hologo{${1:logo%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologo#c,\\\\Hologo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hologo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hologo{${1:logo%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologo#c,\\\\Hologo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hologoSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hologoSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologoSetup,\\\\hologoLogoSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hologoLogoSetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hologoLogoSetup{${1:logo}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologoSetup,\\\\hologoLogoSetup\",\n          \"\\\\hologoLogoSetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"hologoDriverSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hologoDriverSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologoDriverSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hologoFontSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hologoFontSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologoFontSetup,\\\\hologoLogoFontSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hologoLogoFontSetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hologoLogoFontSetup{${1:logo}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hologoFontSetup,\\\\hologoLogoFontSetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"hologoVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hologoVariant{${1:name}}{${2:variant}}\"\n      }\n    },\n    {\n      \"name\": \"HologoVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HologoVariant{${1:name}}{${2:variant}}\"\n      }\n    },\n    {\n      \"name\": \"hologoList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hologoEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hologoEntry{${1:logo}}{${2:variant}}{${3:since}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hologo#c,\\\\Hologo#c\": [\n      \"(La)TeX\",\n      \"AmSLaTeX\",\n      \"AmSTeX\",\n      \"biber\",\n      \"BibTeX\",\n      \"BibTeX\",\n      \"BibTeX\",\n      \"BibTeX8\",\n      \"ConTeXt\",\n      \"ConTeXt\",\n      \"ConTeXt\",\n      \"emTeX\",\n      \"eTeX\",\n      \"ExTeX\",\n      \"HanTheThanh\",\n      \"iniTeX\",\n      \"KOMAScript\",\n      \"La\",\n      \"LaTeX\",\n      \"LaTeX2e\",\n      \"LaTeX3\",\n      \"LaTeXe\",\n      \"LaTeXML\",\n      \"LaTeXTeX\",\n      \"LuaLaTeX\",\n      \"LuaTeX\",\n      \"LyX\",\n      \"METAFONT\",\n      \"MetaFun\",\n      \"METAPOST\",\n      \"MetaPost\",\n      \"MiKTeX\",\n      \"NTS\",\n      \"OzMF\",\n      \"OzMP\",\n      \"OzTeX\",\n      \"OzTtH\",\n      \"PCTeX\",\n      \"pdfTeX\",\n      \"pdfLaTeX\",\n      \"PiC\",\n      \"PiCTeX\",\n      \"plainTeX\",\n      \"plainTeX\",\n      \"plainTeX\",\n      \"plainTeX\",\n      \"SageTeX\",\n      \"SLiTeX\",\n      \"SLiTeX\",\n      \"SLiTeX\",\n      \"SLiTeX\",\n      \"SliTeX\",\n      \"SliTeX\",\n      \"SliTeX\",\n      \"SliTeX\",\n      \"teTeX\",\n      \"TeX\",\n      \"TeX4ht\",\n      \"TTH\",\n      \"virTeX\",\n      \"VTeX\",\n      \"Xe\",\n      \"XeLaTeX\",\n      \"XeTeX\"\n    ],\n    \"\\\\hologoSetup,\\\\hologoLogoSetup\": [\n      \"break\",\n      \"hyphenbreak\",\n      \"spacebreak\",\n      \"discretionarybreak\"\n    ],\n    \"\\\\hologoLogoSetup\": [\n      \"variant=${1:string}\"\n    ],\n    \"\\\\hologoDriverSetup\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvips\",\n      \"dvipsone\",\n      \"xdvi\",\n      \"xetex\",\n      \"vtex\",\n      \"driverfallback=${1:driver}\"\n    ],\n    \"\\\\hologoFontSetup,\\\\hologoLogoFontSetup\": [\n      \"general=${1:font commands}\",\n      \"bibsf\",\n      \"rm\",\n      \"sc\",\n      \"sf\",\n      \"sy\",\n      \"logo\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/holtpolt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"holter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"holter{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"polter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polter{${1:upper}}{${2:lower}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/holtxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hypdoc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"historyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StartHistory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HistVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HistVersion{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"HistLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HistLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"URL{${1:text%plain}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameEmail\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameEmail{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"Package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Package{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"File\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"File{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"Verb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Verb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"CS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CS{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bibpackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bibpackage{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"CTAN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTAN{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"CTANinstall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTANinstall{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"CTANpkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTANpkg{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"Newsgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Newsgroup{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"xpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpackage{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"xmodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmodule{${1:module name}}\"\n      }\n    },\n    {\n      \"name\": \"xclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xclass{${1:class name}}\"\n      }\n    },\n    {\n      \"name\": \"xoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xoption{${1:option name}}\"\n      }\n    },\n    {\n      \"name\": \"xfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xfile{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"xext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xext{${1:ext name}}\"\n      }\n    },\n    {\n      \"name\": \"xemail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xemail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"xnewsgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xnewsgroup{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"plainTeX\"\n    },\n    {\n      \"name\": \"teTeX\"\n    },\n    {\n      \"name\": \"mikTeX\"\n    },\n    {\n      \"name\": \"MakeIndex\"\n    },\n    {\n      \"name\": \"docstrip\"\n    },\n    {\n      \"name\": \"iniTeX\"\n    },\n    {\n      \"name\": \"VTeX\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"History\"\n    },\n    {\n      \"name\": \"Version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:version number}}\"\n      }\n    },\n    {\n      \"name\": \"declcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:csname}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hpstatement.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"iflang\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hpsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/hpstatement#c,\\\\hpsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hpnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hpnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hpnumber[${2:text1%text}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hpnumber\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"hpnumber[${2:text1%text}][${3:text2%text}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hpstatement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpstatement{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hpstatement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hpstatement[${2:text1%text}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hpstatement\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"hpstatement[${2:text1%text}][${3:text2%text}]{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hpstatement#c,\\\\hpsetup\": [\n      \"date=${1:YYYY-MM-DD}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hpstatement#c,\\\\hpsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/href-ul.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/href-ul#c\": [\n      \"plain\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/href-ul#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hrefhide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hrefdisplayonly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefdisplayonly{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hycon\"\n    },\n    {\n      \"name\": \"hycoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hrefhide#c\": [\n      \"linktextcolour=\",\n      \"backgroundcolour=\",\n      \"pdfborder={${1:a b c}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hrefhide#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hsetup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"class-letter\"\n    },\n    {\n      \"name\": \"babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addressA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"border\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"border[${3:voffset%l}]{${1:height%l}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"border\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"border{${1:height%l}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bottomC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centreF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centreF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centrepos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centrepos{${1:offset%l}}\"\n      }\n    },\n    {\n      \"name\": \"extraA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extraB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extraC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extraC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"logo[${2:height%l}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"logo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"newfa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newfb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newfc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newoption{${1:name}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"hlangcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logoheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"tosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasbritish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hu-berlin-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/huaz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"az\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"az*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"az*{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"azv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azv{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"azv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azv*{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"Az\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"Az*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Az*{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"Azv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azv{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"Azv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azv*{${1:szöveg}}\"\n      }\n    },\n    {\n      \"name\": \"azsaved\"\n    },\n    {\n      \"name\": \"aznotshow\"\n    },\n    {\n      \"name\": \"azseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"azseparator{${1:kód}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"avref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"avref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aeqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aeqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aveqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aveqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"arefeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arefeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"avrefeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrefeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"avpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"avpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Avref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Avref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aeqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aeqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aveqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aveqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Arefeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arefeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Avrefeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avrefeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Avpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Avpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"acite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acite[${2:szöveg}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"avcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avcite[${2:szöveg}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Acite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acite[${2:szöveg}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Avcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Avcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Avcite[${2:szöveg}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"huazignorecmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huazignorecmd{${1:parancs}}\"\n      }\n    },\n    {\n      \"name\": \"huazignorecmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"huazignorecmd[${2:opció}]{${1:parancs}}\"\n      }\n    },\n    {\n      \"name\": \"huazrefcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huazrefcmd{${1:parancs}}\"\n      }\n    },\n    {\n      \"name\": \"huazpagerefcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huazpagerefcmd{${1:parancs}}\"\n      }\n    },\n    {\n      \"name\": \"huazdefcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"huazdefcmd{${1:átdefiniáló kód}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hulipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hulipsum\"\n    },\n    {\n      \"name\": \"hulipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsum[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsum*\"\n    },\n    {\n      \"name\": \"hulipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsum*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsum*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"sethulipsumdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethulipsumdefault{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"sethulipsumdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethulipsumdefault{${1:num-num}}\"\n      }\n    },\n    {\n      \"name\": \"hulipsumsave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsumsave[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsumsave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsumsave[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsumsave*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsumsave*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsumsave*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsumsave*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"hulipsumexp\"\n    },\n    {\n      \"name\": \"hulipsumdocument\"\n    },\n    {\n      \"name\": \"hulipsumdocument\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hulipsumdocument[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\hulipsumdocument\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hulipsumdocument\": [\n      \"maketitle\",\n      \"tableofcontents\",\n      \"part\",\n      \"abstract\",\n      \"math\",\n      \"bibliography\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/humanist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hminfamily\"\n    },\n    {\n      \"name\": \"texthmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthmin{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/huncial.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hunclfamily\"\n    },\n    {\n      \"name\": \"texthuncl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthuncl{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hvarabic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textRTL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textRTL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nLTR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nLTR{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"setLTRfootnoterule\"\n    },\n    {\n      \"name\": \"setRTLfootnoterule\"\n    },\n    {\n      \"name\": \"RTLfont\"\n    },\n    {\n      \"name\": \"hvALM\"\n    },\n    {\n      \"name\": \"setRTL\"\n    },\n    {\n      \"name\": \"setLTR\"\n    },\n    {\n      \"name\": \"LTRfootnoterule\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"RTL\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hvarabic#c\": [\n      \"RTLfootnoterule\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvarabic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvextern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"filemod\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"runExtCmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runExtCmd{${1:command with arguments%definition}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"runExtCmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runExtCmd[${3:options%keyvals}]{${1:command with arguments%definition}}{${2:filename%file}}\",\n        \"keys\": [\n          \"\\\\begin{externalDocument},\\\\runExtCmd,\\\\hvExternSetKeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvExternSetKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvExternSetKeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{externalDocument},\\\\runExtCmd,\\\\hvExternSetKeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defMarkerType\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"defMarkerType{${1:name}}{${2:start-main}}{${3:stop-main}}{${4:start-preamble}}{${5:stop-preamble}}\"\n      }\n    },\n    {\n      \"name\": \"ResetKeys\"\n    },\n    {\n      \"name\": \"PreambleVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreambleVerbatim{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PreambleVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreambleVerbatim[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PreambleVerbatim,\\\\BodyVerbatim\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BodyVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BodyVerbatim{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BodyVerbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BodyVerbatim[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PreambleVerbatim,\\\\BodyVerbatim\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PreambleListing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreambleListing{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PreambleListing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreambleListing[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PreambleListing,\\\\BodyListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BodyListing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BodyListing{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BodyListing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BodyListing[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PreambleListing,\\\\BodyListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvExternLineWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"externalDocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"externalDocument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\begin{externalDocument},\\\\runExtCmd,\\\\hvExternSetKeys\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hvextern#c\": [\n      \"checkCode\"\n    ],\n    \"\\\\begin{externalDocument},\\\\runExtCmd,\\\\hvExternSetKeys\": [\n      \"progpath=${1:path}\",\n      \"runsequence={${1:command sequence}}\",\n      \"runs=${1:integer}\",\n      \"runsAfter=${1:integer}\",\n      \"grfOptions={${1:\\\\includegraphics options}}\",\n      \"lstOptions={${1:listings options}}\",\n      \"textOptions={${1:fancyvrb options}}\",\n      \"BGpreamble=\",\n      \"BGbody=\",\n      \"BOpreamble=\",\n      \"BObody=\",\n      \"docType=${1|latex,mp,tex,py,pl,lua,java,context,sh,R|}\",\n      \"caption={${1:text}}\",\n      \"label=\",\n      \"pages={${1:page numbers}}\",\n      \"pagesep=\",\n      \"cropmargin=${1:length in pt}\",\n      \"mpwidth=\",\n      \"mpsep=\",\n      \"mpvalign=${1|t,c,b|}\",\n      \"ext=${1:file ext}\",\n      \"redirect\",\n      \"usefancyvrb\",\n      \"showFilename\",\n      \"outerFN\",\n      \"code\",\n      \"vshift=\",\n      \"force\",\n      \"crop\",\n      \"tcbox\",\n      \"biber\",\n      \"xindex\",\n      \"xindexOptions={${1:xindex options}}\",\n      \"includegraphic\",\n      \"showoutput\",\n      \"inline\",\n      \"frame\",\n      \"framesep=\",\n      \"float\",\n      \"floatsetting=${1:placement}\",\n      \"cleanup={${1:ext1,ext2,...}}\",\n      \"moveToExampleDir\",\n      \"align=${1:alignment commands}\",\n      \"ExampleDir=${1:name}\",\n      \"eps\",\n      \"verbose\",\n      \"compiler=${1|mpost,tex,latex,luatex,python3,perl,lua,java,xetex,pdflatex,lualatex,xelatex,context,sh,texlua,Rscript|}\",\n      \"aboveskip=\",\n      \"belowpreambleskip=\",\n      \"belowbodyskip=\",\n      \"belowskip=\",\n      \"mposttex=${1|tex,latex|}\",\n      \"shellesc\"\n    ],\n    \"\\\\PreambleVerbatim,\\\\BodyVerbatim\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\"\n    ],\n    \"\\\\PreambleListing,\\\\BodyListing\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetxcs={${1:list of csnames}}\",\n      \"deletetxcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvextern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvfloat-fps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hvfloat-fps#c\": [\n      \"figure=${1:float pos}\",\n      \"table=${1:float pos}\",\n      \"all=${1:float pos}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvfloat-fps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"fbox\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"stfloats\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hvFloatSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvFloatSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvFloatSetDefaults\"\n    },\n    {\n      \"name\": \"hvFloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hvFloat{${1:float type}}{${2:object}}{${3:caption%text}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"hvFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"hvFloat{${1:float type}}{${2:object}}[${5:short caption%text}]{${3:caption%text}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"hvFloat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hvFloat[${5:options%keyvals}]{${1:float type}}{${2:object}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"hvFloat[${5:options%keyvals}]{${1:float type}}{${2:object}}[${6:short caption%text}]{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvFloat*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hvFloat*{${1:float type}}{${2:object}}{${3:caption%text}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"hvFloat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"hvFloat*{${1:float type}}{${2:object}}[${5:short caption%text}]{${3:caption%text}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"hvFloat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hvFloat*[${5:options%keyvals}]{${1:float type}}{${2:object}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvFloat*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"hvFloat*[${5:options%keyvals}]{${1:float type}}{${2:object}}[${6:short caption%text}]{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcaption{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figcaption[${2:short caption%text}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcaption{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabcaption[${2:short caption%text}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaptionbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcaptionbelow{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaptionbelow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabcaptionbelow[${2:short caption%text}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"hvDefFloatStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hvDefFloatStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"IncludeGraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncludeGraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeGraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IncludeGraphics[${2:keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphics,\\\\IncludeGraphics\",\n          \"\\\\IncludeGraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LenToUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LenToUnit{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"drawSepLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getMultiCaptionAndLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getMultiObjectAndLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getMultiSubCaptionAndLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getMultiSubObjectAndLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getSingleCaptionAndLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvObjectBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreCaptionSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveCaptionSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setBottomCaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setDefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setPageObject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvFloatFullWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvObjectWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvCapWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvWideWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvMultiFloatSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvNonFloatTopSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvMaxCapWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvAboveCaptionSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvBelowCaptionSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fboxlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvOBox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hvFloatEnv\"\n    },\n    {\n      \"name\": \"hvFloatEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hvfloat#c\": [\n      \"fbox\",\n      \"hyperref\",\n      \"nostfloats\"\n    ],\n    \"\\\\hvFloatSet,\\\\hvFloat,\\\\hvFloat*,\\\\hvDefFloatStyle\": [\n      \"floatPos=${1:float pos}\",\n      \"rotAngle=${1:angle}\",\n      \"capWidth=${1:h, w, l, or <number>}\",\n      \"capAngle=${1:integer}\",\n      \"capPos=${1|before,top,left,after,bottom,right,inner,outer,evenPage,oddPage|}\",\n      \"capVPos=${1|bottom,center,top|}\",\n      \"capHPos=${1|left,center,right|}\",\n      \"objectPos=${1|left,center,right|}\",\n      \"objectAngle=${1:integer}\",\n      \"floatCapSep=\",\n      \"useOBox\",\n      \"onlyText\",\n      \"onlyTextInTOC\",\n      \"nonFloat\",\n      \"nonFloatTopSkip=\",\n      \"wide\",\n      \"inMargin\",\n      \"objectFrame\",\n      \"fboxLines=${1:letters}\",\n      \"fboxSep=\",\n      \"style=${1:style}\",\n      \"capFormat={${1:caption settings}}\",\n      \"subcapFormat={${1:subcaption settings}}\",\n      \"fullpage\",\n      \"FullPage\",\n      \"FULLPAGE\",\n      \"doublePage\",\n      \"doublePAGE\",\n      \"doubleFullPage\",\n      \"doubleFULLPAGE\",\n      \"forceLeft\",\n      \"vFill\",\n      \"sameHeight\",\n      \"multiFloat\",\n      \"subFloat\",\n      \"separatorLine\",\n      \"bindCorr=\",\n      \"twoColumnCaption\"\n    ],\n    \"\\\\includegraphics,\\\\IncludeGraphics\": [\n      \"columnWidth\",\n      \"fullpage\",\n      \"FullPage\",\n      \"FULLPAGE\",\n      \"doubleFullPage\",\n      \"doubleFULLPAGE\",\n      \"doublefullPage\",\n      \"doubleFullPagebindCorr\",\n      \"doubleFULLPAGEbindCorr\"\n    ],\n    \"\\\\IncludeGraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"makeidx\",\n      \"if\": \"makeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Index{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"ttIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttIndex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"bfIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bfIndex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"sfIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfIndex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"scIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scIndex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"itIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itIndex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"sIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sIndex{${1:entry|see}}\"\n      }\n    },\n    {\n      \"name\": \"saIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saIndex{${1:entry|see also}}\"\n      }\n    },\n    {\n      \"name\": \"iBraceL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iBraceR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IVert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexNIL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvIDXfontDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvIDXfontDefault{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hvIDXfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvIDXfont{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IndexXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexXXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexXXii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexXXiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvBraceLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvBraceRight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hvindex#c\": [\n      \"makeidx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvlogos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fetamont\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"dantelogo\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ALEPH\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"biber\"\n    },\n    {\n      \"name\": \"Biber\"\n    },\n    {\n      \"name\": \"BibLaTeX\"\n    },\n    {\n      \"name\": \"BibLaTeXML\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"BibTeX8\"\n    },\n    {\n      \"name\": \"BibTool\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"dante\"\n    },\n    {\n      \"name\": \"Dante\"\n    },\n    {\n      \"name\": \"DANTE\"\n    },\n    {\n      \"name\": \"dtk\"\n    },\n    {\n      \"name\": \"DTK\"\n    },\n    {\n      \"name\": \"emTeX\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"eV\"\n    },\n    {\n      \"name\": \"ExTeX\"\n    },\n    {\n      \"name\": \"HanTheThanh\"\n    },\n    {\n      \"name\": \"iniTeX\"\n    },\n    {\n      \"name\": \"KOMAScript\"\n    },\n    {\n      \"name\": \"LaTeXIII\"\n    },\n    {\n      \"name\": \"LaTeXML\"\n    },\n    {\n      \"name\": \"LMTX\"\n    },\n    {\n      \"name\": \"LaTeXTeX\"\n    },\n    {\n      \"name\": \"LuaHBTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"LuaMetaTeX\"\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"macOS\"\n    },\n    {\n      \"name\": \"METAFONT\"\n    },\n    {\n      \"name\": \"MetaFun\"\n    },\n    {\n      \"name\": \"METAPOST\"\n    },\n    {\n      \"name\": \"mfShort\"\n    },\n    {\n      \"name\": \"mkII\"\n    },\n    {\n      \"name\": \"mkIV\"\n    },\n    {\n      \"name\": \"MiKTeX\"\n    },\n    {\n      \"name\": \"mpShort\"\n    },\n    {\n      \"name\": \"NTS\"\n    },\n    {\n      \"name\": \"OzMF\"\n    },\n    {\n      \"name\": \"OzMP\"\n    },\n    {\n      \"name\": \"OzTeX\"\n    },\n    {\n      \"name\": \"OzTtH\"\n    },\n    {\n      \"name\": \"PCTeX\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"plainTeX\"\n    },\n    {\n      \"name\": \"PostScript\"\n    },\n    {\n      \"name\": \"PSTricks\"\n    },\n    {\n      \"name\": \"PurdueThesis\"\n    },\n    {\n      \"name\": \"PuTh\"\n    },\n    {\n      \"name\": \"SageTeX\"\n    },\n    {\n      \"name\": \"SLiTeX\"\n    },\n    {\n      \"name\": \"teTeX\"\n    },\n    {\n      \"name\": \"TeXivht\"\n    },\n    {\n      \"name\": \"tex4ht\"\n    },\n    {\n      \"name\": \"TeXLive\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"TTH\"\n    },\n    {\n      \"name\": \"TUG\"\n    },\n    {\n      \"name\": \"TUGboat\"\n    },\n    {\n      \"name\": \"virTeX\"\n    },\n    {\n      \"name\": \"VTeX\"\n    },\n    {\n      \"name\": \"WikipediA\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"xypic\"\n    },\n    {\n      \"name\": \"AMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BibTeXacht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"context\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lmtx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luahbtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuahbTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lualatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaPost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstricks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"purduethesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Wikipedia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wikipedia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XYpic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hvLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hvLaTeX[${1:L-a kern}]\"\n      }\n    },\n    {\n      \"name\": \"hvLaTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hvLaTeX[${1:L-a kern}][${2:La-TeX kern}]\"\n      }\n    },\n    {\n      \"name\": \"hvLaTeXTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hvLaTeXTeX[${1:(-La kern}]\"\n      }\n    },\n    {\n      \"name\": \"hvLaTeXTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hvLaTeXTeX[${1:(-La kern}][${2:L-a kern}]\"\n      }\n    },\n    {\n      \"name\": \"hvLaTeXTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"hvLaTeXTeX[${1:(-La kern}][${2:L-a kern}][${3:a-) kern}]\"\n      }\n    },\n    {\n      \"name\": \"hvLaTeXTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"hvLaTeXTeX[${1:(-La kern}][${2:L-a kern}][${3:a-) kern}][${4:)-TeX kern}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hvmaths.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hvmaths#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\",\n      \"slantedGreek\",\n      \"roman\",\n      \"sans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvmaths#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvpygmentex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"efbox\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inputpygmented\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputpygmented{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputpygmented\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputpygmented[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pyginline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pyginline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pyginline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pyginline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\pyginline#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpygmented\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpygmented{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"widest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"widest(${3:string list}){${1:code}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimOutAppend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatLineNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatLineNumber{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pygmented\"\n    },\n    {\n      \"name\": \"pygmented\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimOutAppend\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/hvpygmentex#c\": [\n      \"force\"\n    ],\n    \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\": [\n      \"lang=${1:language}\",\n      \"sty=${1:pygments style}\",\n      \"font=${1:font commands}\",\n      \"colback=\",\n      \"gobble=${1:integer}\",\n      \"tabsize=${1:integer}\",\n      \"linenos\",\n      \"linenostart=${1:integer}\",\n      \"linenostep=${1:integer}\",\n      \"linenosep=\",\n      \"caption=${1:caption}\",\n      \"label=\",\n      \"texcomments\",\n      \"mathescape\",\n      \"escapeinside=${1:two chars}\"\n    ],\n    \"\\\\pyginline#c,\\\\setpygmented#c\": [\n      \"inline method=${1:csname}\"\n    ],\n    \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\": [\n      \"boxing method=${1:envname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvpygmentex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hvqrurl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hvqrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvqrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hvqrset,\\\\hvqrurl,\\\\hvqrurl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvqrurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvqrurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hvqrurl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hvqrurl[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\hvqrset,\\\\hvqrurl,\\\\hvqrurl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hvqrurl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvqrurl*{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hvqrurl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hvqrurl*[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\hvqrset,\\\\hvqrurl,\\\\hvqrurl*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hvqrurl#c\": [\n      \"nohyperref\",\n      \"forget\"\n    ],\n    \"\\\\hvqrset,\\\\hvqrurl,\\\\hvqrurl*\": [\n      \"qrlink=${1|nolink,link|}\",\n      \"qrcolor=\",\n      \"qradjust=\",\n      \"qrheight=\",\n      \"qrlevel=${1|L,M,Q,H|}\",\n      \"qrreverse\",\n      \"linktext=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hvqrurl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hwemoji.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scalerel\"\n    },\n    {\n      \"name\": \"ifnextok\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hypbmsec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"part[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"part[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"part\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"part(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"section[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"section(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsection[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"subsection[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"subsection(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subsubsection[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"subsubsection[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"subsubsection(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"paragraph[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"paragraph[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"paragraph(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subparagraph[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"subparagraph[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"subparagraph(${2:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter[${2:short title}][${3:outline entry}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"chapter[${2:short title}](${3:pdf outline entry}){${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"chapter(${2:pdf outline entry}){${1:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hypcap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"capstart\"\n    },\n    {\n      \"name\": \"hypcapspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcapredef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypcapredef{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"capstartfalse\"\n    },\n    {\n      \"name\": \"capstarttrue\"\n    },\n    {\n      \"name\": \"ifcapstart\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hypcap#c\": [\n      \"figure\",\n      \"figure*\",\n      \"table\",\n      \"table*\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hypcap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hypdestopt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"auxhook\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"alphalph\",\n      \"if\": \"name\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theHypDest\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hypdestopt#c\": [\n      \"verbose\",\n      \"num\",\n      \"name\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hypdestopt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hypdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"doc\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"changehistoryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hdclindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hdclindex{${1:csname}}{${2:name}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hdpindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hdpindex{${1:csname}}{${2:page num}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hypdoc#c\": [\n      \"numbered\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hypdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hypdvips.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attachfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"attachfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"attachfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\attachfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bmstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bmstyle{${1:level}}{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\bmstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"backrefcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backrefcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embeddedcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tablenotecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenotecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"backrefbordercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backrefbordercolor{${1:R G B}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedbordercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embeddedbordercolor{${1:R G B}}\"\n      }\n    },\n    {\n      \"name\": \"footnotebordercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotebordercolor{${1:R G B}}\"\n      }\n    },\n    {\n      \"name\": \"tablenotebordercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenotebordercolor{${1:R G B}}\"\n      }\n    },\n    {\n      \"name\": \"embedfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"embedfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"embedfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\embedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"evenboxesstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evenboxesstring{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"file{${1:file}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"goto[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gotoparent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gotoparent{${1:destination}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"listofattachments\"\n    },\n    {\n      \"name\": \"loaformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"loaformat{${1:ID}}{${2:type}}{${3:file}}{${4:options}}\"\n      }\n    },\n    {\n      \"name\": \"odest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"odest{${1:name}}{${2:offset%l}}\"\n      }\n    },\n    {\n      \"name\": \"openaction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openaction{${1:action}}\"\n      }\n    },\n    {\n      \"name\": \"pagelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagelabel{${1:pagelabel}}\"\n      }\n    },\n    {\n      \"name\": \"pagelabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagelabel[${2:page}]{${1:pagelabel}}\"\n      }\n    },\n    {\n      \"name\": \"runattachment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runattachment{${1:ID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"currentpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentpoint{${1:linewidth}}\"\n      }\n    },\n    {\n      \"name\": \"debug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"debug{${1:warning%text}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hypdvips#c\": [\n      \"autoauthor\",\n      \"autotitle\",\n      \"detailedbr\",\n      \"emptypagelabels\",\n      \"evenboxes\",\n      \"fish\",\n      \"flip\",\n      \"fullbookmarks\",\n      \"german\",\n      \"hypertnotes\",\n      \"JavaScript\",\n      \"loabr\",\n      \"lofbr\",\n      \"lotbr\",\n      \"Mac\",\n      \"mirror\",\n      \"nlwarning\",\n      \"openmessage\",\n      \"quadpoints\",\n      \"showdests\",\n      \"smallfootnotes\",\n      \"tocbr\"\n    ],\n    \"\\\\attachfile\": [\n      \"anncreated=${1:LaTeX time}\",\n      \"annmodified=${1:LaTeX time}\",\n      \"author=${1:author}\",\n      \"checksum=${1:checksum}\",\n      \"color=${1:<r> <g> <b>}\",\n      \"created=${1:date}\",\n      \"creator=${1:creator}\",\n      \"description=${1:text}\",\n      \"filetype=${1:filetype}\",\n      \"flags=${1:postscript integer}\",\n      \"icon=${1|graph,pushpin,paperclip,tag|}\",\n      \"iconfilename=${1:file name}\",\n      \"mimetype=${1:mimtype}\",\n      \"modified=${1:date}\",\n      \"name=${1:file name}\",\n      \"opacity=${1:factor}\",\n      \"overprint\",\n      \"rect=${1:<llx> <lly> <urx> <ury>}\",\n      \"resourcefork=${1:file name}\",\n      \"size=${1:number}\",\n      \"subject=${1:text}\",\n      \"text=${1:text}\",\n      \"timezone=${1:offset}\"\n    ],\n    \"\\\\bmstyle#c\": [\n      \"bold\",\n      \"italic\",\n      \"color={${1:<r> <g> <b>}}\"\n    ],\n    \"\\\\embedfile\": [\n      \"checksum=${1:checksum}\",\n      \"created=${1:date}\",\n      \"creator=${1:creator}\",\n      \"description=${1:text}\",\n      \"filetype=${1:filetype}\",\n      \"mimetype=${1:mimtype}\",\n      \"modified=${1:date}\",\n      \"name=${1:file name}\",\n      \"resourcefork=${1:file name}\",\n      \"size=${1:number}\",\n      \"dest=${1:destination}\",\n      \"filename=${1:file name}\",\n      \"id=${1:id}\",\n      \"newwindow\",\n      \"target=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hypdvips#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hyperbar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BarcodeField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BarcodeField{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"BarcodeField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BarcodeField[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\BarcodeField\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qBarcodeFld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofBarcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LayoutBarcodeField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutBarcodeField{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBarcodeField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeBarcodeField{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\BarcodeField\": [\n      \"qr\",\n      \"datamatrix\",\n      \"pdf417\",\n      \"symwidth=\",\n      \"symfactor=${1|1,2,3,4|}\",\n      \"ecc=${1:integer}\",\n      \"tsv={${1:field1,field2,...}}\",\n      \"accesskey\",\n      \"align=${1|0,1,2|}\",\n      \"altname\",\n      \"backgroundcolor=\",\n      \"bordercolor=\",\n      \"bordersep=\",\n      \"borderwidth=\",\n      \"calculate\",\n      \"charsize=\",\n      \"checkboxsymbol\",\n      \"checked\",\n      \"color=\",\n      \"combo\",\n      \"default\",\n      \"disabled\",\n      \"format\",\n      \"height=\",\n      \"hidden\",\n      \"keystroke\",\n      \"mappingname\",\n      \"maxlen\",\n      \"menulength\",\n      \"multiline\",\n      \"name\",\n      \"onblur\",\n      \"onchange\",\n      \"onclick\",\n      \"ondbclick\",\n      \"onfocus\",\n      \"onkeydown\",\n      \"onkeypress\",\n      \"onkeyup\",\n      \"onmousedown\",\n      \"onmousemove\",\n      \"onmouseout\",\n      \"onmouseover\",\n      \"onmouseup\",\n      \"onselect\",\n      \"password\",\n      \"popdown\",\n      \"radio\",\n      \"radiosymbol\",\n      \"readonly\",\n      \"rotation\",\n      \"tabkey\",\n      \"validate\",\n      \"value\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hyperref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"hycolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"bitset\"\n    },\n    {\n      \"name\": \"bigintcalc\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=section\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=slide\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=page\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hypersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypersetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\hypersetup,\\\\usepackage/hyperref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"href[${3:options%keyvals}]{${1:URL}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\href\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToDocumentProperties{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddToDocumentProperties[${3:category}]{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"GetDocumentProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetDocumentProperties{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"SetLinkTargetFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLinkTargetFilter{${1:filter code}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"nolinkurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolinkurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hyperbaseurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperbaseurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"hyperimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperimage{${1:imageURL%URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hyperdef{${1:category}}{${2:name}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hyperref{${1:URL}}{${2:category}}{${3:name}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hyperref[${5:label%ref}]{${1:URL}}{${2:category}}{${3:name}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hyperref[${2:label%ref}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlink{${1:target name}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hypertarget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hypertarget{${1:target name}}{${2:anchor text%text}}\"\n      }\n    },\n    {\n      \"name\": \"phantomsection\"\n    },\n    {\n      \"name\": \"hyperget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperget{${1:anchor}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"autopageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autopageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autopageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autoref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"autoref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"autoref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thispdfpagelabel\"\n    },\n    {\n      \"name\": \"pdfstringdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstringdef{${1:macroname%cmd}}{${2:TeXstring}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfbookmark[${3:level}]{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"currentpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"currentpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"subpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"belowpdfbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"belowpdfbookmark{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texorpdfstring{${1:TEXstring}}{${2:PDFstring}}\"\n      }\n    },\n    {\n      \"name\": \"pdfstringdefDisableCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfstringdefDisableCommands{${1:hooks}}\"\n      }\n    },\n    {\n      \"name\": \"hypercalcbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypercalcbp{${1:dimen specification}}\"\n      }\n    },\n    {\n      \"name\": \"Acrobatmenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Acrobatmenu{${1:menuoption}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"TextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextField{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TextField\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TextField[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CheckBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckBox{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"CheckBox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CheckBox[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChoiceMenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChoiceMenu{${1:label}}{${2:choices}}\"\n      }\n    },\n    {\n      \"name\": \"ChoiceMenu\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ChoiceMenu[${3:parameters%keyvals}]{${1:label}}{${2:choices}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PushButton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PushButton{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PushButton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PushButton[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Submit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Submit{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Submit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Submit[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Reset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reset{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Reset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Reset[${2:parameters%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LayoutTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutTextField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"LayoutChoiceField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutChoiceField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"LayoutCheckField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LayoutCheckField{${1:label}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"MakeRadioField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeRadioField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeCheckField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeCheckField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTextField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeTextField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeChoiceField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeChoiceField{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"MakeButtonField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeButtonField{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultHeightofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofChoiceMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofChoiceMenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultHeightofTextMultiline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultWidthofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofSubmit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofReset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofPushButton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofCheckBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofListBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofComboBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofPopdownBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsofRadio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AfterBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AMSautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FancyVerbLineautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hfootnoteautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestLabelReplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HyperDestLabelReplace{${1:dest}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestNameFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HyperDestNameFilter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hypergetpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergetpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hypergetref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergetref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkfileprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkfileprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"hyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"HyperRaiseLinkDefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HyperRaiseLinkHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfHyperBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHyperBoolean{${1:options}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfHyperBooleanExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHyperBooleanExists{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfstringunicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifpdfstringunicode{${1:unicode chars}}{${2:chars}}\"\n      }\n    },\n    {\n      \"name\": \"Itemautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeLowercaseUnsupportedInPdfStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLowercaseUnsupportedInPdfStrings{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeUppercaseUnsupportedInPdfStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeUppercaseUnsupportedInPdfStrings{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MaybeStopEarly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaybeStopNow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyperpage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pageautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefPostHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefPreHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstringdefWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfstringdefWarn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpdflinkmargin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdflinkmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHHfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHHmpfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHmpfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHtheorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unichar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unichar{${1:char num}}\"\n      }\n    },\n    {\n      \"name\": \"XeTeXLinkBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XeTeXLinkBox{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"XeTeXLinkMargin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NoHyper\"\n    },\n    {\n      \"name\": \"Form\"\n    },\n    {\n      \"name\": \"Form\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Form}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\hypersetup,\\\\usepackage/hyperref#c\": [\n      \"addtopdfcreator=${1:text}\",\n      \"allbordercolors=\",\n      \"allcolors=\",\n      \"anchorcolor=\",\n      \"backref=${1|section,slide,page,none,false|}\",\n      \"baseurl=${1:URL}\",\n      \"bookmarks\",\n      \"bookmarksdepth\",\n      \"bookmarksdepth=${1:number}\",\n      \"bookmarksnumbered\",\n      \"bookmarksopen\",\n      \"bookmarksopenlevel=${1:level}\",\n      \"bookmarkstype=\",\n      \"breaklinks\",\n      \"citebordercolor=\",\n      \"citecolor=\",\n      \"CJKbookmarks\",\n      \"colorlinks\",\n      \"customdriver=${1:file}\",\n      \"debug\",\n      \"destlabel\",\n      \"draft\",\n      \"driverfallback=${1:driver}\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipdfmx-outline-open\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"encap=${1:character}\",\n      \"extension=${1:file ext}\",\n      \"filebordercolor=\",\n      \"filecolor=\",\n      \"final\",\n      \"frenchlinks\",\n      \"hidelinks\",\n      \"hitex\",\n      \"hyperfigures\",\n      \"hyperfootnotes\",\n      \"hyperindex\",\n      \"hypertex\",\n      \"hypertexnames\",\n      \"implicit\",\n      \"linkbordercolor=\",\n      \"linkcolor=\",\n      \"linkfileprefix=${1:prefix}\",\n      \"linktoc=${1|section,page,all,none|}\",\n      \"linktocpage\",\n      \"luatex\",\n      \"menubordercolor=\",\n      \"menucolor=\",\n      \"nativepdf\",\n      \"naturalnames\",\n      \"nesting\",\n      \"next-anchor=${1:anchor name}\",\n      \"ocgcolorlinks\",\n      \"pageanchor\",\n      \"pagebackref\",\n      \"pdfa\",\n      \"pdfauthor=${1:author}\",\n      \"pdfborder=\",\n      \"pdfborderstyle=\",\n      \"pdfcenterwindow\",\n      \"pdfcreationdate=${1:date}\",\n      \"pdfcreator=${1:creator}\",\n      \"pdfdirection=${1|L2R,R2L|}\",\n      \"pdfdisplaydoctitle\",\n      \"pdfduplex=${1|Simplex,DuplexFlipShortEdge,DuplexFlipLongEdge|}\",\n      \"pdfencoding=${1|pdfdoc,unicode,auto|}\",\n      \"pdfescapeform\",\n      \"pdffitwindow\",\n      \"pdfhighlight=${1|/I,/N,/O,/P|}\",\n      \"pdfinfo={${1:info keys}}\",\n      \"pdfkeywords={${1:keyword list}}\",\n      \"pdflang=${1:lang id}\",\n      \"pdflinkmargin=\",\n      \"pdfmark\",\n      \"pdfmenubar\",\n      \"pdfmoddate=${1:date}\",\n      \"pdfnewwindow\",\n      \"pdfnonfullscreenpagemode\",\n      \"pdfnumcopies=${1:integer}\",\n      \"pdfpageduration=\",\n      \"pdfpagelabels\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight|}\",\n      \"pdfpagemode=${1|FullScreen,UseNone,UseOutlines,UseOC,UseAttachments,UseThumbs|}\",\n      \"pdfpagescrop=${1:n1 n2 n3 n4}\",\n      \"pdfpagetransition=${1|Split,Blinds,Box,Wipe,Dissolve,Glitter,R,Fly,Push,Cover,Uncover,Fade|}\",\n      \"pdfpicktraybypdfsize\",\n      \"pdfprintarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintpagerange=${1:n1 n2}\",\n      \"pdfprintscaling=${1|None,AppDefault|}\",\n      \"pdfproducer=${1:producer}\",\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfstartpage=${1:page number}\",\n      \"pdfstartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdftex\",\n      \"pdftitle=${1:title}\",\n      \"pdftoolbar\",\n      \"pdftrapped=${1|True,False,Unknown|}\",\n      \"pdfusetitle\",\n      \"pdfversion=${1:version}\",\n      \"pdfview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfviewarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfviewclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfwindowui\",\n      \"plainpages\",\n      \"ps2pdf\",\n      \"psdextra\",\n      \"raiselinks\",\n      \"runbordercolor=\",\n      \"runcolor=\",\n      \"setpagesize\",\n      \"tex4ht\",\n      \"textures\",\n      \"unicode\",\n      \"urlbordercolor=\",\n      \"urlcolor=\",\n      \"verbose\",\n      \"vtex\",\n      \"vtexpdfmark\",\n      \"xetex\"\n    ],\n    \"\\\\href\": [\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfnewwindow\",\n      \"page=${1:number}\",\n      \"ismap\",\n      \"nextactionraw={${1:PDF code}}\"\n    ],\n    \"\\\\begin{Form}\": [\n      \"action=${1:URL}\",\n      \"encoding=${1:encoding}\",\n      \"method=${1|post,get|}\"\n    ],\n    \"\\\\TextField,\\\\CheckBox,\\\\ChoiceMenu,\\\\PushButton,\\\\Submit,\\\\Reset\": [\n      \"accesskey=${1:key}\",\n      \"align=${1|0,1,2|}\",\n      \"altname=${1:altname}\",\n      \"backgroundcolor=\",\n      \"bordercolor=\",\n      \"bordersep=\",\n      \"borderstyle=${1|S,B,D,I,U|}\",\n      \"borderwidth=\",\n      \"calculate={${1:JavaScript code}}\",\n      \"calculatesortkey=${1:key}\",\n      \"charsize=\",\n      \"checkboxsymbol=${1:symbol}\",\n      \"checked\",\n      \"color=\",\n      \"combo\",\n      \"default=${1:default value}\",\n      \"disabled\",\n      \"format={${1:JavaScript code}}\",\n      \"height=\",\n      \"hidden\",\n      \"keystroke={${1:JavaScript code}}\",\n      \"mappingname=${1:name}\",\n      \"maxlen=${1:number}\",\n      \"menulength=${1:number}\",\n      \"multiline\",\n      \"name=${1:name}\",\n      \"onblur={${1:JavaScript code}}\",\n      \"onchange={${1:JavaScript code}}\",\n      \"onclick={${1:JavaScript code}}\",\n      \"ondbclick={${1:JavaScript code}}\",\n      \"onfocus={${1:JavaScript code}}\",\n      \"onkeydown={${1:JavaScript code}}\",\n      \"onkeypress={${1:JavaScript code}}\",\n      \"onkeyup={${1:JavaScript code}}\",\n      \"onmousedown={${1:JavaScript code}}\",\n      \"onmousemove={${1:JavaScript code}}\",\n      \"onmouseout={${1:JavaScript code}}\",\n      \"onmouseover={${1:JavaScript code}}\",\n      \"onmouseup={${1:JavaScript code}}\",\n      \"onselect={${1:JavaScript code}}\",\n      \"password\",\n      \"popdown\",\n      \"radio\",\n      \"radiosymbol=${1:symbol}\",\n      \"readonly\",\n      \"rotation=${1:multiple of 90}\",\n      \"tabkey=${1:key}\",\n      \"validate={${1:JavaScript code}}\",\n      \"value=${1:init value}\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\hypersetup,\\\\usepackage/hyperref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hyperxmp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"intcalc\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"totpages\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xmplinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmpcomma\"\n    },\n    {\n      \"name\": \"xmpquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmpquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xmptilde\"\n    },\n    {\n      \"name\": \"XMPLangAlt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XMPLangAlt{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\XMPLangAlt\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hyperxmp#c\": [\n      \"verbose\",\n      \"final\",\n      \"clear-aux\",\n      \"no-files\",\n      \"use-files\",\n      \"use-aux\",\n      \"blank\"\n    ],\n    \"\\\\hypersetup\": [\n      \"pdfaconformance=${1:conformance}\",\n      \"pdfapart=${1:conformance level}\",\n      \"pdfauthortitle=${1:author title}\",\n      \"pdfbookedition=${1:book edition}\",\n      \"pdfbytes=${1:file size}\",\n      \"pdfcaptionwriter=${1:caption writer name}\",\n      \"pdfcontactaddress=${1:street address}\",\n      \"pdfcontactcity=${1:city}\",\n      \"pdfcontactcountry=${1:country}\",\n      \"pdfcontactemail=${1:email}\",\n      \"pdfcontactphone=${1:phone number}\",\n      \"pdfcontactpostcode=${1:postal code}\",\n      \"pdfcontactregion=${1:state or province}\",\n      \"pdfcontacturl=${1:URL}\",\n      \"pdfcopyright=${1:copyright text}\",\n      \"pdfdate=${1:date}\",\n      \"pdfdocumentid=uuid:${1:id num}\",\n      \"pdfdoi=${1:DOI}\",\n      \"pdfeissn=${1:electronic ISSN}\",\n      \"pdfidentifier=${1:identifier}\",\n      \"pdfinstanceid=uuid:${1:id num}\",\n      \"pdfisbn=${1:ISBN}\",\n      \"pdfissn=${1:print ISSN}\",\n      \"pdfissuenum=${1:issue number}\",\n      \"pdflicenseurl=${1:URL}\",\n      \"pdfmetadate=${1:date}\",\n      \"pdfmetalang=${1:meta language}\",\n      \"pdfnumpages=${1:number of pages}\",\n      \"pdfpagerange={${1:page ranges}}\",\n      \"pdfpublication=${1:publication}\",\n      \"pdfpublisher=${1:publisher}\",\n      \"pdfpubstatus=${1:publication status}\",\n      \"pdfpubtype=${1:publication type}\",\n      \"pdfrendition=${1|default,draft,low-res,proof,screen,thumbnail|}\",\n      \"pdfsource=${1:source file name}\",\n      \"pdfsubtitle=${1:subtitle}\",\n      \"pdftype=${1|Collection,Dataset,Event,Image,InteractiveResource,MovingImage,PhysicalObject,Service,Software,Sound,StillImage,Text|}\",\n      \"pdfuapart=${1:conformance level}\",\n      \"pdfurl=${1:URL}\",\n      \"pdfversionid=${1:version id}\",\n      \"pdfvolumenum=${1:volume number}\",\n      \"pdfxstandard=${1:PDF/X standard}\",\n      \"keeppdfinfo\"\n    ],\n    \"\\\\XMPLangAlt\": [\n      \"pdftitle=${1:text}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdfcopyright=${1:copyright text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hyperxmp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hypgotoe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hypersetup\": [\n      \"gotoebordercolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/hyphenat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textnhtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnhtt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nhttfamily\"\n    },\n    {\n      \"name\": \"nohyphens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyphens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bshyp\"\n    },\n    {\n      \"name\": \"fshyp\"\n    },\n    {\n      \"name\": \"dothyp\"\n    },\n    {\n      \"name\": \"colonhyp\"\n    },\n    {\n      \"name\": \"hyp\"\n    },\n    {\n      \"name\": \"langwohyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableUnderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnderOrSub0\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableBackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableSlash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakablePeriod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableColon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableHyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"touchttfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"touchextrattfonts\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/hyphenat#c\": [\n      \"none\",\n      \"htt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/hyphenat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/hyphsubst.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HyphSubstLet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyphSubstLet{${1:nameA}}{${2:nameB}}\"\n      }\n    },\n    {\n      \"name\": \"HyphSubstIfExists\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"HyphSubstIfExists{${1:name}}{${2:then}}{${3:else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ibarra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ibarra\"\n    },\n    {\n      \"name\": \"ibarraSemiBold\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ibarrafamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ibarra#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"type1\",\n      \"semibold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ibarra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/icite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"usebib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetTitleStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTitleStyle{${1:style code}}\"\n      }\n    },\n    {\n      \"name\": \"AuthorTitleDelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthorTitleDelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"TitlePageDelim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitlePageDelim{${1:delim}}\"\n      }\n    },\n    {\n      \"name\": \"icite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"icite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"icite[${2:pre}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"icite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"icite[${2:pre}][${3:post}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"icite\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"icite[${2:pre}][${3:post}]{${1:bibid}}[${4:csname}]\"\n      }\n    },\n    {\n      \"name\": \"IndexSubtypeAs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IndexSubtypeAs{${1:subtype}}{${2:index name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/icon-appr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"embedIcon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedIcon{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"embedIcon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"embedIcon[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\embedIcon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csOf{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"heightOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"heightOf{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"widthOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthOf{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sortitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortitem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sortitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sortitem[${2:opt}]{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"embedding\"\n    },\n    {\n      \"name\": \"sortedlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\embedIcon\": [\n      \"name=${1:name}\",\n      \"hyopts={${1:\\\\includegraphics keys}}\",\n      \"placement=${1:field}\",\n      \"placement={[${1:0|1|2}]${2:field}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/icon-doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wrtPkg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrticonbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IWB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IWB{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IWP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IWP{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addToPageList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addToPageList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"createRequiredIcons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"createRequiredIcons{${1:number}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"dpsInputContent\"\n    },\n    {\n      \"name\": \"defineJSjsR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"execExplode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtPageList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagelist\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"icondoc\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/icon-doc#c\": [\n      \"useacrobat\",\n      \"!useacrobat\",\n      \"twice\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/icon-doc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/identkey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thecoupletcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lead\"\n    },\n    {\n      \"name\": \"firstlead\"\n    },\n    {\n      \"name\": \"secondlead\"\n    },\n    {\n      \"name\": \"ident\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ident{${1:identity}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goto{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"key\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/idxcmds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newidxcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newidxcmd{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newidxcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newidxcmd[${3:index cmd}]{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newidxcmd{${1:cmd}}{${2:definition}}[${3:append}]\"\n      }\n    },\n    {\n      \"name\": \"newidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"newidxcmd[${3:index cmd}]{${1:cmd}}{${2:definition}}[${4:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newsubidxcmd{${1:cmd}}{${2:main entry}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newsubidxcmd[${4:index cmd}]{${1:cmd}}{${2:main entry}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newsubidxcmd{${1:cmd}}{${2:main entry}}{${3:definition}}[${4:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"newsubidxcmd[${4:index cmd}]{${1:cmd}}{${2:main entry}}{${3:definition}}[${5:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newsubidxcmd*{${1:cmd}}{${2:main entry}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newsubidxcmd*[${4:index cmd}]{${1:cmd}}{${2:main entry}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newsubidxcmd*{${1:cmd}}{${2:main entry}}{${3:definition}}[${4:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"newsubidxcmd*[${4:index cmd}]{${1:cmd}}{${2:main entry}}{${3:definition}}[${5:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubmainidxcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsubmainidxcmd{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsubidxcmd[${3:index cmd}]{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newsubidxcmd{${1:cmd}}{${2:main entry}}[${3:append}]\"\n      }\n    },\n    {\n      \"name\": \"newsubidxcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"newsubidxcmd[${3:index cmd}]{${1:cmd}}{${2:definition}}[${4:append}]\"\n      }\n    },\n    {\n      \"name\": \"setidxcmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setidxcmds{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setidxcmds\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setidxcmds\": [\n      \"sort-sep={${1:symbol}}\",\n      \"sub-sep={${1:symbol}}\",\n      \"idx-cmd={${1:cmd}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/idxlayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"idxlayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxlayout{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\idxlayout,\\\\usepackage/idxlayout#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setindexprenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexprenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noindexprenote\"\n    },\n    {\n      \"name\": \"indexfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexjustific\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexsubsdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexstheadcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theidxcols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexrule\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\idxlayout,\\\\usepackage/idxlayout#c\": [\n      \"columns=${1:integer}\",\n      \"unbalanced\",\n      \"columnsep=\",\n      \"rule=\",\n      \"itemlayout=${1|abshang,relhang,singlepar|}\",\n      \"indentunit=\",\n      \"hangindent=\",\n      \"subindent=\",\n      \"subsubindent=\",\n      \"initsep=\",\n      \"notesep=\",\n      \"columnnote\",\n      \"minspace=\",\n      \"font=${1:format csnames}\",\n      \"justific=${1|standard,raggedright,RaggedRight|}\",\n      \"totoc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\idxlayout,\\\\usepackage/idxlayout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/iexec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iexec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iexec{${1:shell command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"iexec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iexec[${2:options%keyvals}]{${1:shell command%definition}}\",\n        \"keys\": [\n          \"\\\\iexec\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/iexec#c\": [\n      \"trace\"\n    ],\n    \"\\\\iexec\": [\n      \"quiet\",\n      \"stdout=${1:file name}\",\n      \"stderr=${1:file name}\",\n      \"exit=${1:file name}\",\n      \"trace\",\n      \"append\",\n      \"unskip\",\n      \"log\",\n      \"null\",\n      \"ignore\",\n      \"maybe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/iexec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ifallfalse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"orcheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcheck{${1:setstring}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"allfalse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifdraft.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifdraft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifdraft{${1:draft case}}{${2:final case}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptiondraft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifoptiondraft{${1:option given}}{${2:option not given}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionfinal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifoptionfinal{${1:option given}}{${2:option not given}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifetex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/iffont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"settofirstfound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settofirstfound{${1:font cmd}}{${2:font1,font2,...}}\"\n      }\n    },\n    {\n      \"name\": \"iffontsexist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffontsexist{${1:font list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifxfontsexist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifxfontsexist{${1:font list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffontexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffontexists{${1:font}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifxfontexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifxfontexists{${1:font}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/iflang.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"IfLanguageName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLanguageName{${1:lang}}{${2:then}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"IfLanguagePatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLanguagePatterns{${1:lang}}{${2:then}}{${3:else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifluatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifnextok.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"NoNextSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RestoreNextSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StoreStarSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RestoreStarSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoStarSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfNextSpace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNextSpace{${1:if}}{${2:else}}\"\n      }\n    },\n    {\n      \"name\": \"MakeNotSkipping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeNotSkipping{${1:target}}{${2:on-space}}\"\n      }\n    },\n    {\n      \"name\": \"StoreNewlineSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RestoreNewlineSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoNewlineSkipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"INTactOnEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"INTactOnEnv{${1:action1}}{${2:action2}}{${3:envname}}\"\n      }\n    },\n    {\n      \"name\": \"StoreSkippingCRs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StoreSkippingCRs{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreSkippingCRs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreSkippingCRs{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NotSkippingCRs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotSkippingCRs{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ifnextok#c\": [\n      \"newline\",\n      \"center\",\n      \"tab\",\n      \"array\",\n      \"tabular\",\n      \"all\",\n      \"stdbreaks\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ifnextok#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ifoddpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpageoroneside\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifoption.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CurrentPackage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfOption{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPackageOption{${1:package}}{${2:option}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfClassOption{${1:class}}{${2:option}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExclusiveOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExclusiveOptions{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessExclusiveOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareBooleanOption{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"OptionsFalseTrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OptionsFalseTrue{${1:option}}{${2:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifpdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifplatform.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cygwinname\"\n    },\n    {\n      \"name\": \"linuxname\"\n    },\n    {\n      \"name\": \"macosxname\"\n    },\n    {\n      \"name\": \"notwindowsname\"\n    },\n    {\n      \"name\": \"unknownplatform\"\n    },\n    {\n      \"name\": \"windowsname\"\n    },\n    {\n      \"name\": \"ifshellescape\"\n    },\n    {\n      \"name\": \"ifwindows\"\n    },\n    {\n      \"name\": \"iflinux\"\n    },\n    {\n      \"name\": \"ifmacosx\"\n    },\n    {\n      \"name\": \"ifcygwin\"\n    },\n    {\n      \"name\": \"platformname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifptex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifptex\"\n    },\n    {\n      \"name\": \"ifuptex\"\n    },\n    {\n      \"name\": \"ifnativeuptex\"\n    },\n    {\n      \"name\": \"ifptexng\"\n    },\n    {\n      \"name\": \"ifstrictptex\"\n    },\n    {\n      \"name\": \"ifstrictuptex\"\n    },\n    {\n      \"name\": \"ifstrictptexng\"\n    },\n    {\n      \"name\": \"ifstrictplatex\"\n    },\n    {\n      \"name\": \"ifstrictuplatex\"\n    },\n    {\n      \"name\": \"ifporuplatex\"\n    },\n    {\n      \"name\": \"RequirepTeX\"\n    },\n    {\n      \"name\": \"RequireStrictpTeX\"\n    },\n    {\n      \"name\": \"RequireupTeX\"\n    },\n    {\n      \"name\": \"RequireStrictupTeX\"\n    },\n    {\n      \"name\": \"RequireNativeupTeX\"\n    },\n    {\n      \"name\": \"RequirepTeXng\"\n    },\n    {\n      \"name\": \"RequireStrictpTeXng\"\n    },\n    {\n      \"name\": \"RequireStrictpLaTeX\"\n    },\n    {\n      \"name\": \"RequireStrictupLaTeX\"\n    },\n    {\n      \"name\": \"RequirepOrupLaTeX\"\n    },\n    {\n      \"name\": \"upTeXguessedversion\"\n    },\n    {\n      \"name\": \"RequireupTeXAtLeast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireupTeXAtLeast{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"RequireNativeupTeXAtLeast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireNativeupTeXAtLeast{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"RequireStrictupLaTeXAtLeast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireStrictupLaTeXAtLeast{${1:version}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifpxltex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hologo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pxlThisTeX\"\n    },\n    {\n      \"name\": \"pxlThisTeX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pxlThisTeX[${1:engine%keyvals}]\",\n        \"keys\": [\n          \"\\\\pxlThisTeX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxlThisLaTeX\"\n    },\n    {\n      \"name\": \"pxlThisPLaTeX\"\n    },\n    {\n      \"name\": \"IfpxlTeX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfpxlTeX{${1:engine%keyvals}}{${2:true}}{${3:false}}\",\n        \"keys\": [\n          \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfpxlTeX*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfpxlTeX*{${1:engine%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfpxlTeX*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IfpxlTeX*[${3:T/F}]{${1:engine%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"IfpxlTeXpxl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfpxlTeXpxl{${1:pdftex cmd}}{${2:xetex cmd}}{${3:luatex cmd}}\"\n      }\n    },\n    {\n      \"name\": \"IfpxlTeXpxl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfpxlTeXpxl*{${1:engine1%keyvals}}{${2:engine2%keyvals}}{${3:engine1 cmd}}{${4:engine2 cmd}}\",\n        \"keys\": [\n          \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxlRequireTeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxlRequireTeX{${1:engine%keyvals}}\",\n        \"keys\": [\n          \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pxlThisTeX#c\": [\n      \"eTeX\",\n      \"LaTeX\",\n      \"LuaLaTeX\",\n      \"LuaTeX\",\n      \"pdfLaTeX\",\n      \"pdfTeX\",\n      \"PLaTeX\",\n      \"pTeX\",\n      \"TeX\",\n      \"XeLaTeX\",\n      \"XeTeX\"\n    ],\n    \"\\\\IfpxlTeX#c,\\\\IfpxlTeX*#c,\\\\IfpxlTeXpxl*#c,\\\\pxlRequireTeX#c\": [\n      \"p\",\n      \"x\",\n      \"l\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifsym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifsymfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgeofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"narrowshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wideshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textifsym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textifsym{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textifgeo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textifgeo{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textnarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnarrow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textwide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwide{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textifsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textifsymbol{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"textifsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textifsymbol[${2:font family}]{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"theifsymcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Letter\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"Telephone\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"SectioningDiamond\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"FilledSectioningDiamond\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"PaperPortrait\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"PaperLandscape\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"Cube\",\n      \"if\": \"misc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cube{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Irritant\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"Fire\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"Radiation\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"StrokeOne\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"StrokeTwo\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"StrokeThree\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"StrokeFour\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"StrokeFive\",\n      \"if\": \"misc\"\n    },\n    {\n      \"name\": \"RaisingEdge\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"FallingEdge\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"ShortPulseHigh\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"ShortPulseLow\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"PulseHigh\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"PulseLow\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"LongPulseHigh\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"LongPulseLow\",\n      \"if\": \"electronic\"\n    },\n    {\n      \"name\": \"SummitSign\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"StoneMan\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Hut\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"FilledHut\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Village\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Summit\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Mountain\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"IceMountain\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"VarMountain\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"VarIceMountain\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"SurveySign\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Joch\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Flag\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"VarFlag\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"Tent\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"HalfFilledHut\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"VarSummit\",\n      \"if\": \"alpine\"\n    },\n    {\n      \"name\": \"BigSquare\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"Square\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallSquare\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigSquare\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSquare\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallSquare\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SquareShadowA\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SquareShadowB\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SquareShadowC\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSquareShadowA\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSquareShadowC\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigCross\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"Cross\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallCross\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SpinUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SpinDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigTriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"TriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallTriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigTriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledTriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallTriangleUp\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigTriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"TriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallTriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigTriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledTriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallTriangleLeft\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigTriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"TriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallTriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigTriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledTriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallTriangleDown\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigTriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"TriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallTriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigTriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledTriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallTriangleRight\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigCircle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"Circle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallCircle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigCircle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledCircle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallCircle\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigDiamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"Diamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallDiamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledBigDiamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledDiamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledSmallDiamondshape\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"DiamondShadowA\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"DiamondShadowB\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"DiamondShadowC\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledDiamondShadowA\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"FilledDiamondShadowC\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigRightDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"RightDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallRightDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigLowerDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"LowerDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallLowerDiamond\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigHBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"HBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallHBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"BigVBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"VBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"SmallVBar\",\n      \"if\": \"geometry\"\n    },\n    {\n      \"name\": \"ifclkfamily\",\n      \"if\": \"clock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textifclk\",\n      \"if\": \"clock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textifclk{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"showclock\",\n      \"if\": \"clock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showclock{${1:hour}}{${2:minute}}\"\n      }\n    },\n    {\n      \"name\": \"Taschenuhr\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"VarTaschenuhr\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"StopWatchStart\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"StopWatchEnd\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"Interval\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"Wecker\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"VarClock\",\n      \"if\": \"clock\"\n    },\n    {\n      \"name\": \"textweathersymbol\",\n      \"if\": \"weather\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textweathersymbol{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Sun\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"HalfSun\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"NoSun\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Fog\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"ThinFog\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Rain\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"WeakRain\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Hail\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Sleet\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Snow\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Lightning\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"Cloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"RainCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"WeakRainCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"SunCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"SnowCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"FilledCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"FilledRainCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"FilledWeakRainCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"FilledSunCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"FilledSnowCloud\",\n      \"if\": \"weather\"\n    },\n    {\n      \"name\": \"wind\",\n      \"if\": \"weather\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wind{${1:integer}}{${2:angle}}{${3:speed}}\"\n      }\n    },\n    {\n      \"name\": \"Thermo\",\n      \"if\": \"weather\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thermo{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ifsym#c\": [\n      \"misc\",\n      \"electronic\",\n      \"alpine\",\n      \"geometry\",\n      \"clock\",\n      \"weather\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ifsym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/iftex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifpdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPDFTeX\"\n    },\n    {\n      \"name\": \"ifxetex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifXeTeX\"\n    },\n    {\n      \"name\": \"ifluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLuaTeX\"\n    },\n    {\n      \"name\": \"ifetex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeTeX\"\n    },\n    {\n      \"name\": \"ifluahbtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLuaHBTeX\"\n    },\n    {\n      \"name\": \"ifptex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpTeX\"\n    },\n    {\n      \"name\": \"ifuptex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifupTeX\"\n    },\n    {\n      \"name\": \"ifptexng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpTeXng\"\n    },\n    {\n      \"name\": \"ifvtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifVTeX\"\n    },\n    {\n      \"name\": \"ifalephtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAlephTeX\"\n    },\n    {\n      \"name\": \"iftutex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTUTeX\"\n    },\n    {\n      \"name\": \"iftexpadtex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTexpadTeX\"\n    },\n    {\n      \"name\": \"ifhint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifHINT\"\n    },\n    {\n      \"name\": \"else\"\n    },\n    {\n      \"name\": \"fi\"\n    },\n    {\n      \"name\": \"RequireeTeX\"\n    },\n    {\n      \"name\": \"RequirePDFTeX\"\n    },\n    {\n      \"name\": \"RequireXeTeX\"\n    },\n    {\n      \"name\": \"RequireLuaTeX\"\n    },\n    {\n      \"name\": \"RequireLuaHBTeX\"\n    },\n    {\n      \"name\": \"RequirepTeX\"\n    },\n    {\n      \"name\": \"RequireupTeX\"\n    },\n    {\n      \"name\": \"RequirepTeXng\"\n    },\n    {\n      \"name\": \"RequireVTeX\"\n    },\n    {\n      \"name\": \"RequireAlephTeX\"\n    },\n    {\n      \"name\": \"RequireTUTeX\"\n    },\n    {\n      \"name\": \"RequireTexpadTeX\"\n    },\n    {\n      \"name\": \"RequireHINT\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pdftrue\"\n    },\n    {\n      \"name\": \"pdffalse\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifthen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifthenelse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifthenelse{${1:test}}{${2:then clause}}{${3:else clause}}\"\n      }\n    },\n    {\n      \"name\": \"isodd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isodd{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"isundefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isundefined{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"equal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"equal{${1:string}}{${2:string}}\"\n      },\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"lengthtest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lengthtest{${1:dimen operator dimen}}\"\n      }\n    },\n    {\n      \"name\": \"boolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newboolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"provideboolean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideboolean{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setboolean\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboolean{${1:name}}{${2:truth value}}\"\n      }\n    },\n    {\n      \"name\": \"whiledo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whiledo{${1:test}}{${2:while clause}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifthenx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isinteger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ispositiveinteger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ispositiveinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"isrealnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isrealnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"isnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ispositiverealnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ispositiverealnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ispositivenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ispositivenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"classloaded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classloaded{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"packageloaded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packageloaded{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"fileexists\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileexists{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifuptex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifptex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifvtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifvtexdvi\"\n    },\n    {\n      \"name\": \"ifvtexpdf\"\n    },\n    {\n      \"name\": \"ifvtexps\"\n    },\n    {\n      \"name\": \"ifvtexhtml\"\n    },\n    {\n      \"name\": \"ifvtexgex\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifxetex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ifxptex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifxpTeX\"\n    },\n    {\n      \"name\": \"xpTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xpTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxepTeX\"\n    },\n    {\n      \"name\": \"xepTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxupTeX\"\n    },\n    {\n      \"name\": \"xupTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xupTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxeupTeX\"\n    },\n    {\n      \"name\": \"xeupTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeupTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxApTeX\"\n    },\n    {\n      \"name\": \"xApTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xApTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxUniupTeX\"\n    },\n    {\n      \"name\": \"xUniupTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xUniupTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxUnieupTeX\"\n    },\n    {\n      \"name\": \"xUnieupTeXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xUnieupTeXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxptex\"\n    },\n    {\n      \"name\": \"xptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxeptex\"\n    },\n    {\n      \"name\": \"xeptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxuptex\"\n    },\n    {\n      \"name\": \"xuptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xuptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxeuptex\"\n    },\n    {\n      \"name\": \"xeuptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeuptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxaptex\"\n    },\n    {\n      \"name\": \"xaptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xaptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxuniuptex\"\n    },\n    {\n      \"name\": \"xuniuptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xuniuptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxunieuptex\"\n    },\n    {\n      \"name\": \"xunieuptextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xunieuptexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RequireXpTeX\"\n    },\n    {\n      \"name\": \"RequireXepTeX\"\n    },\n    {\n      \"name\": \"RequireXupTeX\"\n    },\n    {\n      \"name\": \"RequireXeupTeX\"\n    },\n    {\n      \"name\": \"RequireXApTeX\"\n    },\n    {\n      \"name\": \"RequireXUniupTeX\"\n    },\n    {\n      \"name\": \"RequireXUnieupTeX\"\n    },\n    {\n      \"name\": \"RequireXptex\"\n    },\n    {\n      \"name\": \"RequireXeptex\"\n    },\n    {\n      \"name\": \"RequireXuptex\"\n    },\n    {\n      \"name\": \"RequireXeuptex\"\n    },\n    {\n      \"name\": \"RequireXaptex\"\n    },\n    {\n      \"name\": \"RequireXuniuptex\"\n    },\n    {\n      \"name\": \"RequireXunieuptex\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/igo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"black\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"black[${2:glyph}]{${1:intersection-list}}\"\n      }\n    },\n    {\n      \"name\": \"black\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"black{${1:intersection-list}}\"\n      }\n    },\n    {\n      \"name\": \"blackstone\"\n    },\n    {\n      \"name\": \"blackstone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blackstone[${1:glyph}]\"\n      }\n    },\n    {\n      \"name\": \"clear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clear{${1:intersection-list}}\"\n      }\n    },\n    {\n      \"name\": \"cleargoban\"\n    },\n    {\n      \"name\": \"cleargoban\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleargoban[${1:intersection-pair}]\"\n      }\n    },\n    {\n      \"name\": \"cleargobansymbols\"\n    },\n    {\n      \"name\": \"copyfromgoban\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyfromgoban{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"copygoban\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copygoban{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"copytogoban\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copytogoban{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"gobansize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobansize{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"gobansymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobansymbol{${1:intersection-list}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"gobansymbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobansymbols{${1:intersection-list}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"hflipgoban\"\n    },\n    {\n      \"name\": \"igobreakafterdiagram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igocircle\"\n    },\n    {\n      \"name\": \"igocross\"\n    },\n    {\n      \"name\": \"igofontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igofontsize{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"igonone\"\n    },\n    {\n      \"name\": \"igosquare\"\n    },\n    {\n      \"name\": \"igotriangle\"\n    },\n    {\n      \"name\": \"largegoban\"\n    },\n    {\n      \"name\": \"mirrorgoban\"\n    },\n    {\n      \"name\": \"normalgoban\"\n    },\n    {\n      \"name\": \"rotategoban\"\n    },\n    {\n      \"name\": \"rotategobanleft\"\n    },\n    {\n      \"name\": \"rotategobanright\"\n    },\n    {\n      \"name\": \"showfullgoban\"\n    },\n    {\n      \"name\": \"showgoban\"\n    },\n    {\n      \"name\": \"showgoban\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showgoban[${1:intersection-pair}]\"\n      }\n    },\n    {\n      \"name\": \"smallgoban\"\n    },\n    {\n      \"name\": \"stonesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usegoban\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usegoban{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"vflipgoban\"\n    },\n    {\n      \"name\": \"white\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"white[${2:glyph}]{${1:intersection-list}}\"\n      }\n    },\n    {\n      \"name\": \"white\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"white{${1:intersection-list}}\"\n      }\n    },\n    {\n      \"name\": \"whitestone\"\n    },\n    {\n      \"name\": \"whitestone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whitestone[${1:glyph}]\"\n      }\n    },\n    {\n      \"name\": \"breakrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"by\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"by{${1:step}}\"\n      }\n    },\n    {\n      \"name\": \"downto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"downto{${1:end}}\"\n      }\n    },\n    {\n      \"name\": \"for\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"for{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"from\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"from{${1:start}}\"\n      }\n    },\n    {\n      \"name\": \"to\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"to{${1:end}}\"\n      }\n    },\n    {\n      \"name\": \"until\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"until{${1:cond}}\"\n      }\n    },\n    {\n      \"name\": \"while\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"while{${1:cond}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/iitem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"iitem\"\n    },\n    {\n      \"name\": \"iitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"iitem[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"iiitem\"\n    },\n    {\n      \"name\": \"iiitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"iiitem[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"ivtem\"\n    },\n    {\n      \"name\": \"ivtem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ivtem[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"theiitemcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theiiitemcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theivtemcounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/imakeidx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makeindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\makeindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"indexsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\indexsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"splitindexoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splitindexoptions{${1:splitindex options}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"indexprologue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexprologue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexprologue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexprologue[${2:spacing}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:name}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/imakeidx#c\": [\n      \"xindy\",\n      \"texindy\",\n      \"truexindy\",\n      \"makeindex\",\n      \"noautomatic\",\n      \"nonewpage\",\n      \"splitindex\",\n      \"original\",\n      \"quiet\"\n    ],\n    \"\\\\makeindex\": [\n      \"name=${1:name}\",\n      \"title=${1:text}\",\n      \"program=${1|makeindex,xindy,texindy,truexindy|}\",\n      \"options=${1:program options}\",\n      \"noautomatic\",\n      \"intoc\",\n      \"columns=${1:number}\",\n      \"columnsep=\",\n      \"columnseprule\"\n    ],\n    \"\\\\indexsetup\": [\n      \"level=${1:section cmd}\",\n      \"toclevel=${1:section csname}\",\n      \"noclearpage\",\n      \"firstpagestyle=\",\n      \"headers={${1:left marks}}{${2:right marks}}\",\n      \"othercode=${1:code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/imakeidx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/imfellEnglish.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"imfellEnglish\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/imfellEnglish#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/imfellEnglish#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/impnattypo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/impnattypo#c\": [\n      \"draft\",\n      \"frenchchapters\",\n      \"hyphenation\",\n      \"nosingleletter\",\n      \"parindent\",\n      \"lastparline\",\n      \"homeoarchy\",\n      \"rivers\",\n      \"homeoarchywordcolor=\",\n      \"homeoarchycharcolor=\",\n      \"nosinglelettercolor=\",\n      \"lastparlinecolor=\",\n      \"riverscolor=\",\n      \"homeoarchymaxwords=${1:integer}\",\n      \"homeoarchymaxchars=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/impnattypo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/import.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"import\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"import{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputfrom{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subimport{${1:relative path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subinputfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subinputfrom{${1:relative path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includefrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includefrom{${1:full path%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"subincludefrom*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subincludefrom*{${1:relative path%definition}}{${2:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/imprintmtshadow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"imprintmtshadowfamily\"\n    },\n    {\n      \"name\": \"textimprintmtshadow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textimprintmtshadow{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/imprintmtshadow#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/imprintmtshadow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/imsart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"natbib\"\n    },\n    {\n      \"name\": \"rotating\",\n      \"if\": \"rotating\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ba\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ps\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ss\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"ejs\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aap\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aop\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aos\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"textcase\",\n      \"if\": \"aoas\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"letterspace\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"enumitem\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amsmath\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"mathrsfs\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"bm\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"natbib\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"bj\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"aihp\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"aihp\"\n    },\n    {\n      \"name\": \"times\",\n      \"if\": \"bjps\"\n    },\n    {\n      \"name\": \"helvet\",\n      \"if\": \"bjps\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"showframe\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"thline\",\n      \"if\": \"sts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thline\",\n      \"if\": \"bj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlstracking\",\n      \"if\": \"bj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlstracking{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"texttracking\",\n      \"if\": \"bj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texttracking{${1:value}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"thline\",\n      \"if\": \"bjps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgementsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"arxiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxiv{${1:arxiv}}\"\n      }\n    },\n    {\n      \"name\": \"atltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atltitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bid{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"citefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contributor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contributor{${1:name}}{${2:university}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightowner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightowner{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"correctionnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctionnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicated{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"degs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"degs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doublespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ead[${2:options%keyvals}]{${1:email%URL}}\",\n        \"keys\": [\n          \"\\\\ead\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ead{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"endlocaldefs\"\n    },\n    {\n      \"name\": \"firstpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fnms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnms{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"fundingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getitemvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getitemvalue{${1:list name}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"getpkgattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getpkgattr{${1:type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"inits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inits{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"issue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"journalurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journalurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"kwd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kwd[${2:pre text%text}]{${1:keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"kwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kwd{${1:keyword%text}}\"\n      }\n    },\n    {\n      \"name\": \"labellonglist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"newpseudoenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpseudoenvironment{${1:name}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"nocontentsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    },\n    {\n      \"name\": \"paperno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paperno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paperurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paperurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pdfauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfkeywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfkeywords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsubject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfsubject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdftitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printaddresses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printaddressnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printaddressnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printead[${2:options%keyvals}]{${1:label1,label2,...}}\",\n        \"keys\": [\n          \"\\\\printead\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printead{${1:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"printorcid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pubonline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubonline{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"pubyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubyear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"qq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"relateddoi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"relateddoi[${3:opt}]{${1:arg}}{${2:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"relateddoi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relateddoi{${1:arg}}{${2:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"relateddois\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"relateddois[${3:mark}]{${1:id}}{${2:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"relateddois\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relateddois{${1:id}}{${2:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"restorethankscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"roles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roles{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"runauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runauthor{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"runtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"safelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"safelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"saferef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saferef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sdatatype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdatatype{${1:.ext}}\"\n      }\n    },\n    {\n      \"name\": \"sday\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sday{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"sdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpkgattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpkgattr{${1:type}}{${2:name}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"setvaluelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setvaluelist{${1:name}}{${2:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"sfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfilename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"singlespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"slink[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\slink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"smonth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smonth{${1:month}}\"\n      }\n    },\n    {\n      \"name\": \"sname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"snm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"snm{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"specialsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"specialsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"specialsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"specialsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specialsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"startlocaldefs\"\n    },\n    {\n      \"name\": \"stitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stitlepost\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stitlepost{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"support\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"support{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"syear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"tablewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabnoteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnoteref{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"tabnotestoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabnotetext[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\tabnotetext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thankslabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thankslabel[${2:mark}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thankslabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thankslabel{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanksmark[${2:mark}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmark{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thanksnewlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanksref[${2:mark}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thanksref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksref{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thankstext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"thankstext[${3:mark}]{${1:id}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"thankstext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thankstext{${1:id}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"theaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaddressref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theemailref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefirstpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelonglist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesuppdoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thesuppdoi{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetabnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usethankscounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usethankscounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"volumetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumetitle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\",\n      \"if\": \"amsthm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language=language}]\"\n      }\n    },\n    {\n      \"name\": \"acks\"\n    },\n    {\n      \"name\": \"acks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"aug\"\n    },\n    {\n      \"name\": \"em\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"funding\"\n    },\n    {\n      \"name\": \"funding\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"keyword\"\n    },\n    {\n      \"name\": \"keyword\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:class=class}]\"\n      }\n    },\n    {\n      \"name\": \"longlist\"\n    },\n    {\n      \"name\": \"longlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:widest label}]\"\n      }\n    },\n    {\n      \"name\": \"supplement\"\n    },\n    {\n      \"name\": \"supplement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:id=id}]\"\n      }\n    },\n    {\n      \"name\": \"tabnotes\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/imsart#c\": [\n      \"printbiddoi\",\n      \"keywordsasfootnote\",\n      \"historyasfootnote\",\n      \"addressasfootnote\",\n      \"addressatend\",\n      \"autosecdot\",\n      \"noautosecdot\",\n      \"noundefthanksref\",\n      \"frontback\",\n      \"amsmath\",\n      \"amsthm\",\n      \"seceqn\",\n      \"natbib\",\n      \"linksfromyear\",\n      \"numbers\",\n      \"nameyear\",\n      \"authoryear\",\n      \"rotating\",\n      \"ba\",\n      \"ps\",\n      \"ss\",\n      \"ejs\",\n      \"aap\",\n      \"aop\",\n      \"aos\",\n      \"aoas\",\n      \"sts\",\n      \"bj\",\n      \"aihp\",\n      \"bjps\",\n      \"doublespacing\",\n      \"singlespacing\",\n      \"noinfoline\",\n      \"infoline\",\n      \"linenumbers\",\n      \"nolinenumbers\",\n      \"showframe\",\n      \"noshowframe\",\n      \"submission\",\n      \"preedit\",\n      \"preprint\"\n    ],\n    \"\\\\ead\": [\n      \"email\",\n      \"url\",\n      \"label=${1:label}\",\n      \"text=${1:text}\",\n      \"nopdflink\"\n    ],\n    \"\\\\printead\": [\n      \"text=${1:text}\",\n      \"presep=${1:separator}\"\n    ],\n    \"\\\\slink\": [\n      \"text=${1:text}\",\n      \"doi\",\n      \"url\"\n    ],\n    \"\\\\tabnotetext\": [\n      \"id=${1:id}\",\n      \"mark=${1:mark}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/imsart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/incgraph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"bookmark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"incgraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incgraph{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"incgraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"incgraph[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"incgraph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"incgraph[${2:options%keyvals}][${3:graphics options}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"incmultigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"incmultigraph{${1:file name pattern}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"incmultigraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"incmultigraph[${3:options%keyvals}]{${1:file name pattern}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"incmultigraph\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"incmultigraph[${3:options%keyvals}][${4:graphics options}]{${1:file name pattern}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"n\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ni\",\n      \"unusual\": true,\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"nn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"igrGetPageSize\"\n    },\n    {\n      \"name\": \"igrPageWidth\"\n    },\n    {\n      \"name\": \"igrPageHeight\"\n    },\n    {\n      \"name\": \"igrSetPageSize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"igrSetPageSize{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"igrGetLastPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igrGetLastPage{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"igrLastPage\"\n    },\n    {\n      \"name\": \"igfpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igfpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"igrcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igrcenter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"igrcenterfit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"igrcenterfit{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"igrtargetset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igrtargetset{${1:hyperref anchor}}\"\n      }\n    },\n    {\n      \"name\": \"theigrpage\"\n    },\n    {\n      \"name\": \"igrpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrmatchvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igfboxset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igfboxset{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"igrboxcenter\"\n    },\n    {\n      \"name\": \"igrboxtikz\"\n    },\n    {\n      \"name\": \"igrboxtikzpage\"\n    },\n    {\n      \"name\": \"igrboxtikzcenter\"\n    },\n    {\n      \"name\": \"igrbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrAutoTarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrBoxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrBoxHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrBoxht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrBoxdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"igrsetmatchvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"igrsetmatchvalue{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"igrsetmatches\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"igrsetmatches{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"igrifmatch\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"igrifmatch{${1:key%plain}}{${2:then}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"igrmakezerofill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"igrmakezerofill{${1:macro}}{${2:digits}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"inctext\"\n    },\n    {\n      \"name\": \"inctext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/incgraph#c\": [\n      \"pgf\",\n      \"nopgf\",\n      \"graphicx\",\n      \"nographicx\",\n      \"bookmark\",\n      \"nobookmark\"\n    ],\n    \"\\\\incgraph,\\\\incmultigraph,\\\\begin{inctext},\\\\igrset\": [\n      \"currentpaper\",\n      \"documentpaper\",\n      \"graphicspaper\",\n      \"paper size=${1:width}:${2:height}\",\n      \"paper=${1|current,document,graphics,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,d0,d1,d2,d3,d4,d5,d6,d7,executive,letter,legal,ledger|}\",\n      \"landscape\",\n      \"portrait\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"a7paper\",\n      \"a8paper\",\n      \"a9paper\",\n      \"a10paper\",\n      \"b0paper\",\n      \"b1paper\",\n      \"b2paper\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"b7paper\",\n      \"b8paper\",\n      \"b9paper\",\n      \"b10paper\",\n      \"c0paper\",\n      \"c1paper\",\n      \"c2paper\",\n      \"c3paper\",\n      \"c4paper\",\n      \"c5paper\",\n      \"c6paper\",\n      \"c7paper\",\n      \"c8paper\",\n      \"c9paper\",\n      \"c10paper\",\n      \"d0paper\",\n      \"d1paper\",\n      \"d2paper\",\n      \"d3paper\",\n      \"d4paper\",\n      \"d5paper\",\n      \"d6paper\",\n      \"d7paper\",\n      \"executivepaper\",\n      \"letterpaper\",\n      \"legalpeper\",\n      \"ledgerpaper\",\n      \"center\",\n      \"page\",\n      \"options={${1:graphics options}}\",\n      \"options add={${1:graphics options}}\",\n      \"include command=${1:macro}\",\n      \"existence check=${1:macro}\",\n      \"no existence check\",\n      \"fail on not found\",\n      \"ignore on not found\",\n      \"ignore on not found with extensions={${1:extension list}}\",\n      \"ignore on not found with extensions*={${1:extension list}}\",\n      \"extensions={${1:extension list}}\",\n      \"extensions add={${1:extension list}}\",\n      \"extensions from graphics\",\n      \"hyper\",\n      \"no hyper\",\n      \"target=${1:hyperref anchor}\",\n      \"label=\",\n      \"bookmark=${1:text}\",\n      \"bookmark options={${1:options}}\",\n      \"bookmark heading=${1:text}\",\n      \"bookmark heading options={${1:options}}\",\n      \"autosize\",\n      \"autosize width gap=\",\n      \"autosize height gap=\",\n      \"autosize gap=\",\n      \"autosize min scale=${1:fp expr}\",\n      \"autosize max scale=${1:fp expr}\",\n      \"left border=\",\n      \"bottom border=\",\n      \"right border=\",\n      \"top border=\",\n      \"horizontal border=\",\n      \"vertical border=\",\n      \"border=\",\n      \"xshift=\",\n      \"yshift=\",\n      \"set matches={${1:list}}\",\n      \"if match code={${1:key}}{${2:then}}{${3:else}}\",\n      \"if match set={${1:key}}{${2:then}}{${3:else}}\",\n      \"if match set bookmark={${1:key}}{${2:then}}{${3:else}}\",\n      \"disable match\",\n      \"overlay={${1:tikz code}}\",\n      \"overlay page number at=${1:position}\",\n      \"overlay page number at bottom=\",\n      \"overlay page number at top=\",\n      \"overlay page number options={${1:TikZ options}}\",\n      \"overlay page number options app={${1:TikZ options}}\",\n      \"no overlay\",\n      \"pagestyle=${1:page style}\",\n      \"zerofill=${1:digits}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/incgraph#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/includeRnw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includeRnw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeRnw{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeRnw\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeRnw[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includeRnw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rnwInputDirectory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnwInputDirectory{${1:directory%URL}}\"\n      }\n    },\n    {\n      \"name\": \"rnwKnittedSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnwKnittedSuffix{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rnwKnitlogFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnwKnitlogFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"rnwKnitheadName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnwKnitheadName{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"incl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incl{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"bs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublebs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"givenopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inspw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inspw{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"insp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"knitOutfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"purgeOutDir\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/includeRnw#c\": [\n      \"halt\",\n      \"build\",\n      \"new\",\n      \"knithead\",\n      \"noknithead\",\n      \"texenv\",\n      \"classicenv\"\n    ],\n    \"\\\\includeRnw\": [\n      \"h\",\n      \"f\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/includeRnw#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/inconsolata-nerd-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inconsolatanffamily\"\n    },\n    {\n      \"name\": \"inconsolatanfmonofamily\"\n    },\n    {\n      \"name\": \"inconsolatanfpropofamily\"\n    },\n    {\n      \"name\": \"textinconsolatanf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinconsolatanf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinconsolatanfmono\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinconsolatanfmono{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinconsolatanfpropo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinconsolatanfpropo{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inconsolata-nerd-font#c\": [\n      \"variant=${1|default,mono,propo|}\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inconsolata-nerd-font#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/inconsolata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"upquote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"altzero\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inconsolata#c\": [\n      \"scaled=${1:factor}\",\n      \"hyphenate\",\n      \"mono\",\n      \"nott\",\n      \"noupquote\",\n      \"var0\",\n      \"var1\",\n      \"varqu\",\n      \"narrow\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"extrasp=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inconsolata#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/index.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newindex{${1:author tag}}{${2:output ext}}{${3:input ext}}{${4:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newindex[${5:number cmd}]{${1:author tag}}{${2:output ext}}{${3:input ext}}{${4:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"renewindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewindex{${1:author tag}}{${2:output ext}}{${3:input ext}}{${4:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"renewindex\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"renewindex[${5:number cmd}]{${1:author tag}}{${2:output ext}}{${3:input ext}}{${4:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:tag}]\"\n      }\n    },\n    {\n      \"name\": \"index*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"index*{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:tag}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"shortindexingon\"\n    },\n    {\n      \"name\": \"shortindexingoff\"\n    },\n    {\n      \"name\": \"proofmodetrue\"\n    },\n    {\n      \"name\": \"proofmodefalse\"\n    },\n    {\n      \"name\": \"indexproofstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexproofstyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"disableindex\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"shortindexingon\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/indextools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makeindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makeindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\makeindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"indexsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\indexsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"splitindexoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splitindexoptions{${1:splitindex option}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"indexprologue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexprologue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexprologue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexprologue[${2:spacing}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[name\",\n        \"snippet\": \"printindex[name\"\n      }\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"innotenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innotenumber{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"innote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"innote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"nindex\",\n      \"if\": \"innote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nindex[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nindex\",\n      \"if\": \"innote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nnumberindex\",\n      \"if\": \"innote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nnumberindex[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nnumberindex\",\n      \"if\": \"innote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnumberindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nindex\",\n      \"if\": \"notenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nindex[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nindex\",\n      \"if\": \"notenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nnumberindex\",\n      \"if\": \"notenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nnumberindex[${2:name}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"nnumberindex\",\n      \"if\": \"notenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnumberindex{${1:entry}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/indextools#c\": [\n      \"makeindex\",\n      \"xindy\",\n      \"texindy\",\n      \"truexindy\",\n      \"upmendex\",\n      \"xindex\",\n      \"noautomatic\",\n      \"nonewpage\",\n      \"quiet\",\n      \"original\",\n      \"afterindex\",\n      \"innote\",\n      \"notenumber\",\n      \"splitindex\"\n    ],\n    \"\\\\makeindex\": [\n      \"name=${1:name}\",\n      \"title=${1:text}\",\n      \"program=${1|makeindex,xindy,texindy,truexindy,upmendex,xindex|}\",\n      \"options=${1:program options}\",\n      \"noautomatic\",\n      \"intoc\",\n      \"columns=${1:integer}\",\n      \"columnsep=\",\n      \"columnseprule\"\n    ],\n    \"\\\\indexsetup\": [\n      \"level=${1:section command}\",\n      \"toclevel=${1:section csname}\",\n      \"noclearpage\",\n      \"firstpagestyle=${1:page style}\",\n      \"headers={${1:left mark}}{${2:right mark}}\",\n      \"othercode=${1:code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/indextools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/infix-RPN.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"infixtoRPN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infixtoRPN{${1:infix expr}}\"\n      }\n    },\n    {\n      \"name\": \"RPN\"\n    },\n    {\n      \"name\": \"DeclareNewPSOperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewPSOperator{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inline-images.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inlineimg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inlineimg{${1:imagefile}}{${2:base64 image data}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inlinedef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Inline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Inline*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Inline**\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Expand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MultiExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MultiExpand{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"UnsafeExpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoExpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Super\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Recurse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xa\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inlinelabel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"otf\",\n      \"if\": \"circled\"\n    },\n    {\n      \"name\": \"refcount\",\n      \"if\": \"circled\"\n    },\n    {\n      \"name\": \"luatexja-otf\",\n      \"if\": \"luacircled\"\n    },\n    {\n      \"name\": \"refcount\",\n      \"if\": \"luacircled\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledref\",\n      \"if\": \"circled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"equationref\",\n      \"if\": \"circled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"circledref\",\n      \"if\": \"luacircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circledref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"equationref\",\n      \"if\": \"luacircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"inlinelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"inlinelabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinelabel*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"equationreset\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inlinelabel#c\": [\n      \"nospace\",\n      \"circled\",\n      \"luacircled\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inlinelabel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/innerscript.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/innerscript#c\": [\n      \"script\",\n      \"scriptscript\",\n      \"inner\",\n      \"close\",\n      \"cover\",\n      \"legacy-script\",\n      \"legacy-scriptscript\",\n      \"no-script\",\n      \"no-scriptscript\",\n      \"no-inner\",\n      \"no-close\",\n      \"no-cover\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/innerscript#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/inputenc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareInputMath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInputMath{${1:slot}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInputText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInputText{${1:slot}}{${2:math}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacter{${1:slot}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"inputencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputencoding{${1:encoding name%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definearmew\",\n      \"if\": \"armscii8\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definearmew{${1:character}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\": [\n      \"ascii\",\n      \"latin1\",\n      \"latin2\",\n      \"latin3\",\n      \"latin4\",\n      \"latin5\",\n      \"latin9\",\n      \"latin10\",\n      \"decmulti\",\n      \"cp850\",\n      \"cp852\",\n      \"cp858\",\n      \"cp437\",\n      \"cp437de\",\n      \"cp865\",\n      \"applemac\",\n      \"macce\",\n      \"next\",\n      \"cp1250\",\n      \"cp1252\",\n      \"cp1257\",\n      \"ansinew\",\n      \"utf8\",\n      \"utf8x\",\n      \"armscii8\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inputenc#c,\\\\inputencoding#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/inputnormalization.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inputtrc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dotracinginputs\"\n    },\n    {\n      \"name\": \"notracinginputs\"\n    },\n    {\n      \"name\": \"setinputindentunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinputindentunit{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"dotracingreturns\"\n    },\n    {\n      \"name\": \"dotracinginputsreturns\"\n    },\n    {\n      \"name\": \"notracingreturns\"\n    },\n    {\n      \"name\": \"notracinginputsreturns\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inputtrc#c\": [\n      \"i\",\n      \"r\",\n      \"ir\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inputtrc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/insdljs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"conv-xkv\"\n    },\n    {\n      \"name\": \"everyshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"flJSStr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flJSStr{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"flJSStr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"flJSStr[${3:options%keyvals}]{${1:cmd}}{${2:JS string%definition}}\",\n        \"keys\": [\n          \"\\\\flJSStr#c,\\\\flJSStr*#c,\\\\dlJSStr#c,\\\\dlJSStr*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flJSStr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"flJSStr*{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"flJSStr*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"flJSStr*[${3:options%keyvals}]{${1:cmd}}{${2:JS string%definition}}\",\n        \"keys\": [\n          \"\\\\flJSStr#c,\\\\flJSStr*#c,\\\\dlJSStr#c,\\\\dlJSStr*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defineJSStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineJSStr{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fieldJSStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fieldJSStr{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dlJSStr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dlJSStr{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dlJSStr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dlJSStr[${3:options%keyvals}]{${1:cmd}}{${2:JS string%definition}}\",\n        \"keys\": [\n          \"\\\\flJSStr#c,\\\\flJSStr*#c,\\\\dlJSStr#c,\\\\dlJSStr*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dlJSStr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dlJSStr*{${1:cmd}}{${2:JS string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dlJSStr*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dlJSStr*[${3:options%keyvals}]{${1:cmd}}{${2:JS string%definition}}\",\n        \"keys\": [\n          \"\\\\flJSStr#c,\\\\flJSStr*#c,\\\\dlJSStr#c,\\\\dlJSStr*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"eqbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jslit\"\n    },\n    {\n      \"name\": \"OpenAction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OpenAction{${1:action code}}\"\n      }\n    },\n    {\n      \"name\": \"thisPageAction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thisPageAction{${1:open script}}{${2:close script}}\"\n      }\n    },\n    {\n      \"name\": \"JS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JS{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"Named\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Named{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"makeJSspecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfmarkup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmarkuptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmarkupfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifthereisdjs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereisdjstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thereisdjsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfspaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfspacestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfspacesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifisdljs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isdljstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isdljsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdlfortypeset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlfortypesettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlfortypesetfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"insDLJS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:base name}}{${2:script name}}\"\n      }\n    },\n    {\n      \"name\": \"insDLJS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:JS var}]{${1:base name}}{${2:script name}}\"\n      }\n    },\n    {\n      \"name\": \"insDLJS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"insDLJS*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:JS var}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"newsegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:script name}}\"\n      }\n    },\n    {\n      \"name\": \"execJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"defineJS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"defineJS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:chngCats}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"defineJS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"defineJS*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:chngCats}]{${1:cmd}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/insdljs#c\": [\n      \"dvipsone\",\n      \"dvips\",\n      \"textures\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"nodljs\",\n      \"debug\",\n      \"execJS\",\n      \"nopro\",\n      \"reqjs\",\n      \"!reqjs\",\n      \"usealtadobe\"\n    ],\n    \"\\\\flJSStr#c,\\\\flJSStr*#c,\\\\dlJSStr#c,\\\\dlJSStr*#c\": [\n      \"quotes\",\n      \"noquotes\",\n      \"parens\",\n      \"noparens\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/insdljs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/inslrmaj.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"imajfamily\"\n    },\n    {\n      \"name\": \"textimaj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textimaj{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inslrmin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"iminfamily\"\n    },\n    {\n      \"name\": \"textimin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textimin{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/intcalc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"intcalcNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcInv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcInv{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcAbs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcSgn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcSgn{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcMin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcMin{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcMax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcMax{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcCmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcCmp{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcInc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcInc{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcDec{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcAdd{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcSub{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcShl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcShl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcShr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcShr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcMul{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcSqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcSqr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcFac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intcalcFac{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcPow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcPow{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcDiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcDiv{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"intcalcMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intcalcMod{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"intertabular\"\n    },\n    {\n      \"name\": \"interproportional\"\n    },\n    {\n      \"name\": \"interthin\"\n    },\n    {\n      \"name\": \"interlight\"\n    },\n    {\n      \"name\": \"interextralight\"\n    },\n    {\n      \"name\": \"intermedium\"\n    },\n    {\n      \"name\": \"intersemibold\"\n    },\n    {\n      \"name\": \"interextrabold\"\n    },\n    {\n      \"name\": \"interheavy\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"interfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upGamma\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upalpha\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"italpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/inter#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"tabular\",\n      \"proportional\",\n      \"mainfont\",\n      \"black\",\n      \"medium\",\n      \"semibold\",\n      \"light\",\n      \"extralight\",\n      \"thin\",\n      \"extrabold\",\n      \"heavy\",\n      \"default\",\n      \"sfdefault\",\n      \"math\",\n      \"nomath\",\n      \"mathgreek\",\n      \"nomathgreek\",\n      \"math-style=ISO,TeX\",\n      \"mathlining\",\n      \"mathproportional\",\n      \"mathtabular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/inter#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/interactiveanimation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"controlbutton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"controlbutton{${1:caption%text}}{${2:target frame}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\controlbutton#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"controlbutton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"controlbutton[${4:sequence file,start page}]{${1:caption%text}}{${2:target frame}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\controlbutton#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"controlbutton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"controlbutton[${4:sequence file,start page,end page}]{${1:caption%text}}{${2:target frame}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\controlbutton#c\"\n        ],\n        \"keyPos\": 3\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"animation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"aframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:frame name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"aframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:frame name}}{${2:imagefile,filepage}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\controlbutton#c\": [\n      \"X=${2|start,center,end,${1:coord}|}\",\n      \"Y=${2|start,center,end,${1:coord}|}\",\n      \"position=${1|left,right,above,below,center,from|}\",\n      \"width=${1:integer}\",\n      \"height=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"hidden\",\n      \"transparent\",\n      \"span=${1:milliseconds}\",\n      \"keep\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/interactiveplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datetime\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"stack\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iplot{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"iplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iplot[${2:options%keyvals}]{${1:function%definition}}\",\n        \"keys\": [\n          \"\\\\iplot\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"iplotdd\"\n    },\n    {\n      \"name\": \"iplotdd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{iplotdd},\\\\begin{iplotddd}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iplotddd\"\n    },\n    {\n      \"name\": \"iplotddd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{iplotdd},\\\\begin{iplotddd}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{iplotdd},\\\\begin{iplotddd}\": [\n      \"width=${1:number}\",\n      \"height=${1:number}\"\n    ],\n    \"\\\\iplot\": [\n      \"var={${1:name,start,end}}\",\n      \"param={${1:name,value,step,start,end}}\",\n      \"frange={${1:name,start,end}}\",\n      \"color=${1|black,white,red,green,blue,cyan,magenta,yellow,dark-gray,gray,light-gray|}\",\n      \"resolution=${1:resolution}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/interlinear.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ct\"\n    },\n    {\n      \"name\": \"DeclareInterlinearStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareInterlinearStyle{${1:name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ft\"\n    },\n    {\n      \"name\": \"gj\"\n    },\n    {\n      \"name\": \"gl\"\n    },\n    {\n      \"name\": \"interlinearstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interlinearstyle{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"li\"\n    },\n    {\n      \"name\": \"lt\"\n    },\n    {\n      \"name\": \"mb\"\n    },\n    {\n      \"name\": \"nt\"\n    },\n    {\n      \"name\": \"ps\"\n    },\n    {\n      \"name\": \"rf\"\n    },\n    {\n      \"name\": \"tx\"\n    },\n    {\n      \"name\": \"UseInterlinearStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseInterlinearStyle{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"interlinear\"\n    },\n    {\n      \"name\": \"interlinear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/interpreter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"interpretfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"interpretfile{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"interpretergobble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interpretergobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"interpreterinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interpreterinput{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/interval.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"interval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"interval{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"interval\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"interval[${3:options}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\interval\",\n          \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ointerval\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ointerval[${3:options}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linterval\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"linterval[${3:options}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rinterval\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rinterval[${3:options}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"intervalconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intervalconfig{${1:options}}\",\n        \"keys\": [\n          \"\\\\intervalconfig\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\interval\": [\n      \"open\",\n      \"open left\",\n      \"open right\"\n    ],\n    \"\\\\interval,\\\\ointerval,\\\\linterval,\\\\rinterval\": [\n      \"scaled\",\n      \"scaled=${1:scale command}\"\n    ],\n    \"\\\\intervalconfig\": [\n      \"separator symbol=${1:symbol}\",\n      \"left open fence=${1:symbol}\",\n      \"left closed fence=${1:symbol}\",\n      \"right open fence=${1:symbol}\",\n      \"right closed fence=${1:symbol}\",\n      \"soft open fences\",\n      \"colorize=${1:color commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/intopdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attachandlink\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attachandlink{${1:file}}{${2:description%text}}{${3:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"attachandlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"attachandlink[${4:filespec}]{${1:file}}{${2:description%text}}{${3:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"attachandlink\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"attachandlink{${1:file}}[${4:mime-type}]{${2:description%text}}{${3:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"attachandlink\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"attachandlink[${4:filespec}]{${1:file}}[${5:mime-type}]{${2:description%text}}{${3:link text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/inversepath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"inversepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inversepath{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"inversepath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inversepath*{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"absolutepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absolutepath{${1:path}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/invoice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProjectTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjectTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Fee\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Fee{${1:contents%text}}{${2:rate/unit}}{${3:count}}\"\n      }\n    },\n    {\n      \"name\": \"STFee\"\n    },\n    {\n      \"name\": \"EBC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EBC{${1:contents%text}}{${2:amount}}\"\n      }\n    },\n    {\n      \"name\": \"EFC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"EFC{${1:contents%text}}{${2:foreign currency}}{${3:amount}}{${4:conversion rate}}{${5:base currency result}}\"\n      }\n    },\n    {\n      \"name\": \"EBCi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EBCi{${1:contents%text}}{${2:amount}}\"\n      }\n    },\n    {\n      \"name\": \"EFCi\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"EFCi{${1:contents%text}}{${2:foreign currency}}{${3:amount}}{${4:conversion rate}}{${5:base currency result}}\"\n      }\n    },\n    {\n      \"name\": \"STExpenses\"\n    },\n    {\n      \"name\": \"Discount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Discount{${1:contents%text}}{${2:amount}}\"\n      }\n    },\n    {\n      \"name\": \"STProject\"\n    },\n    {\n      \"name\": \"BC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Flag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Null\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Project\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDiscount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExpenses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theProject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theVAT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Activity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Amount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Count\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Currency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Error\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Expense\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Expenses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Factor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fees\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubtotalExpenses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubtotalFee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubtotalProject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SumExpenses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SumFees\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SumVAT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Total\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnitRate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VAT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Warning\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"invoice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:base currency}}{${2:VAT}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/invoice#c\": [\n      \"afrikaans\",\n      \"dutch\",\n      \"english\",\n      \"estonian\",\n      \"finnish\",\n      \"french\",\n      \"german\",\n      \"italian\",\n      \"spanish\",\n      \"spanishe\",\n      \"spanishv\",\n      \"swedish\",\n      \"comma\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/invoice#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/invoice2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"invoiceoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invoiceoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/invoice2#c,\\\\invoiceoptions,\\\\begin{invoice}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"invoiceitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"invoiceitem{${1:amount}}{${2:item name%text}}{${3:unit price}}\"\n      }\n    },\n    {\n      \"name\": \"invoiceitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"invoiceitem[${4:VAT}]{${1:amount}}{${2:item name%text}}{${3:unit price}}\"\n      }\n    },\n    {\n      \"name\": \"invoicesingleitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"invoicesingleitem{${1:item name%text}}{${2:unit price}}\"\n      }\n    },\n    {\n      \"name\": \"invoicesingleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"invoicesingleitem[${3:VAT}]{${1:item name%text}}{${2:unit price}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"invoice\"\n    },\n    {\n      \"name\": \"invoice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/invoice2#c,\\\\invoiceoptions,\\\\begin{invoice}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/invoice2#c,\\\\invoiceoptions,\\\\begin{invoice}\": [\n      \"vat=${1:VAT}\",\n      \"included-vat\",\n      \"currency-symbol={${1:symbol}}\",\n      \"currency-fraction-digits=${1:digits}\",\n      \"currency-in-header\",\n      \"colorize\",\n      \"odd-color=\",\n      \"even-color=\",\n      \"title-color=\",\n      \"total-color=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/invoice2#c,\\\\invoiceoptions,\\\\begin{invoice}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/iodhbwm-templates.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"totalcount\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dhbwsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhbwsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\dhbwsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getAuthor\"\n    },\n    {\n      \"name\": \"getThesisTitle\"\n    },\n    {\n      \"name\": \"getThesisSecondTitle\"\n    },\n    {\n      \"name\": \"getLocation\"\n    },\n    {\n      \"name\": \"getCourseName\"\n    },\n    {\n      \"name\": \"getCourseId\"\n    },\n    {\n      \"name\": \"getStudentId\"\n    },\n    {\n      \"name\": \"getInstituteLogo\"\n    },\n    {\n      \"name\": \"getInstitute\"\n    },\n    {\n      \"name\": \"getInstituteSection\"\n    },\n    {\n      \"name\": \"getSupervisor\"\n    },\n    {\n      \"name\": \"getProcessingPeriod\"\n    },\n    {\n      \"name\": \"getDate\"\n    },\n    {\n      \"name\": \"getSubmissionDate\"\n    },\n    {\n      \"name\": \"getReviewer\"\n    },\n    {\n      \"name\": \"getBachelorDegree\"\n    },\n    {\n      \"name\": \"getThesisType\"\n    },\n    {\n      \"name\": \"getDHBWLocation\"\n    },\n    {\n      \"name\": \"getDHBWLogo\"\n    },\n    {\n      \"name\": \"listofappendices\"\n    },\n    {\n      \"name\": \"dhbwtitlepage\"\n    },\n    {\n      \"name\": \"dhbwdeclaration\"\n    },\n    {\n      \"name\": \"dhbwabstract\"\n    },\n    {\n      \"name\": \"tocchapterpagenumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocchapterpagenumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dhbwfrontmatter\"\n    },\n    {\n      \"name\": \"dhbwmainmatter\"\n    },\n    {\n      \"name\": \"dhbwprintintro\"\n    },\n    {\n      \"name\": \"appendixmore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftotalfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totaltables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftotaltables\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dhbwsetup\": [\n      \"titlepage=${1:filename}\",\n      \"declaration=${1:filename}\",\n      \"abstract=${1:filename}\",\n      \"thesis type=${1|SA,BA,PA|}\",\n      \"bachelor degree=${1|BoE,BoA,BoS|}\",\n      \"bachelor degree type=${1:text}\",\n      \"thesis title=${1:text}\",\n      \"thesis second title=${1:text}\",\n      \"author=${1:name}\",\n      \"date=${1:date}\",\n      \"submission date=${1:date}\",\n      \"location=${1:location}\",\n      \"institute=${1:institute}\",\n      \"institute section=${1:section}\",\n      \"institute logo=${1:imagefile}\",\n      \"student id=${1:id}\",\n      \"course/id=${1:id}\",\n      \"course/name=${1:name}\",\n      \"supervisor=${1:name}\",\n      \"processing period=${1:period}\",\n      \"reviewer=${1:name}\",\n      \"dhbw location=${1:location}\",\n      \"dhbw logo=${1:imagefile}\",\n      \"intro/print titlepage\",\n      \"intro/print declaration\",\n      \"intro/print abstract\",\n      \"intro/print toc\",\n      \"intro/print lof\",\n      \"intro/print lot\",\n      \"intro/print all lists\",\n      \"intro/print all\",\n      \"intro/append custom content=${1:content}\",\n      \"intro/roman page numbers\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ionumbers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ionumbersstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ionumbersstyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/ionumbers#c,\\\\ionumbersstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ionumbersresetstyle\"\n    },\n    {\n      \"name\": \"newionumbersthousands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newionumbersthousands{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newionumbersdecimal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newionumbersdecimal{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newionumbersthousandths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newionumbersthousandths{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newionumbersexponent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newionumbersexponent{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewionumbersthousands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewionumbersthousands{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewionumbersdecimal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewionumbersdecimal{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewionumbersthousandths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewionumbersthousandths{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewionumbersexponent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewionumbersexponent{${1:value}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ionumbers\"\n    },\n    {\n      \"name\": \"endionumbers\"\n    },\n    {\n      \"name\": \"ionumbersoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ionumbersoff{${1:content}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ionumbers#c,\\\\ionumbersstyle\": [\n      \"comma=${1|ignore,decimal,thousands,default|}\",\n      \"point=${1|ignore,decimal,thousands,default|}\",\n      \"thousands=${1|none,point,comma,punctpoint,punctcomma,apostrophe,phantom,space,default|}\",\n      \"decimal=${1|none,point,comma,punctpoint,punctcomma,apostrophe,phantom,space,default|}\",\n      \"thousandths=${1|none,point,comma,punctpoint,punctcomma,apostrophe,phantom,space,default|}\",\n      \"exponent=${1|none,original,ite,itE,rme,rmE,timestento,cdottento,wedge,default|}\",\n      \"autothousands\",\n      \"autothousandths\",\n      \"grplenthousands=${1:number}\",\n      \"grplenthousandths=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ionumbers#c,\\\\ionumbersstyle\"\n  ]\n}"
  },
  {
    "path": "dev/packages/iopams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"balpha\"\n    },\n    {\n      \"name\": \"bbeta\"\n    },\n    {\n      \"name\": \"bgamma\"\n    },\n    {\n      \"name\": \"bdelta\"\n    },\n    {\n      \"name\": \"bepsilon\"\n    },\n    {\n      \"name\": \"bzeta\"\n    },\n    {\n      \"name\": \"bfeta\"\n    },\n    {\n      \"name\": \"btheta\"\n    },\n    {\n      \"name\": \"biota\"\n    },\n    {\n      \"name\": \"bkappa\"\n    },\n    {\n      \"name\": \"blambda\"\n    },\n    {\n      \"name\": \"bmu\"\n    },\n    {\n      \"name\": \"bnu\"\n    },\n    {\n      \"name\": \"bxi\"\n    },\n    {\n      \"name\": \"bpi\"\n    },\n    {\n      \"name\": \"brho\"\n    },\n    {\n      \"name\": \"bsigma\"\n    },\n    {\n      \"name\": \"btau\"\n    },\n    {\n      \"name\": \"bupsilon\"\n    },\n    {\n      \"name\": \"bphi\"\n    },\n    {\n      \"name\": \"bchi\"\n    },\n    {\n      \"name\": \"bpsi\"\n    },\n    {\n      \"name\": \"bomega\"\n    },\n    {\n      \"name\": \"bvarepsilon\"\n    },\n    {\n      \"name\": \"bvartheta\"\n    },\n    {\n      \"name\": \"bvaromega\"\n    },\n    {\n      \"name\": \"bvarrho\"\n    },\n    {\n      \"name\": \"bvarzeta\"\n    },\n    {\n      \"name\": \"bvarsigma\"\n    },\n    {\n      \"name\": \"bvarphi\"\n    },\n    {\n      \"name\": \"bGamma\"\n    },\n    {\n      \"name\": \"bDelta\"\n    },\n    {\n      \"name\": \"bTheta\"\n    },\n    {\n      \"name\": \"bLambda\"\n    },\n    {\n      \"name\": \"bXi\"\n    },\n    {\n      \"name\": \"bPi\"\n    },\n    {\n      \"name\": \"bSigma\"\n    },\n    {\n      \"name\": \"bUpsilon\"\n    },\n    {\n      \"name\": \"bPhi\"\n    },\n    {\n      \"name\": \"bPsi\"\n    },\n    {\n      \"name\": \"bOmega\"\n    },\n    {\n      \"name\": \"bpartial\"\n    },\n    {\n      \"name\": \"bell\"\n    },\n    {\n      \"name\": \"bimath\"\n    },\n    {\n      \"name\": \"bjmath\"\n    },\n    {\n      \"name\": \"binfty\"\n    },\n    {\n      \"name\": \"bnabla\"\n    },\n    {\n      \"name\": \"bdot\"\n    },\n    {\n      \"name\": \"fulldiamond\"\n    },\n    {\n      \"name\": \"fullstar\"\n    },\n    {\n      \"name\": \"fulltriangle\"\n    },\n    {\n      \"name\": \"fulltriangledown\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ipa.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ain\"\n    },\n    {\n      \"name\": \"babygamma\"\n    },\n    {\n      \"name\": \"barb\"\n    },\n    {\n      \"name\": \"bard\"\n    },\n    {\n      \"name\": \"bari\"\n    },\n    {\n      \"name\": \"barl\"\n    },\n    {\n      \"name\": \"baro\"\n    },\n    {\n      \"name\": \"barp\"\n    },\n    {\n      \"name\": \"barsci\"\n    },\n    {\n      \"name\": \"barscu\"\n    },\n    {\n      \"name\": \"baru\"\n    },\n    {\n      \"name\": \"clickb\"\n    },\n    {\n      \"name\": \"clickc\"\n    },\n    {\n      \"name\": \"clickt\"\n    },\n    {\n      \"name\": \"closedniomega\"\n    },\n    {\n      \"name\": \"closedrevepsilon\"\n    },\n    {\n      \"name\": \"corner\"\n    },\n    {\n      \"name\": \"crossb\"\n    },\n    {\n      \"name\": \"crossd\"\n    },\n    {\n      \"name\": \"crossh\"\n    },\n    {\n      \"name\": \"crossnilambda\"\n    },\n    {\n      \"name\": \"curlyc\"\n    },\n    {\n      \"name\": \"curlyesh\"\n    },\n    {\n      \"name\": \"curlyyogh\"\n    },\n    {\n      \"name\": \"curlyz\"\n    },\n    {\n      \"name\": \"dlbari\"\n    },\n    {\n      \"name\": \"downp\"\n    },\n    {\n      \"name\": \"downt\"\n    },\n    {\n      \"name\": \"dz\"\n    },\n    {\n      \"name\": \"ejective\"\n    },\n    {\n      \"name\": \"eng\"\n    },\n    {\n      \"name\": \"er\"\n    },\n    {\n      \"name\": \"esh\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"flapr\"\n    },\n    {\n      \"name\": \"glotstop\"\n    },\n    {\n      \"name\": \"halflength\"\n    },\n    {\n      \"name\": \"hookb\"\n    },\n    {\n      \"name\": \"hookd\"\n    },\n    {\n      \"name\": \"hookg\"\n    },\n    {\n      \"name\": \"hookg\"\n    },\n    {\n      \"name\": \"hookh\"\n    },\n    {\n      \"name\": \"hookheng\"\n    },\n    {\n      \"name\": \"hookrevepsilon\"\n    },\n    {\n      \"name\": \"hv\"\n    },\n    {\n      \"name\": \"inva\"\n    },\n    {\n      \"name\": \"invf\"\n    },\n    {\n      \"name\": \"invglotstop\"\n    },\n    {\n      \"name\": \"invh\"\n    },\n    {\n      \"name\": \"invlegr\"\n    },\n    {\n      \"name\": \"invm\"\n    },\n    {\n      \"name\": \"invr\"\n    },\n    {\n      \"name\": \"invscr\"\n    },\n    {\n      \"name\": \"invscripta\"\n    },\n    {\n      \"name\": \"invv\"\n    },\n    {\n      \"name\": \"invw\"\n    },\n    {\n      \"name\": \"invy\"\n    },\n    {\n      \"name\": \"ipagamma\"\n    },\n    {\n      \"name\": \"labdentalnas\"\n    },\n    {\n      \"name\": \"latfric\"\n    },\n    {\n      \"name\": \"leftp\"\n    },\n    {\n      \"name\": \"leftt\"\n    },\n    {\n      \"name\": \"legm\"\n    },\n    {\n      \"name\": \"legr\"\n    },\n    {\n      \"name\": \"length\"\n    },\n    {\n      \"name\": \"lz\"\n    },\n    {\n      \"name\": \"midtilde\"\n    },\n    {\n      \"name\": \"nialpha\"\n    },\n    {\n      \"name\": \"nibeta\"\n    },\n    {\n      \"name\": \"nichi\"\n    },\n    {\n      \"name\": \"niepsilon\"\n    },\n    {\n      \"name\": \"nigamma\"\n    },\n    {\n      \"name\": \"niiota\"\n    },\n    {\n      \"name\": \"nilambda\"\n    },\n    {\n      \"name\": \"niomega\"\n    },\n    {\n      \"name\": \"niphi\"\n    },\n    {\n      \"name\": \"nisigma\"\n    },\n    {\n      \"name\": \"nitheta\"\n    },\n    {\n      \"name\": \"niupsilon\"\n    },\n    {\n      \"name\": \"nj\"\n    },\n    {\n      \"name\": \"oo\"\n    },\n    {\n      \"name\": \"open\"\n    },\n    {\n      \"name\": \"openo\"\n    },\n    {\n      \"name\": \"overring\"\n    },\n    {\n      \"name\": \"polishhook\"\n    },\n    {\n      \"name\": \"reve\"\n    },\n    {\n      \"name\": \"reveject\"\n    },\n    {\n      \"name\": \"revepsilon\"\n    },\n    {\n      \"name\": \"revglotstop\"\n    },\n    {\n      \"name\": \"rightp\"\n    },\n    {\n      \"name\": \"rightt\"\n    },\n    {\n      \"name\": \"scd\"\n    },\n    {\n      \"name\": \"scg\"\n    },\n    {\n      \"name\": \"schwa\"\n    },\n    {\n      \"name\": \"sci\"\n    },\n    {\n      \"name\": \"scn\"\n    },\n    {\n      \"name\": \"scr\"\n    },\n    {\n      \"name\": \"scripta\"\n    },\n    {\n      \"name\": \"scriptg\"\n    },\n    {\n      \"name\": \"scriptv\"\n    },\n    {\n      \"name\": \"scu\"\n    },\n    {\n      \"name\": \"scy\"\n    },\n    {\n      \"name\": \"secstress\"\n    },\n    {\n      \"name\": \"slashb\"\n    },\n    {\n      \"name\": \"slashc\"\n    },\n    {\n      \"name\": \"slashd\"\n    },\n    {\n      \"name\": \"slashu\"\n    },\n    {\n      \"name\": \"stress\"\n    },\n    {\n      \"name\": \"syllabic\"\n    },\n    {\n      \"name\": \"taild\"\n    },\n    {\n      \"name\": \"tailinvr\"\n    },\n    {\n      \"name\": \"taill\"\n    },\n    {\n      \"name\": \"tailn\"\n    },\n    {\n      \"name\": \"tailr\"\n    },\n    {\n      \"name\": \"tails\"\n    },\n    {\n      \"name\": \"tailt\"\n    },\n    {\n      \"name\": \"tailz\"\n    },\n    {\n      \"name\": \"tesh\"\n    },\n    {\n      \"name\": \"thorn\"\n    },\n    {\n      \"name\": \"tildel\"\n    },\n    {\n      \"name\": \"underdots\"\n    },\n    {\n      \"name\": \"underring\"\n    },\n    {\n      \"name\": \"undertilde\"\n    },\n    {\n      \"name\": \"underwedge\"\n    },\n    {\n      \"name\": \"upp\"\n    },\n    {\n      \"name\": \"upt\"\n    },\n    {\n      \"name\": \"yogh\"\n    },\n    {\n      \"name\": \"dental\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dental{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"underarch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underarch{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"diatop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"diatop[${1:diacritics|character}]\"\n      }\n    },\n    {\n      \"name\": \"diaunder\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"diaunder[${1:diacritics|character}]\"\n      }\n    },\n    {\n      \"name\": \"ipa\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ipaex-type1.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ipxmfamily\"\n    },\n    {\n      \"name\": \"ipxgfamily\"\n    },\n    {\n      \"name\": \"textipxm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textipxm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textipxg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textipxg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CJKipxmfamily\"\n    },\n    {\n      \"name\": \"CJKipxgfamily\"\n    },\n    {\n      \"name\": \"textCJKipxm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textCJKipxm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textCJKipxg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textCJKipxg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ipxmsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ipxmsymbol{${1:Unicode point}}\"\n      }\n    },\n    {\n      \"name\": \"ipxgsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ipxgsymbol{${1:Unicode point}}\"\n      }\n    },\n    {\n      \"name\": \"CJKUsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKUsymbol{${1:CJK family}}{${2:Unicode point}}\"\n      }\n    },\n    {\n      \"name\": \"ipxmReferenceMark\"\n    },\n    {\n      \"name\": \"ipxmCommandKey\"\n    },\n    {\n      \"name\": \"ipxmReturnKey\"\n    },\n    {\n      \"name\": \"ipxmVisibleSpace\"\n    },\n    {\n      \"name\": \"ipxmvarSquare\"\n    },\n    {\n      \"name\": \"ipxmSquare\"\n    },\n    {\n      \"name\": \"ipxmvarTriangle\"\n    },\n    {\n      \"name\": \"ipxmTriangle\"\n    },\n    {\n      \"name\": \"ipxmvarTriangleDown\"\n    },\n    {\n      \"name\": \"ipxmTriangleDown\"\n    },\n    {\n      \"name\": \"ipxmvarLozenge\"\n    },\n    {\n      \"name\": \"ipxmLozenge\"\n    },\n    {\n      \"name\": \"ipxmCircle\"\n    },\n    {\n      \"name\": \"ipxmBullsEye\"\n    },\n    {\n      \"name\": \"ipxmvarCircle\"\n    },\n    {\n      \"name\": \"ipxmSun\"\n    },\n    {\n      \"name\": \"ipxmCloud\"\n    },\n    {\n      \"name\": \"ipxmUmbrella\"\n    },\n    {\n      \"name\": \"ipxmSnowman\"\n    },\n    {\n      \"name\": \"ipxmvarStar\"\n    },\n    {\n      \"name\": \"ipxmStar\"\n    },\n    {\n      \"name\": \"ipxmPhone\"\n    },\n    {\n      \"name\": \"ipxmGoteMark\"\n    },\n    {\n      \"name\": \"ipxmSenteMark\"\n    },\n    {\n      \"name\": \"ipxmRightHand\"\n    },\n    {\n      \"name\": \"ipxmSpade\"\n    },\n    {\n      \"name\": \"ipxmHeart\"\n    },\n    {\n      \"name\": \"ipxmDiamond\"\n    },\n    {\n      \"name\": \"ipxmClub\"\n    },\n    {\n      \"name\": \"ipxmvarSpade\"\n    },\n    {\n      \"name\": \"ipxmvarHeart\"\n    },\n    {\n      \"name\": \"ipxmvarDiamond\"\n    },\n    {\n      \"name\": \"ipxmvarClub\"\n    },\n    {\n      \"name\": \"ipxmvarSnowman\"\n    },\n    {\n      \"name\": \"ipxmBlackSnowman\"\n    },\n    {\n      \"name\": \"ipxmCheckmark\"\n    },\n    {\n      \"name\": \"ipxmPostalMark\"\n    },\n    {\n      \"name\": \"ipxmGeta\"\n    },\n    {\n      \"name\": \"ipxmPostal\"\n    },\n    {\n      \"name\": \"ipxmvarPostal\"\n    },\n    {\n      \"name\": \"ipxmvarPostalMark\"\n    },\n    {\n      \"name\": \"ipxmUta\"\n    },\n    {\n      \"name\": \"extendipaextypeI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextendipaextypeI\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ipsum\"\n    },\n    {\n      \"name\": \"ipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ipsum[${1:range}]\"\n      }\n    },\n    {\n      \"name\": \"ipsum<keyvals>\"\n    },\n    {\n      \"name\": \"ipsum<keyvals>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ipsum<keyvals>[${1:range}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ipsum\": [\n      \"Lang=${1|LAT,EN,FR,DE,ES,PT,IT,NL|}\",\n      \"Type=${1|par,sent,enum,item|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/isodate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"substr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isodate\"\n    },\n    {\n      \"name\": \"numdate\"\n    },\n    {\n      \"name\": \"numdate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"numdate[${1:counter}]\"\n      }\n    },\n    {\n      \"name\": \"shortdate\"\n    },\n    {\n      \"name\": \"TeXdate\"\n    },\n    {\n      \"name\": \"origdate\"\n    },\n    {\n      \"name\": \"shortorigdate\"\n    },\n    {\n      \"name\": \"Romandate\"\n    },\n    {\n      \"name\": \"romandate\"\n    },\n    {\n      \"name\": \"shortRomandate\"\n    },\n    {\n      \"name\": \"shortromandate\"\n    },\n    {\n      \"name\": \"printyearoff\"\n    },\n    {\n      \"name\": \"printyearon\"\n    },\n    {\n      \"name\": \"printdayoff\"\n    },\n    {\n      \"name\": \"printdayon\"\n    },\n    {\n      \"name\": \"printdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"printdateTeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printdateTeX{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"daterange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"daterange{${1:start date}}{${2:end date}}\"\n      }\n    },\n    {\n      \"name\": \"isodash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isodash{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"isospacebeforeday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isospacebeforeday{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"isospacebeforemonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isospacebeforemonth{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"isospacebeforeyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isospacebeforeyear{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"shortyearsign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortyearsign{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"isorangesign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isorangesign{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"daymonthsepgerman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"daymonthsepgerman{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"monthyearsepgerman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monthyearsepgerman{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"monthyearsepnodaygerman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monthyearsepnodaygerman{${1:space cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cleanlookdateon\"\n    },\n    {\n      \"name\": \"cleanlookdateoff\"\n    },\n    {\n      \"name\": \"ifisotwodigitday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isotwodigitdaytrue\"\n    },\n    {\n      \"name\": \"isotwodigitdayfalse\"\n    },\n    {\n      \"name\": \"twodigitarabic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twodigitarabic{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"dateinputformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dateinputformat{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\dateinputformat\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/isodate#c\": [\n      \"iso\",\n      \"num\",\n      \"short\",\n      \"orig\",\n      \"shortorig\",\n      \"Roman\",\n      \"roman\",\n      \"shortRoman\",\n      \"shortroman\",\n      \"american\",\n      \"austrian\",\n      \"british\",\n      \"danish\",\n      \"english\",\n      \"french\",\n      \"german\",\n      \"naustrian\",\n      \"ngerman\",\n      \"italian\",\n      \"norsk\",\n      \"norwegian\",\n      \"swedish\",\n      \"UKenglish\",\n      \"USenglish\",\n      \"inputenglish\",\n      \"inputbritish\",\n      \"inputUKenglish\",\n      \"inputamerican\",\n      \"inputUSenglish\",\n      \"inputtex\",\n      \"inputTeX\",\n      \"inputlatex\",\n      \"inputLaTeX\",\n      \"cleanlook\",\n      \"nocleanlook\",\n      \"printdayon\",\n      \"printdayoff\"\n    ],\n    \"\\\\dateinputformat\": [\n      \"english\",\n      \"UKenglish\",\n      \"british\",\n      \"american\",\n      \"USenglish\",\n      \"tex\",\n      \"latex\",\n      \"TeX\",\n      \"LaTeX\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isodate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isomath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fixmath\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathboldsans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathboldsans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"if\": \"OMLmathsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsans\",\n      \"if\": \"OMLmathsfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"if\": \"OMLmathsfit=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsans\",\n      \"if\": \"OMLmathsfit=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vectorsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorsym{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"matrixsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixsym{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"tensorsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensorsym{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/isomath#c\": [\n      \"rmdefault=${1:font family}\",\n      \"sfdefault=${1|cmbr,fav,hvm,iwona,jkpss,llcmss|}\",\n      \"scaled=${1:factor}\",\n      \"reuseMathAlphabets\",\n      \"OMLmathrm\",\n      \"OMLmathbf\",\n      \"OMLmathsf\",\n      \"OMLmathsfit\",\n      \"OMLmathtt\",\n      \"OMLmathsans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isomath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isonums.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ZifferAn\"\n    },\n    {\n      \"name\": \"ZifferAus\"\n    },\n    {\n      \"name\": \"ZifferPunktAn\"\n    },\n    {\n      \"name\": \"ZifferPunktAus\"\n    },\n    {\n      \"name\": \"ZifferStrichAn\"\n    },\n    {\n      \"name\": \"ZifferStrichAus\"\n    },\n    {\n      \"name\": \"ZifferLeer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZifferStrich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EuroZiffer\"\n    },\n    {\n      \"name\": \"AngloZiffer\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/isonums#c\": [\n      \"euro\",\n      \"anglo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isonums#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isopt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ISO\"\n    },\n    {\n      \"name\": \"THE\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/isopt#c\": [\n      \"space=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isopt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isorot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"lscape\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rotdriver\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotdriver{${1:driver%keyvals}}\",\n        \"keys\": [\n          \"\\\\rotdriver#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clockwise\"\n    },\n    {\n      \"name\": \"counterclockwise\"\n    },\n    {\n      \"name\": \"figuresright\"\n    },\n    {\n      \"name\": \"figuresleft\"\n    },\n    {\n      \"name\": \"rotcaption\"\n    },\n    {\n      \"name\": \"controtcaption\"\n    },\n    {\n      \"name\": \"rotcapfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotatedirection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatedirection{${1:direction}}\"\n      }\n    },\n    {\n      \"name\": \"turnbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"turnbox{${1:angle}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"therpage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sideways\"\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sidewaystable\"\n    },\n    {\n      \"name\": \"sidewaystable*\"\n    },\n    {\n      \"name\": \"sidewaysfigure\"\n    },\n    {\n      \"name\": \"sidewaysfigure*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/isorot#c\": [\n      \"errorshow\",\n      \"debugshow\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"hiderotate\",\n      \"hidescale\"\n    ],\n    \"\\\\rotdriver#c\": [\n      \"dvipdf\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dvitops\",\n      \"dviwindo\",\n      \"pctex32\",\n      \"pctexps\",\n      \"pubps\",\n      \"textures\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isorot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isosafety.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Isosign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Isosign{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/isosafety#c\": [\n      \"fullpath=${1:file path}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/isosafety#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/isotope.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"isotope\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isotope{${1:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"isotope\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isotope[${2:nucleon num%formula}]{${1:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"isotope\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"isotope[${2:nucleon num%formula}][${3:atomic num%formula}]{${1:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"isotopestyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/issuulinks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"issuusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\issuusetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newISSUUlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newISSUUlink{${1:name}}{${2:abspage}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\issuusetup\": [\n      \"prefix=${1:URL prefix}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/itnumpar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numeroinparole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numeroinparole{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Numeroinparole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numeroinparole{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinalem{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinalef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordinalem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordinalem{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordinalef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordinalef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"printnumeroinparole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printnumeroinparole{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printNumeroinparole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printNumeroinparole{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printordinalem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printordinalem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printordinalef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printordinalef{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printOrdinalem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printOrdinalem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"printOrdinalef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printOrdinalef{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/iwona.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/iwona#c\": [\n      \"regular\",\n      \"light\",\n      \"condensed\",\n      \"mathnoalias\",\n      \"math\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/iwona#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/iwonamath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DefineIwonaMathVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineIwonaMathVersion{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DefineIwonaMathVersion\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/iwonamath#c\": [\n      \"scale=${1:factor}\",\n      \"light\",\n      \"condensed\",\n      \"delimitershack\",\n      \"standardversions\"\n    ],\n    \"\\\\DefineIwonaMathVersion\": [\n      \"name=${1:version name}\",\n      \"light\",\n      \"condensed\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/iwonamath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jamtimes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"eucal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jamtimes#c\": [\n      \"scaled=${1:factor}\",\n      \"sfscaled=${1:factor}\",\n      \"amsfontsscaled=${1:factor}\",\n      \"sffamily=${1:family}\",\n      \"ttfamily=${1:family}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jamtimes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/javascripthttp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"insdljs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SimpleTextField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SimpleTextField{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"SimpleTextFieldReadonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SimpleTextFieldReadonly{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"SimpleGET\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SimpleGET{${1:id}}{${2:label}}{${3:URL}}{${4:keypath}}\"\n      }\n    },\n    {\n      \"name\": \"SimpleGET\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"SimpleGET{${1:id}}{${2:label}}{${3:URL}}{${4:keypath}}[${5:target}]\"\n      }\n    },\n    {\n      \"name\": \"SimplePOST\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"SimplePOST{${1:id}}{${2:label}}{${3:URL}}{${4:keypath}}{${5:factory}}{${6:errors}}\"\n      }\n    },\n    {\n      \"name\": \"SimplePOST\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}[]\",\n        \"snippet\": \"SimplePOST{${1:id}}{${2:label}}{${3:URL}}{${4:keypath}}{${5:factory}}{${6:errors}}[${7:target}]\"\n      }\n    },\n    {\n      \"name\": \"ErrorField\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jiazhu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jiazhu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jiazhu{${1:夹注内容%text}}\"\n      }\n    },\n    {\n      \"name\": \"jiazhu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jiazhu[${2:键值选项%keyvals}]{${1:夹注内容%text}}\",\n        \"keys\": [\n          \"\\\\jiazhu,\\\\jiazhuset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jiazhuset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jiazhuset{${1:键值选项%keyvals}}\",\n        \"keys\": [\n          \"\\\\jiazhu,\\\\jiazhuset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\jiazhu,\\\\jiazhuset\": [\n      \"format=${1:格式命令}\",\n      \"beforeskip=${1:弹性间距}\",\n      \"afterskip=${1:弹性间距}\",\n      \"opening=${1:前置内容}\",\n      \"closing=${1:后置内容}\",\n      \"ideohtratio=${1:数字}\",\n      \"jzideohtratio=${1:数字}\",\n      \"ratio=${1:数字}\",\n      \"bracketratio=${1:数字}\",\n      \"baselineshift=\",\n      \"lines=${1:正整数}\",\n      \"shortcut=${1:字符}\",\n      \"shortcut-=${1:字符列表}\",\n      \"halign=${1|justified,left,right,centered,distributed|}\",\n      \"valign=${1|middle,top,bottom|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jigsaw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"piece\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"piece{${1:bottom}}{${2:right}}{${3:top}}{${4:left}}\"\n      }\n    },\n    {\n      \"name\": \"piece\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"piece[${5:color}]{${1:bottom}}{${2:right}}{${3:top}}{${4:left}}\"\n      }\n    },\n    {\n      \"name\": \"tile\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tile{${1:bottom}}{${2:right}}{${3:top}}{${4:left}}\"\n      }\n    },\n    {\n      \"name\": \"tile\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"tile[${5:color}]{${1:bottom}}{${2:right}}{${3:top}}{${4:left}}\"\n      }\n    },\n    {\n      \"name\": \"jigsaw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jigsaw{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"side\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"side{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"bottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halfpiece\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"halfpiece{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"xmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ymax\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jiwonlipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jiwon\"\n    },\n    {\n      \"name\": \"jiwon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jiwon[${1:num/char}]\"\n      }\n    },\n    {\n      \"name\": \"jiwon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jiwon[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"jiwon*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jiwon*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jiwon*[${1:num/char}]\"\n      }\n    },\n    {\n      \"name\": \"jiwon*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jiwon*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"jiwondef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jiwondef{${1:cmd}}{${2:jiwon no.}}\"\n      }\n    },\n    {\n      \"name\": \"jiwonparnumberon\"\n    },\n    {\n      \"name\": \"jiwonparnumberoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jiwonlipsum#c\": [\n      \"nopar\",\n      \"numbers\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jiwonlipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jkmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"physics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oldsubset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsupset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stsubset\",\n      \"if\": \"subsetorder\"\n    },\n    {\n      \"name\": \"stsupset\",\n      \"if\": \"subsetorder\"\n    },\n    {\n      \"name\": \"stsubset\",\n      \"if\": \"subsetnonorder\"\n    },\n    {\n      \"name\": \"stsupset\",\n      \"if\": \"subsetnonorder\"\n    },\n    {\n      \"name\": \"stsubset\",\n      \"if\": \"subsetnonamb\"\n    },\n    {\n      \"name\": \"stsupset\",\n      \"if\": \"subsetnonamb\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"F\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"Aff\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"PP\",\n      \"if\": \"bbsets\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"F\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"Aff\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"PP\",\n      \"if\": \"bfsets\"\n    },\n    {\n      \"name\": \"apmqty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"apmqty{${1:n}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"ipmqty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ipmqty{${1:m}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"lparens\"\n    },\n    {\n      \"name\": \"rparens\"\n    },\n    {\n      \"name\": \"oointerval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oointerval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ccinterval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccinterval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ocinterval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocinterval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cointerval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cointerval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"where\"\n    },\n    {\n      \"name\": \"restr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stirlingfirstkind\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stirlingfirstkind{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"stirlingsecondkind\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stirlingsecondkind{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"legendre\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legendre{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"jacobi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jacobi{${1:top}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"mobius\"\n    },\n    {\n      \"name\": \"cech\"\n    },\n    {\n      \"name\": \"erdos\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"system\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"augmentedmatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:n}}{${2:m}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/jkmath#c\": [\n      \"subsetorder\",\n      \"subsetnonorder\",\n      \"subsetnonamb\",\n      \"bbsets\",\n      \"bfsets\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jkmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jlreq-deluxe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"pxjodel\"\n    },\n    {\n      \"name\": \"mlutf\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"mlcid\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rubydefault\",\n      \"if\": \"expert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyfamily\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"rubykatuji\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"mgdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathmg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mgfamily\"\n    },\n    {\n      \"name\": \"textmg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"propshape\"\n    },\n    {\n      \"name\": \"ebseries\"\n    },\n    {\n      \"name\": \"ltseries\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jlreq-deluxe#c\": [\n      \"hanging_punctuation\",\n      \"zenkakunibu_nibu\",\n      \"prefix=${1:string}\",\n      \"nomacros\",\n      \"noreplace\",\n      \"bold\",\n      \"expert\",\n      \"deluxe=false\",\n      \"multi\",\n      \"uplatex\",\n      \"autodetect\",\n      \"jis2004\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jlreq-deluxe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jlreq-trimmarks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"jlreq-helpers\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jlreqtrimmarkssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jlreqtrimmarkssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\jlreqtrimmarkssetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jlreq-trimmarks#c\": [\n      \"platex\",\n      \"uplatex\",\n      \"lualatex\",\n      \"dvipdfmx\",\n      \"dvips\",\n      \"dviout\",\n      \"trimmarks_paper=${1:paper type}\",\n      \"trimmarks_paper={${1:width,height}}\",\n      \"trimmarks_paper=${1:paper type}+{${2:width,height}}\",\n      \"landscape\",\n      \"show\",\n      \"show={${1:trimmarks, banner, digital, and/or no}}\",\n      \"bleed_margin={${1:top=<length>,bottom=<length>,gutter=<length>,fore-edge=<length>}}\"\n    ],\n    \"\\\\jlreqtrimmarkssetup#c\": [\n      \"banner={${1:specs}}\",\n      \"trimmarks_width=\",\n      \"color=\",\n      \"trimmarks_pattern={${1:options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jlreq-trimmarks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jmlrutils.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"aliascnt\",\n      \"if\": \"cleveref\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"algocfconts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"algocfconts{${1:label}}{${2:caption%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algorithmref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altdescriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altdescriptionlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"appendixref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"appendixrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axiomref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"axiomref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"axiomrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axiomsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjectureref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conjectureref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"conjecturerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjecturesrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corollaryref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"corollaryrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollarysrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definitionref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"definitionrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"equationrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exampleref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"examplerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplesrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureconts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"figureconts{${1:label}}{${2:caption%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"figureref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"figurerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuresrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatconts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"floatconts{${1:label}}{${2:caption%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifjmlrcleveref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifjmlrutilsmaths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifjmlrutilssubfloats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifjmlrutilstheorems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftablecaptiontop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeteximage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeteximage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includeteximage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includeteximage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeteximage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"jmlralgorule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrBlackBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrclevereffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrclevereftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrminsubcaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrprehyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrQED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilsmathsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilsmathstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilssubfloatsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilssubfloatstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilstheoremsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmlrutilstheoremstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lemmaref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"lemmarefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmasrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mailto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailto{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"objectref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"objectref{${1:labellist}}{${2:singular name}}{${3:plural name}}{${4:before}}{${5:after}}\"\n      }\n    },\n    {\n      \"name\": \"orgvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"partrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"remarkref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"remarkrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarksrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"sectionrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"subfigref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:title%text}][${3:valign%keyvals}]{${1:contents%text}}\",\n        \"keys\": [\n          \"\\\\subfigure,\\\\subtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:title%text}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigurelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigurelabel{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtable[${2:title%text}][${3:valign%keyvals}]{${1:contents%text}}\",\n        \"keys\": [\n          \"\\\\subfigure,\\\\subtable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtable[${2:title%text}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtable{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtablelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtablelabel{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"subtabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtabref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaptiontopfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablecaptiontoptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tableconts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tableconts{${1:label}}{${2:caption%text}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"tablerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaxiom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconjecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecorollary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedefinition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelemma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorembodyfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorembodyfont{${1:font declarations}}\"\n      }\n    },\n    {\n      \"name\": \"theoremheaderfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremheaderfont{${1:font declarations}}\"\n      }\n    },\n    {\n      \"name\": \"theorempostheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorempostheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theoremref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"theoremrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsep{${1:separation code}}\"\n      }\n    },\n    {\n      \"name\": \"theoremsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theremark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetheorem\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"altdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/jmlrutils#c\": [\n      \"maths\",\n      \"nomaths\",\n      \"math\",\n      \"nomath\",\n      \"theorems\",\n      \"notheorems\",\n      \"cleveref\",\n      \"nocleveref\",\n      \"subfloats\",\n      \"nosubfloats\"\n    ],\n    \"\\\\includeteximage\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\subfigure,\\\\subtable\": [\n      \"t\",\n      \"c\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jmlrutils#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jmsdelim.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"scalerel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DelimMin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimMin{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"DelimSurround\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DelimSurround{${1:left}}{${2:right}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimBetween\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DelimBetween{${1:sep}}{${2:lbody}}{${3:rbody}}\"\n      }\n    },\n    {\n      \"name\": \"DelimBetweenSurround\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DelimBetweenSurround{${1:left}}{${2:sep}}{${3:right}}{${4:lbody}}{${5:rbody}}\"\n      }\n    },\n    {\n      \"name\": \"DelimProtect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimProtect{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimPrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimPrn{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimBrk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimBrk{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimBrc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimBrc{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimBbrk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimBbrk{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimGl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimGl{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimVrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimVrt{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"DelimVvrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelimVvrt{${1:body}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jobname-suffix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"JobnameSuffix\"\n    },\n    {\n      \"name\": \"IfSuffixTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfSuffixTF{${1:true condition}}{${2:false condition}}\"\n      }\n    },\n    {\n      \"name\": \"IfSuffixTF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IfSuffixTF[${3:suffixes}]{${1:true condition}}{${2:false condition}}\"\n      }\n    },\n    {\n      \"name\": \"IfSuffixT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSuffixT{${1:true condition}}\"\n      }\n    },\n    {\n      \"name\": \"IfSuffixT\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IfSuffixT[${2:suffixes}]{${1:true condition}}\"\n      }\n    },\n    {\n      \"name\": \"IfSuffixF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSuffixF{${1:false condition}}\"\n      }\n    },\n    {\n      \"name\": \"IfSuffixF\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IfSuffixF[${2:suffixes}]{${1:false condition}}\"\n      }\n    },\n    {\n      \"name\": \"OverrideSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OverrideSuffix{${1:suffix}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"IfSuffix\"\n    },\n    {\n      \"name\": \"IfSuffix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:suffixes}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/joinbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"joinbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"joinbox{${1:content1%text}}{${2:content2%text}}\"\n      }\n    },\n    {\n      \"name\": \"joinbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"joinbox[${3:options%keyvals}]{${1:content1%text}}{${2:content2%text}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"joinbox*{${1:content1%text}}{${2:content2%text}}\"\n      }\n    },\n    {\n      \"name\": \"joinbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"joinbox*[${3:options%keyvals}]{${1:content1%text}}{${2:content2%text}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinboxes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joinboxes{${1:content1,content2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"joinboxes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"joinboxes[${2:options%keyvals}]{${1:content1,content2,...%text}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinboxes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joinboxes*{${1:content1,content2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"joinboxes*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"joinboxes*[${2:options%keyvals}]{${1:content1,content2,...%text}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinfigs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joinfigs{${1:imagefile1,imagefile2,...%definition}}\"\n      }\n    },\n    {\n      \"name\": \"joinfigs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"joinfigs[${2:options%keyvals}]{${1:imagefile1,imagefile2,...%definition}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinfigs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joinfigs*{${1:imagefile1,imagefile2,...%definition}}\"\n      }\n    },\n    {\n      \"name\": \"joinfigs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"joinfigs*[${2:options%keyvals}]{${1:imagefile1,imagefile2,...%definition}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"joinset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"joinset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\joinbox,\\\\joinbox*,,\\\\joinboxes,\\\\joinboxes*,\\\\joinfigs,\\\\joinfigs*,\\\\joinset\": [\n      \"baseline=${1|t,vc,H,b|}\",\n      \"outlen=\",\n      \"sep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/josefin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"josefinthin\"\n    },\n    {\n      \"name\": \"josefinlight\"\n    },\n    {\n      \"name\": \"josefinextralight\"\n    },\n    {\n      \"name\": \"josefinmedium\"\n    },\n    {\n      \"name\": \"josefinsemibold\"\n    },\n    {\n      \"name\": \"josefinfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/josefin#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"medium\",\n      \"mb\",\n      \"semibold\",\n      \"sb\",\n      \"light\",\n      \"l\",\n      \"extralight\",\n      \"thin\",\n      \"default\",\n      \"sfdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/josefin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jpneduenumerate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"otf\"\n    },\n    {\n      \"name\": \"luatexja-otf\",\n      \"if\": \"lua\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"parenref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"romanref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parenromanref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenromanref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Romanref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romanref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parenRomanref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenRomanref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"bracketref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracketref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"squareauto\"\n    },\n    {\n      \"name\": \"squareauto*\"\n    },\n    {\n      \"name\": \"squarekeep\"\n    },\n    {\n      \"name\": \"squarekeep*\"\n    },\n    {\n      \"name\": \"squarereset\"\n    },\n    {\n      \"name\": \"squareref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squareref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextsquarecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squarenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squarenumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"squarenumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squarenumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"squarenumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squarenumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squarenumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionauto\"\n    },\n    {\n      \"name\": \"questionauto*\"\n    },\n    {\n      \"name\": \"questionkeep\"\n    },\n    {\n      \"name\": \"questionkeep*\"\n    },\n    {\n      \"name\": \"questionreset\"\n    },\n    {\n      \"name\": \"questionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextquestioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"questionnumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questionnumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"questionnumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionnumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionnumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumerateauto\"\n    },\n    {\n      \"name\": \"enumerateauto*\"\n    },\n    {\n      \"name\": \"enumeratekeep\"\n    },\n    {\n      \"name\": \"enumeratekeep*\"\n    },\n    {\n      \"name\": \"enumeratereset\"\n    },\n    {\n      \"name\": \"enumerateref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumerateref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextenumeratecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumeratenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumeratenumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"enumeratenumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumeratenumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"enumeratenumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumeratenumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumeratenumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subquestionauto\"\n    },\n    {\n      \"name\": \"subquestionauto*\"\n    },\n    {\n      \"name\": \"subquestionkeep\"\n    },\n    {\n      \"name\": \"subquestionkeep*\"\n    },\n    {\n      \"name\": \"subquestionreset\"\n    },\n    {\n      \"name\": \"subquestionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subquestionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextsubquestioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subquestionnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subquestionnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"subquestionnumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subquestionnumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"subquestionnumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subquestionnumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subquestionnumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"caseauto\"\n    },\n    {\n      \"name\": \"caseauto*\"\n    },\n    {\n      \"name\": \"casekeep\"\n    },\n    {\n      \"name\": \"casekeep*\"\n    },\n    {\n      \"name\": \"casereset\"\n    },\n    {\n      \"name\": \"caseref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caseref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextcasecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"casenumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"casenumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"casenumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"casenumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"casenumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepauto\"\n    },\n    {\n      \"name\": \"stepauto*\"\n    },\n    {\n      \"name\": \"stepkeep\"\n    },\n    {\n      \"name\": \"stepkeep*\"\n    },\n    {\n      \"name\": \"stepreset\"\n    },\n    {\n      \"name\": \"stepref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thejpneduenumeratetextstepcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"stepnumber*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepnumber*{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"stepnumberauto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepnumberkeep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepnumberreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equationreset\"\n    },\n    {\n      \"name\": \"question\",\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question*\"\n    },\n    {\n      \"name\": \"subquestion\"\n    },\n    {\n      \"name\": \"subquestion*\"\n    },\n    {\n      \"name\": \"case\"\n    },\n    {\n      \"name\": \"case*\"\n    },\n    {\n      \"name\": \"step\"\n    },\n    {\n      \"name\": \"step*\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"romanenumerate\"\n    },\n    {\n      \"name\": \"romanenumerate*\"\n    },\n    {\n      \"name\": \"Romanenumerate\"\n    },\n    {\n      \"name\": \"Romanenumerate*\"\n    },\n    {\n      \"name\": \"bracketenumerate\"\n    },\n    {\n      \"name\": \"bracketenumerate*\"\n    },\n    {\n      \"name\": \"caseenumerate\"\n    },\n    {\n      \"name\": \"caseenumerate*\"\n    },\n    {\n      \"name\": \"stepenumerate\"\n    },\n    {\n      \"name\": \"stepenumerate*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/jpneduenumerate#c\": [\n      \"lua\",\n      \"casebracket\",\n      \"stepbracket\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jpneduenumerate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jpnedumathsymbols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"empheq\"\n    },\n    {\n      \"name\": \"otf\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"luatexja-otf\",\n      \"if\": \"lua\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"currI\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currII\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIII\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currA\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currB\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currC\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currD\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currE\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currF\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currG\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currH\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currI\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currJ\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currK\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currL\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currM\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currN\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currO\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currP\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currQ\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currR\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currS\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currT\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currU\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currV\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currW\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currX\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currY\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currZ\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curra\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currb\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currc\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currd\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curre\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currf\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currg\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currh\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curri\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currj\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currk\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currl\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currm\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currn\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curro\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currp\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currq\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currr\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currs\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currt\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curru\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currv\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currw\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currx\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curry\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currz\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curralpha\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currbeta\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currgamma\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currdelta\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currepsilon\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currzeta\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curreta\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currtheta\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curriota\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currkappa\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currlambda\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currmu\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currnu\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currxi\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curromicron\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currpai\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currrho\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currsigma\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currtau\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currupsilon\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currphi\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currchi\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currpsi\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"curromega\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIA\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIA*\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIB\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIB*\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIBC\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIBC*\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIIC\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"currIIIC*\",\n      \"if\": \"curriculum\"\n    },\n    {\n      \"name\": \"originalfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"originalfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"originalsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"originalsqrt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"originalsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"originalsqrt[${2:root}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"originallim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"originalvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"originalvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"angstrom\"\n    },\n    {\n      \"name\": \"capitaleszett\"\n    },\n    {\n      \"name\": \"AA\"\n    },\n    {\n      \"name\": \"BB\"\n    },\n    {\n      \"name\": \"CC\"\n    },\n    {\n      \"name\": \"DD\"\n    },\n    {\n      \"name\": \"EE\"\n    },\n    {\n      \"name\": \"FF\"\n    },\n    {\n      \"name\": \"GG\"\n    },\n    {\n      \"name\": \"HH\"\n    },\n    {\n      \"name\": \"II\"\n    },\n    {\n      \"name\": \"JJ\"\n    },\n    {\n      \"name\": \"KK\"\n    },\n    {\n      \"name\": \"LL\"\n    },\n    {\n      \"name\": \"MM\"\n    },\n    {\n      \"name\": \"NN\"\n    },\n    {\n      \"name\": \"OO\"\n    },\n    {\n      \"name\": \"PP\"\n    },\n    {\n      \"name\": \"QQ\"\n    },\n    {\n      \"name\": \"RR\"\n    },\n    {\n      \"name\": \"SS\"\n    },\n    {\n      \"name\": \"TT\"\n    },\n    {\n      \"name\": \"UU\"\n    },\n    {\n      \"name\": \"VV\"\n    },\n    {\n      \"name\": \"WW\"\n    },\n    {\n      \"name\": \"XX\"\n    },\n    {\n      \"name\": \"YY\"\n    },\n    {\n      \"name\": \"ZZ\"\n    },\n    {\n      \"name\": \"phantomheight\"\n    },\n    {\n      \"name\": \"phantomheight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"phantomheight[${1:letter%formula}]\"\n      }\n    },\n    {\n      \"name\": \"comma\",\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"comma*\"\n    },\n    {\n      \"name\": \"period\",\n      \"detail\": \".\",\n      \"doc\": \"Full stop, period\"\n    },\n    {\n      \"name\": \"period*\"\n    },\n    {\n      \"name\": \"pair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pair{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pair*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pair*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"triplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"triplet{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"triplet*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"triplet*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"quadruplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"quadruplet{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"quadruplet*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"quadruplet*{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"intersection\"\n    },\n    {\n      \"name\": \"union\"\n    },\n    {\n      \"name\": \"complement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"complement{${1:arg}}\"\n      },\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"cmpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmpl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tand\"\n    },\n    {\n      \"name\": \"tor\"\n    },\n    {\n      \"name\": \"eand\"\n    },\n    {\n      \"name\": \"eor\"\n    },\n    {\n      \"name\": \"lto\"\n    },\n    {\n      \"name\": \"lfrom\"\n    },\n    {\n      \"name\": \"iff\"\n    },\n    {\n      \"name\": \"plto\"\n    },\n    {\n      \"name\": \"plfrom\"\n    },\n    {\n      \"name\": \"piff\"\n    },\n    {\n      \"name\": \"peq\"\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"set{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"NZ\"\n    },\n    {\n      \"name\": \"NP\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"inverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inverse{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"neconcave\"\n    },\n    {\n      \"name\": \"neconcave*\"\n    },\n    {\n      \"name\": \"seconcave\"\n    },\n    {\n      \"name\": \"seconcave*\"\n    },\n    {\n      \"name\": \"neconvex\"\n    },\n    {\n      \"name\": \"neconvex*\"\n    },\n    {\n      \"name\": \"seconvex\"\n    },\n    {\n      \"name\": \"seconvex*\"\n    },\n    {\n      \"name\": \"dint\"\n    },\n    {\n      \"name\": \"dr\"\n    },\n    {\n      \"name\": \"ds\"\n    },\n    {\n      \"name\": \"dt\"\n    },\n    {\n      \"name\": \"du\"\n    },\n    {\n      \"name\": \"dx\"\n    },\n    {\n      \"name\": \"dy\"\n    },\n    {\n      \"name\": \"dz\"\n    },\n    {\n      \"name\": \"dtheta\"\n    },\n    {\n      \"name\": \"const\"\n    },\n    {\n      \"name\": \"defint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defint{${1:from}}{${2:to}}{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"transformvariable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"transformvariable{${1:var1%formula}}{${2:from1%formula}}{${3:to1%formula}}{${4:var2%formula}}{${5:from2%formula}}{${6:to2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rvec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rvec{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"rvec*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rvec*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"cvec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvec{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cvec*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvec*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"innerproduct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerproduct{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"innerproduct*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerproduct*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"inp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"inp*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inp*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sequence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequence{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"seq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sum*\"\n    },\n    {\n      \"name\": \"GCD\"\n    },\n    {\n      \"name\": \"LCM\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"notparallel\"\n    },\n    {\n      \"name\": \"similar\"\n    },\n    {\n      \"name\": \"similar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"similar[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"permutation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"permutation{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"combination\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"combination{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"repeatedpermutation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"repeatedpermutation{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"homogeneous\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"homogeneous{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"repeatedcombination\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"repeatedcombination{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"expectedvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expectedvalue{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"conjugate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conjugate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"conj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conj{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parentext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parentext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"squaretext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squaretext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"whitesquaretext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whitesquaretext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lltext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ltextbegin\"\n    },\n    {\n      \"name\": \"lltextbegin\"\n    },\n    {\n      \"name\": \"ltextend\"\n    },\n    {\n      \"name\": \"lltextend\"\n    },\n    {\n      \"name\": \"nomination\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomination{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"condition*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"explanation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explanation{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"explanation*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explanation*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"quantify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quantify{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"equationunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"texttherefore\"\n    },\n    {\n      \"name\": \"textbecause\"\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ecases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ecases\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:envname}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"simul\"\n    },\n    {\n      \"name\": \"simul\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:envname}]\"\n      }\n    },\n    {\n      \"name\": \"signchart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:num of columns}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/jpnedumathsymbols#c\": [\n      \"nofrac\",\n      \"nosqrt\",\n      \"nolim\",\n      \"novec\",\n      \"nopointroman\",\n      \"nocurriculum\",\n      \"curriculum\",\n      \"mathbb\",\n      \"setcolon\",\n      \"rvecbracket\",\n      \"cvecbracket\",\n      \"innerproductbracket\",\n      \"lua\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jpnedumathsymbols#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jslectureplanner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"datetime2-calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LecType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecType{${1:course type%keyvals}}\",\n        \"keys\": [\n          \"\\\\LecType\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LecTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"LecTitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LecTitle[${2:package options%keyvals}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"LecTitleSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecTitleSep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"LecSubTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecSubTitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"LecYear\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LecYear{${1:term%keyvals}}{${2:year}}\",\n        \"keys\": [\n          \"\\\\LecYear\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LecUni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecUni{${1:university}}\"\n      }\n    },\n    {\n      \"name\": \"LecInstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecInstitute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"LecRoom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecRoom{${1:room}}\"\n      }\n    },\n    {\n      \"name\": \"LecStartDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecStartDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"LecStartTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecStartTime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"LecDuration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecDuration{${1:minutes}}\"\n      }\n    },\n    {\n      \"name\": \"LecInterval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecInterval{${1:days}}\"\n      }\n    },\n    {\n      \"name\": \"SetAutoOffset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAutoOffset{${1:n}}{${2:days}}\"\n      }\n    },\n    {\n      \"name\": \"SetAutoOffset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetAutoOffset[${3:first}]{${1:n}}{${2:days}}\"\n      }\n    },\n    {\n      \"name\": \"LecInstructor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LecInstructor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LecInstructor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LecInstructor[${2:short name}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetOfficeHours\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOfficeHours{${1:hours}}\"\n      }\n    },\n    {\n      \"name\": \"SetOfficeNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOfficeNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetPlatform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPlatform{${1:information}}\"\n      }\n    },\n    {\n      \"name\": \"SessionTitleSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionTitleSep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"NewSession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewSession{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"NewSession\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewSession[${2:options%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\NewSession\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetBreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBreak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetBreak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetBreak[${2:span}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetBreaks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBreaks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetBreaks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetBreaks[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\SetBreaks\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetLecOffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLecOffset{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SetBeamerFrameBreak\"\n    },\n    {\n      \"name\": \"SetBeamerHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBeamerHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"lectype\"\n    },\n    {\n      \"name\": \"lectypeverb\"\n    },\n    {\n      \"name\": \"lectypesession\"\n    },\n    {\n      \"name\": \"lectitle\"\n    },\n    {\n      \"name\": \"lectitlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lecsubtitle\"\n    },\n    {\n      \"name\": \"lecfulltitle\"\n    },\n    {\n      \"name\": \"lecshorttitle\"\n    },\n    {\n      \"name\": \"lecsemshort\"\n    },\n    {\n      \"name\": \"lecsemverb\"\n    },\n    {\n      \"name\": \"lecyear\"\n    },\n    {\n      \"name\": \"lecendyear\"\n    },\n    {\n      \"name\": \"lecendyearsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lecsemester\"\n    },\n    {\n      \"name\": \"lecsemesterverb\"\n    },\n    {\n      \"name\": \"adjsemester\"\n    },\n    {\n      \"name\": \"adjsemesterverb\"\n    },\n    {\n      \"name\": \"lecuniversity\"\n    },\n    {\n      \"name\": \"lecinstitute\"\n    },\n    {\n      \"name\": \"lecinstructor\"\n    },\n    {\n      \"name\": \"lecshortinstructor\"\n    },\n    {\n      \"name\": \"lecroom\"\n    },\n    {\n      \"name\": \"lecstartdate\"\n    },\n    {\n      \"name\": \"lecstarttime\"\n    },\n    {\n      \"name\": \"lecduration\"\n    },\n    {\n      \"name\": \"lecendtime\"\n    },\n    {\n      \"name\": \"lecslot\"\n    },\n    {\n      \"name\": \"lecplatform\"\n    },\n    {\n      \"name\": \"officehours\"\n    },\n    {\n      \"name\": \"officenumber\"\n    },\n    {\n      \"name\": \"makeprogram\"\n    },\n    {\n      \"name\": \"makeexamprogram\"\n    },\n    {\n      \"name\": \"makebeamerprogram\"\n    },\n    {\n      \"name\": \"makebeamerprogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makebeamerprogram[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\makebeamerprogram,\\\\makebeamerexamprogram\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makebeamerexamprogram\"\n    },\n    {\n      \"name\": \"makebeamerexamprogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makebeamerexamprogram[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\makebeamerprogram,\\\\makebeamerexamprogram\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makesessionbib\"\n    },\n    {\n      \"name\": \"makepreslist\"\n    },\n    {\n      \"name\": \"makepreslist*\"\n    },\n    {\n      \"name\": \"makebeamerpreslist\"\n    },\n    {\n      \"name\": \"setfirstpressession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfirstpressession{${1:session number}}\"\n      }\n    },\n    {\n      \"name\": \"setlastpressession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlastpressession{${1:session number}}\"\n      }\n    },\n    {\n      \"name\": \"ThisSession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisSession{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"examsesno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examsesno{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"sesdate\"\n    },\n    {\n      \"name\": \"sesshortdate\"\n    },\n    {\n      \"name\": \"sesdtmdate\"\n    },\n    {\n      \"name\": \"sesstarttime\"\n    },\n    {\n      \"name\": \"sesendtime\"\n    },\n    {\n      \"name\": \"seslot\"\n    },\n    {\n      \"name\": \"sestitle\"\n    },\n    {\n      \"name\": \"sesshorttitle\"\n    },\n    {\n      \"name\": \"sestitlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sessubtitle\"\n    },\n    {\n      \"name\": \"sesfulltitle\"\n    },\n    {\n      \"name\": \"sesblocktitle\"\n    },\n    {\n      \"name\": \"sesblocknumber\"\n    },\n    {\n      \"name\": \"sesinstructor\"\n    },\n    {\n      \"name\": \"sesinstructor*\"\n    },\n    {\n      \"name\": \"sesshortinstructor\"\n    },\n    {\n      \"name\": \"sesshortinstructor*\"\n    },\n    {\n      \"name\": \"sespresstudents\"\n    },\n    {\n      \"name\": \"sesnr\"\n    },\n    {\n      \"name\": \"sesroom\"\n    },\n    {\n      \"name\": \"AdjSessionTitle\"\n    },\n    {\n      \"name\": \"AdjSessionTitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionTitle[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionFullTitle\"\n    },\n    {\n      \"name\": \"AdjSessionFullTitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionFullTitle[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionShortTitle\"\n    },\n    {\n      \"name\": \"AdjSessionShortTitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionShortTitle[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionBlockTitle\"\n    },\n    {\n      \"name\": \"AdjSessionBlockTitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionBlockTitle[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionBlockNumber\"\n    },\n    {\n      \"name\": \"AdjSessionBlockNumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionBlockNumber[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionDate\"\n    },\n    {\n      \"name\": \"AdjSessionDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionDate[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionShortDate\"\n    },\n    {\n      \"name\": \"AdjSessionShortDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionShortDate[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionDTMDate\"\n    },\n    {\n      \"name\": \"AdjSessionDTMDate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionDTMDate[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionStartTime\"\n    },\n    {\n      \"name\": \"AdjSessionStartTime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionStartTime[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionEndTime\"\n    },\n    {\n      \"name\": \"AdjSessionEndTime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionEndTime[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionTimeSlot\"\n    },\n    {\n      \"name\": \"AdjSessionTimeSlot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionTimeSlot[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionInstructor\"\n    },\n    {\n      \"name\": \"AdjSessionInstructor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionInstructor[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionInstructor*\"\n    },\n    {\n      \"name\": \"AdjSessionInstructor*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionInstructor*[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionShortInstructor\"\n    },\n    {\n      \"name\": \"AdjSessionShortInstructor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionShortInstructor[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionShortInstructor*\"\n    },\n    {\n      \"name\": \"AdjSessionShortInstructor*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionShortInstructor*[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionPresStudents\"\n    },\n    {\n      \"name\": \"AdjSessionPresStudents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionPresStudents[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"AdjSessionRoom\"\n    },\n    {\n      \"name\": \"AdjSessionRoom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AdjSessionRoom[${1:offset}]\"\n      }\n    },\n    {\n      \"name\": \"SessionTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionTitle{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionFullTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionFullTitle{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionShortTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionShortTitle{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionBlockTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionBlockTitle{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionBlockNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionBlockNumber{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionDate{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionShortDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionShortDate{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionDTMDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionDTMDate{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionStartTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionStartTime{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionEndTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionEndTime{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionTimeSlot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionTimeSlot{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionInstructor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionInstructor{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionInstructor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionInstructor*{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionShortInstructor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionShortInstructor{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionShortInstructor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionShortInstructor*{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionPresStudents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionPresStudents{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SessionRoom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SessionRoom{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"MakeProgramline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeProgramline{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"DefLecType\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefLecType{${1:key%specialDef}}{${2:short form}}{${3:title%text}}{${4:session title%text}}\"\n      }\n    },\n    {\n      \"name\": \"DefSemType\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefSemType{${1:key%specialDef}}{${2:short form}}{${3:verbose form%text}}\"\n      }\n    },\n    {\n      \"name\": \"DefSemType\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DefSemType[${4:options%keyvals}]{${1:key%specialDef}}{${2:short form}}{${3:verbose form%text}}\",\n        \"keys\": [\n          \"\\\\DefSemType\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jstimeslot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jstimeslot{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramListItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProgramListItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"PresListItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PresListItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramListCancelItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProgramListCancelItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramListExamItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProgramListExamItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerProgramListItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BeamerProgramListItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerPresListItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BeamerPresListItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerProgramListCancelItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BeamerProgramListCancelItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerProgramListExamItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BeamerProgramListExamItem{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramBlockItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProgramBlockItem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerProgramBlockItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeamerProgramBlockItem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"BeamerProgramBlockBlocksOnlyItem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeamerProgramBlockBlocksOnlyItem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"lecprogramlistindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blankpreslistvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beamerpresseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"programdateformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"programdateformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cansestitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cansestitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sestitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sestitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"exsestitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exsestitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocktitleformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocktitleformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocknumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocknumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramListBreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgramListBreak{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramListBreak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProgramListBreak[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"breakevent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"breakevent{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"leccancel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lecprogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sestopic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptypressession\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"SessionBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProgramListExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PresList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BeamerProgramList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BeamerPresList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BeamerProgramListExam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProgramListBlock\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/jslectureplanner#c\": [\n      \"style=${1|german-default,english,cologne|}\"\n    ],\n    \"\\\\usepackage/jslectureplanner#c,\\\\LecTitle\": [\n      \"type=\",\n      \"title=${1:title}\",\n      \"titlesep=${1:separator}\",\n      \"subtitle=${1:subtitle}\",\n      \"shorttitle=${1:shorttitle}\",\n      \"semester=\",\n      \"year=${1:year}\",\n      \"endyear=${1:year}\",\n      \"uni=${1:university}\",\n      \"institute=${1:institute}\",\n      \"room=${1:room}\",\n      \"startdate=${1:date}\",\n      \"starttime=${1:time}\",\n      \"duration=${1:minutes}\",\n      \"interval=${1:days}\",\n      \"instructor=${1:name}\",\n      \"shortinstructor=${1:name}\",\n      \"platform=${1:data}\",\n      \"officehours=${1:hours}\",\n      \"officenumber=${1:number}\",\n      \"sestitlesep=${1:separator}\",\n      \"type=\"\n    ],\n    \"\\\\LecType\": [\n      \"ak\",\n      \"as\",\n      \"es\",\n      \"evl\",\n      \"vl\",\n      \"ps\",\n      \"se\",\n      \"ue\",\n      \"ko\",\n      \"pv\",\n      \"%lectype\"\n    ],\n    \"\\\\LecYear\": [\n      \"fs\",\n      \"hs\",\n      \"ss\",\n      \"ws\",\n      \"%semtype\"\n    ],\n    \"\\\\NewSession\": [\n      \"draft\",\n      \"topicnumber=${1:n}\",\n      \"titlesep=${1:separator}\",\n      \"subtitle=${1:subtitle}\",\n      \"shorttitle=${1:shorttitle}\",\n      \"instructor=${1:name}\",\n      \"shortinstructor=${1:name}\",\n      \"presstudents=${1:names}\",\n      \"room=${1:room}\",\n      \"starttime=${1:time}\",\n      \"duration=${1:minutes}\",\n      \"bibsec=${1:keyword}\",\n      \"cancel\",\n      \"exam\",\n      \"extradate\"\n    ],\n    \"\\\\SetBreaks\": [\n      \"units=${1:n}\",\n      \"span=${1:span}\"\n    ],\n    \"\\\\makebeamerprogram,\\\\makebeamerexamprogram\": [\n      \"title=${1:title}\",\n      \"blocksonly\",\n      \"uncover\",\n      \"options={${1:frame options}}\",\n      \"overlayarg=${1:overlay specification}\"\n    ],\n    \"\\\\DefSemType\": [\n      \"next=${1:key}\",\n      \"nextny\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jslectureplanner#c\",\n    \"\\\\usepackage/jslectureplanner#c,\\\\LecTitle\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jslogo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cmrTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmrLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptmTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptmLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pncTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pncLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pplTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pplLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ugmTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ugmLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pTeX\"\n    },\n    {\n      \"name\": \"pLaTeX\"\n    },\n    {\n      \"name\": \"pLaTeXe\"\n    },\n    {\n      \"name\": \"upTeX\"\n    },\n    {\n      \"name\": \"upLaTeX\"\n    },\n    {\n      \"name\": \"upLaTeXe\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"SliTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jsmembertable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"hhline\"\n    },\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makemembertable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makemembertable{${1:number of blank rows}}\"\n      }\n    },\n    {\n      \"name\": \"makeprestable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeprestable{${1:number of blank rows}}\"\n      }\n    },\n    {\n      \"name\": \"makeprestable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makeprestable[${2:number of sessions}]{${1:number of blank rows}}\"\n      }\n    },\n    {\n      \"name\": \"makeprestable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeprestable*{${1:number of blank rows}}\"\n      }\n    },\n    {\n      \"name\": \"makeprestable*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makeprestable*[${2:number of sessions}]{${1:number of blank rows}}\"\n      }\n    },\n    {\n      \"name\": \"jsmnameheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsmidheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsemailheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsmsession\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsmsessionheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jssigheader\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jsmembertable#c\": [\n      \"datafile=${1:.csv file}\",\n      \"datakeys={${1:key1,key2,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jsmembertable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jsonparse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"JSONParse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParse{${1:token variable%cmd}}{${2:JSON string}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParse\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"JSONParse[${3:options%keyvals}]{${1:token variable%cmd}}{${2:JSON string}}\",\n        \"keys\": [\n          \"\\\\usepackage/jsonparse#c,\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\",\n          \"\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseFromFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParseFromFile{${1:token variable%cmd}}{${2:JSON file%file}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"JSONParseFromFile[${3:options%keyvals}]{${1:token variable%cmd}}{${2:JSON file%file}}\",\n        \"keys\": [\n          \"\\\\usepackage/jsonparse#c,\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\",\n          \"\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseKeys\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParseKeys{${1:token variable}}{${2:token variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParseValue{${1:token variable}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseValue\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"JSONParseValue[${3:options%keyvals}]{${1:token variable}}{${2:key%plain}}\",\n        \"keys\": [\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseExpandableValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParseExpandableValue{${1:token variable}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValues\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"JSONParseArrayValues{${1:token variable}}{${2:key%plain}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValues\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"JSONParseArrayValues{${1:token variable}}{${2:key%plain}}[${4:subkey}]{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValues\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"JSONParseArrayValues[${4:options%keyvals}]{${1:token variable}}{${2:key%plain}}{${3:string}}\",\n        \"keys\": [\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValues\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"JSONParseArrayValues[${4:options%keyvals}]{${1:token variable}}{${2:key%plain}}[${5:subkey}]{${3:string}}\",\n        \"keys\": [\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValuesMap\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"JSONParseArrayValuesMap{${1:token variable}}{${2:key%plain}}{${3:command name}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValuesMap\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"JSONParseArrayValuesMap{${1:token variable}}{${2:key%plain}}[${4:subkey}]{${3:command name}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValuesMap\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"JSONParseArrayValuesMap[${4:options%keyvals}]{${1:token variable}}{${2:key%plain}}{${3:command name}}\",\n        \"keys\": [\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayValuesMap\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"JSONParseArrayValuesMap[${4:options%keyvals}]{${1:token variable}}{${2:key%plain}}[${5:subkey}]{${3:command name}}\",\n        \"keys\": [\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"JSONParseArrayIndex\"\n    },\n    {\n      \"name\": \"JSONParseArrayKey\"\n    },\n    {\n      \"name\": \"JSONParseArrayValue\"\n    },\n    {\n      \"name\": \"JSONParseArrayCount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSONParseArrayCount{${1:token variable}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"JSONParseSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JSONParseSet{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/jsonparse#c,\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\",\n          \"\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\",\n          \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jsonparse#c,\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\": [\n      \"debug\"\n    ],\n    \"\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\": [\n      \"externalize\",\n      \"externalize prefix=${1:string}\",\n      \"externalize file name=${1:file name}\",\n      \"separator/child=${1:string}\",\n      \"separator/array left=${1:string}\",\n      \"separator/array right=${1:string}\",\n      \"zero-based\",\n      \"replace/true=${1:string}\",\n      \"replace/false=${1:string}\",\n      \"replace/null=${1:string}\"\n    ],\n    \"\\\\JSONParseSet,\\\\JSONParseValue,\\\\JSONParseArrayValues,\\\\JSONParseArrayValuesMap\": [\n      \"replace/backspace=${1:string}\",\n      \"replace/formfeed=${1:string}\",\n      \"replace/linefeed=${1:string}\",\n      \"replace/carriage return=${1:string}\",\n      \"replace/horizontal tab=${1:string}\",\n      \"check num\",\n      \"escape={${1:list}}\",\n      \"rescan\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jsonparse#c,\\\\JSONParseSet,\\\\JSONParse,\\\\JSONParseFromFile\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jsverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ttyen\"\n    },\n    {\n      \"name\": \"ttbslash\"\n    },\n    {\n      \"name\": \"BS\"\n    },\n    {\n      \"name\": \"verbatimleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbatimsize\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jsverb#c\": [\n      \"yen\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jsverb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jumplines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"luacolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"JumplineArticle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JumplineArticle{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"JumplineArticle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"JumplineArticle[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\JumplineArticle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShipoutArticleTeasers\"\n    },\n    {\n      \"name\": \"ShipoutArticleHangingArticles\"\n    },\n    {\n      \"name\": \"listofarticle\"\n    },\n    {\n      \"name\": \"listofcontarticle\"\n    },\n    {\n      \"name\": \"listofarticlesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofcontinuedarticlesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thearticle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContinuedArticleList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContinuedFrom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContinuedOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultContinuedArticleTocExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultTeaserTocExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisplayContinuedArticle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DisplayContinuedArticle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayJumplineTeaser\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DisplayJumplineTeaser{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"JLArticleName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLBookmarkEntry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroArticleAuthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroArticleFullHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroArticleHeadline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroBookmarkEntry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedArticleBottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedArticleHeaderContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedArticleHeaderOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedArticleHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedBookmarkLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedFromBottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedFromTopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedHeaderColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedOnBottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedOnTopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedTocExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroContinuedTocLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroGenericBookmarkDest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroGenericBookmarkLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroInternalMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserBookmarkLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserHeaderColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserHeaderContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserHeaderOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserTocExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroTeaserTocLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLKVMacroToc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLPackageMacroLanguages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JLTocEntry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JumplineOptionsList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeaserBoxList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"articlesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"byauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jumplines#c\": [\n      \"languages=${1:languages}\"\n    ],\n    \"\\\\JumplineArticle\": [\n      \"TeaserHeight=\",\n      \"ArticleHeadline={${1:text}}\",\n      \"TeaserHeaderOptions={${1:tcolorbox options}}\",\n      \"ContinuedArticleHeaderOptions={${1:tcolorbox options}}\",\n      \"ContinuedOnTopskip=\",\n      \"ContinuedOnBottomskip=\",\n      \"ArticleAuthor={${1:list of authors}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jumplines#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/junicode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jBold\"\n    },\n    {\n      \"name\": \"jBoldItalic\"\n    },\n    {\n      \"name\": \"jCond\"\n    },\n    {\n      \"name\": \"jCondItalic\"\n    },\n    {\n      \"name\": \"jCondLight\"\n    },\n    {\n      \"name\": \"jCondLightItalic\"\n    },\n    {\n      \"name\": \"jCondMedium\"\n    },\n    {\n      \"name\": \"jCondMediumItalic\"\n    },\n    {\n      \"name\": \"jExp\"\n    },\n    {\n      \"name\": \"jExpItalic\"\n    },\n    {\n      \"name\": \"jExpBold\"\n    },\n    {\n      \"name\": \"jExpBoldItalic\"\n    },\n    {\n      \"name\": \"jExpMedium\"\n    },\n    {\n      \"name\": \"jExpMediumItalic\"\n    },\n    {\n      \"name\": \"jExpSmBold\"\n    },\n    {\n      \"name\": \"jExpSmBoldItalic\"\n    },\n    {\n      \"name\": \"jRegular\"\n    },\n    {\n      \"name\": \"jItalic\"\n    },\n    {\n      \"name\": \"jLight\"\n    },\n    {\n      \"name\": \"jLightItalic\"\n    },\n    {\n      \"name\": \"jMedium\"\n    },\n    {\n      \"name\": \"jMediumItalic\"\n    },\n    {\n      \"name\": \"jSmBold\"\n    },\n    {\n      \"name\": \"jSmBoldItalic\"\n    },\n    {\n      \"name\": \"jSmCond\"\n    },\n    {\n      \"name\": \"jSmCondItalic\"\n    },\n    {\n      \"name\": \"jSmCondLight\"\n    },\n    {\n      \"name\": \"jSmCondLightItalic\"\n    },\n    {\n      \"name\": \"jSmCondMedium\"\n    },\n    {\n      \"name\": \"jSmCondMediumItalic\"\n    },\n    {\n      \"name\": \"jSmExp\"\n    },\n    {\n      \"name\": \"jSmExpItalic\"\n    },\n    {\n      \"name\": \"jSmExpBold\"\n    },\n    {\n      \"name\": \"jSmExpBoldItalic\"\n    },\n    {\n      \"name\": \"jSmExpMedium\"\n    },\n    {\n      \"name\": \"jSmExpMediumItalic\"\n    },\n    {\n      \"name\": \"jSmExpSmBold\"\n    },\n    {\n      \"name\": \"jSmExpSmBoldItalic\"\n    },\n    {\n      \"name\": \"textcv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcv{${1:variant}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcv[${3:index}]{${1:variant}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jcv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jcv{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"jcv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jcv[${2:index}]{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"AltThornEth\"\n    },\n    {\n      \"name\": \"textAltThornEth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textAltThornEth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"InsularLetterForms\"\n    },\n    {\n      \"name\": \"textInsularLetterForms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textInsularLetterForms{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IPAAlternates\"\n    },\n    {\n      \"name\": \"textIPAAlternates\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textIPAAlternates{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HighOverline\"\n    },\n    {\n      \"name\": \"textHighOverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textHighOverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MediumHighOverline\"\n    },\n    {\n      \"name\": \"textMediumHighOverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textMediumHighOverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EnlargedMinuscules\"\n    },\n    {\n      \"name\": \"textEnlargedMinuscules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEnlargedMinuscules{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Underdotted\"\n    },\n    {\n      \"name\": \"textUnderdotted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textUnderdotted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ContextualLongS\"\n    },\n    {\n      \"name\": \"textContextualLongS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textContextualLongS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlternateFigures\"\n    },\n    {\n      \"name\": \"textAlternateFigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textAlternateFigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EntitiesAndTags\"\n    },\n    {\n      \"name\": \"textEntitiesAndTags\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEntitiesAndTags{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EarlyEnglishFuthorc\"\n    },\n    {\n      \"name\": \"textEarlyEnglishFuthorc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEarlyEnglishFuthorc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ElderFuthark\"\n    },\n    {\n      \"name\": \"textElderFuthark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textElderFuthark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"YoungerFuthark\"\n    },\n    {\n      \"name\": \"textYoungerFuthark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textYoungerFuthark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LongBranchToShortTwig\"\n    },\n    {\n      \"name\": \"textLongBranchToShortTwig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLongBranchToShortTwig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ContextualRRotunda\"\n    },\n    {\n      \"name\": \"textContextualRRotunda\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textContextualRRotunda{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RareDigraphs\"\n    },\n    {\n      \"name\": \"textRareDigraphs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textRareDigraphs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"OldStylePunctuation\"\n    },\n    {\n      \"name\": \"textOldStylePunctuation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textOldStylePunctuation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LatinToGothic\"\n    },\n    {\n      \"name\": \"textLatinToGothic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLatinToGothic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LowDiacritics\"\n    },\n    {\n      \"name\": \"textLowDiacritics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLowDiacritics{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jcvA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvaogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvaa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvae\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvdbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvdcroat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvEogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvYogh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvlhighstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvoPolish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvthorncrossed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvspacingzigzag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvglottal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvTironianEt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvmiddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvpunctuselevatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvASCIItilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvrum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningzigzag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvspacingusabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvetabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvmacron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningopena\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombininginsulard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningrrotunda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningdieresis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningoverline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvHcombiningdoublemacron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvEng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvbrevebelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcurrency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvsterling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvGermanpenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvflorin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvounce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/junicode#c\": [\n      \"light\",\n      \"medium\",\n      \"semibold\",\n      \"condensed\",\n      \"semicondensed\",\n      \"expanded\",\n      \"semiexpanded\",\n      \"proportional\",\n      \"tabular\",\n      \"oldstyle\",\n      \"lining\",\n      \"BoldFeatures={${1:font features}}\",\n      \"CondFeatures={${1:font features}}\",\n      \"CondLightFeatures={${1:font features}}\",\n      \"CondMediumFeatures={${1:font features}}\",\n      \"ExpFeatures={${1:font features}}\",\n      \"ExpBoldDef={${1:font features}}\",\n      \"ExpMediumFeatures={${1:font features}}\",\n      \"ExpSmBoldFeatures={${1:font features}}\",\n      \"LightDefFeatures={${1:font features}}\",\n      \"MediumFeatures={${1:font features}}\",\n      \"RegularFeatures={${1:font features}}\",\n      \"SmBoldFeatures={${1:font features}}\",\n      \"SmCondFeatures={${1:font features}}\",\n      \"SmCondLightFeatures={${1:font features}}\",\n      \"SmCondMediumFeatures={${1:font features}}\",\n      \"SmExpFeatures={${1:font features}}\",\n      \"SmExpBoldFeatures={${1:font features}}\",\n      \"SmExpMediumFeatures={${1:font features}}\",\n      \"SmExpSmBoldFeatures={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/junicode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/junicodevf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EnlargedOne\"\n    },\n    {\n      \"name\": \"EnlargedOneItalic\"\n    },\n    {\n      \"name\": \"EnlargedTwo\"\n    },\n    {\n      \"name\": \"EnlargedTwoItalic\"\n    },\n    {\n      \"name\": \"EnlargedThree\"\n    },\n    {\n      \"name\": \"EnlargedThreeItalic\"\n    },\n    {\n      \"name\": \"EnlargedFour\"\n    },\n    {\n      \"name\": \"EnlargedFourItalic\"\n    },\n    {\n      \"name\": \"textcv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcv{${1:variant}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textcv[${3:index}]{${1:variant}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jcv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jcv{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"jcv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jcv[${2:index}]{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"AltThornEth\"\n    },\n    {\n      \"name\": \"textAltThornEth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textAltThornEth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"InsularLetterForms\"\n    },\n    {\n      \"name\": \"textInsularLetterForms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textInsularLetterForms{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IPAAlternates\"\n    },\n    {\n      \"name\": \"textIPAAlternates\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textIPAAlternates{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"HighOverline\"\n    },\n    {\n      \"name\": \"textHighOverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textHighOverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MediumHighOverline\"\n    },\n    {\n      \"name\": \"textMediumHighOverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textMediumHighOverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EnlargedMinuscules\"\n    },\n    {\n      \"name\": \"textEnlargedMinuscules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEnlargedMinuscules{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Underdotted\"\n    },\n    {\n      \"name\": \"textUnderdotted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textUnderdotted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ContextualLongS\"\n    },\n    {\n      \"name\": \"textContextualLongS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textContextualLongS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AlternateFigures\"\n    },\n    {\n      \"name\": \"textAlternateFigures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textAlternateFigures{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EntitiesAndTags\"\n    },\n    {\n      \"name\": \"textEntitiesAndTags\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEntitiesAndTags{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EarlyEnglishFuthorc\"\n    },\n    {\n      \"name\": \"textEarlyEnglishFuthorc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEarlyEnglishFuthorc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ElderFuthark\"\n    },\n    {\n      \"name\": \"textElderFuthark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textElderFuthark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"YoungerFuthark\"\n    },\n    {\n      \"name\": \"textYoungerFuthark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textYoungerFuthark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LongBranchToShortTwig\"\n    },\n    {\n      \"name\": \"textLongBranchToShortTwig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLongBranchToShortTwig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ContextualRRotunda\"\n    },\n    {\n      \"name\": \"textContextualRRotunda\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textContextualRRotunda{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RareDigraphs\"\n    },\n    {\n      \"name\": \"textRareDigraphs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textRareDigraphs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"OldStylePunctuation\"\n    },\n    {\n      \"name\": \"textOldStylePunctuation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textOldStylePunctuation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LatinToGothic\"\n    },\n    {\n      \"name\": \"textLatinToGothic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLatinToGothic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LowDiacritics\"\n    },\n    {\n      \"name\": \"textLowDiacritics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLowDiacritics{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jcvA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvaogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvaa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvae\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvAO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvdbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvdcroat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvEogonek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvYogh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvlhighstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvoPolish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvthorncrossed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvspacingzigzag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvglottal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvTironianEt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvmiddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvpunctuselevatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvASCIItilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvrum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningzigzag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvspacingusabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvetabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvmacron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningopena\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombininginsulard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningrrotunda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningdieresis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcombiningoverline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvHcombiningdoublemacron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvEng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvbrevebelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvcurrency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvsterling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvGermanpenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvflorin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jcvounce\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/junicodevf#c\": [\n      \"light\",\n      \"medium\",\n      \"semibold\",\n      \"condensed\",\n      \"semicondensed\",\n      \"semiexpanded\",\n      \"expanded\",\n      \"weightadjustment=${1:number}\",\n      \"widthadjustment=${1:number}\",\n      \"lining\",\n      \"tabular\",\n      \"proportional\",\n      \"oldstyle\",\n      \"MainFeatures={${1:font features}}\",\n      \"MainRegularFeatures={${1:font features}}\",\n      \"MainItalicFeatures={${1:font features}}\",\n      \"MainBoldFeatures={${1:font features}}\",\n      \"MainBoldItalicFeatures={${1:font features}}\",\n      \"MainRegularSizeFeatures={${1:font features}}\",\n      \"MainItalicSizeFeatures={${1:font features}}\",\n      \"MainBoldSizeFeatures={${1:font features}}\",\n      \"MainBoldItalicSizeFeatures={${1:font features}}\",\n      \"ENLAOneSizeFeatures={${1:font features}}\",\n      \"ENLATwoSizeFeatures={${1:font features}}\",\n      \"ENLAThreeSizeFeatures={${1:font features}}\",\n      \"ENLAFourSizeFeatures={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/junicodevf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jupynotex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jupynotex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jupynotex{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"jupynotex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jupynotex[${2:cells}]{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/jupynotex#c\": [\n      \"output-text-limit=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/jupynotex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jurabase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aA\"\n    },\n    {\n      \"name\": \"aaO\"\n    },\n    {\n      \"name\": \"aE\"\n    },\n    {\n      \"name\": \"aF\"\n    },\n    {\n      \"name\": \"aM\"\n    },\n    {\n      \"name\": \"AnA\"\n    },\n    {\n      \"name\": \"antrag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"antrag{${1:einleitung}}{${2:antragsinhalt}}\"\n      }\n    },\n    {\n      \"name\": \"arr\"\n    },\n    {\n      \"name\": \"Arr\"\n    },\n    {\n      \"name\": \"arrr\"\n    },\n    {\n      \"name\": \"Arrr\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"darr\"\n    },\n    {\n      \"name\": \"Darr\"\n    },\n    {\n      \"name\": \"fabreset\"\n    },\n    {\n      \"name\": \"firma\"\n    },\n    {\n      \"name\": \"hM\"\n    },\n    {\n      \"name\": \"ia\"\n    },\n    {\n      \"name\": \"iA\"\n    },\n    {\n      \"name\": \"idR\"\n    },\n    {\n      \"name\": \"iE\"\n    },\n    {\n      \"name\": \"iHv\"\n    },\n    {\n      \"name\": \"indentoff\"\n    },\n    {\n      \"name\": \"iR\"\n    },\n    {\n      \"name\": \"iS\"\n    },\n    {\n      \"name\": \"iue\"\n    },\n    {\n      \"name\": \"iUe\"\n    },\n    {\n      \"name\": \"iVm\"\n    },\n    {\n      \"name\": \"jbck\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jbck[${2:schritte}]{${1:glnum}}\"\n      }\n    },\n    {\n      \"name\": \"jbck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbck{${1:glnum}}\"\n      }\n    },\n    {\n      \"name\": \"jfrw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jfrw{${1:glnum}}\"\n      }\n    },\n    {\n      \"name\": \"jsme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jsme{${1:glnum}}\"\n      }\n    },\n    {\n      \"name\": \"juraenum\"\n    },\n    {\n      \"name\": \"larr\"\n    },\n    {\n      \"name\": \"Larr\"\n    },\n    {\n      \"name\": \"lrarr\"\n    },\n    {\n      \"name\": \"marke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marke{${1:Markennamen}}\"\n      }\n    },\n    {\n      \"name\": \"maW\"\n    },\n    {\n      \"name\": \"mE\"\n    },\n    {\n      \"name\": \"mwN\"\n    },\n    {\n      \"name\": \"nF\"\n    },\n    {\n      \"name\": \"oa\"\n    },\n    {\n      \"name\": \"oae\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"prdbez\"\n    },\n    {\n      \"name\": \"qll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qll{${1:Quellen}}\"\n      }\n    },\n    {\n      \"name\": \"resetindent\"\n    },\n    {\n      \"name\": \"sa\"\n    },\n    {\n      \"name\": \"so\"\n    },\n    {\n      \"name\": \"sob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"ua\"\n    },\n    {\n      \"name\": \"uae\"\n    },\n    {\n      \"name\": \"usw\"\n    },\n    {\n      \"name\": \"uU\"\n    },\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"vAw\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"zT\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"forwardandback\"\n    },\n    {\n      \"name\": \"forwardandback\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:textfuerbreite}]\"\n      }\n    },\n    {\n      \"name\": \"forwardandback*\"\n    },\n    {\n      \"name\": \"forwardandback*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:textfuerbreite}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/jurabib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jurabibsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jurabibsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cite*[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite*[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefield\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"citefield[${3:page-range}]{${1:field}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citenotitlefortype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenotitlefortype{${1:article,book,…}}\"\n      }\n    },\n    {\n      \"name\": \"citeswithoutentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeswithoutentry{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citetitle[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citetitle[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetitlefortype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetitlefortype{${1:article,book,…}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcite*[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcite*[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitetitle[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footcitetitle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitetitle[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footfullcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"footfullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footfullcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fullcite[${2:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"fullcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"fullcite[${2:Annotator/See}][${3:page-range}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitefull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitefull{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitenotitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitenotitle{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextcitereset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextcitereset{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nextciteshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextciteshort{${1:bibid1,bibid2,…}}\"\n      }\n    },\n    {\n      \"name\": \"nobibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"noibidem\"\n    },\n    {\n      \"name\": \"noidem\"\n    },\n    {\n      \"name\": \"bibAnnotePath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibAnnotePath{${1:file-path%file}}\"\n      }\n    },\n    {\n      \"name\": \"biburlfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biburlfont{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\biburlfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nopage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nopage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pageadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageadd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"formatpages{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"formatpages[${4:after-separator}]{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"formatpages\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"formatpages[${4:after-separator}][${5:before-separator}]{${1:article,book,…}}{${2:left-delim}}{${3:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitealt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footciteauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"footcitep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footcitet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footcitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footcitet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"footciteyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footciteyear{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"AddTo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddTo{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"bibansep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibartperiodhowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibauthormultiple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbdsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbfsasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbfsesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbstasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbstesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbtsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibbudcsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibcommenthowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhowcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemPnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidempnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemSnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibidemsnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibjtsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibleftcolumnadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnotcited\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibrightcolumnadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsaustrian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsdutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsnorsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biburlsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diffpageibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diffpageibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Edbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editorsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fifthedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourthedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"herename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemPnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idempnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemSnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idemsnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbactualauthorfnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbactualauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbaensep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbannotatorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbannoteformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbannoteformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbapifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfontifannotato\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorfontifannotator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbauthorindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbauthorindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbbfsasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbfsesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbibyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbbibyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbbstasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbstesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbcitationoyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbcitationoyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbcitationyearformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbcitationyearformat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jbdisablecitationcrossref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexeditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbdonotindexorganizations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbeditorindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jbeditorindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jbedseplikecite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbfirstcitepageranges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbfulltitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbhowsepbeforetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbignorevarioref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirstauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirsteditors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindexonlyfirstorganizations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbindextype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jblangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbmakeindexactual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbnoformatafterstartpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbnoformatafterstartpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jborganizationindexfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jborganizationindexfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jborgauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jboyearincitation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbpagesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbrangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbshorttitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbsuperscripteditionafterauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jbyearaftertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookatprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lookatsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opcit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samepageibidemmidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samepageibidemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thirdedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urldatecomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Volumename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\": [\n      \"authorformat=${1|smallcaps,italic,dynamic,citationreversed,allreversed,firstnotreversed,reducedifibidem,and,year,indexed,abbrv|}\",\n      \"annotatorformat=${1|italic,normal|}\",\n      \"round\",\n      \"square\",\n      \"superscriptedition=${1|all,commented,switch,kerning,bib,address,year,multiple|}\",\n      \"biblikecite\",\n      \"edby\",\n      \"endnote\",\n      \"titleformat=${1|italic,all,colonsep,commasep,noreplace|}\",\n      \"annotatorlastsep=${1|divis|}\",\n      \"annotatorfirstsep=${1|in,comma|}\",\n      \"ibidem\",\n      \"ibidem=${1|strict,nostrict,strictdoublepage,name,name&title,name&title&auto|}\",\n      \"commabeforerest\",\n      \"silent\",\n      \"bibformat=${1|nohang,tabular,numbered,ibidem,ibidemalt,compress,raggedright|}\",\n      \"lookforgender\",\n      \"annote\",\n      \"super\",\n      \"config=${1:file}\",\n      \"dotafter=${1|bibentry,endnote|}\",\n      \"howcited=${1|normal,multiple,compare,all|}\",\n      \"pages=${1|format,test,always|}\",\n      \"hypercite\",\n      \"citefull=${1|first,chapter,section,all|}\",\n      \"see\",\n      \"natoptargorder\",\n      \"crossref=${1|dynamic,normal,short,long|}\",\n      \"lookat\",\n      \"idem\",\n      \"idem=${1|strict,nostrict,strictdoublepage,halfstrict|}\",\n      \"opcit\",\n      \"citetoend\"\n    ],\n    \"\\\\biburlfont\": [\n      \"tt\",\n      \"rm\",\n      \"sf\",\n      \"same\"\n    ]\n  },\n  \"args\": [\n    \"\\\\jurabibsetup#c,\\\\usepackage/jurabib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/jvlisting.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"filelisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filelisting{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"NewListingEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NewListingEnvironment{${1:envname}}{${2:args}}{${3:before code}}{${4:init code}}{${5:line cmd}}{${6:after code}}\"\n      }\n    },\n    {\n      \"name\": \"NewFileListingCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"NewFileListingCommand{${1:cmd}}{${2:args}}{${3:before code}}{${4:init code}}{${5:line cmd}}{${6:after code}}\"\n      }\n    },\n    {\n      \"name\": \"listingskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prelistingpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postlistingpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ListingTypesetLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListingTypesetLine{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"prelistingskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postlistingskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normallistingfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisableLigatureFix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"listing\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kalendarium.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"KalDate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KalDate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"KalDate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"KalDate[${4:options%keyvals}]{${1:year}}{${2:month}}{${3:day}}\",\n        \"keys\": [\n          \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KalDateStr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KalDateStr{${1:format}}{${2:delimiter}}{${3:date string}}\"\n      }\n    },\n    {\n      \"name\": \"KalDateStr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"KalDateStr[${4:options%keyvals}]{${1:format}}{${2:delimiter}}{${3:date string}}\",\n        \"keys\": [\n          \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KalToday\"\n    },\n    {\n      \"name\": \"KalToday\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"KalToday[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KalWeekday\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KalWeekday{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"KalWeekday\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"KalWeekday[${4:options%keyvals}]{${1:year}}{${2:month}}{${3:day}}\",\n        \"keys\": [\n          \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KalAbbrFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KalAbbrFormat{${1:abbreviation}}\"\n      }\n    },\n    {\n      \"name\": \"KalDayFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KalDayFormat{${1:day}}\"\n      }\n    },\n    {\n      \"name\": \"KalYearFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KalYearFormat{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\": [\n      \"abbreviate\",\n      \"periods\",\n      \"era=${1|ad,adshort,auc,secular,none|}\",\n      \"julian\",\n      \"dayfmt=${1|roman,latin,arabic|}\",\n      \"yearfmt=${1|roman,arabic|}\",\n      \"antediem\",\n      \"bissextum\",\n      \"oldmonths\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kalendarium#c,\\\\KalDate,\\\\KalDateStr,\\\\KalToday,\\\\KalWeekday\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kanbun.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setkanbun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkanbun{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/kanbun#c,\\\\setkanbun\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kanjiunit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kanjiunit{${1:}}{${2:left punct}}{${3:kanji}}{${4:other punct}}{${5:kaeriten}}{${6:}}\"\n      }\n    },\n    {\n      \"name\": \"furiokuri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"furiokuri{${1:furigana}}{${2:okurigana}}\"\n      }\n    },\n    {\n      \"name\": \"kanbunfont\"\n    },\n    {\n      \"name\": \"multifuriokuri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multifuriokuri{${1:furigana}}{${2:okurigana}}\"\n      }\n    },\n    {\n      \"name\": \"multifuriokuri\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"multifuriokuri[${3:raise}]{${1:furigana}}{${2:okurigana}}\"\n      }\n    },\n    {\n      \"name\": \"Kanbun\"\n    },\n    {\n      \"name\": \"EndKanbun\"\n    },\n    {\n      \"name\": \"printkanbun\"\n    },\n    {\n      \"name\": \"printkanbuncode\"\n    },\n    {\n      \"name\": \"printkanbunnopar\"\n    },\n    {\n      \"name\": \"printkanbunnoparcode\"\n    },\n    {\n      \"name\": \"createcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaeriten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kaeriten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matchkana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matchkana{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Space\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"kanjipar\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/kanbun#c,\\\\setkanbun\": [\n      \"scale=${1:ratio}\",\n      \"fontcmd=${1:font command}\",\n      \"rubyfontcmd=${1:font command}\",\n      \"unit=\",\n      \"yokoaki=${1:ratio}\",\n      \"tateaki=${1:ratio}\",\n      \"okuriintrusion=${1:ratio}\",\n      \"kumi=${1|aki,beta|}\",\n      \"aki\",\n      \"beta\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kanbun#c,\\\\setkanbun\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kantlipsum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"kant\"\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"kant[${1:num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\"\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kant*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kant*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"kant*[${1:num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kantdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kantdef{${1:cmd}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"kantdef\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"kantdef{${1:cmd}}{${2:num}}[${3:num-num}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kantlipsum#c\": [\n      \"par\",\n      \"nopar\",\n      \"numbers\",\n      \"index\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kantlipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kao.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"options\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"scrhack\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"sidenotes\"\n    },\n    {\n      \"name\": \"chngcntr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"footnotebackref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"floatrow\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"newpxmath\"\n    },\n    {\n      \"name\": \"beramono\"\n    },\n    {\n      \"name\": \"mathalfa\"\n    },\n    {\n      \"name\": \"morewrites\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"subfiles\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"algorithm2e\"\n    },\n    {\n      \"name\": \"ccicons\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"nomencl\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adhoc\"\n    },\n    {\n      \"name\": \"blankpage\"\n    },\n    {\n      \"name\": \"cfr\"\n    },\n    {\n      \"name\": \"cis\"\n    },\n    {\n      \"name\": \"Class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Class{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"Command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Command{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"contentwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denovo\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"Environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Environment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"etal\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"etcetera\"\n    },\n    {\n      \"name\": \"floatingboxformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidthpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hairsp\"\n    },\n    {\n      \"name\": \"hangp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hangstar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headmarginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headmarginparwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"ifinfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfInFloatingEnvir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfInFloatingEnvir{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifwidelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfWideLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfWideLayout{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifxetexorluatex\"\n    },\n    {\n      \"name\": \"infloatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infloattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invitro\"\n    },\n    {\n      \"name\": \"invivo\"\n    },\n    {\n      \"name\": \"kaocounterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaomarginskipabove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaomarginskipbelow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofinsights\"\n    },\n    {\n      \"name\": \"listoflistings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofloiname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoflstlistings\"\n    },\n    {\n      \"name\": \"lstlistingtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginfloatsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginskip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"margintoc\"\n    },\n    {\n      \"name\": \"margintoc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"margintoc[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintocnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margintocpagenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monthyear\"\n    },\n    {\n      \"name\": \"mtocsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtocsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"mtocshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mtocsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtocsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"na\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pagelayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagelayout{${1:layout name%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagelayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Path\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Path{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"recalchead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"section[${2:short title}]{${1:title}}[${3:margintoc title%text}]\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"section{${1:title}}[${2:margintoc title%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"subsection[${2:short title}]{${1:title}}[${3:margintoc title%text}]\"\n      }\n    },\n    {\n      \"name\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"subsection{${1:title}}[${2:margintoc title%text}]\"\n      }\n    },\n    {\n      \"name\": \"thekaocounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themargintocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"vscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widefloatsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widelayoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widelayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexorluatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfootparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangfootparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullwidthpar\"\n    },\n    {\n      \"name\": \"kaobox\"\n    },\n    {\n      \"name\": \"kaobox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{kaobox}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kaocounter\"\n    },\n    {\n      \"name\": \"kaofloating\"\n    },\n    {\n      \"name\": \"marginlisting\"\n    },\n    {\n      \"name\": \"marginlisting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"wideequation\"\n    },\n    {\n      \"name\": \"widepar\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{kaobox}\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignore|}\",\n      \"savelowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"nameref=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"graphical environment=${1:envname}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\",\n      \"\",\n      \"frame style={${1:TikZ options}}\",\n      \"frame style image=${1:file name}\",\n      \"frame style tile={${1:graphics options}}{${2:file}}\",\n      \"frame hidden\",\n      \"interior style={${1:TikZ options}}\",\n      \"interior style image=${1:file name}\",\n      \"interior style tile={${1:graphics options}}{${2:file}}\",\n      \"interior hidden\",\n      \"segmentation style={${1:TikZ options}}\",\n      \"segmentation hidden\",\n      \"title style={${1:TikZ options}}\",\n      \"title style image=${1:file name}\",\n      \"title style tile={${1:graphics options}}{${2:file}}\",\n      \"title hidden\",\n      \"titlerule style={${1:TikZ options}}\",\n      \"tcb fill frame\",\n      \"tcb fill interior\",\n      \"tcb fill title\",\n      \"attach boxed title to top left\",\n      \"attach boxed title to top left={${1:boxtitle options}}\",\n      \"attach boxed title to top text left\",\n      \"attach boxed title to top text left={${1:boxtitle options}}\",\n      \"attach boxed title to top center\",\n      \"attach boxed title to top center={${1:boxtitle options}}\",\n      \"attach boxed title to top right\",\n      \"attach boxed title to top right={${1:boxtitle options}}\",\n      \"attach boxed title to top text right\",\n      \"attach boxed title to top text right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom left\",\n      \"attach boxed title to bottom left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text left\",\n      \"attach boxed title to bottom text left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom center\",\n      \"attach boxed title to bottom center={${1:boxtitle options}}\",\n      \"attach boxed title to bottom right\",\n      \"attach boxed title to bottom right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text right\",\n      \"attach boxed title to bottom text right={${1:boxtitle options}}\",\n      \"attach boxed title to top\",\n      \"attach boxed title to top={${1:boxtitle options}}\",\n      \"attach boxed title to top*\",\n      \"attach boxed title to top*={${1:boxtitle options}}\",\n      \"attach boxed title to bottom\",\n      \"attach boxed title to bottom={${1:boxtitle options}}\",\n      \"attach boxed title to bottom*\",\n      \"attach boxed title to bottom*={${1:boxtitle options}}\",\n      \"flip title\",\n      \"flip title={${1:boxtitle options}}\",\n      \"boxed title size=${1|title,standard,copy|}\",\n      \"boxed title style={${1:options}}\",\n      \"no boxed title style\",\n      \"hbox boxed title\",\n      \"minipage boxed title\",\n      \"minipage boxed title=\",\n      \"minipage boxed title*\",\n      \"minipage boxed title*=\",\n      \"tikznode boxed title={${1:TikZ options}}\",\n      \"varwidth boxed title\",\n      \"varwidth boxed title=\",\n      \"varwidth boxed title*\",\n      \"varwidth boxed title*=\",\n      \"watermark text=${1:text}\",\n      \"watermark text on=${1:part} is ${2:text}\",\n      \"watermark graphics=${1:file name}\",\n      \"watermark graphics on=${1:part} is ${2:file}\",\n      \"watermark tikz={${1:code}}\",\n      \"watermark tikz on=${1:part} is ${2:code}\",\n      \"no watermark\",\n      \"watermark opacity=${1:fraction}\",\n      \"watermark zoom=${1:fraction}\",\n      \"watermark shrink=${1:fraction}\",\n      \"watermark overzoom=${1:fraction}\",\n      \"watermark stretch=${1:fraction}\",\n      \"watermark color=\",\n      \"clip watermark\",\n      \"clip title\",\n      \"clip upper\",\n      \"clip lower\",\n      \"borderline={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no borderline\",\n      \"show bounding box\",\n      \"show bounding box=\",\n      \"borderline north={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline south={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline east={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline west={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline horizontal={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline vertical={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no shadow\",\n      \"drop shadow\",\n      \"drop shadow=\",\n      \"drop fuzzy shadow\",\n      \"drop fuzzy shadow=\",\n      \"drop midday shadow\",\n      \"drop midday shadow=\",\n      \"drop fuzzy midday shadow\",\n      \"drop fuzzy midday shadow=\",\n      \"halo\",\n      \"halo=${1:size} with ${2:color}\",\n      \"fuzzy halo\",\n      \"fuzzy halo=${1:size} with ${2:color}\",\n      \"drop shadow southeast\",\n      \"drop shadow southeast=\",\n      \"drop shadow south\",\n      \"drop shadow south=\",\n      \"drop shadow southwest\",\n      \"drop shadow southwest=\",\n      \"drop shadow west\",\n      \"drop shadow west=\",\n      \"drop shadow northwest\",\n      \"drop shadow northwest=\",\n      \"drop shadow north\",\n      \"drop shadow north=\",\n      \"drop shadow northeast\",\n      \"drop shadow northeast=\",\n      \"drop shadow east\",\n      \"drop shadow east=\",\n      \"drop fuzzy shadow southeast\",\n      \"drop fuzzy shadow southeast=\",\n      \"drop fuzzy shadow south\",\n      \"drop fuzzy shadow south=\",\n      \"drop fuzzy shadow southwest\",\n      \"drop fuzzy shadow southwest=\",\n      \"drop fuzzy shadow west\",\n      \"drop fuzzy shadow west=\",\n      \"drop fuzzy shadow northwest\",\n      \"drop fuzzy shadow northwest=\",\n      \"drop fuzzy shadow north\",\n      \"drop fuzzy shadow north=\",\n      \"drop fuzzy shadow northeast\",\n      \"drop fuzzy shadow northeast=\",\n      \"drop fuzzy shadow east\",\n      \"drop fuzzy shadow east=\",\n      \"drop lifted shadow\",\n      \"drop lifted shadow=\",\n      \"drop small lifted shadow\",\n      \"drop small lifted shadow=\",\n      \"drop large lifted shadow\",\n      \"drop large lifted shadow=\",\n      \"shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:TikZ options}}\",\n      \"fuzzy shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:step}}{${5:TikZ options}}\",\n      \"smart shadow arc\",\n      \"lifted shadow={${1:xshift}}{${2:yshift}}{${3:bend}}{${4:step}}{${5:TikZ options}}\",\n      \"tikz={${1:TikZ options}}\",\n      \"tikz reset\",\n      \"at begin tikz={${1:TikZ code}}\",\n      \"at begin tikz reset\",\n      \"at end tikz={${1:TikZ code}}\",\n      \"at end tikz reset\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:fraction}\",\n      \"remember\",\n      \"remember as=${1:name}\",\n      \"underlay={${1:code}}\",\n      \"no underlay\",\n      \"underlay broken={${1:code}}\",\n      \"underlay unbroken={${1:code}}\",\n      \"no underlay unbroken\",\n      \"underlay first={${1:code}}\",\n      \"no underlay first\",\n      \"underlay middle={${1:code}}\",\n      \"no underlay middle\",\n      \"underlay last={${1:code}}\",\n      \"no underlay last\",\n      \"underlay boxed title={${1:code}}\",\n      \"no underlay boxed title\",\n      \"underlay unbroken and first={${1:code}}\",\n      \"underlay middle and last={${1:code}}\",\n      \"underlay unbroken and last={${1:code}}\",\n      \"underlay first and middle={${1:code}}\",\n      \"finish={${1:code}}\",\n      \"no finish\",\n      \"finish broken={${1:code}}\",\n      \"finish unbroken={${1:code}}\",\n      \"no finish unbroken\",\n      \"finish first={${1:code}}\",\n      \"no finish first\",\n      \"finish middle={${1:code}}\",\n      \"no finish middle\",\n      \"finish last={${1:code}}\",\n      \"no finish last\",\n      \"finish unbroken and first={${1:code}}\",\n      \"finish middle and last={${1:code}}\",\n      \"finish unbroken and last={${1:code}}\",\n      \"finish first and middle={${1:code}}\",\n      \"hyperref=${1:marker}\",\n      \"hyperref interior=${1:marker}\",\n      \"hyperref title=${1:marker}\",\n      \"hyperref node={${1:marker}}{${2:node}}\",\n      \"hyperlink=${1:marker}\",\n      \"hyperlink interior=${1:marker}\",\n      \"hyperlink title=${1:marker}\",\n      \"hyperlink node={${1:marker}}{${2:node}}\",\n      \"hyperurl=${1:URL}\",\n      \"hyperurl interior=${1:URL}\",\n      \"hyperurl title=${1:URL}\",\n      \"hyperurl node={${1:URL}}{${2:node}}\",\n      \"hyperurl*={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* interior={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* title={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* node={${1:hyperref options}}{${2:URL}}{${3:node}}\",\n      \"draftmode\",\n      \"standard\",\n      \"standard jigsaw\",\n      \"enhanced\",\n      \"enhanced standard\",\n      \"blank\",\n      \"enhanced jigsaw\",\n      \"enhanced standard jigsaw\",\n      \"marker\",\n      \"bicolor\",\n      \"colbacklower=\",\n      \"opacitybacklower=${1:fraction}\",\n      \"overlaplower=\",\n      \"bicolor jigsaw\",\n      \"tile\",\n      \"beamer\",\n      \"widget\",\n      \"empty\",\n      \"blanker\",\n      \"blankest\",\n      \"spartan\",\n      \"draft\",\n      \"freelance\",\n      \"extend freelance={${1:options}}\",\n      \"extend freelancefirst={${1:options}}\",\n      \"extend freelancemiddle={${1:options}}\",\n      \"extend freelancelast={${1:options}}\",\n      \"only=<${1:overlay spec}>{${2:options}}\",\n      \"hide=<${1:overlay spec}>\",\n      \"beamer hidden/.style={${1:options}}\",\n      \"alert=<${1:overlay spec}>\",\n      \"beamer alerted/.style={${1:options}}\",\n      \"\",\n      \"breakable\",\n      \"breakable=${1|true,false,unlimited|}\",\n      \"unbreakable\",\n      \"enforce breakable\",\n      \"title after break=${1:text}\",\n      \"notitle after break\",\n      \"adjusted title after break=${1:text}\",\n      \"lines before break=${1:number}\",\n      \"break at=${1:length1/length2/...}\",\n      \"enlargepage=${1:length1/length2/...}\",\n      \"enlargepage flexible=\",\n      \"compress page\",\n      \"compress page=${1|all,baselineskip,none|}\",\n      \"shrink break goal=\",\n      \"use color stack\",\n      \"toprule at break=\",\n      \"bottomrule at break=\",\n      \"topsep at break=\",\n      \"bottomsep at break=\",\n      \"pad before break=\",\n      \"pad before break*=\",\n      \"pad after break=\",\n      \"pad at break=\",\n      \"pad at break*=\",\n      \"height fixed for=${1|none,first,middle,last,first and middle,middle and last,all|}\",\n      \"vfill before first\",\n      \"segmentation at break\",\n      \"extras={${1:options}}\",\n      \"no extras\",\n      \"extras broken={${1:options}}\",\n      \"extras unbroken={${1:options}}\",\n      \"no extras unbroken\",\n      \"extras first={${1:options}}\",\n      \"no extras first\",\n      \"extras middle={${1:options}}\",\n      \"no extras middle\",\n      \"extras last={${1:options}}\",\n      \"no extras last\",\n      \"extras unbroken and first={${1:options}}\",\n      \"extras middle and last={${1:options}}\",\n      \"extras unbroken and last={${1:options}}\",\n      \"extras first and middle={${1:options}}\",\n      \"extras title after break={${1:options}}\",\n      \"no extras title after break\",\n      \"\",\n      \"before title app={${1:code}}\",\n      \"before title pre={${1:code}}\",\n      \"after title app={${1:code}}\",\n      \"after title pre={${1:code}}\",\n      \"before upper app={${1:code}}\",\n      \"before upper pre={${1:code}}\",\n      \"after upper app={${1:code}}\",\n      \"after upper pre={${1:code}}\",\n      \"before lower app={${1:code}}\",\n      \"before lower pre={${1:code}}\",\n      \"after lower app={${1:code}}\",\n      \"after lower pre={${1:code}}\",\n      \"before app={${1:code}}\",\n      \"before pre={${1:code}}\",\n      \"after app={${1:code}}\",\n      \"after pre={${1:code}}\",\n      \"before float app={${1:code}}\",\n      \"before float pre={${1:code}}\",\n      \"after float app={${1:code}}\",\n      \"after float pre={${1:code}}\",\n      \"overlay app={${1:code}}\",\n      \"overlay pre={${1:code}}\",\n      \"overlay unbroken app={${1:code}}\",\n      \"overlay unbroken pre={${1:code}}\",\n      \"overlay first app={${1:code}}\",\n      \"overlay first pre={${1:code}}\",\n      \"overlay middle app={${1:code}}\",\n      \"overlay middle pre={${1:code}}\",\n      \"overlay last app={${1:code}}\",\n      \"overlay last pre={${1:code}}\",\n      \"overlay broken app={${1:code}}\",\n      \"overlay broken pre={${1:code}}\",\n      \"overlay unbroken and first app={${1:code}}\",\n      \"overlay unbroken and first pre={${1:code}}\",\n      \"overlay middle and last app={${1:code}}\",\n      \"overlay middle and last pre={${1:code}}\",\n      \"overlay unbroken and last app={${1:code}}\",\n      \"overlay unbroken and last pre={${1:code}}\",\n      \"overlay first and middle app={${1:code}}\",\n      \"overlay first and middle pre={${1:code}}\",\n      \"watermark text app=${1:text}\",\n      \"watermark text pre=${1:text}\",\n      \"watermark text app on=${1:part} is ${2:text}\",\n      \"watermark text pre on=${1:part} is ${2:text}\",\n      \"watermark graphics app=${1:file name}\",\n      \"watermark graphics pre=${1:file name}\",\n      \"watermark graphics app on=${1:part} is ${2:file}\",\n      \"watermark graphics pre on=${1:part} is ${2:file}\",\n      \"watermark tikz app={${1:code}}\",\n      \"watermark tikz pre={${1:code}}\",\n      \"watermark tikz app on=${1:part} is ${2:code}\",\n      \"watermark tikz pre on=${1:part} is ${2:code}\",\n      \"underlay pre={${1:code}}\",\n      \"underlay unbroken pre={${1:code}}\",\n      \"underlay first pre={${1:code}}\",\n      \"underlay middle pre={${1:code}}\",\n      \"underlay last pre={${1:code}}\",\n      \"underlay boxed title pre={${1:code}}\",\n      \"underlay broken pre={${1:code}}\",\n      \"underlay unbroken and first pre={${1:code}}\",\n      \"underlay middle and last pre={${1:code}}\",\n      \"underlay unbroken and last pre={${1:code}}\",\n      \"underlay first and middle pre={${1:code}}\",\n      \"finish pre={${1:code}}\",\n      \"finish unbroken pre={${1:code}}\",\n      \"finish first pre={${1:code}}\",\n      \"finish middle pre={${1:code}}\",\n      \"finish last pre={${1:code}}\",\n      \"finish broken pre={${1:code}}\",\n      \"finish unbroken and first pre={${1:code}}\",\n      \"finish middle and last pre={${1:code}}\",\n      \"finish unbroken and last pre={${1:code}}\",\n      \"finish first and middle pre={${1:code}}\",\n      \"frame code app={${1:code}}\",\n      \"frame code pre={${1:code}}\",\n      \"interior titled code app={${1:code}}\",\n      \"interior titled code pre={${1:code}}\",\n      \"interior code app={${1:code}}\",\n      \"interior code pre={${1:code}}\",\n      \"segmentation code app={${1:code}}\",\n      \"segmentation code pre={${1:code}}\",\n      \"title code app={${1:code}}\",\n      \"title code pre={${1:code}}\",\n      \"extras pre={${1:options}}\",\n      \"extras unbroken pre={${1:options}}\",\n      \"extras first pre={${1:options}}\",\n      \"extras middle pre={${1:options}}\",\n      \"extras last pre={${1:options}}\",\n      \"extras broken pre={${1:options}}\",\n      \"extras unbroken and first pre={${1:options}}\",\n      \"extras middle and last pre={${1:options}}\",\n      \"extras unbroken and last pre={${1:options}}\",\n      \"extras first and middle pre={${1:options}}\",\n      \"listing options app={${1:options}}\",\n      \"listing options pre={${1:options}}\",\n      \"minted options app={${1:options}}\",\n      \"minted options pre={${1:options}}\",\n      \"\",\n      \"verbatim\",\n      \"\",\n      \"listing options={${1:listings options}}\",\n      \"no listing options\",\n      \"listing style=${1:style}\",\n      \"listing inputencoding=${1:encoding}\",\n      \"listing remove caption\",\n      \"every listing line=${1:text}\",\n      \"every listing line*=${1:text}\",\n      \"listing utf8=${1:encoding}\",\n      \"minted language=${1:programming lang}\",\n      \"minted options={${1:minted options}}\",\n      \"default minted options={${1:minted options}}\",\n      \"minted style=${1:style}\",\n      \"listing engine=${1|listings,minted|}\",\n      \"listing file=${1:file name}\",\n      \"listing and text\",\n      \"text and listing\",\n      \"listing only\",\n      \"text only\",\n      \"comment=${1:text}\",\n      \"comment only\",\n      \"image comment={${1:graphics options}}{${2:file}}\",\n      \"tcbimage comment=${1:file name}\",\n      \"pdf comment\",\n      \"pdf comment=${1:file name}\",\n      \"pdf extension=${1:extension}\",\n      \"comment style={${1:options}}\",\n      \"listing and comment\",\n      \"comment and listing\",\n      \"listing side text\",\n      \"text side listing\",\n      \"listing outside text\",\n      \"text outside listing\",\n      \"listing side comment\",\n      \"comment side listing\",\n      \"listing outside comment\",\n      \"comment outside listing\",\n      \"listing above text\",\n      \"listing above* text\",\n      \"text above listing\",\n      \"text above* listing\",\n      \"listing above comment\",\n      \"listing above* comment\",\n      \"comment above listing\",\n      \"comment above* listing\",\n      \"no process\",\n      \"process code={${1:code}}\",\n      \"run system command=${1:system command}\",\n      \"compilable listing\",\n      \"run pdflatex=${1:arguments}\",\n      \"run pdflatex\",\n      \"run xelatex=${1:arguments}\",\n      \"run xelatex\",\n      \"run lualatex=${1:arguments}\",\n      \"run lualatex\",\n      \"run makeindex=${1:arguments}\",\n      \"run makeindex\",\n      \"run bibtex=${1:arguments}\",\n      \"run bibtex\",\n      \"run biber=${1:arguments}\",\n      \"run biber\",\n      \"run arara=${1:arguments}\",\n      \"run arara\",\n      \"run latex=${1:arguments}\",\n      \"run latex\",\n      \"run dvips=${1:arguments}\",\n      \"run dvips\",\n      \"run ps2pdf=${1:arguments}\",\n      \"run ps2pdf\",\n      \"freeze file=${1:file}\",\n      \"freeze none\",\n      \"freeze extension=${1:text}\",\n      \"freeze pdf\",\n      \"freeze png\",\n      \"freeze jpg\",\n      \"externalize listing=${1:name}\",\n      \"externalize listing!=${1:name}\"\n    ],\n    \"\\\\pagelayout\": [\n      \"margin\",\n      \"wide\",\n      \"fullwidth\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"pagenum.scrheadings\",\n      \"centeredpagenum.scrheadings\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kaobiblio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"perpage\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"biblatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"formatmargincitation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatmargincitation{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"formatmarginsupercitation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatmarginsupercitation{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"sidecite[${2:offset%l}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecite[${2:offset%l}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecite[${2:offset%l}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidesupercite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidesupercite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidesupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"sidesupercite[${2:offset%l}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidesupercite[${2:offset%l}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidesupercite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidesupercite[${2:offset%l}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidetextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidetextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidetextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"sidetextcite[${2:offset%l}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidetextcite[${2:offset%l}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidetextcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidetextcite[${2:offset%l}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"sideparencite[${2:offset%l}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideparencite[${2:offset%l}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideparencite[${2:offset%l}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"sideparencite*[${2:offset%l}][${3:prenote}][${4:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideparencite*[${2:offset%l}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideparencite*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideparencite*[${2:offset%l}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"IfStringInList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfStringInList{${1:string}}{${2:list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflinkparens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"if\": \"natbib=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mparencite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mparencite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mparencite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mparencite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mfootcitetext[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfootcitetext[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mfootcitetext\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfootcitetext{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mtextcite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mtextcite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mtextcite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mtextcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"msupercite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msupercite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mcite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mparencite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mparencite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mparencite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparencite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mautocite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Mautocite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mautocite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Mautocite*\",\n      \"if\": \"mcite=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mautocite*{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kaobiblio#c\": [\n      \"addspace\",\n      \"linkeverything\",\n      \"backend=${1|bibtex,bibtex8,biber|}\",\n      \"style=${1:file}\",\n      \"bibstyle=${1:file}\",\n      \"citestyle=${1:file}\",\n      \"natbib\",\n      \"mcite\",\n      \"casechanger=${1|auto,latex2e,expl3|}\",\n      \"datamodel=${1:model}\",\n      \"sorting=${1|nty,nyt,nyvt,anyt,anyvt,ynt,ydnt,none,debug|}\",\n      \"sortcase\",\n      \"sortupper\",\n      \"sortlocale=\",\n      \"sortcites\",\n      \"sortsets\",\n      \"maxnames=${1:integer}\",\n      \"minnames=${1:integer}\",\n      \"maxbibnames=${1:integer}\",\n      \"minbibnames=${1:integer}\",\n      \"maxcitenames=${1:integer}\",\n      \"mincitenames=${1:integer}\",\n      \"maxsortnames=${1:integer}\",\n      \"minsortnames=${1:integer}\",\n      \"maxitems=${1:integer}\",\n      \"minitems=${1:integer}\",\n      \"autocite=${1|plain,inline,footnote,superscript|}\",\n      \"autopunct\",\n      \"language=${1|autobib,autocite,auto|}\",\n      \"clearlang\",\n      \"autolang=${1|none,hyphen,other,other*,langname|}\",\n      \"langhook=${1|captions,extras|}\",\n      \"block=${1|none,space,par,nbpar,ragged|}\",\n      \"locallabelwidth\",\n      \"notetype=${1|foot+end,footonly,endonly|}\",\n      \"hyperref=${1|true,false,auto,manual|}\",\n      \"backref\",\n      \"backrefstyle=${1|none,three,two,two+,three+,all+|}\",\n      \"backrefsetstyle=${1|=setonly,memonly,setormem,setandmem,memandset,setplusmem|}\",\n      \"backreffloats\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"loadfiles\",\n      \"refsection=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"refsegment=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"citereset=${1|none,part,chapter,chapter+,section,section+,subsection,subsection+|}\",\n      \"abbreviate\",\n      \"date=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"labeldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"eventdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"origdate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"urldate=${1|year,short,long,terse,comp,ymd,iso|}\",\n      \"alldates=${1|year,short,long,terse,comp,iso|}\",\n      \"julian\",\n      \"gregorianstart=${1:YYYY-MM-DD}\",\n      \"datezeros\",\n      \"timezeros\",\n      \"timezones\",\n      \"seconds\",\n      \"dateabbrev\",\n      \"datecirca\",\n      \"dateuncertain\",\n      \"dateera=${1|astronomical,secular,christian|}\",\n      \"dateeraauto=${1:integer}\",\n      \"time=${1|12h,24h,24hcomp|}\",\n      \"labeltime=${1|12h,24h,24hcomp|}\",\n      \"eventtime=${1|12h,24h,24hcomp|}\",\n      \"origtime=${1|12h,24h,24hcomp|}\",\n      \"urltime=${1|12h,24h,24hcomp|}\",\n      \"alltimes=${1|12h,24h,24hcomp|}\",\n      \"dateusetime\",\n      \"labeldateusetime\",\n      \"eventdateusetime\",\n      \"origdateusetime\",\n      \"urldateusetime\",\n      \"alldatesusetime\",\n      \"defernumbers\",\n      \"punctfont\",\n      \"arxiv=${1|abs,ps,pdf,format|}\",\n      \"texencoding=\",\n      \"bibencoding=\",\n      \"safeinputenc\",\n      \"bibwarn\",\n      \"mincrossrefs=${1:integer}\",\n      \"minxrefs=${1:integer}\",\n      \"bibtexcaseprotection\",\n      \"isbn\",\n      \"url\",\n      \"doi\",\n      \"eprint\",\n      \"related\",\n      \"subentry\",\n      \"subentrycomp\",\n      \"dashed\",\n      \"mergedate=${1|false,minimum,basic,compact,maximum,true|}\",\n      \"ibidpage\",\n      \"citepages=${1|permit,suppress,omit,separate|}\",\n      \"strict\",\n      \"pagetracker=${1|true,false,page,spread|}\",\n      \"citecounter=${1|true,false,context|}\",\n      \"citetracker=${1|true,false,context,strict,constrict|}\",\n      \"ibidtracker=${1|true,false,context,strict,constrict|}\",\n      \"opcittracker=${1|true,false,context,strict,constrict|}\",\n      \"loccittracker=${1|true,false,context,strict,constrict|}\",\n      \"idemtracker=${1|true,false,context,strict,constrict|}\",\n      \"trackfloats\",\n      \"parentracker\",\n      \"maxparens=${1:integer}\",\n      \"giveninits\",\n      \"terseinits\",\n      \"labelalpha\",\n      \"maxalphanames=${1:integer}\",\n      \"minalphanames=${1:integer}\",\n      \"labelnumber\",\n      \"noroman\",\n      \"labeltitle\",\n      \"labeltitleyear\",\n      \"labeldateparts\",\n      \"singletitle\",\n      \"uniquetitle\",\n      \"uniquebaretitle\",\n      \"uniquework\",\n      \"uniqueprimaryauthor\",\n      \"uniquename=${1|true,false,init,full,allinit,allfull,mininit,minfull|}\",\n      \"uniquelist=${1|true,false,minyear|}\",\n      \"nohashothers\",\n      \"nosortothers\",\n      \"useauthor\",\n      \"useeditor\",\n      \"usetranslator\",\n      \"useprefix\",\n      \"indexing=${1|true,false,cite,bib|}\",\n      \"skipbib\",\n      \"skipbiblist\",\n      \"skiplab\",\n      \"dataonly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kaobiblio#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kaorefs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=section\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=slide\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref=page\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"colorlinks=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chapternameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionnameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnameplural\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionnameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurenameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablenameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnameshort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assumname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labpage{${1:pagelabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labpart{${1:partlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labch{${1:chlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labsec{${1:seclabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labsubsec{${1:subseclabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labfig{${1:figlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labtab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labtab{${1:tablabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labeq{${1:eqlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labdef{${1:deflabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labassum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labassum{${1:assumlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labthm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labthm{${1:thmlabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labprop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labprop{${1:proplabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"lablemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lablemma{${1:lemmalabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labremark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labremark{${1:remarklabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labexample{${1:examplelabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"labexercise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labexercise{${1:exerciselabel%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"refpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refpage{${1:pagelabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refpage#c,\\\\vrefpage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefpage{${1:pagelabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refpage#c,\\\\vrefpage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arefpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arefpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"avrefpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avrefpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nrefpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrefpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frefpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frefpart{${1:partlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refchshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refchshort{${1:chlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refch{${1:chlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefch{${1:chlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nrefch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrefch{${1:chlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frefch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frefch{${1:chlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refsecshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsecshort{${1:seclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsec{${1:seclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefsec{${1:seclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nrefsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrefsec{${1:seclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frefsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frefsec{${1:seclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refsubsecshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsubsecshort{${1:subseclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsubsec{${1:subseclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefsubsec{${1:subseclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nrefsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrefsubsec{${1:subseclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frefsubsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frefsubsec{${1:subseclabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reffigshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reffigshort{${1:figlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reffigshort#c,\\\\reffig#c,\\\\vreffig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reffig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reffig{${1:figlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reffigshort#c,\\\\reffig#c,\\\\vreffig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vreffig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vreffig{${1:figlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reffigshort#c,\\\\reffig#c,\\\\vreffig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reftab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reftab{${1:tablabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reftab#c,\\\\vreftab#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vreftab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vreftab{${1:tablabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reftab#c,\\\\vreftab#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refeqshort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refeqshort{${1:eqlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refeqshort#c,\\\\refeq#c,\\\\vrefeq#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refeq{${1:eqlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refeqshort#c,\\\\refeq#c,\\\\vrefeq#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefeq{${1:eqlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refeqshort#c,\\\\refeq#c,\\\\vrefeq#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refdef{${1:deflabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refdef#c,\\\\vrefdef#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefdef{${1:deflabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refdef#c,\\\\vrefdef#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refassum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refassum{${1:assumlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refassum#c,\\\\vrefassum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefassum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefassum{${1:assumlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refassum#c,\\\\vrefassum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refthm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refthm{${1:thmlabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refthm#c,\\\\vrefthem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefthm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefthm{${1:thmlabel%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"refprop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refprop{${1:proplabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refprop#c,\\\\vrefprop#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefprop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefprop{${1:proplabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refprop#c,\\\\vrefprop#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reflemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflemma{${1:lemmalabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reflemma#c,\\\\vreflemma#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vreflemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vreflemma{${1:lemmalabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\reflemma#c,\\\\vreflemma#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refremark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refremark{${1:remarklabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refremark#c,\\\\vrefremark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefremark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefremark{${1:remarklabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refremark#c,\\\\vrefremark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refexample{${1:examplelabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refexample#c,\\\\vrefexample#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefexample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefexample{${1:examplelabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refexample#c,\\\\vrefexample#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refexercise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refexercise{${1:exerciselabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refexercise#c,\\\\vrefexercise#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrefexercise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrefexercise{${1:exerciselabel%keyvals}}\",\n        \"keys\": [\n          \"\\\\refexercise#c,\\\\vrefexercise#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"HyperDestRename\",\n      \"if\": \"destlabel=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HyperDestRename{${1:destination}}{${2:newname}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"if\": \"hyperindex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kaorefs#c\": [\n      \"afrikaans\",\n      \"american\",\n      \"arabic\",\n      \"austrian\",\n      \"naustrian\",\n      \"basque\",\n      \"bahasam\",\n      \"brazil\",\n      \"breton\",\n      \"bulgarian\",\n      \"catalan\",\n      \"croatian\",\n      \"czech\",\n      \"danish\",\n      \"dutch\",\n      \"english\",\n      \"esperanto\",\n      \"finnish\",\n      \"french\",\n      \"galician\",\n      \"german\",\n      \"ngerman\",\n      \"greek\",\n      \"icelandic\",\n      \"italian\",\n      \"japanese\",\n      \"magyar\",\n      \"norsk\",\n      \"nynorsk\",\n      \"polish\",\n      \"portuges\",\n      \"romanian\",\n      \"russian\",\n      \"slovak\",\n      \"slovene\",\n      \"spanish\",\n      \"swedish\",\n      \"turkish\",\n      \"ukrainian\",\n      \"francais\",\n      \"germanb\",\n      \"draft\",\n      \"final\",\n      \"space\",\n      \"nospace\",\n      \"addtopdfcreator=${1:text}\",\n      \"allbordercolors=\",\n      \"allcolors=\",\n      \"anchorcolor=\",\n      \"backref=${1|section,slide,page,none,false|}\",\n      \"baseurl=${1:URL}\",\n      \"bookmarks\",\n      \"bookmarksdepth\",\n      \"bookmarksdepth=${1:number}\",\n      \"bookmarksnumbered\",\n      \"bookmarksopen\",\n      \"bookmarksopenlevel=${1:level}\",\n      \"bookmarkstype=\",\n      \"breaklinks\",\n      \"citebordercolor=\",\n      \"citecolor=\",\n      \"CJKbookmarks\",\n      \"colorlinks\",\n      \"customdriver=${1:file}\",\n      \"debug\",\n      \"destlabel\",\n      \"draft\",\n      \"driverfallback=${1:driver}\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"dvipdfmx-outline-open\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"encap=${1:character}\",\n      \"extension=${1:file ext}\",\n      \"filebordercolor=\",\n      \"filecolor=\",\n      \"final\",\n      \"frenchlinks\",\n      \"hidelinks\",\n      \"hyperfigures\",\n      \"hyperfootnotes\",\n      \"hyperindex\",\n      \"hypertex\",\n      \"hypertexnames\",\n      \"implicit\",\n      \"linkbordercolor=\",\n      \"linkcolor=\",\n      \"linkfileprefix=${1:prefix}\",\n      \"linktoc=${1|section,page,all,none|}\",\n      \"linktocpage\",\n      \"luatex\",\n      \"menubordercolor=\",\n      \"menucolor=\",\n      \"nativepdf\",\n      \"naturalnames\",\n      \"nesting\",\n      \"next-anchor=${1:anchor name}\",\n      \"ocgcolorlinks\",\n      \"pageanchor\",\n      \"pagebackref\",\n      \"pdfa\",\n      \"pdfauthor=${1:author}\",\n      \"pdfborder=\",\n      \"pdfborderstyle=\",\n      \"pdfcenterwindow\",\n      \"pdfcreationdate=${1:date}\",\n      \"pdfcreator=${1:creator}\",\n      \"pdfdirection=${1|L2R,R2L|}\",\n      \"pdfdisplaydoctitle\",\n      \"pdfduplex\",\n      \"pdfencoding=${1|pdfdoc,unicode,auto|}\",\n      \"pdfescapeform\",\n      \"pdffitwindow\",\n      \"pdfhighlight=${1|/I,/N,/O,/P|}\",\n      \"pdfinfo={${1:info keys}}\",\n      \"pdfkeywords={${1:keyword list}}\",\n      \"pdflang=${1:lang id}\",\n      \"pdflinkmargin=\",\n      \"pdfmark\",\n      \"pdfmenubar\",\n      \"pdfmoddate=${1:date}\",\n      \"pdfnewwindow\",\n      \"pdfnonfullscreenpagemode\",\n      \"pdfnumcopies=${1:integer}\",\n      \"pdfpageduration=\",\n      \"pdfpagelabels\",\n      \"pdfpagelayout=${1|SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight|}\",\n      \"pdfpagemode=${1|FullScreen,UseNone,UseOutlines,UseOC,UseAttachments,UseThumbs|}\",\n      \"pdfpagescrop=\",\n      \"pdfpagetransition=${1|Split,Blinds,Box,Wipe,Dissolve,Glitter,R,Fly,Push,Cover,Uncover,Fade|}\",\n      \"pdfpicktraybypdfsize\",\n      \"pdfprintarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfprintpagerange=\",\n      \"pdfprintscaling=${1|None,AppDefault|}\",\n      \"pdfproducer=${1:producer}\",\n      \"pdfremotestartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfstartpage=${1:page number}\",\n      \"pdfstartview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfsubject=${1:subject}\",\n      \"pdftex\",\n      \"pdftitle=${1:title}\",\n      \"pdftoolbar\",\n      \"pdftrapped=${1|True,False,Unknown|}\",\n      \"pdfusetitle\",\n      \"pdfversion=${1:version}\",\n      \"pdfview=${1|XYZ,Fit,FitH,FitV,FitR,FitB,FitBH,FitBV|}\",\n      \"pdfviewarea=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfviewclip=${1|Mediabox,CropBox,BleedBox,TrimBox,ArtBox|}\",\n      \"pdfwindowui\",\n      \"plainpages\",\n      \"ps2pdf\",\n      \"psdextra\",\n      \"raiselinks\",\n      \"runbordercolor=\",\n      \"runcolor=\",\n      \"setpagesize\",\n      \"tex4ht\",\n      \"textures\",\n      \"unicode\",\n      \"urlbordercolor=\",\n      \"urlcolor=\",\n      \"verbose\",\n      \"vtex\",\n      \"vtexpdfmark\",\n      \"xetex\",\n      \"poorman\",\n      \"sort\",\n      \"compress\",\n      \"sort&compress\",\n      \"nosort\",\n      \"capitalise\",\n      \"capitalize\",\n      \"nameinlink\",\n      \"noabbrev\",\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"dutch\",\n      \"french\",\n      \"spanish\",\n      \"italian\",\n      \"russian\",\n      \"ukrainian\",\n      \"norsk\",\n      \"danish\",\n      \"esperanto\",\n      \"swedish\",\n      \"brazilian\",\n      \"catalan\"\n    ],\n    \"\\\\refpage#c,\\\\vrefpage#c\": [\n      \"%kaopagelabel\"\n    ],\n    \"\\\\arefpart#c,\\\\avrefpart#c,\\\\refpart#c,\\\\vrefpart#c,\\\\nrefpart#c,\\\\frefpart#c\": [\n      \"%kaopartlabel\"\n    ],\n    \"\\\\refchshort#c,\\\\refch#c,\\\\vrefch#c,\\\\nrefch#c,\\\\frefch#c\": [\n      \"%kaochapterlabel\"\n    ],\n    \"\\\\refsecshort#c,\\\\refsec#c,\\\\vrefsec#c,\\\\nrefsec#c,\\\\frefsec#c\": [\n      \"%kaosectionlabel\"\n    ],\n    \"\\\\refsubsecshort#c,\\\\refsubsec#c,\\\\vrefsubsec#c,\\\\nrefsubsec#c,\\\\frefsubsec#c\": [\n      \"%kaosubsectionlabel\"\n    ],\n    \"\\\\reffigshort#c,\\\\reffig#c,\\\\vreffig#c\": [\n      \"%kaofigurelabel\"\n    ],\n    \"\\\\reftab#c,\\\\vreftab#c\": [\n      \"%kaotablelabel\"\n    ],\n    \"\\\\refeqshort#c,\\\\refeq#c,\\\\vrefeq#c\": [\n      \"%kaoequationlabel\"\n    ],\n    \"\\\\refdef#c,\\\\vrefdef#c\": [\n      \"%kaodefinitionlabel\"\n    ],\n    \"\\\\refassum#c,\\\\vrefassum#c\": [\n      \"%kaoassumptionlabel\"\n    ],\n    \"\\\\refthm#c,\\\\vrefthem#c\": [\n      \"%kaotheoremlabel\"\n    ],\n    \"\\\\refprop#c,\\\\vrefprop#c\": [\n      \"%kaopropositionlabel\"\n    ],\n    \"\\\\reflemma#c,\\\\vreflemma#c\": [\n      \"%kaolemmalabel\"\n    ],\n    \"\\\\refremark#c,\\\\vrefremark#c\": [\n      \"%kaoremarklabel\"\n    ],\n    \"\\\\refexample#c,\\\\vrefexample#c\": [\n      \"%kaoexamplelabel\"\n    ],\n    \"\\\\refexercise#c,\\\\vrefexercise#c\": [\n      \"%kaoexerciselabel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kaorefs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kaotheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"framed\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\",\n      \"if\": \"framed\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"framed=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\",\n      \"if\": \"framed=true\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/kaotheorems#c\": [\n      \"framed\",\n      \"background=\",\n      \"theorembackground=\",\n      \"propositionbackground=\",\n      \"lemmabackground=\",\n      \"corollarybackground=\",\n      \"definitionbackground=\",\n      \"assumptionbackground=\",\n      \"remarkbackground=\",\n      \"examplebackground=\",\n      \"exercisebackground=\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"kaoplain\",\n      \"kaodefinition\",\n      \"kaoassumption\",\n      \"kaoremark\",\n      \"kaoexample\",\n      \"kaoexercise\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kaotheorems#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/karnaugh-map.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autoterms\"\n    },\n    {\n      \"name\": \"autoterms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"autoterms[${1:content}]\"\n      }\n    },\n    {\n      \"name\": \"indeterminants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indeterminants{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"manualterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manualterms{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"maxterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxterms{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"minterms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minterms{${1:cells}}\"\n      }\n    },\n    {\n      \"name\": \"terms\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"terms{${1:cells}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"implicant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"implicant{${1:northwest cell}}{${2:southeast cell}}\"\n      }\n    },\n    {\n      \"name\": \"implicant\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"implicant{${1:northwest cell}}{${2:southeast cell}}[${3:submaps}]\"\n      }\n    },\n    {\n      \"name\": \"implicantedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"implicantedge{${1:NWNW}}{${2:NWSE}}{${3:SENW}}{${4:SESE}}\"\n      }\n    },\n    {\n      \"name\": \"implicantedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"implicantedge{${1:NWNW}}{${2:NWSE}}{${3:SENW}}{${4:SESE}}[${5:submaps}]\"\n      }\n    },\n    {\n      \"name\": \"implicantcorner\"\n    },\n    {\n      \"name\": \"implicantcorner\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"implicantcorner[${1:submaps}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/karnaugh-map#c,\\\\begin{karnaugh-map}\": [\n      \"implicantcolors={${1:list of colors}}\",\n      \"label=${1|middle,corner|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/karnaugh-map#c,\\\\begin{karnaugh-map}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/karnaughmap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"karnaughmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"karnaughmap{${1:entries}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"karnaughmap[${2:options%keyvals}]{${1:entries}}\",\n        \"keys\": [\n          \"\\\\karnaughmap,\\\\setkarnaughmap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"karnaughmapcolorfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"karnaughmapcolorfield{${1:map size}}{${2:field string}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapcolorfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"karnaughmapcolorfield[${4:TikZ keys}]{${1:map size}}{${2:field string}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"setkarnaughmap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setkarnaughmap[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\karnaughmap,\\\\setkarnaughmap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"karnaughmapCellEntries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapHighlightField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"karnaughmapHighlightField{${1:coordinates}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapHighlightField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"karnaughmapHighlightField[${3:options}]{${1:coordinates}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapNumCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapNumRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapNumVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapPCCColumnSpecifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapPrintCellContents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"karnaughmapPrintCellContents{${1:xoffset}}{${2:yoffset}}{${3:size}}{${4:rowsize}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapPrintCellContents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"karnaughmapPrintCellContents[${6:node pos}]{${1:xoffset}}{${2:yoffset}}{${3:size}}{${4:rowsize}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapPrintIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapPrintIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"karnaughmapPrintIndex[${1:numBits}]\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapPrintValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"karnaughmapPrintValue{${1:input string}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapPrintValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"karnaughmapPrintValue[${2:value}]{${1:input string}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldFOUR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldFOUR{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldFOUR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldFOUR[${3:options}]{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldTHREE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldTHREE{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldTHREE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldTHREE[${3:options}]{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldTWO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldTWO{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapShadeMapfieldTWO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"karnaughmapShadeMapfieldTWO[${3:options}]{${1:decimal number}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapVarLabelB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapVarLabelD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapVariableBaseBias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapVariableLeftBias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karnaughmapVariableTopBias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thekarnaughmapIdxCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thekarnaughmapStrCounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\karnaughmap,\\\\setkarnaughmap\": [\n      \"omitzeros\",\n      \"omitones\",\n      \"omitdontcares\",\n      \"omitbinaries\",\n      \"omitvariables\",\n      \"omitidx\",\n      \"binaryidx\",\n      \"omitnegated\",\n      \"outline\",\n      \"fill\",\n      \"opacity=${1:factor}\",\n      \"defaultmap=${1:number}\",\n      \"function=${1:function label}\",\n      \"variables=${1:variables}\",\n      \"dontcare=${1:character}\",\n      \"color=\",\n      \"draw=\",\n      \"labelcolor=\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kblocks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    },\n    {\n      \"name\": \"tikzlibrarygraphs\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ExtractCoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExtractCoordinate{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"kColorB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kColorB{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kColorL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kColorL{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kColorT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kColorT{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kCoverRect\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kCoverRect[${6:color}]{${1:ref node}}{${2:N-shift}}{${3:S-shift}}{${4:W-shift}}{${5:E-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kCoverRect\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kCoverRect{${1:ref node}}{${2:N-shift}}{${3:S-shift}}{${4:W-shift}}{${5:E-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kGain\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kGain[${3:right-of node}]{${1:node}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kGain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kGain{${1:node}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kInDown\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kInDown[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kInDown{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInDownM\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kInDownM[${6:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInDownM\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kInDownM{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kInLeft[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kInLeft{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInLeftM\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kInLeftM[${6:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInLeftM\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kInLeftM{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kInRight[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kInRight{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInRightM\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kInRightM[${6:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInRightM\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kInRightM{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInUp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kInUp[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kInUp{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kInUpM\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kInUpM[${6:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kInUpM\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kInUpM{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}{${5:style 1-6}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kJumpCS[${2:label text}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kJumpCS{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSAbove\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kJumpCSAbove[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kJumpCSAbove{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSBelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kJumpCSBelow[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kJumpCSBelow{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kJumpCSLeft[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kJumpCSLeft{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kJumpCSRight[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kJumpCSRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kJumpCSRight{${1:from node}}{${2:to node}}{${3:dir shift}}{${4:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kLink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kLink[${3:label text}]{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLink{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkCrossLeftAbove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLinkCrossLeftAbove{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkCrossLeftBelow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLinkCrossLeftBelow{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkCrossRightAbove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLinkCrossRightAbove{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkCrossRightBelow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLinkCrossRightBelow{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkdir\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kLinkdir[${4:label text}]{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkdir\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kLinkdir{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHV\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkHV[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHV\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkHV{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHVHLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kLinkHVHLeft[${6:link scale}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHVHLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kLinkHVHLeft{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHVHRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kLinkHVHRight[${6:link scale}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkHVHRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kLinkHVHRight{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kLinkn[${3:label text}]{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kLinkn{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkndir\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kLinkndir[${4:label text}]{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkndir\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kLinkndir{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknHV\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknHV[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknHV\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknHV{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVH\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknVH[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknVH{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVHHVAbove\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknVHHVAbove[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVHHVAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kLinknVHHVAbove{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVHHVBelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kLinknVHHVBelow[${6:link shift}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinknVHHVBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kLinknVHHVBelow{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVH\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVH[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVH{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHHVAbove\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHHVAbove[${6:link shift}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHHVAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHHVAbove{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHHVBelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHHVBelow[${6:link shift}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHHVBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHHVBelow{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHTFHVAbove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHTFHVAbove{${1:label1}}{${2:label2}}{${3:node1}}{${4:node2}}{${5:node3}}{${6:x}}{${7:y}}{${8:xshift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHTFHVAboveRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHTFHVAboveRight{${1:label1}}{${2:label2}}{${3:node1}}{${4:node2}}{${5:node3}}{${6:x}}{${7:y}}{${8:xshift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHTFHVBelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHTFHVBelow{${1:label1}}{${2:label2}}{${3:node1}}{${4:node2}}{${5:node3}}{${6:x}}{${7:y}}{${8:xshift}}\"\n      }\n    },\n    {\n      \"name\": \"kLinkVHTFHVBelowRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"kLinkVHTFHVBelowRight{${1:label1}}{${2:label2}}{${3:node1}}{${4:node2}}{${5:node3}}{${6:x}}{${7:y}}{${8:xshift}}\"\n      }\n    },\n    {\n      \"name\": \"kMarkNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kMarkNode{${1:xshift}}{${2:yshift}}{${3:label text}}{${4:node}}\"\n      }\n    },\n    {\n      \"name\": \"kMarkNodeAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kMarkNodeAbove{${1:xshift}}{${2:yshift}}{${3:label text}}{${4:from node}}{${5:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kMarkNodeBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kMarkNodeBelow{${1:xshift}}{${2:yshift}}{${3:label text}}{${4:from node}}{${5:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kMarkNodeLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kMarkNodeLeft{${1:xshift}}{${2:yshift}}{${3:label text}}{${4:from node}}{${5:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kMarkNodeRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kMarkNodeRight{${1:xshift}}{${2:yshift}}{${3:label text}}{${4:from node}}{${5:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusDown{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusDownA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusDownA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusDownB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusDownB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusDownL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusDownL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusUp{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusUpA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusUpA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusUpB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusUpB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusMinusUpL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusMinusUpL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusDown{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusDownA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusDownA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusDownB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusDownB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusDownL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusDownL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusUp{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusUpA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusUpA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusUpB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusUpB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kMinusPlusUpL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kMinusPlusUpL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kmT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kmT{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"kmTw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kmTw{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"kOutDown\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kOutDown[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kOutDown{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kOutLeft[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kOutLeft{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kOutRight[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kOutRight{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutUp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kOutUp[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kOutUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kOutUp{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusDownPlusUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusDownPlusUp{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusDownPlusUpA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusDownPlusUpA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusDownPlusUpB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusDownPlusUpB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusDownPlusUpL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusDownPlusUpL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDown{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDownA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDownA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDownB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDownB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDownL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDownL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDownPlaceAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDownPlaceAbove{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusDownPlaceBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusDownPlaceBelow{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusMinus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusMinus{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusMinusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusMinusA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusMinusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusMinusB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusMinusL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusMinusL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusPlus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusPlus{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusPlusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusPlusA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusPlusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusPlusB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusPlusL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusPlusL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusUp{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusUpA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusUpA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusUpB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusUpB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusMinusUpL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusMinusUpL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusDown{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusDownA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusDownA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusDownB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusDownB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusDownL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusDownL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusMinus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusMinus{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusMinusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusMinusA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusMinusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusMinusB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusMinusL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusMinusL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusPlus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusPlus{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusPlusA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusPlusA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusPlusB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusPlusB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusPlusL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusPlusL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusUp{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusUpA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusUpA{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusUpB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusUpB{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kPlusPlusUpL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kPlusPlusUpL{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kScaleDistX\"\n    },\n    {\n      \"name\": \"kScaleDistX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kScaleDistX[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"kScaleDistY\"\n    },\n    {\n      \"name\": \"kScaleDistY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kScaleDistY[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"ksfgCLink\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ksfgCLink[${4:label text}]{${1:from node}}{${2:to node}}{${3:node options}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgCLink\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksfgCLink{${1:from node}}{${2:to node}}{${3:node options}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgCLinkFlip\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ksfgCLinkFlip[${4:label text}]{${1:from node}}{${2:to node}}{${3:node options}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgCLinkFlip\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksfgCLinkFlip{${1:from node}}{${2:to node}}{${3:node options}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ksfgLinkSelfD[${2:label text}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksfgLinkSelfD{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfL\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ksfgLinkSelfL[${2:label text}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksfgLinkSelfL{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ksfgLinkSelfR[${2:label text}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksfgLinkSelfR{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfU\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ksfgLinkSelfU[${2:label text}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgLinkSelfU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksfgLinkSelfU{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeD\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ksfgNodeD[${5:link text}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ksfgNodeD{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ksfgNodeL[${5:link text}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ksfgNodeL{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeR\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ksfgNodeR[${5:link text}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ksfgNodeR{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeU\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ksfgNodeU[${5:link text}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNodeU\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ksfgNodeU{${1:from node}}{${2:to node}}{${3:label text}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgNStart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksfgNStart{${1:node name}}{${2:coord}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ksfgStart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksfgStart{${1:node name}}{${2:coord}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kShadow\"\n    },\n    {\n      \"name\": \"kStartNode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kStartNode[${2:label text}]{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"kStartNode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kStartNode{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"kStartNodec\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kStartNodec[${3:label text}]{${1:coord}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"kStartNodec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kStartNodec{${1:coord}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"kTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kTF{${1:node name}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAbove\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kTFAbove[${4:shift}]{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAbove\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kTFAbove[${4:shift}]{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFAbove{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAbove\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFAbove{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAboveLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kTFAboveLeft{${1:yshift}}{${2:xshift}}{${3:from node}}{${4:to node}}{${5:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFAboveRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kTFAboveRight{${1:yshift}}{${2:xshift}}{${3:from node}}{${4:to node}}{${5:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFBelow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kTFBelow[${4:shift}]{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFBelow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFBelow{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFBelowLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kTFBelowLeft{${1:yshift}}{${2:xshift}}{${3:from node}}{${4:to node}}{${5:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFBelowRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kTFBelowRight{${1:yshift}}{${2:xshift}}{${3:from node}}{${4:to node}}{${5:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFCs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFCs{${1:coord}}{${2:node name}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kTFLeft[${4:shift}]{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFLeft{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kTFRight[${4:shift}]{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kTFRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kTFRight{${1:from node}}{${2:to node}}{${3:label text}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInDown\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecInDown[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecInDown{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecInLeft[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecInLeft{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecInRight[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecInRight{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInUp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecInUp[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecInUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecInUp{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kVecLink[${3:label text}]{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kVecLink{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkdir\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kVecLinkdir[${4:label text}]{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkdir\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kVecLinkdir{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkHV\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinkHV[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkHV\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinkHV{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kVecLinkn[${3:label text}]{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kVecLinkn{${1:from node}}{${2:to node}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkndir\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kVecLinkndir[${4:label text}]{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkndir\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kVecLinkndir{${1:from node}}{${2:to node}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinknHV\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinknHV[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinknHV\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinknHV{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinknVH\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinknVH[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinknVH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinknVH{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkVH\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinkVH[${7:label text}]{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecLinkVH\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"kVecLinkVH{${1:from node}}{${2:to node}}{${3:yshift}}{${4:xshift}}{${5:labelpos 0-9}}{${6:mkpt}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutDown\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecOutDown[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecOutDown{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutLeft\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecOutLeft[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecOutLeft{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecOutRight[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecOutRight{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutUp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"kVecOutUp[${5:dist shift}]{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVecOutUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kVecOutUp{${1:from node}}{${2:to node}}{${3:label text}}{${4:dir shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVLinkHVHRight\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"kVLinkHVHRight[${6:link scale}]{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    },\n    {\n      \"name\": \"kVLinkHVHRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"kVLinkHVHRight{${1:label text}}{${2:from node}}{${3:to node}}{${4:from-shift}}{${5:to-shift}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"kblock\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kbordermatrix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"kbordermatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kbordermatrix{${1:array%formula}}\"\n      }\n    },\n    {\n      \"name\": \"kbldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kbrdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kbrowstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kbcolstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kbcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kbrowsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kerkis.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"calshape\"\n    },\n    {\n      \"name\": \"textcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcal{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uishape\"\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sbseries\"\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Stigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"trademark\"\n    },\n    {\n      \"name\": \"tao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Stigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VarQoppa\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keycommand.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newkeycommand{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newkeycommand{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"newkeycommand{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"newkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newkeycommand*{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newkeycommand*{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"newkeycommand*{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"newkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewkeycommand{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewkeycommand{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"renewkeycommand{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"renewkeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewkeycommand*{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewkeycommand*{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"renewkeycommand*{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"renewkeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providekeycommand{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providekeycommand{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"providekeycommand{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"providekeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"providekeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"providekeycommand[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providekeycommand*{${1:cmd}}[${3:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providekeycommand*{${1:cmd}}[${3:keys=defaults}][${4:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"providekeycommand*{${1:cmd}}[${3:keys=defaults}][${4:OptKey}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"providekeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"providekeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providekeycommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}\",\n        \"snippet\": \"providekeycommand*[${3:short-unexpand}]{${1:cmd}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newkeyenvironment{${1:envname}}[${4:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newkeyenvironment{${1:envname}}[${4:keys=defaults}][${5:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}{}\",\n        \"snippet\": \"newkeyenvironment{${1:envname}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"newkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}{}\",\n        \"snippet\": \"newkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}{}\",\n        \"snippet\": \"newkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:OptKey}][${7:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newkeyenvironment*{${1:envname}}[${4:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newkeyenvironment*{${1:envname}}[${4:keys=defaults}][${5:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}{}\",\n        \"snippet\": \"newkeyenvironment*{${1:envname}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"newkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}{}\",\n        \"snippet\": \"newkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}{}\",\n        \"snippet\": \"newkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:OptKey}][${7:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewkeyenvironment{${1:envname}}[${4:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewkeyenvironment{${1:envname}}[${4:keys=defaults}][${5:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}{}\",\n        \"snippet\": \"renewkeyenvironment{${1:envname}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"renewkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}{}\",\n        \"snippet\": \"renewkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}{}\",\n        \"snippet\": \"renewkeyenvironment[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:OptKey}][${7:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewkeyenvironment*{${1:envname}}[${4:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewkeyenvironment*{${1:envname}}[${4:keys=defaults}][${5:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}{}\",\n        \"snippet\": \"renewkeyenvironment*{${1:envname}}[${4:keys=defaults}][${5:OptKey}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"renewkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}{}\",\n        \"snippet\": \"renewkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeyenvironment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}{}\",\n        \"snippet\": \"renewkeyenvironment*[${4:short-unexpand}]{${1:envname}}[${5:keys=defaults}][${6:OptKey}][${7:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"commandkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commandkey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"getcommandkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getcommandkey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ifcommandkey\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcommandkey{${1:key%plain}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"showcommandkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcommandkeys{${1:keys%plain}}\"\n      }\n    },\n    {\n      \"name\": \"showcommandkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcommandkey{${1:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keyfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keyfig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyfig{${1:keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfig\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyfig[${3:loc}]{${1:keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfig*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyfig*{${1:keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfig*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyfig*[${3:loc}]{${1:keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keytab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keytab{${1:keyvals}}{${2:tabular contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keytab\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keytab[${3:loc}]{${1:keyvals}}{${2:tabular contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keytab*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keytab*{${1:keyvals}}{${2:tabular contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keytab*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keytab*[${3:loc}]{${1:keyvals}}{${2:tabular contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyflt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyflt{${1:float type}}{${2:keyvals}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyflt\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"keyflt[${4:loc}]{${1:float type}}{${2:keyvals}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keyflt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyflt*{${1:float type}}{${2:keyvals}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyflt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"keyflt*[${4:loc}]{${1:float type}}{${2:keyvals}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keyfigbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyfigbox{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfigbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyfigbox[${3:loc}]{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfigbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyfigbox*{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfigbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyfigbox*[${3:loc}]{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyparbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyparbox{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyparbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyparbox[${3:loc}]{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyparbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyparbox*{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyparbox*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"keyparbox*[${3:loc}]{${1:keyvals}}{${2:box contents}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"KFLTtightframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KFLTtightframe{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"KFLTlooseframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KFLTlooseframe{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"KFLTtightframewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KFLTlooseframewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KFLTimageboxwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keyfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:loc}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:loc}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keytable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keytable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:loc}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keytable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keytable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:loc}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfloat\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:loc}]{${1:float type}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keyfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}\",\n        \"snippet\": \"*{${1:float type}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keyfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}\",\n        \"snippet\": \"*[${3:loc}]{${1:float type}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keyfloats\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:num cols}}\"\n      }\n    },\n    {\n      \"name\": \"keyfloats\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:num cols}}[${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:num cols}}{${2:keyvals}}[${3:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:loc}]{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"[${3:loc}]{${1:num cols}}{${2:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}\",\n        \"snippet\": \"*{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}[]\",\n        \"snippet\": \"*{${1:num cols}}{${2:keyvals}}[${3:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}\",\n        \"snippet\": \"*[${3:loc}]{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfigs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}[]\",\n        \"snippet\": \"*[${3:loc}]{${1:num cols}}{${2:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\",\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:num cols}}{${2:keyvals}}[${3:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:loc}]{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"[${3:loc}]{${1:num cols}}{${2:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}\",\n        \"snippet\": \"*{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}[]\",\n        \"snippet\": \"*{${1:num cols}}{${2:keyvals}}[${3:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}\",\n        \"snippet\": \"*[${3:loc}]{${1:num cols}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubtabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}[]\",\n        \"snippet\": \"*[${3:loc}]{${1:num cols}}{${2:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:float type}}{${2:num cols}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"{${1:float type}}{${2:num cols}}{${3:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:loc}]{${1:float type}}{${2:num cols}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"[${4:loc}]{${1:float type}}{${2:num cols}}{${3:keyvals}}[${5:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}{}\",\n        \"snippet\": \"*{${1:float type}}{${2:num cols}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}{}{}[]\",\n        \"snippet\": \"*{${1:float type}}{${2:num cols}}{${3:keyvals}}[${4:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}{}\",\n        \"snippet\": \"*[${4:loc}]{${1:float type}}{${2:num cols}}{${3:keyvals}}\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"keysubfloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[]{}{}{}[]\",\n        \"snippet\": \"*[${4:loc}]{${1:float type}}{${2:num cols}}{${3:keyvals}}[${5:shared keyvals}]\",\n        \"keys\": [\n          \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"keywrap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:keyfloat}}\"\n      }\n    },\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"figurehere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablehere\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c,\\\\begin{keysubfigs}#c,\\\\begin{keysubtabs}#c,\\\\begin{keysubfloats}#c\": [\n      \"c={${1:caption}}\",\n      \"cstar={${1:caption}}\",\n      \"sc={${1:short caption}}\",\n      \"cont\",\n      \"l=\",\n      \"t={${1:text}}\",\n      \"tc={${1:text}}\",\n      \"tl={${1:text}}\",\n      \"tr={${1:text}}\"\n    ],\n    \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keytab#c,\\\\keytab*#c,\\\\keyflt#c,\\\\keyflt*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\keyparbox#c,\\\\keyparbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keytable}#c,\\\\begin{keyfloat}#c,\\\\begin{keyfloats}#c\": [\n      \"lw=${1:factor}\",\n      \"w=\",\n      \"h=\",\n      \"kar\",\n      \"s=${1:factor}\",\n      \"r=${1:degrees}\",\n      \"f\",\n      \"ft\",\n      \"stretch=${1:factor}\",\n      \"mo=\",\n      \"wn=${1:integer}\",\n      \"wp=${1|r,l,i,o,R,L,I,O|}\",\n      \"wo=\",\n      \"wlw=${1:factor}\",\n      \"ww=\",\n      \"va=\"\n    ],\n    \"\\\\keyfig#c,\\\\keyfig*#c,\\\\keyfigbox#c,\\\\keyfigbox*#c,\\\\begin{keyfigure}#c,\\\\begin{keysubfigs}#c\": [\n      \"ap=${1:author prefix}\",\n      \"aup=${1:author prefix}\",\n      \"af=${1:first name}\",\n      \"auf=${1:first name}\",\n      \"al=${1:last name}\",\n      \"aul=${1:last name}\",\n      \"as=${1:author suffix}\",\n      \"aus=${1:author suffix}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keyindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keyindexfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindexfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindexformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"missingkeyindexformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingkeyindexformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindexcommand{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindexprint{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindexonly{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexonly\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keyindexonly[${2:index option}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyindex{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keyindex[${2:index option}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyindexentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyindexentry{${1:key%plain}}{${2:print text}}{${3:index text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keyparse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"KeyparseKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KeyparseKeys{${1:<rule>}}\"\n      }\n    },\n    {\n      \"name\": \"KeyparseEval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KeyparseEval{${1:<rule>}}{${2:<key><args}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keyreader.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"krddefinekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krddefinekeys{${1:kfamily}}{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"krddefinekeys{${1:kfamily}}[${3:mprefix}]{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"krddefinekeys[${3:kprefix}]{${1:kfamily}}{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"krddefinekeys[${3:kprefix}]{${1:kfamily}}[${4:mprefix}]{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krddefinekeys*{${1:kfamily}}{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"krddefinekeys*{${1:kfamily}}[${3:mprefix}]{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"krddefinekeys*[${3:kprefix}]{${1:kfamily}}{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krddefinekeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"krddefinekeys*[${3:kprefix}]{${1:kfamily}}[${4:mprefix}]{${2:keylist%plain}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krdsetkeys{${1:families}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"krdsetkeys[${3:kprefix}]{${1:families}}[${4:ignored keys}]{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krdsetkeys*{${1:families}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"krdsetkeys*[${3:kprefix}]{${1:families}}[${4:ignored keys}]{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetrmkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"krdsetrmkeys{${1:families}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetrmkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"krdsetrmkeys[${2:prefix}]{${1:families}}[${3:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"krdsetrmkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"krdsetrmkeys*{${1:families}}\"\n      }\n    },\n    {\n      \"name\": \"krdsetrmkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"krdsetrmkeys*[${2:prefix}]{${1:families}}[${3:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"krdpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krdpresetkeys{${1:family}}{${2:head keys}}\"\n      }\n    },\n    {\n      \"name\": \"krdpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"krdpresetkeys[${3:prefix}]{${1:family}}{${2:head keys}}\"\n      }\n    },\n    {\n      \"name\": \"krdpostsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krdpostsetkeys{${1:family}}{${2:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"krdpostsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"krdpostsetkeys[${3:prefix}]{${1:family}}{${2:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"krddisablekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krddisablekeys{${1:family}}{${2:keys}}\"\n      }\n    },\n    {\n      \"name\": \"krddisablekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"krddisablekeys[${3:prefix}]{${1:family}}{${2:keys}}\"\n      }\n    },\n    {\n      \"name\": \"krdDeclareOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"krdDeclareOption{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"krdDeclareOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>{}[]{}\",\n        \"snippet\": \"krdDeclareOption[${3:prefix}]<${5:family}>{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"krdDeclareOption*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"krdDeclareOption*{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"krdExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"krdExecuteOptions{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]{}\",\n        \"snippet\": \"krdExecuteOptions[${2:prefix}]<${4:families}>[${3:ignored keys}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"krdProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krdProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]\",\n        \"snippet\": \"krdProcessOptions[${1:prefix}]<${3:families}>[${2:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"krdProcessOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krdProcessOptions*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]\",\n        \"snippet\": \"krdProcessOptions*[${1:prefix}]<${3:families}>[${2:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"savevaluekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savevaluekeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"savevaluekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"savevaluekeys[${3:prefix}]{${1:family}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/keystroke.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Spacebar\"\n    },\n    {\n      \"name\": \"Enter\"\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"Esc\"\n    },\n    {\n      \"name\": \"BSpace\"\n    },\n    {\n      \"name\": \"Tab\"\n    },\n    {\n      \"name\": \"Alt\"\n    },\n    {\n      \"name\": \"AltGr\"\n    },\n    {\n      \"name\": \"Del\"\n    },\n    {\n      \"name\": \"Shift\"\n    },\n    {\n      \"name\": \"PgUp\"\n    },\n    {\n      \"name\": \"PgDown\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"Ctrl\"\n    },\n    {\n      \"name\": \"Home\"\n    },\n    {\n      \"name\": \"Ins\"\n    },\n    {\n      \"name\": \"UArrow\"\n    },\n    {\n      \"name\": \"DArrow\"\n    },\n    {\n      \"name\": \"LArrow\"\n    },\n    {\n      \"name\": \"RArrow\"\n    },\n    {\n      \"name\": \"PrtSc\"\n    },\n    {\n      \"name\": \"Scroll\"\n    },\n    {\n      \"name\": \"Break\"\n    },\n    {\n      \"name\": \"NumLock\"\n    },\n    {\n      \"name\": \"keystroke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keystroke{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/keystroke#c\": [\n      \"english\",\n      \"german\",\n      \"french\",\n      \"spanish\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/keystroke#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/keytheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"aliascnt\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"unique\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"declaretheorem\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaretheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"declaretheorem\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declaretheorem[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaretheoremstyle\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaretheoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"declaretheoremstyle\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declaretheoremstyle[${2:options%keyvals}]{${1:style}}\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\",\n          \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftheorems\",\n      \"if\": \"thmtools-compat\"\n    },\n    {\n      \"name\": \"listoftheorems\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftheorems[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listofkeytheorems#c,\\\\keytheoremlistset#c,\\\\listoftheorems#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listtheoremname\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtotheorempreheadhook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempreheadhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempreheadhook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempreheadhook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostheadhook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempostheadhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostheadhook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempostheadhook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremprefoothook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheoremprefoothook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremprefoothook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheoremprefoothook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostfoothook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempostfoothook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostfoothook\",\n      \"if\": \"thmtools-compat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempostfoothook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"keytheoremset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytheoremset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/keytheorems#c,\\\\keytheoremset#c\",\n          \"\\\\keytheoremset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newkeytheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkeytheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newkeytheorem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newkeytheorem{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewkeytheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewkeytheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"renewkeytheorem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"renewkeytheorem{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"providekeytheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providekeytheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"providekeytheorem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"providekeytheorem{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declarekeytheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declarekeytheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"declarekeytheorem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"declarekeytheorem{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\",\n          \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newkeytheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newkeytheoremstyle{${1:style}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewkeytheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewkeytheoremstyle{${1:style}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"providekeytheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providekeytheoremstyle{${1:style}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"declarekeytheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarekeytheoremstyle{${1:style}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NAME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NUMBER\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NOTE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getkeytheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getkeytheorem{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"getkeytheorem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getkeytheorem[${2:property%keyvals}]{${1:tag}}\",\n        \"keys\": [\n          \"\\\\getkeytheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfRestatingTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfRestatingTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfRestatingT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfRestatingT{${1:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfRestatingF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfRestatingF{${1:false code}}\"\n      }\n    },\n    {\n      \"name\": \"listofkeytheorems\"\n    },\n    {\n      \"name\": \"listofkeytheorems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listofkeytheorems[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listofkeytheorems#c,\\\\keytheoremlistset#c,\\\\listoftheorems#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keytheoremlistset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytheoremlistset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\listofkeytheorems#c,\\\\keytheoremlistset#c,\\\\listoftheorems#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtheoremcontentsline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtheoremcontentsline{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheoremcontents{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremhook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtotheoremhook{${1:hook name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremhook\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtotheoremhook[${3:envname}]{${1:hook name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Autoref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autoref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Autoref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autoref*{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"restatable\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:envname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"restatable\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:envname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"restatable*\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:envname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"restatable*\",\n      \"if\": \"thmtools-compat\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:envname}}{${2:tag}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/key-theorems#c\": [\n      \"overload\",\n      \"thmtools-compat\",\n      \"store-all\"\n    ],\n    \"\\\\newkeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\": [\n      \"thmbox\",\n      \"thmbox=${1|L,M,S|}\",\n      \"shaded\",\n      \"shaded={${1:shade options}}\"\n    ],\n    \"\\\\usepackage/keytheorems#c,\\\\keytheoremset#c\": [\n      \"overload\",\n      \"thmtools-compat\",\n      \"store-all\",\n      \"restate-counter\",\n      \"qed-symbol=${1:symbol}\",\n      \"auto-translate\",\n      \"store-sets-label\"\n    ],\n    \"\\\\keytheoremset#c\": [\n      \"continues-code=${1:code}\"\n    ],\n    \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c\": [\n      \"name=${1:display name}\",\n      \"numbered=${1|true,false,unless-unique|}\",\n      \"parent=${1:counter}\",\n      \"sibling=${1:counter}\",\n      \"refname=${1:ref name}\",\n      \"Refname=${1:ref name}\"\n    ],\n    \"\\\\newkeytheorem#c,\\\\renewkeytheorem#c,\\\\providekeytheorem#c,\\\\declarekeytheorem#c,\\\\declaretheorem#c,\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\": [\n      \"preheadhook=${1:code}\",\n      \"postheadhook=${1:code}\",\n      \"prefoothook=${1:code}\",\n      \"postfoothook=${1:code}\",\n      \"qed\",\n      \"qed=${1:symbol}\",\n      \"tcolorbox\",\n      \"tcolorbox={${1:tcolorbox options}}\",\n      \"tcolorbox-no-titlebar\",\n      \"tcolorbox-no-titlebar={${1:tcolorbox options}}\"\n    ],\n    \"\\\\newkeytheoremstyle#c,\\\\renewkeytheoremstyle#c,\\\\providekeytheoremstyle#c,\\\\declarekeytheoremstyle#c,\\\\declaretheoremstyle#c\": [\n      \"spaceabove=\",\n      \"spacebelow=\",\n      \"bodyfont=${1:font commands}\",\n      \"headindent=\",\n      \"headfont=${1:font commands}\",\n      \"headpunct=${1:code}\",\n      \"postheadspace=\",\n      \"break\",\n      \"notefont=${1:font commands}\",\n      \"notebraces={${1:left brace}}{${2:right brace}}\",\n      \"headformat=${2|margin,swapnumber,${1:code}|}\",\n      \"inherit-style=${1:style name}\",\n      \"noteseparator=${1:separator}\",\n      \"numberfont=${1:font commands}\"\n    ],\n    \"\\\\getkeytheorem#c\": [\n      \"body\"\n    ],\n    \"\\\\listofkeytheorems#c,\\\\keytheoremlistset#c,\\\\listoftheorems#c\": [\n      \"numwidth=\",\n      \"indent=\",\n      \"ignore={${1:env1,env2,...}}\",\n      \"show={${1:env1,env2,...}}\",\n      \"onlynamed\",\n      \"onlynamed={${1:env1,env2,...}}\",\n      \"ignoreall\",\n      \"showall\",\n      \"title=${1:text}\",\n      \"swapnumber\",\n      \"onlynumbered\",\n      \"onlynumbered={${1:env1,env2,...}}\",\n      \"seq=${1:name}\",\n      \"title-code=${1:code}\",\n      \"no-title\",\n      \"note-code=${1:code}\",\n      \"print-body\",\n      \"no-continues\",\n      \"no-chapter-skip\",\n      \"chapter-skip-length=\",\n      \"no-toc\",\n      \"format-code=${1:code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/key-theorems#c\",\n    \"\\\\usepackage/keytheorems#c,\\\\keytheoremset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/keyval.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setkeys\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys{${1:family}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/keyval#c\": [\n      \"unknownkeysallowed\",\n      \"unknownkeyserror\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/keyval#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/keyvaltable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewKeyValTable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewKeyValTable{${1:table name}}{${2:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"NewKeyValTable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewKeyValTable[${3:options%keyvals}]{${1:table name}}{${2:colspecs}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewKeyValTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewKeyValTable{${1:table name}}{${2:colspecs}}[${3:layout}]\"\n      }\n    },\n    {\n      \"name\": \"NewKeyValTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"NewKeyValTable[${3:options%keyvals}]{${1:table name}}{${2:colspecs}}[${4:layout}]\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Row\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Row{${1:col=text,...}}\"\n      }\n    },\n    {\n      \"name\": \"Row\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Row[${2:options%keyvals}]{${1:col=text,...}}\",\n        \"keys\": [\n          \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewCollectedTable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCollectedTable{${1:collection name}}{${2:table name}}\"\n      }\n    },\n    {\n      \"name\": \"CollectRow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CollectRow{${1:collection name}}{${2:col=text,...}}\"\n      }\n    },\n    {\n      \"name\": \"CollectRow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CollectRow[${3:options%keyvals}]{${1:collection name}}{${2:col=text,...}}\",\n        \"keys\": [\n          \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShowCollectedTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowCollectedTable{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowCollectedTable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowCollectedTable[${2:options%keyvals}]{${1:collection name}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShowKeyValTableFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowKeyValTableFile{${1:table name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"ShowKeyValTableFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ShowKeyValTableFile[${3:options%keyvals}]{${1:table name}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddKeyValRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddKeyValRow{${1:table name}}{${2:col=text,...}}\"\n      }\n    },\n    {\n      \"name\": \"AddKeyValRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AddKeyValRow{${1:table name}}[${3:options%keyvals}]{${2:col=text,...}}\",\n        \"keys\": [\n          \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ShowKeyValTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowKeyValTable{${1:table name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowKeyValTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowKeyValTable[${2:options%keyvals}]{${1:table name}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thekvtRow\"\n    },\n    {\n      \"name\": \"thekvtTypeRow\"\n    },\n    {\n      \"name\": \"thekvtTotalRow\"\n    },\n    {\n      \"name\": \"kvtLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtLabel{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"kvtLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kvtLabel[${3:options}]{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"kvtDeclareTableMacros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtDeclareTableMacros{${1:macro list}}\"\n      }\n    },\n    {\n      \"name\": \"kvtDeclareTableCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtDeclareTableCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"kvtDeclareCtrFormatters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtDeclareCtrFormatters{${1:macro list}}\"\n      }\n    },\n    {\n      \"name\": \"kvtNewTableStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtNewTableStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"kvtRenewTableStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtRenewTableStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"kvtStrutted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtStrutted{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kvtStrutted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kvtStrutted[${2:inner}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kvtNewRowStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtNewRowStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"kvtRenewRowStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtRenewRowStyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"MidRule\"\n    },\n    {\n      \"name\": \"MidRule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MidRule[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"CMidRule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CMidRule{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"CMidRule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CMidRule[${2:width}]{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtRuleTop{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleTop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kvtRuleTop[${2:width}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtRuleBottom{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleBottom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kvtRuleBottom[${2:width}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleMid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvtRuleMid{${1:color1}}{${2:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleMid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kvtRuleMid[${3:width}]{${1:color1}}{${2:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleCMid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kvtRuleCMid{${1:a-b}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleCMid\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"kvtRuleCMid(${4:trim}){${1:a-b}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRuleCMid\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"kvtRuleCMid[${4:width}](${5:trim}){${1:a-b}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRulesCMid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kvtRulesCMid{${1:rlist}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtRulesCMid\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"kvtRulesCMid[${4:width}]{${1:rlist}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"kvtTableOpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtTableOpt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"kvtSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvtSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\kvtSet\",\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metatblRegisterEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metatblRegisterEnv{${1:envname}}{${2:properties}}\"\n      }\n    },\n    {\n      \"name\": \"metatblRegistered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblRegistered{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblIsLong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblIsLong{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblIsTabu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblIsTabu{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblHasWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblHasWidth{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblHasCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblHasCaption{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblCanVAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblCanVAlign{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblCanHAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metatblCanHAlign{${1:envname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metatblUsePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metatblUsePackage{${1:envnames}}\"\n      }\n    },\n    {\n      \"name\": \"metatblRequire\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metatblRequire{${1:envnames}}\"\n      }\n    },\n    {\n      \"name\": \"metatblAtEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metatblAtEnd{${1:envname}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"KeyValTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:table name}}\"\n      }\n    },\n    {\n      \"name\": \"KeyValTable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:table name}}\",\n        \"keys\": [\n          \"\\\\begin{KeyValTable}\",\n          \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KeyValTableContent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:table name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/keyvaltable#c\": [\n      \"compat=${1:version}\"\n    ],\n    \"\\\\kvtSet\": [\n      \"align=${1:coltype}\",\n      \"default=${1:content}\",\n      \"format=${1:single-arg macro}\",\n      \"head=${1:content}\",\n      \"hidden\",\n      \"Row/uncounted\",\n      \"Row/hidden\",\n      \"Row/align=${1:coltype}\",\n      \"Row/bg=\",\n      \"Row/format=${1:cmd}\",\n      \"Row/format*=${1:cmd}\",\n      \"Row/format!=${1:cmd}\",\n      \"Row/headlike\",\n      \"Row/above=\",\n      \"Row/below=\",\n      \"Row/around=\",\n      \"Row/style=${1:list of style names}\",\n      \"Row/expandonce\",\n      \"Row/expand\",\n      \"HeadCell/align=${1:coltype}\",\n      \"HeadCell/head=${1:text}\",\n      \"HeadCell/underline\",\n      \"ColGroup/span=${1:+ separated columns}\",\n      \"ColGroup/align=${1:coltype}\",\n      \"ColGroup/format=${1:single-arg macro}\"\n    ],\n    \"\\\\Row,\\\\CollectRow,\\\\AddKeyValRow,\\\\kvtNewRowStyle,\\\\kvtRenewRowStyle\": [\n      \"uncounted\",\n      \"hidden\",\n      \"align=${1:coltype}\",\n      \"bg=\",\n      \"format=${1:cmd}\",\n      \"format*=${1:cmd}\",\n      \"format!=${1:cmd}\",\n      \"headlike\",\n      \"above=\",\n      \"below=\",\n      \"around=\",\n      \"style=${1:list of style names}\",\n      \"expandonce\",\n      \"expand\"\n    ],\n    \"\\\\begin{KeyValTable}\": [\n      \"resume\",\n      \"resume*\",\n      \"caption=${1:text}\",\n      \"caption/lot=${1:text}\",\n      \"caption/alt=${1:text}\",\n      \"label=\"\n    ],\n    \"\\\\NewKeyValTable,\\\\begin{KeyValTable},\\\\ShowCollectedTable,\\\\ShowKeyValTableFile,\\\\ShowKeyValTable,\\\\kvtSet,\\\\kvtNewTableStyle,\\\\kvtRenewTableStyle\": [\n      \"backend=${1|tabular,tabularx,longtable,xltabular,tabu,longtabu|}\",\n      \"shape=${1|multipage,onepage|}\",\n      \"width=\",\n      \"valign=${1|t,c,b|}\",\n      \"halign=${1|l,c,r|}\",\n      \"showhead\",\n      \"showrules\",\n      \"norules\",\n      \"headalign=${1:coltype}\",\n      \"headbg=\",\n      \"headformat=${1:cmd}\",\n      \"rowbg=\",\n      \"norowbg\",\n      \"nobg\",\n      \"style=${1:list of style names}\",\n      \"captionpos=${1|t,b|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/keyvaltable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"kix\"\n    },\n    {\n      \"name\": \"kixwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixsyncheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixbase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixlheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixsync\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kixlong\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/knitting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chart{${1:knitting-specs}}\"\n      }\n    },\n    {\n      \"name\": \"chart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chart[${2:placement%keyvals}]{${1:knitting-specs}}\",\n        \"keys\": [\n          \"\\\\chart,\\\\stitchcountchart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \">\"\n    },\n    {\n      \"name\": \"<\"\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    },\n    {\n      \"name\": \"textknit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textknit{${1:knitting-specs}}\"\n      }\n    },\n    {\n      \"name\": \"wideincrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideincrease{${1:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"widedecrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widedecrease{${1:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"bobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bobble{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"narrowincrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"narrowincrease{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"narrowdecrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"narrowdecrease{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pnarrowincrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnarrowincrease{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pnarrowdecrease\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnarrowdecrease{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"purlbackground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purlbackground{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"widesymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widesymbol{${1:knit-spec}}{${2:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"cableleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cableleft{${1:knit-spec1}}{${2:knit-spec2}}\"\n      }\n    },\n    {\n      \"name\": \"cableright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cableright{${1:knit-spec1}}{${2:knit-spec2}}\"\n      }\n    },\n    {\n      \"name\": \"cableforeground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cableforeground{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"cablebackground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cablebackground{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"knit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knit{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"purl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Knit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Knit{${1:text%plain}}{${2:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"Purl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Purl{${1:text%plain}}{${2:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"knitbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knitbox{${1:text%plain}}{${2:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"purlbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"purlbox{${1:text%plain}}{${2:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"knitboxforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"purlboxforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knitboxbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"purlboxbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knitgrid\"\n    },\n    {\n      \"name\": \"knitwide\"\n    },\n    {\n      \"name\": \"knitmixed\"\n    },\n    {\n      \"name\": \"knitnogrid\"\n    },\n    {\n      \"name\": \"overline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overline*{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"underline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underline*{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"purlpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"purlpass{${1:purl-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"purlpass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"purlpass[${2:other-code}]{${1:purl-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"gridpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridpass{${1:grid-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"gridpass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gridpass[${2:other-code}]{${1:grid-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"mainpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainpass{${1:main-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"mainpass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainpass[${2:other-code}]{${1:main-pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"knitlinewd\"\n    },\n    {\n      \"name\": \"gridwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stitchwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stitchht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stitchdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgrid\"\n    },\n    {\n      \"name\": \"gridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifknitsymbol\"\n    },\n    {\n      \"name\": \"knitsymboltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knitsymbolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifchartsonly\"\n    },\n    {\n      \"name\": \"chartsonlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chartsonlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rn\"\n    },\n    {\n      \"name\": \"therownumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rnleft\"\n    },\n    {\n      \"name\": \"rnright\"\n    },\n    {\n      \"name\": \"therownumberskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifresetrn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetrntrue\"\n    },\n    {\n      \"name\": \"resetrnfalse\"\n    },\n    {\n      \"name\": \"rnoddonly\"\n    },\n    {\n      \"name\": \"rnevenonly\"\n    },\n    {\n      \"name\": \"rnnormal\"\n    },\n    {\n      \"name\": \"printrightrownumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printrightrownumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printleftrownumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printleftrownumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printrownumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printrownumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rownumberwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numberrow{${1:first-num}}{${2:countdown}}{${3:last-num}}\"\n      }\n    },\n    {\n      \"name\": \"rnbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnbox{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rnboxleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnboxleft{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rnboxright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnboxright{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"stitchcountchart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stitchcountchart{${1:knitting-specs}}\"\n      }\n    },\n    {\n      \"name\": \"stitchcountchart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stitchcountchart[${2:placement%keyvals}]{${1:knitting-specs}}\",\n        \"keys\": [\n          \"\\\\chart,\\\\stitchcountchart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"countstitches\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countstitches{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"thestitchcountout\"\n    },\n    {\n      \"name\": \"thestitchcountin\"\n    },\n    {\n      \"name\": \"adjuststitchcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjuststitchcount{${1:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"adjuststitchcount\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adjuststitchcount[${2:num-incount-stitches}]{${1:num-stitches}}\"\n      }\n    },\n    {\n      \"name\": \"stitchcountwarningbar\"\n    },\n    {\n      \"name\": \"Knitstitchcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Knitstitchcount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Purlstitchcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Purlstitchcount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"knitboxstitchcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knitboxstitchcount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"purlboxstitchcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"purlboxstitchcount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"widesymbolspacer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widesymbolspacer{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"shortrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortrows{${1:knit-spec}}\"\n      }\n    },\n    {\n      \"name\": \"nostitchcount\"\n    },\n    {\n      \"name\": \"knitdebug\"\n    },\n    {\n      \"name\": \"printleftstitchcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printrightstitchcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printstitchcountchart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countpass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countpass{${1:pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"countpass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"countpass[${2:other-code}]{${1:pass-code}}\"\n      }\n    },\n    {\n      \"name\": \"knitleftarrowhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knitrightarrowhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestitchcountinprev\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"smallpage\"\n    },\n    {\n      \"name\": \"fullpages\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/knitting#c\": [\n      \"chartsonly\"\n    ],\n    \"\\\\chart,\\\\stitchcountchart\": [\n      \"left\",\n      \"right\",\n      \"oddleft\",\n      \"oddright\",\n      \"evenleft\",\n      \"evenright\",\n      \"both\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/knitting#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/knowledge.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref=active\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor=active\"\n    },\n    {\n      \"name\": \"makeidx\",\n      \"if\": \"makeidx\"\n    },\n    {\n      \"name\": \"makeidx\",\n      \"if\": \"makeidx=active\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"imakeidx\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"imakeidx=active\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref=active\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"knowledgeconfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgeconfigure{${1:directives%keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledgeconfigure#c,\\\\usepackage/knowledge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"knowledge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledge{${1:knowledge name}}{${2:directives%keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"knowledge\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledge{${1:knowledge name}}[${3:synonym1|${4:synonym2}|...}]{${2:directives%keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"knowledgestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgestyle{${1:style name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"knowledgestyle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgestyle*{${1:style name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"knowledgedirective\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedirective{${1:name}}[${3:optional parameter}]{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"knowledgedirective*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedirective*{${1:name}}[${3:optional parameter}]{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"knowledgedefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgedefault{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedefault*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgedefault*{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"kl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"kl(${2:scope}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kl[${2:knowledge name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kl\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"kl(${3:scope})[${2:knowledge name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewvariant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgenewvariant{${1:command}}{${2:directives%keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledgenewvariant#c,\\\\knowledgesetvariant#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"knowledgesetvariant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgesetvariant{${1:command}}{${2:directives%keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledgenewvariant#c,\\\\knowledgesetvariant#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"knowledgevariantmodifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgevariantmodifier{${1:variant1*variant2*...}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgescope\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgescope{${1:scope name}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgeimport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgeimport{${1:scope1,scope2,...}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgeconfigureenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgeconfigureenvironment{${1:env1,env2,...}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\knowledgeconfigureenvironment#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"intro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intro{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"intro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intro[${2:knowledge name}]{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"intro*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intro*{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"intro*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intro*[${2:knowledge name}]{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"phantomintro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantomintro{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"phantomintro\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"phantomintro(${2:label}){${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"nointro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nointro{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"reintro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reintro{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"reintro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reintro[${2:knowledge name}]{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"reintro*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reintro*{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"reintro*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reintro*[${2:knowledge name}]{${1:knowledge}}\"\n      }\n    },\n    {\n      \"name\": \"rekl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rekl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rekl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rekl(${2:scope}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rekl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rekl[${2:knowledge name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rekl\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"rekl(${3:scope})[${2:knowledge name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AP\"\n    },\n    {\n      \"name\": \"itemAP\"\n    },\n    {\n      \"name\": \"knowledgeIntroIndexStyle\",\n      \"if\": \"makeidx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knowledgeIntroIndexStyle\",\n      \"if\": \"makeidx=active\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knowledgeIntroIndexStyle\",\n      \"if\": \"imakeidx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knowledgeIntroIndexStyle\",\n      \"if\": \"imakeidx=active\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"kpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kpageref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"kcref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kCref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kCref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kcpageref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kCpageref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kCpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"knamecref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knameCref\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knameCref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knamerefs\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamerefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knamecrefs\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knameCrefs\",\n      \"if\": \"cleveref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knameCrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"kcref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kCref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kCref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kcpageref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"kCpageref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kCpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"knamecref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamecref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knameCref\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knameCref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knamerefs\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamerefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knamecrefs\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knamecrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knameCrefs\",\n      \"if\": \"cleveref=active\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knameCrefs{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewrobustcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewrobustcmd{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgerenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgerenewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeNewDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeNewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeRenewDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeRenewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeProvideDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeProvideDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeDeclareDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeDeclareDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedeclarecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedeclarecommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewmathcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewmathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewtextcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewtextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgerenewmathcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgerenewmathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgerenewtextcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgerenewtextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedeclaremathcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedeclaremathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedeclaretextcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedeclaretextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeNewDocumentMathCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeNewDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeNewDocumentTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeNewDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeRenewDocumentMathCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeRenewDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeRenewDocumentTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeRenewDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeProvideDocumentMathCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeProvideDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeProvideDocumentTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeProvideDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeDeclareDocumentMathCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeDeclareDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeDeclareDocumentTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeDeclareDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewcommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgerenewcommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgerenewcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedeclarecommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedeclarecommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgenewmathcommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgenewmathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgerenewmathcommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgerenewmathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedeclaremathcommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"knowledgedeclaremathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeNewDocumentCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeNewDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeRenewDocumentCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeRenewDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeDeclareDocumentCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeDeclareDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeProvideDocumentCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeProvideDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeNewDocumentMathCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeNewDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeRenewDocumentMathCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeRenewDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeDeclareDocumentMathCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeDeclareDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeProvideDocumentMathCommandPIE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeProvideDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"withkl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"withkl{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"cmdkl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdkl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgepackagemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfKnowledgePaperModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfKnowledgePaperModeTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifKnowledgePaperMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgePaperModetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgePaperModefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfKnowledgeElectronicModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfKnowledgeElectronicModeTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifKnowledgeElectronicMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeElectronicModetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeElectronicModefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfKnowledgeCompositionModeTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfKnowledgeCompositionModeTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifKnowledgeCompositionMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeCompositionModetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeCompositionModefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robustdisplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robustdisplay{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"robustdisplaybracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robustdisplaybracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgeFixHyperrefTwocolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KAuxActivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KAuxOpen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KAuxClose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfKAuxReadyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfKAuxReadyTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxBefore{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxAfter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxAfter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxInit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxInit{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewKAuxCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewKAuxCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxEOF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxEOF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KAuxCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ActivateKAuxPhase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActivateKAuxPhase{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKAuxPhaseCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareKAuxPhaseCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxWriteLocation*\"\n    },\n    {\n      \"name\": \"KAuxWriteX\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"KAuxWriteX{${1:arg}}*\"\n      }\n    },\n    {\n      \"name\": \"KAuxWriteX*\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"KAuxWriteX*{${1:arg}}*\"\n      }\n    },\n    {\n      \"name\": \"KAuxWrite\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"KAuxWrite{${1:arg}}*\"\n      }\n    },\n    {\n      \"name\": \"KAuxWrite*\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"KAuxWrite*{${1:arg}}*\"\n      }\n    },\n    {\n      \"name\": \"KAuxFileAt\",\n      \"arg\": {\n        \"format\": \"{}{}*\",\n        \"snippet\": \"KAuxFileAt{${1:file}}{${2:line}}*\"\n      }\n    },\n    {\n      \"name\": \"kauxCurrentFile*\"\n    },\n    {\n      \"name\": \"kauxCurrentLine*\"\n    },\n    {\n      \"name\": \"KAuxProcess\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"KAuxProcess{${1:phase}}*\"\n      }\n    },\n    {\n      \"name\": \"NewGBool\",\n      \"arg\": {\n        \"format\": \"{}{}*\",\n        \"snippet\": \"NewGBool{${1:arg1}}{${2:arg2}}*\"\n      }\n    },\n    {\n      \"name\": \"NewGBool\",\n      \"arg\": {\n        \"format\": \"{}{}[]*\",\n        \"snippet\": \"NewGBool{${1:arg1}}{${2:arg2}}[${3:opt}]*\"\n      }\n    },\n    {\n      \"name\": \"NewGBoolComplete\",\n      \"arg\": {\n        \"format\": \"{}{}{}*\",\n        \"snippet\": \"NewGBoolComplete{${1:arg1}}{${2:arg2}}{${3:arg3}}*\"\n      }\n    },\n    {\n      \"name\": \"NewGCs\",\n      \"arg\": {\n        \"format\": \"{}{}*\",\n        \"snippet\": \"NewGCs{${1:arg1}}{${2:arg2}}*\"\n      }\n    },\n    {\n      \"name\": \"NewGCs\",\n      \"arg\": {\n        \"format\": \"{}{}[]*\",\n        \"snippet\": \"NewGCs{${1:arg1}}{${2:arg2}}[${3:opt}]*\"\n      }\n    },\n    {\n      \"name\": \"NewGCsComplete\",\n      \"arg\": {\n        \"format\": \"{}{}{}*\",\n        \"snippet\": \"NewGCsComplete{${1:arg1}}{${2:arg2}}{${3:arg3}}*\"\n      }\n    },\n    {\n      \"name\": \"OverloadCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OverloadCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"OverloadCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"OverloadCommand{${1:cmd}}{${2:xargs}}[${4:opt}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ChooseCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChooseCommand{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"XparseArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XparseArgs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ExpXparseArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpXparseArgs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgeConfigureBooleanOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KnowledgeConfigureBooleanOption[${2:default}]{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureBooleanOptionTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KnowledgeConfigureBooleanOptionTF{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureBooleanOptionTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"KnowledgeConfigureBooleanOptionTF[${4:default}]{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureTrigger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KnowledgeConfigureTrigger{${1:trigger}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureTrigger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"KnowledgeConfigureTrigger[${3:opt}]{${1:trigger}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgePackageTrigger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KnowledgePackageTrigger{${1:trigger}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgePackageBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgePackageBooleanOption{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgePackageBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KnowledgePackageBooleanOption[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ScopeConfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ScopeConfigure{${1:envname}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxUndeclaredScopeTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxUndeclaredScopeTag{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxDeclaredScopeTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxDeclaredScopeTag{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxNewLinkScopetagInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KAuxNewLinkScopetagInstance{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxScopeNewInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KAuxScopeNewInstance{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxScopeTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KAuxScopeTag{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KnowledgeConfigureEnvironment{${1:env1,env2,...}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ScopeHackEnvironments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScopeActivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeDiagnoseOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewKnowledgeParamBool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewKnowledgeParamBool{${1:param}}{${2:bool}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamBool*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewKnowledgeParamBool*{${1:param}}{${2:bool}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeTransferBool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgeTransferBool{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamTl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewKnowledgeParamTl{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamTl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewKnowledgeParamTl[${2:opt}]{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamTl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewKnowledgeParamTl*{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamTl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewKnowledgeParamTl*[${2:opt}]{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeTransferTl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgeTransferTl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewKnowledgeParamCode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"NewKnowledgeParamPackageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewKnowledgeParamPackageError{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxKnowledge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"KAuxKnowledge{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgeusestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knowledgeusestyle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxErrorKnowledgeRecursive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"KAuxErrorKnowledgeRecursive{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxErrorKnowledgeUnknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"KAuxErrorKnowledgeUnknown{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxErrorLabelUnknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KAuxErrorLabelUnknown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxAutoref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KAuxAutoref{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxAutorefTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KAuxAutorefTarget{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"KAuxUseKnowledge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KAuxUseKnowledge{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ensuretext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuretext{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"knowledgedisplayref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knowledgedisplayref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"makequotationactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makequotationletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klactivequotationmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klactivedoublequotationmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klactivatequotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kldeactivatequotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgifyNewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgifyNewcommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgifyNewDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgifyNewDocumentCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"IfXcolorTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfXcolorTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifXcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xcolortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xcolorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KnowledgeConfigureNotion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KnowledgeConfigureNotion{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"KnowledgeConfigureNotion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KnowledgeConfigureNotion[${2:opt}]{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scope\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/knowledge#c\": [\n      \"paper\",\n      \"electronic\",\n      \"composition\",\n      \"hyperref\",\n      \"hyperref=${1|active,inactive,compatibility,auto|}\",\n      \"xcolor\",\n      \"xcolor=${1|active,inactive,compatibility,auto|}\",\n      \"makeidx\",\n      \"makeidx=${1|active,inactive,compatibility,auto|}\",\n      \"cleveref\",\n      \"cleveref=${1|active,inactive,compatibility,auto|}\",\n      \"imakeidx\",\n      \"imakeidx=${1|active,inactive,compatibility,auto|}\"\n    ],\n    \"\\\\knowledgeconfigure#c,\\\\usepackage/knowledge#c\": [\n      \"diagnose bar\",\n      \"diagnose help\",\n      \"diagnose line\",\n      \"fix hyperref twocolumn\",\n      \"label scope\",\n      \"notion\",\n      \"protect quotation={${1:env1,env2,...}}\",\n      \"protect link\",\n      \"unprotect link\",\n      \"quotation\",\n      \"silent\",\n      \"strict\",\n      \"visible anchor points\",\n      \"no patch\",\n      \"ref=${1:label}\",\n      \"protect link\",\n      \"url=${1:URL}\",\n      \"anchor point color=\",\n      \"AP color=\",\n      \"anchor point shape=${1:shape}\",\n      \"AP shape=${1:shape}\",\n      \"anchor point shift={${1:x,y}}\",\n      \"AP shift={${1:x,y}}\",\n      \"ref=${1:label}\",\n      \"protect link\",\n      \"url=${1:URL}\",\n      \"anchor point color=\",\n      \"AP color=\",\n      \"anchor point shape=${1:shape}\",\n      \"AP shape=${1:shape}\",\n      \"anchor point shift={${1:x,y}}\",\n      \"AP shift={${1:x,y}}\",\n      \"color=\",\n      \"cyclic color={${1:color1,color2,...}}\",\n      \"colorbox=\",\n      \"color=\",\n      \"cyclic color={${1:color1,color2,...}}\",\n      \"colorbox=\"\n    ],\n    \"\\\\knowledge#c,\\\\knowledgestyle#c,\\\\knowledgestyle*#c,\\\\knowledgedirective#c,\\\\knowledgedirective*#c\": [\n      \"also now\",\n      \"autoref\",\n      \"autoref link\",\n      \"autoref target\",\n      \"autorefhere\",\n      \"boldface\",\n      \"detokenize\",\n      \"emphasize\",\n      \"ensuretext\",\n      \"ensuremath\",\n      \"export=${1:file}\",\n      \"invisible\",\n      \"italic\",\n      \"fbox\",\n      \"md\",\n      \"notion\",\n      \"intro style=${1:knowledge style}\",\n      \"invisible\",\n      \"italic\",\n      \"link=${1:knowledge}\",\n      \"link scope=${1:label}\",\n      \"lowercase\",\n      \"mathord\",\n      \"mathop\",\n      \"mathbin\",\n      \"mathrel\",\n      \"mathopen\",\n      \"mathclose\",\n      \"mathpunct\",\n      \"namespace=\",\n      \"now\",\n      \"remove space\",\n      \"scope=${1:name}\",\n      \"smallcaps\",\n      \"style=${1:knowledge style}\",\n      \"synonym\",\n      \"text=${1:text}\",\n      \"remove space\",\n      \"typewriter\",\n      \"underline\",\n      \"up\",\n      \"uppercase\",\n      \"wrap=${1:macro}\",\n      \"index=${1:text}\",\n      \"index key=${1:index key text}\",\n      \"index parent key=${1:index key}\",\n      \"index style=${1:csname}\",\n      \"no index\",\n      \"index=${1:text}\",\n      \"index key=${1:index key text}\",\n      \"index parent key=${1:index key}\",\n      \"index style=${1:csname}\",\n      \"no index\",\n      \"index=${1:text}\",\n      \"index key=${1:index key text}\",\n      \"index parent key=${1:index key}\",\n      \"index style=${1:csname}\",\n      \"index name=${1:name}\",\n      \"no index\",\n      \"index=${1:text}\",\n      \"index key=${1:index key text}\",\n      \"index parent key=${1:index key}\",\n      \"index style=${1:csname}\",\n      \"index name=${1:name}\",\n      \"no index\"\n    ],\n    \"\\\\knowledgenewvariant#c,\\\\knowledgesetvariant#c\": [\n      \"namespace=${1:string}\",\n      \"default style={${1:style list}}\",\n      \"unknown style={${1:style list}}\",\n      \"unknown style cont={${1:style list}}\",\n      \"style directive={${1:directive list}}\",\n      \"auto knowledge={${1:directives}}\",\n      \"unknown warning\",\n      \"unknown diagnose\",\n      \"suggestion={${1:directives}}\",\n      \"PDF string={${1:code}}\",\n      \"display code={${1:code}}\"\n    ],\n    \"\\\\knowledgeconfigureenvironment#c\": [\n      \"scope\",\n      \"label=${1|none,accepts|}\",\n      \"environment\",\n      \"autoclose\",\n      \"parents={${1:area1,area2,...}}\",\n      \"push code={${1:code}}\",\n      \"pop code={${1:code}}\",\n      \"occurrences=${1|once,multiple,recursive|}\",\n      \"forces=${1:area}\",\n      \"knowledge=${1:knowledge}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/knowledge#c\",\n    \"\\\\knowledgeconfigure#c,\\\\usepackage/knowledge#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/knufakelogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"KNUfakelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KNUfakelogo{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KNUfakelogo[${2:options}]{${1:scale}}\",\n        \"keys\": [\n          \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KNUfakelogo*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"KNUfakelogo*[${2:options}]{${1:scale}}(${3:%<SW coor%>})(${4:%<NE coor%>})\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KNUfakelogoBlue{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KNUfakelogoBlue[${2:options}]{${1:scale}}\",\n        \"keys\": [\n          \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlue*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"KNUfakelogoBlue*[${2:options}]{${1:scale}}(${3:%<SW coor%>})(${4:%<NE coor%>})\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoGreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KNUfakelogoGreen{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoGreen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KNUfakelogoGreen[${2:options}]{${1:scale}}\",\n        \"keys\": [\n          \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoGreen*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"KNUfakelogoGreen*[${2:options}]{${1:scale}}(${3:%<SW coor%>})(${4:%<NE coor%>})\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KNUfakelogoBlack{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KNUfakelogoBlack[${2:options}]{${1:scale}}\",\n        \"keys\": [\n          \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoBlack*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"KNUfakelogoBlack*[${2:options}]{${1:scale}}(${3:%<SW coor%>})(${4:%<NE coor%>})\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoColor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"KNUfakelogoColor{${1:scale}}{${2:inner circ colour}}{${3:outer ring colour}}\"\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoColor\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}\",\n        \"snippet\": \"KNUfakelogoColor[${4:options}]{${1:scale}}{${2:inner circ colour}}[${5:inner text colour}][${6:outer text colour}]{${3:outer ring colour}}\",\n        \"keys\": [\n          \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"KNUfakelogoColor*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]()()\",\n        \"snippet\": \"KNUfakelogoColor*[${3:options}]{${1:scale}}{${2:bg and inner colour}}[${4:inner text  colour}][${5:outer text/ring colour}](${6:%<SW coordinate%>})(${7:%<NE coordinate%>})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KNUfakelogo#c,\\\\KNUfakelogoBlue#c,\\\\KNUfakelogoGreen#c,\\\\KNUfakelogoBlack#c,\\\\KNUfakelogoColor#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"remember picture\",\n      \"overlay\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kocircnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hcrcircnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hcrcircnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hcrcircnum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hcrcircnum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hcrcircnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hcrcircnum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\hcrcircnum#c,\\\\hcrcircnum*#c,\\\\hcrcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hcrcircnum*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hcrcircnum*[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\hcrcircnum#c,\\\\hcrcircnum*#c,\\\\hcrcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hcrcircnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hcrcircnumsetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\hcrcircnum#c,\\\\hcrcircnum*#c,\\\\hcrcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restorehcrcircnumsetup\"\n    },\n    {\n      \"name\": \"hzcircnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hzcircnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hzcircnum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hzcircnum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hzcircnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hzcircnum[${2:args%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\hzcircnum#c,\\\\hzcircnum*#c,\\\\hzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hzcircnum*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hzcircnum*[${2:args%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\hzcircnum#c,\\\\hzcircnum*#c,\\\\hzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hzcircnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hzcircnumsetup{${1:args%keyvals}}\",\n        \"keys\": [\n          \"\\\\hzcircnum#c,\\\\hzcircnum*#c,\\\\hzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restorehzcircnumsetup\"\n    },\n    {\n      \"name\": \"tikzcircnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcircnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tikzcircnum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcircnum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tikzcircnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzcircnum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcircnum*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzcircnum*[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcircnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcircnumsetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcircnumonce\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzcircnumonce[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settikzcircnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settikzcircnumsetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restoretikzcircnumsetup\"\n    },\n    {\n      \"name\": \"declaretikzcircnumsmallsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declaretikzcircnumbigsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"circnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circnum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\circnum#c,\\\\circnum*#c,\\\\circnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"circnum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circnum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"circnum*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circnum*[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\circnum#c,\\\\circnum*#c,\\\\circnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"circnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circnumsetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\circnum#c,\\\\circnum*#c,\\\\circnumsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restorecircnumsetup\"\n    },\n    {\n      \"name\": \"Cnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cnum{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kocircnum#c\": [\n      \"hcr\",\n      \"hz\",\n      \"tikz\",\n      \"tikzsmall\",\n      \"tikzbig\"\n    ],\n    \"\\\\hcrcircnum#c,\\\\hcrcircnum*#c,\\\\hcrcircnumsetup#c\": [\n      \"shape=${1|circle,box,rectangle|}\",\n      \"white\",\n      \"black\",\n      \"color=\",\n      \"font=${1:font commands}\",\n      \"reset\"\n    ],\n    \"\\\\hzcircnum#c,\\\\hzcircnum*#c,\\\\hzcircnumsetup#c\": [\n      \"shape=${1|circle,circ,rectangle,rect,oval,ball|}\",\n      \"color=\",\n      \"bgcolor=\",\n      \"fgcolor=\",\n      \"sep=\",\n      \"raise=\",\n      \"Raise=\",\n      \"font=${1:font commands}\",\n      \"fontplus=${1:font commands}\",\n      \"base=${1:text}\",\n      \"reset\"\n    ],\n    \"\\\\tikzcircnum#c,\\\\tikzcircnum*#c,\\\\tikzcircnumsetup#c,\\\\tikzcircnumonce#c,\\\\settikzcircnumsetup#c\": [\n      \"shape=${1|circle,rectangle,ball|}\",\n      \"color=\",\n      \"bgcolor=\",\n      \"fgcolor=\",\n      \"bdcolor=\",\n      \"colorinv=\",\n      \"round=\",\n      \"raise=\",\n      \"Raise=\",\n      \"sep=\",\n      \"sepplus=\",\n      \"font=${1:font commands}\",\n      \"fontplus=${1:font commands}\",\n      \"base=${1:text}\",\n      \"bdwidth=\",\n      \"linewidth=\",\n      \"reset\"\n    ],\n    \"\\\\circnum#c,\\\\circnum*#c,\\\\circnumsetup#c\": [\n      \"shape=${1|circle,circ,rectangle,rect,oval,ball|}\",\n      \"white\",\n      \"black\",\n      \"color=\",\n      \"font=${1:font commands}\",\n      \"reset\",\n      \"bgcolor=\",\n      \"fgcolor=\",\n      \"sep=\",\n      \"raise=\",\n      \"Raise=\",\n      \"font=${1:font commands}\",\n      \"fontplus=${1:font commands}\",\n      \"base=${1:text}\",\n      \"bgcolor=\",\n      \"fgcolor=\",\n      \"bdcolor=\",\n      \"colorinv=\",\n      \"round=\",\n      \"raise=\",\n      \"Raise=\",\n      \"sep=\",\n      \"sepplus=\",\n      \"font=${1:font commands}\",\n      \"fontplus=${1:font commands}\",\n      \"base=${1:text}\",\n      \"bdwidth=\",\n      \"linewidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kocircnum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kolabels-utf.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jaso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jaso{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"gana\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gana{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ojaso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ojaso{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ogana\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ogana{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pjaso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pjaso{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pgana\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgana{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"onum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"oeng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeng{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"peng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peng{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hnum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Hnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hnum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hRoman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hNum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hanjanum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanjanum{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/koma-moderncvclassic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cvline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvline{${1:margintext%text}}{${2:linetext%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cvline[${3:spacing%l}]{${1:margintext%text}}{${2:linetext%text}}\"\n      }\n    },\n    {\n      \"name\": \"cventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"cventry{${1:years%text}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvlanguage{${1:language}}{${2:level}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcomputer\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvcomputer{${1:category}}{${2:programs}}{${3:category}}{${4:programs}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"photo{${1:width}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"photo[${3:noframe}]{${1:width}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"cvdoubleitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"cvdoubleitem[${5:spacing%l}]{${1:heading1%text}}{${2:text1%text}}{${3:heading2%text}}{${4:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"link[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:text}]{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"acadtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acadtitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acadtitlestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresssymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addresstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addresstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cvcompcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubleitemmaincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emailsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"familynamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"familynamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"faxsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstnamestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstnamestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hintfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintscolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hintstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hintstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"listdoubleitemmaincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemmaincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listitemsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maincolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitledetailsnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitledetailswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlenamefullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlenamemaxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlenamewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mycolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myhintscolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phonesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pictureframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"providelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"quotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"separatorcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionstyle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/koma-moderncvclassic#c\": [\n      \"myblue\",\n      \"blue\",\n      \"red\",\n      \"green\",\n      \"cyan\",\n      \"magenta\",\n      \"yellow\",\n      \"black\",\n      \"white\",\n      \"gray\",\n      \"darkgray\",\n      \"lightgray\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/koma-moderncvclassic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/koma-script-source-doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"class-ltxdoc\"\n    },\n    {\n      \"name\": \"class-scrartcl\"\n    },\n    {\n      \"name\": \"auxhook\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cls[${2:CTAN path%URL}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls*{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cls*[${2:CTAN path%URL}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"dhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhook{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnt{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"len\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"len{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optvalue{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pkg[${2:CTAN path%URL}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg*{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkg*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pkg*[${2:CTAN path%URL}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"plen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plen{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstyle{${1:pstyle}}\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"var{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeCommand[${2:options%keyvals}]{${1:cmd}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"PrintCommandName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintCommandName{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainCommandIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainCommandIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialCommandIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialCommandIndex{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeOption[${2:options%keyvals}]{${1:option}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"PrintOptionName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintOptionName{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainOptionIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainOptionIndex{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialOptionIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialOptionIndex{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeILength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeILength{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeILength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeILength[${2:options%keyvals}]{${1:length%plain}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeILength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeILength{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"PrintILengthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintILengthName{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainILengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainILengthIndex{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialILengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialILengthIndex{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeCounter[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"PrintCounterName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintCounterName{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainCounterIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainCounterIndex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialCounterIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialCounterIndex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKOMAfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKOMAfont{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKOMAfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeKOMAfont[${2:options%keyvals}]{${1:KOMAfont}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeKOMAfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeKOMAfont{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKOMAfontName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKOMAfontName{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainKOMAfontIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainKOMAfontIndex{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialKOMAfontIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialKOMAfontIndex{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKOMAvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKOMAvar{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKOMAvar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeKOMAvar[${2:options%keyvals}]{${1:KOMAvar}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeKOMAvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeKOMAvar{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKOMAvarName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKOMAvarName{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainKOMAvarIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainKOMAvarIndex{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialKOMAvarIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialKOMAvarIndex{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePLength{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePLength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePLength[${2:options%keyvals}]{${1:pseudolength}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribePLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribePLength{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"PrintPLengthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintPLengthName{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainPLengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainPLengthIndex{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialPLengthIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialPLengthIndex{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePageStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribePageStyle{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"DescribePageStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribePageStyle[${2:options%keyvals}]{${1:pagestyle}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribePageStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribePageStyle{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"PrintPageStyleName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintPageStyleName{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainPageStyleIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainPageStyleIndex{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialPageStyleIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialPageStyleIndex{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeDoHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeDoHook{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeDoHook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DescribeDoHook[${2:options%keyvals}]{${1:dohook}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PrintDescribeDoHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDescribeDoHook{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDoHookName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDoHookName{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainDoHookIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainDoHookIndex{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialDoHookIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialDoHookIndex{${1:dohook}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:element}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:option}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ilength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ilength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:length%plain}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"counter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"counter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fontelement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:KOMAfont}}\"\n      }\n    },\n    {\n      \"name\": \"fontelement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:KOMAfont}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"variable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:KOMAvar}}\"\n      }\n    },\n    {\n      \"name\": \"variable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:KOMAvar}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudolength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:pseudolength}}\"\n      }\n    },\n    {\n      \"name\": \"pseudolength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:pseudolength}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"pgstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:pagestyle}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dohook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dohook}}\"\n      }\n    },\n    {\n      \"name\": \"dohook\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:dohook}}\",\n        \"keys\": [\n          \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/koma-script-source-doc#c\": [\n      \"indexlatex\"\n    ],\n    \"\\\\DescribeCommand#c,\\\\begin{command}#c,\\\\DescribeOption#c,\\\\begin{option}#c,\\\\DescribeILength#c,\\\\begin{ilength}#c,\\\\DescribeCounter#c,\\\\begin{counter}#c,\\\\DescribeKOMAfont#c,\\\\begin{fontelement}#c,\\\\DescribeKOMAvar#c,\\\\begin{variable}#c,\\\\DescribePLength#c,\\\\begin{pseudolength}#c,\\\\DescribePageStyle#c,\\\\begin{pgstyle}#c,\\\\DescribeDoHook#c,\\\\begin{dohook}#c\": [\n      \"noindex\",\n      \"noprint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/koma-script-source-doc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/komacv-addons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Signature\"\n    },\n    {\n      \"name\": \"Signature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Signature[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"signaturecity\"\n    },\n    {\n      \"name\": \"beforesigvspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/komacv-lco.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"scrkbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar*[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}[${3:description}]{${2:content}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar*[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifkomavarempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkomavarempty{${1:name%keyvals}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifkomavarempty*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkomavarempty*{${1:name%keyvals}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifkomavar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkomavar{${1:name%keyvals}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkomavar*{${1:name%keyvals}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadLetterOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOption{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LoadLetterOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOptions{${1:file list}}\"\n      }\n    },\n    {\n      \"name\": \"ifkomavarenabled\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifkomavarenabled{${1:name%keyvals}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emaillink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"emaillink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emaillink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httplink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httplink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httplink[${2:link text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"httpslink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"httpslink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"httpslink[${2:link text}]{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c,\\\\ifkomavarempty#c,\\\\ifkomavarempty*#c,\\\\ifkomavar#c,\\\\ifkomavar*#c,\\\\ifkomavarenabled#c\": [\n      \"fromacadtitle\",\n      \"fromaddress\",\n      \"fromaddresscity\",\n      \"fromaddressstreet\",\n      \"fromemail\",\n      \"fromextrainfo\",\n      \"fromfax\",\n      \"fromfacebook\",\n      \"fromfamilyname\",\n      \"fromfirstname\",\n      \"fromgithub\",\n      \"fromlinkedin\",\n      \"frommobilephone\",\n      \"fromname\",\n      \"fromphone\",\n      \"fromtwitter\",\n      \"fromurl\",\n      \"location\",\n      \"place\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/komacv-multilang.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multilang\"\n    },\n    {\n      \"name\": \"multilang-tags\"\n    },\n    {\n      \"name\": \"multilang-sect\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"datetime2-calc\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BasicEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BasicEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"CommentedEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CommentedEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"DoubleEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoubleEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"EducationEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EducationEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"EmploymentEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmploymentEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"AchievementEntry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AchievementEntry{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"EntryListItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryListItem{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"EntryListDblItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryListDblItem{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"Item\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Item{${1:data}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/komacv-multilang#c\": [\n      \"languages={${1:lang1,lang2,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/komacv-multilang#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/konames-utf.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KSTHE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kosections-utf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"konames-utf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"circemphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dotemphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kscntformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kscntformat{${1:level}}{${2:before}}{${3:after}}\"\n      }\n    },\n    {\n      \"name\": \"raisedotdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TEXTsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TEXTsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useremph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useremphraisedim\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kotex-logo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hologo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kotex-varioref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kotexvarioreftexts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kotexvarioreftexts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/kotex-varioref#c,\\\\kotexvarioreftexts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifUI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UItrue\"\n    },\n    {\n      \"name\": \"UIfalse\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kotex-varioref#c,\\\\kotexvarioreftexts\": [\n      \"pagename=${1:text}\",\n      \"aftertext=${1:text}\",\n      \"beforetext=${1:text}\",\n      \"currenttext=${1:text}\",\n      \"totext=${1:text}\",\n      \"footnotename=${1:text}\",\n      \"figurename=${1:text}\",\n      \"tablename=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kotex-varioref#c,\\\\kotexvarioreftexts\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kotexutf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"kolabels-utf\"\n    },\n    {\n      \"name\": \"kosections-utf\",\n      \"if\": \"hangul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dotemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jong\"\n    },\n    {\n      \"name\": \"jung\"\n    },\n    {\n      \"name\": \"rieul\"\n    },\n    {\n      \"name\": \"SetAdhocFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetAdhocFonts{${1:hangul font}}{${2:hanja font}}\"\n      }\n    },\n    {\n      \"name\": \"SetHangulFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetHangulFonts{${1:serif font}}{${2:sans font}}{${3:mono font}}\"\n      }\n    },\n    {\n      \"name\": \"SetHanjaFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetHanjaFonts{${1:serif font}}{${2:sans font}}{${3:mono font}}\"\n      }\n    },\n    {\n      \"name\": \"setInterHangulSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setInterHangulSkip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"SetSansFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetSansFonts{${1:hangul font}}{${2:hanja font}}\"\n      }\n    },\n    {\n      \"name\": \"SetSerifFonts\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetSerifFonts{${1:hangul font}}{${2:hanja font}}\"\n      }\n    },\n    {\n      \"name\": \"usehangulfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usehangulfontspec{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"asciiexclamationafterhangul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asciiexclamationafterhangul{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"asciifullstopafterhangul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asciifullstopafterhangul{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"asciiquestionafterhangul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asciiquestionafterhangul{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"breakafterasciichar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakafterinlinemath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakbeforeasciichar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakbetweenhangul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakbetweenhanja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjksymbolextraspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjksymbolskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjksymbolunskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declarehangulspacefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declarehanjaspacefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declarenobreakspacefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disablehangulfontspec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disablehangullinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"josatoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"josatoks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kernbeforeasciichar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernbeforelatinquoteclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makejosa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makejosa{${1:jung}}{${2:jong}}\"\n      }\n    },\n    {\n      \"name\": \"nobreakafterasciichar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakafterinlinemath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakbetweenhangul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakbetweenhanja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postcjksymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postcjksymnobreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postcjksymskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unihangulchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unihangulchar{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kotexutf#c\": [\n      \"nonfrench\",\n      \"hangul\",\n      \"hanja\",\n      \"nojosa\",\n      \"finemath\",\n      \"strictcharcheck\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kotexutf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kpfonts-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"realscripts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"ebseries\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"kpeuro\"\n    },\n    {\n      \"name\": \"kpeuro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kpeuro[${1:amount}]\"\n      }\n    },\n    {\n      \"name\": \"KpLight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KpRoman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longs\"\n    },\n    {\n      \"name\": \"lscshape\"\n    },\n    {\n      \"name\": \"ltseries\"\n    },\n    {\n      \"name\": \"pscshape\"\n    },\n    {\n      \"name\": \"ringbelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ringbelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbseries\"\n    },\n    {\n      \"name\": \"shorts\"\n    },\n    {\n      \"name\": \"texteb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texteb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"capplus\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"colondash\"\n    },\n    {\n      \"name\": \"Colondash\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dashColon\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotlessi\"\n    },\n    {\n      \"name\": \"dotlessj\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"eqqColon\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gtreqqslantless\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"IM\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftrightdasharrow\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lesseqqslantgtr\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"longleadsto\"\n    },\n    {\n      \"name\": \"Longmmapsfrom\"\n    },\n    {\n      \"name\": \"longmmapsfrom\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mbfdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfjmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbhbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbhslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"mithbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanspartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanswp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapsfrom\"\n    },\n    {\n      \"name\": \"mmapsfrom\"\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"msanspartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nparallelbackslant\"\n    },\n    {\n      \"name\": \"nparallelslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortparallelslant\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"oiiintclockwise\"\n    },\n    {\n      \"name\": \"oiiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiintclockwise\"\n    },\n    {\n      \"name\": \"oiintctrclockwise\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parallelbackslant\"\n    },\n    {\n      \"name\": \"parallelslant\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"RE\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortparallelslant\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqiiint\"\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"upDigamma\",\n      \"unusual\": true,\n      \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Capital digamma\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varidotsint\"\n    },\n    {\n      \"name\": \"variiiint\"\n    },\n    {\n      \"name\": \"variiint\"\n    },\n    {\n      \"name\": \"variint\"\n    },\n    {\n      \"name\": \"varint\"\n    },\n    {\n      \"name\": \"varoiiintclockwise\"\n    },\n    {\n      \"name\": \"varoiiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiintclockwise\"\n    },\n    {\n      \"name\": \"varoiintctrclockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widearcarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearcarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widearcarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearcarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kpfonts-otf#c\": [\n      \"light\",\n      \"nomath\",\n      \"notext\",\n      \"sans\",\n      \"nosf\",\n      \"nott\",\n      \"onlyrm\",\n      \"fulloldstylenums\",\n      \"fulloldstyle\",\n      \"lighttext\",\n      \"sftext\",\n      \"fakedscripts\",\n      \"oldstylenums\",\n      \"oldstyle\",\n      \"veryoldstyle\",\n      \"largesmallcaps\",\n      \"altfligs\",\n      \"germandbls\",\n      \"eurosym\",\n      \"harfbuzz\",\n      \"lightmath\",\n      \"sfmath\",\n      \"bbsans\",\n      \"mathcal\",\n      \"narrowiints\",\n      \"frenchstyle\",\n      \"partialup\",\n      \"oldstylenumsmath\",\n      \"fancyReIm\",\n      \"noDcommand\",\n      \"tight\",\n      \"symbols\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kpfonts-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kpfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"ifthen\",\n      \"if\": \"easyscsl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"classicstylenums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textothersc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textothersc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"otherscshape\"\n    },\n    {\n      \"name\": \"textotherscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textotherscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"otherscslshape\"\n    },\n    {\n      \"name\": \"othertailQ\"\n    },\n    {\n      \"name\": \"othertailscq\"\n    },\n    {\n      \"name\": \"othertailscslq\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathupright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathupright{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bignplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bignplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigsqcupplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"idotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"Longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrJoin\"\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintclockwise\"\n    },\n    {\n      \"name\": \"oiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintclockwise\"\n    },\n    {\n      \"name\": \"oiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"partialsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqiiint\"\n    },\n    {\n      \"name\": \"sqiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"sqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varidotsint\"\n    },\n    {\n      \"name\": \"varidotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variiiint\"\n    },\n    {\n      \"name\": \"variiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variiint\"\n    },\n    {\n      \"name\": \"variiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variint\"\n    },\n    {\n      \"name\": \"variintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varint\"\n    },\n    {\n      \"name\": \"varintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varoiiintclockwise\"\n    },\n    {\n      \"name\": \"varoiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintclockwise\"\n    },\n    {\n      \"name\": \"varoiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varprod\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widearcarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearcarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideOarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideOarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nusl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhosl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhosl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tausl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psisl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegasl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kpfonts#c\": [\n      \"nomath\",\n      \"notext\",\n      \"nosf\",\n      \"nott\",\n      \"onlyrm\",\n      \"uprightgreeks\",\n      \"slantedGreeks\",\n      \"uprightRoman\",\n      \"upright\",\n      \"frenchstyle\",\n      \"nomathscript\",\n      \"mathcalasscript\",\n      \"classicReIm\",\n      \"oldstylenums\",\n      \"oldstyle\",\n      \"oldstylemath\",\n      \"oldstylenumsmath\",\n      \"fulloldstylenums\",\n      \"fulloldstyle\",\n      \"veryoldstyle\",\n      \"veryoldstylemath\",\n      \"fullveryoldstyle\",\n      \"light\",\n      \"lighttext\",\n      \"lightmath\",\n      \"rmx\",\n      \"nowarning\",\n      \"noamsmath\",\n      \"notextcomp\",\n      \"narrowiints\",\n      \"partialup\",\n      \"largesmallcaps\",\n      \"easyscsl\",\n      \"noDcommand\",\n      \"nofligatures\",\n      \"widermath\",\n      \"sfmath\",\n      \"sfmathbb\",\n      \"rmmathbb\",\n      \"intlimits\",\n      \"fullintlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"fullsumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kpfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ksbaduk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BadukpanSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BadukpanSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BadukpanColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BadukpanColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"BackgroundColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BackgroundColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"NumberFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberFont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"StartBaduk\"\n    },\n    {\n      \"name\": \"StartBadukClip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StartBadukClip{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"StopBaduk\"\n    },\n    {\n      \"name\": \"Black\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Black{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"BlackFirst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackFirst{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"Blacks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Blacks{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"White\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"White{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteFirst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteFirst{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"Whites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Whites{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"BlackN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlackN{${1:pos}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"BlackFirstN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackFirstN{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"BlackFirstN*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackFirstN*{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"BlackFirstN\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"BlackFirstN{${1:pos, ...}}[${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"WhiteN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WhiteN{${1:pos}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteFirstN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteFirstN{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteFirstN*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteFirstN*{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteFirstN\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"WhiteFirstN{${1:pos, ...}}[${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"BlackM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackM{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"BlackMs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackMs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"BlackC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackC{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"BlackCs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackCs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"BlackD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackD{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"BlackDs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackDs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteM{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteMs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteMs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteC{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteCs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteCs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteD{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteDs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteDs{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"Blanket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Blanket{${1:pos}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"TextMark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TextMark{${1:pos}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"KSBadukContinue\"\n    },\n    {\n      \"name\": \"KSBadukContinue*\"\n    },\n    {\n      \"name\": \"ClearHistory\"\n    },\n    {\n      \"name\": \"RemoveStone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveStone{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveStone\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RemoveStone[${2:B|W%keyvals}]{${1:pos}}\",\n        \"keys\": [\n          \"\\\\RemoveStone#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RemoveStone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveStone{${1:pos, ...}}\"\n      }\n    },\n    {\n      \"name\": \"KSpar\"\n    },\n    {\n      \"name\": \"ProceedNextScene\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProceedNextScene{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"ProceedNextSceneComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProceedNextSceneComment{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"SaveKSBaduk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveKSBaduk{${1:game name}}\"\n      }\n    },\n    {\n      \"name\": \"LoadKSBaduk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadKSBaduk{${1:game name}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteSavedKSBaduk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteSavedKSBaduk{${1:game name}}\"\n      }\n    },\n    {\n      \"name\": \"SGFLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SGFLine{${1:sgf line}}\"\n      }\n    },\n    {\n      \"name\": \"ResetSGFCounter\"\n    },\n    {\n      \"name\": \"ResetSFGCounter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ResetSFGCounter[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"WhiteNText\",\n      \"if\": \"textcmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WhiteNText{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BlackNText\",\n      \"if\": \"textcmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlackNText{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"WhiteMText\",\n      \"if\": \"textcmds\"\n    },\n    {\n      \"name\": \"BlackMText\",\n      \"if\": \"textcmds\"\n    },\n    {\n      \"name\": \"WhiteCText\",\n      \"if\": \"textcmds\"\n    },\n    {\n      \"name\": \"BlackCText\",\n      \"if\": \"textcmds\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ksbadukpan\"\n    },\n    {\n      \"name\": \"ksbadukpan\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:options}][${2:pos}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ksbaduk#c,\\\\begin{ksbadukpan}#c\": [\n      \"ball\",\n      \"plain\",\n      \"badukpancolor=\",\n      \"badukpansize=${1:number}\",\n      \"posmark\",\n      \"imageback\",\n      \"imagefile=${1:file}\",\n      \"textcmds\",\n      \"numberfont=${1:font}\",\n      \"tmarkfont=${1:font}\"\n    ],\n    \"\\\\RemoveStone#c\": [\n      \"B\",\n      \"W\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ksbaduk#c,\\\\begin{ksbadukpan}#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ksforloop.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ksforloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksforloop{${1:counter=start+step}}{${2:end}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ksforloop*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ksforloop*{${1:counter=start+step}}{${2:end}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ksforquit\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kshcrkey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hcrkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hcrkey{${1:keyname%keyvals}}\",\n        \"keys\": [\n          \"\\\\hcrkey#c,\\\\hcrkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hcrkeys\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hcrkeys[${2:separator}]{${1:key, ...%keyvals}}\",\n        \"keys\": [\n          \"\\\\hcrkey#c,\\\\hcrkeys#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"hcrkeyfontname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hcrkey#c,\\\\hcrkeys#c\": [\n      \"ESC\",\n      \"Alt\",\n      \"Ctrl\",\n      \"TAB\",\n      \"capslock\",\n      \"Shift\",\n      \"space\",\n      \"backspace\",\n      \"del\",\n      \"ins\",\n      \"enter\",\n      \"left\",\n      \"right\",\n      \"up\",\n      \"down\",\n      \"pgup\",\n      \"pgdn\",\n      \"home\",\n      \"end\",\n      \"backquote\",\n      \"tilde\",\n      \"0\",\n      \"1\",\n      \"2\",\n      \"3\",\n      \"4\",\n      \"5\",\n      \"6\",\n      \"7\",\n      \"8\",\n      \"9\",\n      \"!\",\n      \"hash\",\n      \"dollar\",\n      \"percent\",\n      \"caret\",\n      \"ampersand\",\n      \"*\",\n      \"(\",\n      \")\",\n      \"-\",\n      \"_\",\n      \"+\",\n      \"=\",\n      \"[\",\n      \"]\",\n      \"\\\\{\",\n      \"\\\\}\",\n      \"backslash\",\n      \"|\",\n      \":\",\n      \";\",\n      \">\",\n      \".\",\n      \"<\",\n      \",\",\n      \"?\",\n      \"/\",\n      \"PrtSc\",\n      \"ScrollLock\",\n      \"Pause\",\n      \"NumLock\",\n      \"num/\",\n      \"num*\",\n      \"num-\",\n      \"num+\",\n      \"numEnter\",\n      \"num1\",\n      \"num2\",\n      \"num3\",\n      \"num4\",\n      \"num5\",\n      \"num6\",\n      \"num7\",\n      \"num8\",\n      \"num9\",\n      \"numins\",\n      \"numdel\",\n      \"numpgup\",\n      \"numpgdn\",\n      \"numleft\",\n      \"numright\",\n      \"numup\",\n      \"numdown\",\n      \"windows\",\n      \"blank\",\n      \"fn\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ksinsbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ksinsbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksinsbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ksinsbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ksinsbox[${2:pos%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\ksinsbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ksinsbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ksinsbox[${2:pos%keyvals}][${3:number}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\ksinsbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"InsertBoxL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertBoxL{${1:lines}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"InsertBoxL\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"InsertBoxL{${1:lines}}{${2:content%text}}[${3:correction}]\"\n      }\n    },\n    {\n      \"name\": \"InsertBoxR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertBoxR{${1:lines}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"InsertBoxR\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"InsertBoxR{${1:lines}}{${2:content%text}}[${3:correction}]\"\n      }\n    },\n    {\n      \"name\": \"InsertBoxC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertBoxC{${1:lines}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"InsertBoxC\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"InsertBoxC{${1:lines}}{${2:content%text}}[${3:correction}]\"\n      }\n    },\n    {\n      \"name\": \"MoveBelowBox\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ksinsbox\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ksjosaref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"refcount\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"josaref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"josaref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"josaref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"josaref[${2:type}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"josaref\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"josaref[${2:type}][${3:delim%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\josaref#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ref\",\n      \"if\": \"refcmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ref[${2:type}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ref\",\n      \"if\": \"refcmd\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ref[${2:type}][${3:delim}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"josarefcmds\"\n    },\n    {\n      \"name\": \"nojosarefcmds\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ksjosaref#c\": [\n      \"refcmd\"\n    ],\n    \"\\\\josaref#c\": [\n      \"paren\",\n      \"bracket\",\n      \"left=${1:delim}\",\n      \"right=${1:delim}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ksjosaref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ksmisc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ksforloop\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ksruby.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stackengine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ksruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ksruby{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ksruby*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ksruby*{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ruby*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby*{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ksrubycenterdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksrubycenterdefault{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"ksrubyheightdefault\"\n    },\n    {\n      \"name\": \"ksrubyheightdefault\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ksrubyheightdefault[${1:false}]\"\n      }\n    },\n    {\n      \"name\": \"ksrubywidthdefault\"\n    },\n    {\n      \"name\": \"ksrubywidthdefault\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ksrubywidthdefault[${1:false}]\"\n      }\n    },\n    {\n      \"name\": \"ksrubyeachchardefault\"\n    },\n    {\n      \"name\": \"ksrubyeachchardefault\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ksrubyeachchardefault[${1:false}]\"\n      }\n    },\n    {\n      \"name\": \"ksrubysep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksrubysep{${1:dim%l}}\"\n      }\n    },\n    {\n      \"name\": \"ksrubysize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksrubysize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"ksrubyextra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ksrubyextra{${1:cmds}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ksruby#c\": [\n      \"rubysep=\",\n      \"rubysize=${1:size}\",\n      \"rubyeachchar\",\n      \"rubywidth\",\n      \"rubyheight\",\n      \"rubycenter=${1|c,l,r|}\"\n    ],\n    \"\\\\ksrubycenter#c\": [\n      \"c\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ksruby#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kstextks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kssim\"\n    },\n    {\n      \"name\": \"textkssharp\"\n    },\n    {\n      \"name\": \"textksamp\"\n    },\n    {\n      \"name\": \"textksasterisk\"\n    },\n    {\n      \"name\": \"textksat\"\n    },\n    {\n      \"name\": \"textkssecsign\"\n    },\n    {\n      \"name\": \"textksreferencemark\"\n    },\n    {\n      \"name\": \"textksstarwhite\"\n    },\n    {\n      \"name\": \"textksstarblack\"\n    },\n    {\n      \"name\": \"textkscirclewhite\"\n    },\n    {\n      \"name\": \"textkscircleblack\"\n    },\n    {\n      \"name\": \"textksdblcircle\"\n    },\n    {\n      \"name\": \"textksdiamondwhite\"\n    },\n    {\n      \"name\": \"textksdiamondblack\"\n    },\n    {\n      \"name\": \"textkssquarewhite\"\n    },\n    {\n      \"name\": \"textkssquareblack\"\n    },\n    {\n      \"name\": \"textkstrianglewhite\"\n    },\n    {\n      \"name\": \"textkstriangleblack\"\n    },\n    {\n      \"name\": \"textksinvtrianglewhite\"\n    },\n    {\n      \"name\": \"textksinvtriangleblack\"\n    },\n    {\n      \"name\": \"textksrightarrow\"\n    },\n    {\n      \"name\": \"textksleftarrow\"\n    },\n    {\n      \"name\": \"textksuparrow\"\n    },\n    {\n      \"name\": \"textksdownarrow\"\n    },\n    {\n      \"name\": \"textksleftrightarrow\"\n    },\n    {\n      \"name\": \"textksequalsign\"\n    },\n    {\n      \"name\": \"textkslefttrianglewhite\"\n    },\n    {\n      \"name\": \"textkslefttriangleblack\"\n    },\n    {\n      \"name\": \"textksrighttrianglewhite\"\n    },\n    {\n      \"name\": \"textksrighttriangleblack\"\n    },\n    {\n      \"name\": \"textksspadewhite\"\n    },\n    {\n      \"name\": \"textksspadeblack\"\n    },\n    {\n      \"name\": \"textksheartwhite\"\n    },\n    {\n      \"name\": \"textksheartblack\"\n    },\n    {\n      \"name\": \"textkscloverwhite\"\n    },\n    {\n      \"name\": \"textkscloverblack\"\n    },\n    {\n      \"name\": \"textksframedcircle\"\n    },\n    {\n      \"name\": \"textksframeddiamond\"\n    },\n    {\n      \"name\": \"textksframedsquare\"\n    },\n    {\n      \"name\": \"textksfirstquartermoon\"\n    },\n    {\n      \"name\": \"textkslastquartermoon\"\n    },\n    {\n      \"name\": \"textkscheckedrectangle\"\n    },\n    {\n      \"name\": \"textkssquarehorstripe\"\n    },\n    {\n      \"name\": \"textkssquarevertstripe\"\n    },\n    {\n      \"name\": \"textkssquareslashstripe\"\n    },\n    {\n      \"name\": \"textkssquarebackslashstripe\"\n    },\n    {\n      \"name\": \"textkssquarecrossstripe\"\n    },\n    {\n      \"name\": \"textkssquarediagcrossstripe\"\n    },\n    {\n      \"name\": \"textkshotspring\"\n    },\n    {\n      \"name\": \"textkstelephonewhite\"\n    },\n    {\n      \"name\": \"textkstelephoneblack\"\n    },\n    {\n      \"name\": \"textksfingerarrowleft\"\n    },\n    {\n      \"name\": \"textksfingerarrowright\"\n    },\n    {\n      \"name\": \"textkspilcrow\"\n    },\n    {\n      \"name\": \"textksdagger\"\n    },\n    {\n      \"name\": \"textksdbldagger\"\n    },\n    {\n      \"name\": \"textksupdownarrow\"\n    },\n    {\n      \"name\": \"textksrightuparrow\"\n    },\n    {\n      \"name\": \"textksleftdownarrow\"\n    },\n    {\n      \"name\": \"textksleftuparrow\"\n    },\n    {\n      \"name\": \"textksrightdownarrow\"\n    },\n    {\n      \"name\": \"textksflat\"\n    },\n    {\n      \"name\": \"textksquarternote\"\n    },\n    {\n      \"name\": \"textkseighthnote\"\n    },\n    {\n      \"name\": \"textkssixteenthnote\"\n    },\n    {\n      \"name\": \"textksksmark\"\n    },\n    {\n      \"name\": \"textkscorpmark\"\n    },\n    {\n      \"name\": \"textksnumbermark\"\n    },\n    {\n      \"name\": \"textkscomark\"\n    },\n    {\n      \"name\": \"textkstrademark\"\n    },\n    {\n      \"name\": \"textksammark\"\n    },\n    {\n      \"name\": \"textkspmmark\"\n    },\n    {\n      \"name\": \"textkstelmark\"\n    },\n    {\n      \"name\": \"textksregisteredmark\"\n    },\n    {\n      \"name\": \"textksfeminimeordinalindicatormark\"\n    },\n    {\n      \"name\": \"textksmasculineordinalindicatormark\"\n    },\n    {\n      \"name\": \"textkspostalcodemark\"\n    },\n    {\n      \"name\": \"textksinterrobang\"\n    },\n    {\n      \"name\": \"textksasterim\"\n    },\n    {\n      \"name\": \"textkscopyright\"\n    },\n    {\n      \"name\": \"textkslongvowelmark\"\n    },\n    {\n      \"name\": \"textkstriangularcolon\"\n    },\n    {\n      \"name\": \"textkswavedash\"\n    },\n    {\n      \"name\": \"textksvertcomma\"\n    },\n    {\n      \"name\": \"textksvertfullstop\"\n    },\n    {\n      \"name\": \"textkscdotsingle\"\n    },\n    {\n      \"name\": \"textkscdotdouble\"\n    },\n    {\n      \"name\": \"textkshalfellipsis\"\n    },\n    {\n      \"name\": \"textksleftparenthesis\"\n    },\n    {\n      \"name\": \"textksrightparenthesis\"\n    },\n    {\n      \"name\": \"textksleftbracket\"\n    },\n    {\n      \"name\": \"textksrightbracket\"\n    },\n    {\n      \"name\": \"textksleftbrace\"\n    },\n    {\n      \"name\": \"textksrightbrace\"\n    },\n    {\n      \"name\": \"textksleftsinglequote\"\n    },\n    {\n      \"name\": \"textksrightsinglequote\"\n    },\n    {\n      \"name\": \"textksleftquote\"\n    },\n    {\n      \"name\": \"textksrightquote\"\n    },\n    {\n      \"name\": \"textksleftrbracket\"\n    },\n    {\n      \"name\": \"textksrightrbracket\"\n    },\n    {\n      \"name\": \"textksleftbbracket\"\n    },\n    {\n      \"name\": \"textksrightbbracket\"\n    },\n    {\n      \"name\": \"textksdblleftbbracket\"\n    },\n    {\n      \"name\": \"textksdblrightbbracket\"\n    },\n    {\n      \"name\": \"textksleftcbracket\"\n    },\n    {\n      \"name\": \"textksrightcbracket\"\n    },\n    {\n      \"name\": \"textksdblleftcbracket\"\n    },\n    {\n      \"name\": \"textksdblrightcbracket\"\n    },\n    {\n      \"name\": \"textksleftBracket\"\n    },\n    {\n      \"name\": \"textksrightBracket\"\n    },\n    {\n      \"name\": \"textksdegreecelcius\"\n    },\n    {\n      \"name\": \"textksdegreefahrenheit\"\n    },\n    {\n      \"name\": \"textksmalesign\"\n    },\n    {\n      \"name\": \"textksfemalesign\"\n    },\n    {\n      \"name\": \"textksdegree\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksminute\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkssecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmicroliter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmilliliter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksdeciliter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksliter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskiloliter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscenticube\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscubicmillimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscubiccentimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscubicmeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscubickilometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksfemtometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksnanometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmicrometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmillimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscentimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskilometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkssquaremillimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkssquarecentimeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkssquaremeter\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkssquarekilometer\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkshectare\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmicrogram\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmilligram\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskilogram\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskiloton\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkscalorie\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskilocalorie\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksdecibel\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmeterpersecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmeterpersecondsquared\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkspicosecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksnanosecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmicrosecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmillisecond\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkshertz\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textkskilohertz\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksmegahertz\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksgigahertz\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"textksterahertz\",\n      \"if\": \"units\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kstextks#c\": [\n      \"hcr\",\n      \"symfont=${1:font}\",\n      \"units\",\n      \"useonly={${1:name1,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kstextks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kswrapfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keycommand\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"picinpar\"\n    },\n    {\n      \"name\": \"picins\"\n    },\n    {\n      \"name\": \"ksinsbox\",\n      \"if\": \"insboxonly\"\n    },\n    {\n      \"name\": \"ksinsbox\",\n      \"if\": \"insbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kswrapfig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kswrapfig{${1:imagefile}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"kswrapfig\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kswrapfig[${3:options%keyvals}]{${1:imagefile}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\kswrapfig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kswrapfigline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kswrapfigline[${3:options%keyvals}]{${1:imagefile}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\kswrapfigline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tightlist\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kswrapfig#c\": [\n      \"insboxonly\",\n      \"clscaption\",\n      \"insbox\"\n    ],\n    \"\\\\kswrapfig#c\": [\n      \"Pos=${1|r,l|}\",\n      \"Width=\",\n      \"InPos=${1|r,c,l|}\",\n      \"Sep=\",\n      \"Indent=\",\n      \"Lower=\",\n      \"Caption={${1:text}}\",\n      \"LastLineSkip=\",\n      \"FirstLineSkip=\",\n      \"List=${1:env name}\",\n      \"VAdjust=\",\n      \"UseBox\"\n    ],\n    \"\\\\kswrapfigline#c\": [\n      \"Line=${1:num lines}\",\n      \"Pos=${1|r,l,c|}\",\n      \"CaptionName=${1:env name}\",\n      \"Width=\",\n      \"InPos=${1|r,c,l|}\",\n      \"Sep=\",\n      \"Indent=\",\n      \"Lower=\",\n      \"Caption={${1:text}}\",\n      \"LastLineSkip=\",\n      \"FirstLineSkip=\",\n      \"List=${1:env name}\",\n      \"VAdjust=\",\n      \"UseBox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kswrapfig#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kurdishlipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setkurdishlipsumdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkurdishlipsumdefault{${1:num-num}}\"\n      }\n    },\n    {\n      \"name\": \"kurdishlipsum\"\n    },\n    {\n      \"name\": \"kurdishlipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kurdishlipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"kurdishlipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kurdishlipsum[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"kurdishlipsum*\"\n    },\n    {\n      \"name\": \"ChangeKurdishlipsumPar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kurdishlipsum#c\": [\n      \"nopar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kurdishlipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kurier.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kurier#c\": [\n      \"regular\",\n      \"light\",\n      \"condensed\",\n      \"mathnoalias\",\n      \"math\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kurier#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kvmap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kvmapsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kvmapsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\kvmapsetup#c,\\\\begin{kvmap}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kvlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"kvlist{${1:width}}{${2:height}}{${3:elements%formula}}{${4:variables%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bundle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bundle{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"bundle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"bundle[${5:options%keyvals}]{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\",\n        \"keys\": [\n          \"\\\\bundle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"kvmap\"\n    },\n    {\n      \"name\": \"kvmap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\kvmapsetup#c,\\\\begin{kvmap}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kvmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:variables%formula}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\kvmapsetup#c,\\\\begin{kvmap}#c\": [\n      \"bundle/invert\",\n      \"bundle/hinvert\",\n      \"bundle/vinvert\",\n      \"bundle/overlapmargins=\",\n      \"bundle/color=\",\n      \"bundle/reducespace=\"\n    ],\n    \"\\\\bundle\": [\n      \"invert\",\n      \"hinvert\",\n      \"vinvert\",\n      \"overlapmargins=\",\n      \"color=\",\n      \"reducespace=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/kvoptions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvoptions-patch\",\n      \"if\": \"patch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProcessKeyvalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessKeyvalOptions{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessKeyvalOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessLocalKeyvalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessLocalKeyvalOptions{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessLocalKeyvalOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetupKeyvalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetupKeyvalOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetupKeyvalOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareStringOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareStringOption{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareStringOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DeclareStringOption[${2:init}]{${1:key%plain}}[${3:default}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareBoolOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareBoolOption{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBoolOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareBoolOption[${2:init}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareComplementaryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareComplementaryOption{${1:key%plain}}{${2:parent}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareVoidOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareVoidOption{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDefaultOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDefaultOption{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLocalOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLocalOption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLocalOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLocalOptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"DisableKeyvalOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DisableKeyvalOption{${1:family}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DisableKeyvalOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DisableKeyvalOption[${3:options%keyvals}]{${1:family}}{${2:key%plain}}\",\n        \"keys\": [\n          \"\\\\DisableKeyvalOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddToKeyvalOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddToKeyvalOption{${1:family}}{${2:key%plain}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToKeyvalOption*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToKeyvalOption*{${1:key%plain}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/kvoptions#c\": [\n      \"debugshow\",\n      \"patch\"\n    ],\n    \"\\\\SetupKeyvalOptions\": [\n      \"family=\",\n      \"prefix=\",\n      \"setkeys=\"\n    ],\n    \"\\\\DisableKeyvalOption\": [\n      \"action=${1|undef,warning,error,ignore|}\",\n      \"global\",\n      \"local\",\n      \"package=\",\n      \"class=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/kvoptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/kvsetkeys.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"kvsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvsetkeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"kvsetknownkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kvsetknownkeys{${1:family}}{${2:cmd}}{${3:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/l3keys2e.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/l3sys-query.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"QueryWorkingDirectory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QueryWorkingDirectory{${1:result cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"QueryFiles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"QueryFiles{${1:spec}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"QueryFiles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"QueryFiles[${3:options%keyvals}]{${1:spec}}{${2:function}}\",\n        \"keys\": [\n          \"\\\\QueryFiles,\\\\QueryFilesTF\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QueryFilesTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"QueryFilesTF{${1:spec}}{${2:function}}{${3:pre code}}{${4:empty list code}}\"\n      }\n    },\n    {\n      \"name\": \"QueryFilesTF\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"QueryFilesTF[${5:options%keyvals}]{${1:spec}}{${2:function}}{${3:pre code}}{${4:empty list code}}\",\n        \"keys\": [\n          \"\\\\QueryFiles,\\\\QueryFilesTF\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\QueryFiles,\\\\QueryFilesTF\": [\n      \"recursive\",\n      \"ignore-case\",\n      \"reverse\",\n      \"pattern\",\n      \"sort=${1|date,name|}\",\n      \"type=${1|d,f|}\",\n      \"exclude=${1:Lua pattern}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/la.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"la\"\n    },\n    {\n      \"name\": \"textla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textla{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lla\"\n    },\n    {\n      \"name\": \"textlla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlla{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"llafill\"\n    },\n    {\n      \"name\": \"llaline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llaline{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"llapar\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/labels.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BottomLabelBorder\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"BottomPageMargin\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"InterLabelColumn\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"InterLabelRow\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"LeftLabelBorder\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"LeftPageMargin\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"RightLabelBorder\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"RightPageMargin\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"TopLabelBorder\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"TopPageMargin\",\n      \"if\": \"newdimens\"\n    },\n    {\n      \"name\": \"addresslabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addresslabel[${2:font commands}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addresslabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addresslabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BottomBorder\"\n    },\n    {\n      \"name\": \"boxedaddresslabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"boxedaddresslabel[${2:font commands}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boxedaddresslabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedaddresslabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"genericlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"genericlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifLabelGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLabelInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LabelCols\"\n    },\n    {\n      \"name\": \"labelfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LabelGridfalse\"\n    },\n    {\n      \"name\": \"LabelGridtrue\"\n    },\n    {\n      \"name\": \"LabelInfofalse\"\n    },\n    {\n      \"name\": \"LabelInfotrue\"\n    },\n    {\n      \"name\": \"LabelRows\"\n    },\n    {\n      \"name\": \"LabelSetup\"\n    },\n    {\n      \"name\": \"LeftBorder\"\n    },\n    {\n      \"name\": \"numberoflabels\"\n    },\n    {\n      \"name\": \"promptlabels\"\n    },\n    {\n      \"name\": \"RightBorder\"\n    },\n    {\n      \"name\": \"skiplabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplabels{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"TopBorder\"\n    },\n    {\n      \"name\": \"LabelTotal\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"labels\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/labels#c\": [\n      \"newdimens\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/labels#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/labels4easylist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"easylist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"itemLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"itemLabel\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"itemLabel{${1:label}}[${2:skipA}]\"\n      }\n    },\n    {\n      \"name\": \"itemLabel\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"itemLabel{${1:label}}[${2:skipA}][${3:skipB}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"easylist\",\n      \"if\": \"ampersand\"\n    },\n    {\n      \"name\": \"easylist\",\n      \"if\": \"ampersand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:style%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/labels4easylist#c\": [\n      \"pilcrow\",\n      \"at\",\n      \"sharp\",\n      \"ampersand\",\n      \"${1:number of counters}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/labels4easylist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/labyrinth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"picture\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"h\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labyrinthset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labyrinthset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{labyrinth},\\\\labyrinthset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"putsymbol\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"putsymbol(${2:x},${3:y}){${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"plus\",\n      \"unusual\": true,\n      \"detail\": \"+\",\n      \"doc\": \"Plus sign\"\n    },\n    {\n      \"name\": \"minus\",\n      \"unusual\": true,\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"ast\",\n      \"unusual\": true,\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"labyrinthsolution\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"labyrinthsolution(${2:x},${3:y}){${1:solution code}}\"\n      }\n    },\n    {\n      \"name\": \"labyrinthsolution\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"labyrinthsolution[${2:options%keyvals}](${3:x},${4:y}){${1:solution code}}\",\n        \"keys\": [\n          \"\\\\labyrinthsolution,\\\\solutionset,\\\\autosolution\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solutionset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solutionset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\labyrinthsolution,\\\\solutionset,\\\\autosolution\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autosolution\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"autosolution(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:first direction}}\"\n      }\n    },\n    {\n      \"name\": \"autosolution\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"autosolution[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:first direction}}\",\n        \"keys\": [\n          \"\\\\labyrinthsolution,\\\\solutionset,\\\\autosolution\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solutionpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"truncdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"truncdiv{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"labyrinth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width%plain}}{${2:height%plain}}\"\n      }\n    },\n    {\n      \"name\": \"labyrinth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:width%plain}}{${2:height%plain}}\",\n        \"keys\": [\n          \"\\\\begin{labyrinth},\\\\labyrinthset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{labyrinth},\\\\labyrinthset\": [\n      \"unit=\",\n      \"thickness=\",\n      \"centered\"\n    ],\n    \"\\\\labyrinthsolution,\\\\solutionset,\\\\autosolution\": [\n      \"hidden\",\n      \"thicklines\",\n      \"up=${1:symbol}\",\n      \"left=${1:symbol}\",\n      \"down=${1:symbol}\",\n      \"right=${1:symbol}\",\n      \"hcorr=\",\n      \"vcorr=\",\n      \"font=${1:font commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ladder.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ladderLine\"\n    },\n    {\n      \"name\": \"startParallel\"\n    },\n    {\n      \"name\": \"setParallel\"\n    },\n    {\n      \"name\": \"unsetParallel\"\n    },\n    {\n      \"name\": \"ladderNO\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ladderNO{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderNO\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ladderNO[${3:type}]{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderNC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ladderNC{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderNC\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ladderNC[${3:type}]{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ladderC{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderC\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ladderC[${3:type}]{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ladderText{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"ladderText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ladderText[${3:type}]{${1:name}}{${2:mnemonic}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thememCurrentX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thememCurrentY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenextX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenextY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenextYPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestartPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestopPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetempCurrentY\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lambdax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"keyparse\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LambdaX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LambdaX{${1:definition}}{${2:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"dowith\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"uselangcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uselangcode{${1:langcode}}\"\n      }\n    },\n    {\n      \"name\": \"langcodedependent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monthname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monthname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"enmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enmonthname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"demonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"demonthname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"qtd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pardash\"\n    },\n    {\n      \"name\": \"enpardash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"depardash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enlastrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delastrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totopofpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entotopofpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detotopofpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enlangcodeextras\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delangcodeextras\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langnames.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lname{${1:ISO code%keyvals}}\",\n        \"keys\": [\n          \"\\\\lname#c,\\\\liso#c,\\\\lfam#c,\\\\langnative#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"liso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liso{${1:ISO code%keyvals}}\",\n        \"keys\": [\n          \"\\\\lname#c,\\\\liso#c,\\\\lfam#c,\\\\langnative#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lfam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfam{${1:ISO code%keyvals}}\",\n        \"keys\": [\n          \"\\\\lname#c,\\\\liso#c,\\\\lfam#c,\\\\langnative#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"langnative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"langnative{${1:ISO code%keyvals}}\",\n        \"keys\": [\n          \"\\\\lname#c,\\\\liso#c,\\\\lfam#c,\\\\langnative#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newlang\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlang{${1:code%specialDef}}{${2:name}}{${3:family}}\"\n      }\n    },\n    {\n      \"name\": \"renewlang\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewlang{${1:dataset}}{${2:code}}{${3:name}}{${4:family}}\"\n      }\n    },\n    {\n      \"name\": \"newlangnative\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlangnative{${1:dataset}}{${2:code}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"changetoglottolog\"\n    },\n    {\n      \"name\": \"changetowals\"\n    },\n    {\n      \"name\": \"changetonone\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/langnames#c\": [\n      \"glottolog\",\n      \"wals\",\n      \"none\",\n      \"native\"\n    ],\n    \"\\\\lname#c,\\\\liso#c,\\\\lfam#c,\\\\langnative#c\": [\n      \"knw\",\n      \"nmn\",\n      \"alu\",\n      \"hnh\",\n      \"xam\",\n      \"huc\",\n      \"apq\",\n      \"aiw\",\n      \"aau\",\n      \"abq\",\n      \"abe\",\n      \"abi\",\n      \"axb\",\n      \"abk\",\n      \"abz\",\n      \"kgr\",\n      \"ace\",\n      \"aca\",\n      \"acn\",\n      \"ach\",\n      \"acu\",\n      \"acv\",\n      \"guq\",\n      \"acr\",\n      \"kjq\",\n      \"ads\",\n      \"adn\",\n      \"adj\",\n      \"ady\",\n      \"adt\",\n      \"adz\",\n      \"awi\",\n      \"afr\",\n      \"agd\",\n      \"agq\",\n      \"ahh\",\n      \"agx\",\n      \"agt\",\n      \"duo\",\n      \"agu\",\n      \"agr\",\n      \"aht\",\n      \"tba\",\n      \"ain\",\n      \"ahp\",\n      \"aja\",\n      \"ajg\",\n      \"aji\",\n      \"axk\",\n      \"abj\",\n      \"aci\",\n      \"akx\",\n      \"aka\",\n      \"ake\",\n      \"ahk\",\n      \"akv\",\n      \"akl\",\n      \"akw\",\n      \"nrz\",\n      \"akz\",\n      \"wbj\",\n      \"amp\",\n      \"btz\",\n      \"alh\",\n      \"sqi\",\n      \"ale\",\n      \"alq\",\n      \"ald\",\n      \"gsw\",\n      \"aes\",\n      \"alt\",\n      \"alp\",\n      \"ems\",\n      \"alr\",\n      \"aly\",\n      \"amm\",\n      \"amc\",\n      \"amn\",\n      \"aie\",\n      \"amr\",\n      \"omb\",\n      \"amk\",\n      \"abt\",\n      \"adx\",\n      \"aey\",\n      \"ase\",\n      \"amh\",\n      \"ami\",\n      \"amo\",\n      \"apz\",\n      \"ame\",\n      \"amu\",\n      \"imi\",\n      \"ani\",\n      \"ano\",\n      \"aty\",\n      \"agm\",\n      \"njm\",\n      \"anc\",\n      \"agg\",\n      \"aoa\",\n      \"awg\",\n      \"aoi\",\n      \"nun\",\n      \"cko\",\n      \"any\",\n      \"anu\",\n      \"anz\",\n      \"njo\",\n      \"apm\",\n      \"apj\",\n      \"apw\",\n      \"apy\",\n      \"apt\",\n      \"apn\",\n      \"apu\",\n      \"ard\",\n      \"arl\",\n      \"abv\",\n      \"mey\",\n      \"shu\",\n      \"ayl\",\n      \"arz\",\n      \"afb\",\n      \"acw\",\n      \"acm\",\n      \"acy\",\n      \"arb\",\n      \"ary\",\n      \"ajp\",\n      \"ayn\",\n      \"apc\",\n      \"aeb\",\n      \"rmz\",\n      \"akr\",\n      \"atq\",\n      \"jbj\",\n      \"aro\",\n      \"arp\",\n      \"aah\",\n      \"ape\",\n      \"arv\",\n      \"aqc\",\n      \"laz\",\n      \"ari\",\n      \"hye\",\n      \"hyw\",\n      \"apr\",\n      \"aia\",\n      \"aer\",\n      \"are\",\n      \"cns\",\n      \"asm\",\n      \"ast\",\n      \"asu\",\n      \"kuz\",\n      \"aqp\",\n      \"tay\",\n      \"upv\",\n      \"aph\",\n      \"atj\",\n      \"atw\",\n      \"avt\",\n      \"aul\",\n      \"asf\",\n      \"auy\",\n      \"ava\",\n      \"avn\",\n      \"avi\",\n      \"avu\",\n      \"awb\",\n      \"kwi\",\n      \"awa\",\n      \"awn\",\n      \"kmn\",\n      \"auw\",\n      \"nfl\",\n      \"ayr\",\n      \"aib\",\n      \"ayo\",\n      \"azb\",\n      \"koe\",\n      \"bvx\",\n      \"bav\",\n      \"wdj\",\n      \"bfq\",\n      \"bde\",\n      \"bia\",\n      \"ksf\",\n      \"bfd\",\n      \"bsp\",\n      \"bmi\",\n      \"fuu\",\n      \"bgq\",\n      \"kva\",\n      \"bdw\",\n      \"bjh\",\n      \"bdq\",\n      \"bca\",\n      \"bdl\",\n      \"bdr\",\n      \"bkc\",\n      \"bdh\",\n      \"bkq\",\n      \"bri\",\n      \"blw\",\n      \"blz\",\n      \"ban\",\n      \"bft\",\n      \"bgn\",\n      \"ptu\",\n      \"bam\",\n      \"bax\",\n      \"bcw\",\n      \"jaa\",\n      \"bza\",\n      \"bdy\",\n      \"bgz\",\n      \"bjb\",\n      \"bdg\",\n      \"dba\",\n      \"bvv\",\n      \"bwi\",\n      \"abb\",\n      \"bcm\",\n      \"bnq\",\n      \"peh\",\n      \"bci\",\n      \"loy\",\n      \"bbb\",\n      \"brm\",\n      \"bsn\",\n      \"bcj\",\n      \"mlp\",\n      \"bfa\",\n      \"bba\",\n      \"wra\",\n      \"byr\",\n      \"bae\",\n      \"mot\",\n      \"bsc\",\n      \"bas\",\n      \"bak\",\n      \"eus\",\n      \"bya\",\n      \"btx\",\n      \"bbc\",\n      \"bhm\",\n      \"bbd\",\n      \"brg\",\n      \"bvz\",\n      \"bgr\",\n      \"bsw\",\n      \"bxj\",\n      \"beq\",\n      \"dbj\",\n      \"bej\",\n      \"byw\",\n      \"blc\",\n      \"bel\",\n      \"bem\",\n      \"bef\",\n      \"nhb\",\n      \"bng\",\n      \"ben\",\n      \"ctg\",\n      \"bue\",\n      \"brf\",\n      \"shy\",\n      \"grr\",\n      \"tzm\",\n      \"mzb\",\n      \"rif\",\n      \"siz\",\n      \"oua\",\n      \"brc\",\n      \"zag\",\n      \"bkl\",\n      \"wti\",\n      \"xub\",\n      \"kap\",\n      \"bhb\",\n      \"bho\",\n      \"unr\",\n      \"bif\",\n      \"bhw\",\n      \"bth\",\n      \"bid\",\n      \"bcl\",\n      \"bip\",\n      \"bpr\",\n      \"byn\",\n      \"nbj\",\n      \"bll\",\n      \"blb\",\n      \"bhp\",\n      \"bim\",\n      \"bhg\",\n      \"bin\",\n      \"gup\",\n      \"bkd\",\n      \"bjr\",\n      \"bzr\",\n      \"bom\",\n      \"bvq\",\n      \"bib\",\n      \"bis\",\n      \"bla\",\n      \"kvg\",\n      \"bni\",\n      \"bbo\",\n      \"brx\",\n      \"bzf\",\n      \"bqc\",\n      \"bol\",\n      \"bli\",\n      \"bot\",\n      \"bpu\",\n      \"lbk\",\n      \"boa\",\n      \"adi\",\n      \"bor\",\n      \"brn\",\n      \"bos\",\n      \"boz\",\n      \"brh\",\n      \"brb\",\n      \"bre\",\n      \"bzd\",\n      \"bfi\",\n      \"tcs\",\n      \"bkk\",\n      \"bru\",\n      \"brv\",\n      \"bvb\",\n      \"buu\",\n      \"bdk\",\n      \"bdm\",\n      \"bug\",\n      \"sab\",\n      \"bgg\",\n      \"buo\",\n      \"nmg\",\n      \"bxk\",\n      \"bul\",\n      \"bwu\",\n      \"bzq\",\n      \"bum\",\n      \"tkw\",\n      \"bfu\",\n      \"buh\",\n      \"bck\",\n      \"bwr\",\n      \"bvr\",\n      \"bxm\",\n      \"bji\",\n      \"mya\",\n      \"mhs\",\n      \"bmu\",\n      \"bds\",\n      \"bsk\",\n      \"bqp\",\n      \"buf\",\n      \"ngc\",\n      \"bee\",\n      \"bev\",\n      \"cjp\",\n      \"cbv\",\n      \"cad\",\n      \"chl\",\n      \"cak\",\n      \"rab\",\n      \"cjo\",\n      \"kbh\",\n      \"knm\",\n      \"cbu\",\n      \"ram\",\n      \"yue\",\n      \"kaq\",\n      \"cbc\",\n      \"car\",\n      \"mch\",\n      \"cal\",\n      \"crx\",\n      \"cbr\",\n      \"cbs\",\n      \"cat\",\n      \"chc\",\n      \"cto\",\n      \"cav\",\n      \"cbi\",\n      \"cay\",\n      \"cyb\",\n      \"ceb\",\n      \"old\",\n      \"suq\",\n      \"cld\",\n      \"cjm\",\n      \"cja\",\n      \"cji\",\n      \"can\",\n      \"cha\",\n      \"nbc\",\n      \"chx\",\n      \"tuu\",\n      \"cya\",\n      \"cta\",\n      \"ctp\",\n      \"cdn\",\n      \"cbk\",\n      \"cbt\",\n      \"che\",\n      \"cjh\",\n      \"mrn\",\n      \"xch\",\n      \"cdm\",\n      \"chr\",\n      \"chy\",\n      \"nya\",\n      \"pei\",\n      \"cic\",\n      \"cob\",\n      \"cid\",\n      \"cbg\",\n      \"mrh\",\n      \"csy\",\n      \"ctd\",\n      \"cco\",\n      \"cle\",\n      \"cpa\",\n      \"chq\",\n      \"cuc\",\n      \"cso\",\n      \"cnt\",\n      \"csl\",\n      \"chh\",\n      \"wac\",\n      \"cap\",\n      \"chp\",\n      \"cax\",\n      \"gui\",\n      \"ctm\",\n      \"coz\",\n      \"cho\",\n      \"ctu\",\n      \"cht\",\n      \"chd\",\n      \"clo\",\n      \"chf\",\n      \"caa\",\n      \"crw\",\n      \"cje\",\n      \"cjv\",\n      \"cac\",\n      \"ckt\",\n      \"clw\",\n      \"boi\",\n      \"inz\",\n      \"ncu\",\n      \"chk\",\n      \"chv\",\n      \"cao\",\n      \"lua\",\n      \"clm\",\n      \"xcw\",\n      \"cod\",\n      \"coc\",\n      \"crd\",\n      \"con\",\n      \"kog\",\n      \"col\",\n      \"com\",\n      \"xcm\",\n      \"swb\",\n      \"coo\",\n      \"csz\",\n      \"cop\",\n      \"crn\",\n      \"cor\",\n      \"crk\",\n      \"csw\",\n      \"mus\",\n      \"crh\",\n      \"cro\",\n      \"cua\",\n      \"cub\",\n      \"cui\",\n      \"cuy\",\n      \"cul\",\n      \"cup\",\n      \"kpc\",\n      \"ces\",\n      \"cam\",\n      \"kzf\",\n      \"dbq\",\n      \"dav\",\n      \"mps\",\n      \"dgz\",\n      \"dga\",\n      \"dag\",\n      \"dta\",\n      \"dal\",\n      \"daj\",\n      \"dak\",\n      \"mbp\",\n      \"dnj\",\n      \"daa\",\n      \"dni\",\n      \"dan\",\n      \"dry\",\n      \"dar\",\n      \"prs\",\n      \"drd\",\n      \"tcc\",\n      \"dai\",\n      \"afn\",\n      \"deg\",\n      \"ing\",\n      \"dny\",\n      \"des\",\n      \"shg\",\n      \"der\",\n      \"gsg\",\n      \"dsh\",\n      \"dhl\",\n      \"tbh\",\n      \"dhr\",\n      \"xgm\",\n      \"dhi\",\n      \"div\",\n      \"dhu\",\n      \"did\",\n      \"mhu\",\n      \"dur\",\n      \"dis\",\n      \"dim\",\n      \"diz\",\n      \"din\",\n      \"dyo\",\n      \"csk\",\n      \"dif\",\n      \"mdx\",\n      \"dyy\",\n      \"djr\",\n      \"duj\",\n      \"ddj\",\n      \"dji\",\n      \"jig\",\n      \"kbv\",\n      \"kvo\",\n      \"dgo\",\n      \"dlg\",\n      \"dmk\",\n      \"rmt\",\n      \"kmc\",\n      \"doo\",\n      \"dds\",\n      \"tds\",\n      \"dow\",\n      \"dhv\",\n      \"dua\",\n      \"dud\",\n      \"gwd\",\n      \"duu\",\n      \"dma\",\n      \"dgc\",\n      \"dus\",\n      \"vam\",\n      \"duc\",\n      \"nld\",\n      \"zea\",\n      \"dyi\",\n      \"dbl\",\n      \"dyu\",\n      \"kwa\",\n      \"igb\",\n      \"etr\",\n      \"erk\",\n      \"efi\",\n      \"ega\",\n      \"eip\",\n      \"etu\",\n      \"ekg\",\n      \"eko\",\n      \"mrf\",\n      \"ema\",\n      \"emb\",\n      \"cmi\",\n      \"emp\",\n      \"amy\",\n      \"enq\",\n      \"enn\",\n      \"eno\",\n      \"eng\",\n      \"gey\",\n      \"sja\",\n      \"erg\",\n      \"ese\",\n      \"esq\",\n      \"ekk\",\n      \"ets\",\n      \"eve\",\n      \"ewe\",\n      \"ewo\",\n      \"eya\",\n      \"fao\",\n      \"faa\",\n      \"fmp\",\n      \"fij\",\n      \"fin\",\n      \"fse\",\n      \"foi\",\n      \"ppo\",\n      \"fon\",\n      \"frd\",\n      \"for\",\n      \"sac\",\n      \"fra\",\n      \"fry\",\n      \"frs\",\n      \"frr\",\n      \"fuh\",\n      \"fuf\",\n      \"fub\",\n      \"ffm\",\n      \"fuv\",\n      \"fun\",\n      \"fvr\",\n      \"fud\",\n      \"fut\",\n      \"cdo\",\n      \"pym\",\n      \"gqa\",\n      \"gbu\",\n      \"dhg\",\n      \"gdb\",\n      \"ged\",\n      \"gaj\",\n      \"gla\",\n      \"gag\",\n      \"gah\",\n      \"gbi\",\n      \"glg\",\n      \"adl\",\n      \"kld\",\n      \"gmv\",\n      \"pwg\",\n      \"grt\",\n      \"wrk\",\n      \"gyb\",\n      \"cab\",\n      \"gvo\",\n      \"gay\",\n      \"gya\",\n      \"gso\",\n      \"gbp\",\n      \"nlg\",\n      \"gqu\",\n      \"kat\",\n      \"deu\",\n      \"bar\",\n      \"ksh\",\n      \"wep\",\n      \"aaa\",\n      \"ghl\",\n      \"gih\",\n      \"gid\",\n      \"glk\",\n      \"bcq\",\n      \"git\",\n      \"gis\",\n      \"guc\",\n      \"god\",\n      \"gdo\",\n      \"ank\",\n      \"ggw\",\n      \"gju\",\n      \"gkn\",\n      \"gol\",\n      \"gvf\",\n      \"gno\",\n      \"gni\",\n      \"gor\",\n      \"gow\",\n      \"grj\",\n      \"ell\",\n      \"gss\",\n      \"kal\",\n      \"guh\",\n      \"gub\",\n      \"gum\",\n      \"gva\",\n      \"gvc\",\n      \"gug\",\n      \"var\",\n      \"gta\",\n      \"guo\",\n      \"gde\",\n      \"gdf\",\n      \"ktd\",\n      \"ggd\",\n      \"ghs\",\n      \"gcr\",\n      \"pov\",\n      \"guj\",\n      \"kcm\",\n      \"glj\",\n      \"gnn\",\n      \"gvs\",\n      \"kgs\",\n      \"guk\",\n      \"wlg\",\n      \"guw\",\n      \"gww\",\n      \"yas\",\n      \"gyy\",\n      \"guf\",\n      \"gnr\",\n      \"gur\",\n      \"gue\",\n      \"gux\",\n      \"goa\",\n      \"gge\",\n      \"guz\",\n      \"gbj\",\n      \"kky\",\n      \"gbr\",\n      \"kcg\",\n      \"gaa\",\n      \"pue\",\n      \"hts\",\n      \"hai\",\n      \"hdn\",\n      \"has\",\n      \"hat\",\n      \"hak\",\n      \"hal\",\n      \"hlb\",\n      \"hla\",\n      \"amf\",\n      \"hmt\",\n      \"wos\",\n      \"hni\",\n      \"hnn\",\n      \"har\",\n      \"hss\",\n      \"tmd\",\n      \"had\",\n      \"hau\",\n      \"haw\",\n      \"hwc\",\n      \"hac\",\n      \"hay\",\n      \"vay\",\n      \"xed\",\n      \"heb\",\n      \"heh\",\n      \"hei\",\n      \"hem\",\n      \"her\",\n      \"hid\",\n      \"hil\",\n      \"hin\",\n      \"gin\",\n      \"hix\",\n      \"lic\",\n      \"hmr\",\n      \"mww\",\n      \"hnj\",\n      \"hoc\",\n      \"hoa\",\n      \"hoo\",\n      \"hks\",\n      \"hop\",\n      \"hre\",\n      \"ygr\",\n      \"hub\",\n      \"hus\",\n      \"huv\",\n      \"hch\",\n      \"hto\",\n      \"hux\",\n      \"huu\",\n      \"hke\",\n      \"hun\",\n      \"huz\",\n      \"jup\",\n      \"hup\",\n      \"csh\",\n      \"ksi\",\n      \"iai\",\n      \"ian\",\n      \"tmu\",\n      \"iba\",\n      \"ibg\",\n      \"ibb\",\n      \"isl\",\n      \"icl\",\n      \"idu\",\n      \"clk\",\n      \"viv\",\n      \"mxe\",\n      \"ifb\",\n      \"ifm\",\n      \"ibo\",\n      \"ige\",\n      \"ign\",\n      \"ihp\",\n      \"ijc\",\n      \"ikx\",\n      \"arh\",\n      \"ilb\",\n      \"mia\",\n      \"ilo\",\n      \"imn\",\n      \"szp\",\n      \"ins\",\n      \"pks\",\n      \"ind\",\n      \"pmy\",\n      \"inb\",\n      \"tbi\",\n      \"inh\",\n      \"ynd\",\n      \"ils\",\n      \"ike\",\n      \"iqu\",\n      \"irn\",\n      \"irk\",\n      \"irh\",\n      \"gle\",\n      \"isg\",\n      \"its\",\n      \"isk\",\n      \"srl\",\n      \"isd\",\n      \"iso\",\n      \"isr\",\n      \"ita\",\n      \"egl\",\n      \"lij\",\n      \"nap\",\n      \"pms\",\n      \"itv\",\n      \"itl\",\n      \"ito\",\n      \"itz\",\n      \"ivb\",\n      \"ibd\",\n      \"iwm\",\n      \"yom\",\n      \"ixc\",\n      \"ixl\",\n      \"izr\",\n      \"izh\",\n      \"izz\",\n      \"esi\",\n      \"jbt\",\n      \"jae\",\n      \"jda\",\n      \"jhi\",\n      \"jac\",\n      \"jam\",\n      \"djd\",\n      \"djm\",\n      \"jpn\",\n      \"jru\",\n      \"jqr\",\n      \"anq\",\n      \"jav\",\n      \"jeb\",\n      \"jeh\",\n      \"jek\",\n      \"tow\",\n      \"jya\",\n      \"shv\",\n      \"kac\",\n      \"jiu\",\n      \"jiv\",\n      \"rgk\",\n      \"tlo\",\n      \"jun\",\n      \"nst\",\n      \"jbu\",\n      \"bex\",\n      \"juc\",\n      \"jur\",\n      \"ktz\",\n      \"jua\",\n      \"kek\",\n      \"kbd\",\n      \"xkp\",\n      \"kbp\",\n      \"nbu\",\n      \"kab\",\n      \"xac\",\n      \"kzj\",\n      \"kbc\",\n      \"kdm\",\n      \"kki\",\n      \"kct\",\n      \"lew\",\n      \"kgp\",\n      \"kxa\",\n      \"kgk\",\n      \"tbd\",\n      \"mwp\",\n      \"kmh\",\n      \"gwc\",\n      \"kck\",\n      \"kyl\",\n      \"kls\",\n      \"fla\",\n      \"ktg\",\n      \"bco\",\n      \"kay\",\n      \"kbq\",\n      \"kms\",\n      \"xas\",\n      \"kam\",\n      \"xbr\",\n      \"kbx\",\n      \"kcu\",\n      \"kgq\",\n      \"xmu\",\n      \"ogo\",\n      \"kna\",\n      \"xns\",\n      \"kbl\",\n      \"ikt\",\n      \"kjb\",\n      \"knj\",\n      \"kne\",\n      \"kan\",\n      \"kxo\",\n      \"khd\",\n      \"kcd\",\n      \"knc\",\n      \"kny\",\n      \"pam\",\n      \"kpg\",\n      \"kah\",\n      \"leu\",\n      \"krc\",\n      \"gbd\",\n      \"kdr\",\n      \"kpj\",\n      \"kaa\",\n      \"zkk\",\n      \"kyj\",\n      \"kpt\",\n      \"krl\",\n      \"bwe\",\n      \"kjp\",\n      \"ksw\",\n      \"vka\",\n      \"kdj\",\n      \"ktn\",\n      \"yuj\",\n      \"kyh\",\n      \"arr\",\n      \"xsm\",\n      \"kju\",\n      \"kas\",\n      \"csb\",\n      \"cog\",\n      \"bqy\",\n      \"xtc\",\n      \"bsh\",\n      \"kts\",\n      \"kcr\",\n      \"ktw\",\n      \"pss\",\n      \"bpp\",\n      \"zku\",\n      \"xaw\",\n      \"kyz\",\n      \"eky\",\n      \"kys\",\n      \"txu\",\n      \"gyd\",\n      \"gbb\",\n      \"kaz\",\n      \"ksx\",\n      \"kbr\",\n      \"kei\",\n      \"kcl\",\n      \"kzi\",\n      \"sbc\",\n      \"ahg\",\n      \"kmt\",\n      \"kyq\",\n      \"keu\",\n      \"xki\",\n      \"ken\",\n      \"xxk\",\n      \"ker\",\n      \"krk\",\n      \"kee\",\n      \"ket\",\n      \"xdy\",\n      \"kcv\",\n      \"xte\",\n      \"kew\",\n      \"kjh\",\n      \"klj\",\n      \"klr\",\n      \"khk\",\n      \"kjl\",\n      \"khg\",\n      \"kca\",\n      \"khr\",\n      \"kha\",\n      \"kjj\",\n      \"khm\",\n      \"kjg\",\n      \"khw\",\n      \"cnk\",\n      \"khv\",\n      \"kkh\",\n      \"kic\",\n      \"kik\",\n      \"hbb\",\n      \"kij\",\n      \"klb\",\n      \"lub\",\n      \"kig\",\n      \"zga\",\n      \"kfk\",\n      \"kin\",\n      \"kio\",\n      \"kzw\",\n      \"geb\",\n      \"kir\",\n      \"gil\",\n      \"kiy\",\n      \"cme\",\n      \"kje\",\n      \"kss\",\n      \"gia\",\n      \"kii\",\n      \"ktu\",\n      \"kjd\",\n      \"kla\",\n      \"klu\",\n      \"yak\",\n      \"kst\",\n      \"cku\",\n      \"kpw\",\n      \"kfa\",\n      \"xwg\",\n      \"xuo\",\n      \"bcs\",\n      \"kpx\",\n      \"kbk\",\n      \"kqi\",\n      \"trp\",\n      \"kex\",\n      \"kkk\",\n      \"kvv\",\n      \"kfb\",\n      \"kvw\",\n      \"shm\",\n      \"bkm\",\n      \"xbi\",\n      \"kge\",\n      \"koi\",\n      \"xom\",\n      \"kfc\",\n      \"kng\",\n      \"kjc\",\n      \"knn\",\n      \"xon\",\n      \"mjd\",\n      \"kma\",\n      \"kyx\",\n      \"cou\",\n      \"kqy\",\n      \"kpr\",\n      \"kqz\",\n      \"knk\",\n      \"kor\",\n      \"coe\",\n      \"kfq\",\n      \"kfz\",\n      \"khe\",\n      \"kpy\",\n      \"kia\",\n      \"kos\",\n      \"kfe\",\n      \"aal\",\n      \"kff\",\n      \"khq\",\n      \"ses\",\n      \"koy\",\n      \"kpk\",\n      \"xpe\",\n      \"kpo\",\n      \"xra\",\n      \"kqq\",\n      \"krs\",\n      \"rop\",\n      \"kgo\",\n      \"jct\",\n      \"kry\",\n      \"puo\",\n      \"sdm\",\n      \"uwa\",\n      \"kxu\",\n      \"kvd\",\n      \"kui\",\n      \"gvn\",\n      \"mbt\",\n      \"dwr\",\n      \"kle\",\n      \"kue\",\n      \"kfy\",\n      \"kum\",\n      \"kvn\",\n      \"kun\",\n      \"kup\",\n      \"kjn\",\n      \"cmn\",\n      \"kto\",\n      \"ckb\",\n      \"kmr\",\n      \"kru\",\n      \"kgg\",\n      \"vkt\",\n      \"gwi\",\n      \"kut\",\n      \"thd\",\n      \"kuy\",\n      \"kxv\",\n      \"kwd\",\n      \"kwk\",\n      \"tnk\",\n      \"ksq\",\n      \"kwn\",\n      \"xwa\",\n      \"kwe\",\n      \"kmo\",\n      \"kwo\",\n      \"xuu\",\n      \"kyc\",\n      \"kgy\",\n      \"nuk\",\n      \"kmg\",\n      \"gdm\",\n      \"lbu\",\n      \"lac\",\n      \"lbt\",\n      \"lbj\",\n      \"lld\",\n      \"lad\",\n      \"laf\",\n      \"kot\",\n      \"lha\",\n      \"lhu\",\n      \"cnh\",\n      \"lbe\",\n      \"lkt\",\n      \"lbc\",\n      \"ywt\",\n      \"slp\",\n      \"hia\",\n      \"lmn\",\n      \"lam\",\n      \"lmu\",\n      \"lns\",\n      \"ljp\",\n      \"lby\",\n      \"lme\",\n      \"lag\",\n      \"laj\",\n      \"fsl\",\n      \"fcs\",\n      \"lao\",\n      \"lrg\",\n      \"lbz\",\n      \"alo\",\n      \"lav\",\n      \"llu\",\n      \"law\",\n      \"lvk\",\n      \"lzz\",\n      \"agh\",\n      \"lea\",\n      \"agb\",\n      \"lec\",\n      \"lln\",\n      \"lef\",\n      \"tnl\",\n      \"led\",\n      \"enx\",\n      \"aed\",\n      \"ssp\",\n      \"lep\",\n      \"les\",\n      \"lti\",\n      \"lww\",\n      \"lez\",\n      \"lhm\",\n      \"lil\",\n      \"lif\",\n      \"lmc\",\n      \"liy\",\n      \"lin\",\n      \"ise\",\n      \"lnj\",\n      \"lis\",\n      \"lit\",\n      \"liv\",\n      \"lob\",\n      \"log\",\n      \"lok\",\n      \"arw\",\n      \"lom\",\n      \"bdu\",\n      \"lgu\",\n      \"los\",\n      \"crc\",\n      \"njh\",\n      \"loj\",\n      \"lbo\",\n      \"nds\",\n      \"loz\",\n      \"nie\",\n      \"ojv\",\n      \"lch\",\n      \"lug\",\n      \"lgg\",\n      \"jos\",\n      \"lui\",\n      \"ule\",\n      \"str\",\n      \"lnd\",\n      \"lun\",\n      \"luo\",\n      \"lrc\",\n      \"lut\",\n      \"khl\",\n      \"lue\",\n      \"lwo\",\n      \"ltz\",\n      \"luy\",\n      \"lee\",\n      \"psr\",\n      \"bzs\",\n      \"khb\",\n      \"msj\",\n      \"mhy\",\n      \"mhi\",\n      \"slz\",\n      \"mdy\",\n      \"mas\",\n      \"mde\",\n      \"mca\",\n      \"mbn\",\n      \"mkd\",\n      \"mcb\",\n      \"myy\",\n      \"mbc\",\n      \"mxu\",\n      \"mda\",\n      \"dmd\",\n      \"mad\",\n      \"mmw\",\n      \"mag\",\n      \"mgp\",\n      \"mrd\",\n      \"mgu\",\n      \"mdh\",\n      \"mhe\",\n      \"xpq\",\n      \"nmu\",\n      \"zrs\",\n      \"mbq\",\n      \"mai\",\n      \"mpe\",\n      \"mcp\",\n      \"myh\",\n      \"mkz\",\n      \"mak\",\n      \"mgf\",\n      \"kde\",\n      \"mgh\",\n      \"mcm\",\n      \"plt\",\n      \"mpb\",\n      \"zsm\",\n      \"zlm\",\n      \"zmi\",\n      \"mal\",\n      \"mgl\",\n      \"gcc\",\n      \"mlt\",\n      \"kmj\",\n      \"mam\",\n      \"mmn\",\n      \"mqj\",\n      \"mcs\",\n      \"mgr\",\n      \"maw\",\n      \"mdi\",\n      \"xmm\",\n      \"mva\",\n      \"mle\",\n      \"nmm\",\n      \"mnc\",\n      \"mid\",\n      \"mhq\",\n      \"mdr\",\n      \"mnk\",\n      \"jet\",\n      \"mna\",\n      \"mpc\",\n      \"mdj\",\n      \"mqy\",\n      \"mjg\",\n      \"mge\",\n      \"emk\",\n      \"mlq\",\n      \"mfv\",\n      \"knf\",\n      \"nge\",\n      \"mev\",\n      \"mbb\",\n      \"mns\",\n      \"glv\",\n      \"mri\",\n      \"mcg\",\n      \"arn\",\n      \"mec\",\n      \"mrw\",\n      \"zmr\",\n      \"mar\",\n      \"rnp\",\n      \"zmc\",\n      \"mrt\",\n      \"mrj\",\n      \"mhr\",\n      \"mrc\",\n      \"mrz\",\n      \"mbw\",\n      \"zmt\",\n      \"mfr\",\n      \"mah\",\n      \"gcf\",\n      \"vma\",\n      \"mhx\",\n      \"mcn\",\n      \"jle\",\n      \"mls\",\n      \"wam\",\n      \"mpq\",\n      \"zml\",\n      \"mcf\",\n      \"mvb\",\n      \"mjk\",\n      \"mgw\",\n      \"mxx\",\n      \"mph\",\n      \"mfe\",\n      \"mke\",\n      \"mbl\",\n      \"yan\",\n      \"ayz\",\n      \"xyj\",\n      \"mfy\",\n      \"mdm\",\n      \"maz\",\n      \"mzn\",\n      \"maq\",\n      \"mau\",\n      \"mfc\",\n      \"vmb\",\n      \"lnb\",\n      \"mpk\",\n      \"myb\",\n      \"mtk\",\n      \"mdt\",\n      \"baw\",\n      \"gmm\",\n      \"mdq\",\n      \"mdw\",\n      \"mhd\",\n      \"mdd\",\n      \"mym\",\n      \"nux\",\n      \"gdq\",\n      \"mni\",\n      \"skf\",\n      \"mek\",\n      \"mel\",\n      \"bew\",\n      \"men\",\n      \"mez\",\n      \"mwv\",\n      \"sdo\",\n      \"mcr\",\n      \"ulk\",\n      \"mej\",\n      \"mpt\",\n      \"crg\",\n      \"mic\",\n      \"mei\",\n      \"ium\",\n      \"mmy\",\n      \"mxj\",\n      \"msy\",\n      \"mik\",\n      \"mjw\",\n      \"hna\",\n      \"min\",\n      \"mvn\",\n      \"xmf\",\n      \"mep\",\n      \"nju\",\n      \"mrg\",\n      \"miq\",\n      \"zmq\",\n      \"csi\",\n      \"csm\",\n      \"lmw\",\n      \"nsq\",\n      \"pmw\",\n      \"skd\",\n      \"mxp\",\n      \"mco\",\n      \"mto\",\n      \"mim\",\n      \"mib\",\n      \"miy\",\n      \"mih\",\n      \"miz\",\n      \"mxt\",\n      \"mio\",\n      \"mig\",\n      \"mie\",\n      \"mil\",\n      \"mjc\",\n      \"mks\",\n      \"mpm\",\n      \"mkf\",\n      \"lus\",\n      \"mra\",\n      \"moy\",\n      \"omc\",\n      \"moc\",\n      \"mif\",\n      \"mhj\",\n      \"moh\",\n      \"mov\",\n      \"mkj\",\n      \"moz\",\n      \"mbe\",\n      \"mso\",\n      \"fqs\",\n      \"mqf\",\n      \"mnw\",\n      \"ndt\",\n      \"lol\",\n      \"mog\",\n      \"mnz\",\n      \"mnr\",\n      \"mte\",\n      \"moe\",\n      \"mxk\",\n      \"mos\",\n      \"mop\",\n      \"mhz\",\n      \"mok\",\n      \"myv\",\n      \"mdf\",\n      \"mor\",\n      \"mgd\",\n      \"cas\",\n      \"meu\",\n      \"siw\",\n      \"mzp\",\n      \"mye\",\n      \"akc\",\n      \"dmw\",\n      \"aoj\",\n      \"sgw\",\n      \"bmr\",\n      \"chb\",\n      \"mlm\",\n      \"mzm\",\n      \"mji\",\n      \"mnb\",\n      \"mua\",\n      \"mnf\",\n      \"myu\",\n      \"mhk\",\n      \"umu\",\n      \"moj\",\n      \"mtq\",\n      \"sur\",\n      \"mtf\",\n      \"mur\",\n      \"mwf\",\n      \"muz\",\n      \"zmu\",\n      \"mug\",\n      \"msu\",\n      \"hur\",\n      \"emi\",\n      \"css\",\n      \"myw\",\n      \"mwe\",\n      \"mlv\",\n      \"xak\",\n      \"bzk\",\n      \"muh\",\n      \"naf\",\n      \"wyy\",\n      \"mbj\",\n      \"nfr\",\n      \"nbi\",\n      \"nmf\",\n      \"nzm\",\n      \"nag\",\n      \"nce\",\n      \"nll\",\n      \"nhn\",\n      \"ncj\",\n      \"nhx\",\n      \"ncl\",\n      \"nhm\",\n      \"nhp\",\n      \"xpo\",\n      \"azz\",\n      \"nhg\",\n      \"ngu\",\n      \"bio\",\n      \"nak\",\n      \"nck\",\n      \"nal\",\n      \"naq\",\n      \"nmb\",\n      \"nab\",\n      \"nnm\",\n      \"gld\",\n      \"ncb\",\n      \"nnb\",\n      \"niq\",\n      \"sen\",\n      \"nnk\",\n      \"nnt\",\n      \"tvl\",\n      \"npy\",\n      \"npa\",\n      \"nrb\",\n      \"nrm\",\n      \"nas\",\n      \"nsk\",\n      \"ncz\",\n      \"ntm\",\n      \"ntu\",\n      \"nau\",\n      \"nav\",\n      \"nxq\",\n      \"bud\",\n      \"nde\",\n      \"djj\",\n      \"ndz\",\n      \"ndo\",\n      \"nmd\",\n      \"ndv\",\n      \"djk\",\n      \"dse\",\n      \"neg\",\n      \"nsn\",\n      \"nee\",\n      \"anh\",\n      \"yrk\",\n      \"nen\",\n      \"aij\",\n      \"aii\",\n      \"trg\",\n      \"npi\",\n      \"pia\",\n      \"nzs\",\n      \"new\",\n      \"ney\",\n      \"nez\",\n      \"ntj\",\n      \"nxg\",\n      \"nig\",\n      \"ngk\",\n      \"sba\",\n      \"nam\",\n      \"nio\",\n      \"nid\",\n      \"nay\",\n      \"nrk\",\n      \"nrl\",\n      \"nxn\",\n      \"nbm\",\n      \"nga\",\n      \"ngb\",\n      \"niy\",\n      \"wyb\",\n      \"ngi\",\n      \"ngo\",\n      \"llp\",\n      \"gym\",\n      \"nha\",\n      \"nhr\",\n      \"nia\",\n      \"caq\",\n      \"pcm\",\n      \"jsl\",\n      \"nir\",\n      \"niz\",\n      \"nsz\",\n      \"ncg\",\n      \"dtd\",\n      \"num\",\n      \"niu\",\n      \"cag\",\n      \"niv\",\n      \"isi\",\n      \"nko\",\n      \"cgg\",\n      \"fia\",\n      \"njb\",\n      \"nog\",\n      \"not\",\n      \"nhu\",\n      \"snf\",\n      \"nsl\",\n      \"nor\",\n      \"nse\",\n      \"nto\",\n      \"nxl\",\n      \"kcn\",\n      \"dgl\",\n      \"xnz\",\n      \"nus\",\n      \"mbr\",\n      \"nkr\",\n      \"nut\",\n      \"nuy\",\n      \"nuv\",\n      \"iii\",\n      \"nup\",\n      \"nuf\",\n      \"cbn\",\n      \"nly\",\n      \"now\",\n      \"tpq\",\n      \"nym\",\n      \"nyj\",\n      \"nyp\",\n      \"nna\",\n      \"nyt\",\n      \"yly\",\n      \"nyh\",\n      \"nih\",\n      \"nyi\",\n      \"njz\",\n      \"nyv\",\n      \"nys\",\n      \"nzk\",\n      \"ood\",\n      \"afz\",\n      \"ann\",\n      \"oca\",\n      \"oci\",\n      \"ocu\",\n      \"ogb\",\n      \"ogu\",\n      \"oyb\",\n      \"xal\",\n      \"ojs\",\n      \"ciw\",\n      \"oka\",\n      \"opm\",\n      \"oku\",\n      \"ong\",\n      \"plo\",\n      \"omg\",\n      \"oma\",\n      \"aun\",\n      \"one\",\n      \"oon\",\n      \"ons\",\n      \"ono\",\n      \"mvf\",\n      \"ore\",\n      \"tag\",\n      \"ory\",\n      \"ort\",\n      \"oru\",\n      \"oac\",\n      \"oaa\",\n      \"okv\",\n      \"oro\",\n      \"gax\",\n      \"hae\",\n      \"ssn\",\n      \"gaz\",\n      \"ury\",\n      \"osa\",\n      \"oss\",\n      \"iow\",\n      \"otz\",\n      \"ote\",\n      \"otq\",\n      \"otm\",\n      \"otr\",\n      \"owi\",\n      \"pqa\",\n      \"drl\",\n      \"pma\",\n      \"pac\",\n      \"pdo\",\n      \"pgu\",\n      \"duf\",\n      \"pck\",\n      \"pao\",\n      \"pwn\",\n      \"pkn\",\n      \"pau\",\n      \"pll\",\n      \"plu\",\n      \"fap\",\n      \"nad\",\n      \"pmz\",\n      \"pmf\",\n      \"pbh\",\n      \"kre\",\n      \"pag\",\n      \"pbr\",\n      \"pan\",\n      \"pnw\",\n      \"pap\",\n      \"prk\",\n      \"asa\",\n      \"pab\",\n      \"pci\",\n      \"pst\",\n      \"pqm\",\n      \"ptp\",\n      \"gfk\",\n      \"lae\",\n      \"pwi\",\n      \"plh\",\n      \"pad\",\n      \"pwa\",\n      \"paw\",\n      \"pay\",\n      \"aoc\",\n      \"peg\",\n      \"pip\",\n      \"pes\",\n      \"pww\",\n      \"pio\",\n      \"pid\",\n      \"plg\",\n      \"piv\",\n      \"pif\",\n      \"piu\",\n      \"ppl\",\n      \"myp\",\n      \"pir\",\n      \"pib\",\n      \"psa\",\n      \"pjt\",\n      \"pit\",\n      \"psd\",\n      \"gob\",\n      \"fwa\",\n      \"pbi\",\n      \"poy\",\n      \"pon\",\n      \"rwa\",\n      \"poh\",\n      \"pko\",\n      \"pox\",\n      \"pol\",\n      \"poo\",\n      \"peb\",\n      \"pej\",\n      \"pom\",\n      \"pbe\",\n      \"poe\",\n      \"pbf\",\n      \"poi\",\n      \"poc\",\n      \"psw\",\n      \"por\",\n      \"pot\",\n      \"pim\",\n      \"prn\",\n      \"pre\",\n      \"pui\",\n      \"fuc\",\n      \"nij\",\n      \"puw\",\n      \"pmi\",\n      \"puq\",\n      \"prx\",\n      \"tsz\",\n      \"pbb\",\n      \"lkr\",\n      \"aar\",\n      \"byx\",\n      \"alc\",\n      \"yum\",\n      \"qxa\",\n      \"quy\",\n      \"qvc\",\n      \"quh\",\n      \"quz\",\n      \"qug\",\n      \"qub\",\n      \"qvi\",\n      \"qvn\",\n      \"quc\",\n      \"qui\",\n      \"rad\",\n      \"lml\",\n      \"rji\",\n      \"ral\",\n      \"rma\",\n      \"bod\",\n      \"rao\",\n      \"rap\",\n      \"ras\",\n      \"rwo\",\n      \"raw\",\n      \"rej\",\n      \"rmb\",\n      \"bfw\",\n      \"rel\",\n      \"ren\",\n      \"mnv\",\n      \"rgr\",\n      \"tnc\",\n      \"ran\",\n      \"rkb\",\n      \"rim\",\n      \"rit\",\n      \"rog\",\n      \"rmn\",\n      \"rmo\",\n      \"rmy\",\n      \"rml\",\n      \"rmw\",\n      \"ron\",\n      \"roh\",\n      \"cla\",\n      \"rng\",\n      \"rro\",\n      \"twu\",\n      \"roo\",\n      \"rtm\",\n      \"rug\",\n      \"dru\",\n      \"klq\",\n      \"run\",\n      \"rou\",\n      \"nyn\",\n      \"nyo\",\n      \"rus\",\n      \"rsl\",\n      \"rut\",\n      \"apb\",\n      \"snv\",\n      \"sma\",\n      \"sjd\",\n      \"sme\",\n      \"skb\",\n      \"uma\",\n      \"ssy\",\n      \"saj\",\n      \"sku\",\n      \"slr\",\n      \"sbe\",\n      \"sln\",\n      \"slh\",\n      \"sll\",\n      \"sse\",\n      \"ssb\",\n      \"ndi\",\n      \"smq\",\n      \"smo\",\n      \"sad\",\n      \"sxn\",\n      \"sag\",\n      \"snq\",\n      \"sce\",\n      \"sat\",\n      \"xsu\",\n      \"spu\",\n      \"srm\",\n      \"srs\",\n      \"sro\",\n      \"dju\",\n      \"ybe\",\n      \"sdg\",\n      \"svs\",\n      \"szw\",\n      \"hvn\",\n      \"pos\",\n      \"kpz\",\n      \"sey\",\n      \"sed\",\n      \"trv\",\n      \"slu\",\n      \"sly\",\n      \"spl\",\n      \"ona\",\n      \"sel\",\n      \"nsm\",\n      \"sea\",\n      \"sif\",\n      \"sza\",\n      \"seh\",\n      \"sef\",\n      \"see\",\n      \"szg\",\n      \"set\",\n      \"hbs\",\n      \"sei\",\n      \"ser\",\n      \"sot\",\n      \"crs\",\n      \"sbf\",\n      \"ksb\",\n      \"shn\",\n      \"mcd\",\n      \"sht\",\n      \"shj\",\n      \"sjw\",\n      \"swv\",\n      \"sdp\",\n      \"xsr\",\n      \"shk\",\n      \"scl\",\n      \"bwo\",\n      \"shp\",\n      \"yuy\",\n      \"shb\",\n      \"sii\",\n      \"sna\",\n      \"cjs\",\n      \"shh\",\n      \"sgh\",\n      \"ryu\",\n      \"shs\",\n      \"snp\",\n      \"sjr\",\n      \"sid\",\n      \"ski\",\n      \"tty\",\n      \"sip\",\n      \"skh\",\n      \"dau\",\n      \"smr\",\n      \"snc\",\n      \"snd\",\n      \"sin\",\n      \"xsi\",\n      \"snn\",\n      \"qum\",\n      \"fos\",\n      \"sri\",\n      \"srq\",\n      \"ssd\",\n      \"sil\",\n      \"baa\",\n      \"sis\",\n      \"skv\",\n      \"den\",\n      \"xsl\",\n      \"slk\",\n      \"slv\",\n      \"teu\",\n      \"sob\",\n      \"gru\",\n      \"evn\",\n      \"som\",\n      \"sop\",\n      \"snk\",\n      \"sov\",\n      \"sqt\",\n      \"srb\",\n      \"dsb\",\n      \"hsb\",\n      \"nso\",\n      \"mnx\",\n      \"kvk\",\n      \"tvk\",\n      \"wib\",\n      \"spa\",\n      \"spt\",\n      \"spo\",\n      \"squ\",\n      \"srn\",\n      \"kpm\",\n      \"sto\",\n      \"sbs\",\n      \"tgo\",\n      \"sue\",\n      \"swi\",\n      \"sui\",\n      \"sub\",\n      \"suk\",\n      \"sua\",\n      \"suv\",\n      \"sun\",\n      \"sjg\",\n      \"spp\",\n      \"sgz\",\n      \"sus\",\n      \"sva\",\n      \"swl\",\n      \"swh\",\n      \"ssw\",\n      \"swe\",\n      \"slc\",\n      \"mky\",\n      \"sst\",\n      \"tby\",\n      \"tab\",\n      \"tnm\",\n      \"tap\",\n      \"tna\",\n      \"tgl\",\n      \"tbw\",\n      \"tah\",\n      \"gpn\",\n      \"sps\",\n      \"tbg\",\n      \"tss\",\n      \"tgk\",\n      \"tkm\",\n      \"tbc\",\n      \"tld\",\n      \"tlj\",\n      \"tly\",\n      \"tma\",\n      \"mla\",\n      \"tcg\",\n      \"taj\",\n      \"taq\",\n      \"tam\",\n      \"tpm\",\n      \"tcb\",\n      \"tfn\",\n      \"taa\",\n      \"tan\",\n      \"skj\",\n      \"tgg\",\n      \"tpg\",\n      \"nwi\",\n      \"tza\",\n      \"tpj\",\n      \"tar\",\n      \"tac\",\n      \"txn\",\n      \"tro\",\n      \"tae\",\n      \"yer\",\n      \"shi\",\n      \"ttt\",\n      \"txx\",\n      \"tat\",\n      \"tks\",\n      \"tav\",\n      \"tuh\",\n      \"trr\",\n      \"tsg\",\n      \"tya\",\n      \"tbo\",\n      \"cks\",\n      \"tbl\",\n      \"ttc\",\n      \"kps\",\n      \"teh\",\n      \"kkw\",\n      \"tlf\",\n      \"tel\",\n      \"kdh\",\n      \"teq\",\n      \"tea\",\n      \"tem\",\n      \"tex\",\n      \"kza\",\n      \"tio\",\n      \"tep\",\n      \"tee\",\n      \"tpt\",\n      \"ntp\",\n      \"stp\",\n      \"ttr\",\n      \"tfr\",\n      \"tft\",\n      \"ter\",\n      \"teo\",\n      \"tll\",\n      \"tet\",\n      \"tew\",\n      \"tcz\",\n      \"tha\",\n      \"tsq\",\n      \"ths\",\n      \"thf\",\n      \"ssf\",\n      \"typ\",\n      \"thp\",\n      \"tdh\",\n      \"tca\",\n      \"tvo\",\n      \"tif\",\n      \"tgc\",\n      \"tir\",\n      \"tig\",\n      \"dih\",\n      \"tik\",\n      \"til\",\n      \"tms\",\n      \"aoz\",\n      \"tjm\",\n      \"tih\",\n      \"lbf\",\n      \"tin\",\n      \"cir\",\n      \"tri\",\n      \"tiy\",\n      \"tiv\",\n      \"twf\",\n      \"tix\",\n      \"tiw\",\n      \"tcf\",\n      \"tli\",\n      \"tqo\",\n      \"tob\",\n      \"tti\",\n      \"tlb\",\n      \"sbu\",\n      \"tcx\",\n      \"kim\",\n      \"toj\",\n      \"tpi\",\n      \"tkl\",\n      \"jic\",\n      \"ksd\",\n      \"dto\",\n      \"tdn\",\n      \"toi\",\n      \"ton\",\n      \"tqw\",\n      \"tnt\",\n      \"mlu\",\n      \"sda\",\n      \"rth\",\n      \"dts\",\n      \"trw\",\n      \"tlc\",\n      \"top\",\n      \"tos\",\n      \"too\",\n      \"trs\",\n      \"trc\",\n      \"tpy\",\n      \"cof\",\n      \"tkr\",\n      \"huq\",\n      \"ddo\",\n      \"tsj\",\n      \"tsi\",\n      \"tsv\",\n      \"tso\",\n      \"tsu\",\n      \"bbl\",\n      \"tsn\",\n      \"pmt\",\n      \"thz\",\n      \"thv\",\n      \"tbu\",\n      \"tuo\",\n      \"tzn\",\n      \"bag\",\n      \"tcy\",\n      \"tmc\",\n      \"tmq\",\n      \"tuf\",\n      \"tvu\",\n      \"lcm\",\n      \"tun\",\n      \"tpn\",\n      \"tui\",\n      \"tuv\",\n      \"kmz\",\n      \"tur\",\n      \"tuk\",\n      \"tus\",\n      \"ttm\",\n      \"tta\",\n      \"tvt\",\n      \"tyv\",\n      \"tue\",\n      \"twa\",\n      \"woa\",\n      \"tzh\",\n      \"tzo\",\n      \"tzj\",\n      \"tub\",\n      \"par\",\n      \"tsm\",\n      \"umb\",\n      \"uby\",\n      \"udi\",\n      \"ude\",\n      \"udm\",\n      \"ugn\",\n      \"ukr\",\n      \"ulc\",\n      \"udl\",\n      \"uli\",\n      \"ppk\",\n      \"cbd\",\n      \"ubu\",\n      \"ump\",\n      \"mtg\",\n      \"unm\",\n      \"ung\",\n      \"kuu\",\n      \"uur\",\n      \"urf\",\n      \"urk\",\n      \"ura\",\n      \"urt\",\n      \"urd\",\n      \"urh\",\n      \"uri\",\n      \"ure\",\n      \"uks\",\n      \"urb\",\n      \"uum\",\n      \"wnu\",\n      \"usa\",\n      \"ute\",\n      \"uig\",\n      \"uzn\",\n      \"vaf\",\n      \"vag\",\n      \"vai\",\n      \"vas\",\n      \"dic\",\n      \"ved\",\n      \"ven\",\n      \"vep\",\n      \"vie\",\n      \"vif\",\n      \"vnm\",\n      \"vgt\",\n      \"vot\",\n      \"wwa\",\n      \"wkw\",\n      \"waq\",\n      \"waw\",\n      \"wbk\",\n      \"bao\",\n      \"wbl\",\n      \"wls\",\n      \"van\",\n      \"wmt\",\n      \"wmb\",\n      \"wms\",\n      \"wme\",\n      \"wan\",\n      \"wgg\",\n      \"xwk\",\n      \"wbt\",\n      \"wnc\",\n      \"auc\",\n      \"wap\",\n      \"wao\",\n      \"wba\",\n      \"wrz\",\n      \"war\",\n      \"wrr\",\n      \"gae\",\n      \"wsa\",\n      \"pav\",\n      \"wrs\",\n      \"wbp\",\n      \"wrb\",\n      \"wnd\",\n      \"wrp\",\n      \"wgy\",\n      \"gjm\",\n      \"wrg\",\n      \"wwr\",\n      \"wrm\",\n      \"was\",\n      \"wsk\",\n      \"wax\",\n      \"wth\",\n      \"wbv\",\n      \"noa\",\n      \"wau\",\n      \"oym\",\n      \"way\",\n      \"wed\",\n      \"cym\",\n      \"xww\",\n      \"wer\",\n      \"mqs\",\n      \"lex\",\n      \"wic\",\n      \"mzh\",\n      \"wim\",\n      \"wig\",\n      \"yok\",\n      \"win\",\n      \"wnw\",\n      \"wgu\",\n      \"wiy\",\n      \"wob\",\n      \"wog\",\n      \"woi\",\n      \"wyu\",\n      \"wal\",\n      \"woe\",\n      \"wlo\",\n      \"wol\",\n      \"wmx\",\n      \"wro\",\n      \"wuu\",\n      \"wya\",\n      \"wem\",\n      \"kao\",\n      \"xav\",\n      \"xer\",\n      \"xho\",\n      \"xir\",\n      \"xok\",\n      \"ane\",\n      \"yai\",\n      \"yad\",\n      \"yag\",\n      \"yaf\",\n      \"yka\",\n      \"yky\",\n      \"sah\",\n      \"ylr\",\n      \"kkl\",\n      \"yli\",\n      \"yam\",\n      \"jmd\",\n      \"tao\",\n      \"yaa\",\n      \"ybi\",\n      \"ynn\",\n      \"kdd\",\n      \"wca\",\n      \"yns\",\n      \"jao\",\n      \"yao\",\n      \"yap\",\n      \"jaq\",\n      \"yaq\",\n      \"yrb\",\n      \"yae\",\n      \"yuf\",\n      \"yva\",\n      \"ywr\",\n      \"pcc\",\n      \"xya\",\n      \"yah\",\n      \"kpv\",\n      \"jei\",\n      \"jel\",\n      \"yle\",\n      \"ybb\",\n      \"jnj\",\n      \"yss\",\n      \"yey\",\n      \"ywq\",\n      \"ydd\",\n      \"yii\",\n      \"yll\",\n      \"yee\",\n      \"yij\",\n      \"yia\",\n      \"yyr\",\n      \"xyy\",\n      \"yor\",\n      \"yua\",\n      \"yuc\",\n      \"ycn\",\n      \"yug\",\n      \"yux\",\n      \"ykg\",\n      \"yuk\",\n      \"yup\",\n      \"gcd\",\n      \"mpj\",\n      \"yul\",\n      \"esu\",\n      \"ynk\",\n      \"ess\",\n      \"ysr\",\n      \"yuz\",\n      \"yur\",\n      \"yui\",\n      \"zne\",\n      \"zro\",\n      \"zai\",\n      \"zpd\",\n      \"zaa\",\n      \"zaw\",\n      \"zpm\",\n      \"zpi\",\n      \"zab\",\n      \"zpz\",\n      \"zav\",\n      \"zpq\",\n      \"dje\",\n      \"zay\",\n      \"diq\",\n      \"zen\",\n      \"zgb\",\n      \"zik\",\n      \"zoh\",\n      \"zos\",\n      \"zoc\",\n      \"zor\",\n      \"zul\",\n      \"zun\",\n      \"eme\",\n      \"aom\",\n      \"aas\",\n      \"kbt\",\n      \"abg\",\n      \"abf\",\n      \"abm\",\n      \"mij\",\n      \"aba\",\n      \"abp\",\n      \"bsa\",\n      \"ash\",\n      \"aob\",\n      \"abo\",\n      \"abr\",\n      \"abn\",\n      \"abu\",\n      \"mgj\",\n      \"ado\",\n      \"tpx\",\n      \"yif\",\n      \"acz\",\n      \"acs\",\n      \"xad\",\n      \"ada\",\n      \"adq\",\n      \"tiu\",\n      \"ade\",\n      \"adh\",\n      \"gas\",\n      \"adr\",\n      \"aez\",\n      \"aeq\",\n      \"afg\",\n      \"aft\",\n      \"afh\",\n      \"afs\",\n      \"agi\",\n      \"agc\",\n      \"avo\",\n      \"ggr\",\n      \"xag\",\n      \"aif\",\n      \"kit\",\n      \"ibm\",\n      \"apf\",\n      \"aga\",\n      \"aug\",\n      \"msm\",\n      \"agn\",\n      \"yay\",\n      \"aha\",\n      \"ahn\",\n      \"esg\",\n      \"thm\",\n      \"kak\",\n      \"aho\",\n      \"nfd\",\n      \"aih\",\n      \"aix\",\n      \"mwg\",\n      \"aiq\",\n      \"ail\",\n      \"aim\",\n      \"aic\",\n      \"aki\",\n      \"air\",\n      \"aio\",\n      \"ajw\",\n      \"cpc\",\n      \"soh\",\n      \"akm\",\n      \"akj\",\n      \"ack\",\n      \"aky\",\n      \"acl\",\n      \"aks\",\n      \"aik\",\n      \"tsr\",\n      \"aeu\",\n      \"sia\",\n      \"akk\",\n      \"akq\",\n      \"akt\",\n      \"bss\",\n      \"miw\",\n      \"akf\",\n      \"ibe\",\n      \"afi\",\n      \"ayk\",\n      \"aku\",\n      \"aqz\",\n      \"ako\",\n      \"dul\",\n      \"alw\",\n      \"ala\",\n      \"alk\",\n      \"alj\",\n      \"apv\",\n      \"bhk\",\n      \"sqk\",\n      \"lsc\",\n      \"xta\",\n      \"alf\",\n      \"asp\",\n      \"arq\",\n      \"aao\",\n      \"aiy\",\n      \"all\",\n      \"aid\",\n      \"zaq\",\n      \"ypo\",\n      \"aol\",\n      \"syy\",\n      \"aub\",\n      \"xua\",\n      \"aab\",\n      \"yna\",\n      \"alz\",\n      \"avd\",\n      \"amq\",\n      \"ali\",\n      \"aad\",\n      \"jks\",\n      \"ama\",\n      \"amg\",\n      \"aaz\",\n      \"zpo\",\n      \"rwm\",\n      \"utp\",\n      \"abc\",\n      \"aew\",\n      \"ael\",\n      \"amv\",\n      \"alm\",\n      \"amb\",\n      \"abs\",\n      \"qva\",\n      \"aag\",\n      \"amj\",\n      \"ifa\",\n      \"alx\",\n      \"mbz\",\n      \"aqd\",\n      \"apg\",\n      \"ajz\",\n      \"amt\",\n      \"adw\",\n      \"anw\",\n      \"akg\",\n      \"anm\",\n      \"pda\",\n      \"aan\",\n      \"dti\",\n      \"grc\",\n      \"hbo\",\n      \"xna\",\n      \"xlg\",\n      \"hca\",\n      \"afd\",\n      \"aod\",\n      \"ana\",\n      \"xaa\",\n      \"adg\",\n      \"bzb\",\n      \"anb\",\n      \"anx\",\n      \"aby\",\n      \"myo\",\n      \"akh\",\n      \"age\",\n      \"aoe\",\n      \"aqt\",\n      \"avm\",\n      \"anp\",\n      \"rme\",\n      \"aog\",\n      \"tnd\",\n      \"blo\",\n      \"anf\",\n      \"aqk\",\n      \"ypn\",\n      \"boj\",\n      \"aak\",\n      \"amx\",\n      \"anj\",\n      \"ans\",\n      \"and\",\n      \"ant\",\n      \"xmv\",\n      \"aig\",\n      \"aui\",\n      \"auq\",\n      \"aud\",\n      \"anl\",\n      \"mtb\",\n      \"pni\",\n      \"aor\",\n      \"aou\",\n      \"xap\",\n      \"apo\",\n      \"ena\",\n      \"mip\",\n      \"api\",\n      \"app\",\n      \"apx\",\n      \"arg\",\n      \"stk\",\n      \"aaf\",\n      \"xrt\",\n      \"arj\",\n      \"awm\",\n      \"awt\",\n      \"aae\",\n      \"aea\",\n      \"mwc\",\n      \"aem\",\n      \"qxu\",\n      \"agj\",\n      \"agf\",\n      \"aqr\",\n      \"aok\",\n      \"ylu\",\n      \"aai\",\n      \"aqg\",\n      \"aac\",\n      \"ait\",\n      \"ark\",\n      \"xrn\",\n      \"luc\",\n      \"dth\",\n      \"aoh\",\n      \"aen\",\n      \"rup\",\n      \"aps\",\n      \"atz\",\n      \"arx\",\n      \"aru\",\n      \"aur\",\n      \"lsr\",\n      \"atx\",\n      \"aat\",\n      \"mtv\",\n      \"cni\",\n      \"ahs\",\n      \"prq\",\n      \"ask\",\n      \"atn\",\n      \"asl\",\n      \"eiv\",\n      \"asv\",\n      \"asb\",\n      \"asz\",\n      \"aua\",\n      \"aum\",\n      \"zoo\",\n      \"asr\",\n      \"atm\",\n      \"amz\",\n      \"atd\",\n      \"ate\",\n      \"atk\",\n      \"aqm\",\n      \"aot\",\n      \"ato\",\n      \"aox\",\n      \"cch\",\n      \"atc\",\n      \"pkr\",\n      \"ati\",\n      \"kud\",\n      \"aux\",\n      \"auh\",\n      \"avs\",\n      \"asq\",\n      \"asw\",\n      \"aut\",\n      \"smf\",\n      \"auu\",\n      \"auo\",\n      \"avv\",\n      \"avb\",\n      \"ave\",\n      \"awk\",\n      \"vwa\",\n      \"bcu\",\n      \"awo\",\n      \"awx\",\n      \"aya\",\n      \"awh\",\n      \"bob\",\n      \"awr\",\n      \"awe\",\n      \"azo\",\n      \"auj\",\n      \"aww\",\n      \"afu\",\n      \"yiu\",\n      \"ahb\",\n      \"yix\",\n      \"ayd\",\n      \"vmy\",\n      \"aye\",\n      \"ayq\",\n      \"yyz\",\n      \"ayb\",\n      \"zaf\",\n      \"ayu\",\n      \"aza\",\n      \"yiz\",\n      \"tpc\",\n      \"bvj\",\n      \"bqx\",\n      \"bbm\",\n      \"bbw\",\n      \"bbk\",\n      \"mbf\",\n      \"bcr\",\n      \"bzg\",\n      \"btj\",\n      \"bcy\",\n      \"xbc\",\n      \"bau\",\n      \"bhz\",\n      \"bdz\",\n      \"jbi\",\n      \"bac\",\n      \"pbp\",\n      \"bvd\",\n      \"bvc\",\n      \"btr\",\n      \"bwt\",\n      \"bfj\",\n      \"bmd\",\n      \"bgo\",\n      \"bcg\",\n      \"bfy\",\n      \"fui\",\n      \"bqg\",\n      \"bqb\",\n      \"bpi\",\n      \"yha\",\n      \"bhv\",\n      \"bah\",\n      \"bhj\",\n      \"bsu\",\n      \"bbf\",\n      \"bdj\",\n      \"bkx\",\n      \"bqh\",\n      \"bmx\",\n      \"bab\",\n      \"bcz\",\n      \"fah\",\n      \"bjs\",\n      \"bjm\",\n      \"bqz\",\n      \"bqi\",\n      \"bki\",\n      \"bkh\",\n      \"kme\",\n      \"bbs\",\n      \"bkr\",\n      \"bjw\",\n      \"ble\",\n      \"bjt\",\n      \"bls\",\n      \"bdn\",\n      \"bcn\",\n      \"bcp\",\n      \"mhp\",\n      \"bgx\",\n      \"biz\",\n      \"bqo\",\n      \"blq\",\n      \"bog\",\n      \"bbq\",\n      \"myf\",\n      \"bmo\",\n      \"bce\",\n      \"bqt\",\n      \"bvm\",\n      \"bcf\",\n      \"bmg\",\n      \"bjx\",\n      \"byz\",\n      \"bqj\",\n      \"bqk\",\n      \"bpd\",\n      \"bfl\",\n      \"yaj\",\n      \"bpq\",\n      \"bnd\",\n      \"bbe\",\n      \"bgf\",\n      \"bsj\",\n      \"bnx\",\n      \"bxg\",\n      \"bgj\",\n      \"mfb\",\n      \"bjn\",\n      \"bfk\",\n      \"bxw\",\n      \"dbw\",\n      \"bap\",\n      \"bno\",\n      \"bfx\",\n      \"brd\",\n      \"bbg\",\n      \"baj\",\n      \"bhr\",\n      \"brs\",\n      \"brp\",\n      \"bmz\",\n      \"bpb\",\n      \"gry\",\n      \"bva\",\n      \"bxo\",\n      \"bch\",\n      \"bjc\",\n      \"jbk\",\n      \"bbi\",\n      \"bjk\",\n      \"bpt\",\n      \"tbn\",\n      \"bjz\",\n      \"bwg\",\n      \"bjf\",\n      \"bsl\",\n      \"buj\",\n      \"bzw\",\n      \"bdb\",\n      \"byq\",\n      \"bsg\",\n      \"bst\",\n      \"bsr\",\n      \"bsi\",\n      \"bnm\",\n      \"bts\",\n      \"akb\",\n      \"btm\",\n      \"btd\",\n      \"ayt\",\n      \"bta\",\n      \"btv\",\n      \"btq\",\n      \"btc\",\n      \"bvt\",\n      \"btu\",\n      \"bay\",\n      \"zbt\",\n      \"sne\",\n      \"bsf\",\n      \"bge\",\n      \"bxa\",\n      \"bwk\",\n      \"bjy\",\n      \"bvy\",\n      \"byg\",\n      \"mkq\",\n      \"bda\",\n      \"byl\",\n      \"bfr\",\n      \"beo\",\n      \"bea\",\n      \"bfp\",\n      \"beb\",\n      \"bzv\",\n      \"bek\",\n      \"bxp\",\n      \"tnr\",\n      \"bjv\",\n      \"bed\",\n      \"bkf\",\n      \"bxq\",\n      \"bnz\",\n      \"bby\",\n      \"bqv\",\n      \"bei\",\n      \"bkv\",\n      \"bkw\",\n      \"bvi\",\n      \"bxb\",\n      \"beg\",\n      \"blm\",\n      \"bey\",\n      \"bzj\",\n      \"brw\",\n      \"glb\",\n      \"bmb\",\n      \"yun\",\n      \"bez\",\n      \"bdp\",\n      \"bct\",\n      \"bgy\",\n      \"bnu\",\n      \"dbt\",\n      \"byd\",\n      \"bie\",\n      \"bxv\",\n      \"bve\",\n      \"bit\",\n      \"byt\",\n      \"bes\",\n      \"bep\",\n      \"bfe\",\n      \"byf\",\n      \"btt\",\n      \"eot\",\n      \"bhd\",\n      \"bha\",\n      \"bht\",\n      \"bgw\",\n      \"bhe\",\n      \"bhy\",\n      \"bhi\",\n      \"nes\",\n      \"bhu\",\n      \"bdf\",\n      \"beh\",\n      \"bpv\",\n      \"big\",\n      \"byk\",\n      \"bje\",\n      \"bmt\",\n      \"bym\",\n      \"bjg\",\n      \"bmc\",\n      \"bnk\",\n      \"brj\",\n      \"biu\",\n      \"xbe\",\n      \"bhc\",\n      \"ibh\",\n      \"jbm\",\n      \"bix\",\n      \"byb\",\n      \"kfs\",\n      \"bql\",\n      \"brz\",\n      \"bpz\",\n      \"bil\",\n      \"bms\",\n      \"bxf\",\n      \"bhl\",\n      \"byj\",\n      \"bmn\",\n      \"bxz\",\n      \"bon\",\n      \"bpj\",\n      \"itb\",\n      \"bne\",\n      \"bny\",\n      \"biq\",\n      \"bxe\",\n      \"brr\",\n      \"btf\",\n      \"biy\",\n      \"bqq\",\n      \"brk\",\n      \"brl\",\n      \"ije\",\n      \"bpy\",\n      \"bwh\",\n      \"bnw\",\n      \"bir\",\n      \"bzi\",\n      \"brt\",\n      \"bgk\",\n      \"mcc\",\n      \"bwm\",\n      \"byo\",\n      \"bpm\",\n      \"blp\",\n      \"bfh\",\n      \"beu\",\n      \"blr\",\n      \"zbl\",\n      \"bzn\",\n      \"bzl\",\n      \"bty\",\n      \"bgb\",\n      \"bdv\",\n      \"boy\",\n      \"bff\",\n      \"boq\",\n      \"bvw\",\n      \"bux\",\n      \"bqu\",\n      \"bhn\",\n      \"ybk\",\n      \"bdt\",\n      \"bkp\",\n      \"bus\",\n      \"bky\",\n      \"bnp\",\n      \"bld\",\n      \"xbo\",\n      \"bvo\",\n      \"bvl\",\n      \"smk\",\n      \"blv\",\n      \"bkt\",\n      \"bzm\",\n      \"bof\",\n      \"blj\",\n      \"ply\",\n      \"boh\",\n      \"bml\",\n      \"bws\",\n      \"zmx\",\n      \"bmf\",\n      \"bmq\",\n      \"bmw\",\n      \"kzc\",\n      \"bou\",\n      \"dbu\",\n      \"bna\",\n      \"bnv\",\n      \"glc\",\n      \"bui\",\n      \"bpg\",\n      \"bok\",\n      \"bvg\",\n      \"bop\",\n      \"bnb\",\n      \"bnl\",\n      \"bvf\",\n      \"bpw\",\n      \"gai\",\n      \"fue\",\n      \"ksr\",\n      \"xxb\",\n      \"mae\",\n      \"bwf\",\n      \"bqs\",\n      \"bmj\",\n      \"bph\",\n      \"sbl\",\n      \"nku\",\n      \"mux\",\n      \"suo\",\n      \"kxr\",\n      \"aof\",\n      \"bra\",\n      \"kvl\",\n      \"buq\",\n      \"brq\",\n      \"rib\",\n      \"bzt\",\n      \"sgt\",\n      \"bro\",\n      \"bpl\",\n      \"plw\",\n      \"kxd\",\n      \"bsb\",\n      \"rnb\",\n      \"bub\",\n      \"cbl\",\n      \"box\",\n      \"buw\",\n      \"stt\",\n      \"btp\",\n      \"bdx\",\n      \"bja\",\n      \"bbh\",\n      \"buk\",\n      \"bgt\",\n      \"bku\",\n      \"bxh\",\n      \"byh\",\n      \"bvk\",\n      \"bhh\",\n      \"bvu\",\n      \"bkn\",\n      \"tkb\",\n      \"buz\",\n      \"bqn\",\n      \"bmp\",\n      \"buy\",\n      \"sti\",\n      \"bjl\",\n      \"byp\",\n      \"aon\",\n      \"bmv\",\n      \"kjz\",\n      \"bwx\",\n      \"bdd\",\n      \"bvn\",\n      \"bfn\",\n      \"bns\",\n      \"bqd\",\n      \"xbg\",\n      \"wun\",\n      \"bkz\",\n      \"but\",\n      \"buv\",\n      \"dgb\",\n      \"bnn\",\n      \"blf\",\n      \"bys\",\n      \"bti\",\n      \"bxn\",\n      \"bvh\",\n      \"pyx\",\n      \"vrt\",\n      \"bzu\",\n      \"bqw\",\n      \"bdi\",\n      \"bqr\",\n      \"aip\",\n      \"asi\",\n      \"bry\",\n      \"bxs\",\n      \"bsm\",\n      \"bfg\",\n      \"buc\",\n      \"bup\",\n      \"dox\",\n      \"bju\",\n      \"kyb\",\n      \"bnr\",\n      \"btw\",\n      \"jid\",\n      \"bhs\",\n      \"jiy\",\n      \"byi\",\n      \"bww\",\n      \"bwd\",\n      \"tte\",\n      \"bwa\",\n      \"bwl\",\n      \"bwc\",\n      \"bwz\",\n      \"mkk\",\n      \"msq\",\n      \"cbb\",\n      \"ccr\",\n      \"miu\",\n      \"roc\",\n      \"ccd\",\n      \"cah\",\n      \"qvl\",\n      \"zad\",\n      \"frc\",\n      \"ckx\",\n      \"ckz\",\n      \"cky\",\n      \"tbk\",\n      \"qud\",\n      \"caw\",\n      \"rmq\",\n      \"clu\",\n      \"abd\",\n      \"csx\",\n      \"mcu\",\n      \"wes\",\n      \"cml\",\n      \"cmt\",\n      \"xcc\",\n      \"qxr\",\n      \"caz\",\n      \"mlc\",\n      \"cov\",\n      \"cps\",\n      \"cpg\",\n      \"cot\",\n      \"cby\",\n      \"cfd\",\n      \"crf\",\n      \"xcr\",\n      \"hns\",\n      \"jvn\",\n      \"crr\",\n      \"rmc\",\n      \"asc\",\n      \"csc\",\n      \"xcy\",\n      \"xce\",\n      \"cen\",\n      \"hmm\",\n      \"cmo\",\n      \"zch\",\n      \"hmc\",\n      \"fuq\",\n      \"grv\",\n      \"cet\",\n      \"pse\",\n      \"mwo\",\n      \"mxz\",\n      \"syb\",\n      \"tgt\",\n      \"plc\",\n      \"sml\",\n      \"zbc\",\n      \"dtp\",\n      \"awu\",\n      \"ncx\",\n      \"nch\",\n      \"ojc\",\n      \"pbs\",\n      \"quk\",\n      \"cds\",\n      \"cdy\",\n      \"chg\",\n      \"ciy\",\n      \"ccp\",\n      \"ckh\",\n      \"cli\",\n      \"tgf\",\n      \"cll\",\n      \"cdh\",\n      \"ceg\",\n      \"ccc\",\n      \"cna\",\n      \"cga\",\n      \"cra\",\n      \"crv\",\n      \"xtb\",\n      \"ruk\",\n      \"cde\",\n      \"cjn\",\n      \"cnu\",\n      \"ycp\",\n      \"cpn\",\n      \"ych\",\n      \"cwg\",\n      \"hne\",\n      \"ctn\",\n      \"cur\",\n      \"csd\",\n      \"cip\",\n      \"zpv\",\n      \"mii\",\n      \"csg\",\n      \"clh\",\n      \"clc\",\n      \"csa\",\n      \"cpi\",\n      \"chn\",\n      \"cih\",\n      \"bxu\",\n      \"cnb\",\n      \"qxc\",\n      \"cdf\",\n      \"nhd\",\n      \"the\",\n      \"cik\",\n      \"zpc\",\n      \"cgk\",\n      \"cdi\",\n      \"nri\",\n      \"cjk\",\n      \"cda\",\n      \"coh\",\n      \"cce\",\n      \"nct\",\n      \"cvg\",\n      \"cuw\",\n      \"cuh\",\n      \"chu\",\n      \"cdj\",\n      \"scb\",\n      \"xcv\",\n      \"chw\",\n      \"cia\",\n      \"ckl\",\n      \"awc\",\n      \"cib\",\n      \"cim\",\n      \"mkx\",\n      \"cdr\",\n      \"cie\",\n      \"cin\",\n      \"xcg\",\n      \"asg\",\n      \"txt\",\n      \"tgd\",\n      \"xcl\",\n      \"nci\",\n      \"qwc\",\n      \"syc\",\n      \"myz\",\n      \"xct\",\n      \"dri\",\n      \"naz\",\n      \"zps\",\n      \"zca\",\n      \"coj\",\n      \"coa\",\n      \"liw\",\n      \"csn\",\n      \"gct\",\n      \"cfg\",\n      \"swc\",\n      \"cnc\",\n      \"coq\",\n      \"cry\",\n      \"qwa\",\n      \"xxr\",\n      \"cos\",\n      \"csr\",\n      \"mta\",\n      \"xcn\",\n      \"cow\",\n      \"toc\",\n      \"gyn\",\n      \"csq\",\n      \"mfn\",\n      \"crz\",\n      \"csf\",\n      \"cbq\",\n      \"cuo\",\n      \"xlu\",\n      \"cnq\",\n      \"cuq\",\n      \"ccl\",\n      \"cuv\",\n      \"xtu\",\n      \"cyo\",\n      \"bwy\",\n      \"cse\",\n      \"dao\",\n      \"lni\",\n      \"dtn\",\n      \"dbr\",\n      \"dbe\",\n      \"xdc\",\n      \"dbd\",\n      \"dgd\",\n      \"dgk\",\n      \"dec\",\n      \"dgn\",\n      \"dlk\",\n      \"das\",\n      \"dij\",\n      \"drb\",\n      \"zhd\",\n      \"bpa\",\n      \"dkk\",\n      \"dka\",\n      \"qer\",\n      \"dlm\",\n      \"dmm\",\n      \"dam\",\n      \"uhn\",\n      \"idb\",\n      \"dac\",\n      \"dml\",\n      \"dms\",\n      \"dnu\",\n      \"dnr\",\n      \"daq\",\n      \"thl\",\n      \"dsl\",\n      \"daf\",\n      \"aso\",\n      \"gku\",\n      \"dnd\",\n      \"daz\",\n      \"djc\",\n      \"dln\",\n      \"dro\",\n      \"dot\",\n      \"daw\",\n      \"dww\",\n      \"ddw\",\n      \"dax\",\n      \"dzg\",\n      \"dzd\",\n      \"ded\",\n      \"gbh\",\n      \"dge\",\n      \"mzw\",\n      \"deh\",\n      \"dek\",\n      \"row\",\n      \"ntr\",\n      \"dmx\",\n      \"dei\",\n      \"dem\",\n      \"dmy\",\n      \"deq\",\n      \"ddn\",\n      \"dez\",\n      \"dnk\",\n      \"dbb\",\n      \"anv\",\n      \"dee\",\n      \"def\",\n      \"dgh\",\n      \"dhs\",\n      \"dhn\",\n      \"dwz\",\n      \"nfa\",\n      \"mki\",\n      \"dho\",\n      \"adf\",\n      \"ddr\",\n      \"dhd\",\n      \"dia\",\n      \"mbd\",\n      \"dby\",\n      \"dio\",\n      \"duy\",\n      \"dig\",\n      \"cfa\",\n      \"dil\",\n      \"jma\",\n      \"dii\",\n      \"dmc\",\n      \"ddi\",\n      \"gdl\",\n      \"diu\",\n      \"dir\",\n      \"dwa\",\n      \"dsi\",\n      \"tbz\",\n      \"diy\",\n      \"xtd\",\n      \"dix\",\n      \"djf\",\n      \"djn\",\n      \"djw\",\n      \"djb\",\n      \"dze\",\n      \"dob\",\n      \"doe\",\n      \"dgg\",\n      \"dgx\",\n      \"dgs\",\n      \"dos\",\n      \"dgr\",\n      \"dbg\",\n      \"dbi\",\n      \"uya\",\n      \"dre\",\n      \"dov\",\n      \"doq\",\n      \"doa\",\n      \"doy\",\n      \"dof\",\n      \"dev\",\n      \"dok\",\n      \"yik\",\n      \"doh\",\n      \"ddd\",\n      \"dde\",\n      \"dor\",\n      \"kqc\",\n      \"doz\",\n      \"dol\",\n      \"dty\",\n      \"dup\",\n      \"dva\",\n      \"dub\",\n      \"dmu\",\n      \"duk\",\n      \"ndu\",\n      \"dbm\",\n      \"dme\",\n      \"kbz\",\n      \"nke\",\n      \"dbo\",\n      \"duz\",\n      \"dmv\",\n      \"wtf\",\n      \"dui\",\n      \"duh\",\n      \"raa\",\n      \"dng\",\n      \"dbv\",\n      \"drq\",\n      \"mvp\",\n      \"dbn\",\n      \"dug\",\n      \"dsn\",\n      \"duw\",\n      \"duq\",\n      \"dun\",\n      \"dws\",\n      \"dux\",\n      \"dae\",\n      \"duv\",\n      \"dbp\",\n      \"gve\",\n      \"nnu\",\n      \"dyb\",\n      \"dyn\",\n      \"dya\",\n      \"dyd\",\n      \"jen\",\n      \"dzl\",\n      \"dzn\",\n      \"bpn\",\n      \"add\",\n      \"dzo\",\n      \"dnn\",\n      \"ktv\",\n      \"bgp\",\n      \"lwl\",\n      \"mng\",\n      \"emu\",\n      \"tge\",\n      \"nos\",\n      \"emq\",\n      \"kif\",\n      \"emg\",\n      \"zeh\",\n      \"hmq\",\n      \"muq\",\n      \"hme\",\n      \"lma\",\n      \"gbx\",\n      \"xrb\",\n      \"acp\",\n      \"nle\",\n      \"kqo\",\n      \"vme\",\n      \"tre\",\n      \"dmr\",\n      \"bnj\",\n      \"pez\",\n      \"zbe\",\n      \"kjs\",\n      \"nhe\",\n      \"ojg\",\n      \"aaq\",\n      \"qve\",\n      \"cly\",\n      \"avl\",\n      \"sfe\",\n      \"azd\",\n      \"yit\",\n      \"cek\",\n      \"yol\",\n      \"xeb\",\n      \"ebr\",\n      \"ebg\",\n      \"ecs\",\n      \"cbj\",\n      \"idd\",\n      \"ijj\",\n      \"ica\",\n      \"nqg\",\n      \"awy\",\n      \"dbf\",\n      \"eee\",\n      \"efa\",\n      \"efe\",\n      \"ofu\",\n      \"ego\",\n      \"esl\",\n      \"egy\",\n      \"ehu\",\n      \"eit\",\n      \"eja\",\n      \"eka\",\n      \"eki\",\n      \"eke\",\n      \"ekp\",\n      \"zpp\",\n      \"elx\",\n      \"elm\",\n      \"ele\",\n      \"elh\",\n      \"ekm\",\n      \"elk\",\n      \"elo\",\n      \"zte\",\n      \"afo\",\n      \"elu\",\n      \"xly\",\n      \"yzg\",\n      \"emn\",\n      \"bdc\",\n      \"tdc\",\n      \"ebu\",\n      \"emw\",\n      \"enr\",\n      \"unk\",\n      \"end\",\n      \"enc\",\n      \"ptt\",\n      \"enu\",\n      \"enw\",\n      \"env\",\n      \"epi\",\n      \"emy\",\n      \"era\",\n      \"kjy\",\n      \"twp\",\n      \"ert\",\n      \"erw\",\n      \"err\",\n      \"emx\",\n      \"ers\",\n      \"erh\",\n      \"ish\",\n      \"mcq\",\n      \"esh\",\n      \"ags\",\n      \"esy\",\n      \"epo\",\n      \"ots\",\n      \"eso\",\n      \"esm\",\n      \"etb\",\n      \"etx\",\n      \"ecr\",\n      \"ecy\",\n      \"eth\",\n      \"ich\",\n      \"eto\",\n      \"etn\",\n      \"ett\",\n      \"utr\",\n      \"bzz\",\n      \"gev\",\n      \"nou\",\n      \"ext\",\n      \"fab\",\n      \"faf\",\n      \"fif\",\n      \"azt\",\n      \"faj\",\n      \"fai\",\n      \"fax\",\n      \"cfm\",\n      \"fli\",\n      \"xfa\",\n      \"fam\",\n      \"fng\",\n      \"fan\",\n      \"fak\",\n      \"fni\",\n      \"nsf\",\n      \"fmu\",\n      \"far\",\n      \"ddg\",\n      \"fau\",\n      \"agl\",\n      \"fpe\",\n      \"fer\",\n      \"hif\",\n      \"fil\",\n      \"tlp\",\n      \"bkb\",\n      \"fss\",\n      \"fag\",\n      \"fip\",\n      \"fir\",\n      \"fiw\",\n      \"fln\",\n      \"flh\",\n      \"fod\",\n      \"frq\",\n      \"enf\",\n      \"frt\",\n      \"frp\",\n      \"fur\",\n      \"flr\",\n      \"ula\",\n      \"fuy\",\n      \"fwe\",\n      \"fie\",\n      \"ttb\",\n      \"gie\",\n      \"gab\",\n      \"gdg\",\n      \"gdk\",\n      \"gbk\",\n      \"gad\",\n      \"gda\",\n      \"gdh\",\n      \"gft\",\n      \"btg\",\n      \"ggu\",\n      \"gbf\",\n      \"gic\",\n      \"gcn\",\n      \"xga\",\n      \"glo\",\n      \"gar\",\n      \"gce\",\n      \"sdn\",\n      \"gap\",\n      \"gal\",\n      \"kgj\",\n      \"gma\",\n      \"wof\",\n      \"gbl\",\n      \"gak\",\n      \"bte\",\n      \"ihw\",\n      \"gne\",\n      \"gnk\",\n      \"gnq\",\n      \"unn\",\n      \"gan\",\n      \"pgd\",\n      \"gzn\",\n      \"gnb\",\n      \"gnl\",\n      \"ggl\",\n      \"gao\",\n      \"gza\",\n      \"gnz\",\n      \"gga\",\n      \"gbm\",\n      \"ilg\",\n      \"gex\",\n      \"gaq\",\n      \"gou\",\n      \"gwt\",\n      \"gyl\",\n      \"gzi\",\n      \"gbg\",\n      \"gbv\",\n      \"gby\",\n      \"gyg\",\n      \"gbq\",\n      \"gbs\",\n      \"ggb\",\n      \"xgb\",\n      \"grh\",\n      \"gec\",\n      \"kvq\",\n      \"gei\",\n      \"gdd\",\n      \"drs\",\n      \"hmj\",\n      \"gez\",\n      \"ghk\",\n      \"giu\",\n      \"geq\",\n      \"gaf\",\n      \"gej\",\n      \"ygp\",\n      \"gew\",\n      \"gea\",\n      \"ges\",\n      \"gha\",\n      \"gse\",\n      \"ghn\",\n      \"gpe\",\n      \"gds\",\n      \"gri\",\n      \"ajs\",\n      \"bmk\",\n      \"aln\",\n      \"ghr\",\n      \"bbj\",\n      \"gho\",\n      \"bgi\",\n      \"gib\",\n      \"kks\",\n      \"acd\",\n      \"gix\",\n      \"gip\",\n      \"gim\",\n      \"kmp\",\n      \"gmn\",\n      \"gnm\",\n      \"ayg\",\n      \"bbr\",\n      \"gii\",\n      \"nyf\",\n      \"toh\",\n      \"ggt\",\n      \"giy\",\n      \"tof\",\n      \"glr\",\n      \"glw\",\n      \"oub\",\n      \"gnu\",\n      \"gom\",\n      \"gig\",\n      \"goi\",\n      \"gox\",\n      \"gdx\",\n      \"gof\",\n      \"gog\",\n      \"goo\",\n      \"goe\",\n      \"gjn\",\n      \"gov\",\n      \"goq\",\n      \"goc\",\n      \"grq\",\n      \"gqr\",\n      \"got\",\n      \"goy\",\n      \"gwf\",\n      \"goz\",\n      \"nli\",\n      \"giq\",\n      \"gcl\",\n      \"grs\",\n      \"gro\",\n      \"gos\",\n      \"ats\",\n      \"gwx\",\n      \"gvj\",\n      \"jiq\",\n      \"gnc\",\n      \"gyr\",\n      \"gsm\",\n      \"xgd\",\n      \"gdu\",\n      \"zpg\",\n      \"gdc\",\n      \"kkp\",\n      \"wrw\",\n      \"zgn\",\n      \"bet\",\n      \"ztu\",\n      \"gus\",\n      \"gkp\",\n      \"gqi\",\n      \"gvl\",\n      \"glu\",\n      \"gmb\",\n      \"gly\",\n      \"gul\",\n      \"gmu\",\n      \"gdi\",\n      \"gyf\",\n      \"rub\",\n      \"gnt\",\n      \"gpa\",\n      \"grz\",\n      \"gdj\",\n      \"ggg\",\n      \"grx\",\n      \"gjr\",\n      \"gvm\",\n      \"gvr\",\n      \"grd\",\n      \"gsn\",\n      \"gsl\",\n      \"xgw\",\n      \"gwu\",\n      \"gvy\",\n      \"gka\",\n      \"ngs\",\n      \"gwb\",\n      \"dah\",\n      \"bga\",\n      \"gwn\",\n      \"grw\",\n      \"gwe\",\n      \"gwr\",\n      \"gwj\",\n      \"gyi\",\n      \"gye\",\n      \"haq\",\n      \"hbu\",\n      \"hdy\",\n      \"hoj\",\n      \"xhd\",\n      \"ayh\",\n      \"aek\",\n      \"hah\",\n      \"hgw\",\n      \"bzx\",\n      \"hgm\",\n      \"haf\",\n      \"hvc\",\n      \"hji\",\n      \"haj\",\n      \"hao\",\n      \"hld\",\n      \"hmu\",\n      \"hba\",\n      \"hag\",\n      \"han\",\n      \"haa\",\n      \"hab\",\n      \"xiv\",\n      \"kjo\",\n      \"hro\",\n      \"hrk\",\n      \"bgc\",\n      \"hrz\",\n      \"ybj\",\n      \"xht\",\n      \"hsl\",\n      \"hvk\",\n      \"hav\",\n      \"hps\",\n      \"xda\",\n      \"haz\",\n      \"hbn\",\n      \"scp\",\n      \"heg\",\n      \"nix\",\n      \"hed\",\n      \"llf\",\n      \"hrt\",\n      \"ham\",\n      \"auk\",\n      \"hib\",\n      \"hlu\",\n      \"mba\",\n      \"kjk\",\n      \"hij\",\n      \"hir\",\n      \"hii\",\n      \"hmo\",\n      \"hit\",\n      \"htu\",\n      \"hiw\",\n      \"yhl\",\n      \"hle\",\n      \"hmf\",\n      \"hmz\",\n      \"hmv\",\n      \"mrk\",\n      \"hoh\",\n      \"hos\",\n      \"hhi\",\n      \"hoy\",\n      \"hoi\",\n      \"hod\",\n      \"hol\",\n      \"hom\",\n      \"hds\",\n      \"juh\",\n      \"how\",\n      \"hrm\",\n      \"hoe\",\n      \"hor\",\n      \"ero\",\n      \"hot\",\n      \"hti\",\n      \"hov\",\n      \"hhy\",\n      \"hoz\",\n      \"hpo\",\n      \"hra\",\n      \"hru\",\n      \"hug\",\n      \"qvh\",\n      \"hud\",\n      \"nhq\",\n      \"qwh\",\n      \"qvw\",\n      \"huh\",\n      \"mxs\",\n      \"czh\",\n      \"huw\",\n      \"hul\",\n      \"huy\",\n      \"hui\",\n      \"huk\",\n      \"hmb\",\n      \"huf\",\n      \"hut\",\n      \"hsh\",\n      \"hnu\",\n      \"nat\",\n      \"hum\",\n      \"hng\",\n      \"hkk\",\n      \"hap\",\n      \"xhu\",\n      \"geh\",\n      \"huo\",\n      \"hwo\",\n      \"hya\",\n      \"jab\",\n      \"yml\",\n      \"tek\",\n      \"ibl\",\n      \"iby\",\n      \"xib\",\n      \"ibn\",\n      \"ibr\",\n      \"ibu\",\n      \"bec\",\n      \"ida\",\n      \"idt\",\n      \"ide\",\n      \"idi\",\n      \"idc\",\n      \"ido\",\n      \"ldb\",\n      \"ife\",\n      \"iff\",\n      \"igl\",\n      \"igg\",\n      \"ahl\",\n      \"nar\",\n      \"igw\",\n      \"ihb\",\n      \"ikk\",\n      \"ikr\",\n      \"ikz\",\n      \"meb\",\n      \"ntk\",\n      \"iki\",\n      \"ikp\",\n      \"txi\",\n      \"ikv\",\n      \"ikl\",\n      \"ikw\",\n      \"ila\",\n      \"mbi\",\n      \"ili\",\n      \"ilu\",\n      \"xil\",\n      \"ilk\",\n      \"ilv\",\n      \"mlk\",\n      \"imo\",\n      \"arc\",\n      \"imr\",\n      \"abx\",\n      \"mzu\",\n      \"inp\",\n      \"smn\",\n      \"inl\",\n      \"idr\",\n      \"mvy\",\n      \"oin\",\n      \"iti\",\n      \"ino\",\n      \"loc\",\n      \"ior\",\n      \"ina\",\n      \"ile\",\n      \"igs\",\n      \"int\",\n      \"iks\",\n      \"azm\",\n      \"ipo\",\n      \"ipi\",\n      \"ass\",\n      \"ill\",\n      \"iry\",\n      \"ire\",\n      \"iri\",\n      \"bto\",\n      \"iru\",\n      \"isa\",\n      \"isn\",\n      \"agk\",\n      \"isc\",\n      \"igo\",\n      \"inn\",\n      \"crb\",\n      \"mir\",\n      \"nhk\",\n      \"ist\",\n      \"ruo\",\n      \"szv\",\n      \"isu\",\n      \"ite\",\n      \"itr\",\n      \"itx\",\n      \"itw\",\n      \"itm\",\n      \"mce\",\n      \"ivv\",\n      \"atg\",\n      \"iwk\",\n      \"kbm\",\n      \"iwo\",\n      \"mzi\",\n      \"vmj\",\n      \"iya\",\n      \"uiv\",\n      \"crt\",\n      \"nca\",\n      \"crq\",\n      \"izi\",\n      \"cbo\",\n      \"rzh\",\n      \"jdg\",\n      \"jad\",\n      \"jah\",\n      \"awv\",\n      \"jat\",\n      \"jak\",\n      \"maj\",\n      \"bxl\",\n      \"jcs\",\n      \"jls\",\n      \"jax\",\n      \"jnd\",\n      \"jna\",\n      \"djo\",\n      \"jni\",\n      \"jar\",\n      \"jra\",\n      \"jaf\",\n      \"qxw\",\n      \"jns\",\n      \"jvd\",\n      \"jaz\",\n      \"jyy\",\n      \"jje\",\n      \"bze\",\n      \"xuj\",\n      \"jer\",\n      \"jee\",\n      \"tmr\",\n      \"jhs\",\n      \"jio\",\n      \"juo\",\n      \"jib\",\n      \"jii\",\n      \"jie\",\n      \"jil\",\n      \"jim\",\n      \"jmi\",\n      \"jia\",\n      \"cjy\",\n      \"pnu\",\n      \"jul\",\n      \"jrr\",\n      \"jit\",\n      \"kaj\",\n      \"job\",\n      \"jbr\",\n      \"jeu\",\n      \"jor\",\n      \"jrt\",\n      \"jow\",\n      \"itk\",\n      \"jdt\",\n      \"jpr\",\n      \"yud\",\n      \"aju\",\n      \"yhd\",\n      \"jye\",\n      \"jum\",\n      \"jml\",\n      \"jus\",\n      \"mxq\",\n      \"juy\",\n      \"jut\",\n      \"juu\",\n      \"mwb\",\n      \"vmc\",\n      \"jwi\",\n      \"xku\",\n      \"gna\",\n      \"ldl\",\n      \"ckn\",\n      \"ksp\",\n      \"kvf\",\n      \"gbw\",\n      \"klz\",\n      \"onk\",\n      \"lkb\",\n      \"uka\",\n      \"kbu\",\n      \"kea\",\n      \"cwa\",\n      \"kcw\",\n      \"gjk\",\n      \"kfr\",\n      \"kcx\",\n      \"xkk\",\n      \"kej\",\n      \"kdu\",\n      \"kad\",\n      \"kzd\",\n      \"kdv\",\n      \"ktp\",\n      \"jka\",\n      \"kpu\",\n      \"sqx\",\n      \"syw\",\n      \"kll\",\n      \"cgc\",\n      \"gel\",\n      \"xkg\",\n      \"hka\",\n      \"agw\",\n      \"kzb\",\n      \"kzp\",\n      \"kbw\",\n      \"kep\",\n      \"kzq\",\n      \"kkq\",\n      \"xai\",\n      \"zka\",\n      \"krd\",\n      \"ckr\",\n      \"kzm\",\n      \"kce\",\n      \"tcq\",\n      \"xkj\",\n      \"kag\",\n      \"ckq\",\n      \"kjv\",\n      \"xdq\",\n      \"kka\",\n      \"kke\",\n      \"kqf\",\n      \"kkj\",\n      \"keo\",\n      \"wkl\",\n      \"kzz\",\n      \"kkf\",\n      \"kba\",\n      \"gll\",\n      \"ijn\",\n      \"knz\",\n      \"kqe\",\n      \"kve\",\n      \"kly\",\n      \"lkm\",\n      \"xka\",\n      \"rmf\",\n      \"ywa\",\n      \"kli\",\n      \"keq\",\n      \"jmr\",\n      \"kci\",\n      \"klp\",\n      \"kzx\",\n      \"kyk\",\n      \"kgx\",\n      \"vkm\",\n      \"xbw\",\n      \"irx\",\n      \"kyy\",\n      \"ktb\",\n      \"kmi\",\n      \"kdx\",\n      \"kcq\",\n      \"xla\",\n      \"hig\",\n      \"bjj\",\n      \"xnb\",\n      \"soq\",\n      \"kbs\",\n      \"kqw\",\n      \"gam\",\n      \"xnr\",\n      \"kxs\",\n      \"kzy\",\n      \"kty\",\n      \"kcp\",\n      \"kkv\",\n      \"igm\",\n      \"kev\",\n      \"kdp\",\n      \"kzo\",\n      \"wat\",\n      \"ktk\",\n      \"knr\",\n      \"kmu\",\n      \"kft\",\n      \"kbe\",\n      \"kxn\",\n      \"ksk\",\n      \"xkt\",\n      \"kni\",\n      \"khx\",\n      \"kqn\",\n      \"kax\",\n      \"xpn\",\n      \"tbx\",\n      \"khp\",\n      \"ykm\",\n      \"kbi\",\n      \"klo\",\n      \"xkh\",\n      \"kzr\",\n      \"reg\",\n      \"kth\",\n      \"mry\",\n      \"xrw\",\n      \"xar\",\n      \"kgv\",\n      \"kbn\",\n      \"kyd\",\n      \"kmf\",\n      \"kai\",\n      \"kmv\",\n      \"kgn\",\n      \"kbj\",\n      \"kil\",\n      \"kuq\",\n      \"kko\",\n      \"krb\",\n      \"bbv\",\n      \"krx\",\n      \"kxh\",\n      \"xkx\",\n      \"kyn\",\n      \"rxw\",\n      \"ccj\",\n      \"ksn\",\n      \"kkz\",\n      \"khs\",\n      \"ktq\",\n      \"xat\",\n      \"tmb\",\n      \"tkt\",\n      \"ykt\",\n      \"kfu\",\n      \"kaf\",\n      \"kta\",\n      \"vkk\",\n      \"xau\",\n      \"ckv\",\n      \"kcb\",\n      \"kgb\",\n      \"kaw\",\n      \"ktx\",\n      \"kbb\",\n      \"pdu\",\n      \"xay\",\n      \"xkn\",\n      \"kyt\",\n      \"kzl\",\n      \"kxy\",\n      \"kzu\",\n      \"kzk\",\n      \"keh\",\n      \"khz\",\n      \"meo\",\n      \"kdy\",\n      \"khh\",\n      \"kec\",\n      \"bmh\",\n      \"eyo\",\n      \"khy\",\n      \"keb\",\n      \"ify\",\n      \"kbo\",\n      \"xel\",\n      \"kyo\",\n      \"kem\",\n      \"bzp\",\n      \"xem\",\n      \"xkw\",\n      \"dmo\",\n      \"sjk\",\n      \"xbn\",\n      \"gat\",\n      \"kvm\",\n      \"klf\",\n      \"knx\",\n      \"knl\",\n      \"kxi\",\n      \"kns\",\n      \"ndb\",\n      \"kzh\",\n      \"lke\",\n      \"xeu\",\n      \"kpn\",\n      \"kuk\",\n      \"hhr\",\n      \"ked\",\n      \"xke\",\n      \"kxz\",\n      \"kvr\",\n      \"xes\",\n      \"kae\",\n      \"ktt\",\n      \"kyg\",\n      \"xkv\",\n      \"hkh\",\n      \"kbg\",\n      \"kht\",\n      \"ksu\",\n      \"khn\",\n      \"kjm\",\n      \"ksy\",\n      \"kfw\",\n      \"lko\",\n      \"kqg\",\n      \"tlx\",\n      \"xkf\",\n      \"xhe\",\n      \"nkh\",\n      \"kix\",\n      \"kwx\",\n      \"kqm\",\n      \"ykl\",\n      \"xkc\",\n      \"nkb\",\n      \"ktc\",\n      \"kho\",\n      \"khf\",\n      \"kfm\",\n      \"xco\",\n      \"kie\",\n      \"prm\",\n      \"kzg\",\n      \"kih\",\n      \"kqr\",\n      \"kmb\",\n      \"kiv\",\n      \"sbt\",\n      \"kqp\",\n      \"krj\",\n      \"kco\",\n      \"cbw\",\n      \"knq\",\n      \"kkd\",\n      \"ues\",\n      \"kkm\",\n      \"apk\",\n      \"sgc\",\n      \"kyi\",\n      \"kkr\",\n      \"okr\",\n      \"kiu\",\n      \"fkk\",\n      \"lks\",\n      \"kiz\",\n      \"kis\",\n      \"zkt\",\n      \"mwk\",\n      \"mkw\",\n      \"kqt\",\n      \"tlh\",\n      \"kib\",\n      \"kpd\",\n      \"kcj\",\n      \"kgu\",\n      \"thq\",\n      \"kdq\",\n      \"dhw\",\n      \"cdz\",\n      \"ksz\",\n      \"vko\",\n      \"kwp\",\n      \"kod\",\n      \"kcs\",\n      \"kpi\",\n      \"kwl\",\n      \"zkg\",\n      \"plk\",\n      \"kkx\",\n      \"kkt\",\n      \"nkd\",\n      \"kxt\",\n      \"kou\",\n      \"gko\",\n      \"xod\",\n      \"kzn\",\n      \"klc\",\n      \"ekl\",\n      \"biw\",\n      \"skn\",\n      \"klm\",\n      \"kol\",\n      \"klx\",\n      \"kmy\",\n      \"kpf\",\n      \"tyn\",\n      \"kmm\",\n      \"xoi\",\n      \"kmw\",\n      \"kvh\",\n      \"kvp\",\n      \"kzv\",\n      \"kxw\",\n      \"knd\",\n      \"kdw\",\n      \"klk\",\n      \"kcz\",\n      \"knu\",\n      \"kno\",\n      \"koa\",\n      \"kxc\",\n      \"nbe\",\n      \"mku\",\n      \"koo\",\n      \"ozm\",\n      \"fuj\",\n      \"xop\",\n      \"opk\",\n      \"kcy\",\n      \"koz\",\n      \"okh\",\n      \"vkp\",\n      \"ktl\",\n      \"krp\",\n      \"kfo\",\n      \"krf\",\n      \"xkq\",\n      \"kqj\",\n      \"jkr\",\n      \"vkn\",\n      \"vkz\",\n      \"kfd\",\n      \"kpq\",\n      \"xor\",\n      \"kfp\",\n      \"kiq\",\n      \"kid\",\n      \"kqk\",\n      \"koq\",\n      \"mqg\",\n      \"grm\",\n      \"avk\",\n      \"zko\",\n      \"kyf\",\n      \"kqb\",\n      \"kvc\",\n      \"xow\",\n      \"kwh\",\n      \"kga\",\n      \"koh\",\n      \"kqd\",\n      \"kuw\",\n      \"kpl\",\n      \"pbn\",\n      \"koc\",\n      \"cpo\",\n      \"kef\",\n      \"kph\",\n      \"kye\",\n      \"rka\",\n      \"xre\",\n      \"kri\",\n      \"kxb\",\n      \"tyu\",\n      \"yku\",\n      \"uan\",\n      \"kua\",\n      \"ykn\",\n      \"ugh\",\n      \"kgf\",\n      \"kof\",\n      \"jko\",\n      \"kvb\",\n      \"lkc\",\n      \"kfg\",\n      \"kyw\",\n      \"kov\",\n      \"kow\",\n      \"kes\",\n      \"dkr\",\n      \"vkj\",\n      \"kux\",\n      \"kez\",\n      \"kfn\",\n      \"ugb\",\n      \"xmp\",\n      \"xmh\",\n      \"ukv\",\n      \"kul\",\n      \"kxj\",\n      \"vkl\",\n      \"xpk\",\n      \"kfx\",\n      \"pzh\",\n      \"uon\",\n      \"bbu\",\n      \"kdi\",\n      \"ksl\",\n      \"ksm\",\n      \"xks\",\n      \"kra\",\n      \"kuo\",\n      \"zum\",\n      \"wku\",\n      \"kdn\",\n      \"shd\",\n      \"kgl\",\n      \"ggk\",\n      \"kfl\",\n      \"kse\",\n      \"xug\",\n      \"pep\",\n      \"njx\",\n      \"kug\",\n      \"mkn\",\n      \"key\",\n      \"nqk\",\n      \"krh\",\n      \"kfh\",\n      \"kuj\",\n      \"nbn\",\n      \"kfv\",\n      \"vku\",\n      \"kuv\",\n      \"xkz\",\n      \"ktm\",\n      \"kjr\",\n      \"kyr\",\n      \"kus\",\n      \"ksg\",\n      \"kuh\",\n      \"ksv\",\n      \"ght\",\n      \"kub\",\n      \"xut\",\n      \"kpa\",\n      \"khj\",\n      \"kdc\",\n      \"uky\",\n      \"lku\",\n      \"olu\",\n      \"cwt\",\n      \"blh\",\n      \"kdt\",\n      \"fkv\",\n      \"kwb\",\n      \"bko\",\n      \"kwz\",\n      \"wka\",\n      \"kdz\",\n      \"kwu\",\n      \"qwt\",\n      \"kmq\",\n      \"ktf\",\n      \"kwm\",\n      \"okk\",\n      \"knp\",\n      \"kwj\",\n      \"kvi\",\n      \"xdo\",\n      \"kwf\",\n      \"kop\",\n      \"kya\",\n      \"cwe\",\n      \"xwr\",\n      \"kkb\",\n      \"kwr\",\n      \"kws\",\n      \"kwt\",\n      \"kuc\",\n      \"kww\",\n      \"bka\",\n      \"tye\",\n      \"kql\",\n      \"ldn\",\n      \"bwj\",\n      \"ldi\",\n      \"lbb\",\n      \"lbi\",\n      \"jku\",\n      \"ypb\",\n      \"mwi\",\n      \"dtb\",\n      \"zpl\",\n      \"zpa\",\n      \"lkl\",\n      \"lgh\",\n      \"lgb\",\n      \"lhh\",\n      \"lhn\",\n      \"lhl\",\n      \"lhi\",\n      \"lmx\",\n      \"lji\",\n      \"lap\",\n      \"lka\",\n      \"lkh\",\n      \"lki\",\n      \"lkn\",\n      \"lkd\",\n      \"lxm\",\n      \"lla\",\n      \"leb\",\n      \"cnl\",\n      \"las\",\n      \"lmr\",\n      \"lmq\",\n      \"lai\",\n      \"lmy\",\n      \"quf\",\n      \"lbn\",\n      \"bma\",\n      \"ldh\",\n      \"lmk\",\n      \"lev\",\n      \"lmg\",\n      \"abl\",\n      \"llh\",\n      \"ruu\",\n      \"ldm\",\n      \"sfb\",\n      \"yln\",\n      \"lna\",\n      \"lno\",\n      \"lnm\",\n      \"lnh\",\n      \"lwm\",\n      \"ztl\",\n      \"laa\",\n      \"lrt\",\n      \"lrv\",\n      \"hmd\",\n      \"lrl\",\n      \"lro\",\n      \"lar\",\n      \"lan\",\n      \"llm\",\n      \"lsa\",\n      \"lsi\",\n      \"lss\",\n      \"lat\",\n      \"ltu\",\n      \"ltn\",\n      \"lsl\",\n      \"llx\",\n      \"luf\",\n      \"lre\",\n      \"clt\",\n      \"lbv\",\n      \"lbx\",\n      \"lvi\",\n      \"tgi\",\n      \"lwu\",\n      \"lya\",\n      \"ldk\",\n      \"lfa\",\n      \"lgm\",\n      \"lcc\",\n      \"cae\",\n      \"tql\",\n      \"urr\",\n      \"lzn\",\n      \"lek\",\n      \"llk\",\n      \"lel\",\n      \"llc\",\n      \"lpa\",\n      \"lle\",\n      \"leq\",\n      \"lrz\",\n      \"lei\",\n      \"xle\",\n      \"ldj\",\n      \"ley\",\n      \"lej\",\n      \"lgr\",\n      \"lgi\",\n      \"leh\",\n      \"ler\",\n      \"ldg\",\n      \"lpe\",\n      \"xlp\",\n      \"gnh\",\n      \"let\",\n      \"nms\",\n      \"leo\",\n      \"lvu\",\n      \"lwe\",\n      \"lwt\",\n      \"ayi\",\n      \"lhp\",\n      \"lix\",\n      \"njn\",\n      \"zln\",\n      \"ste\",\n      \"lir\",\n      \"liz\",\n      \"liq\",\n      \"lbs\",\n      \"lig\",\n      \"lgz\",\n      \"lih\",\n      \"mgi\",\n      \"lik\",\n      \"lie\",\n      \"lio\",\n      \"kxx\",\n      \"lib\",\n      \"kwc\",\n      \"lll\",\n      \"bme\",\n      \"lim\",\n      \"lmp\",\n      \"ylm\",\n      \"kmk\",\n      \"qlm\",\n      \"klw\",\n      \"pml\",\n      \"onb\",\n      \"lgk\",\n      \"lfn\",\n      \"ljl\",\n      \"apl\",\n      \"lpo\",\n      \"lcs\",\n      \"lcl\",\n      \"lsh\",\n      \"lsd\",\n      \"lzh\",\n      \"lls\",\n      \"lzl\",\n      \"zlj\",\n      \"zlq\",\n      \"olo\",\n      \"loq\",\n      \"lbm\",\n      \"lgq\",\n      \"rag\",\n      \"liu\",\n      \"lof\",\n      \"src\",\n      \"qvj\",\n      \"jbo\",\n      \"yaz\",\n      \"lky\",\n      \"lcd\",\n      \"llq\",\n      \"llg\",\n      \"ycl\",\n      \"llb\",\n      \"loa\",\n      \"rmi\",\n      \"loi\",\n      \"lmv\",\n      \"lmi\",\n      \"lmo\",\n      \"loo\",\n      \"ngl\",\n      \"lce\",\n      \"lpn\",\n      \"wok\",\n      \"lnu\",\n      \"ttw\",\n      \"ldo\",\n      \"lop\",\n      \"lpx\",\n      \"lrn\",\n      \"spq\",\n      \"lnn\",\n      \"uvl\",\n      \"lht\",\n      \"dtr\",\n      \"lou\",\n      \"lox\",\n      \"xlo\",\n      \"sli\",\n      \"tto\",\n      \"nsb\",\n      \"kml\",\n      \"cea\",\n      \"axl\",\n      \"ztp\",\n      \"kcc\",\n      \"lcf\",\n      \"knb\",\n      \"luq\",\n      \"lud\",\n      \"ldq\",\n      \"ruf\",\n      \"lcq\",\n      \"lum\",\n      \"dop\",\n      \"smj\",\n      \"lmz\",\n      \"lup\",\n      \"lmd\",\n      \"luk\",\n      \"luj\",\n      \"lga\",\n      \"luw\",\n      \"hml\",\n      \"ldd\",\n      \"lse\",\n      \"xls\",\n      \"ndy\",\n      \"luv\",\n      \"lyn\",\n      \"lwa\",\n      \"xlc\",\n      \"xld\",\n      \"lyg\",\n      \"cma\",\n      \"mew\",\n      \"ymm\",\n      \"mmz\",\n      \"mfz\",\n      \"mqa\",\n      \"kkg\",\n      \"muj\",\n      \"mcl\",\n      \"mzs\",\n      \"mvw\",\n      \"jmc\",\n      \"mpd\",\n      \"wpc\",\n      \"mzc\",\n      \"mmx\",\n      \"xmx\",\n      \"grg\",\n      \"kmd\",\n      \"mme\",\n      \"itt\",\n      \"maf\",\n      \"mkv\",\n      \"sgb\",\n      \"mtw\",\n      \"xtm\",\n      \"gmd\",\n      \"blx\",\n      \"gkd\",\n      \"gmg\",\n      \"gmx\",\n      \"zgr\",\n      \"bfz\",\n      \"mjx\",\n      \"pmh\",\n      \"mjy\",\n      \"mhb\",\n      \"mzz\",\n      \"tnh\",\n      \"sks\",\n      \"mmm\",\n      \"vmf\",\n      \"cwb\",\n      \"xkl\",\n      \"mum\",\n      \"wmm\",\n      \"mti\",\n      \"xmj\",\n      \"mmj\",\n      \"mjz\",\n      \"mfp\",\n      \"aup\",\n      \"mkg\",\n      \"vmk\",\n      \"xmc\",\n      \"vmw\",\n      \"mhm\",\n      \"xsq\",\n      \"pbl\",\n      \"zmh\",\n      \"jmn\",\n      \"lva\",\n      \"mpu\",\n      \"ymk\",\n      \"umn\",\n      \"lon\",\n      \"xml\",\n      \"ima\",\n      \"ymr\",\n      \"mjo\",\n      \"mjr\",\n      \"mjq\",\n      \"mjp\",\n      \"ruy\",\n      \"swk\",\n      \"ccm\",\n      \"mln\",\n      \"mqz\",\n      \"mmt\",\n      \"ped\",\n      \"mkr\",\n      \"lws\",\n      \"bfo\",\n      \"pkt\",\n      \"mdc\",\n      \"gut\",\n      \"mlx\",\n      \"vml\",\n      \"mxf\",\n      \"mgq\",\n      \"mzd\",\n      \"mli\",\n      \"mlf\",\n      \"mbk\",\n      \"mkb\",\n      \"mdl\",\n      \"mll\",\n      \"mup\",\n      \"myk\",\n      \"mma\",\n      \"mhf\",\n      \"wmd\",\n      \"mvd\",\n      \"mgm\",\n      \"kdf\",\n      \"mqx\",\n      \"znk\",\n      \"mjl\",\n      \"mha\",\n      \"zma\",\n      \"zmk\",\n      \"mgs\",\n      \"mqu\",\n      \"tbf\",\n      \"mqr\",\n      \"aax\",\n      \"bwp\",\n      \"mht\",\n      \"zng\",\n      \"zme\",\n      \"mem\",\n      \"myj\",\n      \"mdk\",\n      \"kby\",\n      \"mrv\",\n      \"mbh\",\n      \"mmo\",\n      \"zns\",\n      \"xkb\",\n      \"mqp\",\n      \"nlm\",\n      \"mml\",\n      \"mjv\",\n      \"woo\",\n      \"msw\",\n      \"msk\",\n      \"nty\",\n      \"myg\",\n      \"kxf\",\n      \"wha\",\n      \"mxc\",\n      \"mny\",\n      \"mzj\",\n      \"mzv\",\n      \"mmd\",\n      \"mjn\",\n      \"mlh\",\n      \"mnm\",\n      \"mpy\",\n      \"mpw\",\n      \"bzh\",\n      \"sjm\",\n      \"vmh\",\n      \"nma\",\n      \"lrm\",\n      \"lri\",\n      \"mgb\",\n      \"mvr\",\n      \"mrs\",\n      \"mpg\",\n      \"dsz\",\n      \"vmr\",\n      \"mrx\",\n      \"mvu\",\n      \"mhg\",\n      \"qvm\",\n      \"mfm\",\n      \"nsr\",\n      \"mrr\",\n      \"nng\",\n      \"zmm\",\n      \"zmj\",\n      \"zmd\",\n      \"zmy\",\n      \"mrb\",\n      \"dad\",\n      \"hob\",\n      \"mqi\",\n      \"mbx\",\n      \"mds\",\n      \"msp\",\n      \"enb\",\n      \"rkm\",\n      \"mvo\",\n      \"xru\",\n      \"mre\",\n      \"zmg\",\n      \"mzr\",\n      \"mve\",\n      \"rwr\",\n      \"myx\",\n      \"tis\",\n      \"bks\",\n      \"msb\",\n      \"mho\",\n      \"jms\",\n      \"cuj\",\n      \"ism\",\n      \"bnf\",\n      \"msh\",\n      \"klv\",\n      \"msv\",\n      \"mes\",\n      \"mdg\",\n      \"mvs\",\n      \"mtn\",\n      \"mfh\",\n      \"xmt\",\n      \"mgv\",\n      \"mqe\",\n      \"mzo\",\n      \"mtm\",\n      \"met\",\n      \"axg\",\n      \"stj\",\n      \"cty\",\n      \"lsy\",\n      \"mhl\",\n      \"wma\",\n      \"mjj\",\n      \"mcz\",\n      \"mcw\",\n      \"mgk\",\n      \"mxl\",\n      \"xmy\",\n      \"sym\",\n      \"mnt\",\n      \"ifu\",\n      \"mzl\",\n      \"zpy\",\n      \"vmz\",\n      \"dkx\",\n      \"mdp\",\n      \"mgn\",\n      \"zmz\",\n      \"mxg\",\n      \"zmn\",\n      \"zmv\",\n      \"mvl\",\n      \"gwa\",\n      \"mdn\",\n      \"xmd\",\n      \"mfo\",\n      \"mql\",\n      \"zms\",\n      \"emz\",\n      \"mbo\",\n      \"zmw\",\n      \"moi\",\n      \"mdu\",\n      \"xmb\",\n      \"bgu\",\n      \"mxo\",\n      \"mka\",\n      \"mgz\",\n      \"mhw\",\n      \"mqb\",\n      \"bpc\",\n      \"mbv\",\n      \"mbu\",\n      \"mlb\",\n      \"mgy\",\n      \"mck\",\n      \"bbt\",\n      \"muc\",\n      \"mfu\",\n      \"gun\",\n      \"mjm\",\n      \"dmf\",\n      \"mue\",\n      \"mud\",\n      \"byv\",\n      \"mfj\",\n      \"mef\",\n      \"ruq\",\n      \"mmh\",\n      \"mvk\",\n      \"msf\",\n      \"hkn\",\n      \"mfx\",\n      \"med\",\n      \"mby\",\n      \"mfd\",\n      \"xkd\",\n      \"sim\",\n      \"xmg\",\n      \"mee\",\n      \"mea\",\n      \"mvx\",\n      \"mxm\",\n      \"lmb\",\n      \"meq\",\n      \"mrm\",\n      \"xmr\",\n      \"mnu\",\n      \"mer\",\n      \"wry\",\n      \"iyo\",\n      \"mci\",\n      \"zim\",\n      \"mys\",\n      \"mvz\",\n      \"cms\",\n      \"mgo\",\n      \"mxv\",\n      \"mtr\",\n      \"wtm\",\n      \"mfs\",\n      \"zmf\",\n      \"nfu\",\n      \"zam\",\n      \"pla\",\n      \"xmi\",\n      \"mmc\",\n      \"enm\",\n      \"gml\",\n      \"dum\",\n      \"mpl\",\n      \"gmh\",\n      \"ltc\",\n      \"xng\",\n      \"dnt\",\n      \"bjo\",\n      \"mpp\",\n      \"ymh\",\n      \"mlj\",\n      \"iml\",\n      \"imy\",\n      \"mcv\",\n      \"inm\",\n      \"mnp\",\n      \"mpn\",\n      \"drc\",\n      \"mko\",\n      \"vmg\",\n      \"wii\",\n      \"xxm\",\n      \"omn\",\n      \"mqq\",\n      \"mnq\",\n      \"mzt\",\n      \"czo\",\n      \"zgm\",\n      \"yiq\",\n      \"mwl\",\n      \"mvh\",\n      \"mmv\",\n      \"rsm\",\n      \"mjs\",\n      \"mpx\",\n      \"vmm\",\n      \"mwu\",\n      \"mpo\",\n      \"vmi\",\n      \"mfg\",\n      \"mix\",\n      \"mvi\",\n      \"ehs\",\n      \"soy\",\n      \"lhs\",\n      \"kja\",\n      \"mlo\",\n      \"mmu\",\n      \"bfm\",\n      \"mfq\",\n      \"mod\",\n      \"ahm\",\n      \"jkm\",\n      \"mhn\",\n      \"mhc\",\n      \"gbn\",\n      \"mxd\",\n      \"mqo\",\n      \"mvq\",\n      \"mou\",\n      \"mof\",\n      \"mow\",\n      \"mxn\",\n      \"mkp\",\n      \"mwz\",\n      \"ymi\",\n      \"mft\",\n      \"mwt\",\n      \"mqt\",\n      \"mkm\",\n      \"mkl\",\n      \"vms\",\n      \"pwm\",\n      \"vsi\",\n      \"bxc\",\n      \"mox\",\n      \"zmo\",\n      \"msl\",\n      \"mlw\",\n      \"myl\",\n      \"msz\",\n      \"dmb\",\n      \"mmb\",\n      \"ver\",\n      \"mzg\",\n      \"npn\",\n      \"msr\",\n      \"mgt\",\n      \"mom\",\n      \"moo\",\n      \"mru\",\n      \"mnh\",\n      \"nmh\",\n      \"mtl\",\n      \"gwg\",\n      \"crm\",\n      \"msg\",\n      \"mze\",\n      \"moq\",\n      \"msx\",\n      \"xmo\",\n      \"xmz\",\n      \"mzq\",\n      \"mdb\",\n      \"xms\",\n      \"bdo\",\n      \"mgc\",\n      \"mrp\",\n      \"mqn\",\n      \"mrl\",\n      \"mwy\",\n      \"mqv\",\n      \"mtj\",\n      \"mtt\",\n      \"mwh\",\n      \"jmw\",\n      \"ity\",\n      \"nmo\",\n      \"mzy\",\n      \"mxi\",\n      \"xnq\",\n      \"mpi\",\n      \"mcx\",\n      \"mpz\",\n      \"pnd\",\n      \"mgg\",\n      \"mpa\",\n      \"mvt\",\n      \"zmp\",\n      \"cmr\",\n      \"mro\",\n      \"kqx\",\n      \"agz\",\n      \"atl\",\n      \"mtd\",\n      \"tsx\",\n      \"mub\",\n      \"ymd\",\n      \"gau\",\n      \"udg\",\n      \"vmd\",\n      \"wiv\",\n      \"muk\",\n      \"mmk\",\n      \"mfw\",\n      \"kpb\",\n      \"vmu\",\n      \"kqa\",\n      \"mwq\",\n      \"boe\",\n      \"mmf\",\n      \"mth\",\n      \"mpv\",\n      \"mtc\",\n      \"myr\",\n      \"mnj\",\n      \"asx\",\n      \"mxr\",\n      \"rmh\",\n      \"tkv\",\n      \"mqw\",\n      \"smm\",\n      \"mmi\",\n      \"mmq\",\n      \"mse\",\n      \"mui\",\n      \"mje\",\n      \"muv\",\n      \"tuc\",\n      \"muy\",\n      \"ymz\",\n      \"mcj\",\n      \"mxh\",\n      \"wlc\",\n      \"wmw\",\n      \"moa\",\n      \"mwa\",\n      \"mjh\",\n      \"mws\",\n      \"gmy\",\n      \"nme\",\n      \"nbt\",\n      \"nao\",\n      \"mne\",\n      \"mty\",\n      \"ncd\",\n      \"srf\",\n      \"nxx\",\n      \"jbn\",\n      \"nbg\",\n      \"nxe\",\n      \"ngv\",\n      \"nlx\",\n      \"nhh\",\n      \"ars\",\n      \"nae\",\n      \"nib\",\n      \"nkj\",\n      \"nbk\",\n      \"mff\",\n      \"nax\",\n      \"nlc\",\n      \"nss\",\n      \"nlz\",\n      \"ylo\",\n      \"naj\",\n      \"nmx\",\n      \"nkm\",\n      \"nmk\",\n      \"nmq\",\n      \"ncm\",\n      \"neo\",\n      \"nbs\",\n      \"nvm\",\n      \"naa\",\n      \"mxw\",\n      \"nmt\",\n      \"bwb\",\n      \"nmy\",\n      \"nnc\",\n      \"nzz\",\n      \"ngr\",\n      \"cox\",\n      \"afk\",\n      \"qvo\",\n      \"nrg\",\n      \"nac\",\n      \"loh\",\n      \"nnr\",\n      \"nsy\",\n      \"nvh\",\n      \"ntz\",\n      \"nte\",\n      \"nti\",\n      \"nxa\",\n      \"ncn\",\n      \"nwo\",\n      \"nsw\",\n      \"nwr\",\n      \"nwa\",\n      \"nmz\",\n      \"naw\",\n      \"nyq\",\n      \"noz\",\n      \"ncr\",\n      \"nlu\",\n      \"gke\",\n      \"ndk\",\n      \"ndh\",\n      \"ndj\",\n      \"ndm\",\n      \"nxo\",\n      \"nnz\",\n      \"nda\",\n      \"ndc\",\n      \"nml\",\n      \"ndg\",\n      \"dne\",\n      \"ndd\",\n      \"eli\",\n      \"ndw\",\n      \"nbb\",\n      \"ndl\",\n      \"ndq\",\n      \"nqm\",\n      \"ndr\",\n      \"ndp\",\n      \"dno\",\n      \"ndx\",\n      \"nuh\",\n      \"nww\",\n      \"njt\",\n      \"wni\",\n      \"nec\",\n      \"nef\",\n      \"dcr\",\n      \"nkg\",\n      \"nif\",\n      \"nej\",\n      \"nek\",\n      \"nex\",\n      \"nem\",\n      \"nqn\",\n      \"neu\",\n      \"nsp\",\n      \"net\",\n      \"jas\",\n      \"jui\",\n      \"nnf\",\n      \"hlt\",\n      \"szb\",\n      \"nud\",\n      \"nmv\",\n      \"nbv\",\n      \"nmc\",\n      \"nbh\",\n      \"nyx\",\n      \"gng\",\n      \"nne\",\n      \"nxd\",\n      \"ngd\",\n      \"nji\",\n      \"rxd\",\n      \"nsg\",\n      \"ngm\",\n      \"cnw\",\n      \"zdj\",\n      \"ngg\",\n      \"jgb\",\n      \"nbd\",\n      \"nuu\",\n      \"gnj\",\n      \"nql\",\n      \"ngt\",\n      \"nnn\",\n      \"nbq\",\n      \"ngx\",\n      \"nnh\",\n      \"ngj\",\n      \"nnq\",\n      \"nra\",\n      \"nla\",\n      \"jgo\",\n      \"noq\",\n      \"nsh\",\n      \"nuw\",\n      \"ngp\",\n      \"nlo\",\n      \"xnm\",\n      \"nui\",\n      \"nue\",\n      \"ndn\",\n      \"ngz\",\n      \"nuo\",\n      \"nrx\",\n      \"nbx\",\n      \"ngq\",\n      \"ngw\",\n      \"nwe\",\n      \"ngn\",\n      \"yrl\",\n      \"nhf\",\n      \"ncs\",\n      \"nsi\",\n      \"mzk\",\n      \"nii\",\n      \"xny\",\n      \"gbe\",\n      \"nim\",\n      \"nil\",\n      \"noe\",\n      \"nmp\",\n      \"nmr\",\n      \"nis\",\n      \"nmw\",\n      \"niw\",\n      \"nxi\",\n      \"nxr\",\n      \"nby\",\n      \"nlk\",\n      \"nin\",\n      \"nps\",\n      \"njs\",\n      \"yso\",\n      \"nkp\",\n      \"njl\",\n      \"nzb\",\n      \"njj\",\n      \"njr\",\n      \"njy\",\n      \"nkq\",\n      \"nkn\",\n      \"nkz\",\n      \"khu\",\n      \"nqo\",\n      \"nkc\",\n      \"nkx\",\n      \"nka\",\n      \"nbo\",\n      \"nkw\",\n      \"nbp\",\n      \"ngh\",\n      \"gaw\",\n      \"noi\",\n      \"nkk\",\n      \"lem\",\n      \"nof\",\n      \"noh\",\n      \"zhn\",\n      \"noj\",\n      \"nok\",\n      \"nrc\",\n      \"nrp\",\n      \"huj\",\n      \"hmp\",\n      \"crl\",\n      \"pbu\",\n      \"hno\",\n      \"glh\",\n      \"aee\",\n      \"kxm\",\n      \"atv\",\n      \"azj\",\n      \"ghh\",\n      \"ymx\",\n      \"yiv\",\n      \"cng\",\n      \"bfc\",\n      \"nnl\",\n      \"lbr\",\n      \"tji\",\n      \"doc\",\n      \"nod\",\n      \"tts\",\n      \"hea\",\n      \"hmi\",\n      \"kqs\",\n      \"fll\",\n      \"dgi\",\n      \"tsp\",\n      \"gbo\",\n      \"dip\",\n      \"diw\",\n      \"max\",\n      \"mmg\",\n      \"mrq\",\n      \"tnn\",\n      \"una\",\n      \"bcd\",\n      \"weo\",\n      \"nni\",\n      \"aqn\",\n      \"xnn\",\n      \"cts\",\n      \"stb\",\n      \"bmm\",\n      \"onr\",\n      \"kti\",\n      \"nks\",\n      \"yir\",\n      \"whg\",\n      \"kiw\",\n      \"ryn\",\n      \"neq\",\n      \"scs\",\n      \"esk\",\n      \"thh\",\n      \"nhy\",\n      \"ojb\",\n      \"pef\",\n      \"cst\",\n      \"enl\",\n      \"qvz\",\n      \"qul\",\n      \"qxn\",\n      \"pmq\",\n      \"xtn\",\n      \"mxa\",\n      \"mfk\",\n      \"ayp\",\n      \"ntd\",\n      \"cnp\",\n      \"ncq\",\n      \"bly\",\n      \"ncf\",\n      \"ntw\",\n      \"nov\",\n      \"noy\",\n      \"asj\",\n      \"nsc\",\n      \"nsx\",\n      \"baf\",\n      \"kte\",\n      \"wbm\",\n      \"bsq\",\n      \"wla\",\n      \"wgi\",\n      \"gyz\",\n      \"nqt\",\n      \"nnv\",\n      \"noc\",\n      \"klt\",\n      \"nuq\",\n      \"nur\",\n      \"nuc\",\n      \"nbr\",\n      \"nop\",\n      \"sij\",\n      \"tgs\",\n      \"kdk\",\n      \"nxm\",\n      \"nug\",\n      \"rin\",\n      \"nul\",\n      \"nwb\",\n      \"nev\",\n      \"nyy\",\n      \"nlj\",\n      \"mwn\",\n      \"nwm\",\n      \"nmi\",\n      \"nny\",\n      \"nyb\",\n      \"nyc\",\n      \"nyk\",\n      \"nnj\",\n      \"sev\",\n      \"nba\",\n      \"neh\",\n      \"nye\",\n      \"nyl\",\n      \"nyr\",\n      \"nkv\",\n      \"nkt\",\n      \"nyg\",\n      \"lid\",\n      \"nvo\",\n      \"nuj\",\n      \"muo\",\n      \"nyd\",\n      \"nyu\",\n      \"nzd\",\n      \"nzy\",\n      \"nja\",\n      \"nzi\",\n      \"bzy\",\n      \"obi\",\n      \"obl\",\n      \"obo\",\n      \"obu\",\n      \"zac\",\n      \"odk\",\n      \"bhf\",\n      \"kkc\",\n      \"odu\",\n      \"tyh\",\n      \"opy\",\n      \"ofo\",\n      \"ogc\",\n      \"ogg\",\n      \"eri\",\n      \"oia\",\n      \"chj\",\n      \"oki\",\n      \"okn\",\n      \"okb\",\n      \"okd\",\n      \"oks\",\n      \"okj\",\n      \"kqv\",\n      \"oie\",\n      \"opa\",\n      \"okx\",\n      \"oke\",\n      \"oar\",\n      \"obr\",\n      \"och\",\n      \"odt\",\n      \"ang\",\n      \"fro\",\n      \"ofs\",\n      \"oge\",\n      \"goh\",\n      \"sga\",\n      \"ojp\",\n      \"okl\",\n      \"qok\",\n      \"qkn\",\n      \"qbb\",\n      \"omx\",\n      \"omr\",\n      \"non\",\n      \"onw\",\n      \"oos\",\n      \"pro\",\n      \"peo\",\n      \"orv\",\n      \"osp\",\n      \"osx\",\n      \"oty\",\n      \"oui\",\n      \"owl\",\n      \"ole\",\n      \"olm\",\n      \"lul\",\n      \"iko\",\n      \"acx\",\n      \"oml\",\n      \"nht\",\n      \"omi\",\n      \"omt\",\n      \"omu\",\n      \"oog\",\n      \"onx\",\n      \"oni\",\n      \"onj\",\n      \"onn\",\n      \"oor\",\n      \"opo\",\n      \"opt\",\n      \"lgn\",\n      \"orn\",\n      \"ors\",\n      \"sdr\",\n      \"org\",\n      \"nlv\",\n      \"fnb\",\n      \"orc\",\n      \"orz\",\n      \"ora\",\n      \"orx\",\n      \"orh\",\n      \"bpk\",\n      \"orw\",\n      \"orr\",\n      \"syx\",\n      \"ost\",\n      \"osc\",\n      \"osi\",\n      \"oso\",\n      \"uta\",\n      \"otd\",\n      \"oti\",\n      \"otw\",\n      \"lot\",\n      \"otu\",\n      \"oum\",\n      \"oue\",\n      \"stn\",\n      \"wsr\",\n      \"oyy\",\n      \"oyd\",\n      \"zao\",\n      \"chz\",\n      \"pfa\",\n      \"sig\",\n      \"qvp\",\n      \"pcp\",\n      \"pdi\",\n      \"pkc\",\n      \"pae\",\n      \"pgi\",\n      \"phr\",\n      \"phj\",\n      \"lgt\",\n      \"phv\",\n      \"pal\",\n      \"pha\",\n      \"pri\",\n      \"ppi\",\n      \"qpp\",\n      \"pta\",\n      \"pkg\",\n      \"jkp\",\n      \"pku\",\n      \"pfl\",\n      \"plq\",\n      \"plr\",\n      \"pln\",\n      \"pnl\",\n      \"pli\",\n      \"pcf\",\n      \"pmd\",\n      \"abw\",\n      \"pmc\",\n      \"ple\",\n      \"plz\",\n      \"bpx\",\n      \"pmb\",\n      \"pmn\",\n      \"hih\",\n      \"att\",\n      \"pnz\",\n      \"pnq\",\n      \"pwb\",\n      \"psn\",\n      \"qxh\",\n      \"lsp\",\n      \"tdb\",\n      \"pnp\",\n      \"bkj\",\n      \"pgg\",\n      \"pgs\",\n      \"slm\",\n      \"pcg\",\n      \"pnr\",\n      \"pax\",\n      \"pkh\",\n      \"paz\",\n      \"pnc\",\n      \"knt\",\n      \"pno\",\n      \"blk\",\n      \"ppv\",\n      \"ppn\",\n      \"dpp\",\n      \"pas\",\n      \"pbo\",\n      \"ppe\",\n      \"ppu\",\n      \"ppm\",\n      \"pgz\",\n      \"prc\",\n      \"pzn\",\n      \"prf\",\n      \"prw\",\n      \"aap\",\n      \"pak\",\n      \"paf\",\n      \"gvp\",\n      \"pbg\",\n      \"pys\",\n      \"pcl\",\n      \"pch\",\n      \"pcj\",\n      \"ppt\",\n      \"kvx\",\n      \"xpr\",\n      \"paq\",\n      \"psq\",\n      \"yac\",\n      \"ptn\",\n      \"pth\",\n      \"pbc\",\n      \"pty\",\n      \"ptq\",\n      \"mfa\",\n      \"pnk\",\n      \"bfb\",\n      \"psm\",\n      \"pmr\",\n      \"pcb\",\n      \"xpc\",\n      \"pai\",\n      \"pfe\",\n      \"ppq\",\n      \"pel\",\n      \"bxd\",\n      \"ata\",\n      \"pev\",\n      \"psg\",\n      \"pek\",\n      \"ums\",\n      \"pdc\",\n      \"pnh\",\n      \"ptw\",\n      \"pea\",\n      \"wet\",\n      \"psc\",\n      \"prl\",\n      \"pex\",\n      \"zpe\",\n      \"pey\",\n      \"prt\",\n      \"phk\",\n      \"phl\",\n      \"ypa\",\n      \"phq\",\n      \"pem\",\n      \"psp\",\n      \"phm\",\n      \"phn\",\n      \"yip\",\n      \"ypg\",\n      \"nph\",\n      \"pnx\",\n      \"kjt\",\n      \"xpg\",\n      \"phu\",\n      \"phd\",\n      \"pug\",\n      \"phh\",\n      \"ypm\",\n      \"pho\",\n      \"phg\",\n      \"yph\",\n      \"ypp\",\n      \"pht\",\n      \"ypz\",\n      \"ptr\",\n      \"pin\",\n      \"pcd\",\n      \"cpu\",\n      \"xpi\",\n      \"dep\",\n      \"pij\",\n      \"piz\",\n      \"pis\",\n      \"piw\",\n      \"pnn\",\n      \"pnv\",\n      \"tjp\",\n      \"pic\",\n      \"pti\",\n      \"pny\",\n      \"bxi\",\n      \"pie\",\n      \"xpa\",\n      \"tpp\",\n      \"pig\",\n      \"psy\",\n      \"xps\",\n      \"pih\",\n      \"sje\",\n      \"pcn\",\n      \"pix\",\n      \"piy\",\n      \"ktj\",\n      \"pdt\",\n      \"pbv\",\n      \"npo\",\n      \"pdn\",\n      \"pof\",\n      \"pkb\",\n      \"pld\",\n      \"plj\",\n      \"pso\",\n      \"plb\",\n      \"pmo\",\n      \"pmm\",\n      \"ncc\",\n      \"png\",\n      \"pns\",\n      \"pnt\",\n      \"prh\",\n      \"ptv\",\n      \"pmx\",\n      \"bye\",\n      \"pwr\",\n      \"pyn\",\n      \"prz\",\n      \"prg\",\n      \"kvj\",\n      \"pux\",\n      \"atp\",\n      \"pbm\",\n      \"psl\",\n      \"pkp\",\n      \"pup\",\n      \"pum\",\n      \"xpm\",\n      \"puj\",\n      \"pud\",\n      \"puf\",\n      \"pna\",\n      \"pnm\",\n      \"xpu\",\n      \"qxp\",\n      \"puu\",\n      \"pru\",\n      \"iar\",\n      \"puy\",\n      \"prr\",\n      \"pur\",\n      \"pub\",\n      \"mfl\",\n      \"afe\",\n      \"cpx\",\n      \"pyu\",\n      \"pme\",\n      \"pop\",\n      \"pwo\",\n      \"pcw\",\n      \"pye\",\n      \"pyy\",\n      \"pby\",\n      \"laq\",\n      \"qxq\",\n      \"xqt\",\n      \"ymq\",\n      \"zqe\",\n      \"qua\",\n      \"qya\",\n      \"qvy\",\n      \"zpj\",\n      \"quq\",\n      \"qun\",\n      \"ztq\",\n      \"rah\",\n      \"xrr\",\n      \"raz\",\n      \"mqk\",\n      \"rjs\",\n      \"rjg\",\n      \"gra\",\n      \"rkh\",\n      \"rki\",\n      \"rai\",\n      \"kjx\",\n      \"lje\",\n      \"thr\",\n      \"rkt\",\n      \"rnl\",\n      \"rax\",\n      \"ray\",\n      \"rpt\",\n      \"lra\",\n      \"rar\",\n      \"rac\",\n      \"btn\",\n      \"bgd\",\n      \"rtw\",\n      \"rau\",\n      \"yea\",\n      \"jnl\",\n      \"rat\",\n      \"gir\",\n      \"atu\",\n      \"ree\",\n      \"rei\",\n      \"bow\",\n      \"reb\",\n      \"agv\",\n      \"rem\",\n      \"rmp\",\n      \"lkj\",\n      \"rsi\",\n      \"rea\",\n      \"rer\",\n      \"pgk\",\n      \"res\",\n      \"ret\",\n      \"rcf\",\n      \"rey\",\n      \"ril\",\n      \"ria\",\n      \"rir\",\n      \"zar\",\n      \"rgu\",\n      \"hrx\",\n      \"rri\",\n      \"riu\",\n      \"snj\",\n      \"rod\",\n      \"rhg\",\n      \"rge\",\n      \"rms\",\n      \"rgn\",\n      \"rmx\",\n      \"rmm\",\n      \"rmv\",\n      \"rof\",\n      \"rol\",\n      \"rmk\",\n      \"ror\",\n      \"roe\",\n      \"rnn\",\n      \"rga\",\n      \"pce\",\n      \"rdb\",\n      \"ruh\",\n      \"rbb\",\n      \"ruz\",\n      \"rna\",\n      \"rnw\",\n      \"drg\",\n      \"bxr\",\n      \"rue\",\n      \"ruc\",\n      \"rnd\",\n      \"rwk\",\n      \"rsn\",\n      \"sax\",\n      \"sav\",\n      \"raq\",\n      \"lsm\",\n      \"sxr\",\n      \"spy\",\n      \"msi\",\n      \"bsy\",\n      \"sae\",\n      \"saa\",\n      \"xsa\",\n      \"qhr\",\n      \"sbo\",\n      \"quv\",\n      \"sck\",\n      \"spd\",\n      \"saf\",\n      \"sbk\",\n      \"sbm\",\n      \"tga\",\n      \"aec\",\n      \"acf\",\n      \"xsy\",\n      \"sjl\",\n      \"sjb\",\n      \"sch\",\n      \"skt\",\n      \"skg\",\n      \"skm\",\n      \"sak\",\n      \"szy\",\n      \"shq\",\n      \"slx\",\n      \"sgu\",\n      \"qxl\",\n      \"mnd\",\n      \"slq\",\n      \"sau\",\n      \"loe\",\n      \"esn\",\n      \"tmj\",\n      \"ysd\",\n      \"smp\",\n      \"xab\",\n      \"smx\",\n      \"ccg\",\n      \"saq\",\n      \"ssx\",\n      \"spv\",\n      \"smh\",\n      \"snx\",\n      \"swm\",\n      \"rav\",\n      \"stu\",\n      \"smv\",\n      \"ztm\",\n      \"icr\",\n      \"spn\",\n      \"zpx\",\n      \"cuk\",\n      \"hve\",\n      \"hue\",\n      \"mat\",\n      \"pow\",\n      \"xso\",\n      \"sgr\",\n      \"sgk\",\n      \"nsa\",\n      \"xsn\",\n      \"sbp\",\n      \"sng\",\n      \"snl\",\n      \"scg\",\n      \"sgy\",\n      \"ysy\",\n      \"ysn\",\n      \"sny\",\n      \"xtj\",\n      \"maa\",\n      \"msc\",\n      \"pps\",\n      \"qvs\",\n      \"xtp\",\n      \"trq\",\n      \"pls\",\n      \"azg\",\n      \"zpf\",\n      \"san\",\n      \"ssi\",\n      \"kwy\",\n      \"hvv\",\n      \"nhz\",\n      \"cok\",\n      \"qus\",\n      \"mza\",\n      \"mdv\",\n      \"zpn\",\n      \"ztn\",\n      \"zas\",\n      \"zpr\",\n      \"pca\",\n      \"zpt\",\n      \"scq\",\n      \"zkp\",\n      \"cri\",\n      \"spr\",\n      \"spc\",\n      \"krn\",\n      \"spi\",\n      \"sbz\",\n      \"kwv\",\n      \"kwg\",\n      \"zsa\",\n      \"bps\",\n      \"mbs\",\n      \"sre\",\n      \"sar\",\n      \"srh\",\n      \"mwm\",\n      \"onp\",\n      \"sdu\",\n      \"sra\",\n      \"swy\",\n      \"sxs\",\n      \"sas\",\n      \"sdc\",\n      \"stw\",\n      \"stq\",\n      \"mav\",\n      \"sdl\",\n      \"skc\",\n      \"saz\",\n      \"mjt\",\n      \"srt\",\n      \"psu\",\n      \"ssj\",\n      \"sao\",\n      \"swr\",\n      \"swt\",\n      \"saw\",\n      \"swn\",\n      \"sxw\",\n      \"say\",\n      \"sco\",\n      \"kdg\",\n      \"sbx\",\n      \"sib\",\n      \"sec\",\n      \"tvw\",\n      \"sos\",\n      \"sge\",\n      \"sbg\",\n      \"seg\",\n      \"sfw\",\n      \"ssg\",\n      \"hik\",\n      \"skz\",\n      \"skp\",\n      \"sek\",\n      \"ske\",\n      \"syi\",\n      \"sko\",\n      \"skx\",\n      \"lip\",\n      \"kgi\",\n      \"snw\",\n      \"sws\",\n      \"slg\",\n      \"szc\",\n      \"sbr\",\n      \"etz\",\n      \"smy\",\n      \"ssm\",\n      \"xse\",\n      \"seq\",\n      \"sej\",\n      \"sds\",\n      \"ssz\",\n      \"spk\",\n      \"snu\",\n      \"sjs\",\n      \"sni\",\n      \"std\",\n      \"sez\",\n      \"spe\",\n      \"spb\",\n      \"spm\",\n      \"iws\",\n      \"skr\",\n      \"sry\",\n      \"srr\",\n      \"swf\",\n      \"sve\",\n      \"seu\",\n      \"srw\",\n      \"srk\",\n      \"stf\",\n      \"stm\",\n      \"sbi\",\n      \"sta\",\n      \"sew\",\n      \"lsw\",\n      \"sze\",\n      \"scw\",\n      \"sdb\",\n      \"srz\",\n      \"sha\",\n      \"xsh\",\n      \"sqa\",\n      \"jih\",\n      \"sho\",\n      \"swo\",\n      \"ssv\",\n      \"swq\",\n      \"sqh\",\n      \"shx\",\n      \"she\",\n      \"sth\",\n      \"shl\",\n      \"scv\",\n      \"bun\",\n      \"kip\",\n      \"ssh\",\n      \"shr\",\n      \"gua\",\n      \"snh\",\n      \"sxg\",\n      \"sle\",\n      \"bcv\",\n      \"suj\",\n      \"sts\",\n      \"scu\",\n      \"ksa\",\n      \"shw\",\n      \"slw\",\n      \"sya\",\n      \"spg\",\n      \"mmp\",\n      \"nco\",\n      \"sty\",\n      \"sdx\",\n      \"sxc\",\n      \"scn\",\n      \"sep\",\n      \"scx\",\n      \"xsd\",\n      \"sgx\",\n      \"nsu\",\n      \"sxe\",\n      \"snr\",\n      \"qws\",\n      \"sky\",\n      \"slt\",\n      \"szl\",\n      \"sbq\",\n      \"mkc\",\n      \"wul\",\n      \"xsp\",\n      \"stv\",\n      \"sie\",\n      \"sbw\",\n      \"smb\",\n      \"sbb\",\n      \"smg\",\n      \"smz\",\n      \"smt\",\n      \"siu\",\n      \"sbn\",\n      \"xts\",\n      \"sjn\",\n      \"sgp\",\n      \"sgm\",\n      \"skq\",\n      \"xti\",\n      \"snz\",\n      \"sys\",\n      \"swj\",\n      \"sir\",\n      \"srx\",\n      \"sld\",\n      \"sso\",\n      \"siy\",\n      \"lsv\",\n      \"akp\",\n      \"skw\",\n      \"sms\",\n      \"svm\",\n      \"svk\",\n      \"sfm\",\n      \"kxq\",\n      \"sox\",\n      \"soc\",\n      \"xog\",\n      \"sog\",\n      \"soj\",\n      \"sok\",\n      \"sby\",\n      \"sol\",\n      \"aaw\",\n      \"szs\",\n      \"smc\",\n      \"smu\",\n      \"sor\",\n      \"kgt\",\n      \"ysg\",\n      \"shc\",\n      \"soo\",\n      \"sod\",\n      \"soe\",\n      \"soi\",\n      \"siq\",\n      \"sss\",\n      \"urw\",\n      \"sbh\",\n      \"sqo\",\n      \"ays\",\n      \"sdk\",\n      \"krz\",\n      \"sfs\",\n      \"nit\",\n      \"hmy\",\n      \"hma\",\n      \"sdh\",\n      \"bcc\",\n      \"fay\",\n      \"luz\",\n      \"pbt\",\n      \"hnd\",\n      \"psh\",\n      \"psi\",\n      \"vro\",\n      \"nik\",\n      \"mnn\",\n      \"uzs\",\n      \"ghe\",\n      \"ymc\",\n      \"nsd\",\n      \"qxs\",\n      \"pmj\",\n      \"bfs\",\n      \"nre\",\n      \"lrr\",\n      \"tjs\",\n      \"sou\",\n      \"hms\",\n      \"hmh\",\n      \"hmg\",\n      \"xtv\",\n      \"ijs\",\n      \"fal\",\n      \"nbw\",\n      \"lnl\",\n      \"biv\",\n      \"nnw\",\n      \"snm\",\n      \"dik\",\n      \"dib\",\n      \"dks\",\n      \"bwq\",\n      \"sbd\",\n      \"sns\",\n      \"mqm\",\n      \"mcy\",\n      \"vbb\",\n      \"lmf\",\n      \"agy\",\n      \"ksc\",\n      \"bln\",\n      \"plv\",\n      \"bzc\",\n      \"osu\",\n      \"aws\",\n      \"omw\",\n      \"ams\",\n      \"hax\",\n      \"tce\",\n      \"caf\",\n      \"twr\",\n      \"tcu\",\n      \"npl\",\n      \"tla\",\n      \"crj\",\n      \"peq\",\n      \"qup\",\n      \"qxo\",\n      \"ayc\",\n      \"meh\",\n      \"mit\",\n      \"mxy\",\n      \"rgs\",\n      \"giz\",\n      \"cpy\",\n      \"itd\",\n      \"csp\",\n      \"sct\",\n      \"sqq\",\n      \"sww\",\n      \"sow\",\n      \"vmq\",\n      \"vmp\",\n      \"sqs\",\n      \"sci\",\n      \"seo\",\n      \"swp\",\n      \"sxb\",\n      \"ssc\",\n      \"sut\",\n      \"apd\",\n      \"pga\",\n      \"sgi\",\n      \"sug\",\n      \"kzs\",\n      \"zsu\",\n      \"syk\",\n      \"szn\",\n      \"srg\",\n      \"sqm\",\n      \"siv\",\n      \"six\",\n      \"suw\",\n      \"smw\",\n      \"sux\",\n      \"csv\",\n      \"ssk\",\n      \"suz\",\n      \"syo\",\n      \"sbj\",\n      \"sgd\",\n      \"sjp\",\n      \"tdl\",\n      \"sde\",\n      \"mdz\",\n      \"sru\",\n      \"swx\",\n      \"sqn\",\n      \"ssu\",\n      \"sdj\",\n      \"swu\",\n      \"suy\",\n      \"swg\",\n      \"slf\",\n      \"sgg\",\n      \"ssr\",\n      \"xdk\",\n      \"syl\",\n      \"zoq\",\n      \"nhc\",\n      \"zat\",\n      \"knv\",\n      \"tzx\",\n      \"xtt\",\n      \"lts\",\n      \"dsq\",\n      \"tdy\",\n      \"rob\",\n      \"tcd\",\n      \"klg\",\n      \"bgs\",\n      \"mvv\",\n      \"tgz\",\n      \"tbm\",\n      \"tda\",\n      \"tgx\",\n      \"tgj\",\n      \"tgw\",\n      \"tht\",\n      \"blt\",\n      \"tyj\",\n      \"tyr\",\n      \"twh\",\n      \"tiz\",\n      \"taw\",\n      \"aos\",\n      \"tlq\",\n      \"thi\",\n      \"tjl\",\n      \"tdd\",\n      \"ago\",\n      \"tnq\",\n      \"tpo\",\n      \"uar\",\n      \"tmm\",\n      \"cuu\",\n      \"acq\",\n      \"pee\",\n      \"tdj\",\n      \"abh\",\n      \"tja\",\n      \"tkz\",\n      \"nho\",\n      \"tke\",\n      \"tak\",\n      \"tdf\",\n      \"tlr\",\n      \"tlv\",\n      \"tal\",\n      \"tln\",\n      \"tlk\",\n      \"tzl\",\n      \"yta\",\n      \"tcl\",\n      \"tmn\",\n      \"tmz\",\n      \"vmx\",\n      \"ten\",\n      \"tls\",\n      \"xxt\",\n      \"tdk\",\n      \"tmy\",\n      \"tax\",\n      \"tml\",\n      \"tpu\",\n      \"low\",\n      \"tpv\",\n      \"tcm\",\n      \"tni\",\n      \"tdx\",\n      \"tgn\",\n      \"tnx\",\n      \"tnv\",\n      \"txg\",\n      \"tgp\",\n      \"tkx\",\n      \"tgu\",\n      \"tbs\",\n      \"ytl\",\n      \"tbe\",\n      \"uji\",\n      \"txy\",\n      \"xnj\",\n      \"qcs\",\n      \"afp\",\n      \"taf\",\n      \"txj\",\n      \"tpf\",\n      \"txr\",\n      \"tdm\",\n      \"twq\",\n      \"tmt\",\n      \"ttd\",\n      \"tco\",\n      \"tpa\",\n      \"tad\",\n      \"tvs\",\n      \"tvn\",\n      \"rmu\",\n      \"twl\",\n      \"xtw\",\n      \"ttq\",\n      \"twy\",\n      \"tbp\",\n      \"tcp\",\n      \"ayy\",\n      \"tas\",\n      \"tnu\",\n      \"tys\",\n      \"tyt\",\n      \"tyz\",\n      \"tck\",\n      \"bqa\",\n      \"dtu\",\n      \"tsy\",\n      \"tcw\",\n      \"tuq\",\n      \"tkq\",\n      \"lor\",\n      \"tfo\",\n      \"twe\",\n      \"ztt\",\n      \"teg\",\n      \"tyx\",\n      \"lli\",\n      \"ebo\",\n      \"tyi\",\n      \"tvm\",\n      \"tlt\",\n      \"nhv\",\n      \"tjo\",\n      \"tbt\",\n      \"tmv\",\n      \"tqb\",\n      \"tdo\",\n      \"soz\",\n      \"tmo\",\n      \"ott\",\n      \"tmw\",\n      \"quw\",\n      \"otn\",\n      \"dtk\",\n      \"tes\",\n      \"pah\",\n      \"tqn\",\n      \"tns\",\n      \"tct\",\n      \"tev\",\n      \"cux\",\n      \"cte\",\n      \"ted\",\n      \"tef\",\n      \"trb\",\n      \"twg\",\n      \"tec\",\n      \"tmg\",\n      \"sjt\",\n      \"tkg\",\n      \"keg\",\n      \"twc\",\n      \"tez\",\n      \"tdt\",\n      \"tve\",\n      \"cut\",\n      \"twx\",\n      \"otx\",\n      \"poq\",\n      \"mxb\",\n      \"thy\",\n      \"thn\",\n      \"soa\",\n      \"nki\",\n      \"thk\",\n      \"iin\",\n      \"tou\",\n      \"ytp\",\n      \"txh\",\n      \"thu\",\n      \"ahi\",\n      \"mnl\",\n      \"tbj\",\n      \"ngy\",\n      \"lsn\",\n      \"tcn\",\n      \"mtx\",\n      \"tia\",\n      \"tiq\",\n      \"boo\",\n      \"tii\",\n      \"nza\",\n      \"txq\",\n      \"xtl\",\n      \"tkp\",\n      \"otl\",\n      \"zts\",\n      \"tij\",\n      \"tim\",\n      \"tvy\",\n      \"xsb\",\n      \"tit\",\n      \"tpz\",\n      \"tpe\",\n      \"tra\",\n      \"tic\",\n      \"tde\",\n      \"tdq\",\n      \"ttv\",\n      \"lax\",\n      \"tju\",\n      \"tpl\",\n      \"ctl\",\n      \"zpk\",\n      \"nuz\",\n      \"mqh\",\n      \"tmf\",\n      \"tng\",\n      \"tgh\",\n      \"tox\",\n      \"tgb\",\n      \"taz\",\n      \"tdr\",\n      \"tlg\",\n      \"tfi\",\n      \"tor\",\n      \"tgy\",\n      \"zuh\",\n      \"xto\",\n      \"txb\",\n      \"tok\",\n      \"tkn\",\n      \"lbw\",\n      \"tlm\",\n      \"tol\",\n      \"tod\",\n      \"tdi\",\n      \"tom\",\n      \"txa\",\n      \"ttp\",\n      \"txm\",\n      \"dtm\",\n      \"tqp\",\n      \"tst\",\n      \"tnz\",\n      \"tny\",\n      \"tog\",\n      \"xgf\",\n      \"tjn\",\n      \"tnw\",\n      \"txs\",\n      \"toz\",\n      \"ttj\",\n      \"toq\",\n      \"toy\",\n      \"ttu\",\n      \"trz\",\n      \"trj\",\n      \"fit\",\n      \"tdv\",\n      \"tqr\",\n      \"dtt\",\n      \"tno\",\n      \"tei\",\n      \"als\",\n      \"ttl\",\n      \"txo\",\n      \"txe\",\n      \"ttk\",\n      \"zph\",\n      \"tqu\",\n      \"neb\",\n      \"don\",\n      \"ttn\",\n      \"xtg\",\n      \"trl\",\n      \"rmg\",\n      \"rmd\",\n      \"trm\",\n      \"tme\",\n      \"stg\",\n      \"tip\",\n      \"trx\",\n      \"tgq\",\n      \"trn\",\n      \"trf\",\n      \"lst\",\n      \"tka\",\n      \"tsa\",\n      \"tsd\",\n      \"kvz\",\n      \"tsb\",\n      \"tsk\",\n      \"txc\",\n      \"kdl\",\n      \"xmw\",\n      \"tsw\",\n      \"hio\",\n      \"ldp\",\n      \"lto\",\n      \"fly\",\n      \"ttz\",\n      \"tsl\",\n      \"tvd\",\n      \"tsh\",\n      \"two\",\n      \"tsc\",\n      \"nrt\",\n      \"tuy\",\n      \"tuj\",\n      \"khc\",\n      \"bhq\",\n      \"tkf\",\n      \"tkd\",\n      \"tul\",\n      \"tlu\",\n      \"tey\",\n      \"rak\",\n      \"krt\",\n      \"iou\",\n      \"tum\",\n      \"kku\",\n      \"xtq\",\n      \"tbr\",\n      \"enh\",\n      \"trt\",\n      \"tse\",\n      \"tug\",\n      \"tjg\",\n      \"tqq\",\n      \"dza\",\n      \"ttf\",\n      \"tpr\",\n      \"tpw\",\n      \"trh\",\n      \"trd\",\n      \"twt\",\n      \"tuz\",\n      \"tch\",\n      \"tru\",\n      \"try\",\n      \"tqm\",\n      \"ttg\",\n      \"tmi\",\n      \"mtu\",\n      \"tww\",\n      \"ifk\",\n      \"bov\",\n      \"tud\",\n      \"tux\",\n      \"xjb\",\n      \"twn\",\n      \"uam\",\n      \"ksj\",\n      \"byc\",\n      \"uba\",\n      \"ubi\",\n      \"ubr\",\n      \"cpb\",\n      \"uda\",\n      \"udu\",\n      \"ufi\",\n      \"uga\",\n      \"uge\",\n      \"ugo\",\n      \"uha\",\n      \"uis\",\n      \"udj\",\n      \"kcf\",\n      \"ukh\",\n      \"umi\",\n      \"ukp\",\n      \"akd\",\n      \"ukl\",\n      \"uku\",\n      \"ukg\",\n      \"ukq\",\n      \"ukw\",\n      \"svb\",\n      \"ull\",\n      \"ulb\",\n      \"ulm\",\n      \"ulw\",\n      \"ulu\",\n      \"xky\",\n      \"gdn\",\n      \"umd\",\n      \"xum\",\n      \"umr\",\n      \"umg\",\n      \"upi\",\n      \"sju\",\n      \"due\",\n      \"umm\",\n      \"umo\",\n      \"unz\",\n      \"bbn\",\n      \"une\",\n      \"xgu\",\n      \"uni\",\n      \"uln\",\n      \"onu\",\n      \"unu\",\n      \"tov\",\n      \"tku\",\n      \"sxu\",\n      \"tth\",\n      \"dmg\",\n      \"dna\",\n      \"xup\",\n      \"tau\",\n      \"url\",\n      \"urm\",\n      \"uro\",\n      \"xur\",\n      \"urg\",\n      \"uvh\",\n      \"urx\",\n      \"urc\",\n      \"urv\",\n      \"urn\",\n      \"urz\",\n      \"ugy\",\n      \"uru\",\n      \"urp\",\n      \"usk\",\n      \"ush\",\n      \"ulf\",\n      \"usp\",\n      \"usi\",\n      \"omo\",\n      \"wsg\",\n      \"utu\",\n      \"uuu\",\n      \"evh\",\n      \"usu\",\n      \"auz\",\n      \"eze\",\n      \"vaa\",\n      \"kqu\",\n      \"vgr\",\n      \"dkg\",\n      \"tva\",\n      \"vap\",\n      \"vae\",\n      \"vsv\",\n      \"vmv\",\n      \"cvn\",\n      \"vlp\",\n      \"mkt\",\n      \"mlr\",\n      \"mpr\",\n      \"vnk\",\n      \"vau\",\n      \"vao\",\n      \"vah\",\n      \"vrs\",\n      \"vav\",\n      \"vaj\",\n      \"val\",\n      \"vem\",\n      \"vsl\",\n      \"xve\",\n      \"vec\",\n      \"veo\",\n      \"vra\",\n      \"vid\",\n      \"vig\",\n      \"vil\",\n      \"dyg\",\n      \"svc\",\n      \"vin\",\n      \"vic\",\n      \"vis\",\n      \"vit\",\n      \"vto\",\n      \"vls\",\n      \"vol\",\n      \"kch\",\n      \"vor\",\n      \"vum\",\n      \"vnp\",\n      \"vun\",\n      \"msn\",\n      \"vut\",\n      \"wbi\",\n      \"wmn\",\n      \"wab\",\n      \"wbb\",\n      \"kmx\",\n      \"wci\",\n      \"wdg\",\n      \"wbq\",\n      \"kxp\",\n      \"wdu\",\n      \"wag\",\n      \"wrx\",\n      \"waj\",\n      \"wga\",\n      \"wgb\",\n      \"wbr\",\n      \"fad\",\n      \"whk\",\n      \"wgo\",\n      \"wlr\",\n      \"wlk\",\n      \"wmh\",\n      \"atr\",\n      \"wli\",\n      \"wja\",\n      \"wav\",\n      \"wwb\",\n      \"wkd\",\n      \"waf\",\n      \"lgl\",\n      \"wlw\",\n      \"wly\",\n      \"wll\",\n      \"wlx\",\n      \"waa\",\n      \"wln\",\n      \"wae\",\n      \"ola\",\n      \"wmc\",\n      \"wmi\",\n      \"lbq\",\n      \"waz\",\n      \"qyp\",\n      \"wnp\",\n      \"wnb\",\n      \"nnp\",\n      \"wbh\",\n      \"wdd\",\n      \"wad\",\n      \"mfi\",\n      \"wne\",\n      \"hwa\",\n      \"wnm\",\n      \"lwg\",\n      \"wng\",\n      \"jub\",\n      \"wno\",\n      \"wnk\",\n      \"wny\",\n      \"juk\",\n      \"juw\",\n      \"wbf\",\n      \"tci\",\n      \"srv\",\n      \"bpe\",\n      \"wre\",\n      \"wai\",\n      \"wri\",\n      \"wbe\",\n      \"aml\",\n      \"wji\",\n      \"bgv\",\n      \"wrl\",\n      \"wrn\",\n      \"wru\",\n      \"wrv\",\n      \"wss\",\n      \"gsp\",\n      \"wsu\",\n      \"wtk\",\n      \"wah\",\n      \"wuy\",\n      \"www\",\n      \"wow\",\n      \"wxa\",\n      \"ctt\",\n      \"wyr\",\n      \"weh\",\n      \"wew\",\n      \"wlh\",\n      \"klh\",\n      \"wei\",\n      \"gxx\",\n      \"ywl\",\n      \"hmw\",\n      \"ojw\",\n      \"tqt\",\n      \"yih\",\n      \"pnb\",\n      \"lcp\",\n      \"kuf\",\n      \"mut\",\n      \"kyu\",\n      \"tdg\",\n      \"wmg\",\n      \"raf\",\n      \"mmr\",\n      \"lia\",\n      \"xwl\",\n      \"bbp\",\n      \"ssl\",\n      \"krw\",\n      \"nnd\",\n      \"uve\",\n      \"mss\",\n      \"lmj\",\n      \"drn\",\n      \"suc\",\n      \"twb\",\n      \"pne\",\n      \"zbw\",\n      \"dnw\",\n      \"nhw\",\n      \"pua\",\n      \"gnw\",\n      \"jmx\",\n      \"tnb\",\n      \"amw\",\n      \"azn\",\n      \"wwo\",\n      \"wea\",\n      \"wec\",\n      \"woy\",\n      \"lwh\",\n      \"giw\",\n      \"tnp\",\n      \"tua\",\n      \"mtp\",\n      \"wlv\",\n      \"wik\",\n      \"wie\",\n      \"wij\",\n      \"wif\",\n      \"wih\",\n      \"wua\",\n      \"wil\",\n      \"wit\",\n      \"gdr\",\n      \"wrh\",\n      \"wir\",\n      \"wiu\",\n      \"xwc\",\n      \"woc\",\n      \"wbw\",\n      \"wyi\",\n      \"jod\",\n      \"wod\",\n      \"wle\",\n      \"wom\",\n      \"wmo\",\n      \"won\",\n      \"cwd\",\n      \"kda\",\n      \"wor\",\n      \"jud\",\n      \"wsv\",\n      \"wtw\",\n      \"wud\",\n      \"qgu\",\n      \"wlu\",\n      \"wux\",\n      \"bqm\",\n      \"wum\",\n      \"ywu\",\n      \"bwn\",\n      \"wub\",\n      \"wur\",\n      \"yig\",\n      \"bse\",\n      \"wsi\",\n      \"wuh\",\n      \"wut\",\n      \"wuv\",\n      \"wym\",\n      \"zax\",\n      \"xkr\",\n      \"xan\",\n      \"ztg\",\n      \"axx\",\n      \"xeg\",\n      \"xet\",\n      \"hsn\",\n      \"sjo\",\n      \"asn\",\n      \"xiy\",\n      \"xip\",\n      \"xii\",\n      \"xoo\",\n      \"xwe\",\n      \"tyy\",\n      \"muu\",\n      \"yar\",\n      \"ybn\",\n      \"ybm\",\n      \"ybo\",\n      \"ekr\",\n      \"rys\",\n      \"wfg\",\n      \"ygm\",\n      \"ygw\",\n      \"rhp\",\n      \"ner\",\n      \"ynu\",\n      \"iyx\",\n      \"ykk\",\n      \"ybh\",\n      \"xyl\",\n      \"yba\",\n      \"jal\",\n      \"zpu\",\n      \"yal\",\n      \"ymp\",\n      \"yat\",\n      \"ymb\",\n      \"yme\",\n      \"ymn\",\n      \"qur\",\n      \"yda\",\n      \"dym\",\n      \"xyb\",\n      \"zyg\",\n      \"jng\",\n      \"yng\",\n      \"bsx\",\n      \"yav\",\n      \"ygl\",\n      \"ymo\",\n      \"yde\",\n      \"ynl\",\n      \"tjj\",\n      \"ysm\",\n      \"jay\",\n      \"guu\",\n      \"asy\",\n      \"yre\",\n      \"yev\",\n      \"yrw\",\n      \"zae\",\n      \"yro\",\n      \"yko\",\n      \"zty\",\n      \"yla\",\n      \"yuw\",\n      \"jau\",\n      \"yyu\",\n      \"zpb\",\n      \"qux\",\n      \"yvt\",\n      \"yww\",\n      \"ywn\",\n      \"yaw\",\n      \"yby\",\n      \"ybx\",\n      \"ykr\",\n      \"yel\",\n      \"ylg\",\n      \"ynq\",\n      \"yec\",\n      \"yei\",\n      \"yra\",\n      \"gop\",\n      \"yrn\",\n      \"yeu\",\n      \"yes\",\n      \"yet\",\n      \"yej\",\n      \"ydg\",\n      \"yim\",\n      \"kvu\",\n      \"yin\",\n      \"yil\",\n      \"ywg\",\n      \"kvy\",\n      \"yxm\",\n      \"ljw\",\n      \"yiy\",\n      \"yis\",\n      \"gek\",\n      \"yob\",\n      \"gud\",\n      \"yog\",\n      \"ydk\",\n      \"yki\",\n      \"ygs\",\n      \"xty\",\n      \"pil\",\n      \"yoi\",\n      \"sxk\",\n      \"nru\",\n      \"zyn\",\n      \"zyb\",\n      \"yno\",\n      \"yon\",\n      \"yut\",\n      \"mts\",\n      \"yox\",\n      \"yot\",\n      \"zyj\",\n      \"ytw\",\n      \"yoy\",\n      \"nua\",\n      \"msd\",\n      \"mvg\",\n      \"yub\",\n      \"ysl\",\n      \"ygu\",\n      \"yab\",\n      \"omk\",\n      \"ybl\",\n      \"yuq\",\n      \"ljx\",\n      \"mab\",\n      \"yau\",\n      \"ztx\",\n      \"kji\",\n      \"nhi\",\n      \"ctz\",\n      \"atb\",\n      \"zkr\",\n      \"zsl\",\n      \"zak\",\n      \"zau\",\n      \"zna\",\n      \"zah\",\n      \"zpw\",\n      \"zaj\",\n      \"zbu\",\n      \"zaz\",\n      \"zal\",\n      \"kxk\",\n      \"zwa\",\n      \"jaj\",\n      \"zua\",\n      \"dhm\",\n      \"zeg\",\n      \"czn\",\n      \"zhb\",\n      \"xzh\",\n      \"zhi\",\n      \"zhw\",\n      \"zia\",\n      \"zil\",\n      \"ziw\",\n      \"zib\",\n      \"zmb\",\n      \"zin\",\n      \"sih\",\n      \"zrn\",\n      \"ziz\",\n      \"pto\",\n      \"yzk\",\n      \"gbz\",\n      \"czt\",\n      \"zom\",\n      \"zla\",\n      \"gnd\",\n      \"zuy\",\n      \"jmb\",\n      \"zzj\",\n      \"zyp\",\n      \"%langnamescode\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/langnames#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/langsci-affiliations.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ResolveAffiliations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResolveAffiliations{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"ResolveAffiliations\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ResolveAffiliations[${2:options%keyvals}]{${1:author}}\",\n        \"keys\": [\n          \"\\\\ResolveAffiliations,\\\\CountAuthorsFromAffiliations,\\\\SetupAffiliations\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LinkToORCIDinAffiliations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LinkToORCIDinAffiliations{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CountAuthorsFromAffiliations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CountAuthorsFromAffiliations{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"CountAuthorsFromAffiliations\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CountAuthorsFromAffiliations[${2:options%keyvals}]{${1:author}}\",\n        \"keys\": [\n          \"\\\\ResolveAffiliations,\\\\CountAuthorsFromAffiliations,\\\\SetupAffiliations\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetupAffiliations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetupAffiliations{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ResolveAffiliations,\\\\CountAuthorsFromAffiliations,\\\\SetupAffiliations\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ResolveAffiliations,\\\\CountAuthorsFromAffiliations,\\\\SetupAffiliations\": [\n      \"mark style=${1|alphabetic,numeric,circled,none|}\",\n      \"output affiliation\",\n      \"orcid placement=\",\n      \"output in groups\",\n      \"separator between two=${1:separator}\",\n      \"separator between multiple=${1:separator}\",\n      \"separator between final two=${1:separator}\",\n      \"separator between indices=${1:separator}\",\n      \"separator between affiliations=${1:separator}\",\n      \"output authors font=${1:font commands}\",\n      \"output affiliation font=${1:font commands}\",\n      \"input names separator=${1:separator}\",\n      \"input affiliation separator=${1:separator}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langsci-avm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\",\n      \"if\": \"lfg\"\n    },\n    {\n      \"name\": \"unicode-math\",\n      \"if\": \"lfg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"avm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avm{${1:structure}}\"\n      }\n    },\n    {\n      \"name\": \"avm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avm[${2:options%keyvals}]{${1:structure}}\",\n        \"keys\": [\n          \"\\\\avm,\\\\avmsetup,\\\\avmdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lframe\"\n    },\n    {\n      \"name\": \"rframe\"\n    },\n    {\n      \"name\": \"tag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"type*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"id\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"id{${1:id}}{${2:structure}}\"\n      }\n    },\n    {\n      \"name\": \"punk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"punk{${1:attribute}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"shuffle\",\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"avmsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avmsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\avm,\\\\avmsetup,\\\\avmdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"avmdefinestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"avmdefinestyle{${1:name}}{${2:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\avm,\\\\avmsetup,\\\\avmdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"avmdefinecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"avmdefinecommand{${1:name}}{${2:settings%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"avmdefinecommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"avmdefinecommand{${1:name}}[${3:label}]{${2:settings%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/langsci-avm#c\": [\n      \"tikz\",\n      \"lfg\"\n    ],\n    \"\\\\avm,\\\\avmsetup,\\\\avmdefinestyle\": [\n      \"pic\",\n      \"picname=${1:name}\",\n      \"framewidth=\",\n      \"framesep=\",\n      \"id align=${1:token}\",\n      \"id position=${1|south-west,south-east|}\",\n      \"style=${1:name}\",\n      \"align\",\n      \"stretch=${1:factor}\",\n      \"columnsep=\",\n      \"vectorsep=\",\n      \"delimfactor=${1:factor}\",\n      \"delimfall=\",\n      \"extraskip=\",\n      \"attributes=${1:font settings}\",\n      \"values=${1:font settings}\",\n      \"types=${1:font settings}\",\n      \"tags=${1:format settings}\",\n      \"switch=${1:token}\",\n      \"customise=${1:settings}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/langsci-avm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/langsci-bidi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TeXXeTOn\"\n    },\n    {\n      \"name\": \"TeXXeTOff\"\n    },\n    {\n      \"name\": \"RL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langsci-gb4e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ea[${2:judgment}]{${1:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"z\"\n    },\n    {\n      \"name\": \"ex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ex[${2:judgment}]{${1:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exi\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exi{${1:identifier}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"exr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exr{${1:label}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exp{${1:label}}[${3:judgment}]{${2:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"xref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xxref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xxref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"sn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sn[${2:judgment}]{${1:example%text}}\"\n      }\n    },\n    {\n      \"name\": \"exewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exewidth{${1:labeltext}}\"\n      }\n    },\n    {\n      \"name\": \"eanoraggedright\"\n    },\n    {\n      \"name\": \"ealnoraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gll\"\n    },\n    {\n      \"name\": \"glt\"\n    },\n    {\n      \"name\": \"glll\"\n    },\n    {\n      \"name\": \"gllll\"\n    },\n    {\n      \"name\": \"glllll\"\n    },\n    {\n      \"name\": \"gllllll\"\n    },\n    {\n      \"name\": \"glllllll\"\n    },\n    {\n      \"name\": \"gllllllll\"\n    },\n    {\n      \"name\": \"exfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exnrfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnexfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnglossfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fntransfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnexnrfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nogltOffset\"\n    },\n    {\n      \"name\": \"resetgltOffset\"\n    },\n    {\n      \"name\": \"jambox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jambox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jambox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jambox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jambox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jambox*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jamwidth\"\n    },\n    {\n      \"name\": \"atcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atcenter{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"attop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attop{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"donewords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordsix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eachwordtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eafirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplesitalics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplesroman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footexindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourdigitexamples\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gblabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gblabelsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"getwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gltoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"judgewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"judgewidth{${1:judgment}}\"\n      }\n    },\n    {\n      \"name\": \"lastword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lastword{${1:each}}{${2:line box}}{${3:word box}}\"\n      }\n    },\n    {\n      \"name\": \"more\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobreakbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nosinglegloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlegloss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subexsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subexsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"thexnumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexnumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threedigitexamples\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trans\"\n    },\n    {\n      \"name\": \"twodigitexamples\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xbox{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zllast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zs\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exe\"\n    },\n    {\n      \"name\": \"exe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"xlist\"\n    },\n    {\n      \"name\": \"xlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:string}]\"\n      }\n    },\n    {\n      \"name\": \"qlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlistA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlistabr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlistI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlistn\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/langsci-gb4e#c\": [\n      \"nocgloss\",\n      \"nojambox\",\n      \"lowerpenalty\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/langsci-gb4e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/langsci-lgr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"F\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"M\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"P\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"S\",\n      \"if\": \"danger\"\n    },\n    {\n      \"name\": \"ABL\"\n    },\n    {\n      \"name\": \"ABS\"\n    },\n    {\n      \"name\": \"ACC\"\n    },\n    {\n      \"name\": \"ADJ\"\n    },\n    {\n      \"name\": \"ADV\"\n    },\n    {\n      \"name\": \"AGR\"\n    },\n    {\n      \"name\": \"ALL\"\n    },\n    {\n      \"name\": \"ANTIP\"\n    },\n    {\n      \"name\": \"APPL\"\n    },\n    {\n      \"name\": \"ART\"\n    },\n    {\n      \"name\": \"AUX\"\n    },\n    {\n      \"name\": \"BEN\"\n    },\n    {\n      \"name\": \"CAUS\"\n    },\n    {\n      \"name\": \"CLF\"\n    },\n    {\n      \"name\": \"COM\"\n    },\n    {\n      \"name\": \"COMP\"\n    },\n    {\n      \"name\": \"COMPL\"\n    },\n    {\n      \"name\": \"COND\"\n    },\n    {\n      \"name\": \"COP\"\n    },\n    {\n      \"name\": \"CVB\"\n    },\n    {\n      \"name\": \"DAT\"\n    },\n    {\n      \"name\": \"DECL\"\n    },\n    {\n      \"name\": \"DEM\"\n    },\n    {\n      \"name\": \"DEF\"\n    },\n    {\n      \"name\": \"DET\"\n    },\n    {\n      \"name\": \"DIST\"\n    },\n    {\n      \"name\": \"DISTR\"\n    },\n    {\n      \"name\": \"DU\"\n    },\n    {\n      \"name\": \"DUR\"\n    },\n    {\n      \"name\": \"ERG\"\n    },\n    {\n      \"name\": \"EXCL\"\n    },\n    {\n      \"name\": \"FOC\"\n    },\n    {\n      \"name\": \"FUT\"\n    },\n    {\n      \"name\": \"GEN\"\n    },\n    {\n      \"name\": \"IMP\"\n    },\n    {\n      \"name\": \"INCL\"\n    },\n    {\n      \"name\": \"IND\"\n    },\n    {\n      \"name\": \"INDF\"\n    },\n    {\n      \"name\": \"INF\"\n    },\n    {\n      \"name\": \"INS\"\n    },\n    {\n      \"name\": \"INTR\"\n    },\n    {\n      \"name\": \"IPFV\"\n    },\n    {\n      \"name\": \"IRR\"\n    },\n    {\n      \"name\": \"LOC\"\n    },\n    {\n      \"name\": \"NEG\"\n    },\n    {\n      \"name\": \"NMLZ\"\n    },\n    {\n      \"name\": \"NOM\"\n    },\n    {\n      \"name\": \"OBJ\"\n    },\n    {\n      \"name\": \"OBL\"\n    },\n    {\n      \"name\": \"PASS\"\n    },\n    {\n      \"name\": \"PFV\"\n    },\n    {\n      \"name\": \"PL\"\n    },\n    {\n      \"name\": \"POSS\"\n    },\n    {\n      \"name\": \"PRED\"\n    },\n    {\n      \"name\": \"PRF\"\n    },\n    {\n      \"name\": \"PRS\"\n    },\n    {\n      \"name\": \"PROG\"\n    },\n    {\n      \"name\": \"PROH\"\n    },\n    {\n      \"name\": \"PROX\"\n    },\n    {\n      \"name\": \"PST\"\n    },\n    {\n      \"name\": \"PTCP\"\n    },\n    {\n      \"name\": \"PURP\"\n    },\n    {\n      \"name\": \"QUOT\"\n    },\n    {\n      \"name\": \"RECP\"\n    },\n    {\n      \"name\": \"REFL\"\n    },\n    {\n      \"name\": \"REL\"\n    },\n    {\n      \"name\": \"RES\"\n    },\n    {\n      \"name\": \"SBJ\"\n    },\n    {\n      \"name\": \"SBJV\"\n    },\n    {\n      \"name\": \"SG\"\n    },\n    {\n      \"name\": \"TOP\"\n    },\n    {\n      \"name\": \"TR\"\n    },\n    {\n      \"name\": \"VOC\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/langsci-lgr#c\": [\n      \"danger\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/langsci-lgr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/langsci-optional.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"todonotes\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oneline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oneline{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"centerfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerfit{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"intline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intline{${1:width}}{${2:raise%l}}\"\n      }\n    },\n    {\n      \"name\": \"dline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dline{${1:y}}{${2:xslope}}{${3:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rotheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotatehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatehead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rotatehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rotatehead[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"langinfo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"langinfo{${1:entry}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"langinfoverb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"langinfoverb{${1:entry}}{${2:text1}}{${3:text2}}\"\n      }\n    },\n    {\n      \"name\": \"fitpagewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitpagewidth{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"fittable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fittable{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"aeiou\"\n    },\n    {\n      \"name\": \"aeiouEO\"\n    },\n    {\n      \"name\": \"fulllength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ulp{${1:text}}{${2:extra length}}\"\n      }\n    },\n    {\n      \"name\": \"ule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ule{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fullllength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"soutp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"soutp{${1:text}}{${2:extra length}}\"\n      }\n    },\n    {\n      \"name\": \"soute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soute{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"longrule\"\n    },\n    {\n      \"name\": \"shadecell\"\n    },\n    {\n      \"name\": \"eabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eabox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"eabox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eabox[${2:vspace%l}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"exbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"exbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exbox[${2:vspace%l}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rephrase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rephrase{${1:replaced text%plain}}{${2:new text%text}}\"\n      }\n    },\n    {\n      \"name\": \"missref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missref{${1:reference%text}}\"\n      }\n    },\n    {\n      \"name\": \"missref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missref[${2:options%keyvals}]{${1:reference%text}}\",\n        \"keys\": [\n          \"\\\\missref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phonrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phonrule{${1:left}}{${2:right}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"featurebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"featurebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"connect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"connect{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectTail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConnectTail{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectTail\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ConnectTail{${1:text%plain}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConnectHead{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ConnectHead{${1:text%plain}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConnectHead[${2:dist%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ConnectHead[${2:dist%l}]{${1:text%plain}}[${3:counter}]\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ConnectHead*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ConnectHead*{${1:text%plain}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ConnectHead*[${2:dist%l}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectHead*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ConnectHead*[${2:dist%l}]{${1:text%plain}}[${3:counter}]\"\n      }\n    },\n    {\n      \"name\": \"noabstract\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LSfrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LSfrac{${1:n/m}}\"\n      }\n    },\n    {\n      \"name\": \"hitie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hitie{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hitier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hitier{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hitier\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hitier[${3:right}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hitiel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hitiel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hitiel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hitiel[${3:left}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"prmbrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primebars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obar{${1:arg}}\"\n      },\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"mbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ibar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ibar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iibar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iibar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"spec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"langscicheckmark\"\n    },\n    {\n      \"name\": \"langscicross\"\n    },\n    {\n      \"name\": \"citegen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citegen{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citegen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citegen[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeapo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeapo{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeapo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeapo[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"protectedex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"protectedex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"largerpage\"\n    },\n    {\n      \"name\": \"largerpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"largerpage[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tablevspace\"\n    },\n    {\n      \"name\": \"biberror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biberror{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsptoprule\"\n    },\n    {\n      \"name\": \"lspbottomrule\"\n    },\n    {\n      \"name\": \"REF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ob\"\n    },\n    {\n      \"name\": \"cb\"\n    },\n    {\n      \"name\": \"op\"\n    },\n    {\n      \"name\": \"cp\"\n    },\n    {\n      \"name\": \"db\"\n    },\n    {\n      \"name\": \"AffiliationsWithoutIndexing\"\n    },\n    {\n      \"name\": \"AffiliationsWithIndexing\"\n    },\n    {\n      \"name\": \"licencebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"licencebox{${1:factor}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fitverb\"\n    },\n    {\n      \"name\": \"widetabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"widetabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width factor}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"indentquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\missref\": [\n      \"disable\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"textcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"shadow\",\n      \"noshadow\",\n      \"tickmarkheight=\",\n      \"line\",\n      \"noline\",\n      \"inline\",\n      \"noinline\",\n      \"size=${1:fontsize command}\",\n      \"list\",\n      \"nolist\",\n      \"caption={${1:text}}\",\n      \"prepend\",\n      \"noprepend\",\n      \"fancyline\",\n      \"author=${1:author}\",\n      \"inlinewidth=\",\n      \"inlinepar\",\n      \"noinlinepar\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langsci-subparts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subpart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subpart*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subpart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subpart[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subpartname\"\n    },\n    {\n      \"name\": \"subpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subpart{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"thesubpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subpartname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/langsci-tbls.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"mdframed\",\n      \"if\": \"mdframed\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"langscisymbol\",\n      \"if\": \"mdframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trennlinie\",\n      \"if\": \"mdframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblsboxcolor\",\n      \"if\": \"mdframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblslinecolour\",\n      \"if\": \"mdframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblsfillcolour\",\n      \"if\": \"mdframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblssy\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tblssy{${1:symbol}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblssy\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tblssy[${4:color}]{${1:symbol}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsli\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tblsli{${1:linewidth%l}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsli\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tblsli[${4:color}]{${1:linewidth%l}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfi\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblsfi{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfi\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tblsfi[${3:color}]{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfr\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tblsfr{${1:symbol}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfr\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tblsfr[${4:color}]{${1:symbol}}{${2:title%text}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfd\",\n      \"if\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tblsfd{${1:color}}{${2:linewidth%l}}{${3:title%text}}{${4:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tblslineshorizontal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tblslineshorizontal\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:width}]\"\n      }\n    },\n    {\n      \"name\": \"tblslineshorizontal\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title%text}}[${2:width}][${3:color}]\"\n      }\n    },\n    {\n      \"name\": \"tblsfilled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfilled\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"tblsframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tblsframed\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:title%text}}[${2:width}]\"\n      }\n    },\n    {\n      \"name\": \"tblsframed\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:title%text}}[${2:width}][${3:color}]\"\n      }\n    },\n    {\n      \"name\": \"tblsfilledsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"tblsfilledsymbol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:title%text}}[${3:color}]{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"tblsframedsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"tblsframedsymbol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:title%text}}[${3:color}]{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"tblsframedsymbol\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"{${1:title%text}}[${3:color}][${4:width}]{${2:PDF file%file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/langsci-tbls#c\": [\n      \"mdframed\",\n      \"tcolorbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/langsci-tbls#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lapdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Abs\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Abs(${1:num})\"\n      }\n    },\n    {\n      \"name\": \"Acos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Acos(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Acosh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Acosh(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Add\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Add(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Affine\"\n    },\n    {\n      \"name\": \"Arc\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Arc(${1:n})(${2:x},${3:y})(${4:direction},${5:angle})(${6:radius})\"\n      }\n    },\n    {\n      \"name\": \"Arcto\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Arcto(${1:n})(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:radius})\"\n      }\n    },\n    {\n      \"name\": \"Asin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Asin(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Asinh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Asinh(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Atan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Atan(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Atanh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Atanh(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Bezier\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Bezier(${1:val1},${2:val2},${3:val3},${4:val4},${5:val5},${6:val6})\"\n      }\n    },\n    {\n      \"name\": \"Black\"\n    },\n    {\n      \"name\": \"Blue\"\n    },\n    {\n      \"name\": \"Circle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Circle(${1:n})(${2:x},${3:y},${4:radius})\"\n      }\n    },\n    {\n      \"name\": \"Closepath\"\n    },\n    {\n      \"name\": \"Colval\"\n    },\n    {\n      \"name\": \"Concat\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Concat(${1:val1},${2:val2},${3:val3},${4:val4},${5:val5},${6:val6})\"\n      }\n    },\n    {\n      \"name\": \"Cos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Cos(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Cosh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Cosh(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Crnd\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Crnd(${1:num})\"\n      }\n    },\n    {\n      \"name\": \"Cyan\"\n    },\n    {\n      \"name\": \"Dabs\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dabs(${1:dimen})\"\n      }\n    },\n    {\n      \"name\": \"Dadd\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dadd(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Dash\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dash(${1:n})\"\n      }\n    },\n    {\n      \"name\": \"Dblue\"\n    },\n    {\n      \"name\": \"Dcyan\"\n    },\n    {\n      \"name\": \"Ddiv\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Ddiv(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Defdim\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Defdim(${1:cmd},${2:val%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Defnum\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Defnum(${1:cmd},${2:val%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Deg\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Deg(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Df\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Df(${1:x},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dgray\"\n    },\n    {\n      \"name\": \"Dgreen\"\n    },\n    {\n      \"name\": \"Dint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dint(${1:dimen})\"\n      }\n    },\n    {\n      \"name\": \"Direc\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Direc(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:cmd})\"\n      }\n    },\n    {\n      \"name\": \"Div\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Div(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Dmagenta\"\n    },\n    {\n      \"name\": \"Dmod\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dmod(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Dmul\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dmul(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Dpoly\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dpoly(${1:x},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dpx\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dpx(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dpy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dpy(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dred\"\n    },\n    {\n      \"name\": \"Dset\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dset(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dsig\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dsig(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Dsub\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dsub(${1:dimen1},${2:dimen2})\"\n      }\n    },\n    {\n      \"name\": \"Dtp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dtp(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dtt\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dtt(${1:t},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dtx\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dtx(${1:t},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Dty(${1:t},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Dyellow\"\n    },\n    {\n      \"name\": \"Ellipse\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Ellipse(${1:n})(${2:x},${3:y})(${4:a},${5:b},${6:angle})\"\n      }\n    },\n    {\n      \"name\": \"Epolygon\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Epolygon(${1:n})(${2:x},${3:y})(${4:radius},${5:angle})\"\n      }\n    },\n    {\n      \"name\": \"Euclid\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Euclid(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"Exp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Exp(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Fill\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Fill(${1:r},${2:g},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"Fplot\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Fplot(${1:n})(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"Fpoly\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Fpoly(${1:x},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Gfill\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Gfill(${1:gray val})\"\n      }\n    },\n    {\n      \"name\": \"Gray\"\n    },\n    {\n      \"name\": \"Green\"\n    },\n    {\n      \"name\": \"Grestore\"\n    },\n    {\n      \"name\": \"Gsave\"\n    },\n    {\n      \"name\": \"Homogen\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Homogen(${1:px},${2:py},${3:w})\"\n      }\n    },\n    {\n      \"name\": \"Hypot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Hypot(${1:leg1},${2:leg2},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Lapdf\"\n    },\n    {\n      \"name\": \"Len\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Len(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:cmd})\"\n      }\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Line(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"Lineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Lineto(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"Lingrid\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Lingrid(${1:n})(${2:g},${3:a})(${4:xmin},${5:xmax})(${6:ymin},${7:ymax})\"\n      }\n    },\n    {\n      \"name\": \"Ln\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Ln(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Log\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Log(${1:base},${2:num},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Logxgrid\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Logxgrid(${1:n})(${2:g},${3:a})(${4:xmin},${5:xmax})(${6:ymin},${7:ymax})\"\n      }\n    },\n    {\n      \"name\": \"Logxygrid\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Logxygrid(${1:n})(${2:g},${3:a})(${4:xmin},${5:xmax})(${6:ymin},${7:ymax})\"\n      }\n    },\n    {\n      \"name\": \"Logygrid\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Logygrid(${1:n})(${2:g},${3:a})(${4:xmin},${5:xmax})(${6:ymin},${7:ymax})\"\n      }\n    },\n    {\n      \"name\": \"Magenta\"\n    },\n    {\n      \"name\": \"Mod\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Mod(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Moveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Moveto(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"Mul\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Mul(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Nextcol\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Nextcol(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Np\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Np{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"PDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PDF{${1:pdf special}}\"\n      }\n    },\n    {\n      \"name\": \"Point\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Point(${1:gray val})(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"Polgrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Polgrid(${1:g},${2:a})(${3:radius})\"\n      }\n    },\n    {\n      \"name\": \"Polynom\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Polynom(${1:x},${2:y})(${3:a},${4:b},${5:c},${6:d})\"\n      }\n    },\n    {\n      \"name\": \"Pot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Pot(${1:base},${2:power},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Pow\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Pow(${1:base},${2:power},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Pplot\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Pplot(${1:n})(${2:angle1},${3:angle2})\"\n      }\n    },\n    {\n      \"name\": \"Pxy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Pxy(${1:angle},${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"Rad\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Rad(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Rect\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Rect(${1:val1},${2:val2},${3:val3},${4:val4})\"\n      }\n    },\n    {\n      \"name\": \"Rectangle\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Rectangle(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:angle})\"\n      }\n    },\n    {\n      \"name\": \"Red\"\n    },\n    {\n      \"name\": \"Resetcol\"\n    },\n    {\n      \"name\": \"Rmoveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Rmoveto(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"Root\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Root(${1:num},${2:root},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Rotate\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Rotate(${1:angle})\"\n      }\n    },\n    {\n      \"name\": \"Rotpoint\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Rotpoint(${1:angle})(${2:xy},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"Scale\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Scale(${1:val1},${2:val2})\"\n      }\n    },\n    {\n      \"name\": \"Sector\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Sector(${1:n})(${2:x},${3:y})(${4:direction},${5:angle})(${6:radius})\"\n      }\n    },\n    {\n      \"name\": \"Set\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Set(${1:dimen},${2:val})\"\n      }\n    },\n    {\n      \"name\": \"Setcap\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setcap(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Setclip\"\n    },\n    {\n      \"name\": \"Setcol\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setcol(${1:r},${2:g},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"Setdash\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setdash(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Setflat\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setflat(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Setgray\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setgray(${1:gray val})\"\n      }\n    },\n    {\n      \"name\": \"Setjoin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setjoin(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Setmiter\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setmiter(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Setwidth\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Setwidth(${1:value})\"\n      }\n    },\n    {\n      \"name\": \"Sfill\"\n    },\n    {\n      \"name\": \"Sig\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Sig(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Sin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Sin(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Sinh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Sinh(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Sqrt\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Sqrt(${1:num},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Stepcol\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Stepcol(${1:num1},${2:num2},${3:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Stroke\"\n    },\n    {\n      \"name\": \"Sub\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Sub(${1:num1},${2:num2})\"\n      }\n    },\n    {\n      \"name\": \"Tan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Tan(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Tangent\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Tangent(${1:x})(${2:x1},${3:x2})(${4:a},${5:b},${6:c},${7:d})\"\n      }\n    },\n    {\n      \"name\": \"Tanh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Tanh(${1:angle},${2:cmd%cmd})\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Text(${2:x},${3:y},${4:pos}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Thick\"\n    },\n    {\n      \"name\": \"Thin\"\n    },\n    {\n      \"name\": \"Tplot\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Tplot(${1:n})(${2:t1},${3:t2})\"\n      }\n    },\n    {\n      \"name\": \"Translate\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Translate(${1:val1},${2:val2})\"\n      }\n    },\n    {\n      \"name\": \"Triangle\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Triangle(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})(${7:angle})\"\n      }\n    },\n    {\n      \"name\": \"Ul\"\n    },\n    {\n      \"name\": \"Varc\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"Varc(${1:n})(${2:x},${3:y})(${4:direction},${5:angle})(${6:radius})\"\n      }\n    },\n    {\n      \"name\": \"Vect\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Vect(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"Vecto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Vecto(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"Whiledim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Whiledim{${1:dimen condition%definition}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"Whilenum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Whilenum{${1:num condition%definition}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"White\"\n    },\n    {\n      \"name\": \"Yellow\"\n    },\n    {\n      \"name\": \"col\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nP{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"pdfTeX\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lapdf\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pdf\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lapdf#c\": [\n      \"black\",\n      \"color\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lapdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lastbib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"LastBib\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latex-209.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"documentstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"documentstyle[${2:options}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"documentstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"documentstyle{${1:style}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latex-dev.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ActivateGenericHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ActivateGenericHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AddToHook{${1:hook}}[${3:label}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHook{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookNext{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookNextWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookNextWithArguments{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AddToHookWithArguments{${1:hook}}[${3:label}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToHookWithArguments{${1:hook}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToNoCaseChangeList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToNoCaseChangeList{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AfterEndEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AssignSocketPlug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AssignSocketPlug{${1:socket}}{${2:socket plug}}\"\n      }\n    },\n    {\n      \"name\": \"AssignTemplateKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtBeginDocument[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginDvi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginDvi{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AtBeginEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtEndDocument[${2:label}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndDvi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndDvi{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AtEndEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtEndEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfClass{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfPackage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BCPdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BCPdata{${1:keywords}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment[${3:label}]{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeBeginEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeBeginEnvironment{${1:environment}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BooleanFalse\"\n    },\n    {\n      \"name\": \"BooleanTrue\"\n    },\n    {\n      \"name\": \"CaseSwitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaseSwitch{${1:normal%text}}{${2:upper%text}}{${3:lower%text}}{${4:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckEncodingSubset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"CheckEncodingSubset{${1:text cmd}}{${2:encoding}}{${3:error}}{${4:subset id}}{${5:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ClassError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClassError{${1:class name}}{${2:error text}}{${3:help text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassInfo{${1:class name}}{${2:info text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassNote{${1:class name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassNoteNoLine{${1:class name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassWarning{${1:class name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassWarningNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassWarningNoLine{${1:class name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClearHookNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearHookNext{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ClearHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ClearHookRule{${1:hook}}{${2:label1}}{${3:label2}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFilePath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFilePathUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentFileUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugHooksOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugHooksOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugMarksOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugMarksOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugShipoutsOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugShipoutsOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugSocketsOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugSocketsOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugTablesOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DebugTablesOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareCaseChangeEquivalent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaseChangeEquivalent{${1:cmd}}{${2:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCurrentRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCurrentRelease{${1:name}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDefaultHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDefaultHookRule{${1:label1}}{${2:relation}}{${3:label2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEmphSequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareEmphSequence{${1:font cmd list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEncodingSubset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareEncodingSubset{${1:encoding}}{${2:family}}{${3:subset number}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareErrorFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareErrorFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFixedFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareFixedFont{${1:cmd}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}{${6:size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontEncoding{${1:encoding}}{${2:text-settings}}{${3:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontEncodingDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFontEncodingDefaults{${1:text-settings}}{${2:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontFamily{${1:encoding}}{${2:family}}{${3:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontFamilySubstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareFontFamilySubstitution{${1:encoding}}{${2:family1}}{${3:family2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesChangeRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontSeriesChangeRule{${1:series1}}{${2:series2}}{${3:result1}}{${4:result2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareFontSeriesDefault[${3:family}]{${1:face}}{${2:series name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSeriesDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareFontSeriesDefault{${1:face}}{${2:series name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontShapeChangeRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontShapeChangeRule{${1:shape1}}{${2:shape2}}{${3:result1}}{${4:result2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFontSubstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareFontSubstitution{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareHookRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareHookRule{${1:hook}}{${2:label1}}{${3:relation}}{${4:label2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareInstance{${1:type}}{${2:instance}}{${3:template}}{${4:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareInstanceCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareInstanceCopy{${1:type}}{${2:instance2}}{${3:instance1}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareKeys[${2:family}]{${1:declarations}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareKeys{${1:declarations}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareLowercaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLowercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLowercaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathAccent{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathAlphabet{${1:math-alph%cmd}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathDelimiter{${1:cmd}}{${2:type}}{${3:sym-font-1}}{${4:slot-1}}{${5:sym-font-2}}{${6:slot-2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathRadical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareMathRadical{${1:cmd}}{${2:sym-font-1}}{${3:slot-1}}{${4:sym-font-2}}{${5:slot-2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSizes*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSizes*{${1:t-size}}{${2:mt-size}}{${3:s-size}}{${4:ss-size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSizes{${1:t-size}}{${2:mt-size}}{${3:s-size}}{${4:ss-size}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbol{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMathVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOldFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareOldFontCommand{${1:cmd}}{${2:text-switch}}{${3:math-switch}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOption*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareOption*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOption{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePreloadSizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclarePreloadSizes{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:sizes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareRelease{${1:name}}{${2:date}}{${3:file name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSizeFunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSizeFunction{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareSymbolFont{${1:sym-font}}{${2:encoding}}{${3:family}}{${4:series}}{${5:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolFontAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSymbolFontAlphabet{${1:math-alph%cmd}}{${2:sym-font}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareTemplateCode{${1:type}}{${2:template}}{${3:no. of args}}{${4:key bindings}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTemplateCopy{${1:type}}{${2:template2}}{${3:template1}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTemplateInterface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTemplateInterface{${1:type}}{${2:template}}{${3:no. of args}}{${4:key list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextAccent{${1:cmd}}{${2:encoding}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextAccentDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextAccentDefault{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextCommand{${1:cmd}}{${2:encoding}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCommandDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextCommandDefault{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTextComposite{${1:cmd}}{${2:encoding}}{${3:argument}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextCompositeCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTextCompositeCommand{${1:cmd}}{${2:encoding%definition}}{${3:letter%definition}}{${4:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextFontCommand{${1:cmd}}{${2:font-switches%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextSymbol{${1:cmd}}{${2:encoding}}{${3:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextSymbolDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextSymbolDefault{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTitlecaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTitlecaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTitlecaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTitlecaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacter{${1:hexadecimal}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnknownKeyHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareUnknownKeyHandler[${2:family}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnknownKeyHandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareUnknownKeyHandler{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareUppercaseMapping[${3:locale}]{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUppercaseMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUppercaseMapping{${1:codepoint}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"DisableGenericHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableGenericHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DisableHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"DiscardShipoutBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EditInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EditInstance{${1:type}}{${2:instance}}{${3:new values}}\"\n      }\n    },\n    {\n      \"name\": \"EditTemplateDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EditTemplateDefaults{${1:type}}{${2:template}}{${3:new defaults}}\"\n      }\n    },\n    {\n      \"name\": \"EndIncludeInRelease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndModuleRelease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteOptions{${1:optionlist}}\"\n      }\n    },\n    {\n      \"name\": \"ExpandArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExpandArgs{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"ExplSyntaxOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExplSyntaxOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FirstMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FirstMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GenericError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GenericError{${1:continuation}}{${2:message%text}}{${3:help location%text}}{${4:help info%text}}\"\n      }\n    },\n    {\n      \"name\": \"GenericInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GenericInfo{${1:continuation}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"GenericWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GenericWarning{${1:continuation}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBlankF{${1:arg}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBlankT{${1:arg}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBlankTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfBlankTF{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBooleanF{${1:arg}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBooleanT{${1:arg}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfBooleanTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfBooleanTF{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassAtLeastF{${1:class}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassAtLeastT{${1:class}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfClassAtLeastTF{${1:class}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfClassLoadedF{${1:class}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfClassLoadedT{${1:class}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedTF{${1:class}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsF{${1:class}}{${2:options}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsT{${1:class}}{${2:options}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfClassLoadedWithOptionsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfClassLoadedWithOptionsTF{${1:class}}{${2:options}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfExplAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExplAtLeastTF{${1:date}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileAtLeastF{${1:file}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileAtLeastT{${1:file}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfFileAtLeastTF{${1:file}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileExists{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFileLoadedF{${1:file}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFileLoadedT{${1:file}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFileLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFileLoadedTF{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFontSeriesContextTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFontSeriesContextTF{${1:face}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFormatAtLeastF{${1:date}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfFormatAtLeastT{${1:date}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfFormatAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFormatAtLeastTF{${1:date}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfHookEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHookEmptyTF{${1:hook}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsF{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsT{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInstanceExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInstanceExistsTF{${1:type}}{${2:instance}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLabelExistsF{${1:label}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLabelExistsT{${1:label}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLabelExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLabelExistsTF{${1:label}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMarksEqualTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfMarksEqualTF[${6:region}]{${1:class%plain}}{${2:pos1}}{${3:pos2}}{${4:true code}}{${5:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMarksEqualTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfMarksEqualTF{${1:class%plain}}{${2:pos1}}{${3:pos2}}{${4:true code}}{${5:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNoValueF{${1:arg}}{${2:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNoValueT{${1:arg}}{${2:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueTF{${1:arg}}{${2:-NoValue-Code}}{${3:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastF{${1:package}}{${2:date}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastT{${1:package}}{${2:date}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPackageAtLeastTF{${1:package}}{${2:date}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageLoadedF{${1:package}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageLoadedT{${1:package}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedTF{${1:package}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsF{${1:package}}{${2:options}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsT{${1:package}}{${2:options}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoadedWithOptionsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPackageLoadedWithOptionsTF{${1:package}}{${2:options}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPDFManagementActiveTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPDFManagementActiveTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPropertyExistsF{${1:property}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPropertyExistsT{${1:property}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfPropertyExistsTF{${1:property}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPropertyRecordedTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfPropertyRecordedTF{${1:label}}{${2:property}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfTargetDateBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfTargetDateBefore{${1:date}}{${2:before code}}{${3:after code}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfValueF{${1:arg}}{${2:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfValueT{${1:arg}}{${2:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"IfValueTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfValueTF{${1:arg}}{${2:ValueCode}}{${3:-NoValue-Code}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeInRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeInRelease{${1:date}}{${2:command}}{${3:description}}\"\n      }\n    },\n    {\n      \"name\": \"IndentBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InputIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"InputIfFileExists{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"InsertMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertMark{${1:class%plain}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"KeyValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KeyValue{${1:key name}}\"\n      }\n    },\n    {\n      \"name\": \"LastDeclaredEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LastMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LastMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LastMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXReleaseInfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinkTargetOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LinkTargetOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LoadClass[${2:optionlist}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"LoadClass[${2:optionlist}]{${1:class}}[${3:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadClass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LoadClass{${1:class}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadClassWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadClassWithOptions{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"LoadClassWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LoadClassWithOptions{${1:class}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"LoadFontDefinitionFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadFontDefinitionFile{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"LogHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"LogSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLinkTarget*{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeLinkTarget[${2:prefix}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLinkTarget{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeRobust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeRobust{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MessageBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NeedsTeXFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NeedsTeXFormat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"NeedsTeXFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NeedsTeXFormat{${1:format}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"NewCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"NewHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewHookWithArguments{${1:hook}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewMarkClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewMarkClass{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"NewMirroredHookPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMirroredHookPair{${1:hook1}}{${2:hook2}}\"\n      }\n    },\n    {\n      \"name\": \"NewMirroredHookPairWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewMirroredHookPairWithArguments{${1:hook1}}{${2:hook2}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewModuleRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewModuleRelease{${1:date}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"NewProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewProperty{${1:property%specialDef}}{${2:setpoint}}{${3:default}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewReversedHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewReversedHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"NewReversedHookWithArguments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewReversedHookWithArguments{${1:hook}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"NewSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewSocket{${1:socket}}{${2:number of inputs}}\"\n      }\n    },\n    {\n      \"name\": \"NewSocketPlug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewSocketPlug{${1:socket}}{${2:socket plug}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewTemplateType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTemplateType{${1:template type}}{${2:no. of args}}\"\n      }\n    },\n    {\n      \"name\": \"NextLinkTarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextLinkTarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"OmitIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OptionNotUsed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PackageError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PackageError{${1:package name}}{${2:error text%text}}{${3:help text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageInfo{${1:package name}}{${2:info text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageNote{${1:package name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageNoteNoLine{${1:package name}}{${2:note text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageWarning{${1:package name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PackageWarningNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageWarningNoLine{${1:package name}}{${2:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"PassOptionsToClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PassOptionsToClass{${1:optionlist}}{${2:class}}\"\n      }\n    },\n    {\n      \"name\": \"PassOptionsToPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PassOptionsToPackage{${1:optionlist}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"PopDefaultHookLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreviousTotalPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessedArgument\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessKeyOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessKeyOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ProcessKeyOptions[${1:family}]\"\n      }\n    },\n    {\n      \"name\": \"ProcessList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessList{${1:list}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessOptions*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvideDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideMirroredHookPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideMirroredHookPair{${1:hook1}}{${2:hook2}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideReversedHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideReversedHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesClass{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesClass{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesFile{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesFile{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesPackage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ProvidesPackage{${1:name}}[${2:release info}]\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTextCommand{${1:cmd}}{${2:encoding}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTextCommandDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideTextCommandDefault{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"PushDefaultHookLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PushDefaultHookLabel{${1:default label}}\"\n      }\n    },\n    {\n      \"name\": \"RawIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawNoindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawParEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RawShipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ReadonlyShipoutCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RecordProperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RecordProperties{${1:label}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RefProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RefProperty[${3:local default}]{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RefProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RefProperty{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RefUndefinedWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RefUndefinedWarn{${1:label}}{${2:property%keyvals}}\",\n        \"keys\": [\n          \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RemoveFromHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveFromHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveFromHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RemoveFromHook{${1:hook}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"RenewCommandCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewCommandCopy{${1:cmd}}{${2:copied cmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewDocumentEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"RenewEnvironmentCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewEnvironmentCopy{${1:envname}}{${2:copied envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExpandableDocumentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewExpandableDocumentCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RequirePackage[${2:options%keyvals}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"RequirePackage[${2:options%keyvals}]{${1:package}}[${3:release}]\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequirePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequirePackage{${1:package}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"RequirePackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequirePackageWithOptions{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"RequirePackageWithOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequirePackageWithOptions{${1:package}}[${2:release}]\"\n      }\n    },\n    {\n      \"name\": \"ResumeTagging\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResumeTagging{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ReverseBoolean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetDefaultHookLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultHookLabel{${1:default label}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetKeys[${2:family}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetKeys{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetMathAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"SetMathAlphabet{${1:math-alph%cmd}}{${2:version}}{${3:encoding}}{${4:family}}{${5:series}}{${6:shape}}\"\n      }\n    },\n    {\n      \"name\": \"SetProperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetProperty{${1:property}}{${2:setpoint}}{${3:default}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymbolFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"SetSymbolFont{${1:sym-font}}{${2:version}}{${3:encoding}}{${4:family}}{${5:series}}{${6:shape}}\"\n      }\n    },\n    {\n      \"name\": \"SetTemplateKeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetTemplateKeys{${1:type}}{${2:template}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ShipoutBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShipoutBoxWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ShowEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowFloat{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"ShowHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"ShowInstanceValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowInstanceValues{${1:type}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"ShowMarksAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowMarksAt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateCode{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateDefaults{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateInterface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateInterface{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTemplateVariables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ShowTemplateVariables{${1:type}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"SplitArgument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SplitArgument{${1:number}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SplitList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SplitList{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SuspendTagging\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuspendTagging{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"TextSymbolUnavailable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextSymbolUnavailable{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TopMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TopMark[${2:region}]{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TopMark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TopMark{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TrimSpaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UndeclareTextCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UndeclareTextCommand{${1:cmd}}{${2:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"UseHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"UseInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseInstance{${1:type}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"UseLegacyTextSymbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"UseOneTimeHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseOneTimeHook{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"UseRawInputEncoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseSocket{${1:socket name}}\"\n      }\n    },\n    {\n      \"name\": \"UseTaggingSocket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTaggingSocket{${1:socket}}\"\n      }\n    },\n    {\n      \"name\": \"UseTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"UseTemplate{${1:type}}{${2:template}}{${3:settings}}\"\n      }\n    },\n    {\n      \"name\": \"UseTextAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"UseTextAccent{${1:encoding}}{${2:cmd}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"UseTextSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseTextSymbol{${1:encoding}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExplLoaderFileDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesExplFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplFile{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesExplClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplClass{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesExplPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvidesExplPackage{${1:name}}{${2:date}}{${3:version}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DocumentMetadata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocumentMetadata{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DocumentMetadata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfDocumentMetadataTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfDocumentMetadataTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"setcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:\\\\gnat}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"setpapersize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpapersize{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"settodepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settodepth{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"settoheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoheight{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"settowidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settowidth{${1:\\\\gnat}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocontents{${1:ext}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"addtolength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolength{${1:\\\\gnat}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"addvspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"newcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcounter{${1:foo}}\"\n      }\n    },\n    {\n      \"name\": \"newcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newcounter{${1:foo}}[${2:counter}]\"\n      }\n    },\n    {\n      \"name\": \"refstepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"restorecr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversemarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"stretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stretch{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"usecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"usefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usefont{${1:enc}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"value\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"value{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"newfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfont{${1:cmd}}{${2:fontname}}\"\n      }\n    },\n    {\n      \"name\": \"theenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thempfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thempfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetotalpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"savebox{${1:box}}[${3:width}][${4:position}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"savebox{${1:box}}[${3:width}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"savebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savebox{${1:box}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"makebox[${2:width}][${3:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makebox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"usebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebox{${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}[${3:height}][${4:depth}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}[${3:height}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"raisebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"raisebox{${1:raise%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"newsavebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsavebox{${1:box%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"belowcaptionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binoppenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfloatpagefraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbltextfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbltopfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultscriptratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultscriptscriptratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublerulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intextsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelenumiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmargini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparpush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabbingsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovecaptionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselinestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnseprule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evensidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extracolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fboxrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatpagefraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"height\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfabsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfabsnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knaccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knbccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterspacefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokencontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokenname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfadjustinterwordglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfadjustspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfannot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfappendkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcatalog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcatalog{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolorstack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolorstackinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcompresslevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcopyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcreationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdecimaldigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdestmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfdraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfeachlinedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfeachlineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfelapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfendlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfendthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfescapehex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapehex{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfescapename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapename{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfescapestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfescapestring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdffakespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffiledump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffilemoddate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilemoddate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffilesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilesize{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffirstlineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontexpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontobjnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfforcepagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfgentounicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfglyphtounicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfglyphtounicode{${1:glyphname}}{${2:codepoint}}\"\n      }\n    },\n    {\n      \"name\": \"pdfhorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfignoreddimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimageapplygamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimagegamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimagehicolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfimageresolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfincludechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinclusioncopyfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinclusionerrorlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfinfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"pdfinfoomitdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinsertht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinterwordspaceoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfinterwordspaceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastannot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastlinedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastmatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximagecolordepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastximagepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflinkmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfliteral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfliteral{${1:literal}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmajorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmapfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapline{${1:map spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmdfivesum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmovechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnames\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfnames{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfnobuiltintounicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnoligatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfnormaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfobj{${1:object type spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobjcompresslevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitcharset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitinfodict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfomitprocset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageresources\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageresources{${1:resources}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagesattr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpagesattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpkmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpkresolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprependkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfprotrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefobj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrefximage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfresettimer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrunninglinkoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrunninglinkon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsavepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsetmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfsetmatrix{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsetrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfshellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnaprefpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnapy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsnapycomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfspacefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstartlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstartthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstrcmp{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsuppressptexinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningdupdest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningdupmap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsuppresswarningpagegroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexbanner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfthread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfthreadmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftracingfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdftrailer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftrailer{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdftrailerid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftrailerid{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdfunescapehex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfunescapehex{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"pdfuniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfuniqueresname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfvorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfxform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfxformname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfximage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfximage{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfximagebbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quitvmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmarginkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rpcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stbscode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synctex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tagcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingstacklevels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allocationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"counterwithin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithin[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithin*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithin*{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"counterwithout[${3:format}]{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"counterwithout*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"counterwithout*{${1:counter}}{${2:within-counter}}\"\n      }\n    },\n    {\n      \"name\": \"emforce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eminnershape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafloats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrafloats{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"familydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorespacesafterend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loggingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loggingoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathhexbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mddefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakdashes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobreakspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalsfcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"obeyedline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeyedspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poptabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushtabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"requestedLaTeXdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secdef{${1:star cmd}}{${2:unstar cmd}}\"\n      }\n    },\n    {\n      \"name\": \"seriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shapedefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showoverfull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symoperators\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencirc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencircw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenlnw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcompsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextOrMath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TextOrMath{${1:text content}}{${2:math content}}\"\n      }\n    },\n    {\n      \"name\": \"tmspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tmspace{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tracingnone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttsubstdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\RecordProperties#c,\\\\RefProperty#c,\\\\RefUndefinedWarn#c\": [\n      \"abspage\",\n      \"page\",\n      \"pagenum\",\n      \"label\",\n      \"title\",\n      \"target\",\n      \"pagetarget\",\n      \"counter\",\n      \"xpos\",\n      \"ypos\",\n      \"%latexproperties\"\n    ],\n    \"\\\\DocumentMetadata#c\": [\n      \"backend=${1:backend}\",\n      \"pdfversion=${1:version}\",\n      \"uncompress\",\n      \"lang=${1:lang}\",\n      \"pdfstandard=${1|A-1b,A-2a,A-2b,A-2u,A-3a,A-3b,A-3u,A-4|}\",\n      \"colorprofiles={${1:options}}\",\n      \"testphase=${1|phase-I,phase-II,phase-III|}\",\n      \"debug={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latex-document.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"latex-dev\"\n    },\n    {\n      \"name\": \"textcomp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abstractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Alph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"alph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"and\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asciispace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"bezier{${1:n}}(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"bfseries\"\n    },\n    {\n      \"name\": \"bibindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bigg\"\n    },\n    {\n      \"name\": \"Bigg(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg(${1}\\\\Bigg)\"\n      }\n    },\n    {\n      \"name\": \"Bigg[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg[${1}\\\\Bigg]\"\n      }\n    },\n    {\n      \"name\": \"Bigg|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigg|${1}\\\\Bigg|\"\n      }\n    },\n    {\n      \"name\": \"bigg\"\n    },\n    {\n      \"name\": \"bigg(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg(${1}\\\\bigg)\"\n      }\n    },\n    {\n      \"name\": \"bigg[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg[${1}\\\\bigg]\"\n      }\n    },\n    {\n      \"name\": \"bigg|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigg|${1}\\\\bigg|\"\n      }\n    },\n    {\n      \"name\": \"boldmath\"\n    },\n    {\n      \"name\": \"botfigrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"circle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle*{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"columnwidth\"\n    },\n    {\n      \"name\": \"contentsline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"contentsline{${1:type}}{${2:text}}{${3:page}}{${4:Href}}\"\n      }\n    },\n    {\n      \"name\": \"contentsname\"\n    },\n    {\n      \"name\": \"dashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()[]{}\",\n        \"snippet\": \"dashbox{${1:dashlength}}(${4:width},${5:height})[${3:position}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"dashbox{${1:dashlength}}(${3:width},${4:height}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"depth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descriptionlabel{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dimeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dimeval{${1:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"em\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encodingdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enlargethispage*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enlargethispage*{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"enlargethispage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enlargethispage{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"figurename\"\n    },\n    {\n      \"name\": \"flushbottom\"\n    },\n    {\n      \"name\": \"fnsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsymbol{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"fontencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontencoding{${1:enc}}\"\n      }\n    },\n    {\n      \"name\": \"fontfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"fontseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"fontseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"fontshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"fontshapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontshapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"fontsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fontsize{${1:size}}{${2:skip}}\"\n      }\n    },\n    {\n      \"name\": \"fontsubfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fpeval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpeval{${1:fp expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"framebox\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"framebox(${3:xdimen},${4:ydimen})[${2:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"framebox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"framebox(${2:xdimen},${3:ydimen}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frame{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fussy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrule\"\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ij\"\n    },\n    {\n      \"name\": \"IJ\"\n    },\n    {\n      \"name\": \"indexname\"\n    },\n    {\n      \"name\": \"indexspace\"\n    },\n    {\n      \"name\": \"inputencodingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inteval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inteval{${1:int expression}}\"\n      }\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelformat{${1:counter}}{${2:representation}}\"\n      }\n    },\n    {\n      \"name\": \"labelitemfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"language\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXe\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"unusual\": true,\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"lefteqn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefteqn{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"lefthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legacyoldstylenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legacyoldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"line\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"line(${2:xslope},${3:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"linethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linethickness{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"linewidth\"\n    },\n    {\n      \"name\": \"listfigurename\"\n    },\n    {\n      \"name\": \"listfiles\"\n    },\n    {\n      \"name\": \"listfiles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listfiles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listfiles\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtablename\"\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"makebox(${3:width},${4:height})[${2:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"makebox(${2:width},${3:height}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeLowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeLowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeLowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeLowercase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeTitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeTitlecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeTitlecase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MakeUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeUppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeUppercase[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathellipsis\"\n    },\n    {\n      \"name\": \"mathgroup\"\n    },\n    {\n      \"name\": \"mathindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathring{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"mathunderscore\"\n    },\n    {\n      \"name\": \"mathversion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathversion{${1:version%keyvals}}\",\n        \"keys\": [\n          \"\\\\mathversion#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"medspace\"\n    },\n    {\n      \"name\": \"mdseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multiput(${3:xcoord},${4:ycoord})(${5:xdelta},${6:ydelta}){${1:copies}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"negmedspace\"\n    },\n    {\n      \"name\": \"negthickspace\"\n    },\n    {\n      \"name\": \"newblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newlabel{${1:label%plain}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"newlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newlength{${1:newlength%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NoCaseChange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoCaseChange{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nocorr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocorrlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nocorrlist{${1:charlist}}\"\n      }\n    },\n    {\n      \"name\": \"nofiles\"\n    },\n    {\n      \"name\": \"noprotrusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcolor\"\n    },\n    {\n      \"name\": \"normalfont\"\n    },\n    {\n      \"name\": \"normalmarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddsidemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oe\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldstylenums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumn\"\n    },\n    {\n      \"name\": \"oval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"oval(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"oval(${2:width},${3:height})[${1:portion}]\"\n      }\n    },\n    {\n      \"name\": \"pageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}][${5:inner-pos}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"partname\"\n    },\n    {\n      \"name\": \"poptabs\"\n    },\n    {\n      \"name\": \"pounds\"\n    },\n    {\n      \"name\": \"protect\"\n    },\n    {\n      \"name\": \"pushtabs\"\n    },\n    {\n      \"name\": \"put\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"put(${2:xcoord},${3:ycoord}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"qbezier(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"qbezier[${1:n}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"qbeziermax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"r\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"r{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"rbrack\",\n      \"unusual\": true,\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"ref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refname\"\n    },\n    {\n      \"name\": \"relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmargin\"\n    },\n    {\n      \"name\": \"rightmark\"\n    },\n    {\n      \"name\": \"rm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmfamily\"\n    },\n    {\n      \"name\": \"rootbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SS\"\n    },\n    {\n      \"name\": \"samepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbox{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scshape\"\n    },\n    {\n      \"name\": \"sectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"selectfont\"\n    },\n    {\n      \"name\": \"setlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlength{${1:cmd}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"sf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamily\"\n    },\n    {\n      \"name\": \"shortstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shortstack[${2:position}]{${1:text\\\\\\\\text}}\"\n      }\n    },\n    {\n      \"name\": \"shortstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortstack{${1:text\\\\\\\\text}}\"\n      }\n    },\n    {\n      \"name\": \"skipeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skipeval{${1:skip expression}}\"\n      }\n    },\n    {\n      \"name\": \"sl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slshape\"\n    },\n    {\n      \"name\": \"sqrt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sqrt[${2:root}]{${1:arg}}\"\n      },\n      \"detail\": \"√\",\n      \"doc\": \"Radical\"\n    },\n    {\n      \"name\": \"sqrtsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqrtsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sscshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"stop\"\n    },\n    {\n      \"name\": \"subitem\"\n    },\n    {\n      \"name\": \"subparagraphmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparagraphmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"subsubitem\"\n    },\n    {\n      \"name\": \"subsubsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"suppressfloats\"\n    },\n    {\n      \"name\": \"suppressfloats\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suppressfloats[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"swshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbol{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tablename\"\n    },\n    {\n      \"name\": \"tabularnewline\"\n    },\n    {\n      \"name\": \"textasciicircum\"\n    },\n    {\n      \"name\": \"textasciitilde\"\n    },\n    {\n      \"name\": \"textasteriskcentered\"\n    },\n    {\n      \"name\": \"textbackslash\"\n    },\n    {\n      \"name\": \"textbar\"\n    },\n    {\n      \"name\": \"textbardbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbraceleft\"\n    },\n    {\n      \"name\": \"textbraceright\"\n    },\n    {\n      \"name\": \"textbullet\"\n    },\n    {\n      \"name\": \"textcircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircled{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcommaabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcommaabove{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcommabelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcommabelow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textcompwordmark\"\n    },\n    {\n      \"name\": \"textcopyright\"\n    },\n    {\n      \"name\": \"textdagger\"\n    },\n    {\n      \"name\": \"textdaggerdbl\"\n    },\n    {\n      \"name\": \"textdollar\"\n    },\n    {\n      \"name\": \"textellipsis\"\n    },\n    {\n      \"name\": \"textemdash\"\n    },\n    {\n      \"name\": \"textendash\"\n    },\n    {\n      \"name\": \"textexclamdown\"\n    },\n    {\n      \"name\": \"textfiguredash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgreater\"\n    },\n    {\n      \"name\": \"textheight\"\n    },\n    {\n      \"name\": \"texthorizontalbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textless\"\n    },\n    {\n      \"name\": \"textnonbreakinghyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textparagraph\"\n    },\n    {\n      \"name\": \"textperiodcentered\"\n    },\n    {\n      \"name\": \"textquestiondown\"\n    },\n    {\n      \"name\": \"textquotedblleft\"\n    },\n    {\n      \"name\": \"textquotedblright\"\n    },\n    {\n      \"name\": \"textquoteleft\"\n    },\n    {\n      \"name\": \"textquoteright\"\n    },\n    {\n      \"name\": \"textregistered\"\n    },\n    {\n      \"name\": \"textssc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textssc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"textsterling\"\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttrademark\"\n    },\n    {\n      \"name\": \"textulc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textulc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textunderscore\"\n    },\n    {\n      \"name\": \"textvisiblespace\"\n    },\n    {\n      \"name\": \"thicklines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickspace\"\n    },\n    {\n      \"name\": \"thinlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"time\"\n    },\n    {\n      \"name\": \"tt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twocolumn[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"typein\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typein[${2:cmd}]{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"typein\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typein{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"typeout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typeout{${1:msg}}\"\n      }\n    },\n    {\n      \"name\": \"ulcshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unboldmath\"\n    },\n    {\n      \"name\": \"upshape\"\n    },\n    {\n      \"name\": \"varbigtriangledown\"\n    },\n    {\n      \"name\": \"varbigtriangleup\"\n    },\n    {\n      \"name\": \"vdots\",\n      \"detail\": \"⋮\",\n      \"doc\": \"Vertical ellipsis\"\n    },\n    {\n      \"name\": \"vector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"vector(${2:xslope},${3:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"verb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"verb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"verb*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"verb*|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"verbvisiblespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vline\"\n    },\n    {\n      \"name\": \"width\"\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"center\"\n    },\n    {\n      \"name\": \"description\"\n    },\n    {\n      \"name\": \"displaymath\"\n    },\n    {\n      \"name\": \"document\"\n    },\n    {\n      \"name\": \"equation\"\n    },\n    {\n      \"name\": \"eqnarray\"\n    },\n    {\n      \"name\": \"eqnarray*\"\n    },\n    {\n      \"name\": \"figure\"\n    },\n    {\n      \"name\": \"figure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"figure*\"\n    },\n    {\n      \"name\": \"figure*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"filecontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filecontents\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{filecontents},\\\\begin{filecontents*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"filecontents*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filecontents*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{filecontents},\\\\begin{filecontents*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flushleft\"\n    },\n    {\n      \"name\": \"flushright\"\n    },\n    {\n      \"name\": \"footnotesize\"\n    },\n    {\n      \"name\": \"Huge\"\n    },\n    {\n      \"name\": \"huge\"\n    },\n    {\n      \"name\": \"itemize\"\n    },\n    {\n      \"name\": \"LARGE\"\n    },\n    {\n      \"name\": \"Large\"\n    },\n    {\n      \"name\": \"large\"\n    },\n    {\n      \"name\": \"list\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:label}}{${2:spacing}}\"\n      }\n    },\n    {\n      \"name\": \"lrbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:box}}\"\n      }\n    },\n    {\n      \"name\": \"math\"\n    },\n    {\n      \"name\": \"matrix\"\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"normalsize\"\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:width},${2:height})(${3:xoffset},${4:yoffset})\"\n      }\n    },\n    {\n      \"name\": \"pmatrix\"\n    },\n    {\n      \"name\": \"quotation\"\n    },\n    {\n      \"name\": \"quote\"\n    },\n    {\n      \"name\": \"scriptsize\"\n    },\n    {\n      \"name\": \"samepage\"\n    },\n    {\n      \"name\": \"small\"\n    },\n    {\n      \"name\": \"tabbing\"\n    },\n    {\n      \"name\": \"table*\"\n    },\n    {\n      \"name\": \"table*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"table\"\n    },\n    {\n      \"name\": \"table\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    },\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"thebibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widestlabel}}\"\n      }\n    },\n    {\n      \"name\": \"theindex\"\n    },\n    {\n      \"name\": \"tiny\"\n    },\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"trivlist\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"verbatim*\"\n    },\n    {\n      \"name\": \"verse\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{filecontents},\\\\begin{filecontents*}\": [\n      \"force\",\n      \"overwrite\",\n      \"noheader\",\n      \"nosearch\",\n      \"nowarn\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"abbrv\",\n      \"acm\",\n      \"alpha\",\n      \"apalike\",\n      \"ieeetr\",\n      \"plain\",\n      \"siam\",\n      \"unsrt\"\n    ],\n    \"\\\\listfiles\": [\n      \"hashes\",\n      \"sizes\"\n    ],\n    \"\\\\MakeLowercase#c,\\\\MakeTitlecase#c,\\\\MakeUppercase#c\": [\n      \"locale=${1:BCP-47 tag}\",\n      \"lang=${1:BCP-47 tag}\"\n    ],\n    \"\\\\mathversion#c\": [\n      \"bold\",\n      \"normal\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"plain\",\n      \"empty\",\n      \"headings\",\n      \"myheadings\"\n    ],\n    \"\\\\documentclass/article#c\": [\n      \"a4paper\",\n      \"a5paper\",\n      \"b5paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"oneside\",\n      \"twoside\",\n      \"draft\",\n      \"final\",\n      \"titlepage\",\n      \"notitlepage\",\n      \"onecolumn\",\n      \"twocolumn\",\n      \"leqno\",\n      \"fleqn\",\n      \"openbib\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/article#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/latex-l2tabu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centerline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fussy\"\n    },\n    {\n      \"name\": \"sloppy\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"appendix\"\n    },\n    {\n      \"name\": \"eqnarray\"\n    },\n    {\n      \"name\": \"eqnarray*\"\n    },\n    {\n      \"name\": \"fussypar\"\n    },\n    {\n      \"name\": \"sloppypar\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latex2man.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"COLUMNS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EMPTY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LASTCOL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OPTARG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"Arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arg{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"OptArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OptArg{${1:option}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"OptoArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OptoArg{${1:option}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"oOpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oOpt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"oArg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oArg{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"oOptArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oOptArg{${1:option}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"oOptoArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oOptoArg{${1:option}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"File\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"File{${1:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"Prog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Prog{${1:program}}\"\n      }\n    },\n    {\n      \"name\": \"Cmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cmd{${1:command%plain}}{${2:chapter}}\"\n      }\n    },\n    {\n      \"name\": \"Bar\"\n    },\n    {\n      \"name\": \"Bs\"\n    },\n    {\n      \"name\": \"Tilde\"\n    },\n    {\n      \"name\": \"Dots\"\n    },\n    {\n      \"name\": \"Bullet\"\n    },\n    {\n      \"name\": \"setVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"setVersionWord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setVersionWord{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"Version\"\n    },\n    {\n      \"name\": \"setDate\"\n    },\n    {\n      \"name\": \"Date\"\n    },\n    {\n      \"name\": \"Email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"URL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"LatexManEnd\"\n    },\n    {\n      \"name\": \"Lbr\"\n    },\n    {\n      \"name\": \"Rbr\"\n    },\n    {\n      \"name\": \"LBr\"\n    },\n    {\n      \"name\": \"RBr\"\n    },\n    {\n      \"name\": \"Dollar\"\n    },\n    {\n      \"name\": \"Circum\"\n    },\n    {\n      \"name\": \"Percent\"\n    },\n    {\n      \"name\": \"TEXbr\"\n    },\n    {\n      \"name\": \"TEXIbr\"\n    },\n    {\n      \"name\": \"MANbr\"\n    },\n    {\n      \"name\": \"HTMLbr\"\n    },\n    {\n      \"name\": \"SP\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:chapter}}{${2:name}}{${3:author}}{${4:info}}{${5:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"Table\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:columns}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/latex2man#c\": [\n      \"fancy\",\n      \"fancyhdr\",\n      \"nofancy\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/latex2man#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/latex2pydata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pydatasetfilehandle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatasetfilehandle{${1:filehandle}}\"\n      }\n    },\n    {\n      \"name\": \"pydatareleasefilehandle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatareleasefilehandle{${1:filehandle}}\"\n      }\n    },\n    {\n      \"name\": \"pydatasetfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatasetfilename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pydataclosefilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydataclosefilename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pydatasetschemamissing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatasetschemamissing{${1:missing behavior}}\"\n      }\n    },\n    {\n      \"name\": \"pydatasetschemakeytype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pydatasetschemakeytype{${1:key%plain}}{${2:value type}}\"\n      }\n    },\n    {\n      \"name\": \"pydataclearschema\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritemeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydataclearmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritedictopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritedictclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritelistopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritelistclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritekey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatawritekey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pydatawritevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatawritevalue{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pydatawritekeyedefvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pydatawritekeyedefvalue{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pydatawritekeyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pydatawritekeyvalue{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pydatasetbuffername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatasetbuffername{${1:buffername}}\"\n      }\n    },\n    {\n      \"name\": \"pydataclearbuffername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydataclearbuffername{${1:buffername}}\"\n      }\n    },\n    {\n      \"name\": \"pydatabuffermdfivesum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatawritebuffer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatabufferkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatabufferkey{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pydatabuffervalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pydatabuffervalue{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pydatabufferkeyedefvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pydatabufferkeyedefvalue{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pydatabufferkeyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pydatabufferkeyvalue{${1:key%plain}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pydatawritemlvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pydatabuffermlvalue\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latexalpha2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"morewrites\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wolfram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wolfram{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolfram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wolfram[${2:format%keyvals}]{${1:code%definition}}\",\n        \"keys\": [\n          \"\\\\wolfram\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wolframgraphics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wolframgraphics{${1:code%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"wolframgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wolframgraphics[${3:format%keyvals}]{${1:code%definition}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\wolframgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wolframalpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wolframalpha{${1:query}}\"\n      }\n    },\n    {\n      \"name\": \"wolframalpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wolframalpha[${2:format%keyvals}]{${1:query}}\",\n        \"keys\": [\n          \"\\\\wolframalpha\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wolframsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wolframsolve{${1:equation%definition}}{${2:independent variable%definition}}{${3:dependent variable%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolframsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wolframsolve{${1:equation%definition}}{${2:independent variable%definition}}{${3:dependent variable%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolframdsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wolframdsolve{${1:equation%definition}}{${2:independent variable%definition}}{${3:dependent variable%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolframdsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wolframdsolve{${1:equation%definition}}{${2:independent variable%definition}}{${3:dependent variable%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolframtex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wolframtex{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"wolframtex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wolframtex[${2:format%keyvals}]{${1:code%definition}}\",\n        \"keys\": [\n          \"\\\\wolframtex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wolframanimation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wolframanimation{${1:code%definition}}{${2:folder name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"instring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"instring{${1:char}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"wsreturncodefile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wsreturncode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/latexalpha2#c\": [\n      \"local\",\n      \"cloud\",\n      \"cache\",\n      \"nocache\"\n    ],\n    \"\\\\wolfram\": [\n      \"tex\",\n      \"wolfram\",\n      \"text\"\n    ],\n    \"\\\\wolframgraphics\": [\n      \"pdf\",\n      \"png\",\n      \"jpg\"\n    ],\n    \"\\\\wolframalpha\": [\n      \"tex\",\n      \"wolfram\",\n      \"wolfram2\",\n      \"text\"\n    ],\n    \"\\\\wolframtex\": [\n      \"tex\",\n      \"wolfram\",\n      \"text\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/latexalpha2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/latexbangla.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ucharclasses\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"chngcntr\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thecorollary\",\n      \"if\": \"feature=2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproperty\",\n      \"if\": \"feature=2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tobangla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tobangla{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"numtobangla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtobangla{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thetheorem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproblem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bengalifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bengalifonttt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"corollary\",\n      \"if\": \"feature=2\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"if\": \"feature=2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"property\",\n      \"if\": \"feature=2\"\n    },\n    {\n      \"name\": \"property\",\n      \"if\": \"feature=2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"hint\",\n      \"if\": \"feature=2\"\n    },\n    {\n      \"name\": \"hint\",\n      \"if\": \"feature=2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remarks\",\n      \"if\": \"feature=2\"\n    },\n    {\n      \"name\": \"remarks\",\n      \"if\": \"feature=2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"motive\",\n      \"if\": \"feature=2\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"latin\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/latexbangla#c\": [\n      \"banglamainfont=${1:font name}\",\n      \"banglattfont=${1:font name}\",\n      \"feature=${1|0,1,2|}\",\n      \"changecounternumbering=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/latexbangla#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/latexcolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latexdemo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"democodefile\"\n    },\n    {\n      \"name\": \"democodeprefix\"\n    },\n    {\n      \"name\": \"demoresultprefix\"\n    },\n    {\n      \"name\": \"PrintDemo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintDemo{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\PrintDemo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"command{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DemoError\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DemoError{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintDemoUsingKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preResultSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlatexcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlatexcode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printlatexresult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlatexresult{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printlatexresultlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintCodeAndResultsParallel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintCodeAndResultsStacked\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintCodeAndResultsStackedLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintCodeAndResultsNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintCodeAndResultsPage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DefineCode\"\n    },\n    {\n      \"name\": \"latexresult\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\PrintDemo\": [\n      \"style=${1|parallel,stacked,lines,none,page|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latexscreenshooter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"catchfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"screenshooter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"screenshooter{${1:URL}}{${2:width}}{${3:height}}{${4:file name}}{${5:path}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/latexsym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lato.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lato\"\n    },\n    {\n      \"name\": \"latofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lato#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"defaultsans\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lato#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/layaureo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/layaureo#c\": [\n      \"binding=\",\n      \"big\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/layaureo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/layout.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"layout\"\n    },\n    {\n      \"name\": \"layout*\"\n    },\n    {\n      \"name\": \"Headertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bodytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Footertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarginNotestext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneinchtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notshown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LayOuttype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LayOuttype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LayOutbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ConvertToCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConvertToCount{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"SetToHalf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetToHalf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"SetToQuart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetToQuart{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Identify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Identify{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"InsideHArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsideHArrow{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"InsideVArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsideVArrow{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"OutsideHArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OutsideHArrow{${1:right arrow pos}}{${2:length}}{${3:arrow length}}\"\n      }\n    },\n    {\n      \"name\": \"OutsideVArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OutsideVArrow{${1:lower arrow pos}}{${2:length}}{${3:arrow length}}\"\n      }\n    },\n    {\n      \"name\": \"Show\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Show{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Type\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Type{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"oneinch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Interval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExtraYPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PositionX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PositionY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowLength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/layout#c\": [\n      \"dutch\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"spanish\",\n      \"portuguese\",\n      \"brazilian\",\n      \"italian\",\n      \"romanian\",\n      \"japanese\",\n      \"verbose\",\n      \"silent\",\n      \"integers\",\n      \"reals\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/layout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/layouts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentfloat\"\n    },\n    {\n      \"name\": \"currentfloatpage\"\n    },\n    {\n      \"name\": \"currentfootnote\"\n    },\n    {\n      \"name\": \"currentheading\"\n    },\n    {\n      \"name\": \"currentlist\"\n    },\n    {\n      \"name\": \"currentpage\"\n    },\n    {\n      \"name\": \"currentparagraph\"\n    },\n    {\n      \"name\": \"currentstock\"\n    },\n    {\n      \"name\": \"currenttoc\"\n    },\n    {\n      \"name\": \"drawaspread\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"drawaspread[${8:F}]{${1:w%l}}{${2:P}}{${3:T}}{${4:S}}{${5:H}}{${6:E}}{${7:G}}\"\n      }\n    },\n    {\n      \"name\": \"drawaspread\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"drawaspread{${1:w%l}}{${2:P}}{${3:T}}{${4:S}}{${5:H}}{${6:E}}{${7:G}}\"\n      }\n    },\n    {\n      \"name\": \"drawdimensionsfalse\"\n    },\n    {\n      \"name\": \"drawdimensionstrue\"\n    },\n    {\n      \"name\": \"drawfloat\"\n    },\n    {\n      \"name\": \"drawfloatpage\"\n    },\n    {\n      \"name\": \"drawfontframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawfontframe{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawfontframelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawfontframelabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawfootnote\"\n    },\n    {\n      \"name\": \"drawheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawheading{${1:font style}}\"\n      }\n    },\n    {\n      \"name\": \"drawlist\"\n    },\n    {\n      \"name\": \"drawmarginparsfalse\"\n    },\n    {\n      \"name\": \"drawmarginparstrue\"\n    },\n    {\n      \"name\": \"drawpage\"\n    },\n    {\n      \"name\": \"drawparagraph\"\n    },\n    {\n      \"name\": \"drawparametersfalse\"\n    },\n    {\n      \"name\": \"drawparameterstrue\"\n    },\n    {\n      \"name\": \"drawstock\"\n    },\n    {\n      \"name\": \"drawtoc\"\n    },\n    {\n      \"name\": \"floatdesign\"\n    },\n    {\n      \"name\": \"floatdiagram\"\n    },\n    {\n      \"name\": \"floatpagedesign\"\n    },\n    {\n      \"name\": \"floatpagediagram\"\n    },\n    {\n      \"name\": \"floatpagevalues\"\n    },\n    {\n      \"name\": \"floatvalues\"\n    },\n    {\n      \"name\": \"footnotedesign\"\n    },\n    {\n      \"name\": \"footnotediagram\"\n    },\n    {\n      \"name\": \"footnotevalues\"\n    },\n    {\n      \"name\": \"headingdesign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingdesign{${1:font style}}\"\n      }\n    },\n    {\n      \"name\": \"headingdiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingdiagram{${1:font style}}\"\n      }\n    },\n    {\n      \"name\": \"headingvalues\"\n    },\n    {\n      \"name\": \"ifdrawdimensions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdrawmarginpars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdrawparameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflistaspara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmarginparswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpagelayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprintheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprintparameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifreversemarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifruninhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftwocolumnlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layoutsbox\"\n    },\n    {\n      \"name\": \"listasparafalse\"\n    },\n    {\n      \"name\": \"listasparatrue\"\n    },\n    {\n      \"name\": \"listdesign\"\n    },\n    {\n      \"name\": \"listdiagram\"\n    },\n    {\n      \"name\": \"listvalues\"\n    },\n    {\n      \"name\": \"marginparswitchfalse\"\n    },\n    {\n      \"name\": \"marginparswitchtrue\"\n    },\n    {\n      \"name\": \"oddpagelayoutfalse\"\n    },\n    {\n      \"name\": \"oddpagelayouttrue\"\n    },\n    {\n      \"name\": \"pagedesign\"\n    },\n    {\n      \"name\": \"pagediagram\"\n    },\n    {\n      \"name\": \"pagevalues\"\n    },\n    {\n      \"name\": \"paragraphdesign\"\n    },\n    {\n      \"name\": \"paragraphdiagram\"\n    },\n    {\n      \"name\": \"paragraphvalues\"\n    },\n    {\n      \"name\": \"printheadingsfalse\"\n    },\n    {\n      \"name\": \"printheadingstrue\"\n    },\n    {\n      \"name\": \"printinunitsof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printinunitsof{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"printparametersfalse\"\n    },\n    {\n      \"name\": \"printparameterstrue\"\n    },\n    {\n      \"name\": \"prntlen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prntlen{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"reversemarginparfalse\"\n    },\n    {\n      \"name\": \"reversemarginpartrue\"\n    },\n    {\n      \"name\": \"runinheadfalse\"\n    },\n    {\n      \"name\": \"runinheadtrue\"\n    },\n    {\n      \"name\": \"setfootbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfootbox{${1:height%l}}{${2:depth%l}}\"\n      }\n    },\n    {\n      \"name\": \"setlabelfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlabelfont{${1:font style}}\"\n      }\n    },\n    {\n      \"name\": \"setlayoutscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlayoutscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setparameterstextsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparameterstextsize{${1:fontsize cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setparametertextfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparametertextfont{${1:font style}}\"\n      }\n    },\n    {\n      \"name\": \"setuplayouts\"\n    },\n    {\n      \"name\": \"setvaluestextsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvaluestextsize{${1:fontsize cmd}}\"\n      }\n    },\n    {\n      \"name\": \"spinemargin\"\n    },\n    {\n      \"name\": \"stockdesign\"\n    },\n    {\n      \"name\": \"stockdiagram\"\n    },\n    {\n      \"name\": \"stockheight\"\n    },\n    {\n      \"name\": \"stockvalues\"\n    },\n    {\n      \"name\": \"stockwidth\"\n    },\n    {\n      \"name\": \"testdrawdimensions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testprintparameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocdesign\"\n    },\n    {\n      \"name\": \"tocdiagram\"\n    },\n    {\n      \"name\": \"tocvalues\"\n    },\n    {\n      \"name\": \"trimedge\"\n    },\n    {\n      \"name\": \"trimtop\"\n    },\n    {\n      \"name\": \"tryafterskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryafterskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trybeforeskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trybeforeskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trybotfigrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trybotfigrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trybottomfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trybottomfraction{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"trybottomnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trybottomnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"trycolumnsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trycolumnsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trycolumnseprule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trycolumnseprule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryevensidemargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryevensidemargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryfloatsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfloatsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootins{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootnotebaseline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootnotebaseline{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootnotesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootnotesep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootrulefrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootrulefrac{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootruleheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootruleheight{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"tryfootskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryfootskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryheadheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryheadheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryheadsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryheadsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryhoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryhoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryintextsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryintextsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryitemindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryitemindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryitemsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryitemsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trylabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trylabelsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trylabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trylabelwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tryleftmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryleftmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trylistparindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trylistparindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trymarginparpush\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trymarginparpush{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trymarginparsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trymarginparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trymarginparwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trymarginparwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tryoddsidemargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryoddsidemargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trypaperheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trypaperheight{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"trypaperwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trypaperwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tryparbaselineskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparbaselineskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryparindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryparlinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tryparsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryparskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryparskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryparskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trypartopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trypartopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryrightmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryrightmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryspinemargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryspinemargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trystockheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trystockheight{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"trystockwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trystockwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trytextfloatsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytextfloatsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytextfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytextfraction{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"trytextheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytextheight{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"trytextwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytextwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trytocdotsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytocdotsep{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"trytocindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytocindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytoclinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytoclinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trytocnumwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytocnumwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trytocpnumwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytocpnumwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"trytocrmarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytocrmarg{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytopfigrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytopfigrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytopfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytopfraction{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"trytopmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytopmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytopnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytopnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"trytopsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytopsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytotalnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytotalnumber{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"trytrimedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytrimedge{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"trytrimtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trytrimtop{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryuppermargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryuppermargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tryvoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tryvoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"twocolumnlayoutfalse\"\n    },\n    {\n      \"name\": \"twocolumnlayouttrue\"\n    },\n    {\n      \"name\": \"uppermargin\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lazylist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Identity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Identity{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Error\"\n    },\n    {\n      \"name\": \"First\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"First{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Second\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Second{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Compose\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Compose{${1:func1}}{${2:func2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Twiddle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Twiddle{${1:func}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"True\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"True{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"False\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"False{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"Not\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Not{${1:func}}{${2:true}}{${3:false}}\"\n      },\n      \"detail\": \"⫬\",\n      \"doc\": \"Double stroke not sign\"\n    },\n    {\n      \"name\": \"And\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"And{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Or\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Or{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Lift\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Lift{${1:predicate}}{${2:func1}}{${3:func2}}{${4:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lessthan\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Lessthan{${1:num1}}{${2:num2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"gobblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXif\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXif{${1:if-statement}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Nil\"\n    },\n    {\n      \"name\": \"Cons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cons{${1:head}}{${2:tail}}\"\n      }\n    },\n    {\n      \"name\": \"Stream\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Stream{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"Singleton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Singleton{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"Head\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Head{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"Tail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tail{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"Foldl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Foldl{${1:func}}{${2:arg}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"Foldr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Foldr{${1:func}}{${2:arg}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"Cat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Cat{${1:list1}}{${2:list2}}\"\n      }\n    },\n    {\n      \"name\": \"Reverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reverse{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"All\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"All{${1:predicate}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"Some\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Some{${1:predicate}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"Isempty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Isempty{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"Filter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Filter{${1:predicate}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"Map\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Map{${1:func}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"Insert\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Insert{${1:order}}{${2:item}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"Insertsort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Insertsort{${1:order}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"Unlistize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unlistize{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"Commaize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Commaize{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Listize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Listize[${1:a,b,c,...}]\"\n      }\n    },\n    {\n      \"name\": \"Show\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lccaps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textlcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlcc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spacedcaps\"\n    },\n    {\n      \"name\": \"textslcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textslcc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textssc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textssc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lcd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DefineLCDchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineLCDchar{${1:name}}{${2:binary code}}\"\n      }\n    },\n    {\n      \"name\": \"LCDcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LCDcolors{${1:textcolor}}{${2:bgcolor}}\"\n      }\n    },\n    {\n      \"name\": \"LCDcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LCDcolors[${3:framecolor}]{${1:textcolor}}{${2:bgcolor}}\"\n      }\n    },\n    {\n      \"name\": \"LCDframe\"\n    },\n    {\n      \"name\": \"LCDnoframe\"\n    },\n    {\n      \"name\": \"textLCD\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"textLCD{${1:num of chars}}|${2:text}|\"\n      }\n    },\n    {\n      \"name\": \"textLCD\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"textLCD[${2:shift}]{${1:num of chars}}|${3:text}|\"\n      }\n    },\n    {\n      \"name\": \"textLCDcorr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LCDunitlength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lcg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rand\"\n    },\n    {\n      \"name\": \"reinitrand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"reinitrand[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\reinitrand,\\\\chgrand,\\\\usepackage/lcg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chgrand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chgrand[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\reinitrand,\\\\chgrand,\\\\usepackage/lcg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\reinitrand,\\\\chgrand,\\\\usepackage/lcg#c\": [\n      \"counter=${1:counter}\",\n      \"first=${1:integer}\",\n      \"last=${1:integer}\",\n      \"seed=${1:integer}\",\n      \"quiet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\reinitrand,\\\\chgrand,\\\\usepackage/lcg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/leading.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leading{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/leadsheets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"musejazz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useleadsheetslibraries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useleadsheetslibraries{${1:list of libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\useleadsheetslibraries#c,\\\\useleadsheetslibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useleadsheetslibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useleadsheetslibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\useleadsheetslibraries#c,\\\\useleadsheetslibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"musix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmusix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmusix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"musicsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musicsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"musicsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"musicsymbol[${2:raise%l}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"doublesharp\"\n    },\n    {\n      \"name\": \"doubleflat\"\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"trebleclef\"\n    },\n    {\n      \"name\": \"bassclef\"\n    },\n    {\n      \"name\": \"altoclef\"\n    },\n    {\n      \"name\": \"allabreve\"\n    },\n    {\n      \"name\": \"meterC\"\n    },\n    {\n      \"name\": \"wholerest\"\n    },\n    {\n      \"name\": \"halfrest\"\n    },\n    {\n      \"name\": \"quarterrest\"\n    },\n    {\n      \"name\": \"eighthrest\"\n    },\n    {\n      \"name\": \"sixteenthrest\"\n    },\n    {\n      \"name\": \"Break\"\n    },\n    {\n      \"name\": \"normalbar\"\n    },\n    {\n      \"name\": \"leftrepeat\"\n    },\n    {\n      \"name\": \"rightrepeat\"\n    },\n    {\n      \"name\": \"leftrightrepeat\"\n    },\n    {\n      \"name\": \"doublebar\"\n    },\n    {\n      \"name\": \"stopbar\"\n    },\n    {\n      \"name\": \"normalbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meter{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"chordname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chordname{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"writechord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writechord{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"setchords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setchords{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setchords\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"musejazz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setleadsheets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setleadsheets{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{song},\\\\setleadsheets\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"capo\"\n    },\n    {\n      \"name\": \"newversetype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newversetype{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newversetype\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newversetype{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newversetype*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newversetype*{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newversetype*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newversetype*{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideversetype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideversetype{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"provideversetype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"provideversetype{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"provideversetype*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideversetype*{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"provideversetype*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"provideversetype*{${1:envname}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chord{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"chord*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chord*{${1:chord}}\"\n      }\n    },\n    {\n      \"name\": \"definesongtitletemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definesongtitletemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"definesongproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definesongproperty{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"copysongproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copysongproperty{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"songproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songproperty{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"printsongpropertylist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"printsongpropertylist{${1:property}}{${2:between two}}{${3:between more}}{${4:between last two}}\"\n      }\n    },\n    {\n      \"name\": \"printsongpropertylist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"printsongpropertylist[${5:code}]{${1:property}}{${2:between two}}{${3:between more}}{${4:between last two}}\"\n      }\n    },\n    {\n      \"name\": \"usesongpropertylist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usesongpropertylist{${1:property}}{${2:between}}\"\n      }\n    },\n    {\n      \"name\": \"usesongpropertylist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"usesongpropertylist[${3:code}]{${1:property}}{${2:between}}\"\n      }\n    },\n    {\n      \"name\": \"forsongpropertylist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forsongpropertylist{${1:property}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifsongproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifsongproperty{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifanysongproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifanysongproperty{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifallsongproperties\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifallsongproperties{${1:properties}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsongpropertiesequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsongpropertiesequal{${1:property1}}{${2:property2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsongpropertyequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsongpropertyequal{${1:property1}}{${2:property2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsongmeasuring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsongmeasuring{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"expandcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"defineversetypetemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineversetypetemplate{${1:name}}{${2:begin code}}{${3:end code}}\"\n      }\n    },\n    {\n      \"name\": \"verselabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselabelformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verseafterlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversestarred\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifversestarred{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifversenumbered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifversenumbered{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifversenamed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifversenamed{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifobeylines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifobeylines{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"includeleadsheet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeleadsheet{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeleadsheet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeleadsheet[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includeleadsheet,\\\\includeleadsheet*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includeleadsheet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeleadsheet*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeleadsheet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeleadsheet*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includeleadsheet,\\\\includeleadsheet*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:properties}}\"\n      }\n    },\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:properties}}\",\n        \"keys\": [\n          \"\\\\begin{song},\\\\setleadsheets\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"verse\"\n    },\n    {\n      \"name\": \"verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\",\n          \"\\\\begin{verse}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"verse*\"\n    },\n    {\n      \"name\": \"verse*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chorus\"\n    },\n    {\n      \"name\": \"chorus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chorus*\"\n    },\n    {\n      \"name\": \"chorus*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"intro\"\n    },\n    {\n      \"name\": \"intro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"intro*\"\n    },\n    {\n      \"name\": \"intro*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"outro\"\n    },\n    {\n      \"name\": \"outro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"interlude\"\n    },\n    {\n      \"name\": \"interlude\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bridge\"\n    },\n    {\n      \"name\": \"bridge\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"info\"\n    },\n    {\n      \"name\": \"info\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solo\"\n    },\n    {\n      \"name\": \"solo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solo*\"\n    },\n    {\n      \"name\": \"solo*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/leadsheets#c\": [\n      \"full\",\n      \"minimal\",\n      \"musicsymbols\",\n      \"chords\",\n      \"musejazz\",\n      \"songs\",\n      \"external\"\n    ],\n    \"\\\\useleadsheetslibraries#c,\\\\useleadsheetslibrary#c\": [\n      \"musicsymbols\",\n      \"chords\",\n      \"musejazz\",\n      \"songs\",\n      \"external\"\n    ],\n    \"\\\\setchords\": [\n      \"format={${1:code}}\",\n      \"sharp={${1:code}}\",\n      \"flat={${1:code}}\",\n      \"double-sharp={${1:code}}\",\n      \"double-flat={${1:code}}\",\n      \"aug={${1:code}}\",\n      \"half-dim={${1:code}}\",\n      \"full-dim={${1:code}}\",\n      \"dim={${1:code}}\",\n      \"add={${1:code}}\",\n      \"sus={${1:code}}\",\n      \"major={${1:code}}\",\n      \"minor={${1:code}}\",\n      \"major-seven={${1:code}}\",\n      \"major-nine={${1:code}}\",\n      \"input-notation=${1|german,english|}\",\n      \"output-notation=${1|german,english|}\",\n      \"german-B={${1:code}}\",\n      \"german-H={${1:code}}\"\n    ],\n    \"\\\\begin{song},\\\\setleadsheets\": [\n      \"title-template=${1:template name}\",\n      \"chord-cs=${1:command}\",\n      \"song-format={${1:code}}\",\n      \"text-format={${1:code}}\",\n      \"before-song={${1:code}}\",\n      \"after-song={${1:code}}\",\n      \"after-title={${1:code}}\",\n      \"print-tags={${1:list of tags}}\",\n      \"add-to-reset={${1:list of counters}}\",\n      \"obey-lines\",\n      \"bar-shortcuts\",\n      \"disable-measuring\",\n      \"capo-nr-format=${1|arabic,roman,Roman|}\",\n      \"capo-nr={${1:code}}\",\n      \"smash-chords\",\n      \"smash-next-chord\",\n      \"empty-chord-dim=\",\n      \"align-chords=${1:col}\",\n      \"print-chords\",\n      \"remember-chords\",\n      \"transpose=${1:number}\",\n      \"enharmonic=${1|sharp,flat|}\",\n      \"transpose-capo\",\n      \"verses-format={${1:code}}\",\n      \"verses-label-format={${1:code}}\",\n      \"verses-after-label={${1:code}}\",\n      \"chords/format={${1:code}}\",\n      \"chords/sharp={${1:code}}\",\n      \"chords/flat={${1:code}}\",\n      \"chords/double-sharp={${1:code}}\",\n      \"chords/double-flat={${1:code}}\",\n      \"chords/aug={${1:code}}\",\n      \"chords/half-dim={${1:code}}\",\n      \"chords/full-dim={${1:code}}\",\n      \"chords/dim={${1:code}}\",\n      \"chords/add={${1:code}}\",\n      \"chords/sus={${1:code}}\",\n      \"chords/major={${1:code}}\",\n      \"chords/minor={${1:code}}\",\n      \"chords/major-seven={${1:code}}\",\n      \"chords/major-nine={${1:code}}\",\n      \"chords/input-notation=${1|german,english|}\",\n      \"chords/output-notation=${1|german,english|}\",\n      \"chords/german-B={${1:code}}\",\n      \"chords/german-H={${1:code}}\",\n      \"verse/format={${1:code}}\",\n      \"verse/label-format={${1:code}}\",\n      \"verse/class={${1:class name}}\",\n      \"verse/after-label={${1:code}}\",\n      \"verse/name=${1:name}\",\n      \"verse/template=${1:template}\",\n      \"verse/numbered\",\n      \"verse/named\",\n      \"verse/recall-chords={${1:env-class}}\"\n    ],\n    \"\\\\begin{verse},\\\\begin{verse*},\\\\begin{chorus},\\\\begin{chorus*},\\\\begin{intro},\\\\begin{intro*},\\\\begin{outro},\\\\begin{interlude},\\\\begin{bridge},\\\\begin{info},\\\\begin{solo},\\\\begin{solo*},\\\\newversetype,\\\\newversetype*,\\\\provideversetype,\\\\provideversetype*\": [\n      \"format={${1:code}}\",\n      \"label-format={${1:code}}\",\n      \"class={${1:class name}}\",\n      \"after-label={${1:code}}\",\n      \"name=${1:name}\",\n      \"template=${1:template}\",\n      \"numbered\",\n      \"named\",\n      \"recall-chords={${1:env-class}}\"\n    ],\n    \"\\\\begin{verse}\": [\n      \"type=${1:type}\"\n    ],\n    \"\\\\includeleadsheet,\\\\includeleadsheet*\": [\n      \"gobble-preamble\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/leadsheets#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lecturer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"yax\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"slide\"\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slide[${1:attributes%keyvals}]\",\n        \"keys\": [\n          \"\\\\slide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endslide\"\n    },\n    {\n      \"name\": \"step\"\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"step[${1:attributes%keyvals}]\",\n        \"keys\": [\n          \"\\\\step\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slideno\"\n    },\n    {\n      \"name\": \"slidenumber\"\n    },\n    {\n      \"name\": \"presentationonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"presentationonly{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"handoutonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handoutonly{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"presentationorhandout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"presentationorhandout{${1:presentation}}{${2:handout}}\"\n      }\n    },\n    {\n      \"name\": \"setslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setslide{${1:list of slides}}\"\n      }\n    },\n    {\n      \"name\": \"setstep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstep{${1:list of steps}}\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showgrid{${1:increment%l}}\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showgrid{${1:increment%l}}[${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"showgrid{${1:increment%l}}[${2:color}][${3:line width}]\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showgrid[${2:left,top}]{${1:increment%l}}\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"showgrid[${2:left,top}]{${1:increment%l}}[${3:color}]\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"showgrid[${2:left,top}]{${1:increment%l}}[${3:color}][${4:line width}]\"\n      }\n    },\n    {\n      \"name\": \"hidegrids\"\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"position{${1:area}}{${2:material}}\"\n      }\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"position{${1:area}}[${3:left,top}]{${2:material}}\"\n      }\n    },\n    {\n      \"name\": \"setarea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setarea{${1:list of areas}}\"\n      }\n    },\n    {\n      \"name\": \"createbookmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"createbookmark{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"createbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"createbookmark[${3:options%keyvals}]{${1:level}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\createbookmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"createbookmark\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"createbookmark{${1:level}}[${3:anchor}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"createbookmark\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"createbookmark[${3:options%keyvals}]{${1:level}}[${4:anchor}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\createbookmark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showbookmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showbookmarks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showbookmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showbookmarks[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"goto{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"goto[${3:optional style%keyvals}]{${1:name}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gotoA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gotoA{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gotoA\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gotoA[${3:optional style%keyvals}]{${1:name}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gotoB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gotoB{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gotoB\",\n      \"arg\": {\n        \"format\": \"[]{}{}A\",\n        \"snippet\": \"gotoB[${3:optional style%keyvals}]{${1:name}}{${2:text}}A\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"firstslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstslide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"firstslide[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lastslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastslide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lastslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lastslide[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prevslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prevslide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prevslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prevslide[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextslide{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nextslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nextslide[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prevstep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prevstep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prevstep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prevstep[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextstep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextstep{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nextstep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nextstep[${2:optional style%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showorhide\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showorhide{${1:actions}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"showorhide\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showorhide[${3:optional style%keyvals}]{${1:actions}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newcolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newcolor{${1:name%specialDef}}{${2:color model}}{${3:values}}\"\n      }\n    },\n    {\n      \"name\": \"newcolor\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"newcolor{${1:name%specialDef}}{${2:color model}}[${4:opacity}]{${3:values}}\"\n      }\n    },\n    {\n      \"name\": \"usecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"newshade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newshade{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"newimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newimage{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"newimage\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newimage{${1:name}}[${3:width,height}]{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"useimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useimage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsymbol{${1:cmd}}{${2:drawing}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbol\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newsymbol{${1:cmd}}[${3:settings%keyvals}]{${2:drawing}}\",\n        \"keys\": [\n          \"\\\\newsymbol#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"symbolwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolwidth{${1:symbol cmd}}\"\n      }\n    },\n    {\n      \"name\": \"symbolheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolheight{${1:symbol cmd}}\"\n      }\n    },\n    {\n      \"name\": \"symboldepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symboldepth{${1:symbol cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newtransition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtransition{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addtopageobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtopageobject{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtoeachpageobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoeachpageobject{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtopageresources\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtopageresources{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addproperties\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addproperties{${1:name}}{${2:object number}}\"\n      }\n    },\n    {\n      \"name\": \"addshading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addshading{${1:name}}{${2:object number}}\"\n      }\n    },\n    {\n      \"name\": \"addgstate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addgstate{${1:name}}{${2:object number}}\"\n      }\n    },\n    {\n      \"name\": \"addOCG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addOCG{${1:object number}}\"\n      }\n    },\n    {\n      \"name\": \"addvisibleOCG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvisibleOCG{${1:object number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\slide\": [\n      \"pdftitle=${1:string}\",\n      \"bookmark\",\n      \"bookmarklevel=${1:number}\",\n      \"bookmarkstyle=${1:bookmark options}\",\n      \"anchor=${1:name}\",\n      \"width=\",\n      \"height=\",\n      \"hsize=\",\n      \"left=\",\n      \"right=\",\n      \"vsize=\",\n      \"top=\",\n      \"bottom=\",\n      \"baselineskip=\",\n      \"topskip=\",\n      \"parskip=\",\n      \"parindent=\",\n      \"hpos=${1|ff,fr,rf,rr|}\",\n      \"vpos=${1|top,center,bottom|}\",\n      \"scale\",\n      \"everyslide=${1:code}\",\n      \"areas=${1:list of areas}\",\n      \"areas*=${1:list of areas}\",\n      \"background=\",\n      \"foreground=\",\n      \"image=${1:image}\",\n      \"font=${1:font command}\",\n      \"transition=${1:named transition}\"\n    ],\n    \"\\\\step\": [\n      \"pdftitle=${1:string}\",\n      \"on=${1:list of steps}\",\n      \"off=${1:list of steps}\",\n      \"handout\",\n      \"visible\",\n      \"left=\",\n      \"right=\",\n      \"vskip=\",\n      \"everyvstep=${1:code}\",\n      \"hskip=\",\n      \"everyhstep=${1:code}\",\n      \"group\",\n      \"font=${1:font command}\",\n      \"color=\",\n      \"transition=${1:named transition}\"\n    ],\n    \"\\\\createbookmark#c\": [\n      \"bold\",\n      \"italic\",\n      \"bolditalic\",\n      \"open\",\n      \"closed\",\n      \"nosubmenutext\"\n    ],\n    \"\\\\showbookmarks,\\\\goto,\\\\gotoA,\\\\gotoB,\\\\firstslide,\\\\lastslide,\\\\prevslide,\\\\nextslide,\\\\prevstep,\\\\nextstep,\\\\showorhide\": [\n      \"flash\",\n      \"push\",\n      \"none\"\n    ],\n    \"\\\\newsymbol#c\": [\n      \"left=\",\n      \"right=\",\n      \"top=\",\n      \"bottom=\",\n      \"padding=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lectureslides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"course[${2:footnote%text}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lecture{${1:title}}{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"lecture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"lecture{${1:title}}[${3:start}]{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"lecture{${1:title}}[${3:start}][${4:end}]{${2:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"lecturetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lecturetitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"lectureslides\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lectureslides{${1:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"lectureslides\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lectureslides[${2:start}]{${1:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"lectureslides\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"lectureslides[${2:start}][${3:end}]{${1:PDF file%file}}\"\n      }\n    },\n    {\n      \"name\": \"tocline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"createdAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"createdAt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"orientation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lectureslides#c\": [\n      \"portrait\",\n      \"landscape\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lectureslides#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/leftidx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"leftidx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leftidx{${1:left indices}}{${2:symbol}}{${3:right indices}}\"\n      }\n    },\n    {\n      \"name\": \"ltrans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltrans{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/leftindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftindex^\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftindex^{${1:sup}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"leftindex_\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftindex_{${1:sub}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"leftindex^\",\n      \"arg\": {\n        \"format\": \"{}_{}{}\",\n        \"snippet\": \"leftindex^{${1:sup}}_{${2:sub}}{${3:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"leftindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]^{}_{}{}\",\n        \"snippet\": \"leftindex[${4:slanting phantom}]^{${1:sup}}_{${2:sub}}{${3:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"leftindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]^{}_{}{}\",\n        \"snippet\": \"leftindex[${4:slanting phantom}][${5:height phantom}]^{${1:sup}}_{${2:sub}}{${3:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"LeftIndex^\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftIndex^{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"LeftIndex_\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftIndex_{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"LeftIndex^\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"LeftIndex^{${1:sup}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"LeftIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]^{}_{}\",\n        \"snippet\": \"LeftIndex[${3:slanting phantom}]^{${1:sup}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"LeftIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]^{}_{}\",\n        \"snippet\": \"LeftIndex[${3:slanting phantom}][${4:height phantom}]^{${1:sup}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"manualleftindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"manualleftindex{${1:height phantom}}{${2:slanting phantom}}{${3:sup}}{${4:sub}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/leipzig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"glossary-inline\"\n    },\n    {\n      \"name\": \"glossary-mcols\"\n    },\n    {\n      \"name\": \"glossary-tree\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    },\n    {\n      \"name\": \"glossaries-compatible-207\",\n      \"if\": \"compatible-2.07\"\n    },\n    {\n      \"name\": \"glossaries-compatible-207\",\n      \"if\": \"compatible-2.07=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newleipzig\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newleipzig{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newleipzig\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newleipzig[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\newleipzig#c,\\\\renewleipzig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewleipzig\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewleipzig{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"renewleipzig\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"renewleipzig[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\",\n        \"keys\": [\n          \"\\\\newleipzig#c,\\\\renewleipzig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printglosses\"\n    },\n    {\n      \"name\": \"printglosses\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printglosses[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printglosses#c,\\\\printleipzig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printleipzig\"\n    },\n    {\n      \"name\": \"printleipzig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printleipzig[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printglosses#c,\\\\printleipzig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leipzigfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leipzigfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstleipzigfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstleipzigfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifleipzighyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzighypertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzighyperfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleipzigdesccapitalize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigdesccapitalizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigdesccapitalizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleipzignonumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzignonumberstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzignonumbersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleipzigdonotindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigdonotindextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigdonotindexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leipzigtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glspostnamespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsinlineshortlongseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aarg\"\n    },\n    {\n      \"name\": \"Abl\"\n    },\n    {\n      \"name\": \"Abs\"\n    },\n    {\n      \"name\": \"Acc\"\n    },\n    {\n      \"name\": \"Adj\"\n    },\n    {\n      \"name\": \"Adv\"\n    },\n    {\n      \"name\": \"Agr\"\n    },\n    {\n      \"name\": \"All\"\n    },\n    {\n      \"name\": \"Antip\"\n    },\n    {\n      \"name\": \"Appl\"\n    },\n    {\n      \"name\": \"Art\"\n    },\n    {\n      \"name\": \"Aux\"\n    },\n    {\n      \"name\": \"Ben\"\n    },\n    {\n      \"name\": \"Caus\"\n    },\n    {\n      \"name\": \"Clf\"\n    },\n    {\n      \"name\": \"Com\"\n    },\n    {\n      \"name\": \"Comp\"\n    },\n    {\n      \"name\": \"Compl\"\n    },\n    {\n      \"name\": \"Cond\"\n    },\n    {\n      \"name\": \"Cop\"\n    },\n    {\n      \"name\": \"Cvb\"\n    },\n    {\n      \"name\": \"Dat\"\n    },\n    {\n      \"name\": \"Decl\"\n    },\n    {\n      \"name\": \"Def\"\n    },\n    {\n      \"name\": \"Dem\"\n    },\n    {\n      \"name\": \"Det\"\n    },\n    {\n      \"name\": \"Dist\"\n    },\n    {\n      \"name\": \"Distr\"\n    },\n    {\n      \"name\": \"Du\"\n    },\n    {\n      \"name\": \"Dur\"\n    },\n    {\n      \"name\": \"Erg\"\n    },\n    {\n      \"name\": \"Excl\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"Foc\"\n    },\n    {\n      \"name\": \"Fut\"\n    },\n    {\n      \"name\": \"Gen\"\n    },\n    {\n      \"name\": \"Imp\"\n    },\n    {\n      \"name\": \"Incl\"\n    },\n    {\n      \"name\": \"Ind\"\n    },\n    {\n      \"name\": \"Indf\"\n    },\n    {\n      \"name\": \"Inf\"\n    },\n    {\n      \"name\": \"Ins\"\n    },\n    {\n      \"name\": \"Intr\"\n    },\n    {\n      \"name\": \"Ipfv\"\n    },\n    {\n      \"name\": \"Irr\"\n    },\n    {\n      \"name\": \"Loc\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Neg\"\n    },\n    {\n      \"name\": \"Nmlz\"\n    },\n    {\n      \"name\": \"Nom\"\n    },\n    {\n      \"name\": \"Obj\"\n    },\n    {\n      \"name\": \"Obl\"\n    },\n    {\n      \"name\": \"Parg\"\n    },\n    {\n      \"name\": \"Pass\"\n    },\n    {\n      \"name\": \"Pfv\"\n    },\n    {\n      \"name\": \"Pl\"\n    },\n    {\n      \"name\": \"Poss\"\n    },\n    {\n      \"name\": \"Pred\"\n    },\n    {\n      \"name\": \"Prf\"\n    },\n    {\n      \"name\": \"Prs\"\n    },\n    {\n      \"name\": \"Prog\"\n    },\n    {\n      \"name\": \"Proh\"\n    },\n    {\n      \"name\": \"Prox\"\n    },\n    {\n      \"name\": \"Pst\"\n    },\n    {\n      \"name\": \"Ptcp\"\n    },\n    {\n      \"name\": \"Purp\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"Quot\"\n    },\n    {\n      \"name\": \"Recp\"\n    },\n    {\n      \"name\": \"Refl\"\n    },\n    {\n      \"name\": \"Rel\"\n    },\n    {\n      \"name\": \"Res\"\n    },\n    {\n      \"name\": \"Sarg\"\n    },\n    {\n      \"name\": \"Sbj\"\n    },\n    {\n      \"name\": \"Sbjv\"\n    },\n    {\n      \"name\": \"Sg\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"Tr\"\n    },\n    {\n      \"name\": \"Voc\"\n    },\n    {\n      \"name\": \"First\"\n    },\n    {\n      \"name\": \"Second\"\n    },\n    {\n      \"name\": \"Third\"\n    },\n    {\n      \"name\": \"Fsg\"\n    },\n    {\n      \"name\": \"Fdu\"\n    },\n    {\n      \"name\": \"Fpl\"\n    },\n    {\n      \"name\": \"Ssg\"\n    },\n    {\n      \"name\": \"Sdu\"\n    },\n    {\n      \"name\": \"Spl\"\n    },\n    {\n      \"name\": \"Tsg\"\n    },\n    {\n      \"name\": \"Tdu\"\n    },\n    {\n      \"name\": \"Tpl\"\n    },\n    {\n      \"name\": \"glsshowtarget\",\n      \"if\": \"debug=showtargets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtarget{${1:target name}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetouter\",\n      \"if\": \"debug=showtargets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsshowtargetouter{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glsshowtargetfont\",\n      \"if\": \"debug=showtargets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowaccsupp\",\n      \"if\": \"debug=showaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsshowaccsupp{${1:options}}{${2:tag}}{${3:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"if\": \"symbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareAcronymList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareAcronymList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"SetAcronymLists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetAcronymLists{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"glsIfListOfAcronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsIfListOfAcronyms{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DefineAcronymSynonyms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acs{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acs{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acs\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acs[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acsp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acsp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acsp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acsp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acl\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aclp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Aclp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Aclp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Aclp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acf{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acf\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acf[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acfp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acfp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acfp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ac{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Ac{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Ac\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Ac[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Acp{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Acp\",\n      \"if\": \"shortcuts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Acp[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/leipzig#c\": [\n      \"glossaries\",\n      \"noglossaries\",\n      \"glosses\",\n      \"leipzig\",\n      \"nostandards\",\n      \"block\",\n      \"mcolblock\",\n      \"inline\",\n      \"leipzighyper\",\n      \"leipzignohyper\",\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"debug=${1|false,true,showtargets,showaccsupp|}\",\n      \"savewrites\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=\",\n      \"nolong\",\n      \"nosuper\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|standard,def,use,none|}\",\n      \"order=${1|word,letter|}\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"automake=${1|false,true,immediate|}\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"nomain\",\n      \"symbols\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronym\",\n      \"acronyms\",\n      \"acronymlists={${1:value}}\",\n      \"shortcuts\",\n      \"compatible-2.07\",\n      \"compatible-3.07\",\n      \"kernelglossredefs={${1:value}}\"\n    ],\n    \"\\\\newleipzig#c,\\\\renewleipzig#c\": [\n      \"name=\",\n      \"description=\",\n      \"parent=\",\n      \"descriptionplural=\",\n      \"text=\",\n      \"first=\",\n      \"plural=\",\n      \"firstplural=\",\n      \"symbol=\",\n      \"symbolplural=\",\n      \"sort=\",\n      \"type=\",\n      \"user1=\",\n      \"user2=\",\n      \"user3=\",\n      \"user4=\",\n      \"user5=\",\n      \"user6=\",\n      \"nonumberlist\",\n      \"see=\",\n      \"long=\",\n      \"longplural=\",\n      \"short=\",\n      \"shortplural=\"\n    ],\n    \"\\\\printglosses#c,\\\\printleipzig#c\": [\n      \"type=\",\n      \"title=\",\n      \"toctitle=\",\n      \"style=\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|word,letter,standard,use,def,nocase,case|}\"\n    ],\n    \"\\\\setglossarystyle#c\": [\n      \"leipzigalttree\",\n      \"block\",\n      \"leipzigmcolalttree\",\n      \"mcolblock\"\n    ],\n    \"\\\\setacronymstyle#c\": [\n      \"long-lpz-short\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/leipzig#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lengthconvert.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Convert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Convert{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Convert\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Convert[${2:options%keyvals}]{${1:length}}\",\n        \"keys\": [\n          \"\\\\Convert,\\\\Convertsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Convertsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Convertsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\Convert,\\\\Convertsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Convert,\\\\Convertsetup\": [\n      \"unit=${1|pt,pc,in,bp,cm,mm,dd,cc,sp|}\",\n      \"pt\",\n      \"pc\",\n      \"in\",\n      \"bp\",\n      \"cm\",\n      \"mm\",\n      \"dd\",\n      \"cc\",\n      \"sp\",\n      \"point\",\n      \"pica\",\n      \"inch\",\n      \"big-point\",\n      \"centimeter\",\n      \"millimeter\",\n      \"didot-point\",\n      \"cicero\",\n      \"scaled-point\",\n      \"use-siunitx\",\n      \"precision=${1:integer}\",\n      \"number-only\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lete-sans-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BbbDelta\"\n    },\n    {\n      \"name\": \"BbbLambda\"\n    },\n    {\n      \"name\": \"BbbOmega\"\n    },\n    {\n      \"name\": \"BbbPhi\"\n    },\n    {\n      \"name\": \"BbbPsi\"\n    },\n    {\n      \"name\": \"BbbSigma\"\n    },\n    {\n      \"name\": \"BbbTheta\"\n    },\n    {\n      \"name\": \"BbbXi\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gtreqqslantless\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"lesseqqslantgtr\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mbfdotlessi\"\n    },\n    {\n      \"name\": \"mbfdotlessj\"\n    },\n    {\n      \"name\": \"mbfimath\"\n    },\n    {\n      \"name\": \"mbfjmath\"\n    },\n    {\n      \"name\": \"mithbar\"\n    },\n    {\n      \"name\": \"mupvarg\"\n    },\n    {\n      \"name\": \"mbfvarg\"\n    },\n    {\n      \"name\": \"mitvarg\"\n    },\n    {\n      \"name\": \"mbfitvarg\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqqslant\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nparallelslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortparallelslant\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"parallelslant \"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortparallelslant\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"acwcirclearrow\",\n      \"detail\": \"⥀\",\n      \"doc\": \"Anticlockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"acwleftarcarrow\",\n      \"detail\": \"⤹\",\n      \"doc\": \"Left-side arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwoverarcarrow\",\n      \"detail\": \"⤺\",\n      \"doc\": \"Top arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwunderarcarrow\",\n      \"detail\": \"⤻\",\n      \"doc\": \"Bottom arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"angdnr\",\n      \"detail\": \"⦟\",\n      \"doc\": \"Acute angle\"\n    },\n    {\n      \"name\": \"angles\",\n      \"detail\": \"⦞\",\n      \"doc\": \"Angle with s inside\"\n    },\n    {\n      \"name\": \"angleubar\",\n      \"detail\": \"⦤\",\n      \"doc\": \"Angle with underbar\"\n    },\n    {\n      \"name\": \"annuity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annuity{${1:arg}}\"\n      },\n      \"detail\": \"x⃧\",\n      \"doc\": \"Combining annuity symbol\"\n    },\n    {\n      \"name\": \"approxeqq\",\n      \"detail\": \"⩰\",\n      \"doc\": \"Approximately equal or equal to\"\n    },\n    {\n      \"name\": \"asteq\",\n      \"detail\": \"⩮\",\n      \"doc\": \"Equals with asterisk\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"bagmember\",\n      \"detail\": \"⋿\",\n      \"doc\": \"\\\\mathsf{e}, bag membership\"\n    },\n    {\n      \"name\": \"barcap\",\n      \"detail\": \"⩃\",\n      \"doc\": \"Intersection with overbar\"\n    },\n    {\n      \"name\": \"barcup\",\n      \"detail\": \"⩂\",\n      \"doc\": \"Union with overbar\"\n    },\n    {\n      \"name\": \"bardownharpoonleft\",\n      \"detail\": \"⥡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"bardownharpoonright\",\n      \"detail\": \"⥝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\"\n    },\n    {\n      \"name\": \"barleftharpoondown\",\n      \"detail\": \"⥖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"barleftharpoonup\",\n      \"detail\": \"⥒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"barrightarrowdiamond\",\n      \"detail\": \"⤠\",\n      \"doc\": \"Rightwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"barrightharpoondown\",\n      \"detail\": \"⥟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"barrightharpoonup\",\n      \"detail\": \"⥛ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"baruparrow\",\n      \"detail\": \"⤒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards arrow to bar\"\n    },\n    {\n      \"name\": \"barupharpoonleft\",\n      \"detail\": \"⥘ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"barupharpoonright\",\n      \"detail\": \"⥔ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"Barv\",\n      \"detail\": \"⫧\",\n      \"doc\": \"Short down tack with overbar\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"bbrktbrk\",\n      \"detail\": \"⎶\",\n      \"doc\": \"Bottom square bracket over top square bracket\"\n    },\n    {\n      \"name\": \"benzenr\",\n      \"detail\": \"⏣\",\n      \"doc\": \"Benzene ring with circle\"\n    },\n    {\n      \"name\": \"biginterleave\",\n      \"detail\": \"⫼ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Large triple vertical bar operator\"\n    },\n    {\n      \"name\": \"bigslopedvee\",\n      \"detail\": \"⩗\",\n      \"doc\": \"Sloping large or\"\n    },\n    {\n      \"name\": \"bigslopedwedge\",\n      \"detail\": \"⩘\",\n      \"doc\": \"Sloping large and\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtalloblong\",\n      \"detail\": \"⫿\",\n      \"doc\": \"N-ary white vertical bar\"\n    },\n    {\n      \"name\": \"bigtriangleleft\",\n      \"detail\": \"⨞\",\n      \"doc\": \"Large left triangle operator\"\n    },\n    {\n      \"name\": \"bigwhitestar\",\n      \"detail\": \"☆\",\n      \"doc\": \"Star, open\"\n    },\n    {\n      \"name\": \"blackcircledownarrow\",\n      \"detail\": \"⧭\",\n      \"doc\": \"Black circle with down arrow\"\n    },\n    {\n      \"name\": \"blackcircleulquadwhite\",\n      \"detail\": \"◕\",\n      \"doc\": \"Circle with all but upper left quadrant black\"\n    },\n    {\n      \"name\": \"blackdiamonddownarrow\",\n      \"detail\": \"⧪\",\n      \"doc\": \"Black diamond with down arrow\"\n    },\n    {\n      \"name\": \"blackhourglass\",\n      \"detail\": \"⧗\",\n      \"doc\": \"Black hourglass\"\n    },\n    {\n      \"name\": \"blackinwhitediamond\",\n      \"detail\": \"◈\",\n      \"doc\": \"White diamond containing black small diamond\"\n    },\n    {\n      \"name\": \"blackinwhitesquare\",\n      \"detail\": \"▣\",\n      \"doc\": \"White square containing black small square\"\n    },\n    {\n      \"name\": \"blacklefthalfcircle\",\n      \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Left half black circle\"\n    },\n    {\n      \"name\": \"blackpointerleft\",\n      \"detail\": \"◄\",\n      \"doc\": \"Black left-pointing pointer\"\n    },\n    {\n      \"name\": \"blackpointerright\",\n      \"detail\": \"►\",\n      \"doc\": \"Black right-pointing pointer\"\n    },\n    {\n      \"name\": \"blackrighthalfcircle\",\n      \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Right half black circle\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blkhorzoval\",\n      \"detail\": \"⬬\",\n      \"doc\": \"Black horizontal ellipse\"\n    },\n    {\n      \"name\": \"blkvertoval\",\n      \"detail\": \"⬮\",\n      \"doc\": \"Black vertical ellipse\"\n    },\n    {\n      \"name\": \"bNot\",\n      \"detail\": \"⫭\",\n      \"doc\": \"Reversed double stroke not sign\"\n    },\n    {\n      \"name\": \"botsemicircle\",\n      \"detail\": \"◡\",\n      \"doc\": \"Lower half circle\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxcircle\",\n      \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared small circle\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxonbox\",\n      \"detail\": \"⧉\",\n      \"doc\": \"Two joined squares\"\n    },\n    {\n      \"name\": \"bsimilarleftarrow\",\n      \"detail\": \"⭁\",\n      \"doc\": \"Reverse tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"bsimilarrightarrow\",\n      \"detail\": \"⭇\",\n      \"doc\": \"Reverse tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"bsolhsub\",\n      \"detail\": \"⟈\",\n      \"doc\": \"Reverse solidus preceding subset\"\n    },\n    {\n      \"name\": \"btimes\",\n      \"detail\": \"⨲\",\n      \"doc\": \"Semidirect product with bottom closed\"\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"bumpeqq\",\n      \"detail\": \"⪮\",\n      \"doc\": \"Equals sign with bumpy above\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"capbarcup\",\n      \"detail\": \"⩉\",\n      \"doc\": \"Intersection above bar above union\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capovercup\",\n      \"detail\": \"⩇\",\n      \"doc\": \"Intersection above union\"\n    },\n    {\n      \"name\": \"capwedge\",\n      \"detail\": \"⩄\",\n      \"doc\": \"Intersection with logical and\"\n    },\n    {\n      \"name\": \"caretinsert\",\n      \"detail\": \"‸\",\n      \"doc\": \"Caret (insertion mark)\"\n    },\n    {\n      \"name\": \"ccwundercurvearrow\",\n      \"detail\": \"⤿\",\n      \"doc\": \"Lower left semicircular anticlockwise arrow\"\n    },\n    {\n      \"name\": \"cirbot\",\n      \"detail\": \"⟟\",\n      \"doc\": \"Up tack with circle above\"\n    },\n    {\n      \"name\": \"circlebottomhalfblack\",\n      \"detail\": \"◒\",\n      \"doc\": \"Circle, filled bottom half\"\n    },\n    {\n      \"name\": \"circledbullet\",\n      \"detail\": \"⦿\",\n      \"doc\": \"Circled bullet\"\n    },\n    {\n      \"name\": \"circledownarrow\",\n      \"detail\": \"⧬\",\n      \"doc\": \"White circle with down arrow\"\n    },\n    {\n      \"name\": \"circledparallel\",\n      \"detail\": \"⦷\",\n      \"doc\": \"Circled parallel\"\n    },\n    {\n      \"name\": \"circledvert\",\n      \"detail\": \"⦶\",\n      \"doc\": \"Circled vertical bar\"\n    },\n    {\n      \"name\": \"circledwhitebullet\",\n      \"detail\": \"⦾\",\n      \"doc\": \"Circled white bullet\"\n    },\n    {\n      \"name\": \"circlehbar\",\n      \"detail\": \"⦵\",\n      \"doc\": \"Circle with horizontal bar\"\n    },\n    {\n      \"name\": \"circlelefthalfblack\",\n      \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled left half [harvey ball]\"\n    },\n    {\n      \"name\": \"circlellquad\",\n      \"detail\": \"◵\",\n      \"doc\": \"White circle with lower left quadrant\"\n    },\n    {\n      \"name\": \"circlelrquad\",\n      \"detail\": \"◶\",\n      \"doc\": \"White circle with lower right quadrant\"\n    },\n    {\n      \"name\": \"circleonleftarrow\",\n      \"detail\": \"⬰\",\n      \"doc\": \"Left arrow with small circle\"\n    },\n    {\n      \"name\": \"circleonrightarrow\",\n      \"detail\": \"⇴\",\n      \"doc\": \"Right arrow with small circle\"\n    },\n    {\n      \"name\": \"circlerighthalfblack\",\n      \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled right half\"\n    },\n    {\n      \"name\": \"circletophalfblack\",\n      \"detail\": \"◓\",\n      \"doc\": \"Circle, filled top half\"\n    },\n    {\n      \"name\": \"circleulquad\",\n      \"detail\": \"◴\",\n      \"doc\": \"White circle with upper left quadrant\"\n    },\n    {\n      \"name\": \"circleurquad\",\n      \"detail\": \"◷\",\n      \"doc\": \"White circle with upper right quadrant\"\n    },\n    {\n      \"name\": \"circleurquadblack\",\n      \"detail\": \"◔\",\n      \"doc\": \"Circle with upper right quadrant black\"\n    },\n    {\n      \"name\": \"circlevertfill\",\n      \"detail\": \"◍\",\n      \"doc\": \"Circle with vertical fill\"\n    },\n    {\n      \"name\": \"cirE\",\n      \"detail\": \"⧃\",\n      \"doc\": \"Circle with two horizontal strokes to the right\"\n    },\n    {\n      \"name\": \"cirmid\",\n      \"detail\": \"⫯\",\n      \"doc\": \"Vertical line with circle above\"\n    },\n    {\n      \"name\": \"cirscir\",\n      \"detail\": \"⧂\",\n      \"doc\": \"Circle with small circle to the right\"\n    },\n    {\n      \"name\": \"closedvarcap\",\n      \"detail\": \"⩍\",\n      \"doc\": \"Closed intersection with serifs\"\n    },\n    {\n      \"name\": \"closedvarcup\",\n      \"detail\": \"⩌\",\n      \"doc\": \"Closed union with serifs\"\n    },\n    {\n      \"name\": \"closedvarcupsmashprod\",\n      \"detail\": \"⩐\",\n      \"doc\": \"Closed union with serifs and smash product\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"commaminus\",\n      \"detail\": \"⨩\",\n      \"doc\": \"Minus sign with comma above\"\n    },\n    {\n      \"name\": \"congdot\",\n      \"detail\": \"⩭\",\n      \"doc\": \"Congruent with dot above\"\n    },\n    {\n      \"name\": \"conjquant\",\n      \"detail\": \"⨇\",\n      \"doc\": \"Two logical and operator\"\n    },\n    {\n      \"name\": \"csub\",\n      \"detail\": \"⫏\",\n      \"doc\": \"Closed subset\"\n    },\n    {\n      \"name\": \"csube\",\n      \"detail\": \"⫑\",\n      \"doc\": \"Closed subset or equal to\"\n    },\n    {\n      \"name\": \"csup\",\n      \"detail\": \"⫐\",\n      \"doc\": \"Closed superset\"\n    },\n    {\n      \"name\": \"csupe\",\n      \"detail\": \"⫒\",\n      \"doc\": \"Closed superset or equal to\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cupbarcap\",\n      \"detail\": \"⩈\",\n      \"doc\": \"Union above bar above intersection\"\n    },\n    {\n      \"name\": \"cupovercap\",\n      \"detail\": \"⩆\",\n      \"doc\": \"Union above intersection\"\n    },\n    {\n      \"name\": \"cupvee\",\n      \"detail\": \"⩅\",\n      \"doc\": \"Union with logical or\"\n    },\n    {\n      \"name\": \"curvearrowleftplus\",\n      \"detail\": \"⤽\",\n      \"doc\": \"Top arc anticlockwise arrow with plus\"\n    },\n    {\n      \"name\": \"curvearrowrightminus\",\n      \"detail\": \"⤼\",\n      \"doc\": \"Top arc clockwise arrow with minus\"\n    },\n    {\n      \"name\": \"cwcirclearrow\",\n      \"detail\": \"⥁\",\n      \"doc\": \"Clockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"cwrightarcarrow\",\n      \"detail\": \"⤸\",\n      \"doc\": \"Right-side arc clockwise arrow\"\n    },\n    {\n      \"name\": \"cwundercurvearrow\",\n      \"detail\": \"⤾\",\n      \"doc\": \"Lower right semicircular clockwise arrow\"\n    },\n    {\n      \"name\": \"danger\",\n      \"detail\": \"☡\",\n      \"doc\": \"Caution sign, dangerous bend\"\n    },\n    {\n      \"name\": \"dashleftharpoondown\",\n      \"detail\": \"⥫ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashrightharpoondown\",\n      \"detail\": \"⥭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dbkarow\",\n      \"detail\": \"⤏\",\n      \"doc\": \"Rightwards triple dash arrow\"\n    },\n    {\n      \"name\": \"dbkarrow\"\n    },\n    {\n      \"name\": \"ddotseq\",\n      \"detail\": \"⩷\",\n      \"doc\": \"Equals sign with two dots above and two dots below\"\n    },\n    {\n      \"name\": \"DDownarrow\",\n      \"detail\": \"⟱\",\n      \"doc\": \"Downwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"diamondbotblack\",\n      \"detail\": \"⬙\",\n      \"doc\": \"Diamond with bottom half black\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"diamondleftarrow\",\n      \"detail\": \"⤝\",\n      \"doc\": \"Leftwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftarrowbar\",\n      \"detail\": \"⤟\",\n      \"doc\": \"Leftwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftblack\",\n      \"detail\": \"⬖\",\n      \"doc\": \"Diamond with left half black\"\n    },\n    {\n      \"name\": \"diamondrightblack\",\n      \"detail\": \"⬗\",\n      \"doc\": \"Diamond with right half black\"\n    },\n    {\n      \"name\": \"diamondtopblack\",\n      \"detail\": \"⬘\",\n      \"doc\": \"Diamond with top half black\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"disin\",\n      \"detail\": \"⋲\",\n      \"doc\": \"Element of with long horizontal stroke\"\n    },\n    {\n      \"name\": \"disjquant\",\n      \"detail\": \"⨈\",\n      \"doc\": \"Two logical or operator\"\n    },\n    {\n      \"name\": \"dotequiv\",\n      \"detail\": \"⩧\",\n      \"doc\": \"Identical with dot above\"\n    },\n    {\n      \"name\": \"dotsim\",\n      \"detail\": \"⩪\",\n      \"doc\": \"Tilde operator with dot above\"\n    },\n    {\n      \"name\": \"dottedcircle\",\n      \"detail\": \"◌\",\n      \"doc\": \"Dotted circle\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarvee\",\n      \"detail\": \"⩢\",\n      \"doc\": \"Logical or with double overbar\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doubleplus\",\n      \"detail\": \"⧺\",\n      \"doc\": \"Double plus\"\n    },\n    {\n      \"name\": \"downarrowbar\",\n      \"detail\": \"⤓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards arrow to bar\"\n    },\n    {\n      \"name\": \"downarrowbarred\",\n      \"detail\": \"⤈\",\n      \"doc\": \"Downwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downfishtail\",\n      \"detail\": \"⥿\",\n      \"doc\": \"Down fish tail\"\n    },\n    {\n      \"name\": \"downharpoonleftbar\",\n      \"detail\": \"⥙ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"downharpoonrightbar\",\n      \"detail\": \"⥕ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"downharpoonsleftright\",\n      \"detail\": \"⥥ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"downtriangleleftblack\",\n      \"detail\": \"⧨\",\n      \"doc\": \"Down-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"downtrianglerightblack\",\n      \"detail\": \"⧩\",\n      \"doc\": \"Down-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"draftingarrow\",\n      \"detail\": \"➛\",\n      \"doc\": \"Right arrow with bold head (drafting)\"\n    },\n    {\n      \"name\": \"drbkarow\",\n      \"detail\": \"⤐\",\n      \"doc\": \"Rightwards two-headed triple dash arrow\"\n    },\n    {\n      \"name\": \"drbkarrow\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"dsol\",\n      \"detail\": \"⧶\",\n      \"doc\": \"Solidus with overbar\"\n    },\n    {\n      \"name\": \"dsub\",\n      \"detail\": \"⩤ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\ndres (oz), domain antirestriction\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"egsdot\",\n      \"detail\": \"⪘\",\n      \"doc\": \"Slanted equal to or greater-than with dot inside\"\n    },\n    {\n      \"name\": \"elsdot\",\n      \"detail\": \"⪗\",\n      \"doc\": \"Slanted equal to or less-than with dot inside\"\n    },\n    {\n      \"name\": \"emptysetoarr\",\n      \"detail\": \"⦳\",\n      \"doc\": \"Empty set with right arrow above\"\n    },\n    {\n      \"name\": \"emptysetoarrl\",\n      \"detail\": \"⦴\",\n      \"doc\": \"Empty set with left arrow above\"\n    },\n    {\n      \"name\": \"emptysetobar\",\n      \"detail\": \"⦱\",\n      \"doc\": \"Empty set with overbar\"\n    },\n    {\n      \"name\": \"emptysetocirc\",\n      \"detail\": \"⦲\",\n      \"doc\": \"Empty set with small circle above\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"eparsl\",\n      \"detail\": \"⧣\",\n      \"doc\": \"Equals sign and slanted parallel\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqeq\",\n      \"detail\": \"⩵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"==, two consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqeqeq\",\n      \"detail\": \"⩶ (\\\"wrisym\\\" command)\",\n      \"doc\": \"===, three consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqqgtr\",\n      \"detail\": \"⪚\",\n      \"doc\": \"Double-line equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqless\",\n      \"detail\": \"⪙\",\n      \"doc\": \"Double-line equal to or less-than\"\n    },\n    {\n      \"name\": \"eqqplus\",\n      \"detail\": \"⩱\",\n      \"doc\": \"Equals sign above plus sign\"\n    },\n    {\n      \"name\": \"eqqsim\",\n      \"detail\": \"⩳\",\n      \"doc\": \"Equals sign above tilde operator\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalleftarrow\",\n      \"detail\": \"⭀\",\n      \"doc\": \"Equals sign above leftwards arrow\"\n    },\n    {\n      \"name\": \"equalrightarrow\",\n      \"detail\": \"⥱\",\n      \"doc\": \"Equals sign above rightwards arrow\"\n    },\n    {\n      \"name\": \"equivDD\",\n      \"detail\": \"⩸\",\n      \"doc\": \"Equivalent with four dots above\"\n    },\n    {\n      \"name\": \"equivVert\",\n      \"detail\": \"⩨\",\n      \"doc\": \"Triple horizontal bar with double vertical stroke\"\n    },\n    {\n      \"name\": \"equivVvert\",\n      \"detail\": \"⩩\",\n      \"doc\": \"Triple horizontal bar with triple vertical stroke\"\n    },\n    {\n      \"name\": \"eqvparsl\",\n      \"detail\": \"⧥\",\n      \"doc\": \"Identical to and slanted parallel\"\n    },\n    {\n      \"name\": \"errbarblackcircle\",\n      \"detail\": \"⧳\",\n      \"doc\": \"Error-barred black circle\"\n    },\n    {\n      \"name\": \"errbarblackdiamond\",\n      \"detail\": \"⧱\",\n      \"doc\": \"Error-barred black diamond\"\n    },\n    {\n      \"name\": \"errbarblacksquare\",\n      \"detail\": \"⧯\",\n      \"doc\": \"Error-barred black square\"\n    },\n    {\n      \"name\": \"errbarcircle\",\n      \"detail\": \"⧲\",\n      \"doc\": \"Error-barred white circle\"\n    },\n    {\n      \"name\": \"errbardiamond\",\n      \"detail\": \"⧰\",\n      \"doc\": \"Error-barred white diamond\"\n    },\n    {\n      \"name\": \"errbarsquare\",\n      \"detail\": \"⧮\",\n      \"doc\": \"Error-barred white square\"\n    },\n    {\n      \"name\": \"Exclam\",\n      \"detail\": \"‼\",\n      \"doc\": \"!!, double exclamation mark\"\n    },\n    {\n      \"name\": \"fbowtie\",\n      \"detail\": \"⧓\",\n      \"doc\": \"Black bowtie\"\n    },\n    {\n      \"name\": \"fcmp\",\n      \"detail\": \"⨾ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\comp (oz), relational composition\"\n    },\n    {\n      \"name\": \"fdiagovnearrow\",\n      \"detail\": \"⤯\",\n      \"doc\": \"Falling diagonal crossing north east arrow\"\n    },\n    {\n      \"name\": \"fdiagovrdiag\",\n      \"detail\": \"⤬\",\n      \"doc\": \"Falling diagonal crossing rising diagonal\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fltns\",\n      \"detail\": \"⏥\",\n      \"doc\": \"Flatness\"\n    },\n    {\n      \"name\": \"forks\",\n      \"detail\": \"⫝̸\",\n      \"doc\": \"Forking\"\n    },\n    {\n      \"name\": \"forksnot\",\n      \"detail\": \"⫝\",\n      \"doc\": \"Nonforking\"\n    },\n    {\n      \"name\": \"forkv\",\n      \"detail\": \"⫙\",\n      \"doc\": \"Element of opening downwards\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fourvdots\",\n      \"detail\": \"⦙\",\n      \"doc\": \"Dotted fence\"\n    },\n    {\n      \"name\": \"fullouterjoin\",\n      \"detail\": \"⟗\",\n      \"doc\": \"Full outer join\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gescc\",\n      \"detail\": \"⪩\",\n      \"doc\": \"Greater-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"gesdot\",\n      \"detail\": \"⪀\",\n      \"doc\": \"Greater-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"gesdoto\",\n      \"detail\": \"⪂\",\n      \"doc\": \"Greater-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"gesdotol\",\n      \"detail\": \"⪄\",\n      \"doc\": \"Greater-than or slanted equal to with dot above left\"\n    },\n    {\n      \"name\": \"gesles\",\n      \"detail\": \"⪔\",\n      \"doc\": \"Greater-than above slanted equal above less-than above slanted equal\"\n    },\n    {\n      \"name\": \"gggnest\",\n      \"detail\": \"⫸\",\n      \"doc\": \"Triple nested greater-than\"\n    },\n    {\n      \"name\": \"gla\",\n      \"detail\": \"⪥\",\n      \"doc\": \"Greater-than beside less-than\"\n    },\n    {\n      \"name\": \"glE\",\n      \"detail\": \"⪒\",\n      \"doc\": \"Greater-than above less-than above double-line equal\"\n    },\n    {\n      \"name\": \"gleichstark\",\n      \"detail\": \"⧦\",\n      \"doc\": \"Gleich stark\"\n    },\n    {\n      \"name\": \"glj\",\n      \"detail\": \"⪤\",\n      \"doc\": \"Greater-than overlapping less-than\"\n    },\n    {\n      \"name\": \"gsime\",\n      \"detail\": \"⪎\",\n      \"doc\": \"Greater-than above similar or equal\"\n    },\n    {\n      \"name\": \"gsiml\",\n      \"detail\": \"⪐\",\n      \"doc\": \"Greater-than above similar above less-than\"\n    },\n    {\n      \"name\": \"Gt\",\n      \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n    },\n    {\n      \"name\": \"gtcc\",\n      \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Greater-than closed by curve\"\n    },\n    {\n      \"name\": \"gtcir\",\n      \"detail\": \"⩺\",\n      \"doc\": \"Greater-than with circle inside\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"gtquest\",\n      \"detail\": \"⩼\",\n      \"doc\": \"Greater-than with question mark above\"\n    },\n    {\n      \"name\": \"gtrarr\",\n      \"detail\": \"⥸\",\n      \"doc\": \"Greater-than above rightwards arrow\"\n    },\n    {\n      \"name\": \"hatapprox\",\n      \"detail\": \"⩯\",\n      \"doc\": \"Almost equal to with circumflex accent\"\n    },\n    {\n      \"name\": \"hexagon\",\n      \"detail\": \"⎔\",\n      \"doc\": \"Horizontal benzene ring [hexagon flat open]\"\n    },\n    {\n      \"name\": \"hexagonblack\",\n      \"detail\": \"⬣\",\n      \"doc\": \"Horizontal black hexagon\"\n    },\n    {\n      \"name\": \"hknearrow\",\n      \"detail\": \"⤤\",\n      \"doc\": \"North east arrow with hook\"\n    },\n    {\n      \"name\": \"hknwarrow\",\n      \"detail\": \"⤣\",\n      \"doc\": \"North west arrow with hook\"\n    },\n    {\n      \"name\": \"hksearow\",\n      \"detail\": \"⤥\",\n      \"doc\": \"South east arrow with hook\"\n    },\n    {\n      \"name\": \"hksearrow\"\n    },\n    {\n      \"name\": \"hkswarow\",\n      \"detail\": \"⤦\",\n      \"doc\": \"South west arrow with hook\"\n    },\n    {\n      \"name\": \"hkswarrow\"\n    },\n    {\n      \"name\": \"hourglass\",\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"hyphenbullet\",\n      \"detail\": \"⁃\",\n      \"doc\": \"Rectangle, filled (hyphen bullet)\"\n    },\n    {\n      \"name\": \"iinfin\",\n      \"detail\": \"⧜\",\n      \"doc\": \"Incomplete infinity\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intBar\",\n      \"detail\": \"⨎\",\n      \"doc\": \"Integral with double stroke\"\n    },\n    {\n      \"name\": \"interleave\",\n      \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Triple vertical bar binary relation\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"intprod\",\n      \"detail\": \"⨼\",\n      \"doc\": \"Interior product\"\n    },\n    {\n      \"name\": \"intprodr\",\n      \"detail\": \"⨽\",\n      \"doc\": \"Righthand interior product\"\n    },\n    {\n      \"name\": \"inversebullet\",\n      \"detail\": \"◘\",\n      \"doc\": \"Inverse bullet\"\n    },\n    {\n      \"name\": \"inversewhitecircle\",\n      \"detail\": \"◙\",\n      \"doc\": \"Inverse white circle\"\n    },\n    {\n      \"name\": \"invwhitelowerhalfcircle\",\n      \"detail\": \"◛\",\n      \"doc\": \"Lower half inverse white circle\"\n    },\n    {\n      \"name\": \"invwhiteupperhalfcircle\",\n      \"detail\": \"◚\",\n      \"doc\": \"Upper half inverse white circle\"\n    },\n    {\n      \"name\": \"isindot\",\n      \"detail\": \"⋵\",\n      \"doc\": \"Element of with dot above\"\n    },\n    {\n      \"name\": \"isinE\",\n      \"detail\": \"⋹\",\n      \"doc\": \"Element of with two horizontal strokes\"\n    },\n    {\n      \"name\": \"isinobar\",\n      \"detail\": \"⋷\",\n      \"doc\": \"Small element of with overbar\"\n    },\n    {\n      \"name\": \"isins\",\n      \"detail\": \"⋴\",\n      \"doc\": \"Small element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"isinvb\",\n      \"detail\": \"⋸\",\n      \"doc\": \"Element of with underbar\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"langledot\",\n      \"detail\": \"⦑\",\n      \"doc\": \"Left angle bracket with dot\"\n    },\n    {\n      \"name\": \"laplac\",\n      \"detail\": \"⧠\",\n      \"doc\": \"Square with contoured outline\"\n    },\n    {\n      \"name\": \"lat\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"late\",\n      \"detail\": \"⪭\",\n      \"doc\": \"Larger than or equal to\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"lblkbrbrak\",\n      \"detail\": \"⦗\",\n      \"doc\": \"Left black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lbracklltick\",\n      \"detail\": \"⦏\",\n      \"doc\": \"Left square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"lbrackubar\",\n      \"detail\": \"⦋\",\n      \"doc\": \"Left square bracket with underbar\"\n    },\n    {\n      \"name\": \"lbrackultick\",\n      \"detail\": \"⦍\",\n      \"doc\": \"Left square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"Lbrbrak\",\n      \"detail\": \"〘\",\n      \"doc\": \"Left white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lbrbrak\",\n      \"detail\": \"〔\",\n      \"doc\": \"Left broken bracket\"\n    },\n    {\n      \"name\": \"lcurvyangle\",\n      \"detail\": \"⧼\",\n      \"doc\": \"Left pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"leftarrowapprox\",\n      \"detail\": \"⭊\",\n      \"doc\": \"Leftwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbackapprox\",\n      \"detail\": \"⭂\",\n      \"doc\": \"Leftwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbsimilar\",\n      \"detail\": \"⭋\",\n      \"doc\": \"Leftwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowless\",\n      \"detail\": \"⥷\",\n      \"doc\": \"Leftwards arrow through less-than\"\n    },\n    {\n      \"name\": \"leftarrowonoplus\",\n      \"detail\": \"⬲\",\n      \"doc\": \"Left arrow with circled plus\"\n    },\n    {\n      \"name\": \"leftarrowplus\",\n      \"detail\": \"⥆\",\n      \"doc\": \"Leftwards arrow with plus below\"\n    },\n    {\n      \"name\": \"leftarrowshortrightarrow\",\n      \"detail\": \"⥃\",\n      \"doc\": \"Leftwards arrow above short rightwards arrow\"\n    },\n    {\n      \"name\": \"leftarrowsimilar\",\n      \"detail\": \"⥳\",\n      \"doc\": \"Leftwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowsubset\",\n      \"detail\": \"⥺\",\n      \"doc\": \"Leftwards arrow through subset\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftarrowx\",\n      \"detail\": \"⬾\",\n      \"doc\": \"Leftwards arrow through x\"\n    },\n    {\n      \"name\": \"leftbkarrow\",\n      \"detail\": \"⤌\",\n      \"doc\": \"Leftwards double dash arrow\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftdbkarrow\",\n      \"detail\": \"⤎\",\n      \"doc\": \"Leftwards triple dash arrow\"\n    },\n    {\n      \"name\": \"leftdbltail\",\n      \"detail\": \"⤛\",\n      \"doc\": \"Leftwards double arrow-tail\"\n    },\n    {\n      \"name\": \"leftdotarrow\",\n      \"detail\": \"⬸\",\n      \"doc\": \"Leftwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leftfishtail\",\n      \"detail\": \"⥼ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left fish tail\"\n    },\n    {\n      \"name\": \"leftharpoondownbar\",\n      \"detail\": \"⥞ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"leftharpoonsupdown\",\n      \"detail\": \"⥢ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftharpoonupbar\",\n      \"detail\": \"⥚ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"leftharpoonupdash\",\n      \"detail\": \"⥪ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"leftouterjoin\",\n      \"detail\": \"⟕\",\n      \"doc\": \"Left outer join\"\n    },\n    {\n      \"name\": \"leftrightarrowcircle\",\n      \"detail\": \"⥈\",\n      \"doc\": \"Left right arrow through small circle\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoondowndown\",\n      \"detail\": \"⥐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb down right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonsdown\",\n      \"detail\": \"⥧\",\n      \"doc\": \"Leftwards harpoon with barb down above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftrightharpoonsup\",\n      \"detail\": \"⥦\",\n      \"doc\": \"Leftwards harpoon with barb up above rightwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonupup\",\n      \"detail\": \"⥎ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb up right barb up harpoon\"\n    },\n    {\n      \"name\": \"lefttail\",\n      \"detail\": \"⤙\",\n      \"doc\": \"Leftwards arrow-tail\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lescc\",\n      \"detail\": \"⪨\",\n      \"doc\": \"Less-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"lesdot\",\n      \"detail\": \"⩿\",\n      \"doc\": \"Less-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"lesdoto\",\n      \"detail\": \"⪁\",\n      \"doc\": \"Less-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"lesdotor\",\n      \"detail\": \"⪃\",\n      \"doc\": \"Less-than or slanted equal to with dot above right\"\n    },\n    {\n      \"name\": \"lesges\",\n      \"detail\": \"⪓\",\n      \"doc\": \"Less-than above slanted equal above greater-than above slanted equal\"\n    },\n    {\n      \"name\": \"lfbowtie\",\n      \"detail\": \"⧑\",\n      \"doc\": \"Left black bowtie\"\n    },\n    {\n      \"name\": \"lftimes\",\n      \"detail\": \"⧔\",\n      \"doc\": \"Left black times\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgE\",\n      \"detail\": \"⪑\",\n      \"doc\": \"Less-than above greater-than above double-line equal\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"llangle\",\n      \"detail\": \"⦉ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation left binding bracket\"\n    },\n    {\n      \"name\": \"llarc\",\n      \"detail\": \"◟\",\n      \"doc\": \"Lower left quadrant circular arc\"\n    },\n    {\n      \"name\": \"llblacktriangle\",\n      \"detail\": \"◣\",\n      \"doc\": \"Lower left triangle, filled\"\n    },\n    {\n      \"name\": \"LLeftarrow\",\n      \"detail\": \"⭅\",\n      \"doc\": \"Leftwards quadruple arrow\"\n    },\n    {\n      \"name\": \"lllnest\",\n      \"detail\": \"⫷\",\n      \"doc\": \"Triple nested less-than\"\n    },\n    {\n      \"name\": \"llparenthesis\",\n      \"detail\": \"⦇ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n    },\n    {\n      \"name\": \"lltriangle\",\n      \"detail\": \"◺\",\n      \"doc\": \"Lower left triangle\"\n    },\n    {\n      \"name\": \"longdivision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longdivision{${1:arg}}\"\n      },\n      \"detail\": \"⟌\",\n      \"doc\": \"Long division\"\n    },\n    {\n      \"name\": \"longdivisionsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longdivisionsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lparengtr\",\n      \"detail\": \"⦕\",\n      \"doc\": \"Double left arc greater-than bracket\"\n    },\n    {\n      \"name\": \"lparenless\",\n      \"detail\": \"⦓\",\n      \"doc\": \"Left arc less-than bracket\"\n    },\n    {\n      \"name\": \"lrarc\",\n      \"detail\": \"◞\",\n      \"doc\": \"Lower right quadrant circular arc\"\n    },\n    {\n      \"name\": \"lrblacktriangle\",\n      \"detail\": \"◢\",\n      \"doc\": \"Lower right triangle, filled\"\n    },\n    {\n      \"name\": \"lrtriangle\",\n      \"detail\": \"◿\",\n      \"doc\": \"Lower right triangle\"\n    },\n    {\n      \"name\": \"lrtriangleeq\",\n      \"detail\": \"⧡\",\n      \"doc\": \"Increases as\"\n    },\n    {\n      \"name\": \"lsime\",\n      \"detail\": \"⪍\",\n      \"doc\": \"Less-than above similar or equal\"\n    },\n    {\n      \"name\": \"lsimg\",\n      \"detail\": \"⪏\",\n      \"doc\": \"Less-than above similar above greater-than\"\n    },\n    {\n      \"name\": \"lsqhook\",\n      \"detail\": \"⫍\",\n      \"doc\": \"Square left open box operator\"\n    },\n    {\n      \"name\": \"Lt\",\n      \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n    },\n    {\n      \"name\": \"ltcc\",\n      \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Less-than closed by curve\"\n    },\n    {\n      \"name\": \"ltcir\",\n      \"detail\": \"⩹\",\n      \"doc\": \"Less-than with circle inside\"\n    },\n    {\n      \"name\": \"ltlarr\",\n      \"detail\": \"⥶\",\n      \"doc\": \"Less-than above leftwards arrow\"\n    },\n    {\n      \"name\": \"ltquest\",\n      \"detail\": \"⩻\",\n      \"doc\": \"Less-than with question mark above\"\n    },\n    {\n      \"name\": \"ltrivb\",\n      \"detail\": \"⧏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left triangle beside vertical bar\"\n    },\n    {\n      \"name\": \"lvboxline\",\n      \"detail\": \"⎸\",\n      \"doc\": \"Left vertical box line\"\n    },\n    {\n      \"name\": \"lvzigzag\",\n      \"detail\": \"⧘\",\n      \"doc\": \"Left wiggly fence\"\n    },\n    {\n      \"name\": \"Lvzigzag\",\n      \"detail\": \"⧚\",\n      \"doc\": \"Left double wiggly fence\"\n    },\n    {\n      \"name\": \"mbfDigamma\",\n      \"detail\": \"𝟊\",\n      \"doc\": \"Mathematical bold capital digamma\"\n    },\n    {\n      \"name\": \"mbfdigamma\",\n      \"detail\": \"𝟋\",\n      \"doc\": \"Mathematical bold small digamma\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"measangledltosw\",\n      \"detail\": \"⦯\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and down\"\n    },\n    {\n      \"name\": \"measangledrtose\",\n      \"detail\": \"⦮\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and down\"\n    },\n    {\n      \"name\": \"measangleldtosw\",\n      \"detail\": \"⦫\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and left\"\n    },\n    {\n      \"name\": \"measanglelutonw\",\n      \"detail\": \"⦩\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and left\"\n    },\n    {\n      \"name\": \"measanglerdtose\",\n      \"detail\": \"⦪\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and right\"\n    },\n    {\n      \"name\": \"measanglerutone\",\n      \"detail\": \"⦨\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and right\"\n    },\n    {\n      \"name\": \"measangleultonw\",\n      \"detail\": \"⦭\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and up\"\n    },\n    {\n      \"name\": \"measangleurtone\",\n      \"detail\": \"⦬\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and up\"\n    },\n    {\n      \"name\": \"measuredangleleft\",\n      \"detail\": \"⦛\",\n      \"doc\": \"Measured angle opening left\"\n    },\n    {\n      \"name\": \"medblackstar\",\n      \"detail\": \"⭑\",\n      \"doc\": \"Black medium star\"\n    },\n    {\n      \"name\": \"medwhitestar\",\n      \"detail\": \"⭐\",\n      \"doc\": \"White medium star\"\n    },\n    {\n      \"name\": \"midbarvee\",\n      \"detail\": \"⩝\",\n      \"doc\": \"Logical or with horizontal dash\"\n    },\n    {\n      \"name\": \"midbarwedge\",\n      \"detail\": \"⩜\",\n      \"doc\": \"Ogical and with horizontal dash\"\n    },\n    {\n      \"name\": \"midcir\",\n      \"detail\": \"⫰\",\n      \"doc\": \"Vertical line with circle below\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minusfdots\",\n      \"detail\": \"⨫\",\n      \"doc\": \"Minus sign with falling dots\"\n    },\n    {\n      \"name\": \"minusrdots\",\n      \"detail\": \"⨬\",\n      \"doc\": \"Minus sign with rising dots\"\n    },\n    {\n      \"name\": \"mlcp\",\n      \"detail\": \"⫛\",\n      \"doc\": \"Transversal intersection\"\n    },\n    {\n      \"name\": \"modtwosum\",\n      \"detail\": \"⨊\",\n      \"doc\": \"Modulo two sum\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"neovnwarrow\",\n      \"detail\": \"⤱\",\n      \"doc\": \"North east arrow crossing north west arrow\"\n    },\n    {\n      \"name\": \"neovsearrow\",\n      \"detail\": \"⤮\",\n      \"doc\": \"North east arrow crossing south east arrow\"\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhpar\",\n      \"detail\": \"⫲\",\n      \"doc\": \"Parallel with horizontal stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhVvert\",\n      \"detail\": \"⫵\",\n      \"doc\": \"Triple vertical bar with horizontal stroke\"\n    },\n    {\n      \"name\": \"niobar\",\n      \"detail\": \"⋾\",\n      \"doc\": \"Small contains with overbar\"\n    },\n    {\n      \"name\": \"nis\",\n      \"detail\": \"⋼\",\n      \"doc\": \"Small contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"nisd\",\n      \"detail\": \"⋺\",\n      \"doc\": \"Contains with long horizontal stroke\"\n    },\n    {\n      \"name\": \"Not\",\n      \"detail\": \"⫬\",\n      \"doc\": \"Double stroke not sign\"\n    },\n    {\n      \"name\": \"nvinfty\",\n      \"detail\": \"⧞\",\n      \"doc\": \"Infinity negated with vertical bar\"\n    },\n    {\n      \"name\": \"nvleftarrow\",\n      \"detail\": \"⇷\",\n      \"doc\": \"Leftwards arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvLeftarrow\",\n      \"detail\": \"⤂\",\n      \"doc\": \"Leftwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftarrowtail\",\n      \"detail\": \"⬹\",\n      \"doc\": \"Leftwards arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrowtail\",\n      \"detail\": \"⬺\",\n      \"doc\": \"Leftwards arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftrightarrow\",\n      \"detail\": \"⇹\",\n      \"doc\": \"Left right arrow with vertical stroke, partial relation\"\n    },\n    {\n      \"name\": \"nVleftrightarrow\",\n      \"detail\": \"⇼\",\n      \"doc\": \"Left right arrow with double vertical stroke, finite relation\"\n    },\n    {\n      \"name\": \"nvLeftrightarrow\",\n      \"detail\": \"⤄\",\n      \"doc\": \"Left right double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrow\",\n      \"detail\": \"⇸ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with vertical stroke, partial function\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"nvRightarrow\",\n      \"detail\": \"⤃\",\n      \"doc\": \"Rightwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrowtail\",\n      \"detail\": \"⤔ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with vertical stroke, partial injection\"\n    },\n    {\n      \"name\": \"nVrightarrowtail\",\n      \"detail\": \"⤕ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with double vertical stroke, finite injection\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrow\",\n      \"detail\": \"⬴\",\n      \"doc\": \"Leftwards two-headed arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrow\",\n      \"detail\": \"⬵\",\n      \"doc\": \"Leftwards two-headed arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrowtail\",\n      \"detail\": \"⬼\",\n      \"doc\": \"Leftwards two-headed arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrowtail\",\n      \"detail\": \"⬽\",\n      \"doc\": \"Leftwards two-headed arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrow\",\n      \"detail\": \"⤀ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\psurj (oz), rightwards two-headed arrow with vertical stroke, partial surjection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrow\",\n      \"detail\": \"⤁\",\n      \"doc\": \"Rightwards two-headed arrow with double vertical stroke, finite surjection\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrowtail\",\n      \"detail\": \"⤗\",\n      \"doc\": \"Rightwards two-headed arrow with tail with vertical stroke, surjective injection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrowtail\",\n      \"detail\": \"⤘\",\n      \"doc\": \"Rightwards two-headed arrow with tail with double vertical stroke, finite surjective injection\"\n    },\n    {\n      \"name\": \"nwovnearrow\",\n      \"detail\": \"⤲\",\n      \"doc\": \"North west arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"obar\",\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"obot\",\n      \"detail\": \"⦺\",\n      \"doc\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocommatopright{${1:arg}}\"\n      },\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"odiv\",\n      \"detail\": \"⨸\",\n      \"doc\": \"Circled division sign\"\n    },\n    {\n      \"name\": \"odotslashdot\",\n      \"detail\": \"⦼\",\n      \"doc\": \"Circled anticlockwise-rotated division sign\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"olcross\",\n      \"detail\": \"⦻\",\n      \"doc\": \"Circle with superimposed x\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"operp\",\n      \"detail\": \"⦹\",\n      \"doc\": \"Circled perpendicular\"\n    },\n    {\n      \"name\": \"opluslhrim\",\n      \"detail\": \"⨭\",\n      \"doc\": \"Plus sign in left half circle\"\n    },\n    {\n      \"name\": \"oplusrhrim\",\n      \"detail\": \"⨮\",\n      \"doc\": \"Plus sign in right half circle\"\n    },\n    {\n      \"name\": \"Otimes\",\n      \"detail\": \"⨷\",\n      \"doc\": \"Multiplication sign in double circle\"\n    },\n    {\n      \"name\": \"otimeshat\",\n      \"detail\": \"⨶\",\n      \"doc\": \"Circled multiplication sign with circumflex accent\"\n    },\n    {\n      \"name\": \"otimeslhrim\",\n      \"detail\": \"⨴\",\n      \"doc\": \"Multiplication sign in left half circle\"\n    },\n    {\n      \"name\": \"otimesrhrim\",\n      \"detail\": \"⨵\",\n      \"doc\": \"Multiplication sign in right half circle\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"parallelogram\",\n      \"detail\": \"▱\",\n      \"doc\": \"Parallelogram, open\"\n    },\n    {\n      \"name\": \"parallelogramblack\",\n      \"detail\": \"▰\",\n      \"doc\": \"Black parallelogram\"\n    },\n    {\n      \"name\": \"parsim\",\n      \"detail\": \"⫳\",\n      \"doc\": \"Parallel with tilde operator\"\n    },\n    {\n      \"name\": \"partialmeetcontraction\",\n      \"detail\": \"⪣\",\n      \"doc\": \"Double less-than with underbar\"\n    },\n    {\n      \"name\": \"pentagon\",\n      \"detail\": \"⬠\",\n      \"doc\": \"White pentagon\"\n    },\n    {\n      \"name\": \"pentagonblack\",\n      \"detail\": \"⬟\",\n      \"doc\": \"Black pentagon\"\n    },\n    {\n      \"name\": \"perps\",\n      \"detail\": \"⫡\",\n      \"doc\": \"Perpendicular with s\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"plusdot\",\n      \"detail\": \"⨥\",\n      \"doc\": \"Plus sign with dot below\"\n    },\n    {\n      \"name\": \"pluseqq\",\n      \"detail\": \"⩲\",\n      \"doc\": \"Plus sign above equals sign\"\n    },\n    {\n      \"name\": \"plushat\",\n      \"detail\": \"⨣\",\n      \"doc\": \"Plus sign with circumflex accent above\"\n    },\n    {\n      \"name\": \"plussim\",\n      \"detail\": \"⨦\",\n      \"doc\": \"Plus sign with tilde below\"\n    },\n    {\n      \"name\": \"plussubtwo\",\n      \"detail\": \"⨧\",\n      \"doc\": \"Plus sign with subscript two\"\n    },\n    {\n      \"name\": \"plustrif\",\n      \"detail\": \"⨨\",\n      \"doc\": \"Plus sign with black triangle\"\n    },\n    {\n      \"name\": \"Prec\",\n      \"detail\": \"⪻ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double precedes\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"profline\",\n      \"detail\": \"⌒\",\n      \"doc\": \"Profile of a line\"\n    },\n    {\n      \"name\": \"profsurf\",\n      \"detail\": \"⌓\",\n      \"doc\": \"Profile of a surface\"\n    },\n    {\n      \"name\": \"PropertyLine\",\n      \"detail\": \"⅊\",\n      \"doc\": \"Property line\"\n    },\n    {\n      \"name\": \"prurel\",\n      \"detail\": \"⊰\",\n      \"doc\": \"Element precedes under relation\"\n    },\n    {\n      \"name\": \"pullback\",\n      \"detail\": \"⟓\",\n      \"doc\": \"Lower right corner with dot\"\n    },\n    {\n      \"name\": \"pushout\",\n      \"detail\": \"⟔\",\n      \"doc\": \"Upper left corner with dot\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"rangledot\",\n      \"detail\": \"⦒\",\n      \"doc\": \"Right angle bracket with dot\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rblkbrbrak\",\n      \"detail\": \"⦘\",\n      \"doc\": \"Right black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rbracklrtick\",\n      \"detail\": \"⦎\",\n      \"doc\": \"Right square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"rbrackubar\",\n      \"detail\": \"⦌\",\n      \"doc\": \"Right square bracket with underbar\"\n    },\n    {\n      \"name\": \"rbrackurtick\",\n      \"detail\": \"⦐\",\n      \"doc\": \"Right square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"Rbrbrak\",\n      \"detail\": \"〙\",\n      \"doc\": \"Right white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rbrbrak\",\n      \"detail\": \"〕\",\n      \"doc\": \"Right broken bracket\"\n    },\n    {\n      \"name\": \"rcurvyangle\",\n      \"detail\": \"⧽\",\n      \"doc\": \"Right pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"rdiagovfdiag\",\n      \"detail\": \"⤫\",\n      \"doc\": \"Rising diagonal crossing falling diagonal\"\n    },\n    {\n      \"name\": \"rdiagovsearrow\",\n      \"detail\": \"⤰\",\n      \"doc\": \"Rising diagonal crossing south east arrow\"\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revangleubar\",\n      \"detail\": \"⦥\",\n      \"doc\": \"Reversed angle with underbar\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"revnmid\",\n      \"detail\": \"⫮\",\n      \"doc\": \"Does not divide with reversed negation slash\"\n    },\n    {\n      \"name\": \"rfbowtie\",\n      \"detail\": \"⧒\",\n      \"doc\": \"Right black bowtie\"\n    },\n    {\n      \"name\": \"rftimes\",\n      \"detail\": \"⧕\",\n      \"doc\": \"Right black times\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightarrowapprox\",\n      \"detail\": \"⥵\",\n      \"doc\": \"Rightwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbackapprox\",\n      \"detail\": \"⭈\",\n      \"doc\": \"Rightwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowbsimilar\",\n      \"detail\": \"⭌\",\n      \"doc\": \"Righttwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowdiamond\",\n      \"detail\": \"⤞\",\n      \"doc\": \"Rightwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"rightarrowgtr\",\n      \"detail\": \"⭃\",\n      \"doc\": \"Rightwards arrow through less-than\"\n    },\n    {\n      \"name\": \"rightarrowplus\",\n      \"detail\": \"⥅\",\n      \"doc\": \"Rightwards arrow with plus below\"\n    },\n    {\n      \"name\": \"rightarrowshortleftarrow\",\n      \"detail\": \"⥂\",\n      \"doc\": \"Rightwards arrow above short leftwards arrow\"\n    },\n    {\n      \"name\": \"rightarrowsimilar\",\n      \"detail\": \"⥴\",\n      \"doc\": \"Rightwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowsupset\",\n      \"detail\": \"⭄\",\n      \"doc\": \"Rightwards arrow through subset\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightarrowx\",\n      \"detail\": \"⥇\",\n      \"doc\": \"Rightwards arrow through x\"\n    },\n    {\n      \"name\": \"rightbkarrow\",\n      \"detail\": \"⤍\",\n      \"doc\": \"Rightwards double dash arrow\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightdbltail\",\n      \"detail\": \"⤜\",\n      \"doc\": \"Rightwards double arrow-tail\"\n    },\n    {\n      \"name\": \"rightdotarrow\",\n      \"detail\": \"⤑\",\n      \"doc\": \"Rightwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"rightfishtail\",\n      \"detail\": \"⥽ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Right fish tail\"\n    },\n    {\n      \"name\": \"rightharpoondownbar\",\n      \"detail\": \"⥗ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"rightharpoonsupdown\",\n      \"detail\": \"⥤ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightharpoonupbar\",\n      \"detail\": \"⥓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"rightharpoonupdash\",\n      \"detail\": \"⥬ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"rightimply\",\n      \"detail\": \"⥰\",\n      \"doc\": \"Right double arrow with rounded head\"\n    },\n    {\n      \"name\": \"rightleftharpoonsdown\",\n      \"detail\": \"⥩\",\n      \"doc\": \"Rightwards harpoon with barb down above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightleftharpoonsup\",\n      \"detail\": \"⥨\",\n      \"doc\": \"Rightwards harpoon with barb up above leftwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"rightouterjoin\",\n      \"detail\": \"⟖\",\n      \"doc\": \"Right outer join\"\n    },\n    {\n      \"name\": \"rightpentagon\",\n      \"detail\": \"⭔\",\n      \"doc\": \"White right-pointing pentagon\"\n    },\n    {\n      \"name\": \"rightpentagonblack\",\n      \"detail\": \"⭓\",\n      \"doc\": \"Black right-pointing pentagon\"\n    },\n    {\n      \"name\": \"righttail\",\n      \"detail\": \"⤚\",\n      \"doc\": \"Rightwards arrow-tail\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"ringplus\",\n      \"detail\": \"⨢\",\n      \"doc\": \"Plus sign with small circle above\"\n    },\n    {\n      \"name\": \"rparengtr\",\n      \"detail\": \"⦔\",\n      \"doc\": \"Right arc greater-than bracket\"\n    },\n    {\n      \"name\": \"Rparenless\",\n      \"detail\": \"⦖\",\n      \"doc\": \"Double right arc less-than bracket\"\n    },\n    {\n      \"name\": \"rrangle\",\n      \"detail\": \"⦊ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation right binding bracket\"\n    },\n    {\n      \"name\": \"RRightarrow\",\n      \"detail\": \"⭆\",\n      \"doc\": \"Rightwards quadruple arrow\"\n    },\n    {\n      \"name\": \"rrparenthesis\",\n      \"detail\": \"⦈ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n    },\n    {\n      \"name\": \"rsolbar\",\n      \"detail\": \"⧷\",\n      \"doc\": \"Reverse solidus with horizontal stroke\"\n    },\n    {\n      \"name\": \"rsqhook\",\n      \"detail\": \"⫎\",\n      \"doc\": \"Square right open box operator\"\n    },\n    {\n      \"name\": \"rsub\",\n      \"detail\": \"⩥ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\nrres (oz), range antirestriction\"\n    },\n    {\n      \"name\": \"rtriltri\",\n      \"detail\": \"⧎\",\n      \"doc\": \"Right triangle above left triangle\"\n    },\n    {\n      \"name\": \"ruledelayed\",\n      \"detail\": \"⧴\",\n      \"doc\": \"Rule-delayed\"\n    },\n    {\n      \"name\": \"rvboxline\",\n      \"detail\": \"⎹\",\n      \"doc\": \"Right vertical box line\"\n    },\n    {\n      \"name\": \"rvzigzag\",\n      \"detail\": \"⧙\",\n      \"doc\": \"Right wiggly fence\"\n    },\n    {\n      \"name\": \"Rvzigzag\",\n      \"detail\": \"⧛\",\n      \"doc\": \"Right double wiggly fence\"\n    },\n    {\n      \"name\": \"sansLmirrored\",\n      \"detail\": \"⅃\",\n      \"doc\": \"Reversed sans-serif capital l\"\n    },\n    {\n      \"name\": \"sansLturned\",\n      \"detail\": \"⅂\",\n      \"doc\": \"Turned sans-serif capital l\"\n    },\n    {\n      \"name\": \"scurel\",\n      \"detail\": \"⊱\",\n      \"doc\": \"Succeeds under relation\"\n    },\n    {\n      \"name\": \"seovnearrow\",\n      \"detail\": \"⤭\",\n      \"doc\": \"South east arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"shortdowntack\",\n      \"detail\": \"⫟\",\n      \"doc\": \"Short down tack\"\n    },\n    {\n      \"name\": \"shortlefttack\",\n      \"detail\": \"⫞\",\n      \"doc\": \"Short left tack\"\n    },\n    {\n      \"name\": \"shortrightarrowleftarrow\",\n      \"detail\": \"⥄\",\n      \"doc\": \"Short rightwards arrow above leftwards arrow\"\n    },\n    {\n      \"name\": \"shortuptack\",\n      \"detail\": \"⫠\",\n      \"doc\": \"Short up tack\"\n    },\n    {\n      \"name\": \"shuffle\",\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"simgE\",\n      \"detail\": \"⪠\",\n      \"doc\": \"Similar above greater-than above equals sign\"\n    },\n    {\n      \"name\": \"simgtr\",\n      \"detail\": \"⪞\",\n      \"doc\": \"Similar or greater-than\"\n    },\n    {\n      \"name\": \"similarleftarrow\",\n      \"detail\": \"⭉\",\n      \"doc\": \"Tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"similarrightarrow\",\n      \"detail\": \"⥲\",\n      \"doc\": \"Tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"simlE\",\n      \"detail\": \"⪟\",\n      \"doc\": \"Similar above less-than above equals sign\"\n    },\n    {\n      \"name\": \"simless\",\n      \"detail\": \"⪝\",\n      \"doc\": \"Similar or less-than\"\n    },\n    {\n      \"name\": \"simminussim\",\n      \"detail\": \"⩬\",\n      \"doc\": \"Similar minus similar\"\n    },\n    {\n      \"name\": \"simplus\",\n      \"detail\": \"⨤\",\n      \"doc\": \"Plus sign with tilde above\"\n    },\n    {\n      \"name\": \"simrdots\",\n      \"detail\": \"⩫\",\n      \"doc\": \"Tilde operator with rising dots\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smashtimes\",\n      \"detail\": \"⨳\",\n      \"doc\": \"Smash product\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smeparsl\",\n      \"detail\": \"⧤\",\n      \"doc\": \"Equals sign and slanted parallel with tilde above\"\n    },\n    {\n      \"name\": \"smt\",\n      \"detail\": \"⪪\",\n      \"doc\": \"Smaller than\"\n    },\n    {\n      \"name\": \"smte\",\n      \"detail\": \"⪬\",\n      \"doc\": \"Smaller than or equal to\"\n    },\n    {\n      \"name\": \"smwhitestar\",\n      \"detail\": \"⭒\",\n      \"doc\": \"White small star\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"Sqcap\",\n      \"detail\": \"⩎\",\n      \"doc\": \"Double square intersection\"\n    },\n    {\n      \"name\": \"Sqcup\",\n      \"detail\": \"⩏\",\n      \"doc\": \"Double square union\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqlozenge\",\n      \"detail\": \"⌑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Square lozenge\"\n    },\n    {\n      \"name\": \"squarebotblack\",\n      \"detail\": \"⬓\",\n      \"doc\": \"Square with bottom half black\"\n    },\n    {\n      \"name\": \"squarecrossfill\",\n      \"detail\": \"▩\",\n      \"doc\": \"Square with diagonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squarehfill\",\n      \"detail\": \"▤\",\n      \"doc\": \"Square, horizontal rule filled\"\n    },\n    {\n      \"name\": \"squarehvfill\",\n      \"detail\": \"▦\",\n      \"doc\": \"Square with orthogonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squareleftblack\",\n      \"detail\": \"◧\",\n      \"doc\": \"Square, filled left half\"\n    },\n    {\n      \"name\": \"squarellblack\",\n      \"detail\": \"⬕\",\n      \"doc\": \"Square with lower left diagonal half black\"\n    },\n    {\n      \"name\": \"squarellquad\",\n      \"detail\": \"◱\",\n      \"doc\": \"White square with lower left quadrant\"\n    },\n    {\n      \"name\": \"squarelrblack\",\n      \"detail\": \"◪\",\n      \"doc\": \"Square, filled bottom right corner\"\n    },\n    {\n      \"name\": \"squarelrquad\",\n      \"detail\": \"◲\",\n      \"doc\": \"White square with lower right quadrant\"\n    },\n    {\n      \"name\": \"squareneswfill\",\n      \"detail\": \"▨\",\n      \"doc\": \"Square, ne-to-sw rule filled\"\n    },\n    {\n      \"name\": \"squarenwsefill\",\n      \"detail\": \"▧\",\n      \"doc\": \"Square, nw-to-se rule filled\"\n    },\n    {\n      \"name\": \"squarerightblack\",\n      \"detail\": \"◨\",\n      \"doc\": \"Square, filled right half\"\n    },\n    {\n      \"name\": \"squaretopblack\",\n      \"detail\": \"⬒\",\n      \"doc\": \"Square with top half black\"\n    },\n    {\n      \"name\": \"squareulblack\",\n      \"detail\": \"◩\",\n      \"doc\": \"Square, filled top left corner\"\n    },\n    {\n      \"name\": \"squareulquad\",\n      \"detail\": \"◰\",\n      \"doc\": \"White square with upper left quadrant\"\n    },\n    {\n      \"name\": \"squareurblack\",\n      \"detail\": \"⬔\",\n      \"doc\": \"Square with upper right diagonal half black\"\n    },\n    {\n      \"name\": \"squareurquad\",\n      \"detail\": \"◳\",\n      \"doc\": \"White square with upper right quadrant\"\n    },\n    {\n      \"name\": \"squarevfill\",\n      \"detail\": \"▥\",\n      \"doc\": \"Square, vertical rule filled\"\n    },\n    {\n      \"name\": \"squoval\",\n      \"detail\": \"▢\",\n      \"doc\": \"White square with rounded corners\"\n    },\n    {\n      \"name\": \"sslash\",\n      \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\varparallel (txfonts), double solidus operator\"\n    },\n    {\n      \"name\": \"strns\",\n      \"detail\": \"⏤\",\n      \"doc\": \"Straightness\"\n    },\n    {\n      \"name\": \"subedot\",\n      \"detail\": \"⫃\",\n      \"doc\": \"Subset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"submult\",\n      \"detail\": \"⫁\",\n      \"doc\": \"Subset with multiplication sign below\"\n    },\n    {\n      \"name\": \"subrarr\",\n      \"detail\": \"⥹\",\n      \"doc\": \"Subset above rightwards arrow\"\n    },\n    {\n      \"name\": \"subsetapprox\",\n      \"detail\": \"⫉\",\n      \"doc\": \"Subset of above almost equal to\"\n    },\n    {\n      \"name\": \"subsetcirc\",\n      \"detail\": \"⟃\",\n      \"doc\": \"Open subset\"\n    },\n    {\n      \"name\": \"subsetdot\",\n      \"detail\": \"⪽\",\n      \"doc\": \"Subset with dot\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"subsetplus\",\n      \"detail\": \"⪿\",\n      \"doc\": \"Subset with plus sign below\"\n    },\n    {\n      \"name\": \"subsim\",\n      \"detail\": \"⫇\",\n      \"doc\": \"Subset of above tilde operator\"\n    },\n    {\n      \"name\": \"subsub\",\n      \"detail\": \"⫕\",\n      \"doc\": \"Subset above subset\"\n    },\n    {\n      \"name\": \"subsup\",\n      \"detail\": \"⫓\",\n      \"doc\": \"Subset above superset\"\n    },\n    {\n      \"name\": \"Succ\",\n      \"detail\": \"⪼ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double succeeds\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"supdsub\",\n      \"detail\": \"⫘\",\n      \"doc\": \"Superset beside and joined by dash with subset\"\n    },\n    {\n      \"name\": \"supedot\",\n      \"detail\": \"⫄\",\n      \"doc\": \"Superset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"suphsol\",\n      \"detail\": \"⟉\",\n      \"doc\": \"Superset preceding solidus\"\n    },\n    {\n      \"name\": \"suphsub\",\n      \"detail\": \"⫗\",\n      \"doc\": \"Superset beside subset\"\n    },\n    {\n      \"name\": \"suplarr\",\n      \"detail\": \"⥻\",\n      \"doc\": \"Superset above leftwards arrow\"\n    },\n    {\n      \"name\": \"supmult\",\n      \"detail\": \"⫂\",\n      \"doc\": \"Superset with multiplication sign below\"\n    },\n    {\n      \"name\": \"supsetapprox\",\n      \"detail\": \"⫊\",\n      \"doc\": \"Superset of above almost equal to\"\n    },\n    {\n      \"name\": \"supsetcirc\",\n      \"detail\": \"⟄\",\n      \"doc\": \"Open superset\"\n    },\n    {\n      \"name\": \"supsetdot\",\n      \"detail\": \"⪾\",\n      \"doc\": \"Superset with dot\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"supsetplus\",\n      \"detail\": \"⫀\",\n      \"doc\": \"Superset with plus sign below\"\n    },\n    {\n      \"name\": \"supsim\",\n      \"detail\": \"⫈\",\n      \"doc\": \"Superset of above tilde operator\"\n    },\n    {\n      \"name\": \"supsub\",\n      \"detail\": \"⫔\",\n      \"doc\": \"Superset above subset\"\n    },\n    {\n      \"name\": \"supsup\",\n      \"detail\": \"⫖\",\n      \"doc\": \"Superset above superset\"\n    },\n    {\n      \"name\": \"talloblong\",\n      \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"White vertical bar\"\n    },\n    {\n      \"name\": \"thermod\",\n      \"detail\": \"⧧\",\n      \"doc\": \"Thermodynamic\"\n    },\n    {\n      \"name\": \"threedangle\",\n      \"detail\": \"⟀\",\n      \"doc\": \"Three dimensional angle\"\n    },\n    {\n      \"name\": \"threedotcolon\",\n      \"detail\": \"⫶\",\n      \"doc\": \"Triple colon operator\"\n    },\n    {\n      \"name\": \"tieinfty\",\n      \"detail\": \"⧝\",\n      \"doc\": \"Tie over infinity\"\n    },\n    {\n      \"name\": \"timesbar\",\n      \"detail\": \"⨱\",\n      \"doc\": \"Multiplication sign with underbar\"\n    },\n    {\n      \"name\": \"tminus\",\n      \"detail\": \"⧿\",\n      \"doc\": \"Miny\"\n    },\n    {\n      \"name\": \"toea\",\n      \"detail\": \"⤨\",\n      \"doc\": \"North east arrow and south east arrow\"\n    },\n    {\n      \"name\": \"tona\",\n      \"detail\": \"⤧\",\n      \"doc\": \"North west arrow and north east arrow\"\n    },\n    {\n      \"name\": \"topcir\",\n      \"detail\": \"⫱\",\n      \"doc\": \"Down tack with circle below\"\n    },\n    {\n      \"name\": \"topfork\",\n      \"detail\": \"⫚\",\n      \"doc\": \"Pitchfork with tee top\"\n    },\n    {\n      \"name\": \"topsemicircle\",\n      \"detail\": \"◠\",\n      \"doc\": \"Upper half circle\"\n    },\n    {\n      \"name\": \"tosa\",\n      \"detail\": \"⤩\",\n      \"doc\": \"South east arrow and south west arrow\"\n    },\n    {\n      \"name\": \"towa\",\n      \"detail\": \"⤪\",\n      \"doc\": \"South west arrow and north west arrow\"\n    },\n    {\n      \"name\": \"tplus\",\n      \"detail\": \"⧾\",\n      \"doc\": \"Tiny\"\n    },\n    {\n      \"name\": \"trapezium\",\n      \"detail\": \"⏢\",\n      \"doc\": \"White trapezium\"\n    },\n    {\n      \"name\": \"trianglecdot\",\n      \"detail\": \"◬\",\n      \"doc\": \"Triangle with centered dot\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleleftblack\",\n      \"detail\": \"◭\",\n      \"doc\": \"Up-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"triangleminus\",\n      \"detail\": \"⨺\",\n      \"doc\": \"Minus sign in triangle\"\n    },\n    {\n      \"name\": \"triangleodot\",\n      \"detail\": \"⧊\",\n      \"doc\": \"Triangle with dot above\"\n    },\n    {\n      \"name\": \"triangleplus\",\n      \"detail\": \"⨹\",\n      \"doc\": \"Plus sign in triangle\"\n    },\n    {\n      \"name\": \"trianglerightblack\",\n      \"detail\": \"◮\",\n      \"doc\": \"Up-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"triangles\",\n      \"detail\": \"⧌\",\n      \"doc\": \"S in triangle\"\n    },\n    {\n      \"name\": \"triangleserifs\",\n      \"detail\": \"⧍\",\n      \"doc\": \"Triangle with serifs at bottom\"\n    },\n    {\n      \"name\": \"triangletimes\",\n      \"detail\": \"⨻\",\n      \"doc\": \"Multiplication sign in triangle\"\n    },\n    {\n      \"name\": \"triangleubar\",\n      \"detail\": \"⧋\",\n      \"doc\": \"Triangle with underbar\"\n    },\n    {\n      \"name\": \"tripleplus\",\n      \"detail\": \"⧻\",\n      \"doc\": \"Triple plus\"\n    },\n    {\n      \"name\": \"trslash\",\n      \"detail\": \"⫻\",\n      \"doc\": \"Triple solidus binary relation\"\n    },\n    {\n      \"name\": \"turnangle\",\n      \"detail\": \"⦢\",\n      \"doc\": \"Turned angle\"\n    },\n    {\n      \"name\": \"turnediota\",\n      \"detail\": \"℩\",\n      \"doc\": \"Turned iota\"\n    },\n    {\n      \"name\": \"twocaps\",\n      \"detail\": \"⩋\",\n      \"doc\": \"Intersection beside and joined with intersection\"\n    },\n    {\n      \"name\": \"twocups\",\n      \"detail\": \"⩊\",\n      \"doc\": \"Union beside and joined with union\"\n    },\n    {\n      \"name\": \"twoheadleftarrowtail\",\n      \"detail\": \"⬻\",\n      \"doc\": \"Leftwards two-headed arrow with tail\"\n    },\n    {\n      \"name\": \"twoheadleftdbkarrow\",\n      \"detail\": \"⬷\",\n      \"doc\": \"Leftwards two-headed triple-dash arrow\"\n    },\n    {\n      \"name\": \"twoheadmapsfrom\",\n      \"detail\": \"⬶\",\n      \"doc\": \"Leftwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadmapsto\",\n      \"detail\": \"⤅\",\n      \"doc\": \"Rightwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadrightarrowtail\",\n      \"detail\": \"⤖ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards two-headed arrow with tail, bijection\"\n    },\n    {\n      \"name\": \"twoheaduparrowcircle\",\n      \"detail\": \"⥉\",\n      \"doc\": \"Upwards two-headed arrow from small circle\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"typecolon\",\n      \"detail\": \"⦂\",\n      \"doc\": \"Z notation type colon, (present in bbold font but no command)\"\n    },\n    {\n      \"name\": \"ularc\",\n      \"detail\": \"◜\",\n      \"doc\": \"Upper left quadrant circular arc\"\n    },\n    {\n      \"name\": \"ulblacktriangle\",\n      \"detail\": \"◤\",\n      \"doc\": \"Upper left triangle, filled\"\n    },\n    {\n      \"name\": \"ultriangle\",\n      \"detail\": \"◸\",\n      \"doc\": \"Upper left triangle\"\n    },\n    {\n      \"name\": \"uminus\",\n      \"detail\": \"⩁\",\n      \"doc\": \"Union with minus sign, bag subtraction\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"uparrowbarred\",\n      \"detail\": \"⤉\",\n      \"doc\": \"Upwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"uparrowoncircle\",\n      \"detail\": \"⦽\",\n      \"doc\": \"Up arrow through circle\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"upDigamma\",\n      \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Capital digamma\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"updownharpoonleftleft\",\n      \"detail\": \"⥑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb left down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightright\",\n      \"detail\": \"⥏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb right down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upfishtail\",\n      \"detail\": \"⥾\",\n      \"doc\": \"Up fish tail\"\n    },\n    {\n      \"name\": \"upharpoonleftbar\",\n      \"detail\": \"⥠ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"upharpoonrightbar\",\n      \"detail\": \"⥜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"upharpoonsleftright\",\n      \"detail\": \"⥣ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upin\",\n      \"detail\": \"⟒\",\n      \"doc\": \"Element of opening upwards\"\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"urarc\",\n      \"detail\": \"◝\",\n      \"doc\": \"Upper right quadrant circular arc\"\n    },\n    {\n      \"name\": \"urblacktriangle\",\n      \"detail\": \"◥\",\n      \"doc\": \"Upper right triangle, filled\"\n    },\n    {\n      \"name\": \"urtriangle\",\n      \"detail\": \"◹\",\n      \"doc\": \"Upper right triangle\"\n    },\n    {\n      \"name\": \"UUparrow\",\n      \"detail\": \"⟰\",\n      \"doc\": \"Upwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"varcarriagereturn\",\n      \"detail\": \"⏎\",\n      \"doc\": \"Return symbol\"\n    },\n    {\n      \"name\": \"varhexagon\",\n      \"detail\": \"⬡\",\n      \"doc\": \"White hexagon\"\n    },\n    {\n      \"name\": \"varhexagonblack\",\n      \"detail\": \"⬢\",\n      \"doc\": \"Black hexagon\"\n    },\n    {\n      \"name\": \"varisinobar\",\n      \"detail\": \"⋶ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Element of with overbar\"\n    },\n    {\n      \"name\": \"varisins\",\n      \"detail\": \"⋳\",\n      \"doc\": \"Element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varniobar\",\n      \"detail\": \"⋽\",\n      \"doc\": \"Contains with overbar\"\n    },\n    {\n      \"name\": \"varnis\",\n      \"detail\": \"⋻\",\n      \"doc\": \"Contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"varVdash\",\n      \"detail\": \"⫦\",\n      \"doc\": \"Long dash from left member of double vertical\"\n    },\n    {\n      \"name\": \"varveebar\",\n      \"detail\": \"⩡\",\n      \"doc\": \"Small vee with underbar\"\n    },\n    {\n      \"name\": \"vBar\",\n      \"detail\": \"⫨\",\n      \"doc\": \"Short up tack with underbar\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"vBarv\",\n      \"detail\": \"⫩\",\n      \"doc\": \"Short up tack above short down tack\"\n    },\n    {\n      \"name\": \"vbrtri\",\n      \"detail\": \"⧐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Vertical bar beside right triangle\"\n    },\n    {\n      \"name\": \"vDdash\",\n      \"detail\": \"⫢\",\n      \"doc\": \"Vertical bar triple right turnstile\"\n    },\n    {\n      \"name\": \"Vee\",\n      \"detail\": \"⩔\",\n      \"doc\": \"Double logical or\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"veemidvert\",\n      \"detail\": \"⩛\",\n      \"doc\": \"Logical or with middle stem\"\n    },\n    {\n      \"name\": \"veeodot\",\n      \"detail\": \"⩒\",\n      \"doc\": \"Logical or with dot above\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"veeonwedge\",\n      \"detail\": \"⩙\",\n      \"doc\": \"Logical or overlapping logical and\"\n    },\n    {\n      \"name\": \"viewdata\",\n      \"detail\": \"⌗\",\n      \"doc\": \"Viewdata square\"\n    },\n    {\n      \"name\": \"vrectangle\",\n      \"detail\": \"▯\",\n      \"doc\": \"Rectangle, white (vertical)\"\n    },\n    {\n      \"name\": \"vrectangleblack\",\n      \"detail\": \"▮\",\n      \"doc\": \"Black vertical rectangle\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"vzigzag\",\n      \"detail\": \"⦚\",\n      \"doc\": \"Vertical zigzag line\"\n    },\n    {\n      \"name\": \"Wedge\",\n      \"detail\": \"⩓\",\n      \"doc\": \"Double logical and\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wedgedoublebar\",\n      \"detail\": \"⩠\",\n      \"doc\": \"Logical and with double underbar\"\n    },\n    {\n      \"name\": \"wedgemidvert\",\n      \"detail\": \"⩚\",\n      \"doc\": \"Logical and with middle stem\"\n    },\n    {\n      \"name\": \"wedgeodot\",\n      \"detail\": \"⩑\",\n      \"doc\": \"Logical and with dot above\"\n    },\n    {\n      \"name\": \"wedgeonwedge\",\n      \"detail\": \"⩕\",\n      \"doc\": \"Two intersecting logical and\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"whiteinwhitetriangle\",\n      \"detail\": \"⟁\",\n      \"doc\": \"White triangle containing small white triangle\"\n    },\n    {\n      \"name\": \"whitepointerleft\",\n      \"detail\": \"◅\",\n      \"doc\": \"\\\\triangleleft (mathabx), white left-pointing pointer\"\n    },\n    {\n      \"name\": \"whitepointerright\",\n      \"detail\": \"▻\",\n      \"doc\": \"\\\\triangleright (mathabx), white right-pointing pointer\"\n    },\n    {\n      \"name\": \"whitesquaretickleft\",\n      \"detail\": \"⟤\",\n      \"doc\": \"White square with leftwards tick\"\n    },\n    {\n      \"name\": \"whitesquaretickright\",\n      \"detail\": \"⟥\",\n      \"doc\": \"White square with rightwards tick\"\n    },\n    {\n      \"name\": \"whthorzoval\",\n      \"detail\": \"⬭\",\n      \"doc\": \"White horizontal ellipse\"\n    },\n    {\n      \"name\": \"whtvertoval\",\n      \"detail\": \"⬯\",\n      \"doc\": \"White vertical ellipse\"\n    },\n    {\n      \"name\": \"wideangledown\",\n      \"detail\": \"⦦\",\n      \"doc\": \"Oblique angle opening up\"\n    },\n    {\n      \"name\": \"wideangleup\",\n      \"detail\": \"⦧\",\n      \"doc\": \"Oblique angle opening down\"\n    },\n    {\n      \"name\": \"xbsol\",\n      \"detail\": \"⧹ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\hide (oz), big reverse solidus, schema hiding\"\n    },\n    {\n      \"name\": \"xsol\",\n      \"detail\": \"⧸\",\n      \"doc\": \"Big solidus\"\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zcmp\",\n      \"detail\": \"⨟ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\semi (oz), \\\\fatsemi (stmaryrd), schema composition\"\n    },\n    {\n      \"name\": \"zpipe\",\n      \"detail\": \"⨠ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation schema piping\"\n    },\n    {\n      \"name\": \"zproject\",\n      \"detail\": \"⨡ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\project (oz), schema projection\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lete-sans-math#c\": [\n      \"tight\",\n      \"loose\",\n      \"fulloldstyle\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|upright,italic|}\",\n      \"partial=${1|upright,italic|}\",\n      \"CharacterVariant={${1:variants}}\",\n      \"StylisticSet=${1:number}\",\n      \"Style=${1:style}\",\n      \"Scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lete-sans-math#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/letgut-banner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"accsupp\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/letgut-banner#c\": [\n      \"pagecolor={${1:r,g,b}}\",\n      \"watermark letter=${1:letter}\",\n      \"watermark scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/letgut-banner#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/letltxmacro.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GlobalLetLtxMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalLetLtxMacro{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"LetLtxMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetLtxMacro{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/letterspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls*[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsstyle\"\n    },\n    {\n      \"name\": \"lslig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lslig{${1:ligature}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/letterswitharrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrowoverset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowoverset{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arrowoverset\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"arrowoverset[${2:xoffset}][${3:xscale}][${4:yoffset}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arrowoverset*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowoverset*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arrowoverset*\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"arrowoverset*[${2:xoffset}][${3:xscale}][${4:yoffset}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vA\"\n    },\n    {\n      \"name\": \"vB\"\n    },\n    {\n      \"name\": \"vC\"\n    },\n    {\n      \"name\": \"vD\"\n    },\n    {\n      \"name\": \"vE\"\n    },\n    {\n      \"name\": \"vF\"\n    },\n    {\n      \"name\": \"vG\"\n    },\n    {\n      \"name\": \"vH\"\n    },\n    {\n      \"name\": \"vI\"\n    },\n    {\n      \"name\": \"vJ\"\n    },\n    {\n      \"name\": \"vK\"\n    },\n    {\n      \"name\": \"vL\"\n    },\n    {\n      \"name\": \"vM\"\n    },\n    {\n      \"name\": \"vN\"\n    },\n    {\n      \"name\": \"vO\"\n    },\n    {\n      \"name\": \"vP\"\n    },\n    {\n      \"name\": \"vQ\"\n    },\n    {\n      \"name\": \"vR\"\n    },\n    {\n      \"name\": \"vS\"\n    },\n    {\n      \"name\": \"vT\"\n    },\n    {\n      \"name\": \"vU\"\n    },\n    {\n      \"name\": \"vV\"\n    },\n    {\n      \"name\": \"vW\"\n    },\n    {\n      \"name\": \"vX\"\n    },\n    {\n      \"name\": \"vY\"\n    },\n    {\n      \"name\": \"vZ\"\n    },\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"vb\"\n    },\n    {\n      \"name\": \"vc\"\n    },\n    {\n      \"name\": \"vd\"\n    },\n    {\n      \"name\": \"ve\"\n    },\n    {\n      \"name\": \"vf\"\n    },\n    {\n      \"name\": \"vg\"\n    },\n    {\n      \"name\": \"vh\"\n    },\n    {\n      \"name\": \"vi\"\n    },\n    {\n      \"name\": \"vj\"\n    },\n    {\n      \"name\": \"vk\"\n    },\n    {\n      \"name\": \"vl\"\n    },\n    {\n      \"name\": \"vm\"\n    },\n    {\n      \"name\": \"vn\"\n    },\n    {\n      \"name\": \"vo\"\n    },\n    {\n      \"name\": \"vp\"\n    },\n    {\n      \"name\": \"vq\"\n    },\n    {\n      \"name\": \"vr\"\n    },\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"vt\"\n    },\n    {\n      \"name\": \"vu\"\n    },\n    {\n      \"name\": \"vright\"\n    },\n    {\n      \"name\": \"vw\"\n    },\n    {\n      \"name\": \"vx\"\n    },\n    {\n      \"name\": \"vy\"\n    },\n    {\n      \"name\": \"vz\"\n    },\n    {\n      \"name\": \"Av\"\n    },\n    {\n      \"name\": \"Bv\"\n    },\n    {\n      \"name\": \"Cv\"\n    },\n    {\n      \"name\": \"Dv\"\n    },\n    {\n      \"name\": \"Ev\"\n    },\n    {\n      \"name\": \"Fv\"\n    },\n    {\n      \"name\": \"Gv\"\n    },\n    {\n      \"name\": \"Hv\"\n    },\n    {\n      \"name\": \"Iv\"\n    },\n    {\n      \"name\": \"Jv\"\n    },\n    {\n      \"name\": \"Kv\"\n    },\n    {\n      \"name\": \"Lv\"\n    },\n    {\n      \"name\": \"Mv\"\n    },\n    {\n      \"name\": \"Nv\"\n    },\n    {\n      \"name\": \"Ov\"\n    },\n    {\n      \"name\": \"Pv\"\n    },\n    {\n      \"name\": \"Qv\"\n    },\n    {\n      \"name\": \"Rv\"\n    },\n    {\n      \"name\": \"Sv\"\n    },\n    {\n      \"name\": \"Tv\"\n    },\n    {\n      \"name\": \"Uv\"\n    },\n    {\n      \"name\": \"Vv\"\n    },\n    {\n      \"name\": \"Wv\"\n    },\n    {\n      \"name\": \"Xv\"\n    },\n    {\n      \"name\": \"Yv\"\n    },\n    {\n      \"name\": \"Zv\"\n    },\n    {\n      \"name\": \"av\"\n    },\n    {\n      \"name\": \"bv\"\n    },\n    {\n      \"name\": \"cv\"\n    },\n    {\n      \"name\": \"dv\"\n    },\n    {\n      \"name\": \"ev\"\n    },\n    {\n      \"name\": \"fv\"\n    },\n    {\n      \"name\": \"gv\"\n    },\n    {\n      \"name\": \"hv\"\n    },\n    {\n      \"name\": \"iv\"\n    },\n    {\n      \"name\": \"jv\"\n    },\n    {\n      \"name\": \"kv\"\n    },\n    {\n      \"name\": \"lv\"\n    },\n    {\n      \"name\": \"mv\"\n    },\n    {\n      \"name\": \"nv\"\n    },\n    {\n      \"name\": \"ov\"\n    },\n    {\n      \"name\": \"pv\"\n    },\n    {\n      \"name\": \"qv\"\n    },\n    {\n      \"name\": \"rv\"\n    },\n    {\n      \"name\": \"sv\"\n    },\n    {\n      \"name\": \"tv\"\n    },\n    {\n      \"name\": \"uv\"\n    },\n    {\n      \"name\": \"vleft\"\n    },\n    {\n      \"name\": \"wv\"\n    },\n    {\n      \"name\": \"xv\"\n    },\n    {\n      \"name\": \"yv\"\n    },\n    {\n      \"name\": \"zv\"\n    },\n    {\n      \"name\": \"vcA\"\n    },\n    {\n      \"name\": \"vcB\"\n    },\n    {\n      \"name\": \"vcC\"\n    },\n    {\n      \"name\": \"vcD\"\n    },\n    {\n      \"name\": \"vcE\"\n    },\n    {\n      \"name\": \"vcF\"\n    },\n    {\n      \"name\": \"vcG\"\n    },\n    {\n      \"name\": \"vcH\"\n    },\n    {\n      \"name\": \"vcI\"\n    },\n    {\n      \"name\": \"vcJ\"\n    },\n    {\n      \"name\": \"vcK\"\n    },\n    {\n      \"name\": \"vcL\"\n    },\n    {\n      \"name\": \"vcM\"\n    },\n    {\n      \"name\": \"vcN\"\n    },\n    {\n      \"name\": \"vcO\"\n    },\n    {\n      \"name\": \"vcP\"\n    },\n    {\n      \"name\": \"vcQ\"\n    },\n    {\n      \"name\": \"vcR\"\n    },\n    {\n      \"name\": \"vcS\"\n    },\n    {\n      \"name\": \"vcT\"\n    },\n    {\n      \"name\": \"vcU\"\n    },\n    {\n      \"name\": \"vcV\"\n    },\n    {\n      \"name\": \"vcW\"\n    },\n    {\n      \"name\": \"vcX\"\n    },\n    {\n      \"name\": \"vcY\"\n    },\n    {\n      \"name\": \"vcZ\"\n    },\n    {\n      \"name\": \"cAv\"\n    },\n    {\n      \"name\": \"cBv\"\n    },\n    {\n      \"name\": \"cCv\"\n    },\n    {\n      \"name\": \"cDv\"\n    },\n    {\n      \"name\": \"cEv\"\n    },\n    {\n      \"name\": \"cFv\"\n    },\n    {\n      \"name\": \"cGv\"\n    },\n    {\n      \"name\": \"cHv\"\n    },\n    {\n      \"name\": \"cIv\"\n    },\n    {\n      \"name\": \"cJv\"\n    },\n    {\n      \"name\": \"cKv\"\n    },\n    {\n      \"name\": \"cLv\"\n    },\n    {\n      \"name\": \"cMv\"\n    },\n    {\n      \"name\": \"cNv\"\n    },\n    {\n      \"name\": \"cOv\"\n    },\n    {\n      \"name\": \"cPv\"\n    },\n    {\n      \"name\": \"cQv\"\n    },\n    {\n      \"name\": \"cRv\"\n    },\n    {\n      \"name\": \"cSv\"\n    },\n    {\n      \"name\": \"cTv\"\n    },\n    {\n      \"name\": \"cUv\"\n    },\n    {\n      \"name\": \"cVv\"\n    },\n    {\n      \"name\": \"cWv\"\n    },\n    {\n      \"name\": \"cXv\"\n    },\n    {\n      \"name\": \"cYv\"\n    },\n    {\n      \"name\": \"cZv\"\n    },\n    {\n      \"name\": \"cev\",\n      \"if\": \"presets=vec-cev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cev{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cev\",\n      \"if\": \"presets={vec-cev}\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cev{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/letterswitharrows#c\": [\n      \"presets={${1:set1,set2,...}}\",\n      \"pgf\",\n      \"tweaks\",\n      \"linewidth=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/letterswitharrows#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lettrine.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lettrine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lettrine{${1:letter}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lettrine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lettrine[${3:options%keyvals}]{${1:letter}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\lettrine,\\\\usepackage/lettrine#c,\\\\LettrineOptionsFor\",\n          \"\\\\lettrine,\\\\LettrineOptionsFor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefaultFindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultLhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultLoversize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultLraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultNindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultOptionsFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultSlope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiscardVskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDefaultLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theDefaultDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineFontHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLettrineImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineImagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineImagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLettrineOnGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineOnGridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineOnGridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineOptionsFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LettrineOptionsFor{${1:letter}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ifLettrineRealHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineRealHeightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineRealHeighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineSecondString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineTestString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LettrineWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lettrine#c\": [\n      \"optionsfile=${1:filename}\"\n    ],\n    \"\\\\lettrine,\\\\usepackage/lettrine#c,\\\\LettrineOptionsFor\": [\n      \"lines=${1:integer}\",\n      \"depth=${1:integer}\",\n      \"lhang=${1:decimal}\",\n      \"loversize=${1:decimal}\",\n      \"lraise=${1:decimal}\",\n      \"findent=\",\n      \"nindent=\",\n      \"slope=\",\n      \"image\",\n      \"grid\",\n      \"novskip=\",\n      \"realheight\",\n      \"refstring\",\n      \"refstring=${1:string}\"\n    ],\n    \"\\\\lettrine,\\\\LettrineOptionsFor\": [\n      \"ante=${1:text}\",\n      \"viewport=${1:llx lly urx ury}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lettrine#c\",\n    \"\\\\lettrine,\\\\usepackage/lettrine#c,\\\\LettrineOptionsFor\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lewisstruc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"aliphat\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chemradicalA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chemradicalA[${2:lonepairNo}]{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"chemradicalA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemradicalA{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"chemradicalB\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chemradicalB[${2:lonepairNo}]{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"chemradicalB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chemradicalB{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"leftlonepairover\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftlonepairover{${1:atomA}}{${2:atomB}}\"\n      }\n    },\n    {\n      \"name\": \"leftlonepairunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftlonepairunder{${1:atomA}}{${2:atomB}}\"\n      }\n    },\n    {\n      \"name\": \"LewisSbond\"\n    },\n    {\n      \"name\": \"LewisTetrahedralA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LewisTetrahedralA{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"LewistetrahedralA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LewistetrahedralA{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"LewisTetrahedralB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LewisTetrahedralB{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"LewistetrahedralB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LewistetrahedralB{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"lonepairA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lonepairA[${2:lonepairNo}]{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"lonepairA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lonepairA{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"lonepairB\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lonepairB[${2:lonepairNo}]{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"lonepairB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lonepairB{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"overpair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overpair{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"overpairover\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"overpairover{${1:atomA}}{${2:atomB}}\"\n      }\n    },\n    {\n      \"name\": \"rightlonepairover\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightlonepairover{${1:atomA}}{${2:atomB}}\"\n      }\n    },\n    {\n      \"name\": \"rightlonepairunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightlonepairunder{${1:atomA}}{${2:atomB}}\"\n      }\n    },\n    {\n      \"name\": \"underpair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underpair{${1:atom}}\"\n      }\n    },\n    {\n      \"name\": \"underpairunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"underpairunder{${1:atomA}}{${2:atomB}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lexend.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LexendDeca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendDeca{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendExa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendExa{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendGiga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendGiga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendMega\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendMega{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendPeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendPeta{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendTera\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendTera{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendZetta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexendZetta{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LexendVariants\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lexend#c\": [\n      \"main\",\n      \"nomain\",\n      \"sans\",\n      \"nosans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lexend#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lexref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"nomencl\"\n    },\n    {\n      \"name\": \"splitidx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareLex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLex{${1:csname}}{${2:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLex\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"DeclareLex{${1:csname}}{${2:abbrev}}[${3:full name}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareLex\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"DeclareLex{${1:csname}}{${2:abbrev}}[${3:full name}][${4:alt}]\"\n      }\n    },\n    {\n      \"name\": \"sq\"\n    },\n    {\n      \"name\": \"sqq\"\n    },\n    {\n      \"name\": \"bis\"\n    },\n    {\n      \"name\": \"ter\"\n    },\n    {\n      \"name\": \"quater\"\n    },\n    {\n      \"name\": \"quinquies\"\n    },\n    {\n      \"name\": \"sexies\"\n    },\n    {\n      \"name\": \"septies\"\n    },\n    {\n      \"name\": \"octies\"\n    },\n    {\n      \"name\": \"nonies\"\n    },\n    {\n      \"name\": \"RenewLexShortcut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewLexShortcut{${1:shortcut}}{${2:redefinition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewLexShortcut\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RenewLexShortcut{${1:shortcut}}{${2:redefinition}}[${3:nomenclature}]\"\n      }\n    },\n    {\n      \"name\": \"NewLexShortcut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewLexShortcut{${1:shortcut}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewLexShortcut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewLexShortcut{${1:shortcut}}{${2:definition}}[${3:nomenclature}]\"\n      }\n    },\n    {\n      \"name\": \"LexRefPrefixTests\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LexRefPrefixTests{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LexRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LexRef{${1:name}}{${2:art. num}}\"\n      }\n    },\n    {\n      \"name\": \"LexRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"LexRef{${1:name}}{${2:art. num}}[${3:para num}][${4:num}][${5:letter}]\"\n      }\n    },\n    {\n      \"name\": \"LexRefns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LexRefns{${1:name}}{${2:art. num}}\"\n      }\n    },\n    {\n      \"name\": \"LexRefns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"LexRefns{${1:name}}{${2:art. num}}[${3:para num}][${4:num}][${5:letter}]\"\n      }\n    },\n    {\n      \"name\": \"npLexRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"npLexRef{${1:name}}{${2:art. num}}\"\n      }\n    },\n    {\n      \"name\": \"npLexRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"npLexRef{${1:name}}{${2:art. num}}[${3:para num}][${4:num}][${5:letter}]\"\n      }\n    },\n    {\n      \"name\": \"npLexRefns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"npLexRefns{${1:name}}{${2:art. num}}\"\n      }\n    },\n    {\n      \"name\": \"npLexRefns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"npLexRefns{${1:name}}{${2:art. num}}[${3:para num}][${4:num}][${5:letter}]\"\n      }\n    },\n    {\n      \"name\": \"LexIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LexIndex{${1:csname}}{${2:art. num}}{${3:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"LexIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][][]{}\",\n        \"snippet\": \"LexIndex{${1:csname}}{${2:art. num}}[${4:para num}][${5:num}][${6:letter}]{${3:abbrev}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lexref#c\": [\n      \"noprint\",\n      \"indexing\",\n      \"nomencl\",\n      \"shortcutstolist\",\n      \"CHfr\",\n      \"CHde\",\n      \"DE\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lexref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lgrmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lgrmathsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrmathsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lgrmathsetup,\\\\usepackage/lgrmath#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lgrmathup\",\n      \"if\": \"alphabets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrmathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lgrmathit\",\n      \"if\": \"alphabets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrmathit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lgrmathup\",\n      \"if\": \"alphabets=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrmathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lgrmathit\",\n      \"if\": \"alphabets=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgrmathit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lgrmathgreektable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lgrmathgreektable{${1:family}}{${2:series}}{${3:shape}}\"\n      }\n    },\n    {\n      \"name\": \"lgrmathgreektableextra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lgrmathgreektableextra{${1:family}}{${2:series}}{${3:shape}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varvarsigma\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koppait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koppaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicronit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicronup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varSigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varSigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varvarsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varvarsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lgrmath#c\": [\n      \"font=${1:font name}\",\n      \"upshape=${1:shape}\",\n      \"itshape=${1:shape}\",\n      \"series=${1:series}\",\n      \"boldseries=${1:series}\",\n      \"alphabets\"\n    ],\n    \"\\\\lgrmathsetup,\\\\usepackage/lgrmath#c\": [\n      \"style=${1|ISO,UP,TeX|}\",\n      \"greek=${1|up,it|}\",\n      \"Greek=${1|up,it|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lgrmath#c\",\n    \"\\\\lgrmathsetup,\\\\usepackage/lgrmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lhelp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"draftmarkps\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"draftmarkps\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"draftmarkpsonly\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"draftmarkpsonly\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"g\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"kg\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"mum\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"cm\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"m\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"ml\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"mL\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"ns\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"mus\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"ms\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"s\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"unitbasic\"\n    },\n    {\n      \"name\": \"degree\",\n      \"if\": \"unittemp\"\n    },\n    {\n      \"name\": \"Degree\",\n      \"if\": \"unittemp\"\n    },\n    {\n      \"name\": \"celsius\",\n      \"if\": \"unittemp\"\n    },\n    {\n      \"name\": \"fahren\",\n      \"if\": \"unittemp\"\n    },\n    {\n      \"name\": \"muA\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"muH\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"muV\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"muW\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"ohm\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"kohm\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"Mohm\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"dc\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"rms\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"Vac\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"Vdc\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"VLL\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"kVLL\",\n      \"if\": \"unitelec\"\n    },\n    {\n      \"name\": \"g\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"kg\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"mm\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"mum\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"cm\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"m\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"ml\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"mL\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"ns\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"mus\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"ms\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"s\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"h\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"degree\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"Degree\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"celsius\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"fahren\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"muA\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"muH\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"muV\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"muW\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"ohm\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"kohm\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"Mohm\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"dc\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"rms\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"Vac\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"Vdc\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"VLL\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"kVLL\",\n      \"if\": \"units\"\n    },\n    {\n      \"name\": \"cref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Cref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"aref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Aref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pgref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pgref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"phref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Phref\",\n      \"if\": \"refshortcuts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Phref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ddmonthyyyy\",\n      \"if\": \"ddmonthyyyy\"\n    },\n    {\n      \"name\": \"HUGE\",\n      \"if\": \"morefontsizes\"\n    },\n    {\n      \"name\": \"veryhuge\",\n      \"if\": \"morefontsizes\"\n    },\n    {\n      \"name\": \"veryHuge\",\n      \"if\": \"morefontsizes\"\n    },\n    {\n      \"name\": \"veryHUGE\",\n      \"if\": \"morefontsizes\"\n    },\n    {\n      \"name\": \"selectD\",\n      \"if\": \"countryselect\"\n    },\n    {\n      \"name\": \"selectNZ\",\n      \"if\": \"countryselect\"\n    },\n    {\n      \"name\": \"selectUK\",\n      \"if\": \"countryselect\"\n    },\n    {\n      \"name\": \"selectUSA\",\n      \"if\": \"countryselect\"\n    },\n    {\n      \"name\": \"lhelpxspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draftname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draftfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putdraftmarkps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprintnotes\"\n    },\n    {\n      \"name\": \"printnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yyyymmdd\"\n    },\n    {\n      \"name\": \"hour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timehhmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayaddtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ulbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ulbf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lineout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"larr\"\n    },\n    {\n      \"name\": \"rarr\"\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"PP\"\n    },\n    {\n      \"name\": \"MM\"\n    },\n    {\n      \"name\": \"PM\"\n    },\n    {\n      \"name\": \"about\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"ca\"\n    },\n    {\n      \"name\": \"resp\"\n    },\n    {\n      \"name\": \"Discuss\"\n    },\n    {\n      \"name\": \"Edit\"\n    },\n    {\n      \"name\": \"Mark\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fparbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fparbox([${2:pos}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fparbox([${2:pos}][${3:height}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fparbox([${2:pos}][${3:height}][${4:inner-pos}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fparbox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fparbox[${2:width}]([${3:pos}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fparbox[${2:width}]([${3:pos}][${4:height}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fparbox\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fparbox[${2:width}]([${3:pos}][${4:height}][${5:inner-pos}]){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xyfparbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xyfparbox{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"xyfparbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"xyfparbox[${4:pos}]{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"lrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tblap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tblap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rtlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rblap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rblap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vnull\"\n    },\n    {\n      \"name\": \"vnul\"\n    },\n    {\n      \"name\": \"hrulenull\"\n    },\n    {\n      \"name\": \"notes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includelower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"includelower{${1:level}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"ifinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifinclude{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"theexcludelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EPSfileext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeEPS\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeEPS{${1:width}}{${2:height}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"placeEPS\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"placeEPS[${4:options%keyvals}]{${1:width}}{${2:height}}{${3:imagefile}}\",\n        \"keys\": [\n          \"\\\\placeEPS,\\\\addEPSopt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EPSopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addEPSopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addEPSopt{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\placeEPS,\\\\addEPSopt\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listlabelleft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"listlabelleft{${1:indent}}{${2:width}}{${3:sep}}{${4:rmargin}}\"\n      }\n    },\n    {\n      \"name\": \"listlabelleftindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listlabelleftindent{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"listshort\"\n    },\n    {\n      \"name\": \"clearoddpage\"\n    },\n    {\n      \"name\": \"clearevenpage\"\n    },\n    {\n      \"name\": \"clearthispage\"\n    },\n    {\n      \"name\": \"newoddpage\"\n    },\n    {\n      \"name\": \"newoddpage*\"\n    },\n    {\n      \"name\": \"newevenpage\"\n    },\n    {\n      \"name\": \"newevenpage*\"\n    },\n    {\n      \"name\": \"ensureonecolumn\"\n    },\n    {\n      \"name\": \"ensuretwocolumn\"\n    },\n    {\n      \"name\": \"ensurecolumnend\"\n    },\n    {\n      \"name\": \"minlinelen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"absval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absval{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hanghere\"\n    },\n    {\n      \"name\": \"labelhangindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelhangindent{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gobbletwo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobbletwo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"thinthinspace\"\n    },\n    {\n      \"name\": \"setTBstruts\"\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"placepos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placepos{${1:right}}{${2:down}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"PSadjust\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Eenumerate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"Eitemize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:formatting}}\"\n      }\n    },\n    {\n      \"name\": \"enumerateshort\"\n    },\n    {\n      \"name\": \"itemizeshort\"\n    },\n    {\n      \"name\": \"narrowpars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indentation}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lhelp#c\": [\n      \"unitxspace\",\n      \"unitbasic\",\n      \"unitBasic\",\n      \"unittemp\",\n      \"unitelec\",\n      \"units\",\n      \"page\",\n      \"emptypage\",\n      \"draftmark\",\n      \"draftmarkps\",\n      \"draftmarkpsonly\",\n      \"epsdraft\",\n      \"epspdf\",\n      \"refshortcuts\",\n      \"printnotes\",\n      \"ddmonthyyyy\",\n      \"yyyymmdd\",\n      \"hh:mm\",\n      \"morefontsizes\",\n      \"verbose\",\n      \"shorttoc\",\n      \"countryselect\"\n    ],\n    \"\\\\placeEPS,\\\\addEPSopt\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lhelp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oldstylenumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"libertineSB\"\n    },\n    {\n      \"name\": \"libertineOsF\"\n    },\n    {\n      \"name\": \"libertineLF\"\n    },\n    {\n      \"name\": \"libertineDisplay\"\n    },\n    {\n      \"name\": \"libmono\"\n    },\n    {\n      \"name\": \"libertineInitial\"\n    },\n    {\n      \"name\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinumOsF\"\n    },\n    {\n      \"name\": \"biolinumLF\"\n    },\n    {\n      \"name\": \"libertineInitialGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineInitialGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"libertineGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumKeyGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumKeyGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"biolinumkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LKeyTux\"\n    },\n    {\n      \"name\": \"LKeyWin\"\n    },\n    {\n      \"name\": \"LKeyMenu\"\n    },\n    {\n      \"name\": \"LKeyStrg\"\n    },\n    {\n      \"name\": \"LKeyCtrl\"\n    },\n    {\n      \"name\": \"LKeyAlt\"\n    },\n    {\n      \"name\": \"LKeyAltGr\"\n    },\n    {\n      \"name\": \"LKeyShift\"\n    },\n    {\n      \"name\": \"LKeyEnter\"\n    },\n    {\n      \"name\": \"LKeyTab\"\n    },\n    {\n      \"name\": \"LKeyCapsLock\"\n    },\n    {\n      \"name\": \"LKeyPos\"\n    },\n    {\n      \"name\": \"LKeyEntf\"\n    },\n    {\n      \"name\": \"LKeyEinf\"\n    },\n    {\n      \"name\": \"LKeyLeer\"\n    },\n    {\n      \"name\": \"LKeyEsc\"\n    },\n    {\n      \"name\": \"LKeyEnde\"\n    },\n    {\n      \"name\": \"LKeyBack\"\n    },\n    {\n      \"name\": \"LKeyUp\"\n    },\n    {\n      \"name\": \"LKeyDown\"\n    },\n    {\n      \"name\": \"LKeyLeft\"\n    },\n    {\n      \"name\": \"LKeyRight\"\n    },\n    {\n      \"name\": \"LKeyPgUp\"\n    },\n    {\n      \"name\": \"LKeyPgDown\"\n    },\n    {\n      \"name\": \"LKeyAt\"\n    },\n    {\n      \"name\": \"LKeyFn\"\n    },\n    {\n      \"name\": \"LKeyHome\"\n    },\n    {\n      \"name\": \"LKeyDel\"\n    },\n    {\n      \"name\": \"LKeySpace\"\n    },\n    {\n      \"name\": \"LKeyScreenUp\"\n    },\n    {\n      \"name\": \"LKeyScreenDown\"\n    },\n    {\n      \"name\": \"LKeyIns\"\n    },\n    {\n      \"name\": \"LKeyEnd\"\n    },\n    {\n      \"name\": \"LKeyGNU\"\n    },\n    {\n      \"name\": \"LKeyPageUp\"\n    },\n    {\n      \"name\": \"LKeyPageDown\"\n    },\n    {\n      \"name\": \"LKeyCommand\"\n    },\n    {\n      \"name\": \"LKeyOptionKey\"\n    },\n    {\n      \"name\": \"LKeyF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyPad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyPad{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKey{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftStrgX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftCtrlX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftCtrlX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltGrX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltEnt\"\n    },\n    {\n      \"name\": \"LKeyReset\"\n    },\n    {\n      \"name\": \"LKeyCtrlAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltX{${1:letter or digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltEnt\"\n    },\n    {\n      \"name\": \"LKeyAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyCtrlAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyCtrlAltF{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"LMouseEmpty\"\n    },\n    {\n      \"name\": \"LMouseN\"\n    },\n    {\n      \"name\": \"LMouseL\"\n    },\n    {\n      \"name\": \"LMouseM\"\n    },\n    {\n      \"name\": \"LMouseR\"\n    },\n    {\n      \"name\": \"LMouseLR\"\n    },\n    {\n      \"name\": \"LMouseIIEmpty\"\n    },\n    {\n      \"name\": \"LMouseIIN\"\n    },\n    {\n      \"name\": \"LMouseIIL\"\n    },\n    {\n      \"name\": \"LMouseIIR\"\n    },\n    {\n      \"name\": \"LMouseIILR\"\n    },\n    {\n      \"name\": \"DeclareTextGlyphY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextGlyphY{${1:type}}{${2:name}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertine#c\": [\n      \"biolinum\",\n      \"sf\",\n      \"ss\",\n      \"libertine\",\n      \"rm\",\n      \"tt\",\n      \"mono\",\n      \"sfdefault\",\n      \"type1\",\n      \"nofontspec\",\n      \"lining\",\n      \"oldstyle\",\n      \"sflining\",\n      \"sfoldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"sftabular\",\n      \"sfproportional\",\n      \"semibold\",\n      \"bold\",\n      \"scaled=${1:factor}\",\n      \"ttscaled=${1:factor}\",\n      \"llscaled=${1:factor}\",\n      \"defaultfeatures={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertine#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertineMono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"libmono\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertineMono#c\": [\n      \"type1\",\n      \"nofontspec\",\n      \"ttscaled=${1:factor}\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertineMono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertineRoman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"libertineSB\"\n    },\n    {\n      \"name\": \"libertineOsF\"\n    },\n    {\n      \"name\": \"libertineLF\"\n    },\n    {\n      \"name\": \"libertineDisplay\"\n    },\n    {\n      \"name\": \"libertineInitial\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstylenumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstylenumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"liningnumsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnumsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextGlyphY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTextGlyphY{${1:type}}{${2:name}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"libertineGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineGlyph{${1:glyph name}}\"\n      }\n    },\n    {\n      \"name\": \"libertineInitialGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libertineInitialGlyph{${1:glyph name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertineRoman#c\": [\n      \"type1\",\n      \"nofontspec\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"semibold\",\n      \"bold\",\n      \"defaultfeatures={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertineRoman#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertinegc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"libertine\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertinegc#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertinegc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertinus-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"newunicodechar\",\n      \"if\": \"greek\"\n    },\n    {\n      \"name\": \"newunicodechar\",\n      \"if\": \"greek=true\"\n    },\n    {\n      \"name\": \"newunicodechar\",\n      \"if\": \"greekitalic\"\n    },\n    {\n      \"name\": \"newunicodechar\",\n      \"if\": \"greekitalic=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BiolinumKeyboard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biolinumKeyGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biolinumKeyGlyph{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BiolinumKeyGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BiolinumKeyGlyph{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Land\"\n    },\n    {\n      \"name\": \"Lcase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LCPSP\"\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LibertinusDisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LibertinusInitials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LibertinusKeyboard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LibertinusSansOsF\"\n    },\n    {\n      \"name\": \"LibertinusSansTLF\"\n    },\n    {\n      \"name\": \"LibertinusSerifOsF\"\n    },\n    {\n      \"name\": \"LibertinusSerifSB\"\n    },\n    {\n      \"name\": \"LibertinusSerifTLF\"\n    },\n    {\n      \"name\": \"LKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKey{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAlt\"\n    },\n    {\n      \"name\": \"LKeyAltApple\"\n    },\n    {\n      \"name\": \"LKeyAltAppleX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltAppleX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltF{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltGr\"\n    },\n    {\n      \"name\": \"LKeyAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltGrX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyAltX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyAt\"\n    },\n    {\n      \"name\": \"LKeyBack\"\n    },\n    {\n      \"name\": \"LKeyBildDown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LKeyBildUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LKeyCapslock\"\n    },\n    {\n      \"name\": \"LKeyCommand\"\n    },\n    {\n      \"name\": \"LKeyCtrl\"\n    },\n    {\n      \"name\": \"LKeyDel\"\n    },\n    {\n      \"name\": \"LKeyDown\"\n    },\n    {\n      \"name\": \"LKeyEinf\"\n    },\n    {\n      \"name\": \"LKeyEnd\"\n    },\n    {\n      \"name\": \"LKeyEnde\"\n    },\n    {\n      \"name\": \"LKeyEnter\"\n    },\n    {\n      \"name\": \"LKeyEntf\"\n    },\n    {\n      \"name\": \"LKeyEsc\"\n    },\n    {\n      \"name\": \"LKeyF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyF{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyFn\"\n    },\n    {\n      \"name\": \"LKeyGNU\"\n    },\n    {\n      \"name\": \"LKeyHome\"\n    },\n    {\n      \"name\": \"LKeyIns\"\n    },\n    {\n      \"name\": \"LKeyLeer\"\n    },\n    {\n      \"name\": \"LKeyLeft\"\n    },\n    {\n      \"name\": \"LKeyMenu\"\n    },\n    {\n      \"name\": \"LKeyOptionKey\"\n    },\n    {\n      \"name\": \"LKeyPad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyPad{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyPageDown\"\n    },\n    {\n      \"name\": \"LKeyPageUp\"\n    },\n    {\n      \"name\": \"LKeyPos\"\n    },\n    {\n      \"name\": \"LKeyReset\"\n    },\n    {\n      \"name\": \"LKeyRight\"\n    },\n    {\n      \"name\": \"LKeyShift\"\n    },\n    {\n      \"name\": \"LKeyShiftAltGrX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltGrX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftAltX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftStrgX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyShiftX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyShiftX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeySpace\"\n    },\n    {\n      \"name\": \"LKeyStrg\"\n    },\n    {\n      \"name\": \"LKeyStrgAltEntf\"\n    },\n    {\n      \"name\": \"LKeyStrgAltF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltF{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgAltX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgAltX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyStrgX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LKeyStrgX{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"LKeyTab\"\n    },\n    {\n      \"name\": \"LKeyTux\"\n    },\n    {\n      \"name\": \"LKeyUp\"\n    },\n    {\n      \"name\": \"LKeyWin\"\n    },\n    {\n      \"name\": \"LKeyWindows\"\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lss\"\n    },\n    {\n      \"name\": \"LSS\"\n    },\n    {\n      \"name\": \"Lsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsbf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Wikipedia\"\n    },\n    {\n      \"name\": \"WikipediaW\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"blackcircleulquadwhite\",\n      \"detail\": \"◕\",\n      \"doc\": \"Circle with all but upper left quadrant black\"\n    },\n    {\n      \"name\": \"blacklefthalfcircle\",\n      \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Left half black circle\"\n    },\n    {\n      \"name\": \"blackrighthalfcircle\",\n      \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Right half black circle\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"caretinsert\",\n      \"detail\": \"‸\",\n      \"doc\": \"Caret (insertion mark)\"\n    },\n    {\n      \"name\": \"circlebottomhalfblack\",\n      \"detail\": \"◒\",\n      \"doc\": \"Circle, filled bottom half\"\n    },\n    {\n      \"name\": \"circlelefthalfblack\",\n      \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled left half [harvey ball]\"\n    },\n    {\n      \"name\": \"circleonleftarrow\",\n      \"detail\": \"⬰\",\n      \"doc\": \"Left arrow with small circle\"\n    },\n    {\n      \"name\": \"circleonrightarrow\",\n      \"detail\": \"⇴\",\n      \"doc\": \"Right arrow with small circle\"\n    },\n    {\n      \"name\": \"circlerighthalfblack\",\n      \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled right half\"\n    },\n    {\n      \"name\": \"circletophalfblack\",\n      \"detail\": \"◓\",\n      \"doc\": \"Circle, filled top half\"\n    },\n    {\n      \"name\": \"circleurquadblack\",\n      \"detail\": \"◔\",\n      \"doc\": \"Circle with upper right quadrant black\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"dsol\",\n      \"detail\": \"⧶\",\n      \"doc\": \"Solidus with overbar\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"equalrightarrow\",\n      \"detail\": \"⥱\",\n      \"doc\": \"Equals sign above rightwards arrow\"\n    },\n    {\n      \"name\": \"Exclam\",\n      \"detail\": \"‼\",\n      \"doc\": \"!!, double exclamation mark\"\n    },\n    {\n      \"name\": \"fcmp\",\n      \"detail\": \"⨾ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\comp (oz), relational composition\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"Hermaphrodite\",\n      \"detail\": \"⚥\",\n      \"doc\": \"Male and female sign\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Lbrbrak\",\n      \"detail\": \"〘\",\n      \"doc\": \"Left white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lcurvyangle\",\n      \"detail\": \"⧼\",\n      \"doc\": \"Left pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"leftarrowsimilar\",\n      \"detail\": \"⥳\",\n      \"doc\": \"Leftwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"llparenthesis\",\n      \"detail\": \"⦇ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"mbfDigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟊\",\n      \"doc\": \"Mathematical bold capital digamma\"\n    },\n    {\n      \"name\": \"mbfdigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟋\",\n      \"doc\": \"Mathematical bold small digamma\"\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nvleftarrow\",\n      \"detail\": \"⇷\",\n      \"doc\": \"Leftwards arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvLeftarrow\",\n      \"detail\": \"⤂\",\n      \"doc\": \"Leftwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftrightarrow\",\n      \"detail\": \"⇹\",\n      \"doc\": \"Left right arrow with vertical stroke, partial relation\"\n    },\n    {\n      \"name\": \"nVleftrightarrow\",\n      \"detail\": \"⇼\",\n      \"doc\": \"Left right arrow with double vertical stroke, finite relation\"\n    },\n    {\n      \"name\": \"nvLeftrightarrow\",\n      \"detail\": \"⤄\",\n      \"doc\": \"Left right double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrow\",\n      \"detail\": \"⇸ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with vertical stroke, partial function\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"nvRightarrow\",\n      \"detail\": \"⤃\",\n      \"doc\": \"Rightwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocommatopright{${1:arg}}\"\n      },\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"otimeshat\",\n      \"detail\": \"⨶\",\n      \"doc\": \"Circled multiplication sign with circumflex accent\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"Rbrbrak\",\n      \"detail\": \"〙\",\n      \"doc\": \"Right white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rcurvyangle\",\n      \"detail\": \"⧽\",\n      \"doc\": \"Right pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"rightarrowapprox\",\n      \"detail\": \"⥵\",\n      \"doc\": \"Rightwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowsimilar\",\n      \"detail\": \"⥴\",\n      \"doc\": \"Rightwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"rrparenthesis\",\n      \"detail\": \"⦈ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n    },\n    {\n      \"name\": \"rsolbar\",\n      \"detail\": \"⧷\",\n      \"doc\": \"Reverse solidus with horizontal stroke\"\n    },\n    {\n      \"name\": \"similarrightarrow\",\n      \"detail\": \"⥲\",\n      \"doc\": \"Tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"typecolon\",\n      \"detail\": \"⦂\",\n      \"doc\": \"Z notation type colon, (present in bbold font but no command)\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"upDigamma\",\n      \"unusual\": true,\n      \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Capital digamma\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertinus-otf#c\": [\n      \"oldstyle\",\n      \"lining\",\n      \"proportional\",\n      \"tabular\",\n      \"semibold\",\n      \"bold\",\n      \"ScaleRM=${1:factor}\",\n      \"ScaleSF=${1:factor}\",\n      \"ScaleTT=${1:factor}\",\n      \"StretchTT=${1:factor}\",\n      \"defaultfeatures={${1:fontspec features}}\",\n      \"uni={${1:unicode-math options}}\",\n      \"mathfeature={${1:\\\\setmathfont options}}\",\n      \"greek\",\n      \"greekitalic\",\n      \"nomath\",\n      \"mono\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertinus-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertinus-type1.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LibertinusSerif\"\n    },\n    {\n      \"name\": \"LibertinusSerifSB\"\n    },\n    {\n      \"name\": \"LibertinusSerifOsF\"\n    },\n    {\n      \"name\": \"LibertinusSerifTLF\"\n    },\n    {\n      \"name\": \"LibertinusSerifLF\"\n    },\n    {\n      \"name\": \"LibertinusSans\"\n    },\n    {\n      \"name\": \"LibertinusSansOsF\"\n    },\n    {\n      \"name\": \"LibertinusSansTLF\"\n    },\n    {\n      \"name\": \"LibertinusSansLF\"\n    },\n    {\n      \"name\": \"LibertinusMono\"\n    },\n    {\n      \"name\": \"LibertinusKeyboard\"\n    },\n    {\n      \"name\": \"libertinusseriflgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libertinussanslgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertinus-type1#c\": [\n      \"sans\",\n      \"sf\",\n      \"ss\",\n      \"serif\",\n      \"rm\",\n      \"tt\",\n      \"mono\",\n      \"sfdefault\",\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"semibold\",\n      \"sb\",\n      \"bold\",\n      \"ScaleRM=${1:factor}\",\n      \"ScaleSF=${1:factor}\",\n      \"ScaleTT=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertinus-type1#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libertinust1math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thfamily\"\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"annuity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annuity{${1:arg}}\"\n      },\n      \"detail\": \"x⃧\",\n      \"doc\": \"Combining annuity symbol\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"asteraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asteraccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃰\",\n      \"doc\": \"Combining asterisk above\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backdprime\",\n      \"detail\": \"‶\",\n      \"doc\": \"Double reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"backtrprime\",\n      \"detail\": \"‷\",\n      \"doc\": \"Triple reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigblacktriangledown\",\n      \"detail\": \"▼\",\n      \"doc\": \"Big down triangle, filled\"\n    },\n    {\n      \"name\": \"bigblacktriangleup\",\n      \"detail\": \"▲\",\n      \"doc\": \"Black up-pointing triangle\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupdotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"braceex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketlu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"caretinsert\",\n      \"unusual\": true,\n      \"detail\": \"‸\",\n      \"doc\": \"Caret (insertion mark)\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"checkmarkmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkmarkmath\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"closure\",\n      \"unusual\": true,\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupleftarrow\",\n      \"detail\": \"⊌\",\n      \"doc\": \"Multiset\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"dlb\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"downparenfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dprime\",\n      \"detail\": \"″ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double prime or second, not superscripted\"\n    },\n    {\n      \"name\": \"drb\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"dsol\",\n      \"detail\": \"⧶\",\n      \"doc\": \"Solidus with overbar\"\n    },\n    {\n      \"name\": \"enclosecircle\",\n      \"unusual\": true,\n      \"detail\": \"x⃝\",\n      \"doc\": \"Combining enclosing circle\"\n    },\n    {\n      \"name\": \"enclosesquare\",\n      \"unusual\": true,\n      \"detail\": \"x⃞\",\n      \"doc\": \"Combining enclosing square\"\n    },\n    {\n      \"name\": \"enclosetriangle\",\n      \"unusual\": true,\n      \"detail\": \"x⃤\",\n      \"doc\": \"Combining enclosing upward pointing triangle\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"eqgtr\",\n      \"detail\": \"⋝\",\n      \"doc\": \"Equal-or-greater\"\n    },\n    {\n      \"name\": \"eqless\",\n      \"detail\": \"⋜\",\n      \"doc\": \"Equal-or-less\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"Equiv\",\n      \"detail\": \"≣\",\n      \"doc\": \"Strict equivalence (4 lines)\"\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eulerconst\",\n      \"detail\": \"ℇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Euler constant\"\n    },\n    {\n      \"name\": \"Exclam\",\n      \"detail\": \"‼\",\n      \"doc\": \"!!, double exclamation mark\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fracslash\",\n      \"detail\": \"⁄\",\n      \"doc\": \"/, fraction slash\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"Hfraktur\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"hyphenbullet\",\n      \"detail\": \"⁃\",\n      \"doc\": \"Rectangle, filled (hyphen bullet)\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"increment\",\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invlazys\",\n      \"detail\": \"∾\",\n      \"doc\": \"Most positive, inverted lazy s\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernelcontraction\",\n      \"detail\": \"∻\",\n      \"doc\": \"Homothetic\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"leftarrowaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"leftharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining left harpoon above\"\n    },\n    {\n      \"name\": \"leftrightarrowaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftrightarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathboldsans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathboldsans{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsfbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathvisiblespace\"\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"unusual\": true,\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"unusual\": true,\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"unusual\": true,\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"unusual\": true,\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"measeq\",\n      \"detail\": \"≞\",\n      \"doc\": \"Measured by (m over equals)\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musicalnote\"\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nge\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngets\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nle\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"notchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nPerp\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvartriangleleft\"\n    },\n    {\n      \"name\": \"nvartriangleright\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocommatopright{${1:arg}}\"\n      },\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overparen{${1:arg}}\"\n      },\n      \"detail\": \"⏜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\wideparen (yhmath mathabx fourier), top parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"ovhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovhook{${1:arg}}\"\n      },\n      \"detail\": \" ̉\",\n      \"doc\": \"Combining hook above\"\n    },\n    {\n      \"name\": \"parenex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenlu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prurel\",\n      \"unusual\": true,\n      \"detail\": \"⊰\",\n      \"doc\": \"Element precedes under relation\"\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"qprime\",\n      \"detail\": \"⁗ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Quadruple prime, not superscripted\"\n    },\n    {\n      \"name\": \"questeq\",\n      \"detail\": \"≟\",\n      \"doc\": \"Equal with questionmark\"\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightarrowaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rightharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining right harpoon above\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rsolbar\",\n      \"detail\": \"⧷\",\n      \"doc\": \"Reverse solidus with horizontal stroke\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"sansLmirrored\",\n      \"detail\": \"⅃\",\n      \"doc\": \"Reversed sans-serif capital l\"\n    },\n    {\n      \"name\": \"sansLturned\",\n      \"detail\": \"⅂\",\n      \"doc\": \"Turned sans-serif capital l\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smalliiiint\"\n    },\n    {\n      \"name\": \"smalliiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiint\"\n    },\n    {\n      \"name\": \"smalliiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliint\"\n    },\n    {\n      \"name\": \"smalliintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallin\",\n      \"detail\": \"∊\",\n      \"doc\": \"Set membership (small set membership)\"\n    },\n    {\n      \"name\": \"smallintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallni\",\n      \"detail\": \"∍\",\n      \"doc\": \"R: contains (small contains as member)\"\n    },\n    {\n      \"name\": \"smalloiint\"\n    },\n    {\n      \"name\": \"smalloiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloint\"\n    },\n    {\n      \"name\": \"smallointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsum\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"unusual\": true,\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"unusual\": true,\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"trprime\",\n      \"detail\": \"‴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Triple prime (not superscripted)\"\n    },\n    {\n      \"name\": \"turnediota\",\n      \"detail\": \"℩\",\n      \"doc\": \"Turned iota\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underparen{${1:arg}}\"\n      },\n      \"detail\": \"⏝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Bottom parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"unicodecdots\",\n      \"detail\": \"⋯\",\n      \"doc\": \"Three dots, centered\"\n    },\n    {\n      \"name\": \"unicodeellipsis\",\n      \"detail\": \"…\",\n      \"doc\": \"Ellipsis (horizontal)\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upparenfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppartial\"\n    },\n    {\n      \"name\": \"uppartial\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"Upsilonit\"\n    },\n    {\n      \"name\": \"upsilonit\"\n    },\n    {\n      \"name\": \"Upsilonup\"\n    },\n    {\n      \"name\": \"upsilonup\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"varepsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varphiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vdotsmath\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"vertoverlay\",\n      \"detail\": \"x⃒\",\n      \"doc\": \"Combining long vertical line overlay\"\n    },\n    {\n      \"name\": \"vv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblkcircle\",\n      \"unusual\": true,\n      \"detail\": \"∙\",\n      \"doc\": \"Bullet operator\"\n    },\n    {\n      \"name\": \"vysmwhtcircle\",\n      \"unusual\": true,\n      \"detail\": \"∘\",\n      \"doc\": \"Composite function (small circle)\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widebridgeabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebridgeabove{${1:arg}}\"\n      },\n      \"detail\": \"x⃩\",\n      \"doc\": \"Combining wide bridge above\"\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xbsol\",\n      \"detail\": \"⧹ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\hide (oz), big reverse solidus, schema hiding\"\n    },\n    {\n      \"name\": \"xbsolop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiit\"\n    },\n    {\n      \"name\": \"xiit\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xsol\",\n      \"detail\": \"⧸\",\n      \"doc\": \"Big solidus\"\n    },\n    {\n      \"name\": \"xsolop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"if\": \"mathsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbold\",\n      \"if\": \"ISO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vectorsym\",\n      \"if\": \"ISO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorsym{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matrixsym\",\n      \"if\": \"ISO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixsym{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tensorsym\",\n      \"if\": \"ISO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensorsym{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libertinust1math#c\": [\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"lcgreekalpha\",\n      \"upint\",\n      \"frenchmath\",\n      \"slantedGreek\",\n      \"uprightGreek\",\n      \"ISO\",\n      \"nosans\",\n      \"sansmath\",\n      \"reuseMathAlphabets\",\n      \"mathsfit\",\n      \"scaled=${1:factor}\",\n      \"amsthm\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"theoremfont\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libertinust1math#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libgreek.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"libgreeksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libgreeksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\libgreeksetup,\\\\usepackage/libgreek#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"libgreekup\",\n      \"if\": \"alphabets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libgreekup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"libgreekit\",\n      \"if\": \"alphabets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libgreekit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"alphatonos\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"epsilontonos\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"etatonos\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"iotadieresis\"\n    },\n    {\n      \"name\": \"iotadieresistonos\"\n    },\n    {\n      \"name\": \"iotatonos\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"omegatonos\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"omicrontonos\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"upsilondieresis\"\n    },\n    {\n      \"name\": \"upsilondieresistonos\"\n    },\n    {\n      \"name\": \"upsilontonos\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varvarsigma\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphatonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphatonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilontonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilontonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etatonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etatonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotadieresisit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotadieresistonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotadieresistonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotadieresisup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotatonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotatonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koppait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koppaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegatonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegatonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicronit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicrontonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicrontonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicronup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilondieresisit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilondieresistonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilondieresistonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilondieresisup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilontonosit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilontonosup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varSigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varSigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varvarsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varvarsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libgreek#c\": [\n      \"libertinus\",\n      \"serif\",\n      \"libertine\",\n      \"sans\",\n      \"biolinum\",\n      \"upshape=${1:shape}\",\n      \"itshape=${1:shape}\",\n      \"scale=${1:factor}\",\n      \"series=${1:series}\",\n      \"boldseries=${1:series}\",\n      \"alphabets\"\n    ],\n    \"\\\\libgreeksetup,\\\\usepackage/libgreek#c\": [\n      \"style=${1|ISO,French,TeX|}\",\n      \"greek=${1|up,it|}\",\n      \"Greek=${1|up,it|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libgreek#c\",\n    \"\\\\libgreeksetup,\\\\usepackage/libgreek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/librarian.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Cite\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Cite{${1:bibid}}{${2:list}}{${3:code1}}{${4:code2}}\"\n      }\n    },\n    {\n      \"name\": \"EntryKey\"\n    },\n    {\n      \"name\": \"BibFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BibFile{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"SortingOrder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SortingOrder{${1:list of fields}}{${2:name parts}}\"\n      }\n    },\n    {\n      \"name\": \"SortList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SortList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ReadList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifequalentry\"\n    },\n    {\n      \"name\": \"equalentrytrue\"\n    },\n    {\n      \"name\": \"equalentryfalse\"\n    },\n    {\n      \"name\": \"SortDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SortDef{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"WriteInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteInfo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"WriteImmediateInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteImmediateInfo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Preamble\"\n    },\n    {\n      \"name\": \"CreateField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CreateField{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"AbbreviateFirstname\"\n    },\n    {\n      \"name\": \"RetrieveField\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RetrieveField{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"RetrieveFieldFor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RetrieveFieldFor{${1:field}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"RetrieveFieldIn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RetrieveFieldIn{${1:field}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"RetrieveFieldInFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RetrieveFieldInFor{${1:field}}{${2:bibid}}{${3:command}}\"\n      }\n    },\n    {\n      \"name\": \"EntryNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EntryNumber{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"EntryNumberFor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EntryNumberFor{${1:bibid}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"EntryNumberIn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EntryNumberIn{${1:list}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"EntryNumberInFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EntryNumberInFor{${1:bibid}}{${2:list}}{${3:command}}\"\n      }\n    },\n    {\n      \"name\": \"ReadName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadName{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ReadNameFor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReadNameFor{${1:bibid}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Firstname\"\n    },\n    {\n      \"name\": \"Lastname\"\n    },\n    {\n      \"name\": \"Von\"\n    },\n    {\n      \"name\": \"Junior\"\n    },\n    {\n      \"name\": \"NameCount\"\n    },\n    {\n      \"name\": \"ReadAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadAuthor{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ReadAuthorFor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReadAuthorFor{${1:bibid}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ReadEditor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadEditor{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ReadEditorFor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReadEditorFor{${1:bibid}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"TypesetField\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TypesetField{${1:field}}{${2:command}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"TypesetFieldFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TypesetFieldFor{${1:field}}{${2:bibid}}{${3:command}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"CheckEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckEntry{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeCiteName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeReference\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/librebaskerville.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"librebaskerville\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"librebaskervillefamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/librebaskerville#c\": [\n      \"scaled=${2|${1:factor},MatchLowercase|}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/librebaskerville#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/librecaslon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"librecaslon\"\n    },\n    {\n      \"name\": \"librecaslonLF\"\n    },\n    {\n      \"name\": \"librecaslonOsF\"\n    },\n    {\n      \"name\": \"librecaslonTLF\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/librecaslon#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/librecaslon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/librefranklin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"librefranklin\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"librefranklinfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/librefranklin#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\",\n      \"medium\",\n      \"regular\",\n      \"light\",\n      \"extralight\",\n      \"thin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/librefranklin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/libris.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/libris#c\": [\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/libris#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lie-hasse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"dynkin-diagrams\"\n    },\n    {\n      \"name\": \"contour\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hasse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hasse{${1:letter}}{${2:rank}}\"\n      }\n    },\n    {\n      \"name\": \"hasse\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hasse[${3:options}]{${1:letter}}{${2:rank}}\",\n        \"keys\": [\n          \"\\\\hasse#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hasseDiagrams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hasseDiagrams{${1:type1;type2;...}}\"\n      }\n    },\n    {\n      \"name\": \"rootSystemHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rootSystemHeight{${1:count register}}\"\n      }\n    },\n    {\n      \"name\": \"rootSystemHeight\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"rootSystemHeight[${2:letter}][${3:rank}]{${1:count register}}\"\n      }\n    },\n    {\n      \"name\": \"rootSystemWidthAtGrade\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rootSystemWidthAtGrade{${1:grade}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"rootSystemWidthAtGrade\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rootSystemWidthAtGrade[${3:letter}]{${1:grade}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"rootSystemWidthAtGrade\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"rootSystemWidthAtGrade[${3:letter}][${4:rank}]{${1:grade}}{${2:count register}}\"\n      }\n    },\n    {\n      \"name\": \"rootSum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rootSum{${1:first-pos}}{${2:second-pos}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rootSum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rootSum[${4:letter}]{${1:first-pos}}{${2:second-pos}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rootSum\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"rootSum[${4:letter}][${5:rank}]{${1:first-pos}}{${2:second-pos}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"drawRootAsDynkinSum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawRootAsDynkinSum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"edgeQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edgeQuote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forAllPositiveRoots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forAllPositiveRoots{${1:command}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hasse#c\": [\n      \"edge length=\",\n      \"edge/.style={${1:TikZ options}}\",\n      \"edge length=\",\n      \"edge quotes/.style={${1:TikZ options}}\",\n      \"compact edge/.style={${1:TikZ options}}\",\n      \"noncompact edge/.style={${1:TikZ options}}\",\n      \"attach Dynkin diagram\",\n      \"three D\",\n      \"z shift=${1:factor}\",\n      \"top/.style={${1:TikZ options}}\",\n      \"right/.style={${1:TikZ options}}\",\n      \"left/.style={${1:TikZ options}}\",\n      \"show ordering\",\n      \"show name\",\n      \"show widths\",\n      \"show height\",\n      \"show Levi\",\n      \"show unipotent radical\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/liftarm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"liftarm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"liftarm{${1:point}}{${2:length%plain}}{${3:angle}}\"\n      }\n    },\n    {\n      \"name\": \"liftarm\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"liftarm[${4:options%keyvals}]{${1:point}}{${2:length%plain}}{${3:angle}}\",\n        \"keys\": [\n          \"\\\\liftarm#c,\\\\begin{liftarmconnect}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"liftarmconstruct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liftarmconstruct{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"liftarmconstructclear\"\n    },\n    {\n      \"name\": \"liftarmanimate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"liftarmanimate{${1:frame rate}}{${2:list}}{${3:commands}}\"\n      }\n    },\n    {\n      \"name\": \"liftarmanimate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"liftarmanimate[${4:options%keyvals}]{${1:frame rate}}{${2:list}}{${3:commands}}\",\n        \"keys\": [\n          \"\\\\liftarmanimate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"liftarmconnect\"\n    },\n    {\n      \"name\": \"liftarmconnect\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\liftarm#c,\\\\begin{liftarmconnect}#c\",\n          \"\\\\begin{liftarmconnect}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\liftarm#c,\\\\begin{liftarmconnect}#c\": [\n      \"axle holes={${1:values}}\",\n      \"brick\",\n      \"color={${1:number}}{${2:color}}\",\n      \"color modulo=${1:number}\",\n      \"contour\",\n      \"contour style={${1:options}}\",\n      \"coordinate={${1:num1/name1,num2/name2/...}}\",\n      \"hole radius=${1:number}\",\n      \"liftarm style={${1:options}}\",\n      \"liftarm thickness=${1:number}\",\n      \"mark holes={${1:values}}\",\n      \"mark radius=${1:factor}\",\n      \"mark style={${1:options}}\",\n      \"origin=${1:number}\",\n      \"scalefactor=${1:factor}\",\n      \"screw angle=${1:degrees}\",\n      \"screw holes={${1:values}}\",\n      \"screw radius=${1:factor}\",\n      \"screw style={${1:options}}\",\n      \"trace={${1:num1/numframes1/code1,...}}\",\n      \"type=${1|liftarm,line segment|}\"\n    ],\n    \"\\\\begin{liftarmconnect}#c\": [\n      \"connect stop=${1|1-norm,2-norm,iterations|}\"\n    ],\n    \"\\\\liftarmanimate#c\": [\n      \"label=${1:label}\",\n      \"type=${1:file ext}\",\n      \"poster\",\n      \"poster=${2|first,last,none,${1:number}|}\",\n      \"every=${1:number}\",\n      \"autopause\",\n      \"autoplay\",\n      \"autoresume\",\n      \"loop\",\n      \"palindrome\",\n      \"step\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:left bottom right top}\",\n      \"clip\",\n      \"hiresbb\",\n      \"interpolate\",\n      \"pagebox=\",\n      \"controls=${1|all,true,on,none,false,off|}\",\n      \"controlsaligned=\",\n      \"buttonsize=\",\n      \"buttonbg=\",\n      \"buttonfg=\",\n      \"buttonalpha=${1:opacity}\",\n      \"draft\",\n      \"final\",\n      \"nomouse\",\n      \"method=${1|icon,widget,ocg|}\",\n      \"measure\",\n      \"alttext=${2|none,${1:alt description}|}\",\n      \"begin={${1:begin code}}\",\n      \"end={${1:end code}}\",\n      \"timeline=${1:file}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ligtype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nolig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nolig{${1:string}}{${2:string with |}}\"\n      }\n    },\n    {\n      \"name\": \"keeplig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keeplig{${1:string}}{${2:string with |}}\"\n      }\n    },\n    {\n      \"name\": \"ligtypeon\"\n    },\n    {\n      \"name\": \"ligtypeoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ligtype#c\": [\n      \"noshortf\",\n      \"allshortf\",\n      \"makemarks\",\n      \"kerntest\",\n      \"nodefault\",\n      \"liglist\",\n      \"connotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ligtype#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lilyglyphs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"luaotfload\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lilyglyphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyglyphs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyglyphs[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyOpticalSuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyOpticalSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyOpticalSize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lilyGlobalOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyGlobalOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"interpretLilyOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interpretLilyOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyEffectiveScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyEffectiveRaise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyPrint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyPrint{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lilyPrint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyPrint[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currentFontRatio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getCurrentFontRatio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyScaleImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyImageEffectiveScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyPrintImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyPrintImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"lilyPrintImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyPrintImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyGetGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyGetGlyph{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"lilyGetGlyphByNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyGetGlyphByNumber{${1:char number}}\"\n      }\n    },\n    {\n      \"name\": \"lilyGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyGlyph{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"lilyGlyph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyGlyph[${2:options%keyvals}]{${1:slot}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyGlyphByNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyGlyphByNumber{${1:char number}}\"\n      }\n    },\n    {\n      \"name\": \"lilyGlyphByNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyGlyphByNumber[${2:options%keyvals}]{${1:char number}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyText{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lilyText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyText[${2:options%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyImage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"lilyImage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyImage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyDot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyDot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyDot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyCalcDotSpace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lilyCalcDotSpace{${1:scale factor}}{${2:curve factor}}{${3:offset}}{${4:steepness}}\"\n      }\n    },\n    {\n      \"name\": \"lilyDotSpaceF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilySetDotOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lilySetDotOptions{${1:curve factor}}{${2:offset}}{${3:steepness}}\"\n      }\n    },\n    {\n      \"name\": \"lilySetDotOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lilySetDotOptions[${4:options%keyvals}]{${1:curve factor}}{${2:offset}}{${3:steepness}}\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyDotScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyDotRaise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyDotSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyPrintDot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyPrintMoreDots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lilyPrintMoreDots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyPrintMoreDots[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"clefG\"\n    },\n    {\n      \"name\": \"clefG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefG[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clefGInline\"\n    },\n    {\n      \"name\": \"clefGInline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefGInline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clefF\"\n    },\n    {\n      \"name\": \"clefF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefF[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clefFInline\"\n    },\n    {\n      \"name\": \"clefFInline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefFInline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clefC\"\n    },\n    {\n      \"name\": \"clefC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clefCInline\"\n    },\n    {\n      \"name\": \"clefCInline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clefCInline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyTimeC\"\n    },\n    {\n      \"name\": \"lilyTimeC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyTimeC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyTimeCHalf\"\n    },\n    {\n      \"name\": \"lilyTimeCHalf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyTimeCHalf[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyTimeSignature\"\n    },\n    {\n      \"name\": \"lilyTimeSignature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyTimeSignature[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyDynamics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilyDynamics{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lilyDynamics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilyDynamics[${2:options%keyvals}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lilyRF\"\n    },\n    {\n      \"name\": \"lilyRF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyRF[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyRFZ\"\n    },\n    {\n      \"name\": \"lilyRFZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyRFZ[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"decrescHairpin\"\n    },\n    {\n      \"name\": \"decrescHairpin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"decrescHairpin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crescHairpin\"\n    },\n    {\n      \"name\": \"crescHairpin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crescHairpin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"natural\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"natural[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"flat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flat[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"flatflat\"\n    },\n    {\n      \"name\": \"flatflat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flatflat[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharp[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"sharpArrowup\"\n    },\n    {\n      \"name\": \"sharpArrowup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpArrowup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpArrowdown\"\n    },\n    {\n      \"name\": \"sharpArrowdown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpArrowdown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpArrowboth\"\n    },\n    {\n      \"name\": \"sharpArrowboth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpArrowboth[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpSlashslashStem\"\n    },\n    {\n      \"name\": \"sharpSlashslashStem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpSlashslashStem[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpSlashslashslashStemstem\"\n    },\n    {\n      \"name\": \"sharpSlashslashslashStemstem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpSlashslashslashStemstem[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpSlashslashslashStem\"\n    },\n    {\n      \"name\": \"sharpSlashslashslashStem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpSlashslashslashStem[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sharpSlashslashStemstemstem\"\n    },\n    {\n      \"name\": \"sharpSlashslashStemstemstem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sharpSlashslashStemstemstem[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"doublesharp\"\n    },\n    {\n      \"name\": \"doublesharp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"doublesharp[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wholeNoteRest\"\n    },\n    {\n      \"name\": \"wholeNoteRest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wholeNoteRest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wholeNoteRestDotted\"\n    },\n    {\n      \"name\": \"wholeNoteRestDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wholeNoteRestDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteRest\"\n    },\n    {\n      \"name\": \"halfNoteRest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteRest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteRestDotted\"\n    },\n    {\n      \"name\": \"halfNoteRestDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteRestDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetRest\"\n    },\n    {\n      \"name\": \"crotchetRest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetRest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetRestDotted\"\n    },\n    {\n      \"name\": \"crotchetRestDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetRestDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverRest\"\n    },\n    {\n      \"name\": \"quaverRest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverRest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverRestDotted\"\n    },\n    {\n      \"name\": \"quaverRestDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverRestDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverRest\"\n    },\n    {\n      \"name\": \"semiquaverRest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverRest[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverRestDotted\"\n    },\n    {\n      \"name\": \"semiquaverRestDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverRestDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fermata\"\n    },\n    {\n      \"name\": \"fermata\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fermata[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyAccent\"\n    },\n    {\n      \"name\": \"lilyAccent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyAccent[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyEspressivo\"\n    },\n    {\n      \"name\": \"lilyEspressivo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyEspressivo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyStaccato\"\n    },\n    {\n      \"name\": \"lilyStaccato\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyStaccato[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyThumb\"\n    },\n    {\n      \"name\": \"lilyThumb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyThumb[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marcato\"\n    },\n    {\n      \"name\": \"marcato\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"marcato[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marcatoDown\"\n    },\n    {\n      \"name\": \"marcatoDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"marcatoDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"portato\"\n    },\n    {\n      \"name\": \"portato\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"portato[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"portatoDown\"\n    },\n    {\n      \"name\": \"portatoDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"portatoDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"staccatissimo\"\n    },\n    {\n      \"name\": \"staccatissimo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"staccatissimo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tenuto\"\n    },\n    {\n      \"name\": \"tenuto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tenuto[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionBayanBass\"\n    },\n    {\n      \"name\": \"accordionBayanBass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionBayanBass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionDiscant\"\n    },\n    {\n      \"name\": \"accordionDiscant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionDiscant[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionDot\"\n    },\n    {\n      \"name\": \"accordionDot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionDot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionFreeBass\"\n    },\n    {\n      \"name\": \"accordionFreeBass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionFreeBass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionOldEE\"\n    },\n    {\n      \"name\": \"accordionOldEE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionOldEE[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionPull\"\n    },\n    {\n      \"name\": \"accordionPull\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionPull[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionPush\"\n    },\n    {\n      \"name\": \"accordionPush\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionPush[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"accordionStdBass\"\n    },\n    {\n      \"name\": \"accordionStdBass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"accordionStdBass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semibreve\"\n    },\n    {\n      \"name\": \"semibreve\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semibreve[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wholeNote\"\n    },\n    {\n      \"name\": \"wholeNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wholeNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semibreveDotted\"\n    },\n    {\n      \"name\": \"semibreveDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semibreveDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wholeNoteDotted\"\n    },\n    {\n      \"name\": \"wholeNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wholeNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minim\"\n    },\n    {\n      \"name\": \"minim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minim[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNote\"\n    },\n    {\n      \"name\": \"halfNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minimDown\"\n    },\n    {\n      \"name\": \"minimDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minimDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteDown\"\n    },\n    {\n      \"name\": \"halfNoteDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minimDotted\"\n    },\n    {\n      \"name\": \"minimDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minimDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteDotted\"\n    },\n    {\n      \"name\": \"halfNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minimDottedDown\"\n    },\n    {\n      \"name\": \"minimDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minimDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteDottedDown\"\n    },\n    {\n      \"name\": \"halfNoteDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minimDottedDouble\"\n    },\n    {\n      \"name\": \"minimDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minimDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteDottedDouble\"\n    },\n    {\n      \"name\": \"halfNoteDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minimDottedDoubleDown\"\n    },\n    {\n      \"name\": \"minimDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minimDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfNoteDottedDoubleDown\"\n    },\n    {\n      \"name\": \"halfNoteDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"halfNoteDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchet\"\n    },\n    {\n      \"name\": \"crotchet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchet[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNote\"\n    },\n    {\n      \"name\": \"quarterNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetDown\"\n    },\n    {\n      \"name\": \"crotchetDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNoteDown\"\n    },\n    {\n      \"name\": \"quarterNoteDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNoteDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetDotted\"\n    },\n    {\n      \"name\": \"crotchetDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNoteDotted\"\n    },\n    {\n      \"name\": \"quarterNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetDottedDown\"\n    },\n    {\n      \"name\": \"crotchetDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNoteDottedDown\"\n    },\n    {\n      \"name\": \"quarterNoteDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNoteDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetDottedDouble\"\n    },\n    {\n      \"name\": \"crotchetDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNoteDottedDouble\"\n    },\n    {\n      \"name\": \"quarterNoteDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNoteDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crotchetDottedDoubleDown\"\n    },\n    {\n      \"name\": \"crotchetDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crotchetDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quarterNoteDottedDoubleDown\"\n    },\n    {\n      \"name\": \"quarterNoteDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quarterNoteDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaver\"\n    },\n    {\n      \"name\": \"quaver\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaver[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNote\"\n    },\n    {\n      \"name\": \"eighthNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverDown\"\n    },\n    {\n      \"name\": \"quaverDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNoteDown\"\n    },\n    {\n      \"name\": \"eighthNoteDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNoteDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverDotted\"\n    },\n    {\n      \"name\": \"quaverDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNoteDotted\"\n    },\n    {\n      \"name\": \"eighthNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverDottedDown\"\n    },\n    {\n      \"name\": \"quaverDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNoteDottedDown\"\n    },\n    {\n      \"name\": \"eighthNoteDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNoteDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverDottedDouble\"\n    },\n    {\n      \"name\": \"quaverDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNoteDottedDouble\"\n    },\n    {\n      \"name\": \"eighthNoteDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNoteDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quaverDottedDoubleDown\"\n    },\n    {\n      \"name\": \"quaverDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quaverDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eighthNoteDottedDoubleDown\"\n    },\n    {\n      \"name\": \"eighthNoteDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eighthNoteDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaver\"\n    },\n    {\n      \"name\": \"semiquaver\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaver[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNote\"\n    },\n    {\n      \"name\": \"sixteenthNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverDown\"\n    },\n    {\n      \"name\": \"semiquaverDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNoteDown\"\n    },\n    {\n      \"name\": \"sixteenthNoteDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNoteDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverDotted\"\n    },\n    {\n      \"name\": \"semiquaverDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNoteDotted\"\n    },\n    {\n      \"name\": \"sixteenthNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverDottedDown\"\n    },\n    {\n      \"name\": \"semiquaverDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDown\"\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNoteDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverDottedDouble\"\n    },\n    {\n      \"name\": \"semiquaverDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDouble\"\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNoteDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semiquaverDottedDoubleDown\"\n    },\n    {\n      \"name\": \"semiquaverDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semiquaverDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDoubleDown\"\n    },\n    {\n      \"name\": \"sixteenthNoteDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sixteenthNoteDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaver\"\n    },\n    {\n      \"name\": \"demisemiquaver\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaver[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNote\"\n    },\n    {\n      \"name\": \"thirtysecondNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaverDotted\"\n    },\n    {\n      \"name\": \"demisemiquaverDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaverDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNoteDotted\"\n    },\n    {\n      \"name\": \"thirtysecondNoteDotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNoteDotted[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaverDottedDouble\"\n    },\n    {\n      \"name\": \"demisemiquaverDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaverDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDouble\"\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNoteDottedDouble[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaverDottedDoubleDown\"\n    },\n    {\n      \"name\": \"demisemiquaverDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaverDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDoubleDown\"\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDoubleDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNoteDottedDoubleDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaverDottedDown\"\n    },\n    {\n      \"name\": \"demisemiquaverDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaverDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDown\"\n    },\n    {\n      \"name\": \"thirtysecondNoteDottedDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNoteDottedDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"demisemiquaverDown\"\n    },\n    {\n      \"name\": \"demisemiquaverDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"demisemiquaverDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thirtysecondNoteDown\"\n    },\n    {\n      \"name\": \"thirtysecondNoteDown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thirtysecondNoteDown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"twoBeamedQuavers\"\n    },\n    {\n      \"name\": \"twoBeamedQuavers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twoBeamedQuavers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threeBeamedQuavers\"\n    },\n    {\n      \"name\": \"threeBeamedQuavers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"threeBeamedQuavers[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threeBeamedQuaversI\"\n    },\n    {\n      \"name\": \"threeBeamedQuaversI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"threeBeamedQuaversI[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threeBeamedQuaversII\"\n    },\n    {\n      \"name\": \"threeBeamedQuaversII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"threeBeamedQuaversII[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threeBeamedQuaversIII\"\n    },\n    {\n      \"name\": \"threeBeamedQuaversIII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"threeBeamedQuaversIII[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilyFancyExample\"\n    },\n    {\n      \"name\": \"lilyFancyExample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lilyFancyExample[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lilyglyphs,\\\\lilyGlobalOptions,\\\\interpretLilyOptions,\\\\lilyPrint,\\\\lilyPrintImage,\\\\lilyGlyph,\\\\lilyGlyphByNumber,\\\\lilyText,\\\\lilyImage,\\\\lilyDot,\\\\lilySetDotOptions,\\\\clefG,\\\\clefGInline,\\\\clefF,\\\\clefFInline,\\\\clefC,\\\\clefCInline,\\\\lilyTimeC,\\\\lilyTimeCHalf,\\\\lilyTimeSignature,\\\\lilyDynamics{text%plain},\\\\lilyRF,\\\\lilyRFZ,\\\\decrescHairpin,\\\\crescHairpin,\\\\natural,\\\\flat,\\\\flatflat,\\\\sharp,\\\\sharpArrowup,\\\\sharpArrowdown,\\\\sharpArrowboth,\\\\sharpSlashslashStem,\\\\sharpSlashslashslashStemstem,\\\\sharpSlashslashslashStem,\\\\sharpSlashslashStemstemstem,\\\\doublesharp,\\\\wholeNoteRest,\\\\wholeNoteRestDotted,\\\\halfNoteRest,\\\\halfNoteRestDotted,\\\\crotchetRest,\\\\crotchetRestDotted,\\\\quaverRest,\\\\quaverRestDotted,\\\\semiquaverRest,\\\\semiquaverRestDotted,\\\\fermata,\\\\lilyAccent,\\\\lilyEspressivo,\\\\lilyStaccato,\\\\lilyThumb,\\\\marcato,\\\\marcatoDown,\\\\portato,\\\\portatoDown,\\\\staccatissimo,\\\\tenuto,\\\\accordionBayanBass,\\\\accordionDiscant,\\\\accordionDot,\\\\accordionFreeBass,\\\\accordionOldEE,\\\\accordionPull,\\\\accordionPush,\\\\accordionStdBass,\\\\semibreve,\\\\wholeNote,\\\\semibreveDotted,\\\\wholeNoteDotted,\\\\minim,\\\\halfNote,\\\\minimDown,\\\\halfNoteDown,\\\\minimDotted,\\\\halfNoteDotted,\\\\minimDottedDown,\\\\halfNoteDottedDown,\\\\minimDottedDouble,\\\\halfNoteDottedDouble,\\\\minimDottedDoubleDown,\\\\halfNoteDottedDoubleDown,\\\\crotchet,\\\\quarterNote,\\\\crotchetDown,\\\\quarterNoteDown,\\\\crotchetDotted,\\\\quarterNoteDotted,\\\\crotchetDottedDown,\\\\quarterNoteDottedDown,\\\\crotchetDottedDouble,\\\\quarterNoteDottedDouble,\\\\crotchetDottedDoubleDown,\\\\quarterNoteDottedDoubleDown,\\\\quaver,\\\\eighthNote,\\\\quaverDown,\\\\eighthNoteDown,\\\\quaverDotted,\\\\eighthNoteDotted,\\\\quaverDottedDown,\\\\eighthNoteDottedDown,\\\\quaverDottedDouble,\\\\eighthNoteDottedDouble,\\\\quaverDottedDoubleDown,\\\\eighthNoteDottedDoubleDown,\\\\semiquaver,\\\\sixteenthNote,\\\\semiquaverDown,\\\\sixteenthNoteDown,\\\\semiquaverDotted,\\\\sixteenthNoteDotted,\\\\semiquaverDottedDown,\\\\sixteenthNoteDottedDown,\\\\semiquaverDottedDouble,\\\\sixteenthNoteDottedDouble,\\\\semiquaverDottedDoubleDown,\\\\sixteenthNoteDottedDoubleDown,\\\\demisemiquaver,\\\\thirtysecondNote,\\\\demisemiquaverDotted,\\\\thirtysecondNoteDotted,\\\\demisemiquaverDottedDouble,\\\\thirtysecondNoteDottedDouble,\\\\demisemiquaverDottedDoubleDown,\\\\thirtysecondNoteDottedDoubleDown,\\\\demisemiquaverDottedDown,\\\\thirtysecondNoteDottedDown,\\\\demisemiquaverDown,\\\\thirtysecondNoteDown,\\\\twoBeamedQuavers,\\\\threeBeamedQuavers,\\\\threeBeamedQuaversI,\\\\threeBeamedQuaversII,\\\\threeBeamedQuaversIII,\\\\lilyFancyExample\": [\n      \"scale=${1:factor}\",\n      \"raise=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/limap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Block{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"MapBlockLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapParskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTextFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapRuleWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapRuleStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WideBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WideBlock{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"MapFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapContinued\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapContinuing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTitleContinuedFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapNewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTableOfContents\"\n    },\n    {\n      \"name\": \"MapTableOfContentsStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapBlockStartHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapBlockStartHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"MapBlockTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapBlockTOC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTabularFraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOCname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTOCpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineLimapLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"defineLimapLanguage{${1:name}}{${2:continued}}{${3:continuing}}{${4:TOCname}}{${5:TOCpage}}\"\n      }\n    },\n    {\n      \"name\": \"MapContinuingFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapContinuingFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapContinuedFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapContinuedFormat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MapTOCheadfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Map\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"MapTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/limap#c\": [\n      \"austrian\",\n      \"german\",\n      \"french\",\n      \"english\",\n      \"USenglish\",\n      \"nonstrict\",\n      \"nolines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/limap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/linearb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textlinb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlinb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"linbfamily\"\n    },\n    {\n      \"name\": \"Ba\"\n    },\n    {\n      \"name\": \"Baii\"\n    },\n    {\n      \"name\": \"Baiii\"\n    },\n    {\n      \"name\": \"Bau\"\n    },\n    {\n      \"name\": \"Bda\"\n    },\n    {\n      \"name\": \"Bde\"\n    },\n    {\n      \"name\": \"Bdi\"\n    },\n    {\n      \"name\": \"Bdo\"\n    },\n    {\n      \"name\": \"Bdu\"\n    },\n    {\n      \"name\": \"Bdwe\"\n    },\n    {\n      \"name\": \"Bdwo\"\n    },\n    {\n      \"name\": \"Be\"\n    },\n    {\n      \"name\": \"Bi\"\n    },\n    {\n      \"name\": \"Bja\"\n    },\n    {\n      \"name\": \"Bje\"\n    },\n    {\n      \"name\": \"Bjo\"\n    },\n    {\n      \"name\": \"Bju\"\n    },\n    {\n      \"name\": \"Bka\"\n    },\n    {\n      \"name\": \"Bke\"\n    },\n    {\n      \"name\": \"Bki\"\n    },\n    {\n      \"name\": \"Bko\"\n    },\n    {\n      \"name\": \"Bku\"\n    },\n    {\n      \"name\": \"Bma\"\n    },\n    {\n      \"name\": \"Bme\"\n    },\n    {\n      \"name\": \"Bmi\"\n    },\n    {\n      \"name\": \"Bmo\"\n    },\n    {\n      \"name\": \"Bmu\"\n    },\n    {\n      \"name\": \"Bna\"\n    },\n    {\n      \"name\": \"BNc\"\n    },\n    {\n      \"name\": \"BNcc\"\n    },\n    {\n      \"name\": \"BNccc\"\n    },\n    {\n      \"name\": \"BNcd\"\n    },\n    {\n      \"name\": \"BNcm\"\n    },\n    {\n      \"name\": \"BNd\"\n    },\n    {\n      \"name\": \"BNdc\"\n    },\n    {\n      \"name\": \"BNdcc\"\n    },\n    {\n      \"name\": \"BNdccc\"\n    },\n    {\n      \"name\": \"Bne\"\n    },\n    {\n      \"name\": \"Bni\"\n    },\n    {\n      \"name\": \"BNi\"\n    },\n    {\n      \"name\": \"BNii\"\n    },\n    {\n      \"name\": \"BNiii\"\n    },\n    {\n      \"name\": \"BNiv\"\n    },\n    {\n      \"name\": \"BNix\"\n    },\n    {\n      \"name\": \"BNl\"\n    },\n    {\n      \"name\": \"BNlx\"\n    },\n    {\n      \"name\": \"BNlxx\"\n    },\n    {\n      \"name\": \"BNlxxx\"\n    },\n    {\n      \"name\": \"BNm\"\n    },\n    {\n      \"name\": \"Bno\"\n    },\n    {\n      \"name\": \"Bnu\"\n    },\n    {\n      \"name\": \"BNv\"\n    },\n    {\n      \"name\": \"BNvi\"\n    },\n    {\n      \"name\": \"BNvii\"\n    },\n    {\n      \"name\": \"BNviii\"\n    },\n    {\n      \"name\": \"Bnwa\"\n    },\n    {\n      \"name\": \"BNx\"\n    },\n    {\n      \"name\": \"BNxc\"\n    },\n    {\n      \"name\": \"BNxl\"\n    },\n    {\n      \"name\": \"BNxx\"\n    },\n    {\n      \"name\": \"BNxxx\"\n    },\n    {\n      \"name\": \"Bo\"\n    },\n    {\n      \"name\": \"Bpa\"\n    },\n    {\n      \"name\": \"Bpaiii\"\n    },\n    {\n      \"name\": \"BParrow\"\n    },\n    {\n      \"name\": \"BPbarley\"\n    },\n    {\n      \"name\": \"BPbilly\"\n    },\n    {\n      \"name\": \"BPboar\"\n    },\n    {\n      \"name\": \"BPbronze\"\n    },\n    {\n      \"name\": \"BPbull\"\n    },\n    {\n      \"name\": \"BPchariot\"\n    },\n    {\n      \"name\": \"BPchassis\"\n    },\n    {\n      \"name\": \"BPcloth\"\n    },\n    {\n      \"name\": \"BPcow\"\n    },\n    {\n      \"name\": \"Bpe\"\n    },\n    {\n      \"name\": \"BPewe\"\n    },\n    {\n      \"name\": \"BPfoal\"\n    },\n    {\n      \"name\": \"BPgoat\"\n    },\n    {\n      \"name\": \"BPgold\"\n    },\n    {\n      \"name\": \"BPhorse\"\n    },\n    {\n      \"name\": \"Bpi\"\n    },\n    {\n      \"name\": \"BPman\"\n    },\n    {\n      \"name\": \"BPnanny\"\n    },\n    {\n      \"name\": \"Bpo\"\n    },\n    {\n      \"name\": \"BPolive\"\n    },\n    {\n      \"name\": \"BPox\"\n    },\n    {\n      \"name\": \"BPpig\"\n    },\n    {\n      \"name\": \"BPram\"\n    },\n    {\n      \"name\": \"BPsheep\"\n    },\n    {\n      \"name\": \"BPsow\"\n    },\n    {\n      \"name\": \"BPspear\"\n    },\n    {\n      \"name\": \"BPsword\"\n    },\n    {\n      \"name\": \"BPtalent\"\n    },\n    {\n      \"name\": \"Bpte\"\n    },\n    {\n      \"name\": \"Bpu\"\n    },\n    {\n      \"name\": \"Bpuii\"\n    },\n    {\n      \"name\": \"BPvola\"\n    },\n    {\n      \"name\": \"BPvolb\"\n    },\n    {\n      \"name\": \"BPvolcd\"\n    },\n    {\n      \"name\": \"BPvolcf\"\n    },\n    {\n      \"name\": \"BPwheat\"\n    },\n    {\n      \"name\": \"BPwheel\"\n    },\n    {\n      \"name\": \"BPwine\"\n    },\n    {\n      \"name\": \"BPwoman\"\n    },\n    {\n      \"name\": \"BPwool\"\n    },\n    {\n      \"name\": \"BPwta\"\n    },\n    {\n      \"name\": \"BPwtb\"\n    },\n    {\n      \"name\": \"BPwtc\"\n    },\n    {\n      \"name\": \"BPwtd\"\n    },\n    {\n      \"name\": \"Bqa\"\n    },\n    {\n      \"name\": \"Bqe\"\n    },\n    {\n      \"name\": \"Bqi\"\n    },\n    {\n      \"name\": \"Bqo\"\n    },\n    {\n      \"name\": \"Bra\"\n    },\n    {\n      \"name\": \"Braii\"\n    },\n    {\n      \"name\": \"Braiii\"\n    },\n    {\n      \"name\": \"Bre\"\n    },\n    {\n      \"name\": \"Bri\"\n    },\n    {\n      \"name\": \"Bro\"\n    },\n    {\n      \"name\": \"Broii\"\n    },\n    {\n      \"name\": \"Bru\"\n    },\n    {\n      \"name\": \"Bsa\"\n    },\n    {\n      \"name\": \"Bse\"\n    },\n    {\n      \"name\": \"Bsi\"\n    },\n    {\n      \"name\": \"Bso\"\n    },\n    {\n      \"name\": \"Bsu\"\n    },\n    {\n      \"name\": \"Bswa\"\n    },\n    {\n      \"name\": \"Bswi\"\n    },\n    {\n      \"name\": \"Bta\"\n    },\n    {\n      \"name\": \"Btaii\"\n    },\n    {\n      \"name\": \"Bte\"\n    },\n    {\n      \"name\": \"Bti\"\n    },\n    {\n      \"name\": \"Bto\"\n    },\n    {\n      \"name\": \"Btu\"\n    },\n    {\n      \"name\": \"Btwo\"\n    },\n    {\n      \"name\": \"Bu\"\n    },\n    {\n      \"name\": \"Bwa\"\n    },\n    {\n      \"name\": \"Bwe\"\n    },\n    {\n      \"name\": \"Bwi\"\n    },\n    {\n      \"name\": \"Bwo\"\n    },\n    {\n      \"name\": \"Bza\"\n    },\n    {\n      \"name\": \"Bze\"\n    },\n    {\n      \"name\": \"Bzo\"\n    },\n    {\n      \"name\": \"translitlinb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitlinb{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitlinbfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/linearregression.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lrfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrfilename{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"lraskfilename\"\n    },\n    {\n      \"name\": \"lrcomputation\"\n    },\n    {\n      \"name\": \"lrprint\"\n    },\n    {\n      \"name\": \"lrplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lrplot{${1:width}}{${2:key1}}{${3:key2}}{${4:key3}}{${5:key4}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/linebreaker.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"linebreakersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linebreakersetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\linebreakersetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linebreakerenable\"\n    },\n    {\n      \"name\": \"linebreakerdisable\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\linebreakersetup\": [\n      \"maxcycles=${1:number}\",\n      \"maxemergencystretch=\",\n      \"maxtolerance=${1:number}\",\n      \"cubic\",\n      \"debug\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/linegoal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    },\n    {\n      \"name\": \"zref\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"linegoal\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/linegoal#c\": [\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/linegoal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lineno.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"vplref\",\n      \"if\": \"addpageno\"\n    },\n    {\n      \"name\": \"ednmath0\",\n      \"if\": \"mathrefs\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"edtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"ltabptch\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"nolongtablepatch\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nolongtablepatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"linenumbers\"\n    },\n    {\n      \"name\": \"linenumbers*\"\n    },\n    {\n      \"name\": \"linenumbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linenumbers[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"nolinenumbers\"\n    },\n    {\n      \"name\": \"resetlinenumber\"\n    },\n    {\n      \"name\": \"resetlinenumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetlinenumber[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setrunninglinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runninglinenumbers\"\n    },\n    {\n      \"name\": \"runninglinenumbers*\"\n    },\n    {\n      \"name\": \"runninglinenumbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"runninglinenumbers[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setpagewiselinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagewiselinenumbers\"\n    },\n    {\n      \"name\": \"switchlinenumbers\"\n    },\n    {\n      \"name\": \"switchlinenumbers*\"\n    },\n    {\n      \"name\": \"runningpagewiselinenumbers\"\n    },\n    {\n      \"name\": \"realpagewiselinenumbers\"\n    },\n    {\n      \"name\": \"leftlinenumbers\"\n    },\n    {\n      \"name\": \"rightlinenumbers\"\n    },\n    {\n      \"name\": \"leftlinenumbers*\"\n    },\n    {\n      \"name\": \"rightlinenumbers*\"\n    },\n    {\n      \"name\": \"modulolinenumbers\"\n    },\n    {\n      \"name\": \"modulolinenumbers*\"\n    },\n    {\n      \"name\": \"modulolinenumbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"modulolinenumbers[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"linenumberfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineNumber\"\n    },\n    {\n      \"name\": \"makeLineNumberRunning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeLineNumberOdd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeLineNumberEven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeLineNumberLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeLineNumberRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lineref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lineref[${2:offset}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"linerefr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linerefr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"linerefr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"linerefr[${2:offset}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"linerefp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linerefp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"linerefp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"linerefp[${2:offset}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"quotelinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotelinenumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotelinenumberfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numquotelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internallinenumbers\"\n    },\n    {\n      \"name\": \"bframesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bframerule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bframebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepLineNumber\"\n    },\n    {\n      \"name\": \"linenopenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenopenaltypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineNoTest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineNoLaTeXOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeLineNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteLineNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PassVadjustList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenoprevgraf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLineNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineNumbersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineNumberstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endrunninglinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpagewiselinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnolinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenomath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenomathNonumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenomathWithnumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolinenumberdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlinenomath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmakelinenumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmakelinenumbers{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"logtheLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastNumberedPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberedPageCache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testLastNumberedPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testLastNumberedPage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"testFirstNumberedPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testFirstNumberedPage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"testNumberedPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testNextNumberedPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testNextNumberedPage{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddNumberedPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddNumberedPagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddNumberedPagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcolumnwiselinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnwiselinenumberstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnwiselinenumbersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gotNumberedPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gotNumberedPage{${1:first line in col}}{${2:page num}}{${3:col num}}{${4:first line in page}}\"\n      }\n    },\n    {\n      \"name\": \"subtractlinenumberoffset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtractlinenumberoffset{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thePagewiseLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makePagewiseLineNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getpagewiselinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpagewiselinenumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"themodulolinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstlinenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstlinenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"endinternallinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internallinenumberpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeinternalLinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PostponeVadjust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PostponeVadjust{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PassVadjustList\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"linenumbers\"\n    },\n    {\n      \"name\": \"linenumbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"linenumbers*\"\n    },\n    {\n      \"name\": \"runninglinenumbers\"\n    },\n    {\n      \"name\": \"runninglinenumbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"runninglinenumbers*\"\n    },\n    {\n      \"name\": \"pagewiselinenumbers\"\n    },\n    {\n      \"name\": \"linenomath\"\n    },\n    {\n      \"name\": \"linenomath*\"\n    },\n    {\n      \"name\": \"numquote\"\n    },\n    {\n      \"name\": \"numquote*\"\n    },\n    {\n      \"name\": \"numquotation\"\n    },\n    {\n      \"name\": \"numquotation*\"\n    },\n    {\n      \"name\": \"bframe\"\n    },\n    {\n      \"name\": \"internallinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internallinenumbers*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lineno#c\": [\n      \"addpageno\",\n      \"mathrefs\",\n      \"edtable\",\n      \"longtable\",\n      \"nolongtablepatch\",\n      \"left\",\n      \"right\",\n      \"switch\",\n      \"switch*\",\n      \"columnwise\",\n      \"pagewise\",\n      \"running\",\n      \"modulo\",\n      \"modulo*\",\n      \"mathlines\",\n      \"sep=\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lineno#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/linenoamsmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"vplref\",\n      \"if\": \"addpageno\"\n    },\n    {\n      \"name\": \"ednmath0\",\n      \"if\": \"mathrefs\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"edtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"ltabptch\",\n      \"if\": \"longtable\"\n    },\n    {\n      \"name\": \"edtable\",\n      \"if\": \"nolongtablepatch\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nolongtablepatch\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/linenoamsmath#c\": [\n      \"addpageno\",\n      \"mathrefs\",\n      \"edtable\",\n      \"longtable\",\n      \"nolongtablepatch\",\n      \"left\",\n      \"right\",\n      \"switch\",\n      \"switch*\",\n      \"columnwise\",\n      \"pagewise\",\n      \"running\",\n      \"modulo\",\n      \"modulo*\",\n      \"mathlines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/linenoamsmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ling-macros.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"gb4e\"\n    },\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"upgreek\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nl\"\n    },\n    {\n      \"name\": \"m\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"m{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mb\"\n    },\n    {\n      \"name\": \"ol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"alert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alert{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ix{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"ux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ux{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"superx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"superx{${1:supscript}}\"\n      }\n    },\n    {\n      \"name\": \"bex\"\n    },\n    {\n      \"name\": \"fex\"\n    },\n    {\n      \"name\": \"bxl\"\n    },\n    {\n      \"name\": \"fxl\"\n    },\n    {\n      \"name\": \"ben\"\n    },\n    {\n      \"name\": \"fen\"\n    },\n    {\n      \"name\": \"bit\"\n    },\n    {\n      \"name\": \"fit\"\n    },\n    {\n      \"name\": \"underlying\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlying{${1:input}}\"\n      }\n    },\n    {\n      \"name\": \"becomes\"\n    },\n    {\n      \"name\": \"spoken\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spoken{${1:output}}\"\n      }\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"spot\"\n    },\n    {\n      \"name\": \"syll\"\n    },\n    {\n      \"name\": \"fmleft\"\n    },\n    {\n      \"name\": \"fmright\"\n    },\n    {\n      \"name\": \"fmat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmat{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"prule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"prule{${1:underlying form}}{${2:spoken form}}{${3:environment}}\"\n      }\n    },\n    {\n      \"name\": \"iparule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iparule{${1:underlying form}}{${2:spoken form}}{${3:environment}}\"\n      }\n    },\n    {\n      \"name\": \"pruleset\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pruleset{${1:underlying form}}{${2:spoken form}}{${3:text}}{${4:environment}}\"\n      }\n    },\n    {\n      \"name\": \"iparuleset\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iparuleset{${1:underlying form}}{${2:spoken form}}{${3:text}}{${4:environment}}\"\n      }\n    },\n    {\n      \"name\": \"head\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"head{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lv\"\n    },\n    {\n      \"name\": \"feat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feat{${1:feature}}\"\n      }\n    },\n    {\n      \"name\": \"textfeat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfeat{${1:feature}}\"\n      }\n    },\n    {\n      \"name\": \"dcopy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcopy{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mroot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ufeat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ufeat{${1:feature}}\"\n      }\n    },\n    {\n      \"name\": \"unv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unv{${1:feature}}\"\n      }\n    },\n    {\n      \"name\": \"readas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readas{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lam{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"lamd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lamd{${1:variable}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"all{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"some\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"some{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"no\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"no{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"ddet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddet{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"pri\"\n    },\n    {\n      \"name\": \"type\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"type{${1:types}}\"\n      }\n    },\n    {\n      \"name\": \"uptype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uptype{${1:types}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"varset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varset{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"cvarset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cvarset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"funcnote\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"funcnote{${1:name}}{${2:domain}}{${3:range}}{${4:input-var}}{${5:rule}}\"\n      }\n    },\n    {\n      \"name\": \"fleft\"\n    },\n    {\n      \"name\": \"func\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"func{${1:domain}}{${2:range}}\"\n      }\n    },\n    {\n      \"name\": \"fright\"\n    },\n    {\n      \"name\": \"scopebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scopebox{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"innerscopebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"innerscopebox{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"den\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"den{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dena\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dena{${1:arg}}{${2:assignment}}\"\n      }\n    },\n    {\n      \"name\": \"denac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"denac{${1:arg}}{${2:context}}\"\n      }\n    },\n    {\n      \"name\": \"denamod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"denamod{${1:arg}}{${2:assignment}}{${3:modification}}\"\n      }\n    },\n    {\n      \"name\": \"denacmod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"denacmod{${1:arg}}{${2:context}}{${3:modification}}\"\n      }\n    },\n    {\n      \"name\": \"denol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"denol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"denola\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"denola{${1:arg}}{${2:assignment}}\"\n      }\n    },\n    {\n      \"name\": \"denolac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"denolac{${1:arg}}{${2:context}}\"\n      }\n    },\n    {\n      \"name\": \"denolamod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"denolamod{${1:arg}}{${2:assignment}}{${3:modification}}\"\n      }\n    },\n    {\n      \"name\": \"denolacmod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"denolacmod{${1:arg}}{${2:context}}{${3:modification}}\"\n      }\n    },\n    {\n      \"name\": \"lessthanten\"\n    },\n    {\n      \"name\": \"tenormore\"\n    },\n    {\n      \"name\": \"bexskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxlskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bexsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxlsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bexindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxlindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fexskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fxlskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bexlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bxllabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"featuresize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"environset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environset{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"scopewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"context\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/linguex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cgloss4e\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Next\"\n    },\n    {\n      \"name\": \"Next\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Next[${1:postfix}]\"\n      }\n    },\n    {\n      \"name\": \"NNext\"\n    },\n    {\n      \"name\": \"NNext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NNext[${1:postfix}]\"\n      }\n    },\n    {\n      \"name\": \"Last\"\n    },\n    {\n      \"name\": \"Last\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Last[${1:postfix}]\"\n      }\n    },\n    {\n      \"name\": \"LLast\"\n    },\n    {\n      \"name\": \"LLast\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LLast[${1:postfix}]\"\n      }\n    },\n    {\n      \"name\": \"firstrefdash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextNext\"\n    },\n    {\n      \"name\": \"aig\"\n    },\n    {\n      \"name\": \"agi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Extopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubExleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubSubExleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetExdefaults\"\n    },\n    {\n      \"name\": \"ifalignSubEx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alignSubExtrue\"\n    },\n    {\n      \"name\": \"alignSubExfalse\"\n    },\n    {\n      \"name\": \"alignSubExnegindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Exredux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubExNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubSubExNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFnExNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExRBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FnExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FnExRBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theExRBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFnExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theFnExRBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubExRBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubSubExLBr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SubSubExRBr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/linguisticspro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"linguisticspro\"\n    },\n    {\n      \"name\": \"linguisticsproLF\"\n    },\n    {\n      \"name\": \"linguisticsproOsF\"\n    },\n    {\n      \"name\": \"linguisticsprolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linguisticsprot3\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/linguisticspro#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lf\",\n      \"lining\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/linguisticspro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/linop.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"op\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"op{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"op[${5:spacing}]{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"op*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"op*{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"op*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"op*[${5:spacing}]{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"hc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hc{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"hc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hc[${5:spacing}]{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"hc*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hc*{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"hc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hc*[${5:spacing}]{${1:operator}}{${2:sub}}{${3:sup}}{${4:supsup}}\"\n      }\n    },\n    {\n      \"name\": \"linopconjugate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopspacewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopspacewidehc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopstylewide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopsubscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopsuperscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linopsuperscripthc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/linop#c\": [\n      \"bold\",\n      \"bmbold\",\n      \"wide\",\n      \"nohat\",\n      \"star\",\n      \"compact\",\n      \"square\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/linop#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/linsys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"linsys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lips.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lips\"\n    },\n    {\n      \"name\": \"LPNobreakList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BracketedLips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleIgnoreSpaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GobbleIgnoreSpaces{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lips#c\": [\n      \"mla\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lips#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\"\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum*[${1:num}][${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum*[${1:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lipsum*[${1:num-num}][${2:num-num}]\"\n      }\n    },\n    {\n      \"name\": \"unpacklipsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpacklipsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpacklipsum[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"unpacklipsum*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpacklipsum*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unpacklipsum*[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"lipsumexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlipsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlipsum{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetLipsumText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumText{${1:lipsum text definition filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumDefault{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumDefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumDefault{${1:num-num}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LipsumPar{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemStart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemStart{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemStart*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemStart*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemEnd{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemEnd*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemEnd*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListItemSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumParListItemSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSurrounders\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSurrounders{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSurrounders*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSurrounders*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSeparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemSeparator{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumParListItemSeparator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumParListItemSeparator*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSeparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSeparator{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumSentenceListItemSeparator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumSentenceListItemSeparator*{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumProtect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LipsumProtect{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"LipsumRestoreParList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LipsumRestoreSentenceList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LipsumRestoreAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewLipsumPar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewLipsumPar{${1:paragrph}}\"\n      }\n    },\n    {\n      \"name\": \"SetLipsumLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLipsumLanguage{${1:language}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\": [\n      \"nopar\",\n      \"text=${1|lipsum,cicero,lipsum-cs|}\",\n      \"language=${1:language}\",\n      \"auto-lang\",\n      \"default-range=${1:i-j}\",\n      \"par-before=${1:tokens}\",\n      \"par-begin=${1:tokens}\",\n      \"par-sep=${1:tokens}\",\n      \"par-end=${1:tokens}\",\n      \"par-after=${1:tokens}\",\n      \"sentence-before=${1:tokens}\",\n      \"sentence-begin=${1:tokens}\",\n      \"sentence-sep=${1:tokens}\",\n      \"sentence-end=${1:tokens}\",\n      \"sentence-after=${1:tokens}\",\n      \"par-before*=${1:tokens}\",\n      \"par-begin*=${1:tokens}\",\n      \"par-sep*=${1:tokens}\",\n      \"par-end*=${1:tokens}\",\n      \"par-after*=${1:tokens}\",\n      \"sentence-before*=${1:tokens}\",\n      \"sentence-begin*=${1:tokens}\",\n      \"sentence-sep*=${1:tokens}\",\n      \"sentence-end*=${1:tokens}\",\n      \"sentence-after*=${1:tokens}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setlipsum#c,\\\\usepackage/lipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listing.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"listoflistings\"\n    },\n    {\n      \"name\": \"listingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelisting\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"listing\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/listing#c\": [\n      \"bigcaptions\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listing#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listings-ext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lstdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lstdef{${1:identifier}}{${2:file}}{${3:range}}\"\n      }\n    },\n    {\n      \"name\": \"lstcheck\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstcheck{${1:identifier}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"lstuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstuse{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"lstuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstuse[${2:options%keyvals}]{${1:identifier}}\",\n        \"keys\": [\n          \"\\\\lstuse\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/listings-ext#c\": [\n      \"style=${1:style}\"\n    ],\n    \"\\\\lstuse\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetxcs={${1:list of csnames}}\",\n      \"deletetxcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listings-ext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lstloadlanguages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstloadlanguages{${1:lang1,lang2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\lstloadlanguages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstset{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstinline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"lstinline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"lstinline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"lstinline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstinputlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstinputlisting{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"lstinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstinputlisting[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstdefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefinestyle{${1:style name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"thelstnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHlstnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelstlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistoflistings\"\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingnamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelstlisting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstindexmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstindexmacro{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstnewenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lstnewenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefinelanguage{${1:language name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"lstdefinelanguage{${1:language name}}{${2:keyvals}}[${3:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lstdefinelanguage[${3:dialect}]{${1:language name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"lstdefinelanguage[${3:dialect}]{${1:language name}}{${2:keyvals}}[${4:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"lstdefinelanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"lstdefinelanguage[${4:dialect}]{${1:language name}}[${5:base dialect}]{${2:base language}}{${3:keyvals}}[${6:required aspects}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"lstalias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstalias{${1:alias}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"lstaspectfiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlanguagefiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstloadaspects\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstloadaspects{${1:aspects}}\"\n      }\n    },\n    {\n      \"name\": \"lststylefiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlgrindeffile\",\n      \"if\": \"lgrind\"\n    },\n    {\n      \"name\": \"lstdefineformat\",\n      \"if\": \"formats\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefineformat{${1:name}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"lstformatfiles\",\n      \"if\": \"formats\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lstlisting\"\n    },\n    {\n      \"name\": \"lstlisting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/listings#c\": [\n      \"draft\",\n      \"final\",\n      \"savemem\",\n      \"noaspects\",\n      \"lgrind\",\n      \"procnames\",\n      \"hyper\",\n      \"formats\",\n      \"0.21\"\n    ],\n    \"\\\\lstloadlanguages#c\": [\n      \"ABAP\",\n      \"[R/2 4.3]ABAP\",\n      \"[R/2 5.0]ABAP\",\n      \"[R/3 3.1]ABAP\",\n      \"[R/3 4.6C]ABAP\",\n      \"[R/3 6.10]ABAP\",\n      \"ACM\",\n      \"ACSL\",\n      \"ACMscript\",\n      \"Ada\",\n      \"[2005]Ada\",\n      \"[83]Ada\",\n      \"[95]Ada\",\n      \"Algol\",\n      \"[60]Algol\",\n      \"[68]Algol\",\n      \"Ant\",\n      \"Assembler\",\n      \"[Motorola68k]Assembler\",\n      \"[x86masm]Assembler\",\n      \"Awk\",\n      \"[gnu]Awk\",\n      \"[POSIX]Awk\",\n      \"bash\",\n      \"Basic\",\n      \"[Visual]Basic\",\n      \"C\",\n      \"[ANSI]C\",\n      \"[Handel]C\",\n      \"[Objective]C\",\n      \"[Sharp]C\",\n      \"C++\",\n      \"[11]C++\",\n      \"[ANSI]C++\",\n      \"[GNU]C++\",\n      \"[ISO]C++\",\n      \"[Visual]C++\",\n      \"Caml\",\n      \"[light]Caml\",\n      \"[Objective]Caml\",\n      \"CIL\",\n      \"Clean\",\n      \"Cobol\",\n      \"[1974]Cobol\",\n      \"[1985]Cobol\",\n      \"[ibm]Cobol\",\n      \"Comal 80\",\n      \"command.com\",\n      \"[WinXP]command.com\",\n      \"Comsol\",\n      \"csh\",\n      \"Delphi\",\n      \"Eiffel\",\n      \"Elan\",\n      \"elisp\",\n      \"erlang\",\n      \"Euphoria\",\n      \"Fortran\",\n      \"[03]Fortran\",\n      \"[08]Fortran\",\n      \"[18]Fortran\",\n      \"[77]Fortran\",\n      \"[90]Fortran\",\n      \"[95]Fortran\",\n      \"GAP\",\n      \"GCL\",\n      \"Gnuplot\",\n      \"Go\",\n      \"hansl\",\n      \"Haskell\",\n      \"HTML\",\n      \"IDL\",\n      \"[CORBA]IDL\",\n      \"inform\",\n      \"Java\",\n      \"[AspectJ]Java\",\n      \"JVMIS\",\n      \"ksh\",\n      \"Lingo\",\n      \"Lisp\",\n      \"[Auto]Lisp\",\n      \"LLVM\",\n      \"Logo\",\n      \"Lua\",\n      \"[5.0]Lua\",\n      \"[5.1]Lua\",\n      \"[5.2]Lua\",\n      \"[5.3]Lua\",\n      \"make\",\n      \"[gnu]make\",\n      \"Mathematica\",\n      \"[1.0]Mathematica\",\n      \"[11.0]Mathematica\",\n      \"[3.0]Mathematica\",\n      \"[5.2]Mathematica\",\n      \"Matlab\",\n      \"[5.1]Matlab\",\n      \"Mercury\",\n      \"MetaPost\",\n      \"Miranda\",\n      \"Mizar\",\n      \"ML\",\n      \"Modula-2\",\n      \"MuPAD\",\n      \"NASTRAN\",\n      \"Oberon-2\",\n      \"OCL\",\n      \"[decorative]OCL\",\n      \"[OMG]OCL\",\n      \"Octave\",\n      \"OORexx\",\n      \"Oz\",\n      \"Pascal\",\n      \"[Borland6]Pascal\",\n      \"[Standard]Pascal\",\n      \"[XSC]Pascal\",\n      \"Perl\",\n      \"PHP\",\n      \"PL/I\",\n      \"Plasm\",\n      \"PostScript\",\n      \"POV\",\n      \"Prolog\",\n      \"Promela\",\n      \"PSTricks\",\n      \"Python\",\n      \"R\",\n      \"Reduce\",\n      \"Rexx\",\n      \"[VM/XA]Rexx\",\n      \"RSL\",\n      \"Ruby\",\n      \"S\",\n      \"[PLUS]S\",\n      \"SAS\",\n      \"Scala\",\n      \"[3.0]Scala\",\n      \"Scilab\",\n      \"sh\",\n      \"SHELXL\",\n      \"Simula\",\n      \"[67]Simula\",\n      \"[CII]Simula\",\n      \"[DEC]Simula\",\n      \"[IBM]Simula\",\n      \"SPARQL\",\n      \"SQL\",\n      \"Swift\",\n      \"tcl\",\n      \"[tk]tcl\",\n      \"TeX\",\n      \"[AlLaTeX]TeX\",\n      \"[common]TeX\",\n      \"[LaTeX]TeX\",\n      \"[plain]TeX\",\n      \"[primitive]TeX\",\n      \"VBScript\",\n      \"Verilog\",\n      \"VHDL\",\n      \"[AMS]VHDL\",\n      \"VRML\",\n      \"[97]VRML\",\n      \"XML\",\n      \"XSLT\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=*${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=*${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"endkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\",\n      \"procnamekeys={${1:keywords}}\",\n      \"moreprocnamekeys={${1:keywords}}\",\n      \"deleteprocnamekeys={${1:keywords}}\",\n      \"procnamestyle=${1:style}\",\n      \"indexprocnames\",\n      \"hyperref={${1:identifiers}}\",\n      \"morehyperref={${1:identifiers}}\",\n      \"deletehyperref={${1:identifiers}}\",\n      \"hyperanchor=${1:two-parameter macro}\",\n      \"hyperlink=${1:two-parameter macro}\",\n      \"lgrindef=${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listings#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listingsutf8.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"stringenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lstlgrindeffile\",\n      \"if\": \"lgrind\"\n    },\n    {\n      \"name\": \"lstdefineformat\",\n      \"if\": \"formats\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefineformat{${1:name}}{${2:format}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/listingsutf8#c\": [\n      \"draft\",\n      \"final\",\n      \"savemem\",\n      \"noaspects\",\n      \"lgrind\",\n      \"procnames\",\n      \"hyper\",\n      \"formats\",\n      \"0.21\"\n    ],\n    \"\\\\lstinputlisting\": [\n      \"inputencoding=utf8/${1:one-byte-encoding}\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"procnamekeys={${1:keywords}}\",\n      \"moreprocnamekeys={${1:keywords}}\",\n      \"deleteprocnamekeys={${1:keywords}}\",\n      \"procnamestyle=${1:style}\",\n      \"indexprocnames\",\n      \"hyperref={${1:identifiers}}\",\n      \"morehyperref={${1:identifiers}}\",\n      \"deletehyperref={${1:identifiers}}\",\n      \"hyperanchor=${1:two-parameter macro}\",\n      \"hyperlink=${1:two-parameter macro}\",\n      \"lgrindef=${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listingsutf8#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listlbls.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listoflabels\"\n    },\n    {\n      \"name\": \"listoflabels\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoflabels[${1:label}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/listlbls#c\": [\n      \"draft\",\n      \"final\",\n      \"totoc\",\n      \"notoc\",\n      \"numtoc\",\n      \"nonameref\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listlbls#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listliketab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"storestyleof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storestyleof{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"storeliststyle\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"listliketab\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/listofanswers.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exercise{${1:Enunciado%text}}{${2:Respuesta%text}}\"\n      }\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exercise*{${1:Enunciado%text}}{${2:Sugerencia%text}}\"\n      }\n    },\n    {\n      \"name\": \"subexercise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subexercise{${1:Enunciado%text}}{${2:Respuesta%text}}\"\n      }\n    },\n    {\n      \"name\": \"group\"\n    },\n    {\n      \"name\": \"listofanswers\"\n    },\n    {\n      \"name\": \"answershead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answersname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"answerstype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubexercise\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/listofitems.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setsepchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsepchar{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"setsepchar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsepchar[${2:nested sep char}]{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"readlist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readlist{${1:cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"readlist*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readlist*{${1:cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"greadlist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greadlist{${1:cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"greadlist*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"greadlist*{${1:cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"showitems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showitems{${1:list cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ignoreemptyitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reademptyitems\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemtomacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"itemtomacro{${1:list cmd}}[${3:index}]{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"gitemtomacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"gitemtomacro{${1:list cmd}}[${3:index}]{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"listlen\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"listlen{${1:list cmd}}[${2:index}]\"\n      }\n    },\n    {\n      \"name\": \"defpair\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defpair{${1:<tok1><tok2>...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/listofsymbols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"nomencl\",\n      \"if\": \"nomencl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"opensymdef\"\n    },\n    {\n      \"name\": \"closesymdef\"\n    },\n    {\n      \"name\": \"newsym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:name}}{${2:output%formula}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:description}]{${1:name}}{${2:output%formula}}\"\n      }\n    },\n    {\n      \"name\": \"newsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsub{${1:name}}{${2:output%formula}}\"\n      }\n    },\n    {\n      \"name\": \"newsub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsub[${3:description}]{${1:name}}{${2:output%formula}}\"\n      }\n    },\n    {\n      \"name\": \"subsep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"subsep[${1:separator}]\"\n      }\n    },\n    {\n      \"name\": \"listofsymbols\"\n    },\n    {\n      \"name\": \"symwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sympagenowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofsubscripts\"\n    },\n    {\n      \"name\": \"listofboth\"\n    },\n    {\n      \"name\": \"symheadingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subheadingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bothheadingname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markasused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markasused{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"markasunused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markasunused{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dontmarkasused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dontmarkasused{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"losstring\"\n    },\n    {\n      \"name\": \"printsymline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"printsymline{${1:sortkey}}{${2:symbol}}{${3:name}}{${4:description}}{${5:pageno}}\"\n      }\n    },\n    {\n      \"name\": \"addsymline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"addsymline{${1:sortkey}}{${2:symbol}}{${3:name}}{${4:description}}{${5:filehandle}}\"\n      }\n    },\n    {\n      \"name\": \"symheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spaceaftersym\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/listofsymbols#c\": [\n      \"nomencl\",\n      \"draft\",\n      \"final\",\n      \"Final\",\n      \"pageno\",\n      \"nopageno\",\n      \"usexspace\",\n      \"noxspace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/listofsymbols#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/listpen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"allowprelistbreaks\"\n    },\n    {\n      \"name\": \"allowpostlistbreaks\"\n    },\n    {\n      \"name\": \"allowitembreaks\"\n    },\n    {\n      \"name\": \"RestoreSpaces\"\n    },\n    {\n      \"name\": \"RemoveSpaces\"\n    },\n    {\n      \"name\": \"newseparatedlabel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newseparatedlabel{${1:cmd}}{${2:captype}}{${3:subcaptype}}\"\n      }\n    },\n    {\n      \"name\": \"newseparatedref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newseparatedref{${1:cmd}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"makelabelseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makelabelseparator{${1:separator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/llncsconf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"rcsinfo\",\n      \"if\": \"rcsinfo\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"svninfo\"\n    },\n    {\n      \"name\": \"svninfo\",\n      \"if\": \"svninfo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"conference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conference{${1:conference name%text}}\"\n      }\n    },\n    {\n      \"name\": \"llncs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"llncs{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"llncsdoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llncsdoi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightnote\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/llncsconf#c\": [\n      \"crop\",\n      \"nocrop\",\n      \"rcsinfo\",\n      \"svninfo\",\n      \"accepted\",\n      \"submitted\",\n      \"intended\",\n      \"llncs\",\n      \"proceedings\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/llncsconf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lltjcore.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iftombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftombowdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowdatetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowdatefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketombowbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffnfixbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnfixbottomtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnfixbottomfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lltjdefs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjiencodingdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjifamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjiseriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjishapedefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathmc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgt{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lltjext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"parbox<dir>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parbox<dir>{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox<dir>\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"parbox<dir>[${3:position}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox<dir>\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"parbox<dir>[${3:position}][${4:height}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox<dir>\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"parbox<dir>[${3:position}][${4:height}][${5:inner-pos}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbox[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pbox[${2:width}][${3:pos}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbox<dir>{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbox<dir>[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pbox<dir>[${2:width}][${3:pos}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"floatwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatruletick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiondir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionfontsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"layoutfloat{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"layoutfloat[${2:pos}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"layoutfloat(${2:x},${3:y}){${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"layoutfloat(${3:x},${4:y})[${2:pos}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLayoutCaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}<>()[]\",\n        \"snippet\": \"DeclareLayoutCaption{${1:floatname}}<${3:dir}>(${4:width})[${2:pos1pos2}]\"\n      }\n    },\n    {\n      \"name\": \"layoutcaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcaption{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"rensujiskip\"\n    },\n    {\n      \"name\": \"rensuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rensuji{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"rensuji\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rensuji[${2:pos}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Kanji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kanji{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"kanji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boutenchar\"\n    },\n    {\n      \"name\": \"bou\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bou{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"kasen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kasen{${1:contents%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:dir}>{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular\",\n      \"arg\": {\n        \"format\": \"<>[]{}\",\n        \"snippet\": \"<${3:dir}>[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"<>{}[]{}\",\n        \"snippet\": \"<${4:dir}>{${1:width}}[${3:pos}]{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"tabular*\",\n      \"arg\": {\n        \"format\": \"<>{}{}\",\n        \"snippet\": \"<${3:dir}>{${1:width}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:dir}>{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"<>[]{}\",\n        \"snippet\": \"<${3:dir}>[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"<>{}\",\n        \"snippet\": \"<${2:dir}>{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"<>[]{}\",\n        \"snippet\": \"<${3:dir}>[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"<>[][]{}\",\n        \"snippet\": \"<${4:dir}>[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipage\",\n      \"arg\": {\n        \"format\": \"<>[][][]{}\",\n        \"snippet\": \"<${5:dir}>[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"<>()\",\n        \"snippet\": \"<${1:dir}>(${2:width},${3:height})\"\n      }\n    },\n    {\n      \"name\": \"picture\",\n      \"arg\": {\n        \"format\": \"<>()()\",\n        \"snippet\": \"<${1:dir}>(${2:width},${3:height})(${4:xoffset},${5:yoffset})\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lltjfont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Cht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cHT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ystrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dstrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zstrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ystrut\"\n    },\n    {\n      \"name\": \"tstrut\"\n    },\n    {\n      \"name\": \"dstrut\"\n    },\n    {\n      \"name\": \"zstrut\"\n    },\n    {\n      \"name\": \"DeclareYokoKanjiEncoding\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareYokoKanjiEncoding{${1:encoding}}{${2:text settings}}{${3:math settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTateKanjiEncoding\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTateKanjiEncoding{${1:encoding}}{${2:text settings}}{${3:math settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiEncodingDefaults\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareKanjiEncodingDefaults{${1:text settings}}{${2:math settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiFamily\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareKanjiFamily{${1:encoding}}{${2:family}}{${3:settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiSubstitution\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareKanjiSubstitution{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareErrorKanjiFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareErrorKanjiFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\"\n      }\n    },\n    {\n      \"name\": \"reDeclareMathAlphabet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reDeclareMathAlphabet{${1:unified cmd}}{${2:al cmd}}{${3:ja cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRelationFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareRelationFont{${1:ja encoding}}{${2:ja family}}{${3:ja series}}{${4:ja shape}}{${5:al encoding}}{${6:al family}}{${7:al series}}{${8:al shape}}\"\n      }\n    },\n    {\n      \"name\": \"SetRelationFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetRelationFont{${1:ja encoding}}{${2:ja family}}{${3:ja series}}{${4:ja shape}}{${5:al encoding}}{${6:al family}}{${7:al series}}{${8:al shape}}\"\n      }\n    },\n    {\n      \"name\": \"userelfont\"\n    },\n    {\n      \"name\": \"KanjiEncodingPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KanjiEncodingPair{${1:encoding1}}{${2:encoding2}}\"\n      }\n    },\n    {\n      \"name\": \"adjustbaseline\"\n    },\n    {\n      \"name\": \"romanencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"romanfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"kanjifamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjifamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"romanseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"romanseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"romanshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"kanjishape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjishape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"romanshapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanshapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"kanjishapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjishapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"useroman\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"useroman{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"usekanji\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usekanji{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"mcfamily\"\n    },\n    {\n      \"name\": \"gtfamily\"\n    },\n    {\n      \"name\": \"DeclareAlternateKanjiFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareAlternateKanjiFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:alt encoding}}{${6:alt family}}{${7:alt series}}{${8:alt shape}}{${9:range}}\"\n      }\n    },\n    {\n      \"name\": \"ClearAlternateKanjiFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ClearAlternateKanjiFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeEncodingName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontTeXLigatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnicodeFontFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontFile{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeFontName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UnicodeFontName{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeAccent{${1:cmd}}{${2:encoding}}{${3:char code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeComposite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeComposite{${1:cmd}}{${2:letter}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lltjp-atbegshi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lltjp-geometry.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lltjp-geometry#c\": [\n      \"force\",\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lltjp-geometry#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lltjp-listings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ltjlistingsvsstdcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjlistingsvsstdcmd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CatcodeTableLTJlistings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"vsraw\",\n      \"vscmd=${1:cmd}\",\n      \"doubleletterspace=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lmacs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lmacs#c\": [\n      \"cfg=${1:cfg file}\",\n      \"def=${1:def file}\",\n      \"js=${1:js file}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lmacs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lmake.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lcmd{${1:command}}{${2:prefix}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"lmake\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lmake[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\lmake#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lmake#c\": [\n      \"p=${1:pattern}\",\n      \"c=${1:separator}\",\n      \"n=%{last index%>\",\n      \"1=${1:first index}\",\n      \"2=${1:second index}\",\n      \"d=${1:dots}\",\n      \"l={${1:sym1,sym2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lmodern.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lmodern#c\": [\n      \"nomath\",\n      \"variablett\",\n      \"lighttt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lmodern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/locant.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ShowGroups\"\n    },\n    {\n      \"name\": \"ShowLists\"\n    },\n    {\n      \"name\": \"ShowIfs\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logicproof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subproofhorizspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intersubproofvertspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"logicproof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"subproof\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logicpuzzle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"logicpuzzlesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logicpuzzlesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setcell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"setcells\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcells{${1:col1/row1,col2/row2,...}}{${2:element}}\"\n      }\n    },\n    {\n      \"name\": \"setbigcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setbigcell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"setbigcell\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"setbigcell[${4:fontsize}]{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"setrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setrow{${1:row}}{${2:element list}}\"\n      }\n    },\n    {\n      \"name\": \"setcolorrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolorrow{${1:row}}{${2:element list}}\"\n      }\n    },\n    {\n      \"name\": \"setcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolumn{${1:column}}{${2:element list}}\"\n      }\n    },\n    {\n      \"name\": \"setcolorcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolorcolumn{${1:column}}{${2:element list}}\"\n      }\n    },\n    {\n      \"name\": \"setrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrule{${1:column}}{${2:row}}{${3:rule%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fillcell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillcell{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"fillrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillrow{${1:row}}{${2:csv list of 0 and 1}}\"\n      }\n    },\n    {\n      \"name\": \"fillcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillcolumn{${1:column}}{${2:csv list of 0 and 1}}\"\n      }\n    },\n    {\n      \"name\": \"filldiagonals\"\n    },\n    {\n      \"name\": \"filldiagonals\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"filldiagonals[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"framearea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"framearea{${1:color}}{${2:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"fillarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fillarea{${1:color}}{${2:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"colorarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorarea{${1:color}}{${2:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"framepuzzle\"\n    },\n    {\n      \"name\": \"framepuzzle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"framepuzzle[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"tikzpath\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikzpath{${1:column}}{${2:row}}{${3:direction list}}\"\n      }\n    },\n    {\n      \"name\": \"xtikzpath\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xtikzpath{${1:column}}{${2:row}}{${3:dir1/len1,dir2/len2,...}}\"\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"puzzlecounter\"\n    },\n    {\n      \"name\": \"setpuzzlecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpuzzlecounter{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"definecounterstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definecounterstyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setgridlinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgridlinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"setnormallinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnormallinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setthicklinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setthicklinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ddsudokucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ddsudokucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"ddsudokusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddsudokusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"placeship\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"placeship{${1:direction%keyvals}}{${2:column}}{${3:row}}{${4:length}}\",\n        \"keys\": [\n          \"\\\\placeship\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"placesegment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placesegment{${1:column}}{${2:row}}{${3:ship segment}}\"\n      }\n    },\n    {\n      \"name\": \"Ship\"\n    },\n    {\n      \"name\": \"ShipC\"\n    },\n    {\n      \"name\": \"ShipL\"\n    },\n    {\n      \"name\": \"ShipR\"\n    },\n    {\n      \"name\": \"ShipB\"\n    },\n    {\n      \"name\": \"ShipT\"\n    },\n    {\n      \"name\": \"Island\"\n    },\n    {\n      \"name\": \"Water\"\n    },\n    {\n      \"name\": \"placewater\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placewater{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"placeisland\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeisland{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"shipH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shipH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"shipV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shipV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"shipbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shipbox{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"battleshipsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"battleshipsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{battleship},\\\\battleshipsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"classicgame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classicgame{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"valueH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valueH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"valueV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valueV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"sumH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"sumV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"bokkususetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bokkususetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bridgesrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bridgesrow{${1:row}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"bridgescolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bridgescolumn{${1:column}}{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"bridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bridge{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"bridge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bridge[${2:options}]{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"bridgessetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bridgessetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{bridges},\\\\bridgessetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaossudokucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chaossudokucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"chaossudokusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaossudokusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fourwindscell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fourwindscell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"fourwindssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourwindssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hakyuucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hakyuucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"hakyuusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hakyuusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hitorisetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hitorisetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kakurorow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kakurorow{${1:row}}{${2:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"kakurocolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kakurocolumn{${1:column}}{${2:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"KKR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KKR{${1:sumV}}{${2:sumH}}\"\n      }\n    },\n    {\n      \"name\": \"Black\"\n    },\n    {\n      \"name\": \"kakurosetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kakurosetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{nonogram},\\\\nonogramsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kendokucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kendokucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"kendokusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kendokusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"killersudokucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"killersudokucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"killersudokusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"killersudokusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"laserH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laserH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"laserV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laserV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mirrorH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mirrorV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"placearrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placearrow{${1:column}}{${2:row}}{${3:direction%keyvals}}\",\n        \"keys\": [\n          \"\\\\placearrow\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"placecross\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placecross{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"placemirror\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placemirror{${1:column}}{${2:row}}{${3:direction%keyvals}}\",\n        \"keys\": [\n          \"\\\\placemirror\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"laser\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laser{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"laser\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"laser[${2:color}]{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"laserbeamsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laserbeamsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"magiclabyrinthcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"magiclabyrinthcell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"mlline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlline{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"magiclabyrinthsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magiclabyrinthsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plusH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plusH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"minusH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minusH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"plusV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plusV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"minusV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minusV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"magnetsH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magnetsH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"magnetsV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magnetsV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"PMH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PMH{${1:col1/row1,col2/row2,...}}\"\n      }\n    },\n    {\n      \"name\": \"MPH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPH{${1:col1/row1,col2/row2,...}}\"\n      }\n    },\n    {\n      \"name\": \"PMV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PMV{${1:col1/row1,col2/row2,...}}\"\n      }\n    },\n    {\n      \"name\": \"MPV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPV{${1:col1/row1,col2/row2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magnetssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magnetssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"masyucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"masyucell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"MasyuW\"\n    },\n    {\n      \"name\": \"MasyuB\"\n    },\n    {\n      \"name\": \"masyuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masyuline{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"masyusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"masyusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Mine\"\n    },\n    {\n      \"name\": \"minesweepersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minesweepersetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nonogramrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonogramrow{${1:row}}{${2:col1/len1,col2/len2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nonogramcolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonogramcolumn{${1:column}}{${2:row1/len1,row2/len2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nonogramV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonogramV{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"nonogramH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonogramH{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"puzzlestrut\"\n    },\n    {\n      \"name\": \"nonogramsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nonogramsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{nonogram},\\\\nonogramsetup\",\n          \"\\\\begin{nonogram},\\\\nonogramsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numberlinkcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numberlinkcell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"link{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"numberlinksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberlinksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resukocell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resukocell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"Straight\"\n    },\n    {\n      \"name\": \"StraightH\"\n    },\n    {\n      \"name\": \"StraightV\"\n    },\n    {\n      \"name\": \"Cross\"\n    },\n    {\n      \"name\": \"CrossH\"\n    },\n    {\n      \"name\": \"CrossV\"\n    },\n    {\n      \"name\": \"CurveTL\"\n    },\n    {\n      \"name\": \"CurveTR\"\n    },\n    {\n      \"name\": \"CurveBL\"\n    },\n    {\n      \"name\": \"CurveBR\"\n    },\n    {\n      \"name\": \"Graveltrap\"\n    },\n    {\n      \"name\": \"pitlane\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pitlane{${1:column}}{${2:row}}{${3:direction%keyvals}}\",\n        \"keys\": [\n          \"\\\\pitlane\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"parkinglot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parkinglot{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"trackH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trackH{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"trackV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trackV{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"track\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"track{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"resukosetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resukosetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"schatzsuchesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schatzsuchesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skylineT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skylineT{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"skylineB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skylineB{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"skylineL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skylineL{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"skylineR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skylineR{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"skylinecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"skylinecell{${1:column}}{${2:row}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"skylinesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skylinesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{skyline},\\\\skylinesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slitherlinkcell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"slitherlinkcell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"slitherlinksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slitherlinksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"starbattlecell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"starbattlecell{${1:column}}{${2:row}}{${3:element}}\"\n      }\n    },\n    {\n      \"name\": \"starbattlesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starbattlesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"starsH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starsH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"starsV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starsV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"Star\"\n    },\n    {\n      \"name\": \"Right\"\n    },\n    {\n      \"name\": \"RightUp\"\n    },\n    {\n      \"name\": \"Up\"\n    },\n    {\n      \"name\": \"LeftUp\"\n    },\n    {\n      \"name\": \"Left\"\n    },\n    {\n      \"name\": \"LeftDown\"\n    },\n    {\n      \"name\": \"Down\"\n    },\n    {\n      \"name\": \"RightDown\"\n    },\n    {\n      \"name\": \"starsandarrowssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starsandarrowssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lpsudokucell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lpsudokucell{${1:column}}{${2:row}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"lpsudokusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpsudokusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cloud\"\n    },\n    {\n      \"name\": \"Moon\"\n    },\n    {\n      \"name\": \"MoonT\"\n    },\n    {\n      \"name\": \"MoonB\"\n    },\n    {\n      \"name\": \"MoonR\"\n    },\n    {\n      \"name\": \"MoonL\"\n    },\n    {\n      \"name\": \"MoonTR\"\n    },\n    {\n      \"name\": \"MoonTL\"\n    },\n    {\n      \"name\": \"MoonBR\"\n    },\n    {\n      \"name\": \"MoonBL\"\n    },\n    {\n      \"name\": \"sunandmoonsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sunandmoonsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tentH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tentH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"tentV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tentV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"Tree\"\n    },\n    {\n      \"name\": \"Tent\"\n    },\n    {\n      \"name\": \"tentsandtreessetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tentsandtreessetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tunnelH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tunnelH{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"tunnelV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tunnelV{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"portal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"portal{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"tube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tube{${1:TikZ path}}\"\n      }\n    },\n    {\n      \"name\": \"tunnelsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tunnelsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setTikZpreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTikZpreset{${1:TikZ keys}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"logicpuzzle\"\n    },\n    {\n      \"name\": \"logicpuzzle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"puzzlebackground\"\n    },\n    {\n      \"name\": \"puzzleforeground\"\n    },\n    {\n      \"name\": \"ddsudoku\"\n    },\n    {\n      \"name\": \"ddsudoku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"battleship\"\n    },\n    {\n      \"name\": \"battleship\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{battleship},\\\\battleshipsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bokkusu\"\n    },\n    {\n      \"name\": \"bokkusu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bridges\"\n    },\n    {\n      \"name\": \"bridges\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{bridges},\\\\bridgessetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaossudoku\"\n    },\n    {\n      \"name\": \"chaossudoku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fourwinds\"\n    },\n    {\n      \"name\": \"fourwinds\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hakyuu\"\n    },\n    {\n      \"name\": \"hakyuu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hitori\"\n    },\n    {\n      \"name\": \"hitori\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kakuro\"\n    },\n    {\n      \"name\": \"kakuro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{nonogram},\\\\nonogramsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kendoku\"\n    },\n    {\n      \"name\": \"kendoku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"killersudoku\"\n    },\n    {\n      \"name\": \"killersudoku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"laserbeam\"\n    },\n    {\n      \"name\": \"laserbeam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"magiclabyrinth\"\n    },\n    {\n      \"name\": \"magiclabyrinth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"magnets\"\n    },\n    {\n      \"name\": \"magnets\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"masyu\"\n    },\n    {\n      \"name\": \"masyu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minesweeper\"\n    },\n    {\n      \"name\": \"minesweeper\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nonogram\"\n    },\n    {\n      \"name\": \"nonogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\",\n          \"\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{nonogram},\\\\nonogramsetup\",\n          \"\\\\begin{nonogram},\\\\nonogramsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numberlink\"\n    },\n    {\n      \"name\": \"numberlink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resuko\"\n    },\n    {\n      \"name\": \"resuko\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"schatzsuche\"\n    },\n    {\n      \"name\": \"schatzsuche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skyline\"\n    },\n    {\n      \"name\": \"skyline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\",\n          \"\\\\begin{skyline},\\\\skylinesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slitherlink\"\n    },\n    {\n      \"name\": \"slitherlink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"starbattle\"\n    },\n    {\n      \"name\": \"starbattle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"starsandarrows\"\n    },\n    {\n      \"name\": \"starsandarrows\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lpsudoku\"\n    },\n    {\n      \"name\": \"lpsudoku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sunandmoon\"\n    },\n    {\n      \"name\": \"sunandmoon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tentsandtrees\"\n    },\n    {\n      \"name\": \"tentsandtrees\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tunnel\"\n    },\n    {\n      \"name\": \"tunnel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\placeship\": [\n      \"H\",\n      \"V\"\n    ],\n    \"\\\\placearrow\": [\n      \"LeftUp\",\n      \"LeftDown\",\n      \"RightUp\",\n      \"RightDown\"\n    ],\n    \"\\\\placemirror\": [\n      \"H\",\n      \"V\"\n    ],\n    \"\\\\pitlane\": [\n      \"H\",\n      \"V\"\n    ],\n    \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{ddsudoku},\\\\ddsudokusetup,\\\\begin{battleship},\\\\battleshipsetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{chaossudoku},\\\\chaossudokusetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{hakyuu},\\\\hakyuusetup,\\\\begin{hitori},\\\\hitorisetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{kendoku},\\\\kendokusetup,\\\\begin{killersudoku},\\\\killersudokusetup,\\\\begin{laserbeam},\\\\laserbeamsetup,\\\\begin{magiclabyrinth},\\\\magiclabyrinthsetup,\\\\begin{magnets},\\\\magnetssetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{minesweeper},\\\\minesweepersetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup,\\\\begin{schatzsuche},\\\\schatzsuchesetup,\\\\begin{skyline},\\\\skylinesetup,\\\\begin{slitherlink},\\\\slitherlinksetup,\\\\begin{starbattle},\\\\starbattlesetup,\\\\begin{starsandarrows},\\\\starsandarrowssetup,\\\\begin{lpsudoku},\\\\lpsudokusetup,\\\\begin{sunandmoon},\\\\sunandmoonsetup,\\\\begin{tentsandtrees},\\\\tentsandtreessetup,\\\\begin{tunnel},\\\\tunnelsetup\": [\n      \"rows=${1:number}\",\n      \"columns=${1:number}\",\n      \"width=\",\n      \"scale=\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"title=\",\n      \"titleindent=\",\n      \"titlewidth=\",\n      \"bgcolor=\",\n      \"counterstyle=${1|none,left,right|}\",\n      \"cvoffset=\"\n    ],\n    \"\\\\begin{logicpuzzle},\\\\logicpuzzlesetup,\\\\begin{bokkusu},\\\\bokkususetup,\\\\begin{bridges},\\\\bridgessetup,\\\\begin{fourwinds},\\\\fourwindssetup,\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{masyu},\\\\masyusetup,\\\\begin{nonogram},\\\\nonogramsetup,\\\\begin{numberlink},\\\\numberlinksetup,\\\\begin{resuko},\\\\resukosetup\": [\n      \"color=\"\n    ],\n    \"\\\\begin{battleship},\\\\battleshipsetup\": [\n      \"shipcolor=\",\n      \"sbindent=\",\n      \"sbwidth=\",\n      \"sbshipscale=\"\n    ],\n    \"\\\\begin{bridges},\\\\bridgessetup\": [\n      \"grid=${1|dashed,none,solid|}\"\n    ],\n    \"\\\\begin{kakuro},\\\\kakurosetup,\\\\begin{nonogram},\\\\nonogramsetup\": [\n      \"solution\"\n    ],\n    \"\\\\begin{nonogram},\\\\nonogramsetup\": [\n      \"extracells=${1:integer}\",\n      \"helplines=\"\n    ],\n    \"\\\\begin{skyline},\\\\skylinesetup\": [\n      \"sudoku\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"arydshln\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"symsau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsau{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsau{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"prop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prop{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sauA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Proph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Props\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsai{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsai{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"propi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"propi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"saiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"said\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Propiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PropiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSau{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSau{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SauA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sauz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metae\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metah\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSai{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSai{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"metai\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metai{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SaiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Said\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Metaiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MetaiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symslu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symslu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathslu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathslu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bnch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnch{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sluA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bncha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnche\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bncho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bncht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bnchi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnchi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sliA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSlu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSlu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSlu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSlu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bnchb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnchb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SluA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sluz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bnchbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnchbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SliA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Slix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sliz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bnchbiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BnchbiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrbl{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sruA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrbli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrbli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sriA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sril\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sris\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbliz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbliNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SruA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sruz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symSri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symSri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathSri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SriA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sril\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sris\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Srix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sriz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblbiz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblbiNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symcli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symcli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathcli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathcli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cliA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblco\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblcz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblcNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symCli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symCli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathCli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathCli{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblC{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"CliA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cliz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblCNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symfru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symfru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fruA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblfz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblfNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symFru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symFru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathFru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathFru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrblF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrblF{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FruA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fruz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrblFNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symmnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symmnu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathmnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmnu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mono\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mono{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mnuA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monov\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Monoz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MonoNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symmni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symmni{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathmni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmni{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"monoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monoi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mniA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symblu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symblu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathblu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathblu{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vrbld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vrbld{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bluA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blui\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrblds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrbldz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldSeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VrbldNine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symgru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symgru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathgru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgru{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"grualpha\"\n    },\n    {\n      \"name\": \"grubeta\"\n    },\n    {\n      \"name\": \"grugamma\"\n    },\n    {\n      \"name\": \"grudelta\"\n    },\n    {\n      \"name\": \"gruepsilon\"\n    },\n    {\n      \"name\": \"gruvarepsilon\"\n    },\n    {\n      \"name\": \"gruzeta\"\n    },\n    {\n      \"name\": \"grueta\"\n    },\n    {\n      \"name\": \"grutheta\"\n    },\n    {\n      \"name\": \"gruvartheta\"\n    },\n    {\n      \"name\": \"gruiota\"\n    },\n    {\n      \"name\": \"grukappa\"\n    },\n    {\n      \"name\": \"grulambda\"\n    },\n    {\n      \"name\": \"grumu\"\n    },\n    {\n      \"name\": \"grunu\"\n    },\n    {\n      \"name\": \"gruxi\"\n    },\n    {\n      \"name\": \"gruomicron\"\n    },\n    {\n      \"name\": \"grupi\"\n    },\n    {\n      \"name\": \"gruvarpi\"\n    },\n    {\n      \"name\": \"grurho\"\n    },\n    {\n      \"name\": \"gruvarrho\"\n    },\n    {\n      \"name\": \"grusigma\"\n    },\n    {\n      \"name\": \"gruvarsigma\"\n    },\n    {\n      \"name\": \"grutau\"\n    },\n    {\n      \"name\": \"gruupsilon\"\n    },\n    {\n      \"name\": \"gruphi\"\n    },\n    {\n      \"name\": \"gruvarphi\"\n    },\n    {\n      \"name\": \"gruchi\"\n    },\n    {\n      \"name\": \"grupsi\"\n    },\n    {\n      \"name\": \"gruomega\"\n    },\n    {\n      \"name\": \"gruAlpha\"\n    },\n    {\n      \"name\": \"gruBeta\"\n    },\n    {\n      \"name\": \"gruGamma\"\n    },\n    {\n      \"name\": \"gruDelta\"\n    },\n    {\n      \"name\": \"gruEpsilon\"\n    },\n    {\n      \"name\": \"gruZeta\"\n    },\n    {\n      \"name\": \"gruEta\"\n    },\n    {\n      \"name\": \"gruTheta\"\n    },\n    {\n      \"name\": \"gruIota\"\n    },\n    {\n      \"name\": \"gruKappa\"\n    },\n    {\n      \"name\": \"gruLambda\"\n    },\n    {\n      \"name\": \"gruMu\"\n    },\n    {\n      \"name\": \"gruNu\"\n    },\n    {\n      \"name\": \"gruXi\"\n    },\n    {\n      \"name\": \"gruOmicron\"\n    },\n    {\n      \"name\": \"gruPi\"\n    },\n    {\n      \"name\": \"gruRho\"\n    },\n    {\n      \"name\": \"gruSigma\"\n    },\n    {\n      \"name\": \"gruTau\"\n    },\n    {\n      \"name\": \"gruUpsilon\"\n    },\n    {\n      \"name\": \"gruPhi\"\n    },\n    {\n      \"name\": \"gruChi\"\n    },\n    {\n      \"name\": \"gruPsi\"\n    },\n    {\n      \"name\": \"gruOmega\"\n    },\n    {\n      \"name\": \"symgri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symgri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathgri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgri{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"grialpha\"\n    },\n    {\n      \"name\": \"gribeta\"\n    },\n    {\n      \"name\": \"grigamma\"\n    },\n    {\n      \"name\": \"gridelta\"\n    },\n    {\n      \"name\": \"griepsilon\"\n    },\n    {\n      \"name\": \"grivarepsilon\"\n    },\n    {\n      \"name\": \"grizeta\"\n    },\n    {\n      \"name\": \"grieta\"\n    },\n    {\n      \"name\": \"gritheta\"\n    },\n    {\n      \"name\": \"grivartheta\"\n    },\n    {\n      \"name\": \"griiota\"\n    },\n    {\n      \"name\": \"grikappa\"\n    },\n    {\n      \"name\": \"grilambda\"\n    },\n    {\n      \"name\": \"grimu\"\n    },\n    {\n      \"name\": \"grinu\"\n    },\n    {\n      \"name\": \"grixi\"\n    },\n    {\n      \"name\": \"griomicron\"\n    },\n    {\n      \"name\": \"gripi\"\n    },\n    {\n      \"name\": \"grivarpi\"\n    },\n    {\n      \"name\": \"grirho\"\n    },\n    {\n      \"name\": \"grivarrho\"\n    },\n    {\n      \"name\": \"grisigma\"\n    },\n    {\n      \"name\": \"grivarsigma\"\n    },\n    {\n      \"name\": \"gritau\"\n    },\n    {\n      \"name\": \"griupsilon\"\n    },\n    {\n      \"name\": \"griphi\"\n    },\n    {\n      \"name\": \"grivarphi\"\n    },\n    {\n      \"name\": \"grichi\"\n    },\n    {\n      \"name\": \"gripsi\"\n    },\n    {\n      \"name\": \"griomega\"\n    },\n    {\n      \"name\": \"griAlpha\"\n    },\n    {\n      \"name\": \"griBeta\"\n    },\n    {\n      \"name\": \"griGamma\"\n    },\n    {\n      \"name\": \"griDelta\"\n    },\n    {\n      \"name\": \"griEpsilon\"\n    },\n    {\n      \"name\": \"griZeta\"\n    },\n    {\n      \"name\": \"griEta\"\n    },\n    {\n      \"name\": \"griTheta\"\n    },\n    {\n      \"name\": \"griIota\"\n    },\n    {\n      \"name\": \"griKappa\"\n    },\n    {\n      \"name\": \"griLambda\"\n    },\n    {\n      \"name\": \"griMu\"\n    },\n    {\n      \"name\": \"griNu\"\n    },\n    {\n      \"name\": \"griXi\"\n    },\n    {\n      \"name\": \"griOmicron\"\n    },\n    {\n      \"name\": \"griPi\"\n    },\n    {\n      \"name\": \"griRho\"\n    },\n    {\n      \"name\": \"griSigma\"\n    },\n    {\n      \"name\": \"griTau\"\n    },\n    {\n      \"name\": \"griUpsilon\"\n    },\n    {\n      \"name\": \"griPhi\"\n    },\n    {\n      \"name\": \"griChi\"\n    },\n    {\n      \"name\": \"griPsi\"\n    },\n    {\n      \"name\": \"griOmega\"\n    },\n    {\n      \"name\": \"KntA\"\n    },\n    {\n      \"name\": \"KntB\"\n    },\n    {\n      \"name\": \"KntBCD\"\n    },\n    {\n      \"name\": \"KntBCS\"\n    },\n    {\n      \"name\": \"KntBDLA\"\n    },\n    {\n      \"name\": \"KntBDN\"\n    },\n    {\n      \"name\": \"KntBDQN\"\n    },\n    {\n      \"name\": \"KntBDQNBSQN\"\n    },\n    {\n      \"name\": \"KntBDRA\"\n    },\n    {\n      \"name\": \"KntBFC\"\n    },\n    {\n      \"name\": \"KntBLDC\"\n    },\n    {\n      \"name\": \"KntBLDFC\"\n    },\n    {\n      \"name\": \"KntBLSC\"\n    },\n    {\n      \"name\": \"KntBLSFC\"\n    },\n    {\n      \"name\": \"KntBQC\"\n    },\n    {\n      \"name\": \"KntBSDN\"\n    },\n    {\n      \"name\": \"KntBSFN\"\n    },\n    {\n      \"name\": \"KntBSFNF\"\n    },\n    {\n      \"name\": \"KntBSLA\"\n    },\n    {\n      \"name\": \"KntBSN\"\n    },\n    {\n      \"name\": \"KntBSNF\"\n    },\n    {\n      \"name\": \"KntBSQN\"\n    },\n    {\n      \"name\": \"KntBSQNF\"\n    },\n    {\n      \"name\": \"KntBSRA\"\n    },\n    {\n      \"name\": \"KntC\"\n    },\n    {\n      \"name\": \"KntD\"\n    },\n    {\n      \"name\": \"KntDFJBLTR\"\n    },\n    {\n      \"name\": \"KntDFJBRTL\"\n    },\n    {\n      \"name\": \"KntDFJTLBR\"\n    },\n    {\n      \"name\": \"KntDFJTRBL\"\n    },\n    {\n      \"name\": \"KntDJBLTR\"\n    },\n    {\n      \"name\": \"KntDJBRTL\"\n    },\n    {\n      \"name\": \"KntDJTLBR\"\n    },\n    {\n      \"name\": \"KntDJTRBL\"\n    },\n    {\n      \"name\": \"KntE\"\n    },\n    {\n      \"name\": \"KntEE\"\n    },\n    {\n      \"name\": \"KntEF\"\n    },\n    {\n      \"name\": \"KntEN\"\n    },\n    {\n      \"name\": \"KntEQ\"\n    },\n    {\n      \"name\": \"KntEZ\"\n    },\n    {\n      \"name\": \"KntF\"\n    },\n    {\n      \"name\": \"KntFE\"\n    },\n    {\n      \"name\": \"KntFF\"\n    },\n    {\n      \"name\": \"KntFN\"\n    },\n    {\n      \"name\": \"KntFQ\"\n    },\n    {\n      \"name\": \"KntFZ\"\n    },\n    {\n      \"name\": \"KntG\"\n    },\n    {\n      \"name\": \"KntH\"\n    },\n    {\n      \"name\": \"KntHDASH\"\n    },\n    {\n      \"name\": \"KntHHMDTDB\"\n    },\n    {\n      \"name\": \"KntHHMDTSB\"\n    },\n    {\n      \"name\": \"KntHHMSTDB\"\n    },\n    {\n      \"name\": \"KntHHMSTSB\"\n    },\n    {\n      \"name\": \"KntHVMDLDR\"\n    },\n    {\n      \"name\": \"KntHVMDLSR\"\n    },\n    {\n      \"name\": \"KntHVMSLDR\"\n    },\n    {\n      \"name\": \"KntHVMSLSR\"\n    },\n    {\n      \"name\": \"KntHXDODU\"\n    },\n    {\n      \"name\": \"KntHXDOSU\"\n    },\n    {\n      \"name\": \"KntHXDUDO\"\n    },\n    {\n      \"name\": \"KntHXDUSO\"\n    },\n    {\n      \"name\": \"KntHXSODU\"\n    },\n    {\n      \"name\": \"KntHXSOSU\"\n    },\n    {\n      \"name\": \"KntHXSUDO\"\n    },\n    {\n      \"name\": \"KntHXSUSO\"\n    },\n    {\n      \"name\": \"KntI\"\n    },\n    {\n      \"name\": \"KntJ\"\n    },\n    {\n      \"name\": \"KntK\"\n    },\n    {\n      \"name\": \"KntL\"\n    },\n    {\n      \"name\": \"KntLCD\"\n    },\n    {\n      \"name\": \"KntLCS\"\n    },\n    {\n      \"name\": \"KntLDDA\"\n    },\n    {\n      \"name\": \"KntLDDARDDA\"\n    },\n    {\n      \"name\": \"KntLDDARDN\"\n    },\n    {\n      \"name\": \"KntLDDARDUA\"\n    },\n    {\n      \"name\": \"KntLDDARSDA\"\n    },\n    {\n      \"name\": \"KntLDDARSN\"\n    },\n    {\n      \"name\": \"KntLDDARSUA\"\n    },\n    {\n      \"name\": \"KntLDFNRDFN\"\n    },\n    {\n      \"name\": \"KntLDFNRSFN\"\n    },\n    {\n      \"name\": \"KntLDN\"\n    },\n    {\n      \"name\": \"KntLDNRDDA\"\n    },\n    {\n      \"name\": \"KntLDNRDN\"\n    },\n    {\n      \"name\": \"KntLDNRDUA\"\n    },\n    {\n      \"name\": \"KntLDNRSDA\"\n    },\n    {\n      \"name\": \"KntLDNRSN\"\n    },\n    {\n      \"name\": \"KntLDNRSUA\"\n    },\n    {\n      \"name\": \"KntLDQN\"\n    },\n    {\n      \"name\": \"KntLDQNRDQN\"\n    },\n    {\n      \"name\": \"KntLDQNRSQN\"\n    },\n    {\n      \"name\": \"KntLDUA\"\n    },\n    {\n      \"name\": \"KntLDUARDDA\"\n    },\n    {\n      \"name\": \"KntLDUARDN\"\n    },\n    {\n      \"name\": \"KntLDUARDUA\"\n    },\n    {\n      \"name\": \"KntLDUARSDA\"\n    },\n    {\n      \"name\": \"KntLDUARSN\"\n    },\n    {\n      \"name\": \"KntLDUARSUA\"\n    },\n    {\n      \"name\": \"KntLFC\"\n    },\n    {\n      \"name\": \"KntLQC\"\n    },\n    {\n      \"name\": \"KntLSDA\"\n    },\n    {\n      \"name\": \"KntLSDARDDA\"\n    },\n    {\n      \"name\": \"KntLSDARDN\"\n    },\n    {\n      \"name\": \"KntLSDARDUA\"\n    },\n    {\n      \"name\": \"KntLSDARSDA\"\n    },\n    {\n      \"name\": \"KntLSDARSN\"\n    },\n    {\n      \"name\": \"KntLSDARSUA\"\n    },\n    {\n      \"name\": \"KntLSDN\"\n    },\n    {\n      \"name\": \"KntLSFN\"\n    },\n    {\n      \"name\": \"KntLSFNF\"\n    },\n    {\n      \"name\": \"KntLSFNRDFN\"\n    },\n    {\n      \"name\": \"KntLSFNRSFN\"\n    },\n    {\n      \"name\": \"KntLSN\"\n    },\n    {\n      \"name\": \"KntLSNF\"\n    },\n    {\n      \"name\": \"KntLSNRDDA\"\n    },\n    {\n      \"name\": \"KntLSNRDN\"\n    },\n    {\n      \"name\": \"KntLSNRDUA\"\n    },\n    {\n      \"name\": \"KntLSNRSDA\"\n    },\n    {\n      \"name\": \"KntLSNRSN\"\n    },\n    {\n      \"name\": \"KntLSNRSUA\"\n    },\n    {\n      \"name\": \"KntLSQN\"\n    },\n    {\n      \"name\": \"KntLSQNF\"\n    },\n    {\n      \"name\": \"KntLSQNRDQN\"\n    },\n    {\n      \"name\": \"KntLSQNRSQN\"\n    },\n    {\n      \"name\": \"KntLSUA\"\n    },\n    {\n      \"name\": \"KntLSUARDDA\"\n    },\n    {\n      \"name\": \"KntLSUARDN\"\n    },\n    {\n      \"name\": \"KntLSUARDUA\"\n    },\n    {\n      \"name\": \"KntLSUARSDA\"\n    },\n    {\n      \"name\": \"KntLSUARSN\"\n    },\n    {\n      \"name\": \"KntLSUARSUA\"\n    },\n    {\n      \"name\": \"KntLTDC\"\n    },\n    {\n      \"name\": \"KntLTDFC\"\n    },\n    {\n      \"name\": \"KntLTSC\"\n    },\n    {\n      \"name\": \"KntLTSFC\"\n    },\n    {\n      \"name\": \"KntM\"\n    },\n    {\n      \"name\": \"KntN\"\n    },\n    {\n      \"name\": \"KntNE\"\n    },\n    {\n      \"name\": \"KntNF\"\n    },\n    {\n      \"name\": \"KntNN\"\n    },\n    {\n      \"name\": \"KntNQ\"\n    },\n    {\n      \"name\": \"KntNZ\"\n    },\n    {\n      \"name\": \"KntO\"\n    },\n    {\n      \"name\": \"KntP\"\n    },\n    {\n      \"name\": \"KntQ\"\n    },\n    {\n      \"name\": \"KntQE\"\n    },\n    {\n      \"name\": \"KntQF\"\n    },\n    {\n      \"name\": \"KntQN\"\n    },\n    {\n      \"name\": \"KntQQ\"\n    },\n    {\n      \"name\": \"KntQZ\"\n    },\n    {\n      \"name\": \"KntR\"\n    },\n    {\n      \"name\": \"KntRBDC\"\n    },\n    {\n      \"name\": \"KntRBDFC\"\n    },\n    {\n      \"name\": \"KntRBSC\"\n    },\n    {\n      \"name\": \"KntRBSFC\"\n    },\n    {\n      \"name\": \"KntRCD\"\n    },\n    {\n      \"name\": \"KntRCS\"\n    },\n    {\n      \"name\": \"KntRDDA\"\n    },\n    {\n      \"name\": \"KntRDN\"\n    },\n    {\n      \"name\": \"KntRDQN\"\n    },\n    {\n      \"name\": \"KntRDUA\"\n    },\n    {\n      \"name\": \"KntRFC\"\n    },\n    {\n      \"name\": \"KntRQC\"\n    },\n    {\n      \"name\": \"KntRSDA\"\n    },\n    {\n      \"name\": \"KntRSDN\"\n    },\n    {\n      \"name\": \"KntRSFN\"\n    },\n    {\n      \"name\": \"KntRSFNF\"\n    },\n    {\n      \"name\": \"KntRSN\"\n    },\n    {\n      \"name\": \"KntRSNF\"\n    },\n    {\n      \"name\": \"KntRSQN\"\n    },\n    {\n      \"name\": \"KntRSQNF\"\n    },\n    {\n      \"name\": \"KntRSUA\"\n    },\n    {\n      \"name\": \"KntS\"\n    },\n    {\n      \"name\": \"KntSFJBLTR\"\n    },\n    {\n      \"name\": \"KntSFJBRTL\"\n    },\n    {\n      \"name\": \"KntSFJTLBR\"\n    },\n    {\n      \"name\": \"KntSFJTRBL\"\n    },\n    {\n      \"name\": \"KntSJBLTR\"\n    },\n    {\n      \"name\": \"KntSJBRTL\"\n    },\n    {\n      \"name\": \"KntSJTLBR\"\n    },\n    {\n      \"name\": \"KntSJTRBL\"\n    },\n    {\n      \"name\": \"KntT\"\n    },\n    {\n      \"name\": \"KntTCD\"\n    },\n    {\n      \"name\": \"KntTCS\"\n    },\n    {\n      \"name\": \"KntTDFNBDFN\"\n    },\n    {\n      \"name\": \"KntTDFNBSFN\"\n    },\n    {\n      \"name\": \"KntTDLA\"\n    },\n    {\n      \"name\": \"KntTDLABDLA\"\n    },\n    {\n      \"name\": \"KntTDLABDN\"\n    },\n    {\n      \"name\": \"KntTDLABDRA\"\n    },\n    {\n      \"name\": \"KntTDLABSLA\"\n    },\n    {\n      \"name\": \"KntTDLABSN\"\n    },\n    {\n      \"name\": \"KntTDLABSRA\"\n    },\n    {\n      \"name\": \"KntTDN\"\n    },\n    {\n      \"name\": \"KntTDNBDLA\"\n    },\n    {\n      \"name\": \"KntTDNBDN\"\n    },\n    {\n      \"name\": \"KntTDNBDRA\"\n    },\n    {\n      \"name\": \"KntTDNBSLA\"\n    },\n    {\n      \"name\": \"KntTDNBSN\"\n    },\n    {\n      \"name\": \"KntTDNBSRA\"\n    },\n    {\n      \"name\": \"KntTDQN\"\n    },\n    {\n      \"name\": \"KntTDQNBDQN\"\n    },\n    {\n      \"name\": \"KntTDRA\"\n    },\n    {\n      \"name\": \"KntTDRABDLA\"\n    },\n    {\n      \"name\": \"KntTDRABDN\"\n    },\n    {\n      \"name\": \"KntTDRABDRA\"\n    },\n    {\n      \"name\": \"KntTDRABSLA\"\n    },\n    {\n      \"name\": \"KntTDRABSN\"\n    },\n    {\n      \"name\": \"KntTDRABSRA\"\n    },\n    {\n      \"name\": \"KntTFC\"\n    },\n    {\n      \"name\": \"KntTQC\"\n    },\n    {\n      \"name\": \"KntTRDC\"\n    },\n    {\n      \"name\": \"KntTRDFC\"\n    },\n    {\n      \"name\": \"KntTRSC\"\n    },\n    {\n      \"name\": \"KntTRSFC\"\n    },\n    {\n      \"name\": \"KntTSDN\"\n    },\n    {\n      \"name\": \"KntTSFN\"\n    },\n    {\n      \"name\": \"KntTSFNBDFN\"\n    },\n    {\n      \"name\": \"KntTSFNBSFN\"\n    },\n    {\n      \"name\": \"KntTSFNF\"\n    },\n    {\n      \"name\": \"KntTSLA\"\n    },\n    {\n      \"name\": \"KntTSLABDLA\"\n    },\n    {\n      \"name\": \"KntTSLABDN\"\n    },\n    {\n      \"name\": \"KntTSLABDRA\"\n    },\n    {\n      \"name\": \"KntTSLABSLA\"\n    },\n    {\n      \"name\": \"KntTSLABSN\"\n    },\n    {\n      \"name\": \"KntTSLABSRA\"\n    },\n    {\n      \"name\": \"KntTSN\"\n    },\n    {\n      \"name\": \"KntTSNBDLA\"\n    },\n    {\n      \"name\": \"KntTSNBDN\"\n    },\n    {\n      \"name\": \"KntTSNBDRA\"\n    },\n    {\n      \"name\": \"KntTSNBSLA\"\n    },\n    {\n      \"name\": \"KntTSNBSN\"\n    },\n    {\n      \"name\": \"KntTSNBSRA\"\n    },\n    {\n      \"name\": \"KntTSNF\"\n    },\n    {\n      \"name\": \"KntTSQN\"\n    },\n    {\n      \"name\": \"KntTSQNBDQN\"\n    },\n    {\n      \"name\": \"KntTSQNBSQN\"\n    },\n    {\n      \"name\": \"KntTSQNF\"\n    },\n    {\n      \"name\": \"KntTSRA\"\n    },\n    {\n      \"name\": \"KntTSRABDLA\"\n    },\n    {\n      \"name\": \"KntTSRABDN\"\n    },\n    {\n      \"name\": \"KntTSRABDRA\"\n    },\n    {\n      \"name\": \"KntTSRABSLA\"\n    },\n    {\n      \"name\": \"KntTSRABSN\"\n    },\n    {\n      \"name\": \"KntTSRABSRA\"\n    },\n    {\n      \"name\": \"KntU\"\n    },\n    {\n      \"name\": \"KntV\"\n    },\n    {\n      \"name\": \"KntVDASH\"\n    },\n    {\n      \"name\": \"KntVHMDTDB\"\n    },\n    {\n      \"name\": \"KntVHMDTSB\"\n    },\n    {\n      \"name\": \"KntVHMSTDB\"\n    },\n    {\n      \"name\": \"KntVHMSTSB\"\n    },\n    {\n      \"name\": \"KntVVMDLDR\"\n    },\n    {\n      \"name\": \"KntVVMDLSR\"\n    },\n    {\n      \"name\": \"KntVVMSLDR\"\n    },\n    {\n      \"name\": \"KntVVMSLSR\"\n    },\n    {\n      \"name\": \"KntVXDODU\"\n    },\n    {\n      \"name\": \"KntVXDOSU\"\n    },\n    {\n      \"name\": \"KntVXDUDO\"\n    },\n    {\n      \"name\": \"KntVXDUSO\"\n    },\n    {\n      \"name\": \"KntVXSODU\"\n    },\n    {\n      \"name\": \"KntVXSOSU\"\n    },\n    {\n      \"name\": \"KntVXSUDO\"\n    },\n    {\n      \"name\": \"KntVXSUSO\"\n    },\n    {\n      \"name\": \"KntW\"\n    },\n    {\n      \"name\": \"KntX\"\n    },\n    {\n      \"name\": \"KntY\"\n    },\n    {\n      \"name\": \"KntZ\"\n    },\n    {\n      \"name\": \"KntZE\"\n    },\n    {\n      \"name\": \"KntZF\"\n    },\n    {\n      \"name\": \"KntZN\"\n    },\n    {\n      \"name\": \"KntZQ\"\n    },\n    {\n      \"name\": \"KntZZ\"\n    },\n    {\n      \"name\": \"Knta\"\n    },\n    {\n      \"name\": \"Kntb\"\n    },\n    {\n      \"name\": \"Kntc\"\n    },\n    {\n      \"name\": \"Kntd\"\n    },\n    {\n      \"name\": \"Knte\"\n    },\n    {\n      \"name\": \"Knteight\"\n    },\n    {\n      \"name\": \"Kntf\"\n    },\n    {\n      \"name\": \"Kntfive\"\n    },\n    {\n      \"name\": \"Kntfour\"\n    },\n    {\n      \"name\": \"Kntg\"\n    },\n    {\n      \"name\": \"Knth\"\n    },\n    {\n      \"name\": \"Knti\"\n    },\n    {\n      \"name\": \"Kntj\"\n    },\n    {\n      \"name\": \"Kntk\"\n    },\n    {\n      \"name\": \"Kntl\"\n    },\n    {\n      \"name\": \"Kntm\"\n    },\n    {\n      \"name\": \"Kntn\"\n    },\n    {\n      \"name\": \"Kntnine\"\n    },\n    {\n      \"name\": \"Knto\"\n    },\n    {\n      \"name\": \"Kntone\"\n    },\n    {\n      \"name\": \"Kntp\"\n    },\n    {\n      \"name\": \"Kntq\"\n    },\n    {\n      \"name\": \"Kntr\"\n    },\n    {\n      \"name\": \"Knts\"\n    },\n    {\n      \"name\": \"Kntseven\"\n    },\n    {\n      \"name\": \"Kntsix\"\n    },\n    {\n      \"name\": \"Kntt\"\n    },\n    {\n      \"name\": \"Kntthree\"\n    },\n    {\n      \"name\": \"Knttwo\"\n    },\n    {\n      \"name\": \"Kntu\"\n    },\n    {\n      \"name\": \"Kntv\"\n    },\n    {\n      \"name\": \"Kntw\"\n    },\n    {\n      \"name\": \"Kntx\"\n    },\n    {\n      \"name\": \"Knty\"\n    },\n    {\n      \"name\": \"Kntz\"\n    },\n    {\n      \"name\": \"Kntzero\"\n    },\n    {\n      \"name\": \"KntNESpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KntNFSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KntNNSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KntNQSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Line{${1:name}}{${2:number}}{${3:formula}}{${4:comment}}\"\n      }\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"Line{${1:line number}}{${2:justification}}{${3:referenced lines}}{${4:formula}}{${5:comment}}\"\n      }\n    },\n    {\n      \"name\": \"AAnd\"\n    },\n    {\n      \"name\": \"Ampersand\"\n    },\n    {\n      \"name\": \"Aor\"\n    },\n    {\n      \"name\": \"Append\"\n    },\n    {\n      \"name\": \"Asterick\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"BackQuote\"\n    },\n    {\n      \"name\": \"BlackCircle\"\n    },\n    {\n      \"name\": \"BlackCircleA\"\n    },\n    {\n      \"name\": \"BlackCircleB\"\n    },\n    {\n      \"name\": \"BlackCircleC\"\n    },\n    {\n      \"name\": \"BlackCircleD\"\n    },\n    {\n      \"name\": \"BlackCircleE\"\n    },\n    {\n      \"name\": \"BlackCircleF\"\n    },\n    {\n      \"name\": \"BlackCircleG\"\n    },\n    {\n      \"name\": \"BlackCircleH\"\n    },\n    {\n      \"name\": \"BlackCircleI\"\n    },\n    {\n      \"name\": \"BlackCurvedDiamond\"\n    },\n    {\n      \"name\": \"BlackDiamond\"\n    },\n    {\n      \"name\": \"BlackDiamondA\"\n    },\n    {\n      \"name\": \"BlackDiamondB\"\n    },\n    {\n      \"name\": \"BlackDiamondC\"\n    },\n    {\n      \"name\": \"BlackDiamondD\"\n    },\n    {\n      \"name\": \"BlackDiamondE\"\n    },\n    {\n      \"name\": \"BlackDiamondF\"\n    },\n    {\n      \"name\": \"BlackDiamondG\"\n    },\n    {\n      \"name\": \"BlackDiamondH\"\n    },\n    {\n      \"name\": \"BlackDiamondI\"\n    },\n    {\n      \"name\": \"BlackDownTriangle\"\n    },\n    {\n      \"name\": \"BlackDownTriangleA\"\n    },\n    {\n      \"name\": \"BlackDownTriangleB\"\n    },\n    {\n      \"name\": \"BlackDownTriangleC\"\n    },\n    {\n      \"name\": \"BlackDownTriangleD\"\n    },\n    {\n      \"name\": \"BlackDownTriangleE\"\n    },\n    {\n      \"name\": \"BlackDownTriangleF\"\n    },\n    {\n      \"name\": \"BlackDownTriangleG\"\n    },\n    {\n      \"name\": \"BlackDownTriangleH\"\n    },\n    {\n      \"name\": \"BlackDownTriangleI\"\n    },\n    {\n      \"name\": \"BlackLeftArrowHead\"\n    },\n    {\n      \"name\": \"BlackLeftTriangle\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleA\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleB\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleC\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleD\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleE\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleF\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleG\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleH\"\n    },\n    {\n      \"name\": \"BlackLeftTriangleI\"\n    },\n    {\n      \"name\": \"BlackLozenge\"\n    },\n    {\n      \"name\": \"BlackReallySmallCircle\"\n    },\n    {\n      \"name\": \"BlackReallySmallDiamond\"\n    },\n    {\n      \"name\": \"BlackReallySmallSquare\"\n    },\n    {\n      \"name\": \"BlackRightArrowHead\"\n    },\n    {\n      \"name\": \"BlackRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"BlackRightTriangle\"\n    },\n    {\n      \"name\": \"BlackRightTriangleA\"\n    },\n    {\n      \"name\": \"BlackRightTriangleB\"\n    },\n    {\n      \"name\": \"BlackRightTriangleC\"\n    },\n    {\n      \"name\": \"BlackRightTriangleD\"\n    },\n    {\n      \"name\": \"BlackRightTriangleE\"\n    },\n    {\n      \"name\": \"BlackRightTriangleF\"\n    },\n    {\n      \"name\": \"BlackRightTriangleG\"\n    },\n    {\n      \"name\": \"BlackRightTriangleH\"\n    },\n    {\n      \"name\": \"BlackRightTriangleI\"\n    },\n    {\n      \"name\": \"BlackSmallCircle\"\n    },\n    {\n      \"name\": \"BlackSquare\"\n    },\n    {\n      \"name\": \"BlackSquareA\"\n    },\n    {\n      \"name\": \"BlackSquareB\"\n    },\n    {\n      \"name\": \"BlackSquareC\"\n    },\n    {\n      \"name\": \"BlackSquareD\"\n    },\n    {\n      \"name\": \"BlackSquareE\"\n    },\n    {\n      \"name\": \"BlackSquareF\"\n    },\n    {\n      \"name\": \"BlackSquareG\"\n    },\n    {\n      \"name\": \"BlackSquareH\"\n    },\n    {\n      \"name\": \"BlackSquareI\"\n    },\n    {\n      \"name\": \"BlackSquareRoundCorners\"\n    },\n    {\n      \"name\": \"BlackUpTriangle\"\n    },\n    {\n      \"name\": \"BlackUpTriangleA\"\n    },\n    {\n      \"name\": \"BlackUpTriangleB\"\n    },\n    {\n      \"name\": \"BlackUpTriangleC\"\n    },\n    {\n      \"name\": \"BlackUpTriangleD\"\n    },\n    {\n      \"name\": \"BlackUpTriangleE\"\n    },\n    {\n      \"name\": \"BlackUpTriangleF\"\n    },\n    {\n      \"name\": \"BlackUpTriangleG\"\n    },\n    {\n      \"name\": \"BlackUpTriangleH\"\n    },\n    {\n      \"name\": \"BlackUpTriangleI\"\n    },\n    {\n      \"name\": \"BlackVerySmallCircle\"\n    },\n    {\n      \"name\": \"BlackVerySmallSquare\"\n    },\n    {\n      \"name\": \"BncBistab\"\n    },\n    {\n      \"name\": \"BnchExists\"\n    },\n    {\n      \"name\": \"BnchForAll\"\n    },\n    {\n      \"name\": \"BnchHdnExists\"\n    },\n    {\n      \"name\": \"BnchHdnForAll\"\n    },\n    {\n      \"name\": \"BnchJoin\"\n    },\n    {\n      \"name\": \"BnchMeet\"\n    },\n    {\n      \"name\": \"BnchNtExists\"\n    },\n    {\n      \"name\": \"BnchUnique\"\n    },\n    {\n      \"name\": \"BndDot\"\n    },\n    {\n      \"name\": \"BndMap\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"CDots\"\n    },\n    {\n      \"name\": \"Choice\"\n    },\n    {\n      \"name\": \"Choices\"\n    },\n    {\n      \"name\": \"CircAsterick\"\n    },\n    {\n      \"name\": \"CircDivd\"\n    },\n    {\n      \"name\": \"CircDivide\"\n    },\n    {\n      \"name\": \"CircEq\"\n    },\n    {\n      \"name\": \"CircGr\"\n    },\n    {\n      \"name\": \"CircGre\"\n    },\n    {\n      \"name\": \"CircInvNt\"\n    },\n    {\n      \"name\": \"CircLs\"\n    },\n    {\n      \"name\": \"CircLse\"\n    },\n    {\n      \"name\": \"CircMinus\"\n    },\n    {\n      \"name\": \"CircMinusPlus\"\n    },\n    {\n      \"name\": \"CircNand\"\n    },\n    {\n      \"name\": \"CircNd\"\n    },\n    {\n      \"name\": \"CircNgt\"\n    },\n    {\n      \"name\": \"CircNor\"\n    },\n    {\n      \"name\": \"CircNt\"\n    },\n    {\n      \"name\": \"CircOr\"\n    },\n    {\n      \"name\": \"CircPls\"\n    },\n    {\n      \"name\": \"CircPlusMinus\"\n    },\n    {\n      \"name\": \"CircSm\"\n    },\n    {\n      \"name\": \"CircTimes\"\n    },\n    {\n      \"name\": \"Circumflex\"\n    },\n    {\n      \"name\": \"CircXor\"\n    },\n    {\n      \"name\": \"Cln\"\n    },\n    {\n      \"name\": \"ClsEquv\"\n    },\n    {\n      \"name\": \"ClsImpl\"\n    },\n    {\n      \"name\": \"Coh\"\n    },\n    {\n      \"name\": \"Coma\"\n    },\n    {\n      \"name\": \"Concat\"\n    },\n    {\n      \"name\": \"Conseq\"\n    },\n    {\n      \"name\": \"Cont\"\n    },\n    {\n      \"name\": \"Cover\"\n    },\n    {\n      \"name\": \"Cpyrght\"\n    },\n    {\n      \"name\": \"CrossedCircle\"\n    },\n    {\n      \"name\": \"CrossedCurvedDiamond\"\n    },\n    {\n      \"name\": \"CrossedDiamond\"\n    },\n    {\n      \"name\": \"CrossedDownTriangle\"\n    },\n    {\n      \"name\": \"CrossedLeftTriangle\"\n    },\n    {\n      \"name\": \"CrossedLozenge\"\n    },\n    {\n      \"name\": \"CrossedRightTriangle\"\n    },\n    {\n      \"name\": \"CrossedSmallCircle\"\n    },\n    {\n      \"name\": \"CrossedSquare\"\n    },\n    {\n      \"name\": \"CrossedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"CrossedUpTriangle\"\n    },\n    {\n      \"name\": \"CrossedVerySmallCircle\"\n    },\n    {\n      \"name\": \"CrossedVerySmallSquare\"\n    },\n    {\n      \"name\": \"Dagger\"\n    },\n    {\n      \"name\": \"Daggerr\"\n    },\n    {\n      \"name\": \"DashArrowLeft\"\n    },\n    {\n      \"name\": \"DashArrowRight\"\n    },\n    {\n      \"name\": \"DAsterisk\"\n    },\n    {\n      \"name\": \"Ddagger\"\n    },\n    {\n      \"name\": \"Ddaggerr\"\n    },\n    {\n      \"name\": \"Defn\"\n    },\n    {\n      \"name\": \"DeoCont\"\n    },\n    {\n      \"name\": \"DeoFutr\"\n    },\n    {\n      \"name\": \"DeoNec\"\n    },\n    {\n      \"name\": \"DeoNext\"\n    },\n    {\n      \"name\": \"DeoNonCont\"\n    },\n    {\n      \"name\": \"DeoPast\"\n    },\n    {\n      \"name\": \"DeoPos\"\n    },\n    {\n      \"name\": \"Divd\"\n    },\n    {\n      \"name\": \"Divide\"\n    },\n    {\n      \"name\": \"DMinus\"\n    },\n    {\n      \"name\": \"Dnd\"\n    },\n    {\n      \"name\": \"Dnt\"\n    },\n    {\n      \"name\": \"Dollar\"\n    },\n    {\n      \"name\": \"Dor\"\n    },\n    {\n      \"name\": \"DottedCircl\"\n    },\n    {\n      \"name\": \"DottedCurvedDiamond\"\n    },\n    {\n      \"name\": \"DottedDiamond\"\n    },\n    {\n      \"name\": \"DottedDownTriangle\"\n    },\n    {\n      \"name\": \"DottedLeftArrowHead\"\n    },\n    {\n      \"name\": \"DottedLeftTriangle\"\n    },\n    {\n      \"name\": \"DottedLozenge\"\n    },\n    {\n      \"name\": \"DottedRightArrowHead\"\n    },\n    {\n      \"name\": \"DottedRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"DottedRightTriangle\"\n    },\n    {\n      \"name\": \"DottedSmallCircle\"\n    },\n    {\n      \"name\": \"DottedSquare\"\n    },\n    {\n      \"name\": \"DottedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"DottedUpTriangle\"\n    },\n    {\n      \"name\": \"DottedVerySmallCircle\"\n    },\n    {\n      \"name\": \"DottedVerySmallSquare\"\n    },\n    {\n      \"name\": \"DoubleQuote\"\n    },\n    {\n      \"name\": \"DownSlashedCircle\"\n    },\n    {\n      \"name\": \"DownSlashedCurvedDiamond\"\n    },\n    {\n      \"name\": \"DownSlashedDiamond\"\n    },\n    {\n      \"name\": \"DownSlashedDownTriangle\"\n    },\n    {\n      \"name\": \"DownSlashedLeftTriangle\"\n    },\n    {\n      \"name\": \"DownSlashedLozenge\"\n    },\n    {\n      \"name\": \"DownSlashedRightTriangle\"\n    },\n    {\n      \"name\": \"DownSlashedSmallCircle\"\n    },\n    {\n      \"name\": \"DownSlashedSquare\"\n    },\n    {\n      \"name\": \"DownSlashedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"DownSlashedUpTriangle\"\n    },\n    {\n      \"name\": \"DownSlashedVerySmallCircle\"\n    },\n    {\n      \"name\": \"DownSlashedVerySmallSquare\"\n    },\n    {\n      \"name\": \"DoxCont\"\n    },\n    {\n      \"name\": \"DoxFutr\"\n    },\n    {\n      \"name\": \"DoxNec\"\n    },\n    {\n      \"name\": \"DoxNext\"\n    },\n    {\n      \"name\": \"DoxNonCont\"\n    },\n    {\n      \"name\": \"DoxPast\"\n    },\n    {\n      \"name\": \"DoxPos\"\n    },\n    {\n      \"name\": \"DPlus\"\n    },\n    {\n      \"name\": \"Dt\"\n    },\n    {\n      \"name\": \"DTimes\"\n    },\n    {\n      \"name\": \"DTrpTurn\"\n    },\n    {\n      \"name\": \"DTurnDWavy\"\n    },\n    {\n      \"name\": \"DTurnWavy\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"Entail\"\n    },\n    {\n      \"name\": \"EntailEquv\"\n    },\n    {\n      \"name\": \"Eq\"\n    },\n    {\n      \"name\": \"Equv\"\n    },\n    {\n      \"name\": \"Exclaim\"\n    },\n    {\n      \"name\": \"ExGrtFix\"\n    },\n    {\n      \"name\": \"Exists\"\n    },\n    {\n      \"name\": \"ExLstFix\"\n    },\n    {\n      \"name\": \"FacCont\"\n    },\n    {\n      \"name\": \"FacFutr\"\n    },\n    {\n      \"name\": \"FacNec\"\n    },\n    {\n      \"name\": \"FacNext\"\n    },\n    {\n      \"name\": \"FacNonCont\"\n    },\n    {\n      \"name\": \"FacPast\"\n    },\n    {\n      \"name\": \"FacPos\"\n    },\n    {\n      \"name\": \"False\"\n    },\n    {\n      \"name\": \"FishArrowLeft\"\n    },\n    {\n      \"name\": \"FishArrowRight\"\n    },\n    {\n      \"name\": \"FlatArrowLeft\"\n    },\n    {\n      \"name\": \"FlatArrowRight\"\n    },\n    {\n      \"name\": \"FncCnvrs\"\n    },\n    {\n      \"name\": \"FncComp\"\n    },\n    {\n      \"name\": \"FntSbset\"\n    },\n    {\n      \"name\": \"ForAll\"\n    },\n    {\n      \"name\": \"ForComp\"\n    },\n    {\n      \"name\": \"ForkArrowLeft\"\n    },\n    {\n      \"name\": \"ForkArrowRight\"\n    },\n    {\n      \"name\": \"FrstOrd\"\n    },\n    {\n      \"name\": \"Func\"\n    },\n    {\n      \"name\": \"FunParInGndMul\"\n    },\n    {\n      \"name\": \"FunParInGndOne\"\n    },\n    {\n      \"name\": \"FunParInGndSng\"\n    },\n    {\n      \"name\": \"FunParInMul\"\n    },\n    {\n      \"name\": \"FunParInOne\"\n    },\n    {\n      \"name\": \"FunParInSng\"\n    },\n    {\n      \"name\": \"FunParOnGndMul\"\n    },\n    {\n      \"name\": \"FunParOnGndOne\"\n    },\n    {\n      \"name\": \"FunParOnGndSng\"\n    },\n    {\n      \"name\": \"FunParOnMul\"\n    },\n    {\n      \"name\": \"FunParOnOne\"\n    },\n    {\n      \"name\": \"FunParOnSng\"\n    },\n    {\n      \"name\": \"FunTotInGndMul\"\n    },\n    {\n      \"name\": \"FunTotInGndOne\"\n    },\n    {\n      \"name\": \"FunTotInGndSng\"\n    },\n    {\n      \"name\": \"FunTotInMul\"\n    },\n    {\n      \"name\": \"FunTotInOne\"\n    },\n    {\n      \"name\": \"FunTotInSng\"\n    },\n    {\n      \"name\": \"FunTotOnGndMul\"\n    },\n    {\n      \"name\": \"FunTotOnGndOne\"\n    },\n    {\n      \"name\": \"FunTotOnGndSng\"\n    },\n    {\n      \"name\": \"FunTotOnMul\"\n    },\n    {\n      \"name\": \"FunTotOnOne\"\n    },\n    {\n      \"name\": \"FunTotOnSng\"\n    },\n    {\n      \"name\": \"Futr\"\n    },\n    {\n      \"name\": \"Gr\"\n    },\n    {\n      \"name\": \"Gre\"\n    },\n    {\n      \"name\": \"GrtFix\"\n    },\n    {\n      \"name\": \"HarpoonDnLeft\"\n    },\n    {\n      \"name\": \"HarpoonDnRight\"\n    },\n    {\n      \"name\": \"HarpoonUpLeft\"\n    },\n    {\n      \"name\": \"HarpoonUpRight\"\n    },\n    {\n      \"name\": \"HdnExists\"\n    },\n    {\n      \"name\": \"HdnForAll\"\n    },\n    {\n      \"name\": \"HookArrowLeft\"\n    },\n    {\n      \"name\": \"HookArrowRight\"\n    },\n    {\n      \"name\": \"HorizontallyDividedCircle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedCurvedDiamond\"\n    },\n    {\n      \"name\": \"HorizontallyDividedDiamond\"\n    },\n    {\n      \"name\": \"HorizontallyDividedDownTriangle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedLeftTriangle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedLozenge\"\n    },\n    {\n      \"name\": \"HorizontallyDividedRightTriangle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedSmallCircle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedSquare\"\n    },\n    {\n      \"name\": \"HorizontallyDividedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"HorizontallyDividedUpTriangle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedVerySmallCircle\"\n    },\n    {\n      \"name\": \"HorizontallyDividedVerySmallSquare\"\n    },\n    {\n      \"name\": \"Impl\"\n    },\n    {\n      \"name\": \"In\"\n    },\n    {\n      \"name\": \"InCoh\"\n    },\n    {\n      \"name\": \"InEquv\"\n    },\n    {\n      \"name\": \"Infin\"\n    },\n    {\n      \"name\": \"InImpl\"\n    },\n    {\n      \"name\": \"InvNt\"\n    },\n    {\n      \"name\": \"LBlackCircle\"\n    },\n    {\n      \"name\": \"LBlackCurvedDiamond\"\n    },\n    {\n      \"name\": \"LBlackDiamond\"\n    },\n    {\n      \"name\": \"LBlackDownTriangle\"\n    },\n    {\n      \"name\": \"LBlackLeftArrowHead\"\n    },\n    {\n      \"name\": \"LBlackLeftTriangle\"\n    },\n    {\n      \"name\": \"LBlackLozenge\"\n    },\n    {\n      \"name\": \"LBlackRightArrowHead\"\n    },\n    {\n      \"name\": \"LBlackRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"LBlackRightTriangle\"\n    },\n    {\n      \"name\": \"LBlackSmallCircle\"\n    },\n    {\n      \"name\": \"LBlackSquare\"\n    },\n    {\n      \"name\": \"LBlackSquareRoundCorners\"\n    },\n    {\n      \"name\": \"LBlackUpTriangle\"\n    },\n    {\n      \"name\": \"LBlackVerySmallCircle\"\n    },\n    {\n      \"name\": \"LBlackVerySmallSquare\"\n    },\n    {\n      \"name\": \"LcgBistab\"\n    },\n    {\n      \"name\": \"LDots\"\n    },\n    {\n      \"name\": \"LeftSlash\"\n    },\n    {\n      \"name\": \"LEntail\"\n    },\n    {\n      \"name\": \"LEntailEquv\"\n    },\n    {\n      \"name\": \"LEquv\"\n    },\n    {\n      \"name\": \"LFunc\"\n    },\n    {\n      \"name\": \"LgCircPlus\"\n    },\n    {\n      \"name\": \"LgCircStar\"\n    },\n    {\n      \"name\": \"LgCircTimes\"\n    },\n    {\n      \"name\": \"LImpl\"\n    },\n    {\n      \"name\": \"LInEquv\"\n    },\n    {\n      \"name\": \"LInImpl\"\n    },\n    {\n      \"name\": \"LMapTo\"\n    },\n    {\n      \"name\": \"LMtEquv\"\n    },\n    {\n      \"name\": \"LMtImpl\"\n    },\n    {\n      \"name\": \"Lnand\"\n    },\n    {\n      \"name\": \"LngVrtBar\"\n    },\n    {\n      \"name\": \"Lnor\"\n    },\n    {\n      \"name\": \"LogCont\"\n    },\n    {\n      \"name\": \"LogFutr\"\n    },\n    {\n      \"name\": \"LogNec\"\n    },\n    {\n      \"name\": \"LogNext\"\n    },\n    {\n      \"name\": \"LogNonCont\"\n    },\n    {\n      \"name\": \"LogPast\"\n    },\n    {\n      \"name\": \"LogPos\"\n    },\n    {\n      \"name\": \"LoopArrowLeft\"\n    },\n    {\n      \"name\": \"LoopArrowRight\"\n    },\n    {\n      \"name\": \"LParFunc\"\n    },\n    {\n      \"name\": \"Ls\"\n    },\n    {\n      \"name\": \"Lse\"\n    },\n    {\n      \"name\": \"LstFix\"\n    },\n    {\n      \"name\": \"LWhiteCircle\"\n    },\n    {\n      \"name\": \"LWhiteCurvedDiamond\"\n    },\n    {\n      \"name\": \"LWhiteDiamond\"\n    },\n    {\n      \"name\": \"LWhiteDownTriangle\"\n    },\n    {\n      \"name\": \"LWhiteLeftArrowHead\"\n    },\n    {\n      \"name\": \"LWhiteLeftTriangle\"\n    },\n    {\n      \"name\": \"LWhiteLozenge\"\n    },\n    {\n      \"name\": \"LWhiteRightArrowHead\"\n    },\n    {\n      \"name\": \"LWhiteRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"LWhiteRightTriangle\"\n    },\n    {\n      \"name\": \"LWhiteSmallCircle\"\n    },\n    {\n      \"name\": \"LWhiteSquare\"\n    },\n    {\n      \"name\": \"LWhiteSquareRoundCorners\"\n    },\n    {\n      \"name\": \"LWhiteUpTriangle\"\n    },\n    {\n      \"name\": \"LWhiteVerySmallCircle\"\n    },\n    {\n      \"name\": \"LWhiteVerySmallSquare\"\n    },\n    {\n      \"name\": \"LWkEntail\"\n    },\n    {\n      \"name\": \"LWkEntailEquv\"\n    },\n    {\n      \"name\": \"LWkEquv\"\n    },\n    {\n      \"name\": \"LWkImpl\"\n    },\n    {\n      \"name\": \"LWkMtEquv\"\n    },\n    {\n      \"name\": \"LWkMtImpl\"\n    },\n    {\n      \"name\": \"Lxor\"\n    },\n    {\n      \"name\": \"MapComp\"\n    },\n    {\n      \"name\": \"MapJoin\"\n    },\n    {\n      \"name\": \"MapMeet\"\n    },\n    {\n      \"name\": \"MapParInGndMul\"\n    },\n    {\n      \"name\": \"MapParInGndOne\"\n    },\n    {\n      \"name\": \"MapParInGndSng\"\n    },\n    {\n      \"name\": \"MapParInMul\"\n    },\n    {\n      \"name\": \"MapParInOne\"\n    },\n    {\n      \"name\": \"MapParInSng\"\n    },\n    {\n      \"name\": \"MapParOnGndMul\"\n    },\n    {\n      \"name\": \"MapParOnGndOne\"\n    },\n    {\n      \"name\": \"MapParOnGndSng\"\n    },\n    {\n      \"name\": \"MapParOnMul\"\n    },\n    {\n      \"name\": \"MapParOnOne\"\n    },\n    {\n      \"name\": \"MapParOnSng\"\n    },\n    {\n      \"name\": \"MapTo\"\n    },\n    {\n      \"name\": \"MapTotInGndMul\"\n    },\n    {\n      \"name\": \"MapTotInGndOne\"\n    },\n    {\n      \"name\": \"MapTotInGndSng\"\n    },\n    {\n      \"name\": \"MapTotInMul\"\n    },\n    {\n      \"name\": \"MapTotInOne\"\n    },\n    {\n      \"name\": \"MapTotInSng\"\n    },\n    {\n      \"name\": \"MapTotOnGndMul\"\n    },\n    {\n      \"name\": \"MapTotOnGndOne\"\n    },\n    {\n      \"name\": \"MapTotOnGndSng\"\n    },\n    {\n      \"name\": \"MapTotOnMul\"\n    },\n    {\n      \"name\": \"MapTotOnOne\"\n    },\n    {\n      \"name\": \"MapTotOnSng\"\n    },\n    {\n      \"name\": \"Minus\"\n    },\n    {\n      \"name\": \"MinusPlus\"\n    },\n    {\n      \"name\": \"Mnd\"\n    },\n    {\n      \"name\": \"Mnd\"\n    },\n    {\n      \"name\": \"Model\"\n    },\n    {\n      \"name\": \"Mor\"\n    },\n    {\n      \"name\": \"MtEquv\"\n    },\n    {\n      \"name\": \"MtImpl\"\n    },\n    {\n      \"name\": \"MulMap\"\n    },\n    {\n      \"name\": \"MulMapDual\"\n    },\n    {\n      \"name\": \"MulMapInv\"\n    },\n    {\n      \"name\": \"Nand\"\n    },\n    {\n      \"name\": \"Nd\"\n    },\n    {\n      \"name\": \"Nec\"\n    },\n    {\n      \"name\": \"Next\"\n    },\n    {\n      \"name\": \"NFalse\"\n    },\n    {\n      \"name\": \"Ngt\"\n    },\n    {\n      \"name\": \"NonCont\"\n    },\n    {\n      \"name\": \"Nor\"\n    },\n    {\n      \"name\": \"Normal\"\n    },\n    {\n      \"name\": \"NoSpace\"\n    },\n    {\n      \"name\": \"NotClsEquv\"\n    },\n    {\n      \"name\": \"NotClsImpl\"\n    },\n    {\n      \"name\": \"NotConseq\"\n    },\n    {\n      \"name\": \"NotDTrpTurn\"\n    },\n    {\n      \"name\": \"NotDTurnDWavy\"\n    },\n    {\n      \"name\": \"NotDTurnWavy\"\n    },\n    {\n      \"name\": \"NotEntail\"\n    },\n    {\n      \"name\": \"NotEntailEquv\"\n    },\n    {\n      \"name\": \"NotEq\"\n    },\n    {\n      \"name\": \"NotEquv\"\n    },\n    {\n      \"name\": \"NotFntSbset\"\n    },\n    {\n      \"name\": \"NotGr\"\n    },\n    {\n      \"name\": \"NotGre\"\n    },\n    {\n      \"name\": \"NotImpl\"\n    },\n    {\n      \"name\": \"NotIn\"\n    },\n    {\n      \"name\": \"NotInEquv\"\n    },\n    {\n      \"name\": \"NotInImpl\"\n    },\n    {\n      \"name\": \"NotLEntail\"\n    },\n    {\n      \"name\": \"NotLEntailEquv\"\n    },\n    {\n      \"name\": \"NotLEquv\"\n    },\n    {\n      \"name\": \"NotLImpl\"\n    },\n    {\n      \"name\": \"NotLInEquv\"\n    },\n    {\n      \"name\": \"NotLInImpl\"\n    },\n    {\n      \"name\": \"NotLMtEquv\"\n    },\n    {\n      \"name\": \"NotLMtImpl\"\n    },\n    {\n      \"name\": \"NotLs\"\n    },\n    {\n      \"name\": \"NotLse\"\n    },\n    {\n      \"name\": \"NotLWkEntail\"\n    },\n    {\n      \"name\": \"NotLWkEntailEquv\"\n    },\n    {\n      \"name\": \"NotLWkEquv\"\n    },\n    {\n      \"name\": \"NotLWkImpl\"\n    },\n    {\n      \"name\": \"NotLWkMtEquv\"\n    },\n    {\n      \"name\": \"NotLWkMtImpl\"\n    },\n    {\n      \"name\": \"NotModel\"\n    },\n    {\n      \"name\": \"NotMtEquv\"\n    },\n    {\n      \"name\": \"NotMtImpl\"\n    },\n    {\n      \"name\": \"NotMulMap\"\n    },\n    {\n      \"name\": \"NotMulMapDual\"\n    },\n    {\n      \"name\": \"NotMulMapInv\"\n    },\n    {\n      \"name\": \"NotOwns\"\n    },\n    {\n      \"name\": \"NotPre\"\n    },\n    {\n      \"name\": \"NotPreq\"\n    },\n    {\n      \"name\": \"NotRule\"\n    },\n    {\n      \"name\": \"NotSbGr\"\n    },\n    {\n      \"name\": \"NotSbGre\"\n    },\n    {\n      \"name\": \"NotSbLs\"\n    },\n    {\n      \"name\": \"NotSbLse\"\n    },\n    {\n      \"name\": \"NotSbmap\"\n    },\n    {\n      \"name\": \"NotSbnch\"\n    },\n    {\n      \"name\": \"NotSbset\"\n    },\n    {\n      \"name\": \"NotSEntail\"\n    },\n    {\n      \"name\": \"NotSEntailEquv\"\n    },\n    {\n      \"name\": \"NotSeq\"\n    },\n    {\n      \"name\": \"NotSEquv\"\n    },\n    {\n      \"name\": \"NotSImpl\"\n    },\n    {\n      \"name\": \"NotSInEquv\"\n    },\n    {\n      \"name\": \"NotSInImpl\"\n    },\n    {\n      \"name\": \"NotSm\"\n    },\n    {\n      \"name\": \"NotSMtEquv\"\n    },\n    {\n      \"name\": \"NotSMtImpl\"\n    },\n    {\n      \"name\": \"NotStrctFntSbset\"\n    },\n    {\n      \"name\": \"NotStrctSbmap\"\n    },\n    {\n      \"name\": \"NotStrctSbnch\"\n    },\n    {\n      \"name\": \"NotStrctSbset\"\n    },\n    {\n      \"name\": \"NotStrctWkSbnch\"\n    },\n    {\n      \"name\": \"NotSuc\"\n    },\n    {\n      \"name\": \"NotSucq\"\n    },\n    {\n      \"name\": \"NotSWkEntail\"\n    },\n    {\n      \"name\": \"NotSWkEntailEquv\"\n    },\n    {\n      \"name\": \"NotSWkEquv\"\n    },\n    {\n      \"name\": \"NotSWkImpl\"\n    },\n    {\n      \"name\": \"NotSWkMtEquv\"\n    },\n    {\n      \"name\": \"NotSWkMtImpl\"\n    },\n    {\n      \"name\": \"NotTrpTurn\"\n    },\n    {\n      \"name\": \"NotTurn\"\n    },\n    {\n      \"name\": \"NotTurnDWavy\"\n    },\n    {\n      \"name\": \"NotTurnWavy\"\n    },\n    {\n      \"name\": \"NotVEntail\"\n    },\n    {\n      \"name\": \"NotVEntailEquv\"\n    },\n    {\n      \"name\": \"NotVEquv\"\n    },\n    {\n      \"name\": \"NotVImpl\"\n    },\n    {\n      \"name\": \"NotVInEquv\"\n    },\n    {\n      \"name\": \"NotVInImpl\"\n    },\n    {\n      \"name\": \"NotVMtEquv\"\n    },\n    {\n      \"name\": \"NotVMtImpl\"\n    },\n    {\n      \"name\": \"NotVWkEntail\"\n    },\n    {\n      \"name\": \"NotVWkEntailEquv\"\n    },\n    {\n      \"name\": \"NotVWkEquv\"\n    },\n    {\n      \"name\": \"NotVWkImpl\"\n    },\n    {\n      \"name\": \"NotVWkMtEquv\"\n    },\n    {\n      \"name\": \"NotVWkMtImpl\"\n    },\n    {\n      \"name\": \"NotWkEntail\"\n    },\n    {\n      \"name\": \"NotWkEntailEquv\"\n    },\n    {\n      \"name\": \"NotWkEquv\"\n    },\n    {\n      \"name\": \"NotWkImpl\"\n    },\n    {\n      \"name\": \"NotWkMtEquv\"\n    },\n    {\n      \"name\": \"NotWkMtImpl\"\n    },\n    {\n      \"name\": \"NotWkSbnch\"\n    },\n    {\n      \"name\": \"NotXEntail\"\n    },\n    {\n      \"name\": \"NotXEntailEquv\"\n    },\n    {\n      \"name\": \"NotXEquv\"\n    },\n    {\n      \"name\": \"NotXImpl\"\n    },\n    {\n      \"name\": \"NotXInEquv\"\n    },\n    {\n      \"name\": \"NotXInImpl\"\n    },\n    {\n      \"name\": \"NotXMtEquv\"\n    },\n    {\n      \"name\": \"NotXMtImpl\"\n    },\n    {\n      \"name\": \"NotXWkEntail\"\n    },\n    {\n      \"name\": \"NotXWkEntailEquv\"\n    },\n    {\n      \"name\": \"NotXWkEquv\"\n    },\n    {\n      \"name\": \"NotXWkImpl\"\n    },\n    {\n      \"name\": \"NotXWkMtEquv\"\n    },\n    {\n      \"name\": \"NotXWkMtImpl\"\n    },\n    {\n      \"name\": \"Nt\"\n    },\n    {\n      \"name\": \"NtExists\"\n    },\n    {\n      \"name\": \"NTrue\"\n    },\n    {\n      \"name\": \"NullSet\"\n    },\n    {\n      \"name\": \"Numbr\"\n    },\n    {\n      \"name\": \"Of\"\n    },\n    {\n      \"name\": \"OfCrse\"\n    },\n    {\n      \"name\": \"Or\"\n    },\n    {\n      \"name\": \"OutlineCircle\"\n    },\n    {\n      \"name\": \"OutlineCurvedDiamond\"\n    },\n    {\n      \"name\": \"OutlineDiamond\"\n    },\n    {\n      \"name\": \"OutlineDownTriangle\"\n    },\n    {\n      \"name\": \"OutlineLeftArrowHead\"\n    },\n    {\n      \"name\": \"OutlineLeftTriangle\"\n    },\n    {\n      \"name\": \"OutlineLozenge\"\n    },\n    {\n      \"name\": \"OutlineRightArrowHead\"\n    },\n    {\n      \"name\": \"OutlineRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"OutlineRightTriangle\"\n    },\n    {\n      \"name\": \"OutlineSmallCircle\"\n    },\n    {\n      \"name\": \"OutlineSquare\"\n    },\n    {\n      \"name\": \"OutlineSquareRoundCorners\"\n    },\n    {\n      \"name\": \"OutlineUpTriangle\"\n    },\n    {\n      \"name\": \"OutlineVerySmallCircle\"\n    },\n    {\n      \"name\": \"OutlineVerySmallSquare\"\n    },\n    {\n      \"name\": \"Owns\"\n    },\n    {\n      \"name\": \"ParFunc\"\n    },\n    {\n      \"name\": \"Past\"\n    },\n    {\n      \"name\": \"Percnt\"\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"Pls\"\n    },\n    {\n      \"name\": \"PlusMinus\"\n    },\n    {\n      \"name\": \"Pos\"\n    },\n    {\n      \"name\": \"Pre\"\n    },\n    {\n      \"name\": \"Preq\"\n    },\n    {\n      \"name\": \"Qed\"\n    },\n    {\n      \"name\": \"QuantAAnd\"\n    },\n    {\n      \"name\": \"QuantBnchJoin\"\n    },\n    {\n      \"name\": \"QuantBnchMeet\"\n    },\n    {\n      \"name\": \"QuantCon\"\n    },\n    {\n      \"name\": \"QuantDis\"\n    },\n    {\n      \"name\": \"QuantMor\"\n    },\n    {\n      \"name\": \"QuantSetJoin\"\n    },\n    {\n      \"name\": \"QuantSetMeet\"\n    },\n    {\n      \"name\": \"QuartedLozenge\"\n    },\n    {\n      \"name\": \"QuarteredCircle\"\n    },\n    {\n      \"name\": \"QuarteredCurvedDiamond\"\n    },\n    {\n      \"name\": \"QuarteredDiamond\"\n    },\n    {\n      \"name\": \"QuarteredDownTriangle\"\n    },\n    {\n      \"name\": \"QuarteredLeftTriangle\"\n    },\n    {\n      \"name\": \"QuarteredRightTriangle\"\n    },\n    {\n      \"name\": \"QuarteredSmallCircle\"\n    },\n    {\n      \"name\": \"QuarteredSquare\"\n    },\n    {\n      \"name\": \"QuarteredSquareRoundCorners\"\n    },\n    {\n      \"name\": \"QuarteredUpTriangle\"\n    },\n    {\n      \"name\": \"QuarteredVerySmallCircle\"\n    },\n    {\n      \"name\": \"QuarteredVerySmallSquare\"\n    },\n    {\n      \"name\": \"Queston\"\n    },\n    {\n      \"name\": \"RightSlash\"\n    },\n    {\n      \"name\": \"RplcAll\"\n    },\n    {\n      \"name\": \"RplcAllBnd\"\n    },\n    {\n      \"name\": \"RplcAllBndLeft\"\n    },\n    {\n      \"name\": \"RplcAllBndRight\"\n    },\n    {\n      \"name\": \"RplcAllLeft\"\n    },\n    {\n      \"name\": \"RplcAllRight\"\n    },\n    {\n      \"name\": \"RplcAny\"\n    },\n    {\n      \"name\": \"RplcAnyLeft\"\n    },\n    {\n      \"name\": \"RplcAnyRight\"\n    },\n    {\n      \"name\": \"RplcEquv\"\n    },\n    {\n      \"name\": \"RplcEquvLeft\"\n    },\n    {\n      \"name\": \"RplcEquvRight\"\n    },\n    {\n      \"name\": \"RplcFree\"\n    },\n    {\n      \"name\": \"RplcFreeLeft\"\n    },\n    {\n      \"name\": \"RplcFreeRight\"\n    },\n    {\n      \"name\": \"Rule\"\n    },\n    {\n      \"name\": \"SbGr\"\n    },\n    {\n      \"name\": \"SbGre\"\n    },\n    {\n      \"name\": \"SbLs\"\n    },\n    {\n      \"name\": \"SbLse\"\n    },\n    {\n      \"name\": \"Sbmap\"\n    },\n    {\n      \"name\": \"SbNand\"\n    },\n    {\n      \"name\": \"Sbnch\"\n    },\n    {\n      \"name\": \"SbNd\"\n    },\n    {\n      \"name\": \"SbNor\"\n    },\n    {\n      \"name\": \"SbOr\"\n    },\n    {\n      \"name\": \"Sbset\"\n    },\n    {\n      \"name\": \"SbXor\"\n    },\n    {\n      \"name\": \"SCoh\"\n    },\n    {\n      \"name\": \"Semicln\"\n    },\n    {\n      \"name\": \"SEntail\"\n    },\n    {\n      \"name\": \"SEntailEquv\"\n    },\n    {\n      \"name\": \"Seq\"\n    },\n    {\n      \"name\": \"SEquv\"\n    },\n    {\n      \"name\": \"SetJoin\"\n    },\n    {\n      \"name\": \"SetMeet\"\n    },\n    {\n      \"name\": \"SetSymDiff\"\n    },\n    {\n      \"name\": \"SFunc\"\n    },\n    {\n      \"name\": \"Shfr\"\n    },\n    {\n      \"name\": \"ShftAccent\"\n    },\n    {\n      \"name\": \"ShftSubscr\"\n    },\n    {\n      \"name\": \"ShftSuper\"\n    },\n    {\n      \"name\": \"SimPerp\"\n    },\n    {\n      \"name\": \"SImpl\"\n    },\n    {\n      \"name\": \"Since\"\n    },\n    {\n      \"name\": \"SInCoh\"\n    },\n    {\n      \"name\": \"SInEquv\"\n    },\n    {\n      \"name\": \"SingleQuote\"\n    },\n    {\n      \"name\": \"SInImpl\"\n    },\n    {\n      \"name\": \"Sm\"\n    },\n    {\n      \"name\": \"SMapTo\"\n    },\n    {\n      \"name\": \"SmCircPlus\"\n    },\n    {\n      \"name\": \"SmCircStar\"\n    },\n    {\n      \"name\": \"SmCircTimes\"\n    },\n    {\n      \"name\": \"SMtEquv\"\n    },\n    {\n      \"name\": \"SMtImpl\"\n    },\n    {\n      \"name\": \"SParFunc\"\n    },\n    {\n      \"name\": \"StrctFntSbset\"\n    },\n    {\n      \"name\": \"StrctSbmap\"\n    },\n    {\n      \"name\": \"StrctSbnch\"\n    },\n    {\n      \"name\": \"StrctSbset\"\n    },\n    {\n      \"name\": \"StrctWkSbnch\"\n    },\n    {\n      \"name\": \"Suc\"\n    },\n    {\n      \"name\": \"Sucq\"\n    },\n    {\n      \"name\": \"SWkEntail\"\n    },\n    {\n      \"name\": \"SWkEntailEquv\"\n    },\n    {\n      \"name\": \"SWkEquv\"\n    },\n    {\n      \"name\": \"SWkImpl\"\n    },\n    {\n      \"name\": \"SWkMtEquv\"\n    },\n    {\n      \"name\": \"SWkMtImpl\"\n    },\n    {\n      \"name\": \"TFBoth\"\n    },\n    {\n      \"name\": \"TFNone\"\n    },\n    {\n      \"name\": \"Thus\"\n    },\n    {\n      \"name\": \"Tild\"\n    },\n    {\n      \"name\": \"Times\"\n    },\n    {\n      \"name\": \"TmpCont\"\n    },\n    {\n      \"name\": \"TmpFutr\"\n    },\n    {\n      \"name\": \"TmpNec\"\n    },\n    {\n      \"name\": \"TmpNext\"\n    },\n    {\n      \"name\": \"TmpNonCont\"\n    },\n    {\n      \"name\": \"TmpPast\"\n    },\n    {\n      \"name\": \"TmpPos\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"TripleQuote\"\n    },\n    {\n      \"name\": \"TrpTurn\"\n    },\n    {\n      \"name\": \"True\"\n    },\n    {\n      \"name\": \"Turn\"\n    },\n    {\n      \"name\": \"TurnDWavy\"\n    },\n    {\n      \"name\": \"TurnWavy\"\n    },\n    {\n      \"name\": \"Underscore\"\n    },\n    {\n      \"name\": \"Unique\"\n    },\n    {\n      \"name\": \"UpSlahsedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"UpSlashedCircle\"\n    },\n    {\n      \"name\": \"UpSlashedCurvedDiamond\"\n    },\n    {\n      \"name\": \"UpSlashedDiamond\"\n    },\n    {\n      \"name\": \"UpSlashedDownTriangle\"\n    },\n    {\n      \"name\": \"UpSlashedLeftTriangle\"\n    },\n    {\n      \"name\": \"UpSlashedLozenge\"\n    },\n    {\n      \"name\": \"UpSlashedRightTriangle\"\n    },\n    {\n      \"name\": \"UpSlashedSmallCircle\"\n    },\n    {\n      \"name\": \"UpSlashedSquare\"\n    },\n    {\n      \"name\": \"UpSlashedUpTriangle\"\n    },\n    {\n      \"name\": \"UpSlashedVerySmallCircle\"\n    },\n    {\n      \"name\": \"UpSlashedVerySmallSquare\"\n    },\n    {\n      \"name\": \"VDots\"\n    },\n    {\n      \"name\": \"VeeJoin\"\n    },\n    {\n      \"name\": \"VeeMeet\"\n    },\n    {\n      \"name\": \"VEntail\"\n    },\n    {\n      \"name\": \"VEntailEquv\"\n    },\n    {\n      \"name\": \"VEquv\"\n    },\n    {\n      \"name\": \"VerticallyDividedCircle\"\n    },\n    {\n      \"name\": \"VerticallyDividedCurvedDiamond\"\n    },\n    {\n      \"name\": \"VerticallyDividedDiamond\"\n    },\n    {\n      \"name\": \"VerticallyDividedDownTriangle\"\n    },\n    {\n      \"name\": \"VerticallyDividedLeftTriangle\"\n    },\n    {\n      \"name\": \"VerticallyDividedLozenge\"\n    },\n    {\n      \"name\": \"VerticallyDividedRightTriangle\"\n    },\n    {\n      \"name\": \"VerticallyDividedSmallCircle\"\n    },\n    {\n      \"name\": \"VerticallyDividedSquare\"\n    },\n    {\n      \"name\": \"VerticallyDividedSquareRoundCorners\"\n    },\n    {\n      \"name\": \"VerticallyDividedUpTriangle\"\n    },\n    {\n      \"name\": \"VerticallyDividedVerySmallCircle\"\n    },\n    {\n      \"name\": \"VerticallyDividedVerySmallSquare\"\n    },\n    {\n      \"name\": \"VFunc\"\n    },\n    {\n      \"name\": \"VImpl\"\n    },\n    {\n      \"name\": \"VInEquv\"\n    },\n    {\n      \"name\": \"VInImpl\"\n    },\n    {\n      \"name\": \"VMapTo\"\n    },\n    {\n      \"name\": \"VMtEquv\"\n    },\n    {\n      \"name\": \"VMtImpl\"\n    },\n    {\n      \"name\": \"VoidBunch\"\n    },\n    {\n      \"name\": \"VParFunc\"\n    },\n    {\n      \"name\": \"VWkEntail\"\n    },\n    {\n      \"name\": \"VWkEntailEquv\"\n    },\n    {\n      \"name\": \"VWkEquv\"\n    },\n    {\n      \"name\": \"VWkImpl\"\n    },\n    {\n      \"name\": \"VWkMtEquv\"\n    },\n    {\n      \"name\": \"VWkMtImpl\"\n    },\n    {\n      \"name\": \"WavyArrowLeft\"\n    },\n    {\n      \"name\": \"WavyArrowRight\"\n    },\n    {\n      \"name\": \"WhiteCircle\"\n    },\n    {\n      \"name\": \"WhiteCircleA\"\n    },\n    {\n      \"name\": \"WhiteCircleB\"\n    },\n    {\n      \"name\": \"WhiteCircleC\"\n    },\n    {\n      \"name\": \"WhiteCircleContainingBlackCircle\"\n    },\n    {\n      \"name\": \"WhiteCircleD\"\n    },\n    {\n      \"name\": \"WhiteCircleE\"\n    },\n    {\n      \"name\": \"WhiteCircleF\"\n    },\n    {\n      \"name\": \"WhiteCircleG\"\n    },\n    {\n      \"name\": \"WhiteCircleH\"\n    },\n    {\n      \"name\": \"WhiteCircleI\"\n    },\n    {\n      \"name\": \"WhiteCurvedDiamond\"\n    },\n    {\n      \"name\": \"WhiteCurvedDiamondContainingBlackDiamond\"\n    },\n    {\n      \"name\": \"WhiteDiamond\"\n    },\n    {\n      \"name\": \"WhiteDiamondA\"\n    },\n    {\n      \"name\": \"WhiteDiamondB\"\n    },\n    {\n      \"name\": \"WhiteDiamondC\"\n    },\n    {\n      \"name\": \"WhiteDiamondContainingBlackDiamond\"\n    },\n    {\n      \"name\": \"WhiteDiamondD\"\n    },\n    {\n      \"name\": \"WhiteDiamondE\"\n    },\n    {\n      \"name\": \"WhiteDiamondF\"\n    },\n    {\n      \"name\": \"WhiteDiamondG\"\n    },\n    {\n      \"name\": \"WhiteDiamondH\"\n    },\n    {\n      \"name\": \"WhiteDiamondI\"\n    },\n    {\n      \"name\": \"WhiteDownTriangle\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleA\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleB\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleC\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleContainingBlackDownTriangle\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleD\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleE\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleF\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleG\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleH\"\n    },\n    {\n      \"name\": \"WhiteDownTriangleI\"\n    },\n    {\n      \"name\": \"WhiteLeftArrowHead\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangle\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleA\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleB\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleC\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleContainingBlackLeftTriangle\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleD\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleE\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleF\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleG\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleH\"\n    },\n    {\n      \"name\": \"WhiteLeftTriangleI\"\n    },\n    {\n      \"name\": \"WhiteLozenge\"\n    },\n    {\n      \"name\": \"WhiteLozengeContainingBlackLozenge\"\n    },\n    {\n      \"name\": \"WhiteReallySmallCircle\"\n    },\n    {\n      \"name\": \"WhiteReallySmallDiamond\"\n    },\n    {\n      \"name\": \"WhiteReallySmallSquare\"\n    },\n    {\n      \"name\": \"WhiteRightArrowHead\"\n    },\n    {\n      \"name\": \"WhiteRightCurvedArrowHead\"\n    },\n    {\n      \"name\": \"WhiteRightTriangle\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleA\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleB\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleC\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleContainingBlackRightTriangle\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleD\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleE\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleF\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleG\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleH\"\n    },\n    {\n      \"name\": \"WhiteRightTriangleI\"\n    },\n    {\n      \"name\": \"WhiteSmallCircle\"\n    },\n    {\n      \"name\": \"WhiteSmallCircleContainingBlackCircle\"\n    },\n    {\n      \"name\": \"WhiteSquare\"\n    },\n    {\n      \"name\": \"WhiteSquareA\"\n    },\n    {\n      \"name\": \"WhiteSquareB\"\n    },\n    {\n      \"name\": \"WhiteSquareC\"\n    },\n    {\n      \"name\": \"WhiteSquareContainingBlackSquare\"\n    },\n    {\n      \"name\": \"WhiteSquareD\"\n    },\n    {\n      \"name\": \"WhiteSquareE\"\n    },\n    {\n      \"name\": \"WhiteSquareF\"\n    },\n    {\n      \"name\": \"WhiteSquareG\"\n    },\n    {\n      \"name\": \"WhiteSquareH\"\n    },\n    {\n      \"name\": \"WhiteSquareI\"\n    },\n    {\n      \"name\": \"WhiteSquareRoundCorners\"\n    },\n    {\n      \"name\": \"WhiteSquareRoundCornersContainingBlackSquare\"\n    },\n    {\n      \"name\": \"WhiteUpTriangle\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleA\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleB\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleC\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleContainingBlackUpTriangle\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleD\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleE\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleF\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleG\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleH\"\n    },\n    {\n      \"name\": \"WhiteUpTriangleI\"\n    },\n    {\n      \"name\": \"WhiteVerySmallCircle\"\n    },\n    {\n      \"name\": \"WhiteVerySmallCircleContainingBlackCircle\"\n    },\n    {\n      \"name\": \"WhiteVerySmallSquare\"\n    },\n    {\n      \"name\": \"WhiteVerySmallSquareContainingBlackSquare\"\n    },\n    {\n      \"name\": \"WhyNot\"\n    },\n    {\n      \"name\": \"WkEntail\"\n    },\n    {\n      \"name\": \"WkEntailEquv\"\n    },\n    {\n      \"name\": \"WkEquv\"\n    },\n    {\n      \"name\": \"WkImpl\"\n    },\n    {\n      \"name\": \"WkMtEquv\"\n    },\n    {\n      \"name\": \"WkMtImpl\"\n    },\n    {\n      \"name\": \"WkSbnch\"\n    },\n    {\n      \"name\": \"XEntail\"\n    },\n    {\n      \"name\": \"XEntailEquv\"\n    },\n    {\n      \"name\": \"XEquv\"\n    },\n    {\n      \"name\": \"XFunc\"\n    },\n    {\n      \"name\": \"XImpl\"\n    },\n    {\n      \"name\": \"XInEquv\"\n    },\n    {\n      \"name\": \"XInImpl\"\n    },\n    {\n      \"name\": \"XMapTo\"\n    },\n    {\n      \"name\": \"XMtEquv\"\n    },\n    {\n      \"name\": \"XMtImpl\"\n    },\n    {\n      \"name\": \"Xor\"\n    },\n    {\n      \"name\": \"XParFunc\"\n    },\n    {\n      \"name\": \"XWkEntail\"\n    },\n    {\n      \"name\": \"XWkEntailEquv\"\n    },\n    {\n      \"name\": \"XWkEquv\"\n    },\n    {\n      \"name\": \"XWkImpl\"\n    },\n    {\n      \"name\": \"XWkMtEquv\"\n    },\n    {\n      \"name\": \"XWkMtImpl\"\n    },\n    {\n      \"name\": \"ZigArrowLeft\"\n    },\n    {\n      \"name\": \"ZigArrowRight\"\n    },\n    {\n      \"name\": \"OpnAngl\"\n    },\n    {\n      \"name\": \"OpnAnglS\"\n    },\n    {\n      \"name\": \"OpnAnglA\"\n    },\n    {\n      \"name\": \"OpnAnglB\"\n    },\n    {\n      \"name\": \"OpnAnglC\"\n    },\n    {\n      \"name\": \"OpnAnglD\"\n    },\n    {\n      \"name\": \"OpnAnglE\"\n    },\n    {\n      \"name\": \"OpnAnglF\"\n    },\n    {\n      \"name\": \"OpnAnglG\"\n    },\n    {\n      \"name\": \"OpnAnglH\"\n    },\n    {\n      \"name\": \"OpnAnglI\"\n    },\n    {\n      \"name\": \"OpnAnglJ\"\n    },\n    {\n      \"name\": \"OpnAnglK\"\n    },\n    {\n      \"name\": \"OpnAnglL\"\n    },\n    {\n      \"name\": \"OpnAnglM\"\n    },\n    {\n      \"name\": \"OpnAnglN\"\n    },\n    {\n      \"name\": \"OpnAnglO\"\n    },\n    {\n      \"name\": \"OpnAnglP\"\n    },\n    {\n      \"name\": \"OpnAnglBar\"\n    },\n    {\n      \"name\": \"OpnAnglBarS\"\n    },\n    {\n      \"name\": \"OpnAnglBarA\"\n    },\n    {\n      \"name\": \"OpnAnglBarB\"\n    },\n    {\n      \"name\": \"OpnAnglBarC\"\n    },\n    {\n      \"name\": \"OpnAnglBarD\"\n    },\n    {\n      \"name\": \"OpnAnglBarE\"\n    },\n    {\n      \"name\": \"OpnAnglBarF\"\n    },\n    {\n      \"name\": \"OpnAnglBarG\"\n    },\n    {\n      \"name\": \"OpnAnglBarH\"\n    },\n    {\n      \"name\": \"OpnAnglBarI\"\n    },\n    {\n      \"name\": \"OpnAnglBarJ\"\n    },\n    {\n      \"name\": \"OpnAnglBarK\"\n    },\n    {\n      \"name\": \"OpnAnglBarL\"\n    },\n    {\n      \"name\": \"OpnAnglBarM\"\n    },\n    {\n      \"name\": \"OpnAnglBarN\"\n    },\n    {\n      \"name\": \"OpnAnglBarO\"\n    },\n    {\n      \"name\": \"OpnAnglBarP\"\n    },\n    {\n      \"name\": \"OpnArrwBrac\"\n    },\n    {\n      \"name\": \"OpnArrwBracS\"\n    },\n    {\n      \"name\": \"OpnArrwBracA\"\n    },\n    {\n      \"name\": \"OpnArrwBracB\"\n    },\n    {\n      \"name\": \"OpnArrwBracC\"\n    },\n    {\n      \"name\": \"OpnArrwBracD\"\n    },\n    {\n      \"name\": \"OpnArrwBracE\"\n    },\n    {\n      \"name\": \"OpnArrwBracF\"\n    },\n    {\n      \"name\": \"OpnArrwBracG\"\n    },\n    {\n      \"name\": \"OpnArrwBracH\"\n    },\n    {\n      \"name\": \"OpnArrwBracI\"\n    },\n    {\n      \"name\": \"OpnArrwBracJ\"\n    },\n    {\n      \"name\": \"OpnArrwBracK\"\n    },\n    {\n      \"name\": \"OpnArrwBracL\"\n    },\n    {\n      \"name\": \"OpnBar\"\n    },\n    {\n      \"name\": \"OpnBarS\"\n    },\n    {\n      \"name\": \"OpnBarA\"\n    },\n    {\n      \"name\": \"OpnBarB\"\n    },\n    {\n      \"name\": \"OpnBarC\"\n    },\n    {\n      \"name\": \"OpnBarD\"\n    },\n    {\n      \"name\": \"OpnBarE\"\n    },\n    {\n      \"name\": \"OpnBarF\"\n    },\n    {\n      \"name\": \"OpnBarG\"\n    },\n    {\n      \"name\": \"OpnBarH\"\n    },\n    {\n      \"name\": \"OpnBarI\"\n    },\n    {\n      \"name\": \"OpnBarJ\"\n    },\n    {\n      \"name\": \"OpnBarK\"\n    },\n    {\n      \"name\": \"OpnBarL\"\n    },\n    {\n      \"name\": \"OpnBrac\"\n    },\n    {\n      \"name\": \"OpnBracS\"\n    },\n    {\n      \"name\": \"OpnBracA\"\n    },\n    {\n      \"name\": \"OpnBracB\"\n    },\n    {\n      \"name\": \"OpnBracC\"\n    },\n    {\n      \"name\": \"OpnBracD\"\n    },\n    {\n      \"name\": \"OpnBracE\"\n    },\n    {\n      \"name\": \"OpnBracF\"\n    },\n    {\n      \"name\": \"OpnBracG\"\n    },\n    {\n      \"name\": \"OpnBracH\"\n    },\n    {\n      \"name\": \"OpnBracI\"\n    },\n    {\n      \"name\": \"OpnBracJ\"\n    },\n    {\n      \"name\": \"OpnBracK\"\n    },\n    {\n      \"name\": \"OpnBracL\"\n    },\n    {\n      \"name\": \"OpnBracBar\"\n    },\n    {\n      \"name\": \"OpnBracBarS\"\n    },\n    {\n      \"name\": \"OpnBracBarA\"\n    },\n    {\n      \"name\": \"OpnBracBarB\"\n    },\n    {\n      \"name\": \"OpnBracBarC\"\n    },\n    {\n      \"name\": \"OpnBracBarD\"\n    },\n    {\n      \"name\": \"OpnBracBarE\"\n    },\n    {\n      \"name\": \"OpnBracBarF\"\n    },\n    {\n      \"name\": \"OpnBracBarG\"\n    },\n    {\n      \"name\": \"OpnBracBarH\"\n    },\n    {\n      \"name\": \"OpnBracBarI\"\n    },\n    {\n      \"name\": \"OpnBracBarJ\"\n    },\n    {\n      \"name\": \"OpnBracBarK\"\n    },\n    {\n      \"name\": \"OpnBracBarL\"\n    },\n    {\n      \"name\": \"OpnBrknBrac\"\n    },\n    {\n      \"name\": \"OpnBrknBracS\"\n    },\n    {\n      \"name\": \"OpnBrknBracA\"\n    },\n    {\n      \"name\": \"OpnBrknBracB\"\n    },\n    {\n      \"name\": \"OpnBrknBracC\"\n    },\n    {\n      \"name\": \"OpnBrknBracD\"\n    },\n    {\n      \"name\": \"OpnBrknBracE\"\n    },\n    {\n      \"name\": \"OpnBrknBracF\"\n    },\n    {\n      \"name\": \"OpnBrknBracG\"\n    },\n    {\n      \"name\": \"OpnBrknBracH\"\n    },\n    {\n      \"name\": \"OpnBrknBracI\"\n    },\n    {\n      \"name\": \"OpnBrknBracJ\"\n    },\n    {\n      \"name\": \"OpnBrknBracK\"\n    },\n    {\n      \"name\": \"OpnBrknBracL\"\n    },\n    {\n      \"name\": \"OpnBrknBracBar\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarS\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarA\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarB\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarC\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarD\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarE\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarF\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarG\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarH\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarI\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarJ\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarK\"\n    },\n    {\n      \"name\": \"OpnBrknBracBarL\"\n    },\n    {\n      \"name\": \"OpnBrknBrkt\"\n    },\n    {\n      \"name\": \"OpnBrknBrktS\"\n    },\n    {\n      \"name\": \"OpnBrknBrktA\"\n    },\n    {\n      \"name\": \"OpnBrknBrktB\"\n    },\n    {\n      \"name\": \"OpnBrknBrktC\"\n    },\n    {\n      \"name\": \"OpnBrknBrktD\"\n    },\n    {\n      \"name\": \"OpnBrknBrktE\"\n    },\n    {\n      \"name\": \"OpnBrknBrktF\"\n    },\n    {\n      \"name\": \"OpnBrknBrktG\"\n    },\n    {\n      \"name\": \"OpnBrknBrktH\"\n    },\n    {\n      \"name\": \"OpnBrknBrktI\"\n    },\n    {\n      \"name\": \"OpnBrknBrktJ\"\n    },\n    {\n      \"name\": \"OpnBrknBrktK\"\n    },\n    {\n      \"name\": \"OpnBrknBrktL\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBar\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarS\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarA\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarB\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarC\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarD\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarE\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarF\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarG\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarH\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarI\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarJ\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarK\"\n    },\n    {\n      \"name\": \"OpnBrknBrktBarL\"\n    },\n    {\n      \"name\": \"OpnBrkt\"\n    },\n    {\n      \"name\": \"OpnBrktS\"\n    },\n    {\n      \"name\": \"OpnBrktA\"\n    },\n    {\n      \"name\": \"OpnBrktB\"\n    },\n    {\n      \"name\": \"OpnBrktC\"\n    },\n    {\n      \"name\": \"OpnBrktD\"\n    },\n    {\n      \"name\": \"OpnBrktE\"\n    },\n    {\n      \"name\": \"OpnBrktF\"\n    },\n    {\n      \"name\": \"OpnBrktG\"\n    },\n    {\n      \"name\": \"OpnBrktH\"\n    },\n    {\n      \"name\": \"OpnBrktI\"\n    },\n    {\n      \"name\": \"OpnBrktJ\"\n    },\n    {\n      \"name\": \"OpnBrktK\"\n    },\n    {\n      \"name\": \"OpnBrktL\"\n    },\n    {\n      \"name\": \"OpnBrktBar\"\n    },\n    {\n      \"name\": \"OpnBrktBarS\"\n    },\n    {\n      \"name\": \"OpnBrktBarA\"\n    },\n    {\n      \"name\": \"OpnBrktBarB\"\n    },\n    {\n      \"name\": \"OpnBrktBarC\"\n    },\n    {\n      \"name\": \"OpnBrktBarD\"\n    },\n    {\n      \"name\": \"OpnBrktBarE\"\n    },\n    {\n      \"name\": \"OpnBrktBarF\"\n    },\n    {\n      \"name\": \"OpnBrktBarG\"\n    },\n    {\n      \"name\": \"OpnBrktBarH\"\n    },\n    {\n      \"name\": \"OpnBrktBarI\"\n    },\n    {\n      \"name\": \"OpnBrktBarJ\"\n    },\n    {\n      \"name\": \"OpnBrktBarK\"\n    },\n    {\n      \"name\": \"OpnBrktBarL\"\n    },\n    {\n      \"name\": \"OpnCeil\"\n    },\n    {\n      \"name\": \"OpnCeilS\"\n    },\n    {\n      \"name\": \"OpnCeilA\"\n    },\n    {\n      \"name\": \"OpnCeilB\"\n    },\n    {\n      \"name\": \"OpnCeilC\"\n    },\n    {\n      \"name\": \"OpnCeilD\"\n    },\n    {\n      \"name\": \"OpnCeilE\"\n    },\n    {\n      \"name\": \"OpnCeilF\"\n    },\n    {\n      \"name\": \"OpnCeilG\"\n    },\n    {\n      \"name\": \"OpnCeilH\"\n    },\n    {\n      \"name\": \"OpnCeilI\"\n    },\n    {\n      \"name\": \"OpnCeilJ\"\n    },\n    {\n      \"name\": \"OpnCeilK\"\n    },\n    {\n      \"name\": \"OpnCeilL\"\n    },\n    {\n      \"name\": \"OpnCircBrac\"\n    },\n    {\n      \"name\": \"OpnCircBracS\"\n    },\n    {\n      \"name\": \"OpnCircBracA\"\n    },\n    {\n      \"name\": \"OpnCircBracB\"\n    },\n    {\n      \"name\": \"OpnCircBracC\"\n    },\n    {\n      \"name\": \"OpnCircBracD\"\n    },\n    {\n      \"name\": \"OpnCircBracE\"\n    },\n    {\n      \"name\": \"OpnCircBracF\"\n    },\n    {\n      \"name\": \"OpnCircBracG\"\n    },\n    {\n      \"name\": \"OpnCircBracH\"\n    },\n    {\n      \"name\": \"OpnCircBracI\"\n    },\n    {\n      \"name\": \"OpnCircBracJ\"\n    },\n    {\n      \"name\": \"OpnCircBracK\"\n    },\n    {\n      \"name\": \"OpnCircBracL\"\n    },\n    {\n      \"name\": \"OpnCircBracBar\"\n    },\n    {\n      \"name\": \"OpnCircBracBarS\"\n    },\n    {\n      \"name\": \"OpnCircBracBarA\"\n    },\n    {\n      \"name\": \"OpnCircBracBarB\"\n    },\n    {\n      \"name\": \"OpnCircBracBarC\"\n    },\n    {\n      \"name\": \"OpnCircBracBarD\"\n    },\n    {\n      \"name\": \"OpnCircBracBarE\"\n    },\n    {\n      \"name\": \"OpnCircBracBarF\"\n    },\n    {\n      \"name\": \"OpnCircBracBarG\"\n    },\n    {\n      \"name\": \"OpnCircBracBarH\"\n    },\n    {\n      \"name\": \"OpnCircBracBarI\"\n    },\n    {\n      \"name\": \"OpnCircBracBarJ\"\n    },\n    {\n      \"name\": \"OpnCircBracBarK\"\n    },\n    {\n      \"name\": \"OpnCircBracBarL\"\n    },\n    {\n      \"name\": \"OpnCircBrkt\"\n    },\n    {\n      \"name\": \"OpnCircBrktS\"\n    },\n    {\n      \"name\": \"OpnCircBrktA\"\n    },\n    {\n      \"name\": \"OpnCircBrktB\"\n    },\n    {\n      \"name\": \"OpnCircBrktC\"\n    },\n    {\n      \"name\": \"OpnCircBrktD\"\n    },\n    {\n      \"name\": \"OpnCircBrktE\"\n    },\n    {\n      \"name\": \"OpnCircBrktF\"\n    },\n    {\n      \"name\": \"OpnCircBrktG\"\n    },\n    {\n      \"name\": \"OpnCircBrktH\"\n    },\n    {\n      \"name\": \"OpnCircBrktI\"\n    },\n    {\n      \"name\": \"OpnCircBrktJ\"\n    },\n    {\n      \"name\": \"OpnCircBrktK\"\n    },\n    {\n      \"name\": \"OpnCircBrktL\"\n    },\n    {\n      \"name\": \"OpnCircBrktBar\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarS\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarA\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarB\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarC\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarD\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarE\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarF\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarG\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarH\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarI\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarJ\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarK\"\n    },\n    {\n      \"name\": \"OpnCircBrktBarL\"\n    },\n    {\n      \"name\": \"OpnCntx\"\n    },\n    {\n      \"name\": \"OpnCntxS\"\n    },\n    {\n      \"name\": \"OpnCntxA\"\n    },\n    {\n      \"name\": \"OpnCntxB\"\n    },\n    {\n      \"name\": \"OpnCntxC\"\n    },\n    {\n      \"name\": \"OpnCntxD\"\n    },\n    {\n      \"name\": \"OpnCntxE\"\n    },\n    {\n      \"name\": \"OpnCntxF\"\n    },\n    {\n      \"name\": \"OpnCntxG\"\n    },\n    {\n      \"name\": \"OpnCntxH\"\n    },\n    {\n      \"name\": \"OpnCntxI\"\n    },\n    {\n      \"name\": \"OpnCntxJ\"\n    },\n    {\n      \"name\": \"OpnCntxK\"\n    },\n    {\n      \"name\": \"OpnCntxL\"\n    },\n    {\n      \"name\": \"OpnCrlyBrkt\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktS\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktA\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktB\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktC\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktD\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktE\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktF\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktG\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktH\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktI\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktJ\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktK\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktL\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBar\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarS\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarA\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarB\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarC\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarD\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarE\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarF\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarG\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarH\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarI\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarJ\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarK\"\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarL\"\n    },\n    {\n      \"name\": \"OpnCurvAngl\"\n    },\n    {\n      \"name\": \"OpnCurvAnglS\"\n    },\n    {\n      \"name\": \"OpnCurvAnglA\"\n    },\n    {\n      \"name\": \"OpnCurvAnglB\"\n    },\n    {\n      \"name\": \"OpnCurvAnglC\"\n    },\n    {\n      \"name\": \"OpnCurvAnglD\"\n    },\n    {\n      \"name\": \"OpnCurvAnglE\"\n    },\n    {\n      \"name\": \"OpnCurvAnglF\"\n    },\n    {\n      \"name\": \"OpnCurvAnglG\"\n    },\n    {\n      \"name\": \"OpnCurvAnglH\"\n    },\n    {\n      \"name\": \"OpnCurvAnglI\"\n    },\n    {\n      \"name\": \"OpnCurvAnglJ\"\n    },\n    {\n      \"name\": \"OpnCurvAnglK\"\n    },\n    {\n      \"name\": \"OpnCurvAnglL\"\n    },\n    {\n      \"name\": \"OpnCurvAnglM\"\n    },\n    {\n      \"name\": \"OpnCurvAnglN\"\n    },\n    {\n      \"name\": \"OpnCurvAnglO\"\n    },\n    {\n      \"name\": \"OpnCurvAnglP\"\n    },\n    {\n      \"name\": \"OpnDblAngl\"\n    },\n    {\n      \"name\": \"OpnDblAnglS\"\n    },\n    {\n      \"name\": \"OpnDblAnglA\"\n    },\n    {\n      \"name\": \"OpnDblAnglB\"\n    },\n    {\n      \"name\": \"OpnDblAnglC\"\n    },\n    {\n      \"name\": \"OpnDblAnglD\"\n    },\n    {\n      \"name\": \"OpnDblAnglE\"\n    },\n    {\n      \"name\": \"OpnDblAnglF\"\n    },\n    {\n      \"name\": \"OpnDblAnglG\"\n    },\n    {\n      \"name\": \"OpnDblAnglH\"\n    },\n    {\n      \"name\": \"OpnDblAnglI\"\n    },\n    {\n      \"name\": \"OpnDblAnglJ\"\n    },\n    {\n      \"name\": \"OpnDblAnglK\"\n    },\n    {\n      \"name\": \"OpnDblAnglL\"\n    },\n    {\n      \"name\": \"OpnDblAnglM\"\n    },\n    {\n      \"name\": \"OpnDblAnglN\"\n    },\n    {\n      \"name\": \"OpnDblAnglO\"\n    },\n    {\n      \"name\": \"OpnDblAnglP\"\n    },\n    {\n      \"name\": \"OpnDblBar\"\n    },\n    {\n      \"name\": \"OpnDblBarS\"\n    },\n    {\n      \"name\": \"OpnDblBarA\"\n    },\n    {\n      \"name\": \"OpnDblBarB\"\n    },\n    {\n      \"name\": \"OpnDblBarC\"\n    },\n    {\n      \"name\": \"OpnDblBarD\"\n    },\n    {\n      \"name\": \"OpnDblBarE\"\n    },\n    {\n      \"name\": \"OpnDblBarF\"\n    },\n    {\n      \"name\": \"OpnDblBarG\"\n    },\n    {\n      \"name\": \"OpnDblBarH\"\n    },\n    {\n      \"name\": \"OpnDblBarI\"\n    },\n    {\n      \"name\": \"OpnDblBarJ\"\n    },\n    {\n      \"name\": \"OpnDblBarK\"\n    },\n    {\n      \"name\": \"OpnDblBarL\"\n    },\n    {\n      \"name\": \"OpnDblBrac\"\n    },\n    {\n      \"name\": \"OpnDblBracS\"\n    },\n    {\n      \"name\": \"OpnDblBracA\"\n    },\n    {\n      \"name\": \"OpnDblBracB\"\n    },\n    {\n      \"name\": \"OpnDblBracC\"\n    },\n    {\n      \"name\": \"OpnDblBracD\"\n    },\n    {\n      \"name\": \"OpnDblBracE\"\n    },\n    {\n      \"name\": \"OpnDblBracF\"\n    },\n    {\n      \"name\": \"OpnDblBracG\"\n    },\n    {\n      \"name\": \"OpnDblBracH\"\n    },\n    {\n      \"name\": \"OpnDblBracI\"\n    },\n    {\n      \"name\": \"OpnDblBracJ\"\n    },\n    {\n      \"name\": \"OpnDblBracK\"\n    },\n    {\n      \"name\": \"OpnDblBracL\"\n    },\n    {\n      \"name\": \"OpnDblGrp\"\n    },\n    {\n      \"name\": \"OpnDblGrpS\"\n    },\n    {\n      \"name\": \"OpnDblGrpA\"\n    },\n    {\n      \"name\": \"OpnDblGrpB\"\n    },\n    {\n      \"name\": \"OpnDblGrpC\"\n    },\n    {\n      \"name\": \"OpnDblGrpD\"\n    },\n    {\n      \"name\": \"OpnDblGrpE\"\n    },\n    {\n      \"name\": \"OpnDblGrpF\"\n    },\n    {\n      \"name\": \"OpnDblGrpG\"\n    },\n    {\n      \"name\": \"OpnDblGrpH\"\n    },\n    {\n      \"name\": \"OpnDblGrpI\"\n    },\n    {\n      \"name\": \"OpnDblGrpJ\"\n    },\n    {\n      \"name\": \"OpnDblGrpK\"\n    },\n    {\n      \"name\": \"OpnDblGrpL\"\n    },\n    {\n      \"name\": \"OpnDblCeil\"\n    },\n    {\n      \"name\": \"OpnDblCeilS\"\n    },\n    {\n      \"name\": \"OpnDblCeilA\"\n    },\n    {\n      \"name\": \"OpnDblCeilB\"\n    },\n    {\n      \"name\": \"OpnDblCeilC\"\n    },\n    {\n      \"name\": \"OpnDblCeilD\"\n    },\n    {\n      \"name\": \"OpnDblCeilE\"\n    },\n    {\n      \"name\": \"OpnDblCeilF\"\n    },\n    {\n      \"name\": \"OpnDblCeilG\"\n    },\n    {\n      \"name\": \"OpnDblCeilH\"\n    },\n    {\n      \"name\": \"OpnDblCeilI\"\n    },\n    {\n      \"name\": \"OpnDblCeilJ\"\n    },\n    {\n      \"name\": \"OpnDblCeilK\"\n    },\n    {\n      \"name\": \"OpnDblCeilL\"\n    },\n    {\n      \"name\": \"OpnDblFloor\"\n    },\n    {\n      \"name\": \"OpnDblFloorS\"\n    },\n    {\n      \"name\": \"OpnDblFloorA\"\n    },\n    {\n      \"name\": \"OpnDblFloorB\"\n    },\n    {\n      \"name\": \"OpnDblFloorC\"\n    },\n    {\n      \"name\": \"OpnDblFloorD\"\n    },\n    {\n      \"name\": \"OpnDblFloorE\"\n    },\n    {\n      \"name\": \"OpnDblFloorF\"\n    },\n    {\n      \"name\": \"OpnDblFloorG\"\n    },\n    {\n      \"name\": \"OpnDblFloorH\"\n    },\n    {\n      \"name\": \"OpnDblFloorI\"\n    },\n    {\n      \"name\": \"OpnDblFloorJ\"\n    },\n    {\n      \"name\": \"OpnDblFloorK\"\n    },\n    {\n      \"name\": \"OpnDblFloorL\"\n    },\n    {\n      \"name\": \"OpnDblParn\"\n    },\n    {\n      \"name\": \"OpnDblParnS\"\n    },\n    {\n      \"name\": \"OpnDblParnA\"\n    },\n    {\n      \"name\": \"OpnDblParnB\"\n    },\n    {\n      \"name\": \"OpnDblParnC\"\n    },\n    {\n      \"name\": \"OpnDblParnD\"\n    },\n    {\n      \"name\": \"OpnDblParnE\"\n    },\n    {\n      \"name\": \"OpnDblParnF\"\n    },\n    {\n      \"name\": \"OpnDblParnG\"\n    },\n    {\n      \"name\": \"OpnDblParnH\"\n    },\n    {\n      \"name\": \"OpnDblParnI\"\n    },\n    {\n      \"name\": \"OpnDblParnJ\"\n    },\n    {\n      \"name\": \"OpnDblParnK\"\n    },\n    {\n      \"name\": \"OpnDblParnL\"\n    },\n    {\n      \"name\": \"OpnFloor\"\n    },\n    {\n      \"name\": \"OpnFloorS\"\n    },\n    {\n      \"name\": \"OpnFloorA\"\n    },\n    {\n      \"name\": \"OpnFloorB\"\n    },\n    {\n      \"name\": \"OpnFloorC\"\n    },\n    {\n      \"name\": \"OpnFloorD\"\n    },\n    {\n      \"name\": \"OpnFloorE\"\n    },\n    {\n      \"name\": \"OpnFloorF\"\n    },\n    {\n      \"name\": \"OpnFloorG\"\n    },\n    {\n      \"name\": \"OpnFloorH\"\n    },\n    {\n      \"name\": \"OpnFloorI\"\n    },\n    {\n      \"name\": \"OpnFloorJ\"\n    },\n    {\n      \"name\": \"OpnFloorK\"\n    },\n    {\n      \"name\": \"OpnFloorL\"\n    },\n    {\n      \"name\": \"OpnGrp\"\n    },\n    {\n      \"name\": \"OpnGrpS\"\n    },\n    {\n      \"name\": \"OpnGrpA\"\n    },\n    {\n      \"name\": \"OpnGrpB\"\n    },\n    {\n      \"name\": \"OpnGrpC\"\n    },\n    {\n      \"name\": \"OpnGrpD\"\n    },\n    {\n      \"name\": \"OpnGrpE\"\n    },\n    {\n      \"name\": \"OpnGrpF\"\n    },\n    {\n      \"name\": \"OpnGrpG\"\n    },\n    {\n      \"name\": \"OpnGrpH\"\n    },\n    {\n      \"name\": \"OpnGrpI\"\n    },\n    {\n      \"name\": \"OpnGrpJ\"\n    },\n    {\n      \"name\": \"OpnGrpK\"\n    },\n    {\n      \"name\": \"OpnGrpL\"\n    },\n    {\n      \"name\": \"OpnParn\"\n    },\n    {\n      \"name\": \"OpnParnS\"\n    },\n    {\n      \"name\": \"OpnParnA\"\n    },\n    {\n      \"name\": \"OpnParnB\"\n    },\n    {\n      \"name\": \"OpnParnC\"\n    },\n    {\n      \"name\": \"OpnParnD\"\n    },\n    {\n      \"name\": \"OpnParnE\"\n    },\n    {\n      \"name\": \"OpnParnF\"\n    },\n    {\n      \"name\": \"OpnParnG\"\n    },\n    {\n      \"name\": \"OpnParnH\"\n    },\n    {\n      \"name\": \"OpnParnI\"\n    },\n    {\n      \"name\": \"OpnParnJ\"\n    },\n    {\n      \"name\": \"OpnParnK\"\n    },\n    {\n      \"name\": \"OpnParnL\"\n    },\n    {\n      \"name\": \"OpnParnBar\"\n    },\n    {\n      \"name\": \"OpnParnBarS\"\n    },\n    {\n      \"name\": \"OpnParnBarA\"\n    },\n    {\n      \"name\": \"OpnParnBarB\"\n    },\n    {\n      \"name\": \"OpnParnBarC\"\n    },\n    {\n      \"name\": \"OpnParnBarD\"\n    },\n    {\n      \"name\": \"OpnParnBarE\"\n    },\n    {\n      \"name\": \"OpnParnBarF\"\n    },\n    {\n      \"name\": \"OpnParnBarG\"\n    },\n    {\n      \"name\": \"OpnParnBarH\"\n    },\n    {\n      \"name\": \"OpnParnBarI\"\n    },\n    {\n      \"name\": \"OpnParnBarJ\"\n    },\n    {\n      \"name\": \"OpnParnBarK\"\n    },\n    {\n      \"name\": \"OpnParnBarL\"\n    },\n    {\n      \"name\": \"OpnSqrParn\"\n    },\n    {\n      \"name\": \"OpnSqrParnS\"\n    },\n    {\n      \"name\": \"OpnSqrParnA\"\n    },\n    {\n      \"name\": \"OpnSqrParnB\"\n    },\n    {\n      \"name\": \"OpnSqrParnC\"\n    },\n    {\n      \"name\": \"OpnSqrParnD\"\n    },\n    {\n      \"name\": \"OpnSqrParnE\"\n    },\n    {\n      \"name\": \"OpnSqrParnF\"\n    },\n    {\n      \"name\": \"OpnSqrParnG\"\n    },\n    {\n      \"name\": \"OpnSqrParnH\"\n    },\n    {\n      \"name\": \"OpnSqrParnI\"\n    },\n    {\n      \"name\": \"OpnSqrParnJ\"\n    },\n    {\n      \"name\": \"OpnSqrParnK\"\n    },\n    {\n      \"name\": \"OpnSqrParnL\"\n    },\n    {\n      \"name\": \"OpnTortoise\"\n    },\n    {\n      \"name\": \"OpnTortoiseS\"\n    },\n    {\n      \"name\": \"OpnTortoiseA\"\n    },\n    {\n      \"name\": \"OpnTortoiseB\"\n    },\n    {\n      \"name\": \"OpnTortoiseC\"\n    },\n    {\n      \"name\": \"OpnTortoiseD\"\n    },\n    {\n      \"name\": \"OpnTortoiseE\"\n    },\n    {\n      \"name\": \"OpnTortoiseF\"\n    },\n    {\n      \"name\": \"OpnTortoiseG\"\n    },\n    {\n      \"name\": \"OpnTortoiseH\"\n    },\n    {\n      \"name\": \"OpnTortoiseI\"\n    },\n    {\n      \"name\": \"OpnTortoiseJ\"\n    },\n    {\n      \"name\": \"OpnTortoiseK\"\n    },\n    {\n      \"name\": \"OpnTortoiseL\"\n    },\n    {\n      \"name\": \"OpnTortoiseBar\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarS\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarA\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarB\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarC\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarD\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarE\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarF\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarG\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarH\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarI\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarJ\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarK\"\n    },\n    {\n      \"name\": \"OpnTortoiseBarL\"\n    },\n    {\n      \"name\": \"OpnTrpBar\"\n    },\n    {\n      \"name\": \"OpnTrpBarS\"\n    },\n    {\n      \"name\": \"OpnTrpBarA\"\n    },\n    {\n      \"name\": \"OpnTrpBarB\"\n    },\n    {\n      \"name\": \"OpnTrpBarC\"\n    },\n    {\n      \"name\": \"OpnTrpBarD\"\n    },\n    {\n      \"name\": \"OpnTrpBarE\"\n    },\n    {\n      \"name\": \"OpnTrpBarF\"\n    },\n    {\n      \"name\": \"OpnTrpBarG\"\n    },\n    {\n      \"name\": \"OpnTrpBarH\"\n    },\n    {\n      \"name\": \"OpnTrpBarI\"\n    },\n    {\n      \"name\": \"OpnTrpBarJ\"\n    },\n    {\n      \"name\": \"OpnTrpBarK\"\n    },\n    {\n      \"name\": \"OpnTrpBarL\"\n    },\n    {\n      \"name\": \"OpnTurn\"\n    },\n    {\n      \"name\": \"OpnTurnS\"\n    },\n    {\n      \"name\": \"OpnTurnA\"\n    },\n    {\n      \"name\": \"OpnTurnB\"\n    },\n    {\n      \"name\": \"OpnTurnC\"\n    },\n    {\n      \"name\": \"OpnTurnD\"\n    },\n    {\n      \"name\": \"OpnTurnE\"\n    },\n    {\n      \"name\": \"OpnTurnF\"\n    },\n    {\n      \"name\": \"OpnTurnG\"\n    },\n    {\n      \"name\": \"OpnTurnH\"\n    },\n    {\n      \"name\": \"OpnTurnI\"\n    },\n    {\n      \"name\": \"OpnTurnJ\"\n    },\n    {\n      \"name\": \"OpnTurnK\"\n    },\n    {\n      \"name\": \"OpnTurnL\"\n    },\n    {\n      \"name\": \"ClsAngl\"\n    },\n    {\n      \"name\": \"ClsAnglS\"\n    },\n    {\n      \"name\": \"ClsAnglA\"\n    },\n    {\n      \"name\": \"ClsAnglB\"\n    },\n    {\n      \"name\": \"ClsAnglC\"\n    },\n    {\n      \"name\": \"ClsAnglD\"\n    },\n    {\n      \"name\": \"ClsAnglE\"\n    },\n    {\n      \"name\": \"ClsAnglF\"\n    },\n    {\n      \"name\": \"ClsAnglG\"\n    },\n    {\n      \"name\": \"ClsAnglH\"\n    },\n    {\n      \"name\": \"ClsAnglI\"\n    },\n    {\n      \"name\": \"ClsAnglJ\"\n    },\n    {\n      \"name\": \"ClsAnglK\"\n    },\n    {\n      \"name\": \"ClsAnglL\"\n    },\n    {\n      \"name\": \"ClsAnglM\"\n    },\n    {\n      \"name\": \"ClsAnglN\"\n    },\n    {\n      \"name\": \"ClsAnglO\"\n    },\n    {\n      \"name\": \"ClsAnglP\"\n    },\n    {\n      \"name\": \"ClsAnglBar\"\n    },\n    {\n      \"name\": \"ClsAnglBarS\"\n    },\n    {\n      \"name\": \"ClsAnglBarA\"\n    },\n    {\n      \"name\": \"ClsAnglBarB\"\n    },\n    {\n      \"name\": \"ClsAnglBarC\"\n    },\n    {\n      \"name\": \"ClsAnglBarD\"\n    },\n    {\n      \"name\": \"ClsAnglBarE\"\n    },\n    {\n      \"name\": \"ClsAnglBarF\"\n    },\n    {\n      \"name\": \"ClsAnglBarG\"\n    },\n    {\n      \"name\": \"ClsAnglBarH\"\n    },\n    {\n      \"name\": \"ClsAnglBarI\"\n    },\n    {\n      \"name\": \"ClsAnglBarJ\"\n    },\n    {\n      \"name\": \"ClsAnglBarK\"\n    },\n    {\n      \"name\": \"ClsAnglBarL\"\n    },\n    {\n      \"name\": \"ClsAnglBarM\"\n    },\n    {\n      \"name\": \"ClsAnglBarN\"\n    },\n    {\n      \"name\": \"ClsAnglBarO\"\n    },\n    {\n      \"name\": \"ClsAnglBarP\"\n    },\n    {\n      \"name\": \"ClsArrwBrac\"\n    },\n    {\n      \"name\": \"ClsArrwBracS\"\n    },\n    {\n      \"name\": \"ClsArrwBracA\"\n    },\n    {\n      \"name\": \"ClsArrwBracB\"\n    },\n    {\n      \"name\": \"ClsArrwBracC\"\n    },\n    {\n      \"name\": \"ClsArrwBracD\"\n    },\n    {\n      \"name\": \"ClsArrwBracE\"\n    },\n    {\n      \"name\": \"ClsArrwBracF\"\n    },\n    {\n      \"name\": \"ClsArrwBracG\"\n    },\n    {\n      \"name\": \"ClsArrwBracH\"\n    },\n    {\n      \"name\": \"ClsArrwBracI\"\n    },\n    {\n      \"name\": \"ClsArrwBracJ\"\n    },\n    {\n      \"name\": \"ClsArrwBracK\"\n    },\n    {\n      \"name\": \"ClsArrwBracL\"\n    },\n    {\n      \"name\": \"ClsBar\"\n    },\n    {\n      \"name\": \"ClsBarS\"\n    },\n    {\n      \"name\": \"ClsBarA\"\n    },\n    {\n      \"name\": \"ClsBarB\"\n    },\n    {\n      \"name\": \"ClsBarC\"\n    },\n    {\n      \"name\": \"ClsBarD\"\n    },\n    {\n      \"name\": \"ClsBarE\"\n    },\n    {\n      \"name\": \"ClsBarF\"\n    },\n    {\n      \"name\": \"ClsBarG\"\n    },\n    {\n      \"name\": \"ClsBarH\"\n    },\n    {\n      \"name\": \"ClsBarI\"\n    },\n    {\n      \"name\": \"ClsBarJ\"\n    },\n    {\n      \"name\": \"ClsBarK\"\n    },\n    {\n      \"name\": \"ClsBarL\"\n    },\n    {\n      \"name\": \"ClsBrac\"\n    },\n    {\n      \"name\": \"ClsBracS\"\n    },\n    {\n      \"name\": \"ClsBracA\"\n    },\n    {\n      \"name\": \"ClsBracB\"\n    },\n    {\n      \"name\": \"ClsBracC\"\n    },\n    {\n      \"name\": \"ClsBracD\"\n    },\n    {\n      \"name\": \"ClsBracE\"\n    },\n    {\n      \"name\": \"ClsBracF\"\n    },\n    {\n      \"name\": \"ClsBracG\"\n    },\n    {\n      \"name\": \"ClsBracH\"\n    },\n    {\n      \"name\": \"ClsBracI\"\n    },\n    {\n      \"name\": \"ClsBracJ\"\n    },\n    {\n      \"name\": \"ClsBracK\"\n    },\n    {\n      \"name\": \"ClsBracL\"\n    },\n    {\n      \"name\": \"ClsBracBar\"\n    },\n    {\n      \"name\": \"ClsBracBarS\"\n    },\n    {\n      \"name\": \"ClsBracBarA\"\n    },\n    {\n      \"name\": \"ClsBracBarB\"\n    },\n    {\n      \"name\": \"ClsBracBarC\"\n    },\n    {\n      \"name\": \"ClsBracBarD\"\n    },\n    {\n      \"name\": \"ClsBracBarE\"\n    },\n    {\n      \"name\": \"ClsBracBarF\"\n    },\n    {\n      \"name\": \"ClsBracBarG\"\n    },\n    {\n      \"name\": \"ClsBracBarH\"\n    },\n    {\n      \"name\": \"ClsBracBarI\"\n    },\n    {\n      \"name\": \"ClsBracBarJ\"\n    },\n    {\n      \"name\": \"ClsBracBarK\"\n    },\n    {\n      \"name\": \"ClsBracBarL\"\n    },\n    {\n      \"name\": \"ClsBrknBrac\"\n    },\n    {\n      \"name\": \"ClsBrknBracS\"\n    },\n    {\n      \"name\": \"ClsBrknBracA\"\n    },\n    {\n      \"name\": \"ClsBrknBracB\"\n    },\n    {\n      \"name\": \"ClsBrknBracC\"\n    },\n    {\n      \"name\": \"ClsBrknBracD\"\n    },\n    {\n      \"name\": \"ClsBrknBracE\"\n    },\n    {\n      \"name\": \"ClsBrknBracF\"\n    },\n    {\n      \"name\": \"ClsBrknBracG\"\n    },\n    {\n      \"name\": \"ClsBrknBracH\"\n    },\n    {\n      \"name\": \"ClsBrknBracI\"\n    },\n    {\n      \"name\": \"ClsBrknBracJ\"\n    },\n    {\n      \"name\": \"ClsBrknBracK\"\n    },\n    {\n      \"name\": \"ClsBrknBracL\"\n    },\n    {\n      \"name\": \"ClsBrknBracBar\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarS\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarA\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarB\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarC\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarD\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarE\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarF\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarG\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarH\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarI\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarJ\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarK\"\n    },\n    {\n      \"name\": \"ClsBrknBracBarL\"\n    },\n    {\n      \"name\": \"ClsBrknBrkt\"\n    },\n    {\n      \"name\": \"ClsBrknBrktS\"\n    },\n    {\n      \"name\": \"ClsBrknBrktA\"\n    },\n    {\n      \"name\": \"ClsBrknBrktB\"\n    },\n    {\n      \"name\": \"ClsBrknBrktC\"\n    },\n    {\n      \"name\": \"ClsBrknBrktD\"\n    },\n    {\n      \"name\": \"ClsBrknBrktE\"\n    },\n    {\n      \"name\": \"ClsBrknBrktF\"\n    },\n    {\n      \"name\": \"ClsBrknBrktG\"\n    },\n    {\n      \"name\": \"ClsBrknBrktH\"\n    },\n    {\n      \"name\": \"ClsBrknBrktI\"\n    },\n    {\n      \"name\": \"ClsBrknBrktJ\"\n    },\n    {\n      \"name\": \"ClsBrknBrktK\"\n    },\n    {\n      \"name\": \"ClsBrknBrktL\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBar\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarS\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarA\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarB\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarC\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarD\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarE\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarF\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarG\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarH\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarI\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarJ\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarK\"\n    },\n    {\n      \"name\": \"ClsBrknBrktBarL\"\n    },\n    {\n      \"name\": \"ClsBrkt\"\n    },\n    {\n      \"name\": \"ClsBrktS\"\n    },\n    {\n      \"name\": \"ClsBrktA\"\n    },\n    {\n      \"name\": \"ClsBrktB\"\n    },\n    {\n      \"name\": \"ClsBrktC\"\n    },\n    {\n      \"name\": \"ClsBrktD\"\n    },\n    {\n      \"name\": \"ClsBrktE\"\n    },\n    {\n      \"name\": \"ClsBrktF\"\n    },\n    {\n      \"name\": \"ClsBrktG\"\n    },\n    {\n      \"name\": \"ClsBrktH\"\n    },\n    {\n      \"name\": \"ClsBrktI\"\n    },\n    {\n      \"name\": \"ClsBrktJ\"\n    },\n    {\n      \"name\": \"ClsBrktK\"\n    },\n    {\n      \"name\": \"ClsBrktL\"\n    },\n    {\n      \"name\": \"ClsBrktBar\"\n    },\n    {\n      \"name\": \"ClsBrktBarS\"\n    },\n    {\n      \"name\": \"ClsBrktBarA\"\n    },\n    {\n      \"name\": \"ClsBrktBarB\"\n    },\n    {\n      \"name\": \"ClsBrktBarC\"\n    },\n    {\n      \"name\": \"ClsBrktBarD\"\n    },\n    {\n      \"name\": \"ClsBrktBarE\"\n    },\n    {\n      \"name\": \"ClsBrktBarF\"\n    },\n    {\n      \"name\": \"ClsBrktBarG\"\n    },\n    {\n      \"name\": \"ClsBrktBarH\"\n    },\n    {\n      \"name\": \"ClsBrktBarI\"\n    },\n    {\n      \"name\": \"ClsBrktBarJ\"\n    },\n    {\n      \"name\": \"ClsBrktBarK\"\n    },\n    {\n      \"name\": \"ClsBrktBarL\"\n    },\n    {\n      \"name\": \"ClsCeil\"\n    },\n    {\n      \"name\": \"ClsCeilS\"\n    },\n    {\n      \"name\": \"ClsCeilA\"\n    },\n    {\n      \"name\": \"ClsCeilB\"\n    },\n    {\n      \"name\": \"ClsCeilC\"\n    },\n    {\n      \"name\": \"ClsCeilD\"\n    },\n    {\n      \"name\": \"ClsCeilE\"\n    },\n    {\n      \"name\": \"ClsCeilF\"\n    },\n    {\n      \"name\": \"ClsCeilG\"\n    },\n    {\n      \"name\": \"ClsCeilH\"\n    },\n    {\n      \"name\": \"ClsCeilI\"\n    },\n    {\n      \"name\": \"ClsCeilJ\"\n    },\n    {\n      \"name\": \"ClsCeilK\"\n    },\n    {\n      \"name\": \"ClsCeilL\"\n    },\n    {\n      \"name\": \"ClsCircBrac\"\n    },\n    {\n      \"name\": \"ClsCircBracS\"\n    },\n    {\n      \"name\": \"ClsCircBracA\"\n    },\n    {\n      \"name\": \"ClsCircBracB\"\n    },\n    {\n      \"name\": \"ClsCircBracC\"\n    },\n    {\n      \"name\": \"ClsCircBracD\"\n    },\n    {\n      \"name\": \"ClsCircBracE\"\n    },\n    {\n      \"name\": \"ClsCircBracF\"\n    },\n    {\n      \"name\": \"ClsCircBracG\"\n    },\n    {\n      \"name\": \"ClsCircBracH\"\n    },\n    {\n      \"name\": \"ClsCircBracI\"\n    },\n    {\n      \"name\": \"ClsCircBracJ\"\n    },\n    {\n      \"name\": \"ClsCircBracK\"\n    },\n    {\n      \"name\": \"ClsCircBracL\"\n    },\n    {\n      \"name\": \"ClsCircBracBar\"\n    },\n    {\n      \"name\": \"ClsCircBracBarS\"\n    },\n    {\n      \"name\": \"ClsCircBracBarA\"\n    },\n    {\n      \"name\": \"ClsCircBracBarB\"\n    },\n    {\n      \"name\": \"ClsCircBracBarC\"\n    },\n    {\n      \"name\": \"ClsCircBracBarD\"\n    },\n    {\n      \"name\": \"ClsCircBracBarE\"\n    },\n    {\n      \"name\": \"ClsCircBracBarF\"\n    },\n    {\n      \"name\": \"ClsCircBracBarG\"\n    },\n    {\n      \"name\": \"ClsCircBracBarH\"\n    },\n    {\n      \"name\": \"ClsCircBracBarI\"\n    },\n    {\n      \"name\": \"ClsCircBracBarJ\"\n    },\n    {\n      \"name\": \"ClsCircBracBarK\"\n    },\n    {\n      \"name\": \"ClsCircBracBarL\"\n    },\n    {\n      \"name\": \"ClsCircBrkt\"\n    },\n    {\n      \"name\": \"ClsCircBrktS\"\n    },\n    {\n      \"name\": \"ClsCircBrktA\"\n    },\n    {\n      \"name\": \"ClsCircBrktB\"\n    },\n    {\n      \"name\": \"ClsCircBrktC\"\n    },\n    {\n      \"name\": \"ClsCircBrktD\"\n    },\n    {\n      \"name\": \"ClsCircBrktE\"\n    },\n    {\n      \"name\": \"ClsCircBrktF\"\n    },\n    {\n      \"name\": \"ClsCircBrktG\"\n    },\n    {\n      \"name\": \"ClsCircBrktH\"\n    },\n    {\n      \"name\": \"ClsCircBrktI\"\n    },\n    {\n      \"name\": \"ClsCircBrktJ\"\n    },\n    {\n      \"name\": \"ClsCircBrktK\"\n    },\n    {\n      \"name\": \"ClsCircBrktL\"\n    },\n    {\n      \"name\": \"ClsCircBrktBar\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarS\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarA\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarB\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarC\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarD\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarE\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarF\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarG\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarH\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarI\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarJ\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarK\"\n    },\n    {\n      \"name\": \"ClsCircBrktBarL\"\n    },\n    {\n      \"name\": \"ClsCntx\"\n    },\n    {\n      \"name\": \"ClsCntxS\"\n    },\n    {\n      \"name\": \"ClsCntxA\"\n    },\n    {\n      \"name\": \"ClsCntxB\"\n    },\n    {\n      \"name\": \"ClsCntxC\"\n    },\n    {\n      \"name\": \"ClsCntxD\"\n    },\n    {\n      \"name\": \"ClsCntxE\"\n    },\n    {\n      \"name\": \"ClsCntxF\"\n    },\n    {\n      \"name\": \"ClsCntxG\"\n    },\n    {\n      \"name\": \"ClsCntxH\"\n    },\n    {\n      \"name\": \"ClsCntxI\"\n    },\n    {\n      \"name\": \"ClsCntxJ\"\n    },\n    {\n      \"name\": \"ClsCntxK\"\n    },\n    {\n      \"name\": \"ClsCntxL\"\n    },\n    {\n      \"name\": \"ClsCrlyBrkt\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktS\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktA\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktB\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktC\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktD\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktE\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktF\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktG\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktH\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktI\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktJ\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktK\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktL\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBar\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarS\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarA\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarB\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarC\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarD\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarE\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarF\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarG\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarH\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarI\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarJ\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarK\"\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarL\"\n    },\n    {\n      \"name\": \"ClsCurvAngl\"\n    },\n    {\n      \"name\": \"ClsCurvAnglS\"\n    },\n    {\n      \"name\": \"ClsCurvAnglA\"\n    },\n    {\n      \"name\": \"ClsCurvAnglB\"\n    },\n    {\n      \"name\": \"ClsCurvAnglC\"\n    },\n    {\n      \"name\": \"ClsCurvAnglD\"\n    },\n    {\n      \"name\": \"ClsCurvAnglE\"\n    },\n    {\n      \"name\": \"ClsCurvAnglF\"\n    },\n    {\n      \"name\": \"ClsCurvAnglG\"\n    },\n    {\n      \"name\": \"ClsCurvAnglH\"\n    },\n    {\n      \"name\": \"ClsCurvAnglI\"\n    },\n    {\n      \"name\": \"ClsCurvAnglJ\"\n    },\n    {\n      \"name\": \"ClsCurvAnglK\"\n    },\n    {\n      \"name\": \"ClsCurvAnglL\"\n    },\n    {\n      \"name\": \"ClsCurvAnglM\"\n    },\n    {\n      \"name\": \"ClsCurvAnglN\"\n    },\n    {\n      \"name\": \"ClsCurvAnglO\"\n    },\n    {\n      \"name\": \"ClsCurvAnglP\"\n    },\n    {\n      \"name\": \"ClsDblAngl\"\n    },\n    {\n      \"name\": \"ClsDblAnglS\"\n    },\n    {\n      \"name\": \"ClsDblAnglA\"\n    },\n    {\n      \"name\": \"ClsDblAnglB\"\n    },\n    {\n      \"name\": \"ClsDblAnglC\"\n    },\n    {\n      \"name\": \"ClsDblAnglD\"\n    },\n    {\n      \"name\": \"ClsDblAnglE\"\n    },\n    {\n      \"name\": \"ClsDblAnglF\"\n    },\n    {\n      \"name\": \"ClsDblAnglG\"\n    },\n    {\n      \"name\": \"ClsDblAnglH\"\n    },\n    {\n      \"name\": \"ClsDblAnglI\"\n    },\n    {\n      \"name\": \"ClsDblAnglJ\"\n    },\n    {\n      \"name\": \"ClsDblAnglK\"\n    },\n    {\n      \"name\": \"ClsDblAnglL\"\n    },\n    {\n      \"name\": \"ClsDblAnglM\"\n    },\n    {\n      \"name\": \"ClsDblAnglN\"\n    },\n    {\n      \"name\": \"ClsDblAnglO\"\n    },\n    {\n      \"name\": \"ClsDblAnglP\"\n    },\n    {\n      \"name\": \"ClsDblBar\"\n    },\n    {\n      \"name\": \"ClsDblBarS\"\n    },\n    {\n      \"name\": \"ClsDblBarA\"\n    },\n    {\n      \"name\": \"ClsDblBarB\"\n    },\n    {\n      \"name\": \"ClsDblBarC\"\n    },\n    {\n      \"name\": \"ClsDblBarD\"\n    },\n    {\n      \"name\": \"ClsDblBarE\"\n    },\n    {\n      \"name\": \"ClsDblBarF\"\n    },\n    {\n      \"name\": \"ClsDblBarG\"\n    },\n    {\n      \"name\": \"ClsDblBarH\"\n    },\n    {\n      \"name\": \"ClsDblBarI\"\n    },\n    {\n      \"name\": \"ClsDblBarJ\"\n    },\n    {\n      \"name\": \"ClsDblBarK\"\n    },\n    {\n      \"name\": \"ClsDblBarL\"\n    },\n    {\n      \"name\": \"ClsDblBrac\"\n    },\n    {\n      \"name\": \"ClsDblBracS\"\n    },\n    {\n      \"name\": \"ClsDblBracA\"\n    },\n    {\n      \"name\": \"ClsDblBracB\"\n    },\n    {\n      \"name\": \"ClsDblBracC\"\n    },\n    {\n      \"name\": \"ClsDblBracD\"\n    },\n    {\n      \"name\": \"ClsDblBracE\"\n    },\n    {\n      \"name\": \"ClsDblBracF\"\n    },\n    {\n      \"name\": \"ClsDblBracG\"\n    },\n    {\n      \"name\": \"ClsDblBracH\"\n    },\n    {\n      \"name\": \"ClsDblBracI\"\n    },\n    {\n      \"name\": \"ClsDblBracJ\"\n    },\n    {\n      \"name\": \"ClsDblBracK\"\n    },\n    {\n      \"name\": \"ClsDblBracL\"\n    },\n    {\n      \"name\": \"ClsDblCeil\"\n    },\n    {\n      \"name\": \"ClsDblCeilS\"\n    },\n    {\n      \"name\": \"ClsDblCeilA\"\n    },\n    {\n      \"name\": \"ClsDblCeilB\"\n    },\n    {\n      \"name\": \"ClsDblCeilC\"\n    },\n    {\n      \"name\": \"ClsDblCeilD\"\n    },\n    {\n      \"name\": \"ClsDblCeilE\"\n    },\n    {\n      \"name\": \"ClsDblCeilF\"\n    },\n    {\n      \"name\": \"ClsDblCeilG\"\n    },\n    {\n      \"name\": \"ClsDblCeilH\"\n    },\n    {\n      \"name\": \"ClsDblCeilI\"\n    },\n    {\n      \"name\": \"ClsDblCeilJ\"\n    },\n    {\n      \"name\": \"ClsDblCeilK\"\n    },\n    {\n      \"name\": \"ClsDblCeilL\"\n    },\n    {\n      \"name\": \"ClsDblFloor\"\n    },\n    {\n      \"name\": \"ClsDblFloorS\"\n    },\n    {\n      \"name\": \"ClsDblFloorA\"\n    },\n    {\n      \"name\": \"ClsDblFloorB\"\n    },\n    {\n      \"name\": \"ClsDblFloorC\"\n    },\n    {\n      \"name\": \"ClsDblFloorD\"\n    },\n    {\n      \"name\": \"ClsDblFloorE\"\n    },\n    {\n      \"name\": \"ClsDblFloorF\"\n    },\n    {\n      \"name\": \"ClsDblFloorG\"\n    },\n    {\n      \"name\": \"ClsDblFloorH\"\n    },\n    {\n      \"name\": \"ClsDblFloorI\"\n    },\n    {\n      \"name\": \"ClsDblFloorJ\"\n    },\n    {\n      \"name\": \"ClsDblFloorK\"\n    },\n    {\n      \"name\": \"ClsDblFloorL\"\n    },\n    {\n      \"name\": \"ClsDblGrp\"\n    },\n    {\n      \"name\": \"ClsDblGrpS\"\n    },\n    {\n      \"name\": \"ClsDblGrpA\"\n    },\n    {\n      \"name\": \"ClsDblGrpB\"\n    },\n    {\n      \"name\": \"ClsDblGrpC\"\n    },\n    {\n      \"name\": \"ClsDblGrpD\"\n    },\n    {\n      \"name\": \"ClsDblGrpE\"\n    },\n    {\n      \"name\": \"ClsDblGrpF\"\n    },\n    {\n      \"name\": \"ClsDblGrpG\"\n    },\n    {\n      \"name\": \"ClsDblGrpH\"\n    },\n    {\n      \"name\": \"ClsDblGrpI\"\n    },\n    {\n      \"name\": \"ClsDblGrpJ\"\n    },\n    {\n      \"name\": \"ClsDblGrpK\"\n    },\n    {\n      \"name\": \"ClsDblGrpL\"\n    },\n    {\n      \"name\": \"ClsDblParn\"\n    },\n    {\n      \"name\": \"ClsDblParnS\"\n    },\n    {\n      \"name\": \"ClsDblParnA\"\n    },\n    {\n      \"name\": \"ClsDblParnB\"\n    },\n    {\n      \"name\": \"ClsDblParnC\"\n    },\n    {\n      \"name\": \"ClsDblParnD\"\n    },\n    {\n      \"name\": \"ClsDblParnE\"\n    },\n    {\n      \"name\": \"ClsDblParnF\"\n    },\n    {\n      \"name\": \"ClsDblParnG\"\n    },\n    {\n      \"name\": \"ClsDblParnH\"\n    },\n    {\n      \"name\": \"ClsDblParnI\"\n    },\n    {\n      \"name\": \"ClsDblParnJ\"\n    },\n    {\n      \"name\": \"ClsDblParnK\"\n    },\n    {\n      \"name\": \"ClsDblParnL\"\n    },\n    {\n      \"name\": \"ClsFloor\"\n    },\n    {\n      \"name\": \"ClsFloorS\"\n    },\n    {\n      \"name\": \"ClsFloorA\"\n    },\n    {\n      \"name\": \"ClsFloorB\"\n    },\n    {\n      \"name\": \"ClsFloorC\"\n    },\n    {\n      \"name\": \"ClsFloorD\"\n    },\n    {\n      \"name\": \"ClsFloorE\"\n    },\n    {\n      \"name\": \"ClsFloorF\"\n    },\n    {\n      \"name\": \"ClsFloorG\"\n    },\n    {\n      \"name\": \"ClsFloorH\"\n    },\n    {\n      \"name\": \"ClsFloorI\"\n    },\n    {\n      \"name\": \"ClsFloorJ\"\n    },\n    {\n      \"name\": \"ClsFloorK\"\n    },\n    {\n      \"name\": \"ClsFloorL\"\n    },\n    {\n      \"name\": \"ClsGrp\"\n    },\n    {\n      \"name\": \"ClsGrpS\"\n    },\n    {\n      \"name\": \"ClsGrpA\"\n    },\n    {\n      \"name\": \"ClsGrpB\"\n    },\n    {\n      \"name\": \"ClsGrpC\"\n    },\n    {\n      \"name\": \"ClsGrpD\"\n    },\n    {\n      \"name\": \"ClsGrpE\"\n    },\n    {\n      \"name\": \"ClsGrpF\"\n    },\n    {\n      \"name\": \"ClsGrpG\"\n    },\n    {\n      \"name\": \"ClsGrpH\"\n    },\n    {\n      \"name\": \"ClsGrpI\"\n    },\n    {\n      \"name\": \"ClsGrpJ\"\n    },\n    {\n      \"name\": \"ClsGrpK\"\n    },\n    {\n      \"name\": \"ClsGrpL\"\n    },\n    {\n      \"name\": \"ClsParn\"\n    },\n    {\n      \"name\": \"ClsParnS\"\n    },\n    {\n      \"name\": \"ClsParnA\"\n    },\n    {\n      \"name\": \"ClsParnB\"\n    },\n    {\n      \"name\": \"ClsParnC\"\n    },\n    {\n      \"name\": \"ClsParnD\"\n    },\n    {\n      \"name\": \"ClsParnE\"\n    },\n    {\n      \"name\": \"ClsParnF\"\n    },\n    {\n      \"name\": \"ClsParnG\"\n    },\n    {\n      \"name\": \"ClsParnH\"\n    },\n    {\n      \"name\": \"ClsParnI\"\n    },\n    {\n      \"name\": \"ClsParnJ\"\n    },\n    {\n      \"name\": \"ClsParnK\"\n    },\n    {\n      \"name\": \"ClsParnL\"\n    },\n    {\n      \"name\": \"ClsParnBar\"\n    },\n    {\n      \"name\": \"ClsParnBarS\"\n    },\n    {\n      \"name\": \"ClsParnBarA\"\n    },\n    {\n      \"name\": \"ClsParnBarB\"\n    },\n    {\n      \"name\": \"ClsParnBarC\"\n    },\n    {\n      \"name\": \"ClsParnBarD\"\n    },\n    {\n      \"name\": \"ClsParnBarE\"\n    },\n    {\n      \"name\": \"ClsParnBarF\"\n    },\n    {\n      \"name\": \"ClsParnBarG\"\n    },\n    {\n      \"name\": \"ClsParnBarH\"\n    },\n    {\n      \"name\": \"ClsParnBarI\"\n    },\n    {\n      \"name\": \"ClsParnBarJ\"\n    },\n    {\n      \"name\": \"ClsParnBarK\"\n    },\n    {\n      \"name\": \"ClsParnBarL\"\n    },\n    {\n      \"name\": \"ClsSqrParn\"\n    },\n    {\n      \"name\": \"ClsSqrParnS\"\n    },\n    {\n      \"name\": \"ClsSqrParnA\"\n    },\n    {\n      \"name\": \"ClsSqrParnB\"\n    },\n    {\n      \"name\": \"ClsSqrParnC\"\n    },\n    {\n      \"name\": \"ClsSqrParnD\"\n    },\n    {\n      \"name\": \"ClsSqrParnE\"\n    },\n    {\n      \"name\": \"ClsSqrParnF\"\n    },\n    {\n      \"name\": \"ClsSqrParnG\"\n    },\n    {\n      \"name\": \"ClsSqrParnH\"\n    },\n    {\n      \"name\": \"ClsSqrParnI\"\n    },\n    {\n      \"name\": \"ClsSqrParnJ\"\n    },\n    {\n      \"name\": \"ClsSqrParnK\"\n    },\n    {\n      \"name\": \"ClsSqrParnL\"\n    },\n    {\n      \"name\": \"ClsTortoise\"\n    },\n    {\n      \"name\": \"ClsTortoiseS\"\n    },\n    {\n      \"name\": \"ClsTortoiseA\"\n    },\n    {\n      \"name\": \"ClsTortoiseB\"\n    },\n    {\n      \"name\": \"ClsTortoiseC\"\n    },\n    {\n      \"name\": \"ClsTortoiseD\"\n    },\n    {\n      \"name\": \"ClsTortoiseE\"\n    },\n    {\n      \"name\": \"ClsTortoiseF\"\n    },\n    {\n      \"name\": \"ClsTortoiseG\"\n    },\n    {\n      \"name\": \"ClsTortoiseH\"\n    },\n    {\n      \"name\": \"ClsTortoiseI\"\n    },\n    {\n      \"name\": \"ClsTortoiseJ\"\n    },\n    {\n      \"name\": \"ClsTortoiseK\"\n    },\n    {\n      \"name\": \"ClsTortoiseL\"\n    },\n    {\n      \"name\": \"ClsTortoiseBar\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarS\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarA\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarB\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarC\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarD\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarE\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarF\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarG\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarH\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarI\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarJ\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarK\"\n    },\n    {\n      \"name\": \"ClsTortoiseBarL\"\n    },\n    {\n      \"name\": \"ClsTrpBar\"\n    },\n    {\n      \"name\": \"ClsTrpBarS\"\n    },\n    {\n      \"name\": \"ClsTrpBarA\"\n    },\n    {\n      \"name\": \"ClsTrpBarB\"\n    },\n    {\n      \"name\": \"ClsTrpBarC\"\n    },\n    {\n      \"name\": \"ClsTrpBarD\"\n    },\n    {\n      \"name\": \"ClsTrpBarE\"\n    },\n    {\n      \"name\": \"ClsTrpBarF\"\n    },\n    {\n      \"name\": \"ClsTrpBarG\"\n    },\n    {\n      \"name\": \"ClsTrpBarH\"\n    },\n    {\n      \"name\": \"ClsTrpBarI\"\n    },\n    {\n      \"name\": \"ClsTrpBarJ\"\n    },\n    {\n      \"name\": \"ClsTrpBarK\"\n    },\n    {\n      \"name\": \"ClsTrpBarL\"\n    },\n    {\n      \"name\": \"ClsTurn\"\n    },\n    {\n      \"name\": \"ClsTurnS\"\n    },\n    {\n      \"name\": \"ClsTurnA\"\n    },\n    {\n      \"name\": \"ClsTurnB\"\n    },\n    {\n      \"name\": \"ClsTurnC\"\n    },\n    {\n      \"name\": \"ClsTurnD\"\n    },\n    {\n      \"name\": \"ClsTurnE\"\n    },\n    {\n      \"name\": \"ClsTurnF\"\n    },\n    {\n      \"name\": \"ClsTurnG\"\n    },\n    {\n      \"name\": \"ClsTurnH\"\n    },\n    {\n      \"name\": \"ClsTurnI\"\n    },\n    {\n      \"name\": \"ClsTurnJ\"\n    },\n    {\n      \"name\": \"ClsTurnK\"\n    },\n    {\n      \"name\": \"ClsTurnL\"\n    },\n    {\n      \"name\": \"BndBar\"\n    },\n    {\n      \"name\": \"BndBarS\"\n    },\n    {\n      \"name\": \"BndBarA\"\n    },\n    {\n      \"name\": \"BndBarB\"\n    },\n    {\n      \"name\": \"BndBarC\"\n    },\n    {\n      \"name\": \"BndBarD\"\n    },\n    {\n      \"name\": \"BndBarE\"\n    },\n    {\n      \"name\": \"BndBarF\"\n    },\n    {\n      \"name\": \"BndBarG\"\n    },\n    {\n      \"name\": \"BndBarH\"\n    },\n    {\n      \"name\": \"BndBarI\"\n    },\n    {\n      \"name\": \"BndBarJ\"\n    },\n    {\n      \"name\": \"BndBarK\"\n    },\n    {\n      \"name\": \"BndBarL\"\n    },\n    {\n      \"name\": \"bluLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bluNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BndBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BndBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CliNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsArrwBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsArrwBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsArrwBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsArrwBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrknBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCeilExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCeilTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCircBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsCrlyBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblCeilExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblCeilTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblFloorBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblFloorExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblGrpBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblGrpExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblGrpTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsDblParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsFloorBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsFloorExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsGrpBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsGrpExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsGrpTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsSqrParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsSqrParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsSqrParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTortoiseTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTrpBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTrpBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTurnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClsTurnMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineDelimiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineDelimiter{${1:name}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"defineDelimiterX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineDelimiterX{${1:name}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"defineGreekScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineGreekScript{${1:name}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"defineGreekScriptMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineGreekScriptMacro{${1:slot}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"defineLatinScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineLatinScript{${1:name}}{${2:num slot}}{${3:letter slot}}\"\n      }\n    },\n    {\n      \"name\": \"defineLatinScriptMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineLatinScriptMacro{${1:num slot}}{${2:letter slot}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"fruLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fruNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FruNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"griLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gruLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kntlge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kntlge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Kntlgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kntlgf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Kntlgk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kntlgk{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Kntlgq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kntlgq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Kntlgv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kntlgv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgk{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lgx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lgx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"logix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mniNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnuNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnArrwBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnArrwBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnArrwBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnArrwBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrknBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCeilExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCeilTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCircBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnCrlyBrktTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBracBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBracExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBracMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblBracTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblCeilExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblCeilTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblFloorBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblFloorExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblGrpBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblGrpExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblGrpTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnDblParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnFloorBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnFloorExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnGrpBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnGrpExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnGrpTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnSqrParnBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnSqrParnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnSqrParnTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseBarTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTortoiseTop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTrpBarBtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTrpBarExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTurnExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpnTurnMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saiNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaiNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sauNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SauNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sliNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SliNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sluNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SluNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sriNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SriNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruLtrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SruNbrBase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symLogix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"KnotGrid\"\n    },\n    {\n      \"name\": \"LogixDefn\"\n    },\n    {\n      \"name\": \"LogixDefn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"LogixAxiom\"\n    },\n    {\n      \"name\": \"LogixAxiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"LogixProof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:postulates}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"LogixProof\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:length}]{${1:name}}{${2:postulates}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"LogixSeqnt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:postulates}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"LogixSeqnt\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:length}]{${1:name}}{${2:postulates}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"LogixTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logoetalab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"simplekv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"loetalab\"\n    },\n    {\n      \"name\": \"loetalab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"loetalab[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalab,\\\\loetalab*,\\\\affloetalab,\\\\affloetalab*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loetalab*\"\n    },\n    {\n      \"name\": \"loetalab*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"loetalab*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalab,\\\\loetalab*,\\\\affloetalab,\\\\affloetalab*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"affloetalab\"\n    },\n    {\n      \"name\": \"affloetalab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affloetalab[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalab,\\\\loetalab*,\\\\affloetalab,\\\\affloetalab*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"affloetalab*\"\n    },\n    {\n      \"name\": \"affloetalab*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affloetalab*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalab,\\\\loetalab*,\\\\affloetalab,\\\\affloetalab*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loetalabtkz\"\n    },\n    {\n      \"name\": \"loetalabtkz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"loetalabtkz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalabtkz,\\\\loetalabtkz*,\\\\affloetalabtkz,\\\\affloetalabtkz*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loetalabtkz*\"\n    },\n    {\n      \"name\": \"loetalabtkz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"loetalabtkz*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalabtkz,\\\\loetalabtkz*,\\\\affloetalabtkz,\\\\affloetalabtkz*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"affloetalabtkz\"\n    },\n    {\n      \"name\": \"affloetalabtkz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affloetalabtkz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalabtkz,\\\\loetalabtkz*,\\\\affloetalabtkz,\\\\affloetalabtkz*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"affloetalabtkz*\"\n    },\n    {\n      \"name\": \"affloetalabtkz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"affloetalabtkz*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\loetalabtkz,\\\\loetalabtkz*,\\\\affloetalabtkz,\\\\affloetalabtkz*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\loetalab,\\\\loetalab*,\\\\affloetalab,\\\\affloetalab*\": [\n      \"Couleur=\",\n      \"Legende\",\n      \"TexteLegende={${1:texte}}\"\n    ],\n    \"\\\\loetalabtkz,\\\\loetalabtkz*,\\\\affloetalabtkz,\\\\affloetalabtkz*\": [\n      \"Couleur=\",\n      \"Hauteur=\",\n      \"DecalageV=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logpap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LPSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\LPSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loglinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"loglinpap(${3:width},${4:height})(${5:x-decs},${6:y-decs}){${1:log-start}}{${2:y-shift,y-step}}\"\n      }\n    },\n    {\n      \"name\": \"loglinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[]\",\n        \"snippet\": \"loglinpap(${4:width},${5:height})(${6:x-decs},${7:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}]\"\n      }\n    },\n    {\n      \"name\": \"loglinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[][]\",\n        \"snippet\": \"loglinpap(${5:width},${6:height})(${7:x-decs},${8:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}][${4:y-name}]\"\n      }\n    },\n    {\n      \"name\": \"linlogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"linlogpap(${3:width},${4:height})(${5:x-decs},${6:y-decs}){${1:log-start}}{${2:y-shift,y-step}}\"\n      }\n    },\n    {\n      \"name\": \"linlogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[]\",\n        \"snippet\": \"linlogpap(${4:width},${5:height})(${6:x-decs},${7:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}]\"\n      }\n    },\n    {\n      \"name\": \"linlogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[][]\",\n        \"snippet\": \"linlogpap(${5:width},${6:height})(${7:x-decs},${8:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}][${4:y-name}]\"\n      }\n    },\n    {\n      \"name\": \"loglogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"loglogpap(${3:width},${4:height})(${5:x-decs},${6:y-decs}){${1:log-start}}{${2:y-shift,y-step}}\"\n      }\n    },\n    {\n      \"name\": \"loglogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[]\",\n        \"snippet\": \"loglogpap(${4:width},${5:height})(${6:x-decs},${7:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}]\"\n      }\n    },\n    {\n      \"name\": \"loglogpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[][]\",\n        \"snippet\": \"loglogpap(${5:width},${6:height})(${7:x-decs},${8:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}][${4:y-name}]\"\n      }\n    },\n    {\n      \"name\": \"linlinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"linlinpap(${3:width},${4:height})(${5:x-decs},${6:y-decs}){${1:log-start}}{${2:y-shift,y-step}}\"\n      }\n    },\n    {\n      \"name\": \"linlinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[]\",\n        \"snippet\": \"linlinpap(${4:width},${5:height})(${6:x-decs},${7:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}]\"\n      }\n    },\n    {\n      \"name\": \"linlinpap\",\n      \"arg\": {\n        \"format\": \"()(){}{}[][]\",\n        \"snippet\": \"linlinpap(${5:width},${6:height})(${7:x-decs},${8:y-decs}){${1:log-start}}{${2:y-shift,y-step}}[${3:x-name}][${4:y-name}]\"\n      }\n    },\n    {\n      \"name\": \"DefineLPLabelColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPLabelColor{${1:color command}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPLabelDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPLabelDist{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPLabelFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPLabelFont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPLineColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPLineColor{${1:color command}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPMedLineThickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPMedLineThickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPMedTickLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPMedTickLen{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPMinLineDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPMinLineDist{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPmu{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPThickLineThickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPThickLineThickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPThickTickLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPThickTickLen{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefineLPThinLineThickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineLPThinLineThickness{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\LPSet\": [\n      \"ticksupright\",\n      \"noticksupright\",\n      \"twoninex\",\n      \"notwoninex\",\n      \"twoniney\",\n      \"notwoniney\",\n      \"fsnx\",\n      \"nofsnx\",\n      \"fsny\",\n      \"nofsny\",\n      \"tenlower\",\n      \"notenlower\",\n      \"text\",\n      \"notext\",\n      \"dimensions\",\n      \"nodimensions\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logreq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"binary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binary{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"cmdline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdline{${1:specs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLogreqAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareLogreqAttribute{${1:element}}[${4:default}]{${2:attribute}}{${3:dtd specs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLogreqAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareLogreqAttribute{${1:element}}{${2:attribute}}{${3:dtd specs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLogreqContainer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLogreqContainer{${1:element}}{${2:dtd specs}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLogreqElement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLogreqElement{${1:element}}{${2:dtd specs}}\"\n      }\n    },\n    {\n      \"name\": \"external\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"external[${2:keyvals}]{${1:specs}}\",\n        \"keys\": [\n          \"\\\\external,\\\\internal,\\\\logrequest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"generic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"generic{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"infile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"internal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"internal[${2:keyvals}]{${1:specs}}\",\n        \"keys\": [\n          \"\\\\external,\\\\internal,\\\\logrequest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"logrequest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"logrequest[${2:options%keyvals}]{${1:request}}\",\n        \"keys\": [\n          \"\\\\external,\\\\internal,\\\\logrequest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"logrequest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logrequest{${1:request}}\"\n      }\n    },\n    {\n      \"name\": \"ltxrequest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ltxrequest{${1:package}}{${2:active}}{${3:request}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"outfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"provides\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"provides[${2:keyvals}]{${1:file specs}}\",\n        \"keys\": [\n          \"\\\\provides,\\\\requires\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"requests\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"requests[${2:keyvals}]{${1:specs}}\"\n      }\n    },\n    {\n      \"name\": \"requires\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"requires[${2:keyvals}]{${1:file specs}}\",\n        \"keys\": [\n          \"\\\\provides,\\\\requires\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\external,\\\\internal,\\\\logrequest\": [\n      \"package=${1:package}\",\n      \"priority=${1:priority}\",\n      \"active=${1|0,1|}\"\n    ],\n    \"\\\\provides,\\\\requires\": [\n      \"type=${1|static,dynamic,editable|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/logsys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"coordsys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"logline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"logline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"logline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vlogline{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vlogline[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vlogline*{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"vlogline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vlogline*[${3:spacing}]{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semilogsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semilogsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semilogsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semilogsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semilogsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semilogsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semilogsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loglogsys(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loglogsys[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loglogsys[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loglogsys*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loglogsys*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loglogsys*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loglogsys*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"loggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"loggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"loggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"loggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semiloggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semiloggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semiloggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"semiloggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"semiloggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"semiloggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"semiloggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logloggrid(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logloggrid[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logloggrid[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"logloggrid*(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"logloggrid*[${1:h-spacing}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"logloggrid*\",\n      \"arg\": {\n        \"format\": \"[][]()()\",\n        \"snippet\": \"logloggrid*[${1:h-spacing}][${2:v-spacing}](${3:lower-left})(${4:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"interval\"\n    },\n    {\n      \"name\": \"intervalthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intervalthickness{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"intervalthickness\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intervalthickness[${2:offset%l}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"vinterval\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/logsys#c\": [\n      \"centred\",\n      \"outside\",\n      \"inside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/logsys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/longbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"options\"\n    },\n    {\n      \"name\": \"footnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addvskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lbox[${2:options}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"nofirstindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofirstparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unvcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unvcolorbox{${1:color}}{${2:vboxname}}\"\n      }\n    },\n    {\n      \"name\": \"vcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vcolorbox{${1:color}}{${2:vboxname}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longbox\"\n    },\n    {\n      \"name\": \"longbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"lvbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:boxname}}{${2:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/longdivision.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"longdivision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longdivision{${1:dividend}}{${2:divisor}}\"\n      },\n      \"detail\": \"⟌\",\n      \"doc\": \"Long division\"\n    },\n    {\n      \"name\": \"longdivision\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"longdivision[${3:options%keyvals}]{${1:dividend}}{${2:divisor}}\",\n        \"keys\": [\n          \"\\\\longdivision#c,\\\\intlongdivision#c,\\\\longdivisionkeys#c\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"⟌\",\n      \"doc\": \"Long division\"\n    },\n    {\n      \"name\": \"intlongdivision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intlongdivision{${1:dividend}}{${2:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"intlongdivision\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intlongdivision[${3:options%keyvals}]{${1:dividend}}{${2:divisor}}\",\n        \"keys\": [\n          \"\\\\longdivision#c,\\\\intlongdivision#c,\\\\longdivisionkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"longdivisionkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longdivisionkeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\longdivision#c,\\\\intlongdivision#c,\\\\longdivisionkeys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"longdivisiondefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"longdivisiondefinestyle{${1:style name}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\longdivision#c,\\\\intlongdivision#c,\\\\longdivisionkeys#c\": [\n      \"max extra digits=${1:integer}\",\n      \"stage=${1:integer}\",\n      \"style=${1|default,standard,tikz,german|}\",\n      \"repeating decimal style=${1|overline,dots,dots all,parentheses,none|}\",\n      \"decimal separator=${1:character}\",\n      \"digit separator=${1:character}\",\n      \"digit group length=${1:integer}\",\n      \"separators in work\",\n      \"german division sign=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/longfbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"options\"\n    },\n    {\n      \"name\": \"longbox\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"ellipse\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lfbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lfbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lfbox[${2:options%keyvals}]{${1:content%text}}\",\n        \"keys\": [\n          \"\\\\lfbox#c,\\\\begin{longfbox}#c,\\\\newfboxstyle#c,\\\\fboxset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newfboxstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfboxstyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lfbox#c,\\\\begin{longfbox}#c,\\\\newfboxstyle#c,\\\\fboxset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fboxset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fboxset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lfbox#c,\\\\begin{longfbox}#c,\\\\newfboxstyle#c,\\\\fboxset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"optionlengthlimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"optionlengthlimit{${1:length}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"optionradiuslimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"optionradiuslimit{${1:r1}}{${2:r2}}{${3:min}}{${4:max}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longfbox\"\n    },\n    {\n      \"name\": \"longfbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lfbox#c,\\\\begin{longfbox}#c,\\\\newfboxstyle#c,\\\\fboxset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\lfbox#c,\\\\begin{longfbox}#c,\\\\newfboxstyle#c,\\\\fboxset#c\": [\n      \"border-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-top-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-right-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-bottom-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-left-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-break-style=\",\n      \"border-break-top-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-break-bottom-style=${1|none,hidden,solid,dotted,dashed,double,inset,outset,groove,ridge|}\",\n      \"border-width=\",\n      \"border-top-width=\",\n      \"border-right-width=\",\n      \"border-bottom-width=\",\n      \"border-left-width=\",\n      \"border-break-width=\",\n      \"border-break-top-width=\",\n      \"border-break-bottom-width=\",\n      \"border-color=\",\n      \"border-top-color=\",\n      \"border-right-color=\",\n      \"border-bottom-color=\",\n      \"border-left-color=\",\n      \"border-break-color=\",\n      \"border-break-top-color=\",\n      \"border-break-bottom-color=\",\n      \"border-dark-mix=${1:color mix}\",\n      \"border-radius=\",\n      \"border-top-left-radius=\",\n      \"border-top-right-radius=\",\n      \"border-bottom-left-radius=\",\n      \"border-bottom-right-radius=\",\n      \"baseline=${1|bottom,middle,top|}\",\n      \"vertical-align=${1|baseline,bottom,middle,top,text-bottom,text-top,super,sub|}\",\n      \"raise=\",\n      \"height-align=${1|top,middle,bottom|}\",\n      \"text-align=${1|default,left,center,right,justify|}\",\n      \"background-color=\",\n      \"background-clip=border-box,padding-box,content-box\",\n      \"background-padding-color=\",\n      \"background-border-color=\",\n      \"background-content-color=\",\n      \"padding=\",\n      \"padding-top=\",\n      \"padding-right=\",\n      \"padding-bottom=\",\n      \"padding-left=\",\n      \"margin=\",\n      \"margin-top=\",\n      \"margin-right=\",\n      \"margin-bottom=\",\n      \"margin-left=\",\n      \"padding-break-top=\",\n      \"padding-break-bottom=\",\n      \"margin-break-top=\",\n      \"margin-break-bottom=\",\n      \"breakable\",\n      \"extra-split=\",\n      \"breakat={${1:dimen1,dimen2,...}}\",\n      \"height=\",\n      \"width=\",\n      \"outer-height=\",\n      \"outer-width=\",\n      \"tight\",\n      \"rounded\",\n      \"dotted\",\n      \"render=${1|default,plain,picture|}\",\n      \"insert-before={${1:code}}\",\n      \"inser-after={${1:code}}\",\n      \"render-insert-before={${1:code}}\",\n      \"render-insert-after={${1:code}}\",\n      \"picture-insert-before={${1:code}}\",\n      \"picture-insert-after={${1:code}}\",\n      \"plain-side-insert-before={${1:code}}\",\n      \"plain-side-insert-after={${1:code}}\",\n      \"picture-side-insert-before={${1:code}}\",\n      \"picture-side-insert-after={${1:code}}\",\n      \"baseline-skip\",\n      \"show-markers\",\n      \"marker-color=\",\n      \"marker-width=\",\n      \"eject={${1:code}}\",\n      \"debug\",\n      \"verbose\",\n      \"border-dash=\",\n      \"border-top-dash=\",\n      \"border-right-dash=\",\n      \"border-bottom-dash=\",\n      \"border-left-dash=\",\n      \"border-break-top-dash=\",\n      \"border-break-bottom-dash=\",\n      \"border-dashskip=\",\n      \"border-top-dashskip=\",\n      \"border-right-dashskip=\",\n      \"border-bottom-dashskip=\",\n      \"border-left-dashskip=\",\n      \"border-break-top-dashskip=\",\n      \"border-break-bottom-dashskip=\",\n      \"border-dotskip=\",\n      \"border-top-dotskip=\",\n      \"border-right-dotskip=\",\n      \"border-bottom-dotskip=\",\n      \"border-left-dotskip=\",\n      \"border-break-top-dotskip=\",\n      \"border-break-bottom-dotskip=\",\n      \"%fboxstyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/longfigure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endLFfirsthead\"\n    },\n    {\n      \"name\": \"endLFhead\"\n    },\n    {\n      \"name\": \"endLFfoot\"\n    },\n    {\n      \"name\": \"endLFlastfoot\"\n    },\n    {\n      \"name\": \"LFcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strcfstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strcfstr{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"LFupcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LFupcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LFleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFpre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFpost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFchunksize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LFcapwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:placement}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/longfigure#c\": [\n      \"figname=${1:name}\",\n      \"resetby=${1:counter}\",\n      \"set\",\n      \"final\",\n      \"errorshow\",\n      \"pausing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/longfigure#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/longmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lleft\"\n    },\n    {\n      \"name\": \"mleft\"\n    },\n    {\n      \"name\": \"mmbin\"\n    },\n    {\n      \"name\": \"mmiddle\"\n    },\n    {\n      \"name\": \"mmop\"\n    },\n    {\n      \"name\": \"mmord\"\n    },\n    {\n      \"name\": \"mmpunct\"\n    },\n    {\n      \"name\": \"mmrel\"\n    },\n    {\n      \"name\": \"mright\"\n    },\n    {\n      \"name\": \"rright\"\n    },\n    {\n      \"name\": \"delimiterprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"delimiterprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"delimiterscale\"\n    },\n    {\n      \"name\": \"ignorelimits\"\n    },\n    {\n      \"name\": \"includelimits\"\n    },\n    {\n      \"name\": \"longmathlinesep\"\n    },\n    {\n      \"name\": \"pulldelimiter\"\n    },\n    {\n      \"name\": \"pushdelimiter\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"longmath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:align%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{longmath},\\\\begin{longmath*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"longmath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"longmath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:align%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{longmath},\\\\begin{longmath*}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{longmath},\\\\begin{longmath*}\": [\n      \"c\",\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/longnamefilelist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"myfilist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listfiles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listfiles[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MaxLengthEmptyList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaxLengthEmptyList{${1:⟨digit⟩⟨digit⟩}}\"\n      }\n    },\n    {\n      \"name\": \"MaxLengthEmptyList\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MaxLengthEmptyList{${1:⟨digit⟩⟨digit⟩}}[${2:read-again-files}]\"\n      }\n    },\n    {\n      \"name\": \"SetLongNameFileListChars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLongNameFileListChars{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/longtable.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endfirstfoot\"\n    },\n    {\n      \"name\": \"endlastfoot\"\n    },\n    {\n      \"name\": \"endfirsthead\"\n    },\n    {\n      \"name\": \"endfoot\"\n    },\n    {\n      \"name\": \"endhead\"\n    },\n    {\n      \"name\": \"LTchunksize\"\n    },\n    {\n      \"name\": \"LTcapwidth\"\n    },\n    {\n      \"name\": \"LTleft\"\n    },\n    {\n      \"name\": \"LTpost\"\n    },\n    {\n      \"name\": \"LTpre\"\n    },\n    {\n      \"name\": \"LTright\"\n    },\n    {\n      \"name\": \"setlongtables\"\n    },\n    {\n      \"name\": \"tabularnewline\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/longtable#c\": [\n      \"errorshow\",\n      \"pausing\",\n      \"set\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/longtable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lowcycle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"hetarom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cyclobutane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclobutane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclobutane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclobutane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentaneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopentaneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentaneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopentaneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopentanehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopentanehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopentanev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopentanev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopentanevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopentanevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopentanevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropaneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropaneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropaneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropaneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropanehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropanehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanei\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropanei{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanei\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropanei[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropanev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropanev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclopropanevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cyclopropanevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclopropanevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indaneh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indaneh{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indaneh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indaneh[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanehi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indanehi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanehi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indanehi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indanev{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanev\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indanev[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanevi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indanevi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"indanevi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indanevi[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epsfig\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lbl{${1:coords;LaTeX content}}\"\n      }\n    },\n    {\n      \"name\": \"lbl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lbl[${2:pos}]{${1:coords;LaTeX content}}\"\n      }\n    },\n    {\n      \"name\": \"lpunitlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpmarginright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpmarginleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpmargintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpmarginbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpbgsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpgridthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpframethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lplblframethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lpfigframethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelpgridstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelpcoordstep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:filename(${2:x},${3:y})}}\"\n      }\n    },\n    {\n      \"name\": \"lpic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:filename(${3:x},${4:y})}}\",\n        \"keys\": [\n          \"\\\\begin{lpic}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{lpic}#c\": [\n      \"l(${1:length})\",\n      \"r(${1:length})\",\n      \"t(${1:length})\",\n      \"b(${1:length})\",\n      \"grid(${1:step})\",\n      \"coords(${1:step})\",\n      \"frames(${1:length})\",\n      \"frame(${1:length})\",\n      \"figframe(${1:length})\",\n      \"draft\",\n      \"clean\",\n      \"nolbl\",\n      \"nofigure\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lplfitch.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fitchprf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fitchprf{${1:premises}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"subproof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subproof{${1:premises}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"brokenform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brokenform{${1:expr1%formula}}{${2:expr2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"formula\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formula{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pline{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pline{${1:expr%formula}}[${2:justification}]\"\n      }\n    },\n    {\n      \"name\": \"pline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pline[${2:label}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"pline[${2:label}]{${1:expr%formula}}[${3:justification}]\"\n      }\n    },\n    {\n      \"name\": \"boxedsubproof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"boxedsubproof{${1:boxed expr%formula}}{${2:premise%formula}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"boxedsubproof\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"boxedsubproof[${4:label}]{${1:boxed expr%formula}}{${2:premise%formula}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"fpline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fpline{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fpline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fpline{${1:expr%formula}}[${2:justification}]\"\n      }\n    },\n    {\n      \"name\": \"fpline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fpline[${2:label}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"fpline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"fpline[${2:label}]{${1:expr%formula}}[${3:justification}]\"\n      }\n    },\n    {\n      \"name\": \"tline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tline[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lif\"\n    },\n    {\n      \"name\": \"liff\"\n    },\n    {\n      \"name\": \"lfalse\"\n    },\n    {\n      \"name\": \"lall\"\n    },\n    {\n      \"name\": \"lis\"\n    },\n    {\n      \"name\": \"exi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exi{${1:var%formula}}{${2:formula}}\"\n      }\n    },\n    {\n      \"name\": \"uni\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uni{${1:var%formula}}{${2:formula}}\"\n      }\n    },\n    {\n      \"name\": \"landi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"landi{${1:line nums}}\"\n      }\n    },\n    {\n      \"name\": \"lande\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lande{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lori\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lori{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lore\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lore{${1:num1}}{${2:nums2}}{${3:nums3}}\"\n      }\n    },\n    {\n      \"name\": \"lnoti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnoti{${1:line nums}}\"\n      }\n    },\n    {\n      \"name\": \"lnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lnote{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lfalsei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lfalsei{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"lfalsee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfalsee{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lifi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lifi{${1:line nums}}\"\n      }\n    },\n    {\n      \"name\": \"life\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"life{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"liffi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"liffi{${1:nums1}}{${2:nums2}}\"\n      }\n    },\n    {\n      \"name\": \"liffe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"liffe{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"reit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reit{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"eqi\"\n    },\n    {\n      \"name\": \"eqe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqe{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"lalli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lalli{${1:line nums}}\"\n      }\n    },\n    {\n      \"name\": \"lalle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lalle{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lexii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lexii{${1:line num}}\"\n      }\n    },\n    {\n      \"name\": \"lexie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lexie{${1:num1}}{${2:nums2}}\"\n      }\n    },\n    {\n      \"name\": \"fitcharg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fitcharg{${1:body}}{${2:conclusion}}\"\n      }\n    },\n    {\n      \"name\": \"fitchctx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fitchctx{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"ellipsesline\"\n    },\n    {\n      \"name\": \"quant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"quant{${1:quantifier%formula}}{${2:var%formula}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"intro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intro{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"elim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elim{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fitchargwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitchprfwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitchctxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitchsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slider\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lsabon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sabonfamily\"\n    },\n    {\n      \"name\": \"textsabon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsabon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"itscshape\"\n    },\n    {\n      \"name\": \"textitsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textitsc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lsabon#c\": [\n      \"scaled=${1:factor}\",\n      \"rmdefault\",\n      \"normdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lsabon#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lscape.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"landscape\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lscape#c\": [\n      \"pdftex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lscape#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lscapeenhanced.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lscape\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"pdflscape\",\n      \"if\": \"pdflscape\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lscapeenhanced#c\": [\n      \"pdflscape\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lscapeenhanced#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lstautogobble.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting\": [\n      \"autogobble\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lstbayes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstloadlanguages#c\": [\n      \"BUGS\",\n      \"JAGS\",\n      \"Stan\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline\": [\n      \"language=BUGS\",\n      \"language=JAGS\",\n      \"language=Stan\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lstdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"algorithmic\"\n    },\n    {\n      \"name\": \"lgrind\"\n    },\n    {\n      \"name\": \"nameref\"\n    },\n    {\n      \"name\": \"xurl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iffancyvrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyvrbtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fancyvrbfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhyper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifalgorithmicpkg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicpkgtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"algorithmicpkgfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflgrind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgrindtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lgrindfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advisespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labeladvise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syntaxnewline\"\n    },\n    {\n      \"name\": \"syntaxor\"\n    },\n    {\n      \"name\": \"syntaxbreak\"\n    },\n    {\n      \"name\": \"syntaxfill\"\n    },\n    {\n      \"name\": \"alternative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alternative{${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"newdocenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newdocenvironment{${1:envname}}{${2:typename}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"PrintAspectName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintAspectName{${1:aspect}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainAspectIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainAspectIndex{${1:aspect}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKeyName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKeyName{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialMainKeyIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialMainKeyIndex{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"theargcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelargcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ikeyname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ikeyname{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rkeyname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rkeyname{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"icmdname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icmdname{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rcmdname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcmdname{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"lstaspectindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstaspectindex{${1:item}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lstkeyindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstkeyindex{${1:key%plain}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lstisaspect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstisaspect{${1:aspect}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"lstprintaspectkeysandcmds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstprintaspectkeysandcmds{${1:aspect}}\"\n      }\n    },\n    {\n      \"name\": \"lstcheckreference\"\n    },\n    {\n      \"name\": \"lst\"\n    },\n    {\n      \"name\": \"Cpp\"\n    },\n    {\n      \"name\": \"keyname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyname{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"keyvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyvalue{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"hookname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hookname{${1:hook}}\"\n      }\n    },\n    {\n      \"name\": \"aspectname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aspectname{${1:aspect}}\"\n      }\n    },\n    {\n      \"name\": \"packagename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packagename{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"switchfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchfontfamily{${1:family1}}{${2:family2}}\"\n      }\n    },\n    {\n      \"name\": \"rstyle\"\n    },\n    {\n      \"name\": \"lstthanks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstthanks{${1:name}}{${2:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"lsthelper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lsthelper{${1:name}}{${2:date}}{${3:contribution%text}}\"\n      }\n    },\n    {\n      \"name\": \"pointstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstscanlanguages\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lstscanlanguages{${1:list macro%cmd}}{${2:input files}}{${3:don't input}}\"\n      }\n    },\n    {\n      \"name\": \"lstprintlanguages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstprintlanguages{${1:list macro}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"TODO\"\n    },\n    {\n      \"name\": \"ALTERNATIVE\"\n    },\n    {\n      \"name\": \"REMOVED\"\n    },\n    {\n      \"name\": \"OLDDEF\"\n    },\n    {\n      \"name\": \"advise\"\n    },\n    {\n      \"name\": \"syntax\"\n    },\n    {\n      \"name\": \"aspect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:aspect}}\"\n      }\n    },\n    {\n      \"name\": \"lstkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"macroargs\"\n    },\n    {\n      \"name\": \"lstsample\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"lstsample\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:point list}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"lstxsample\"\n    },\n    {\n      \"name\": \"lstxsample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:point list}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lstfiracode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ActivateVerbatimLigatures\"\n    },\n    {\n      \"name\": \"DeactivateVerbatimLigatures\"\n    },\n    {\n      \"name\": \"RestoreVerbatimBehavior\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lstfiracode#c\": [\n      \"verbatim\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline\": [\n      \"style=FiraCodeStyle\",\n      \"moreliterate=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lstfiracode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lstlinebgrd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"linebackgroundcolor=${1:color commands}\",\n      \"linebackgroundsep=\",\n      \"linebackgroundwidth=\",\n      \"linebackgroundheight=\",\n      \"linebackgrounddepth=\",\n      \"linebackgroundcmd=${1:macro}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lt3luabridge.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luabridgeExecute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luabridgeExecute{${1:lua code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltablex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"tabularx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keepXColumns\"\n    },\n    {\n      \"name\": \"convertXColumns\"\n    },\n    {\n      \"name\": \"endfirstfoot\"\n    },\n    {\n      \"name\": \"endlastfoot\"\n    },\n    {\n      \"name\": \"endfirsthead\"\n    },\n    {\n      \"name\": \"endfoot\"\n    },\n    {\n      \"name\": \"endhead\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltcaption.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"LTcapskip\"\n    },\n    {\n      \"name\": \"LTcapleft\"\n    },\n    {\n      \"name\": \"LTcapright\"\n    },\n    {\n      \"name\": \"LTcapmarginstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTcapmarginsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionLabelFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionLabelSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaptionTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTcaptype\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"longtable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtable*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:alignment}]{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltj-base.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltj-latex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lltjfont\"\n    },\n    {\n      \"name\": \"lltjdefs\"\n    },\n    {\n      \"name\": \"lltjcore\"\n    },\n    {\n      \"name\": \"lltjp-atbegshi\"\n    },\n    {\n      \"name\": \"lltjp-geometry\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"vsraw\",\n      \"vscmd=${1:cmd}\",\n      \"doubleletterspace=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltugcomn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mflogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acro{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"AddToResetCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToResetCommands{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"allowhyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AllTeX\"\n    },\n    {\n      \"name\": \"AMS\"\n    },\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"ANSI\"\n    },\n    {\n      \"name\": \"API\"\n    },\n    {\n      \"name\": \"ASCII\"\n    },\n    {\n      \"name\": \"aw\"\n    },\n    {\n      \"name\": \"AW\"\n    },\n    {\n      \"name\": \"basezero\"\n    },\n    {\n      \"name\": \"bfBibTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bib\"\n    },\n    {\n      \"name\": \"BibLaTeX\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"bigissdt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlackBoxes\"\n    },\n    {\n      \"name\": \"botsmash\"\n    },\n    {\n      \"name\": \"boxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"BSD\"\n    },\n    {\n      \"name\": \"bull\"\n    },\n    {\n      \"name\": \"CandT\"\n    },\n    {\n      \"name\": \"careof\"\n    },\n    {\n      \"name\": \"cents\"\n    },\n    {\n      \"name\": \"CMkIV\"\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"Cplusplus\"\n    },\n    {\n      \"name\": \"CPU\"\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"CSczabbr\"\n    },\n    {\n      \"name\": \"CSS\"\n    },\n    {\n      \"name\": \"CSTUG\"\n    },\n    {\n      \"name\": \"CSV\"\n    },\n    {\n      \"name\": \"CTAN\"\n    },\n    {\n      \"name\": \"Dag\"\n    },\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"Dash\"\n    },\n    {\n      \"name\": \"dlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawoutlinebox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drawoutlinebox[${1:height;width;thickness}]\"\n      }\n    },\n    {\n      \"name\": \"DTD\"\n    },\n    {\n      \"name\": \"DTK\"\n    },\n    {\n      \"name\": \"DVD\"\n    },\n    {\n      \"name\": \"DVI\"\n    },\n    {\n      \"name\": \"DVIPDFMx\"\n    },\n    {\n      \"name\": \"DVItoVDU\"\n    },\n    {\n      \"name\": \"ECMA\"\n    },\n    {\n      \"name\": \"emdash\"\n    },\n    {\n      \"name\": \"endash\"\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"EPS\"\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"ExTeX\"\n    },\n    {\n      \"name\": \"FAQ\"\n    },\n    {\n      \"name\": \"fileinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FTP\"\n    },\n    {\n      \"name\": \"Ghostscript\"\n    },\n    {\n      \"name\": \"GNU\"\n    },\n    {\n      \"name\": \"gobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GUI\"\n    },\n    {\n      \"name\": \"HarfBuzz\"\n    },\n    {\n      \"name\": \"Hawaii\"\n    },\n    {\n      \"name\": \"hours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTML\"\n    },\n    {\n      \"name\": \"HTTP\"\n    },\n    {\n      \"name\": \"hyph\"\n    },\n    {\n      \"name\": \"IDE\"\n    },\n    {\n      \"name\": \"IEEE\"\n    },\n    {\n      \"name\": \"ifPrelimDraft\"\n    },\n    {\n      \"name\": \"ifTBunicodeengine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTestIf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifundefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifundefined{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"Input\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Input{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"iOS\"\n    },\n    {\n      \"name\": \"ISBN\"\n    },\n    {\n      \"name\": \"ISO\"\n    },\n    {\n      \"name\": \"issdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issdt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISSN\"\n    },\n    {\n      \"name\": \"issno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issueseqno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JoT\"\n    },\n    {\n      \"name\": \"JPEG\"\n    },\n    {\n      \"name\": \"JTeX\"\n    },\n    {\n      \"name\": \"KOMAScript\"\n    },\n    {\n      \"name\": \"La\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LAMSTeX\"\n    },\n    {\n      \"name\": \"latexnobreakspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latextubstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldash\"\n    },\n    {\n      \"name\": \"Ldash\"\n    },\n    {\n      \"name\": \"LMTX\"\n    },\n    {\n      \"name\": \"LuaHBLaTeX\"\n    },\n    {\n      \"name\": \"LuaHBTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LyX\"\n    },\n    {\n      \"name\": \"macOS\"\n    },\n    {\n      \"name\": \"MacOSX\"\n    },\n    {\n      \"name\": \"makeother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makestrut\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makestrut[${1:height;depth}]\"\n      }\n    },\n    {\n      \"name\": \"MathML\"\n    },\n    {\n      \"name\": \"Mc\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mf\"\n    },\n    {\n      \"name\": \"MFB\"\n    },\n    {\n      \"name\": \"midrtitle\"\n    },\n    {\n      \"name\": \"minutes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MkIV\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"mtex\"\n    },\n    {\n      \"name\": \"newboxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"NoBlackBoxes\"\n    },\n    {\n      \"name\": \"nohyphens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoParIndent\"\n    },\n    {\n      \"name\": \"NormalParIndent\"\n    },\n    {\n      \"name\": \"normalparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspaces\"\n    },\n    {\n      \"name\": \"now\"\n    },\n    {\n      \"name\": \"Now\"\n    },\n    {\n      \"name\": \"NTG\"\n    },\n    {\n      \"name\": \"nth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NTS\"\n    },\n    {\n      \"name\": \"nullhrule\"\n    },\n    {\n      \"name\": \"nullvrule\"\n    },\n    {\n      \"name\": \"OCP\"\n    },\n    {\n      \"name\": \"OMEGA\"\n    },\n    {\n      \"name\": \"OOXML\"\n    },\n    {\n      \"name\": \"OpTeX\"\n    },\n    {\n      \"name\": \"OTF\"\n    },\n    {\n      \"name\": \"OTP\"\n    },\n    {\n      \"name\": \"PageXref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PageXrefOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXrefOFF{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexrefOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexrefOFF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"PageXrefON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageXrefON{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pagexrefON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagexrefON{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Pas\"\n    },\n    {\n      \"name\": \"pcMF\"\n    },\n    {\n      \"name\": \"PCTeX\"\n    },\n    {\n      \"name\": \"pcTeX\"\n    },\n    {\n      \"name\": \"PDF\"\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdflatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"pdftex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PGF\"\n    },\n    {\n      \"name\": \"PHP\"\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"plain\"\n    },\n    {\n      \"name\": \"plaintubstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plusplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PNG\"\n    },\n    {\n      \"name\": \"POBox\"\n    },\n    {\n      \"name\": \"PrelimDraftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrelimDrafttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PS\"\n    },\n    {\n      \"name\": \"PSTricks\"\n    },\n    {\n      \"name\": \"raggedcenter\"\n    },\n    {\n      \"name\": \"raggedparfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedspaces\"\n    },\n    {\n      \"name\": \"raggedstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rdash\"\n    },\n    {\n      \"name\": \"Rdash\"\n    },\n    {\n      \"name\": \"ResetCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResetCommands{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"restorecat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorecat{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreCS{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"revauth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revauth{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Review\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Review[${2:header%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Review\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Review{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"revpubinfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revpubinfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"revtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RIT\"\n    },\n    {\n      \"name\": \"RTF\"\n    },\n    {\n      \"name\": \"rtitlenexttopage\"\n    },\n    {\n      \"name\": \"savecat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecat{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveCS{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"SC\"\n    },\n    {\n      \"name\": \"setboxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboxcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"SetTime\"\n    },\n    {\n      \"name\": \"SGML\"\n    },\n    {\n      \"name\": \"SliTeX\"\n    },\n    {\n      \"name\": \"SMC\"\n    },\n    {\n      \"name\": \"SQL\"\n    },\n    {\n      \"name\": \"STIX\"\n    },\n    {\n      \"name\": \"stTeX\"\n    },\n    {\n      \"name\": \"SVG\"\n    },\n    {\n      \"name\": \"TANGLE\"\n    },\n    {\n      \"name\": \"TB\"\n    },\n    {\n      \"name\": \"tbcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbcode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tbcodebreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbcodebreak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TBdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBecircacute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBEnableRemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbgobbledash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbhurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbhurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbhurlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbhurlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbppkernfoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TBremark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TBremark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbsurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbsurlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbsurlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tburl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tburl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tburlfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tburlfootnote{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"tbUTF\"\n    },\n    {\n      \"name\": \"TestBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXhax\"\n    },\n    {\n      \"name\": \"TeXMaG\"\n    },\n    {\n      \"name\": \"textSMC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSMC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TeXtures\"\n    },\n    {\n      \"name\": \"Textures\"\n    },\n    {\n      \"name\": \"TeXworks\"\n    },\n    {\n      \"name\": \"TeXXeT\"\n    },\n    {\n      \"name\": \"TFM\"\n    },\n    {\n      \"name\": \"Thanh\"\n    },\n    {\n      \"name\": \"therevauth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therevpubinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therevtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TIFF\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"titleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topsmash\"\n    },\n    {\n      \"name\": \"TP\"\n    },\n    {\n      \"name\": \"ttn\"\n    },\n    {\n      \"name\": \"TTN\"\n    },\n    {\n      \"name\": \"TUB\"\n    },\n    {\n      \"name\": \"tubbraced\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubbraced{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"TUBdefaulteTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubdots\"\n    },\n    {\n      \"name\": \"TUBedit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TUBedit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TUBfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TUBfilename{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tubhideheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubhideheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"tubissue\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"tubissue{${1:volume}}(${2:issue})\"\n      }\n    },\n    {\n      \"name\": \"tubjustifiedpar\"\n    },\n    {\n      \"name\": \"tubline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tubreflect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tubreflect{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tubsentencespace\"\n    },\n    {\n      \"name\": \"tubsmallerskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubthinnerspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tubthinnerspaceneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUG\"\n    },\n    {\n      \"name\": \"tug\"\n    },\n    {\n      \"name\": \"UG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ulap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UNIX\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"VAX\"\n    },\n    {\n      \"name\": \"vellipsis\"\n    },\n    {\n      \"name\": \"VnTeX\"\n    },\n    {\n      \"name\": \"vol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volyr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VorTeX\"\n    },\n    {\n      \"name\": \"WEAVE\"\n    },\n    {\n      \"name\": \"WEB\"\n    },\n    {\n      \"name\": \"WYSIWYG\"\n    },\n    {\n      \"name\": \"Xe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XekernafterE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XekernbeforeE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XHTML\"\n    },\n    {\n      \"name\": \"xlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"XML\"\n    },\n    {\n      \"name\": \"XMP\"\n    },\n    {\n      \"name\": \"xrefto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrefto{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xreftoOFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xreftoOFF{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xreftoON\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xreftoON{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"XSL\"\n    },\n    {\n      \"name\": \"XSLFO\"\n    },\n    {\n      \"name\": \"XSLT\"\n    },\n    {\n      \"name\": \"YAML\"\n    },\n    {\n      \"name\": \"ylap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ylap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zlap{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"reviewitem\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltx4yt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"popupmenu\",\n      \"if\": \"usepopup\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ytvId\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytvId{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvId\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytvId[${3:options}]{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvId*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytvId*{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvId*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytvId*[${3:options}]{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvIdPresets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytvIdPresets{${1:presets}}\"\n      }\n    },\n    {\n      \"name\": \"ytvIdML\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytvIdML{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvIdML\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytvIdML[${3:options}]{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvIdML*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytvIdML*{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytvIdML*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytvIdML*[${3:options}]{${1:ytvID}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"declarePlayList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarePlayList{${1:command}}{${2:playlist}}\"\n      }\n    },\n    {\n      \"name\": \"Esc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ytIdTitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytIdTitle{${1:title%text}}{${2:ytvID}}\"\n      }\n    },\n    {\n      \"name\": \"ytPlayList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytPlayList{${1:ytvID}}{${2:playlist cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ytComboList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ytComboList{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytComboList\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ytComboList[${4:options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytComboBtn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ytComboBtn{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytComboBtn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ytComboBtn[${4:options}]{${1:name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytPopupAllMenuData\",\n      \"if\": \"usepopup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytMenuNames\",\n      \"if\": \"usepopup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytUseMenus\",\n      \"if\": \"usepopup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytUseMenus{${1:menu names}}\"\n      }\n    },\n    {\n      \"name\": \"puIdTitle\",\n      \"if\": \"usepopup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"puIdTitle{${1:title%text}}{${2:ytvID}}\"\n      }\n    },\n    {\n      \"name\": \"ytpubtnCnt\",\n      \"if\": \"usepopup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytPopupBtn\",\n      \"if\": \"usepopup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ytPopupBtn{${1:menu name}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytPopupPresets\",\n      \"if\": \"usepopup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytPopupPresets{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"ytLink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytLink{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytLink[${3:options}]{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLink*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytLink*{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLink*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytLink*[${3:options}]{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"embedID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedID{${1:ytvID}}\"\n      }\n    },\n    {\n      \"name\": \"params\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"params{${1:params}}\"\n      }\n    },\n    {\n      \"name\": \"watchId\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"watchId{${1:ytvID}}\"\n      }\n    },\n    {\n      \"name\": \"embed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embed{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"channel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"channel{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"user\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"user{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"search\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"search{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ytLinkML\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytLinkML{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLinkML\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytLinkML[${3:options}]{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLinkML*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytLinkML*{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytLinkML*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytLinkML*[${3:options}]{${1:spec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ytInputQuery\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytInputQuery{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytInputQuery\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytInputQuery[${3:options}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytSearch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytSearch{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytSearch\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytSearch[${3:options}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytClearQuery\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ytClearQuery{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytClearQuery\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ytClearQuery[${3:options}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ytNF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytURL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytvIdParams\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytvIdParams{${1:params}}\"\n      }\n    },\n    {\n      \"name\": \"ifytwatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytwatchfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytwatchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ques\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URLArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ytComboBtnPresets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytComboBtnPresets{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"ytComboListPresets\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytComboListPresets{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"ytspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytspec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ytStrPLAY\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ltx4yt#c\": [\n      \"usepopup\",\n      \"!usepopup\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ltx4yt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ltxdocext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"classname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"classoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classoption{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cleartorecto\"\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"colrule\"\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envb{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"enve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enve{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"filedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"GetFileInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfo{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LANGLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"RANGLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scmd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"substyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"substyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsubsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsubsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"unnumtable\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltxdockit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"marglistwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marglistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marglistfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margnotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionlistfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltxsyntaxfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltxsyntaxlabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changelogfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeloglabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbatimfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayverbfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spotcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"len\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"len{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cnt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"prm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mprm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mprm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oprm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oprm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kvopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvopt{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"sty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"refs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"refs{${1:sing name}}{${2:plural name}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apxref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Apxref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apxref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"csitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csitem{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmditem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmditem{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmditem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cmditem{${1:csname}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"cmditem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"cmditem{${1:csname}}[${3:options}]{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"envitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envitem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"lenitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lenitem{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"boolitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolitem{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"boolitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"boolitem[${2:true or false}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cntitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cntitem{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"optitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optitem{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"varitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varitem{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"valitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valitem{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"choitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"choitem{${1:key%plain}}{${2:values}}\"\n      }\n    },\n    {\n      \"name\": \"choitem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"choitem[${3:opt}]{${1:key%plain}}{${2:values}}\"\n      }\n    },\n    {\n      \"name\": \"intitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intitem{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"intitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intitem[${2:integer}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"legitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legitem{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"see{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lstenvsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"marglist\"\n    },\n    {\n      \"name\": \"keymarglist\"\n    },\n    {\n      \"name\": \"ltxsyntax\"\n    },\n    {\n      \"name\": \"optionlist\"\n    },\n    {\n      \"name\": \"optionlist*\"\n    },\n    {\n      \"name\": \"valuelist\"\n    },\n    {\n      \"name\": \"valuelist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"valuelist*\"\n    },\n    {\n      \"name\": \"argumentlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"changelog\"\n    },\n    {\n      \"name\": \"release\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:version}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"ltxcode\"\n    },\n    {\n      \"name\": \"ltxcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ltxcode},\\\\begin{ltxexample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltxexample\"\n    },\n    {\n      \"name\": \"ltxexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ltxcode},\\\\begin{ltxexample}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{ltxcode},\\\\begin{ltxexample}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=\",\n      \"moredelim=\",\n      \"deletedelim=\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index=\",\n      \"moreindex=\",\n      \"deleteindex=\",\n      \"indexstyle=\",\n      \"columns=\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=\",\n      \"morefvcmdparams=\",\n      \"literate=\",\n      \"rangebeginprefix=\",\n      \"rangebeginsuffix=\",\n      \"rangeendprefix=\",\n      \"rangeendsuffix=\",\n      \"rangeprefix=\",\n      \"rangesuffix=\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs=\",\n      \"moretexcs=\",\n      \"deletetxcs=\",\n      \"directives=\",\n      \"moredirectives=\",\n      \"deletedirectives=\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=\",\n      \"string=\",\n      \"morestring=\",\n      \"deletestring=\",\n      \"comment=\",\n      \"morecomment=\",\n      \"deletecomment=\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltxfront.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxutil\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"absbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"accepted[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"accepted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accepted{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"affiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"altaffiliation[${2:optional text%text}]{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"altaffiliation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"altaffiliation{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blankaffiliation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collaboration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collaboration{${1:collaboration%text}}\"\n      }\n    },\n    {\n      \"name\": \"doauthor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doauthor{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"eid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eid{${1:eid}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"email[${2:optional text%text}]{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"endpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endpage{${1:endpage}}\"\n      }\n    },\n    {\n      \"name\": \"firstname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstname{${1:firstname}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"homepage[${2:optional text%text}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"issuenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1; word2; ...%text}}\"\n      }\n    },\n    {\n      \"name\": \"noaffiliation\"\n    },\n    {\n      \"name\": \"pacs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pacs{${1:PACS codes}}\"\n      }\n    },\n    {\n      \"name\": \"preprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preprint{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"published[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"published\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"published{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"received[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"received\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"received{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"revised[${2:optional text%text}]{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"revised\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revised{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"startpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startpage{${1:startpage}}\"\n      }\n    },\n    {\n      \"name\": \"surname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surname{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"theaffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecollab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"volumeyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeyear{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ltxfront#c\": [\n      \"frontmatterverbose\",\n      \"inactive\",\n      \"groupedaddress\",\n      \"unsortedaddress\",\n      \"runinaddress\",\n      \"superscriptaddress\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ltxfront#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ltxgrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxutil\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addstuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addstuff{${1:penalty}}{${2:glue}}\"\n      }\n    },\n    {\n      \"name\": \"footsofar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linefoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linefoot{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lineloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineloop{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"onecolumngrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagesofar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removephantombox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removestuff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"replacestuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"replacestuff{${1:penalty}}{${2:glue}}\"\n      }\n    },\n    {\n      \"name\": \"restorecolumngrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelinecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagegrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocolumngrid\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"turnpage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltxnew.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"new\"\n    },\n    {\n      \"name\": \"renew\"\n    },\n    {\n      \"name\": \"provide\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltxtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"tabularx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LTXtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LTXtable{${1:width}}{${2:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ltxutil.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"appdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"colrule\"\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"doibase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flushing\"\n    },\n    {\n      \"name\": \"frstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullinterlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gappdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gappdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"intertabularlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loopuntil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopuntil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"loopwhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopwhile{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lrstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneapage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prepdef{${1:command}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"say\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"say{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"saythe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saythe{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"tableftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabmidsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabrightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"traceoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triggerpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lua-check-hyphen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LuaCheckHyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LuaCheckHyphen{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\LuaCheckHyphen,\\\\usepackage/lua-check-hyphen\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\LuaCheckHyphen,\\\\usepackage/lua-check-hyphen\": [\n      \"compact\",\n      \"mark\",\n      \"nofile\",\n      \"final\",\n      \"whitelist={${1:files}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\LuaCheckHyphen,\\\\usepackage/lua-check-hyphen\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lua-typo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luacolor\"\n    },\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luatypoLLminWD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoBackPI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoBackFuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoMarginparTol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoStretchMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoHyphMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoPageMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoMinFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoMinPart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoMinLen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatypoOneChar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatypoOneChar{${1:language}}{${2:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"luatypoTwoChars\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatypoTwoChars{${1:language}}{${2:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"luatypoSetColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatypoSetColor{${1:number}}{${2:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lua-typo#c\": [\n      \"ShowOptions\",\n      \"None\",\n      \"All\",\n      \"BackParindent\",\n      \"ShortLines\",\n      \"ShortPages\",\n      \"OverfullLines\",\n      \"UnderfullLines\",\n      \"Widows\",\n      \"Orphans\",\n      \"EOPHyphens\",\n      \"RepeatedHyphens\",\n      \"ParLastHyphen\",\n      \"EOLShortWords\",\n      \"FirstWordMatch\",\n      \"LastWordMatch\",\n      \"FootnoteSplit\",\n      \"ShortFinalWord\",\n      \"MarginparPos\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lua-typo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lua-ul.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"underLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underLine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"underLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"underLine[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\underLine,\\\\ul,\\\\textul\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"highLight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highLight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"highLight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"highLight[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strikeThrough\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strikeThrough{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strikeThrough\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"strikeThrough[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ul\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ul\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ul[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textul\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textul\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textul[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hl[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthl\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthl\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texthl[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"st{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"if\": \"soul\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"st[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textst\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textst\",\n      \"if\": \"soul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textst[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LuaULSetHighLightColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LuaULSetHighLightColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"newunderlinetype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newunderlinetype{${1:cmd}}{${2:leaderscmd%definition}}\"\n      }\n    },\n    {\n      \"name\": \"newunderlinetype\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newunderlinetype{${1:cmd}}[${3:context specifier}]{${2:leaderscmd%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lua-ul#c\": [\n      \"minimal\",\n      \"soul\"\n    ],\n    \"\\\\underLine,\\\\ul,\\\\textul\": [\n      \"textcolor\",\n      \"color=\",\n      \"top=\",\n      \"bottom=\",\n      \"height=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lua-ul#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lua-visual-debug.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lua-widow-control.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lwcsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lwcsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\lwcsetup,\\\\usepackage/lua-widow-control#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lwcsetup,\\\\usepackage/lua-widow-control#c\": [\n      \"disable\",\n      \"enable\",\n      \"disablecmds={${1:\\\\macro1,\\\\macro2,...}}\",\n      \"emergencystretch=\",\n      \"widowpenalty=${1:integer}\",\n      \"orphanpenalty=${1:integer}\",\n      \"nobreak=${1|keep,split,warn|}\",\n      \"max-cost=${1:integer}\",\n      \"draft\",\n      \"showcosts\",\n      \"showcolours\",\n      \"draftoffset=\",\n      \"debug\",\n      \"default\",\n      \"strict\",\n      \"balanced\"\n    ],\n    \"\\\\usepackage/lua-widow-control#c\": [\n      \"microtype\"\n    ]\n  },\n  \"args\": [\n    \"\\\\lwcsetup,\\\\usepackage/lua-widow-control#c\",\n    \"\\\\usepackage/lua-widow-control#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luaaddplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\luaaddplot#c\": [\n      \"compat=${1|1.18,1.17,1.16,1.15,1.14,1.13,1.12,1.11,1.10,1.9,1.8,1.7,1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default|}\",\n      \"empty line=${1|auto,none,scanline,jump|}\",\n      \"domain=${1:x1:x2}\",\n      \"y domain=${1:y1:y2}\",\n      \"domain y=${1:y1:y2}\",\n      \"samples=${1:number}\",\n      \"samples y=${1:number}\",\n      \"samples at={${1:coord list}}\",\n      \"variable=${1:variable name}\",\n      \"variable y=${1:variable name}\",\n      \"trig format plots=${1|default,deg,rad|}\",\n      \"trig format=${1|deg,rad|}\",\n      \"translate gnuplot\",\n      \"parametric\",\n      \"id=${1:id}\",\n      \"prefix=${1:filename prefix}\",\n      \"raw gnuplot\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:tension}\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"xbar\",\n      \"bar shift auto\",\n      \"bar shift auto=${1:shift for multiple plots}\",\n      \"ybar\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar direction=${1|auto,x,y|}\",\n      \"ybar interval\",\n      \"ybar interval=${1:relative width}\",\n      \"xbar interval\",\n      \"xbar interval=${1:relative width}\",\n      \"xcomb\",\n      \"ycomb\",\n      \"quiver={${1:quiver options}}\",\n      \"stack plots=${1|x,y,false|}\",\n      \"ybar stacked\",\n      \"ybar stacked=${1|plus,minus|}\",\n      \"xbar stacked\",\n      \"xbar stacked=${1|plus,minus|}\",\n      \"stack dir=${1|plus,minus|}\",\n      \"reverse stacked plots\",\n      \"stacked ignores zero\",\n      \"xbar interval stacked\",\n      \"xbar interval stacked=${1|plus,minus|}\",\n      \"ybar interval stacked\",\n      \"ybar interval stacked=${1|plus,minus|}\",\n      \"stack negative=${1|on previous,separate|}\",\n      \"area style\",\n      \"only marks\",\n      \"scatter\",\n      \"scatter src=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"scatter/use mapped color={${1:options for each marker}}\",\n      \"scatter/classes={${1:styles for each class name}}\",\n      \"nodes near coords\",\n      \"nodes near coords={${1:content}}\",\n      \"nodes near coords*\",\n      \"nodes near coords*={${1:content}}\",\n      \"nodes near coords style={${1:options}}\",\n      \"node near coords style={${1:options}}\",\n      \"node near coord style={${1:options}}\",\n      \"nodes near coords align=${1|auto,horizontal,vertical|}\",\n      \"coordinate style/.condition={${1:expression}}{${2:options}}\",\n      \"coordinate style/.from={${1:options}}\",\n      \"coordinate style/.clear\",\n      \"scatter/position=${1|absolute,relative|}\",\n      \"scatter/@pre marker code/.code={${1:code}}\",\n      \"scatter/@post marker code/.code={${1:code}}\",\n      \"mesh\",\n      \"unbounded coords=${1|discard,jump|}\",\n      \"mesh/rows=${1:integer}\",\n      \"mesh/cols=${1:integer}\",\n      \"mesh/scanline verbose\",\n      \"mesh/ordering=${1|x varies,y varies,rowwise,colwise|}\",\n      \"mesh/check=${1|false,warning,error|}\",\n      \"z buffer=${1|default,none,auto,sort,reverse x seq,reverse y seq,reverse xy seq|}\",\n      \"surf\",\n      \"shader=${1|flat,interp,faceted,flat corner,flat mean,faceted interp|}\",\n      \"faceted color=\",\n      \"mesh/interior colormap={${1:map name}}{${2:colormap spec}}\",\n      \"mesh/interior colormap name=${1:map name}\",\n      \"mesh/interior colormap thresh=${1:number}\",\n      \"surf shading/precision=${1|pdf,postscript,ps|}\",\n      \"mesh/color input=${1|colormap,explicit,explicit mathparse|}\",\n      \"mesh/colorspace explicit color input=${1|rgb,rgb255,cmy,cmyk,cmyk255,gray,wave,hsb,Hsb,HTML|}\",\n      \"mesh/colorspace explicit color output=${1|rgb,cmyk,gray|}\",\n      \"contour lua={${1:contour options}}\",\n      \"contour gnuplot={${1:contour options}}\",\n      \"contour prepared={${1:contour options}}\",\n      \"contour prepared format=${1|standard,matlab|}\",\n      \"contour external={${1:contour options}}\",\n      \"contour filled={${1:contour options}}\",\n      \"matrix plot\",\n      \"matrix plot*\",\n      \"imagesc\",\n      \"imagesc*\",\n      \"patch\",\n      \"patch table={${1:file or inline table}}\",\n      \"patch table with point meta={${1:file or inline table}}\",\n      \"patch table with individual point meta={${1:file or inline table}}\",\n      \"mesh input=${1|lattice,patches,image|}\",\n      \"patch type=${1|default,rectangle,triangle,line|}\",\n      \"mark size=\",\n      \"mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"cube/size x=\",\n      \"cube/size y=\",\n      \"cube/size z=\",\n      \"no markers\",\n      \"mark repeat=${1:integer}\",\n      \"mark phase=${1:integer}\",\n      \"mark indices={${1:index list}}\",\n      \"mark color=\",\n      \"mark options={${1:options}}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dashdotted\",\n      \"densely dashdotted\",\n      \"loosely dashdotted\",\n      \"dashdotdotted\",\n      \"densely dashdotdotted\",\n      \"loosely dashdotdotted\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"font={${1:font commands}}\",\n      \"line width=\",\n      \"thin\",\n      \"ultra thin\",\n      \"very thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"%color\",\n      \"color=\",\n      \"draw=\",\n      \"fill=\",\n      \"colormap name=${1:map name}\",\n      \"colormap={${1:map name}}{${2:colormap spec}}\",\n      \"colormap default colorspace=${1|auto,gray,rgb,cmyk|}\",\n      \"color of colormap=${1:value}\",\n      \"color of colormap=${1:value} of ${2:map name}\",\n      \"index of colormap=${1:index}\",\n      \"index of colormap=${1:index} of ${2:map name}\",\n      \"const color of colormap=${1:value}\",\n      \"const color of colormap=${1:value} of ${2:map name}\",\n      \"cycle list={${1:list}}\",\n      \"cycle list name=${1:name}\",\n      \"mark list fill=\",\n      \"cycle list shift=${1:integer}\",\n      \"cycle multi list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex* list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"point meta=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"set point meta if empty=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"point meta rel=${1|axis wide,per plot|}\",\n      \"point meta min=${1:number}\",\n      \"point meta max=${1:number}\",\n      \"colormap access=${1|map,direct,const,piecewise constant,piecewise const,piecewise linear|}\",\n      \"near ticklabel align=${1|inside,center,outside|}\",\n      \"near ticklabel at={${1:coord}}\",\n      \"sloped like x axis\",\n      \"sloped like y axis\",\n      \"sloped like z axis\",\n      \"sloped like x axis={${1:options}}\",\n      \"sloped like y axis={${1:options}}\",\n      \"sloped like z axis={${1:options}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"zlabel=${1:text}\",\n      \"xlabel shift=\",\n      \"ylabel shift=\",\n      \"zlabel shift=\",\n      \"label shift=\",\n      \"title=${1:text}\",\n      \"extra description/.code={${1:code}}\",\n      \"legend entries={${1:list}}\",\n      \"legend style={${1:options}}\",\n      \"legend pos=${1|south west,south east,north west,north east,outer north east|}\",\n      \"legend cell align=${1|left,right,center|}\",\n      \"legend columns\",\n      \"legend columns=${1:number}\",\n      \"legend plot pos=${1|left,right,none|}\",\n      \"legend image post style={${1:options}}\",\n      \"legend image code/.code={${1:code}}\",\n      \"line legend\",\n      \"empty legend\",\n      \"area legend\",\n      \"xbar legend\",\n      \"ybar legend\",\n      \"zbar legend\",\n      \"xbar interval legend\",\n      \"ybar interval legend\",\n      \"zbar interval legend\",\n      \"mesh legend\",\n      \"reverse legend\",\n      \"legend reversed\",\n      \"transpose legend\",\n      \"legend transposed\",\n      \"invoke before crossref tikzpicture={${1:code}}\",\n      \"invoke after crossref tikzpicture={${1:code}}\",\n      \"legend to name=\",\n      \"axis x line=${1|box,top,middle,center,bottom,none|}\",\n      \"axis x line*=${1|box,top,middle,center,bottom,none|}\",\n      \"axis y line=${1|box,left,middle,center,right,none|}\",\n      \"axis y line*=${1|box,left,middle,center,right,none|}\",\n      \"axis z line=${1|box,left,middle,center,right,none|}\",\n      \"axis z line*=${1|box,left,middle,center,right,none|}\",\n      \"axis lines=${1|box,left,middle,center,right,none|}\",\n      \"axis lines*=${1|box,left,middle,center,right,none|}\",\n      \"axis line style={${1:options}}\",\n      \"inner axis line style={${1:options}}\",\n      \"outer axis line style={${1:options}}\",\n      \"x axis line style={${1:options}}\",\n      \"y axis line style={${1:options}}\",\n      \"z axis line style={${1:options}}\",\n      \"separate axis lines\",\n      \"axis x line shift=\",\n      \"axis y line shift=\",\n      \"axis z line shift=\",\n      \"axis line shift=\",\n      \"axis x discontinuity=${1|crunch,parallel,none|}\",\n      \"axis y discontinuity=${1|crunch,parallel,none|}\",\n      \"axis z discontinuity=${1|crunch,parallel,none|}\",\n      \"xtickmin=${1:coord}\",\n      \"ytickmin=${1:coord}\",\n      \"ztickmin=${1:coord}\",\n      \"xtickmax=${1:coord}\",\n      \"ytickmax=${1:coord}\",\n      \"ztickmax=${1:coord}\",\n      \"hide x axis\",\n      \"hide y axis\",\n      \"hide z axis\",\n      \"hide axis\",\n      \"colorbar\",\n      \"colorbar right\",\n      \"colorbar left\",\n      \"colorbar horizontal\",\n      \"colorbar source\",\n      \"colorbar style={${1:options}}\",\n      \"colorbar/width=\",\n      \"colorbar/draw/.code={${1:code}}\",\n      \"colorbar sampled\",\n      \"colorbar sampled={${1:options}}\",\n      \"colorbar sampled line\",\n      \"colorbar sampled line={${1:options}}\",\n      \"colorbar as legend\",\n      \"colorbar to name=\",\n      \"width=\",\n      \"height=\",\n      \"scale only axis\",\n      \"x=\",\n      \"y=\",\n      \"z=\",\n      \"x={${1:(x,y)}}\",\n      \"y={${1:(x,y)}}\",\n      \"z={${1:(x,y)}}\",\n      \"xmode=${1|normal,linear,log|}\",\n      \"ymode=${1|normal,linear,log|}\",\n      \"zmode=${1|normal,linear,log|}\",\n      \"x dir=${1|normal,reverse|}\",\n      \"y dir=${1|normal,reverse|}\",\n      \"z dir=${1|normal,reverse|}\",\n      \"axis equal\",\n      \"axis equal image\",\n      \"unit vector ratio={${1:rx ry rz}}\",\n      \"unit vector ratio*={${1:rx ry rz}}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"x post scale=${1:scale}\",\n      \"y post scale=${1:scale}\",\n      \"z post scale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"max space between ticks=${1:integer}\",\n      \"try min ticks=${1:integer}\",\n      \"normalsize\",\n      \"small\",\n      \"footnotesize\",\n      \"tiny\",\n      \"scale mode=${1|auto,none,stretch to fill,scale uniformly|}\",\n      \"scale uniformly strategy=${1|auto,units only,change vertical limits,change horizontal limits|}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"view={${1:azimuth}}{${2:elevation}}\",\n      \"view/az=${1:azimuth}\",\n      \"view/h=${1:azimuth}\",\n      \"view/el=${1:elevation}\",\n      \"view/v=${1:elevation}\",\n      \"plot box ratio={${1:xstretch ystretch zstretch}}\",\n      \"3d box=${1|background,complete,complete*|}\",\n      \"error bars/x dir=${1|none,plus,minus,both|}\",\n      \"error bars/y dir=${1|none,plus,minus,both|}\",\n      \"error bars/z dir=${1|none,plus,minus,both|}\",\n      \"error bars/x fixed=${1:value}\",\n      \"error bars/y fixed=${1:value}\",\n      \"error bars/z fixed=${1:value}\",\n      \"error bars/x fixed relative=${1:percent}\",\n      \"error bars/y fixed relative=${1:percent}\",\n      \"error bars/z fixed relative=${1:percent}\",\n      \"error bars/x explicit\",\n      \"error bars/y explicit\",\n      \"error bars/z explicit\",\n      \"error bars/x explicit relative\",\n      \"error bars/y explicit relative\",\n      \"error bars/z explicit relative\",\n      \"error bars/error mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"error bars/error mark options={${1:options}}\",\n      \"error bars/error bar style={${1:options}}\",\n      \"log ticks with fixed point\",\n      \"log plot exponent style={${1:options}}\",\n      \"log identify minor tick positions\",\n      \"log number format code/.code={${1:code}}\",\n      \"log base 10 number format code/.code={${1:code}}\",\n      \"log number format basis/.code={${1:code}}\",\n      \"xmin=${1:coord}\",\n      \"ymin=${1:coord}\",\n      \"zmin=${1:coord}\",\n      \"xmax=${1:coord}\",\n      \"ymax=${1:coord}\",\n      \"zmax=${1:coord}\",\n      \"min=${1:coord}\",\n      \"max=${1:coord}\",\n      \"clip xlimits\",\n      \"clip ylimits\",\n      \"clip zlimits\",\n      \"clip limits\",\n      \"enlarge x limits={${1:enlarge options}}\",\n      \"enlarge y limits={${1:enlarge options}}\",\n      \"enlarge z limits={${1:enlarge options}}\",\n      \"enlargelimits=${1:value}\",\n      \"enlargelimits respects figure size\",\n      \"log origin x=${1|0,infty|}\",\n      \"log origin y=${1|0,infty|}\",\n      \"log origin z=${1|0,infty|}\",\n      \"log origin=${1|0,infty|}\",\n      \"update limits\",\n      \"xtick distance=${1:number}\",\n      \"ytick distance=${1:number}\",\n      \"ztick distance=${1:number}\",\n      \"xtick=${2|data,{${1:coord list}}|}\",\n      \"ytick=${2|data,{${1:coord list}}|}\",\n      \"ztick=${2|data,{${1:coord list}}|}\",\n      \"minor x tick num=${1:number}\",\n      \"minor y tick num=${1:number}\",\n      \"minor z tick num=${1:number}\",\n      \"minor tick num=${1:number}\",\n      \"minor xtick=${2|data,{${1:coord list}}|}\",\n      \"minor ytick=${2|data,{${1:coord list}}|}\",\n      \"minor ztick=${2|data,{${1:coord list}}|}\",\n      \"minor tick=${2|data,{${1:coord list}}|}\",\n      \"extra x ticks={${1:coord list}}\",\n      \"extra y ticks={${1:coord list}}\",\n      \"extra z ticks={${1:coord list}}\",\n      \"xtickten={${1:exponent base 10 list}}\",\n      \"ytickten={${1:exponent base 10 list}}\",\n      \"ztickten={${1:exponent base 10 list}}\",\n      \"xticklabels={${1:label list}}\",\n      \"yticklabels={${1:label list}}\",\n      \"zticklabels={${1:label list}}\",\n      \"xticklabel=${1:command}\",\n      \"yticklabel=${1:command}\",\n      \"zticklabel=${1:command}\",\n      \"xticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"yticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"zticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"extra x tick label={${1:code}}\",\n      \"extra y tick label={${1:code}}\",\n      \"extra z tick label={${1:code}}\",\n      \"extra x tick labels={${1:label list}}\",\n      \"extra y tick labels={${1:label list}}\",\n      \"extra z tick labels={${1:label list}}\",\n      \"x tick label as interval\",\n      \"y tick label as interval\",\n      \"z tick label as interval\",\n      \"xminorticks\",\n      \"yminorticks\",\n      \"zminorticks\",\n      \"xmajorticks\",\n      \"ymajorticks\",\n      \"zmajorticks\",\n      \"ticks=${1|minor,major,both,none|}\",\n      \"xtick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ytick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ztick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"tick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"xticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"yticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"zticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"ticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"xtick align=${1|inside,center,outside|}\",\n      \"ytick align=${1|inside,center,outside|}\",\n      \"ztick align=${1|inside,center,outside|}\",\n      \"tick align=${1|inside,center,outside|}\",\n      \"xticklabel shift=\",\n      \"yticklabel shift=\",\n      \"zticklabel shift=\",\n      \"ticklabel shift=\",\n      \"typeset ticklabels with strut\",\n      \"scaled ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled x ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled y ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled z ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"xtick scale label code/.code={${1:code}}\",\n      \"ytick scale label code/.code={${1:code}}\",\n      \"ztick scale label code/.code={${1:code}}\",\n      \"tick scale label code/.code={${1:code}}\",\n      \"tick scale binop=${1:TeX math operator}\",\n      \"scale ticks below exponent=${1:exponent}\",\n      \"scale ticks above exponent=${1:exponent}\",\n      \"max space between ticks=${1:number}\",\n      \"try min ticks=${1:number}\",\n      \"try min ticks log=${1:number}\",\n      \"tickwidth=\",\n      \"major tick length=\",\n      \"subtickwidth=\",\n      \"minor tick length=\",\n      \"log basis x=${1:number}\",\n      \"log basis y=${1:number}\",\n      \"log basis z=${1:number}\",\n      \"hide obscured x ticks\",\n      \"hide obscured y ticks\",\n      \"hide obscured z ticks\",\n      \"xminorgrids\",\n      \"yminorgrids\",\n      \"zminorgrids\",\n      \"xmajorgrids\",\n      \"ymajorgrids\",\n      \"zmajorgrids\",\n      \"grid=${1|minor,major,both,none|}\",\n      \"allow reversal of rel axis cs\",\n      \"pos=${1:fraction}\",\n      \"sloped\",\n      \"allow upside down\",\n      \"pos segment=${1:segment index}\",\n      \"forget plot style={${1:options}}\",\n      \"label style={${1:options}}\",\n      \"x label style={${1:options}}\",\n      \"y label style={${1:options}}\",\n      \"z label style={${1:options}}\",\n      \"xlabel style={${1:options}}\",\n      \"ylabel style={${1:options}}\",\n      \"zlabel style={${1:options}}\",\n      \"title style={${1:options}}\",\n      \"3d box foreground style={${1:options}}\",\n      \"colorbar sampled line style={${1:options}}\",\n      \"tick style={${1:options}}\",\n      \"minor tick style={${1:options}}\",\n      \"major tick style={${1:options}}\",\n      \"tick label style={${1:options}}\",\n      \"ticklabel style={${1:options}}\",\n      \"x tick label style={${1:options}}\",\n      \"y tick label style={${1:options}}\",\n      \"z tick label style={${1:options}}\",\n      \"xticklabel style={${1:options}}\",\n      \"yticklabel style={${1:options}}\",\n      \"zticklabel style={${1:options}}\",\n      \"x tick scale label style={${1:options}}\",\n      \"y tick scale label style={${1:options}}\",\n      \"z tick scale label style={${1:options}}\",\n      \"xtick style={${1:options}}\",\n      \"ytick style={${1:options}}\",\n      \"ztick style={${1:options}}\",\n      \"minor x tick style={${1:options}}\",\n      \"minor y tick style={${1:options}}\",\n      \"minor z tick style={${1:options}}\",\n      \"major x tick style={${1:options}}\",\n      \"major y tick style={${1:options}}\",\n      \"major z tick style={${1:options}}\",\n      \"extra x tick style={${1:options}}\",\n      \"extra y tick style={${1:options}}\",\n      \"extra z tick style={${1:options}}\",\n      \"extra tick style={${1:options}}\",\n      \"grid style={${1:options}}\",\n      \"minor grid style={${1:options}}\",\n      \"major grid style={${1:options}}\",\n      \"x grid style={${1:options}}\",\n      \"y grid style={${1:options}}\",\n      \"z grid style={${1:options}}\",\n      \"minor x grid style={${1:options}}\",\n      \"minor y grid style={${1:options}}\",\n      \"minor z grid style={${1:options}}\",\n      \"major x grid style={${1:options}}\",\n      \"major y grid style={${1:options}}\",\n      \"major z grid style={${1:options}}\",\n      \"at={${1:(x,y)}}\",\n      \"anchor=${1:name}\",\n      \"clip\",\n      \"clip marker paths\",\n      \"clip bounding box=${1|default tikz,upper bound|}\",\n      \"clip mode=${1|global,individual|}\",\n      \"x coord trafo/.code={${1:code}}\",\n      \"y coord trafo/.code={${1:code}}\",\n      \"z coord trafo/.code={${1:code}}\",\n      \"x coord inv trafo/.code={${1:code}}\",\n      \"y coord inv trafo/.code={${1:code}}\",\n      \"z coord inv trafo/.code={${1:code}}\",\n      \"symbolic x coords={${1:dictionary}}\",\n      \"symbolic y coords={${1:dictionary}}\",\n      \"symbolic z coords={${1:dictionary}}\",\n      \"x filter/.expression={${1:math expr}}\",\n      \"y filter/.expression={${1:math expr}}\",\n      \"z filter/.expression={${1:math expr}}\",\n      \"x filter/.append expression={${1:math expr}}\",\n      \"y filter/.append expression={${1:math expr}}\",\n      \"z filter/.append expression={${1:math expr}}\",\n      \"x filter/.code={${1:code}}\",\n      \"y filter/.code={${1:code}}\",\n      \"z filter/.code={${1:code}}\",\n      \"filter point/.code={${1:code}}\",\n      \"pre filter/.code={${1:code}}\",\n      \"skip coords between index={${1:begin}}{${2:end}}\",\n      \"each nth point=${1:integer}\",\n      \"restrict x to domain=${1:min:max}\",\n      \"restrict y to domain=${1:min:max}\",\n      \"restrict z to domain=${1:min:max}\",\n      \"restrict x to domain*=${1:min:max}\",\n      \"restrict y to domain*=${1:min:max}\",\n      \"restrict z to domain*=${1:min:max}\",\n      \"restrict expr to domain={${1:expr}}{${2:min:max}}\",\n      \"restrict expr to domain*={${1:expr}}{${2:min:max}}\",\n      \"filter discard warning\",\n      \"data cs=${1|cart,polar,polarrad|}\",\n      \"disablelogfilter\",\n      \"disabledatascaling\",\n      \"execute at begin plot={${1:commands}}\",\n      \"execute at end plot={${1:commands}}\",\n      \"execute at begin axis={${1:commands}}\",\n      \"execute at end axis={${1:commands}}\",\n      \"execute at begin plot visualization={${1:commands}}\",\n      \"execute at end plot visualization={${1:commands}}\",\n      \"forget plot\",\n      \"before end axis/.code={${1:code}}\",\n      \"after end axis/.code={${1:code}}\",\n      \"axis on top\",\n      \"visualization depends on=${1:\\\\macro}\",\n      \"visualization depends on=${1:expression} \\\\as ${2:\\\\macro}\",\n      \"visualization depends on=value ${1:content} \\\\as ${2:\\\\macro}\",\n      \"set layers=${1|none,standard,axis on top|}\",\n      \"on layer=${1:layer name}\",\n      \"mark layer=${2|auto,like plot,${1:layer name}|}\",\n      \"cell picture=${1|true,false,if necessary|}\",\n      \"enable tick line clipping\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luabibentry.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentry{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"setupbibentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupbibentry{${1:bib file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luabidi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"perpage\",\n      \"if\": \"autofootnoterule\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thepagefnt\",\n      \"if\": \"autofootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FnppOrigFootnote\",\n      \"if\": \"autofootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FnppOrigFootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FnppOrigFootnote\",\n      \"if\": \"autofootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FnppOrigFootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FnppOrigFootnotemark\",\n      \"if\": \"autofootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FnppOrigFootnotemark\",\n      \"if\": \"autofootnoterule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FnppOrigFootnotemark[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"setRTLmain\"\n    },\n    {\n      \"name\": \"setRTL\"\n    },\n    {\n      \"name\": \"setRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unsetLTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setLTR\"\n    },\n    {\n      \"name\": \"setLR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unsetRTL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RLE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LRE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LRE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hboxR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hboxR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localnumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"localnumeral*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localnumeral*{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemarkLR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemarkLR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemarkLR[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"footnotemarkRL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemarkRL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemarkRL[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTRfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RTLfootnote[${2:num}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoterulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftfootnoterule\"\n    },\n    {\n      \"name\": \"rightfootnoterule\"\n    },\n    {\n      \"name\": \"textwidthfootnoterule\"\n    },\n    {\n      \"name\": \"autofootnoterule\"\n    },\n    {\n      \"name\": \"bracetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreLRE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moreRLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pLRE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pLRE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pRLE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pRLE{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"RTL\"\n    },\n    {\n      \"name\": \"LTR\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/luabidi#c\": [\n      \"arabmaths\",\n      \"autofootnoterule\",\n      \"textwidthfootnoterule\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luabidi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luacas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fetch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetch{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"store\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"store{${1:name}}[${2:alt-name}]\"\n      }\n    },\n    {\n      \"name\": \"print\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"print{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"print*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"print*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"vprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vprint{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"vprint*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vprint*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"lprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lprint{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"lprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"lprint{${1:expr}}[${2:low,upp}]\"\n      }\n    },\n    {\n      \"name\": \"parseforest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseforest{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"parseforest*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseforest*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"forestresult\"\n    },\n    {\n      \"name\": \"parseshrub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseshrub{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"parseshrub*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseshrub*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"shrubresult\"\n    },\n    {\n      \"name\": \"whatis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whatis{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"printshrub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printshrub{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"printshrub*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printshrub*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"printtree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtree{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"printtree*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtree*{${1:expr}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CAS\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luacensor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cnsr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnsr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifcnsr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnsrtrue\"\n    },\n    {\n      \"name\": \"cnsrfalse\"\n    },\n    {\n      \"name\": \"cnsrfnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onething\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twothings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"donothing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voidenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"voidenvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"hddn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hddn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifwarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warningtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warningfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrnstncl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warnword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danger\",\n      \"unusual\": true,\n      \"detail\": \"☡\",\n      \"doc\": \"Caution sign, dangerous bend\"\n    },\n    {\n      \"name\": \"warnformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textwarn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsafe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dangersign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dangersign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dangerblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warnblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tworules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allwarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"confwarning\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hidden\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/luacensor#c\": [\n      \"warning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luacensor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luacode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luadirect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luadirect{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luaexec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaexec{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luastring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luastring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"luastringN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luastringN{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"luastringO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luastringO{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"LuaCodeDebugOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuaCodeDebugOff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luacode*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luacolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luacolorProcessBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luacolorProcessBox{${1:box}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luacomplex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luamaths\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cpxNew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxNew{${1:name}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"cpxPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cpxPrint{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpxAdd{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"cpxSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpxSub{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"cpxMul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpxMul{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"cpxDiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cpxDiv{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"cpxInv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxInv{${1:name}}{${2:orig-name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxRe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxRe{${1:name}}{${2:orig-name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxIm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxIm{${1:name}}{${2:orig-name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxMod{${1:name}}{${2:orig-name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxPrinArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxPrinArg{${1:name}}{${2:orig-name}}\"\n      }\n    },\n    {\n      \"name\": \"cpxOp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cpxOp{${1:name}}{${2:expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"imgUnit\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luagcd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luagcd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luagcd{${1:int1,int2,...}}\"\n      }\n    },\n    {\n      \"name\": \"luagcdwithsteps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luagcdwithsteps{${1:int1}}{${2:int2}}\"\n      }\n    },\n    {\n      \"name\": \"luagcdlincomb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luagcdlincomb{${1:int1}}{${2:int2}}\"\n      }\n    },\n    {\n      \"name\": \"luagcdlincombwithsteps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luagcdlincombwithsteps{${1:int1}}{${2:int2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luahttp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"luapackageloader\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fetchJson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchJson{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"fetchJson\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fetchJson{${1:URL}}[${2:key1,key2,...}]\"\n      }\n    },\n    {\n      \"name\": \"fetchJsonUsingFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchJsonUsingFile{${1:JSON file%file}}\"\n      }\n    },\n    {\n      \"name\": \"fetchJsonUsingFile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fetchJsonUsingFile{${1:JSON file%file}}[${2:key1,key2,...}]\"\n      }\n    },\n    {\n      \"name\": \"fetchJsonUsingQuery\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fetchJsonUsingQuery{${1:URL}}{${2:key1,key2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fetchRss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fetchRss{${1:URL}}{${2:limit}}\"\n      }\n    },\n    {\n      \"name\": \"fetchRss\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"fetchRss{${1:URL}}{${2:limit}}[${3:feedinfokey1,...}]\"\n      }\n    },\n    {\n      \"name\": \"fetchRss\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"fetchRss{${1:URL}}{${2:limit}}[${3:feedinfokey1,...}][${4:entrykey1,...}]\"\n      }\n    },\n    {\n      \"name\": \"fetchImage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fetchImage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"fetchImage\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"fetchImage{${1:URL}}[${2:width in cm}]\"\n      }\n    },\n    {\n      \"name\": \"fetchImage\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"fetchImage{${1:URL}}[${2:width in cm}][${3:height in cm}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luahyphenrules.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HyphenRules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HyphenRules{${1:language name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaimageembed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includegraphicsembedded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicsembedded{${1:base64-encoded image}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsembedded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicsembedded[${2:options%keyvals}]{${1:base64-encoded image}}\",\n        \"keys\": [\n          \"\\\\includegraphicsembedded\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimageembedded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareimageembedded{${1:image name}}{${2:base64-encoded image}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimageembedded\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfdeclareimageembedded[${3:options%keyvals}]{${1:image name}}{${2:base64-encoded image}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimageembedded,\\\\pgfimageembedded\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfimageembedded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfimageembedded{${1:base64-encoded image}}\"\n      }\n    },\n    {\n      \"name\": \"pgfimageembedded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfimageembedded[${2:options%keyvals}]{${1:base64-encoded image}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimageembedded,\\\\pgfimageembedded\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\includegraphicsembedded\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\pgfdeclareimageembedded,\\\\pgfimageembedded\": [\n      \"height=\",\n      \"width=\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"mask=${1:mask name}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"scrbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupluaindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupluaindex{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/luaindex#c,\\\\setupluaindex,\\\\newindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newindex{${1:index name}}\"\n      }\n    },\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newindex[${2:options%keyvals}]{${1:index name}}\"\n      }\n    },\n    {\n      \"name\": \"luaindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaindex{${1:index name}}{${2:entry}}\"\n      }\n    },\n    {\n      \"name\": \"luaindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"luaindex{${1:index name}}[${3:options%keyvals}]{${2:entry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"luasubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"luasubindex{${1:index name}}{${2:entry}}{${3:subentry}}\"\n      }\n    },\n    {\n      \"name\": \"luasubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"luasubindex{${1:index name}}[${4:options%keyvals}]{${2:entry}}{${3:subentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"luasubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"luasubindex{${1:index name}}[${4:options%keyvals}]{${2:entry}}[${5:options}]{${3:subentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"luasubsubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"luasubsubindex{${1:index name}}{${2:entry}}{${3:subentry}}{${4:subsubentry}}\"\n      }\n    },\n    {\n      \"name\": \"luasubsubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"luasubsubindex{${1:index name}}[${5:options%keyvals}]{${2:entry}}{${3:subentry}}{${4:subsubentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"luasubsubindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]{}\",\n        \"snippet\": \"luasubsubindex{${1:index name}}[${5:options%keyvals}]{${2:entry}}[${6:options}]{${3:subentry}}[${7:options}]{${4:subsubentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:options%keyvals}]{${1:entry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subindex{${1:entry}}{${2:subentry}}\"\n      }\n    },\n    {\n      \"name\": \"subindex\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"subindex[${3:options%keyvals}]{${1:entry}}{${2:subentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subindex\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"subindex[${3:options%keyvals}]{${1:entry}}[${4:options}]{${2:subentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subsubindex{${1:entry}}{${2:subentry}}{${3:subsubentry}}\"\n      }\n    },\n    {\n      \"name\": \"subsubindex\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"subsubindex[${4:options%keyvals}]{${1:entry}}{${2:subentry}}{${3:subsubentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubindex\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"subsubindex[${4:options%keyvals}]{${1:entry}}[${5:options}]{${2:subentry}}[${6:options}]{${3:subsubentry}}\",\n        \"keys\": [\n          \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"indexgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexgroup{${1:group}}\"\n      }\n    },\n    {\n      \"name\": \"indexspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexpagenumbers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexpagenumbers{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexpagenumber{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"indexpagenumbersep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luaindex#c,\\\\setupluaindex,\\\\newindex\": [\n      \"sortorder=${1:sort entry}\",\n      \"locale=${1:locale specifier}\",\n      \"pageformat=${1:command}\",\n      \"singlepass\"\n    ],\n    \"\\\\luaindex,\\\\luasubindex,\\\\luasubsubindex,\\\\index,\\\\subindex,\\\\subsubindex\": [\n      \"sort=${1:sort entry}\",\n      \"pageformat=${1:command}\",\n      \"locale=${1:locale specifier}\"\n    ],\n    \"\\\\printindex\": [\n      \"index=${1:index name}\",\n      \"singlepass\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luaindex#c,\\\\setupluaindex,\\\\newindex\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luainputenc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"InputNonUtfFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputNonUtfFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"InputUtfFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputUtfFile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luainputenc#c\": [\n      \"utf8\",\n      \"utf8x\",\n      \"unactivate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luainputenc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luakeys-debug.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luakeysdebug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luakeysdebug{${1:kv-string}}\"\n      }\n    },\n    {\n      \"name\": \"luakeysdebug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luakeysdebug[${2:options%keyvals}]{${1:kv-string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luakeys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LuakeysGetPackageOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LuakeysGetClassOptions\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/lualatex-truncate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"truncate\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lualatex-truncate#c\": [\n      \"breakwords\",\n      \"breakall\",\n      \"hyphenate\",\n      \"fit\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lualatex-truncate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lualinalg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"luamaths\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vectorNew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorNew{${1:name}}{${2:entries}}\"\n      }\n    },\n    {\n      \"name\": \"vectorPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorPrint{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorPrint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vectorPrint[${2:truncate=integer}]{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorGetCoordinate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorGetCoordinate{${1:vector}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"vectorSetCoordinate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorSetCoordinate{${1:vector}}{${2:index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"vectorCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorCopy{${1:name}}{${2:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorEql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorEql{${1:vector1}}{${2:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorAdd{${1:name}}{${2:vector1}}{${3:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorSub{${1:name}}{${2:vector1}}{${3:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorMulNum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorMulNum{${1:name}}{${2:vector}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"vectorDot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorDot{${1:vector1}}{${2:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorCross\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorCross{${1:name}}{${2:vector1}}{${3:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorSumNorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorSumNorm{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorEuclidNorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorEuclidNorm{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpNorm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorpNorm{${1:vector}}{${2:p}}\"\n      }\n    },\n    {\n      \"name\": \"vectorSupNorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorSupNorm{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorCreateRandom\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vectorCreateRandom{${1:name}}{${2:dimension}}{${3:a}}{${4:b}}\"\n      }\n    },\n    {\n      \"name\": \"vectorOp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorOp{${1:name}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vectorGetAngle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorGetAngle{${1:vector1}}{${2:vector2}}\"\n      }\n    },\n    {\n      \"name\": \"vectorParse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorParse{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"vectorGramSchmidt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorGramSchmidt{${1:list of vectors}}\"\n      }\n    },\n    {\n      \"name\": \"vectorGramSchmidt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vectorGramSchmidt[${2:options%keyvals}]{${1:list of vectors}}\",\n        \"keys\": [\n          \"\\\\vectorGramSchmidt,\\\\vectorGramSchmidtSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorGramSchmidtSteps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorGramSchmidtSteps{${1:list of vectors}}\"\n      }\n    },\n    {\n      \"name\": \"vectorGramSchmidtSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vectorGramSchmidtSteps[${2:options%keyvals}]{${1:list of vectors}}\",\n        \"keys\": [\n          \"\\\\vectorGramSchmidt,\\\\vectorGramSchmidtSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matrixNew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixNew{${1:name}}{${2:entries}}\"\n      }\n    },\n    {\n      \"name\": \"matrixPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixPrint{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixPrint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matrixPrint[${2:options%keyvals}]{${1:matrix}}\",\n        \"keys\": [\n          \"\\\\matrixPrint\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matrixNumRows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNumRows{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixNumCols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNumCols{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixGetElement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixGetElement{${1:matrix}}{${2:i}}{${3:j}}\"\n      }\n    },\n    {\n      \"name\": \"matrixAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixAdd{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixSub{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMulNum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixMulNum{${1:name}}{${2:number}}{${3:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixMul{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixPow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixPow{${1:name}}{${2:matrix}}{${3:power}}\"\n      }\n    },\n    {\n      \"name\": \"matrixInvert\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixInvert{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixTrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixTrace{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixConjugate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixConjugate{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixConjugateT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixConjugateT{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixNormOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNormOne{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixNormInfty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNormInfty{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixNormMax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNormMax{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixNormF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixNormF{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixRank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixRank{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixDet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixDet{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixTranspose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixTranspose{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixSetElement\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"matrixSetElement{${1:matrix}}{${2:i}}{${3:j}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"matrixSubmatrix\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"matrixSubmatrix{${1:name}}{${2:matrix}}{${3:i}}{${4:j}}{${5:k}}{${6:l}}\"\n      }\n    },\n    {\n      \"name\": \"matrixConcatH\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixConcatH{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixConcatV\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixConcatV{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixOp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixOp{${1:matrix}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"matrixCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixCopy{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixEql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixEql{${1:matrix1}}{${2:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixCreateRandom\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"matrixCreateRandom{${1:name}}{${2:i}}{${3:j}}{${4:k}}{${5:l}}\"\n      }\n    },\n    {\n      \"name\": \"matrixSwapRows\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"matrixSwapRows{${1:name}}{${2:matrix}}{${3:row1}}{${4:row2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMulRow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"matrixMulRow{${1:name}}{${2:matrix}}{${3:row}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMulAddRow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"matrixMulAddRow{${1:name}}{${2:matrix}}{${3:row1}}{${4:number}}{${5:row2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixSwapCols\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"matrixSwapCols{${1:name}}{${2:matrix}}{${3:col1}}{${4:col2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMulCol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"matrixMulCol{${1:name}}{${2:matrix}}{${3:col}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"matrixMulAddCol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"matrixMulAddCol{${1:name}}{${2:matrix}}{${3:col1}}{${4:number}}{${5:col2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixRREF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixRREF{${1:name}}{${2:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixRREFSteps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixRREFSteps{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"matrixRREFSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matrixRREFSteps[${2:options%keyvals}]{${1:matrix}}\",\n        \"keys\": [\n          \"\\\\matrixRREFSteps,\\\\matrixGaussJordanSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matrixGaussJordan\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixGaussJordan{${1:name}}{${2:matrix1}}{${3:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixGaussJordanSteps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matrixGaussJordanSteps{${1:matrix1}}{${2:matrix2}}\"\n      }\n    },\n    {\n      \"name\": \"matrixGaussJordanSteps\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"matrixGaussJordanSteps[${3:options%keyvals}]{${1:matrix1}}{${2:matrix2}}\",\n        \"keys\": [\n          \"\\\\matrixRREFSteps,\\\\matrixGaussJordanSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\vectorGramSchmidt,\\\\vectorGramSchmidtSteps\": [\n      \"brckt=${1|round,square,curly|}\",\n      \"truncate=${1:integer}\"\n    ],\n    \"\\\\matrixPrint\": [\n      \"type=${1|pmatrix,bmatrix,vmatrix,Vmatrix|}\",\n      \"truncate=${1:integer}\"\n    ],\n    \"\\\\matrixRREFSteps,\\\\matrixGaussJordanSteps\": [\n      \"type=${1|pmatrix,bmatrix,vmatrix,Vmatrix|}\",\n      \"truncate=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luamathalign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AlignHere\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luamaths.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathOp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathOp{${1:expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mathAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathAbs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathAcos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathAcos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathAsin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathAsin{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathAtan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathAtan{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathCeil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathCeil{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathCos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathCos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathExp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathExp{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathFloor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathFloor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathInf\"\n    },\n    {\n      \"name\": \"mathLog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathLog{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathMax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathMax{${1:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mathMin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathMin{${1:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mathPi\"\n    },\n    {\n      \"name\": \"mathRandom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathRandom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathSin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSin{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathSqrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathSqrt{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathTan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathTan{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mathRad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathRad{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"mathRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathRound{${1:number}}{${2:digits}}\"\n      }\n    },\n    {\n      \"name\": \"imUnit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complexRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"complexRound{${1:a+bi}}{${2:num digits}}\"\n      }\n    },\n    {\n      \"name\": \"luaChkeqnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaChkeqnum{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luamesh.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"luamplib\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"buildMeshBW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildMeshBW{${1:<list of points> or <file>}}\"\n      }\n    },\n    {\n      \"name\": \"buildMeshBW\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"buildMeshBW[${2:options}]{${1:<list of points> or <file>}}\",\n        \"keys\": [\n          \"\\\\buildMeshBW,\\\\buildMeshBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"buildMeshBWinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"buildMeshBWinc{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"buildMeshBWinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"buildMeshBWinc[${4:options}]{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\buildMeshBW,\\\\buildMeshBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawPointsMesh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawPointsMesh{${1:<list of points> or <file>}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointsMesh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawPointsMesh[${2:options}]{${1:<list of points> or <file>}}\",\n        \"keys\": [\n          \"\\\\drawPointsMesh,\\\\drawPointsMeshinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawPointsMeshinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawPointsMeshinc{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"drawPointsMeshinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawPointsMeshinc[${4:options}]{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\drawPointsMesh,\\\\drawPointsMeshinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meshAddPointBW\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meshAddPointBW{${1:<list of points> or <file>}}{${2:<point> or <number of line>}}\"\n      }\n    },\n    {\n      \"name\": \"meshAddPointBW\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"meshAddPointBW[${3:options}]{${1:<list of points> or <file>}}{${2:<point> or <number of line>}}\",\n        \"keys\": [\n          \"\\\\meshAddPointBW,\\\\meshAddPointBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meshAddPointBWinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"meshAddPointBWinc{${1:<list of points> or <file>}}{${2:<point> or <number of line>}}{${3:code before}}{${4:code after}}\"\n      }\n    },\n    {\n      \"name\": \"meshAddPointBWinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"meshAddPointBWinc[${5:options}]{${1:<list of points> or <file>}}{${2:<point> or <number of line>}}{${3:code before}}{${4:code after}}\",\n        \"keys\": [\n          \"\\\\meshAddPointBW,\\\\meshAddPointBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meshPolygon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meshPolygon{${1:<list of points> or <file>}}\"\n      }\n    },\n    {\n      \"name\": \"meshPolygon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meshPolygon[${2:options}]{${1:<list of points> or <file>}}\",\n        \"keys\": [\n          \"\\\\meshPolygon,\\\\meshPolygonInc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meshPolygonInc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"meshPolygonInc{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"meshPolygonInc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"meshPolygonInc[${4:options}]{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\meshPolygon,\\\\meshPolygonInc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luameshmpcolor\"\n    },\n    {\n      \"name\": \"luameshmpcolorBack\"\n    },\n    {\n      \"name\": \"luameshmpcolorBbox\"\n    },\n    {\n      \"name\": \"luameshmpcolorCircle\"\n    },\n    {\n      \"name\": \"luameshmpcolorNew\"\n    },\n    {\n      \"name\": \"luameshmpcolorPoly\"\n    },\n    {\n      \"name\": \"buildVoronoiBW\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildVoronoiBW{${1:<list of points> or <file>}}\"\n      }\n    },\n    {\n      \"name\": \"buildVoronoiBW\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"buildVoronoiBW[${2:options}]{${1:<list of points> or <file>}}\",\n        \"keys\": [\n          \"\\\\buildVoronoiBW,\\\\buildVoronoiBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"buildVoronoiBWinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"buildVoronoiBWinc{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"buildVoronoiBWinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"buildVoronoiBWinc[${4:options}]{${1:<list of points> or <file>}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\buildVoronoiBW,\\\\buildVoronoiBWinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luameshmpcolorVoronoi\"\n    },\n    {\n      \"name\": \"drawGmsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawGmsh{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"drawGmsh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawGmsh[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\drawGmsh,\\\\drawGmshinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawGmshinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawGmshinc{${1:file}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"drawGmshinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawGmshinc[${4:options%keyvals}]{${1:file}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\drawGmsh,\\\\drawGmshinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gmshVoronoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmshVoronoi{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"gmshVoronoi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gmshVoronoi[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\gmshVoronoi,\\\\gmshVoronoiinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gmshVoronoiinc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gmshVoronoiinc{${1:file}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"gmshVoronoiinc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"gmshVoronoiinc[${4:options%keyvals}]{${1:file}}{${2:code before}}{${3:code after}}\",\n        \"keys\": [\n          \"\\\\gmshVoronoi,\\\\gmshVoronoiinc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CircumPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MeshPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewPoint\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\buildMeshBW,\\\\buildMeshBWinc\": [\n      \"mode=${1|int,ext|}\",\n      \"bbox=${1|none,show|}\",\n      \"color=\",\n      \"colorBbox=\",\n      \"print=${1|none,points,dotpoints|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\",\n      \"thickness=\"\n    ],\n    \"\\\\drawPointsMesh,\\\\drawPointsMeshinc\": [\n      \"mode=${1|int,ext|}\",\n      \"bbox=${1|none,show|}\",\n      \"color=\",\n      \"colorBbox=\",\n      \"print=${1|none,points|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\"\n    ],\n    \"\\\\meshAddPointBW,\\\\meshAddPointBWinc\": [\n      \"mode=${1|int,ext|}\",\n      \"bbox=${1|none,show|}\",\n      \"color=\",\n      \"colorBbox=\",\n      \"colorNew=\",\n      \"colorBack=\",\n      \"colorCircle=\",\n      \"meshpoint=${1:letter(s)}\",\n      \"step=${1|badtriangles,cavity,newtriangles|}\",\n      \"newpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\",\n      \"thickness=\",\n      \"thicknessNew=\",\n      \"thicknessCircle=\"\n    ],\n    \"\\\\meshPolygon,\\\\meshPolygonInc\": [\n      \"mode=${1|int,ext|}\",\n      \"h=${1:number}\",\n      \"color=\",\n      \"colorPolygon=\",\n      \"print=${1|none,points,dotpoints|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"step=${1|polygon,grid,points,mesh|}\",\n      \"tikz\",\n      \"scale=\",\n      \"gridpoints=${1|rect,perturb|}\",\n      \"thickness=\",\n      \"thicknessPolygon=\"\n    ],\n    \"\\\\buildVoronoiBW,\\\\buildVoronoiBWinc\": [\n      \"mode=${1|int,ext|}\",\n      \"bbox=${1|none,show|}\",\n      \"color=\",\n      \"colorBbox=\",\n      \"colorVoronoi=\",\n      \"print=${1|none,points|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"circumpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\",\n      \"delaunay=${1|none,show|}\",\n      \"styleDelaunay=${1|none,dashed|}\",\n      \"styleVoronoi=${1|none,dashed|}\",\n      \"thickness=\",\n      \"thicknessVoronoi=\"\n    ],\n    \"\\\\drawGmsh,\\\\drawGmshinc\": [\n      \"color=\",\n      \"print=${1|none,points|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\",\n      \"thickness=\"\n    ],\n    \"\\\\gmshVoronoi,\\\\gmshVoronoiinc\": [\n      \"color=\",\n      \"colorVoronoi=\",\n      \"print=${1|none,points|}\",\n      \"meshpoint=${1:letter(s)}\",\n      \"circumpoint=${1:letter(s)}\",\n      \"tikz\",\n      \"scale=\",\n      \"delaunay=${1|none,show|}\",\n      \"styleDelaunay=${1|none,dashed|}\",\n      \"styleVoronoi=${1|none,dashed|}\",\n      \"thickness=\",\n      \"thicknessVoronoi=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luamml-demo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luamml-demo#c\": [\n      \"tracing\",\n      \"structelem\",\n      \"files\",\n      \"l3build\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luamml-demo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luamodulartables.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luaModularMult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaModularMult{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"luaModularMult\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaModularMult[${2:options%keyvals}]{${1:integer}}\",\n        \"keys\": [\n          \"\\\\luaModularMult\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaModularAdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaModularAdd{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"luaModularAdd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaModularAdd[${2:options%keyvals}]{${1:integer}}\",\n        \"keys\": [\n          \"\\\\luaModularAdd\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\luaModularMult\": [\n      \"multlabel=${1:text}\",\n      \"headline=${1:command}\",\n      \"midline=${1:command}\"\n    ],\n    \"\\\\luaModularAdd\": [\n      \"addlabel=${1:text}\",\n      \"headline=${1:command}\",\n      \"midline=${1:command}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luamplib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mplibforcehmode\"\n    },\n    {\n      \"name\": \"mplibnoforcehmode\"\n    },\n    {\n      \"name\": \"mpfig\"\n    },\n    {\n      \"name\": \"mpfig*\"\n    },\n    {\n      \"name\": \"endmpfig\"\n    },\n    {\n      \"name\": \"mpfiginstancename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpliblegacybehavior\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpliblegacybehavior{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MPwidth\"\n    },\n    {\n      \"name\": \"MPheight\"\n    },\n    {\n      \"name\": \"MPllx\"\n    },\n    {\n      \"name\": \"MPlly\"\n    },\n    {\n      \"name\": \"MPurx\"\n    },\n    {\n      \"name\": \"MPury\"\n    },\n    {\n      \"name\": \"everymplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everymplib{${1:MetaPost code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"everymplib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"everymplib[${2:instance name}]{${1:MetaPost code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"everyendmplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyendmplib{${1:MetaPost code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"everyendmplib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"everyendmplib[${2:instance name}]{${1:MetaPost code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mpdim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpdim{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"mpcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"mplibnumbersystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibnumbersystem{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibnumbersystem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibmakenocache\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibmakenocache{${1:file1,file2,...%file}}\"\n      }\n    },\n    {\n      \"name\": \"mplibcancelnocache\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibcancelnocache{${1:file1,file2,...%file}}\"\n      }\n    },\n    {\n      \"name\": \"mplibcachedir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibcachedir{${1:directory path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mplibtextextlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibtextextlabel{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibcodeinherit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibcodeinherit{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currentmpinstancename\"\n    },\n    {\n      \"name\": \"mplibglobaltextext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibglobaltextext{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibverbatim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibverbatim{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibshowlog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibshowlog{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibsetformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibsetformat{${1:format name%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibsetformat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemplibgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemplibgroup{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mplibcode\"\n    },\n    {\n      \"name\": \"mplibcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:instance name}]\"\n      }\n    },\n    {\n      \"name\": \"mppattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mppattern\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mppattern}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mplibgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mplibgroup\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mplibgroup}\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\mpliblegacybehavior#c,\\\\mplibtextextlabel#c,\\\\mplibcodeinherit#c,\\\\mplibglobaltextext#c,\\\\mplibverbatim#c,\\\\mplibshowlog#c\": [\n      \"enable\",\n      \"disable\"\n    ],\n    \"\\\\mplibnumbersystem#c\": [\n      \"scaled\",\n      \"double\",\n      \"decimal\"\n    ],\n    \"\\\\begin{mppattern}\": [\n      \"xstep=${1:number}\",\n      \"ystep=${1:number}\",\n      \"xshift=${1:number}\",\n      \"yshift=${1:number}\",\n      \"bbox=\\\"${1:llx lly urx ury}\\\"\",\n      \"matrix=\\\"${1:xx xy yx yy}\\\"\",\n      \"resources=${1:PDF resources}\",\n      \"colored\"\n    ],\n    \"\\\\mplibsetformat#c\": [\n      \"plain\",\n      \"metafun\"\n    ],\n    \"\\\\begin{mplibgroup}\": [\n      \"asgroup=${1:string}\",\n      \"bbox=\\\"${1:llx lly urx ury}\\\"\",\n      \"matrix=\\\"${1:xx xy yx yy}\\\"\",\n      \"resources=${1:PDF resources}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luanumint.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"breqn\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luaMidpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaMidpt{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaMidpt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaMidpt[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaMidptSteps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaMidptSteps{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaMidptSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaMidptSteps[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaTrapz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaTrapz{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaTrapz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaTrapz[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaTrapzSteps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaTrapzSteps{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaTrapzSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaTrapzSteps[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaSimpsonOneThird\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSimpsonOneThird{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaSimpsonOneThird\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaSimpsonOneThird[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaSimpsonOneThirdSteps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSimpsonOneThirdSteps{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaSimpsonOneThirdSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaSimpsonOneThirdSteps[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaSimpsonThreeEighth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSimpsonThreeEighth{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaSimpsonThreeEighth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaSimpsonThreeEighth[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luaSimpsonThreeEighthSteps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSimpsonThreeEighthSteps{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"luaSimpsonThreeEighthSteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaSimpsonThreeEighthSteps[${2:options%keyvals}]{${1:function}}\",\n        \"keys\": [\n          \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\luaMidpt,\\\\luaMidptSteps,\\\\luaTrapz,\\\\luaTrapzSteps,\\\\luaSimpsonOneThird,\\\\luaSimpsonOneThirdSteps,\\\\luaSimpsonThreeEighth,\\\\luaSimpsonThreeEighthSteps\": [\n      \"a=${1:number}\",\n      \"b=${1:number}\",\n      \"n=${1:integer}\",\n      \"func=${1:label}\",\n      \"trun=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaoptions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luaotfload\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setluaoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setluaoption{${1:family}}{${2:option%keyvals}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"useluaoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"useluaoption{${1:family}}{${2:option%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaotfload.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luapackageloader.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"luamplib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luaplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaplot{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luaplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luaplot[${2:options%keyvals}]{${1:function%definition}}\",\n        \"keys\": [\n          \"\\\\luaplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"luatikzpath\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"luatikzpath{${1:function%definition}}{${2:xmin}}{${3:xmax}}{${4:plot points}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\luaplot\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"plotpts=${1:integer}\",\n      \"hor=\",\n      \"ver=\",\n      \"clr={'${1:color1,color2,...}'}\",\n      \"plotsty={'${1:style1,style2,...}'}\",\n      \"plotoptions={${1:MetaPost code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaprogtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LPTNewTable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LPTNewTable{${1:name%specialDef}}{${2:num cols}}{${3:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"LPTNewTable\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"LPTNewTable{${1:name%specialDef}}{${2:num cols}}{${3:preamble}}[${4:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\LPTNewTable\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"LPTSetCurrentTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPTSetCurrentTable{${1:table name%keyvals}}\",\n        \"keys\": [\n          \"\\\\LPTSetCurrentTable#c,\\\\LPTDeleteTable#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LPTGetCurrentTable\"\n    },\n    {\n      \"name\": \"LPTAddRow\"\n    },\n    {\n      \"name\": \"LPTAddRow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LPTAddRow[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\LPTAddRow,\\\\LPTSetRowProp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LPTSetRowProp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LPTSetRowProp{${1:index expr}}{${2:row options%keyvals}}\",\n        \"keys\": [\n          \"\\\\LPTAddRow,\\\\LPTSetRowProp\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"LPTUseTable\"\n    },\n    {\n      \"name\": \"LPTDeleteTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPTDeleteTable{${1:table name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"LPTSetCell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LPTSetCell{${1:index expr}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"LPTSetCell\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"LPTSetCell{${1:index expr}}[${3:shape}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"LPTFill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LPTFill{${1:index expr}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"LPTGetTableNames\"\n    },\n    {\n      \"name\": \"LPTGetTableShape\"\n    },\n    {\n      \"name\": \"LPTGetCellData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPTGetCellData{${1:index expr}}\"\n      }\n    },\n    {\n      \"name\": \"LPTGetCellShape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPTGetCellShape{${1:index expr}}\"\n      }\n    },\n    {\n      \"name\": \"LPTGetCellParent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LPTGetCellParent{${1:index expr}}\"\n      }\n    },\n    {\n      \"name\": \"LPTGetCellMetaIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LPTGetCellMetaIndex{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lptview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:index expr}}\"\n      }\n    },\n    {\n      \"name\": \"lptfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:index expr}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\LPTNewTable\": [\n      \"backend=${1:envname}\",\n      \"default before line=${1:code}\",\n      \"default after line=${1:code}\",\n      \"default after spacing=${1:code}\",\n      \"input method=${1|file,stringbuffer|}\",\n      \"nrows=${1:integer}\"\n    ],\n    \"\\\\LPTSetCurrentTable#c,\\\\LPTDeleteTable#c\": [\n      \"%LPTtablename\"\n    ],\n    \"\\\\LPTAddRow,\\\\LPTSetRowProp\": [\n      \"before line\",\n      \"after line\",\n      \"after spacing\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaquotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dumbquotes\"\n    },\n    {\n      \"name\": \"frdumbquotes\"\n    },\n    {\n      \"name\": \"dedumbquotes\"\n    },\n    {\n      \"name\": \"degmdumbquotes\"\n    },\n    {\n      \"name\": \"dechdumbquotes\"\n    },\n    {\n      \"name\": \"smartquotes\"\n    },\n    {\n      \"name\": \"frsmartquotes\"\n    },\n    {\n      \"name\": \"desmartquotes\"\n    },\n    {\n      \"name\": \"degmsmartquotes\"\n    },\n    {\n      \"name\": \"dechsmartquotes\"\n    },\n    {\n      \"name\": \"desingle\"\n    },\n    {\n      \"name\": \"dedouble\"\n    },\n    {\n      \"name\": \"degmsingle\"\n    },\n    {\n      \"name\": \"degmdouble\"\n    },\n    {\n      \"name\": \"dqone\"\n    },\n    {\n      \"name\": \"dqtwo\"\n    },\n    {\n      \"name\": \"sqoneleft\"\n    },\n    {\n      \"name\": \"sqoneright\"\n    },\n    {\n      \"name\": \"apost\"\n    },\n    {\n      \"name\": \"sqtwoleft\"\n    },\n    {\n      \"name\": \"sqtworight\"\n    },\n    {\n      \"name\": \"glmtl\"\n    },\n    {\n      \"name\": \"glmtr\"\n    },\n    {\n      \"name\": \"degmtl\"\n    },\n    {\n      \"name\": \"degmtr\"\n    },\n    {\n      \"name\": \"sglmtl\"\n    },\n    {\n      \"name\": \"sglmtr\"\n    },\n    {\n      \"name\": \"desgmtl\"\n    },\n    {\n      \"name\": \"desgmtr\"\n    },\n    {\n      \"name\": \"bcktck\"\n    },\n    {\n      \"name\": \"lqprime\"\n    },\n    {\n      \"name\": \"lqdoubleprime\"\n    },\n    {\n      \"name\": \"okina\"\n    },\n    {\n      \"name\": \"abbrevsingleoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abbrevsingleon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechdoublequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechdoublequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotelinestartoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotelinestarton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotescloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotescloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotespcloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotespcloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotespoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dechsinglequotespon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedoublequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedoublequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmdoublequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmdoublequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmsinglequotelinestartoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmsinglequotelinestarton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmsinglequotescloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degmsinglequotescloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotelinestartoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotelinestarton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotescloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotescloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotespcloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotespcloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotespoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desinglequotespon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frdoublequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frdoublequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotelinestartoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotelinestarton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotescloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotescloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotespcloseoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotespcloseon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotespoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frsinglequotespon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sglmtlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sglmtlpdech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sglmtrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sglmtrpdech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequotelinestartoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequotelinestarton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequotesoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequotespoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlequotespon\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luaquotes#c\": [\n      \"en\",\n      \"fr\",\n      \"de\",\n      \"degm\",\n      \"dech\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luaquotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luarandom.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makeSimpleRandomNumberList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeSimpleRandomNumberList{${1:least}}{${2:greatest}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeSimpleRandomNumberList\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"makeSimpleRandomNumberList[${4:seed}]{${1:least}}{${2:greatest}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeRandomNumberList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeRandomNumberList{${1:least}}{${2:greatest}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeRandomNumberList\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"makeRandomNumberList[${4:seed}]{${1:least}}{${2:greatest}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"getNumberFromList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getNumberFromList{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luaset.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luamaths\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luaSetNew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaSetNew{${1:name}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetPrint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSetPrint{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetUnion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"luaSetUnion{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetIntersection\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"luaSetIntersection{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetDifference\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"luaSetDifference{${1:name}}{${2:name1}}{${3:name2}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetCardinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaSetCardinal{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetBelongsto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaSetBelongsto{${1:element}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetSubseteq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaSetSubseteq{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetSubset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaSetSubset{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"luaSetEqual\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaSetEqual{${1:name1}}{${2:name2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luasseq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ssmoveto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssmoveto{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssmove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssmove{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdrop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdrop{${1:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssdrop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssdrop[${2:options%keyvals}]{${1:mathcode%formula}}\",\n        \"keys\": [\n          \"\\\\ssdrop,\\\\ssdropextension\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssdropbull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdropbull{${1:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssdropboxed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdropboxed{${1:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssdropcircled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdropcircled{${1:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssgoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssgoto{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssbeginprefixcontext\"\n    },\n    {\n      \"name\": \"ssendprefixcontext\"\n    },\n    {\n      \"name\": \"ssprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ssresetprefix\"\n    },\n    {\n      \"name\": \"ssabsgoto\"\n    },\n    {\n      \"name\": \"ssdroplabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdroplabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssdroplabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssdroplabel[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\ssdroplabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssdropextension\"\n    },\n    {\n      \"name\": \"ssdropextension\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssdropextension[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ssstroke\"\n    },\n    {\n      \"name\": \"ssstroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssstroke[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ssstroke,\\\\ssline,\\\\ssarrow,\\\\ssvoidline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sscurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sscurve{${1:curve value}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdashedcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdashedcurve{${1:curve value}}\"\n      }\n    },\n    {\n      \"name\": \"ssdottedstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdottedcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdottedcurve{${1:curve value}}\"\n      }\n    },\n    {\n      \"name\": \"ssarrowhead\"\n    },\n    {\n      \"name\": \"ssarrowhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssarrowhead[${1:arrow style}]\"\n      }\n    },\n    {\n      \"name\": \"ssinversearrowhead\"\n    },\n    {\n      \"name\": \"ssinversearrowhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssinversearrowhead[${1:arrow style}]\"\n      }\n    },\n    {\n      \"name\": \"ssline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssline[${3:options%keyvals}]{${1:x}}{${2:y}}\",\n        \"keys\": [\n          \"\\\\ssstroke,\\\\ssline,\\\\ssarrow,\\\\ssvoidline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sscurvedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurvedline{${1:curve value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdashedline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"sscurveddashedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurveddashedline{${1:curve value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssarrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssarrow[${3:options%keyvals}]{${1:x}}{${2:y}}\",\n        \"keys\": [\n          \"\\\\ssstroke,\\\\ssline,\\\\ssarrow,\\\\ssvoidline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sscurvedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurvedarrow{${1:curve value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdashedarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"sscurveddashedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurveddashedarrow{${1:curve value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssvoidline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssvoidline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssvoidline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssvoidline[${3:options%keyvals}]{${1:x}}{${2:y}}\",\n        \"keys\": [\n          \"\\\\ssstroke,\\\\ssline,\\\\ssarrow,\\\\ssvoidline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssvoidarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssvoidarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssinversevoidarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssinversevoidarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssbullstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssbullstring{${1:x}}{${2:y}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"ssinfbullstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssinfbullstring{${1:x}}{${2:y}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"ssgrayout\"\n    },\n    {\n      \"name\": \"ssgrayout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssgrayout[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"ssconncolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sslabelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssplacecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqxstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqystart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplace{${1:x}}{${2:y}}{${3:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssplaceboxed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplaceboxed{${1:x}}{${2:y}}{${3:mathcode%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssplacecircled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplacecircled{${1:x}}{${2:y}}{${3:mathcode%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sseq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x-range}}{${2:y-range}}\"\n      }\n    },\n    {\n      \"name\": \"sseq\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:x-range}}{${2:y-range}}\",\n        \"keys\": [\n          \"\\\\begin{sseq}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/luasseq#c\": [\n      \"debug\"\n    ],\n    \"\\\\begin{sseq}\": [\n      \"grid=${1|none,crossword,go,dots,chess|}\",\n      \"gridstroke=\",\n      \"gapsize=\",\n      \"xgapsize=\",\n      \"ygapsize=\",\n      \"entrysize=\",\n      \"labels=${2|none,numbers,{${1:x1;x2;...}}|}\",\n      \"xlabels=${2|none,numbers,{${1:x1;x2;...}}|}\",\n      \"ylabels=${2|none,numbers,{${1:x1;x2;...}}|}\",\n      \"labelstep=${1:integer}\",\n      \"xlabelstep=${1:integer}\",\n      \"ylabelstep=${1:integer}\",\n      \"leak=\",\n      \"xleak=\",\n      \"yleak=\",\n      \"arrows=${1:arrow type}\",\n      \"packing=${1|auto,horizontal,vertical,diagonal|}\"\n    ],\n    \"\\\\ssdrop,\\\\ssdropextension\": [\n      \"circled\",\n      \"boxed\",\n      \"color=\",\n      \"name=${1:name}\"\n    ],\n    \"\\\\ssdroplabel\": [\n      \"color=\",\n      \"pos=${1|U,LU,L,LD,D,RD,R,RU|}\",\n      \"U\",\n      \"LU\",\n      \"L\",\n      \"LD\",\n      \"D\",\n      \"RD\",\n      \"R\",\n      \"RU\"\n    ],\n    \"\\\\ssstroke,\\\\ssline,\\\\ssarrow,\\\\ssvoidline\": [\n      \"color=\",\n      \"curve=${1:value}\",\n      \"dashed\",\n      \"dashed=${1:dashing type}\",\n      \"dotted\",\n      \"dotted=${1:dashing type}\",\n      \"arrowfrom\",\n      \"arrowfrom=${1:dashing type}\",\n      \"arrowto\",\n      \"arrowto=${1:dashing type}\",\n      \"void\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luasseq#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"luatexbanner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directlua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directlua{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"latelua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latelua{${1:lua code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"luaescapestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luaescapestring{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"fontid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfontid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nospaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scantextokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnamedcs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alignmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aligntab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediateassignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediateassigned\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcondition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveboxresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveimageresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useboxresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useimageresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedboxresourceindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedimageresourceindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastsavedimageresourcepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protrusionboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wordboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagebottomoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetopoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerightoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageleftoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokencontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokenname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXgluestretchorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXglueshrinkorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deferred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreligaturesinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandglyphsinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabsnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifabsdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linedir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pardir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pardir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodydir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hjcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenationbounds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explicitdiscretionary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automaticdiscretionary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftghost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightghost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenpenaltymode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automatichyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explicithyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exceptionpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnumdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uradical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uroot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uoverdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uunderdelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiterover\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiterunder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variablefam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampeddisplaystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedtextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathquad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoperatorsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverbarvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderbarvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicalvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreebefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreeafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathradicaldegreeraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstackvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstacknumup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathstackdenomdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionnumvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractionnumup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondenomvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondenomdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathfractiondelsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovevgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovebgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitabovekern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathlimitbelowkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverdelimitervgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoverdelimiterbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderdelimitervgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathunderdelimiterbgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubshiftdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubshiftdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupshiftdrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupshiftup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubsupshiftdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubtopmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupbottommin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsupsubbottommax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathsubsupvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathspaceafterscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathconnectoroverlapmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathskewedfractionhgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathskewedfractionvgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathordinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoprelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathoppunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbinpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathbininnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathrelinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopenpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathopeninnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathclosebinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloserelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathclosepunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcloseinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctopspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctopenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathpunctinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerordspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinneropspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerbinspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerrelspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinneropenspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerclosespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerpunctspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathinnerinnerspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathnolimitsupfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathnolimitsubfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uhextensible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uvextensible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uskewed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uskewedwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umiddle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usuperscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usubscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustartmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustopmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustartdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ustopdisplaymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Unosuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unosuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Unosubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unosubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localinterlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localbrokenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localleftbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localrightbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compoundhyphenmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dviextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvifeedback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvivariable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlocalcontrol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixupboxesmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luacopyinputnodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulesfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulesmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrulethicknessmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newattribute{${1:attribute%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newcatcodetable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcatcodetable{${1:catcodetable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluafunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluafunction{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"newluacmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluacmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newprotectedluacmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newprotectedluacmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newwhatsit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newwhatsit{${1:whatsit%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluabytecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluabytecode{${1:bytecode%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newluachunkname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluachunkname{${1:chunkname%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setattribute{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"unsetattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unsetattribute{${1:attribute}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatex85.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"ctablestack\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CatcodeTableIniTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CatcodeTableString\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CatcodeTableLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CatcodeTableLaTeXAtLetter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CatcodeTableOther\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CatcodeTableExpl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetCatcodeRange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetCatcodeRange{${1:start}}{${2:end}}{${3:catcode}}\"\n      }\n    },\n    {\n      \"name\": \"EndCatcodeRegime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PushCatcodeTableNumStack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopCatcodeTableNumStack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newluatexcatcodetable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluatexcatcodetable{${1:catcodetable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setcatcodetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setluatexcatcodetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RequireLuaModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireLuaModule{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"RequireLuaModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequireLuaModule{${1:file}}[${2:info}]\"\n      }\n    },\n    {\n      \"name\": \"newluatexattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newluatexattribute{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"setluatexattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setluatexattribute{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"unsetluatexattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unsetluatexattribute{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"luatexluaescapestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luatexluaescapestring{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"luatexlatelua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luatexlatelua{${1:lua code}}\"\n      }\n    },\n    {\n      \"name\": \"luatexscantextokens\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-adjust.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ltjenableadjust\"\n    },\n    {\n      \"name\": \"ltjenableadjust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ltjenableadjust[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ltjenableadjust\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjdisableadjust\"\n    },\n    {\n      \"name\": \"ltjghostbeforejachar\"\n    },\n    {\n      \"name\": \"ltjghostafterjachar\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ltjenableadjust\": [\n      \"lineend=${1|false,true,extended|}\",\n      \"priority\",\n      \"profile\",\n      \"linestep\"\n    ],\n    \"\\\\ltjsetparameter,\\\\ltjglobalsetparameter\": [\n      \"stretch_priority={${1:keyval list}}\",\n      \"shrink_priority={${1:keyval list}}\",\n      \"linestep_factor=${1:real}\",\n      \"profile_hgap_factor=${1:real}\"\n    ],\n    \"\\\\ltjgetparameter\": [\n      \"stretch_priority\",\n      \"shrink_priority\",\n      \"linestep_factor\",\n      \"profile_hgap_factor\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-ajmacros.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ajTsumesuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumesuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajTsumesuji*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumesuji*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaru*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaru*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaru*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaru*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaruKaku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaruKaku{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKuroMaruKaku*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKuroMaruKaku*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakko{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakko*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakko*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRoman*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRoman*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajroman*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajroman*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajPeriod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajPeriod{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoalph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoYobi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoYobi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoAlph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoHira\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoHira{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoKata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoKata{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKakkoKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKakkoKansuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajMaruKansuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruKansuji{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajNijuMaru\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajNijuMaru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajRecycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajRecycle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajHasenKakuAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajHasenKakuAlph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajCross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajCross{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSlanted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSlanted{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSlanted*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSlanted*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajApostrophe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajApostrophe{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajYear{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSquareMark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSquareMark{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajSquareMark*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajSquareMark*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajHishi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajHishi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"offsetalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetAlph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetHira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetYobi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetMaru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroMaru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetMaruKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"offsetKuroMaruKaku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ajMaruYobi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajMaruYobi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajTsumekakko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajTsumekakko{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKosu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKosu{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajFrac{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"ajLig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajLig{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"ajPICT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajPICT{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\ajPICT#c,\\\\※#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ajArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajArrow{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\ajArrow#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ajKunten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajKunten{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOriginalKundokuStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareOriginalKundokuStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeclareOriginalKundokuStyle[${1:size commands}]\"\n      }\n    },\n    {\n      \"name\": \"kokana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kokana{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"retenform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"retenkana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retenkana{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kaeriten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kaeriten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"kundokusize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAJKundokuStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareAJKundokuStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeclareAJKundokuStyle[${1:size commands}]\"\n      }\n    },\n    {\n      \"name\": \"ajCIDVarDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajCIDVarDef{${1:char}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajUTFVarDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajUTFVarDef{${1:char}}{${2:hex number}}\"\n      }\n    },\n    {\n      \"name\": \"ajVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajVar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"ajHashigoTaka\"\n    },\n    {\n      \"name\": \"ajTsuchiYoshi\"\n    },\n    {\n      \"name\": \"ajTatsuSaki\"\n    },\n    {\n      \"name\": \"ajMayuHama\"\n    },\n    {\n      \"name\": \"ajLeader\"\n    },\n    {\n      \"name\": \"ajLeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ajLeader{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ajLeader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ajLeader[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ajQuotedef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ajQuote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ajQuote{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ajPICT#c,\\\\※#c\": [\n      \"Club\",\n      \"Club*\",\n      \"Heart\",\n      \"Heart*\",\n      \"Spade\",\n      \"Spade*\",\n      \"Diamond\",\n      \"Diamond*\",\n      \"電話\",\n      \"〒\",\n      \"晴\",\n      \"曇\",\n      \"雨\",\n      \"雪\",\n      \"→\",\n      \"←\",\n      \"↑\",\n      \"↓\",\n      \"野球\",\n      \"湯\",\n      \"花\",\n      \"花*\",\n      \"サッカー\"\n    ],\n    \"\\\\ajArrow#c\": [\n      \"LeftTriangle\",\n      \"RightTriangle\",\n      \"DOWN\",\n      \"UP\",\n      \"LEFT\",\n      \"RIGHT\",\n      \"RIGHT*\",\n      \"LEFT*\",\n      \"UP*\",\n      \"DOWN*\",\n      \"RightHand\",\n      \"LeftHand\",\n      \"UpHand\",\n      \"DownHand\",\n      \"Left/Right\",\n      \"Right/Left\",\n      \"Up/Down\",\n      \"Down/Up\",\n      \"LeftScissors\",\n      \"RightScissors\",\n      \"UpScissors\",\n      \"DownScissors\",\n      \"LeftTriangle*\",\n      \"RightTriangle*\",\n      \"Left\",\n      \"Right\",\n      \"Up\",\n      \"Down\",\n      \"LeftDouble\",\n      \"LeftRight*\",\n      \"RightDown\",\n      \"LeftDown\",\n      \"LeftUp\",\n      \"RightUp\",\n      \"Right/Left*\",\n      \"Left/Right*\",\n      \"Right/Left+\",\n      \"Down/Up+\",\n      \"Left+\",\n      \"Right+\",\n      \"Up+\",\n      \"Down+\",\n      \"LeftRight+\",\n      \"UpDown+\",\n      \"LeftAngle\",\n      \"RightAngle\",\n      \"UpAngle\",\n      \"DownAngle\",\n      \"LeftAngle*\",\n      \"RightAngle*\",\n      \"UpAngle*\",\n      \"DownAngle*\",\n      \"RightDouble\",\n      \"LeftRightDouble\",\n      \"RightUp*\",\n      \"RightDown*\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-compat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja-core\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"euc\"\n    },\n    {\n      \"name\": \"kuten\"\n    },\n    {\n      \"name\": \"jis\"\n    },\n    {\n      \"name\": \"sjis\"\n    },\n    {\n      \"name\": \"ucs\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-core.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luaotfload\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"ltj-base\"\n    },\n    {\n      \"name\": \"ltj-latex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ltjlineendcomment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RequireLuaTeXjaSubmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireLuaTeXjaSubmodule{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RequireLuaTeXjaSubmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RequireLuaTeXjaSubmodule{${1:name}}[${2:date}]\"\n      }\n    },\n    {\n      \"name\": \"asluastring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asluastring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"zw\"\n    },\n    {\n      \"name\": \"zh\"\n    },\n    {\n      \"name\": \"disinhibitglue\"\n    },\n    {\n      \"name\": \"inhibitglue\"\n    },\n    {\n      \"name\": \"<\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltjfakeparbegin\"\n    },\n    {\n      \"name\": \"ltjfakeboxbdd\"\n    },\n    {\n      \"name\": \"insertxkanjiskip\"\n    },\n    {\n      \"name\": \"insertkanjiskip\"\n    },\n    {\n      \"name\": \"ltjdefcharrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ltjdefcharrange{${1:name}}{${2:ranges}}\"\n      }\n    },\n    {\n      \"name\": \"ltjsetkanjiskip\"\n    },\n    {\n      \"name\": \"ltjsetxkanjiskip\"\n    },\n    {\n      \"name\": \"ltjsetparameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjsetparameter{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjsetparameter,\\\\ltjglobalsetparameter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjglobalsetparameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjglobalsetparameter{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjsetparameter,\\\\ltjglobalsetparameter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjgetparameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjgetparameter{${1:parameter%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjgetparameter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjjachar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltjalchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tate\"\n    },\n    {\n      \"name\": \"yoko\"\n    },\n    {\n      \"name\": \"dtou\"\n    },\n    {\n      \"name\": \"utod\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ltjsetparameter,\\\\ltjglobalsetparameter\": [\n      \"kcatcode={${1:charcode,natural number}}\",\n      \"prebreakpenalty={${1:charcode,penalty}}\",\n      \"postbreakpenalty={${1:charcode,penalty}}\",\n      \"jatextfont={${1:jfam,jfont cs}}\",\n      \"jascriptfont={${1:jfam,jfont cs}}\",\n      \"jascriptscriptfont={${1:jfam,jfont cs}}\",\n      \"yalbaselineshift=\",\n      \"yjabaselineshift=\",\n      \"talbaselineshift=\",\n      \"tjabaselineshift=\",\n      \"jaxspmode={${1:charcode,mode}}\",\n      \"alxspmode={${1:charcode,penalty}}\",\n      \"autospacing\",\n      \"autoxspacing\",\n      \"kanjiskip=\",\n      \"xkanjiskip=\",\n      \"jcharwidowpenalty=${1:penalty}\",\n      \"differentjfm=${1|average,both,large,small,pleft,pright,paverage|}\",\n      \"jacharrange=${1:ranges}\",\n      \"kansujichar={${1:digit,charcode}}\",\n      \"direction=${1:dir}\"\n    ],\n    \"\\\\ltjgetparameter\": [\n      \"differentjfm\",\n      \"autospacing\",\n      \"autoxspacing\",\n      \"kanjiskip\",\n      \"xkanjiskip\",\n      \"prebreakpenalty\",\n      \"postbreakpenalty\",\n      \"jaxspmode\",\n      \"alxspmode\",\n      \"jacharrange\",\n      \"kansujichar\",\n      \"adjustdir\",\n      \"boxdir\",\n      \"chartorange\",\n      \"yalbaselineshift\",\n      \"yjabaselineshift\",\n      \"talbaselineshift\",\n      \"tjabaselineshift\",\n      \"direction\",\n      \"kcatcode\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-fontspec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    },\n    {\n      \"name\": \"jfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jfontspec{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"jfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jfontspec[${2:font features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmainjfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainjfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmainjfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainjfont[${2:font features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsansjfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsansjfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setsansjfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsansjfont[${2:font features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonojfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonojfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmonojfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonojfont[${2:font features%keyvals}]{${1:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newjfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newjfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewjfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewjfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setjfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setjfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"providejfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providejfontfamily{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providejfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providejfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newjfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newjfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"newjfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newjfontface{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewjfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewjfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"renewjfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewjfontface{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setjfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setjfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setjfontface{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providejfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providejfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"providejfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providejfontface{${1:cmd}}[${3:font features%keyvals}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"defaultjfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultjfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultjfontfeatures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defaultjfontfeatures[${2:font name list}]{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addjfontfeatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addjfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatexja-fontspec#c\": [\n      \"match\",\n      \"scale=${1:factor}\",\n      \"tuenc\",\n      \"euenc\",\n      \"math\",\n      \"no-math\",\n      \"config\",\n      \"no-config\",\n      \"quiet\",\n      \"silent\"\n    ],\n    \"\\\\jfontspec,\\\\setmainjfont,\\\\setsansjfont,\\\\setmonojfont,\\\\newjfontfamily,\\\\renewjfontfamily,\\\\setjfontfamily,\\\\newjfontface,\\\\defaultjfontfeatures,\\\\addjfontfeatures,\\\\addjfontfeature\": [\n      \"CID=${1:name}\",\n      \"JFM=${1:name}\",\n      \"JFM-var=${1:name}\",\n      \"NoEmbed\",\n      \"Kanjiskip\",\n      \"TateFeatures={${1:features}}\",\n      \"TateFont=${1:font}\",\n      \"YokoFeatures={${1:features}}\",\n      \"AltFont={${1:specification}}\",\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatexja-fontspec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatexja-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"luatexja-ajmacros\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ajBall\"\n    },\n    {\n      \"name\": \"ajBlackFlorette\"\n    },\n    {\n      \"name\": \"ajBlackSesame\"\n    },\n    {\n      \"name\": \"ajCheckmark\"\n    },\n    {\n      \"name\": \"ajCloud\"\n    },\n    {\n      \"name\": \"ajClub\"\n    },\n    {\n      \"name\": \"ajCommandKey\"\n    },\n    {\n      \"name\": \"ajDiamond\"\n    },\n    {\n      \"name\": \"ajDKunoji\"\n    },\n    {\n      \"name\": \"ajDKunojiwithBou\"\n    },\n    {\n      \"name\": \"ajDownBArrow\"\n    },\n    {\n      \"name\": \"ajDownHand\"\n    },\n    {\n      \"name\": \"ajDownScissors\"\n    },\n    {\n      \"name\": \"ajDownWArrow\"\n    },\n    {\n      \"name\": \"ajGoteMark\"\n    },\n    {\n      \"name\": \"ajHeart\"\n    },\n    {\n      \"name\": \"ajHotSpring\"\n    },\n    {\n      \"name\": \"ajJAS\"\n    },\n    {\n      \"name\": \"ajJIS\"\n    },\n    {\n      \"name\": \"ajKoto\"\n    },\n    {\n      \"name\": \"ajKunoji\"\n    },\n    {\n      \"name\": \"ajKunojiwithBou\"\n    },\n    {\n      \"name\": \"ajLeftBArrow\"\n    },\n    {\n      \"name\": \"ajLeftDownArrow\"\n    },\n    {\n      \"name\": \"ajLeftHand\"\n    },\n    {\n      \"name\": \"ajLeftScissors\"\n    },\n    {\n      \"name\": \"ajLeftUpArrow\"\n    },\n    {\n      \"name\": \"ajLeftWArrow\"\n    },\n    {\n      \"name\": \"ajMasu\"\n    },\n    {\n      \"name\": \"ajNinoji\"\n    },\n    {\n      \"name\": \"ajPhone\"\n    },\n    {\n      \"name\": \"ajPostal\"\n    },\n    {\n      \"name\": \"ajReturnKey\"\n    },\n    {\n      \"name\": \"ajRightBArrow\"\n    },\n    {\n      \"name\": \"ajRightDownArrow\"\n    },\n    {\n      \"name\": \"ajRightHand\"\n    },\n    {\n      \"name\": \"ajRightScissors\"\n    },\n    {\n      \"name\": \"ajRightUpArrow\"\n    },\n    {\n      \"name\": \"ajRightWArrow\"\n    },\n    {\n      \"name\": \"ajSenteMark\"\n    },\n    {\n      \"name\": \"ajSnowman\"\n    },\n    {\n      \"name\": \"ajSpade\"\n    },\n    {\n      \"name\": \"ajSun\"\n    },\n    {\n      \"name\": \"ajUmbrella\"\n    },\n    {\n      \"name\": \"ajUpBArrow\"\n    },\n    {\n      \"name\": \"ajUpHand\"\n    },\n    {\n      \"name\": \"ajUpScissors\"\n    },\n    {\n      \"name\": \"ajUpWArrow\"\n    },\n    {\n      \"name\": \"ajUta\"\n    },\n    {\n      \"name\": \"ajvarClub\"\n    },\n    {\n      \"name\": \"ajvarDiamond\"\n    },\n    {\n      \"name\": \"ajvarHeart\"\n    },\n    {\n      \"name\": \"ajvarNinoji\"\n    },\n    {\n      \"name\": \"ajvarPostal\"\n    },\n    {\n      \"name\": \"ajvarSpade\"\n    },\n    {\n      \"name\": \"ajVisibleSpace\"\n    },\n    {\n      \"name\": \"ajWhiteFlorette\"\n    },\n    {\n      \"name\": \"ajWhiteSesame\"\n    },\n    {\n      \"name\": \"ajYori\"\n    },\n    {\n      \"name\": \"ajYusuriten\"\n    },\n    {\n      \"name\": \"CID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CID{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"UTF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTF{${1:hex number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-preset.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"luatexja\"\n    },\n    {\n      \"name\": \"luatexja-fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ebdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebseries\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"gtebfamily\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"ltdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltseries\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"mgfamily\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"texteb\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texteb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlt\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmg\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rubyfamily\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"ltjnewpreset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ltjnewpreset{${1:name%specialDef}}{${2:specification%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c\",\n          \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c,\\\\ltjapplypreset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ltjnewpreset*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ltjnewpreset*{${1:name%specialDef}}{${2:specification%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c\",\n          \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c,\\\\ltjapplypreset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ltjapplypreset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjapplypreset{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c,\\\\ltjapplypreset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatexja-preset#c\": [\n      \"fontspec\",\n      \"nfssonly\",\n      \"nodeluxe\",\n      \"deluxe\",\n      \"expert\",\n      \"bold\",\n      \"jis90\",\n      \"jis2004\",\n      \"jfm_yoko=${1:jfm}\",\n      \"jfm_tate=${1:jfm}\",\n      \"jis\",\n      \"kozuka-pro\",\n      \"kozuka-pr6\",\n      \"kozuka-pr6n\",\n      \"hiragino-pro\",\n      \"hiragino-pron\",\n      \"bizud\",\n      \"morisawa-pro\",\n      \"morisawa-pr6n\",\n      \"yu-win\",\n      \"yu-win10\",\n      \"yu-osx\",\n      \"moga-mobo\",\n      \"moga-mobo-ex\",\n      \"ume\",\n      \"sourcehan\",\n      \"sourcehan-jp\",\n      \"noto-otc\",\n      \"noto-otf\",\n      \"noto-jp\",\n      \"haranoaji\",\n      \"noembed\",\n      \"ipa\",\n      \"ipaex\",\n      \"ms\",\n      \"ipa-hg\",\n      \"ipaex-hg\",\n      \"ms-hg\",\n      \"match\",\n      \"scale=${1:factor}\",\n      \"tuenc\",\n      \"euenc\",\n      \"math\",\n      \"no-math\",\n      \"config\",\n      \"no-config\",\n      \"quiet\",\n      \"silent\"\n    ],\n    \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c\": [\n      \"mc-l=${1:font}\",\n      \"mc-m=${1:font}\",\n      \"mc-b=${1:font}\",\n      \"mc-bx=${1:font}\",\n      \"gt-m=${1:font}\",\n      \"gt-b=${1:font}\",\n      \"gt-bx=${1:font}\",\n      \"gt-eb=${1:font}\",\n      \"mg-m=${1:font}\",\n      \"mc=${1:font}\",\n      \"gt=${1:font}\"\n    ],\n    \"\\\\ltjnewpreset#c,\\\\ltjnewpreset*#c,\\\\ltjapplypreset#c\": [\n      \"%luatexjapreset\",\n      \"kozuka-pro\",\n      \"kozuka-pr6\",\n      \"kozuka-pr6n\",\n      \"hiragino-pro\",\n      \"hiragino-pron\",\n      \"bizud\",\n      \"morisawa-pro\",\n      \"morisawa-pr6n\",\n      \"yu-win\",\n      \"yu-win10\",\n      \"yu-osx\",\n      \"moga-mobo\",\n      \"moga-mobo-ex\",\n      \"ume\",\n      \"sourcehan\",\n      \"sourcehan-jp\",\n      \"noto-otc\",\n      \"noto-otf\",\n      \"haranoaji\",\n      \"noembed\",\n      \"ipa\",\n      \"ipaex\",\n      \"ms\",\n      \"ipa-hg\",\n      \"ipaex-hg\",\n      \"ms-hg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatexja-preset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatexja-ruby.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ltjruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ltjruby{${1:親|${3:文}|${4:字}}{${2:おや}|${5:も}|じ}}\"\n      }\n    },\n    {\n      \"name\": \"ltjruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ltjruby[${2:options%keyvals}]{${1:親|${3:文}|字}}\",\n        \"keys\": [\n          \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:親|${3:文}|${4:字}}{${2:おや}|${5:も}|じ}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ruby[${2:options%keyvals}]{${1:親|${3:文}|字}}\",\n        \"keys\": [\n          \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjsetruby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ltjsetruby{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ltjkenten\"\n    },\n    {\n      \"name\": \"ltjkenten\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ltjkenten[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kenten\"\n    },\n    {\n      \"name\": \"kenten\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kenten[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ltjruby,\\\\ruby,\\\\ltjsetruby,\\\\ltjkenten,\\\\kenten\": [\n      \"pre=${1:real}\",\n      \"post=${1:real}\",\n      \"mode=\",\n      \"intrude_jfmgk\",\n      \"intrude_kanjiskip\",\n      \"intrude_xkanjiskip\",\n      \"stretchruby={${1:left}}{${2:middle}}{${3:right}}\",\n      \"stretch={${1:left}}{${2:middle}}{${3:right}}\",\n      \"stretchbol={${1:left}}{${2:middle}}{${3:right}}\",\n      \"stretcheol={${1:left}}{${2:middle}}{${3:right}}\",\n      \"maxmargin=${1:real}\",\n      \"size=${1:real}\",\n      \"intergap=${1:real}\",\n      \"rubysmash\",\n      \"ybaseheight=${1:real}\",\n      \"tbaseheight=${1:real}\",\n      \"baseheight=${1:real}\",\n      \"yrubydepth=${1:real}\",\n      \"trubydepth=${1:real}\",\n      \"rubydepth=${1:real}\",\n      \"kenten=${1:command}\",\n      \"fontcmd=${1:command}\",\n      \"always_highlight_protrusion\",\n      \"naka\",\n      \"kata\"\n    ],\n    \"\\\\ltjsetparameter,\\\\ltjglobalsetparameter\": [\n      \"rubypreintrusion={${1:chr_code,pre_int}}\",\n      \"rubypostintrusion={${1:chr_code,post_int}}\"\n    ],\n    \"\\\\ltjgetparameter\": [\n      \"rubypreintrusion\",\n      \"rubypostintrusion\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatexja-zhfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja-fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kai\"\n    },\n    {\n      \"name\": \"fang\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatexja-zhfonts#c\": [\n      \"SinoType\",\n      \"ZhongYi\",\n      \"Adobe\",\n      \"Founder\",\n      \"HanYi-J\",\n      \"HanYi-F\",\n      \"cwttf\",\n      \"Fandol\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatexja-zhfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatexja.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexja-core\"\n    },\n    {\n      \"name\": \"luatexja-compat\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LuaTeXjaversion\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatexja#c\": [\n      \"disablejfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatexja#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatexko.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"kolabels-utf\"\n    },\n    {\n      \"name\": \"konames-utf\",\n      \"if\": \"hangul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmainhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmainhangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainhangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmainhanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainhanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmainhanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainhanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmainfallbackfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainfallbackfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmainfallbackfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainfallbackfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsanshangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsanshangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsanshangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsanshangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsanshanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsanshanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsanshanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsanshanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsansfallbackfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsansfallbackfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsansfallbackfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsansfallbackfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonohangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonohangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmonohangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonohangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonohanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonohanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmonohanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonohanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonofallbackfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonofallbackfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmonofallbackfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonofallbackfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newhangulfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhangulfontfamily{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhangulfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhangulfontfamily{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhanjafontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhanjafontfamily{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhanjafontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhanjafontfamily{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newfallbackfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfallbackfontfamily{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newfallbackfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfallbackfontfamily{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhangulfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhangulfontface{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhangulfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhangulfontface{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhanjafontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhanjafontface{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhanjafontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhanjafontface{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newfallbackfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfallbackfontface{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newfallbackfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfallbackfontface{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addhangulfontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhangulfontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhangulfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhangulfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhanjafontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhanjafontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhanjafontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhanjafontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addfallbackfontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfallbackfontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addfallbackfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfallbackfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hangulfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangulfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"hangulfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hangulfontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adhochangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adhochangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"adhochangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adhochangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanjafontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanjafontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"hanjafontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanjafontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adhochanjafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adhochanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"adhochanjafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adhochanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fallbackfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fallbackfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"fallbackfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fallbackfontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adhocfallbackfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adhocfallbackfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"adhocfallbackfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adhocfallbackfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"registerpunctuations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerpunctuations{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"registerhangulpunctuations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerhangulpunctuations{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"unregisterpunctuations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unregisterpunctuations{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"unregisterhangulpunctuations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unregisterhangulpunctuations{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"registerbreakableafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerbreakableafter{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"registerbreakablebefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registerbreakablebefore{${1:code1,code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"typesetclassic\"\n    },\n    {\n      \"name\": \"typesetmodern\"\n    },\n    {\n      \"name\": \"typesetvertical\"\n    },\n    {\n      \"name\": \"inhibitglue\"\n    },\n    {\n      \"name\": \"verticaltypesetting\"\n    },\n    {\n      \"name\": \"dotemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotemph{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"dotemphraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotemphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:characters}}{${2:annotation}}\"\n      }\n    },\n    {\n      \"name\": \"rubyfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubynooverlap\"\n    },\n    {\n      \"name\": \"rubyoverlap\"\n    },\n    {\n      \"name\": \"xxruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xxruby{${1:characters}}{${2:annotation}}\"\n      }\n    },\n    {\n      \"name\": \"basestr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubystr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"soutdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uuline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uwave{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashuline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dotuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotuline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ulinedown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markoverwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markoverwith{${1:mark code}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setmathhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathhangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathhangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathhangulblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmathhangulblock{${1:begin}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"hellipsis\"\n    },\n    {\n      \"name\": \"ifluatexkorunningselectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koreanlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkoautojosaattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkoclassicattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkodefaultfallbackfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkodefaulthangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkodefaulthanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkodoluacode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luatexkodoluacode{${1:lua code}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkodotemphattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkodotemphcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkofallbackfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkofallbackfontattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkofallbackselectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkogetrubybasechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatexkogetrubybasechar{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkogetrubyrubychar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatexkogetrubyrubychar{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkohangulbyhangulattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulbyhangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulfontattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulnormalize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulpunctuations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohangulselectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohanjabyhanjaattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohanjabyhanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohanjafontattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohanjaselectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkohorizboxmoveright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkojosaactivate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkojosaactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkolangCJK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkoleaderstype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkomarkoverwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luatexkomarkoverwith{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkomonohangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkorotatebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luatexkorotatebox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkorubyalloc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkorubyattr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkorubycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkorunningselectfontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkorunningselectfonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkoselectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkostretchfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkouhcinputencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkoulinecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexkounrotatebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luatexkounrotatebox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"luatexkoxxruby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Schinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tchinese\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vertical\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"verticaltypesetting\"\n    },\n    {\n      \"name\": \"horizontal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/luatexko#c\": [\n      \"hangul\",\n      \"hanja\"\n    ],\n    \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setmainfallbackfont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setsansfallbackfont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\setmonofallbackfont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newfallbackfontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\newfallbackfontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\addfallbackfontfeature,\\\\addfallbackfontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\fallbackfontspec,\\\\adhocfallbackfont,\\\\setmathhangulfont\": [\n      \"InterHangul=\",\n      \"InterLatinCJK=\",\n      \"CharRaise=\",\n      \"RemoveClassicSpaces\",\n      \"CompressPunctuations\",\n      \"Expansion\",\n      \"Protrusion=\",\n      \"InterCharacter=\",\n      \"InterCharStretch=\",\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatexko#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatextra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fixltx2e\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"metalogo\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luatodonotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"soulpos\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"shadow\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\todoarea\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"todoarea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todoarea{${1:note text%todo}}{${2:highlighted text}}\"\n      }\n    },\n    {\n      \"name\": \"todoarea\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"todoarea[${3:options%keyvals}]{${1:note text%todo}}{${2:highlighted text}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\todoarea\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingfigure{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missingfigure[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\missingfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"listoftodos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftodos[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"todototoc\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luatodonotes#c\": [\n      \"disable\",\n      \"obeyDraft\",\n      \"obeyFinal\",\n      \"danish\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"swedish\",\n      \"spanish\",\n      \"catalan\",\n      \"italian\",\n      \"portuguese\",\n      \"dutch\",\n      \"croatian\",\n      \"colorinlistoftodos\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"textsize=${1:fontsize csname}\",\n      \"prependcaption=${1:caption}\",\n      \"shadow\",\n      \"figwidth=\",\n      \"figheight=\",\n      \"leaderwidth=\",\n      \"leadertype=${1|s,sBezier,opo,os,po|}\",\n      \"positioning=${1|inputOrder,inputOrderStacks,sLeaderNorthEast,sLeaderNorthEastBelow,sLeaderNorthEastBelowStacks,sLeaderEast,poLeaders,poLeadersAvoidLines|}\",\n      \"s\",\n      \"bezier\",\n      \"opo\",\n      \"po\",\n      \"splitting=${1|none,middle,median,weightedMedian|}\",\n      \"interNoteSpace=\",\n      \"noteInnerSep=\",\n      \"routingAreaWidth=\",\n      \"minNoteWidth=\",\n      \"distanceNotesPageBorder=\",\n      \"distanceNotesText=\",\n      \"rasterHeight=\",\n      \"additionalMargin=\",\n      \"debug\"\n    ],\n    \"\\\\todo,\\\\todoarea\": [\n      \"disable\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"line\",\n      \"noline\",\n      \"inline\",\n      \"noinline\",\n      \"size=\",\n      \"list\",\n      \"nolist\",\n      \"caption=\",\n      \"prepend\",\n      \"noprepend\",\n      \"author=\"\n    ],\n    \"\\\\missingfigure\": [\n      \"figwidth=\",\n      \"figheight=\",\n      \"figcolor=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luatodonotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luatruthtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"luaTruthTable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"luaTruthTable{${1:var1,var2,...}}{${2:expr1,expr2,...}}\"\n      }\n    },\n    {\n      \"name\": \"luaTruthTable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"luaTruthTable[${3:options%keyvals}]{${1:var1,var2,...}}{${2:expr1,expr2,...}}\",\n        \"keys\": [\n          \"\\\\luaTruthTable\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\luaTruthTable\": [\n      \"trtext=${1:text}\",\n      \"fltext=${1:text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luavlna.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nosingledefaults\"\n    },\n    {\n      \"name\": \"singlechars\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"singlechars{${1:language}}{${2:letters}}\"\n      }\n    },\n    {\n      \"name\": \"compoundinitials\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"compoundinitials{${1:language}}{${2:compounds}}\"\n      }\n    },\n    {\n      \"name\": \"enablesplithyphens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablesplithyphens{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"disablesplithyphens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablesplithyphens{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"singlecharsgetlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"singlecharsgetlang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"preventsingledebugon\"\n    },\n    {\n      \"name\": \"preventsinglelang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preventsinglelang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"preventsinglestatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preventsingleon\"\n    },\n    {\n      \"name\": \"preventsingleoff\"\n    },\n    {\n      \"name\": \"preventsingledebugoff\"\n    },\n    {\n      \"name\": \"nopredegrees\"\n    },\n    {\n      \"name\": \"nosufdegrees\"\n    },\n    {\n      \"name\": \"nounits\"\n    },\n    {\n      \"name\": \"noinitials\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luavlna#c\": [\n      \"noinitials\",\n      \"nounits\",\n      \"nopredegrees\",\n      \"nosufdegrees\",\n      \"noprocess\",\n      \"debug\",\n      \"defaults\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luavlna#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lucbmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arrowaxisleft\"\n    },\n    {\n      \"name\": \"arrowaxisright\"\n    },\n    {\n      \"name\": \"axisshort\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"Biggg\"\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"Bigggl\"\n    },\n    {\n      \"name\": \"bigggl\"\n    },\n    {\n      \"name\": \"Bigggr\"\n    },\n    {\n      \"name\": \"bigggr\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashdownarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashuparrow\"\n    },\n    {\n      \"name\": \"defineequal\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"largeint\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leadsfrom\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midint\"\n    },\n    {\n      \"name\": \"midintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midoint\"\n    },\n    {\n      \"name\": \"midointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsurfint\"\n    },\n    {\n      \"name\": \"midsurfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notcong\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notsim\"\n    },\n    {\n      \"name\": \"notsimeq\"\n    },\n    {\n      \"name\": \"notsqsubseteq\"\n    },\n    {\n      \"name\": \"notsqsupseteq\"\n    },\n    {\n      \"name\": \"notsubset\"\n    },\n    {\n      \"name\": \"notsubseteq\"\n    },\n    {\n      \"name\": \"notsupset\"\n    },\n    {\n      \"name\": \"notsupseteq\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"original\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"surfint\"\n    },\n    {\n      \"name\": \"surfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"DeclareLucidaFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareLucidaFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lucbmath#c\": [\n      \"expert\",\n      \"noexpert\",\n      \"nolucidascale\",\n      \"lucidascale\",\n      \"lucidasmallscale\",\n      \"mathitalic1\",\n      \"mathitalic2\",\n      \"mathitalic3\",\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"vargreek\",\n      \"noamssymbols\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lucbmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lucida-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LucidaBlackletter\"\n    },\n    {\n      \"name\": \"LucidaCalligraphy\"\n    },\n    {\n      \"name\": \"LucidaHandwriting\"\n    },\n    {\n      \"name\": \"LucidaGrandeMonoDK\"\n    },\n    {\n      \"name\": \"LucidaConsoleDK\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lucida-otf#c\": [\n      \"usefilenames\",\n      \"RM={${1:fontspec options}}\",\n      \"SS={${1:fontspec options}}\",\n      \"TT={${1:fontspec options}}\",\n      \"GTT={${1:fontspec options}}\",\n      \"CTT={${1:fontspec options}}\",\n      \"MM={${1:fontspec options}}\",\n      \"MMbold={${1:fontspec options}}\",\n      \"BL={${1:fontspec options}}\",\n      \"CAL={${1:fontspec options}}\",\n      \"HW={${1:fontspec options}}\",\n      \"DefaultFeatures={${1:fontspec options}}\",\n      \"useKerning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lucida-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lucidabr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arrowaxisleft\"\n    },\n    {\n      \"name\": \"arrowaxisright\"\n    },\n    {\n      \"name\": \"axisshort\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"Biggg\"\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"Bigggl\"\n    },\n    {\n      \"name\": \"bigggl\"\n    },\n    {\n      \"name\": \"Bigggr\"\n    },\n    {\n      \"name\": \"bigggr\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashdownarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashuparrow\"\n    },\n    {\n      \"name\": \"defineequal\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"largeint\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leadsfrom\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midint\"\n    },\n    {\n      \"name\": \"midintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midoint\"\n    },\n    {\n      \"name\": \"midointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsurfint\"\n    },\n    {\n      \"name\": \"midsurfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notcong\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notsim\"\n    },\n    {\n      \"name\": \"notsimeq\"\n    },\n    {\n      \"name\": \"notsqsubseteq\"\n    },\n    {\n      \"name\": \"notsqsupseteq\"\n    },\n    {\n      \"name\": \"notsubset\"\n    },\n    {\n      \"name\": \"notsubseteq\"\n    },\n    {\n      \"name\": \"notsupset\"\n    },\n    {\n      \"name\": \"notsupseteq\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"original\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"surfint\"\n    },\n    {\n      \"name\": \"surfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"DeclareLucidaFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareLucidaFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lucidabr#c\": [\n      \"expert\",\n      \"noexpert\",\n      \"nolucidascale\",\n      \"lucidascale\",\n      \"lucidasmallscale\",\n      \"mathitalic1\",\n      \"mathitalic2\",\n      \"mathitalic3\",\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"vargreek\",\n      \"noamssymbols\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"seriftt\",\n      \"fax\",\n      \"casual\",\n      \"calligraphic\",\n      \"handwriting\",\n      \"altbullet\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lucidabr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lucmin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arrowaxisleft\"\n    },\n    {\n      \"name\": \"arrowaxisright\"\n    },\n    {\n      \"name\": \"axisshort\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"Biggg\"\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"Bigggl\"\n    },\n    {\n      \"name\": \"bigggl\"\n    },\n    {\n      \"name\": \"Bigggr\"\n    },\n    {\n      \"name\": \"bigggr\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashdownarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashuparrow\"\n    },\n    {\n      \"name\": \"defineequal\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"largeint\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leadsfrom\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midint\"\n    },\n    {\n      \"name\": \"midintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midoint\"\n    },\n    {\n      \"name\": \"midointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsurfint\"\n    },\n    {\n      \"name\": \"midsurfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notcong\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notsim\"\n    },\n    {\n      \"name\": \"notsimeq\"\n    },\n    {\n      \"name\": \"notsqsubseteq\"\n    },\n    {\n      \"name\": \"notsqsupseteq\"\n    },\n    {\n      \"name\": \"notsubset\"\n    },\n    {\n      \"name\": \"notsubseteq\"\n    },\n    {\n      \"name\": \"notsupset\"\n    },\n    {\n      \"name\": \"notsupseteq\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"original\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"surfint\"\n    },\n    {\n      \"name\": \"surfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"DeclareLucidaFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareLucidaFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"Mathdefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lucmin#c\": [\n      \"expert\",\n      \"noexpert\",\n      \"nolucidascale\",\n      \"lucidascale\",\n      \"lucidasmallscale\",\n      \"mathitalic1\",\n      \"mathitalic2\",\n      \"mathitalic3\",\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"vargreek\",\n      \"noamssymbols\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lucmin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lucmtime.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arrowaxisleft\"\n    },\n    {\n      \"name\": \"arrowaxisright\"\n    },\n    {\n      \"name\": \"axisshort\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"Biggg\"\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"Bigggl\"\n    },\n    {\n      \"name\": \"bigggl\"\n    },\n    {\n      \"name\": \"Bigggr\"\n    },\n    {\n      \"name\": \"bigggr\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashdownarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashuparrow\"\n    },\n    {\n      \"name\": \"defineequal\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"largeint\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leadsfrom\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midint\"\n    },\n    {\n      \"name\": \"midintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midoint\"\n    },\n    {\n      \"name\": \"midointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsurfint\"\n    },\n    {\n      \"name\": \"midsurfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notcong\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notsim\"\n    },\n    {\n      \"name\": \"notsimeq\"\n    },\n    {\n      \"name\": \"notsqsubseteq\"\n    },\n    {\n      \"name\": \"notsqsupseteq\"\n    },\n    {\n      \"name\": \"notsubset\"\n    },\n    {\n      \"name\": \"notsubseteq\"\n    },\n    {\n      \"name\": \"notsupset\"\n    },\n    {\n      \"name\": \"notsupseteq\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"original\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"surfint\"\n    },\n    {\n      \"name\": \"surfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"DeclareLucidaFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareLucidaFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"Mathdefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lucmtime#c\": [\n      \"expert\",\n      \"noexpert\",\n      \"nolucidascale\",\n      \"lucidascale\",\n      \"lucidasmallscale\",\n      \"mathitalic1\",\n      \"mathitalic2\",\n      \"mathitalic3\",\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"vargreek\",\n      \"noamssymbols\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lucmtime#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/luctime.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arrowaxisleft\"\n    },\n    {\n      \"name\": \"arrowaxisright\"\n    },\n    {\n      \"name\": \"axisshort\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"Biggg\"\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"Bigggl\"\n    },\n    {\n      \"name\": \"bigggl\"\n    },\n    {\n      \"name\": \"Bigggr\"\n    },\n    {\n      \"name\": \"bigggr\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashdownarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashuparrow\"\n    },\n    {\n      \"name\": \"defineequal\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"largeint\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leadsfrom\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midint\"\n    },\n    {\n      \"name\": \"midintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midoint\"\n    },\n    {\n      \"name\": \"midointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midsurfint\"\n    },\n    {\n      \"name\": \"midsurfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notcong\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notsim\"\n    },\n    {\n      \"name\": \"notsimeq\"\n    },\n    {\n      \"name\": \"notsqsubseteq\"\n    },\n    {\n      \"name\": \"notsqsupseteq\"\n    },\n    {\n      \"name\": \"notsubset\"\n    },\n    {\n      \"name\": \"notsubseteq\"\n    },\n    {\n      \"name\": \"notsupset\"\n    },\n    {\n      \"name\": \"notsupseteq\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"original\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"surfint\"\n    },\n    {\n      \"name\": \"surfintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"DeclareLucidaFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareLucidaFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:loading-info}}{${6:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"Mathdefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luctime#c\": [\n      \"expert\",\n      \"noexpert\",\n      \"nolucidascale\",\n      \"lucidascale\",\n      \"lucidasmallscale\",\n      \"mathitalic1\",\n      \"mathitalic2\",\n      \"mathitalic3\",\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"vargreek\",\n      \"noamssymbols\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luctime#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lutabulartools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"makecell\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"penlight\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"settabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabular{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\settabular\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lttdebugON\"\n    },\n    {\n      \"name\": \"lttdebugOFF\"\n    },\n    {\n      \"name\": \"lttdebugprt\"\n    },\n    {\n      \"name\": \"MC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MC{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"MC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MC[${2:cell spec}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"MC\",\n      \"arg\": {\n        \"format\": \"[][]<>{}\",\n        \"snippet\": \"MC[${2:cell spec}][${3:override multicol}]<${4:cell format}>{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"MC*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MC*{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"MC*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MC*[${2:cell spec}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"MC*\",\n      \"arg\": {\n        \"format\": \"[][]<>{}\",\n        \"snippet\": \"MC*[${2:cell spec}][${3:override multicol}]<${4:cell format}>{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"setMCrepl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMCrepl{${1:column}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \"setMChordef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMChordef{${1:column}}{${2:alignments}}\"\n      }\n    },\n    {\n      \"name\": \"setMCverdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMCverdef{${1:column}}{${2:alignments}}\"\n      }\n    },\n    {\n      \"name\": \"addMCsicol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addMCsicol{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"midrulesat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midrulesat{${1:row1,row2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gmidrule{${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"gmidrule\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gmidrule(${2:trim}){${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"gcmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gcmidrule{${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"gcmidrule\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gcmidrule(${2:trim}){${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"gcmidrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gcmidrules{${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"gcmidrules\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"gcmidrules(${2:trim}){${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrules{${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrules\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"cmidrules(${2:trim}){${1:colspecs}}\"\n      }\n    },\n    {\n      \"name\": \"midruleX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midruleX{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\midruleX,\\\\midruleX*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"midruleX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"midruleX[${2:o|${3:n}|f}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\midruleX,\\\\midruleX*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"midruleX*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midruleX*{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\midruleX,\\\\midruleX*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"midruleX*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"midruleX*[${2:o|${3:n}|f}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\midruleX,\\\\midruleX*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"resetmidruleX\"\n    },\n    {\n      \"name\": \"resetmidruleX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetmidruleX[${1:counter}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\settabular\": [\n      \"nopad\",\n      \"tbrule\",\n      \"rowsep=${1:integer}\",\n      \"colsep=${1:integer}\"\n    ],\n    \"\\\\midruleX,\\\\midruleX*\": [\n      \"step=${1:integer}\",\n      \"rule=\",\n      \"reset\",\n      \"resetnum=${1:integer}\",\n      \"cntr=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luwiantype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"moresize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"A[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"ADORARE\"\n    },\n    {\n      \"name\": \"AEDIFICARE\"\n    },\n    {\n      \"name\": \"AEDIFICIUM\"\n    },\n    {\n      \"name\": \"AEDIFICIUMMINUS\"\n    },\n    {\n      \"name\": \"AEDIFICIUMPONERE\"\n    },\n    {\n      \"name\": \"ALA\"\n    },\n    {\n      \"name\": \"AMPLECTI\"\n    },\n    {\n      \"name\": \"ANIMAL\"\n    },\n    {\n      \"name\": \"ANNUS\"\n    },\n    {\n      \"name\": \"ANNUSANNUS\"\n    },\n    {\n      \"name\": \"APER\"\n    },\n    {\n      \"name\": \"AQUILA\"\n    },\n    {\n      \"name\": \"ARAI\"\n    },\n    {\n      \"name\": \"ARGENTUM\"\n    },\n    {\n      \"name\": \"ARHA\"\n    },\n    {\n      \"name\": \"ASCIA\"\n    },\n    {\n      \"name\": \"ASINUS\"\n    },\n    {\n      \"name\": \"ASINUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ASINUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"ASINUSIIA\"\n    },\n    {\n      \"name\": \"ATAII\"\n    },\n    {\n      \"name\": \"AUDIRE\"\n    },\n    {\n      \"name\": \"AURIGA\"\n    },\n    {\n      \"name\": \"AURIGA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AURIGA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"AVIS\"\n    },\n    {\n      \"name\": \"AVIS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AVIS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"AVISX\"\n    },\n    {\n      \"name\": \"AVUS\"\n    },\n    {\n      \"name\": \"AX\"\n    },\n    {\n      \"name\": \"badeq\"\n    },\n    {\n      \"name\": \"BESTIA\"\n    },\n    {\n      \"name\": \"BIBERE\"\n    },\n    {\n      \"name\": \"BONUS\"\n    },\n    {\n      \"name\": \"BONUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BONUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"BOS\"\n    },\n    {\n      \"name\": \"BOS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"BOS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"BOSIIMI\"\n    },\n    {\n      \"name\": \"BOSMI\"\n    },\n    {\n      \"name\": \"boust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boust{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BRACCHIUM\"\n    },\n    {\n      \"name\": \"CAELUM\"\n    },\n    {\n      \"name\": \"CANIS\"\n    },\n    {\n      \"name\": \"CANIS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CANIS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CAPERE\"\n    },\n    {\n      \"name\": \"CAPERE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CAPERE[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CAPEREIICAPEREII\"\n    },\n    {\n      \"name\": \"CAPERESCALPRUM\"\n    },\n    {\n      \"name\": \"CAPRA\"\n    },\n    {\n      \"name\": \"CAPRA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CAPRA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CAPRAIIA\"\n    },\n    {\n      \"name\": \"CAPUT\"\n    },\n    {\n      \"name\": \"CAPUTSCALPRUM\"\n    },\n    {\n      \"name\": \"CASTRUM\"\n    },\n    {\n      \"name\": \"CENTUM\"\n    },\n    {\n      \"name\": \"CERVUS\"\n    },\n    {\n      \"name\": \"CERVUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CERVUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CONTRACTUS\"\n    },\n    {\n      \"name\": \"CORNU\"\n    },\n    {\n      \"name\": \"CORNUCAPUT\"\n    },\n    {\n      \"name\": \"CRUS\"\n    },\n    {\n      \"name\": \"CRUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CRUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CRUSCRUS\"\n    },\n    {\n      \"name\": \"CRUSFLUMEN\"\n    },\n    {\n      \"name\": \"CRUX\"\n    },\n    {\n      \"name\": \"CRUX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CRUX[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"CUBITUM\"\n    },\n    {\n      \"name\": \"CULTER\"\n    },\n    {\n      \"name\": \"CUM\"\n    },\n    {\n      \"name\": \"CURRERE\"\n    },\n    {\n      \"name\": \"CURRUS\"\n    },\n    {\n      \"name\": \"DARE\"\n    },\n    {\n      \"name\": \"DAREDARE\"\n    },\n    {\n      \"name\": \"DECEM\"\n    },\n    {\n      \"name\": \"DELERE\"\n    },\n    {\n      \"name\": \"DEUS\"\n    },\n    {\n      \"name\": \"DEUSDOMUS\"\n    },\n    {\n      \"name\": \"DEUSMONSMENSA\"\n    },\n    {\n      \"name\": \"DEUSMONSSARPA\"\n    },\n    {\n      \"name\": \"DEUSVIATERRA\"\n    },\n    {\n      \"name\": \"DIES\"\n    },\n    {\n      \"name\": \"DOMINA\"\n    },\n    {\n      \"name\": \"DOMINUS\"\n    },\n    {\n      \"name\": \"DOMUS\"\n    },\n    {\n      \"name\": \"DOMUSMINUS\"\n    },\n    {\n      \"name\": \"DOMUSSCALA\"\n    },\n    {\n      \"name\": \"DOMUSX\"\n    },\n    {\n      \"name\": \"EDERE\"\n    },\n    {\n      \"name\": \"EGO\"\n    },\n    {\n      \"name\": \"EGO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EGO[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"EIGHT\"\n    },\n    {\n      \"name\": \"ENSIS\"\n    },\n    {\n      \"name\": \"EQUUS\"\n    },\n    {\n      \"name\": \"EUNUCHUS\"\n    },\n    {\n      \"name\": \"EUNUCHUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EUNUCHUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"EXERCITUS\"\n    },\n    {\n      \"name\": \"FALX\"\n    },\n    {\n      \"name\": \"FEMINA\"\n    },\n    {\n      \"name\": \"FILIA\"\n    },\n    {\n      \"name\": \"FILIUS\"\n    },\n    {\n      \"name\": \"FINES\"\n    },\n    {\n      \"name\": \"FINESHA\"\n    },\n    {\n      \"name\": \"FIVE\"\n    },\n    {\n      \"name\": \"FLAMMAE\"\n    },\n    {\n      \"name\": \"FLUMEN\"\n    },\n    {\n      \"name\": \"FONS\"\n    },\n    {\n      \"name\": \"FORTIS\"\n    },\n    {\n      \"name\": \"FOUR\"\n    },\n    {\n      \"name\": \"FRATER\"\n    },\n    {\n      \"name\": \"FRATER\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FRATER[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"FRONS\"\n    },\n    {\n      \"name\": \"FULGUR\"\n    },\n    {\n      \"name\": \"FUSUS\"\n    },\n    {\n      \"name\": \"GCXCV\"\n    },\n    {\n      \"name\": \"GENUFLECTERE\"\n    },\n    {\n      \"name\": \"GRYLLUS\"\n    },\n    {\n      \"name\": \"HA\"\n    },\n    {\n      \"name\": \"HA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"HA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"HAIILI\"\n    },\n    {\n      \"name\": \"HALAI\"\n    },\n    {\n      \"name\": \"HANA\"\n    },\n    {\n      \"name\": \"HARAI\"\n    },\n    {\n      \"name\": \"HASTARIUS\"\n    },\n    {\n      \"name\": \"HATTI\"\n    },\n    {\n      \"name\": \"HATTILI\"\n    },\n    {\n      \"name\": \"HATTUSILI\"\n    },\n    {\n      \"name\": \"HAX\"\n    },\n    {\n      \"name\": \"HEROS\"\n    },\n    {\n      \"name\": \"HI\"\n    },\n    {\n      \"name\": \"HI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"HI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"hl\"\n    },\n    {\n      \"name\": \"HORDEUM\"\n    },\n    {\n      \"name\": \"HORREUM\"\n    },\n    {\n      \"name\": \"hr\"\n    },\n    {\n      \"name\": \"HU\"\n    },\n    {\n      \"name\": \"HU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"HU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"HUNDRED\"\n    },\n    {\n      \"name\": \"HURU\"\n    },\n    {\n      \"name\": \"HWIA\"\n    },\n    {\n      \"name\": \"HWIX\"\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"I\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"I[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"IA\"\n    },\n    {\n      \"name\": \"IA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"IACULUM\"\n    },\n    {\n      \"name\": \"INFANS\"\n    },\n    {\n      \"name\": \"INFRA\"\n    },\n    {\n      \"name\": \"IRAI\"\n    },\n    {\n      \"name\": \"ISHUWA\"\n    },\n    {\n      \"name\": \"IUDEX\"\n    },\n    {\n      \"name\": \"IUDEXLA\"\n    },\n    {\n      \"name\": \"IUDEXRAI\"\n    },\n    {\n      \"name\": \"IUSTITIA\"\n    },\n    {\n      \"name\": \"JANUS\"\n    },\n    {\n      \"name\": \"KA\"\n    },\n    {\n      \"name\": \"KA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"KA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"KAR\"\n    },\n    {\n      \"name\": \"KI\"\n    },\n    {\n      \"name\": \"KIX\"\n    },\n    {\n      \"name\": \"KU\"\n    },\n    {\n      \"name\": \"KWIA\"\n    },\n    {\n      \"name\": \"LA\"\n    },\n    {\n      \"name\": \"LAI\"\n    },\n    {\n      \"name\": \"LAI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LAI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"LAIU\"\n    },\n    {\n      \"name\": \"LALA\"\n    },\n    {\n      \"name\": \"LAPIS\"\n    },\n    {\n      \"name\": \"LAPISSCALPRUM\"\n    },\n    {\n      \"name\": \"LARAA\"\n    },\n    {\n      \"name\": \"Lat\"\n    },\n    {\n      \"name\": \"LAX\"\n    },\n    {\n      \"name\": \"LCCCII\"\n    },\n    {\n      \"name\": \"LCCCL\"\n    },\n    {\n      \"name\": \"LCCCLI\"\n    },\n    {\n      \"name\": \"LCCCLII\"\n    },\n    {\n      \"name\": \"LCCCLIII\"\n    },\n    {\n      \"name\": \"LCCCLIV\"\n    },\n    {\n      \"name\": \"LCCCLIX\"\n    },\n    {\n      \"name\": \"LCCCLIXA\"\n    },\n    {\n      \"name\": \"LCCCLVI\"\n    },\n    {\n      \"name\": \"LCCCLVII\"\n    },\n    {\n      \"name\": \"LCCCLXI\"\n    },\n    {\n      \"name\": \"LCCCLXV\"\n    },\n    {\n      \"name\": \"LCCCLXXIII\"\n    },\n    {\n      \"name\": \"LCCCLXXIV\"\n    },\n    {\n      \"name\": \"LCCCLXXV\"\n    },\n    {\n      \"name\": \"LCCCVIII\"\n    },\n    {\n      \"name\": \"LCCCX\"\n    },\n    {\n      \"name\": \"LCCCXCIV\"\n    },\n    {\n      \"name\": \"LCCCXCVI\"\n    },\n    {\n      \"name\": \"LCCCXCVIII\"\n    },\n    {\n      \"name\": \"LCCCXI\"\n    },\n    {\n      \"name\": \"LCCCXII\"\n    },\n    {\n      \"name\": \"LCCCXLII\"\n    },\n    {\n      \"name\": \"LCCCXLIX\"\n    },\n    {\n      \"name\": \"LCCCXLVIII\"\n    },\n    {\n      \"name\": \"LCCCXVII\"\n    },\n    {\n      \"name\": \"LCCCXX\"\n    },\n    {\n      \"name\": \"LCCCXXI\"\n    },\n    {\n      \"name\": \"LCCCXXIII\"\n    },\n    {\n      \"name\": \"LCCCXXIV\"\n    },\n    {\n      \"name\": \"LCCCXXIXA\"\n    },\n    {\n      \"name\": \"LCCCXXXIII\"\n    },\n    {\n      \"name\": \"LCCCXXXIX\"\n    },\n    {\n      \"name\": \"LCCIII\"\n    },\n    {\n      \"name\": \"LCCLII\"\n    },\n    {\n      \"name\": \"LCCLIX\"\n    },\n    {\n      \"name\": \"LCCLVI\"\n    },\n    {\n      \"name\": \"LCCLVIII\"\n    },\n    {\n      \"name\": \"LCCLX\"\n    },\n    {\n      \"name\": \"LCCLXI\"\n    },\n    {\n      \"name\": \"LCCLXII\"\n    },\n    {\n      \"name\": \"LCCLXIII\"\n    },\n    {\n      \"name\": \"LCCLXV\"\n    },\n    {\n      \"name\": \"LCCLXX\"\n    },\n    {\n      \"name\": \"LCCLXXI\"\n    },\n    {\n      \"name\": \"LCCLXXIII\"\n    },\n    {\n      \"name\": \"LCCLXXIV\"\n    },\n    {\n      \"name\": \"LCCLXXIX\"\n    },\n    {\n      \"name\": \"LCCLXXXII\"\n    },\n    {\n      \"name\": \"LCCLXXXIV\"\n    },\n    {\n      \"name\": \"LCCLXXXVII\"\n    },\n    {\n      \"name\": \"LCCV\"\n    },\n    {\n      \"name\": \"LCCVI\"\n    },\n    {\n      \"name\": \"LCCVIII\"\n    },\n    {\n      \"name\": \"LCCXCIII\"\n    },\n    {\n      \"name\": \"LCCXCVII\"\n    },\n    {\n      \"name\": \"LCCXI\"\n    },\n    {\n      \"name\": \"LCCXIII\"\n    },\n    {\n      \"name\": \"LCCXIX\"\n    },\n    {\n      \"name\": \"LCCXL\"\n    },\n    {\n      \"name\": \"LCCXLII\"\n    },\n    {\n      \"name\": \"LCCXVII\"\n    },\n    {\n      \"name\": \"LCCXVIII\"\n    },\n    {\n      \"name\": \"LCCXX\"\n    },\n    {\n      \"name\": \"LCCXXII\"\n    },\n    {\n      \"name\": \"LCCXXIV\"\n    },\n    {\n      \"name\": \"LCCXXX\"\n    },\n    {\n      \"name\": \"LCCXXXII\"\n    },\n    {\n      \"name\": \"LCCXXXIII\"\n    },\n    {\n      \"name\": \"LCCXXXIV\"\n    },\n    {\n      \"name\": \"LCCXXXV\"\n    },\n    {\n      \"name\": \"LCCXXXVI\"\n    },\n    {\n      \"name\": \"LCCXXXVIII\"\n    },\n    {\n      \"name\": \"LCDI\"\n    },\n    {\n      \"name\": \"LCDIII\"\n    },\n    {\n      \"name\": \"LCDIX\"\n    },\n    {\n      \"name\": \"LCDLII\"\n    },\n    {\n      \"name\": \"LCDLIII\"\n    },\n    {\n      \"name\": \"LCDLIV\"\n    },\n    {\n      \"name\": \"LCDLIX\"\n    },\n    {\n      \"name\": \"LCDLVII\"\n    },\n    {\n      \"name\": \"LCDLVIIA\"\n    },\n    {\n      \"name\": \"LCDLVIII\"\n    },\n    {\n      \"name\": \"LCDLX\"\n    },\n    {\n      \"name\": \"LCDLXI\"\n    },\n    {\n      \"name\": \"LCDLXIII\"\n    },\n    {\n      \"name\": \"LCDLXIV\"\n    },\n    {\n      \"name\": \"LCDLXIX\"\n    },\n    {\n      \"name\": \"LCDLXV\"\n    },\n    {\n      \"name\": \"LCDLXVI\"\n    },\n    {\n      \"name\": \"LCDLXVII\"\n    },\n    {\n      \"name\": \"LCDLXVIII\"\n    },\n    {\n      \"name\": \"LCDLXXI\"\n    },\n    {\n      \"name\": \"LCDLXXII\"\n    },\n    {\n      \"name\": \"LCDLXXIII\"\n    },\n    {\n      \"name\": \"LCDLXXIX\"\n    },\n    {\n      \"name\": \"LCDLXXV\"\n    },\n    {\n      \"name\": \"LCDLXXVI\"\n    },\n    {\n      \"name\": \"LCDLXXVIII\"\n    },\n    {\n      \"name\": \"LCDLXXX\"\n    },\n    {\n      \"name\": \"LCDLXXXI\"\n    },\n    {\n      \"name\": \"LCDLXXXII\"\n    },\n    {\n      \"name\": \"LCDLXXXIV\"\n    },\n    {\n      \"name\": \"LCDLXXXIX\"\n    },\n    {\n      \"name\": \"LCDLXXXV\"\n    },\n    {\n      \"name\": \"LCDLXXXVII\"\n    },\n    {\n      \"name\": \"LCDV\"\n    },\n    {\n      \"name\": \"LCDVI\"\n    },\n    {\n      \"name\": \"LCDVII\"\n    },\n    {\n      \"name\": \"LCDVIII\"\n    },\n    {\n      \"name\": \"LCDX\"\n    },\n    {\n      \"name\": \"LCDXA\"\n    },\n    {\n      \"name\": \"LCDXC\"\n    },\n    {\n      \"name\": \"LCDXCI\"\n    },\n    {\n      \"name\": \"LCDXCII\"\n    },\n    {\n      \"name\": \"LCDXCIII\"\n    },\n    {\n      \"name\": \"LCDXCIV\"\n    },\n    {\n      \"name\": \"LCDXCV\"\n    },\n    {\n      \"name\": \"LCDXCVI\"\n    },\n    {\n      \"name\": \"LCDXCVII\"\n    },\n    {\n      \"name\": \"LCDXIV\"\n    },\n    {\n      \"name\": \"LCDXL\"\n    },\n    {\n      \"name\": \"LCDXLI\"\n    },\n    {\n      \"name\": \"LCDXLII\"\n    },\n    {\n      \"name\": \"LCDXLIII\"\n    },\n    {\n      \"name\": \"LCDXLIV\"\n    },\n    {\n      \"name\": \"LCDXLIX\"\n    },\n    {\n      \"name\": \"LCDXVI\"\n    },\n    {\n      \"name\": \"LCDXVIII\"\n    },\n    {\n      \"name\": \"LCDXX\"\n    },\n    {\n      \"name\": \"LCDXXIV\"\n    },\n    {\n      \"name\": \"LCDXXV\"\n    },\n    {\n      \"name\": \"LCDXXVI\"\n    },\n    {\n      \"name\": \"LCDXXVII\"\n    },\n    {\n      \"name\": \"LCDXXVIII\"\n    },\n    {\n      \"name\": \"LCDXXXI\"\n    },\n    {\n      \"name\": \"LCDXXXII\"\n    },\n    {\n      \"name\": \"LCDXXXIII\"\n    },\n    {\n      \"name\": \"LCDXXXVI\"\n    },\n    {\n      \"name\": \"LCDXXXVII\"\n    },\n    {\n      \"name\": \"LCL\"\n    },\n    {\n      \"name\": \"LCLII\"\n    },\n    {\n      \"name\": \"LCLIV\"\n    },\n    {\n      \"name\": \"LCLIX\"\n    },\n    {\n      \"name\": \"LCLV\"\n    },\n    {\n      \"name\": \"LCLVI\"\n    },\n    {\n      \"name\": \"LCLVII\"\n    },\n    {\n      \"name\": \"LCLVIII\"\n    },\n    {\n      \"name\": \"LCLXI\"\n    },\n    {\n      \"name\": \"LCLXII\"\n    },\n    {\n      \"name\": \"LCLXIII\"\n    },\n    {\n      \"name\": \"LCLXIV\"\n    },\n    {\n      \"name\": \"LCLXIX\"\n    },\n    {\n      \"name\": \"LCLXVII\"\n    },\n    {\n      \"name\": \"LCLXVIII\"\n    },\n    {\n      \"name\": \"LCLXX\"\n    },\n    {\n      \"name\": \"LCLXXI\"\n    },\n    {\n      \"name\": \"LCLXXX\"\n    },\n    {\n      \"name\": \"LCLXXXIII\"\n    },\n    {\n      \"name\": \"LCLXXXIV\"\n    },\n    {\n      \"name\": \"LCLXXXIX\"\n    },\n    {\n      \"name\": \"LCLXXXV\"\n    },\n    {\n      \"name\": \"LCLXXXVI\"\n    },\n    {\n      \"name\": \"LCLXXXVII\"\n    },\n    {\n      \"name\": \"LCLXXXVIII\"\n    },\n    {\n      \"name\": \"LCVI\"\n    },\n    {\n      \"name\": \"LCXCIV\"\n    },\n    {\n      \"name\": \"LCXCV\"\n    },\n    {\n      \"name\": \"LCXCVIII\"\n    },\n    {\n      \"name\": \"LCXIII\"\n    },\n    {\n      \"name\": \"LCXIX\"\n    },\n    {\n      \"name\": \"LCXL\"\n    },\n    {\n      \"name\": \"LCXLI\"\n    },\n    {\n      \"name\": \"LCXLIII\"\n    },\n    {\n      \"name\": \"LCXLIV\"\n    },\n    {\n      \"name\": \"LCXLIX\"\n    },\n    {\n      \"name\": \"LCXLV\"\n    },\n    {\n      \"name\": \"LCXLVI\"\n    },\n    {\n      \"name\": \"LCXLVII\"\n    },\n    {\n      \"name\": \"LCXVI\"\n    },\n    {\n      \"name\": \"LCXVII\"\n    },\n    {\n      \"name\": \"LCXVIII\"\n    },\n    {\n      \"name\": \"LCXXII\"\n    },\n    {\n      \"name\": \"LCXXIII\"\n    },\n    {\n      \"name\": \"LCXXIV\"\n    },\n    {\n      \"name\": \"LCXXIX\"\n    },\n    {\n      \"name\": \"LCXXVI\"\n    },\n    {\n      \"name\": \"LCXXVII\"\n    },\n    {\n      \"name\": \"LCXXXIX\"\n    },\n    {\n      \"name\": \"LCXXXVA\"\n    },\n    {\n      \"name\": \"LCXXXVI\"\n    },\n    {\n      \"name\": \"LDI\"\n    },\n    {\n      \"name\": \"LDII\"\n    },\n    {\n      \"name\": \"LDIII\"\n    },\n    {\n      \"name\": \"LDIV\"\n    },\n    {\n      \"name\": \"LDIX\"\n    },\n    {\n      \"name\": \"LDV\"\n    },\n    {\n      \"name\": \"LDVII\"\n    },\n    {\n      \"name\": \"LDXI\"\n    },\n    {\n      \"name\": \"LDXII\"\n    },\n    {\n      \"name\": \"LDXIII\"\n    },\n    {\n      \"name\": \"LDXIV\"\n    },\n    {\n      \"name\": \"LDXIX\"\n    },\n    {\n      \"name\": \"LDXV\"\n    },\n    {\n      \"name\": \"LDXVI\"\n    },\n    {\n      \"name\": \"LDXVII\"\n    },\n    {\n      \"name\": \"LDXVIII\"\n    },\n    {\n      \"name\": \"LDXX\"\n    },\n    {\n      \"name\": \"LDXXI\"\n    },\n    {\n      \"name\": \"LDXXII\"\n    },\n    {\n      \"name\": \"LDXXIII\"\n    },\n    {\n      \"name\": \"LDXXX\"\n    },\n    {\n      \"name\": \"LECTUS\"\n    },\n    {\n      \"name\": \"LEO\"\n    },\n    {\n      \"name\": \"LEO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LEO[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"LEOMONSTULEO\"\n    },\n    {\n      \"name\": \"LEPUS\"\n    },\n    {\n      \"name\": \"LEPUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LEPUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"LI\"\n    },\n    {\n      \"name\": \"LI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"LIBARE\"\n    },\n    {\n      \"name\": \"LIBATIO\"\n    },\n    {\n      \"name\": \"LIGARE\"\n    },\n    {\n      \"name\": \"LIGNUM\"\n    },\n    {\n      \"name\": \"LIII\"\n    },\n    {\n      \"name\": \"LINGERE\"\n    },\n    {\n      \"name\": \"LINGUA\"\n    },\n    {\n      \"name\": \"LINGUACLAVUS\"\n    },\n    {\n      \"name\": \"LINGUAX\"\n    },\n    {\n      \"name\": \"LIS\"\n    },\n    {\n      \"name\": \"LITUUS\"\n    },\n    {\n      \"name\": \"LITUUSNA\"\n    },\n    {\n      \"name\": \"LITUUSU\"\n    },\n    {\n      \"name\": \"LL\"\n    },\n    {\n      \"name\": \"LLI\"\n    },\n    {\n      \"name\": \"LLIV\"\n    },\n    {\n      \"name\": \"LLX\"\n    },\n    {\n      \"name\": \"LLXI\"\n    },\n    {\n      \"name\": \"LLXIII\"\n    },\n    {\n      \"name\": \"LLXIV\"\n    },\n    {\n      \"name\": \"LLXIX\"\n    },\n    {\n      \"name\": \"LLXVII\"\n    },\n    {\n      \"name\": \"LLXVIII\"\n    },\n    {\n      \"name\": \"LLXXI\"\n    },\n    {\n      \"name\": \"LLXXII\"\n    },\n    {\n      \"name\": \"LLXXIV\"\n    },\n    {\n      \"name\": \"LLXXV\"\n    },\n    {\n      \"name\": \"LLXXVI\"\n    },\n    {\n      \"name\": \"LLXXVII\"\n    },\n    {\n      \"name\": \"LLXXXVII\"\n    },\n    {\n      \"name\": \"LLXXXVIII\"\n    },\n    {\n      \"name\": \"LOCUS\"\n    },\n    {\n      \"name\": \"LOGE\"\n    },\n    {\n      \"name\": \"LOGS\"\n    },\n    {\n      \"name\": \"LONGUS\"\n    },\n    {\n      \"name\": \"LOQUI\"\n    },\n    {\n      \"name\": \"LUNA\"\n    },\n    {\n      \"name\": \"Luwian\"\n    },\n    {\n      \"name\": \"LV\"\n    },\n    {\n      \"name\": \"LXCII\"\n    },\n    {\n      \"name\": \"LXCIV\"\n    },\n    {\n      \"name\": \"LXCLII\"\n    },\n    {\n      \"name\": \"LXI\"\n    },\n    {\n      \"name\": \"LXIII\"\n    },\n    {\n      \"name\": \"LXL\"\n    },\n    {\n      \"name\": \"LXLIV\"\n    },\n    {\n      \"name\": \"LXLVII\"\n    },\n    {\n      \"name\": \"LXLVIII\"\n    },\n    {\n      \"name\": \"LXX\"\n    },\n    {\n      \"name\": \"LXXIII\"\n    },\n    {\n      \"name\": \"LXXX\"\n    },\n    {\n      \"name\": \"LXXXIII\"\n    },\n    {\n      \"name\": \"LXXXVII\"\n    },\n    {\n      \"name\": \"LXXXVIII\"\n    },\n    {\n      \"name\": \"MA\"\n    },\n    {\n      \"name\": \"MA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MAGNUS\"\n    },\n    {\n      \"name\": \"MAGNUSDOMINA\"\n    },\n    {\n      \"name\": \"MAGNUSDOMUS\"\n    },\n    {\n      \"name\": \"MAGNUSFILIA\"\n    },\n    {\n      \"name\": \"MAGNUSREX\"\n    },\n    {\n      \"name\": \"MALLEUS\"\n    },\n    {\n      \"name\": \"MALUS\"\n    },\n    {\n      \"name\": \"MALUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MALUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MANDARE\"\n    },\n    {\n      \"name\": \"MANDARE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MANDARE[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MANUS\"\n    },\n    {\n      \"name\": \"MANUSCULTER\"\n    },\n    {\n      \"name\": \"MATER\"\n    },\n    {\n      \"name\": \"MAX\"\n    },\n    {\n      \"name\": \"MENSA\"\n    },\n    {\n      \"name\": \"MENSA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MENSA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MI\"\n    },\n    {\n      \"name\": \"MI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MIIIREGIO\"\n    },\n    {\n      \"name\": \"MILLE\"\n    },\n    {\n      \"name\": \"MINUS\"\n    },\n    {\n      \"name\": \"MONS\"\n    },\n    {\n      \"name\": \"MONS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MONS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"MORI\"\n    },\n    {\n      \"name\": \"MU\"\n    },\n    {\n      \"name\": \"MUA\"\n    },\n    {\n      \"name\": \"MURSILI\"\n    },\n    {\n      \"name\": \"MURUS\"\n    },\n    {\n      \"name\": \"MUWA\"\n    },\n    {\n      \"name\": \"NA\"\n    },\n    {\n      \"name\": \"NA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"NEG\"\n    },\n    {\n      \"name\": \"NEG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NEG[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"NEPOS\"\n    },\n    {\n      \"name\": \"NI\"\n    },\n    {\n      \"name\": \"NI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"NINE\"\n    },\n    {\n      \"name\": \"NIX\"\n    },\n    {\n      \"name\": \"NU\"\n    },\n    {\n      \"name\": \"NU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"OCCIDENS\"\n    },\n    {\n      \"name\": \"OCULUS\"\n    },\n    {\n      \"name\": \"OMNIS\"\n    },\n    {\n      \"name\": \"OMNIS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OMNIS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"OMNISMI\"\n    },\n    {\n      \"name\": \"ONE\"\n    },\n    {\n      \"name\": \"ORIENS\"\n    },\n    {\n      \"name\": \"OVIS\"\n    },\n    {\n      \"name\": \"OVIS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OVIS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"PA\"\n    },\n    {\n      \"name\": \"PANIS\"\n    },\n    {\n      \"name\": \"PANISSCUTELLA\"\n    },\n    {\n      \"name\": \"PARI\"\n    },\n    {\n      \"name\": \"PASTOR\"\n    },\n    {\n      \"name\": \"PAX\"\n    },\n    {\n      \"name\": \"PERS\"\n    },\n    {\n      \"name\": \"PES\"\n    },\n    {\n      \"name\": \"PES\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PES[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"PESIIPES\"\n    },\n    {\n      \"name\": \"PESIIPESII\"\n    },\n    {\n      \"name\": \"PESREGIO\"\n    },\n    {\n      \"name\": \"PESSCALAROTAE\"\n    },\n    {\n      \"name\": \"PI\"\n    },\n    {\n      \"name\": \"PI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"PISCIS\"\n    },\n    {\n      \"name\": \"PITHOS\"\n    },\n    {\n      \"name\": \"PITHOSA\"\n    },\n    {\n      \"name\": \"PITHOSSCUTELLA\"\n    },\n    {\n      \"name\": \"POCULUM\"\n    },\n    {\n      \"name\": \"PODIUM\"\n    },\n    {\n      \"name\": \"PONERE\"\n    },\n    {\n      \"name\": \"PORTA\"\n    },\n    {\n      \"name\": \"PORTA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PORTA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"POST\"\n    },\n    {\n      \"name\": \"PRAE\"\n    },\n    {\n      \"name\": \"PRINCEPS\"\n    },\n    {\n      \"name\": \"PROPHETA\"\n    },\n    {\n      \"name\": \"PU\"\n    },\n    {\n      \"name\": \"PU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"PUGNUS\"\n    },\n    {\n      \"name\": \"PUGNUSPUGNUS\"\n    },\n    {\n      \"name\": \"PUGNUSX\"\n    },\n    {\n      \"name\": \"PURUS\"\n    },\n    {\n      \"name\": \"RAA\"\n    },\n    {\n      \"name\": \"RAI\"\n    },\n    {\n      \"name\": \"REGIO\"\n    },\n    {\n      \"name\": \"REL\"\n    },\n    {\n      \"name\": \"REX\"\n    },\n    {\n      \"name\": \"REXFILIA\"\n    },\n    {\n      \"name\": \"REXFILIUS\"\n    },\n    {\n      \"name\": \"REXINFANS\"\n    },\n    {\n      \"name\": \"RII\"\n    },\n    {\n      \"name\": \"ROTA\"\n    },\n    {\n      \"name\": \"RU\"\n    },\n    {\n      \"name\": \"RU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SA\"\n    },\n    {\n      \"name\": \"SA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SACERDOS\"\n    },\n    {\n      \"name\": \"SACERDOS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SACERDOS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SARAI\"\n    },\n    {\n      \"name\": \"SARMA\"\n    },\n    {\n      \"name\": \"SARMA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SARMA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SARPA\"\n    },\n    {\n      \"name\": \"SAX\"\n    },\n    {\n      \"name\": \"SCALPRUM\"\n    },\n    {\n      \"name\": \"SCRIBA\"\n    },\n    {\n      \"name\": \"SCUTELLA\"\n    },\n    {\n      \"name\": \"SCUTUM\"\n    },\n    {\n      \"name\": \"SERVUS\"\n    },\n    {\n      \"name\": \"SI\"\n    },\n    {\n      \"name\": \"SI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SIGILLUM\"\n    },\n    {\n      \"name\": \"SOL\"\n    },\n    {\n      \"name\": \"SOL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SOL[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SOLIIMENSA\"\n    },\n    {\n      \"name\": \"SOLIITHRONUS\"\n    },\n    {\n      \"name\": \"SOLIUM\"\n    },\n    {\n      \"name\": \"SPHINX\"\n    },\n    {\n      \"name\": \"STATUA\"\n    },\n    {\n      \"name\": \"STELE\"\n    },\n    {\n      \"name\": \"SU\"\n    },\n    {\n      \"name\": \"SU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"SUB\"\n    },\n    {\n      \"name\": \"SUPER\"\n    },\n    {\n      \"name\": \"TA\"\n    },\n    {\n      \"name\": \"TA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"TAI\"\n    },\n    {\n      \"name\": \"TAI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TAI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"TALA\"\n    },\n    {\n      \"name\": \"TANA\"\n    },\n    {\n      \"name\": \"TAPA\"\n    },\n    {\n      \"name\": \"TARAI\"\n    },\n    {\n      \"name\": \"TARAIX\"\n    },\n    {\n      \"name\": \"TELIPINU\"\n    },\n    {\n      \"name\": \"TEN\"\n    },\n    {\n      \"name\": \"TERRA\"\n    },\n    {\n      \"name\": \"TESHUB\"\n    },\n    {\n      \"name\": \"THOUSAND\"\n    },\n    {\n      \"name\": \"THREE\"\n    },\n    {\n      \"name\": \"THRONUS\"\n    },\n    {\n      \"name\": \"THRONUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"THRONUS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"TI\"\n    },\n    {\n      \"name\": \"TI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"TONITRUS\"\n    },\n    {\n      \"name\": \"tsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TU\"\n    },\n    {\n      \"name\": \"TU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"TURRIS\"\n    },\n    {\n      \"name\": \"TUZZI\"\n    },\n    {\n      \"name\": \"TWELVE\"\n    },\n    {\n      \"name\": \"TWO\"\n    },\n    {\n      \"name\": \"U\"\n    },\n    {\n      \"name\": \"UA\"\n    },\n    {\n      \"name\": \"UNGULA\"\n    },\n    {\n      \"name\": \"UNUS\"\n    },\n    {\n      \"name\": \"UR\"\n    },\n    {\n      \"name\": \"URBS\"\n    },\n    {\n      \"name\": \"URBSLI\"\n    },\n    {\n      \"name\": \"URBSRAILI\"\n    },\n    {\n      \"name\": \"URCEUS\"\n    },\n    {\n      \"name\": \"URHI\"\n    },\n    {\n      \"name\": \"US\"\n    },\n    {\n      \"name\": \"VACUUS\"\n    },\n    {\n      \"name\": \"VAS\"\n    },\n    {\n      \"name\": \"VERSUS\"\n    },\n    {\n      \"name\": \"VIA\"\n    },\n    {\n      \"name\": \"VIATERRAPLUSSCALPRUM\"\n    },\n    {\n      \"name\": \"VIATERRASCALPRUM\"\n    },\n    {\n      \"name\": \"VIR\"\n    },\n    {\n      \"name\": \"VIR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VIR[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"VIRIIA\"\n    },\n    {\n      \"name\": \"VIRIIMINUS\"\n    },\n    {\n      \"name\": \"VITA\"\n    },\n    {\n      \"name\": \"VITELLUS\"\n    },\n    {\n      \"name\": \"VITIS\"\n    },\n    {\n      \"name\": \"WAI\"\n    },\n    {\n      \"name\": \"WAI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WAI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"WIYA\"\n    },\n    {\n      \"name\": \"WORD\"\n    },\n    {\n      \"name\": \"ZA\"\n    },\n    {\n      \"name\": \"ZA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZA[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"ZAX\"\n    },\n    {\n      \"name\": \"ZI\"\n    },\n    {\n      \"name\": \"ZI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZI[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"ZIA\"\n    },\n    {\n      \"name\": \"ZU\"\n    },\n    {\n      \"name\": \"ZU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZU[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"ZUWA\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/luximono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/luximono#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/luximono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lwarp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifptex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"verifycommand\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"printlen\"\n    },\n    {\n      \"name\": \"capt-of\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lwarpsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lwarpsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/lwarp#c,\\\\lwarpsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HTMLFirstPageTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLFirstPageTop{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLFirstPageBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLFirstPageBottom{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"linkhomename\"\n    },\n    {\n      \"name\": \"linkpreviousname\"\n    },\n    {\n      \"name\": \"linknextname\"\n    },\n    {\n      \"name\": \"theSideTOCDepth\"\n    },\n    {\n      \"name\": \"sidetocname\"\n    },\n    {\n      \"name\": \"theFileDepth\"\n    },\n    {\n      \"name\": \"FilenameLimit\"\n    },\n    {\n      \"name\": \"theFootnoteDepth\"\n    },\n    {\n      \"name\": \"IndexPageSeparator\"\n    },\n    {\n      \"name\": \"IndexRangeSeparator\"\n    },\n    {\n      \"name\": \"CSSFilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSSFilename{${1:filename.css%file}}\"\n      }\n    },\n    {\n      \"name\": \"MathJaxFilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathJaxFilename{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLLanguage{${1:language tag}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLTitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLTitleBeforeSection\"\n    },\n    {\n      \"name\": \"HTMLTitleAfterSection\"\n    },\n    {\n      \"name\": \"HTMLAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLAuthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLDescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLDescription{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLKeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLKeywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLMeta\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HTMLMeta{${1:name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLAddMeta\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HTMLAddMeta{${1:name}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLPageTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLPageTop{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLPageBottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLPageBottom{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"LinkHome\"\n    },\n    {\n      \"name\": \"LinkPrevious\"\n    },\n    {\n      \"name\": \"LinkNext\"\n    },\n    {\n      \"name\": \"ImageAltText\"\n    },\n    {\n      \"name\": \"ThisAltText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisAltText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MathImageAltText\"\n    },\n    {\n      \"name\": \"PackageDiagramAltText\"\n    },\n    {\n      \"name\": \"AltTextOpen\"\n    },\n    {\n      \"name\": \"AltTextClose\"\n    },\n    {\n      \"name\": \"HTMLnewcolumntype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HTMLnewcolumntype{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLnewcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"HTMLnewcolumntype{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLnewcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"HTMLnewcolumntype{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"warpprintonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warpprintonly{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"warpHTMLonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"warpHTMLonly{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"InlineClass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InlineClass{${1:css class}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"InlineClass\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"InlineClass[${3:web css style}]{${1:css class}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"InlineClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"InlineClass(${3:wp css style}){${1:css class}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"InlineClass\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"InlineClass(${4:wp css style})[${3:web css style}]{${1:css class}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginparBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginparBlock{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"marginparBlock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginparBlock[${2:left%text}]{${1:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"UseMinipageWidths\"\n    },\n    {\n      \"name\": \"IgnoreMinipageWidths\"\n    },\n    {\n      \"name\": \"fboxBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fboxBlock{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FilenameSimplify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FilenameSimplify{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FilenameSimplify*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FilenameSimplify*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FilenameNullify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FilenameNullify{${1:macros}}\"\n      }\n    },\n    {\n      \"name\": \"ForceHTMLPage\"\n    },\n    {\n      \"name\": \"ForceHTMLTOC\"\n    },\n    {\n      \"name\": \"AddSubtitlePublished\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayrulecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrayrulecolor[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arrayrulecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrayrulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arrayrulecolornexttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrayrulecolornexttoken[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arrayrulecolornexttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrayrulecolornexttoken{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"attribution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"BaseJobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlockClassSingle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlockClassSingle{${1:css class}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdashline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csNewCommandCopycs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"csNewCommandCopycs{${1:dest csname}}{${2:source csname}}\"\n      }\n    },\n    {\n      \"name\": \"CustomizeMathJax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CustomizeMathJax{${1:macros}}\"\n      }\n    },\n    {\n      \"name\": \"defaddtocounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defaddtocounter{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"displaymathnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaymathother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublerulesepcolor[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublerulesepcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolornexttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublerulesepcolornexttoken[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"doublerulesepcolornexttoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublerulesepcolornexttoken{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"firsthdashline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hdashline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HomeHTMLFilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTMLentity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLentity{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"HTMLFilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HTMLunicode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HTMLunicode{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperindexformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hyperindexref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperindexref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hypertoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hypertoc{${1:depth}}{${2:type}}{${3:name}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"hypertocfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"hypertocfloat{${1:depth}}{${2:type}}{${3:ext of parent}}{${4:caption}}{${5:page}}\"\n      }\n    },\n    {\n      \"name\": \"inlinemathnormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlinemathother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lasthdashline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lasthdashline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lasthdashline[${1:optarg1}]\"\n      }\n    },\n    {\n      \"name\": \"LateximageFontScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LateximageFontSizeName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRabsorbnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LWRabsorbnumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LWRabsorboption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LWRabsorboption{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LWRabsorbquotenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRabsorbtwooptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LWRabsorbtwooptions[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LWRabsorbtwooptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LWRabsorbtwooptions{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LWRamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRdollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRframebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LWRframebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"LWRhash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRleftbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRopquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRopseq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRorighspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRPrintStack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRrightbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWRsetnextfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LWRsetnextfloat{${1:autopage}}{${2:float autoID}}\"\n      }\n    },\n    {\n      \"name\": \"LWRtexttitlecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LWRtexttitlecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"macrotocsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macrotocsname{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"mcolrowcell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midrule{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"minipagefullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morecmidrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrowcell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolumnrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]{}[]{}\",\n        \"snippet\": \"multicolumnrow{${1:cols}}{${2:halign}}[${6:vpos}]{${3:numrows}}[${7:bigstruts}]{${4:width}}[${8:fixup}]{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"multicolumnrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"multicolumnrow{${1:cols}}{${2:halign}}{${3:numrows}}{${4:width}}{${5:text}}\"\n      }\n    },\n    {\n      \"name\": \"NewEnvironmentCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewEnvironmentCopy{${1:dest%envname}}{${2:source}}\"\n      }\n    },\n    {\n      \"name\": \"nexttoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nohyperpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nohyperpage{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"OSPathSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagerefPageFor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postbookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsubparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postsubsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prebookname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presubparagraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presubsubsectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printpublished\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printthanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResumeTabular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetHTMLFileNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHTMLFileNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"simplechapterdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialrule{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"StartDefiningMath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StartDefiningTabulars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StopDefiningMath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StopDefiningTabulars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texorpdfstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteReset\"\n    },\n    {\n      \"name\": \"theHTMLAuthor\"\n    },\n    {\n      \"name\": \"theHTMLSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHTMLTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHTMLTitleSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHTMLTitleSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelofdepth\"\n    },\n    {\n      \"name\": \"thelotdepth\"\n    },\n    {\n      \"name\": \"theMathJaxequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMathJaxsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMathJaxsubequations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThisComment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmpb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toprule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toprule{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"tracinglwarp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimHTMLWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"warpprint\"\n    },\n    {\n      \"name\": \"warpHTML\"\n    },\n    {\n      \"name\": \"BlockClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:css class}}\"\n      }\n    },\n    {\n      \"name\": \"BlockClass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:style}]{${1:css class}}\"\n      }\n    },\n    {\n      \"name\": \"warpall\"\n    },\n    {\n      \"name\": \"warpMathJax\"\n    },\n    {\n      \"name\": \"warpsvg\"\n    },\n    {\n      \"name\": \"fcolorminipage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lateximage\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lwarp#c,\\\\lwarpsetup\": [\n      \"mathsvg\",\n      \"mathjax\",\n      \"latexmk\",\n      \"dvips\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"HomeHTMLFilename=${1:file name}\",\n      \"HTMLFilename=${1:file prefix}\",\n      \"ImagesName=${1:file prefix}\",\n      \"ImagesDirectory=${1:directory}\",\n      \"PrintLatexCmd=${1:shell command}\",\n      \"HTMLLatexCmd=${1:shell command}\",\n      \"makeindex\",\n      \"makeindexStyle=${1:.ist file}\",\n      \"xindy\",\n      \"xindyStyle=${1:.xdy file}\",\n      \"xindyLanguage=${1:language}\",\n      \"xindyCodepage=${1:codepage}\",\n      \"xindex\",\n      \"xindexConfig=${1:file name}\",\n      \"PrintIndexCmd=${1:shell command}\",\n      \"HTMLIndexCmd=${1:shell command}\",\n      \"LatexmkIndexCmd=${1:shell command}\",\n      \"IndexRef\",\n      \"GlossaryCmd=${1:shell command}\",\n      \"OSWindows\",\n      \"pdftotextEnc=${1:encoding}\",\n      \"lwarpmk\",\n      \"warpdisable\",\n      \"warpprint\",\n      \"warpHTML\",\n      \"BaseJobname=${1:jobname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lwarp#c,\\\\lwarpsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/lyluatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"minibox\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"luaoptions\"\n    },\n    {\n      \"name\": \"metalogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lyluatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyFilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyFilename{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"lyIntertext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyIntertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lyVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyVersion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"includely\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includely{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includely\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includely[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"musicxmlfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musicxmlfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"musicxmlfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"musicxmlfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lyscorebegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyscoreend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lysetverbenv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lysetverbenv{${1:begdef}}{${2:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lyenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"lynewenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lynewenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lynewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"lynewenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lynewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"lynewenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"lily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lily{${1:score}}\"\n      }\n    },\n    {\n      \"name\": \"lily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lily[${2:options%keyvals}]{${1:score}}\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lyscore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lyscore{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\setluaoption#c,\\\\lyscore#c\",\n          \"\\\\lyscore#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilypondfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilypondfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"lilypondfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilypondfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilypond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lilypond{${1:score}}\"\n      }\n    },\n    {\n      \"name\": \"lilypond\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lilypond[${2:options%keyvals}]{${1:score}}\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lysavefrag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"ly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lilypond\"\n    },\n    {\n      \"name\": \"lilypond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\": [\n      \"insert=${1|systems,fullpage,inline,bare-inline|}\",\n      \"fullpagestyle=${1:pagestyle}\",\n      \"print-page-number\",\n      \"first-page-number\",\n      \"inline-staffsize=${1:pts}\",\n      \"valign=${1|center,top,bottom|}\",\n      \"voffset=\",\n      \"hpadding=\",\n      \"print-only\",\n      \"print-only={${1:number range(s)}}\",\n      \"line-width=\",\n      \"staffsize=${1:pts}\",\n      \"ragged-right\",\n      \"noragged-right\",\n      \"indent=\",\n      \"noindent\",\n      \"system-count=${1:integer}\",\n      \"quote\",\n      \"gutter=\",\n      \"leftgutter=\",\n      \"rightgutter=\",\n      \"exampleindent=\",\n      \"papersize=${1:paper size}\",\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"twoside\",\n      \"max-protrusion=\",\n      \"max-left-protrusion=\",\n      \"max-right-protrusion=\",\n      \"autoindent\",\n      \"fullpagealign=${1|crop,staffline|}\",\n      \"extra-bottom-margin=${1:pts}\",\n      \"extra-top-margin=${1:pts}\",\n      \"fragment\",\n      \"pass-fonts\",\n      \"current-font-as-main\",\n      \"rmfamily=${1:font family}\",\n      \"sffamily=${1:font family}\",\n      \"ttfamily=${1:font family}\",\n      \"noclef\",\n      \"notimesig\",\n      \"nostaffsymbol\",\n      \"notiming\",\n      \"notime\",\n      \"nostaff\",\n      \"relative=${1:integer}\",\n      \"language=${1:language}\",\n      \"label=\",\n      \"labelprefix=${1:prefix}\",\n      \"printfilename\",\n      \"verbatim\",\n      \"addversion\",\n      \"intertext=${1:text}\",\n      \"includepaths={${1:path1,path2,...}}\",\n      \"program=${1:program}\",\n      \"ly-version=${1:version}\",\n      \"tmpdir=${1:directory}\",\n      \"cleantmp\",\n      \"write-headers\",\n      \"optimize-pdf\",\n      \"debug\",\n      \"showfailed\",\n      \"force-compilation\",\n      \"fix_badly_cropped_staffgroup_brackets\",\n      \"xml2ly=${1:program}\",\n      \"absolute\",\n      \"lxml\",\n      \"verbose\",\n      \"no-articulation-directions\",\n      \"no-beaming\",\n      \"no-page-layout\",\n      \"no-rest-positions\",\n      \"raw-pdf\"\n    ],\n    \"\\\\setluaoption#c,\\\\lyscore#c\": [\n      \"insert\",\n      \"fullpagestyle\",\n      \"print-page-number\",\n      \"first-page-number\",\n      \"inline-staffsize\",\n      \"valign\",\n      \"voffset\",\n      \"hpadding\",\n      \"print-only\",\n      \"line-width\",\n      \"staffsize\",\n      \"ragged-right\",\n      \"noragged-right\",\n      \"indent\",\n      \"system-count\",\n      \"quote\",\n      \"gutter\",\n      \"leftgutter\",\n      \"rightgutter\",\n      \"exampleindent\",\n      \"papersize\",\n      \"paperwidth\",\n      \"paperheight\",\n      \"twoside\",\n      \"max-protrusion\",\n      \"max-left-protrusion\",\n      \"max-right-protrusion\",\n      \"autoindent\",\n      \"fullpagealign\",\n      \"extra-bottom-margin\",\n      \"extra-top-margin\",\n      \"fragment\",\n      \"pass-fonts\",\n      \"current-font-as-main\",\n      \"rmfamily\",\n      \"sffamily\",\n      \"ttfamily\",\n      \"noclef\",\n      \"notimesig\",\n      \"nostaffsymbol\",\n      \"notiming\",\n      \"notime\",\n      \"nostaff\",\n      \"relative\",\n      \"language\",\n      \"label\",\n      \"labelprefix\",\n      \"printfilename\",\n      \"verbatim\",\n      \"addversion\",\n      \"intertext\",\n      \"includepaths\",\n      \"program\",\n      \"ly-version\",\n      \"tmpdir\",\n      \"cleantmp\",\n      \"write-headers\",\n      \"optimize-pdf\",\n      \"debug\",\n      \"showfailed\",\n      \"force-compilation\",\n      \"fix_badly_cropped_staffgroup_brackets\",\n      \"xml2ly\",\n      \"language\",\n      \"absolute\",\n      \"lxml\",\n      \"verbose\",\n      \"no-articulation-directions\",\n      \"no-beaming\",\n      \"no-page-layout\",\n      \"no-rest-positions\",\n      \"raw-pdf\"\n    ],\n    \"\\\\lyscore#c\": [\n      \"${1:number}\",\n      \"nsystems\",\n      \"hoffset\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lyluatex#c,\\\\includely#c,\\\\musicxmlfile#c,\\\\begin{ly}#c,\\\\lily#c,\\\\lilypondfile#c,\\\\begin{lilypond}#c,\\\\lilypond#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mVersion.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"version\"\n    },\n    {\n      \"name\": \"setVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setVersion{${1:version number}}\"\n      }\n    },\n    {\n      \"name\": \"increaseBuild\"\n    },\n    {\n      \"name\": \"versionnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"buildnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versionline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebuildcounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/maa-monthly.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"papertrimheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"papertrimwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"journalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theannual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"editor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"editor[${2:address%text}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nomaketitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reviewer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reviewer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fillerhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillerhead{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"fillerheadmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillerheadmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"auq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"auq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fudgetrimdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fudgetrimright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imagemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dffudge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jotskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnoalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnoalign{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"abrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settildes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threeem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bysame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsection*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"refsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refsectionmark{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"final\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"filler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acknowledgment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"biog\"\n    },\n    {\n      \"name\": \"affil\"\n    },\n    {\n      \"name\": \"biogaffil\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/macrolist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"macronewlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macronewlist{${1:listname%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"macrolistexists\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"macrolistexists{${1:listname%keyvals}}{${2:true}}{${3:false}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistelement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolistelement{${1:listname%keyvals}}{${2:position}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistindexof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolistindexof{${1:listname%keyvals}}{${2:element}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistcontains\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"macrolistcontains{${1:listname%keyvals}}{${2:element}}{${3:true}}{${4:false}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolistadd{${1:listname%keyvals}}{${2:element}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistadd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"macrolistadd{${1:listname%keyvals}}[${3:position}]{${2:element}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolisteadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolisteadd{${1:listname%keyvals}}{${2:element}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolisteadd\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"macrolisteadd{${1:listname%keyvals}}[${3:position}]{${2:element}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistremove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolistremove{${1:listname%keyvals}}{${2:position}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistremovelast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macrolistremovelast{${1:listname%keyvals}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistclear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macrolistclear{${1:listname%keyvals}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macrolistsize{${1:listname%keyvals}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistforeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"macrolistforeach{${1:listname%keyvals}}{${2:cmd}}{${3:action}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistforeach\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"macrolistforeach{${1:listname%keyvals}}{${2:cmd}}[${4:begin}][${5:end}]{${3:action}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macrolistjoin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macrolistjoin{${1:listname%keyvals}}{${2:joiner}}\",\n        \"keys\": [\n          \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\macrolistexists#c,\\\\macrolistelement#c,\\\\macrolistindexof#c,\\\\macrolistcontains#c,\\\\macrolistadd#c,\\\\macrolisteadd#c,\\\\macrolistremove#c,\\\\macrolistremovelast#c,\\\\macrolistclear#c,\\\\macrolistsize#c,\\\\macrolistforeach#c,\\\\macrolistjoin#c\": [\n      \"%macrolist\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/macroswap.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"macroswap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"macroswap{${1:csname1}}{${2:csname2}}\"\n      }\n    },\n    {\n      \"name\": \"gmacroswap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gmacroswap{${1:csname1}}{${2:csname2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mafr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"a4wide\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathrsfs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrsfs{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"angl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frc{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"J\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"teneuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/magaz.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FirstLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstLine{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FirstLineFont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/magicnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"magicnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magicnum{${1:access key%keyvals}}\",\n        \"keys\": [\n          \"\\\\magicnum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\magicnum#c\": [\n      \"tex.catcode.escape\",\n      \"tex.catcode.begingroup\",\n      \"tex.catcode.endgroup\",\n      \"tex.catcode.math\",\n      \"tex.catcode.align\",\n      \"tex.catcode.eol\",\n      \"tex.catcode.parameter\",\n      \"tex.catcode.superscript\",\n      \"tex.catcode.subscript\",\n      \"tex.catcode.ignore\",\n      \"tex.catcode.space\",\n      \"tex.catcode.letter\",\n      \"tex.catcode.other\",\n      \"tex.catcode.active\",\n      \"tex.catcode.comment\",\n      \"tex.catcode.invalid\",\n      \"etex.grouptype.bottomlevel\",\n      \"etex.grouptype.simple\",\n      \"etex.grouptype.hbox\",\n      \"etex.grouptype.adjustedhbox\",\n      \"etex.grouptype.vbox\",\n      \"etex.grouptype.align\",\n      \"etex.grouptype.noalign\",\n      \"etex.grouptype.output\",\n      \"etex.grouptype.math\",\n      \"etex.grouptype.disc\",\n      \"etex.grouptype.insert\",\n      \"etex.grouptype.vcenter\",\n      \"etex.grouptype.mathchoice\",\n      \"etex.grouptype.semisimple\",\n      \"etex.grouptype.mathshift\",\n      \"etex.grouptype.mathleft\",\n      \"etex.iftype.none\",\n      \"etex.iftype.char\",\n      \"etex.iftype.cat\",\n      \"etex.iftype.num\",\n      \"etex.iftype.dim\",\n      \"etex.iftype.odd\",\n      \"etex.iftype.vmode\",\n      \"etex.iftype.hmode\",\n      \"etex.iftype.mmode\",\n      \"etex.iftype.inner\",\n      \"etex.iftype.void\",\n      \"etex.iftype.hbox\",\n      \"etex.iftype.vbox\",\n      \"etex.iftype.x\",\n      \"etex.iftype.eof\",\n      \"etex.iftype.true\",\n      \"etex.iftype.false\",\n      \"etex.iftype.case\",\n      \"etex.iftype.defined\",\n      \"etex.iftype.csname\",\n      \"etex.iftype.fontchar\",\n      \"etex.nodetype.none\",\n      \"etex.nodetype.char\",\n      \"etex.nodetype.hlist\",\n      \"etex.nodetype.vlist\",\n      \"etex.nodetype.rule\",\n      \"etex.nodetype.ins\",\n      \"etex.nodetype.mark\",\n      \"etex.nodetype.adjust\",\n      \"etex.nodetype.ligature\",\n      \"etex.nodetype.disc\",\n      \"etex.nodetype.whatsit\",\n      \"etex.nodetype.math\",\n      \"etex.nodetype.glue\",\n      \"etex.nodetype.kern\",\n      \"etex.nodetype.penalty\",\n      \"etex.nodetype.unset\",\n      \"etex.nodetype.maths\",\n      \"etex.interactionmode.batch\",\n      \"etex.interactionmode.nonstop\",\n      \"etex.interactionmode.scroll\",\n      \"etex.interactionmode.errorstop\",\n      \"luatex.pdfliteral.mode.setorigin\",\n      \"luatex.pdfliteral.mode.page\",\n      \"luatex.pdfliteral.mode.direct\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/magicwatermark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MagicWatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MagicWatermark{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mahjong.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"stackengine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mahjong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mahjong{${1:tile-code}}\"\n      }\n    },\n    {\n      \"name\": \"mahjong\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mahjong[${2:height}]{${1:tile-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mailing.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"addressfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addressfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mailingtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailingtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makemailing\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mailmerge.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mailfields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailfields{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mailrepeat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailrepeat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"numberoffields\"\n    },\n    {\n      \"name\": \"numberofentries\"\n    },\n    {\n      \"name\": \"entrynumber\"\n    },\n    {\n      \"name\": \"mailentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailentry{${1:value1,value2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mailnewdata\"\n    },\n    {\n      \"name\": \"MAILMcurrtag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MAILMtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMAILMcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theMAILMentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MAILMrepetition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MAILMsetnumfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MAILMsetnumfields{${1:tag}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"MAILMsetnumentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MAILMsetnumentries{${1:tag}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"MAILMaux\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makebarcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"barcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"barcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"barcode[${2:options%keyvals}]{${1:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/makebarcode#c,\\\\barcode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"HPlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HPlabel{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ITFbarcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ITFbarcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ITFbarcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ITFbarcode[${2:options%keyvals}]{${1:code}}\",\n        \"keys\": [\n          \"\\\\ITFbarcode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BarcodeSanitize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/makebarcode#c\": [\n      \"help\"\n    ],\n    \"\\\\usepackage/makebarcode#c,\\\\barcode\": [\n      \"X=\",\n      \"H=\",\n      \"bcorr=\",\n      \"ratio=${1:ratio}\",\n      \"K=${1:number}\",\n      \"MtoXratio=${1:ratio}\",\n      \"code=${1|2/5-Industrial,2/5-IATA,2/5-Matrix,2/5-Datalogic,2/5-Inverted,2/5-Interleaved,Code39|}\",\n      \"S1.2\",\n      \"S1.1\",\n      \"S1\",\n      \"S.9\",\n      \"S.8\",\n      \"S.7\",\n      \"S.6\",\n      \"lines\",\n      \"frame\"\n    ],\n    \"\\\\ITFbarcode\": [\n      \"lines\",\n      \"frame\",\n      \"S1.2\",\n      \"S1.1\",\n      \"S1\",\n      \"S.9\",\n      \"S.8\",\n      \"S.7\",\n      \"S.6\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/makebarcode#c\",\n    \"\\\\usepackage/makebarcode#c,\\\\barcode\"\n  ]\n}"
  },
  {
    "path": "dev/packages/makebase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makebase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makebase{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"makebase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makebase[${2:base}]{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makebox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"makebox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makebox*{${1:reference_text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"makebox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makebox*{${1:reference_text}}[${3:pos%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\makebox*\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\makebox*\": [\n      \"l\",\n      \"r\",\n      \"s\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makecell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"botstrut\"\n    },\n    {\n      \"name\": \"bottopstrut\"\n    },\n    {\n      \"name\": \"cellalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"celldiagratio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellgape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellrotangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cellset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diaghead\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"diaghead(${4:Hratio},${5:Vratio}){${1:text for width%text}}{${2:head1%text}}{${3:head2%text}}\"\n      }\n    },\n    {\n      \"name\": \"diaghead\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diaghead{${1:text for width%text}}{${2:head1%text}}{${3:head2%text}}\"\n      }\n    },\n    {\n      \"name\": \"eline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eline{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"erows\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"erows[${3:rptcmd}]{${1:ncols}}{${2:nrows}}\"\n      }\n    },\n    {\n      \"name\": \"erows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erows{${1:ncols}}{${2:nrows}}\"\n      }\n    },\n    {\n      \"name\": \"Gape\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Gape[${2:height%l}][${3:depth%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gape[${2:height%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Gape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gape[${2:t or b}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makecell*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makecell*[${2:alignment}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makecell*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecell*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makecell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makecell[${2:alignment}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makecell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makecellbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makecellbox[${2:alignment}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"makecellbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecellbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"makegapedcells\"\n    },\n    {\n      \"name\": \"multirowcell\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"multirowcell{${1:nrow}}[${3:vmove}][${4:hor alignment}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcell\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"multirowcell{${1:nrow}}[${3:vmove}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirowcell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowcell{${1:nrow}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirowthead\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"multirowthead{${1:nrow}}[${3:vmove}][${4:hor alignment}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirowthead\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"multirowthead{${1:nrow}}[${3:vmove}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirowthead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multirowthead{${1:nrow}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"negjot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"negjot{${1:jot}}\"\n      }\n    },\n    {\n      \"name\": \"nline\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nline[${2:type}][${3:startnum}]{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"nline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nline[${2:type}]{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"nline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nline{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"nomakegapedcells\"\n    },\n    {\n      \"name\": \"rnline\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"rnline[${2:type}][${3:startnum}]{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"rnline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rnline[${2:type}]{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"rnline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnline{${1:ncells}}\"\n      }\n    },\n    {\n      \"name\": \"rotcell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rotcell[${2:alignment}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotcell{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rothead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rothead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotheadgape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotheadsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcellgapes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setcellgapes[${2:t or b}]{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"setcellgapes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcellgapes{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"thead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thead*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theadalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theadgape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theadset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenlinenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topstrut\"\n    },\n    {\n      \"name\": \"Xcline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Xcline{${1:start-end}}{${2:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"Xhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xhline{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"Xrows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Xrows{${1:rptcmd}}{${2:nrows}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mcellbox\"\n    },\n    {\n      \"name\": \"mcellbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:alignment}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makecmds.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"makecommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"makecommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makecommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makecommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"makecommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makecommand*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"provideenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"provideenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"makeenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"makeenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"makeenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"makeenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"makeenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makeenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"providelength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"makelength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecounter{${1:counter name}}\"\n      }\n    },\n    {\n      \"name\": \"makecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makecounter{${1:counter name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/makecmds#c\": [\n      \"warn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/makecmds#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/makeglos.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"printglossary\"\n    },\n    {\n      \"name\": \"glossaryname\"\n    },\n    {\n      \"name\": \"glossaryintro\"\n    },\n    {\n      \"name\": \"gsee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsee{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"galso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"galso{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theglossary\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makeidx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printindex\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makematch.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MakeMatcher\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeMatcher{${1:cmd}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"MakeMatchTarget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeMatchTarget{${1:cmd}}{${2:keyword list}}\"\n      }\n    },\n    {\n      \"name\": \"MakeMatchTarget\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MakeMatchTarget[${3:list separator}]{${1:cmd}}{${2:keyword list}}\"\n      }\n    },\n    {\n      \"name\": \"MatchedTarget\"\n    },\n    {\n      \"name\": \"RemoveMatched\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveMatched{${1:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/makeplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MPbg\"\n    },\n    {\n      \"name\": \"MPcolor\"\n    },\n    {\n      \"name\": \"styleoflineA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"styleoflineG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontaxeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontaxeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fonttitleY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fonttitleX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontlegend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultOptionsMakeplot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plotFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"plotFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plotFile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"legendXY\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"legendXY(${3:x},${4:y}){${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendXY\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"legendXY[${3:options%keyvals}](${4:x},${5:y}){${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendDL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legendDL{${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendDR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legendDR{${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendUL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legendUL{${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendUR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"legendUR{${1:number of lines}}{${2:width in mm}}\"\n      }\n    },\n    {\n      \"name\": \"legendAf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendAf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendAf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendAf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendBf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendBf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendBf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendBf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendCf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendCf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendCf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendCf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendDf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendDf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendDf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendDf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendEf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendEf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendEf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendEf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendFf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendFf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendFf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendFf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendGf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendGf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendGf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendGf[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"legendText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"legendText[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"makeplot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x label}}{${2:y label}}\"\n      }\n    },\n    {\n      \"name\": \"makeplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:x label}}{${2:y label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/makeplot#c\": [\n      \"color\",\n      \"drawmargins\",\n      \"big\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/makeplot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/maker.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ArduinoSketch\",\n      \"if\": \"arduino\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ArduinoSketch{${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ArduinoInline\",\n      \"if\": \"arduino\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArduinoInline{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessingSketch\",\n      \"if\": \"processing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProcessingSketch{${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessingInline\",\n      \"if\": \"processing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessingInline{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"FormatDigit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatDigit{${1:digits}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ArduinoSketchBox\",\n      \"if\": \"arduino\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"ArduinoSketchBox\",\n      \"if\": \"arduino\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:tcolorbox options}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessingSketchBox\",\n      \"if\": \"processing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessingSketchBox\",\n      \"if\": \"processing\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:tcolorbox options}]{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/maker#c\": [\n      \"arduino\",\n      \"processing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/maker#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/makeshape.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ctbnex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctbney\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mincorrect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mincorrect{${1:dimreg}}{${2:minkey}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshapeminwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeminheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeouterxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeouterysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpaths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setpaths{${1:anchor}}{${2:shape}}\"\n      }\n    },\n    {\n      \"name\": \"corrx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"targpointx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"targpointy\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/malayalam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"K\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"K{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mm\"\n    },\n    {\n      \"name\": \"X\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"X{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ambili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ashtamudi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aswathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bhanu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chippi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karthika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaumudi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kottakkal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malavika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mridula\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"payippad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"periyar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sabari\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sruthy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aathira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anakha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ayilyambold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bhavana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gauri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gopika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indulekha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISMashtamudi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISMkarthika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISMkaumudi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISMrevathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jaya\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ravivarma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sarada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thiruvathira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/malayalam#c\": [\n      \"keli\",\n      \"rachana\",\n      \"ambili\",\n      \"ashtamudi\",\n      \"aswathi\",\n      \"bhanu\",\n      \"chippi\",\n      \"karthika\",\n      \"kaumudi\",\n      \"kottakkal\",\n      \"makam\",\n      \"malavika\",\n      \"mridula\",\n      \"payippad\",\n      \"periyar\",\n      \"revathi\",\n      \"sabari\",\n      \"sruthy\",\n      \"ISMkarthika\",\n      \"jaya\",\n      \"gopika\",\n      \"ISMrevathi\",\n      \"ISMashtamudi\",\n      \"bhavana\",\n      \"aathira\",\n      \"ayilyambold\",\n      \"anakha\",\n      \"indulekha\",\n      \"ISMkaumudi\",\n      \"ravivarma\",\n      \"thiruvathira\",\n      \"sarada\",\n      \"gauri\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/malayalam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/maltese.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mc\"\n    },\n    {\n      \"name\": \"mC\"\n    },\n    {\n      \"name\": \"mg\"\n    },\n    {\n      \"name\": \"mG\"\n    },\n    {\n      \"name\": \"mh\"\n    },\n    {\n      \"name\": \"mH\"\n    },\n    {\n      \"name\": \"mz\"\n    },\n    {\n      \"name\": \"mZ\"\n    },\n    {\n      \"name\": \"my\"\n    },\n    {\n      \"name\": \"mY\"\n    },\n    {\n      \"name\": \"mi\"\n    },\n    {\n      \"name\": \"mI\"\n    },\n    {\n      \"name\": \"maltesec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maltesez\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maltesey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maltesei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malteseI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maltesetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maltesetext{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mandi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mandiversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mandisetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mandisetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mandi#c,\\\\mandisetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"momentum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentum{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentum{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CheckQuantity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckQuantity{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"acceleration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acceleration{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectoracceleration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectoracceleration{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accelerationonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accelerationonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accelerationvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectoraccelerationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectoraccelerationvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectoraccelerationbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectoraccelerationbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectoraccelerationderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectoraccelerationderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accelerationvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectoraccelerationalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectoraccelerationalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"accelerationvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectoraccelerationonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accelerationvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectoraccelerationonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accelerationvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectoraccelerationonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amount{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"amountvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amountvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"amountbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amountbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"amountderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amountderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"amountalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amountalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"amountonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amountonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amountonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularacceleration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularacceleration{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularacceleration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularacceleration{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularaccelerationonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularaccelerationonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularaccelerationvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularaccelerationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularaccelerationvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularaccelerationbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularaccelerationbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularaccelerationderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularaccelerationderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularaccelerationvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularaccelerationalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularaccelerationalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularaccelerationvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularaccelerationonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularaccelerationvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularaccelerationonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularaccelerationvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularaccelerationonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularfrequency\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularfrequency{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularfrequencyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularfrequencyvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularfrequencybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularfrequencybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularfrequencyderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularfrequencyderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularfrequencyalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularfrequencyalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularfrequencyonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularfrequencyonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularfrequencyonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulse{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularimpulse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularimpulse{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulseonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulseonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulseonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulsevectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularimpulsevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularimpulsevalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularimpulsebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularimpulsebaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularimpulsederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularimpulsederivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularimpulsevectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularimpulsealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularimpulsealternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularimpulsevectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularimpulseonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulsevectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularimpulseonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularimpulsevectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularimpulseonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentum{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularmomentum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularmomentum{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentumonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentumonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentumvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularmomentumvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularmomentumvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularmomentumbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularmomentumbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularmomentumderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularmomentumderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularmomentumvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularmomentumalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularmomentumalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularmomentumvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularmomentumonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentumvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularmomentumonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularmomentumvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularmomentumonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularvelocity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularvelocity{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocityvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularvelocityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularvelocityvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularvelocitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularvelocitybaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularvelocityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularvelocityderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"angularvelocityvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorangularvelocityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorangularvelocityalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"angularvelocityvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularvelocityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocityvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularvelocityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angularvelocityvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorangularvelocityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfield{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcmagneticfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcmagneticfield{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfieldvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcmagneticfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcmagneticfieldvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcmagneticfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcmagneticfieldbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcmagneticfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcmagneticfieldderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmagneticfieldvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcmagneticfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcmagneticfieldalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmagneticfieldvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcmagneticfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfieldvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcmagneticfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmagneticfieldvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcmagneticfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcurrentdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcurrentdensity{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensityvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcurrentdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcurrentdensityvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcurrentdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcurrentdensitybaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcurrentdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcurrentdensityderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentdensityvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorcurrentdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorcurrentdensityalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"currentdensityvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcurrentdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensityvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcurrentdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentdensityvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorcurrentdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"direction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direction{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"directionvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordirection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordirection{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"directionvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"directionbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"directionderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"directionalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"directiononlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directiononlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directiononlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directionvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordirectionvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordirectionvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"directionvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordirectionbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordirectionbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"directionvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordirectionderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordirectionderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"directionvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordirectionalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordirectionalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"directionvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordirectiononlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directionvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordirectiononlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directionvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordirectiononlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacement{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordisplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordisplacement{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"displacementbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"displacementderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"displacementalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"displacementonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacementonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacementonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacementvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordisplacementvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordisplacementvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordisplacementbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordisplacementbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordisplacementderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordisplacementderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displacementvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectordisplacementalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectordisplacementalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"displacementvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordisplacementonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacementvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordisplacementonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displacementvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectordisplacementonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemoment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemoment{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricdipolemoment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricdipolemoment{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemomentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemomentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemomentvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricdipolemomentvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricdipolemomentbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricdipolemomentderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricdipolemomentvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricdipolemomentalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricdipolemomentvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemomentvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricdipolemomentvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricdipolemomentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfield{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricfield{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfieldvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricfieldvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricfieldbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricfieldderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfieldvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorelectricfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorelectricfieldalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"electricfieldvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfieldvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfieldvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorelectricfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyflux{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorenergyflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorenergyflux{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyfluxvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorenergyfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorenergyfluxvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorenergyfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorenergyfluxbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorenergyfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorenergyfluxderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyfluxvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorenergyfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorenergyfluxalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"energyfluxvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorenergyfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyfluxvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorenergyfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyfluxvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorenergyfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"force\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"force{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"forcevector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorforce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorforce{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"forcevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"forcebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"forcederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"forcealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"forceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcevectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorforcevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorforcevalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"forcevectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorforcebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorforcebaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"forcevectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorforcederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorforcederivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"forcevectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forcevectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorforcealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorforcealternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"forcevectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorforceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcevectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorforceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcevectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorforceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfield{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorgravitationalfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorgravitationalfield{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfieldvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorgravitationalfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorgravitationalfieldvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorgravitationalfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorgravitationalfieldbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorgravitationalfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorgravitationalfieldderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalfieldvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorgravitationalfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorgravitationalfieldalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalfieldvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorgravitationalfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfieldvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorgravitationalfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalfieldvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorgravitationalfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulse{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorimpulse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorimpulse{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"impulsebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"impulsederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"impulsealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"impulseonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulseonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulseonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulsevectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorimpulsevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorimpulsevalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorimpulsebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorimpulsebaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorimpulsederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorimpulsederivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impulsevectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorimpulsealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorimpulsealternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"impulsevectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorimpulseonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulsevectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorimpulseonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"impulsevectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorimpulseonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemoment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemoment{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticdipolemoment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticdipolemoment{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemomentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemomentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemomentvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticdipolemomentvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticdipolemomentbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticdipolemomentderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticdipolemomentvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticdipolemomentalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticdipolemomentvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemomentvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticdipolemomentvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticdipolemomentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfield{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticfield{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfieldvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticfieldvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticfieldvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticfieldbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticfieldbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticfieldderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticfieldderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfieldvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormagneticfieldalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormagneticfieldalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfieldvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfieldvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfieldvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormagneticfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumflux{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumflux{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumfluxvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumfluxvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumfluxbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumfluxderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentumfluxvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectormomentumfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectormomentumfluxalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"momentumfluxvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumfluxvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentumfluxvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectormomentumfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poynting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poynting{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpoynting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorpoynting{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poyntingonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poyntingonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poyntingvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpoyntingvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorpoyntingvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpoyntingbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorpoyntingbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpoyntingderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorpoyntingderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poyntingvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorpoyntingalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorpoyntingalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"poyntingvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorpoyntingonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poyntingvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorpoyntingonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poyntingvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorpoyntingonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torque{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"torquevector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectortorque\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectortorque{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"torquevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"torquebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"torquederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"torquealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"torqueonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torqueonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torqueonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torquevectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectortorquevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectortorquevalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"torquevectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectortorquebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectortorquebaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"torquevectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectortorquederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectortorquederivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"torquevectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"torquevectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectortorquealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectortorquealternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"torquevectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectortorqueonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torquevectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectortorqueonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"torquevectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectortorqueonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocity{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocityvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocitybaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocityderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocityalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocityvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocityc{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocityc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocityc{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"velocityconlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityconlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocityconlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocitycvectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocitycvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocitycvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocitycbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocitycbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocitycderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocitycderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"velocitycvectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorvelocitycalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorvelocitycalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"velocitycvectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityconlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocitycvectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityconlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"velocitycvectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorvelocityconlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumber{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorwavenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorwavenumber{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumberbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumberbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumberderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumberderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumberalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumberalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumberonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumberonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumberonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumbervectorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervectorvalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorwavenumbervalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorwavenumbervalue{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervectorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervectorbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorwavenumberbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorwavenumberbaseunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervectorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervectorderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorwavenumberderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorwavenumberderivedunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervectoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavenumbervectoralternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vectorwavenumberalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorwavenumberalternateunits{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"wavenumbervectoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorwavenumberonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumbervectoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorwavenumberonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavenumbervectoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorwavenumberonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"area\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"area{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areavalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areavalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areabaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areabaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areaderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areaderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areaalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areaalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areaonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areaonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areaonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areachargedensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areachargedensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areachargedensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areachargedensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areachargedensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areachargedensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areachargedensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areachargedensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areachargedensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areachargedensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areachargedensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areachargedensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areachargedensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areamassdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areamassdensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areamassdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areamassdensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areamassdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areamassdensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areamassdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areamassdensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areamassdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areamassdensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"areamassdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areamassdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"areamassdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capacitance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capacitance{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"capacitancevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capacitancevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"capacitancebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capacitancebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"capacitancederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capacitancederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"capacitancealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capacitancealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"capacitanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capacitanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capacitanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charge{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"chargevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chargevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"chargebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chargebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"chargederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chargederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"chargealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chargealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"chargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductance{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductancevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductancevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductancebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductancebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductancederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductancederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductancealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductancealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductivity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductivity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductivityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductivityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductivitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductivitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductivityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductivityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductivityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conductivityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conductivityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductivityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conductivityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conventionalcurrent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conventionalcurrent{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conventionalcurrentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conventionalcurrentvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conventionalcurrentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conventionalcurrentbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conventionalcurrentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conventionalcurrentderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conventionalcurrentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conventionalcurrentalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"conventionalcurrentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conventionalcurrentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conventionalcurrentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"current\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"current{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"currentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dielectricconstant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dielectricconstant{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"dielectricconstantvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dielectricconstantvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"dielectricconstantbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dielectricconstantbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"dielectricconstantderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dielectricconstantderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"dielectricconstantalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dielectricconstantalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"dielectricconstantonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dielectricconstantonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dielectricconstantonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duration{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"durationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"durationvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"durationbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"durationbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"durationderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"durationderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"durationalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"durationalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"durationonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"durationonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"durationonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricflux{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfluxvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfluxbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfluxderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricfluxalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotential\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotential{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotentialonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotentialonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotentialdifference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialdifference{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialdifferencevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialdifferencevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialdifferencebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialdifferencebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialdifferencederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialdifferencederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialdifferencealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electricpotentialdifferencealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialdifferenceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotentialdifferenceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electricpotentialdifferenceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electroncurrent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electroncurrent{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electroncurrentvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electroncurrentvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electroncurrentbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electroncurrentbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electroncurrentderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electroncurrentderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electroncurrentalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"electroncurrentalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"electroncurrentonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electroncurrentonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electroncurrentonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emf{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"emfvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"emfbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"emfderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"emfalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emfalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"emfonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emfonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emfonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energy{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinev{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinevvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinevvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinevbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinevbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinevderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinevderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinevalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinevalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinevonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinevonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinevonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinkev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinkev{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinkevvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinkevvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinkevbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinkevbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinkevderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinkevderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinkevalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinkevalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinkevonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinkevonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinkevonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinmev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinmev{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinmevvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinmevvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinmevbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinmevbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinmevderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinmevderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinmevalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyinmevalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energyinmevonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinmevonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energyinmevonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energydensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energydensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energydensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energydensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energydensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energydensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energydensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energydensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energydensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energydensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"energydensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energydensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"energydensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entropy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropy{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"entropyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropyvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"entropybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"entropyderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropyderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"entropyalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entropyalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"entropyonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entropyonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entropyonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frequency\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frequency{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"frequencyvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frequencyvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"frequencybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frequencybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"frequencyderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frequencyderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"frequencyalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frequencyalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"frequencyonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frequencyonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frequencyonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotential\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotential{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotentialonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotentialonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotentialdifference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialdifference{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferencevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialdifferencevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferencebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialdifferencebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferencederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialdifferencederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferencealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gravitationalpotentialdifferencealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferenceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferenceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gravitationalpotentialdifferenceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexofrefraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexofrefraction{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"indexofrefractionvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexofrefractionvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"indexofrefractionbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexofrefractionbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"indexofrefractionderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexofrefractionderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"indexofrefractionalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexofrefractionalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"indexofrefractiononlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexofrefractiononlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexofrefractiononlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inductance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inductance{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"inductancevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inductancevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"inductancebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inductancebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"inductancederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inductancederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"inductancealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inductancealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"inductanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inductanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inductanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearchargedensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearchargedensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearchargedensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearchargedensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearchargedensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearchargedensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearchargedensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearchargedensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearchargedensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearchargedensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearchargedensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearchargedensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearchargedensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearmassdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearmassdensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearmassdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearmassdensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearmassdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearmassdensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearmassdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearmassdensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearmassdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linearmassdensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"linearmassdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearmassdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearmassdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lorentzfactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lorentzfactor{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"lorentzfactorvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lorentzfactorvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"lorentzfactorbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lorentzfactorbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"lorentzfactorderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lorentzfactorderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"lorentzfactoralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lorentzfactoralternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"lorentzfactoronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lorentzfactoronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lorentzfactoronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luminousintensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luminousintensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"luminousintensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luminousintensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"luminousintensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luminousintensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"luminousintensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luminousintensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"luminousintensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luminousintensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"luminousintensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luminousintensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luminousintensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticcharge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticcharge{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticchargevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticchargevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticchargebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticchargebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticchargederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticchargederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticchargealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticchargealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticchargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticchargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticchargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticflux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticflux{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfluxvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfluxvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfluxbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfluxbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfluxderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfluxderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfluxalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magneticfluxalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"magneticfluxonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfluxonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magneticfluxonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mass{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"massvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"massvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"massbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"massbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"massderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"massderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"massalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"massalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"massonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"massonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"massonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobility\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobility{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"mobilityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobilityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"mobilitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobilitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"mobilityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobilityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"mobilityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mobilityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"mobilityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mobilityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentofinertia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentofinertia{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentofinertiavalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentofinertiavalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentofinertiabaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentofinertiabaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentofinertiaderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentofinertiaderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentofinertiaalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentofinertiaalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"momentofinertiaonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentofinertiaonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentofinertiaonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberdensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"numberdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberdensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"numberdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberdensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"numberdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberdensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"numberdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberdensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"numberdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permeability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permeability{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permeabilityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permeabilityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permeabilitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permeabilitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permeabilityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permeabilityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permeabilityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permeabilityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permeabilityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permeabilityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permeabilityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permittivity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permittivity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permittivityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permittivityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permittivitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permittivitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permittivityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permittivityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permittivityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permittivityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"permittivityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permittivityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"permittivityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planeangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"planeangle{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"planeanglevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"planeanglevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"planeanglebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"planeanglebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"planeanglederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"planeanglederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"planeanglealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"planeanglealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"planeangleonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planeangleonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planeangleonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polarizability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarizability{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"polarizabilityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarizabilityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"polarizabilitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarizabilitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"polarizabilityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarizabilityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"polarizabilityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarizabilityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"polarizabilityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polarizabilityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polarizabilityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"power\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"power{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"powervalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"powervalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"powerbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"powerbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"powerderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"powerderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poweralternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poweralternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"poweronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poweronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poweronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pressure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pressure{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"pressurevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pressurevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"pressurebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pressurebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"pressurederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pressurederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"pressurealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pressurealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"pressureonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pressureonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pressureonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermeability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermeability{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermeabilityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermeabilityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermeabilitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermeabilitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermeabilityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermeabilityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermeabilityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermeabilityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermeabilityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermeabilityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermeabilityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermittivity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermittivity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermittivityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermittivityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermittivitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermittivitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermittivityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermittivityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermittivityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relativepermittivityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"relativepermittivityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermittivityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relativepermittivityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistance{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistancevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistancevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistancebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistancebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistancederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistancederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistancealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistancealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistivity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistivity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistivityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistivityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistivitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistivitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistivityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistivityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistivityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resistivityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"resistivityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistivityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resistivityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solidangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solidangle{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"solidanglevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solidanglevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"solidanglebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solidanglebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"solidanglederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solidanglederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"solidanglealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solidanglealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"solidangleonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solidangleonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solidangleonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificheatcapacity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specificheatcapacity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"specificheatcapacityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specificheatcapacityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"specificheatcapacitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specificheatcapacitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"specificheatcapacityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specificheatcapacityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"specificheatcapacityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specificheatcapacityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"specificheatcapacityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificheatcapacityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificheatcapacityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstiffness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstiffness{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstiffnessvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstiffnessvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstiffnessbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstiffnessbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstiffnessderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstiffnessderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstiffnessalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstiffnessalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstiffnessonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstiffnessonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstiffnessonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstretch{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstretchvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstretchvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstretchbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstretchbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstretchderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstretchderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstretchalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"springstretchalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"springstretchonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstretchonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springstretchonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stress{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"stressvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stressvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"stressbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stressbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"stressderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stressderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"stressalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stressalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"stressonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stressonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stressonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strain{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"strainvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strainvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"strainbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strainbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"strainderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strainderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"strainalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strainalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"strainonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strainonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strainonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temperature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"temperature{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"temperaturevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"temperaturevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"temperaturebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"temperaturebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"temperaturederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"temperaturederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"temperaturealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"temperaturealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"temperatureonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temperatureonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temperatureonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volume{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumevalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumebaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumebaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumederivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumederivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumealternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumealternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumechargedensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumechargedensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumechargedensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumechargedensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumechargedensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumechargedensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumechargedensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumechargedensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumechargedensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumechargedensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumechargedensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumechargedensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumechargedensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumemassdensity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumemassdensity{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumemassdensityvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumemassdensityvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumemassdensitybaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumemassdensitybaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumemassdensityderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumemassdensityderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumemassdensityalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumemassdensityalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"volumemassdensityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumemassdensityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumemassdensityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavelength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavelength{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavelengthvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavelengthvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavelengthbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavelengthbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavelengthderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavelengthderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavelengthalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wavelengthalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"wavelengthonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavelengthonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavelengthonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"work\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"work{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"workvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"workvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"workbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"workbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"workderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"workderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"workalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"workalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"workonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"workonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"workonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"youngsmodulus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youngsmodulus{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"youngsmodulusvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youngsmodulusvalue{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"youngsmodulusbaseunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youngsmodulusbaseunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"youngsmodulusderivedunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youngsmodulusderivedunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"youngsmodulusalternateunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"youngsmodulusalternateunits{${1:magnitude}}\"\n      }\n    },\n    {\n      \"name\": \"youngsmodulusonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"youngsmodulusonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"youngsmodulusonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewScalarQuantity{${1:name}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"NewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewScalarQuantity{${1:name}}{${2:base units}}[${3:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"NewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"NewScalarQuantity{${1:name}}{${2:base units}}[${3:derived units}][${4:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewScalarQuantity{${1:name}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"RenewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RenewScalarQuantity{${1:name}}{${2:base units}}[${3:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewScalarQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"RenewScalarQuantity{${1:name}}{${2:base units}}[${3:derived units}][${4:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"NewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewVectorQuantity{${1:name}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"NewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NewVectorQuantity{${1:name}}{${2:base units}}[${3:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"NewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"NewVectorQuantity{${1:name}}{${2:base units}}[${3:derived units}][${4:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewVectorQuantity{${1:name}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"RenewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RenewVectorQuantity{${1:name}}{${2:base units}}[${3:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewVectorQuantity\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"RenewVectorQuantity{${1:name}}{${2:base units}}[${3:derived units}][${4:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"alwaysusebaseunits\"\n    },\n    {\n      \"name\": \"alwaysusederivedunits\"\n    },\n    {\n      \"name\": \"alwaysusealternateunits\"\n    },\n    {\n      \"name\": \"hereusebaseunits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereusebaseunits{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hereusederivedunits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereusederivedunits{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hereusealternateunits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereusealternateunits{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"oofpez\"\n    },\n    {\n      \"name\": \"oofpezapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CheckConstant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckConstant{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"avogadro\"\n    },\n    {\n      \"name\": \"avogadroapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadromathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadrobaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avogadroonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstant\"\n    },\n    {\n      \"name\": \"biotsavartconstantapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biotsavartconstantonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradius\"\n    },\n    {\n      \"name\": \"bohrradiusapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bohrradiusonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmann\"\n    },\n    {\n      \"name\": \"boltzmannapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boltzmannonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstant\"\n    },\n    {\n      \"name\": \"coulombconstantapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coulombconstantonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmass\"\n    },\n    {\n      \"name\": \"earthmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistance\"\n    },\n    {\n      \"name\": \"earthmoondistanceapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistanceprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistancemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistancebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistancederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistancealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthmoondistanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradius\"\n    },\n    {\n      \"name\": \"earthradiusapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthradiusonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistance\"\n    },\n    {\n      \"name\": \"earthsundistanceapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistanceprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistancemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistancebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistancederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistancealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"earthsundistanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electroncharge\"\n    },\n    {\n      \"name\": \"electronchargeapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargeprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronchargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronCharge\"\n    },\n    {\n      \"name\": \"electronChargeapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargeprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronChargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmass\"\n    },\n    {\n      \"name\": \"electronmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarycharge\"\n    },\n    {\n      \"name\": \"elementarychargeapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargeprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementarychargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructure\"\n    },\n    {\n      \"name\": \"finestructureapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructureprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructuremathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructurebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructurederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructurealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructureonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructureonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finestructureonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmass\"\n    },\n    {\n      \"name\": \"hydrogenmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hydrogenmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistance\"\n    },\n    {\n      \"name\": \"moonearthdistanceapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistanceprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistancemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistancebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistancederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistancealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonearthdistanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmass\"\n    },\n    {\n      \"name\": \"moonmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradius\"\n    },\n    {\n      \"name\": \"moonradiusapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moonradiusonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofp\"\n    },\n    {\n      \"name\": \"mzofpapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofpprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofpmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofpbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofpderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofpalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofponlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofponlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mzofponlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmass\"\n    },\n    {\n      \"name\": \"neutronmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neutronmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcs\"\n    },\n    {\n      \"name\": \"oofpezcsapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oofpezcsonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planck\"\n    },\n    {\n      \"name\": \"planckapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbar\"\n    },\n    {\n      \"name\": \"planckbarapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbarprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbarmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbarbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbarderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbaralternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbaronlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbaronlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckbaronlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckc\"\n    },\n    {\n      \"name\": \"planckcapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckcprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckcmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckcbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckcderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckcalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckconlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckconlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"planckconlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protoncharge\"\n    },\n    {\n      \"name\": \"protonchargeapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargeprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonchargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonCharge\"\n    },\n    {\n      \"name\": \"protonChargeapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargeprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargeonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargeonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonChargeonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmass\"\n    },\n    {\n      \"name\": \"protonmassapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protonmassonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydberg\"\n    },\n    {\n      \"name\": \"rydbergapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rydbergonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflight\"\n    },\n    {\n      \"name\": \"speedoflightapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speedoflightonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmann\"\n    },\n    {\n      \"name\": \"stefanboltzmannapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stefanboltzmannonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistance\"\n    },\n    {\n      \"name\": \"sunearthdistanceapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistanceprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistancemathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistancebaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistancederivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistancealternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistanceonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistanceonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunearthdistanceonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradius\"\n    },\n    {\n      \"name\": \"sunradiusapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sunradiusonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfield\"\n    },\n    {\n      \"name\": \"surfacegravfieldapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfacegravfieldonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgrav\"\n    },\n    {\n      \"name\": \"universalgravapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravmathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravbaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"universalgravonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeability\"\n    },\n    {\n      \"name\": \"vacuumpermeabilityapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilitymathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilitybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermeabilityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivity\"\n    },\n    {\n      \"name\": \"vacuumpermittivityapproximatevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityprecisevalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivitymathsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivitybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityonlybaseunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityonlyderivedunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vacuumpermittivityonlyalternateunits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"NewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}\"\n      }\n    },\n    {\n      \"name\": \"NewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"NewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}[${6:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"NewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]\",\n        \"snippet\": \"NewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}[${6:derived units}][${7:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"RenewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}\"\n      }\n    },\n    {\n      \"name\": \"RenewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"RenewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}[${6:derived units}]\"\n      }\n    },\n    {\n      \"name\": \"RenewPhysicalConstant\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]\",\n        \"snippet\": \"RenewPhysicalConstant{${1:name}}{${2:symbol}}{${3:approx val}}{${4:precise val}}{${5:base units}}[${6:derived units}][${7:alt units}]\"\n      }\n    },\n    {\n      \"name\": \"alwaysuseapproximateconstants\"\n    },\n    {\n      \"name\": \"alwaysusepreciseconstants\"\n    },\n    {\n      \"name\": \"hereuseapproximateconstants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereuseapproximateconstants{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hereusepreciseconstants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hereusepreciseconstants{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"per\"\n    },\n    {\n      \"name\": \"usk\"\n    },\n    {\n      \"name\": \"units\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"units{${1:magnitude}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"emptyunit\"\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"atomicmassunit\"\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"electronvolt\"\n    },\n    {\n      \"name\": \"ev\"\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"kev\"\n    },\n    {\n      \"name\": \"kiloelectronvolt\"\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"lightspeed \"\n    },\n    {\n      \"name\": \"megaelectronvolt\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"metre\"\n    },\n    {\n      \"name\": \"mev\"\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"siemens\"\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"tothetwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tothethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tothefour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inverse\"\n    },\n    {\n      \"name\": \"totheinversetwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totheinversethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"totheinversefour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tento{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"timestento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestento{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"xtento\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtento{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mivector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mivector{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mivector\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mivector[${2:delimiter}]{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"mivector\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"mivector{${1:c1,c2,...}}[${2:units}]\"\n      }\n    },\n    {\n      \"name\": \"mivector\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"mivector[${2:delimiter}]{${1:c1,c2,...}}[${3:units}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"usebaseunits\"\n    },\n    {\n      \"name\": \"usederivedunits\"\n    },\n    {\n      \"name\": \"usealternateunits\"\n    },\n    {\n      \"name\": \"useapproximateconstants\"\n    },\n    {\n      \"name\": \"usepreciseconstants\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mandi#c,\\\\mandisetup\": [\n      \"units=${1|base,derived,alternate|}\",\n      \"preciseconstants\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mandi#c,\\\\mandisetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mandiexp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mandi\"\n    },\n    {\n      \"name\": \"mandistudent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mandiexpversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhsmomentumprinciple\"\n    },\n    {\n      \"name\": \"rhsmomentumprinciple\"\n    },\n    {\n      \"name\": \"lhsmomentumprincipleupdate\"\n    },\n    {\n      \"name\": \"rhsmomentumprincipleupdate\"\n    },\n    {\n      \"name\": \"momentumprinciple\"\n    },\n    {\n      \"name\": \"momentumprincipleupdate\"\n    },\n    {\n      \"name\": \"lhsmomentumprinciple*\"\n    },\n    {\n      \"name\": \"rhsmomentumprinciple*\"\n    },\n    {\n      \"name\": \"lhsmomentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"rhsmomentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"momentumprinciple*\"\n    },\n    {\n      \"name\": \"momentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"lhsenergyprinciple\"\n    },\n    {\n      \"name\": \"rhsenergyprinciple\"\n    },\n    {\n      \"name\": \"rhsenergyprinciple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhsenergyprinciple[${1:+process}]\"\n      }\n    },\n    {\n      \"name\": \"lhsenergyprincipleupdate\"\n    },\n    {\n      \"name\": \"rhsenergyprincipleupdate\"\n    },\n    {\n      \"name\": \"rhsenergyprincipleupdate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhsenergyprincipleupdate[${1:+process}]\"\n      }\n    },\n    {\n      \"name\": \"energyprinciple\"\n    },\n    {\n      \"name\": \"energyprinciple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"energyprinciple[${1:+process}]\"\n      }\n    },\n    {\n      \"name\": \"energyprincipleupdate\"\n    },\n    {\n      \"name\": \"energyprincipleupdate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"energyprincipleupdate[${1:+process}]\"\n      }\n    },\n    {\n      \"name\": \"lhsangularmomentumprinciple\"\n    },\n    {\n      \"name\": \"rhsangularmomentumprinciple\"\n    },\n    {\n      \"name\": \"lhsangularmomentumprincipleupdate\"\n    },\n    {\n      \"name\": \"rhsangularmomentumprincipleupdate\"\n    },\n    {\n      \"name\": \"angularmomentumprinciple\"\n    },\n    {\n      \"name\": \"angularmomentumprincipleupdate\"\n    },\n    {\n      \"name\": \"lhsangularmomentumprinciple*\"\n    },\n    {\n      \"name\": \"rhsangularmomentumprinciple*\"\n    },\n    {\n      \"name\": \"lhsangularmomentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"rhsangularmomentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"angularmomentumprinciple*\"\n    },\n    {\n      \"name\": \"angularmomentumprincipleupdate*\"\n    },\n    {\n      \"name\": \"energyof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"energyof{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"energyof\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"energyof{${1:sub1}}[${2:sub2}]\"\n      }\n    },\n    {\n      \"name\": \"systemenergy\"\n    },\n    {\n      \"name\": \"systemenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"systemenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"particleenergy\"\n    },\n    {\n      \"name\": \"particleenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"particleenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"restenergy\"\n    },\n    {\n      \"name\": \"restenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"internalenergy\"\n    },\n    {\n      \"name\": \"internalenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"internalenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"chemicalenergy\"\n    },\n    {\n      \"name\": \"chemicalenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chemicalenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"thermalenergy\"\n    },\n    {\n      \"name\": \"thermalenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thermalenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"photonenergy\"\n    },\n    {\n      \"name\": \"photonenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"photonenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"translationalkineticenergy\"\n    },\n    {\n      \"name\": \"translationalkineticenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"translationalkineticenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"translationalkineticenergy*\"\n    },\n    {\n      \"name\": \"translationalkineticenergy*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"translationalkineticenergy*[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"rotationalkineticenergy\"\n    },\n    {\n      \"name\": \"rotationalkineticenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rotationalkineticenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"rotationalkineticenergy*\"\n    },\n    {\n      \"name\": \"rotationalkineticenergy*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rotationalkineticenergy*[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"vibrationalkineticenergy\"\n    },\n    {\n      \"name\": \"vibrationalkineticenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vibrationalkineticenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"vibrationalkineticenergy*\"\n    },\n    {\n      \"name\": \"vibrationalkineticenergy*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vibrationalkineticenergy*[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"gravitationalpotentialenergy\"\n    },\n    {\n      \"name\": \"gravitationalpotentialenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gravitationalpotentialenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"electricpotentialenergy\"\n    },\n    {\n      \"name\": \"electricpotentialenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"electricpotentialenergy[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"springpotentialenergy\"\n    },\n    {\n      \"name\": \"springpotentialenergy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"springpotentialenergy[${1:sub}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mandistudent.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"makebox\"\n    },\n    {\n      \"name\": \"mandi\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"nicematrix\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    },\n    {\n      \"name\": \"tensor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarytikzmark\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mandistudentversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vec*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dirvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dirvec{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dirvec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dirvec*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"zerovec\"\n    },\n    {\n      \"name\": \"zerovec*\"\n    },\n    {\n      \"name\": \"changein\"\n    },\n    {\n      \"name\": \"doublebars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublebars{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"doublebars\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublebars[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"doublebars*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublebars*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"doublebars*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doublebars*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"singlebars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"singlebars{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"singlebars\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"singlebars[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"singlebars*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"singlebars*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"singlebars*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"singlebars*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"anglebrackets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anglebrackets{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"anglebrackets\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anglebrackets[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"anglebrackets*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anglebrackets*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"anglebrackets*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anglebrackets*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"parentheses\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parentheses{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"parentheses\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parentheses[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"parentheses*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parentheses*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"parentheses*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parentheses*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"squarebrackets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squarebrackets{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"squarebrackets\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"squarebrackets[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"squarebrackets*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"squarebrackets*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"squarebrackets*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"squarebrackets*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"curlybraces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curlybraces{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"curlybraces\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curlybraces[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"curlybraces*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curlybraces*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"curlybraces*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curlybraces*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"magnitude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magnitude{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"magnitude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"magnitude[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"magnitude*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"magnitude*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"magnitude*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"magnitude*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absolutevalue{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"absolutevalue[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absolutevalue*{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"absolutevalue*[${2:size}]{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"parallelto\"\n    },\n    {\n      \"name\": \"perpendicularto\"\n    },\n    {\n      \"name\": \"problempart\"\n    },\n    {\n      \"name\": \"reason\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reason{${1:reason%text}}\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hilite{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"hilite{${1:content}}[${2:shape}]\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hilite[${2:color}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"hilite[${2:color}]{${1:content}}[${3:shape}]\"\n      }\n    },\n    {\n      \"name\": \"image\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"image{${1:imagefile}}{${2:caption%text}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"image\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"image[${4:options%keyvals}]{${1:imagefile}}{${2:caption%text}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\image\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colvec{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"colvec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colvec[${2:delimiter}]{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"rowvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rowvec{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"rowvec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rowvec[${2:delimiter}]{${1:c1,c2,...}}\"\n      }\n    },\n    {\n      \"name\": \"veccomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"veccomp{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"veccomp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"veccomp*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"tencomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tencomp{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"tencomp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tencomp*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"valence\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"valence{${1:index1}}{${2:index2}}\"\n      }\n    },\n    {\n      \"name\": \"valence*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"valence*{${1:index1}}{${2:index2}}\"\n      }\n    },\n    {\n      \"name\": \"contraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contraction{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"contraction*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contraction*{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"slot\"\n    },\n    {\n      \"name\": \"slot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slot[${1:vector}]\"\n      }\n    },\n    {\n      \"name\": \"slot*\"\n    },\n    {\n      \"name\": \"slot*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slot*[${1:vector}]\"\n      }\n    },\n    {\n      \"name\": \"df\"\n    },\n    {\n      \"name\": \"df*\"\n    },\n    {\n      \"name\": \"vpythonfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpythonfile{${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"vpythonfile\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"vpythonfile(${3:link%URL}){${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"vpythonfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vpythonfile[${3:options}]{${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"vpythonfile\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"vpythonfile[${3:options}](${4:link%URL}){${1:file}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"webvpythoninline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webvpythoninline{${1:Web VPython code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"vpythoninline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpythoninline{${1:VPython code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"listofvpythonprograms\"\n    },\n    {\n      \"name\": \"listofwebvpythonprograms\"\n    },\n    {\n      \"name\": \"symsfitDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfiteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfittau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfittheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfitzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuplambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuppi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuppsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuprho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuptau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfuptheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfupzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetikzhighlightnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symsfgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsfgreek{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"colordigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gsfontfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"physicsproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"physicsproblem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"parts\"\n    },\n    {\n      \"name\": \"physicssolution\"\n    },\n    {\n      \"name\": \"physicssolution*\"\n    },\n    {\n      \"name\": \"webvpythonblock\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"(${2:link}){${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"webvpythonblock\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"[${2:options}](${3:link}){${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"webvpythonblock*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"(${2:link}){${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"webvpythonblock*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"[${2:options}](${3:link}){${1:caption}}\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\image\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/manfnt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"manfntsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manfntsymbol{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dbend\"\n    },\n    {\n      \"name\": \"manboldkidney\"\n    },\n    {\n      \"name\": \"manconcentriccircles\"\n    },\n    {\n      \"name\": \"manconcentricdiamond\"\n    },\n    {\n      \"name\": \"mancone\"\n    },\n    {\n      \"name\": \"mancube\"\n    },\n    {\n      \"name\": \"manerrarrow\"\n    },\n    {\n      \"name\": \"manfilledquartercircle\"\n    },\n    {\n      \"name\": \"manhpennib\"\n    },\n    {\n      \"name\": \"manimpossiblecube\"\n    },\n    {\n      \"name\": \"mankidney\"\n    },\n    {\n      \"name\": \"manlhpenkidney\"\n    },\n    {\n      \"name\": \"manpenkidney\"\n    },\n    {\n      \"name\": \"manquadrifolium\"\n    },\n    {\n      \"name\": \"manquartercircle\"\n    },\n    {\n      \"name\": \"manrotatedquadrifolium\"\n    },\n    {\n      \"name\": \"manrotatedquartercircle\"\n    },\n    {\n      \"name\": \"manstar\"\n    },\n    {\n      \"name\": \"mantiltpennib\"\n    },\n    {\n      \"name\": \"mantriangledown\"\n    },\n    {\n      \"name\": \"mantriangleright\"\n    },\n    {\n      \"name\": \"mantriangleup\"\n    },\n    {\n      \"name\": \"manvpennib\"\n    },\n    {\n      \"name\": \"textdbend\"\n    },\n    {\n      \"name\": \"textlhdbend\"\n    },\n    {\n      \"name\": \"textreversedvideodbend\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/manuscript.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"fullpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"LaTeXcentering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/manuscript#c\": [\n      \"cm\",\n      \"cr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/manuscript#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/manyfoot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccfoots\"\n    },\n    {\n      \"name\": \"perpage\",\n      \"if\": \"perpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"extrafootnoterule\"\n    },\n    {\n      \"name\": \"defaultfootnoterule\"\n    },\n    {\n      \"name\": \"newfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnote{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newfootnote[${2:style}]{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewFootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewFootnote{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewFootnote\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DeclareNewFootnote[${2:footnote-style}]{${1:suffix}}[${3:enumeration-style}]\"\n      }\n    },\n    {\n      \"name\": \"SelectFootnoteRule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectFootnoteRule{${1:rule-name}}\"\n      }\n    },\n    {\n      \"name\": \"SelectFootnoteRule\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"SelectFootnoteRule[${2:priority}]{${1:rule-name}}[${3:action}]\"\n      }\n    },\n    {\n      \"name\": \"footnoterulepriority\"\n    },\n    {\n      \"name\": \"SetFootnoteHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetFootnoteHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"SplitNote\"\n    },\n    {\n      \"name\": \"ExtraParaSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExtraParaSkip{${1:space%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/manyfoot#c\": [\n      \"ruled\",\n      \"para\",\n      \"para*\",\n      \"perpage\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/manyfoot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/manyind.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"altsort\"\n    },\n    {\n      \"name\": \"setindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindex{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sindex[${2:tag}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"theindex\"\n    },\n    {\n      \"name\": \"indexincontents\"\n    },\n    {\n      \"name\": \"indexpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mgobblepgeref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblepageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nxtletre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extraheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultindctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themindexctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindcutpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"untilmindcutpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindchoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indnr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multindpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmptonine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexcapstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcapstyle{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/marathi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"csquotes\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\बदल#c,\\\\usepackage/marathi#c\": [\n      \"अंतर\",\n      \"अंतर=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\बदल#c,\\\\usepackage/marathi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/marcellus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"marcellus\"\n    },\n    {\n      \"name\": \"marcellusfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/marcellus#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/marcellus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/marginfix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"marginskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"clearmargin\"\n    },\n    {\n      \"name\": \"softclearmargin\"\n    },\n    {\n      \"name\": \"extendmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extendmargin{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"mparshift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mparshift{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"marginheightadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginposadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockmargin\"\n    },\n    {\n      \"name\": \"blockmargin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blockmargin[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"unblockmargin\"\n    },\n    {\n      \"name\": \"unblockmargin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unblockmargin[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"marginphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginphantom{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"marginphantom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginphantom[${2:pos}]{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"dumpmargins\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/marginfix#c\": [\n      \"ypos\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/marginfix#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/marginnote.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"marginnote[${2:left}]{${1:right}}\"\n      }\n    },\n    {\n      \"name\": \"marginnote\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"marginnote[${2:left}]{${1:right}}[${3:voffset%l}]\"\n      }\n    },\n    {\n      \"name\": \"marginnotetextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginnotevadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedleftmarginnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedrightmarginnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/marginnote#c\": [\n      \"verbose\",\n      \"quiet\",\n      \"fulladjust\",\n      \"heightadjust\",\n      \"depthadjust\",\n      \"noadjust\",\n      \"parboxrestore\",\n      \"noparboxrestore\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/marginnote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/markdown.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"paralist\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"csvsimple\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"gobble\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"lt3luabridge\"\n    },\n    {\n      \"name\": \"soulutf8\",\n      \"if\": \"strikeThrough\"\n    },\n    {\n      \"name\": \"soulutf8\",\n      \"if\": \"strikeThrough=true\"\n    },\n    {\n      \"name\": \"grffile\",\n      \"if\": \"theme=witiko/dot\"\n    },\n    {\n      \"name\": \"catchfile\",\n      \"if\": \"theme=witiko/graphicx/http\"\n    },\n    {\n      \"name\": \"grffile\",\n      \"if\": \"theme=witiko/graphicx/http\"\n    },\n    {\n      \"name\": \"verse\",\n      \"if\": \"lineBlocks\"\n    },\n    {\n      \"name\": \"verse\",\n      \"if\": \"lineBlocks=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"markinline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markinline{${1:markdown text}}\"\n      }\n    },\n    {\n      \"name\": \"markinline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"markinline[${2:options%keyvals}]{${1:markdown text}}\",\n        \"keys\": [\n          \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\",\n          \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"markdownInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"markdownInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"markdownInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\",\n          \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"markdownSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\",\n          \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"markdownSetupSnippet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownSetupSnippet{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\",\n          \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"markdownIfSnippetExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markdownIfSnippetExists{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"markdownMakeOther\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionCodeSpans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionExpectJekyllData\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionRelativeReferences\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionTexComments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionUnderscores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownConvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownEscape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownEscape{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"markdownExecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownExecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"markdownExecuteDirect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownExecuteDirect{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"markdownExecuteShellEscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownIfOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markdownIfOption{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"markdownInputFilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownLuaExecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownLuaExecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"markdownLuaOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionBlankBeforeBlockquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionBlankBeforeCodeFence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionBlankBeforeHeading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionBreakableBlockquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionCacheDir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionCitationNbsps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionCitations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionCodeSpans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionContentBlocks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionContentBlocksLanguageMap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionDefinitionLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionEagerCache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionFencedCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionFinalizeCache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionFrozenCache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionFrozenCacheFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionHardLineBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionHashEnumerators\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionHeaderAttributes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionHtml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionHybrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionInlineFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionInputTempFileName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionJekyllData\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionPipeTables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionPreserveTabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionShiftHeadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionSlice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionSmartEllipses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionStartNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionStripIndent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionStripPercentSigns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionTableCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionTaskLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionTeXComments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionTightLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownOptionUnderscores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownPrepare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownPrepareInputFilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownPrepareInputFilename{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"markdownPrepareLuaOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownReadAndConvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownReadAndConvertProcessLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markdownReadAndConvertProcessLine{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"markdownReadAndConvertStripPercentSign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownReadAndConvertStripPercentSign{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownReadAndConvertTab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAmpersand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAmpersandPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAttributeClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAttributeClassNamePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAttributeIdentifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAttributeIdentifierPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererAttributeKeyValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBackslashPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockHtmlCommentBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockHtmlCommentEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockQuoteBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockQuoteBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockQuoteEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBlockQuoteEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBracketedSpanAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBracketedSpanAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBracketedSpanAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererBracketedSpanAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCircumflex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCircumflexPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCitePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererCitePrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererCodeSpan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCodeSpanAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCodeSpanAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCodeSpanAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCodeSpanAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererCodeSpanPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererCodeSpanPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererContentBlock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererContentBlockCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererContentBlockCodePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"markdownRendererContentBlockCodePrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererContentBlockOnlineImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererContentBlockOnlineImagePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererContentBlockOnlineImagePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"markdownRendererContentBlockOnlineImagePrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererContentBlockPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"markdownRendererContentBlockPrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererDisplayMath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDisplayMathPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlBeginTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlBeginTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlDefinitionBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlDefinitionBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlDefinitionEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlDefinitionEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlEndTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlEndTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlItemEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlItemEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDlItemPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererDlItemPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererDocumentBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDocumentEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDollarSign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererDollarSignPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererEllipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererEllipsisPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererEmphasis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererEmphasisPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererEmphasisPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererError\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererErrorPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlBeginTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlBeginTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlEndTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlEndTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItemEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItemEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItemPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItemWithNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFancyOlItemWithNumberPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedCodeAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedCodeAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedCodeAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedCodeAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedDivAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedDivAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedDivAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererFencedDivAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHalfTickedBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHalfTickedBoxPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHashPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeaderAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeaderAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeaderAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeaderAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingFivePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingFivePrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererHeadingFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingFourPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingFourPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererHeadingOne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingOnePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingOnePrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererHeadingSix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingSixPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingSixPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererHeadingThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingThreePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingThreePrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererHeadingTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHeadingTwoPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererHeadingTwoPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererImage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererImageAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererImageAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererImageAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererImageAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererImagePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"markdownRendererImagePrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInlineHtmlComment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInlineHtmlCommentPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererInlineHtmlCommentPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInlineHtmlTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInlineMath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInlineMathPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInputBlockHtmlElement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInputFencedCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInputFencedCodePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererInputFencedCodePrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInputRawBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererInputRawBlock{${1:file}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInputRawInlinePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererInputRawInlinePrototype{${1:file}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInputRawInline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererInputRawInline{${1:file}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInputRawBlockPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererInputRawBlockPrototype{${1:file}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInputVerbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInputVerbatimPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererInputVerbatimPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererInterblockSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererInterblockSeparatorPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataBoolean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataBooleanPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataBooleanPrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataEmpty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataEmptyPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererJekyllDataEmptyPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataMappingBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataMappingBegin{${1:key%plain}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataMappingBeginPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataMappingBeginPrototype{${1:key%plain}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataMappingEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataMappingEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataNumberPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataNumberPrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataProgrammaticString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataProgrammaticString{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataProgrammaticStringPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataProgrammaticStringPrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataSequenceBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataSequenceBeginPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataSequenceBeginPrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataSequenceEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataSequenceEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataTypographicString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataTypographicString{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererJekyllDataTypographicStringPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markdownRendererJekyllDataTypographicStringPrototype{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererLeftBrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLeftBracePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLineBlockBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLineBlockBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLineBlockEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLineBlockEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHardLineBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererHardLineBreakPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLinkAttributeContextBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLinkAttributeContextBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLinkAttributeContextEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLinkAttributeContextEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererLinkPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"markdownRendererLinkPrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererNbsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererNbspPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererNotePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererNotePrototype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererOlBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlBeginTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlBeginTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlEndTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlEndTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItemEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItemEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItemPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItemWithNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererOlItemWithNumberPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererOlItemWithNumberPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererPercentSign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererPercentSignPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererPipe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererPipePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererReplacementCharacter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererReplacementCharacterPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererRightBrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererRightBracePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSectionBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSectionBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSectionEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSectionEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererStrikeThrough\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererStrikeThroughPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererStrongEmphasis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererStrongEmphasisPrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererStrongEmphasisPrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererSubscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSubscriptPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSuperscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererSuperscriptPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTablePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markdownRendererTablePrototype{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererTextCite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTextCitePrototype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdownRendererTextCitePrototype{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"markdownRendererThematicBreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererThematicBreakPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTickedBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTickedBoxPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererTildePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlBeginPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlBeginTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlBeginTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlEndTight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlEndTightPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlItemEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlItemEndPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUlItemPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUnderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUnderscorePrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUntickedBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererUntickedBoxPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdownRendererWarningPrototype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markinlinePlainTeX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markinlinePlainTeX{${1:markdown text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"markdown\"\n    },\n    {\n      \"name\": \"markdown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\",\n          \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\": [\n      \"plain\",\n      \"import=${1|witiko/dot,witiko/graphicx/http,witiko/tilde,witiko/markdown/techdoc|}\",\n      \"snippet=\",\n      \"helperScriptFileName=${1:file name}\",\n      \"inputTempFileName=${1:file name}\",\n      \"outputTempFileName=${1:file name}\",\n      \"errorTempFileName=${1:file name}\",\n      \"cacheDir=${1:directory}\",\n      \"contentBlocksLanguageMap=${1:file name}\",\n      \"debugExtensionsFileName=${1:file name}\",\n      \"outputDir=${1:directory}\",\n      \"blankBeforeBlockquote\",\n      \"blankBeforeCodeFence\",\n      \"blankBeforeDivFence\",\n      \"blankBeforeHeading\",\n      \"bracketedSpans\",\n      \"breakableBlockquotes\",\n      \"citations\",\n      \"citationNbsps\",\n      \"contentBlocks\",\n      \"debugExtensions\",\n      \"codeSpans\",\n      \"definitionLists\",\n      \"eagerCache\",\n      \"ensureJekyllData\",\n      \"expectJekyllData\",\n      \"extensions=${1:file names}\",\n      \"fancyLists\",\n      \"fencedCode\",\n      \"fencedCodeAttributes\",\n      \"fencedDivs\",\n      \"hashEnumerators\",\n      \"headerAttributes\",\n      \"html\",\n      \"inlineCodeAttributes\",\n      \"inlineNotes\",\n      \"jekyllData\",\n      \"linkAttributes\",\n      \"lineBlocks\",\n      \"notes\",\n      \"pipeTables\",\n      \"preserveTabs\",\n      \"rawAttribute\",\n      \"relativeReferences\",\n      \"smartEllipses\",\n      \"shiftHeadings=${1:shift amount}\",\n      \"slice=${1:beginning and end of a slice}\",\n      \"startNumber\",\n      \"strikeThrough\",\n      \"stripIndent\",\n      \"subscripts\",\n      \"superscripts\",\n      \"tableCaptions\",\n      \"taskLists\",\n      \"texComments\",\n      \"texMathDollars\",\n      \"texMathDoubleBackslash\",\n      \"texMathSingleBackslash\",\n      \"tightLists\",\n      \"underscores\",\n      \"stripPercentSigns\",\n      \"finalizeCache\",\n      \"frozenCache\",\n      \"frozenCacheFileName=${1:file name}\"\n    ],\n    \"\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\": [\n      \"renderers={${1:renderer options}}\",\n      \"rendererPrototypes={${1:renderer prototype options}}\",\n      \"code={${1:code}}\",\n      \"jekyllDataRenderers={${1:keyvals}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/markdown#c,\\\\begin{markdown}#c,\\\\markinline#c,\\\\markdownInput#c,\\\\markdownSetup#c,\\\\markdownSetupSnippet#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/marvosym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Pickup\"\n    },\n    {\n      \"name\": \"Letter\"\n    },\n    {\n      \"name\": \"Mobilefone\"\n    },\n    {\n      \"name\": \"Telefon\"\n    },\n    {\n      \"name\": \"fax\"\n    },\n    {\n      \"name\": \"FAX\"\n    },\n    {\n      \"name\": \"Faxmachine\"\n    },\n    {\n      \"name\": \"Email\"\n    },\n    {\n      \"name\": \"Lightning\"\n    },\n    {\n      \"name\": \"EmailCT\"\n    },\n    {\n      \"name\": \"Beam\"\n    },\n    {\n      \"name\": \"Bearing\"\n    },\n    {\n      \"name\": \"LooseBearing\"\n    },\n    {\n      \"name\": \"FixedBearing\"\n    },\n    {\n      \"name\": \"LeftTorque\"\n    },\n    {\n      \"name\": \"RightTorque\"\n    },\n    {\n      \"name\": \"Lineload\"\n    },\n    {\n      \"name\": \"MVArrowDown\"\n    },\n    {\n      \"name\": \"OktoSteel\"\n    },\n    {\n      \"name\": \"HexaSteel\"\n    },\n    {\n      \"name\": \"SquareSteel\"\n    },\n    {\n      \"name\": \"RectSteel\"\n    },\n    {\n      \"name\": \"CircSteel\"\n    },\n    {\n      \"name\": \"SquarePipe\"\n    },\n    {\n      \"name\": \"RectPipe\"\n    },\n    {\n      \"name\": \"CircPipe\"\n    },\n    {\n      \"name\": \"LSteel\"\n    },\n    {\n      \"name\": \"RoundedLSteel\"\n    },\n    {\n      \"name\": \"TSteel\"\n    },\n    {\n      \"name\": \"RoundedTSteel\"\n    },\n    {\n      \"name\": \"TTSteel\"\n    },\n    {\n      \"name\": \"RoundedTTSteel\"\n    },\n    {\n      \"name\": \"FlatSteel\"\n    },\n    {\n      \"name\": \"Valve\"\n    },\n    {\n      \"name\": \"Industry\"\n    },\n    {\n      \"name\": \"Coffeecup\"\n    },\n    {\n      \"name\": \"LeftScissors\"\n    },\n    {\n      \"name\": \"CuttingLine\"\n    },\n    {\n      \"name\": \"RightScissors\"\n    },\n    {\n      \"name\": \"Football\"\n    },\n    {\n      \"name\": \"Bicycle\"\n    },\n    {\n      \"name\": \"Info\"\n    },\n    {\n      \"name\": \"ClockLogo\"\n    },\n    {\n      \"name\": \"CutRight\"\n    },\n    {\n      \"name\": \"CutLine\"\n    },\n    {\n      \"name\": \"CutLeft\"\n    },\n    {\n      \"name\": \"Wheelchair\"\n    },\n    {\n      \"name\": \"Gentsroom\"\n    },\n    {\n      \"name\": \"Ladiesroom\"\n    },\n    {\n      \"name\": \"Checkedbox\"\n    },\n    {\n      \"name\": \"CrossedBox\"\n    },\n    {\n      \"name\": \"HollowBox\"\n    },\n    {\n      \"name\": \"PointingHand\"\n    },\n    {\n      \"name\": \"WritingHand\"\n    },\n    {\n      \"name\": \"MineSign\"\n    },\n    {\n      \"name\": \"Recycling\"\n    },\n    {\n      \"name\": \"PackingWaste\"\n    },\n    {\n      \"name\": \"WashCotton\"\n    },\n    {\n      \"name\": \"WashSynthetics\"\n    },\n    {\n      \"name\": \"WashWool\"\n    },\n    {\n      \"name\": \"HandWash\"\n    },\n    {\n      \"name\": \"NoWash\"\n    },\n    {\n      \"name\": \"Tumbler\"\n    },\n    {\n      \"name\": \"NoTumbler\"\n    },\n    {\n      \"name\": \"NoChemicalCleaning\"\n    },\n    {\n      \"name\": \"Bleech\"\n    },\n    {\n      \"name\": \"NoBleech\"\n    },\n    {\n      \"name\": \"CleaningA\"\n    },\n    {\n      \"name\": \"CleaningP\"\n    },\n    {\n      \"name\": \"CleaningPP\"\n    },\n    {\n      \"name\": \"CleaningF\"\n    },\n    {\n      \"name\": \"CleaningFF\"\n    },\n    {\n      \"name\": \"IroningI\"\n    },\n    {\n      \"name\": \"IroningII\"\n    },\n    {\n      \"name\": \"IroningIII\"\n    },\n    {\n      \"name\": \"NoIroning\"\n    },\n    {\n      \"name\": \"AtNinetyFive\"\n    },\n    {\n      \"name\": \"ShortNinetyFive\"\n    },\n    {\n      \"name\": \"AtSixty\"\n    },\n    {\n      \"name\": \"ShortSixty\"\n    },\n    {\n      \"name\": \"ShortFifty\"\n    },\n    {\n      \"name\": \"AtForty\"\n    },\n    {\n      \"name\": \"ShortForty\"\n    },\n    {\n      \"name\": \"SpecialForty\"\n    },\n    {\n      \"name\": \"ShortThirty\"\n    },\n    {\n      \"name\": \"EUR\"\n    },\n    {\n      \"name\": \"EURdig\"\n    },\n    {\n      \"name\": \"EURhv\"\n    },\n    {\n      \"name\": \"EURcr\"\n    },\n    {\n      \"name\": \"EURtm\"\n    },\n    {\n      \"name\": \"Ecommerce\"\n    },\n    {\n      \"name\": \"Shilling\"\n    },\n    {\n      \"name\": \"Denarius\"\n    },\n    {\n      \"name\": \"Pfund\"\n    },\n    {\n      \"name\": \"EyesDollar\"\n    },\n    {\n      \"name\": \"Florin\"\n    },\n    {\n      \"name\": \"EurDig\"\n    },\n    {\n      \"name\": \"EurHv\"\n    },\n    {\n      \"name\": \"EurCr\"\n    },\n    {\n      \"name\": \"EurTm\"\n    },\n    {\n      \"name\": \"EstimatedSign\"\n    },\n    {\n      \"name\": \"Deleatur\"\n    },\n    {\n      \"name\": \"Stopsign\"\n    },\n    {\n      \"name\": \"CESign\"\n    },\n    {\n      \"name\": \"Estatically\"\n    },\n    {\n      \"name\": \"Explosionsafe\"\n    },\n    {\n      \"name\": \"Laserbeam\"\n    },\n    {\n      \"name\": \"Biohazard\"\n    },\n    {\n      \"name\": \"Radioactivity\"\n    },\n    {\n      \"name\": \"BSEFree\"\n    },\n    {\n      \"name\": \"RewindToIndex\"\n    },\n    {\n      \"name\": \"RewindToStart\"\n    },\n    {\n      \"name\": \"Rewind\"\n    },\n    {\n      \"name\": \"Forward\"\n    },\n    {\n      \"name\": \"ForwardToEnd\"\n    },\n    {\n      \"name\": \"ForwardToIndex\"\n    },\n    {\n      \"name\": \"MoveUp\"\n    },\n    {\n      \"name\": \"MoveDown\"\n    },\n    {\n      \"name\": \"ToTop\"\n    },\n    {\n      \"name\": \"ToBottom\"\n    },\n    {\n      \"name\": \"ComputerMouse\"\n    },\n    {\n      \"name\": \"SerialInterface\"\n    },\n    {\n      \"name\": \"Keyboard\"\n    },\n    {\n      \"name\": \"SerialPort\"\n    },\n    {\n      \"name\": \"ParallelPort\"\n    },\n    {\n      \"name\": \"Printer\"\n    },\n    {\n      \"name\": \"MVZero\"\n    },\n    {\n      \"name\": \"MVOne\"\n    },\n    {\n      \"name\": \"MVTwo\"\n    },\n    {\n      \"name\": \"MVThree\"\n    },\n    {\n      \"name\": \"MVFour\"\n    },\n    {\n      \"name\": \"MVFive\"\n    },\n    {\n      \"name\": \"MVSix\"\n    },\n    {\n      \"name\": \"MVSeven\"\n    },\n    {\n      \"name\": \"MVEight\"\n    },\n    {\n      \"name\": \"MVNine\"\n    },\n    {\n      \"name\": \"MVLeftBracket\"\n    },\n    {\n      \"name\": \"MVRightBracket\"\n    },\n    {\n      \"name\": \"MVComma\"\n    },\n    {\n      \"name\": \"MVPeriod\"\n    },\n    {\n      \"name\": \"MVMinus\"\n    },\n    {\n      \"name\": \"MVPlus\"\n    },\n    {\n      \"name\": \"MVDivision\"\n    },\n    {\n      \"name\": \"MVMultiplication\"\n    },\n    {\n      \"name\": \"Conclusion\"\n    },\n    {\n      \"name\": \"Equivalence\"\n    },\n    {\n      \"name\": \"barOver\"\n    },\n    {\n      \"name\": \"BarOver\"\n    },\n    {\n      \"name\": \"arrowOver\"\n    },\n    {\n      \"name\": \"ArrowOver\"\n    },\n    {\n      \"name\": \"StrikingThrough\"\n    },\n    {\n      \"name\": \"MultiplicationDot\"\n    },\n    {\n      \"name\": \"LessOrEqual\"\n    },\n    {\n      \"name\": \"LargerOrEqual\"\n    },\n    {\n      \"name\": \"AngleSign\"\n    },\n    {\n      \"name\": \"Corresponds\"\n    },\n    {\n      \"name\": \"Congruent\"\n    },\n    {\n      \"name\": \"NotCongruent\"\n    },\n    {\n      \"name\": \"Divides\"\n    },\n    {\n      \"name\": \"DividesNot\"\n    },\n    {\n      \"name\": \"Female\"\n    },\n    {\n      \"name\": \"Male\"\n    },\n    {\n      \"name\": \"Hermaphrodite\",\n      \"detail\": \"⚥\",\n      \"doc\": \"Male and female sign\"\n    },\n    {\n      \"name\": \"Neutral\"\n    },\n    {\n      \"name\": \"FEMALE\"\n    },\n    {\n      \"name\": \"MALE\"\n    },\n    {\n      \"name\": \"HERMAPHRODITE\"\n    },\n    {\n      \"name\": \"FemaleFemale\"\n    },\n    {\n      \"name\": \"MaleMale\"\n    },\n    {\n      \"name\": \"FemaleMale\"\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"Moon\"\n    },\n    {\n      \"name\": \"Mercury\"\n    },\n    {\n      \"name\": \"Venus\"\n    },\n    {\n      \"name\": \"Mars\"\n    },\n    {\n      \"name\": \"Jupiter\"\n    },\n    {\n      \"name\": \"Saturn\"\n    },\n    {\n      \"name\": \"Uranus\"\n    },\n    {\n      \"name\": \"Neptune\"\n    },\n    {\n      \"name\": \"Pluto\"\n    },\n    {\n      \"name\": \"Earth\"\n    },\n    {\n      \"name\": \"Aries\"\n    },\n    {\n      \"name\": \"Taurus\"\n    },\n    {\n      \"name\": \"Gemini\"\n    },\n    {\n      \"name\": \"Cancer\"\n    },\n    {\n      \"name\": \"Leo\"\n    },\n    {\n      \"name\": \"Virgo\"\n    },\n    {\n      \"name\": \"Libra\"\n    },\n    {\n      \"name\": \"Scorpio\"\n    },\n    {\n      \"name\": \"Sagittarius\"\n    },\n    {\n      \"name\": \"Capricorn\"\n    },\n    {\n      \"name\": \"Aquarius\"\n    },\n    {\n      \"name\": \"Pisces\"\n    },\n    {\n      \"name\": \"YinYang\"\n    },\n    {\n      \"name\": \"MVRightArrow\"\n    },\n    {\n      \"name\": \"MVAt\"\n    },\n    {\n      \"name\": \"BOLogo\"\n    },\n    {\n      \"name\": \"BOLogoL\"\n    },\n    {\n      \"name\": \"BOLogoP\"\n    },\n    {\n      \"name\": \"Mundus\"\n    },\n    {\n      \"name\": \"Cross\"\n    },\n    {\n      \"name\": \"CeltCross\"\n    },\n    {\n      \"name\": \"Ankh\"\n    },\n    {\n      \"name\": \"Heart\"\n    },\n    {\n      \"name\": \"CircledA\"\n    },\n    {\n      \"name\": \"Bouquet\"\n    },\n    {\n      \"name\": \"Frowny\"\n    },\n    {\n      \"name\": \"Smiley\"\n    },\n    {\n      \"name\": \"PeaceDove\"\n    },\n    {\n      \"name\": \"Bat\"\n    },\n    {\n      \"name\": \"WomanFace\"\n    },\n    {\n      \"name\": \"ManFace\"\n    },\n    {\n      \"name\": \"mvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mvchr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mvchr{${1:char num}}\"\n      }\n    },\n    {\n      \"name\": \"textmvs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmvs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Zodiac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zodiac{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathabx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Aries\"\n    },\n    {\n      \"name\": \"asterisk\"\n    },\n    {\n      \"name\": \"Asterisk\"\n    },\n    {\n      \"name\": \"barin\"\n    },\n    {\n      \"name\": \"barleftharpoon\"\n    },\n    {\n      \"name\": \"barrightharpoon\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigast\"\n    },\n    {\n      \"name\": \"bigboxasterisk\"\n    },\n    {\n      \"name\": \"bigboxbackslash\"\n    },\n    {\n      \"name\": \"bigboxbot\"\n    },\n    {\n      \"name\": \"bigboxcirc\"\n    },\n    {\n      \"name\": \"bigboxcoasterisk\"\n    },\n    {\n      \"name\": \"bigboxdiv\"\n    },\n    {\n      \"name\": \"bigboxdot\"\n    },\n    {\n      \"name\": \"bigboxleft\"\n    },\n    {\n      \"name\": \"bigboxminus\"\n    },\n    {\n      \"name\": \"bigboxperp\"\n    },\n    {\n      \"name\": \"bigboxplus\"\n    },\n    {\n      \"name\": \"bigboxright\"\n    },\n    {\n      \"name\": \"bigboxslash\"\n    },\n    {\n      \"name\": \"bigboxtimes\"\n    },\n    {\n      \"name\": \"bigboxtop\"\n    },\n    {\n      \"name\": \"bigboxtriangleup\"\n    },\n    {\n      \"name\": \"bigboxvoid\"\n    },\n    {\n      \"name\": \"bigcoast\"\n    },\n    {\n      \"name\": \"bigcomplement\"\n    },\n    {\n      \"name\": \"bigcurlyvee\"\n    },\n    {\n      \"name\": \"bigcurlywedge\"\n    },\n    {\n      \"name\": \"bigoasterisk\"\n    },\n    {\n      \"name\": \"bigobackslash\"\n    },\n    {\n      \"name\": \"bigobot\"\n    },\n    {\n      \"name\": \"bigocirc\"\n    },\n    {\n      \"name\": \"bigocoasterisk\"\n    },\n    {\n      \"name\": \"bigodiv\"\n    },\n    {\n      \"name\": \"bigoleft\"\n    },\n    {\n      \"name\": \"bigominus\"\n    },\n    {\n      \"name\": \"bigoperp\"\n    },\n    {\n      \"name\": \"bigoright\"\n    },\n    {\n      \"name\": \"bigoslash\"\n    },\n    {\n      \"name\": \"bigotop\"\n    },\n    {\n      \"name\": \"bigotriangleup\"\n    },\n    {\n      \"name\": \"bigovoid\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsquplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigvarstar\"\n    },\n    {\n      \"name\": \"blackdiamond\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleup\"\n    },\n    {\n      \"name\": \"botdoteq\"\n    },\n    {\n      \"name\": \"boxdiv\"\n    },\n    {\n      \"name\": \"boxeddash\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boy\"\n    },\n    {\n      \"name\": \"bracemd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracexd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracexu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bumpedeq\"\n    },\n    {\n      \"name\": \"Bumpedeq\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circplus\"\n    },\n    {\n      \"name\": \"coasterisk\"\n    },\n    {\n      \"name\": \"coAsterisk\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"convolution\"\n    },\n    {\n      \"name\": \"corresponds\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowbotleft\"\n    },\n    {\n      \"name\": \"curvearrowbotleftright\"\n    },\n    {\n      \"name\": \"curvearrowbotright\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowleftright\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowtopleft\"\n    },\n    {\n      \"name\": \"curvearrowtopleftright\"\n    },\n    {\n      \"name\": \"curvearrowtopright\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashVv\"\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"divdot\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"divides\"\n    },\n    {\n      \"name\": \"dlsh\"\n    },\n    {\n      \"name\": \"dotdiv\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotseq\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downdownharpoons\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downtouparrow\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupharpoons\"\n    },\n    {\n      \"name\": \"drsh\"\n    },\n    {\n      \"name\": \"Earth\"\n    },\n    {\n      \"name\": \"eqbumped\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fourth\"\n    },\n    {\n      \"name\": \"fullmoon\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"Gemini\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggcurly\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"girl\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"hash\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"Jupiter\"\n    },\n    {\n      \"name\": \"lcorners\"\n    },\n    {\n      \"name\": \"ldbrack\"\n    },\n    {\n      \"name\": \"leftbarharpoon\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftleftharpoons\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"lefttorightarrow\"\n    },\n    {\n      \"name\": \"Leo\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lfilet\"\n    },\n    {\n      \"name\": \"Libra\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"llcurly\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"looparrowdownleft\"\n    },\n    {\n      \"name\": \"looparrowdownright\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowupleft\"\n    },\n    {\n      \"name\": \"looparrowupright\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lsemantic\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"mapsfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mars\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"Mercury\"\n    },\n    {\n      \"name\": \"Moon\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ncurlyeqprec\"\n    },\n    {\n      \"name\": \"ncurlyeqsucc\"\n    },\n    {\n      \"name\": \"ndashv\"\n    },\n    {\n      \"name\": \"nDashv\"\n    },\n    {\n      \"name\": \"ndashV\"\n    },\n    {\n      \"name\": \"nDashV\"\n    },\n    {\n      \"name\": \"ndashVv\"\n    },\n    {\n      \"name\": \"ndivides\"\n    },\n    {\n      \"name\": \"Neptune\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"newmoon\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"nibar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"notasymp\"\n    },\n    {\n      \"name\": \"notbot\"\n    },\n    {\n      \"name\": \"notdivides\"\n    },\n    {\n      \"name\": \"notequiv\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowner\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"notperp\"\n    },\n    {\n      \"name\": \"notsign\"\n    },\n    {\n      \"name\": \"nottop\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqSubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsubseteqq\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqSupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteqq\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvargeq\"\n    },\n    {\n      \"name\": \"nvarleq\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"nVvash\"\n    },\n    {\n      \"name\": \"oasterisk\"\n    },\n    {\n      \"name\": \"obackslash\"\n    },\n    {\n      \"name\": \"obot\",\n      \"detail\": \"⦺\",\n      \"doc\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"ocoasterisk\"\n    },\n    {\n      \"name\": \"odiv\",\n      \"detail\": \"⨸\",\n      \"doc\": \"Circled division sign\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oleft\"\n    },\n    {\n      \"name\": \"operp\",\n      \"detail\": \"⦹\",\n      \"doc\": \"Circled perpendicular\"\n    },\n    {\n      \"name\": \"oright\"\n    },\n    {\n      \"name\": \"otop\"\n    },\n    {\n      \"name\": \"otriangleup\"\n    },\n    {\n      \"name\": \"ovoid\"\n    },\n    {\n      \"name\": \"ownsbar\"\n    },\n    {\n      \"name\": \"partialslash\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"pluscirc\"\n    },\n    {\n      \"name\": \"Pluto\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precdot\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"rcorners\"\n    },\n    {\n      \"name\": \"rdbrack\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rfilet\"\n    },\n    {\n      \"name\": \"rightbarharpoon\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftharpoon\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightrightharpoons\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"righttoleftarrow\"\n    },\n    {\n      \"name\": \"ring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rip\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rsemantic\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Saturn\"\n    },\n    {\n      \"name\": \"scoprod\"\n    },\n    {\n      \"name\": \"Scorpio\"\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"smalltriangledown\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleup\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sprod\"\n    },\n    {\n      \"name\": \"sqbullet\"\n    },\n    {\n      \"name\": \"sqCap\"\n    },\n    {\n      \"name\": \"sqCup\"\n    },\n    {\n      \"name\": \"sqdoublecap\"\n    },\n    {\n      \"name\": \"sqdoublecup\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqSubset\"\n    },\n    {\n      \"name\": \"sqsubseteqq\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsubsetneqq\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqSupset\"\n    },\n    {\n      \"name\": \"sqsupseteqq\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"sqsupsetneqq\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squplus\"\n    },\n    {\n      \"name\": \"ssum\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succdot\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Taurus\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickvert\"\n    },\n    {\n      \"name\": \"third\"\n    },\n    {\n      \"name\": \"topdoteq\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"udot\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"ulsh\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updownharpoons\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"uptodownarrow\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upupharpoons\"\n    },\n    {\n      \"name\": \"Uranus\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"ursh\"\n    },\n    {\n      \"name\": \"varEarth\"\n    },\n    {\n      \"name\": \"vargeq\"\n    },\n    {\n      \"name\": \"varhash\"\n    },\n    {\n      \"name\": \"varleq\"\n    },\n    {\n      \"name\": \"varnotin\"\n    },\n    {\n      \"name\": \"varnotowner\"\n    },\n    {\n      \"name\": \"varnotsign\"\n    },\n    {\n      \"name\": \"varsqsubsetneq\"\n    },\n    {\n      \"name\": \"varsqsubsetneqq\"\n    },\n    {\n      \"name\": \"varsqsupsetneq\"\n    },\n    {\n      \"name\": \"varsqsupsetneqq\"\n    },\n    {\n      \"name\": \"varstar\",\n      \"detail\": \"✶\",\n      \"doc\": \"Six pointed black star\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"Venus\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vvvert\"\n    },\n    {\n      \"name\": \"widearrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overRightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overLeftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overLeftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overLeftRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overLeftRightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underRightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underLeftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underLeftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underLeftRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underLeftRightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widedot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widedot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widedddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widedddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varnot\"\n    },\n    {\n      \"name\": \"mayadelimiters\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mayadelimiters(${1:%<delim1%>},${2:%<delim2%>})\"\n      }\n    },\n    {\n      \"name\": \"maya\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maya{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mayadigit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mayadigit{${1:digit}}\"\n      }\n    },\n    {\n      \"name\": \"changenotsign\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathabx#c\": [\n      \"matha\",\n      \"mathb\",\n      \"mathx\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathabx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathalfa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"dsserif\",\n      \"if\": \"bb=dsserif\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"bb=bboldx\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"bb=bboldx-light\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixtwofancys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixtwofancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mathpi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=esstix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"bb=px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=tx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=txof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbi\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbbi\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"bbsymbols\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathalfa\": [\n      \"cal=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancy|}\",\n      \"calscaled=${1:factor}\",\n      \"bfcal\",\n      \"calsymbols\",\n      \"scr=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancys|}\",\n      \"scrscaled=${1:factor}\",\n      \"bfscr\",\n      \"scrsymbols\",\n      \"frak=${1|euler,lucida,mathpi,mma,mt,esstix,boondox,pxtx,stixtwo|}\",\n      \"frakscaled=${1:factor}\",\n      \"bffrak\",\n      \"fraksymbols\",\n      \"bb=${1|ams,lucida,mathpi,mma,mt,mth,pazo,fourier,esstix,boondox,px,tx,txof,libus,dsserif,bboldx,bboldx-light,dsfontserif,dsfontsans,stixtwo,stix|}\",\n      \"bbscaled=${1:factor}\",\n      \"bfbb\",\n      \"bbsymbols\",\n      \"oldbold\",\n      \"scaled=${1:factor}\",\n      \"showoptions\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathalfa\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathalpha.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"dsserif\",\n      \"if\": \"bb=dsserif\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"bb=bboldx\"\n    },\n    {\n      \"name\": \"bboldx\",\n      \"if\": \"bb=bboldx-light\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"if\": \"oldbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixtwofancys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"if\": \"scr=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=bickham\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=bickhams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondoxo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=boondoxupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=dutchcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=kp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixfancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixtwofancy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=stixtwoplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"if\": \"cal=txupr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=euler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mathpi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=esstix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=pxtx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"if\": \"frak=stixtwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=lucida\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=mth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=boondox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbb\",\n      \"if\": \"bb=px\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=tx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=txof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"bb=stixtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbbi\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbb\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfbbi\",\n      \"if\": \"bb=stix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfbbi{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"txtbbGamma\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbgamma\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbPi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbpi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessi\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbdotlessj\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbzero\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbone\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbtwo\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbthree\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfour\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbfive\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbsix\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbseven\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbeight\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtbbnine\",\n      \"if\": \"bb=stix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdotlessj\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbGamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbDelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbTheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbXi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbSigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbUpsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPhi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbPsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbOmega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbepsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRbrack\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRangle\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbLparen\",\n      \"if\": \"bbsymbols\"\n    },\n    {\n      \"name\": \"bbRparen\",\n      \"if\": \"bbsymbols\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathalpha\": [\n      \"cal=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancy|}\",\n      \"calscaled=${1:factor}\",\n      \"bfcal\",\n      \"calsymbols\",\n      \"scr=${1|cm,euler,rsfs,rsfso,lucida,mathpi,mma,pxtx,mt,mtc,zapfc,esstix,boondox,boondoxo,dutchcal,bickham,bickhams,stix,txupr,boondoxupr,kp,stixplain,stixfancy,stixtwoplain,stixtwofancys|}\",\n      \"scrscaled=${1:factor}\",\n      \"bfscr\",\n      \"scrsymbols\",\n      \"frak=${1|euler,lucida,mathpi,mma,mt,esstix,boondox,pxtx,stixtwo|}\",\n      \"frakscaled=${1:factor}\",\n      \"bffrak\",\n      \"fraksymbols\",\n      \"bb=${1|ams,lucida,mathpi,mma,mt,mth,pazo,fourier,esstix,boondox,px,tx,txof,libus,dsserif,bboldx,bboldx-light,dsfontserif,dsfontsans,stixtwo,stix|}\",\n      \"bbscaled=${1:factor}\",\n      \"bfbb\",\n      \"bbsymbols\",\n      \"oldbold\",\n      \"scaled=${1:factor}\",\n      \"showoptions\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathalpha\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathastext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ncccomma\",\n      \"if\": \"ncccomma\"\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"decimalcomma\"\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"frenchmath*\"\n    },\n    {\n      \"name\": \"ncccomma\",\n      \"if\": \"frenchmath+\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"Mathastext\"\n    },\n    {\n      \"name\": \"Mathastext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Mathastext[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"mathastext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathastext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mathastext[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"MTencoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"MTfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"MTseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"MTshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTlettershape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTlettershape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTWillUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MTWillUse{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTWillUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"MTWillUse[${5:lettershape}]{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTDeclareVersion\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MTDeclareVersion{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTDeclareVersion\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"MTDeclareVersion[${5:lettershape}]{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"MTDeclareVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"MTDeclareVersion[${5:lettershape}]{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}[${6:other version}]\"\n      }\n    },\n    {\n      \"name\": \"MTboldvariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTboldvariant{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"MTEulerScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTEulerScale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"MTSymbolScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTSymbolScale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"MTmathactiveletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTmathactiveLetters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTmathstandardletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTicinmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnoicinmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTICinmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnoICinmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTicalsoinmathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnormalasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTactiveasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTeasynonlettersobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTeasynonlettersdonotobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnonlettersobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnonlettersdonotobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTexplicitbracesobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTexplicitbracesdonotobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTnormalprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTprimedoesskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTeverymathdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTeverymathoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTfixfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTdonotfixfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTfixmathfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTsetmathskips\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MTsetmathskips{${1:letter}}{${2:mu-glue-before}}{${3:mu-glue-after}}\"\n      }\n    },\n    {\n      \"name\": \"MTunsetmathskips\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTunsetmathskips{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MTexistsskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTexistsskip{${1:math glue}}\"\n      }\n    },\n    {\n      \"name\": \"MTnormalexists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTexistsdoesskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTforallskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTforallskip{${1:math glue}}\"\n      }\n    },\n    {\n      \"name\": \"MTnormalforall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTforalldoesskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTprimeskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTprimeskip{${1:math glue}}\"\n      }\n    },\n    {\n      \"name\": \"MTlowerast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTlowerast{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"MTmathoperatorsobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTmathoperatorsdonotobeymathxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTversion{${1:math version}}\"\n      }\n    },\n    {\n      \"name\": \"MTversion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MTversion[${2:text version}]{${1:math version}}\"\n      }\n    },\n    {\n      \"name\": \"MTversion*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTversion*{${1:math version}}\"\n      }\n    },\n    {\n      \"name\": \"MTcustomgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTstandardgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTgreekupdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTgreekitdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTrecordstandardgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTresetnewmcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTcustomizenewmcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTmathactivedigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTmathstandarddigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathnormal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathnormal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathrm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathbf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathsf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathtt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathnormalbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathnormalbold{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Mathnormalbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathnormalbold{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"inodot\"\n    },\n    {\n      \"name\": \"jnodot\"\n    },\n    {\n      \"name\": \"MTitgreek\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"MTupgreek\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"MTitGreek\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"MTupGreek\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"MTgreekfont\",\n      \"if\": \"LGRgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTgreekfont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"mathgreekup\",\n      \"if\": \"LGRgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekup{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekit\",\n      \"if\": \"LGRgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekit{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekupbold\",\n      \"if\": \"LGRgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekupbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekitbold\",\n      \"if\": \"LGRgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekitbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Betaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Etaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Muup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Nuup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Tauup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Chiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Betait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Zetait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Etait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Iotait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Kappait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Muit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Nuit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Tauit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Chiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Digammait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Phiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Psiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Piit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Psiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"Omegait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"betaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"gammaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"deltaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"zetaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"etaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"thetaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"iotaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"kappaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"muup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"nuup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"xiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"omicronup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"piup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"rhoup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"tauup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"phiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"chiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"psiup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"omegaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"digammaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"betait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"gammait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"deltait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"etait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"thetait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"lambdait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"muit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"xiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"omicronit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"piit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"sigmait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"phiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"psiit\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"omegait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"digammait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"if\": \"LGRgreek\"\n    },\n    {\n      \"name\": \"MTitgreek\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"MTupgreek\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"MTitGreek\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"MTupGreek\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"MTgreekfont\",\n      \"if\": \"LGRgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTgreekfont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"mathgreekup\",\n      \"if\": \"LGRgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekup{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekit\",\n      \"if\": \"LGRgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekit{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekupbold\",\n      \"if\": \"LGRgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekupbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekitbold\",\n      \"if\": \"LGRgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekitbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Betaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Etaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Muup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Nuup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Tauup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Chiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Betait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Zetait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Etait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Iotait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Kappait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Muit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Nuit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Tauit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Chiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Digammait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Phiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Psiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Piit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Psiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"Omegait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"betaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"gammaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"deltaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"zetaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"etaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"thetaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"iotaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"kappaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"muup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"nuup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"xiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"omicronup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"piup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"rhoup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"tauup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"phiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"chiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"psiup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"omegaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"digammaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"betait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"gammait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"deltait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"etait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"thetait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"lambdait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"muit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"xiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"omicronit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"piit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"sigmait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"phiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"psiit\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"omegait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"digammait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"if\": \"LGRgreeks\"\n    },\n    {\n      \"name\": \"MTitgreek\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"MTupgreek\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"MTitGreek\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"MTupGreek\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"MTgreekfont\",\n      \"if\": \"LGRgreek+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTgreekfont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"mathgreekup\",\n      \"if\": \"LGRgreek+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekup{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekit\",\n      \"if\": \"LGRgreek+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekit{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekupbold\",\n      \"if\": \"LGRgreek+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekupbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekitbold\",\n      \"if\": \"LGRgreek+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekitbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Betaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Etaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Muup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Nuup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Tauup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Chiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Betait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Zetait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Etait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Iotait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Kappait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Muit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Nuit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Tauit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Chiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Digammait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Phiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Psiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Piit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Psiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"Omegait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"betaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"gammaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"deltaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"zetaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"etaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"thetaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"iotaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"kappaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"muup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"nuup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"xiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"omicronup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"piup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"rhoup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"tauup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"phiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"chiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"psiup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"omegaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"digammaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"betait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"gammait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"deltait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"etait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"thetait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"lambdait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"muit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"xiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"omicronit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"piit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"sigmait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"phiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"psiit\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"omegait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"digammait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"if\": \"LGRgreek+\"\n    },\n    {\n      \"name\": \"MTitgreek\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"MTupgreek\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"MTitGreek\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"MTupGreek\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"MTgreekfont\",\n      \"if\": \"LGRgreeks+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTgreekfont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"digamma\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"mathgreekup\",\n      \"if\": \"LGRgreeks+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekup{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekit\",\n      \"if\": \"LGRgreeks+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekit{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekupbold\",\n      \"if\": \"LGRgreeks+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekupbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mathgreekitbold\",\n      \"if\": \"LGRgreeks+\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreekitbold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Alphaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Betaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Epsilonup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Zetaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Etaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Iotaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Kappaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Muup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Nuup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Omicronup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Rhoup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Tauup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Chiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Alphait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Betait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Epsilonit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Zetait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Etait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Iotait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Kappait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Muit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Nuit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Omicronit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Rhoit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Tauit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Chiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Digammaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Digammait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Phiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Psiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Piit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Psiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"Omegait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"betaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"gammaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"deltaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"zetaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"etaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"thetaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"iotaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"kappaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"muup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"nuup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"xiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"omicronup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"piup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"rhoup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"tauup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"phiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"chiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"psiup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"omegaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"digammaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"betait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"gammait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"deltait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"etait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"thetait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"lambdait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"muit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"xiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"omicronit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"piit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"sigmait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"phiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"psiit\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"omegait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"digammait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"if\": \"LGRgreeks+\"\n    },\n    {\n      \"name\": \"MathEuler\",\n      \"if\": \"eulergreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathEuler{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MathEulerBold\",\n      \"if\": \"eulergreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathEulerBold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"eulergreek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"selfGreek\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"selfGreeks\"\n    },\n    {\n      \"name\": \"MathEuler\",\n      \"if\": \"eulerdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathEuler{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MathEulerBold\",\n      \"if\": \"eulerdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathEulerBold{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"fouriervec\",\n      \"if\": \"fouriervec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fouriervec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symboldelimiters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symboldigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symbolgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"symbolgreek\"\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symbolre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DotTriangle\",\n      \"if\": \"symbolre\"\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symbolmisc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"implies\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"impliedby\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"shortiff\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"longto\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"inftypsy\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"proptopsy\",\n      \"if\": \"symbolmisc\"\n    },\n    {\n      \"name\": \"MToriginalprod\",\n      \"if\": \"symbolmisc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MToriginalsum\",\n      \"if\": \"symbolmisc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"implies\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"impliedby\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"shortiff\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"longto\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"inftypsy\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"proptopsy\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"DotTriangle\",\n      \"if\": \"symbol\"\n    },\n    {\n      \"name\": \"MToriginalprod\",\n      \"if\": \"symbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MToriginalsum\",\n      \"if\": \"symbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathPSymbol\",\n      \"if\": \"symbolmax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathPSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Iota\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Kappa\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Omicron\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"Chi\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"implies\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"impliedby\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"shortiff\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"longto\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"inftypsy\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"proptopsy\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"DotTriangle\",\n      \"if\": \"symbolmax\"\n    },\n    {\n      \"name\": \"MToriginalprod\",\n      \"if\": \"symbolmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MToriginalsum\",\n      \"if\": \"symbolmax\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathastext#c\": [\n      \"italic\",\n      \"frenchmath\",\n      \"ncccomma\",\n      \"decimalcomma\",\n      \"binarysemicolon\",\n      \"frenchmath*\",\n      \"frenchmath+\",\n      \"endash\",\n      \"noendash\",\n      \"emdash\",\n      \"alldelims\",\n      \"nolessnomore\",\n      \"nosmalldelims\",\n      \"noplus\",\n      \"nominus\",\n      \"noplusnominus\",\n      \"noparenthesis\",\n      \"nopunctuation\",\n      \"noequal\",\n      \"noexclam\",\n      \"asterisk\",\n      \"nospecials\",\n      \"basic\",\n      \"nohbar\",\n      \"activedigits\",\n      \"nodigits\",\n      \"defaultimath\",\n      \"noletters\",\n      \"mathaccents\",\n      \"unimathaccents\",\n      \"symboldelimiters\",\n      \"symboldigits\",\n      \"symbolgreek\",\n      \"symbolre\",\n      \"symbolmisc\",\n      \"symbol\",\n      \"symbolmax\",\n      \"eulerdigits\",\n      \"eulergreek\",\n      \"selfGreek\",\n      \"selfGreeks\",\n      \"LGRgreek\",\n      \"LGRgreeks\",\n      \"LGRgreek+\",\n      \"LGRgreeks+\",\n      \"itgreek\",\n      \"upgreek\",\n      \"itGreek\",\n      \"upGreek\",\n      \"defaultnormal\",\n      \"defaultrm\",\n      \"defaultbf\",\n      \"defaultit\",\n      \"defaultsf\",\n      \"defaulttt\",\n      \"defaultalphabets\",\n      \"defaultmathsizes\",\n      \"12pt\",\n      \"fouriervec\",\n      \"subdued\",\n      \"everymath\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathastext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathbbol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Langle\"\n    },\n    {\n      \"name\": \"Lbrack\"\n    },\n    {\n      \"name\": \"Lparen\"\n    },\n    {\n      \"name\": \"Rangle\"\n    },\n    {\n      \"name\": \"Rbrack\"\n    },\n    {\n      \"name\": \"Rparen\"\n    },\n    {\n      \"name\": \"Eins\"\n    },\n    {\n      \"name\": \"bbalpha\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbbeta\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbgamma\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbdelta\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbespilon\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbzeta\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbeta\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbtheta\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbiota\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbkappa\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bblambda\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbmu\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbnu\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbxi\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbpi\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbrho\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbsigma\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbtau\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbupsilon\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbphi\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbchi\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbpsi\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"bbomega\",\n      \"if\": \"bbgreekl\"\n    },\n    {\n      \"name\": \"ifcspex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cspexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cspextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbbgreekl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbgreeklfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbgreekltrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathbbol#c\": [\n      \"cspex\",\n      \"bbgreekl\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathbbol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathcmd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Int\"\n    },\n    {\n      \"name\": \"Sum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sum{${1:above,below}}\"\n      }\n    },\n    {\n      \"name\": \"SUM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SUM{${1:below}}\"\n      }\n    },\n    {\n      \"name\": \"DerTot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DerTot{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"DerPar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DerPar{${1:func}}{${2:var}}\"\n      }\n    },\n    {\n      \"name\": \"DerNorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DerNorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TendsTo\"\n    },\n    {\n      \"name\": \"TendsTo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TendsTo[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Grad\"\n    },\n    {\n      \"name\": \"Div\"\n    },\n    {\n      \"name\": \"Rot\"\n    },\n    {\n      \"name\": \"ProdVett\"\n    },\n    {\n      \"name\": \"UnderDot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnderDot{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathcmd#c\": [\n      \"ThreeSubscrSum\",\n      \"TwoSubscrSum\",\n      \"ProdVettWedge\",\n      \"ProdVettTimes\",\n      \"VectOpStr\",\n      \"VectOpSymb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathcmd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathcommand.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newmathcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newmathcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newmathcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newmathcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newtextcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtextcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newtextcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newtextcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtextcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewmathcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewmathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewmathcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewtextcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtextcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewtextcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewtextcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtextcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declaremathcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declaremathcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declaremathcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaretextcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declaretextcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaretextcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declaretextcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaretextcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declaretextcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentTextCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentTextCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentTextCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentMathCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentMathCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentTextCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentTextCommand{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarecommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarecommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declarecommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"storecommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"storecommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"storecommand[${2:prefix}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"IfEmptyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfEmptyTF{${1:string}}{${2:NoValueCode}}{${3:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"EmptyContent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EmptyContent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"GetIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetIndex{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"GetExponent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExponent{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarecommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarecommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declarecommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declarecommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"newmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathcommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newmathcommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewmathcommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewmathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewmathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewmathcommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declaremathcommandPIE{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declaremathcommandPIE{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"declaremathcommandPIE\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"declaremathcommandPIE{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentMathCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentMathCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentMathCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentMathCommandPIE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentMathCommandPIE{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"LoopCommands\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopCommands{${1:list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"lettersUppercase\"\n    },\n    {\n      \"name\": \"lettersLowercase\"\n    },\n    {\n      \"name\": \"lettersAll\"\n    },\n    {\n      \"name\": \"lettersGreekLowercase\"\n    },\n    {\n      \"name\": \"lettersGreekUppercase\"\n    },\n    {\n      \"name\": \"lettersGreekAll\"\n    },\n    {\n      \"name\": \"disablecommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablecommand{${1:cmds}}\"\n      }\n    },\n    {\n      \"name\": \"suggestcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"suggestcommand{${1:cmd}}{${2:suggestion}}\"\n      }\n    },\n    {\n      \"name\": \"mathcommandconfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathcommandconfigure{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mathcommandconfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mathcommandconfigure\": [\n      \"disabled=${1|error,warning,silent|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathcomp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tcdigitoldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcdigitoldstyle{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"tcohm\"\n    },\n    {\n      \"name\": \"tcperthousand\"\n    },\n    {\n      \"name\": \"tccelsius\"\n    },\n    {\n      \"name\": \"tccentigrade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcdegree\"\n    },\n    {\n      \"name\": \"tcpertenthousand\"\n    },\n    {\n      \"name\": \"tcmu\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathdesign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"selectgreekfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectgreekfamily{${1:family%keyvals}}\",\n        \"keys\": [\n          \"\\\\selectgreekfamily\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figurecircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figurecircled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fscshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fscshape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ficshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ficshape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"semiseries\",\n      \"if\": \"utopiastd\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"utopiastd\"\n    },\n    {\n      \"name\": \"semiseries\",\n      \"if\": \"mdpus\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"mdpus\"\n    },\n    {\n      \"name\": \"semiseries\",\n      \"if\": \"adobe-utopiastd\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"adobe-utopiastd\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"adobe-garamond\"\n    },\n    {\n      \"name\": \"blackseries\",\n      \"if\": \"mdpgd\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mdlogo\"\n    },\n    {\n      \"name\": \"rulethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mdmathbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"digammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"digammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"dtimes\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"iddots\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftevaw\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftwave\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"levaw\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"lwave\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notsmallin\"\n    },\n    {\n      \"name\": \"notsmallowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"revaw\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightevaw\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightwave\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rwave\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallin\",\n      \"detail\": \"∊\",\n      \"doc\": \"Set membership (small set membership)\"\n    },\n    {\n      \"name\": \"smallowns\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"udtimes\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"utimes\"\n    },\n    {\n      \"name\": \"varepsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varphiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"wideparen\"\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widetriangle\"\n    },\n    {\n      \"name\": \"xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathdesign#c\": [\n      \"utopia\",\n      \"mdput\",\n      \"adobe-utopia\",\n      \"garamond\",\n      \"mdugm\",\n      \"urw-garamond\",\n      \"charter\",\n      \"mdbch\",\n      \"bitstream-charter\",\n      \"utopiastd\",\n      \"mdpus\",\n      \"adobe-utopiastd\",\n      \"mdpgd\",\n      \"adobe-garamond\",\n      \"itccharter\",\n      \"mdici\",\n      \"itc-charter\",\n      \"greekfamily=${1|didot,bodoni|}\",\n      \"expert\",\n      \"euro\",\n      \"scaled=${1:factor}\",\n      \"sfscaled\",\n      \"ttscaled\",\n      \"uppercase=${1|upright,italicized|}\",\n      \"lowercase=${1|upright,italicized|}\",\n      \"greekuppercase=${1|upright,italicized|}\",\n      \"greeklowercase=${1|upright,italicized|}\",\n      \"cal=${1|cmcal,script|}\"\n    ],\n    \"\\\\selectgreekfamily\": [\n      \"bodoni\",\n      \"didot\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathdesign#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathdots.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"iddots\"\n    },\n    {\n      \"name\": \"MDoprekern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MDodotkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MDopostkern\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathenv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mdwtab\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eqnumber\"\n    },\n    {\n      \"name\": \"eqnumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eqnumber[${1:text%plain}]\"\n      }\n    },\n    {\n      \"name\": \"eqaopenskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqacloseskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqacolskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqainskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqastyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmatrix{${1:envname}}{${2:genmatrix args}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"eqnarray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"eqnarray*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"eqlines\"\n    },\n    {\n      \"name\": \"eqlines*\"\n    },\n    {\n      \"name\": \"eqnalign\"\n    },\n    {\n      \"name\": \"eqnalign\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"spliteqn\"\n    },\n    {\n      \"name\": \"spliteqn*\"\n    },\n    {\n      \"name\": \"subsplit\"\n    },\n    {\n      \"name\": \"pmatrix\"\n    },\n    {\n      \"name\": \"dmatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:ldelim}}{${2:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"smatrix\"\n    },\n    {\n      \"name\": \"smatrix*\"\n    },\n    {\n      \"name\": \"spmatrix\"\n    },\n    {\n      \"name\": \"spmatrix*\"\n    },\n    {\n      \"name\": \"sdmatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:ldelim}}{${2:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"sdmatrix*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:ldelim}}{${2:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"genmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:matrix-style}}{${2:outer-style}}{${3:spacing}}{${4:ldelim}}{${5:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"script\"\n    },\n    {\n      \"name\": \"script\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"cases\"\n    },\n    {\n      \"name\": \"smcases\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathfixs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProvideMathFix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideMathFix{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mathfixs#c,\\\\ProvideMathFix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rfrac\",\n      \"if\": \"rfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"vfrac\",\n      \"if\": \"vfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"mathbold\",\n      \"if\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"vfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"mathbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathfixs#c,\\\\ProvideMathFix\": [\n      \"frac\",\n      \"fracclass=${1:class}\",\n      \"fracdelimclass=${1:class}\",\n      \"rfrac\",\n      \"rfrac=${1:command}\",\n      \"vfrac\",\n      \"vfrac=${1:command}\",\n      \"vfracclass=${1:class}\",\n      \"vfracskippre=${1:muskip}\",\n      \"vfracskippost=${1:muskip}\",\n      \"root\",\n      \"rootclass=${1:class}\",\n      \"rootskipend=${1:muskip}\",\n      \"rootskippre=${1:muskip}\",\n      \"rootskippost=${1:muskip}\",\n      \"rootclose=\",\n      \"multskip\",\n      \"multskip=${1:muskip}\",\n      \"greekcaps\",\n      \"greekcaps=${1:prefix}\",\n      \"greeklower\",\n      \"greeklower=${1:prefix}\",\n      \"autobold\",\n      \"mathbold\",\n      \"mathbold=${1:command}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathfixs#c,\\\\ProvideMathFix\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fontspec-loader\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EasterEggUpdate\",\n      \"if\": \"easter-egg\"\n    },\n    {\n      \"name\": \"mathfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"mathfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathfont[${2:keywords%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\mathfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathscit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathscit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newmathrm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathrm{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathit{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathbf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathbf{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathbfit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathbfit{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathsc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathsc{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathscit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathscit{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathbfsc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathbfsc{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathbfscit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmathbfscit{${1:control sequence%cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newmathfontcommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newmathfontcommand{${1:control sequence%cmd}}{${2:font name}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"mathconstantsfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathconstantsfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"mathconstantsfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathconstantsfont[${2:shape%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\mathconstantsfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CharmLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CharmLine{${1:integer list}}\"\n      }\n    },\n    {\n      \"name\": \"CharmFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CharmFile{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"RuleThicknessFactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RuleThicknessFactor{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"IntegralItalicFactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IntegralItalicFactor{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SurdVerticalFactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurdVerticalFactor{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SurdHorizontalFactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SurdHorizontalFactor{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"aacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"unusual\": true,\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"ayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bclubsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdiamondsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"bheartsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigand\"\n    },\n    {\n      \"name\": \"bigat\"\n    },\n    {\n      \"name\": \"bigdiv\"\n    },\n    {\n      \"name\": \"bigdollar\"\n    },\n    {\n      \"name\": \"bighash\"\n    },\n    {\n      \"name\": \"bigp\"\n    },\n    {\n      \"name\": \"bigpercent\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigq\"\n    },\n    {\n      \"name\": \"bigS\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bspadesuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"comma\",\n      \"unusual\": true,\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"unusual\": true,\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"unusual\": true,\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"cyrA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrBe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrbe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrChe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrche\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrDe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrEs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyres\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrGhe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrghe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrHa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrHard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrhard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrIe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrKa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrPe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrpe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrSha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrShcha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshcha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrSoft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsoft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrTe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrTse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrtse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrvarI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrvari\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrVe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrYa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrYeru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryeru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrYu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrZe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrZhe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzhe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daleth\",\n      \"unusual\": true,\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"unusual\": true,\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"defeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"downarrowtobar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"unusual\": true,\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"unusual\": true,\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"Eta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fakelangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fakellangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fakerangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fakerrangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fflat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fractionslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"from\"\n    },\n    {\n      \"name\": \"gapprox\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"unusual\": true,\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"unusual\": true,\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"unusual\": true,\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"he\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"het\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Heta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hourglass\",\n      \"unusual\": true,\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"increment\",\n      \"unusual\": true,\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Koppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lapprox\"\n    },\n    {\n      \"name\": \"lcirclearrow\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"unusual\": true,\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftarrowtobar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftleftleftarrows\"\n    },\n    {\n      \"name\": \"leftoplusarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"unusual\": true,\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightarrowstobar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"unusual\": true,\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightwavearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"unusual\": true,\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"unusual\": true,\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"lguil\"\n    },\n    {\n      \"name\": \"lightningboltarrow\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"unusual\": true,\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"llguil\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"unusual\": true,\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"unusual\": true,\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longleftbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longleftbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"longrightbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longrightbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"unusual\": true,\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"unusual\": true,\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"mathand\"\n    },\n    {\n      \"name\": \"mathbackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathhash\"\n    },\n    {\n      \"name\": \"mathpercent\"\n    },\n    {\n      \"name\": \"mem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"nl\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nlsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"unusual\": true,\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsimeqq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"unusual\": true,\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"Nu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"odiv\",\n      \"detail\": \"⨸\",\n      \"doc\": \"Circled division sign\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"pe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"unusual\": true,\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"unusual\": true,\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"unusual\": true,\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"unusual\": true,\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precprec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precsim\",\n      \"unusual\": true,\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"proportion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ratio\"\n    },\n    {\n      \"name\": \"rcirclearrow\"\n    },\n    {\n      \"name\": \"resh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rguil\"\n    },\n    {\n      \"name\": \"Rho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"unusual\": true,\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightarrowtobar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rightbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"unusual\": true,\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightoplusarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightrightrightarrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"unusual\": true,\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"unusual\": true,\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"ringeq\"\n    },\n    {\n      \"name\": \"rrguil\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"unusual\": true,\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"samekh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"San\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"san\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"seq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simeqq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simneqq\",\n      \"unusual\": true,\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"sqdot\"\n    },\n    {\n      \"name\": \"sqminus\"\n    },\n    {\n      \"name\": \"sqplus\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"sqtimes\"\n    },\n    {\n      \"name\": \"ssharp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sssim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stareq\",\n      \"unusual\": true,\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"Stigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"unusual\": true,\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"unusual\": true,\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"unusual\": true,\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"unusual\": true,\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"unusual\": true,\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"unusual\": true,\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"succsucc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"Tau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"triangleeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"tsadi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"uparrowtobar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upbararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updownharpoons\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"unusual\": true,\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"upwhitebararrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"unusual\": true,\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"varcdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varDigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vardigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkaf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varKoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varmem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varSampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsetminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"vartsadi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"veeeq\",\n      \"unusual\": true,\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"wclubsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wdiamondsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wedgeeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wheartsuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wspadesuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zigzagarrow\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"mathng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surdbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radicandoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmathfontcommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathfontcommands{${1:font name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathfont#c\": [\n      \"easter-egg\",\n      \"default-loader\",\n      \"fontspec-loader\",\n      \"adjust\",\n      \"no-adjust\",\n      \"${1:font name}\"\n    ],\n    \"\\\\mathfont\": [\n      \"upper\",\n      \"upper=${1|upright,italic|}\",\n      \"lower\",\n      \"lower=${1|upright,italic|}\",\n      \"diacritics\",\n      \"diacritics=${1|upright,italic|}\",\n      \"greekupper\",\n      \"greekupper=${1|upright,italic|}\",\n      \"greeklower\",\n      \"greeklower=${1|upright,italic|}\",\n      \"digits\",\n      \"digits=${1|upright,italic|}\",\n      \"operator\",\n      \"operator=${1|upright,italic|}\",\n      \"delimiters\",\n      \"radical\",\n      \"symbols\",\n      \"bigops\",\n      \"agreekupper\",\n      \"agreekupper=${1|upright,italic|}\",\n      \"agreeklower\",\n      \"agreeklower=${1|upright,italic|}\",\n      \"cyrillicupper\",\n      \"cyrillicupper=${1|upright,italic|}\",\n      \"cyrilliclower\",\n      \"cyrilliclower=${1|upright,italic|}\",\n      \"hebrew\",\n      \"hebrew=${1|upright,italic|}\",\n      \"extsymbols\",\n      \"arrows\",\n      \"extbigops\",\n      \"bb\",\n      \"cal\",\n      \"frak\",\n      \"bcal\",\n      \"bfrak\"\n    ],\n    \"\\\\mathconstantsfont\": [\n      \"upright\",\n      \"italic\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathfont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathgreeks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmathgreeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathgreeks{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mathgreeks#c,\\\\setmathgreeks\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathgreeksfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgreeksfont{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mathgreeksfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"greektable\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathgreeks#c\": [\n      \"lgrmath\",\n      \"lgrmath=${1:font name}\",\n      \"fontspec\",\n      \"fontspec=${1:font name}\",\n      \"unicode-math\",\n      \"unicode-math=${1:font name}\",\n      \"upgreek\",\n      \"upgreek=${1|Euler,Symbol,Symbolsmallscale|}\",\n      \"mathdesign\",\n      \"mathdesign=${1|Utopia,Garamond,Charter|}\",\n      \"kpfonts\",\n      \"kpfonts=${1|normal,light|}\",\n      \"fourier\",\n      \"pxfonts\",\n      \"txfonts\",\n      \"libertinus\",\n      \"concrete\",\n      \"cmbright\",\n      \"savegreeks\",\n      \"otherfonts\",\n      \"libsans\",\n      \"lowercase\",\n      \"uppercase\"\n    ],\n    \"\\\\usepackage/mathgreeks#c,\\\\setmathgreeks\": [\n      \"greekup\",\n      \"Greekup\",\n      \"TeX\",\n      \"ISO\",\n      \"upright\",\n      \"style=${1|TeX,ISO,upright|}\"\n    ],\n    \"\\\\mathgreeksfont\": [\n      \"fontspec=${1:font name}\",\n      \"unicode-math=${1:font name}\",\n      \"enc=${1:encoding}\",\n      \"fam=${1:family}\",\n      \"series=${1:series}\",\n      \"shape=${1:shape}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathgreeks#c\",\n    \"\\\\usepackage/mathgreeks#c,\\\\setmathgreeks\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathpartir.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inferrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inferrule{${1:premises}}{${2:conclusions}}\"\n      }\n    },\n    {\n      \"name\": \"inferrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inferrule[${3:label%text}]{${1:premises}}{${2:conclusions}}\"\n      }\n    },\n    {\n      \"name\": \"inferrule*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inferrule*[${3:options%keyvals}]{${1:premises}}{${2:conclusions}}\",\n        \"keys\": [\n          \"\\\\inferrule*,\\\\infer*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"infer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"infer{${1:premises}}{${2:conclusions}}\"\n      }\n    },\n    {\n      \"name\": \"infer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"infer[${3:label%text}]{${1:premises}}{${2:conclusions}}\"\n      }\n    },\n    {\n      \"name\": \"infer*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"infer*[${3:options%keyvals}]{${1:premises}}{${2:conclusions}}\",\n        \"keys\": [\n          \"\\\\inferrule*,\\\\infer*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mprset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mprset{${1:keyvals}}\",\n        \"keys\": [\n          \"mprset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MathparLineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathparNormalpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathparBindings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mathpar\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\inferrule*,\\\\infer*\": [\n      \"width=\",\n      \"narrower=${1:scale}\",\n      \"before=${1:tex}\",\n      \"lab=${1:label}\",\n      \"lskip=\",\n      \"left=${1:label}\",\n      \"Left=${1:label}\",\n      \"right=${1:label}\",\n      \"Right=${1:label}\",\n      \"style=${1:tex}\",\n      \"leftstyle=${1:tex}\",\n      \"rightstyle=${1:tex}\",\n      \"leftskip=\",\n      \"rightskip=\",\n      \"vdots=\",\n      \"after=${1:tex}\"\n    ],\n    \"mprset\": [\n      \"sep=\",\n      \"flushleft\",\n      \"center\",\n      \"rewrite=\",\n      \"fraction=${1:tail}${2:body}${3:head}\",\n      \"fractionaboveskip=\",\n      \"fractionbelowskip=\",\n      \"myfraction=${1:tex}\",\n      \"vskip=\",\n      \"vcenter\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathpazo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"PazoBB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PazoBB{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"ppleuro\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathpazo#c\": [\n      \"osf\",\n      \"sc\",\n      \"slantedGreek\",\n      \"noBBpl\",\n      \"osfeqnnum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathpazo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathpi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"if\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathpi#c\": [\n      \"mathfrak\",\n      \"mathcal\",\n      \"mathscr\",\n      \"mathbb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathpi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathptmx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathptmx#c\": [\n      \"slantedGreek\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathptmx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathpunctspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalsemicolon\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathpunctspace#c\": [\n      \"comma=${1|natural,skip|}\",\n      \"colon=${1|natural,skip|}\",\n      \"semicolon=${1|natural,skip|}\",\n      \"unit=${1:unit}\",\n      \"latexorg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathpunctspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathrsfs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathscinet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"germ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"germ{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"romsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romsup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"asup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hslash\",\n      \"unusual\": true,\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"rasp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lasp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdprime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bud\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cydot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"utilde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"uarc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lfhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfhook{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dudot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dudot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"udot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"udot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"polhk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polhk{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"soft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soft{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-abbreviations.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-commons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aa\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"Eg\"\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"Ie\"\n    },\n    {\n      \"name\": \"iid\"\n    },\n    {\n      \"name\": \"st\"\n    },\n    {\n      \"name\": \"wolog\"\n    },\n    {\n      \"name\": \"wrt\"\n    },\n    {\n      \"name\": \"bspw\"\n    },\n    {\n      \"name\": \"bzgl\"\n    },\n    {\n      \"name\": \"bzw\"\n    },\n    {\n      \"name\": \"dah\"\n    },\n    {\n      \"name\": \"Dah\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"evtl\"\n    },\n    {\n      \"name\": \"Evtl\"\n    },\n    {\n      \"name\": \"fue\"\n    },\n    {\n      \"name\": \"fs\"\n    },\n    {\n      \"name\": \"iA\"\n    },\n    {\n      \"name\": \"IA\"\n    },\n    {\n      \"name\": \"idR\"\n    },\n    {\n      \"name\": \"IdR\"\n    },\n    {\n      \"name\": \"iW\"\n    },\n    {\n      \"name\": \"IW\"\n    },\n    {\n      \"name\": \"mE\"\n    },\n    {\n      \"name\": \"oBdA\"\n    },\n    {\n      \"name\": \"OBdA\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"oae\"\n    },\n    {\n      \"name\": \"pa\"\n    },\n    {\n      \"name\": \"spd\"\n    },\n    {\n      \"name\": \"so\"\n    },\n    {\n      \"name\": \"ua\"\n    },\n    {\n      \"name\": \"ug\"\n    },\n    {\n      \"name\": \"usw\"\n    },\n    {\n      \"name\": \"Ua\"\n    },\n    {\n      \"name\": \"uU\"\n    },\n    {\n      \"name\": \"UnU\"\n    },\n    {\n      \"name\": \"vgl\"\n    },\n    {\n      \"name\": \"zB\"\n    },\n    {\n      \"name\": \"ZB\"\n    },\n    {\n      \"name\": \"zHd\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-commons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-manifolds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-semantic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bitangentSpaceSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cotangentSpaceSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"covariantDerivativeSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondCovariantDerivativeSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geodesicSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"geodesicArcSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"geodesicArcSymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parallelTransportSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"retractionSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tangentSpaceSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensorSpaceSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectorTransportSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bitangentSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitangentSpace{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"bitangentSpace\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bitangentSpace{${1:point}}[${2:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"cotangentSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cotangentSpace{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"cotangentSpace\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cotangentSpace{${1:point}}[${2:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"cotangentBundle\"\n    },\n    {\n      \"name\": \"cotangentBundle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cotangentBundle[${1:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"covariantDerivative\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"covariantDerivative{${1:vector field}}\"\n      }\n    },\n    {\n      \"name\": \"covariantDerivative\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"covariantDerivative{${1:vector field}}[${2:tensor field}]\"\n      }\n    },\n    {\n      \"name\": \"expOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exponential\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exponential{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"exponential\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"exponential{${1:base}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"exponential\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exponential[${2:scale%keyvals}]{${1:base}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exponential\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"exponential[${2:scale%keyvals}]{${1:base}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"geodesic<s>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"geodesic<s>(${1:%<eval point%>})\"\n      }\n    },\n    {\n      \"name\": \"geodesic<s>\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"geodesic<s>[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"geodesic<s>\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"geodesic<s>[${1:scale}](${2:%<eval point%>})\"\n      }\n    },\n    {\n      \"name\": \"geodesic<style>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"geodesic<style>{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic<style>\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"geodesic<style>{${1:t0}}{${2:t1}}(${3:eval point})\"\n      }\n    },\n    {\n      \"name\": \"geodesic<style>\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"geodesic<style>[${3:scale}]{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic<style>\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"geodesic<style>[${3:scale}]{${1:t0}}{${2:t1}}(${4:eval point})\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"geodesic{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"geodesic{${1:t0}}{${2:t1}}(${3:eval point})\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"geodesic[${3:scale}]{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"geodesic[${3:scale}]{${1:t0}}{${2:t1}}(${4:eval point})\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||{}{}\",\n        \"snippet\": \"geodesic|${3:symbol}|{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"||{}{}()\",\n        \"snippet\": \"geodesic|${3:symbol}|{${1:t0}}{${2:t1}}(${4:%<eval point%>})\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||[]{}{}\",\n        \"snippet\": \"geodesic|${4:symbol}|[${3:scale}]{${1:t0}}{${2:t1}}\"\n      }\n    },\n    {\n      \"name\": \"geodesic\",\n      \"arg\": {\n        \"format\": \"||[]{}{}()\",\n        \"snippet\": \"geodesic|${4:symbol}|[${3:scale}]{${1:t0}}{${2:t1}}(${5:%<eval point%>})\"\n      }\n    },\n    {\n      \"name\": \"logOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logarithm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logarithm{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"logarithm\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"logarithm{${1:base}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"logarithm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"logarithm[${2:scale%keyvals}]{${1:base}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"logarithm\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"logarithm[${2:scale%keyvals}]{${1:base}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inverseRetract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inverseRetract{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"inverseRetract\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"inverseRetract{${1:base}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"inverseRetract\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inverseRetract[${2:scale%keyvals}]{${1:base}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inverseRetract\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"inverseRetract[${2:scale%keyvals}]{${1:base}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lie{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"lie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lie[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parallelTransport{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"parallelTransport{${1:start}}{${2:end}}(${3:arg})\"\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"parallelTransport{${1:start}}{${2:end}}[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"{}{}()[]\",\n        \"snippet\": \"parallelTransport{${1:start}}{${2:end}}(${4:arg})[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"parallelTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"parallelTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}(${4:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"parallelTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}()[]\",\n        \"snippet\": \"parallelTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}(${5:arg})[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parallelTransportDir{${1:start}}{${2:dir}}\"\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"parallelTransportDir{${1:start}}{${2:dir}}(${3:arg})\"\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"parallelTransportDir{${1:start}}{${2:dir}}[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}()[]\",\n        \"snippet\": \"parallelTransportDir{${1:start}}{${2:dir}}(${4:arg})[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"parallelTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"parallelTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}(${4:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"parallelTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parallelTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}()[]\",\n        \"snippet\": \"parallelTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}(${5:arg})[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"retract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retract{${1:base}}\"\n      }\n    },\n    {\n      \"name\": \"retract\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"retract{${1:base}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"retract\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"retract[${2:scale%keyvals}]{${1:base}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"retract\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"retract[${2:scale%keyvals}]{${1:base}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"riemannian\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"riemannian{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"riemannian\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"riemannian{${1:arg1}}{${2:arg2}}[${3:sub}]\"\n      }\n    },\n    {\n      \"name\": \"riemannian\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"riemannian[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"riemannian\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"riemannian[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}[${4:sub}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"riemanniannorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"riemanniannorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"riemanniannorm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"riemanniannorm{${1:arg}}[${2:sub}]\"\n      }\n    },\n    {\n      \"name\": \"riemanniannorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"riemanniannorm[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"riemanniannorm\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"riemanniannorm[${2:scale%keyvals}]{${1:arg}}[${3:sub}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secondCovariantDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secondCovariantDerivative{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"secondCovariantDerivative\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"secondCovariantDerivative{${1:arg1}}{${2:arg2}}[${3:arg}]\"\n      }\n    },\n    {\n      \"name\": \"tangentSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tangentSpace{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tangentSpace\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"tangentSpace{${1:point}}[${2:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"tangentBundle\"\n    },\n    {\n      \"name\": \"tangentBundle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tangentBundle[${1:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"tensorBundle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensorBundle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensorBundle\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tensorBundle{${1:arg1}}{${2:arg2}}[${3:manifold}]\"\n      }\n    },\n    {\n      \"name\": \"tensorSpace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensorSpace{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensorSpace\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tensorSpace{${1:arg1}}{${2:arg2}}[${3:vector space}]\"\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorTransport{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"vectorTransport{${1:start}}{${2:end}}(${3:arg})\"\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"vectorTransport{${1:start}}{${2:end}}[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"{}{}()[]\",\n        \"snippet\": \"vectorTransport{${1:start}}{${2:end}}(${4:arg})[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vectorTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"vectorTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}(${4:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"vectorTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransport\",\n      \"arg\": {\n        \"format\": \"[]{}{}()[]\",\n        \"snippet\": \"vectorTransport[${3:scale%keyvals}]{${1:start}}{${2:end}}(${5:arg})[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vectorTransportDir{${1:start}}{${2:dir}}\"\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"vectorTransportDir{${1:start}}{${2:dir}}(${3:arg})\"\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"vectorTransportDir{${1:start}}{${2:dir}}[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"{}{}()[]\",\n        \"snippet\": \"vectorTransportDir{${1:start}}{${2:dir}}(${4:arg})[${3:sup}]\"\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vectorTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"vectorTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}(${4:arg})\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"vectorTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorTransportDir\",\n      \"arg\": {\n        \"format\": \"[]{}{}()[]\",\n        \"snippet\": \"vectorTransportDir[${3:scale%keyvals}]{${1:start}}{${2:dir}}(${5:arg})[${4:sup}]\",\n        \"keys\": [\n          \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\exponential#c,\\\\logarithm#c,\\\\inverseRetract#c,\\\\lie#c,\\\\parallelTransport#c,\\\\parallelTransportDir#c,\\\\retract#c,\\\\riemannian#c,\\\\riemanniannorm#c,\\\\vectorTransport#c,\\\\vectorTransportDir#c\": [\n      \"big\",\n      \"Big\",\n      \"bigg\",\n      \"Bigg\",\n      \"auto\",\n      \"none\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-names.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-commons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"namemd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namemd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"adimat\"\n    },\n    {\n      \"name\": \"ampl\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"BibLaTeX\"\n    },\n    {\n      \"name\": \"cg\"\n    },\n    {\n      \"name\": \"cpp\"\n    },\n    {\n      \"name\": \"cppmat\"\n    },\n    {\n      \"name\": \"dolfin\"\n    },\n    {\n      \"name\": \"dolfinplot\"\n    },\n    {\n      \"name\": \"dolfinadjoint\"\n    },\n    {\n      \"name\": \"doxygen\"\n    },\n    {\n      \"name\": \"femorph\"\n    },\n    {\n      \"name\": \"fenics\"\n    },\n    {\n      \"name\": \"ffc\"\n    },\n    {\n      \"name\": \"fmg\"\n    },\n    {\n      \"name\": \"fortran\"\n    },\n    {\n      \"name\": \"gitlab\"\n    },\n    {\n      \"name\": \"gmres\"\n    },\n    {\n      \"name\": \"gmsh\"\n    },\n    {\n      \"name\": \"ipopt\"\n    },\n    {\n      \"name\": \"libsvm\"\n    },\n    {\n      \"name\": \"liblinear\"\n    },\n    {\n      \"name\": \"macmpec\"\n    },\n    {\n      \"name\": \"manifoldsjl\"\n    },\n    {\n      \"name\": \"manopt\"\n    },\n    {\n      \"name\": \"manoptjl\"\n    },\n    {\n      \"name\": \"mathematica\"\n    },\n    {\n      \"name\": \"matlab\"\n    },\n    {\n      \"name\": \"maple\"\n    },\n    {\n      \"name\": \"maxima\"\n    },\n    {\n      \"name\": \"meshio\"\n    },\n    {\n      \"name\": \"metis\"\n    },\n    {\n      \"name\": \"minres\"\n    },\n    {\n      \"name\": \"mshr\"\n    },\n    {\n      \"name\": \"mvirt\"\n    },\n    {\n      \"name\": \"numapde\"\n    },\n    {\n      \"name\": \"numpy\"\n    },\n    {\n      \"name\": \"paraview\"\n    },\n    {\n      \"name\": \"pdflatex\"\n    },\n    {\n      \"name\": \"perl\"\n    },\n    {\n      \"name\": \"petsc\"\n    },\n    {\n      \"name\": \"pymat\"\n    },\n    {\n      \"name\": \"python\"\n    },\n    {\n      \"name\": \"scikit\"\n    },\n    {\n      \"name\": \"scikitlearn\"\n    },\n    {\n      \"name\": \"scipy\"\n    },\n    {\n      \"name\": \"sphinx\"\n    },\n    {\n      \"name\": \"subgmres\"\n    },\n    {\n      \"name\": \"subminres\"\n    },\n    {\n      \"name\": \"superlu\"\n    },\n    {\n      \"name\": \"svmlight\"\n    },\n    {\n      \"name\": \"TikZ\"\n    },\n    {\n      \"name\": \"tritetmesh\"\n    },\n    {\n      \"name\": \"ufl\"\n    },\n    {\n      \"name\": \"uqlab\"\n    },\n    {\n      \"name\": \"viper\"\n    },\n    {\n      \"name\": \"xml\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-optimization.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-semantic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalCone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radialCone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tangentCone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linearizingCone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radialcone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"radialcone{${1:sub}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"radialcone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"radialcone[${3:scale%keyvals}]{${1:sub}}{${2:arg}}\",\n        \"keys\": [\n          \"\\\\radialcone#c,\\\\tangentcone#c,\\\\linearizingcone#c,\\\\normalcone#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tangentcone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tangentcone{${1:sub}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tangentcone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tangentcone[${3:scale%keyvals}]{${1:sub}}{${2:arg}}\",\n        \"keys\": [\n          \"\\\\radialcone#c,\\\\tangentcone#c,\\\\linearizingcone#c,\\\\normalcone#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linearizingcone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"linearizingcone{${1:sub}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"linearizingcone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"linearizingcone[${3:scale%keyvals}]{${1:sub}}{${2:arg}}\",\n        \"keys\": [\n          \"\\\\radialcone#c,\\\\tangentcone#c,\\\\linearizingcone#c,\\\\normalcone#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalcone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"normalcone{${1:sub}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"normalcone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"normalcone[${3:scale%keyvals}]{${1:sub}}{${2:arg}}\",\n        \"keys\": [\n          \"\\\\radialcone#c,\\\\tangentcone#c,\\\\linearizingcone#c,\\\\normalcone#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polarcone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polarcone{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\radialcone#c,\\\\tangentcone#c,\\\\linearizingcone#c,\\\\normalcone#c\": [\n      \"big\",\n      \"Big\",\n      \"bigg\",\n      \"Bigg\",\n      \"auto\",\n      \"none\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-semantic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-commons\"\n    },\n    {\n      \"name\": \"mathsemantics-syntax\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ceil[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dual\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dual{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dual\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dual[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"floor[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"avg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"avg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avg[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inner\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inner{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"inner\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inner[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jump\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jump[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:scale%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restr{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"restr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"restr[${3:scale%keyvals}]{${1:arg}}{${2:sub}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setDef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setDef[${3:scale%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"distOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dist\"\n    },\n    {\n      \"name\": \"dist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dist{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"dist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dist{${1:sub}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dist[${1:scale%keyvals}]\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dist[${2:scale%keyvals}]{${1:sub}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dist[${3:scale%keyvals}]{${1:sub}}{${2:arg}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"projOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proj\"\n    },\n    {\n      \"name\": \"proj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proj{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"proj{${1:sub}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"proj[${1:scale%keyvals}]\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"proj[${2:scale%keyvals}]{${1:sub}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"proj[${2:scale%keyvals}]{${1:sub}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proxOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prox\"\n    },\n    {\n      \"name\": \"prox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prox{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"prox\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"prox{${1:sub}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"prox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prox[${1:scale%keyvals}]\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"prox[${2:scale%keyvals}]{${1:sub}}\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prox\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"prox[${2:scale%keyvals}]{${1:sub}}(${3:arg})\",\n        \"keys\": [\n          \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aff\"\n    },\n    {\n      \"name\": \"arcosh\"\n    },\n    {\n      \"name\": \"arcoth\"\n    },\n    {\n      \"name\": \"arsinh\"\n    },\n    {\n      \"name\": \"artanh\"\n    },\n    {\n      \"name\": \"argmax\"\n    },\n    {\n      \"name\": \"Argmax\"\n    },\n    {\n      \"name\": \"argmin\"\n    },\n    {\n      \"name\": \"Argmin\"\n    },\n    {\n      \"name\": \"bdiv\"\n    },\n    {\n      \"name\": \"card\"\n    },\n    {\n      \"name\": \"clconv\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"cofac\"\n    },\n    {\n      \"name\": \"compactly\"\n    },\n    {\n      \"name\": \"cone\"\n    },\n    {\n      \"name\": \"conv\"\n    },\n    {\n      \"name\": \"corresponds\"\n    },\n    {\n      \"name\": \"cov\"\n    },\n    {\n      \"name\": \"curl\"\n    },\n    {\n      \"name\": \"dev\"\n    },\n    {\n      \"name\": \"Div\"\n    },\n    {\n      \"name\": \"dInt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"d\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"diam\"\n    },\n    {\n      \"name\": \"dom\"\n    },\n    {\n      \"name\": \"dotcup\"\n    },\n    {\n      \"name\": \"dprod\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"embed\"\n    },\n    {\n      \"name\": \"embeds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epi\"\n    },\n    {\n      \"name\": \"eR\"\n    },\n    {\n      \"name\": \"esssup\"\n    },\n    {\n      \"name\": \"essinf\"\n    },\n    {\n      \"name\": \"grad\"\n    },\n    {\n      \"name\": \"Graph\"\n    },\n    {\n      \"name\": \"id\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"interior\"\n    },\n    {\n      \"name\": \"inj\"\n    },\n    {\n      \"name\": \"laplace\"\n    },\n    {\n      \"name\": \"limessinf\"\n    },\n    {\n      \"name\": \"limesssup\"\n    },\n    {\n      \"name\": \"lin\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"range\"\n    },\n    {\n      \"name\": \"ri\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"Sgn\"\n    },\n    {\n      \"name\": \"Span\"\n    },\n    {\n      \"name\": \"supp\"\n    },\n    {\n      \"name\": \"sym\"\n    },\n    {\n      \"name\": \"trace\"\n    },\n    {\n      \"name\": \"transposeSymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transp\"\n    },\n    {\n      \"name\": \"var\"\n    },\n    {\n      \"name\": \"weakly\"\n    },\n    {\n      \"name\": \"weaklystar\"\n    },\n    {\n      \"name\": \"orcid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcid{${1:ORCID}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\abs#c,\\\\ceil#c,\\\\dual#c,\\\\floor#c,\\\\avg#c,\\\\inner#c,\\\\jump#c,\\\\norm#c,\\\\restr#c,\\\\setDef#c,\\\\dist#c,\\\\proj#c,\\\\prox#c\": [\n      \"big\",\n      \"Big\",\n      \"bigg\",\n      \"Bigg\",\n      \"auto\",\n      \"none\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathsemantics-syntax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-commons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"C\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"K\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"bA\"\n    },\n    {\n      \"name\": \"bB\"\n    },\n    {\n      \"name\": \"bC\"\n    },\n    {\n      \"name\": \"bD\"\n    },\n    {\n      \"name\": \"bE\"\n    },\n    {\n      \"name\": \"bF\"\n    },\n    {\n      \"name\": \"bG\"\n    },\n    {\n      \"name\": \"bH\"\n    },\n    {\n      \"name\": \"bI\"\n    },\n    {\n      \"name\": \"bJ\"\n    },\n    {\n      \"name\": \"bK\"\n    },\n    {\n      \"name\": \"bL\"\n    },\n    {\n      \"name\": \"bM\"\n    },\n    {\n      \"name\": \"bN\"\n    },\n    {\n      \"name\": \"bO\"\n    },\n    {\n      \"name\": \"bP\"\n    },\n    {\n      \"name\": \"bQ\"\n    },\n    {\n      \"name\": \"bR\"\n    },\n    {\n      \"name\": \"bS\"\n    },\n    {\n      \"name\": \"bT\"\n    },\n    {\n      \"name\": \"bU\"\n    },\n    {\n      \"name\": \"bV\"\n    },\n    {\n      \"name\": \"bW\"\n    },\n    {\n      \"name\": \"bX\"\n    },\n    {\n      \"name\": \"bY\"\n    },\n    {\n      \"name\": \"bZ\"\n    },\n    {\n      \"name\": \"ba\"\n    },\n    {\n      \"name\": \"bb\"\n    },\n    {\n      \"name\": \"bc\"\n    },\n    {\n      \"name\": \"bd\"\n    },\n    {\n      \"name\": \"be\"\n    },\n    {\n      \"name\": \"bf\"\n    },\n    {\n      \"name\": \"bg\"\n    },\n    {\n      \"name\": \"bh\"\n    },\n    {\n      \"name\": \"bi\"\n    },\n    {\n      \"name\": \"bj\"\n    },\n    {\n      \"name\": \"bk\"\n    },\n    {\n      \"name\": \"bl\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"bn\"\n    },\n    {\n      \"name\": \"bo\"\n    },\n    {\n      \"name\": \"bp\"\n    },\n    {\n      \"name\": \"bq\"\n    },\n    {\n      \"name\": \"br\"\n    },\n    {\n      \"name\": \"bs\"\n    },\n    {\n      \"name\": \"bt\"\n    },\n    {\n      \"name\": \"bu\"\n    },\n    {\n      \"name\": \"bv\"\n    },\n    {\n      \"name\": \"bw\"\n    },\n    {\n      \"name\": \"bx\"\n    },\n    {\n      \"name\": \"by\"\n    },\n    {\n      \"name\": \"bz\"\n    },\n    {\n      \"name\": \"bnull\"\n    },\n    {\n      \"name\": \"bone\"\n    },\n    {\n      \"name\": \"balpha\"\n    },\n    {\n      \"name\": \"bbeta\"\n    },\n    {\n      \"name\": \"bgamma\"\n    },\n    {\n      \"name\": \"bdelta\"\n    },\n    {\n      \"name\": \"bepsilon\"\n    },\n    {\n      \"name\": \"bvarepsilon\"\n    },\n    {\n      \"name\": \"bzeta\"\n    },\n    {\n      \"name\": \"boldeta\"\n    },\n    {\n      \"name\": \"btheta\"\n    },\n    {\n      \"name\": \"bvartheta\"\n    },\n    {\n      \"name\": \"biota\"\n    },\n    {\n      \"name\": \"bkappa\"\n    },\n    {\n      \"name\": \"bvarkappa\"\n    },\n    {\n      \"name\": \"blambda\"\n    },\n    {\n      \"name\": \"bmu\"\n    },\n    {\n      \"name\": \"bnu\"\n    },\n    {\n      \"name\": \"bomicron\"\n    },\n    {\n      \"name\": \"bxi\"\n    },\n    {\n      \"name\": \"bpi\"\n    },\n    {\n      \"name\": \"bvarpi\"\n    },\n    {\n      \"name\": \"brho\"\n    },\n    {\n      \"name\": \"bvarrho\"\n    },\n    {\n      \"name\": \"bsigma\"\n    },\n    {\n      \"name\": \"bvarsigma\"\n    },\n    {\n      \"name\": \"btau\"\n    },\n    {\n      \"name\": \"bupsilon\"\n    },\n    {\n      \"name\": \"bphi\"\n    },\n    {\n      \"name\": \"bvarphi\"\n    },\n    {\n      \"name\": \"bchi\"\n    },\n    {\n      \"name\": \"bpsi\"\n    },\n    {\n      \"name\": \"bomega\"\n    },\n    {\n      \"name\": \"bAlpha\"\n    },\n    {\n      \"name\": \"bBeta\"\n    },\n    {\n      \"name\": \"bGamma\"\n    },\n    {\n      \"name\": \"bDelta\"\n    },\n    {\n      \"name\": \"bEpsilon\"\n    },\n    {\n      \"name\": \"bZeta\"\n    },\n    {\n      \"name\": \"bEta\"\n    },\n    {\n      \"name\": \"bTheta\"\n    },\n    {\n      \"name\": \"bIota\"\n    },\n    {\n      \"name\": \"bKappa\"\n    },\n    {\n      \"name\": \"bLambda\"\n    },\n    {\n      \"name\": \"bMu\"\n    },\n    {\n      \"name\": \"bNu\"\n    },\n    {\n      \"name\": \"bXi\"\n    },\n    {\n      \"name\": \"bOmicron\"\n    },\n    {\n      \"name\": \"bPi\"\n    },\n    {\n      \"name\": \"bRho\"\n    },\n    {\n      \"name\": \"bSigma\"\n    },\n    {\n      \"name\": \"bTau\"\n    },\n    {\n      \"name\": \"bUpsilon\"\n    },\n    {\n      \"name\": \"bPhi\"\n    },\n    {\n      \"name\": \"bChi\"\n    },\n    {\n      \"name\": \"bPsi\"\n    },\n    {\n      \"name\": \"bOmega\"\n    },\n    {\n      \"name\": \"cA\"\n    },\n    {\n      \"name\": \"cB\"\n    },\n    {\n      \"name\": \"cC\"\n    },\n    {\n      \"name\": \"cD\"\n    },\n    {\n      \"name\": \"cE\"\n    },\n    {\n      \"name\": \"cF\"\n    },\n    {\n      \"name\": \"cG\"\n    },\n    {\n      \"name\": \"cH\"\n    },\n    {\n      \"name\": \"cI\"\n    },\n    {\n      \"name\": \"cJ\"\n    },\n    {\n      \"name\": \"cK\"\n    },\n    {\n      \"name\": \"cL\"\n    },\n    {\n      \"name\": \"cM\"\n    },\n    {\n      \"name\": \"cN\"\n    },\n    {\n      \"name\": \"cO\"\n    },\n    {\n      \"name\": \"cP\"\n    },\n    {\n      \"name\": \"cQ\"\n    },\n    {\n      \"name\": \"cR\"\n    },\n    {\n      \"name\": \"cS\"\n    },\n    {\n      \"name\": \"cT\"\n    },\n    {\n      \"name\": \"cU\"\n    },\n    {\n      \"name\": \"cV\"\n    },\n    {\n      \"name\": \"cW\"\n    },\n    {\n      \"name\": \"cX\"\n    },\n    {\n      \"name\": \"cY\"\n    },\n    {\n      \"name\": \"cZ\"\n    },\n    {\n      \"name\": \"fA\"\n    },\n    {\n      \"name\": \"fB\"\n    },\n    {\n      \"name\": \"fC\"\n    },\n    {\n      \"name\": \"fD\"\n    },\n    {\n      \"name\": \"fE\"\n    },\n    {\n      \"name\": \"fF\"\n    },\n    {\n      \"name\": \"fG\"\n    },\n    {\n      \"name\": \"fH\"\n    },\n    {\n      \"name\": \"fI\"\n    },\n    {\n      \"name\": \"fJ\"\n    },\n    {\n      \"name\": \"fK\"\n    },\n    {\n      \"name\": \"fL\"\n    },\n    {\n      \"name\": \"fM\"\n    },\n    {\n      \"name\": \"fN\"\n    },\n    {\n      \"name\": \"fO\"\n    },\n    {\n      \"name\": \"fP\"\n    },\n    {\n      \"name\": \"fQ\"\n    },\n    {\n      \"name\": \"fR\"\n    },\n    {\n      \"name\": \"fS\"\n    },\n    {\n      \"name\": \"fT\"\n    },\n    {\n      \"name\": \"fU\"\n    },\n    {\n      \"name\": \"fV\"\n    },\n    {\n      \"name\": \"fW\"\n    },\n    {\n      \"name\": \"fX\"\n    },\n    {\n      \"name\": \"fY\"\n    },\n    {\n      \"name\": \"fZ\"\n    },\n    {\n      \"name\": \"sA\"\n    },\n    {\n      \"name\": \"sB\"\n    },\n    {\n      \"name\": \"sC\"\n    },\n    {\n      \"name\": \"sD\"\n    },\n    {\n      \"name\": \"sE\"\n    },\n    {\n      \"name\": \"sF\"\n    },\n    {\n      \"name\": \"sG\"\n    },\n    {\n      \"name\": \"sH\"\n    },\n    {\n      \"name\": \"sI\"\n    },\n    {\n      \"name\": \"sJ\"\n    },\n    {\n      \"name\": \"sK\"\n    },\n    {\n      \"name\": \"sL\"\n    },\n    {\n      \"name\": \"sM\"\n    },\n    {\n      \"name\": \"sN\"\n    },\n    {\n      \"name\": \"sO\"\n    },\n    {\n      \"name\": \"sP\"\n    },\n    {\n      \"name\": \"sQ\"\n    },\n    {\n      \"name\": \"sR\"\n    },\n    {\n      \"name\": \"sS\"\n    },\n    {\n      \"name\": \"sT\"\n    },\n    {\n      \"name\": \"sU\"\n    },\n    {\n      \"name\": \"sV\"\n    },\n    {\n      \"name\": \"sW\"\n    },\n    {\n      \"name\": \"sX\"\n    },\n    {\n      \"name\": \"sY\"\n    },\n    {\n      \"name\": \"sZ\"\n    },\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"vb\"\n    },\n    {\n      \"name\": \"vc\"\n    },\n    {\n      \"name\": \"vd\"\n    },\n    {\n      \"name\": \"ve\"\n    },\n    {\n      \"name\": \"vf\"\n    },\n    {\n      \"name\": \"vg\"\n    },\n    {\n      \"name\": \"vh\"\n    },\n    {\n      \"name\": \"vi\"\n    },\n    {\n      \"name\": \"vj\"\n    },\n    {\n      \"name\": \"vk\"\n    },\n    {\n      \"name\": \"vl\"\n    },\n    {\n      \"name\": \"vm\"\n    },\n    {\n      \"name\": \"vn\"\n    },\n    {\n      \"name\": \"vo\"\n    },\n    {\n      \"name\": \"vp\"\n    },\n    {\n      \"name\": \"vq\"\n    },\n    {\n      \"name\": \"vr\"\n    },\n    {\n      \"name\": \"vs\"\n    },\n    {\n      \"name\": \"vt\"\n    },\n    {\n      \"name\": \"vu\"\n    },\n    {\n      \"name\": \"vv\"\n    },\n    {\n      \"name\": \"vw\"\n    },\n    {\n      \"name\": \"vx\"\n    },\n    {\n      \"name\": \"vy\"\n    },\n    {\n      \"name\": \"vz\"\n    },\n    {\n      \"name\": \"vA\"\n    },\n    {\n      \"name\": \"vB\"\n    },\n    {\n      \"name\": \"vC\"\n    },\n    {\n      \"name\": \"vD\"\n    },\n    {\n      \"name\": \"vE\"\n    },\n    {\n      \"name\": \"vF\"\n    },\n    {\n      \"name\": \"vG\"\n    },\n    {\n      \"name\": \"vH\"\n    },\n    {\n      \"name\": \"vI\"\n    },\n    {\n      \"name\": \"vJ\"\n    },\n    {\n      \"name\": \"vK\"\n    },\n    {\n      \"name\": \"vL\"\n    },\n    {\n      \"name\": \"vM\"\n    },\n    {\n      \"name\": \"vN\"\n    },\n    {\n      \"name\": \"vO\"\n    },\n    {\n      \"name\": \"vP\"\n    },\n    {\n      \"name\": \"vQ\"\n    },\n    {\n      \"name\": \"vR\"\n    },\n    {\n      \"name\": \"vS\"\n    },\n    {\n      \"name\": \"vT\"\n    },\n    {\n      \"name\": \"vU\"\n    },\n    {\n      \"name\": \"vV\"\n    },\n    {\n      \"name\": \"vW\"\n    },\n    {\n      \"name\": \"vX\"\n    },\n    {\n      \"name\": \"vY\"\n    },\n    {\n      \"name\": \"vZ\"\n    },\n    {\n      \"name\": \"vnull\"\n    },\n    {\n      \"name\": \"vone\"\n    },\n    {\n      \"name\": \"valpha\"\n    },\n    {\n      \"name\": \"vbeta\"\n    },\n    {\n      \"name\": \"vgamma\"\n    },\n    {\n      \"name\": \"vdelta\"\n    },\n    {\n      \"name\": \"vepsilon\"\n    },\n    {\n      \"name\": \"vvarepsilon\"\n    },\n    {\n      \"name\": \"vzeta\"\n    },\n    {\n      \"name\": \"veta\"\n    },\n    {\n      \"name\": \"vtheta\"\n    },\n    {\n      \"name\": \"vvartheta\"\n    },\n    {\n      \"name\": \"viota\"\n    },\n    {\n      \"name\": \"vkappa\"\n    },\n    {\n      \"name\": \"vvarkappa\"\n    },\n    {\n      \"name\": \"vlambda\"\n    },\n    {\n      \"name\": \"vmu\"\n    },\n    {\n      \"name\": \"vnu\"\n    },\n    {\n      \"name\": \"vomicron\"\n    },\n    {\n      \"name\": \"vxi\"\n    },\n    {\n      \"name\": \"vpi\"\n    },\n    {\n      \"name\": \"vvarpi\"\n    },\n    {\n      \"name\": \"vrho\"\n    },\n    {\n      \"name\": \"vvarrho\"\n    },\n    {\n      \"name\": \"vsigma\"\n    },\n    {\n      \"name\": \"vvarsigma\"\n    },\n    {\n      \"name\": \"vtau\"\n    },\n    {\n      \"name\": \"vupsilon\"\n    },\n    {\n      \"name\": \"vphi\"\n    },\n    {\n      \"name\": \"vvarphi\"\n    },\n    {\n      \"name\": \"vchi\"\n    },\n    {\n      \"name\": \"vpsi\"\n    },\n    {\n      \"name\": \"vomega\"\n    },\n    {\n      \"name\": \"vAlpha\"\n    },\n    {\n      \"name\": \"vBeta\"\n    },\n    {\n      \"name\": \"vGamma\"\n    },\n    {\n      \"name\": \"vDelta\"\n    },\n    {\n      \"name\": \"vEpsilon\"\n    },\n    {\n      \"name\": \"vZeta\"\n    },\n    {\n      \"name\": \"vEta\"\n    },\n    {\n      \"name\": \"vTheta\"\n    },\n    {\n      \"name\": \"vIota\"\n    },\n    {\n      \"name\": \"vKappa\"\n    },\n    {\n      \"name\": \"vLambda\"\n    },\n    {\n      \"name\": \"vMu\"\n    },\n    {\n      \"name\": \"vNu\"\n    },\n    {\n      \"name\": \"vOmicron\"\n    },\n    {\n      \"name\": \"vXi\"\n    },\n    {\n      \"name\": \"vPi\"\n    },\n    {\n      \"name\": \"vRho\"\n    },\n    {\n      \"name\": \"vSigma\"\n    },\n    {\n      \"name\": \"vTau\"\n    },\n    {\n      \"name\": \"vUpsilon\"\n    },\n    {\n      \"name\": \"vPhi\"\n    },\n    {\n      \"name\": \"vChi\"\n    },\n    {\n      \"name\": \"vPsi\"\n    },\n    {\n      \"name\": \"vOmega\"\n    },\n    {\n      \"name\": \"bbA\"\n    },\n    {\n      \"name\": \"bbB\"\n    },\n    {\n      \"name\": \"bbC\"\n    },\n    {\n      \"name\": \"bbD\"\n    },\n    {\n      \"name\": \"bbE\"\n    },\n    {\n      \"name\": \"bbF\"\n    },\n    {\n      \"name\": \"bbG\"\n    },\n    {\n      \"name\": \"bbH\"\n    },\n    {\n      \"name\": \"bbI\"\n    },\n    {\n      \"name\": \"bbJ\"\n    },\n    {\n      \"name\": \"bbK\"\n    },\n    {\n      \"name\": \"bbL\"\n    },\n    {\n      \"name\": \"bbM\"\n    },\n    {\n      \"name\": \"bbN\"\n    },\n    {\n      \"name\": \"bbO\"\n    },\n    {\n      \"name\": \"bbP\"\n    },\n    {\n      \"name\": \"bbQ\"\n    },\n    {\n      \"name\": \"bbR\"\n    },\n    {\n      \"name\": \"bbS\"\n    },\n    {\n      \"name\": \"bbT\"\n    },\n    {\n      \"name\": \"bbU\"\n    },\n    {\n      \"name\": \"bbV\"\n    },\n    {\n      \"name\": \"bbW\"\n    },\n    {\n      \"name\": \"bbX\"\n    },\n    {\n      \"name\": \"bbY\"\n    },\n    {\n      \"name\": \"bbZ\"\n    },\n    {\n      \"name\": \"enclspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"enclose{${1:ldelim}}{${2:arg}}{${3:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"enclose\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"enclose[${4:scale%keyvals}]{${1:ldelim}}{${2:arg}}{${3:rdelim}}\",\n        \"keys\": [\n          \"\\\\enclose#c,\\\\encloseSet#c,\\\\paren#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enclspacingSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encloseSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"encloseSet{${1:ldelim}}{${2:arg1}}{${3:mdelim}}{${4:arg2}}{${5:rdelim}}\"\n      }\n    },\n    {\n      \"name\": \"encloseSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"encloseSet[${6:scale%keyvals}]{${1:ldelim}}{${2:arg1}}{${3:mdelim}}{${4:arg2}}{${5:rdelim}}\",\n        \"keys\": [\n          \"\\\\enclose#c,\\\\encloseSet#c,\\\\paren#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"paren{${1:ldelim}}{${2:rdelim}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"paren[${4:scale%keyvals}]{${1:ldelim}}{${2:rdelim}}{${3:arg}}\",\n        \"keys\": [\n          \"\\\\enclose#c,\\\\encloseSet#c,\\\\paren#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathllap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrlap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathclap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathllapinternal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathllapinternal{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlapinternal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathrlapinternal{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mathclapinternal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathclapinternal{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mrepinternal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrepinternal{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"mrep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrep{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mrep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mrep[${3:align%keyvals}]{${1:arg1}}{${2:arg2}}\",\n        \"keys\": [\n          \"\\\\mrep\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathsemantics-syntax#c\": [\n      \"shortbb\"\n    ],\n    \"\\\\enclose#c,\\\\encloseSet#c,\\\\paren#c\": [\n      \"big\",\n      \"Big\",\n      \"bigg\",\n      \"Bigg\",\n      \"auto\",\n      \"none\"\n    ],\n    \"\\\\mrep\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathsemantics-syntax#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathsemantics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathsemantics-commons\"\n    },\n    {\n      \"name\": \"mathsemantics-syntax\"\n    },\n    {\n      \"name\": \"mathsemantics-abbreviations\"\n    },\n    {\n      \"name\": \"mathsemantics-names\"\n    },\n    {\n      \"name\": \"mathsemantics-semantic\"\n    },\n    {\n      \"name\": \"mathsemantics-manifolds\"\n    },\n    {\n      \"name\": \"mathsemantics-optimization\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"C\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"K\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"shortbb\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"shortbb\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathsemantics#c\": [\n      \"shortbb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathsemantics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathspec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"MnSymbol\",\n      \"if\": \"MnSymbol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmathsfont\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"setmathsfont(${2:sets}){${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsfont\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"setmathsfont(${3:sets})[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setallmainfonts,\\\\setprimaryfont\",\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"setmathfont(${2:sets}){${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"setmathfont(${3:sets})[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setallmainfonts,\\\\setprimaryfont\",\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathrm{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathrm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathrm[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathsf{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathsf[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathtt{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathtt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathtt[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathcal{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathcal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathcal[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathbb{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathbb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathbb[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathfrak{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfrak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathfrak[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setallmainfonts\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"setallmainfonts(${2:sets}){${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setallmainfonts\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"setallmainfonts(${3:sets})[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setallmainfonts,\\\\setprimaryfont\",\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setprimaryfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setprimaryfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setprimaryfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setprimaryfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setallmainfonts,\\\\setprimaryfont\",\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setallsansfonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallsansfonts{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setallsansfonts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setallsansfonts[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setallmonofonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallmonofonts{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setallmonofonts\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setallmonofonts[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exchangeforms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exchangeforms{${1:list%keyvals}}\",\n        \"keys\": [\n          \"\\\\exchangeforms,\\\\normalisevarforms,\\\\normalizevarforms\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"normalisevarforms\"\n    },\n    {\n      \"name\": \"normalisevarforms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalisevarforms[${1:list%keyvals}]\",\n        \"keys\": [\n          \"\\\\exchangeforms,\\\\normalisevarforms,\\\\normalizevarforms\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"normalizevarforms\"\n    },\n    {\n      \"name\": \"normalizevarforms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalizevarforms[${1:list%keyvals}]\",\n        \"keys\": [\n          \"\\\\exchangeforms,\\\\normalisevarforms,\\\\normalizevarforms\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setminwhitespace\"\n    },\n    {\n      \"name\": \"setminwhitespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setminwhitespace[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"themkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ernewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ernewcommand{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathspec#c\": [\n      \"normalskips\",\n      \"math\",\n      \"no-math\",\n      \"MnSymbol\",\n      \"tuenc\",\n      \"euenc\",\n      \"config\",\n      \"no-config\",\n      \"quiet\",\n      \"silent\"\n    ],\n    \"\\\\setmathsfont,\\\\setmathfont,\\\\setallmainfonts,\\\\setprimaryfont\": [\n      \"Uppercase=${1|Regular,Italic,PLain|}\",\n      \"Lowercase=${1|Regular,Italic,PLain|}\",\n      \"Arabic=${1|Regular,Italic,PLain|}\"\n    ],\n    \"\\\\setmathsfont,\\\\setmathfont,\\\\setmathrm,\\\\setmathsf,\\\\setmathtt,\\\\setmathcal,\\\\setmathbb,\\\\setmathfrak,\\\\setallmainfonts,\\\\setprimaryfont,\\\\setallsansfonts,\\\\setallmonofonts\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,Lowercase,Lining,OldStyle,Proportional,Monospaced,SlashedZero,Arabic,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ],\n    \"\\\\exchangeforms,\\\\normalisevarforms,\\\\normalizevarforms\": [\n      \"beta\",\n      \"epsilon\",\n      \"theta\",\n      \"kappa\",\n      \"pi\",\n      \"rho\",\n      \"phi\",\n      \"Theta\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathspec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathstone.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathversion{${1:version%keyvals}}\",\n        \"keys\": [\n          \"\\\\mathversion#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsb{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mathversion#c\": [\n      \"normal\",\n      \"bold\",\n      \"semibold\",\n      \"sans\",\n      \"sanssb\",\n      \"sansb\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathstyle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathstyledenom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentmathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fracstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genfrac\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"genfrac{${1:left-delim}}{${2:right-delim}}{${3:thickness%l}}{${4:mathstyle}}{${5:numerator}}{${6:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"dfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"tfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"binom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"binom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"tbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"dbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dbinom{${1:above}}{${2:below}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathstyle#c\": [\n      \"mathactivechars\",\n      \"activechars\",\n      \"noactivechars\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathstyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathswap.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"commaswap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commaswap{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"dotswap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotswap{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"mathswapon\"\n    },\n    {\n      \"name\": \"mathswapoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mathtime.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"greekshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enablesubscriptcorrection\"\n    },\n    {\n      \"name\": \"disablesubscriptcorrection\"\n    },\n    {\n      \"name\": \"heavymath\"\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varXi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"comp\"\n    },\n    {\n      \"name\": \"setdif\"\n    },\n    {\n      \"name\": \"cupprod\"\n    },\n    {\n      \"name\": \"capprod\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mathtime#c\": [\n      \"slantedgreek\",\n      \"uprightgreek\",\n      \"nobold\",\n      \"cmbold\",\n      \"mtbold\",\n      \"heavybold\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"cmcal\",\n      \"lucidacal\",\n      \"mtplusscr\",\n      \"mtpluscal\",\n      \"lucidascr\",\n      \"noTS1\",\n      \"OT1\",\n      \"T1\",\n      \"LY1\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathtime#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mathtools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"mhsetup\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathtoolsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtoolsset{${1:options}}\",\n        \"keys\": [\n          \"\\\\mathtoolsset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathllap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathllap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathrlap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrlap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmbox{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathclap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathclap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mathmakebox[${2:width}][${3:pos}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mathmakebox[${2:width}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"mathmakebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmakebox{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"cramped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cramped[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"cramped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cramped{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedllap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedllap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedllap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedrlap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedrlap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedrlap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"crampedclap[${2:mathstyle}]{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedclap{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"crampedsubstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crampedsubstack{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"smashoperator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smashoperator[${2:pos%keyvals}]{${1:operator with limits}}\",\n        \"keys\": [\n          \"\\\\smashoperator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smashoperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smashoperator{${1:operator with limits}}\"\n      }\n    },\n    {\n      \"name\": \"adjustlimits\",\n      \"arg\": {\n        \"format\": \"{}_{}{}_{}\",\n        \"snippet\": \"adjustlimits{${1:operator1}}_{${2:limit1}}{${3:operator2}}_{${4:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"SwapAboveDisplaySkip\"\n    },\n    {\n      \"name\": \"newtagform\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newtagform{${1:name}}[${4:inner format}]{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"newtagform\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtagform{${1:name}}{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewtagform\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewtagform{${1:name}}[${4:inner format}]{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewtagform\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewtagform{${1:name}}{${2:left}}{${3:right}}\"\n      }\n    },\n    {\n      \"name\": \"usetagform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetagform{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refeq{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"noeqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noeqref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLeftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLeftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xhookleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xhookleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xmapsto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmapsto{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xmapsto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmapsto[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xRightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xRightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xRightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xRightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLeftrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLeftrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLeftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xhookrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xhookrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xhookrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightharpoondown{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoondown\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightharpoondown[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftharpoondown{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoondown\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftharpoondown[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightleftharpoons{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightleftharpoons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightleftharpoons[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrightharpoonup{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xrightharpoonup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xrightharpoonup[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftharpoonup{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftharpoonup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftharpoonup[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightharpoons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xleftrightharpoons{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xleftrightharpoons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xleftrightharpoons[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongrightarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongrightarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlongleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xlongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xlongleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xLongleftarrow{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"xLongleftarrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xLongleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"underbracket[${2:rule thickness}][${3:bracket height}]{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"underbracket[${2:rule thickness}]{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"overbracket[${2:rule thickness}][${3:bracket height}]{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"overbracket[${2:rule thickness}]{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"LaTeXunderbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaTeXunderbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXoverbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaTeXoverbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"newgathered\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newgathered{${1:envname}}{${2:pre line}}{${3:post line}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"renewgathered\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewgathered{${1:envname}}{${2:pre line}}{${3:post line}}{${4:after}}\"\n      }\n    },\n    {\n      \"name\": \"MultlinedHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveleft{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveleft\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shoveleft[${2:dimen}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shoveright{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shoveright\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shoveright[${2:dimen}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MoveEqLeft\"\n    },\n    {\n      \"name\": \"MoveEqLeft\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MoveEqLeft[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"Aboxed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aboxed{${1:left hand side & right hand side}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowBetweenLines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowBetweenLines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ArrowBetweenLines[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"ArrowBetweenLines*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArrowBetweenLines*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ArrowBetweenLines*[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"vdotswithin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vdotswithin{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"shortvdotswithin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortvdotswithin{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"shortvdotswithin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortvdotswithin*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"MTFlushSpaceAbove\"\n    },\n    {\n      \"name\": \"MTFlushSpaceBelow\"\n    },\n    {\n      \"name\": \"origjot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortintertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortintertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiter{${1:cmd}}{${2:left delim%formula}}{${3:right delim%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiterX\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiterX{${1:cmd}}[${5:args}]{${2:left delim%formula}}{${3:right delim%formula}}{${4:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePairedDelimiterXPP\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}\",\n        \"snippet\": \"DeclarePairedDelimiterXPP{${1:cmd}}[${7:args}]{${2:pre code%formula}}{${3:left delim%formula}}{${4:right delim%formula}}{${5:post code%formula}}{${6:body%formula}}\"\n      }\n    },\n    {\n      \"name\": \"reDeclarePairedDelimiterInnerWrapper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reDeclarePairedDelimiterInnerWrapper{${1:cmd}}{${2:star option%keyvals}}{${3:code%definition}}\",\n        \"keys\": [\n          \"\\\\reDeclarePairedDelimiterInnerWrapper\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"vcentcolon\"\n    },\n    {\n      \"name\": \"ordinarycolon\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"dblcolon\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"approxcolon\"\n    },\n    {\n      \"name\": \"Approxcolon\"\n    },\n    {\n      \"name\": \"simcolon\"\n    },\n    {\n      \"name\": \"Simcolon\"\n    },\n    {\n      \"name\": \"colondash\"\n    },\n    {\n      \"name\": \"Colondash\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"Dashcolon\"\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"prescript\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"prescript{${1:sup}}{${2:sub}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"splitfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splitfrac{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"splitdfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splitdfrac{${1:numer}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"xmathstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmathstrut{${1:increase}}\"\n      }\n    },\n    {\n      \"name\": \"xmathstrut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmathstrut[${2:depth increase}]{${1:increase}}\"\n      }\n    },\n    {\n      \"name\": \"newcases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newcases{${1:envname}}{${2:sep}}{${3:preamble}}{${4:left}}{${5:right}}\"\n      }\n    },\n    {\n      \"name\": \"renewcases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewcases{${1:envname}}{${2:sep}}{${3:preamble}}{${4:left}}{${5:right}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"crampedsubarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:col}}\"\n      }\n    },\n    {\n      \"name\": \"dcases\"\n    },\n    {\n      \"name\": \"dcases*\"\n    },\n    {\n      \"name\": \"rcases\"\n    },\n    {\n      \"name\": \"rcases*\"\n    },\n    {\n      \"name\": \"drcases\"\n    },\n    {\n      \"name\": \"drcases*\"\n    },\n    {\n      \"name\": \"cases*\"\n    },\n    {\n      \"name\": \"matrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"pmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"bmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Bmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"vmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Vmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"smallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"psmallmatrix\"\n    },\n    {\n      \"name\": \"psmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"bsmallmatrix\"\n    },\n    {\n      \"name\": \"bsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Bsmallmatrix\"\n    },\n    {\n      \"name\": \"Bsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"vsmallmatrix\"\n    },\n    {\n      \"name\": \"vsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"Vsmallmatrix\"\n    },\n    {\n      \"name\": \"Vsmallmatrix*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:col}]\"\n      }\n    },\n    {\n      \"name\": \"spreadlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"lgathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"rgathered\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"multlined\"\n    },\n    {\n      \"name\": \"multlined\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:pos}][${2:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mathtools#c\": [\n      \"fixamsmath\",\n      \"donotfixamsmathbugs\",\n      \"allowspaces\",\n      \"disallowspaces\",\n      \"legacycolonsymbols\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\mathtoolsset\": [\n      \"showonlyrefs\",\n      \"showmanualtags\",\n      \"original-intertext\",\n      \"original-shortintertext\",\n      \"mathic\",\n      \"above-intertext-sep=\",\n      \"below-intertext-sep=\",\n      \"above-shortintertext-sep=\",\n      \"below-shortintertext-sep=\",\n      \"smallmatrix-align=${1|c,l,r|}\",\n      \"smallmatrix-inner-space=\",\n      \"firstline-afterskip=\",\n      \"lastline-preskip=\",\n      \"multlined-width=\",\n      \"multlined-pos=${1|c,b,t|}\",\n      \"centercolon\",\n      \"prescript-sup-format=${1:cmd}\",\n      \"prescript-sub-format=${1:cmd}\",\n      \"prescript-arg-format=${1:cmd}\",\n      \"shortvdotsadjustabove=\",\n      \"shortvdotsadjustbelow=\"\n    ],\n    \"\\\\smashoperator\": [\n      \"l\",\n      \"r\",\n      \"lr\",\n      \"rl\"\n    ],\n    \"\\\\reDeclarePairedDelimiterInnerWrapper\": [\n      \"star\",\n      \"nostarnonscaled\",\n      \"nostarscaled\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mathtools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/matlab-prettifier.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mlplaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlplaceholder{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"mlttfamily\"\n    },\n    {\n      \"name\": \"mleditorphstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlbwphstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlpyglikephstyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/matlab-prettifier#c\": [\n      \"framed\",\n      \"numbered\",\n      \"draft\",\n      \"final\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline\": [\n      \"style=Matlab-editor\",\n      \"style=Matlab-bw\",\n      \"style=Matlab-Pyglike\",\n      \"mlkeywordstyle=${1:style}\",\n      \"mllastelementstyle=${1:style}\",\n      \"mloverride\",\n      \"mlstringstyle=${1:style}\",\n      \"mlcommentstyle=${1:style}\",\n      \"mlsectiontitlestyle=${1:style}\",\n      \"mlshowsectionrules\",\n      \"mlsectionrulethickness=${1:number}\",\n      \"mlsectionrulecolor=\",\n      \"mlsyscomstyle=${1:style}\",\n      \"mlsharedvars=${1:list of variables}\",\n      \"mlmoresharedvars=${1:list of variables}\",\n      \"mldeletesharedvars=${1:list of variables}\",\n      \"mlsharedvarstyle=${1:style}\",\n      \"mlunquotedstringdelim={${1:opening delim}}{${2:closing delim}}\",\n      \"mlplaceholderstyle=${1:style}\",\n      \"mlscaleinline\",\n      \"mlonlyheader\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/matlab-prettifier#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mattens.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"aS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aS{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aS*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aS[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aS*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aS*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sa{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sa*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sa*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sa[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sa*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sa*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bS{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bS*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bS[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bS*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bS*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sb{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sb*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sb[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Sb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sb*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aSa{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSa*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aSa*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aSa[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSa*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aSa*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aSb{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aSb*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aSb[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aSb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aSb*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bSa{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSa*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bSa*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bSa[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSa*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bSa*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bSb{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bSb*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bSb[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bSb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bSb*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aCSa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aCSa{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aCSa*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aCSa*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aCSa\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aCSa[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"aCSa*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aCSa*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bCSb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bCSb{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bCSb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bCSb*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bCSb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bCSb[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"bCSb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bCSb*[${2:accent}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymbFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSymbFont{${1:font command}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymbStrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSymbStrut{${1:strut}}\"\n      }\n    },\n    {\n      \"name\": \"SetArrowSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetArrowSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetBarSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBarSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymSubSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSymSubSkip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetSymSupSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSymSupSkip{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mattens#c\": [\n      \"noformat\",\n      \"mathstrut\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mattens#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mattex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"collcell\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Mset\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Mset{${1:varname}}{${2:significand}}{${3:error}}{${4:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"Mset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Mset{${1:varname}}{${2:significand}}{${3:error}}\"\n      }\n    },\n    {\n      \"name\": \"Mset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mset{${1:varname}}{${2:significand}}\"\n      }\n    },\n    {\n      \"name\": \"Mval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mval{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"Merr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Merr{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"Mnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mnum{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"MSI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MSI{${1:varname}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"M\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"M{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"Mvallit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mvallit{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"Merrlit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Merrlit{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"preparematrix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"preparematrix{${1:varname}}{${2:rows}}{${3:columns}}\"\n      }\n    },\n    {\n      \"name\": \"usematrix\"\n    },\n    {\n      \"name\": \"header\"\n    },\n    {\n      \"name\": \"noheader\"\n    },\n    {\n      \"name\": \"mtdirectory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabMval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabMval{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"tabMnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabMnum{${1:varname}}\"\n      }\n    },\n    {\n      \"name\": \"tabMerr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabMerr{${1:varname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/maybemath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"bm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"maybebmsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybebmsf{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maybebm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybebm{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maybeitrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybeitrm{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maybeitsubscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybeitsubscript{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maybeit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybeit{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"mayberm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mayberm{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"maybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maybesf{${1:expr%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/maze.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"maze\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maze{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"maze\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"maze{${1:size}}[${2:seed}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mbboard.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bbfamily\"\n    },\n    {\n      \"name\": \"textbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"bbAlpha\"\n    },\n    {\n      \"name\": \"bbBeta\"\n    },\n    {\n      \"name\": \"bbChi\"\n    },\n    {\n      \"name\": \"bbDelta\"\n    },\n    {\n      \"name\": \"bbEpsilon\"\n    },\n    {\n      \"name\": \"bbEta\"\n    },\n    {\n      \"name\": \"bbGamma\"\n    },\n    {\n      \"name\": \"bbIota\"\n    },\n    {\n      \"name\": \"bbKappa\"\n    },\n    {\n      \"name\": \"bbLambda\"\n    },\n    {\n      \"name\": \"bbMu\"\n    },\n    {\n      \"name\": \"bbNu\"\n    },\n    {\n      \"name\": \"bbOmega\"\n    },\n    {\n      \"name\": \"bbOmicron\"\n    },\n    {\n      \"name\": \"bbPhi\"\n    },\n    {\n      \"name\": \"bbPi\"\n    },\n    {\n      \"name\": \"bbPsi\"\n    },\n    {\n      \"name\": \"bbRho\"\n    },\n    {\n      \"name\": \"bbSigma\"\n    },\n    {\n      \"name\": \"bbTau\"\n    },\n    {\n      \"name\": \"bbTheta\"\n    },\n    {\n      \"name\": \"bbUpsilon\"\n    },\n    {\n      \"name\": \"bbXi\"\n    },\n    {\n      \"name\": \"bbZeta\"\n    },\n    {\n      \"name\": \"bbaleph\"\n    },\n    {\n      \"name\": \"bbalpha\"\n    },\n    {\n      \"name\": \"bbayin\"\n    },\n    {\n      \"name\": \"bbbackslash\"\n    },\n    {\n      \"name\": \"bbbeta\"\n    },\n    {\n      \"name\": \"bbbeth\"\n    },\n    {\n      \"name\": \"bbcent\"\n    },\n    {\n      \"name\": \"bbchi\"\n    },\n    {\n      \"name\": \"bbcoprod\"\n    },\n    {\n      \"name\": \"bbdagesh\"\n    },\n    {\n      \"name\": \"bbdalet\"\n    },\n    {\n      \"name\": \"bbdelta\"\n    },\n    {\n      \"name\": \"bbdigamma\"\n    },\n    {\n      \"name\": \"bbdollar\"\n    },\n    {\n      \"name\": \"bbepsilon\"\n    },\n    {\n      \"name\": \"bbeta\"\n    },\n    {\n      \"name\": \"bbeuro\"\n    },\n    {\n      \"name\": \"bbfinalkaf\"\n    },\n    {\n      \"name\": \"bbfinalmem\"\n    },\n    {\n      \"name\": \"bbfinalnun\"\n    },\n    {\n      \"name\": \"bbfinalpe\"\n    },\n    {\n      \"name\": \"bbfinaltzadik\"\n    },\n    {\n      \"name\": \"bbgamma\"\n    },\n    {\n      \"name\": \"bbgimmel\"\n    },\n    {\n      \"name\": \"bbhe\"\n    },\n    {\n      \"name\": \"bbhet\"\n    },\n    {\n      \"name\": \"bbiota\"\n    },\n    {\n      \"name\": \"bbkaf\"\n    },\n    {\n      \"name\": \"bbkappa\"\n    },\n    {\n      \"name\": \"bblambda\"\n    },\n    {\n      \"name\": \"bblamed\"\n    },\n    {\n      \"name\": \"bblangle\"\n    },\n    {\n      \"name\": \"bblbrace\"\n    },\n    {\n      \"name\": \"bblbrack\"\n    },\n    {\n      \"name\": \"bbmem\"\n    },\n    {\n      \"name\": \"bbmho\"\n    },\n    {\n      \"name\": \"bbmu\"\n    },\n    {\n      \"name\": \"bbnabla\"\n    },\n    {\n      \"name\": \"bbnu\"\n    },\n    {\n      \"name\": \"bbnun\"\n    },\n    {\n      \"name\": \"bbomega\"\n    },\n    {\n      \"name\": \"bbomicron\"\n    },\n    {\n      \"name\": \"bbpe\"\n    },\n    {\n      \"name\": \"bbphi\"\n    },\n    {\n      \"name\": \"bbpi\"\n    },\n    {\n      \"name\": \"bbpound\"\n    },\n    {\n      \"name\": \"bbpsi\"\n    },\n    {\n      \"name\": \"bbqof\"\n    },\n    {\n      \"name\": \"bbrangle\"\n    },\n    {\n      \"name\": \"bbrbrace\"\n    },\n    {\n      \"name\": \"bbrbrack\"\n    },\n    {\n      \"name\": \"bbresh\"\n    },\n    {\n      \"name\": \"bbrho\"\n    },\n    {\n      \"name\": \"bbsamekh\"\n    },\n    {\n      \"name\": \"bbshin\"\n    },\n    {\n      \"name\": \"bbsigma\"\n    },\n    {\n      \"name\": \"bbslash\"\n    },\n    {\n      \"name\": \"bbslashSigma\"\n    },\n    {\n      \"name\": \"bbslashlambda\"\n    },\n    {\n      \"name\": \"bbslashnabla\"\n    },\n    {\n      \"name\": \"bbtau\"\n    },\n    {\n      \"name\": \"bbtav\"\n    },\n    {\n      \"name\": \"bbtet\"\n    },\n    {\n      \"name\": \"bbtheta\"\n    },\n    {\n      \"name\": \"bbtzadik\"\n    },\n    {\n      \"name\": \"bbupsilon\"\n    },\n    {\n      \"name\": \"bbvarepsilon\"\n    },\n    {\n      \"name\": \"bbvarkappa\"\n    },\n    {\n      \"name\": \"bbvarphi\"\n    },\n    {\n      \"name\": \"bbvarpi\"\n    },\n    {\n      \"name\": \"bbvarrho\"\n    },\n    {\n      \"name\": \"bbvarsigma\"\n    },\n    {\n      \"name\": \"bbvartheta\"\n    },\n    {\n      \"name\": \"bbvav\"\n    },\n    {\n      \"name\": \"bbvert\"\n    },\n    {\n      \"name\": \"bbxi\"\n    },\n    {\n      \"name\": \"bbyen\"\n    },\n    {\n      \"name\": \"bbyod\"\n    },\n    {\n      \"name\": \"bbzayin\"\n    },\n    {\n      \"name\": \"bbzeta\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mboxfill.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mboxfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mboxfill{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"mboxfill\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mboxfill[${2:width}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"mboxfill\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"mboxfill[${2:width}][${3:leader type%keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\mboxfill\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mboxfill\": [\n      \"x\",\n      \"c\",\n      \"s\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mcaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"margincapsep\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"margincap\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mcaption#c\": [\n      \"bottom\",\n      \"top\",\n      \"v2.2\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mcaption#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mcexam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"newfile\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mctheversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcexamoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcexamoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mcexamoptions,\\\\usepackage/mcexam#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"question[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\question\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"answer\"\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"answer[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"answer{${1:n}}{${2:answer}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"answer[${3:mark}]{${1:n}}{${2:answer}}\"\n      }\n    },\n    {\n      \"name\": \"answernum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answernum{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"mcifoutput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcifoutput{${1:output type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\mcifoutput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcifoutput\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mcifoutput[${3:versions}]{${1:output type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\mcifoutput\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mcsetupConcept\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcsetupConcept{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcsetupExam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcsetupExam{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcsetupKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcsetupKey{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcsetupAnswers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcsetupAnswers{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcsetupAnalysis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcsetupAnalysis{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcversionlabelfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcquestionlabelfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcanswerlabelfmt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mcquestions\"\n    },\n    {\n      \"name\": \"mcanswerslist\"\n    },\n    {\n      \"name\": \"mcanswerslist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mcanswerslist}#c,\\\\begin{mcanswers}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcanswers\"\n    },\n    {\n      \"name\": \"mcanswers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mcanswerslist}#c,\\\\begin{mcanswers}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcquestioninstruction\"\n    },\n    {\n      \"name\": \"mcexplanation\"\n    },\n    {\n      \"name\": \"mcnotes\"\n    },\n    {\n      \"name\": \"mcquestions\",\n      \"if\": \"writeRfile=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:R file ext}]\"\n      }\n    },\n    {\n      \"name\": \"mcquestions\",\n      \"if\": \"writeRfile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:R file ext}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\mcexamoptions,\\\\usepackage/mcexam#c\": [\n      \"output=${1|concept,exam,key,answers,analysis|}\",\n      \"numberofversions=${1:integer}\",\n      \"version=${1:integer}\",\n      \"seed=${1:integer}\",\n      \"randomizequestions\",\n      \"randomizeanswers\",\n      \"writeRfile\"\n    ],\n    \"\\\\question\": [\n      \"follow\"\n    ],\n    \"\\\\begin{mcanswerslist}#c,\\\\begin{mcanswers}#c\": [\n      \"permuteall\",\n      \"ordinal\",\n      \"fixlast\",\n      \"permutenone\"\n    ],\n    \"\\\\mcifoutput\": [\n      \"concept\",\n      \"exam\",\n      \"key\",\n      \"answers\",\n      \"analysis\"\n    ],\n    \"\\\\mcsetupConcept,\\\\mcsetupExam,\\\\mcsetupKey,\\\\mcsetupAnswers,\\\\mcsetupAnalysis\": [\n      \"showPerVersion\",\n      \"showQuestionPermutationtable\",\n      \"showQuestionsAnalysis\",\n      \"showQuestionList\",\n      \"showCorrectAnswers\",\n      \"showAnswerPoints\",\n      \"showExplanation\",\n      \"showAnswerPermutationTable\",\n      \"showAnswersAnalysis\",\n      \"showNotes\",\n      \"showKeytable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\mcexamoptions,\\\\usepackage/mcexam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mciteplus.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifmciteErrorOnUnknown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteErrorOnUnknowntrue\"\n    },\n    {\n      \"name\": \"mciteErrorOnUnknownfalse\"\n    },\n    {\n      \"name\": \"mcitedefaultmidpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultendpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultseppunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteSetBstMidEndSepPunct\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetBstMidEndSepPunct{${1:middle punct}}{${2:end punct}}{${3:sep punct}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSetMidEndSepPunct\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetMidEndSepPunct{${1:middle punct}}{${2:end punct}}{${3:sep punct}}\"\n      }\n    },\n    {\n      \"name\": \"mcitebstendpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteendpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstmidpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemidpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstseppunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteseppunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themcitebibitemcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themcitesubitemcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteResetBibitemCount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteResetBibitemCountfalse\"\n    },\n    {\n      \"name\": \"mciteResetBibitemCounttrue\"\n    },\n    {\n      \"name\": \"mciteSetBstSublistMode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteSetBstSublistMode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstSublistMode,\\\\mciteSetSublistMode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mciteSetSublistMode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteSetSublistMode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstSublistMode,\\\\mciteSetSublistMode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcitedefaultsublistlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultsublistbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultsublistend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteSetBstSublistLabelBeginEnd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetBstSublistLabelBeginEnd{${1:label}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSetSublistLabelBeginEnd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetSublistLabelBeginEnd{${1:label}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"mcitebstsublistbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstsublistend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitesublistbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitesublistend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstsublistlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitesublistlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteSubRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteSubRef{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSubRef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mciteSubRef[${2:track ID}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSubPageRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteSubPageRef{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSubPageRef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mciteSubPageRef[${2:track ID}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mcitesubrefform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBibitemArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBibitemOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteBibitemOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBibitemOptArgItrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBibitemOptArgIfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteCurheadBibitemOp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemOptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemOpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteorgbibsamplelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebibsamplelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultmaxwidthbibitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultmaxwidthsubitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultmaxwidthbibitemforminit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitedefaultmaxwidthsubitemforminit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteSetBstMaxWidthForm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mciteSetBstMaxWidthForm{${1:type%keyvals}}{${2:form}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstMaxWidthForm,\\\\mciteSetMaxWidthForm\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mciteSetBstMaxWidthForm\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mciteSetBstMaxWidthForm[${3:init}]{${1:type%keyvals}}{${2:form}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstMaxWidthForm,\\\\mciteSetMaxWidthForm\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mciteSetMaxWidthForm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mciteSetMaxWidthForm{${1:type%keyvals}}{${2:form}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstMaxWidthForm,\\\\mciteSetMaxWidthForm\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mciteSetMaxWidthForm\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mciteSetMaxWidthForm[${3:init}]{${1:type%keyvals}}{${2:form}}\",\n        \"keys\": [\n          \"\\\\mciteSetBstMaxWidthForm,\\\\mciteSetMaxWidthForm\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mcitebstmaxwidthbibitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstmaxwidthsubitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstmaxwidthbibitemforminit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebstmaxwidthsubitemforminit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxwidthbibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxwidthsubitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxwidthbibitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxwidthsubitemform\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxcountbibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitemaxcountsubitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndOfBibitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteOrgcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteOrgcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteOrgcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mciteOrgcite[${2:add. text}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteOrgnocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteOrgnocite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteOrgnocite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mciteOrgnocite[${2:add. text}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"mciteOrgbibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteOrgbibitem{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"mciteOrgbibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mciteOrgbibitem[${2:label}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"mcitetrackID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebibtrackID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteauxout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebibauxout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mciteCiteA{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]{}\",\n        \"snippet\": \"mciteCiteA{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${7:opt1}]{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]{}\",\n        \"snippet\": \"mciteCiteA{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${7:opt1}][${8:opt2}]{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteA*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mciteCiteA*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteA*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]{}\",\n        \"snippet\": \"mciteCiteA*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${7:opt1}]{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteA*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]{}\",\n        \"snippet\": \"mciteCiteA*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${7:opt1}][${8:opt2}]{${6:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"mciteCiteB{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]{}{}\",\n        \"snippet\": \"mciteCiteB{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${8:opt1}]{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]{}{}\",\n        \"snippet\": \"mciteCiteB{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${8:opt1}][${9:opt2}]{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"mciteCiteB*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]{}{}\",\n        \"snippet\": \"mciteCiteB*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${8:opt1}]{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCiteB*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][]{}{}\",\n        \"snippet\": \"mciteCiteB*{${1:aux out}}{${2:track ID}}{${3:prehandler}}{${4:posthandler}}{${5:fwd}}[${8:opt1}][${9:opt2}]{${6:sec ID}}{${7:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteCitePrehandlerArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCitePosthandlerArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteSecIDArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteFwdArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteOptArgII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteDoList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteDoList{${1:aux out}}{${2:track ID}}{${3:cite list}}\"\n      }\n    },\n    {\n      \"name\": \"mciteExtraDoLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteAuxArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteTrackArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteListArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteheadlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteFwdCiteListArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBIBdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBIBenddecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitefwdBIBdecl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteBstWouldAddEndPunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteCiteStarFwdArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteCurheadBibitemOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteMacroOptArgI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteMacroOptArgII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmciteMacroStarForm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcitebibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcitebibitem[${2:label}]{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"mcitebibitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcitebibitem{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"mciteBstWouldAddEndPunctfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteBstWouldAddEndPuncttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteStarFwdArgfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCiteStarFwdArgtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemOptArgIfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteCurheadBibitemOptArgItrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteEndOfBibGroupPostsubcloseHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteEndOfBibGroupPresubcloseHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteGetMaxCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteGetMaxCount{${1:track ID}}{${2:type}}{${3:out macro}}\"\n      }\n    },\n    {\n      \"name\": \"mciteGetMaxWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteGetMaxWidth{${1:track ID}}{${2:type}}{${3:out macro}}\"\n      }\n    },\n    {\n      \"name\": \"mciteMacroOptArgIfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteMacroOptArgIIfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteMacroOptArgIItrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteMacroOptArgItrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteMacroStarFormfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteMacroStarFormtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mciteOrgbibliography\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mciteOrgbibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSetMaxCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetMaxCount{${1:track ID}}{${2:type}}{${3:count}}\"\n      }\n    },\n    {\n      \"name\": \"mciteSetMaxWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mciteSetMaxWidth{${1:track ID}}{${2:type}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"mcitethebibliographyHook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mcitethebibliography\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mciteplus#c\": [\n      \"chapterbibrootbib\",\n      \"debug\",\n      \"nohooks\"\n    ],\n    \"\\\\mciteSetBstSublistMode,\\\\mciteSetSublistMode\": [\n      \"d\",\n      \"n\",\n      \"s\",\n      \"b\",\n      \"f\",\n      \"h\"\n    ],\n    \"\\\\mciteSetBstMaxWidthForm,\\\\mciteSetMaxWidthForm\": [\n      \"bibitem\",\n      \"subitem\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mciteplus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcode{${1:Matlab code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mcodefn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcodefn{${1:Matlab code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"lstbasicfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcommentfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lbreakdots\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mcode#c\": [\n      \"bw\",\n      \"numbered\",\n      \"final\",\n      \"autolinebreaks\",\n      \"useliterate\",\n      \"framed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mcode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mdframed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"TikZ\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=pgf\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"framemethod=1\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"PSTricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=pstricks\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=ps\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=postscript\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"framemethod=2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newmdenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmdenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newmdenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newmdenv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewmdenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewmdenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"renewmdenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"renewmdenv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"surroundwithmdframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"surroundwithmdframed{${1:env}}\"\n      }\n    },\n    {\n      \"name\": \"surroundwithmdframed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"surroundwithmdframed[${2:options%keyvals}]{${1:env}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdflength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdflength{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mdflength\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfdefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdfdefinestyle{${1:style name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mdfapptodefinestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdfapptodefinestyle{${1:style name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mdfsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsubtitle{${1:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"mdfsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdfsubtitle[${2:options%keyvals}]{${1:subtitle}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdfsubsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfsubsubtitle{${1:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"mdfsubsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mdfsubsubtitle[${2:options%keyvals}]{${1:subtitle}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}[${4:numbered like}]{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"newmdtheoremenv[${3:options%keyvals}]{${1:envname}}{${2:caption}}[${4:within}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newmdtheoremenv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newmdtheoremenv{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}[${4:numbered like}]{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"mdtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}[${4:within}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"mdtheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdtheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"mdtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"mdtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"mdfsplitboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsplitboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframetitleboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdffootnoteboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdftotallinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxtotalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfboundingboxtotalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsubtitleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfsubsubtitleheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themdfcountframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdfframedtitleenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdfframedtitleenv{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"mdframed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mdframed#c\": [\n      \"xcolor\",\n      \"framemethod=${1|default,tex,latex,none,0,tikx,pgf,1,pstricks,ps,postscript,2|}\"\n    ],\n    \"\\\\begin{mdframed},\\\\newmdenv,\\\\renewmdenv,\\\\surroundwithmdframed,\\\\mdfsetup,\\\\mmdfdefinestyle,\\\\mdfapptodefinestyle,\\\\mdfsubtitle,\\\\mdfsubsubtitle,\\\\newmdtheoremenv,\\\\mdtheorem\": [\n      \"extratopheight=\",\n      \"footenotedistance=\",\n      \"frametitleaboveskip=\",\n      \"frametitlebelowskip=\",\n      \"frametitleleftmargin=\",\n      \"frametitlerightmargin=\",\n      \"frametitlerulewidth=\",\n      \"innerbottommargin=\",\n      \"innerleftmargin=\",\n      \"innerlinewidth=\",\n      \"innermargin=\",\n      \"innerrightmargin=\",\n      \"innertopmargin=\",\n      \"leftmargin=\",\n      \"linewidth=\",\n      \"middlelinewidth=\",\n      \"needspace=\",\n      \"outerlinewidth=\",\n      \"outermargin=\",\n      \"rightmargin=\",\n      \"roundcorner=\",\n      \"shadowsize=\",\n      \"skipabove=\",\n      \"skipbelow=\",\n      \"splitbottomskip=\",\n      \"splittopskip=\",\n      \"subsubtitleabovelinewidth=\",\n      \"subsubtitleaboveskip=\",\n      \"subsubtitlebelowlinewidth=\",\n      \"subsubtitlebelowskip=\",\n      \"subsubtitleinneraboveskip=\",\n      \"subsubtitleinnerbelowskip=\",\n      \"subtitleabovelinewidth=\",\n      \"subtitleaboveskip=\",\n      \"subtitlebelowlinewidth=\",\n      \"subtitlebelowskip=\",\n      \"subtitleinneraboveskip=\",\n      \"subtitleinnerbelowskip=\",\n      \"userdefinedwidth=\",\n      \"afterbreak=${1:code}\",\n      \"afterlastframe=${1:code}\",\n      \"aftersingleframe=${1:code}\",\n      \"alignment=\",\n      \"backgroundcolor=\",\n      \"beforebreak=${1:code}\",\n      \"beforelastframe=${1:code}\",\n      \"beforesingleframe=${1:code}\",\n      \"defaultunit=${1|pt,bp,in,cm,mm,em,ex,en,pc,sp|}\",\n      \"endcode=${1:code}\",\n      \"endinnercode=${1:code}\",\n      \"extra=${1:code}\",\n      \"firstextra=${1:code}\",\n      \"firstframetitle={${1:text}}\",\n      \"font=${1:font commands}\",\n      \"fontcolor=\",\n      \"framefoot=${1:code}\",\n      \"frametitle={${1:text}}\",\n      \"frametitlealignment\",\n      \"frametitlebackgroundcolor=\",\n      \"frametitlefont=${1:font commands}\",\n      \"frametitlefontcolor=\",\n      \"frametitlerulecolor=\",\n      \"frametitlesettings=${1:code}\",\n      \"innerlinecolor=\",\n      \"lastframefoot=${1:code}\",\n      \"linecolor=\",\n      \"middleextra=${1:code}\",\n      \"middlelinecolor=\",\n      \"outerlinecolor=\",\n      \"printheight=${1|none,info,warning|}\",\n      \"psroundlinecolor=\",\n      \"secondextra=${1:code}\",\n      \"settings=${1:code}\",\n      \"shadowcolor=\",\n      \"singleextra=${1:code}\",\n      \"startcode=${1:code}\",\n      \"startinnercode=${1:code}\",\n      \"subsubtitleabovelinecolor=\",\n      \"subsubtitlebackgroundcolor=\",\n      \"subsubtitlebelowlinecolor=\",\n      \"subsubtitlefont=${1:font commands}\",\n      \"subtitleabovelinecolor=\",\n      \"subtitlebackgroundcolor=\",\n      \"subtitlebelowlinecolor=\",\n      \"subtitlefont=${1:font commands}\",\n      \"theoremcountersep=${1:separator}\",\n      \"theoremseparator=${1:separator}\",\n      \"theoremspace=${1:space cmd}\",\n      \"theoremtitlefont=${1:font commands}\",\n      \"bottomline\",\n      \"draft\",\n      \"everyline\",\n      \"footnoteinside\",\n      \"frametitlebottomline\",\n      \"frametitleleftline\",\n      \"frametitlerightline\",\n      \"frametitlerule\",\n      \"frametitletopline\",\n      \"hidealllines\",\n      \"ignorelastdescenders\",\n      \"leftline\",\n      \"ntheorem\",\n      \"repeatframetitle\",\n      \"rightline\",\n      \"shadow\",\n      \"subsubtitleaboveline\",\n      \"subsubtitlebelowline\",\n      \"subtitleaboveline\",\n      \"subtitlebelowline\",\n      \"suppressfirstparskip\",\n      \"topline\",\n      \"usetwoside\",\n      \"align=${1|left,center,right|}\",\n      \"tikzsetting={${1:TikZ keys}}\",\n      \"apptotikzsetting=${1:code}\",\n      \"pstrickssetting={${1:pstricks keys}}\",\n      \"pstrickappsetting=${1:code}\",\n      \"style=${1:style name}\"\n    ],\n    \"\\\\mdflength\": [\n      \"extratopheight\",\n      \"footenotedistance\",\n      \"frametitleaboveskip\",\n      \"frametitlebelowskip\",\n      \"frametitleleftmargin\",\n      \"frametitlerightmargin\",\n      \"frametitlerulewidth\",\n      \"innerbottommargin\",\n      \"innerleftmargin\",\n      \"innerlinewidth\",\n      \"innermargin\",\n      \"innerrightmargin\",\n      \"innertopmargin\",\n      \"leftmargin\",\n      \"linewidth\",\n      \"middlelinewidth\",\n      \"needspace\",\n      \"outerlinewidth\",\n      \"outermargin\",\n      \"rightmargin\",\n      \"roundcorner\",\n      \"shadowsize\",\n      \"skipabove\",\n      \"skipbelow\",\n      \"splitbottomskip\",\n      \"splittopskip\",\n      \"subsubtitleabovelinewidth\",\n      \"subsubtitleaboveskip\",\n      \"subsubtitlebelowlinewidth\",\n      \"subsubtitlebelowskip\",\n      \"subsubtitleinneraboveskip\",\n      \"subsubtitleinnerbelowskip\",\n      \"subtitleabovelinewidth\",\n      \"subtitleaboveskip\",\n      \"subtitlebelowlinewidth\",\n      \"subtitlebelowskip\",\n      \"subtitleinneraboveskip\",\n      \"subtitleinnerbelowskip\",\n      \"userdefinedwidth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mdframed#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mdputu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"specialdigits\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mdsymbol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"acwcirclearrowdown\"\n    },\n    {\n      \"name\": \"acwcirclearrowleft\"\n    },\n    {\n      \"name\": \"acwcirclearrowright\"\n    },\n    {\n      \"name\": \"acwcirclearrowup\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"acwleftarcarrow\",\n      \"detail\": \"⤹\",\n      \"doc\": \"Left-side arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwnearcarrow\"\n    },\n    {\n      \"name\": \"acwnwarcarrow\"\n    },\n    {\n      \"name\": \"acwopencirclearrow\",\n      \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n    },\n    {\n      \"name\": \"acwoverarcarrow\",\n      \"detail\": \"⤺\",\n      \"doc\": \"Top arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwrightarcarrow\"\n    },\n    {\n      \"name\": \"acwsearcarrow\"\n    },\n    {\n      \"name\": \"acwswarcarrow\"\n    },\n    {\n      \"name\": \"acwunderarcarrow\",\n      \"detail\": \"⤻\",\n      \"doc\": \"Bottom arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"Assert\"\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backneg\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backpropto\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"backsimneqq\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"Barv\",\n      \"detail\": \"⫧\",\n      \"doc\": \"Short down tack with overbar\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"bdleftarcarrow\"\n    },\n    {\n      \"name\": \"bdnearcarrow\"\n    },\n    {\n      \"name\": \"bdnwarcarrow\"\n    },\n    {\n      \"name\": \"bdoverarcarrow\"\n    },\n    {\n      \"name\": \"bdrightarcarrow\"\n    },\n    {\n      \"name\": \"bdsearcarrow\"\n    },\n    {\n      \"name\": \"bdswarcarrow\"\n    },\n    {\n      \"name\": \"bdunderarcarrow\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapdot\"\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bigcurlyvee\"\n    },\n    {\n      \"name\": \"bigcurlywedge\"\n    },\n    {\n      \"name\": \"bigdoublevee\"\n    },\n    {\n      \"name\": \"bigdoublewedge\"\n    },\n    {\n      \"name\": \"bigoast\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapdot\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupdot\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigveedot\"\n    },\n    {\n      \"name\": \"bigwedgedot\"\n    },\n    {\n      \"name\": \"blackdiamond\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blackwhitespoon\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxbackslash\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boxvert\"\n    },\n    {\n      \"name\": \"bracemd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btimes\",\n      \"detail\": \"⨲\",\n      \"doc\": \"Semidirect product with bottom closed\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeqq\",\n      \"detail\": \"⪮\",\n      \"doc\": \"Equals sign with bumpy above\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capplus\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"circledvert\",\n      \"detail\": \"⦶\",\n      \"doc\": \"Circled vertical bar\"\n    },\n    {\n      \"name\": \"cirmid\",\n      \"detail\": \"⫯\",\n      \"doc\": \"Vertical line with circle above\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"conjquant\",\n      \"detail\": \"⨇\",\n      \"doc\": \"Two logical and operator\"\n    },\n    {\n      \"name\": \"coprodi\"\n    },\n    {\n      \"name\": \"crossing\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupplus\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"cwcirclearrowdown\"\n    },\n    {\n      \"name\": \"cwcirclearrowleft\"\n    },\n    {\n      \"name\": \"cwcirclearrowright\"\n    },\n    {\n      \"name\": \"cwcirclearrowup\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"cwleftarcarrow\"\n    },\n    {\n      \"name\": \"cwnearcarrow\"\n    },\n    {\n      \"name\": \"cwnwarcarrow\"\n    },\n    {\n      \"name\": \"cwopencirclearrow\",\n      \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n    },\n    {\n      \"name\": \"cwoverarcarrow\"\n    },\n    {\n      \"name\": \"cwrightarcarrow\",\n      \"detail\": \"⤸\",\n      \"doc\": \"Right-side arc clockwise arrow\"\n    },\n    {\n      \"name\": \"cwsearcarrow\"\n    },\n    {\n      \"name\": \"cwswarcarrow\"\n    },\n    {\n      \"name\": \"cwunderarcarrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dashVv\"\n    },\n    {\n      \"name\": \"dawint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbiguplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dconjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcoprodi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ddashv\"\n    },\n    {\n      \"name\": \"ddisjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddotdot\"\n    },\n    {\n      \"name\": \"ddotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"dfint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"diamondbackslash\"\n    },\n    {\n      \"name\": \"diamondbslash\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"diamonddiamond\"\n    },\n    {\n      \"name\": \"diamonddot\"\n    },\n    {\n      \"name\": \"diamondminus\"\n    },\n    {\n      \"name\": \"diamondplus\"\n    },\n    {\n      \"name\": \"diamondslash\"\n    },\n    {\n      \"name\": \"diamondtimes\"\n    },\n    {\n      \"name\": \"diamondvert\"\n    },\n    {\n      \"name\": \"didotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dintctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disjquant\",\n      \"detail\": \"⨈\",\n      \"doc\": \"Two logical or operator\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"divides\"\n    },\n    {\n      \"name\": \"divslash\",\n      \"detail\": \"∕\",\n      \"doc\": \"Division slash\"\n    },\n    {\n      \"name\": \"dlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotcong\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsint\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublesqcap\"\n    },\n    {\n      \"name\": \"doublesqcup\"\n    },\n    {\n      \"name\": \"doublevee\"\n    },\n    {\n      \"name\": \"doublewedge\"\n    },\n    {\n      \"name\": \"downarrowtail\"\n    },\n    {\n      \"name\": \"downassert\"\n    },\n    {\n      \"name\": \"downAssert\"\n    },\n    {\n      \"name\": \"downbkarrow\"\n    },\n    {\n      \"name\": \"downblackspoon\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downleftcurvedarrow\"\n    },\n    {\n      \"name\": \"downlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downmapsto\"\n    },\n    {\n      \"name\": \"Downmapsto\"\n    },\n    {\n      \"name\": \"downmodels\"\n    },\n    {\n      \"name\": \"downpitchfork\"\n    },\n    {\n      \"name\": \"downrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"downrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downspoon\"\n    },\n    {\n      \"name\": \"downtherefore\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downupharpoons\"\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downupsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downvdash\"\n    },\n    {\n      \"name\": \"downvDash\"\n    },\n    {\n      \"name\": \"downVdash\"\n    },\n    {\n      \"name\": \"downVDash\"\n    },\n    {\n      \"name\": \"downwavearrow\"\n    },\n    {\n      \"name\": \"downY\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"dprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dprodi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtimes\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"dvarointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dvarointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equal\",\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"frowneq\"\n    },\n    {\n      \"name\": \"frownsmile\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqclosed\"\n    },\n    {\n      \"name\": \"geqdot\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"geqslantdot\"\n    },\n    {\n      \"name\": \"geqslcc\"\n    },\n    {\n      \"name\": \"gescc\",\n      \"detail\": \"⪩\",\n      \"doc\": \"Greater-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"gesdot\",\n      \"detail\": \"⪀\",\n      \"doc\": \"Greater-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"gesl\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtcc\",\n      \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Greater-than closed by curve\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"gtr\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrcc\"\n    },\n    {\n      \"name\": \"gtrclosed\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqlessslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hateq\"\n    },\n    {\n      \"name\": \"hdotdot\"\n    },\n    {\n      \"name\": \"hdots\"\n    },\n    {\n      \"name\": \"hknearrow\",\n      \"detail\": \"⤤\",\n      \"doc\": \"North east arrow with hook\"\n    },\n    {\n      \"name\": \"hknwarrow\",\n      \"detail\": \"⤣\",\n      \"doc\": \"North west arrow with hook\"\n    },\n    {\n      \"name\": \"hksearrow\"\n    },\n    {\n      \"name\": \"hkswarrow\"\n    },\n    {\n      \"name\": \"hookdownarrow\"\n    },\n    {\n      \"name\": \"hookdownminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hooknearrow\"\n    },\n    {\n      \"name\": \"hooknwarrow\"\n    },\n    {\n      \"name\": \"hooksearrow\"\n    },\n    {\n      \"name\": \"hookswarrow\"\n    },\n    {\n      \"name\": \"hookuparrow\"\n    },\n    {\n      \"name\": \"hookupminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hourglass\",\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"imageof\",\n      \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Image of\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intBar\",\n      \"detail\": \"⨎\",\n      \"doc\": \"Integral with double stroke\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"intctrclockwise\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intprod\",\n      \"detail\": \"⨼\",\n      \"doc\": \"Interior product\"\n    },\n    {\n      \"name\": \"intprodr\",\n      \"detail\": \"⨽\",\n      \"doc\": \"Righthand interior product\"\n    },\n    {\n      \"name\": \"invneg\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"landdownint\"\n    },\n    {\n      \"name\": \"landupint\"\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"langledot\",\n      \"detail\": \"⦑\",\n      \"doc\": \"Left angle bracket with dot\"\n    },\n    {\n      \"name\": \"largeblackcircle\"\n    },\n    {\n      \"name\": \"largeblacksquare\"\n    },\n    {\n      \"name\": \"largeblackstar\"\n    },\n    {\n      \"name\": \"largecircle\"\n    },\n    {\n      \"name\": \"largesquare\"\n    },\n    {\n      \"name\": \"largetriangledown\"\n    },\n    {\n      \"name\": \"largetriangleup\"\n    },\n    {\n      \"name\": \"largewhitestar\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"lcircleleftint\"\n    },\n    {\n      \"name\": \"lcirclerightint\"\n    },\n    {\n      \"name\": \"Ldsh\",\n      \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left down angled arrow\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftassert\"\n    },\n    {\n      \"name\": \"leftAssert\"\n    },\n    {\n      \"name\": \"leftbkarrow\",\n      \"detail\": \"⤌\",\n      \"doc\": \"Leftwards double dash arrow\"\n    },\n    {\n      \"name\": \"leftblackspoon\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leftfootline\"\n    },\n    {\n      \"name\": \"leftlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmapsto\"\n    },\n    {\n      \"name\": \"Leftmapsto\"\n    },\n    {\n      \"name\": \"leftmodels\"\n    },\n    {\n      \"name\": \"leftpitchfork\"\n    },\n    {\n      \"name\": \"leftrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightblackspoon\"\n    },\n    {\n      \"name\": \"leftrightcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightspoon\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftrightwavearrow\"\n    },\n    {\n      \"name\": \"leftrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftspoon\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"lefttherefore\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftupcurvedarrow\"\n    },\n    {\n      \"name\": \"leftvdash\"\n    },\n    {\n      \"name\": \"leftvDash\"\n    },\n    {\n      \"name\": \"leftVdash\"\n    },\n    {\n      \"name\": \"leftVDash\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leftY\"\n    },\n    {\n      \"name\": \"leqclosed\"\n    },\n    {\n      \"name\": \"leqdot\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"leqslantdot\"\n    },\n    {\n      \"name\": \"leqslcc\"\n    },\n    {\n      \"name\": \"lescc\",\n      \"detail\": \"⪨\",\n      \"doc\": \"Less-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"lesdot\",\n      \"detail\": \"⩿\",\n      \"doc\": \"Less-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"lesg\"\n    },\n    {\n      \"name\": \"less\",\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lesscc\"\n    },\n    {\n      \"name\": \"lessclosed\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqgtrslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"unusual\": true,\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtcircle\",\n      \"detail\": \"◯\",\n      \"doc\": \"Large circle\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lhookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longdashv\",\n      \"detail\": \"⟞\",\n      \"doc\": \"Long right tack\"\n    },\n    {\n      \"name\": \"longleadsto\"\n    },\n    {\n      \"name\": \"longleftfootline\"\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longleftwavearrow\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longrightfootline\"\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longrightwavearrow\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lozengeminus\",\n      \"detail\": \"⟠\",\n      \"doc\": \"Lozenge divided by horizontal rule\"\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"lsem\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltcc\",\n      \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Less-than closed by curve\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"lVvert\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"Mapsdown\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"Mapsup\"\n    },\n    {\n      \"name\": \"mathcolon\",\n      \"detail\": \":\",\n      \"doc\": \"\\\\colon (literal), colon (not ratio)\"\n    },\n    {\n      \"name\": \"mathratio\",\n      \"detail\": \"∶\",\n      \"doc\": \"X \\\\colon, ratio\"\n    },\n    {\n      \"name\": \"mathslash\",\n      \"detail\": \"/\",\n      \"doc\": \"\\\\slash, solidus\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"measuredangleleft\",\n      \"detail\": \"⦛\",\n      \"doc\": \"Measured angle opening left\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"measuredrightangledot\"\n    },\n    {\n      \"name\": \"medbackslash\"\n    },\n    {\n      \"name\": \"medblackcircle\"\n    },\n    {\n      \"name\": \"medblackdiamond\"\n    },\n    {\n      \"name\": \"medblacklozenge\"\n    },\n    {\n      \"name\": \"medblacksquare\"\n    },\n    {\n      \"name\": \"medblackstar\",\n      \"detail\": \"⭑\",\n      \"doc\": \"Black medium star\"\n    },\n    {\n      \"name\": \"medblacktriangledown\"\n    },\n    {\n      \"name\": \"medblacktriangleleft\"\n    },\n    {\n      \"name\": \"medblacktriangleright\"\n    },\n    {\n      \"name\": \"medblacktriangleup\"\n    },\n    {\n      \"name\": \"medcircle\"\n    },\n    {\n      \"name\": \"meddiamond\"\n    },\n    {\n      \"name\": \"medlozenge\"\n    },\n    {\n      \"name\": \"medslash\"\n    },\n    {\n      \"name\": \"medsquare\"\n    },\n    {\n      \"name\": \"medstar\"\n    },\n    {\n      \"name\": \"medtriangledown\"\n    },\n    {\n      \"name\": \"medtriangleleft\"\n    },\n    {\n      \"name\": \"medtriangleright\"\n    },\n    {\n      \"name\": \"medtriangleup\"\n    },\n    {\n      \"name\": \"medwhitestar\",\n      \"detail\": \"⭐\",\n      \"doc\": \"White medium star\"\n    },\n    {\n      \"name\": \"midcir\",\n      \"detail\": \"⫰\",\n      \"doc\": \"Vertical line with circle below\"\n    },\n    {\n      \"name\": \"middlebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middlebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"middleslash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"middleslash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minusfdots\",\n      \"detail\": \"⨫\",\n      \"doc\": \"Minus sign with falling dots\"\n    },\n    {\n      \"name\": \"minushookdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minushookup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusrdots\",\n      \"detail\": \"⨬\",\n      \"doc\": \"Minus sign with rising dots\"\n    },\n    {\n      \"name\": \"modtwosum\",\n      \"detail\": \"⨊\",\n      \"doc\": \"Modulo two sum\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"nacwcirclearrowdown\"\n    },\n    {\n      \"name\": \"nacwcirclearrowleft\"\n    },\n    {\n      \"name\": \"nacwcirclearrowright\"\n    },\n    {\n      \"name\": \"nacwcirclearrowup\"\n    },\n    {\n      \"name\": \"nacwgapcirclearrow\"\n    },\n    {\n      \"name\": \"nacwleftarcarrow\"\n    },\n    {\n      \"name\": \"nacwnearcarrow\"\n    },\n    {\n      \"name\": \"nacwnwarcarrow\"\n    },\n    {\n      \"name\": \"nacwopencirclearrow\"\n    },\n    {\n      \"name\": \"nacwoverarcarrow\"\n    },\n    {\n      \"name\": \"nacwrightarcarrow\"\n    },\n    {\n      \"name\": \"nacwsearcarrow\"\n    },\n    {\n      \"name\": \"nacwswarcarrow\"\n    },\n    {\n      \"name\": \"nacwunderarcarrow\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"napproxident\"\n    },\n    {\n      \"name\": \"narceq\"\n    },\n    {\n      \"name\": \"nassert\"\n    },\n    {\n      \"name\": \"nAssert\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbackcong\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nbarV\"\n    },\n    {\n      \"name\": \"nBarv\"\n    },\n    {\n      \"name\": \"nbdleftarcarrow\"\n    },\n    {\n      \"name\": \"nbdnearcarrow\"\n    },\n    {\n      \"name\": \"nbdnwarcarrow\"\n    },\n    {\n      \"name\": \"nbdoverarcarrow\"\n    },\n    {\n      \"name\": \"nbdrightarcarrow\"\n    },\n    {\n      \"name\": \"nbdsearcarrow\"\n    },\n    {\n      \"name\": \"nbdswarcarrow\"\n    },\n    {\n      \"name\": \"nbdunderarcarrow\"\n    },\n    {\n      \"name\": \"nblackwhitespoon\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeqq\"\n    },\n    {\n      \"name\": \"ncirceq\"\n    },\n    {\n      \"name\": \"ncirclearrowleft\"\n    },\n    {\n      \"name\": \"ncirclearrowright\"\n    },\n    {\n      \"name\": \"ncirmid\"\n    },\n    {\n      \"name\": \"nclosure\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ncurlyeqprec\"\n    },\n    {\n      \"name\": \"ncurlyeqsucc\"\n    },\n    {\n      \"name\": \"ncurvearrowleft\"\n    },\n    {\n      \"name\": \"ncurvearrowright\"\n    },\n    {\n      \"name\": \"ncwcirclearrowdown\"\n    },\n    {\n      \"name\": \"ncwcirclearrowleft\"\n    },\n    {\n      \"name\": \"ncwcirclearrowright\"\n    },\n    {\n      \"name\": \"ncwcirclearrowup\"\n    },\n    {\n      \"name\": \"ncwgapcirclearrow\"\n    },\n    {\n      \"name\": \"ncwleftarcarrow\"\n    },\n    {\n      \"name\": \"ncwnearcarrow\"\n    },\n    {\n      \"name\": \"ncwnwarcarrow\"\n    },\n    {\n      \"name\": \"ncwopencirclearrow\"\n    },\n    {\n      \"name\": \"ncwoverarcarrow\"\n    },\n    {\n      \"name\": \"ncwrightarcarrow\"\n    },\n    {\n      \"name\": \"ncwsearcarrow\"\n    },\n    {\n      \"name\": \"ncwswarcarrow\"\n    },\n    {\n      \"name\": \"ncwunderarcarrow\"\n    },\n    {\n      \"name\": \"ndasharrow\"\n    },\n    {\n      \"name\": \"ndashleftarrow\"\n    },\n    {\n      \"name\": \"ndashrightarrow\"\n    },\n    {\n      \"name\": \"ndashv\"\n    },\n    {\n      \"name\": \"nDashv\"\n    },\n    {\n      \"name\": \"ndashV\"\n    },\n    {\n      \"name\": \"nDashV\"\n    },\n    {\n      \"name\": \"ndashVv\"\n    },\n    {\n      \"name\": \"nDdashv\"\n    },\n    {\n      \"name\": \"nDdownarrow\"\n    },\n    {\n      \"name\": \"ndivides\"\n    },\n    {\n      \"name\": \"ndoteq\"\n    },\n    {\n      \"name\": \"nDoteq\"\n    },\n    {\n      \"name\": \"ndownarrow\"\n    },\n    {\n      \"name\": \"nDownarrow\"\n    },\n    {\n      \"name\": \"ndownarrowtail\"\n    },\n    {\n      \"name\": \"ndownassert\"\n    },\n    {\n      \"name\": \"ndownAssert\"\n    },\n    {\n      \"name\": \"ndownbkarrow\"\n    },\n    {\n      \"name\": \"ndownblackspoon\"\n    },\n    {\n      \"name\": \"ndowndownarrows\"\n    },\n    {\n      \"name\": \"ndownharpoonleft\"\n    },\n    {\n      \"name\": \"ndownharpoonright\"\n    },\n    {\n      \"name\": \"ndownlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownleftcurvedarrow\"\n    },\n    {\n      \"name\": \"ndownlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownmapsto\"\n    },\n    {\n      \"name\": \"nDownmapsto\"\n    },\n    {\n      \"name\": \"ndownmodels\"\n    },\n    {\n      \"name\": \"ndownpitchfork\"\n    },\n    {\n      \"name\": \"ndownrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownrightcurvedarrow\"\n    },\n    {\n      \"name\": \"ndownrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownspoon\"\n    },\n    {\n      \"name\": \"ndownuparrows\"\n    },\n    {\n      \"name\": \"ndownupcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownupharpoons\"\n    },\n    {\n      \"name\": \"ndownupharpoonsleftright\"\n    },\n    {\n      \"name\": \"ndownupsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ndownvdash\"\n    },\n    {\n      \"name\": \"ndownvDash\"\n    },\n    {\n      \"name\": \"ndownVdash\"\n    },\n    {\n      \"name\": \"ndownVDash\"\n    },\n    {\n      \"name\": \"ndownwavearrow\"\n    },\n    {\n      \"name\": \"ndualmap\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nearrowtail\"\n    },\n    {\n      \"name\": \"nebkarrow\"\n    },\n    {\n      \"name\": \"neharpoonnw\"\n    },\n    {\n      \"name\": \"neharpoonse\"\n    },\n    {\n      \"name\": \"nelcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nenearrows\"\n    },\n    {\n      \"name\": \"neqcirc\"\n    },\n    {\n      \"name\": \"neqdot\"\n    },\n    {\n      \"name\": \"neqsim\"\n    },\n    {\n      \"name\": \"neqslantgtr\"\n    },\n    {\n      \"name\": \"neqslantless\"\n    },\n    {\n      \"name\": \"nequal\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"Neswarrow\"\n    },\n    {\n      \"name\": \"neswarrows\"\n    },\n    {\n      \"name\": \"neswcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neswharpoonnwse\"\n    },\n    {\n      \"name\": \"neswharpoons\"\n    },\n    {\n      \"name\": \"neswharpoonsenw\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nfallingdotseq\"\n    },\n    {\n      \"name\": \"nfrown\"\n    },\n    {\n      \"name\": \"nfrowneq\"\n    },\n    {\n      \"name\": \"nfrownsmile\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqclosed\"\n    },\n    {\n      \"name\": \"ngeqdot\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngeqslantdot\"\n    },\n    {\n      \"name\": \"ngeqslcc\"\n    },\n    {\n      \"name\": \"ngescc\"\n    },\n    {\n      \"name\": \"ngesdot\"\n    },\n    {\n      \"name\": \"ngesl\"\n    },\n    {\n      \"name\": \"ngets\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"nggg\"\n    },\n    {\n      \"name\": \"ngtcc\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrcc\"\n    },\n    {\n      \"name\": \"ngtrclosed\"\n    },\n    {\n      \"name\": \"ngtrdot\"\n    },\n    {\n      \"name\": \"ngtreqless\"\n    },\n    {\n      \"name\": \"ngtreqlessslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngtreqqless\"\n    },\n    {\n      \"name\": \"ngtreqslantless\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nhateq\"\n    },\n    {\n      \"name\": \"nhknearrow\"\n    },\n    {\n      \"name\": \"nhknwarrow\"\n    },\n    {\n      \"name\": \"nhksearrow\"\n    },\n    {\n      \"name\": \"nhkswarrow\"\n    },\n    {\n      \"name\": \"nhookdownarrow\"\n    },\n    {\n      \"name\": \"nhookleftarrow\"\n    },\n    {\n      \"name\": \"nhooknearrow\"\n    },\n    {\n      \"name\": \"nhooknwarrow\"\n    },\n    {\n      \"name\": \"nhookrightarrow\"\n    },\n    {\n      \"name\": \"nhooksearrow\"\n    },\n    {\n      \"name\": \"nhookswarrow\"\n    },\n    {\n      \"name\": \"nhookuparrow\"\n    },\n    {\n      \"name\": \"nimageof\"\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"nleadsto\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftarrowtail\"\n    },\n    {\n      \"name\": \"nleftassert\"\n    },\n    {\n      \"name\": \"nleftAssert\"\n    },\n    {\n      \"name\": \"nleftbkarrow\"\n    },\n    {\n      \"name\": \"nleftblackspoon\"\n    },\n    {\n      \"name\": \"nleftcurvedarrow\"\n    },\n    {\n      \"name\": \"nleftdowncurvedarrow\"\n    },\n    {\n      \"name\": \"nleftfootline\"\n    },\n    {\n      \"name\": \"nleftharpoondown\"\n    },\n    {\n      \"name\": \"nleftharpoonup\"\n    },\n    {\n      \"name\": \"nleftlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftleftarrows\"\n    },\n    {\n      \"name\": \"nleftlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftmapsto\"\n    },\n    {\n      \"name\": \"nLeftmapsto\"\n    },\n    {\n      \"name\": \"nleftmodels\"\n    },\n    {\n      \"name\": \"nleftpitchfork\"\n    },\n    {\n      \"name\": \"nleftrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrows\"\n    },\n    {\n      \"name\": \"nleftrightblackspoon\"\n    },\n    {\n      \"name\": \"nleftrightcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftrightharpoondownup\"\n    },\n    {\n      \"name\": \"nleftrightharpoons\"\n    },\n    {\n      \"name\": \"nleftrightharpoonupdown\"\n    },\n    {\n      \"name\": \"nleftrightspoon\"\n    },\n    {\n      \"name\": \"nleftrightsquigarrow\"\n    },\n    {\n      \"name\": \"nleftrightwavearrow\"\n    },\n    {\n      \"name\": \"nleftrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleftspoon\"\n    },\n    {\n      \"name\": \"nleftsquigarrow\"\n    },\n    {\n      \"name\": \"nleftupcurvedarrow\"\n    },\n    {\n      \"name\": \"nleftvdash\"\n    },\n    {\n      \"name\": \"nleftvDash\"\n    },\n    {\n      \"name\": \"nleftVdash\"\n    },\n    {\n      \"name\": \"nleftVDash\"\n    },\n    {\n      \"name\": \"nleftwavearrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqclosed\"\n    },\n    {\n      \"name\": \"nleqdot\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nleqslantdot\"\n    },\n    {\n      \"name\": \"nleqslcc\"\n    },\n    {\n      \"name\": \"nlescc\"\n    },\n    {\n      \"name\": \"nlesdot\"\n    },\n    {\n      \"name\": \"nlesg\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlesscc\"\n    },\n    {\n      \"name\": \"nlessclosed\"\n    },\n    {\n      \"name\": \"nlessdot\"\n    },\n    {\n      \"name\": \"nlesseqgtr\"\n    },\n    {\n      \"name\": \"nlesseqgtrslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlesseqqgtr\"\n    },\n    {\n      \"name\": \"nlesseqslantgtr\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nLleftarrow\"\n    },\n    {\n      \"name\": \"nlll\"\n    },\n    {\n      \"name\": \"nlongdashv\"\n    },\n    {\n      \"name\": \"nlongleadsto\"\n    },\n    {\n      \"name\": \"nlongleftarrow\"\n    },\n    {\n      \"name\": \"nLongleftarrow\"\n    },\n    {\n      \"name\": \"nlongleftfootline\"\n    },\n    {\n      \"name\": \"nlongleftrightarrow\"\n    },\n    {\n      \"name\": \"nLongleftrightarrow\"\n    },\n    {\n      \"name\": \"nlongleftsquigarrow\"\n    },\n    {\n      \"name\": \"nlongleftwavearrow\"\n    },\n    {\n      \"name\": \"nlongmapsfrom\"\n    },\n    {\n      \"name\": \"nLongmapsfrom\"\n    },\n    {\n      \"name\": \"nlongmapsto\"\n    },\n    {\n      \"name\": \"nLongmapsto\"\n    },\n    {\n      \"name\": \"nlongrightarrow\"\n    },\n    {\n      \"name\": \"nLongrightarrow\"\n    },\n    {\n      \"name\": \"nlongrightfootline\"\n    },\n    {\n      \"name\": \"nlongrightsquigarrow\"\n    },\n    {\n      \"name\": \"nlongrightwavearrow\"\n    },\n    {\n      \"name\": \"nltcc\"\n    },\n    {\n      \"name\": \"nmapsdown\"\n    },\n    {\n      \"name\": \"nMapsdown\"\n    },\n    {\n      \"name\": \"nmapsfrom\"\n    },\n    {\n      \"name\": \"nMapsfrom\"\n    },\n    {\n      \"name\": \"nmapsto\"\n    },\n    {\n      \"name\": \"nMapsto\"\n    },\n    {\n      \"name\": \"nmapsup\"\n    },\n    {\n      \"name\": \"nMapsup\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nmidcir\"\n    },\n    {\n      \"name\": \"nmodels\"\n    },\n    {\n      \"name\": \"nmultimap\"\n    },\n    {\n      \"name\": \"nmultimapinv\"\n    },\n    {\n      \"name\": \"nnearrow\"\n    },\n    {\n      \"name\": \"nNearrow\"\n    },\n    {\n      \"name\": \"nnearrowtail\"\n    },\n    {\n      \"name\": \"nnebkarrow\"\n    },\n    {\n      \"name\": \"nneharpoonnw\"\n    },\n    {\n      \"name\": \"nneharpoonse\"\n    },\n    {\n      \"name\": \"nnelcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnenearrows\"\n    },\n    {\n      \"name\": \"nnercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nneswarrow\"\n    },\n    {\n      \"name\": \"nNeswarrow\"\n    },\n    {\n      \"name\": \"nneswarrows\"\n    },\n    {\n      \"name\": \"nneswcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nneswharpoonnwse\"\n    },\n    {\n      \"name\": \"nneswharpoons\"\n    },\n    {\n      \"name\": \"nneswharpoonsenw\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"nnwarrow\"\n    },\n    {\n      \"name\": \"nNwarrow\"\n    },\n    {\n      \"name\": \"nnwarrowtail\"\n    },\n    {\n      \"name\": \"nnwbkarrow\"\n    },\n    {\n      \"name\": \"nnwharpoonne\"\n    },\n    {\n      \"name\": \"nnwharpoonsw\"\n    },\n    {\n      \"name\": \"nnwlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwnwarrows\"\n    },\n    {\n      \"name\": \"nnwrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwsearrow\"\n    },\n    {\n      \"name\": \"nNwsearrow\"\n    },\n    {\n      \"name\": \"nnwsearrows\"\n    },\n    {\n      \"name\": \"nnwsecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnwseharpoonnesw\"\n    },\n    {\n      \"name\": \"nnwseharpoons\"\n    },\n    {\n      \"name\": \"nnwseharpoonswne\"\n    },\n    {\n      \"name\": \"norigof\"\n    },\n    {\n      \"name\": \"nowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nperp\"\n    },\n    {\n      \"name\": \"npitchfork\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrestriction\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nrightarrowtail\"\n    },\n    {\n      \"name\": \"nrightassert\"\n    },\n    {\n      \"name\": \"nrightAssert\"\n    },\n    {\n      \"name\": \"nrightbkarrow\"\n    },\n    {\n      \"name\": \"nrightblackspoon\"\n    },\n    {\n      \"name\": \"nrightcurvedarrow\"\n    },\n    {\n      \"name\": \"nrightdowncurvedarrow\"\n    },\n    {\n      \"name\": \"nrightfootline\"\n    },\n    {\n      \"name\": \"nrightharpoondown\"\n    },\n    {\n      \"name\": \"nrightharpoonup\"\n    },\n    {\n      \"name\": \"nrightlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightleftarrows\"\n    },\n    {\n      \"name\": \"nrightleftcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightleftharpoons\"\n    },\n    {\n      \"name\": \"nrightleftsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightmapsto\"\n    },\n    {\n      \"name\": \"nRightmapsto\"\n    },\n    {\n      \"name\": \"nrightmodels\"\n    },\n    {\n      \"name\": \"nrightpitchfork\"\n    },\n    {\n      \"name\": \"nrightrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightrightarrows\"\n    },\n    {\n      \"name\": \"nrightrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrightspoon\"\n    },\n    {\n      \"name\": \"nrightsquigarrow\"\n    },\n    {\n      \"name\": \"nrightupcurvedarrow\"\n    },\n    {\n      \"name\": \"nrightvdash\"\n    },\n    {\n      \"name\": \"nrightvDash\"\n    },\n    {\n      \"name\": \"nrightVdash\"\n    },\n    {\n      \"name\": \"nrightVDash\"\n    },\n    {\n      \"name\": \"nrightwavearrow\"\n    },\n    {\n      \"name\": \"nrisingdotseq\"\n    },\n    {\n      \"name\": \"nRrightarrow\"\n    },\n    {\n      \"name\": \"nsearrow\"\n    },\n    {\n      \"name\": \"nSearrow\"\n    },\n    {\n      \"name\": \"nsearrowtail\"\n    },\n    {\n      \"name\": \"nsebkarrow\"\n    },\n    {\n      \"name\": \"nseharpoonne\"\n    },\n    {\n      \"name\": \"nseharpoonsw\"\n    },\n    {\n      \"name\": \"nselcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsenwarrows\"\n    },\n    {\n      \"name\": \"nsenwcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsenwharpoons\"\n    },\n    {\n      \"name\": \"nsercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nsesearrows\"\n    },\n    {\n      \"name\": \"nshortdowntack\"\n    },\n    {\n      \"name\": \"nshortlefttack\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortrighttack\"\n    },\n    {\n      \"name\": \"nshortuptack\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsmile\"\n    },\n    {\n      \"name\": \"nsmileeq\"\n    },\n    {\n      \"name\": \"nsmilefrown\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nSqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsubseteqq\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nSqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteqq\"\n    },\n    {\n      \"name\": \"nstareq\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nswarrow\"\n    },\n    {\n      \"name\": \"nSwarrow\"\n    },\n    {\n      \"name\": \"nswarrowtail\"\n    },\n    {\n      \"name\": \"nswbkarrow\"\n    },\n    {\n      \"name\": \"nswharpoonnw\"\n    },\n    {\n      \"name\": \"nswharpoonse\"\n    },\n    {\n      \"name\": \"nswlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswnearrows\"\n    },\n    {\n      \"name\": \"nswnecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswneharpoons\"\n    },\n    {\n      \"name\": \"nswrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nswswarrows\"\n    },\n    {\n      \"name\": \"nto\"\n    },\n    {\n      \"name\": \"ntriangleeq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntriplesim\"\n    },\n    {\n      \"name\": \"ntwoheaddownarrow\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadnearrow\"\n    },\n    {\n      \"name\": \"ntwoheadnwarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"ntwoheadsearrow\"\n    },\n    {\n      \"name\": \"ntwoheadswarrow\"\n    },\n    {\n      \"name\": \"ntwoheaduparrow\"\n    },\n    {\n      \"name\": \"nuparrow\"\n    },\n    {\n      \"name\": \"nUparrow\"\n    },\n    {\n      \"name\": \"nuparrowtail\"\n    },\n    {\n      \"name\": \"nupassert\"\n    },\n    {\n      \"name\": \"nupAssert\"\n    },\n    {\n      \"name\": \"nupbkarrow\"\n    },\n    {\n      \"name\": \"nupblackspoon\"\n    },\n    {\n      \"name\": \"nupdownarrow\"\n    },\n    {\n      \"name\": \"nUpdownarrow\"\n    },\n    {\n      \"name\": \"nupdownarrows\"\n    },\n    {\n      \"name\": \"nupdowncurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupdownharpoonleftright\"\n    },\n    {\n      \"name\": \"nupdownharpoonrightleft\"\n    },\n    {\n      \"name\": \"nupdownharpoons\"\n    },\n    {\n      \"name\": \"nupdownharpoonsleftright\"\n    },\n    {\n      \"name\": \"nupdownsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupdownwavearrow\"\n    },\n    {\n      \"name\": \"nupharpoonleft\"\n    },\n    {\n      \"name\": \"nupharpoonright\"\n    },\n    {\n      \"name\": \"nuplcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupleftcurvedarrow\"\n    },\n    {\n      \"name\": \"nuplsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupmapsto\"\n    },\n    {\n      \"name\": \"nUpmapsto\"\n    },\n    {\n      \"name\": \"nupmodels\"\n    },\n    {\n      \"name\": \"nuppitchfork\"\n    },\n    {\n      \"name\": \"nuprcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuprightcurvearrow\"\n    },\n    {\n      \"name\": \"nuprsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nupspoon\"\n    },\n    {\n      \"name\": \"nupuparrows\"\n    },\n    {\n      \"name\": \"nupvdash\"\n    },\n    {\n      \"name\": \"nupvDash\"\n    },\n    {\n      \"name\": \"nupVdash\"\n    },\n    {\n      \"name\": \"nupVDash\"\n    },\n    {\n      \"name\": \"nupwavearrow\"\n    },\n    {\n      \"name\": \"nUuparrow\"\n    },\n    {\n      \"name\": \"nvardownwavearrow\"\n    },\n    {\n      \"name\": \"nvarhookdownarrow\"\n    },\n    {\n      \"name\": \"nvarhookleftarrow\"\n    },\n    {\n      \"name\": \"nvarhooknearrow\"\n    },\n    {\n      \"name\": \"nvarhooknwarrow\"\n    },\n    {\n      \"name\": \"nvarhookrightarrow\"\n    },\n    {\n      \"name\": \"nvarhooksearrow\"\n    },\n    {\n      \"name\": \"nvarhookswarrow\"\n    },\n    {\n      \"name\": \"nvarhookuparrow\"\n    },\n    {\n      \"name\": \"nvarleftrightwavearrow\"\n    },\n    {\n      \"name\": \"nvarleftwavearrow\"\n    },\n    {\n      \"name\": \"nvarrightwavearrow\"\n    },\n    {\n      \"name\": \"nvarupdownwavearrow\"\n    },\n    {\n      \"name\": \"nvarupwavearrow\"\n    },\n    {\n      \"name\": \"nVbar\"\n    },\n    {\n      \"name\": \"nvBar\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"nvDdash\"\n    },\n    {\n      \"name\": \"nveeeq\"\n    },\n    {\n      \"name\": \"nvlongdash\"\n    },\n    {\n      \"name\": \"nVvdash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwarrowtail\"\n    },\n    {\n      \"name\": \"nwbkarrow\"\n    },\n    {\n      \"name\": \"nwedgeq\"\n    },\n    {\n      \"name\": \"nwharpoonne\"\n    },\n    {\n      \"name\": \"nwharpoonsw\"\n    },\n    {\n      \"name\": \"nwhiteblackspoon\"\n    },\n    {\n      \"name\": \"nwlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwnwarrows\"\n    },\n    {\n      \"name\": \"nwrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"Nwsearrow\"\n    },\n    {\n      \"name\": \"nwsearrows\"\n    },\n    {\n      \"name\": \"nwsecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwseharpoonnesw\"\n    },\n    {\n      \"name\": \"nwseharpoons\"\n    },\n    {\n      \"name\": \"nwseharpoonswne\"\n    },\n    {\n      \"name\": \"oast\"\n    },\n    {\n      \"name\": \"obackslash\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"odash\"\n    },\n    {\n      \"name\": \"oequal\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"osum\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overlining\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlining{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overt\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"plusdot\",\n      \"detail\": \"⨥\",\n      \"doc\": \"Plus sign with dot below\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"prodi\"\n    },\n    {\n      \"name\": \"propfrom\"\n    },\n    {\n      \"name\": \"pullback\",\n      \"detail\": \"⟓\",\n      \"doc\": \"Lower right corner with dot\"\n    },\n    {\n      \"name\": \"pushout\",\n      \"detail\": \"⟔\",\n      \"doc\": \"Upper left corner with dot\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"rangledot\",\n      \"detail\": \"⦒\",\n      \"doc\": \"Right angle bracket with dot\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rcircleleftint\"\n    },\n    {\n      \"name\": \"rcirclerightint\"\n    },\n    {\n      \"name\": \"Rdsh\",\n      \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Right down angled arrow\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"revmeasuredangle\"\n    },\n    {\n      \"name\": \"revsphericalangle\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhookdownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookleftarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooknearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooknwarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookrightarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhooksearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookswarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhookuparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightanglesquare\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightassert\"\n    },\n    {\n      \"name\": \"rightAssert\"\n    },\n    {\n      \"name\": \"rightbkarrow\",\n      \"detail\": \"⤍\",\n      \"doc\": \"Rightwards double dash arrow\"\n    },\n    {\n      \"name\": \"rightblackspoon\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"rightfootline\"\n    },\n    {\n      \"name\": \"rightlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightleftsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightlsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightmapsto\"\n    },\n    {\n      \"name\": \"Rightmapsto\"\n    },\n    {\n      \"name\": \"rightmodels\"\n    },\n    {\n      \"name\": \"rightpitchfork\"\n    },\n    {\n      \"name\": \"rightrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightrsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightspoon\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"righttherefore\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightupcurvedarrow\"\n    },\n    {\n      \"name\": \"rightvdash\"\n    },\n    {\n      \"name\": \"rightvDash\"\n    },\n    {\n      \"name\": \"rightVdash\"\n    },\n    {\n      \"name\": \"rightVDash\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"rightY\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"rsem\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rVvert\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"searrowtail\"\n    },\n    {\n      \"name\": \"sebkarrow\"\n    },\n    {\n      \"name\": \"sector\"\n    },\n    {\n      \"name\": \"seharpoonne\"\n    },\n    {\n      \"name\": \"seharpoonsw\"\n    },\n    {\n      \"name\": \"selcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senwarrows\"\n    },\n    {\n      \"name\": \"senwcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senwharpoons\"\n    },\n    {\n      \"name\": \"sercurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sesearrows\"\n    },\n    {\n      \"name\": \"shortdowntack\",\n      \"detail\": \"⫟\",\n      \"doc\": \"Short down tack\"\n    },\n    {\n      \"name\": \"shortlefttack\",\n      \"detail\": \"⫞\",\n      \"doc\": \"Short left tack\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortrighttack\"\n    },\n    {\n      \"name\": \"shortuptack\",\n      \"detail\": \"⫠\",\n      \"doc\": \"Short up tack\"\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"smallblackcircle\"\n    },\n    {\n      \"name\": \"smallblackdiamond\"\n    },\n    {\n      \"name\": \"smallblacklozenge\"\n    },\n    {\n      \"name\": \"smallblacksquare\"\n    },\n    {\n      \"name\": \"smallblackstar\"\n    },\n    {\n      \"name\": \"smallblacktriangledown\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleup\"\n    },\n    {\n      \"name\": \"smallcircle\"\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smallcoprodi\"\n    },\n    {\n      \"name\": \"smalldiamond\"\n    },\n    {\n      \"name\": \"smalldivslash\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalllozenge\"\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallprodi\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsquare\"\n    },\n    {\n      \"name\": \"smalltriangledown\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleup\"\n    },\n    {\n      \"name\": \"smallwhitestar\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smblksquare\",\n      \"detail\": \"▪\",\n      \"doc\": \"Sq bullet, filled\"\n    },\n    {\n      \"name\": \"smileeq\"\n    },\n    {\n      \"name\": \"smilefrown\"\n    },\n    {\n      \"name\": \"smwhitestar\",\n      \"detail\": \"⭒\",\n      \"doc\": \"White small star\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"smwhtsquare\",\n      \"detail\": \"▫\",\n      \"doc\": \"White small square\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sphericalangledown\"\n    },\n    {\n      \"name\": \"sphericalangleleft\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"Sqcap\",\n      \"detail\": \"⩎\",\n      \"doc\": \"Double square intersection\"\n    },\n    {\n      \"name\": \"sqcapdot\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"Sqcup\",\n      \"detail\": \"⩏\",\n      \"doc\": \"Double square union\"\n    },\n    {\n      \"name\": \"sqcupdot\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"Sqsubset\"\n    },\n    {\n      \"name\": \"sqsubseteqq\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsubsetneqq\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"Sqsupset\"\n    },\n    {\n      \"name\": \"sqsupseteqq\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"sqsupsetneqq\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squaredots\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"starofdavid\"\n    },\n    {\n      \"name\": \"strokethrough\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strokethrough{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"swarrowtail\"\n    },\n    {\n      \"name\": \"swbkarrow\"\n    },\n    {\n      \"name\": \"swharpoonnw\"\n    },\n    {\n      \"name\": \"swharpoonse\"\n    },\n    {\n      \"name\": \"swlcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swnearrows\"\n    },\n    {\n      \"name\": \"swnecurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swneharpoons\"\n    },\n    {\n      \"name\": \"swrcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swswarrows\"\n    },\n    {\n      \"name\": \"tawint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlyvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigcurlywedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublevee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigdoublewedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigodot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigoplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigotimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcapplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigsqcupplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbiguplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigvee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigveedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbigwedgedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tconjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcoprodi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdisjquant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tfint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tidotsint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timesbar\",\n      \"detail\": \"⨱\",\n      \"doc\": \"Multiplication sign with underbar\"\n    },\n    {\n      \"name\": \"tint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tintctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlanddownint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlandupint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmodtwosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toiiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toiint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tosum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprodi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcircleleftint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trcirclerightint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleeq\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"triplesim\"\n    },\n    {\n      \"name\": \"tsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsumint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttimes\"\n    },\n    {\n      \"name\": \"turnedbackneg\"\n    },\n    {\n      \"name\": \"turnedneg\"\n    },\n    {\n      \"name\": \"turnednot\",\n      \"detail\": \"⌙\",\n      \"doc\": \"Turned not sign\"\n    },\n    {\n      \"name\": \"tvarointclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvarointctrclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadnearrow\"\n    },\n    {\n      \"name\": \"twoheadnwarrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheadsearrow\"\n    },\n    {\n      \"name\": \"twoheadswarrow\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"udotdot\"\n    },\n    {\n      \"name\": \"udots\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"ullcorner\"\n    },\n    {\n      \"name\": \"ulrcorner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underlinesegment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlinesegment{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"uparrowtail\"\n    },\n    {\n      \"name\": \"upassert\"\n    },\n    {\n      \"name\": \"upAssert\"\n    },\n    {\n      \"name\": \"upbkarrow\"\n    },\n    {\n      \"name\": \"upblackspoon\"\n    },\n    {\n      \"name\": \"upbowtie\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updowncurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoons\"\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"updownsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownwavearrow\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"uplcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upleftcurvedarrow\"\n    },\n    {\n      \"name\": \"uplsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmapsto\"\n    },\n    {\n      \"name\": \"Upmapsto\"\n    },\n    {\n      \"name\": \"upmodels\"\n    },\n    {\n      \"name\": \"uppitchfork\"\n    },\n    {\n      \"name\": \"uprcurvearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"uprsquigarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upspoon\"\n    },\n    {\n      \"name\": \"uptherefore\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upvdash\"\n    },\n    {\n      \"name\": \"upvDash\"\n    },\n    {\n      \"name\": \"upVdash\"\n    },\n    {\n      \"name\": \"upVDash\"\n    },\n    {\n      \"name\": \"upwavearrow\"\n    },\n    {\n      \"name\": \"upY\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"utimes\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"vardownwavearrow\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varhookdownarrow\"\n    },\n    {\n      \"name\": \"varhookleftarrow\"\n    },\n    {\n      \"name\": \"varhooknearrow\"\n    },\n    {\n      \"name\": \"varhooknwarrow\"\n    },\n    {\n      \"name\": \"varhookrightarrow\"\n    },\n    {\n      \"name\": \"varhooksearrow\"\n    },\n    {\n      \"name\": \"varhookswarrow\"\n    },\n    {\n      \"name\": \"varhookuparrow\"\n    },\n    {\n      \"name\": \"varleftrightwavearrow\"\n    },\n    {\n      \"name\": \"varleftwavearrow\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrightwavearrow\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varupdownwavearrow\"\n    },\n    {\n      \"name\": \"varupwavearrow\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"vBar\",\n      \"detail\": \"⫨\",\n      \"doc\": \"Short up tack with underbar\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDdash\",\n      \"detail\": \"⫢\",\n      \"doc\": \"Vertical bar triple right turnstile\"\n    },\n    {\n      \"name\": \"vdotdot\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"vlongdash\",\n      \"detail\": \"⟝\",\n      \"doc\": \"Long left tack\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wedgeonwedge\",\n      \"detail\": \"⩕\",\n      \"doc\": \"Two intersecting logical and\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"whiteblackspoon\"\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wreath\"\n    },\n    {\n      \"name\": \"ifmathversionsans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overliningbox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mdsymbol#c\": [\n      \"largedelims\",\n      \"retainmissing\",\n      \"scale=${1:factor}\",\n      \"onlysansmath\",\n      \"normalweight=${1|light,regular,autolight,autoregular|}\",\n      \"boldweight=${1|semibold,bold,autosemibold|}\"\n    ],\n    \"\\\\mathversion#c\": [\n      \"sans\",\n      \"sansbold\",\n      \"sanstabular\",\n      \"sansboldtabular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mdsymbol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mdwlist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"desclabelstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"desclabelstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"desclabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"desclabelwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"multilinelabel\"\n    },\n    {\n      \"name\": \"nextlinelabel\"\n    },\n    {\n      \"name\": \"pushlabel\"\n    },\n    {\n      \"name\": \"resume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resume{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"resume\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resume[${2:magicname}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"suspend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suspend{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"suspend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"suspend[${2:magicname}]{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"itemize*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mdwmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sqrt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqrt*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqrt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sqrt*[${2:root}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sqrtdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqrtdel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bitand\"\n    },\n    {\n      \"name\": \"bitor\"\n    },\n    {\n      \"name\": \"dblor\"\n    },\n    {\n      \"name\": \"dbland\"\n    },\n    {\n      \"name\": \"bbigg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbiggl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbiggr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbiggm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mdwtab.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tabpause\"\n    },\n    {\n      \"name\": \"vline\"\n    },\n    {\n      \"name\": \"vline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vline[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"vgap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vgap{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"vgap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vgap[${2:cols}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hlx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlx{${1:colspec}}\"\n      }\n    },\n    {\n      \"name\": \"tabstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrarowheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabextrasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayextrasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smarrayextrasep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smarraycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcolumntype{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcolumntype{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcolumntype\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcolumntype{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"colset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colset{${1:set-name}}\"\n      }\n    },\n    {\n      \"name\": \"colpush\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colpush{${1:set-name}}\"\n      }\n    },\n    {\n      \"name\": \"colpop\"\n    },\n    {\n      \"name\": \"tabcoltype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabcoltype{${1:pre-text}}{${2:post-text}}\"\n      }\n    },\n    {\n      \"name\": \"tabuserpretype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabuserpretype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabuserposttype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabuserposttype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabspctype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabspctype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabruletype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabruletype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifinrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifinrange{${1:number}}{${2:range-list}}{${3:then}}{${4:else}}\"\n      }\n    },\n    {\n      \"name\": \"ranges\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ranges{${1:macro}}{${2:range-list}}\"\n      }\n    },\n    {\n      \"name\": \"showcol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcol{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"showpream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showpream{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"savenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spewnotes\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"array\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"smarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"smarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"savenotes\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/media4svg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includemedia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includemedia{${1:poster text%text}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includemedia\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includemedia[${3:options%keyvals}]{${1:poster text%text}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\includemedia,\\\\usepackage/media4svg#c\",\n          \"\\\\includemedia\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\includemedia,\\\\usepackage/media4svg#c\": [\n      \"draft\",\n      \"final\",\n      \"autoplay\",\n      \"loop\",\n      \"controls\",\n      \"mimetype=${1:mime type}\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"muted\",\n      \"scale=${1:factor}\",\n      \"url\",\n      \"embed\",\n      \"youtube\",\n      \"vimeo\"\n    ],\n    \"\\\\includemedia\": [\n      \"id=${1:label}\",\n      \"time=${1:time offset}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\includemedia,\\\\usepackage/media4svg#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/media9.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ocgbase\"\n    },\n    {\n      \"name\": \"pdfbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includemedia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includemedia{${1:poster text%text}}{${2:file or URL%file}}\"\n      }\n    },\n    {\n      \"name\": \"includemedia\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includemedia[${3:options%keyvals}]{${1:poster text%text}}{${2:file or URL%file}}\",\n        \"keys\": [\n          \"\\\\includemedia#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addmediapath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addmediapath{${1:directory}}\"\n      }\n    },\n    {\n      \"name\": \"mediabutton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mediabutton{${1:button text%text}}\"\n      }\n    },\n    {\n      \"name\": \"mediabutton\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mediabutton[${2:options%keyvals}]{${1:button text%text}}\",\n        \"keys\": [\n          \"\\\\mediabutton#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/media9#c\": [\n      \"dvipdfmx\",\n      \"xetex\",\n      \"bigfiles\"\n    ],\n    \"\\\\usepackage/media9#c,\\\\includemedia#c\": [\n      \"draft\",\n      \"final\",\n      \"playbutton=${1|fancy,plain,none|}\",\n      \"noplaybutton\",\n      \"activate=${1|onclick,pageopen,pagevisible|}\",\n      \"deactivate=${1|onclick,pageclose,pageinvisible|}\",\n      \"windowed=\",\n      \"transparent\",\n      \"passcontext\",\n      \"attachfiles\",\n      \"3Dplaytype=${1|linear,oscillating|}\",\n      \"3Dplaycount=${1:integer}\",\n      \"3Dplayspeed=${1:number}\",\n      \"3Dtoolbar\",\n      \"3Dnavpane\",\n      \"3Dpartsattrs=${1|restore,keep|}\",\n      \"3Dmenu\",\n      \"3Dbg=${1:<r> <g> <b>}\",\n      \"3Dlights=${1|None,White,Day,Night,Hard,Primary,Blue,Red,Cube,CAD,Headlamp|}\",\n      \"3Drender=${1|Solid,SolidWireframe,Transparent,TransparentWireframe,BoundingBox,TransparentBoundingBox,TransparentBoundingBoxOutline,Wireframe,ShadedWireframe,HiddenWireframe,Vertices,ShadedVertices,SolidOutline,Illustration,ShadedIllustration|}\"\n    ],\n    \"\\\\includemedia#c\": [\n      \"label=${1:label text}\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"addresource=${1:file}\",\n      \"flashvars={${1:var1=val1&var2=val2&...}}\",\n      \"3Dcoo=${1:<x> <y> <z>}\",\n      \"3Dc2c=${1:<x> <y> <z>}\",\n      \"3Droll=${1:roll}\",\n      \"3Dc2w=${1:camera-to-world matrix}\",\n      \"3Dpsob=${1|Min,Max,W,H|}\",\n      \"3Droo=${1:number}\",\n      \"3Daac=${1:angle}\",\n      \"3Dortho=${1:factor}\",\n      \"3Dviews=${1:views file}\",\n      \"add3Djscript=${1:3D JavaScript file}\"\n    ],\n    \"\\\\mediabutton#c\": [\n      \"overface=${1:text or graphic}\",\n      \"downface=${1:text or graphic}\",\n      \"tooltip=${1:tip text}\",\n      \"3Dgotoview=${1:label text}\",\n      \"3Dgotoview=${1:label text}:${2:view spec}\",\n      \"mediacommand=${1:label text}\",\n      \"mediacommand=${1:label text}:${2:command}\",\n      \"mediacommand=${1:label text}:${2:command}[(${3:arg1})${4:(arg2)...}]\",\n      \"jsaction={${1:JavaScript code}}\",\n      \"jsaction=${1:label text}:{${2:JavaScript code}}\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/media9#c\",\n    \"\\\\usepackage/media9#c,\\\\includemedia#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/medmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"medmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medmath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"medop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medop{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"medint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medint{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"medintcorr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medintcorr{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"mfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"mbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mbinom{${1:above}}{${2:below}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"medsize\"\n    },\n    {\n      \"name\": \"mmatrix\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/medmath#c\": [\n      \"bare\",\n      \"base\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/medmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/membranecomputing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wa\"\n    },\n    {\n      \"name\": \"ia\"\n    },\n    {\n      \"name\": \"ls\"\n    },\n    {\n      \"name\": \"ms\"\n    },\n    {\n      \"name\": \"im\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"im{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rs{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ps{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vE\"\n    },\n    {\n      \"name\": \"neuron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"neuron{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"compartment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compartment{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"agent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agent{${1:index%formula}}\"\n      }\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"syn\"\n    },\n    {\n      \"name\": \"iin\"\n    },\n    {\n      \"name\": \"iout\"\n    },\n    {\n      \"name\": \"yes\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"REG\"\n    },\n    {\n      \"name\": \"LIN\"\n    },\n    {\n      \"name\": \"CF\"\n    },\n    {\n      \"name\": \"CS\"\n    },\n    {\n      \"name\": \"RE\"\n    },\n    {\n      \"name\": \"compSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compSet{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"AM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AM{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"AM\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AM[${2:sup%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"AMO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AMO{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TC[${2:optarg%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TDC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TDC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TSC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TSC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CC[${2:optarg%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CDC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CDC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CSC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TEC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TEC[${2:optarg%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TDEC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TDEC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TSEC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TSEC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CEC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CEC[${2:optarg%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CDEC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CDEC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"CSEC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CSEC{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pfamily\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Pfamily{${1:name%formula}}{${2:sup%formula}}{${3:sub%formula}}{${4:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PMC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PMC{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PMC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PMC[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PSPACEMC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PSPACEMC{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PSPACEMC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PSPACEMC[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EXPMC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EXPMC{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EXPMC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EXPMC[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EXPSPACEMC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EXPSPACEMC{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EXPSPACEMC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EXPSPACEMC[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"complClass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"complClass{${1:name%formula}}{${2:sup%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"psystem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"psystem{${1:memb struc}}{${2:parameters%keyvals}}{${3:sub%formula}}{${4:degree}}\",\n        \"keys\": [\n          \"\\\\psystem\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"psystem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"psystem[${5:input option}]{${1:memb struc}}{${2:parameters%keyvals}}{${3:sub%formula}}{${4:degree}}\",\n        \"keys\": [\n          \"\\\\psystem\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"psystemT\"\n    },\n    {\n      \"name\": \"rpsystemT\"\n    },\n    {\n      \"name\": \"psystemAM\"\n    },\n    {\n      \"name\": \"rpsystemAM\"\n    },\n    {\n      \"name\": \"psystemSA\"\n    },\n    {\n      \"name\": \"rpsystemSA\"\n    },\n    {\n      \"name\": \"SNpsystem\"\n    },\n    {\n      \"name\": \"rSNpsystem\"\n    },\n    {\n      \"name\": \"kpsystem\"\n    },\n    {\n      \"name\": \"rkpsystem\"\n    },\n    {\n      \"name\": \"pcolony\"\n    },\n    {\n      \"name\": \"rpcolony\"\n    },\n    {\n      \"name\": \"mcrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"mcrule{${1:parameters%keyvals}}{${2:num1}}{${3:num2}}{${4:rulespecs1%formula}}{${5:rulespec2%formula}}\",\n        \"keys\": [\n          \"\\\\mcrule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mcrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"mcrule[${6:notation}]{${1:parameters%keyvals}}{${2:num1}}{${3:num2}}{${4:rulespecs1%formula}}{${5:rulespec2%formula}}\",\n        \"keys\": [\n          \"\\\\mcrule\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rewriting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rewriting{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rewritingT\"\n    },\n    {\n      \"name\": \"evolution\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evolution{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"evolutionT\"\n    },\n    {\n      \"name\": \"evolutionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evolutionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"evolutionPT\"\n    },\n    {\n      \"name\": \"pevolution\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pevolution{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pevolutionT\"\n    },\n    {\n      \"name\": \"pevolutionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pevolutionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pevolutionPT\"\n    },\n    {\n      \"name\": \"antiport\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"antiport{${1:arg1%formula}}{${2:index1%formula}}{${3:arg2%formula}}{${4:index2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"antiportT\"\n    },\n    {\n      \"name\": \"symportT\"\n    },\n    {\n      \"name\": \"antiportP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"antiportP{${1:arg1%formula}}{${2:index1%formula}}{${3:arg2%formula}}{${4:index2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"antiportPT\"\n    },\n    {\n      \"name\": \"symportPT\"\n    },\n    {\n      \"name\": \"sendin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendin{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup1%formula}}{${5:sup2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendinT\"\n    },\n    {\n      \"name\": \"sendinP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendinP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup1%formula}}{${5:sup2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendinPT\"\n    },\n    {\n      \"name\": \"psendin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psendin{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"psendinT\"\n    },\n    {\n      \"name\": \"psendinP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psendinP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"psendinPT\"\n    },\n    {\n      \"name\": \"sendout\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendout{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup1%formula}}{${5:sup2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendoutT\"\n    },\n    {\n      \"name\": \"sendoutP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendoutP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup1%formula}}{${5:sup2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendoutPT\"\n    },\n    {\n      \"name\": \"psendout\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psendout{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"psendoutT\"\n    },\n    {\n      \"name\": \"psendoutP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psendoutP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"psendoutPT\"\n    },\n    {\n      \"name\": \"dissolution\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dissolution{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"dissolutionT\"\n    },\n    {\n      \"name\": \"dissolutionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dissolutionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}{${4:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"dissolutionPT\"\n    },\n    {\n      \"name\": \"pdissolution\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdissolution{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pdissolutionT\"\n    },\n    {\n      \"name\": \"pdissolutionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdissolutionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pdissolutionPT\"\n    },\n    {\n      \"name\": \"division\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"division{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub%formula}}{${5:sup1%formula}}{${6:sup2%formula}}{${7:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"divisionT\"\n    },\n    {\n      \"name\": \"divisionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"divisionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub%formula}}{${5:sup1%formula}}{${6:sup2%formula}}{${7:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"divisionPT\"\n    },\n    {\n      \"name\": \"pdivision\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pdivision{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pdivisionT\"\n    },\n    {\n      \"name\": \"pdivisionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pdivisionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pdivisionPT\"\n    },\n    {\n      \"name\": \"separation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"separation{${1:arg%formula}}{${2:sub%formula}}{${3:sup1%formula}}{${4:sup2%formula}}{${5:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"separationT\"\n    },\n    {\n      \"name\": \"separationP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"separationP{${1:arg%formula}}{${2:sub%formula}}{${3:sup1%formula}}{${4:sup2%formula}}{${5:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"separationPT\"\n    },\n    {\n      \"name\": \"pseparation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pseparation{${1:arg%formula}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pseparationT\"\n    },\n    {\n      \"name\": \"pseparationP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pseparationP{${1:arg%formula}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pseparationPT\"\n    },\n    {\n      \"name\": \"creation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"creation{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub1%formula}}{${5:sub2%formula}}{${6:sup1%formula}}{${7:sup2%formula}}{${8:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"creationT\"\n    },\n    {\n      \"name\": \"creationP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"creationP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub1%formula}}{${5:sub2%formula}}{${6:sup1%formula}}{${7:sup2%formula}}{${8:sup3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"creationPT\"\n    },\n    {\n      \"name\": \"pcreation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pcreation{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub1%formula}}{${5:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcreationT\"\n    },\n    {\n      \"name\": \"pcreationP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pcreationP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:sub1%formula}}{${5:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pcreationPT\"\n    },\n    {\n      \"name\": \"spiking\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spiking{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"spikingT\"\n    },\n    {\n      \"name\": \"forgettingT\"\n    },\n    {\n      \"name\": \"spikingP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"spikingP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}\"\n      }\n    },\n    {\n      \"name\": \"spikingPT\"\n    },\n    {\n      \"name\": \"forgettingPT\"\n    },\n    {\n      \"name\": \"krewriting\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"krewriting{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"krewritingT\"\n    },\n    {\n      \"name\": \"krewritingP\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"krewritingP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"krewritingPT\"\n    },\n    {\n      \"name\": \"linkcreation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"linkcreation{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub1%formula}}{${4:sub2%formula}}{${5:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"linkcreationT\"\n    },\n    {\n      \"name\": \"linkcreationP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"linkcreationP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub1%formula}}{${4:sub2%formula}}{${5:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"linkcreationPT\"\n    },\n    {\n      \"name\": \"linkdestruction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"linkdestruction{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub1%formula}}{${4:sub2%formula}}{${5:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"linkdestructionT\"\n    },\n    {\n      \"name\": \"linkdestructionP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"linkdestructionP{${1:arg1%formula}}{${2:arg2%formula}}{${3:sub1%formula}}{${4:sub2%formula}}{${5:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"linkdestructionPT\"\n    },\n    {\n      \"name\": \"tissueevolcomm\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tissueevolcomm{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}{${5:sub1%formula}}{${6:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tissueevolcommT\"\n    },\n    {\n      \"name\": \"tissueevolsympT\"\n    },\n    {\n      \"name\": \"tissueevolcommP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tissueevolcommP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}{${5:sub1%formula}}{${6:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tissueevolcommPT\"\n    },\n    {\n      \"name\": \"tissueevolsympPT\"\n    },\n    {\n      \"name\": \"evolcomm\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"evolcomm{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}{${5:sub1%formula}}{${6:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"evolcommT\"\n    },\n    {\n      \"name\": \"evolsyminT\"\n    },\n    {\n      \"name\": \"evolsymoutT\"\n    },\n    {\n      \"name\": \"evolcommP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"evolcommP{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}{${4:arg4%formula}}{${5:sub1%formula}}{${6:sub2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"evolcommPT\"\n    },\n    {\n      \"name\": \"evolsyminPT\"\n    },\n    {\n      \"name\": \"evolsymoutPT\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/membranecomputing#c\": [\n      \"blackboard\",\n      \"traditional\"\n    ],\n    \"\\\\psystem\": [\n      \"transition\",\n      \"activemembranes\",\n      \"symportantiport\",\n      \"spiking\",\n      \"kernel\",\n      \"colony\"\n    ],\n    \"\\\\mcrule\": [\n      \"rewriting\",\n      \"single\",\n      \"multiple\",\n      \"paren\",\n      \"spike\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/membranecomputing#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/memhangul-common.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hologo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cntrdot\"\n    },\n    {\n      \"name\": \"cntrdots\"\n    },\n    {\n      \"name\": \"cntrdotss\"\n    },\n    {\n      \"name\": \"expldash\"\n    },\n    {\n      \"name\": \"explpunc\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"obCaptionFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obCaptionFont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"obellipsis\"\n    },\n    {\n      \"name\": \"obldots\"\n    },\n    {\n      \"name\": \"oblivoirlist\"\n    },\n    {\n      \"name\": \"oblivoirlists\"\n    },\n    {\n      \"name\": \"ReleaseMacros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReleaseMacros{${1:macro1,macro2,...}}\"\n      }\n    },\n    {\n      \"name\": \"snm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"snm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"trimKmarks\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"chapterindentfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"divnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"divnotedelimclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divnotedelimopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divnoteskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divnotestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAlph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Halph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Halph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hchaptertitlehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfontfamilynameprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hparttitlehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HROMAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HROMAN{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Hroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"htoffnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ktrimpicbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ktrimpicbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ktrimpictl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ktrimpictr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucsadjustwidthtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obadjustlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obCaptionnameClose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obCaptionnameOpen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oblivoirallowbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oblivoirdblquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oblivoirdblquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oblivoirquote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oblivoirquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"obparttitlealignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pghgheadwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postchaptertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postpartnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prechapternum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepartnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refreshprepostchapters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetFnmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetFnmark{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"theAPPchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAPPsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theAPPsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkKbm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkKml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkKmr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmarkKtm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XBrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XErule\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\chapterstyle\": [\n      \"appendixdefault\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/memhangul-x.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexko\"\n    },\n    {\n      \"name\": \"xob-font\"\n    },\n    {\n      \"name\": \"xob-dotemph\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"memhfixc\"\n    },\n    {\n      \"name\": \"memhangul-common\"\n    },\n    {\n      \"name\": \"memucs-setspace\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"polyglossia\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"babelhangul\"\n    },\n    {\n      \"name\": \"memucs-interword-x\",\n      \"if\": \"interworddefault\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sethangulfont\",\n      \"if\": \"polyglossia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"sethangulfont\",\n      \"if\": \"polyglossia\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sethangulfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"hangulfont\",\n      \"if\": \"polyglossia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangulfonttt\",\n      \"if\": \"polyglossia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"kscntformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kscntformat{${1:level}}{${2:before}}{${3:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"regremph\"\n    },\n    {\n      \"name\": \"ungremph\"\n    },\n    {\n      \"name\": \"ifKOTEXCJK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOTEXCJKfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOTEXCJKtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparswitchfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparswitchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucsinterwordchapterskiphook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucsinterwordhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosetspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversemarginfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversemargintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setxxxlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setxxxlength{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"subappendixname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/memhangul-x#c\": [\n      \"interworddefault\",\n      \"nosetspace\",\n      \"quotespacing\",\n      \"nonfrench\",\n      \"hanja\",\n      \"mathdisp\",\n      \"arabicfront\",\n      \"hangulpagestyle\",\n      \"pdfbookmark\",\n      \"polyglossia\",\n      \"babelhangul\",\n      \"babelvacant\",\n      \"gremph\",\n      \"itemph\",\n      \"latinquote\",\n      \"oldhangul\",\n      \"manualfontspec\",\n      \"nowinname\",\n      \"unfonts\",\n      \"nounfonts\",\n      \"nanum\",\n      \"hcr\",\n      \"noto\",\n      \"figtabcapt\",\n      \"cjk\",\n      \"dhucs\",\n      \"uset1font\",\n      \"usedotemph\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/memhangul-x#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/memhfixc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theHpagenote\"\n    },\n    {\n      \"name\": \"thememhycontfloat\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/memoizable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mmzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"nommzkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nommzkeys{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ifmemoize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMemoizing{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfMemoizing[${4:offset}]{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"mmzAbort\"\n    },\n    {\n      \"name\": \"mmzUnmemoizable\"\n    },\n    {\n      \"name\": \"mmzNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzForceNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzForceNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzContextExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExternPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExtraPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/memoize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"advice\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mmzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mmznext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmznext{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nommzkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nommzkeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mmz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmz{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"mmz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mmz[${2:options%keyvals}]{${1:code%text}}\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nommz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nommz{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"nommz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nommz[${2:options%keyvals}]{${1:code%text}}\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mmzContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzContextExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzForceNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzForceNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzAbort\"\n    },\n    {\n      \"name\": \"mmzUnmemoizable\"\n    },\n    {\n      \"name\": \"ifmmzUnmemoizable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Memoize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Memoize{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"mmzAtBeginMemoization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzAtEndMemoization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzAtEndMemoizationExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzAfterMemoization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzAfterMemoizationExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmemoize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmemoizing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinmemoize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzSingleExternDriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzSingleExternDriver{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"mmzExternalizeBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mmzExternalizeBox{${1:box}}{${2:token register}}\"\n      }\n    },\n    {\n      \"name\": \"ifmmzkeepexterns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzkeepexternstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzkeepexternsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMemoizing{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfMemoizing[${4:offset}]{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"memoizinggrouplevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzRegularPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExternPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExtraPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzThisContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzSource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzResource{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mmzIncludeExtern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"mmzIncludeExtern{${1:seq}}{${2:\\\\hbox|\\\\vbox}}{${3:width}}{${4:height}}{${5:depth}}{${6:left}}{${7:bot}}{${8:right}}{${9:top}}\"\n      }\n    },\n    {\n      \"name\": \"mmzLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mmzLabel{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"mmzEndMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzOutputDirectory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzUsedCMemo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzUsedCMemo{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"mmzUsedCCMemo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzUsedCCMemo{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"mmzUsedExtern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzUsedExtern{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"mmzNewCMemo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzNewCMemo{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"mmzNewCCMemo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzNewCCMemo{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"mmzNewExtern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mmzNewExtern{${1:filename}}{${2:page num}}{${3:width}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"mmzPrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzPrefix{${1:path prefix}}\"\n      }\n    },\n    {\n      \"name\": \"mmzAutoInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzPgfAtBeginMemoization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzPgfAtEndMemoization\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"memoize\"\n    },\n    {\n      \"name\": \"memoize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nomemoize\"\n    },\n    {\n      \"name\": \"nomemoize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\",\n          \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/memoize#c\": [\n      \"options={${1:options}}\"\n    ],\n    \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\": [\n      \"enable\",\n      \"disable\",\n      \"normal\",\n      \"readonly\",\n      \"recompile\"\n    ],\n    \"\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\": [\n      \"verbatim\",\n      \"verb\",\n      \"no verbatim\",\n      \"padding left=\",\n      \"padding right=\",\n      \"padding top=\",\n      \"padding bottom=\",\n      \"padding=\",\n      \"context=${1:tokens}\",\n      \"clear context\",\n      \"meaning to context={${1:command/env list}}\",\n      \"csname meaning to context=${1:csname}\",\n      \"key meaning to context=${1:key path}\",\n      \"key value to context=${1:key path}\",\n      \"padding to context\",\n      \"per overlay\",\n      \"capture=${1|hbox,vbox|}\",\n      \"driver=${1:code}\",\n      \"at begin memoization=${1:code}\",\n      \"at end memoization=${1:code}\",\n      \"after memoization=${1:code}\",\n      \"integrated driver=${1:name}\",\n      \"trace\",\n      \"include source in cmemo\",\n      \"include context in ccmemo\",\n      \"direct ccmemo input\",\n      \"memo dir=${1:directory}\",\n      \"no memo dir\",\n      \"prefix=${1:prefix}\",\n      \"mkdir\",\n      \"mkdir command=${1:system command}\",\n      \"output-directory=${1:directory}\",\n      \"extract={${1:extraction method}}\",\n      \"perl extraction command=${1:system command}\",\n      \"perl extraction options=${1:options}\",\n      \"python extraction command=${1:system command}\",\n      \"python extraction options=${1:options}\",\n      \"tex extraction command=${1:system command}\",\n      \"tex extraction options=${1:options}\",\n      \"tex extraction script=${1:TeX code}\",\n      \"record=${1:record type}\",\n      \"no record\",\n      \"makefile=${1:filename}\",\n      \"sh=${1:filename}\",\n      \"bat=${1:filename}\",\n      \"activation=${1|immediate,deferred|}\",\n      \"activate deferred\",\n      \"activate={${1:command/env list}}\",\n      \"deactivate={${1:command/env list}}\",\n      \"activate csname=${1:csname}\",\n      \"deactivate csname=${1:csname}\",\n      \"activate key={${1:list of key names}}\",\n      \"deactivate key={${1:list of key names}}\",\n      \"try activate\",\n      \"force activate\",\n      \"auto={${1:command or env}}{${2:keylist}}\",\n      \"auto csname={${1:csname}}{${2:keylist}}\",\n      \"auto key={${1:key}}{${2:keylist}}\",\n      \"auto'={${1:command or env}}{${2:keylist}}\",\n      \"auto csname'={${1:csname}}{${2:keylist}}\",\n      \"auto key'={${1:key}}{${2:keylist}}\",\n      \"manual\",\n      \"ignore spaces\",\n      \"biblatex={${1:additional configuration}}\",\n      \"biblatex ccmemo cite=${1|nocite,replicate|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/memoize#c\",\n    \"\\\\usepackage/memoize#c,\\\\mmzset#c,\\\\mmznext#c,\\\\nommzkeys#c,\\\\mmz#c,\\\\begin{memoize}#c,\\\\nommz#c,\\\\begin{nomemoize}#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/memory.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newdata{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"newdata*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newdata*{${1:variable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/memorygraphs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:i}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaddtoshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaddtoshape{${1:name}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\": [\n      \"memory graph\"\n    ],\n    \"\\\\node#c\": [\n      \"block\",\n      \"arity=${1:n}\",\n      \"block mark north east\",\n      \"block mark north east={${1:options}}\",\n      \"block mark north west\",\n      \"block mark north west={${1:options}}\",\n      \"block mark south east\",\n      \"block mark south east={${1:options}}\",\n      \"block mark south west\",\n      \"block mark south west={${1:options}}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"every block/.style={${1:options}}\"\n    ],\n    \"\\\\draw#c\": [\n      \"ref\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/memucs-setspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"displayskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdisplayskipstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdisplayskipstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"memucsfninterwordhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noadjustquotespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustquotespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustfloatfnspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noadjustfloatfnspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"SetSinglespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"SetHangulspace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHangulspace{${1:factor1}}{${2:factor2}}\"\n      }\n    },\n    {\n      \"name\": \"SetHangulVerbatimSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHangulVerbatimSpace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"ResetHangulspace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ResetHangulspace{${1:factor1}}{${2:factor2}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreHangulspace\"\n    },\n    {\n      \"name\": \"singlespacing\"\n    },\n    {\n      \"name\": \"hangulspacing\"\n    },\n    {\n      \"name\": \"hangulfspacing\"\n    },\n    {\n      \"name\": \"hangulverbspacing\"\n    },\n    {\n      \"name\": \"onehalfspacing\"\n    },\n    {\n      \"name\": \"doublespacing\"\n    },\n    {\n      \"name\": \"epigraphspacinghook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraphspacing{${1:factor}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"singlespace\"\n    },\n    {\n      \"name\": \"singlespace*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"onehalfspace\"\n    },\n    {\n      \"name\": \"doublespace\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/memucs-setspace#c\": [\n      \"nodisplayskipstretch\",\n      \"nofloatspacing\",\n      \"quotespacing\",\n      \"hangul\",\n      \"adjustfootnotesep\",\n      \"adjustverbatim\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/memucs-setspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/menu.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"bbding\",\n      \"if\": \"hand\"\n    },\n    {\n      \"name\": \"fancybox\",\n      \"if\": \"framed\"\n    },\n    {\n      \"name\": \"fancybox\",\n      \"if\": \"grey\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"grey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menu{${1:entry1!entry2!!...%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menuitem{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"menuitem[${2:length}]{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuitemactive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menuitemactive{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuitemactive\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"menuitemactive[${2:length}]{${1:item%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuseparator\"\n    },\n    {\n      \"name\": \"menuseparator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"menuseparator[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"menutext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menutext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"menumathsymbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"menumathsymbols{${1:symbol1%formula}}{${2:symbol2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"menumathsymbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"menumathsymbols[${3:start%formula}]{${1:symbol1%formula}}{${2:symbol2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"menusymbols\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"menusymbols{${1:symbol1}}{${2:symbol2}}\"\n      }\n    },\n    {\n      \"name\": \"menusymbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"menusymbols[${3:start}]{${1:symbol1}}{${2:symbol2}}\"\n      }\n    },\n    {\n      \"name\": \"menusymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"menusymbols{${1:symbol1}}{${2:symbol2}}[${3:end}]\"\n      }\n    },\n    {\n      \"name\": \"menusymbols\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"menusymbols[${3:start}]{${1:symbol1}}{${2:symbol2}}[${4:end}]\"\n      }\n    },\n    {\n      \"name\": \"menufolderentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menufolderentry{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"menufolderentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"menufolderentry[${2:length}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"menuitemactivesymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuitemlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menusep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmenuoptionhand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptionhandtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptionhandfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmenuoptionframed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptionframedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptionframedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmenuoptiongrey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptiongreytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menuoptiongreyfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"menufolder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"menufolder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:length}]{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/menu#c\": [\n      \"hand\",\n      \"framed\",\n      \"grey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/menu#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/menucard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ColTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ColSubTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zapf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Allergens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Allergens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Entry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Entry{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"Entrycount\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Entrycount{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"Expl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Expl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ColSubText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ColSubText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ColText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ColText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"themenucount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Group\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"Group*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"menugroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"menugroup*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"menugroupsc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    },\n    {\n      \"name\": \"menugroupsc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:heading1%text}}{${2:heading2%text}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/menukeys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"menu[${2:separator}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"directory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directory{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"directory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"directory[${2:separator}]{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"keys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keys{${1:keys}}\"\n      }\n    },\n    {\n      \"name\": \"keys\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keys[${2:separator}]{${1:keys}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"newmenustylesimple{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"newmenustylesimple*{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"renewmenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"renewmenustylesimple{${1:name}}[${4:pre}]{${2:style%keyvals}}[${5:sep}][${6:post}]{${3:theme}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewmenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"renewmenustylesimple*{${1:name}}[${4:pre}]{${2:style%keyvals}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustylesimple\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"providemenustylesimple{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustylesimple*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[][]{}\",\n        \"snippet\": \"providemenustylesimple*{${1:name}}[${4:pre}]{${2:style}}[${5:sep}][${6:post}]{${3:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"newmenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"newmenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"renewmenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"renewmenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single%keyvals}}[${9:post}]{${6:theme}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 6\n      }\n    },\n    {\n      \"name\": \"renewmenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"renewmenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single%keyvals}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"providemenustyle{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"providemenustyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}{}{}[]{}\",\n        \"snippet\": \"providemenustyle*{${1:name}}[${7:pre}]{${2:first}}[${8:sep}]{${3:mid}}{${4:last}}{${5:single}}[${9:post}]{${6:theme}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentMenuElement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usemenucolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemenucolor{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drawtikzfolder[${1:front fill color%color}]\"\n      }\n    },\n    {\n      \"name\": \"drawtikzfolder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"drawtikzfolder[${1:front fill color%color}][${2:draw color%color}]\"\n      }\n    },\n    {\n      \"name\": \"copymenustyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copymenustyle{${1:copy}}{${2:original}}\"\n      }\n    },\n    {\n      \"name\": \"changemenuelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changemenuelement{${1:name}}{${2:element%keyvals}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\changemenuelement,\\\\changemenuelement*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"changemenuelement*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changemenuelement*{${1:name}}{${2:element%keyvals}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\changemenuelement,\\\\changemenuelement*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"changemenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"changemenucolortheme{${1:name}}{${2:color theme}}\"\n      }\n    },\n    {\n      \"name\": \"newmenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][][]\",\n        \"snippet\": \"newmenucolortheme{${1:name}}{${2:model}}{${3:bg}}{${4:br}}{${5:txt}}[${6:a}][${7:b}][${8:c}]\"\n      }\n    },\n    {\n      \"name\": \"copymenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copymenucolortheme{${1:copy}}{${2:original}}\"\n      }\n    },\n    {\n      \"name\": \"changemenucolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"changemenucolor{${1:name}}{${2:element%keyvals}}{${3:model}}{${4:color definition}}\",\n        \"keys\": [\n          \"\\\\changemenucolor\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewmenucolortheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[][][]\",\n        \"snippet\": \"renewmenucolortheme{${1:name}}{${2:model}}{${3:bg}}{${4:br}}{${5:txt}}[${6:a}][${7:b}][${8:c}]\"\n      }\n    },\n    {\n      \"name\": \"newmenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmenumacro{${1:macro%cmd}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewmenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewmenumacro{${1:macro}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providemenumacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providemenumacro{${1:macro%cmd}}[${3:input sep}]{${2:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"shift\"\n    },\n    {\n      \"name\": \"capslock\"\n    },\n    {\n      \"name\": \"tab\"\n    },\n    {\n      \"name\": \"esc\"\n    },\n    {\n      \"name\": \"oldesc\"\n    },\n    {\n      \"name\": \"ctrl\"\n    },\n    {\n      \"name\": \"Alt\"\n    },\n    {\n      \"name\": \"AltGr\"\n    },\n    {\n      \"name\": \"cmd\"\n    },\n    {\n      \"name\": \"Space\"\n    },\n    {\n      \"name\": \"SPACE\"\n    },\n    {\n      \"name\": \"return\"\n    },\n    {\n      \"name\": \"enter\"\n    },\n    {\n      \"name\": \"winmenu\"\n    },\n    {\n      \"name\": \"backspace\"\n    },\n    {\n      \"name\": \"del\"\n    },\n    {\n      \"name\": \"backdel\"\n    },\n    {\n      \"name\": \"arrowkeyup\"\n    },\n    {\n      \"name\": \"arrowkeydown\"\n    },\n    {\n      \"name\": \"arrowkeyright\"\n    },\n    {\n      \"name\": \"arrowkeyleft\"\n    },\n    {\n      \"name\": \"arrowkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowkey{${1:direction%keyvals}}\",\n        \"keys\": [\n          \"\\\\arrowkey#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctrlname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/menukeys#c\": [\n      \"definemenumacros\",\n      \"definekeys\",\n      \"mackeys=${1|text,symbols|}\",\n      \"os=${1|mac,win|}\"\n    ],\n    \"\\\\changemenuelement,\\\\changemenuelement*\": [\n      \"single\",\n      \"first\",\n      \"middle\",\n      \"last\",\n      \"pre\",\n      \"post\",\n      \"set\",\n      \"single\"\n    ],\n    \"\\\\changemenucolor\": [\n      \"bg\",\n      \"br\",\n      \"txt\"\n    ],\n    \"\\\\arrowkey#c\": [\n      \"^\",\n      \"v\",\n      \">\",\n      \"<\"\n    ],\n    \"\\\\renewmenustylesimple,\\\\renewmenustyle,\\\\newmenumacro,\\\\renewmenumacro,\\\\providemenumacro\": [\n      \"menus\",\n      \"roundedmenus\",\n      \"angularmenus\",\n      \"roundedkeys\",\n      \"shadowedroundedkeys\",\n      \"angularkeys\",\n      \"shadowedangularkeys\",\n      \"typewriterkeys\",\n      \"paths\",\n      \"pathswithfolder\",\n      \"pathswithblackfolder\",\n      \"hyphenatepaths\",\n      \"hyphenatepathswithfolder\",\n      \"hyphenatepathswithblackfolder\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/menukeys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mercatormap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mermapset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mermapset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mermapset#c\",\n          \"\\\\mermapset#c,\\\\mrcformlat#c,\\\\mrcformlon#c\",\n          \"\\\\mermapset#c,\\\\mrcdrawmap#c\",\n          \"\\\\mermapset#c,\\\\mrcdrawnetwork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcdefinemap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcdefinemap{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mrcdefinemap#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcmapeast\"\n    },\n    {\n      \"name\": \"mrcmapnorth\"\n    },\n    {\n      \"name\": \"mrcmapsouth\"\n    },\n    {\n      \"name\": \"mrcmapwest\"\n    },\n    {\n      \"name\": \"mrcmapattribution\"\n    },\n    {\n      \"name\": \"mrcmapattributionprint\"\n    },\n    {\n      \"name\": \"mrcpixelheight\"\n    },\n    {\n      \"name\": \"mrcpixelwidth\"\n    },\n    {\n      \"name\": \"mrcpgfpoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcpgfpoint{${1:latitude}}{${2:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mrcNPdef{${1:name}}{${2:latitude}}{${3:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfrompoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcNPfrompoint{${1:name}}{${2:TiKZ point}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcNPcs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPlat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcNPlat{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPlon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcNPlon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifmrcNPexists\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmrcNPexists{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmrcinmap\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifmrcinmap{${1:latitude}}{${2:longitude}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmrcNPinmap\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmrcNPinmap{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmrcinvicinity\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifmrcinvicinity{${1:latitude}}{${2:longitude}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifmrcNPinvicinity\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmrcNPinvicinity{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"mrcformlat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcformlat{${1:latitude}}\"\n      }\n    },\n    {\n      \"name\": \"mrcformlat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcformlat[${2:options%keyvals}]{${1:latitude}}\",\n        \"keys\": [\n          \"\\\\mermapset#c,\\\\mrcformlat#c,\\\\mrcformlon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcformlon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcformlon{${1:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"mrcformlon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcformlon[${2:options%keyvals}]{${1:longitude}}\",\n        \"keys\": [\n          \"\\\\mermapset#c,\\\\mrcformlat#c,\\\\mrcformlon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcactivatescript\"\n    },\n    {\n      \"name\": \"mrcsupplymap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcsupplymap{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mrcsupplymap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcsupplymap[${2:options%keyvals}]{${1:definition}}\",\n        \"keys\": [\n          \"\\\\mrcsupplymap#c,\\\\mermapsetsupply#c,\\\\mrcmap#c,\\\\mrcnewsupplysource#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mermapsetsupply\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mermapsetsupply{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mrcsupplymap#c,\\\\mermapsetsupply#c,\\\\mrcmap#c,\\\\mrcnewsupplysource#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcsetapikey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcsetapikey{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"mrcumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcumlaut{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"mrcapplymap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcapplymap{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mrcmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcmap{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mrcmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcmap[${2:options%keyvals}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mrcnewsupplysource\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcnewsupplysource{${1:source}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mrcdrawmap\"\n    },\n    {\n      \"name\": \"mrcdrawmap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mrcdrawmap[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\mermapset#c,\\\\mrcdrawmap#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcclipmap\"\n    },\n    {\n      \"name\": \"mrcboundmap\"\n    },\n    {\n      \"name\": \"mrcdrawnetwork\"\n    },\n    {\n      \"name\": \"mrcdrawnetwork\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mrcdrawnetwork[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\mermapset#c,\\\\mrcdrawnetwork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcdrawinfo\"\n    },\n    {\n      \"name\": \"mrctexwidth\"\n    },\n    {\n      \"name\": \"mrctexheight\"\n    },\n    {\n      \"name\": \"mrcscale\"\n    },\n    {\n      \"name\": \"mrctextokm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrctextokm{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"mrctextomile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrctextomile{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"mrckmtotex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrckmtotex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mrcmiletotex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcmiletotex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mrcmapscaledenominator\"\n    },\n    {\n      \"name\": \"mrcprettymapscale\"\n    },\n    {\n      \"name\": \"mrcprettymapwidth\"\n    },\n    {\n      \"name\": \"mrcprettymapheight\"\n    },\n    {\n      \"name\": \"mrcprettymapresolution\"\n    },\n    {\n      \"name\": \"mrcprettytilesize\"\n    },\n    {\n      \"name\": \"mrcdrawscalebar\"\n    },\n    {\n      \"name\": \"mrcdrawscalebar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mrcdrawscalebar[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\mrcdrawscalebar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcmarker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcmarker{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mrcmarker#c,\\\\mermapsetmarker#c,\\\\mrcnewmarkerstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mermapsetmarker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mermapsetmarker{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mrcmarker#c,\\\\mermapsetmarker#c,\\\\mrcnewmarkerstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mrcmarkerangle\"\n    },\n    {\n      \"name\": \"mrcmarkercategory\"\n    },\n    {\n      \"name\": \"mrcmarkercontents\"\n    },\n    {\n      \"name\": \"mrcmarkerdistance\"\n    },\n    {\n      \"name\": \"mrcmarkerfont\"\n    },\n    {\n      \"name\": \"mrcmarkergeneric\"\n    },\n    {\n      \"name\": \"mrcmarkerinnerradius\"\n    },\n    {\n      \"name\": \"mrcmarkerlatitude\"\n    },\n    {\n      \"name\": \"mrcmarkerlongitude\"\n    },\n    {\n      \"name\": \"mrcmarkerpictocontents\"\n    },\n    {\n      \"name\": \"mrcmarkerradius\"\n    },\n    {\n      \"name\": \"mrcmarkershift\"\n    },\n    {\n      \"name\": \"mrcmarkeruuid\"\n    },\n    {\n      \"name\": \"mrcnewmarkertype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcnewmarkertype{${1:type name}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"mrcnewmarkerstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcnewmarkerstyle{${1:style name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mrcrouteinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcrouteinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mrcrouteinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcrouteinput[${2:TikZ options}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mrcrouteinput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrcrouteinput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mrcrouteinput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mrcrouteinput*[${2:TikZ options}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mrcpoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcpoint{${1:latitude}}{${2:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"mrcdraworthodrome\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrcdraworthodrome{${1:lat1}}{${2:lon1}}{${3:lat2}}{${4:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcdraworthodrome\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mrcdraworthodrome[${5:TikZ options}]{${1:lat1}}{${2:lon1}}{${3:lat2}}{${4:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPdraworthodrome\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcNPdraworthodrome{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPdraworthodrome\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mrcNPdraworthodrome[${3:TikZ options}]{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoFraction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoFraction{${1:name}}{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}{${6:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoFraction\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoFraction{${1:name}}[${7:\\\\angle}]{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}{${6:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoFractionNamed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoFractionNamed{${1:name}}{${2:name1}}{${3:name2}}{${4:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoFractionNamed\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoFractionNamed{${1:name}}[${5:\\\\angle}]{${2:name1}}{${3:name2}}{${4:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoDistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoDistance{${1:name}}{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}{${6:distance}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoDistance\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoDistance{${1:name}}[${7:\\\\angle}]{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}{${6:distance}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoDistanceNamed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoDistanceNamed{${1:name}}{${2:name1}}{${3:name2}}{${4:distance}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPfromOrthoDistanceNamed\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"mrcNPfromOrthoDistanceNamed{${1:name}}[${5:\\\\angle}]{${2:name1}}{${3:name2}}{${4:distance}}\"\n      }\n    },\n    {\n      \"name\": \"mrcprettyorthodistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrcprettyorthodistance{${1:lat1}}{${2:lon1}}{${3:lat2}}{${4:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPprettyorthodistance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcNPprettyorthodistance{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcstoreorthodistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"mrcstoreorthodistance{${1:macro%cmd}}{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcprettyloxodistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mrcprettyloxodistance{${1:lat1}}{${2:lon1}}{${3:lat2}}{${4:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcNPprettyloxodistance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mrcNPprettyloxodistance{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcstoreloxodistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"mrcstoreloxodistance{${1:macro%cmd}}{${2:lat1}}{${3:lon1}}{${4:lat2}}{${5:lon2}}\"\n      }\n    },\n    {\n      \"name\": \"mrcTimewarpIdentity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrcTimewarpSlowStart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrcTimewarpSlowFinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrcTimewarpSlowStartFinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrcAnimFrame\"\n    },\n    {\n      \"name\": \"mrcAnimTime\"\n    },\n    {\n      \"name\": \"mrcAnimScaleDenom\"\n    },\n    {\n      \"name\": \"mrcAnimLatitude\"\n    },\n    {\n      \"name\": \"mrcAnimLongitude\"\n    },\n    {\n      \"name\": \"mrcAnimAngle\"\n    },\n    {\n      \"name\": \"mermaplastfivesum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mermaplastfivesum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mrcpkgprefix\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mrcroute\"\n    },\n    {\n      \"name\": \"mrcroute\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"mrcroute*\"\n    },\n    {\n      \"name\": \"mrcroute*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"mrcAnimation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{mrcAnimation}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\mermapset#c\": [\n      \"vicinity=\",\n      \"python=${1:python}\",\n      \"definition prefix=${1:prefix}\",\n      \"fail on missing resource\",\n      \"every route={${1:TikZ options}}\",\n      \"samples=${1:number}\"\n    ],\n    \"\\\\mrcdefinemap#c\": [\n      \"north=${1:latitude}\",\n      \"south=${1:latitude}\",\n      \"west=${1:longitude}\",\n      \"east=${1:longitude}\",\n      \"xmin=${1:tile xmin}\",\n      \"xmax=${1:tile xmax}\",\n      \"ymin=${1:tile ymin}\",\n      \"ymax=${1:tile ymax}\",\n      \"zoom=${1:zoom}\",\n      \"pixelwidth=${1:pixels}\",\n      \"pixelheight=${1:pixels}\",\n      \"westoffset=${1:tile offset}\",\n      \"northoffset=${1:tile offset}\",\n      \"southoffset=${1:tile offset}\",\n      \"basename=${1:tile base name}\",\n      \"attribution=${1:text}\",\n      \"attribution print=${1:text}\",\n      \"resource=${1|none,tiles,mergedmap,wmsmap|}\",\n      \"tile size=\"\n    ],\n    \"\\\\mermapset#c,\\\\mrcformlat#c,\\\\mrcformlon#c\": [\n      \"format angle=${1|decimal,decimal-0,decimal-1,decimal-2,decimal-3,decimal-4,degree,minute,second|}\",\n      \"format south=${1:code}\",\n      \"format north=${1:code}\",\n      \"format east=${1:code}\",\n      \"format west=${1:code}\",\n      \"format NEWS numeric\",\n      \"format NEWS absolute\"\n    ],\n    \"\\\\mrcsupplymap#c,\\\\mermapsetsupply#c,\\\\mrcmap#c,\\\\mrcnewsupplysource#c\": [\n      \"type=${1|reference,areafit,boundaries|}\",\n      \"zoom=${1:zoom}\",\n      \"north=${1:latitude}\",\n      \"south=${1:latitude}\",\n      \"west=${1:longitude}\",\n      \"east=${1:longitude}\",\n      \"area={${1:name1,name2,...}}\",\n      \"add area={${1:name1,name2,...}}\",\n      \"area from marker input=${1:file name}\",\n      \"add area from marker input=${1:file name}\",\n      \"area to reference\",\n      \"latitude=${1:latitude}\",\n      \"longitude=${1:longitude}\",\n      \"position=${1:latitude}:${2:longitude}\",\n      \"named position=${1:name}\",\n      \"width=${1:width in tiles}\",\n      \"tex width=\",\n      \"height=${1:height in tiles}\",\n      \"tex height=\",\n      \"align=${1|northwest,north,northeast,west,center,east,southwest,south,southeast|}\",\n      \"target=${1|none,tiles,mergedmap,wmsmap|}\",\n      \"url=${1:URL}\",\n      \"url with api key={${1:prefix}}{${2:name}}{${3:postfix}}\",\n      \"attribution=${1:text}\",\n      \"attribution print=${1:text}\",\n      \"basename=${1:tile base name}\",\n      \"flex reference scale=${1:scale denominator}\",\n      \"flex area scale=${1:scale denominator}\",\n      \"flex area fit\",\n      \"flex area fit=\",\n      \"pixel=${1:pixel size}\",\n      \"dpi=${1:dpi value}\",\n      \"source=${1|dummy,opentopomap,thunderforest opencyclemap,thunderforest transport,thunderforest landscape,thunderforest outdoors,thunderforest atlas,thunderforest transport-dark,thunderforest spinal-map,thunderforest pioneer,thunderforest mobile-atlas,thunderforest neighbourhood,topplusopen web,topplusopen web grau,topplusopen web light,topplusopen web light grau,topplusopen p5,topplusopen p5 grau,topplusopen p10,topplusopen p10 grau,topplusopen p17.5,topplusopen p17.5 grau,topplusopen p25,topplusopen p25 grau,topplusopen p50,topplusopen p50 grau,topplusopen p100,topplusopen p100 grau,topplusopen p250,topplusopen p250 grau|}\"\n    ],\n    \"\\\\mermapset#c,\\\\mrcdrawmap#c\": [\n      \"draw=${1|auto,path,tiles,mergedmap,wmsmap|}\",\n      \"map path={${1:TikZ options}}\",\n      \"map clip=${1:code}\",\n      \"map scope={${1:TikZ options}}\",\n      \"tile size=\",\n      \"flex tile size=\",\n      \"flex zoom=${1:pseudo zoom}\",\n      \"flex scale=${1:scale denominator}:${2:latitude}\",\n      \"named flex scale=${1:scale denominator}:${2:name}\"\n    ],\n    \"\\\\mermapset#c,\\\\mrcdrawnetwork#c\": [\n      \"network pieces=${1:number}\",\n      \"network distance=\",\n      \"network font=${1:font commands}\"\n    ],\n    \"\\\\mrcdrawscalebar#c\": [\n      \"width-in-km=${1:number}\",\n      \"width-in-kilometer=${1:number}\",\n      \"width-in-meter=${1:number}\",\n      \"width-in-mile=${1:number}\",\n      \"width-in-yard=${1:number}\",\n      \"partitions=${1:number}\",\n      \"height=\",\n      \"at={${1:TikZ coordinate}}\",\n      \"placement=${1:TikZ placement}\",\n      \"south-east-inside\",\n      \"south-east-inside=${1:xshift};${2:yshift}\",\n      \"south-east-outside\",\n      \"south-east-outside=${1:xshift};${2:yshift}\",\n      \"south-west-inside\",\n      \"south-west-inside=${1:xshift};${2:yshift}\",\n      \"south-west-outside\",\n      \"south-west-outside=${1:xshift};${2:yshift}\",\n      \"north-west-inside\",\n      \"north-west-inside=${1:xshift};${2:yshift}\",\n      \"north-west-outside\",\n      \"north-west-outside=${1:xshift};${2:yshift}\",\n      \"north-east-inside\",\n      \"north-east-inside=${1:xshift};${2:yshift}\",\n      \"north-east-outside\",\n      \"north-east-outside=${1:xshift};${2:yshift}\",\n      \"major style={${1:TikZ options}}\",\n      \"minor style={${1:TikZ options}}\",\n      \"double\",\n      \"single\",\n      \"transparent\",\n      \"solid\",\n      \"scale=${1:scale denominator}\"\n    ],\n    \"\\\\mrcmarker#c,\\\\mermapsetmarker#c,\\\\mrcnewmarkerstyle#c\": [\n      \"first options={${1:options}}\",\n      \"last options={${1:options}}\",\n      \"latitude=${1:latitude}\",\n      \"lat=${1:latitude}\",\n      \"longitude=${1:longitude}\",\n      \"lon=${1:longitude}\",\n      \"position=${1:latitude}:${2:longitude}\",\n      \"named position=${1:name}\",\n      \"use inside=${1|map,vicinity|}\",\n      \"contents=${1:text}\",\n      \"pictocontents=${1:code}\",\n      \"alias=${1:text}\",\n      \"uuid=${1:uuid}\",\n      \"generic=${1:text}\",\n      \"category=${1:category}\",\n      \"show\",\n      \"hide\",\n      \"show category=${1:category}\",\n      \"show all but category=${1:category}\",\n      \"hide category=${1:category}\",\n      \"hide all but category=${1:category}\",\n      \"url=${1:URL}\",\n      \"link=${1:name}\",\n      \"use urls\",\n      \"ignore urls\",\n      \"use links\",\n      \"ignore links\",\n      \"type=${1|classic,pin,pinflip,drop,pictodrop,pictodropring,knob,pictoknob,pictoknobring,ringx,markx|}\",\n      \"font=${1:font commands}\",\n      \"text=\",\n      \"draw=\",\n      \"fill=\",\n      \"angle=${1:degrees}\",\n      \"shift=\",\n      \"distance=\",\n      \"radius=\",\n      \"inner radius=\",\n      \"path style={${1:TikZ options}}\",\n      \"node style={${1:TikZ options}}\"\n    ],\n    \"\\\\begin{mrcAnimation}#c\": [\n      \"start-position=${1:latitude}/${2:longitude}\",\n      \"named-start-position=${1:name}\",\n      \"final-position=${1:latitude}/${2:longitude}\",\n      \"named-final-position=${1:name}\",\n      \"position=${1:latitude}/${2:longitude}\",\n      \"named-position=${1:name}\",\n      \"frames=${1:integer}\",\n      \"drop-first-frame\",\n      \"drop-last-frame\",\n      \"drop-no-frame\",\n      \"scale-denominators=${1:time and scale sequence}\",\n      \"common-scale-denominator=${1:scale denominator}\",\n      \"timewarp=${1:macro}\",\n      \"timewarp-identity\",\n      \"timewarp-slow-start\",\n      \"timewarp-slow-start=${1:exponent}\",\n      \"timewarp-slow-final\",\n      \"timewarp-slow-final=${1:exponent}\",\n      \"timewarp-slow-start-final\",\n      \"timewarp-slow-start-final=${1:exponent}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/merge.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"merge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mergeh.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"merge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/merriweather.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"merriweather\"\n    },\n    {\n      \"name\": \"merriweathersans\"\n    },\n    {\n      \"name\": \"merriweatherlight\"\n    },\n    {\n      \"name\": \"merriweathersanslight\"\n    },\n    {\n      \"name\": \"merriweatherblack\"\n    },\n    {\n      \"name\": \"merriweathersansblack\"\n    },\n    {\n      \"name\": \"merriweatherfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"merriweathersffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/merriweather#c\": [\n      \"scaled=${1:factor}\",\n      \"sf\",\n      \"rm\",\n      \"sfdefault\",\n      \"type1\",\n      \"light\",\n      \"rmlight\",\n      \"sflight\",\n      \"black\",\n      \"rmblack\",\n      \"sfblack\",\n      \"rmlining\",\n      \"rmoldstyle\",\n      \"sflining\",\n      \"sfoldstyle\",\n      \"rmtabular\",\n      \"rmproportional\",\n      \"sftabular\",\n      \"sfproportional\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/merriweather#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/messagebubbles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"fancybox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"messagebubbleleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"messagebubbleleft{${1:caption%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"messagebubbleright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"messagebubbleright{${1:caption%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"messagebubble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"messagebubble{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"messagebubblewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timestampright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestampright{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"timestampleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestampleft{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"timestamp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timestamp{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/messagepassing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"float\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newprocess\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newprocess{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newprocess\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newprocess{${1:name}}[${2:display name}]\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newprocesswithlength{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithlength\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newprocesswithlength{${1:name}}[${3:display name}]{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"processlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"processlength{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithstateinterval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newprocesswithstateinterval{${1:name}}{${2:state name}}\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithstateinterval\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newprocesswithstateinterval{${1:name}}[${3:display name}]{${2:state name}}\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithcrash\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newprocesswithcrash{${1:name}}{${2:length%plain}}{${3:crash coord name}}\"\n      }\n    },\n    {\n      \"name\": \"newprocesswithcrash\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newprocesswithcrash{${1:name}}[${4:display name}]{${2:length%plain}}{${3:crash coord name}}\"\n      }\n    },\n    {\n      \"name\": \"drawtimeline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawtimeline{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"send\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"send{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}\"\n      }\n    },\n    {\n      \"name\": \"sendwithname\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendwithname{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"sendwithname\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"sendwithname{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:label}}[${6:label options}]\"\n      }\n    },\n    {\n      \"name\": \"sendoutofband\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendoutofband{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"crash\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crash{${1:process}}{${2:time}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"restart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"restart{${1:name}}{${2:date}}{${3:duration}}\"\n      }\n    },\n    {\n      \"name\": \"checkpoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"checkpoint{${1:process}}{${2:time}}{${3:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"checkpointspecial\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"checkpointspecial{${1:process}}{${2:time}}{${3:name%formula}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"stateinterval\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stateinterval{${1:process}}{${2:time}}{${3:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"stateintervalspecial\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"stateintervalspecial{${1:process}}{${2:time}}{${3:name%formula}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"colouredbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"colouredbox{${1:process1}}{${2:process2}}{${3:start time}}{${4:end time}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"annotate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"annotate{${1:process}}{${2:time}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"annotatexplicit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"annotatexplicit{${1:process}}{${2:time}}{${3:text}}{${4:name}}\"\n      }\n    },\n    {\n      \"name\": \"sendwithstateinterval\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sendwithstateinterval{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sendwithstateintervalandname\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sendwithstateintervalandname{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:name%formula}}{${6:message name}}\"\n      }\n    },\n    {\n      \"name\": \"sendwithstateintervalandname\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}[]\",\n        \"snippet\": \"sendwithstateintervalandname{${1:sender}}{${2:send time}}{${3:receiver}}{${4:receive time}}{${5:name%formula}}{${6:message name}}[${7:label options}]\"\n      }\n    },\n    {\n      \"name\": \"colouredboxcolour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colouredboxcolour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"oobcolour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oobcolour{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"messagepassing\"\n    },\n    {\n      \"name\": \"messagepassing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"messagepassing\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:TikZ options}][${2:caption%text}]\"\n      }\n    },\n    {\n      \"name\": \"messagepassing\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:TikZ options}][${2:caption%text}][${3:placement}]\"\n      }\n    },\n    {\n      \"name\": \"messagepassing\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"[${1:TikZ options}][${2:caption%text}][${3:placement}][${4:label}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/messagepassing#c\": [\n      \"vertical\",\n      \"annotatevertical\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/messagepassing#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/metainfo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"typesetmetainfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetmetainfo{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/metalogo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"setlogokern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlogokern{${1:string}}{${2:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"setlogodrop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlogodrop{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"setlogodrop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlogodrop[${2:string}]{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"setLaTeXa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLaTeXa{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setLaTeXee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setLaTeXee{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"seteverylogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seteverylogo{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"everylogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everylogo{${1:tokens}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/metalogox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"metalogo\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"adjustlogos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjustlogos{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\adjustlogos,\\\\usepackage/metalogox#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"autoadjustlogos\"\n    },\n    {\n      \"name\": \"autoadjustlogos*\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\adjustlogos,\\\\usepackage/metalogox#c\": [\n      \"default\",\n      \"accanthis\",\n      \"alegreya\",\n      \"algolrevived\",\n      \"antpolt\",\n      \"avantgarde\",\n      \"baskerville\",\n      \"berenis\",\n      \"bodoni\",\n      \"boisik\",\n      \"bookman\",\n      \"charter\",\n      \"crimson\",\n      \"coelacanth\",\n      \"didot\",\n      \"droidserif\",\n      \"droidsans\",\n      \"gentium\",\n      \"helvetica\",\n      \"kerkis\",\n      \"kpfonts\",\n      \"libertine\",\n      \"libertinus\",\n      \"librebodoni\",\n      \"lmodern\",\n      \"lmodernsans\",\n      \"merriweather\",\n      \"newcent\",\n      \"noto\",\n      \"palatino\",\n      \"pandora\",\n      \"paratype\",\n      \"plexserif\",\n      \"plexsans\",\n      \"quattrocento\",\n      \"sourceserifpro\",\n      \"sourcesanspro\",\n      \"times\",\n      \"utopia\",\n      \"venturis\",\n      \"vera\",\n      \"verasans\",\n      \"tgbonum\",\n      \"tgheros\",\n      \"tgpagella\",\n      \"tgschola\",\n      \"tgtermes\",\n      \"antiqua\",\n      \"anttor\",\n      \"artemisia\",\n      \"caladea\",\n      \"caslon\",\n      \"cochineal\",\n      \"concmath\",\n      \"drm\",\n      \"garamond\",\n      \"imfellenglish\",\n      \"literat\",\n      \"roboto\",\n      \"romande\"\n    ]\n  },\n  \"args\": [\n    \"\\\\adjustlogos,\\\\usepackage/metalogox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/metastr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"metadef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metadef{${1:reg}}\"\n      }\n    },\n    {\n      \"name\": \"metaset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metaset{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metaset[${3:var}]{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metasetlang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metasetlang{${1:ln-CN}}\"\n      }\n    },\n    {\n      \"name\": \"metasetlang*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metasetlang*{${1:ln-CN}}\"\n      }\n    },\n    {\n      \"name\": \"metaget\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metaget[${3:var}]{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaif\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"metaif[${4:}]{${1:reg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metaunset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metaunset{${1:reg}}\"\n      }\n    },\n    {\n      \"name\": \"metaunset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metaunset[${2:var}]{${1:reg}}\"\n      }\n    },\n    {\n      \"name\": \"metaappend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metaappend{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaappend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metaappend[${3:var}]{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaprepend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metaprepend{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaprepend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metaprepend[${3:var}]{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaaddsep\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metaaddsep{${1:reg}}{${2:sep}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"metaaddsep\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"metaaddsep[${4:var}]{${1:reg}}{${2:sep}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"metapick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metapick[${2:var}]{${1:reg}}\"\n      }\n    },\n    {\n      \"name\": \"metaifpick\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"metaifpick[${4:var}]{${1:reg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"metacompose\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"metacompose[${5:var}]{${1:reg}}{${2:prefix}}{${3:postfix}}{${4:empty}}\"\n      }\n    },\n    {\n      \"name\": \"metatitleline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metatitleline[${2:var}]{${1:reg}}\"\n      }\n    },\n    {\n      \"name\": \"metatitlelinetwo\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"metatitlelinetwo[${3:var1}]{${1:reg1}}[${4:var2}]{${2:reg2}}\"\n      }\n    },\n    {\n      \"name\": \"metawritepdfinfo\"\n    },\n    {\n      \"name\": \"metawritepdfaux\"\n    },\n    {\n      \"name\": \"metawritepdfpreamble\"\n    },\n    {\n      \"name\": \"metawritepdfcontact\"\n    },\n    {\n      \"name\": \"metawritepdfrights\"\n    },\n    {\n      \"name\": \"metawritepdf\"\n    },\n    {\n      \"name\": \"metacopyright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metacopyright{${1:preset%keyvals}}\",\n        \"keys\": [\n          \"\\\\metacopyright\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metalicense\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metalicense{${1:preset%keyvals}}\",\n        \"keys\": [\n          \"\\\\metalicense\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metalicensecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metalicensecc{${1:license%keyvals}}\",\n        \"keys\": [\n          \"\\\\metalicensecc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metaterm\"\n    },\n    {\n      \"name\": \"metatranslate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metatranslate[${2:ln}]{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"metasetterm\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metasetterm[${3:ln}]{${1:reg}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"metasetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metasetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\metasetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metacomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metatilde\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/metastr#c\": [\n      \"hyperref\",\n      \"hyperxmp\",\n      \"checkdef\",\n      \"cclogo\",\n      \"cclogocurr=${1|dollar,euro,yen|}\",\n      \"cclogoshape=${1|box,slim|}\",\n      \"xmppdfinfo\",\n      \"draft\",\n      \"titlematter\",\n      \"course\",\n      \"loadlang=${1|en,de,fr,es|}\"\n    ],\n    \"\\\\metacopyright\": [\n      \"plain\",\n      \"parts\",\n      \"doc\",\n      \"doc-parts\",\n      \"reserved\",\n      \"publicdomain\"\n    ],\n    \"\\\\metalicense\": [\n      \"consent\",\n      \"consent-noncom\",\n      \"lppl\"\n    ],\n    \"\\\\metalicensecc\": [\n      \"by\",\n      \"by-sa\",\n      \"by-nd\",\n      \"by-nc\",\n      \"by-nc-sa\",\n      \"by-nc-nd\",\n      \"zero\",\n      \"pd\"\n    ],\n    \"\\\\metasetup#c\": [\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/metastr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/method.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"head\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"head{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"para\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"para{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"precond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precond{${1:precondition%text}}\"\n      }\n    },\n    {\n      \"name\": \"descr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"descr{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"postcond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcond{${1:postcondition%text}}\"\n      }\n    },\n    {\n      \"name\": \"error\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"error{${1:exception%text}}\"\n      }\n    },\n    {\n      \"name\": \"return\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"return{${1:return value%text}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"see{${1:where%text}}\"\n      }\n    },\n    {\n      \"name\": \"headtabbed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headtabbed{${1:function name}}\"\n      }\n    },\n    {\n      \"name\": \"headpara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headpara{${1:parameter name}}\"\n      }\n    },\n    {\n      \"name\": \"init\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"init{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"del{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"textdel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdescr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpostcond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textprecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textreturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsee\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"method\"\n    },\n    {\n      \"name\": \"data\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/method#c\": [\n      \"german\",\n      \"english\",\n      \"french\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/method#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/methylen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"aliphat\"\n    },\n    {\n      \"name\": \"carom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"decamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"decamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dimethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dimethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dimethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dimethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dimethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"dimethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dimethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"heptamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"heptamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"heptamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"heptamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"heptamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"heptamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"heptamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"heptamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hexamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hexamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hexamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hexamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hexamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"hexamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hexamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nonamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"nonamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nonamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"octamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"octamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"octamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"octamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"octamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"octamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"octamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"octamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pentamethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pentamethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pentamethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pentamethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pentamethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pentamethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pentamethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pentamethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tetramethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tetramethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenecap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tetramethylenecap{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenecap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tetramethylenecap[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenecup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tetramethylenecup{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenecup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tetramethylenecup[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tetramethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"tetramethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tetramethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"trimethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trimethylene{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"trimethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trimethylene[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"trimethylenei\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trimethylenei{${1:atomlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"trimethylenei\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trimethylenei[${3:bondlist}]{${1:atomlist}}{${2:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/metre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"metra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metra{${1:metrical-symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metra\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metra[${2:setup}]{${1:metrical-symbols}}\"\n      }\n    },\n    {\n      \"name\": \"r\"\n    },\n    {\n      \"name\": \"r\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"r[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"R[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"t\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"t[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"T\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"T[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"v\"\n    },\n    {\n      \"name\": \"k\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"q\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"d\"\n    },\n    {\n      \"name\": \"S\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"S{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"S\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"S[${2:factor}]{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"n\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"n{${1:above}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ni\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ni{${1:below}}{${2:symbol}}\"\n      },\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"N\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"N{${1:above}}{${2:symbol}}{${3:below}}\"\n      }\n    },\n    {\n      \"name\": \"numeri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numeri{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"b\"\n    },\n    {\n      \"name\": \"a\"\n    },\n    {\n      \"name\": \"ma\"\n    },\n    {\n      \"name\": \"bba\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"mb\"\n    },\n    {\n      \"name\": \"bbmb\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"bbmx\"\n    },\n    {\n      \"name\": \"bb\"\n    },\n    {\n      \"name\": \"bbb\"\n    },\n    {\n      \"name\": \"mbb\"\n    },\n    {\n      \"name\": \"mbbx\"\n    },\n    {\n      \"name\": \"ppm\"\n    },\n    {\n      \"name\": \"pppm\"\n    },\n    {\n      \"name\": \"vppm\"\n    },\n    {\n      \"name\": \"vpppm\"\n    },\n    {\n      \"name\": \"tsmb\"\n    },\n    {\n      \"name\": \"tsbm\"\n    },\n    {\n      \"name\": \"tsmm\"\n    },\n    {\n      \"name\": \"ps\"\n    },\n    {\n      \"name\": \"oo\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"Ppp\"\n    },\n    {\n      \"name\": \"Pp\"\n    },\n    {\n      \"name\": \"Pxp\"\n    },\n    {\n      \"name\": \"Pppp\"\n    },\n    {\n      \"name\": \"Ppppp\"\n    },\n    {\n      \"name\": \"Cc\"\n    },\n    {\n      \"name\": \"Ccc\"\n    },\n    {\n      \"name\": \"c\"\n    },\n    {\n      \"name\": \"cc\"\n    },\n    {\n      \"name\": \"ccc\"\n    },\n    {\n      \"name\": \"ppp\"\n    },\n    {\n      \"name\": \"pp\"\n    },\n    {\n      \"name\": \"pxp\"\n    },\n    {\n      \"name\": \"pppp\"\n    },\n    {\n      \"name\": \"ppppp\"\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"x\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"gM\"\n    },\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"gB\"\n    },\n    {\n      \"name\": \"Bm\"\n    },\n    {\n      \"name\": \"gBm\"\n    },\n    {\n      \"name\": \"Mb\"\n    },\n    {\n      \"name\": \"gMb\"\n    },\n    {\n      \"name\": \"Mbb\"\n    },\n    {\n      \"name\": \"gMbb\"\n    },\n    {\n      \"name\": \"mBb\"\n    },\n    {\n      \"name\": \"gmBb\"\n    },\n    {\n      \"name\": \"mbB\"\n    },\n    {\n      \"name\": \"gmbB\"\n    },\n    {\n      \"name\": \"BBm\"\n    },\n    {\n      \"name\": \"gBBm\"\n    },\n    {\n      \"name\": \"Bbm\"\n    },\n    {\n      \"name\": \"gBbm\"\n    },\n    {\n      \"name\": \"bBm\"\n    },\n    {\n      \"name\": \"gbBm\"\n    },\n    {\n      \"name\": \"BB\"\n    },\n    {\n      \"name\": \"gBB\"\n    },\n    {\n      \"name\": \"Bb\"\n    },\n    {\n      \"name\": \"gBb\"\n    },\n    {\n      \"name\": \"bB\"\n    },\n    {\n      \"name\": \"gbB\"\n    },\n    {\n      \"name\": \"MetraStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MetraStyle{${1:style name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"InterSigna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InterSigna{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"InterPedes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InterPedes{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"SubSigna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubSigna{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"Intervallum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Intervallum{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"Magnitudo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Magnitudo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ms{${1:style name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"is\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"is{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"ip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ip{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"ss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ss{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"i\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"i{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"m\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"m{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"en\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"En\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"st\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Elevatio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Elevatio{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"Translatio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Translatio{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"e\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"e{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"t\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"MetrikeFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MetrikeFont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"sigla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigla{${1:abbrv-specs}}\"\n      }\n    },\n    {\n      \"name\": \"sigla\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sigla[${2:n|N}]{${1:abbrv-specs}}\"\n      }\n    },\n    {\n      \"name\": \"charcolon\"\n    },\n    {\n      \"name\": \"charslash\"\n    },\n    {\n      \"name\": \"FaciesSiglorum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FaciesSiglorum{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"angus\"\n    },\n    {\n      \"name\": \"Angus\"\n    },\n    {\n      \"name\": \"angud\"\n    },\n    {\n      \"name\": \"Angud\"\n    },\n    {\n      \"name\": \"quadras\"\n    },\n    {\n      \"name\": \"Quadras\"\n    },\n    {\n      \"name\": \"quadrad\"\n    },\n    {\n      \"name\": \"Quadrad\"\n    },\n    {\n      \"name\": \"alas\"\n    },\n    {\n      \"name\": \"Alas\"\n    },\n    {\n      \"name\": \"alad\"\n    },\n    {\n      \"name\": \"Alad\"\n    },\n    {\n      \"name\": \"semi\",\n      \"arg\": {\n        \"format\": \"[\",\n        \"snippet\": \"semi[\"\n      }\n    },\n    {\n      \"name\": \"semi]\"\n    },\n    {\n      \"name\": \"crux\"\n    },\n    {\n      \"name\": \"Crux\"\n    },\n    {\n      \"name\": \"anaclasis\"\n    },\n    {\n      \"name\": \"anaclasis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"anaclasis[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Anaclasis\"\n    },\n    {\n      \"name\": \"Anaclasis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Anaclasis[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"antisigma\"\n    },\n    {\n      \"name\": \"antisigma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antisigma[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Antisigma\"\n    },\n    {\n      \"name\": \"Antisigma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Antisigma[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"asteriscus\"\n    },\n    {\n      \"name\": \"asteriscus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"asteriscus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Asteriscus\"\n    },\n    {\n      \"name\": \"Asteriscus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Asteriscus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"catalexis\"\n    },\n    {\n      \"name\": \"catalexis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"catalexis[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Catalexis\"\n    },\n    {\n      \"name\": \"Catalexis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Catalexis[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"diple\"\n    },\n    {\n      \"name\": \"diple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"diple[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"diple*\"\n    },\n    {\n      \"name\": \"diple*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"diple*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Diple\"\n    },\n    {\n      \"name\": \"Diple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Diple[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Diple*\"\n    },\n    {\n      \"name\": \"Diple*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Diple*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"antidiple\"\n    },\n    {\n      \"name\": \"antidiple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antidiple[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"antidiple*\"\n    },\n    {\n      \"name\": \"antidiple*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"antidiple*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Antidiple\"\n    },\n    {\n      \"name\": \"Antidiple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Antidiple[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Antidiple*\"\n    },\n    {\n      \"name\": \"Antidiple*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Antidiple*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"obelus\"\n    },\n    {\n      \"name\": \"obelus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"obelus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"obelus*\"\n    },\n    {\n      \"name\": \"obelus*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"obelus*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Obelus\"\n    },\n    {\n      \"name\": \"Obelus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Obelus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Obelus*\"\n    },\n    {\n      \"name\": \"Obelus*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Obelus*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"respondens\"\n    },\n    {\n      \"name\": \"respondens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"respondens[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Respondens\"\n    },\n    {\n      \"name\": \"Respondens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Respondens[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"terminus\"\n    },\n    {\n      \"name\": \"terminus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"terminus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"terminus*\"\n    },\n    {\n      \"name\": \"terminus*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"terminus*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Terminus\"\n    },\n    {\n      \"name\": \"Terminus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Terminus[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Terminus*\"\n    },\n    {\n      \"name\": \"Terminus*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Terminus*[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"margini\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margini{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margini*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margini*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"erasa\"\n    },\n    {\n      \"name\": \"positio\"\n    },\n    {\n      \"name\": \"Positio\"\n    },\n    {\n      \"name\": \"punctum\"\n    },\n    {\n      \"name\": \"punctum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"punctum[${1:repetitions}]\"\n      }\n    },\n    {\n      \"name\": \"Punctum\"\n    },\n    {\n      \"name\": \"Punctum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Punctum[${1:repetitions}]\"\n      }\n    },\n    {\n      \"name\": \"tie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tie{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"tie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tie[${2:factor}]{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"tie*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tie*{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"tie*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tie*[${2:factor}]{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"itie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itie{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"itie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"itie[${2:factor}]{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"itie*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itie*{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"itie*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"itie*[${2:factor}]{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"linea\"\n    },\n    {\n      \"name\": \"bifida\"\n    },\n    {\n      \"name\": \"Bifida\"\n    },\n    {\n      \"name\": \"lunata\"\n    },\n    {\n      \"name\": \"Lunata\"\n    },\n    {\n      \"name\": \"geminata\"\n    },\n    {\n      \"name\": \"antelineam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antelineam{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"postlineam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postlineam{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"coronis\"\n    },\n    {\n      \"name\": \"imago\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imago{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"imago\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imago[${2:factor}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"imago*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imago*{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"imago*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"imago*[${2:factor}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"novalinea\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"novalinea{${1:cmd}}{${2:indent%l}}{${3:length}}{${4:factor}}\"\n      }\n    },\n    {\n      \"name\": \"novageminata\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"novageminata{${1:cmd}}{${2:indent%l}}{${3:length}}{${4:factor}}\"\n      }\n    },\n    {\n      \"name\": \"lineola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineola{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lineola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lineola[${2:factor}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Lineola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lineola{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Lineola\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lineola[${2:factor}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"structa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"structa{${1:text%plain}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrike\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"metrica\"\n    },\n    {\n      \"name\": \"metrica\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:n|N}]\"\n      }\n    },\n    {\n      \"name\": \"metrike\"\n    },\n    {\n      \"name\": \"metrike\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:n|N}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/metre#c,\\\\MetraStyle,\\\\ms\": [\n      \"st\",\n      \"en\",\n      \"En\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/metre#c,\\\\MetraStyle,\\\\ms\"\n  ]\n}"
  },
  {
    "path": "dev/packages/metrix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"metricsymbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metricsymbols{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metricsymbols*{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metricsymbols[${2:number=higlighting}]{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metricsymbols*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metricsymbols*[${2:number=higlighting}]{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"metrics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metrics{${1:symbols}}{${2:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"metrics\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"metrics[${3:number=higlighting}]{${1:symbols}}{${2:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"acct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acct{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"brv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brv{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"lng\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lng{${1:vowel}}\"\n      }\n    },\n    {\n      \"name\": \"bow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bow{${1:syllables}}\"\n      }\n    },\n    {\n      \"name\": \"verseref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseref{${1:reference}}\"\n      }\n    },\n    {\n      \"name\": \"setmetrixvar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmetrixvar{${1:variable%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\setmetrixvar,\\\\usemetrixvar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemetrixvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemetrixvar{${1:variable%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmetrixvar,\\\\usemetrixvar\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"symbolline\"\n    },\n    {\n      \"name\": \"metricverses\"\n    },\n    {\n      \"name\": \"metricverses\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:source}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setmetrixvar,\\\\usemetrixvar\": [\n      \"symbollinewidth\",\n      \"bigsymbollinewidth\",\n      \"accentlinewidth\",\n      \"bowlinewidth\",\n      \"symbolsep\",\n      \"baseunit\",\n      \"bigbaseunit\",\n      \"shortsyllablelimit\",\n      \"gap\",\n      \"symbolshift\",\n      \"lngshift\",\n      \"lngshortening\",\n      \"lngminlength\",\n      \"brvshift\",\n      \"dotshift\",\n      \"itcorrection\",\n      \"accentxshift\",\n      \"bowshift\",\n      \"bowshortening\",\n      \"bowlooseness\",\n      \"symbolcolor\",\n      \"accentcolor\",\n      \"bowcolor\",\n      \"highlightcolor\",\n      \"fillcolor\",\n      \"arrow\",\n      \"breakgap\",\n      \"emptywidth\",\n      \"acute\",\n      \"grave\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/metsymb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"zerookta\"\n    },\n    {\n      \"name\": \"oneokta\"\n    },\n    {\n      \"name\": \"twooktas\"\n    },\n    {\n      \"name\": \"threeoktas\"\n    },\n    {\n      \"name\": \"fouroktas\"\n    },\n    {\n      \"name\": \"fiveoktas\"\n    },\n    {\n      \"name\": \"sixoktas\"\n    },\n    {\n      \"name\": \"sevenoktas\"\n    },\n    {\n      \"name\": \"eightoktas\"\n    },\n    {\n      \"name\": \"nineoktas\"\n    },\n    {\n      \"name\": \"cirrus\"\n    },\n    {\n      \"name\": \"cirrocumulus\"\n    },\n    {\n      \"name\": \"cirrostratus\"\n    },\n    {\n      \"name\": \"altocumulus\"\n    },\n    {\n      \"name\": \"altostratus\"\n    },\n    {\n      \"name\": \"nimbostratus\"\n    },\n    {\n      \"name\": \"stratocumulus\"\n    },\n    {\n      \"name\": \"stratus\"\n    },\n    {\n      \"name\": \"cumulus\"\n    },\n    {\n      \"name\": \"cumulonimbus\"\n    },\n    {\n      \"name\": \"clI\"\n    },\n    {\n      \"name\": \"clII\"\n    },\n    {\n      \"name\": \"clIII\"\n    },\n    {\n      \"name\": \"clIV\"\n    },\n    {\n      \"name\": \"clV\"\n    },\n    {\n      \"name\": \"clVI\"\n    },\n    {\n      \"name\": \"clVII\"\n    },\n    {\n      \"name\": \"clVIII\"\n    },\n    {\n      \"name\": \"clIX\"\n    },\n    {\n      \"name\": \"cmI\"\n    },\n    {\n      \"name\": \"cmII\"\n    },\n    {\n      \"name\": \"cmIII\"\n    },\n    {\n      \"name\": \"cmIV\"\n    },\n    {\n      \"name\": \"cmV\"\n    },\n    {\n      \"name\": \"cmVI\"\n    },\n    {\n      \"name\": \"cmVII\"\n    },\n    {\n      \"name\": \"cmVIII\"\n    },\n    {\n      \"name\": \"cmIX\"\n    },\n    {\n      \"name\": \"chI\"\n    },\n    {\n      \"name\": \"chII\"\n    },\n    {\n      \"name\": \"chIII\"\n    },\n    {\n      \"name\": \"chIV\"\n    },\n    {\n      \"name\": \"chV\"\n    },\n    {\n      \"name\": \"chVI\"\n    },\n    {\n      \"name\": \"chVII\"\n    },\n    {\n      \"name\": \"chVIII\"\n    },\n    {\n      \"name\": \"chIX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mfb-oldstyle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mfb-oldstyle#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mfb-oldstyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mfirstuc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MFUsentencecase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUsentencecase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makefirstuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makefirstuc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xmakefirstuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmakefirstuc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emakefirstuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emakefirstuc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glsmakefirstuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsmakefirstuc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUexcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUexcl{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFUskippunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUskippunc{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUblocker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUblocker{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFUaddmap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFUaddmap{${1:cmd1%cmd}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"capitalisewords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalisewords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"capitalisewords*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalisewords*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xcapitalisewords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcapitalisewords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xcapitalisewords*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcapitalisewords*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecapitalisewords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecapitalisewords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecapitalisewords*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecapitalisewords*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUwordbreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUwordbreak{${1:puncutation}}\"\n      }\n    },\n    {\n      \"name\": \"MFUcapword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUcapword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifMFUhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFUhyphencapword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUhyphencapword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUhyphentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFUhyphenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFUcapwordfirstuc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUcapwordfirstuc{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"capitalisefmtwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalisefmtwords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xcapitalisefmtwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcapitalisefmtwords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ecapitalisefmtwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ecapitalisefmtwords{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUnocap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFUnocap{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"gMFUnocap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gMFUnocap{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"MFUclear\"\n    },\n    {\n      \"name\": \"MFUsaveatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFUsave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfirstucMakeUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfirstucMakeUppercase{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mfirstuc#c\": [\n      \"expanded\",\n      \"unexpanded\",\n      \"grabfirst\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mfirstuc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mflogo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MF\"\n    },\n    {\n      \"name\": \"MP\"\n    },\n    {\n      \"name\": \"logofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlogo{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mfpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getmfpicoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getmfpicoffset{${1:imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"mfpdraftfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicllx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpiclly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preparemfpicgraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparemfpicgraphic{${1:imagefile%file}}\"\n      }\n    },\n    {\n      \"name\": \"setmfpicgraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmfpicgraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"applyT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"applyT{${1:transformer}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:a}]{${1:c,r,θ1,θ2}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:c}]{${1:c,p,θ}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:p}]{${1:c,θ1,θ2,r}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:q}]{${1:p0,p1,r}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:r}]{${1:p0,p1,r}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:s}]{${1:p0,p1,θ}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:t}]{${1:p0,p1,p2}}\"\n      }\n    },\n    {\n      \"name\": \"arccomplement\"\n    },\n    {\n      \"name\": \"areagradient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"areagradient{${1:function,hdim,vdim}}\"\n      }\n    },\n    {\n      \"name\": \"arrow\"\n    },\n    {\n      \"name\": \"arrow*\"\n    },\n    {\n      \"name\": \"arrow*\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"arrow*[${1:l<${5:headlen}>}][${2:r<${6:rotate}>}][${3:b<${7:backset}>}][${4:c<${8:color}>}]\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"arrow[${1:l<${5:headlen}>}][${2:r<${6:rotate}>}][${3:b<${7:backset}>}][${4:c<${8:color}>}]\"\n      }\n    },\n    {\n      \"name\": \"arrowhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowhead{${1:symbol%keyvals}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrowhead\",\n      \"arg\": {\n        \"format\": \"{}[][][][]\",\n        \"snippet\": \"arrowhead{${1:symbol%keyvals}}[${2:l<${6:headlen}>}][${3:r<${7:rotate}>}][${4:b<${8:backset}>}][${5:c<${9:color}>}]\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrowmid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowmid{${1:symbol%keyvals}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrowmid\",\n      \"arg\": {\n        \"format\": \"{}[][][][]\",\n        \"snippet\": \"arrowmid{${1:symbol%keyvals}}[${2:l<${6:headlen}>}][${3:r<${7:rotate}>}][${4:b<${8:backset}>}][${5:c<${9:color}>}]\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrowtail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowtail{${1:symbol%keyvals}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrowtail\",\n      \"arg\": {\n        \"format\": \"{}[][][][]\",\n        \"snippet\": \"arrowtail{${1:symbol%keyvals}}[${2:l<${6:headlen}>}][${3:r<${7:rotate}>}][${4:b<${8:backset}>}][${5:c<${9:color}>}]\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"assignmfvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"assignmfvalue{${1:macro%cmd}}{${2:MF expr}}\"\n      }\n    },\n    {\n      \"name\": \"assignmpvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"assignmpvalue{${1:macro%cmd}}{${2:MF expr}}\"\n      }\n    },\n    {\n      \"name\": \"axes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"axes[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"axis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"axis[${2:length}]{${1:axis type}}\"\n      }\n    },\n    {\n      \"name\": \"axis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"axis{${1:axis type}}\"\n      }\n    },\n    {\n      \"name\": \"axisheadlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"axisline{${1:axis type}}\"\n      }\n    },\n    {\n      \"name\": \"axismargin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"axismargin{${1:axis type}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"axismarks\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"axismarks{${1:axis}}[${3:length}]{${2:number list}}\"\n      }\n    },\n    {\n      \"name\": \"axismarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"axismarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"backgroundcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"barchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"barchart[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"barchart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"barchart{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bargraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bargraph[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bargraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bargraph{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"bclosed\"\n    },\n    {\n      \"name\": \"bclosed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bclosed[${1:tension}]\"\n      }\n    },\n    {\n      \"name\": \"belowfcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"belowfcn[${3:spec}]{${1:xmin,xmax,∆x}}{${2:f(${4:x})}}\"\n      }\n    },\n    {\n      \"name\": \"belowfcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"belowfcn{${1:xmin,xmax,∆x}}{${2:f(${3:x})}}\"\n      }\n    },\n    {\n      \"name\": \"bmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bmarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"bmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"boost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boost{${1:χ}}\"\n      }\n    },\n    {\n      \"name\": \"border\"\n    },\n    {\n      \"name\": \"browniangraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"browniangraph{${1:num,scale}}\"\n      }\n    },\n    {\n      \"name\": \"brownianmotion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brownianmotion{${1:start,num,scale}}\"\n      }\n    },\n    {\n      \"name\": \"btwnfcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"btwnfcn[${4:spec}]{${1:xmin,xmax,∆x}}{${2:f(${5:x})}}{${3:g(${6:x})}}\"\n      }\n    },\n    {\n      \"name\": \"btwnfcn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"btwnfcn{${1:xmin,xmax,∆x}}{${2:f(${4:x})}}{${3:g(${5:x})}}\"\n      }\n    },\n    {\n      \"name\": \"btwnplrfcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"btwnplrfcn[${4:spec}]{${1:θmin,θmax,∆θ}}{${2:f(${5:θ})}}{${3:g(${6:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"btwnplrfcn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"btwnplrfcn{${1:θmin,θmax,∆θ}}{${2:f(${4:θ})}}{${3:g(${5:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"cbclosed\"\n    },\n    {\n      \"name\": \"cbeziers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbeziers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"chartbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chartbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:c}]{${1:c,p}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:p}]{${1:c,r}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:q}]{${1:p1,p2,r}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:r}]{${1:p1,p2,r}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:s}]{${1:p1,p2,θ}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circle[${2:t}]{${1:p1,p2,p3}}\"\n      }\n    },\n    {\n      \"name\": \"clearsymbols\"\n    },\n    {\n      \"name\": \"clipmfpic\"\n    },\n    {\n      \"name\": \"closedcbeziers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedcbeziers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedcomputedspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedcomputedspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedconvexcurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"closedconvexcurve[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"closedconvexcurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedconvexcurve{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"closedcspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedcspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedcurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"closedcurve[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"closedcurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedcurve{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"closedmfbezier\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"closedmfbezier[${2:tension}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedmfbezier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedmfbezier{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedpolyline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedpolyline{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"closedqbeziers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedqbeziers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closedqspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closedqspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"closegraphsfile\"\n    },\n    {\n      \"name\": \"cmykcolorarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmykcolorarray{${1:var}}{${2:list of cmykcolors}}\"\n      }\n    },\n    {\n      \"name\": \"coil\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coil[${2:tension}]{${1:start,end,wl,amp}}\"\n      }\n    },\n    {\n      \"name\": \"coil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coil{${1:start,end,wl,amp}}\"\n      }\n    },\n    {\n      \"name\": \"colorarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorarray{${1:var}}{${2:list of colors}}\"\n      }\n    },\n    {\n      \"name\": \"coloredlines\"\n    },\n    {\n      \"name\": \"computedspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computedspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"connect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convexcurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"convexcurve[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"convexcurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convexcurve{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"convexcyclic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"convexcyclic[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"convexcyclic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convexcyclic{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"coords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corkscrew\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"corkscrew[${2:tension}]{${1:start,end,wl,amp}}\"\n      }\n    },\n    {\n      \"name\": \"corkscrew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corkscrew{${1:start,end,wl,amp}}\"\n      }\n    },\n    {\n      \"name\": \"cspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curve[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curve{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"cutoffafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cutoffafter{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"cutoffbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cutoffbefore{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"cyclic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cyclic[${2:tension}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"cyclic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyclic{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"darkershade\"\n    },\n    {\n      \"name\": \"dashed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dashed[${1:length,space}]\"\n      }\n    },\n    {\n      \"name\": \"dashedlines\"\n    },\n    {\n      \"name\": \"dashlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashlineset\"\n    },\n    {\n      \"name\": \"dashpattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dashpattern{${1:name}}{${2:len1,...,len2k}}\"\n      }\n    },\n    {\n      \"name\": \"dashspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datafile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"datafile[${2:spec}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"datafile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"datafile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"datapointsonly\"\n    },\n    {\n      \"name\": \"defaultplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultplot{${1:method%keyvals}}\",\n        \"keys\": [\n          \"\\\\reconfigureplot,\\\\defaultplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DEgraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DEgraph[${3:spec}]{${1:x0,y0,∆s,N}}{${2:f(${4:x},${5:y})}}\"\n      }\n    },\n    {\n      \"name\": \"DEgraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEgraph{${1:x0,y0,∆s,N}}{${2:f(${3:x},${4:y})}}\"\n      }\n    },\n    {\n      \"name\": \"DEtrajectory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DEtrajectory{${1:p0,∆s,N}}{${2:F(${3:x},${4:y},${5:t})}}\"\n      }\n    },\n    {\n      \"name\": \"doaxes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doaxes[${2:length}]{${1:axis list}}\"\n      }\n    },\n    {\n      \"name\": \"doaxes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doaxes{${1:axis list}}\"\n      }\n    },\n    {\n      \"name\": \"dotlineset\"\n    },\n    {\n      \"name\": \"dotsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotted\"\n    },\n    {\n      \"name\": \"dotted\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dotted[${1:size,space}]\"\n      }\n    },\n    {\n      \"name\": \"doubledraw\"\n    },\n    {\n      \"name\": \"doubledraw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"doubledraw[${1:sep%l}]\"\n      }\n    },\n    {\n      \"name\": \"doubledraw\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"doubledraw[${1:sep%l}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"draw\"\n    },\n    {\n      \"name\": \"draw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"draw[${1:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"drawcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"drawpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawpen{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ellipse[${2:θ}]{${1:c,rx,ry}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ellipse{${1:c,rx,ry}}\"\n      }\n    },\n    {\n      \"name\": \"endconnect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endcoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfpfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfpframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfpic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfpimage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfploop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endmfpwhile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpatharr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endtile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyendmfpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyendmfpic{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"everymfpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everymfpic{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"everytlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everytlabel{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"fcncurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fcncurve[${2:tension}]{${1:(${3:x0},${4:y0}),(${5:x1},${6:y1}),...}}\"\n      }\n    },\n    {\n      \"name\": \"fcncurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcncurve{${1:(${2:x0},${3:y0}),(${4:x1},${5:y1}),...}}\"\n      }\n    },\n    {\n      \"name\": \"fcnspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcnspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"fdef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fdef{${1:function}}{${2:param1,param2,...}}{${3:MF expr}}\"\n      }\n    },\n    {\n      \"name\": \"fillcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fillcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fillcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fillcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"fullellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullellipse{${1:C,M1,M2}}\"\n      }\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"function[${3:spec}]{${1:xmin,xmax,∆x}}{${2:f(${4:x})}}\"\n      }\n    },\n    {\n      \"name\": \"function\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"function{${1:xmin,xmax,∆x}}{${2:f(${3:x})}}\"\n      }\n    },\n    {\n      \"name\": \"gantt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gantt[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"gantt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gantt{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"ganttbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ganttbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"gbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbrace{${1:z1,C,z2}}\"\n      }\n    },\n    {\n      \"name\": \"gclear\"\n    },\n    {\n      \"name\": \"gclip\"\n    },\n    {\n      \"name\": \"gendashed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gendashed{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"gfill\"\n    },\n    {\n      \"name\": \"gfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gfill[${1:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"globalassignmfvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"globalassignmfvalue{${1:macro%cmd}}{${2:MF expr}}\"\n      }\n    },\n    {\n      \"name\": \"globalassignmpvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"globalassignmpvalue{${1:macro%cmd}}{${2:MF expr}}\"\n      }\n    },\n    {\n      \"name\": \"globalsetarray\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"globalsetarray{${1:type}}{${2:var}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"globalsetmfvariable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"globalsetmfvariable{${1:type}}{${2:name%definition}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"globalsetmpvariable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"globalsetmpvariable{${1:type}}{${2:name%definition}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"gradient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradient{${1:function,width,angle}}\"\n      }\n    },\n    {\n      \"name\": \"graphbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graphbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grid[${2:size%l}]{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"grid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grid{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"gridarcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridarcs{${1:rsep}}\"\n      }\n    },\n    {\n      \"name\": \"griddotsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridlines{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"gridpoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gridpoints[${2:size%l}]{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"gridpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridpoints{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"gridrays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridrays{${1:anglesep}}\"\n      }\n    },\n    {\n      \"name\": \"halfellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"halfellipse{${1:M1,M2,M3}}\"\n      }\n    },\n    {\n      \"name\": \"hashlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatch\"\n    },\n    {\n      \"name\": \"hatch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hatch[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"hatch\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"hatch[${1:space%l}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"hatchcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hatchcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hatchcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hatchcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"hatchspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatchwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hatchwd{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"headcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"headcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"headlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headshape\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"headshape{${1:ratio}}{${2:tension}}{${3:filled}}\"\n      }\n    },\n    {\n      \"name\": \"hgridlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hgridlines{${1:ysep%l}}\"\n      }\n    },\n    {\n      \"name\": \"histobar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"histobar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"histogram\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"histogram[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"histogram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"histogram{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"hypergeodesic*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergeodesic*{${1:z1,z2}}\"\n      }\n    },\n    {\n      \"name\": \"hypergeodesic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hypergeodesic{${1:z1,z2}}\"\n      }\n    },\n    {\n      \"name\": \"ifmfpmpost\"\n    },\n    {\n      \"name\": \"ifpointfill\"\n    },\n    {\n      \"name\": \"interpolatepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interpolatepath{${1:frac,path}}\"\n      }\n    },\n    {\n      \"name\": \"lattice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lattice[${2:size%l}]{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"lattice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lattice{${1:xsep,ysep}}\"\n      }\n    },\n    {\n      \"name\": \"lclosed\"\n    },\n    {\n      \"name\": \"levelcurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"levelcurve[${3:spec}]{${1:seed,step}}{${2:inequality}}\"\n      }\n    },\n    {\n      \"name\": \"levelcurve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"levelcurve{${1:seed,step}}{${2:inequality}}\"\n      }\n    },\n    {\n      \"name\": \"lhatch\"\n    },\n    {\n      \"name\": \"lhatch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lhatch[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"lhatch\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"lhatch[${1:space%l}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"lightershade\"\n    },\n    {\n      \"name\": \"lines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lines{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"lmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lmarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"lmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"makepercentcomment\"\n    },\n    {\n      \"name\": \"makepercentother\"\n    },\n    {\n      \"name\": \"makesector\"\n    },\n    {\n      \"name\": \"mfbezier\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfbezier[${2:tension}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfbezier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfbezier{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfcmd{${1:MF code}}\"\n      }\n    },\n    {\n      \"name\": \"mflist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mflist{${1:MF code}}\"\n      }\n    },\n    {\n      \"name\": \"mfmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfmode{${1:mode name}}\"\n      }\n    },\n    {\n      \"name\": \"mfobj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfobj{${1:path expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mfpbarchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mfpbarchart[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpbarchart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfpbarchart{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpbargraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mfpbargraph[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpbargraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfpbargraph{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpdatacomment\"\n    },\n    {\n      \"name\": \"mfpdataperline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpdefinecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mfpdefinecolor{${1:name}}{${2:model%keyvals}}{${3:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mfpfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpfor{${1:header}}\"\n      }\n    },\n    {\n      \"name\": \"mfpframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mfpframe[${1:framesep%l}]\"\n      }\n    },\n    {\n      \"name\": \"mfpframed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfpframed[${2:framesep%l}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"mfpframed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpframed{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"mfpgantt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mfpgantt[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpgantt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfpgantt{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfphistogram\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mfphistogram[${3:start,sep,r}]{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfphistogram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfphistogram{${1:h or v}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"mfpic[${5:xfactor}][${6:yfactor}]{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mfpic[${5:xfactor}]{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mfpic{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpiccaptionskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicdebugfalse\"\n    },\n    {\n      \"name\": \"mfpicdebugtrue\"\n    },\n    {\n      \"name\": \"mfpicdraft\"\n    },\n    {\n      \"name\": \"mfpicfinal\"\n    },\n    {\n      \"name\": \"mfpicheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicnowrite\"\n    },\n    {\n      \"name\": \"mfpicnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpicnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mfpicunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpicwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfpimage[${2:ref pt}]{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"mfpimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpimage{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"mfplinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfplinestyle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mfplinetype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfplinetype{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mfploop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpmpostfalse\"\n    },\n    {\n      \"name\": \"mfpmposttrue\"\n    },\n    {\n      \"name\": \"mfppiechart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mfppiechart[${3:<dir><${4:angle}>}]{${1:c,r}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfppiechart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfppiechart{${1:c,r}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"mfpreadlog\"\n    },\n    {\n      \"name\": \"MFPsanitize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFPsavecodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpsaveplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfpuntil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpuntil{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"mfpverbtex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpverbtex{${1:TeX commands}}\"\n      }\n    },\n    {\n      \"name\": \"mfpwhile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfpwhile{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"mfresolution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfresolution{${1:DPI}}\"\n      }\n    },\n    {\n      \"name\": \"mfsrc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfsrc{${1:MF code}}\"\n      }\n    },\n    {\n      \"name\": \"mftitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mftitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mirror{${1:p1}}{${2:p2}}\"\n      }\n    },\n    {\n      \"name\": \"mpobj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpobj{${1:path expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"newdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newsavepic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsavepic{${1:picname%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"nocenteredcaptions\"\n    },\n    {\n      \"name\": \"noclearsymbols\"\n    },\n    {\n      \"name\": \"noclipmfpic\"\n    },\n    {\n      \"name\": \"nomplabels\"\n    },\n    {\n      \"name\": \"nooverlaylabels\"\n    },\n    {\n      \"name\": \"noraggedcaptions\"\n    },\n    {\n      \"name\": \"norender\"\n    },\n    {\n      \"name\": \"noship\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notruebbox\"\n    },\n    {\n      \"name\": \"numericarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numericarray{${1:var}}{${2:list of numbers}}\"\n      }\n    },\n    {\n      \"name\": \"opengraphsfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opengraphsfile{${1:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"overlaylabels\"\n    },\n    {\n      \"name\": \"pairarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pairarray{${1:var}}{${2:list of points}}\"\n      }\n    },\n    {\n      \"name\": \"parafcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"parafcn[${3:spec}]{${1:tmin,tmax,∆t}}{${2:pair function}}\"\n      }\n    },\n    {\n      \"name\": \"parafcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"parafcn[${3:spec}]{${1:tmin,tmax,∆t}}{${2:(x(${4:t}),y(${5:t}))}}\"\n      }\n    },\n    {\n      \"name\": \"parafcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parafcn{${1:tmin,tmax,∆t}}{${2:pair function}}\"\n      }\n    },\n    {\n      \"name\": \"parafcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parafcn{${1:tmin,tmax,∆t}}{${2:(x(${3:t}),y(${4:t}))}}\"\n      }\n    },\n    {\n      \"name\": \"parallelpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parallelpath{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"partpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partpath{${1:frac1,frac2}}\"\n      }\n    },\n    {\n      \"name\": \"patharr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patharr{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pen{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"penwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"penwd{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"periodicfcnspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"periodicfcnspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"piechart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"piechart[${3:<dir><${4:angle}>}]{${1:c,r}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"piechart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"piechart{${1:c,r}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"piewedge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"piewedge[${2:<spec><${3:trans}>}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"piewedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piewedge{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"plot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plot[${2:size,space}]{${1:symbol%keyvals}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"plot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plot{${1:symbol%keyvals}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plotdata\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plotdata[${2:spec}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"plotdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotdata{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"plotnodes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plotnodes[${2:size%l}]{${1:symbol%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"plotnodes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotnodes{${1:symbol%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"plotsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"plotsymbol[${3:size%l}]{${1:symbol%keyvals}}{${2:p0,p1,...}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"plotsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"plotsymbol{${1:symbol%keyvals}}{${2:p0,p1,...}}\",\n        \"keys\": [\n          \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plottext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"plottext{${1:text}}{${2:(${3:x0},${4:y0}),(${5:x1},${6:y1}),...}}\"\n      }\n    },\n    {\n      \"name\": \"plr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plr{${1:(${2:r0},${3:θ0}),(${4:r1},${5:θ1}),...}}\"\n      }\n    },\n    {\n      \"name\": \"plrfcn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"plrfcn[${3:spec}]{${1:θmin,θmax,∆θ}}{${2:f(${4:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"plrfcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"plrfcn{${1:θmin,θmax,∆θ}}{${2:f(${3:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"plrgrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plrgrid{${1:rsep,anglesep}}\"\n      }\n    },\n    {\n      \"name\": \"plrgridpoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plrgridpoints[${2:size}]{${1:rsep,anglesep}}\"\n      }\n    },\n    {\n      \"name\": \"plrgridpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plrgridpoints{${1:rsep,anglesep}}\"\n      }\n    },\n    {\n      \"name\": \"plrpatch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plrpatch{${1:rmin,rmax,rsep,tmin,tmax,tsep}}\"\n      }\n    },\n    {\n      \"name\": \"plrregion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"plrregion[${3:spec}]{${1:θmin,θmax,∆θ}}{${2:f(${4:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"plrregion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"plrregion{${1:θmin,θmax,∆θ}}{${2:f(${3:θ})}}\"\n      }\n    },\n    {\n      \"name\": \"plrvectorfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"plrvectorfield[${4:length}]{${1:rsep,tsep}}{${2:formula}}{${3:restriction}}\"\n      }\n    },\n    {\n      \"name\": \"plrvectorfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plrvectorfield{${1:rsep,tsep}}{${2:formula}}{${3:restriction}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"point[${2:size%l}]{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"point{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"pointcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pointcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pointcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pointdef\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pointdef{${1:name}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"pointedlines\"\n    },\n    {\n      \"name\": \"pointfillfalse\"\n    },\n    {\n      \"name\": \"pointfilltrue\"\n    },\n    {\n      \"name\": \"pointsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polkadot\"\n    },\n    {\n      \"name\": \"polkadot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"polkadot[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"polkadotspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polkadotwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polkadotwd{${1:diameter%l}}\"\n      }\n    },\n    {\n      \"name\": \"polygon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polygon{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"polyline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyline{${1:p0,p1,...}}\"\n      }\n    },\n    {\n      \"name\": \"pshcircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pshcircle*{${1:center,radius}}\"\n      }\n    },\n    {\n      \"name\": \"pshcircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pshcircle{${1:center,radius}}\"\n      }\n    },\n    {\n      \"name\": \"putmfpimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putmfpimage{${1:name}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"qbclosed\"\n    },\n    {\n      \"name\": \"qbeziers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qbeziers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"qspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qspline{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"quarterellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quarterellipse{${1:M1,A,M2}}\"\n      }\n    },\n    {\n      \"name\": \"radialgradient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"radialgradient{${1:clr function,width,center}}\"\n      }\n    },\n    {\n      \"name\": \"randomizepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"randomizepath{${1:maxshift,weirdness}}\"\n      }\n    },\n    {\n      \"name\": \"randomlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"randomlines{${1:maxshift}}\"\n      }\n    },\n    {\n      \"name\": \"randomwalk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"randomwalk{${1:start,num,scale}}\"\n      }\n    },\n    {\n      \"name\": \"reconfigureplot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reconfigureplot{${1:method%keyvals}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\reconfigureplot,\\\\defaultplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rect{${1:p0,p1}}\"\n      }\n    },\n    {\n      \"name\": \"reflectabout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reflectabout{${1:p1}}{${2:p2}}\"\n      }\n    },\n    {\n      \"name\": \"reflectpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflectpath{${1:p1,p2}}\"\n      }\n    },\n    {\n      \"name\": \"regpolygon\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"regpolygon{${1:number}}{${2:name}}{${3:eqn1}}{${4:eqn2}}\"\n      }\n    },\n    {\n      \"name\": \"resumeshipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reverse\"\n    },\n    {\n      \"name\": \"reversepath\"\n    },\n    {\n      \"name\": \"rgbcolorarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rgbcolorarray{${1:var}}{${2:list of rgbcolors}}\"\n      }\n    },\n    {\n      \"name\": \"rhatch\"\n    },\n    {\n      \"name\": \"rhatch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhatch[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"rhatch\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rhatch[${1:space%l}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"rmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rmarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"rmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotate{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"rotatearound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotatearound{${1:p}}{${2:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"rotatepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatepath{${1:p,θ}}\"\n      }\n    },\n    {\n      \"name\": \"savepic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savepic{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"scalepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scalepath{${1:p,factor}}\"\n      }\n    },\n    {\n      \"name\": \"sclosed\"\n    },\n    {\n      \"name\": \"sclosed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sclosed[${1:tension}]\"\n      }\n    },\n    {\n      \"name\": \"sector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sector{${1:c,r,θ1,θ2}}\"\n      }\n    },\n    {\n      \"name\": \"sequence\"\n    },\n    {\n      \"name\": \"setallaxismargins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallaxismargins{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setallbordermarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setallbordermarks{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"setarray\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarray{${1:type}}{${2:var}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"setaxismargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setaxismargins{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}\"\n      }\n    },\n    {\n      \"name\": \"setaxismarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setaxismarks{${1:axis}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"setbordermarks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setbordermarks{${1:lpos}}{${2:bpos}}{${3:rpos}}{${4:tpos}}\"\n      }\n    },\n    {\n      \"name\": \"setfilename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfilename{${1:file%file}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"setfilenametemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfilenametemplate{${1:template%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setmfboolean\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmfboolean{${1:name%definition}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setmfcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmfcolor{${1:name%definition}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setmfnumeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmfnumeric{${1:name%definition}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setmfpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmfpair{${1:name%definition}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setmfvariable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setmfvariable{${1:type}}{${2:name%definition}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"setmpvariable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setmpvariable{${1:type}}{${2:name%definition}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"setrender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrender{${1:TeX commands}}\"\n      }\n    },\n    {\n      \"name\": \"settension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settension{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setxmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxmarks{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"setymarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setymarks{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"shade\"\n    },\n    {\n      \"name\": \"shade\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shade[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"shadespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadewd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadewd{${1:diameter%l}}\"\n      }\n    },\n    {\n      \"name\": \"shift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shift{${1:v}}\"\n      }\n    },\n    {\n      \"name\": \"shiftpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shiftpath{${1:v}}\"\n      }\n    },\n    {\n      \"name\": \"sideheadlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinewave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sinewave[${2:tension}]{${1:start,end,wl,amp}}\"\n      },\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sinewave{${1:start,end,wl,amp}}\"\n      },\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"slantpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slantpath{${1:y,factor}}\"\n      }\n    },\n    {\n      \"name\": \"smoothdata\"\n    },\n    {\n      \"name\": \"smoothdata\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smoothdata[${1:tension}]\"\n      }\n    },\n    {\n      \"name\": \"startbacktext\"\n    },\n    {\n      \"name\": \"stopbacktext\"\n    },\n    {\n      \"name\": \"stopshipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"store\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"store{${1:path variable%definition}}\"\n      }\n    },\n    {\n      \"name\": \"subpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subpath{${1:num1,num2}}\"\n      }\n    },\n    {\n      \"name\": \"symbolspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcaption[${2:maxwidth,linewidth}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tess\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tess{${1:tilename}}\"\n      }\n    },\n    {\n      \"name\": \"thatch\"\n    },\n    {\n      \"name\": \"thatch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thatch[${1:space,angle}]\"\n      }\n    },\n    {\n      \"name\": \"thatch\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"thatch[${1:space,angle}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"tile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tile{${1:tilename,unit,width,height,clip}}\"\n      }\n    },\n    {\n      \"name\": \"tlabel\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabel(${2:x},${3:y}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabel\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabel[${2:just}](${3:x},${4:y}){${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tlabel[${3:just}]{${1:pair list}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tlabel{${1:pair list}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelcircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelcircle(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelcircle*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelcircle*(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelcircle*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelcircle*[${2:just}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelcircle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelcircle[${2:just}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelcolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tlabelcolor[${2:model%keyvals}]{${1:color spec}}\",\n        \"keys\": [\n          \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tlabelcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlabelcolor{${1:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelellipse(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelellipse*(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelellipse*[${2:ratio}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse*\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabelellipse*[${2:ratio}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelellipse[${2:ratio}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelellipse\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabelellipse[${2:ratio}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeljustify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlabeljustify{${1:just}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloffset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tlabeloffset{${1:hlength%l}}{${2:vlength%l}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabeloval(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabeloval*(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabeloval*[${2:mult}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval*\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabeloval*[${2:mult}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabeloval[${2:mult}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabeloval\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabeloval[${2:mult}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelrect(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tlabelrect*(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelrect*[${2:radius%l}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect*\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabelrect*[${2:radius%l}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tlabelrect[${2:radius%l}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelrect\",\n      \"arg\": {\n        \"format\": \"[][](){}\",\n        \"snippet\": \"tlabelrect[${2:radius%l}][${3:just}](${4:x},${5:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlabels{${1:params1 params2 ...}}\"\n      }\n    },\n    {\n      \"name\": \"tlabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlabelsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tlpathjustify\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlpathjustify{${1:just}}\"\n      }\n    },\n    {\n      \"name\": \"tlpathsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlpathsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tlpointsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlpointsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tmarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"tmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tmarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"tmtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tmtitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"transformpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transformpath{${1:transformer}}\"\n      }\n    },\n    {\n      \"name\": \"trimpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trimpath{${1:dim1,dim2}}\"\n      }\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"turn[${2:p}]{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turn{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"turtle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turtle{${1:p0,v1,v2,...}}\"\n      }\n    },\n    {\n      \"name\": \"unsmoothdata\"\n    },\n    {\n      \"name\": \"usecenteredcaptions\"\n    },\n    {\n      \"name\": \"usemetafont\"\n    },\n    {\n      \"name\": \"usemetapost\"\n    },\n    {\n      \"name\": \"usemplabels\"\n    },\n    {\n      \"name\": \"usepic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepic{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"useraggedcaptions\"\n    },\n    {\n      \"name\": \"usetruebbox\"\n    },\n    {\n      \"name\": \"using\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"using{${1:in-pattern}}{${2:out-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"usingnumericdefault\"\n    },\n    {\n      \"name\": \"usingpairdefault\"\n    },\n    {\n      \"name\": \"vectorfield\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"vectorfield[${4:length}]{${1:xsep,ysep}}{${2:formula}}{${3:restriction}}\"\n      }\n    },\n    {\n      \"name\": \"vectorfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vectorfield{${1:xsep,ysep}}{${2:formula}}{${3:restriction}}\"\n      }\n    },\n    {\n      \"name\": \"vgridlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vgridlines{${1:xsep}}\"\n      }\n    },\n    {\n      \"name\": \"xaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xaxis[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"xfactor\"\n    },\n    {\n      \"name\": \"xhatch\"\n    },\n    {\n      \"name\": \"xhatch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xhatch[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"xhatch\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"xhatch[${1:space%l}][${2:color%plain}]\"\n      }\n    },\n    {\n      \"name\": \"xmarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"xmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xmarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"xmax\"\n    },\n    {\n      \"name\": \"xmin\"\n    },\n    {\n      \"name\": \"xscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"xscalepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xscalepath{${1:x,factor}}\"\n      }\n    },\n    {\n      \"name\": \"xslant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"xslantpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xslantpath{${1:y,factor}}\"\n      }\n    },\n    {\n      \"name\": \"xyswap\"\n    },\n    {\n      \"name\": \"xyswappath\"\n    },\n    {\n      \"name\": \"yaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yaxis[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"yfactor\"\n    },\n    {\n      \"name\": \"ymarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ymarks[${2:length}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"ymarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ymarks{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"ymax\"\n    },\n    {\n      \"name\": \"ymin\"\n    },\n    {\n      \"name\": \"yscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"yscalepath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yscalepath{${1:y,factor}}\"\n      }\n    },\n    {\n      \"name\": \"yslant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"yslantpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yslantpath{${1:x,factor}}\"\n      }\n    },\n    {\n      \"name\": \"zigzag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zigzag{${1:start,end,wl,amp}}\"\n      }\n    },\n    {\n      \"name\": \"zscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zscale{${1:v}}\"\n      }\n    },\n    {\n      \"name\": \"zslant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zslant{${1:v}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"connect\"\n    },\n    {\n      \"name\": \"coords\"\n    },\n    {\n      \"name\": \"mfpfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:header}}\"\n      }\n    },\n    {\n      \"name\": \"mfpframe\"\n    },\n    {\n      \"name\": \"mfpframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:framesep%l}]\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"[${5:xfactor}][${6:yfactor}]{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:xfactor}]{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpic\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:xmin}}{${2:xmax}}{${3:ymin}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"mfpimage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:ref pt}]{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"mfpimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:picname}}\"\n      }\n    },\n    {\n      \"name\": \"mfploop\"\n    },\n    {\n      \"name\": \"mfpwhile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"patharr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tilename,unit,width,height,clip}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mfpic#c\": [\n      \"draft\",\n      \"final\",\n      \"nowrite\",\n      \"metapost\",\n      \"metafont\",\n      \"centeredcaptions\",\n      \"justifiedcaptions\",\n      \"raggedcaptions\",\n      \"clip\",\n      \"truebbox\",\n      \"mplabels\",\n      \"overlaylabels\",\n      \"clearsymbols\",\n      \"debug\",\n      \"mfpreadlog\"\n    ],\n    \"\\\\drawcolor,\\\\fillcolor,\\\\hatchcolor,\\\\pointcolor,\\\\headcolor,\\\\tlabelcolor,\\\\backgroundcolor,\\\\mfpdefinecolor\": [\n      \"cmyk\",\n      \"gray\",\n      \"named\",\n      \"rgb\",\n      \"RGB\"\n    ],\n    \"\\\\plotsymbol,\\\\arrowhead,\\\\arrowmid,\\\\arrowtail,\\\\plot\": [\n      \"Arrowhead\",\n      \"Asterisk\",\n      \"Circle\",\n      \"Cross\",\n      \"Crossbar\",\n      \"Diamond\",\n      \"Leftbar\",\n      \"Leftharpoon\",\n      \"Lefthook\",\n      \"Plus\",\n      \"Rightbar\",\n      \"Rightharpoon\",\n      \"Righthook\",\n      \"SolidCircle\",\n      \"SolidDiamond\",\n      \"SolidSquare\",\n      \"SolidStar\",\n      \"SolidTriangle\",\n      \"Square\",\n      \"Star\",\n      \"Triangle\"\n    ],\n    \"\\\\reconfigureplot,\\\\defaultplot\": [\n      \"colors\",\n      \"dashes\",\n      \"symbols\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mfpic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mfpic4ode.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifcolorODEarrow\"\n    },\n    {\n      \"name\": \"colorODEarrowtrue\"\n    },\n    {\n      \"name\": \"colorODEarrowfalse\"\n    },\n    {\n      \"name\": \"ODEdefineequation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ODEdefineequation{${1:f(${2:x},${3:y})}}\"\n      }\n    },\n    {\n      \"name\": \"trajectory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trajectory{${1:x0}}{${2:y0}}\"\n      }\n    },\n    {\n      \"name\": \"trajectoryRK\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trajectoryRK{${1:x0}}{${2:y0}}\"\n      }\n    },\n    {\n      \"name\": \"trajectoryRKF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trajectoryRKF{${1:x0}}{${2:y0}}\"\n      }\n    },\n    {\n      \"name\": \"trajectories\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trajectories{${1:x1,y1;x2,y2;...}}\"\n      }\n    },\n    {\n      \"name\": \"ODEarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ODEarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ODEharrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ODEharrow{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"ODEvarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ODEvarrow{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"ODEarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ODEarrows{${1:x1,y1;x2,y2;...}}\"\n      }\n    },\n    {\n      \"name\": \"ASdefineequations\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ASdefineequations{${1:f(${3:x},${4:y})}}{${2:g(${5:x},${6:y})}}\"\n      }\n    },\n    {\n      \"name\": \"AStrajectory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AStrajectory{${1:x0}}{${2:y0}}\"\n      }\n    },\n    {\n      \"name\": \"AStrajectoryRKF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AStrajectoryRKF{${1:x0}}{${2:y0}}\"\n      }\n    },\n    {\n      \"name\": \"AStrajectories\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AStrajectories{${1:x1,y1;x2,y2;...}}\"\n      }\n    },\n    {\n      \"name\": \"ASarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ASarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ASarrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ASarrows{${1:x1,y1;x2,y2;...}}\"\n      }\n    },\n    {\n      \"name\": \"ODEline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ODEline{${1:p0}}{${2:p1}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mftinc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chngpage\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"rawfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmftdefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmftdefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{explaincode},\\\\setmftdefaults\",\n          \"\\\\fonttable,\\\\setmftdefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mftinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mftinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mfcomment\"\n    },\n    {\n      \"name\": \"fonttable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fonttable{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"fonttable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fonttable[${2:options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\fonttable,\\\\setmftdefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"centerlargechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chartline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chartstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endchart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evenline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"morechart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oct{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oddline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdigs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"table\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifskipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skippingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skippingfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"explaincode\"\n    },\n    {\n      \"name\": \"explaincode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\",\n        \"keys\": [\n          \"\\\\begin{explaincode},\\\\setmftdefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wrapcomment\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{explaincode},\\\\setmftdefaults\": [\n      \"toprule=\",\n      \"bottomrule=\"\n    ],\n    \"\\\\fonttable,\\\\setmftdefaults\": [\n      \"tablewidth=\",\n      \"charrange={${1:range}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mgltex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mglplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglplot{${1:MGL code}}\"\n      }\n    },\n    {\n      \"name\": \"mglplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglplot[${2:options%keyvals}]{${1:MGL code}}\",\n        \"keys\": [\n          \"\\\\begin{mgl},\\\\begin{mglcode},\\\\mglplot,\\\\mglgraphics\",\n          \"\\\\begin{mgl},\\\\mglplot\",\n          \"\\\\mglplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglgraphics{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mglgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglgraphics[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{mgl},\\\\begin{mglcode},\\\\mglplot,\\\\mglgraphics\",\n          \"\\\\mglgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mglinclude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglinclude[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\mglinclude,\\\\mglinclude*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglinclude*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglinclude*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mglinclude*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mglinclude*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\mglinclude,\\\\mglinclude*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listofmglscripts\"\n    },\n    {\n      \"name\": \"mglTeX\"\n    },\n    {\n      \"name\": \"mglTeX*\"\n    },\n    {\n      \"name\": \"mglswitch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglswitch{${1:off|on}}\"\n      }\n    },\n    {\n      \"name\": \"mglcomments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglcomments{${1:off|on}}\"\n      }\n    },\n    {\n      \"name\": \"mglgray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglgray{${1:off|on}}\"\n      }\n    },\n    {\n      \"name\": \"mglscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"mglquality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglquality{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mglvariant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglvariant{${1:variant}}\"\n      }\n    },\n    {\n      \"name\": \"mglimgext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglimgext{${1:image extension}}\"\n      }\n    },\n    {\n      \"name\": \"mglname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglname{${1:script name}}\"\n      }\n    },\n    {\n      \"name\": \"mgldir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mgldir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglscriptsdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglscriptsdir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglgraphicsdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglgraphicsdir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglbackupsdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglbackupsdir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglpaths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglpaths{${1:directory list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglsettings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mglsettings{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mglsettings\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglsetupscriptname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglcommentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofmglscriptsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglverbatimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mgllinenostyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mgldashwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mgllinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mglbreakindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mgl\"\n    },\n    {\n      \"name\": \"mgl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mgl},\\\\begin{mglcode},\\\\mglplot,\\\\mglgraphics\",\n          \"\\\\begin{mgl},\\\\mglplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mgladdon\"\n    },\n    {\n      \"name\": \"mglfunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:function name}}\"\n      }\n    },\n    {\n      \"name\": \"mglfunc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:number of arguments}]{${1:function name}}\"\n      }\n    },\n    {\n      \"name\": \"mglcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:script name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:script name%definition}}\",\n        \"keys\": [\n          \"\\\\begin{mgl},\\\\begin{mglcode},\\\\mglplot,\\\\mglgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:script name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mglsetupscript\"\n    },\n    {\n      \"name\": \"mglsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"mglblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:script name}}\"\n      }\n    },\n    {\n      \"name\": \"mglblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:script name}}\",\n        \"keys\": [\n          \"\\\\begin{mglblock},\\\\begin{mglblock*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglblock*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:script name}}\"\n      }\n    },\n    {\n      \"name\": \"mglblock*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:script name}}\",\n        \"keys\": [\n          \"\\\\begin{mglblock},\\\\begin{mglblock*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglverbatim\"\n    },\n    {\n      \"name\": \"mglverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mglverbatim},\\\\begin{mglverbatim*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglverbatim*\"\n    },\n    {\n      \"name\": \"mglverbatim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mglverbatim},\\\\begin{mglverbatim*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mglcomment\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mgltex#c\": [\n      \"draft\",\n      \"final\",\n      \"on\",\n      \"off\",\n      \"nocomments\",\n      \"comments\",\n      \"gray\",\n      \"color\",\n      \"1x\",\n      \"2x\",\n      \"3x\",\n      \"4x\",\n      \"5x\",\n      \"6x\",\n      \"7x\",\n      \"8x\",\n      \"9x\",\n      \"0q\",\n      \"1q\",\n      \"2q\",\n      \"3q\",\n      \"4q\",\n      \"5q\",\n      \"6q\",\n      \"7q\",\n      \"8q\",\n      \"9q\",\n      \"0v\",\n      \"1v\",\n      \"2v\",\n      \"eps\",\n      \"epsz\",\n      \"epsgz\",\n      \"bps\",\n      \"bpsz\",\n      \"bpsgz\",\n      \"pdf\",\n      \"png\",\n      \"jpg\",\n      \"jpeg\",\n      \"gif\",\n      \"tex\"\n    ],\n    \"\\\\begin{mgl},\\\\begin{mglcode},\\\\mglplot,\\\\mglgraphics\": [\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"gray=${1|on,off,0,1|}\",\n      \"mglscale=${1:factor}\",\n      \"quality=${1:integer}\",\n      \"variant=${1:variant}\",\n      \"imgext=${1:image extension}\"\n    ],\n    \"\\\\begin{mgl},\\\\mglplot\": [\n      \"label=${1:name}\"\n    ],\n    \"\\\\mglplot\": [\n      \"setup=${1:keyword}\",\n      \"separator=${1:symbol}\"\n    ],\n    \"\\\\mglgraphics\": [\n      \"path=${1:file path}\"\n    ],\n    \"\\\\begin{mglblock},\\\\begin{mglblock*}\": [\n      \"lineno\"\n    ],\n    \"\\\\begin{mglverbatim},\\\\begin{mglverbatim*}\": [\n      \"lineno\",\n      \"label=${1:name}\"\n    ],\n    \"\\\\mglinclude,\\\\mglinclude*\": [\n      \"lineno\",\n      \"path=${1:file path}\"\n    ],\n    \"\\\\mglsettings\": [\n      \"dir=${1:directory}\",\n      \"scriptsdir=${1:directory}\",\n      \"graphicsdir=${1:directory}\",\n      \"backupsdir=${1:directory}\",\n      \"paths=${1:directory list}\",\n      \"switch=${1|off,on,0,1|}\",\n      \"comments=${1|off,on,0,1|}\",\n      \"gray=${1|off,on,0,1|}\",\n      \"mglscale=${1:factor}\",\n      \"quality=${1:integer}\",\n      \"variant=${1:variant}\",\n      \"imgext=${1:image extension}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mgltex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mhchem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"chemgreek\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"arrows=pgf\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"arrows=pgf\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"arrows=pgf-filled\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"arrows=pgf-filled\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mhchemoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mhchemoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\",\n          \"\\\\mhchemoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ce{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"bond\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bond{${1:-=~.<${2:}> etc.}}\"\n      }\n    },\n    {\n      \"name\": \"cesplit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cesplit{${1:search-and-replace list}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=1\"\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=2\"\n    },\n    {\n      \"name\": \"cee\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cee{${1:equation}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cf\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cf[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmath\",\n      \"if\": \"version=3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\",\n      \"if\": \"version=3\"\n    },\n    {\n      \"name\": \"dbond\",\n      \"if\": \"version=3\"\n    },\n    {\n      \"name\": \"tbond\",\n      \"if\": \"version=3\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mhchem#c\": [\n      \"version=${1:version}\"\n    ],\n    \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\": [\n      \"textfontname=${1:font csname}\",\n      \"mathfontname=${1:font csname}\",\n      \"font=${1|sf|}\",\n      \"text-greek=${1|textgreek,upgreek,newtx,kpfonts,mathdesign,fourier,textalpha,fontspec,default,var-default|}\",\n      \"math-greek=${1|textgreek,upgreek,newtx,kpfonts,mathdesign,fourier,textalpha,fontspec,default,var-default|}\",\n      \"arrows=${3|font,pgf,pgf-filled,pgf{${1:arrow type}}{${2:width}}|}\",\n      \"layout=${1|stacked,staggered-deep,staggered-flat|}\",\n      \"minus-sidebearing-left=\",\n      \"minus-sidebearing-right=\",\n      \"minus-math-sidebearing-left=\",\n      \"minus-math-sidebearing-right=\",\n      \"minus-text-sidebearing-left=\",\n      \"minus-text-sidebearing-right=\"\n    ],\n    \"\\\\mhchemoptions\": [\n      \"textfontcommand=${1:font command}\",\n      \"mathfontcommand=${1:font command}\",\n      \"textminus=${1:symbol}\",\n      \"cdot=${1:symbol}\",\n      \"textelectrondot=${1:symbol}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mhchem#c\",\n    \"\\\\usepackage/mhchem#c,\\\\mhchemoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mhequ.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notag\"\n    },\n    {\n      \"name\": \"minilab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minilab{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setlabtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlabtype{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intertext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multicol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multicol{${1:num of cols}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"computelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"computelength{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getlength{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"next\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"next{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MHcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHbig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaylines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displaylines{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"MHsavelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MHsavelabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sublabeltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHgobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strutdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"equ\"\n    },\n    {\n      \"name\": \"equ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"equs\"\n    },\n    {\n      \"name\": \"equs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"equs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:num of cols}][${2:label}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mhequ#c\": [\n      \"righttag\",\n      \"lefttag\",\n      \"numberall\",\n      \"fleqn\",\n      \"leqno\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mhequ#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mhsetup.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MHInternalSyntaxOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHInternalSyntaxOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHPrecedingSpacesOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHPrecedingSpacesOn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mi-solns.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addToMINullify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyfileCmdEx\"\n    },\n    {\n      \"name\": \"copyfileCmdQz\"\n    },\n    {\n      \"name\": \"copySolnsOff\"\n    },\n    {\n      \"name\": \"copySolnsOn\"\n    },\n    {\n      \"name\": \"declQSLIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declQSLIn{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"declQSLOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declQSLOut{${1:qsl-out}}\"\n      }\n    },\n    {\n      \"name\": \"declSOLIn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declSOLIn{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"declSOLOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declSOLOut{${1:sol-out}}\"\n      }\n    },\n    {\n      \"name\": \"eqMrkSolnCpyEx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqMrkSolnCpyEx{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eqMrkSolnCpyQz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqMrkSolnCpyQz{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"eqMrkSolnCpySQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqMrkSolnCpySQ{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"examSolnHeadFmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleiiendgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobbleiiendgroup{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"gobbleiiendinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobbleiiendinput{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"gobbleiiterminex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobbleiiterminex{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ifmifound\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotamiop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreques\"\n    },\n    {\n      \"name\": \"ignoreterminex\"\n    },\n    {\n      \"name\": \"insExSoln\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insExSoln[${2:inserts}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insExSoln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insExSoln{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insQzSoln\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insQzSoln[${2:inserts}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insQzSoln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insQzSoln{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insSqSoln\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"insSqSoln[${2:inserts}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"insSqSoln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insSqSoln{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mifoundfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mifoundtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miqslin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"miqslout\"\n    },\n    {\n      \"name\": \"miReadOffMsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"misolin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"misolout\"\n    },\n    {\n      \"name\": \"mrkForIns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrkForIns{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"notamiopfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notamioptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readSolnsOff\"\n    },\n    {\n      \"name\": \"readSolnsOn\"\n    },\n    {\n      \"name\": \"reqDate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writeToSolnFile\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/miama.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fmmfamily\"\n    },\n    {\n      \"name\": \"miama\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"miama{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fmmTeX\"\n    },\n    {\n      \"name\": \"fmmLaTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/microtype-show.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifShowGlyphIndex\"\n    },\n    {\n      \"name\": \"ShowGlyphIndextrue\"\n    },\n    {\n      \"name\": \"ShowGlyphIndexfalse\"\n    },\n    {\n      \"name\": \"ifShowMissingGlyphs\"\n    },\n    {\n      \"name\": \"ShowMissingGlyphstrue\"\n    },\n    {\n      \"name\": \"ShowMissingGlyphsfalse\"\n    },\n    {\n      \"name\": \"GlyphScaleFactor\"\n    },\n    {\n      \"name\": \"Showbaselinecolor\"\n    },\n    {\n      \"name\": \"Showposcolor\"\n    },\n    {\n      \"name\": \"Shownegcolor\"\n    },\n    {\n      \"name\": \"ShowProtrusion\"\n    },\n    {\n      \"name\": \"ShowCharacterInheritance\"\n    },\n    {\n      \"name\": \"ShowProtrusionLineGlyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowProtrusionLineGlyph{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowProtrusionLineIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowProtrusionLineIndex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowDummyLine\"\n    },\n    {\n      \"name\": \"ShowProtrusionAll\"\n    },\n    {\n      \"name\": \"ShowProtrusionDefined\"\n    },\n    {\n      \"name\": \"ShowProtrusionMissing\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/microtype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"microtypesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"microtypesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypesetup,\\\\usepackage/microtype#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet[${3:features}]{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet*{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSet*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareMicrotypeSet*[${3:features}]{${1:name%specialDef}}{${2:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"UseMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseMicrotypeSet{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseMicrotypeSet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UseMicrotypeSet[${2:features}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSetDefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeSetDefault{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeSetDefault\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareMicrotypeSetDefault[${2:features}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SetProtrusion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetProtrusion{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetProtrusion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetProtrusion[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetProtrusion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExpansion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExpansion{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExpansion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExpansion[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExpansion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTracking\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTracking{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetTracking\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetTracking[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetTracking\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExtraKerning\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExtraKerning{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExtraKerning\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExtraKerning[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExtraKerning\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetExtraSpacing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExtraSpacing{${1:fonts}}{${2:settings}}\"\n      }\n    },\n    {\n      \"name\": \"SetExtraSpacing\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetExtraSpacing[${3:options%keyvals}]{${1:fonts}}{${2:settings}}\",\n        \"keys\": [\n          \"\\\\SetExtraSpacing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCharacterInheritance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCharacterInheritance{${1:fonts%keyvals}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCharacterInheritance\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareCharacterInheritance[${3:features}]{${1:fonts%keyvals}}{${2:list}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeVariants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeVariants{${1:suffixes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeVariants*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeVariants*{${1:suffixes}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeAlias{${1:font}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"LoadMicrotypeFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadMicrotypeFile{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeFilePrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareMicrotypeFilePrefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"microtypecontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"microtypecontext{${1:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmicrotypecontext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textmicrotypecontext{${1:context%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareMicrotypeBabelHook\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMicrotypeBabelHook{${1:languages}}{${2:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textls*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textls*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textls*[${2:amount}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsstyle\"\n    },\n    {\n      \"name\": \"lslig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lslig{${1:ligature}}\"\n      }\n    },\n    {\n      \"name\": \"DisableLigatures\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableLigatures{${1:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DisableLigatures\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisableLigatures[${2:characters}]{${1:fonts%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"leftprotrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftprotrusion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightprotrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightprotrusion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noprotrusionifhmode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"microtypecontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:context%keyvals}}\",\n        \"keys\": [\n          \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\microtypesetup,\\\\usepackage/microtype#c\": [\n      \"protrusion=\",\n      \"expansion=\",\n      \"activate=\",\n      \"tracking=\",\n      \"kerning=\",\n      \"spacing=\",\n      \"factor=${1:integer}\",\n      \"patch=${1|all,none,item,toc,footnote,verbatim,eqnum|}\",\n      \"nopatch=${1|all,none,item,toc,footnote,verbatim,eqnum|}\",\n      \"unit=${1:dimension}\",\n      \"auto\",\n      \"stretch=${1:integer}\",\n      \"shrink=${1:integer}\",\n      \"step=${1:integer}\",\n      \"selected\",\n      \"letterspace=${1:integer}\",\n      \"disable=${1|true,false,ifdraft|}\",\n      \"final\",\n      \"verbose=${1|true,false,errors,silent|}\",\n      \"babel\",\n      \"DVIoutput\"\n    ],\n    \"\\\\usepackage/microtype#c\": [\n      \"config=${1:file name}\"\n    ],\n    \"\\\\SetProtrusion\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"unit=\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\"\n    ],\n    \"\\\\SetExpansion\": [\n      \"name=\",\n      \"load=\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\",\n      \"auto\",\n      \"stretch=${1:integer}\",\n      \"shrink=${1:integer}\",\n      \"step=${1:integer}\",\n      \"factor=\"\n    ],\n    \"\\\\SetTracking\": [\n      \"name=\",\n      \"unit=\",\n      \"context=\",\n      \"spacing=\",\n      \"outer spacing=\",\n      \"outer kerning=\",\n      \"no ligatures=\"\n    ],\n    \"\\\\SetExtraKerning\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"preset=\",\n      \"inputenc=\",\n      \"unit=\",\n      \"context=\"\n    ],\n    \"\\\\SetExtraSpacing\": [\n      \"name=\",\n      \"load=\",\n      \"factor=${1:integer}\",\n      \"preset=\",\n      \"inputenc=\",\n      \"context=\",\n      \"unit=\"\n    ],\n    \"\\\\microtypecontext,\\\\begin{microtypecontext},\\\\textmicrotypecontext,\\\\DeclareMicrotypeBabelHook\": [\n      \"protrusion=\",\n      \"expansion=\",\n      \"activate=\",\n      \"tracking=\",\n      \"spacing=\",\n      \"kerning=\"\n    ],\n    \"\\\\DeclareMicrotypeSet,\\\\DeclareMicrotypeSet*,\\\\DeclareCharacterInheritance,\\\\DisableLigatures\": [\n      \"encoding=\",\n      \"family=\",\n      \"series=\",\n      \"shape=\",\n      \"size=\",\n      \"font=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\microtypesetup,\\\\usepackage/microtype#c\",\n    \"\\\\usepackage/microtype#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/midfloat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"stripsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"strip\"\n    },\n    {\n      \"name\": \"strip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:top skip/bottom skip}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/midpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"midpage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/miller.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"hkl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hkl[${1:indices}]\"\n      }\n    },\n    {\n      \"name\": \"hkl<indices>\"\n    },\n    {\n      \"name\": \"hkl\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"hkl(${1:indices})\"\n      }\n    },\n    {\n      \"name\": \"hkl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hkl{${1:indices}}\"\n      }\n    },\n    {\n      \"name\": \"millerminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"millerskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/milstd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"BusWidth\"\n    },\n    {\n      \"name\": \"ANDr\"\n    },\n    {\n      \"name\": \"ANDd\"\n    },\n    {\n      \"name\": \"ANDl\"\n    },\n    {\n      \"name\": \"ANDu\"\n    },\n    {\n      \"name\": \"NANDr\"\n    },\n    {\n      \"name\": \"NANDd\"\n    },\n    {\n      \"name\": \"NANDl\"\n    },\n    {\n      \"name\": \"NANDu\"\n    },\n    {\n      \"name\": \"ORr\"\n    },\n    {\n      \"name\": \"ORd\"\n    },\n    {\n      \"name\": \"ORl\"\n    },\n    {\n      \"name\": \"ORu\"\n    },\n    {\n      \"name\": \"NORr\"\n    },\n    {\n      \"name\": \"NORd\"\n    },\n    {\n      \"name\": \"NORl\"\n    },\n    {\n      \"name\": \"NORu\"\n    },\n    {\n      \"name\": \"BUFr\"\n    },\n    {\n      \"name\": \"BUFd\"\n    },\n    {\n      \"name\": \"BUFl\"\n    },\n    {\n      \"name\": \"BUFu\"\n    },\n    {\n      \"name\": \"INVr\"\n    },\n    {\n      \"name\": \"INVd\"\n    },\n    {\n      \"name\": \"INVl\"\n    },\n    {\n      \"name\": \"INVu\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/milsymb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"arevmath\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"acronym\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MilAir\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilAir[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilAir\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilAir[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilAir\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilAir[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilMissile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilMissile[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilMissile\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilMissile[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilMissile\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilMissile[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilLand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilLand[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilLand\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilLand[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilLand\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilLand[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilEquipment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilEquipment[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilEquipment\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilEquipment[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilEquipment\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilEquipment[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilInstallation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilInstallation[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilInstallation\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilInstallation[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilInstallation\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilInstallation[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSurface\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilSeaSurface[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSurface\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilSeaSurface[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSurface\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilSeaSurface[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSubsurface\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilSeaSubsurface[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSubsurface\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilSeaSubsurface[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilSeaSubsurface\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilSeaSubsurface[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilMine\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilMine[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilMine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilMine[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilMine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilMine[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilSpace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilSpace[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilSpace\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilSpace[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilSpace\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilSpace[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilActivity\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilActivity[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilActivity\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilActivity[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilActivity\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilActivity[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"MilDebris\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MilDebris[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"MilDebris\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"MilDebris[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"MilDebris\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"MilDebris[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"OwnShip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OwnShip[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"OwnShip\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"OwnShip[${1:options%keyvals}](${2:location})\"\n      }\n    },\n    {\n      \"name\": \"OwnShip\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"OwnShip[${2:options%keyvals}](${3:location})(${4:name}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"clipfriendly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cliphostile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clipneutral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clipunknown\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"landgroup\"\n    },\n    {\n      \"name\": \"landgroup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"landheadquarters\"\n    },\n    {\n      \"name\": \"landheadquarters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mindflow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"nonbreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"nonbreakable\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"nonbreakable=true\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"nonbreakable=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mindflowset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mindflowset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mindflowset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mindflowTextFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindflowNumFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindflowMarkerFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindflowLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindflowRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mindflowLineHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoIncolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LocallyStopLineNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResumeIncolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResumeLineNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mfSepLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themfLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therecordLN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLNturnsON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LNturnsONtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LNturnsONfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifICturnsON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ICturnsONtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ICturnsONfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mindflow\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mindflow#c\": [\n      \"linenumber\",\n      \"mathlines\",\n      \"leftlinenumber\",\n      \"rightlinenumber\",\n      \"leftmarker\",\n      \"rightmarker\",\n      \"incolumn\",\n      \"off\",\n      \"on\",\n      \"nonbreakable\"\n    ],\n    \"\\\\mindflowset\": [\n      \"backgroundcolor=\",\n      \"backgroundcolor=\",\n      \"left=${1:text}\",\n      \"textcolor=\",\n      \"numcolor=\",\n      \"markercolor=\",\n      \"linecolor=\",\n      \"right=${1:text}\",\n      \"textfont=${1:font commands}\",\n      \"numfont=${1:font commands}\",\n      \"markerfont=${1:font commands}\",\n      \"lineheight=\",\n      \"linenumber\",\n      \"leftlinenumber\",\n      \"rightlinenumber\",\n      \"leftmarker\",\n      \"rightmarker\",\n      \"incolumn\",\n      \"off\",\n      \"on\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mindflow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minibox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"minibox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minibox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"minibox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"minibox[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\minibox,\\\\miniboxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"miniboxsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"miniboxsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\minibox,\\\\miniboxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\minibox,\\\\miniboxsetup\": [\n      \"frame\",\n      \"rule=\",\n      \"pad=\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"b\",\n      \"m\",\n      \"t\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/minidocument.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lastminidocument\"\n    },\n    {\n      \"name\": \"minidocumentscale\"\n    },\n    {\n      \"name\": \"minidocumentshipout\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"minidocument\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/minifp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MFPloadextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startMFPprogram\"\n    },\n    {\n      \"name\": \"stopMFPprogram\"\n    },\n    {\n      \"name\": \"MFPadd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPadd{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPsub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPsub{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPmul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPmul{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPmpy\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPmpy{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPdiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPdiv{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPmin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPmin{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPmax\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPmax{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPchs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPchs{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPabs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPabs{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPdbl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPdbl{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPhalve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPhalve{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPint{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPfrac{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPfloor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPfloor{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPceil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPceil{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPsgn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPsgn{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPsq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPsq{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPinv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPinv{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPincr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPincr{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPdecr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPdecr{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPzero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPzero{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPstore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPstore{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPnoop\"\n    },\n    {\n      \"name\": \"MFPpi\"\n    },\n    {\n      \"name\": \"MFPe\"\n    },\n    {\n      \"name\": \"MFPphi\"\n    },\n    {\n      \"name\": \"MFPchk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFPchk{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"MFPcmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPcmp{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"IFneg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFneg{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"IFzero\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFzero{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"IFpos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFpos{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"IFlt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFlt{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"IFeq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFeq{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"IFgt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IFgt{${1:true text}}{${2:false text}}\"\n      }\n    },\n    {\n      \"name\": \"MFPtruncate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPtruncate{${1:integer}}{${2:num}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPround\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPround{${1:integer}}{${2:num}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPstrip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPstrip{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Rpush\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rpush{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"Rpop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rpop{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Radd\"\n    },\n    {\n      \"name\": \"Rsub\"\n    },\n    {\n      \"name\": \"Rmul\"\n    },\n    {\n      \"name\": \"Rmpy\"\n    },\n    {\n      \"name\": \"Rdiv\"\n    },\n    {\n      \"name\": \"Rmin\"\n    },\n    {\n      \"name\": \"Rmax\"\n    },\n    {\n      \"name\": \"Rchs\"\n    },\n    {\n      \"name\": \"Rabs\"\n    },\n    {\n      \"name\": \"Rdbl\"\n    },\n    {\n      \"name\": \"Rhalve\"\n    },\n    {\n      \"name\": \"Rint\"\n    },\n    {\n      \"name\": \"Rfrac\"\n    },\n    {\n      \"name\": \"Rfloor\"\n    },\n    {\n      \"name\": \"Rceil\"\n    },\n    {\n      \"name\": \"Rsgn\"\n    },\n    {\n      \"name\": \"Rsq\"\n    },\n    {\n      \"name\": \"Rinv\"\n    },\n    {\n      \"name\": \"Rincr\"\n    },\n    {\n      \"name\": \"Rdecr\"\n    },\n    {\n      \"name\": \"Rzero\"\n    },\n    {\n      \"name\": \"Rnoop\"\n    },\n    {\n      \"name\": \"Rchk\"\n    },\n    {\n      \"name\": \"Rcmp\"\n    },\n    {\n      \"name\": \"Rdup\"\n    },\n    {\n      \"name\": \"Rexch\"\n    },\n    {\n      \"name\": \"Export\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Export{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"Global\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Global{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ExportStack\"\n    },\n    {\n      \"name\": \"GlobalStack\"\n    },\n    {\n      \"name\": \"EndofStack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZeroOverZeroInt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZeroOverZeroFrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xOverZeroInt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xOverZeroFrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaxRealInt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaxRealFrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MFPsin\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPsin{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPcos\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPcos{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPangle\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPangle{${1:x}}{${2:y}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPrad\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPrad{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPdeg\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPdeg{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPlog\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPlog{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPln\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPln{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPexp\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPexp{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPsqrt\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPsqrt{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPrand\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFPrand{${1:num}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPpow\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MFPpow{${1:num}}{${2:integer}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MFPsetseed\",\n      \"if\": \"extra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MFPsetseed{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"MFPrandgenA\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"MFPrandgenB\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"MFPrandgenC\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rsin\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rcos\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rangle\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rrad\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rdeg\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rlog\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rln\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rexp\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rsqrt\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rrand\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"Rpow\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"LogOfZeroInt\",\n      \"if\": \"extra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LogOfZeroFrac\",\n      \"if\": \"extra\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/minifp#c\": [\n      \"extra\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minifp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minijs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Cjascale\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/minim-mp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mplibtextextlabel\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibtextextlabel{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibtextextlabel#c,\\\\mplibshowlog#c,\\\\mplibcodeinherit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibshowlog\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibshowlog{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibtextextlabel#c,\\\\mplibshowlog#c,\\\\mplibcodeinherit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibcodeinherit\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibcodeinherit{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibtextextlabel#c,\\\\mplibshowlog#c,\\\\mplibcodeinherit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibsetformat\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibsetformat{${1:format name%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibsetformat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mplibnumbersystem\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mplibnumbersystem{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\mplibnumbersystem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"everymplib\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everymplib{${1:metapost code}}\"\n      }\n    },\n    {\n      \"name\": \"everymplib\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"everymplib[${2:instance name}]{${1:metapost code}}\"\n      }\n    },\n    {\n      \"name\": \"everyendmplib\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyendmplib{${1:metapost code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"everyendmplib\",\n      \"if\": \"luamplib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"everyendmplib[${2:instance name}]{${1:metapost code}}\"\n      }\n    },\n    {\n      \"name\": \"newmetapostenvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmetapostenvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newmetapostenvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newmetapostenvironment[${2:options}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"mpcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"directmetapost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directmetapost{${1:metapost code}}\"\n      }\n    },\n    {\n      \"name\": \"directmetapost\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"directmetapost[${2:options}]{${1:metapost code}}\"\n      }\n    },\n    {\n      \"name\": \"newmetapostinstance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmetapostinstance{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newmetapostinstance\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newmetapostinstance[${2:options}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"voidbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ignore{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"firstoftwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"firstoftwo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"secondoftwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secondoftwo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"nextif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextifx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextifcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"withoptions[${2:default}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"splitcommalist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splitcommalist{${1:code}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"unset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setluachunkname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setluachunkname{${1:cmd}}{${2:actual name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"metapost\"\n    },\n    {\n      \"name\": \"metapost\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/minim-mp#c\": [\n      \"luamplib\"\n    ],\n    \"\\\\mplibtextextlabel#c,\\\\mplibshowlog#c,\\\\mplibcodeinherit#c\": [\n      \"enable\",\n      \"disable\"\n    ],\n    \"\\\\mplibsetformat#c\": [\n      \"plain\",\n      \"metafun\"\n    ],\n    \"\\\\mplibnumbersystem#c\": [\n      \"scaled\",\n      \"double\",\n      \"decimal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minim-mp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minimalist-plain.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"extramarks\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"projlib-draft\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"projlib-theorem\"\n    },\n    {\n      \"name\": \"projlib-author\"\n    },\n    {\n      \"name\": \"projlib-titlepage\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"scontents\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LocallyStopLineNumbers\"\n    },\n    {\n      \"name\": \"ResumeLineNumbers\"\n    },\n    {\n      \"name\": \"parttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifLNturnsON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywordname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LNturnsONfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LNturnsONtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexDotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexLinebreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndexHeading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexHeading{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"keyword\"\n    },\n    {\n      \"name\": \"emphasis\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/minimalist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"projlib-paper\"\n    },\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"minimalist-plain\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"desculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simpleqedsymbol\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseculine\",\n      \"if\": \"classical=true\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/minimalist#c\": [\n      \"draft\",\n      \"fast\",\n      \"title in boldface\",\n      \"title in scshape\",\n      \"title in sffamily\",\n      \"use sffamily\",\n      \"use scshape\",\n      \"classical\",\n      \"flow\",\n      \"stream\",\n      \"runin\",\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\",\n      \"regionalref\",\n      \"originalref\",\n      \"colored proof\",\n      \"Chinese\",\n      \"TChinese\",\n      \"English\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Japanese\",\n      \"Russian\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minimalist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minipage-marginpar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"minipagewithmarginpars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"minipagewithmarginpars\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/minted.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"latex2pydata\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mint{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mint[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mintinline{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mintinline[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputminted{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputminted[${3:options%keyvals}]{${1:language}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemintedstyle{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usemintedstyle[${2:language}]{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminted{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setminted[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmintedinline{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmintedinline[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"listoflistings\"\n    },\n    {\n      \"name\": \"listingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoflistingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newminted{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newminted[${3:envname}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmint{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmint[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintinline{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintinline[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintedfile{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintedfile[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listing\"\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/minted#c\": [\n      \"chapter\",\n      \"section\",\n      \"cache\",\n      \"cachedir=${1:directory}\",\n      \"debug\",\n      \"frozencache\",\n      \"highlightmode=${1|fastfirst,fast,immediate|}\",\n      \"inputlexerlinenos\",\n      \"lexerlinenos\",\n      \"newfloat\",\n      \"placeholder\",\n      \"verbatim\"\n    ],\n    \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\": [\n      \"autogobble\",\n      \"baselinestretch=\",\n      \"beameroverlays\",\n      \"bgcolor=\",\n      \"bgcolorpadding=\",\n      \"bgcolorvphantom=${1:macro}\",\n      \"breakafter=${1:string}\",\n      \"breakafterinrun\",\n      \"breakaftersymbolpost=${1:string}\",\n      \"breakaftersymbolpre=${1:string}\",\n      \"breakanywhere\",\n      \"breakanywhereinlinestretch=\",\n      \"breakanywheresymbolpost=${1:string}\",\n      \"breakanywheresymbolpre=${1:string}\",\n      \"breakautoindent\",\n      \"breakbefore=${1:string}\",\n      \"breakbeforeinrun\",\n      \"breakbeforesymbolpost=${1:string}\",\n      \"breakbeforesymbolpre=${1:string}\",\n      \"breakbytoken\",\n      \"breakbytokenanywhere\",\n      \"breakindent=\",\n      \"breakindentnchars=${1:integer}\",\n      \"breaklines\",\n      \"breaksymbol=${1:string}\",\n      \"breaksymbolindent=\",\n      \"breaksymbolindentnchars=${1:integer}\",\n      \"breaksymbolindentleft=\",\n      \"breaksymbolindentleftnchars=${1:int}\",\n      \"breaksymbolindentritht=\",\n      \"breaksymbolindentrightnchars=${1:int}\",\n      \"breaksymbolleft=${1:string}\",\n      \"breaksymbolright=${1:string}\",\n      \"breaksymbolsep=\",\n      \"breaksymbolsepnchars=${1:int}\",\n      \"breaksymbolsepleft=\",\n      \"breaksymbolsepleftnchars=${1:int}\",\n      \"breaksymbolsepright=\",\n      \"breaksymbolseprightnchars=${1:int}\",\n      \"codetagify=${1:string list}\",\n      \"curlyquotes\",\n      \"encoding=${1:encoding}\",\n      \"envname=${1:string}\",\n      \"escapeinside=${1:two chars}\",\n      \"firstline=${1:integer}\",\n      \"firstnumber=${2|auto,last,${1:integer}|}\",\n      \"fontencoding=${1:font encoding}\",\n      \"fontfamily=${1:family name}\",\n      \"fontseries=${1:series name}\",\n      \"fontshape=${1:shape name}\",\n      \"fontsize=${1:size command}\",\n      \"formatcom=${1:command}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"funcnamehighlighting\",\n      \"gobble=${1:integer}\",\n      \"gobblefilter=${1:integer}\",\n      \"highlightcolor=\",\n      \"highlightlines=${1:list of lineno ranges}\",\n      \"ignorelexererrors\",\n      \"keywordcase=${1|lower,upper,capitalize,none|}\",\n      \"label=${1:string}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"lastline=${1:integer}\",\n      \"linenos\",\n      \"listparameters=${1:macro}\",\n      \"literalenvname=${1:string}\",\n      \"literatecomment=${1:macro}\",\n      \"mathescape\",\n      \"numberblanklines\",\n      \"numberfirstline\",\n      \"numbers=${1|left,right,both,none|}\",\n      \"numbersep=\",\n      \"obeytabs\",\n      \"python3\",\n      \"rangeregex=${1:macro}\",\n      \"rangeregexmatchnumber=${1:integer}\",\n      \"rangeregexdotall\",\n      \"rangeregexmultiline\",\n      \"rangestartafterstring=${1:macro}\",\n      \"rangestartstring=${1:macro}\",\n      \"rangestopbeforestring=${1:macro}\",\n      \"rangestopstring=${1:macro}\",\n      \"resetmargins\",\n      \"rulecolor=\",\n      \"samepage\",\n      \"showspaces\",\n      \"showtabs\",\n      \"space=${1:macro}\",\n      \"spacecolor=\",\n      \"startinline\",\n      \"stepnumber=${1:integer}\",\n      \"stepnumberfromfirst\",\n      \"stepnumberoffsetvalues\",\n      \"stripall\",\n      \"stripnl\",\n      \"style=${1:pygments style}\",\n      \"tab=${1:macro}\",\n      \"tabcolor=\",\n      \"tabsize=${1:integer}\",\n      \"texcl\",\n      \"texcomments\",\n      \"xleftmargin=\",\n      \"xrightmargin=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minted#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minted2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat\"\n    },\n    {\n      \"name\": \"newfloat\",\n      \"if\": \"newfloat=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mint{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mint\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mint[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"mintinline{${1:language}}|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"mintinline\",\n      \"arg\": {\n        \"format\": \"[]{}||\",\n        \"snippet\": \"mintinline[${2:options}]{${1:language}}|${3:code}|\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputminted{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputminted[${3:options%keyvals}]{${1:language}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemintedstyle{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"usemintedstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usemintedstyle[${2:language}]{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminted{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setminted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setminted[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmintedinline{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmintedinline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmintedinline[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"listoflistings\"\n    },\n    {\n      \"name\": \"listingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listoflistingscaption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newminted{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newminted[${3:envname}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmint{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmint[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintinline{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintinline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintinline[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmintedfile{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newmintedfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newmintedfile[${3:macro name}]{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeleteFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeleteFile[${2:directory}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDirectory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideDirectory{${1:directory}}\"\n      }\n    },\n    {\n      \"name\": \"ifAppExists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TestAppExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestAppExists{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"MintedPygmentize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MintedPython\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"minted\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listing\"\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:placement}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/minted2#c\": [\n      \"chapter\",\n      \"section\",\n      \"cache\",\n      \"cachedir=${1:directory}\",\n      \"finalizecache\",\n      \"fontencoding=${1:encoding}\",\n      \"frozencache\",\n      \"draft\",\n      \"final\",\n      \"inputlanglinenos\",\n      \"kpsewhich\",\n      \"langlinenos\",\n      \"newfloat\",\n      \"outputdir=${1:directory}\"\n    ],\n    \"\\\\begin{minted},\\\\mint,\\\\mintinline,\\\\inputminted,\\\\setminted,\\\\setmintedinline,\\\\newminted,\\\\newmint,\\\\newmintinline,\\\\newmintedfile\": [\n      \"autogobble\",\n      \"baselinestretch=\",\n      \"beameroverlays\",\n      \"breakbytoken\",\n      \"breakbytokenanywhere\",\n      \"breaklines\",\n      \"bgcolor=\",\n      \"codetagify=${1:string list}\",\n      \"curlyquotes\",\n      \"encoding=${1:encoding}\",\n      \"escapeinside=${1:two chars}\",\n      \"firstline=${1:int}\",\n      \"firstnumber=${2|auto,last,${1:integer}|}\",\n      \"fontfamily=${1:family name}\",\n      \"fontseries=${1:series name}\",\n      \"fontsize=${1:size command}\",\n      \"fontshape=${1:shape name}\",\n      \"formatcom=${1:command}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"funcnamehighlighting\",\n      \"gobble=${1:int}\",\n      \"highlightcolor=\",\n      \"highlightlines=${1:list of lineno ranges}\",\n      \"ignorelexererrors\",\n      \"keywordcase=${1|lower,upper,capitalize|}\",\n      \"label=${1:string}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"lastline=${1:int}\",\n      \"linenos\",\n      \"numberfirstline\",\n      \"numbers=${1|left,right,both,none|}\",\n      \"mathescape\",\n      \"numberblanklines\",\n      \"numbersep=\",\n      \"obeytabs\",\n      \"outencoding=${1:encoding}\",\n      \"python3\",\n      \"resetmargins\",\n      \"rulecolor=\",\n      \"samepage\",\n      \"showspaces\",\n      \"showtabs\",\n      \"space=${1:command}\",\n      \"spacecolor=\",\n      \"startinline\",\n      \"style=${1:pytments style}\",\n      \"stepnumber=${1:int}\",\n      \"stepnumberfromfirst\",\n      \"stepnumberoffsetvalues\",\n      \"stripall\",\n      \"stripnl\",\n      \"tab=${1:commnd}\",\n      \"tabcolor=\",\n      \"tabsize=${1:int}\",\n      \"texcl\",\n      \"texcomments\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"breakafter=${1:string}\",\n      \"breakafterinrun\",\n      \"breakaftersymbolpre=${1:string}\",\n      \"breakaftersymbolpost=${1:string}\",\n      \"breakanywhere\",\n      \"breakanywheresymbolpre=${1:string}\",\n      \"breakanywheresymbolpost=${1:string}\",\n      \"breakautoindent\",\n      \"breakbefore=${1:string}\",\n      \"breakbeforeinrun\",\n      \"breakbeforesymbolpre=${1:string}\",\n      \"breakbeforesymbolpost=${1:string}\",\n      \"breakindent=\",\n      \"breakindentnchars=${1:int}\",\n      \"breaksymbol=${1:string}\",\n      \"breaksymbolleft=${1:string}\",\n      \"breaksymbolright=${1:string}\",\n      \"breaksymbolindent=\",\n      \"breaksymbolindentnchars=${1:int}\",\n      \"breaksymbolindentleft=\",\n      \"breaksymbolindentleftnchars=${1:int}\",\n      \"breaksymbolindentritht=\",\n      \"breaksymbolindentrightnchars=${1:int}\",\n      \"breaksymbolsep=\",\n      \"breaksymbolsepnchars=${1:int}\",\n      \"breaksymbolsepleft=\",\n      \"breaksymbolsepleftnchars=${1:int}\",\n      \"breaksymbolsepright=\",\n      \"breaksymbolseprightnchars=${1:int}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minted2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mintspirit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mintspirit\"\n    },\n    {\n      \"name\": \"plstyle\"\n    },\n    {\n      \"name\": \"textpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postyle\"\n    },\n    {\n      \"name\": \"textpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlstyle\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tostyle\"\n    },\n    {\n      \"name\": \"textto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mintspiritfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mintspirit#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"default\",\n      \"sfdefault\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"tab\",\n      \"proportional\",\n      \"prop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mintspirit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mintspirit2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mintspirit2\"\n    },\n    {\n      \"name\": \"plstyle\"\n    },\n    {\n      \"name\": \"textpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postyle\"\n    },\n    {\n      \"name\": \"textpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlstyle\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tostyle\"\n    },\n    {\n      \"name\": \"textto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mintspiritfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mintspirit2#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"default\",\n      \"sfdefault\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"tab\",\n      \"proportional\",\n      \"prop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mintspirit2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/minutes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"minitoc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"minutesstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minutesstyle{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\minutesstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"foreignMinutes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreignMinutes{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignMinutes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foreignMinutes[${2:pages}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"moderation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moderation{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"minutetaker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minutetaker{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"participant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"participant{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"guest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"guest{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"minutesdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minutesdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"starttime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starttime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"endtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"endtime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"location\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"location{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"missing\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missing[${2:no excuse name%text}]{${1:excused name1,excused name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"missingExcused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingExcused{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"missingNoExcuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingNoExcuse{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"topic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"topic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topic[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtopic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtopic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"addtopic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtopic[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subtopic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtopic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subtopic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtopic[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubtopic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubtopic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubtopic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubtopic[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"minitopic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minitopic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newcols\"\n    },\n    {\n      \"name\": \"newcols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newcols[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"newcols\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"newcols[${1:title%text}][${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"task{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"task{${1:*who%text}}[${3:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"task[${3:done%text}]{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"task[${3:done%text}]{${1:*who%text}}[${4:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"listoftasks\"\n    },\n    {\n      \"name\": \"listoftasks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftasks[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"schedule{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"schedule{${1:when}}{${2:what%text}}[${3:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"schedule{${1:when}}[${3:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"schedule{${1:when}}[${3:time}]{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"schedule[${3:cal}]{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"schedule[${3:cal}]{${1:when}}{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"schedule[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"schedule\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"schedule[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}[${5:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"vote\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vote{${1:text}}{${2:yes}}{${3:no}}{${4:-}}\"\n      }\n    },\n    {\n      \"name\": \"vote\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"vote{${1:text}}{${2:yes}}{${3:no}}{${4:-}}[${5:resolution%text}]\"\n      }\n    },\n    {\n      \"name\": \"decisiontheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decisiontheme{${1:label}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"decision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decision{${1:ref%ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"decision\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"decision{${1:ref%ref}}{${2:text}}[${3:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"decision*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decision*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"decision*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"decision*{${1:text}}[${2:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"listofdecisions\"\n    },\n    {\n      \"name\": \"pro\"\n    },\n    {\n      \"name\": \"Pro\"\n    },\n    {\n      \"name\": \"contra\"\n    },\n    {\n      \"name\": \"Contra\"\n    },\n    {\n      \"name\": \"result\"\n    },\n    {\n      \"name\": \"opinion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opinion{${1:who}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"secret\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secret{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"attachment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"attachment{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"attachment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"attachment[${3:label}]{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"listofattachments\"\n    },\n    {\n      \"name\": \"postscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inputminutes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputminutes{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"protokollKopf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fremdProtokoll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fremdProtokoll{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"fremdProtokoll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fremdProtokoll[${2:pages}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"untertitel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"untertitel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"protokollant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"protokollant{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"teilnehmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teilnehmer{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"gaeste\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gaeste{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"sitzungsdatum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sitzungsdatum{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"sitzungsbeginn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sitzungsbeginn{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"sitzungsende\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sitzungsende{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"sitzungsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sitzungsort{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"verteiler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verteiler{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"fehlend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fehlend[${2:no excuse name%text}]{${1:excused name1,excused name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"fehlendEntschuldigt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fehlendEntschuldigt{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"fehlendUnentschuldigt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fehlendUnentschuldigt{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"zusatztopic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zusatztopic{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"zusatztopic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zusatztopic[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"neueSpalte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neueSpalte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neueSpalte[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"neueSpalte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"neueSpalte[${1:title%text}][${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aufgabe{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"aufgabe{${1:*who%text}}[${3:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"aufgabe[${3:done%text}]{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aufgabe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"aufgabe[${3:done%text}]{${1:*who%text}}[${4:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aufgabenliste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aufgabenliste\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aufgabenliste[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"termin{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"termin{${1:when}}{${2:what%text}}[${3:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"termin{${1:when}}[${3:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"termin{${1:when}}[${3:time}]{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"termin[${3:cal}]{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"termin[${3:cal}]{${1:when}}{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"termin[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"termin[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}[${5:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"abstimmung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"abstimmung{${1:text}}{${2:yes}}{${3:no}}{${4:-}}\"\n      }\n    },\n    {\n      \"name\": \"abstimmung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"abstimmung{${1:text}}{${2:yes}}{${3:no}}{${4:-}}[${5:resolution%text}]\"\n      }\n    },\n    {\n      \"name\": \"beschlussthema\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"beschlussthema{${1:label}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"beschluss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"beschluss{${1:ref%ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"beschluss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"beschluss{${1:ref%ref}}{${2:text}}[${3:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"beschluss*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beschluss*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"beschluss*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"beschluss*{${1:text}}[${2:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"beschlussliste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ergebnis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meinung\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meinung{${1:who}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"geheim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"geheim{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"anhang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anhang{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"anhang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"anhang[${3:label}]{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"anhangsliste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nachtrag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nachtrag{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notulenkop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extranotulen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extranotulen{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extranotulen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extranotulen[${2:pages}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"ondertitel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ondertitel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"voorzitter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"voorzitter{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"notulist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notulist{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"deelnemer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deelnemer{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"gast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gast{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"bijeenkomstdatum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bijeenkomstdatum{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"beginbijeenkomst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginbijeenkomst{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"eindbijeenkomst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eindbijeenkomst{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"locatie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"locatie{${1:location%text}}\"\n      }\n    },\n    {\n      \"name\": \"afwezig\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"afwezig[${2:no excuse name%text}]{${1:excused name1,excused name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"afwezigBericht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afwezigBericht{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"afwezigZonderBericht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afwezigZonderBericht{${1:name1,name2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"extrapunt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrapunt{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"extrapunt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extrapunt[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"nieuweKolom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nieuweKolom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nieuweKolom[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"nieuweKolom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"nieuweKolom[${1:title%text}][${2:number}]\"\n      }\n    },\n    {\n      \"name\": \"aktie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aktie{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aktie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"aktie{${1:*who%text}}[${3:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aktie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"aktie[${3:done%text}]{${1:*who%text}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aktie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"aktie[${3:done%text}]{${1:*who%text}}[${4:when%text}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"aktielijst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aktielijst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aktielijst[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"termijn{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"termijn{${1:when}}{${2:what%text}}[${3:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"termijn{${1:when}}[${3:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"termijn{${1:when}}[${3:time}]{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"termijn[${3:cal}]{${1:when}}{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"termijn[${3:cal}]{${1:when}}{${2:what%text}}[${4:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"termijn[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}\"\n      }\n    },\n    {\n      \"name\": \"termijn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"termijn[${3:cal}]{${1:when}}[${4:time}]{${2:what%text}}[${5:long%text}]\"\n      }\n    },\n    {\n      \"name\": \"stemming\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"stemming{${1:text}}{${2:yes}}{${3:no}}{${4:-}}\"\n      }\n    },\n    {\n      \"name\": \"stemming\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"stemming{${1:text}}{${2:yes}}{${3:no}}{${4:-}}[${5:resolution%text}]\"\n      }\n    },\n    {\n      \"name\": \"besluitonderwerp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"besluitonderwerp{${1:label}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"besluit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"besluit{${1:ref%ref}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"besluit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"besluit{${1:ref%ref}}{${2:text}}[${3:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"besluit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"besluit*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"besluit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"besluit*{${1:text}}[${2:longText%text}]\"\n      }\n    },\n    {\n      \"name\": \"besluitenlijst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultaat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bijlage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bijlage{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"bijlage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bijlage[${3:label}]{${1:title%text}}{${2:pages}}\"\n      }\n    },\n    {\n      \"name\": \"bijlagenlijst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"naschrift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naschrift{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"minutestask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"minutestask{${1:text}}{${2:section}}{${3:when%text}}{${4:who%text}}{${5:date}}{${6:file}}{${7:page}}\"\n      }\n    },\n    {\n      \"name\": \"prepareCal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prepareCal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prepareCal[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"responsiblelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"votelength\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Minutes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Minutes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Vote\"\n    },\n    {\n      \"name\": \"Argumentation\"\n    },\n    {\n      \"name\": \"Opinions\"\n    },\n    {\n      \"name\": \"Secret\"\n    },\n    {\n      \"name\": \"Postscript\"\n    },\n    {\n      \"name\": \"Protokoll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Protokoll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Abstimmung\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Meinungen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Geheim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nachtrag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Notulen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Notulen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"Stemming\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Naschrift\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/minutes#c\": [\n      \"ListTitle\",\n      \"TableTitle\",\n      \"OneColumn\",\n      \"TwoColumn\",\n      \"CreateCld\",\n      \"8+3\",\n      \"Fileinfo\",\n      \"Secret\",\n      \"ASCII\"\n    ],\n    \"\\\\minutesstyle#c\": [\n      \"columns=${1:number}\",\n      \"header=${1|list,table|}\",\n      \"contents\",\n      \"vote=${1|list,table|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/minutes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/miscdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyper\"\n    },\n    {\n      \"name\": \"bookmark\",\n      \"if\": \"hyper\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"bsbs\"\n    },\n    {\n      \"name\": \"newitem\"\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"environment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"extension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extension{${1:ext}}\"\n      }\n    },\n    {\n      \"name\": \"Package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Package{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"option[${1:option}]\"\n      }\n    },\n    {\n      \"name\": \"FontName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FontName{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/miscdoc#c\": [\n      \"hyper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/miscdoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mismath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"mleftright\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ibrackets\",\n      \"if\": \"ibrackets\"\n    },\n    {\n      \"name\": \"decimalcomma\",\n      \"if\": \"decimalcomma\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"adj\"\n    },\n    {\n      \"name\": \"arccot\"\n    },\n    {\n      \"name\": \"arcosh\"\n    },\n    {\n      \"name\": \"arcoth\"\n    },\n    {\n      \"name\": \"arcsch\"\n    },\n    {\n      \"name\": \"arrowvect\"\n    },\n    {\n      \"name\": \"arsech\"\n    },\n    {\n      \"name\": \"arsinh\"\n    },\n    {\n      \"name\": \"artanh\"\n    },\n    {\n      \"name\": \"Aut\"\n    },\n    {\n      \"name\": \"bigO\"\n    },\n    {\n      \"name\": \"bigo\"\n    },\n    {\n      \"name\": \"boldvect\"\n    },\n    {\n      \"name\": \"boldvectcommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"cmmathcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmmathcal{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"codim\"\n    },\n    {\n      \"name\": \"coker\"\n    },\n    {\n      \"name\": \"Conv\"\n    },\n    {\n      \"name\": \"Cov\"\n    },\n    {\n      \"name\": \"cov\"\n    },\n    {\n      \"name\": \"csch\"\n    },\n    {\n      \"name\": \"curl\"\n    },\n    {\n      \"name\": \"dcap\"\n    },\n    {\n      \"name\": \"dcup\"\n    },\n    {\n      \"name\": \"di\"\n    },\n    {\n      \"name\": \"divg\"\n    },\n    {\n      \"name\": \"dlim\"\n    },\n    {\n      \"name\": \"dprod\"\n    },\n    {\n      \"name\": \"ds\"\n    },\n    {\n      \"name\": \"dsum\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"eqdef*\"\n    },\n    {\n      \"name\": \"erf\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"grad\"\n    },\n    {\n      \"name\": \"hlbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hvect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hvect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"id\"\n    },\n    {\n      \"name\": \"Id\"\n    },\n    {\n      \"name\": \"iif\"\n    },\n    {\n      \"name\": \"im\"\n    },\n    {\n      \"name\": \"itpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"lb\"\n    },\n    {\n      \"name\": \"lbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lcm\"\n    },\n    {\n      \"name\": \"lfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"lito\"\n    },\n    {\n      \"name\": \"mathbfsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MathFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MathFamily{${1:char}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"MathIt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathIt{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"MathNormal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathNormal{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"MathNumbers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathNumbers{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"MathProba\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathProba{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"mathset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathset{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MathUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathUp{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"mathup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mul\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oldIm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldRe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onlymathC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"Par\"\n    },\n    {\n      \"name\": \"pifonts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pifonts{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pifonts,\\\\pinumber\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pinormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pinumber\"\n    },\n    {\n      \"name\": \"pinumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pinumber[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\pifonts,\\\\pinumber\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pow{${1:expr}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"probastyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"Res\"\n    },\n    {\n      \"name\": \"rot\"\n    },\n    {\n      \"name\": \"sech\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"sinc\"\n    },\n    {\n      \"name\": \"spa\"\n    },\n    {\n      \"name\": \"then\"\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"txt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unbr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"var\"\n    },\n    {\n      \"name\": \"Var\"\n    },\n    {\n      \"name\": \"vect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"Zu\"\n    },\n    {\n      \"name\": \"systemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"systemstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changecol\"\n    },\n    {\n      \"name\": \"bslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upDelta\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"opDelta\"\n    },\n    {\n      \"name\": \"opdelta\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"system\"\n    },\n    {\n      \"name\": \"system\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:cols}]\"\n      }\n    },\n    {\n      \"name\": \"spmatrix\"\n    },\n    {\n      \"name\": \"mathcols\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mismath#c\": [\n      \"ibrackets\",\n      \"decimalcomma\",\n      \"nofunction\",\n      \"otherReIm\",\n      \"classicReIm\",\n      \"fixamsmath\",\n      \"donotfixamsmathbugs\",\n      \"allowspaces\",\n      \"disallowspaces\",\n      \"legacycolonsymbols\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\pifonts,\\\\pinumber\": [\n      \"lgrmath=${1:font name}\",\n      \"fontspec=${1:font name}\",\n      \"upgreek=${1|Euler,Symbol|}\",\n      \"mathdesign\",\n      \"fourier\",\n      \"kpfonts\",\n      \"pxfonts\",\n      \"txfonts\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mismath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/missaali.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifOldFinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OldFinnishtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OldFinnishfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifContextualAlternates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContextualAlternatestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContextualAlternatesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLigatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ligaturestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ligaturesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifMissaleAbbrStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MissaleAbbrStyletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MissaleAbbrStylefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAbbreviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abbreviatetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abbreviatefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifHistForms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HistFormstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HistFormsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPoFusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoFusiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoFusionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAlternateG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlternateGtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlternateGfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAlternateZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlternateZtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlternateZfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAltPunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AltPunctuationtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AltPunctuationfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAdditionalAbbrs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdditionalAbbrstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdditionalAbbrsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifManuscriptSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ManuscriptSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ManuscriptSpacingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msabbr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msabbr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"msabbra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msabbra{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"msabbralt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msabbralt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mssetfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mssetfontsize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"mssetblockwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mssetblockwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"mssetblocklines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mssetblocklines{${1:number of lines}}\"\n      }\n    },\n    {\n      \"name\": \"mssetgutterwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mssetgutterwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"mssetsizes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mssetsizes{${1:font size%l}}{${2:block width%l}}{${3:block lines}}\"\n      }\n    },\n    {\n      \"name\": \"mschapterinitial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mschapterinitial{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"mschapterinitialblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mschapterinitialblue{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"mschapterinitialgreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mschapterinitialgreen{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"mschapterinitialwithcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mschapterinitialwithcolor{${1:initial}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"msparinitial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msparinitial{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"msparinitialblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msparinitialblue{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"msparinitialgreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msparinitialgreen{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"msparinitialwithcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"msparinitialwithcolor{${1:initial}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"msstartchapter{${1:initial}}{${2:first line}}{${3:second line}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterblue\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"msstartchapterblue{${1:initial}}{${2:first line}}{${3:second line}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchaptergreen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"msstartchaptergreen{${1:initial}}{${2:first line}}{${3:second line}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterwithcolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"msstartchapterwithcolor{${1:initial}}{${2:first line}}{${3:second line}}{${4:color}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterwithrubric\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"msstartchapterwithrubric{${1:rubric}}{${2:initial}}{${3:first}}{${4:second}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterwithrubricblue\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"msstartchapterwithrubricblue{${1:rubric}}{${2:initial}}{${3:first}}{${4:second}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterwithrubricgreen\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"msstartchapterwithrubricgreen{${1:rubric}}{${2:initial}}{${3:first}}{${4:second}}\"\n      }\n    },\n    {\n      \"name\": \"msstartchapterwithrubricandcolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"msstartchapterwithrubricandcolors{${1:rubric}}{${2:initial}}{${3:first}}{${4:second}}{${5:color1}}{${6:color2}}\"\n      }\n    },\n    {\n      \"name\": \"mstd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstda\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstda{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdaacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdaacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstda\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstda{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdaacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdaacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdracc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdracc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstdr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdracc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdracc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstdo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdo{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdoacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdoacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstdo{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdoacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdoacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstdt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdtacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdtacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstdt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdtacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdtacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstdst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdst{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstdstacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstdstacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstdst{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdstacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstdstacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstddacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstddacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstdd{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstddacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstddacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"mstddg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstddg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mstddgacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mstddgacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"rmstddg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmstddg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rmstddacc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rmstddacc{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"msmanualspacing\"\n    },\n    {\n      \"name\": \"msaltpunctuation\"\n    },\n    {\n      \"name\": \"msinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msinit{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"msinita\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msinita{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"msrubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msrubric{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"msrubricblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msrubricblue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"msrubricgreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msrubricgreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mspara\"\n    },\n    {\n      \"name\": \"mstdl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mstdl{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"rotundar\"\n    },\n    {\n      \"name\": \"straightr\"\n    },\n    {\n      \"name\": \"shorts\"\n    },\n    {\n      \"name\": \"longs\"\n    },\n    {\n      \"name\": \"msnoliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msnoliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mspartialrubric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspartialrubric{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mspartialrubricblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspartialrubricblue{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mspartialrubricgreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspartialrubricgreen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mspartialrubricwithcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mspartialrubricwithcolor{${1:text}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"mspartialline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mspartialline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mstexturafamily\"\n    },\n    {\n      \"name\": \"MsNormalStyle\"\n    },\n    {\n      \"name\": \"MsAltAEStyle\"\n    },\n    {\n      \"name\": \"MsAltPunctiationStyle\"\n    },\n    {\n      \"name\": \"MsAltZStyle\"\n    },\n    {\n      \"name\": \"MsAltGStyle\"\n    },\n    {\n      \"name\": \"MsOldFinnishStyle\"\n    },\n    {\n      \"name\": \"MsPoFusionStyle\"\n    },\n    {\n      \"name\": \"MsAltAbbrStyle\"\n    },\n    {\n      \"name\": \"MsNormalAbbrStyle\"\n    },\n    {\n      \"name\": \"MsAdditionalAbbrStyle\"\n    },\n    {\n      \"name\": \"Missaali\"\n    },\n    {\n      \"name\": \"initialibox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubricbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initialI\"\n    },\n    {\n      \"name\": \"missaali\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missaali{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mschapterindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texturaemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texturaemph{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mstextura\"\n    },\n    {\n      \"name\": \"mstexturablock\"\n    },\n    {\n      \"name\": \"mstexturablocks\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/missaali#c\": [\n      \"ManuscriptSpacing\",\n      \"OldPunctuation\",\n      \"OldFinnish\",\n      \"OldAE\",\n      \"AltG\",\n      \"AltZ\",\n      \"FusePo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/missaali#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mkstmp_pro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"aeb_pro\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setStampPath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setStampPath{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"definePath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definePath{${1:cmd}}{${2:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"predocassemJS\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mlcid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CIDK\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CIDK{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CIDC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CIDC{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CIDT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CIDT{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mleftright.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mleftright\"\n    },\n    {\n      \"name\": \"mleftrightrestore\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mlist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newvect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newvect{${1:macro%cmd}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newvect\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newvect{${1:macro%cmd}}{${2:text%plain}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmatr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmatr{${1:macro%cmd}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newmatr\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newmatr{${1:macro%cmd}}{${2:text%plain}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newfunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfunc{${1:macro%cmd}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newfunc\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newfunc{${1:macro%cmd}}{${2:text%plain}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newmset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmset{${1:macro%cmd}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newmset\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newmset{${1:macro%cmd}}{${2:text%plain}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setR\"\n    },\n    {\n      \"name\": \"setC\"\n    },\n    {\n      \"name\": \"setN\"\n    },\n    {\n      \"name\": \"setZ\"\n    },\n    {\n      \"name\": \"vect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vect{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vect{${1:text%plain}}{${2:indices}}\"\n      }\n    },\n    {\n      \"name\": \"matr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"matr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"matr{${1:text%plain}}{${2:entries}}\"\n      }\n    },\n    {\n      \"name\": \"func\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"func{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"func\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"func{${1:text%plain}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mset{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mset{${1:text%plain}}{${2:dims}}\"\n      }\n    },\n    {\n      \"name\": \"MID\"\n    },\n    {\n      \"name\": \"LAST\"\n    },\n    {\n      \"name\": \"newmlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmlist{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newmlist\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newmlist{${1:macro%cmd}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewmlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewmlist{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"renewmlist\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"renewmlist{${1:macro%cmd}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mlistsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlistsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mlistsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistsub{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"mlistsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistsup{${1:arg}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"mlistelem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistelem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlisthead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mlisthead{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mlistnowrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistnowrap{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistparen{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistbrack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistbrack{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistbrace{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistangle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistheadparen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistheadparen{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistheadbrack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistheadbrack{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistheadbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistheadbrace{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mlistheadangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mlistheadangle{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newvect,\\\\newmatr,\\\\newfunc,\\\\newmset,\\\\newmlist,\\\\renewmlist,\\\\mlistsetup\": [\n      \"headcmd=${1:macro}\",\n      \"elemcmd=${1:macro}\",\n      \"headhook=${1:code}\",\n      \"wrap={${1:open}}{${2:close}}\",\n      \"wrapone\",\n      \"wrapone={${1:open}}{${2:close}}\",\n      \"wrapcmd=${1:macro}\",\n      \"wraponecmd=${1:macro}\",\n      \"sep=${1:code}\",\n      \"sepsep=${1:code}\",\n      \"symbol=${1:symbol}\",\n      \"index={${1:indeices}}\",\n      \"elem={${1:args}}\",\n      \"dot=${1:code}\",\n      \"dots=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mlmodern.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/lmodern#c\": [\n      \"nomath\",\n      \"variablett\",\n      \"lighttt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/lmodern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mlutf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UTFK\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTFK{${1:hex code}}\"\n      }\n    },\n    {\n      \"name\": \"UTFC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTFC{${1:hex code}}\"\n      }\n    },\n    {\n      \"name\": \"UTFT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTFT{${1:hex code}}\"\n      }\n    },\n    {\n      \"name\": \"UTFM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTFM{${1:hex code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mnotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"sidenotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MNOTE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MNOTE{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"MNOTE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MNOTE[${2:TikZ options}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Mnewauthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Mnewauthor{${1:name}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"Mnewauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Mnewauthor[${3:initials}]{${1:name}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"HideMNOTES\"\n    },\n    {\n      \"name\": \"ShowMNOTES\"\n    },\n    {\n      \"name\": \"ReverseMNConnect\"\n    },\n    {\n      \"name\": \"mnotespaperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MNOTEWIDTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MNCOLOUR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MNFONT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MNOTEon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MNOTEon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MNOTEon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MNOTEon[${2:TikZ options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mnoteseastlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mnoteseastlink{${1:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"mnoteswestlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mnoteswestlink{${1:TikZ options}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mnotes#c\": [\n      \"scale\",\n      \"scale=${1:factor}\",\n      \"mnwidth=\",\n      \"boxcolour=\",\n      \"hide\",\n      \"sidenotes\",\n      \"basic\",\n      \"reverseconnect\",\n      \"centre\",\n      \"fontsize=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mnotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/moderncvcollection.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"collectionnew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectionnew{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collectionadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectionadd{${1:name}}{${2:item to add}}\"\n      }\n    },\n    {\n      \"name\": \"collectionadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"collectionadd[${3:key%plain}]{${1:name}}{${2:item to add}}\"\n      }\n    },\n    {\n      \"name\": \"collectioncount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectioncount{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"collectiongetitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectiongetitem{${1:name}}{${2:element id}}\"\n      }\n    },\n    {\n      \"name\": \"collectiongetkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectiongetkey{${1:name}}{${2:element id}}\"\n      }\n    },\n    {\n      \"name\": \"collectionloopbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectionloop{${1:name}}{${2:operation sequence}}\"\n      }\n    },\n    {\n      \"name\": \"collectionloopid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionloopitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionloopkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collectionfindbykey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectionfindbykey{${1:name}}{${2:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/moderncvcompatibility.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/moderntimeline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tlwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tlrunningwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlrunningwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tlrunningcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlrunningcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tltextstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tltextstart{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tltextstart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tltextstart[${2:anchor}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tltextend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tltextend{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tltextend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tltextend[${2:anchor}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tltextsingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tltextsingle{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tltext{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"tlmaxdates\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tlmaxdates{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"tlsince\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlsince{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlsetnotshadedfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlsetnotshadedfraction{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"tlenablemonths\"\n    },\n    {\n      \"name\": \"tldisablemonths\"\n    },\n    {\n      \"name\": \"tlenablemarksmo\"\n    },\n    {\n      \"name\": \"tlenablemarksyr\"\n    },\n    {\n      \"name\": \"tldisablemarksyr\"\n    },\n    {\n      \"name\": \"tldisablemarksmo\"\n    },\n    {\n      \"name\": \"tlmarkheightmo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlmarkheightmo{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"tlmarkheightyr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlmarkheightyr{${1:height%l}}\"\n      }\n    },\n    {\n      \"name\": \"tlcventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"tlcventry{${1:start year}}{${2:end year}}{${3:degree or job title%text}}{${4:institution or employer%text}}{${5:city%text}}{${6:grade%text}}{${7:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tlcventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"tlcventry[${8:color}]{${1:start year}}{${2:end year}}{${3:degree or job title%text}}{${4:institution or employer%text}}{${5:city%text}}{${6:grade%text}}{${7:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tllabelcventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"tllabelcventry{${1:start year}}{${2:end year}}{${3:label}}{${4:degree or job title%text}}{${5:institution or employer%text}}{${6:city%text}}{${7:grade%text}}{${8:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tllabelcventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"tllabelcventry[${9:color}]{${1:start year}}{${2:end year}}{${3:label}}{${4:degree or job title%text}}{${5:institution or employer%text}}{${6:city%text}}{${7:grade%text}}{${8:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tldatecventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tldatecventry{${1:year}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tldatecventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"tldatecventry[${7:color}]{${1:year}}{${2:degree or job title%text}}{${3:institution or employer%text}}{${4:city%text}}{${5:grade%text}}{${6:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tldatelabelcventry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"tldatelabelcventry{${1:year}}{${2:label}}{${3:degree or job title%text}}{${4:institution or employer%text}}{${5:city%text}}{${6:grade%text}}{${7:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"tldatelabelcventry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"tldatelabelcventry[${8:color}]{${1:year}}{${2:label}}{${3:degree or job title%text}}{${4:institution or employer%text}}{${5:city%text}}{${6:grade%text}}{${7:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"fullcolorwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/moderntimeline#c\": [\n      \"firstyear=${1:year}\",\n      \"lastyear=${1:year}\",\n      \"marksmo=\",\n      \"marksyr=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/moderntimeline#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/modiagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"chemgreek\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmodiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmodiagram{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmodiagram#c,\\\\begin{modiagram}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"atom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"atom{${1:left or right}}{${2:AO-spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\atom#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"atom\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"atom[${3:name}]{${1:left or right}}{${2:AO-spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\atom#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"molecule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"molecule{${1:MO-spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\molecule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"molecule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"molecule[${2:name}]{${1:MO-spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\molecule#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"AO\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"AO(${3:%<xshift%>}){${1:type}}{${2:energy; el-spec}}\"\n      }\n    },\n    {\n      \"name\": \"AO\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"AO(${4:%<xshift%>}){${1:type}}[${3:options}]{${2:energy; el-spec}}\",\n        \"keys\": [\n          \"\\\\AO#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"AO\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"AO[${3:name}](${4:%<xshift%>}){${1:type}}{${2:energy; el-spec}}\"\n      }\n    },\n    {\n      \"name\": \"AO\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}\",\n        \"snippet\": \"AO[${3:name}](${5:%<xshift%>}){${1:type}}[${4:options}]{${2:energy; el-spec}}\",\n        \"keys\": [\n          \"\\\\AO#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"connect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"connect{${1:AO-connect}}\"\n      }\n    },\n    {\n      \"name\": \"EnergyAxis\"\n    },\n    {\n      \"name\": \"EnergyAxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EnergyAxis[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\EnergyAxis\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"modiagram\"\n    },\n    {\n      \"name\": \"modiagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setmodiagram#c,\\\\begin{modiagram}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setmodiagram#c,\\\\begin{modiagram}#c\": [\n      \"style=${1|plain,square,circle,round,fancy|}\",\n      \"distance=\",\n      \"AO-width=\",\n      \"el-sep=${1:number}\",\n      \"up-el-pos=${1:number}\",\n      \"down-el-pos=${1:number}\",\n      \"lines={${1:TikZ}}\",\n      \"names\",\n      \"names-style={${1:TikZ}}\",\n      \"names-style-add={${1:TikZ}}\",\n      \"labels\",\n      \"labels-fs=${1:cmd}\",\n      \"labels-style={${1:TikZ}}\"\n    ],\n    \"\\\\atom#c\": [\n      \"1s={${1:rel-energy}; ${2:el-spec}}\",\n      \"2s={${1:rel-energy}; ${2:el-spec}}\",\n      \"2p={${1:rel-energy}; ${2:x el-spec}, ${3:y el-spec}, ${4:z el-spec}}\",\n      \"label=\",\n      \"color=\",\n      \"up-el-pos=\",\n      \"down-el-pos=\"\n    ],\n    \"\\\\molecule#c\": [\n      \"1sMO={${1:energy gain}/${2:energy loss}; ${3:s el-spec}, ${4:s* el-spec}}\",\n      \"2sMO={${1:energy gain}/${2:energy loss}; ${3:s el-spec}, ${4:s* el-spec}}\",\n      \"2pMO={${1:s gain}/${2:s loss}, ${3:p gain}/${4:p loss}; ${5:s}, ${6:py}, ${7:pz}, ${8:py*}, ${9:pz*}, ${10:s*}}\",\n      \"label=\",\n      \"color=\",\n      \"up-el-pos=\",\n      \"down-el-pos=\"\n    ],\n    \"\\\\AO#c\": [\n      \"label=\",\n      \"label[x]=\",\n      \"label[y]=\",\n      \"label[z]=\",\n      \"color=\",\n      \"color[x]=\",\n      \"color[y]=\",\n      \"color[z]=\",\n      \"up-el-pos=${1:number}\",\n      \"up-el-pos[x]=${1:number}\",\n      \"up-el-pos[y]=${1:number}\",\n      \"up-el-pos[z]=${1:number}\",\n      \"down-el-pos=${1:number}\",\n      \"down-el-pos[x]=${1:number}\",\n      \"down-el-pos[y]=${1:number}\",\n      \"down-el-pos[z]=${1:number}\"\n    ],\n    \"\\\\EnergyAxis\": [\n      \"title=\",\n      \"head=${1:TikZ arrow head}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/modroman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shortroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nbshortroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbshortroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"longroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nblongroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nblongroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LongRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LongRoman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nbLongRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbLongRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbRoman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbRoman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"modroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"modroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nbmodroman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbmodroman{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"RedefineMRmdclxvij\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RedefineMRmdclxvij{${1:M}}{${2:D}}{${3:C}}{${4:L}}{${5:X}}{${6:V}}{${7:I}}{${8:J}}\"\n      }\n    },\n    {\n      \"name\": \"RedefineMRmdclxvij\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RedefineMRmdclxvij[${9:ISOL}]{${1:M}}{${2:D}}{${3:C}}{${4:L}}{${5:X}}{${6:V}}{${7:I}}{${8:J}}\"\n      }\n    },\n    {\n      \"name\": \"printntimes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printntimes{${1:number}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/modular.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"coseoul\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"import\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subimportlevel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subimportlevel{${1:file path%definition}}{${2:file}}{${3:levels}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentimportdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/modulus.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"modulo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"modulo{${1:dividend}}{${2:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"remainder\"\n    },\n    {\n      \"name\": \"quotient\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"quotient{${1:dividend}}{${2:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"intquotient\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mol2chemfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"chemfig\"\n    },\n    {\n      \"name\": \"twoopt\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mcfinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcfinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mcfpush\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mcfpush{${1:anchor1}}{${2:angle1:dist1}}{${3:anchor2}}{${4:angle2:dist2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfpush\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mcfpush[${5:length}]{${1:anchor1}}{${2:angle1:dist1}}{${3:anchor2}}{${4:angle2:dist2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfpush\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"mcfpush[${5:length1}][${6:length2}]{${1:anchor1}}{${2:angle1:dist1}}{${3:anchor2}}{${4:angle2:dist2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfabove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcfabove{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfaboveright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mcfaboveright{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mcfatomno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcfatomno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mcfbelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcfbelow{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfbelowright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mcfbelowright{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mcfcringle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcfcringle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mcfelmove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mcfelmove[${5:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"mcfelmove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mcfelmove{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"mcfleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcfleft{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcfplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcfright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mcfright{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mcfvspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/monofill.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MFfieldtemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFfieldtemplate{${1:field}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"MFfieldtemplate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MFfieldtemplate[${3:fill-element}]{${1:field}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"MFfillelement\"\n    },\n    {\n      \"name\": \"MFspace\"\n    },\n    {\n      \"name\": \"MFenspace\"\n    },\n    {\n      \"name\": \"MFotherspace\"\n    },\n    {\n      \"name\": \"MFleftinfield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFleftinfield{${1:text}}{${2:field}}\"\n      }\n    },\n    {\n      \"name\": \"MFrightinfield\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MFrightinfield{${1:text}}{${2:field}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/monofill#c\": [\n      \"fake-undefined\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/monofill#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/montserrat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"montserratalt\"\n    },\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"textnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/montserrat#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"osf\",\n      \"oldstyle\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"black\",\n      \"extrabold\",\n      \"semibold\",\n      \"bold\",\n      \"medium\",\n      \"regular\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"alternates\",\n      \"defaultfam\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/montserrat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/moodle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"readprov\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"getitems\"\n    },\n    {\n      \"name\": \"randomlist\",\n      \"if\": \"handout\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"svg\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"varwidth\",\n      \"if\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"embedaspict\",\n      \"if\": \"tikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"embedaspict{${1:LaTeX content%text}}\"\n      }\n    },\n    {\n      \"name\": \"moodleset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moodleset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setcategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcategory{${1:category name%text}}\"\n      }\n    },\n    {\n      \"name\": \"setsubcategory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubcategory{${1:subcategory name%text}}\"\n      }\n    },\n    {\n      \"name\": \"item*\"\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"[]*\",\n        \"snippet\": \"item[${1:options}]*\"\n      }\n    },\n    {\n      \"name\": \"blank\"\n    },\n    {\n      \"name\": \"htmlonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htmlonly{${1:HTML content}}\"\n      }\n    },\n    {\n      \"name\": \"htmlonly\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"htmlonly[${2:LaTeX content%text}]{${1:HTML content}}\"\n      }\n    },\n    {\n      \"name\": \"htmlregister\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htmlregister{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"moodleregisternewcommands\"\n    },\n    {\n      \"name\": \"ghostscriptcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghostscriptcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"imagemagickcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imagemagickcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"optipngcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optipngcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"PDFtoSVGcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PDFtoSVGcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"SVGtoPDFcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SVGtoPDFcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"optiSVGcommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optiSVGcommand{${1:executable filename}}\"\n      }\n    },\n    {\n      \"name\": \"verbatiminput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbatiminput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LVerbatimInput,\\\\inputminted\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"BVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BVerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LVerbatimInput,\\\\inputminted\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LVerbatimInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LVerbatimInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LVerbatimInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LVerbatimInput,\\\\inputminted\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputminted{${1:language}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputminted\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputminted[${3:options%keyvals}]{${1:language}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LVerbatimInput,\\\\inputminted\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:category name%text}}\"\n      }\n    },\n    {\n      \"name\": \"quiz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:category name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"truefalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"truefalse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"multi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numerical\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"numerical\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shortanswer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"shortanswer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"essay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"essay\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matching\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"matching\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cloze\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"cloze\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\",\n        \"keys\": [\n          \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question name%text}}\"\n      }\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:question name%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/moodle#c\": [\n      \"draft\",\n      \"handout\",\n      \"final\",\n      \"nostamp\",\n      \"tikz\",\n      \"svg\",\n      \"section\",\n      \"section*\",\n      \"subsection\",\n      \"subsection*\",\n      \"feedbackleft\",\n      \"feedbackright\",\n      \"samepage\",\n      \"LMS=${1:major.minor}\",\n      \"pluginfile\"\n    ],\n    \"\\\\begin{quiz},\\\\moodleset,\\\\begin{truefalse},\\\\begin{multi},\\\\begin{numerical},\\\\begin{shortanswer},\\\\begin{essay},\\\\begin{matching},\\\\begin{cloze}\": [\n      \"points=${1:number}\",\n      \"default grade=${1:number}\",\n      \"penalty=${1:fraction}\",\n      \"fraction=${1:number}\",\n      \"fractiontol=${1:value}\",\n      \"feedback={${1:text}}\",\n      \"tags={${1:tag1,tag2,...}}\",\n      \"shuffle\",\n      \"numbering=${1|alph,Alph,arabic,roman,Roman,none|}\",\n      \"single\",\n      \"sanction=${1:number}\",\n      \"multiple\",\n      \"allornothing\",\n      \"tolerance=${1:value}\",\n      \"case sensitive\",\n      \"usecase\",\n      \"response required\",\n      \"response format=${1|html,file,html+file,text,monospaced|}\",\n      \"response field lines=${1|5,10,15,20,25,30,25,40|}\",\n      \"attachments allowed=${1|0,1,2,3,unlimited|}\",\n      \"attachments required=${1|0,1,2,3|}\",\n      \"template={${1:text}}\",\n      \"drag and drop\",\n      \"dd\",\n      \"vertical\",\n      \"horizontal\",\n      \"inline\",\n      \"ppi=${1:pixels per inch}\"\n    ],\n    \"\\\\includegraphics\": [\n      \"ppi=${1:pixels per inch}\"\n    ],\n    \"\\\\VerbatimInput,\\\\BVerbatimInput,\\\\LVerbatimInput,\\\\inputminted\": [\n      \"gobble=${1:integer}\",\n      \"autogobble\",\n      \"tabsize=${1:integer}\",\n      \"numbers=${1|none,left,right,both|}\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"numberblanklines\",\n      \"highlightlines={${1:line ranges}}\",\n      \"style=${1:style name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/moodle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/moredefs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"InitCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitCS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"InitCS*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitCS*{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"InitName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"InitName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitName*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ShortEmpty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LongEmpty\"\n    },\n    {\n      \"name\": \"ReserveCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReserveCS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ReserveCS*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReserveCS*{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ReserveName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReserveName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ReserveName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReserveName*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"SaveCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveCS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreCS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"SaveName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"requirecommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"requirecommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"requirecommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"requirecommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"requirecommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"requirecommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"requirecommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newtokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtokens{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newlet{${1:cmd1%cmd}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"newboolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboolean{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"providetokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providetokens{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"provideboolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"provideboolean{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"providesavebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providesavebox{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"providecounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"providelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providelength{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndefineCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndefineCS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UndefineName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndefineName{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defcommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"defcommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcommand*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defcommand*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcommand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"defcommand*{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewName{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"NewName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewName*{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"DefName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefName{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"DefName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefName*{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"Global\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CheckName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckName{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"CheckName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckName*{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"RequireName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RequireName{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"RequireName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RequireName*{${1:csname}}{${2:template}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"NewTextFontCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTextFontCommand{${1:cmd}}{${2:font-switches%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewRobustCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewRobustCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRobustCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewRobustCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"Elet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EElet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewUserInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewUserInfo{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewUserInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewUserInfo[${2:user-cmd}]{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewUserInfo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewUserInfo*{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewUserInfo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewUserInfo*[${2:user-cmd}]{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"eExecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eExecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"eExecute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eExecute*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Gobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleMO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GobbleOM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBooleanOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBooleanOptions{${1:on}}{${2:off}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareBooleanUserOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareBooleanUserOptions{${1:on}}{${2:off}}\"\n      }\n    },\n    {\n      \"name\": \"ToggleBoolean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ToggleBoolean{${1:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"VerboseErrors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VerboseErrors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VerboseErrors[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"GVerboseErrors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GVerboseErrors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GVerboseErrors[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"Debug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Debug{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"GDebug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GDebug{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DTypeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DDTypeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DDDTypeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DGobbleM\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/moreenum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greek{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Greek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greek{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"enumHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumHex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"enumhex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumhex{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"enumbinary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumbinary{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"enumoctal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumoctal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"raisenth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raisenth{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"levelnth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"levelnth{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Nthwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nthwords{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Nwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nwords{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NTHWORDS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NTHWORDS{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NWORDS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NWORDS{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nthwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nthwords{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nwords{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumHexzero\"\n    },\n    {\n      \"name\": \"enumbinzero\"\n    },\n    {\n      \"name\": \"enumhexzero\"\n    },\n    {\n      \"name\": \"enumoctzero\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/morefloats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifetex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/morefloats#c\": [\n      \"maxfloats=${1:integer}\",\n      \"morefloats=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/morefloats#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/moresize.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"HUGE\"\n    },\n    {\n      \"name\": \"ssmall\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/moreverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"verbatimtabinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbatimtabinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"verbatimtabinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"verbatimtabinput[${2:tab width}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"verbatimtabsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listinglabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listinginput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"listinginput{${1:start line}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"listinginput\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"listinginput[${3:interval}]{${1:start line}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"listingoffset\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verbatimtab\"\n    },\n    {\n      \"name\": \"verbatimtab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tab width}]\"\n      }\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:start line}}\"\n      }\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:interval}]{${1:start line}}\"\n      }\n    },\n    {\n      \"name\": \"listing*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:start line}}\"\n      }\n    },\n    {\n      \"name\": \"listing*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:interval}]{${1:start line}}\"\n      }\n    },\n    {\n      \"name\": \"listingcont\"\n    },\n    {\n      \"name\": \"listingcont*\"\n    },\n    {\n      \"name\": \"verbatimwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"boxedverbatim\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/morewrites.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"primargs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"morewritessetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"morewritessetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\morewritessetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\morewritessetup\": [\n      \"allocate=${1:integer}\",\n      \"file=${1:file name}\",\n      \"verbose\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/morisawa.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mgdefault\"\n    },\n    {\n      \"name\": \"mgfamily\"\n    },\n    {\n      \"name\": \"textmg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmg{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/morisawa#c\": [\n      \"fake\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/morisawa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/movement-arrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryext.paths.ortho\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mkword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkword{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"mkword\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mkword[${2:name}]{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"mvarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mvarrow{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvarrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mvarrow[${3:options}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvarrow*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mvarrow*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvarrow*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mvarrow*[${3:options}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mvlink{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mvlink[${3:options}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvlink*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mvlink*{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"mvlink*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mvlink*[${3:options}]{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"setarrowstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setarrowstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"arrowheight\"\n    },\n    {\n      \"name\": \"extraexheight\"\n    },\n    {\n      \"name\": \"glarrowheight\"\n    },\n    {\n      \"name\": \"arrowstrut\"\n    },\n    {\n      \"name\": \"arrowgloss\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mparhack.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mparhack#c\": [\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mparhack#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mpgraphics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mpgOff\"\n    },\n    {\n      \"name\": \"mpgOn\"\n    },\n    {\n      \"name\": \"NoProcess\"\n    },\n    {\n      \"name\": \"NoProcess\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NoProcess[${1:ranges}]\"\n      }\n    },\n    {\n      \"name\": \"configure\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"configure[${1:mpgraphic}][${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\configure\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ArrayIterator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ArrayIterator{${1:array}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Array\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Array{${1:name}}[${3:length%plain}]{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeMPDEFSStream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BeforeMPGStream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareArray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareArray{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"MPDEFSverbatimwrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPDEFSverbatimwrite{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"MPGCutFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MPGgraphicsProcess\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MPGgraphicsinclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MPGinlinegraphicsinclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MPGverbatimwrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MPGverbatimwrite{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"NotIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NotIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"OnlyIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OnlyIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addToArray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToArray{${1:array}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clearArray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearArray{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"endMPDEFSverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endMPGhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endMPGverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getArraylength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getArraylength{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"mpgfigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mpgnoprocess\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theArrayIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theCtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thearraylength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thempgfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therecordCtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thezeroCtr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpdisplay\"\n    },\n    {\n      \"name\": \"mpinline\"\n    },\n    {\n      \"name\": \"mpdefs\"\n    },\n    {\n      \"name\": \"ltxpreamble\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mpgraphics#c\": [\n      \"metapost={${1:MetaPost options}}\",\n      \"epstopdf={${1:epstopdf options}}\",\n      \"compilation=${1|on,off|}\",\n      \"debug=${1|on,off|}\",\n      \"runs=${1:integer}\"\n    ],\n    \"\\\\configure\": [\n      \"width=\",\n      \"height=\",\n      \"scale=${1:factor}\",\n      \"color=\",\n      \"linecolor=\",\n      \"background=\",\n      \"linewidth=\",\n      \"rulesep=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mpgraphics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mpostinl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mpostsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/mpostinl#c,\\\\mpostsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpostuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostuse{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mpostuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpostuse[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\mpostuse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpostgetname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostgetname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mpostfigurename\"\n    },\n    {\n      \"name\": \"mpostplaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostplaceholder{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mpostplaceholder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpostplaceholder[${2:type%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\mpostplaceholder\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpostdisplaylabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostdisplaylabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mpostfilename\"\n    },\n    {\n      \"name\": \"mpostfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpostfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mpostfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mpostfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\mpostfile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpostdone\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpostfig\"\n    },\n    {\n      \"name\": \"mpostfig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mpostfig}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mpostdef\"\n    },\n    {\n      \"name\": \"mpostdef\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mpostdef}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mposttex\"\n    },\n    {\n      \"name\": \"mposttex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{mposttex}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mpostinl#c,\\\\mpostsetup\": [\n      \"draft\",\n      \"final\",\n      \"write\",\n      \"compile\",\n      \"twice\",\n      \"clean\",\n      \"checksum\",\n      \"fonts\",\n      \"prologues=${1:value}\",\n      \"lineno\",\n      \"labelnames\",\n      \"latex\",\n      \"compiler\",\n      \"compiler=${1:compiler}\",\n      \"format\",\n      \"format=${1:tag}\",\n      \"class=${1:class}\",\n      \"classopt={${1:class options}}\",\n      \"mem=${1:mem}\",\n      \"command=${1:command}\",\n      \"now\",\n      \"nowall\",\n      \"nowkeep\",\n      \"globaldef\",\n      \"template=${1:template}\",\n      \"extension=${1:ext}\",\n      \"numberwithin=${1:counter}\",\n      \"beamer\",\n      \"warnunused\"\n    ],\n    \"\\\\begin{mpostfig}\": [\n      \"show\",\n      \"file=${1:file name}\",\n      \"label=${1:label}\",\n      \"opt={${1:includegraphics options}}\",\n      \"now\",\n      \"twice\"\n    ],\n    \"\\\\mpostuse\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\begin{mpostdef}\": [\n      \"global\",\n      \"tex\"\n    ],\n    \"\\\\begin{mposttex}\": [\n      \"global\",\n      \"dual\"\n    ],\n    \"\\\\mpostplaceholder\": [\n      \"file\",\n      \"label\"\n    ],\n    \"\\\\mpostfile\": [\n      \"include\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mpostinl#c,\\\\mpostsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/msc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mscset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mscset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextlevel\"\n    },\n    {\n      \"name\": \"nextlevel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextlevel[${1:level offset}]\"\n      }\n    },\n    {\n      \"name\": \"declinst\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"declinst{${1:nickname}}{${2:instance name above}}{${3:instance name within}}\"\n      }\n    },\n    {\n      \"name\": \"declinst*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"declinst*{${1:nickname}}{${2:instance name above}}{${3:instance name within}}\"\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mess{${1:name}}{${2:sender}}{${3:receiver}}\"\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"mess{${1:name}}{${2:sender}}{${3:receiver}}[${4:level offset}]\"\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"mess[${4:options%keyvals}]{${1:name}}{${2:sender}}{${3:receiver}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"mess[${4:options%keyvals}]{${1:name}}{${2:sender}}{${3:receiver}}[${5:level offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mess*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mess*{${1:name}}{${2:sender}}{${3:receiver}}\"\n      }\n    },\n    {\n      \"name\": \"mess*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"mess*{${1:name}}{${2:sender}}{${3:receiver}}[${4:level offset}]\"\n      }\n    },\n    {\n      \"name\": \"mess*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"mess*[${4:options%keyvals}]{${1:name}}{${2:sender}}{${3:receiver}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mess*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"mess*[${4:options%keyvals}]{${1:name}}{${2:sender}}{${3:receiver}}[${5:level offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"msccomment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"msccomment{${1:text}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"msccomment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"msccomment[${3:options%keyvals}]{${1:text}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"action\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"action{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"action\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"action[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"action*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"action*{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"action*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"action*[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"naction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"naction{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"naction\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"naction[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"naction*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"naction*{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"naction*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"naction*[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settimer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settimer{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"settimer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"settimer[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timeout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"timeout{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"settimer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"settimer[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stoptimer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stoptimer{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"settimer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"settimer[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settimeout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settimeout{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"settimeout\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"settimeout{${1:name}}{${2:instance}}[${3:offset}]\"\n      }\n    },\n    {\n      \"name\": \"settimeout\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"settimeout[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settimeout\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"settimeout[${3:options%keyvals}]{${1:name}}{${2:instance}}[${4:offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setstoptimer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstoptimer{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"setstoptimer\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setstoptimer{${1:name}}{${2:instance}}[${3:offset}]\"\n      }\n    },\n    {\n      \"name\": \"setstoptimer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setstoptimer[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setstoptimer\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"setstoptimer[${3:options%keyvals}]{${1:name}}{${2:instance}}[${4:offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mscmark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mscmark{${1:name}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"mscmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mscmark[${3:options%keyvals}]{${1:name}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measure{${1:name}}{${2:instance1}}{${3:instance2}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"measure{${1:name}}{${2:instance1}}{${3:instance2}}[${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measure[${4:options%keyvals}]{${1:name}}{${2:instance1}}{${3:instance2}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"measure[${4:options%keyvals}]{${1:name}}{${2:instance1}}{${3:instance2}}[${5:offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measure*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measure*{${1:name}}{${2:instance1}}{${3:instance2}}\"\n      }\n    },\n    {\n      \"name\": \"measure*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"measure*{${1:name}}{${2:instance1}}{${3:instance2}}[${4:offset}]\"\n      }\n    },\n    {\n      \"name\": \"measure*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measure*[${4:options%keyvals}]{${1:name}}{${2:instance1}}{${3:instance2}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measure*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"measure*[${4:options%keyvals}]{${1:name}}{${2:instance1}}{${3:instance2}}[${5:offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measurestart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measurestart{${1:name}}{${2:instance}}{${3:gate}}\"\n      }\n    },\n    {\n      \"name\": \"measurestart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measurestart[${4:options%keyvals}]{${1:name}}{${2:instance}}{${3:gate}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measurestart*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measurestart*{${1:name}}{${2:instance}}{${3:gate}}\"\n      }\n    },\n    {\n      \"name\": \"measurestart*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measurestart*[${4:options%keyvals}]{${1:name}}{${2:instance}}{${3:gate}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measureend\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measureend{${1:name}}{${2:instance}}{${3:gate}}\"\n      }\n    },\n    {\n      \"name\": \"measureend\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measureend[${4:options%keyvals}]{${1:name}}{${2:instance}}{${3:gate}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measureend*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"measureend*{${1:name}}{${2:instance}}{${3:gate}}\"\n      }\n    },\n    {\n      \"name\": \"measureend*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"measureend*[${4:options%keyvals}]{${1:name}}{${2:instance}}{${3:gate}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lost\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lost{${1:name}}{${2:gate}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"lost\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lost[${4:options%keyvals}]{${1:name}}{${2:gate}}{${3:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"found\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"found{${1:name}}{${2:gate}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"found\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"found[${4:options%keyvals}]{${1:name}}{${2:gate}}{${3:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condition{${1:text}}{${2:instance list}}\"\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"condition[${3:options%keyvals}]{${1:text}}{${2:instance list}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"condition*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"condition*{${1:text}}{${2:instance list}}\"\n      }\n    },\n    {\n      \"name\": \"condition*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"condition*[${3:options%keyvals}]{${1:text}}{${2:instance list}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ncondition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncondition{${1:text}}{${2:instance list}}\"\n      }\n    },\n    {\n      \"name\": \"ncondition\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncondition[${3:options%keyvals}]{${1:text}}{${2:instance list}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ncondition*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncondition*{${1:text}}{${2:instance list}}\"\n      }\n    },\n    {\n      \"name\": \"ncondition*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncondition*[${3:options%keyvals}]{${1:text}}{${2:instance list}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"order{${1:sender}}{${2:receiver}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"order{${1:sender}}{${2:receiver}}[${3:level offset}]\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"order[${3:options%keyvals}]{${1:sender}}{${2:receiver}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"order[${3:options%keyvals}]{${1:sender}}{${2:receiver}}[${4:level offset}]\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"regionstart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"regionstart{${1:type}}{${2:instance}}\"\n      }\n    },\n    {\n      \"name\": \"regionstart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"regionstart[${3:options%keyvals}]{${1:type}}{${2:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"regionend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regionend{${1:instance}}\"\n      }\n    },\n    {\n      \"name\": \"dummyinst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dummyinst{${1:created instance}}\"\n      }\n    },\n    {\n      \"name\": \"dummyinst\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dummyinst[${2:options%keyvals}]{${1:created instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"startinst\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"startinst{${1:instance name}}{${2:text above}}{${3:text inside}}\"\n      }\n    },\n    {\n      \"name\": \"startinst\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"startinst[${4:options%keyvals}]{${1:instance name}}{${2:text above}}{${3:text inside}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"create\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"create{${1:name}}{${2:creator}}{${3:instance name}}{${4:text above}}{${5:text inside}}\"\n      }\n    },\n    {\n      \"name\": \"create\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"create[${6:options%keyvals}]{${1:name}}{${2:creator}}{${3:instance name}}{${4:text above}}{${5:text inside}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stop{${1:instance}}\"\n      }\n    },\n    {\n      \"name\": \"stop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stop[${2:options%keyvals}]{${1:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stop*{${1:instance}}\"\n      }\n    },\n    {\n      \"name\": \"stop*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stop*[${2:options%keyvals}]{${1:instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"referencestart\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"referencestart{${1:nickname}}{${2:text}}{${3:left instance}}{${4:right instance}}\"\n      }\n    },\n    {\n      \"name\": \"referencestart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"referencestart[${5:options%keyvals}]{${1:nickname}}{${2:text}}{${3:left instance}}{${4:right instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"referenceend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"referenceend{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"referenceend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"referenceend[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inlinestart\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"inlinestart{${1:nickname}}{${2:operator}}{${3:left instance}}{${4:right instance}}\"\n      }\n    },\n    {\n      \"name\": \"inlinestart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"inlinestart[${5:options%keyvals}]{${1:nickname}}{${2:operator}}{${3:left instance}}{${4:right instance}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inlineseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineseparator{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"inlineseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineseparator[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inlineend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineend{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"inlineend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineend[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inlineend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineend*{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"inlineend*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineend*[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gate{${1:gate name}}{${2:instance name}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gate[${3:options%keyvals}]{${1:gate name}}{${2:instance name}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gate*{${1:gate name}}{${2:instance name}}\"\n      }\n    },\n    {\n      \"name\": \"gate*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gate*[${3:options%keyvals}]{${1:gate name}}{${2:instance name}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscstartsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hmscstartsymbol{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"hmscstartsymbol\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"hmscstartsymbol{${1:nickname}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"hmscstartsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hmscstartsymbol[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscstartsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"hmscstartsymbol[${2:options%keyvals}]{${1:nickname}}(${3:x},${4:y})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscendsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hmscendsymbol{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"hmscendsymbol\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"hmscendsymbol{${1:nickname}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"hmscendsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hmscendsymbol[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscendsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"hmscendsymbol[${2:options%keyvals}]{${1:nickname}}(${3:x},${4:y})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscreference\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hmscreference{${1:nickname}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hmscreference\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"hmscreference{${1:nickname}}{${2:text}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"hmscreference\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hmscreference[${3:options%keyvals}]{${1:nickname}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscreference\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"hmscreference[${3:options%keyvals}]{${1:nickname}}{${2:text}}(${4:x},${5:y})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmsccondition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hmsccondition{${1:nickname}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hmsccondition\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"hmsccondition{${1:nickname}}{${2:text}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"hmsccondition\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hmsccondition[${3:options%keyvals}]{${1:nickname}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmsccondition\",\n      \"arg\": {\n        \"format\": \"[]{}{}()\",\n        \"snippet\": \"hmsccondition[${3:options%keyvals}]{${1:nickname}}{${2:text}}(${4:x},${5:y})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscconnection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hmscconnection{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"hmscconnection\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"hmscconnection{${1:nickname}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"hmscconnection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hmscconnection[${2:options%keyvals}]{${1:nickname}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmscconnection\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"hmscconnection[${2:options%keyvals}]{${1:nickname}}(${3:x},${4:y})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reference\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"reference{${1:text}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"separator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"separator{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"mscdocreferenceheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscdocreferencewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topnamedist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coregionstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coregionstart{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"coregionend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coregionend{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"mscget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mscget{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"actionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addDdraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"addDdraw{${1:instance1}}{${2:instance2}}{${3:level}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"adddraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"adddraw{${1:instance}}{${2:level}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"bottomfootdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conditionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conditionoverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawframe{${1:yes|no}}\"\n      }\n    },\n    {\n      \"name\": \"drawinstfoot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawinstfoot{${1:yes|no}}\"\n      }\n    },\n    {\n      \"name\": \"drawinsthead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawinsthead{${1:yes|no}}\"\n      }\n    },\n    {\n      \"name\": \"envinstdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstlevelheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatesymbolradius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscconditionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscconditionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscconnectionradius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmsckeywordstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscreferenceheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscreferencewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hmscstartsymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlineoverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instfootheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instheadheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inststart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inststop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labeldist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlevelheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftnamedist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"levelheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lostsymbolradius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"measuredist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"measuresymbolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"messarrowscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"messarrowscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"msccommentdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscdockeywordstyle\"\n    },\n    {\n      \"name\": \"mscdockeywordstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mscdockeywordstyle{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"mscgetx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mscgetx{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mscgety\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mscgety{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"msckeywordstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msckeywordstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mscunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nogrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"referenceoverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regionbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selfmesswidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sethmsckeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethmsckeyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"setmscdockeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmscdockeyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"setmsckeyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmsckeyword{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"setmscscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmscscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setmscvalues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmscvalues{${1:large|${2:normal}|small}}\"\n      }\n    },\n    {\n      \"name\": \"showgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topheaddist\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"msc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name%text}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"msc\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:options%keyvals}][${3:pos}]{${1:name%text}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"hmsc\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:name%text}}(${2:llx},${3:lly})(${4:urx},${5:ury})\"\n      }\n    },\n    {\n      \"name\": \"hmsc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name%text}}\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hmsc\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name%text}}(${3:llx},${4:lly})(${5:urx},${6:ury})\",\n        \"keys\": [\n          \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mscdoc\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"{${1:name%text}}(${2:llx},${3:lly})(${4:urx},${5:ury})\"\n      }\n    },\n    {\n      \"name\": \"mscdoc\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"[${2:headerpos}]{${1:name%text}}(${3:llx},${4:lly})(${5:urx},${6:ury})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\mscset#c,\\\\begin{msc}#c,\\\\mess#c,\\\\mess*#c,\\\\msccomment#c,\\\\action#c,\\\\action*#c,\\\\naction#c,\\\\naction*#c,\\\\settimer#c,\\\\timeout#c,\\\\stoptimer#c,\\\\settimeout#c,\\\\setstoptimer#c,\\\\mscmark#c,\\\\measure#c,\\\\measure*#c,\\\\measurestart#c,\\\\measurestart*#c,\\\\measureend#c,\\\\measureend*#c,\\\\lost#c,\\\\found#c,\\\\condition#c,\\\\condition*#c,\\\\ncondition#c,\\\\ncondition*#c,\\\\order#c,\\\\regionstart#c,\\\\dummyinst#c,\\\\startinst#c,\\\\create#c,\\\\stop#c,\\\\stop*#c,\\\\referencestart#c,\\\\referenceend#c,\\\\inlinestart#c,\\\\inlineseparator#c,\\\\inlineend#c,\\\\inlineend*#c,\\\\gate#c,\\\\gate*#c,\\\\begin{hmsc}#c,\\\\hmscstartsymbol#c,\\\\hmscendsymbol#c,\\\\hmscreference#c,\\\\hmsccondition#c,\\\\hmscconnection#c\": [\n      \"above\",\n      \"above left\",\n      \"above right\",\n      \"action height=\",\n      \"action width=\",\n      \"anchor=${1|north,south,east,west,north east,north west,south east,south west|}\",\n      \"arrow scale=${1:factor}\",\n      \"below\",\n      \"below left\",\n      \"below right\",\n      \"condition height=\",\n      \"condition overlap=\",\n      \"draw frame\",\n      \"draw frame=\",\n      \"draw grid\",\n      \"draw grid=${1|grid,color grid,none|}\",\n      \"draw head=\",\n      \"east hmsc margin=\",\n      \"environment distance=\",\n      \"first level height=\",\n      \"foot distance=\",\n      \"foot height=\",\n      \"gate symbol radius=\",\n      \"head height=\",\n      \"head top distance=\",\n      \"hmsc condition height=\",\n      \"hmsc condition width=\",\n      \"hmsc connection radius=\",\n      \"hmsc keyword=${1:keyword}\",\n      \"hmsc margin=\",\n      \"hmsc symbol width=\",\n      \"instance distance=\",\n      \"instance width=\",\n      \"l\",\n      \"label distance=\",\n      \"label position=${1|above,below,above left,above right,below left,below right,left,right|}\",\n      \"last level height=\",\n      \"left\",\n      \"left environment distance=\",\n      \"left inline overlap=\",\n      \"left reference overlap=\",\n      \"level height=\",\n      \"level shift=${1:integer}\",\n      \"lost symbol radius=\",\n      \"measure distance=\",\n      \"measure symbol width=\",\n      \"msc keyword=${1:keyword}\",\n      \"msccomment distance=\",\n      \"north hmsc margin=\",\n      \"offset=${1:integer}\",\n      \"pos=${1:real}\",\n      \"position=${1|above,below|}\",\n      \"r\",\n      \"reference height=\",\n      \"reference width=\",\n      \"right\",\n      \"right environment distance=\",\n      \"right inline overlap=\",\n      \"right reference overlap=\",\n      \"self message width=\",\n      \"side=${1|left,right|}\",\n      \"small values\",\n      \"south hmsc margin=\",\n      \"stop width=\",\n      \"timer width=\",\n      \"title distance=\",\n      \"title position=${1|left,right,center|}\",\n      \"title top distance=\",\n      \"west hmsc margin=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mtgreek.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtime\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"uprightupcasegreek\"\n    },\n    {\n      \"name\": \"italicupcasegreek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mtpro2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"enablesubscriptcorrection\"\n    },\n    {\n      \"name\": \"disablesubscriptcorrection\"\n    },\n    {\n      \"name\": \"heavymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbold{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbscr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"altC\"\n    },\n    {\n      \"name\": \"altG\"\n    },\n    {\n      \"name\": \"altI\"\n    },\n    {\n      \"name\": \"altL\"\n    },\n    {\n      \"name\": \"altM\"\n    },\n    {\n      \"name\": \"altN\"\n    },\n    {\n      \"name\": \"altQ\"\n    },\n    {\n      \"name\": \"altS\"\n    },\n    {\n      \"name\": \"altY\"\n    },\n    {\n      \"name\": \"altZ\"\n    },\n    {\n      \"name\": \"altr\"\n    },\n    {\n      \"name\": \"altx\"\n    },\n    {\n      \"name\": \"alty\"\n    },\n    {\n      \"name\": \"altz\"\n    },\n    {\n      \"name\": \"MTPsetupScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTPsetupFrak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTPsetupCurly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MTPScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTPScript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MTPbScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTPbScript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MTPCurly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTPCurly{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MTPFrak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MTPFrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varbeta\"\n    },\n    {\n      \"name\": \"vardelta\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarbeta\",\n      \"detail\": \"ϐ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Rounded beta, greek\"\n    },\n    {\n      \"name\": \"upvardelta\"\n    },\n    {\n      \"name\": \"curlybraces\"\n    },\n    {\n      \"name\": \"straightbraces\"\n    },\n    {\n      \"name\": \"morphedbraces\"\n    },\n    {\n      \"name\": \"lcbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slsumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slcoprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcoprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openclubsuit\"\n    },\n    {\n      \"name\": \"shadedclubsuit\"\n    },\n    {\n      \"name\": \"openspadesuit\"\n    },\n    {\n      \"name\": \"shadedspadesuit\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"dbar\"\n    },\n    {\n      \"name\": \"updbar\"\n    },\n    {\n      \"name\": \"comp\"\n    },\n    {\n      \"name\": \"setdif\"\n    },\n    {\n      \"name\": \"cupprod\"\n    },\n    {\n      \"name\": \"capprod\"\n    },\n    {\n      \"name\": \"simarrow\"\n    },\n    {\n      \"name\": \"varland\"\n    },\n    {\n      \"name\": \"contraction\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"hateq\"\n    },\n    {\n      \"name\": \"circdashbullet\"\n    },\n    {\n      \"name\": \"bulletdashcirc\"\n    },\n    {\n      \"name\": \"bigcupprod\"\n    },\n    {\n      \"name\": \"bigcapprod\"\n    },\n    {\n      \"name\": \"bigvarland\"\n    },\n    {\n      \"name\": \"bigast\"\n    },\n    {\n      \"name\": \"dotup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ddotup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddotup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dddotup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddotup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ddddotup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddotup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"what\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"what{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wcheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wcheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wwhat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwhat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wwtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wwcheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwcheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wwbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"notless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notleq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notprec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notpreceq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsubset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsubseteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsqsubseteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notgeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsucc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsucceq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsupset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsupseteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsqsupseteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notequiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notsimeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notapprox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notcong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notasymp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"awointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"cwoint\"\n    },\n    {\n      \"name\": \"awoint\"\n    },\n    {\n      \"name\": \"cwint\"\n    },\n    {\n      \"name\": \"barint\"\n    },\n    {\n      \"name\": \"slashint\"\n    },\n    {\n      \"name\": \"slsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upcoprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PARENS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PARENS{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LEFTRIGHT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LEFTRIGHT{${1:delim1}}{${2:delim2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vcorrection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcorrection{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"ccases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccases{${1:tabular content}}\"\n      }\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widehatdown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widehatdown{${1:dimen%l}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widetildedown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widetildedown{${1:dimen%l}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widecheckdown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widecheckdown{${1:dimen%l}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Arc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LEFTROOT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LEFTROOT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"UPROOT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UPROOT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SQRT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SQRT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SQRT\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SQRT[${2:root}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undercbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undercbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overcbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overcbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"updownharpoons\"\n    },\n    {\n      \"name\": \"downupharpoons\"\n    },\n    {\n      \"name\": \"upupharpoons\"\n    },\n    {\n      \"name\": \"downdownharpoons\"\n    },\n    {\n      \"name\": \"undercurvearrowleft\"\n    },\n    {\n      \"name\": \"undercurvearrowright\"\n    },\n    {\n      \"name\": \"midshaft\"\n    },\n    {\n      \"name\": \"rarrowhead\"\n    },\n    {\n      \"name\": \"larrowhead\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/mtpro2#c\": [\n      \"complete\",\n      \"lite\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"uprightoperators\",\n      \"slantedoperators\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"zswash\",\n      \"nozswash\",\n      \"curlybraces\",\n      \"straightbraces\",\n      \"morphedbraces\",\n      \"cmcal\",\n      \"lucidacal\",\n      \"eucal\",\n      \"mtpluscal\",\n      \"mtpcal\",\n      \"mtpccal\",\n      \"lucidascr\",\n      \"mtplusscr\",\n      \"mtpscr\",\n      \"eufrak\",\n      \"mtpfrak\",\n      \"compatiblegreek\",\n      \"amsbb\",\n      \"mtpbb\",\n      \"mtpbbd\",\n      \"mtphrb\",\n      \"mtphrd\",\n      \"mtpbbi\",\n      \"mtphbi\",\n      \"errorshow\",\n      \"warningshow\",\n      \"nofontinfo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mtpro2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multiaudience.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CurrentAudience\"\n    },\n    {\n      \"name\": \"DefCurrentAudience\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefCurrentAudience{${1:audiences}}\"\n      }\n    },\n    {\n      \"name\": \"SetNewAudience\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetNewAudience{${1:audience%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"showto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showto{${1:audiences%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Footnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnote{${1:audiences%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefMultiaudienceCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefMultiaudienceCommand{${1:new command%cmd}}{${2:old command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewMultiaudienceSectionEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMultiaudienceSectionEnv{${1:envname}}{${2:command}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"shownto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Section\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Section\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}[${3:short title}]{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subsection\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}[${3:short title}]{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subsubsection\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}[${3:short title}]{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Paragraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Paragraph\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}[${3:short title}]{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subparagraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Subparagraph\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:audiences%keyvals}}[${3:short title}]{${2:title}}\",\n        \"keys\": [\n          \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{shownto}#c,\\\\showto#c,\\\\Footnote#c,\\\\begin{Section}#c,\\\\begin{Subsection}#c,\\\\begin{Subsubsection}#c,\\\\begin{Paragraph}#c,\\\\begin{Subparagraph}#c\": [\n      \"%audience\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multibib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newcites\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcites{${1:suffix1,suffix2,...}}{${2:title1,title2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"setbiblabelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbiblabelwidth{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multibib#c\": [\n      \"labeled\",\n      \"resetlabels\"\n    ],\n    \"\\\\bibliographystyle#c\": [\n      \"mbplain\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multibib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multibibliography.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bibliographysequence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliographysequence{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"bibliographytimeline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibliographytimeline{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"MBbibcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MBbibcite{${1:seq number}}{${2:name}}{${3:date}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"MBlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MBlabel{${1:seq number}}{${2:name}}{${3:date}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multicap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mfcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mfcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mfcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mfcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mtcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mtcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mtcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mtcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"themcapsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abvmcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blwmcapskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multicap#c\": [\n      \"Sans\",\n      \"normal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multicap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multicol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"columnbreak\"\n    },\n    {\n      \"name\": \"columnseprulecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"docolaction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"docolaction{${1:first}}{${2:middle}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"flushcolumns\"\n    },\n    {\n      \"name\": \"LRmulticolcolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxbalancingoverflow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolmindepthstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolpretolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multicoltolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcolumn\"\n    },\n    {\n      \"name\": \"postmulticols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"premulticols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedcolumns\"\n    },\n    {\n      \"name\": \"RLmulticolcolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setemergencystretch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setemergencystretch{${1:num of cols}}{${2:hsize}}\"\n      }\n    },\n    {\n      \"name\": \"vfilmaxdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:n}}[${2:preface}]\"\n      }\n    },\n    {\n      \"name\": \"multicols*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:n}}[${2:preface}][${3:skip}]\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:n}}[${2:preface}]\"\n      }\n    },\n    {\n      \"name\": \"multicols\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"{${1:n}}[${2:preface}][${3:skip}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/multicol#c\": [\n      \"errorshow\",\n      \"infoshow\",\n      \"balancingshow\",\n      \"markshow\",\n      \"debugshow\",\n      \"grid\",\n      \"colaction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multicol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multicolrule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetMCRule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMCRule{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetMCRule,\\\\DeclareMCRulePattern\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareMCRulePattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMCRulePattern{${1:name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\SetMCRule,\\\\DeclareMCRulePattern\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"columnseprulecolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multicolrule#c\": [\n      \"tikz\",\n      \"twocolumn\",\n      \"paracol\"\n    ],\n    \"\\\\SetMCRule,\\\\DeclareMCRulePattern\": [\n      \"color=\",\n      \"color-model=\",\n      \"custom-pattern={${1:pattern}}{${2:shift down}}{${3:shift up}}\",\n      \"custom-tile={${1:pattern}}{${2:space above}}{${3:space below}}\",\n      \"double=\",\n      \"expand=\",\n      \"extend-bot=\",\n      \"extend-fill\",\n      \"extend-reserve=\",\n      \"extend-top=\",\n      \"line-style=${1|circles,dash-dot,dash-dot-dot,dashed,default,dense-circles,dense-dots,dense-solid-circles,densely-dash-dot,densely-dash-dot-dot,densely-dashed,densely-dotted,dots,dotted,loose-dots,loose-circles,loose-solid-circles,loosely-dash-dot,loosely-dash-dot-dot,loosely-dashed,loosely-dotted,solid,solid-circles,strut|}\",\n      \"pattern-after=${1:integer}\",\n      \"pattern-for=${1:integer}\",\n      \"patterns=\",\n      \"single=\",\n      \"repeat\",\n      \"repeat-distance=\",\n      \"shift=\",\n      \"triple=\",\n      \"width=\",\n      \"custom-line={${1:draw command}}\",\n      \"custom-line={${1:draw command}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multicolrule#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multidef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multidef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multidef{${1:definition}}{${2:csname list}}\"\n      }\n    },\n    {\n      \"name\": \"multidef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"multidef[${3:options%keyvals}]{${1:definition}}{${2:csname list}}\",\n        \"keys\": [\n          \"\\\\multidef\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\multidef\": [\n      \"arg=${1:num of args}\",\n      \"noerr\",\n      \"nowarn\",\n      \"prefix=${1:prefix}\",\n      \"p=${1:prefix}\",\n      \"suffix=${1:suffix}\",\n      \"s=${1:suffix}\",\n      \"long\",\n      \"global\",\n      \"robust\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multido.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multido\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"MultidoCheckNames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmultido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mmultido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"Multido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Multido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"MMultido\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"MMultido{${1:variables%cmd}}{${2:repetitions}}{${3:actions}}\"\n      }\n    },\n    {\n      \"name\": \"multidocount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multidostop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpAdd{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"fpSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fpSub{${1:num1}}{${2:num2}}{${3:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multienum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mitemx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mitemx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mitemxx{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mitemxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mitemxox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mitemxxo{${1:left%text}}{${2:center%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxxx\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mitemxxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}{${4:text4%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxoxx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mitemxoxx{${1:left%text}}{${2:right1%text}}{${3:right2%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mitemxxox{${1:left1%text}}{${2:left2%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxxo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mitemxxxo{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxoo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mitemxxoo{${1:left1%text}}{${2:left2%text}}\"\n      }\n    },\n    {\n      \"name\": \"mitemxxxxx\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"mitemxxxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}{${4:text4%text}}{${5:text5%text}}\"\n      }\n    },\n    {\n      \"name\": \"usedx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedxxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxoxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedxxxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remainxxxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemx{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itemxx{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"itemxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itemxox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itemxxo{${1:left%text}}{${2:center%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"itemxxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}{${4:text4%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxoxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"itemxoxx{${1:left%text}}{${2:right1%text}}{${3:right2%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"itemxxox{${1:left1%text}}{${2:left2%text}}{${3:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxxo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"itemxxxo{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemxxxxx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"itemxxxxx{${1:text1%text}}{${2:text2%text}}{${3:text3%text}}{${4:text4%text}}{${5:text5%text}}\"\n      }\n    },\n    {\n      \"name\": \"oddlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evenlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regularlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listtype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"regularlisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regularlistii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regularlistiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddlisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evenlisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienumi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienumii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienumiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultienumiv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"multienumerate\"\n    },\n    {\n      \"name\": \"multienumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{multienumerate}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{multienumerate}\": [\n      \"evenlist\",\n      \"oddlist\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multienv.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmultienvironment{${1:envname}}{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"newmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newmultienvironment{${1:envname}}[${3:args}]{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"newmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newmultienvironment{${1:envname}}[${3:args}][${4:default}]{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"renewmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewmultienvironment{${1:envname}}{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"renewmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewmultienvironment{${1:envname}}[${3:args}]{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"renewmultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewmultienvironment{${1:envname}}[${3:args}][${4:default}]{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"providemultienvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providemultienvironment{${1:envname}}{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"providemultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providemultienvironment{${1:envname}}[${3:args}]{${2:env,env=arg,...}}\"\n      }\n    },\n    {\n      \"name\": \"providemultienvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providemultienvironment{${1:envname}}[${3:args}][${4:default}]{${2:env,env=arg,...}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"multienv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:env,env=arg,key=value,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{multienv}#c,\\\\begin{multienv*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multienv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:env,env=arg,key=value,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{multienv}#c,\\\\begin{multienv*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{multienv}#c,\\\\begin{multienv*}#c\": [\n      \"add code={${1:code before}}{${2:code after}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multiexpand.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multifootnote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"backref\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"backref=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multifootnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"multifootnotemark[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"footnotenumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotenumber[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"multifootnotemarkmanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"multifootnotemarkmanual[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"footnotenumbermanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotenumbermanual[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"multifootnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnotetext[${2:list of labels}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnote[${2:list of labels}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnotetextmanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnotetextmanual[${2:list of labels}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnotemanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnotemanual[${2:list of labels}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnotetag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multifootnotetag{${1:list of tags%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotetag{${1:list of tags%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnotetagmanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multifootnotetagmanual{${1:list of tags%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetagmanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotetagmanual{${1:list of tags%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"multifootnotetagtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnotetagtext[${2:tag%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\multifootnotetagtext#c,\\\\multifootnotetagtextmanual#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multifootnotetagtextmanual\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multifootnotetagtextmanual[${2:tag%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\multifootnotetagtext#c,\\\\multifootnotetagtextmanual#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multifootnote#c\": [\n      \"backref\",\n      \"left align\",\n      \"left indent\",\n      \"left indent=\",\n      \"manual\"\n    ],\n    \"\\\\multifootnotetagtext#c,\\\\multifootnotetagtextmanual#c\": [\n      \"%multifootnotetag\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multifootnote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multilang-sect.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"Section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"Section*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubSection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubSubSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubSubSection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"Paragraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"Paragraph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubParagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SubParagraph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:data}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multilang-tags.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetTagFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTagFilter{${1:policy}}\"\n      }\n    },\n    {\n      \"name\": \"SetTagFilter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetTagFilter[${2:default}]{${1:policy}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTagFilter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineTagFilter{${1:name}}{${2:default}}{${3:policy}}\"\n      }\n    },\n    {\n      \"name\": \"UseTagFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTagFilter{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multilang.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewMultilangCmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMultilangCmd{${1:command}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewMultilangCmd#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewMultilangEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMultilangEnv{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\NewMultilangEnv#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewMultilangType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewMultilangType{${1:type name}}{${2:format%definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewMultilangType\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewMultilangType[${3:arg count}]{${1:type name}}{${2:format%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multilang#c\": [\n      \"languages={${1:lang1,lang2,...}}\"\n    ],\n    \"\\\\NewMultilangCmd#c\": [\n      \"command=${1:command}\",\n      \"margs={${1:arg1,arg2,...}}\",\n      \"oargs={${1:arg1,arg2,...}}\",\n      \"starred\",\n      \"disablable\",\n      \"defaults={${1:arg1=val1,arg2=val2,...}}\",\n      \"alias/${1:name}={${2:arg1,arg2,...}}\"\n    ],\n    \"\\\\NewMultilangEnv#c\": [\n      \"environment=${1:environment}\",\n      \"margs={${1:arg1,arg2,...}}\",\n      \"oargs={${1:arg1,arg2,...}}\",\n      \"disablable\",\n      \"defaults={${1:arg1=val1,arg2=val2,...}}\",\n      \"alias/${1:name}={${2:arg1,arg2,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multilang#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multimedia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"movie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"movie[${3:options%keyvals}]{${1:poster text%text}}{${2:movie filename%file}}\",\n        \"keys\": [\n          \"\\\\movie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"movie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movie{${1:poster text%text}}{${2:movie filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkmovie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hyperlinkmovie[${3:options%keyvals}]{${1:movie label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hyperlinkmovie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperlinkmovie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlinkmovie{${1:movie label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sound\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sound[${3:options%keyvals}]{${1:sound poster text}}{${2:sound filename%file}}\",\n        \"keys\": [\n          \"\\\\sound\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sound{${1:sound poster text}}{${2:sound filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinksound\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hyperlinksound[${3:options%keyvals}]{${1:sound label}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hyperlinksound\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperlinksound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hyperlinksound{${1:sound label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hyperlinkmute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperlinkmute{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\movie\": [\n      \"autostart\",\n      \"borderwidth=\",\n      \"depth=\",\n      \"duration=${1:time}s\",\n      \"externalviewer\",\n      \"height=\",\n      \"label=\",\n      \"loop\",\n      \"once\",\n      \"open\",\n      \"palindrome\",\n      \"poster\",\n      \"repeat\",\n      \"showcontrols\",\n      \"start=${1:time}s\",\n      \"width=\"\n    ],\n    \"\\\\hyperlinkmovie\": [\n      \"duration=${1:time}s\",\n      \"loop\",\n      \"once\",\n      \"palindrome\",\n      \"pause\",\n      \"play\",\n      \"repeat\",\n      \"resume\",\n      \"showcontrols\",\n      \"start=${1:time}s\",\n      \"stop\"\n    ],\n    \"\\\\sound\": [\n      \"autostart\",\n      \"automute\",\n      \"bitspersample=${1|8,16|}\",\n      \"channels=${1|1,2|}\",\n      \"depth=\",\n      \"encoding=${1|Raw,Signed,muLaw,aLaw|}\",\n      \"externalviewer\",\n      \"height=\",\n      \"inlinesound\",\n      \"label=\",\n      \"loop\",\n      \"mixsound\",\n      \"repeat\",\n      \"samplingrate=${1:number}\",\n      \"width=\"\n    ],\n    \"\\\\hyperlinksound\": [\n      \"loop\",\n      \"mixsound\",\n      \"repeat\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multind.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"makeindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeindex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printindex{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multiobjective.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dom\"\n    },\n    {\n      \"name\": \"negdom\"\n    },\n    {\n      \"name\": \"weakdom\"\n    },\n    {\n      \"name\": \"negweakdom\"\n    },\n    {\n      \"name\": \"strictdom\"\n    },\n    {\n      \"name\": \"negstrictdom\"\n    },\n    {\n      \"name\": \"multepsilondom\"\n    },\n    {\n      \"name\": \"addiepsilondom\"\n    },\n    {\n      \"name\": \"better\"\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"argmin\"\n    },\n    {\n      \"name\": \"argmax\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multiple-choice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"choice\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"choices\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multiply.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multnooverflow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multnooverflow{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/multirow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"multirow\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multirow{${1:number of rows}}{${2:width or *}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"multirow[${4:vpos%keyvals}]{${1:number of rows}}{${2:width or *}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\multirow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"multirow{${1:number of rows}}[${4:bigstruts}]{${2:width or *}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"multirow{${1:number of rows}}{${2:width or *}}[${4:vmove%l}]{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"multirow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]{}\",\n        \"snippet\": \"multirow[${4:vpos%keyvals}]{${1:number of rows}}[${5:bigstruts}]{${2:width or *}}[${6:vmove%l}]{${3:text}}\",\n        \"keys\": [\n          \"\\\\multirow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multirowsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multirowdebugtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multirowdebugfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstrutjot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STneed\",\n      \"if\": \"supertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STneed{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multirow#c\": [\n      \"debug\",\n      \"longtable\",\n      \"supertabular\"\n    ],\n    \"\\\\multirow\": [\n      \"c\",\n      \"t\",\n      \"b\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multirow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/multitoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multicolumntoc\"\n    },\n    {\n      \"name\": \"multicolumnlot\"\n    },\n    {\n      \"name\": \"multicolumnlof\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/multitoc#c\": [\n      \"toc\",\n      \"lot\",\n      \"lof\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/multitoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/mup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"abc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalmupoutputfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mupinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mupinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mupinput[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mupwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mup\"\n    },\n    {\n      \"name\": \"mup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/mup#c\": [\n      \"shellescape\",\n      \"noshellescape\",\n      \"generate\",\n      \"nogenerate\",\n      \"ps2epsi\",\n      \"ps2epsidos\",\n      \"ps2eps\",\n      \"nosaveall\",\n      \"saveall\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/mup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/musical.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scripttitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themusicalpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theactcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thescenecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"act\"\n    },\n    {\n      \"name\": \"scene\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scene{${1:setting%text}}\"\n      }\n    },\n    {\n      \"name\": \"scene\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scene[${2:title}]{${1:setting%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rehearsalmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rehearsalmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"transition\"\n    },\n    {\n      \"name\": \"transition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transition[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"speechmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialogfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dialogfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dialog\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dialog{${1:character}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"charactername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyrics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lyrics{${1:character}}{${2:lyrics%text}}\"\n      }\n    },\n    {\n      \"name\": \"spacer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacer{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"stdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stdir{${1:direction%text}}\"\n      }\n    },\n    {\n      \"name\": \"music\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"music{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"dance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dance{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"dialogue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dialogue{${1:character}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"listofsongs\"\n    },\n    {\n      \"name\": \"listofdances\"\n    },\n    {\n      \"name\": \"addcharacter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcharacter{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"addcharacter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addcharacter[${3:nickname}]{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"character\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"character{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:comment%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"script\"\n    },\n    {\n      \"name\": \"spokentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lyrictext\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"scriptheader\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/musicography.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifLargeFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LargeFonttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LargeFontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFontBig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFontLarge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musNumFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"musSymbol{${1:kern before}}{${2:raise}}{${3:kern after}}{${4:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"musSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"musSymbol[${5:font cmds}]{${1:kern before}}{${2:raise}}{${3:kern after}}{${4:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"musAccidentalFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musAccidental\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musAccidental{${1:symbol code}}\"\n      }\n    },\n    {\n      \"name\": \"musFlat\"\n    },\n    {\n      \"name\": \"musDoubleFlat\"\n    },\n    {\n      \"name\": \"musSharp\"\n    },\n    {\n      \"name\": \"musDoubleSharp\"\n    },\n    {\n      \"name\": \"musNatural\"\n    },\n    {\n      \"name\": \"fl\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"na\"\n    },\n    {\n      \"name\": \"musStemmedNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musStemmedNote{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"musFlaggedNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"musFlaggedNote{${1:symbol1}}{${2:symbol2}}\"\n      }\n    },\n    {\n      \"name\": \"musDottedNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musDottedNote{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"musStem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSegno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musDot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musBreve\"\n    },\n    {\n      \"name\": \"musWhole\"\n    },\n    {\n      \"name\": \"musHalf\"\n    },\n    {\n      \"name\": \"musQuarter\"\n    },\n    {\n      \"name\": \"musEighth\"\n    },\n    {\n      \"name\": \"musSixteenth\"\n    },\n    {\n      \"name\": \"musThirtySecond\"\n    },\n    {\n      \"name\": \"musSixtyFourth\"\n    },\n    {\n      \"name\": \"musWholeDotted\"\n    },\n    {\n      \"name\": \"musHalfDotted\"\n    },\n    {\n      \"name\": \"musQuarterDotted\"\n    },\n    {\n      \"name\": \"musEighthDotted\"\n    },\n    {\n      \"name\": \"musSixteenthDotted\"\n    },\n    {\n      \"name\": \"musThirtySecondDotted\"\n    },\n    {\n      \"name\": \"musSixtyFourthDotted\"\n    },\n    {\n      \"name\": \"musStack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musStack{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"musStack\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"musStack{${1:arg}}[${2:align}]\"\n      }\n    },\n    {\n      \"name\": \"musStack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"musStack[${2:font cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"musStack\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"musStack[${2:font cmd}]{${1:arg}}[${3:align}]\"\n      }\n    },\n    {\n      \"name\": \"musSymbolMeter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musSymbolMeter{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"meterPlus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meterPlus{${1:meter}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"meterThree\"\n    },\n    {\n      \"name\": \"meterThreeTwo\"\n    },\n    {\n      \"name\": \"meterCplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meterCplus{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"meterCutCplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meterCutCplus{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"meterCutCThree\"\n    },\n    {\n      \"name\": \"meterCutCThreeTwo\"\n    },\n    {\n      \"name\": \"musMeter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"musMeter{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"musMeter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"musMeter[${3:font cmd}]{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"musFigFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFigSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musFig{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"musFig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"musFig[${2:align}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"noFig\"\n    },\n    {\n      \"name\": \"noFig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noFig[${1:text%plain}]\"\n      }\n    },\n    {\n      \"name\": \"meterC\"\n    },\n    {\n      \"name\": \"meterCutC\"\n    },\n    {\n      \"name\": \"meterCThree\"\n    },\n    {\n      \"name\": \"meterCThreeTwo\"\n    },\n    {\n      \"name\": \"meterZfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterZsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterCZ\"\n    },\n    {\n      \"name\": \"meterO\"\n    },\n    {\n      \"name\": \"musDegree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musDegree{${1:numeral}}\"\n      }\n    },\n    {\n      \"name\": \"musPitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"musPitch{${1:pitch}}{${2:octave}}\"\n      }\n    },\n    {\n      \"name\": \"symbolList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symbolList{${1:font cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"musixSymbolList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSemibreve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musMinim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSemiminim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musCorchea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFusa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSemibreveDotted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musMinimDotted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musSeminiminimDotted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musCorcheaDotted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musFusaDotted\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/musicography#c\": [\n      \"bigger\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/musicography#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/musikui.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kake\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"kake{${1:multiplicand}}{${2:multiplier}}{${3:product}}\"\n      }\n    },\n    {\n      \"name\": \"wari\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wari{${1:dividend}}{${2:divisor}}{${3:quotient}}\"\n      }\n    },\n    {\n      \"name\": \"musi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"musi{${1:holes}}{${2:distance from right}}\"\n      }\n    },\n    {\n      \"name\": \"sen\"\n    },\n    {\n      \"name\": \"bubunsen\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bubunsen{${1:length}}{${2:distance from right}}\"\n      }\n    },\n    {\n      \"name\": \"eaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"noneaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noneaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"halfeaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"halfeaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"halfnoneaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"halfnoneaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hhalfeaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hhalfeaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hhalfnoneaten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hhalfnoneaten{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"musiwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musiheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musidepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musihgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musivgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musirule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musiopsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"musiwarikakko\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"musikui\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/musixfll.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"longledgerlines\"\n    },\n    {\n      \"name\": \"autoledgerlines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/musixguit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"musixtex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chord\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chord{${1:note}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"lage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lage{${1:num}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lage[${3:internotes}]{${1:num}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"finger\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"finger{${1:finger}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Finger\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Finger{${1:finger}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"barree\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"barree{${1:pitch}}{${2:internotes}}{${3:noteskips}}{${4:lage}}\"\n      }\n    },\n    {\n      \"name\": \"saite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saite{${1:pitch}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"strike\"\n    },\n    {\n      \"name\": \"strk\"\n    },\n    {\n      \"name\": \"pickd\"\n    },\n    {\n      \"name\": \"pickd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pickd[${1:pitch}]\"\n      }\n    },\n    {\n      \"name\": \"picku\"\n    },\n    {\n      \"name\": \"picku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picku[${1:pitch}]\"\n      }\n    },\n    {\n      \"name\": \"tpickd\"\n    },\n    {\n      \"name\": \"tpicku\"\n    },\n    {\n      \"name\": \"release\"\n    },\n    {\n      \"name\": \"release\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"release[${1:pitch}]\"\n      }\n    },\n    {\n      \"name\": \"teil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"drumclef\"\n    },\n    {\n      \"name\": \"dcqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dcqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dczq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dczq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dhqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"doqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"doql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"doqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"doqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dozq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dozq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"docu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"doccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"docl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"doccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oxqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"oxccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oxccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"roqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"roql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"roqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"roqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rozq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rozq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rocu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rocu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"roccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rocl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rocl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"roccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tgqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tgccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tgccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dnq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dnq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dznq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dznq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqlpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqlpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dzqp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dzqp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dzqpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dzqpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dcupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dcupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dclp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dclpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dclpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ynq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ynq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yznq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yznq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zynq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zynq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yqup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yqupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yqlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqlpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yqlpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yzq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yzq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yzqp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yzqp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yzqpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yzqpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ycupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ycupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yclp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"yclpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yclpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"raiseguitar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raiseguitar{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"guitar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gbarre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gbarre{${1:b}}\"\n      }\n    },\n    {\n      \"name\": \"gdot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gdot{${1:s}}{${2:b}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"song\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/musixtex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"absoluteaccid\"\n    },\n    {\n      \"name\": \"accshift\"\n    },\n    {\n      \"name\": \"addspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"afterruleskip\"\n    },\n    {\n      \"name\": \"alaligne\"\n    },\n    {\n      \"name\": \"alapage\"\n    },\n    {\n      \"name\": \"allabreve\"\n    },\n    {\n      \"name\": \"altitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alto\"\n    },\n    {\n      \"name\": \"altoclef\"\n    },\n    {\n      \"name\": \"altplancher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altportee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arithmeticskipscale\"\n    },\n    {\n      \"name\": \"arpeggio\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arpeggio{${1:pitch}}{${2:interlignes}}\"\n      }\n    },\n    {\n      \"name\": \"atnextbar\"\n    },\n    {\n      \"name\": \"atnextline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backturn{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bar\",\n      \"detail\": \" ̄\",\n      \"doc\": \"Macron\"\n    },\n    {\n      \"name\": \"barno\"\n    },\n    {\n      \"name\": \"barnoadd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barnumbers\"\n    },\n    {\n      \"name\": \"barre\"\n    },\n    {\n      \"name\": \"bass\"\n    },\n    {\n      \"name\": \"bassclef\"\n    },\n    {\n      \"name\": \"basslowoct\"\n    },\n    {\n      \"name\": \"bassoct\"\n    },\n    {\n      \"name\": \"beforeruleskip\"\n    },\n    {\n      \"name\": \"bhsk\"\n    },\n    {\n      \"name\": \"bigaccid\"\n    },\n    {\n      \"name\": \"bigdfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigdfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bigdsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigdsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bigfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bigna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigna{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bigsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bigtype\"\n    },\n    {\n      \"name\": \"Bigtype\"\n    },\n    {\n      \"name\": \"BIgtype\"\n    },\n    {\n      \"name\": \"BIGtype\"\n    },\n    {\n      \"name\": \"blppz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blppz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"blpz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blpz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"blsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blsf{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"blsfz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blsfz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"blst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blst{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bltext{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"boxit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boxitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bqsk\"\n    },\n    {\n      \"name\": \"bracket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bracket{${1:pitch}}{${2:internotes}}\"\n      }\n    },\n    {\n      \"name\": \"breakslur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"breakslur{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bsk\"\n    },\n    {\n      \"name\": \"btsk\"\n    },\n    {\n      \"name\": \"buppz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buppz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bupz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bupz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"busf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"busf{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"busfz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"busfz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"bust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bust{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"butext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"butext{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"ca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ca{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"caesura\"\n    },\n    {\n      \"name\": \"catcodesmusic\"\n    },\n    {\n      \"name\": \"cbreath\"\n    },\n    {\n      \"name\": \"cca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cca{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ccca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccca{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cccca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cccca{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ccccca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccccca{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cchar{${1:pitch-num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccharnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ccharnote{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cclp\"\n    },\n    {\n      \"name\": \"ccn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ccn{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ccup\"\n    },\n    {\n      \"name\": \"cdfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cdsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"centerbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerbar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"centerhpause\"\n    },\n    {\n      \"name\": \"centerHpause\"\n    },\n    {\n      \"name\": \"centerpause\"\n    },\n    {\n      \"name\": \"centerPAuse\"\n    },\n    {\n      \"name\": \"centerPAUSe\"\n    },\n    {\n      \"name\": \"cfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"changeclefs\"\n    },\n    {\n      \"name\": \"Changeclefs\"\n    },\n    {\n      \"name\": \"changecontext\"\n    },\n    {\n      \"name\": \"Changecontext\"\n    },\n    {\n      \"name\": \"changesignature\"\n    },\n    {\n      \"name\": \"chpause\"\n    },\n    {\n      \"name\": \"cHpause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cHpause{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"circleit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circleit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"clp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"clpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cmidstaff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidstaff{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cna{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"contpiece\"\n    },\n    {\n      \"name\": \"Contpiece\"\n    },\n    {\n      \"name\": \"cPAUSe\"\n    },\n    {\n      \"name\": \"cPAuse\"\n    },\n    {\n      \"name\": \"cpause\"\n    },\n    {\n      \"name\": \"crescendo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crescendo{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"csh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"csong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"cup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cup{${1:pitch}}\"\n      },\n      \"detail\": \"∪\",\n      \"doc\": \"Union or logical sum\"\n    },\n    {\n      \"name\": \"cupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"curve{${1:h}}{${2:i}}{${3:j}}\"\n      }\n    },\n    {\n      \"name\": \"decrescendo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decrescendo{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultStemlength\"\n    },\n    {\n      \"name\": \"DEP\"\n    },\n    {\n      \"name\": \"Dep\"\n    },\n    {\n      \"name\": \"dfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dhsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dhsong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dotted\"\n    },\n    {\n      \"name\": \"doublebar\"\n    },\n    {\n      \"name\": \"doublethumb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublethumb{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"downbow\"\n    },\n    {\n      \"name\": \"downtrio\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"downtrio{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"downtuplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"downtuplet{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Dqbbl\"\n    },\n    {\n      \"name\": \"Dqbbu\"\n    },\n    {\n      \"name\": \"Dqbl\"\n    },\n    {\n      \"name\": \"Dqbu\"\n    },\n    {\n      \"name\": \"ds\"\n    },\n    {\n      \"name\": \"dsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"dsp\"\n    },\n    {\n      \"name\": \"dspp\"\n    },\n    {\n      \"name\": \"duevolte\"\n    },\n    {\n      \"name\": \"elemskip\"\n    },\n    {\n      \"name\": \"en\"\n    },\n    {\n      \"name\": \"endcatcodesmusic\"\n    },\n    {\n      \"name\": \"endextract\"\n    },\n    {\n      \"name\": \"endmuflex\"\n    },\n    {\n      \"name\": \"Endpiece\"\n    },\n    {\n      \"name\": \"endpiece\"\n    },\n    {\n      \"name\": \"endvolta\"\n    },\n    {\n      \"name\": \"endvoltabox\"\n    },\n    {\n      \"name\": \"enotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everystaff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"f\"\n    },\n    {\n      \"name\": \"fermatadown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fermatadown{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Fermatadown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fermatadown{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Fermataup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fermataup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"fermataup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fermataup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ff\"\n    },\n    {\n      \"name\": \"fff\"\n    },\n    {\n      \"name\": \"ffff\"\n    },\n    {\n      \"name\": \"fl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"flageolett\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flageolett{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"fontbarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"generalmeter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"generalmeter{${1:meter}}\"\n      }\n    },\n    {\n      \"name\": \"generalsignature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"generalsignature{${1:sharps}}\"\n      }\n    },\n    {\n      \"name\": \"geometricskipscale\"\n    },\n    {\n      \"name\": \"grcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"grcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"groupbottom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"groupbottom{${1:g}}{${2:m}}\"\n      }\n    },\n    {\n      \"name\": \"grouptop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grouptop{${1:g}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"ha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ha{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hap{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"happ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"happ{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hardlyrics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hardlyrics{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hardspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hardspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hbp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hbp{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hbpp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hbpp{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hbsk\"\n    },\n    {\n      \"name\": \"hidebarrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidebarrule{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Hidebarrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hidebarrule{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hloff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hloff{${1:notes}}\"\n      }\n    },\n    {\n      \"name\": \"hlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hlpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hlpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hp\"\n    },\n    {\n      \"name\": \"hpause\"\n    },\n    {\n      \"name\": \"Hpause\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Hpause{${1:pitch}}{${2:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"hpausep\"\n    },\n    {\n      \"name\": \"hpausepp\"\n    },\n    {\n      \"name\": \"hpp\"\n    },\n    {\n      \"name\": \"hppp\"\n    },\n    {\n      \"name\": \"hqsk\"\n    },\n    {\n      \"name\": \"hroff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hroff{${1:notes}}\"\n      }\n    },\n    {\n      \"name\": \"hs\"\n    },\n    {\n      \"name\": \"hsk\"\n    },\n    {\n      \"name\": \"hsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hsp\"\n    },\n    {\n      \"name\": \"hspp\"\n    },\n    {\n      \"name\": \"hu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"hupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbbbl{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbbbl{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbbbu{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbbbu{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbbl{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbbl{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbbu{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbbu{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbl{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbl{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbbu{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbbu{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbl{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbl{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibbu{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibbu{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibl{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibl{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"ibslurd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ibslurd{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ibsluru\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ibsluru{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ibu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ibu{${1:n}}{${2:pitch}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"Ibu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ibu{${1:n}}{${2:pitch1}}{${3:pitch2}}{${4:noteskip}}\"\n      }\n    },\n    {\n      \"name\": \"icresc\"\n    },\n    {\n      \"name\": \"ifactiveinstrument\"\n    },\n    {\n      \"name\": \"iftabstylespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorenats\"\n    },\n    {\n      \"name\": \"instrumentnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instrumentnumber{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"interbeam\"\n    },\n    {\n      \"name\": \"interfacteur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interinstrument\"\n    },\n    {\n      \"name\": \"Interligne\"\n    },\n    {\n      \"name\": \"internote\"\n    },\n    {\n      \"name\": \"Internote\"\n    },\n    {\n      \"name\": \"interportee\"\n    },\n    {\n      \"name\": \"interstaff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interstaff{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"invertslur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"invertslur{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Ioctfindown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ioctfindown{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ioctfindown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ioctfindown{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Ioctfinup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ioctfinup{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ioctfinup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ioctfinup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"islurd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"islurd{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Islurdbreak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Islurdbreak{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"isluru\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isluru{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Islurubreak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Islurubreak{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"isslurd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isslurd{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"issluru\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"issluru{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"itenl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itenl{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"itenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itenu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"itied\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itied{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"itieu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"itieu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Itrille\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Itrille{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ITrille\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ITrille{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"kernm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largemusicsize\"\n    },\n    {\n      \"name\": \"Largemusicsize\"\n    },\n    {\n      \"name\": \"largenotesize\"\n    },\n    {\n      \"name\": \"Largenotesize\"\n    },\n    {\n      \"name\": \"Largevalue\"\n    },\n    {\n      \"name\": \"largevalue\"\n    },\n    {\n      \"name\": \"larpeggio\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"larpeggio{${1:pitch}}{${2:interlignes}}\"\n      }\n    },\n    {\n      \"name\": \"lchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lchar{${1:pitch-num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lcharnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lcharnote{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lcn{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"lcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ldfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ldfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ldsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ldsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"leftrepeat\"\n    },\n    {\n      \"name\": \"leftrightrepeat\"\n    },\n    {\n      \"name\": \"lfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lhl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lhp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lhu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lhu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lifthpause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lifthpause{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"lifthpausep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lifthpausep{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Liftoctline\"\n    },\n    {\n      \"name\": \"liftpause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liftpause{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"liftpausep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liftpausep{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Liftslur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Liftslur{${1:n}}{${2:h}}\"\n      }\n    },\n    {\n      \"name\": \"linegoal\"\n    },\n    {\n      \"name\": \"lmidstaff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lmidstaff{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lna{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"loff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loff{${1:notes}}\"\n      }\n    },\n    {\n      \"name\": \"loffset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loffset{${1:num}}{${2:notes}}\"\n      }\n    },\n    {\n      \"name\": \"longa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longa{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"longaa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longaa{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpar{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lpppt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpppt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lppt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lppt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lppz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lppz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lpz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lpzst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lpzst{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lqp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lqp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lrlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsf{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lsfz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsfz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lst{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ltab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ltab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"lw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lw{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"maxima\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxima{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"meddyn\"\n    },\n    {\n      \"name\": \"medtype\"\n    },\n    {\n      \"name\": \"meterC\"\n    },\n    {\n      \"name\": \"meterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meterfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"meterlargefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterLargefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterN\"\n    },\n    {\n      \"name\": \"meterplus\"\n    },\n    {\n      \"name\": \"metron\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metron{${1:note}}{${2:tempo}}\"\n      }\n    },\n    {\n      \"name\": \"metronequiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metronequiv{${1:note1}}{${2:note2}}\"\n      }\n    },\n    {\n      \"name\": \"mf\"\n    },\n    {\n      \"name\": \"midslur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midslur{${1:h}}\"\n      }\n    },\n    {\n      \"name\": \"mordent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mordent{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Mordent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mordent{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"mulooseness\"\n    },\n    {\n      \"name\": \"multnoteskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multnoteskip{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"musicparskip\"\n    },\n    {\n      \"name\": \"musixtex\"\n    },\n    {\n      \"name\": \"na\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"na{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"nbinstruments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextinstrument\"\n    },\n    {\n      \"name\": \"nextstaff\"\n    },\n    {\n      \"name\": \"nh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nnnotes\"\n    },\n    {\n      \"name\": \"nnotes\"\n    },\n    {\n      \"name\": \"nobarnumbers\"\n    },\n    {\n      \"name\": \"normalmusicsize\"\n    },\n    {\n      \"name\": \"normalnotesize\"\n    },\n    {\n      \"name\": \"normaltranspose\"\n    },\n    {\n      \"name\": \"normalvalue\"\n    },\n    {\n      \"name\": \"normdyn\"\n    },\n    {\n      \"name\": \"normtype\"\n    },\n    {\n      \"name\": \"nostartrule\"\n    },\n    {\n      \"name\": \"nostemcut\"\n    },\n    {\n      \"name\": \"Notes\"\n    },\n    {\n      \"name\": \"notes\"\n    },\n    {\n      \"name\": \"NOtes\"\n    },\n    {\n      \"name\": \"NOTes\"\n    },\n    {\n      \"name\": \"NOTEs\"\n    },\n    {\n      \"name\": \"NOTES\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteskip\"\n    },\n    {\n      \"name\": \"notesp\"\n    },\n    {\n      \"name\": \"Notesp\"\n    },\n    {\n      \"name\": \"NOtesp\"\n    },\n    {\n      \"name\": \"NOTesp\"\n    },\n    {\n      \"name\": \"NOTEsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nqqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nqqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"nspace\"\n    },\n    {\n      \"name\": \"octfindown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"octfindown{${1:staff-level}}{${2:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"octfinup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"octfinup{${1:staff-level}}{${2:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"octnumberdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"octnumberup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"off\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"off{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ovbkt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ovbkt{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"PAuse\"\n    },\n    {\n      \"name\": \"PAUSe\"\n    },\n    {\n      \"name\": \"pausep\"\n    },\n    {\n      \"name\": \"pausepp\"\n    },\n    {\n      \"name\": \"pdld\"\n    },\n    {\n      \"name\": \"pdlu\"\n    },\n    {\n      \"name\": \"pdlud\"\n    },\n    {\n      \"name\": \"PED\"\n    },\n    {\n      \"name\": \"Ped\"\n    },\n    {\n      \"name\": \"pp\"\n    },\n    {\n      \"name\": \"ppff\"\n    },\n    {\n      \"name\": \"ppffsixteen\"\n    },\n    {\n      \"name\": \"ppfftwelve\"\n    },\n    {\n      \"name\": \"ppfftwenty\"\n    },\n    {\n      \"name\": \"ppfftwentyfour\"\n    },\n    {\n      \"name\": \"ppfftwentynine\"\n    },\n    {\n      \"name\": \"ppp\"\n    },\n    {\n      \"name\": \"pppp\"\n    },\n    {\n      \"name\": \"pppt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pppt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ppt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ppt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"prevstaff\"\n    },\n    {\n      \"name\": \"pt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ptr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptr{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qa{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qap{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qapp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qapp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qbp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qbpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qbpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qlpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qlpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qp\"\n    },\n    {\n      \"name\": \"qpp\"\n    },\n    {\n      \"name\": \"qppp\"\n    },\n    {\n      \"name\": \"Qqbbl\"\n    },\n    {\n      \"name\": \"Qqbbu\"\n    },\n    {\n      \"name\": \"Qqbl\"\n    },\n    {\n      \"name\": \"Qqbu\"\n    },\n    {\n      \"name\": \"qqs\"\n    },\n    {\n      \"name\": \"qqsk\"\n    },\n    {\n      \"name\": \"qqsp\"\n    },\n    {\n      \"name\": \"qqspp\"\n    },\n    {\n      \"name\": \"qs\"\n    },\n    {\n      \"name\": \"qsk\"\n    },\n    {\n      \"name\": \"qsp\"\n    },\n    {\n      \"name\": \"qspace\"\n    },\n    {\n      \"name\": \"qspp\"\n    },\n    {\n      \"name\": \"qu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"qupp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qupp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"raggedstoppiece\"\n    },\n    {\n      \"name\": \"raisebarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raiseped\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisevolta\"\n    },\n    {\n      \"name\": \"rcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"relativeaccid\"\n    },\n    {\n      \"name\": \"resetclefsymbols\"\n    },\n    {\n      \"name\": \"resetlayout\"\n    },\n    {\n      \"name\": \"reverseallabreve\"\n    },\n    {\n      \"name\": \"reverseC\"\n    },\n    {\n      \"name\": \"rh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rhl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rhp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rhu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rhu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rightrepeat\"\n    },\n    {\n      \"name\": \"roff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roff{${1:notes}}\"\n      }\n    },\n    {\n      \"name\": \"roffset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"roffset{${1:num}}{${2:notes}}\"\n      }\n    },\n    {\n      \"name\": \"rpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpar{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rqp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rqp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rtab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rtab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"rw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rw{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"sDEP\"\n    },\n    {\n      \"name\": \"sDep\"\n    },\n    {\n      \"name\": \"Segno\"\n    },\n    {\n      \"name\": \"selectinstrument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectinstrument{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"selectstaff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectstaff{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"sepbarrules\"\n    },\n    {\n      \"name\": \"setaltoclefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setaltoclefsymbol{${1:n}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setbassclefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setbassclefsymbol{${1:n}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setclef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setclef{${1:n}}{${2:digit-or-clef}}\"\n      }\n    },\n    {\n      \"name\": \"setclefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setclefsymbol{${1:n}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"setdoublebar\"\n    },\n    {\n      \"name\": \"setdoubleBAR\"\n    },\n    {\n      \"name\": \"setemptybar\"\n    },\n    {\n      \"name\": \"setendvolta\"\n    },\n    {\n      \"name\": \"setendvoltabox\"\n    },\n    {\n      \"name\": \"setinterinstrument\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setinterinstrument{${1:n}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"setinterstaff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setinterstaff{${1:n}}{${2:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setleftrepeat\"\n    },\n    {\n      \"name\": \"setleftrightrepeat\"\n    },\n    {\n      \"name\": \"setlines\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlines{${1:n}}{${2:lines}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxcclvibeams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxcclvibeams{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxcxxviiibeams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxcxxviiibeams{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxgroups\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxgroups{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxinstruments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxinstruments{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxoctlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxoctlines{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxslurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxslurs{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setmaxtrills\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmaxtrills{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"setname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setname{${1:n}}{${2:instrument-name}}\"\n      }\n    },\n    {\n      \"name\": \"setrightrepeat\"\n    },\n    {\n      \"name\": \"setsign\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsign{${1:n}}{${2:sharps}}\"\n      }\n    },\n    {\n      \"name\": \"setsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsize{${1:n}}{${2:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setsongraise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsongraise{${1:n}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"setstaffs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstaffs{${1:n}}{${2:staves}}\"\n      }\n    },\n    {\n      \"name\": \"settrebleclefsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settrebleclefsymbol{${1:n}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Setvolta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Setvolta{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setvolta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvolta{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setvoltabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvoltabox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sF\"\n    },\n    {\n      \"name\": \"sfz\"\n    },\n    {\n      \"name\": \"sfzp\"\n    },\n    {\n      \"name\": \"sh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"shake\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shake{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Shake\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shake{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Shakel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shakel{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Shakene\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shakene{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Shakenw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shakenw{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Shakesw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shakesw{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"shiftbarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showallbarrules\"\n    },\n    {\n      \"name\": \"showbarrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showbarrule{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Showbarrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Showbarrule{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"sk\"\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"slide{${1:pitch}}{${2:internotes}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"slur\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"slur{${1:pitch1}}{${2:pitch2}}{${3:u|d}}{${4:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"smallaccid\"\n    },\n    {\n      \"name\": \"smallaltoclef\"\n    },\n    {\n      \"name\": \"smallbassclef\"\n    },\n    {\n      \"name\": \"smallbasslowoct\"\n    },\n    {\n      \"name\": \"smallbassoct\"\n    },\n    {\n      \"name\": \"smalldfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalldfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"smalldsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smalldsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"smalldyn\"\n    },\n    {\n      \"name\": \"smallfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"smallmusicsize\"\n    },\n    {\n      \"name\": \"smallna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallna{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"smallnotesize\"\n    },\n    {\n      \"name\": \"smallsh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallsh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"smalltrebleclef\"\n    },\n    {\n      \"name\": \"smalltreblelowoct\"\n    },\n    {\n      \"name\": \"smalltrebleoct\"\n    },\n    {\n      \"name\": \"smalltype\"\n    },\n    {\n      \"name\": \"Smalltype\"\n    },\n    {\n      \"name\": \"smallvalue\"\n    },\n    {\n      \"name\": \"softlyrics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"softlyrics{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"songbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songbottom{${1:m}}\"\n      }\n    },\n    {\n      \"name\": \"songtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songtop{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"soupir\"\n    },\n    {\n      \"name\": \"sPED\"\n    },\n    {\n      \"name\": \"sPed\"\n    },\n    {\n      \"name\": \"sslur\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sslur{${1:pitch1}}{${2:pitch2}}{${3:u|d}}{${4:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"staffbotmarg\"\n    },\n    {\n      \"name\": \"stafftopmarg\"\n    },\n    {\n      \"name\": \"startbarno\"\n    },\n    {\n      \"name\": \"startextract\"\n    },\n    {\n      \"name\": \"startmuflex\"\n    },\n    {\n      \"name\": \"startpiece\"\n    },\n    {\n      \"name\": \"startrule\"\n    },\n    {\n      \"name\": \"stdbarrules\"\n    },\n    {\n      \"name\": \"stdstemfalse\"\n    },\n    {\n      \"name\": \"stemcut\"\n    },\n    {\n      \"name\": \"stemfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stemlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stemlength{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"stie\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stie{${1:pitch}}{${2:u|d}}{${3:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"stoppiece\"\n    },\n    {\n      \"name\": \"Stoppiece\"\n    },\n    {\n      \"name\": \"systemheight\"\n    },\n    {\n      \"name\": \"systemnumbers\"\n    },\n    {\n      \"name\": \"tab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tabclef\"\n    },\n    {\n      \"name\": \"tabfnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabstringfnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabstylespacefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabstylespacetrue\"\n    },\n    {\n      \"name\": \"tbbbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tbslurd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbslurd{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tbsluru\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbsluru{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tbu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbu{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tcresc\"\n    },\n    {\n      \"name\": \"tdbslur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tdbslur{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tdecresc\"\n    },\n    {\n      \"name\": \"thelyrics\"\n    },\n    {\n      \"name\": \"thsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thsong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tie\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tie{${1:pitch}}{${2:u|d}}{${3:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"tinydyn\"\n    },\n    {\n      \"name\": \"tinynotesize\"\n    },\n    {\n      \"name\": \"tinytype\"\n    },\n    {\n      \"name\": \"tinyvalue\"\n    },\n    {\n      \"name\": \"Toctfin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toctfin{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Tqbbl\"\n    },\n    {\n      \"name\": \"Tqbbu\"\n    },\n    {\n      \"name\": \"Tqbl\"\n    },\n    {\n      \"name\": \"Tqbu\"\n    },\n    {\n      \"name\": \"tqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tqsk\"\n    },\n    {\n      \"name\": \"tqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tr{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"transpose\"\n    },\n    {\n      \"name\": \"treble\"\n    },\n    {\n      \"name\": \"trebleclef\"\n    },\n    {\n      \"name\": \"treblelowoct\"\n    },\n    {\n      \"name\": \"trebleoct\"\n    },\n    {\n      \"name\": \"trille\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trille{${1:pitch}}{${2:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"Trille\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Trille{${1:pitch}}{${2:noteskips}}\"\n      }\n    },\n    {\n      \"name\": \"triolet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triolet{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trrml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trrml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trrml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trrml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trrmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trrmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trrmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trrmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trrrml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trrrml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trrrml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trrrml{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trrrmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trrrmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Trrrmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Trrrmu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"trt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trt{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tslur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tslur{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"Tslurbreak\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tslurbreak{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tsslur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsslur{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tten{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"ttie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttie{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"Ttrille\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttrille{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tubslur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tubslur{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"tuplettxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"turn{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"txt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"txtfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tzccu\"\n    },\n    {\n      \"name\": \"tzcu\"\n    },\n    {\n      \"name\": \"tzcup\"\n    },\n    {\n      \"name\": \"tzhu\"\n    },\n    {\n      \"name\": \"tzhup\"\n    },\n    {\n      \"name\": \"tzqu\"\n    },\n    {\n      \"name\": \"tzqup\"\n    },\n    {\n      \"name\": \"tzwh\"\n    },\n    {\n      \"name\": \"tzwhp\"\n    },\n    {\n      \"name\": \"unbkt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"unbkt{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"upbow\"\n    },\n    {\n      \"name\": \"upperfl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upperfl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"upperna\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upperna{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"uppersh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppersh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"uppz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"uptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Uptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Uptext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uptrio\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"uptrio{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"uptuplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"uptuplet{${1:pitch}}{${2:noteskips}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"upz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"upzst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upzst{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"usf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usf{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"usfz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usfz{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ust{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"varaccid\"\n    },\n    {\n      \"name\": \"varline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"varline{${1:height}}{${2:length}}{${3:slope}}\"\n      }\n    },\n    {\n      \"name\": \"vnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vnotes{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"voltadot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"wholeshift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wholeshift{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"whp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"whpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"wq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"wqq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wqq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"writebarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writethebarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writezbarno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xbar\"\n    },\n    {\n      \"name\": \"xtr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtr{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"xtuplet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xtuplet{${1:k}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zalaligne\"\n    },\n    {\n      \"name\": \"zalapage\"\n    },\n    {\n      \"name\": \"zbar\"\n    },\n    {\n      \"name\": \"zbreath\"\n    },\n    {\n      \"name\": \"zbreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zbreve{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zccccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zccccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zccccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zccccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zccl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zccl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcclp\"\n    },\n    {\n      \"name\": \"zccu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zccu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zccup\"\n    },\n    {\n      \"name\": \"zchangeclefs\"\n    },\n    {\n      \"name\": \"zchangecontext\"\n    },\n    {\n      \"name\": \"zchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zchar{${1:pitch-num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zcharnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcharnote{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zclp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zclp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zclpp\"\n    },\n    {\n      \"name\": \"zcn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcn{${1:pitch}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zcu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zcupp\"\n    },\n    {\n      \"name\": \"zdoublebar\"\n    },\n    {\n      \"name\": \"zendextract\"\n    },\n    {\n      \"name\": \"zendpiece\"\n    },\n    {\n      \"name\": \"zh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhl{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhlpp\"\n    },\n    {\n      \"name\": \"zhp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zhupp\"\n    },\n    {\n      \"name\": \"zleftrepeat\"\n    },\n    {\n      \"name\": \"zleftrightrepeat\"\n    },\n    {\n      \"name\": \"zlonga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zlonga{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zltab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zltab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zmaxima\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zmaxima{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zmidstaff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zmidstaff{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"znh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"znh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"znotes\"\n    },\n    {\n      \"name\": \"znq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"znq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqbp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqbp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqbpp\"\n    },\n    {\n      \"name\": \"zql\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zql{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqlp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqlpp\"\n    },\n    {\n      \"name\": \"zqp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqu{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zqup{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zqupp\"\n    },\n    {\n      \"name\": \"zrightrepeat\"\n    },\n    {\n      \"name\": \"zrtab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zrtab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zsong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zstoppiece\"\n    },\n    {\n      \"name\": \"ztab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ztab{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ztqb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ztqb{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ztqh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ztqh{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ztql\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ztql{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"ztqu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ztqu{${1:n}}{${2:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zw{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zwh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zwh{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zwp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zwp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zwpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zwpp{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zwq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zwq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zwqq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zwqq{${1:pitch}}\"\n      }\n    },\n    {\n      \"name\": \"zzbar\"\n    },\n    {\n      \"name\": \"zzdoublebar\"\n    },\n    {\n      \"name\": \"zzleftrepeat\"\n    },\n    {\n      \"name\": \"zzleftrightrepeat\"\n    },\n    {\n      \"name\": \"zzrightrepeat\"\n    },\n    {\n      \"name\": \"hlthick\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"music\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mwe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"blindtext\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/mxedruli.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mxedr\"\n    },\n    {\n      \"name\": \"mxedb\"\n    },\n    {\n      \"name\": \"mxedi\"\n    },\n    {\n      \"name\": \"mxedc\"\n    },\n    {\n      \"name\": \"fmxedr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmxedb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmxedi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmxedc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmxedr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmxedb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmxedi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmxedc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mxedr\"\n    },\n    {\n      \"name\": \"mxedb\"\n    },\n    {\n      \"name\": \"mxedi\"\n    },\n    {\n      \"name\": \"mxedc\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/myfilist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"readprov\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EmptyFileList\"\n    },\n    {\n      \"name\": \"EmptyFileList\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"EmptyFileList[${1:file list}]\"\n      }\n    },\n    {\n      \"name\": \"ListInfos\"\n    },\n    {\n      \"name\": \"ListInfos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ListInfos[${1:filename.txt}]\"\n      }\n    },\n    {\n      \"name\": \"ListGenerator\"\n    },\n    {\n      \"name\": \"NoStopListInfos\"\n    },\n    {\n      \"name\": \"VarListInfos\"\n    },\n    {\n      \"name\": \"VarListInfos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VarListInfos[${1:filename.txt}]\"\n      }\n    },\n    {\n      \"name\": \"WriteFileInfosTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WriteFileInfosTo{${1:txt file}}\"\n      }\n    },\n    {\n      \"name\": \"ReadListFileInfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadListFileInfos{${1:tex file list}}\"\n      }\n    },\n    {\n      \"name\": \"ReadListFileInfos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ReadListFileInfos[${2:txt file}]{${1:tex file list}}\"\n      }\n    },\n    {\n      \"name\": \"UseFindUtility\"\n    },\n    {\n      \"name\": \"FindReadListFileInfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FindReadListFileInfos{${1:tex file list}}\"\n      }\n    },\n    {\n      \"name\": \"FindReadListFileInfos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FindReadListFileInfos[${2:txt file}]{${1:tex file list}}\"\n      }\n    },\n    {\n      \"name\": \"FileListRemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FileListRemark{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"FileListRemark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FileListRemark[${2:info}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"NoBottomLines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/na-border.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"naborder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"naborder{${1:color}}{${2:letter}}\"\n      }\n    },\n    {\n      \"name\": \"bordertitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bordertitle{${1:top frame color}}{${2:bottom frame color}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/na-position.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tkz-tab\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzTabPos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzTabPos{${1:symbol1/expr1,symbol2/expr2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabPos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzTabPos[${2:options%keyvals}]{${1:symbol1/expr1,symbol2/expr2,...}}\",\n        \"keys\": [\n          \"\\\\tkzTabPos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Nline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nplot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzTabPos\": [\n      \"help\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nabatean.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nabfamily\"\n    },\n    {\n      \"name\": \"nabfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nabfamily{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arq\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Ag\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"Aw\"\n    },\n    {\n      \"name\": \"Az\"\n    },\n    {\n      \"name\": \"Ahd\"\n    },\n    {\n      \"name\": \"Atd\"\n    },\n    {\n      \"name\": \"Ay\"\n    },\n    {\n      \"name\": \"Ak\"\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"Alq\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"Asd\"\n    },\n    {\n      \"name\": \"Aq\"\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"Asv\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"Aa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aaleph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abeth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Agimel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adaleth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ahe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Avav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aheth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ateth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ayod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Akaph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Amem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asamekh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aqoph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aresh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ashin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translitnab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitnab{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitnabfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nag.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PackageInfoNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageInfoNoLine{${1:package name}}{${2:info text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObsoleteCS{${1:csname}}{${2:suggestions%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObsoleteCS[${3:reason%text}]{${1:csname}}{${2:suggestions%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObsoleteEnv{${1:envname}}{${2:suggestions%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObsoleteEnv[${3:reason%text}]{${1:envname}}{${2:suggestions%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoletePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObsoletePackage{${1:package name}}{${2:alternative%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoletePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObsoletePackage[${3:reason%text}]{${1:package name}}{${2:alternative%text}}\"\n      }\n    },\n    {\n      \"name\": \"SuggestedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuggestedPackage{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"SuggestedPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SuggestedPackage[${2:reason%text}]{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"IncompatiblePackages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncompatiblePackages{${1:package1}}{${2:package2}}{${3:hint%text}}\"\n      }\n    },\n    {\n      \"name\": \"IncompatiblePackages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IncompatiblePackages[${4:reason%text}]{${1:package name}}{${2:package2}}{${3:hint%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObsoleteClass{${1:class name}}{${2:alternative%text}}\"\n      }\n    },\n    {\n      \"name\": \"ObsoleteClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObsoleteClass[${3:reason%text}]{${1:class name}}{${2:alternative%text}}\"\n      }\n    },\n    {\n      \"name\": \"BadFileLoadOrder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BadFileLoadOrder{${1:file1}}{${2:file2}}\"\n      }\n    },\n    {\n      \"name\": \"BadFileLoadOrder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BadFileLoadOrder[${3:reason%text}]{${1:file1}}{${2:file2}}\"\n      }\n    },\n    {\n      \"name\": \"NotAnEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotAnEnvironment{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"NotASwitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotASwitch{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"FBsuboheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NagDeclareFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NagDeclareFloat{${1:float name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nag#c\": [\n      \"abort\",\n      \"experimental\",\n      \"l2tabu\",\n      \"orthodox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nag#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nahuatl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Yolotl\"\n    },\n    {\n      \"name\": \"Cipactli\"\n    },\n    {\n      \"name\": \"Ehecatl\"\n    },\n    {\n      \"name\": \"Calli\"\n    },\n    {\n      \"name\": \"Cuetzpalin\"\n    },\n    {\n      \"name\": \"Coatl\"\n    },\n    {\n      \"name\": \"Miquiztli\"\n    },\n    {\n      \"name\": \"Mazatl\"\n    },\n    {\n      \"name\": \"Tochtli\"\n    },\n    {\n      \"name\": \"Atl\"\n    },\n    {\n      \"name\": \"Itzcuintli\"\n    },\n    {\n      \"name\": \"Ozomahtli\"\n    },\n    {\n      \"name\": \"Malinalli\"\n    },\n    {\n      \"name\": \"Acatl\"\n    },\n    {\n      \"name\": \"Ocelotl\"\n    },\n    {\n      \"name\": \"Cuauhtli\"\n    },\n    {\n      \"name\": \"Cozcacuauhtli\"\n    },\n    {\n      \"name\": \"Ollin\"\n    },\n    {\n      \"name\": \"Tecpatl\"\n    },\n    {\n      \"name\": \"Quiahutl\"\n    },\n    {\n      \"name\": \"Xochitl\"\n    },\n    {\n      \"name\": \"nahuatlFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nahuatl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nahuatl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Nahuatl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/naive-ebnf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EbnfTerminal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EbnfTerminal{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"EbnfNonTerminal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EbnfNonTerminal{${1:rule}}\"\n      }\n    },\n    {\n      \"name\": \"EbnfSpecial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EbnfSpecial{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"EbnfRegex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EbnfRegex{${1:regex}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ebnf\"\n    },\n    {\n      \"name\": \"ebnf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/naive-ebnf#c\": [\n      \"bw\",\n      \"trail=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/naive-ebnf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nameauth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"suffix\",\n      \"if\": \"oldargs\"\n    },\n    {\n      \"name\": \"xargs\",\n      \"if\": \"oldargs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AccentCapThis\"\n    },\n    {\n      \"name\": \"AKA*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"AKA*[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"AKA*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"AKA*[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}[${5:xref alternate}]\"\n      }\n    },\n    {\n      \"name\": \"AKA*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AKA*[${3:forename}]{${1:surname}}{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"AKA*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AKA*{${1:surname,affix}}{${2:xref surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"AKA\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"AKA[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"AKA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"AKA[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}[${5:xref alternate}]\"\n      }\n    },\n    {\n      \"name\": \"AKA\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AKA[${3:forename}]{${1:surname}}{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"AKA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AKA{${1:surname,affix}}{${2:xref surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"AKA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AKA{${1:surname,affix}}{${2:xref surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"AllCapsActive\"\n    },\n    {\n      \"name\": \"AllCapsInactive\"\n    },\n    {\n      \"name\": \"AltCaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AltCaps{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AltFormatActive\"\n    },\n    {\n      \"name\": \"AltFormatActive*\"\n    },\n    {\n      \"name\": \"AltFormatInactive\"\n    },\n    {\n      \"name\": \"AltOff\"\n    },\n    {\n      \"name\": \"AltOn\"\n    },\n    {\n      \"name\": \"CapName\"\n    },\n    {\n      \"name\": \"CapThis\"\n    },\n    {\n      \"name\": \"DropAffix\"\n    },\n    {\n      \"name\": \"ExcludeName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExcludeName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ExcludeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ExcludeName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ExcludeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExcludeName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"FName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"FName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"FName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"FName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ForceFN\"\n    },\n    {\n      \"name\": \"ForceName\"\n    },\n    {\n      \"name\": \"ForgetName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ForgetName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ForgetName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ForgetName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ForgetName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForgetName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ForgetThis\"\n    },\n    {\n      \"name\": \"GlobalNames\"\n    },\n    {\n      \"name\": \"GlobalNameTest\"\n    },\n    {\n      \"name\": \"IfAKA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"IfAKA[${4:forename}]{${1:surname}}[${5:alternate}]{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfAKA\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfAKA[${4:forename}]{${1:surname}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfAKA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfAKA{${1:surname,affix}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfFrontName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"IfFrontName[${4:forename}]{${1:surname}}[${5:alternate}]{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfFrontName\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfFrontName[${4:forename}]{${1:surname}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfFrontName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfFrontName{${1:surname,affix}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfMainName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"IfMainName[${4:forename}]{${1:surname}}[${5:alternate}]{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfMainName\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfMainName[${4:forename}]{${1:surname}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IfMainName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMainName{${1:surname,affix}}{${2:yes}}{${3:no}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IncludeName*[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"IncludeName*[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"IncludeName*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncludeName*{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IncludeName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"IncludeName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"IncludeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncludeName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"IndexActive\"\n    },\n    {\n      \"name\": \"IndexActual\"\n    },\n    {\n      \"name\": \"IndexInactive\"\n    },\n    {\n      \"name\": \"IndexName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IndexName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"IndexName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"IndexName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"IndexName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndexName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"IndexProtect\"\n    },\n    {\n      \"name\": \"IndexRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"IndexRef[${3:forename}]{${1:surname}}[${4:alternate}]{${2:ref target}}\"\n      }\n    },\n    {\n      \"name\": \"IndexRef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"IndexRef[${3:forename}]{${1:surname}}{${2:ref target}}\"\n      }\n    },\n    {\n      \"name\": \"IndexRef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IndexRef{${1:surname,affix}}{${2:ref target}}\"\n      }\n    },\n    {\n      \"name\": \"IndexWarnTerse\"\n    },\n    {\n      \"name\": \"IndexWarnVerbose\"\n    },\n    {\n      \"name\": \"JustIndex\"\n    },\n    {\n      \"name\": \"KeepAffix\"\n    },\n    {\n      \"name\": \"KeepName\"\n    },\n    {\n      \"name\": \"LocalNames\"\n    },\n    {\n      \"name\": \"LocalNameTest\"\n    },\n    {\n      \"name\": \"Name*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Name*[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"Name*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Name*[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"Name*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name*{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Name[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Name[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"NameAddInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"NameAddInfo[${3:forename}]{${1:surname}}[${4:alternate}]{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameAddInfo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NameAddInfo[${3:forename}]{${1:surname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameAddInfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameAddInfo{${1:surname,affix}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameauthIndex\"\n    },\n    {\n      \"name\": \"NameClearInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"NameClearInfo[${3:forename}]{${1:surname}}[${4:alternate}]{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameClearInfo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NameClearInfo[${3:forename}]{${1:surname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameClearInfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameClearInfo{${1:surname,affix}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameQueryInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"NameQueryInfo[${3:forename}]{${1:surname}}[${4:alternate}]{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameQueryInfo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NameQueryInfo[${3:forename}]{${1:surname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NameQueryInfo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NameQueryInfo{${1:surname,affix}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"NamesActive\"\n    },\n    {\n      \"name\": \"NamesInactive\"\n    },\n    {\n      \"name\": \"NoComma\"\n    },\n    {\n      \"name\": \"PName*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"PName*[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"PName*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"PName*[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}[${5:xref alternate}]\"\n      }\n    },\n    {\n      \"name\": \"PName*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PName*[${3:forename}]{${1:surname}}{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"PName*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PName*{${1:surname,affix}}{${2:xref surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"PName\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"PName[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"PName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"PName[${3:forename}]{${1:surname}}[${4:xref forename}]{${2:xref surname}}[${5:xref alternate}]\"\n      }\n    },\n    {\n      \"name\": \"PName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PName[${3:forename}]{${1:surname}}{${2:xref surname}}\"\n      }\n    },\n    {\n      \"name\": \"PretagName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"PretagName[${3:forename}]{${1:surname}}[${4:alternate}]{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"PretagName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PretagName[${3:forename}]{${1:surname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"PretagName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PretagName{${1:surname,affix}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"RevComma\"\n    },\n    {\n      \"name\": \"ReverseActive\"\n    },\n    {\n      \"name\": \"ReverseCommaActive\"\n    },\n    {\n      \"name\": \"ReverseCommaInactive\"\n    },\n    {\n      \"name\": \"ReverseInactive\"\n    },\n    {\n      \"name\": \"RevName\"\n    },\n    {\n      \"name\": \"SeeAlso\"\n    },\n    {\n      \"name\": \"ShowComma\"\n    },\n    {\n      \"name\": \"SkipIndex\"\n    },\n    {\n      \"name\": \"SubvertName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SubvertName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"SubvertName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"SubvertName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"SubvertName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubvertName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"SubvertThis\"\n    },\n    {\n      \"name\": \"TagName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"TagName[${3:forename}]{${1:surname}}[${4:alternate}]{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"TagName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TagName[${3:forename}]{${1:surname}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"TagName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TagName{${1:surname,affix}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"textBF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textBF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textIT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textIT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textSC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textUC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textUC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UntagName\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"UntagName[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"UntagName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"UntagName[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"UntagName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UntagName{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"FrontNameHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrontNamesFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNameauthObsolete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNameauthWestern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MainNameHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameauthFName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameauthLName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameauthPattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameauthName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NameParser\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NamesFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowIdxPageref*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowIdxPageref*[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIdxPageref*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ShowIdxPageref*[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ShowIdxPageref*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowIdxPageref*{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIdxPageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowIdxPageref[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIdxPageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ShowIdxPageref[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ShowIdxPageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowIdxPageref{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ShowNameInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowNameInfo[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowNameInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ShowNameInfo[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ShowNameInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowNameInfo{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ShowNameState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowNameState[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowNameState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ShowNameState[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ShowNameState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowNameState{${1:surname,affix}}\"\n      }\n    },\n    {\n      \"name\": \"ShowPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShowPattern[${2:forename}]{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"ShowPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ShowPattern[${2:forename}]{${1:surname}}[${3:alternate}]\"\n      }\n    },\n    {\n      \"name\": \"ShowPattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowPattern{${1:surname,affix}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"nameauth\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nameauth#c\": [\n      \"comma\",\n      \"allcaps\",\n      \"allreversed\",\n      \"allrevcomma\",\n      \"noindex\",\n      \"nopretag\",\n      \"verbose\",\n      \"frontmatter\",\n      \"alwaysformat\",\n      \"formatAKA\",\n      \"smallcaps\",\n      \"italic\",\n      \"boldface\",\n      \"altformat\",\n      \"globaltest\",\n      \"oldAKA\",\n      \"oldreset\",\n      \"oldpass\",\n      \"oldtoks\",\n      \"oldsee\",\n      \"oldargs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nameauth#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/namedef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"named\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/namedtensor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:axis name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ndef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ndef{${1:command}}{${2:axis name%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ndot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ndot{${1:axis name}}\"\n      }\n    },\n    {\n      \"name\": \"ncat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncat{${1:axis name}}\"\n      }\n    },\n    {\n      \"name\": \"nbin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nbin{${1:axis name}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"nsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nsum{${1:axis name}}\"\n      }\n    },\n    {\n      \"name\": \"nfun\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nfun{${1:axis name}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"namedtensorstrut\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nameref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nameref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Nameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nameref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sectionformat{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/natbib.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cite[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citenum{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citeauthor*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:keylist}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"setcitestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcitestyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setcitestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"bibpunct{${1:open}}{${2:close}}{${3:multpunct}}{${4:letter}}{${5:authoryearpunct}}{${6:yearspunct}}\"\n      }\n    },\n    {\n      \"name\": \"bibpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"bibpunct[${7:char}]{${1:open}}{${2:close}}{${3:multpunct}}{${4:letter}}{${5:authoryearpunct}}{${6:yearspunct}}\"\n      }\n    },\n    {\n      \"name\": \"shortcites\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcites{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citestyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\citestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bibcleanup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibnumfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeindextype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citenumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifciteindex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/natbib#c\": [\n      \"round\",\n      \"square\",\n      \"curly\",\n      \"angle\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"sort\",\n      \"sort&compress\",\n      \"compress\",\n      \"longnamesfirst\",\n      \"sectionbib\",\n      \"nonamebreak\",\n      \"merge\",\n      \"elide\",\n      \"mcite\"\n    ],\n    \"\\\\setcitestyle\": [\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"round\",\n      \"square\",\n      \"angle\",\n      \"curly\",\n      \"open={${1:char}}\",\n      \"close={${1:char}}\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"citesep={${1:char}}\",\n      \"aysep={${1:char}}\",\n      \"yysep={${1:char}}\",\n      \"notesep={${1:text}}\"\n    ],\n    \"\\\\citestyle#c\": [\n      \"aa\",\n      \"abbrv\",\n      \"abbrvnat\",\n      \"agsm\",\n      \"agu\",\n      \"alpha\",\n      \"anngeo\",\n      \"chicago\",\n      \"copernicus\",\n      \"cospar\",\n      \"dcu\",\n      \"egs\",\n      \"egu\",\n      \"esa\",\n      \"kluwer\",\n      \"named\",\n      \"nature\",\n      \"nlinproc\",\n      \"pass\",\n      \"plain\",\n      \"plainnat\",\n      \"unsrt\",\n      \"unsrtnat\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/natbib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nathstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nathstyle{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\nathstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abbreviation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adot\"\n    },\n    {\n      \"name\": \"arraycolsepdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrayrowsepdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraystrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biggg\"\n    },\n    {\n      \"name\": \"binom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"binom{${1:m}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"displaybaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayed{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"displaylineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaylineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"factorial\"\n    },\n    {\n      \"name\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framed{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"gt\"\n    },\n    {\n      \"name\": \"inline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inline{${1:math}}\"\n      }\n    },\n    {\n      \"name\": \"interdisplayskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intereqnsskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"lCeil\"\n    },\n    {\n      \"name\": \"lFloor\"\n    },\n    {\n      \"name\": \"lnull\"\n    },\n    {\n      \"name\": \"longleftarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longleftrightarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longrightarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lt\"\n    },\n    {\n      \"name\": \"lVert\"\n    },\n    {\n      \"name\": \"lvert\"\n    },\n    {\n      \"name\": \"makerobust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makerobust{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mid\"\n    },\n    {\n      \"name\": \"Nath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"natherrormark\"\n    },\n    {\n      \"name\": \"niv\"\n    },\n    {\n      \"name\": \"numbered\"\n    },\n    {\n      \"name\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"old{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ot\"\n    },\n    {\n      \"name\": \"otto\"\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"padded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"padded{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"paritem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paritem{${1:item label}}\"\n      }\n    },\n    {\n      \"name\": \"paritemwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"punctpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qqquad\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rCeil\"\n    },\n    {\n      \"name\": \"return\"\n    },\n    {\n      \"name\": \"rFloor\"\n    },\n    {\n      \"name\": \"rnull\"\n    },\n    {\n      \"name\": \"rVert\"\n    },\n    {\n      \"name\": \"rvert\"\n    },\n    {\n      \"name\": \"showverticaldimensionsofthebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showverticaldimensionsofthebox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sizebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"uo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vin\"\n    },\n    {\n      \"name\": \"wall\"\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"cases\"\n    },\n    {\n      \"name\": \"eqnarrayabc\"\n    },\n    {\n      \"name\": \"eqns\"\n    },\n    {\n      \"name\": \"eqnsabc\"\n    },\n    {\n      \"name\": \"subabc\"\n    },\n    {\n      \"name\": \"tight\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\nathstyle\": [\n      \"geometry\",\n      \"geometry=${1|on,off|}\",\n      \"tensors\",\n      \"tensors=${1|on,off|}\",\n      \"leqno\",\n      \"leqno=${1|on,off|}\",\n      \"silent\",\n      \"silent=${1|on,off|}\",\n      \"debug\",\n      \"debug=${1|on,off|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/natmove.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"natmovechars\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/navigator.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"yax\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"finishpdffile\"\n    },\n    {\n      \"name\": \"anchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"anchor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anchor[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\anchor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anchorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchorname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"outline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"outline{${1:level}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"outline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"outline[${3:options%keyvals}]{${1:level}}{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\outline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"outline\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"outline{${1:level}}[${3:name}]{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"outline\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"outline[${3:options%keyvals}]{${1:level}}[${4:name}]{${2:title%plain}}\",\n        \"keys\": [\n          \"\\\\outline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfdef{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"pdfdef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"pdfdef{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"jumplink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jumplink{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jumplink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"jumplink[${3:options%keyvals}]{${1:name}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urllink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urllink{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"urllink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"urllink[${3:options%keyvals}]{${1:URL}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"javascriptlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"javascriptlink{${1:JavaScript code}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"javascriptlink[${3:options%keyvals}]{${1:JavaScript code}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"actionlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"actionlink{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"actionlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"actionlink[${3:options%keyvals}]{${1:name}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rawactionlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rawactionlink{${1:PDF code}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rawactionlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rawactionlink[${3:options%keyvals}]{${1:PDF code}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"annotation{${1:PDF code}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"annotation[${3:options%keyvals}]{${1:PDF code}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urlaction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlaction{${1:name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptaction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"javascriptaction{${1:name}}{${2:JavaScript code}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"embeddedfile{${1:object name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"embeddedfile[${3:description}]{${1:object name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedfile\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"embeddedfile{${1:object name}}[${3:alt filename}]{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"embeddedfile\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"embeddedfile[${3:description}]{${1:object name}}[${4:alt filename}]{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"openfilelink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openfilelink{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"openfilelink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"openfilelink[${3:options%keyvals}]{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"openfilelink\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"openfilelink{${1:file}}[${3:page}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"openfilelink\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"openfilelink[${3:options%keyvals}]{${1:file}}[${4:page}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfobject{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pdfdictobject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfdictobject{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pdfstreamobject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstreamobject{${1:name}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"pdfstreamobject\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfstreamobject[${3:raw code}]{${1:name}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"pdffileobject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdffileobject{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffileobject\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdffileobject[${3:raw code}]{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfreserveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfreserveobject{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfensureobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfensureobject{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobjectnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfobjectnumber{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfrefobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfrefobject{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobjectstatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfobjectstatus{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifpdfobject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpdfobject{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pdfstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfstring{${1:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\anchor\": [\n      \"up=\",\n      \"left=\",\n      \"fit=${1|xyz,fit,fith,fitv,fitb,fitbh,fitbv,fitr|}\",\n      \"zoom=${1:number}\"\n    ],\n    \"\\\\outline\": [\n      \"open\",\n      \"bold\",\n      \"italic\",\n      \"color=${1:r g b}\",\n      \"outlinecolor${1:r g b}\",\n      \"anchor=${1:name}\",\n      \"action${1:name}\"\n    ],\n    \"\\\\jumplink,\\\\urllink,\\\\javascriptlink,\\\\actionlink,\\\\rawactionlink,\\\\annotation,\\\\openfilelink\": [\n      \"border=${1:number}\",\n      \"color=${1:r g b}\",\n      \"linkcolor=${1:r g b}\",\n      \"dash=${1:numbers}\",\n      \"highlight=${1|none,invert,outline,push|}\",\n      \"pre=${1:code}\",\n      \"post=${1:code}\",\n      \"raw=${1:PDF code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nbaseprt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"np\",\n      \"if\": \"np\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"np{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"np\",\n      \"if\": \"np\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"np[${2:unit}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbp\",\n      \"if\": \"np\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbp{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbaseprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbaseprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbaseposttext\"\n    },\n    {\n      \"name\": \"nbasepretext\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nbaseprt#c\": [\n      \"nosepfour\",\n      \"sepfour\",\n      \"noaddmissingzero\",\n      \"addmissingzero\",\n      \"noaddplus\",\n      \"addplus\",\n      \"noaddplusexponent\",\n      \"addplusexponent\",\n      \"noautolanguage\",\n      \"autolanguage\",\n      \"np\",\n      \"oldcolumntypes\",\n      \"newcolumntypes\",\n      \"boldmath\",\n      \"warning\",\n      \"error\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nbaseprt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nccbbb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bbbb\"\n    },\n    {\n      \"name\": \"bbbm\"\n    },\n    {\n      \"name\": \"bbbc\"\n    },\n    {\n      \"name\": \"bbbn\"\n    },\n    {\n      \"name\": \"bbbd\"\n    },\n    {\n      \"name\": \"bbbo\"\n    },\n    {\n      \"name\": \"bbbe\"\n    },\n    {\n      \"name\": \"bbbp\"\n    },\n    {\n      \"name\": \"bbbf\"\n    },\n    {\n      \"name\": \"bbbq\"\n    },\n    {\n      \"name\": \"bbbg\"\n    },\n    {\n      \"name\": \"bbbr\"\n    },\n    {\n      \"name\": \"bbbh\"\n    },\n    {\n      \"name\": \"bbbs\"\n    },\n    {\n      \"name\": \"bbbi\"\n    },\n    {\n      \"name\": \"bbbz\"\n    },\n    {\n      \"name\": \"bbbk\"\n    },\n    {\n      \"name\": \"bbbl\"\n    },\n    {\n      \"name\": \"bbbzero\"\n    },\n    {\n      \"name\": \"bbbone\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccbiblist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"topsection\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibliststyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"biblist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"biblist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:starting num}]{${1:prototype}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccboxes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jhbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jhbox{${1:prototype}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jhbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"jhbox{${1:prototype}}[${3:pos%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\jhbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jvbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jvbox{${1:prototype}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"jvbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"jvbox{${1:prototype}}[${3:pos%keyvals}]{${2:text}}\",\n        \"keys\": [\n          \"\\\\jvbox,\\\\jparbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jparbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"jparbox{${1:prototype}}{${2:text}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"jparbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"jparbox{${1:prototype}}[${4:pos%keyvals}]{${2:width}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\jvbox,\\\\jparbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addbox{${1:height-adjust%l}}{${2:depth-adjust%l}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbox{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbox[${2:pos}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"picbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"picbox{${1:picture code}}\"\n      }\n    },\n    {\n      \"name\": \"Strutletter\"\n    },\n    {\n      \"name\": \"tstrut\"\n    },\n    {\n      \"name\": \"bstrut\"\n    },\n    {\n      \"name\": \"tbstrut\"\n    },\n    {\n      \"name\": \"Strutstretch\"\n    },\n    {\n      \"name\": \"cbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbox{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"cbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cbox[${2:pos}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"cbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbox*{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"cbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cbox*[${2:pos}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"cboxstyle\"\n    },\n    {\n      \"name\": \"tc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tc{${1:field%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\jhbox\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"s\"\n    ],\n    \"\\\\jvbox,\\\\jparbox\": [\n      \"t\",\n      \"c\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncccropbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cropbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cropbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cropbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cropbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cropbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"cropbox[${2:width}][${3:height}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cropboxsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cropboxsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"croplinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"croplinewidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"croplinelength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"croplinelength{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncccropmark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ncccropbox\"\n    },\n    {\n      \"name\": \"tocenter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cropmark\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cropmark{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}{${5:length}}\"\n      }\n    },\n    {\n      \"name\": \"cropmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"cropmark[${6:fields}]{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}{${5:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccfloats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccboxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"FloatStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FloatStyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"FloatStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FloatStyle[${2:type}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"normalfloatstyle\"\n    },\n    {\n      \"name\": \"minifig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"minifig{${1:width}}{${2:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"minifig\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"minifig[${3:pos%keyvals}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minifig\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"minifig[${3:pos%keyvals}][${4:height}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minifig\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"minifig[${3:pos%keyvals}][${4:height}][${5:inner-pos}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minitabl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"minitabl{${1:width}}{${2:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"minitabl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"minitabl[${3:pos%keyvals}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minitabl\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"minitabl[${3:pos%keyvals}][${4:height}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minitabl\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"minitabl[${3:pos%keyvals}][${4:height}][${5:inner-pos}]{${1:width}}{${2:body%text}}\",\n        \"keys\": [\n          \"\\\\minifig,\\\\minitabl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidefig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidefig{${1:figure%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefig\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidefig[${3:pos%keyvals}]{${1:figure%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidefig\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"sidefig(${3:figwidth})(${4:textwidth}){${1:figure%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefig\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"sidefig[${3:pos%keyvals}](${4:figwidth})(${5:textwidth}){${1:figure%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidefig*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidefig*{${1:figure%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefig*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidefig*[${3:pos%keyvals}]{${1:figure%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidefig*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"sidefig*(${3:figwidth})(${4:textwidth}){${1:figure%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidefig*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"sidefig*[${3:pos%keyvals}](${4:figwidth})(${5:textwidth}){${1:figure%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidetabl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidetabl{${1:table%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidetabl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidetabl[${3:pos%keyvals}]{${1:table%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidetabl\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"sidetabl(${3:tablewidth})(${4:textwidth}){${1:table%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidetabl\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"sidetabl[${3:pos%keyvals}](${4:tablewidth})(${5:textwidth}){${1:table%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidetabl*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidetabl*{${1:table%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidetabl*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sidetabl*[${3:pos%keyvals}]{${1:table%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidetabl*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"sidetabl*(${3:tablewidth})(${4:textwidth}){${1:table%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidetabl*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"sidetabl*[${3:pos%keyvals}](${4:tablewidth})(${5:textwidth}){${1:table%text}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifleftsidefloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifleftsidefloat{${1:left clause}}{${2:right clause}}\"\n      }\n    },\n    {\n      \"name\": \"fig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fig{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fig[${2:placement}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fig(${2:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fig[${2:placement}](${3:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fig*{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fig*[${2:placement}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fig*(${2:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"fig*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fig*[${2:placement}](${3:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabl{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabl[${2:placement}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tabl(${2:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tabl[${2:placement}](${3:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabl*{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabl*[${2:placement}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tabl*(${2:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabl*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tabl*[${2:placement}](${3:width}){${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figs{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"figs[${3:placement}]{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"figs(${3:width1})(${4:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"figs[${3:placement}](${4:width1})(${5:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figs*{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"figs*[${3:placement}]{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"figs*(${3:width1})(${4:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"figs*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"figs*[${3:placement}](${4:width1})(${5:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabls{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabls[${3:placement}]{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tabls(${3:width1})(${4:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"tabls[${3:placement}](${4:width1})(${5:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabls*{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabls*[${3:placement}]{${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tabls*(${3:width1})(${4:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabls*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"tabls*[${3:placement}](${4:width1})(${5:width2}){${1:body1%text}}{${2:body2%text}}\"\n      }\n    },\n    {\n      \"name\": \"newminifloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newminifloat{${1:gen}}{${2:type}}{${3:placement}}{${4:pos}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\minifig,\\\\minitabl\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\sidefig,\\\\sidefig*,\\\\sidetabl,\\\\sidetabl*\": [\n      \"t\",\n      \"c\",\n      \"b\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccfoots.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Footnotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Footnotemark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"Footnotetext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnotetext{${1:mark}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Footnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Footnote{${1:mark}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncchdr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccheadings\"\n    },\n    {\n      \"name\": \"nccfancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lefttitlemark\",\n      \"if\": \"title\"\n    },\n    {\n      \"name\": \"titlemark\",\n      \"if\": \"title\"\n    },\n    {\n      \"name\": \"righttitlemark\",\n      \"if\": \"title\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ncchdr#c\": [\n      \"empty\",\n      \"plain\",\n      \"myheadings\",\n      \"headings\",\n      \"title\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ncchdr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nccheadings.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionmark{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncclatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccdefaults\"\n    },\n    {\n      \"name\": \"dcounter\"\n    },\n    {\n      \"name\": \"desclist\"\n    },\n    {\n      \"name\": \"extdash\"\n    },\n    {\n      \"name\": \"nccmath\"\n    },\n    {\n      \"name\": \"nccsect\"\n    },\n    {\n      \"name\": \"ncctheorems\"\n    },\n    {\n      \"name\": \"nccthm\"\n    },\n    {\n      \"name\": \"nccboxes\"\n    },\n    {\n      \"name\": \"nccfoots\"\n    },\n    {\n      \"name\": \"nccpic\"\n    },\n    {\n      \"name\": \"nccfloats\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acknow\"\n    },\n    {\n      \"name\": \"tg\"\n    },\n    {\n      \"name\": \"arctg\"\n    },\n    {\n      \"name\": \"ctg\"\n    },\n    {\n      \"name\": \"arcctg\"\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"cref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"mop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mop{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"NCC\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ncclatex#c\": [\n      \"russian\",\n      \"T2C\",\n      \"T2B\",\n      \"T2A\",\n      \"small\",\n      \"minimize\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ncclatex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nccmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"intertext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intertext[${2:distance%l}]{${1:word or phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"dmulticolumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dmulticolumn{${1:count}}{${2:preamble}}{${3:formula}}\"\n      }\n    },\n    {\n      \"name\": \"useshortskip\"\n    },\n    {\n      \"name\": \"nr\"\n    },\n    {\n      \"name\": \"nr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nr[${1:dist%l}]\"\n      }\n    },\n    {\n      \"name\": \"nr*\"\n    },\n    {\n      \"name\": \"nr*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nr*[${1:dist%l}]\"\n      }\n    },\n    {\n      \"name\": \"mrel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mrel{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"underrel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"underrel{${1:base}}{${2:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"medmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medmath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"medop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medop{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"medint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medint{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"medintcorr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"medintcorr{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"mfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"mbinom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mbinom{${1:above}}{${2:below}}\"\n      }\n    },\n    {\n      \"name\": \"eq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eq{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"eq*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eq*{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqs{${1:formulas%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqs[${2:dist%l}]{${1:formulas%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqs*{${1:formulas%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqs*[${2:dist%l}]{${1:formulas%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalign{${1:formulas%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqalign*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalign*{${1:formulas%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fleqn\"\n    },\n    {\n      \"name\": \"fleqn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:margin}]\"\n      }\n    },\n    {\n      \"name\": \"ceqn\"\n    },\n    {\n      \"name\": \"darray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"darray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos%keyvals}]{${1:cols}}\",\n        \"keys\": [\n          \"\\\\begin{darray}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"medsize\"\n    },\n    {\n      \"name\": \"mmatrix\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nccmath#c\": [\n      \"mediummath\",\n      \"intlimits\",\n      \"nointlimits\",\n      \"sumlimits\",\n      \"nosumlimits\",\n      \"namelimits\",\n      \"nonamelimits\",\n      \"leqno\",\n      \"reqno\",\n      \"centertags\",\n      \"tbtags\",\n      \"cmex10\",\n      \"fleqn\",\n      \"alignedleftspaceyes\",\n      \"alignedleftspaceno\",\n      \"alignedleftspaceyesifneg\"\n    ],\n    \"\\\\begin{darray}\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nccmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nccparskip.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetParskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetParskip{${1:distance%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"nccboxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ipic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ipic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"draftgraphics\"\n    },\n    {\n      \"name\": \"finalgraphics\"\n    },\n    {\n      \"name\": \"putimage\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"putimage(${2:x},${3:y}){${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"putimage\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"putimage(${3:x},${4:y})[${2:width,height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"putimage\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"putimage(${2:x},${3:y})(${4:xshift},${5:yshift}){${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"putimage\",\n      \"arg\": {\n        \"format\": \"()[](){}\",\n        \"snippet\": \"putimage(${3:x},${4:y})[${2:width,height}](${5:xshift},${6:yshift}){${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nccpic#c\": [\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nccpic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nccrules.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mboxfill\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dashrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dashrule{${1:h-pattern}}{${2:v-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"dashrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dashrule[${3:raise%l}]{${1:h-pattern}}{${2:v-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"dashrulefill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dashrulefill{${1:h-pattern}}{${2:v-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"dashrulefill\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dashrulefill[${3:raise%l}]{${1:h-pattern}}{${2:v-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnoterule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newfootnoterule{${1:prefix}}{${2:rule code}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnoterule\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newfootnoterule{${1:prefix}}[${3:width}]{${2:rule code}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnotedashrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newfootnotedashrule{${1:prefix}}{${2:h-pattern}}{${3:v-pattern}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnotedashrule\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newfootnotedashrule{${1:prefix}}[${4:width}]{${2:h-pattern}}{${3:v-pattern}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dashrulefill\": [\n      \"c\",\n      \"x\",\n      \"s\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccsect.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"afterpackage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"startpart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startpart{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startpart\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startpart{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startpart\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startpart{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startchapter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startchapter{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startchapter\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startchapter{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startchapter\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startchapter{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startsection{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsection\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startsection{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsection\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startsection{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startsubsection{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsection\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startsubsection{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsection\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startsubsection{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startsubsubsection{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startsubsubsection{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startsubsubsection{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startparagraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startparagraph{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startparagraph\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startparagraph{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startparagraph\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startparagraph{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubparagraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startsubparagraph{${1:level}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubparagraph\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"startsubparagraph{${1:level}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"startsubparagraph\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"startsubparagraph{${1:level}}*{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\sectionstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sectionstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sectionstyle[${2:type}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\sectionstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sectiontagsuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectiontagsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontagsuffix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sectiontagsuffix[${2:type}]{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"indentaftersection\"\n    },\n    {\n      \"name\": \"noindentaftersection\"\n    },\n    {\n      \"name\": \"aftersectionvspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftersectionvspace{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"adjustsectionmargins\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"adjustsectionmargins{${1:left skip%l}}{${2:right skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"norunninghead\"\n    },\n    {\n      \"name\": \"runninghead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runninghead{${1:running title%text}}\"\n      }\n    },\n    {\n      \"name\": \"noheadingtag\"\n    },\n    {\n      \"name\": \"headingtag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingtag{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"headingtag*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingtag*{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"skipwritingtoaux\"\n    },\n    {\n      \"name\": \"caption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captionstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionstyle[${2:type}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\captionstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"captiontagstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontagstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\captiontagstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"captiontagstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontagstyle[${2:type}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\captiontagstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"captiontagsuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captiontagsuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"captiontagsuffix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captiontagsuffix[${2:type}]{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionwidth[${2:type}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"SetTOCStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTOCStyle{${1:declarations}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterPrefixStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterPrefixStyle{${1:appearance list}}\"\n      }\n    },\n    {\n      \"name\": \"newplainsectionstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newplainsectionstyle{${1:name%specialDef}}{${2:indent}}{${3:left skip%l}}{${4:right skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"newplainsectionstyle\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"newplainsectionstyle{${1:name%specialDef}}{${2:indent}}[${5:pos}]{${3:left skip%l}}{${4:right skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"newhangsectionstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newhangsectionstyle{${1:name%specialDef}}{${2:min tag width%l}}{${3:left skip%l}}{${4:right skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"newhangsectionstyle\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"newhangsectionstyle{${1:name%specialDef}}{${2:min tag width%l}}[${5:pos}]{${3:left skip%l}}{${4:right skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSection\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareSection{${1:level}}{${2:type}}{${3:prefix}}{${4:beforeskip%l}}{${5:afterskip%l}}{${6:style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSection\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}{}{}\",\n        \"snippet\": \"DeclareSection{${1:level}}{${2:type}}[${7:indent%l}]{${3:prefix}}{${4:beforeskip%l}}{${5:afterskip%l}}{${6:style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSection*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareSection*{${1:level}}{${2:type}}{${3:prefix}}{${4:beforeskip%l}}{${5:afterskip%l}}{${6:style}}\"\n      }\n    },\n    {\n      \"name\": \"bff\"\n    },\n    {\n      \"name\": \"SectionTagSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SectionTagSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"RunningSectionSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RunningSectionSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"norunningsuffix\"\n    },\n    {\n      \"name\": \"CaptionTagSuffix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CaptionTagSuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareTOCEntry{${1:level}}{${2:action}}{${3:prefix}}{${4:prototype}}{${5:style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"DeclareTOCEntry{${1:level}}{${2:action}}{${3:prefix}}{${4:prototype}}{${5:style}}[${6:next}]\"\n      }\n    },\n    {\n      \"name\": \"applystyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"applystyle{${1:text style}}{${2:number style}}\"\n      }\n    },\n    {\n      \"name\": \"NumberlineSuffix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NumberlineSuffix{${1:calc suffix}}{${2:actual suffix}}\"\n      }\n    },\n    {\n      \"name\": \"PnumPrototype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PnumPrototype{${1:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"TOCMarginDrift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TOCMarginDrift{${1:increment%l}}\"\n      }\n    },\n    {\n      \"name\": \"runinsectionskip\"\n    },\n    {\n      \"name\": \"RegisterFloatType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RegisterFloatType{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"beforechapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforechapter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"epigraph{${1:text}}{${2:author}}\"\n      }\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"epigraph[${3:width}]{${1:text}}{${2:author}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphparameters\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"epigraphparameters{${1:style}}{${2:width}}{${3:height}}{${4:author style}}{${5:after code}}\"\n      }\n    },\n    {\n      \"name\": \"epigraphwidth\"\n    },\n    {\n      \"name\": \"StartFromTextArea\"\n    },\n    {\n      \"name\": \"StartFromHeaderArea\"\n    },\n    {\n      \"name\": \"DeclarePart\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclarePart{${1:before}}{${2:after}}{${3:prefix}}{${4:style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCPart\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTOCPart{${1:action}}{${2:prefix}}{${3:prototype}}{${4:style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCPart\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DeclareTOCPart{${1:action}}[${5:afterskip%l}]{${2:prefix}}{${3:prototype}}{${4:style}}\"\n      }\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\sectionstyle#c\": [\n      \"hangindent\",\n      \"hangindent*\",\n      \"parindent\",\n      \"parindent*\",\n      \"hangparindent\",\n      \"hangparindent*\",\n      \"center\",\n      \"centerlast\",\n      \"%sectionstyle\"\n    ],\n    \"\\\\captionstyle#c\": [\n      \"default\",\n      \"para\",\n      \"left\",\n      \"center\",\n      \"right\",\n      \"centerlast\"\n    ],\n    \"\\\\captiontagstyle#c\": [\n      \"para\",\n      \"left\",\n      \"center\",\n      \"right\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccstretch.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"stretchwith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stretchwith{${1:code}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncctheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nccdefaults\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statementname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"statement\"\n    },\n    {\n      \"name\": \"statement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"atheorem\"\n    },\n    {\n      \"name\": \"atheorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"alemma\"\n    },\n    {\n      \"name\": \"alemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"aproposition\"\n    },\n    {\n      \"name\": \"aproposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"acorollary\"\n    },\n    {\n      \"name\": \"acorollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"astatement\"\n    },\n    {\n      \"name\": \"astatement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"adefinition\"\n    },\n    {\n      \"name\": \"adefinition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"anexample\"\n    },\n    {\n      \"name\": \"anexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"aremark\"\n    },\n    {\n      \"name\": \"aremark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Theorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Theorem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Lemma\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Proposition\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Corollary\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Statement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Statement\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Definition\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Example\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"Remark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Remark\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:comment%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nccthm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsgen\"\n    },\n    {\n      \"name\": \"dcounter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qedsymbol\"\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qed*\"\n    },\n    {\n      \"name\": \"qef\"\n    },\n    {\n      \"name\": \"blackqed\",\n      \"if\": \"blackqed\"\n    },\n    {\n      \"name\": \"blackqedsymbol\",\n      \"if\": \"blackqed\"\n    },\n    {\n      \"name\": \"whiteqed\",\n      \"if\": \"whiteqed\"\n    },\n    {\n      \"name\": \"whiteqedsymbol\",\n      \"if\": \"whiteqed\"\n    },\n    {\n      \"name\": \"newtheoremtype\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newtheoremtype{${1:type}}{${2:title style}}{${3:comment style}}{${4:body style}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheoremtype\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewtheoremtype{${1:type}}{${2:title style}}{${3:comment style}}{${4:body style}}\"\n      }\n    },\n    {\n      \"name\": \"liketheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"liketheorem{${1:title%text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"liketheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"liketheorem{${1:title%text}}{${2:number}}[${3:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"liketheorem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liketheorem*{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"liketheorem*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"liketheorem*{${1:title%text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"likeremark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"likeremark{${1:title%text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"likeremark\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"likeremark{${1:title%text}}{${2:number}}[${3:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"likeremark*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"likeremark*{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"likeremark*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"likeremark*{${1:title%text}}[${2:comment%text}]\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newtheorem{${1:envname}}[${3:counter}]{${2:title%text}}[${4:type}]\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:title%text}}[${3:type}]\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtheorem{${1:envname}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtheorem{${1:envname}}[${3:counter}]{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewtheorem{${1:envname}}{${2:title%text}}[${3:type}]\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewtheorem{${1:envname}}[${3:counter}]{${2:title%text}}[${4:type}]\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtheorem*{${1:envname}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewtheorem*{${1:envname}}{${2:title%text}}[${3:type}]\"\n      }\n    },\n    {\n      \"name\": \"TheoremBreakStyle\"\n    },\n    {\n      \"name\": \"TheoremNoBreakStyle\"\n    },\n    {\n      \"name\": \"breakafterheader\"\n    },\n    {\n      \"name\": \"nobreakafterheader\"\n    },\n    {\n      \"name\": \"apar\"\n    },\n    {\n      \"name\": \"apar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"apar[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"TheoremCommentDelimiters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TheoremCommentDelimiters{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"AfterTheoremHeaderChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterTheoremHeaderChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"AfterTheoremHeaderSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterTheoremHeaderSkip{${1:skip cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ProofStyleParameters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProofStyleParameters{${1:style}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"AparStyleParameters\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AparStyleParameters{${1:style}}{${2:prefix}}{${3:suffix}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:of-theorem}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nccthm#c\": [\n      \"whiteqed\",\n      \"blackqed\",\n      \"noindent\",\n      \"indent\",\n      \"nomargin\",\n      \"margin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nccthm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ncctitle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ncctitlepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titleareadefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthorBeforeTitle\"\n    },\n    {\n      \"name\": \"TitleBeforeAuthor\"\n    },\n    {\n      \"name\": \"titlestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlestretch{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlesign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlesign{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlefoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlecomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abstractstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abstractstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"bibindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibindex[${2:style}]{${1:bibindex}}\"\n      }\n    },\n    {\n      \"name\": \"bibindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibindex{${1:bibindex}}\"\n      }\n    },\n    {\n      \"name\": \"copyrighttable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"copyrighttable[${3:style}]{${1:label}}{${2:\\\\item copyright\\\\\\\\ \\\\item copyright ...}}\"\n      }\n    },\n    {\n      \"name\": \"copyrighttable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyrighttable{${1:label}}{${2:\\\\item copyright\\\\\\\\ \\\\item copyright ...}}\"\n      }\n    },\n    {\n      \"name\": \"fulltitle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fulltitle[${3:style}]{${1:authors}}{${2:full title%text}}\"\n      }\n    },\n    {\n      \"name\": \"fulltitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fulltitle{${1:authors}}{${2:full title%text}}\"\n      }\n    },\n    {\n      \"name\": \"makelastpage\"\n    },\n    {\n      \"name\": \"lastpagestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpagestretch{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"lastpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpagestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"lastpagehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpagehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lastpageinfo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lastpageinfo[${4:style}]{${1:designers}}{${2:publishing attributes%text}}{${3:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"lastpageinfo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lastpageinfo{${1:designers}}{${2:publishing attributes%text}}{${3:publisher}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ncctitlepage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textarea\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titlepage*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nchairx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"ntheorem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tensor\"\n    },\n    {\n      \"name\": \"aliascnt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nchairxheader\"\n    },\n    {\n      \"name\": \"nchairxlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nchairxlogo{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"chairxfonts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chairxfonts{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\chairxfonts\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vast\"\n    },\n    {\n      \"name\": \"Vast\"\n    },\n    {\n      \"name\": \"vastl\"\n    },\n    {\n      \"name\": \"vastm\"\n    },\n    {\n      \"name\": \"vastr\"\n    },\n    {\n      \"name\": \"Vastl\"\n    },\n    {\n      \"name\": \"Vastm\"\n    },\n    {\n      \"name\": \"Vastr\"\n    },\n    {\n      \"name\": \"decorate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decorate{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"decorate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"decorate[${3:pre-indices}]{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"deco\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"deco{${1:ul}}{${2:ll}}{${3:arg}}{${4:ur}}{${5:lr}}\"\n      }\n    },\n    {\n      \"name\": \"deco\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"deco[${6:size-cmd}]{${1:ul}}{${2:ll}}{${3:arg}}{${4:ur}}{${5:lr}}\"\n      }\n    },\n    {\n      \"name\": \"script\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"script{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sign\"\n    },\n    {\n      \"name\": \"RE\"\n    },\n    {\n      \"name\": \"IM\"\n    },\n    {\n      \"name\": \"Unit\"\n    },\n    {\n      \"name\": \"const\"\n    },\n    {\n      \"name\": \"canonical\"\n    },\n    {\n      \"name\": \"pt\"\n    },\n    {\n      \"name\": \"at\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"at{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"at\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"at[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Map\"\n    },\n    {\n      \"name\": \"Bij\"\n    },\n    {\n      \"name\": \"argument\"\n    },\n    {\n      \"name\": \"domain\"\n    },\n    {\n      \"name\": \"range\"\n    },\n    {\n      \"name\": \"id\"\n    },\n    {\n      \"name\": \"pr\"\n    },\n    {\n      \"name\": \"inv\"\n    },\n    {\n      \"name\": \"ev\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"graph\"\n    },\n    {\n      \"name\": \"coimage\"\n    },\n    {\n      \"name\": \"coker\"\n    },\n    {\n      \"name\": \"operator\"\n    },\n    {\n      \"name\": \"later\"\n    },\n    {\n      \"name\": \"earlier\"\n    },\n    {\n      \"name\": \"bigplus\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"biprod\"\n    },\n    {\n      \"name\": \"smiley\"\n    },\n    {\n      \"name\": \"frownie\"\n    },\n    {\n      \"name\": \"heart\"\n    },\n    {\n      \"name\": \"field\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"field{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ring{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"group\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"group{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"algebra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algebra{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"module\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"module{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"liealg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liealg{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MC\"\n    },\n    {\n      \"name\": \"gerstenhaber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gerstenhaber{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Pol\"\n    },\n    {\n      \"name\": \"lmult\"\n    },\n    {\n      \"name\": \"rmult\"\n    },\n    {\n      \"name\": \"Lmult\"\n    },\n    {\n      \"name\": \"Rmult\"\n    },\n    {\n      \"name\": \"Center\"\n    },\n    {\n      \"name\": \"ad\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Conj\"\n    },\n    {\n      \"name\": \"acts\"\n    },\n    {\n      \"name\": \"racts\"\n    },\n    {\n      \"name\": \"Char\"\n    },\n    {\n      \"name\": \"modulo\"\n    },\n    {\n      \"name\": \"Clifford\"\n    },\n    {\n      \"name\": \"cClifford\"\n    },\n    {\n      \"name\": \"Der\"\n    },\n    {\n      \"name\": \"Der*\"\n    },\n    {\n      \"name\": \"InnDer\"\n    },\n    {\n      \"name\": \"InnDer*\"\n    },\n    {\n      \"name\": \"OutDer\"\n    },\n    {\n      \"name\": \"OutDer*\"\n    },\n    {\n      \"name\": \"InnAut\"\n    },\n    {\n      \"name\": \"InnAut*\"\n    },\n    {\n      \"name\": \"OutAut\"\n    },\n    {\n      \"name\": \"OutAut*\"\n    },\n    {\n      \"name\": \"formal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"laurent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laurent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sweedler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sweedler{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"algebras\"\n    },\n    {\n      \"name\": \"algebras*\"\n    },\n    {\n      \"name\": \"Algebras\"\n    },\n    {\n      \"name\": \"Algebras*\"\n    },\n    {\n      \"name\": \"reps\"\n    },\n    {\n      \"name\": \"reps*\"\n    },\n    {\n      \"name\": \"Reps\"\n    },\n    {\n      \"name\": \"Reps*\"\n    },\n    {\n      \"name\": \"PoissonAlg\"\n    },\n    {\n      \"name\": \"PoissonAlg*\"\n    },\n    {\n      \"name\": \"modules\"\n    },\n    {\n      \"name\": \"modules*\"\n    },\n    {\n      \"name\": \"Leftmodules\"\n    },\n    {\n      \"name\": \"Rightmodules\"\n    },\n    {\n      \"name\": \"Modules\"\n    },\n    {\n      \"name\": \"Modules\"\n    },\n    {\n      \"name\": \"LeftModules\"\n    },\n    {\n      \"name\": \"RightModules\"\n    },\n    {\n      \"name\": \"Bimodules\"\n    },\n    {\n      \"name\": \"Bimodules*\"\n    },\n    {\n      \"name\": \"Rings\"\n    },\n    {\n      \"name\": \"Groups\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Lattices\"\n    },\n    {\n      \"name\": \"Sets\"\n    },\n    {\n      \"name\": \"Vect\"\n    },\n    {\n      \"name\": \"LieAlgs\"\n    },\n    {\n      \"name\": \"Posets\"\n    },\n    {\n      \"name\": \"Directed\"\n    },\n    {\n      \"name\": \"GSets\"\n    },\n    {\n      \"name\": \"GSets\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GSets[${1:group}]\"\n      }\n    },\n    {\n      \"name\": \"Groupoids\"\n    },\n    {\n      \"name\": \"vol\"\n    },\n    {\n      \"name\": \"complete\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"complete{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ball\"\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supnorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"supnorm[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"supnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"supnorm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"expands\"\n    },\n    {\n      \"name\": \"expands\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"expands[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"std\"\n    },\n    {\n      \"name\": \"Weyl\"\n    },\n    {\n      \"name\": \"Op\"\n    },\n    {\n      \"name\": \"Opstd\"\n    },\n    {\n      \"name\": \"OpWeyl\"\n    },\n    {\n      \"name\": \"spacename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacename{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bounded\"\n    },\n    {\n      \"name\": \"Continuous\"\n    },\n    {\n      \"name\": \"Contbound\"\n    },\n    {\n      \"name\": \"Fun\"\n    },\n    {\n      \"name\": \"Fun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fun[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"Cinfty\"\n    },\n    {\n      \"name\": \"Comega\"\n    },\n    {\n      \"name\": \"Holomorphic\"\n    },\n    {\n      \"name\": \"AntiHolomorphic\"\n    },\n    {\n      \"name\": \"Schwartz\"\n    },\n    {\n      \"name\": \"Riemann\"\n    },\n    {\n      \"name\": \"singsupp\"\n    },\n    {\n      \"name\": \"seminorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seminorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ord\"\n    },\n    {\n      \"name\": \"conv\"\n    },\n    {\n      \"name\": \"extreme\"\n    },\n    {\n      \"name\": \"hilbert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hilbert{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prehilb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prehilb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Adjointable\"\n    },\n    {\n      \"name\": \"Adjointable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Adjointable[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Finite\"\n    },\n    {\n      \"name\": \"Finite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Finite[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Compact\"\n    },\n    {\n      \"name\": \"Compact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Compact[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"opdomain\"\n    },\n    {\n      \"name\": \"spec\"\n    },\n    {\n      \"name\": \"closure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closure{${1:arg}}\"\n      },\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"res\"\n    },\n    {\n      \"name\": \"Res\"\n    },\n    {\n      \"name\": \"specrad\"\n    },\n    {\n      \"name\": \"slim\"\n    },\n    {\n      \"name\": \"wlim\"\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bra[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bra*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ket[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"braket[${3:size-cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ketbra[${3:size-cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Spec\"\n    },\n    {\n      \"name\": \"Rad\"\n    },\n    {\n      \"name\": \"ind\"\n    },\n    {\n      \"name\": \"Measurable\"\n    },\n    {\n      \"name\": \"Meas\"\n    },\n    {\n      \"name\": \"BoundMeas\"\n    },\n    {\n      \"name\": \"Lp\"\n    },\n    {\n      \"name\": \"Lp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Lp[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"Lone\"\n    },\n    {\n      \"name\": \"Ltwo\"\n    },\n    {\n      \"name\": \"Linfty\"\n    },\n    {\n      \"name\": \"Intp\"\n    },\n    {\n      \"name\": \"Intp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Intp[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"Intone\"\n    },\n    {\n      \"name\": \"Inttwo\"\n    },\n    {\n      \"name\": \"Intinfty\"\n    },\n    {\n      \"name\": \"essrange\"\n    },\n    {\n      \"name\": \"esssup\"\n    },\n    {\n      \"name\": \"esssupnorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esssupnorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"esssupnorm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"esssupnorm[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"esssupnorm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esssupnorm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ac\"\n    },\n    {\n      \"name\": \"sing\"\n    },\n    {\n      \"name\": \"indlim\"\n    },\n    {\n      \"name\": \"projlim\"\n    },\n    {\n      \"name\": \"category\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"category{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"categoryname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"categoryname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"functor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"functor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"groupoid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"groupoid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"source\"\n    },\n    {\n      \"name\": \"target\"\n    },\n    {\n      \"name\": \"unit\"\n    },\n    {\n      \"name\": \"opp\"\n    },\n    {\n      \"name\": \"asso\"\n    },\n    {\n      \"name\": \"Hom\"\n    },\n    {\n      \"name\": \"End\"\n    },\n    {\n      \"name\": \"Aut\"\n    },\n    {\n      \"name\": \"Aut*\"\n    },\n    {\n      \"name\": \"Iso\"\n    },\n    {\n      \"name\": \"Iso*\"\n    },\n    {\n      \"name\": \"Obj\"\n    },\n    {\n      \"name\": \"Morph\"\n    },\n    {\n      \"name\": \"colim\"\n    },\n    {\n      \"name\": \"Lie\"\n    },\n    {\n      \"name\": \"Schouten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Schouten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Schouten\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Schouten[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Schouten*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Schouten*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Forms\"\n    },\n    {\n      \"name\": \"ZdR\"\n    },\n    {\n      \"name\": \"BdR\"\n    },\n    {\n      \"name\": \"HdR\"\n    },\n    {\n      \"name\": \"Diffeo\"\n    },\n    {\n      \"name\": \"Diffop\"\n    },\n    {\n      \"name\": \"loc\"\n    },\n    {\n      \"name\": \"germ\"\n    },\n    {\n      \"name\": \"prol\"\n    },\n    {\n      \"name\": \"NRbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NRbracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NRbracket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NRbracket[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NRbracket*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NRbracket*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FNbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FNbracket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FNbracket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FNbracket[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FNbracket*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FNbracket*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Manifolds\"\n    },\n    {\n      \"name\": \"lefttriv\"\n    },\n    {\n      \"name\": \"righttriv\"\n    },\n    {\n      \"name\": \"Gau\"\n    },\n    {\n      \"name\": \"Conn\"\n    },\n    {\n      \"name\": \"ratio\"\n    },\n    {\n      \"name\": \"Parallel\"\n    },\n    {\n      \"name\": \"CE\"\n    },\n    {\n      \"name\": \"HCE\"\n    },\n    {\n      \"name\": \"fund\"\n    },\n    {\n      \"name\": \"Universal\"\n    },\n    {\n      \"name\": \"BCH\"\n    },\n    {\n      \"name\": \"LieGroups\"\n    },\n    {\n      \"name\": \"Principal\"\n    },\n    {\n      \"name\": \"GPrincipal\"\n    },\n    {\n      \"name\": \"Fiber\"\n    },\n    {\n      \"name\": \"FFiber\"\n    },\n    {\n      \"name\": \"FFiber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FFiber[${1:fiber}]\"\n      }\n    },\n    {\n      \"name\": \"Pin\"\n    },\n    {\n      \"name\": \"Spin\"\n    },\n    {\n      \"name\": \"nablaLC\"\n    },\n    {\n      \"name\": \"Laplace\"\n    },\n    {\n      \"name\": \"dAlembert\"\n    },\n    {\n      \"name\": \"feynman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feynman{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dirac\"\n    },\n    {\n      \"name\": \"rotation\"\n    },\n    {\n      \"name\": \"curl\"\n    },\n    {\n      \"name\": \"divergence\"\n    },\n    {\n      \"name\": \"gradient\"\n    },\n    {\n      \"name\": \"Tor\"\n    },\n    {\n      \"name\": \"Ric\"\n    },\n    {\n      \"name\": \"scal\"\n    },\n    {\n      \"name\": \"Riem\"\n    },\n    {\n      \"name\": \"Hessian\"\n    },\n    {\n      \"name\": \"hodge\"\n    },\n    {\n      \"name\": \"Nijenhuis\"\n    },\n    {\n      \"name\": \"del\"\n    },\n    {\n      \"name\": \"delbar\"\n    },\n    {\n      \"name\": \"FS\"\n    },\n    {\n      \"name\": \"Lift\"\n    },\n    {\n      \"name\": \"ver\"\n    },\n    {\n      \"name\": \"hor\"\n    },\n    {\n      \"name\": \"Ver\"\n    },\n    {\n      \"name\": \"Hor\"\n    },\n    {\n      \"name\": \"Sec\"\n    },\n    {\n      \"name\": \"Sec\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sec[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"Secinfty\"\n    },\n    {\n      \"name\": \"HolSec\"\n    },\n    {\n      \"name\": \"SymD\"\n    },\n    {\n      \"name\": \"Densities\"\n    },\n    {\n      \"name\": \"Densities\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Densities[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"MeasurableSections\"\n    },\n    {\n      \"name\": \"IntpSections\"\n    },\n    {\n      \"name\": \"IntpSections\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"IntpSections[${1:sup}]\"\n      }\n    },\n    {\n      \"name\": \"IntegrableSections\"\n    },\n    {\n      \"name\": \"Translation\"\n    },\n    {\n      \"name\": \"frames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frames{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Frames\"\n    },\n    {\n      \"name\": \"FDiff\"\n    },\n    {\n      \"name\": \"Sympl\"\n    },\n    {\n      \"name\": \"Jacobiator\"\n    },\n    {\n      \"name\": \"Jacobiator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Jacobiator[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"Hess\"\n    },\n    {\n      \"name\": \"KKS\"\n    },\n    {\n      \"name\": \"Courant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Courant{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Courant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Courant[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Courant*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Courant*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dorfman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dorfman{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dorfman\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dorfman[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dorfman*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dorfman*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Dir\"\n    },\n    {\n      \"name\": \"Forward\"\n    },\n    {\n      \"name\": \"Backward\"\n    },\n    {\n      \"name\": \"Tangent\"\n    },\n    {\n      \"name\": \"MWreduction\"\n    },\n    {\n      \"name\": \"Mon\"\n    },\n    {\n      \"name\": \"Hol\"\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"codim\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"Trans\"\n    },\n    {\n      \"name\": \"Mat\"\n    },\n    {\n      \"name\": \"SymMat\"\n    },\n    {\n      \"name\": \"ann\"\n    },\n    {\n      \"name\": \"Span\"\n    },\n    {\n      \"name\": \"Span\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Span[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"basis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"basis{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tensor\"\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tensor[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Tensor\"\n    },\n    {\n      \"name\": \"Anti\"\n    },\n    {\n      \"name\": \"Sym\"\n    },\n    {\n      \"name\": \"Symmetrizer\"\n    },\n    {\n      \"name\": \"AntiSymmetrizer\"\n    },\n    {\n      \"name\": \"ins\"\n    },\n    {\n      \"name\": \"jns\"\n    },\n    {\n      \"name\": \"insa\"\n    },\n    {\n      \"name\": \"inss\"\n    },\n    {\n      \"name\": \"degs\"\n    },\n    {\n      \"name\": \"dega\"\n    },\n    {\n      \"name\": \"SP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SP{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SP\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SP[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SP*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SP*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"littlepara\"\n    },\n    {\n      \"name\": \"IP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IP{${1:ul}}{${2:ll}}{${3:arg}}{${4:ur}}{${5:lr}}\"\n      }\n    },\n    {\n      \"name\": \"IP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IP[${6:size-cmd}]{${1:ul}}{${2:ll}}{${3:arg}}{${4:ur}}{${5:lr}}\"\n      }\n    },\n    {\n      \"name\": \"EX\"\n    },\n    {\n      \"name\": \"Var\"\n    },\n    {\n      \"name\": \"Cov\"\n    },\n    {\n      \"name\": \"Cor\"\n    },\n    {\n      \"name\": \"cl\"\n    },\n    {\n      \"name\": \"scl\"\n    },\n    {\n      \"name\": \"interior\"\n    },\n    {\n      \"name\": \"boundary\"\n    },\n    {\n      \"name\": \"supp\"\n    },\n    {\n      \"name\": \"dist\"\n    },\n    {\n      \"name\": \"topology\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topology{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filter{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"sheaf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sheaf{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Sections\"\n    },\n    {\n      \"name\": \"HOM\"\n    },\n    {\n      \"name\": \"etale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etale{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"etale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"etale[${2:size-cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"etale*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"etale*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"topological\"\n    },\n    {\n      \"name\": \"Topological\"\n    },\n    {\n      \"name\": \"Sheaves\"\n    },\n    {\n      \"name\": \"PreSheaves\"\n    },\n    {\n      \"name\": \"Etale\"\n    },\n    {\n      \"name\": \"claimautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjectureautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conventionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerciseautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maintheoremautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notationautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thmautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnclaim\"\n    },\n    {\n      \"name\": \"nnclaim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nncorollary\"\n    },\n    {\n      \"name\": \"nncorollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nndefinition\"\n    },\n    {\n      \"name\": \"nndefinition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnlemma\"\n    },\n    {\n      \"name\": \"nnlemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnproposition\"\n    },\n    {\n      \"name\": \"nnproposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nntheorem\"\n    },\n    {\n      \"name\": \"nntheorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnconjecture\"\n    },\n    {\n      \"name\": \"nnconjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"convention\"\n    },\n    {\n      \"name\": \"convention\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnconvention\"\n    },\n    {\n      \"name\": \"nnconvention\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnexample\"\n    },\n    {\n      \"name\": \"nnexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnnotation\"\n    },\n    {\n      \"name\": \"nnnotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnquestion\"\n    },\n    {\n      \"name\": \"nnquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnremark\"\n    },\n    {\n      \"name\": \"nnremark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnexercise\"\n    },\n    {\n      \"name\": \"nnexercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"maintheorem\"\n    },\n    {\n      \"name\": \"maintheorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"nnmaintheorem\"\n    },\n    {\n      \"name\": \"nnmaintheorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"subproof\"\n    },\n    {\n      \"name\": \"subproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"hint\"\n    },\n    {\n      \"name\": \"claimlist\"\n    },\n    {\n      \"name\": \"claimlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"conjecturelist\"\n    },\n    {\n      \"name\": \"conjecturelist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"conventionlist\"\n    },\n    {\n      \"name\": \"conventionlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"corollarylist\"\n    },\n    {\n      \"name\": \"corollarylist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definitionlist\"\n    },\n    {\n      \"name\": \"definitionlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examplelist\"\n    },\n    {\n      \"name\": \"examplelist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"exerciselist\"\n    },\n    {\n      \"name\": \"exerciselist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lemmalist\"\n    },\n    {\n      \"name\": \"lemmalist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maintheoremlist\"\n    },\n    {\n      \"name\": \"maintheoremlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notationlist\"\n    },\n    {\n      \"name\": \"notationlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"propositionlist\"\n    },\n    {\n      \"name\": \"propositionlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"questionlist\"\n    },\n    {\n      \"name\": \"questionlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"remarklist\"\n    },\n    {\n      \"name\": \"remarklist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremlist\"\n    },\n    {\n      \"name\": \"theoremlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prooflist\"\n    },\n    {\n      \"name\": \"prooflist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cptenum\"\n    },\n    {\n      \"name\": \"cptenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cptitem\"\n    },\n    {\n      \"name\": \"cptitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cptdesc\"\n    },\n    {\n      \"name\": \"cptdesc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nchairx#c\": [\n      \"noMath\"\n    ],\n    \"\\\\begin{claimlist}#c,\\\\begin{conjecturelist}#c,\\\\begin{conventionlist}#c,\\\\begin{corollarylist}#c,\\\\begin{definitionlist}#c,\\\\begin{examplelist}#c,\\\\begin{exerciselist}#c,\\\\begin{lemmalist}#c,\\\\begin{maintheoremlist}#c,\\\\begin{notationlist}#c,\\\\begin{propositionlist}#c,\\\\begin{questionlist}#c,\\\\begin{remarklist}#c,\\\\begin{theoremlist}#c,\\\\begin{prooflist}#c,\\\\begin{cptenum}#c,\\\\begin{cptitem}#c,\\\\begin{cptdesc}#c\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ],\n    \"\\\\chairxfonts\": [\n      \"algebrafont=${1:math font command}\",\n      \"basisfont=${1:math font command}\",\n      \"categoryfont=${1:math font command}\",\n      \"categorynamefont=${1:math font command}\",\n      \"fieldfont=${1:math font command}\",\n      \"filterfont=${1:math font command}\",\n      \"functorfont=${1:math font command}\",\n      \"groupfont=${1:math font command}\",\n      \"groupoidfont=${1:math font command}\",\n      \"gerstenhaberfont=${1:math font command}\",\n      \"hilbertfont=${1:math font command}\",\n      \"liealgfont=${1:math font command}\",\n      \"modulefont=${1:math font command}\",\n      \"prehilbfont=${1:math font command}\",\n      \"operatorfont=${1:math font command}\",\n      \"ringfont=${1:math font command}\",\n      \"scriptfont=${1:math font command}\",\n      \"sheaffont=${1:math font command}\",\n      \"spacefont=${1:math font command}\",\n      \"topologyfont=${1:math font command}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nchairx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/needspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Needspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Needspace*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Needspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"needspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"needspace{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/neo-euler.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"unusual\": true,\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"muphbar\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"mbfwp\"\n    },\n    {\n      \"name\": \"mbfdotlessi\"\n    },\n    {\n      \"name\": \"mbfdotlessj\"\n    },\n    {\n      \"name\": \"mbfhbar\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqslantless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lesseqqslantgtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtreqqslantless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nleqqslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngeqqslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"varpropto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicksim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsmile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"Diamond\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/neo-euler#c\": [\n      \"CharacterVariant={${1:glyph num list}}\",\n      \"StylisticSet=${1|5,6|}\",\n      \"Style=${1|smaller,subsetneq|}\",\n      \"Scale=${2|${1:factor},MatchUppercase|}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/neo-euler#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nestquot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nlq\"\n    },\n    {\n      \"name\": \"nrq\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nestquot#c\": [\n      \"german\",\n      \"french\",\n      \"guillemet\",\n      \"dq\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nestquot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newalg.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TO\"\n    },\n    {\n      \"name\": \"EACH\"\n    },\n    {\n      \"name\": \"IN\"\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"item{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"DEFAULT\"\n    },\n    {\n      \"name\": \"CALL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CALL{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"ERROR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ERROR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"algkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"algkey{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RETURN\"\n    },\n    {\n      \"name\": \"NIL\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"algorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:vars%formula}}\"\n      }\n    },\n    {\n      \"name\": \"IF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"FOR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"WHILE\"\n    },\n    {\n      \"name\": \"REPEAT\"\n    },\n    {\n      \"name\": \"SWITCH\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newclude.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"include\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"include[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"include\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"include[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"include*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"include*[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"include*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"include*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"AtBeginInclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginInclude{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndInclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndInclude{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeSurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultIncludeSurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeall\"\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeEnv{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IncludeEnv[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"IncludeEnv[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}[${5:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IncludeEnv*{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IncludeEnv*[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeEnv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"IncludeEnv*[${4:prehook}]{${1:file}}{${2:envname}}{${3:instance}}[${5:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includedoc[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includedoc\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedoc[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includedoc*[${2:prehook}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includedoc*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedoc*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedocskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedocskip[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"includedocskip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"includedocskip*[${2:prehook}]{${1:file}}[${3:posthook}]\"\n      }\n    },\n    {\n      \"name\": \"IfAllowed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfAllowed{${1:part name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParentName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareFormattingPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFormattingPackage{${1:package name}}\"\n      }\n    },\n    {\n      \"name\": \"ifSkipPreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkipPreambletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkipPreamblefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Disable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Disable{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"DisableAll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NextAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DynamicAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StaticAux\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StaticAux{${1:number of streams}}\"\n      }\n    },\n    {\n      \"name\": \"InitWheel\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InitWheel{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DefWheel\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefWheel{${1:cmd}}{${2:spokes}}\"\n      }\n    },\n    {\n      \"name\": \"Roll\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Roll{${1:wheel}}\"\n      }\n    },\n    {\n      \"name\": \"Top\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Top{${1:wheel}}\"\n      }\n    },\n    {\n      \"name\": \"AddSpokes\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddSpokes{${1:wheel}}{${2:spokes}}\"\n      }\n    },\n    {\n      \"name\": \"IfTop\",\n      \"if\": \"allocate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTop{${1:wheel}}{${2:spoke}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newclude#c\": [\n      \"simple\",\n      \"tag\",\n      \"allocate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newclude#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newcomputermodern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textprosgegrammeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textprosgegrammeni{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\"\n    },\n    {\n      \"name\": \"textivbce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textivbce{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ivbce\"\n    },\n    {\n      \"name\": \"textvibce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvibce{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vibce\"\n    },\n    {\n      \"name\": \"textivbcealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textivbcealt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ivbcealt\"\n    },\n    {\n      \"name\": \"textipa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textipa{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ipatext\"\n    },\n    {\n      \"name\": \"textoldipa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoldipa{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oldipatext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textuncial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuncial{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uncial\"\n    },\n    {\n      \"name\": \"atticonequarter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hermionianfifty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonehalf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianfifty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonedrachma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianonehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianthreehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfifty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epidaurianfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezenianfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfiftythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"carystianfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivetalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"naxianfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attictentalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianonethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfiftytalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianfivethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonehundredtalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delphicfivemnas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivehundredtalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stratianfiftymnas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonethousandtalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekonehalfsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivethousandtalents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekonehalfsignalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivestaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektwothirdssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attictenstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekthreequarterssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfiftystaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekyearsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonehundredstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektalentsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfivehundredstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekdrachmasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticonethousandstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekobolsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attictenthousandstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektwoobolssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticfiftythousandstaters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekthreeobolssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attictenmnas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekfourobolssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heraleumoneplethron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekfiveobolssign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekmetretessign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ermionianone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekkyathosbasesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epidauriantwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeklytrasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespiantwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekounkiasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrenaictwodrachmas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekxestessign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epidauriantwodrachmas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekartabesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezenianfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekarourasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezenianten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekgrammasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezeniantenalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektryblionbasesign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hermionianten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekzerosign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"messenianten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekonequartersign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeksinusoidsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thespianthirty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekindictionsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezenianfifty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomismasign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"troezenianfiftyalt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chemalpha\"\n    },\n    {\n      \"name\": \"chembeta\"\n    },\n    {\n      \"name\": \"chemgamma\"\n    },\n    {\n      \"name\": \"chemdelta\"\n    },\n    {\n      \"name\": \"chemepsilon\"\n    },\n    {\n      \"name\": \"chemzeta\"\n    },\n    {\n      \"name\": \"chemeta\"\n    },\n    {\n      \"name\": \"chemtheta\"\n    },\n    {\n      \"name\": \"chemiota\"\n    },\n    {\n      \"name\": \"chemkappa\"\n    },\n    {\n      \"name\": \"chemlambda\"\n    },\n    {\n      \"name\": \"chemmu\"\n    },\n    {\n      \"name\": \"chemnu\"\n    },\n    {\n      \"name\": \"chemxi\"\n    },\n    {\n      \"name\": \"chemomicron\"\n    },\n    {\n      \"name\": \"chempi\"\n    },\n    {\n      \"name\": \"chemrho\"\n    },\n    {\n      \"name\": \"chemrhoalt\"\n    },\n    {\n      \"name\": \"chemsigma\"\n    },\n    {\n      \"name\": \"chemsigmaalt\"\n    },\n    {\n      \"name\": \"chemtau\"\n    },\n    {\n      \"name\": \"chemupsilon\"\n    },\n    {\n      \"name\": \"chemphi\"\n    },\n    {\n      \"name\": \"chemchi\"\n    },\n    {\n      \"name\": \"chempsi\"\n    },\n    {\n      \"name\": \"chemomega\"\n    },\n    {\n      \"name\": \"chemAlpha\"\n    },\n    {\n      \"name\": \"chemBeta\"\n    },\n    {\n      \"name\": \"chemGamma\"\n    },\n    {\n      \"name\": \"chemDelta\"\n    },\n    {\n      \"name\": \"chemEpsilon\"\n    },\n    {\n      \"name\": \"chemZeta\"\n    },\n    {\n      \"name\": \"chemEta\"\n    },\n    {\n      \"name\": \"chemTheta\"\n    },\n    {\n      \"name\": \"chemIota\"\n    },\n    {\n      \"name\": \"chemKappa\"\n    },\n    {\n      \"name\": \"chemLambda\"\n    },\n    {\n      \"name\": \"chemMu\"\n    },\n    {\n      \"name\": \"chemNu\"\n    },\n    {\n      \"name\": \"chemXi\"\n    },\n    {\n      \"name\": \"chemOmicron\"\n    },\n    {\n      \"name\": \"chemPi\"\n    },\n    {\n      \"name\": \"chemRho\"\n    },\n    {\n      \"name\": \"chemSigma\"\n    },\n    {\n      \"name\": \"chemTau\"\n    },\n    {\n      \"name\": \"chemUpsilon\"\n    },\n    {\n      \"name\": \"chemPhi\"\n    },\n    {\n      \"name\": \"chemChi\"\n    },\n    {\n      \"name\": \"chemPsi\"\n    },\n    {\n      \"name\": \"chemOmega\"\n    },\n    {\n      \"name\": \"aegeanseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanseparatordot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeancheckmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeaneight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantwenty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthirty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfourty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfifty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansixty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanseventy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeaneighty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanninety\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanonehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantwohundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthreehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfourhundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfivehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansixhundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansevenhundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeaneighthundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanninehundred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanonethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantwothousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthreethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfourthousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfivethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansixthousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanseventhousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeaneightthousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanninethousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantenthousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeantwentythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthirtythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfourtythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanfiftythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansixtythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanseventythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeaneightythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanninetythousand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanweightbaseunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanweightfirstsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanweightsecondsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanweightthirdsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanweightfourthsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeandrymeasurefirstsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanliquidmeasurefirstsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeansecondsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aegeanthirdsubunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accurrent\",\n      \"detail\": \"⏦\",\n      \"doc\": \"\\\\ac (wasysym), ac current\"\n    },\n    {\n      \"name\": \"acidfree\",\n      \"detail\": \"♾\",\n      \"doc\": \"Permanent paper sign\"\n    },\n    {\n      \"name\": \"acwcirclearrow\",\n      \"detail\": \"⥀\",\n      \"doc\": \"Anticlockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"acwleftarcarrow\",\n      \"detail\": \"⤹\",\n      \"doc\": \"Left-side arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwoverarcarrow\",\n      \"detail\": \"⤺\",\n      \"doc\": \"Top arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwunderarcarrow\",\n      \"detail\": \"⤻\",\n      \"doc\": \"Bottom arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"angdnr\",\n      \"detail\": \"⦟\",\n      \"doc\": \"Acute angle\"\n    },\n    {\n      \"name\": \"angles\",\n      \"detail\": \"⦞\",\n      \"doc\": \"Angle with s inside\"\n    },\n    {\n      \"name\": \"angleubar\",\n      \"detail\": \"⦤\",\n      \"doc\": \"Angle with underbar\"\n    },\n    {\n      \"name\": \"annuity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annuity{${1:arg}}\"\n      },\n      \"detail\": \"x⃧\",\n      \"doc\": \"Combining annuity symbol\"\n    },\n    {\n      \"name\": \"APLboxquestion\",\n      \"detail\": \"⍰\",\n      \"doc\": \"Apl functional symbol quad question\"\n    },\n    {\n      \"name\": \"APLboxupcaret\",\n      \"detail\": \"⍓\",\n      \"doc\": \"Apl functional symbol quad up caret\"\n    },\n    {\n      \"name\": \"APLnotbackslash\",\n      \"detail\": \"⍀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Apl functional symbol backslash bar\"\n    },\n    {\n      \"name\": \"APLnotslash\",\n      \"detail\": \"⌿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Apl functional symbol slash bar, solidus, bar through\"\n    },\n    {\n      \"name\": \"approxeqq\",\n      \"detail\": \"⩰\",\n      \"doc\": \"Approximately equal or equal to\"\n    },\n    {\n      \"name\": \"arabichad\"\n    },\n    {\n      \"name\": \"arabicmaj\"\n    },\n    {\n      \"name\": \"asteq\",\n      \"detail\": \"⩮\",\n      \"doc\": \"Equals with asterisk\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"bagmember\",\n      \"detail\": \"⋿\",\n      \"doc\": \"\\\\mathsf{e}, bag membership\"\n    },\n    {\n      \"name\": \"barcap\",\n      \"detail\": \"⩃\",\n      \"doc\": \"Intersection with overbar\"\n    },\n    {\n      \"name\": \"barcup\",\n      \"detail\": \"⩂\",\n      \"doc\": \"Union with overbar\"\n    },\n    {\n      \"name\": \"bardownharpoonleft\",\n      \"detail\": \"⥡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"bardownharpoonright\",\n      \"detail\": \"⥝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\"\n    },\n    {\n      \"name\": \"barleftharpoondown\",\n      \"detail\": \"⥖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"barleftharpoonup\",\n      \"detail\": \"⥒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"barrightarrowdiamond\",\n      \"detail\": \"⤠\",\n      \"doc\": \"Rightwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"barrightharpoondown\",\n      \"detail\": \"⥟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"barrightharpoonup\",\n      \"detail\": \"⥛ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"baruparrow\",\n      \"detail\": \"⤒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards arrow to bar\"\n    },\n    {\n      \"name\": \"barupharpoonleft\",\n      \"detail\": \"⥘ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"barupharpoonright\",\n      \"detail\": \"⥔ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"Barv\",\n      \"detail\": \"⫧\",\n      \"doc\": \"Short down tack with overbar\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"bbrktbrk\",\n      \"detail\": \"⎶\",\n      \"doc\": \"Bottom square bracket over top square bracket\"\n    },\n    {\n      \"name\": \"bdtriplevdash\",\n      \"detail\": \"┆\",\n      \"doc\": \"Doubly broken vert\"\n    },\n    {\n      \"name\": \"benzenr\",\n      \"detail\": \"⏣\",\n      \"doc\": \"Benzene ring with circle\"\n    },\n    {\n      \"name\": \"biginterleave\",\n      \"detail\": \"⫼ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Large triple vertical bar operator\"\n    },\n    {\n      \"name\": \"bigslopedvee\",\n      \"detail\": \"⩗\",\n      \"doc\": \"Sloping large or\"\n    },\n    {\n      \"name\": \"bigslopedwedge\",\n      \"detail\": \"⩘\",\n      \"doc\": \"Sloping large and\"\n    },\n    {\n      \"name\": \"bigtalloblong\",\n      \"detail\": \"⫿\",\n      \"doc\": \"N-ary white vertical bar\"\n    },\n    {\n      \"name\": \"bigtriangleleft\",\n      \"detail\": \"⨞\",\n      \"doc\": \"Large left triangle operator\"\n    },\n    {\n      \"name\": \"bigwhitestar\",\n      \"detail\": \"☆\",\n      \"doc\": \"Star, open\"\n    },\n    {\n      \"name\": \"blackcircledownarrow\",\n      \"detail\": \"⧭\",\n      \"doc\": \"Black circle with down arrow\"\n    },\n    {\n      \"name\": \"blackcircledrightdot\",\n      \"detail\": \"⚈\",\n      \"doc\": \"Black circle with white dot right\"\n    },\n    {\n      \"name\": \"blackcircledtwodots\",\n      \"detail\": \"⚉\",\n      \"doc\": \"Black circle with two white dots\"\n    },\n    {\n      \"name\": \"blackcircleulquadwhite\",\n      \"detail\": \"◕\",\n      \"doc\": \"Circle with all but upper left quadrant black\"\n    },\n    {\n      \"name\": \"blackdiamonddownarrow\",\n      \"detail\": \"⧪\",\n      \"doc\": \"Black diamond with down arrow\"\n    },\n    {\n      \"name\": \"blackhourglass\",\n      \"detail\": \"⧗\",\n      \"doc\": \"Black hourglass\"\n    },\n    {\n      \"name\": \"blackinwhitediamond\",\n      \"detail\": \"◈\",\n      \"doc\": \"White diamond containing black small diamond\"\n    },\n    {\n      \"name\": \"blackinwhitesquare\",\n      \"detail\": \"▣\",\n      \"doc\": \"White square containing black small square\"\n    },\n    {\n      \"name\": \"blacklefthalfcircle\",\n      \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Left half black circle\"\n    },\n    {\n      \"name\": \"blackpointerleft\",\n      \"detail\": \"◄\",\n      \"doc\": \"Black left-pointing pointer\"\n    },\n    {\n      \"name\": \"blackpointerright\",\n      \"detail\": \"►\",\n      \"doc\": \"Black right-pointing pointer\"\n    },\n    {\n      \"name\": \"blackrighthalfcircle\",\n      \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Right half black circle\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"blkhorzoval\",\n      \"detail\": \"⬬\",\n      \"doc\": \"Black horizontal ellipse\"\n    },\n    {\n      \"name\": \"blkvertoval\",\n      \"detail\": \"⬮\",\n      \"doc\": \"Black vertical ellipse\"\n    },\n    {\n      \"name\": \"blocklefthalf\",\n      \"detail\": \"▌\",\n      \"doc\": \"Left half block\"\n    },\n    {\n      \"name\": \"blocklowhalf\",\n      \"detail\": \"▄\",\n      \"doc\": \"Lower half block\"\n    },\n    {\n      \"name\": \"blockrighthalf\",\n      \"detail\": \"▐\",\n      \"doc\": \"Right half block\"\n    },\n    {\n      \"name\": \"blockuphalf\",\n      \"detail\": \"▀\",\n      \"doc\": \"Upper half block\"\n    },\n    {\n      \"name\": \"bNot\",\n      \"detail\": \"⫭\",\n      \"doc\": \"Reversed double stroke not sign\"\n    },\n    {\n      \"name\": \"botsemicircle\",\n      \"detail\": \"◡\",\n      \"doc\": \"Lower half circle\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxcircle\",\n      \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared small circle\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxonbox\",\n      \"detail\": \"⧉\",\n      \"doc\": \"Two joined squares\"\n    },\n    {\n      \"name\": \"bsimilarleftarrow\",\n      \"detail\": \"⭁\",\n      \"doc\": \"Reverse tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"bsimilarrightarrow\",\n      \"detail\": \"⭇\",\n      \"doc\": \"Reverse tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"bsolhsub\",\n      \"detail\": \"⟈\",\n      \"doc\": \"Reverse solidus preceding subset\"\n    },\n    {\n      \"name\": \"btimes\",\n      \"detail\": \"⨲\",\n      \"doc\": \"Semidirect product with bottom closed\"\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"bumpeqq\",\n      \"detail\": \"⪮\",\n      \"doc\": \"Equals sign with bumpy above\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"capbarcup\",\n      \"detail\": \"⩉\",\n      \"doc\": \"Intersection above bar above union\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capovercup\",\n      \"detail\": \"⩇\",\n      \"doc\": \"Intersection above union\"\n    },\n    {\n      \"name\": \"capwedge\",\n      \"detail\": \"⩄\",\n      \"doc\": \"Intersection with logical and\"\n    },\n    {\n      \"name\": \"caretinsert\",\n      \"detail\": \"‸\",\n      \"doc\": \"Caret (insertion mark)\"\n    },\n    {\n      \"name\": \"ccwundercurvearrow\",\n      \"detail\": \"⤿\",\n      \"doc\": \"Lower left semicircular anticlockwise arrow\"\n    },\n    {\n      \"name\": \"cirbot\",\n      \"detail\": \"⟟\",\n      \"doc\": \"Up tack with circle above\"\n    },\n    {\n      \"name\": \"circlebottomhalfblack\",\n      \"detail\": \"◒\",\n      \"doc\": \"Circle, filled bottom half\"\n    },\n    {\n      \"name\": \"circledbullet\",\n      \"detail\": \"⦿\",\n      \"doc\": \"Circled bullet\"\n    },\n    {\n      \"name\": \"circledownarrow\",\n      \"detail\": \"⧬\",\n      \"doc\": \"White circle with down arrow\"\n    },\n    {\n      \"name\": \"circledparallel\",\n      \"detail\": \"⦷\",\n      \"doc\": \"Circled parallel\"\n    },\n    {\n      \"name\": \"circledrightdot\",\n      \"detail\": \"⚆\",\n      \"doc\": \"White circle with dot right\"\n    },\n    {\n      \"name\": \"circledstar\",\n      \"detail\": \"✪\",\n      \"doc\": \"Circled white star\"\n    },\n    {\n      \"name\": \"circledtwodots\",\n      \"detail\": \"⚇\",\n      \"doc\": \"White circle with two dots\"\n    },\n    {\n      \"name\": \"circledvert\",\n      \"detail\": \"⦶\",\n      \"doc\": \"Circled vertical bar\"\n    },\n    {\n      \"name\": \"circledwhitebullet\",\n      \"detail\": \"⦾\",\n      \"doc\": \"Circled white bullet\"\n    },\n    {\n      \"name\": \"circlehbar\",\n      \"detail\": \"⦵\",\n      \"doc\": \"Circle with horizontal bar\"\n    },\n    {\n      \"name\": \"circlelefthalfblack\",\n      \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled left half [harvey ball]\"\n    },\n    {\n      \"name\": \"circlellquad\",\n      \"detail\": \"◵\",\n      \"doc\": \"White circle with lower left quadrant\"\n    },\n    {\n      \"name\": \"circlelrquad\",\n      \"detail\": \"◶\",\n      \"doc\": \"White circle with lower right quadrant\"\n    },\n    {\n      \"name\": \"circleonleftarrow\",\n      \"detail\": \"⬰\",\n      \"doc\": \"Left arrow with small circle\"\n    },\n    {\n      \"name\": \"circleonrightarrow\",\n      \"detail\": \"⇴\",\n      \"doc\": \"Right arrow with small circle\"\n    },\n    {\n      \"name\": \"circlerighthalfblack\",\n      \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled right half\"\n    },\n    {\n      \"name\": \"circletophalfblack\",\n      \"detail\": \"◓\",\n      \"doc\": \"Circle, filled top half\"\n    },\n    {\n      \"name\": \"circleulquad\",\n      \"detail\": \"◴\",\n      \"doc\": \"White circle with upper left quadrant\"\n    },\n    {\n      \"name\": \"circleurquad\",\n      \"detail\": \"◷\",\n      \"doc\": \"White circle with upper right quadrant\"\n    },\n    {\n      \"name\": \"circleurquadblack\",\n      \"detail\": \"◔\",\n      \"doc\": \"Circle with upper right quadrant black\"\n    },\n    {\n      \"name\": \"circlevertfill\",\n      \"detail\": \"◍\",\n      \"doc\": \"Circle with vertical fill\"\n    },\n    {\n      \"name\": \"cirE\",\n      \"detail\": \"⧃\",\n      \"doc\": \"Circle with two horizontal strokes to the right\"\n    },\n    {\n      \"name\": \"cirfnint\",\n      \"detail\": \"⨐\",\n      \"doc\": \"Circulation function\"\n    },\n    {\n      \"name\": \"cirmid\",\n      \"detail\": \"⫯\",\n      \"doc\": \"Vertical line with circle above\"\n    },\n    {\n      \"name\": \"cirscir\",\n      \"detail\": \"⧂\",\n      \"doc\": \"Circle with small circle to the right\"\n    },\n    {\n      \"name\": \"closedvarcap\",\n      \"detail\": \"⩍\",\n      \"doc\": \"Closed intersection with serifs\"\n    },\n    {\n      \"name\": \"closedvarcup\",\n      \"detail\": \"⩌\",\n      \"doc\": \"Closed union with serifs\"\n    },\n    {\n      \"name\": \"closedvarcupsmashprod\",\n      \"detail\": \"⩐\",\n      \"doc\": \"Closed union with serifs and smash product\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"commaminus\",\n      \"detail\": \"⨩\",\n      \"doc\": \"Minus sign with comma above\"\n    },\n    {\n      \"name\": \"congdot\",\n      \"detail\": \"⩭\",\n      \"doc\": \"Congruent with dot above\"\n    },\n    {\n      \"name\": \"conictaper\",\n      \"detail\": \"⌲\",\n      \"doc\": \"Conical taper\"\n    },\n    {\n      \"name\": \"conjquant\",\n      \"detail\": \"⨇\",\n      \"doc\": \"Two logical and operator\"\n    },\n    {\n      \"name\": \"convolution\"\n    },\n    {\n      \"name\": \"csub\",\n      \"detail\": \"⫏\",\n      \"doc\": \"Closed subset\"\n    },\n    {\n      \"name\": \"csube\",\n      \"detail\": \"⫑\",\n      \"doc\": \"Closed subset or equal to\"\n    },\n    {\n      \"name\": \"csup\",\n      \"detail\": \"⫐\",\n      \"doc\": \"Closed superset\"\n    },\n    {\n      \"name\": \"csupe\",\n      \"detail\": \"⫒\",\n      \"doc\": \"Closed superset or equal to\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cupbarcap\",\n      \"detail\": \"⩈\",\n      \"doc\": \"Union above bar above intersection\"\n    },\n    {\n      \"name\": \"cupovercap\",\n      \"detail\": \"⩆\",\n      \"doc\": \"Union above intersection\"\n    },\n    {\n      \"name\": \"cupvee\",\n      \"detail\": \"⩅\",\n      \"doc\": \"Union with logical or\"\n    },\n    {\n      \"name\": \"curvearrowleftplus\",\n      \"detail\": \"⤽\",\n      \"doc\": \"Top arc anticlockwise arrow with plus\"\n    },\n    {\n      \"name\": \"curvearrowrightminus\",\n      \"detail\": \"⤼\",\n      \"doc\": \"Top arc clockwise arrow with minus\"\n    },\n    {\n      \"name\": \"cwcirclearrow\",\n      \"detail\": \"⥁\",\n      \"doc\": \"Clockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"cwrightarcarrow\",\n      \"detail\": \"⤸\",\n      \"doc\": \"Right-side arc clockwise arrow\"\n    },\n    {\n      \"name\": \"cwundercurvearrow\",\n      \"detail\": \"⤾\",\n      \"doc\": \"Lower right semicircular clockwise arrow\"\n    },\n    {\n      \"name\": \"danger\",\n      \"detail\": \"☡\",\n      \"doc\": \"Caution sign, dangerous bend\"\n    },\n    {\n      \"name\": \"dashleftharpoondown\",\n      \"detail\": \"⥫ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashrightharpoondown\",\n      \"detail\": \"⥭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"dbkarrow\"\n    },\n    {\n      \"name\": \"ddotseq\",\n      \"detail\": \"⩷\",\n      \"doc\": \"Equals sign with two dots above and two dots below\"\n    },\n    {\n      \"name\": \"DDownarrow\",\n      \"detail\": \"⟱\",\n      \"doc\": \"Downwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"diamondbotblack\",\n      \"detail\": \"⬙\",\n      \"doc\": \"Diamond with bottom half black\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"diamondleftarrow\",\n      \"detail\": \"⤝\",\n      \"doc\": \"Leftwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftarrowbar\",\n      \"detail\": \"⤟\",\n      \"doc\": \"Leftwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftblack\",\n      \"detail\": \"⬖\",\n      \"doc\": \"Diamond with left half black\"\n    },\n    {\n      \"name\": \"diamondrightblack\",\n      \"detail\": \"⬗\",\n      \"doc\": \"Diamond with right half black\"\n    },\n    {\n      \"name\": \"diamondtopblack\",\n      \"detail\": \"⬘\",\n      \"doc\": \"Diamond with top half black\"\n    },\n    {\n      \"name\": \"dicei\",\n      \"detail\": \"⚀\",\n      \"doc\": \"Die face-1\"\n    },\n    {\n      \"name\": \"diceii\",\n      \"detail\": \"⚁\",\n      \"doc\": \"Die face-2\"\n    },\n    {\n      \"name\": \"diceiii\",\n      \"detail\": \"⚂\",\n      \"doc\": \"Die face-3\"\n    },\n    {\n      \"name\": \"diceiv\",\n      \"detail\": \"⚃\",\n      \"doc\": \"Die face-4\"\n    },\n    {\n      \"name\": \"dicev\",\n      \"detail\": \"⚄\",\n      \"doc\": \"Die face-5\"\n    },\n    {\n      \"name\": \"dicevi\",\n      \"detail\": \"⚅\",\n      \"doc\": \"Die face-6\"\n    },\n    {\n      \"name\": \"dingasterisk\",\n      \"detail\": \"✽\",\n      \"doc\": \"Heavy teardrop-spoked asterisk\"\n    },\n    {\n      \"name\": \"disin\",\n      \"detail\": \"⋲\",\n      \"doc\": \"Element of with long horizontal stroke\"\n    },\n    {\n      \"name\": \"disjquant\",\n      \"detail\": \"⨈\",\n      \"doc\": \"Two logical or operator\"\n    },\n    {\n      \"name\": \"dotequiv\",\n      \"detail\": \"⩧\",\n      \"doc\": \"Identical with dot above\"\n    },\n    {\n      \"name\": \"dotsim\",\n      \"detail\": \"⩪\",\n      \"doc\": \"Tilde operator with dot above\"\n    },\n    {\n      \"name\": \"dottedcircle\",\n      \"detail\": \"◌\",\n      \"doc\": \"Dotted circle\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarvee\",\n      \"detail\": \"⩢\",\n      \"doc\": \"Logical or with double overbar\"\n    },\n    {\n      \"name\": \"doubleplus\",\n      \"detail\": \"⧺\",\n      \"doc\": \"Double plus\"\n    },\n    {\n      \"name\": \"downarrowbar\",\n      \"detail\": \"⤓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards arrow to bar\"\n    },\n    {\n      \"name\": \"downarrowbarred\",\n      \"detail\": \"⤈\",\n      \"doc\": \"Downwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downfishtail\",\n      \"detail\": \"⥿\",\n      \"doc\": \"Down fish tail\"\n    },\n    {\n      \"name\": \"downharpoonleftbar\",\n      \"detail\": \"⥙ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"downharpoonrightbar\",\n      \"detail\": \"⥕ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"downharpoonsleftright\",\n      \"detail\": \"⥥ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"downtriangleleftblack\",\n      \"detail\": \"⧨\",\n      \"doc\": \"Down-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"downtrianglerightblack\",\n      \"detail\": \"⧩\",\n      \"doc\": \"Down-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"draftingarrow\",\n      \"detail\": \"➛\",\n      \"doc\": \"Right arrow with bold head (drafting)\"\n    },\n    {\n      \"name\": \"drbkarrow\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"dsol\",\n      \"detail\": \"⧶\",\n      \"doc\": \"Solidus with overbar\"\n    },\n    {\n      \"name\": \"dsub\",\n      \"detail\": \"⩤ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\ndres (oz), domain antirestriction\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"egsdot\",\n      \"detail\": \"⪘\",\n      \"doc\": \"Slanted equal to or greater-than with dot inside\"\n    },\n    {\n      \"name\": \"elinters\",\n      \"detail\": \"⏧\",\n      \"doc\": \"Electrical intersection\"\n    },\n    {\n      \"name\": \"elsdot\",\n      \"detail\": \"⪗\",\n      \"doc\": \"Slanted equal to or less-than with dot inside\"\n    },\n    {\n      \"name\": \"emptysetoarr\",\n      \"detail\": \"⦳\",\n      \"doc\": \"Empty set with right arrow above\"\n    },\n    {\n      \"name\": \"emptysetoarrl\",\n      \"detail\": \"⦴\",\n      \"doc\": \"Empty set with left arrow above\"\n    },\n    {\n      \"name\": \"emptysetobar\",\n      \"detail\": \"⦱\",\n      \"doc\": \"Empty set with overbar\"\n    },\n    {\n      \"name\": \"emptysetocirc\",\n      \"detail\": \"⦲\",\n      \"doc\": \"Empty set with small circle above\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"eparsl\",\n      \"detail\": \"⧣\",\n      \"doc\": \"Equals sign and slanted parallel\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqeq\",\n      \"detail\": \"⩵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"==, two consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqeqeq\",\n      \"detail\": \"⩶ (\\\"wrisym\\\" command)\",\n      \"doc\": \"===, three consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqqgtr\",\n      \"detail\": \"⪚\",\n      \"doc\": \"Double-line equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqless\",\n      \"detail\": \"⪙\",\n      \"doc\": \"Double-line equal to or less-than\"\n    },\n    {\n      \"name\": \"eqqplus\",\n      \"detail\": \"⩱\",\n      \"doc\": \"Equals sign above plus sign\"\n    },\n    {\n      \"name\": \"eqqsim\",\n      \"detail\": \"⩳\",\n      \"doc\": \"Equals sign above tilde operator\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalleftarrow\",\n      \"detail\": \"⭀\",\n      \"doc\": \"Equals sign above leftwards arrow\"\n    },\n    {\n      \"name\": \"equalrightarrow\",\n      \"detail\": \"⥱\",\n      \"doc\": \"Equals sign above rightwards arrow\"\n    },\n    {\n      \"name\": \"equivDD\",\n      \"detail\": \"⩸\",\n      \"doc\": \"Equivalent with four dots above\"\n    },\n    {\n      \"name\": \"equivVert\",\n      \"detail\": \"⩨\",\n      \"doc\": \"Triple horizontal bar with double vertical stroke\"\n    },\n    {\n      \"name\": \"equivVvert\",\n      \"detail\": \"⩩\",\n      \"doc\": \"Triple horizontal bar with triple vertical stroke\"\n    },\n    {\n      \"name\": \"eqvparsl\",\n      \"detail\": \"⧥\",\n      \"doc\": \"Identical to and slanted parallel\"\n    },\n    {\n      \"name\": \"errbarblackcircle\",\n      \"detail\": \"⧳\",\n      \"doc\": \"Error-barred black circle\"\n    },\n    {\n      \"name\": \"errbarblackdiamond\",\n      \"detail\": \"⧱\",\n      \"doc\": \"Error-barred black diamond\"\n    },\n    {\n      \"name\": \"errbarblacksquare\",\n      \"detail\": \"⧯\",\n      \"doc\": \"Error-barred black square\"\n    },\n    {\n      \"name\": \"errbarcircle\",\n      \"detail\": \"⧲\",\n      \"doc\": \"Error-barred white circle\"\n    },\n    {\n      \"name\": \"errbardiamond\",\n      \"detail\": \"⧰\",\n      \"doc\": \"Error-barred white diamond\"\n    },\n    {\n      \"name\": \"errbarsquare\",\n      \"detail\": \"⧮\",\n      \"doc\": \"Error-barred white square\"\n    },\n    {\n      \"name\": \"Exclam\",\n      \"detail\": \"‼\",\n      \"doc\": \"!!, double exclamation mark\"\n    },\n    {\n      \"name\": \"fbowtie\",\n      \"detail\": \"⧓\",\n      \"doc\": \"Black bowtie\"\n    },\n    {\n      \"name\": \"fcmp\",\n      \"detail\": \"⨾ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\comp (oz), relational composition\"\n    },\n    {\n      \"name\": \"fdiagovnearrow\",\n      \"detail\": \"⤯\",\n      \"doc\": \"Falling diagonal crossing north east arrow\"\n    },\n    {\n      \"name\": \"fdiagovrdiag\",\n      \"detail\": \"⤬\",\n      \"doc\": \"Falling diagonal crossing rising diagonal\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fltns\",\n      \"detail\": \"⏥\",\n      \"doc\": \"Flatness\"\n    },\n    {\n      \"name\": \"forks\",\n      \"detail\": \"⫝̸\",\n      \"doc\": \"Forking\"\n    },\n    {\n      \"name\": \"forksnot\",\n      \"detail\": \"⫝\",\n      \"doc\": \"Nonforking\"\n    },\n    {\n      \"name\": \"forkv\",\n      \"detail\": \"⫙\",\n      \"doc\": \"Element of opening downwards\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourvdots\",\n      \"detail\": \"⦙\",\n      \"doc\": \"Dotted fence\"\n    },\n    {\n      \"name\": \"fullouterjoin\",\n      \"detail\": \"⟗\",\n      \"doc\": \"Full outer join\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gescc\",\n      \"detail\": \"⪩\",\n      \"doc\": \"Greater-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"gesdot\",\n      \"detail\": \"⪀\",\n      \"doc\": \"Greater-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"gesdoto\",\n      \"detail\": \"⪂\",\n      \"doc\": \"Greater-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"gesdotol\",\n      \"detail\": \"⪄\",\n      \"doc\": \"Greater-than or slanted equal to with dot above left\"\n    },\n    {\n      \"name\": \"gesles\",\n      \"detail\": \"⪔\",\n      \"doc\": \"Greater-than above slanted equal above less-than above slanted equal\"\n    },\n    {\n      \"name\": \"gggnest\",\n      \"detail\": \"⫸\",\n      \"doc\": \"Triple nested greater-than\"\n    },\n    {\n      \"name\": \"gla\",\n      \"detail\": \"⪥\",\n      \"doc\": \"Greater-than beside less-than\"\n    },\n    {\n      \"name\": \"glE\",\n      \"detail\": \"⪒\",\n      \"doc\": \"Greater-than above less-than above double-line equal\"\n    },\n    {\n      \"name\": \"gleichstark\",\n      \"detail\": \"⧦\",\n      \"doc\": \"Gleich stark\"\n    },\n    {\n      \"name\": \"glj\",\n      \"detail\": \"⪤\",\n      \"doc\": \"Greater-than overlapping less-than\"\n    },\n    {\n      \"name\": \"gsime\",\n      \"detail\": \"⪎\",\n      \"doc\": \"Greater-than above similar or equal\"\n    },\n    {\n      \"name\": \"gsiml\",\n      \"detail\": \"⪐\",\n      \"doc\": \"Greater-than above similar above less-than\"\n    },\n    {\n      \"name\": \"Gt\",\n      \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n    },\n    {\n      \"name\": \"gtcc\",\n      \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Greater-than closed by curve\"\n    },\n    {\n      \"name\": \"gtcir\",\n      \"detail\": \"⩺\",\n      \"doc\": \"Greater-than with circle inside\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"gtquest\",\n      \"detail\": \"⩼\",\n      \"doc\": \"Greater-than with question mark above\"\n    },\n    {\n      \"name\": \"gtrarr\",\n      \"detail\": \"⥸\",\n      \"doc\": \"Greater-than above rightwards arrow\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"hatapprox\",\n      \"detail\": \"⩯\",\n      \"doc\": \"Almost equal to with circumflex accent\"\n    },\n    {\n      \"name\": \"Hermaphrodite\",\n      \"detail\": \"⚥\",\n      \"doc\": \"Male and female sign\"\n    },\n    {\n      \"name\": \"hexagon\",\n      \"detail\": \"⎔\",\n      \"doc\": \"Horizontal benzene ring [hexagon flat open]\"\n    },\n    {\n      \"name\": \"hexagonblack\",\n      \"detail\": \"⬣\",\n      \"doc\": \"Horizontal black hexagon\"\n    },\n    {\n      \"name\": \"hknearrow\",\n      \"detail\": \"⤤\",\n      \"doc\": \"North east arrow with hook\"\n    },\n    {\n      \"name\": \"hknwarrow\",\n      \"detail\": \"⤣\",\n      \"doc\": \"North west arrow with hook\"\n    },\n    {\n      \"name\": \"hksearrow\"\n    },\n    {\n      \"name\": \"hkswarrow\"\n    },\n    {\n      \"name\": \"hourglass\",\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"hyphenbullet\",\n      \"detail\": \"⁃\",\n      \"doc\": \"Rectangle, filled (hyphen bullet)\"\n    },\n    {\n      \"name\": \"hzigzag\",\n      \"detail\": \"〰\",\n      \"doc\": \"Zigzag\"\n    },\n    {\n      \"name\": \"iinfin\",\n      \"detail\": \"⧜\",\n      \"doc\": \"Incomplete infinity\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intBar\",\n      \"detail\": \"⨎\",\n      \"doc\": \"Integral with double stroke\"\n    },\n    {\n      \"name\": \"intcap\",\n      \"detail\": \"⨙\",\n      \"doc\": \"Integral with intersection\"\n    },\n    {\n      \"name\": \"intcup\",\n      \"detail\": \"⨚\",\n      \"doc\": \"Integral with union\"\n    },\n    {\n      \"name\": \"interleave\",\n      \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Triple vertical bar binary relation\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"intlarhk\",\n      \"detail\": \"⨗\",\n      \"doc\": \"Integral with leftwards arrow with hook\"\n    },\n    {\n      \"name\": \"intprod\",\n      \"detail\": \"⨼\",\n      \"doc\": \"Interior product\"\n    },\n    {\n      \"name\": \"intprodr\",\n      \"detail\": \"⨽\",\n      \"doc\": \"Righthand interior product\"\n    },\n    {\n      \"name\": \"intx\",\n      \"detail\": \"⨘\",\n      \"doc\": \"Integral with times sign\"\n    },\n    {\n      \"name\": \"inversebullet\",\n      \"detail\": \"◘\",\n      \"doc\": \"Inverse bullet\"\n    },\n    {\n      \"name\": \"inversewhitecircle\",\n      \"detail\": \"◙\",\n      \"doc\": \"Inverse white circle\"\n    },\n    {\n      \"name\": \"invwhitelowerhalfcircle\",\n      \"detail\": \"◛\",\n      \"doc\": \"Lower half inverse white circle\"\n    },\n    {\n      \"name\": \"invwhiteupperhalfcircle\",\n      \"detail\": \"◚\",\n      \"doc\": \"Upper half inverse white circle\"\n    },\n    {\n      \"name\": \"isindot\",\n      \"detail\": \"⋵\",\n      \"doc\": \"Element of with dot above\"\n    },\n    {\n      \"name\": \"isinE\",\n      \"detail\": \"⋹\",\n      \"doc\": \"Element of with two horizontal strokes\"\n    },\n    {\n      \"name\": \"isinobar\",\n      \"detail\": \"⋷\",\n      \"doc\": \"Small element of with overbar\"\n    },\n    {\n      \"name\": \"isins\",\n      \"detail\": \"⋴\",\n      \"doc\": \"Small element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"isinvb\",\n      \"detail\": \"⋸\",\n      \"doc\": \"Element of with underbar\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"langledot\",\n      \"detail\": \"⦑\",\n      \"doc\": \"Left angle bracket with dot\"\n    },\n    {\n      \"name\": \"laplac\",\n      \"detail\": \"⧠\",\n      \"doc\": \"Square with contoured outline\"\n    },\n    {\n      \"name\": \"lat\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"late\",\n      \"detail\": \"⪭\",\n      \"doc\": \"Larger than or equal to\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"lblkbrbrak\",\n      \"detail\": \"⦗\",\n      \"doc\": \"Left black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lBrace\",\n      \"detail\": \"⦃\",\n      \"doc\": \"Left white curly bracket\"\n    },\n    {\n      \"name\": \"lbracklltick\",\n      \"detail\": \"⦏\",\n      \"doc\": \"Left square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"lbrackubar\",\n      \"detail\": \"⦋\",\n      \"doc\": \"Left square bracket with underbar\"\n    },\n    {\n      \"name\": \"lbrackultick\",\n      \"detail\": \"⦍\",\n      \"doc\": \"Left square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"lbrbrak\",\n      \"detail\": \"〔\",\n      \"doc\": \"Left broken bracket\"\n    },\n    {\n      \"name\": \"Lbrbrak\",\n      \"detail\": \"〘\",\n      \"doc\": \"Left white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lcurvyangle\",\n      \"detail\": \"⧼\",\n      \"doc\": \"Left pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"leftarrowapprox\",\n      \"detail\": \"⭊\",\n      \"doc\": \"Leftwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbackapprox\",\n      \"detail\": \"⭂\",\n      \"doc\": \"Leftwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbsimilar\",\n      \"detail\": \"⭋\",\n      \"doc\": \"Leftwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowless\",\n      \"detail\": \"⥷\",\n      \"doc\": \"Leftwards arrow through less-than\"\n    },\n    {\n      \"name\": \"leftarrowonoplus\",\n      \"detail\": \"⬲\",\n      \"doc\": \"Left arrow with circled plus\"\n    },\n    {\n      \"name\": \"leftarrowplus\",\n      \"detail\": \"⥆\",\n      \"doc\": \"Leftwards arrow with plus below\"\n    },\n    {\n      \"name\": \"leftarrowshortrightarrow\",\n      \"detail\": \"⥃\",\n      \"doc\": \"Leftwards arrow above short rightwards arrow\"\n    },\n    {\n      \"name\": \"leftarrowsimilar\",\n      \"detail\": \"⥳\",\n      \"doc\": \"Leftwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowsubset\",\n      \"detail\": \"⥺\",\n      \"doc\": \"Leftwards arrow through subset\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftarrowx\",\n      \"detail\": \"⬾\",\n      \"doc\": \"Leftwards arrow through x\"\n    },\n    {\n      \"name\": \"leftbkarrow\",\n      \"detail\": \"⤌\",\n      \"doc\": \"Leftwards double dash arrow\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftdbkarrow\",\n      \"detail\": \"⤎\",\n      \"doc\": \"Leftwards triple dash arrow\"\n    },\n    {\n      \"name\": \"leftdbltail\",\n      \"detail\": \"⤛\",\n      \"doc\": \"Leftwards double arrow-tail\"\n    },\n    {\n      \"name\": \"leftdotarrow\",\n      \"detail\": \"⬸\",\n      \"doc\": \"Leftwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leftfishtail\",\n      \"detail\": \"⥼ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left fish tail\"\n    },\n    {\n      \"name\": \"leftharpoondownbar\",\n      \"detail\": \"⥞ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"leftharpoonsupdown\",\n      \"detail\": \"⥢ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftharpoonupbar\",\n      \"detail\": \"⥚ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"leftharpoonupdash\",\n      \"detail\": \"⥪ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"leftouterjoin\",\n      \"detail\": \"⟕\",\n      \"doc\": \"Left outer join\"\n    },\n    {\n      \"name\": \"leftrightarrowcircle\",\n      \"detail\": \"⥈\",\n      \"doc\": \"Left right arrow through small circle\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoondowndown\",\n      \"detail\": \"⥐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb down right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonsdown\",\n      \"detail\": \"⥧\",\n      \"doc\": \"Leftwards harpoon with barb down above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftrightharpoonsup\",\n      \"detail\": \"⥦\",\n      \"doc\": \"Leftwards harpoon with barb up above rightwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonupup\",\n      \"detail\": \"⥎ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb up right barb up harpoon\"\n    },\n    {\n      \"name\": \"lefttail\",\n      \"detail\": \"⤙\",\n      \"doc\": \"Leftwards arrow-tail\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lescc\",\n      \"detail\": \"⪨\",\n      \"doc\": \"Less-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"lesdot\",\n      \"detail\": \"⩿\",\n      \"doc\": \"Less-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"lesdoto\",\n      \"detail\": \"⪁\",\n      \"doc\": \"Less-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"lesdotor\",\n      \"detail\": \"⪃\",\n      \"doc\": \"Less-than or slanted equal to with dot above right\"\n    },\n    {\n      \"name\": \"lesges\",\n      \"detail\": \"⪓\",\n      \"doc\": \"Less-than above slanted equal above greater-than above slanted equal\"\n    },\n    {\n      \"name\": \"lfbowtie\",\n      \"detail\": \"⧑\",\n      \"doc\": \"Left black bowtie\"\n    },\n    {\n      \"name\": \"lftimes\",\n      \"detail\": \"⧔\",\n      \"doc\": \"Left black times\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgE\",\n      \"detail\": \"⪑\",\n      \"doc\": \"Less-than above greater-than above double-line equal\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"llangle\",\n      \"detail\": \"⦉ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation left binding bracket\"\n    },\n    {\n      \"name\": \"llarc\",\n      \"detail\": \"◟\",\n      \"doc\": \"Lower left quadrant circular arc\"\n    },\n    {\n      \"name\": \"llblacktriangle\",\n      \"detail\": \"◣\",\n      \"doc\": \"Lower left triangle, filled\"\n    },\n    {\n      \"name\": \"LLeftarrow\",\n      \"detail\": \"⭅\",\n      \"doc\": \"Leftwards quadruple arrow\"\n    },\n    {\n      \"name\": \"lllnest\",\n      \"detail\": \"⫷\",\n      \"doc\": \"Triple nested less-than\"\n    },\n    {\n      \"name\": \"llparenthesis\",\n      \"detail\": \"⦇ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n    },\n    {\n      \"name\": \"lltriangle\",\n      \"detail\": \"◺\",\n      \"doc\": \"Lower left triangle\"\n    },\n    {\n      \"name\": \"longdivision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longdivision{${1:arg}}\"\n      },\n      \"detail\": \"⟌\",\n      \"doc\": \"Long division\"\n    },\n    {\n      \"name\": \"lowint\",\n      \"detail\": \"⨜\",\n      \"doc\": \"Integral with underbar\"\n    },\n    {\n      \"name\": \"lParen\",\n      \"detail\": \"⦅ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Left white parenthesis\"\n    },\n    {\n      \"name\": \"Lparengtr\",\n      \"detail\": \"⦕\",\n      \"doc\": \"Double left arc greater-than bracket\"\n    },\n    {\n      \"name\": \"lparenless\",\n      \"detail\": \"⦓\",\n      \"doc\": \"Left arc less-than bracket\"\n    },\n    {\n      \"name\": \"lrarc\",\n      \"detail\": \"◞\",\n      \"doc\": \"Lower right quadrant circular arc\"\n    },\n    {\n      \"name\": \"lrblacktriangle\",\n      \"detail\": \"◢\",\n      \"doc\": \"Lower right triangle, filled\"\n    },\n    {\n      \"name\": \"lrtriangle\",\n      \"detail\": \"◿\",\n      \"doc\": \"Lower right triangle\"\n    },\n    {\n      \"name\": \"lrtriangleeq\",\n      \"detail\": \"⧡\",\n      \"doc\": \"Increases as\"\n    },\n    {\n      \"name\": \"lsime\",\n      \"detail\": \"⪍\",\n      \"doc\": \"Less-than above similar or equal\"\n    },\n    {\n      \"name\": \"lsimg\",\n      \"detail\": \"⪏\",\n      \"doc\": \"Less-than above similar above greater-than\"\n    },\n    {\n      \"name\": \"lsqhook\",\n      \"detail\": \"⫍\",\n      \"doc\": \"Square left open box operator\"\n    },\n    {\n      \"name\": \"Lt\",\n      \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n    },\n    {\n      \"name\": \"ltcc\",\n      \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Less-than closed by curve\"\n    },\n    {\n      \"name\": \"ltcir\",\n      \"detail\": \"⩹\",\n      \"doc\": \"Less-than with circle inside\"\n    },\n    {\n      \"name\": \"ltlarr\",\n      \"detail\": \"⥶\",\n      \"doc\": \"Less-than above leftwards arrow\"\n    },\n    {\n      \"name\": \"ltquest\",\n      \"detail\": \"⩻\",\n      \"doc\": \"Less-than with question mark above\"\n    },\n    {\n      \"name\": \"ltrivb\",\n      \"detail\": \"⧏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left triangle beside vertical bar\"\n    },\n    {\n      \"name\": \"lvboxline\",\n      \"detail\": \"⎸\",\n      \"doc\": \"Left vertical box line\"\n    },\n    {\n      \"name\": \"lvzigzag\",\n      \"detail\": \"⧘\",\n      \"doc\": \"Left wiggly fence\"\n    },\n    {\n      \"name\": \"Lvzigzag\",\n      \"detail\": \"⧚\",\n      \"doc\": \"Left double wiggly fence\"\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"mbfDigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟊\",\n      \"doc\": \"Mathematical bold capital digamma\"\n    },\n    {\n      \"name\": \"mbfdigamma\",\n      \"unusual\": true,\n      \"detail\": \"𝟋\",\n      \"doc\": \"Mathematical bold small digamma\"\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"measangledltosw\",\n      \"detail\": \"⦯\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and down\"\n    },\n    {\n      \"name\": \"measangledrtose\",\n      \"detail\": \"⦮\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and down\"\n    },\n    {\n      \"name\": \"measangleldtosw\",\n      \"detail\": \"⦫\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and left\"\n    },\n    {\n      \"name\": \"measanglelutonw\",\n      \"detail\": \"⦩\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and left\"\n    },\n    {\n      \"name\": \"measanglerdtose\",\n      \"detail\": \"⦪\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and right\"\n    },\n    {\n      \"name\": \"measanglerutone\",\n      \"detail\": \"⦨\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and right\"\n    },\n    {\n      \"name\": \"measangleultonw\",\n      \"detail\": \"⦭\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and up\"\n    },\n    {\n      \"name\": \"measangleurtone\",\n      \"detail\": \"⦬\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and up\"\n    },\n    {\n      \"name\": \"measuredangleleft\",\n      \"detail\": \"⦛\",\n      \"doc\": \"Measured angle opening left\"\n    },\n    {\n      \"name\": \"medblackstar\",\n      \"detail\": \"⭑\",\n      \"doc\": \"Black medium star\"\n    },\n    {\n      \"name\": \"medwhitestar\",\n      \"detail\": \"⭐\",\n      \"doc\": \"White medium star\"\n    },\n    {\n      \"name\": \"midbarvee\",\n      \"detail\": \"⩝\",\n      \"doc\": \"Logical or with horizontal dash\"\n    },\n    {\n      \"name\": \"midbarwedge\",\n      \"detail\": \"⩜\",\n      \"doc\": \"Ogical and with horizontal dash\"\n    },\n    {\n      \"name\": \"midcir\",\n      \"detail\": \"⫰\",\n      \"doc\": \"Vertical line with circle below\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minusfdots\",\n      \"detail\": \"⨫\",\n      \"doc\": \"Minus sign with falling dots\"\n    },\n    {\n      \"name\": \"minusrdots\",\n      \"detail\": \"⨬\",\n      \"doc\": \"Minus sign with rising dots\"\n    },\n    {\n      \"name\": \"mitsansAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanschi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanseta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanskappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanslambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanspi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanspsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanssigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanstau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanstheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsansZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitsanszeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mlcp\",\n      \"detail\": \"⫛\",\n      \"doc\": \"Transversal intersection\"\n    },\n    {\n      \"name\": \"modtwosum\",\n      \"detail\": \"⨊\",\n      \"doc\": \"Modulo two sum\"\n    },\n    {\n      \"name\": \"msansAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanschi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanseta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanskappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanslambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanspi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanspsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanssigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanstau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanstheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msansZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msanszeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    },\n    {\n      \"name\": \"neovnwarrow\",\n      \"detail\": \"⤱\",\n      \"doc\": \"North east arrow crossing north west arrow\"\n    },\n    {\n      \"name\": \"neovsearrow\",\n      \"detail\": \"⤮\",\n      \"doc\": \"North east arrow crossing south east arrow\"\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"neuter\",\n      \"detail\": \"⚲\",\n      \"doc\": \"Neuter\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhpar\",\n      \"detail\": \"⫲\",\n      \"doc\": \"Parallel with horizontal stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhVvert\",\n      \"detail\": \"⫵\",\n      \"doc\": \"Triple vertical bar with horizontal stroke\"\n    },\n    {\n      \"name\": \"niobar\",\n      \"detail\": \"⋾\",\n      \"doc\": \"Small contains with overbar\"\n    },\n    {\n      \"name\": \"nis\",\n      \"detail\": \"⋼\",\n      \"doc\": \"Small contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"nisd\",\n      \"detail\": \"⋺\",\n      \"doc\": \"Contains with long horizontal stroke\"\n    },\n    {\n      \"name\": \"nleftleftarrows\"\n    },\n    {\n      \"name\": \"Not\",\n      \"detail\": \"⫬\",\n      \"doc\": \"Double stroke not sign\"\n    },\n    {\n      \"name\": \"npolint\",\n      \"detail\": \"⨔\",\n      \"doc\": \"Line integration not including the pole\"\n    },\n    {\n      \"name\": \"nrightrightarrows\"\n    },\n    {\n      \"name\": \"nvinfty\",\n      \"detail\": \"⧞\",\n      \"doc\": \"Infinity negated with vertical bar\"\n    },\n    {\n      \"name\": \"nvleftarrow\",\n      \"detail\": \"⇷\",\n      \"doc\": \"Leftwards arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvLeftarrow\",\n      \"detail\": \"⤂\",\n      \"doc\": \"Leftwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftarrowtail\",\n      \"detail\": \"⬹\",\n      \"doc\": \"Leftwards arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrowtail\",\n      \"detail\": \"⬺\",\n      \"doc\": \"Leftwards arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftrightarrow\",\n      \"detail\": \"⇹\",\n      \"doc\": \"Left right arrow with vertical stroke, partial relation\"\n    },\n    {\n      \"name\": \"nVleftrightarrow\",\n      \"detail\": \"⇼\",\n      \"doc\": \"Left right arrow with double vertical stroke, finite relation\"\n    },\n    {\n      \"name\": \"nvLeftrightarrow\",\n      \"detail\": \"⤄\",\n      \"doc\": \"Left right double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrow\",\n      \"detail\": \"⇸ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with vertical stroke, partial function\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"nvRightarrow\",\n      \"detail\": \"⤃\",\n      \"doc\": \"Rightwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrowtail\",\n      \"detail\": \"⤔ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with vertical stroke, partial injection\"\n    },\n    {\n      \"name\": \"nVrightarrowtail\",\n      \"detail\": \"⤕ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with double vertical stroke, finite injection\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrow\",\n      \"detail\": \"⬴\",\n      \"doc\": \"Leftwards two-headed arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrow\",\n      \"detail\": \"⬵\",\n      \"doc\": \"Leftwards two-headed arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrowtail\",\n      \"detail\": \"⬼\",\n      \"doc\": \"Leftwards two-headed arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrowtail\",\n      \"detail\": \"⬽\",\n      \"doc\": \"Leftwards two-headed arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrow\",\n      \"detail\": \"⤀ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\psurj (oz), rightwards two-headed arrow with vertical stroke, partial surjection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrow\",\n      \"detail\": \"⤁\",\n      \"doc\": \"Rightwards two-headed arrow with double vertical stroke, finite surjection\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrowtail\",\n      \"detail\": \"⤗\",\n      \"doc\": \"Rightwards two-headed arrow with tail with vertical stroke, surjective injection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrowtail\",\n      \"detail\": \"⤘\",\n      \"doc\": \"Rightwards two-headed arrow with tail with double vertical stroke, finite surjective injection\"\n    },\n    {\n      \"name\": \"nwovnearrow\",\n      \"detail\": \"⤲\",\n      \"doc\": \"North west arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"obar\",\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"obot\",\n      \"detail\": \"⦺\",\n      \"doc\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocommatopright{${1:arg}}\"\n      },\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"odiv\",\n      \"detail\": \"⨸\",\n      \"doc\": \"Circled division sign\"\n    },\n    {\n      \"name\": \"odotslashdot\",\n      \"detail\": \"⦼\",\n      \"doc\": \"Circled anticlockwise-rotated division sign\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"olcross\",\n      \"detail\": \"⦻\",\n      \"doc\": \"Circle with superimposed x\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"operp\",\n      \"detail\": \"⦹\",\n      \"doc\": \"Circled perpendicular\"\n    },\n    {\n      \"name\": \"opluslhrim\",\n      \"detail\": \"⨭\",\n      \"doc\": \"Plus sign in left half circle\"\n    },\n    {\n      \"name\": \"oplusrhrim\",\n      \"detail\": \"⨮\",\n      \"doc\": \"Plus sign in right half circle\"\n    },\n    {\n      \"name\": \"Otimes\",\n      \"detail\": \"⨷\",\n      \"doc\": \"Multiplication sign in double circle\"\n    },\n    {\n      \"name\": \"otimeshat\",\n      \"detail\": \"⨶\",\n      \"doc\": \"Circled multiplication sign with circumflex accent\"\n    },\n    {\n      \"name\": \"otimeslhrim\",\n      \"detail\": \"⨴\",\n      \"doc\": \"Multiplication sign in left half circle\"\n    },\n    {\n      \"name\": \"otimesrhrim\",\n      \"detail\": \"⨵\",\n      \"doc\": \"Multiplication sign in right half circle\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"parallelogram\",\n      \"detail\": \"▱\",\n      \"doc\": \"Parallelogram, open\"\n    },\n    {\n      \"name\": \"parallelogramblack\",\n      \"detail\": \"▰\",\n      \"doc\": \"Black parallelogram\"\n    },\n    {\n      \"name\": \"parsim\",\n      \"detail\": \"⫳\",\n      \"doc\": \"Parallel with tilde operator\"\n    },\n    {\n      \"name\": \"partialmeetcontraction\",\n      \"detail\": \"⪣\",\n      \"doc\": \"Double less-than with underbar\"\n    },\n    {\n      \"name\": \"pentagon\",\n      \"detail\": \"⬠\",\n      \"doc\": \"White pentagon\"\n    },\n    {\n      \"name\": \"pentagonblack\",\n      \"detail\": \"⬟\",\n      \"doc\": \"Black pentagon\"\n    },\n    {\n      \"name\": \"perps\",\n      \"detail\": \"⫡\",\n      \"doc\": \"Perpendicular with s\"\n    },\n    {\n      \"name\": \"plusdot\",\n      \"detail\": \"⨥\",\n      \"doc\": \"Plus sign with dot below\"\n    },\n    {\n      \"name\": \"pluseqq\",\n      \"detail\": \"⩲\",\n      \"doc\": \"Plus sign above equals sign\"\n    },\n    {\n      \"name\": \"plushat\",\n      \"detail\": \"⨣\",\n      \"doc\": \"Plus sign with circumflex accent above\"\n    },\n    {\n      \"name\": \"plussim\",\n      \"detail\": \"⨦\",\n      \"doc\": \"Plus sign with tilde below\"\n    },\n    {\n      \"name\": \"plussubtwo\",\n      \"detail\": \"⨧\",\n      \"doc\": \"Plus sign with subscript two\"\n    },\n    {\n      \"name\": \"plustrif\",\n      \"detail\": \"⨨\",\n      \"doc\": \"Plus sign with black triangle\"\n    },\n    {\n      \"name\": \"pointint\",\n      \"detail\": \"⨕\",\n      \"doc\": \"Integral around a point operator\"\n    },\n    {\n      \"name\": \"postalmark\",\n      \"detail\": \"〒\",\n      \"doc\": \"Postal mark\"\n    },\n    {\n      \"name\": \"Prec\",\n      \"detail\": \"⪻ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double precedes\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"profline\",\n      \"detail\": \"⌒\",\n      \"doc\": \"Profile of a line\"\n    },\n    {\n      \"name\": \"profsurf\",\n      \"detail\": \"⌓\",\n      \"doc\": \"Profile of a surface\"\n    },\n    {\n      \"name\": \"PropertyLine\",\n      \"detail\": \"⅊\",\n      \"doc\": \"Property line\"\n    },\n    {\n      \"name\": \"prurel\",\n      \"detail\": \"⊰\",\n      \"doc\": \"Element precedes under relation\"\n    },\n    {\n      \"name\": \"pullback\",\n      \"detail\": \"⟓\",\n      \"doc\": \"Lower right corner with dot\"\n    },\n    {\n      \"name\": \"pushout\",\n      \"detail\": \"⟔\",\n      \"doc\": \"Upper left corner with dot\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"rangledot\",\n      \"detail\": \"⦒\",\n      \"doc\": \"Right angle bracket with dot\"\n    },\n    {\n      \"name\": \"rangledownzigzagarrow\",\n      \"detail\": \"⍼\",\n      \"doc\": \"Right angle with downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rblkbrbrak\",\n      \"detail\": \"⦘\",\n      \"doc\": \"Right black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rBrace\",\n      \"detail\": \"⦄\",\n      \"doc\": \"Right white curly bracket\"\n    },\n    {\n      \"name\": \"rbracklrtick\",\n      \"detail\": \"⦎\",\n      \"doc\": \"Right square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"rbrackubar\",\n      \"detail\": \"⦌\",\n      \"doc\": \"Right square bracket with underbar\"\n    },\n    {\n      \"name\": \"rbrackurtick\",\n      \"detail\": \"⦐\",\n      \"doc\": \"Right square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"rbrbrak\",\n      \"detail\": \"〕\",\n      \"doc\": \"Right broken bracket\"\n    },\n    {\n      \"name\": \"Rbrbrak\",\n      \"detail\": \"〙\",\n      \"doc\": \"Right white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rcurvyangle\",\n      \"detail\": \"⧽\",\n      \"doc\": \"Right pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"rdiagovfdiag\",\n      \"detail\": \"⤫\",\n      \"doc\": \"Rising diagonal crossing falling diagonal\"\n    },\n    {\n      \"name\": \"rdiagovsearrow\",\n      \"detail\": \"⤰\",\n      \"doc\": \"Rising diagonal crossing south east arrow\"\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revangleubar\",\n      \"detail\": \"⦥\",\n      \"doc\": \"Reversed angle with underbar\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"revnmid\",\n      \"detail\": \"⫮\",\n      \"doc\": \"Does not divide with reversed negation slash\"\n    },\n    {\n      \"name\": \"rfbowtie\",\n      \"detail\": \"⧒\",\n      \"doc\": \"Right black bowtie\"\n    },\n    {\n      \"name\": \"rftimes\",\n      \"detail\": \"⧕\",\n      \"doc\": \"Right black times\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightarrowapprox\",\n      \"detail\": \"⥵\",\n      \"doc\": \"Rightwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbackapprox\",\n      \"detail\": \"⭈\",\n      \"doc\": \"Rightwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowbsimilar\",\n      \"detail\": \"⭌\",\n      \"doc\": \"Righttwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowdiamond\",\n      \"detail\": \"⤞\",\n      \"doc\": \"Rightwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"rightarrowgtr\",\n      \"detail\": \"⭃\",\n      \"doc\": \"Rightwards arrow through less-than\"\n    },\n    {\n      \"name\": \"rightarrowplus\",\n      \"detail\": \"⥅\",\n      \"doc\": \"Rightwards arrow with plus below\"\n    },\n    {\n      \"name\": \"rightarrowshortleftarrow\",\n      \"detail\": \"⥂\",\n      \"doc\": \"Rightwards arrow above short leftwards arrow\"\n    },\n    {\n      \"name\": \"rightarrowsimilar\",\n      \"detail\": \"⥴\",\n      \"doc\": \"Rightwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowsupset\",\n      \"detail\": \"⭄\",\n      \"doc\": \"Rightwards arrow through subset\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightarrowx\",\n      \"detail\": \"⥇\",\n      \"doc\": \"Rightwards arrow through x\"\n    },\n    {\n      \"name\": \"rightbkarrow\",\n      \"detail\": \"⤍\",\n      \"doc\": \"Rightwards double dash arrow\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightdbltail\",\n      \"detail\": \"⤜\",\n      \"doc\": \"Rightwards double arrow-tail\"\n    },\n    {\n      \"name\": \"rightdotarrow\",\n      \"detail\": \"⤑\",\n      \"doc\": \"Rightwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"rightfishtail\",\n      \"detail\": \"⥽ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Right fish tail\"\n    },\n    {\n      \"name\": \"rightharpoondownbar\",\n      \"detail\": \"⥗ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"rightharpoonsupdown\",\n      \"detail\": \"⥤ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightharpoonupbar\",\n      \"detail\": \"⥓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"rightharpoonupdash\",\n      \"detail\": \"⥬ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"rightimply\",\n      \"detail\": \"⥰\",\n      \"doc\": \"Right double arrow with rounded head\"\n    },\n    {\n      \"name\": \"rightleftharpoonsdown\",\n      \"detail\": \"⥩\",\n      \"doc\": \"Rightwards harpoon with barb down above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightleftharpoonsup\",\n      \"detail\": \"⥨\",\n      \"doc\": \"Rightwards harpoon with barb up above leftwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"rightouterjoin\",\n      \"detail\": \"⟖\",\n      \"doc\": \"Right outer join\"\n    },\n    {\n      \"name\": \"rightpentagon\",\n      \"detail\": \"⭔\",\n      \"doc\": \"White right-pointing pentagon\"\n    },\n    {\n      \"name\": \"rightpentagonblack\",\n      \"detail\": \"⭓\",\n      \"doc\": \"Black right-pointing pentagon\"\n    },\n    {\n      \"name\": \"righttail\",\n      \"detail\": \"⤚\",\n      \"doc\": \"Rightwards arrow-tail\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"ringplus\",\n      \"detail\": \"⨢\",\n      \"doc\": \"Plus sign with small circle above\"\n    },\n    {\n      \"name\": \"rParen\",\n      \"detail\": \"⦆ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Right white parenthesis\"\n    },\n    {\n      \"name\": \"rparengtr\",\n      \"detail\": \"⦔\",\n      \"doc\": \"Right arc greater-than bracket\"\n    },\n    {\n      \"name\": \"Rparenless\",\n      \"detail\": \"⦖\",\n      \"doc\": \"Double right arc less-than bracket\"\n    },\n    {\n      \"name\": \"rppolint\",\n      \"detail\": \"⨒\",\n      \"doc\": \"Line integration with rectangular path around pole\"\n    },\n    {\n      \"name\": \"rrangle\",\n      \"detail\": \"⦊ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation right binding bracket\"\n    },\n    {\n      \"name\": \"RRightarrow\",\n      \"detail\": \"⭆\",\n      \"doc\": \"Rightwards quadruple arrow\"\n    },\n    {\n      \"name\": \"rrparenthesis\",\n      \"detail\": \"⦈ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n    },\n    {\n      \"name\": \"rsolbar\",\n      \"detail\": \"⧷\",\n      \"doc\": \"Reverse solidus with horizontal stroke\"\n    },\n    {\n      \"name\": \"rsqhook\",\n      \"detail\": \"⫎\",\n      \"doc\": \"Square right open box operator\"\n    },\n    {\n      \"name\": \"rsub\",\n      \"detail\": \"⩥ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\nrres (oz), range antirestriction\"\n    },\n    {\n      \"name\": \"rtriltri\",\n      \"detail\": \"⧎\",\n      \"doc\": \"Right triangle above left triangle\"\n    },\n    {\n      \"name\": \"ruledelayed\",\n      \"detail\": \"⧴\",\n      \"doc\": \"Rule-delayed\"\n    },\n    {\n      \"name\": \"rvboxline\",\n      \"detail\": \"⎹\",\n      \"doc\": \"Right vertical box line\"\n    },\n    {\n      \"name\": \"rvzigzag\",\n      \"detail\": \"⧙\",\n      \"doc\": \"Right wiggly fence\"\n    },\n    {\n      \"name\": \"Rvzigzag\",\n      \"detail\": \"⧛\",\n      \"doc\": \"Right double wiggly fence\"\n    },\n    {\n      \"name\": \"sansLmirrored\",\n      \"detail\": \"⅃\",\n      \"doc\": \"Reversed sans-serif capital l\"\n    },\n    {\n      \"name\": \"sansLturned\",\n      \"detail\": \"⅂\",\n      \"doc\": \"Turned sans-serif capital l\"\n    },\n    {\n      \"name\": \"scpolint\",\n      \"detail\": \"⨓\",\n      \"doc\": \"Line integration with semicircular path around pole\"\n    },\n    {\n      \"name\": \"scurel\",\n      \"detail\": \"⊱\",\n      \"doc\": \"Succeeds under relation\"\n    },\n    {\n      \"name\": \"seovnearrow\",\n      \"detail\": \"⤭\",\n      \"doc\": \"South east arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"shortdowntack\",\n      \"detail\": \"⫟\",\n      \"doc\": \"Short down tack\"\n    },\n    {\n      \"name\": \"shortlefttack\",\n      \"detail\": \"⫞\",\n      \"doc\": \"Short left tack\"\n    },\n    {\n      \"name\": \"shortrightarrowleftarrow\",\n      \"detail\": \"⥄\",\n      \"doc\": \"Short rightwards arrow above leftwards arrow\"\n    },\n    {\n      \"name\": \"shortuptack\",\n      \"detail\": \"⫠\",\n      \"doc\": \"Short up tack\"\n    },\n    {\n      \"name\": \"shuffle\",\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"simgE\",\n      \"detail\": \"⪠\",\n      \"doc\": \"Similar above greater-than above equals sign\"\n    },\n    {\n      \"name\": \"simgtr\",\n      \"detail\": \"⪞\",\n      \"doc\": \"Similar or greater-than\"\n    },\n    {\n      \"name\": \"similarleftarrow\",\n      \"detail\": \"⭉\",\n      \"doc\": \"Tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"similarrightarrow\",\n      \"detail\": \"⥲\",\n      \"doc\": \"Tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"simlE\",\n      \"detail\": \"⪟\",\n      \"doc\": \"Similar above less-than above equals sign\"\n    },\n    {\n      \"name\": \"simless\",\n      \"detail\": \"⪝\",\n      \"doc\": \"Similar or less-than\"\n    },\n    {\n      \"name\": \"simminussim\",\n      \"detail\": \"⩬\",\n      \"doc\": \"Similar minus similar\"\n    },\n    {\n      \"name\": \"simplus\",\n      \"detail\": \"⨤\",\n      \"doc\": \"Plus sign with tilde above\"\n    },\n    {\n      \"name\": \"simrdots\",\n      \"detail\": \"⩫\",\n      \"doc\": \"Tilde operator with rising dots\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smashtimes\",\n      \"detail\": \"⨳\",\n      \"doc\": \"Smash product\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smeparsl\",\n      \"detail\": \"⧤\",\n      \"doc\": \"Equals sign and slanted parallel with tilde above\"\n    },\n    {\n      \"name\": \"smt\",\n      \"detail\": \"⪪\",\n      \"doc\": \"Smaller than\"\n    },\n    {\n      \"name\": \"smte\",\n      \"detail\": \"⪬\",\n      \"doc\": \"Smaller than or equal to\"\n    },\n    {\n      \"name\": \"smwhitestar\",\n      \"detail\": \"⭒\",\n      \"doc\": \"White small star\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"Sqcap\",\n      \"detail\": \"⩎\",\n      \"doc\": \"Double square intersection\"\n    },\n    {\n      \"name\": \"Sqcup\",\n      \"detail\": \"⩏\",\n      \"doc\": \"Double square union\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqlozenge\",\n      \"detail\": \"⌑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Square lozenge\"\n    },\n    {\n      \"name\": \"squarebotblack\",\n      \"detail\": \"⬓\",\n      \"doc\": \"Square with bottom half black\"\n    },\n    {\n      \"name\": \"squarecrossfill\",\n      \"detail\": \"▩\",\n      \"doc\": \"Square with diagonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squarehfill\",\n      \"detail\": \"▤\",\n      \"doc\": \"Square, horizontal rule filled\"\n    },\n    {\n      \"name\": \"squarehvfill\",\n      \"detail\": \"▦\",\n      \"doc\": \"Square with orthogonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squareleftblack\",\n      \"detail\": \"◧\",\n      \"doc\": \"Square, filled left half\"\n    },\n    {\n      \"name\": \"squarellblack\",\n      \"detail\": \"⬕\",\n      \"doc\": \"Square with lower left diagonal half black\"\n    },\n    {\n      \"name\": \"squarellquad\",\n      \"detail\": \"◱\",\n      \"doc\": \"White square with lower left quadrant\"\n    },\n    {\n      \"name\": \"squarelrblack\",\n      \"detail\": \"◪\",\n      \"doc\": \"Square, filled bottom right corner\"\n    },\n    {\n      \"name\": \"squarelrquad\",\n      \"detail\": \"◲\",\n      \"doc\": \"White square with lower right quadrant\"\n    },\n    {\n      \"name\": \"squareneswfill\",\n      \"detail\": \"▨\",\n      \"doc\": \"Square, ne-to-sw rule filled\"\n    },\n    {\n      \"name\": \"squarenwsefill\",\n      \"detail\": \"▧\",\n      \"doc\": \"Square, nw-to-se rule filled\"\n    },\n    {\n      \"name\": \"squarerightblack\",\n      \"detail\": \"◨\",\n      \"doc\": \"Square, filled right half\"\n    },\n    {\n      \"name\": \"squaretopblack\",\n      \"detail\": \"⬒\",\n      \"doc\": \"Square with top half black\"\n    },\n    {\n      \"name\": \"squareulblack\",\n      \"detail\": \"◩\",\n      \"doc\": \"Square, filled top left corner\"\n    },\n    {\n      \"name\": \"squareulquad\",\n      \"detail\": \"◰\",\n      \"doc\": \"White square with upper left quadrant\"\n    },\n    {\n      \"name\": \"squareurblack\",\n      \"detail\": \"⬔\",\n      \"doc\": \"Square with upper right diagonal half black\"\n    },\n    {\n      \"name\": \"squareurquad\",\n      \"detail\": \"◳\",\n      \"doc\": \"White square with upper right quadrant\"\n    },\n    {\n      \"name\": \"squarevfill\",\n      \"detail\": \"▥\",\n      \"doc\": \"Square, vertical rule filled\"\n    },\n    {\n      \"name\": \"squoval\",\n      \"detail\": \"▢\",\n      \"doc\": \"White square with rounded corners\"\n    },\n    {\n      \"name\": \"sslash\",\n      \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\varparallel (txfonts), double solidus operator\"\n    },\n    {\n      \"name\": \"strns\",\n      \"detail\": \"⏤\",\n      \"doc\": \"Straightness\"\n    },\n    {\n      \"name\": \"subedot\",\n      \"detail\": \"⫃\",\n      \"doc\": \"Subset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"submult\",\n      \"detail\": \"⫁\",\n      \"doc\": \"Subset with multiplication sign below\"\n    },\n    {\n      \"name\": \"subrarr\",\n      \"detail\": \"⥹\",\n      \"doc\": \"Subset above rightwards arrow\"\n    },\n    {\n      \"name\": \"subsetapprox\",\n      \"detail\": \"⫉\",\n      \"doc\": \"Subset of above almost equal to\"\n    },\n    {\n      \"name\": \"subsetcirc\",\n      \"detail\": \"⟃\",\n      \"doc\": \"Open subset\"\n    },\n    {\n      \"name\": \"subsetdot\",\n      \"detail\": \"⪽\",\n      \"doc\": \"Subset with dot\"\n    },\n    {\n      \"name\": \"subsetplus\",\n      \"detail\": \"⪿\",\n      \"doc\": \"Subset with plus sign below\"\n    },\n    {\n      \"name\": \"subsim\",\n      \"detail\": \"⫇\",\n      \"doc\": \"Subset of above tilde operator\"\n    },\n    {\n      \"name\": \"subsub\",\n      \"detail\": \"⫕\",\n      \"doc\": \"Subset above subset\"\n    },\n    {\n      \"name\": \"subsup\",\n      \"detail\": \"⫓\",\n      \"doc\": \"Subset above superset\"\n    },\n    {\n      \"name\": \"Succ\",\n      \"detail\": \"⪼ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double succeeds\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"supdsub\",\n      \"detail\": \"⫘\",\n      \"doc\": \"Superset beside and joined by dash with subset\"\n    },\n    {\n      \"name\": \"supedot\",\n      \"detail\": \"⫄\",\n      \"doc\": \"Superset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"suphsol\",\n      \"detail\": \"⟉\",\n      \"doc\": \"Superset preceding solidus\"\n    },\n    {\n      \"name\": \"suphsub\",\n      \"detail\": \"⫗\",\n      \"doc\": \"Superset beside subset\"\n    },\n    {\n      \"name\": \"suplarr\",\n      \"detail\": \"⥻\",\n      \"doc\": \"Superset above leftwards arrow\"\n    },\n    {\n      \"name\": \"supmult\",\n      \"detail\": \"⫂\",\n      \"doc\": \"Superset with multiplication sign below\"\n    },\n    {\n      \"name\": \"supsetapprox\",\n      \"detail\": \"⫊\",\n      \"doc\": \"Superset of above almost equal to\"\n    },\n    {\n      \"name\": \"supsetcirc\",\n      \"detail\": \"⟄\",\n      \"doc\": \"Open superset\"\n    },\n    {\n      \"name\": \"supsetdot\",\n      \"detail\": \"⪾\",\n      \"doc\": \"Superset with dot\"\n    },\n    {\n      \"name\": \"supsetplus\",\n      \"detail\": \"⫀\",\n      \"doc\": \"Superset with plus sign below\"\n    },\n    {\n      \"name\": \"supsim\",\n      \"detail\": \"⫈\",\n      \"doc\": \"Superset of above tilde operator\"\n    },\n    {\n      \"name\": \"supsub\",\n      \"detail\": \"⫔\",\n      \"doc\": \"Superset above subset\"\n    },\n    {\n      \"name\": \"supsup\",\n      \"detail\": \"⫖\",\n      \"doc\": \"Superset above superset\"\n    },\n    {\n      \"name\": \"talloblong\",\n      \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"White vertical bar\"\n    },\n    {\n      \"name\": \"thermod\",\n      \"detail\": \"⧧\",\n      \"doc\": \"Thermodynamic\"\n    },\n    {\n      \"name\": \"threedangle\",\n      \"detail\": \"⟀\",\n      \"doc\": \"Three dimensional angle\"\n    },\n    {\n      \"name\": \"threedotcolon\",\n      \"detail\": \"⫶\",\n      \"doc\": \"Triple colon operator\"\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"tieinfty\",\n      \"detail\": \"⧝\",\n      \"doc\": \"Tie over infinity\"\n    },\n    {\n      \"name\": \"timesbar\",\n      \"detail\": \"⨱\",\n      \"doc\": \"Multiplication sign with underbar\"\n    },\n    {\n      \"name\": \"tminus\",\n      \"detail\": \"⧿\",\n      \"doc\": \"Miny\"\n    },\n    {\n      \"name\": \"toea\",\n      \"detail\": \"⤨\",\n      \"doc\": \"North east arrow and south east arrow\"\n    },\n    {\n      \"name\": \"tona\",\n      \"detail\": \"⤧\",\n      \"doc\": \"North west arrow and north east arrow\"\n    },\n    {\n      \"name\": \"topbot\",\n      \"detail\": \"⌶\",\n      \"doc\": \"Apl functional symbol i-beam, top and bottom\"\n    },\n    {\n      \"name\": \"topcir\",\n      \"detail\": \"⫱\",\n      \"doc\": \"Down tack with circle below\"\n    },\n    {\n      \"name\": \"topfork\",\n      \"detail\": \"⫚\",\n      \"doc\": \"Pitchfork with tee top\"\n    },\n    {\n      \"name\": \"topsemicircle\",\n      \"detail\": \"◠\",\n      \"doc\": \"Upper half circle\"\n    },\n    {\n      \"name\": \"tosa\",\n      \"detail\": \"⤩\",\n      \"doc\": \"South east arrow and south west arrow\"\n    },\n    {\n      \"name\": \"towa\",\n      \"detail\": \"⤪\",\n      \"doc\": \"South west arrow and north west arrow\"\n    },\n    {\n      \"name\": \"tplus\",\n      \"detail\": \"⧾\",\n      \"doc\": \"Tiny\"\n    },\n    {\n      \"name\": \"trapezium\",\n      \"detail\": \"⏢\",\n      \"doc\": \"White trapezium\"\n    },\n    {\n      \"name\": \"trianglecdot\",\n      \"detail\": \"◬\",\n      \"doc\": \"Triangle with centered dot\"\n    },\n    {\n      \"name\": \"triangleleftblack\",\n      \"detail\": \"◭\",\n      \"doc\": \"Up-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"triangleminus\",\n      \"detail\": \"⨺\",\n      \"doc\": \"Minus sign in triangle\"\n    },\n    {\n      \"name\": \"triangleodot\",\n      \"detail\": \"⧊\",\n      \"doc\": \"Triangle with dot above\"\n    },\n    {\n      \"name\": \"triangleplus\",\n      \"detail\": \"⨹\",\n      \"doc\": \"Plus sign in triangle\"\n    },\n    {\n      \"name\": \"trianglerightblack\",\n      \"detail\": \"◮\",\n      \"doc\": \"Up-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"triangles\",\n      \"detail\": \"⧌\",\n      \"doc\": \"S in triangle\"\n    },\n    {\n      \"name\": \"triangleserifs\",\n      \"detail\": \"⧍\",\n      \"doc\": \"Triangle with serifs at bottom\"\n    },\n    {\n      \"name\": \"triangletimes\",\n      \"detail\": \"⨻\",\n      \"doc\": \"Multiplication sign in triangle\"\n    },\n    {\n      \"name\": \"triangleubar\",\n      \"detail\": \"⧋\",\n      \"doc\": \"Triangle with underbar\"\n    },\n    {\n      \"name\": \"tripleplus\",\n      \"detail\": \"⧻\",\n      \"doc\": \"Triple plus\"\n    },\n    {\n      \"name\": \"trslash\",\n      \"detail\": \"⫻\",\n      \"doc\": \"Triple solidus binary relation\"\n    },\n    {\n      \"name\": \"turnangle\",\n      \"detail\": \"⦢\",\n      \"doc\": \"Turned angle\"\n    },\n    {\n      \"name\": \"turnediota\",\n      \"detail\": \"℩\",\n      \"doc\": \"Turned iota\"\n    },\n    {\n      \"name\": \"twocaps\",\n      \"detail\": \"⩋\",\n      \"doc\": \"Intersection beside and joined with intersection\"\n    },\n    {\n      \"name\": \"twocups\",\n      \"detail\": \"⩊\",\n      \"doc\": \"Union beside and joined with union\"\n    },\n    {\n      \"name\": \"twoheadhookleftarrow\"\n    },\n    {\n      \"name\": \"twoheadhookrightarrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrowtail\",\n      \"detail\": \"⬻\",\n      \"doc\": \"Leftwards two-headed arrow with tail\"\n    },\n    {\n      \"name\": \"twoheadleftdbkarrow\",\n      \"detail\": \"⬷\",\n      \"doc\": \"Leftwards two-headed triple-dash arrow\"\n    },\n    {\n      \"name\": \"twoheadmapsfrom\",\n      \"detail\": \"⬶\",\n      \"doc\": \"Leftwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadmapsto\",\n      \"detail\": \"⤅\",\n      \"doc\": \"Rightwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadrightarrowtail\",\n      \"detail\": \"⤖ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards two-headed arrow with tail, bijection\"\n    },\n    {\n      \"name\": \"twoheaduparrowcircle\",\n      \"detail\": \"⥉\",\n      \"doc\": \"Upwards two-headed arrow from small circle\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"typecolon\",\n      \"detail\": \"⦂\",\n      \"doc\": \"Z notation type colon, (present in bbold font but no command)\"\n    },\n    {\n      \"name\": \"ularc\",\n      \"detail\": \"◜\",\n      \"doc\": \"Upper left quadrant circular arc\"\n    },\n    {\n      \"name\": \"ulblacktriangle\",\n      \"detail\": \"◤\",\n      \"doc\": \"Upper left triangle, filled\"\n    },\n    {\n      \"name\": \"ultriangle\",\n      \"detail\": \"◸\",\n      \"doc\": \"Upper left triangle\"\n    },\n    {\n      \"name\": \"uminus\",\n      \"detail\": \"⩁\",\n      \"doc\": \"Union with minus sign, bag subtraction\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"uparrowbarred\",\n      \"detail\": \"⤉\",\n      \"doc\": \"Upwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"uparrowoncircle\",\n      \"detail\": \"⦽\",\n      \"doc\": \"Up arrow through circle\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"upDigamma\",\n      \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Capital digamma\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"updownharpoonleftleft\",\n      \"detail\": \"⥑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb left down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightright\",\n      \"detail\": \"⥏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb right down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upfishtail\",\n      \"detail\": \"⥾\",\n      \"doc\": \"Up fish tail\"\n    },\n    {\n      \"name\": \"upharpoonleftbar\",\n      \"detail\": \"⥠ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"upharpoonrightbar\",\n      \"detail\": \"⥜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"upharpoonsleftright\",\n      \"detail\": \"⥣ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upin\",\n      \"detail\": \"⟒\",\n      \"doc\": \"Element of opening upwards\"\n    },\n    {\n      \"name\": \"upint\",\n      \"detail\": \"⨛\",\n      \"doc\": \"Integral with overbar\"\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"urarc\",\n      \"detail\": \"◝\",\n      \"doc\": \"Upper right quadrant circular arc\"\n    },\n    {\n      \"name\": \"urblacktriangle\",\n      \"detail\": \"◥\",\n      \"doc\": \"Upper right triangle, filled\"\n    },\n    {\n      \"name\": \"urtriangle\",\n      \"detail\": \"◹\",\n      \"doc\": \"Upper right triangle\"\n    },\n    {\n      \"name\": \"UUparrow\",\n      \"detail\": \"⟰\",\n      \"doc\": \"Upwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"varcarriagereturn\",\n      \"detail\": \"⏎\",\n      \"doc\": \"Return symbol\"\n    },\n    {\n      \"name\": \"varhexagon\",\n      \"detail\": \"⬡\",\n      \"doc\": \"White hexagon\"\n    },\n    {\n      \"name\": \"varhexagonblack\",\n      \"detail\": \"⬢\",\n      \"doc\": \"Black hexagon\"\n    },\n    {\n      \"name\": \"varhexagonlrbonds\",\n      \"detail\": \"⌬\",\n      \"doc\": \"Six carbon ring, corner down, double bonds lower right etc\"\n    },\n    {\n      \"name\": \"varisinobar\",\n      \"detail\": \"⋶ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Element of with overbar\"\n    },\n    {\n      \"name\": \"varisins\",\n      \"detail\": \"⋳\",\n      \"doc\": \"Element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varniobar\",\n      \"detail\": \"⋽\",\n      \"doc\": \"Contains with overbar\"\n    },\n    {\n      \"name\": \"varnis\",\n      \"detail\": \"⋻\",\n      \"doc\": \"Contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varstar\",\n      \"detail\": \"✶\",\n      \"doc\": \"Six pointed black star\"\n    },\n    {\n      \"name\": \"varVdash\",\n      \"detail\": \"⫦\",\n      \"doc\": \"Long dash from left member of double vertical\"\n    },\n    {\n      \"name\": \"varveebar\",\n      \"detail\": \"⩡\",\n      \"doc\": \"Small vee with underbar\"\n    },\n    {\n      \"name\": \"vBar\",\n      \"detail\": \"⫨\",\n      \"doc\": \"Short up tack with underbar\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"vBarv\",\n      \"detail\": \"⫩\",\n      \"doc\": \"Short up tack above short down tack\"\n    },\n    {\n      \"name\": \"vbrtri\",\n      \"detail\": \"⧐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Vertical bar beside right triangle\"\n    },\n    {\n      \"name\": \"vDdash\",\n      \"detail\": \"⫢\",\n      \"doc\": \"Vertical bar triple right turnstile\"\n    },\n    {\n      \"name\": \"Vee\",\n      \"detail\": \"⩔\",\n      \"doc\": \"Double logical or\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"veemidvert\",\n      \"detail\": \"⩛\",\n      \"doc\": \"Logical or with middle stem\"\n    },\n    {\n      \"name\": \"veeodot\",\n      \"detail\": \"⩒\",\n      \"doc\": \"Logical or with dot above\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"veeonwedge\",\n      \"detail\": \"⩙\",\n      \"doc\": \"Logical or overlapping logical and\"\n    },\n    {\n      \"name\": \"viewdata\",\n      \"detail\": \"⌗\",\n      \"doc\": \"Viewdata square\"\n    },\n    {\n      \"name\": \"vrectangle\",\n      \"detail\": \"▯\",\n      \"doc\": \"Rectangle, white (vertical)\"\n    },\n    {\n      \"name\": \"vrectangleblack\",\n      \"detail\": \"▮\",\n      \"doc\": \"Black vertical rectangle\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"vzigzag\",\n      \"detail\": \"⦚\",\n      \"doc\": \"Vertical zigzag line\"\n    },\n    {\n      \"name\": \"Wedge\",\n      \"detail\": \"⩓\",\n      \"doc\": \"Double logical and\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wedgedoublebar\",\n      \"detail\": \"⩠\",\n      \"doc\": \"Logical and with double underbar\"\n    },\n    {\n      \"name\": \"wedgemidvert\",\n      \"detail\": \"⩚\",\n      \"doc\": \"Logical and with middle stem\"\n    },\n    {\n      \"name\": \"wedgeodot\",\n      \"detail\": \"⩑\",\n      \"doc\": \"Logical and with dot above\"\n    },\n    {\n      \"name\": \"wedgeonwedge\",\n      \"detail\": \"⩕\",\n      \"doc\": \"Two intersecting logical and\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"whiteinwhitetriangle\",\n      \"detail\": \"⟁\",\n      \"doc\": \"White triangle containing small white triangle\"\n    },\n    {\n      \"name\": \"whitepointerleft\",\n      \"detail\": \"◅\",\n      \"doc\": \"\\\\triangleleft (mathabx), white left-pointing pointer\"\n    },\n    {\n      \"name\": \"whitepointerright\",\n      \"detail\": \"▻\",\n      \"doc\": \"\\\\triangleright (mathabx), white right-pointing pointer\"\n    },\n    {\n      \"name\": \"whitesquaretickleft\",\n      \"detail\": \"⟤\",\n      \"doc\": \"White square with leftwards tick\"\n    },\n    {\n      \"name\": \"whitesquaretickright\",\n      \"detail\": \"⟥\",\n      \"doc\": \"White square with rightwards tick\"\n    },\n    {\n      \"name\": \"whthorzoval\",\n      \"detail\": \"⬭\",\n      \"doc\": \"White horizontal ellipse\"\n    },\n    {\n      \"name\": \"whtvertoval\",\n      \"detail\": \"⬯\",\n      \"doc\": \"White vertical ellipse\"\n    },\n    {\n      \"name\": \"wideangledown\",\n      \"detail\": \"⦦\",\n      \"doc\": \"Oblique angle opening up\"\n    },\n    {\n      \"name\": \"wideangleup\",\n      \"detail\": \"⦧\",\n      \"doc\": \"Oblique angle opening down\"\n    },\n    {\n      \"name\": \"xbsol\",\n      \"detail\": \"⧹ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\hide (oz), big reverse solidus, schema hiding\"\n    },\n    {\n      \"name\": \"xsol\",\n      \"detail\": \"⧸\",\n      \"doc\": \"Big solidus\"\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zcmp\",\n      \"detail\": \"⨟ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\semi (oz), \\\\fatsemi (stmaryrd), schema composition\"\n    },\n    {\n      \"name\": \"zpipe\",\n      \"detail\": \"⨠ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation schema piping\"\n    },\n    {\n      \"name\": \"zproject\",\n      \"detail\": \"⨡ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\project (oz), schema projection\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"newinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"openoutputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openoutputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"closeoutputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeoutputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"addtostream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtostream{${1:stream}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"openinputfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"openinputfile{${1:file}}{${2:stream}}\"\n      }\n    },\n    {\n      \"name\": \"closeinputstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closeinputstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readstream\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readstream{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readaline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readaline{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"readverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readverbatim{${1:stream}}\"\n      }\n    },\n    {\n      \"name\": \"streamvfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"streamvfont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"numbervstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginnumbervstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"streamvnumfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"streamvnumfont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"plainvstream\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"writeverbatim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stream}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newfloatsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfloatsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newfloatsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareFloatingEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFloatingEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareFloatingEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareFloatingEnvironment[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\DeclareFloatingEnvironment,\\\\SetupFloatingEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetupFloatingEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupFloatingEnvironment{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareFloatingEnvironment,\\\\SetupFloatingEnvironment\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ForEachFloatingEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachFloatingEnvironment{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"PrepareListOf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrepareListOf{${1:envname}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newfloatsetup\": [\n      \"within=${1:<counter> or none}\",\n      \"chapterlistsgap=\"\n    ],\n    \"\\\\DeclareFloatingEnvironment,\\\\SetupFloatingEnvironment\": [\n      \"fileext=${1:file extension}\",\n      \"listname=${1:list name}\",\n      \"name=${1:name}\",\n      \"autorefname=${1:name}\",\n      \"legendname=${1:name}\",\n      \"placement=${1:combination of htbp}\",\n      \"within=${1:<counter> or none}\",\n      \"chapterlistsgaps=${1|on,off|}\",\n      \"without\",\n      \"planb\",\n      \"planb-fileext=${1:file extension}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newpax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newpaxsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpaxsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newpaxsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newpaxsetup\": [\n      \"usefileattributes\",\n      \"destsuffix=${1:suffix}\",\n      \"addannots\",\n      \"dests=${1|used,all|}\",\n      \"paxextension=${1|pax,newpax|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newproof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newproof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newproof{${1:envname}}{${2:start text}}{${3:finish text}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedtext\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newpx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"newpxmath\"\n    },\n    {\n      \"name\": \"newpxtext\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newpx#c\": [\n      \"varg\",\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"bigdelims\",\n      \"varbb\",\n      \"vvarbb\",\n      \"nosymbolsc\",\n      \"cmintegrals\",\n      \"cmbraces\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"frenchmath\",\n      \"upint\",\n      \"smallerops\",\n      \"amsthm\",\n      \"noOT1\",\n      \"fracspacing\",\n      \"curlybraces\",\n      \"no-math\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"scaled=${1:factor}\",\n      \"defaultsups\",\n      \"largesc\",\n      \"nohelv\",\n      \"helvratio=${1:factor}\",\n      \"spcfactor=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"oldSS\",\n      \"notextnu\",\n      \"slashedzero\",\n      \"theoremfont\",\n      \"thmlining\",\n      \"trueslanted\",\n      \"scosf\",\n      \"tighter\",\n      \"looser\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newpx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newpxmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"centernot\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mathcent\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barhat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barhat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bartilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bartilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupdotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigsqcupplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigtimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bulletS\"\n    },\n    {\n      \"name\": \"bulletSS\"\n    },\n    {\n      \"name\": \"bulletSSS\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"cdotB\"\n    },\n    {\n      \"name\": \"cdotBB\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"circS\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"Colondash\"\n    },\n    {\n      \"name\": \"colondash\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"unusual\": true,\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"dAlembertian\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"Dashcolon\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"dlb\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"drb\"\n    },\n    {\n      \"name\": \"emptysetAlt\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"Eqcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqqcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"Euler\"\n    },\n    {\n      \"name\": \"existsAlt\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"forallAlt\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"groupld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groupru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hatbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hatbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hathat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hathat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hattilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hattilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"hermtransp\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"htransp\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\"\n    },\n    {\n      \"name\": \"imathfrak\"\n    },\n    {\n      \"name\": \"imathscr\"\n    },\n    {\n      \"name\": \"imathup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathbb\"\n    },\n    {\n      \"name\": \"jmathfrak\"\n    },\n    {\n      \"name\": \"jmathscr\"\n    },\n    {\n      \"name\": \"jmathup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplac\",\n      \"detail\": \"⧠\",\n      \"doc\": \"Square with contoured outline\"\n    },\n    {\n      \"name\": \"laplace\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lrJoin\"\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"lrvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathslscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathslscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathuscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathuscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nexistsAlt\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nPerp\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"primeS\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smallfint\"\n    },\n    {\n      \"name\": \"smallfintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalliiiint\"\n    },\n    {\n      \"name\": \"smalliiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiint\"\n    },\n    {\n      \"name\": \"smalliiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliint\"\n    },\n    {\n      \"name\": \"smalliintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiint\"\n    },\n    {\n      \"name\": \"smalloiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiint\"\n    },\n    {\n      \"name\": \"smalloiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloint\"\n    },\n    {\n      \"name\": \"smallointctrclockwise\"\n    },\n    {\n      \"name\": \"smallointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsqint\"\n    },\n    {\n      \"name\": \"smallsqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsum\"\n    },\n    {\n      \"name\": \"smallsumint\"\n    },\n    {\n      \"name\": \"smallsumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwise\"\n    },\n    {\n      \"name\": \"smallvarointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smlbrace\"\n    },\n    {\n      \"name\": \"smrbrace\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"sumintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tildebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildehat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildehat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"transp\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varepsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varphiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varprod\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"vmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vv*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"vv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vvmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideOarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideOarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowMathFonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSYdimens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setEXdimens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifiscseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifiscseq{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"loadsubfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadsubfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"readsufile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readsufile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMathSymbolCtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbolCtr{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newpxmath#c\": [\n      \"varg\",\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"bigdelims\",\n      \"varbb\",\n      \"vvarbb\",\n      \"nosymbolsc\",\n      \"cmintegrals\",\n      \"cmbraces\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"frenchmath\",\n      \"upint\",\n      \"smallerops\",\n      \"noOT1\",\n      \"amsthm\",\n      \"fracspacing\",\n      \"curlybraces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newpxmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newpxtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweight\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"destyle\"\n    },\n    {\n      \"name\": \"infigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instyle\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nustyle\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsups{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textthit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thfamily\"\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newpxtext#c\": [\n      \"no-math\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"scaled=${1:factor}\",\n      \"defaultsups\",\n      \"largesc\",\n      \"nohelv\",\n      \"helvratio=${1:factor}\",\n      \"spcfactor=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"oldSS\",\n      \"notextnu\",\n      \"slashedzero\",\n      \"theoremfont\",\n      \"thmlining\",\n      \"trueslanted\",\n      \"scosf\",\n      \"tighter\",\n      \"looser\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newpxtext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newspaper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"yfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetHeaderName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetHeaderName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPaperLocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPaperLocation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPaperName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPaperName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPaperPrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPaperPrice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPaperSlogan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPaperSlogan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"byline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"byline{${1:headline%text}}{${2:author}}\"\n      }\n    },\n    {\n      \"name\": \"closearticle\"\n    },\n    {\n      \"name\": \"currentissue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentissue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"currentvolume\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"currentvolume{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"headline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theissue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newtx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newtxtext\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"libertinus\",\n      \"if\": \"libertine\"\n    },\n    {\n      \"name\": \"libertinus\",\n      \"if\": \"libertine=true\"\n    },\n    {\n      \"name\": \"libertinus\",\n      \"if\": \"libertinus\"\n    },\n    {\n      \"name\": \"libertinus\",\n      \"if\": \"libertinus=true\"\n    },\n    {\n      \"name\": \"ETbb\",\n      \"if\": \"etbb\"\n    },\n    {\n      \"name\": \"ETbb\",\n      \"if\": \"etbb=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"ebgaramond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"ebgaramond=true\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"MinionPro\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"MinionPro=true\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"minion\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"minion=true\"\n    },\n    {\n      \"name\": \"cochineal\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"cochineal\",\n      \"if\": \"cochineal=true\"\n    },\n    {\n      \"name\": \"garamondx\",\n      \"if\": \"garamondx\"\n    },\n    {\n      \"name\": \"garamondx\",\n      \"if\": \"garamondx=true\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"baskerville\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"baskerville=true\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"Baskerville\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"Baskerville=true\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"baskervillef\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"baskervillef=true\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"BaskervilleF\"\n    },\n    {\n      \"name\": \"baskervillef\",\n      \"if\": \"BaskervilleF=true\"\n    },\n    {\n      \"name\": \"baskervaldx\",\n      \"if\": \"baskervaldx\"\n    },\n    {\n      \"name\": \"baskervaldx\",\n      \"if\": \"baskervaldx=true\"\n    },\n    {\n      \"name\": \"baskervaldx\",\n      \"if\": \"Baskervaldx\"\n    },\n    {\n      \"name\": \"baskervaldx\",\n      \"if\": \"Baskervaldx=true\"\n    },\n    {\n      \"name\": \"heuristica\",\n      \"if\": \"heuristica\"\n    },\n    {\n      \"name\": \"heuristica\",\n      \"if\": \"heuristica=true\"\n    },\n    {\n      \"name\": \"heuristica\",\n      \"if\": \"Heuristica\"\n    },\n    {\n      \"name\": \"heuristica\",\n      \"if\": \"Heuristica=true\"\n    },\n    {\n      \"name\": \"erewhon\",\n      \"if\": \"erewhon\"\n    },\n    {\n      \"name\": \"erewhon\",\n      \"if\": \"erewhon=true\"\n    },\n    {\n      \"name\": \"erewhon\",\n      \"if\": \"Erewhon\"\n    },\n    {\n      \"name\": \"erewhon\",\n      \"if\": \"Erewhon=true\"\n    },\n    {\n      \"name\": \"XCharter\",\n      \"if\": \"xcharter\"\n    },\n    {\n      \"name\": \"XCharter\",\n      \"if\": \"xcharter=true\"\n    },\n    {\n      \"name\": \"XCharter\",\n      \"if\": \"XCharter\"\n    },\n    {\n      \"name\": \"XCharter\",\n      \"if\": \"XCharter=true\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"stickstoo\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"stickstoo=true\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"Stickstoo\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"Stickstoo=true\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"stix2\"\n    },\n    {\n      \"name\": \"stickstootext\",\n      \"if\": \"stix2=true\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"scholax\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"scholax=true\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"nc\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"nc=true\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"scholaxf\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"scholaxf=true\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"ncf\"\n    },\n    {\n      \"name\": \"scholax\",\n      \"if\": \"ncf=true\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BIA\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIB\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIC\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BID\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIE\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIF\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIG\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIH\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BII\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIJ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIK\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIL\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIM\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIN\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIO\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIP\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIQ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIR\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIS\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIT\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIU\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIV\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIW\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIX\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIY\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIZ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIa\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIb\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIc\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BId\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIe\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIf\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIg\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIh\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIi\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIj\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIk\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIl\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIm\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIn\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIo\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIp\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIq\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIr\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIs\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIt\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIu\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIv\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIw\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIx\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIy\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIz\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"PassMathScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PassMatchingScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PassMatchingScale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"pliningnums\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newtx#c\": [\n      \"otfmath\",\n      \"textscaled=${1:factor}\",\n      \"mathscaled=${1:factor}\",\n      \"ScaleBaseRM=${1:factor}\",\n      \"ScaleBaseSF=${1:factor}\",\n      \"ScaleBaseTT=${1:factor}\",\n      \"llscale=${1:factor}\",\n      \"ttscale=${1:factor}\",\n      \"rm\",\n      \"sf\",\n      \"libertine\",\n      \"libertinus\",\n      \"etbb\",\n      \"ebgaramond\",\n      \"minion\",\n      \"cochineal\",\n      \"garamondx\",\n      \"baskerville\",\n      \"baskervaldx\",\n      \"heuristica\",\n      \"erewhon\",\n      \"gelasio\",\n      \"xcharter\",\n      \"stix2\",\n      \"nc\",\n      \"ncf\",\n      \"sfracvcenter=\",\n      \"sfracvspacing=\",\n      \"sfracbarthick=\",\n      \"sfracscaling=${1:factor}\",\n      \"type1\",\n      \"type1text\",\n      \"defaultfeatures={${1:fontspec options}}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"scaled=${1:factor}\",\n      \"defaultsups\",\n      \"largesc\",\n      \"nohelv\",\n      \"nott\",\n      \"helvratio=${1:factor}\",\n      \"spcfactor=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"oldSS\",\n      \"slashedzero\",\n      \"theoremfont\",\n      \"thmslshape\",\n      \"thmlining\",\n      \"trueslanted\",\n      \"scosf\",\n      \"tighter\",\n      \"looser\",\n      \"no-math\",\n      \"otfmath\",\n      \"vecsep=\",\n      \"amsthm\",\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"timesmathacc\",\n      \"varbb\",\n      \"vvarbb\",\n      \"nosymbolsc\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"altnu\",\n      \"largelibfigs\",\n      \"liby\",\n      \"frenchmath\",\n      \"nonewtxmathopt\",\n      \"upint\",\n      \"smallerops\",\n      \"useBImacros\",\n      \"varg\",\n      \"varvw\",\n      \"noOT1\",\n      \"propmathfigs\",\n      \"curlybraces\",\n      \"cochrho\",\n      \"cochf\",\n      \"alty\",\n      \"alth\",\n      \"nochvw\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newtx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newtxmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"centernot\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"openbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"alphait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barhat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barhat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bartilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bartilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"bbdotlessi\"\n    },\n    {\n      \"name\": \"bbdotlessj\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupdotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigsqcupplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigtimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bulletS\"\n    },\n    {\n      \"name\": \"bulletSS\"\n    },\n    {\n      \"name\": \"bulletSSS\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"cdotB\"\n    },\n    {\n      \"name\": \"cdotBB\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiit\"\n    },\n    {\n      \"name\": \"chiup\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"circS\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"Colondash\"\n    },\n    {\n      \"name\": \"colondash\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"unusual\": true,\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"dAlembertian\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"Dashcolon\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"dlb\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downgroupfillla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downgroupfillra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"drb\"\n    },\n    {\n      \"name\": \"emptysetAlt\"\n    },\n    {\n      \"name\": \"epsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"Eqcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqqcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"etait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"Euler\"\n    },\n    {\n      \"name\": \"existsAlt\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"forallAlt\"\n    },\n    {\n      \"name\": \"frakdotlessi\"\n    },\n    {\n      \"name\": \"frakdotlessj\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"Gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"groupld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groupru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hatbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hatbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hathat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hathat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hattilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hattilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hermtransp\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"htransp\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathfrak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathscr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imathup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"iotait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathfrak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathscr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappait\"\n    },\n    {\n      \"name\": \"kappaup\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"Lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplac\",\n      \"detail\": \"⧠\",\n      \"doc\": \"Square with contoured outline\"\n    },\n    {\n      \"name\": \"laplace\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lrJoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"lrvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathslscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathslscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathuscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathuscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nexistsAlt\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nPerp\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nuit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"Phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"primeS\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"scrdotlessi\"\n    },\n    {\n      \"name\": \"scrdotlessj\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"Sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smallfint\"\n    },\n    {\n      \"name\": \"smallfintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalliiiint\"\n    },\n    {\n      \"name\": \"smalliiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiint\"\n    },\n    {\n      \"name\": \"smalliiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliint\"\n    },\n    {\n      \"name\": \"smalliintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiint\"\n    },\n    {\n      \"name\": \"smalloiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiint\"\n    },\n    {\n      \"name\": \"smalloiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloint\"\n    },\n    {\n      \"name\": \"smallointctrclockwise\"\n    },\n    {\n      \"name\": \"smallointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsqint\"\n    },\n    {\n      \"name\": \"smallsqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsum\"\n    },\n    {\n      \"name\": \"smallsumint\"\n    },\n    {\n      \"name\": \"smallsumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwise\"\n    },\n    {\n      \"name\": \"smallvarointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smlbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smrbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"sumintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"Thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tildebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildehat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildehat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"transp\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"txvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upgroupfillla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upgroupfillra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upPhi\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"Upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptau\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varepsilonit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varg\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathbb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varphiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varprod\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varv\"\n    },\n    {\n      \"name\": \"varw\"\n    },\n    {\n      \"name\": \"vary\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"vmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vv*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"vv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vvmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"vvstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvstar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideOarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideOarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"Xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zetait\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIA\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIB\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIC\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BID\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIE\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIF\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIG\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIH\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BII\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIJ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIK\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIL\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIM\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIN\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIO\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIP\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIQ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIR\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIS\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIT\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIU\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIV\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIW\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIX\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIY\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIZ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIa\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIb\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIc\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BId\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIe\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIf\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIg\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIh\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIi\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIj\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIk\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIl\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIm\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIn\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIo\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIp\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIq\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIr\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIs\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIt\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIu\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIv\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIw\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIx\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIy\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIz\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"rhoAlt\",\n      \"if\": \"cochineal\"\n    },\n    {\n      \"name\": \"hslashAlt\",\n      \"if\": \"ebgaramond\"\n    },\n    {\n      \"name\": \"hbarAlt\",\n      \"if\": \"ebgaramond\"\n    },\n    {\n      \"name\": \"highbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slashbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midbar\",\n      \"if\": \"minion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowMathFonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSYdimens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setEXdimens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadsubfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadsubfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"readsufile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readsufile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"rmdefaultB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareMathSymbolCtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbolCtr{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"ifiscseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifiscseq{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"binary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binary{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbinary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nbinary{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"hex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nhex{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"oct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oct{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"noct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noct{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"tetra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetra{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ntetra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntetra{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbinbased\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nbinbased{${1:logbase}}{${2:size}}{${3:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newtxmath#c\": [\n      \"subscriptcorrectionfile=${1:file}\",\n      \"nosubscriptcorrection\",\n      \"subscriptcorrection\",\n      \"timesmathacc\",\n      \"bigdelims\",\n      \"varbb\",\n      \"vvarbb\",\n      \"libaltvw\",\n      \"nosymbolsc\",\n      \"libertine\",\n      \"libertinus\",\n      \"minion\",\n      \"cochineal\",\n      \"garamondx\",\n      \"ebgaramond\",\n      \"baskerville\",\n      \"baskervaldx\",\n      \"utopia\",\n      \"heuristica\",\n      \"erewhon\",\n      \"gelasio\",\n      \"xcharter\",\n      \"cmintegrals\",\n      \"cmbraces\",\n      \"curlybraces\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightscript\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"altnu\",\n      \"largelibfigs\",\n      \"liby\",\n      \"frenchmath\",\n      \"nonewtxmathopt\",\n      \"upint\",\n      \"smallerops\",\n      \"useBImacros\",\n      \"noxchvw\",\n      \"noXchvw\",\n      \"stix2\",\n      \"nc\",\n      \"ncf\",\n      \"noto\",\n      \"notosans\",\n      \"cochf\",\n      \"cochrho\",\n      \"alty\",\n      \"varg\",\n      \"propmathfigs\",\n      \"varvw\",\n      \"internaldigits\",\n      \"noOT1\",\n      \"amsthm\",\n      \"scaled=${1:factor}\",\n      \"vecsep=\",\n      \"alth\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newtxmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newtxsf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"openbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"alphaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barhat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barhat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bartilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bartilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcapplus\"\n    },\n    {\n      \"name\": \"bigcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupdotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupplus\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcapplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigsqcupplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigtimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bulletS\"\n    },\n    {\n      \"name\": \"bulletSS\"\n    },\n    {\n      \"name\": \"bulletSSS\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"cdotB\"\n    },\n    {\n      \"name\": \"cdotBB\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"circS\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"Deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deltaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"dlb\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downgroupfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downgroupfillla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downgroupfillra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"drb\"\n    },\n    {\n      \"name\": \"emptysetAlt\"\n    },\n    {\n      \"name\": \"epsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equalht{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"etaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"existsAlt\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"forallAlt\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"Gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gammaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"groupld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouplua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groupru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouprua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hatbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hatbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hathat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hathat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hattilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hattilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"hermtransp\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"htransp\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"iotaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"Lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lambdaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrharpoonacc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrharpoonacc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lrJoin\"\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"lrvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lrvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmappedfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"muup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nablaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nexistsAlt\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nni\",\n      \"unusual\": true,\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nPerp\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nuup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"overgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overgroupra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overgroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"Phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"Piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"primeS\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"Sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcoprod\"\n    },\n    {\n      \"name\": \"smallfint\"\n    },\n    {\n      \"name\": \"smallfintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalliiiint\"\n    },\n    {\n      \"name\": \"smalliiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiint\"\n    },\n    {\n      \"name\": \"smalliiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliint\"\n    },\n    {\n      \"name\": \"smalliintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiint\"\n    },\n    {\n      \"name\": \"smalloiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiint\"\n    },\n    {\n      \"name\": \"smalloiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloint\"\n    },\n    {\n      \"name\": \"smallointctrclockwise\"\n    },\n    {\n      \"name\": \"smallointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallprod\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsqint\"\n    },\n    {\n      \"name\": \"smallsqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsum\"\n    },\n    {\n      \"name\": \"smallsumint\"\n    },\n    {\n      \"name\": \"smallsumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwise\"\n    },\n    {\n      \"name\": \"smallvarointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"sumintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"Thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tildebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildehat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildehat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tildetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tildetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"transp\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"txvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"undergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupla\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupla{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undergroupra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undergroupra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upgroupfillla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upgroupfillra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upiota\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upjmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upkappa\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upPhi\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"Upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptau\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varepsilonup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varkappaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathbb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varphiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varprod\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsigmaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"vv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vv*{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"vv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vvstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vvstar{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideOarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideOarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"Xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xiup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zetaup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoFutureLet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowMathFonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareMathSymbolCtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbolCtr{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    },\n    {\n      \"name\": \"equalht\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equalht{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newtxsf#c\": [\n      \"scaled=${1:factor}\",\n      \"vecsep=\",\n      \"nosymbolsc\",\n      \"cmintegrals\",\n      \"noamssymbols\",\n      \"amssymbols\",\n      \"uprightGreek\",\n      \"slantedGreek\",\n      \"frenchmath\",\n      \"upint\",\n      \"smallerops\",\n      \"noSTIXops\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newtxsf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newtxtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"mweight\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"destyle\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"infstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nustyle\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textsfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsups{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textthit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thfamily\"\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"binary{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbinary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nbinary{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"hex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hex{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nhex{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"oct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oct{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"noct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noct{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"tetra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tetra{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ntetra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntetra{${1:size}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"nbinbased\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nbinbased{${1:logbase}}{${2:size}}{${3:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newtxtext#c\": [\n      \"defaultfeatures={${1:fontspec options}}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"scaled=${1:factor}\",\n      \"defaultsups\",\n      \"largesc\",\n      \"nohelv\",\n      \"nott\",\n      \"helvratio=${1:factor}\",\n      \"spcfactor=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"oldSS\",\n      \"slashedzero\",\n      \"theoremfont\",\n      \"thmslshape\",\n      \"thmlining\",\n      \"trueslanted\",\n      \"scosf\",\n      \"tighter\",\n      \"looser\",\n      \"newsu\",\n      \"no-math\",\n      \"otfmath\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newtxtext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newtxtt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ttzdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttzfamily\"\n    },\n    {\n      \"name\": \"textttz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textttz{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/newtxtt#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"nomono\",\n      \"straightquotes\",\n      \"ttdefault\",\n      \"ttzdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/newtxtt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/newunicodechar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newunicodechar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newunicodechar{${1:char}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newvbtm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newverbatim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newverbatim{${1:envname}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newverbatim\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"newverbatim{${1:envname}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newverbatim\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"newverbatim{${1:envname}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewverbatim{${1:envname}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatim\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"renewverbatim{${1:envname}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatim\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"renewverbatim{${1:envname}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/newverbs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shortvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newverbcommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newverbcommand{${1:cmd}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"newverbcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newverbcommand{${1:cmd}}[${4:verbcmd}]{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbcommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewverbcommand{${1:cmd}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewverbcommand{${1:cmd}}[${4:verbcmd}]{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"provideverbcommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideverbcommand{${1:cmd}}{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"provideverbcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideverbcommand{${1:cmd}}[${4:verbcmd}]{${2:code before}}{${3:code after}}\"\n      }\n    },\n    {\n      \"name\": \"qverb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"qverb|${1:verb text}|\"\n      }\n    },\n    {\n      \"name\": \"qverbbeginquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qverbendquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fverb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"fverb|${1:verb text}|\"\n      }\n    },\n    {\n      \"name\": \"MakeSpecialShortVerb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeSpecialShortVerb{${1:verb cmd}}{${2:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSpecialShortVerb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeSpecialShortVerb*{${1:verb cmd}}{${2:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"collectverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectverb{${1:code}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"collectverb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"collectverb*{${1:code}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"Collectverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Collectverb{${1:code}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"Collectverb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Collectverb*{${1:code}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"collectverbenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectverbenv{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"collectverbenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectverbenv*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Collectverbenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Collectverbenv{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Collectverbenv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Collectverbenv*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"newverbsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"verbdef{${1:cmd}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"verbdef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"verbdef*{${1:cmd}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"Verbdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Verbdef{${1:cmd}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"Verbdef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Verbdef*{${1:cmd}}{${2:verb text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nextpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cleartoevenpage\"\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartoevenpage[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"movetoevenpage\"\n    },\n    {\n      \"name\": \"movetoevenpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetoevenpage[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"cleartooddpage\"\n    },\n    {\n      \"name\": \"cleartooddpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartooddpage[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"movetooddpage\"\n    },\n    {\n      \"name\": \"movetooddpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movetooddpage[${1:code}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nexus-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nexus-otf#c\": [\n      \"pro\",\n      \"math\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"ScaleRM=${1:factor}\",\n      \"ScaleSF=${1:factor}\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nexus-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ngerman.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nicefilelist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"monofill\"\n    },\n    {\n      \"name\": \"myfilist\"\n    },\n    {\n      \"name\": \"hardwrap\",\n      \"if\": \"wrap\"\n    },\n    {\n      \"name\": \"xstring\",\n      \"if\": \"autolength\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NFLspaceI\"\n    },\n    {\n      \"name\": \"NFLspaceII\"\n    },\n    {\n      \"name\": \"NFLspaceIII\"\n    },\n    {\n      \"name\": \"NFLnodate\"\n    },\n    {\n      \"name\": \"NFLnoversion\"\n    },\n    {\n      \"name\": \"NFLnotfound\"\n    },\n    {\n      \"name\": \"MaxBaseEmptyList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MaxBaseEmptyList{${1:longest-name}}\"\n      }\n    },\n    {\n      \"name\": \"MaxBaseEmptyList\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"MaxBaseEmptyList{${1:longest-name}}[${2:read-again-files}]\"\n      }\n    },\n    {\n      \"name\": \"MaxBaseEmptyList*\"\n    },\n    {\n      \"name\": \"MaxBaseEmptyList*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MaxBaseEmptyList*[${1:read-again-files}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nicefilelist#c\": [\n      \"r\",\n      \"wrap\",\n      \"autolength\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nicefilelist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nicefrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nicefrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nicefrac[${3:fontcmd%:translatable}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"nicefrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nicefrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nicefrac#c\": [\n      \"nice\",\n      \"ugly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nicefrac#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/niceframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"niceframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"niceframe{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"niceframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"niceframe[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"curlyframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curlyframe{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"curlyframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curlyframe[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"artdecoframe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"artdecoframe{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"artdecoframe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"artdecoframe[${2:width}]{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"generalframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"generalframe{${1:NW-char}}{${2:t-hor-leader}}{${3:NE-char}}{${4:l-vert-leader}}{${5:r-vert-leader}}{${6:SW-char}}{${7:b-hor-leader}}{${8:SE-char}}{${9:contents%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nicematrix.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"if\": \"footnote=true\"\n    },\n    {\n      \"name\": \"footnotehyper\",\n      \"if\": \"footnotehyper\"\n    },\n    {\n      \"name\": \"footnotehyper\",\n      \"if\": \"footnotehyper=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NiceMatrixOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NiceMatrixOptions{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular}\",\n          \"\\\\NiceMatrixOptions\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Block{${1:i-j}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"{}<>{}\",\n        \"snippet\": \"Block{${1:i-j}}<${3:code}>{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Block[${3:options%keyvals}]{${1:i-j}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\Block\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Block\",\n      \"arg\": {\n        \"format\": \"[]{}<>{}\",\n        \"snippet\": \"Block[${3:options%keyvals}]{${1:i-j}}<${4:code}>{${2:content}}\",\n        \"keys\": [\n          \"\\\\Block\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hline\"\n    },\n    {\n      \"name\": \"Hline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Hline\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diagbox{${1:lower}}{${2:upper}}\"\n      }\n    },\n    {\n      \"name\": \"hdottedline\"\n    },\n    {\n      \"name\": \"cdottedline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdottedline{${1:linespec}}\"\n      }\n    },\n    {\n      \"name\": \"CodeBefore\"\n    },\n    {\n      \"name\": \"CodeBefore\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CodeBefore[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\CodeBefore\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Body\"\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cellcolor{${1:color}}{${2:i-j,k-l,...}}\"\n      }\n    },\n    {\n      \"name\": \"cellcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cellcolor[${3:color_model}]{${1:color}}{${2:i-j,k-l,...}}\"\n      }\n    },\n    {\n      \"name\": \"rectanglecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rectanglecolor{${1:color}}{${2:i-j}}{${3:k-l}}\"\n      }\n    },\n    {\n      \"name\": \"rectanglecolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rectanglecolor[${4:color_model}]{${1:color}}{${2:i-j}}{${3:k-l}}\"\n      }\n    },\n    {\n      \"name\": \"arraycolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arraycolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"arraycolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arraycolor[${2:color_model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"chessboardcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chessboardcolors{${1:color1}}{${2:color2}}\"\n      }\n    },\n    {\n      \"name\": \"chessboardcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chessboardcolors[${3:color_model}]{${1:color1}}{${2:color2}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rowcolor{${1:color}}{${2:i,j-k,l-,...}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rowcolor[${3:color_model}]{${1:color}}{${2:i,j-k,l-,...}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"columncolor{${1:color}}{${2:i,j-k,l-,...}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"columncolor[${3:color_model}]{${1:color}}{${2:i,j-k,l-,...}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rowcolors{${1:row}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"rowcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"rowcolors[${4:color model}]{${1:row}}{${2:color1}}{${3:color2}}[${5:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\rowcolors\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"rowlistcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rowlistcolors{${1:row}}{${2:color1,color2,...}}\"\n      }\n    },\n    {\n      \"name\": \"rowlistcolors\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rowlistcolors[${3:color model}]{${1:row}}{${2:color1,color2,...}}\"\n      }\n    },\n    {\n      \"name\": \"RowStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RowStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"RowStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RowStyle[${2:options%keyvals}]{${1:code}}\",\n        \"keys\": [\n          \"\\\\RowStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ldots\"\n    },\n    {\n      \"name\": \"Ldots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ldots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cdots\"\n    },\n    {\n      \"name\": \"Cdots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cdots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vdots\"\n    },\n    {\n      \"name\": \"Vdots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Vdots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ddots\"\n    },\n    {\n      \"name\": \"Ddots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ddots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\",\n          \"\\\\Ddots,\\\\Iddots\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Iddots\"\n    },\n    {\n      \"name\": \"Iddots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Iddots[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\",\n          \"\\\\Ddots,\\\\Iddots\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iddots\"\n    },\n    {\n      \"name\": \"line\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"line[${3:options%keyvals}]{${1:i-j}}{${2:k-l}}\",\n        \"keys\": [\n          \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Hspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Hspace*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Hdotsfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hdotsfor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Vdotsfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vdotsfor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CodeAfter\"\n    },\n    {\n      \"name\": \"CodeAfter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CodeAfter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SubMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SubMatrix{${1:delim1}}{${2:i-j}}{${3:k-l}}{${4:delim2}}\"\n      }\n    },\n    {\n      \"name\": \"SubMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"SubMatrix{${1:delim1}}{${2:i-j}}{${3:k-l}}{${4:delim2}}[${5:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SubMatrix\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"OverBrace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"OverBrace{${1:i-j}}{${2:k-l}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"OverBrace\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"OverBrace[${4:options%keyvals}]{${1:i-j}}{${2:k-l}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\OverBrace,\\\\UnderBrace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UnderBrace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"UnderBrace{${1:i-j}}{${2:k-l}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"UnderBrace\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"UnderBrace[${4:options%keyvals}]{${1:i-j}}{${2:k-l}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\OverBrace,\\\\UnderBrace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TikzEveryCell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TikzEveryCell{${1:TikZ keys}}\"\n      }\n    },\n    {\n      \"name\": \"TikzEveryCell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TikzEveryCell[${2:options%keyvals}]{${1:TikZ keys}}\",\n        \"keys\": [\n          \"\\\\TikzEveryCell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabularnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabularnote[${2:symbol}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\"\n    },\n    {\n      \"name\": \"ShowCellNames\"\n    },\n    {\n      \"name\": \"AutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"AutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pAutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"pAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pAutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bAutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"bAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bAutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BAutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"BAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BAutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vAutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"vAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vAutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VAutoNiceMatrix{${1:i-j}}{${2:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"VAutoNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"VAutoNiceMatrix[${3:options%keyvals}]{${1:i-j}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NiceMatrixLastEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OnlyMainNiceMatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OnlyMainNiceMatrix{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NotEmpty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NiceTabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"NiceTabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular}\",\n          \"\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NiceTabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"NiceTabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NiceTabularX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"NiceTabularX\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:options%keyvals}]{${2:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"NiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pNiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"pNiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bNiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"bNiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BNiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"BNiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vNiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"vNiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VNiceArray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"VNiceArray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NiceMatrix\"\n    },\n    {\n      \"name\": \"NiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pNiceMatrix\"\n    },\n    {\n      \"name\": \"pNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bNiceMatrix\"\n    },\n    {\n      \"name\": \"bNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BNiceMatrix\"\n    },\n    {\n      \"name\": \"BNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vNiceMatrix\"\n    },\n    {\n      \"name\": \"vNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VNiceMatrix\"\n    },\n    {\n      \"name\": \"VNiceMatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\",\n          \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\",\n          \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NiceMatrixBlock\"\n    },\n    {\n      \"name\": \"NiceMatrixBlock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{NiceMatrixBlock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TabularNote\"\n    },\n    {\n      \"name\": \"NiceArrayWithDelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:delim1}}{${2:delim2}}{${3:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"NiceArrayWithDelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"{${1:delim1}}{${2:delim2}}{${3:preamble}}[${4:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nicematrix#c\": [\n      \"renew-dots\",\n      \"renew-matrix\",\n      \"footnote\",\n      \"footnotehyper\",\n      \"no-test-for-array\"\n    ],\n    \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\": [\n      \"t\",\n      \"b\",\n      \"c\",\n      \"baseline=${1:row number}\",\n      \"standard-cline\",\n      \"vlines\",\n      \"vlines=\",\n      \"hlines\",\n      \"hlines=\",\n      \"hvlines\",\n      \"hvlines-except-borders\",\n      \"corners\",\n      \"corners=${1|NW,SW,NE,SE|}\",\n      \"custom-line={${1:keyvals}}\",\n      \"code-before=${1:code}\",\n      \"columns-width=\",\n      \"first-row\",\n      \"last-row\",\n      \"first-col\",\n      \"last-col\",\n      \"last-row=${1:number}\",\n      \"last-col=${1:number}\",\n      \"code-for-first-row=${1:code}\",\n      \"code-for-last-row=${1:code}\",\n      \"code-for-first-col=${1:code}\",\n      \"code-for-last-col=${1:code}\",\n      \"nullify-dots\",\n      \"renew-dots\",\n      \"code-after=${1:code}\",\n      \"cell-space-top-limit=\",\n      \"cell-space-bottom-limit=\",\n      \"cell-space-limits=\",\n      \"tabularnote=${1:text}\",\n      \"notes/para\",\n      \"notes/bottomrule\",\n      \"small\",\n      \"light-syntax\",\n      \"light-syntax-expanded\",\n      \"name=${1:name}\",\n      \"create-medium-nodes\",\n      \"create-large-nodes\",\n      \"create-extra-nodes\",\n      \"left-margin\",\n      \"left-margin=\",\n      \"right-margin\",\n      \"right-margin=\",\n      \"margin=\",\n      \"extra-left-margin=\",\n      \"extra-right-margin=\",\n      \"extra-margin=\",\n      \"parallelize-diags\",\n      \"delimiters/max-width\",\n      \"vlines-in-sub-matrix=${1:letter}\",\n      \"colortbl-like\",\n      \"color-inside\",\n      \"rounded-corners\",\n      \"rounded-corners=\",\n      \"no-cell-nodes\",\n      \"ampersand-in-blocks\",\n      \"&-in-blocks\"\n    ],\n    \"\\\\NiceMatrixOptions,\\\\begin{NiceTabular}\": [\n      \"width=\"\n    ],\n    \"\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX}\": [\n      \"caption=${1:text}\",\n      \"short-caption=${1:text}\",\n      \"label=\"\n    ],\n    \"\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix}\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"columns-type=${1|l,c,r|}\"\n    ],\n    \"\\\\NiceMatrixOptions\": [\n      \"notes={${1:specs}}\",\n      \"notes/style=\",\n      \"notes/label-in-tabular=\",\n      \"notes/label-in-list=\",\n      \"notes/enumitem-keys={${1:enumitem keys}}\",\n      \"notes/enumitem-keys-para={${1:enumitem keys}}\",\n      \"matrix/columns-type=${1|l,c,r|}\",\n      \"notes/code-before=${1:code}\",\n      \"letter-for-dotted-lines=\",\n      \"renew-matrix\",\n      \"exterior-arraycolsep\",\n      \"caption-above\"\n    ],\n    \"\\\\Block\": [\n      \"l\",\n      \"c\",\n      \"r\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"draw\",\n      \"draw=\",\n      \"color=\",\n      \"line-width=\",\n      \"rounded-corners\",\n      \"rounded-corners=\",\n      \"borders={${1:borders options}}\",\n      \"hvlines\",\n      \"v-center\",\n      \"p\",\n      \"j\",\n      \"m\",\n      \"t\",\n      \"b\",\n      \"T\",\n      \"B\",\n      \"L\",\n      \"R\",\n      \"C\",\n      \"tikz={${1:TikZ options}}\",\n      \"name=${1:name}\",\n      \"respect-arraystretch\",\n      \"transparent\"\n    ],\n    \"\\\\Hline\": [\n      \"command=${1:csname}\",\n      \"ccommand=${1:csname}\",\n      \"letter=${1:letter}\",\n      \"multiplicity=${1:integer}\",\n      \"color=\",\n      \"sep-color=\",\n      \"tikz={${1:TikZ keys}}\",\n      \"total-width=\",\n      \"dotted\"\n    ],\n    \"\\\\CodeBefore\": [\n      \"create-cell-nodes\"\n    ],\n    \"\\\\rowcolors\": [\n      \"cols=\",\n      \"restart\",\n      \"respect-blocks\"\n    ],\n    \"\\\\RowStyle\": [\n      \"nb-rows=${1:number}\",\n      \"cell-space-top-limit=\",\n      \"cell-space-bottom-limit=\",\n      \"cell-space-limits=\",\n      \"rowcolor=\",\n      \"color=\",\n      \"bold\"\n    ],\n    \"\\\\begin{NiceMatrixBlock}\": [\n      \"auto-columns-width\"\n    ],\n    \"\\\\Ldots,\\\\Cdots,\\\\Vdots,\\\\Ddots,\\\\Iddots,\\\\line\": [\n      \"horizontal-labels\",\n      \"color=\",\n      \"radius=\",\n      \"shorten-start=\",\n      \"shorten-end=\",\n      \"shorten=\",\n      \"inter=\",\n      \"line-style=${1|standard,solid,dotted,densely dotted,loosely dotted,dashed,densely dashed,loosely dashed|}\"\n    ],\n    \"\\\\Ddots,\\\\Iddots\": [\n      \"draw-first\"\n    ],\n    \"\\\\CodeAfter,\\\\NiceMatrixOptions,\\\\begin{NiceTabular},\\\\begin{NiceTabular*},\\\\begin{NiceTabularX},\\\\begin{NiceArray},\\\\begin{pNiceArray},\\\\begin{bNiceArray},\\\\begin{BNiceArray},\\\\begin{vNiceArray},\\\\begin{VNiceArray},\\\\begin{NiceMatrix},\\\\begin{pNiceMatrix},\\\\begin{bNiceMatrix},\\\\begin{BNiceMatrix},\\\\begin{vNiceMatrix},\\\\begin{VNiceMatrix},\\\\begin{NiceArrayWithDelims}\": [\n      \"delimiters/color=\",\n      \"sub-matrix/left-xshift=\",\n      \"sub-matrix/right-xshift=\",\n      \"sub-matrix/extra-height=\",\n      \"sub-matrix/slim\",\n      \"sub-matrix/vlines\",\n      \"sub-matrix/vlines=\",\n      \"sub-matrix/hlines\",\n      \"sub-matrix/hlines=\",\n      \"sub-matrix/hvlines\",\n      \"rules/width=\",\n      \"rules/color=\",\n      \"xdots/horizontal-labels\",\n      \"xdots/color=\",\n      \"xdots/radius=\",\n      \"xdots/shorten-start=\",\n      \"xdots/shorten-end=\",\n      \"xdots/shorten=\",\n      \"xdots/inter=\",\n      \"xdots/line-style=${1|standard,solid,dotted,densely dotted,loosely dotted,dashed,densely dashed,loosely dashed|}\"\n    ],\n    \"\\\\SubMatrix\": [\n      \"left-xshift=\",\n      \"right-xshift=\",\n      \"xshift=\",\n      \"extra-height=\",\n      \"delimiters/color=\",\n      \"slim\",\n      \"vlines\",\n      \"vlines=\",\n      \"hlines\",\n      \"hlines=\",\n      \"hvlines\",\n      \"name=${1:name}\",\n      \"code=${1:code}\"\n    ],\n    \"\\\\OverBrace,\\\\UnderBrace\": [\n      \"left-shorten\",\n      \"right-shorten\",\n      \"shorten\",\n      \"yshift=\",\n      \"color=\"\n    ],\n    \"\\\\TikzEveryCell\": [\n      \"empty\",\n      \"not-empty\"\n    ],\n    \"\\\\AutoNiceMatrix,\\\\pAutoNiceMatrix,\\\\bAutoNiceMatrix,\\\\BAutoNiceMatrix,\\\\vAutoNiceMatrix,\\\\VAutoNiceMatrix\": [\n      \"l\",\n      \"r\",\n      \"c\",\n      \"columns-type=${1|l,c,r|}\",\n      \"t\",\n      \"b\",\n      \"baseline=\",\n      \"standard-cline\",\n      \"vlines\",\n      \"vlines=\",\n      \"hlines\",\n      \"hlines=\",\n      \"hvlines\",\n      \"hvlines-except-borders\",\n      \"corners\",\n      \"corners=${1|NW,SW,NE,SE|}\",\n      \"code-before=${1:code}\",\n      \"columns-width=\",\n      \"first-row\",\n      \"last-row\",\n      \"first-col\",\n      \"last-col\",\n      \"last-row=\",\n      \"last-col=\",\n      \"code-for-first-row=${1:code}\",\n      \"code-for-last-row=${1:code}\",\n      \"code-for-first-col=${1:code}\",\n      \"code-for-last-col=${1:code}\",\n      \"nullify-dots\",\n      \"renew-dots\",\n      \"code-after=${1:code}\",\n      \"small\",\n      \"light-syntax\",\n      \"name=${1:name}\",\n      \"create-medium-nodes\",\n      \"create-large-nodes\",\n      \"create-extra-nodes\",\n      \"left-margin\",\n      \"left-margin=\",\n      \"right-margin\",\n      \"right-margin=\",\n      \"margin=\",\n      \"extra-left-margin=\",\n      \"extra-right-margin=\",\n      \"extra-margin=\",\n      \"parallelize-diags\",\n      \"delimiters/max-width\",\n      \"vlines-in-sub-matrix=${1:letter}\",\n      \"colortbl-like\",\n      \"color-inside\",\n      \"rounded-corners\",\n      \"rounded-corners=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nicematrix#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/niceverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stacklet\"\n    },\n    {\n      \"name\": \"actcodes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NVerb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"NVerb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"NVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"NVerb[${1:opt}]|${2:text}|\"\n      }\n    },\n    {\n      \"name\": \"HardNVerb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"HardNVerb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"HardNVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"HardNVerb[${1:opt}]|${2:text}|\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cstx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cstx{${1:csname}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cstx\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"cstx{${1:csname}}*{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cstx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"cstx{${1:csname}}[${3:option}]{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cstx\",\n      \"arg\": {\n        \"format\": \"{}*[]{}\",\n        \"snippet\": \"cstx{${1:csname}}*[${3:option}]{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"GenCmdBox\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"GenCmdBox|${1:chars}|\"\n      }\n    },\n    {\n      \"name\": \"HardVerbBox\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"HardVerbBox|${1:chars}|\"\n      }\n    },\n    {\n      \"name\": \"VerticalCmdBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerticalCmdBox{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"InlineCmdBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InlineCmdBox{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"cmdboxitem\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"cmdboxitem|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"lt\"\n    },\n    {\n      \"name\": \"gt\"\n    },\n    {\n      \"name\": \"qtd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dqtd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dqtd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qtdnverb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"qtdnverb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"newlet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"do\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfTypesetting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfTypesetting{${1:if}}{${2:unless}}\"\n      }\n    },\n    {\n      \"name\": \"nvSelfProtect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nvSelfProtect{${1:cmd-char}}{${2:typeset}}\"\n      }\n    },\n    {\n      \"name\": \"NewSelfProtectedCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewSelfProtectedCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"nvShowProtectedEdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nvShowProtectedEdef{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"SetNiceVerbSaveBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TheNiceVerbSaveBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NiceMaybeMetaVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"NiceMaybeMetaVerb|${1:chars}|\"\n      }\n    },\n    {\n      \"name\": \"NiceMaybeMetaVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"NiceMaybeMetaVerb[${1:opt}]|${2:chars}|\"\n      }\n    },\n    {\n      \"name\": \"LQverb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CmdSyntaxVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BuildCsSyntax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoCmdSyntaxVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EndAutoCmdSyntaxVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NormalCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NormalCommand{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"niceverbNoVerbList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddToMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToMacro{${1:cmd}}{${2:macros}}\"\n      }\n    },\n    {\n      \"name\": \"AddToNoVerbList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToNoVerbList{${1:macros}}\"\n      }\n    },\n    {\n      \"name\": \"AutoCmdInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AutoCmdInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"RQsansserif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DoRQsansserif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvAllowRQSS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvRightQuoteSansSerif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvRightQuoteNormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NiceVerbMove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NiceVerbMove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nvAllRightQuotesSansSerif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvCmdBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetOffInlineCmdBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetOffInlineCmdBoxInner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetOffInlineCmdBoxOuter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DontAddQuotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvResetPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NiceVerbMove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NiceVerbMove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noNiceVerb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useNiceVerb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nidanfloat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dblbotfraction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"balancenewpage\"\n    },\n    {\n      \"name\": \"balanceclearpage\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nidanfloat#c\": [\n      \"balance\",\n      \"nobalance\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nidanfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nimbusmono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nimbusmono#c\": [\n      \"scaled=${1:factor}\",\n      \"bold\",\n      \"semibold\",\n      \"regular\",\n      \"light\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nimbusmono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nimbusmononarrow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nimbusmononarrow#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nimbusmononarrow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nimbussans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nimbussans#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nimbussans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nimbusserif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NimbusSerifscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nimbusserif#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nimbusserif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nimsticks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lcg\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawnimstick\"\n    },\n    {\n      \"name\": \"nimgame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nimgame{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"nimgame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nimgame[${2:inline}]{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"setnimstickcolour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnimstickcolour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"nimstickcolour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setnimscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnimscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"nimstickheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimstickthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimstickgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimheapgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimheapwobble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimheaplift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimrandrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onenimstick\"\n    },\n    {\n      \"name\": \"topx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"botx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lift\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ninecolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NineColors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NineColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\NineColors\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\NineColors\": [\n      \"saturation=${1|low,medium,high|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/njuvisual.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"njuemblem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njuemblem{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njuemblem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"njuemblem[${3:选项%keyvals}]{${1:宽度}}{${2:高度}}\",\n        \"keys\": [\n          \"\\\\njuemblem,\\\\njuname,\\\\njuname*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"njuname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njuname{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njuname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"njuname[${3:选项%keyvals}]{${1:宽度}}{${2:高度}}\",\n        \"keys\": [\n          \"\\\\njuemblem,\\\\njuname,\\\\njuname*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"njuname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njuname*{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njuname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"njuname*[${3:选项%keyvals}]{${1:宽度}}{${2:高度}}\",\n        \"keys\": [\n          \"\\\\njuemblem,\\\\njuname,\\\\njuname*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"njumotto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njumotto{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njumotto\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"njumotto[${3:color}]{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njuspirit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"njuspirit{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"njuspirit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"njuspirit[${3:color}]{${1:宽度}}{${2:高度}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/njuvisual#c\": [\n      \"force\"\n    ],\n    \"\\\\njuemblem,\\\\njuname,\\\\njuname*\": [\n      \"color=\",\n      \"color*=\",\n      \"%color\",\n      \"department=${1:院系名称}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/njuvisual#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nl-interval.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tkz-fct\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nlAxisX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nlAxisX{${1:min}}{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"nlinfnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nlinfnum{${1:number}}{${2:o or c}}\"\n      }\n    },\n    {\n      \"name\": \"nlinfnum\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"nlinfnum[${3:options%keyvals}]{${1:number}}[${4:sub}]{${2:o or c}}[${5:height}]\",\n        \"keys\": [\n          \"\\\\nlinfnum#c,\\\\nlnuminf#c,\\\\nlnumnum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nlnuminf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nlnuminf{${1:number}}{${2:o or c}}\"\n      }\n    },\n    {\n      \"name\": \"nlnuminf\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"nlnuminf[${3:options%keyvals}]{${1:number}}[${4:sub}]{${2:o or c}}[${5:height}]\",\n        \"keys\": [\n          \"\\\\nlinfnum#c,\\\\nlnuminf#c,\\\\nlnumnum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nlnumnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nlnumnum{${1:number1}}{${2:o or c}}{${3:number2}}{${4:o or c}}\"\n      }\n    },\n    {\n      \"name\": \"nlnumnum\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]{}[]\",\n        \"snippet\": \"nlnumnum[${5:options%keyvals}]{${1:number1}}[${6:sub1}]{${2:o or c}}{${3:number2}}[${7:sub2}]{${4:o or c}}[${8:height}]\",\n        \"keys\": [\n          \"\\\\nlinfnum#c,\\\\nlnuminf#c,\\\\nlnumnum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\nlinfnum#c,\\\\nlnuminf#c,\\\\nlnumnum#c\": [\n      \"pattern=\",\n      \"color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nlctuserguide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"twemojis\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"mfirstuc\"\n    },\n    {\n      \"name\": \"glossaries-extra\"\n    },\n    {\n      \"name\": \"attachfile\"\n    },\n    {\n      \"name\": \"xr-hyper\",\n      \"if\": \"xr\"\n    },\n    {\n      \"name\": \"glossaries-accsupp\",\n      \"if\": \"accsupp\"\n    },\n    {\n      \"name\": \"glossaries-prefix\",\n      \"if\": \"prefix\"\n    },\n    {\n      \"name\": \"glossaries-babel\",\n      \"if\": \"translate=babel\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\"\n    },\n    {\n      \"name\": \"glossaries-extra-stylemods\"\n    },\n    {\n      \"name\": \"glossary-mcols\"\n    },\n    {\n      \"name\": \"glossary-bookindex\"\n    },\n    {\n      \"name\": \"glossary-topic\"\n    },\n    {\n      \"name\": \"glossary-longextra\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printabbreviations\",\n      \"if\": \"abbreviations\"\n    },\n    {\n      \"name\": \"printabbreviations\",\n      \"if\": \"abbreviations\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printabbreviations[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtabbreviations\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtabbreviations\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtabbreviations[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"abbreviationsname\",\n      \"if\": \"abbreviations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsshowaccsupp\",\n      \"if\": \"debug=showaccsupp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsshowaccsupp{${1:options}}{${2:tag}}{${3:replacement text}}\"\n      }\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\"\n    },\n    {\n      \"name\": \"printnumbers\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewnumber\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewnumber{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewnumber\",\n      \"if\": \"numbers\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewnumber[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtnumbers\",\n      \"if\": \"numbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtnumbers\",\n      \"if\": \"numbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtnumbers[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescnumber\",\n      \"if\": \"numbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newterm{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"newterm\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newterm[${2:options%keyvals}]{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"if\": \"index\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtindex\",\n      \"if\": \"index\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtindex\",\n      \"if\": \"index\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtindex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescindex\",\n      \"if\": \"index\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronym=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym=true\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronym=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\"\n    },\n    {\n      \"name\": \"printacronyms\",\n      \"if\": \"acronyms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronyms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtacronyms\",\n      \"if\": \"acronyms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtacronyms[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=other\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=acother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=abother\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=all\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newentry\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newentry{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsym{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsym\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newsym[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnum{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newnum\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newnum[${3:options%keyvals}]{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=true\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbreviations\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbreviations\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newabbr{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"newabbr\",\n      \"if\": \"shortcuts=abbr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newabbr[${4:options%keyvals}]{${1:label}}{${2:short}}{${3:long}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"actext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actext{${1:acronym}}\"\n      }\n    },\n    {\n      \"name\": \"aliasref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aliasref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"app\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"app{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"app\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"app{${1:application}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"appdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appdef{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"appfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appfmt{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"apptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apptext{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"araracont\"\n    },\n    {\n      \"name\": \"araraline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"araraline{${1:arara code}}\"\n      }\n    },\n    {\n      \"name\": \"banned\"\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"blog\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blog{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"booktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booktitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cbeg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbeg{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"cend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cend{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cls{${1:class}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"clsfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsfmt{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"clsoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsoptfmt{${1:class-option}}\"\n      }\n    },\n    {\n      \"name\": \"clstext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clstext{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmddef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmddef*[${2:options%keyvals}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmddef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmddef*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmddef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmddef[${2:options%keyvals}]{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmddef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmddef{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmddefsyntax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cmddefsyntax{${1:keyvals}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmdmod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdmod{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cmdmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"cmdmod{${1:arg}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"codebackslash\"\n    },\n    {\n      \"name\": \"codepar\"\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"common\"\n    },\n    {\n      \"name\": \"conditionsyntax\"\n    },\n    {\n      \"name\": \"conno\"\n    },\n    {\n      \"name\": \"conyes\"\n    },\n    {\n      \"name\": \"csfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csfmt{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"csmetafmt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"csmetafmt{${1:cmd-prefix}}{${2:meta-text}}{${3:cmd-suffix}}\"\n      }\n    },\n    {\n      \"name\": \"csmetametafmt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"csmetametafmt{${1:cmd-prefix}}{${2:meta-text1}}{${3:separator}}{${4:meta-text2}}{${5:cmd-suffix}}\"\n      }\n    },\n    {\n      \"name\": \"csoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csoptfmt{${1:cmd-option}}\"\n      }\n    },\n    {\n      \"name\": \"ctanmirror\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanmirror{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctanmirrordocnofn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanmirrordocnofn{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctanmirrornofn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanmirrornofn{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"CTANpkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CTANpkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgmirror\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanpkgmirror{${1:package}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanref{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctansupportmirror\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctansupportmirror{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctr{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ctr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ctr{${1:counter}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"ctrdef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrdef*{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ctrdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrdef{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ctrfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrfmt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ctrtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrtext{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"dcolon\"\n    },\n    {\n      \"name\": \"dcomma\"\n    },\n    {\n      \"name\": \"defsemanticcmd\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"defsemanticcmd[${4:color}]{${1:cmd}}{${2:font-cmd}}{${3:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"defsemanticcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defsemanticcmd{${1:cmd}}{${2:font-cmd}}{${3:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"defval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defval{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"deprecated\"\n    },\n    {\n      \"name\": \"dequals\"\n    },\n    {\n      \"name\": \"desc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"desc{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"dfullstop\"\n    },\n    {\n      \"name\": \"dhyphen\"\n    },\n    {\n      \"name\": \"dickimawhref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dickimawhref{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"dickimawhrefnofn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dickimawhrefnofn{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"docref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"docref{${1:link text%text}}{${2:PDF-file}}\"\n      }\n    },\n    {\n      \"name\": \"dsb\"\n    },\n    {\n      \"name\": \"dunderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"env{${1:envname}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"envdef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"envdef*[${2:options%keyvals}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envdef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envdef*{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"envdef[${2:options%keyvals}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envdef{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envfmt{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"envtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envtext{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"eTeX\"\n    },\n    {\n      \"name\": \"exampleref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exampleref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Exampleref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Exampleref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"exampleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exampleref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Exampleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Exampleref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"examplesref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examplesref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Examplesref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Examplesref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"examplesref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"examplesref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Examplesref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Examplesref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"ext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ext{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"ext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ext{${1:extension}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"exttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exttext{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"faqitem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"faqitem{${1:item}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"faqpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"faqpage{${1:category}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"faqspkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faqspkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"field\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"field{${1:field}}{${2:entries}}\"\n      }\n    },\n    {\n      \"name\": \"figureref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Figureref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figureref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figureref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Figureref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figureref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figuresref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figuresref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Figuresref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figuresref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"figuresref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figuresref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Figuresref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figuresref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filedef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filedef{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filefmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filefmt{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fnsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsym{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"fnsym*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsym*{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"fnsymtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fnsymtext{${1:num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"gabbr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gabbr{${1:abbrev-name}}{${2:short}}{${3:long}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gacr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gacr{${1:acronym}}{${2:short}}{${3:long}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gallery\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gallery{${1:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"gallerypage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gallerypage{${1:page-name%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"galleryref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"galleryref{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"gallerytopic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gallerytopic{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"galleryurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"galleryurl{${1:URL-path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"gapp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gapp{${1:application-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcls\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcls{${1:class-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gclsboolopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gclsboolopt{${1:class-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gclsopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gclsopt{${1:class-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcmd{${1:cmd-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcmdmeta\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gcmdmeta{${1:cmd-prefix}}{${2:meta-text}}{${3:cmd-suffix}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcmdmetameta\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gcmdmetameta{${1:cmd-prefix}}{${2:meta-text1}}{${3:separator}}{${4:meta-text2}}{${5:cmd-suffix}}{${6:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcmds\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcmds{${1:cmd-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcmdsp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcmdsp{${1:cmd-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcond{${1:cmd-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcsboolopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcsboolopt{${1:cmd-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gcsopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcsopt{${1:cmd-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gctr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gctr{${1:counter-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"genv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genv{${1:env-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gext{${1:extension-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gfile{${1:file-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gfilemeta\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gfilemeta{${1:file-prefix}}{${2:meta-text}}{${3:file-suffix}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gfilemetameta\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gfilemetameta{${1:file-prefix}}{${2:meta-text1}}{${3:separator}}{${4:meta-text2}}{${5:file-suffix}}{${6:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gidx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gidx{${1:name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gidxpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gidxpl{${1:name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"glongswitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glongswitch{${1:switch-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"glongswitchpunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glongswitchpunc{${1:switch-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"glsbibwriteentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"glsbibwriteentry{${1:entry}}{${2:entry-label}}{${3:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"glscmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscmd{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"glscsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glscsname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glscsname\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"glscsname[${2:options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gmod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gmod{${1:modifier-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gopt{${1:option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"goptval\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"goptval{${1:option}}{${2:value}}{${3:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gpkg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gpkg{${1:package-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gpunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gpunc{${1:punc-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gpunccmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gpunccmd{${1:punc-name}}{${2:symbol}}{${3:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gshortswitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gshortswitch{${1:switch-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gshortswitchpunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gshortswitchpunc{${1:switch-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gstyboolopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gstyboolopt{${1:package-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gstyopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gstyopt{${1:package-option-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gterm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gterm{${1:term-name}}{${2:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gtermabbr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gtermabbr{${1:term-name}}{${2:short}}{${3:long}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"gtermacr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"gtermacr{${1:acronym}}{${2:short}}{${3:long}}{${4:desc-cmds}}\"\n      }\n    },\n    {\n      \"name\": \"htmlavailable\"\n    },\n    {\n      \"name\": \"icon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icon{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"icontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"idx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idx[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Idx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Idx[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idx\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"idx[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Idx\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Idx[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"idx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Idx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Idx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idx\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"idx{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Idx\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Idx{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"idxc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idxc[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxc\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"idxc[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"idxc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxc{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxc\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"idxc{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"idxf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idxf[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idxn[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxn{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"idxpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Idxpl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Idxpl[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxpl\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"idxpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Idxpl\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Idxpl[${2:options%keyvals}]{${1:label}}[${3:insert}]\"\n      }\n    },\n    {\n      \"name\": \"idxpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Idxpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Idxpl{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"idxpl\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"idxpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"Idxpl\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Idxpl{${1:label}}[${2:insert}]\"\n      }\n    },\n    {\n      \"name\": \"ifnlctdownloadlinks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inapp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inapp{${1:application}}\"\n      }\n    },\n    {\n      \"name\": \"inclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inclass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"initval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initval{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"initvalcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initvalcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"initvalempty\"\n    },\n    {\n      \"name\": \"initvalopt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"initvalopt{${1:option-name}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"initvalref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initvalref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"initvalvaries\"\n    },\n    {\n      \"name\": \"inlineglsdef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineglsdef[${2:type}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"inlineglsdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineglsdef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"inlineidxdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineidxdef{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"Inlineidxdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Inlineidxdef{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"inlineidxfdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineidxfdef{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"inlineidxpdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineidxpdef{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"inlineoptdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineoptdef{${1:option-name}}\"\n      }\n    },\n    {\n      \"name\": \"inlineoptdef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineoptdef[${2:type}]{${1:option-name}}\"\n      }\n    },\n    {\n      \"name\": \"inlinepkgdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinepkgdef{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"inlinepkgdef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinepkgdef[${2:type}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"inlineswitchdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineswitchdef{${1:switch}}\"\n      }\n    },\n    {\n      \"name\": \"inpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inpackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"itemtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"keyvallist\"\n    },\n    {\n      \"name\": \"listofexamples\"\n    },\n    {\n      \"name\": \"longargfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longargfmt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"longswitch\"\n    },\n    {\n      \"name\": \"LuaLaTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"margm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menu{${1:item1,item2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"metafilefmt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"metafilefmt{${1:file-prefix}}{${2:meta-text}}{${3:file-suffix}}\"\n      }\n    },\n    {\n      \"name\": \"MikTeX\"\n    },\n    {\n      \"name\": \"mirrorsamplefile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mirrorsamplefile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nlctcloseparen\"\n    },\n    {\n      \"name\": \"nlctclosesqbracket\"\n    },\n    {\n      \"name\": \"nlctdownloadlinksfalse\"\n    },\n    {\n      \"name\": \"nlctdownloadlinkstrue\"\n    },\n    {\n      \"name\": \"nlctopenparen\"\n    },\n    {\n      \"name\": \"nlctopensqbracket\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oargm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oargm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"opt{${1:option}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"optdefsyntax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optdefsyntax{${1:keyvals}}{${2:option}}\"\n      }\n    },\n    {\n      \"name\": \"opteqvalref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opteqvalref{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"optfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optfmt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optiondef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optiondef*{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optiondef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optiondef{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"options\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"options{${1:opt1,opt2}}\"\n      }\n    },\n    {\n      \"name\": \"optionsor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionsor{${1:opt1,opt2}}\"\n      }\n    },\n    {\n      \"name\": \"optionsto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionsto{${1:opt1}}{${2:opt2}}\"\n      }\n    },\n    {\n      \"name\": \"optionvaldef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionvaldef*{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"optionvaldef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionvaldef{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"opttext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opttext{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optval{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"optvalm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optvalm{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"optvalref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optvalref{${1:option}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"parent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parent{${1:parent}}\"\n      }\n    },\n    {\n      \"name\": \"pdfLaTeX\"\n    },\n    {\n      \"name\": \"pdfTeX\"\n    },\n    {\n      \"name\": \"phyperref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phyperref{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pkgdef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pkgdef*[${2:options%keyvals}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgdef*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgdef*{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pkgdef[${2:options%keyvals}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgdef{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"plabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"plabel[${2:text}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"plabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printicons\"\n    },\n    {\n      \"name\": \"printsummary\"\n    },\n    {\n      \"name\": \"prono\"\n    },\n    {\n      \"name\": \"providedby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providedby{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"proyes\"\n    },\n    {\n      \"name\": \"qt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qtdocref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtdocref{${1:link text%text}}{${2:PDF-file}}\"\n      }\n    },\n    {\n      \"name\": \"qtt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qtt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sectionref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sectionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sectionsref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionsref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionsref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sectionsref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sectionsref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionsref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionsref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sectionsref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"settabcolsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settabcolsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"shortargfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortargfmt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"starredcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"starredcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"sty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sty{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"sty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sty{${1:package}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"styfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"styfmt{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"styoptfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"styoptfmt{${1:package-option}}\"\n      }\n    },\n    {\n      \"name\": \"stytext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stytext{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switch{${1:switch}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"switch{${1:switch}}[${2:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"switchdef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switchdef{${1:switch}}\"\n      }\n    },\n    {\n      \"name\": \"switchtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switchtext{${1:switch}}\"\n      }\n    },\n    {\n      \"name\": \"sym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sym{${1:symname}}\"\n      }\n    },\n    {\n      \"name\": \"syntax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syntax{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tablefnmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefnmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"tablefns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefntext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tablefntext{${1:mark}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tableref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tableref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tableref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tablesref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablesref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Tablesref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tablesref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"tablesref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablesref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"Tablesref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tablesref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"texdocref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdocref{${1:URL-path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"texfaq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texfaq{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"TeXLive\"\n    },\n    {\n      \"name\": \"texseref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texseref{${1:URL-path%URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"tugboat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tugboat{${1:title%text}}{${2:year}}{${3:volume}}{${4:number}}{${5:pdf}}\"\n      }\n    },\n    {\n      \"name\": \"unlimited\"\n    },\n    {\n      \"name\": \"urlfootref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlfootref{${1:URL}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"yes\"\n    },\n    {\n      \"name\": \"createexample\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"createexample{${1:preamble code%text}}{${2:document code%text}}\"\n      }\n    },\n    {\n      \"name\": \"createexample\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"createexample[${3:options%keyvals}]{${1:preamble code%text}}{${2:document code%text}}\",\n        \"keys\": [\n          \"\\\\createexample,\\\\createexample*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"createexample*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"createexample*{${1:preamble code%text}}{${2:document code%text}}\"\n      }\n    },\n    {\n      \"name\": \"createexample*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"createexample*[${3:options%keyvals}]{${1:preamble code%text}}{${2:document code%text}}\",\n        \"keys\": [\n          \"\\\\createexample,\\\\createexample*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nlctuserguidegls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctuserguidegls{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"nlctuserguidegls\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nlctuserguidegls[${2:bib2gls options%keyvals}]{${1:commands}}\",\n        \"keys\": [\n          \"\\\\nlctuserguidegls\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printabbrs\"\n    },\n    {\n      \"name\": \"printabbrs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printabbrs[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbrs,\\\\printcommonoptions,\\\\printterms,\\\\printuserguideindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printcommonoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printcommonoptions{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"printcommonoptions\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printcommonoptions[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\printabbrs,\\\\printcommonoptions,\\\\printterms,\\\\printuserguideindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printterms\"\n    },\n    {\n      \"name\": \"printterms\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printterms[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbrs,\\\\printcommonoptions,\\\\printterms,\\\\printuserguideindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printuserguideindex\"\n    },\n    {\n      \"name\": \"printuserguideindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printuserguideindex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printabbrs,\\\\printcommonoptions,\\\\printterms,\\\\printuserguideindex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abbrpostnamehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acrpostnamehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtoexamplepreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoexamplepreamble{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"addtolistofexamples\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtolistofexamples{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"advantagefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advantagefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"altdocref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"altdocref{${1:text}}{${2:PDF-file}}{${3:html}}\"\n      }\n    },\n    {\n      \"name\": \"appnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appnotefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"asteriskmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badcodedesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badcodesym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badcodetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"banned\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"banneddesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bannedsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bannedtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibglslocationgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bibglslocationgroup{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"bibglslocationgroupsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibglsothergroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibglsothergroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bibglsothergroup{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"bibglsothergrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bibglsothergrouptitle{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"boxtitleshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"childoptval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"childoptval{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"childsummarypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clsdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clsdef[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsdef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"clsdefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clsdefcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clsentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsentryname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"clstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmddefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmddefbookmarkleveloffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmddefcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmddefmodifierhandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmddefmodifierhandler{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"cmdfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmdnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdnotefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"cmdtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codedesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codesym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"counterdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countersym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"createexamplefirstline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"createtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"createtarget{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"csfmtcolourfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csfmtcolourfont{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"csfmtfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csfmtfont{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ctrdefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentcounterlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentsyntax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daggermarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultoptdefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitiondesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitiontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deprecatedbanned\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deprecateddesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deprecatedorbannedfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deprecatedorbannedfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"deprecatedsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deprecatedtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disadvantagefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disadvantagefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"doubledaggermarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrycountprehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entrycountprehook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"entrydefsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"entrysec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"entrysec[${2:opt}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"entrysec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entrysec{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"entryskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enventryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enventryname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"envtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleattachpdficon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleattachtexicon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampledownloadpdficon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampledownloadtexicon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Examplerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplesdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Examplesrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examplesrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Figurerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Figuresrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuresrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedownloadlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filedownloadlink{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"filedownloadsubpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filetag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filetag{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"filteremptylocation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filteremptylocation{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"florettemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmtorcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmtorcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fmtorcode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"fnsymmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsymmark{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"fnsymmarker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsymmarker{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"gathermodifiers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gathermodifiers{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"genericsummaryentryoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genericsummaryentryoption{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"getinitordefval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getinitordefval{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"glsaddterm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsaddterm{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"glsbibwritefield\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsbibwritefield{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrchapterlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrfigurelocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrparagraphlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsectionlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsubparagraphlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsubsectionlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrsubsubsectionlocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glsxtrtablelocfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goptmetaval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hashmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnlctattachpdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotdefaultstatus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnotdefaultstatus{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifshowsummarysubgroupheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowsummarytopgroupheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importantdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importantsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"importanttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"informationdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"informationsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"informationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initcodeenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initordefval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initvalnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initvalnotefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlineoptionvaldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inlineoptionvaldef{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"keyeqvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyeqvalue{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"keyeqvaluem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyeqvaluem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"linkedentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linkedentryname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"listofexampleslabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofexamplesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupencapchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"locationgroupencapchapter{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"locationgroupencapparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupencapsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupencapsubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupencapsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupencapsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkerparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkersection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkersubparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkersubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkersubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkertable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"locationgroupmarkertables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lozengemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maindef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maindef[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"maindef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maindef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mainfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainfmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"mainglsadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mainglsadd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"mainglsaddcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainmatteronly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menufmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"menufmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"menusep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metaboolean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metametafilefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"metametafilefmt{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"nlctattachpdffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctattachpdftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctdefaultafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctdocatnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctdocatnum{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdocsymbolgrouplabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nlctdocsymbolgrouplabel{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdocsymbolgrouptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nlctdocsymbolgrouptitle{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"nlctdownloadlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctdownloadlink{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctexampledisablecmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexampleenvtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexamplefilebasename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexampleimagelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexamplelets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexampletag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexampletagattachfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctexampletitlebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nlctexampletitlebox[${2:opt}]{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctexampletitlebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctexampletitlebox{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctexampletitlefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctexampletitlefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctexampletitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctguideindexinitpostnamehooks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctmodifierglslist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctmodifierlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctmodifiertag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctnovref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguidebibextrapreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguidecustomentryaliases\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguideextrarules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguideignoredpuncrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguideletterrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguideloadgls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nlctuserguideloadgls{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"nlctuserguidepreletterrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctuserguidepuncrules\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nlctusevref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novaluesettingdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novaluesettingsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"novaluesettingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optdefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionlistitemformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionlistitemformat{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"optionlistprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionlisttag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionlisttags\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optiontag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionvaluedesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionvaluesym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionvaluetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optnotefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"optvaldefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optvaldefcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optvalrefeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"optvalrefeq{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pdflongswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pilcrowmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkgdefbookmarklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkgdefcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkgentryname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgentryname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pkgnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgnotefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pkgtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcommandoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printcommandoptions{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"printcommandoptionsprocesshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printcommandoptionsprocesshook{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"printcommonoptionsprocesshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printcommonoptionsprocesshook{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"providedbyfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providedbyfmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"referencemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refslistlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refslistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resultsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resulttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rootsummarypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seclocfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seclocfmt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sectionmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sectionrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sectionsrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionsrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcounterlevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterlevels{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setexamplefontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setexamplefontsize{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"setexamplepreamble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setexamplepreamble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"settermshook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settermshook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"settingstitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupcodeenvfmts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setwidestnamehook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwidestnamehook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"showsummarysubgroupheadersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showsummarysubgroupheaderstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showsummarytopgroupheadersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showsummarytopgroupheaderstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"starmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusbannedsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusbannedtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdefaultsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdefaulttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdeprecatedbannedsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdeprecatedbannedtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdeprecatedsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statusdeprecatedtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statushook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"statushook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"statussym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"statustext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryentryclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentryclass{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentryclassbookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"summaryentryclassbookmark{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentryclassoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryentrycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentrycommand{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentrycommandoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryentryenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentryenvironment{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentryenvironmentoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryentryoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentryoption{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentryoptionvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentryoptionvalue{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentrypackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryentrypackage{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentrypackagebookmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"summaryentrypackagebookmark{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"summaryentrypackageoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryentryskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryhook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summaryhookdoskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryloc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summaryloc{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summarylocfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summarylocfmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summarylocfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarylocwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarynotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summarynotefmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"summarypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarypredesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarysec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarysecnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarysubitemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarysubsec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarysubsecnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summarytagfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"summarytagfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"symboldefinitions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbolentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolentry{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"tablefnfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefnfmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"Tablerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablerefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tablesrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablesrefprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tagsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"targetorhyperlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"targetorhyperlink{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"terminaldesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminalsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"terminaltext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termslocfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"termslocfmt{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"texmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texmeta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"theexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispackage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispackagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleoffsettingdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleoffsettingsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleoffsettingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleonsettingdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleonsettingsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleonsettingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transcriptdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transcriptsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transcripttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodedesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodesym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unicodetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valuesettingdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valuesettingsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valuesettingtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vdoubleasteriskmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warningdesc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warningsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warningtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xrsectionref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrsectionref{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\"\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"glsxtrnewsymbol{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"glsxtrnewsymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"glsxtrnewsymbol[${3:options%keyvals}]{${1:label}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printunsrtsymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printunsrtsymbols[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"glsxtrpostdescsymbol\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"itemdesc\"\n    },\n    {\n      \"name\": \"deflist\"\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"important\"\n    },\n    {\n      \"name\": \"important\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"information\"\n    },\n    {\n      \"name\": \"information\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pinnedbox\"\n    },\n    {\n      \"name\": \"pinnedbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defnbox\"\n    },\n    {\n      \"name\": \"defnbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settingsbox\"\n    },\n    {\n      \"name\": \"settingsbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"terminal\"\n    },\n    {\n      \"name\": \"transcript\"\n    },\n    {\n      \"name\": \"codebox\"\n    },\n    {\n      \"name\": \"codebox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"codebox*\"\n    },\n    {\n      \"name\": \"codebox*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"badcodebox\"\n    },\n    {\n      \"name\": \"unicodebox\"\n    },\n    {\n      \"name\": \"compactcodebox\"\n    },\n    {\n      \"name\": \"compactcodebox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"compactcodebox*\"\n    },\n    {\n      \"name\": \"compactcodebox*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resultbox\"\n    },\n    {\n      \"name\": \"resultbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coderesult\"\n    },\n    {\n      \"name\": \"coderesult\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coderesult*\"\n    },\n    {\n      \"name\": \"coderesult*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unicoderesult\"\n    },\n    {\n      \"name\": \"unicoderesult*\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nlctuserguide#c\": [\n      \"xr\",\n      \"vref\",\n      \"novref\",\n      \"atsymgroup\",\n      \"noatsymgroup\",\n      \"deephierarchy\",\n      \"debug=${1|false,true,showtargets,showaccsupp,showwrgloss,all|}\",\n      \"savewrites\",\n      \"hyperfirst\",\n      \"writeglslabels\",\n      \"writeglslabelnames\",\n      \"toc\",\n      \"numberline\",\n      \"section=${1:section unit}\",\n      \"ucmark\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"savenumberlist\",\n      \"entrycounter\",\n      \"counterwithin=${1:counter}\",\n      \"subentrycounter\",\n      \"style=${1:style-name}\",\n      \"nonumberlist\",\n      \"seeautonumberlist\",\n      \"counter=${1:counter}\",\n      \"nopostdot\",\n      \"nogroupskip\",\n      \"seenoindex=${1|error,warn,ignore|}\",\n      \"esclocations\",\n      \"indexonlyfirst\",\n      \"sanitizesort\",\n      \"sort=${1|none,clear,def,use,standard|}\",\n      \"order=${1|word,letter|}\",\n      \"automake=${1|false,delayed,immediate,makegloss,lite|}\",\n      \"automakegloss\",\n      \"automakeglosslite\",\n      \"disablemakegloss\",\n      \"restoremakegloss\",\n      \"nohypertypes={${1:list}}\",\n      \"nomain\",\n      \"numbers\",\n      \"index\",\n      \"noglossaryindex\",\n      \"acronyms\",\n      \"acronymlists={${1:value}}\",\n      \"shortcuts=${1|acronyms,acro,ac,abbreviations,abbr,acother,abother,other,all,true,none,false|}\",\n      \"mfirstuc=${1|expanded,unexpanded|}\",\n      \"kernelglossredefs={${1:value}}\",\n      \"showtargets=${1|left,right,innerleft,innerright,annoteleft,annoteright|}\",\n      \"postdot\",\n      \"postpunc=${1|comma,dot,none|}\",\n      \"prefix\",\n      \"accsupp\",\n      \"undefaction=${1|warn,error|}\",\n      \"indexcrossrefs\",\n      \"autoseeindex\",\n      \"record=${1|off,only,nameref,hybrid|}\",\n      \"bibglsaux=${1:basename}\",\n      \"equations\",\n      \"docdef=${1|false,true,restricted,atom|}\",\n      \"nomissingglstext\",\n      \"abbreviations\",\n      \"nowarn\",\n      \"nolangwarn\",\n      \"noredefwarn\",\n      \"translate=${1|true,false,babel|}\",\n      \"notranslate\",\n      \"nolong\",\n      \"nolist\",\n      \"notree\",\n      \"nostyles\",\n      \"makeindex\",\n      \"xindy\",\n      \"xindygloss\",\n      \"xindynoglsnumbers\",\n      \"acronym\",\n      \"languages=${1:language}\"\n    ],\n    \"\\\\newabbreviation#c,\\\\newabbr#c\": [\n      \"access=${1:text}\",\n      \"textaccess=${1:text}\",\n      \"pluralaccess=${1:text}\",\n      \"firstaccess=${1:text}\",\n      \"firstpluralaccess=${1:text}\",\n      \"shortaccess=${1:text}\",\n      \"shortpluralaccess=${1:text}\",\n      \"longaccess=${1:text}\",\n      \"longpluralaccess=${1:text}\"\n    ],\n    \"\\\\createexample,\\\\createexample*\": [\n      \"fontsize=${1|8,9,10,11,12,14,17,20|}\",\n      \"class=${1:class}\",\n      \"pagestyle=${1:pagestyle}\",\n      \"graphicsopts={${1:graphics options}}\",\n      \"pages=${1:pages}\",\n      \"pagesep=\",\n      \"tex={${1:tex cmds}}\",\n      \"arara={${1:arara cmds}}\",\n      \"description={${1:text}}\",\n      \"title={${1:text}}\",\n      \"label=\"\n    ],\n    \"\\\\nlctuserguidegls\": [\n      \"charset=${1:encoding name}\",\n      \"interpret-preamble\",\n      \"write-preamble\",\n      \"set-widest\",\n      \"entry-type-aliases={${1:keyvals}}\",\n      \"unknown-entry-alias=${1:value}\",\n      \"action=${1|define,copy,define or copy|}\",\n      \"src={${1:list}}\",\n      \"selection=${1|recorded and deps,recorded and deps and see,recorded and deps and see not also,recorded no deps,recorded and ancestors,deps but not recorded,ancestors but not recorded,selected before,all|}\",\n      \"match={${1:keyvals}}\",\n      \"match-op=${1|and,or|}\",\n      \"not-match={${1:keyvals}}\",\n      \"match-action=${1|filter,add|}\",\n      \"limit=${1:number}\",\n      \"save-child-count\",\n      \"save-sibling-count\",\n      \"save-root-ancestor\",\n      \"flatten\",\n      \"flatten-lonely=${1|false,presort,postsort|}\",\n      \"flatten-lonely-rule=${1|only unrecorded parents,discard unrecorded,no discard|}\",\n      \"strip-missing-parents\",\n      \"missing-parents=${1|strip,warn,create|}\",\n      \"missing-parent-category=${2|same as child,same as base,no value,false,${1:label}|}\",\n      \"group-level=${6|{${1:n}},{>${2:n}},{>=${3:n}},{<${4:n}},{<=${5:n}},all|}\",\n      \"merge-small-groups\",\n      \"merge-small-groups=${1:n}\",\n      \"master=${1:name}\",\n      \"master-resources={${1:list}}\",\n      \"interpret-label-fields\",\n      \"labelify={${1:list}}\",\n      \"labelify-replace={${1:list}}\",\n      \"label-prefix=${1:prefix}\",\n      \"duplicate-label-suffix=${1:suffix}\",\n      \"record-label-prefix=${1:tag}\",\n      \"cs-label-prefix=${1:tag}\",\n      \"ext-prefixes={${1:list}}\",\n      \"prefix-only-existing\",\n      \"save-original-id=${2|false,true,${1:field}|}\",\n      \"save-original-id-action=${1|always,no override,changed override,changes,diff|}\",\n      \"save-definition-index\",\n      \"save-use-index\",\n      \"dependency-fields={${1:list}}\",\n      \"group=${1:label}\",\n      \"category=${2|false,same as entry,same as original entry,same as base,same as type,${1:label}|}\",\n      \"type=${2|false,same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"trigger-type=${1:type}\",\n      \"progenitor-type=${1:type}\",\n      \"progeny-type=${1:type}\",\n      \"adopted-parent-field=${1:field}\",\n      \"abbreviation-name-fallback=${1:field}\",\n      \"ignore-fields={${1:list}}\",\n      \"field-aliases={${1:keyvals}}\",\n      \"replicate-fields={${1:keyvals}}\",\n      \"replicate-override\",\n      \"replicate-missing-field-action=${1|skip,fallback,empty|}\",\n      \"counter=${1:value}\",\n      \"copy-action-group-field=${1:value}\",\n      \"copy-alias-to-see\",\n      \"save-from-see=${1:value}\",\n      \"save-from-seealso=${1:value}\",\n      \"save-from-alias=${1:value}\",\n      \"save-crossref-tail=${1:value}\",\n      \"save-original-entrytype=${1:value}\",\n      \"save-original-entrytype-action=${1|always,no override,changed override,changed,diff,changed no override|}\",\n      \"post-description-dot=${1|none,all,check|}\",\n      \"strip-trailing-nopost=${1|true,false|}\",\n      \"check-end-punctuation={${1:list}}\",\n      \"sort-label-list={${1:list}}\",\n      \"prune-xr\",\n      \"prune-see-match={${1:keyvals}}\",\n      \"prune-see-op=${1|and,or|}\",\n      \"prune-seealso-match={${1:keyvals}}\",\n      \"prune-seealso-op=${1|and,or|}\",\n      \"prune-iterations=${1:number}\",\n      \"bibtex-contributor-fields={${1:list}}\",\n      \"contributor-order=${1|surname,von,forenames|}\",\n      \"encapsulate-fields={${1:keyvals}}\",\n      \"encapsulate-fields*={${1:keyvals}}\",\n      \"format-integer-fields={${1:keyvals}}\",\n      \"format-decimal-fields={${1:keyvals}}\",\n      \"interpret-fields={${1:list}}\",\n      \"interpret-fields-action=${1|replace,replace non empty|}\",\n      \"hex-unicode-fields={${1:list}}\",\n      \"date-time-fields={${1:list}}\",\n      \"date-fields={${1:list}}\",\n      \"time-fields={${1:list}}\",\n      \"date-time-field-format=${1:value}\",\n      \"date-field-format=${1:value}\",\n      \"time-field-format=${1:value}\",\n      \"date-time-field-locale=${1:value}\",\n      \"date-field-locale=${1:value}\",\n      \"time-field-locale=${1:value}\",\n      \"prefix-fields={${1:list}}\",\n      \"append-prefix-field=${1|none,space,space or nbsp|}\",\n      \"append-prefix-field-cs=${1:cs}\",\n      \"append-prefix-field-exceptions=${1:sequence}\",\n      \"append-prefix-field-cs-exceptions=${1:sequence}\",\n      \"append-prefix-field-nbsp-match=${1:pattern}\",\n      \"no-case-change-cs={${1:list}}\",\n      \"word-boundaries={${1:list}}\",\n      \"short-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"long-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"name-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"description-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"field-case-change={${1:keyvals}}\",\n      \"short-plural-suffix=${1:suffix}\",\n      \"dual-short-plural-suffix=${1:suffix}\",\n      \"save-locations=${1|false,true,see,see not also,alias only|}\",\n      \"save-loclist\",\n      \"save-primary-locations=${1|false,retain,default format,start,remove|}\",\n      \"save-principal-locations=${1|false,retain,default format,start,remove|}\",\n      \"primary-location-formats={${1:list}}\",\n      \"principal-location-formats={${1:list}}\",\n      \"primary-loc-counters=${1|combine,match,split|}\",\n      \"principal-loc-counters=${1|combine,match,split|}\",\n      \"min-loc-range=${1:value}\",\n      \"max-loc-diff=${1:integer}\",\n      \"suffixF=${1:value}\",\n      \"suffixFF=${1:value}\",\n      \"compact-ranges=${1:value}\",\n      \"see=${1|omit,before,after|}\",\n      \"seealso=${1|omit,before,after|}\",\n      \"alias=${1|omit,before,after|}\",\n      \"alias-loc=${1|keep,transfer,omit|}\",\n      \"loc-prefix=${1:value}\",\n      \"loc-prefix-def=${1|global,local,individual|}\",\n      \"loc-suffix=${1:value}\",\n      \"loc-suffix-def=${1|global,local,individual|}\",\n      \"loc-counters={${1:list}}\",\n      \"save-index-counter=${1:value}\",\n      \"supplemental-locations=${1:basename}\",\n      \"supplemental-selection=${1:value}\",\n      \"supplemental-category=${1:value}\",\n      \"sort=${1:value}\",\n      \"shuffle=${1:seed}\",\n      \"sort-field=${1:field}\",\n      \"missing-sort-fallback=${1:field}\",\n      \"custom-sort-fallbacks={${1:keyvals}}\",\n      \"entry-sort-fallback=${1:field}\",\n      \"abbreviation-sort-fallback=${1:field}\",\n      \"symbol-sort-fallback=${1:field}\",\n      \"bibtexentry-sort-fallback=${1:field}\",\n      \"field-concat-sep=${1:separator}\",\n      \"trim-sort\",\n      \"sort-replace={${1:list}}\",\n      \"sort-rule=${1:value}\",\n      \"break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"break-marker=${1:marker}\",\n      \"break-at-match={${1:keyvals}}\",\n      \"break-at-match-op=${1|and,or|}\",\n      \"break-at-not-match={${1:keyvals}}\",\n      \"sort-number-pad=${1:number}\",\n      \"sort-pad-plus=${1:marker}\",\n      \"sort-pad-minus=${1:marker}\",\n      \"identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"sort-suffix-marker=${1:marker}\",\n      \"encapsulate-sort=${1:csname}\",\n      \"strength=${1|primary,secondary,tertiary,identical|}\",\n      \"decomposition=${1|canonical,full,none|}\",\n      \"letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"numeric-sort-pattern=${1:value}\",\n      \"numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"secondary=${1:value}\",\n      \"secondary-match={${1:keyvals}}\",\n      \"secondary-not-match={${1:keyvals}}\",\n      \"secondary-match-op=${1|and,or|}\",\n      \"secondary-match-action=${1|filter,add|}\",\n      \"secondary-missing-sort-fallback=${1:field}\",\n      \"secondary-trim-sort\",\n      \"secondary-sort-replace={${1:list}}\",\n      \"secondary-sort-rule=${1:value}\",\n      \"secondary-break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"secondary-break-marker=${1:marker}\",\n      \"secondary-break-at-match={${1:keyvals}}\",\n      \"secondary-break-at-match-op=${1|and,or|}\",\n      \"secondary-break-at-not-match={${1:keyvals}}\",\n      \"secondary-sort-number-pad=${1:number}\",\n      \"secondary-sort-pad-plus=${1:marker}\",\n      \"secondary-sort-pad-minus=${1:marker}\",\n      \"secondary-identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"secondary-sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"secondary-sort-suffix-marker=${1:marker}\",\n      \"secondary-strength=${1|primary,secondary,tertiary,identical|}\",\n      \"secondary-decomposition=${1|canonical,full,none|}\",\n      \"secondary-letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"secondary-letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"secondary-numeric-sort-pattern=${1:value}\",\n      \"secondary-numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"secondary-date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"secondary-date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"secondary-group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"dual-prefix=${1:prefix}\",\n      \"primary-dual-dependency\",\n      \"combine-dual-locations=${1|false,both,dual,primary,dual retain principal,primary retain principal|}\",\n      \"dual-type=${2|false,same as entry,same as original entry,same as base,same as primary,same as parent,same as category,${1:label}|}\",\n      \"dual-category=${2|false,same as entry,same as original entry,same as base,same as primary,same as type,${1:label}|}\",\n      \"dual-counter=${1:value}\",\n      \"dual-short-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"dual-long-case-change=${1|white space,cs space,dash,nbsp|}\",\n      \"dual-field=${1:value}\",\n      \"dual-date-time-field-format=${1:value}\",\n      \"dual-date-field-format=${1:value}\",\n      \"dual-time-field-format=${1:value}\",\n      \"dual-date-time-field-locale=${1:value}\",\n      \"dual-date-field-locale=${1:value}\",\n      \"date-time-field-locale=${1:value}\",\n      \"dual-sort=${1:value}\",\n      \"dual-sort-field=${1:value}\",\n      \"dual-missing-sort-fallback=${1:field}\",\n      \"dual-trim-sort\",\n      \"dual-sort-replace={${1:list}}\",\n      \"dual-sort-rule=${1:value}\",\n      \"dual-break-at=${1|word,character,sentence,upper-notlower,upper-upper,upper-notlower-word,upper-upper-word,none|}\",\n      \"dual-break-marker=${1:marker}\",\n      \"dual-break-at-match={${1:keyvals}}\",\n      \"dual-break-at-match-op=${1|and,or|}\",\n      \"dual-break-at-not-match={${1:keyvals}}\",\n      \"dual-sort-number-pad=${1:number}\",\n      \"dual-sort-pad-plus=${1:marker}\",\n      \"dual-sort-pad-minus=${1:marker}\",\n      \"dual-identical-sort-action=${2|none,def,use,id,original id,${1:field}|}\",\n      \"dual-sort-suffix=${2|none,non-unique,${1:field}|}\",\n      \"dual-sort-suffix-marker=${1:marker}\",\n      \"dual-strength=${1|primary,secondary,tertiary,identical|}\",\n      \"dual-decomposition=${1|canonical,full,none|}\",\n      \"dual-letter-number-rule=${1|before letter,after letter,between,first,last|}\",\n      \"dual-letter-number-punc-rule=${1|punc-space-first,punc-space-last,space-punc-first,space-punc-last,space-first-punc-last,punc-first-space-last,punc-first-space-zero,punc-last-space-zero,punc-first-space-zero-match-next,punc-last-space-zero-match-next|}\",\n      \"dual-numeric-sort-pattern=${1:value}\",\n      \"dual-numeric-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"dual-date-sort-locale=${2|locale,doc,${1:lang-tag}|}\",\n      \"dual-date-sort-format=${2|default,short,medium,long,full,${1:pattern}|}\",\n      \"dual-group-formation=${1|default,codepoint,unicode category,unicode script,unicode category and script|}\",\n      \"dual-entry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-abbrv-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-abbrventry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-symbol-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexentry-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexsymbol-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-indexabbrv-map={{${1:list1}},{${2:list2}}}\",\n      \"dual-entry-backlink\",\n      \"dual-abbrv-backlink\",\n      \"dual-symbol-backlink\",\n      \"dual-abbrventry-backlink\",\n      \"dual-entryabbrv-backlink\",\n      \"dual-indexentry-backlink\",\n      \"dual-indexsymbol-backlink\",\n      \"dual-indexabbrv-backlink\",\n      \"dual-backlink\",\n      \"tertiary-prefix=${1:prefix}\",\n      \"tertiary-type=${1:value}\",\n      \"tertiary-category=${1:value}\",\n      \"compound-options-global\",\n      \"compound-dependent\",\n      \"compound-add-hierarchy\",\n      \"compound-has-records\",\n      \"compound-adjust-name=${1|false,unique,once|}\",\n      \"compound-main-type=${2|same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"compound-other-type=${2|same as main,same as entry,same as original entry,same as base,same as category,same as parent,${1:label}|}\",\n      \"compound-type-override\",\n      \"compound-write-def=${1|none,all,ref|}\"\n    ],\n    \"\\\\printabbrs,\\\\printcommonoptions,\\\\printterms,\\\\printuserguideindex\": [\n      \"title=\",\n      \"toctitle=\",\n      \"style=\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|word,letter,standard,use,def,nocase,case|}\",\n      \"target\",\n      \"targetnameprefix=${1:prefix}\",\n      \"prefix=${1:prefix}\",\n      \"label=\",\n      \"groups\",\n      \"leveloffset=${1:<n> or ++<n>}\"\n    ],\n    \"\\\\begin{warning},\\\\begin{important},\\\\begin{information},\\\\begin{pinnedbox},\\\\begin{defnbox},\\\\begin{settingsbox},\\\\begin{codebox},\\\\begin{codebox*},\\\\begin{compactcodebox},\\\\begin{compactcodebox*},\\\\begin{resultbox},\\\\begin{coderesult},\\\\begin{coderesult*}\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignore|}\",\n      \"savelowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"nameref=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"graphical environment=${1:envname}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\",\n      \"\",\n      \"frame style={${1:TikZ options}}\",\n      \"frame style image=${1:file name}\",\n      \"frame style tile={${1:graphics options}}{${2:file}}\",\n      \"frame hidden\",\n      \"interior style={${1:TikZ options}}\",\n      \"interior style image=${1:file name}\",\n      \"interior style tile={${1:graphics options}}{${2:file}}\",\n      \"interior hidden\",\n      \"segmentation style={${1:TikZ options}}\",\n      \"segmentation hidden\",\n      \"title style={${1:TikZ options}}\",\n      \"title style image=${1:file name}\",\n      \"title style tile={${1:graphics options}}{${2:file}}\",\n      \"title hidden\",\n      \"titlerule style={${1:TikZ options}}\",\n      \"tcb fill frame\",\n      \"tcb fill interior\",\n      \"tcb fill title\",\n      \"attach boxed title to top left\",\n      \"attach boxed title to top left={${1:boxtitle options}}\",\n      \"attach boxed title to top text left\",\n      \"attach boxed title to top text left={${1:boxtitle options}}\",\n      \"attach boxed title to top center\",\n      \"attach boxed title to top center={${1:boxtitle options}}\",\n      \"attach boxed title to top right\",\n      \"attach boxed title to top right={${1:boxtitle options}}\",\n      \"attach boxed title to top text right\",\n      \"attach boxed title to top text right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom left\",\n      \"attach boxed title to bottom left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text left\",\n      \"attach boxed title to bottom text left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom center\",\n      \"attach boxed title to bottom center={${1:boxtitle options}}\",\n      \"attach boxed title to bottom right\",\n      \"attach boxed title to bottom right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text right\",\n      \"attach boxed title to bottom text right={${1:boxtitle options}}\",\n      \"attach boxed title to top\",\n      \"attach boxed title to top={${1:boxtitle options}}\",\n      \"attach boxed title to top*\",\n      \"attach boxed title to top*={${1:boxtitle options}}\",\n      \"attach boxed title to bottom\",\n      \"attach boxed title to bottom={${1:boxtitle options}}\",\n      \"attach boxed title to bottom*\",\n      \"attach boxed title to bottom*={${1:boxtitle options}}\",\n      \"flip title\",\n      \"flip title={${1:boxtitle options}}\",\n      \"boxed title size=${1|title,standard,copy|}\",\n      \"boxed title style={${1:options}}\",\n      \"no boxed title style\",\n      \"hbox boxed title\",\n      \"minipage boxed title\",\n      \"minipage boxed title=\",\n      \"minipage boxed title*\",\n      \"minipage boxed title*=\",\n      \"tikznode boxed title={${1:TikZ options}}\",\n      \"varwidth boxed title\",\n      \"varwidth boxed title=\",\n      \"varwidth boxed title*\",\n      \"varwidth boxed title*=\",\n      \"watermark text=${1:text}\",\n      \"watermark text on=${1:part} is ${2:text}\",\n      \"watermark graphics=${1:file name}\",\n      \"watermark graphics on=${1:part} is ${2:file}\",\n      \"watermark tikz={${1:code}}\",\n      \"watermark tikz on=${1:part} is ${2:code}\",\n      \"no watermark\",\n      \"watermark opacity=${1:fraction}\",\n      \"watermark zoom=${1:fraction}\",\n      \"watermark shrink=${1:fraction}\",\n      \"watermark overzoom=${1:fraction}\",\n      \"watermark stretch=${1:fraction}\",\n      \"watermark color=\",\n      \"clip watermark\",\n      \"clip title\",\n      \"clip upper\",\n      \"clip lower\",\n      \"borderline={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no borderline\",\n      \"show bounding box\",\n      \"show bounding box=\",\n      \"borderline north={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline south={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline east={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline west={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline horizontal={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline vertical={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no shadow\",\n      \"drop shadow\",\n      \"drop shadow=\",\n      \"drop fuzzy shadow\",\n      \"drop fuzzy shadow=\",\n      \"drop midday shadow\",\n      \"drop midday shadow=\",\n      \"drop fuzzy midday shadow\",\n      \"drop fuzzy midday shadow=\",\n      \"halo\",\n      \"halo=${1:size} with ${2:color}\",\n      \"fuzzy halo\",\n      \"fuzzy halo=${1:size} with ${2:color}\",\n      \"drop shadow southeast\",\n      \"drop shadow southeast=\",\n      \"drop shadow south\",\n      \"drop shadow south=\",\n      \"drop shadow southwest\",\n      \"drop shadow southwest=\",\n      \"drop shadow west\",\n      \"drop shadow west=\",\n      \"drop shadow northwest\",\n      \"drop shadow northwest=\",\n      \"drop shadow north\",\n      \"drop shadow north=\",\n      \"drop shadow northeast\",\n      \"drop shadow northeast=\",\n      \"drop shadow east\",\n      \"drop shadow east=\",\n      \"drop fuzzy shadow southeast\",\n      \"drop fuzzy shadow southeast=\",\n      \"drop fuzzy shadow south\",\n      \"drop fuzzy shadow south=\",\n      \"drop fuzzy shadow southwest\",\n      \"drop fuzzy shadow southwest=\",\n      \"drop fuzzy shadow west\",\n      \"drop fuzzy shadow west=\",\n      \"drop fuzzy shadow northwest\",\n      \"drop fuzzy shadow northwest=\",\n      \"drop fuzzy shadow north\",\n      \"drop fuzzy shadow north=\",\n      \"drop fuzzy shadow northeast\",\n      \"drop fuzzy shadow northeast=\",\n      \"drop fuzzy shadow east\",\n      \"drop fuzzy shadow east=\",\n      \"drop lifted shadow\",\n      \"drop lifted shadow=\",\n      \"drop small lifted shadow\",\n      \"drop small lifted shadow=\",\n      \"drop large lifted shadow\",\n      \"drop large lifted shadow=\",\n      \"shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:TikZ options}}\",\n      \"fuzzy shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:step}}{${5:TikZ options}}\",\n      \"smart shadow arc\",\n      \"lifted shadow={${1:xshift}}{${2:yshift}}{${3:bend}}{${4:step}}{${5:TikZ options}}\",\n      \"tikz={${1:TikZ options}}\",\n      \"tikz reset\",\n      \"at begin tikz={${1:TikZ code}}\",\n      \"at begin tikz reset\",\n      \"at end tikz={${1:TikZ code}}\",\n      \"at end tikz reset\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:fraction}\",\n      \"remember\",\n      \"remember as=${1:name}\",\n      \"underlay={${1:code}}\",\n      \"no underlay\",\n      \"underlay broken={${1:code}}\",\n      \"underlay unbroken={${1:code}}\",\n      \"no underlay unbroken\",\n      \"underlay first={${1:code}}\",\n      \"no underlay first\",\n      \"underlay middle={${1:code}}\",\n      \"no underlay middle\",\n      \"underlay last={${1:code}}\",\n      \"no underlay last\",\n      \"underlay boxed title={${1:code}}\",\n      \"no underlay boxed title\",\n      \"underlay unbroken and first={${1:code}}\",\n      \"underlay middle and last={${1:code}}\",\n      \"underlay unbroken and last={${1:code}}\",\n      \"underlay first and middle={${1:code}}\",\n      \"finish={${1:code}}\",\n      \"no finish\",\n      \"finish broken={${1:code}}\",\n      \"finish unbroken={${1:code}}\",\n      \"no finish unbroken\",\n      \"finish first={${1:code}}\",\n      \"no finish first\",\n      \"finish middle={${1:code}}\",\n      \"no finish middle\",\n      \"finish last={${1:code}}\",\n      \"no finish last\",\n      \"finish unbroken and first={${1:code}}\",\n      \"finish middle and last={${1:code}}\",\n      \"finish unbroken and last={${1:code}}\",\n      \"finish first and middle={${1:code}}\",\n      \"hyperref=${1:marker}\",\n      \"hyperref interior=${1:marker}\",\n      \"hyperref title=${1:marker}\",\n      \"hyperref node={${1:marker}}{${2:node}}\",\n      \"hyperlink=${1:marker}\",\n      \"hyperlink interior=${1:marker}\",\n      \"hyperlink title=${1:marker}\",\n      \"hyperlink node={${1:marker}}{${2:node}}\",\n      \"hyperurl=${1:URL}\",\n      \"hyperurl interior=${1:URL}\",\n      \"hyperurl title=${1:URL}\",\n      \"hyperurl node={${1:URL}}{${2:node}}\",\n      \"hyperurl*={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* interior={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* title={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* node={${1:hyperref options}}{${2:URL}}{${3:node}}\",\n      \"draftmode\",\n      \"standard\",\n      \"standard jigsaw\",\n      \"enhanced\",\n      \"enhanced standard\",\n      \"blank\",\n      \"enhanced jigsaw\",\n      \"enhanced standard jigsaw\",\n      \"marker\",\n      \"bicolor\",\n      \"colbacklower=\",\n      \"opacitybacklower=${1:fraction}\",\n      \"overlaplower=\",\n      \"bicolor jigsaw\",\n      \"tile\",\n      \"beamer\",\n      \"widget\",\n      \"empty\",\n      \"blanker\",\n      \"blankest\",\n      \"spartan\",\n      \"draft\",\n      \"freelance\",\n      \"extend freelance={${1:options}}\",\n      \"extend freelancefirst={${1:options}}\",\n      \"extend freelancemiddle={${1:options}}\",\n      \"extend freelancelast={${1:options}}\",\n      \"only=<${1:overlay spec}>{${2:options}}\",\n      \"hide=<${1:overlay spec}>\",\n      \"beamer hidden/.style={${1:options}}\",\n      \"alert=<${1:overlay spec}>\",\n      \"beamer alerted/.style={${1:options}}\",\n      \"\",\n      \"breakable\",\n      \"breakable=${1|true,false,unlimited|}\",\n      \"unbreakable\",\n      \"enforce breakable\",\n      \"title after break=${1:text}\",\n      \"notitle after break\",\n      \"adjusted title after break=${1:text}\",\n      \"lines before break=${1:number}\",\n      \"break at=${1:length1/length2/...}\",\n      \"enlargepage=${1:length1/length2/...}\",\n      \"enlargepage flexible=\",\n      \"compress page\",\n      \"compress page=${1|all,baselineskip,none|}\",\n      \"shrink break goal=\",\n      \"use color stack\",\n      \"toprule at break=\",\n      \"bottomrule at break=\",\n      \"topsep at break=\",\n      \"bottomsep at break=\",\n      \"pad before break=\",\n      \"pad before break*=\",\n      \"pad after break=\",\n      \"pad at break=\",\n      \"pad at break*=\",\n      \"height fixed for=${1|none,first,middle,last,first and middle,middle and last,all|}\",\n      \"vfill before first\",\n      \"segmentation at break\",\n      \"extras={${1:options}}\",\n      \"no extras\",\n      \"extras broken={${1:options}}\",\n      \"extras unbroken={${1:options}}\",\n      \"no extras unbroken\",\n      \"extras first={${1:options}}\",\n      \"no extras first\",\n      \"extras middle={${1:options}}\",\n      \"no extras middle\",\n      \"extras last={${1:options}}\",\n      \"no extras last\",\n      \"extras unbroken and first={${1:options}}\",\n      \"extras middle and last={${1:options}}\",\n      \"extras unbroken and last={${1:options}}\",\n      \"extras first and middle={${1:options}}\",\n      \"extras title after break={${1:options}}\",\n      \"no extras title after break\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nlctuserguide#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"flqq\"\n    },\n    {\n      \"name\": \"frqq\"\n    },\n    {\n      \"name\": \"ruble\"\n    },\n    {\n      \"name\": \"ellipsis\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nmbib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"natbib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multibibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multibibliography{${1:bibfile1,bibfile2,...}}\"\n      }\n    },\n    {\n      \"name\": \"multibibliographystyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multibibliographystyle{${1:type%keyvals}}{${2:style}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"citealn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealn{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeall{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"citeall*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeall*{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"printbibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbibliography{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmbibRedirectLinks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nmbibRedirectLinks{${1:source type%keyvals}}{${2:target type}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmbibLink\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nmbibLink{${1:keylist}}{${2:type%keyvals}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"timelinerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencerefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timelinebibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencebibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsbibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multibibliographyfilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multibibliographyfilename{${1:type%keyvals}}{${2:filename%file}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmbibBasetype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmbibBasetype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmbibSetCiteall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmbibSetCiteall{${1:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"nmbibKEY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmbibNAME\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmbibDATE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmbibNUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmbibSetBiblabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nmbibSetBiblabel{${1:type%keyvals}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmbibYearSuffixOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmbibYearSuffixOn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nmbib#c\": [\n      \"round\",\n      \"square\",\n      \"curly\",\n      \"angle\",\n      \"semicolon\",\n      \"colon\",\n      \"comma\",\n      \"authoryear\",\n      \"numbers\",\n      \"super\",\n      \"sort\",\n      \"sort&compress\",\n      \"compress\",\n      \"longnamesfirst\",\n      \"sectionbib\",\n      \"nonamebreak\",\n      \"merge\",\n      \"elide\",\n      \"mcite\"\n    ],\n    \"\\\\multibibliographystyle,\\\\printbibliography,\\\\nmbibRedirectLinks,\\\\nmbibLink,\\\\multibibliographyfilename,\\\\nmbibBasetype,\\\\nmbibSetBiblabel\": [\n      \"timeline\",\n      \"sequence\",\n      \"authors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nmbib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nndraw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nnlayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnlayer{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nnlayer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nnlayer[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\nnlayer#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nnlayerNoText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnlayerNoText{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifnnlayerHasBias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerHasBiastrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerHasBiasfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerBias\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlayerBiasColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumlayers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenninputlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelastnnsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffullyconnectednnInout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnInouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnInoutfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnOutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnLayersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnBiasX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnBiasY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnTitleY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullyconnectednnTextWidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullyconnectednn\"\n    },\n    {\n      \"name\": \"fullyconnectednn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{fullyconnectednn}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{fullyconnectednn}#c\": [\n      \"input=\",\n      \"output=\",\n      \"layersep=${1:number}\",\n      \"biasx=${1:number}\",\n      \"biasy=${1:number}\",\n      \"titley=${1:number}\",\n      \"inout\",\n      \"text width=\"\n    ],\n    \"\\\\nnlayer#c\": [\n      \"title=${1:text}\",\n      \"text=${1:text}\",\n      \"hasbias\",\n      \"bias=\",\n      \"color=\",\n      \"biascolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nnext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Next\"\n    },\n    {\n      \"name\": \"NNext\"\n    },\n    {\n      \"name\": \"Last\"\n    },\n    {\n      \"name\": \"LLast\"\n    },\n    {\n      \"name\": \"nextx\",\n      \"if\": \"expex\"\n    },\n    {\n      \"name\": \"anextx\",\n      \"if\": \"expex\"\n    },\n    {\n      \"name\": \"lastx\",\n      \"if\": \"expex\"\n    },\n    {\n      \"name\": \"blastx\",\n      \"if\": \"expex\"\n    },\n    {\n      \"name\": \"bblastx\",\n      \"if\": \"expex\"\n    },\n    {\n      \"name\": \"printtmpcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printtmpcounter{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"settmpcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settmpcounter{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"thetmpcounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nnext#c\": [\n      \"linguex\",\n      \"expex\",\n      \"noparens\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nnext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nodetree-embed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NodetreeSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeEmbedCmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeEmbedCmd{${1:TeX markup}}\"\n      }\n    },\n    {\n      \"name\": \"NodetreeEmbedCmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NodetreeEmbedCmd[${2:options%keyvals}]{${1:TeX markup}}\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeEmbedInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeEmbedInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"NodetreeEmbedInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NodetreeEmbedInput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeSetOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NodetreeSetOption[${2:option%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeResetOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeResetOption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeReset\"\n    },\n    {\n      \"name\": \"NodetreeRegisterCallback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeRegisterCallback{${1:callbacks}}\"\n      }\n    },\n    {\n      \"name\": \"NodetreeUnregisterCallback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeUnregisterCallback{${1:callbacks}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NodetreeEmbedView\"\n    },\n    {\n      \"name\": \"NodetreeEmbedView\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeEmbedEnv\"\n    },\n    {\n      \"name\": \"NodetreeEmbedEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\": [\n      \"channel=${1:output channel}\",\n      \"callback={${1:callbacks}}\",\n      \"verbosity=${1:integer}\",\n      \"color=${1|colored,no|}\",\n      \"unit=${1|pt,pc,in,bp,cm,mm,dd,cc,sp,ex,em|}\",\n      \"decimalplaces=${1:integer}\",\n      \"theme=${1|bwdark,bwlight,monokaisoda|}\",\n      \"thememode=${1|dark,light|}\",\n      \"font=${1:font name}\",\n      \"fontsize=${1:fontsize cmd}\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showmarkup\"\n    ],\n    \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\": [\n      \"channel\",\n      \"callback\",\n      \"verbosity\",\n      \"color\",\n      \"unit\",\n      \"decimalplaces\",\n      \"theme\",\n      \"thememode\",\n      \"font\",\n      \"fontsize\",\n      \"firstline\",\n      \"lastline\",\n      \"showmarkup\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nodetree-embed#c,\\\\NodetreeSet,\\\\begin{NodetreeEmbedView},\\\\begin{NodetreeEmbedEnv},\\\\NodetreeEmbedCmd,\\\\NodetreeEmbedInput,\\\\nodetreeterminalemulator\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nodetree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NodetreeSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/nodetree#c,\\\\NodetreeSet,\\\\nodetreeset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeSetOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NodetreeSetOption[${2:option%keyvals}]{${1:value}}\",\n        \"keys\": [\n          \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeResetOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeResetOption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodetreeReset\"\n    },\n    {\n      \"name\": \"NodetreeRegisterCallback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeRegisterCallback{${1:callbacks}}\"\n      }\n    },\n    {\n      \"name\": \"NodetreeUnregisterCallback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodetreeUnregisterCallback{${1:callbacks}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nodetree#c,\\\\NodetreeSet,\\\\nodetreeset\": [\n      \"channel=${1:output channel}\",\n      \"callback={${1:callbacks}}\",\n      \"verbosity=${1:integer}\",\n      \"color=${1|colored,no|}\",\n      \"unit=${1|pt,pc,in,bp,cm,mm,dd,cc,sp,ex,em|}\",\n      \"decimalplaces=${1:integer}\"\n    ],\n    \"\\\\NodetreeSetOption,\\\\nodetreeoption,\\\\NodetreeResetOption\": [\n      \"channel\",\n      \"callback\",\n      \"verbosity\",\n      \"color\",\n      \"unit\",\n      \"decimalplaces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nodetree#c,\\\\NodetreeSet,\\\\nodetreeset\"\n  ]\n}"
  },
  {
    "path": "dev/packages/noindentafter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NoIndentAfterEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoIndentAfterEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NoIndentAfterCmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoIndentAfterCmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NoIndentAfterThis\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/noitcrul.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"robustcommand\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"noitUnderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noitUnderline{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nolbreaks.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nolbreaks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolbreaks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nolbreaks*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolbreaks*{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nomemoize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mmzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mmznext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmznext{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"nommzkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nommzkeys{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"mmz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmz{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"mmz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mmz[${2:options%keyvals}]{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"nommz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nommz{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"nommz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nommz[${2:options%keyvals}]{${1:code%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifmemoize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memoizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmemoizing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinmemoize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMemoizing{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfMemoizing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"IfMemoizing[${4:offset}]{${1:name}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"mmzAbort\"\n    },\n    {\n      \"name\": \"mmzUnmemoizable\"\n    },\n    {\n      \"name\": \"mmzNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzForceNoRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mmzForceNoRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mmzContext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzContextExtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzCCMemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExternPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzExtraPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmzTracingOff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"memoize\"\n    },\n    {\n      \"name\": \"memoize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"nomemoize\"\n    },\n    {\n      \"name\": \"nomemoize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nomencl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"array\",\n      \"if\": \"nomentbl\"\n    },\n    {\n      \"name\": \"longtable\",\n      \"if\": \"nomentbl\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"nomentbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makenomenclature\"\n    },\n    {\n      \"name\": \"printnomenclature\"\n    },\n    {\n      \"name\": \"printnomenclature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnomenclature[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nomenclature[${3:prefix}]{${1:symbol}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nomenclature{${1:symbol}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"nomrefeq\"\n    },\n    {\n      \"name\": \"nomrefpage\"\n    },\n    {\n      \"name\": \"nomrefeqpage\"\n    },\n    {\n      \"name\": \"nomnorefeq\"\n    },\n    {\n      \"name\": \"nomnorefpage\"\n    },\n    {\n      \"name\": \"nomnorefeqpage\"\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"nomenclature[${5:prefix}]{${1:symbol}}{${2:description}}{${3:units}}{${4:note}}\"\n      }\n    },\n    {\n      \"name\": \"nomenclature\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nomenclature{${1:symbol}}{${2:description}}{${3:units}}{${4:note}}\"\n      }\n    },\n    {\n      \"name\": \"setnomtableformat\",\n      \"if\": \"nomentbl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnomtableformat{${1:column format}}\"\n      }\n    },\n    {\n      \"name\": \"nomlabelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomAname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomGname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomXname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomZname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nompreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nompostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomentryend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqdeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomeqref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomeqref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nomeqref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomeqref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nompageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nompageref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"printglossary\",\n      \"if\": \"compatible\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thenomenclature\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/non-decimal-units.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nduKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nduKeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\",\n          \"\\\\nduKeys#c,\\\\nduHeader#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nduValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nduValue{${1:unit group}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"nduValue\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"nduValue{${1:unit group}}[${3:options%keyvals}]{${2:value}}\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"VALUE\"\n    },\n    {\n      \"name\": \"SYMBOL\"\n    },\n    {\n      \"name\": \"nduMath\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nduMath{${1:unit group}}{${2:variable}}{${3:operator}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"nduMath\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"nduMath{${1:unit group}}[${5:options%keyvals}]{${2:variable}}{${3:operator}}{${4:value}}\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nduResult\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nduResult{${1:unit group}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"nduResult\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"nduResult{${1:unit group}}[${3:options%keyvals}]{${2:variable}}\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nduNormalize\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nduNormalize{${1:unit group}}{${2:amount}}{${3:unit}}\"\n      }\n    },\n    {\n      \"name\": \"nduNormalize\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"nduNormalize{${1:unit group}}[${4:options%keyvals}]{${2:amount}}{${3:unit}}\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nduHeader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nduHeader{${1:unit name}}\"\n      }\n    },\n    {\n      \"name\": \"nduHeader\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nduHeader{${1:unit name}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\nduKeys#c,\\\\nduHeader#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"nduSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nduSymbol{${1:unit group}}\"\n      }\n    },\n    {\n      \"name\": \"nduFactor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nduFactor{${1:unit group}}{${2:unit name}}\"\n      }\n    },\n    {\n      \"name\": \"nduNewBaseUnit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nduNewBaseUnit{${1:unit group}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"nduNewUnitGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nduNewUnitGroup{${1:unit group}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"nduNewUnitGroup\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"nduNewUnitGroup{${1:unit group}}{${2:base units}}[${3:cmd}]\"\n      }\n    },\n    {\n      \"name\": \"nduNewUnitGroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nduNewUnitGroup[${3:keyvals}]{${1:unit group}}{${2:base units}}\"\n      }\n    },\n    {\n      \"name\": \"nduNewUnitGroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"nduNewUnitGroup[${3:keyvals}]{${1:unit group}}{${2:base units}}[${4:cmd}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/non-decimal-units#c\": [\n      \"british\",\n      \"danish\",\n      \"german\"\n    ],\n    \"\\\\nduKeys#c,\\\\nduValue#c,\\\\nduMath#c,\\\\nduResult#c,\\\\nduNormalize#c\": [\n      \"display=${1|values only,formatted,symbols only|}\",\n      \"format=${1:code}\",\n      \"replace nil with=${1:code}\",\n      \"treat zero as nil\",\n      \"unit depth=${1:unit name}\",\n      \"unit separator=${1:symbol}\",\n      \"use numprint\",\n      \"add to variable=${1:code}\",\n      \"subtract from variable=${1:code}\",\n      \"normalize\"\n    ],\n    \"\\\\nduKeys#c,\\\\nduHeader#c\": [\n      \"aligned\",\n      \"cell widths=\",\n      \"set aligned for environment=${1:name}\",\n      \"tabularray column type=${1:letter}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/non-decimal-units#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nonfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figcaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short text%text}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"narrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left margin%l}}{${2:right margin%l}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/normalcolor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setnormalcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnormalcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"resetnormalcolor\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/notes2bib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibnote[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnotemark\"\n    },\n    {\n      \"name\": \"bibnotemark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bibnotemark[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"bibnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bibnotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bibnotetext[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printbibnotes\"\n    },\n    {\n      \"name\": \"bibnotesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibnotesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\bibnotesetup,\\\\usepackage/notes2bib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recordnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TotalNotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TotalNotes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NotesAfterCitations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotesAfterCitations{${1:note-list}}\"\n      }\n    },\n    {\n      \"name\": \"NotesBeforeCitations\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NotesBeforeCitations{${1:note-list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bibnotesetup,\\\\usepackage/notes2bib#c\": [\n      \"note-name=${1:text}\",\n      \"refsection-name=${1:text}\",\n      \"refsection-separator=${1:symbol}\",\n      \"cite-function=${1:cite command}\",\n      \"file-name=${1:file name}\",\n      \"record-type=${1:type}\",\n      \"note-field=${1:field}\",\n      \"keyword-entry=${1:text}\",\n      \"placement=${1|before,after,mixed|}\",\n      \"presort-before=${1:string}\",\n      \"presort-mixed=${1:string}\",\n      \"presort-after=${1:string}\",\n      \"sort-key-before=${1:string}\",\n      \"sort-key-mixed=${1:string}\",\n      \"sort-key-after=${1:string}\",\n      \"convert-endnotes\",\n      \"convert-footnotes\",\n      \"use-sort-key\"\n    ]\n  },\n  \"args\": [\n    \"\\\\bibnotesetup,\\\\usepackage/notes2bib#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/notespages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setnotespages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnotespages{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notesfill,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notespage\"\n    },\n    {\n      \"name\": \"notespage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"notespage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notespages\"\n    },\n    {\n      \"name\": \"notespages\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"notespages[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notesfill\"\n    },\n    {\n      \"name\": \"notesfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"notesfill[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\",\n          \"\\\\setnotespages,\\\\notesfill,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definenotesoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definenotesoption{${1:name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"definenotesstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definenotesstyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"remainingtextheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesareatext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definetitlestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definetitlestyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"notestitletext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nppatchchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nppatchchapter{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"npunpatchchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnotestext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\": [\n      \"allowfloats\",\n      \"notesstyle=${1|plain,lines,vlines,grid,text|}\",\n      \"hparts=${1:integer}\",\n      \"vparts=${1:integer}\",\n      \"usenotesareaheight\",\n      \"titlestyle=${1|none,text,section,subsection,subsubsection,minisec|}\",\n      \"titletext={${1:text}}\",\n      \"titleskip=\",\n      \"titlenotesfill\",\n      \"notestext={${1:text}}\",\n      \"notestextalign=${1|right,left,center,none|}\",\n      \"empty\",\n      \"vacant\",\n      \"default\"\n    ],\n    \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\": [\n      \"startnotes=${1|newpage,clearpage|}\",\n      \"pagestyle=${1|empty,plain,headings,myheadings,current|}\",\n      \"mark=${1|both,right,left,keep|}\",\n      \"marktext={${1:text}}\",\n      \"markuppercase\"\n    ],\n    \"\\\\setnotespages,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\": [\n      \"multiple=${1:integer}\",\n      \"minpages=${1:integer}\",\n      \"endpages=${1:integer}\"\n    ],\n    \"\\\\setnotespages,\\\\notesfill,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\": [\n      \"fillminspace=\",\n      \"fillmaxspace=\",\n      \"filltopskip=\",\n      \"filltopfill\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\notesfill,\\\\usepackage/notespages#c\",\n    \"\\\\setnotespages,\\\\notespage,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\",\n    \"\\\\setnotespages,\\\\notespages,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\",\n    \"\\\\setnotespages,\\\\notesfill,\\\\definenotesoption,\\\\nppatchchapter,\\\\usepackage/notespages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/noto-mono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notomono\"\n    },\n    {\n      \"name\": \"notomonolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notomonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/noto-mono#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/noto-mono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/noto-sans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notosans\"\n    },\n    {\n      \"name\": \"notosanslgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notosansfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/noto-sans#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/noto-sans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/noto-serif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notoserif\"\n    },\n    {\n      \"name\": \"notoseriflgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notoseriffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/noto-serif#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/noto-serif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/noto.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"notomono\"\n    },\n    {\n      \"name\": \"notomonolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notosans\"\n    },\n    {\n      \"name\": \"notosanslgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notoserif\"\n    },\n    {\n      \"name\": \"notoseriflgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notosansfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notoseriffamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notomonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/noto#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"sf\",\n      \"rm\",\n      \"nott\",\n      \"sfdefault\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/noto#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/notocondensed-mono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notocondensedmono\"\n    },\n    {\n      \"name\": \"notocondensedmonosemicondensed\"\n    },\n    {\n      \"name\": \"notocondensedmonoextracondensed\"\n    },\n    {\n      \"name\": \"notomonocondensedlgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notocondensedmonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/notocondensed-mono#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\",\n      \"semicondensed\",\n      \"extracondensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/notocondensed-mono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/notocondensed.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notoserifcondensed\"\n    },\n    {\n      \"name\": \"notosanscondensed\"\n    },\n    {\n      \"name\": \"notomonocondensed\"\n    },\n    {\n      \"name\": \"notoserifcondensedlgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notosanscondensedlgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notomonocondensedlgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notosanssemicondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notosansextracondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notoserifsemicondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notoserifextracondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notomonosemicondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notomonoextracondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notosanscondensedfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notoserifcondensedfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notomonocondensedfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/notocondensed#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"sf\",\n      \"rm\",\n      \"nott\",\n      \"sfdefault\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"tabular\",\n      \"tf\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"thin\",\n      \"extralight\",\n      \"light\",\n      \"regular\",\n      \"medium\",\n      \"semibold\",\n      \"extrabold\",\n      \"black\",\n      \"bold\",\n      \"semicondensed\",\n      \"extracondensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/notocondensed#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/notomath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"noto-serif\"\n    },\n    {\n      \"name\": \"noto-sans\"\n    },\n    {\n      \"name\": \"newtxmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BIA\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIB\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIC\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BID\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIE\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIF\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIG\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIH\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BII\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIJ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIK\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIL\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIM\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIN\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIO\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIP\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIQ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIR\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIS\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIT\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIU\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIV\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIW\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIX\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIY\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIZ\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIa\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIb\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIc\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BId\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIe\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIf\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIg\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIh\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIi\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIj\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIk\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIl\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIm\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIn\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIo\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIp\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIq\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIr\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIs\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIt\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIu\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIv\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIw\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIx\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIy\",\n      \"if\": \"useBImacros\"\n    },\n    {\n      \"name\": \"BIz\",\n      \"if\": \"useBImacros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/notomath#c\": [\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"proportional\",\n      \"pf\",\n      \"oldstyle\",\n      \"osf\",\n      \"mono\",\n      \"varbb\",\n      \"vvarbb\",\n      \"upint\",\n      \"noamssymbols\",\n      \"slantedGreek\",\n      \"frenchmath\",\n      \"nosymbolsc\",\n      \"subscriptcorrection\",\n      \"timesmathacc\",\n      \"uprightscript\",\n      \"smallerops\",\n      \"useBImacros\",\n      \"noOT1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/notomath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nowidow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"nowidow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nowidow[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setnowidow\"\n    },\n    {\n      \"name\": \"setnowidow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setnowidow[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"noclub\"\n    },\n    {\n      \"name\": \"noclub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noclub[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setnoclub\"\n    },\n    {\n      \"name\": \"setnoclub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setnoclub[${1:number}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nowidow#c\": [\n      \"defaultlines=${1:integer}\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nowidow#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nowtoaux.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"immediateaddtocontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"immediateaddtocontents{${1:table}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"immediatewriteaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"immediatewriteaux{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"macrotoaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macrotoaux{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"writeaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writeaux{${1:commands}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nshyper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ntabbing.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"reset\"\n    },\n    {\n      \"name\": \"numboxsize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ntabbing\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nth.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"nthM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nthM{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nthSuff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nthSuff{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"nthscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nthscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nthtest\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nth#c\": [\n      \"super\",\n      \"negative\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nth#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ntheorem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"standard\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theoremsymbol\",\n      \"if\": \"thmmarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"if\": \"thref\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"label{${1:label}}[${2:type}]\"\n      }\n    },\n    {\n      \"name\": \"thref\",\n      \"if\": \"thref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theproof\",\n      \"if\": \"amsthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openbox\",\n      \"if\": \"amsthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofSymbol\",\n      \"if\": \"amsthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"amsthm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newframedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newframedtheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newframedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newframedtheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newframedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newframedtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"newshadedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newshadedtheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newshadedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newshadedtheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"newshadedtheorem\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newshadedtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"shadecolor\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"theoremframecommand\",\n      \"if\": \"framed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremframepreskip\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremframepreskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"theoremframepostskip\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremframepostskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"theoreminframepreskip\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoreminframepreskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"theoreminframepostskip\",\n      \"if\": \"framed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoreminframepostskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtheorem*{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtheorem{${1:envname}}[${3:numbered like}]{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtheorem{${1:envname}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewtheorem{${1:envname}}{${2:caption}}[${3:within}]\"\n      }\n    },\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\theoremstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremheaderfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremheaderfont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"theorembodyfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorembodyfont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"theoremnumbering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremnumbering{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\theoremnumbering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremseparator{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"theorempreskip\"\n    },\n    {\n      \"name\": \"theorempostskip\"\n    },\n    {\n      \"name\": \"theoremindent\"\n    },\n    {\n      \"name\": \"theoremprework\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremprework{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"theorempostwork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorempostwork{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"theoremclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremclass{${1:theorem type}}\"\n      }\n    },\n    {\n      \"name\": \"theorempreskipamount\"\n    },\n    {\n      \"name\": \"theorempostskipamount\"\n    },\n    {\n      \"name\": \"theoremframepreskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremframepostskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoreminframepreskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoreminframepostskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoremrightindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listtheorems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listtheorems{${1:thmset1,thmset2,...}}\"\n      }\n    },\n    {\n      \"name\": \"theoremlisttype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremlisttype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\theoremlisttype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtheoremline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtheoremline{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtheoremline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtheoremline*{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheoremfile{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheoremfile[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtheoremstyle{${1:name%specialDef}}{${2:head}}{${3:opt-head}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheoremstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewtheoremstyle{${1:name}}{${2:head}}{${3:opt-head}}\"\n      }\n    },\n    {\n      \"name\": \"newtheoremlisttype\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newtheoremlisttype{${1:name%specialDef}}{${2:start}}{${3:line}}{${4:end}}\"\n      }\n    },\n    {\n      \"name\": \"renewtheoremlisttype\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewtheoremlisttype{${1:name}}{${2:start}}{${3:line}}{${4:end}}\"\n      }\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qedsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"NoEndMark\"\n    },\n    {\n      \"name\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greek{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greek{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Theorem\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Theorem\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorem\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Lemma\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemma\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Proposition\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proposition\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Corollary\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollary\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Satz\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"satz\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"satz\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Korollar\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Korollar\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"korollar\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korollar\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Definition\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definition\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Example\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Beispiel\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beispiel\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beispiel\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Anmerkung\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Anmerkung\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"anmerkung\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anmerkung\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Bemerkung\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Bemerkung\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"bemerkung\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bemerkung\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Remark\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Remark\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proof\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Proof\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Beweis\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beweis\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beweis\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Theorem*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Theorem*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorem*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Lemma*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Lemma*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemma*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proposition*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Proposition*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proposition*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Corollary*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Corollary*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollary*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Satz*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Satz*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"satz*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"satz*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Korollar*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Korollar*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"korollar*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korollar*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Definition*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Definition*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definition*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Example*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Example*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beispiel*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Beispiel*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beispiel*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beispiel*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Anmerkung*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Anmerkung*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"anmerkung*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anmerkung*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Bemerkung*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Bemerkung*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"bemerkung*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bemerkung*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Remark*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Remark*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remark*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Proof*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Proof*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"Beweis*\",\n      \"if\": \"standard\"\n    },\n    {\n      \"name\": \"Beweis*\",\n      \"if\": \"standard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"beweis*\",\n      \"if\": \"standard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beweis*\",\n      \"if\": \"standard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"if\": \"amsthm\"\n    },\n    {\n      \"name\": \"proof\",\n      \"if\": \"amsthm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ntheorem#c\": [\n      \"thmmarks\",\n      \"leqno\",\n      \"fleqn\",\n      \"thref\",\n      \"amsmath\",\n      \"standard\",\n      \"noconfig\",\n      \"amsthm\",\n      \"framed\",\n      \"hyperref\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"plain\",\n      \"break\",\n      \"change\",\n      \"changebreak\",\n      \"margin\",\n      \"marginbreak\",\n      \"nonumberplain\",\n      \"nonumberbreak\",\n      \"empty\",\n      \"%ntheoremstyle\"\n    ],\n    \"\\\\theoremnumbering\": [\n      \"arabic\",\n      \"alph\",\n      \"Alph\",\n      \"roman\",\n      \"Roman\",\n      \"greek\",\n      \"Greek\",\n      \"fnsymbol\"\n    ],\n    \"\\\\theoremlisttype\": [\n      \"all\",\n      \"allname\",\n      \"opt\",\n      \"optname\",\n      \"%ntheoremlisttype\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ntheorem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/nucleardata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pythontex\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nucsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucsymbol{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nucname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nucName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nucz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucz{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nuchalflife\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuchalflife{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuchalflife\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuchalflife[${3:unit%keyvals}]{${1:name}}{${2:mass number}}\",\n        \"keys\": [\n          \"\\\\nuchalflife,\\\\nuchalfvalue,\\\\nuchalfunit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nuchalfvalue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuchalfvalue{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuchalfvalue\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuchalfvalue[${3:unit%keyvals}]{${1:name}}{${2:mass number}}\",\n        \"keys\": [\n          \"\\\\nuchalflife,\\\\nuchalfvalue,\\\\nuchalfunit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nuchalfunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuchalfunit{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuchalfunit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuchalfunit[${3:unit%keyvals}]{${1:name}}{${2:mass number}}\",\n        \"keys\": [\n          \"\\\\nuchalflife,\\\\nuchalfvalue,\\\\nuchalfunit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nucspin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucspin{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamassu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucamassu{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamassu\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucamassu[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamassmev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucamassmev{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamassmev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucamassmev[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamasskev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucamasskev{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucamasskev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucamasskev[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmassu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuclearmassu{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmassu\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuclearmassu[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmassmev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuclearmassmev{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmassmev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuclearmassmev[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmasskev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nuclearmasskev{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nuclearmasskev\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nuclearmasskev[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucexcess\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucexcess{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucexcess\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucexcess[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucbea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucbea{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucbea\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucbea[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucisotopes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucisotopes{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nucQalpha\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucQalpha{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQalpha\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucQalpha[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQbeta\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucQbeta{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQbeta\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucQbeta[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQposi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucQposi{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQposi\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucQposi[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucQec{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucQec\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nucQec[${3:rnd}]{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucisalpha\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucisalpha{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucisbeta\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucisbeta{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucisposi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucisposi{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucisec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nucisec{${1:name}}{${2:mass number}}\"\n      }\n    },\n    {\n      \"name\": \"nucAran\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucAran{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nucrandom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nucrandom{${1:list size}}\"\n      }\n    },\n    {\n      \"name\": \"nucrandom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nucrandom[${2:0 or 1}]{${1:list size}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\nuchalflife,\\\\nuchalfvalue,\\\\nuchalfunit\": [\n      \"ev\",\n      \"mev\",\n      \"kev\",\n      \"as\",\n      \"fs\",\n      \"ps\",\n      \"ns\",\n      \"us\",\n      \"ms\",\n      \"s\",\n      \"m\",\n      \"min\",\n      \"h\",\n      \"hr\",\n      \"d\",\n      \"day\",\n      \"y\",\n      \"yr\",\n      \"My\",\n      \"Gy\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numberedblock.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"verbatimbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"numblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numblock{${1:code lines}}\"\n      }\n    },\n    {\n      \"name\": \"nblabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nblabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"nbVlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbVlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theblocknum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxblocklabelsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codeblockwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentsave\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blocklabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocklabel{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"numVblock\"\n    },\n    {\n      \"name\": \"numVblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${2:\\\\nbVlabel{${1:label}}}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numberpt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numberpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberpt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Numberpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numberpt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberPt{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberPt*{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NUMBERPT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NUMBERPT{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPTcatorze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberPTquatorze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberPTdezasseis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberPTdezasseis\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/numberpt#c\": [\n      \"catorze\",\n      \"quatorze\",\n      \"dezesseis\",\n      \"dezasseis\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/numberpt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/numerica-plus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"numerica\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"iter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iter{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"iter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iter[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iter\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"iter{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"iter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"iter[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"iter{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"iter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"iter[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iter*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"iter*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"iter*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"iter*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"iter*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"iter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"iter*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcIterate{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcIterate[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"arg\": {\n        \"format\": \"{}[]v\",\n        \"snippet\": \"nmcIterate{${1:expression}}[${2:vv-list%formula}]v\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcIterate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcIterate{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcIterate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcIterate*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcIterate*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcIterate*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcIterate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcIterate*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcIterate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcIterate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\",\n          \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solve{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"solve[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"solve{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"solve[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"solve{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"solve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"solve[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solve*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"solve*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"solve*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"solve*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"solve*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"solve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"solve*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcSolve{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcSolve[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcSolve{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcSolve[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcSolve{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcSolve[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcSolve*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcSolve*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcSolve*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcSolve*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcSolve*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcSolve*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcSolve*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recur{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"recur[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"recur{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"recur[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"recur{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"recur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"recur[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recur*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"recur*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"recur*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"recur*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"recur*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"recur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"recur*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcRecur{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcRecur[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcRecur{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcRecur[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcRecur{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcRecur[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcRecur*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcRecur*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcRecur*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcRecur*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcRecur*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcRecur*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcRecur*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*,\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*,\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\": [\n      \"dbg=${1|0,1,2,3,5,7,11|}\",\n      \"view\",\n      \"^=${1:char}\",\n      \"xx=${1|0,1|}\",\n      \"ff=${1:char}\",\n      \"1s2=${1|0,1|}\",\n      \"/min=${1:integer}\",\n      \"/max=${1:integer}\",\n      \"vv@=${1|0,1|}\",\n      \"vvmode=${1|0,1|}\",\n      \"o=${1|0,1|}\",\n      \"log=${1:number}\",\n      \"S+=${1:integer}\",\n      \"S?=${1:integer}\",\n      \"P+=${1:integer}\",\n      \"P?=${1:integer}\",\n      \"f=${1|0,1|}\",\n      \"p=${1:punctuation}\",\n      \"pp=${1:punctuation}\",\n      \"env=${1:envname}\",\n      \"arg=${1:arg}\",\n      \"eq=${1:symbol}\",\n      \"vv=${1:spec}\",\n      \"sep=${1:separator}\",\n      \"\\\\}=${1:<space><r-delim>}\"\n    ],\n    \"\\\\iter,\\\\iter*,\\\\nmcIterate,\\\\nmcIterate*\": [\n      \"var=${1:variable name}\",\n      \"+=${1:integer}\",\n      \"max=${1:integer}\",\n      \"do=${1:integer}\",\n      \"see=${1:integer}\"\n    ],\n    \"\\\\solve,\\\\solve*,\\\\nmcSolve,\\\\nmcSolve*\": [\n      \"var=${1:variable name}\",\n      \"dvar=${1:real number}\",\n      \"+=${1:integer}\",\n      \"max=${1:integer}\"\n    ],\n    \"\\\\recur,\\\\recur*,\\\\nmcRecur,\\\\nmcRecur*\": [\n      \"do=${1:integer}\",\n      \"see1=${1:integer}\",\n      \"see2=${1:integer}\",\n      \"...\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numerica-tables.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"numerica\"\n    },\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabulate\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"tabulate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabulate\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"tabulate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabulate*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"tabulate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabulate*\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"tabulate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcTabulate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcTabulate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcTabulate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcTabulate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcTabulate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcTabulate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcTabulate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcTabulate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tabulate,\\\\tabulate*,\\\\nmcTabulate,\\\\nmcTabulate*\": [\n      \"dbg=${1|0,1,2,3,5,7,11|}\",\n      \"view\",\n      \"^=${1:char}\",\n      \"xx=${1|0,1|}\",\n      \"ff=${1:char}\",\n      \"1s2=${1|0,1|}\",\n      \"/min=${1:integer}\",\n      \"/max=${1:integer}\",\n      \"vv@=${1|0,1|}\",\n      \"vvmode=${1|0,1|}\",\n      \"o=${1|0,1|}\",\n      \"log=${1:number}\",\n      \"S+=${1:integer}\",\n      \"S?=${1:integer}\",\n      \"P+=${1:integer}\",\n      \"P?=${1:integer}\",\n      \"f=${1|0,1|}\",\n      \"p=${1:punctuation}\",\n      \"pp=${1:punctuation}\",\n      \"env=${1:envname}\",\n      \"arg=${1:arg}\",\n      \"eq=${1:symbol}\",\n      \"vv=${1:spec}\",\n      \"sep=${1:separator}\",\n      \"\\\\}=${1:<space><r-delim>}\",\n      \"rvar=${1:tokens}\",\n      \"rstep=${1:real number}\",\n      \"rstop=${1:real number}\",\n      \"rows=${1:integer}\",\n      \"rspec={${1:csv list}}\",\n      \"rdata={${1:csv list}}\",\n      \"rfile=${1:file}\",\n      \"rverb=${1|0,1|}\",\n      \"rfunc=${1:function}\",\n      \"rround=${1:integer}\",\n      \"ralign=${1|r,c,l|}\",\n      \"rfont=${1|bf,it,sf,tt,frak,rm|}\",\n      \"rhead=${1:tokens}\",\n      \"rhnudge=${1:integer}\",\n      \"rpos=${1|0,1,2,3,4|}\",\n      \"rvar'=${1:tokens}\",\n      \"rhead'=${1:tokens}\",\n      \"rhnudge'=${1:integer}\",\n      \"rfrac=${1|0,1,2,3,4,5|}\",\n      \"cvar=${1:tokens}\",\n      \"cstep=${1:real number}\",\n      \"cstop=${1:real number}\",\n      \"cols=${1:integer}\",\n      \"cspec={${1:csv list}}\",\n      \"chstyle=${1|0,1,2,3,4|}\",\n      \"ctitle=${1:tokens}\",\n      \"csubttl=${1:tokens}\",\n      \"chead=${1:tokens}\",\n      \"calign=${1|r,c,l|}\",\n      \"chnudge=${1:integer}\",\n      \"chround=${1:integer}\",\n      \"headless=${1|0,1|}\",\n      \"rules=${1:chars}\",\n      \"foot=${1:tokens}\",\n      \"rbloc={${1:csv list}}\",\n      \"rblocsep=\",\n      \"(pad)=${1:integer}\",\n      \"signs=${1|-2,-1,0,1,2|}\",\n      \"diffs=${1:integer}\",\n      \"round=${1:function}\",\n      \"Q?=${1:tokens}\",\n      \"A!=${1:tokens}\",\n      \"valign=${1|t,m,b|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numerica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"eval{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"eval[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"eval{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"eval[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"eval*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"eval*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"eval*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"eval*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcEvaluate{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcEvaluate[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcEvaluate{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcEvaluate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcEvaluate{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcEvaluate[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcEvaluate*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcEvaluate*[${2:settings%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcEvaluate*{${1:expression}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcEvaluate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nmcEvaluate*{${1:expression}}[${2:vv-list%formula}][${3:num format}]\"\n      }\n    },\n    {\n      \"name\": \"nmcEvaluate*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"nmcEvaluate*[${2:settings%keyvals}]{${1:expression}}[${3:vv-list%formula}][${4:num format}]\",\n        \"keys\": [\n          \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"csch\"\n    },\n    {\n      \"name\": \"sech\"\n    },\n    {\n      \"name\": \"arccsc\"\n    },\n    {\n      \"name\": \"arcsec\"\n    },\n    {\n      \"name\": \"arccot\"\n    },\n    {\n      \"name\": \"asinh\"\n    },\n    {\n      \"name\": \"acosh\"\n    },\n    {\n      \"name\": \"atanh\"\n    },\n    {\n      \"name\": \"acsch\"\n    },\n    {\n      \"name\": \"asech\"\n    },\n    {\n      \"name\": \"acoth\"\n    },\n    {\n      \"name\": \"arsinh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcosh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artanh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arsech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsinh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccosh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctanh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccsch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lb\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs*[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"floor[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"floor*[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ceil[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ceil*[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"comma\",\n      \"unusual\": true,\n      \"detail\": \",\",\n      \"doc\": \"Comma\"\n    },\n    {\n      \"name\": \"equals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"info\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"info{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"info\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"info[${2:settings%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\info#c,\\\\info*#c,\\\\nmcInfo#c,\\\\nmcInfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"info*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"info*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"info*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"info*[${2:settings%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\info#c,\\\\info*#c,\\\\nmcInfo#c,\\\\nmcInfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcInfo{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"nmcInfo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcInfo[${2:settings%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\info#c,\\\\info*#c,\\\\nmcInfo#c,\\\\nmcInfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcInfo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcInfo*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"nmcInfo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcInfo*[${2:settings%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\info#c,\\\\info*#c,\\\\nmcInfo#c,\\\\nmcInfo*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macros{${1:command list}}\"\n      }\n    },\n    {\n      \"name\": \"macros\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"macros[${2:settings%keyvals}]{${1:command list}}\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macros\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"macros{${1:command list}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"macros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"macros[${2:settings%keyvals}]{${1:command list}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macros*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macros*{${1:command list}}\"\n      }\n    },\n    {\n      \"name\": \"macros*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"macros*[${2:settings%keyvals}]{${1:command list}}\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"macros*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"macros*{${1:command list}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"macros*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"macros*[${2:settings%keyvals}]{${1:command list}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcMacros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcMacros{${1:command list}}\"\n      }\n    },\n    {\n      \"name\": \"nmcMacros\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcMacros[${2:settings%keyvals}]{${1:command list}}\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcMacros\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcMacros{${1:command list}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcMacros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcMacros[${2:settings%keyvals}]{${1:command list}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcMacros*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcMacros*{${1:command list}}\"\n      }\n    },\n    {\n      \"name\": \"nmcMacros*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcMacros*[${2:settings%keyvals}]{${1:command list}}\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcMacros*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcMacros*{${1:command list}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcMacros*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcMacros*[${2:settings%keyvals}]{${1:command list}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constants\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constants{${1:name1=val1,name2=val2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"constants\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"constants[${2:settings%keyvals}]{${1:name1=val1,name2=val2,...%formula}}\",\n        \"keys\": [\n          \"\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"constants\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"constants{${1:name1=val1,name2=val2,...%formula}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"constants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"constants[${2:settings%keyvals}]{${1:name1=val1,name2=val2,...%formula}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcConstants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcConstants{${1:name1=val1,name2=val2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nmcConstants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcConstants[${2:settings%keyvals}]{${1:name1=val1,name2=val2,...%formula}}\",\n        \"keys\": [\n          \"\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcConstants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nmcConstants{${1:name1=val1,name2=val2,...%formula}}[${2:vv-list%formula}]\"\n      }\n    },\n    {\n      \"name\": \"nmcConstants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"nmcConstants[${2:settings%keyvals}]{${1:name1=val1,name2=val2,...%formula}}[${3:vv-list%formula}]\",\n        \"keys\": [\n          \"\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reuse{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"reuse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reuse[${2:settings%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reuse*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reuse*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"reuse*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reuse*[${2:settings%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcReuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcReuse{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"nmcReuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcReuse[${2:settings%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nmcReuse*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nmcReuse*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"nmcReuse*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nmcReuse*[${2:settings%keyvals}]{${1:csname}}\",\n        \"keys\": [\n          \"\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/numerica#c\": [\n      \"comma\",\n      \"rounding=${1:integer}\",\n      \"approx\"\n    ],\n    \"\\\\eval,\\\\eval*,\\\\nmcEvaluate,\\\\nmcEvaluate*,\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*,\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*,\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\": [\n      \"dbg=${1|0,1,2,3,5,7,11|}\",\n      \"view\",\n      \"^=${1:char}\",\n      \"xx=${1|0,1|}\",\n      \"ff=${1:char}\",\n      \"1s2=${1|0,1|}\",\n      \"/min=${1:integer}\",\n      \"/max=${1:integer}\",\n      \"vv@=${1|0,1|}\",\n      \"vvmode=${1|0,1|}\",\n      \"o=${1|0,1|}\",\n      \"log=${1:number}\",\n      \"S+=${1:integer}\",\n      \"S?=${1:integer}\",\n      \"P+=${1:integer}\",\n      \"P?=${1:integer}\",\n      \"f=${1|0,1|}\",\n      \"p=${1:punctuation}\",\n      \"pp=${1:punctuation}\",\n      \"env=${1:envname}\",\n      \"arg=${1:arg}\",\n      \"eq=${1:symbol}\",\n      \"vv=${1:spec}\",\n      \"sep=${1:separator}\",\n      \"\\\\}=${1:<space><r-delim>}\"\n    ],\n    \"\\\\info#c,\\\\info*#c,\\\\nmcInfo#c,\\\\nmcInfo*#c\": [\n      \"view\"\n    ],\n    \"\\\\macros,\\\\macros*,\\\\nmcMacros,\\\\nmcMacros*\": [\n      \"free\"\n    ],\n    \"\\\\constants,\\\\constants*,\\\\nmcConstants,\\\\nmcConstants*\": [\n      \"add\"\n    ],\n    \"\\\\reuse,\\\\reuse*,\\\\nmcReuse,\\\\nmcReuse*\": [\n      \"save\",\n      \"renew\",\n      \"load\",\n      \"delete\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/numerica#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/numerus.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"propis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"propis{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"propis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"propis[${2:m|${3:z}|k}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Propis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Propis{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Propis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Propis[${2:m|${3:z}|k}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PROpis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PROpis{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PROpis\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PROpis[${2:m|${3:z}|k}]{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numname.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"NumToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"OrdinalToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OrdinalToName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fcardinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fcardinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fnumbersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"iiirdstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iindstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iststring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lcminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamemmm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumberand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namenumbercomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamelxxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamevii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNameviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthNamexxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numtoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numtoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaltoname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinaltoname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordscript{${1:chars}}\"\n      }\n    },\n    {\n      \"name\": \"ordstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teennumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teennumbername{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teenordinalname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"teenstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensnumbername{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensordinalname{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tensunitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tiethstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ucminusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitnumbername{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"unitordinalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitordinalname{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"iflowernumtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowernumtonametrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowernumtonamefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpriornum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priornumtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priornumfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifminusnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusnumbertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusnumberfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnotnumtonameallcaps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notnumtonameallcapstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notnumtonameallcapsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmakeordinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeordinaltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeordinalfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numnameru.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"centnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centnumbername{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"minusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numnameru\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numnameru{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rNamenumberC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIIC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIIIC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIIID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIVC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIVD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIXC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberIXD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIIC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIIIC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberVIIID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXIV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXIX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXVI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXVII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rNamenumberXVIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teennumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teennumbername{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tensnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tensnumbername{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"unitnumbername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unitnumbername{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifpriornum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priornumtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priornumfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifminusnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusnumbertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minusnumberfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/numprint.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"numprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numprint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numprint[${2:unit}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"np\",\n      \"if\": \"np\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"np{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"np\",\n      \"if\": \"np\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"np[${2:unit}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cntprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cntprint{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"cntprint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cntprint[${2:unit}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"lenprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lenprint{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lenprint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lenprint[${2:unit%keyvals}]{${1:length}}\",\n        \"keys\": [\n          \"\\\\lenprint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"npfourdigitsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npfourdigitnosep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npaddmissingzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnoaddmissingzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npaddplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnoaddplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npaddplusexponent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnoaddplusexponent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nprounddigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nprounddigits{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"nproundexpdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nproundexpdigits{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"npnoround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnoroundexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nplpadding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nplpadding{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"nplpadding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nplpadding[${2:character}]{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"npnolpadding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npreplacenull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npreplacenull{${1:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"npprintnull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npunitcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npunitcommand{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"npdefunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"npdefunit{${1:unitname}}{${2:unit}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"selectlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"npmakebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npmakebox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"npmakebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"npmakebox[${2:dummy text}][${3:justification}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"npboldmath\",\n      \"if\": \"boldmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npafternum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npafternum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"npunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npunit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"npdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"npdigits{${1:before}}{${2:after}}\"\n      }\n    },\n    {\n      \"name\": \"npexponentdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npexponentdigits{${1:before}}\"\n      }\n    },\n    {\n      \"name\": \"npexponentdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"npexponentdigits[${2:after}]{${1:before}}\"\n      }\n    },\n    {\n      \"name\": \"npnodigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npnoexponentdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npthousandsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npthousandsep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"npthousandthpartsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npthousandthpartsep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"npdecimalsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npdecimalsign{${1:sign}}\"\n      }\n    },\n    {\n      \"name\": \"npproductsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npproductsign{${1:sign}}\"\n      }\n    },\n    {\n      \"name\": \"npunitseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npunitseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"npdegreeseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npdegreeseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"npcelsiusseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"npcelsiusseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"nppercentseparator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nppercentseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"npstyledefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npstyleenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npstylegerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npstylefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npstyleportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npstyledutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npaddtolanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"npaddtolanguage{${1:lang1}}{${2:lang2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/numprint#c\": [\n      \"nosepfour\",\n      \"sepfour\",\n      \"noaddmissingzero\",\n      \"addmissingzero\",\n      \"noaddplus\",\n      \"addplus\",\n      \"noaddplusexponent\",\n      \"addplusexponent\",\n      \"noautolanguage\",\n      \"autolanguage\",\n      \"np\",\n      \"oldcolumntypes\",\n      \"newcolumntypes\",\n      \"boldmath\",\n      \"warning\",\n      \"error\",\n      \"debug\"\n    ],\n    \"\\\\lenprint#c\": [\n      \"pt\",\n      \"bp\",\n      \"in\",\n      \"ft\",\n      \"mm\",\n      \"cm\",\n      \"m\",\n      \"km\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/numprint#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/numspell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"iflang\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"numspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thenumspell\"\n    },\n    {\n      \"name\": \"numspellsave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numspellsave{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"numspelldashspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numspelldashspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"numspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Numspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Numspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordnumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordnumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordnumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ordnumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordnumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ordnumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordnumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordnumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordnumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ordnumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordnumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ordnumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numspellUS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspellGB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspellpremiere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspellpremier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"anumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"anumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"anumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Anumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Anumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Anumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Anumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Anumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Anumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Anumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aordnumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aordnumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aordnumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aordnumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aordnumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"aordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aordnumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Aordnumspell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aordnumspell{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Aordnumspell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aordnumspell[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Aordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aordnumspell*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Aordnumspell*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aordnumspell*[${2:zeros}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numspellitmasculine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspellitmasculine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspelllamasculine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspelllafeminine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numspelllaneuter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/nunito.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"supfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nunitotabular\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/nunito#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"mainfont\",\n      \"black\",\n      \"extrabold\",\n      \"semibold\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/nunito#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/oands.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"oandsfamily\"\n    },\n    {\n      \"name\": \"textoands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoands{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ob-mathleading.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"obmathleading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obmathleading{${1:value}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"obMathLeading\"\n    },\n    {\n      \"name\": \"obMathLeading\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:value}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ob-mathleading#c\": [\n      \"default\",\n      \"mathleading=${1:value}\",\n      \"exception={${1:envname1,envname2,...}}\",\n      \"noallowdisplaybreaks\",\n      \"badm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ob-mathleading#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/obchaptertoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chaptertoc\"\n    },\n    {\n      \"name\": \"ifChapterTOCafterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChapterTOCafterskiptrue\"\n    },\n    {\n      \"name\": \"ChapterTOCafterskipfalse\"\n    },\n    {\n      \"name\": \"chaptertocmaxlevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertocmaxlevel{${1:section level}}\"\n      }\n    },\n    {\n      \"name\": \"ChapterTOCFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ChapterTOCFormat{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertocfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptertocsecfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOCFormatsameas\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TOCFormatsameas{${1:section-level1}}{${2:section-level2}}{${3:properties}}\"\n      }\n    },\n    {\n      \"name\": \"thetocmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalchangetocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterchaptertocskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theobchaptocmaxdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/obchaptertoc#c\": [\n      \"level=${1:section level}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/obchaptertoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/oblivoir-misc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"texthl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"obhlraisedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obhlheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obhlcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpagenode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stanzaskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"hverse\"\n    },\n    {\n      \"name\": \"hverse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:code}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/oblivoir-xl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-memoir\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"luatexko\"\n    },\n    {\n      \"name\": \"memhangul-x\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ob-toclof\"\n    },\n    {\n      \"name\": \"ob-koreanappendix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AppendixTitle\"\n    },\n    {\n      \"name\": \"AppendixTitleToToc\"\n    },\n    {\n      \"name\": \"appref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"AttachAppendixTitleToSecnum\"\n    },\n    {\n      \"name\": \"oblivoirchapterstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oblivoirchapterstyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"bookmarkpkgfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookmarkpkgtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CallHyperref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DEFAULTskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ensp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperrefwithlyxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyperrefwithlyxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbookmarkpkg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhyperrefwithlyx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifkosection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLwarp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnobookmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnokorean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifopenrightdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPRELOAD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftwosidedoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kosectionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kosectiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LWARPlan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkDocTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucshangulskips\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucsinterwordchapterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memucsinterwordskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobookmarksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobookmarkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nokoreanfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nokoreantrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openrightdocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openrightdoctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRELOADfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRELOADstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PRELOADtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twosidedocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twosidedoctrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\documentclass/oblivoir#c\": [\n      \"10.5pt\",\n      \"amsmath\",\n      \"arabicfront\",\n      \"bookmark\",\n      \"chapter\",\n      \"faht=\",\n      \"fawd=\",\n      \"figtabcapt\",\n      \"footnote\",\n      \"gremph\",\n      \"hangulpagestyle\",\n      \"hcr\",\n      \"itemph\",\n      \"kosection\",\n      \"latinquote\",\n      \"lwarp\",\n      \"lwarplanguage=${1:language}\",\n      \"lwarpoption={${1:lwarp option}}\",\n      \"lyxhyper\",\n      \"manualfontspec\",\n      \"mathdisp\",\n      \"microtype\",\n      \"moreverb\",\n      \"nanum\",\n      \"nobookmarks\",\n      \"nohyperref\",\n      \"nokorean\",\n      \"nonfrench\",\n      \"nounfonts\",\n      \"nowinname\",\n      \"obspace\",\n      \"oldhangul\",\n      \"openright\",\n      \"polyglossia\",\n      \"babelhangul\",\n      \"babelvacant\",\n      \"preload={${1:package1,package2,...}}\",\n      \"preloadoption={${1:package options}}\",\n      \"quotespacing\",\n      \"subfigure\",\n      \"tocentry\",\n      \"twoside\",\n      \"unfonts\",\n      \"usedotemph\",\n      \"uset1font\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"14pt\",\n      \"17pt\",\n      \"20pt\",\n      \"25pt\",\n      \"30pt\",\n      \"36pt\",\n      \"48pt\",\n      \"60pt\",\n      \"9pt\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"article\",\n      \"b3paper\",\n      \"b4paper\",\n      \"b5paper\",\n      \"b6paper\",\n      \"broadsheetpaper\",\n      \"crownvopaper\",\n      \"dbillpaper\",\n      \"demyvopaper\",\n      \"draft\",\n      \"ebook\",\n      \"executivepaper\",\n      \"extrafontsizes\",\n      \"final\",\n      \"fleqn\",\n      \"foolscapvopaper\",\n      \"fullptlayout\",\n      \"imperialvopaper\",\n      \"landscape\",\n      \"largecrownvopaper\",\n      \"largepostvopaper\",\n      \"ledgerpaper\",\n      \"legalpaper\",\n      \"leqno\",\n      \"letterpaper\",\n      \"mcrownvopaper\",\n      \"mdemyvopaper\",\n      \"mediumvopaper\",\n      \"mlargecrownvopaper\",\n      \"ms\",\n      \"msmallroyalvopaper\",\n      \"oldfontcommands\",\n      \"oldpaper\",\n      \"onecolumn\",\n      \"oneside\",\n      \"openany\",\n      \"openbib\",\n      \"openleft\",\n      \"postvopaper\",\n      \"pottvopaper\",\n      \"royalvopaper\",\n      \"showtrims\",\n      \"smalldemyvopaper\",\n      \"smallroyalvopaper\",\n      \"statementpaper\",\n      \"superroyalvopaper\",\n      \"twocolumn\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/oblivoir#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ocg-p.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"datatool\",\n      \"if\": \"ocgtabular\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"ocgtabular\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"ocgtabular\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setocgtabularheader\",\n      \"if\": \"ocgtabular\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setocgtabularheader{${1:column name}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"toggleocgs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toggleocgs{${1:layerid1 layerid2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"toggleocgs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toggleocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:display}}\",\n        \"keys\": [\n          \"\\\\toggleocgs,\\\\showocgs,\\\\hideocgs,\\\\setocgs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showocgs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showocgs{${1:layerid1 layerid2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"showocgs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:display}}\",\n        \"keys\": [\n          \"\\\\toggleocgs,\\\\showocgs,\\\\hideocgs,\\\\setocgs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hideocgs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hideocgs{${1:layerid1 layerid2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"hideocgs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hideocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:display}}\",\n        \"keys\": [\n          \"\\\\toggleocgs,\\\\showocgs,\\\\hideocgs,\\\\setocgs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setocgs\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setocgs{${1:tlayerid1 ...}}{${2:slayerid1 ...}}{${3:hlayerid1 ...}}{${4:display}}\"\n      }\n    },\n    {\n      \"name\": \"setocgs\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"setocgs[${5:option%keyvals}]{${1:tlayerid1 ...}}{${2:slayerid1 ...}}{${3:hlayerid1 ...}}{${4:display}}\",\n        \"keys\": [\n          \"\\\\toggleocgs,\\\\showocgs,\\\\hideocgs,\\\\setocgs\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ocgtabular\",\n      \"if\": \"ocgtabular\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:cols}}{${2:database}}{${3:options}}\"\n      }\n    },\n    {\n      \"name\": \"ocgtabular\",\n      \"if\": \"ocgtabular\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:pos}]{${1:cols}}{${2:database}}{${3:options}}\"\n      }\n    },\n    {\n      \"name\": \"ocg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:layer name}}{${2:layer id}}{${3:initial visibility}}\"\n      }\n    },\n    {\n      \"name\": \"ocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:layer name}}{${2:layer id}}{${3:initial visibility}}\",\n        \"keys\": [\n          \"\\\\begin{ocg}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ocg-p#c\": [\n      \"ocgtabular\"\n    ],\n    \"\\\\begin{ocg}\": [\n      \"printocg=${1|always,never,ifvisible|}\",\n      \"exportocg=${1|always,never,ifvisible|}\",\n      \"listintoolbar=${1|always,never,iffirstuse|}\"\n    ],\n    \"\\\\toggleocgs,\\\\showocgs,\\\\hideocgs,\\\\setocgs\": [\n      \"triggerocg=${1|onareaenter,onareaexit,onmousedown,onmouseup,allactions|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ocg-p#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ocg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"ocg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:num}}{${3:on|off}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ocgtools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"ocg\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"transparent\",\n      \"if\": \"transparent\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ocgtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgtext{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgtext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgtext[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultocgpapercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultocgfontcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocgpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocgpicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ocgpicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ocgpicture[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\ocgpicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgminitext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgminitext{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgminitext\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgminitext[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgminitextrt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgminitextrt{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgminitextrt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgminitextrt[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgminitextrb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgminitextrb{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgminitextrb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgminitextrb[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgminitextlt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgminitextlt{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgminitextlt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgminitextlt[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgminitextlb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ocgminitextlb{${1:text1%text}}{${2:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"ocgminitextlb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ocgminitextlb[${3:options%keyvals}]{${1:text1%text}}{${2:text2%text}}\",\n        \"keys\": [\n          \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocgtextstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocgtextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerHshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerVshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocgclosechar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ocgtools#c\": [\n      \"transparent\",\n      \"insertvisible\",\n      \"nobutton\",\n      \"noprogressmsg\",\n      \"minimouseover\",\n      \"mouseover\",\n      \"nopageclose\",\n      \"inactive\",\n      \"noocg\",\n      \"active\",\n      \"fixcolor\"\n    ],\n    \"\\\\ocgtext#c,\\\\ocgminitext#c,\\\\ocgminitextrt#c,\\\\ocgminitextrb#c,\\\\ocgminitextlt#c,\\\\ocgminitextlb#c\": [\n      \"width=\",\n      \"${1:width}\",\n      \"bg=\",\n      \"fg=\"\n    ],\n    \"\\\\ocgpicture\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ocgtools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ocgx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ocg-p\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"switchocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchocg{${1:ocg1 ocg2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"showocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showocg{${1:ocg1 ocg2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"hideocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hideocg{${1:ocg1 ocg2 ...}}{${2:display}}\"\n      }\n    },\n    {\n      \"name\": \"actionsocg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"actionsocg{${1:switchocg1 ...}}{${2:showocg1 ...}}{${3:hideocg1 ...}}{${4:display}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ocgx2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ocgbase\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz=true\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\",\n      \"if\": \"tikz=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AllOn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AllOn{${1:ocg1,ocg2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AnyOn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnyOn{${1:ocg1,ocg2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AnyOff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnyOff{${1:ocg1,ocg2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AllOff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AllOff{${1:ocg1,ocg2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Not\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Not{${1:item}}\"\n      },\n      \"detail\": \"⫬\",\n      \"doc\": \"Double stroke not sign\"\n    },\n    {\n      \"name\": \"And\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"And{${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Or\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Or{${1:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"switchocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchocg{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"switchocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"switchocg[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"switchocg*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"switchocg*{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"switchocg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"switchocg*[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showocg{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"showocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showocg[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showocg*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showocg*{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"showocg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showocg*[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hideocg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hideocg{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hideocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hideocg[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hideocg*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hideocg*{${1:ocg1,ocg2,...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hideocg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hideocg*[${3:trigger%keyvals}]{${1:ocg1,ocg2,...}}{${2:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"actionsocg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"actionsocg{${1:switchocg1,...}}{${2:showocg1,...}}{${3:hideocg1,...}}{${4:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"actionsocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"actionsocg[${5:trigger%keyvals}]{${1:switchocg1,...}}{${2:showocg1,...}}{${3:hideocg1,...}}{${4:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"actionsocg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"actionsocg*{${1:switchocg1,...}}{${2:showocg1,...}}{${3:hideocg1,...}}{${4:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"actionsocg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"actionsocg*[${5:trigger%keyvals}]{${1:switchocg1,...}}{${2:showocg1,...}}{${3:hideocg1,...}}{${4:link text%text}}\",\n        \"keys\": [\n          \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocglinkprotect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocglinkprotect{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"toggleocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toggleocgs{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"toggleocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toggleocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"showocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showocgs{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"showocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hideocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hideocgs{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"hideocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hideocgs[${3:option%keyvals}]{${1:layerid1 layerid2 ...}}{${2:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"setocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setocgs{${1:tlayerid1 ...}}{${2:slayerid1 ...}}{${3:hlayerid1 ...}}{${4:link text%text}}\"\n      }\n    },\n    {\n      \"name\": \"setocgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"setocgs[${5:option%keyvals}]{${1:tlayerid1 ...}}{${2:slayerid1 ...}}{${3:hlayerid1 ...}}{${4:link text%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ocg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:layer name}}{${2:ocg id}}{${3:initial visibility}}\"\n      }\n    },\n    {\n      \"name\": \"ocg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:layer name}}{${2:ocg id}}{${3:initial visibility}}\",\n        \"keys\": [\n          \"\\\\begin{ocg}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:visibility policy,visibility expression}}\"\n      }\n    },\n    {\n      \"name\": \"ocmd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:id}]{${1:visibility policy,visibility expression}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ocgx2#c\": [\n      \"dvipdfmx\",\n      \"viewocg=${1|always,never,ifvisible|}\",\n      \"printocg=${1|always,never,ifvisible|}\",\n      \"exportocg=${1|always,never,ifvisible|}\",\n      \"showingui=${1|true,false,always,never,iffirstuse|}\",\n      \"tikz\",\n      \"ocgcolorlinks\"\n    ],\n    \"\\\\begin{ocg}\": [\n      \"viewocg=${1|always,never,ifvisible|}\",\n      \"printocg=${1|always,never,ifvisible|}\",\n      \"exportocg=${1|always,never,ifvisible|}\",\n      \"showingui=${1|true,false,always,never,iffirstuse|}\",\n      \"listintoolbar=${1|true,false,always,never,iffirstuse|}\",\n      \"radiobtngrps={${1:group1,group2,...}}\"\n    ],\n    \"\\\\switchocg,\\\\switchocg*,\\\\showocg,\\\\showocg*,\\\\hideocg,\\\\hideocg*,\\\\actionsocg,\\\\actionsocg*\": [\n      \"onmousenter\",\n      \"onmouseexit\",\n      \"onmousedown\",\n      \"onmouseup\",\n      \"onmouseall\"\n    ],\n    \"\\\\tikzset#c,\\\\begin{tikzpicture}#c,\\\\begin{scope}#c,\\\\node#c\": [\n      \"ocg={${1:options}}\",\n      \"ocmd={${1:options}}\",\n      \"trigger ocg=${1|onmousenter,onmouseexit,onmousedown,onmouseup,onmouseall|}\",\n      \"switch ocg={${1:ocg list}}\",\n      \"show ocg={${1:ocg list}}\",\n      \"hide ocg={${1:ocg list}}\",\n      \"actions ocg={${1:ocg list1}}{${2:ocg list2}}{${3:ocg list3}}\",\n      \"switch ocg with mark on={${1:ocg ref}}{${2:ocg list}}\",\n      \"switch ocg with mark off={${1:ocg ref}}{${2:ocg list}}\",\n      \"ocg={${1:options}}\",\n      \"ocmd={${1:options}}\",\n      \"trigger ocg=${1|onmousenter,onmouseexit,onmousedown,onmouseup,onmouseall|}\",\n      \"switch ocg={${1:ocg list}}\",\n      \"show ocg={${1:ocg list}}\",\n      \"hide ocg={${1:ocg list}}\",\n      \"actions ocg={${1:ocg list1}}{${2:ocg list2}}{${3:ocg list3}}\",\n      \"switch ocg with mark on={${1:ocg ref}}{${2:ocg list}}\",\n      \"switch ocg with mark off={${1:ocg ref}}{${2:ocg list}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ocgx2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ocr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ocr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ocrfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocrneg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocrneg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ocrnegfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocrdefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ocr#c\": [\n      \"ocr-a\",\n      \"oca\",\n      \"ocr-b\",\n      \"ocr-b-outline\",\n      \"ocr-b-negative\",\n      \"ocr-b-sharp\",\n      \"ocr-b-sharp-negative\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ocr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/octave.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"octaveprimes\"\n    },\n    {\n      \"name\": \"octavenumbers\"\n    },\n    {\n      \"name\": \"pitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pitch{${1:letter}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pitch\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"pitch{${1:letter}}[${3:accidental}]{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pitchfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"octavetable\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/octave#c\": [\n      \"prime\",\n      \"number\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/octave#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/odesandpdes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setDE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDE{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setDE,\\\\usepackage/odesandpdes#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ode{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"ode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ode[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"ode*\"\n    },\n    {\n      \"name\": \"ode*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ode*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"pde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pde{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"pde\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pde[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"pde*\"\n    },\n    {\n      \"name\": \"pde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pde*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"LagrODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LagrODE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LagrODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LagrODE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LagrODE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LagrODE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LagrODE*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"LeibODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeibODE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LeibODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LeibODE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LeibODE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeibODE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LeibODE*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"NewtODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewtODE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"NewtODE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewtODE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"NewtODE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewtODE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewtODE*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"LagrPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LagrPDE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LagrPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LagrPDE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LagrPDE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LagrPDE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LagrPDE*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"LeibPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeibPDE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LeibPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LeibPDE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"LeibPDE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeibPDE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"LeibPDE*[${1:variable}]\"\n      }\n    },\n    {\n      \"name\": \"NewtPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewtPDE{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"NewtPDE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewtPDE[${2:variable}]{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"NewtPDE*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewtPDE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewtPDE*[${1:variable}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setDE,\\\\usepackage/odesandpdes#c\": [\n      \"notation=${1|default,Lagrange,Leibniz,Newton|}\",\n      \"maxprimes=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setDE,\\\\usepackage/odesandpdes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/odsfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includespread\"\n    },\n    {\n      \"name\": \"includespread\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"includespread[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\includespread#c,\\\\includespread*#c,\\\\loadodsfile#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includespread*\"\n    },\n    {\n      \"name\": \"includespread*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"includespread*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\includespread#c,\\\\includespread*#c,\\\\loadodsfile#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabletemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabletemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddString\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddString{${1:text}}{${2:position}}\"\n      }\n    },\n    {\n      \"name\": \"AddNumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddNumber{${1:number}}{${2:position}}\"\n      }\n    },\n    {\n      \"name\": \"loadodsfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadodsfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadodsfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loadodsfile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"savespreadsheet\"\n    },\n    {\n      \"name\": \"OdsNl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OdsLastNl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"AddRow\"\n    },\n    {\n      \"name\": \"AddRow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:row number}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\includespread#c,\\\\includespread*#c,\\\\loadodsfile#c\": [\n      \"file=${1:file name}\",\n      \"sheet=${1:sheet name}\",\n      \"range=${1:cell1:cell2}\",\n      \"columns=${2|head,top,{${1:list of headings}}|}\",\n      \"columnbreak=${1:command}\",\n      \"rowseparator=${2|tableline,hline,newline,${1:command}|}\",\n      \"template=${3|${1:template name},{${2:code}}|}\",\n      \"coltypes=${1:coltypes}\",\n      \"rowtemplate=${3|${1:template name},{${2:code}}|}\",\n      \"celltemplate=${3|${1:template name},{${2:code}}|}\",\n      \"multicoltemplate=${3|${1:template name},{${2:code}}|}\",\n      \"escape\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ogonek.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"sob\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sob{${1:letter}}{${2:hl}}{${3:ho}}{${4:vl}}{${5:vo}}\"\n      }\n    },\n    {\n      \"name\": \"aob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uob\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ogonek#c\": [\n      \"PL\",\n      \"LT\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ogonek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/okumacro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rubyfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjistrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:kanji}}{${2:ruby}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ruby[${3:dimen}]{${1:kanji}}{${2:ruby}}\"\n      }\n    },\n    {\n      \"name\": \"kenten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kenten{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kintou\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kintou{${1:length}}{${2:characters}}\"\n      }\n    },\n    {\n      \"name\": \"myallowbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mytt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"BS\"\n    },\n    {\n      \"name\": \"asciibar\"\n    },\n    {\n      \"name\": \"removept\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"removept{${1:dimen register}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"okukeytop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"okukeytop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keytop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RETMARK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"okureturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"return\"\n    },\n    {\n      \"name\": \"upkey\"\n    },\n    {\n      \"name\": \"downkey\"\n    },\n    {\n      \"name\": \"rightkey\"\n    },\n    {\n      \"name\": \"leftkey\"\n    },\n    {\n      \"name\": \"MARU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MARU{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"JTeX\"\n    },\n    {\n      \"name\": \"JLaTeX\"\n    },\n    {\n      \"name\": \"JBibTeX\"\n    },\n    {\n      \"name\": \"pTeXsT\"\n    },\n    {\n      \"name\": \"iTeX\"\n    },\n    {\n      \"name\": \"MlTeX\"\n    },\n    {\n      \"name\": \"namelistlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namelistlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SHUTTEN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SHUTTEN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"EXAMPLEWIDTH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"INEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OUTEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ENDEXC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ENDEXC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"whichpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whichpage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"migiake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"migiake{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rightfig\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rightfig{${1:space}}{${2:numlines}}{${3:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"shaderule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sankoumark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toimark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eps\"\n    },\n    {\n      \"name\": \"LEQQ\"\n    },\n    {\n      \"name\": \"GEQQ\"\n    },\n    {\n      \"name\": \"APPROX\"\n    },\n    {\n      \"name\": \"FRAC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FRAC{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"hk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ANGLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ANGLE{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dangerous\"\n    },\n    {\n      \"name\": \"namelist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"mybibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest label}}\"\n      }\n    },\n    {\n      \"name\": \"FRAME\"\n    },\n    {\n      \"name\": \"okuscreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"okuscreen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:roundness}]\"\n      }\n    },\n    {\n      \"name\": \"screen\"\n    },\n    {\n      \"name\": \"screen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:roundness}]\"\n      }\n    },\n    {\n      \"name\": \"EXAMPLE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OUT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"okushadebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadebox\"\n    },\n    {\n      \"name\": \"sankou\"\n    },\n    {\n      \"name\": \"toi\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/okuverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"ttyen\"\n    },\n    {\n      \"name\": \"ttbslash\"\n    },\n    {\n      \"name\": \"BS\"\n    },\n    {\n      \"name\": \"verbatimleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbatimsize\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/okuverb#c\": [\n      \"yen\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/okuverb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/old-arrows.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"joinrelaz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longhookleftarrow\"\n    },\n    {\n      \"name\": \"longhookrightarrow\"\n    },\n    {\n      \"name\": \"longleftharpoondown\"\n    },\n    {\n      \"name\": \"longleftharpoonup\"\n    },\n    {\n      \"name\": \"longrightharpoondown\"\n    },\n    {\n      \"name\": \"longrightharpoonup\"\n    },\n    {\n      \"name\": \"meno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relbarra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xmapsfrom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xmapsfrom[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"vardownarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"vargets\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varhookleftarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varhookrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varleftarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varleftarrowfill\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varleftrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlonghookleftarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlonghookrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlongleftarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlongleftrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlongmapsfrom\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlongmapsto\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varlongrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varmapsfrom\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varmapsto\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varmapstochar\",\n      \"if\": \"new\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnearrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varnwarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varoverleftarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverleftrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varrightarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varrightarrowfill\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varsearrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varswarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varto\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varunderleftrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderleftarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varuparrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varupdownarrow\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varvarinjlim\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varvarprojlim\",\n      \"if\": \"new\"\n    },\n    {\n      \"name\": \"varxhookleftarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxhookrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsfrom\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsfrom[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsto\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsto[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxrightarrow\",\n      \"if\": \"new\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"vardownarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"vargets\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varhookleftarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varhookrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varleftarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varleftarrowfill\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varleftrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlonghookleftarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlonghookrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlongleftarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlongleftrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlongmapsfrom\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlongmapsto\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varlongrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varmapsfrom\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varmapsto\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varmapstochar\",\n      \"if\": \"old\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnearrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varnwarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varoverleftarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverleftrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varrightarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varrightarrowfill\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varsearrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varswarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varto\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varunderleftrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderleftarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varuparrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varupdownarrow\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varvarinjlim\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varvarprojlim\",\n      \"if\": \"old\"\n    },\n    {\n      \"name\": \"varxhookleftarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxhookrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsfrom\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsfrom[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsto\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsto[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxrightarrow\",\n      \"if\": \"old\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/old-arrows#c\": [\n      \"default\",\n      \"new\",\n      \"old\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/old-arrows#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/oldgerm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gothfamily\"\n    },\n    {\n      \"name\": \"frakfamily\"\n    },\n    {\n      \"name\": \"swabfamily\"\n    },\n    {\n      \"name\": \"textgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswab{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/oldprsn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"copsnfamily\"\n    },\n    {\n      \"name\": \"textcopsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcopsn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oa\"\n    },\n    {\n      \"name\": \"Oi\"\n    },\n    {\n      \"name\": \"Ou\"\n    },\n    {\n      \"name\": \"Oka\"\n    },\n    {\n      \"name\": \"Oku\"\n    },\n    {\n      \"name\": \"Oxa\"\n    },\n    {\n      \"name\": \"Oga\"\n    },\n    {\n      \"name\": \"Ogu\"\n    },\n    {\n      \"name\": \"Oca\"\n    },\n    {\n      \"name\": \"Oja\"\n    },\n    {\n      \"name\": \"Oji\"\n    },\n    {\n      \"name\": \"Ota\"\n    },\n    {\n      \"name\": \"Otu\"\n    },\n    {\n      \"name\": \"Otha\"\n    },\n    {\n      \"name\": \"Occa\"\n    },\n    {\n      \"name\": \"Oda\"\n    },\n    {\n      \"name\": \"Odi\"\n    },\n    {\n      \"name\": \"Odu\"\n    },\n    {\n      \"name\": \"Ona\"\n    },\n    {\n      \"name\": \"Onu\"\n    },\n    {\n      \"name\": \"Opa\"\n    },\n    {\n      \"name\": \"Ofa\"\n    },\n    {\n      \"name\": \"Oba\"\n    },\n    {\n      \"name\": \"Oma\"\n    },\n    {\n      \"name\": \"Omi\"\n    },\n    {\n      \"name\": \"Omu\"\n    },\n    {\n      \"name\": \"Oya\"\n    },\n    {\n      \"name\": \"Ora\"\n    },\n    {\n      \"name\": \"Oru\"\n    },\n    {\n      \"name\": \"Ola\"\n    },\n    {\n      \"name\": \"Ova\"\n    },\n    {\n      \"name\": \"Ovi\"\n    },\n    {\n      \"name\": \"Osa\"\n    },\n    {\n      \"name\": \"Osva\"\n    },\n    {\n      \"name\": \"Oza\"\n    },\n    {\n      \"name\": \"Oha\"\n    },\n    {\n      \"name\": \"Oking\"\n    },\n    {\n      \"name\": \"Ocountrya\"\n    },\n    {\n      \"name\": \"Ocountryb\"\n    },\n    {\n      \"name\": \"Oearth\"\n    },\n    {\n      \"name\": \"Ogod\"\n    },\n    {\n      \"name\": \"OAura\"\n    },\n    {\n      \"name\": \"OAurb\"\n    },\n    {\n      \"name\": \"OAurc\"\n    },\n    {\n      \"name\": \"Oone\"\n    },\n    {\n      \"name\": \"Otwo\"\n    },\n    {\n      \"name\": \"Oten\"\n    },\n    {\n      \"name\": \"Otwenty\"\n    },\n    {\n      \"name\": \"Ohundred\"\n    },\n    {\n      \"name\": \"Owd\"\n    },\n    {\n      \"name\": \"translitcopsn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitcopsn{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitcopsnfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/oldstyle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"oldstyle\"\n    },\n    {\n      \"name\": \"textos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstylefamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/onedash.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dash\"\n    },\n    {\n      \"name\": \"pdash\"\n    },\n    {\n      \"name\": \"hyph\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/onedash#c\": [\n      \"american\",\n      \"british\",\n      \"polish\",\n      \"polish-emdash\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/onedash#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/onedown.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"moresize\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"makecmds\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"collcell\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tracklang\"\n    },\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setdefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/onedown#c,\\\\setdefaults#c,\\\\setdefaults*#c\",\n          \"\\\\setdefaults#c,\\\\setdefaults*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdefaults*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaults*{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/onedown#c,\\\\setdefaults#c,\\\\setdefaults*#c\",\n          \"\\\\setdefaults#c,\\\\setdefaults*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cl\"\n    },\n    {\n      \"name\": \"Di\"\n    },\n    {\n      \"name\": \"He\"\n    },\n    {\n      \"name\": \"Sp\"\n    },\n    {\n      \"name\": \"NT\"\n    },\n    {\n      \"name\": \"pass\"\n    },\n    {\n      \"name\": \"allpass\"\n    },\n    {\n      \"name\": \"double\"\n    },\n    {\n      \"name\": \"redouble\"\n    },\n    {\n      \"name\": \"north\"\n    },\n    {\n      \"name\": \"east\"\n    },\n    {\n      \"name\": \"south\"\n    },\n    {\n      \"name\": \"west\"\n    },\n    {\n      \"name\": \"northsouth\"\n    },\n    {\n      \"name\": \"eastwest\"\n    },\n    {\n      \"name\": \"HCP\"\n    },\n    {\n      \"name\": \"HLP\"\n    },\n    {\n      \"name\": \"LP\"\n    },\n    {\n      \"name\": \"DP\"\n    },\n    {\n      \"name\": \"TP\"\n    },\n    {\n      \"name\": \"GF\"\n    },\n    {\n      \"name\": \"SF\"\n    },\n    {\n      \"name\": \"NMF\"\n    },\n    {\n      \"name\": \"TSF\"\n    },\n    {\n      \"name\": \"FSF\"\n    },\n    {\n      \"name\": \"namesNS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namesNS{${1:N-name}}{${2:S-name}}\"\n      }\n    },\n    {\n      \"name\": \"namesEW\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namesEW{${1:E-name}}{${2:W-name}}\"\n      }\n    },\n    {\n      \"name\": \"northhand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"northhand{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"northhand\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"northhand[${5:v-offset}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"easthand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"easthand{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"easthand\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"easthand[${5:h-offset}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"southhand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"southhand{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"southhand\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"southhand[${5:v-offset}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"westhand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"westhand{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"westhand\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"westhand[${5:h-offset}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"hand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hand{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"hand\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hand[${5:pos}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"hand*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hand*{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"hand*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"hand*[${5:pos}]{${1:Sp}}{${2:He}}{${3:Di}}{${4:Cl}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitAll\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"onesuitAll{${1:N}}{${2:S}}{${3:E}}{${4:W}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitAll*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"onesuitAll*{${1:N}}{${2:S}}{${3:E}}{${4:W}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNS{${1:N}}{${2:S}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNS*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNS*{${1:N}}{${2:S}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitEW\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitEW{${1:E}}{${2:W}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitEW*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitEW*{${1:E}}{${2:W}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNE{${1:N}}{${2:E}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNE*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNE*{${1:N}}{${2:E}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNW\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNW{${1:N}}{${2:W}}\"\n      }\n    },\n    {\n      \"name\": \"onesuitNW*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"onesuitNW*{${1:N}}{${2:W}}\"\n      }\n    },\n    {\n      \"name\": \"suit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suit{${1:cards}}\"\n      }\n    },\n    {\n      \"name\": \"suit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"suit[${2:symbol}]{${1:cards}}\"\n      }\n    },\n    {\n      \"name\": \"showAll\"\n    },\n    {\n      \"name\": \"showAll\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showAll[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showAll*\"\n    },\n    {\n      \"name\": \"showAll*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showAll*[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNS\"\n    },\n    {\n      \"name\": \"showNS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNS[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNS\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"showNS(${1:N/S})\"\n      }\n    },\n    {\n      \"name\": \"showNS\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"showNS[${1:pos}](${2:N/S})\"\n      }\n    },\n    {\n      \"name\": \"showNS*\"\n    },\n    {\n      \"name\": \"showNS*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNS*[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNS*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"showNS*(${1:N/S})\"\n      }\n    },\n    {\n      \"name\": \"showNS*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"showNS*[${1:pos}](${2:N/S})\"\n      }\n    },\n    {\n      \"name\": \"showEW\"\n    },\n    {\n      \"name\": \"showEW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showEW[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showEW\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"showEW(${1:E/W})\"\n      }\n    },\n    {\n      \"name\": \"showEW\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"showEW[${1:pos}](${2:E/W})\"\n      }\n    },\n    {\n      \"name\": \"showEW*\"\n    },\n    {\n      \"name\": \"showEW*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showEW*[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showEW*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"showEW*(${1:E/W})\"\n      }\n    },\n    {\n      \"name\": \"showEW*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"showEW*[${1:pos}](${2:E/W})\"\n      }\n    },\n    {\n      \"name\": \"showNE\"\n    },\n    {\n      \"name\": \"showNE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNE[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNE*\"\n    },\n    {\n      \"name\": \"showNE*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNE*[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNW\"\n    },\n    {\n      \"name\": \"showNW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNW[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"showNW*\"\n    },\n    {\n      \"name\": \"showNW*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showNW*[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"headlinetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headlinetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footlinetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footlinetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftupper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leftupper{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftupper\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"leftupper[${4:h-offset}]{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftlower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"leftlower{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"leftlower\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"leftlower[${4:h-offset}]{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightupper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rightupper{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightupper\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rightupper[${4:h-offset}]{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightlower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rightlower{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"rightlower\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rightlower[${4:h-offset}]{${1:line1%text}}{${2:line2%text}}{${3:line3%text}}\"\n      }\n    },\n    {\n      \"name\": \"dealer\"\n    },\n    {\n      \"name\": \"dealer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dealer[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"vulner\"\n    },\n    {\n      \"name\": \"vulner\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vulner[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"dealertext\"\n    },\n    {\n      \"name\": \"dealertext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dealertext[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"vulnertext\"\n    },\n    {\n      \"name\": \"vulnertext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vulnertext[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"boardnr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boardnr{${1:Nr}}\"\n      }\n    },\n    {\n      \"name\": \"boardtext\"\n    },\n    {\n      \"name\": \"boardtext*\"\n    },\n    {\n      \"name\": \"handskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bidderfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bidderfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"compassfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compassfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"gamefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gamefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"legendfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"namefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"otherfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"otherfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Ace\"\n    },\n    {\n      \"name\": \"Ace*\"\n    },\n    {\n      \"name\": \"ace\"\n    },\n    {\n      \"name\": \"King\"\n    },\n    {\n      \"name\": \"King*\"\n    },\n    {\n      \"name\": \"king\"\n    },\n    {\n      \"name\": \"Queen\"\n    },\n    {\n      \"name\": \"Queen*\"\n    },\n    {\n      \"name\": \"queen\"\n    },\n    {\n      \"name\": \"Jack\"\n    },\n    {\n      \"name\": \"Jack*\"\n    },\n    {\n      \"name\": \"jack\"\n    },\n    {\n      \"name\": \"nt\"\n    },\n    {\n      \"name\": \"nt*\"\n    },\n    {\n      \"name\": \"Pass\"\n    },\n    {\n      \"name\": \"Pass*\"\n    },\n    {\n      \"name\": \"Allpass\"\n    },\n    {\n      \"name\": \"Allpass*\"\n    },\n    {\n      \"name\": \"Double\"\n    },\n    {\n      \"name\": \"Double*\"\n    },\n    {\n      \"name\": \"Redouble\"\n    },\n    {\n      \"name\": \"Redouble*\"\n    },\n    {\n      \"name\": \"North\"\n    },\n    {\n      \"name\": \"North*\"\n    },\n    {\n      \"name\": \"East\"\n    },\n    {\n      \"name\": \"East*\"\n    },\n    {\n      \"name\": \"South\"\n    },\n    {\n      \"name\": \"South*\"\n    },\n    {\n      \"name\": \"West\"\n    },\n    {\n      \"name\": \"West*\"\n    },\n    {\n      \"name\": \"NorthSouth\"\n    },\n    {\n      \"name\": \"NorthSouth*\"\n    },\n    {\n      \"name\": \"EastWest\"\n    },\n    {\n      \"name\": \"EastWest*\"\n    },\n    {\n      \"name\": \"hpts\"\n    },\n    {\n      \"name\": \"hpts*\"\n    },\n    {\n      \"name\": \"tpts\"\n    },\n    {\n      \"name\": \"tpts*\"\n    },\n    {\n      \"name\": \"lpts\"\n    },\n    {\n      \"name\": \"lpts*\"\n    },\n    {\n      \"name\": \"dpts\"\n    },\n    {\n      \"name\": \"dpts*\"\n    },\n    {\n      \"name\": \"gforce\"\n    },\n    {\n      \"name\": \"gforce*\"\n    },\n    {\n      \"name\": \"sforce\"\n    },\n    {\n      \"name\": \"sforce*\"\n    },\n    {\n      \"name\": \"nmforce\"\n    },\n    {\n      \"name\": \"nmforce*\"\n    },\n    {\n      \"name\": \"tsforce\"\n    },\n    {\n      \"name\": \"tsforce*\"\n    },\n    {\n      \"name\": \"fsforce\"\n    },\n    {\n      \"name\": \"fsforce*\"\n    },\n    {\n      \"name\": \"All\"\n    },\n    {\n      \"name\": \"All*\"\n    },\n    {\n      \"name\": \"all\"\n    },\n    {\n      \"name\": \"None\"\n    },\n    {\n      \"name\": \"None*\"\n    },\n    {\n      \"name\": \"none\"\n    },\n    {\n      \"name\": \"by\"\n    },\n    {\n      \"name\": \"Board\"\n    },\n    {\n      \"name\": \"Board*\"\n    },\n    {\n      \"name\": \"board\"\n    },\n    {\n      \"name\": \"Contract\"\n    },\n    {\n      \"name\": \"Contract*\"\n    },\n    {\n      \"name\": \"contract\"\n    },\n    {\n      \"name\": \"Declarer\"\n    },\n    {\n      \"name\": \"Declarer*\"\n    },\n    {\n      \"name\": \"declarer\"\n    },\n    {\n      \"name\": \"Deal\"\n    },\n    {\n      \"name\": \"Deal*\"\n    },\n    {\n      \"name\": \"deal\"\n    },\n    {\n      \"name\": \"Lead\"\n    },\n    {\n      \"name\": \"Lead*\"\n    },\n    {\n      \"name\": \"lead\"\n    },\n    {\n      \"name\": \"alert\"\n    },\n    {\n      \"name\": \"announce\"\n    },\n    {\n      \"name\": \"markit\"\n    },\n    {\n      \"name\": \"explainit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explainit{${1:explanation%text}}\"\n      }\n    },\n    {\n      \"name\": \"expertquiz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expertquiz{${1:award}}\"\n      }\n    },\n    {\n      \"name\": \"expertquiz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"expertquiz[${2:comment%text}]{${1:award}}\"\n      }\n    },\n    {\n      \"name\": \"expertquiz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expertquiz*{${1:award}}\"\n      }\n    },\n    {\n      \"name\": \"expertquiz*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"expertquiz*[${2:comment%text}]{${1:award}}\"\n      }\n    },\n    {\n      \"name\": \"newgame\"\n    },\n    {\n      \"name\": \"resetfonts\"\n    },\n    {\n      \"name\": \"doubled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubled*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redoubled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redoubled*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ten\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bidding\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:description%text})\"\n      }\n    },\n    {\n      \"name\": \"bidding\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:pos}](${2:description%text})\"\n      }\n    },\n    {\n      \"name\": \"bidding\",\n      \"arg\": {\n        \"format\": \"*()\",\n        \"snippet\": \"*(${1:description%text})\"\n      }\n    },\n    {\n      \"name\": \"bidding\",\n      \"arg\": {\n        \"format\": \"*[]()\",\n        \"snippet\": \"*[${1:pos}](${2:description%text})\"\n      }\n    },\n    {\n      \"name\": \"biddingpair\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:description%text})\"\n      }\n    },\n    {\n      \"name\": \"biddingpair\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:pos}](${2:description%text})\"\n      }\n    },\n    {\n      \"name\": \"biddingpair\",\n      \"arg\": {\n        \"format\": \"*()\",\n        \"snippet\": \"*(${1:description%text})\"\n      }\n    },\n    {\n      \"name\": \"biddingpair\",\n      \"arg\": {\n        \"format\": \"*[]()\",\n        \"snippet\": \"*[${1:pos}](${2:description%text})\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:lead}}\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:lead}}[${2:trump}]\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:lead}}\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"*{}[]\",\n        \"snippet\": \"*{${1:lead}}[${2:trump}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/onedown#c,\\\\setdefaults#c,\\\\setdefaults*#c\": [\n      \"colors=${1|0,1,2,3,4A,4B|}\",\n      \"err=${1|on,off|}\",\n      \"warn=${1|on,off|}\"\n    ],\n    \"\\\\setdefaults#c,\\\\setdefaults*#c\": [\n      \"bidder=${1:font commands}\",\n      \"compass=${1:font commands}\",\n      \"game=${1:font commands}\",\n      \"legend=${1:font commands}\",\n      \"name=${1:font commands}\",\n      \"other=${1:font commands}\",\n      \"compline=${1:factor}\",\n      \"compmid=\",\n      \"compshow=${1|on,off|}\",\n      \"compsize=${1:factor}\",\n      \"compturn=${1|on,off|}\",\n      \"bidders=${1|on,off|}\",\n      \"bidfirst=${1|N,E,S,W|}\",\n      \"bidline=${1|on,off|}\",\n      \"bidlong=${1|on,off|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/onedown#c,\\\\setdefaults#c,\\\\setdefaults*#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/onlyamsmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/onlyamsmath#c\": [\n      \"eqnarray\",\n      \"all\",\n      \"error\",\n      \"warning\",\n      \"nodollardollar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/onlyamsmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/opacity-pro.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settransparency{${1:ca}}{${2:CA}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"settransparency{${1:ca}}{${2:CA}}[${4:PDF KVs}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"settransparency[${4:blend mode%keyvals}]{${1:ca}}{${2:CA}}{${3:content%text}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"settransparency[${4:blend mode%keyvals}]{${1:ca}}{${2:CA}}[${5:PDF KVs}]{${3:content%text}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"settransparency*{${1:ca}}{${2:CA}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"settransparency*{${1:ca}}{${2:CA}}[${4:PDF KVs}]{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"settransparency*[${4:blend mode%keyvals}]{${1:ca}}{${2:CA}}{${3:content%text}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"settransparency*[${4:blend mode%keyvals}]{${1:ca}}{${2:CA}}[${5:PDF KVs}]{${3:content%text}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:ca}}{${2:CA}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:ca}}{${2:CA}}[${3:PDF KVs}]\"\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:blend mode%keyvals}]{${1:ca}}{${2:CA}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"[${3:blend mode%keyvals}]{${1:ca}}{${2:CA}}[${4:PDF KVs}]\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:ca}}{${2:CA}}\"\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:ca}}{${2:CA}}[${3:PDF KVs}]\"\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:blend mode%keyvals}]{${1:ca}}{${2:CA}}\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settransparency*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"[${3:blend mode%keyvals}]{${1:ca}}{${2:CA}}[${4:PDF KVs}]\",\n        \"keys\": [\n          \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/opacity-pro#c\": [\n      \"dvips\",\n      \"dvipsone\"\n    ],\n    \"\\\\settransparency#c,\\\\settransparency*#c,\\\\begin{settransparency}#c,\\\\begin{settransparency*}#c\": [\n      \"Normal\",\n      \"Multiply\",\n      \"Screen\",\n      \"Overlay\",\n      \"Darken\",\n      \"Lighten\",\n      \"ColorDodge\",\n      \"ColorBurn\",\n      \"HardLight\",\n      \"SoftLight\",\n      \"Difference\",\n      \"Exclusion\",\n      \"Hue\",\n      \"Color\",\n      \"Saturation\",\n      \"Luminosity\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/opacity-pro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/opcit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"hyperref\",\n      \"if\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibcase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibcase{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"bibhereafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibhereafter{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"biblastnames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblastnames{${1:last names}}\"\n      }\n    },\n    {\n      \"name\": \"bibpunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibref{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"cited\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cited{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"hereafter\"\n    },\n    {\n      \"name\": \"idemtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newBibCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newBibCommand{${1:command}}{${2:footnote style}}{${3:list style}}\"\n      }\n    },\n    {\n      \"name\": \"nobibliography\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobibliography{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"opcitends\"\n    },\n    {\n      \"name\": \"opcitstart\"\n    },\n    {\n      \"name\": \"opcittext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opcitwarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opcitwarning{${1:warning%text}}\"\n      }\n    },\n    {\n      \"name\": \"QuoteOrNot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetcites\"\n    },\n    {\n      \"name\": \"sameauthors\"\n    },\n    {\n      \"name\": \"sameauthorsrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toomit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toomit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"with\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"with{${1:field}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/opcit#c\": [\n      \"custombst\",\n      \"nocustombst\",\n      \"hyperref\",\n      \"nohyperref\",\n      \"omitting\",\n      \"noomitting\",\n      \"idem\",\n      \"noidem\",\n      \"checkidem\",\n      \"nocheckidem\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/opcit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/opencolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/opensans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"opensans\"\n    },\n    {\n      \"name\": \"opensansfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/opensans#c\": [\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"defaultsans\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/opensans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/oplotsymbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circletcross\"\n    },\n    {\n      \"name\": \"circletcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletdot\"\n    },\n    {\n      \"name\": \"circletdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletdot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletfillha\"\n    },\n    {\n      \"name\": \"circletfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletfillhb\"\n    },\n    {\n      \"name\": \"circletfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletfillhl\"\n    },\n    {\n      \"name\": \"circletfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletfillhr\"\n    },\n    {\n      \"name\": \"circletfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletfill\"\n    },\n    {\n      \"name\": \"circletfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletlineh\"\n    },\n    {\n      \"name\": \"circletlineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletlineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletlinevh\"\n    },\n    {\n      \"name\": \"circletlinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletlinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circletlinev\"\n    },\n    {\n      \"name\": \"circletlinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circletlinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"circlet\"\n    },\n    {\n      \"name\": \"circlet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circlet[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagocross\"\n    },\n    {\n      \"name\": \"hexagocross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagocross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagodot\"\n    },\n    {\n      \"name\": \"hexagodot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagodot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagofillha\"\n    },\n    {\n      \"name\": \"hexagofillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagofillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagofillhb\"\n    },\n    {\n      \"name\": \"hexagofillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagofillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagofillhl\"\n    },\n    {\n      \"name\": \"hexagofillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagofillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagofillhr\"\n    },\n    {\n      \"name\": \"hexagofillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagofillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagofill\"\n    },\n    {\n      \"name\": \"hexagofill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagofill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagolineh\"\n    },\n    {\n      \"name\": \"hexagolineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagolineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagolinevh\"\n    },\n    {\n      \"name\": \"hexagolinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagolinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexagolinev\"\n    },\n    {\n      \"name\": \"hexagolinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexagolinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"hexago\"\n    },\n    {\n      \"name\": \"hexago\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hexago[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"lineh\"\n    },\n    {\n      \"name\": \"lineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"linevh\"\n    },\n    {\n      \"name\": \"linevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"linev\"\n    },\n    {\n      \"name\": \"linev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagocross\"\n    },\n    {\n      \"name\": \"pentagocross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagocross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagodot\"\n    },\n    {\n      \"name\": \"pentagodot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagodot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagofillha\"\n    },\n    {\n      \"name\": \"pentagofillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagofillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagofillhb\"\n    },\n    {\n      \"name\": \"pentagofillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagofillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagofillhl\"\n    },\n    {\n      \"name\": \"pentagofillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagofillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagofillhr\"\n    },\n    {\n      \"name\": \"pentagofillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagofillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagofill\"\n    },\n    {\n      \"name\": \"pentagofill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagofill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagolineh\"\n    },\n    {\n      \"name\": \"pentagolineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagolineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagolinevh\"\n    },\n    {\n      \"name\": \"pentagolinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagolinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentagolinev\"\n    },\n    {\n      \"name\": \"pentagolinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagolinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"pentago\"\n    },\n    {\n      \"name\": \"pentago\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentago[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombuscross\"\n    },\n    {\n      \"name\": \"rhombuscross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombuscross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusdot\"\n    },\n    {\n      \"name\": \"rhombusdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusdot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusfillha\"\n    },\n    {\n      \"name\": \"rhombusfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusfillhb\"\n    },\n    {\n      \"name\": \"rhombusfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusfillhl\"\n    },\n    {\n      \"name\": \"rhombusfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusfillhr\"\n    },\n    {\n      \"name\": \"rhombusfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombusfill\"\n    },\n    {\n      \"name\": \"rhombusfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombusfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombuslineh\"\n    },\n    {\n      \"name\": \"rhombuslineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombuslineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombuslinevh\"\n    },\n    {\n      \"name\": \"rhombuslinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombuslinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombuslinev\"\n    },\n    {\n      \"name\": \"rhombuslinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombuslinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"rhombus\"\n    },\n    {\n      \"name\": \"rhombus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhombus[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"scrossvh\"\n    },\n    {\n      \"name\": \"scrossvh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scrossvh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"scross\"\n    },\n    {\n      \"name\": \"scross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadcross\"\n    },\n    {\n      \"name\": \"squadcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squaddot\"\n    },\n    {\n      \"name\": \"squaddot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squaddot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadfillha\"\n    },\n    {\n      \"name\": \"squadfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadfillhb\"\n    },\n    {\n      \"name\": \"squadfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadfillhl\"\n    },\n    {\n      \"name\": \"squadfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadfillhr\"\n    },\n    {\n      \"name\": \"squadfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadfill\"\n    },\n    {\n      \"name\": \"squadfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadlineh\"\n    },\n    {\n      \"name\": \"squadlineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadlineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadlinevh\"\n    },\n    {\n      \"name\": \"squadlinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadlinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squadlinev\"\n    },\n    {\n      \"name\": \"squadlinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squadlinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"squad\"\n    },\n    {\n      \"name\": \"squad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squad[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletcross\"\n    },\n    {\n      \"name\": \"starletcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletdot\"\n    },\n    {\n      \"name\": \"starletdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletdot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletfillha\"\n    },\n    {\n      \"name\": \"starletfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletfillhb\"\n    },\n    {\n      \"name\": \"starletfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletfillhl\"\n    },\n    {\n      \"name\": \"starletfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletfillhr\"\n    },\n    {\n      \"name\": \"starletfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletfill\"\n    },\n    {\n      \"name\": \"starletfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletlineh\"\n    },\n    {\n      \"name\": \"starletlineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletlineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletlinevh\"\n    },\n    {\n      \"name\": \"starletlinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletlinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starletlinev\"\n    },\n    {\n      \"name\": \"starletlinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starletlinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"starlet\"\n    },\n    {\n      \"name\": \"starlet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"starlet[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepacross\"\n    },\n    {\n      \"name\": \"trianglepacross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepacross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepadot\"\n    },\n    {\n      \"name\": \"trianglepadot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepadot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepafillha\"\n    },\n    {\n      \"name\": \"trianglepafillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepafillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepafillhb\"\n    },\n    {\n      \"name\": \"trianglepafillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepafillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepafillhl\"\n    },\n    {\n      \"name\": \"trianglepafillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepafillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepafillhr\"\n    },\n    {\n      \"name\": \"trianglepafillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepafillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepafill\"\n    },\n    {\n      \"name\": \"trianglepafill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepafill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepalineh\"\n    },\n    {\n      \"name\": \"trianglepalineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepalineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepalinevh\"\n    },\n    {\n      \"name\": \"trianglepalinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepalinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepalinev\"\n    },\n    {\n      \"name\": \"trianglepalinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepalinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepa\"\n    },\n    {\n      \"name\": \"trianglepa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepa[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbcross\"\n    },\n    {\n      \"name\": \"trianglepbcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbdot\"\n    },\n    {\n      \"name\": \"trianglepbdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbdot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbfillha\"\n    },\n    {\n      \"name\": \"trianglepbfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbfillhb\"\n    },\n    {\n      \"name\": \"trianglepbfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbfillhl\"\n    },\n    {\n      \"name\": \"trianglepbfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbfillhr\"\n    },\n    {\n      \"name\": \"trianglepbfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepbfill\"\n    },\n    {\n      \"name\": \"trianglepbfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepbfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepblineh\"\n    },\n    {\n      \"name\": \"trianglepblineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepblineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepblinevh\"\n    },\n    {\n      \"name\": \"trianglepblinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepblinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepblinev\"\n    },\n    {\n      \"name\": \"trianglepblinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepblinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepb\"\n    },\n    {\n      \"name\": \"trianglepb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplcross\"\n    },\n    {\n      \"name\": \"triangleplcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepldot\"\n    },\n    {\n      \"name\": \"trianglepldot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepldot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplfillha\"\n    },\n    {\n      \"name\": \"triangleplfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplfillhb\"\n    },\n    {\n      \"name\": \"triangleplfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplfillhl\"\n    },\n    {\n      \"name\": \"triangleplfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplfillhr\"\n    },\n    {\n      \"name\": \"triangleplfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleplfill\"\n    },\n    {\n      \"name\": \"triangleplfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleplfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepllineh\"\n    },\n    {\n      \"name\": \"trianglepllineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepllineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepllinevh\"\n    },\n    {\n      \"name\": \"trianglepllinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepllinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepllinev\"\n    },\n    {\n      \"name\": \"trianglepllinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepllinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepl\"\n    },\n    {\n      \"name\": \"trianglepl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprcross\"\n    },\n    {\n      \"name\": \"triangleprcross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprcross[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprdot\"\n    },\n    {\n      \"name\": \"triangleprdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprdot[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprfillha\"\n    },\n    {\n      \"name\": \"triangleprfillha\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprfillha[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprfillhb\"\n    },\n    {\n      \"name\": \"triangleprfillhb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprfillhb[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprfillhl\"\n    },\n    {\n      \"name\": \"triangleprfillhl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprfillhl[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprfillhr\"\n    },\n    {\n      \"name\": \"triangleprfillhr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprfillhr[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprfill\"\n    },\n    {\n      \"name\": \"triangleprfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprfill[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprlineh\"\n    },\n    {\n      \"name\": \"triangleprlineh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprlineh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprlinevh\"\n    },\n    {\n      \"name\": \"triangleprlinevh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprlinevh[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"triangleprlinev\"\n    },\n    {\n      \"name\": \"triangleprlinev\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triangleprlinev[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"trianglepr\"\n    },\n    {\n      \"name\": \"trianglepr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trianglepr[${1:TikZ options}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/optex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"plaintex\"\n    },\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"magscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"magscale[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"headlinedist\"\n    },\n    {\n      \"name\": \"footlinedist\"\n    },\n    {\n      \"name\": \"pgbackground\"\n    },\n    {\n      \"name\": \"draft\"\n    },\n    {\n      \"name\": \"fnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mnotesize\"\n    },\n    {\n      \"name\": \"fnotenumglobal\"\n    },\n    {\n      \"name\": \"fnotenumpages\"\n    },\n    {\n      \"name\": \"fnotenumchapters\"\n    },\n    {\n      \"name\": \"fontfam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fontfam[${1:family-name}]\"\n      }\n    },\n    {\n      \"name\": \"fontfamsub\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"fontfamsub[${1:family}][${2:by-family}]\"\n      }\n    },\n    {\n      \"name\": \"caps\"\n    },\n    {\n      \"name\": \"cond\"\n    },\n    {\n      \"name\": \"bi\"\n    },\n    {\n      \"name\": \"currvar\"\n    },\n    {\n      \"name\": \"em\"\n    },\n    {\n      \"name\": \"typosize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"typosize[${1:fontsize/baselineskip}]\"\n      }\n    },\n    {\n      \"name\": \"ptunit\"\n    },\n    {\n      \"name\": \"typoscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"typoscale[${1:font-factor/baselineskip-factor}]\"\n      }\n    },\n    {\n      \"name\": \"mainfosize\"\n    },\n    {\n      \"name\": \"mainbaselineskip\"\n    },\n    {\n      \"name\": \"scalemain\"\n    },\n    {\n      \"name\": \"thefontsize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thefontsize[${1:font-size}]\"\n      }\n    },\n    {\n      \"name\": \"thefontscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thefontscale[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontsize{${1:size-spec}}\"\n      }\n    },\n    {\n      \"name\": \"noloadmath\"\n    },\n    {\n      \"name\": \"loadmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadmath{${1:[${2:font-file}]}}\"\n      }\n    },\n    {\n      \"name\": \"script\"\n    },\n    {\n      \"name\": \"frak\"\n    },\n    {\n      \"name\": \"bbchar\"\n    },\n    {\n      \"name\": \"misans\"\n    },\n    {\n      \"name\": \"mbisans\"\n    },\n    {\n      \"name\": \"normalmath\"\n    },\n    {\n      \"name\": \"boldmath\"\n    },\n    {\n      \"name\": \"mathbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bbig\"\n    },\n    {\n      \"name\": \"bbigl\"\n    },\n    {\n      \"name\": \"bbigm\"\n    },\n    {\n      \"name\": \"bbigr\"\n    },\n    {\n      \"name\": \"setmathstyle\"\n    },\n    {\n      \"name\": \"usemathstyle\"\n    },\n    {\n      \"name\": \"cramped\"\n    },\n    {\n      \"name\": \"mathstyles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathstyles{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"currstyle\"\n    },\n    {\n      \"name\": \"dobystyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dobystyle{${1:display}}{${2:text%plain}}{${3:script}}{${4:scriptscript}}\"\n      }\n    },\n    {\n      \"name\": \"stylenum\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"vardelta\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \">\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"eqlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqlines{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"eqstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqstyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addUmathfont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"addUmathfont{${1:cmd}}{${2:[${7:normal-font}]}}{${3:features}}{${4:[${8:bold-font}]}}{${5:features}}{${6:factor}}\"\n      }\n    },\n    {\n      \"name\": \"nl\"\n    },\n    {\n      \"name\": \"nonum\"\n    },\n    {\n      \"name\": \"notoc\"\n    },\n    {\n      \"name\": \"eqmark\"\n    },\n    {\n      \"name\": \"eqmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eqmark[${1:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"cskip\"\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"label[${1:label%labeldef}]\"\n      }\n    },\n    {\n      \"name\": \"ref\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ref[${1:label%ref}]\"\n      }\n    },\n    {\n      \"name\": \"ref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ref[${2:label%ref}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgref\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgref[${1:label%ref}]\"\n      }\n    },\n    {\n      \"name\": \"pgref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgref[${2:label%ref}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showlabels\"\n    },\n    {\n      \"name\": \"dest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dest[${1:type:label}]\"\n      }\n    },\n    {\n      \"name\": \"ilink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ilink[${2:type:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"ulink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ulink[${2:URL}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outlines{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"insertoutline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertoutline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thisoutline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisoutline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"begitems\"\n    },\n    {\n      \"name\": \"enditems\"\n    },\n    {\n      \"name\": \"iindent\"\n    },\n    {\n      \"name\": \"ilevel\"\n    },\n    {\n      \"name\": \"novspaces\"\n    },\n    {\n      \"name\": \"begblock\"\n    },\n    {\n      \"name\": \"endblock\"\n    },\n    {\n      \"name\": \"table\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"table{${1:declaration}}{${2:data%text}}\"\n      }\n    },\n    {\n      \"name\": \"fL\"\n    },\n    {\n      \"name\": \"fR\"\n    },\n    {\n      \"name\": \"fC\"\n    },\n    {\n      \"name\": \"fS\"\n    },\n    {\n      \"name\": \"fX\"\n    },\n    {\n      \"name\": \"crl\"\n    },\n    {\n      \"name\": \"crll\"\n    },\n    {\n      \"name\": \"crli\"\n    },\n    {\n      \"name\": \"crlli\"\n    },\n    {\n      \"name\": \"crlp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crlp{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"tablinespace\"\n    },\n    {\n      \"name\": \"vvkern\"\n    },\n    {\n      \"name\": \"hhkern\"\n    },\n    {\n      \"name\": \"tabskipl\"\n    },\n    {\n      \"name\": \"tabskipr\"\n    },\n    {\n      \"name\": \"frame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frame{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rulewidth\"\n    },\n    {\n      \"name\": \"begtt\"\n    },\n    {\n      \"name\": \"endtt\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"ttline\"\n    },\n    {\n      \"name\": \"ttindent\"\n    },\n    {\n      \"name\": \"hisyntax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hisyntax{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"maketoc\"\n    },\n    {\n      \"name\": \"regmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"regmacro{${1:case-toc}}{${2:case-mark}}{${3:case-outline}}\"\n      }\n    },\n    {\n      \"name\": \"endmulti\"\n    },\n    {\n      \"name\": \"cite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cite[${1:bibid}]\"\n      }\n    },\n    {\n      \"name\": \"shortcitations\"\n    },\n    {\n      \"name\": \"sortcitations\"\n    },\n    {\n      \"name\": \"nonumcitations\"\n    },\n    {\n      \"name\": \"rcite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rcite[${1:bibid}]\"\n      }\n    },\n    {\n      \"name\": \"ecite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ecite[${2:bibid}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bib\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bib[${1:citekey}]\"\n      }\n    },\n    {\n      \"name\": \"nocite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nocite[${1:bibid}]\"\n      }\n    },\n    {\n      \"name\": \"bibpart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibpart{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"readbibs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readbibs{${1:bib-bases}}\"\n      }\n    },\n    {\n      \"name\": \"Blue\"\n    },\n    {\n      \"name\": \"Red\"\n    },\n    {\n      \"name\": \"Brown\"\n    },\n    {\n      \"name\": \"Green\"\n    },\n    {\n      \"name\": \"Yellow\"\n    },\n    {\n      \"name\": \"Cyan\"\n    },\n    {\n      \"name\": \"Magenta\"\n    },\n    {\n      \"name\": \"White\"\n    },\n    {\n      \"name\": \"Grey\"\n    },\n    {\n      \"name\": \"LightGrey\"\n    },\n    {\n      \"name\": \"Black\"\n    },\n    {\n      \"name\": \"setcmykcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcmykcolor{${1:c m y k}}\"\n      }\n    },\n    {\n      \"name\": \"setrgbcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrgbcolor{${1:r g b}}\"\n      }\n    },\n    {\n      \"name\": \"setgreycolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgreycolor{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"morecolors\"\n    },\n    {\n      \"name\": \"onlyrgb\"\n    },\n    {\n      \"name\": \"onlycmyk\"\n    },\n    {\n      \"name\": \"inspic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inspic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"picwidth\"\n    },\n    {\n      \"name\": \"picheight\"\n    },\n    {\n      \"name\": \"inkinspic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inkinspic{${1:filename.pdf%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfscale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfscale{${1:horizontal-factor}}{${2:vertical-factor}}\"\n      }\n    },\n    {\n      \"name\": \"pdfrotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfrotate{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"transformbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"transformbox{${1:transformation}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rotbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotbox{${1:degrees}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"inoval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inoval{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inoval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inoval[${2:settings}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"roundness\"\n    },\n    {\n      \"name\": \"fcolor\"\n    },\n    {\n      \"name\": \"lcolor\"\n    },\n    {\n      \"name\": \"lwidth\"\n    },\n    {\n      \"name\": \"shadow\"\n    },\n    {\n      \"name\": \"overlapmargins\"\n    },\n    {\n      \"name\": \"incircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incircle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"incircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"incircle[${2:settings}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ratio\"\n    },\n    {\n      \"name\": \"ignoremargins\"\n    },\n    {\n      \"name\": \"nospec\"\n    },\n    {\n      \"name\": \"enlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enuslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"engblang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bglang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dalang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fislang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deolang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gswlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elmlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elplang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grclang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hulang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"islang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lalang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laclang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lallang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lvlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mklang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rolang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srclang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sklang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uklang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cylang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aflang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hylang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eulang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bnlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nblang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coplang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"culang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eolang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ethilang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"furlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kalang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gulang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hilang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ialang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kmrlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mllang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nnlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oclang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pilang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"palang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmslang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"salang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"talang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trlang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tklang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hsblang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"langlist\"\n    },\n    {\n      \"name\": \"uselanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uselanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"enquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dequotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altquotes\"\n    },\n    {\n      \"name\": \"report\"\n    },\n    {\n      \"name\": \"letter\"\n    },\n    {\n      \"name\": \"slides\"\n    },\n    {\n      \"name\": \"address\"\n    },\n    {\n      \"name\": \"load\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"load[${1:filename-list%file}]\"\n      }\n    },\n    {\n      \"name\": \"lorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lorem[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"lorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lorem[${1:from-to}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"lipsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsum[${1:from-to}]\"\n      }\n    },\n    {\n      \"name\": \"ConTeXt\"\n    },\n    {\n      \"name\": \"OpTeX\"\n    },\n    {\n      \"name\": \"LuaTeX\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"totalpages\"\n    },\n    {\n      \"name\": \"useOpTeX\"\n    },\n    {\n      \"name\": \"afterfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterfi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bp{${1:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"bp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bp[${2:digits}]{${1:dimen expression}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"eoldef\"\n    },\n    {\n      \"name\": \"eqbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqbox[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"expr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expr{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"expr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"expr[${2:digits}]{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ignoreit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ignoreit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ignoresecond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ignoresecond{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"isempty\"\n    },\n    {\n      \"name\": \"istoksempty\"\n    },\n    {\n      \"name\": \"isequal\"\n    },\n    {\n      \"name\": \"iskv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iskv{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ismacro\"\n    },\n    {\n      \"name\": \"isdefined\"\n    },\n    {\n      \"name\": \"isinlist\"\n    },\n    {\n      \"name\": \"isfile\"\n    },\n    {\n      \"name\": \"isfont\"\n    },\n    {\n      \"name\": \"kv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kv{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"kvx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kvx{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"nnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"nokvx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nokvx{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"nospacefuturelet\"\n    },\n    {\n      \"name\": \"opinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"opwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opwarning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"posx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"posx[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"posy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"posy[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"posg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"posg[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"private\"\n    },\n    {\n      \"name\": \"public\"\n    },\n    {\n      \"name\": \"readkv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readkv{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"setctable\"\n    },\n    {\n      \"name\": \"restorectable\"\n    },\n    {\n      \"name\": \"setpos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setpos[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"slet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slet{${1:stringA%definition}}{${2:stringB%definition}}\"\n      }\n    },\n    {\n      \"name\": \"trycs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trycs{${1:string%definition}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"trykv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trykv{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"useit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"usesecond\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usesecond{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"wterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wterm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldaccents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secant\"\n    },\n    {\n      \"name\": \"<\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activequotes\"\n    },\n    {\n      \"name\": \"addextgstate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addextgstate{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"addpageresource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ADDR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backgroundpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundpic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"bibmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biboptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibtexhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldify\"\n    },\n    {\n      \"name\": \"boxlines\"\n    },\n    {\n      \"name\": \"bracedparam\"\n    },\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"catalogexclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalogmathsample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalognextfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalogonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalogsample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnvinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cnvinfo{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"colnum\"\n    },\n    {\n      \"name\": \"colsep\"\n    },\n    {\n      \"name\": \"CS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultoptsize\"\n    },\n    {\n      \"name\": \"doloadmath\"\n    },\n    {\n      \"name\": \"dunhill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ED\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EDN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlayers\"\n    },\n    {\n      \"name\": \"eqboxsize\"\n    },\n    {\n      \"name\": \"famvardef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"famvardef{${1:cmd}}{${2:⟨family selector⟩ ⟨font modifiers⟩ ⟨variant selector⟩}}\"\n      }\n    },\n    {\n      \"name\": \"fnotenum\"\n    },\n    {\n      \"name\": \"fontsel\"\n    },\n    {\n      \"name\": \"fontspreload\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gpageno\"\n    },\n    {\n      \"name\": \"hicolor\"\n    },\n    {\n      \"name\": \"ignorept\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iindex{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"ilistskipamount\"\n    },\n    {\n      \"name\": \"initunifonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlinkcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemnum\"\n    },\n    {\n      \"name\": \"itemskipamount\"\n    },\n    {\n      \"name\": \"layernum\"\n    },\n    {\n      \"name\": \"lipsumtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lipsumtext[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"localcolor\"\n    },\n    {\n      \"name\": \"mathsboff\"\n    },\n    {\n      \"name\": \"mathsbon\"\n    },\n    {\n      \"name\": \"mfontsrule\"\n    },\n    {\n      \"name\": \"mnoteindent\"\n    },\n    {\n      \"name\": \"mnoteskip\"\n    },\n    {\n      \"name\": \"moddef\"\n    },\n    {\n      \"name\": \"nbb\"\n    },\n    {\n      \"name\": \"nbold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbpar\"\n    },\n    {\n      \"name\": \"newcurrfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcurrfontsize{${1:size spec}}\"\n      }\n    },\n    {\n      \"name\": \"newmarks\"\n    },\n    {\n      \"name\": \"NO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nobibwarning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nobibwarning[${1:list of bib-labels}]\"\n      }\n    },\n    {\n      \"name\": \"nolanginput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nolanginput{${1:lang-tag}}\"\n      }\n    },\n    {\n      \"name\": \"nolocalcolor\"\n    },\n    {\n      \"name\": \"normalcatcodes\"\n    },\n    {\n      \"name\": \"olistskipamount\"\n    },\n    {\n      \"name\": \"openref\"\n    },\n    {\n      \"name\": \"OPmac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opt\"\n    },\n    {\n      \"name\": \"optexcatcodes\"\n    },\n    {\n      \"name\": \"optexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outlinkcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageresources\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcent\"\n    },\n    {\n      \"name\": \"pgbottomskip\"\n    },\n    {\n      \"name\": \"plaintexcatcodes\"\n    },\n    {\n      \"name\": \"plaintexsetting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptmunit\"\n    },\n    {\n      \"name\": \"PUBL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotes\"\n    },\n    {\n      \"name\": \"quotset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refdecl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refdecl{${1:definitions}}\"\n      }\n    },\n    {\n      \"name\": \"removespaces\"\n    },\n    {\n      \"name\": \"replfromto\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"replfromto{${1:from}}{${2:to}}{${3:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"replthis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"replthis{${1:pattern}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"resetmod\"\n    },\n    {\n      \"name\": \"resizethefont\"\n    },\n    {\n      \"name\": \"rgbcmykmap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rgbcmykmap{${1:r g b}}{${2:c m y k}}\"\n      }\n    },\n    {\n      \"name\": \"sans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scantoeol\"\n    },\n    {\n      \"name\": \"setff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setff{${1:font-feature}}\"\n      }\n    },\n    {\n      \"name\": \"setletterspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setletterspace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsizes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setmathsizes[${1:text-size/script-size/scriptscript-size}]\"\n      }\n    },\n    {\n      \"name\": \"setwordspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwordspace{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"setwsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadowlevels\"\n    },\n    {\n      \"name\": \"shordcitations\"\n    },\n    {\n      \"name\": \"skiptoeol\"\n    },\n    {\n      \"name\": \"slant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slideopen\"\n    },\n    {\n      \"name\": \"slideshow\"\n    },\n    {\n      \"name\": \"tabspaces\"\n    },\n    {\n      \"name\": \"tenbi\"\n    },\n    {\n      \"name\": \"thetransparency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titskip\"\n    },\n    {\n      \"name\": \"tmpdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tmpnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocrefnum\"\n    },\n    {\n      \"name\": \"Transparent\"\n    },\n    {\n      \"name\": \"tsize\"\n    },\n    {\n      \"name\": \"ttcond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttlight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttprop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttshift\"\n    },\n    {\n      \"name\": \"upital\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useK\"\n    },\n    {\n      \"name\": \"visiblesp\"\n    },\n    {\n      \"name\": \"voidbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VOL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wideformat\"\n    },\n    {\n      \"name\": \"xfontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xrefversion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xrefversion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"YEAR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbigp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bigp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biggp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Biggp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartdots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"N\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Z\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Q\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"R\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"C\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sgn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Span\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Null\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Res\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cotg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccotg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"tfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"eqsystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqsystem{${1:equations}}\"\n      }\n    },\n    {\n      \"name\": \"eqsystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqsystem[${2:settings}]{${1:equations}}\"\n      }\n    },\n    {\n      \"name\": \"eqskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqfil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"scriptspaces{${1:s-rel}}{${2:s-bin}}{${3:ss-rel}}{${4:ss-bin}}\"\n      }\n    },\n    {\n      \"name\": \"interval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmsbsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bfserif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flexipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialsymbolvars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrmpartial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rmchars{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"vargreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vargreek{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"enablefic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalitalcorr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvariables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmoremath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathclap{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"mathrlap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrlap{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"mathllap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathllap{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"mathset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\mathset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"enablemte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disablemte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpdfabsdim\"\n    },\n    {\n      \"name\": \"ifpdfabsnum\"\n    },\n    {\n      \"name\": \"ifpdfprimitive\"\n    },\n    {\n      \"name\": \"pdfadjustspacing\"\n    },\n    {\n      \"name\": \"pdfannot\"\n    },\n    {\n      \"name\": \"pdfcatalog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcatalog{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolorstack\"\n    },\n    {\n      \"name\": \"pdfcolorstackinit\"\n    },\n    {\n      \"name\": \"pdfcompresslevel\"\n    },\n    {\n      \"name\": \"pdfcopyfont\"\n    },\n    {\n      \"name\": \"pdfcreationdate\"\n    },\n    {\n      \"name\": \"pdfdecimaldigits\"\n    },\n    {\n      \"name\": \"pdfdest\"\n    },\n    {\n      \"name\": \"pdfdestmargin\"\n    },\n    {\n      \"name\": \"pdfdraftmode\"\n    },\n    {\n      \"name\": \"pdfendlink\"\n    },\n    {\n      \"name\": \"pdfendthread\"\n    },\n    {\n      \"name\": \"pdffontattr\"\n    },\n    {\n      \"name\": \"pdffontexpand\"\n    },\n    {\n      \"name\": \"pdffontname\"\n    },\n    {\n      \"name\": \"pdffontobjnum\"\n    },\n    {\n      \"name\": \"pdffontsize\"\n    },\n    {\n      \"name\": \"pdfgamma\"\n    },\n    {\n      \"name\": \"pdfgentounicode\"\n    },\n    {\n      \"name\": \"pdfglyphtounicode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfglyphtounicode{${1:glyphname}}{${2:codepoint}}\"\n      }\n    },\n    {\n      \"name\": \"pdfhorigin\"\n    },\n    {\n      \"name\": \"pdfimageaddfilename\"\n    },\n    {\n      \"name\": \"pdfimageapplygamma\"\n    },\n    {\n      \"name\": \"pdfimagegamma\"\n    },\n    {\n      \"name\": \"pdfimagehicolor\"\n    },\n    {\n      \"name\": \"pdfimageresolution\"\n    },\n    {\n      \"name\": \"pdfincludechars\"\n    },\n    {\n      \"name\": \"pdfinclusioncopyfonts\"\n    },\n    {\n      \"name\": \"pdfinclusionerrorlevel\"\n    },\n    {\n      \"name\": \"pdfinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfinfo{${1:info}}\"\n      }\n    },\n    {\n      \"name\": \"pdfinsertht\"\n    },\n    {\n      \"name\": \"pdflastannot\"\n    },\n    {\n      \"name\": \"pdflastlinedepth\"\n    },\n    {\n      \"name\": \"pdflastlink\"\n    },\n    {\n      \"name\": \"pdflastobj\"\n    },\n    {\n      \"name\": \"pdflastxform\"\n    },\n    {\n      \"name\": \"pdflastximage\"\n    },\n    {\n      \"name\": \"pdflastximagepages\"\n    },\n    {\n      \"name\": \"pdflastxpos\"\n    },\n    {\n      \"name\": \"pdflastypos\"\n    },\n    {\n      \"name\": \"pdflinkmargin\"\n    },\n    {\n      \"name\": \"pdfliteral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfliteral{${1:literal}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapline{${1:map spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfminorversion\"\n    },\n    {\n      \"name\": \"pdfmovechars\"\n    },\n    {\n      \"name\": \"pdfnames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfnames{${1:action spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfnoligatures\"\n    },\n    {\n      \"name\": \"pdfnormaldeviate\"\n    },\n    {\n      \"name\": \"pdfobj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfobj{${1:object type spec}}\"\n      }\n    },\n    {\n      \"name\": \"pdfobjcompresslevel\"\n    },\n    {\n      \"name\": \"pdfoutline\"\n    },\n    {\n      \"name\": \"pdfoutput\"\n    },\n    {\n      \"name\": \"pdfpageattr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagebox\"\n    },\n    {\n      \"name\": \"pdfpageheight\"\n    },\n    {\n      \"name\": \"pdfpageref\"\n    },\n    {\n      \"name\": \"pdfpageresources\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpageresources{${1:resources}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagesattr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpagesattr{${1:attributes}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagewidth\"\n    },\n    {\n      \"name\": \"pdfpkmode\"\n    },\n    {\n      \"name\": \"pdfpkresolution\"\n    },\n    {\n      \"name\": \"pdfprimitive\"\n    },\n    {\n      \"name\": \"pdfprotrudechars\"\n    },\n    {\n      \"name\": \"pdfpxdimen\"\n    },\n    {\n      \"name\": \"pdfrandomseed\"\n    },\n    {\n      \"name\": \"pdfrefobj\"\n    },\n    {\n      \"name\": \"pdfrefxform\"\n    },\n    {\n      \"name\": \"pdfrefximage\"\n    },\n    {\n      \"name\": \"pdfrestore\"\n    },\n    {\n      \"name\": \"pdfretval\"\n    },\n    {\n      \"name\": \"pdfsave\"\n    },\n    {\n      \"name\": \"pdfsavepos\"\n    },\n    {\n      \"name\": \"pdfsetmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfsetmatrix{${1:a b c d}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsetrandomseed\"\n    },\n    {\n      \"name\": \"pdfstartlink\"\n    },\n    {\n      \"name\": \"pdfstartthread\"\n    },\n    {\n      \"name\": \"pdftexrevision\"\n    },\n    {\n      \"name\": \"pdftexversion\"\n    },\n    {\n      \"name\": \"pdfthread\"\n    },\n    {\n      \"name\": \"pdfthreadmargin\"\n    },\n    {\n      \"name\": \"pdftrailer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdftrailer{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdfuniformdeviate\"\n    },\n    {\n      \"name\": \"pdfuniqueresname\"\n    },\n    {\n      \"name\": \"pdfvorigin\"\n    },\n    {\n      \"name\": \"pdfxform\"\n    },\n    {\n      \"name\": \"pdfxformattr\"\n    },\n    {\n      \"name\": \"pdfxformname\"\n    },\n    {\n      \"name\": \"pdfxformresources\"\n    },\n    {\n      \"name\": \"pdfximage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfximage{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"ast\",\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"backdprime\",\n      \"detail\": \"‶\",\n      \"doc\": \"Double reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"backtrprime\",\n      \"detail\": \"‷\",\n      \"doc\": \"Triple reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blanksymbol\"\n    },\n    {\n      \"name\": \"bullet\"\n    },\n    {\n      \"name\": \"cdotp\",\n      \"detail\": \"·\",\n      \"doc\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"divslash\",\n      \"detail\": \"∕\",\n      \"doc\": \"Division slash\"\n    },\n    {\n      \"name\": \"downarrow\",\n      \"detail\": \"↓\",\n      \"doc\": \"Downward arrow\"\n    },\n    {\n      \"name\": \"dprime\",\n      \"detail\": \"″ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double prime or second, not superscripted\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"equal\",\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"fracslash\",\n      \"detail\": \"⁄\",\n      \"doc\": \"/, fraction slash\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"greater\",\n      \"detail\": \">\",\n      \"doc\": \"Greater-than sign r:\"\n    },\n    {\n      \"name\": \"ldotp\"\n    },\n    {\n      \"name\": \"less\",\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"lnot\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mathampersand\"\n    },\n    {\n      \"name\": \"mathatsign\"\n    },\n    {\n      \"name\": \"mathcolon\",\n      \"detail\": \":\",\n      \"doc\": \"\\\\colon (literal), colon (not ratio)\"\n    },\n    {\n      \"name\": \"mathcomma\"\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"matheth\",\n      \"detail\": \"ð (\\\"amssymb arevmath\\\" command)\",\n      \"doc\": \"Eth\"\n    },\n    {\n      \"name\": \"mathexclam\"\n    },\n    {\n      \"name\": \"mathhyphen\"\n    },\n    {\n      \"name\": \"mathoctothorpe\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathpercent\"\n    },\n    {\n      \"name\": \"mathperiod\"\n    },\n    {\n      \"name\": \"mathplus\"\n    },\n    {\n      \"name\": \"mathquestion\"\n    },\n    {\n      \"name\": \"mathratio\",\n      \"detail\": \"∶\",\n      \"doc\": \"X \\\\colon, ratio\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsemicolon\"\n    },\n    {\n      \"name\": \"mathslash\",\n      \"detail\": \"/\",\n      \"doc\": \"\\\\slash, solidus\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"mathvisiblespace\"\n    },\n    {\n      \"name\": \"mathyen\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"qprime\",\n      \"detail\": \"⁗ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Quadruple prime, not superscripted\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"surd\"\n    },\n    {\n      \"name\": \"to\"\n    },\n    {\n      \"name\": \"trprime\",\n      \"detail\": \"‴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Triple prime (not superscripted)\"\n    },\n    {\n      \"name\": \"unicodeadots\"\n    },\n    {\n      \"name\": \"unicodecdots\",\n      \"detail\": \"⋯\",\n      \"doc\": \"Three dots, centered\"\n    },\n    {\n      \"name\": \"unicodeddots\"\n    },\n    {\n      \"name\": \"unicodeellipsis\",\n      \"detail\": \"…\",\n      \"doc\": \"Ellipsis (horizontal)\"\n    },\n    {\n      \"name\": \"unicodevdots\"\n    },\n    {\n      \"name\": \"uparrow\",\n      \"detail\": \"↑\",\n      \"doc\": \"Upward arrow\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upomicron\",\n      \"detail\": \"ο\",\n      \"doc\": \"Small omicron, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"circledplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledtimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circleddot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"mathring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathring{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"rbrack\",\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"lbrace\",\n      \"detail\": \"{\",\n      \"doc\": \"\\\\lbrace, left curly bracket\"\n    },\n    {\n      \"name\": \"vert\",\n      \"detail\": \"|\",\n      \"doc\": \"\\\\vert, vertical bar\"\n    },\n    {\n      \"name\": \"rbrace\",\n      \"detail\": \"}\",\n      \"doc\": \"\\\\rbrace, right curly bracket\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:a}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"wideoverbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideoverbar{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"widebreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebreve{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"ovhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovhook{${1:a}}\"\n      },\n      \"detail\": \" ̉\",\n      \"doc\": \"Combining hook above\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocirc{${1:a}}\"\n      },\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"wideutilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideutilde{${1:a}}\"\n      },\n      \"detail\": \" ̰ (\\\"undertilde\\\" command)\",\n      \"doc\": \"Under tilde accent (multiple characters and non-spacing)\"\n    },\n    {\n      \"name\": \"mathunderbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathunderbar{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"notaccent\"\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"mupAlpha\"\n    },\n    {\n      \"name\": \"mupBeta\"\n    },\n    {\n      \"name\": \"mupGamma\"\n    },\n    {\n      \"name\": \"mupDelta\"\n    },\n    {\n      \"name\": \"mupEpsilon\"\n    },\n    {\n      \"name\": \"mupZeta\"\n    },\n    {\n      \"name\": \"mupEta\"\n    },\n    {\n      \"name\": \"mupTheta\"\n    },\n    {\n      \"name\": \"mupIota\"\n    },\n    {\n      \"name\": \"mupKappa\"\n    },\n    {\n      \"name\": \"mupLambda\"\n    },\n    {\n      \"name\": \"mupMu\"\n    },\n    {\n      \"name\": \"mupNu\"\n    },\n    {\n      \"name\": \"mupXi\"\n    },\n    {\n      \"name\": \"mupOmicron\"\n    },\n    {\n      \"name\": \"mupPi\"\n    },\n    {\n      \"name\": \"mupRho\"\n    },\n    {\n      \"name\": \"mupSigma\"\n    },\n    {\n      \"name\": \"mupTau\"\n    },\n    {\n      \"name\": \"mupUpsilon\"\n    },\n    {\n      \"name\": \"mupPhi\"\n    },\n    {\n      \"name\": \"mupChi\"\n    },\n    {\n      \"name\": \"mupPsi\"\n    },\n    {\n      \"name\": \"mupOmega\"\n    },\n    {\n      \"name\": \"mupalpha\"\n    },\n    {\n      \"name\": \"mupbeta\"\n    },\n    {\n      \"name\": \"mupgamma\"\n    },\n    {\n      \"name\": \"mupdelta\"\n    },\n    {\n      \"name\": \"mupvarepsilon\"\n    },\n    {\n      \"name\": \"mupzeta\"\n    },\n    {\n      \"name\": \"mupeta\"\n    },\n    {\n      \"name\": \"muptheta\"\n    },\n    {\n      \"name\": \"mupiota\"\n    },\n    {\n      \"name\": \"mupkappa\"\n    },\n    {\n      \"name\": \"muplambda\"\n    },\n    {\n      \"name\": \"mupmu\"\n    },\n    {\n      \"name\": \"mupnu\"\n    },\n    {\n      \"name\": \"mupxi\"\n    },\n    {\n      \"name\": \"mupomicron\"\n    },\n    {\n      \"name\": \"muppi\"\n    },\n    {\n      \"name\": \"muprho\"\n    },\n    {\n      \"name\": \"mupvarsigma\"\n    },\n    {\n      \"name\": \"mupsigma\"\n    },\n    {\n      \"name\": \"muptau\"\n    },\n    {\n      \"name\": \"mupupsilon\"\n    },\n    {\n      \"name\": \"mupvarphi\"\n    },\n    {\n      \"name\": \"mupchi\"\n    },\n    {\n      \"name\": \"muppsi\"\n    },\n    {\n      \"name\": \"mupomega\"\n    },\n    {\n      \"name\": \"mupvartheta\"\n    },\n    {\n      \"name\": \"mupphi\"\n    },\n    {\n      \"name\": \"mupvarpi\"\n    },\n    {\n      \"name\": \"mupvarkappa\"\n    },\n    {\n      \"name\": \"mupvarrho\"\n    },\n    {\n      \"name\": \"mupvarTheta\"\n    },\n    {\n      \"name\": \"mupepsilon\"\n    },\n    {\n      \"name\": \"horizbar\",\n      \"detail\": \"―\",\n      \"doc\": \"Horizontal bar\"\n    },\n    {\n      \"name\": \"Vert\",\n      \"detail\": \"‖\",\n      \"doc\": \"\\\\vert, double vertical bar\"\n    },\n    {\n      \"name\": \"twolowline\",\n      \"detail\": \"‗\",\n      \"doc\": \"Double low line (spacing)\"\n    },\n    {\n      \"name\": \"leftharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftharpoonaccent{${1:a}}\"\n      },\n      \"detail\": \"x⃐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining left harpoon above\"\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"rightharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightharpoonaccent{${1:a}}\"\n      },\n      \"detail\": \"x⃑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining right harpoon above\"\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"vertoverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertoverlay{${1:a}}\"\n      },\n      \"detail\": \"x⃒\",\n      \"doc\": \"Combining long vertical line overlay\"\n    },\n    {\n      \"name\": \"overleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftarrow{${1:a}}\"\n      },\n      \"detail\": \"x⃖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\overleftarrow, combining left arrow above\"\n    },\n    {\n      \"name\": \"overrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarrow{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"enclosecircle\",\n      \"detail\": \"x⃝\",\n      \"doc\": \"Combining enclosing circle\"\n    },\n    {\n      \"name\": \"enclosesquare\",\n      \"detail\": \"x⃞\",\n      \"doc\": \"Combining enclosing square\"\n    },\n    {\n      \"name\": \"enclosediamond\",\n      \"detail\": \"x⃟\",\n      \"doc\": \"Combining enclosing diamond\"\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:a}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"enclosetriangle\",\n      \"detail\": \"x⃤\",\n      \"doc\": \"Combining enclosing upward pointing triangle\"\n    },\n    {\n      \"name\": \"threeunderdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threeunderdot{${1:a}}\"\n      },\n      \"detail\": \"x⃨\",\n      \"doc\": \"Combining triple underdot\"\n    },\n    {\n      \"name\": \"widebridgeabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebridgeabove{${1:a}}\"\n      },\n      \"detail\": \"x⃩\",\n      \"doc\": \"Combining wide bridge above\"\n    },\n    {\n      \"name\": \"underrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoondown{${1:a}}\"\n      },\n      \"detail\": \"x⃬\",\n      \"doc\": \"Combining rightwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoondown{${1:a}}\"\n      },\n      \"detail\": \"x⃭\",\n      \"doc\": \"Combining leftwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:a}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:a}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"asteraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asteraccent{${1:a}}\"\n      },\n      \"detail\": \"x⃰\",\n      \"doc\": \"Combining asterisk above\"\n    },\n    {\n      \"name\": \"BbbC\",\n      \"detail\": \"ℂ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{c} (dsfont), open face c\"\n    },\n    {\n      \"name\": \"Eulerconst\",\n      \"detail\": \"ℇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Euler constant\"\n    },\n    {\n      \"name\": \"mscrH\",\n      \"detail\": \"ℋ\",\n      \"doc\": \"Hamiltonian (script capital h)\"\n    },\n    {\n      \"name\": \"mfrakH\",\n      \"detail\": \"ℌ (\\\"eufrak\\\" command)\",\n      \"doc\": \"/frak h, black-letter capital h\"\n    },\n    {\n      \"name\": \"BbbH\",\n      \"detail\": \"ℍ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{h} (dsfont), open face capital h\"\n    },\n    {\n      \"name\": \"Planckconst\",\n      \"detail\": \"ℎ\",\n      \"doc\": \"h, planck constant\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"mscrI\",\n      \"detail\": \"ℐ\",\n      \"doc\": \"/scr i, script capital i\"\n    },\n    {\n      \"name\": \"Im\",\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"mscrL\",\n      \"detail\": \"ℒ\",\n      \"doc\": \"Lagrangian (script capital l)\"\n    },\n    {\n      \"name\": \"ell\",\n      \"detail\": \"ℓ\",\n      \"doc\": \"Cursive small l\"\n    },\n    {\n      \"name\": \"BbbN\",\n      \"detail\": \"ℕ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{n} (dsfont), open face n\"\n    },\n    {\n      \"name\": \"wp\",\n      \"detail\": \"℘ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Weierstrass p\"\n    },\n    {\n      \"name\": \"BbbP\",\n      \"detail\": \"ℙ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{p} (dsfont), open face p\"\n    },\n    {\n      \"name\": \"BbbQ\",\n      \"detail\": \"ℚ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{q} (dsfont), open face q\"\n    },\n    {\n      \"name\": \"mscrR\",\n      \"detail\": \"ℛ\",\n      \"doc\": \"/scr r, script capital r\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"BbbR\",\n      \"detail\": \"ℝ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{r} (dsfont), open face r\"\n    },\n    {\n      \"name\": \"BbbZ\",\n      \"detail\": \"ℤ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{z} (dsfont), open face z\"\n    },\n    {\n      \"name\": \"mfrakZ\",\n      \"detail\": \"ℨ (\\\"eufrak\\\" command)\",\n      \"doc\": \"/frak z, black-letter capital z\"\n    },\n    {\n      \"name\": \"mscrB\",\n      \"detail\": \"ℬ\",\n      \"doc\": \"Bernoulli function (script capital b)\"\n    },\n    {\n      \"name\": \"mfrakC\",\n      \"detail\": \"ℭ (\\\"eufrak\\\" command)\",\n      \"doc\": \"Black-letter capital c\"\n    },\n    {\n      \"name\": \"mscrE\",\n      \"detail\": \"ℰ\",\n      \"doc\": \"/scr e, script capital e\"\n    },\n    {\n      \"name\": \"mscrF\",\n      \"detail\": \"ℱ\",\n      \"doc\": \"/scr f, script capital f\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"mscrM\",\n      \"detail\": \"ℳ\",\n      \"doc\": \"Physics m-matrix (script capital m)\"\n    },\n    {\n      \"name\": \"aleph\",\n      \"detail\": \"ℵ\",\n      \"doc\": \"Aleph, hebrew\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"Bbbpi\",\n      \"detail\": \"ℼ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"\\\\doublepi (wrisym), double-struck small pi\"\n    },\n    {\n      \"name\": \"Bbbgamma\",\n      \"detail\": \"ℽ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"\\\\eulergamma (wrisym), double-struck small gamma\"\n    },\n    {\n      \"name\": \"BbbGamma\",\n      \"detail\": \"ℾ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck capital gamma\"\n    },\n    {\n      \"name\": \"BbbPi\",\n      \"detail\": \"ℿ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck capital pi\"\n    },\n    {\n      \"name\": \"Bbbsum\",\n      \"detail\": \"⅀ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck n-ary summation\"\n    },\n    {\n      \"name\": \"mitBbbD\",\n      \"detail\": \"ⅅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\dd (wrisym), double-struck italic capital d\"\n    },\n    {\n      \"name\": \"mitBbbd\",\n      \"detail\": \"ⅆ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\dd (wrisym), double-struck italic small d\"\n    },\n    {\n      \"name\": \"mitBbbe\",\n      \"detail\": \"ⅇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ee (wrisym), double-struck italic small e\"\n    },\n    {\n      \"name\": \"mitBbbi\",\n      \"detail\": \"ⅈ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ii (wrisym), double-struck italic small i\"\n    },\n    {\n      \"name\": \"mitBbbj\",\n      \"detail\": \"ⅉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\jj (wrisym), double-struck italic small j\"\n    },\n    {\n      \"name\": \"leftrightarrow\",\n      \"detail\": \"↔\",\n      \"doc\": \"\\\\rel (oz), left right arrow, relation\"\n    },\n    {\n      \"name\": \"updownarrow\",\n      \"detail\": \"↕\",\n      \"doc\": \"Up and down arrow\"\n    },\n    {\n      \"name\": \"nwarrow\",\n      \"detail\": \"↖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Nw pointing arrow\"\n    },\n    {\n      \"name\": \"nearrow\",\n      \"detail\": \"↗\",\n      \"doc\": \"Ne pointing arrow\"\n    },\n    {\n      \"name\": \"searrow\",\n      \"detail\": \"↘\",\n      \"doc\": \"Se pointing arrow\"\n    },\n    {\n      \"name\": \"swarrow\",\n      \"detail\": \"↙\",\n      \"doc\": \"Sw pointing arrow\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"mapsto\",\n      \"detail\": \"↦\",\n      \"doc\": \"Maps to, rightward, maplet\"\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"hookleftarrow\",\n      \"detail\": \"↩\",\n      \"doc\": \"Left arrow-hooked\"\n    },\n    {\n      \"name\": \"hookrightarrow\",\n      \"detail\": \"↪\",\n      \"doc\": \"Right arrow-hooked\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"Ldsh\",\n      \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left down angled arrow\"\n    },\n    {\n      \"name\": \"Rdsh\",\n      \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Right down angled arrow\"\n    },\n    {\n      \"name\": \"linefeed\",\n      \"detail\": \"↴\",\n      \"doc\": \"Rightwards arrow with corner downwards\"\n    },\n    {\n      \"name\": \"carriagereturn\",\n      \"detail\": \"↵\",\n      \"doc\": \"Downwards arrow with corner leftward = carriage return\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"acwopencirclearrow\",\n      \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n    },\n    {\n      \"name\": \"cwopencirclearrow\",\n      \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n    },\n    {\n      \"name\": \"leftharpoonup\",\n      \"detail\": \"↼\",\n      \"doc\": \"Left harpoon-up\"\n    },\n    {\n      \"name\": \"leftharpoondown\",\n      \"detail\": \"↽\",\n      \"doc\": \"Left harpoon-down\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"rightharpoonup\",\n      \"detail\": \"⇀\",\n      \"doc\": \"Right harpoon-up\"\n    },\n    {\n      \"name\": \"rightharpoondown\",\n      \"detail\": \"⇁\",\n      \"doc\": \"Right harpoon-down\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"Uparrow\",\n      \"detail\": \"⇑\",\n      \"doc\": \"Up double arrow\"\n    },\n    {\n      \"name\": \"Downarrow\",\n      \"detail\": \"⇓\",\n      \"doc\": \"Down double arrow\"\n    },\n    {\n      \"name\": \"Updownarrow\",\n      \"detail\": \"⇕\",\n      \"doc\": \"Up and down double arrow\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"rightthreearrows\",\n      \"detail\": \"⇶\",\n      \"doc\": \"Three rightwards arrows\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"increment\",\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"nabla\",\n      \"detail\": \"∇\",\n      \"doc\": \"Nabla, del, hamilton operator\"\n    },\n    {\n      \"name\": \"smallin\",\n      \"detail\": \"∊\",\n      \"doc\": \"Set membership (small set membership)\"\n    },\n    {\n      \"name\": \"ni\",\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"smallni\",\n      \"detail\": \"∍\",\n      \"doc\": \"R: contains (small contains as member)\"\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"coprod\",\n      \"detail\": \"∐\",\n      \"doc\": \"Coproduct operator\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"vysmwhtcircle\",\n      \"detail\": \"∘\",\n      \"doc\": \"Composite function (small circle)\"\n    },\n    {\n      \"name\": \"vysmblkcircle\",\n      \"detail\": \"∙\",\n      \"doc\": \"Bullet operator\"\n    },\n    {\n      \"name\": \"propto\",\n      \"detail\": \"∝\",\n      \"doc\": \"\\\\varpropto (amssymb), is proportional to\"\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"parallel\",\n      \"detail\": \"∥\",\n      \"doc\": \"Parallel\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"kernelcontraction\",\n      \"detail\": \"∻\",\n      \"doc\": \"Homothetic\"\n    },\n    {\n      \"name\": \"sim\",\n      \"detail\": \"∼\",\n      \"doc\": \"Similar to, tilde operator\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"invlazys\",\n      \"detail\": \"∾\",\n      \"doc\": \"Most positive, inverted lazy s\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"wr\",\n      \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Wreath product\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"simeq\",\n      \"detail\": \"≃\",\n      \"doc\": \"Similar, equals\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"sime\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"cong\",\n      \"detail\": \"≅\",\n      \"doc\": \"Congruent with\"\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"asymp\",\n      \"detail\": \"≍\",\n      \"doc\": \"Asymptotically equal to\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"doteq\",\n      \"detail\": \"≐\",\n      \"doc\": \"\\\\dotequal (wrisym), equals, single dot above\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"measeq\",\n      \"detail\": \"≞\",\n      \"doc\": \"Measured by (m over equals)\"\n    },\n    {\n      \"name\": \"questeq\",\n      \"detail\": \"≟\",\n      \"doc\": \"Equal with questionmark\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"Equiv\",\n      \"detail\": \"≣\",\n      \"doc\": \"Strict equivalence (4 lines)\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"prec\",\n      \"detail\": \"≺\",\n      \"doc\": \"Precedes\"\n    },\n    {\n      \"name\": \"succ\",\n      \"detail\": \"≻\",\n      \"doc\": \"Succeeds\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"subseteq\",\n      \"detail\": \"⊆\",\n      \"doc\": \"Subset, equals\"\n    },\n    {\n      \"name\": \"supseteq\",\n      \"detail\": \"⊇\",\n      \"doc\": \"Superset, equals\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"cupleftarrow\",\n      \"detail\": \"⊌\",\n      \"doc\": \"Multiset\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"uplus\",\n      \"detail\": \"⊎\",\n      \"doc\": \"\\\\buni (oz), plus sign in union\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsubseteq\",\n      \"detail\": \"⊑\",\n      \"doc\": \"Square subset, equals\"\n    },\n    {\n      \"name\": \"sqsupseteq\",\n      \"detail\": \"⊒\",\n      \"doc\": \"Square superset, equals\"\n    },\n    {\n      \"name\": \"sqcap\",\n      \"detail\": \"⊓\",\n      \"doc\": \"Square intersection\"\n    },\n    {\n      \"name\": \"sqcup\",\n      \"detail\": \"⊔\",\n      \"doc\": \"Square union\"\n    },\n    {\n      \"name\": \"oplus\",\n      \"detail\": \"⊕\",\n      \"doc\": \"Plus sign in circle\"\n    },\n    {\n      \"name\": \"ominus\",\n      \"detail\": \"⊖\",\n      \"doc\": \"Minus sign in circle\"\n    },\n    {\n      \"name\": \"otimes\",\n      \"detail\": \"⊗\",\n      \"doc\": \"Multiply sign in circle\"\n    },\n    {\n      \"name\": \"oslash\",\n      \"detail\": \"⊘\",\n      \"doc\": \"Solidus in circle\"\n    },\n    {\n      \"name\": \"odot\",\n      \"detail\": \"⊙\",\n      \"doc\": \"Middle dot in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"vdash\",\n      \"detail\": \"⊢\",\n      \"doc\": \"Right tack, proves, implies, yields, (vertical and dash)\"\n    },\n    {\n      \"name\": \"dashv\",\n      \"detail\": \"⊣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left tack, non-theorem, does not yield, (dash and vertical)\"\n    },\n    {\n      \"name\": \"top\",\n      \"detail\": \"⊤\",\n      \"doc\": \"Down tack, top\"\n    },\n    {\n      \"name\": \"bot\",\n      \"detail\": \"⊥\",\n      \"doc\": \"Up tack, bottom\"\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"models\",\n      \"detail\": \"⊧\",\n      \"doc\": \"Models (vertical, short double dash)\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"imageof\",\n      \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Image of\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"hermitmatrix\",\n      \"detail\": \"⊹\",\n      \"doc\": \"Hermitian conjugate matrix\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"barvee\",\n      \"detail\": \"⊽\",\n      \"doc\": \"Bar, vee (large vee)\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"varlrtriangle\",\n      \"detail\": \"⊿\",\n      \"doc\": \"Right triangle\"\n    },\n    {\n      \"name\": \"bigwedge\",\n      \"detail\": \"⋀\",\n      \"doc\": \"Logical or operator\"\n    },\n    {\n      \"name\": \"bigvee\",\n      \"detail\": \"⋁\",\n      \"doc\": \"Logical and operator\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"bowtie\",\n      \"detail\": \"⋈\",\n      \"doc\": \"\\\\lrtimes (txfonts), bowtie\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"equalparallel\",\n      \"detail\": \"⋕ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Parallel, equal; equal or parallel\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"eqless\",\n      \"detail\": \"⋜\",\n      \"doc\": \"Equal-or-less\"\n    },\n    {\n      \"name\": \"eqgtr\",\n      \"detail\": \"⋝\",\n      \"doc\": \"Equal-or-greater\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"nvartriangleleft\"\n    },\n    {\n      \"name\": \"nvartriangleright\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"varbarwedge\",\n      \"detail\": \"⌅\",\n      \"doc\": \"\\\\barwedge (amssymb), projective (bar over small wedge) not nand\"\n    },\n    {\n      \"name\": \"vardoublebarwedge\",\n      \"detail\": \"⌆\",\n      \"doc\": \"\\\\doublebarwedge (amssymb), perspective (double bar over small wedge)\"\n    },\n    {\n      \"name\": \"lceil\",\n      \"detail\": \"⌈\",\n      \"doc\": \"Left ceiling\"\n    },\n    {\n      \"name\": \"rceil\",\n      \"detail\": \"⌉\",\n      \"doc\": \"Right ceiling\"\n    },\n    {\n      \"name\": \"lfloor\",\n      \"detail\": \"⌊\",\n      \"doc\": \"Left floor\"\n    },\n    {\n      \"name\": \"rfloor\",\n      \"detail\": \"⌋\",\n      \"doc\": \"Right floor\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"turnednot\",\n      \"detail\": \"⌙\",\n      \"doc\": \"Turned not sign\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"inttop\",\n      \"unusual\": true,\n      \"detail\": \"⌠\",\n      \"doc\": \"Top half integral\"\n    },\n    {\n      \"name\": \"intbottom\",\n      \"unusual\": true,\n      \"detail\": \"⌡\",\n      \"doc\": \"Bottom half integral\"\n    },\n    {\n      \"name\": \"frown\",\n      \"detail\": \"⌢\",\n      \"doc\": \"\\\\smallfrown, frown (down curve)\"\n    },\n    {\n      \"name\": \"smile\",\n      \"detail\": \"⌣\",\n      \"doc\": \"\\\\smallsmile, smile (up curve)\"\n    },\n    {\n      \"name\": \"lparenuend\",\n      \"unusual\": true,\n      \"detail\": \"⎛\",\n      \"doc\": \"Left parenthesis upper hook\"\n    },\n    {\n      \"name\": \"lparenextender\",\n      \"unusual\": true,\n      \"detail\": \"⎜\",\n      \"doc\": \"Left parenthesis extension\"\n    },\n    {\n      \"name\": \"lparenlend\",\n      \"unusual\": true,\n      \"detail\": \"⎝\",\n      \"doc\": \"Left parenthesis lower hook\"\n    },\n    {\n      \"name\": \"rparenuend\",\n      \"unusual\": true,\n      \"detail\": \"⎞\",\n      \"doc\": \"Right parenthesis upper hook\"\n    },\n    {\n      \"name\": \"rparenextender\",\n      \"unusual\": true,\n      \"detail\": \"⎟\",\n      \"doc\": \"Right parenthesis extension\"\n    },\n    {\n      \"name\": \"rparenlend\",\n      \"unusual\": true,\n      \"detail\": \"⎠\",\n      \"doc\": \"Right parenthesis lower hook\"\n    },\n    {\n      \"name\": \"lbrackuend\",\n      \"unusual\": true,\n      \"detail\": \"⎡\",\n      \"doc\": \"Left square bracket upper corner\"\n    },\n    {\n      \"name\": \"lbrackextender\",\n      \"unusual\": true,\n      \"detail\": \"⎢\",\n      \"doc\": \"Left square bracket extension\"\n    },\n    {\n      \"name\": \"lbracklend\",\n      \"unusual\": true,\n      \"detail\": \"⎣\",\n      \"doc\": \"Left square bracket lower corner\"\n    },\n    {\n      \"name\": \"rbrackuend\",\n      \"unusual\": true,\n      \"detail\": \"⎤\",\n      \"doc\": \"Right square bracket upper corner\"\n    },\n    {\n      \"name\": \"rbrackextender\",\n      \"unusual\": true,\n      \"detail\": \"⎥\",\n      \"doc\": \"Right square bracket extension\"\n    },\n    {\n      \"name\": \"rbracklend\",\n      \"unusual\": true,\n      \"detail\": \"⎦\",\n      \"doc\": \"Right square bracket lower corner\"\n    },\n    {\n      \"name\": \"lbraceuend\",\n      \"unusual\": true,\n      \"detail\": \"⎧\",\n      \"doc\": \"Left curly bracket upper hook\"\n    },\n    {\n      \"name\": \"lbracemid\",\n      \"unusual\": true,\n      \"detail\": \"⎨\",\n      \"doc\": \"Left curly bracket middle piece\"\n    },\n    {\n      \"name\": \"lbracelend\",\n      \"unusual\": true,\n      \"detail\": \"⎩\",\n      \"doc\": \"Left curly bracket lower hook\"\n    },\n    {\n      \"name\": \"vbraceextender\",\n      \"unusual\": true,\n      \"detail\": \"⎪\",\n      \"doc\": \"Curly bracket extension\"\n    },\n    {\n      \"name\": \"rbraceuend\",\n      \"unusual\": true,\n      \"detail\": \"⎫\",\n      \"doc\": \"Right curly bracket upper hook\"\n    },\n    {\n      \"name\": \"rbracemid\",\n      \"unusual\": true,\n      \"detail\": \"⎬\",\n      \"doc\": \"Right curly bracket middle piece\"\n    },\n    {\n      \"name\": \"rbracelend\",\n      \"unusual\": true,\n      \"detail\": \"⎭\",\n      \"doc\": \"Right curly bracket lower hook\"\n    },\n    {\n      \"name\": \"sumtop\",\n      \"unusual\": true,\n      \"detail\": \"⎲\",\n      \"doc\": \"Summation top\"\n    },\n    {\n      \"name\": \"sumbottom\",\n      \"unusual\": true,\n      \"detail\": \"⎳\",\n      \"doc\": \"Summation bottom\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"sqrtbottom\",\n      \"detail\": \"⎷\",\n      \"doc\": \"Radical symbol bottom\"\n    },\n    {\n      \"name\": \"overparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overparen{${1:arg}}\"\n      },\n      \"detail\": \"⏜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\wideparen (yhmath mathabx fourier), top parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"underparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underparen{${1:arg}}\"\n      },\n      \"detail\": \"⏝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Bottom parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"obrbrak\",\n      \"detail\": \"⏠\",\n      \"doc\": \"Top tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"ubrbrak\",\n      \"detail\": \"⏡\",\n      \"doc\": \"Bottom tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"blockfull\",\n      \"detail\": \"█\",\n      \"doc\": \"Full block\"\n    },\n    {\n      \"name\": \"blockqtrshaded\",\n      \"detail\": \"░\",\n      \"doc\": \"25\\\\% shaded block\"\n    },\n    {\n      \"name\": \"blockhalfshaded\",\n      \"detail\": \"▒\",\n      \"doc\": \"50\\\\% shaded block\"\n    },\n    {\n      \"name\": \"blockthreeqtrshaded\",\n      \"detail\": \"▓\",\n      \"doc\": \"75\\\\% shaded block\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"smblksquare\",\n      \"detail\": \"▪\",\n      \"doc\": \"Sq bullet, filled\"\n    },\n    {\n      \"name\": \"smwhtsquare\",\n      \"detail\": \"▫\",\n      \"doc\": \"White small square\"\n    },\n    {\n      \"name\": \"hrectangleblack\",\n      \"detail\": \"▬\",\n      \"doc\": \"Black rectangle\"\n    },\n    {\n      \"name\": \"hrectangle\",\n      \"detail\": \"▭\",\n      \"doc\": \"Horizontal rectangle, open\"\n    },\n    {\n      \"name\": \"bigblacktriangleup\",\n      \"detail\": \"▲\",\n      \"doc\": \"Black up-pointing triangle\"\n    },\n    {\n      \"name\": \"bigtriangleup\",\n      \"detail\": \"△\",\n      \"doc\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"triangleright\",\n      \"detail\": \"▷ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\rres (oz), \\\\righttriangle (wrisym), (large) right triangle, open; range restriction\"\n    },\n    {\n      \"name\": \"bigblacktriangledown\",\n      \"detail\": \"▼\",\n      \"doc\": \"Big down triangle, filled\"\n    },\n    {\n      \"name\": \"bigtriangledown\",\n      \"detail\": \"▽\",\n      \"doc\": \"Big down triangle, open\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"triangleleft\",\n      \"detail\": \"◁ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\dres (oz), \\\\lefttriangle (wrisym), (large) left triangle, open; domain restriction\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"lgwhtcircle\",\n      \"detail\": \"◯\",\n      \"doc\": \"Large circle\"\n    },\n    {\n      \"name\": \"spadesuit\",\n      \"detail\": \"♠\",\n      \"doc\": \"Spades suit symbol\"\n    },\n    {\n      \"name\": \"heartsuit\",\n      \"detail\": \"♡\",\n      \"doc\": \"Heart suit symbol\"\n    },\n    {\n      \"name\": \"diamondsuit\",\n      \"detail\": \"♢\",\n      \"doc\": \"Diamond suit symbol\"\n    },\n    {\n      \"name\": \"clubsuit\",\n      \"detail\": \"♣\",\n      \"doc\": \"Club suit symbol\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"perp\",\n      \"detail\": \"⟂\",\n      \"doc\": \"Perpendicular\"\n    },\n    {\n      \"name\": \"bigbot\",\n      \"detail\": \"⟘\",\n      \"doc\": \"Large up tack\"\n    },\n    {\n      \"name\": \"bigtop\",\n      \"detail\": \"⟙\",\n      \"doc\": \"Large down tack\"\n    },\n    {\n      \"name\": \"DashVDash\",\n      \"detail\": \"⟚\",\n      \"doc\": \"Left and right double turnstile\"\n    },\n    {\n      \"name\": \"dashVdash\",\n      \"detail\": \"⟛\",\n      \"doc\": \"Left and right tack\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"vlongdash\",\n      \"detail\": \"⟝\",\n      \"doc\": \"Long left tack\"\n    },\n    {\n      \"name\": \"longdashv\",\n      \"detail\": \"⟞\",\n      \"doc\": \"Long right tack\"\n    },\n    {\n      \"name\": \"lozengeminus\",\n      \"detail\": \"⟠\",\n      \"doc\": \"Lozenge divided by horizontal rule\"\n    },\n    {\n      \"name\": \"concavediamond\",\n      \"detail\": \"⟡\",\n      \"doc\": \"White concave-sided diamond\"\n    },\n    {\n      \"name\": \"concavediamondtickleft\",\n      \"detail\": \"⟢\",\n      \"doc\": \"White concave-sided diamond with leftwards tick\"\n    },\n    {\n      \"name\": \"concavediamondtickright\",\n      \"detail\": \"⟣\",\n      \"doc\": \"White concave-sided diamond with rightwards tick\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"langle\",\n      \"detail\": \"⟨\",\n      \"doc\": \"Mathematical left angle bracket\"\n    },\n    {\n      \"name\": \"rangle\",\n      \"detail\": \"⟩\",\n      \"doc\": \"Mathematical right angle bracket\"\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"lgroup\"\n    },\n    {\n      \"name\": \"rgroup\"\n    },\n    {\n      \"name\": \"rightarrowonoplus\",\n      \"detail\": \"⟴\",\n      \"doc\": \"Right arrow with circled plus\"\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"longleftrightarrow\",\n      \"detail\": \"⟷\",\n      \"doc\": \"Long left right arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"Longleftrightarrow\",\n      \"detail\": \"⟺\",\n      \"doc\": \"\\\\iff (oz), long left right double arrow\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"longmapsto\",\n      \"detail\": \"⟼\",\n      \"doc\": \"Long rightwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"bigodot\",\n      \"detail\": \"⨀\",\n      \"doc\": \"N-ary circled dot operator\"\n    },\n    {\n      \"name\": \"bigoplus\",\n      \"detail\": \"⨁\",\n      \"doc\": \"N-ary circled plus operator\"\n    },\n    {\n      \"name\": \"bigotimes\",\n      \"detail\": \"⨂\",\n      \"doc\": \"N-ary circled times operator\"\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"biguplus\",\n      \"detail\": \"⨄\",\n      \"doc\": \"N-ary union operator with plus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcup\",\n      \"detail\": \"⨆\",\n      \"doc\": \"N-ary square union operator\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"vectimes\",\n      \"detail\": \"⨯\",\n      \"doc\": \"\\\\times, vector or cross product\"\n    },\n    {\n      \"name\": \"amalg\",\n      \"detail\": \"⨿\",\n      \"doc\": \"Amalgamation or coproduct\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"preceq\",\n      \"detail\": \"⪯\",\n      \"doc\": \"Precedes above single-line equals sign\"\n    },\n    {\n      \"name\": \"succeq\",\n      \"detail\": \"⪰\",\n      \"doc\": \"Succeeds above single-line equals sign\"\n    },\n    {\n      \"name\": \"dottedsquare\",\n      \"detail\": \"⬚\",\n      \"doc\": \"Dotted square\"\n    },\n    {\n      \"name\": \"leftthreearrows\",\n      \"detail\": \"⬱\",\n      \"doc\": \"Three leftwards arrows\"\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"mbfA\",\n      \"detail\": \"𝐀\",\n      \"doc\": \"Mathematical bold capital a\"\n    },\n    {\n      \"name\": \"mbfB\",\n      \"detail\": \"𝐁\",\n      \"doc\": \"Mathematical bold capital b\"\n    },\n    {\n      \"name\": \"mbfC\",\n      \"detail\": \"𝐂\",\n      \"doc\": \"Mathematical bold capital c\"\n    },\n    {\n      \"name\": \"mbfD\",\n      \"detail\": \"𝐃\",\n      \"doc\": \"Mathematical bold capital d\"\n    },\n    {\n      \"name\": \"mbfE\",\n      \"detail\": \"𝐄\",\n      \"doc\": \"Mathematical bold capital e\"\n    },\n    {\n      \"name\": \"mbfF\",\n      \"detail\": \"𝐅\",\n      \"doc\": \"Mathematical bold capital f\"\n    },\n    {\n      \"name\": \"mbfG\",\n      \"detail\": \"𝐆\",\n      \"doc\": \"Mathematical bold capital g\"\n    },\n    {\n      \"name\": \"mbfH\",\n      \"detail\": \"𝐇\",\n      \"doc\": \"Mathematical bold capital h\"\n    },\n    {\n      \"name\": \"mbfI\",\n      \"detail\": \"𝐈\",\n      \"doc\": \"Mathematical bold capital i\"\n    },\n    {\n      \"name\": \"mbfJ\",\n      \"detail\": \"𝐉\",\n      \"doc\": \"Mathematical bold capital j\"\n    },\n    {\n      \"name\": \"mbfK\",\n      \"detail\": \"𝐊\",\n      \"doc\": \"Mathematical bold capital k\"\n    },\n    {\n      \"name\": \"mbfL\",\n      \"detail\": \"𝐋\",\n      \"doc\": \"Mathematical bold capital l\"\n    },\n    {\n      \"name\": \"mbfM\",\n      \"detail\": \"𝐌\",\n      \"doc\": \"Mathematical bold capital m\"\n    },\n    {\n      \"name\": \"mbfN\",\n      \"detail\": \"𝐍\",\n      \"doc\": \"Mathematical bold capital n\"\n    },\n    {\n      \"name\": \"mbfO\",\n      \"detail\": \"𝐎\",\n      \"doc\": \"Mathematical bold capital o\"\n    },\n    {\n      \"name\": \"mbfP\",\n      \"detail\": \"𝐏\",\n      \"doc\": \"Mathematical bold capital p\"\n    },\n    {\n      \"name\": \"mbfQ\",\n      \"detail\": \"𝐐\",\n      \"doc\": \"Mathematical bold capital q\"\n    },\n    {\n      \"name\": \"mbfR\",\n      \"detail\": \"𝐑\",\n      \"doc\": \"Mathematical bold capital r\"\n    },\n    {\n      \"name\": \"mbfS\",\n      \"detail\": \"𝐒\",\n      \"doc\": \"Mathematical bold capital s\"\n    },\n    {\n      \"name\": \"mbfT\",\n      \"detail\": \"𝐓\",\n      \"doc\": \"Mathematical bold capital t\"\n    },\n    {\n      \"name\": \"mbfU\",\n      \"detail\": \"𝐔\",\n      \"doc\": \"Mathematical bold capital u\"\n    },\n    {\n      \"name\": \"mbfV\",\n      \"detail\": \"𝐕\",\n      \"doc\": \"Mathematical bold capital v\"\n    },\n    {\n      \"name\": \"mbfW\",\n      \"detail\": \"𝐖\",\n      \"doc\": \"Mathematical bold capital w\"\n    },\n    {\n      \"name\": \"mbfX\",\n      \"detail\": \"𝐗\",\n      \"doc\": \"Mathematical bold capital x\"\n    },\n    {\n      \"name\": \"mbfY\",\n      \"detail\": \"𝐘\",\n      \"doc\": \"Mathematical bold capital y\"\n    },\n    {\n      \"name\": \"mbfZ\",\n      \"detail\": \"𝐙\",\n      \"doc\": \"Mathematical bold capital z\"\n    },\n    {\n      \"name\": \"mbfa\",\n      \"detail\": \"𝐚\",\n      \"doc\": \"Mathematical bold small a\"\n    },\n    {\n      \"name\": \"mbfb\",\n      \"detail\": \"𝐛\",\n      \"doc\": \"Mathematical bold small b\"\n    },\n    {\n      \"name\": \"mbfc\",\n      \"detail\": \"𝐜\",\n      \"doc\": \"Mathematical bold small c\"\n    },\n    {\n      \"name\": \"mbfd\",\n      \"detail\": \"𝐝\",\n      \"doc\": \"Mathematical bold small d\"\n    },\n    {\n      \"name\": \"mbfe\",\n      \"detail\": \"𝐞\",\n      \"doc\": \"Mathematical bold small e\"\n    },\n    {\n      \"name\": \"mbff\",\n      \"detail\": \"𝐟\",\n      \"doc\": \"Mathematical bold small f\"\n    },\n    {\n      \"name\": \"mbfg\",\n      \"detail\": \"𝐠\",\n      \"doc\": \"Mathematical bold small g\"\n    },\n    {\n      \"name\": \"mbfh\",\n      \"detail\": \"𝐡\",\n      \"doc\": \"Mathematical bold small h\"\n    },\n    {\n      \"name\": \"mbfi\",\n      \"detail\": \"𝐢\",\n      \"doc\": \"Mathematical bold small i\"\n    },\n    {\n      \"name\": \"mbfj\",\n      \"detail\": \"𝐣\",\n      \"doc\": \"Mathematical bold small j\"\n    },\n    {\n      \"name\": \"mbfk\",\n      \"detail\": \"𝐤\",\n      \"doc\": \"Mathematical bold small k\"\n    },\n    {\n      \"name\": \"mbfl\",\n      \"detail\": \"𝐥\",\n      \"doc\": \"Mathematical bold small l\"\n    },\n    {\n      \"name\": \"mbfm\",\n      \"detail\": \"𝐦\",\n      \"doc\": \"Mathematical bold small m\"\n    },\n    {\n      \"name\": \"mbfn\",\n      \"detail\": \"𝐧\",\n      \"doc\": \"Mathematical bold small n\"\n    },\n    {\n      \"name\": \"mbfo\",\n      \"detail\": \"𝐨\",\n      \"doc\": \"Mathematical bold small o\"\n    },\n    {\n      \"name\": \"mbfp\",\n      \"detail\": \"𝐩\",\n      \"doc\": \"Mathematical bold small p\"\n    },\n    {\n      \"name\": \"mbfq\",\n      \"detail\": \"𝐪\",\n      \"doc\": \"Mathematical bold small q\"\n    },\n    {\n      \"name\": \"mbfr\",\n      \"detail\": \"𝐫\",\n      \"doc\": \"Mathematical bold small r\"\n    },\n    {\n      \"name\": \"mbfs\",\n      \"detail\": \"𝐬\",\n      \"doc\": \"Mathematical bold small s\"\n    },\n    {\n      \"name\": \"mbft\",\n      \"detail\": \"𝐭\",\n      \"doc\": \"Mathematical bold small t\"\n    },\n    {\n      \"name\": \"mbfu\",\n      \"detail\": \"𝐮\",\n      \"doc\": \"Mathematical bold small u\"\n    },\n    {\n      \"name\": \"mbfv\",\n      \"detail\": \"𝐯\",\n      \"doc\": \"Mathematical bold small v\"\n    },\n    {\n      \"name\": \"mbfw\",\n      \"detail\": \"𝐰\",\n      \"doc\": \"Mathematical bold small w\"\n    },\n    {\n      \"name\": \"mbfx\",\n      \"detail\": \"𝐱\",\n      \"doc\": \"Mathematical bold small x\"\n    },\n    {\n      \"name\": \"mbfy\",\n      \"detail\": \"𝐲\",\n      \"doc\": \"Mathematical bold small y\"\n    },\n    {\n      \"name\": \"mbfz\",\n      \"detail\": \"𝐳\",\n      \"doc\": \"Mathematical bold small z\"\n    },\n    {\n      \"name\": \"mitA\",\n      \"detail\": \"𝐴\",\n      \"doc\": \"\\\\mathit{a}, mathematical italic capital a\"\n    },\n    {\n      \"name\": \"mitB\",\n      \"detail\": \"𝐵\",\n      \"doc\": \"\\\\mathit{b}, mathematical italic capital b\"\n    },\n    {\n      \"name\": \"mitC\",\n      \"detail\": \"𝐶\",\n      \"doc\": \"\\\\mathit{c}, mathematical italic capital c\"\n    },\n    {\n      \"name\": \"mitD\",\n      \"detail\": \"𝐷\",\n      \"doc\": \"\\\\mathit{d}, mathematical italic capital d\"\n    },\n    {\n      \"name\": \"mitE\",\n      \"detail\": \"𝐸\",\n      \"doc\": \"\\\\mathit{e}, mathematical italic capital e\"\n    },\n    {\n      \"name\": \"mitF\",\n      \"detail\": \"𝐹\",\n      \"doc\": \"\\\\mathit{f}, mathematical italic capital f\"\n    },\n    {\n      \"name\": \"mitG\",\n      \"detail\": \"𝐺\",\n      \"doc\": \"\\\\mathit{g}, mathematical italic capital g\"\n    },\n    {\n      \"name\": \"mitH\",\n      \"detail\": \"𝐻\",\n      \"doc\": \"\\\\mathit{h}, mathematical italic capital h\"\n    },\n    {\n      \"name\": \"mitI\",\n      \"detail\": \"𝐼\",\n      \"doc\": \"\\\\mathit{i}, mathematical italic capital i\"\n    },\n    {\n      \"name\": \"mitJ\",\n      \"detail\": \"𝐽\",\n      \"doc\": \"\\\\mathit{j}, mathematical italic capital j\"\n    },\n    {\n      \"name\": \"mitK\",\n      \"detail\": \"𝐾\",\n      \"doc\": \"\\\\mathit{k}, mathematical italic capital k\"\n    },\n    {\n      \"name\": \"mitL\",\n      \"detail\": \"𝐿\",\n      \"doc\": \"\\\\mathit{l}, mathematical italic capital l\"\n    },\n    {\n      \"name\": \"mitM\",\n      \"detail\": \"𝑀\",\n      \"doc\": \"\\\\mathit{m}, mathematical italic capital m\"\n    },\n    {\n      \"name\": \"mitN\",\n      \"detail\": \"𝑁\",\n      \"doc\": \"\\\\mathit{n}, mathematical italic capital n\"\n    },\n    {\n      \"name\": \"mitO\",\n      \"detail\": \"𝑂\",\n      \"doc\": \"\\\\mathit{o}, mathematical italic capital o\"\n    },\n    {\n      \"name\": \"mitP\",\n      \"detail\": \"𝑃\",\n      \"doc\": \"\\\\mathit{p}, mathematical italic capital p\"\n    },\n    {\n      \"name\": \"mitQ\",\n      \"detail\": \"𝑄\",\n      \"doc\": \"\\\\mathit{q}, mathematical italic capital q\"\n    },\n    {\n      \"name\": \"mitR\",\n      \"detail\": \"𝑅\",\n      \"doc\": \"\\\\mathit{r}, mathematical italic capital r\"\n    },\n    {\n      \"name\": \"mitS\",\n      \"detail\": \"𝑆\",\n      \"doc\": \"\\\\mathit{s}, mathematical italic capital s\"\n    },\n    {\n      \"name\": \"mitT\",\n      \"detail\": \"𝑇\",\n      \"doc\": \"\\\\mathit{t}, mathematical italic capital t\"\n    },\n    {\n      \"name\": \"mitU\",\n      \"detail\": \"𝑈\",\n      \"doc\": \"\\\\mathit{u}, mathematical italic capital u\"\n    },\n    {\n      \"name\": \"mitV\",\n      \"detail\": \"𝑉\",\n      \"doc\": \"\\\\mathit{v}, mathematical italic capital v\"\n    },\n    {\n      \"name\": \"mitW\",\n      \"detail\": \"𝑊\",\n      \"doc\": \"\\\\mathit{w}, mathematical italic capital w\"\n    },\n    {\n      \"name\": \"mitX\",\n      \"detail\": \"𝑋\",\n      \"doc\": \"\\\\mathit{x}, mathematical italic capital x\"\n    },\n    {\n      \"name\": \"mitY\",\n      \"detail\": \"𝑌\",\n      \"doc\": \"\\\\mathit{y}, mathematical italic capital y\"\n    },\n    {\n      \"name\": \"mitZ\",\n      \"detail\": \"𝑍\",\n      \"doc\": \"\\\\mathit{z}, mathematical italic capital z\"\n    },\n    {\n      \"name\": \"mita\",\n      \"detail\": \"𝑎\",\n      \"doc\": \"\\\\mathit{a}, mathematical italic small a\"\n    },\n    {\n      \"name\": \"mitb\",\n      \"detail\": \"𝑏\",\n      \"doc\": \"\\\\mathit{b}, mathematical italic small b\"\n    },\n    {\n      \"name\": \"mitc\",\n      \"detail\": \"𝑐\",\n      \"doc\": \"\\\\mathit{c}, mathematical italic small c\"\n    },\n    {\n      \"name\": \"mitd\",\n      \"detail\": \"𝑑\",\n      \"doc\": \"\\\\mathit{d}, mathematical italic small d\"\n    },\n    {\n      \"name\": \"mite\",\n      \"detail\": \"𝑒\",\n      \"doc\": \"\\\\mathit{e}, mathematical italic small e\"\n    },\n    {\n      \"name\": \"mitf\",\n      \"detail\": \"𝑓\",\n      \"doc\": \"\\\\mathit{f}, mathematical italic small f\"\n    },\n    {\n      \"name\": \"mitg\",\n      \"detail\": \"𝑔\",\n      \"doc\": \"\\\\mathit{g}, mathematical italic small g\"\n    },\n    {\n      \"name\": \"miti\",\n      \"detail\": \"𝑖\",\n      \"doc\": \"\\\\mathit{i}, mathematical italic small i\"\n    },\n    {\n      \"name\": \"mitj\",\n      \"detail\": \"𝑗\",\n      \"doc\": \"\\\\mathit{j}, mathematical italic small j\"\n    },\n    {\n      \"name\": \"mitk\",\n      \"detail\": \"𝑘\",\n      \"doc\": \"\\\\mathit{k}, mathematical italic small k\"\n    },\n    {\n      \"name\": \"mitl\",\n      \"detail\": \"𝑙\",\n      \"doc\": \"\\\\mathit{l}, mathematical italic small l\"\n    },\n    {\n      \"name\": \"mitm\",\n      \"detail\": \"𝑚\",\n      \"doc\": \"\\\\mathit{m}, mathematical italic small m\"\n    },\n    {\n      \"name\": \"mitn\",\n      \"detail\": \"𝑛\",\n      \"doc\": \"\\\\mathit{n}, mathematical italic small n\"\n    },\n    {\n      \"name\": \"mito\",\n      \"detail\": \"𝑜\",\n      \"doc\": \"\\\\mathit{o}, mathematical italic small o\"\n    },\n    {\n      \"name\": \"mitp\",\n      \"detail\": \"𝑝\",\n      \"doc\": \"\\\\mathit{p}, mathematical italic small p\"\n    },\n    {\n      \"name\": \"mitq\",\n      \"detail\": \"𝑞\",\n      \"doc\": \"\\\\mathit{q}, mathematical italic small q\"\n    },\n    {\n      \"name\": \"mitr\",\n      \"detail\": \"𝑟\",\n      \"doc\": \"\\\\mathit{r}, mathematical italic small r\"\n    },\n    {\n      \"name\": \"mits\",\n      \"detail\": \"𝑠\",\n      \"doc\": \"\\\\mathit{s}, mathematical italic small s\"\n    },\n    {\n      \"name\": \"mitt\",\n      \"detail\": \"𝑡\",\n      \"doc\": \"\\\\mathit{t}, mathematical italic small t\"\n    },\n    {\n      \"name\": \"mitu\",\n      \"detail\": \"𝑢\",\n      \"doc\": \"\\\\mathit{u}, mathematical italic small u\"\n    },\n    {\n      \"name\": \"mitv\",\n      \"detail\": \"𝑣\",\n      \"doc\": \"\\\\mathit{v}, mathematical italic small v\"\n    },\n    {\n      \"name\": \"mitw\",\n      \"detail\": \"𝑤\",\n      \"doc\": \"\\\\mathit{w}, mathematical italic small w\"\n    },\n    {\n      \"name\": \"mitx\",\n      \"detail\": \"𝑥\",\n      \"doc\": \"\\\\mathit{x}, mathematical italic small x\"\n    },\n    {\n      \"name\": \"mity\",\n      \"detail\": \"𝑦\",\n      \"doc\": \"\\\\mathit{y}, mathematical italic small y\"\n    },\n    {\n      \"name\": \"mitz\",\n      \"detail\": \"𝑧\",\n      \"doc\": \"\\\\mathit{z}, mathematical italic small z\"\n    },\n    {\n      \"name\": \"mbfitA\",\n      \"detail\": \"𝑨 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{a} (fixmath), mathematical bold italic capital a\"\n    },\n    {\n      \"name\": \"mbfitB\",\n      \"detail\": \"𝑩 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{b} (fixmath), mathematical bold italic capital b\"\n    },\n    {\n      \"name\": \"mbfitC\",\n      \"detail\": \"𝑪 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{c} (fixmath), mathematical bold italic capital c\"\n    },\n    {\n      \"name\": \"mbfitD\",\n      \"detail\": \"𝑫 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{d} (fixmath), mathematical bold italic capital d\"\n    },\n    {\n      \"name\": \"mbfitE\",\n      \"detail\": \"𝑬 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{e} (fixmath), mathematical bold italic capital e\"\n    },\n    {\n      \"name\": \"mbfitF\",\n      \"detail\": \"𝑭 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{f} (fixmath), mathematical bold italic capital f\"\n    },\n    {\n      \"name\": \"mbfitG\",\n      \"detail\": \"𝑮 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{g} (fixmath), mathematical bold italic capital g\"\n    },\n    {\n      \"name\": \"mbfitH\",\n      \"detail\": \"𝑯 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{h} (fixmath), mathematical bold italic capital h\"\n    },\n    {\n      \"name\": \"mbfitI\",\n      \"detail\": \"𝑰 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{i} (fixmath), mathematical bold italic capital i\"\n    },\n    {\n      \"name\": \"mbfitJ\",\n      \"detail\": \"𝑱 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{j} (fixmath), mathematical bold italic capital j\"\n    },\n    {\n      \"name\": \"mbfitK\",\n      \"detail\": \"𝑲 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{k} (fixmath), mathematical bold italic capital k\"\n    },\n    {\n      \"name\": \"mbfitL\",\n      \"detail\": \"𝑳 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{l} (fixmath), mathematical bold italic capital l\"\n    },\n    {\n      \"name\": \"mbfitM\",\n      \"detail\": \"𝑴 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{m} (fixmath), mathematical bold italic capital m\"\n    },\n    {\n      \"name\": \"mbfitN\",\n      \"detail\": \"𝑵 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{n} (fixmath), mathematical bold italic capital n\"\n    },\n    {\n      \"name\": \"mbfitO\",\n      \"detail\": \"𝑶 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{o} (fixmath), mathematical bold italic capital o\"\n    },\n    {\n      \"name\": \"mbfitP\",\n      \"detail\": \"𝑷 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{p} (fixmath), mathematical bold italic capital p\"\n    },\n    {\n      \"name\": \"mbfitQ\",\n      \"detail\": \"𝑸 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{q} (fixmath), mathematical bold italic capital q\"\n    },\n    {\n      \"name\": \"mbfitR\",\n      \"detail\": \"𝑹 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{r} (fixmath), mathematical bold italic capital r\"\n    },\n    {\n      \"name\": \"mbfitS\",\n      \"detail\": \"𝑺 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{s} (fixmath), mathematical bold italic capital s\"\n    },\n    {\n      \"name\": \"mbfitT\",\n      \"detail\": \"𝑻 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{t} (fixmath), mathematical bold italic capital t\"\n    },\n    {\n      \"name\": \"mbfitU\",\n      \"detail\": \"𝑼 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{u} (fixmath), mathematical bold italic capital u\"\n    },\n    {\n      \"name\": \"mbfitV\",\n      \"detail\": \"𝑽 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{v} (fixmath), mathematical bold italic capital v\"\n    },\n    {\n      \"name\": \"mbfitW\",\n      \"detail\": \"𝑾 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{w} (fixmath), mathematical bold italic capital w\"\n    },\n    {\n      \"name\": \"mbfitX\",\n      \"detail\": \"𝑿 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{x} (fixmath), mathematical bold italic capital x\"\n    },\n    {\n      \"name\": \"mbfitY\",\n      \"detail\": \"𝒀 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{y} (fixmath), mathematical bold italic capital y\"\n    },\n    {\n      \"name\": \"mbfitZ\",\n      \"detail\": \"𝒁 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{z} (fixmath), mathematical bold italic capital z\"\n    },\n    {\n      \"name\": \"mbfita\",\n      \"detail\": \"𝒂 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{a} (fixmath), mathematical bold italic small a\"\n    },\n    {\n      \"name\": \"mbfitb\",\n      \"detail\": \"𝒃 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{b} (fixmath), mathematical bold italic small b\"\n    },\n    {\n      \"name\": \"mbfitc\",\n      \"detail\": \"𝒄 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{c} (fixmath), mathematical bold italic small c\"\n    },\n    {\n      \"name\": \"mbfitd\",\n      \"detail\": \"𝒅 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{d} (fixmath), mathematical bold italic small d\"\n    },\n    {\n      \"name\": \"mbfite\",\n      \"detail\": \"𝒆 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{e} (fixmath), mathematical bold italic small e\"\n    },\n    {\n      \"name\": \"mbfitf\",\n      \"detail\": \"𝒇 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{f} (fixmath), mathematical bold italic small f\"\n    },\n    {\n      \"name\": \"mbfitg\",\n      \"detail\": \"𝒈 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{g} (fixmath), mathematical bold italic small g\"\n    },\n    {\n      \"name\": \"mbfith\",\n      \"detail\": \"𝒉 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{h} (fixmath), mathematical bold italic small h\"\n    },\n    {\n      \"name\": \"mbfiti\",\n      \"detail\": \"𝒊 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{i} (fixmath), mathematical bold italic small i\"\n    },\n    {\n      \"name\": \"mbfitj\",\n      \"detail\": \"𝒋 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{j} (fixmath), mathematical bold italic small j\"\n    },\n    {\n      \"name\": \"mbfitk\",\n      \"detail\": \"𝒌 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{k} (fixmath), mathematical bold italic small k\"\n    },\n    {\n      \"name\": \"mbfitl\",\n      \"detail\": \"𝒍 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{l} (fixmath), mathematical bold italic small l\"\n    },\n    {\n      \"name\": \"mbfitm\",\n      \"detail\": \"𝒎 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{m} (fixmath), mathematical bold italic small m\"\n    },\n    {\n      \"name\": \"mbfitn\",\n      \"detail\": \"𝒏 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{n} (fixmath), mathematical bold italic small n\"\n    },\n    {\n      \"name\": \"mbfito\",\n      \"detail\": \"𝒐 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{o} (fixmath), mathematical bold italic small o\"\n    },\n    {\n      \"name\": \"mbfitp\",\n      \"detail\": \"𝒑 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{p} (fixmath), mathematical bold italic small p\"\n    },\n    {\n      \"name\": \"mbfitq\",\n      \"detail\": \"𝒒 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{q} (fixmath), mathematical bold italic small q\"\n    },\n    {\n      \"name\": \"mbfitr\",\n      \"detail\": \"𝒓 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{r} (fixmath), mathematical bold italic small r\"\n    },\n    {\n      \"name\": \"mbfits\",\n      \"detail\": \"𝒔 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{s} (fixmath), mathematical bold italic small s\"\n    },\n    {\n      \"name\": \"mbfitt\",\n      \"detail\": \"𝒕 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{t} (fixmath), mathematical bold italic small t\"\n    },\n    {\n      \"name\": \"mbfitu\",\n      \"detail\": \"𝒖 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{u} (fixmath), mathematical bold italic small u\"\n    },\n    {\n      \"name\": \"mbfitv\",\n      \"detail\": \"𝒗 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{v} (fixmath), mathematical bold italic small v\"\n    },\n    {\n      \"name\": \"mbfitw\",\n      \"detail\": \"𝒘 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{w} (fixmath), mathematical bold italic small w\"\n    },\n    {\n      \"name\": \"mbfitx\",\n      \"detail\": \"𝒙 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{x} (fixmath), mathematical bold italic small x\"\n    },\n    {\n      \"name\": \"mbfity\",\n      \"detail\": \"𝒚 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{y} (fixmath), mathematical bold italic small y\"\n    },\n    {\n      \"name\": \"mbfitz\",\n      \"detail\": \"𝒛 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{z} (fixmath), mathematical bold italic small z\"\n    },\n    {\n      \"name\": \"mscrA\",\n      \"detail\": \"𝒜\",\n      \"doc\": \"Mathematical script capital a\"\n    },\n    {\n      \"name\": \"mscrC\",\n      \"detail\": \"𝒞\",\n      \"doc\": \"Mathematical script capital c\"\n    },\n    {\n      \"name\": \"mscrD\",\n      \"detail\": \"𝒟\",\n      \"doc\": \"Mathematical script capital d\"\n    },\n    {\n      \"name\": \"mscrG\",\n      \"detail\": \"𝒢\",\n      \"doc\": \"Mathematical script capital g\"\n    },\n    {\n      \"name\": \"mscrJ\",\n      \"detail\": \"𝒥\",\n      \"doc\": \"Mathematical script capital j\"\n    },\n    {\n      \"name\": \"mscrK\",\n      \"detail\": \"𝒦\",\n      \"doc\": \"Mathematical script capital k\"\n    },\n    {\n      \"name\": \"mscrN\",\n      \"detail\": \"𝒩\",\n      \"doc\": \"Mathematical script capital n\"\n    },\n    {\n      \"name\": \"mscrO\",\n      \"detail\": \"𝒪\",\n      \"doc\": \"Mathematical script capital o\"\n    },\n    {\n      \"name\": \"mscrP\",\n      \"detail\": \"𝒫\",\n      \"doc\": \"Mathematical script capital p\"\n    },\n    {\n      \"name\": \"mscrQ\",\n      \"detail\": \"𝒬\",\n      \"doc\": \"Mathematical script capital q\"\n    },\n    {\n      \"name\": \"mscrS\",\n      \"detail\": \"𝒮\",\n      \"doc\": \"Mathematical script capital s\"\n    },\n    {\n      \"name\": \"mscrT\",\n      \"detail\": \"𝒯\",\n      \"doc\": \"Mathematical script capital t\"\n    },\n    {\n      \"name\": \"mscrU\",\n      \"detail\": \"𝒰\",\n      \"doc\": \"Mathematical script capital u\"\n    },\n    {\n      \"name\": \"mscrV\",\n      \"detail\": \"𝒱\",\n      \"doc\": \"Mathematical script capital v\"\n    },\n    {\n      \"name\": \"mscrW\",\n      \"detail\": \"𝒲\",\n      \"doc\": \"Mathematical script capital w\"\n    },\n    {\n      \"name\": \"mscrX\",\n      \"detail\": \"𝒳\",\n      \"doc\": \"Mathematical script capital x\"\n    },\n    {\n      \"name\": \"mscrY\",\n      \"detail\": \"𝒴\",\n      \"doc\": \"Mathematical script capital y\"\n    },\n    {\n      \"name\": \"mscrZ\",\n      \"detail\": \"𝒵\",\n      \"doc\": \"Mathematical script capital z\"\n    },\n    {\n      \"name\": \"mbfscrA\",\n      \"detail\": \"𝓐\",\n      \"doc\": \"Mathematical bold script capital a\"\n    },\n    {\n      \"name\": \"mbfscrB\",\n      \"detail\": \"𝓑\",\n      \"doc\": \"Mathematical bold script capital b\"\n    },\n    {\n      \"name\": \"mbfscrC\",\n      \"detail\": \"𝓒\",\n      \"doc\": \"Mathematical bold script capital c\"\n    },\n    {\n      \"name\": \"mbfscrD\",\n      \"detail\": \"𝓓\",\n      \"doc\": \"Mathematical bold script capital d\"\n    },\n    {\n      \"name\": \"mbfscrE\",\n      \"detail\": \"𝓔\",\n      \"doc\": \"Mathematical bold script capital e\"\n    },\n    {\n      \"name\": \"mbfscrF\",\n      \"detail\": \"𝓕\",\n      \"doc\": \"Mathematical bold script capital f\"\n    },\n    {\n      \"name\": \"mbfscrG\",\n      \"detail\": \"𝓖\",\n      \"doc\": \"Mathematical bold script capital g\"\n    },\n    {\n      \"name\": \"mbfscrH\",\n      \"detail\": \"𝓗\",\n      \"doc\": \"Mathematical bold script capital h\"\n    },\n    {\n      \"name\": \"mbfscrI\",\n      \"detail\": \"𝓘\",\n      \"doc\": \"Mathematical bold script capital i\"\n    },\n    {\n      \"name\": \"mbfscrJ\",\n      \"detail\": \"𝓙\",\n      \"doc\": \"Mathematical bold script capital j\"\n    },\n    {\n      \"name\": \"mbfscrK\",\n      \"detail\": \"𝓚\",\n      \"doc\": \"Mathematical bold script capital k\"\n    },\n    {\n      \"name\": \"mbfscrL\",\n      \"detail\": \"𝓛\",\n      \"doc\": \"Mathematical bold script capital l\"\n    },\n    {\n      \"name\": \"mbfscrM\",\n      \"detail\": \"𝓜\",\n      \"doc\": \"Mathematical bold script capital m\"\n    },\n    {\n      \"name\": \"mbfscrN\",\n      \"detail\": \"𝓝\",\n      \"doc\": \"Mathematical bold script capital n\"\n    },\n    {\n      \"name\": \"mbfscrO\",\n      \"detail\": \"𝓞\",\n      \"doc\": \"Mathematical bold script capital o\"\n    },\n    {\n      \"name\": \"mbfscrP\",\n      \"detail\": \"𝓟\",\n      \"doc\": \"Mathematical bold script capital p\"\n    },\n    {\n      \"name\": \"mbfscrQ\",\n      \"detail\": \"𝓠\",\n      \"doc\": \"Mathematical bold script capital q\"\n    },\n    {\n      \"name\": \"mbfscrR\",\n      \"detail\": \"𝓡\",\n      \"doc\": \"Mathematical bold script capital r\"\n    },\n    {\n      \"name\": \"mbfscrS\",\n      \"detail\": \"𝓢\",\n      \"doc\": \"Mathematical bold script capital s\"\n    },\n    {\n      \"name\": \"mbfscrT\",\n      \"detail\": \"𝓣\",\n      \"doc\": \"Mathematical bold script capital t\"\n    },\n    {\n      \"name\": \"mbfscrU\",\n      \"detail\": \"𝓤\",\n      \"doc\": \"Mathematical bold script capital u\"\n    },\n    {\n      \"name\": \"mbfscrV\",\n      \"detail\": \"𝓥\",\n      \"doc\": \"Mathematical bold script capital v\"\n    },\n    {\n      \"name\": \"mbfscrW\",\n      \"detail\": \"𝓦\",\n      \"doc\": \"Mathematical bold script capital w\"\n    },\n    {\n      \"name\": \"mbfscrX\",\n      \"detail\": \"𝓧\",\n      \"doc\": \"Mathematical bold script capital x\"\n    },\n    {\n      \"name\": \"mbfscrY\",\n      \"detail\": \"𝓨\",\n      \"doc\": \"Mathematical bold script capital y\"\n    },\n    {\n      \"name\": \"mbfscrZ\",\n      \"detail\": \"𝓩\",\n      \"doc\": \"Mathematical bold script capital z\"\n    },\n    {\n      \"name\": \"mfrakA\",\n      \"detail\": \"𝔄 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital a\"\n    },\n    {\n      \"name\": \"mfrakB\",\n      \"detail\": \"𝔅 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital b\"\n    },\n    {\n      \"name\": \"mfrakD\",\n      \"detail\": \"𝔇 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital d\"\n    },\n    {\n      \"name\": \"mfrakE\",\n      \"detail\": \"𝔈 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital e\"\n    },\n    {\n      \"name\": \"mfrakF\",\n      \"detail\": \"𝔉 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital f\"\n    },\n    {\n      \"name\": \"mfrakG\",\n      \"detail\": \"𝔊 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital g\"\n    },\n    {\n      \"name\": \"mfrakJ\",\n      \"detail\": \"𝔍 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital j\"\n    },\n    {\n      \"name\": \"mfrakK\",\n      \"detail\": \"𝔎 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital k\"\n    },\n    {\n      \"name\": \"mfrakL\",\n      \"detail\": \"𝔏 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital l\"\n    },\n    {\n      \"name\": \"mfrakM\",\n      \"detail\": \"𝔐 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital m\"\n    },\n    {\n      \"name\": \"mfrakN\",\n      \"detail\": \"𝔑 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital n\"\n    },\n    {\n      \"name\": \"mfrakO\",\n      \"detail\": \"𝔒 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital o\"\n    },\n    {\n      \"name\": \"mfrakP\",\n      \"detail\": \"𝔓 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital p\"\n    },\n    {\n      \"name\": \"mfrakQ\",\n      \"detail\": \"𝔔 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital q\"\n    },\n    {\n      \"name\": \"mfrakS\",\n      \"detail\": \"𝔖 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital s\"\n    },\n    {\n      \"name\": \"mfrakT\",\n      \"detail\": \"𝔗 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital t\"\n    },\n    {\n      \"name\": \"mfrakU\",\n      \"detail\": \"𝔘 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital u\"\n    },\n    {\n      \"name\": \"mfrakV\",\n      \"detail\": \"𝔙 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital v\"\n    },\n    {\n      \"name\": \"mfrakW\",\n      \"detail\": \"𝔚 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital w\"\n    },\n    {\n      \"name\": \"mfrakX\",\n      \"detail\": \"𝔛 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital x\"\n    },\n    {\n      \"name\": \"mfrakY\",\n      \"detail\": \"𝔜 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital y\"\n    },\n    {\n      \"name\": \"mfraka\",\n      \"detail\": \"𝔞 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small a\"\n    },\n    {\n      \"name\": \"mfrakb\",\n      \"detail\": \"𝔟 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small b\"\n    },\n    {\n      \"name\": \"mfrakc\",\n      \"detail\": \"𝔠 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small c\"\n    },\n    {\n      \"name\": \"mfrakd\",\n      \"detail\": \"𝔡 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small d\"\n    },\n    {\n      \"name\": \"mfrake\",\n      \"detail\": \"𝔢 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small e\"\n    },\n    {\n      \"name\": \"mfrakf\",\n      \"detail\": \"𝔣 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small f\"\n    },\n    {\n      \"name\": \"mfrakg\",\n      \"detail\": \"𝔤 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small g\"\n    },\n    {\n      \"name\": \"mfrakh\",\n      \"detail\": \"𝔥 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small h\"\n    },\n    {\n      \"name\": \"mfraki\",\n      \"detail\": \"𝔦 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small i\"\n    },\n    {\n      \"name\": \"mfrakj\",\n      \"detail\": \"𝔧 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small j\"\n    },\n    {\n      \"name\": \"mfrakk\",\n      \"detail\": \"𝔨 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small k\"\n    },\n    {\n      \"name\": \"mfrakl\",\n      \"detail\": \"𝔩 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small l\"\n    },\n    {\n      \"name\": \"mfrakm\",\n      \"detail\": \"𝔪 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small m\"\n    },\n    {\n      \"name\": \"mfrakn\",\n      \"detail\": \"𝔫 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small n\"\n    },\n    {\n      \"name\": \"mfrako\",\n      \"detail\": \"𝔬 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small o\"\n    },\n    {\n      \"name\": \"mfrakp\",\n      \"detail\": \"𝔭 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small p\"\n    },\n    {\n      \"name\": \"mfrakq\",\n      \"detail\": \"𝔮 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small q\"\n    },\n    {\n      \"name\": \"mfrakr\",\n      \"detail\": \"𝔯 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small r\"\n    },\n    {\n      \"name\": \"mfraks\",\n      \"detail\": \"𝔰 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small s\"\n    },\n    {\n      \"name\": \"mfrakt\",\n      \"detail\": \"𝔱 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small t\"\n    },\n    {\n      \"name\": \"mfraku\",\n      \"detail\": \"𝔲 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small u\"\n    },\n    {\n      \"name\": \"mfrakv\",\n      \"detail\": \"𝔳 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small v\"\n    },\n    {\n      \"name\": \"mfrakw\",\n      \"detail\": \"𝔴 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small w\"\n    },\n    {\n      \"name\": \"mfrakx\",\n      \"detail\": \"𝔵 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small x\"\n    },\n    {\n      \"name\": \"mfraky\",\n      \"detail\": \"𝔶 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small y\"\n    },\n    {\n      \"name\": \"mfrakz\",\n      \"detail\": \"𝔷 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small z\"\n    },\n    {\n      \"name\": \"BbbA\",\n      \"detail\": \"𝔸 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{a} (dsfont), mathematical double-struck capital a\"\n    },\n    {\n      \"name\": \"BbbB\",\n      \"detail\": \"𝔹 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{b} (dsfont), matmathematical double-struck capital b\"\n    },\n    {\n      \"name\": \"BbbD\",\n      \"detail\": \"𝔻 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{d} (dsfont), matmathematical double-struck capital d\"\n    },\n    {\n      \"name\": \"BbbE\",\n      \"detail\": \"𝔼 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{e} (dsfont), matmathematical double-struck capital e\"\n    },\n    {\n      \"name\": \"BbbF\",\n      \"detail\": \"𝔽 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{f} (dsfont), matmathematical double-struck capital f\"\n    },\n    {\n      \"name\": \"BbbG\",\n      \"detail\": \"𝔾 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{g} (dsfont), matmathematical double-struck capital g\"\n    },\n    {\n      \"name\": \"BbbI\",\n      \"detail\": \"𝕀 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{i} (dsfont), matmathematical double-struck capital i\"\n    },\n    {\n      \"name\": \"BbbJ\",\n      \"detail\": \"𝕁 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{j} (dsfont), matmathematical double-struck capital j\"\n    },\n    {\n      \"name\": \"BbbK\",\n      \"detail\": \"𝕂 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{k} (dsfont), matmathematical double-struck capital k\"\n    },\n    {\n      \"name\": \"BbbL\",\n      \"detail\": \"𝕃 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{l} (dsfont), matmathematical double-struck capital l\"\n    },\n    {\n      \"name\": \"BbbM\",\n      \"detail\": \"𝕄 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{m} (dsfont), matmathematical double-struck capital m\"\n    },\n    {\n      \"name\": \"BbbO\",\n      \"detail\": \"𝕆 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{o} (dsfont), matmathematical double-struck capital o\"\n    },\n    {\n      \"name\": \"BbbS\",\n      \"detail\": \"𝕊 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{s} (dsfont), matmathematical double-struck capital s\"\n    },\n    {\n      \"name\": \"BbbT\",\n      \"detail\": \"𝕋 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{t} (dsfont), matmathematical double-struck capital t\"\n    },\n    {\n      \"name\": \"BbbU\",\n      \"detail\": \"𝕌 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{u} (dsfont), matmathematical double-struck capital u\"\n    },\n    {\n      \"name\": \"BbbV\",\n      \"detail\": \"𝕍 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{v} (dsfont), matmathematical double-struck capital v\"\n    },\n    {\n      \"name\": \"BbbW\",\n      \"detail\": \"𝕎 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{w} (dsfont), matmathematical double-struck capital w\"\n    },\n    {\n      \"name\": \"BbbX\",\n      \"detail\": \"𝕏 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{x} (dsfont), matmathematical double-struck capital x\"\n    },\n    {\n      \"name\": \"BbbY\",\n      \"detail\": \"𝕐 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{y} (dsfont), matmathematical double-struck capital y\"\n    },\n    {\n      \"name\": \"Bbba\",\n      \"detail\": \"𝕒 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small a\"\n    },\n    {\n      \"name\": \"Bbbb\",\n      \"detail\": \"𝕓 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small b\"\n    },\n    {\n      \"name\": \"Bbbc\",\n      \"detail\": \"𝕔 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small c\"\n    },\n    {\n      \"name\": \"Bbbd\",\n      \"detail\": \"𝕕 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small d\"\n    },\n    {\n      \"name\": \"Bbbe\",\n      \"detail\": \"𝕖 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small e\"\n    },\n    {\n      \"name\": \"Bbbf\",\n      \"detail\": \"𝕗 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small f\"\n    },\n    {\n      \"name\": \"Bbbg\",\n      \"detail\": \"𝕘 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small g\"\n    },\n    {\n      \"name\": \"Bbbh\",\n      \"detail\": \"𝕙 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small h\"\n    },\n    {\n      \"name\": \"Bbbi\",\n      \"detail\": \"𝕚 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small i\"\n    },\n    {\n      \"name\": \"Bbbj\",\n      \"detail\": \"𝕛 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small j\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"Bbbl\",\n      \"detail\": \"𝕝 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small l\"\n    },\n    {\n      \"name\": \"Bbbm\",\n      \"detail\": \"𝕞 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small m\"\n    },\n    {\n      \"name\": \"Bbbn\",\n      \"detail\": \"𝕟 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small n\"\n    },\n    {\n      \"name\": \"Bbbo\",\n      \"detail\": \"𝕠 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small o\"\n    },\n    {\n      \"name\": \"Bbbp\",\n      \"detail\": \"𝕡 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small p\"\n    },\n    {\n      \"name\": \"Bbbq\",\n      \"detail\": \"𝕢 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small q\"\n    },\n    {\n      \"name\": \"Bbbr\",\n      \"detail\": \"𝕣 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small r\"\n    },\n    {\n      \"name\": \"Bbbs\",\n      \"detail\": \"𝕤 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small s\"\n    },\n    {\n      \"name\": \"Bbbt\",\n      \"detail\": \"𝕥 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small t\"\n    },\n    {\n      \"name\": \"Bbbu\",\n      \"detail\": \"𝕦 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small u\"\n    },\n    {\n      \"name\": \"Bbbv\",\n      \"detail\": \"𝕧 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small v\"\n    },\n    {\n      \"name\": \"Bbbw\",\n      \"detail\": \"𝕨 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small w\"\n    },\n    {\n      \"name\": \"Bbbx\",\n      \"detail\": \"𝕩 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small x\"\n    },\n    {\n      \"name\": \"Bbby\",\n      \"detail\": \"𝕪 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small y\"\n    },\n    {\n      \"name\": \"Bbbz\",\n      \"detail\": \"𝕫 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small z\"\n    },\n    {\n      \"name\": \"mbffrakA\",\n      \"detail\": \"𝕬\",\n      \"doc\": \"Mathematical bold fraktur capital a\"\n    },\n    {\n      \"name\": \"mbffrakB\",\n      \"detail\": \"𝕭\",\n      \"doc\": \"Mathematical bold fraktur capital b\"\n    },\n    {\n      \"name\": \"mbffrakC\",\n      \"detail\": \"𝕮\",\n      \"doc\": \"Mathematical bold fraktur capital c\"\n    },\n    {\n      \"name\": \"mbffrakD\",\n      \"detail\": \"𝕯\",\n      \"doc\": \"Mathematical bold fraktur capital d\"\n    },\n    {\n      \"name\": \"mbffrakE\",\n      \"detail\": \"𝕰\",\n      \"doc\": \"Mathematical bold fraktur capital e\"\n    },\n    {\n      \"name\": \"mbffrakF\",\n      \"detail\": \"𝕱\",\n      \"doc\": \"Mathematical bold fraktur capital f\"\n    },\n    {\n      \"name\": \"mbffrakG\",\n      \"detail\": \"𝕲\",\n      \"doc\": \"Mathematical bold fraktur capital g\"\n    },\n    {\n      \"name\": \"mbffrakH\",\n      \"detail\": \"𝕳\",\n      \"doc\": \"Mathematical bold fraktur capital h\"\n    },\n    {\n      \"name\": \"mbffrakI\",\n      \"detail\": \"𝕴\",\n      \"doc\": \"Mathematical bold fraktur capital i\"\n    },\n    {\n      \"name\": \"mbffrakJ\",\n      \"detail\": \"𝕵\",\n      \"doc\": \"Mathematical bold fraktur capital j\"\n    },\n    {\n      \"name\": \"mbffrakK\",\n      \"detail\": \"𝕶\",\n      \"doc\": \"Mathematical bold fraktur capital k\"\n    },\n    {\n      \"name\": \"mbffrakL\",\n      \"detail\": \"𝕷\",\n      \"doc\": \"Mathematical bold fraktur capital l\"\n    },\n    {\n      \"name\": \"mbffrakM\",\n      \"detail\": \"𝕸\",\n      \"doc\": \"Mathematical bold fraktur capital m\"\n    },\n    {\n      \"name\": \"mbffrakN\",\n      \"detail\": \"𝕹\",\n      \"doc\": \"Mathematical bold fraktur capital n\"\n    },\n    {\n      \"name\": \"mbffrakO\",\n      \"detail\": \"𝕺\",\n      \"doc\": \"Mathematical bold fraktur capital o\"\n    },\n    {\n      \"name\": \"mbffrakP\",\n      \"detail\": \"𝕻\",\n      \"doc\": \"Mathematical bold fraktur capital p\"\n    },\n    {\n      \"name\": \"mbffrakQ\",\n      \"detail\": \"𝕼\",\n      \"doc\": \"Mathematical bold fraktur capital q\"\n    },\n    {\n      \"name\": \"mbffrakR\",\n      \"detail\": \"𝕽\",\n      \"doc\": \"Mathematical bold fraktur capital r\"\n    },\n    {\n      \"name\": \"mbffrakS\",\n      \"detail\": \"𝕾\",\n      \"doc\": \"Mathematical bold fraktur capital s\"\n    },\n    {\n      \"name\": \"mbffrakT\",\n      \"detail\": \"𝕿\",\n      \"doc\": \"Mathematical bold fraktur capital t\"\n    },\n    {\n      \"name\": \"mbffrakU\",\n      \"detail\": \"𝖀\",\n      \"doc\": \"Mathematical bold fraktur capital u\"\n    },\n    {\n      \"name\": \"mbffrakV\",\n      \"detail\": \"𝖁\",\n      \"doc\": \"Mathematical bold fraktur capital v\"\n    },\n    {\n      \"name\": \"mbffrakW\",\n      \"detail\": \"𝖂\",\n      \"doc\": \"Mathematical bold fraktur capital w\"\n    },\n    {\n      \"name\": \"mbffrakX\",\n      \"detail\": \"𝖃\",\n      \"doc\": \"Mathematical bold fraktur capital x\"\n    },\n    {\n      \"name\": \"mbffrakY\",\n      \"detail\": \"𝖄\",\n      \"doc\": \"Mathematical bold fraktur capital y\"\n    },\n    {\n      \"name\": \"mbffrakZ\",\n      \"detail\": \"𝖅\",\n      \"doc\": \"Mathematical bold fraktur capital z\"\n    },\n    {\n      \"name\": \"mbffraka\",\n      \"detail\": \"𝖆\",\n      \"doc\": \"Mathematical bold fraktur small a\"\n    },\n    {\n      \"name\": \"mbffrakb\",\n      \"detail\": \"𝖇\",\n      \"doc\": \"Mathematical bold fraktur small b\"\n    },\n    {\n      \"name\": \"mbffrakc\",\n      \"detail\": \"𝖈\",\n      \"doc\": \"Mathematical bold fraktur small c\"\n    },\n    {\n      \"name\": \"mbffrakd\",\n      \"detail\": \"𝖉\",\n      \"doc\": \"Mathematical bold fraktur small d\"\n    },\n    {\n      \"name\": \"mbffrake\",\n      \"detail\": \"𝖊\",\n      \"doc\": \"Mathematical bold fraktur small e\"\n    },\n    {\n      \"name\": \"mbffrakf\",\n      \"detail\": \"𝖋\",\n      \"doc\": \"Mathematical bold fraktur small f\"\n    },\n    {\n      \"name\": \"mbffrakg\",\n      \"detail\": \"𝖌\",\n      \"doc\": \"Mathematical bold fraktur small g\"\n    },\n    {\n      \"name\": \"mbffrakh\",\n      \"detail\": \"𝖍\",\n      \"doc\": \"Mathematical bold fraktur small h\"\n    },\n    {\n      \"name\": \"mbffraki\",\n      \"detail\": \"𝖎\",\n      \"doc\": \"Mathematical bold fraktur small i\"\n    },\n    {\n      \"name\": \"mbffrakj\",\n      \"detail\": \"𝖏\",\n      \"doc\": \"Mathematical bold fraktur small j\"\n    },\n    {\n      \"name\": \"mbffrakk\",\n      \"detail\": \"𝖐\",\n      \"doc\": \"Mathematical bold fraktur small k\"\n    },\n    {\n      \"name\": \"mbffrakl\",\n      \"detail\": \"𝖑\",\n      \"doc\": \"Mathematical bold fraktur small l\"\n    },\n    {\n      \"name\": \"mbffrakm\",\n      \"detail\": \"𝖒\",\n      \"doc\": \"Mathematical bold fraktur small m\"\n    },\n    {\n      \"name\": \"mbffrakn\",\n      \"detail\": \"𝖓\",\n      \"doc\": \"Mathematical bold fraktur small n\"\n    },\n    {\n      \"name\": \"mbffrako\",\n      \"detail\": \"𝖔\",\n      \"doc\": \"Mathematical bold fraktur small o\"\n    },\n    {\n      \"name\": \"mbffrakp\",\n      \"detail\": \"𝖕\",\n      \"doc\": \"Mathematical bold fraktur small p\"\n    },\n    {\n      \"name\": \"mbffrakq\",\n      \"detail\": \"𝖖\",\n      \"doc\": \"Mathematical bold fraktur small q\"\n    },\n    {\n      \"name\": \"mbffrakr\",\n      \"detail\": \"𝖗\",\n      \"doc\": \"Mathematical bold fraktur small r\"\n    },\n    {\n      \"name\": \"mbffraks\",\n      \"detail\": \"𝖘\",\n      \"doc\": \"Mathematical bold fraktur small s\"\n    },\n    {\n      \"name\": \"mbffrakt\",\n      \"detail\": \"𝖙\",\n      \"doc\": \"Mathematical bold fraktur small t\"\n    },\n    {\n      \"name\": \"mbffraku\",\n      \"detail\": \"𝖚\",\n      \"doc\": \"Mathematical bold fraktur small u\"\n    },\n    {\n      \"name\": \"mbffrakv\",\n      \"detail\": \"𝖛\",\n      \"doc\": \"Mathematical bold fraktur small v\"\n    },\n    {\n      \"name\": \"mbffrakw\",\n      \"detail\": \"𝖜\",\n      \"doc\": \"Mathematical bold fraktur small w\"\n    },\n    {\n      \"name\": \"mbffrakx\",\n      \"detail\": \"𝖝\",\n      \"doc\": \"Mathematical bold fraktur small x\"\n    },\n    {\n      \"name\": \"mbffraky\",\n      \"detail\": \"𝖞\",\n      \"doc\": \"Mathematical bold fraktur small y\"\n    },\n    {\n      \"name\": \"mbffrakz\",\n      \"detail\": \"𝖟\",\n      \"doc\": \"Mathematical bold fraktur small z\"\n    },\n    {\n      \"name\": \"msansA\",\n      \"detail\": \"𝖠\",\n      \"doc\": \"Mathematical sans-serif capital a\"\n    },\n    {\n      \"name\": \"msansB\",\n      \"detail\": \"𝖡\",\n      \"doc\": \"Mathematical sans-serif capital b\"\n    },\n    {\n      \"name\": \"msansC\",\n      \"detail\": \"𝖢\",\n      \"doc\": \"Mathematical sans-serif capital c\"\n    },\n    {\n      \"name\": \"msansD\",\n      \"detail\": \"𝖣\",\n      \"doc\": \"Mathematical sans-serif capital d\"\n    },\n    {\n      \"name\": \"msansE\",\n      \"detail\": \"𝖤\",\n      \"doc\": \"Mathematical sans-serif capital e\"\n    },\n    {\n      \"name\": \"msansF\",\n      \"detail\": \"𝖥\",\n      \"doc\": \"Mathematical sans-serif capital f\"\n    },\n    {\n      \"name\": \"msansG\",\n      \"detail\": \"𝖦\",\n      \"doc\": \"Mathematical sans-serif capital g\"\n    },\n    {\n      \"name\": \"msansH\",\n      \"detail\": \"𝖧\",\n      \"doc\": \"Mathematical sans-serif capital h\"\n    },\n    {\n      \"name\": \"msansI\",\n      \"detail\": \"𝖨\",\n      \"doc\": \"Mathematical sans-serif capital i\"\n    },\n    {\n      \"name\": \"msansJ\",\n      \"detail\": \"𝖩\",\n      \"doc\": \"Mathematical sans-serif capital j\"\n    },\n    {\n      \"name\": \"msansK\",\n      \"detail\": \"𝖪\",\n      \"doc\": \"Mathematical sans-serif capital k\"\n    },\n    {\n      \"name\": \"msansL\",\n      \"detail\": \"𝖫\",\n      \"doc\": \"Mathematical sans-serif capital l\"\n    },\n    {\n      \"name\": \"msansM\",\n      \"detail\": \"𝖬\",\n      \"doc\": \"Mathematical sans-serif capital m\"\n    },\n    {\n      \"name\": \"msansN\",\n      \"detail\": \"𝖭\",\n      \"doc\": \"Mathematical sans-serif capital n\"\n    },\n    {\n      \"name\": \"msansO\",\n      \"detail\": \"𝖮\",\n      \"doc\": \"Mathematical sans-serif capital o\"\n    },\n    {\n      \"name\": \"msansP\",\n      \"detail\": \"𝖯\",\n      \"doc\": \"Mathematical sans-serif capital p\"\n    },\n    {\n      \"name\": \"msansQ\",\n      \"detail\": \"𝖰\",\n      \"doc\": \"Mathematical sans-serif capital q\"\n    },\n    {\n      \"name\": \"msansR\",\n      \"detail\": \"𝖱\",\n      \"doc\": \"Mathematical sans-serif capital r\"\n    },\n    {\n      \"name\": \"msansS\",\n      \"detail\": \"𝖲\",\n      \"doc\": \"Mathematical sans-serif capital s\"\n    },\n    {\n      \"name\": \"msansT\",\n      \"detail\": \"𝖳\",\n      \"doc\": \"Mathematical sans-serif capital t\"\n    },\n    {\n      \"name\": \"msansU\",\n      \"detail\": \"𝖴\",\n      \"doc\": \"Mathematical sans-serif capital u\"\n    },\n    {\n      \"name\": \"msansV\",\n      \"detail\": \"𝖵\",\n      \"doc\": \"Mathematical sans-serif capital v\"\n    },\n    {\n      \"name\": \"msansW\",\n      \"detail\": \"𝖶\",\n      \"doc\": \"Mathematical sans-serif capital w\"\n    },\n    {\n      \"name\": \"msansX\",\n      \"detail\": \"𝖷\",\n      \"doc\": \"Mathematical sans-serif capital x\"\n    },\n    {\n      \"name\": \"msansY\",\n      \"detail\": \"𝖸\",\n      \"doc\": \"Mathematical sans-serif capital y\"\n    },\n    {\n      \"name\": \"msansZ\",\n      \"detail\": \"𝖹\",\n      \"doc\": \"Mathematical sans-serif capital z\"\n    },\n    {\n      \"name\": \"msansa\",\n      \"detail\": \"𝖺\",\n      \"doc\": \"Mathematical sans-serif small a\"\n    },\n    {\n      \"name\": \"msansb\",\n      \"detail\": \"𝖻\",\n      \"doc\": \"Mathematical sans-serif small b\"\n    },\n    {\n      \"name\": \"msansc\",\n      \"detail\": \"𝖼\",\n      \"doc\": \"Mathematical sans-serif small c\"\n    },\n    {\n      \"name\": \"msansd\",\n      \"detail\": \"𝖽\",\n      \"doc\": \"Mathematical sans-serif small d\"\n    },\n    {\n      \"name\": \"msanse\",\n      \"detail\": \"𝖾\",\n      \"doc\": \"Mathematical sans-serif small e\"\n    },\n    {\n      \"name\": \"msansf\",\n      \"detail\": \"𝖿\",\n      \"doc\": \"Mathematical sans-serif small f\"\n    },\n    {\n      \"name\": \"msansg\",\n      \"detail\": \"𝗀\",\n      \"doc\": \"Mathematical sans-serif small g\"\n    },\n    {\n      \"name\": \"msansh\",\n      \"detail\": \"𝗁\",\n      \"doc\": \"Mathematical sans-serif small h\"\n    },\n    {\n      \"name\": \"msansi\",\n      \"detail\": \"𝗂\",\n      \"doc\": \"Mathematical sans-serif small i\"\n    },\n    {\n      \"name\": \"msansj\",\n      \"detail\": \"𝗃\",\n      \"doc\": \"Mathematical sans-serif small j\"\n    },\n    {\n      \"name\": \"msansk\",\n      \"detail\": \"𝗄\",\n      \"doc\": \"Mathematical sans-serif small k\"\n    },\n    {\n      \"name\": \"msansl\",\n      \"detail\": \"𝗅\",\n      \"doc\": \"Mathematical sans-serif small l\"\n    },\n    {\n      \"name\": \"msansm\",\n      \"detail\": \"𝗆\",\n      \"doc\": \"Mathematical sans-serif small m\"\n    },\n    {\n      \"name\": \"msansn\",\n      \"detail\": \"𝗇\",\n      \"doc\": \"Mathematical sans-serif small n\"\n    },\n    {\n      \"name\": \"msanso\",\n      \"detail\": \"𝗈\",\n      \"doc\": \"Mathematical sans-serif small o\"\n    },\n    {\n      \"name\": \"msansp\",\n      \"detail\": \"𝗉\",\n      \"doc\": \"Mathematical sans-serif small p\"\n    },\n    {\n      \"name\": \"msansq\",\n      \"detail\": \"𝗊\",\n      \"doc\": \"Mathematical sans-serif small q\"\n    },\n    {\n      \"name\": \"msansr\",\n      \"detail\": \"𝗋\",\n      \"doc\": \"Mathematical sans-serif small r\"\n    },\n    {\n      \"name\": \"msanss\",\n      \"detail\": \"𝗌\",\n      \"doc\": \"Mathematical sans-serif small s\"\n    },\n    {\n      \"name\": \"msanst\",\n      \"detail\": \"𝗍\",\n      \"doc\": \"Mathematical sans-serif small t\"\n    },\n    {\n      \"name\": \"msansu\",\n      \"detail\": \"𝗎\",\n      \"doc\": \"Mathematical sans-serif small u\"\n    },\n    {\n      \"name\": \"msansv\",\n      \"detail\": \"𝗏\",\n      \"doc\": \"Mathematical sans-serif small v\"\n    },\n    {\n      \"name\": \"msansw\",\n      \"detail\": \"𝗐\",\n      \"doc\": \"Mathematical sans-serif small w\"\n    },\n    {\n      \"name\": \"msansx\",\n      \"detail\": \"𝗑\",\n      \"doc\": \"Mathematical sans-serif small x\"\n    },\n    {\n      \"name\": \"msansy\",\n      \"detail\": \"𝗒\",\n      \"doc\": \"Mathematical sans-serif small y\"\n    },\n    {\n      \"name\": \"msansz\",\n      \"detail\": \"𝗓\",\n      \"doc\": \"Mathematical sans-serif small z\"\n    },\n    {\n      \"name\": \"mbfsansA\",\n      \"detail\": \"𝗔 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital a\"\n    },\n    {\n      \"name\": \"mbfsansB\",\n      \"detail\": \"𝗕 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital b\"\n    },\n    {\n      \"name\": \"mbfsansC\",\n      \"detail\": \"𝗖 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital c\"\n    },\n    {\n      \"name\": \"mbfsansD\",\n      \"detail\": \"𝗗 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital d\"\n    },\n    {\n      \"name\": \"mbfsansE\",\n      \"detail\": \"𝗘 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital e\"\n    },\n    {\n      \"name\": \"mbfsansF\",\n      \"detail\": \"𝗙 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital f\"\n    },\n    {\n      \"name\": \"mbfsansG\",\n      \"detail\": \"𝗚 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital g\"\n    },\n    {\n      \"name\": \"mbfsansH\",\n      \"detail\": \"𝗛 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital h\"\n    },\n    {\n      \"name\": \"mbfsansI\",\n      \"detail\": \"𝗜 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital i\"\n    },\n    {\n      \"name\": \"mbfsansJ\",\n      \"detail\": \"𝗝 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital j\"\n    },\n    {\n      \"name\": \"mbfsansK\",\n      \"detail\": \"𝗞 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital k\"\n    },\n    {\n      \"name\": \"mbfsansL\",\n      \"detail\": \"𝗟 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital l\"\n    },\n    {\n      \"name\": \"mbfsansM\",\n      \"detail\": \"𝗠 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital m\"\n    },\n    {\n      \"name\": \"mbfsansN\",\n      \"detail\": \"𝗡 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital n\"\n    },\n    {\n      \"name\": \"mbfsansO\",\n      \"detail\": \"𝗢 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital o\"\n    },\n    {\n      \"name\": \"mbfsansP\",\n      \"detail\": \"𝗣 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital p\"\n    },\n    {\n      \"name\": \"mbfsansQ\",\n      \"detail\": \"𝗤 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital q\"\n    },\n    {\n      \"name\": \"mbfsansR\",\n      \"detail\": \"𝗥 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital r\"\n    },\n    {\n      \"name\": \"mbfsansS\",\n      \"detail\": \"𝗦 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital s\"\n    },\n    {\n      \"name\": \"mbfsansT\",\n      \"detail\": \"𝗧 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital t\"\n    },\n    {\n      \"name\": \"mbfsansU\",\n      \"detail\": \"𝗨 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital u\"\n    },\n    {\n      \"name\": \"mbfsansV\",\n      \"detail\": \"𝗩 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital v\"\n    },\n    {\n      \"name\": \"mbfsansW\",\n      \"detail\": \"𝗪 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital w\"\n    },\n    {\n      \"name\": \"mbfsansX\",\n      \"detail\": \"𝗫 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital x\"\n    },\n    {\n      \"name\": \"mbfsansY\",\n      \"detail\": \"𝗬 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital y\"\n    },\n    {\n      \"name\": \"mbfsansZ\",\n      \"detail\": \"𝗭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital z\"\n    },\n    {\n      \"name\": \"mbfsansa\",\n      \"detail\": \"𝗮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small a\"\n    },\n    {\n      \"name\": \"mbfsansb\",\n      \"detail\": \"𝗯 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small b\"\n    },\n    {\n      \"name\": \"mbfsansc\",\n      \"detail\": \"𝗰 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small c\"\n    },\n    {\n      \"name\": \"mbfsansd\",\n      \"detail\": \"𝗱 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small d\"\n    },\n    {\n      \"name\": \"mbfsanse\",\n      \"detail\": \"𝗲 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small e\"\n    },\n    {\n      \"name\": \"mbfsansf\",\n      \"detail\": \"𝗳 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small f\"\n    },\n    {\n      \"name\": \"mbfsansg\",\n      \"detail\": \"𝗴 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small g\"\n    },\n    {\n      \"name\": \"mbfsansh\",\n      \"detail\": \"𝗵 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small h\"\n    },\n    {\n      \"name\": \"mbfsansi\",\n      \"detail\": \"𝗶 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small i\"\n    },\n    {\n      \"name\": \"mbfsansj\",\n      \"detail\": \"𝗷 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small j\"\n    },\n    {\n      \"name\": \"mbfsansk\",\n      \"detail\": \"𝗸 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small k\"\n    },\n    {\n      \"name\": \"mbfsansl\",\n      \"detail\": \"𝗹 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small l\"\n    },\n    {\n      \"name\": \"mbfsansm\",\n      \"detail\": \"𝗺 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small m\"\n    },\n    {\n      \"name\": \"mbfsansn\",\n      \"detail\": \"𝗻 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small n\"\n    },\n    {\n      \"name\": \"mbfsanso\",\n      \"detail\": \"𝗼 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small o\"\n    },\n    {\n      \"name\": \"mbfsansp\",\n      \"detail\": \"𝗽 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small p\"\n    },\n    {\n      \"name\": \"mbfsansq\",\n      \"detail\": \"𝗾 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small q\"\n    },\n    {\n      \"name\": \"mbfsansr\",\n      \"detail\": \"𝗿 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small r\"\n    },\n    {\n      \"name\": \"mbfsanss\",\n      \"detail\": \"𝘀 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small s\"\n    },\n    {\n      \"name\": \"mbfsanst\",\n      \"detail\": \"𝘁 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small t\"\n    },\n    {\n      \"name\": \"mbfsansu\",\n      \"detail\": \"𝘂 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small u\"\n    },\n    {\n      \"name\": \"mbfsansv\",\n      \"detail\": \"𝘃 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small v\"\n    },\n    {\n      \"name\": \"mbfsansw\",\n      \"detail\": \"𝘄 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small w\"\n    },\n    {\n      \"name\": \"mbfsansx\",\n      \"detail\": \"𝘅 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small x\"\n    },\n    {\n      \"name\": \"mbfsansy\",\n      \"detail\": \"𝘆 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small y\"\n    },\n    {\n      \"name\": \"mbfsansz\",\n      \"detail\": \"𝘇 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small z\"\n    },\n    {\n      \"name\": \"mitsansA\",\n      \"detail\": \"𝘈 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital a\"\n    },\n    {\n      \"name\": \"mitsansB\",\n      \"detail\": \"𝘉 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital b\"\n    },\n    {\n      \"name\": \"mitsansC\",\n      \"detail\": \"𝘊 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital c\"\n    },\n    {\n      \"name\": \"mitsansD\",\n      \"detail\": \"𝘋 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital d\"\n    },\n    {\n      \"name\": \"mitsansE\",\n      \"detail\": \"𝘌 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital e\"\n    },\n    {\n      \"name\": \"mitsansF\",\n      \"detail\": \"𝘍 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital f\"\n    },\n    {\n      \"name\": \"mitsansG\",\n      \"detail\": \"𝘎 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital g\"\n    },\n    {\n      \"name\": \"mitsansH\",\n      \"detail\": \"𝘏 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital h\"\n    },\n    {\n      \"name\": \"mitsansI\",\n      \"detail\": \"𝘐 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital i\"\n    },\n    {\n      \"name\": \"mitsansJ\",\n      \"detail\": \"𝘑 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital j\"\n    },\n    {\n      \"name\": \"mitsansK\",\n      \"detail\": \"𝘒 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital k\"\n    },\n    {\n      \"name\": \"mitsansL\",\n      \"detail\": \"𝘓 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital l\"\n    },\n    {\n      \"name\": \"mitsansM\",\n      \"detail\": \"𝘔 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital m\"\n    },\n    {\n      \"name\": \"mitsansN\",\n      \"detail\": \"𝘕 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital n\"\n    },\n    {\n      \"name\": \"mitsansO\",\n      \"detail\": \"𝘖 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital o\"\n    },\n    {\n      \"name\": \"mitsansP\",\n      \"detail\": \"𝘗 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital p\"\n    },\n    {\n      \"name\": \"mitsansQ\",\n      \"detail\": \"𝘘 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital q\"\n    },\n    {\n      \"name\": \"mitsansR\",\n      \"detail\": \"𝘙 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital r\"\n    },\n    {\n      \"name\": \"mitsansS\",\n      \"detail\": \"𝘚 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital s\"\n    },\n    {\n      \"name\": \"mitsansT\",\n      \"detail\": \"𝘛 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital t\"\n    },\n    {\n      \"name\": \"mitsansU\",\n      \"detail\": \"𝘜 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital u\"\n    },\n    {\n      \"name\": \"mitsansV\",\n      \"detail\": \"𝘝 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital v\"\n    },\n    {\n      \"name\": \"mitsansW\",\n      \"detail\": \"𝘞 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital w\"\n    },\n    {\n      \"name\": \"mitsansX\",\n      \"detail\": \"𝘟 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital x\"\n    },\n    {\n      \"name\": \"mitsansY\",\n      \"detail\": \"𝘠 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital y\"\n    },\n    {\n      \"name\": \"mitsansZ\",\n      \"detail\": \"𝘡 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital z\"\n    },\n    {\n      \"name\": \"mitsansa\",\n      \"detail\": \"𝘢 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small a\"\n    },\n    {\n      \"name\": \"mitsansb\",\n      \"detail\": \"𝘣 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small b\"\n    },\n    {\n      \"name\": \"mitsansc\",\n      \"detail\": \"𝘤 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small c\"\n    },\n    {\n      \"name\": \"mitsansd\",\n      \"detail\": \"𝘥 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small d\"\n    },\n    {\n      \"name\": \"mitsanse\",\n      \"detail\": \"𝘦 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small e\"\n    },\n    {\n      \"name\": \"mitsansf\",\n      \"detail\": \"𝘧 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small f\"\n    },\n    {\n      \"name\": \"mitsansg\",\n      \"detail\": \"𝘨 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small g\"\n    },\n    {\n      \"name\": \"mitsansh\",\n      \"detail\": \"𝘩 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small h\"\n    },\n    {\n      \"name\": \"mitsansi\",\n      \"detail\": \"𝘪 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small i\"\n    },\n    {\n      \"name\": \"mitsansj\",\n      \"detail\": \"𝘫 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small j\"\n    },\n    {\n      \"name\": \"mitsansk\",\n      \"detail\": \"𝘬 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small k\"\n    },\n    {\n      \"name\": \"mitsansl\",\n      \"detail\": \"𝘭 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small l\"\n    },\n    {\n      \"name\": \"mitsansm\",\n      \"detail\": \"𝘮 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small m\"\n    },\n    {\n      \"name\": \"mitsansn\",\n      \"detail\": \"𝘯 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small n\"\n    },\n    {\n      \"name\": \"mitsanso\",\n      \"detail\": \"𝘰 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small o\"\n    },\n    {\n      \"name\": \"mitsansp\",\n      \"detail\": \"𝘱 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small p\"\n    },\n    {\n      \"name\": \"mitsansq\",\n      \"detail\": \"𝘲 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small q\"\n    },\n    {\n      \"name\": \"mitsansr\",\n      \"detail\": \"𝘳 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small r\"\n    },\n    {\n      \"name\": \"mitsanss\",\n      \"detail\": \"𝘴 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small s\"\n    },\n    {\n      \"name\": \"mitsanst\",\n      \"detail\": \"𝘵 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small t\"\n    },\n    {\n      \"name\": \"mitsansu\",\n      \"detail\": \"𝘶 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small u\"\n    },\n    {\n      \"name\": \"mitsansv\",\n      \"detail\": \"𝘷 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small v\"\n    },\n    {\n      \"name\": \"mitsansw\",\n      \"detail\": \"𝘸 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small w\"\n    },\n    {\n      \"name\": \"mitsansx\",\n      \"detail\": \"𝘹 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small x\"\n    },\n    {\n      \"name\": \"mitsansy\",\n      \"detail\": \"𝘺 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small y\"\n    },\n    {\n      \"name\": \"mitsansz\",\n      \"detail\": \"𝘻 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small z\"\n    },\n    {\n      \"name\": \"mbfitsansA\",\n      \"detail\": \"𝘼 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital a\"\n    },\n    {\n      \"name\": \"mbfitsansB\",\n      \"detail\": \"𝘽 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital b\"\n    },\n    {\n      \"name\": \"mbfitsansC\",\n      \"detail\": \"𝘾 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital c\"\n    },\n    {\n      \"name\": \"mbfitsansD\",\n      \"detail\": \"𝘿 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital d\"\n    },\n    {\n      \"name\": \"mbfitsansE\",\n      \"detail\": \"𝙀 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital e\"\n    },\n    {\n      \"name\": \"mbfitsansF\",\n      \"detail\": \"𝙁 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital f\"\n    },\n    {\n      \"name\": \"mbfitsansG\",\n      \"detail\": \"𝙂 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital g\"\n    },\n    {\n      \"name\": \"mbfitsansH\",\n      \"detail\": \"𝙃 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital h\"\n    },\n    {\n      \"name\": \"mbfitsansI\",\n      \"detail\": \"𝙄 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital i\"\n    },\n    {\n      \"name\": \"mbfitsansJ\",\n      \"detail\": \"𝙅 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital j\"\n    },\n    {\n      \"name\": \"mbfitsansK\",\n      \"detail\": \"𝙆 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital k\"\n    },\n    {\n      \"name\": \"mbfitsansL\",\n      \"detail\": \"𝙇 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital l\"\n    },\n    {\n      \"name\": \"mbfitsansM\",\n      \"detail\": \"𝙈 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital m\"\n    },\n    {\n      \"name\": \"mbfitsansN\",\n      \"detail\": \"𝙉 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital n\"\n    },\n    {\n      \"name\": \"mbfitsansO\",\n      \"detail\": \"𝙊 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital o\"\n    },\n    {\n      \"name\": \"mbfitsansP\",\n      \"detail\": \"𝙋 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital p\"\n    },\n    {\n      \"name\": \"mbfitsansQ\",\n      \"detail\": \"𝙌 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital q\"\n    },\n    {\n      \"name\": \"mbfitsansR\",\n      \"detail\": \"𝙍 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital r\"\n    },\n    {\n      \"name\": \"mbfitsansS\",\n      \"detail\": \"𝙎 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital s\"\n    },\n    {\n      \"name\": \"mbfitsansT\",\n      \"detail\": \"𝙏 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital t\"\n    },\n    {\n      \"name\": \"mbfitsansU\",\n      \"detail\": \"𝙐 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital u\"\n    },\n    {\n      \"name\": \"mbfitsansV\",\n      \"detail\": \"𝙑 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital v\"\n    },\n    {\n      \"name\": \"mbfitsansW\",\n      \"detail\": \"𝙒 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital w\"\n    },\n    {\n      \"name\": \"mbfitsansX\",\n      \"detail\": \"𝙓 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital x\"\n    },\n    {\n      \"name\": \"mbfitsansY\",\n      \"detail\": \"𝙔 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital y\"\n    },\n    {\n      \"name\": \"mbfitsansZ\",\n      \"detail\": \"𝙕 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital z\"\n    },\n    {\n      \"name\": \"mbfitsansa\",\n      \"detail\": \"𝙖 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small a\"\n    },\n    {\n      \"name\": \"mbfitsansb\",\n      \"detail\": \"𝙗 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small b\"\n    },\n    {\n      \"name\": \"mbfitsansc\",\n      \"detail\": \"𝙘 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small c\"\n    },\n    {\n      \"name\": \"mbfitsansd\",\n      \"detail\": \"𝙙 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small d\"\n    },\n    {\n      \"name\": \"mbfitsanse\",\n      \"detail\": \"𝙚 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small e\"\n    },\n    {\n      \"name\": \"mbfitsansf\",\n      \"detail\": \"𝙛 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small f\"\n    },\n    {\n      \"name\": \"mbfitsansg\",\n      \"detail\": \"𝙜 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small g\"\n    },\n    {\n      \"name\": \"mbfitsansh\",\n      \"detail\": \"𝙝 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small h\"\n    },\n    {\n      \"name\": \"mbfitsansi\",\n      \"detail\": \"𝙞 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small i\"\n    },\n    {\n      \"name\": \"mbfitsansj\",\n      \"detail\": \"𝙟 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small j\"\n    },\n    {\n      \"name\": \"mbfitsansk\",\n      \"detail\": \"𝙠 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small k\"\n    },\n    {\n      \"name\": \"mbfitsansl\",\n      \"detail\": \"𝙡 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small l\"\n    },\n    {\n      \"name\": \"mbfitsansm\",\n      \"detail\": \"𝙢 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small m\"\n    },\n    {\n      \"name\": \"mbfitsansn\",\n      \"detail\": \"𝙣 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small n\"\n    },\n    {\n      \"name\": \"mbfitsanso\",\n      \"detail\": \"𝙤 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small o\"\n    },\n    {\n      \"name\": \"mbfitsansp\",\n      \"detail\": \"𝙥 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small p\"\n    },\n    {\n      \"name\": \"mbfitsansq\",\n      \"detail\": \"𝙦 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small q\"\n    },\n    {\n      \"name\": \"mbfitsansr\",\n      \"detail\": \"𝙧 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small r\"\n    },\n    {\n      \"name\": \"mbfitsanss\",\n      \"detail\": \"𝙨 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small s\"\n    },\n    {\n      \"name\": \"mbfitsanst\",\n      \"detail\": \"𝙩 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small t\"\n    },\n    {\n      \"name\": \"mbfitsansu\",\n      \"detail\": \"𝙪 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small u\"\n    },\n    {\n      \"name\": \"mbfitsansv\",\n      \"detail\": \"𝙫 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small v\"\n    },\n    {\n      \"name\": \"mbfitsansw\",\n      \"detail\": \"𝙬 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small w\"\n    },\n    {\n      \"name\": \"mbfitsansx\",\n      \"detail\": \"𝙭 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small x\"\n    },\n    {\n      \"name\": \"mbfitsansy\",\n      \"detail\": \"𝙮 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small y\"\n    },\n    {\n      \"name\": \"mbfitsansz\",\n      \"detail\": \"𝙯 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small z\"\n    },\n    {\n      \"name\": \"mttA\",\n      \"detail\": \"𝙰\",\n      \"doc\": \"Mathematical monospace capital a\"\n    },\n    {\n      \"name\": \"mttB\",\n      \"detail\": \"𝙱\",\n      \"doc\": \"Mathematical monospace capital b\"\n    },\n    {\n      \"name\": \"mttC\",\n      \"detail\": \"𝙲\",\n      \"doc\": \"Mathematical monospace capital c\"\n    },\n    {\n      \"name\": \"mttD\",\n      \"detail\": \"𝙳\",\n      \"doc\": \"Mathematical monospace capital d\"\n    },\n    {\n      \"name\": \"mttE\",\n      \"detail\": \"𝙴\",\n      \"doc\": \"Mathematical monospace capital e\"\n    },\n    {\n      \"name\": \"mttF\",\n      \"detail\": \"𝙵\",\n      \"doc\": \"Mathematical monospace capital f\"\n    },\n    {\n      \"name\": \"mttG\",\n      \"detail\": \"𝙶\",\n      \"doc\": \"Mathematical monospace capital g\"\n    },\n    {\n      \"name\": \"mttH\",\n      \"detail\": \"𝙷\",\n      \"doc\": \"Mathematical monospace capital h\"\n    },\n    {\n      \"name\": \"mttI\",\n      \"detail\": \"𝙸\",\n      \"doc\": \"Mathematical monospace capital i\"\n    },\n    {\n      \"name\": \"mttJ\",\n      \"detail\": \"𝙹\",\n      \"doc\": \"Mathematical monospace capital j\"\n    },\n    {\n      \"name\": \"mttK\",\n      \"detail\": \"𝙺\",\n      \"doc\": \"Mathematical monospace capital k\"\n    },\n    {\n      \"name\": \"mttL\",\n      \"detail\": \"𝙻\",\n      \"doc\": \"Mathematical monospace capital l\"\n    },\n    {\n      \"name\": \"mttM\",\n      \"detail\": \"𝙼\",\n      \"doc\": \"Mathematical monospace capital m\"\n    },\n    {\n      \"name\": \"mttN\",\n      \"detail\": \"𝙽\",\n      \"doc\": \"Mathematical monospace capital n\"\n    },\n    {\n      \"name\": \"mttO\",\n      \"detail\": \"𝙾\",\n      \"doc\": \"Mathematical monospace capital o\"\n    },\n    {\n      \"name\": \"mttP\",\n      \"detail\": \"𝙿\",\n      \"doc\": \"Mathematical monospace capital p\"\n    },\n    {\n      \"name\": \"mttQ\",\n      \"detail\": \"𝚀\",\n      \"doc\": \"Mathematical monospace capital q\"\n    },\n    {\n      \"name\": \"mttR\",\n      \"detail\": \"𝚁\",\n      \"doc\": \"Mathematical monospace capital r\"\n    },\n    {\n      \"name\": \"mttS\",\n      \"detail\": \"𝚂\",\n      \"doc\": \"Mathematical monospace capital s\"\n    },\n    {\n      \"name\": \"mttT\",\n      \"detail\": \"𝚃\",\n      \"doc\": \"Mathematical monospace capital t\"\n    },\n    {\n      \"name\": \"mttU\",\n      \"detail\": \"𝚄\",\n      \"doc\": \"Mathematical monospace capital u\"\n    },\n    {\n      \"name\": \"mttV\",\n      \"detail\": \"𝚅\",\n      \"doc\": \"Mathematical monospace capital v\"\n    },\n    {\n      \"name\": \"mttW\",\n      \"detail\": \"𝚆\",\n      \"doc\": \"Mathematical monospace capital w\"\n    },\n    {\n      \"name\": \"mttX\",\n      \"detail\": \"𝚇\",\n      \"doc\": \"Mathematical monospace capital x\"\n    },\n    {\n      \"name\": \"mttY\",\n      \"detail\": \"𝚈\",\n      \"doc\": \"Mathematical monospace capital y\"\n    },\n    {\n      \"name\": \"mttZ\",\n      \"detail\": \"𝚉\",\n      \"doc\": \"Mathematical monospace capital z\"\n    },\n    {\n      \"name\": \"mtta\",\n      \"detail\": \"𝚊\",\n      \"doc\": \"Mathematical monospace small a\"\n    },\n    {\n      \"name\": \"mttb\",\n      \"detail\": \"𝚋\",\n      \"doc\": \"Mathematical monospace small b\"\n    },\n    {\n      \"name\": \"mttc\",\n      \"detail\": \"𝚌\",\n      \"doc\": \"Mathematical monospace small c\"\n    },\n    {\n      \"name\": \"mttd\",\n      \"detail\": \"𝚍\",\n      \"doc\": \"Mathematical monospace small d\"\n    },\n    {\n      \"name\": \"mtte\",\n      \"detail\": \"𝚎\",\n      \"doc\": \"Mathematical monospace small e\"\n    },\n    {\n      \"name\": \"mttf\",\n      \"detail\": \"𝚏\",\n      \"doc\": \"Mathematical monospace small f\"\n    },\n    {\n      \"name\": \"mttg\",\n      \"detail\": \"𝚐\",\n      \"doc\": \"Mathematical monospace small g\"\n    },\n    {\n      \"name\": \"mtth\",\n      \"detail\": \"𝚑\",\n      \"doc\": \"Mathematical monospace small h\"\n    },\n    {\n      \"name\": \"mtti\",\n      \"detail\": \"𝚒\",\n      \"doc\": \"Mathematical monospace small i\"\n    },\n    {\n      \"name\": \"mttj\",\n      \"detail\": \"𝚓\",\n      \"doc\": \"Mathematical monospace small j\"\n    },\n    {\n      \"name\": \"mttk\",\n      \"detail\": \"𝚔\",\n      \"doc\": \"Mathematical monospace small k\"\n    },\n    {\n      \"name\": \"mttl\",\n      \"detail\": \"𝚕\",\n      \"doc\": \"Mathematical monospace small l\"\n    },\n    {\n      \"name\": \"mttm\",\n      \"detail\": \"𝚖\",\n      \"doc\": \"Mathematical monospace small m\"\n    },\n    {\n      \"name\": \"mttn\",\n      \"detail\": \"𝚗\",\n      \"doc\": \"Mathematical monospace small n\"\n    },\n    {\n      \"name\": \"mtto\",\n      \"detail\": \"𝚘\",\n      \"doc\": \"Mathematical monospace small o\"\n    },\n    {\n      \"name\": \"mttp\",\n      \"detail\": \"𝚙\",\n      \"doc\": \"Mathematical monospace small p\"\n    },\n    {\n      \"name\": \"mttq\",\n      \"detail\": \"𝚚\",\n      \"doc\": \"Mathematical monospace small q\"\n    },\n    {\n      \"name\": \"mttr\",\n      \"detail\": \"𝚛\",\n      \"doc\": \"Mathematical monospace small r\"\n    },\n    {\n      \"name\": \"mtts\",\n      \"detail\": \"𝚜\",\n      \"doc\": \"Mathematical monospace small s\"\n    },\n    {\n      \"name\": \"mttt\",\n      \"detail\": \"𝚝\",\n      \"doc\": \"Mathematical monospace small t\"\n    },\n    {\n      \"name\": \"mttu\",\n      \"detail\": \"𝚞\",\n      \"doc\": \"Mathematical monospace small u\"\n    },\n    {\n      \"name\": \"mttv\",\n      \"detail\": \"𝚟\",\n      \"doc\": \"Mathematical monospace small v\"\n    },\n    {\n      \"name\": \"mttw\",\n      \"detail\": \"𝚠\",\n      \"doc\": \"Mathematical monospace small w\"\n    },\n    {\n      \"name\": \"mttx\",\n      \"detail\": \"𝚡\",\n      \"doc\": \"Mathematical monospace small x\"\n    },\n    {\n      \"name\": \"mtty\",\n      \"detail\": \"𝚢\",\n      \"doc\": \"Mathematical monospace small y\"\n    },\n    {\n      \"name\": \"mttz\",\n      \"detail\": \"𝚣\",\n      \"doc\": \"Mathematical monospace small z\"\n    },\n    {\n      \"name\": \"imath\",\n      \"detail\": \"𝚤\",\n      \"doc\": \"Mathematical italic small dotless i\"\n    },\n    {\n      \"name\": \"jmath\",\n      \"detail\": \"𝚥\",\n      \"doc\": \"Mathematical italic small dotless j\"\n    },\n    {\n      \"name\": \"mbfAlpha\",\n      \"detail\": \"𝚨\",\n      \"doc\": \"Mathematical bold capital alpha\"\n    },\n    {\n      \"name\": \"mbfBeta\",\n      \"detail\": \"𝚩\",\n      \"doc\": \"Mathematical bold capital beta\"\n    },\n    {\n      \"name\": \"mbfGamma\",\n      \"detail\": \"𝚪\",\n      \"doc\": \"Mathematical bold capital gamma\"\n    },\n    {\n      \"name\": \"mbfDelta\",\n      \"detail\": \"𝚫\",\n      \"doc\": \"Mathematical bold capital delta\"\n    },\n    {\n      \"name\": \"mbfEpsilon\",\n      \"detail\": \"𝚬\",\n      \"doc\": \"Mathematical bold capital epsilon\"\n    },\n    {\n      \"name\": \"mbfZeta\",\n      \"detail\": \"𝚭\",\n      \"doc\": \"Mathematical bold capital zeta\"\n    },\n    {\n      \"name\": \"mbfEta\",\n      \"detail\": \"𝚮\",\n      \"doc\": \"Mathematical bold capital eta\"\n    },\n    {\n      \"name\": \"mbfTheta\",\n      \"detail\": \"𝚯\",\n      \"doc\": \"Mathematical bold capital theta\"\n    },\n    {\n      \"name\": \"mbfIota\",\n      \"detail\": \"𝚰\",\n      \"doc\": \"Mathematical bold capital iota\"\n    },\n    {\n      \"name\": \"mbfKappa\",\n      \"detail\": \"𝚱\",\n      \"doc\": \"Mathematical bold capital kappa\"\n    },\n    {\n      \"name\": \"mbfLambda\",\n      \"detail\": \"𝚲\",\n      \"doc\": \"Mathematical bold capital lambda\"\n    },\n    {\n      \"name\": \"mbfMu\",\n      \"detail\": \"𝚳\",\n      \"doc\": \"Mathematical bold capital mu\"\n    },\n    {\n      \"name\": \"mbfNu\",\n      \"detail\": \"𝚴\",\n      \"doc\": \"Mathematical bold capital nu\"\n    },\n    {\n      \"name\": \"mbfXi\",\n      \"detail\": \"𝚵\",\n      \"doc\": \"Mathematical bold capital xi\"\n    },\n    {\n      \"name\": \"mbfOmicron\",\n      \"detail\": \"𝚶\",\n      \"doc\": \"Mathematical bold capital omicron\"\n    },\n    {\n      \"name\": \"mbfPi\",\n      \"detail\": \"𝚷\",\n      \"doc\": \"Mathematical bold capital pi\"\n    },\n    {\n      \"name\": \"mbfRho\",\n      \"detail\": \"𝚸\",\n      \"doc\": \"Mathematical bold capital rho\"\n    },\n    {\n      \"name\": \"mbfvarTheta\",\n      \"detail\": \"𝚹\",\n      \"doc\": \"Mathematical bold capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfSigma\",\n      \"detail\": \"𝚺\",\n      \"doc\": \"Mathematical bold capital sigma\"\n    },\n    {\n      \"name\": \"mbfTau\",\n      \"detail\": \"𝚻\",\n      \"doc\": \"Mathematical bold capital tau\"\n    },\n    {\n      \"name\": \"mbfUpsilon\",\n      \"detail\": \"𝚼\",\n      \"doc\": \"Mathematical bold capital upsilon\"\n    },\n    {\n      \"name\": \"mbfPhi\",\n      \"detail\": \"𝚽\",\n      \"doc\": \"Mathematical bold capital phi\"\n    },\n    {\n      \"name\": \"mbfChi\",\n      \"detail\": \"𝚾\",\n      \"doc\": \"Mathematical bold capital chi\"\n    },\n    {\n      \"name\": \"mbfPsi\",\n      \"detail\": \"𝚿\",\n      \"doc\": \"Mathematical bold capital psi\"\n    },\n    {\n      \"name\": \"mbfOmega\",\n      \"detail\": \"𝛀\",\n      \"doc\": \"Mathematical bold capital omega\"\n    },\n    {\n      \"name\": \"mbfnabla\",\n      \"detail\": \"𝛁\",\n      \"doc\": \"Mathematical bold nabla\"\n    },\n    {\n      \"name\": \"mbfalpha\",\n      \"detail\": \"𝛂 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small alpha\"\n    },\n    {\n      \"name\": \"mbfbeta\",\n      \"detail\": \"𝛃 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small beta\"\n    },\n    {\n      \"name\": \"mbfgamma\",\n      \"detail\": \"𝛄 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small gamma\"\n    },\n    {\n      \"name\": \"mbfdelta\",\n      \"detail\": \"𝛅 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small delta\"\n    },\n    {\n      \"name\": \"mbfvarepsilon\",\n      \"detail\": \"𝛜 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfzeta\",\n      \"detail\": \"𝛇 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small zeta\"\n    },\n    {\n      \"name\": \"mbfeta\",\n      \"detail\": \"𝛈 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small eta\"\n    },\n    {\n      \"name\": \"mbftheta\",\n      \"detail\": \"𝛉 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small theta\"\n    },\n    {\n      \"name\": \"mbfiota\",\n      \"detail\": \"𝛊 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small iota\"\n    },\n    {\n      \"name\": \"mbfkappa\",\n      \"detail\": \"𝛋 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small kappa\"\n    },\n    {\n      \"name\": \"mbflambda\",\n      \"detail\": \"𝛌 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small lambda\"\n    },\n    {\n      \"name\": \"mbfmu\",\n      \"detail\": \"𝛍 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small mu\"\n    },\n    {\n      \"name\": \"mbfnu\",\n      \"detail\": \"𝛎 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small nu\"\n    },\n    {\n      \"name\": \"mbfxi\",\n      \"detail\": \"𝛏 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small xi\"\n    },\n    {\n      \"name\": \"mbfomicron\",\n      \"detail\": \"𝛐\",\n      \"doc\": \"Mathematical bold small omicron\"\n    },\n    {\n      \"name\": \"mbfpi\",\n      \"detail\": \"𝛑 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small pi\"\n    },\n    {\n      \"name\": \"mbfrho\",\n      \"detail\": \"𝛒 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small rho\"\n    },\n    {\n      \"name\": \"mbfvarsigma\",\n      \"detail\": \"𝛓 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small final sigma\"\n    },\n    {\n      \"name\": \"mbfsigma\",\n      \"detail\": \"𝛔 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small sigma\"\n    },\n    {\n      \"name\": \"mbftau\",\n      \"detail\": \"𝛕 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small tau\"\n    },\n    {\n      \"name\": \"mbfupsilon\",\n      \"detail\": \"𝛖 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small upsilon\"\n    },\n    {\n      \"name\": \"mbfvarphi\",\n      \"detail\": \"𝛗 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small phi\"\n    },\n    {\n      \"name\": \"mbfchi\",\n      \"detail\": \"𝛘 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small chi\"\n    },\n    {\n      \"name\": \"mbfpsi\",\n      \"detail\": \"𝛙 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small psi\"\n    },\n    {\n      \"name\": \"mbfomega\",\n      \"detail\": \"𝛚 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small omega\"\n    },\n    {\n      \"name\": \"mbfpartial\",\n      \"detail\": \"𝛛\",\n      \"doc\": \"Mathematical bold partial differential\"\n    },\n    {\n      \"name\": \"mbfepsilon\",\n      \"detail\": \"𝛆 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small epsilon\"\n    },\n    {\n      \"name\": \"mbfvartheta\",\n      \"detail\": \"𝛝 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold theta symbol\"\n    },\n    {\n      \"name\": \"mbfvarkappa\",\n      \"detail\": \"𝛞\",\n      \"doc\": \"Mathematical bold kappa symbol\"\n    },\n    {\n      \"name\": \"mbfphi\",\n      \"detail\": \"𝛟 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold phi symbol\"\n    },\n    {\n      \"name\": \"mbfvarrho\",\n      \"detail\": \"𝛠 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold rho symbol\"\n    },\n    {\n      \"name\": \"mbfvarpi\",\n      \"detail\": \"𝛡 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold pi symbol\"\n    },\n    {\n      \"name\": \"mitAlpha\",\n      \"detail\": \"𝛢\",\n      \"doc\": \"Mathematical italic capital alpha\"\n    },\n    {\n      \"name\": \"mitBeta\",\n      \"detail\": \"𝛣\",\n      \"doc\": \"Mathematical italic capital beta\"\n    },\n    {\n      \"name\": \"mitGamma\",\n      \"detail\": \"𝛤 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\gamma} (-fourier), \\\\vargamma (amsmath fourier), mathematical italic capital gamma\"\n    },\n    {\n      \"name\": \"mitDelta\",\n      \"detail\": \"𝛥 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\delta} (-fourier), \\\\vardelta (amsmath fourier), mathematical italic capital delta\"\n    },\n    {\n      \"name\": \"mitEpsilon\",\n      \"detail\": \"𝛦\",\n      \"doc\": \"Mathematical italic capital epsilon\"\n    },\n    {\n      \"name\": \"mitZeta\",\n      \"detail\": \"𝛧\",\n      \"doc\": \"Mathematical italic capital zeta\"\n    },\n    {\n      \"name\": \"mitEta\",\n      \"detail\": \"𝛨\",\n      \"doc\": \"Mathematical italic capital eta\"\n    },\n    {\n      \"name\": \"mitTheta\",\n      \"detail\": \"𝛩 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\theta} (-fourier), \\\\vartheta (amsmath fourier), mathematical italic capital theta\"\n    },\n    {\n      \"name\": \"mitIota\",\n      \"detail\": \"𝛪\",\n      \"doc\": \"Mathematical italic capital iota\"\n    },\n    {\n      \"name\": \"mitKappa\",\n      \"detail\": \"𝛫\",\n      \"doc\": \"Mathematical italic capital kappa\"\n    },\n    {\n      \"name\": \"mitLambda\",\n      \"detail\": \"𝛬 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\lambda} (-fourier), \\\\varlambda (amsmath fourier), mathematical italic capital lambda\"\n    },\n    {\n      \"name\": \"mitMu\",\n      \"detail\": \"𝛭\",\n      \"doc\": \"Mathematical italic capital mu\"\n    },\n    {\n      \"name\": \"mitNu\",\n      \"detail\": \"𝛮\",\n      \"doc\": \"Mathematical italic capital nu\"\n    },\n    {\n      \"name\": \"mitXi\",\n      \"detail\": \"𝛯 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\xi} (-fourier), \\\\varxi (amsmath fourier), mathematical italic capital xi\"\n    },\n    {\n      \"name\": \"mitOmicron\",\n      \"detail\": \"𝛰\",\n      \"doc\": \"Mathematical italic capital omicron\"\n    },\n    {\n      \"name\": \"mitPi\",\n      \"detail\": \"𝛱 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\pi} (-fourier), \\\\varpi (amsmath fourier), mathematical italic capital pi\"\n    },\n    {\n      \"name\": \"mitRho\",\n      \"detail\": \"𝛲\",\n      \"doc\": \"Mathematical italic capital rho\"\n    },\n    {\n      \"name\": \"mitvarTheta\",\n      \"detail\": \"𝛳\",\n      \"doc\": \"Mathematical italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mitSigma\",\n      \"detail\": \"𝛴 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\sigma} (-fourier), \\\\varsigma (amsmath fourier), mathematical italic capital sigma\"\n    },\n    {\n      \"name\": \"mitTau\",\n      \"detail\": \"𝛵\",\n      \"doc\": \"Mathematical italic capital tau\"\n    },\n    {\n      \"name\": \"mitUpsilon\",\n      \"detail\": \"𝛶 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\upsilon} (-fourier), \\\\varupsilon (amsmath fourier), mathematical italic capital upsilon\"\n    },\n    {\n      \"name\": \"mitPhi\",\n      \"detail\": \"𝛷 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\phi} (-fourier), \\\\varphi (amsmath fourier), mathematical italic capital phi\"\n    },\n    {\n      \"name\": \"mitChi\",\n      \"detail\": \"𝛸\",\n      \"doc\": \"Mathematical italic capital chi\"\n    },\n    {\n      \"name\": \"mitPsi\",\n      \"detail\": \"𝛹 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\psi} (-fourier), \\\\varpsi (amsmath fourier), mathematical italic capital psi\"\n    },\n    {\n      \"name\": \"mitOmega\",\n      \"detail\": \"𝛺 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\omega} (-fourier), \\\\varomega (amsmath fourier), mathematical italic capital omega\"\n    },\n    {\n      \"name\": \"mitnabla\",\n      \"detail\": \"𝛻\",\n      \"doc\": \"Mathematical italic nabla\"\n    },\n    {\n      \"name\": \"mitalpha\",\n      \"detail\": \"𝛼\",\n      \"doc\": \"\\\\mathit{\\\\alpha} (omlmathit), mathematical italic small alpha\"\n    },\n    {\n      \"name\": \"mitbeta\",\n      \"detail\": \"𝛽\",\n      \"doc\": \"\\\\mathit{\\\\beta} (omlmathit), mathematical italic small beta\"\n    },\n    {\n      \"name\": \"mitgamma\",\n      \"detail\": \"𝛾\",\n      \"doc\": \"\\\\mathit{\\\\gamma} (omlmathit), mathematical italic small gamma\"\n    },\n    {\n      \"name\": \"mitdelta\",\n      \"detail\": \"𝛿\",\n      \"doc\": \"\\\\mathit{\\\\delta} (omlmathit), mathematical italic small delta\"\n    },\n    {\n      \"name\": \"mitvarepsilon\",\n      \"detail\": \"𝜖\",\n      \"doc\": \"\\\\mathit{\\\\epsilon} (omlmathit), mathematical italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mitzeta\",\n      \"detail\": \"𝜁\",\n      \"doc\": \"\\\\mathit{\\\\zeta} (omlmathit), mathematical italic small zeta\"\n    },\n    {\n      \"name\": \"miteta\",\n      \"detail\": \"𝜂\",\n      \"doc\": \"\\\\mathit{\\\\eta} (omlmathit), mathematical italic small eta\"\n    },\n    {\n      \"name\": \"mittheta\",\n      \"detail\": \"𝜃\",\n      \"doc\": \"\\\\mathit{\\\\theta} (omlmathit), mathematical italic small theta\"\n    },\n    {\n      \"name\": \"mitiota\",\n      \"detail\": \"𝜄\",\n      \"doc\": \"\\\\mathit{\\\\iota} (omlmathit), mathematical italic small iota\"\n    },\n    {\n      \"name\": \"mitkappa\",\n      \"detail\": \"𝜅\",\n      \"doc\": \"\\\\mathit{\\\\kappa} (omlmathit), mathematical italic small kappa\"\n    },\n    {\n      \"name\": \"mitlambda\",\n      \"detail\": \"𝜆\",\n      \"doc\": \"\\\\mathit{\\\\lambda} (omlmathit), mathematical italic small lambda\"\n    },\n    {\n      \"name\": \"mitmu\",\n      \"detail\": \"𝜇\",\n      \"doc\": \"\\\\mathit{\\\\mu} (omlmathit), mathematical italic small mu\"\n    },\n    {\n      \"name\": \"mitnu\",\n      \"detail\": \"𝜈\",\n      \"doc\": \"\\\\mathit{\\\\nu} (omlmathit), mathematical italic small nu\"\n    },\n    {\n      \"name\": \"mitxi\",\n      \"detail\": \"𝜉\",\n      \"doc\": \"\\\\mathit{\\\\xi} (omlmathit), mathematical italic small xi\"\n    },\n    {\n      \"name\": \"mitomicron\",\n      \"detail\": \"𝜊\",\n      \"doc\": \"Mathematical italic small omicron\"\n    },\n    {\n      \"name\": \"mitpi\",\n      \"detail\": \"𝜋\",\n      \"doc\": \"\\\\mathit{\\\\pi} (omlmathit), mathematical italic small pi\"\n    },\n    {\n      \"name\": \"mitrho\",\n      \"detail\": \"𝜌\",\n      \"doc\": \"\\\\mathit{\\\\rho} (omlmathit), mathematical italic small rho\"\n    },\n    {\n      \"name\": \"mitvarsigma\",\n      \"detail\": \"𝜍\",\n      \"doc\": \"\\\\mathit{\\\\varsigma} (omlmathit), mathematical italic small final sigma\"\n    },\n    {\n      \"name\": \"mitsigma\",\n      \"detail\": \"𝜎\",\n      \"doc\": \"\\\\mathit{\\\\sigma} (omlmathit), mathematical italic small sigma\"\n    },\n    {\n      \"name\": \"mittau\",\n      \"detail\": \"𝜏\",\n      \"doc\": \"\\\\mathit{\\\\tau} (omlmathit), mathematical italic small tau\"\n    },\n    {\n      \"name\": \"mitupsilon\",\n      \"detail\": \"𝜐\",\n      \"doc\": \"\\\\mathit{\\\\upsilon} (omlmathit), mathematical italic small upsilon\"\n    },\n    {\n      \"name\": \"mitvarphi\",\n      \"detail\": \"𝜙\",\n      \"doc\": \"\\\\mathit{\\\\phi} (omlmathit), mathematical italic phi symbol\"\n    },\n    {\n      \"name\": \"mitchi\",\n      \"detail\": \"𝜒\",\n      \"doc\": \"\\\\mathit{\\\\chi} (omlmathit), mathematical italic small chi\"\n    },\n    {\n      \"name\": \"mitpsi\",\n      \"detail\": \"𝜓\",\n      \"doc\": \"\\\\mathit{\\\\psi} (omlmathit), mathematical italic small psi\"\n    },\n    {\n      \"name\": \"mitomega\",\n      \"detail\": \"𝜔\",\n      \"doc\": \"\\\\mathit{\\\\omega} (omlmathit), mathematical italic small omega\"\n    },\n    {\n      \"name\": \"mitpartial\",\n      \"detail\": \"𝜕\",\n      \"doc\": \"\\\\mathit{\\\\partial} (omlmathit), mathematical italic partial differential\"\n    },\n    {\n      \"name\": \"mitepsilon\",\n      \"detail\": \"𝜀\",\n      \"doc\": \"\\\\mathit{\\\\varepsilon} (omlmathit), mathematical italic small epsilon\"\n    },\n    {\n      \"name\": \"mitvartheta\",\n      \"detail\": \"𝜗\",\n      \"doc\": \"\\\\mathit{\\\\vartheta} (omlmathit), mathematical italic theta symbol\"\n    },\n    {\n      \"name\": \"mitvarkappa\",\n      \"detail\": \"𝜘 (\\\"amssymb\\\" command)\",\n      \"doc\": \"Mathematical italic kappa symbol\"\n    },\n    {\n      \"name\": \"mitphi\",\n      \"detail\": \"𝜑\",\n      \"doc\": \"\\\\mathit{\\\\varphi} (omlmathit), mathematical italic small phi\"\n    },\n    {\n      \"name\": \"mitvarrho\",\n      \"detail\": \"𝜚\",\n      \"doc\": \"\\\\mathit{\\\\varrho} (omlmathit), mathematical italic rho symbol\"\n    },\n    {\n      \"name\": \"mitvarpi\",\n      \"detail\": \"𝜛\",\n      \"doc\": \"\\\\mathit{\\\\varpi} (omlmathit), mathematical italic pi symbol\"\n    },\n    {\n      \"name\": \"mbfitAlpha\",\n      \"detail\": \"𝜜\",\n      \"doc\": \"Mathematical bold italic capital alpha\"\n    },\n    {\n      \"name\": \"mbfitBeta\",\n      \"detail\": \"𝜝\",\n      \"doc\": \"Mathematical bold italic capital beta\"\n    },\n    {\n      \"name\": \"mbfitGamma\",\n      \"detail\": \"𝜞 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic capital gamma\"\n    },\n    {\n      \"name\": \"mbfitDelta\",\n      \"detail\": \"𝜟 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic capital delta\"\n    },\n    {\n      \"name\": \"mbfitEpsilon\",\n      \"detail\": \"𝜠\",\n      \"doc\": \"Mathematical bold italic capital epsilon\"\n    },\n    {\n      \"name\": \"mbfitZeta\",\n      \"detail\": \"𝜡\",\n      \"doc\": \"Mathematical bold italic capital zeta\"\n    },\n    {\n      \"name\": \"mbfitEta\",\n      \"detail\": \"𝜢\",\n      \"doc\": \"Mathematical bold italic capital eta\"\n    },\n    {\n      \"name\": \"mbfitTheta\",\n      \"detail\": \"𝜣 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic capital theta\"\n    },\n    {\n      \"name\": \"mbfitIota\",\n      \"detail\": \"𝜤\",\n      \"doc\": \"Mathematical bold italic capital iota\"\n    },\n    {\n      \"name\": \"mbfitKappa\",\n      \"detail\": \"𝜥\",\n      \"doc\": \"Mathematical bold italic capital kappa\"\n    },\n    {\n      \"name\": \"mbfitLambda\",\n      \"detail\": \"𝜦 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic capital lambda\"\n    },\n    {\n      \"name\": \"mbfitMu\",\n      \"detail\": \"𝜧\",\n      \"doc\": \"Mathematical bold italic capital mu\"\n    },\n    {\n      \"name\": \"mbfitNu\",\n      \"detail\": \"𝜨\",\n      \"doc\": \"Mathematical bold italic capital nu\"\n    },\n    {\n      \"name\": \"mbfitXi\",\n      \"detail\": \"𝜩 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic capital xi\"\n    },\n    {\n      \"name\": \"mbfitOmicron\",\n      \"detail\": \"𝜪\",\n      \"doc\": \"Mathematical bold italic capital omicron\"\n    },\n    {\n      \"name\": \"mbfitPi\",\n      \"detail\": \"𝜫 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic capital pi\"\n    },\n    {\n      \"name\": \"mbfitRho\",\n      \"detail\": \"𝜬\",\n      \"doc\": \"Mathematical bold italic capital rho\"\n    },\n    {\n      \"name\": \"mbfitvarTheta\",\n      \"detail\": \"𝜭\",\n      \"doc\": \"Mathematical bold italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfitSigma\",\n      \"detail\": \"𝜮 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic capital sigma\"\n    },\n    {\n      \"name\": \"mbfitTau\",\n      \"detail\": \"𝜯\",\n      \"doc\": \"Mathematical bold italic capital tau\"\n    },\n    {\n      \"name\": \"mbfitUpsilon\",\n      \"detail\": \"𝜰 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic capital upsilon\"\n    },\n    {\n      \"name\": \"mbfitPhi\",\n      \"detail\": \"𝜱 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic capital phi\"\n    },\n    {\n      \"name\": \"mbfitChi\",\n      \"detail\": \"𝜲\",\n      \"doc\": \"Mathematical bold italic capital chi\"\n    },\n    {\n      \"name\": \"mbfitPsi\",\n      \"detail\": \"𝜳 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic capital psi\"\n    },\n    {\n      \"name\": \"mbfitOmega\",\n      \"detail\": \"𝜴 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic capital omega\"\n    },\n    {\n      \"name\": \"mbfitnabla\",\n      \"detail\": \"𝜵\",\n      \"doc\": \"Mathematical bold italic nabla\"\n    },\n    {\n      \"name\": \"mbfitalpha\",\n      \"detail\": \"𝜶 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\alpha} (fixmath), mathematical bold italic small alpha\"\n    },\n    {\n      \"name\": \"mbfitbeta\",\n      \"detail\": \"𝜷 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\beta} (fixmath), mathematical bold italic small beta\"\n    },\n    {\n      \"name\": \"mbfitgamma\",\n      \"detail\": \"𝜸 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic small gamma\"\n    },\n    {\n      \"name\": \"mbfitdelta\",\n      \"detail\": \"𝜹 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic small delta\"\n    },\n    {\n      \"name\": \"mbfitvarepsilon\",\n      \"detail\": \"𝝐 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\epsilon} (fixmath), mathematical bold italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfitzeta\",\n      \"detail\": \"𝜻 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\zeta} (fixmath), mathematical bold italic small zeta\"\n    },\n    {\n      \"name\": \"mbfiteta\",\n      \"detail\": \"𝜼 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\eta} (fixmath), mathematical bold italic small eta\"\n    },\n    {\n      \"name\": \"mbfittheta\",\n      \"detail\": \"𝜽 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic small theta\"\n    },\n    {\n      \"name\": \"mbfitiota\",\n      \"detail\": \"𝜾 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\iota} (fixmath), mathematical bold italic small iota\"\n    },\n    {\n      \"name\": \"mbfitkappa\",\n      \"detail\": \"𝜿 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\kappa} (fixmath), mathematical bold italic small kappa\"\n    },\n    {\n      \"name\": \"mbfitlambda\",\n      \"detail\": \"𝝀 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic small lambda\"\n    },\n    {\n      \"name\": \"mbfitmu\",\n      \"detail\": \"𝝁 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\mu} (fixmath), mathematical bold italic small mu\"\n    },\n    {\n      \"name\": \"mbfitnu\",\n      \"detail\": \"𝝂 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\nu} (fixmath), mathematical bold italic small nu\"\n    },\n    {\n      \"name\": \"mbfitxi\",\n      \"detail\": \"𝝃 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic small xi\"\n    },\n    {\n      \"name\": \"mbfitomicron\",\n      \"detail\": \"𝝄\",\n      \"doc\": \"Mathematical bold italic small omicron\"\n    },\n    {\n      \"name\": \"mbfitpi\",\n      \"detail\": \"𝝅 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic small pi\"\n    },\n    {\n      \"name\": \"mbfitrho\",\n      \"detail\": \"𝝆 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\rho} (fixmath), mathematical bold italic small rho\"\n    },\n    {\n      \"name\": \"mbfitvarsigma\",\n      \"detail\": \"𝝇 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varsigma} (fixmath), mathematical bold italic small final sigma\"\n    },\n    {\n      \"name\": \"mbfitsigma\",\n      \"detail\": \"𝝈 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic small sigma\"\n    },\n    {\n      \"name\": \"mbfittau\",\n      \"detail\": \"𝝉 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\tau} (fixmath), mathematical bold italic small tau\"\n    },\n    {\n      \"name\": \"mbfitupsilon\",\n      \"detail\": \"𝝊 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic small upsilon\"\n    },\n    {\n      \"name\": \"mbfitvarphi\",\n      \"detail\": \"𝝓 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic phi symbol\"\n    },\n    {\n      \"name\": \"mbfitchi\",\n      \"detail\": \"𝝌 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\chi} (fixmath), mathematical bold italic small chi\"\n    },\n    {\n      \"name\": \"mbfitpsi\",\n      \"detail\": \"𝝍 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic small psi\"\n    },\n    {\n      \"name\": \"mbfitomega\",\n      \"detail\": \"𝝎 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic small omega\"\n    },\n    {\n      \"name\": \"mbfitpartial\",\n      \"detail\": \"𝝏\",\n      \"doc\": \"Mathematical bold italic partial differential\"\n    },\n    {\n      \"name\": \"mbfitepsilon\",\n      \"detail\": \"𝜺 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varepsilon} (fixmath), mathematical bold italic small epsilon\"\n    },\n    {\n      \"name\": \"mbfitvartheta\",\n      \"detail\": \"𝝑 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\vartheta} (fixmath), mathematical bold italic theta symbol\"\n    },\n    {\n      \"name\": \"mbfitvarkappa\",\n      \"detail\": \"𝝒\",\n      \"doc\": \"Mathematical bold italic kappa symbol\"\n    },\n    {\n      \"name\": \"mbfitphi\",\n      \"detail\": \"𝝋 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varphi} (fixmath), mathematical bold italic small phi\"\n    },\n    {\n      \"name\": \"mbfitvarrho\",\n      \"detail\": \"𝝔 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varrho} (fixmath), mathematical bold italic rho symbol\"\n    },\n    {\n      \"name\": \"mbfitvarpi\",\n      \"detail\": \"𝝕 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varpi} (fixmath), mathematical bold italic pi symbol\"\n    },\n    {\n      \"name\": \"mbfsansAlpha\",\n      \"detail\": \"𝝖\",\n      \"doc\": \"Mathematical sans-serif bold capital alpha\"\n    },\n    {\n      \"name\": \"mbfsansBeta\",\n      \"detail\": \"𝝗\",\n      \"doc\": \"Mathematical sans-serif bold capital beta\"\n    },\n    {\n      \"name\": \"mbfsansGamma\",\n      \"detail\": \"𝝘 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital gamma\"\n    },\n    {\n      \"name\": \"mbfsansDelta\",\n      \"detail\": \"𝝙 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital delta\"\n    },\n    {\n      \"name\": \"mbfsansEpsilon\",\n      \"detail\": \"𝝚\",\n      \"doc\": \"Mathematical sans-serif bold capital epsilon\"\n    },\n    {\n      \"name\": \"mbfsansZeta\",\n      \"detail\": \"𝝛\",\n      \"doc\": \"Mathematical sans-serif bold capital zeta\"\n    },\n    {\n      \"name\": \"mbfsansEta\",\n      \"detail\": \"𝝜\",\n      \"doc\": \"Mathematical sans-serif bold capital eta\"\n    },\n    {\n      \"name\": \"mbfsansTheta\",\n      \"detail\": \"𝝝 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital theta\"\n    },\n    {\n      \"name\": \"mbfsansIota\",\n      \"detail\": \"𝝞\",\n      \"doc\": \"Mathematical sans-serif bold capital iota\"\n    },\n    {\n      \"name\": \"mbfsansKappa\",\n      \"detail\": \"𝝟\",\n      \"doc\": \"Mathematical sans-serif bold capital kappa\"\n    },\n    {\n      \"name\": \"mbfsansLambda\",\n      \"detail\": \"𝝠 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital lambda\"\n    },\n    {\n      \"name\": \"mbfsansMu\",\n      \"detail\": \"𝝡\",\n      \"doc\": \"Mathematical sans-serif bold capital mu\"\n    },\n    {\n      \"name\": \"mbfsansNu\",\n      \"detail\": \"𝝢\",\n      \"doc\": \"Mathematical sans-serif bold capital nu\"\n    },\n    {\n      \"name\": \"mbfsansXi\",\n      \"detail\": \"𝝣 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital xi\"\n    },\n    {\n      \"name\": \"mbfsansOmicron\",\n      \"detail\": \"𝝤\",\n      \"doc\": \"Mathematical sans-serif bold capital omicron\"\n    },\n    {\n      \"name\": \"mbfsansPi\",\n      \"detail\": \"𝝥 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital pi\"\n    },\n    {\n      \"name\": \"mbfsansRho\",\n      \"detail\": \"𝝦\",\n      \"doc\": \"Mathematical sans-serif bold capital rho\"\n    },\n    {\n      \"name\": \"mbfsansvarTheta\",\n      \"detail\": \"𝝧\",\n      \"doc\": \"Mathematical sans-serif bold capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfsansSigma\",\n      \"detail\": \"𝝨 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital sigma\"\n    },\n    {\n      \"name\": \"mbfsansTau\",\n      \"detail\": \"𝝩\",\n      \"doc\": \"Mathematical sans-serif bold capital tau\"\n    },\n    {\n      \"name\": \"mbfsansUpsilon\",\n      \"detail\": \"𝝪 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital upsilon\"\n    },\n    {\n      \"name\": \"mbfsansPhi\",\n      \"detail\": \"𝝫 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital phi\"\n    },\n    {\n      \"name\": \"mbfsansChi\",\n      \"detail\": \"𝝬\",\n      \"doc\": \"Mathematical sans-serif bold capital chi\"\n    },\n    {\n      \"name\": \"mbfsansPsi\",\n      \"detail\": \"𝝭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital psi\"\n    },\n    {\n      \"name\": \"mbfsansOmega\",\n      \"detail\": \"𝝮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital omega\"\n    },\n    {\n      \"name\": \"mbfsansnabla\",\n      \"detail\": \"𝝯\",\n      \"doc\": \"Mathematical sans-serif bold nabla\"\n    },\n    {\n      \"name\": \"mbfsansalpha\",\n      \"detail\": \"𝝰 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small alpha\"\n    },\n    {\n      \"name\": \"mbfsansbeta\",\n      \"detail\": \"𝝱 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small beta\"\n    },\n    {\n      \"name\": \"mbfsansgamma\",\n      \"detail\": \"𝝲 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small gamma\"\n    },\n    {\n      \"name\": \"mbfsansdelta\",\n      \"detail\": \"𝝳 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small delta\"\n    },\n    {\n      \"name\": \"mbfsansvarepsilon\",\n      \"detail\": \"𝞊 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfsanszeta\",\n      \"detail\": \"𝝵 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small zeta\"\n    },\n    {\n      \"name\": \"mbfsanseta\",\n      \"detail\": \"𝝶 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small eta\"\n    },\n    {\n      \"name\": \"mbfsanstheta\",\n      \"detail\": \"𝝷 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small theta\"\n    },\n    {\n      \"name\": \"mbfsansiota\",\n      \"detail\": \"𝝸 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small iota\"\n    },\n    {\n      \"name\": \"mbfsanskappa\",\n      \"detail\": \"𝝹 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small kappa\"\n    },\n    {\n      \"name\": \"mbfsanslambda\",\n      \"detail\": \"𝝺 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small lambda\"\n    },\n    {\n      \"name\": \"mbfsansmu\",\n      \"detail\": \"𝝻 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small mu\"\n    },\n    {\n      \"name\": \"mbfsansnu\",\n      \"detail\": \"𝝼 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small nu\"\n    },\n    {\n      \"name\": \"mbfsansxi\",\n      \"detail\": \"𝝽 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small xi\"\n    },\n    {\n      \"name\": \"mbfsansomicron\",\n      \"detail\": \"𝝾\",\n      \"doc\": \"Mathematical sans-serif bold small omicron\"\n    },\n    {\n      \"name\": \"mbfsanspi\",\n      \"detail\": \"𝝿 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small pi\"\n    },\n    {\n      \"name\": \"mbfsansrho\",\n      \"detail\": \"𝞀 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small rho\"\n    },\n    {\n      \"name\": \"mbfsansvarsigma\",\n      \"detail\": \"𝞁 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small final sigma\"\n    },\n    {\n      \"name\": \"mbfsanssigma\",\n      \"detail\": \"𝞂 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small sigma\"\n    },\n    {\n      \"name\": \"mbfsanstau\",\n      \"detail\": \"𝞃 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small tau\"\n    },\n    {\n      \"name\": \"mbfsansupsilon\",\n      \"detail\": \"𝞄 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small upsilon\"\n    },\n    {\n      \"name\": \"mbfsansvarphi\",\n      \"detail\": \"𝞍 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold phi symbol\"\n    },\n    {\n      \"name\": \"mbfsanschi\",\n      \"detail\": \"𝞆 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small chi\"\n    },\n    {\n      \"name\": \"mbfsanspsi\",\n      \"detail\": \"𝞇 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small psi\"\n    },\n    {\n      \"name\": \"mbfsansomega\",\n      \"detail\": \"𝞈 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small omega\"\n    },\n    {\n      \"name\": \"mbfsanspartial\",\n      \"detail\": \"𝞉\",\n      \"doc\": \"Mathematical sans-serif bold partial differential\"\n    },\n    {\n      \"name\": \"mbfsansepsilon\",\n      \"detail\": \"𝝴 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small epsilon\"\n    },\n    {\n      \"name\": \"mbfsansvartheta\",\n      \"detail\": \"𝞋 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold theta symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarkappa\",\n      \"detail\": \"𝞌\",\n      \"doc\": \"Mathematical sans-serif bold kappa symbol\"\n    },\n    {\n      \"name\": \"mbfsansphi\",\n      \"detail\": \"𝞅 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small phi\"\n    },\n    {\n      \"name\": \"mbfsansvarrho\",\n      \"detail\": \"𝞎 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold rho symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarpi\",\n      \"detail\": \"𝞏 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold pi symbol\"\n    },\n    {\n      \"name\": \"mbfitsansAlpha\",\n      \"detail\": \"𝞐\",\n      \"doc\": \"Mathematical sans-serif bold italic capital alpha\"\n    },\n    {\n      \"name\": \"mbfitsansBeta\",\n      \"detail\": \"𝞑\",\n      \"doc\": \"Mathematical sans-serif bold italic capital beta\"\n    },\n    {\n      \"name\": \"mbfitsansGamma\",\n      \"detail\": \"𝞒 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital gamma\"\n    },\n    {\n      \"name\": \"mbfitsansDelta\",\n      \"detail\": \"𝞓 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital delta\"\n    },\n    {\n      \"name\": \"mbfitsansEpsilon\",\n      \"detail\": \"𝞔\",\n      \"doc\": \"Mathematical sans-serif bold italic capital epsilon\"\n    },\n    {\n      \"name\": \"mbfitsansZeta\",\n      \"detail\": \"𝞕\",\n      \"doc\": \"Mathematical sans-serif bold italic capital zeta\"\n    },\n    {\n      \"name\": \"mbfitsansEta\",\n      \"detail\": \"𝞖\",\n      \"doc\": \"Mathematical sans-serif bold italic capital eta\"\n    },\n    {\n      \"name\": \"mbfitsansTheta\",\n      \"detail\": \"𝞗 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital theta\"\n    },\n    {\n      \"name\": \"mbfitsansIota\",\n      \"detail\": \"𝞘\",\n      \"doc\": \"Mathematical sans-serif bold italic capital iota\"\n    },\n    {\n      \"name\": \"mbfitsansKappa\",\n      \"detail\": \"𝞙\",\n      \"doc\": \"Mathematical sans-serif bold italic capital kappa\"\n    },\n    {\n      \"name\": \"mbfitsansLambda\",\n      \"detail\": \"𝞚 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital lambda\"\n    },\n    {\n      \"name\": \"mbfitsansMu\",\n      \"detail\": \"𝞛\",\n      \"doc\": \"Mathematical sans-serif bold italic capital mu\"\n    },\n    {\n      \"name\": \"mbfitsansNu\",\n      \"detail\": \"𝞜\",\n      \"doc\": \"Mathematical sans-serif bold italic capital nu\"\n    },\n    {\n      \"name\": \"mbfitsansXi\",\n      \"detail\": \"𝞝 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital xi\"\n    },\n    {\n      \"name\": \"mbfitsansOmicron\",\n      \"detail\": \"𝞞\",\n      \"doc\": \"Mathematical sans-serif bold italic capital omicron\"\n    },\n    {\n      \"name\": \"mbfitsansPi\",\n      \"detail\": \"𝞟 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital pi\"\n    },\n    {\n      \"name\": \"mbfitsansRho\",\n      \"detail\": \"𝞠\",\n      \"doc\": \"Mathematical sans-serif bold italic capital rho\"\n    },\n    {\n      \"name\": \"mbfitsansvarTheta\",\n      \"detail\": \"𝞡\",\n      \"doc\": \"Mathematical sans-serif bold italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfitsansSigma\",\n      \"detail\": \"𝞢 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital sigma\"\n    },\n    {\n      \"name\": \"mbfitsansTau\",\n      \"detail\": \"𝞣\",\n      \"doc\": \"Mathematical sans-serif bold italic capital tau\"\n    },\n    {\n      \"name\": \"mbfitsansUpsilon\",\n      \"detail\": \"𝞤 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital upsilon\"\n    },\n    {\n      \"name\": \"mbfitsansPhi\",\n      \"detail\": \"𝞥 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital phi\"\n    },\n    {\n      \"name\": \"mbfitsansChi\",\n      \"detail\": \"𝞦\",\n      \"doc\": \"Mathematical sans-serif bold italic capital chi\"\n    },\n    {\n      \"name\": \"mbfitsansPsi\",\n      \"detail\": \"𝞧 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital psi\"\n    },\n    {\n      \"name\": \"mbfitsansOmega\",\n      \"detail\": \"𝞨 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital omega\"\n    },\n    {\n      \"name\": \"mbfitsansnabla\",\n      \"detail\": \"𝞩\",\n      \"doc\": \"Mathematical sans-serif bold italic nabla\"\n    },\n    {\n      \"name\": \"mbfitsansalpha\",\n      \"detail\": \"𝞪 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small alpha\"\n    },\n    {\n      \"name\": \"mbfitsansbeta\",\n      \"detail\": \"𝞫 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small beta\"\n    },\n    {\n      \"name\": \"mbfitsansgamma\",\n      \"detail\": \"𝞬 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small gamma\"\n    },\n    {\n      \"name\": \"mbfitsansdelta\",\n      \"detail\": \"𝞭 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small delta\"\n    },\n    {\n      \"name\": \"mbfitsansvarepsilon\",\n      \"detail\": \"𝟄 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfitsanszeta\",\n      \"detail\": \"𝞯 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small zeta\"\n    },\n    {\n      \"name\": \"mbfitsanseta\",\n      \"detail\": \"𝞰 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small eta\"\n    },\n    {\n      \"name\": \"mbfitsanstheta\",\n      \"detail\": \"𝞱 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small theta\"\n    },\n    {\n      \"name\": \"mbfitsansiota\",\n      \"detail\": \"𝞲 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small iota\"\n    },\n    {\n      \"name\": \"mbfitsanskappa\",\n      \"detail\": \"𝞳 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small kappa\"\n    },\n    {\n      \"name\": \"mbfitsanslambda\",\n      \"detail\": \"𝞴 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small lambda\"\n    },\n    {\n      \"name\": \"mbfitsansmu\",\n      \"detail\": \"𝞵 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small mu\"\n    },\n    {\n      \"name\": \"mbfitsansnu\",\n      \"detail\": \"𝞶 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small nu\"\n    },\n    {\n      \"name\": \"mbfitsansxi\",\n      \"detail\": \"𝞷 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small xi\"\n    },\n    {\n      \"name\": \"mbfitsansomicron\",\n      \"detail\": \"𝞸\",\n      \"doc\": \"Mathematical sans-serif bold italic small omicron\"\n    },\n    {\n      \"name\": \"mbfitsanspi\",\n      \"detail\": \"𝞹 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small pi\"\n    },\n    {\n      \"name\": \"mbfitsansrho\",\n      \"detail\": \"𝞺 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small rho\"\n    },\n    {\n      \"name\": \"mbfitsansvarsigma\",\n      \"detail\": \"𝞻 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small final sigma\"\n    },\n    {\n      \"name\": \"mbfitsanssigma\",\n      \"detail\": \"𝞼 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small sigma\"\n    },\n    {\n      \"name\": \"mbfitsanstau\",\n      \"detail\": \"𝞽 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small tau\"\n    },\n    {\n      \"name\": \"mbfitsansupsilon\",\n      \"detail\": \"𝞾 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small upsilon\"\n    },\n    {\n      \"name\": \"mbfitsansvarphi\",\n      \"detail\": \"𝟇 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic phi symbol\"\n    },\n    {\n      \"name\": \"mbfitsanschi\",\n      \"detail\": \"𝟀 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small chi\"\n    },\n    {\n      \"name\": \"mbfitsanspsi\",\n      \"detail\": \"𝟁 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small psi\"\n    },\n    {\n      \"name\": \"mbfitsansomega\",\n      \"detail\": \"𝟂 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small omega\"\n    },\n    {\n      \"name\": \"mbfitsanspartial\",\n      \"detail\": \"𝟃\",\n      \"doc\": \"Mathematical sans-serif bold italic partial differential\"\n    },\n    {\n      \"name\": \"mbfitsansepsilon\",\n      \"detail\": \"𝞮 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small epsilon\"\n    },\n    {\n      \"name\": \"mbfitsansvartheta\",\n      \"detail\": \"𝟅 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic theta symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarkappa\",\n      \"detail\": \"𝟆\",\n      \"doc\": \"Mathematical sans-serif bold italic kappa symbol\"\n    },\n    {\n      \"name\": \"mbfitsansphi\",\n      \"detail\": \"𝞿 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small phi\"\n    },\n    {\n      \"name\": \"mbfitsansvarrho\",\n      \"detail\": \"𝟈 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic rho symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarpi\",\n      \"detail\": \"𝟉 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic pi symbol\"\n    },\n    {\n      \"name\": \"mbfzero\"\n    },\n    {\n      \"name\": \"mbfone\"\n    },\n    {\n      \"name\": \"mbftwo\"\n    },\n    {\n      \"name\": \"mbfthree\"\n    },\n    {\n      \"name\": \"mbffour\"\n    },\n    {\n      \"name\": \"mbffive\"\n    },\n    {\n      \"name\": \"mbfsix\"\n    },\n    {\n      \"name\": \"mbfseven\"\n    },\n    {\n      \"name\": \"mbfeight\"\n    },\n    {\n      \"name\": \"mbfnine\"\n    },\n    {\n      \"name\": \"Bbbzero\",\n      \"detail\": \"𝟘 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 0\"\n    },\n    {\n      \"name\": \"Bbbone\",\n      \"detail\": \"𝟙 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\mathds{1} (dsfont), mathematical double-struck digit 1\"\n    },\n    {\n      \"name\": \"Bbbtwo\",\n      \"detail\": \"𝟚 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 2\"\n    },\n    {\n      \"name\": \"Bbbthree\",\n      \"detail\": \"𝟛 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 3\"\n    },\n    {\n      \"name\": \"Bbbfour\",\n      \"detail\": \"𝟜 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 4\"\n    },\n    {\n      \"name\": \"Bbbfive\",\n      \"detail\": \"𝟝 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 5\"\n    },\n    {\n      \"name\": \"Bbbsix\",\n      \"detail\": \"𝟞 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 6\"\n    },\n    {\n      \"name\": \"Bbbseven\",\n      \"detail\": \"𝟟 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 7\"\n    },\n    {\n      \"name\": \"Bbbeight\",\n      \"detail\": \"𝟠 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 8\"\n    },\n    {\n      \"name\": \"Bbbnine\",\n      \"detail\": \"𝟡 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 9\"\n    },\n    {\n      \"name\": \"msanszero\",\n      \"detail\": \"𝟢\",\n      \"doc\": \"Mathematical sans-serif digit 0\"\n    },\n    {\n      \"name\": \"msansone\",\n      \"detail\": \"𝟣\",\n      \"doc\": \"Mathematical sans-serif digit 1\"\n    },\n    {\n      \"name\": \"msanstwo\",\n      \"detail\": \"𝟤\",\n      \"doc\": \"Mathematical sans-serif digit 2\"\n    },\n    {\n      \"name\": \"msansthree\",\n      \"detail\": \"𝟥\",\n      \"doc\": \"Mathematical sans-serif digit 3\"\n    },\n    {\n      \"name\": \"msansfour\",\n      \"detail\": \"𝟦\",\n      \"doc\": \"Mathematical sans-serif digit 4\"\n    },\n    {\n      \"name\": \"msansfive\",\n      \"detail\": \"𝟧\",\n      \"doc\": \"Mathematical sans-serif digit 5\"\n    },\n    {\n      \"name\": \"msanssix\",\n      \"detail\": \"𝟨\",\n      \"doc\": \"Mathematical sans-serif digit 6\"\n    },\n    {\n      \"name\": \"msansseven\",\n      \"detail\": \"𝟩\",\n      \"doc\": \"Mathematical sans-serif digit 7\"\n    },\n    {\n      \"name\": \"msanseight\",\n      \"detail\": \"𝟪\",\n      \"doc\": \"Mathematical sans-serif digit 8\"\n    },\n    {\n      \"name\": \"msansnine\",\n      \"detail\": \"𝟫\",\n      \"doc\": \"Mathematical sans-serif digit 9\"\n    },\n    {\n      \"name\": \"mbfsanszero\",\n      \"detail\": \"𝟬 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 0\"\n    },\n    {\n      \"name\": \"mbfsansone\",\n      \"detail\": \"𝟭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 1\"\n    },\n    {\n      \"name\": \"mbfsanstwo\",\n      \"detail\": \"𝟮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 2\"\n    },\n    {\n      \"name\": \"mbfsansthree\",\n      \"detail\": \"𝟯 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 3\"\n    },\n    {\n      \"name\": \"mbfsansfour\",\n      \"detail\": \"𝟰 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 4\"\n    },\n    {\n      \"name\": \"mbfsansfive\",\n      \"detail\": \"𝟱 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 5\"\n    },\n    {\n      \"name\": \"mbfsanssix\",\n      \"detail\": \"𝟲 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 6\"\n    },\n    {\n      \"name\": \"mbfsansseven\",\n      \"detail\": \"𝟳 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 7\"\n    },\n    {\n      \"name\": \"mbfsanseight\",\n      \"detail\": \"𝟴 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 8\"\n    },\n    {\n      \"name\": \"mbfsansnine\",\n      \"detail\": \"𝟵 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 9\"\n    },\n    {\n      \"name\": \"mttzero\",\n      \"detail\": \"𝟶\",\n      \"doc\": \"Mathematical monospace digit 0\"\n    },\n    {\n      \"name\": \"mttone\",\n      \"detail\": \"𝟷\",\n      \"doc\": \"Mathematical monospace digit 1\"\n    },\n    {\n      \"name\": \"mtttwo\",\n      \"detail\": \"𝟸\",\n      \"doc\": \"Mathematical monospace digit 2\"\n    },\n    {\n      \"name\": \"mttthree\",\n      \"detail\": \"𝟹\",\n      \"doc\": \"Mathematical monospace digit 3\"\n    },\n    {\n      \"name\": \"mttfour\",\n      \"detail\": \"𝟺\",\n      \"doc\": \"Mathematical monospace digit 4\"\n    },\n    {\n      \"name\": \"mttfive\",\n      \"detail\": \"𝟻\",\n      \"doc\": \"Mathematical monospace digit 5\"\n    },\n    {\n      \"name\": \"mttsix\",\n      \"detail\": \"𝟼\",\n      \"doc\": \"Mathematical monospace digit 6\"\n    },\n    {\n      \"name\": \"mttseven\",\n      \"detail\": \"𝟽\",\n      \"doc\": \"Mathematical monospace digit 7\"\n    },\n    {\n      \"name\": \"mtteight\",\n      \"detail\": \"𝟾\",\n      \"doc\": \"Mathematical monospace digit 8\"\n    },\n    {\n      \"name\": \"mttnine\",\n      \"detail\": \"𝟿\",\n      \"doc\": \"Mathematical monospace digit 9\"\n    },\n    {\n      \"name\": \"AntiqueWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AntiqueWhiteB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AntiqueWhiteC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AntiqueWhiteD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aquamarine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AquamarineB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AquamarineC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AquamarineD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AzureB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AzureC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AzureD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bisque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BisqueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BisqueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BisqueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BrownB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BrownC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BrownD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Burlywood\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BurlywoodB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BurlywoodC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BurlywoodD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CadetBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CadetBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CadetBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CadetBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chartreuse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChartreuseB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChartreuseC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChartreuseD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chocolate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChocolateB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChocolateC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChocolateD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Coral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoralB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoralC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CoralD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cornsilk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CornsilkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CornsilkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CornsilkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cyan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CyanB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CyanC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CyanD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkGoldenrod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkGoldenrodB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkGoldenrodC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkGoldenrodD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOliveGreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOliveGreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOliveGreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOliveGreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrangeB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrangeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrangeD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrchid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrchidB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrchidC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkOrchidD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSeaGreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSeaGreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSeaGreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSeaGreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSlateGray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSlateGrayB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSlateGrayC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DarkSlateGrayD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepPink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepPinkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepPinkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepPinkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepSkyBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepSkyBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepSkyBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeepSkyBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DodgerBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DodgerBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DodgerBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DodgerBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Firebrick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirebrickB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirebrickC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirebrickD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Goldenrod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldenrodB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldenrodC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GoldenrodD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Green\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Honeydew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HoneydewB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HoneydewC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HoneydewD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HotPink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HotPinkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HotPinkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HotPinkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndianRed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndianRedB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndianRedC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndianRedD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ivory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IvoryB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IvoryC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IvoryD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Khaki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KhakiB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KhakiC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KhakiD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LavenderBlush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LavenderBlushB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LavenderBlushC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LavenderBlushD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LemonChiffon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LemonChiffonB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LemonChiffonC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LemonChiffonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightCyan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightCyanB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightCyanC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightCyanD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightGoldenrod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightGoldenrodB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightGoldenrodC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightGoldenrodD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightPink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightPinkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightPinkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightPinkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSalmon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSalmonB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSalmonC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSalmonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSkyBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSkyBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSkyBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSkyBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSteelBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSteelBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSteelBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightSteelBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightYellow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightYellowB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightYellowC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LightYellowD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Magenta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MagentaB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MagentaC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MagentaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Maroon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaroonB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaroonC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MaroonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumOrchid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumOrchidB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumOrchidC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumOrchidD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumPurple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumPurpleB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumPurpleC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MediumPurpleD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MistyRose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MistyRoseB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MistyRoseC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MistyRoseD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NavajoWhite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NavajoWhiteB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NavajoWhiteC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NavajoWhiteD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OliveDrab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OliveDrabB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OliveDrabC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OliveDrabD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Orange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeRed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeRedB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeRedC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrangeRedD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Orchid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrchidB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrchidC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrchidD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleGreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleGreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleGreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleGreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleTurquoise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleTurquoiseB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleTurquoiseC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleTurquoiseD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleVioletRed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleVioletRedB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleVioletRedC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PaleVioletRedD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PeachPuff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PeachPuffB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PeachPuffC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PeachPuffD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PinkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PinkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PinkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Plum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PlumB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PlumC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PlumD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Purple\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PurpleB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PurpleC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PurpleD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Red\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RosyBrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RosyBrownB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RosyBrownC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RosyBrownD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RoyalBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RoyalBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RoyalBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RoyalBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Salmon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SalmonB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SalmonC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SalmonD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeaGreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeaGreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeaGreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeaGreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Seashell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeashellB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeashellC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SeashellD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sienna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SiennaB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SiennaC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SiennaD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkyBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkyBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkyBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SkyBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateGray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateGrayB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateGrayC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlateGrayD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Snow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnowB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnowC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SnowD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpringGreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpringGreenB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpringGreenC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpringGreenD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SteelBlue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SteelBlueB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SteelBlueC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SteelBlueD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TanB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TanC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TanD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thistle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThistleB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThistleC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThistleD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tomato\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TomatoB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TomatoC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TomatoD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Turquoise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TurquoiseB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TurquoiseC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TurquoiseD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VioletRed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VioletRedB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VioletRedC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VioletRedD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Wheat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WheatB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WheatC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WheatD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yellow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YellowB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YellowC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YellowD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Green\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Maroon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Purple\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mathset\": [\n      \"dots\",\n      \"interval\",\n      \"vert\",\n      \"rmsbsp\",\n      \"bfserif\",\n      \"flexipa\",\n      \"rmchars={${1:list}}\",\n      \"vargreek={${1:list}}\",\n      \"text={${1:list}}\",\n      \"mstyle=${1:style}\",\n      \"bstyle=${1:style}\",\n      \"enablefic\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/optidef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"xifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addConstraint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addConstraint{${1:left}}\"\n      }\n    },\n    {\n      \"name\": \"addConstraint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addConstraint{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"addConstraint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addConstraint{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"labelOP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelOP{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"breakObjective\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"breakObjective{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"defaultConstraintFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultOCPConstraint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultProblemFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"equalsNothing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"equalsNothing{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"spanit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodySubjectTo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BelowAddConstraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BelowAddConstraint{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"BelowAddConstraintMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BelowAddConstraintMult{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"oneAlignAddConstraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oneAlignAddConstraint{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"oneAlignBelowAddConstraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oneAlignBelowAddConstraint{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"oneAlignBelowAddConstraintMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oneAlignBelowAddConstraintMult{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"standardAddConstraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"standardAddConstraint{${1:left}}{${2:right}}{${3:extra}}\"\n      }\n    },\n    {\n      \"name\": \"selectConstraint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectConstraint{${1:constraint format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"selectConstraintMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectConstraintMult{${1:constraint format%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setStandardMini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFormatShort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFormatShort{${1:problem type}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setFormatLong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setFormatLong{${1:problem type}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"localProblemFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localOptimalVariable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localProblemType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyBreakObjectiveDefinition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyBreakObjective\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widthInit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyobjLong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bodyobjLong{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"bodyobjShort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bodyobjShort{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"bodyobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bodyobj{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstBelowMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstBelowMult{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstBelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstBelow{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstOneAlignBelowMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstOneAlignBelowMult{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstOneAlignBelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstOneAlignBelow{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstOneAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstOneAlign{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconstRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconstRight{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodyconst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bodyconst{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"bodySubjectToDefinition\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mini\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"mini\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\",\n        \"keys\": [\n          \"\\\\begin{mini}#c,\\\\begin{mini*}#c,\\\\begin{mini!}#c,\\\\begin{maxi}#c,\\\\begin{maxi*}#c,\\\\begin{maxi!}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mini*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"mini*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\",\n        \"keys\": [\n          \"\\\\begin{mini}#c,\\\\begin{mini*}#c,\\\\begin{mini!}#c,\\\\begin{maxi}#c,\\\\begin{maxi*}#c,\\\\begin{maxi!}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"minie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"minie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"maxi\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"maxi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\",\n        \"keys\": [\n          \"\\\\begin{mini}#c,\\\\begin{mini*}#c,\\\\begin{mini!}#c,\\\\begin{maxi}#c,\\\\begin{maxi*}#c,\\\\begin{maxi!}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxi*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"maxi*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\",\n        \"keys\": [\n          \"\\\\begin{mini}#c,\\\\begin{mini*}#c,\\\\begin{mini!}#c,\\\\begin{maxi}#c,\\\\begin{maxi*}#c,\\\\begin{maxi!}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maxie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"maxie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmini\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmini\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmini*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmini*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argminie\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argminie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxi\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxi*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxi*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    },\n    {\n      \"name\": \"argmaxie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:constraint format%keyvals}]{${1:variable}}{${2:function}}{${3:label code}}{${4:result}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/optidef#c\": [\n      \"short\",\n      \"long\",\n      \"nocomma\",\n      \"c1\",\n      \"c2\",\n      \"c3\"\n    ],\n    \"\\\\begin{mini}#c,\\\\begin{mini*}#c,\\\\begin{mini!}#c,\\\\begin{maxi}#c,\\\\begin{maxi*}#c,\\\\begin{maxi!}#c\": [\n      \"0\",\n      \"1\",\n      \"2\",\n      \"3\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/optidef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/optional.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opt{${1:option}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"optv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optv{${1:option}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"AskOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseOption\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/options.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"options\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"options{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"optionsalso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionsalso{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"optionswithremaining\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionswithremaining{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"option\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"option{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"letoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letoption{${1:option}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"edefoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edefoption{${1:option}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptiondefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptiondefined{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptionvoid{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptionblank{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifoptionequal{${1:option}}{${2:value}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionanyof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifoptionanyof{${1:option}}{${2:list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptiontype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifoptiontype{${1:option}}{${2:type}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionnil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptionnil{${1:list option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptioniscode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptioniscode{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"optionlistdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionlistdo{${1:list option}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"letoptionlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letoptionlist{${1:list option}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptioncontains\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptioncontains{${1:list option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"optionshow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionshow{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionshowall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionshowall\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"optionshowall[${1:bool}]\"\n      }\n    },\n    {\n      \"name\": \"optionshowpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionshowpath{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionerror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionerror{${1:option}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"optionwarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionwarning{${1:option}}{${2:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"letoptiontype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letoptiontype{${1:option}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"optionname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionname{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionprependcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionprependcode{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optionnewcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionnewcode{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optionnewcode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionnewcode*{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optionnewhandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionnewhandler{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optionnewhandler*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optionnewhandler*{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optionvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionnovalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eifblank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eifblank{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"eifstrequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"eifstrequal{${1:string}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"expandnextcmds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandnextcmds{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"expandnextsingle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandnextsingle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"expandnext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expandnext{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptioncmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptioncmd{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptioncolortransparent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptioncolortransparent{${1:color}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoptionisabsolute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifoptionisabsolute{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"letoptionchoices\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"letoptionchoices{${1:option}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ontoggle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ontoggle{${1:toggle name}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"optioncolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optioncolorbox{${1:color}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optioncolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optioncolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"optionlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionlist{${1:list option}}\"\n      }\n    },\n    {\n      \"name\": \"optionparamcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionparamcount{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionshowtype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionshowtype{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optiontextcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optiontextcolor{${1:color}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"optiontypeout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optiontypeout{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optionunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionunit{${1:option}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/options#c\": [\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/options#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/optparams.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"optparams\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"optparams{${1:macro}}{${2:[${3:param1}][${4:param2}]...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/orcidlink.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"orcidlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcidlink{${1:orcid%URL}}\"\n      }\n    },\n    {\n      \"name\": \"orcidlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orcidlinkf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcidlinkf{${1:orcid%URL}}\"\n      }\n    },\n    {\n      \"name\": \"orcidlinkc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orcidlinkc{${1:orcid%URL}}\"\n      }\n    },\n    {\n      \"name\": \"orcidlinki\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"orcidlinki{${1:name}}{${2:orcid%URL}}\"\n      }\n    },\n    {\n      \"name\": \"orcidlinkX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"orcidlinkX{${1:before}}{${2:orcid%URL}}{${3:after}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ordinalpt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ORDPTFEM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORDPTFEM{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ORDPTMASC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ORDPTMASC{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordptfem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordptfem{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordptmasc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordptmasc{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordptfem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordptfem{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordptmasc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordptmasc{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ordinalpt#c\": [\n      \"11-12-curtos\",\n      \"11-13-curtos\",\n      \"11-13-longos\",\n      \"tricentesimo\",\n      \"trecentesimo\",\n      \"sexcentesimo\",\n      \"seiscentesimo\",\n      \"noningentesimo\",\n      \"nongentesimo\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ordinalpt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/orientation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"everypage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setportrait\"\n    },\n    {\n      \"name\": \"setlandscape\"\n    },\n    {\n      \"name\": \"setupsidedown\"\n    },\n    {\n      \"name\": \"setcounterlandscape\"\n    },\n    {\n      \"name\": \"thispageportrait\"\n    },\n    {\n      \"name\": \"thispagelandscape\"\n    },\n    {\n      \"name\": \"thispageupsidedown\"\n    },\n    {\n      \"name\": \"thispagecounterlandscape\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/osda.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"flushend\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"osdafootnote\"\n    },\n    {\n      \"name\": \"osdafootnote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"osdafootnote[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/osda#c,\\\\osdafootnote#c,\\\\osdanotice#c,\\\\osdaset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"osdanotice\"\n    },\n    {\n      \"name\": \"osdanotice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"osdanotice[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/osda#c,\\\\osdafootnote#c,\\\\osdanotice#c,\\\\osdaset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"osdaset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"osdaset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/osda#c,\\\\osdafootnote#c,\\\\osdanotice#c,\\\\osdaset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/osda#c,\\\\osdafootnote#c,\\\\osdanotice#c,\\\\osdaset#c\": [\n      \"auto\",\n      \"${1:year}\",\n      \"cc-by\",\n      \"cc-by-sa\",\n      \"cc-by-nc-sa\",\n      \"cc-by-nc-nd\",\n      \"arXiv\",\n      \"cc0\",\n      \"paper/url=${1:URL}\",\n      \"paper/doi=${1:DOI}\",\n      \"url=${1:URL}\",\n      \"doi=${1:DOI}\",\n      \"license/long=${1:long name}\",\n      \"license/short=${1:short name}\",\n      \"license/version=${1:version}\",\n      \"license/url=${1:URL}\",\n      \"proceedings/title=${1:title}\",\n      \"proceedings/startpage=${1:number}\",\n      \"proceedings/endpage=${1:number}\",\n      \"pages={${1:startpage}}{${2:endpage}}\",\n      \"workshop/counter=${1:number}\",\n      \"workshop/longname=${1:name}\",\n      \"workshop/acronym=${1:acronym}\",\n      \"location/city=${1:city}\",\n      \"location/country=${1:country}\",\n      \"date/month=${1:month}\",\n      \"date/day=${1:day}\",\n      \"date/year=${1:year}\",\n      \"hostconference/longname=${1:name}\",\n      \"hostconference/acronym=${1:acronym}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/osda#c,\\\\osdafootnote#c,\\\\osdanotice#c,\\\\osdaset#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ot-tableau.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"bbding\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"arydshln\"\n    },\n    {\n      \"name\": \"hhline\",\n      \"if\": \"usehhline\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inp{${1:input%text}}\"\n      }\n    },\n    {\n      \"name\": \"ips\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ips{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"const\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"const{${1:constraint%text}}\"\n      }\n    },\n    {\n      \"name\": \"const*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"const*{${1:constraint%text}}\"\n      }\n    },\n    {\n      \"name\": \"cand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cand{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"cand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cand[${2:symbol}]{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"cand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cand*{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"cand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cand*[${2:symbol}]{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"vio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vio{${1:violation%text}}\"\n      }\n    },\n    {\n      \"name\": \"vio*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vio*{${1:violation%text}}\"\n      }\n    },\n    {\n      \"name\": \"SetCellShading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCellShading{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"Optimal\"\n    },\n    {\n      \"name\": \"OptimalMarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ViolationMarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CircledViolationMarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TipaOn\"\n    },\n    {\n      \"name\": \"TipaOff\"\n    },\n    {\n      \"name\": \"CircledViolationsOn\"\n    },\n    {\n      \"name\": \"CircledViolationsOff\"\n    },\n    {\n      \"name\": \"ShadingOn\"\n    },\n    {\n      \"name\": \"ShadingOff\"\n    },\n    {\n      \"name\": \"FingerBeforeLetter\"\n    },\n    {\n      \"name\": \"LetterBeforeFinger\"\n    },\n    {\n      \"name\": \"mcand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcand{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"mcand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcand[${2:symbol}]{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"mcand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcand*{${1:candidate%text}}\"\n      }\n    },\n    {\n      \"name\": \"mcand*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mcand*[${2:symbol}]{${1:candidate%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tableau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ot-tableau#c\": [\n      \"notipa\",\n      \"circledviolations\",\n      \"shadedcells\",\n      \"fingerafter\",\n      \"usehhline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ot-tableau#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ajmacros\"\n    },\n    {\n      \"name\": \"mlutf\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"mlcid\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rubydefault\",\n      \"if\": \"expert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyfamily\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"rubykatuji\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"mgdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathmg\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mgfamily\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"textmg\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"propshape\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"ebseries\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"ltseries\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"UTF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTF{${1:hex number}}\"\n      }\n    },\n    {\n      \"name\": \"CID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CID{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ajKunoji\"\n    },\n    {\n      \"name\": \"ajKunojiwithBou\"\n    },\n    {\n      \"name\": \"ajDKunoji\"\n    },\n    {\n      \"name\": \"ajDKunojiwithBou\"\n    },\n    {\n      \"name\": \"ajNinoji\"\n    },\n    {\n      \"name\": \"ajvarNinoji\"\n    },\n    {\n      \"name\": \"ajYusuriten\"\n    },\n    {\n      \"name\": \"ajMasu\"\n    },\n    {\n      \"name\": \"ajYori\"\n    },\n    {\n      \"name\": \"ajKoto\"\n    },\n    {\n      \"name\": \"ajUta\"\n    },\n    {\n      \"name\": \"ajCommandKey\"\n    },\n    {\n      \"name\": \"ajReturnKey\"\n    },\n    {\n      \"name\": \"ajCheckmark\"\n    },\n    {\n      \"name\": \"ajVisibleSpace\"\n    },\n    {\n      \"name\": \"ajSenteMark\"\n    },\n    {\n      \"name\": \"ajGoteMark\"\n    },\n    {\n      \"name\": \"ajClub\"\n    },\n    {\n      \"name\": \"ajHeart\"\n    },\n    {\n      \"name\": \"ajSpade\"\n    },\n    {\n      \"name\": \"ajDiamond\"\n    },\n    {\n      \"name\": \"ajvarClub\"\n    },\n    {\n      \"name\": \"ajvarHeart\"\n    },\n    {\n      \"name\": \"ajvarSpade\"\n    },\n    {\n      \"name\": \"ajvarDiamond\"\n    },\n    {\n      \"name\": \"ajPhone\"\n    },\n    {\n      \"name\": \"ajPostal\"\n    },\n    {\n      \"name\": \"ajvarPostal\"\n    },\n    {\n      \"name\": \"ajSun\"\n    },\n    {\n      \"name\": \"ajCloud\"\n    },\n    {\n      \"name\": \"ajUmbrella\"\n    },\n    {\n      \"name\": \"ajSnowman\"\n    },\n    {\n      \"name\": \"ajJIS\"\n    },\n    {\n      \"name\": \"ajJAS\"\n    },\n    {\n      \"name\": \"ajBall\"\n    },\n    {\n      \"name\": \"ajHotSpring\"\n    },\n    {\n      \"name\": \"ajWhiteSesame\"\n    },\n    {\n      \"name\": \"ajBlackSesame\"\n    },\n    {\n      \"name\": \"ajWhiteFlorette\"\n    },\n    {\n      \"name\": \"ajBlackFlorette\"\n    },\n    {\n      \"name\": \"ajRightBArrow\"\n    },\n    {\n      \"name\": \"ajLeftBArrow\"\n    },\n    {\n      \"name\": \"ajUpBArrow\"\n    },\n    {\n      \"name\": \"ajDownBArrow\"\n    },\n    {\n      \"name\": \"ajRightHand\"\n    },\n    {\n      \"name\": \"ajLeftHand\"\n    },\n    {\n      \"name\": \"ajUpHand\"\n    },\n    {\n      \"name\": \"ajDownHand\"\n    },\n    {\n      \"name\": \"ajRightScissors\"\n    },\n    {\n      \"name\": \"ajLeftScissors\"\n    },\n    {\n      \"name\": \"ajUpScissors\"\n    },\n    {\n      \"name\": \"ajDownScissors\"\n    },\n    {\n      \"name\": \"ajRightWArrow\"\n    },\n    {\n      \"name\": \"ajLeftWArrow\"\n    },\n    {\n      \"name\": \"ajUpWArrow\"\n    },\n    {\n      \"name\": \"ajDownWArrow\"\n    },\n    {\n      \"name\": \"ajRightDownArrow\"\n    },\n    {\n      \"name\": \"ajLeftDownArrow\"\n    },\n    {\n      \"name\": \"ajLeftUpArrow\"\n    },\n    {\n      \"name\": \"ajRightUpArrow\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/otf#c\": [\n      \"nomacros\",\n      \"noreplace\",\n      \"noruby\",\n      \"bold\",\n      \"expert\",\n      \"deluxe\",\n      \"multi\",\n      \"burasage\",\n      \"platex\",\n      \"uplatex\",\n      \"autodetect\",\n      \"jis2004\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/otfontdef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareFontNamingScheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareFontNamingScheme{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/otfontdef#c\": [\n      \"trace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/otfontdef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/othelloboard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dotmarkings\"\n    },\n    {\n      \"name\": \"othelloarrayfirstrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarrayfirstrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarraysecondrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarraysecondrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarraythirdrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarraythirdrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarrayfourthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarrayfourthrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarrayfifthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarrayfifthrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarraysixthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarraysixthrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarrayseventhrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarrayseventhrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"othelloarrayeighthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"othelloarrayeighthrow{${1:num1}}{${2:num2}}{${3:num3}}{${4:num4}}{${5:num5}}{${6:num6}}{${7:num7}}{${8:num8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationsfirstrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationsfirstrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationssecondrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationssecondrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationsthirdrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationsthirdrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationsfourthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationsfourthrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationsfifthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationsfifthrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationssixthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationssixthrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationsseventhrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationsseventhrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"annotationseighthrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"annotationseighthrow{${1:txt1}}{${2:txt2}}{${3:txt3}}{${4:txt4}}{${5:txt5}}{${6:txt6}}{${7:txt7}}{${8:txt8}}\"\n      }\n    },\n    {\n      \"name\": \"posannotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"posannotation{${1:square name}}{${2:annotation string}}\"\n      }\n    },\n    {\n      \"name\": \"drawtranscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawtranscript{${1:longstring}}\"\n      }\n    },\n    {\n      \"name\": \"drawboardfromstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawboardfromstring{${1:longstring}}\"\n      }\n    },\n    {\n      \"name\": \"blackdiamond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blackdisc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countblackdiscs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countwhitediscs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othelloannotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"othelloannotation{${1:num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"othellodiscfromstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othellodiscfromstring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"othellodisc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othellodisc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"othellogrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othellonormaltext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othellonormaltext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"othellowhitetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"othellowhitetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resetalldisccolours\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scalefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitediamond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitedisc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"othelloboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"othelloboardnorefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:scale}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/oubraces.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"overunderbraces\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"overunderbraces{${1:upper braces}}{${2:main formula}}{${3:lower braces}}\"\n      }\n    },\n    {\n      \"name\": \"br\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"br{${1:number}}{${2:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/outlines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"1\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"1[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"2[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"3\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"3[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"4\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"4[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"outlinei\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outlineii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outlineiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outlineiiii\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"outline\"\n    },\n    {\n      \"name\": \"outline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{outline}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{outline}#c\": [\n      \"enumerate\",\n      \"itemize\",\n      \"description\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/outlining.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"todonotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"outlineTopics\"\n    },\n    {\n      \"name\": \"outlineTopicsMajors\"\n    },\n    {\n      \"name\": \"outlineTopicsMajorsMinors\"\n    },\n    {\n      \"name\": \"topic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topic{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"major\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"major{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"minor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minor{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"listOutline\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/outlining#c\": [\n      \"disable\",\n      \"outlineatbegin\",\n      \"outlineatend\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/outlining#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/overarrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"esvect\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"old-arrows\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"pstricks-add\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pict2e\",\n      \"if\": \"pstarrows\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vardownarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"vargets\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varhookleftarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varhookrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varleftarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varleftarrowfill\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varleftrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlonghookleftarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlonghookrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlongleftarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlongleftrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlongmapsfrom\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlongmapsto\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varlongrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varmapsfrom\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varmapsto\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varmapstochar\",\n      \"if\": \"old-arrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varnearrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varnwarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varoverleftarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverleftrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varoverrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varoverrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varrightarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varrightarrowfill\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varsearrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varswarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varto\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varunderleftrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderleftarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderleftarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varunderrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varunderrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varuparrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varupdownarrow\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varvarinjlim\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varvarprojlim\",\n      \"if\": \"old-arrows\"\n    },\n    {\n      \"name\": \"varxhookleftarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxhookrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxhookrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxleftrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxleftrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsfrom\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsfrom[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxmapsto\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxmapsto[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"varxrightarrow\",\n      \"if\": \"old-arrows\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"varxrightarrow[${2:sub}]{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"overrightarrow*\",\n      \"if\": \"overrightarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow*\",\n      \"if\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftarrow*\",\n      \"if\": \"overleftarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftarrow*\",\n      \"if\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow*\",\n      \"if\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightarrow*\",\n      \"if\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup\",\n      \"if\": \"overrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup*\",\n      \"if\": \"overrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup\",\n      \"if\": \"underrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup*\",\n      \"if\": \"underrightharpoonup\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown\",\n      \"if\": \"overrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown*\",\n      \"if\": \"overrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoondown\",\n      \"if\": \"underrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃬\",\n      \"doc\": \"Combining rightwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underrightharpoondown*\",\n      \"if\": \"underrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup\",\n      \"if\": \"overleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup*\",\n      \"if\": \"overleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup\",\n      \"if\": \"underleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup*\",\n      \"if\": \"underleftharpoonup\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown\",\n      \"if\": \"overleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown*\",\n      \"if\": \"overleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoondown\",\n      \"if\": \"underleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃭\",\n      \"doc\": \"Combining leftwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underleftharpoondown*\",\n      \"if\": \"underleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"overbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"overbar*\",\n      \"if\": \"overbar\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underbar\",\n      \"if\": \"underbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:arg}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"underbar*\",\n      \"if\": \"underbar\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightarrow*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftarrow*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"overbar*\",\n      \"if\": \"overcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftarrow*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightarrow*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoonup\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoonup*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoondown\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃬\",\n      \"doc\": \"Combining rightwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underrightharpoondown*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoondown\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃭\",\n      \"doc\": \"Combining leftwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underleftharpoondown*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underbar\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:arg}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"underbar*\",\n      \"if\": \"undercommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoonup*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharpoondown*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoonup*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoondown{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharpoondown*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"overbar\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"overbar*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"overbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightarrow*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftrightarrow*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoonup\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoonup*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharpoondown\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃬\",\n      \"doc\": \"Combining rightwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underrightharpoondown*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underrightharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoonup{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoonup*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoonup*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharpoondown\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃭\",\n      \"doc\": \"Combining leftwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underleftharpoondown*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underleftharpoondown*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"underbar\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:arg}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"underbar*\",\n      \"if\": \"allcommands\",\n      \"arg\": {\n        \"format\": \"{}_{}\",\n        \"snippet\": \"underbar*{${1:arg}}_{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"NewOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewOverArrowCommand{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NewOverArrowCommand[${3:method}]{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewOverArrowCommand{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RenewOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RenewOverArrowCommand[${3:method}]{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideOverArrowCommand{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ProvideOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ProvideOverArrowCommand[${3:method}]{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOverArrowCommand{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DeclareOverArrowCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareOverArrowCommand[${3:method}]{${1:command}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"TestOverArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestOverArrow{${1:arrow command%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TestOverArrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TestOverArrow[${2:pattern}]{${1:arrow command%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TestOverArrow*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestOverArrow*{${1:arrow command%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TestOverArrow*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TestOverArrow*[${2:pattern}]{${1:arrow command%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"xjoinrel\"\n    },\n    {\n      \"name\": \"xjoinrel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xjoinrel[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"smallermathstyle\"\n    },\n    {\n      \"name\": \"overarrowlength\"\n    },\n    {\n      \"name\": \"overarrowthickness\"\n    },\n    {\n      \"name\": \"overarrowsmallerthickness\"\n    },\n    {\n      \"name\": \"esvectvv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esvectvv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"esvectvv*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"esvectvv*{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsSubscriptCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOverArrowsSubscriptCommand{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOverArrowsMethod{${1:name}}{${2:keys def}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SetOverArrowsMethod{${1:name}}[${3:pre code}]{${2:keys def}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetOverArrowsMethod[${3:stack mechanism}]{${1:name}}{${2:keys def}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"SetOverArrowsMethod[${3:stack mechanism}]{${1:name}}[${4:pre code}]{${2:keys def}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOverArrowsMethod*{${1:name}}{${2:keys def}}\"\n      }\n    },\n    {\n      \"name\": \"SetOverArrowsMethod*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SetOverArrowsMethod*{${1:name}}[${3:pre code}]{${2:keys def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/overarrows#c\": [\n      \"esvect\",\n      \"noesvect\",\n      \"esvecta\",\n      \"esvectb\",\n      \"esvectc\",\n      \"esvectd\",\n      \"esvecte\",\n      \"esvectf\",\n      \"esvectg\",\n      \"esvecth\",\n      \"old-arrows\",\n      \"tikz\",\n      \"pstricks\",\n      \"pstarrows\",\n      \"subscripts\",\n      \"subother\",\n      \"subactive\",\n      \"debug\",\n      \"overrightarrow\",\n      \"underrightarrow\",\n      \"overleftarrow\",\n      \"underleftarrow\",\n      \"overleftrightarrow\",\n      \"underleftrightarrow\",\n      \"overrightharpoonup\",\n      \"underrightharpoonup\",\n      \"overrightharpoondown\",\n      \"underrightharpoondown\",\n      \"overleftharpoonup\",\n      \"underleftharpoonup\",\n      \"overleftharpoondown\",\n      \"underleftharpoondown\",\n      \"overbar\",\n      \"underbar\",\n      \"overcommands\",\n      \"undercommands\",\n      \"allcommands\"\n    ],\n    \"\\\\NewOverArrowCommand,\\\\RenewOverArrowCommand,\\\\ProvideOverArrowCommand,\\\\DeclareOverArrowCommand\": [\n      \"min length=${1:number}\",\n      \"arrow under\",\n      \"arrow under=${1|autoconfig,noconfig|}\",\n      \"shift left=${1:number}\",\n      \"shift right=${1:number}\",\n      \"shift leftright=${1:number}\",\n      \"center arrow\",\n      \"left arrow\",\n      \"right arrow\",\n      \"before arrow=${1:vertical material}\",\n      \"after arrow=${1:vertical material}\",\n      \"space before arrow=\",\n      \"space after arrow=\",\n      \"detect subscripts\",\n      \"start=${1:command}\",\n      \"middle=${1:command}\",\n      \"end=${1:command}\",\n      \"trim start=${1:number}\",\n      \"trim middle=${1:number}\",\n      \"trim end=${1:number}\",\n      \"trim=${1:number}\",\n      \"no trimming\",\n      \"middle config=${1|auto,relbar,relbareda,harrowextender|}\",\n      \"amsmath\",\n      \"amsmath=${1|mimic,strict|}\",\n      \"esvect\",\n      \"esvect=${1|mimic,strict|}\",\n      \"tikz options={${1:TikZ options}}\",\n      \"path options={${1:path options}}\",\n      \"path={${1:path spec}}\",\n      \"add tikz options={${1:TikZ options}}\",\n      \"add path options={${1:path options}}\",\n      \"arrows={${1:arrow spec}}\",\n      \"line thickness=\",\n      \"thinner\",\n      \"tikz command={${1:TikZ command}}\",\n      \"pstricks command={${1:pstricks command}}\",\n      \"arrow={${1:arrow}}\",\n      \"psset={${1:pstricks options}}\",\n      \"picture command={${1:picture command}}\",\n      \"geometry={${1:picture geometry spec}}\",\n      \"stack macro={${1:stack definition}}\",\n      \"arrow macro={${1:arrow definition}}\",\n      \"no stack macro hook={${1:code}}\",\n      \"no arrow macro hook={${1:code}}\",\n      \"fill macro={${1:definition}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/overarrows#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/overcite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cite\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/overcite#c\": [\n      \"superscript\",\n      \"super\",\n      \"ref\",\n      \"nospace\",\n      \"space\",\n      \"nobreak\",\n      \"nosort\",\n      \"sort\",\n      \"nomove\",\n      \"move\",\n      \"noadjust\",\n      \"adjust\",\n      \"nocompress\",\n      \"compress\",\n      \"biblabel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/overcite#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/overlays.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alert\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alert{${1:overlay specification}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"visible\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"visible{${1:overlay specification}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"only\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"only{${1:overlay specification}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"savecounterbetweenoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecounterbetweenoverlays{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"saveseriesbetweenoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saveseriesbetweenoverlays{${1:series name}}\"\n      }\n    },\n    {\n      \"name\": \"overlaysoff\"\n    },\n    {\n      \"name\": \"alertsoff\"\n    },\n    {\n      \"name\": \"psalert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psalert{${1:overlay specification}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"psvisible\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psvisible{${1:overlay specification}}{${2:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"overlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"fragileoverlays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/overlock.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"overlock\"\n    },\n    {\n      \"name\": \"overlockBlack\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"overlockfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/overlock#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"black\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/overlock#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/overpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epic\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setOverpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setOverpic{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{overpic},\\\\begin{Overpic},\\\\setOverpic\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"overpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"overpic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{overpic},\\\\begin{Overpic},\\\\setOverpic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Overpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tex-code}}\"\n      }\n    },\n    {\n      \"name\": \"Overpic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:tex-code}}\",\n        \"keys\": [\n          \"\\\\begin{overpic},\\\\begin{Overpic},\\\\setOverpic\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/overpic#c\": [\n      \"abs\",\n      \"percent\",\n      \"permil\"\n    ],\n    \"\\\\begin{overpic},\\\\begin{Overpic},\\\\setOverpic\": [\n      \"abs\",\n      \"percent\",\n      \"permil\",\n      \"rel=${1:number}\",\n      \"grid\",\n      \"tics=${1:number}\",\n      \"unit=\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/overpic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/oz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"also\"\n    },\n    {\n      \"name\": \"Also\"\n    },\n    {\n      \"name\": \"ALSO\"\n    },\n    {\n      \"name\": \"comment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"derive\"\n    },\n    {\n      \"name\": \"derive\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"derive[${1:condition}]\"\n      }\n    },\n    {\n      \"name\": \"leftschemas\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"nextside\"\n    },\n    {\n      \"name\": \"ST\"\n    },\n    {\n      \"name\": \"where\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zbreak\"\n    },\n    {\n      \"name\": \"Zbreak\"\n    },\n    {\n      \"name\": \"ZBREAK\"\n    },\n    {\n      \"name\": \"zedbar\"\n    },\n    {\n      \"name\": \"zedbaselinestretch\"\n    },\n    {\n      \"name\": \"zedcornerheight\"\n    },\n    {\n      \"name\": \"zedindent\"\n    },\n    {\n      \"name\": \"zedleftsep\"\n    },\n    {\n      \"name\": \"zedlinethickness\"\n    },\n    {\n      \"name\": \"zedsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zedsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"zedtab\"\n    },\n    {\n      \"name\": \"znewpage\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"intern\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"sectionsymbol\"\n    },\n    {\n      \"name\": \"String\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"String{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"STRING\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STRING{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"all\"\n    },\n    {\n      \"name\": \"always\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"atlast\"\n    },\n    {\n      \"name\": \"atnext\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"bag\"\n    },\n    {\n      \"name\": \"bagcount\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"bbar\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bij\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"BLACKQED\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"boldword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"bool\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"buni\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"cat\"\n    },\n    {\n      \"name\": \"cbar\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"cmp\"\n    },\n    {\n      \"name\": \"comp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dcat\"\n    },\n    {\n      \"name\": \"dcmp\"\n    },\n    {\n      \"name\": \"ddef\"\n    },\n    {\n      \"name\": \"defs\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"dint\"\n    },\n    {\n      \"name\": \"dinter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disjoint\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"divides\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dom\"\n    },\n    {\n      \"name\": \"dotaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"dovr\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"dres\"\n    },\n    {\n      \"name\": \"dsub\",\n      \"detail\": \"⩤ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\ndres (oz), domain antirestriction\"\n    },\n    {\n      \"name\": \"duni\"\n    },\n    {\n      \"name\": \"dunion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptybag\"\n    },\n    {\n      \"name\": \"emptyseq\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"ETH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"eventually\"\n    },\n    {\n      \"name\": \"exi\"\n    },\n    {\n      \"name\": \"exione\"\n    },\n    {\n      \"name\": \"Exit\"\n    },\n    {\n      \"name\": \"expon\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"false\"\n    },\n    {\n      \"name\": \"fcmp\",\n      \"detail\": \"⨾ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\comp (oz), relational composition\"\n    },\n    {\n      \"name\": \"ffun\"\n    },\n    {\n      \"name\": \"filter\"\n    },\n    {\n      \"name\": \"finj\"\n    },\n    {\n      \"name\": \"finset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fovr\"\n    },\n    {\n      \"name\": \"front\"\n    },\n    {\n      \"name\": \"fset\"\n    },\n    {\n      \"name\": \"fsetone\"\n    },\n    {\n      \"name\": \"fun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fun\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"head\"\n    },\n    {\n      \"name\": \"henceforth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hide\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"id\"\n    },\n    {\n      \"name\": \"imp\"\n    },\n    {\n      \"name\": \"implies\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inbag\"\n    },\n    {\n      \"name\": \"infix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infix{${1:rel}}\"\n      }\n    },\n    {\n      \"name\": \"Init\"\n    },\n    {\n      \"name\": \"inj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inseq\"\n    },\n    {\n      \"name\": \"instancein\"\n    },\n    {\n      \"name\": \"instantiates\"\n    },\n    {\n      \"name\": \"integer\"\n    },\n    {\n      \"name\": \"integral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"interleave\",\n      \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Triple vertical bar binary relation\"\n    },\n    {\n      \"name\": \"inv\"\n    },\n    {\n      \"name\": \"ires\"\n    },\n    {\n      \"name\": \"isa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"islikea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"items\"\n    },\n    {\n      \"name\": \"iter\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"keyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"lang\"\n    },\n    {\n      \"name\": \"last\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"lblot\"\n    },\n    {\n      \"name\": \"LE\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"limg\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lsch\"\n    },\n    {\n      \"name\": \"lseq\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"map\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"mem\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"mod\"\n    },\n    {\n      \"name\": \"mono\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"nat\"\n    },\n    {\n      \"name\": \"natone\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ndres\"\n    },\n    {\n      \"name\": \"nem\"\n    },\n    {\n      \"name\": \"nexi\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"unusual\": true,\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"next\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nmem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nrres\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"num\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"partitions\"\n    },\n    {\n      \"name\": \"pfun\"\n    },\n    {\n      \"name\": \"pinj\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"porder\"\n    },\n    {\n      \"name\": \"post\"\n    },\n    {\n      \"name\": \"power\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PR\"\n    },\n    {\n      \"name\": \"pre\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"pred\"\n    },\n    {\n      \"name\": \"prefix\"\n    },\n    {\n      \"name\": \"previously\"\n    },\n    {\n      \"name\": \"product\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"project\"\n    },\n    {\n      \"name\": \"pset\"\n    },\n    {\n      \"name\": \"psetone\"\n    },\n    {\n      \"name\": \"psubs\"\n    },\n    {\n      \"name\": \"psups\"\n    },\n    {\n      \"name\": \"psur\"\n    },\n    {\n      \"name\": \"psurj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"Qed\"\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"ran\"\n    },\n    {\n      \"name\": \"rang\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rblot\"\n    },\n    {\n      \"name\": \"refines\"\n    },\n    {\n      \"name\": \"rel\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rev\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rimg\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rres\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"rsch\"\n    },\n    {\n      \"name\": \"rseq\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rsub\",\n      \"detail\": \"⩥ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\nrres (oz), range antirestriction\"\n    },\n    {\n      \"name\": \"rtcl\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"sdef\"\n    },\n    {\n      \"name\": \"semi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seq\"\n    },\n    {\n      \"name\": \"seqone\"\n    },\n    {\n      \"name\": \"shortinterleave\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shows\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"spot\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squash\"\n    },\n    {\n      \"name\": \"sres\"\n    },\n    {\n      \"name\": \"subclass\"\n    },\n    {\n      \"name\": \"subs\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"subtype\"\n    },\n    {\n      \"name\": \"subtypeeq\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"supclass\"\n    },\n    {\n      \"name\": \"sups\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"suptype\"\n    },\n    {\n      \"name\": \"suptypeeq\"\n    },\n    {\n      \"name\": \"surj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tail\"\n    },\n    {\n      \"name\": \"tcl\"\n    },\n    {\n      \"name\": \"tfun\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"thrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tinj\"\n    },\n    {\n      \"name\": \"torder\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"true\"\n    },\n    {\n      \"name\": \"tsur\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"underboldword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underboldword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"underkeyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underkeyword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"underword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"uni\"\n    },\n    {\n      \"name\": \"union\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"uptilnow\"\n    },\n    {\n      \"name\": \"upto\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsdef\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"weakrefine\"\n    },\n    {\n      \"name\": \"weaksubclass\"\n    },\n    {\n      \"name\": \"weaksupclass\"\n    },\n    {\n      \"name\": \"word\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"word{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"xprec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xsucc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zall\"\n    },\n    {\n      \"name\": \"zand\"\n    },\n    {\n      \"name\": \"zbar\"\n    },\n    {\n      \"name\": \"zbig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zbig{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zBig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zBig{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zBIG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zBIG{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zcmp\",\n      \"detail\": \"⨟ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\semi (oz), \\\\fatsemi (stmaryrd), schema composition\"\n    },\n    {\n      \"name\": \"zeq\"\n    },\n    {\n      \"name\": \"zexi\"\n    },\n    {\n      \"name\": \"zfor\"\n    },\n    {\n      \"name\": \"zhide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zimp\"\n    },\n    {\n      \"name\": \"zin\"\n    },\n    {\n      \"name\": \"zlet\"\n    },\n    {\n      \"name\": \"znot\"\n    },\n    {\n      \"name\": \"zor\"\n    },\n    {\n      \"name\": \"zovr\"\n    },\n    {\n      \"name\": \"zpipe\",\n      \"detail\": \"⨠ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation schema piping\"\n    },\n    {\n      \"name\": \"zproject\",\n      \"detail\": \"⨡ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\project (oz), schema projection\"\n    },\n    {\n      \"name\": \"zsmall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zsmall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zSmall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zSmall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"zwhere\"\n    },\n    {\n      \"name\": \"ldata\"\n    },\n    {\n      \"name\": \"nexim\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"argue\"\n    },\n    {\n      \"name\": \"axdef\"\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"classcom\"\n    },\n    {\n      \"name\": \"gendef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:term}}\"\n      }\n    },\n    {\n      \"name\": \"genschema\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:resource}}\"\n      }\n    },\n    {\n      \"name\": \"infrule\"\n    },\n    {\n      \"name\": \"init\"\n    },\n    {\n      \"name\": \"op\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"schema\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sidebyside\"\n    },\n    {\n      \"name\": \"sidebyside\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:columns}]\"\n      }\n    },\n    {\n      \"name\": \"state\"\n    },\n    {\n      \"name\": \"syntax\"\n    },\n    {\n      \"name\": \"uniqdef\"\n    },\n    {\n      \"name\": \"zed\"\n    },\n    {\n      \"name\": \"zpar\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pacioli.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cpcfamily\"\n    },\n    {\n      \"name\": \"textcpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcpc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/padcount.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"padnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"padnum{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"setpadnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpadnum{${1:number of digits}}\"\n      }\n    },\n    {\n      \"name\": \"setpadchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpadchar{${1:character}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pagecolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thepagecolor\"\n    },\n    {\n      \"name\": \"thepagecolornone\"\n    },\n    {\n      \"name\": \"newpagecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"restorepagecolor\"\n    },\n    {\n      \"name\": \"backgroundpagecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundpagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"newbackgroundpagecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newbackgroundpagecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"restorebackgroundpagecolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagecolor#c\": [\n      \"pagecolor=\",\n      \"nopagecolor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagecolor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pagecont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagecont#c\": [\n      \"first\",\n      \"savefile=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagecont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pagegrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pagegridsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagegridsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pagegridsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pagegridShipoutDoubleBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagegridShipoutDoubleEnd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pagegridsetup\": [\n      \"enable\",\n      \"disable\",\n      \"left-top\",\n      \"lt\",\n      \"top-left\",\n      \"tl\",\n      \"tr\",\n      \"top-right\",\n      \"rt\",\n      \"right-top\",\n      \"left-bottom\",\n      \"lb\",\n      \"bottom-left\",\n      \"bl\",\n      \"br\",\n      \"bottom-right\",\n      \"rb\",\n      \"right-bottom\",\n      \"step=\",\n      \"firstcolor=\",\n      \"secondcolor=\",\n      \"arrows\",\n      \"arrowlength=\",\n      \"double=${1|false,first,last,true|}\",\n      \"foreground\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pagella-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pagellaOsF\"\n    },\n    {\n      \"name\": \"pagellaTLF\"\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagella-otf#c\": [\n      \"lining\",\n      \"oldstyle\",\n      \"proportional\",\n      \"tabular\",\n      \"math=${1:font features}\",\n      \"ScaleRM=${1:factor}\",\n      \"defaultfeatures={${1:font features}}\",\n      \"libertinus\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagella-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pagenote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifmtarg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makepagenote\"\n    },\n    {\n      \"name\": \"printnotes\"\n    },\n    {\n      \"name\": \"printnotes*\"\n    },\n    {\n      \"name\": \"pagenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pagenote[${2:id}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notenumintext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenumintext{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"noteentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"noteentry{${1:note number}}{${2:id}}{${3:text}}{${4:page number}}\"\n      }\n    },\n    {\n      \"name\": \"prenoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteidinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noteidinnotes{${1:note number}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"pageinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pageinnotes{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"noteinnotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noteinnotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postnoteinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notedivision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagenotesubhead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pagenotesubhead{${1:number}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpnhaschapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhaschapterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhaschaptertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpnpageopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnpageoptfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnpageopttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpncontopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pncontoptfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pncontopttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepagenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmakingpagenotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makingpagenotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makingpagenotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnofilewarn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagenote#c\": [\n      \"page\",\n      \"continuous\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagenote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pagerange.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pagerangeoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerangeoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/pagerange#c,\\\\pagerangeoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pagerange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagerange{${1:page range}}\"\n      }\n    },\n    {\n      \"name\": \"pagestart\"\n    },\n    {\n      \"name\": \"pageend\"\n    },\n    {\n      \"name\": \"getpagenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpagenumber{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagerange#c,\\\\pagerangeoptions\": [\n      \"tie=${1:character}\",\n      \"acceptempty\",\n      \"defaultfirstpage=${1:number}\",\n      \"defaultlastpage=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagerange#c,\\\\pagerangeoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pagesel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pagesel#c\": [\n      \"odd\",\n      \"even\",\n      \"${1:pageA}-${2:pageB}\",\n      \"-${1:page}\",\n      \"${1:page}-\",\n      \"-\",\n      \"${1:page}\",\n      \"nofiles\",\n      \"nonofiles\",\n      \"files\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pagesel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pageslts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"everyshi\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"undolabl\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    },\n    {\n      \"name\": \"alphalph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theCurrentPage\"\n    },\n    {\n      \"name\": \"theCurrentPageLocal\"\n    },\n    {\n      \"name\": \"lastpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lastpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lastpages\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lastpages{${1:numstyle%keyvals}}{${2:number}}\",\n        \"keys\": [\n          \"\\\\lastpages#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AlphMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlphMult{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"alphMult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alphMult{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"erroralphalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erroralphalph{${1:cmd}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"expandPagenumbering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandPagenumbering{${1:numstyle}}\"\n      }\n    },\n    {\n      \"name\": \"fnsymbolmult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnsymbolmult{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"XRoman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XRoman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xroman{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"XXRoman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XXRoman{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pageslts#c\": [\n      \"pagecontinue\",\n      \"alphMult=${1|ab,bb,0|}\",\n      \"AlphMulti=${1|AB,BB,0|}\",\n      \"romanMult\",\n      \"RomanMulti\",\n      \"fnsymbolmult\"\n    ],\n    \"\\\\lastpages#c\": [\n      \"arabic\",\n      \"roman\",\n      \"Roman\",\n      \"alph\",\n      \"Alph\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pageslts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pandora.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pnrmfamily\"\n    },\n    {\n      \"name\": \"pnsffamily\"\n    },\n    {\n      \"name\": \"pnttfamily\"\n    },\n    {\n      \"name\": \"textpnrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnrm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpnsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnsf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpntt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpntt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpnsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpnbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnbf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpnssl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnssl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpnsbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpnsbf{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pangram.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pangram\"\n    },\n    {\n      \"name\": \"pangram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pangram[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pangram,\\\\PangramSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PangramSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PangramSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pangram,\\\\PangramSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewPangramClass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewPangramClass{${1:text class}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pangram,\\\\PangramSetup\": [\n      \"textclass=${1:text-class}\",\n      \"sizes={${1:size1,size2,...}}\",\n      \"linegap=\",\n      \"tagskip=\",\n      \"tagfont=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"before=${1:code}\",\n      \"after=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/papermas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"intcalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"papermassPages\"\n    },\n    {\n      \"name\": \"papermasstotal\"\n    },\n    {\n      \"name\": \"papermasformat\"\n    },\n    {\n      \"name\": \"papermasmasss\"\n    },\n    {\n      \"name\": \"papermaspagespersheet\"\n    },\n    {\n      \"name\": \"papermassheets\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/papermas#c\": [\n      \"format=\",\n      \"masss=${1:amount in g/m^2}\",\n      \"pagespersheet=${1:integer}\",\n      \"decimalsep={${1:char}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/papermas#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/paracol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"switchcolumn\"\n    },\n    {\n      \"name\": \"switchcolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"switchcolumn[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"switchcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"switchcolumn*[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"switchcolumn\",\n      \"arg\": {\n        \"format\": \"[]*[]\",\n        \"snippet\": \"switchcolumn[${1:column}]*[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"thecolumn\"\n    },\n    {\n      \"name\": \"definecolumnpreamble\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definecolumnpreamble{${1:column}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"ensurevspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensurevspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"columnratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columnratio{${1:ratio 0,...,ratio k}}\"\n      }\n    },\n    {\n      \"name\": \"columnratio\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"columnratio{${1:ratio 0,...,ratio k}}[${2:ratio' 0,...,ratio' k}]\"\n      }\n    },\n    {\n      \"name\": \"setcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolumnwidth{${1:gap 0,...,gap k}}\"\n      }\n    },\n    {\n      \"name\": \"setcolumnwidth\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setcolumnwidth{${1:gap 0,...,gap k}}[${2:gap' 0,...,gap' k}]\"\n      }\n    },\n    {\n      \"name\": \"twosided\"\n    },\n    {\n      \"name\": \"twosided\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"twosided[${1:t1t2...tk}]\"\n      }\n    },\n    {\n      \"name\": \"marginparthreshold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginparthreshold{${1:columns}}\"\n      }\n    },\n    {\n      \"name\": \"marginparthreshold\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"marginparthreshold{${1:columns}}[${2:columns'}]\"\n      }\n    },\n    {\n      \"name\": \"globalcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"globalcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"globalcounter*\"\n    },\n    {\n      \"name\": \"localcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"definethecounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definethecounter{${1:counter}}{${2:column}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"synccounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synccounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"syncallcounters\"\n    },\n    {\n      \"name\": \"footnotelayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotelayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnote*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnote*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnotemark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnotemark*[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnotetext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnotetext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotetext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnotetext*[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fncounteradjustment\"\n    },\n    {\n      \"name\": \"nofncounteradjustment\"\n    },\n    {\n      \"name\": \"belowfootnoteskip\"\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columncolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"columncolor{${1:color}}[${2:column}]\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"columncolor[${2:mode}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"columncolor\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"columncolor[${2:mode}]{${1:color}}[${3:column}]\"\n      }\n    },\n    {\n      \"name\": \"normalcolumncolor\"\n    },\n    {\n      \"name\": \"normalcolumncolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalcolumncolor[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"coloredwordhyphenated\"\n    },\n    {\n      \"name\": \"nocoloredwordhyphenated\"\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colseprulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"colseprulecolor{${1:color}}[${2:column}]\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colseprulecolor[${2:mode}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"colseprulecolor[${2:mode}]{${1:color}}[${3:column}]\"\n      }\n    },\n    {\n      \"name\": \"normalcolseprulecolor\"\n    },\n    {\n      \"name\": \"normalcolseprulecolor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"normalcolseprulecolor[${1:column}]\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backgroundcolor{${1:region}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"backgroundcolor{${1:region}}[${3:mode}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"nobackgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nobackgroundcolor{${1:region}}\"\n      }\n    },\n    {\n      \"name\": \"resetbackgroundcolor\"\n    },\n    {\n      \"name\": \"pagerim\"\n    },\n    {\n      \"name\": \"addcontentsonly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcontentsonly{${1:file%keyvals}}{${2:column}}\",\n        \"keys\": [\n          \"\\\\addcontentsonly\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flushpage\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"paracol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:number}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:numleft}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"paracol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:numleft}]{${1:number}}[${3:text}]\"\n      }\n    },\n    {\n      \"name\": \"column\"\n    },\n    {\n      \"name\": \"column*\"\n    },\n    {\n      \"name\": \"column*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"nthcolumn*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:column}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"leftcolumn\"\n    },\n    {\n      \"name\": \"leftcolumn*\"\n    },\n    {\n      \"name\": \"leftcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"rightcolumn\"\n    },\n    {\n      \"name\": \"rightcolumn*\"\n    },\n    {\n      \"name\": \"rightcolumn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\addcontentsonly\": [\n      \"toc\",\n      \"lof\",\n      \"lot\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/paralist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setdefaultitem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setdefaultitem{${1:label1}}{${2:label2}}{${3:label3}}{${4:label4}}\"\n      }\n    },\n    {\n      \"name\": \"setdefaultenum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setdefaultenum{${1:label1}}{${2:label2}}{${3:label3}}{${4:label4}}\"\n      }\n    },\n    {\n      \"name\": \"setdefaultleftmargin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setdefaultleftmargin{${1:length1}}{${2:length2}}{${3:length3}}{${4:length4}}{${5:length5}}{${6:length6}}\"\n      }\n    },\n    {\n      \"name\": \"pointedenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointlessenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paradescriptionlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pltopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plpartopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plitemsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plparsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"itemize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"asparaenum\"\n    },\n    {\n      \"name\": \"asparaenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"inparaenum\"\n    },\n    {\n      \"name\": \"inparaenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"compactenum\"\n    },\n    {\n      \"name\": \"compactenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"asparaitem\"\n    },\n    {\n      \"name\": \"asparaitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"inparaitem\"\n    },\n    {\n      \"name\": \"inparaitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"compactitem\"\n    },\n    {\n      \"name\": \"compactitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"asparadesc\"\n    },\n    {\n      \"name\": \"inparadesc\"\n    },\n    {\n      \"name\": \"compactdesc\"\n    },\n    {\n      \"name\": \"asparablank\",\n      \"if\": \"defblank\"\n    },\n    {\n      \"name\": \"inparablank\",\n      \"if\": \"defblank\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/paralist#c\": [\n      \"newitem\",\n      \"olditem\",\n      \"newenum\",\n      \"oldenum\",\n      \"alwaysadjust\",\n      \"neveradjust\",\n      \"neverdecrease\",\n      \"defblank\",\n      \"pointlessenum\",\n      \"pointedenum\",\n      \"flushright\",\n      \"flushleft\",\n      \"cfg\",\n      \"nocfg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/paralist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/parallel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ParallelLText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParallelLText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParallelRText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParallelRText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParallelPar\"\n    },\n    {\n      \"name\": \"ParallelLWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelRWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelTextWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelLeftMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelUserMidSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelMainMidSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelLBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelRBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelBoxVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelLTok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelRTok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelBoolVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelBoolMid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelWhichBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelMainMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelFNMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelLFNCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelRFNCounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelMaxFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelFNNumMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelMessage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParallelMessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParallelLFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParallelLFootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParallelRFootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParallelRFootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ParallelShowFNList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelParOnePage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelParTwoPages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelAfterText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelCheckOpenBrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelAtEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ParallelDot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Parallel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:left-width%l}}{${2:right-width%l}}\"\n      }\n    },\n    {\n      \"name\": \"Parallel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:left-width%l}}{${2:right-width%l}}\",\n        \"keys\": [\n          \"\\\\begin{Parallel}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ParallelFNEnviron\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/parallel#c\": [\n      \"Verbose\",\n      \"OldStyleNums\",\n      \"RaiseNums\",\n      \"ItalicNums\",\n      \"RomanNums\",\n      \"SeparatedFootnotes\"\n    ],\n    \"\\\\begin{Parallel}\": [\n      \"c\",\n      \"v\",\n      \"p\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/parallel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/paravesp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ParaSpaceAbove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParaSpaceAbove{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ParaSpaceBelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ParaSpaceBelow{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"IssueParaSpace\"\n    },\n    {\n      \"name\": \"IgnoreSpaceAboveNextPara\"\n    },\n    {\n      \"name\": \"CancelIgnoreSpaceAboveNextPara\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/parcolumns.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"processkv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colchunk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colchunk{${1:chunk%text}}\"\n      }\n    },\n    {\n      \"name\": \"colchunk\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colchunk[${2:column}]{${1:chunk%text}}\"\n      }\n    },\n    {\n      \"name\": \"colplacechunks\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"parcolumns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number of cols}}\"\n      }\n    },\n    {\n      \"name\": \"parcolumns\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:number of cols}}\",\n        \"keys\": [\n          \"\\\\begin{parcolumns}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{parcolumns}\": [\n      \"colwidths={${1:col=width,...}}\",\n      \"distance=\",\n      \"rulebetween\",\n      \"nofirstindent\",\n      \"sloppy\",\n      \"sloppyspaces\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/paresse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makeparesseletter\"\n    },\n    {\n      \"name\": \"makeparesseother\"\n    },\n    {\n      \"name\": \"ActiveLaParesse\"\n    },\n    {\n      \"name\": \"declareunicodecharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declareunicodecharacter{${1:hexadecimal}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ParesseActive\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/parnotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"parnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parnotes\"\n    },\n    {\n      \"name\": \"parnotereset\"\n    },\n    {\n      \"name\": \"parnoteclear\"\n    },\n    {\n      \"name\": \"parnoteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnoteref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parnotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnotemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parnotefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnotefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theparnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parnotevskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parnoteintercmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parnotecusmarkfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parnotecusmarkfmt{${1:mark}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"autopn\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/parnotes#c\": [\n      \"restart\",\n      \"reset\",\n      \"roman\",\n      \"alph\",\n      \"symbol\",\n      \"breakwithin\",\n      \"indentafter\",\n      \"narrower\",\n      \"nomultiple\",\n      \"notesrm\",\n      \"notesit\",\n      \"notessf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/parnotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/parrun.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Place*\"\n    },\n    {\n      \"name\": \"Place\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Place{${1:fraction1}}{${2:fraction2}}\"\n      }\n    },\n    {\n      \"name\": \"ffram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actualheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colframsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rigidbalance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosplits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dobalance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalbalance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UserDefWidths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UserDefWidths{${1:fraction1}}{${2:fraction2}}\"\n      }\n    },\n    {\n      \"name\": \"AutoCompute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UsefulLengthsTable\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fframe\"\n    },\n    {\n      \"name\": \"sframe\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/parrun#c\": [\n      \"multicol\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/parrun#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/parseargs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"parseOpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"parseOpt{${1:openchar}}{${2:closechar}}{${3:yes}}{${4:no}}\"\n      }\n    },\n    {\n      \"name\": \"parseMand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseMand{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"parseFlag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parseFlag{${1:flagchar}}{${2:yes}}{${3:no}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/parselines.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dofilebyline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dofilebyline{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"dofilebyline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dofilebyline*{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"parse lines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:one-parameter-macro}}\"\n      }\n    },\n    {\n      \"name\": \"parse lines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:initialization}]{${1:one-parameter-macro}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/parskip.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/parskip#c\": [\n      \"skip\",\n      \"skip=\",\n      \"tocskip\",\n      \"tocskip=\",\n      \"indent\",\n      \"indent=\",\n      \"parfill\",\n      \"parfill=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/parskip#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pas-cours.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"auto-pst-pdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"patronprismereg\"\n    },\n    {\n      \"name\": \"patronprismereg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"patronprismereg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronprismereg,\\\\pasPatronprismereg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPatronprismereg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPatronprismereg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronprismereg,\\\\pasPatronprismereg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"patronpyramreg\"\n    },\n    {\n      \"name\": \"patronpyramreg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"patronpyramreg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronpyramreg,\\\\pasPatronpyramreg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPatronpyramreg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPatronpyramreg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronpyramreg,\\\\pasPatronpyramreg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"patroncone\"\n    },\n    {\n      \"name\": \"patroncone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"patroncone[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patroncone,\\\\pasPatroncone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPatroncone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPatroncone[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patroncone,\\\\pasPatroncone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"patroncylindre\"\n    },\n    {\n      \"name\": \"patroncylindre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"patroncylindre[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patroncylindre,\\\\pasPatroncylindre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPatroncylindre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPatroncylindre[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patroncylindre,\\\\pasPatroncylindre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"patronpave\"\n    },\n    {\n      \"name\": \"patronpave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"patronpave[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronpave,\\\\pasPatronpave\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPatronpave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPatronpave[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\patronpave,\\\\pasPatronpave\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prismereg\"\n    },\n    {\n      \"name\": \"prismereg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prismereg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\prismereg,\\\\pasPrismereg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPrismereg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPrismereg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\prismereg,\\\\pasPrismereg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pyramreg\"\n    },\n    {\n      \"name\": \"pyramreg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pyramreg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pyramreg,\\\\pasPyramreg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasPyramreg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasPyramreg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pyramreg,\\\\pasPyramreg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"boule\"\n    },\n    {\n      \"name\": \"boule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"boule[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\boule,\\\\pasBoule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasBoule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasBoule[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\boule,\\\\pasBoule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cone\"\n    },\n    {\n      \"name\": \"cone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cone[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cone,\\\\pasCone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasCone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasCone[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cone,\\\\pasCone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cylindre\"\n    },\n    {\n      \"name\": \"cylindre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cylindre[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cylindre,\\\\pasCylindre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasCylindre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasCylindre[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cylindre,\\\\pasCylindre\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cube\"\n    },\n    {\n      \"name\": \"cube\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cube[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cube,\\\\pasCube\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasCube\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pasCube[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cube,\\\\pasCube\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"env[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\env,\\\\pasEnv,\\\\begin{pasbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pasEnv[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\env,\\\\pasEnv,\\\\begin{pasbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"breakbox\"\n    },\n    {\n      \"name\": \"chap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chap{${1:title}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"chap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chap[${3:options%keyvals}]{${1:title}}{${2:subtitle%text}}\",\n        \"keys\": [\n          \"\\\\chap,\\\\pasChap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pasChap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pasChap[${3:options%keyvals}]{${1:title}}{${2:subtitle%text}}\",\n        \"keys\": [\n          \"\\\\chap,\\\\pasChap\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"definmot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definmot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"itemclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemclass{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"bonus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonus{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"bonus*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bonus*{${1:titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"titreFONT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocFONT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prerequisBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imgPrerequis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurimgPrerequis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imageBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"largeurimageBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aretenirBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"attentionBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebonus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graphsuite\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"graphsuite\",\n      \"if\": \"calculs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"graphsuite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\graphsuite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"executGiac\",\n      \"if\": \"calculs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"executGiac{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"graphsuite\",\n      \"if\": \"xcas\"\n    },\n    {\n      \"name\": \"graphsuite\",\n      \"if\": \"xcas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"graphsuite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\graphsuite\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"executGiac\",\n      \"if\": \"xcas\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"executGiac{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pasbox\"\n    },\n    {\n      \"name\": \"pasbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\env,\\\\pasEnv,\\\\begin{pasbox}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prerequis\"\n    },\n    {\n      \"name\": \"aretenir\"\n    },\n    {\n      \"name\": \"aretenir\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"warning\"\n    },\n    {\n      \"name\": \"warning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{warning}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"attention\"\n    },\n    {\n      \"name\": \"attention\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"ifactors\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"ifactorstable\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"fracsimplify\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"exprsimplify\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"xcas\",\n      \"if\": \"calculs\"\n    },\n    {\n      \"name\": \"ifactors\",\n      \"if\": \"xcas\"\n    },\n    {\n      \"name\": \"ifactorstable\",\n      \"if\": \"xcas\"\n    },\n    {\n      \"name\": \"fracsimplify\",\n      \"if\": \"xcas\"\n    },\n    {\n      \"name\": \"exprsimplify\",\n      \"if\": \"xcas\"\n    },\n    {\n      \"name\": \"xcas\",\n      \"if\": \"xcas\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pas-cours#c\": [\n      \"ant\",\n      \"everytoc\",\n      \"noitemstyle\",\n      \"noeffect\",\n      \"notitlebreak\",\n      \"calculs\",\n      \"xcas\"\n    ],\n    \"\\\\patronprismereg,\\\\pasPatronprismereg\": [\n      \"n=${1:integer}\",\n      \"r=${1:rayon}\",\n      \"h=${1:hauteur}\",\n      \"pos=\",\n      \"legende\"\n    ],\n    \"\\\\patronpyramreg,\\\\pasPatronpyramreg\": [\n      \"n=${1:integer}\",\n      \"r=${1:rayon}\",\n      \"h=${1:hauteur}\",\n      \"legende\"\n    ],\n    \"\\\\patroncone,\\\\pasPatroncone\": [\n      \"r=${1:rayon}\",\n      \"h=${1:hauteur}\",\n      \"legende\"\n    ],\n    \"\\\\patroncylindre,\\\\pasPatroncylindre\": [\n      \"r=${1:rayon}\",\n      \"h=${1:hauteur}\",\n      \"legende\"\n    ],\n    \"\\\\patronpave,\\\\pasPatronpave\": [\n      \"a=${1:number}\",\n      \"b=${1:number}\",\n      \"c=${1:number}\",\n      \"pos=${1|1,2,3,4|}\",\n      \"legende\",\n      \"codages\"\n    ],\n    \"\\\\prismereg,\\\\pasPrismereg\": [\n      \"n=${1:integer}\",\n      \"bordercolor=\",\n      \"incolor=\",\n      \"coefopaq=${1:opacity}\",\n      \"axe\",\n      \"axecolor=\",\n      \"hauteur=\",\n      \"rayon=\",\n      \"incl=${1:coeff}\",\n      \"legende\",\n      \"rotat=${1:degrees}\",\n      \"name\"\n    ],\n    \"\\\\pyramreg,\\\\pasPyramreg\": [\n      \"n=${1:integer}\",\n      \"bordercolor=\",\n      \"incolor=\",\n      \"coefopaq=${1:opacity}\",\n      \"centre=${1:name}\",\n      \"poscentre=${1:node pos}\",\n      \"sommet=${1:name}\",\n      \"posommet=${1:node pos}\",\n      \"scalecentre=${1:factor}\",\n      \"axe\",\n      \"axecolor=\",\n      \"name\",\n      \"hauteur=\",\n      \"rayon=\",\n      \"incl=${1:coeff}\",\n      \"legende\",\n      \"rotat=${1:degrees}\"\n    ],\n    \"\\\\boule,\\\\pasBoule\": [\n      \"border\",\n      \"bordercolor=\",\n      \"incolor=\",\n      \"coefopaq=${1:opacity}\",\n      \"centre=${1:name}\",\n      \"poscentre=${1:node pos}\",\n      \"scale=${1:factor}\",\n      \"name\",\n      \"legende\",\n      \"greenwich\",\n      \"greenwichcolor=\",\n      \"greenwichlegende\",\n      \"grandcercle\",\n      \"equateurlegende\",\n      \"exemplecoord\",\n      \"exemplecoordcolor=\",\n      \"exemplecoordname=${1:name}\"\n    ],\n    \"\\\\cone,\\\\pasCone\": [\n      \"bordercolor=\",\n      \"incolor=\",\n      \"incl=${1:coeff}\",\n      \"hauteur=\",\n      \"coefopaq=${1:opacity}\",\n      \"rayon=\",\n      \"centre=${1:name}\",\n      \"poscentre=${1:node pos}\",\n      \"sommet=${1:name}\",\n      \"posommet=${1:node pos}\",\n      \"scalecentre=${1:factor}\",\n      \"name\",\n      \"axe\",\n      \"axecolor=\",\n      \"legende\"\n    ],\n    \"\\\\cylindre,\\\\pasCylindre\": [\n      \"bordercolor=\",\n      \"incolor=\",\n      \"incl=${1:coeff}\",\n      \"hauteur=\",\n      \"coefopaq=${1:opacity}\",\n      \"rayon=\",\n      \"centrehaut=${1:name}\",\n      \"poscentrehaut=${1:node pos}\",\n      \"centrebas=${1:name}\",\n      \"poscentrebas=${1:node pos}\",\n      \"scalecentre=${1:factor}\",\n      \"name\",\n      \"axe\",\n      \"axecolor=\",\n      \"legende\",\n      \"rectgener\"\n    ],\n    \"\\\\cube,\\\\pasCube\": [\n      \"bordercolor=\",\n      \"incolor=\",\n      \"angle=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"coefopaq=${1:opacity}\",\n      \"prof=${1:profondeur}\",\n      \"name\",\n      \"legende\"\n    ],\n    \"\\\\env,\\\\pasEnv,\\\\begin{pasbox}\": [\n      \"degrade\",\n      \"pluriel\",\n      \"num\",\n      \"notitle\",\n      \"notitlebreak\",\n      \"endsymb\",\n      \"toc\",\n      \"notoc\",\n      \"effect\",\n      \"style=${1|defi,prop,thm,demo,nota,ex,act,rem,meth|}\",\n      \"name=${1:name}\",\n      \"title=${1:title}\",\n      \"symb=${1:symbol}\"\n    ],\n    \"\\\\chap,\\\\pasChap\": [\n      \"autonum\",\n      \"num=${1:numéro}\",\n      \"color=\",\n      \"pos=${1|left,right|}\",\n      \"nonewpage\"\n    ],\n    \"\\\\begin{warning}\": [\n      \"scale=${1:factor}\",\n      \"img=${1:imagefile}\",\n      \"margins=\",\n      \"draw=\",\n      \"bg\",\n      \"bgcolor=\"\n    ],\n    \"\\\\graphsuite\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"nmax=${1:number}\",\n      \"grid\",\n      \"gridcolor=\",\n      \"gridstyle={${1:TikZ options}}\",\n      \"gridxstep=${1:number}\",\n      \"gridystep=${1:number}\",\n      \"nograd\",\n      \"function={${1:function}}\",\n      \"colorfunction=\",\n      \"u=${1:first value}\",\n      \"colorconstruction=\",\n      \"styleconstruction={${1:TikZ options}}\",\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"nmax=${1:number}\",\n      \"grid\",\n      \"gridcolor=\",\n      \"gridstyle={${1:TikZ options}}\",\n      \"gridxstep=${1:number}\",\n      \"gridystep=${1:number}\",\n      \"nograd\",\n      \"function={${1:function}}\",\n      \"colorfunction=\",\n      \"u=${1:first value}\",\n      \"colorconstruction=\",\n      \"styleconstruction={${1:TikZ options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pas-cours#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pas-crosswords.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blackcase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blackcase{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"blackcases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blackcases{${1:x1/y1,x2/y2,...}}\"\n      }\n    },\n    {\n      \"name\": \"word\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"word{${1:x}}{${2:y}}{${3:MOT}}\"\n      }\n    },\n    {\n      \"name\": \"word\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"word[${4:options%keyvals}]{${1:x}}{${2:y}}{${3:MOT}}\",\n        \"keys\": [\n          \"\\\\word,\\\\words\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"words\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"words{${1:x1/y1/MOT1,x2/y2.MOT2,...}}\"\n      }\n    },\n    {\n      \"name\": \"words\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"words[${2:options%keyvals}]{${1:x1/y1/MOT1,x2/y2.MOT2,...}}\",\n        \"keys\": [\n          \"\\\\word,\\\\words\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gridcross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gridcross{${1:MOT1*MOT2,MOT3*MOT4,...}}\"\n      }\n    },\n    {\n      \"name\": \"printDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printDef{${1:h|v}}{${2:la définition%text}}\"\n      }\n    },\n    {\n      \"name\": \"printDef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printDef[${3:s}]{${1:h|v}}{${2:la définition}}\"\n      }\n    },\n    {\n      \"name\": \"symbsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cRM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cRM{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecntdef\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"crossgrid\"\n    },\n    {\n      \"name\": \"crossgrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{crossgrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{crossgrid}\": [\n      \"h=${1:nombre de colonnes}\",\n      \"v=${1:nombre de lignes}\",\n      \"pas=${1:scale}\"\n    ],\n    \"\\\\word,\\\\words\": [\n      \"h\",\n      \"v\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pas-cv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CVbg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CVbg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\CVbg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"infoLeft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infoLeft{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"infoRight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"infoRight{${1:info%text}}\"\n      }\n    },\n    {\n      \"name\": \"CVmargins\"\n    },\n    {\n      \"name\": \"CVtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CVtitle{${1:le titre%text}}\"\n      }\n    },\n    {\n      \"name\": \"CVtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CVtitle[${2:options%keyvals}]{${1:le titre%text}}\",\n        \"keys\": [\n          \"\\\\CVtitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CVclearpage\"\n    },\n    {\n      \"name\": \"CVh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CVh{${1:hauteur en cm}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\CVbg\": [\n      \"modele=${1|andromede,architecte,centaure,dynamique,gaia,jupiter,mars,neptune,orion,pegase,pluton,saturne,univers,uranus,venus|}\",\n      \"bgcolor=\",\n      \"bordercolor=\",\n      \"postesize=${1:size macro}\",\n      \"postecolor=\",\n      \"poste={${1:texte}}\",\n      \"pic=${1:image file}\",\n      \"borderpic=\",\n      \"scalepic=${1:factor}\"\n    ],\n    \"\\\\CVtitle\": [\n      \"color=\",\n      \"bordercolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pas-tableur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tableur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableur{${1:colonnes}}\"\n      }\n    },\n    {\n      \"name\": \"tableur\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tableur[${2:nombre de lignes}]{${1:colonnes}}\"\n      }\n    },\n    {\n      \"name\": \"tableur*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableur*{${1:col1/dim1,col2/dim2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableur*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tableur*[${2:nombre de lignes}]{${1:col1/dim1,col2/dim2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tabcolwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcolwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tabnumlinewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabnumlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"tablineheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablineheight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"helvbx\"\n    },\n    {\n      \"name\": \"celtxt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"celtxt{${1:colonne}}{${2:ligne}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"celtxt\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"celtxt[${4:options%keyvals}]{${1:colonne}}{${2:ligne}}{${3:texte}}\",\n        \"keys\": [\n          \"\\\\celtxt,\\\\celtxt*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"celtxt*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"celtxt*{${1:colonne}}{${2:ligne}}{${3:texte}}\"\n      }\n    },\n    {\n      \"name\": \"celtxt*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"celtxt*[${4:options%keyvals}]{${1:colonne}}{${2:ligne}}{${3:texte}}\",\n        \"keys\": [\n          \"\\\\celtxt,\\\\celtxt*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selecCell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selecCell{${1:colonne}}{${2:ligne}}\"\n      }\n    },\n    {\n      \"name\": \"multiSelec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multiSelec{${1:colonnes}}{${2:lignes}}\"\n      }\n    },\n    {\n      \"name\": \"multimultiSelec\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"multimultiSelec{${1:ligne1}}{${2:ligne2}}{${3:ligne3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\celtxt,\\\\celtxt*\": [\n      \"align=${1|center,left,right|}\",\n      \"c\",\n      \"l\",\n      \"r\",\n      \"ajust\",\n      \"width=\",\n      \"color=\",\n      \"font=${1:font commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pascaltriangle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pascal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pascal{${1:order}}\"\n      }\n    },\n    {\n      \"name\": \"pascal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pascal[${2:options%keyvals}]{${1:order}}\",\n        \"keys\": [\n          \"\\\\pascal,\\\\pascalset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pascalset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pascalset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pascal,\\\\pascalset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"binomc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"binomc{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pascal,\\\\pascalset\": [\n      \"shape=${1|iso,rt|}\",\n      \"radius=\",\n      \"fontsize=${1:fontsize command}\",\n      \"withnum\",\n      \"binom\",\n      \"fillr=${1:integer}\",\n      \"fillc=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/passopt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SetOptionsToPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOptionsToPackage{${1:options list}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"SetOptionsToPackage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOptionsToPackage*{${1:options list}}{${2:package}}\"\n      }\n    },\n    {\n      \"name\": \"SetOptionsToClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOptionsToClass{${1:options list}}{${2:class}}\"\n      }\n    },\n    {\n      \"name\": \"SetOptionsToClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOptionsToClass*{${1:options list}}{${2:class}}\"\n      }\n    },\n    {\n      \"name\": \"ClearPackageOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearPackageOptions{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ClearClassOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearClassOptions{${1:class}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/patch-common.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xpatchcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchcmd{${1:command}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xpretocmd{${1:command}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptocmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xapptocmd{${1:command}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchbibmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchbibmacro{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretobibmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xpretobibmacro{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptobibmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xapptobibmacro{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchbibdriver\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchbibdriver{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretobibdriver\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xpretobibdriver{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptobibdriver\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xapptobibdriver{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchfieldformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretofieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretofieldformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptofieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptofieldformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchnameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchnameformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretonameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretonameformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptonameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptonameformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchlistformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretolistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretolistformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptolistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptolistformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexfieldformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretoindexfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretoindexfieldformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptoindexfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptoindexfieldformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexnameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexnameformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretoindexnameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretoindexnameformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptoindexnameformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptoindexnameformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexlistformat[${6:entry type}]{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpretoindexlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xpretoindexlistformat[${5:entry type}]{${1:name}}{${2:prepend}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xapptoindexlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xapptoindexlistformat[${5:entry type}]{${1:name}}{${2:append}}{${3:success}}{${4:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xshowcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xshowcmd{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"xshowbibname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xshowbibname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowbibdriver\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xshowbibdriver{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshowfieldformat[${2:entry type}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshownameformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshownameformat[${2:entry type}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshowlistformat[${2:entry type}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowindexfieldformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshowindexfieldformat[${2:entry type}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowindexnameformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshowindexnameformat[${2:entry type}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xshowindexlistformat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xshowindexlistformat[${2:entry type}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/patchcmd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"patchcommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"patchcommand{${1:command}}{${2:before code%definition}}{${3:after code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"patchcmdError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patchcmdError{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/path.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"path\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"path|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"pathafterhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifspecialpathdelimiters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specialpathdelimiterstrue\"\n    },\n    {\n      \"name\": \"specialpathdelimitersfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pbalance.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"balance\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shrinkLastPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrinkLastPage{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"balancePageNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"balancePageNum{${1:page-number}}\"\n      }\n    },\n    {\n      \"name\": \"nopbalance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pbalance#c\": [\n      \"safe\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pbalance#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pbox{${1:width}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pbox[${3:position}]{${1:width}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pbox[${3:position}][${4:height}]{${1:width}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"pbox[${3:position}][${4:height}][${5:inner-pos}]{${1:width}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"settominwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settominwidth{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"settominwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"settominwidth[${3:max-width}]{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"widthofpbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthofpbox{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pbsi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bsifamily\"\n    },\n    {\n      \"name\": \"textbsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbsi{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pcarl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"offamily\"\n    },\n    {\n      \"name\": \"textof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"offamilydefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pcarl#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pcarl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfbase.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfbase#c\": [\n      \"xetex\",\n      \"dvipdfmx\",\n      \"dvisvgm\",\n      \"bigfiles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfbase#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfcol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifpdfcolAvailable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolErrorNoStacks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolInitStack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcolInitStack{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolIfStackExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfcolIfStackExists{${1:name}}{${2:then}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolSwitchStack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcolSwitchStack{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcolSetCurrentColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolSetCurrent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcolSetCurrent{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfcolparallel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"parallel\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"pdfcol\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfcolparallel#c\": [\n      \"Verbose\",\n      \"OldStyleNums\",\n      \"RaiseNums\",\n      \"ItalicNums\",\n      \"RomanNums\",\n      \"SeparatedFootnotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfcolparallel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfcolparcolumns.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"parcolumns\"\n    },\n    {\n      \"name\": \"pdfcol\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{parcolumns}\": [\n      \"rulebetweencolor=${1:color}\",\n      \"rulebetweencolor=[${1:model}]{${2:colorspec}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfcomment.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"luatex85\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"soulpos\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfcomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfcomment,\\\\pdfmargincomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfmargincomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmargincomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmargincomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfmargincomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfcomment,\\\\pdfmargincomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textHT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textHT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textCR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textCR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmarkupcomment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfmarkupcomment{${1:markup text%text}}{${2:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmarkupcomment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfmarkupcomment[${3:options%keyvals}]{${1:markup text%text}}{${2:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfmarkupcomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdffreetextcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffreetextcomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdffreetextcomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdffreetextcomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdffreetextcomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfsquarecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfsquarecomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfsquarecomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfsquarecomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfsquarecomment,\\\\pdfcirclecomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfcirclecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcirclecomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfcirclecomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfcirclecomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdfsquarecomment,\\\\pdfcirclecomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdflinecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdflinecomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdflinecomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdflinecomment[${2:options%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdflinecomment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdftooltip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdftooltip{${1:object}}{${2:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"pdftooltip\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdftooltip[${3:options%keyvals}]{${1:object}}{${2:comment%text}}\",\n        \"keys\": [\n          \"\\\\pdftooltip\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfcommentsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcommentsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pdfcommentsetup\",\n          \"\\\\defineavatar,\\\\definestyle,\\\\pdfcommentsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listofpdfcomments\"\n    },\n    {\n      \"name\": \"listofpdfcomments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listofpdfcomments[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listofpdfcomments\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setliststyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setliststyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"defineliststyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineliststyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defineavatar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineavatar{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\defineavatar,\\\\definestyle,\\\\pdfcommentsetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"definestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definestyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\defineavatar,\\\\definestyle,\\\\pdfcommentsetup\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pdfsidelinecomment\"\n    },\n    {\n      \"name\": \"pdfsidelinecomment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pdfsidelinecomment}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pdfcomment#c\": [\n      \"final\",\n      \"draft\",\n      \"dvipdfmx\",\n      \"version=${1|1,2|}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"opacity=${1:factor}\",\n      \"icon=${1|Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,Check,Circle,Cross,Star,RightArrow,RightPointer,UpArrow,UpLeftArrow,CrossHairs|}\",\n      \"deadline=${1:deadline}\",\n      \"color=${1:color}\",\n      \"icolor=${1:color}\",\n      \"open\",\n      \"hspace=\",\n      \"type=${1|freetext,callout,typewriter,line,polyline,polygon|}\",\n      \"font=${1:font}\",\n      \"fontsize=${1:fontsize}\",\n      \"fontcolor=${1:color}\",\n      \"line={${1:coordinates}}\",\n      \"linewidth=${1:linewidth}\",\n      \"linebegin={${1:arrow type}}\",\n      \"lineend={${1:arrow type}}\",\n      \"linesep=\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"bse=${1|none,cloudy|}\",\n      \"bsei=${1:number}\",\n      \"caption=${1|none,inline,top|}\",\n      \"captionhoffset=\",\n      \"captionvoffset=\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"width=\",\n      \"height=\",\n      \"markup=${1|Highlight,Underline,Squiggly,StrikeOut|}\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"printSOfinal\"\n    ],\n    \"\\\\begin{pdfsidelinecomment}\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"color=${1:color}\",\n      \"icolor=${1:color}\",\n      \"opacity=${1:factor}\",\n      \"linewidth=${1:linewidth}\",\n      \"linebegin={${1:arrow type}}\",\n      \"lineend={${1:arrow type}}\",\n      \"linesep=\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"caption=${1|none,inline,top|}\",\n      \"captionhoffset=\",\n      \"captionvoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\"\n    ],\n    \"\\\\pdfcomment,\\\\pdfmargincomment\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"icon=${1|Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,Check,Circle,Cross,Star,RightArrow,RightPointer,UpArrow,UpLeftArrow,CrossHairs|}\",\n      \"color=${1:color}\",\n      \"opacity=\",\n      \"open\",\n      \"hspace=\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"id=\",\n      \"deadline=${1:deadline}\"\n    ],\n    \"\\\\pdfmarkupcomment\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"color=${1:color}\",\n      \"opacity=\",\n      \"markup=${1|Highlight,Underline,Squiggly,StrikeOut|}\",\n      \"mathstyle=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"id=\",\n      \"open\"\n    ],\n    \"\\\\pdffreetextcomment\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"color=${1:color}\",\n      \"font=${1:font name}\",\n      \"fontsize=\",\n      \"fontcolor=${1:color}\",\n      \"opacity=\",\n      \"line={${1:coordinates}}\",\n      \"linewidth=\",\n      \"lineend={${1:arrow type}}\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"bse=${1|none,cloudy|}\",\n      \"bsei=${1:number}\",\n      \"type=${1|freetext,callout,typewriter|}\",\n      \"height=\",\n      \"width=\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"justification=${1|left,right|}\"\n    ],\n    \"\\\\pdfsquarecomment,\\\\pdfcirclecomment\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"color=${1:color}\",\n      \"icolor=${1:color}\",\n      \"opacity=\",\n      \"linewidth=\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"bse=${1|none,cloudy|}\",\n      \"bsei=${1:number}\",\n      \"height=\",\n      \"width=\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"justification=${1|left,right|}\"\n    ],\n    \"\\\\pdflinecomment\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"type=${1|line,polyline,polygon|}\",\n      \"color=${1:color}\",\n      \"icolor=${1:color}\",\n      \"opacity=\",\n      \"caption=${1|none,inline,top|}\",\n      \"captionhoffset=\",\n      \"captionvoffset=\",\n      \"linewidth=\",\n      \"linebegin={${1:arrow type}}\",\n      \"lineend={${1:arrow type}}\",\n      \"line={${1:coordinates}}\",\n      \"bse=${1|none,cloudy|}\",\n      \"bsei=${1:number}\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\"\n    ],\n    \"\\\\pdftooltip\": [\n      \"disable\",\n      \"mathstyle=\"\n    ],\n    \"\\\\pdfcommentsetup\": [\n      \"local={${1:local options}}\",\n      \"final\",\n      \"draft\",\n      \"dvipdfmx\",\n      \"version=${1:number}\",\n      \"avatar=${1:avatar}\"\n    ],\n    \"\\\\listofpdfcomments\": [\n      \"liststyle=${1|AuthorSubject,AuthorSubjectDeadline,SubjectAuthorComment,SubjectAuthorCommentDeadline,AuthorComment,AuthorCommentDeadline,SubjectComment,SubjectCommentDeadline,Comment,CommentDeadline|}\",\n      \"heading={${1:heading}}\"\n    ],\n    \"\\\\defineavatar,\\\\definestyle,\\\\pdfcommentsetup\": [\n      \"avatar=${1:avatar}\",\n      \"style=${1:style}\",\n      \"subject=${1:subject}\",\n      \"author=${1:author}\",\n      \"color=${1:color}\",\n      \"icolor=${1:color}\",\n      \"opacity=\",\n      \"linewidth=\",\n      \"linebegin={${1:arrow type}}\",\n      \"lineend={${1:arrow type}}\",\n      \"linesep=\",\n      \"borderstyle=${1|solid,dashed|}\",\n      \"dashstyle={${1:thickness} ${2:space}}\",\n      \"caption=${1|none,inline,top|}\",\n      \"captionhoffset=\",\n      \"captionvoffset=\",\n      \"disable\",\n      \"date=${1:date}\",\n      \"timezone=${1:timezone}\",\n      \"deadline=${1:deadline}\",\n      \"open\",\n      \"hspace=\",\n      \"type=\",\n      \"font=${1:font name}\",\n      \"fontsize=\",\n      \"fontcolor=${1:color}\",\n      \"line={${1:coordinates}}\",\n      \"bse=${1|none,cloudy|}\",\n      \"bsei=${1:number}\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"width\",\n      \"height\",\n      \"markup=${1|Highlight,Underline,Squiggly,StrikeOut|}\",\n      \"mathstyle=\",\n      \"printSOfinal\",\n      \"icon=${1|Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,Check,Circle,Cross,Star,RightArrow,RightPointer,UpArrow,UpLeftArrow,CrossHairs|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfcomment#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfcrypt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfcryptsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfcryptsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/pdfcrypt#c,\\\\pdfcryptsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nopdfcrypt\"\n    },\n    {\n      \"name\": \"pdfcrypt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfcrypt#c,\\\\pdfcryptsetup\": [\n      \"owner=${1:owner password}\",\n      \"user=${1:user password}\",\n      \"print\",\n      \"copy\",\n      \"edit\",\n      \"annotate\",\n      \"all\",\n      \"none\",\n      \"debug\",\n      \"set\",\n      \"pdftex\",\n      \"vtex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfcrypt#c,\\\\pdfcryptsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfescape.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EdefEscapeHex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefEscapeHex{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefUnescapeHex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefUnescapeHex{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefEscapeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefEscapeName{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefEscapeString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefEscapeString{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefUnescapeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefUnescapeName{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefUnescapeString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefUnescapeString{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"EdefSanitize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdefSanitize{${1:cmd}}{${2:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfextra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attach\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"attach[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"DDDannot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DDDannot{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DDDcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DDDcontext{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DDDview\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"DDDview[${1:view name}][${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\DDDview\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"defaultpageactions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"defaultpageactions[${1:additional action specs}]\"\n      }\n    },\n    {\n      \"name\": \"defaultpageduration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"defaultpageduration[${1:duration}]\"\n      }\n    },\n    {\n      \"name\": \"defaultpagerotate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"defaultpagerotate[${1:rotation spec}]\"\n      }\n    },\n    {\n      \"name\": \"dljavascript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dljavascript[${2:name}]{${1:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"duplexdisplay\"\n    },\n    {\n      \"name\": \"fullscreen\"\n    },\n    {\n      \"name\": \"hlink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hlink[${2:action spec}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"initpageattributes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lininglinks\"\n    },\n    {\n      \"name\": \"nolininglinks\"\n    },\n    {\n      \"name\": \"openaction\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"openaction[${1:action spec}]\"\n      }\n    },\n    {\n      \"name\": \"pageactions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pageactions[${1:additional action specs}]\"\n      }\n    },\n    {\n      \"name\": \"pageattributes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageduration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pageduration[${1:duration}]\"\n      }\n    },\n    {\n      \"name\": \"pagerotate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pagerotate[${1:rotation spec}]\"\n      }\n    },\n    {\n      \"name\": \"pdfaction\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pdfaction[${1:action spec}]\"\n      }\n    },\n    {\n      \"name\": \"render\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"render[${2:name}][${3:options%keyvals}]{${1:appearance}}\",\n        \"keys\": [\n          \"\\\\render\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"render\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"render[${2:name}]{${1:appearance}}\"\n      }\n    },\n    {\n      \"name\": \"renditionautoplay\"\n    },\n    {\n      \"name\": \"RM\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"RM[${2:name}][${3:options%keyvals}]{${1:appearance}}\",\n        \"keys\": [\n          \"\\\\RM\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RM\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RM[${2:name}]{${1:appearance}}\"\n      }\n    },\n    {\n      \"name\": \"sdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sdef{${1:string%definition}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"showattached\"\n    },\n    {\n      \"name\": \"showoutlines\"\n    },\n    {\n      \"name\": \"transition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transition[${1:transition spec}]\"\n      }\n    },\n    {\n      \"name\": \"transitions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transitions[${1:transition spec}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DDDview\": [\n      \"projection=${1|perspective,ortho|}\",\n      \"scale=${1:factor}\",\n      \"FOV=${1:number 0-180}\",\n      \"background=${1:OpTeX color}\",\n      \"rendermode=${1|Solid,SolidWireframe,Transparent,TransparentWireframe,BoundingBox,TransparentBoundingBox,Wireframe,ShadedWireframe,Vertices,ShadedVertices,Illustration,SolidOutline,ShadedIllustration|}\",\n      \"lighting=${1|White,Day,Night,Hard,Primary,Blue,Red,Cube,CAD,Headlamp|}\",\n      \"method=${1|media9,manual,u3d|}\",\n      \"u3dpath=${1:path}\",\n      \"coo=${1:x y z}\",\n      \"roo=${1:number}\",\n      \"c2c=${1:x y z}\"\n    ],\n    \"\\\\render\": [\n      \"controls\",\n      \"volume=${1:number 0-100}\",\n      \"repeat=${1:integer}\",\n      \"background=${1:OpTeX color}\",\n      \"opacity=${1:factor}\",\n      \"aactions=\\\\renditionautoplay\",\n      \"name=${1:string}\"\n    ],\n    \"\\\\RM\": [\n      \"activation=${1|explicit,auto|}\",\n      \"deactivation=${1|explicit,auto|}\",\n      \"toolbar\",\n      \"views={${1:name1,name2,...}}\",\n      \"scripts={${1:name1,name2,...}}\",\n      \"name=${1:string}\",\n      \"background=${1:OpTeX color}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdflscape.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"lscape\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfmanagement-testphase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tagpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PDFManagementAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PDFManagementAdd{${1:resource path}}{${2:name}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToDocumentProperties{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDocumentProperties\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddToDocumentProperties[${3:label}]{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"GetDocumentProperties\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetDocumentProperties{${1:label/property}}\"\n      }\n    },\n    {\n      \"name\": \"ShowDocumentProperties\"\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"url[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\url\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hrefurl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefurl{${1:URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrefurl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hrefurl[${3:options%keyvals}]{${1:URL}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hrefurl\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hrefpdf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefpdf{${1:file}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrefpdf\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hrefpdf[${3:options%keyvals}]{${1:file}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hrefpdf\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hrefrun\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hrefrun{${1:launch link%URL}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrefrun\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"hrefrun[${3:options%keyvals}]{${1:launch link%URL}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\hrefrun\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\url\": [\n      \"protocol=${1:prefix}\",\n      \"format=${1:format commands}\"\n    ],\n    \"\\\\hrefurl\": [\n      \"urlencode\",\n      \"protocol=${1:prefix}\",\n      \"ismap\"\n    ],\n    \"\\\\hrefpdf\": [\n      \"destination=${1:dest name}\",\n      \"page=${1:number}\",\n      \"pdfremotestartview=${1|Fit,FitB,FitH,FitV,FitBH,FitBV|}\",\n      \"afrelationship=${1:PDF name}\"\n    ],\n    \"\\\\hrefrun\": [\n      \"run-parameter=${1:parameter}\"\n    ],\n    \"\\\\hypersetup\": [\n      \"href/urlencode\",\n      \"href/protocol=${1:prefix}\",\n      \"href/destination=${1:dest name}\",\n      \"href/format=${1:format commands}\",\n      \"pdfcopyright=${1:copyright text}\",\n      \"pdftype=${1|Collection,Dataset,Event,Image,InteractiveResource,MovingImage,PhysicalObject,Service,Software,Sound,StillImage,Text|}\",\n      \"pdflicenseurl=${1:URL}\",\n      \"pdfauthortitle=${1:author title}\",\n      \"pdfcaptionwriter=${1:caption writer name}\",\n      \"pdfmetalang=${1:meta language}\",\n      \"pdfsource=${1:source file name}\",\n      \"pdfdocumentid=uuid:${1:id num}\",\n      \"pdfinstanceid=uuid:${1:id num}\",\n      \"pdfversionid=${1:version id}\",\n      \"pdfrendition=${1|default,draft,low-res,proof,screen,thumbnail|}\",\n      \"pdfpublication=${1:publication}\",\n      \"pdfpubtype=${1:publication type}\",\n      \"pdfbytes=${1:file size}\",\n      \"pdfnumpages=${1:number of pages}\",\n      \"pdfissn=${1:print ISSN}\",\n      \"pdfeissn=${1:electronic ISSN}\",\n      \"pdfisbn=${1:ISBN}\",\n      \"pdfbookedition=${1:book edition}\",\n      \"pdfpublisher=${1:publisher}\",\n      \"pdfvolumenum=${1:volume number}\",\n      \"pdfissuenum=${1:issue number}\",\n      \"pdfpagerange={${1:page ranges}}\",\n      \"pdfdoi=${1:DOI}\",\n      \"pdfurl=${1:URL}\",\n      \"pdfidentifier=${1:identifier}\",\n      \"pdfsubtitle=${1:subtitle}\",\n      \"pdfpubstatus=${1:publication status}\",\n      \"pdfcontactaddress=${1:street address}\",\n      \"pdfcontactcity=${1:city}\",\n      \"pdfcontactregion=${1:state or province}\",\n      \"pdfcontactpostcode=${1:postal code}\",\n      \"pdfcontactcountry=${1:country}\",\n      \"pdfcontactphone=${1:phone number}\",\n      \"pdfcontactemail=${1:email}\",\n      \"pdfcontacturl=${1:URL}\",\n      \"pdfdate=${1:date}\",\n      \"link\",\n      \"url\",\n      \"file\",\n      \"run\",\n      \"menu\",\n      \"nested-links\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfmarginpar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfmarginpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmarginpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdfmarginpar[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\pdfmarginpar#c,\\\\pdfmarginparset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfmarginparset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmarginparset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pdfmarginpar#c,\\\\pdfmarginparset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pdfmarginpar#c,\\\\pdfmarginparset#c\": [\n      \"Name=${1|Comment,Key,Note,Help,NewParagraph,Paragraph,Insert,none|}\",\n      \"Comment\",\n      \"Key\",\n      \"Note\",\n      \"Help\",\n      \"NewParagraph\",\n      \"Paragraph\",\n      \"Insert\",\n      \"Open\",\n      \"color=[${1:R G B}]\",\n      \"opacity=${1:factor}\",\n      \"Subject={${1:subject}}\",\n      \"voffset=\",\n      \"hoffset=\",\n      \"Subtype=Text\",\n      \"Subtype/Other=${1:pdf name}\",\n      \"caption=${1:text}\",\n      \"width=\",\n      \"height=\",\n      \"depth=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfmsym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"xetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfmsymsetscalefactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmsymsetscalefactor{${1:fontsize}}\"\n      }\n    },\n    {\n      \"name\": \"aint\"\n    },\n    {\n      \"name\": \"bigcircwedge\"\n    },\n    {\n      \"name\": \"bigdcup\"\n    },\n    {\n      \"name\": \"bigdwedge\"\n    },\n    {\n      \"name\": \"bigexists\"\n    },\n    {\n      \"name\": \"bigforall\"\n    },\n    {\n      \"name\": \"circwedge\"\n    },\n    {\n      \"name\": \"dcup\"\n    },\n    {\n      \"name\": \"divs\"\n    },\n    {\n      \"name\": \"dwedge\"\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"ndivs\"\n    },\n    {\n      \"name\": \"oiNint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oiNint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"biNint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biNint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overrightleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"straightlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"straightlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"straightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"straightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underrightleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"understraightlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"understraightlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"understraightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"understraightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"undervecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undervecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortoverleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortoverleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortoverleftrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortoverleftrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortoverleftrightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortoverleftrightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortoverrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortoverrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortoverrightleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortoverrightleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortstraightlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortstraightlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortstraightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortstraightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderleftrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderleftrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderleftrightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderleftrightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderrightharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderrightharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderrightleftharp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderrightleftharp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderstraightlvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderstraightlvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortunderstraightvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortunderstraightvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortundervecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortundervecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"shortvecc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortvecc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varrightarrow\"\n    },\n    {\n      \"name\": \"varleftarrow\"\n    },\n    {\n      \"name\": \"varrightharp\"\n    },\n    {\n      \"name\": \"varleftharp\"\n    },\n    {\n      \"name\": \"varleftrightarrow\"\n    },\n    {\n      \"name\": \"varleftrightharp\"\n    },\n    {\n      \"name\": \"varrightleftharp\"\n    },\n    {\n      \"name\": \"varmapsto\"\n    },\n    {\n      \"name\": \"varmapsfrom\"\n    },\n    {\n      \"name\": \"varuphookrightarrow\"\n    },\n    {\n      \"name\": \"varuphookleftarrow\"\n    },\n    {\n      \"name\": \"vardownhookrightarrow\"\n    },\n    {\n      \"name\": \"vardownhookleftarrow\"\n    },\n    {\n      \"name\": \"varhookrightarrow\"\n    },\n    {\n      \"name\": \"varhookleftarrow\"\n    },\n    {\n      \"name\": \"vardoublerightarrow\"\n    },\n    {\n      \"name\": \"vardoubleleftarrow\"\n    },\n    {\n      \"name\": \"varcirclerightarrow\"\n    },\n    {\n      \"name\": \"varcircleleftarrow\"\n    },\n    {\n      \"name\": \"varRightarrow\"\n    },\n    {\n      \"name\": \"varLeftarrow\"\n    },\n    {\n      \"name\": \"varCirclerightarrow\"\n    },\n    {\n      \"name\": \"varCircleleftarrow\"\n    },\n    {\n      \"name\": \"varSquarerightarrow\"\n    },\n    {\n      \"name\": \"varSquareleftarrow\"\n    },\n    {\n      \"name\": \"varRibbonrightarrow\"\n    },\n    {\n      \"name\": \"varRibbonleftarrow\"\n    },\n    {\n      \"name\": \"squaredarrow\"\n    },\n    {\n      \"name\": \"roundedarrow\"\n    },\n    {\n      \"name\": \"varrightarrows\"\n    },\n    {\n      \"name\": \"varleftarrows\"\n    },\n    {\n      \"name\": \"varrightleftarrows\"\n    },\n    {\n      \"name\": \"varleftrightarrows\"\n    },\n    {\n      \"name\": \"varRrightarrow\"\n    },\n    {\n      \"name\": \"varLleftarrow\"\n    },\n    {\n      \"name\": \"varLleftRrightarrow\"\n    },\n    {\n      \"name\": \"longvarrightarrow\"\n    },\n    {\n      \"name\": \"longvarleftarrow\"\n    },\n    {\n      \"name\": \"longvarrightharp\"\n    },\n    {\n      \"name\": \"longvarleftharp\"\n    },\n    {\n      \"name\": \"longvarleftrightarrow\"\n    },\n    {\n      \"name\": \"longvarleftrightharp\"\n    },\n    {\n      \"name\": \"longvarrightleftharp\"\n    },\n    {\n      \"name\": \"longvarmapsto\"\n    },\n    {\n      \"name\": \"longvarmapsfrom\"\n    },\n    {\n      \"name\": \"longvaruphookrightarrow\"\n    },\n    {\n      \"name\": \"longvaruphookleftarrow\"\n    },\n    {\n      \"name\": \"longvardownhookrightarrow\"\n    },\n    {\n      \"name\": \"longvardownhookleftarrow\"\n    },\n    {\n      \"name\": \"longvarhookrightarrow\"\n    },\n    {\n      \"name\": \"longvarhookleftarrow\"\n    },\n    {\n      \"name\": \"longvardoublerightarrow\"\n    },\n    {\n      \"name\": \"longvardoubleleftarrow\"\n    },\n    {\n      \"name\": \"longvarcirclerightarrow\"\n    },\n    {\n      \"name\": \"longvarcircleleftarrow\"\n    },\n    {\n      \"name\": \"longvarRightarrow\"\n    },\n    {\n      \"name\": \"longvarLeftarrow\"\n    },\n    {\n      \"name\": \"longvarCirclerightarrow\"\n    },\n    {\n      \"name\": \"longvarCircleleftarrow\"\n    },\n    {\n      \"name\": \"longvarSquarerightarrow\"\n    },\n    {\n      \"name\": \"longvarSquareleftarrow\"\n    },\n    {\n      \"name\": \"longvarRibbonrightarrow\"\n    },\n    {\n      \"name\": \"longvarRibbonleftarrow\"\n    },\n    {\n      \"name\": \"longsquaredarrow\"\n    },\n    {\n      \"name\": \"longroundedarrow\"\n    },\n    {\n      \"name\": \"longvarrightarrows\"\n    },\n    {\n      \"name\": \"longvarleftarrows\"\n    },\n    {\n      \"name\": \"longvarrightleftarrows\"\n    },\n    {\n      \"name\": \"longvarleftrightarrows\"\n    },\n    {\n      \"name\": \"longvarRrightarrow\"\n    },\n    {\n      \"name\": \"longvarLleftarrow\"\n    },\n    {\n      \"name\": \"longvarLleftRrightarrow\"\n    },\n    {\n      \"name\": \"xvarrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarrightharp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarrightharp{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftharp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftharp{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftrightharp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftrightharp{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarrightleftharp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarrightleftharp{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarmapsto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarmapsto{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarmapsfrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarmapsfrom{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvaruphookrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvaruphookrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvaruphookleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvaruphookleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvardownhookrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvardownhookrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvardownhookleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvardownhookleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarhookrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarhookrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarhookleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarhookleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvardoublerightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvardoublerightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvardoubleleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvardoubleleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarcirclerightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarcirclerightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarcircleleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarcircleleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarRightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarRightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarLeftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarLeftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarCirclerightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarCirclerightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarCircleleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarCircleleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarSquarerightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarSquarerightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarSquareleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarSquareleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarRibbonrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarRibbonrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarRibbonleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarRibbonleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xsquaredarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xsquaredarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xroundedarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xroundedarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarrightarrows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarrightarrows{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftarrows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftarrows{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarrightleftarrows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarrightleftarrows{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarleftrightarrows\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarleftrightarrows{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarRrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarRrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarLleftarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarLleftarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xvarLleftRrightarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xvarLleftRrightarrow{${1:arg}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varwidehat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varwidehat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varwidecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varwidecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"varwidetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varwidetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"suum\"\n    },\n    {\n      \"name\": \"prood\"\n    },\n    {\n      \"name\": \"putsym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putsym{${1:main symbol}}{${2:secondary symbol}}\"\n      }\n    },\n    {\n      \"name\": \"iNint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iNint{${1:N}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfoverlay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfoverlaySetPDF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfoverlaySetPDF{${1:pdf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfoverlaySetGraphicsOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfoverlaySetGraphicsOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pdfoverlaySetGraphicsOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfoverlayIncludeToPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfoverlayIncludeToPage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pdfoverlayIncludeToLastPage\"\n    },\n    {\n      \"name\": \"pdfoverlaySkipToPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfoverlaySkipToPage{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"pdfoverlayPauseOutput\"\n    },\n    {\n      \"name\": \"pdfoverlayResumeOutput\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pdfoverlaySetGraphicsOptions\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfpagediff.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"substr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"layerPages\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"layerPages{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"layerPages\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"layerPages[${3:page numbers}]{${1:file1%file}}{${2:file2%file}}\"\n      }\n    },\n    {\n      \"name\": \"FirstDoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstDoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SecondDoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SecondDoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"obj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"obj{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"objref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"doobjref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doobjref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"objrefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objrefs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lastobjref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisobjref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextobjref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closelayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDonercname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDoneobjnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDtworcname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDtwoobjnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDtwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersnames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"next\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersconfig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layersOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hoddlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hevenlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"buildPageList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildPageList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"processNormal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processNormal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"processComma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processComma{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"processOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processOther{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"processHyphen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processHyphen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"findPages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findPages{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Filestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Filesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDfirstdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDseconddoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDfirstlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPDsecondlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placepages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definejnldata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaljnldata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"normaljnldata{${1:jid}}{${2:vlength}}{${3:hodd}}{${4:heven}}\"\n      }\n    },\n    {\n      \"name\": \"starjnldata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"starjnldata{${1:jid}}{${2:vlength}}{${3:hodd}}{${4:heven}}\"\n      }\n    },\n    {\n      \"name\": \"nameUse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameUse{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"pdflscape\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"count1to\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includepdf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includepdf[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includepdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdf{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"includepdfmerge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includepdfmerge[${2:options%keyvals}]{${1:file-list%definition}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includepdfmerge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdfmerge{${1:file-list%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includepdfset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includepdfset{${1:global options%keyvals}}\",\n        \"keys\": [\n          \"\\\\includepdf,includepdfmerge,\\\\includepdfset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"threadinfodict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddToSurvey\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfpages#c\": [\n      \"final\",\n      \"draft\",\n      \"demo\",\n      \"nodemo\",\n      \"enable-survey\"\n    ],\n    \"\\\\includepdf,includepdfmerge,\\\\includepdfset\": [\n      \"pages={${1:page range}}\",\n      \"nup=${1:xnup}x${2:ynup}\",\n      \"landscape\",\n      \"delta=${1:delx} ${2:dely}\",\n      \"deltax=${1:delx}\",\n      \"deltay=${1:dely}\",\n      \"offset=${1:offx} ${2:offy}\",\n      \"frame\",\n      \"column\",\n      \"columnstrict\",\n      \"openright\",\n      \"openrighteach\",\n      \"pagecommand=${1:code}\",\n      \"turn\",\n      \"noautoscale\",\n      \"fitpaper\",\n      \"reflect\",\n      \"reflect*\",\n      \"signature=${1:size}\",\n      \"signature*=${1:size}\",\n      \"booklet\",\n      \"picturecommand=${1:code}\",\n      \"picturecommand*=${1:code}\",\n      \"pagetemplate=${1:page number}\",\n      \"templatesize={${1:width}}{${2:height}}\",\n      \"rotateoversize\",\n      \"doublepages\",\n      \"doublepagestwist\",\n      \"doublepagestwistodd\",\n      \"doublepagestwist*\",\n      \"doublepagestwistodd*\",\n      \"duplicatepages=${1:integer}\",\n      \"lastpage=${1:page number}\",\n      \"link\",\n      \"linkname=${1:default linkname}\",\n      \"thread\",\n      \"threadname=${1:name}\",\n      \"linktodoc\",\n      \"linkfit=${1|Fit,FitH,FitV,FitB,FitBH,FitBV,Region|}\",\n      \"linktodocfit=\",\n      \"newwindow\",\n      \"linkfilename=${1:name}\",\n      \"addtotoc={${1:page num,section,level,heading,label}}\",\n      \"addtolist={${1:page num,type,heading,label}}\",\n      \"survey\",\n      \"survey-nolink\",\n      \"xr-prefix=${1:prefix}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfpages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfpc-movie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfpcmovie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfpcmovie{${1:poster material}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpcmovie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfpcmovie[${3:options%keyvals}]{${1:poster material}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\pdfpcmovie\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pdfpcmovie\": [\n      \"width=\",\n      \"height=\",\n      \"depth=\",\n      \"autostart\",\n      \"loop\",\n      \"noprogress\",\n      \"start=${1:integer}\",\n      \"stop=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfpc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"hyperxmp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfpcsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpcsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pdfpcsetup,\\\\usepackage/pdfpc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfpcnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfpcnote{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pdfpcsetup,\\\\usepackage/pdfpc#c\": [\n      \"duration=\",\n      \"starttime=\",\n      \"endtime=\",\n      \"enduserslide=\",\n      \"lastminutes=\",\n      \"hidenotes\",\n      \"overridenote\",\n      \"notesposition=${1|right,left,top,bottom,none|}\",\n      \"disablemarkdown\",\n      \"defaulttransition=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\pdfpcsetup,\\\\usepackage/pdfpc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfprivacy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfprivacy#c\": [\n      \"nodocdata\",\n      \"docdata\",\n      \"noproducerdata\",\n      \"producerdata\",\n      \"noeditdata\",\n      \"editdata\",\n      \"noptexdata\",\n      \"ptexdata\",\n      \"nopdftrailerid\",\n      \"pdftrailerid\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfprivacy#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfrender.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdfrender\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfrender{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\pdfrender,\\\\textpdfrender\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textpdfrender\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textpdfrender{${1:keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\pdfrender,\\\\textpdfrender\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pdfrender,\\\\textpdfrender\": [\n      \"TextRenderingMode=${1|0,1,2,3,4,5,6,7,Fill,Stroke,FillStroke,Invisible,FillClip,StrokeClip,FillStrokeClip,Clip|}\",\n      \"LineWidth=\",\n      \"LineCapStyle=${1|0,1,2,Butt,Round,ProjectingSquare|}\",\n      \"LineJoinStyle=${1|0,1,2,Miter,Round,Bevel|}\",\n      \"MiterLimit=${1:number}\",\n      \"Flatness=${1:number}\",\n      \"LineDashPattern=\",\n      \"RenderingIntent=${1|AbsoluteColorimetric,RelativeColorimetric,Saturation,Perceptual|}\",\n      \"FillColor=\",\n      \"StrokeColor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfreview.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"twoopt\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"grffile\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"geometry\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"note{${1:height}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"note[${3:alignment%keyvals}]{${1:height}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\note\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bnote{${1:height}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"cnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cnote{${1:height}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tnote{${1:height}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sourcedoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sourcedoc{${1:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pagegrid\"\n    },\n    {\n      \"name\": \"pagegrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pagegrid[${1:TikZ settings}]\"\n      }\n    },\n    {\n      \"name\": \"pagegrid\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pagegrid[${1:TikZ settings}][${2:steps}]\"\n      }\n    },\n    {\n      \"name\": \"gsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsetlength{${1:length macro}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"thenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettrim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettrim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resettrim[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"ssout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssout{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"page\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:page number}}\"\n      }\n    },\n    {\n      \"name\": \"page\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:page number}}\",\n        \"keys\": [\n          \"\\\\begin{page}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftnotes\"\n    },\n    {\n      \"name\": \"rightnotes\"\n    },\n    {\n      \"name\": \"insertpage\"\n    },\n    {\n      \"name\": \"insertpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"listofnotes\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pdfreview#c\": [\n      \"grid\",\n      \"twocolumn\",\n      \"notenumbers\",\n      \"inline\",\n      \"withnotesonly\",\n      \"staggered\",\n      \"scaletopage=${1:factor}\",\n      \"gridcolor=\",\n      \"bodywidth=${1:factor}\",\n      \"trim=\",\n      \"trimshift=\",\n      \"bodyframe=\",\n      \"sourcedoc=${1:file name}\",\n      \"pageoffset=${1:integer}\",\n      \"alignnotes=${1|t,b,c|}\",\n      \"notesbg=\",\n      \"important=\",\n      \"notesframe=\",\n      \"notesep=\",\n      \"fontsize=${1:fontsize csname}\",\n      \"maxscale=${1:integer}\",\n      \"insertpagemargin=\"\n    ],\n    \"\\\\note\": [\n      \"b\",\n      \"c\",\n      \"t\"\n    ],\n    \"\\\\begin{page}\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\",\n      \"intent\",\n      \"maskarray\",\n      \"ocobjnum\",\n      \"ocobjref\",\n      \"resetcolor\",\n      \"resolution\",\n      \"xmpfile\",\n      \"Trim=\",\n      \"Viewport=\",\n      \"Clip=\",\n      \"Clip*=\",\n      \"rndcorners=\",\n      \"margin=\",\n      \"margin*=\",\n      \"padding=\",\n      \"padding*=\",\n      \"vspace=\",\n      \"vspace*=\",\n      \"min width=\",\n      \"max width=\",\n      \"min height=\",\n      \"max height=\",\n      \"min totalheight=\",\n      \"max totalheight=\",\n      \"min size={${1:width}}{${2:height}}\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"min totalsize={${1:width}}{${2:totalheight}}\",\n      \"max totalsize={${1:width}}{${2:totalheight}}\",\n      \"warn width\",\n      \"warn width=\",\n      \"scale={${1:h-factor}}{${2:v-factor}}\",\n      \"reflect\",\n      \"fbox\",\n      \"fbox=\",\n      \"frame\",\n      \"frame=\",\n      \"cfbox=\",\n      \"cframe=\",\n      \"rndframe=\",\n      \"rndcornersbox\",\n      \"rndfbox\",\n      \"valign=${1|T,M,B,t,m,b|}\",\n      \"raise=\",\n      \"set height=\",\n      \"set depth=\",\n      \"set vsize={${1:height}}{${2:depth}}\",\n      \"center\",\n      \"center=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"inner\",\n      \"inner=\",\n      \"outer\",\n      \"outer=\",\n      \"pagecenter\",\n      \"pagecenter=\",\n      \"pageleftalign\",\n      \"pageleftalign=\",\n      \"pagerightalign\",\n      \"pagerightalign=\",\n      \"pageinner\",\n      \"pageinner=\",\n      \"pageouter\",\n      \"pageouter=\",\n      \"textareacenter\",\n      \"textareacenter=\",\n      \"textarealeftalign\",\n      \"textarealeftalign=\",\n      \"textarearightalign\",\n      \"textarearightalign=\",\n      \"textareainner\",\n      \"textareainner=\",\n      \"textareaouter\",\n      \"textareaouter=\",\n      \"noindent\",\n      \"leavevmode\",\n      \"lap=\",\n      \"rlap\",\n      \"llap\",\n      \"clap\",\n      \"color=\",\n      \"color*=${1:color macro}\",\n      \"fgcolor=\",\n      \"fgcolor*=${1:color macro}\",\n      \"bgcolor=\",\n      \"bgcolor*=${1:color macro}\",\n      \"bgimage=\",\n      \"bgimage*=\",\n      \"fgimage=\",\n      \"fgimage*=\",\n      \"background=\",\n      \"background*=\",\n      \"foreground=\",\n      \"foreground*=\",\n      \"dpi=${1:number}\",\n      \"pxdim=\",\n      \"minipage=\",\n      \"varwidth=\",\n      \"tabular=[${1:position}]{${2:col spec}}\",\n      \"tabular*=[${1:position}]{${2:width}}{${3:col spec}}\",\n      \"array=[${1:position}]{${2:col spec}}\",\n      \"stack\",\n      \"stack=\",\n      \"innerenv=${1:envname}\",\n      \"innercode={${1:begin code}}{${2:end code}}\",\n      \"caption=\",\n      \"captionabove=\",\n      \"captionbelow=\",\n      \"label=\",\n      \"figure\",\n      \"figure=${1:placement}\",\n      \"float=\",\n      \"nofloat=${1:float type}\",\n      \"rotate=\",\n      \"env=\",\n      \"addcode={${1:code before}}{${2:code after}}\",\n      \"Addcode={${1:code before}}{${2:code after}}\",\n      \"appcode=${1:code after}\",\n      \"precode=${1:code before}\",\n      \"Precode={${1:code before}}\",\n      \"execute=${1:code}\",\n      \"Execute=${1:code}\",\n      \"phantom\",\n      \"phantom=${1|h,v|}\",\n      \"gobble\",\n      \"discard\",\n      \"content=${1:new content}\",\n      \"gstore=${1:box register}\",\n      \"gstore*=${1:box register}\",\n      \"gstore width=${1:length register}\",\n      \"gstore height=${1:length register}\",\n      \"gstore depth=${1:length register}\",\n      \"gstore totalheight=${1:length register}\",\n      \"gstore sizes=\",\n      \"process\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfreview#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfscreen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"truncate\"\n    },\n    {\n      \"name\": \"fancybox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arg\",\n      \"if\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arg\",\n      \"if\": \"code\"\n    },\n    {\n      \"name\": \"oarg\",\n      \"if\": \"code\"\n    },\n    {\n      \"name\": \"Oarg\",\n      \"if\": \"code\"\n    },\n    {\n      \"name\": \"emblema\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emblema{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"urlid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlid{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"screensize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"screensize{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"margins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"margins{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"addButton\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addButton{${1:length}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Acrobatmenu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Acrobatmenu{${1:text}}{${2:button code}}\"\n      }\n    },\n    {\n      \"name\": \"imageButton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"imageButton{${1:width}}{${2:height}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"panelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overlay{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"paneloverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paneloverlay{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"overlayempty\"\n    },\n    {\n      \"name\": \"paneloverlayempty\"\n    },\n    {\n      \"name\": \"changeoverlay\"\n    },\n    {\n      \"name\": \"bottombuttons\"\n    },\n    {\n      \"name\": \"nobottombuttons\"\n    },\n    {\n      \"name\": \"topbuttons\"\n    },\n    {\n      \"name\": \"notopbuttons\"\n    },\n    {\n      \"name\": \"realnormalsize\"\n    },\n    {\n      \"name\": \"realsmall\"\n    },\n    {\n      \"name\": \"realfootnotesize\"\n    },\n    {\n      \"name\": \"realscriptsize\"\n    },\n    {\n      \"name\": \"realtiny\"\n    },\n    {\n      \"name\": \"reallarge\"\n    },\n    {\n      \"name\": \"realLarge\"\n    },\n    {\n      \"name\": \"realLARGE\"\n    },\n    {\n      \"name\": \"realhuge\"\n    },\n    {\n      \"name\": \"realHuge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\"\n    },\n    {\n      \"name\": \"pagedissolve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pagedissolve{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"AddToOverlay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToOverlay{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"affname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Black\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"buttonbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buttonbox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"buttonwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"change\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ContPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"divname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"emailid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emailid{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"FBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InitLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LBlack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LLX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LLY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"marginsize{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"margintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NavigationPanel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overlayheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overlaywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelclosename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelclosename{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelcontentsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelcontentsname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelfullscreenname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelfullscreenname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelgobackname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelgobackname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelhomepagename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelhomepagename{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelofname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelofname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelpagename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelpagename{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panelquitname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelquitname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"paneltitlepagename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paneltitlepagename{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"panlabstractname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panlabstractname{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"PDFBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PDFBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PDFSout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScreenLastPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scrNormalButton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scrNormalButton{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"scrShadowButton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scrShadowButton{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Sectionformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sectionformat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"shorttitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shorttitle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"smallbuttonwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ST\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"st\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Textmarginbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Textmarginleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Textmarginright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Textmargintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoverlay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepanel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslideoverlay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"URY\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"decl\",\n      \"if\": \"code\"\n    },\n    {\n      \"name\": \"slide\"\n    },\n    {\n      \"name\": \"screen\"\n    },\n    {\n      \"name\": \"print\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pdfscreen#c\": [\n      \"screen\",\n      \"print\",\n      \"panelleft\",\n      \"panelright\",\n      \"nopanel\",\n      \"paneltoc\",\n      \"sectionbreak\",\n      \"code\",\n      \"pdftex\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dviwindo\",\n      \"ps2pdf\",\n      \"vtex\",\n      \"bluelace\",\n      \"chocolate\",\n      \"palegreen\",\n      \"orange\",\n      \"gray\",\n      \"blue\",\n      \"nocfg\",\n      \"english\",\n      \"french\",\n      \"dutch\",\n      \"czech\",\n      \"norsk\",\n      \"nynorsk\",\n      \"slovak\",\n      \"portuges\",\n      \"spanish\",\n      \"swedish\",\n      \"danish\",\n      \"polish\",\n      \"russian\",\n      \"german\",\n      \"slovene\",\n      \"catalan\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfscreen#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfswitch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ae\"\n    },\n    {\n      \"name\": \"aeguill\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"thumbpdf\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"backref\"\n    },\n    {\n      \"name\": \"backref\",\n      \"if\": \"pagebackref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfswitch#c\": [\n      \"nocolor\",\n      \"backref\",\n      \"pagebackref\",\n      \"noborder\",\n      \"plainpages\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfswitch#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdfsync.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pdfsync\"\n    },\n    {\n      \"name\": \"pdfsyncstart\"\n    },\n    {\n      \"name\": \"pdfsyncstop\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfsync#c\": [\n      \"nopar\",\n      \"nomath\",\n      \"nodisplay\",\n      \"nohbox\",\n      \"novbox\",\n      \"nocr\",\n      \"off\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfsync#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pdftexcmds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pdfx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"everyshi\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"colorprofiles\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xmpincl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Author\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Author{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"Title\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Title{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Language\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Language{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Keywords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"Publisher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Publisher{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"Subject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"Copyright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Copyright{${1:statement%text}}\"\n      }\n    },\n    {\n      \"name\": \"CopyrightURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CopyrightURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Copyrighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Copyrighted{${1:True or False}}\"\n      }\n    },\n    {\n      \"name\": \"Owner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Owner{${1:owner}}\"\n      }\n    },\n    {\n      \"name\": \"CertificateURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CertificateURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Contributor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Contributor{${1:contributor}}\"\n      }\n    },\n    {\n      \"name\": \"Coverage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Coverage{${1:statement%text}}\"\n      }\n    },\n    {\n      \"name\": \"Date\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Date{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"PublicationType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PublicationType{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\PublicationType#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Relation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Relation{${1:relation%text}}\"\n      }\n    },\n    {\n      \"name\": \"Source\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Source{${1:document}}\"\n      }\n    },\n    {\n      \"name\": \"Doi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Doi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"ISBN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISBN{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"URLlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"URLlink{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Journaltitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Journaltitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"Journalnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Journalnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Volume\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Volume{${1:volume}}\"\n      }\n    },\n    {\n      \"name\": \"Issue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Issue{${1:issue}}\"\n      }\n    },\n    {\n      \"name\": \"Firstpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Firstpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Lastpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lastpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"CoverDisplayDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoverDisplayDate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"CoverDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoverDate{${1:YYYY-MM-DD}}\"\n      }\n    },\n    {\n      \"name\": \"AuthoritativeDomain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuthoritativeDomain{${1:extra names}}\"\n      }\n    },\n    {\n      \"name\": \"Creator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Creator{${1:tool%text}}\"\n      }\n    },\n    {\n      \"name\": \"CreatorTool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CreatorTool{${1:tool%text}}\"\n      }\n    },\n    {\n      \"name\": \"Org\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Org{${1:organization}}\"\n      }\n    },\n    {\n      \"name\": \"WebStatement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WebStatement{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Advisory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Advisory{${1:statement%text}}\"\n      }\n    },\n    {\n      \"name\": \"BaseURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BaseURL{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"Identifier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Identifier{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"Nickname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nickname{${1:nickname}}\"\n      }\n    },\n    {\n      \"name\": \"Thumbnails\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thumbnails{${1:thumbnails}}\"\n      }\n    },\n    {\n      \"name\": \"MMversionID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MMversionID{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"Producer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Producer{${1:producer}}\"\n      }\n    },\n    {\n      \"name\": \"textLAT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLAT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLII{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLIII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLIII{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLIV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLIV{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLTV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLTV{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLVI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLVI{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLVII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLVII{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLIIX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLIIX{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLIX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLIX{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textKOI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textKOI{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLGR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLGR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textARM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textARM{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textHEB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textHEB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textHEBO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textHEBO{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfxEnableCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfxEnableCommands{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxDisableCommands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfxDisableCommands{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"setRGBcolorprofile\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setRGBcolorprofile{${1:file}}{${2:identifier}}{${3:info string}}{${4:registry URL%URL}}\"\n      }\n    },\n    {\n      \"name\": \"setCMYKcolorprofile\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setCMYKcolorprofile{${1:file}}{${2:output intent}}{${3:identifier}}{${4:registry URL%URL}}\"\n      }\n    },\n    {\n      \"name\": \"setEXTERNALprofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setEXTERNALprofile{${1:profile}}{${2:output intent}}{${3:id}}{${4:regURL%URL}}{${5:colorspace}}{${6:ICCver}}{${7:providerURL%URL}}{${8:info}}{${9:checksum}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxSetRGBcolorProfileDir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfxSetRGBcolorProfileDir{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxSetCMYKcolorProfileDir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfxSetCMYKcolorProfileDir{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"MacOSColordir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MacOSLibraryColordir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AdobeMacOSdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WindowsColordir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showLICRs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showLICRs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxBookmark\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdfxBookmark{${1:section cmd}}{${2:title}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxBookmark\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pdfxBookmark[${4:short title}]{${1:section cmd}}{${2:title}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxBookmarkString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfxBookmarkString{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"LIIXUmapTeXnames\"\n    },\n    {\n      \"name\": \"LIIXUscriptcommands\"\n    },\n    {\n      \"name\": \"LIIXUtipacommands\"\n    },\n    {\n      \"name\": \"LIIXUmapmathletterlikes\"\n    },\n    {\n      \"name\": \"LIIXUmapmathspaces\"\n    },\n    {\n      \"name\": \"ifcyrxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcyrKOIxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgrkxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgrkLGRxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhebxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhebHEBxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifarbxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifarmxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifarmSCIxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdevxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvnmxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflatEXTxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflatLATxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifipaxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmathxmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexternalICCprofiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrKOIxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grkxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grkLGRxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebHEBxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arbxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armSCIxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"devxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vnmxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latEXTxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latLATxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ipaxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathxmptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"externalICCprofilestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrKOIxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grkxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grkLGRxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebHEBxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arbxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armSCIxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"devxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vnmxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latEXTxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latLATxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ipaxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathxmpfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"externalICCprofilesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LIIXUmaparabicletters\",\n      \"if\": \"arbxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaparmenianletters\",\n      \"if\": \"armxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaparmenianletters\",\n      \"if\": \"AR8xmp\"\n    },\n    {\n      \"name\": \"LIIXUmapdevaccents\",\n      \"if\": \"devxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapgreekletters\",\n      \"if\": \"grkxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaphebrewletters\",\n      \"if\": \"hebxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaphebrewletters\",\n      \"if\": \"HEBxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapgreekletters\",\n      \"if\": \"LGRxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaplatinchars\",\n      \"if\": \"LATxmp\"\n    },\n    {\n      \"name\": \"LIIXUcancelfontswitches\",\n      \"if\": \"LATxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathaccents\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapisomathgreek\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmatharrowsA\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathoperatorsA\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathoperatorsB\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmiscmathsymbolsA\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsupparrowsA\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsupparrowsB\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmiscmathsymbolsB\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsuppmathoperators\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapunimathgreek\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathalphabets\",\n      \"if\": \"mathxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaparabicletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaparmenianletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaparmenianletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapdevaccents\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapgreekletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaphebrewletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaphebrewletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapgreekletters\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmaplatinchars\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUcancelfontswitches\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathaccents\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapisomathgreek\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmatharrowsA\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathoperatorsA\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathoperatorsB\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmiscmathsymbolsA\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsupparrowsA\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsupparrowsB\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmiscmathsymbolsB\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapsuppmathoperators\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapunimathgreek\",\n      \"if\": \"allxmp\"\n    },\n    {\n      \"name\": \"LIIXUmapmathalphabets\",\n      \"if\": \"allxmp\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pdfx#c\": [\n      \"a-1a\",\n      \"a-1b\",\n      \"a-2a\",\n      \"a-2b\",\n      \"a-2u\",\n      \"a-3a\",\n      \"a-3b\",\n      \"a-3u\",\n      \"e-1\",\n      \"e\",\n      \"ua-1\",\n      \"ua\",\n      \"vt-1\",\n      \"vt-2\",\n      \"vt-2s\",\n      \"x-1\",\n      \"x-1a\",\n      \"x-2\",\n      \"x-3\",\n      \"x-4\",\n      \"x-4p\",\n      \"x-5g\",\n      \"x-5n\",\n      \"x-5pg\",\n      \"useBOM\",\n      \"noBOM\",\n      \"noerr\",\n      \"pdf12\",\n      \"pdf13\",\n      \"pdf14\",\n      \"pdf15\",\n      \"pdf16\",\n      \"pdf17\",\n      \"pdf20\",\n      \"nocharset\",\n      \"usecharset\",\n      \"latxmp\",\n      \"armxmp\",\n      \"cyrxmp\",\n      \"grkxmp\",\n      \"hebxmp\",\n      \"arbxmp\",\n      \"vnmxmp\",\n      \"ipaxmp\",\n      \"mathxmp\",\n      \"allxmp\",\n      \"LATxmp\",\n      \"KOIxmp\",\n      \"LGRxmp\",\n      \"AR8xmp\",\n      \"HEBxmp\"\n    ],\n    \"\\\\PublicationType#c\": [\n      \"book\",\n      \"catalog\",\n      \"feed\",\n      \"journal\",\n      \"magazine\",\n      \"manual\",\n      \"newsletter\",\n      \"pamphlet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pdfx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/penlight.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/penlight#c\": [\n      \"pl\",\n      \"stringx\",\n      \"format\",\n      \"func\",\n      \"import\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/penlight#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/penlightplus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"luakeys\"\n    },\n    {\n      \"name\": \"penlight\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tokcycle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MakeluastringCommands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeluastringCommands{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"MakeluastringCommands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeluastringCommands[${2:def}]{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"splittocomma\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splittocomma{${1:text%plain}}{${2:text to split on}}\"\n      }\n    },\n    {\n      \"name\": \"splittocomma\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"splittocomma[${3:expansion level}]{${1:text%plain}}{${2:text to split on}}\"\n      }\n    },\n    {\n      \"name\": \"splittoitems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"splittoitems{${1:text%plain}}{${2:text to split on}}\"\n      }\n    },\n    {\n      \"name\": \"splittoitems\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"splittoitems[${3:expansion level}]{${1:text%plain}}{${2:text to split on}}\"\n      }\n    },\n    {\n      \"name\": \"luastringT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luastringT{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"luastringF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luastringF{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"ifluax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifluax{${1:Lua expr%definition}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"ifluax\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ifluax{${1:Lua expr%definition}}{${2:true}}[${3:false}]\"\n      }\n    },\n    {\n      \"name\": \"ifluaxv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifluaxv{${1:Lua expr%definition}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"ifluaxv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ifluaxv{${1:Lua expr%definition}}{${2:true}}[${3:false}]\"\n      }\n    },\n    {\n      \"name\": \"tblnew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tblnew{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tblchg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tblchg{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrkv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrkv{${1:name}}{${2:key-val string}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrkv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblfrkv{${1:name}}{${2:key-val string}}[${3:luakeys opts}]\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrkvN{${1:name}}{${2:key-val string}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvN\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblfrkvN{${1:name}}{${2:key-val string}}[${3:luakeys opts}]\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrkvCD{${1:name}}{${2:key-val string}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvCD\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblfrkvCD{${1:name}}{${2:key-val string}}[${3:luakeys opts}]\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvNCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrkvNCD{${1:name}}{${2:key-val string}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrkvNCD\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblfrkvNCD{${1:name}}{${2:key-val string}}[${3:luakeys opts}]\"\n      }\n    },\n    {\n      \"name\": \"tblfrcsv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrcsv{${1:name}}{${2:key-val string}}\"\n      }\n    },\n    {\n      \"name\": \"tblfrcsv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblfrcsv{${1:name}}{${2:key-val string}}[${3:luakeys opts}]\"\n      }\n    },\n    {\n      \"name\": \"tblset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblset{${1:index}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tblsetN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblsetN{${1:index}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tblget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tblget{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"tbldef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbldef{${1:index}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tbldefall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbldefall{${1:table}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tblgdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblgdef{${1:index}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tbldefxy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbldefxy{${1:index}}{${2:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tblif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblif{${1:index}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"tblif\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblif{${1:index}}{${2:true}}[${3:false}]\"\n      }\n    },\n    {\n      \"name\": \"tblifv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblifv{${1:index}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"tblifv\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"tblifv{${1:index}}{${2:true}}[${3:false}]\"\n      }\n    },\n    {\n      \"name\": \"tblkvundefcheck\"\n    },\n    {\n      \"name\": \"tblfrcsvN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblfrcsvN{${1:name}}{${2:csv}}\"\n      }\n    },\n    {\n      \"name\": \"tblapp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblapp{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tblappN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblappN{${1:name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tblcon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblcon{${1:name}}{${2:csv}}\"\n      }\n    },\n    {\n      \"name\": \"tblconN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tblconN{${1:name}}{${2:csv}}\"\n      }\n    },\n    {\n      \"name\": \"tbladd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbladd{${1:index}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tbladdN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tbladdN{${1:index}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tblprt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tblprt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"caseswitch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"caseswitch{${1:case}}{${2:key-val choices}}\"\n      }\n    },\n    {\n      \"name\": \"caseswitch*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"caseswitch*{${1:case}}{${2:key-val choices}}\"\n      }\n    },\n    {\n      \"name\": \"writePDFmetadatakv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writePDFmetadatakv{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"writePDFmetadatakv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"writePDFmetadatakv[${2:expansion type}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"writePDFmetadatakv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writePDFmetadatakv*{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"writePDFmetadatakv*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"writePDFmetadatakv*[${2:expansion type}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"writePDFmetadata\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/penlightplus#c\": [\n      \"globals\",\n      \"pl\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/penlightplus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/perfectcut.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"scalerel\"\n    },\n    {\n      \"name\": \"mathstyle\",\n      \"if\": \"mathstyle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"perfectcut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perfectcut{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"perfectbra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perfectbra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"perfectket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perfectket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"perfectcase\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perfectcase{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"perfectbrackets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perfectbrackets{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"perfectparens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perfectparens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"perfectunary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"perfectunary{${1:option%keyvals}}{${2:delim1}}{${3:delim2}}{${4:arg}}\",\n        \"keys\": [\n          \"\\\\perfectunary,\\\\perfectbinary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"perfectbinary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"perfectbinary{${1:option%keyvals}}{${2:delim1}}{${3:delim2}}{${4:delim3}}{${5:arg1}}{${6:arg2}}\",\n        \"keys\": [\n          \"\\\\perfectunary,\\\\perfectbinary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cutbarskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cutangleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cutangleouterskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cutinterbarskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nthleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthleft{${1:n}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"nthmiddle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthmiddle{${1:n}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"nthright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nthright{${1:n}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"lenleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lenleft{${1:length}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"lenmiddle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lenmiddle{${1:length}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"lenright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lenright{${1:length}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"reallenleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reallenleft{${1:length}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"reallenmiddle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reallenmiddle{${1:length}}{${2:delim}}\"\n      }\n    },\n    {\n      \"name\": \"reallenright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reallenright{${1:length}}{${2:delim}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/perfectcut#c\": [\n      \"nomathstyle\",\n      \"mathstyle\",\n      \"realVert\",\n      \"fixxits\"\n    ],\n    \"\\\\perfectunary,\\\\perfectbinary\": [\n      \"IncreaseHeight\",\n      \"CurrentHeight\",\n      \"CurrentHeightPlusOne\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/perfectcut#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/perltex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifperl\"\n    },\n    {\n      \"name\": \"perltrue\"\n    },\n    {\n      \"name\": \"perlfalse\"\n    },\n    {\n      \"name\": \"perlnewcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perlnewcommand{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"perlnewcommand{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"perlnewcommand{${1:command}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perlnewcommand*{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"perlnewcommand*{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"perlnewcommand*{${1:command}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perlrenewcommand{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"perlrenewcommand{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"perlrenewcommand{${1:command}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"perlrenewcommand*{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"perlrenewcommand*{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewcommand*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"perlrenewcommand*{${1:command}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"perlnewenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"perlnewenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"perlnewenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"perlnewenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"perlnewenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlnewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"perlnewenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"perlrenewenvironment{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"perlrenewenvironment{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"perlrenewenvironment{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"perlrenewenvironment*{${1:envname}}[${4:args}][${5:default}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"perlrenewenvironment*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perlrenewenvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"perlrenewenvironment*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"perldo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perldo{${1:perl code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/perltex#c\": [\n      \"optional\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/perltex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/permute.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmt{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmt[${2:print order}]{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmt*{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmt*[${2:print order}]{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmtv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtv{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmtv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtv[${2:print order}]{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmtv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtv*{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmtv*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtv*[${2:print order}]{${1:permutation}}\"\n      }\n    },\n    {\n      \"name\": \"pmttable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmttable{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmttable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pmttable[${3:print order}]{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmttable*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmttable*{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmttable*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pmttable*[${3:print order}]{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmtvtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmtvtable{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmtvtable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pmtvtable[${3:print order}]{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmtvtable*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmtvtable*{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmtvtable*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pmtvtable*[${3:print order}]{${1:list of pmts}}{${2:list of pmts}}\"\n      }\n    },\n    {\n      \"name\": \"pmtshorttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtshortfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtload\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtload{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pmtsave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtsave{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pmtid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmtid[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"pmtdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtdo{${1:permutation%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pmtdo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtdo[${2:name}]{${1:permutation%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pmtcirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtcirc{${1:permutation%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pmtcirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtcirc[${2:name}]{${1:permutation%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pmtprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtprint*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmtprint[${1:print order}]\"\n      }\n    },\n    {\n      \"name\": \"pmtprint*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmtprint*[${1:print order}]\"\n      }\n    },\n    {\n      \"name\": \"pmtvprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtvprint*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtvprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmtvprint[${1:print order}]\"\n      }\n    },\n    {\n      \"name\": \"pmtvprint*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmtvprint*[${1:print order}]\"\n      }\n    },\n    {\n      \"name\": \"pmtimageof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtimageof{${1:pre-image}}\"\n      }\n    },\n    {\n      \"name\": \"pmtimageof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtimageof[${2:name}]{${1:pre-image}}\"\n      }\n    },\n    {\n      \"name\": \"pmtpreimageof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtpreimageof{${1:image}}\"\n      }\n    },\n    {\n      \"name\": \"pmtpreimageof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtpreimageof[${2:name}]{${1:image}}\"\n      }\n    },\n    {\n      \"name\": \"pmtprintorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtidname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtldelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtrdelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmttableborders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmtarraystretch\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/perpage.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MakePerPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakePerPage{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakePerPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakePerPage[${2:value}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"theperpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabspage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeSorted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSorted{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSortedPerPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeSortedPerPage{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"MakeSortedPerPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MakeSortedPerPage[${2:value}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"AddAbsoluteCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddAbsoluteCounter{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/person.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newperson\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newperson{${1:full name}}{${2:familiar name}}{${3:gender}}\"\n      }\n    },\n    {\n      \"name\": \"newperson\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newperson[${4:label}]{${1:full name}}{${2:familiar name}}{${3:gender}}\"\n      }\n    },\n    {\n      \"name\": \"malelabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalelabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addmalelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addmalelabel{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"addfemalelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addfemalelabel{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"thepeople\"\n    },\n    {\n      \"name\": \"removeperson\"\n    },\n    {\n      \"name\": \"removeperson\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"removeperson[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"removeallpeople\"\n    },\n    {\n      \"name\": \"removepeople\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removepeople{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"personfullname\"\n    },\n    {\n      \"name\": \"personfullname\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personfullname[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personname\"\n    },\n    {\n      \"name\": \"personname\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personname[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personpronoun\"\n    },\n    {\n      \"name\": \"personpronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personpronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personobjpronoun\"\n    },\n    {\n      \"name\": \"personobjpronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personobjpronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personpossadj\"\n    },\n    {\n      \"name\": \"personpossadj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personpossadj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personposspronoun\"\n    },\n    {\n      \"name\": \"personposspronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personposspronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personchild\"\n    },\n    {\n      \"name\": \"personchild\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personchild[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personparent\"\n    },\n    {\n      \"name\": \"personparent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personparent[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"personsibling\"\n    },\n    {\n      \"name\": \"personsibling\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"personsibling[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personpronoun\"\n    },\n    {\n      \"name\": \"Personpronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personpronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personobjpronoun\"\n    },\n    {\n      \"name\": \"Personobjpronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personobjpronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personpossadj\"\n    },\n    {\n      \"name\": \"Personpossadj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personpossadj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personposspronoun\"\n    },\n    {\n      \"name\": \"Personposspronoun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personposspronoun[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personchild\"\n    },\n    {\n      \"name\": \"Personchild\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personchild[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personparent\"\n    },\n    {\n      \"name\": \"Personparent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personparent[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"Personsibling\"\n    },\n    {\n      \"name\": \"Personsibling\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Personsibling[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"peoplefullname\"\n    },\n    {\n      \"name\": \"peoplename\"\n    },\n    {\n      \"name\": \"peoplepronoun\"\n    },\n    {\n      \"name\": \"Peoplepronoun\"\n    },\n    {\n      \"name\": \"peopleobjpronoun\"\n    },\n    {\n      \"name\": \"Peopleobjpronoun\"\n    },\n    {\n      \"name\": \"peoplepossadj\"\n    },\n    {\n      \"name\": \"Peoplepossadj\"\n    },\n    {\n      \"name\": \"peopleposspronoun\"\n    },\n    {\n      \"name\": \"Peopleposspronoun\"\n    },\n    {\n      \"name\": \"peoplechild\"\n    },\n    {\n      \"name\": \"Peoplechild\"\n    },\n    {\n      \"name\": \"peopleparent\"\n    },\n    {\n      \"name\": \"Peopleparent\"\n    },\n    {\n      \"name\": \"peoplesibling\"\n    },\n    {\n      \"name\": \"Peoplesibling\"\n    },\n    {\n      \"name\": \"ifpersonexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifpersonexists{${1:label}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifmale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmale{${1:label}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"iffemale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffemale{${1:label}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifallmale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifallmale{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifallmale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ifallmale[${3:label list}]{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifallfemale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifallfemale{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifallfemale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ifallfemale[${3:label list}]{${1:true case}}{${2:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ifmalelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifmalelabel{${1:identifier}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"iffemalelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffemalelabel{${1:identifier}}{${2:true case}}{${3:false case}}\"\n      }\n    },\n    {\n      \"name\": \"malename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getpersongender\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getpersongender{${1:cmd}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"getpersonname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getpersonname{${1:cmd}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"getpersonfullname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getpersonfullname{${1:cmd}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"andname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalechild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalechildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femaleobjpronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femaleparent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalepossadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femaleposspronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalepronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalesibling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalesiblings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malechild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malechildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleobjpronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleparent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malepossadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleposspronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malepronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malesibling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malesiblings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persongender\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"persongender{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"personlastsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralchild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralobjpronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralparent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralpossadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralposspronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralpronoun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralsibling\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theperson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twopeoplesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pfarrei.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AvToAiv\"\n    },\n    {\n      \"name\": \"AvToAiv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AvToAiv[${1:Original-Datei}]\"\n      }\n    },\n    {\n      \"name\": \"ifbooklet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifbooklet{${1:Dann-Code}}{${2:Sonst-Code}}\"\n      }\n    },\n    {\n      \"name\": \"bookletfrontpagestyle\"\n    },\n    {\n      \"name\": \"motto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"motto{${1:Motto%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlepicture{${1:Bild}}\"\n      }\n    },\n    {\n      \"name\": \"parish\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parish{${1:Gemeinde}}\"\n      }\n    },\n    {\n      \"name\": \"makebooklettitlepage\"\n    },\n    {\n      \"name\": \"bookletbackpagestyle\"\n    },\n    {\n      \"name\": \"bookletemptypagestyle\"\n    },\n    {\n      \"name\": \"setupprayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupprayer{${1:Optionen%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupprayer,\\\\begin{prayer}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noresponder\"\n    },\n    {\n      \"name\": \"bookletbackpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookletemptypagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookletfrontpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookletpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bookletpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endbookletpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbookletbackpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbookletpagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printbookletpagebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printbookletpagebox[${1:opt}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bookletfrontpage\"\n    },\n    {\n      \"name\": \"bookletbackpage\"\n    },\n    {\n      \"name\": \"bookletemptypage\"\n    },\n    {\n      \"name\": \"samedoublepage\"\n    },\n    {\n      \"name\": \"prayer\"\n    },\n    {\n      \"name\": \"prayer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Optionen%keyvals}]\",\n        \"keys\": [\n          \"\\\\setupprayer,\\\\begin{prayer}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pfarrei#c\": [\n      \"booklet\"\n    ],\n    \"\\\\setupprayer,\\\\begin{prayer}\": [\n      \"leader=${1:Vorbeter}\",\n      \"responder=${1:Antwortende(r)}\",\n      \"response=${1:Antwort}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pfarrei#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pfdicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryspath3\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"unit int=${1|stirred,liquid,stirred liquid,packed,fixed,tubular,U tube,two pass,four pass,single,double,triple,tray,dashed tray,weir tray,numbered tray,packed,double packed,liquid rotated,phase sep,inlet west,inlet east,inlet north,inlet south|}\",\n      \"unit ext=${1|lower jacket,side jacket,cis shell,trans shell,util,simple hx,outlet east,outlet west,outlet north east,outlet north west,actuator|}\",\n      \"tank reactor\",\n      \"tube reactor\",\n      \"basic hx\",\n      \"shell and tube hx\",\n      \"plate hx\",\n      \"fired hx\",\n      \"column\",\n      \"vessel\",\n      \"centrifugal pump\",\n      \"reciprocating pump\",\n      \"compressor\",\n      \"turbine\",\n      \"feed\",\n      \"product\",\n      \"sid\",\n      \"valve\",\n      \"elec\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"bridge gap=\",\n      \"bridge radius=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pfltrace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"fltrace\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgf-PeriodicTable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xetex\",\n      \"if\": \"numerals=dvn\"\n    },\n    {\n      \"name\": \"zhnumber\",\n      \"if\": \"numerals=zh\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfPTdvnfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTdvnfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTdvnfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTdvnfont[${2:font options}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTzhfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTzhfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTzhfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTzhfont[${2:font options}]{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTzhnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTzhnumber{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTzhnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTzhnumber[${2:true|false}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPT\"\n    },\n    {\n      \"name\": \"pgfPT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfPT[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfPT#c,\\\\pgfPTstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfPTstyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfPTstyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfPT#c,\\\\pgfPTstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfPTresetstyle\"\n    },\n    {\n      \"name\": \"pgfPTbuildcell\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"pgfPTbuildcell(${2:rows},${3:columns})[${1:entries}]\"\n      }\n    },\n    {\n      \"name\": \"pgfPTresetcell\"\n    },\n    {\n      \"name\": \"pgfPTbuildcellstyle\",\n      \"arg\": {\n        \"format\": \"{}()[]\",\n        \"snippet\": \"pgfPTbuildcellstyle{${1:name%specialDef}}(${3:rows},${4:columns})[${2:entries}]\"\n      }\n    },\n    {\n      \"name\": \"pgfPTpreviewcell\"\n    },\n    {\n      \"name\": \"pgfPTpreviewcell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfPTpreviewcell[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pgfPTpreviewcellstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTpreviewcellstyle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTpreviewcellstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTpreviewcellstyle[${2:scale}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTnewColorScheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfPTnewColorScheme{${1:name%specialDef}}{${2:r1/g1/b1,r2/g2/b2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTnewColorScheme\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfPTnewColorScheme[${3:r/g/b}]{${1:name}}{${2:r1/g1/b1,r2/g2/b2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTnewZlist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfPTnewZlist{${1:name%specialDef}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"usepgfPTlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfPTlibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfPTlibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfPTGroupColors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfPTGroupColors{${1:new colorscheme name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfPTGroupColors#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfPTGroupColors\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfPTGroupColors[${3:default color}]{${1:new colorscheme name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfPTGroupColors#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"pgfPTPeriodColors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfPTPeriodColors{${1:new colorscheme name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfPTPeriodColors#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfPTPeriodColors\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfPTPeriodColors[${3:default color}]{${1:new colorscheme name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfPTPeriodColors#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"pgfPTCScombine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTCScombine{${1:colorscheme1,colorscheme2,new colorscheme name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTCScombine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTCScombine[${2:proportion,mode}]{${1:colorscheme1,colorscheme2,new colorscheme name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTCSwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfPTCSwrite{${1:list of colorschemes}}\"\n      }\n    },\n    {\n      \"name\": \"pgfPTCSwrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfPTCSwrite[${2:filename%file}]{${1:list of colorschemes}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgf-PeriodicTable#c\": [\n      \"pt\",\n      \"en\",\n      \"fr\",\n      \"de\",\n      \"it\",\n      \"es\",\n      \"br\",\n      \"userlang=${1:ISO 639-1 code}\",\n      \"numerals=${1|dvn,zh|}\"\n    ],\n    \"\\\\pgfPT#c,\\\\pgfPTstyle#c\": [\n      \"Z list=\",\n      \"cell width=\",\n      \"cell height=\",\n      \"cell size=\",\n      \"cell line width=\",\n      \"cell line color=\",\n      \"cell style=\",\n      \"cell={${1:keyvals}}\",\n      \"font=${1:font family}\",\n      \"back color scheme=\",\n      \"back color=\",\n      \"csSolid\",\n      \"csSolid=\",\n      \"csSoft\",\n      \"csJmol\",\n      \"csCPK\",\n      \"csRasmol\",\n      \"csRasmolNew\",\n      \"csWikipedia\",\n      \"csMNM\",\n      \"csPS\",\n      \"csRadio\",\n      \"csBlocks\",\n      \"background={${1:TikZ keys}}\",\n      \"IUPAC\",\n      \"show label LaAc\",\n      \"label LaAc font=${1:font commands}\",\n      \"languages={${1:lang1,lang2,...}}\",\n      \"other languages font=${1:font commands}\",\n      \"other languages color=\",\n      \"other lang={${1:keyvals}}\",\n      \"show MNM line\",\n      \"MNM line color=\",\n      \"MNM line width=\",\n      \"MNM={${1:keyvals}}\",\n      \"show title\",\n      \"title font=${1:font commands}\",\n      \"title color=\",\n      \"title={${1:keyvals}}\",\n      \"show legend\",\n      \"legend acronyms\",\n      \"legend box={${1:TikZ keys}}\",\n      \"legend back color=\",\n      \"legend radio color=\",\n      \"legend CS color=\",\n      \"legend Z color=\",\n      \"show legend pins\",\n      \"legend pins={${1:TikZ keys}}\",\n      \"show extra legend\",\n      \"extra legend={${1:TikZ keys}}\",\n      \"legend={${1:keyvals}}\",\n      \"show period numbers\",\n      \"show group numbers\",\n      \"group numbers=${1|arabic,CAS,IUPAC,CAS*,IUPAC*|}\",\n      \"period label color=\",\n      \"group label color=\",\n      \"Roman label color=\",\n      \"label font=${1:font commands}\",\n      \"per={${1:keyvals}}\",\n      \"gr={${1:keyvals}}\",\n      \"per+gr={${1:keyvals}}\",\n      \"show blocks\",\n      \"blocks font=${1:font commands}\",\n      \"s block color=\",\n      \"s block font color=\",\n      \"s block line width=\",\n      \"p block color=\",\n      \"p block font color=\",\n      \"p block line width=\",\n      \"d block color=\",\n      \"d block font color=\",\n      \"d block line width=\",\n      \"f block color=\",\n      \"f block font color=\",\n      \"f block line width=\",\n      \"blocks font color=\",\n      \"blocks line width=\",\n      \"blocks={${1:keyvals}}\",\n      \"show families\",\n      \"families font=${1:font commands}\",\n      \"r family color=\",\n      \"r family font color=\",\n      \"r family line width=\",\n      \"tm family color=\",\n      \"tm family font color=\",\n      \"tm family line width=\",\n      \"itm family color=\",\n      \"itm family font color=\",\n      \"itm family line width=\",\n      \"families font color=\",\n      \"families line width=\",\n      \"families={${1:keyvals}}\",\n      \"show periodic variations\",\n      \"varR color=\",\n      \"varR font=${1:font commands}\",\n      \"varR font color=\",\n      \"varEi color=\",\n      \"varEi font=${1:font commands}\",\n      \"varEi font color=\",\n      \"vareaff color=\",\n      \"vareaff font=${1:font commands}\",\n      \"vareaff font color=\",\n      \"var font=${1:font commands}\",\n      \"var color=\",\n      \"varR={${1:keyvals}}\",\n      \"varEi={${1:keyvals}}\",\n      \"vareaff={${1:keyvals}}\",\n      \"dark mode\",\n      \"only cells\",\n      \"only cells plus Z\",\n      \"only cells with periods and group numbers\",\n      \"only cells with periods and group numbers plus Z\",\n      \"Z exercise list={${1:csv list}}\",\n      \"exercise list in capitals\",\n      \"exercise list color=\",\n      \"exercise list font=${1:font commands}\",\n      \"cells+Z\",\n      \"cells+p+g\",\n      \"cells+p+g+Z\",\n      \"exnocaps\",\n      \"exColor=\",\n      \"exFont=${1:font commands}\",\n      \"ex={${1:keyvals}}\",\n      \"Z backcolor=\",\n      \"Z color=\",\n      \"Z font=${1:font commands}\",\n      \"Z use box width\",\n      \"Z align=${1|left,center,right|}\",\n      \"Z padding=\",\n      \"Z box\",\n      \"Z={${1:keyvals}}\",\n      \"CS solid=\",\n      \"CS liquid=\",\n      \"CS gas=\",\n      \"CS synt=\",\n      \"CS all=\",\n      \"CS font=${1:font commands}\",\n      \"CS render mode=${1|fill,outline,fill and outline|}\",\n      \"CS outline color=\",\n      \"CS outline width=\",\n      \"CS={${1:keyvals}}\",\n      \"name color=\",\n      \"name font=${1:font commands}\",\n      \"name align=${1|left,center,right|}\",\n      \"capitalize element names\",\n      \"name\",\n      \"Name\",\n      \"NAME\",\n      \"Ar color=\",\n      \"Ar font=${1:font commands}\",\n      \"Ar label=${1|m,w|}\",\n      \"Ar precision=${1:integer}\",\n      \"Ar={${1:keyvals}}\",\n      \"O Roman\",\n      \"d color=\",\n      \"d font=${1:font commands}\",\n      \"d unit=${1|g/dm3,g/cm3,both|}\",\n      \"d precision=${1:integer}\",\n      \"d={${1:keyvals}}\",\n      \"ls=${1|fig,txt,fig+txt|}\",\n      \"ls color=\",\n      \"ls font=${1:font commands}\",\n      \"ls align=${1|left,center,right|}\",\n      \"ls unit=${1|pm,A|}\",\n      \"ls precision=${1:integer}\",\n      \"lat={${1:keyvals}}\",\n      \"DiscY color=\",\n      \"DiscY font=${1:font commands}\",\n      \"DiscY BC scale=${1:factor}\",\n      \"eDist color=\",\n      \"eDist font=${1:font commands}\",\n      \"eDist sep=${1:separator}\",\n      \"R color=\",\n      \"Rcov color=\",\n      \"Rion color=\",\n      \"Ei color=\",\n      \"eneg color=\",\n      \"eaff color=\",\n      \"O color=\",\n      \"Tmelt color=\",\n      \"TmeltC color=\",\n      \"Tboil color=\",\n      \"TboilC color=\",\n      \"eConfign color=\",\n      \"eConfignl color=\",\n      \"Cp color=\",\n      \"kT color=\",\n      \"lsa color=\",\n      \"lsb color=\",\n      \"lsc color=\",\n      \"lsca color=\",\n      \"DiscC color=\",\n      \"spectra color=\",\n      \"R font=${1:font commands}\",\n      \"Rcov font=${1:font commands}\",\n      \"Rion font=${1:font commands}\",\n      \"Ei font=${1:font commands}\",\n      \"eneg font=${1:font commands}\",\n      \"eaff font=${1:font commands}\",\n      \"O font=${1:font commands}\",\n      \"Tmelt font=${1:font commands}\",\n      \"TmeltC font=${1:font commands}\",\n      \"Tboil font=${1:font commands}\",\n      \"TboilC font=${1:font commands}\",\n      \"eConfign font=${1:font commands}\",\n      \"eConfignl font=${1:font commands}\",\n      \"Cp font=${1:font commands}\",\n      \"kT font=${1:font commands}\",\n      \"lsa font=${1:font commands}\",\n      \"lsb font=${1:font commands}\",\n      \"lsc font=${1:font commands}\",\n      \"lsca font=${1:font commands}\",\n      \"DiscC font=${1:font commands}\",\n      \"spectra font=${1:font commands}\",\n      \"cell font=${1:font commands}\",\n      \"cell color=\",\n      \"E precision=${1:integer}\",\n      \"T precision=${1:integer}\",\n      \"Cp precision=${1:integer}\",\n      \"kT precision=${1:integer}\"\n    ],\n    \"\\\\usepgfPTlibrary#c\": [\n      \"colorschemes\"\n    ],\n    \"\\\\pgfPTGroupColors#c\": [\n      \"G1=\",\n      \"G2=\",\n      \"G3=\",\n      \"G4=\",\n      \"G5=\",\n      \"G6=\",\n      \"G7=\",\n      \"G8=\",\n      \"G9=\",\n      \"G10=\",\n      \"G11=\",\n      \"G12=\",\n      \"G13=\",\n      \"G14=\",\n      \"G15=\",\n      \"G16=\",\n      \"G17=\",\n      \"G18=\",\n      \"left color=\",\n      \"middle color=\",\n      \"right color=\",\n      \"gradient={${1:keyvals}}\",\n      \"H=\",\n      \"La=\",\n      \"Lanta=\",\n      \"Ac=\",\n      \"Actin=\",\n      \"period blending={${1:keyvals}}\"\n    ],\n    \"\\\\pgfPTPeriodColors#c\": [\n      \"P1=\",\n      \"P2=\",\n      \"P3=\",\n      \"P4=\",\n      \"P5=\",\n      \"P6=\",\n      \"P7=\",\n      \"top color=\",\n      \"middle color=\",\n      \"bottom color=\",\n      \"gradient={${1:keyvals}}\",\n      \"H=\",\n      \"La=\",\n      \"Lanta=\",\n      \"Ac=\",\n      \"Actin=\",\n      \"group blending={${1:keyvals}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf-PeriodicTable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgf-filehook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgffilehook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgffilehook{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\pgffilehook\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgffilehook\": [\n      \"EveryFile\",\n      \"Files\",\n      \"File\",\n      \"Inputs\",\n      \"InputFile\",\n      \"Includes\",\n      \"IncludeFile\",\n      \"ClassFile\",\n      \"PackageFile\",\n      \"AtBegin={${1:code}}\",\n      \"AtEnd={${1:code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgf-interference.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfinterferencepattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfinterferencepattern{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfinterferencepattern,\\\\pgfinterferenceoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfinterferenceoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfinterferenceoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfinterferencepattern,\\\\pgfinterferenceoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgf-interference#c\": [\n      \"draft\"\n    ],\n    \"\\\\pgfinterferencepattern,\\\\pgfinterferenceoptions\": [\n      \"wavelength=${1:number}\",\n      \"intensity=${1:number}\",\n      \"slits=${1:integer}\",\n      \"slit-distance=${1:number}\",\n      \"slit-width=${1:number}\",\n      \"screen-distance=${1:number}\",\n      \"screen-width=${1:number}\",\n      \"screen-height=${1:number}\",\n      \"scale=${1:factor}\",\n      \"screen-color=\",\n      \"ruler=${1|above,below,screen,none|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf-interference#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgf-pie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pie{${1:num1/text1,num2/text2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pie[${2:options%keyvals}]{${1:num1/text1,num2/text2,...}}\",\n        \"keys\": [\n          \"\\\\pie#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pie#c\": [\n      \"pos={${1:x,y}}\",\n      \"rotate=${1:degrees}\",\n      \"radius=${1:number}\",\n      \"color=${3|${1:color},{${2:color1,color2,...}}|}\",\n      \"explode=${1:number}\",\n      \"sum=${2|auto,${1:number}|}\",\n      \"change direction\",\n      \"before number={${1:code}}\",\n      \"after number={${1:code}}\",\n      \"hide number\",\n      \"scale font\",\n      \"text=${1|label,pin,inside,legend|}\",\n      \"style={${1:TikZ options}}\",\n      \"polar\",\n      \"square\",\n      \"cloud\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgf-soroban.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ladj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ladj{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"tige\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tige{${1:nu}}{${2:val}}{${3:un}}\"\n      }\n    },\n    {\n      \"name\": \"tige\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tige[${4:st}]{${1:nu}}{${2:val}}{${3:un}}\"\n      }\n    },\n    {\n      \"name\": \"cadre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cadre{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"cadre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cadre[${2:st}]{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"barres\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barres{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"barres\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"barres[${2:st}]{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"binoire\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"binoire{${1:nu}}{${2:pos}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"binoire\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"binoire[${4:st}]{${1:nu}}{${2:pos}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"barbil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"barbil{${1:nu}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"barbil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"barbil[${3:st}]{${1:nu}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"colbil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coltig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theyy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eplia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eplib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eplic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eplid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bille\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bille{${1:arg}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"support\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"support{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgf-spectra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfspectra\"\n    },\n    {\n      \"name\": \"pgfspectra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfspectra[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfspectra,\\\\pgfspectraStyle,\\\\pgfspectraplotshade\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wlcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wlcolor{${1:wavelength}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectraStyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfspectraStyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfspectra,\\\\pgfspectraStyle,\\\\pgfspectraplotshade\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfspectraStyleReset\"\n    },\n    {\n      \"name\": \"pgfspectrashade\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pgfspectrashade(${2:start},${3:end}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrashade\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pgfspectrashade[${2:h|v}](${3:start},${4:end}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usepgfspectralibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfspectralibrary{${1:libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfspectralibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfspectradata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectradata{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfspectradata\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfspectradata\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfspectradata[${2:name}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfspectradata\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfspectratable\"\n    },\n    {\n      \"name\": \"pgfspectratable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectratable{${1:dataset names}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectratable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfspectratable[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfspectratable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfspectratable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfspectratable[${2:options%keyvals}]{${1:dataset names}}\",\n        \"keys\": [\n          \"\\\\pgfspectratable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfspectrawrite\"\n    },\n    {\n      \"name\": \"pgfspectrawrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectrawrite{${1:dataset names}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrawrite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfspectrawrite[${1:filename}]\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrawrite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfspectrawrite[${2:filename}]{${1:dataset names}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectraplotmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectraplotmap{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectraplotmap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfspectraplotmap[${2:l|h}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectraplotshade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectraplotshade{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectraplotshade\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfspectraplotshade[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\pgfspectraplotshade\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tempercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tempercolor{${1:Kelvin}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrarainbow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfspectrarainbow{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrarainbow\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pgfspectrarainbow(${2:options%keyvals}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfspectrarainbow\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pgfspectrarainbow[${2:TikZ options}](${3:options%keyvals}){${1:radius}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgf-spectra#c\": [\n      \"LSE\",\n      \"NIST\"\n    ],\n    \"\\\\pgfspectra,\\\\pgfspectraStyle,\\\\pgfspectraplotshade\": [\n      \"use visible shading\",\n      \"width=\",\n      \"height=\",\n      \"element=${1:symbol(s)}\",\n      \"charge=${1:<integer> or all}\",\n      \"Imin=${1:factor}\",\n      \"relative intensity\",\n      \"relative intensity threshold=${1:factor}\",\n      \"line intensity=${1:number}\",\n      \"gamma=${1:number}\",\n      \"brightness=${1:factor}\",\n      \"back=\",\n      \"backIRUV=\",\n      \"IRcolor=\",\n      \"UVcolor=\",\n      \"lines={${1:wavelengths}}\",\n      \"line width=\",\n      \"begin=${1:wavelength}\",\n      \"end=${1:wavelength}\",\n      \"absorption\",\n      \"axis\",\n      \"axis step=${1:integer}\",\n      \"axis ticks=${1:integer}\",\n      \"axis unit=${1|nm,micron,A|}\",\n      \"axis unit precision=${1:integer}\",\n      \"axis label\",\n      \"axis label text={${1:text}}\",\n      \"axis label position=${1|left,center,right|}\",\n      \"axis color=\",\n      \"axis font=${1:font commands}\",\n      \"axis font color=\",\n      \"label\",\n      \"label position=${1|north west,north,north east,west,east,south west,south,south east|}\",\n      \"label font=${1:font commands}\",\n      \"label font color=\",\n      \"label before text=${1:text}\",\n      \"label after text=${1:text}\",\n      \"redshift=${1:value}\",\n      \"show redshift value\"\n    ],\n    \"\\\\usepgfspectralibrary#c\": [\n      \"data\",\n      \"pgfplots\",\n      \"tempercolor\",\n      \"rainbow\"\n    ],\n    \"\\\\pgfspectradata\": [\n      \"element=${1:symbol(s)}\",\n      \"charge=${1:<integer> or all}\",\n      \"Imin=${1:factor}\",\n      \"redshift=${1:value}\",\n      \"begin=${1:wavelength}\",\n      \"end=${1:wavelength}\",\n      \"relative intensity\",\n      \"precision=${1:integer}\",\n      \"unit=${1|nm,micron,A|}\"\n    ],\n    \"\\\\pgfspectratable\": [\n      \"title={${1:text}}\",\n      \"back color=\",\n      \"data back color=\",\n      \"text color=\",\n      \"width=\",\n      \"elements column width=\"\n    ],\n    \"\\\\pgfspectraplotshade\": [\n      \"shade begin=${1:value}\",\n      \"shade end=${1:value}\",\n      \"shade opacity=${1:factor}\",\n      \"shade opacity color=\",\n      \"logarithmic\"\n    ],\n    \"\\\\pgfspectrarainbow\": [\n      \"rainbow start=${1:fraction}\",\n      \"rainbow knock out=${1:value}\",\n      \"rainbow fade=${1:fading}\",\n      \"rainbow transparency=${1:factor}\",\n      \"rainbow background=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf-spectra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgf-umlcd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribute{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"operation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"operation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"operation[${2:0}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"instanceOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instanceOf{${1:class name}}\"\n      }\n    },\n    {\n      \"name\": \"switchUmlcdSchool\"\n    },\n    {\n      \"name\": \"inherit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inherit{${1:class name}}\"\n      }\n    },\n    {\n      \"name\": \"implement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"implement{${1:interface name}}\"\n      }\n    },\n    {\n      \"name\": \"association\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"association{${1:class1}}{${2:abovetext1}}{${3:belowtext1}}{${4:class2}}{${5:abovetext2}}{${6:belowtext2}}\"\n      }\n    },\n    {\n      \"name\": \"unidirectionalAssociation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"unidirectionalAssociation{${1:class1}}{${2:abovetext}}{${3:belowtext}}{${4:class2}}\"\n      }\n    },\n    {\n      \"name\": \"aggregation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aggregation{${1:class1}}{${2:abovetext}}{${3:belowtext}}{${4:class2}}\"\n      }\n    },\n    {\n      \"name\": \"composition\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"composition{${1:class1}}{${2:abovetext}}{${3:belowtext}}{${4:class2}}\"\n      }\n    },\n    {\n      \"name\": \"calcuateNumberOfParts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertAttributesAndOperations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theumlcdClassAbstractClassNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theumlcdClassAttributesNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theumlcdClassInterfaceNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theumlcdClassOperationsNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theumlcdClassSplitPartNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassAbstractClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassAttributes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassInterface\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassOperations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdClassPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdPackageFit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlcdPackageName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umldObjectName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umldrawcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umlfillcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umltextcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"virtualoperation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:class name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:TikZ options}]{${1:class name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"abstractclass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:class name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"abstractclass\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:TikZ options}]{${1:class name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"interface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:interface name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"interface\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:TikZ options}]{${1:interface name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"object\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:object name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"object\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:TikZ options}]{${1:object name%text}}{${2:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:package name%text}}\"\n      }\n    },\n    {\n      \"name\": \"classAndInterfaceCommon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:TikZ options}}{${2:name%text}}{${3:x,y}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pgf-umlcd#c\": [\n      \"school\",\n      \"simplified\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf-umlcd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgf-umlsd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newthread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newthread{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"newthread\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newthread[${3:color}]{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"newinst\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newinst{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"newinst\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newinst[${3:edge distance}]{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mess{${1:caller}}{${2:message%text}}{${3:callee}}\"\n      }\n    },\n    {\n      \"name\": \"mess\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"mess[${4:delay}]{${1:caller}}{${2:message%text}}{${3:callee}}\"\n      }\n    },\n    {\n      \"name\": \"prelevel\"\n    },\n    {\n      \"name\": \"postlevel\"\n    },\n    {\n      \"name\": \"setthreadbias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setthreadbias{${1:anchor%keyvals}}\",\n        \"keys\": [\n          \"\\\\setthreadbias#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blockcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockcomm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawthread\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drawthread{${1:anchor1}}{${2:anchor2}}\"\n      }\n    },\n    {\n      \"name\": \"returnvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theblocklevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecallevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecallselflevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepreinst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theseqlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethreadnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threadbias\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sequencediagram\"\n    },\n    {\n      \"name\": \"call\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:caller}}{${2:function}}{${3:callee}}{${4:return value}}\"\n      }\n    },\n    {\n      \"name\": \"call\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:height%plain}]{${1:caller}}{${2:function}}{${3:callee}}{${4:return value}}\"\n      }\n    },\n    {\n      \"name\": \"messcall\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:caller}}{${2:function}}{${3:callee}}\"\n      }\n    },\n    {\n      \"name\": \"messcall\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:height%plain}]{${1:caller}}{${2:function}}{${3:callee}}\"\n      }\n    },\n    {\n      \"name\": \"sdblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:caption%text}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"sdblock\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:color}]{${1:caption%text}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"callself\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:caller}}{${2:function}}{${3:return value}}\"\n      }\n    },\n    {\n      \"name\": \"callself\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:height%plain}]{${1:caller}}{${2:function}}{${3:return value}}\"\n      }\n    },\n    {\n      \"name\": \"callanother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:caller}}{${2:function}}{${3:callee}}{${4:return value}}\"\n      }\n    },\n    {\n      \"name\": \"callanother\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"[${5:height%plain}]{${1:caller}}{${2:function}}{${3:callee}}{${4:return value}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pgf-umlsd#c\": [\n      \"underline\",\n      \"roundedcorners\"\n    ],\n    \"\\\\setthreadbias#c\": [\n      \"center\",\n      \"west\",\n      \"east\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf-umlsd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreampoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreampoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreampointoutlier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreampointoutlier{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreampointundefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreamnewdataset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstreamspecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstreamspecial{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclareplothandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareplothandler{${1:macro%cmd}}{${2:args}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareplothandler#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"pgfsetlinetofirstplotpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmovetofirstplotpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerlineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerpolygon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerdiscard\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerrecord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplothandlerrecord{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotxyfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxyfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotxyzfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxyzfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotgnuplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotgnuplot{${1:gnuplot function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotgnuplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotgnuplot[${2:prefix}]{${1:gnuplot function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotfunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotfunction{${1:variable%cmd}}{${2:sample list}}{${3:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodeparttextbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmultipartnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmultipartnode{${1:shape}}{${2:anchor}}{${3:name}}{${4:path usage cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfnode{${1:shape}}{${2:anchor}}{${3:label text}}{${4:name}}{${5:path usage cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpositionnodelater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpositionnodelater{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpositionnodelatername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgflatenodepositioning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflatenodepositioningtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflatenodepositioningfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodenow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpositionnodenow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgffakenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgffakenode{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodepostsetupcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnodepostsetupcode{${1:node name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodealias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnodealias{${1:new name}}{${2:existing name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnoderename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfnoderename{${1:new name}}{${2:existing name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcoordinate{${1:name}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaregenericanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclaregenericanchor{${1:anchor}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointanchor{${1:node}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointshapeborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointshapeborder{${1:node}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetnodeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgetnodeparts{${1:macro}}{${2:shape name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareshape{${1:shape name}}{${2:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfshapeborderusesincircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeborderusesincircletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeborderusesincirclefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodeparts{${1:list of node parts}}\"\n      }\n    },\n    {\n      \"name\": \"savedanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savedanchor{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"saveddimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveddimen{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"savedmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savedmacro{${1:cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtosavedmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtosavedmacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"anchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anchor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"deferredanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deferredanchor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"anchorborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchorborder{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"backgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"foregroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foregroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"behindbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"behindbackgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforebackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforebackgroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"behindforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"behindforegroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforeforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforeforegroundpath{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"inheritsavedanchors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritsavedanchors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritsavedanchors[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbehindbackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbehindbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbehindbackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbeforebackgroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbeforebackgroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbeforebackgroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbehindforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbehindforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbehindforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritbeforeforegroundpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritbeforeforegroundpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritbeforeforegroundpath[${2:from={${1:shape name}}}]\"\n      }\n    },\n    {\n      \"name\": \"inheritanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inheritanchor[${3:from={${1:shape name}}}]{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"inheritanchorborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inheritanchorborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritanchorborder[${2:from={${1:shape name}}}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgf#c\": [\n      \"draft\",\n      \"version=${1|0.65,0.96,1.18,latest|}\"\n    ],\n    \"\\\\pgfdeclareplothandler#c\": [\n      \"start=${1:code}\",\n      \"end=${1:code}\",\n      \"point=${1:code}\",\n      \"jump=${1:code}\",\n      \"special=${1:code}\",\n      \"point macro=${1:macro}\",\n      \"special macro=${1:macro}\",\n      \"start macro=${1:macro}\",\n      \"end macro=${1:macro}\",\n      \"jump macro=${1:macro}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgfcalendar-ext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcalendar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfcalendarjulianyeartoweek\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfcalendarjulianyeartoweek{${1:Julian day}}{${2:year}}{${3:week counter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarcurrentweek\"\n    },\n    {\n      \"name\": \"pgfcalendarifdateweek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfcalendarifdate#c,\\\\ifdate#c\": [\n      \"Jan\",\n      \"Feb\",\n      \"Mar\",\n      \"Apr\",\n      \"May\",\n      \"Jun\",\n      \"Jul\",\n      \"Aug\",\n      \"Sep\",\n      \"Oct\",\n      \"Nov\",\n      \"Dec\",\n      \"leap year\",\n      \"leap year=${1:year}\",\n      \"and={${1:tests}}\",\n      \"not={${1:tests}}\",\n      \"week of month=${1:num}\",\n      \"week of month'=${1:num}\",\n      \"calendar week of month=${1:num}\",\n      \"calendar week of month'=${1:num}\",\n      \"yesterday={${1:tests}}\",\n      \"week=${1:num}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfcalendar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfcalendardatetojulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcalendardatetojulian{${1:date}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarjuliantodate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcalendarjuliantodate{${1:Julian day}}{${2:year cmd%cmd}}{${3:month cmd%cmd}}{${4:day cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarjuliantoweekday\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcalendarjuliantoweekday{${1:Julian day}}{${2:week day cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendareastersunday\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcalendareastersunday{${1:year}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarifdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcalendarifdate{${1:date}}{${2:tests%keyvals}}{${3:code}}{${4:else code}}\",\n        \"keys\": [\n          \"\\\\pgfcalendarifdate#c,\\\\ifdate#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfcalendarifdatejulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarifdateweekday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarifdateyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarifdatemonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarifdateday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarweekdayname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcalendarweekdayname{${1:week day number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarweekdayshortname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcalendarweekdayshortname{${1:week day number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarmonthname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcalendarmonthname{${1:month number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarmonthshortname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcalendarmonthshortname{${1:month number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfcalendar{${1:prefix}}{${2:start date}}{${3:end date}}{${4:rendering code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarbeginiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarbeginjulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarendiso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarendjulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarcurrentjulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarcurrentweekday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarcurrentyear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarcurrentmonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarcurrentday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdate{${1:test%keyvals}}{${2:code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarshorthand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfcalendarshorthand{${1:kind}}{${2:representation}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcalendarsuggestedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfcalendarmatches\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarmatchestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfcalendarmatchesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinteval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfinteval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfintabs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmax{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivtruncate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivtruncate{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivfloor{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivround{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintset{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfcalendarifdate#c,\\\\ifdate#c\": [\n      \"all\",\n      \"Monday\",\n      \"Tuesday\",\n      \"Wednesday\",\n      \"Thursday\",\n      \"Friday\",\n      \"Saturday\",\n      \"Sunday\",\n      \"workday\",\n      \"weekend\",\n      \"equals=${1:reference}\",\n      \"at least=${1:reference}\",\n      \"at most=${1:reference}\",\n      \"between=${1:start} and ${2:end}\",\n      \"day of month=${1:number}\",\n      \"end of month=${1:number}\",\n      \"Easter=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfcore.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pgfsys\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfintloaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinteval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfinteval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfintabs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmax{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmin{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivtruncate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivtruncate{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivfloor{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintdivround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintdivround{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintmod{${1:number}}{${2:modulus}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfintset{${1:arg}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpoint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpoint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointtransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointtransformed{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointdiff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointdiff{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointadd{${1:vec1}}{${2:vec2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointscale{${1:factor}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointscale{${1:factor}}{${2:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointintersectionoflines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfpointintersectionoflines{${1:start1}}{${2:end1}}{${3:start2}}{${4:end2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointintersectionofcircles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfpointintersectionofcircles{${1:p1}}{${2:p2}}{${3:r1}}{${4:r2}}{${5:solution}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointlineattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointlineattime{${1:time}}{${2:p1}}{${3:p2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointlineatdistance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointlineatdistance{${1:distance}}{${2:p1}}{${3:p2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcurveattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfpointcurveattime{${1:time}}{${2:p1}}{${3:p2}}{${4:p3}}{${5:p4}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointarcaxesattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpointarcaxesattime{${1:time}}{${2:center}}{0-degree axis}{90-degree axis}{${3:start angle}}{${4:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointpolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointpolar{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointpolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointpolar{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointpolarxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointpolarxy{${1:degree}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcylindrical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointcylindrical{${1:degree}}{${2:radius}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointspherical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointspherical{${1:longitude}}{${2:latitude}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfqpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetxvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetxvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetyvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetyvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetzvec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetzvec{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointnormalised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointnormalised{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointborderrectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointborderrectangle{${1:direction}}{${2:corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointborderellipse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointborderellipse{${1:direction}}{${2:corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfextractx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfextractx{${1:dimension}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfextracty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfextracty{${1:dimension}}{${2:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetlastxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgetlastxy{${1:macro for x%cmd}}{${2:macro for y%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointtransformednonlinear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointtransformednonlinear{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgetpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetpath{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetcornersarced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetcornersarced{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathmoveto{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathlineto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathlineto{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpathcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpathcurveto{${1:support p1}}{${2:support p2}}{${3:end point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathquadraticcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathquadraticcurveto{${1:support point}}{${2:end point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpatharc{${1:start angle}}{${2:end angle}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharcaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfpatharcaxes{${1:start angle}}{${2:end angle}}{${3:axis1}}{${4:axis2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharcto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpatharcto{${1:x-radius}}{${2:y-radius}}{${3:rotation}}{${4:large arc flag}}{${5:countercl flag}}{${6:target point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatharctomaxstepsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpatharctoprecomputed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpatharctoprecomputed{${1:point1}}{${2:start angle}}{${3:end angle}}{${4:point2}}{${5:a}}{${6:b}}{${7:ab-ratio}}{${8:ba-ratio}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathellipse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpathellipse{${1:center}}{${2:axis2}}{${3:axis2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathcircle{${1:center}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathrectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathrectangle{${1:corner}}{${2:diagonal vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathrectanglecorners\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathrectanglecorners{${1:corner}}{${2:opposite corner}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathgrid{${1:corner1}}{${2:corner2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfpathgrid[${3:options%keyvals}]{${1:corner1}}{${2:corner2}}\",\n        \"keys\": [\n          \"\\\\pgfpathgrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfpathparabola\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathparabola{${1:bend vector}}{${2:end vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathsine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathsine{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcosine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathcosine{${1:vector}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcurvebetweentime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathcurvebetweentime{${1:time t1}}{${2:time t2}}{${3:point p}}{${4:point s1}}{${5:point s2}}{${6:point q}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathcurvebetweentimecontinue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathcurvebetweentimecontinue{${1:time t1}}{${2:time t2}}{${3:point p}}{${4:point s1}}{${5:point s2}}{${6:point q}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfusepath{${1:actions%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfusepath#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfsetshortenstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetshortenstart{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetshortenend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetshortenend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfrememberpicturepositiononpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrememberpicturepositiononpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrememberpicturepositiononpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfqbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqbox{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqboxsynced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqboxsynced{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"pgftext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgftext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgftext[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\pgftext#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfresetboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetbaselinepointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaselinepointlater{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbaselinepointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaselinepointnow{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbaseline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetbaseline{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleftpointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleftpointlater{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleftpointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleftpointnow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimleft{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimrightpointlater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimrightpointlater{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimrightpointnow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimrightpointnow{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettrimright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettrimright{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseid{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfclearid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidrefnextuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfidrefnextuse{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfidrefprevuse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfidrefprevuse{${1:cmd}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusetype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfusetype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpushtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpoptype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfaliasid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasid{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgaliasid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgaliasid{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfifidreferenced\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfifidreferenced{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetlinewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetinnerlinewidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetinnerlinewidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinnerlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetinnerstrokecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetinnerstrokecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfinnerstrokecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmiterlimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmiterlimit{${1:miter limit factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetstrokecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetstrokecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetfillcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetbuttcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetroundcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetrectcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetmiterjoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetbeveljoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetroundjoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfseteorule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetnonzerorule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgettransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgettransform{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgettransformentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfgettransformentries{${1:macro1%cmd}}{${2:macro2%cmd}}{${3:macro3%cmd}}{${4:macro4%cmd}}{${5:xshift-macro%cmd}}{${6:yshift-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettransformentries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfsettransformentries{${1:macro1}}{${2:macro2}}{${3:macro3}}{${4:macro4}}{${5:xshift-macro}}{${6:yshift-macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsettransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsettransform{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransforminvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformcm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgftransformcm{${1:a}}{${2:b}}{${3:c}}{${4:d}}{${5:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformtriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgftransformtriangle{${1:a}}{${2:b}}{${3:c}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformresetnontranslations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformshift{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxshift{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyshift{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxslant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyslant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyslant{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformrotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformrotate{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfslopedattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfslopedattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfslopedattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfallowupsidedownattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfallowupsidedownattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfallowupsidedownattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfresetnontranslationattime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfresetnontranslationattimetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfresetnontranslationattimefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformlineattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgftransformlineattime{${1:time}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformarcaxesattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgftransformarcaxesattime{${1:time}}{${2:center}}{0-deg axis}{90-deg axis}{${3:start angle}}{${4:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformcurveattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgftransformcurveattime{${1:time}}{${2:start}}{${3:support1}}{${4:support2}}{${5:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgftransformarrow{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformationadjustments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfhorizontaltransformationadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfverticaltransformationadjustment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelsynccm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgflowlevel{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgflowlevelscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgflowlevelscope{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"endpgflowlevelscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgflowlevelobj{${1:transformation code}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfviewboxscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfviewboxscope{${1:ll1}}{${2:ur1}}{${3:ll2}}{${4:ur2}}{${5:meet or slice}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfviewboxscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfapproximatenonlineartranslation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfapproximatenonlineartransformation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransformnonlinear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformnonlinear{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathqmoveto{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqlineto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathqlineto{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqcurveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfpathqcurveto{${1:x-dimen1%l}}{${2:y-dimen1%l}}{${3:x-dimen2%l}}{${4:y-dimen2%l}}{${5:target-x-dimen%l}}{${6:target-y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathqcircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathqcircle{${1:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfusepathqstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqfillstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfusepathqclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdefobject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfdefobject{${1:name}}{${2:ll}}{${3:ur}}{${4:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseobject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseobject{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseobjectmagnify\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseobjectmagnify{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesssplitpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesssplitpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesssplitsubpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesssplitsubpath{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocessresultsubpathprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocessresultsubpathsuffix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocesspathextractpoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprocesspathextractpoints{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointfirstonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointsecondonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointsecondlastonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointlastonpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprocesscheckclosed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocesscheckclosed{${1:macro%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocessround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocessround{${1:macro1%cmd}}{${2:macro2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprocesspathreplacestartandend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprocesspathreplacestartandend{${1:start coord}}{${2:end coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarearrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdeclarearrow{${1:config%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfdeclarearrow#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfarrowdraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowdraw{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowtotallength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowtotallength{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrowsend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrowsend{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrowsstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrowsstart{${1:specification}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowswap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowswaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowswapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowreversed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowreversedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowreversedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowharpoon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowharpoontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowharpoonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfarrowopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsaddtolengthscalelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtolengthscalelist{${1:dimen register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtowidthscalelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtowidthscalelist{${1:dimen register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtooptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtooptions{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsaddtolateoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsaddtolateoptions{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsthreeparameters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsthreeparameters{${1:size spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowstheparameters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfarrowsfourparameters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowsfourparameters{${1:size spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowslinewidthdependent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfarrowslinewidthdependent{${1:dimen%l}}{${2:line width factor}}{${3:outer factor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowslengthdependent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfarrowslengthdependent{${1:dimen%l}}{${2:length factor}}{${3:dummy}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssavethe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssavethe{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssave{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowshullpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfarrowshullpoint{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowsupperhullpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfarrowsupperhullpoint{${1:x-dimen%l}}{${2:y-dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssettipend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssettipend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetbackend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetbackend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetlineend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetlineend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetvisualtipend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetvisualtipend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfarrowssetvisualbackend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfarrowssetvisualbackend{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetarrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetarrows{${1:startspec-endspec}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfshadingmodelrgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelrgbtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelrgbfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfshadingmodelcmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelcmyktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelcmykfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfshadingmodelgray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelgraytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshadingmodelgrayfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarehorizontalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclarehorizontalshading{${1:name}}{${2:height}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarehorizontalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclarehorizontalshading[${4:color list}]{${1:name}}{${2:height}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareverticalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareverticalshading{${1:name}}{${2:width}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareverticalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclareverticalshading[${4:color list}]{${1:name}}{${2:width}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareradialshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareradialshading{${1:name}}{${2:center point}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareradialshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfdeclareradialshading[${4:color list}]{${1:name}}{${2:center point}}{${3:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefunctionalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarefunctionalshading{${1:name}}{${2:ll-corner}}{${3:ur-corner}}{${4:init-code}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefunctionalshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarefunctionalshading[${6:color list}]{${1:name}}{${2:ll-corner}}{${3:ur-corner}}{${4:init-code}}{${5:function}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortorgb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortorgb{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortocmyk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortocmyk{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadecolortogray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadecolortogray{${1:color}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgffuncshadingrgbtocmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingrgbtogray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingcmyktorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadingcmyktogray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadinggraytorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffuncshadinggraytocmyk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseshading{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaliasshading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasshading{${1:alias name}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshadepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshadepath{${1:name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetadditionalshadetransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetadditionalshadetransform{${1:transformation}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfdeclareimage[${3:options%keyvals}]{${1:image name}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimage,\\\\pgfimage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclareimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareimage{${1:image name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfdeclaremask[${3:options%keyvals}]{${1:mask name}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclaremask\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclaremask{${1:mask name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaliasimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaliasimage{${1:new image name}}{${2:existing image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfuseimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseimage{${1:image name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfalternateextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfimage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfdeclareimage,\\\\pgfimage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfexternalreadmainaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalreadmainauxtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalreadmainauxfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrealjobname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrealjobname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfactualjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginpgfgraphicnamed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginpgfgraphicnamed{${1:file name prefix}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfgraphicnamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfincludeexternalgraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfincludeexternalgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternalreaddpth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfexternalreaddpth{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternaldepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternaltrimleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternaltrimright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dpthimport\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalstorecommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfexternalstorecommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfexternalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarelayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdeclarelayer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetlayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetlayers{${1:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfonlayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfonlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdiscardlayername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetstrokeopacity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetstrokeopacity{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillopacity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetfillopacity{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetblendmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetblendmode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfsetblendmode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclarefading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclarefading{${1:name}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfading{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfadingforcurrentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfadingforcurrentpath{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfadingforcurrentpathstroked\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfadingforcurrentpathstroked{${1:name}}{${2:transformations}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgftransparencygroup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endpgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclarepatternformonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatternformonly{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatternformonly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatternformonly[${6:variables}]{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatterninherentlycolored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatterninherentlycolored{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepatterninherentlycolored\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclarepatterninherentlycolored[${6:variables}]{${1:name}}{${2:bottom left}}{${3:top right}}{${4:tile size}}{${5:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpatternreleasename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpatternreleasename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetfillpattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetfillpattern{${1:name}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfabout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfabout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfcontent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfcontent{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfdatatype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfdatatype{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfhref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfhref{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfinlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrdfprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfprefix{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfproperty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfproperty{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfrel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfresource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfresource{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfrev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfrev{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfsrc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfsrc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdftypeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdftypeof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrdfvocab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrdfvocab{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pgfscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptboundingbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfidscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfinterruptpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflowlevelscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:transformation code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfviewboxscope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:ll1}}{${2:ur1}}{${3:ll2}}{${4:ur2}}{${5:meet or slice}}\"\n      }\n    },\n    {\n      \"name\": \"pgfonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftransparencygroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\pgfpathgrid#c\": [\n      \"stepx=\",\n      \"stepy=\",\n      \"step=${1:vector}\"\n    ],\n    \"\\\\pgfusepath#c\": [\n      \"fill\",\n      \"stroke\",\n      \"draw\",\n      \"clip\",\n      \"discard\"\n    ],\n    \"\\\\pgftext#c\": [\n      \"left\",\n      \"right\",\n      \"top\",\n      \"bottom\",\n      \"base\",\n      \"at=${1:point}\",\n      \"x=\",\n      \"y=\",\n      \"rotate=${1:degree}\"\n    ],\n    \"\\\\pgfdeclarearrow#c\": [\n      \"name=${1:name}\",\n      \"name=${1:start name}-${2:end name}\",\n      \"parameters={${1:list of macros}}\",\n      \"setup code={${1:code}}\",\n      \"drawing code={${1:code}}\",\n      \"cache\",\n      \"bending mode=${1|none,orthogonal,polar|}\",\n      \"defaults=${1:arrow keys}\",\n      \"means=\"\n    ],\n    \"\\\\pgfdeclaremask\": [\n      \"matte=${1:color components}\"\n    ],\n    \"\\\\pgfdeclareimage,\\\\pgfimage\": [\n      \"height=\",\n      \"width=\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"mask=${1:mask name}\"\n    ],\n    \"\\\\pgfsetblendmode\": [\n      \"normal\",\n      \"multiply\",\n      \"screen\",\n      \"overlay\",\n      \"darken\",\n      \"lighten\",\n      \"color dodge\",\n      \"color burn\",\n      \"hard light\",\n      \"soft light\",\n      \"difference\",\n      \"exclusion\",\n      \"saturation\",\n      \"color\",\n      \"hue\",\n      \"luminosity\"\n    ],\n    \"\\\\begin{pgftransparencygroup},\\\\pgftransparencygroup\": [\n      \"knockout\",\n      \"isolated\"\n    ],\n    \"\\\\usegdlibrary#c\": [\n      \"trees\",\n      \"layered\",\n      \"force\",\n      \"circular\",\n      \"phylogenetics\",\n      \"routing\"\n    ],\n    \"\\\\pgfdeclarepattern#c\": [\n      \"name=${1:name}\",\n      \"type=${1|uncolored,colored,form only,inherently colored|}\",\n      \"x=\",\n      \"y=\",\n      \"parameters=\",\n      \"defaults=\",\n      \"bottom left=${1:pgf point}\",\n      \"top right=${1:pgf point}\",\n      \"tile size=${1:pgf point}\",\n      \"tile transformation=${1:pgf transformation}\",\n      \"code=${1:code}\",\n      \"set up code=${1:code}\"\n    ],\n    \"\\\\pgfsysanimate#c,\\\\pgfanimateattribute#c,\\\\pgfanimateattributecode#c\": [\n      \"opacity\",\n      \"fillopacity\",\n      \"strokeopacity\",\n      \"visibility\",\n      \"strokecolor\",\n      \"fillcolor\",\n      \"path\",\n      \"linewidth\",\n      \"dash\",\n      \"translate\",\n      \"scale\",\n      \"rotate\",\n      \"skewx\",\n      \"skewy\",\n      \"motion\",\n      \"viewbox\"\n    ],\n    \"\\\\pgfdata#c\": [\n      \"read from file=${1:file name}\",\n      \"inline\",\n      \"format=${1|TeX code,named,table|}\",\n      \"every data\",\n      \"new set=${1:name}\",\n      \"store in set=${1:name}\",\n      \"use set=${1:name}\"\n    ],\n    \"\\\\state#c\": [\n      \"switch if less than=${1:dimen} to ${2:new state}\",\n      \"switch if input segment less than=${1:dimen} to ${2:new state}\",\n      \"width=\",\n      \"repeat state=${1:repetitions}\",\n      \"next state=${1:new state}\",\n      \"if input segment is closepath={${1:options}}\",\n      \"auto end on length=\",\n      \"auto corner on length=\",\n      \"persistent precomputation=${1:precode}\",\n      \"persistent postcomputation=${1:postcode}\"\n    ],\n    \"\\\\pgfparserset#c\": [\n      \"silent\",\n      \"status\"\n    ],\n    \"\\\\pgfdeclareplothandler#c\": [\n      \"start=${1:code}\",\n      \"end=${1:code}\",\n      \"point=${1:code}\",\n      \"jump=${1:code}\",\n      \"special=${1:code}\",\n      \"point macro=${1:macro}\",\n      \"special macro=${1:macro}\",\n      \"start macro=${1:macro}\",\n      \"end macro=${1:macro}\",\n      \"jump macro=${1:macro}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgffor-ext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\foreach#c\": [\n      \"xparser={${1:arg spec}}{${2:foreach value}}\",\n      \"xparser Om\",\n      \"no separator\",\n      \"normal list\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgffor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"breakforeach\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\foreach#c\": [\n      \"var=${1:variable}\",\n      \"evaluate=${1:variable}\",\n      \"evaluate=${1:variable} as ${2:macro}\",\n      \"evaluate=${1:variable} as ${2:macro} using ${3:formula}\",\n      \"remember=${1:variable} as ${2:macro}\",\n      \"remember=${1:variable} as ${2:macro} (initially ${3:value})\",\n      \"count=${1:macro}\",\n      \"count=${1:macro} from ${2:value}\",\n      \"parse\",\n      \"expand list\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfgantt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfcalendar\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ganttset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ganttset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newgantttimeslotformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgantttimeslotformat{${1:name}}{${2:converter code}}\"\n      }\n    },\n    {\n      \"name\": \"ganttnewline\"\n    },\n    {\n      \"name\": \"ganttnewline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ganttnewline[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"ganttalignnewline\"\n    },\n    {\n      \"name\": \"gantttitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gantttitle{${1:label}}{${2:number of time slots}}\"\n      }\n    },\n    {\n      \"name\": \"gantttitle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gantttitle[${3:options%keyvals}]{${1:label}}{${2:number of time slots}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gantttitlelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gantttitlelist{${1:pgffor list}}{${2:length of each element}}\"\n      }\n    },\n    {\n      \"name\": \"gantttitlelist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gantttitlelist[${3:options%keyvals}]{${1:pgffor list}}{${2:length of each element}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gantttitlecalendar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gantttitlecalendar{${1:calendar lines}}\"\n      }\n    },\n    {\n      \"name\": \"gantttitlecalendar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gantttitlecalendar[${2:options%keyvals}]{${1:calendar lines}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gantttitlecalendar*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gantttitlecalendar*{${1:start tss}}{${2:end tss}}{${3:calendar lines}}\"\n      }\n    },\n    {\n      \"name\": \"gantttitlecalendar*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"gantttitlecalendar*[${4:options%keyvals}]{${1:start tss}}{${2:end tss}}{${3:calendar lines}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"currentweek\"\n    },\n    {\n      \"name\": \"startyear\"\n    },\n    {\n      \"name\": \"startmonth\"\n    },\n    {\n      \"name\": \"startday\"\n    },\n    {\n      \"name\": \"ganttvrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ganttvrule{${1:label%text}}{${2:tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttvrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ganttvrule[${3:options%keyvals}]{${1:label%text}}{${2:tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttbar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ganttbar{${1:label%text}}{${2:start tss}}{${3:end tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ganttbar[${4:options%keyvals}]{${1:label%text}}{${2:start tss}}{${3:end tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttgroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ganttgroup{${1:label%text}}{${2:start tss}}{${3:end tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttgroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ganttgroup[${4:options%keyvals}]{${1:label%text}}{${2:start tss}}{${3:end tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttmilestone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ganttmilestone{${1:label%text}}{${2:tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttmilestone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ganttmilestone[${3:options%keyvals}]{${1:label%text}}{${2:tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttlinkedbar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ganttlinkedbar{${1:label%text}}{${2:start tss}}{${3:end tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttlinkedbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ganttlinkedbar[${4:options%keyvals}]{${1:label%text}}{${2:start tss}}{${3:end tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttlinkedgroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ganttlinkedgroup{${1:label%text}}{${2:start tss}}{${3:end tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttlinkedgroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ganttlinkedgroup[${4:options%keyvals}]{${1:label%text}}{${2:start tss}}{${3:end tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ganttlinkedmilestone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ganttlinkedmilestone{${1:label%text}}{${2:tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttlinkedmilestone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ganttlinkedmilestone[${3:options%keyvals}]{${1:label%text}}{${2:tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newganttchartelement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newganttchartelement{${1:name}}{${2:new default keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newganttchartelement*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newganttchartelement*{${1:name}}{${2:new default keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ganttlink\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ganttlink{${1:start element name}}{${2:end element name}}\"\n      }\n    },\n    {\n      \"name\": \"ganttlink\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ganttlink[${3:options%keyvals}]{${1:start element name}}{${2:end element name}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newganttlinktype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newganttlinktype{${1:type%specialDef}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"ganttsetstartanchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ganttsetstartanchor{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"ganttsetendanchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ganttsetendanchor{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"xLeft\"\n    },\n    {\n      \"name\": \"yUpper\"\n    },\n    {\n      \"name\": \"xRight\"\n    },\n    {\n      \"name\": \"yLower\"\n    },\n    {\n      \"name\": \"ganttlinklabel\"\n    },\n    {\n      \"name\": \"ganttvalueof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ganttvalueof{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newganttlinktypealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newganttlinktypealias{${1:new type%specialDef}}{${2:existing type}}\"\n      }\n    },\n    {\n      \"name\": \"setganttlinklabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setganttlinklabel{${1:type%keyvals}}{${2:label%text}}\",\n        \"keys\": [\n          \"\\\\setganttlinklabel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endofdecade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"querydecade\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ganttchart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:start tss}}{${2:end tss}}\"\n      }\n    },\n    {\n      \"name\": \"ganttchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:start tss}}{${2:end tss}}\",\n        \"keys\": [\n          \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\setganttlinklabel#c\": [\n      \"%ganttlinktype\"\n    ],\n    \"\\\\ganttset#c,\\\\begin{ganttchart}#c,\\\\gantttitle#c,\\\\gantttitlelist#c,\\\\gantttitlecalendar#c,\\\\gantttitlecalendar*#c,\\\\ganttvrule#c,\\\\ganttbar#c,\\\\ganttgroup#c,\\\\ganttmilestone#c,\\\\ganttlinkedbar#c,\\\\ganttlinkedgroup#c,\\\\ganttlinkedmilestone#c,\\\\ganttlink#c\": [\n      \"time slot format=${1|simple.isodate,isodate-yearmonth,isodate-year,little-endian,middle-endian,big-endian|}\",\n      \"time slot format/base century=${1:year}\",\n      \"time slot format/start date=${1:ISO-standard date}\",\n      \"canvas/.style={${1:TikZ options}}\",\n      \"x unit=\",\n      \"y unit title=\",\n      \"y unit chart=\",\n      \"expand chart=\",\n      \"hgrid=${2|true,false,{${1:style list}}|}\",\n      \"hgrid style/.style={${1:TikZ options}}\",\n      \"vgrid=${2|true,false,{${1:style list}}|}\",\n      \"today=${1:tss}\",\n      \"today offset=${1:number}\",\n      \"today rule/.style={${1:TikZ options}}\",\n      \"today label=${1:text}\",\n      \"today label font=${1:font commands}\",\n      \"today label node/.style={${1:TikZ options}}\",\n      \"newline shortcut\",\n      \"title list options={${1:pgffor options}}\",\n      \"calendar week text={${1:format}}\",\n      \"time slot unit=${1|day,month,year|}\",\n      \"title/.style={${1:TikZ options}}\",\n      \"title label font=${1:font commands}\",\n      \"title label node/.style={${1:TikZ options}}\",\n      \"title label text=${1:text}\",\n      \"title left shift=${1:factor}\",\n      \"title right shift=${1:factor}\",\n      \"title top shift=${1:factor}\",\n      \"title height=${1:factor}\",\n      \"include title in canvas\",\n      \"vrule offset=${1:number}\",\n      \"vrule/.style={${1:TikZ options}}\",\n      \"vrule label font=${1:font commands}\",\n      \"vrule label node/.style={${1:TikZ options}}\",\n      \"chart element start border=${1|left,right|}\",\n      \"bar/.style={${1:TikZ options}}\",\n      \"group/.style={${1:TikZ options}}\",\n      \"milestone/.style={${1:TikZ options}}\",\n      \"bar label text=${1:text}\",\n      \"group label text=${1:text}\",\n      \"milestone label text=${1:text}\",\n      \"bar label font=${1:font commands}\",\n      \"group label font=${1:font commands}\",\n      \"milestone label font=${1:font commands}\",\n      \"bar label node/.style={${1:TikZ options}}\",\n      \"group label node/.style={${1:TikZ options}}\",\n      \"milestone label node/.style={${1:TikZ options}}\",\n      \"inline\",\n      \"bar inline label anchor=${1:anchor}\",\n      \"group inline label anchor=${1:anchor}\",\n      \"milestone inline label anchor=${1:anchor}\",\n      \"bar inline label node/.style={${1:TikZ options}}\",\n      \"group inline label node/.style={${1:TikZ options}}\",\n      \"milestone inline label node/.style={${1:TikZ options}}\",\n      \"bar left shift=${1:factor}\",\n      \"bar right shift=${1:factor}\",\n      \"bar top shift=${1:factor}\",\n      \"bar height=${1:factor}\",\n      \"group left shift=${1:factor}\",\n      \"group right shift=${1:factor}\",\n      \"group top shift=${1:factor}\",\n      \"group height=${1:factor}\",\n      \"milestone left shift=${1:factor}\",\n      \"milestone right shift=${1:factor}\",\n      \"milestone top shift=${1:factor}\",\n      \"milestone height=${1:factor}\",\n      \"group right peak tip position=${1:fraction}\",\n      \"group right peak width=${1:factor}\",\n      \"group right peak height=${1:factor}\",\n      \"group left peak tip position=${1:fraction}\",\n      \"group left peak width=${1:factor}\",\n      \"group left peak height=${1:factor}\",\n      \"group peaks tip position=${1:fraction}\",\n      \"group peaks width=${1:factor}\",\n      \"group peaks height=${1:factor}\",\n      \"progress=${2|none,today,${1:number}|}\",\n      \"bar incomplete/.style={${1:TikZ options}}\",\n      \"group incomplete/.style={${1:TikZ options}}\",\n      \"milestone incomplete/.style={${1:TikZ options}}\",\n      \"progress label text=${1:text}\",\n      \"bar progress label anchor=${1:anchor}\",\n      \"bar progress label font=${1:font commands}\",\n      \"bar progress label node/.style={${1:TikZ options}}\",\n      \"group progress label anchor=${1:anchor}\",\n      \"group progress label font=${1:font commands}\",\n      \"group progress label node/.style={${1:TikZ options}}\",\n      \"milestone progress label anchor=${1:anchor}\",\n      \"milestone progress label font=${1:font commands}\",\n      \"milestone progress label node/.style={${1:TikZ options}}\",\n      \"on top fraction=${1:fraction}\",\n      \"on bottom fraction=${1:fraction}\",\n      \"on left fraction=${1:fraction}\",\n      \"on right fraction=${1:fraction}\",\n      \"name=${1:name}\",\n      \"link/.style={${1:TikZ options}}\",\n      \"link type=\",\n      \"link mid=${1:factor}\",\n      \"link bulge=${1:factor}\",\n      \"link tolerance=${1:factor}\",\n      \"link label=${1:text}\",\n      \"link label font=${1:font commands}\",\n      \"link label node/.style={${1:TikZ options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfkeys.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfkeyssetvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeyssetvalue{${1:full key}}{${2:token text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeyssetevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeyssetevalue{${1:full key}}{${2:token text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysaddvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysaddvalue{${1:full key}}{${2:prefix code}}{${3:append code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeyslet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeyslet{${1:full key}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysgetvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysgetvalue{${1:full key}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysvalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysvalueof{${1:full key}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysifdefined{${1:full key}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysifassignable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysifassignable{${1:full key}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeys{${1:key list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqkeys\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqkeys{${1:default path}}{${2:key list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysalso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysalso{${1:key list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqkeysalso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqkeysalso{${1:default path}}{${2:key list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfeov\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysdef{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysedef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysedef{${1:key%plain}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysdefnargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysdefnargs{${1:key%plain}}{${2:arg count}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysedefnargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysedefnargs{${1:key%plain}}{${2:arg count}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysdefargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysdefargs{${1:key%plain}}{${2:arg pattern}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysedefargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysedefargs{${1:key%plain}}{${2:arg pattern}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysdefaultpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkeyRAW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysnovalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysvaluerequired\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysaddhandleonlyexistingexception\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysaddhandleonlyexistingexception{${1:handler key}}\"\n      }\n    },\n    {\n      \"name\": \"usepgfkeyslibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfkeyslibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfkeyslibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfkeysfiltered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysfiltered{${1:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqkeysfiltered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfqkeysfiltered{${1:default path}}{${2:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysalsofrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysalsofrom{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysalsofiltered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysalsofiltered{${1:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysalsofilteredfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysalsofilteredfrom{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysactivatefamiliesandfilteroptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysactivatefamiliesandfilteroptions{${1:family list}}{${2:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqkeysactivatefamiliesandfilteroptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfqkeysactivatefamiliesandfilteroptions{${1:family list}}{${2:default path}}{${3:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysactivatesinglefamilyandfilteroptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysactivatesinglefamilyandfilteroptions{${1:family name}}{${2:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqkeysactivatesinglefamilyandfilteroptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfqkeysactivatesinglefamilyandfilteroptions{${1:family name}}{${2:default path}}{${3:key-value list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysinterruptkeyfilter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfkeysinterruptkeyfilter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyssavekeyfilterstateto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeyssavekeyfilterstateto{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysinstallkeyfilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysinstallkeyfilter{${1:full key}}{${2:optional args}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysinstallkeyfilterhandler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysinstallkeyfilterhandler{${1:full key}}{${2:optional args}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysactivatefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysactivatefamily{${1:family name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysdeactivatefamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysdeactivatefamily{${1:family name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysactivatefamilies\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysactivatefamilies{${1:family list}}{${2:deactivate macro name%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysiffamilydefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysiffamilydefined{${1:family}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysisfamilyactive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfkeysisfamilyactive{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysgetfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeysgetfamily{${1:full key}}{${2:result macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeyssetfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfkeyssetfamily{${1:full key}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeyssplitpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscasenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkeyfilter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkeyfilterargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkeyfilterhandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyscurrentkeyfilterhandlerargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfkeysaddeddefaultpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysaddeddefaultpathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysaddeddefaultpathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfkeyssuccess\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyssuccesstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeyssuccessfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfkeysfilteringisactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysfilteringisactivetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysfilteringisactivefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfkeysfiltercontinue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysfiltercontinuetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfkeysfiltercontinuefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepgfkeyslibrary#c\": [\n      \"filtered\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfkeysearch.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfkeysearch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysearch{${1:path-list}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysearchvalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfkeysearchvalueof{${1:path-list}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysearchTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfkeysearchTF{${1:path-list}}{${2:key%plain}}{${3:macro%cmd}}{${4:if-found}}{${5:if-not}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeysearchvalueofTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfkeysearchvalueofTF{${1:path-list}}{${2:key%plain}}{${3:macro%cmd}}{${4:if-found}}{${5:if-not}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfmanual.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifpgfmanualprettyenabled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualclosebrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualprettyprintcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualprettyprintcode{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualprettyprintstyles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmanualprettycommentactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualprettyprinterhandlecollectedargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualprettyprinterhandlecollectedargs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualprettyprinterhandlecollectedargsVtwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmanualprettyprinterhandlecollectedargsVtwo{${1:result}}{${2:found terminator: 0|1}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmanualprettyprinterarghasunmatchedbraces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualprettyprintercollectargcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmanualprettyprintercollectargcount{${1:numargs}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmanualprettyprinterfoundterminator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualprettyprintercollectupto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmanualprettyprintercollectupto{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualprettyprinterterminator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualprettyprintpgfkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualprettyprintpgfkeys{${1:pgfkeys}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmanualpdfwarnings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmanualshowlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualpdflabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmanualpdflabel{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualpdflabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfmanualpdflabel[${3:catcode changes}]{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualpdfref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmanualpdfref{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"declareandlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareandlabel{${1:\\\\controlsequence}}\"\n      }\n    },\n    {\n      \"name\": \"verbpdfref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbpdfref{${1:\\\\controlsequence more stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualtargetcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepgfmanualentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualentryheadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualentryheadline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualbody\"\n    },\n    {\n      \"name\": \"exclamationmarktext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atmarktext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualnormalbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeluadocumentationof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeluadocumentationof{${1:lua class}}\"\n      }\n    },\n    {\n      \"name\": \"parametercount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mvar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualemptytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualvbarvbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathinfixoperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathinfixoperator{${1:operator}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathprefixoperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathprefixoperator{${1:operator}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathpostfixoperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathpostfixoperator{${1:operator}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathgroupoperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathgroupoperator{${1:operator}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathconditionaloperator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathconditionaloperator{${1:operator}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathcommand\"\n    },\n    {\n      \"name\": \"mathcommand\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mathcommand[${1:expr}]\"\n      }\n    },\n    {\n      \"name\": \"calcname\"\n    },\n    {\n      \"name\": \"gobble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobble{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"choicesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"choicearg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choicearg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstchoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mchoice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mchoice{${1:choice1,choice2,...}}\"\n      }\n    },\n    {\n      \"name\": \"insertpathifneeded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"insertpathifneeded{${1:path/key}}{${2:default path}}\"\n      }\n    },\n    {\n      \"name\": \"keyalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyalias{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"iffirsttime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexkey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexkey{${1:/path/key}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualbar\"\n    },\n    {\n      \"name\": \"doublebs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ooarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ooarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beamer\"\n    },\n    {\n      \"name\": \"pdf\"\n    },\n    {\n      \"name\": \"eps\"\n    },\n    {\n      \"name\": \"pgfname\"\n    },\n    {\n      \"name\": \"tikzname\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"prosper\"\n    },\n    {\n      \"name\": \"seminar\"\n    },\n    {\n      \"name\": \"texpower\"\n    },\n    {\n      \"name\": \"foils\"\n    },\n    {\n      \"name\": \"printanat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declare{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualdeclare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"themeauthor\"\n    },\n    {\n      \"name\": \"indexoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexoption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"itemcalendaroption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemcalendaroption{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"noindexing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowcapexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrowcapexample[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"arrowexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrowexample[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"arrowexampledup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrowexampledup[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"arrowexampledupdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrowexampledupdot[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"arrowexampledouble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrowexampledouble[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"symarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symarrow{${1:arrow tip}}\"\n      }\n    },\n    {\n      \"name\": \"symarrowdouble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symarrowdouble{${1:arrow tip}}\"\n      }\n    },\n    {\n      \"name\": \"sarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sarrow{${1:tip1}}{${2:tip2}}\"\n      }\n    },\n    {\n      \"name\": \"sarrowdouble\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sarrowdouble{${1:tip1}}{${2:tip2}}\"\n      }\n    },\n    {\n      \"name\": \"carrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"carrow{${1:arrow tip}}\"\n      }\n    },\n    {\n      \"name\": \"myvbar\"\n    },\n    {\n      \"name\": \"plotmarkentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotmarkentry{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"plotmarkentrytikz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotmarkentrytikz{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmanualtikzsyntaxhilighting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualanimscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opensource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opensource{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifcodeexamplefromfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codeexamplewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codeexamplebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codeexampleboxanim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualdolisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualdolisting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmanualcslinkpreskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualswitchoncolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmanualwordstartup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmanualwordstartup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noligs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noligs{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pgfmanualentry\"\n    },\n    {\n      \"name\": \"pgflayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"sysanimateattribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"animateattribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"tikzanimateattribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"command\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:command%plain}}\"\n      }\n    },\n    {\n      \"name\": \"luageneric\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"luatable\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"luafield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"lualibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"luadeclare\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"luadeclarestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"luanamespace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:prefix}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"luafiledescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"luacommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"luaparameters\"\n    },\n    {\n      \"name\": \"luareturns\"\n    },\n    {\n      \"name\": \"parameterdescription\"\n    },\n    {\n      \"name\": \"commandlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"internallist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"internallist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:type}]{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"shape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"pictype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:pictype}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"shading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:shading}}\"\n      }\n    },\n    {\n      \"name\": \"graph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:graph}}\"\n      }\n    },\n    {\n      \"name\": \"gdalgorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:employs}}\"\n      }\n    },\n    {\n      \"name\": \"dataformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"stylesheet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stylesheet}}\"\n      }\n    },\n    {\n      \"name\": \"handler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:handler}}\"\n      }\n    },\n    {\n      \"name\": \"stylekey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path/key=value}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path/key=value}}\"\n      }\n    },\n    {\n      \"name\": \"keylist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path1/key1=value1,path2/key2=value2,...}}\"\n      }\n    },\n    {\n      \"name\": \"keylist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:default path}]{${1:path1/key1=value1,path2/key2=value2,...}}\"\n      }\n    },\n    {\n      \"name\": \"predefinedmethod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ooclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"method\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"classattribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"predefinednode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:method}}\"\n      }\n    },\n    {\n      \"name\": \"coordinatesystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:system}}\"\n      }\n    },\n    {\n      \"name\": \"snake\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"decoration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:decoration}}\"\n      }\n    },\n    {\n      \"name\": \"pathoperation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:operation}}{${2:other text}}\"\n      }\n    },\n    {\n      \"name\": \"pathoperation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:noindex}]{${1:operation}}{${2:other text}}\"\n      }\n    },\n    {\n      \"name\": \"datavisualizationoperation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:operation}}{${2:other text}}\"\n      }\n    },\n    {\n      \"name\": \"datavisualizationoperation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:noindex}]{${1:operation}}{${2:other text}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"pgflibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"purepgflibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"tikzlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"pgfkeyslibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"filedescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"packageoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"textoken\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"arrowtipsimple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"arrowtip\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:description%text}}{${3:draw options}}{${4:option labels}}\"\n      }\n    },\n    {\n      \"name\": \"arrowcap\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:description%text}}{${3:draw options}}{${4:option labels}}{${5:shift}}\"\n      }\n    },\n    {\n      \"name\": \"pattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"arrowexamples\"\n    },\n    {\n      \"name\": \"arrowcapexamples\"\n    },\n    {\n      \"name\": \"codeexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{codeexample}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{codeexample}#c\": [\n      \"width=\",\n      \"graphic=\",\n      \"code=\",\n      \"execute code\",\n      \"hidden\",\n      \"code only\",\n      \"setup code\",\n      \"multipage\",\n      \"pre={${1:code}\",\n      \"post={${1:code}\",\n      \"typeset listing=\",\n      \"render instead={${1:code}}\",\n      \"vbox\",\n      \"ignorespaces\",\n      \"leave comments\",\n      \"from file=${1:file}\",\n      \"tikz syntax\",\n      \"animation list={${1:num1,num2,...}}\",\n      \"animation pre={${1:code}}\",\n      \"animation post={${1:code}}\",\n      \"animation scale=${1:factor}\",\n      \"animation bb={(${1:x1,y1}) ${2:type} (${3:x2,y2})}\",\n      \"preamble={${1:code}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfmath-xfp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmxfpdeclarefunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmxfpdeclarefunction{${1:name}}{${2:args}}{${3:fp expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmxfpdeclarefunction\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"pgfmxfpdeclarefunction{${1:name}}{${2:args}}[${4:process-args}]{${3:fp expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathsetlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetlength{${1:length register}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathaddtolength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathaddtolength{${1:length register}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetcount{${1:count register}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathaddtocount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathaddtocount{${1:count register}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetcounter{${1:counter}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathaddtocounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathaddtocounter{${1:counter}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetmacro{${1:cmd}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetlengthmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetlengthmacro{${1:cmd}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathtruncatemacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathtruncatemacro{${1:cmd}}{${2:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnewcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathnewcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathmakecounterglobal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathmakecounterglobal{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathanglebetweenpoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathanglebetweenpoints{${1:point 1}}{${2:point 2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathanglebetweenlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathanglebetweenlines{${1:line 1 start}}{${2:line 1 end}}{${3:line 2 start}}{${4:line 2 end}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathrotatepointaround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathrotatepointaround{${1:point}}{${2:rotate center}}{${3:degree}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathreflectpointalongaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathreflectpointalongaxis{${1:point}}{${2:point on axis}}{${3:axis angle}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathpointintersectionoflineandarc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfmathpointintersectionoflineandarc{${1:point 1}}{${2:point 2}}{${3:arc center}}{${4:start angle}}{${5:end angle}}{${6:radii}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathangleonellipse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathangleonellipse{${1:point on ellipse}}{${2:radii}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathincluded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathcontinueloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathcontinuelooptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathcontinueloopfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"repeatpgfmathloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathbreakloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathreturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathfloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathunitsdeclared\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathunitsdeclaredtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathunitsdeclaredfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathmathunitsdeclared\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathmathunitsdeclaredtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathmathunitsdeclaredfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathignoreunitscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathignoreunitscaletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathignoreunitscalefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathprint{${1:real number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathparse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathparse{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathqparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathqparse{${1:math expression}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathpostparse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathscaleresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathsetresultunitscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsetresultunitscale{${1:scale value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathresultunitscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathifexpression\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathifexpression{${1:math expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeclareoperator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfmathdeclareoperator{${1:op}}{${2:op name}}{${3:arity}}{${4:type}}{${5:precedence}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeclarefunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathdeclarefunction{${1:name}}{${2:num of args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeclarefunction*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathdeclarefunction*{${1:name}}{${2:num of args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathredeclarefunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathredeclarefunction{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnotifynewdeclarefunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathnotifynewdeclarefunction{${1:name}}{${2:num of args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathredeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathredeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathadd{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsubtract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsubtract{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathneg{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathmultiply\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathmultiply{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdivide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdivide{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathreciprocal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathreciprocal{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathdiv{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathmod{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathMod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathMod{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathabs{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsign{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathln\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathln{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlogten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathlogten{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlogtwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathlogtwo{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathexp{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsqrt{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathpow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathpow{${1:x}}{${2:power}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfactorial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfactorial{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathiftrigonometricusesdeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathiftrigonometricusesdeg{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathradians\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{} \",\n        \"snippet\": \"pgfmathradians{${1:x in radians}} \"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathdeg{${1:x in radians}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathrad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathrad{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsin{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathcos{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsincos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsincos{${1:num in degress}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathtan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathtan{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcosec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathcosec{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsec{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathcot{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathasin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathasin{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathacos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathacos{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathatan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathatan{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathatantwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathatantwo{${1:y in degrees}}{${2:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetseed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsetseed{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathgeneratepseudorandomnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathrnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathrand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathrandom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathrandom{${1:[[${2:min int,}] max int]}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathrandominteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathrandominteger{${1:cmd}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdeclarerandomlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdeclarerandomlist{${1:list name}}{${2:list of items}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathrandomitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathrandomitem{${1:cmd}}{${2:list name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathgreater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathgreater{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathgreaterthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathgreaterthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathless\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathless{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlessthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathlessthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathequal{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathequalto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathequalto{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmathcomparison\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathcomparisontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathcomparisonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathapproxequalto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathapproxequalto{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathifthenelse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathifthenelse{${1:x}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnotequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathnotequal{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnotless\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathnotless{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnotgreater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathnotgreater{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathand{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathor{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathnot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathnot{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathbin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathbin{${1:x in base 10}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathhex{${1:x in base 10}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathHex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathHex{${1:x in base 10}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathoct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathoct{${1:x in base 10}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathbasetodec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathbasetodec{${1:cmd}}{${2:number}}{${3:base}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdectobase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathdectobase{${1:cmd}}{${2:number}}{${3:base}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdectoBase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathdectoBase{${1:cmd}}{${2:number}}{${3:base}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathbasetobase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathbasetobase{${1:cmd}}{${2:number}}{${3:base1}}{${4:base2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathbasetoBase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathbasetoBase{${1:cmd}}{${2:number}}{${3:base1}}{${4:base2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsetbasenumberlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsetbasenumberlength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathtodigitlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathtodigitlist{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathround{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloor{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathceil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathceil{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathint{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfrac{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathreal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathreal{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathveclen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathveclen{${1:x coordinate}}{${2:y coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcosh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathcosh{${1:x in degree}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsinh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathsinh{${1:x in degree}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathtanh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathtanh{${1:x in degree}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathscientific\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathscientific{${1:mantissa}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathwidth{${1:\\\"text\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathheight{${1:\\\"text\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathdepth{${1:\\\"text\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmatharray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmatharray{${1:array}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathdim{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathmax{${1:num list}}{${2:num list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathmin{${1:num list}}{${2:num list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathscalar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathscalar{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathgcd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathgcd{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathisprime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathisprime{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathisodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathisodd{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathiseven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathiseven{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmathfloatcomparison\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatcomparisontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatcomparisonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathfloatroundhasperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatroundhasperiodtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatroundhasperiodfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathprintnumberskipzeroperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathprintnumberskipzeroperiodtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathprintnumberskipzeroperiodfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfmathfloatroundmayneedrenormalize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatroundmayneedrenormalizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatroundmayneedrenormalizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatparsenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatparsenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatqparsenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatqparsenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathfloattomacro{${1:number}}{${2:flags macro%cmd}}{${3:mantissa macro%cmd}}{${4:exponent macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattoregisters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathfloattoregisters{${1:number}}{${2:flags count}}{${3:mantissa dimen}}{${4:exponent count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattoregisterstok\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathfloattoregisterstok{${1:number}}{${2:flags count}}{${3:mantissa toks}}{${4:exponent count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetflags\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetflags{${1:number}}{${2:flags count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetflagstomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetflagstomacro{${1:number}}{${2:flags macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetmantissa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetmantissa{${1:number}}{${2:mantissa dimen}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetmantisse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetmantisse{${1:number}}{${2:mantissa dimen}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetmantissatok\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetmantissatok{${1:number}}{${2:mantissa toks}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetmantissetok\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetmantissetok{${1:number}}{${2:mantissa toks}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetexponent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgetexponent{${1:number}}{${2:exponent count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatcreate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathfloatcreate{${1:flags}}{${2:mantissa}}{${3:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattofixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloattofixed{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloattoint{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattosci\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloattosci{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatvalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatvalueof{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathroundto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathroundto{${1:fixed point number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathroundtozerofill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathroundtozerofill{${1:fixed point number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatround{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatroundzerofill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatroundzerofill{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatrounddisplaystyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathfloatrounddisplaystyle{${1:flags}}{${2:mantissa}}{${3:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgetfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatgetfrac{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathgreatestcommondivisor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathgreatestcommondivisor{${1:int 1}}{${2:int 2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathifisint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathifisint{${1:number constant}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathprintnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathprintnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathprintnumberto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathprintnumberto{${1:number}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfmathfloatparsenumberpendingperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatparsenumberpendingperiodtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatparsenumberpendingperiodfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathresult\"\n    },\n    {\n      \"name\": \"pgfmathresulty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathresultx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfmolbio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmolbioset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmolbioset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfmolbioset#c\",\n          \"\\\\pmbchromatogram#c,\\\\pgfmolbioset#c\",\n          \"\\\\begin{pmbdomains}#c,\\\\addfeature#c,\\\\pgfmolbioset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfmolbioset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfmolbioset[${2:module}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfmolbioset#c\",\n          \"\\\\pmbchromatogram#c,\\\\pgfmolbioset#c\",\n          \"\\\\begin{pmbdomains}#c,\\\\addfeature#c,\\\\pgfmolbioset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pmbprotocolsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmbprotocolsizes{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pmbchromatogram\",\n      \"if\": \"chromatogram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmbchromatogram{${1:scf file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pmbchromatogram\",\n      \"if\": \"chromatogram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmbchromatogram[${2:options%keyvals}]{${1:scf file%file}}\",\n        \"keys\": [\n          \"\\\\pmbchromatogram#c,\\\\pgfmolbioset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addfeature\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addfeature{${1:type}}{${2:start}}{${3:stop}}\"\n      }\n    },\n    {\n      \"name\": \"addfeature\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addfeature[${4:options%keyvals}]{${1:type}}{${2:start}}{${3:stop}}\",\n        \"keys\": [\n          \"\\\\begin{pmbdomains}#c,\\\\addfeature#c,\\\\pgfmolbioset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setfeaturestyle\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeaturestyle{${1:type}}{${2:style list}}\"\n      }\n    },\n    {\n      \"name\": \"setfeaturestylealias\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeaturestylealias{${1:new type}}{${2:existing type}}\"\n      }\n    },\n    {\n      \"name\": \"setfeatureshape\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeatureshape{${1:type}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"xLeft\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"xMid\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"xRight\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"yMid\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"pmbdomvalueof\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmbdomvalueof{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"featureSequence\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"residueNumber\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"currentResidue\",\n      \"if\": \"domains\"\n    },\n    {\n      \"name\": \"setfeatureshapealias\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeatureshapealias{${1:new type}}{${2:existing type}}\"\n      }\n    },\n    {\n      \"name\": \"setfeaturealias\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeaturealias{${1:new type}}{${2:existing type}}\"\n      }\n    },\n    {\n      \"name\": \"setdisulfidefeatures\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdisulfidefeatures{${1:key list}}\"\n      }\n    },\n    {\n      \"name\": \"adddisulfidefeatures\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adddisulfidefeatures{${1:key list}}\"\n      }\n    },\n    {\n      \"name\": \"removedisulfidefeatures\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removedisulfidefeatures{${1:key list}}\"\n      }\n    },\n    {\n      \"name\": \"setfeatureprintfunction\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfeatureprintfunction{${1:key list}}{${2:Lua function}}\"\n      }\n    },\n    {\n      \"name\": \"removefeatureprintfunction\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removefeatureprintfunction{${1:key list}}\"\n      }\n    },\n    {\n      \"name\": \"pmbdomdrawfeature\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmbdomdrawfeature{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"inputuniprot\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputuniprot{${1:Uniprot file%file}}\"\n      }\n    },\n    {\n      \"name\": \"inputgff\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputgff{${1:gff file%file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pmbdomains\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:sequence length}}\"\n      }\n    },\n    {\n      \"name\": \"pmbdomains\",\n      \"if\": \"domains\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:sequence length}}\",\n        \"keys\": [\n          \"\\\\begin{pmbdomains}#c,\\\\addfeature#c,\\\\pgfmolbioset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pgfmolbio#c\": [\n      \"chromatogram\",\n      \"domains\",\n      \"convert\"\n    ],\n    \"\\\\pgfmolbioset#c\": [\n      \"coordinate unit=${1:unit}\",\n      \"coordinate format string=${1:format string}\",\n      \"output file name=${1:text}\",\n      \"output file extension=${1:text}\",\n      \"output code=${1|pgfmolbio,tikz|}\",\n      \"include description\"\n    ],\n    \"\\\\pmbchromatogram#c,\\\\pgfmolbioset#c\": [\n      \"sample range=${1:lower}-${2:upper}\",\n      \"sample range=${1:lower}-${2:upper} step ${3:int}\",\n      \"x unit=\",\n      \"y unit=\",\n      \"samples per line=${1:number}\",\n      \"baseline skip=\",\n      \"canvas style/.style={${1:TikZ options}}\",\n      \"canvas height=\",\n      \"trace A style/.style={${1:TikZ options}}\",\n      \"trace C style/.style={${1:TikZ options}}\",\n      \"trace G style/.style={${1:TikZ options}}\",\n      \"trace T style/.style={${1:TikZ options}}\",\n      \"trace style={${1:TikZ options}}\",\n      \"traces drawn=\",\n      \"tick A style/.style={${1:TikZ options}}\",\n      \"tick C style/.style={${1:TikZ options}}\",\n      \"tick G style/.style={${1:TikZ options}}\",\n      \"tick T style/.style={${1:TikZ options}}\",\n      \"tick style={${1:TikZ options}}\",\n      \"tick length=\",\n      \"ticks drawn=\",\n      \"base label A text=${1:text}\",\n      \"base label C text=${1:text}\",\n      \"base label G text=${1:text}\",\n      \"base label T text=${1:text}\",\n      \"base label A style/.style={${1:TikZ options}}\",\n      \"base label C style/.style={${1:TikZ options}}\",\n      \"base label G style/.style={${1:TikZ options}}\",\n      \"base label T style/.style={${1:TikZ options}}\",\n      \"base label style={${1:TikZ options}}\",\n      \"base labels drawn=\",\n      \"show base numbers\",\n      \"base number style/.style={${1:TikZ options}}\",\n      \"base number range=${1:lower}-${2:upper}\",\n      \"base number range=${1:lower}-${2:upper} step ${3:int}\",\n      \"probability distance=\",\n      \"probabilities drawn=\",\n      \"probability style function=${1:Lua function}\",\n      \"bases drawn=\"\n    ],\n    \"\\\\begin{pmbdomains}#c,\\\\addfeature#c,\\\\pgfmolbioset#c\": [\n      \"name=${1:text}\",\n      \"show name\",\n      \"description=${1:text}\",\n      \"x unit=\",\n      \"y unit=\",\n      \"residues per line=${1:number}\",\n      \"baseline skip=${1:factor}\",\n      \"residue numbering={${1:numbering scheme}}\",\n      \"residue range=${1:lower}-${2:upper}\",\n      \"enlarge left=\",\n      \"enlarge right=\",\n      \"enlarge top=\",\n      \"enlarge bottom=\",\n      \"style={${1:style list}}\",\n      \"domain font=${1:font commands}\",\n      \"level=${1:number}\",\n      \"disulfide base distance=${1:number}\",\n      \"disulfide level distance=${1:number}\",\n      \"range font=${1:font commands}\",\n      \"show ruler\",\n      \"ruler range={${1:ruler range list}}\",\n      \"default ruler step size=${1:number}\",\n      \"ruler distance=${1:factor}\",\n      \"sequence=${1:sequence}\",\n      \"magnified sequence font=${1:font commands}\",\n      \"show secondary structure\",\n      \"secondary structure distance=${1:factor}\",\n      \"sequence length=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgfmolbio#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgfmorepages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfpagesuselayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesuselayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagesuselayout\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pgfpagesuselayout{${1:layout}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfpagesuselayout\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfpagesdeclarelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpagesdeclarelayout{${1:layout}}{${2:before actions}}{${3:after actions}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagesphysicalpageoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesphysicalpageoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfpagesphysicalpageoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfpageslogicalpageoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpageslogicalpageoptions{${1:logical page number}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfpageslogicalpageoptions,\\\\pgfpagessetdefaults\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfpagesshipoutlogicalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesshipoutlogicalpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagescurrentpagewillbelogicalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagescurrentpagewillbelogicalpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshipoutphysicalpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfhookintoshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetupphysicalpagesizes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfphysicalpageempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalpageemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalpageemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptioncornerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionfirstshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionfirstcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionsecondcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptiontwoheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptiontwowidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfpagesship\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpagesshiptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpagesshipfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfactualpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionbordercode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmorepagesloadextralayouts\"\n    },\n    {\n      \"name\": \"pgfpagesphysicalpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpagesphysicalpage{${1:number}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagessetdefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagessetdefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfpageslogicalpageoptions,\\\\pgfpagessetdefaults\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfpagesuselayout\": [\n      \"physical paper height=\",\n      \"physical paper width=\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"border shrink=\",\n      \"odd numbered pages right\",\n      \"corner width=\",\n      \"second right\",\n      \"second left\",\n      \"second bottom\",\n      \"second top\",\n      \"border code=${1:code}\"\n    ],\n    \"\\\\pgfpagesphysicalpageoptions\": [\n      \"logical pages=${1:integer}\",\n      \"first logical shipout=${1:first}\",\n      \"last logical shipout=${1:last}\",\n      \"current logical shipout=${1:current}\",\n      \"physical height=\",\n      \"physical width=\"\n    ],\n    \"\\\\pgfpageslogicalpageoptions,\\\\pgfpagessetdefaults\": [\n      \"center=${1:pgf point}\",\n      \"resized width=\",\n      \"resized height=\",\n      \"original width=\",\n      \"original height=\",\n      \"scale=${1:factor}\",\n      \"xscale=${1:factor}\",\n      \"yscale=${1:factor}\",\n      \"rotation=${1:degrees}\",\n      \"copy from=${1:logical page number}\",\n      \"border shrink=\",\n      \"border code=${1:code}\",\n      \"corner width=\",\n      \"skip code=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfopts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProcessPgfOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessPgfOptions{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessPgfOptions*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessPgfOptions*{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessPgfPackageOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessPgfPackageOptions{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessPgfPackageOptions*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProcessPgfPackageOptions*{${1:path}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfornament-han.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"pgfornament\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfornamenthan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfornamenthan{${1:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfornamenthan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfornamenthan[${2:options%keyvals}]{${1:ornament number}}\",\n        \"keys\": [\n          \"\\\\pgfornamenthan#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfOrnamentsHanObject\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfornamenthan#c\": [\n      \"scale=${1:factor}\",\n      \"width=\",\n      \"height=\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"ydelta=\",\n      \"symmetry=${1|v,h,c,none|}\",\n      \"anchor=${1:anchor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfornament.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newpgfornamentfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpgfornamentfamily{${1:family%keyvals}}\",\n        \"keys\": [\n          \"\\\\newpgfornamentfamily,\\\\begin{newfamily}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfornament\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfornament{${1:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfornament\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfornament[${2:options%keyvals}]{${1:ornament number}}\",\n        \"keys\": [\n          \"\\\\pgfornament#c,\\\\pgfornamentline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfornamentline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfornamentline{${1:point1}}{${2:point2}}{${3:number}}{${4:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfornamentline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pgfornamentline[${5:options%keyvals}]{${1:point1}}{${2:point2}}{${3:number}}{${4:ornament number}}\",\n        \"keys\": [\n          \"\\\\pgfornament#c,\\\\pgfornamentline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfornamenthline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfornamenthline{${1:anchor1}}{${2:anchor2}}{${3:direction}}{${4:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfornamentvline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfornamentvline{${1:anchor1}}{${2:anchor2}}{${3:direction}}{${4:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"getornamentlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"getornamentlength{${1:anchor1}}{${2:anchor2}}{${3:direction}}{${4:ornament number}}\"\n      }\n    },\n    {\n      \"name\": \"resetpgfornamentstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"callornament\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"callornament{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfornamentscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentopacity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfornamentydelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ornamenttopos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ornamenttoanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ornamenttosymmetry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ornamentlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfOrnamentsObject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OrnamentsFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SavedOrnamentsFamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"newfamily\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:family%keyvals}]\",\n        \"keys\": [\n          \"\\\\newpgfornamentfamily,\\\\begin{newfamily}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pgfornament#c\": [\n      \"object=${1|vectorian,pgfhan|}\"\n    ],\n    \"\\\\newpgfornamentfamily,\\\\begin{newfamily}\": [\n      \"pgfhan\",\n      \"vectorian\"\n    ],\n    \"\\\\pgfornament#c,\\\\pgfornamentline#c\": [\n      \"scale=${1:factor}\",\n      \"width=\",\n      \"height=\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"ydelta=\",\n      \"symmetry=${1|v,h,c,none|}\",\n      \"anchor=${1:anchor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgfornament#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgfpages-rl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"pgfpages\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfpagespoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpagespoint{${1:width}}{${2:height}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfpagesuselayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesuselayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagesuselayout\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"pgfpagesuselayout{${1:layout}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfpagesuselayout\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfpagesdeclarelayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfpagesdeclarelayout{${1:layout}}{${2:before actions}}{${3:after actions}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagesphysicalpageoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesphysicalpageoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfpagesphysicalpageoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfpageslogicalpageoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpageslogicalpageoptions{${1:logical page number}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfpageslogicalpageoptions\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfpagesshipoutlogicalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagesshipoutlogicalpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpagescurrentpagewillbelogicalpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpagescurrentpagewillbelogicalpage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshipoutphysicalpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfhookintoshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetupphysicalpagesizes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfphysicalpageempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalpageemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalpageemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfphysicalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionborder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptioncornerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionfirstshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionfirstcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptionsecondcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptiontwoheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpageoptiontwowidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfpagesuselayout\": [\n      \"physical paper height=\",\n      \"physical paper width=\",\n      \"a0paper\",\n      \"a1paper\",\n      \"a2paper\",\n      \"a3paper\",\n      \"a4paper\",\n      \"a5paper\",\n      \"a6paper\",\n      \"letterpaper\",\n      \"legalpaper\",\n      \"executivepaper\",\n      \"landscape\",\n      \"border shrink=\",\n      \"odd numbered pages right\",\n      \"corner width=\",\n      \"second right\",\n      \"second left\",\n      \"second bottom\",\n      \"second top\"\n    ],\n    \"\\\\pgfpagesphysicalpageoptions\": [\n      \"logical pages=${1:integer}\",\n      \"first logical shipout=${1:first}\",\n      \"last logical shipout=${1:last}\",\n      \"current logical shipout=${1:current}\",\n      \"physical height=\",\n      \"physical width=\"\n    ],\n    \"\\\\pgfpageslogicalpageoptions\": [\n      \"center=${1:pgf point}\",\n      \"resized width=\",\n      \"resized height=\",\n      \"original width=\",\n      \"original height=\",\n      \"scale=${1:factor}\",\n      \"xscale=${1:factor}\",\n      \"yscale=${1:factor}\",\n      \"rotation=${1:degrees}\",\n      \"copy from=${1:logical page number}\",\n      \"border shrink=\",\n      \"border code=${1:code}\",\n      \"corner width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfparser.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfparserparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfparserparse{${1:parser name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfparserdef{${1:parser name}}{${2:state}}{${3:symbol meaning}}{${4:action}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"pgfparserdef{${1:parser name}}{${2:state}}{${3:symbol meaning}}[${5:args}]{${4:action}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfparserlet{${1:parser1}}{${2:state1}}{${3:meaning1}}{${4:meaning2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[][]{}\",\n        \"snippet\": \"pgfparserlet{${1:parser1}}{${2:state1}}{${3:meaning1}}[${5:opt1}][${6:opt2}]{${4:meaning2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserdefunknown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfparserdefunknown{${1:parser name}}{${2:state}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserdeffinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfparserdeffinal{${1:parser name}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserswitch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfparserswitch{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserifmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfparserifmark{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparserreinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfparserstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfparsertoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfparserletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfparserset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfparserset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfparserset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfparserset#c\": [\n      \"silent\",\n      \"status\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nextlist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslegendfromname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslegendfromname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolorbarfromname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorbarfromname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversiondatetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrevisiondatetime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsversiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrevisiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotsthreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfnodepartimagebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsifaxisthreedim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifaxisthreedim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifcurplotthreedim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifcurplotthreedim{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifcyclelistexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifcyclelistexists{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscreateplotcyclelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscreateplotcyclelist{${1:name}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmarklistfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetarange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformedrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsextra{${1:path code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlogtologten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathlogtologten{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdefineaxistype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdefineaxistype{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetaxistype\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetaxistype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetlayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetlayers{${1:layer config name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsonlayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsonlayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotsonlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsgetlayerforstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetlayerforstyle{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointorigininternal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointupperrightcorner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointaxisorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionbyanchor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointdescriptionbyanchor{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointbblowerleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointbbupperright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointbbdiagonal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspathaxisoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointnormalizedaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointnormalizedaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointnormalizedaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointnormalizedaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisdirectionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointaxisdirectionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointaxisdirectionxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointaxisdirectionxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointdescriptionxy{${1:x-frac}}{${2:y-frac}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointdescriptionxy{${1:x-frac}}{${2:y-frac}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointrelaxisxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointrelaxisxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointrelaxisxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointrelaxisxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatex{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatey{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformcoordinatez\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformcoordinatez{${1:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectionx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectionx{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectiony\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectiony{${1:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformdirectionz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformdirectionz{${1:z}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotscolorbarCMYKworkaround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbarCMYKworkaroundtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbarCMYKworkaroundfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbardrawstandalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorbardrawstandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotscolorbardrawstandalone[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifnodeexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifnodeexists{${1:node}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsinterruptdatabb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfplotsinterruptdatabb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"logten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reciproclogten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultticklabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axisdefaultticklabellog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendimage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendimage{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendentry{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addlegendentry[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentryexpanded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlegendentryexpanded{${1:TeX text}}\"\n      }\n    },\n    {\n      \"name\": \"addlegendentryexpanded\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addlegendentryexpanded[${2:options}]{${1:TeX text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetlateoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssetlateoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifissurveyphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifissurveyphase{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifisvisualizationphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifisvisualizationphase{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifinaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinaxis{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"numplots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numplotsofactualtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closedcycle\"\n    },\n    {\n      \"name\": \"pgfplotsaxisplotphase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsreplacepdfmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsreplacepdfmark{${1:picture id1}}{${2:picture id2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsloglevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsglobalretval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsthrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsthrow{${1:exception}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotswarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotswarning{${1:exception}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotstry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrethrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsexceptionmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsiffileexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsiffileexists{${1:file}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"usepgfplotslibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfplotslibrary{${1:library list%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsiflibraryloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsiflibraryloaded{${1:library%keyvals}}{${2:true}}{${3:false}}\",\n        \"keys\": [\n          \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsqaftergroupeach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsqaftergroupeach{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaftergroupcollectinto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaftergroupcollectinto{${1:cmd}}{${2:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscommandtostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscommandtostring{${1:cmd1}}{${2:cmd2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathlessthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathlessthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathfloatmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathfloatmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathfloatmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathfloatmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsscalarproductofvectors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsscalarproductofvectors{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxyz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointxyz{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachentryinCSV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsforeachentryinCSV{${1:macro%cmd}}{${2:list}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachentryinCSVisterminated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsforeachentryinCSVisterminated{${1:macro%cmd}}{${2:list}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachtodomain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsforeachtodomain{${1:domain}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsinvokeforeach\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsinvokeforeach{${1:list}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicformatresultwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsforeachlogarithmicformatresultwith{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicungrouped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotsforeachlogarithmicungrouped[${1:samples}]\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsforeachlogarithmicmathid\"\n    },\n    {\n      \"name\": \"pgfplotsmathmodint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathmodint{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsloop{${1:code}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsutilstrcmp{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathcarttopol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathcarttopol{${1:x}}{${2:y}}{${3:angle macro%cmd}}{${4:radius macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathcarttopolbasic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathcarttopolbasic{${1:x}}{${2:y}}{${3:angle macro%cmd}}{${4:radius macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathpoltocart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathpoltocart{${1:angle}}{${2:radius}}{${3:x macro%cmd}}{${4:y macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathpoltocartbasic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathpoltocartbasic{${1:angle}}{${2:radius}}{${3:x macro%cmd}}{${4:y macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathdeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathdeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathredeclarepseudoconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathredeclarepseudoconstant{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathdefinemacrolnbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathdefinemacrolnbase{${1:macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifstartswith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilifstartswith{${1:pattern}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilstrreplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilstrreplace{${1:token}}{${2:replacement}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifstringequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilifstringequal{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilifcontainsmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilifcontainsmacro{${1:tokens}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathparsex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathparsex{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilsortthree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsutilsortthree{${1:macro1}}{${2:macro2}}{${3:macro3}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsutilsortfour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsutilsortfour{${1:macro1}}{${2:macro2}}{${3:macro3}}{${4:macro4}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectortostring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectortostring{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorfromstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorfromstring{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorsubtract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorsubtract{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectoradd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectoradd{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorcompwise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorcompwise{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:operation}}{${4:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorsum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorsum{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscalarproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscalarproduct{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectortocomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectortocomponents{${1:x,y,z}}{${2:string}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorcrossprod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorcrossprod{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscaleindividually\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscaleindividually{${1:x1,y1,z1}}{${2:x2,y2,z2}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointfromcsvvector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointfromcsvvector{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectorlength{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectorscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmathvectorscale{${1:x,y,z}}{${2:scale}}{${3:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmathvectordatascaletrafoinverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsmathvectordatascaletrafoinverse{${1:x,y,z}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotslistempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslistnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslistnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslistnew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotslistnew{${1:macro%cmd}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsprependlistXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsprependlistXnewempty{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsprependlistXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsprependlistXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXXclear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXclear{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXpushback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXpushback{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXedefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXedefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXxdefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXxdefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXlet{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalclear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalclear{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalpushback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalpushback{${1:item}}{${2:list macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobaledefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobaledefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalxdefcontenttomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalxdefcontenttomacro{${1:list}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXgloballet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXgloballet{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXXglobalexecute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXXglobalexecute{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgloballet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsapplistXglobalnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXglobalnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsapplistXglobalflushbuffers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsapplistXglobalflushbuffers{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfplotsarrayempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarrayemptytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarrayemptyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarraynewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraynewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraynewemptyglobal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraynewemptyglobal{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayresize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayresize{${1:array macro}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayresizeglobal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayresizeglobal{${1:array macro}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsarrayifdefined{${1:array macro}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraynew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarraynew{${1:macro%cmd}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayfrompgfplotslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsarrayfrompgfplotslist{${1:array macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraysizeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraysizeof{${1:array macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraytotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraytotext{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraycheckempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraycheckempty{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayforeachindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsarraysort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarraysort{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarrayinsertionsort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsarrayinsertionsort{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsarraybinarysearch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotsarraybinarysearch{${1:array}}{${2:value}}{${3:start index}}{${4:end index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixnewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmatrixnewempty{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixresize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatrixresize{${1:matrix}}{${2:rows}}{${3:cols}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatrixifdefined{${1:matrix}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachrowindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachcolindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixforeachrowend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmatrixtotext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmatrixtotext{${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatrixLUdecompwarnsingular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableread\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableread{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableifiscreateonuse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotstableifiscreateonuse{${1:column}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegenerateuniquecolnamefor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegenerateuniquecolnamefor{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablegetname{${1:table}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablenameof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablenameof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetscanlinelength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablegetscanlinelength{${1:table}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablescanlinelengthof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablescanlinelengthof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadpreparecatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablecollectoneargwithpreparecatcodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablecollectoneargwithpreparecatcodes{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecollectoneargwithpreparecatcodesnorestore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablecollectoneargwithpreparecatcodesnorestore{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableinstallignorechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableuninstallignorechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablelineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablereadgetcolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetcolindex{${1:index}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetcolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetcolname{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetptrtocolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetptrtocolname{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadgetptrtocolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadgetptrtocolindex{${1:index}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadevalptr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablereadevalptr{${1:pointer}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofptr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofptr{${1:pointer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofcolname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofcolname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablereadvalueofcolindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablereadvalueofcolindex{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"getthisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthisrow{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"thisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrow{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"thisrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrowno{${1:col index}}\"\n      }\n    },\n    {\n      \"name\": \"lineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getthisrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthisrowno{${1:name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypeset{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypeset[${2:options%keyvals}]{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypesetfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypesetfile[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol{${1:name}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol[${3:options%keyvals}]{${1:name}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablegetrowsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetrowsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetcolsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetcolsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdequenewempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdequenewempty{${1:deque name}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdequecheckempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdequecheckempty{${1:deque}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscharno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscharno{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinarytoluabinary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinarytoluabinary{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetchar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinarysetbytes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinarysetbytes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodeunsigned\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodeunsigned{${1:unsigned integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodesignedmaplinearly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodesignedmaplinearly{${1:signed integer}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsbinaryencodedimenmaplinearly\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsbinaryencodedimenmaplinearly{${1:TeX dimen}}\"\n      }\n    },\n    {\n      \"name\": \"beginpgfplotsverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfplotsverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfprocesscoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotslibrarysurfprocesscoordinate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfusepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfdraw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfstreamcoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotslibrarysurfstreamcoord{${1:pgf point}}{${2:color coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfusepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotslibrarysurfdrawinpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflibrarysurfshadingifactive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgflibrarysurfshadingifactive{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscreatecolormap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscreatecolormap{${1:name}}{${2:color spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapsetadditionalintervalwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapsetadditionalintervalwidth{${1:colormap}}{${2:interval width}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifisuniform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifisuniform{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptodatafile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormaptodatafile{${1:colormap}}{${2:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptodatafile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormaptodatafile[${3:options%keyvals}]{${1:colormap}}{${2:data file%file}}\",\n        \"keys\": [\n          \"\\\\pgfplotscolormaptodatafile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetmeshwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetmeshwidth{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializecomponentstomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializecomponentstomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializeXtomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializeXtomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapserializetomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapserializetomacro{${1:colormap}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetpositions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotscolormapgetpositions[${2:start:end}]{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormappdfmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapsizeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapsizeof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapgetcolor{${1:colormap}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaplastindexof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormaplastindexof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifrequiresextrainterval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifrequiresextrainterval{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifdrawslastcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifdrawslastcolor{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptopdffunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormaptopdffunction{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapifdefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapifdefined{${1:colormap}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapassertexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapassertexists{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptoshadingspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormaptoshadingspec{${1:colormap}}{${2:pgf size}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaptoshadingspectorgb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapreversedtoshadingspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolormapreversedtoshadingspec{${1:colormap}}{${2:pgf size}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormaprange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolorspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetcolorspace{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetcolorcomps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapgetcolorcomps{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapcolorspaceof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapcolorspaceof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapcolorcompsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapcolorcompsof{${1:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapfind[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapfind[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfindpiecewiseconst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapfindpiecewiseconst[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapfindpiecewiseconst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapfindpiecewiseconst[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapgetindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolormapgetindex{${1:index}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotscolormapaccess[${3:start:end}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolormapaccess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"pgfplotscolormapaccess[${3:start:end}][${4:slope}]{${1:number}}{${2:colormap}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmetatransformedrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolormapdefinemappedcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolormapdefinemappedcolor{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotscolornormalizesequence[${1:color seq options}]\"\n      }\n    },\n    {\n      \"name\": \"endpgfplotscolornormalizesequence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencenextbycomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscolornormalizesequencenextbycomponents{${1:color space}}{${2:components}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsretvalb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorspacegetcomponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorspacegetcomponents{${1:color space}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencegetnumcomponents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencenext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolornormalizesequencenext{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequencezero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscolorzero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscolorzero{${1:num of components}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscolornormalizesequenceaddweighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscolornormalizesequenceaddweighted{${1:color1}}{${2:scale factor}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoloraddweighted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfplotscoloraddweighted{${1:num of components}}{${2:color1}}{${3:scale factor}}{${4:color2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointgetzerolevelcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetnormalizedzerolevelcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotssurveyphaseinputclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsresetplothandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerserializepointto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerserializepointto{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerdeserializepointfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerdeserializepointfrom{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerpointtokeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerpointtokeys{${1:key prefix}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerserializestateto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerserializestateto{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlervisualizejump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveypointattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsplothandlersurveypointattime{${1:fraction}}{${2:point1}}{${3:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveydifflen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsplothandlersurveydifflen{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlertransformslopedattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsplothandlertransformslopedattime{${1:fraction}}{${2:point1}}{${3:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerifcurrentpointcanbefirstlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinatethreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinatethreedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinatetwodim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinatetwodim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsaxisupdatelimitsforcoordinate{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerquiver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerquivererror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistogram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistadvancebin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistadvancebin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistgetintervalstartfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistgetintervalstartfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistgetbinfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistgetbinfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlerhistsettol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlerhistsettol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourprepared\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveybeforesetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaftersetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourexternal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscontourpopulateallkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmetamin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmetamax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlertofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlertofile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlertofilegeneratedscanlinemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlercontourfilled\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscontourfilledcolormap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveystart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveypoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaftersetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlernotifyscanlinecomplete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerLUAfactory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerLUAvisualizerfactory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspreparemeshkeydefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsautocompletemeshkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexstruct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexcoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchvertexaccumstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspatchclass{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspatchclassname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclasserror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspatchclasserror{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclarepatchclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarepatchclass{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspatchready\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsrefinedpatchready\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclassx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspatchclassy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlermeshusepathfillstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simplecoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"simplecoordinate(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetaxesfromazel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotssetaxesfromazel{${1:azimuth}}{${2:elevation}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetnormalforcurrentview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscoordmathnotifydatascalesetfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathnotifydatascalesetfor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointdescriptionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointdescriptionxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsqpointdescriptionxy{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmaxminmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointminmaxmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointminminmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointxaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointxaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointyaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointyaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointzaxis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointzaxislength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunitx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitxlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitylength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitxinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunityinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointunitz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitzlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsunitzinvlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointticklabelcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointticklabelcs{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointticklabelcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotspointticklabelcs[${3:default shift}]{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointticklabelnoshiftcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointticklabelnoshiftcs{${1:axis}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsconvertunittocoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsconvertunittocoordinate{${1:axis}}{${2:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointxyzabsolutesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointxyzabsolutesize{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceab{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabwithbshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabwithbshift{${1:a}}{${2:b}}{${3:shift}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespecunordered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfacespecsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsetx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsetx{${1:x}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsety{${1:y}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabsetupforsetz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabsetupforsetz{${1:z}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabtolinespec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabtolinespec{${1:value}}{${2:surface}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabgetcontainedaxisline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabgetcontainedaxisline{${1:value}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifaxissurfaceisforeground\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifaxissurfaceisforeground{${1:surface}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifaxislineisonconvexhull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifaxislineisonconvexhull{${1:surface}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointonorientedsurfaceabmatchaxisline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointonorientedsurfaceabmatchaxisline{${1:surface}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsmatchcubeparts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsmatchcubeparts{${1:cube part}}{${2:surface}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxis{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxisrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxisrel{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofaxistransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofaxistransformed{${1:axis}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxis{${1:axis}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxissetv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxissetv{${1:axis}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofaxisgetv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofaxisgetv{${1:axis}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformtoaxisdirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdeclareborderanchorforaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdeclareborderanchorforaxis{${1:direction}}{${2:axis}}{${3:anchor name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointviewdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdeclarecoordmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarecoordmath{${1:class name}}{${2:method}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotscoordmathparsemacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotscoordmathparsemacro{${1:coord math choice}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotscoordmath{${1:axis}}{${2:method}}{${3:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathclassfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathclassfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotscoordmathnotifydatascalesetfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotscoordmathnotifydatascalesetfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetcoordmathfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotssetcoordmathfor{${1:label}}{${2:class name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsgetcoordmathfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsgetcoordmathfor{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotssetpointmetainput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotssetpointmetainput{${1:input method}}{${2:arguments}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointmetainputhandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisifhaspointmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisifhaspointmeta{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifpointmetaisbounded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsifpointmetaisbounded{${1:point meta data}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisifcontainspoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisifcontainspoint{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclarepointmetasource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclarepointmetasource{${1:name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfplotsdeclarepointmetasource\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthinitzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsdetermineemptylinehandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinedisablechanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinecomplete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthincrease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthcleanup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlinelengthinitzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsscanlineendofinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlerappendjumpmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisfilteredcoordsaway\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplothasjumps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplothasunboundedpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotsaxisparsecoordinateok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinateoktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisparsecoordinateokfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisplotphase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsifinplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinplot{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxispreparecoordinate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisdatapointsurveyed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxissurveysetpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisupdatelimitsforpointmeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsaxisupdatelimitsforpointmeta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxistransformfromdatacs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxistransformcs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxistransformcs{${1:actual coordsys}}{${2:desired coordsys}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdefinecstransform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsdefinecstransform{${1:source coordsys}}{${2:target coordsys}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisserializedatapointtostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisserializedatapoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisdeserializedatapointfrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsaxisdeserializedatapointfrom{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformpointmeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformpointmetaifany\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotssurveyphaseaddoptionsbeforesurveybegins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotssurveyphaseaddoptionsbeforesurveybegins{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlersurveyaddoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsplothandlersurveyaddoptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsifinaddplottablestruct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsifinaddplottablestruct{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"coordindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasegetpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointgetcoordinates{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointgetnormalizedcoordinates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointgetcoordinatesfromnormalized\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformcoordinate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsaxisvisphasetransformcoordinate{${1:x-macro}}{${2:y-macro}}{${3:z-macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasepreparedatapoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsaxisvisphasetransformcoordinateentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsaxisvisphasetransformcoordinateentry{${1:x, y, or z}}{${2:input}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstransformplotattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstransformplotattime{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattimeclearcache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotspointplotattimegetfromcache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattimegetfromcache{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattimeaddtocache\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattimeaddtocache{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointplotattime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointplotattime{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphicspointmappoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pgfplotsplothandlergraphicspointmappoint(${1:x},${2:y},${3:z})(${4:a},${5:b})\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsplothandlergraphicspointmapcomputerequiredview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsmathvectorviewdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsmathvectorviewdepth{${1:x,y,z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfshell{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"pgfshell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfshell[${2:filename prefix}]{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"ticknum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nexttick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotsvalueoflargesttickdimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsvalueoflargesttickdimen{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxis{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxisrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxisrel{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsqpointoutsideofticklabelaxistransformed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfplotsqpointoutsideofticklabelaxistransformed{${1:x, y, or z}}{${2:coord}}{${3:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsticklabelaxisspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsticklabelaxisspec{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotspointouternormalvectorofticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotspointouternormalvectorofticklabelaxis{${1:x, y, or z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotsdeclareborderanchorforticklabelaxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotsdeclareborderanchorforticklabelaxis{${1:axis}}{${2:anchor name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"axis\"\n    },\n    {\n      \"name\": \"axis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"loglogaxis\"\n    },\n    {\n      \"name\": \"loglogaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semilogxaxis\"\n    },\n    {\n      \"name\": \"semilogxaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"semilogyaxis\"\n    },\n    {\n      \"name\": \"semilogyaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotsinterruptdatabb\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"compat=${1|1.18,1.17,1.16,1.15,1.14,1.13,1.12,1.11,1.10,1.9,1.8,1.7,1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default|}\",\n      \"empty line=${1|auto,none,scanline,jump|}\",\n      \"domain=${1:x1:x2}\",\n      \"y domain=${1:y1:y2}\",\n      \"domain y=${1:y1:y2}\",\n      \"samples=${1:number}\",\n      \"samples y=${1:number}\",\n      \"samples at={${1:coord list}}\",\n      \"variable=${1:variable name}\",\n      \"variable y=${1:variable name}\",\n      \"trig format plots=${1|default,deg,rad|}\",\n      \"trig format=${1|deg,rad|}\",\n      \"translate gnuplot\",\n      \"parametric\",\n      \"id=${1:id}\",\n      \"prefix=${1:filename prefix}\",\n      \"raw gnuplot\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:tension}\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"xbar\",\n      \"bar shift auto\",\n      \"bar shift auto=${1:shift for multiple plots}\",\n      \"ybar\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar direction=${1|auto,x,y|}\",\n      \"ybar interval\",\n      \"ybar interval=${1:relative width}\",\n      \"xbar interval\",\n      \"xbar interval=${1:relative width}\",\n      \"xcomb\",\n      \"ycomb\",\n      \"quiver={${1:quiver options}}\",\n      \"stack plots=${1|x,y,false|}\",\n      \"ybar stacked\",\n      \"ybar stacked=${1|plus,minus|}\",\n      \"xbar stacked\",\n      \"xbar stacked=${1|plus,minus|}\",\n      \"stack dir=${1|plus,minus|}\",\n      \"reverse stacked plots\",\n      \"stacked ignores zero\",\n      \"xbar interval stacked\",\n      \"xbar interval stacked=${1|plus,minus|}\",\n      \"ybar interval stacked\",\n      \"ybar interval stacked=${1|plus,minus|}\",\n      \"stack negative=${1|on previous,separate|}\",\n      \"area style\",\n      \"only marks\",\n      \"scatter\",\n      \"scatter src=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"scatter/use mapped color={${1:options for each marker}}\",\n      \"scatter/classes={${1:styles for each class name}}\",\n      \"nodes near coords\",\n      \"nodes near coords={${1:content}}\",\n      \"nodes near coords*\",\n      \"nodes near coords*={${1:content}}\",\n      \"nodes near coords style={${1:options}}\",\n      \"node near coords style={${1:options}}\",\n      \"node near coord style={${1:options}}\",\n      \"nodes near coords align=${1|auto,horizontal,vertical|}\",\n      \"coordinate style/.condition={${1:expression}}{${2:options}}\",\n      \"coordinate style/.from={${1:options}}\",\n      \"coordinate style/.clear\",\n      \"scatter/position=${1|absolute,relative|}\",\n      \"scatter/@pre marker code/.code={${1:code}}\",\n      \"scatter/@post marker code/.code={${1:code}}\",\n      \"mesh\",\n      \"unbounded coords=${1|discard,jump|}\",\n      \"mesh/rows=${1:integer}\",\n      \"mesh/cols=${1:integer}\",\n      \"mesh/scanline verbose\",\n      \"mesh/ordering=${1|x varies,y varies,rowwise,colwise|}\",\n      \"mesh/check=${1|false,warning,error|}\",\n      \"z buffer=${1|default,none,auto,sort,reverse x seq,reverse y seq,reverse xy seq|}\",\n      \"surf\",\n      \"shader=${1|flat,interp,faceted,flat corner,flat mean,faceted interp|}\",\n      \"faceted color=\",\n      \"mesh/interior colormap={${1:map name}}{${2:colormap spec}}\",\n      \"mesh/interior colormap name=${1:map name}\",\n      \"mesh/interior colormap thresh=${1:number}\",\n      \"surf shading/precision=${1|pdf,postscript,ps|}\",\n      \"mesh/color input=${1|colormap,explicit,explicit mathparse|}\",\n      \"mesh/colorspace explicit color input=${1|rgb,rgb255,cmy,cmyk,cmyk255,gray,wave,hsb,Hsb,HTML|}\",\n      \"mesh/colorspace explicit color output=${1|rgb,cmyk,gray|}\",\n      \"contour lua={${1:contour options}}\",\n      \"contour gnuplot={${1:contour options}}\",\n      \"contour prepared={${1:contour options}}\",\n      \"contour prepared format=${1|standard,matlab|}\",\n      \"contour external={${1:contour options}}\",\n      \"contour filled={${1:contour options}}\",\n      \"matrix plot\",\n      \"matrix plot*\",\n      \"imagesc\",\n      \"imagesc*\",\n      \"patch\",\n      \"patch table={${1:file or inline table}}\",\n      \"patch table with point meta={${1:file or inline table}}\",\n      \"patch table with individual point meta={${1:file or inline table}}\",\n      \"mesh input=${1|lattice,patches,image|}\",\n      \"patch type=${1|default,rectangle,triangle,line|}\",\n      \"mark size=\",\n      \"mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"cube/size x=\",\n      \"cube/size y=\",\n      \"cube/size z=\",\n      \"no markers\",\n      \"mark repeat=${1:integer}\",\n      \"mark phase=${1:integer}\",\n      \"mark indices={${1:index list}}\",\n      \"mark color=\",\n      \"mark options={${1:options}}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dashdotted\",\n      \"densely dashdotted\",\n      \"loosely dashdotted\",\n      \"dashdotdotted\",\n      \"densely dashdotdotted\",\n      \"loosely dashdotdotted\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"font={${1:font commands}}\",\n      \"line width=\",\n      \"thin\",\n      \"ultra thin\",\n      \"very thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"%color\",\n      \"color=\",\n      \"draw=\",\n      \"fill=\",\n      \"colormap name=${1:map name}\",\n      \"colormap={${1:map name}}{${2:colormap spec}}\",\n      \"colormap default colorspace=${1|auto,gray,rgb,cmyk|}\",\n      \"color of colormap=${1:value}\",\n      \"color of colormap=${1:value} of ${2:map name}\",\n      \"index of colormap=${1:index}\",\n      \"index of colormap=${1:index} of ${2:map name}\",\n      \"const color of colormap=${1:value}\",\n      \"const color of colormap=${1:value} of ${2:map name}\",\n      \"cycle list={${1:list}}\",\n      \"cycle list name=${1:name}\",\n      \"mark list fill=\",\n      \"cycle list shift=${1:integer}\",\n      \"cycle multi list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex* list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"point meta=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"set point meta if empty=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"point meta rel=${1|axis wide,per plot|}\",\n      \"point meta min=${1:number}\",\n      \"point meta max=${1:number}\",\n      \"colormap access=${1|map,direct,const,piecewise constant,piecewise const,piecewise linear|}\",\n      \"near ticklabel align=${1|inside,center,outside|}\",\n      \"near ticklabel at={${1:coord}}\",\n      \"sloped like x axis\",\n      \"sloped like y axis\",\n      \"sloped like z axis\",\n      \"sloped like x axis={${1:options}}\",\n      \"sloped like y axis={${1:options}}\",\n      \"sloped like z axis={${1:options}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"zlabel=${1:text}\",\n      \"xlabel shift=\",\n      \"ylabel shift=\",\n      \"zlabel shift=\",\n      \"label shift=\",\n      \"title=${1:text}\",\n      \"extra description/.code={${1:code}}\",\n      \"legend entries={${1:list}}\",\n      \"legend style={${1:options}}\",\n      \"legend pos=${1|south west,south east,north west,north east,outer north east|}\",\n      \"legend cell align=${1|left,right,center|}\",\n      \"legend columns\",\n      \"legend columns=${1:number}\",\n      \"legend plot pos=${1|left,right,none|}\",\n      \"legend image post style={${1:options}}\",\n      \"legend image code/.code={${1:code}}\",\n      \"line legend\",\n      \"empty legend\",\n      \"area legend\",\n      \"xbar legend\",\n      \"ybar legend\",\n      \"zbar legend\",\n      \"xbar interval legend\",\n      \"ybar interval legend\",\n      \"zbar interval legend\",\n      \"mesh legend\",\n      \"reverse legend\",\n      \"legend reversed\",\n      \"transpose legend\",\n      \"legend transposed\",\n      \"invoke before crossref tikzpicture={${1:code}}\",\n      \"invoke after crossref tikzpicture={${1:code}}\",\n      \"legend to name=\",\n      \"axis x line=${1|box,top,middle,center,bottom,none|}\",\n      \"axis x line*=${1|box,top,middle,center,bottom,none|}\",\n      \"axis y line=${1|box,left,middle,center,right,none|}\",\n      \"axis y line*=${1|box,left,middle,center,right,none|}\",\n      \"axis z line=${1|box,left,middle,center,right,none|}\",\n      \"axis z line*=${1|box,left,middle,center,right,none|}\",\n      \"axis lines=${1|box,left,middle,center,right,none|}\",\n      \"axis lines*=${1|box,left,middle,center,right,none|}\",\n      \"axis line style={${1:options}}\",\n      \"inner axis line style={${1:options}}\",\n      \"outer axis line style={${1:options}}\",\n      \"x axis line style={${1:options}}\",\n      \"y axis line style={${1:options}}\",\n      \"z axis line style={${1:options}}\",\n      \"separate axis lines\",\n      \"axis x line shift=\",\n      \"axis y line shift=\",\n      \"axis z line shift=\",\n      \"axis line shift=\",\n      \"axis x discontinuity=${1|crunch,parallel,none|}\",\n      \"axis y discontinuity=${1|crunch,parallel,none|}\",\n      \"axis z discontinuity=${1|crunch,parallel,none|}\",\n      \"xtickmin=${1:coord}\",\n      \"ytickmin=${1:coord}\",\n      \"ztickmin=${1:coord}\",\n      \"xtickmax=${1:coord}\",\n      \"ytickmax=${1:coord}\",\n      \"ztickmax=${1:coord}\",\n      \"hide x axis\",\n      \"hide y axis\",\n      \"hide z axis\",\n      \"hide axis\",\n      \"colorbar\",\n      \"colorbar right\",\n      \"colorbar left\",\n      \"colorbar horizontal\",\n      \"colorbar source\",\n      \"colorbar style={${1:options}}\",\n      \"colorbar/width=\",\n      \"colorbar/draw/.code={${1:code}}\",\n      \"colorbar sampled\",\n      \"colorbar sampled={${1:options}}\",\n      \"colorbar sampled line\",\n      \"colorbar sampled line={${1:options}}\",\n      \"colorbar as legend\",\n      \"colorbar to name=\",\n      \"width=\",\n      \"height=\",\n      \"scale only axis\",\n      \"x=\",\n      \"y=\",\n      \"z=\",\n      \"x={${1:(x,y)}}\",\n      \"y={${1:(x,y)}}\",\n      \"z={${1:(x,y)}}\",\n      \"xmode=${1|normal,linear,log|}\",\n      \"ymode=${1|normal,linear,log|}\",\n      \"zmode=${1|normal,linear,log|}\",\n      \"x dir=${1|normal,reverse|}\",\n      \"y dir=${1|normal,reverse|}\",\n      \"z dir=${1|normal,reverse|}\",\n      \"axis equal\",\n      \"axis equal image\",\n      \"unit vector ratio={${1:rx ry rz}}\",\n      \"unit vector ratio*={${1:rx ry rz}}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"x post scale=${1:scale}\",\n      \"y post scale=${1:scale}\",\n      \"z post scale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"max space between ticks=${1:integer}\",\n      \"try min ticks=${1:integer}\",\n      \"normalsize\",\n      \"small\",\n      \"footnotesize\",\n      \"tiny\",\n      \"scale mode=${1|auto,none,stretch to fill,scale uniformly|}\",\n      \"scale uniformly strategy=${1|auto,units only,change vertical limits,change horizontal limits|}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"view={${1:azimuth}}{${2:elevation}}\",\n      \"view/az=${1:azimuth}\",\n      \"view/h=${1:azimuth}\",\n      \"view/el=${1:elevation}\",\n      \"view/v=${1:elevation}\",\n      \"plot box ratio={${1:xstretch ystretch zstretch}}\",\n      \"3d box=${1|background,complete,complete*|}\",\n      \"error bars/x dir=${1|none,plus,minus,both|}\",\n      \"error bars/y dir=${1|none,plus,minus,both|}\",\n      \"error bars/z dir=${1|none,plus,minus,both|}\",\n      \"error bars/x fixed=${1:value}\",\n      \"error bars/y fixed=${1:value}\",\n      \"error bars/z fixed=${1:value}\",\n      \"error bars/x fixed relative=${1:percent}\",\n      \"error bars/y fixed relative=${1:percent}\",\n      \"error bars/z fixed relative=${1:percent}\",\n      \"error bars/x explicit\",\n      \"error bars/y explicit\",\n      \"error bars/z explicit\",\n      \"error bars/x explicit relative\",\n      \"error bars/y explicit relative\",\n      \"error bars/z explicit relative\",\n      \"error bars/error mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"error bars/error mark options={${1:options}}\",\n      \"error bars/error bar style={${1:options}}\",\n      \"log ticks with fixed point\",\n      \"log plot exponent style={${1:options}}\",\n      \"log identify minor tick positions\",\n      \"log number format code/.code={${1:code}}\",\n      \"log base 10 number format code/.code={${1:code}}\",\n      \"log number format basis/.code={${1:code}}\",\n      \"xmin=${1:coord}\",\n      \"ymin=${1:coord}\",\n      \"zmin=${1:coord}\",\n      \"xmax=${1:coord}\",\n      \"ymax=${1:coord}\",\n      \"zmax=${1:coord}\",\n      \"min=${1:coord}\",\n      \"max=${1:coord}\",\n      \"clip xlimits\",\n      \"clip ylimits\",\n      \"clip zlimits\",\n      \"clip limits\",\n      \"enlarge x limits={${1:enlarge options}}\",\n      \"enlarge y limits={${1:enlarge options}}\",\n      \"enlarge z limits={${1:enlarge options}}\",\n      \"enlargelimits=${1:value}\",\n      \"enlargelimits respects figure size\",\n      \"log origin x=${1|0,infty|}\",\n      \"log origin y=${1|0,infty|}\",\n      \"log origin z=${1|0,infty|}\",\n      \"log origin=${1|0,infty|}\",\n      \"update limits\",\n      \"xtick distance=${1:number}\",\n      \"ytick distance=${1:number}\",\n      \"ztick distance=${1:number}\",\n      \"xtick=${2|data,{${1:coord list}}|}\",\n      \"ytick=${2|data,{${1:coord list}}|}\",\n      \"ztick=${2|data,{${1:coord list}}|}\",\n      \"minor x tick num=${1:number}\",\n      \"minor y tick num=${1:number}\",\n      \"minor z tick num=${1:number}\",\n      \"minor tick num=${1:number}\",\n      \"minor xtick=${2|data,{${1:coord list}}|}\",\n      \"minor ytick=${2|data,{${1:coord list}}|}\",\n      \"minor ztick=${2|data,{${1:coord list}}|}\",\n      \"minor tick=${2|data,{${1:coord list}}|}\",\n      \"extra x ticks={${1:coord list}}\",\n      \"extra y ticks={${1:coord list}}\",\n      \"extra z ticks={${1:coord list}}\",\n      \"xtickten={${1:exponent base 10 list}}\",\n      \"ytickten={${1:exponent base 10 list}}\",\n      \"ztickten={${1:exponent base 10 list}}\",\n      \"xticklabels={${1:label list}}\",\n      \"yticklabels={${1:label list}}\",\n      \"zticklabels={${1:label list}}\",\n      \"xticklabel=${1:command}\",\n      \"yticklabel=${1:command}\",\n      \"zticklabel=${1:command}\",\n      \"xticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"yticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"zticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"extra x tick label={${1:code}}\",\n      \"extra y tick label={${1:code}}\",\n      \"extra z tick label={${1:code}}\",\n      \"extra x tick labels={${1:label list}}\",\n      \"extra y tick labels={${1:label list}}\",\n      \"extra z tick labels={${1:label list}}\",\n      \"x tick label as interval\",\n      \"y tick label as interval\",\n      \"z tick label as interval\",\n      \"xminorticks\",\n      \"yminorticks\",\n      \"zminorticks\",\n      \"xmajorticks\",\n      \"ymajorticks\",\n      \"zmajorticks\",\n      \"ticks=${1|minor,major,both,none|}\",\n      \"xtick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ytick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ztick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"tick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"xticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"yticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"zticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"ticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"xtick align=${1|inside,center,outside|}\",\n      \"ytick align=${1|inside,center,outside|}\",\n      \"ztick align=${1|inside,center,outside|}\",\n      \"tick align=${1|inside,center,outside|}\",\n      \"xticklabel shift=\",\n      \"yticklabel shift=\",\n      \"zticklabel shift=\",\n      \"ticklabel shift=\",\n      \"typeset ticklabels with strut\",\n      \"scaled ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled x ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled y ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled z ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"xtick scale label code/.code={${1:code}}\",\n      \"ytick scale label code/.code={${1:code}}\",\n      \"ztick scale label code/.code={${1:code}}\",\n      \"tick scale label code/.code={${1:code}}\",\n      \"tick scale binop=${1:TeX math operator}\",\n      \"scale ticks below exponent=${1:exponent}\",\n      \"scale ticks above exponent=${1:exponent}\",\n      \"max space between ticks=${1:number}\",\n      \"try min ticks=${1:number}\",\n      \"try min ticks log=${1:number}\",\n      \"tickwidth=\",\n      \"major tick length=\",\n      \"subtickwidth=\",\n      \"minor tick length=\",\n      \"log basis x=${1:number}\",\n      \"log basis y=${1:number}\",\n      \"log basis z=${1:number}\",\n      \"hide obscured x ticks\",\n      \"hide obscured y ticks\",\n      \"hide obscured z ticks\",\n      \"xminorgrids\",\n      \"yminorgrids\",\n      \"zminorgrids\",\n      \"xmajorgrids\",\n      \"ymajorgrids\",\n      \"zmajorgrids\",\n      \"grid=${1|minor,major,both,none|}\",\n      \"allow reversal of rel axis cs\",\n      \"pos=${1:fraction}\",\n      \"sloped\",\n      \"allow upside down\",\n      \"pos segment=${1:segment index}\",\n      \"forget plot style={${1:options}}\",\n      \"label style={${1:options}}\",\n      \"x label style={${1:options}}\",\n      \"y label style={${1:options}}\",\n      \"z label style={${1:options}}\",\n      \"xlabel style={${1:options}}\",\n      \"ylabel style={${1:options}}\",\n      \"zlabel style={${1:options}}\",\n      \"title style={${1:options}}\",\n      \"3d box foreground style={${1:options}}\",\n      \"colorbar sampled line style={${1:options}}\",\n      \"tick style={${1:options}}\",\n      \"minor tick style={${1:options}}\",\n      \"major tick style={${1:options}}\",\n      \"tick label style={${1:options}}\",\n      \"ticklabel style={${1:options}}\",\n      \"x tick label style={${1:options}}\",\n      \"y tick label style={${1:options}}\",\n      \"z tick label style={${1:options}}\",\n      \"xticklabel style={${1:options}}\",\n      \"yticklabel style={${1:options}}\",\n      \"zticklabel style={${1:options}}\",\n      \"x tick scale label style={${1:options}}\",\n      \"y tick scale label style={${1:options}}\",\n      \"z tick scale label style={${1:options}}\",\n      \"xtick style={${1:options}}\",\n      \"ytick style={${1:options}}\",\n      \"ztick style={${1:options}}\",\n      \"minor x tick style={${1:options}}\",\n      \"minor y tick style={${1:options}}\",\n      \"minor z tick style={${1:options}}\",\n      \"major x tick style={${1:options}}\",\n      \"major y tick style={${1:options}}\",\n      \"major z tick style={${1:options}}\",\n      \"extra x tick style={${1:options}}\",\n      \"extra y tick style={${1:options}}\",\n      \"extra z tick style={${1:options}}\",\n      \"extra tick style={${1:options}}\",\n      \"grid style={${1:options}}\",\n      \"minor grid style={${1:options}}\",\n      \"major grid style={${1:options}}\",\n      \"x grid style={${1:options}}\",\n      \"y grid style={${1:options}}\",\n      \"z grid style={${1:options}}\",\n      \"minor x grid style={${1:options}}\",\n      \"minor y grid style={${1:options}}\",\n      \"minor z grid style={${1:options}}\",\n      \"major x grid style={${1:options}}\",\n      \"major y grid style={${1:options}}\",\n      \"major z grid style={${1:options}}\",\n      \"at={${1:(x,y)}}\",\n      \"anchor=${1:name}\",\n      \"clip\",\n      \"clip marker paths\",\n      \"clip bounding box=${1|default tikz,upper bound|}\",\n      \"clip mode=${1|global,individual|}\",\n      \"x coord trafo/.code={${1:code}}\",\n      \"y coord trafo/.code={${1:code}}\",\n      \"z coord trafo/.code={${1:code}}\",\n      \"x coord inv trafo/.code={${1:code}}\",\n      \"y coord inv trafo/.code={${1:code}}\",\n      \"z coord inv trafo/.code={${1:code}}\",\n      \"symbolic x coords={${1:dictionary}}\",\n      \"symbolic y coords={${1:dictionary}}\",\n      \"symbolic z coords={${1:dictionary}}\",\n      \"x filter/.expression={${1:math expr}}\",\n      \"y filter/.expression={${1:math expr}}\",\n      \"z filter/.expression={${1:math expr}}\",\n      \"x filter/.append expression={${1:math expr}}\",\n      \"y filter/.append expression={${1:math expr}}\",\n      \"z filter/.append expression={${1:math expr}}\",\n      \"x filter/.code={${1:code}}\",\n      \"y filter/.code={${1:code}}\",\n      \"z filter/.code={${1:code}}\",\n      \"filter point/.code={${1:code}}\",\n      \"pre filter/.code={${1:code}}\",\n      \"skip coords between index={${1:begin}}{${2:end}}\",\n      \"each nth point=${1:integer}\",\n      \"restrict x to domain=${1:min:max}\",\n      \"restrict y to domain=${1:min:max}\",\n      \"restrict z to domain=${1:min:max}\",\n      \"restrict x to domain*=${1:min:max}\",\n      \"restrict y to domain*=${1:min:max}\",\n      \"restrict z to domain*=${1:min:max}\",\n      \"restrict expr to domain={${1:expr}}{${2:min:max}}\",\n      \"restrict expr to domain*={${1:expr}}{${2:min:max}}\",\n      \"filter discard warning\",\n      \"data cs=${1|cart,polar,polarrad|}\",\n      \"disablelogfilter\",\n      \"disabledatascaling\",\n      \"execute at begin plot={${1:commands}}\",\n      \"execute at end plot={${1:commands}}\",\n      \"execute at begin axis={${1:commands}}\",\n      \"execute at end axis={${1:commands}}\",\n      \"execute at begin plot visualization={${1:commands}}\",\n      \"execute at end plot visualization={${1:commands}}\",\n      \"forget plot\",\n      \"before end axis/.code={${1:code}}\",\n      \"after end axis/.code={${1:code}}\",\n      \"axis on top\",\n      \"visualization depends on=${1:\\\\macro}\",\n      \"visualization depends on=${1:expression} \\\\as ${2:\\\\macro}\",\n      \"visualization depends on=value ${1:content} \\\\as ${2:\\\\macro}\",\n      \"set layers=${1|none,standard,axis on top|}\",\n      \"on layer=${1:layer name}\",\n      \"mark layer=${2|auto,like plot,${1:layer name}|}\",\n      \"cell picture=${1|true,false,if necessary|}\",\n      \"enable tick line clipping\"\n    ],\n    \"\\\\usepgfplotslibrary#c,\\\\pgfplotsiflibraryloaded#c\": [\n      \"clickable\",\n      \"colorbrewer\",\n      \"colormaps\",\n      \"dateplot\",\n      \"decorations.softclip\",\n      \"external\",\n      \"fillbetween\",\n      \"groupplots\",\n      \"patchplots\",\n      \"polar\",\n      \"smithchart\",\n      \"statistics\",\n      \"ternary\",\n      \"units\"\n    ],\n    \"\\\\pgfplotscolormaptodatafile\": [\n      \"output each nth=${1:integer}\",\n      \"output format=${1|csv,native|}\"\n    ],\n    \"\\\\pgfplotsdeclarepointmetasource\": [\n      \"assign=\",\n      \"initfor=\",\n      \"activate=\",\n      \"LUA class=\",\n      \"tostring=\",\n      \"explicitinput=\",\n      \"issymbolic=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibraryclickable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"insdljs\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotsclickablecreate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfplotsclickablecreate[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfplotsclickablecreate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"clickable coords={${1:displayed text}}\",\n      \"clickable coords code={${1:TeX code}}\",\n      \"clickable coords size=${1:max chars}\",\n      \"clickable\",\n      \"annot/js fillColor=${1:JavaScript color}\",\n      \"annot/point format={${1:sprintf-format}}\",\n      \"annot/point format 3d={${1:sprintf-format}}\",\n      \"annot/slope format={${1:sprintf-format}}\",\n      \"annot/printable\",\n      \"annot/font=${1:JavaScript font name}\",\n      \"annot/textSize=${1:size in pts}\",\n      \"annot/popup size generic=${1:number}\",\n      \"annot/popup size snap=${1:number}\",\n      \"annot/popup size=${1:number}\",\n      \"annot/snap dist=${1:size in pts}\",\n      \"annot/richtext\"\n    ],\n    \"\\\\pgfplotsclickablecreate#c\": [\n      \"js fillColor=${1:JavaScript color}\",\n      \"point format={${1:sprintf-format}}\",\n      \"point format 3d={${1:sprintf-format}}\",\n      \"slope format={${1:sprintf-format}}\",\n      \"printable\",\n      \"font=${1:JavaScript font name}\",\n      \"textSize=${1:size in pts}\",\n      \"popup size generic=${1:number}\",\n      \"popup size snap=${1:number}\",\n      \"popup size=${1:number}\",\n      \"snap dist=${1:size in pts}\",\n      \"richtext\",\n      \"width=\",\n      \"height=\",\n      \"jsname=${1:string}\",\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"collected plots\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarycolorbrewer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycolorbrewer\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarydateplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcalendar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"year\"\n    },\n    {\n      \"name\": \"month\"\n    },\n    {\n      \"name\": \"day\"\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"Hour\"\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"Minute\"\n    },\n    {\n      \"name\": \"lowlevel\"\n    },\n    {\n      \"name\": \"Second\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"date coordinates in=${1:coordinate}\",\n      \"date ZERO=${1:year-month-day}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarydecorations.softclip.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryintersections\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfpathcomputesoftclippath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathcomputesoftclippath{${1:input path}}{${2:clip path}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcomputeintersectionsegments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcomputeintersectionsegments{1 or 2}\"\n      }\n    },\n    {\n      \"name\": \"pgfgetintersectionsegmentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgetintersectionsegmentpath{1 or 2}{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcomputereversepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcomputereversepath{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaddpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfaddpath{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetpathandBB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetpathandBB{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaddpathandBB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfaddpathandBB{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathreplacefirstmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathreplacefirstmoveto{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfintersectionsegments\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibraryexternal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryexternal\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibraryfillbetween.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfplotslibrarydecorations.softclip\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzsegmentindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzfillbetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzfillbetween[${2:options%keyvals}]{${1:draw style}}\",\n        \"keys\": [\n          \"\\\\tikzfillbetween#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzgetnamedpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzgetnamedpath{${1:path name}}\"\n      }\n    },\n    {\n      \"name\": \"tikznamecurrentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikznamecurrentpath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpathintersectionsegments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikzpathintersectionsegments[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tikzpathintersectionsegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\addplot#c,\\\\addplot+#c\": [\n      \"name path=${1:name}\"\n    ],\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c\": [\n      \"intersection segments={${1:options}}\"\n    ],\n    \"\\\\tikzfillbetween#c\": [\n      \"split\",\n      \"soft clip={${1:specification}}\",\n      \"soft clip first={${1:specification}}\",\n      \"soft clip second={${1:specification}}\",\n      \"every segment/.style={${1:TikZ keys}}\",\n      \"every odd segment/.style={${1:TikZ keys}}\",\n      \"every even segment/.style={${1:TikZ keys}}\",\n      \"every segment no ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"every last segment/.style={${1:TikZ keys}}\",\n      \"of=${1:first} and ${2:second}\",\n      \"reverse=${1|auto,true,false|}\",\n      \"on layer=${1:layer name}\",\n      \"inner moveto=${1|connect,keep|}\"\n    ],\n    \"\\\\tikzpathintersectionsegments#c\": [\n      \"of=${1:first} and ${2:second}\",\n      \"sequence={${1:series spec}}\",\n      \"reverse\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarygroupplots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nextgroupplot\"\n    },\n    {\n      \"name\": \"nextgroupplot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextgroupplot[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"groupplot\"\n    },\n    {\n      \"name\": \"groupplot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c\": [\n      \"group style={${1:options}}\",\n      \"group/group size=${1:columns} by ${2:rows}\",\n      \"group/columns=${1:integer}\",\n      \"group/rows=${1:integer}\",\n      \"group/horizontal sep=\",\n      \"group/vertical sep=\",\n      \"group/every plot/.style={${1:TikZ keys}}\",\n      \"group/xlabels at=${1|all,edge top,edge bottom|}\",\n      \"group/ylabels at=${1|all,edge left,edge right|}\",\n      \"group/xticklabels at=${1|all,edge top,edge bottom|}\",\n      \"group/yticklabels at=${1|all,edge left,edge right|}\",\n      \"group/x descriptions at=${1|all,edge top,edge bottom|}\",\n      \"group/y descriptions at=${1|all,edge left,edge right|}\",\n      \"group/group name=${1:name}\",\n      \"group/empty plot/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarypatchplots.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"patch type=${1|default,rectaingle,triangle,line,quadratic spline,cubic spline,bezier spline,bilinear,triangle quadr,biquadratic,bicubic,polygon,coons,tensor bezier|}\",\n      \"vertex count=${1:integer}\",\n      \"patch refines=${1:level}\",\n      \"patch to triangles\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarypolar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"polaraxis\"\n    },\n    {\n      \"name\": \"polaraxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{polaraxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{polaraxis}#c\": [\n      \"polar comb\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarysmithchart.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"smithchart\"\n    },\n    {\n      \"name\": \"smithchart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c\": [\n      \"few smithchart ticks/.style={${1:TikZ keys}}\",\n      \"many smithchart ticks/.style={${1:TikZ keys}}\",\n      \"many smithchart ticks*/.style={${1:TikZ keys}}\",\n      \"dense smithchart ticks/.style={${1:TikZ keys}}\",\n      \"is smithchart cs\",\n      \"show origin\",\n      \"show origin code/.code={${1:code}}\",\n      \"yticklabel in circle/.style={${1:TikZ keys}}\",\n      \"yticklabel around circle/.style={${1:TikZ keys}}\",\n      \"yticklabel around circle*/.style={${1:TikZ keys}}\",\n      \"every smithchart axis/.style={${1:TikZ keys}}\",\n      \"xgrid each nth passes y={${1:list of stop entries}}\",\n      \"ygrid each nth passes x={${1:list of stop entries}}\",\n      \"xgrid each nth passes y start=${1:integer}\",\n      \"ygrid each nth passes x start=${1:integer}\",\n      \"xgrid stop at y={${1:list of stop entries}}\",\n      \"ygrid stop at x={${1:list of stop entries}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibrarystatistics.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotsboxplotvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotsboxplotvalue{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfplotsboxplotvalue#c,\\\\boxplotvalue#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"boxplotvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxplotvalue{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfplotsboxplotvalue#c,\\\\boxplotvalue#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c\": [\n      \"boxplot prepared={${1:options}}\",\n      \"boxplot\",\n      \"boxplot={${1:options}}\",\n      \"hist\",\n      \"hist={${1:options}}\"\n    ],\n    \"\\\\pgfplotsboxplotvalue#c,\\\\boxplotvalue#c\": [\n      \"draw position=${1:axis unit}\",\n      \"data=${1:expression}\",\n      \"data value=${1:value}\",\n      \"data filter/.code={${1:code}}\",\n      \"lower whisker=${1:value}\",\n      \"lower quartile=${1:value}\",\n      \"median=${1:value}\",\n      \"upper quartile=${1:value}\",\n      \"upper whisker=${1:value}\",\n      \"average=${1:value}\",\n      \"draw direction=${1|x,y|}\",\n      \"variable width\",\n      \"sample size=${1:number}\",\n      \"variable width expr=${1:expression}\",\n      \"sample size min=${1:number}\",\n      \"sample size max=${1:number}\",\n      \"variable width min target=${1:factor}\",\n      \"box extend=${1:factor}\",\n      \"whisker extend=${1:factor}\",\n      \"draw relative anchor=${1:factor}\",\n      \"estimator=${1|R1,R2,R3,R4,R5,R6,R7,R8,R9,legacy|}\",\n      \"whisker range=${1:number}\",\n      \"every boxplot/.style={${1:TikZ keys}}\",\n      \"every whisker/.style={${1:TikZ keys}}\",\n      \"every box/.style={${1:TikZ keys}}\",\n      \"every median/.style={${1:TikZ keys}}\",\n      \"every average/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibraryternary.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"ternaryaxis\"\n    },\n    {\n      \"name\": \"ternaryaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{ternaryaxis}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{ternaryaxis}#c\": [\n      \"ternary limits relative\",\n      \"every ternary axis/.style={${1:TikZ keys}}\",\n      \"tieline\",\n      \"tieline={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotslibraryunits.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"use units\",\n      \"x unit=${1:unit}\",\n      \"y unit=${1:unit}\",\n      \"z unit=${1:unit}\",\n      \"x unit prefix=${1:prefix}\",\n      \"y unit prefix=${1:prefix}\",\n      \"z unit prefix=${1:prefix}\",\n      \"unit marking pre=${1:pre}\",\n      \"unit marking post=${1:post}\",\n      \"unit markings=${1|parenthesis,square brackets,slash space|}\",\n      \"unit code/.code 2 args={${1:code}}\",\n      \"x SI prefix=${1|yocto,zepto,atto,femto,pico,nano,micro,milli,centi,deci,deca,hecto,kilo,mega,giga,tera,peta,exa,zetta,yotta|}\",\n      \"y SI prefix=${1|yocto,zepto,atto,femto,pico,nano,micro,milli,centi,deci,deca,hecto,kilo,mega,giga,tera,peta,exa,zetta,yotta|}\",\n      \"z SI prefix=${1|yocto,zepto,atto,femto,pico,nano,micro,milli,centi,deci,deca,hecto,kilo,mega,giga,tera,peta,exa,zetta,yotta|}\",\n      \"change x base\",\n      \"change y base\",\n      \"change z base\",\n      \"axis base prefix={axis ${1:axis} base ${2:base} prefix ${3:prefix}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotstable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfplotstableset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\",\n          \"\\\\pgfplotstableset#c\",\n          \"\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstableset#c\",\n          \"\\\\pgfplotstablesort#c,\\\\pgfplotstableset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypeset{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypeset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypeset[${2:options%keyvals}]{${1:table}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstabletypesetfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletypesetfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfplotstabletypesetfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstableread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstableread{${1:table}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablecolname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablecols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablerows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablepartno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablenew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablenew{${1:row count}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablenew\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablenew[${3:options%keyvals}]{${1:row count}}{${2:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstablenew*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablenew*{${1:row count}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablenew*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablenew*[${3:options%keyvals}]{${1:row count}}{${2:macro%cmd}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstablevertcat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablevertcat{${1:table1%cmd}}{${2:table2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableclear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstableclear{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol{${1:new col name}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablecreatecol\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablecreatecol[${3:options%keyvals}]{${1:new col name}}{${2:table}}\",\n        \"keys\": [\n          \"\\\\pgfplotstablecreatecol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prevrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prevrow{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"getprevrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getprevrow{${1:col name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"thisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrow{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"getthisrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getthisrow{${1:col name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"nextrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextrow{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"getnextrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getnextrow{${1:col name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathaccuma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathaccumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablesave\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablesave{${1:table}}{${2:output-file name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablesave\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablesave[${3:options%keyvals}]{${1:table}}{${2:output-file name}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetrowsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetrowsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablegetcolsof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotstablegetcolsof{${1:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletranspose\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstabletranspose{${1:macro%cmd}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletranspose\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstabletranspose[${3:options%keyvals}]{${1:macro%cmd}}{${2:table}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\",\n          \"\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstableset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletranspose*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstabletranspose*{${1:macro%cmd}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstabletranspose*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstabletranspose*[${3:options%keyvals}]{${1:macro%cmd}}{${2:table}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\",\n          \"\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstableset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplotstablesort\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplotstablesort{${1:macro%cmd}}{${2:table}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstablesort\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfplotstablesort[${3:options%keyvals}]{${1:macro%cmd}}{${2:table}}\",\n        \"keys\": [\n          \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\",\n          \"\\\\pgfplotstablesort#c,\\\\pgfplotstableset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifpgfplotstabletypesetdebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetdebugtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetdebugfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotstabletypesetskipcoltypes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetskipcoltypestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetskipcoltypesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotstabletypesetresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetresulttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstabletypesetresultfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfplotstableuserow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableuserowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableuserowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prevrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prevrowno{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"thisrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thisrowno{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"nextrowno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextrowno{${1:col name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotstableresetcolortbloverhangright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstableresetcolortbloverhangleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotstablecoltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpgfplotstablecoltype\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfplotstableset#c,\\\\pgfplotstabletypeset#c,\\\\pgfplotstabletypesetfile#c,\\\\pgfplotstablenew#c,\\\\pgfplotstablenew*#c,\\\\pgfplotstablesave#c,\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstablesort#c\": [\n      \"col sep=${1|space,tab,comma,semicolon,colon,braces,&,ampersand|}\",\n      \"trim cells\",\n      \"header=${1|true,false,has colnames|}\",\n      \"format=${1|auto,inline,file|}\",\n      \"row sep=${1|newline,\\\\\\\\|}\",\n      \"ignore chars={${1:char1,char2,...}}\",\n      \"white space chars={${1:char1,char2,...}}\",\n      \"text special chars={${1:char1,char2,...}}\",\n      \"comment chars={${1:char1,char2,...}}\",\n      \"percent is letter\",\n      \"text indicator=${1:char}\",\n      \"skip first n=${1:integer}\",\n      \"search path=${1:path}\",\n      \"search path/implicit .\",\n      \"columns={${1:colname1,colname2,...}}\",\n      \"columns/${1:colname}/.style={${2:options}}\",\n      \"display columns/${1:index}/.style={${2:options}}\",\n      \"every col no ${1:index}/.style={${2:options}}\",\n      \"column type=${1:tabular col type}\",\n      \"column type/.add={${1:before}}{${2:after}}\",\n      \"column name=${1:TeX display colname}\",\n      \"multicolumn names=${1:tabular col type}\",\n      \"dec sep align=${1:header col type}\",\n      \"sci sep align=${1:header col type}\",\n      \"dcolumn={${1:tabular col type}}{${2:type for colname}}\",\n      \"sort\",\n      \"every first column/.style={${1:options}}\",\n      \"every last column/.style={${1:options}}\",\n      \"every even column/.style={${1:options}}\",\n      \"every column/.style={${1:options}}\",\n      \"every odd column/.style={${1:options}}\",\n      \"before row={${1:code}}\",\n      \"after row={${1:code}}\",\n      \"every even row/.style={${1:options}}\",\n      \"every odd row/.style={${1:options}}\",\n      \"every head row/.style={${1:options}}\",\n      \"every first row/.style={${1:options}}\",\n      \"every last row/.style={${1:options}}\",\n      \"every row no ${1:index}/.style={${2:options}}\",\n      \"every nth row={${1:integer}}{${2:options}}\",\n      \"every nth row={${1:integer[shift]}}{${2:options}}\",\n      \"every row ${1:index} column ${2:index}/.style={${3:options}}\",\n      \"every row ${1:index} column ${2:colname}/.style={${3:options}}\",\n      \"every row no ${1:index} column no ${2:index}/.style={${3:options}}\",\n      \"font=${1:font commands}\",\n      \"begin table={${1:code}}\",\n      \"end table={${1:code}}\",\n      \"outfile=${1:file}\",\n      \"include outfiles\",\n      \"force remake\",\n      \"write to macro=${1:\\\\macro}\",\n      \"skip coltypes\",\n      \"typeset\",\n      \"debug\",\n      \"TeX comment=${1:comment sign}\",\n      \"fixed\",\n      \"fixed zerofill\",\n      \"sci\",\n      \"sci zerofill\",\n      \"zerofill\",\n      \"std\",\n      \"std=${1:lower e}\",\n      \"std=${1:lower e}:${2:upper e}\",\n      \"relative*=${1:exponent base 10}\",\n      \"relative style={${1:options}}\",\n      \"fixed relative\",\n      \"int detect\",\n      \"int trunc\",\n      \"frac\",\n      \"frac TeX=${1:\\\\macro}\",\n      \"frac denom=${1:integer}\",\n      \"frac whole\",\n      \"frac shift=${1:integer}\",\n      \"precision=${1:number}\",\n      \"sci precision=${1:number}\",\n      \"read comma as period\",\n      \"set decimal separator=${1:text}\",\n      \"dec sep=${1:text}\",\n      \"set thousands separator=${1:text}\",\n      \"1000 sep=${1:text}\",\n      \"1000 sep in fractionals\",\n      \"min exponent for 1000 sep=${1:number}\",\n      \"use period\",\n      \"use comma\",\n      \"skip 0.\",\n      \"showpos\",\n      \"print sign\",\n      \"sci 10e\",\n      \"sci 10^e\",\n      \"sci E\",\n      \"sci subscript\",\n      \"sci superscript\",\n      \"sci generic={${1:keys}}\",\n      \"retain unit mantissa\",\n      \"assume math mode\",\n      \"verbatim\",\n      \"assign cell content/.code={${1:code}}\",\n      \"numeric type\",\n      \"string type\",\n      \"verb string type\",\n      \"numeric as string type\",\n      \"date type=${1:date format}\",\n      \"preproc cell content/.code={${1:code}}\",\n      \"string replace={${1:cell match}}{${2:cell replacement}}\",\n      \"string replace*={${1:pattern}}{${2:cell replacement}}\",\n      \"clear infinite\",\n      \"preproc/expr={${1:math expr}}\",\n      \"multiply by=${1:real number}\",\n      \"divide by=${1:real number}\",\n      \"sqrt\",\n      \"multiply -1\",\n      \"row predicate/.code={${1:code}}\",\n      \"skip rows between index={${1:begin}}{${2:end}}\",\n      \"select equal part entry of={${1:part no}}{${2:part count}}\",\n      \"unique=${1:colname}\",\n      \"postproc cell content/.code={${1:code}}\",\n      \"empty cells with=${1:replacement}\",\n      \"set content=${1:content}\",\n      \"fonts by sign={${1:positive-code}}{${2:negative-code}}\",\n      \"create on use/${1:colname}/.style={${2:options}}\",\n      \"disable rowcol styles\",\n      \"reset styles\"\n    ],\n    \"\\\\pgfplotstableset#c\": [\n      \"alias/${1:colname}/.initial=${2:real colname}\",\n      \"every table=${1:file}\"\n    ],\n    \"\\\\pgfplotstablecreatecol#c\": [\n      \"set=${1:value}\",\n      \"set list={${1:val1,val2,...}}\",\n      \"copy=${1:colname}\",\n      \"copy column from table={${1:table}}{${2:colname}}\",\n      \"expr={${1:math expr}}\",\n      \"expr accum={${1:math expr}}{${2:accum init}}\",\n      \"quotient=${1:colname}\",\n      \"iquotient=${1:colname}\",\n      \"dyadic refinement rate=${1:colname}\",\n      \"idyadic refinement rate=${1:colname}\",\n      \"gradient={${1:col x}}{${2:col y}}\",\n      \"gradient loglog={${1:col x}}{${2:col y}}\",\n      \"gradient semilogx={${1:col x}}{${2:col y}}\",\n      \"gradient semilogy={${1:col x}}{${2:col y}}\",\n      \"linear regression\",\n      \"function graph cut y={${1:cut value}}{${2:common options}}{${3:one keyval set for each plot}}\",\n      \"function graph cut x={${1:cut value}}{${2:common options}}{${3:one keyval set for each plot}}\"\n    ],\n    \"\\\\pgfplotstabletranspose#c,\\\\pgfplotstabletranspose*#c,\\\\pgfplotstableset#c\": [\n      \"colnames from=${1:colname}\",\n      \"input colnames to=${1:colname}\"\n    ],\n    \"\\\\pgfplotstablesort#c,\\\\pgfplotstableset#c\": [\n      \"sort key=${1:column}\",\n      \"sort key from=${1:table}\",\n      \"sort cmp=${1|fixed <,fixed >,int <,int >,float <,float >,date <,date >,string <,string >|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfplotsthemebeamer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfplots\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgfplotsthemebeamer#c\": [\n      \"all\"\n    ],\n    \"\\\\begin{axis}#c,\\\\begin{loglogaxis}#c,\\\\begin{semilogxaxis}#c,\\\\begin{semilogyaxis}#c,\\\\addplot#c,\\\\addplot3#c,\\\\addplot+#c,\\\\pgfplotsset#c,\\\\begin{groupplot}#c,\\\\nextgroupplot#c,\\\\begin{smithchart}#c,\\\\begin{polaraxis}#c,\\\\begin{ternaryaxis}#c\": [\n      \"beamercolors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgfplotsthemebeamer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgfrcs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"everyshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgferror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgferror{${1:error text%text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfwarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfwarning{${1:warning text%text}}\"\n      }\n    },\n    {\n      \"name\": \"usepgflibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgflibrary{${1:list of libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgflibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usepgfmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepgfmodule{${1:module names%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepgfmodule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfutilensuremath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfutilensuremath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"pgfutilpreparefilename\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfutilpreparefilename{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfretvalquoted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfutilconvertdcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfutilifcontainsmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfutilifcontainsmacro{${1:token list}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfutilifstartswith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfutilifstartswith{${1:start with pattern}}{${2:token list}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfutilstrreplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfutilstrreplace{${1:search}}{${2:replacement}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"pgfutilsolvetwotwoleq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfutilsolvetwotwoleq{2x2 matrix entries}{2x1 matrix entries}\"\n      }\n    },\n    {\n      \"name\": \"pgfutilsolvetwotwoleqfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfutilsolvetwotwoleqfloat{2x2 matrix entries}{2x1 matrix entries}\"\n      }\n    },\n    {\n      \"name\": \"pgftypesetversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrcsloaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrcsatcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProvidesFileRCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesFileRCS{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackageRCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesPackageRCS{${1:pkg name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClassRCS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesClassRCS{${1:class name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfversiondate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfrevisiondate\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepgflibrary#c\": [\n      \"arrows.meta\",\n      \"curvilinear\",\n      \"datavisualization.barcharts\",\n      \"datavisualization.formats.functions\",\n      \"datavisualization.polar\",\n      \"decorations.footprints\",\n      \"decorations.fractals\",\n      \"decorations.markings\",\n      \"decorations.pathmorphing\",\n      \"decorations.pathreplacing\",\n      \"decorations.shapes\",\n      \"decorations.text\",\n      \"fadings\",\n      \"fixedpointarithmetic\",\n      \"fpu\",\n      \"graphdrawing.circular\",\n      \"graphdrawing\",\n      \"graphdrawing.examples\",\n      \"graphdrawing.force\",\n      \"graphdrawing.layered\",\n      \"graphdrawing.trees\",\n      \"intersections\",\n      \"lindenmayersystems\",\n      \"luamath\",\n      \"patterns\",\n      \"patterns.meta\",\n      \"plothandlers\",\n      \"plotmarks\",\n      \"profiler\",\n      \"shadings\",\n      \"shapes\",\n      \"shapes.arrows\",\n      \"shapes.callouts\",\n      \"shapes.gates.ee\",\n      \"shapes.gates.ee.IEC\",\n      \"shapes.gates.logic\",\n      \"shapes.gates.logic.IEC\",\n      \"shapes.gates.logic.US\",\n      \"shapes.geometric\",\n      \"shapes.misc\",\n      \"shapes.multipart\",\n      \"shapes.symbols\",\n      \"svg.path\",\n      \"timelines\",\n      \"transformations.mirror\"\n    ],\n    \"\\\\usepgfmodule#c\": [\n      \"animations\",\n      \"bending\",\n      \"datavisualization\",\n      \"decorations\",\n      \"matrix\",\n      \"nonlineartransformations\",\n      \"oo\",\n      \"parser\",\n      \"plot\",\n      \"shapes\",\n      \"sorting\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfsubpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subpictureid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfnewsubpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfnewsubpicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsavesubpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsavesubpicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmergesubpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmergesubpicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfrestoresubpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfrestoresubpicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplacesubpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgffitsubpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgffitsubpicture{${1:southwest}}{${2:northeast}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodedelete\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfnodedelete{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfnodeifexists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfnodeifexists{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pgfsubpicture\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgfsys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgffrcs\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfset{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfpicture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicturetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpicturefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfsysanimationsupported\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsysanimationsupportedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsysanimationsupportedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsysdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfsyssoftpathmovetorelevant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsyssoftpathmovetorelevanttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsyssoftpathmovetorelevantfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pgfsys#c\": [\n      \"dvisvgm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pgfsys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pgftree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"pgfsubpic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"levelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtreesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leveldirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"siblingdirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawnode{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"drawedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgftree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftree{${1:subtree}}\"\n      }\n    },\n    {\n      \"name\": \"nodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsubtree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsubtree{${1:root}}{${2:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"parentnodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtreeof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtreeof{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pgothic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textpgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pgothfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phaistos.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PHarrow\"\n    },\n    {\n      \"name\": \"PHbee\"\n    },\n    {\n      \"name\": \"PHbeehive\"\n    },\n    {\n      \"name\": \"PHboomerang\"\n    },\n    {\n      \"name\": \"PHbow\"\n    },\n    {\n      \"name\": \"PHbullLeg\"\n    },\n    {\n      \"name\": \"PHcaptive\"\n    },\n    {\n      \"name\": \"PHcarpentryPlane\"\n    },\n    {\n      \"name\": \"PHcat\"\n    },\n    {\n      \"name\": \"PHchild\"\n    },\n    {\n      \"name\": \"PHclub\"\n    },\n    {\n      \"name\": \"PHcolumn\"\n    },\n    {\n      \"name\": \"PHcomb\"\n    },\n    {\n      \"name\": \"PHdolium\"\n    },\n    {\n      \"name\": \"PHdove\"\n    },\n    {\n      \"name\": \"PHeagle\"\n    },\n    {\n      \"name\": \"PHflute\"\n    },\n    {\n      \"name\": \"PHgaunlet\"\n    },\n    {\n      \"name\": \"PHgrater\"\n    },\n    {\n      \"name\": \"PHhelmet\"\n    },\n    {\n      \"name\": \"PHhide\"\n    },\n    {\n      \"name\": \"PHhorn\"\n    },\n    {\n      \"name\": \"PHlid\"\n    },\n    {\n      \"name\": \"PHlily\"\n    },\n    {\n      \"name\": \"PHmanacles\"\n    },\n    {\n      \"name\": \"PHmattock\"\n    },\n    {\n      \"name\": \"PHoxBack\"\n    },\n    {\n      \"name\": \"PHpapyrus\"\n    },\n    {\n      \"name\": \"PHpedestrian\"\n    },\n    {\n      \"name\": \"PHplaneTree\"\n    },\n    {\n      \"name\": \"PHplumedHead\"\n    },\n    {\n      \"name\": \"PHram\"\n    },\n    {\n      \"name\": \"PHrosette\"\n    },\n    {\n      \"name\": \"PHsaw\"\n    },\n    {\n      \"name\": \"PHshield\"\n    },\n    {\n      \"name\": \"PHship\"\n    },\n    {\n      \"name\": \"PHsling\"\n    },\n    {\n      \"name\": \"PHsmallAxe\"\n    },\n    {\n      \"name\": \"PHstrainer\"\n    },\n    {\n      \"name\": \"PHtattooedHead\"\n    },\n    {\n      \"name\": \"PHtiara\"\n    },\n    {\n      \"name\": \"PHtunny\"\n    },\n    {\n      \"name\": \"PHvine\"\n    },\n    {\n      \"name\": \"PHwavyBand\"\n    },\n    {\n      \"name\": \"PHwoman\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phfcc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"marginnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phfMakeCommentingCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfMakeCommentingCommand{${1:cmd name}}\"\n      }\n    },\n    {\n      \"name\": \"phfMakeCommentingCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phfMakeCommentingCommand[${2:options%keyvals}]{${1:cmd name}}\",\n        \"keys\": [\n          \"\\\\phfMakeCommentingCommand#c,\\\\phfDefineCommentingStyle#c,\\\\phfSetDefaultCommentingStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phfDisableCommentingCommands\"\n    },\n    {\n      \"name\": \"phfDefineCommentingStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phfDefineCommentingStyle{${1:style name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"phfSetDefaultCommentingStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfSetDefaultCommentingStyle{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"phfccformatmargininitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfccformatmargininitials{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"phfccmargininitialssep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfccformatboxinitials\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfccformatboxinitials{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"phfCCChangesBy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfCCChangesBy{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"phfCommentingDefaultStartCmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultEndCmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultCFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultCSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultCBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultCEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultRmFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultRmSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultRmBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultRmEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultIFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultISpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultIBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfCommentingDefaultIEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfccfootcommenttextstyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\phfMakeCommentingCommand#c,\\\\phfDefineCommentingStyle#c,\\\\phfSetDefaultCommentingStyle#c\": [\n      \"color=\",\n      \"initials={${1:initials}}\",\n      \"formatinitials=${1:format cmds}\",\n      \"formatinitials=${1|default,margin,box,nobox,hide,footnote|}\",\n      \"style=${1|footcomments,rmstrikethrough|}\",\n      \"font={${1:font cmds}}\",\n      \"spacing=\",\n      \"begin=\",\n      \"end=\",\n      \"cfont={${1:font cmds}}\",\n      \"cspacing=\",\n      \"cbegin=\",\n      \"cend=\",\n      \"rmfont={${1:font cmds}}\",\n      \"rmspacing=\",\n      \"rmbegin=\",\n      \"rmend=\",\n      \"ifont={${1:font cmds}}\",\n      \"ispacing=\",\n      \"ibegin=\",\n      \"iend=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phffullpagefigure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"placeins\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"figcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcontent{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"figpdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figpdf{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"figpdf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figpdf[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\figpdf\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figpageside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figpageside{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\figpageside\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figplacement{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\figplacement,\\\\begin{fullpagefigure}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figcapmaxheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcapmaxheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"fullpagefigurecaptionfmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlushAllFullPageFigures\"\n    },\n    {\n      \"name\": \"FlushAllFullPageFigures\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"FlushAllFullPageFigures[${1:clear cmd}]\"\n      }\n    },\n    {\n      \"name\": \"phffpfFloatBarrier\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"fullpagefigure\"\n    },\n    {\n      \"name\": \"fullpagefigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:position%keyvals}]\",\n        \"keys\": [\n          \"\\\\figplacement,\\\\begin{fullpagefigure}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\figpdf\": [\n      \"pages=\",\n      \"nup=${1:xnup}x${2:ynup}\",\n      \"landscape\",\n      \"delta=${1:delx} ${2:dely}\",\n      \"offset=${1:offx} ${2:offy}\",\n      \"frame\",\n      \"column\",\n      \"columnstrict\",\n      \"openright\",\n      \"openrighteach\",\n      \"pagecommand=${1:code}\",\n      \"turn\",\n      \"noautoscale\",\n      \"fitpaper\",\n      \"reflect\",\n      \"signature=${1:size}\",\n      \"signature*=${1:size}\",\n      \"booklet\",\n      \"picturecommand=${1:code}\",\n      \"picturecommand*=${1:code}\",\n      \"pagetemplate=${1:page number}\",\n      \"templatesize={${1:width}}{${2:height}}\",\n      \"rotateoversize\",\n      \"doublepages\",\n      \"doublepagestwist\",\n      \"doublepagestwistodd\",\n      \"doublepagestwist*\",\n      \"doublepagestwistodd*\",\n      \"duplicatepages=${1:integer}\",\n      \"lastpage=${1:page number}\",\n      \"link\",\n      \"linkname=${1:default linkname}\",\n      \"thread\",\n      \"threadname=\",\n      \"linktodoc\",\n      \"linkfit=\",\n      \"linktodocfit=\",\n      \"newwindow\",\n      \"linkfilename=\",\n      \"addtotoc=\",\n      \"addtolist=\",\n      \"survey\",\n      \"survey-nolink\",\n      \"xr-prefix=\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=\",\n      \"trim=\",\n      \"angle=\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=\",\n      \"clip\",\n      \"draft\",\n      \"type=\",\n      \"ext=\",\n      \"read=\",\n      \"command=\",\n      \"quiet\",\n      \"page=\",\n      \"interpolate\"\n    ],\n    \"\\\\figpageside\": [\n      \"even\",\n      \"odd\"\n    ],\n    \"\\\\figplacement,\\\\begin{fullpagefigure}\": [\n      \"b\",\n      \"t\",\n      \"p\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phfnote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"sectsty\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"float\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"verbdef\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"csquotes\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"dsfont\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"bbm\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"mathtools\",\n      \"if\": \"pkgset=extended\"\n    },\n    {\n      \"name\": \"opensans\",\n      \"if\": \"preset=opensansnote\"\n    },\n    {\n      \"name\": \"fourier\",\n      \"if\": \"preset=utopianote\"\n    },\n    {\n      \"name\": \"MnSymbol\",\n      \"if\": \"preset=mnmynote\"\n    },\n    {\n      \"name\": \"MinionPro\",\n      \"if\": \"preset=mnmynote\"\n    },\n    {\n      \"name\": \"MyriadPro\",\n      \"if\": \"preset=mnmynote\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"verbdef\",\n      \"if\": \"preset=xpkgdoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PrintChangesAndIndexSpacing\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"PrintChangesAndIndex\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"ScaleHorizontallyAndHyphenateAnywhere\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ScaleHorizontallyAndHyphenateAnywhere{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMarginLabelContents\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMarginLabelContents{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMarginLabel\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMarginLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgname\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgname{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgnamefmt\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgnamefmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thephfnotechanged\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changed\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changed{${1:version}}{${2:date}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"changed\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"changed[${4:label name}]{${1:version}}{${2:date}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"changedreftext\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changedreftext{${1:label name}}\"\n      }\n    },\n    {\n      \"name\": \"changedtextfmt\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changedtextfmt{${1:version}}{${2:date}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"metatruefalsearg\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"pkgoptionfmt\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoptionfmt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptionfmt\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pkgoptionfmt[${2:opt}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"handleitemindex\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"handleitemindex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptname\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"packageoptionsname\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmdoptname\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commandoptionsname\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcmdnotpkgoptions\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmdoptionsfbox\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmdoptionsfbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptattrib\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoptattrib{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptattribnodots\",\n      \"if\": \"preset=xpkgdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgoptattribnodots{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkgoptattribempty\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"phfqitltxPkgTitle\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfqitltxPkgTitle{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgfmtdate\",\n      \"if\": \"preset=xpkgdoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgfmtdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"notetitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notetitlefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notetitleauthorfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notetitleauthorfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notetitledatefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notetitledatefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notetitlebelowspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlebottomspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitletopspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlehrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleinnervsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlefontparsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleaftertitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleauthorfontparsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitledatefontparsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitledonextvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlemakecontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlemakecontentstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlemakecontentsbottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlebeginrender\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleendrender\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleusemainbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notetitleusemainbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifnotetitleusempfootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleusempfootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleusempfootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thanks[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thanksmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"notetitleprettylsiderulewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettylsidespacewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettyrsiderulewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettyrsidespacewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettytopspace\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettybottomspace\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettytophrulewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettybottomhrulewidth\",\n      \"if\": \"title=pretty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettylsiderulewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettylsidespacewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettyrsiderulewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettyrsidespacewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettytopspace\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettybottomspace\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettytophrulewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitleprettybottomhrulewidth\",\n      \"if\": \"title=pretty2\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notetitlesmallauthordatesep\",\n      \"if\": \"title=small\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteabstracttextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteabstractnamefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteabstracttextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteabstractafterspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteabstractbeforespacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesectionallfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesectionallfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesubsubsectionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesubparagraphfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesectionsetfonts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"notesectionsetfonts{${1:sec style}}{${2:subsec style}}{${3:subsubsec style}}\"\n      }\n    },\n    {\n      \"name\": \"noteparagraphsetfonts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noteparagraphsetfonts{${1:para style}}{${2:subpara style}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"phfnoteEmail\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfnoteEmail{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"phfnotePdfLinkColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfnotePdfLinkColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"eprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eprint{${1:arxiv ID%URL}}\"\n      }\n    },\n    {\n      \"name\": \"doibase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doibase{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"notesmaller\"\n    },\n    {\n      \"name\": \"notesmaller\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"notesmaller[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"notesmallerfrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inlinetoc\"\n    },\n    {\n      \"name\": \"phfnoteHackSectionStarWithTOC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfnoteHackSectionStarWithTOCInCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfnoteHackSectionStarWithTOCInCommand{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"phfnoteSaveDefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phfnoteSaveDefs{${1:identifier}}{${2:list of macro names}}\"\n      }\n    },\n    {\n      \"name\": \"phfnoteRestoreDefs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfnoteRestoreDefs{${1:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"phfverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfverb{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"phfverbfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfverbfmt{${1:text%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pkgoptions\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"cmdoptions\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"pkgnote\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"pkgwarning\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"pkgtip\",\n      \"if\": \"preset=xpkgdoc\"\n    },\n    {\n      \"name\": \"noteabstract\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/phfnote#c\": [\n      \"preset=${1|sfnote,sfssnote,opensansnote,utopianote,mnmynote,pkgdoc,xpkgdoc,article,reset|}\",\n      \"title=${1|default,pretty,pretty2,small,article|}\",\n      \"notitle\",\n      \"abstract={${1:attributes}}\",\n      \"noabstract\",\n      \"pkgset=${1|none,minimal,rich,extended|}\",\n      \"pagegeom=${1|default,narrow,wide,xwide,bigmargin|}\",\n      \"nopagegeom\",\n      \"secfmt=={${1:attributes}}\",\n      \"nosecfmt\",\n      \"par=${1|indent,skip,indentminiskip|}\",\n      \"nopar\",\n      \"spacingdefs\",\n      \"nospacingdefs\",\n      \"fontdefs\",\n      \"nofontdefs\",\n      \"footnotedefs\",\n      \"nofootnotedefs\",\n      \"hyperrefdefs={${1:options}}\",\n      \"nohyperrefdefs\",\n      \"bibliographydefs\",\n      \"nobibliographydefs\"\n    ],\n    \"\\\\urlstyle#c\": [\n      \"notett\",\n      \"notesf\",\n      \"notesfss\",\n      \"noteitsf\",\n      \"noterm\",\n      \"noteit\",\n      \"notesml\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/phfnote#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/phfparen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"paren(${1:expression in parenthesis})\"\n      }\n    },\n    {\n      \"name\": \"paren*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"paren*(${1:expression in parenthesis})\"\n      }\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"paren[${1:expression in brackets}]\"\n      }\n    },\n    {\n      \"name\": \"paren*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"paren*[${1:expression in brackets}]\"\n      }\n    },\n    {\n      \"name\": \"paren<expression in angle brackets>\"\n    },\n    {\n      \"name\": \"paren*<expression in angle brackets>\"\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paren{${1:expression in curly braces}}\"\n      }\n    },\n    {\n      \"name\": \"paren*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paren*{${1:expression in curly braces}}\"\n      }\n    },\n    {\n      \"name\": \"backtick\"\n    },\n    {\n      \"name\": \"parenMakeBacktickActiveParen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenMakeNormalBacktick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenRegister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"parenRegister{${1:name}}{${2:delim1%definition}}{${3:delim2%definition}}{${4:display delim1%definition}}{${5:display delim2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parenRegsiterSimpleBraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenRegsiterSimpleBraces{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"parenRegisterDefaults\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/phfparen#c\": [\n      \"backtick\",\n      \"nobacktick\",\n      \"registerdefaults\",\n      \"noregisterdefaults\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/phfparen#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/phfqit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"dsfont\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Hs\"\n    },\n    {\n      \"name\": \"Ident\"\n    },\n    {\n      \"name\": \"IdentProc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IdentProc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IdentProc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"IdentProc[${2:sub}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IdentProc\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"IdentProc[${2:sub from}][${3:sub to}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ee^\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ee^{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"supp\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"linspan\"\n    },\n    {\n      \"name\": \"spec\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"poly\"\n    },\n    {\n      \"name\": \"bit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bit{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"bitstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bitstring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"XOR\"\n    },\n    {\n      \"name\": \"CNOT\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"NOOP\"\n    },\n    {\n      \"name\": \"uu\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"uu(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"UU\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"UU(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"su\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"su(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"SU\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"SU(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"so\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"so(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"SO\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"SO(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"SN\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"SN(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ket[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ket*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bra[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bra*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"braket[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"braket*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ketbra[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proj{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"proj[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"proj*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proj*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"matrixel[${4:size cmd}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"dmatrixel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dmatrixel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dmatrixel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dmatrixel[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"dmatrixel*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dmatrixel*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"innerprod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerprod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"innerprod\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"innerprod[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"innerprod*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerprod*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"avg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"avg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"avg[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"avg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"avg*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size cmd}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"intervalc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intervalc[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalc*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intervalo[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalo*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalo*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalco\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalco{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalco\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intervalco[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervalco*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervalco*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervaloc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervaloc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervaloc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"intervaloc[${3:size cmd}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"intervaloc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"intervaloc*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Hmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hmin{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hmin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hmin[${2:state}]{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hmin\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Hmin{${1:target sys}}[${2:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Hmin[${2:state}][${3:epsilon}]{${1:target sys}}[${4:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"HH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HH{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"HH\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HH[${2:state}]{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"HH\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"HH{${1:target sys}}[${2:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"HH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"HH[${2:state}][${3:epsilon}]{${1:target sys}}[${4:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hzero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hzero{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hzero\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hzero[${2:state}]{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hzero\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Hzero{${1:target sys}}[${2:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hzero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Hzero[${2:state}][${3:epsilon}]{${1:target sys}}[${4:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hmaxf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hmaxf{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hmaxf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hmaxf[${2:state}]{${1:target sys}}\"\n      }\n    },\n    {\n      \"name\": \"Hmaxf\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Hmaxf{${1:target sys}}[${2:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hmaxf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"Hmaxf[${2:state}][${3:epsilon}]{${1:target sys}}[${4:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"HSym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]{}[]\",\n        \"snippet\": \"Hbase{${1:Hsym}}{${2:subscript}}[${4:state}][${5:epsilon}]{${3:target sys}}[${6:cond sys}]\"\n      }\n    },\n    {\n      \"name\": \"Hfn\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Hfn(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"Hfunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Hfunc(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"Hfnbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}()\",\n        \"snippet\": \"Hfnbase{${1:Hsym}}{${2:sub}}{${3:sup}}(${4:arg})\"\n      }\n    },\n    {\n      \"name\": \"DD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DD{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"DD_\",\n      \"arg\": {\n        \"format\": \"{}^{}{}{}\",\n        \"snippet\": \"DD_{${1:sub}}^{${2:sup}}{${3:state}}{${4:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dmax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dmax{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dmax\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dmax[${3:epsilon}]{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dminz{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dminz[${3:epsilon}]{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dminf{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminf\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dminf[${3:epsilon}]{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dr{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dr[${3:epsilon}]{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dminz{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dminz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dminz[${3:epsilon}]{${1:state}}{${2:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"Dsym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}_{}^{}{}{}\",\n        \"snippet\": \"Dbase{${1:Dsym}}_{${2:sub}}^{${3:sup}}{${4:state}}{${5:relative-to state}}\"\n      }\n    },\n    {\n      \"name\": \"DCohx\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DCohx{${1:rho}}{${2:X}}{${3:X'}}{${4:GammaX}}{${5:GammaX'}}\"\n      }\n    },\n    {\n      \"name\": \"DCohx\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"DCohx[${6:epsilon}]{${1:rho}}{${2:X}}{${3:X'}}{${4:GammaX}}{${5:GammaX'}}\"\n      }\n    },\n    {\n      \"name\": \"emptysystem\"\n    },\n    {\n      \"name\": \"DCohxRefSystemName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DCSym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DCoh\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DCoh{${1:rho}}{${2:R}}{${3:X'}}{${4:GammaR}}{${5:GammaX'}}\"\n      }\n    },\n    {\n      \"name\": \"DCoh\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"DCoh[${6:epsilon}]{${1:rho}}{${2:R}}{${3:X'}}{${4:GammaR}}{${5:GammaX'}}\"\n      }\n    },\n    {\n      \"name\": \"DCohbase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}{}\",\n        \"snippet\": \"DCohbase{${1:Dsym}}[${7:epsilon}]{${2:rho}}{${3:R}}{${4:X'}}{${5:GammaR}}{${6:GammaX'}}\"\n      }\n    },\n    {\n      \"name\": \"qitobjAddArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qitobjAddArgx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qitobjParseDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qitobjDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefineQitObject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineQitObject{${1:name}}{${2:parse cmd}}{${3:render cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTunedQitObject\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DefineTunedQitObject{${1:name}}{${2:parse cmd}}{${3:render cmd}}{${4:first arg}}{${5:custom defs}}\"\n      }\n    },\n    {\n      \"name\": \"phfqitParen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfqitSquareBrackets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfqitCurlyBrackets\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phfquotetext.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"quotetextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotetextstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotetextend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotetextcatcodedefs\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quotetext\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phfsvnwatermark.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"svn\",\n      \"if\": \"id=svn\"\n    },\n    {\n      \"name\": \"svn\",\n      \"if\": \"id=gitnotsvn\"\n    },\n    {\n      \"name\": \"svn-multi\",\n      \"if\": \"id=svn-multi\"\n    },\n    {\n      \"name\": \"currfile\",\n      \"if\": \"id=svn-multi-currfile\"\n    },\n    {\n      \"name\": \"svn-multi\",\n      \"if\": \"id=svn-multi-currfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phfsvnShipoutWatermarkXposRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfsvnShipoutWatermarkYposBaseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfsvnVersionIdTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfsvnVersionIdTag*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfsvnVersionIdTagInnerFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfsvnVersionIdTagOuterFont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/phfsvnwatermark#c\": [\n      \"id=${1|svn,gitnotsvn,svn-multi,svn-multi-currfile|}\",\n      \"watermark\",\n      \"placement=${1|shipout,manual|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/phfsvnwatermark#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/phfthm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"aliascnt\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phfMakeTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phfMakeTheorem{${1:envname}}{${2:theorem name}}\"\n      }\n    },\n    {\n      \"name\": \"phfMakeTheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"phfMakeTheorem[${3:options%keyvals}]{${1:envname}}{${2:theorem name}}\",\n        \"keys\": [\n          \"\\\\phfMakeTheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phfLoadThmSet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phfLoadThmSet{${1:thm options}}{${2:def options}}{${3:thmset name%keyvals}}\",\n        \"keys\": [\n          \"\\\\phfLoadThmSet\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"theoremname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propositionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corollaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"conjecturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"remarkname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ideaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"claimname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"observationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"problemname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfMakeProofEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfMakeProofEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"phfMakeProofEnv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phfMakeProofEnv[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\phfMakeProofEnv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phfPinProofAnchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noproofref\"\n    },\n    {\n      \"name\": \"phfMakeThmheadingEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phfMakeThmheadingEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"phfMakeThmheadingEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phfMakeThmheadingEnvironment[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\phfMakeThmheadingEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proofrefsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filledsquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfProofrefPageAheadTolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phfProofrefPageBackTolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofonname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"proofonname{${1:label name}}{${2:page ref}}\"\n      }\n    },\n    {\n      \"name\": \"thephfthmheadingcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thephfthmInternalProofrefCounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thm\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"thm\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"prop\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"prop\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lem\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"lem\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"cor\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"cor\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conj\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"conj\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"rem\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"rem\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"defn\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"defn\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"thm*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"thm*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"prop*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"prop*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lem*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"lem*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"cor*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"cor*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conj*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"conj*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"rem*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"rem*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"defn*\",\n      \"if\": \"thmset=shortnames\"\n    },\n    {\n      \"name\": \"defn*\",\n      \"if\": \"thmset=shortnames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"idea\"\n    },\n    {\n      \"name\": \"idea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\"\n    },\n    {\n      \"name\": \"theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\"\n    },\n    {\n      \"name\": \"proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\"\n    },\n    {\n      \"name\": \"lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\"\n    },\n    {\n      \"name\": \"corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\"\n    },\n    {\n      \"name\": \"definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture*\"\n    },\n    {\n      \"name\": \"conjecture*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\"\n    },\n    {\n      \"name\": \"remark*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\"\n    },\n    {\n      \"name\": \"proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"idea*\"\n    },\n    {\n      \"name\": \"idea*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question*\"\n    },\n    {\n      \"name\": \"question*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem*\"\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"thmheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/phfthm#c\": [\n      \"thmset=${1|simple,default,shortnames,rich|}\",\n      \"theoremstyle=${1:theorem style}\",\n      \"definitionstyle=${1:theorem style}\",\n      \"sepcounters\",\n      \"parentcounter=${1:counter}\",\n      \"proofref={${1:attributes}}\",\n      \"proofenv\",\n      \"smallproofs\",\n      \"qedsymbolblacksquare\",\n      \"prooftitleitbf\",\n      \"thmheading\",\n      \"thmheadingstyle=${1:theorem style}\"\n    ],\n    \"\\\\phfMakeTheorem\": [\n      \"counter=${1:counter}\",\n      \"aliascounter\",\n      \"thmstyle=${1:theorem style}\",\n      \"defnostar\",\n      \"defstar\",\n      \"proofref\",\n      \"proofrefstyle=${1|default,margin,marginbottom,longref|}\"\n    ],\n    \"\\\\phfLoadThmSet\": [\n      \"empty\",\n      \"simple\",\n      \"default\",\n      \"shortnames\",\n      \"rich\"\n    ],\n    \"\\\\phfMakeProofEnv\": [\n      \"displayenv=${1:envname}\",\n      \"defaultproofname=${1:title}\",\n      \"parselabel\",\n      \"parselabelcmd=${1:macro}\",\n      \"override\",\n      \"internalcounter=${1:counter}\",\n      \"proofofname=${1:macro}\"\n    ],\n    \"\\\\phfMakeThmheadingEnvironment\": [\n      \"thmstyle=${1:theorem style}\",\n      \"internalcounter=${1:counter}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/phfthm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/philex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"cgloss4e\"\n    },\n    {\n      \"name\": \"linguex\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"km\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"kmt\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"p\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"pt\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"q\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"qt\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"s\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"stp\",\n      \"if\": \"oldpunct\"\n    },\n    {\n      \"name\": \"bpaformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bpaformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"bpbformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bpbformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"bpcformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bpcformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"bpdformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bpdformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"broff\"\n    },\n    {\n      \"name\": \"bron\"\n    },\n    {\n      \"name\": \"lb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lb[${3:c}]{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lb{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lba\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lba[${3:labeltext}]{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lba\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lba{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbb[${3:labeltext}]{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbb{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbp*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lbp*[${4:c}]{${1:label}}{${2:labeltext}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbp*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lbp*{${1:label}}{${2:labeltext}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lbp[${4:c}]{${1:label}}{${2:labeltext}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lbp{${1:label}}{${2:labeltext}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbpa*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpa*[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpa*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpa*{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpa\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpa[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpa\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpa{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpb*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpb*[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpb*{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpb[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpb{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpc*[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpc*{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpc[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpc{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpd*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpd*[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpd*{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbpd[${3:c}]{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbpd{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"lbpsep\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lbpsep[${5:c}]{${1:label}}{${2:reflabel%ref}}{${3:labeltext}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbpsep\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lbpsep{${1:label}}{${2:reflabel%ref}}{${3:labeltext}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbu*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lbu*[${5:c}]{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbu*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lbu*{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbu\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lbu[${5:c}]{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lbu{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbusep\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"lbusep[${6:c}]{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:envlabel%ref}}{${5:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbusep\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lbusep{${1:label}}{${2:reflabel%ref}}{${3:suffix}}{${4:envlabel%ref}}{${5:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lbz[${3:labeltext}]{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lbz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lbz{${1:label}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ml{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"narrowcenter\"\n    },\n    {\n      \"name\": \"oddity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oddity{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"philbrackets\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"philbrackets{${1:delim1}}{${2:delim2}}\"\n      }\n    },\n    {\n      \"name\": \"philcomma\"\n    },\n    {\n      \"name\": \"phildashes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phildashes{${1:delim1}}{${2:delim2}}\"\n      }\n    },\n    {\n      \"name\": \"philempty\"\n    },\n    {\n      \"name\": \"philexclaim\"\n    },\n    {\n      \"name\": \"philfullstop\"\n    },\n    {\n      \"name\": \"philpunct\"\n    },\n    {\n      \"name\": \"philquestion\"\n    },\n    {\n      \"name\": \"philsubcomma\"\n    },\n    {\n      \"name\": \"philsubempty\"\n    },\n    {\n      \"name\": \"philsubexclaim\"\n    },\n    {\n      \"name\": \"philsubpunct\"\n    },\n    {\n      \"name\": \"philsubquestion\"\n    },\n    {\n      \"name\": \"philsubstop\"\n    },\n    {\n      \"name\": \"phlabelsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phlabelsep{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"phlabelsepdefault\"\n    },\n    {\n      \"name\": \"rf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rf[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rf{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rff\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rff[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rff{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rffnot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rffnot[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rffnot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rffnot{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rfx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rfx[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rfx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rn[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rn{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rnx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rnx[${2:suffix}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rnx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sepset\",\n      \"arg\": {\n        \"format\": \"{}{\",\n        \"snippet\": \"sepset{${1:label}}{\"\n      }\n    },\n    {\n      \"name\": \"subformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"subsubformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subsubformat{${1:numstyle}}{${2:prefix}}{${3:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"widecenter\"\n    },\n    {\n      \"name\": \"bn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpasize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpbsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpcsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpdsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstphildash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lebrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ncentro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"philmarginfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"philsemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfp{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ribrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rsep{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondphildash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealtsub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thealtsubsub\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebpa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebpb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebpc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebpd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wcentro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/philex#c\": [\n      \"oldpunct\",\n      \"hyper\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/philex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/philokalia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xltxtra\"\n    },\n    {\n      \"name\": \"lettrine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textinit\",\n      \"if\": \"global\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textinit{${1:letter}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"phkl\"\n    },\n    {\n      \"name\": \"textphlk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textphlk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dsubop\"\n    },\n    {\n      \"name\": \"dUnit\"\n    },\n    {\n      \"name\": \"dunit\"\n    },\n    {\n      \"name\": \"dunknown\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/philokalia#c\": [\n      \"global\",\n      \"local\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/philokalia#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/phoenician.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"phncfamily\"\n    },\n    {\n      \"name\": \"textphnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textphnc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Arq\"\n    },\n    {\n      \"name\": \"ARrq\"\n    },\n    {\n      \"name\": \"Aaleph\"\n    },\n    {\n      \"name\": \"ARaleph\"\n    },\n    {\n      \"name\": \"Aa\"\n    },\n    {\n      \"name\": \"ARa\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"ARb\"\n    },\n    {\n      \"name\": \"Abeth\"\n    },\n    {\n      \"name\": \"ARbeth\"\n    },\n    {\n      \"name\": \"Ag\"\n    },\n    {\n      \"name\": \"ARg\"\n    },\n    {\n      \"name\": \"Agimel\"\n    },\n    {\n      \"name\": \"ARgimel\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"ARd\"\n    },\n    {\n      \"name\": \"Adaleth\"\n    },\n    {\n      \"name\": \"ARdaleth\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"ARh\"\n    },\n    {\n      \"name\": \"Ahe\"\n    },\n    {\n      \"name\": \"ARhe\"\n    },\n    {\n      \"name\": \"Af\"\n    },\n    {\n      \"name\": \"ARf\"\n    },\n    {\n      \"name\": \"Avaf\"\n    },\n    {\n      \"name\": \"ARvaf\"\n    },\n    {\n      \"name\": \"Az\"\n    },\n    {\n      \"name\": \"ARz\"\n    },\n    {\n      \"name\": \"Azayin\"\n    },\n    {\n      \"name\": \"ARzayin\"\n    },\n    {\n      \"name\": \"Ahd\"\n    },\n    {\n      \"name\": \"ARhd\"\n    },\n    {\n      \"name\": \"Aheth\"\n    },\n    {\n      \"name\": \"ARheth\"\n    },\n    {\n      \"name\": \"Atd\"\n    },\n    {\n      \"name\": \"ARtd\"\n    },\n    {\n      \"name\": \"Ateth\"\n    },\n    {\n      \"name\": \"ARteth\"\n    },\n    {\n      \"name\": \"Ay\"\n    },\n    {\n      \"name\": \"ARy\"\n    },\n    {\n      \"name\": \"Ayod\"\n    },\n    {\n      \"name\": \"ARyod\"\n    },\n    {\n      \"name\": \"Ak\"\n    },\n    {\n      \"name\": \"ARk\"\n    },\n    {\n      \"name\": \"Akaph\"\n    },\n    {\n      \"name\": \"ARkaph\"\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"ARl\"\n    },\n    {\n      \"name\": \"Alamed\"\n    },\n    {\n      \"name\": \"ARlamed\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"ARm\"\n    },\n    {\n      \"name\": \"Amem\"\n    },\n    {\n      \"name\": \"ARmem\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"ARn\"\n    },\n    {\n      \"name\": \"Anun\"\n    },\n    {\n      \"name\": \"ARnun\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"ARs\"\n    },\n    {\n      \"name\": \"Asamekh\"\n    },\n    {\n      \"name\": \"ARsamekh\"\n    },\n    {\n      \"name\": \"Alq\"\n    },\n    {\n      \"name\": \"ARlq\"\n    },\n    {\n      \"name\": \"Aayin\"\n    },\n    {\n      \"name\": \"ARayin\"\n    },\n    {\n      \"name\": \"Ao\"\n    },\n    {\n      \"name\": \"ARo\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"ARp\"\n    },\n    {\n      \"name\": \"Ape\"\n    },\n    {\n      \"name\": \"ARpe\"\n    },\n    {\n      \"name\": \"Asd\"\n    },\n    {\n      \"name\": \"ARsd\"\n    },\n    {\n      \"name\": \"Asade\"\n    },\n    {\n      \"name\": \"ARsade\"\n    },\n    {\n      \"name\": \"Aq\"\n    },\n    {\n      \"name\": \"ARq\"\n    },\n    {\n      \"name\": \"Aqoph\"\n    },\n    {\n      \"name\": \"ARqoph\"\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"ARr\"\n    },\n    {\n      \"name\": \"Aresh\"\n    },\n    {\n      \"name\": \"ARresh\"\n    },\n    {\n      \"name\": \"Asv\"\n    },\n    {\n      \"name\": \"ARsv\"\n    },\n    {\n      \"name\": \"Ashin\"\n    },\n    {\n      \"name\": \"ARshin\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"ARt\"\n    },\n    {\n      \"name\": \"Atav\"\n    },\n    {\n      \"name\": \"ARtav\"\n    },\n    {\n      \"name\": \"Aw\"\n    },\n    {\n      \"name\": \"ARw\"\n    },\n    {\n      \"name\": \"Avav\"\n    },\n    {\n      \"name\": \"ARvav\"\n    },\n    {\n      \"name\": \"translitphnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitphnc{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitphncfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phonenumbers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phonenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"phonenumber\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"phonenumber{${1:number}}[${2:extension}]\"\n      }\n    },\n    {\n      \"name\": \"phonenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phonenumber[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phonenumber\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"phonenumber[${2:options%keyvals}]{${1:number}}[${3:extension}]\",\n        \"keys\": [\n          \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setphonenumbers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setphonenumbers{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AreaCodesGeographic\"\n    },\n    {\n      \"name\": \"AreaCodesGeographic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AreaCodesGeographic[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AreaCodesNonGeographic\"\n    },\n    {\n      \"name\": \"AreaCodesNonGeographic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AreaCodesNonGeographic[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CountryCodes\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\": [\n      \"country=${1|AT,DE,FR,UK,US|}\",\n      \"link=${1|on,off|}\",\n      \"foreign=${1|international,american,european,off|}\",\n      \"foreign-area-code-sep=${1|space,brackets|}\",\n      \"home-country=${1|AT,DE,FR,UK,US,none|}\",\n      \"home-area-code=${1:area code}\",\n      \"group-min=${1|3,4,5,6,7|}\",\n      \"area-code-sep=${1|slash,brackets,space,hyphen|}\",\n      \"area-code=${1|number,place,place-and-number|}\",\n      \"trunk-prefix=${1|on,off|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/phonenumbers#c,\\\\phonenumber,\\\\setphonenumbers,\\\\AreaCodesGeographic,\\\\AreaCodesNonGeographic\"\n  ]\n}"
  },
  {
    "path": "dev/packages/phonetic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"barj\"\n    },\n    {\n      \"name\": \"barlambda\"\n    },\n    {\n      \"name\": \"emgma\"\n    },\n    {\n      \"name\": \"engma\"\n    },\n    {\n      \"name\": \"enya\"\n    },\n    {\n      \"name\": \"epsi\"\n    },\n    {\n      \"name\": \"esh\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fj\"\n    },\n    {\n      \"name\": \"flap\"\n    },\n    {\n      \"name\": \"glottal\"\n    },\n    {\n      \"name\": \"hausab\"\n    },\n    {\n      \"name\": \"hausaB\"\n    },\n    {\n      \"name\": \"hausad\"\n    },\n    {\n      \"name\": \"hausaD\"\n    },\n    {\n      \"name\": \"hausak\"\n    },\n    {\n      \"name\": \"hausaK\"\n    },\n    {\n      \"name\": \"hookB\"\n    },\n    {\n      \"name\": \"hookb\"\n    },\n    {\n      \"name\": \"hookd\"\n    },\n    {\n      \"name\": \"hookD\"\n    },\n    {\n      \"name\": \"hookh\"\n    },\n    {\n      \"name\": \"hookK\"\n    },\n    {\n      \"name\": \"hookk\"\n    },\n    {\n      \"name\": \"ibar\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"openo\"\n    },\n    {\n      \"name\": \"palpha\"\n    },\n    {\n      \"name\": \"pbeta\"\n    },\n    {\n      \"name\": \"pchi\"\n    },\n    {\n      \"name\": \"pdelta\"\n    },\n    {\n      \"name\": \"pepsilon\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"pgamma\"\n    },\n    {\n      \"name\": \"piota\"\n    },\n    {\n      \"name\": \"pkappa\"\n    },\n    {\n      \"name\": \"plambda\"\n    },\n    {\n      \"name\": \"planck\"\n    },\n    {\n      \"name\": \"pmu\"\n    },\n    {\n      \"name\": \"pnu\"\n    },\n    {\n      \"name\": \"pomega\"\n    },\n    {\n      \"name\": \"pomicron\"\n    },\n    {\n      \"name\": \"pphi\"\n    },\n    {\n      \"name\": \"ppi\"\n    },\n    {\n      \"name\": \"ppsi\"\n    },\n    {\n      \"name\": \"prho\"\n    },\n    {\n      \"name\": \"psigma\"\n    },\n    {\n      \"name\": \"ptau\"\n    },\n    {\n      \"name\": \"ptheta\"\n    },\n    {\n      \"name\": \"pupsilon\"\n    },\n    {\n      \"name\": \"pwedge\"\n    },\n    {\n      \"name\": \"pxi\"\n    },\n    {\n      \"name\": \"pzeta\"\n    },\n    {\n      \"name\": \"rbar\"\n    },\n    {\n      \"name\": \"revD\"\n    },\n    {\n      \"name\": \"riota\"\n    },\n    {\n      \"name\": \"rotc\"\n    },\n    {\n      \"name\": \"roth\"\n    },\n    {\n      \"name\": \"rotm\"\n    },\n    {\n      \"name\": \"rotOmega\"\n    },\n    {\n      \"name\": \"rotr\"\n    },\n    {\n      \"name\": \"rotvara\"\n    },\n    {\n      \"name\": \"rotw\"\n    },\n    {\n      \"name\": \"roty\"\n    },\n    {\n      \"name\": \"schwa\"\n    },\n    {\n      \"name\": \"taild\"\n    },\n    {\n      \"name\": \"thorn\"\n    },\n    {\n      \"name\": \"ubar\"\n    },\n    {\n      \"name\": \"udesc\"\n    },\n    {\n      \"name\": \"upbar\"\n    },\n    {\n      \"name\": \"vara\"\n    },\n    {\n      \"name\": \"varg\"\n    },\n    {\n      \"name\": \"vari\"\n    },\n    {\n      \"name\": \"varomega\"\n    },\n    {\n      \"name\": \"varopeno\"\n    },\n    {\n      \"name\": \"varU\"\n    },\n    {\n      \"name\": \"varu\"\n    },\n    {\n      \"name\": \"vod\"\n    },\n    {\n      \"name\": \"voicedh\"\n    },\n    {\n      \"name\": \"yogh\"\n    },\n    {\n      \"name\": \"acarc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acarc{${1:accent}}{${2:letter}}\"\n      }\n    },\n    {\n      \"name\": \"acbar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acbar{${1:accent}}{${2:letter}}\"\n      }\n    },\n    {\n      \"name\": \"hill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hill{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"labvel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labvel{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"od\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"od{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ohill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ohill{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"rc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rc{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ssc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"syl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syl{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"td\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"td{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"uplett\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uplett{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ut{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"hideheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"overchar{${1:accent}}{${2:char}}{${3:ht-factor}}\"\n      }\n    },\n    {\n      \"name\": \"pc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pcchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcchar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"textpc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpc{${1:char}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/phonrule.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"phon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phon{${1:input}}{${2:output}}\"\n      }\n    },\n    {\n      \"name\": \"phonc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phonc{${1:input}}{${2:output}}{${3:context}}\"\n      }\n    },\n    {\n      \"name\": \"phonl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phonl{${1:input}}{${2:output}}{${3:context}}\"\n      }\n    },\n    {\n      \"name\": \"phonr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phonr{${1:input}}{${2:output}}{${3:context}}\"\n      }\n    },\n    {\n      \"name\": \"phonb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"phonb{${1:input}}{${2:output}}{${3:context}}\"\n      }\n    },\n    {\n      \"name\": \"oneof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oneof{${1:contexts}}\"\n      }\n    },\n    {\n      \"name\": \"oneof\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"oneof[${2:alignment%keyvals}]{${1:contexts}}\",\n        \"keys\": [\n          \"\\\\oneof,\\\\phonfeat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phonfeat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phonfeat{${1:features}}\"\n      }\n    },\n    {\n      \"name\": \"phonfeat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phonfeat[${2:alignment%keyvals}]{${1:features}}\",\n        \"keys\": [\n          \"\\\\oneof,\\\\phonfeat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phold\"\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"env{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envl{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envr{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envb{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"env*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"env*{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envl*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envl*{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envr*{${1:output}}{${2:env}}\"\n      }\n    },\n    {\n      \"name\": \"envb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"envb*{${1:output}}{${2:env}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\oneof,\\\\phonfeat\": [\n      \"c\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/photo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifoddpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifoddpage{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ifoddpage[${3:label}]{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifoddpagelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxbaset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxbaset{${1:LR material%text}}\"\n      }\n    },\n    {\n      \"name\": \"boxbasec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxbasec{${1:LR material%text}}\"\n      }\n    },\n    {\n      \"name\": \"boxbaseb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxbaseb{${1:LR material%text}}\"\n      }\n    },\n    {\n      \"name\": \"defaultphotoplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultphotoplacement{${1:float pos}}\"\n      }\n    },\n    {\n      \"name\": \"thephoto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listphotoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofphotos\"\n    },\n    {\n      \"name\": \"putphoto\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"putphoto{${1:label}}{${2:photographer}}{${3:photo}}{${4:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"putphoto\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"putphoto{${1:label}}{${2:photographer}}{${3:photo}}[${5:toc-caption%text}]{${4:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"putphoto\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"putphoto[${5:pos}]{${1:label}}{${2:photographer}}{${3:photo}}{${4:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"putphoto\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]{}\",\n        \"snippet\": \"putphoto[${5:pos}]{${1:label}}{${2:photographer}}{${3:photo}}[${6:toc-caption%text}]{${4:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"oecaptionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minoecaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"photographerfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Phref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Phref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"photo\"\n    },\n    {\n      \"name\": \"photo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:float pos}]\"\n      }\n    },\n    {\n      \"name\": \"photo*\"\n    },\n    {\n      \"name\": \"photo*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:float pos}]\"\n      }\n    },\n    {\n      \"name\": \"Photo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:label}}{${2:photographer}}{${3:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Photo\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"{${1:label}}{${2:photographer}}[${4:toc-caption%text}]{${3:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Photo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:pos}]{${1:label}}{${2:photographer}}{${3:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"Photo\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"[${4:pos}]{${1:label}}{${2:photographer}}[${5:toc-caption%text}]{${3:caption%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/photo#c\": [\n      \"shortlop\",\n      \"left\",\n      \"right\",\n      \"in\",\n      \"out\",\n      \"top\",\n      \"center\",\n      \"bottom\",\n      \"under\",\n      \"side\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/photo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/physconst.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"physunits\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"kMassElectron\"\n    },\n    {\n      \"name\": \"keVMassElectron\"\n    },\n    {\n      \"name\": \"kMassElectronNumeric\"\n    },\n    {\n      \"name\": \"keVMassElectronNumeric\"\n    },\n    {\n      \"name\": \"kMassProton\"\n    },\n    {\n      \"name\": \"keVMassProton\"\n    },\n    {\n      \"name\": \"kMassProtonNumeric\"\n    },\n    {\n      \"name\": \"keVMassProtonNumeric\"\n    },\n    {\n      \"name\": \"kMassHydrogen\"\n    },\n    {\n      \"name\": \"keVMassHydrogen\"\n    },\n    {\n      \"name\": \"kMassHydrogenNumeric\"\n    },\n    {\n      \"name\": \"keVMassHydrogenNumeric\"\n    },\n    {\n      \"name\": \"kMassSun\"\n    },\n    {\n      \"name\": \"kMassSunNumeric\"\n    },\n    {\n      \"name\": \"kMassEarth\"\n    },\n    {\n      \"name\": \"kMassEarthNumeric\"\n    },\n    {\n      \"name\": \"kMassJupiter\"\n    },\n    {\n      \"name\": \"kMassJupiterNumeric\"\n    },\n    {\n      \"name\": \"kMassAMU\"\n    },\n    {\n      \"name\": \"keVMassAMU\"\n    },\n    {\n      \"name\": \"kMassAMUNumeric\"\n    },\n    {\n      \"name\": \"keVMassAMUNumeric\"\n    },\n    {\n      \"name\": \"kChargeFundamental\"\n    },\n    {\n      \"name\": \"kChargeFundamentalNumeric\"\n    },\n    {\n      \"name\": \"kChargeElectron\"\n    },\n    {\n      \"name\": \"kChargeElectronNumeric\"\n    },\n    {\n      \"name\": \"kChargeProton\"\n    },\n    {\n      \"name\": \"kChargeProtonNumeric\"\n    },\n    {\n      \"name\": \"kRadiusBohr\"\n    },\n    {\n      \"name\": \"kRadiusBohrNumeric\"\n    },\n    {\n      \"name\": \"kAstronomicalUnit\"\n    },\n    {\n      \"name\": \"kAstronomicalUnitNumeric\"\n    },\n    {\n      \"name\": \"kParsec\"\n    },\n    {\n      \"name\": \"kParsec\"\n    },\n    {\n      \"name\": \"kParsecNumeric\"\n    },\n    {\n      \"name\": \"kParsecNumeric\"\n    },\n    {\n      \"name\": \"kRadiusSun\"\n    },\n    {\n      \"name\": \"kRadiusSunNumeric\"\n    },\n    {\n      \"name\": \"kRadiusEarth\"\n    },\n    {\n      \"name\": \"kRadiusEarthNumeric\"\n    },\n    {\n      \"name\": \"kRadiusJupiter\"\n    },\n    {\n      \"name\": \"kRadiusJupiterNumeric\"\n    },\n    {\n      \"name\": \"kRydberg\"\n    },\n    {\n      \"name\": \"keVRydberg\"\n    },\n    {\n      \"name\": \"kRydbergNumeric\"\n    },\n    {\n      \"name\": \"keVRydbergNumeric\"\n    },\n    {\n      \"name\": \"kLuminositySun\"\n    },\n    {\n      \"name\": \"kLuminositySunNumeric\"\n    },\n    {\n      \"name\": \"kPressureAtmosphere\"\n    },\n    {\n      \"name\": \"kPressureAtmosphereNumeric\"\n    },\n    {\n      \"name\": \"kPressureStandard\"\n    },\n    {\n      \"name\": \"kPressureStandardNumeric\"\n    },\n    {\n      \"name\": \"kSpeedLight\"\n    },\n    {\n      \"name\": \"kSpeedLightNumeric\"\n    },\n    {\n      \"name\": \"kAccelGravity\"\n    },\n    {\n      \"name\": \"kAccelGravityNumeric\"\n    },\n    {\n      \"name\": \"kCoulomb\"\n    },\n    {\n      \"name\": \"kCoulombNumeric\"\n    },\n    {\n      \"name\": \"kCoulombNumeric\"\n    },\n    {\n      \"name\": \"kVacuumPermittivity\"\n    },\n    {\n      \"name\": \"kVacuumPermittivityNumeric\"\n    },\n    {\n      \"name\": \"kVacuumPermeability\"\n    },\n    {\n      \"name\": \"kVacuumPermeabilityNumeric\"\n    },\n    {\n      \"name\": \"kVacuumImpedance\"\n    },\n    {\n      \"name\": \"kVacuumImpedanceNumeric\"\n    },\n    {\n      \"name\": \"kBoltzmann\"\n    },\n    {\n      \"name\": \"keVBoltzmann\"\n    },\n    {\n      \"name\": \"kBoltzmannNumeric\"\n    },\n    {\n      \"name\": \"keVBoltzmannNumeric\"\n    },\n    {\n      \"name\": \"kPlanck\"\n    },\n    {\n      \"name\": \"keVPlanck\"\n    },\n    {\n      \"name\": \"kPlanckNumeric\"\n    },\n    {\n      \"name\": \"keVPlanckNumeric\"\n    },\n    {\n      \"name\": \"kPlanckReduced\"\n    },\n    {\n      \"name\": \"keVPlanckReduced\"\n    },\n    {\n      \"name\": \"kPlanckReducedNumeric\"\n    },\n    {\n      \"name\": \"keVPlanckReducedNumeric\"\n    },\n    {\n      \"name\": \"kGravity\"\n    },\n    {\n      \"name\": \"kGravityNumeric\"\n    },\n    {\n      \"name\": \"kStefanBoltzmann\"\n    },\n    {\n      \"name\": \"kStefanBoltzmannNumeric\"\n    },\n    {\n      \"name\": \"kRadiation\"\n    },\n    {\n      \"name\": \"kRadiationNumeric\"\n    },\n    {\n      \"name\": \"kFineStructure\"\n    },\n    {\n      \"name\": \"kFineStructureNumeric\"\n    },\n    {\n      \"name\": \"kFineStructureReciprocal\"\n    },\n    {\n      \"name\": \"kFineStructureReciprocalNumeric\"\n    },\n    {\n      \"name\": \"kAvogadro\"\n    },\n    {\n      \"name\": \"kAvogadroNumeric\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/physics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Bqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"Im\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Im{${1:expression}}\"\n      },\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"PV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PV{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"Pmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"Pr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Pr(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"Probability\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Res\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Res[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"Re\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Re{${1:expression}}\"\n      },\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"Residue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tr\"\n    },\n    {\n      \"name\": \"Trace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"absolutevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"absolutevalue{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"acomm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acomm*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acomm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acomm{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acommutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acommutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"acos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"acosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"acotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acsc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"acsc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"acsc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"acsc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"admat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"admat{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"anticommutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anticommutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"antidiagonalmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antidiagonalmatrix{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arccsc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arccsc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arccsc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arccsc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arcsec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arcsec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arcsin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arcsin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arcsine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"arctan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"arctan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"arctangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"argclose\"\n    },\n    {\n      \"name\": \"argclose*\"\n    },\n    {\n      \"name\": \"argopen\"\n    },\n    {\n      \"name\": \"argopen*\"\n    },\n    {\n      \"name\": \"asec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"asec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"asec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"asec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"asecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"asin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"asin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"asin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"asine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"atan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"atan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"atan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"atangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"bqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bra*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"braces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"braces{${1:ldelim}}{${2:rdelim}}{${3:expression}}\"\n      }\n    },\n    {\n      \"name\": \"braket*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braket{${1:expression1}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"colcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comm*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"comm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comm{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"commutator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"commutator{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cos(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cos[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cosh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cosh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"cot(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"cot[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coth\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"coth(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"coth\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"coth[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"cp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"crossproduct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"csc(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"csc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"csc[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"csch\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"csch(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"csch\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"csch[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"curl(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"curl*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"curl*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"curl*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"curl[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"curl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curl{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"dd(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dd[${2:power}]{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dd{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"derivative\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"derivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"det\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"det(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"determinant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagonalmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagonalmatrix{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"differential\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"div(${1:expression})\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"div*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"div*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"div*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"div*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"div[${1:expression}]\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"div\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"div{${1:expression}}\"\n      },\n      \"detail\": \"÷\",\n      \"doc\": \"Divide sign\"\n    },\n    {\n      \"name\": \"divergence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divergence\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"divergence{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"divisionsymbol\"\n    },\n    {\n      \"name\": \"dmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dmat{${1:matrix element 1,matrix element 2,...}}\"\n      }\n    },\n    {\n      \"name\": \"dotproduct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dv*{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dv[${3:power}]{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"dv{${1:expression1}}(${2:expression2})\"\n      }\n    },\n    {\n      \"name\": \"dv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dyad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dyad*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"dyad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dyad{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"dyad\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dyad{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"erf\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"erf(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"ev**\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev**{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ev*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ev{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ev\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ev{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"(expression|_{}^{}\",\n        \"snippet\": \"eval(expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(expression|_{}^{}\",\n        \"snippet\": \"eval*(expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[expression|_{}^{}\",\n        \"snippet\": \"eval*[expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"eval*{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[expression|_{}^{}\",\n        \"snippet\": \"eval[expression|_{${1:limit1}}^{${2:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"eval{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"evaluated\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}_{}^{}\",\n        \"snippet\": \"evaluated{${1:expression}}_{${2:limit1}}^{${3:limit2}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"exp(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"expectationvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expectationvalue{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"exponential\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expval*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"expval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expval{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"expval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"expval{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"fbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fbraces{${1:ldelim}}{${2:rdelim}}{${3:symbol}}{${4:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv*{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fdv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"fdv{${1:expression}}(${2:function})\"\n      }\n    },\n    {\n      \"name\": \"fdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fdv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"flatfrac\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"flatfrac{${1:expression1}}(${2:expression2})\"\n      }\n    },\n    {\n      \"name\": \"functionalderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"functionalderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"grad(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"grad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"grad*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"grad*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grad*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grad[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grad{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"gradient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradient\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gradient{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"homework\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcosecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcosine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypcotangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypsecant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypsine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyptangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identitymatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"identitymatrix{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"imaginary\"\n    },\n    {\n      \"name\": \"imat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imat{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"innerproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"innerproduct{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ip*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ip*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ip{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ket*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ketbra{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"laplacian(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"laplacian*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"laplacian*(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"laplacian*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"laplacian*[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"laplacian[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"laplacian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laplacian{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ln\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ln(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"log\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"log(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"logarithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lparen\",\n      \"unusual\": true,\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"matrixdeterminant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixdeterminant{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixel{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixelement*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixelement*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matrixelement{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"matrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"matrixquantity(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"matrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixquantity{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"matrixtoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mdet{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"mel**\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel**{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mel*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel*{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mel{${1:expression1}}{${2:expression2}}{${3:expression3}}\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\admat{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\antidiagonalmatrix{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\diagonalmatrix{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\dmat[${2:matrix element}]{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\dmat{${1:matrix element 1,matrix element 2,matrix element 3,...}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\identitymatrix{${1:number}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\imat{${1:number}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\paulimatrix{${1:n}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\pmat{${1:n}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmat*{${1:matrix element star for element indices }}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmat{${1:matrix element}}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\xmatrix{${1:matrix element}}{${2:n}}{${3:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\zeromatrix{${1:n}}{${2:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(\\\\zmat{${1:n}}{${2:m}})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"mqty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mqty*(${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4})\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mqty[${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}]\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"mqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"mqty|${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}|\"\n      }\n    },\n    {\n      \"name\": \"naturallogarithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"op*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"op*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"op{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"opbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"opbraces{${1:operator}}(${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"order*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"ordersymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outerproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"outerproduct{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"partialderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partialderivative{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"paulimatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paulimatrix{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"paulixmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pauliymatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paulizmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pb*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pb*{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pb{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pderivative\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pderivative{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv*{${1:f}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdv[${3:power}]{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pdv{${1:f}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"pdv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdv{${1:function}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmat{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"pmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"poissonbracket\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poissonbracket{${1:expression1}}{${2:expression2}}\"\n      }\n    },\n    {\n      \"name\": \"pqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"principalvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"principalvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"principalvalue{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"pv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pv{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"qall\"\n    },\n    {\n      \"name\": \"qall*\"\n    },\n    {\n      \"name\": \"qand\"\n    },\n    {\n      \"name\": \"qand*\"\n    },\n    {\n      \"name\": \"qas\"\n    },\n    {\n      \"name\": \"qas*\"\n    },\n    {\n      \"name\": \"qassume\"\n    },\n    {\n      \"name\": \"qassume*\"\n    },\n    {\n      \"name\": \"qc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qc{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qcc\"\n    },\n    {\n      \"name\": \"qcc*\"\n    },\n    {\n      \"name\": \"qcomma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qcomma{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qelse\"\n    },\n    {\n      \"name\": \"qelse*\"\n    },\n    {\n      \"name\": \"qeven\"\n    },\n    {\n      \"name\": \"qeven*\"\n    },\n    {\n      \"name\": \"qfor\"\n    },\n    {\n      \"name\": \"qfor*\"\n    },\n    {\n      \"name\": \"qgiven\"\n    },\n    {\n      \"name\": \"qgiven*\"\n    },\n    {\n      \"name\": \"qif\"\n    },\n    {\n      \"name\": \"qif*\"\n    },\n    {\n      \"name\": \"qin\"\n    },\n    {\n      \"name\": \"qin*\"\n    },\n    {\n      \"name\": \"qinteger\"\n    },\n    {\n      \"name\": \"qinteger*\"\n    },\n    {\n      \"name\": \"qlet\"\n    },\n    {\n      \"name\": \"qlet*\"\n    },\n    {\n      \"name\": \"qodd\"\n    },\n    {\n      \"name\": \"qodd*\"\n    },\n    {\n      \"name\": \"qor\"\n    },\n    {\n      \"name\": \"qor*\"\n    },\n    {\n      \"name\": \"qotherwise\"\n    },\n    {\n      \"name\": \"qotherwise*\"\n    },\n    {\n      \"name\": \"qq*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq*{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:word or phrase}}\"\n      }\n    },\n    {\n      \"name\": \"qqtext*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qqtext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qqtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qqtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qsince\"\n    },\n    {\n      \"name\": \"qsince*\"\n    },\n    {\n      \"name\": \"qthen\"\n    },\n    {\n      \"name\": \"qthen*\"\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"qty(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qty[${1:expression}]\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"qty|${1:expression}|\"\n      }\n    },\n    {\n      \"name\": \"quantity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\"\n    },\n    {\n      \"name\": \"qunless*\"\n    },\n    {\n      \"name\": \"qusing\"\n    },\n    {\n      \"name\": \"qusing*\"\n    },\n    {\n      \"name\": \"rank\"\n    },\n    {\n      \"name\": \"real\"\n    },\n    {\n      \"name\": \"rowcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rparen\",\n      \"unusual\": true,\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"sbmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"sec\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sec(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sec\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sec[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"secant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sech\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sech(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sech\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sech[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sin(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sin[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"sine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sinh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"sinh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"smallmatrixdeterminant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallmatrixdeterminant{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smallmatrixquantity\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smallmatrixquantity{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smdet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smdet{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element}}\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"smqty({${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}})\"\n      }\n    },\n    {\n      \"name\": \"smqty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"smqty*({${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}})\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smqty[${2:{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}}]\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"smqty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"smqty|${2:{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}}|\"\n      }\n    },\n    {\n      \"name\": \"sPmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sPmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"spmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"svmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tan(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tan[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"tangent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tanh(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tanh[${1:power}](${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"tr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tr(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"trace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trigbraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"trigbraces{${1:operator}}(${2:expression})\"\n      }\n    },\n    {\n      \"name\": \"trigopt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"va*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"va*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"va\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"va{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"var(${1:expression})\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"var{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"varE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"variation{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vb*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vb{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vdot\"\n    },\n    {\n      \"name\": \"vectorarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorarrow{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vectorbold\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorbold{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vectorunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorunit{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vev\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vev{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vmqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vmqty{${1:matrix element 1 & matrix element 2  \\\\\\\\ matrix element 3 & matrix element 4}}\"\n      }\n    },\n    {\n      \"name\": \"vnabla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vqty{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vu*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vu*{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"vu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vu{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"xmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmat{${1:matrix element}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"xmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmatrix{${1:matrix element}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"zeromatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zeromatrix{${1:n}}{${2:m}}\"\n      }\n    },\n    {\n      \"name\": \"zmat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zmat{${1:n}}{${2:m}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/physics#c\": [\n      \"trig\",\n      \"notrig\",\n      \"uprightdiff\",\n      \"italicdiff\",\n      \"bolddel\",\n      \"arrowdel\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/physics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/physics2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usephysicsmodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usephysicsmodule{${1:modules%keyvals}}\",\n        \"keys\": [\n          \"\\\\usephysicsmodule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usephysicsmodule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usephysicsmodule[${2:options}]{${1:modules%keyvals}}\",\n        \"keys\": [\n          \"\\\\usephysicsmodule\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"aab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vab*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Vab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vab[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ketbra\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"ketbra|${1:subformula1>optional<subformula2}|\"\n      }\n    },\n    {\n      \"name\": \"ketbra*\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"ketbra*|${1:subformula1>optional<subformula2}|\"\n      }\n    },\n    {\n      \"name\": \"diagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"diagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"diagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"bdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"bdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Bdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Bdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"vdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Vdiagmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vdiagmat{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Vdiagmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vdiagmat[${2:empty=entry}]{${1:entry1,entry2,...}}\"\n      }\n    },\n    {\n      \"name\": \"doublecross\"\n    },\n    {\n      \"name\": \"doubledot\"\n    },\n    {\n      \"name\": \"xmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"xmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"xmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"pxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"bxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Bxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"Bxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Bxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"vxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"vxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vxmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Vxmat{${1:entry}}{${2:rows shown}}{${3:cols shown}}\"\n      }\n    },\n    {\n      \"name\": \"Vxmat\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Vxmat[${4:options%keyvals}]{${1:entry}}{${2:rows shown}}{${3:cols shown}}\",\n        \"keys\": [\n          \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abs[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"norm[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"peval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"peval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"peval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beval{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beval*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"beval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"beval[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"order*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"order\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"order[${2:size}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"bm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"grad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"laplacian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Res\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"res\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qcc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qcc*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qthen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qelse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qotherwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qgive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qusing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qunless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qassume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qsince\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qlet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qfor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qeven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usephysicsmodule\": [\n      \"ab.braket\",\n      \"ab.legacy\",\n      \"ab\",\n      \"bm-um.legacy\",\n      \"braket\",\n      \"diagmat\",\n      \"doubleprod\",\n      \"nabla.legacy\",\n      \"op.legacy\",\n      \"qtext.legacy\",\n      \"xmat\"\n    ],\n    \"\\\\xmat,\\\\pxmat,\\\\bxmat,\\\\Bxmat,\\\\vxmat,\\\\Vxmat\": [\n      \"showtop=${1:rows}\",\n      \"showleft=${1:columns}\",\n      \"format=${1:format code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/physunits.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"V[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Volt\"\n    },\n    {\n      \"name\": \"Volt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Volt[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Coulomb\"\n    },\n    {\n      \"name\": \"Coulomb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Coulomb[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"esu\"\n    },\n    {\n      \"name\": \"Ohm\"\n    },\n    {\n      \"name\": \"Ohm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ohm[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Amp\"\n    },\n    {\n      \"name\": \"Amp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Amp[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Farad\"\n    },\n    {\n      \"name\": \"Farad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Farad[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Tesla\"\n    },\n    {\n      \"name\": \"Tesla\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tesla[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Gauss\"\n    },\n    {\n      \"name\": \"Gauss\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Gauss[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Henry\"\n    },\n    {\n      \"name\": \"Henry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Henry[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"eV\"\n    },\n    {\n      \"name\": \"eV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eV[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"keV\"\n    },\n    {\n      \"name\": \"MeV\"\n    },\n    {\n      \"name\": \"J\"\n    },\n    {\n      \"name\": \"J\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"J[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Joule\"\n    },\n    {\n      \"name\": \"Joule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Joule[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"erg\"\n    },\n    {\n      \"name\": \"kcal\"\n    },\n    {\n      \"name\": \"Cal\"\n    },\n    {\n      \"name\": \"calorie\"\n    },\n    {\n      \"name\": \"calorie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"calorie[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"BTU\"\n    },\n    {\n      \"name\": \"tnt\"\n    },\n    {\n      \"name\": \"Watt\"\n    },\n    {\n      \"name\": \"Watt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Watt[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"hpi\"\n    },\n    {\n      \"name\": \"hpm\"\n    },\n    {\n      \"name\": \"hp\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"meter[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"m\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"m[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"km\"\n    },\n    {\n      \"name\": \"au\"\n    },\n    {\n      \"name\": \"pc\"\n    },\n    {\n      \"name\": \"pc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pc[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"ly\"\n    },\n    {\n      \"name\": \"ly\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ly[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"cm\"\n    },\n    {\n      \"name\": \"nm\"\n    },\n    {\n      \"name\": \"ft\"\n    },\n    {\n      \"name\": \"inch\"\n    },\n    {\n      \"name\": \"mi\"\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"s\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"s[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Sec\"\n    },\n    {\n      \"name\": \"Sec\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sec[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Min\"\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"y\"\n    },\n    {\n      \"name\": \"y\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"y[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Day\"\n    },\n    {\n      \"name\": \"gm\"\n    },\n    {\n      \"name\": \"gm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gm[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"kg\"\n    },\n    {\n      \"name\": \"lb\"\n    },\n    {\n      \"name\": \"amu\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"N\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"N[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Newton\"\n    },\n    {\n      \"name\": \"Newton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Newton[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"dyne\"\n    },\n    {\n      \"name\": \"dyne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dyne[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"lbf\"\n    },\n    {\n      \"name\": \"kmps\"\n    },\n    {\n      \"name\": \"kmph\"\n    },\n    {\n      \"name\": \"mps\"\n    },\n    {\n      \"name\": \"mps\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mps[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"miph\"\n    },\n    {\n      \"name\": \"kts\"\n    },\n    {\n      \"name\": \"mpss\"\n    },\n    {\n      \"name\": \"mpss\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mpss[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"gacc\"\n    },\n    {\n      \"name\": \"ftpss\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"K\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"K[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Kelvin\"\n    },\n    {\n      \"name\": \"Kelvin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Kelvin[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Celsius\"\n    },\n    {\n      \"name\": \"Celcius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centigrade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rankine\"\n    },\n    {\n      \"name\": \"Fahrenheit\"\n    },\n    {\n      \"name\": \"rpm\"\n    },\n    {\n      \"name\": \"Hz\"\n    },\n    {\n      \"name\": \"Hz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hz[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"barP\"\n    },\n    {\n      \"name\": \"barP\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"barP[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"atm\"\n    },\n    {\n      \"name\": \"Pa\"\n    },\n    {\n      \"name\": \"Pa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pa[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"inHg\"\n    },\n    {\n      \"name\": \"lbsi\"\n    },\n    {\n      \"name\": \"lbsf\"\n    },\n    {\n      \"name\": \"Ba\"\n    },\n    {\n      \"name\": \"Ba\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ba[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"Torr\"\n    },\n    {\n      \"name\": \"Torr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Torr[${1:prefix}]\"\n      }\n    },\n    {\n      \"name\": \"mol\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/piano.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xargs\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/picinpar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"computeilg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"createparshapespec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framepic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framepic{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"prune\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prune{${1:box1}}{${2:box2}}\"\n      }\n    },\n    {\n      \"name\": \"wframepic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wframepic{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"wincaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wincaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"winrefstepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"winrefstepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"winstepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"winstepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"wstrut\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"window\"\n    },\n    {\n      \"name\": \"window\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines,pos,graphics,caption%text}]\"\n      }\n    },\n    {\n      \"name\": \"figwindow\"\n    },\n    {\n      \"name\": \"figwindow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines,pos,graphics,caption%text}]\"\n      }\n    },\n    {\n      \"name\": \"tabwindow\"\n    },\n    {\n      \"name\": \"tabwindow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:lines,pos,graphics,caption%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/picins.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parpic{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"parpic(${2:width},${3:height}){${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"parpic(${3:width},${4:height})[${2:opts}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"()[][]{}\",\n        \"snippet\": \"parpic(${4:width},${5:height})[${2:opts}][${3:pos}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"parpic(${2:width},${3:height})(${4:xoffset},${5:yoffset}){${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"parpic(${3:width},${4:height})(${5:xoffset},${6:yoffset})[${2:opts}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"parpic\",\n      \"arg\": {\n        \"format\": \"()()[][]{}\",\n        \"snippet\": \"parpic(${4:width},${5:height})(${6:xoffset},${7:yoffset})[${2:opts}][${3:pos}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hpic{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"hpic(${2:width},${3:height}){${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"hpic(${3:width},${4:height})[${2:opts}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"()[][]{}\",\n        \"snippet\": \"hpic(${4:width},${5:height})[${2:opts}][${3:pos}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"hpic(${2:width},${3:height})(${4:xoffset},${5:yoffset}){${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"hpic(${3:width},${4:height})(${5:xoffset},${6:yoffset})[${2:opts}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"hpic\",\n      \"arg\": {\n        \"format\": \"()()[][]{}\",\n        \"snippet\": \"hpic(${4:width},${5:height})(${6:xoffset},${7:yoffset})[${2:opts}][${3:pos}]{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"picskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"picskip{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"pichskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pichskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"shadowthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowthickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"dashlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"boxlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"piccaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piccaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"piccaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"piccaption[${2:short text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newcaption[${2:short text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"piccaptionoutside\"\n    },\n    {\n      \"name\": \"piccaptioninside\"\n    },\n    {\n      \"name\": \"piccaptionside\"\n    },\n    {\n      \"name\": \"piccaptiontopside\"\n    },\n    {\n      \"name\": \"picchangemode\"\n    },\n    {\n      \"name\": \"nopicchangemode\"\n    },\n    {\n      \"name\": \"ptoti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptotii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rahmen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Rahmen(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Schatten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Schatten(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Oval(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Strich\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Strich(${2:x},${3:y}){${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Kasten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Kasten(${2:x},${3:y}){${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frameenv\"\n    },\n    {\n      \"name\": \"frameenv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"dashenv\"\n    },\n    {\n      \"name\": \"dashenv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"ovalenv\"\n    },\n    {\n      \"name\": \"ovalenv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"shadowenv\"\n    },\n    {\n      \"name\": \"shadowenv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pict2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"trig\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"line\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"line(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"vector\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"vector(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"circle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"circle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circle*{${1:diameter}}\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"oval(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"oval[${1:radius}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"oval(${2:x},${3:y})[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"oval\",\n      \"arg\": {\n        \"format\": \"[]()[]\",\n        \"snippet\": \"oval[${1:radius}](${3:x},${4:y})[${2:pos}]\"\n      }\n    },\n    {\n      \"name\": \"maxovalrad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bezier\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"bezier{${1:n}}(${2:ax},${3:ay})(${4:bx},${5:by})(${6:cx},${7:cy})\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"qbezier(${1:ax},${2:ay})(${3:bx},${4:by})(${5:cx},${6:cy})\"\n      }\n    },\n    {\n      \"name\": \"qbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"qbezier[${1:n}](${2:ax},${3:ay})(${4:bx},${5:by})(${6:cx},${7:cy})\"\n      }\n    },\n    {\n      \"name\": \"cbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"cbezier(${1:ax},${2:ay})(${3:bx},${4:by})(${5:cx},${6:cy})(${7:dx},${8:dy})\"\n      }\n    },\n    {\n      \"name\": \"cbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"cbezier[${1:n}](${2:ax},${3:ay})(${4:bx},${5:by})(${6:cx},${7:cy})(${8:dx},${9:dy})\"\n      }\n    },\n    {\n      \"name\": \"qbeziermax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arc{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc[${2:angle1,angle2}]{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"arc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arc*{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"arc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arc*[${2:angle1,angle2}]{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"Line\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Line(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"Vector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Vector(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"moveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"moveto(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"lineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"lineto(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"curveto\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"curveto(${1:x2},${2:y2})(${3:x3},${4:y3})(${5:x4},${6:y4})\"\n      }\n    },\n    {\n      \"name\": \"circlearc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"circlearc{${1:x}}{${2:y}}{${3:radius}}{${4:angle1}}{${5:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"circlearc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"circlearc[${6:n}]{${1:x}}{${2:y}}{${3:radius}}{${4:angle1}}{${5:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"closepath\"\n    },\n    {\n      \"name\": \"strokepath\"\n    },\n    {\n      \"name\": \"fillpath\"\n    },\n    {\n      \"name\": \"buttcap\"\n    },\n    {\n      \"name\": \"roundcap\"\n    },\n    {\n      \"name\": \"squarecap\"\n    },\n    {\n      \"name\": \"miterjoin\"\n    },\n    {\n      \"name\": \"roundjoin\"\n    },\n    {\n      \"name\": \"beveljoin\"\n    },\n    {\n      \"name\": \"thicklines\"\n    },\n    {\n      \"name\": \"thinlines\"\n    },\n    {\n      \"name\": \"ltxarrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstarrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OriginalPictureCmds\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pict2e#c\": [\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctex32\",\n      \"vtex\",\n      \"original\",\n      \"ltxarrows\",\n      \"pstarrows\",\n      \"debug\",\n      \"hide\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pict2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/picture.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\",\n      \"if\": \"calc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/picture#c\": [\n      \"plain\",\n      \"etex\",\n      \"calc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/picture#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pifont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ding{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingfill{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pifont{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"Pisymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pisymbol{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pifill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pifill{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Piline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Piline{${1:family}}{${2:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dinglist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"dingautolist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Pilist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"Piautolist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pigpen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pigpenfont\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pinlabel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endlabellist\"\n    },\n    {\n      \"name\": \"hair\"\n    },\n    {\n      \"name\": \"hyperactivelabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labellist\"\n    },\n    {\n      \"name\": \"psfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psfig{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\psfig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reallyincludegraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reallyincludegraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\reallyincludegraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"reallyincludegraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reallyincludegraphics{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psfig\": [\n      \"file=${1:imagefile}\",\n      \"height=\",\n      \"width=\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"rheight=\",\n      \"rwidth=\",\n      \"clip=\",\n      \"scale=${1:factor}\",\n      \"proportional=\"\n    ],\n    \"\\\\reallyincludegraphics\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pinoutikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"upquote\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"forarray\"\n    },\n    {\n      \"name\": \"arrayjob\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PDIP\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"PDIP(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"pctPDIP\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pctPDIP(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"TQFP\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"TQFP(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"pctTQFP\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pctTQFP(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"PLCC\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"PLCC(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"pctPLCC\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pctPLCC(${2:pincount}){${1:pinarray}}\"\n      }\n    },\n    {\n      \"name\": \"FormatPinLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatPinLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CASE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"CASE(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"PIN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"PIN[${3:arg1}](${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"GENFOUREDGE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"GENFOUREDGE(${4:arg1}){${1:arg2}}{${2:arg3}}{${3:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pardefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neverindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autoindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pinyin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PYactivate\"\n    },\n    {\n      \"name\": \"PYdeactivate\"\n    },\n    {\n      \"name\": \"a\"\n    },\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"ai\"\n    },\n    {\n      \"name\": \"Ai\"\n    },\n    {\n      \"name\": \"an\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"ang\"\n    },\n    {\n      \"name\": \"Ang\"\n    },\n    {\n      \"name\": \"ao\"\n    },\n    {\n      \"name\": \"Ao\"\n    },\n    {\n      \"name\": \"ba\"\n    },\n    {\n      \"name\": \"Ba\"\n    },\n    {\n      \"name\": \"bai\"\n    },\n    {\n      \"name\": \"Bai\"\n    },\n    {\n      \"name\": \"ban\"\n    },\n    {\n      \"name\": \"Ban\"\n    },\n    {\n      \"name\": \"bang\"\n    },\n    {\n      \"name\": \"Bang\"\n    },\n    {\n      \"name\": \"bao\"\n    },\n    {\n      \"name\": \"Bao\"\n    },\n    {\n      \"name\": \"bei\"\n    },\n    {\n      \"name\": \"Bei\"\n    },\n    {\n      \"name\": \"ben\"\n    },\n    {\n      \"name\": \"Ben\"\n    },\n    {\n      \"name\": \"beng\"\n    },\n    {\n      \"name\": \"Beng\"\n    },\n    {\n      \"name\": \"bi\"\n    },\n    {\n      \"name\": \"Bi\"\n    },\n    {\n      \"name\": \"bian\"\n    },\n    {\n      \"name\": \"Bian\"\n    },\n    {\n      \"name\": \"biao\"\n    },\n    {\n      \"name\": \"Biao\"\n    },\n    {\n      \"name\": \"bie\"\n    },\n    {\n      \"name\": \"Bie\"\n    },\n    {\n      \"name\": \"bin\"\n    },\n    {\n      \"name\": \"Bin\"\n    },\n    {\n      \"name\": \"bing\"\n    },\n    {\n      \"name\": \"Bing\"\n    },\n    {\n      \"name\": \"bo\"\n    },\n    {\n      \"name\": \"Bo\"\n    },\n    {\n      \"name\": \"bu\"\n    },\n    {\n      \"name\": \"Bu\"\n    },\n    {\n      \"name\": \"ca\"\n    },\n    {\n      \"name\": \"Ca\"\n    },\n    {\n      \"name\": \"cai\"\n    },\n    {\n      \"name\": \"Cai\"\n    },\n    {\n      \"name\": \"can\"\n    },\n    {\n      \"name\": \"Can\"\n    },\n    {\n      \"name\": \"cang\"\n    },\n    {\n      \"name\": \"Cang\"\n    },\n    {\n      \"name\": \"cao\"\n    },\n    {\n      \"name\": \"Cao\"\n    },\n    {\n      \"name\": \"ce\"\n    },\n    {\n      \"name\": \"Ce\"\n    },\n    {\n      \"name\": \"cen\"\n    },\n    {\n      \"name\": \"Cen\"\n    },\n    {\n      \"name\": \"ceng\"\n    },\n    {\n      \"name\": \"Ceng\"\n    },\n    {\n      \"name\": \"cha\"\n    },\n    {\n      \"name\": \"Cha\"\n    },\n    {\n      \"name\": \"chai\"\n    },\n    {\n      \"name\": \"Chai\"\n    },\n    {\n      \"name\": \"chan\"\n    },\n    {\n      \"name\": \"Chan\"\n    },\n    {\n      \"name\": \"chang\"\n    },\n    {\n      \"name\": \"Chang\"\n    },\n    {\n      \"name\": \"chao\"\n    },\n    {\n      \"name\": \"Chao\"\n    },\n    {\n      \"name\": \"che\"\n    },\n    {\n      \"name\": \"Che\"\n    },\n    {\n      \"name\": \"chen\"\n    },\n    {\n      \"name\": \"Chen\"\n    },\n    {\n      \"name\": \"cheng\"\n    },\n    {\n      \"name\": \"Cheng\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"chong\"\n    },\n    {\n      \"name\": \"Chong\"\n    },\n    {\n      \"name\": \"chou\"\n    },\n    {\n      \"name\": \"Chou\"\n    },\n    {\n      \"name\": \"chu\"\n    },\n    {\n      \"name\": \"Chu\"\n    },\n    {\n      \"name\": \"chua\"\n    },\n    {\n      \"name\": \"chuai\"\n    },\n    {\n      \"name\": \"Chuai\"\n    },\n    {\n      \"name\": \"chuan\"\n    },\n    {\n      \"name\": \"Chuan\"\n    },\n    {\n      \"name\": \"chuang\"\n    },\n    {\n      \"name\": \"Chuang\"\n    },\n    {\n      \"name\": \"chui\"\n    },\n    {\n      \"name\": \"Chui\"\n    },\n    {\n      \"name\": \"chun\"\n    },\n    {\n      \"name\": \"Chun\"\n    },\n    {\n      \"name\": \"chuo\"\n    },\n    {\n      \"name\": \"Chuo\"\n    },\n    {\n      \"name\": \"ci\"\n    },\n    {\n      \"name\": \"Ci\"\n    },\n    {\n      \"name\": \"cong\",\n      \"detail\": \"≅\",\n      \"doc\": \"Congruent with\"\n    },\n    {\n      \"name\": \"Cong\"\n    },\n    {\n      \"name\": \"cou\"\n    },\n    {\n      \"name\": \"Cou\"\n    },\n    {\n      \"name\": \"cu\"\n    },\n    {\n      \"name\": \"Cu\"\n    },\n    {\n      \"name\": \"cuan\"\n    },\n    {\n      \"name\": \"Cuan\"\n    },\n    {\n      \"name\": \"cui\"\n    },\n    {\n      \"name\": \"Cui\"\n    },\n    {\n      \"name\": \"cun\"\n    },\n    {\n      \"name\": \"Cun\"\n    },\n    {\n      \"name\": \"cuo\"\n    },\n    {\n      \"name\": \"Cuo\"\n    },\n    {\n      \"name\": \"da\"\n    },\n    {\n      \"name\": \"Da\"\n    },\n    {\n      \"name\": \"dai\"\n    },\n    {\n      \"name\": \"Dai\"\n    },\n    {\n      \"name\": \"dan\"\n    },\n    {\n      \"name\": \"Dan\"\n    },\n    {\n      \"name\": \"dang\"\n    },\n    {\n      \"name\": \"Dang\"\n    },\n    {\n      \"name\": \"dao\"\n    },\n    {\n      \"name\": \"Dao\"\n    },\n    {\n      \"name\": \"de\"\n    },\n    {\n      \"name\": \"De\"\n    },\n    {\n      \"name\": \"dei\"\n    },\n    {\n      \"name\": \"Dei\"\n    },\n    {\n      \"name\": \"den\"\n    },\n    {\n      \"name\": \"deng\"\n    },\n    {\n      \"name\": \"Deng\"\n    },\n    {\n      \"name\": \"di\"\n    },\n    {\n      \"name\": \"Di\"\n    },\n    {\n      \"name\": \"dian\"\n    },\n    {\n      \"name\": \"Dian\"\n    },\n    {\n      \"name\": \"diao\"\n    },\n    {\n      \"name\": \"Diao\"\n    },\n    {\n      \"name\": \"die\"\n    },\n    {\n      \"name\": \"Die\"\n    },\n    {\n      \"name\": \"ding\"\n    },\n    {\n      \"name\": \"Ding\"\n    },\n    {\n      \"name\": \"diu\"\n    },\n    {\n      \"name\": \"Diu\"\n    },\n    {\n      \"name\": \"dong\"\n    },\n    {\n      \"name\": \"Dong\"\n    },\n    {\n      \"name\": \"dou\"\n    },\n    {\n      \"name\": \"Dou\"\n    },\n    {\n      \"name\": \"du\"\n    },\n    {\n      \"name\": \"Du\"\n    },\n    {\n      \"name\": \"duan\"\n    },\n    {\n      \"name\": \"Duan\"\n    },\n    {\n      \"name\": \"dui\"\n    },\n    {\n      \"name\": \"Dui\"\n    },\n    {\n      \"name\": \"dun\"\n    },\n    {\n      \"name\": \"Dun\"\n    },\n    {\n      \"name\": \"duo\"\n    },\n    {\n      \"name\": \"Duo\"\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"ei\"\n    },\n    {\n      \"name\": \"Ei\"\n    },\n    {\n      \"name\": \"en\"\n    },\n    {\n      \"name\": \"En\"\n    },\n    {\n      \"name\": \"eng\"\n    },\n    {\n      \"name\": \"Eng\"\n    },\n    {\n      \"name\": \"er\"\n    },\n    {\n      \"name\": \"Er\"\n    },\n    {\n      \"name\": \"fa\"\n    },\n    {\n      \"name\": \"Fa\"\n    },\n    {\n      \"name\": \"fan\"\n    },\n    {\n      \"name\": \"Fan\"\n    },\n    {\n      \"name\": \"fang\"\n    },\n    {\n      \"name\": \"Fang\"\n    },\n    {\n      \"name\": \"fei\"\n    },\n    {\n      \"name\": \"Fei\"\n    },\n    {\n      \"name\": \"fen\"\n    },\n    {\n      \"name\": \"Fen\"\n    },\n    {\n      \"name\": \"feng\"\n    },\n    {\n      \"name\": \"Feng\"\n    },\n    {\n      \"name\": \"fiao\"\n    },\n    {\n      \"name\": \"Fiao\"\n    },\n    {\n      \"name\": \"fo\"\n    },\n    {\n      \"name\": \"Fo\"\n    },\n    {\n      \"name\": \"fou\"\n    },\n    {\n      \"name\": \"Fou\"\n    },\n    {\n      \"name\": \"fu\"\n    },\n    {\n      \"name\": \"Fu\"\n    },\n    {\n      \"name\": \"ga\"\n    },\n    {\n      \"name\": \"Ga\"\n    },\n    {\n      \"name\": \"gai\"\n    },\n    {\n      \"name\": \"Gai\"\n    },\n    {\n      \"name\": \"gan\"\n    },\n    {\n      \"name\": \"Gan\"\n    },\n    {\n      \"name\": \"gang\"\n    },\n    {\n      \"name\": \"Gang\"\n    },\n    {\n      \"name\": \"gao\"\n    },\n    {\n      \"name\": \"Gao\"\n    },\n    {\n      \"name\": \"ge\"\n    },\n    {\n      \"name\": \"Ge\"\n    },\n    {\n      \"name\": \"gei\"\n    },\n    {\n      \"name\": \"Gei\"\n    },\n    {\n      \"name\": \"gen\"\n    },\n    {\n      \"name\": \"Gen\"\n    },\n    {\n      \"name\": \"geng\"\n    },\n    {\n      \"name\": \"Geng\"\n    },\n    {\n      \"name\": \"gong\"\n    },\n    {\n      \"name\": \"Gong\"\n    },\n    {\n      \"name\": \"gou\"\n    },\n    {\n      \"name\": \"Gou\"\n    },\n    {\n      \"name\": \"gu\"\n    },\n    {\n      \"name\": \"Gu\"\n    },\n    {\n      \"name\": \"gua\"\n    },\n    {\n      \"name\": \"Gua\"\n    },\n    {\n      \"name\": \"guai\"\n    },\n    {\n      \"name\": \"Guai\"\n    },\n    {\n      \"name\": \"guan\"\n    },\n    {\n      \"name\": \"Guan\"\n    },\n    {\n      \"name\": \"guang\"\n    },\n    {\n      \"name\": \"Guang\"\n    },\n    {\n      \"name\": \"gui\"\n    },\n    {\n      \"name\": \"Gui\"\n    },\n    {\n      \"name\": \"gun\"\n    },\n    {\n      \"name\": \"Gun\"\n    },\n    {\n      \"name\": \"guo\"\n    },\n    {\n      \"name\": \"Guo\"\n    },\n    {\n      \"name\": \"ha\"\n    },\n    {\n      \"name\": \"Ha\"\n    },\n    {\n      \"name\": \"hai\"\n    },\n    {\n      \"name\": \"Hai\"\n    },\n    {\n      \"name\": \"han\"\n    },\n    {\n      \"name\": \"Han\"\n    },\n    {\n      \"name\": \"hang\"\n    },\n    {\n      \"name\": \"Hang\"\n    },\n    {\n      \"name\": \"hao\"\n    },\n    {\n      \"name\": \"Hao\"\n    },\n    {\n      \"name\": \"he\"\n    },\n    {\n      \"name\": \"He\"\n    },\n    {\n      \"name\": \"hei\"\n    },\n    {\n      \"name\": \"Hei\"\n    },\n    {\n      \"name\": \"hen\"\n    },\n    {\n      \"name\": \"Hen\"\n    },\n    {\n      \"name\": \"heng\"\n    },\n    {\n      \"name\": \"Heng\"\n    },\n    {\n      \"name\": \"hong\"\n    },\n    {\n      \"name\": \"Hong\"\n    },\n    {\n      \"name\": \"hou\"\n    },\n    {\n      \"name\": \"Hou\"\n    },\n    {\n      \"name\": \"hu\"\n    },\n    {\n      \"name\": \"Hu\"\n    },\n    {\n      \"name\": \"hua\"\n    },\n    {\n      \"name\": \"Hua\"\n    },\n    {\n      \"name\": \"huai\"\n    },\n    {\n      \"name\": \"Huai\"\n    },\n    {\n      \"name\": \"huan\"\n    },\n    {\n      \"name\": \"Huan\"\n    },\n    {\n      \"name\": \"huang\"\n    },\n    {\n      \"name\": \"Huang\"\n    },\n    {\n      \"name\": \"hui\"\n    },\n    {\n      \"name\": \"Hui\"\n    },\n    {\n      \"name\": \"hun\"\n    },\n    {\n      \"name\": \"Hun\"\n    },\n    {\n      \"name\": \"huo\"\n    },\n    {\n      \"name\": \"Huo\"\n    },\n    {\n      \"name\": \"ji\"\n    },\n    {\n      \"name\": \"Ji\"\n    },\n    {\n      \"name\": \"jia\"\n    },\n    {\n      \"name\": \"Jia\"\n    },\n    {\n      \"name\": \"jian\"\n    },\n    {\n      \"name\": \"Jian\"\n    },\n    {\n      \"name\": \"jiang\"\n    },\n    {\n      \"name\": \"Jiang\"\n    },\n    {\n      \"name\": \"jiao\"\n    },\n    {\n      \"name\": \"Jiao\"\n    },\n    {\n      \"name\": \"jie\"\n    },\n    {\n      \"name\": \"Jie\"\n    },\n    {\n      \"name\": \"jin\"\n    },\n    {\n      \"name\": \"Jin\"\n    },\n    {\n      \"name\": \"jing\"\n    },\n    {\n      \"name\": \"Jing\"\n    },\n    {\n      \"name\": \"jiong\"\n    },\n    {\n      \"name\": \"Jiong\"\n    },\n    {\n      \"name\": \"jiu\"\n    },\n    {\n      \"name\": \"Jiu\"\n    },\n    {\n      \"name\": \"ju\"\n    },\n    {\n      \"name\": \"Ju\"\n    },\n    {\n      \"name\": \"juan\"\n    },\n    {\n      \"name\": \"Juan\"\n    },\n    {\n      \"name\": \"jue\"\n    },\n    {\n      \"name\": \"Jue\"\n    },\n    {\n      \"name\": \"jun\"\n    },\n    {\n      \"name\": \"Jun\"\n    },\n    {\n      \"name\": \"ka\"\n    },\n    {\n      \"name\": \"Ka\"\n    },\n    {\n      \"name\": \"kai\"\n    },\n    {\n      \"name\": \"Kai\"\n    },\n    {\n      \"name\": \"kan\"\n    },\n    {\n      \"name\": \"Kan\"\n    },\n    {\n      \"name\": \"kang\"\n    },\n    {\n      \"name\": \"Kang\"\n    },\n    {\n      \"name\": \"kao\"\n    },\n    {\n      \"name\": \"Kao\"\n    },\n    {\n      \"name\": \"ke\"\n    },\n    {\n      \"name\": \"Ke\"\n    },\n    {\n      \"name\": \"kei\"\n    },\n    {\n      \"name\": \"Kei\"\n    },\n    {\n      \"name\": \"ken\"\n    },\n    {\n      \"name\": \"Ken\"\n    },\n    {\n      \"name\": \"keng\"\n    },\n    {\n      \"name\": \"Keng\"\n    },\n    {\n      \"name\": \"kong\"\n    },\n    {\n      \"name\": \"Kong\"\n    },\n    {\n      \"name\": \"kou\"\n    },\n    {\n      \"name\": \"Kou\"\n    },\n    {\n      \"name\": \"ku\"\n    },\n    {\n      \"name\": \"Ku\"\n    },\n    {\n      \"name\": \"kua\"\n    },\n    {\n      \"name\": \"Kua\"\n    },\n    {\n      \"name\": \"kuai\"\n    },\n    {\n      \"name\": \"Kuai\"\n    },\n    {\n      \"name\": \"kuan\"\n    },\n    {\n      \"name\": \"Kuan\"\n    },\n    {\n      \"name\": \"kuang\"\n    },\n    {\n      \"name\": \"Kuang\"\n    },\n    {\n      \"name\": \"kui\"\n    },\n    {\n      \"name\": \"Kui\"\n    },\n    {\n      \"name\": \"kun\"\n    },\n    {\n      \"name\": \"Kun\"\n    },\n    {\n      \"name\": \"kuo\"\n    },\n    {\n      \"name\": \"Kuo\"\n    },\n    {\n      \"name\": \"la\"\n    },\n    {\n      \"name\": \"La\"\n    },\n    {\n      \"name\": \"lai\"\n    },\n    {\n      \"name\": \"Lai\"\n    },\n    {\n      \"name\": \"lan\"\n    },\n    {\n      \"name\": \"Lan\"\n    },\n    {\n      \"name\": \"lang\"\n    },\n    {\n      \"name\": \"Lang\"\n    },\n    {\n      \"name\": \"lao\"\n    },\n    {\n      \"name\": \"Lao\"\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"Le\"\n    },\n    {\n      \"name\": \"lei\"\n    },\n    {\n      \"name\": \"Lei\"\n    },\n    {\n      \"name\": \"leng\"\n    },\n    {\n      \"name\": \"Leng\"\n    },\n    {\n      \"name\": \"li\"\n    },\n    {\n      \"name\": \"Li\"\n    },\n    {\n      \"name\": \"lia\"\n    },\n    {\n      \"name\": \"Lia\"\n    },\n    {\n      \"name\": \"lian\"\n    },\n    {\n      \"name\": \"Lian\"\n    },\n    {\n      \"name\": \"liang\"\n    },\n    {\n      \"name\": \"Liang\"\n    },\n    {\n      \"name\": \"liao\"\n    },\n    {\n      \"name\": \"Liao\"\n    },\n    {\n      \"name\": \"lie\"\n    },\n    {\n      \"name\": \"Lie\"\n    },\n    {\n      \"name\": \"lin\"\n    },\n    {\n      \"name\": \"Lin\"\n    },\n    {\n      \"name\": \"ling\"\n    },\n    {\n      \"name\": \"Ling\"\n    },\n    {\n      \"name\": \"liu\"\n    },\n    {\n      \"name\": \"Liu\"\n    },\n    {\n      \"name\": \"Long\"\n    },\n    {\n      \"name\": \"LONG\"\n    },\n    {\n      \"name\": \"lou\"\n    },\n    {\n      \"name\": \"Lou\"\n    },\n    {\n      \"name\": \"lu\"\n    },\n    {\n      \"name\": \"Lu\"\n    },\n    {\n      \"name\": \"luan\"\n    },\n    {\n      \"name\": \"Luan\"\n    },\n    {\n      \"name\": \"lun\"\n    },\n    {\n      \"name\": \"Lun\"\n    },\n    {\n      \"name\": \"luo\"\n    },\n    {\n      \"name\": \"Luo\"\n    },\n    {\n      \"name\": \"lv\"\n    },\n    {\n      \"name\": \"Lv\"\n    },\n    {\n      \"name\": \"lve\"\n    },\n    {\n      \"name\": \"Lve\"\n    },\n    {\n      \"name\": \"ma\"\n    },\n    {\n      \"name\": \"Ma\"\n    },\n    {\n      \"name\": \"mai\"\n    },\n    {\n      \"name\": \"Mai\"\n    },\n    {\n      \"name\": \"man\"\n    },\n    {\n      \"name\": \"Man\"\n    },\n    {\n      \"name\": \"mang\"\n    },\n    {\n      \"name\": \"Mang\"\n    },\n    {\n      \"name\": \"mao\"\n    },\n    {\n      \"name\": \"Mao\"\n    },\n    {\n      \"name\": \"me\"\n    },\n    {\n      \"name\": \"mei\"\n    },\n    {\n      \"name\": \"Mei\"\n    },\n    {\n      \"name\": \"men\"\n    },\n    {\n      \"name\": \"Men\"\n    },\n    {\n      \"name\": \"meng\"\n    },\n    {\n      \"name\": \"Meng\"\n    },\n    {\n      \"name\": \"mi\"\n    },\n    {\n      \"name\": \"Mi\"\n    },\n    {\n      \"name\": \"mian\"\n    },\n    {\n      \"name\": \"Mian\"\n    },\n    {\n      \"name\": \"miao\"\n    },\n    {\n      \"name\": \"Miao\"\n    },\n    {\n      \"name\": \"mie\"\n    },\n    {\n      \"name\": \"Mie\"\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"Min\"\n    },\n    {\n      \"name\": \"ming\"\n    },\n    {\n      \"name\": \"Ming\"\n    },\n    {\n      \"name\": \"miu\"\n    },\n    {\n      \"name\": \"Miu\"\n    },\n    {\n      \"name\": \"mo\"\n    },\n    {\n      \"name\": \"Mo\"\n    },\n    {\n      \"name\": \"mou\"\n    },\n    {\n      \"name\": \"Mou\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"na\"\n    },\n    {\n      \"name\": \"Na\"\n    },\n    {\n      \"name\": \"nai\"\n    },\n    {\n      \"name\": \"Nai\"\n    },\n    {\n      \"name\": \"nan\"\n    },\n    {\n      \"name\": \"Nan\"\n    },\n    {\n      \"name\": \"nang\"\n    },\n    {\n      \"name\": \"Nang\"\n    },\n    {\n      \"name\": \"nao\"\n    },\n    {\n      \"name\": \"Nao\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"Ne\"\n    },\n    {\n      \"name\": \"nei\"\n    },\n    {\n      \"name\": \"Nei\"\n    },\n    {\n      \"name\": \"nen\"\n    },\n    {\n      \"name\": \"Nen\"\n    },\n    {\n      \"name\": \"neng\"\n    },\n    {\n      \"name\": \"Neng\"\n    },\n    {\n      \"name\": \"ni\",\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"Ni\"\n    },\n    {\n      \"name\": \"nian\"\n    },\n    {\n      \"name\": \"Nian\"\n    },\n    {\n      \"name\": \"niang\"\n    },\n    {\n      \"name\": \"Niang\"\n    },\n    {\n      \"name\": \"niao\"\n    },\n    {\n      \"name\": \"Niao\"\n    },\n    {\n      \"name\": \"nie\"\n    },\n    {\n      \"name\": \"Nie\"\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"Nin\"\n    },\n    {\n      \"name\": \"ning\"\n    },\n    {\n      \"name\": \"Ning\"\n    },\n    {\n      \"name\": \"niu\"\n    },\n    {\n      \"name\": \"Niu\"\n    },\n    {\n      \"name\": \"nong\"\n    },\n    {\n      \"name\": \"Nong\"\n    },\n    {\n      \"name\": \"nou\"\n    },\n    {\n      \"name\": \"Nou\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"nuan\"\n    },\n    {\n      \"name\": \"Nuan\"\n    },\n    {\n      \"name\": \"nuo\"\n    },\n    {\n      \"name\": \"Nuo\"\n    },\n    {\n      \"name\": \"nv\"\n    },\n    {\n      \"name\": \"Nv\"\n    },\n    {\n      \"name\": \"nve\"\n    },\n    {\n      \"name\": \"Nve\"\n    },\n    {\n      \"name\": \"o\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"ou\"\n    },\n    {\n      \"name\": \"Ou\"\n    },\n    {\n      \"name\": \"pa\"\n    },\n    {\n      \"name\": \"Pa\"\n    },\n    {\n      \"name\": \"pai\"\n    },\n    {\n      \"name\": \"Pai\"\n    },\n    {\n      \"name\": \"pan\"\n    },\n    {\n      \"name\": \"Pan\"\n    },\n    {\n      \"name\": \"pang\"\n    },\n    {\n      \"name\": \"Pang\"\n    },\n    {\n      \"name\": \"pao\"\n    },\n    {\n      \"name\": \"Pao\"\n    },\n    {\n      \"name\": \"pei\"\n    },\n    {\n      \"name\": \"Pei\"\n    },\n    {\n      \"name\": \"pen\"\n    },\n    {\n      \"name\": \"Pen\"\n    },\n    {\n      \"name\": \"peng\"\n    },\n    {\n      \"name\": \"Peng\"\n    },\n    {\n      \"name\": \"pian\"\n    },\n    {\n      \"name\": \"Pian\"\n    },\n    {\n      \"name\": \"piao\"\n    },\n    {\n      \"name\": \"Piao\"\n    },\n    {\n      \"name\": \"pie\"\n    },\n    {\n      \"name\": \"Pie\"\n    },\n    {\n      \"name\": \"pin\"\n    },\n    {\n      \"name\": \"Pin\"\n    },\n    {\n      \"name\": \"ping\"\n    },\n    {\n      \"name\": \"Ping\"\n    },\n    {\n      \"name\": \"po\"\n    },\n    {\n      \"name\": \"Po\"\n    },\n    {\n      \"name\": \"pou\"\n    },\n    {\n      \"name\": \"Pou\"\n    },\n    {\n      \"name\": \"pu\"\n    },\n    {\n      \"name\": \"Pu\"\n    },\n    {\n      \"name\": \"qi\"\n    },\n    {\n      \"name\": \"Qi\"\n    },\n    {\n      \"name\": \"qia\"\n    },\n    {\n      \"name\": \"Qia\"\n    },\n    {\n      \"name\": \"qian\"\n    },\n    {\n      \"name\": \"Qian\"\n    },\n    {\n      \"name\": \"qiang\"\n    },\n    {\n      \"name\": \"Qiang\"\n    },\n    {\n      \"name\": \"qiao\"\n    },\n    {\n      \"name\": \"Qiao\"\n    },\n    {\n      \"name\": \"qie\"\n    },\n    {\n      \"name\": \"Qie\"\n    },\n    {\n      \"name\": \"qin\"\n    },\n    {\n      \"name\": \"Qin\"\n    },\n    {\n      \"name\": \"qing\"\n    },\n    {\n      \"name\": \"Qing\"\n    },\n    {\n      \"name\": \"qiong\"\n    },\n    {\n      \"name\": \"Qiong\"\n    },\n    {\n      \"name\": \"qiu\"\n    },\n    {\n      \"name\": \"Qiu\"\n    },\n    {\n      \"name\": \"qu\"\n    },\n    {\n      \"name\": \"Qu\"\n    },\n    {\n      \"name\": \"quan\"\n    },\n    {\n      \"name\": \"Quan\"\n    },\n    {\n      \"name\": \"que\"\n    },\n    {\n      \"name\": \"Que\"\n    },\n    {\n      \"name\": \"qun\"\n    },\n    {\n      \"name\": \"Qun\"\n    },\n    {\n      \"name\": \"ran\"\n    },\n    {\n      \"name\": \"Ran\"\n    },\n    {\n      \"name\": \"rang\"\n    },\n    {\n      \"name\": \"Rang\"\n    },\n    {\n      \"name\": \"rao\"\n    },\n    {\n      \"name\": \"Rao\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"re\"\n    },\n    {\n      \"name\": \"ren\"\n    },\n    {\n      \"name\": \"Ren\"\n    },\n    {\n      \"name\": \"reng\"\n    },\n    {\n      \"name\": \"Reng\"\n    },\n    {\n      \"name\": \"ri\"\n    },\n    {\n      \"name\": \"Ri\"\n    },\n    {\n      \"name\": \"rong\"\n    },\n    {\n      \"name\": \"Rong\"\n    },\n    {\n      \"name\": \"rou\"\n    },\n    {\n      \"name\": \"Rou\"\n    },\n    {\n      \"name\": \"ru\"\n    },\n    {\n      \"name\": \"Ru\"\n    },\n    {\n      \"name\": \"rua\"\n    },\n    {\n      \"name\": \"ruan\"\n    },\n    {\n      \"name\": \"Ruan\"\n    },\n    {\n      \"name\": \"rui\"\n    },\n    {\n      \"name\": \"Rui\"\n    },\n    {\n      \"name\": \"run\"\n    },\n    {\n      \"name\": \"Run\"\n    },\n    {\n      \"name\": \"ruo\"\n    },\n    {\n      \"name\": \"Ruo\"\n    },\n    {\n      \"name\": \"sa\"\n    },\n    {\n      \"name\": \"Sa\"\n    },\n    {\n      \"name\": \"sai\"\n    },\n    {\n      \"name\": \"Sai\"\n    },\n    {\n      \"name\": \"san\"\n    },\n    {\n      \"name\": \"San\"\n    },\n    {\n      \"name\": \"sang\"\n    },\n    {\n      \"name\": \"Sang\"\n    },\n    {\n      \"name\": \"sao\"\n    },\n    {\n      \"name\": \"Sao\"\n    },\n    {\n      \"name\": \"se\"\n    },\n    {\n      \"name\": \"Se\"\n    },\n    {\n      \"name\": \"sen\"\n    },\n    {\n      \"name\": \"Sen\"\n    },\n    {\n      \"name\": \"seng\"\n    },\n    {\n      \"name\": \"Seng\"\n    },\n    {\n      \"name\": \"sha\"\n    },\n    {\n      \"name\": \"Sha\"\n    },\n    {\n      \"name\": \"shai\"\n    },\n    {\n      \"name\": \"Shai\"\n    },\n    {\n      \"name\": \"shan\"\n    },\n    {\n      \"name\": \"Shan\"\n    },\n    {\n      \"name\": \"shang\"\n    },\n    {\n      \"name\": \"Shang\"\n    },\n    {\n      \"name\": \"shao\"\n    },\n    {\n      \"name\": \"Shao\"\n    },\n    {\n      \"name\": \"she\"\n    },\n    {\n      \"name\": \"She\"\n    },\n    {\n      \"name\": \"shei\"\n    },\n    {\n      \"name\": \"Shei\"\n    },\n    {\n      \"name\": \"shen\"\n    },\n    {\n      \"name\": \"Shen\"\n    },\n    {\n      \"name\": \"sheng\"\n    },\n    {\n      \"name\": \"Sheng\"\n    },\n    {\n      \"name\": \"shi\"\n    },\n    {\n      \"name\": \"Shi\"\n    },\n    {\n      \"name\": \"shou\"\n    },\n    {\n      \"name\": \"Shou\"\n    },\n    {\n      \"name\": \"shu\"\n    },\n    {\n      \"name\": \"Shu\"\n    },\n    {\n      \"name\": \"shua\"\n    },\n    {\n      \"name\": \"Shua\"\n    },\n    {\n      \"name\": \"shuai\"\n    },\n    {\n      \"name\": \"Shuai\"\n    },\n    {\n      \"name\": \"shuan\"\n    },\n    {\n      \"name\": \"Shuan\"\n    },\n    {\n      \"name\": \"shuang\"\n    },\n    {\n      \"name\": \"Shuang\"\n    },\n    {\n      \"name\": \"shui\"\n    },\n    {\n      \"name\": \"Shui\"\n    },\n    {\n      \"name\": \"shun\"\n    },\n    {\n      \"name\": \"Shun\"\n    },\n    {\n      \"name\": \"shuo\"\n    },\n    {\n      \"name\": \"Shuo\"\n    },\n    {\n      \"name\": \"si\"\n    },\n    {\n      \"name\": \"Si\"\n    },\n    {\n      \"name\": \"song\"\n    },\n    {\n      \"name\": \"Song\"\n    },\n    {\n      \"name\": \"sou\"\n    },\n    {\n      \"name\": \"Sou\"\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"Su\"\n    },\n    {\n      \"name\": \"suan\"\n    },\n    {\n      \"name\": \"Suan\"\n    },\n    {\n      \"name\": \"sui\"\n    },\n    {\n      \"name\": \"Sui\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"suo\"\n    },\n    {\n      \"name\": \"Suo\"\n    },\n    {\n      \"name\": \"ta\"\n    },\n    {\n      \"name\": \"Ta\"\n    },\n    {\n      \"name\": \"tai\"\n    },\n    {\n      \"name\": \"Tai\"\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"Tan\"\n    },\n    {\n      \"name\": \"tang\"\n    },\n    {\n      \"name\": \"Tang\"\n    },\n    {\n      \"name\": \"tao\"\n    },\n    {\n      \"name\": \"Tao\"\n    },\n    {\n      \"name\": \"te\"\n    },\n    {\n      \"name\": \"Te\"\n    },\n    {\n      \"name\": \"tei\"\n    },\n    {\n      \"name\": \"Tei\"\n    },\n    {\n      \"name\": \"teng\"\n    },\n    {\n      \"name\": \"Teng\"\n    },\n    {\n      \"name\": \"ti\"\n    },\n    {\n      \"name\": \"Ti\"\n    },\n    {\n      \"name\": \"tian\"\n    },\n    {\n      \"name\": \"Tian\"\n    },\n    {\n      \"name\": \"tiao\"\n    },\n    {\n      \"name\": \"Tiao\"\n    },\n    {\n      \"name\": \"tie\"\n    },\n    {\n      \"name\": \"Tie\"\n    },\n    {\n      \"name\": \"ting\"\n    },\n    {\n      \"name\": \"Ting\"\n    },\n    {\n      \"name\": \"tong\"\n    },\n    {\n      \"name\": \"Tong\"\n    },\n    {\n      \"name\": \"tou\"\n    },\n    {\n      \"name\": \"Tou\"\n    },\n    {\n      \"name\": \"tu\"\n    },\n    {\n      \"name\": \"Tu\"\n    },\n    {\n      \"name\": \"tuan\"\n    },\n    {\n      \"name\": \"Tuan\"\n    },\n    {\n      \"name\": \"tui\"\n    },\n    {\n      \"name\": \"Tui\"\n    },\n    {\n      \"name\": \"tun\"\n    },\n    {\n      \"name\": \"Tun\"\n    },\n    {\n      \"name\": \"tuo\"\n    },\n    {\n      \"name\": \"Tuo\"\n    },\n    {\n      \"name\": \"wa\"\n    },\n    {\n      \"name\": \"Wa\"\n    },\n    {\n      \"name\": \"wai\"\n    },\n    {\n      \"name\": \"Wai\"\n    },\n    {\n      \"name\": \"wan\"\n    },\n    {\n      \"name\": \"Wan\"\n    },\n    {\n      \"name\": \"wang\"\n    },\n    {\n      \"name\": \"Wang\"\n    },\n    {\n      \"name\": \"wei\"\n    },\n    {\n      \"name\": \"Wei\"\n    },\n    {\n      \"name\": \"wen\"\n    },\n    {\n      \"name\": \"Wen\"\n    },\n    {\n      \"name\": \"weng\"\n    },\n    {\n      \"name\": \"Weng\"\n    },\n    {\n      \"name\": \"wo\"\n    },\n    {\n      \"name\": \"Wo\"\n    },\n    {\n      \"name\": \"wu\"\n    },\n    {\n      \"name\": \"Wu\"\n    },\n    {\n      \"name\": \"xia\"\n    },\n    {\n      \"name\": \"Xia\"\n    },\n    {\n      \"name\": \"xian\"\n    },\n    {\n      \"name\": \"Xian\"\n    },\n    {\n      \"name\": \"xiang\"\n    },\n    {\n      \"name\": \"Xiang\"\n    },\n    {\n      \"name\": \"xiao\"\n    },\n    {\n      \"name\": \"Xiao\"\n    },\n    {\n      \"name\": \"xie\"\n    },\n    {\n      \"name\": \"Xie\"\n    },\n    {\n      \"name\": \"xin\"\n    },\n    {\n      \"name\": \"Xin\"\n    },\n    {\n      \"name\": \"xing\"\n    },\n    {\n      \"name\": \"Xing\"\n    },\n    {\n      \"name\": \"xiong\"\n    },\n    {\n      \"name\": \"Xiong\"\n    },\n    {\n      \"name\": \"xiu\"\n    },\n    {\n      \"name\": \"Xiu\"\n    },\n    {\n      \"name\": \"xu\"\n    },\n    {\n      \"name\": \"Xu\"\n    },\n    {\n      \"name\": \"xuan\"\n    },\n    {\n      \"name\": \"Xuan\"\n    },\n    {\n      \"name\": \"xue\"\n    },\n    {\n      \"name\": \"Xue\"\n    },\n    {\n      \"name\": \"xun\"\n    },\n    {\n      \"name\": \"Xun\"\n    },\n    {\n      \"name\": \"ya\"\n    },\n    {\n      \"name\": \"Ya\"\n    },\n    {\n      \"name\": \"yan\"\n    },\n    {\n      \"name\": \"Yan\"\n    },\n    {\n      \"name\": \"yang\"\n    },\n    {\n      \"name\": \"Yang\"\n    },\n    {\n      \"name\": \"yao\"\n    },\n    {\n      \"name\": \"Yao\"\n    },\n    {\n      \"name\": \"ye\"\n    },\n    {\n      \"name\": \"Ye\"\n    },\n    {\n      \"name\": \"yi\"\n    },\n    {\n      \"name\": \"Yi\"\n    },\n    {\n      \"name\": \"yin\"\n    },\n    {\n      \"name\": \"Yin\"\n    },\n    {\n      \"name\": \"ying\"\n    },\n    {\n      \"name\": \"Ying\"\n    },\n    {\n      \"name\": \"yo\"\n    },\n    {\n      \"name\": \"Yo\"\n    },\n    {\n      \"name\": \"yong\"\n    },\n    {\n      \"name\": \"Yong\"\n    },\n    {\n      \"name\": \"you\"\n    },\n    {\n      \"name\": \"You\"\n    },\n    {\n      \"name\": \"yu\"\n    },\n    {\n      \"name\": \"Yu\"\n    },\n    {\n      \"name\": \"yuan\"\n    },\n    {\n      \"name\": \"Yuan\"\n    },\n    {\n      \"name\": \"yue\"\n    },\n    {\n      \"name\": \"Yue\"\n    },\n    {\n      \"name\": \"yun\"\n    },\n    {\n      \"name\": \"Yun\"\n    },\n    {\n      \"name\": \"za\"\n    },\n    {\n      \"name\": \"Za\"\n    },\n    {\n      \"name\": \"zai\"\n    },\n    {\n      \"name\": \"Zai\"\n    },\n    {\n      \"name\": \"zan\"\n    },\n    {\n      \"name\": \"Zan\"\n    },\n    {\n      \"name\": \"zang\"\n    },\n    {\n      \"name\": \"Zang\"\n    },\n    {\n      \"name\": \"zao\"\n    },\n    {\n      \"name\": \"Zao\"\n    },\n    {\n      \"name\": \"ze\"\n    },\n    {\n      \"name\": \"Ze\"\n    },\n    {\n      \"name\": \"zei\"\n    },\n    {\n      \"name\": \"Zei\"\n    },\n    {\n      \"name\": \"zen\"\n    },\n    {\n      \"name\": \"Zen\"\n    },\n    {\n      \"name\": \"zeng\"\n    },\n    {\n      \"name\": \"Zeng\"\n    },\n    {\n      \"name\": \"zha\"\n    },\n    {\n      \"name\": \"Zha\"\n    },\n    {\n      \"name\": \"zhai\"\n    },\n    {\n      \"name\": \"Zhai\"\n    },\n    {\n      \"name\": \"zhan\"\n    },\n    {\n      \"name\": \"Zhan\"\n    },\n    {\n      \"name\": \"zhang\"\n    },\n    {\n      \"name\": \"Zhang\"\n    },\n    {\n      \"name\": \"zhao\"\n    },\n    {\n      \"name\": \"Zhao\"\n    },\n    {\n      \"name\": \"zhe\"\n    },\n    {\n      \"name\": \"Zhe\"\n    },\n    {\n      \"name\": \"zhei\"\n    },\n    {\n      \"name\": \"Zhei\"\n    },\n    {\n      \"name\": \"zhen\"\n    },\n    {\n      \"name\": \"Zhen\"\n    },\n    {\n      \"name\": \"zheng\"\n    },\n    {\n      \"name\": \"Zheng\"\n    },\n    {\n      \"name\": \"zhi\"\n    },\n    {\n      \"name\": \"Zhi\"\n    },\n    {\n      \"name\": \"zhong\"\n    },\n    {\n      \"name\": \"Zhong\"\n    },\n    {\n      \"name\": \"zhou\"\n    },\n    {\n      \"name\": \"Zhou\"\n    },\n    {\n      \"name\": \"zhu\"\n    },\n    {\n      \"name\": \"Zhu\"\n    },\n    {\n      \"name\": \"zhua\"\n    },\n    {\n      \"name\": \"Zhua\"\n    },\n    {\n      \"name\": \"zhuai\"\n    },\n    {\n      \"name\": \"Zhuai\"\n    },\n    {\n      \"name\": \"zhuan\"\n    },\n    {\n      \"name\": \"Zhuan\"\n    },\n    {\n      \"name\": \"zhuang\"\n    },\n    {\n      \"name\": \"Zhuang\"\n    },\n    {\n      \"name\": \"zhui\"\n    },\n    {\n      \"name\": \"Zhui\"\n    },\n    {\n      \"name\": \"zhun\"\n    },\n    {\n      \"name\": \"Zhun\"\n    },\n    {\n      \"name\": \"zhuo\"\n    },\n    {\n      \"name\": \"Zhuo\"\n    },\n    {\n      \"name\": \"zi\"\n    },\n    {\n      \"name\": \"Zi\"\n    },\n    {\n      \"name\": \"zong\"\n    },\n    {\n      \"name\": \"Zong\"\n    },\n    {\n      \"name\": \"zou\"\n    },\n    {\n      \"name\": \"Zou\"\n    },\n    {\n      \"name\": \"zu\"\n    },\n    {\n      \"name\": \"Zu\"\n    },\n    {\n      \"name\": \"zuan\"\n    },\n    {\n      \"name\": \"Zuan\"\n    },\n    {\n      \"name\": \"zui\"\n    },\n    {\n      \"name\": \"Zui\"\n    },\n    {\n      \"name\": \"zun\"\n    },\n    {\n      \"name\": \"Zun\"\n    },\n    {\n      \"name\": \"zuo\"\n    },\n    {\n      \"name\": \"Zuo\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pinyin#c\": [\n      \"useCMmacron\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pinyin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/piton.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"if\": \"footnote=true\"\n    },\n    {\n      \"name\": \"footnotehyper\",\n      \"if\": \"footnotehyper\"\n    },\n    {\n      \"name\": \"footnotehyper\",\n      \"if\": \"footnotehyper=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"piton\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piton{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PitonInputFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PitonInputFile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\PitonInputFile,\\\\PitonInputFileTF,\\\\PitonInputFileT,\\\\PitonInputFileF\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PitonInputFileTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PitonInputFileTF{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileTF\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PitonInputFileTF[${4:options%keyvals}]{${1:file}}{${2:true code}}{${3:false code}}\",\n        \"keys\": [\n          \"\\\\PitonInputFile,\\\\PitonInputFileTF,\\\\PitonInputFileT,\\\\PitonInputFileF\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PitonInputFileT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PitonInputFileT{${1:file}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileT\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PitonInputFileT[${3:options%keyvals}]{${1:file}}{${2:true code}}\",\n        \"keys\": [\n          \"\\\\PitonInputFile,\\\\PitonInputFileTF,\\\\PitonInputFileT,\\\\PitonInputFileF\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PitonInputFileF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PitonInputFileF{${1:file}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PitonInputFileF[${3:options%keyvals}]{${1:file}}{${2:false code}}\",\n        \"keys\": [\n          \"\\\\PitonInputFile,\\\\PitonInputFileTF,\\\\PitonInputFileT,\\\\PitonInputFileF\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PitonInputFile<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PitonInputFile<overlay spec>{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFile<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PitonInputFile<overlay spec>[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileTF<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PitonInputFileTF<overlay spec>{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileTF<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PitonInputFileTF<overlay spec>[${4:options%keyvals}]{${1:file}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileT<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PitonInputFileT<overlay spec>{${1:file}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileT<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PitonInputFileT<overlay spec>[${3:options%keyvals}]{${1:file}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileF<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PitonInputFileF<overlay spec>{${1:file}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonInputFileF<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PitonInputFileF<overlay spec>[${3:options%keyvals}]{${1:file}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"PitonOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PitonOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\PitonOptions\",\n          \"\\\\PitonOptions,\\\\begin{Piton}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetPitonStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPitonStyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetPitonStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetPitonStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetPitonStyle[${2:language}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetPitonStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"PitonStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PitonStyle{${1:style%keyvals}}{${2:text%plain}}\",\n        \"keys\": [\n          \"\\\\PitonStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PitonClearUserFunctions\"\n    },\n    {\n      \"name\": \"PitonClearUserFunctions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PitonClearUserFunctions[${1:languages}]\"\n      }\n    },\n    {\n      \"name\": \"NewPitonEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewPitonEnvironment{${1:envname}}{${2:xargs}}{${3:begdef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"NewPitonLanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewPitonLanguage{${1:language}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\NewPitonLanguage\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetPitonIdentifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetPitonIdentifier{${1:id1,id2,...}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"SetPitonIdentifier\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetPitonIdentifier[${3:language}]{${1:id1,id2,...}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Piton\"\n    },\n    {\n      \"name\": \"Piton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Piton}\",\n          \"\\\\PitonOptions,\\\\begin{Piton}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/piton#c\": [\n      \"footnote\",\n      \"footnotehyper\",\n      \"beamer\",\n      \"old-PitonInputFile\"\n    ],\n    \"\\\\PitonInputFile,\\\\PitonInputFileTF,\\\\PitonInputFileT,\\\\PitonInputFileF\": [\n      \"first-line=${1:integer}\",\n      \"last-line=${1:integer}\",\n      \"begin-range=${1:content}\",\n      \"end-range=${1:content}\",\n      \"range=${1:content}\",\n      \"marker/include-lines\"\n    ],\n    \"\\\\PitonOptions\": [\n      \"comment-latex=${1:string}\",\n      \"math-comments\",\n      \"detected-commands={${1:csname1,csname2,...}}\",\n      \"detected-beamer-commands={${1:csname1,csname2,...}}\",\n      \"detected-beamer-environments={${1:envname1,envname2,...}}\",\n      \"line-numbers/absolute\",\n      \"marker={${1:options}}\",\n      \"marker/beginning=${1:spec}\",\n      \"marker/end=${1:spec}\",\n      \"begin-escape=${1:character}\",\n      \"end-escape=${1:character}\",\n      \"begin-escape-math=${1:character}\",\n      \"end-escape-math=${1:character}\",\n      \"path={${1:list of paths}}\"\n    ],\n    \"\\\\begin{Piton}\": [\n      \"line-numbers/start\"\n    ],\n    \"\\\\PitonOptions,\\\\begin{Piton}\": [\n      \"language=\",\n      \"font-command=${1:font commands}\",\n      \"gobble=${1:integer}\",\n      \"auto-gobble\",\n      \"tabs-auto-gobble\",\n      \"env-gobble\",\n      \"line-numbers\",\n      \"line-numbers={${1:options}}\",\n      \"line-numbers/skip-empty-lines\",\n      \"line-numbers/label-empty-lines\",\n      \"line-numbers/resume\",\n      \"line-numbers/sep=\",\n      \"line-numbers/format=${1:font commands}\",\n      \"splittable\",\n      \"splittable=${1:integer}\",\n      \"splittable-on-empty-lines\",\n      \"env-used-by-split=${1:envname}\",\n      \"background-color=\",\n      \"prompt-background-color=\",\n      \"width=\",\n      \"left-margin=\",\n      \"tab-size=${1:integer}\",\n      \"show-spaces\",\n      \"show-spaces-in-strings\",\n      \"break-lines-in-Piton\",\n      \"break-lines-in-piton\",\n      \"break-lines\",\n      \"indent-broken-lines\",\n      \"end-of-broken-line=${1:symbol}\",\n      \"continuation-symbol=${1:symbol}\",\n      \"continuation-symbol-on-indentation=${1:symbol}\",\n      \"write=${1:file}\",\n      \"path-write=${1:path}\",\n      \"split-on-empty-lines\",\n      \"split-separation=${1:code}\"\n    ],\n    \"\\\\SetPitonStyle\": [\n      \"Number=${1:formatting}\",\n      \"String.Short=${1:formatting}\",\n      \"String.Long=${1:formatting}\",\n      \"String=${1:formatting}\",\n      \"String.Doc=${1:formatting}\",\n      \"String.Interpol=${1:formatting}\",\n      \"Interpol.Inside=${1:formatting}\",\n      \"Operator=${1:formatting}\",\n      \"Operator.Word=${1:formatting}\",\n      \"Name.Builtin=${1:formatting}\",\n      \"Name.Decorator=${1:formatting}\",\n      \"Name.Namespace=${1:formatting}\",\n      \"Name.Class=${1:formatting}\",\n      \"Name.Function=${1:formatting}\",\n      \"UserFunction=${1:formatting}\",\n      \"Exception=${1:formatting}\",\n      \"InitialValues=${1:formatting}\",\n      \"Comment=${1:formatting}\",\n      \"Comment.LaTeX=${1:formatting}\",\n      \"Keyword.Constant=${1:formatting}\",\n      \"Keyword=${1:formatting}\",\n      \"Keyword.Governing=${1:formatting}\",\n      \"Name.Type=${1:formatting}\",\n      \"Name.Field=${1:formatting}\",\n      \"Name.Constructor=${1:formatting}\",\n      \"Name.Module=${1:formatting}\",\n      \"TypeParameter=${1:formatting}\",\n      \"Preproc=${1:formatting}\",\n      \"Name.Table=${1:formatting}\",\n      \"Directive=${1:formatting}\",\n      \"FormattingType=${1:formatting}\",\n      \"Identifier.Internal=${1:formatting}\",\n      \"Comment.Math=${1:formatting}\",\n      \"Discard=${1:formatting}\",\n      \"Identifier=${1:formatting}\",\n      \"Keyword2=${1:formatting}\",\n      \"Keyword3=${1:formatting}\",\n      \"Keyword4=${1:formatting}\",\n      \"Keyword5=${1:formatting}\",\n      \"Keyword6=${1:formatting}\",\n      \"Keyword7=${1:formatting}\",\n      \"Keyword8=${1:formatting}\",\n      \"Keyword9=${1:formatting}\",\n      \"ParseAgain=${1:formatting}\",\n      \"Prompt=${1:formatting}\",\n      \"Tag=${1:formatting}\",\n      \"TypeExpression=${1:formatting}\"\n    ],\n    \"\\\\PitonStyle\": [\n      \"Number\",\n      \"String.Short\",\n      \"String.Long\",\n      \"String\",\n      \"String.Doc\",\n      \"String.Interpol\",\n      \"Interpol.Inside\",\n      \"Operator\",\n      \"Operator.Word\",\n      \"Name.Builtin\",\n      \"Name.Decorator\",\n      \"Name.Namespace\",\n      \"Name.Class\",\n      \"Name.Function\",\n      \"UserFunction\",\n      \"Exception\",\n      \"InitialValues\",\n      \"Comment\",\n      \"Comment.LaTeX\",\n      \"Keyword.Constant\",\n      \"Keyword\",\n      \"Keyword.Governing\",\n      \"Name.Type\",\n      \"Name.Field\",\n      \"Name.Constructor\",\n      \"Name.Module\",\n      \"TypeParameter\",\n      \"Preproc\",\n      \"Name.Table\",\n      \"Directive\",\n      \"FormattingType\",\n      \"Identifier.Internal\",\n      \"Comment.Math\",\n      \"Discard\",\n      \"Identifier\",\n      \"Keyword2\",\n      \"Keyword3\",\n      \"Keyword4\",\n      \"Keyword5\",\n      \"Keyword6\",\n      \"Keyword7\",\n      \"Keyword8\",\n      \"Keyword9\",\n      \"ParseAgain\",\n      \"Prompt\",\n      \"Tag\",\n      \"TypeExpression\"\n    ],\n    \"\\\\NewPitonLanguage\": [\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"sensitive\",\n      \"keywordsprefix=${1:prefix}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|s}]${2:delimiter}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:i|l|s|n}]${2:delimiter(s)}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/piton#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pixelart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pixelart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pixelart{${1:pixels}}\"\n      }\n    },\n    {\n      \"name\": \"pixelart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pixelart[${2:options%keyvals}]{${1:pixels}}\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzpixelart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzpixelart{${1:coord}}{${2:pixels}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpixelart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tikzpixelart[${3:options%keyvals}]{${1:coord}}{${2:pixels}}\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpixelartdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpixelartdefault{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartlogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartlogo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartheart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartheart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartheart[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartname[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartlogobw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartlogobw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartlogobw[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartheartbw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartheartbw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartheartbw[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pixelartnamebw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pixelartnamebw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pixelartnamebw[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newpixelartcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpixelartcolors{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"renewpixelartcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewpixelartcolors{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setpixelartdebugon\"\n    },\n    {\n      \"name\": \"setpixelartdebugoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pixelart#c\": [\n      \"draft\"\n    ],\n    \"\\\\pixelart,\\\\tikzpixelart,\\\\setpixelartdefault,\\\\pixelartlogo,\\\\pixelartheart,\\\\pixelartname,\\\\pixelartlogobw,\\\\pixelartheartbw,\\\\pixelartnamebw\": [\n      \"colors=${1:options}\",\n      \"draft\",\n      \"margin=\",\n      \"squares\",\n      \"squares={${1:options}}\",\n      \"stack\",\n      \"style=${1:keyword}\",\n      \"tikz={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pixelart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pkgloader.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"lt3graph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LoadPackagesNow\"\n    },\n    {\n      \"name\": \"Load\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/placeat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"placeat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"placeat(${2:x},${3:y}){${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"placeat(${3:x},${4:y}){${1:content}}[${2:name}]\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"placeat(${3:x},${4:y})[${2:content-left}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"arg\": {\n        \"format\": \"()[]{}[]\",\n        \"snippet\": \"placeat(${4:x},${5:y})[${2:content-left}]{${1:content}}[${3:name}]\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeat{${1:x}}{${2:y}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"placeat{${1:x}}{${2:y}}{${3:content}}[${4:name}]\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"placeat{${1:x}}{${2:y}}[${4:content-left}]{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"placeat{${1:x}}{${2:y}}[${4:content-left}]{${3:content}}[${5:name}]\"\n      }\n    },\n    {\n      \"name\": \"placerelto\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"placerelto[${2:name}](${3:x},${4:y}){${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"placerelto\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"placerelto[${2:name}](${4:x},${5:y}){${1:content}}[${3:name}]\"\n      }\n    },\n    {\n      \"name\": \"placerelto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"placerelto[${4:name}]{${1:x}}{${2:y}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"placerelto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"placerelto[${4:name}]{${1:x}}{${2:y}}{${3:content}}[${5:name}]\"\n      }\n    },\n    {\n      \"name\": \"placeminipageat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeminipageat{${1:x}}{${2:y}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeminipageat\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"placeminipageat{${1:x}}{${2:y}}[${4:width}]{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"placeatsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeatsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\placeatsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"placelineat\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"placelineat(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"placelineat\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"placelineat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"placearrowat\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"placearrowat(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"placearrowat\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"placearrowat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"placecircleat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"placecircleat(${2:x},${3:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placecircleat\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"placecircleat[${2:color}](${3:x},${4:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placefilledcircleat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"placefilledcircleat(${2:x},${3:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placefilledcircleat\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"placefilledcircleat[${2:color}](${3:x},${4:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placesquareat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"placesquareat(${2:x},${3:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placesquareat\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"placesquareat[${2:color}](${3:x},${4:y}){${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"placerectangleat\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"placerectangleat(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"placerectangleat\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"placerectangleat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"placefilledrectangleat\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"placefilledrectangleat(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"placefilledrectangleat\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"placefilledrectangleat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"placecurveat\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"placecurveat(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})(${7:x4},${8:y4})\"\n      }\n    },\n    {\n      \"name\": \"placecurveat\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"placecurveat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})(${8:x4},${9:y4})\"\n      }\n    },\n    {\n      \"name\": \"placeroundedat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"placeroundedat(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"placeroundedat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"placeroundedat[${1:color}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"placeatthreenumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeatthreenumbers{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"firstof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"firstof{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"secondof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secondof{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"drawgridnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drawgrid\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\placeatsetup\": [\n      \"gridnumber=\",\n      \"gridnumberx=\",\n      \"gridnumbery=\",\n      \"nogrid\",\n      \"drawgrid\",\n      \"numnumgrid\",\n      \"alphanumgrid\",\n      \"offsetx=\",\n      \"offsety=\",\n      \"startzero\",\n      \"linewidth=\",\n      \"gridlinewidth=\",\n      \"arrowheadlength=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/placeins.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"FloatBarrier\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/placeins#c\": [\n      \"section\",\n      \"above\",\n      \"below\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/placeins#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plaintex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"aa\"\n    },\n    {\n      \"name\": \"AA\"\n    },\n    {\n      \"name\": \"above\"\n    },\n    {\n      \"name\": \"abovedisplayshortskip\"\n    },\n    {\n      \"name\": \"abovedisplayskip\"\n    },\n    {\n      \"name\": \"active\"\n    },\n    {\n      \"name\": \"adjdemerits\"\n    },\n    {\n      \"name\": \"advance\"\n    },\n    {\n      \"name\": \"advancepageno\"\n    },\n    {\n      \"name\": \"ae\"\n    },\n    {\n      \"name\": \"AE\"\n    },\n    {\n      \"name\": \"aleph\",\n      \"detail\": \"ℵ\",\n      \"doc\": \"Aleph, hebrew\"\n    },\n    {\n      \"name\": \"allocationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowbreak\"\n    },\n    {\n      \"name\": \"amalg\",\n      \"detail\": \"⨿\",\n      \"doc\": \"Amalgamation or coproduct\"\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"arrowvert\"\n    },\n    {\n      \"name\": \"Arrowvert\"\n    },\n    {\n      \"name\": \"ast\",\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"asymp\",\n      \"detail\": \"≍\",\n      \"doc\": \"Asymptotically equal to\"\n    },\n    {\n      \"name\": \"atop\"\n    },\n    {\n      \"name\": \"b\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"b{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"badness\"\n    },\n    {\n      \"name\": \"baselineskip\"\n    },\n    {\n      \"name\": \"batchmode\"\n    },\n    {\n      \"name\": \"begingroup\"\n    },\n    {\n      \"name\": \"beginsection\"\n    },\n    {\n      \"name\": \"belowdisplayshortskip\"\n    },\n    {\n      \"name\": \"belowdisplayskip\"\n    },\n    {\n      \"name\": \"bf\"\n    },\n    {\n      \"name\": \"bffam\"\n    },\n    {\n      \"name\": \"bgroup\"\n    },\n    {\n      \"name\": \"big\"\n    },\n    {\n      \"name\": \"Big\"\n    },\n    {\n      \"name\": \"bigbreak\"\n    },\n    {\n      \"name\": \"bigcirc\"\n    },\n    {\n      \"name\": \"bigg\"\n    },\n    {\n      \"name\": \"Bigg\"\n    },\n    {\n      \"name\": \"biggl\"\n    },\n    {\n      \"name\": \"Biggl\"\n    },\n    {\n      \"name\": \"biggm\"\n    },\n    {\n      \"name\": \"Biggm\"\n    },\n    {\n      \"name\": \"biggr\"\n    },\n    {\n      \"name\": \"Biggr\"\n    },\n    {\n      \"name\": \"bigl\"\n    },\n    {\n      \"name\": \"Bigl\"\n    },\n    {\n      \"name\": \"bigm\"\n    },\n    {\n      \"name\": \"Bigm\"\n    },\n    {\n      \"name\": \"bigodot\",\n      \"detail\": \"⨀\",\n      \"doc\": \"N-ary circled dot operator\"\n    },\n    {\n      \"name\": \"bigoplus\",\n      \"detail\": \"⨁\",\n      \"doc\": \"N-ary circled plus operator\"\n    },\n    {\n      \"name\": \"bigotimes\",\n      \"detail\": \"⨂\",\n      \"doc\": \"N-ary circled times operator\"\n    },\n    {\n      \"name\": \"bigr\"\n    },\n    {\n      \"name\": \"Bigr\"\n    },\n    {\n      \"name\": \"bigskip\"\n    },\n    {\n      \"name\": \"bigskipamount\"\n    },\n    {\n      \"name\": \"bigsqcup\",\n      \"detail\": \"⨆\",\n      \"doc\": \"N-ary square union operator\"\n    },\n    {\n      \"name\": \"bigtriangledown\",\n      \"detail\": \"▽\",\n      \"doc\": \"Big down triangle, open\"\n    },\n    {\n      \"name\": \"bigtriangleup\",\n      \"detail\": \"△\",\n      \"doc\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n    },\n    {\n      \"name\": \"biguplus\",\n      \"detail\": \"⨄\",\n      \"doc\": \"N-ary union operator with plus\"\n    },\n    {\n      \"name\": \"bigvee\",\n      \"detail\": \"⋁\",\n      \"doc\": \"Logical and operator\"\n    },\n    {\n      \"name\": \"bigwedge\",\n      \"detail\": \"⋀\",\n      \"doc\": \"Logical or operator\"\n    },\n    {\n      \"name\": \"binoppenalty\"\n    },\n    {\n      \"name\": \"bmod\"\n    },\n    {\n      \"name\": \"bordermatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bordermatrix{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"bot\",\n      \"detail\": \"⊥\",\n      \"doc\": \"Up tack, bottom\"\n    },\n    {\n      \"name\": \"botmark\"\n    },\n    {\n      \"name\": \"bowtie\",\n      \"detail\": \"⋈\",\n      \"doc\": \"\\\\lrtimes (txfonts), bowtie\"\n    },\n    {\n      \"name\": \"boxmaxdepth\"\n    },\n    {\n      \"name\": \"brace\"\n    },\n    {\n      \"name\": \"braceld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracevert\"\n    },\n    {\n      \"name\": \"brack\"\n    },\n    {\n      \"name\": \"break\"\n    },\n    {\n      \"name\": \"brokenpenalty\"\n    },\n    {\n      \"name\": \"bullet\"\n    },\n    {\n      \"name\": \"bye\"\n    },\n    {\n      \"name\": \"c\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"c{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"cal\"\n    },\n    {\n      \"name\": \"cases\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cases{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"catcode\"\n    },\n    {\n      \"name\": \"cdotp\",\n      \"detail\": \"·\",\n      \"doc\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n    },\n    {\n      \"name\": \"centerline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choose\"\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cleaders\"\n    },\n    {\n      \"name\": \"cleartabs\"\n    },\n    {\n      \"name\": \"clubpenalty\"\n    },\n    {\n      \"name\": \"clubsuit\",\n      \"detail\": \"♣\",\n      \"doc\": \"Club suit symbol\"\n    },\n    {\n      \"name\": \"colon\"\n    },\n    {\n      \"name\": \"columns\"\n    },\n    {\n      \"name\": \"cong\",\n      \"detail\": \"≅\",\n      \"doc\": \"Congruent with\"\n    },\n    {\n      \"name\": \"coprod\",\n      \"detail\": \"∐\",\n      \"doc\": \"Coproduct operator\"\n    },\n    {\n      \"name\": \"copyright\"\n    },\n    {\n      \"name\": \"cos\"\n    },\n    {\n      \"name\": \"cosh\"\n    },\n    {\n      \"name\": \"cot\"\n    },\n    {\n      \"name\": \"coth\"\n    },\n    {\n      \"name\": \"cr\"\n    },\n    {\n      \"name\": \"crcr\"\n    },\n    {\n      \"name\": \"csc\"\n    },\n    {\n      \"name\": \"csname\"\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"dag\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"dashv\",\n      \"detail\": \"⊣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left tack, non-theorem, does not yield, (dash and vertical)\"\n    },\n    {\n      \"name\": \"day\"\n    },\n    {\n      \"name\": \"ddag\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"deadcycles\"\n    },\n    {\n      \"name\": \"def\"\n    },\n    {\n      \"name\": \"defaulthyphenchar\"\n    },\n    {\n      \"name\": \"defaultskewchar\"\n    },\n    {\n      \"name\": \"deg\"\n    },\n    {\n      \"name\": \"delimiterfactor\"\n    },\n    {\n      \"name\": \"delimitershortfall\"\n    },\n    {\n      \"name\": \"det\"\n    },\n    {\n      \"name\": \"diamond\"\n    },\n    {\n      \"name\": \"diamondsuit\",\n      \"detail\": \"♢\",\n      \"doc\": \"Diamond suit symbol\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"discretionary\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"discretionary{${1:pre-break text}}{${2:post-break text}}{${3:no-break text}}\"\n      }\n    },\n    {\n      \"name\": \"displayindent\"\n    },\n    {\n      \"name\": \"displaylimits\"\n    },\n    {\n      \"name\": \"displaylines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displaylines{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"displaywidowpenalty\"\n    },\n    {\n      \"name\": \"displaywidth\"\n    },\n    {\n      \"name\": \"do\"\n    },\n    {\n      \"name\": \"dospecials\"\n    },\n    {\n      \"name\": \"dosupereject\"\n    },\n    {\n      \"name\": \"doteq\",\n      \"detail\": \"≐\",\n      \"doc\": \"\\\\dotequal (wrisym), equals, single dot above\"\n    },\n    {\n      \"name\": \"dotfill\"\n    },\n    {\n      \"name\": \"dots\"\n    },\n    {\n      \"name\": \"doublehyphendemerits\"\n    },\n    {\n      \"name\": \"downarrow\",\n      \"detail\": \"↓\",\n      \"doc\": \"Downward arrow\"\n    },\n    {\n      \"name\": \"Downarrow\",\n      \"detail\": \"⇓\",\n      \"doc\": \"Down double arrow\"\n    },\n    {\n      \"name\": \"downbracefill\"\n    },\n    {\n      \"name\": \"dump\"\n    },\n    {\n      \"name\": \"edef\"\n    },\n    {\n      \"name\": \"egroup\"\n    },\n    {\n      \"name\": \"eject\"\n    },\n    {\n      \"name\": \"ell\",\n      \"detail\": \"ℓ\",\n      \"doc\": \"Cursive small l\"\n    },\n    {\n      \"name\": \"else\"\n    },\n    {\n      \"name\": \"emergencystretch\"\n    },\n    {\n      \"name\": \"empty\"\n    },\n    {\n      \"name\": \"emptyset\"\n    },\n    {\n      \"name\": \"end\"\n    },\n    {\n      \"name\": \"endcsname\"\n    },\n    {\n      \"name\": \"endgraf\"\n    },\n    {\n      \"name\": \"endgroup\"\n    },\n    {\n      \"name\": \"endinput\"\n    },\n    {\n      \"name\": \"endinsert\"\n    },\n    {\n      \"name\": \"endline\"\n    },\n    {\n      \"name\": \"endlinechar\"\n    },\n    {\n      \"name\": \"enskip\"\n    },\n    {\n      \"name\": \"enspace\"\n    },\n    {\n      \"name\": \"eqalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalign{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"eqalignno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqalignno{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"eqno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"errhelp\"\n    },\n    {\n      \"name\": \"errmessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"errmessage{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"errorcontextlines\"\n    },\n    {\n      \"name\": \"errorstopmode\"\n    },\n    {\n      \"name\": \"escapechar\"\n    },\n    {\n      \"name\": \"everycr\"\n    },\n    {\n      \"name\": \"everydisplay\"\n    },\n    {\n      \"name\": \"everyhbox\"\n    },\n    {\n      \"name\": \"everyjob\"\n    },\n    {\n      \"name\": \"everymath\"\n    },\n    {\n      \"name\": \"everypar\"\n    },\n    {\n      \"name\": \"everyvbox\"\n    },\n    {\n      \"name\": \"exhyphenpenalty\"\n    },\n    {\n      \"name\": \"exp\"\n    },\n    {\n      \"name\": \"expandafter\"\n    },\n    {\n      \"name\": \"fam\"\n    },\n    {\n      \"name\": \"fi\"\n    },\n    {\n      \"name\": \"filbreak\"\n    },\n    {\n      \"name\": \"finalhyphendemerits\"\n    },\n    {\n      \"name\": \"firstmark\"\n    },\n    {\n      \"name\": \"fivebf\"\n    },\n    {\n      \"name\": \"fivei\"\n    },\n    {\n      \"name\": \"fiverm\"\n    },\n    {\n      \"name\": \"fivesy\"\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"floatingpenalty\"\n    },\n    {\n      \"name\": \"fmtname\"\n    },\n    {\n      \"name\": \"fmtversion\"\n    },\n    {\n      \"name\": \"folio\"\n    },\n    {\n      \"name\": \"font\"\n    },\n    {\n      \"name\": \"footins\"\n    },\n    {\n      \"name\": \"footline\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnote{${1:mark}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoterule\"\n    },\n    {\n      \"name\": \"footstrut\"\n    },\n    {\n      \"name\": \"frenchspacing\"\n    },\n    {\n      \"name\": \"frown\",\n      \"detail\": \"⌢\",\n      \"doc\": \"\\\\smallfrown, frown (down curve)\"\n    },\n    {\n      \"name\": \"futurelet\"\n    },\n    {\n      \"name\": \"gcd\"\n    },\n    {\n      \"name\": \"gdef\"\n    },\n    {\n      \"name\": \"ge\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"global\"\n    },\n    {\n      \"name\": \"globaldefs\"\n    },\n    {\n      \"name\": \"goodbreak\"\n    },\n    {\n      \"name\": \"H\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"H{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"halign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"halign{${1:⟨preamble⟩ \\\\cr ⟨row⟩ \\\\cr ... ⟨row⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"hang\"\n    },\n    {\n      \"name\": \"hangafter\"\n    },\n    {\n      \"name\": \"hangindent\"\n    },\n    {\n      \"name\": \"hbadness\"\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"hbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hbox{${1:horizontal mode material%text}}\"\n      }\n    },\n    {\n      \"name\": \"headline\"\n    },\n    {\n      \"name\": \"heartsuit\",\n      \"detail\": \"♡\",\n      \"doc\": \"Heart suit symbol\"\n    },\n    {\n      \"name\": \"hfil\"\n    },\n    {\n      \"name\": \"hfill\"\n    },\n    {\n      \"name\": \"hfilneg\"\n    },\n    {\n      \"name\": \"hfuzz\"\n    },\n    {\n      \"name\": \"hglue\"\n    },\n    {\n      \"name\": \"hideskip\"\n    },\n    {\n      \"name\": \"hidewidth\"\n    },\n    {\n      \"name\": \"hoffset\"\n    },\n    {\n      \"name\": \"holdinginserts\"\n    },\n    {\n      \"name\": \"hom\"\n    },\n    {\n      \"name\": \"hookleftarrow\",\n      \"detail\": \"↩\",\n      \"doc\": \"Left arrow-hooked\"\n    },\n    {\n      \"name\": \"hookrightarrow\",\n      \"detail\": \"↪\",\n      \"doc\": \"Right arrow-hooked\"\n    },\n    {\n      \"name\": \"hphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrule\"\n    },\n    {\n      \"name\": \"hrulefill\"\n    },\n    {\n      \"name\": \"hsize\"\n    },\n    {\n      \"name\": \"hskip\"\n    },\n    {\n      \"name\": \"hss\"\n    },\n    {\n      \"name\": \"hyphenation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyphenation{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenpenalty\"\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ialign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ialign{${1:⟨preamble⟩ \\\\cr ⟨row⟩ \\\\cr ... ⟨row⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"if\"\n    },\n    {\n      \"name\": \"ifcase\"\n    },\n    {\n      \"name\": \"ifcat\"\n    },\n    {\n      \"name\": \"ifdim\"\n    },\n    {\n      \"name\": \"ifeof\"\n    },\n    {\n      \"name\": \"iff\"\n    },\n    {\n      \"name\": \"iffalse\"\n    },\n    {\n      \"name\": \"ifhbox\"\n    },\n    {\n      \"name\": \"ifhmode\"\n    },\n    {\n      \"name\": \"ifinner\"\n    },\n    {\n      \"name\": \"ifmmode\"\n    },\n    {\n      \"name\": \"ifnum\"\n    },\n    {\n      \"name\": \"ifodd\"\n    },\n    {\n      \"name\": \"iftrue\"\n    },\n    {\n      \"name\": \"ifvbox\"\n    },\n    {\n      \"name\": \"ifvmode\"\n    },\n    {\n      \"name\": \"ifvoid\"\n    },\n    {\n      \"name\": \"ifx\"\n    },\n    {\n      \"name\": \"ignorespaces\"\n    },\n    {\n      \"name\": \"Im\",\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"imath\",\n      \"detail\": \"𝚤\",\n      \"doc\": \"Mathematical italic small dotless i\"\n    },\n    {\n      \"name\": \"immediate\"\n    },\n    {\n      \"name\": \"indent\"\n    },\n    {\n      \"name\": \"inf\"\n    },\n    {\n      \"name\": \"insert\"\n    },\n    {\n      \"name\": \"insertpenalties\"\n    },\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"interdisplaylinepenalty\"\n    },\n    {\n      \"name\": \"interfootnotelinepenalty\"\n    },\n    {\n      \"name\": \"interlinepenalty\"\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"it\"\n    },\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"item{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"itemitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemitem{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"itfam\"\n    },\n    {\n      \"name\": \"j\"\n    },\n    {\n      \"name\": \"jmath\",\n      \"detail\": \"𝚥\",\n      \"doc\": \"Mathematical italic small dotless j\"\n    },\n    {\n      \"name\": \"jobname\"\n    },\n    {\n      \"name\": \"joinrel\"\n    },\n    {\n      \"name\": \"jot\"\n    },\n    {\n      \"name\": \"ker\"\n    },\n    {\n      \"name\": \"l\"\n    },\n    {\n      \"name\": \"L\"\n    },\n    {\n      \"name\": \"land\"\n    },\n    {\n      \"name\": \"langle\",\n      \"detail\": \"⟨\",\n      \"doc\": \"Mathematical left angle bracket\"\n    },\n    {\n      \"name\": \"language\"\n    },\n    {\n      \"name\": \"lastbox\"\n    },\n    {\n      \"name\": \"lastkern\"\n    },\n    {\n      \"name\": \"lastpenalty\"\n    },\n    {\n      \"name\": \"lastskip\"\n    },\n    {\n      \"name\": \"lbrace\",\n      \"detail\": \"{\",\n      \"doc\": \"\\\\lbrace, left curly bracket\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"lceil\",\n      \"detail\": \"⌈\",\n      \"doc\": \"Left ceiling\"\n    },\n    {\n      \"name\": \"ldotp\"\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"leaders\"\n    },\n    {\n      \"name\": \"leavevmode\"\n    },\n    {\n      \"name\": \"leftarrowfill\"\n    },\n    {\n      \"name\": \"leftharpoondown\",\n      \"detail\": \"↽\",\n      \"doc\": \"Left harpoon-down\"\n    },\n    {\n      \"name\": \"leftharpoonup\",\n      \"detail\": \"↼\",\n      \"doc\": \"Left harpoon-up\"\n    },\n    {\n      \"name\": \"lefthyphenmin\"\n    },\n    {\n      \"name\": \"leftline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightarrow\",\n      \"detail\": \"↔\",\n      \"doc\": \"\\\\rel (oz), left right arrow, relation\"\n    },\n    {\n      \"name\": \"leftskip\"\n    },\n    {\n      \"name\": \"leqalignno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqalignno{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"leqno\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"let\"\n    },\n    {\n      \"name\": \"lfloor\",\n      \"detail\": \"⌊\",\n      \"doc\": \"Left floor\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"lgroup\"\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lim\"\n    },\n    {\n      \"name\": \"liminf\"\n    },\n    {\n      \"name\": \"limits\"\n    },\n    {\n      \"name\": \"limsup\"\n    },\n    {\n      \"name\": \"line\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"line{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"linepenalty\"\n    },\n    {\n      \"name\": \"lineskip\"\n    },\n    {\n      \"name\": \"lineskiplimit\"\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"llap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lmoustache\",\n      \"detail\": \"⎰\",\n      \"doc\": \"? \\\\lmoustache, upper left or lower right curly bracket section\"\n    },\n    {\n      \"name\": \"ln\"\n    },\n    {\n      \"name\": \"lnot\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"loggingall\"\n    },\n    {\n      \"name\": \"long\"\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"longleftrightarrow\",\n      \"detail\": \"⟷\",\n      \"doc\": \"Long left right arrow\"\n    },\n    {\n      \"name\": \"Longleftrightarrow\",\n      \"detail\": \"⟺\",\n      \"doc\": \"\\\\iff (oz), long left right double arrow\"\n    },\n    {\n      \"name\": \"longmapsto\",\n      \"detail\": \"⟼\",\n      \"doc\": \"Long rightwards arrow from bar\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"loop\"\n    },\n    {\n      \"name\": \"looseness\"\n    },\n    {\n      \"name\": \"lor\"\n    },\n    {\n      \"name\": \"lowercase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercase{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"lq\"\n    },\n    {\n      \"name\": \"mag\"\n    },\n    {\n      \"name\": \"magstephalf\"\n    },\n    {\n      \"name\": \"makefootline\"\n    },\n    {\n      \"name\": \"makeheadline\"\n    },\n    {\n      \"name\": \"mapsto\",\n      \"detail\": \"↦\",\n      \"doc\": \"Maps to, rightward, maplet\"\n    },\n    {\n      \"name\": \"mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mark{${1:mark text}}\"\n      }\n    },\n    {\n      \"name\": \"mathbin\"\n    },\n    {\n      \"name\": \"mathchoice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mathchoice{${1:math1}}{${2:math2}}{${3:math3}}{${4:math4}}\"\n      }\n    },\n    {\n      \"name\": \"mathclose\"\n    },\n    {\n      \"name\": \"mathhexbox\"\n    },\n    {\n      \"name\": \"mathinner\"\n    },\n    {\n      \"name\": \"mathop\"\n    },\n    {\n      \"name\": \"mathopen\"\n    },\n    {\n      \"name\": \"mathord\"\n    },\n    {\n      \"name\": \"mathpalette\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathpalette{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mathpunct\"\n    },\n    {\n      \"name\": \"mathrel\"\n    },\n    {\n      \"name\": \"mathstrut\"\n    },\n    {\n      \"name\": \"mathsurround\"\n    },\n    {\n      \"name\": \"matrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrix{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"max\"\n    },\n    {\n      \"name\": \"maxdeadcycles\"\n    },\n    {\n      \"name\": \"maxdepth\"\n    },\n    {\n      \"name\": \"maxdimen\"\n    },\n    {\n      \"name\": \"meaning\"\n    },\n    {\n      \"name\": \"medbreak\"\n    },\n    {\n      \"name\": \"medmuskip\"\n    },\n    {\n      \"name\": \"medskip\"\n    },\n    {\n      \"name\": \"medskipamount\"\n    },\n    {\n      \"name\": \"message\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"message{${1:token list%text}}\"\n      }\n    },\n    {\n      \"name\": \"midinsert\"\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"mit\"\n    },\n    {\n      \"name\": \"models\",\n      \"detail\": \"⊧\",\n      \"doc\": \"Models (vertical, short double dash)\"\n    },\n    {\n      \"name\": \"month\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"mscount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nabla\",\n      \"detail\": \"∇\",\n      \"doc\": \"Nabla, del, hamilton operator\"\n    },\n    {\n      \"name\": \"narrower\"\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"nearrow\",\n      \"detail\": \"↗\",\n      \"doc\": \"Ne pointing arrow\"\n    },\n    {\n      \"name\": \"negthinspace\"\n    },\n    {\n      \"name\": \"newbox\"\n    },\n    {\n      \"name\": \"newcount\"\n    },\n    {\n      \"name\": \"newdimen\"\n    },\n    {\n      \"name\": \"newfam\"\n    },\n    {\n      \"name\": \"newhelp\"\n    },\n    {\n      \"name\": \"newif\"\n    },\n    {\n      \"name\": \"newinsert\"\n    },\n    {\n      \"name\": \"newlanguage\"\n    },\n    {\n      \"name\": \"newlinechar\"\n    },\n    {\n      \"name\": \"newmuskip\"\n    },\n    {\n      \"name\": \"newread\"\n    },\n    {\n      \"name\": \"newskip\"\n    },\n    {\n      \"name\": \"newtoks\"\n    },\n    {\n      \"name\": \"newwrite\"\n    },\n    {\n      \"name\": \"ni\",\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"noalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noalign{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"noboundary\"\n    },\n    {\n      \"name\": \"nobreak\"\n    },\n    {\n      \"name\": \"noexpand\"\n    },\n    {\n      \"name\": \"nointerlineskip\"\n    },\n    {\n      \"name\": \"nolimits\"\n    },\n    {\n      \"name\": \"nonfrenchspacing\"\n    },\n    {\n      \"name\": \"nonscript\"\n    },\n    {\n      \"name\": \"nonstopmode\"\n    },\n    {\n      \"name\": \"nopagenumbers\"\n    },\n    {\n      \"name\": \"normalbaselines\"\n    },\n    {\n      \"name\": \"normalbaselineskip\"\n    },\n    {\n      \"name\": \"normalbottom\"\n    },\n    {\n      \"name\": \"normallineskip\"\n    },\n    {\n      \"name\": \"normallineskiplimit\"\n    },\n    {\n      \"name\": \"not\",\n      \"detail\": \" ̸\",\n      \"doc\": \"Combining long solidus overlay\"\n    },\n    {\n      \"name\": \"null\"\n    },\n    {\n      \"name\": \"nulldelimiterspace\"\n    },\n    {\n      \"name\": \"nullfont\"\n    },\n    {\n      \"name\": \"nwarrow\",\n      \"detail\": \"↖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Nw pointing arrow\"\n    },\n    {\n      \"name\": \"o\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"oalign\"\n    },\n    {\n      \"name\": \"obeylines\"\n    },\n    {\n      \"name\": \"obeyspaces\"\n    },\n    {\n      \"name\": \"odot\",\n      \"detail\": \"⊙\",\n      \"doc\": \"Middle dot in circle\"\n    },\n    {\n      \"name\": \"oe\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"of\"\n    },\n    {\n      \"name\": \"offinterlineskip\"\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldstyle\"\n    },\n    {\n      \"name\": \"ominus\",\n      \"detail\": \"⊖\",\n      \"doc\": \"Minus sign in circle\"\n    },\n    {\n      \"name\": \"omit\"\n    },\n    {\n      \"name\": \"ooalign\"\n    },\n    {\n      \"name\": \"oplus\",\n      \"detail\": \"⊕\",\n      \"doc\": \"Plus sign in circle\"\n    },\n    {\n      \"name\": \"or\"\n    },\n    {\n      \"name\": \"Orb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslash\",\n      \"detail\": \"⊘\",\n      \"doc\": \"Solidus in circle\"\n    },\n    {\n      \"name\": \"otimes\",\n      \"detail\": \"⊗\",\n      \"doc\": \"Multiply sign in circle\"\n    },\n    {\n      \"name\": \"outer\"\n    },\n    {\n      \"name\": \"output\"\n    },\n    {\n      \"name\": \"outputpenalty\"\n    },\n    {\n      \"name\": \"over\"\n    },\n    {\n      \"name\": \"overfullrule\"\n    },\n    {\n      \"name\": \"overleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftarrow{${1:text%plain}}\"\n      },\n      \"detail\": \"x⃖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\overleftarrow, combining left arrow above\"\n    },\n    {\n      \"name\": \"overrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarrow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"owns\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"pagebody\"\n    },\n    {\n      \"name\": \"pagecontents\"\n    },\n    {\n      \"name\": \"pagedepth\"\n    },\n    {\n      \"name\": \"pagefilllstretch\"\n    },\n    {\n      \"name\": \"pagefillstretch\"\n    },\n    {\n      \"name\": \"pagefilstretch\"\n    },\n    {\n      \"name\": \"pagegoal\"\n    },\n    {\n      \"name\": \"pageinsert\"\n    },\n    {\n      \"name\": \"pageno\"\n    },\n    {\n      \"name\": \"pageshrink\"\n    },\n    {\n      \"name\": \"pagestretch\"\n    },\n    {\n      \"name\": \"pagetotal\"\n    },\n    {\n      \"name\": \"par\"\n    },\n    {\n      \"name\": \"parallel\",\n      \"detail\": \"∥\",\n      \"doc\": \"Parallel\"\n    },\n    {\n      \"name\": \"parfillskip\"\n    },\n    {\n      \"name\": \"parindent\"\n    },\n    {\n      \"name\": \"parshape\"\n    },\n    {\n      \"name\": \"parskip\"\n    },\n    {\n      \"name\": \"patterns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patterns{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"pausing\"\n    },\n    {\n      \"name\": \"perp\",\n      \"detail\": \"⟂\",\n      \"doc\": \"Perpendicular\"\n    },\n    {\n      \"name\": \"phantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plainoutput\"\n    },\n    {\n      \"name\": \"pmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmatrix{${1:⟨line⟩ \\\\cr ... ⟨line⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"pmod\"\n    },\n    {\n      \"name\": \"postdisplaypenalty\"\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"prec\",\n      \"detail\": \"≺\",\n      \"doc\": \"Precedes\"\n    },\n    {\n      \"name\": \"preceq\",\n      \"detail\": \"⪯\",\n      \"doc\": \"Precedes above single-line equals sign\"\n    },\n    {\n      \"name\": \"predisplaypenalty\"\n    },\n    {\n      \"name\": \"predisplaysize\"\n    },\n    {\n      \"name\": \"pretolerance\"\n    },\n    {\n      \"name\": \"prevdepth\"\n    },\n    {\n      \"name\": \"prevgraf\"\n    },\n    {\n      \"name\": \"proclaim\"\n    },\n    {\n      \"name\": \"propto\",\n      \"detail\": \"∝\",\n      \"doc\": \"\\\\varpropto (amssymb), is proportional to\"\n    },\n    {\n      \"name\": \"qquad\"\n    },\n    {\n      \"name\": \"quad\"\n    },\n    {\n      \"name\": \"raggedbottom\"\n    },\n    {\n      \"name\": \"rangle\",\n      \"detail\": \"⟩\",\n      \"doc\": \"Mathematical right angle bracket\"\n    },\n    {\n      \"name\": \"rbrace\",\n      \"detail\": \"}\",\n      \"doc\": \"\\\\rbrace, right curly bracket\"\n    },\n    {\n      \"name\": \"rbrack\",\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"rceil\",\n      \"detail\": \"⌉\",\n      \"doc\": \"Right ceiling\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"relax\"\n    },\n    {\n      \"name\": \"relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relpenalty\"\n    },\n    {\n      \"name\": \"removelastskip\"\n    },\n    {\n      \"name\": \"repeat\"\n    },\n    {\n      \"name\": \"rfloor\",\n      \"detail\": \"⌋\",\n      \"doc\": \"Right floor\"\n    },\n    {\n      \"name\": \"rgroup\"\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightarrowfill\"\n    },\n    {\n      \"name\": \"rightharpoondown\",\n      \"detail\": \"⇁\",\n      \"doc\": \"Right harpoon-down\"\n    },\n    {\n      \"name\": \"rightharpoonup\",\n      \"detail\": \"⇀\",\n      \"doc\": \"Right harpoon-up\"\n    },\n    {\n      \"name\": \"righthyphenmin\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightskip\"\n    },\n    {\n      \"name\": \"rlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rm\"\n    },\n    {\n      \"name\": \"rmoustache\",\n      \"detail\": \"⎱\",\n      \"doc\": \"? \\\\rmoustache, upper right or lower left curly bracket section\"\n    },\n    {\n      \"name\": \"root\"\n    },\n    {\n      \"name\": \"rootbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rq\"\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"sb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"scriptscriptstyle\"\n    },\n    {\n      \"name\": \"scriptspace\"\n    },\n    {\n      \"name\": \"scriptstyle\"\n    },\n    {\n      \"name\": \"scrollmode\"\n    },\n    {\n      \"name\": \"searrow\",\n      \"detail\": \"↘\",\n      \"doc\": \"Se pointing arrow\"\n    },\n    {\n      \"name\": \"sec\"\n    },\n    {\n      \"name\": \"settabs\"\n    },\n    {\n      \"name\": \"sevenbf\"\n    },\n    {\n      \"name\": \"seveni\"\n    },\n    {\n      \"name\": \"sevenrm\"\n    },\n    {\n      \"name\": \"sevensy\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"showboxbreadth\"\n    },\n    {\n      \"name\": \"showboxdepth\"\n    },\n    {\n      \"name\": \"showhyphens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showhyphens{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"showlists\"\n    },\n    {\n      \"name\": \"sim\",\n      \"detail\": \"∼\",\n      \"doc\": \"Similar to, tilde operator\"\n    },\n    {\n      \"name\": \"simeq\",\n      \"detail\": \"≃\",\n      \"doc\": \"Similar, equals\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"sinh\"\n    },\n    {\n      \"name\": \"sl\"\n    },\n    {\n      \"name\": \"slash\"\n    },\n    {\n      \"name\": \"slfam\"\n    },\n    {\n      \"name\": \"smallbreak\"\n    },\n    {\n      \"name\": \"smallint\"\n    },\n    {\n      \"name\": \"smallskip\"\n    },\n    {\n      \"name\": \"smallskipamount\"\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smile\",\n      \"detail\": \"⌣\",\n      \"doc\": \"\\\\smallsmile, smile (up curve)\"\n    },\n    {\n      \"name\": \"sp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"space\"\n    },\n    {\n      \"name\": \"spacefactor\"\n    },\n    {\n      \"name\": \"spaceskip\"\n    },\n    {\n      \"name\": \"spadesuit\",\n      \"detail\": \"♠\",\n      \"doc\": \"Spades suit symbol\"\n    },\n    {\n      \"name\": \"span\"\n    },\n    {\n      \"name\": \"special\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"special{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"splitbotmark\"\n    },\n    {\n      \"name\": \"splitfirstmark\"\n    },\n    {\n      \"name\": \"splitmaxdepth\"\n    },\n    {\n      \"name\": \"splittopskip\"\n    },\n    {\n      \"name\": \"sqcap\",\n      \"detail\": \"⊓\",\n      \"doc\": \"Square intersection\"\n    },\n    {\n      \"name\": \"sqcup\",\n      \"detail\": \"⊔\",\n      \"doc\": \"Square union\"\n    },\n    {\n      \"name\": \"sqsubseteq\",\n      \"detail\": \"⊑\",\n      \"doc\": \"Square subset, equals\"\n    },\n    {\n      \"name\": \"sqsupseteq\",\n      \"detail\": \"⊒\",\n      \"doc\": \"Square superset, equals\"\n    },\n    {\n      \"name\": \"ss\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"strut\"\n    },\n    {\n      \"name\": \"strutbox\"\n    },\n    {\n      \"name\": \"subseteq\",\n      \"detail\": \"⊆\",\n      \"doc\": \"Subset, equals\"\n    },\n    {\n      \"name\": \"succ\",\n      \"detail\": \"≻\",\n      \"doc\": \"Succeeds\"\n    },\n    {\n      \"name\": \"succeq\",\n      \"detail\": \"⪰\",\n      \"doc\": \"Succeeds above single-line equals sign\"\n    },\n    {\n      \"name\": \"sup\"\n    },\n    {\n      \"name\": \"supereject\"\n    },\n    {\n      \"name\": \"supseteq\",\n      \"detail\": \"⊇\",\n      \"doc\": \"Superset, equals\"\n    },\n    {\n      \"name\": \"surd\"\n    },\n    {\n      \"name\": \"swarrow\",\n      \"detail\": \"↙\",\n      \"doc\": \"Sw pointing arrow\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:oo}}\"\n      }\n    },\n    {\n      \"name\": \"tabalign\"\n    },\n    {\n      \"name\": \"tabs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabsdone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabskip\"\n    },\n    {\n      \"name\": \"tabsyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"tenbf\"\n    },\n    {\n      \"name\": \"tenex\"\n    },\n    {\n      \"name\": \"teni\"\n    },\n    {\n      \"name\": \"tenit\"\n    },\n    {\n      \"name\": \"tenrm\"\n    },\n    {\n      \"name\": \"tensl\"\n    },\n    {\n      \"name\": \"tensy\"\n    },\n    {\n      \"name\": \"tentt\"\n    },\n    {\n      \"name\": \"TeX\"\n    },\n    {\n      \"name\": \"textindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textindent{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"textstyle\"\n    },\n    {\n      \"name\": \"the\"\n    },\n    {\n      \"name\": \"thickmuskip\"\n    },\n    {\n      \"name\": \"thinmuskip\"\n    },\n    {\n      \"name\": \"thinspace\"\n    },\n    {\n      \"name\": \"time\"\n    },\n    {\n      \"name\": \"to\"\n    },\n    {\n      \"name\": \"tolerance\"\n    },\n    {\n      \"name\": \"top\",\n      \"detail\": \"⊤\",\n      \"doc\": \"Down tack, top\"\n    },\n    {\n      \"name\": \"topglue\"\n    },\n    {\n      \"name\": \"topins\"\n    },\n    {\n      \"name\": \"topinsert\"\n    },\n    {\n      \"name\": \"topmark\"\n    },\n    {\n      \"name\": \"topskip\"\n    },\n    {\n      \"name\": \"tracingall\"\n    },\n    {\n      \"name\": \"tracingcommands\"\n    },\n    {\n      \"name\": \"tracinglostchars\"\n    },\n    {\n      \"name\": \"tracingmacros\"\n    },\n    {\n      \"name\": \"tracingonline\"\n    },\n    {\n      \"name\": \"tracingoutput\"\n    },\n    {\n      \"name\": \"tracingpages\"\n    },\n    {\n      \"name\": \"tracingparagraphs\"\n    },\n    {\n      \"name\": \"tracingrestores\"\n    },\n    {\n      \"name\": \"tracingstats\"\n    },\n    {\n      \"name\": \"triangle\"\n    },\n    {\n      \"name\": \"triangleleft\",\n      \"detail\": \"◁ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\dres (oz), \\\\lefttriangle (wrisym), (large) left triangle, open; domain restriction\"\n    },\n    {\n      \"name\": \"triangleright\",\n      \"detail\": \"▷ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\rres (oz), \\\\righttriangle (wrisym), (large) right triangle, open; range restriction\"\n    },\n    {\n      \"name\": \"tt\"\n    },\n    {\n      \"name\": \"ttfam\"\n    },\n    {\n      \"name\": \"ttraggedright\"\n    },\n    {\n      \"name\": \"u\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"u{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"uchyph\"\n    },\n    {\n      \"name\": \"underbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:text}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"unkern\"\n    },\n    {\n      \"name\": \"unpenalty\"\n    },\n    {\n      \"name\": \"unskip\"\n    },\n    {\n      \"name\": \"uparrow\",\n      \"detail\": \"↑\",\n      \"doc\": \"Upward arrow\"\n    },\n    {\n      \"name\": \"Uparrow\",\n      \"detail\": \"⇑\",\n      \"doc\": \"Up double arrow\"\n    },\n    {\n      \"name\": \"upbracefill\"\n    },\n    {\n      \"name\": \"updownarrow\",\n      \"detail\": \"↕\",\n      \"doc\": \"Up and down arrow\"\n    },\n    {\n      \"name\": \"Updownarrow\",\n      \"detail\": \"⇕\",\n      \"doc\": \"Up and down double arrow\"\n    },\n    {\n      \"name\": \"uplus\",\n      \"detail\": \"⊎\",\n      \"doc\": \"\\\\buni (oz), plus sign in union\"\n    },\n    {\n      \"name\": \"uppercase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercase{${1:token list%text}}\"\n      }\n    },\n    {\n      \"name\": \"v\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"v{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"vadjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vadjust{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"valign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valign{${1:⟨preamble⟩ \\\\cr ⟨column⟩ \\\\cr ... ⟨column⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"vbadness\"\n    },\n    {\n      \"name\": \"vbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vbox{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"vcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcenter{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"vdash\",\n      \"detail\": \"⊢\",\n      \"doc\": \"Right tack, proves, implies, yields, (vertical and dash)\"\n    },\n    {\n      \"name\": \"vdots\",\n      \"detail\": \"⋮\",\n      \"doc\": \"Vertical ellipsis\"\n    },\n    {\n      \"name\": \"vert\",\n      \"detail\": \"|\",\n      \"doc\": \"\\\\vert, vertical bar\"\n    },\n    {\n      \"name\": \"Vert\",\n      \"detail\": \"‖\",\n      \"doc\": \"\\\\vert, double vertical bar\"\n    },\n    {\n      \"name\": \"vfil\"\n    },\n    {\n      \"name\": \"vfill\"\n    },\n    {\n      \"name\": \"vfilneg\"\n    },\n    {\n      \"name\": \"vfootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vfootnote{${1:mark}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"vfuzz\"\n    },\n    {\n      \"name\": \"vglue\"\n    },\n    {\n      \"name\": \"voffset\"\n    },\n    {\n      \"name\": \"vphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vrule\"\n    },\n    {\n      \"name\": \"vsize\"\n    },\n    {\n      \"name\": \"vskip\"\n    },\n    {\n      \"name\": \"vss\"\n    },\n    {\n      \"name\": \"vtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtop{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"widowpenalty\"\n    },\n    {\n      \"name\": \"wlog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wlog{${1:token list%text}}\"\n      }\n    },\n    {\n      \"name\": \"wp\",\n      \"detail\": \"℘ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Weierstrass p\"\n    },\n    {\n      \"name\": \"wr\",\n      \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Wreath product\"\n    },\n    {\n      \"name\": \"xdef\"\n    },\n    {\n      \"name\": \"xleaders\"\n    },\n    {\n      \"name\": \"xspaceskip\"\n    },\n    {\n      \"name\": \"year\"\n    },\n    {\n      \"name\": \"*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \">\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big(${1}\\\\big)\"\n      }\n    },\n    {\n      \"name\": \"big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big[${1}\\\\big]\"\n      }\n    },\n    {\n      \"name\": \"big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big|${1}\\\\big|\"\n      }\n    },\n    {\n      \"name\": \"Big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big(${1}\\\\Big)\"\n      }\n    },\n    {\n      \"name\": \"Big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big[${1}\\\\Big]\"\n      }\n    },\n    {\n      \"name\": \"Big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big|${1}\\\\Big|\"\n      }\n    },\n    {\n      \"name\": \"bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl(${1}\\\\bigr)\"\n      }\n    },\n    {\n      \"name\": \"bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl[${1}\\\\bigr]\"\n      }\n    },\n    {\n      \"name\": \"bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl\\\\{${1}\\\\bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl(${1}\\\\Bigr)\"\n      }\n    },\n    {\n      \"name\": \"Bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl[${1}\\\\Bigr]\"\n      }\n    },\n    {\n      \"name\": \"Bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl\\\\{${1}\\\\Bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl(${1}\\\\biggr)\"\n      }\n    },\n    {\n      \"name\": \"biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl[${1}\\\\biggr]\"\n      }\n    },\n    {\n      \"name\": \"biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl\\\\{${1}\\\\biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl(${1}\\\\Biggr)\"\n      }\n    },\n    {\n      \"name\": \"Biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl[${1}\\\\Biggr]\"\n      }\n    },\n    {\n      \"name\": \"Biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl\\\\{${1}\\\\Biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"int_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"int_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"lim_\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lim_{${1:min}}\"\n      }\n    },\n    {\n      \"name\": \"prod_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"prod_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"sum_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"sum_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"beginL\"\n    },\n    {\n      \"name\": \"beginR\"\n    },\n    {\n      \"name\": \"detokenize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detokenize{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endL\"\n    },\n    {\n      \"name\": \"endR\"\n    },\n    {\n      \"name\": \"eTeXrevision\"\n    },\n    {\n      \"name\": \"eTeXversion\"\n    },\n    {\n      \"name\": \"everyeof\"\n    },\n    {\n      \"name\": \"currentgrouplevel\"\n    },\n    {\n      \"name\": \"currentgrouptype\"\n    },\n    {\n      \"name\": \"currentiflevel\"\n    },\n    {\n      \"name\": \"currentiftype\"\n    },\n    {\n      \"name\": \"currentifbranch\"\n    },\n    {\n      \"name\": \"ifcsname\"\n    },\n    {\n      \"name\": \"interactionmode\"\n    },\n    {\n      \"name\": \"lastlinefit\"\n    },\n    {\n      \"name\": \"lastnodetype\"\n    },\n    {\n      \"name\": \"middle\"\n    },\n    {\n      \"name\": \"numexpr\"\n    },\n    {\n      \"name\": \"parshapedimen\"\n    },\n    {\n      \"name\": \"parshapeindent\"\n    },\n    {\n      \"name\": \"parshapelength\"\n    },\n    {\n      \"name\": \"predisplaydirection\"\n    },\n    {\n      \"name\": \"protected\"\n    },\n    {\n      \"name\": \"scantokens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scantokens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showgroups\"\n    },\n    {\n      \"name\": \"showtokens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showtokens{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TeXXeTstate\"\n    },\n    {\n      \"name\": \"tracingassigns\"\n    },\n    {\n      \"name\": \"tracinggroups\"\n    },\n    {\n      \"name\": \"tracingifs\"\n    },\n    {\n      \"name\": \"tracingscantokens\"\n    },\n    {\n      \"name\": \"unexpanded\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unexpanded{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unless\"\n    },\n    {\n      \"name\": \"dimexpr\"\n    },\n    {\n      \"name\": \"glueexpr\"\n    },\n    {\n      \"name\": \"muexpr\"\n    },\n    {\n      \"name\": \"gluestretch\"\n    },\n    {\n      \"name\": \"glueshrink\"\n    },\n    {\n      \"name\": \"gluestretchorder\"\n    },\n    {\n      \"name\": \"glueshrinkorder\"\n    },\n    {\n      \"name\": \"interlinepenalties\"\n    },\n    {\n      \"name\": \"clubpenalties\"\n    },\n    {\n      \"name\": \"widowpenalties\"\n    },\n    {\n      \"name\": \"displaywidowpenalties\"\n    },\n    {\n      \"name\": \"tracingnesting\"\n    },\n    {\n      \"name\": \"savingvdiscards\"\n    },\n    {\n      \"name\": \"savinghyphcodes\"\n    },\n    {\n      \"name\": \"showifs\"\n    },\n    {\n      \"name\": \"pagediscards\"\n    },\n    {\n      \"name\": \"splitdiscards\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/planets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"planet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"planet[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\planet\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\planet\": [\n      \"surface=${1|mercury,venus,earth,mars,jupiter,saturn,uranus,neptune,pluto,sun,moon|}\",\n      \"rings\",\n      \"ring=${1:radius}\",\n      \"tilt=${1:degrees}\",\n      \"rotation\",\n      \"retrograde\",\n      \"phase=${1|new,first crescent,first half,waxing gibbous,full,waning gibbous,last half,last crescent|}\",\n      \"scale=\",\n      \"centerx=${1:x-coord}\",\n      \"centery=${1:y-coord}\",\n      \"center={${1:(x,y)}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plantuml.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"plantuml\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/platex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ptex\"\n    },\n    {\n      \"name\": \"latex-document\"\n    },\n    {\n      \"name\": \"latex-dev\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pfmtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfmtversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plIncludeInRelease\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plIncludeInRelease{${1:date}}{${2:command}}{${3:description}}\"\n      }\n    },\n    {\n      \"name\": \"plEndIncludeInRelease\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cHT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zstrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ystrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ystrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareYokoKanjiEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareYokoKanjiEncoding{${1:encoding}}{${2:text-settings}}{${3:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTateKanjiEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTateKanjiEncoding{${1:encoding}}{${2:text-settings}}{${3:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiEncodingDefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareKanjiEncodingDefaults{${1:text-settings}}{${2:math-settings}}\"\n      }\n    },\n    {\n      \"name\": \"KanjiEncodingPair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KanjiEncodingPair{${1:encoding1}}{${2:encoding2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareKanjiFamily{${1:encoding}}{${2:family}}{${3:loading-settings}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareKanjiSubstitution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareKanjiSubstitution{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareErrorKanjiFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"DeclareErrorKanjiFont{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\"\n      }\n    },\n    {\n      \"name\": \"reDeclareMathAlphabet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reDeclareMathAlphabet{${1:math-alph%cmd}}{${2:latin-math-alph%definition}}{${3:japanese-math-alph%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRelationFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"DeclareRelationFont{${1:enc1}}{${2:fam1}}{${3:series1}}{${4:shape1}}{${5:enc2}}{${6:fam2}}{${7:series2}}{${8:shape2}}\"\n      }\n    },\n    {\n      \"name\": \"SetRelationFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"SetRelationFont{${1:enc1}}{${2:fam1}}{${3:series1}}{${4:shape1}}{${5:enc2}}{${6:fam2}}{${7:series2}}{${8:shape2}}\"\n      }\n    },\n    {\n      \"name\": \"userelfont\"\n    },\n    {\n      \"name\": \"adjustbaseline\"\n    },\n    {\n      \"name\": \"romanencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"romanfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"kanjifamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjifamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"romanseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"romanseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiseriesforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjiseriesforce{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"romanshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanshape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"kanjishape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjishape{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"romanshapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romanshapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"kanjishapeforce\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kanjishapeforce{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"usekanji\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"usekanji{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"useroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"useroman{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"kanjiseriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcfamily\"\n    },\n    {\n      \"name\": \"gtfamily\"\n    },\n    {\n      \"name\": \"mathmc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathgt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textmc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fixcompositeaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nofixcompositeaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"<\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removejfmglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftombow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftombowdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowdatetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tombowdatefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketombowbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printglossary\"\n    },\n    {\n      \"name\": \"hour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mcdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gtdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjiencodingdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjifamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjiseriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kanjishapedefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plautopatch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plautopatchdisable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plautopatchdisable{${1:package}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/playcards.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"contour\"\n    },\n    {\n      \"name\": \"anttor\",\n      \"if\": \"anttor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawcardsrecto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawcardsrecto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawcardsrecto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawcardsrecto[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\drawcardsrecto\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawcardsverso\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawcardsverso{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"drawcardsverso\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawcardsverso[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\drawcardsverso\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/playcards#c\": [\n      \"anttor\"\n    ],\n    \"\\\\drawcardsrecto\": [\n      \"borders\",\n      \"trame\",\n      \"corners\",\n      \"backgroundImg\",\n      \"textColor=\",\n      \"backgroundColor=\",\n      \"contentsFontSize=${1:number}\",\n      \"circleRay=${1:number}\"\n    ],\n    \"\\\\drawcardsverso\": [\n      \"backgroundImg\",\n      \"trame\",\n      \"contentsFontSize=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/playcards#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pldocverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"doc\"\n    },\n    {\n      \"name\": \"pxmulticol\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plex-mono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plexmono\"\n    },\n    {\n      \"name\": \"plexmonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plex-mono#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"thin\",\n      \"t\",\n      \"extralight\",\n      \"el\",\n      \"light\",\n      \"l\",\n      \"text\",\n      \"tx\",\n      \"textmd\",\n      \"txmd\",\n      \"medium\",\n      \"m\",\n      \"semibold\",\n      \"sb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plex-mono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plex-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"slshapeRM\"\n    },\n    {\n      \"name\": \"PlexExtraLightRM\"\n    },\n    {\n      \"name\": \"PlexExtraLightRM\"\n    },\n    {\n      \"name\": \"PlexLightRM\"\n    },\n    {\n      \"name\": \"PlexThinRM\"\n    },\n    {\n      \"name\": \"PlexMediumRM\"\n    },\n    {\n      \"name\": \"PlexTextRM\"\n    },\n    {\n      \"name\": \"PlexSemiBoldRM\"\n    },\n    {\n      \"name\": \"slshapeSS\"\n    },\n    {\n      \"name\": \"PlexExtraLightSS\"\n    },\n    {\n      \"name\": \"PlexLightSS\"\n    },\n    {\n      \"name\": \"PlexThinSS\"\n    },\n    {\n      \"name\": \"PlexMediumSS\"\n    },\n    {\n      \"name\": \"PlexTextSS\"\n    },\n    {\n      \"name\": \"PlexSemiBoldSS\"\n    },\n    {\n      \"name\": \"sffamilyCon\"\n    },\n    {\n      \"name\": \"slshapeSScon\"\n    },\n    {\n      \"name\": \"PlexExtraLightSScon\"\n    },\n    {\n      \"name\": \"PlexLightSScon\"\n    },\n    {\n      \"name\": \"PlexThinSScon\"\n    },\n    {\n      \"name\": \"PlexMediumSScon\"\n    },\n    {\n      \"name\": \"PlexTextSScon\"\n    },\n    {\n      \"name\": \"PlexSemiBoldSScon\"\n    },\n    {\n      \"name\": \"slshapeTT\"\n    },\n    {\n      \"name\": \"PlexExtraLightTT\"\n    },\n    {\n      \"name\": \"PlexLightTT\"\n    },\n    {\n      \"name\": \"PlexThinTT\"\n    },\n    {\n      \"name\": \"PlexMediumTT\"\n    },\n    {\n      \"name\": \"PlexTextTT\"\n    },\n    {\n      \"name\": \"PlexSemiBoldTT\"\n    },\n    {\n      \"name\": \"CE\"\n    },\n    {\n      \"name\": \"FCC\"\n    },\n    {\n      \"name\": \"upleftarrow\"\n    },\n    {\n      \"name\": \"uprightarrow\"\n    },\n    {\n      \"name\": \"downleftarrow\"\n    },\n    {\n      \"name\": \"downrightarrow\"\n    },\n    {\n      \"name\": \"leftturn\"\n    },\n    {\n      \"name\": \"rightturn\"\n    },\n    {\n      \"name\": \"fullleftturn\"\n    },\n    {\n      \"name\": \"fullrightturn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plex-otf#c\": [\n      \"usefilenames\",\n      \"mono\",\n      \"sans\",\n      \"serif\",\n      \"RMstyle={${1:style list}}\",\n      \"SSstyle={${1:style list}}\",\n      \"SSconstyle={${1:style list}}\",\n      \"TTstyle={${1:style list}}\",\n      \"Style={${1:style list}}\",\n      \"RMSCfont=${1:font name}\",\n      \"SSSCfont=${1:font name}\",\n      \"RM={${1:fontspec options}}\",\n      \"SS={${1:fontspec options}}\",\n      \"SScon={${1:fontspec options}}\",\n      \"TT={${1:fontspec options}}\",\n      \"DefaultFeatures={${1:fontspec options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plex-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plex-sans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plexsans\"\n    },\n    {\n      \"name\": \"plexsanscondensed\"\n    },\n    {\n      \"name\": \"plexsansfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plexsanslgr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plex-sans#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"sfdefault\",\n      \"condensed\",\n      \"thin\",\n      \"t\",\n      \"extralight\",\n      \"el\",\n      \"light\",\n      \"l\",\n      \"text\",\n      \"tx\",\n      \"textmd\",\n      \"txmd\",\n      \"medium\",\n      \"m\",\n      \"semibold\",\n      \"sb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plex-sans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plex-serif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plexserif\"\n    },\n    {\n      \"name\": \"plexseriflgr\"\n    },\n    {\n      \"name\": \"plexseriffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plex-serif#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"thin\",\n      \"t\",\n      \"extralight\",\n      \"el\",\n      \"light\",\n      \"l\",\n      \"text\",\n      \"tx\",\n      \"textmd\",\n      \"txmd\",\n      \"medium\",\n      \"m\",\n      \"semibold\",\n      \"sb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plex-serif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"floatwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatruletick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionfloatsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captiondir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionfontsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"layoutfloat{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"layoutfloat[${2:pos}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"layoutfloat(${2:width},${3:height}){${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"layoutfloat\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"layoutfloat(${3:width},${4:height})[${2:pos}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLayoutCaption\",\n      \"arg\": {\n        \"format\": \"{}<>()[]\",\n        \"snippet\": \"DeclareLayoutCaption{${1:type}}<${3:dir}>(${4:width})[${2:⟨pos1⟩⟨pos2⟩}]\"\n      }\n    },\n    {\n      \"name\": \"layoutcaption<dir>\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"layoutcaption<dir>(${2:width})[${1:pos}]\"\n      }\n    },\n    {\n      \"name\": \"pcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pcaption[${2:short text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbox{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbox[${2:width}]{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"pbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pbox[${2:width}][${3:pos}]{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbox<dir>{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pbox<dir>[${2:width}]{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"pbox<dir>\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pbox<dir>[${2:width}][${3:pos}]{${1:obj}}\"\n      }\n    },\n    {\n      \"name\": \"rensuji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rensuji{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rensuji\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rensuji[${2:pos%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\rensuji#c,\\\\rensuji*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rensuji*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rensuji*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rensuji*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rensuji*[${2:pos%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\rensuji#c,\\\\rensuji*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rensujiskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kanji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Kanji{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"boutenchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bou\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bou{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kasen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kasen{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\rensuji#c,\\\\rensuji*#c\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plextarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"plext\"\n    },\n    {\n      \"name\": \"plarray\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plextcolortbl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"plextarray\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plextcolortbl#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvipsnames\",\n      \"nodvipsnames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plextcolortbl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plextdelarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"plextarray\"\n    },\n    {\n      \"name\": \"delarray\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/plimsoll.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"plimsoll\"\n    },\n    {\n      \"name\": \"plimsollsans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plimsollroman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stst\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plimsoll#c\": [\n      \"sans\",\n      \"circ\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plimsoll#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/plprefix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ThePrefixChar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefixing\"\n    },\n    {\n      \"name\": \"nonprefixing\"\n    },\n    {\n      \"name\": \"SetPrefixChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPrefixChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrefixMacro{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixingError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrefixingError{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"Prefix\"\n    },\n    {\n      \"name\": \"PlPrIeC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlPrIeC{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dywiz\"\n    },\n    {\n      \"name\": \"prefZisZkropka\"\n    },\n    {\n      \"name\": \"prefZisZkreska\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/plprefix#c\": [\n      \"/z\",\n      \"\\\"z\",\n      \"@z\",\n      \"/r\",\n      \"\\\"r\",\n      \"@r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/plprefix#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pm-isomath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"alphabeta\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MathLatin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathLatin{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MathLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MathLatin{${1:letter}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"MathLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"MathLatin{${1:letter}}{${2:family}}[${3:series}]\"\n      }\n    },\n    {\n      \"name\": \"MathLatin\",\n      \"arg\": {\n        \"format\": \"{}{}[]()\",\n        \"snippet\": \"MathLatin{${1:letter}}{${2:family}}[${3:series}](${4:shape})\"\n      }\n    },\n    {\n      \"name\": \"MathGreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MathGreek{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"MathGreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MathGreek{${1:letter}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"MathGreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"MathGreek{${1:letter}}{${2:family}}[${3:series}]\"\n      }\n    },\n    {\n      \"name\": \"MathGreek\",\n      \"arg\": {\n        \"format\": \"{}{}[]()\",\n        \"snippet\": \"MathGreek{${1:letter}}{${2:family}}[${3:series}](${4:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOalpha\"\n    },\n    {\n      \"name\": \"ISOalpha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOalpha{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOalpha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOalpha{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISObeta\"\n    },\n    {\n      \"name\": \"ISObeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISObeta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISObeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISObeta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOgamma\"\n    },\n    {\n      \"name\": \"ISOgamma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOgamma{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOgamma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOgamma{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOdelta\"\n    },\n    {\n      \"name\": \"ISOdelta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOdelta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOdelta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOdelta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOepsilon\"\n    },\n    {\n      \"name\": \"ISOepsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOepsilon{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOepsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOepsilon{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOzeta\"\n    },\n    {\n      \"name\": \"ISOzeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOzeta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOzeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOzeta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOeta\"\n    },\n    {\n      \"name\": \"ISOeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOeta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOeta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOeta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOtheta\"\n    },\n    {\n      \"name\": \"ISOtheta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOtheta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOtheta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOtheta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOiota\"\n    },\n    {\n      \"name\": \"ISOiota\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOiota{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOiota\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOiota{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOkappa\"\n    },\n    {\n      \"name\": \"ISOkappa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOkappa{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOkappa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOkappa{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOlambda\"\n    },\n    {\n      \"name\": \"ISOlambda\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOlambda{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOlambda\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOlambda{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOmu\"\n    },\n    {\n      \"name\": \"ISOmu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOmu{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOmu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOmu{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOnu\"\n    },\n    {\n      \"name\": \"ISOnu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOnu{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOnu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOnu{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOxi\"\n    },\n    {\n      \"name\": \"ISOxi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOxi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOxi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOxi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOomicron\"\n    },\n    {\n      \"name\": \"ISOomicron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOomicron{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOomicron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOomicron{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOpi\"\n    },\n    {\n      \"name\": \"ISOpi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOpi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOpi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOpi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOrho\"\n    },\n    {\n      \"name\": \"ISOrho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOrho{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOrho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOrho{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOsigma\"\n    },\n    {\n      \"name\": \"ISOsigma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOsigma{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOsigma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOsigma{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOtau\"\n    },\n    {\n      \"name\": \"ISOtau\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOtau{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOtau\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOtau{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOupsilon\"\n    },\n    {\n      \"name\": \"ISOupsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOupsilon{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOupsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOupsilon{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOphi\"\n    },\n    {\n      \"name\": \"ISOphi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOphi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOphi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOphi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOchi\"\n    },\n    {\n      \"name\": \"ISOchi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOchi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOchi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOchi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOpsi\"\n    },\n    {\n      \"name\": \"ISOpsi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOpsi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOpsi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOpsi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOomega\"\n    },\n    {\n      \"name\": \"ISOomega\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOomega{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOomega\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOomega{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOGamma\"\n    },\n    {\n      \"name\": \"ISOGamma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOGamma{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOGamma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOGamma{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISODelta\"\n    },\n    {\n      \"name\": \"ISODelta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISODelta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISODelta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISODelta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOEta\"\n    },\n    {\n      \"name\": \"ISOEta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOEta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOEta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOEta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOTheta\"\n    },\n    {\n      \"name\": \"ISOTheta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOTheta{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOTheta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOTheta{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOLambda\"\n    },\n    {\n      \"name\": \"ISOLambda\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOLambda{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOLambda\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOLambda{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOXi\"\n    },\n    {\n      \"name\": \"ISOXi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOXi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOXi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOXi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOPi\"\n    },\n    {\n      \"name\": \"ISOPi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOPi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOPi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOPi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISORho\"\n    },\n    {\n      \"name\": \"ISORho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISORho{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISORho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISORho{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOSigma\"\n    },\n    {\n      \"name\": \"ISOSigma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOSigma{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOSigma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOSigma{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOUpsilon\"\n    },\n    {\n      \"name\": \"ISOUpsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOUpsilon{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOUpsilon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOUpsilon{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOPhi\"\n    },\n    {\n      \"name\": \"ISOPhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOPhi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOPhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOPhi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOChi\"\n    },\n    {\n      \"name\": \"ISOChi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOChi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOChi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOChi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOPsi\"\n    },\n    {\n      \"name\": \"ISOPsi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOPsi{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOPsi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOPsi{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"ISOOmega\"\n    },\n    {\n      \"name\": \"ISOOmega\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISOOmega{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"ISOOmega\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"ISOOmega{${1:family}}[${2:series}](${3:shape})\"\n      }\n    },\n    {\n      \"name\": \"vectorsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorsymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"vectorsymbol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorsymbol*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matrixsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixsymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matrixsymbol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrixsymbol*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tensorsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensorsymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tensorsymbol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensorsymbol*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"switchvarsymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switchvarsymbols{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"switchvarlowercasegreekletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"switchvaruppercasegreekletters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISOser\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISOsha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ISOfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MLatin{${1:letter}}{${2:family}}{${3:shape}}{${4:series}}\"\n      }\n    },\n    {\n      \"name\": \"MGreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MGreek{${1:letter}}{${2:family}}{${3:shape}}{${4:series}}\"\n      }\n    },\n    {\n      \"name\": \"mathrmbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathrmbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"iunit\"\n    },\n    {\n      \"name\": \"junit\"\n    },\n    {\n      \"name\": \"iu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"diff\"\n    },\n    {\n      \"name\": \"PMpartialbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppartial\"\n    },\n    {\n      \"name\": \"uppartial\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uppartial[${1:shearing coeff}]\"\n      }\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"ISOohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textormath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textormath{${1:if text}}{${2:if math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ifengineer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"engineertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"engineerfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pm-isomath#c\": [\n      \"engineer\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pm-isomath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pmat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pmatcross\"\n    },\n    {\n      \"name\": \"pmatnocross\"\n    },\n    {\n      \"name\": \"pmatget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmatget{${1:parameter 0-6}}\"\n      }\n    },\n    {\n      \"name\": \"pmatset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmatset{${1:parameter 0-6}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pmat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:ldelim}}{${2:vline-spec}}{${3:rdelim}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pmat#c\": [\n      \"debug\",\n      \"cross\",\n      \"nocross\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pmat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pmboxdraw.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pmboxdrawbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmboxdrawbox{${1:template}}\"\n      }\n    },\n    {\n      \"name\": \"pmboxdrawrulewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmboxdrawrulewidth{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pmboxdrawdoublerulesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmboxdrawdoublerulesep{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pmboxdrawuni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmboxdrawuni{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"textblock\"\n    },\n    {\n      \"name\": \"textdkshade\"\n    },\n    {\n      \"name\": \"textdnblock\"\n    },\n    {\n      \"name\": \"textlfblock\"\n    },\n    {\n      \"name\": \"textltshade\"\n    },\n    {\n      \"name\": \"textrtblock\"\n    },\n    {\n      \"name\": \"textSFi\"\n    },\n    {\n      \"name\": \"textSFii\"\n    },\n    {\n      \"name\": \"textSFiii\"\n    },\n    {\n      \"name\": \"textSFiv\"\n    },\n    {\n      \"name\": \"textSFix\"\n    },\n    {\n      \"name\": \"textSFl\"\n    },\n    {\n      \"name\": \"textSFli\"\n    },\n    {\n      \"name\": \"textSFlii\"\n    },\n    {\n      \"name\": \"textSFliii\"\n    },\n    {\n      \"name\": \"textSFliv\"\n    },\n    {\n      \"name\": \"textSFv\"\n    },\n    {\n      \"name\": \"textSFvi\"\n    },\n    {\n      \"name\": \"textSFvii\"\n    },\n    {\n      \"name\": \"textSFviii\"\n    },\n    {\n      \"name\": \"textSFx\"\n    },\n    {\n      \"name\": \"textSFxi\"\n    },\n    {\n      \"name\": \"textSFxix\"\n    },\n    {\n      \"name\": \"textSFxl\"\n    },\n    {\n      \"name\": \"textSFxli\"\n    },\n    {\n      \"name\": \"textSFxlii\"\n    },\n    {\n      \"name\": \"textSFxliii\"\n    },\n    {\n      \"name\": \"textSFxliv\"\n    },\n    {\n      \"name\": \"textSFxlix\"\n    },\n    {\n      \"name\": \"textSFxlv\"\n    },\n    {\n      \"name\": \"textSFxlvi\"\n    },\n    {\n      \"name\": \"textSFxlvii\"\n    },\n    {\n      \"name\": \"textSFxlviii\"\n    },\n    {\n      \"name\": \"textSFxx\"\n    },\n    {\n      \"name\": \"textSFxxi\"\n    },\n    {\n      \"name\": \"textSFxxii\"\n    },\n    {\n      \"name\": \"textSFxxiii\"\n    },\n    {\n      \"name\": \"textSFxxiv\"\n    },\n    {\n      \"name\": \"textSFxxv\"\n    },\n    {\n      \"name\": \"textSFxxvi\"\n    },\n    {\n      \"name\": \"textSFxxvii\"\n    },\n    {\n      \"name\": \"textSFxxviii\"\n    },\n    {\n      \"name\": \"textSFxxxix\"\n    },\n    {\n      \"name\": \"textSFxxxvi\"\n    },\n    {\n      \"name\": \"textSFxxxvii\"\n    },\n    {\n      \"name\": \"textSFxxxviii\"\n    },\n    {\n      \"name\": \"textshade\"\n    },\n    {\n      \"name\": \"textupblock\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pmdb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pmInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pmInput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmInput[${2:arg}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pmInput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmInput*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pmInput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmInput*[${2:arg}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"InputParas\"\n    },\n    {\n      \"name\": \"InputQuizItems\"\n    },\n    {\n      \"name\": \"InputItems\"\n    },\n    {\n      \"name\": \"InputProbs\"\n    },\n    {\n      \"name\": \"ifpmdbtight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbtighttrue\"\n    },\n    {\n      \"name\": \"pmdbtightfalse\"\n    },\n    {\n      \"name\": \"pmCBPresets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmCBPresets{${1:eforms parameters}}\"\n      }\n    },\n    {\n      \"name\": \"useEditLnk\"\n    },\n    {\n      \"name\": \"useEditBtn\"\n    },\n    {\n      \"name\": \"editSourceBtn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"editSourceBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"editSourceBtn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"editSourceBtn[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"editSourceOn\"\n    },\n    {\n      \"name\": \"editSourceOff\"\n    },\n    {\n      \"name\": \"editSourceLnk\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"editSourceLnk{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"editSourceLnk\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"editSourceLnk[${4:eforms parameters}]{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"displayChoices\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"displayChoices{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"displayChoices\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"displayChoices[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clrChoices\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clrChoices{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"clrChoices\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"clrChoices[${3:eforms parameters}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"displayChoiceCA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayChoiceCA{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"displayChoiceTU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayChoiceTU{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"clrChoicesCA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clrChoicesCA{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"clrChoicesTU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clrChoicesTU{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"altCBMargins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbInQzMargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbSelectInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cbSelectInput{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ckBxInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ckBxInput{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"doinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinput{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"donext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editSourcefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editSourcetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeditSource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpmdbDQs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpmdbFP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpmdbmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifqzInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Input\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputConta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputConti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputContii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputContii{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"insertCkBx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertCkBx{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"isItFullPath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isItFullPath{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"ItemHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemHook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmAlignCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmAlignCBAlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbDQsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbDQstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbFPfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbFPtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbmodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdbmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmiarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmInputChk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmInputWarni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmInputWarnii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qzInputfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qzInputtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removedqs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removesemis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removesemis{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"saveQNo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setCBsMarg\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qrcstamps#c\": [\n      \"dbmode\",\n      \"!dbmode\",\n      \"tight\",\n      \"!tight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qrcstamps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pmdraw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalligraphy\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pmdEmpty\"\n    },\n    {\n      \"name\": \"pmdBrick\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pmdBrick[${4:options%keyvals}]{${1:U-edges}}{${2:L-edges}}{${3:T-edges}}\",\n        \"keys\": [\n          \"\\\\pmdBrick#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pmdDiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmdDiagram{${1:bricks}}\"\n      }\n    },\n    {\n      \"name\": \"pmdDiagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmdDiagram[${2:options%keyvals}]{${1:bricks}}\",\n        \"keys\": [\n          \"\\\\pmdDiagram#c,\\\\pmdProduct#c,\\\\pmdProductTriple#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pmdProduct\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmdProduct{${1:A-edges}}{${2:T-bricks}}{${3:B-bricks}}\"\n      }\n    },\n    {\n      \"name\": \"pmdProduct\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pmdProduct[${4:options%keyvals}]{${1:A-edges}}{${2:T-bricks}}{${3:B-bricks}}\",\n        \"keys\": [\n          \"\\\\pmdDiagram#c,\\\\pmdProduct#c,\\\\pmdProductTriple#c\",\n          \"\\\\pmdProduct#c,\\\\pmdProductTriple#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pmdProductTriple\",\n      \"arg\": {\n        \"format\": \"{}{}{}}{}{}\",\n        \"snippet\": \"pmdProductTriple{${1:ATedges}}{${2:ABedges}}{${3:Tbricks}}}{${4:Mbricks}}{${5:Bbricks}}\"\n      }\n    },\n    {\n      \"name\": \"pmdProductTriple\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}}{}{}\",\n        \"snippet\": \"pmdProductTriple[${6:options%keyvals}]{${1:ATedges}}{${2:ABedges}}{${3:Tbricks}}}{${4:Mbricks}}{${5:Bbricks}}\",\n        \"keys\": [\n          \"\\\\pmdDiagram#c,\\\\pmdProduct#c,\\\\pmdProductTriple#c\",\n          \"\\\\pmdProduct#c,\\\\pmdProductTriple#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pmdBrick#c\": [\n      \"degree=${1:integer}\",\n      \"degree top=${1:integer}\",\n      \"degree bottom=${1:integer}\",\n      \"blank top=${1:integer}\",\n      \"blank bottom=${1:integer}\",\n      \"row sep=${1:integer}\",\n      \"vertices={${1:\\\\draw options}}\",\n      \"no vertex bottom 1=${1:integer}\",\n      \"no vertex bottom 2=${1:integer}\",\n      \"no vertex bottom 3=${1:integer}\",\n      \"no vertex bottom 4=${1:integer}\",\n      \"no vertex bottom 5=${1:integer}\",\n      \"no vertex bottom 6=${1:integer}\",\n      \"no vertex bottom 7=${1:integer}\",\n      \"no vertex bottom 8=${1:integer}\",\n      \"no vertex bottom 9=${1:integer}\",\n      \"no vertex top 1=${1:integer}\",\n      \"no vertex top 2=${1:integer}\",\n      \"no vertex top 3=${1:integer}\",\n      \"no vertex top 4=${1:integer}\",\n      \"no vertex top 5=${1:integer}\",\n      \"no vertex top 6=${1:integer}\",\n      \"no vertex top 7=${1:integer}\",\n      \"no vertex top 8=${1:integer}\",\n      \"no vertex top 9=${1:integer}\",\n      \"vertices options={${1:code}}\",\n      \"labels\",\n      \"labels top\",\n      \"labels bottom\",\n      \"labels start=${1:integer}\",\n      \"labels top start=${1:integer}\",\n      \"labels bottom start=${1:integer}\",\n      \"no label bottom 1=${1:integer}\",\n      \"no label bottom 2=${1:integer}\",\n      \"no label bottom 3=${1:integer}\",\n      \"no label bottom 4=${1:integer}\",\n      \"no label bottom 5=${1:integer}\",\n      \"no label bottom 6=${1:integer}\",\n      \"no label bottom 7=${1:integer}\",\n      \"no label bottom 8=${1:integer}\",\n      \"no label bottom 9=${1:integer}\",\n      \"no label top 1=${1:integer}\",\n      \"no label top 2=${1:integer}\",\n      \"no label top 3=${1:integer}\",\n      \"no label top 4=${1:integer}\",\n      \"no label top 5=${1:integer}\",\n      \"no label top 6=${1:integer}\",\n      \"no label top 7=${1:integer}\",\n      \"no label top 8=${1:integer}\",\n      \"no label top 9=${1:integer}\",\n      \"labels top draw={${1:\\\\draw options}}\",\n      \"labels top node={${1:\\\\node options}}\",\n      \"labels bottom draw={${1:\\\\draw options}}\",\n      \"labels bottom node={${1:\\\\node options}}\",\n      \"labels top options={${1:code}}\",\n      \"labels bottom options={${1:code}}\",\n      \"no dots\",\n      \"dots draw={${1:\\\\draw options}}\",\n      \"dots node={${1:\\\\node options}}\",\n      \"vertices top phantom\",\n      \"vertices bottom phantom\",\n      \"vertices top uncover={${1:overlay spec}}\",\n      \"vertices bottom uncover={${1:overlay spec}}\",\n      \"levels=${1:integer}\",\n      \"levels top=${1:integer}\",\n      \"levels bottom=${1:integer}\",\n      \"levels sep=${1:number}\",\n      \"levels sep top=${1:number}\",\n      \"levels sep bottom=${1:number}\",\n      \"edges={${1:\\\\draw options}}\",\n      \"edges non-transversal={${1:\\\\draw options}}\",\n      \"edges upper={${1:\\\\draw options}}\",\n      \"edges lower={${1:\\\\draw options}}\",\n      \"edges transversal={${1:\\\\draw options}}\",\n      \"edges first\",\n      \"transversals first\",\n      \"edges phantom\",\n      \"edges uncover={${1:overlay spec}}\",\n      \"brace={${1:options}}\",\n      \"brace draw={${1:\\\\draw options}}\",\n      \"brace node={${1:\\\\node options}}\",\n      \"decorate before={${1:code}}\",\n      \"decorate after={${1:code}}\"\n    ],\n    \"\\\\pmdDiagram#c,\\\\pmdProduct#c,\\\\pmdProductTriple#c\": [\n      \"row sep=${1:integer}\",\n      \"tikz={${1:TikZ options}}\",\n      \"dots options={${1:code}}\",\n      \"grid\",\n      \"decorate before={${1:code}}\",\n      \"decorate after={${1:code}}\"\n    ],\n    \"\\\\pmdProduct#c,\\\\pmdProductTriple#c\": [\n      \"diagram sep=${1:number}\",\n      \"vertex sep=${1:number}\",\n      \"edges added={${1:\\\\draw options}}\",\n      \"edges added phantom\",\n      \"edges added uncover={${1:overlay spec}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pmhanguljamo-frkim.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hg{${1:words}}\"\n      }\n    },\n    {\n      \"name\": \"hangul\"\n    },\n    {\n      \"name\": \"endhangul\"\n    },\n    {\n      \"name\": \"jamoword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamoword{${1:words}}\"\n      }\n    },\n    {\n      \"name\": \"frcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frcc{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"rq\"\n    },\n    {\n      \"name\": \"zeroisx\"\n    },\n    {\n      \"name\": \"zeroisrq\"\n    },\n    {\n      \"name\": \"frdash\"\n    },\n    {\n      \"name\": \"frendash\"\n    },\n    {\n      \"name\": \"fremdash\"\n    },\n    {\n      \"name\": \"frkhangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frkhangulfontfeature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activatefrcccmds\"\n    },\n    {\n      \"name\": \"setpmhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpmhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpmhangulfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setpmhangulfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"AddRule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddRule{${1:cho|${3:jung}|jong}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"jamoul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jamoul{${1:ulem csname}}{${2:jamo text}}\"\n      }\n    },\n    {\n      \"name\": \"RenewVowels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewVowels{${1:vowels}}\"\n      }\n    },\n    {\n      \"name\": \"RenewLeadingZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewLeadingZero{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frccg\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccG\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccn\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccd\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccD\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccr\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccm\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccb\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccB\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccs\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccS\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccq\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccQ\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccj\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccJ\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccc\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcck\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcct\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccp\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcch\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccz\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccX\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccv\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcca\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccia\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcce\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccie\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcco\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoi\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccio\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoa\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccu\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccui\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciu\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccue\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccuei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcci\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccy\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccyi\",\n      \"if\": \"frcccmds\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"jamotext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pmhanguljamo-frkim#c\": [\n      \"zeroisx\",\n      \"hangulfont=${1:font name}\",\n      \"hangulfontfeature=${1:font feature}\",\n      \"frcccmds\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pmhanguljamo-frkim#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pmhanguljamo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jamoword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamoword{${1:words}}\"\n      }\n    },\n    {\n      \"name\": \"jmcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmcc{${1:single jamo}}\"\n      }\n    },\n    {\n      \"name\": \"jamoul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jamoul{${1:ulem csname}}{${2:jamo text}}\"\n      }\n    },\n    {\n      \"name\": \"jamotextcmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jamotextcmd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ColonMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SemiColonMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SlashMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CntrdotMark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usepmfont\"\n    },\n    {\n      \"name\": \"unusepmfont\"\n    },\n    {\n      \"name\": \"setpmhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpmhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpmhangulfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setpmhangulfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"hg\",\n      \"if\": \"method=frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hg{${1:words}}\"\n      }\n    },\n    {\n      \"name\": \"hangul\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"endhangul\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"frcc\",\n      \"if\": \"method=frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frcc{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"rq\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"zeroisx\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"zeroisrq\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"frdash\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"frendash\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"fremdash\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"frkhangulfont\",\n      \"if\": \"method=frkim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frkhangulfontfeature\",\n      \"if\": \"method=frkim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activatefrcccmds\",\n      \"if\": \"method=frkim\"\n    },\n    {\n      \"name\": \"AddRule\",\n      \"if\": \"method=frkim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddRule{${1:cho|${3:jung}|jong}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"RenewVowels\",\n      \"if\": \"method=frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewVowels{${1:vowels}}\"\n      }\n    },\n    {\n      \"name\": \"RenewLeadingZero\",\n      \"if\": \"method=frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewLeadingZero{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hg\",\n      \"if\": \"frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hg{${1:words}}\"\n      }\n    },\n    {\n      \"name\": \"hangul\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"endhangul\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"frcc\",\n      \"if\": \"frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frcc{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"rq\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"zeroisx\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"zeroisrq\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"frdash\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"frendash\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"fremdash\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"frkhangulfont\",\n      \"if\": \"frkim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frkhangulfontfeature\",\n      \"if\": \"frkim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activatefrcccmds\",\n      \"if\": \"frkim\"\n    },\n    {\n      \"name\": \"AddRule\",\n      \"if\": \"frkim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddRule{${1:cho|${3:jung}|jong}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"RenewVowels\",\n      \"if\": \"frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewVowels{${1:vowels}}\"\n      }\n    },\n    {\n      \"name\": \"RenewLeadingZero\",\n      \"if\": \"frkim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewLeadingZero{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frccg\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccG\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccn\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccd\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccD\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccr\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccm\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccb\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccB\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccs\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccS\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccq\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccQ\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccj\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccJ\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccc\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcck\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcct\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccp\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcch\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccz\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccX\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccv\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcca\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccia\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcce\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccie\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcco\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoi\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccio\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoa\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccoai\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccu\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccui\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcciu\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccue\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccuei\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frcci\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccy\",\n      \"if\": \"frcccmds\"\n    },\n    {\n      \"name\": \"frccyi\",\n      \"if\": \"frcccmds\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"jamotext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pmhanguljamo#c\": [\n      \"method=${1|pm,rrk,frkim|}\",\n      \"rrk\",\n      \"frkim\",\n      \"pmfont=${1:font name}\",\n      \"pmfontfeature=${1:font feature}\",\n      \"zeroisx\",\n      \"hangulfont=${1:font name}\",\n      \"hangulfontfeature=${1:font feature}\",\n      \"frcccmds\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pmhanguljamo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/poemscol.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifnormaltitleindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normaltitleindentationtrue\"\n    },\n    {\n      \"name\": \"normaltitleindentationfalse\"\n    },\n    {\n      \"name\": \"normaltitleindentationscheme\"\n    },\n    {\n      \"name\": \"iftitlesatleftversemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesatleftversemargintrue\"\n    },\n    {\n      \"name\": \"titlesatleftversemarginfalse\"\n    },\n    {\n      \"name\": \"titlesatleftversemarginscheme\"\n    },\n    {\n      \"name\": \"iftitlescenteredonleftverseblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlescenteredonleftverseblocktrue\"\n    },\n    {\n      \"name\": \"titlescenteredonleftverseblockfalse\"\n    },\n    {\n      \"name\": \"titlescenteredonleftverseblockscheme\"\n    },\n    {\n      \"name\": \"iftitlesatleftmarginofcenteredblock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesatleftmarginofcenteredblocktrue\"\n    },\n    {\n      \"name\": \"titlesatleftmarginofcenteredblockfalse\"\n    },\n    {\n      \"name\": \"titlesatleftmarginofcenteredblockscheme\"\n    },\n    {\n      \"name\": \"ifcentertitleson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centertitlesontrue\"\n    },\n    {\n      \"name\": \"centertitlesonfalse\"\n    },\n    {\n      \"name\": \"centertitlesscheme\"\n    },\n    {\n      \"name\": \"titlesatleftmarginofcenteredblockscheme\"\n    },\n    {\n      \"name\": \"poemtitlewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleftalignepigraphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftalignepigraphstrue\"\n    },\n    {\n      \"name\": \"leftalignepigraphsfalse\"\n    },\n    {\n      \"name\": \"poemtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpoemtitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpoemskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflinenumberscenteredwithverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberscenteredwithversetrue\"\n    },\n    {\n      \"name\": \"linenumberscenteredwithversefalse\"\n    },\n    {\n      \"name\": \"ifcenterepigraphson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerepigraphsontrue\"\n    },\n    {\n      \"name\": \"centerepigraphsonfalse\"\n    },\n    {\n      \"name\": \"iftextcenteringturnedon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcenteringturnedontrue\"\n    },\n    {\n      \"name\": \"textcenteringturnedonfalse\"\n    },\n    {\n      \"name\": \"versemarginadjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startparalleltexts\"\n    },\n    {\n      \"name\": \"stanzaatbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stanzaatbottom{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"nostanzaatbottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nostanzaatbottom{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"verseline\"\n    },\n    {\n      \"name\": \"setverselinemodulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setverselinemodulo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"makeverselinenumbers\"\n    },\n    {\n      \"name\": \"ifverselinenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verselinenumberstrue\"\n    },\n    {\n      \"name\": \"verselinenumbersfalse\"\n    },\n    {\n      \"name\": \"verselinenumberstoright\"\n    },\n    {\n      \"name\": \"verselinenumberstoleft\"\n    },\n    {\n      \"name\": \"verselinenumbersouter\"\n    },\n    {\n      \"name\": \"verselinenumbersgutter\"\n    },\n    {\n      \"name\": \"headoffsetlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsepmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclsideparvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verseindent\"\n    },\n    {\n      \"name\": \"verseindent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verseindent[${1:levels}]\"\n      }\n    },\n    {\n      \"name\": \"verseindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indentedstanzaamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linebend\"\n    },\n    {\n      \"name\": \"runoverindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runoverindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"brokenline\"\n    },\n    {\n      \"name\": \"versephantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versephantom{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"stanzalinestraddle\"\n    },\n    {\n      \"name\": \"tweakbrokenline\"\n    },\n    {\n      \"name\": \"brokenlineatbeginning\"\n    },\n    {\n      \"name\": \"startverseline\"\n    },\n    {\n      \"name\": \"tweakstartverseline\"\n    },\n    {\n      \"name\": \"rightversebegin\"\n    },\n    {\n      \"name\": \"poemlinelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemlinelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemcontents\"\n    },\n    {\n      \"name\": \"makepoemcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"makepoemcontents[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"putpoemcontents\"\n    },\n    {\n      \"name\": \"resetpagestyle\"\n    },\n    {\n      \"name\": \"puttextnotes\"\n    },\n    {\n      \"name\": \"putemendations\"\n    },\n    {\n      \"name\": \"putexplanatory\"\n    },\n    {\n      \"name\": \"putpoemindex\"\n    },\n    {\n      \"name\": \"putmultiplepoemindex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"putmultiplepoemindex{${1:shortcut}}{${2:title%text}}{${3:header%text}}{${4:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"setcontentsleaders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcontentsleaders{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"contentsleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemdotfill\"\n    },\n    {\n      \"name\": \"contentspoemtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentoneamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclcontentsentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmclcontentsentry{${1:title%text}}{${2:indent cmd}}{${3:page number}}\"\n      }\n    },\n    {\n      \"name\": \"contentsindentone\"\n    },\n    {\n      \"name\": \"contentsindenttwo\"\n    },\n    {\n      \"name\": \"contentsindentthree\"\n    },\n    {\n      \"name\": \"ifputpagenumbersincontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpagenumbersincontentstrue\"\n    },\n    {\n      \"name\": \"putpagenumbersincontentsfalse\"\n    },\n    {\n      \"name\": \"pmclecontentsentrydefaults\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmclecontentsentrydefaults{${1:title%text}}{${2:indent cmd}}{${3:fontsize cmd}}{${4:page number}}\"\n      }\n    },\n    {\n      \"name\": \"ifindexingon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexingontrue\"\n    },\n    {\n      \"name\": \"indexingonfalse\"\n    },\n    {\n      \"name\": \"wholebooktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wholebooktitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumetitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumetitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumetitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumetitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumetitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumetitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumededication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumededication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumeepigraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeepigraph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumeattribution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeattribution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumeheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketextnotes\"\n    },\n    {\n      \"name\": \"makeemendations\"\n    },\n    {\n      \"name\": \"makeexplanatorynotes\"\n    },\n    {\n      \"name\": \"iftextnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotessinglepartrue\"\n    },\n    {\n      \"name\": \"textnotessingleparfalse\"\n    },\n    {\n      \"name\": \"ifemendationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationssinglepartrue\"\n    },\n    {\n      \"name\": \"emendationssingleparfalse\"\n    },\n    {\n      \"name\": \"ifexplanationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanationssinglepartrue\"\n    },\n    {\n      \"name\": \"explanationssingleparfalse\"\n    },\n    {\n      \"name\": \"noteindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteparbreak\"\n    },\n    {\n      \"name\": \"iftextnotestwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotestwocoltrue\"\n    },\n    {\n      \"name\": \"textnotestwocolfalse\"\n    },\n    {\n      \"name\": \"ifemendationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationstwocoltrue\"\n    },\n    {\n      \"name\": \"emendationstwocolfalse\"\n    },\n    {\n      \"name\": \"ifexplanationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanationstwocoltrue\"\n    },\n    {\n      \"name\": \"explanationstwocolfalse\"\n    },\n    {\n      \"name\": \"ifputpagenumberinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpagenumberinnotestrue\"\n    },\n    {\n      \"name\": \"putpagenumberinnotesfalse\"\n    },\n    {\n      \"name\": \"ifputtitleinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puttitleinnotestrue\"\n    },\n    {\n      \"name\": \"puttitleinnotesfalse\"\n    },\n    {\n      \"name\": \"contentsendnotesindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsendnotesfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sources\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sources{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literaltextnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literaltextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalemend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalemend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalexplain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalexplain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalcontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalcontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emendation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emendation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"emendation[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"explanatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"explanatory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"explanatory[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sameword\"\n    },\n    {\n      \"name\": \"missingpunct\"\n    },\n    {\n      \"name\": \"accidental\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accidental{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifincludeaccidentals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includeaccidentalstrue\"\n    },\n    {\n      \"name\": \"includeaccidentalsfalse\"\n    },\n    {\n      \"name\": \"tsvariant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsvariant{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsvariant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsvariant[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsentry{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifincludetypescripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includetypescriptstrue\"\n    },\n    {\n      \"name\": \"includetypescriptsfalse\"\n    },\n    {\n      \"name\": \"margreftextnote\"\n    },\n    {\n      \"name\": \"margrefexplanatory\"\n    },\n    {\n      \"name\": \"margrefemendation\"\n    },\n    {\n      \"name\": \"JHmarksleft\"\n    },\n    {\n      \"name\": \"JHmarksright\"\n    },\n    {\n      \"name\": \"JHmarksouter\"\n    },\n    {\n      \"name\": \"JHmarksgutter\"\n    },\n    {\n      \"name\": \"quotedversecorrectiontextnote\"\n    },\n    {\n      \"name\": \"quotedversecorrectiontextnote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quotedversecorrectiontextnote[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"quotedversecorrectionexplanatory\"\n    },\n    {\n      \"name\": \"quotedversecorrectionexplanatory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quotedversecorrectionexplanatory[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"quotedversecorrectionemendation\"\n    },\n    {\n      \"name\": \"quotedversecorrectionemendation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quotedversecorrectionemendation[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"definenewnotetype\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"definenewnotetype{${1:name}}{${2:output name}}{${3:literal name}}{${4:put name}}{${5:margref name}}\"\n      }\n    },\n    {\n      \"name\": \"textnotesatfoot\"\n    },\n    {\n      \"name\": \"emendationsatfoot\"\n    },\n    {\n      \"name\": \"explanationsatfoot\"\n    },\n    {\n      \"name\": \"iftextfootnotespara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfootnotesparatrue\"\n    },\n    {\n      \"name\": \"textfootnotesparafalse\"\n    },\n    {\n      \"name\": \"ifsourcesfootnotespara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourcesfootnotesparatrue\"\n    },\n    {\n      \"name\": \"sourcesfootnotesparafalse\"\n    },\n    {\n      \"name\": \"ifemendationfootnotespara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationfootnotesparatrue\"\n    },\n    {\n      \"name\": \"emendationfootnotesparafalse\"\n    },\n    {\n      \"name\": \"ifexplanfootnotespara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanfootnotesparatrue\"\n    },\n    {\n      \"name\": \"explanfootnotesparafalse\"\n    },\n    {\n      \"name\": \"poemendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poemendnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemendnotes\"\n    },\n    {\n      \"name\": \"putpoemendnotes\"\n    },\n    {\n      \"name\": \"ifpoemendnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendnotessinglepartrue\"\n    },\n    {\n      \"name\": \"poemendnotessingleparfalse\"\n    },\n    {\n      \"name\": \"poemendemendationnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemendemendationnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemendemendationnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poemendemendationnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemendemendationnotes\"\n    },\n    {\n      \"name\": \"putpoemendemendationnotes\"\n    },\n    {\n      \"name\": \"poemendexplanatorynote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemendexplanatorynote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemendexplanatorynote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poemendexplanatorynote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemendexplanatorynotes\"\n    },\n    {\n      \"name\": \"putpoemendexplanatorynotes\"\n    },\n    {\n      \"name\": \"poemendtextnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemendtextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemendtextnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poemendtextnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemendtextnotes\"\n    },\n    {\n      \"name\": \"putpoemendtextnotes\"\n    },\n    {\n      \"name\": \"ifpoemendtextnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendtextnotessinglepartrue\"\n    },\n    {\n      \"name\": \"poemendtextnotessingleparfalse\"\n    },\n    {\n      \"name\": \"testforauxonfirstrun\"\n    },\n    {\n      \"name\": \"makeappendix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeappendix{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"appendixtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesubappendix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesubappendix{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"subappendixtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subappendixtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifappendixincontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixincontentstrue\"\n    },\n    {\n      \"name\": \"appendixincontentsfalse\"\n    },\n    {\n      \"name\": \"makeforeword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeforeword{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"forewordtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forewordtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"epigraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"epigraph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"attribution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemdedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemdedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumeepigraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumeepigraph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortpoemepigraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortpoemepigraph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortpoemdedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortpoemdedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shortpoemattribution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortpoemattribution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHshortepigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHshortepigraph{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHshortdedication\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHshortdedication{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"poemdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"dateindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveverselinenumber\"\n    },\n    {\n      \"name\": \"restoreverselinenumber\"\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlenotitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlenotitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitlebaretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlebaretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitleonlycontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitleonlycontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitleonlynotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitleonlynotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsectiontitlebaretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsectiontitlebaretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemfirstsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemfirstsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemfirstsectiontitlebaretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemfirstsectiontitlebaretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemsubsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemsubsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencetitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencetitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencetitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencetitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencetitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencetitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencetitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencetitlenonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencetitlenonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubtitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubtitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubtitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubtitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubtitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubtitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlenonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlenonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlebaretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlebaretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectiontitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitlenonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitlenonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsectiontitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectionsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectionsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectionsubtitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectionsubtitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectionsubtitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectionsubtitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesectionsubtitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesectionsubtitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsectiontitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsectiontitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsectiontitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsectiontitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsectiontitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsectiontitlelastline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsubsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsubsectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencesubsubsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencesubsubsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sequencefirstsubsubsectiontitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequencefirstsubsubsectiontitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHpoemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHpoemtitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHsequencetitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHsequencetitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHsequencefirstsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHsequencefirstsectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHsequencesectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHsequencesectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHsequencesubsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHsequencesubsectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHpoemsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHpoemsectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHpoemfirstsectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHpoemfirstsectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHpoemsubtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHpoemsubtitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHepigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHepigraph{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHprosesectiontitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHprosesectiontitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHdedication\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHdedication{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"setmargpoemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmargpoemtitle{${1:text}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"setmargrefmarker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmargrefmarker{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"settitlemargrefmarker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitlemargrefmarker{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"footnotepoemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnotepoemtitle{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotepoemtitlefirstline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnotepoemtitlefirstline{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotepoemtitlemiddleline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnotepoemtitlemiddleline{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotepoemtitlelastline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"footnotepoemtitlelastline{${1:title%text}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotesplitpoemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"footnotesplitpoemtitle{${1:begin title%text}}{${2:text}}{${3:end title%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitlefootnoteslayered\"\n    },\n    {\n      \"name\": \"maketitlefootnotesatpoemend\"\n    },\n    {\n      \"name\": \"maketitlefootnotesplain\"\n    },\n    {\n      \"name\": \"poemtitlenonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlenonotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstlinesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middlelinesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoresinglelinesettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectionsubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectionsubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubsubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subappendixtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forewordtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notestitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleindenttwoamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleindentthreeamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longpage\"\n    },\n    {\n      \"name\": \"shortpage\"\n    },\n    {\n      \"name\": \"contentsvolumetitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumetitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencetitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencetitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsappendixtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsnotestitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindenttwoamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentthreeamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prosesectiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prosesectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosesectiontitlenotitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prosesectiontitlenotitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setprosemodulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setprosemodulo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"proselinelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proselinelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"prosetextnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prosetextnote{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosetextnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"prosetextnote[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"proseemendation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"proseemendation{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"proseemendation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"proseemendation[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"proseexplanatory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"proseexplanatory{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"proseexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"proseexplanatory[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosetsvariant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prosetsvariant{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosetsvariant\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"prosetsvariant[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"proseaccidental\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"proseaccidental{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"prosetsaccidental\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prosetsaccidental{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setprosebysentence\"\n    },\n    {\n      \"name\": \"verselinenumbersswitch\"\n    },\n    {\n      \"name\": \"pmsentence\"\n    },\n    {\n      \"name\": \"ifrunningsentencenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runningsentencenumberstrue\"\n    },\n    {\n      \"name\": \"runningsentencenumbersfalse\"\n    },\n    {\n      \"name\": \"ifmarginsentencenumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsentencenumberstrue\"\n    },\n    {\n      \"name\": \"marginsentencenumbersfalse\"\n    },\n    {\n      \"name\": \"setpmmodulo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpmmodulo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pmsentencetwo\"\n    },\n    {\n      \"name\": \"pmsentencethree\"\n    },\n    {\n      \"name\": \"pmsentencefour\"\n    },\n    {\n      \"name\": \"pmnumberstoright\"\n    },\n    {\n      \"name\": \"pmnumberstoleft\"\n    },\n    {\n      \"name\": \"pmnumbersgutter\"\n    },\n    {\n      \"name\": \"pmnumbersouter\"\n    },\n    {\n      \"name\": \"runningsentencenumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runningsentencenumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"marginsentencenumberformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginsentencenumberformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmpara\"\n    },\n    {\n      \"name\": \"ifpmparas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmparastrue\"\n    },\n    {\n      \"name\": \"pmparasfalse\"\n    },\n    {\n      \"name\": \"ifpmsentencebypara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsentencebyparatrue\"\n    },\n    {\n      \"name\": \"pmsentencebyparafalse\"\n    },\n    {\n      \"name\": \"ifpmparainmar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmparainmartrue\"\n    },\n    {\n      \"name\": \"pmparainmarfalse\"\n    },\n    {\n      \"name\": \"ifpmpararunning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmpararunningtrue\"\n    },\n    {\n      \"name\": \"pmpararunningfalse\"\n    },\n    {\n      \"name\": \"pmpararunningformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpararunningformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmparmarformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmparmarformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifsuppressfirstpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppressfirstparatrue\"\n    },\n    {\n      \"name\": \"suppressfirstparafalse\"\n    },\n    {\n      \"name\": \"ifsuppressfirstsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppressfirstsentencetrue\"\n    },\n    {\n      \"name\": \"suppressfirstsentencefalse\"\n    },\n    {\n      \"name\": \"sentencelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sentencelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pmtextnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmtextnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtextnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmexplanatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmexplanatory[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmemendation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmemendation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmemendation[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmaccidental\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmaccidental{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmtsvariant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtsvariant{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmtsvariant\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pmtsvariant[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmtsaccidental\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtsaccidental{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"biblechapter\"\n    },\n    {\n      \"name\": \"bibleverse\"\n    },\n    {\n      \"name\": \"finishparalleltexts\"\n    },\n    {\n      \"name\": \"startrectopage\"\n    },\n    {\n      \"name\": \"finishrectopage\"\n    },\n    {\n      \"name\": \"startversopage\"\n    },\n    {\n      \"name\": \"finishversopage\"\n    },\n    {\n      \"name\": \"versopoemtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versopoemtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectopoemtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectopoemtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versopoemtitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versopoemtitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectopoemtitlenocontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectopoemtitlenocontents{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectotextnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectotextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectotextnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rectotextnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoemendation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectoemendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoemendation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rectoemendation[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoexplanatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rectoexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rectoexplanatory[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versotextnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versotextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versotextnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"versotextnote[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoemendation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versoemendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoemendation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"versoemendation[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoexplanatory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versoexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"versoexplanatory[${2:label}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoprosetextnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"versoprosetextnote{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoprosetextnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"versoprosetextnote[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoproseemendation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"versoproseemendation{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoproseemendation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"versoproseemendation[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoproseexplanatory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"versoproseexplanatory{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoproseexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"versoproseexplanatory[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoprosetextnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rectoprosetextnote{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoprosetextnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rectoprosetextnote[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoproseemendation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rectoproseemendation{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoproseemendation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rectoproseemendation[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoproseexplanatory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rectoproseexplanatory{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoproseexplanatory\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rectoproseexplanatory[${3:label}]{${1:labeldef}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"makerectotextnotes\"\n    },\n    {\n      \"name\": \"makerectoemendations\"\n    },\n    {\n      \"name\": \"makerectoexplanatorynotes\"\n    },\n    {\n      \"name\": \"makeversotextnotes\"\n    },\n    {\n      \"name\": \"makeversoemendations\"\n    },\n    {\n      \"name\": \"makeversoexplanatorynotes\"\n    },\n    {\n      \"name\": \"changerectotextnotesname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectotextnotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changerectotextnotesheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectotextnotesheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changerectotextnotescontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectotextnotescontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeversotextnotesname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversotextnotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeversotextnotesheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversotextnotesheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeversotextnotescontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversotextnotescontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrectotextnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotessinglepartrue\"\n    },\n    {\n      \"name\": \"rectotextnotessingleparfalse\"\n    },\n    {\n      \"name\": \"ifrectotextnotestwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotestwocoltrue\"\n    },\n    {\n      \"name\": \"rectotextnotestwocolfalse\"\n    },\n    {\n      \"name\": \"ifversotextnotestwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextnotestwocoltrue\"\n    },\n    {\n      \"name\": \"versotextnotestwocolfalse\"\n    },\n    {\n      \"name\": \"versotextnotes\"\n    },\n    {\n      \"name\": \"ifversotextnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextnotessinglepartrue\"\n    },\n    {\n      \"name\": \"versotextnotessingleparfalse\"\n    },\n    {\n      \"name\": \"putrectotextnotes\"\n    },\n    {\n      \"name\": \"putversotextnotes\"\n    },\n    {\n      \"name\": \"putversoemendations\"\n    },\n    {\n      \"name\": \"putrectoemendations\"\n    },\n    {\n      \"name\": \"putversoexplanatorynotes\"\n    },\n    {\n      \"name\": \"putrectoexplanatorynotes\"\n    },\n    {\n      \"name\": \"synchrolabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synchrolabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"synchroref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synchroref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setsynchroflag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsynchroflag{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"startparalleltextprose\"\n    },\n    {\n      \"name\": \"finishparalleltextprose\"\n    },\n    {\n      \"name\": \"startversoprosepage\"\n    },\n    {\n      \"name\": \"finishversoprosepage\"\n    },\n    {\n      \"name\": \"startrectoprosepage\"\n    },\n    {\n      \"name\": \"finishrectoprosepage\"\n    },\n    {\n      \"name\": \"parastart\"\n    },\n    {\n      \"name\": \"paraend\"\n    },\n    {\n      \"name\": \"changecontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changecontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changecontentsheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changecontentsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changenotesname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changenotesname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changenotesheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changenotesheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changetextnotescontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changetextnotescontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changesinglepageabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changesinglepageabbrev{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changemultiplepageabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changemultiplepageabbrev{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changesinglelineabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changesinglelineabbrev{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changemultiplelineabbrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changemultiplelineabbrev{${1:abbrev}}\"\n      }\n    },\n    {\n      \"name\": \"changeemendationsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeemendationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeemendationsheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeemendationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeemendationscontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeemendationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeexplanationsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeexplanationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeexplanationsheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeexplanationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changeexplanationscontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeexplanationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changepoemindexname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changepoemindexname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changepoemindexheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changepoemindexheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"changepoemindexcontentsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changepoemindexcontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tightgeometry\"\n    },\n    {\n      \"name\": \"tightleading\"\n    },\n    {\n      \"name\": \"volumetitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesubtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatterheaderfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitlesink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmattersink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatterafterheadersink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmattertextfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmatterintrofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmattervolumefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backmattervolumesubtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesubtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencetitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notespoemclubpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notessequenceclubpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesvolumetitlepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"repeatedindent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"repeatedindent{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"variablestanzaamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinindentedverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inindentedversetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inindentedversefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runoverindentvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumesectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemsubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectionsubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesectionsubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencesubsubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subappendixtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forewordtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notestitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitleshiftamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitleshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voladditionalamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentfouramount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentfiveamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsindentfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumetitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumetitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsvolumesectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsectiontitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentspoemsubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencetitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencetitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectiontitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectionsubtitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectionsubtitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectionsubtitlesecondlineindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesectionsubtitlesecondlineindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubsubsectiontitleindentamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentssequencesubsubsectiontitleindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersequencetitleskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stanzaskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multilinetitlepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sequencetitlepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multilinesequencepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lefttitleaddition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflastpoemcentered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpoemcenteredtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpoemcenteredfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinquotedverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inquotedversetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inquotedversefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fulltitleholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesofar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleincrement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinstanza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instanzatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"instanzafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinpoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inpoemtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inpoemfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpoemcontentson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemcontentsontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemcontentsonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftextnoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotesontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotesonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexplanon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifemendationson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifredundantemendations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redundantemendationstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redundantemendationsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoemendyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noemendyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noemendyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoexplainyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexplainyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexplainyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmiddlecontentsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middlecontentslinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middlecontentslinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflastcontentsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastcontentslinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastcontentslinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifputpagenumberincontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpagenumberincontentstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpagenumberincontentsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsinglelinetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlelinetitletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlelinetitlefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlefirstline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefirstlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefirstlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleconcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlemiddleline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemiddlelinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemiddlelinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlelastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlelastlinetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlelastlinefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifverserightflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verserightflushtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verserightflushfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrangelemma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangelemmatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangelemmafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftextnotesatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotesatendtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotesatendfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifemendationsatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsatendtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsatendfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifexplanatend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatendtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanatendfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumeheadervalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftheadervalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlelineabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplelineabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myversemarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearemptydoublepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlepageabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplepageabbrev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mymarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsentryoverrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleentryoverrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumbersswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersswitchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersswitchfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumbersright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersrighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersrightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclsidepar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmclsidepar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newpmemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpmemlabel{${1:label}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pmemlabelref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmemlabelref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"checkoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpmclreversesidepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclreversesidepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclreversesideparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpmclsideparswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclsideparswitchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclsideparswitchfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oddpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstrictpagecheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagechecktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strictpagecheckfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cplabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumbersgutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersguttertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbersgutterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putverselinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifspeciallinelock\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speciallinelocktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"speciallinelockfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incrementverselinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hour{${1:hour}}\"\n      }\n    },\n    {\n      \"name\": \"pmclcontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclcontentsheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setendnotessectiontitledefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"setendnotessectiontitledefaults{${1:title%text}}{${2:before code}}{${3:fontsize cmd}}{${4:indent cmd}}{${5:after code}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"setendnotessectiontitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setendnotessectiontitle{${1:title%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"contentsendnotesdefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"contentsendnotesdefaults{${1:title%text}}{${2:indent cmd}}{${3:fontsize cmd}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"contentsendnotestitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contentsendnotestitle{${1:title%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"pmclnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotescontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emendations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"explanations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifforewordincontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forewordincontentstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forewordincontentsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendixdividerpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixdividerpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"contentsendnotessubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contentsendnotessubtitle{${1:title%text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"foreworddividerpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreworddividerpage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmclcontentsentrydefaults\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmclcontentsentrydefaults{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"volumesubtitlefirstline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesubtitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesubtitlemiddleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesubtitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesubtitlelastline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesubtitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesectiontitlefirstline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesectiontitlemiddleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumesectiontitlelastline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumesectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makepoemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makepoemlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"argpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lefttitlemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftaligntitlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleftaligntitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftaligntitlestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftaligntitlesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interjectiontitlefirstline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interjectiontitlefirstline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"interjectiontitlemiddleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interjectiontitlemiddleline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"interjectiontitlelastline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interjectiontitlelastline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparsepmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHtitlemarginparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHmarkstoleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstolefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstoleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHmarkstoright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstorighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstorightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHmarkstoouter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstooutertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstoouterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHmarkstogutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstoguttertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarkstogutterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHmarginparswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparswitchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHmarginparswitchfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifJHreversemarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHreversemarginpartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHreversemarginparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHrightmarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JHrightmarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHleftmarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JHleftmarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHoutermarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHswitchmarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHguttermarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHrighttitlemarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JHrighttitlemarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHlefttitlemarginpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JHlefttitlemarginpar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"JHswitchtitlemarginpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JHlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JHlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"JHsequencesectionsubtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JHsequencesectionsubtitle{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"backmattersectiontitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backmattersectiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margrefmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlemargrefmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makemargreflabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmargrefstomargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margrefstomargintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margrefstomarginfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmargref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margrefspecial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margrefspecial{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"iftitlefootnotesatpoemend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnotesatpoemendtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnotesatpoemendfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlefootnotesplain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnotesplaintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnotesplainfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlefootnoteslayered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnoteslayeredtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefootnoteslayeredfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placetitlefootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placetitlefootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"poemendnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerepigraphindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalepigraphindentation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centerepigraphquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalepigraphquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testforcenterepigraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variabledateindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemattributionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variablepoemattributionindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemattribution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemattribution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literaltextnoteshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literaltextnoteshort{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalemendshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalemendshort{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalexplainshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalexplainshort{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalcontentsshort\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalcontentsshort{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmccheckifinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmccheckifinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmcgobm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcgobm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setlemmarange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlemmarange{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"citerange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetlemmacounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checknoteheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsaccidental\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsaccidental{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titletoothernotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstemendation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstexplanatory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendtomacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendtomacro{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifinprosesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inprosesectiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inprosesectionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrefundefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifrefundefined{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setcounterfromref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterfromref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"setcounterfrompageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterfrompageref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"setproselemmastart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setproselemmastart{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setproselemmarange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setproselemmarange{${1:label}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"proseciterange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkprosenoteheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprosebysentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prosebysentencetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prosebysentencefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmnoteheader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmnumbersswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmsentencenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmmarginnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putpmmarginnumber{${1:number}}{${2:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"noteheaderconcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmsentencenumbertwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmsentencenumberthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmsentencenumberfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putpmmarparanumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmrangeend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpmlemmarange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpmlemmarange{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"pmciterange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmchecknoteheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmresetlemmacounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpoemendnoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendnotesontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendnotesonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalpoemendnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalpoemendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifpoemendemendationnoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendemendationnotesontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendemendationnotesonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpoemendemendationnotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendemendationnotessinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendemendationnotessingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendemendationnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalpoemendemendationnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalpoemendemendationnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifpoemendexplanatorynoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendexplanatorynotesontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendexplanatorynotesonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpoemendexplanatorynotessinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendexplanatorynotessinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendexplanatorynotessingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendexplanatorynotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalpoemendexplanatorynote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalpoemendexplanatorynote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifpoemendtextnoteson\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendtextnotesontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendtextnotesonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemendtextnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalpoemendtextnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalpoemendtextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stanzaatbottomvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nostanzaatbottomvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartorecto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pmclsavsk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclsavsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclbsphack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclesphack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclleftsidepar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmclleftsidepar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmclrightsidepar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmclrightsidepar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifparalleltexts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paralleltextstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paralleltextsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrecto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectopoempending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopoempendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopoempendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversopoempending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopoempendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopoempendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectostanzapending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectostanzapendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectostanzapendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversostanzapending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versostanzapendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versostanzapendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectostanzastillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectostanzastillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectostanzastillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversostanzastillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versostanzastillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versostanzastillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectopoemstillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopoemstillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopoemstillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversopoemstillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopoemstillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopoemstillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoprosesectionpending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoprosesectionpendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoprosesectionpendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoprosesectionpending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoprosesectionpendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoprosesectionpendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoprosesectionstillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoprosesectionstillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoprosesectionstillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoprosesectionstillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoprosesectionstillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoprosesectionstillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoquotedversepending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoquotedversependingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoquotedversependingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoquotedversepending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoquotedversependingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoquotedversependingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoquotedversestillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoquotedversestillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoquotedversestillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoquotedversestillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoquotedversestillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoquotedversestillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoemendationspending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationspendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationspendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoemendationspending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationspendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationspendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoexplanationspending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationspendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationspendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoexplanationspending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationspendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationspendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotitleholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotitleholder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeversotitleholder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeversotitleholder{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makerectotitleholder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makerectotitleholder{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versotitletoothernotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotitleinnotescheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotitletoothernotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotitleinnotescheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveversoline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreversoline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saverectoline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorerectoline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synchroflag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfilll\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextnotesheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextnotescontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoversotextnoteyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversotextnoteyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversotextnoteyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalversotextnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalversotextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstversotextnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotesheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotescontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectotextnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnorectotextnoteyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectotextnoteyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectotextnoteyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalrectotextnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalrectotextnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstrectotextnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoemendationsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoemendationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoemendationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoemendationsheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoemendationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoemendationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoemendationscontentsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoemendationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifversoemendationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationstwocoltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationstwocolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoemendationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationssinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoemendationssingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoversoemendationyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversoemendationyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversoemendationyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalversoemendation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalversoemendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstversoemendation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoemendationsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoemendationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoemendationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoemendationsheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoemendationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoemendationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoemendationscontentsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoemendationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrectoemendationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationstwocoltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationstwocolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoemendationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationssinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoemendationssingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnorectoemendationyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectoemendationyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectoemendationyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalrectoemendation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalrectoemendation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"firstrectoemendation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoexplanationsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoexplanationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoexplanationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoexplanationsheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoexplanationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoexplanationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changeversoexplanationscontentsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeversoexplanationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifversoexplanationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationstwocoltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationstwocolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalversoexplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalversoexplain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifversoexplanationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationssinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoexplanationssingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstversoexplanatory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoversoexplainyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversoexplainyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversoexplainyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoexplanationsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoexplanationsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoexplanationsheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoexplanationsheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoexplanationsheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rectoexplanationscontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changerectoexplanationscontentsname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changerectoexplanationscontentsname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrectoexplanationstwocol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationstwocoltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationstwocolfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalrectoexplain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalrectoexplain{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifrectoexplanationssinglepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationssinglepartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoexplanationssingleparfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstrectoexplanatory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnorectoexplainyet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectoexplainyettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norectoexplainyetfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclresetsettitleinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclversoresetsettitleinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclrectoresetsettitleinnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literalexplanatory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalversoexplanatory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalversoexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"literalrectoexplanatory\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literalrectoexplanatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifversopassagestillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopassagestillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versopassagestillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectopassagestillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopassagestillopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectopassagestillopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinpara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inparatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inparafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoparapending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoparapendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoparapendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectoparaopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoparaopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectoparaopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoparapending\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoparapendingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoparapendingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifversoparaopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoparaopentrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versoparaopenfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeprosepagelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveversoproseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreversoproseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saverectoproseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorerectoproseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startparalleltextsprose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finishparalleltextsprose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenationforsmall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemindexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemindexheadername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemindexcontentsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noteaboutstanzamarkpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemindexlabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"changepoemindexlabelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changepoemindexlabelname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmclidxitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphquoteleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphquoterightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelemmaend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelemmalines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelineindexrepeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themargrefnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenotepageholdernote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenotepageholdertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepmindexcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepmmodulo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepmparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepmsentencenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprintlineindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprintlineindexscratch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproselinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprosemodulo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprosepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therectoindexscratch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therectolinecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therectoproselinecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theverselinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theverselinenumberscratch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theversoindexscratch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theversolinecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theversoproselinecounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"poem\"\n    },\n    {\n      \"name\": \"poem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width%l}]\"\n      }\n    },\n    {\n      \"name\": \"pmclverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmclverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"stanza\"\n    },\n    {\n      \"name\": \"indentedverse\"\n    },\n    {\n      \"name\": \"indentedverse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"rightflushverse\"\n    },\n    {\n      \"name\": \"volumetitlepage\"\n    },\n    {\n      \"name\": \"maintitlepage\"\n    },\n    {\n      \"name\": \"quotedverse\"\n    },\n    {\n      \"name\": \"prosesection\"\n    },\n    {\n      \"name\": \"prosesectionnoreset\"\n    },\n    {\n      \"name\": \"pmsection\"\n    },\n    {\n      \"name\": \"parallelverse\"\n    },\n    {\n      \"name\": \"parallelprose\"\n    },\n    {\n      \"name\": \"marginenvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentsentryenvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleentryenvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"booksectionpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphenvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cjquotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetitlepagequote\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"longpoem\",\n      \"main\",\n      \"volumefirststyle\",\n      \"volumetitlestyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/poetry.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"modulus\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addgrouptolop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addgrouptolop{${1:contents line%text}}\"\n      }\n    },\n    {\n      \"name\": \"addtolop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtolop{${1:contents line%text}}\"\n      }\n    },\n    {\n      \"name\": \"centerpoemoff\"\n    },\n    {\n      \"name\": \"centerpoemon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centerpoemon{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endpoemgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hin\"\n    },\n    {\n      \"name\": \"iofl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iofl{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"listofpoems\"\n    },\n    {\n      \"name\": \"lopname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poem\"\n    },\n    {\n      \"name\": \"poem*\"\n    },\n    {\n      \"name\": \"poemauthorposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemauthorprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemauthorstyle\"\n    },\n    {\n      \"name\": \"poemblankauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemblanktitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poembotskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemdefaultlicense\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemfirstline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemfirstline{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"poemgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroupblankname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroupheading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poemgroupheading{${1:title%text}}{${2:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"poemgrouplopformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroupotherposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroupotherprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroupotherstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgrouptitleposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgrouptitleprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgrouptitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemhangindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemhinwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemioflname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemlinenumboxgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemlinenumboxwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemlinenumrightfalse\"\n    },\n    {\n      \"name\": \"poemlinenumrighttrue\"\n    },\n    {\n      \"name\": \"poemlinenumsfalse\"\n    },\n    {\n      \"name\": \"poemlinenumstrue\"\n    },\n    {\n      \"name\": \"poemlinenumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemlopformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemmaxlinewd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemnew\"\n    },\n    {\n      \"name\": \"poemnumlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemrtlinenumboxgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemrtlinenumboxwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemrtlinenumsfalse\"\n    },\n    {\n      \"name\": \"poemrtlinenumstrue\"\n    },\n    {\n      \"name\": \"poemrtlinenumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemrtmaxlinewd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemrtnumlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitleposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitleprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitlestyle\"\n    },\n    {\n      \"name\": \"poemtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemverseskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemvsindentlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printiofl\"\n    },\n    {\n      \"name\": \"theabspoemno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemgroupname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemgroupno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemindentevery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemlicense\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemlinenumsevery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoempubdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemrtline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemrtlinenumsevery\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestanzacount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theverseline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleauthorpoem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleauthorpoem{${1:title%text}}{${2:author}}\"\n      }\n    },\n    {\n      \"name\": \"titlepoem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlepoem{${1:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"poem\"\n    },\n    {\n      \"name\": \"poem\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"poemgroup\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/poetrytex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tocloft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pttitleleftspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pttitlerightspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptsubtitleleftspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptsubtitlerightspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedefaulttitles\"\n    },\n    {\n      \"name\": \"nousedefaulttitles\"\n    },\n    {\n      \"name\": \"ptdefaulttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useincipits\"\n    },\n    {\n      \"name\": \"nouseincipits\"\n    },\n    {\n      \"name\": \"ptdefaultenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pttitleenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptdefaultgroupenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grouppagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pregroupvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postgroupvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptannotationenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptdedication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makededication\"\n    },\n    {\n      \"name\": \"listofpoem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofpoems\"\n    },\n    {\n      \"name\": \"resetnumon\"\n    },\n    {\n      \"name\": \"topname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topentrytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toptocentrytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listpoemsintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolistpoemsintoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocentrytype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketoc\"\n    },\n    {\n      \"name\": \"maketop\"\n    },\n    {\n      \"name\": \"maketop*\"\n    },\n    {\n      \"name\": \"numbertop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numbertoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonumbertop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonumbertoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforesubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftersubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedicationformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prededicationvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postdedicationvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforededication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterdedication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforetop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepoemgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpoemgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incipit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incipit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"incipit*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incipit*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theincipit\"\n    },\n    {\n      \"name\": \"poetryheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numberpoems\"\n    },\n    {\n      \"name\": \"nonumberpoems\"\n    },\n    {\n      \"name\": \"titlepoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toppoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocpoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stanzaparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearpageafterpoem\"\n    },\n    {\n      \"name\": \"noclearpageafterpoem\"\n    },\n    {\n      \"name\": \"clearpageafterannotation\"\n    },\n    {\n      \"name\": \"noclearpageafterannotation\"\n    },\n    {\n      \"name\": \"ptgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptind*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemtitleformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incipittopformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incipittocformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptspacergap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptspacerchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptspacer\"\n    },\n    {\n      \"name\": \"ptspacer*\"\n    },\n    {\n      \"name\": \"linktopoem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linktopoem{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"linktopoem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"linktopoem[${2:number}]{${1:link text}}\"\n      }\n    },\n    {\n      \"name\": \"ptgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poemgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemgroup{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"poemgroup*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemgroup*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"setpoemgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpoemgroup{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"setpoemgroup*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpoemgroup*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"annotationheadings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsolutepoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsoluteannotationnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsolutepoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsolutetitledpoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theabsoluteuntitledpoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theannotationnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemgroupnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theptspacernum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitledpoemnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuntitledpoemnum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"poem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"poem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:envname}]{${1:title}}{${2:subtitle}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"annotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:envname}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polexpr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintexpr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PolDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolDef{${1:polname}}{${2:pol expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"PolDef\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PolDef[${3:letter}]{${1:polname}}{${2:pol expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"PolGenFloatVariant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolGenFloatVariant{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypeset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolTypeset{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypeset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PolTypeset[${2:letter}]{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypeset*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolTypeset*{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypeset*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PolTypeset*[${2:letter}]{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypesetCmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolTypesetCmd{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolIfCoeffIsPlusOrMinusOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolIfCoeffIsPlusOrMinusOne{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypesetOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolTypesetOne{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolTypesetMonomialCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolTypesetCmdPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolTypesetCmdPrefix{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolToSturm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToSturm{${1:polname}}{${2:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolToSturm*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToSturm*{${1:polname}}{${2:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZeros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZeros{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZeros*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZeros*{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZeros**\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZeros**{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZerosAndGetMultiplicities\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZerosAndGetMultiplicities{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZerosGetMultiplicitiesAndRationalRoots{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolateZerosAndFindRationalRoots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmIsolateZerosAndFindRationalRoots{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolRefineInterval*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolRefineInterval*{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolRefineInterval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolRefineInterval{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolRefineInterval\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PolRefineInterval[${3:N}]{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolEnsureIntervalLength\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PolEnsureIntervalLength{${1:sturmname}}{${2:index}}{${3:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolEnsureIntervalLengths\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolEnsureIntervalLengths{${1:sturmname}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervals\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolPrintIntervals{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervals\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PolPrintIntervals[${2:varname}]{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervals*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolPrintIntervals*{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervals*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PolPrintIntervals*[${2:varname}]{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervalsNoRealRoots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsBeginEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsEndEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsRowSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsKnownRoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsUnknownRoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsPrintExactZero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsPrintLeftEndPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsPrintRightEndPoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolPrintIntervalsPrintMultiplicity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolSetToSturmChainSignChangesAt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PolSetToSturmChainSignChangesAt{${1:macro%cmd}}{${2:sturmname}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"PolSetToNbOfZerosWithin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PolSetToNbOfZerosWithin{${1:macro%cmd}}{${2:sturmname}}{${3:value left}}{${4:value right}}\"\n      }\n    },\n    {\n      \"name\": \"PolFromCSV\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolFromCSV{${1:polname}}{${2:csv}}\"\n      }\n    },\n    {\n      \"name\": \"PolMapCoeffs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolMapCoeffs{${1:macro}}{${2:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolReduceCoeffs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolReduceCoeffs{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolReduceCoeffs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolReduceCoeffs*{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolMakeMonic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolMakeMonic{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolMakePrimitive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolMakePrimitive{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolDiff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolDiff{${1:polname1}}{${2:polname2}}\"\n      }\n    },\n    {\n      \"name\": \"PolDiff\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PolDiff[${3:N}]{${1:polname1}}{${2:polname2}}\"\n      }\n    },\n    {\n      \"name\": \"PolAntiDiff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolAntiDiff{${1:polname1}}{${2:polname2}}\"\n      }\n    },\n    {\n      \"name\": \"PolAntiDiff\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PolAntiDiff[${3:N}]{${1:polname1}}{${2:polname2}}\"\n      }\n    },\n    {\n      \"name\": \"PolDivide\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PolDivide{${1:polname1}}{${2:polname2}}{${3:polnameQ}}{${4:polnameR}}\"\n      }\n    },\n    {\n      \"name\": \"PolQuo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PolQuo{${1:polname1}}{${2:polname2}}{${3:polnameQ}}\"\n      }\n    },\n    {\n      \"name\": \"PolRem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PolRem{${1:polname1}}{${2:polname2}}{${3:polnameR}}\"\n      }\n    },\n    {\n      \"name\": \"PolGCD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PolGCD{${1:polname1}}{${2:polname2}}{${3:polnameGCD}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToExpr{${1:pol expr}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExpr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToExpr*{${1:pol expr}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExprVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolToExprInVar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolToExprTimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolToExprCaret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PolToExprCmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToExprCmd{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExprOneTerm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToExprOneTerm{${1:raw coeff}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExprOneTermStyleA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToExprOneTermStyleA{${1:raw coeff}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExprOneTermStyleB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToExprOneTermStyleB{${1:raw coeff}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolToExprTermPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToExprTermPrefix{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolToFloatExpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToFloatExpr{${1:pol expr}}\"\n      }\n    },\n    {\n      \"name\": \"PolToFloatExpr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToFloatExpr*{${1:pol expr}}\"\n      }\n    },\n    {\n      \"name\": \"PolToFloatExprOneTerm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolToFloatExprOneTerm{${1:raw coeff}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"PolToFloatExprCmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToFloatExprCmd{${1:raw coeff}}\"\n      }\n    },\n    {\n      \"name\": \"PolNthCoeff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolNthCoeff{${1:polname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolLeadingCoeff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolLeadingCoeff{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolDegree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolDegree{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolIContent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolIContent{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolToList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToList{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolToCSV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolToCSV{${1:polname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmChainLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmChainLength{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIfZeroExactlyKnown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PolSturmIfZeroExactlyKnown{${1:sturmname}}{${2:index}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolatedZeroLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmIsolatedZeroLeft{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolatedZeroRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmIsolatedZeroRight{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmIsolatedZeroMultiplicity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmIsolatedZeroMultiplicity{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmNbOfIsolatedZeros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmNbOfIsolatedZeros{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmNbOfRationalRoots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmNbOfRationalRoots{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmNbOfRationalRootsWithMultiplicities\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolSturmNbOfRationalRootsWithMultiplicities{${1:sturmname}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmRationalRoot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmRationalRoot{${1:sturmname}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmRationalRootIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmRationalRootIndex{${1:sturmname}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PolSturmRationalRootMultiplicity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolSturmRationalRootMultiplicity{${1:sturmname}}{${2:k}}\"\n      }\n    },\n    {\n      \"name\": \"PolIntervalWidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PolIntervalWidth{${1:sturmname}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheVar\"\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheIndex\"\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheSturmName\"\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheLeftEndPoint\"\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheRightEndPoint\"\n    },\n    {\n      \"name\": \"PolPrintIntervalsTheMultiplicity\"\n    },\n    {\n      \"name\": \"ifpolnewpolverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polnewpolverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polnewpolverbosefalse\"\n    },\n    {\n      \"name\": \"ifpoltypesetall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poltypesetalltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poltypesetallfalse\"\n    },\n    {\n      \"name\": \"ifpoltoexprall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poltoexpralltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poltoexprallfalse\"\n    },\n    {\n      \"name\": \"PolDecToString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PolDecToString{${1:decimal number}}\"\n      }\n    },\n    {\n      \"name\": \"polexprsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polexprsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\polexprsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifxintveryverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintveryverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintveryverbosefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\polexprsetup\": [\n      \"norr=${1:sturmname postfix}\",\n      \"sqfnorr=${1:sturmname postfix}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polski.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"DH\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"QX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textalpha\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textanglearc\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textapprox\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textbeta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textDelta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textdelta\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textdiameter\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textell\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textEuro\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textinfty\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textOmega\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textpi\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textPi\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textSigma\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textxgeq\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"textxleq\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"QX\"\n    },\n    {\n      \"name\": \"LaMeX\",\n      \"if\": \"MeX\"\n    },\n    {\n      \"name\": \"MeX\",\n      \"if\": \"MeX\"\n    },\n    {\n      \"name\": \"english\",\n      \"if\": \"MeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polish\",\n      \"if\": \"MeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macron\",\n      \"if\": \"MeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"macron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PLdateending\"\n    },\n    {\n      \"name\": \"dywiz\"\n    },\n    {\n      \"name\": \"pauza\"\n    },\n    {\n      \"name\": \"tg\"\n    },\n    {\n      \"name\": \"tgh\"\n    },\n    {\n      \"name\": \"ctg\"\n    },\n    {\n      \"name\": \"ctgh\"\n    },\n    {\n      \"name\": \"nwd\"\n    },\n    {\n      \"name\": \"arccot\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonprefixing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PlPrIeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PLSlash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PLSlash{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ppauza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefixing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selecthyphenation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selecthyphenation{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"Slash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xgeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xleq\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/polski#c\": [\n      \"plmath\",\n      \"nomathsymbols\",\n      \"MeX\",\n      \"T1\",\n      \"QX\",\n      \"OT1\",\n      \"OT4\",\n      \"prefixinginverb\",\n      \"noprefixinginverb\",\n      \"roku\",\n      \"r.\",\n      \"noroku\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/polski#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/polyglossia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"bidi\"\n    },\n    {\n      \"name\": \"luabidi\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"arabicnumbers\"\n    },\n    {\n      \"name\": \"hijrical\"\n    },\n    {\n      \"name\": \"xpg-cyrillicnumbers\"\n    },\n    {\n      \"name\": \"devanagaridigits\"\n    },\n    {\n      \"name\": \"bengalidigits\"\n    },\n    {\n      \"name\": \"luavlna\"\n    },\n    {\n      \"name\": \"hebrewcal\"\n    },\n    {\n      \"name\": \"farsical\"\n    },\n    {\n      \"name\": \"nkonumbers\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setdefaultlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaultlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setdefaultlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdefaultlanguage[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setmainlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setmainlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainlanguage[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setotherlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setotherlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setotherlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setotherlanguage[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"setotherlanguages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setotherlanguages{${1:lang1,lang2,...}}\"\n      }\n    },\n    {\n      \"name\": \"inheritbabelshorthands\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inheritbabelshorthands{${1:source language}}{${2:target language}}\"\n      }\n    },\n    {\n      \"name\": \"usebabelshorthands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebabelshorthands{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"textlang\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textlang{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlang\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textlang[${3:options%keyvals}]{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"textafrikaans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textafrikaans[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/afrikaans#c,\\\\setmainlanguage/afrikaans#c,\\\\setotherlanguage/afrikaans#c,\\\\textlang/afrikaans#c,\\\\textafrikaans#c,\\\\begin{lang}/afrikaans#c,\\\\begin{afrikaans}#c,\\\\selectlanguage/afrikaans#c,\\\\foreignlanguage/afrikaans#c,\\\\begin{otherlanguage}/afrikaans#c,\\\\begin{otherlanguage*}/afrikaans#c,\\\\resetdefaultlanguage/afrikaans#c,\\\\setlanguagealias/afrikaans#c,\\\\setlanguagealias*/afrikaans#c,\\\\pghyphenation/afrikaans#c,\\\\setlanghyphenmins/afrikaans#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textafrikaans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textafrikaans{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textalbanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textalbanian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textalbanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textalbanian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textamharic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textamharic[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textamharic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textamharic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarabic[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/arabic#c,\\\\setmainlanguage/arabic#c,\\\\setotherlanguage/arabic#c,\\\\textlang/arabic#c,\\\\textarabic#c,\\\\begin{lang}/arabic#c,\\\\begin{Arabic}#c,\\\\selectlanguage/arabic#c,\\\\foreignlanguage/arabic#c,\\\\begin{otherlanguage}/arabic#c,\\\\begin{otherlanguage*}/arabic#c,\\\\resetdefaultlanguage/arabic#c,\\\\setlanguagealias/arabic#c,\\\\setlanguagealias*/arabic#c,\\\\pghyphenation/arabic#c,\\\\setlanghyphenmins/arabic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textarabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarabic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textarmenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textarmenian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/armenian#c,\\\\setmainlanguage/armenian#c,\\\\setotherlanguage/armenian#c,\\\\textlang/armenian#c,\\\\textarmenian#c,\\\\begin{lang}/armenian#c,\\\\begin{armenian}#c,\\\\selectlanguage/armenian#c,\\\\foreignlanguage/armenian#c,\\\\begin{otherlanguage}/armenian#c,\\\\begin{otherlanguage*}/armenian#c,\\\\resetdefaultlanguage/armenian#c,\\\\setlanguagealias/armenian#c,\\\\setlanguagealias*/armenian#c,\\\\pghyphenation/armenian#c,\\\\setlanghyphenmins/armenian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textarmenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textarmenian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textasturian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textasturian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textasturian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textasturian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbasque\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbasque[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbasque\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbasque{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbelarusian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbelarusian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/belarusian#c,\\\\setmainlanguage/belarusian#c,\\\\setotherlanguage/belarusian#c,\\\\textlang/belarusian#c,\\\\textbelarusian#c,\\\\begin{lang}/belarusian#c,\\\\begin{belarusian}#c,\\\\selectlanguage/belarusian#c,\\\\foreignlanguage/belarusian#c,\\\\begin{otherlanguage}/belarusian#c,\\\\begin{otherlanguage*}/belarusian#c,\\\\resetdefaultlanguage/belarusian#c,\\\\setlanguagealias/belarusian#c,\\\\setlanguagealias*/belarusian#c,\\\\pghyphenation/belarusian#c,\\\\setlanghyphenmins/belarusian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textbelarusian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbelarusian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbengali\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbengali[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/bengali#c,\\\\setmainlanguage/bengali#c,\\\\setotherlanguage/bengali#c,\\\\textlang/bengali#c,\\\\textbengali#c,\\\\begin{lang}/bengali#c,\\\\begin{bengali}#c,\\\\selectlanguage/bengali#c,\\\\foreignlanguage/bengali#c,\\\\begin{otherlanguage}/bengali#c,\\\\begin{otherlanguage*}/bengali#c,\\\\resetdefaultlanguage/bengali#c,\\\\setlanguagealias/bengali#c,\\\\setlanguagealias*/bengali#c,\\\\pghyphenation/bengali#c,\\\\setlanghyphenmins/bengali#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textbengali\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbengali{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbosnian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbosnian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbosnian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbosnian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbreton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbreton[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbreton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbreton{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textbulgarian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textbulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbulgarian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcatalan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcatalan[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/catalan#c,\\\\setmainlanguage/catalan#c,\\\\setotherlanguage/catalan#c,\\\\textlang/catalan#c,\\\\textcatalan#c,\\\\begin{lang}/catalan#c,\\\\begin{catalan}#c,\\\\selectlanguage/catalan#c,\\\\foreignlanguage/catalan#c,\\\\begin{otherlanguage}/catalan#c,\\\\begin{otherlanguage*}/catalan#c,\\\\resetdefaultlanguage/catalan#c,\\\\setlanguagealias/catalan#c,\\\\setlanguagealias*/catalan#c,\\\\pghyphenation/catalan#c,\\\\setlanghyphenmins/catalan#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textcatalan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcatalan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textchinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textchinese[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/chinese#c,\\\\setmainlanguage/chinese#c,\\\\setotherlanguage/chinese#c,\\\\textlang/chinese#c,\\\\textchinese#c,\\\\begin{lang}/chinese#c,\\\\begin{chinese}#c,\\\\selectlanguage/chinese#c,\\\\foreignlanguage/chinese#c,\\\\begin{otherlanguage}/chinese#c,\\\\begin{otherlanguage*}/chinese#c,\\\\resetdefaultlanguage/chinese#c,\\\\setlanguagealias/chinese#c,\\\\setlanguagealias*/chinese#c,\\\\pghyphenation/chinese#c,\\\\setlanghyphenmins/chinese#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textchinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textchinese{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcoptic[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcoptic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcroatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textcroatian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/croatian#c,\\\\setmainlanguage/croatian#c,\\\\setotherlanguage/croatian#c,\\\\textlang/croatian#c,\\\\textcroatian#c,\\\\begin{lang}/croatian#c,\\\\begin{croatian}#c,\\\\selectlanguage/croatian#c,\\\\foreignlanguage/croatian#c,\\\\begin{otherlanguage}/croatian#c,\\\\begin{otherlanguage*}/croatian#c,\\\\resetdefaultlanguage/croatian#c,\\\\setlanguagealias/croatian#c,\\\\setlanguagealias*/croatian#c,\\\\pghyphenation/croatian#c,\\\\setlanghyphenmins/croatian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textcroatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcroatian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textczech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textczech[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/czech#c,\\\\setmainlanguage/czech#c,\\\\setotherlanguage/czech#c,\\\\textlang/czech#c,\\\\textczech#c,\\\\begin{lang}/czech#c,\\\\begin{czech}#c,\\\\selectlanguage/czech#c,\\\\foreignlanguage/czech#c,\\\\begin{otherlanguage}/czech#c,\\\\begin{otherlanguage*}/czech#c,\\\\resetdefaultlanguage/czech#c,\\\\setlanguagealias/czech#c,\\\\setlanguagealias*/czech#c,\\\\pghyphenation/czech#c,\\\\setlanghyphenmins/czech#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textczech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textczech{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textdanish[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdanish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdivehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textdivehi[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdivehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdivehi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdutch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textdutch[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/dutch#c,\\\\setmainlanguage/dutch#c,\\\\setotherlanguage/dutch#c,\\\\textlang/dutch#c,\\\\textdutch#c,\\\\begin{lang}/dutch#c,\\\\begin{dutch}#c,\\\\selectlanguage/dutch#c,\\\\foreignlanguage/dutch#c,\\\\begin{otherlanguage}/dutch#c,\\\\begin{otherlanguage*}/dutch#c,\\\\resetdefaultlanguage/dutch#c,\\\\setlanguagealias/dutch#c,\\\\setlanguagealias*/dutch#c,\\\\pghyphenation/dutch#c,\\\\setlanghyphenmins/dutch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textdutch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdutch{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textenglish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textenglish[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/english#c,\\\\setmainlanguage/english#c,\\\\setotherlanguage/english#c,\\\\textlang/english#c,\\\\textenglish#c,\\\\begin{lang}/english#c,\\\\begin{english}#c,\\\\selectlanguage/english#c,\\\\foreignlanguage/english#c,\\\\begin{otherlanguage}/english#c,\\\\begin{otherlanguage*}/english#c,\\\\resetdefaultlanguage/english#c,\\\\setlanguagealias/english#c,\\\\setlanguagealias*/english#c,\\\\pghyphenation/english#c,\\\\setlanghyphenmins/english#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textenglish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textenglish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textesperanto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textesperanto[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textesperanto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textesperanto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textestonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textestonian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textestonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textestonian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfinnish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textfinnish[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/finnish#c,\\\\setmainlanguage/finnish#c,\\\\setotherlanguage/finnish#c,\\\\textlang/finnish#c,\\\\textfinnish#c,\\\\begin{lang}/finnish#c,\\\\begin{finnish}#c,\\\\selectlanguage/finnish#c,\\\\foreignlanguage/finnish#c,\\\\begin{otherlanguage}/finnish#c,\\\\begin{otherlanguage*}/finnish#c,\\\\resetdefaultlanguage/finnish#c,\\\\setlanguagealias/finnish#c,\\\\setlanguagealias*/finnish#c,\\\\pghyphenation/finnish#c,\\\\setlanghyphenmins/finnish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textfinnish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfinnish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrench\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textfrench[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/french#c,\\\\setmainlanguage/french#c,\\\\setotherlanguage/french#c,\\\\textlang/french#c,\\\\textfrench#c,\\\\begin{lang}/french#c,\\\\begin{french}#c,\\\\selectlanguage/french#c,\\\\foreignlanguage/french#c,\\\\begin{otherlanguage}/french#c,\\\\begin{otherlanguage*}/french#c,\\\\resetdefaultlanguage/french#c,\\\\setlanguagealias/french#c,\\\\setlanguagealias*/french#c,\\\\pghyphenation/french#c,\\\\setlanghyphenmins/french#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textfrench\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrench{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfriulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textfriulian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfriulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfriulian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgaelic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textgaelic[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/gaelic#c,\\\\setmainlanguage/gaelic#c,\\\\setotherlanguage/gaelic#c,\\\\textlang/gaelic#c,\\\\textgaelic#c,\\\\begin{lang}/gaelic#c,\\\\begin{gaelic}#c,\\\\selectlanguage/gaelic#c,\\\\foreignlanguage/gaelic#c,\\\\begin{otherlanguage}/gaelic#c,\\\\begin{otherlanguage*}/gaelic#c,\\\\resetdefaultlanguage/gaelic#c,\\\\setlanguagealias/gaelic#c,\\\\setlanguagealias*/gaelic#c,\\\\pghyphenation/gaelic#c,\\\\setlanghyphenmins/gaelic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textgaelic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgaelic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgalician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textgalician[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgalician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgalician{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgeorgian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textgeorgian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/georgian#c,\\\\setmainlanguage/georgian#c,\\\\setotherlanguage/georgian#c,\\\\textlang/georgian#c,\\\\textgeorgian#c,\\\\begin{lang}/georgian#c,\\\\begin{georgian}#c,\\\\selectlanguage/georgian#c,\\\\foreignlanguage/georgian#c,\\\\begin{otherlanguage}/georgian#c,\\\\begin{otherlanguage*}/georgian#c,\\\\resetdefaultlanguage/georgian#c,\\\\setlanguagealias/georgian#c,\\\\setlanguagealias*/georgian#c,\\\\pghyphenation/georgian#c,\\\\setlanghyphenmins/georgian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textgeorgian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgeorgian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgerman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textgerman[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/german#c,\\\\setmainlanguage/german#c,\\\\setotherlanguage/german#c,\\\\textlang/german#c,\\\\textgerman#c,\\\\begin{lang}/german#c,\\\\begin{german}#c,\\\\selectlanguage/german#c,\\\\foreignlanguage/german#c,\\\\begin{otherlanguage}/german#c,\\\\begin{otherlanguage*}/german#c,\\\\resetdefaultlanguage/german#c,\\\\setlanguagealias/german#c,\\\\setlanguagealias*/german#c,\\\\pghyphenation/german#c,\\\\setlanghyphenmins/german#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textgerman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgerman{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textgreek[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/greek#c,\\\\setmainlanguage/greek#c,\\\\setotherlanguage/greek#c,\\\\textlang/greek#c,\\\\textgreek#c,\\\\begin{lang}/greek#c,\\\\begin{greek}#c,\\\\selectlanguage/greek#c,\\\\foreignlanguage/greek#c,\\\\begin{otherlanguage}/greek#c,\\\\begin{otherlanguage*}/greek#c,\\\\resetdefaultlanguage/greek#c,\\\\setlanguagealias/greek#c,\\\\setlanguagealias*/greek#c,\\\\pghyphenation/greek#c,\\\\setlanghyphenmins/greek#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthebrew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texthebrew[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hebrew#c,\\\\setmainlanguage/hebrew#c,\\\\setotherlanguage/hebrew#c,\\\\textlang/hebrew#c,\\\\texthebrew#c,\\\\begin{lang}/hebrew#c,\\\\begin{hebrew}#c,\\\\selectlanguage/hebrew#c,\\\\foreignlanguage/hebrew#c,\\\\begin{otherlanguage}/hebrew#c,\\\\begin{otherlanguage*}/hebrew#c,\\\\resetdefaultlanguage/hebrew#c,\\\\setlanguagealias/hebrew#c,\\\\setlanguagealias*/hebrew#c,\\\\pghyphenation/hebrew#c,\\\\setlanghyphenmins/hebrew#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texthebrew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthebrew{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthindi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texthindi[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hindi#c,\\\\setmainlanguage/hindi#c,\\\\setotherlanguage/hindi#c,\\\\textlang/hindi#c,\\\\texthindi#c,\\\\begin{lang}/hindi#c,\\\\begin{hindi}#c,\\\\selectlanguage/hindi#c,\\\\foreignlanguage/hindi#c,\\\\begin{otherlanguage}/hindi#c,\\\\begin{otherlanguage*}/hindi#c,\\\\resetdefaultlanguage/hindi#c,\\\\setlanguagealias/hindi#c,\\\\setlanguagealias*/hindi#c,\\\\pghyphenation/hindi#c,\\\\setlanghyphenmins/hindi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texthindi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthindi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texthungarian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hungarian#c,\\\\setmainlanguage/hungarian#c,\\\\setotherlanguage/hungarian#c,\\\\textlang/hungarian#c,\\\\texthungarian#c,\\\\begin{lang}/hungarian#c,\\\\begin{hungarian}#c,\\\\selectlanguage/hungarian#c,\\\\foreignlanguage/hungarian#c,\\\\begin{otherlanguage}/hungarian#c,\\\\begin{otherlanguage*}/hungarian#c,\\\\resetdefaultlanguage/hungarian#c,\\\\setlanguagealias/hungarian#c,\\\\setlanguagealias*/hungarian#c,\\\\pghyphenation/hungarian#c,\\\\setlanghyphenmins/hungarian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texthungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthungarian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texticelandic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texticelandic[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texticelandic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texticelandic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinterlingua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textinterlingua[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinterlingua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinterlingua{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textitalian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textitalian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/italian#c,\\\\setmainlanguage/italian#c,\\\\setotherlanguage/italian#c,\\\\textlang/italian#c,\\\\textitalian#c,\\\\begin{lang}/italian#c,\\\\begin{italian}#c,\\\\selectlanguage/italian#c,\\\\foreignlanguage/italian#c,\\\\begin{otherlanguage}/italian#c,\\\\begin{otherlanguage*}/italian#c,\\\\resetdefaultlanguage/italian#c,\\\\setlanguagealias/italian#c,\\\\setlanguagealias*/italian#c,\\\\pghyphenation/italian#c,\\\\setlanghyphenmins/italian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textitalian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textitalian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textjapanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textjapanese[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textjapanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textjapanese{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkannada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkannada[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkannada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkannada{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkhmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkhmer[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkhmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkhmer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkorean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkorean[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/korean#c,\\\\setmainlanguage/korean#c,\\\\setotherlanguage/korean#c,\\\\textlang/korean#c,\\\\textkorean#c,\\\\begin{lang}/korean#c,\\\\begin{korean}#c,\\\\selectlanguage/korean#c,\\\\foreignlanguage/korean#c,\\\\begin{otherlanguage}/korean#c,\\\\begin{otherlanguage*}/korean#c,\\\\resetdefaultlanguage/korean#c,\\\\setlanguagealias/korean#c,\\\\setlanguagealias*/korean#c,\\\\pghyphenation/korean#c,\\\\setlanghyphenmins/korean#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textkorean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkorean{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textkurdish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textkurdish[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/kurdish#c,\\\\setmainlanguage/kurdish#c,\\\\setotherlanguage/kurdish#c,\\\\textlang/kurdish#c,\\\\textkurdish#c,\\\\begin{lang}/kurdish#c,\\\\begin{kurdish}#c,\\\\selectlanguage/kurdish#c,\\\\foreignlanguage/kurdish#c,\\\\begin{otherlanguage}/kurdish#c,\\\\begin{otherlanguage*}/kurdish#c,\\\\resetdefaultlanguage/kurdish#c,\\\\setlanguagealias/kurdish#c,\\\\setlanguagealias*/kurdish#c,\\\\pghyphenation/kurdish#c,\\\\setlanghyphenmins/kurdish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textkurdish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textkurdish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textlao[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/lao#c,\\\\setmainlanguage/lao#c,\\\\setotherlanguage/lao#c,\\\\textlang/lao#c,\\\\textlao#c,\\\\begin{lang}/lao#c,\\\\begin{lao}#c,\\\\selectlanguage/lao#c,\\\\foreignlanguage/lao#c,\\\\begin{otherlanguage}/lao#c,\\\\begin{otherlanguage*}/lao#c,\\\\resetdefaultlanguage/lao#c,\\\\setlanguagealias/lao#c,\\\\setlanguagealias*/lao#c,\\\\pghyphenation/lao#c,\\\\setlanghyphenmins/lao#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textlao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlao{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textlatin[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/latin#c,\\\\setmainlanguage/latin#c,\\\\setotherlanguage/latin#c,\\\\textlang/latin#c,\\\\textlatin#c,\\\\begin{lang}/latin#c,\\\\begin{latin}#c,\\\\selectlanguage/latin#c,\\\\foreignlanguage/latin#c,\\\\begin{otherlanguage}/latin#c,\\\\begin{otherlanguage*}/latin#c,\\\\resetdefaultlanguage/latin#c,\\\\setlanguagealias/latin#c,\\\\setlanguagealias*/latin#c,\\\\pghyphenation/latin#c,\\\\setlanghyphenmins/latin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textlatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlatin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlatvian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textlatvian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlatvian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlatvian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlithuanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textlithuanian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlithuanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlithuanian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmacedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmacedonian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmacedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmacedonian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmalay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmalay[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/malay#c,\\\\setmainlanguage/malay#c,\\\\setotherlanguage/malay#c,\\\\textlang/malay#c,\\\\textmalay#c,\\\\begin{lang}/malay#c,\\\\begin{malay}#c,\\\\selectlanguage/malay#c,\\\\foreignlanguage/malay#c,\\\\begin{otherlanguage}/malay#c,\\\\begin{otherlanguage*}/malay#c,\\\\resetdefaultlanguage/malay#c,\\\\setlanguagealias/malay#c,\\\\setlanguagealias*/malay#c,\\\\pghyphenation/malay#c,\\\\setlanghyphenmins/malay#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmalay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmalay{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmalayalam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmalayalam[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmalayalam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmalayalam{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmarathi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmarathi[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/marathi#c,\\\\setmainlanguage/marathi#c,\\\\setotherlanguage/marathi#c,\\\\textlang/marathi#c,\\\\textmarathi#c,\\\\begin{lang}/marathi#c,\\\\begin{marathi}#c,\\\\selectlanguage/marathi#c,\\\\foreignlanguage/marathi#c,\\\\begin{otherlanguage}/marathi#c,\\\\begin{otherlanguage*}/marathi#c,\\\\resetdefaultlanguage/marathi#c,\\\\setlanguagealias/marathi#c,\\\\setlanguagealias*/marathi#c,\\\\pghyphenation/marathi#c,\\\\setlanghyphenmins/marathi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmarathi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmarathi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmongolian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textmongolian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/mongolian#c,\\\\setmainlanguage/mongolian#c,\\\\setotherlanguage/mongolian#c,\\\\textlang/mongolian#c,\\\\textmongolian#c,\\\\begin{lang}/mongolian#c,\\\\begin{mongolian}#c,\\\\selectlanguage/mongolian#c,\\\\foreignlanguage/mongolian#c,\\\\begin{otherlanguage}/mongolian#c,\\\\begin{otherlanguage*}/mongolian#c,\\\\resetdefaultlanguage/mongolian#c,\\\\setlanguagealias/mongolian#c,\\\\setlanguagealias*/mongolian#c,\\\\pghyphenation/mongolian#c,\\\\setlanghyphenmins/mongolian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textmongolian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmongolian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textnko[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnko{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnorwegian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textnorwegian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/norwegian#c,\\\\setmainlanguage/norwegian#c,\\\\setotherlanguage/norwegian#c,\\\\textlang/norwegian#c,\\\\textnorwegian#c,\\\\begin{lang}/norwegian#c,\\\\begin{norwegian}#c,\\\\selectlanguage/norwegian#c,\\\\foreignlanguage/norwegian#c,\\\\begin{otherlanguage}/norwegian#c,\\\\begin{otherlanguage*}/norwegian#c,\\\\resetdefaultlanguage/norwegian#c,\\\\setlanguagealias/norwegian#c,\\\\setlanguagealias*/norwegian#c,\\\\pghyphenation/norwegian#c,\\\\setlanghyphenmins/norwegian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textnorwegian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnorwegian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textoccitan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textoccitan[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textoccitan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoccitan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textodia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textodia[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/odia#c,\\\\setmainlanguage/odia#c,\\\\setotherlanguage/odia#c,\\\\textlang/odia#c,\\\\textodia#c,\\\\begin{lang}/odia#c,\\\\begin{odia}#c,\\\\selectlanguage/odia#c,\\\\foreignlanguage/odia#c,\\\\begin{otherlanguage}/odia#c,\\\\begin{otherlanguage*}/odia#c,\\\\resetdefaultlanguage/odia#c,\\\\setlanguagealias/odia#c,\\\\setlanguagealias*/odia#c,\\\\pghyphenation/odia#c,\\\\setlanghyphenmins/odia#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textodia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textodia{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpersian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/persian#c,\\\\setmainlanguage/persian#c,\\\\setotherlanguage/persian#c,\\\\textlang/persian#c,\\\\textpersian#c,\\\\begin{lang}/persian#c,\\\\begin{persian}#c,\\\\selectlanguage/persian#c,\\\\foreignlanguage/persian#c,\\\\begin{otherlanguage}/persian#c,\\\\begin{otherlanguage*}/persian#c,\\\\resetdefaultlanguage/persian#c,\\\\setlanguagealias/persian#c,\\\\setlanguagealias*/persian#c,\\\\pghyphenation/persian#c,\\\\setlanghyphenmins/persian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textpersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpiedmontese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpiedmontese[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpiedmontese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpiedmontese{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpolish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpolish[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/polish#c,\\\\setmainlanguage/polish#c,\\\\setotherlanguage/polish#c,\\\\textlang/polish#c,\\\\textpolish#c,\\\\begin{lang}/polish#c,\\\\begin{polish}#c,\\\\selectlanguage/polish#c,\\\\foreignlanguage/polish#c,\\\\begin{otherlanguage}/polish#c,\\\\begin{otherlanguage*}/polish#c,\\\\resetdefaultlanguage/polish#c,\\\\setlanguagealias/polish#c,\\\\setlanguagealias*/polish#c,\\\\pghyphenation/polish#c,\\\\setlanghyphenmins/polish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textpolish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpolish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textportuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textportuguese[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/portuguese#c,\\\\setmainlanguage/portuguese#c,\\\\setotherlanguage/portuguese#c,\\\\textlang/portuguese#c,\\\\textportuguese#c,\\\\begin{lang}/portuguese#c,\\\\begin{portuguese}#c,\\\\selectlanguage/portuguese#c,\\\\foreignlanguage/portuguese#c,\\\\begin{otherlanguage}/portuguese#c,\\\\begin{otherlanguage*}/portuguese#c,\\\\resetdefaultlanguage/portuguese#c,\\\\setlanguagealias/portuguese#c,\\\\setlanguagealias*/portuguese#c,\\\\pghyphenation/portuguese#c,\\\\setlanghyphenmins/portuguese#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textportuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textportuguese{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpunjabi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textpunjabi[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/punjabi#c,\\\\setmainlanguage/punjabi#c,\\\\setotherlanguage/punjabi#c,\\\\textlang/punjabi#c,\\\\textpunjabi#c,\\\\begin{lang}/punjabi#c,\\\\begin{punjabi}#c,\\\\selectlanguage/punjabi#c,\\\\foreignlanguage/punjabi#c,\\\\begin{otherlanguage}/punjabi#c,\\\\begin{otherlanguage*}/punjabi#c,\\\\resetdefaultlanguage/punjabi#c,\\\\setlanguagealias/punjabi#c,\\\\setlanguagealias*/punjabi#c,\\\\pghyphenation/punjabi#c,\\\\setlanghyphenmins/punjabi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textpunjabi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpunjabi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textromanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textromanian[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textromanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textromanian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textromansh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textromansh[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textromansh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textromansh{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrussian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textrussian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/russian#c,\\\\setmainlanguage/russian#c,\\\\setotherlanguage/russian#c,\\\\textlang/russian#c,\\\\textrussian#c,\\\\begin{lang}/russian#c,\\\\begin{russian}#c,\\\\selectlanguage/russian#c,\\\\foreignlanguage/russian#c,\\\\begin{otherlanguage}/russian#c,\\\\begin{otherlanguage*}/russian#c,\\\\resetdefaultlanguage/russian#c,\\\\setlanguagealias/russian#c,\\\\setlanguagealias*/russian#c,\\\\pghyphenation/russian#c,\\\\setlanghyphenmins/russian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textrussian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrussian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsami\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsami[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsami\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsami{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsanskrit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsanskrit[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/sanskrit#c,\\\\setmainlanguage/sanskrit#c,\\\\setotherlanguage/sanskrit#c,\\\\textlang/sanskrit#c,\\\\textsanskrit#c,\\\\begin{lang}/sanskrit#c,\\\\begin{sanskrit}#c,\\\\selectlanguage/sanskrit#c,\\\\foreignlanguage/sanskrit#c,\\\\begin{otherlanguage}/sanskrit#c,\\\\begin{otherlanguage*}/sanskrit#c,\\\\resetdefaultlanguage/sanskrit#c,\\\\setlanguagealias/sanskrit#c,\\\\setlanguagealias*/sanskrit#c,\\\\pghyphenation/sanskrit#c,\\\\setlanghyphenmins/sanskrit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsanskrit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsanskrit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textserbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textserbian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/serbian#c,\\\\setmainlanguage/serbian#c,\\\\setotherlanguage/serbian#c,\\\\textlang/serbian#c,\\\\textserbian#c,\\\\begin{lang}/serbian#c,\\\\begin{serbian}#c,\\\\selectlanguage/serbian#c,\\\\foreignlanguage/serbian#c,\\\\begin{otherlanguage}/serbian#c,\\\\begin{otherlanguage*}/serbian#c,\\\\resetdefaultlanguage/serbian#c,\\\\setlanguagealias/serbian#c,\\\\setlanguagealias*/serbian#c,\\\\pghyphenation/serbian#c,\\\\setlanghyphenmins/serbian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textserbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textserbian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textslovak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textslovak[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/slovak#c,\\\\setmainlanguage/slovak#c,\\\\setotherlanguage/slovak#c,\\\\textlang/slovak#c,\\\\textslovak#c,\\\\begin{lang}/slovak#c,\\\\begin{slovak}#c,\\\\selectlanguage/slovak#c,\\\\foreignlanguage/slovak#c,\\\\begin{otherlanguage}/slovak#c,\\\\begin{otherlanguage*}/slovak#c,\\\\resetdefaultlanguage/slovak#c,\\\\setlanguagealias/slovak#c,\\\\setlanguagealias*/slovak#c,\\\\pghyphenation/slovak#c,\\\\setlanghyphenmins/slovak#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textslovak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textslovak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textslovenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textslovenian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/slovenian#c,\\\\setmainlanguage/slovenian#c,\\\\setotherlanguage/slovenian#c,\\\\textlang/slovenian#c,\\\\textslovenian#c,\\\\begin{lang}/slovenian#c,\\\\begin{slovenian}#c,\\\\selectlanguage/slovenian#c,\\\\foreignlanguage/slovenian#c,\\\\begin{otherlanguage}/slovenian#c,\\\\begin{otherlanguage*}/slovenian#c,\\\\resetdefaultlanguage/slovenian#c,\\\\setlanguagealias/slovenian#c,\\\\setlanguagealias*/slovenian#c,\\\\pghyphenation/slovenian#c,\\\\setlanghyphenmins/slovenian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textslovenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textslovenian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsorbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsorbian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/sorbian#c,\\\\setmainlanguage/sorbian#c,\\\\setotherlanguage/sorbian#c,\\\\textlang/sorbian#c,\\\\textsorbian#c,\\\\begin{lang}/sorbian#c,\\\\begin{sorbian}#c,\\\\selectlanguage/sorbian#c,\\\\foreignlanguage/sorbian#c,\\\\begin{otherlanguage}/sorbian#c,\\\\begin{otherlanguage*}/sorbian#c,\\\\resetdefaultlanguage/sorbian#c,\\\\setlanguagealias/sorbian#c,\\\\setlanguagealias*/sorbian#c,\\\\pghyphenation/sorbian#c,\\\\setlanghyphenmins/sorbian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsorbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsorbian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textspanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textspanish[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/spanish#c,\\\\setmainlanguage/spanish#c,\\\\setotherlanguage/spanish#c,\\\\textlang/spanish#c,\\\\textspanish#c,\\\\begin{lang}/spanish#c,\\\\begin{spanish}#c,\\\\selectlanguage/spanish#c,\\\\foreignlanguage/spanish#c,\\\\begin{otherlanguage}/spanish#c,\\\\begin{otherlanguage*}/spanish#c,\\\\resetdefaultlanguage/spanish#c,\\\\setlanguagealias/spanish#c,\\\\setlanguagealias*/spanish#c,\\\\pghyphenation/spanish#c,\\\\setlanghyphenmins/spanish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textspanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textspanish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswedish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textswedish[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswedish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswedish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsyriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsyriac[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/syriac#c,\\\\setmainlanguage/syriac#c,\\\\setotherlanguage/syriac#c,\\\\textlang/syriac#c,\\\\textsyriac#c,\\\\begin{lang}/syriac#c,\\\\begin{syriac}#c,\\\\selectlanguage/syriac#c,\\\\foreignlanguage/syriac#c,\\\\begin{otherlanguage}/syriac#c,\\\\begin{otherlanguage*}/syriac#c,\\\\resetdefaultlanguage/syriac#c,\\\\setlanguagealias/syriac#c,\\\\setlanguagealias*/syriac#c,\\\\pghyphenation/syriac#c,\\\\setlanghyphenmins/syriac#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsyriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsyriac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttamil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texttamil[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttamil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttamil{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttelugu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texttelugu[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttelugu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttelugu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textthai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textthai[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/thai#c,\\\\setmainlanguage/thai#c,\\\\setotherlanguage/thai#c,\\\\textlang/thai#c,\\\\textthai#c,\\\\begin{lang}/thai#c,\\\\begin{thai}#c,\\\\selectlanguage/thai#c,\\\\foreignlanguage/thai#c,\\\\begin{otherlanguage}/thai#c,\\\\begin{otherlanguage*}/thai#c,\\\\resetdefaultlanguage/thai#c,\\\\setlanguagealias/thai#c,\\\\setlanguagealias*/thai#c,\\\\pghyphenation/thai#c,\\\\setlanghyphenmins/thai#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textthai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textthai{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttibetan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texttibetan[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/tibetan#c,\\\\setmainlanguage/tibetan#c,\\\\setotherlanguage/tibetan#c,\\\\textlang/tibetan#c,\\\\texttibetan#c,\\\\begin{lang}/tibetan#c,\\\\begin{tibetan}#c,\\\\selectlanguage/tibetan#c,\\\\foreignlanguage/tibetan#c,\\\\begin{otherlanguage}/tibetan#c,\\\\begin{otherlanguage*}/tibetan#c,\\\\resetdefaultlanguage/tibetan#c,\\\\setlanguagealias/tibetan#c,\\\\setlanguagealias*/tibetan#c,\\\\pghyphenation/tibetan#c,\\\\setlanghyphenmins/tibetan#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texttibetan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttibetan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textturkish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textturkish[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textturkish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textturkish{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textturkmen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textturkmen[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textturkmen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textturkmen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textukrainian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textukrainian[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/ukrainian#c,\\\\setmainlanguage/ukrainian#c,\\\\setotherlanguage/ukrainian#c,\\\\textlang/ukrainian#c,\\\\textukrainian#c,\\\\begin{lang}/ukrainian#c,\\\\begin{ukrainian}#c,\\\\selectlanguage/ukrainian#c,\\\\foreignlanguage/ukrainian#c,\\\\begin{otherlanguage}/ukrainian#c,\\\\begin{otherlanguage*}/ukrainian#c,\\\\resetdefaultlanguage/ukrainian#c,\\\\setlanguagealias/ukrainian#c,\\\\setlanguagealias*/ukrainian#c,\\\\pghyphenation/ukrainian#c,\\\\setlanghyphenmins/ukrainian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textukrainian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textukrainian{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texturdu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texturdu[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/urdu#c,\\\\setmainlanguage/urdu#c,\\\\setotherlanguage/urdu#c,\\\\textlang/urdu#c,\\\\texturdu#c,\\\\begin{lang}/urdu#c,\\\\begin{urdu}#c,\\\\selectlanguage/urdu#c,\\\\foreignlanguage/urdu#c,\\\\begin{otherlanguage}/urdu#c,\\\\begin{otherlanguage*}/urdu#c,\\\\resetdefaultlanguage/urdu#c,\\\\setlanguagealias/urdu#c,\\\\setlanguagealias*/urdu#c,\\\\pghyphenation/urdu#c,\\\\setlanghyphenmins/urdu#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texturdu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texturdu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textuyghur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textuyghur[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/uyghur#c,\\\\setmainlanguage/uyghur#c,\\\\setotherlanguage/uyghur#c,\\\\textlang/uyghur#c,\\\\textuyghur#c,\\\\begin{lang}/uyghur#c,\\\\begin{uyghur}#c,\\\\selectlanguage/uyghur#c,\\\\foreignlanguage/uyghur#c,\\\\begin{otherlanguage}/uyghur#c,\\\\begin{otherlanguage*}/uyghur#c,\\\\resetdefaultlanguage/uyghur#c,\\\\setlanguagealias/uyghur#c,\\\\setlanguagealias*/uyghur#c,\\\\pghyphenation/uyghur#c,\\\\setlanghyphenmins/uyghur#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textuyghur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuyghur{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textvietnamese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textvietnamese[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textvietnamese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvietnamese{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textwelsh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textwelsh[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/welsh#c,\\\\setmainlanguage/welsh#c,\\\\setotherlanguage/welsh#c,\\\\textlang/welsh#c,\\\\textwelsh#c,\\\\begin{lang}/welsh#c,\\\\begin{welsh}#c,\\\\selectlanguage/welsh#c,\\\\foreignlanguage/welsh#c,\\\\begin{otherlanguage}/welsh#c,\\\\begin{otherlanguage*}/welsh#c,\\\\resetdefaultlanguage/welsh#c,\\\\setlanguagealias/welsh#c,\\\\setlanguagealias*/welsh#c,\\\\pghyphenation/welsh#c,\\\\setlanghyphenmins/welsh#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textwelsh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textwelsh{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"selectlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"selectlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"selectlanguage[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreignlanguage{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"foreignlanguage[${3:options%keyvals}]{${1:language}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"selectbackgroundlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectbackgroundlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"resetdefaultlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetdefaultlanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"resetdefaultlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resetdefaultlanguage[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"normalfontlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmfamilylatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilylatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttfamilylatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinAlph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlanguagealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlanguagealias{${1:language}}{${2:alias%envname}}\"\n      }\n    },\n    {\n      \"name\": \"setlanguagealias\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setlanguagealias[${3:options%keyvals}]{${1:language}}{${2:alias%envname}}\"\n      }\n    },\n    {\n      \"name\": \"setlanguagealias*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlanguagealias*{${1:language}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"setlanguagealias*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setlanguagealias*[${3:options%keyvals}]{${1:language}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"pghyphenation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pghyphenation{${1:language}}{${2:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"pghyphenation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pghyphenation[${3:options%keyvals}]{${1:language}}{${2:exceptions}}\"\n      }\n    },\n    {\n      \"name\": \"setlanghyphenmins\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setlanghyphenmins{${1:language}}{${2:l}}{${3:r}}\"\n      }\n    },\n    {\n      \"name\": \"setlanghyphenmins\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"setlanghyphenmins[${4:options%keyvals}]{${1:language}}{${2:l}}{${3:r}}\"\n      }\n    },\n    {\n      \"name\": \"disablehyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enablehyphenation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abjad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjad{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abjadmaghribi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjadmaghribi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"abjadalph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"asbuk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"AsbukTrad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AsbukTrad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"asbukTrad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbukTrad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hodiau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hodiaun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atticnumeral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebrewnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hebrewnumeral{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hebrewalph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hebrewalph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ontoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ondatehungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayGen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayArabic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todayRoman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldtoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arcsen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arctg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanishoperator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spanishoperator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"abjadsyriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjadsyriac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uyghurordinal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uyghurordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"uyghurord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uyghurord{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"captionsafrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsalbanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsamharic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsarabic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsarmenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsasturian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbasque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbelarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbengali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbreton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionscatalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionschinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionscoptic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionscroatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsczech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdivehi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsdutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsesperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsestonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfriulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgaelic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgalician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgeorgian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionshebrew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionshindi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionshungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsicelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsinterlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskannada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskhmer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskorean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionskurdish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslatvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionslithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmacedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmalay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmalayalam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmarathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsmongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsnorwegian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsoccitan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspersian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspiedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspolish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionspunjabi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsromansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssami\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssanskrit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsserbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsslovenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsspanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionssyriac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstamil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstelugu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsthai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionstibetan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsturkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsturkmen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsurdu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsuyghur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsvietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionswelsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateafrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datealbanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateamharic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datearabic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datearmenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateasturian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebasque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebelarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebengali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebreton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datebulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecatalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datechinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecoptic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datecroatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateczech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedivehi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datedutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateesperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateestonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefinnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefriulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategaelic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategalician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategeorgian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehebrew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehindi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datehungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateicelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateinterlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekannada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekhmer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekorean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datekurdish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelatvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datelithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemacedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemalay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemalayalam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemarathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datemongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datenorwegian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateoccitan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepersian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepiedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepolish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datepunjabi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateromansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesami\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesanskrit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateserbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateslovenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datespanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datesyriac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetamil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetelugu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datethai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datetibetan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateturkmen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateurdu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateuyghur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datewelsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"localnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localnumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"localnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"localnumeral[${2:option%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\localnumeral#c,\\\\localnumeral*#c,\\\\Localnumeral#c,\\\\Localnumeral*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"localnumeral*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localnumeral*{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"localnumeral*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"localnumeral*[${2:option%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\localnumeral#c,\\\\localnumeral*#c,\\\\Localnumeral#c,\\\\Localnumeral*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Localnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Localnumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Localnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Localnumeral[${2:option%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\localnumeral#c,\\\\localnumeral*#c,\\\\Localnumeral#c,\\\\Localnumeral*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Localnumeral*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Localnumeral*{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Localnumeral*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Localnumeral*[${2:option%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\localnumeral#c,\\\\localnumeral*#c,\\\\Localnumeral#c,\\\\Localnumeral*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arabicdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arabicdigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bengalidigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bengalidigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"devanagaridigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"devanagaridigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"farsidigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"farsidigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gurmukhidigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gurmukhidigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kannadadigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kannadadigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"khmerdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"khmerdigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"laodigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"laodigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nkodigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nkodigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thaidigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaidigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tibetandigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tibetandigits{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"armeniannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"armeniannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"belarusiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belarusiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Belarusiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Belarusiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"chinesenumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chinesenumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"georgiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"georgiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"hebrewnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hebrewnumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Hebrewnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hebrewnumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Hebrewnumeralfinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hebrewnumeralfinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"mongoliannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mongoliannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Mongoliannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mongoliannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"punjabinumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"punjabinumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"russiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"russiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Russiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Russiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"serbiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"serbiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Serbiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Serbiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ukrainiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ukrainiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ukrainiannumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ukrainiannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftfootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightfootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autofootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textwidthfootnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charifavailable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"charifavailable{${1:char code}}{${2:substitution}}\"\n      }\n    },\n    {\n      \"name\": \"IfCharIsAvailableTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfCharIsAvailableTF{${1:char code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainlanguagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"languagevariant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainlanguagevariant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"babelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainbabelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"languageid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"languageid{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"mainlanguageid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainlanguageid{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"iflanguageloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguageloaded{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifbabellanguageloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifbabellanguageloaded{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflanguageidloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"iflanguageidloaded{${1:type}}{${2:id}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"iflanguageoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"iflanguageoption{${1:language}}{${2:opt key}}{${3:opt value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"lang\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"afrikaans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/afrikaans#c,\\\\setmainlanguage/afrikaans#c,\\\\setotherlanguage/afrikaans#c,\\\\textlang/afrikaans#c,\\\\textafrikaans#c,\\\\begin{lang}/afrikaans#c,\\\\begin{afrikaans}#c,\\\\selectlanguage/afrikaans#c,\\\\foreignlanguage/afrikaans#c,\\\\begin{otherlanguage}/afrikaans#c,\\\\begin{otherlanguage*}/afrikaans#c,\\\\resetdefaultlanguage/afrikaans#c,\\\\setlanguagealias/afrikaans#c,\\\\setlanguagealias*/afrikaans#c,\\\\pghyphenation/afrikaans#c,\\\\setlanghyphenmins/afrikaans#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"afrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"albanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"albanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amharic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"amharic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Arabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/arabic#c,\\\\setmainlanguage/arabic#c,\\\\setotherlanguage/arabic#c,\\\\textlang/arabic#c,\\\\textarabic#c,\\\\begin{lang}/arabic#c,\\\\begin{Arabic}#c,\\\\selectlanguage/arabic#c,\\\\foreignlanguage/arabic#c,\\\\begin{otherlanguage}/arabic#c,\\\\begin{otherlanguage*}/arabic#c,\\\\resetdefaultlanguage/arabic#c,\\\\setlanguagealias/arabic#c,\\\\setlanguagealias*/arabic#c,\\\\pghyphenation/arabic#c,\\\\setlanghyphenmins/arabic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arabic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/armenian#c,\\\\setmainlanguage/armenian#c,\\\\setotherlanguage/armenian#c,\\\\textlang/armenian#c,\\\\textarmenian#c,\\\\begin{lang}/armenian#c,\\\\begin{armenian}#c,\\\\selectlanguage/armenian#c,\\\\foreignlanguage/armenian#c,\\\\begin{otherlanguage}/armenian#c,\\\\begin{otherlanguage*}/armenian#c,\\\\resetdefaultlanguage/armenian#c,\\\\setlanguagealias/armenian#c,\\\\setlanguagealias*/armenian#c,\\\\pghyphenation/armenian#c,\\\\setlanghyphenmins/armenian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"armenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asturian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"asturian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"basque\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"basque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belarusian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/belarusian#c,\\\\setmainlanguage/belarusian#c,\\\\setotherlanguage/belarusian#c,\\\\textlang/belarusian#c,\\\\textbelarusian#c,\\\\begin{lang}/belarusian#c,\\\\begin{belarusian}#c,\\\\selectlanguage/belarusian#c,\\\\foreignlanguage/belarusian#c,\\\\begin{otherlanguage}/belarusian#c,\\\\begin{otherlanguage*}/belarusian#c,\\\\resetdefaultlanguage/belarusian#c,\\\\setlanguagealias/belarusian#c,\\\\setlanguagealias*/belarusian#c,\\\\pghyphenation/belarusian#c,\\\\setlanghyphenmins/belarusian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"belarusian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bengali\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/bengali#c,\\\\setmainlanguage/bengali#c,\\\\setotherlanguage/bengali#c,\\\\textlang/bengali#c,\\\\textbengali#c,\\\\begin{lang}/bengali#c,\\\\begin{bengali}#c,\\\\selectlanguage/bengali#c,\\\\foreignlanguage/bengali#c,\\\\begin{otherlanguage}/bengali#c,\\\\begin{otherlanguage*}/bengali#c,\\\\resetdefaultlanguage/bengali#c,\\\\setlanguagealias/bengali#c,\\\\setlanguagealias*/bengali#c,\\\\pghyphenation/bengali#c,\\\\setlanghyphenmins/bengali#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bengali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bosnian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"bosnian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breton\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"breton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bulgarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"bulgarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catalan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/catalan#c,\\\\setmainlanguage/catalan#c,\\\\setotherlanguage/catalan#c,\\\\textlang/catalan#c,\\\\textcatalan#c,\\\\begin{lang}/catalan#c,\\\\begin{catalan}#c,\\\\selectlanguage/catalan#c,\\\\foreignlanguage/catalan#c,\\\\begin{otherlanguage}/catalan#c,\\\\begin{otherlanguage*}/catalan#c,\\\\resetdefaultlanguage/catalan#c,\\\\setlanguagealias/catalan#c,\\\\setlanguagealias*/catalan#c,\\\\pghyphenation/catalan#c,\\\\setlanghyphenmins/catalan#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"catalan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/chinese#c,\\\\setmainlanguage/chinese#c,\\\\setotherlanguage/chinese#c,\\\\textlang/chinese#c,\\\\textchinese#c,\\\\begin{lang}/chinese#c,\\\\begin{chinese}#c,\\\\selectlanguage/chinese#c,\\\\foreignlanguage/chinese#c,\\\\begin{otherlanguage}/chinese#c,\\\\begin{otherlanguage*}/chinese#c,\\\\resetdefaultlanguage/chinese#c,\\\\setlanguagealias/chinese#c,\\\\setlanguagealias*/chinese#c,\\\\pghyphenation/chinese#c,\\\\setlanghyphenmins/chinese#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"coptic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"croatian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/croatian#c,\\\\setmainlanguage/croatian#c,\\\\setotherlanguage/croatian#c,\\\\textlang/croatian#c,\\\\textcroatian#c,\\\\begin{lang}/croatian#c,\\\\begin{croatian}#c,\\\\selectlanguage/croatian#c,\\\\foreignlanguage/croatian#c,\\\\begin{otherlanguage}/croatian#c,\\\\begin{otherlanguage*}/croatian#c,\\\\resetdefaultlanguage/croatian#c,\\\\setlanguagealias/croatian#c,\\\\setlanguagealias*/croatian#c,\\\\pghyphenation/croatian#c,\\\\setlanghyphenmins/croatian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"croatian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"czech\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/czech#c,\\\\setmainlanguage/czech#c,\\\\setotherlanguage/czech#c,\\\\textlang/czech#c,\\\\textczech#c,\\\\begin{lang}/czech#c,\\\\begin{czech}#c,\\\\selectlanguage/czech#c,\\\\foreignlanguage/czech#c,\\\\begin{otherlanguage}/czech#c,\\\\begin{otherlanguage*}/czech#c,\\\\resetdefaultlanguage/czech#c,\\\\setlanguagealias/czech#c,\\\\setlanguagealias*/czech#c,\\\\pghyphenation/czech#c,\\\\setlanghyphenmins/czech#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"czech\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"danish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"danish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divehi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"divehi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dutch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/dutch#c,\\\\setmainlanguage/dutch#c,\\\\setotherlanguage/dutch#c,\\\\textlang/dutch#c,\\\\textdutch#c,\\\\begin{lang}/dutch#c,\\\\begin{dutch}#c,\\\\selectlanguage/dutch#c,\\\\foreignlanguage/dutch#c,\\\\begin{otherlanguage}/dutch#c,\\\\begin{otherlanguage*}/dutch#c,\\\\resetdefaultlanguage/dutch#c,\\\\setlanguagealias/dutch#c,\\\\setlanguagealias*/dutch#c,\\\\pghyphenation/dutch#c,\\\\setlanghyphenmins/dutch#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dutch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"english\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/english#c,\\\\setmainlanguage/english#c,\\\\setotherlanguage/english#c,\\\\textlang/english#c,\\\\textenglish#c,\\\\begin{lang}/english#c,\\\\begin{english}#c,\\\\selectlanguage/english#c,\\\\foreignlanguage/english#c,\\\\begin{otherlanguage}/english#c,\\\\begin{otherlanguage*}/english#c,\\\\resetdefaultlanguage/english#c,\\\\setlanguagealias/english#c,\\\\setlanguagealias*/english#c,\\\\pghyphenation/english#c,\\\\setlanghyphenmins/english#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"english\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esperanto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"esperanto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"estonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"estonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finnish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/finnish#c,\\\\setmainlanguage/finnish#c,\\\\setotherlanguage/finnish#c,\\\\textlang/finnish#c,\\\\textfinnish#c,\\\\begin{lang}/finnish#c,\\\\begin{finnish}#c,\\\\selectlanguage/finnish#c,\\\\foreignlanguage/finnish#c,\\\\begin{otherlanguage}/finnish#c,\\\\begin{otherlanguage*}/finnish#c,\\\\resetdefaultlanguage/finnish#c,\\\\setlanguagealias/finnish#c,\\\\setlanguagealias*/finnish#c,\\\\pghyphenation/finnish#c,\\\\setlanghyphenmins/finnish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"finnish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/french#c,\\\\setmainlanguage/french#c,\\\\setotherlanguage/french#c,\\\\textlang/french#c,\\\\textfrench#c,\\\\begin{lang}/french#c,\\\\begin{french}#c,\\\\selectlanguage/french#c,\\\\foreignlanguage/french#c,\\\\begin{otherlanguage}/french#c,\\\\begin{otherlanguage*}/french#c,\\\\resetdefaultlanguage/french#c,\\\\setlanguagealias/french#c,\\\\setlanguagealias*/french#c,\\\\pghyphenation/french#c,\\\\setlanghyphenmins/french#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"friulian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"friulian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gaelic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/gaelic#c,\\\\setmainlanguage/gaelic#c,\\\\setotherlanguage/gaelic#c,\\\\textlang/gaelic#c,\\\\textgaelic#c,\\\\begin{lang}/gaelic#c,\\\\begin{gaelic}#c,\\\\selectlanguage/gaelic#c,\\\\foreignlanguage/gaelic#c,\\\\begin{otherlanguage}/gaelic#c,\\\\begin{otherlanguage*}/gaelic#c,\\\\resetdefaultlanguage/gaelic#c,\\\\setlanguagealias/gaelic#c,\\\\setlanguagealias*/gaelic#c,\\\\pghyphenation/gaelic#c,\\\\setlanghyphenmins/gaelic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gaelic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"galician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"galician\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"georgian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/georgian#c,\\\\setmainlanguage/georgian#c,\\\\setotherlanguage/georgian#c,\\\\textlang/georgian#c,\\\\textgeorgian#c,\\\\begin{lang}/georgian#c,\\\\begin{georgian}#c,\\\\selectlanguage/georgian#c,\\\\foreignlanguage/georgian#c,\\\\begin{otherlanguage}/georgian#c,\\\\begin{otherlanguage*}/georgian#c,\\\\resetdefaultlanguage/georgian#c,\\\\setlanguagealias/georgian#c,\\\\setlanguagealias*/georgian#c,\\\\pghyphenation/georgian#c,\\\\setlanghyphenmins/georgian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"georgian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"german\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/german#c,\\\\setmainlanguage/german#c,\\\\setotherlanguage/german#c,\\\\textlang/german#c,\\\\textgerman#c,\\\\begin{lang}/german#c,\\\\begin{german}#c,\\\\selectlanguage/german#c,\\\\foreignlanguage/german#c,\\\\begin{otherlanguage}/german#c,\\\\begin{otherlanguage*}/german#c,\\\\resetdefaultlanguage/german#c,\\\\setlanguagealias/german#c,\\\\setlanguagealias*/german#c,\\\\pghyphenation/german#c,\\\\setlanghyphenmins/german#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"german\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/greek#c,\\\\setmainlanguage/greek#c,\\\\setotherlanguage/greek#c,\\\\textlang/greek#c,\\\\textgreek#c,\\\\begin{lang}/greek#c,\\\\begin{greek}#c,\\\\selectlanguage/greek#c,\\\\foreignlanguage/greek#c,\\\\begin{otherlanguage}/greek#c,\\\\begin{otherlanguage*}/greek#c,\\\\resetdefaultlanguage/greek#c,\\\\setlanguagealias/greek#c,\\\\setlanguagealias*/greek#c,\\\\pghyphenation/greek#c,\\\\setlanghyphenmins/greek#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"greek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hebrew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hebrew#c,\\\\setmainlanguage/hebrew#c,\\\\setotherlanguage/hebrew#c,\\\\textlang/hebrew#c,\\\\texthebrew#c,\\\\begin{lang}/hebrew#c,\\\\begin{hebrew}#c,\\\\selectlanguage/hebrew#c,\\\\foreignlanguage/hebrew#c,\\\\begin{otherlanguage}/hebrew#c,\\\\begin{otherlanguage*}/hebrew#c,\\\\resetdefaultlanguage/hebrew#c,\\\\setlanguagealias/hebrew#c,\\\\setlanguagealias*/hebrew#c,\\\\pghyphenation/hebrew#c,\\\\setlanghyphenmins/hebrew#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hebrew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hindi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hindi#c,\\\\setmainlanguage/hindi#c,\\\\setotherlanguage/hindi#c,\\\\textlang/hindi#c,\\\\texthindi#c,\\\\begin{lang}/hindi#c,\\\\begin{hindi}#c,\\\\selectlanguage/hindi#c,\\\\foreignlanguage/hindi#c,\\\\begin{otherlanguage}/hindi#c,\\\\begin{otherlanguage*}/hindi#c,\\\\resetdefaultlanguage/hindi#c,\\\\setlanguagealias/hindi#c,\\\\setlanguagealias*/hindi#c,\\\\pghyphenation/hindi#c,\\\\setlanghyphenmins/hindi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hindi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/hungarian#c,\\\\setmainlanguage/hungarian#c,\\\\setotherlanguage/hungarian#c,\\\\textlang/hungarian#c,\\\\texthungarian#c,\\\\begin{lang}/hungarian#c,\\\\begin{hungarian}#c,\\\\selectlanguage/hungarian#c,\\\\foreignlanguage/hungarian#c,\\\\begin{otherlanguage}/hungarian#c,\\\\begin{otherlanguage*}/hungarian#c,\\\\resetdefaultlanguage/hungarian#c,\\\\setlanguagealias/hungarian#c,\\\\setlanguagealias*/hungarian#c,\\\\pghyphenation/hungarian#c,\\\\setlanghyphenmins/hungarian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hungarian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icelandic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"icelandic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlingua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"interlingua\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/italian#c,\\\\setmainlanguage/italian#c,\\\\setotherlanguage/italian#c,\\\\textlang/italian#c,\\\\textitalian#c,\\\\begin{lang}/italian#c,\\\\begin{italian}#c,\\\\selectlanguage/italian#c,\\\\foreignlanguage/italian#c,\\\\begin{otherlanguage}/italian#c,\\\\begin{otherlanguage*}/italian#c,\\\\resetdefaultlanguage/italian#c,\\\\setlanguagealias/italian#c,\\\\setlanguagealias*/italian#c,\\\\pghyphenation/italian#c,\\\\setlanghyphenmins/italian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"italian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"japanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kannada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"kannada\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"khmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"khmer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"korean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/korean#c,\\\\setmainlanguage/korean#c,\\\\setotherlanguage/korean#c,\\\\textlang/korean#c,\\\\textkorean#c,\\\\begin{lang}/korean#c,\\\\begin{korean}#c,\\\\selectlanguage/korean#c,\\\\foreignlanguage/korean#c,\\\\begin{otherlanguage}/korean#c,\\\\begin{otherlanguage*}/korean#c,\\\\resetdefaultlanguage/korean#c,\\\\setlanguagealias/korean#c,\\\\setlanguagealias*/korean#c,\\\\pghyphenation/korean#c,\\\\setlanghyphenmins/korean#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"korean\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kurdish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/kurdish#c,\\\\setmainlanguage/kurdish#c,\\\\setotherlanguage/kurdish#c,\\\\textlang/kurdish#c,\\\\textkurdish#c,\\\\begin{lang}/kurdish#c,\\\\begin{kurdish}#c,\\\\selectlanguage/kurdish#c,\\\\foreignlanguage/kurdish#c,\\\\begin{otherlanguage}/kurdish#c,\\\\begin{otherlanguage*}/kurdish#c,\\\\resetdefaultlanguage/kurdish#c,\\\\setlanguagealias/kurdish#c,\\\\setlanguagealias*/kurdish#c,\\\\pghyphenation/kurdish#c,\\\\setlanghyphenmins/kurdish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kurdish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/lao#c,\\\\setmainlanguage/lao#c,\\\\setotherlanguage/lao#c,\\\\textlang/lao#c,\\\\textlao#c,\\\\begin{lang}/lao#c,\\\\begin{lao}#c,\\\\selectlanguage/lao#c,\\\\foreignlanguage/lao#c,\\\\begin{otherlanguage}/lao#c,\\\\begin{otherlanguage*}/lao#c,\\\\resetdefaultlanguage/lao#c,\\\\setlanguagealias/lao#c,\\\\setlanguagealias*/lao#c,\\\\pghyphenation/lao#c,\\\\setlanghyphenmins/lao#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/latin#c,\\\\setmainlanguage/latin#c,\\\\setotherlanguage/latin#c,\\\\textlang/latin#c,\\\\textlatin#c,\\\\begin{lang}/latin#c,\\\\begin{latin}#c,\\\\selectlanguage/latin#c,\\\\foreignlanguage/latin#c,\\\\begin{otherlanguage}/latin#c,\\\\begin{otherlanguage*}/latin#c,\\\\resetdefaultlanguage/latin#c,\\\\setlanguagealias/latin#c,\\\\setlanguagealias*/latin#c,\\\\pghyphenation/latin#c,\\\\setlanghyphenmins/latin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"latin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latvian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"latvian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lithuanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"lithuanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macedonian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"macedonian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/malay#c,\\\\setmainlanguage/malay#c,\\\\setotherlanguage/malay#c,\\\\textlang/malay#c,\\\\textmalay#c,\\\\begin{lang}/malay#c,\\\\begin{malay}#c,\\\\selectlanguage/malay#c,\\\\foreignlanguage/malay#c,\\\\begin{otherlanguage}/malay#c,\\\\begin{otherlanguage*}/malay#c,\\\\resetdefaultlanguage/malay#c,\\\\setlanguagealias/malay#c,\\\\setlanguagealias*/malay#c,\\\\pghyphenation/malay#c,\\\\setlanghyphenmins/malay#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"malay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malayalam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"malayalam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marathi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/marathi#c,\\\\setmainlanguage/marathi#c,\\\\setotherlanguage/marathi#c,\\\\textlang/marathi#c,\\\\textmarathi#c,\\\\begin{lang}/marathi#c,\\\\begin{marathi}#c,\\\\selectlanguage/marathi#c,\\\\foreignlanguage/marathi#c,\\\\begin{otherlanguage}/marathi#c,\\\\begin{otherlanguage*}/marathi#c,\\\\resetdefaultlanguage/marathi#c,\\\\setlanguagealias/marathi#c,\\\\setlanguagealias*/marathi#c,\\\\pghyphenation/marathi#c,\\\\setlanghyphenmins/marathi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marathi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mongolian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/mongolian#c,\\\\setmainlanguage/mongolian#c,\\\\setotherlanguage/mongolian#c,\\\\textlang/mongolian#c,\\\\textmongolian#c,\\\\begin{lang}/mongolian#c,\\\\begin{mongolian}#c,\\\\selectlanguage/mongolian#c,\\\\foreignlanguage/mongolian#c,\\\\begin{otherlanguage}/mongolian#c,\\\\begin{otherlanguage*}/mongolian#c,\\\\resetdefaultlanguage/mongolian#c,\\\\setlanguagealias/mongolian#c,\\\\setlanguagealias*/mongolian#c,\\\\pghyphenation/mongolian#c,\\\\setlanghyphenmins/mongolian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mongolian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nko\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"nko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norwegian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/norwegian#c,\\\\setmainlanguage/norwegian#c,\\\\setotherlanguage/norwegian#c,\\\\textlang/norwegian#c,\\\\textnorwegian#c,\\\\begin{lang}/norwegian#c,\\\\begin{norwegian}#c,\\\\selectlanguage/norwegian#c,\\\\foreignlanguage/norwegian#c,\\\\begin{otherlanguage}/norwegian#c,\\\\begin{otherlanguage*}/norwegian#c,\\\\resetdefaultlanguage/norwegian#c,\\\\setlanguagealias/norwegian#c,\\\\setlanguagealias*/norwegian#c,\\\\pghyphenation/norwegian#c,\\\\setlanghyphenmins/norwegian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"norwegian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"occitan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"occitan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/odia#c,\\\\setmainlanguage/odia#c,\\\\setotherlanguage/odia#c,\\\\textlang/odia#c,\\\\textodia#c,\\\\begin{lang}/odia#c,\\\\begin{odia}#c,\\\\selectlanguage/odia#c,\\\\foreignlanguage/odia#c,\\\\begin{otherlanguage}/odia#c,\\\\begin{otherlanguage*}/odia#c,\\\\resetdefaultlanguage/odia#c,\\\\setlanguagealias/odia#c,\\\\setlanguagealias*/odia#c,\\\\pghyphenation/odia#c,\\\\setlanghyphenmins/odia#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"odia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/persian#c,\\\\setmainlanguage/persian#c,\\\\setotherlanguage/persian#c,\\\\textlang/persian#c,\\\\textpersian#c,\\\\begin{lang}/persian#c,\\\\begin{persian}#c,\\\\selectlanguage/persian#c,\\\\foreignlanguage/persian#c,\\\\begin{otherlanguage}/persian#c,\\\\begin{otherlanguage*}/persian#c,\\\\resetdefaultlanguage/persian#c,\\\\setlanguagealias/persian#c,\\\\setlanguagealias*/persian#c,\\\\pghyphenation/persian#c,\\\\setlanghyphenmins/persian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"persian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piedmontese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"piedmontese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/polish#c,\\\\setmainlanguage/polish#c,\\\\setotherlanguage/polish#c,\\\\textlang/polish#c,\\\\textpolish#c,\\\\begin{lang}/polish#c,\\\\begin{polish}#c,\\\\selectlanguage/polish#c,\\\\foreignlanguage/polish#c,\\\\begin{otherlanguage}/polish#c,\\\\begin{otherlanguage*}/polish#c,\\\\resetdefaultlanguage/polish#c,\\\\setlanguagealias/polish#c,\\\\setlanguagealias*/polish#c,\\\\pghyphenation/polish#c,\\\\setlanghyphenmins/polish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"portuguese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/portuguese#c,\\\\setmainlanguage/portuguese#c,\\\\setotherlanguage/portuguese#c,\\\\textlang/portuguese#c,\\\\textportuguese#c,\\\\begin{lang}/portuguese#c,\\\\begin{portuguese}#c,\\\\selectlanguage/portuguese#c,\\\\foreignlanguage/portuguese#c,\\\\begin{otherlanguage}/portuguese#c,\\\\begin{otherlanguage*}/portuguese#c,\\\\resetdefaultlanguage/portuguese#c,\\\\setlanguagealias/portuguese#c,\\\\setlanguagealias*/portuguese#c,\\\\pghyphenation/portuguese#c,\\\\setlanghyphenmins/portuguese#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"portuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punjabi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/punjabi#c,\\\\setmainlanguage/punjabi#c,\\\\setotherlanguage/punjabi#c,\\\\textlang/punjabi#c,\\\\textpunjabi#c,\\\\begin{lang}/punjabi#c,\\\\begin{punjabi}#c,\\\\selectlanguage/punjabi#c,\\\\foreignlanguage/punjabi#c,\\\\begin{otherlanguage}/punjabi#c,\\\\begin{otherlanguage*}/punjabi#c,\\\\resetdefaultlanguage/punjabi#c,\\\\setlanguagealias/punjabi#c,\\\\setlanguagealias*/punjabi#c,\\\\pghyphenation/punjabi#c,\\\\setlanghyphenmins/punjabi#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"punjabi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"romanian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romansh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"romansh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"russian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/russian#c,\\\\setmainlanguage/russian#c,\\\\setotherlanguage/russian#c,\\\\textlang/russian#c,\\\\textrussian#c,\\\\begin{lang}/russian#c,\\\\begin{russian}#c,\\\\selectlanguage/russian#c,\\\\foreignlanguage/russian#c,\\\\begin{otherlanguage}/russian#c,\\\\begin{otherlanguage*}/russian#c,\\\\resetdefaultlanguage/russian#c,\\\\setlanguagealias/russian#c,\\\\setlanguagealias*/russian#c,\\\\pghyphenation/russian#c,\\\\setlanghyphenmins/russian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sami\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"sami\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sanskrit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/sanskrit#c,\\\\setmainlanguage/sanskrit#c,\\\\setotherlanguage/sanskrit#c,\\\\textlang/sanskrit#c,\\\\textsanskrit#c,\\\\begin{lang}/sanskrit#c,\\\\begin{sanskrit}#c,\\\\selectlanguage/sanskrit#c,\\\\foreignlanguage/sanskrit#c,\\\\begin{otherlanguage}/sanskrit#c,\\\\begin{otherlanguage*}/sanskrit#c,\\\\resetdefaultlanguage/sanskrit#c,\\\\setlanguagealias/sanskrit#c,\\\\setlanguagealias*/sanskrit#c,\\\\pghyphenation/sanskrit#c,\\\\setlanghyphenmins/sanskrit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sanskrit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/serbian#c,\\\\setmainlanguage/serbian#c,\\\\setotherlanguage/serbian#c,\\\\textlang/serbian#c,\\\\textserbian#c,\\\\begin{lang}/serbian#c,\\\\begin{serbian}#c,\\\\selectlanguage/serbian#c,\\\\foreignlanguage/serbian#c,\\\\begin{otherlanguage}/serbian#c,\\\\begin{otherlanguage*}/serbian#c,\\\\resetdefaultlanguage/serbian#c,\\\\setlanguagealias/serbian#c,\\\\setlanguagealias*/serbian#c,\\\\pghyphenation/serbian#c,\\\\setlanghyphenmins/serbian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"serbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slovak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/slovak#c,\\\\setmainlanguage/slovak#c,\\\\setotherlanguage/slovak#c,\\\\textlang/slovak#c,\\\\textslovak#c,\\\\begin{lang}/slovak#c,\\\\begin{slovak}#c,\\\\selectlanguage/slovak#c,\\\\foreignlanguage/slovak#c,\\\\begin{otherlanguage}/slovak#c,\\\\begin{otherlanguage*}/slovak#c,\\\\resetdefaultlanguage/slovak#c,\\\\setlanguagealias/slovak#c,\\\\setlanguagealias*/slovak#c,\\\\pghyphenation/slovak#c,\\\\setlanghyphenmins/slovak#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slovak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slovenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/slovenian#c,\\\\setmainlanguage/slovenian#c,\\\\setotherlanguage/slovenian#c,\\\\textlang/slovenian#c,\\\\textslovenian#c,\\\\begin{lang}/slovenian#c,\\\\begin{slovenian}#c,\\\\selectlanguage/slovenian#c,\\\\foreignlanguage/slovenian#c,\\\\begin{otherlanguage}/slovenian#c,\\\\begin{otherlanguage*}/slovenian#c,\\\\resetdefaultlanguage/slovenian#c,\\\\setlanguagealias/slovenian#c,\\\\setlanguagealias*/slovenian#c,\\\\pghyphenation/slovenian#c,\\\\setlanghyphenmins/slovenian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slovenian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sorbian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/sorbian#c,\\\\setmainlanguage/sorbian#c,\\\\setotherlanguage/sorbian#c,\\\\textlang/sorbian#c,\\\\textsorbian#c,\\\\begin{lang}/sorbian#c,\\\\begin{sorbian}#c,\\\\selectlanguage/sorbian#c,\\\\foreignlanguage/sorbian#c,\\\\begin{otherlanguage}/sorbian#c,\\\\begin{otherlanguage*}/sorbian#c,\\\\resetdefaultlanguage/sorbian#c,\\\\setlanguagealias/sorbian#c,\\\\setlanguagealias*/sorbian#c,\\\\pghyphenation/sorbian#c,\\\\setlanghyphenmins/sorbian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sorbian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spanish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/spanish#c,\\\\setmainlanguage/spanish#c,\\\\setotherlanguage/spanish#c,\\\\textlang/spanish#c,\\\\textspanish#c,\\\\begin{lang}/spanish#c,\\\\begin{spanish}#c,\\\\selectlanguage/spanish#c,\\\\foreignlanguage/spanish#c,\\\\begin{otherlanguage}/spanish#c,\\\\begin{otherlanguage*}/spanish#c,\\\\resetdefaultlanguage/spanish#c,\\\\setlanguagealias/spanish#c,\\\\setlanguagealias*/spanish#c,\\\\pghyphenation/spanish#c,\\\\setlanghyphenmins/spanish#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swedish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"swedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/syriac#c,\\\\setmainlanguage/syriac#c,\\\\setotherlanguage/syriac#c,\\\\textlang/syriac#c,\\\\textsyriac#c,\\\\begin{lang}/syriac#c,\\\\begin{syriac}#c,\\\\selectlanguage/syriac#c,\\\\foreignlanguage/syriac#c,\\\\begin{otherlanguage}/syriac#c,\\\\begin{otherlanguage*}/syriac#c,\\\\resetdefaultlanguage/syriac#c,\\\\setlanguagealias/syriac#c,\\\\setlanguagealias*/syriac#c,\\\\pghyphenation/syriac#c,\\\\setlanghyphenmins/syriac#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"syriac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"tamil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telugu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"telugu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/thai#c,\\\\setmainlanguage/thai#c,\\\\setotherlanguage/thai#c,\\\\textlang/thai#c,\\\\textthai#c,\\\\begin{lang}/thai#c,\\\\begin{thai}#c,\\\\selectlanguage/thai#c,\\\\foreignlanguage/thai#c,\\\\begin{otherlanguage}/thai#c,\\\\begin{otherlanguage*}/thai#c,\\\\resetdefaultlanguage/thai#c,\\\\setlanguagealias/thai#c,\\\\setlanguagealias*/thai#c,\\\\pghyphenation/thai#c,\\\\setlanghyphenmins/thai#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thai\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tibetan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/tibetan#c,\\\\setmainlanguage/tibetan#c,\\\\setotherlanguage/tibetan#c,\\\\textlang/tibetan#c,\\\\texttibetan#c,\\\\begin{lang}/tibetan#c,\\\\begin{tibetan}#c,\\\\selectlanguage/tibetan#c,\\\\foreignlanguage/tibetan#c,\\\\begin{otherlanguage}/tibetan#c,\\\\begin{otherlanguage*}/tibetan#c,\\\\resetdefaultlanguage/tibetan#c,\\\\setlanguagealias/tibetan#c,\\\\setlanguagealias*/tibetan#c,\\\\pghyphenation/tibetan#c,\\\\setlanghyphenmins/tibetan#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tibetan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turkish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"turkish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turkmen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"turkmen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ukrainian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/ukrainian#c,\\\\setmainlanguage/ukrainian#c,\\\\setotherlanguage/ukrainian#c,\\\\textlang/ukrainian#c,\\\\textukrainian#c,\\\\begin{lang}/ukrainian#c,\\\\begin{ukrainian}#c,\\\\selectlanguage/ukrainian#c,\\\\foreignlanguage/ukrainian#c,\\\\begin{otherlanguage}/ukrainian#c,\\\\begin{otherlanguage*}/ukrainian#c,\\\\resetdefaultlanguage/ukrainian#c,\\\\setlanguagealias/ukrainian#c,\\\\setlanguagealias*/ukrainian#c,\\\\pghyphenation/ukrainian#c,\\\\setlanghyphenmins/ukrainian#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ukrainian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urdu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/urdu#c,\\\\setmainlanguage/urdu#c,\\\\setotherlanguage/urdu#c,\\\\textlang/urdu#c,\\\\texturdu#c,\\\\begin{lang}/urdu#c,\\\\begin{urdu}#c,\\\\selectlanguage/urdu#c,\\\\foreignlanguage/urdu#c,\\\\begin{otherlanguage}/urdu#c,\\\\begin{otherlanguage*}/urdu#c,\\\\resetdefaultlanguage/urdu#c,\\\\setlanguagealias/urdu#c,\\\\setlanguagealias*/urdu#c,\\\\pghyphenation/urdu#c,\\\\setlanghyphenmins/urdu#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urdu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uyghur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/uyghur#c,\\\\setmainlanguage/uyghur#c,\\\\setotherlanguage/uyghur#c,\\\\textlang/uyghur#c,\\\\textuyghur#c,\\\\begin{lang}/uyghur#c,\\\\begin{uyghur}#c,\\\\selectlanguage/uyghur#c,\\\\foreignlanguage/uyghur#c,\\\\begin{otherlanguage}/uyghur#c,\\\\begin{otherlanguage*}/uyghur#c,\\\\resetdefaultlanguage/uyghur#c,\\\\setlanguagealias/uyghur#c,\\\\setlanguagealias*/uyghur#c,\\\\pghyphenation/uyghur#c,\\\\setlanghyphenmins/uyghur#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uyghur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vietnamese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"vietnamese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"welsh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\setdefaultlanguage/welsh#c,\\\\setmainlanguage/welsh#c,\\\\setotherlanguage/welsh#c,\\\\textlang/welsh#c,\\\\textwelsh#c,\\\\begin{lang}/welsh#c,\\\\begin{welsh}#c,\\\\selectlanguage/welsh#c,\\\\foreignlanguage/welsh#c,\\\\begin{otherlanguage}/welsh#c,\\\\begin{otherlanguage*}/welsh#c,\\\\resetdefaultlanguage/welsh#c,\\\\setlanguagealias/welsh#c,\\\\setlanguagealias*/welsh#c,\\\\pghyphenation/welsh#c,\\\\setlanghyphenmins/welsh#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"welsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"otherlanguage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenrules\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:language}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/polyglossia#c\": [\n      \"babelshorthands\",\n      \"localmarks\",\n      \"luatexrenderer=${1:renderer}\",\n      \"verbose\"\n    ],\n    \"\\\\setdefaultlanguage/afrikaans#c,\\\\setmainlanguage/afrikaans#c,\\\\setotherlanguage/afrikaans#c,\\\\textlang/afrikaans#c,\\\\textafrikaans#c,\\\\begin{lang}/afrikaans#c,\\\\begin{afrikaans}#c,\\\\selectlanguage/afrikaans#c,\\\\foreignlanguage/afrikaans#c,\\\\begin{otherlanguage}/afrikaans#c,\\\\begin{otherlanguage*}/afrikaans#c,\\\\resetdefaultlanguage/afrikaans#c,\\\\setlanguagealias/afrikaans#c,\\\\setlanguagealias*/afrikaans#c,\\\\pghyphenation/afrikaans#c,\\\\setlanghyphenmins/afrikaans#c\": [\n      \"babelshorthands\"\n    ],\n    \"\\\\setdefaultlanguage/arabic#c,\\\\setmainlanguage/arabic#c,\\\\setotherlanguage/arabic#c,\\\\textlang/arabic#c,\\\\textarabic#c,\\\\begin{lang}/arabic#c,\\\\begin{Arabic}#c,\\\\selectlanguage/arabic#c,\\\\foreignlanguage/arabic#c,\\\\begin{otherlanguage}/arabic#c,\\\\begin{otherlanguage*}/arabic#c,\\\\resetdefaultlanguage/arabic#c,\\\\setlanguagealias/arabic#c,\\\\setlanguagealias*/arabic#c,\\\\pghyphenation/arabic#c,\\\\setlanghyphenmins/arabic#c\": [\n      \"calendar=${1|gregorian,islamic,hijri|}\",\n      \"hijricorrection=${1:integer}\",\n      \"locale=${1|default,mashriq,libya,algeria,tunisia,morocco,mauritania|}\",\n      \"numerals=${1|mashriq,eastern,maghrib,western|}\",\n      \"sectionsep=${1:code}\",\n      \"abjadalph\",\n      \"abjadjimnotail\"\n    ],\n    \"\\\\setdefaultlanguage/armenian#c,\\\\setmainlanguage/armenian#c,\\\\setotherlanguage/armenian#c,\\\\textlang/armenian#c,\\\\textarmenian#c,\\\\begin{lang}/armenian#c,\\\\begin{armenian}#c,\\\\selectlanguage/armenian#c,\\\\foreignlanguage/armenian#c,\\\\begin{otherlanguage}/armenian#c,\\\\begin{otherlanguage*}/armenian#c,\\\\resetdefaultlanguage/armenian#c,\\\\setlanguagealias/armenian#c,\\\\setlanguagealias*/armenian#c,\\\\pghyphenation/armenian#c,\\\\setlanghyphenmins/armenian#c\": [\n      \"variant=${1|eastern,western|}\",\n      \"numerals=${1|armenian,arabic|}\",\n      \"capitalyiwn\"\n    ],\n    \"\\\\setdefaultlanguage/belarusian#c,\\\\setmainlanguage/belarusian#c,\\\\setotherlanguage/belarusian#c,\\\\textlang/belarusian#c,\\\\textbelarusian#c,\\\\begin{lang}/belarusian#c,\\\\begin{belarusian}#c,\\\\selectlanguage/belarusian#c,\\\\foreignlanguage/belarusian#c,\\\\begin{otherlanguage}/belarusian#c,\\\\begin{otherlanguage*}/belarusian#c,\\\\resetdefaultlanguage/belarusian#c,\\\\setlanguagealias/belarusian#c,\\\\setlanguagealias*/belarusian#c,\\\\pghyphenation/belarusian#c,\\\\setlanghyphenmins/belarusian#c\": [\n      \"babelshorthands\",\n      \"numerals=${1|arabic,cyrillic-alph,cyrillic-trad|}\",\n      \"spelling=${1|modern,classic,tarask|}\"\n    ],\n    \"\\\\setdefaultlanguage/bengali#c,\\\\setmainlanguage/bengali#c,\\\\setotherlanguage/bengali#c,\\\\textlang/bengali#c,\\\\textbengali#c,\\\\begin{lang}/bengali#c,\\\\begin{bengali}#c,\\\\selectlanguage/bengali#c,\\\\foreignlanguage/bengali#c,\\\\begin{otherlanguage}/bengali#c,\\\\begin{otherlanguage*}/bengali#c,\\\\resetdefaultlanguage/bengali#c,\\\\setlanguagealias/bengali#c,\\\\setlanguagealias*/bengali#c,\\\\pghyphenation/bengali#c,\\\\setlanghyphenmins/bengali#c\": [\n      \"numerals=${1|Western,Bengali,Devanagari|}\",\n      \"changecounternumbering\"\n    ],\n    \"\\\\setdefaultlanguage/catalan#c,\\\\setmainlanguage/catalan#c,\\\\setotherlanguage/catalan#c,\\\\textlang/catalan#c,\\\\textcatalan#c,\\\\begin{lang}/catalan#c,\\\\begin{catalan}#c,\\\\selectlanguage/catalan#c,\\\\foreignlanguage/catalan#c,\\\\begin{otherlanguage}/catalan#c,\\\\begin{otherlanguage*}/catalan#c,\\\\resetdefaultlanguage/catalan#c,\\\\setlanguagealias/catalan#c,\\\\setlanguagealias*/catalan#c,\\\\pghyphenation/catalan#c,\\\\setlanghyphenmins/catalan#c\": [\n      \"babelshorthands\"\n    ],\n    \"\\\\setdefaultlanguage/chinese#c,\\\\setmainlanguage/chinese#c,\\\\setotherlanguage/chinese#c,\\\\textlang/chinese#c,\\\\textchinese#c,\\\\begin{lang}/chinese#c,\\\\begin{chinese}#c,\\\\selectlanguage/chinese#c,\\\\foreignlanguage/chinese#c,\\\\begin{otherlanguage}/chinese#c,\\\\begin{otherlanguage*}/chinese#c,\\\\resetdefaultlanguage/chinese#c,\\\\setlanguagealias/chinese#c,\\\\setlanguagealias*/chinese#c,\\\\pghyphenation/chinese#c,\\\\setlanghyphenmins/chinese#c\": [\n      \"variant=${1|simplified,traditional|}\",\n      \"numerals=${1|arabic,chinese|}\"\n    ],\n    \"\\\\setdefaultlanguage/croatian#c,\\\\setmainlanguage/croatian#c,\\\\setotherlanguage/croatian#c,\\\\textlang/croatian#c,\\\\textcroatian#c,\\\\begin{lang}/croatian#c,\\\\begin{croatian}#c,\\\\selectlanguage/croatian#c,\\\\foreignlanguage/croatian#c,\\\\begin{otherlanguage}/croatian#c,\\\\begin{otherlanguage*}/croatian#c,\\\\resetdefaultlanguage/croatian#c,\\\\setlanguagealias/croatian#c,\\\\setlanguagealias*/croatian#c,\\\\pghyphenation/croatian#c,\\\\setlanghyphenmins/croatian#c\": [\n      \"babelshorthands\",\n      \"disabledigraphs\",\n      \"localalph\",\n      \"splithyphens\"\n    ],\n    \"\\\\setdefaultlanguage/czech#c,\\\\setmainlanguage/czech#c,\\\\setotherlanguage/czech#c,\\\\textlang/czech#c,\\\\textczech#c,\\\\begin{lang}/czech#c,\\\\begin{czech}#c,\\\\selectlanguage/czech#c,\\\\foreignlanguage/czech#c,\\\\begin{otherlanguage}/czech#c,\\\\begin{otherlanguage*}/czech#c,\\\\resetdefaultlanguage/czech#c,\\\\setlanguagealias/czech#c,\\\\setlanguagealias*/czech#c,\\\\pghyphenation/czech#c,\\\\setlanghyphenmins/czech#c\": [\n      \"babelshorthands\",\n      \"splithyphens\",\n      \"vlna\"\n    ],\n    \"\\\\setdefaultlanguage/dutch#c,\\\\setmainlanguage/dutch#c,\\\\setotherlanguage/dutch#c,\\\\textlang/dutch#c,\\\\textdutch#c,\\\\begin{lang}/dutch#c,\\\\begin{dutch}#c,\\\\selectlanguage/dutch#c,\\\\foreignlanguage/dutch#c,\\\\begin{otherlanguage}/dutch#c,\\\\begin{otherlanguage*}/dutch#c,\\\\resetdefaultlanguage/dutch#c,\\\\setlanguagealias/dutch#c,\\\\setlanguagealias*/dutch#c,\\\\pghyphenation/dutch#c,\\\\setlanghyphenmins/dutch#c\": [\n      \"tremahyphenation\",\n      \"babelshorthands\"\n    ],\n    \"\\\\setdefaultlanguage/english#c,\\\\setmainlanguage/english#c,\\\\setotherlanguage/english#c,\\\\textlang/english#c,\\\\textenglish#c,\\\\begin{lang}/english#c,\\\\begin{english}#c,\\\\selectlanguage/english#c,\\\\foreignlanguage/english#c,\\\\begin{otherlanguage}/english#c,\\\\begin{otherlanguage*}/english#c,\\\\resetdefaultlanguage/english#c,\\\\setlanguagealias/english#c,\\\\setlanguagealias*/english#c,\\\\pghyphenation/english#c,\\\\setlanghyphenmins/english#c\": [\n      \"variant=${1|american,us,usmax,british,uk,australian,canadian,newzealand|}\",\n      \"ordinalmonthday\"\n    ],\n    \"\\\\setdefaultlanguage/finnish#c,\\\\setmainlanguage/finnish#c,\\\\setotherlanguage/finnish#c,\\\\textlang/finnish#c,\\\\textfinnish#c,\\\\begin{lang}/finnish#c,\\\\begin{finnish}#c,\\\\selectlanguage/finnish#c,\\\\foreignlanguage/finnish#c,\\\\begin{otherlanguage}/finnish#c,\\\\begin{otherlanguage*}/finnish#c,\\\\resetdefaultlanguage/finnish#c,\\\\setlanguagealias/finnish#c,\\\\setlanguagealias*/finnish#c,\\\\pghyphenation/finnish#c,\\\\setlanghyphenmins/finnish#c\": [\n      \"babelshorthands\",\n      \"schoolhyphens\"\n    ],\n    \"\\\\setdefaultlanguage/french#c,\\\\setmainlanguage/french#c,\\\\setotherlanguage/french#c,\\\\textlang/french#c,\\\\textfrench#c,\\\\begin{lang}/french#c,\\\\begin{french}#c,\\\\selectlanguage/french#c,\\\\foreignlanguage/french#c,\\\\begin{otherlanguage}/french#c,\\\\begin{otherlanguage*}/french#c,\\\\resetdefaultlanguage/french#c,\\\\setlanguagealias/french#c,\\\\setlanguagealias*/french#c,\\\\pghyphenation/french#c,\\\\setlanghyphenmins/french#c\": [\n      \"variant=${1|french,canadian,acadian,swiss|}\",\n      \"autospacing\",\n      \"thincolonspace\",\n      \"autospaceguillemets\",\n      \"autospacetypewriter\",\n      \"frenchfootnote\",\n      \"frenchitemlabels\",\n      \"frenchpart\",\n      \"itemlabels=${1:code}\",\n      \"itemlabeli=${1:code}\",\n      \"itemlabelii=${1:code}\",\n      \"itemlabeliii=${1:code}\",\n      \"itemlabeliv=${1:code}\"\n    ],\n    \"\\\\setdefaultlanguage/gaelic#c,\\\\setmainlanguage/gaelic#c,\\\\setotherlanguage/gaelic#c,\\\\textlang/gaelic#c,\\\\textgaelic#c,\\\\begin{lang}/gaelic#c,\\\\begin{gaelic}#c,\\\\selectlanguage/gaelic#c,\\\\foreignlanguage/gaelic#c,\\\\begin{otherlanguage}/gaelic#c,\\\\begin{otherlanguage*}/gaelic#c,\\\\resetdefaultlanguage/gaelic#c,\\\\setlanguagealias/gaelic#c,\\\\setlanguagealias*/gaelic#c,\\\\pghyphenation/gaelic#c,\\\\setlanghyphenmins/gaelic#c\": [\n      \"variant=${1|irish,scottish|}\"\n    ],\n    \"\\\\setdefaultlanguage/georgian#c,\\\\setmainlanguage/georgian#c,\\\\setotherlanguage/georgian#c,\\\\textlang/georgian#c,\\\\textgeorgian#c,\\\\begin{lang}/georgian#c,\\\\begin{georgian}#c,\\\\selectlanguage/georgian#c,\\\\foreignlanguage/georgian#c,\\\\begin{otherlanguage}/georgian#c,\\\\begin{otherlanguage*}/georgian#c,\\\\resetdefaultlanguage/georgian#c,\\\\setlanguagealias/georgian#c,\\\\setlanguagealias*/georgian#c,\\\\pghyphenation/georgian#c,\\\\setlanghyphenmins/georgian#c\": [\n      \"babelshorthands\",\n      \"numerals=${1|arabic,georgian|}\",\n      \"oldmonthnames\"\n    ],\n    \"\\\\setdefaultlanguage/german#c,\\\\setmainlanguage/german#c,\\\\setotherlanguage/german#c,\\\\textlang/german#c,\\\\textgerman#c,\\\\begin{lang}/german#c,\\\\begin{german}#c,\\\\selectlanguage/german#c,\\\\foreignlanguage/german#c,\\\\begin{otherlanguage}/german#c,\\\\begin{otherlanguage*}/german#c,\\\\resetdefaultlanguage/german#c,\\\\setlanguagealias/german#c,\\\\setlanguagealias*/german#c,\\\\pghyphenation/german#c,\\\\setlanghyphenmins/german#c\": [\n      \"variant=${1|german,austrian,swiss|}\",\n      \"spelling=${1|new,old|}\",\n      \"capitaleszett\",\n      \"babelshorthands\",\n      \"script=${1|latin,blackletter,fraktur|}\"\n    ],\n    \"\\\\setdefaultlanguage/greek#c,\\\\setmainlanguage/greek#c,\\\\setotherlanguage/greek#c,\\\\textlang/greek#c,\\\\textgreek#c,\\\\begin{lang}/greek#c,\\\\begin{greek}#c,\\\\selectlanguage/greek#c,\\\\foreignlanguage/greek#c,\\\\begin{otherlanguage}/greek#c,\\\\begin{otherlanguage*}/greek#c,\\\\resetdefaultlanguage/greek#c,\\\\setlanguagealias/greek#c,\\\\setlanguagealias*/greek#c,\\\\pghyphenation/greek#c,\\\\setlanghyphenmins/greek#c\": [\n      \"variant=${1|monotonic,mono,polytonic,poly,ancient|}\",\n      \"numerals=${1|greek,arabic|}\",\n      \"attic\"\n    ],\n    \"\\\\setdefaultlanguage/hebrew#c,\\\\setmainlanguage/hebrew#c,\\\\setotherlanguage/hebrew#c,\\\\textlang/hebrew#c,\\\\texthebrew#c,\\\\begin{lang}/hebrew#c,\\\\begin{hebrew}#c,\\\\selectlanguage/hebrew#c,\\\\foreignlanguage/hebrew#c,\\\\begin{otherlanguage}/hebrew#c,\\\\begin{otherlanguage*}/hebrew#c,\\\\resetdefaultlanguage/hebrew#c,\\\\setlanguagealias/hebrew#c,\\\\setlanguagealias*/hebrew#c,\\\\pghyphenation/hebrew#c,\\\\setlanghyphenmins/hebrew#c\": [\n      \"fullyear\",\n      \"numerals=${1|hebrew,arabic|}\",\n      \"calendar=${1|hebrew,gregorian|}\",\n      \"marcheshvan\",\n      \"transliteration=${1|academy,alt|}\"\n    ],\n    \"\\\\setdefaultlanguage/hindi#c,\\\\setmainlanguage/hindi#c,\\\\setotherlanguage/hindi#c,\\\\textlang/hindi#c,\\\\texthindi#c,\\\\begin{lang}/hindi#c,\\\\begin{hindi}#c,\\\\selectlanguage/hindi#c,\\\\foreignlanguage/hindi#c,\\\\begin{otherlanguage}/hindi#c,\\\\begin{otherlanguage*}/hindi#c,\\\\resetdefaultlanguage/hindi#c,\\\\setlanguagealias/hindi#c,\\\\setlanguagealias*/hindi#c,\\\\pghyphenation/hindi#c,\\\\setlanghyphenmins/hindi#c\": [\n      \"numerals=${1|Western,Devanagari|}\"\n    ],\n    \"\\\\setdefaultlanguage/hungarian#c,\\\\setmainlanguage/hungarian#c,\\\\setotherlanguage/hungarian#c,\\\\textlang/hungarian#c,\\\\texthungarian#c,\\\\begin{lang}/hungarian#c,\\\\begin{hungarian}#c,\\\\selectlanguage/hungarian#c,\\\\foreignlanguage/hungarian#c,\\\\begin{otherlanguage}/hungarian#c,\\\\begin{otherlanguage*}/hungarian#c,\\\\resetdefaultlanguage/hungarian#c,\\\\setlanguagealias/hungarian#c,\\\\setlanguagealias*/hungarian#c,\\\\pghyphenation/hungarian#c,\\\\setlanghyphenmins/hungarian#c\": [\n      \"swapstrings=${1|all,captions,headings,headers,hheaders,none|}\",\n      \"forceheadingpunctuation\"\n    ],\n    \"\\\\setdefaultlanguage/italian#c,\\\\setmainlanguage/italian#c,\\\\setotherlanguage/italian#c,\\\\textlang/italian#c,\\\\textitalian#c,\\\\begin{lang}/italian#c,\\\\begin{italian}#c,\\\\selectlanguage/italian#c,\\\\foreignlanguage/italian#c,\\\\begin{otherlanguage}/italian#c,\\\\begin{otherlanguage*}/italian#c,\\\\resetdefaultlanguage/italian#c,\\\\setlanguagealias/italian#c,\\\\setlanguagealias*/italian#c,\\\\pghyphenation/italian#c,\\\\setlanghyphenmins/italian#c\": [\n      \"babelshorthands\"\n    ],\n    \"\\\\setdefaultlanguage/korean#c,\\\\setmainlanguage/korean#c,\\\\setotherlanguage/korean#c,\\\\textlang/korean#c,\\\\textkorean#c,\\\\begin{lang}/korean#c,\\\\begin{korean}#c,\\\\selectlanguage/korean#c,\\\\foreignlanguage/korean#c,\\\\begin{otherlanguage}/korean#c,\\\\begin{otherlanguage*}/korean#c,\\\\resetdefaultlanguage/korean#c,\\\\setlanguagealias/korean#c,\\\\setlanguagealias*/korean#c,\\\\pghyphenation/korean#c,\\\\setlanghyphenmins/korean#c\": [\n      \"variant=${1|plain,classic,modern|}\",\n      \"captions=${1|hangul,hanja|}\",\n      \"swapstrings=${1|all,headers,headings,none|}\"\n    ],\n    \"\\\\setdefaultlanguage/kurdish#c,\\\\setmainlanguage/kurdish#c,\\\\setotherlanguage/kurdish#c,\\\\textlang/kurdish#c,\\\\textkurdish#c,\\\\begin{lang}/kurdish#c,\\\\begin{kurdish}#c,\\\\selectlanguage/kurdish#c,\\\\foreignlanguage/kurdish#c,\\\\begin{otherlanguage}/kurdish#c,\\\\begin{otherlanguage*}/kurdish#c,\\\\resetdefaultlanguage/kurdish#c,\\\\setlanguagealias/kurdish#c,\\\\setlanguagealias*/kurdish#c,\\\\pghyphenation/kurdish#c,\\\\setlanghyphenmins/kurdish#c\": [\n      \"variant=${1|kurmanji,sorani|}\",\n      \"script=${1|Arabic,Latin|}\",\n      \"numerals=${1|western,eastern|}\",\n      \"sectionsep=${1:code}\",\n      \"abjadjimnotail\"\n    ],\n    \"\\\\setdefaultlanguage/lao#c,\\\\setmainlanguage/lao#c,\\\\setotherlanguage/lao#c,\\\\textlang/lao#c,\\\\textlao#c,\\\\begin{lang}/lao#c,\\\\begin{lao}#c,\\\\selectlanguage/lao#c,\\\\foreignlanguage/lao#c,\\\\begin{otherlanguage}/lao#c,\\\\begin{otherlanguage*}/lao#c,\\\\resetdefaultlanguage/lao#c,\\\\setlanguagealias/lao#c,\\\\setlanguagealias*/lao#c,\\\\pghyphenation/lao#c,\\\\setlanghyphenmins/lao#c\": [\n      \"numerals=${1|lao,arabic|}\"\n    ],\n    \"\\\\setdefaultlanguage/latin#c,\\\\setmainlanguage/latin#c,\\\\setotherlanguage/latin#c,\\\\textlang/latin#c,\\\\textlatin#c,\\\\begin{lang}/latin#c,\\\\begin{latin}#c,\\\\selectlanguage/latin#c,\\\\foreignlanguage/latin#c,\\\\begin{otherlanguage}/latin#c,\\\\begin{otherlanguage*}/latin#c,\\\\resetdefaultlanguage/latin#c,\\\\setlanguagealias/latin#c,\\\\setlanguagealias*/latin#c,\\\\pghyphenation/latin#c,\\\\setlanghyphenmins/latin#c\": [\n      \"variant=${1|classic,medieval,modern,ecclesiastic|}\",\n      \"hyphenation=${1|classic,modern,liturgical|}\",\n      \"ecclesiasticfootnotes\",\n      \"usej\",\n      \"capitalizemonth\",\n      \"babelshorthands\",\n      \"prosodicshorthands\"\n    ],\n    \"\\\\setdefaultlanguage/malay#c,\\\\setmainlanguage/malay#c,\\\\setotherlanguage/malay#c,\\\\textlang/malay#c,\\\\textmalay#c,\\\\begin{lang}/malay#c,\\\\begin{malay}#c,\\\\selectlanguage/malay#c,\\\\foreignlanguage/malay#c,\\\\begin{otherlanguage}/malay#c,\\\\begin{otherlanguage*}/malay#c,\\\\resetdefaultlanguage/malay#c,\\\\setlanguagealias/malay#c,\\\\setlanguagealias*/malay#c,\\\\pghyphenation/malay#c,\\\\setlanghyphenmins/malay#c\": [\n      \"variant=${1|indonesian,malaysian|}\"\n    ],\n    \"\\\\setdefaultlanguage/marathi#c,\\\\setmainlanguage/marathi#c,\\\\setotherlanguage/marathi#c,\\\\textlang/marathi#c,\\\\textmarathi#c,\\\\begin{lang}/marathi#c,\\\\begin{marathi}#c,\\\\selectlanguage/marathi#c,\\\\foreignlanguage/marathi#c,\\\\begin{otherlanguage}/marathi#c,\\\\begin{otherlanguage*}/marathi#c,\\\\resetdefaultlanguage/marathi#c,\\\\setlanguagealias/marathi#c,\\\\setlanguagealias*/marathi#c,\\\\pghyphenation/marathi#c,\\\\setlanghyphenmins/marathi#c\": [\n      \"numerals=${1|Devanagari,Western|}\"\n    ],\n    \"\\\\setdefaultlanguage/mongolian#c,\\\\setmainlanguage/mongolian#c,\\\\setotherlanguage/mongolian#c,\\\\textlang/mongolian#c,\\\\textmongolian#c,\\\\begin{lang}/mongolian#c,\\\\begin{mongolian}#c,\\\\selectlanguage/mongolian#c,\\\\foreignlanguage/mongolian#c,\\\\begin{otherlanguage}/mongolian#c,\\\\begin{otherlanguage*}/mongolian#c,\\\\resetdefaultlanguage/mongolian#c,\\\\setlanguagealias/mongolian#c,\\\\setlanguagealias*/mongolian#c,\\\\pghyphenation/mongolian#c,\\\\setlanghyphenmins/mongolian#c\": [\n      \"babelshorthands\",\n      \"numerals=${1|arabic,cyrillic-alph,cyrillic-trad|}\"\n    ],\n    \"\\\\setdefaultlanguage/norwegian#c,\\\\setmainlanguage/norwegian#c,\\\\setotherlanguage/norwegian#c,\\\\textlang/norwegian#c,\\\\textnorwegian#c,\\\\begin{lang}/norwegian#c,\\\\begin{norwegian}#c,\\\\selectlanguage/norwegian#c,\\\\foreignlanguage/norwegian#c,\\\\begin{otherlanguage}/norwegian#c,\\\\begin{otherlanguage*}/norwegian#c,\\\\resetdefaultlanguage/norwegian#c,\\\\setlanguagealias/norwegian#c,\\\\setlanguagealias*/norwegian#c,\\\\pghyphenation/norwegian#c,\\\\setlanghyphenmins/norwegian#c\": [\n      \"variant=${1|bokmal,nynorsk|}\"\n    ],\n    \"\\\\setdefaultlanguage/odia#c,\\\\setmainlanguage/odia#c,\\\\setotherlanguage/odia#c,\\\\textlang/odia#c,\\\\textodia#c,\\\\begin{lang}/odia#c,\\\\begin{odia}#c,\\\\selectlanguage/odia#c,\\\\foreignlanguage/odia#c,\\\\begin{otherlanguage}/odia#c,\\\\begin{otherlanguage*}/odia#c,\\\\resetdefaultlanguage/odia#c,\\\\setlanguagealias/odia#c,\\\\setlanguagealias*/odia#c,\\\\pghyphenation/odia#c,\\\\setlanghyphenmins/odia#c\": [\n      \"numerals=${1|western,devanagari,odia|}\",\n      \"changecounternumbering\"\n    ],\n    \"\\\\setdefaultlanguage/persian#c,\\\\setmainlanguage/persian#c,\\\\setotherlanguage/persian#c,\\\\textlang/persian#c,\\\\textpersian#c,\\\\begin{lang}/persian#c,\\\\begin{persian}#c,\\\\selectlanguage/persian#c,\\\\foreignlanguage/persian#c,\\\\begin{otherlanguage}/persian#c,\\\\begin{otherlanguage*}/persian#c,\\\\resetdefaultlanguage/persian#c,\\\\setlanguagealias/persian#c,\\\\setlanguagealias*/persian#c,\\\\pghyphenation/persian#c,\\\\setlanghyphenmins/persian#c\": [\n      \"numerals=${1|western,eastern|}\",\n      \"sectionsep=${1:code}\",\n      \"abjadjimnotail\"\n    ],\n    \"\\\\setdefaultlanguage/polish#c,\\\\setmainlanguage/polish#c,\\\\setotherlanguage/polish#c,\\\\textlang/polish#c,\\\\textpolish#c,\\\\begin{lang}/polish#c,\\\\begin{polish}#c,\\\\selectlanguage/polish#c,\\\\foreignlanguage/polish#c,\\\\begin{otherlanguage}/polish#c,\\\\begin{otherlanguage*}/polish#c,\\\\resetdefaultlanguage/polish#c,\\\\setlanguagealias/polish#c,\\\\setlanguagealias*/polish#c,\\\\pghyphenation/polish#c,\\\\setlanghyphenmins/polish#c\": [\n      \"babelshorthands\",\n      \"splithyphens\",\n      \"vlna\"\n    ],\n    \"\\\\setdefaultlanguage/portuguese#c,\\\\setmainlanguage/portuguese#c,\\\\setotherlanguage/portuguese#c,\\\\textlang/portuguese#c,\\\\textportuguese#c,\\\\begin{lang}/portuguese#c,\\\\begin{portuguese}#c,\\\\selectlanguage/portuguese#c,\\\\foreignlanguage/portuguese#c,\\\\begin{otherlanguage}/portuguese#c,\\\\begin{otherlanguage*}/portuguese#c,\\\\resetdefaultlanguage/portuguese#c,\\\\setlanguagealias/portuguese#c,\\\\setlanguagealias*/portuguese#c,\\\\pghyphenation/portuguese#c,\\\\setlanghyphenmins/portuguese#c\": [\n      \"variant=${1|brazilian,portuguese|}\",\n      \"babelshorthands\",\n      \"splithyphens\"\n    ],\n    \"\\\\setdefaultlanguage/punjabi#c,\\\\setmainlanguage/punjabi#c,\\\\setotherlanguage/punjabi#c,\\\\textlang/punjabi#c,\\\\textpunjabi#c,\\\\begin{lang}/punjabi#c,\\\\begin{punjabi}#c,\\\\selectlanguage/punjabi#c,\\\\foreignlanguage/punjabi#c,\\\\begin{otherlanguage}/punjabi#c,\\\\begin{otherlanguage*}/punjabi#c,\\\\resetdefaultlanguage/punjabi#c,\\\\setlanguagealias/punjabi#c,\\\\setlanguagealias*/punjabi#c,\\\\pghyphenation/punjabi#c,\\\\setlanghyphenmins/punjabi#c\": [\n      \"numerals=${1|western,gurmukhi|}\"\n    ],\n    \"\\\\setdefaultlanguage/russian#c,\\\\setmainlanguage/russian#c,\\\\setotherlanguage/russian#c,\\\\textlang/russian#c,\\\\textrussian#c,\\\\begin{lang}/russian#c,\\\\begin{russian}#c,\\\\selectlanguage/russian#c,\\\\foreignlanguage/russian#c,\\\\begin{otherlanguage}/russian#c,\\\\begin{otherlanguage*}/russian#c,\\\\resetdefaultlanguage/russian#c,\\\\setlanguagealias/russian#c,\\\\setlanguagealias*/russian#c,\\\\pghyphenation/russian#c,\\\\setlanghyphenmins/russian#c\": [\n      \"babelshorthands\",\n      \"forceheadingpunctuation\",\n      \"indentfirst\",\n      \"mathfunctions\",\n      \"spelling=${1|modern,old|}\",\n      \"numerals=${1|arabic,cyrillic-alph,cyrillic-trad|}\"\n    ],\n    \"\\\\setdefaultlanguage/sanskrit#c,\\\\setmainlanguage/sanskrit#c,\\\\setotherlanguage/sanskrit#c,\\\\textlang/sanskrit#c,\\\\textsanskrit#c,\\\\begin{lang}/sanskrit#c,\\\\begin{sanskrit}#c,\\\\selectlanguage/sanskrit#c,\\\\foreignlanguage/sanskrit#c,\\\\begin{otherlanguage}/sanskrit#c,\\\\begin{otherlanguage*}/sanskrit#c,\\\\resetdefaultlanguage/sanskrit#c,\\\\setlanguagealias/sanskrit#c,\\\\setlanguagealias*/sanskrit#c,\\\\pghyphenation/sanskrit#c,\\\\setlanghyphenmins/sanskrit#c\": [\n      \"script=${1|Devanagari,Gujarati,Malayalam,Bengali,Kannada,Telugu,Latin|}\",\n      \"numerals=${1|Devanagari,Western|}\"\n    ],\n    \"\\\\setdefaultlanguage/serbian#c,\\\\setmainlanguage/serbian#c,\\\\setotherlanguage/serbian#c,\\\\textlang/serbian#c,\\\\textserbian#c,\\\\begin{lang}/serbian#c,\\\\begin{serbian}#c,\\\\selectlanguage/serbian#c,\\\\foreignlanguage/serbian#c,\\\\begin{otherlanguage}/serbian#c,\\\\begin{otherlanguage*}/serbian#c,\\\\resetdefaultlanguage/serbian#c,\\\\setlanguagealias/serbian#c,\\\\setlanguagealias*/serbian#c,\\\\pghyphenation/serbian#c,\\\\setlanghyphenmins/serbian#c\": [\n      \"variant=${1|ekavian,ijekavian|}\",\n      \"script=${1|Cyrillic,Latin|}\",\n      \"datei\",\n      \"splithyphens\",\n      \"numerals=${1|arabic,cyrillic-alph,cyrillic-trad|}\"\n    ],\n    \"\\\\setdefaultlanguage/slovak#c,\\\\setmainlanguage/slovak#c,\\\\setotherlanguage/slovak#c,\\\\textlang/slovak#c,\\\\textslovak#c,\\\\begin{lang}/slovak#c,\\\\begin{slovak}#c,\\\\selectlanguage/slovak#c,\\\\foreignlanguage/slovak#c,\\\\begin{otherlanguage}/slovak#c,\\\\begin{otherlanguage*}/slovak#c,\\\\resetdefaultlanguage/slovak#c,\\\\setlanguagealias/slovak#c,\\\\setlanguagealias*/slovak#c,\\\\pghyphenation/slovak#c,\\\\setlanghyphenmins/slovak#c\": [\n      \"babelshorthands\",\n      \"splithyphens\",\n      \"vlna\"\n    ],\n    \"\\\\setdefaultlanguage/slovenian#c,\\\\setmainlanguage/slovenian#c,\\\\setotherlanguage/slovenian#c,\\\\textlang/slovenian#c,\\\\textslovenian#c,\\\\begin{lang}/slovenian#c,\\\\begin{slovenian}#c,\\\\selectlanguage/slovenian#c,\\\\foreignlanguage/slovenian#c,\\\\begin{otherlanguage}/slovenian#c,\\\\begin{otherlanguage*}/slovenian#c,\\\\resetdefaultlanguage/slovenian#c,\\\\setlanguagealias/slovenian#c,\\\\setlanguagealias*/slovenian#c,\\\\pghyphenation/slovenian#c,\\\\setlanghyphenmins/slovenian#c\": [\n      \"localalph\"\n    ],\n    \"\\\\setdefaultlanguage/sorbian#c,\\\\setmainlanguage/sorbian#c,\\\\setotherlanguage/sorbian#c,\\\\textlang/sorbian#c,\\\\textsorbian#c,\\\\begin{lang}/sorbian#c,\\\\begin{sorbian}#c,\\\\selectlanguage/sorbian#c,\\\\foreignlanguage/sorbian#c,\\\\begin{otherlanguage}/sorbian#c,\\\\begin{otherlanguage*}/sorbian#c,\\\\resetdefaultlanguage/sorbian#c,\\\\setlanguagealias/sorbian#c,\\\\setlanguagealias*/sorbian#c,\\\\pghyphenation/sorbian#c,\\\\setlanghyphenmins/sorbian#c\": [\n      \"variant=${1|lower,upper|}\",\n      \"olddate\"\n    ],\n    \"\\\\setdefaultlanguage/spanish#c,\\\\setmainlanguage/spanish#c,\\\\setotherlanguage/spanish#c,\\\\textlang/spanish#c,\\\\textspanish#c,\\\\begin{lang}/spanish#c,\\\\begin{spanish}#c,\\\\selectlanguage/spanish#c,\\\\foreignlanguage/spanish#c,\\\\begin{otherlanguage}/spanish#c,\\\\begin{otherlanguage*}/spanish#c,\\\\resetdefaultlanguage/spanish#c,\\\\setlanguagealias/spanish#c,\\\\setlanguagealias*/spanish#c,\\\\pghyphenation/spanish#c,\\\\setlanghyphenmins/spanish#c\": [\n      \"variant=${1|spanish,mexican|}\",\n      \"spanishoperators=${1|all,accented,spaced,none,false|}\"\n    ],\n    \"\\\\setdefaultlanguage/syriac#c,\\\\setmainlanguage/syriac#c,\\\\setotherlanguage/syriac#c,\\\\textlang/syriac#c,\\\\textsyriac#c,\\\\begin{lang}/syriac#c,\\\\begin{syriac}#c,\\\\selectlanguage/syriac#c,\\\\foreignlanguage/syriac#c,\\\\begin{otherlanguage}/syriac#c,\\\\begin{otherlanguage*}/syriac#c,\\\\resetdefaultlanguage/syriac#c,\\\\setlanguagealias/syriac#c,\\\\setlanguagealias*/syriac#c,\\\\pghyphenation/syriac#c,\\\\setlanghyphenmins/syriac#c\": [\n      \"numerals=${1|western,eastern,abjad|}\",\n      \"sectionsep=${1:code}\"\n    ],\n    \"\\\\setdefaultlanguage/thai#c,\\\\setmainlanguage/thai#c,\\\\setotherlanguage/thai#c,\\\\textlang/thai#c,\\\\textthai#c,\\\\begin{lang}/thai#c,\\\\begin{thai}#c,\\\\selectlanguage/thai#c,\\\\foreignlanguage/thai#c,\\\\begin{otherlanguage}/thai#c,\\\\begin{otherlanguage*}/thai#c,\\\\resetdefaultlanguage/thai#c,\\\\setlanguagealias/thai#c,\\\\setlanguagealias*/thai#c,\\\\pghyphenation/thai#c,\\\\setlanghyphenmins/thai#c\": [\n      \"numerals=${1|thai,arabic|}\"\n    ],\n    \"\\\\setdefaultlanguage/tibetan#c,\\\\setmainlanguage/tibetan#c,\\\\setotherlanguage/tibetan#c,\\\\textlang/tibetan#c,\\\\texttibetan#c,\\\\begin{lang}/tibetan#c,\\\\begin{tibetan}#c,\\\\selectlanguage/tibetan#c,\\\\foreignlanguage/tibetan#c,\\\\begin{otherlanguage}/tibetan#c,\\\\begin{otherlanguage*}/tibetan#c,\\\\resetdefaultlanguage/tibetan#c,\\\\setlanguagealias/tibetan#c,\\\\setlanguagealias*/tibetan#c,\\\\pghyphenation/tibetan#c,\\\\setlanghyphenmins/tibetan#c\": [\n      \"numerals=${1|tibetan,arabic|}\"\n    ],\n    \"\\\\setdefaultlanguage/ukrainian#c,\\\\setmainlanguage/ukrainian#c,\\\\setotherlanguage/ukrainian#c,\\\\textlang/ukrainian#c,\\\\textukrainian#c,\\\\begin{lang}/ukrainian#c,\\\\begin{ukrainian}#c,\\\\selectlanguage/ukrainian#c,\\\\foreignlanguage/ukrainian#c,\\\\begin{otherlanguage}/ukrainian#c,\\\\begin{otherlanguage*}/ukrainian#c,\\\\resetdefaultlanguage/ukrainian#c,\\\\setlanguagealias/ukrainian#c,\\\\setlanguagealias*/ukrainian#c,\\\\pghyphenation/ukrainian#c,\\\\setlanghyphenmins/ukrainian#c\": [\n      \"babelshorthands\",\n      \"mathfunctions\",\n      \"numerals=${1|arabic,cyrillic-alph,cyrillic-trad|}\"\n    ],\n    \"\\\\setdefaultlanguage/urdu#c,\\\\setmainlanguage/urdu#c,\\\\setotherlanguage/urdu#c,\\\\textlang/urdu#c,\\\\texturdu#c,\\\\begin{lang}/urdu#c,\\\\begin{urdu}#c,\\\\selectlanguage/urdu#c,\\\\foreignlanguage/urdu#c,\\\\begin{otherlanguage}/urdu#c,\\\\begin{otherlanguage*}/urdu#c,\\\\resetdefaultlanguage/urdu#c,\\\\setlanguagealias/urdu#c,\\\\setlanguagealias*/urdu#c,\\\\pghyphenation/urdu#c,\\\\setlanghyphenmins/urdu#c\": [\n      \"calendar=${1|gregorian,hijri|}\",\n      \"hijricorrection=${1:integer}\",\n      \"numerals=${1|western,eastern|}\",\n      \"sectionsep=${1:code}\",\n      \"abjadjimnotail\"\n    ],\n    \"\\\\setdefaultlanguage/uyghur#c,\\\\setmainlanguage/uyghur#c,\\\\setotherlanguage/uyghur#c,\\\\textlang/uyghur#c,\\\\textuyghur#c,\\\\begin{lang}/uyghur#c,\\\\begin{uyghur}#c,\\\\selectlanguage/uyghur#c,\\\\foreignlanguage/uyghur#c,\\\\begin{otherlanguage}/uyghur#c,\\\\begin{otherlanguage*}/uyghur#c,\\\\resetdefaultlanguage/uyghur#c,\\\\setlanguagealias/uyghur#c,\\\\setlanguagealias*/uyghur#c,\\\\pghyphenation/uyghur#c,\\\\setlanghyphenmins/uyghur#c\": [\n      \"chapterformat=${1|ordinal,roman,arabic|}\",\n      \"swapstrings=${1|all,captions,heading,headers,hheaders,none|}\"\n    ],\n    \"\\\\setdefaultlanguage/welsh#c,\\\\setmainlanguage/welsh#c,\\\\setotherlanguage/welsh#c,\\\\textlang/welsh#c,\\\\textwelsh#c,\\\\begin{lang}/welsh#c,\\\\begin{welsh}#c,\\\\selectlanguage/welsh#c,\\\\foreignlanguage/welsh#c,\\\\begin{otherlanguage}/welsh#c,\\\\begin{otherlanguage*}/welsh#c,\\\\resetdefaultlanguage/welsh#c,\\\\setlanguagealias/welsh#c,\\\\setlanguagealias*/welsh#c,\\\\pghyphenation/welsh#c,\\\\setlanghyphenmins/welsh#c\": [\n      \"date=${1|long,short|}\"\n    ],\n    \"\\\\localnumeral#c,\\\\localnumeral*#c,\\\\Localnumeral#c,\\\\Localnumeral*#c\": [\n      \"lang=${2|local,main,${1:language}|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/polyglossia#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/polyhedra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xcolor-solarized\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz-3dplot\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"point{${1:(${3:x},${4:y},${5:z})}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"axes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"axes{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\axes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vertex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertex{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\vertex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edge{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\edge,\\\\ray\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ray{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\edge,\\\\ray\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cone{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\cone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polygon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polygon{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\polygon\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"halfspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"halfspace{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\halfspace,\\\\hyperplane\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyperplane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyperplane{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\",\n          \"\\\\halfspace,\\\\hyperplane\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"polyhedron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{polyhedron}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{polyhedron}\": [\n      \"dim=${1:integer}\",\n      \"phi=${1:degrees}\",\n      \"theta=${1:degrees}\"\n    ],\n    \"\\\\axes\": [\n      \"x={${1:num1,num2}}\",\n      \"y={${1:num1,num2}}\",\n      \"z={${1:num1,num2}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"zlabel=${1:text}\",\n      \"labels=${1|true,false|}\"\n    ],\n    \"\\\\vertex,\\\\edge,\\\\ray,\\\\cone,\\\\polygon,\\\\halfspace,\\\\hyperplane\": [\n      \"color=\",\n      \"status=${1|normal,focus,alert,open|}\",\n      \"opacity=${1:factor}\",\n      \"thickness=${1:number}\",\n      \"pattern={${1:pattern}}\"\n    ],\n    \"\\\\vertex\": [\n      \"point={${1:point}}\",\n      \"text=${1:text}\",\n      \"textcolor=\",\n      \"anchora=${1|north,south,east,west|}\",\n      \"anchorb=${1|above,below,left,right|}\"\n    ],\n    \"\\\\edge,\\\\ray\": [\n      \"points={${1:point1,point2}}\"\n    ],\n    \"\\\\cone\": [\n      \"vertex={${1:point}}\",\n      \"generators={${1:list of point}}\"\n    ],\n    \"\\\\polygon\": [\n      \"points={${1:list of point}}\",\n      \"boundary=${1|true,false|}\"\n    ],\n    \"\\\\halfspace,\\\\hyperplane\": [\n      \"points={${1:list of point}}\",\n      \"patterncolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polymers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"aliphat\"\n    },\n    {\n      \"name\": \"carom\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftPolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"leftPolymer{${1:delimiter%formula}}{${2:leftsubs}}\"\n      }\n    },\n    {\n      \"name\": \"leftpolymer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftpolymer{${1:leftsubs}}\"\n      }\n    },\n    {\n      \"name\": \"leftSqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftSqrpolymer{${1:leftsubs}}\"\n      }\n    },\n    {\n      \"name\": \"leftsqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftsqrpolymer{${1:leftsubs}}\"\n      }\n    },\n    {\n      \"name\": \"lsqrdelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lsqrdelimiter{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"mpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mpolymer{${1:polymer unit}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyethylene\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"polyethylene[${3:auxlist}]{${1:centatmlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"polyethylene\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polyethylene{${1:centatmlist}}{${2:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"polystyrene\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"polystyrene[${4:auxlist}]{${1:centatmlist}}{${2:subslist}}{${3:phsubslist}}\"\n      }\n    },\n    {\n      \"name\": \"polystyrene\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polystyrene{${1:centatmlist}}{${2:subslist}}{${3:phsubslist}}\"\n      }\n    },\n    {\n      \"name\": \"rightPolymer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rightPolymer{${1:delimiter%formula}}{${2:rightsubs}}{${3:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rightpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightpolymer{${1:rightsubs}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rightSqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightSqrpolymer{${1:rightsubs}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rightsqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rightsqrpolymer{${1:rightsubs}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sbond\"\n    },\n    {\n      \"name\": \"Sqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sqrpolymer{${1:polymer unit}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sqrpolymer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sqrpolymer{${1:polymer unit}}{${2:subscript%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polynom.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"polyset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\polyset,\\\\polylongdiv\",\n          \"\\\\polyset,\\\\polyhornerscheme#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polylongdiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polylongdiv{${1:polynom1%formula}}{${2:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polylongdiv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"polylongdiv[${3:options%keyvals}]{${1:polynom1%formula}}{${2:polynom2%formula}}\",\n        \"keys\": [\n          \"\\\\polyset,\\\\polylongdiv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polyhornerscheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyhornerscheme{${1:polynom%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyhornerscheme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"polyhornerscheme[${2:options%keyvals}]{${1:polynom%formula}}\",\n        \"keys\": [\n          \"\\\\polyset,\\\\polyhornerscheme#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polylonggcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polylonggcd{${1:polynom1%formula}}{${2:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polylonggcd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"polylonggcd[${3:options}]{${1:polynom1%formula}}{${2:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyfactorize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyfactorize{${1:polynom%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyfactorize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"polyfactorize[${2:options}]{${1:polynom%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polyadd{${1:cmd}}{${2:polynom1%formula}}{${3:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polysub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polysub{${1:cmd}}{${2:polynom1%formula}}{${3:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polymul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polymul{${1:cmd}}{${2:polynom1%formula}}{${3:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polydiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polydiv{${1:cmd}}{${2:polynom1%formula}}{${3:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polygcd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"polygcd{${1:cmd}}{${2:polynom1%formula}}{${3:polynom2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"polyprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyprint{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"polyremainder\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\polyset,\\\\polylongdiv\": [\n      \"vars=${1:token string}\",\n      \"delims=\",\n      \"stage=${1:number}\",\n      \"style=\",\n      \"div=${1:token}\"\n    ],\n    \"\\\\polyset,\\\\polyhornerscheme#c\": [\n      \"stage=${1:number}\",\n      \"tutor\",\n      \"tutorlimit=${1:number}\",\n      \"tutorstyle=${1:font selection}\",\n      \"resultstyle=${1:font selection}\",\n      \"resultleftrule\",\n      \"resultrightrule\",\n      \"resultbottomrule\",\n      \"showbase=${1|false,top,middle,bottom|}\",\n      \"showvar\",\n      \"showbasesep\",\n      \"equalcolwidths\",\n      \"arraycolsep=${1:dimension}\",\n      \"arrayrowsep=${1:dimension}\",\n      \"showmiddlerow\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polynomial.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"polynomial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polynomial{${1:coeff1,coeff2,...}}\"\n      }\n    },\n    {\n      \"name\": \"polynomial\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"polynomial[${2:options%keyvals}]{${1:coeff1,coeff2,...}}\",\n        \"keys\": [\n          \"\\\\polynomial,\\\\polynomialfrac,\\\\polynomialstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polynomialfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polynomialfrac{${1:numerator coeffs}}{${2:denominator coeffs}}\"\n      }\n    },\n    {\n      \"name\": \"polynomialfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"polynomialfrac[${3:options%keyvals}]{${1:numerator coeffs}}{${2:denominator coeffs}}\",\n        \"keys\": [\n          \"\\\\polynomial,\\\\polynomialfrac,\\\\polynomialstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"polynomialstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polynomialstyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\polynomial,\\\\polynomialfrac,\\\\polynomialstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\polynomial,\\\\polynomialfrac,\\\\polynomialstyle\": [\n      \"falling\",\n      \"reciprocal\",\n      \"var=${1:variable symbol}\",\n      \"start=${1:integer}\",\n      \"step=${1:integer}\",\n      \"add=${1:addition symbol}\",\n      \"sub=${1:subtraction symbol}\",\n      \"firstsub=${1:symbol}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polyomino.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"polyomino\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"polyomino{${1:polyomino spec}}\"\n      }\n    },\n    {\n      \"name\": \"polyomino\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"polyomino[${2:options%keyvals}]{${1:polyomino spec}}\",\n        \"keys\": [\n          \"\\\\polyomino#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\polyomino#c\": [\n      \"at=${1:point}\",\n      \"empty cell=${1:token list}\",\n      \"grid\",\n      \"grid style={${1:options}}\",\n      \"p={${1:name}}{${2:options}}\",\n      \"row sep=${1:token list}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/polytable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lazylist\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nodefaultcolumn\"\n    },\n    {\n      \"name\": \"defaultcolumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultcolumn{${1:colspec}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"column{${1:column id}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \"column\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"column[${3:dimen%l}]{${1:column id}}{${2:spec}}\"\n      }\n    },\n    {\n      \"name\": \">\"\n    },\n    {\n      \"name\": \">\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \">[${1:from id}]\"\n      }\n    },\n    {\n      \"name\": \">\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \">[${1:from id}][${2:spec}]\"\n      }\n    },\n    {\n      \"name\": \"<\"\n    },\n    {\n      \"name\": \"<\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"<[${1:from id}]\"\n      }\n    },\n    {\n      \"name\": \"fromto\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fromto{${1:from id}}{${2:to id}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"savecolumns\"\n    },\n    {\n      \"name\": \"savecolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"savecolumns[${1:set id}]\"\n      }\n    },\n    {\n      \"name\": \"restorecolumns\"\n    },\n    {\n      \"name\": \"restorecolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restorecolumns[${1:set id}]\"\n      }\n    },\n    {\n      \"name\": \"beginpolytable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disktables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorytables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nextline[${1:dimen%l}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pboxed\"\n    },\n    {\n      \"name\": \"ptboxed\"\n    },\n    {\n      \"name\": \"pmboxed\"\n    },\n    {\n      \"name\": \"ptabular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parray\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/polytable#c\": [\n      \"debug\",\n      \"info\",\n      \"silent\",\n      \"defaultcolumns\",\n      \"memory\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/polytable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/poormanlog.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PMLogZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PMLogZ{9-digit-number}\"\n      }\n    },\n    {\n      \"name\": \"PMPowTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PMPowTen{9-digit-number}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/popupmenu.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"item\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"item{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\item,\\\\begin{submenu}\",\n          \"\\\\item\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"puUseMenus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puUseMenus{${1:menu array names}}\"\n      }\n    },\n    {\n      \"name\": \"popUpMenu\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"popUpMenu(${1:name})\"\n      }\n    },\n    {\n      \"name\": \"puProcessMenu\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"puProcessMenu(${1:name})\"\n      }\n    },\n    {\n      \"name\": \"urlPath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlPath{${1:cmd}}{${2:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"Esc\"\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"itemindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"submenuLevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puUseTheseMenus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puMenuCmds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"puTracking\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrackingPU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trackingPUfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trackingPUtrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"popupmenu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"submenu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\item,\\\\begin{submenu}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/popupmenu#c\": [\n      \"tracking\",\n      \"!tracking\"\n    ],\n    \"\\\\item,\\\\begin{submenu}\": [\n      \"title=${1:string}\",\n      \"marked\"\n    ],\n    \"\\\\item\": [\n      \"enabled\",\n      \"return=${1:string}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/popupmenu#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/postage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includestamp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includestamp{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includestamp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includestamp[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includestamp\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\includestamp\": [\n      \"style=${1|normal,compact|}\",\n      \"normal\",\n      \"compact\",\n      \"page=${1:number}\",\n      \"row=${1:number}\",\n      \"column=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/poster.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"poster\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poster{${1:stuff%text}}\"\n      }\n    },\n    {\n      \"name\": \"poster\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poster[${2:options%keyvals}]{${1:stuff%text}}\",\n        \"keys\": [\n          \"\\\\poster,\\\\begin{Poster},\\\\PosterPage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PosterPage\"\n    },\n    {\n      \"name\": \"PosterPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PosterPage[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\poster,\\\\begin{Poster},\\\\PosterPage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"POSTERclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERcrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERhcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERimageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERimagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERlandscape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERpaperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERpaperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"POSTERvcenter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Poster\"\n    },\n    {\n      \"name\": \"Poster\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\poster,\\\\begin{Poster},\\\\PosterPage\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\poster,\\\\begin{Poster},\\\\PosterPage\": [\n      \"paperwidth=\",\n      \"paperheight=\",\n      \"imagewidth=\",\n      \"imageheight=\",\n      \"landscape\",\n      \"hcenter\",\n      \"vcenter\",\n      \"crop=${1|none,corners,full|}\",\n      \"clip=${1|none,pstricks|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/postit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"settobox\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"MiniPostIt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MiniPostIt{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"MiniPostIt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MiniPostIt[${2:color}]{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"MiniPostIt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MiniPostIt*{${1:contenu%text}}\"\n      }\n    },\n    {\n      \"name\": \"MiniPostIt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MiniPostIt*[${2:color}]{${1:contenu%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"PostIt\"\n    },\n    {\n      \"name\": \"PostIt\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options tcbox}>\",\n        \"keys\": [\n          \"\\\\begin{PostIt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PostIt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PostIt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PostIt\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options tcbox}>\",\n        \"keys\": [\n          \"\\\\begin{PostIt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PostItNote\"\n    },\n    {\n      \"name\": \"PostItNote\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:tcbox options}>\"\n      }\n    },\n    {\n      \"name\": \"PostItNote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PostItNote}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PostItNote\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:options%keyvals}]<${2:tcbox options}>\",\n        \"keys\": [\n          \"\\\\begin{PostItNote}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{PostIt}\": [\n      \"RappelPostIt=${1:nom}\",\n      \"Largeur=\",\n      \"Couleur=\",\n      \"Hauteur=\",\n      \"Rendu=${1|tcbox,tikz,tikzv2|}\",\n      \"Inclinaison=${1:nombre}\",\n      \"Ombre\",\n      \"Bordure\",\n      \"Coin\",\n      \"Attache=${1|Trombone,Punaise,Non,Scotch|}\",\n      \"CouleurAttache=\",\n      \"DecalAttache=${1:nombre}\",\n      \"Titre=${1:texte}\",\n      \"PoliceTitre=${1:font commands}\",\n      \"ExtraMargeDroite=\",\n      \"AlignementV=${1|top,center,bottom|}\",\n      \"AlignementH=${1|left,center,right,justify|}\",\n      \"AlignementPostIt=${1|top,center,bottom|}\"\n    ],\n    \"\\\\begin{PostItNote}\": [\n      \"StorePostIt=${1:name}\",\n      \"Width=\",\n      \"Color=\",\n      \"Height=\",\n      \"Render=${1|tcbox,tikz,tikz2|}\",\n      \"Rotate=${1:degrees}\",\n      \"Shadow\",\n      \"Border\",\n      \"Corner\",\n      \"Pin=${1|Paperclip,Pushpin,None,Scotch|}\",\n      \"PinColor=\",\n      \"PinScale=${1:factor}\",\n      \"PinShift=${1:number}\",\n      \"Title=${1:text}\",\n      \"FontTitle=${1:font commands}\",\n      \"ExtraRightMargin=\",\n      \"AlignV=${1|top,center,bottom|}\",\n      \"AlignH=${1|left,center,right,justify|}\",\n      \"AlignPostIt=${1|top,center,bottom|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/postnotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"postnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"postnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\postnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"postnotesection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnotesection{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postnotesection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"postnotesection[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\postnotesection,\\\\postnotesectionx\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printpostnotes\"\n    },\n    {\n      \"name\": \"postnoteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnoteref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"postnoteref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnoteref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"postnotezref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnotezref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"postnotezref*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnotezref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"postnotesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postnotesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\postnotesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pnhdchapfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdchaplast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdnamefirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdnamefirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdnamelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdnamelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdpagefirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdpagelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdsectfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdsectlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdtopage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnhdtopages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnheaderdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnheading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnidnextnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnthechapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnthechapternextnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnthepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnthesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnthesectionnextnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pntitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepostnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepostnotesection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepostnotetext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\postnote\": [\n      \"mark=${1:number}\",\n      \"markstr=${1:string}\",\n      \"sortnum=${1:number}\",\n      \"nomark\",\n      \"label=\",\n      \"zlabel=\"\n    ],\n    \"\\\\postnotesection,\\\\postnotesectionx\": [\n      \"name=${1:name}\",\n      \"exp\"\n    ],\n    \"\\\\postnotesetup\": [\n      \"heading={${1:text}}\",\n      \"format={${1:font commands}}\",\n      \"listenv=${1:envname}\",\n      \"makemark={${1:code}}\",\n      \"maketextmark={${1:code}}\",\n      \"pretextmark={${1:code}}\",\n      \"posttextmark={${1:code}}\",\n      \"postprintnote={${1:code}}\",\n      \"style=${1|endnotes,pagenote|}\",\n      \"hyperref=${1|auto,true,false|}\",\n      \"backlink\",\n      \"sort\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-BerlinFU.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"helvet\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"framelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framelogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"insertframelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlelogo{${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"inserttitlelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fachbereich\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fachbereich{${1:fachbereich}}\"\n      }\n    },\n    {\n      \"name\": \"insertfachbereich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"insertsubtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"insertinstitute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlegraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"titlegraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlegraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\titlegraphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"inserttitlegraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcentering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\titlegraphic\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-aggie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-bframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-blur\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-ciment.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-default.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-elcolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-fyma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-horatio.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-husky.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-ikeda.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-jefka.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-klope.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-slpe\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-paintings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-pazik.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-char\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"type1cm\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-sailor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"topframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"topframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-simple.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-tuliplab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-tycja.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/powerdot-upen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"titleslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"basic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"wideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"slide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionwideslide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ppt-slides.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"href-ul\"\n    },\n    {\n      \"name\": \"pagecolor\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"crumbs\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"seqsplit\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"textpos\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"fontsize\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"changepage\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"soul\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"lastpage\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"fancyhdr\",\n      \"if\": \"template\"\n    },\n    {\n      \"name\": \"geometry\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"textpos\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"libertine\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"microtype\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"multicol\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"fontsize\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"changepage\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"soul\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"lastpage\",\n      \"if\": \"template=9x6\"\n    },\n    {\n      \"name\": \"fancyhdr\",\n      \"if\": \"template=9x6\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pptLeft\",\n      \"if\": \"template\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptLeft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptRight\",\n      \"if\": \"template\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptRight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptLeft\",\n      \"if\": \"template=9x6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptLeft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptRight\",\n      \"if\": \"template=9x6\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptRight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptBanner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptBanner{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptBanner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptBanner[${2:color}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptChapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptChapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"pptChapter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptChapter[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"pptSection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptSection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"pptSection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptSection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"pptHeader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptHeader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptTitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pptTitle{${1:title%text}}{${2:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"pptToc\"\n    },\n    {\n      \"name\": \"pptToc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pptToc[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"pptQuote\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pptQuote{${1:imagefile}}{${2:quote%text}}{${3:author}}\"\n      }\n    },\n    {\n      \"name\": \"pptQuote\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pptQuote[${4:name}]{${1:imagefile}}{${2:quote%text}}{${3:author}}\"\n      }\n    },\n    {\n      \"name\": \"pptPic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pptPic{${1:width factor}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pptPin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptPin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptPin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptPin[${2:right|left}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptThought\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptThought{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pptSnippet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptSnippet{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pptSnippet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptSnippet[${2:before code}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pptQR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptQR{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pptQR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptQR[${2:height}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pptPinQR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pptPinQR{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pptPinQR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pptPinQR[${2:right|left}]{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pptMiddle\"\n    },\n    {\n      \"name\": \"pptWideOne\"\n    },\n    {\n      \"name\": \"pptWide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numCols}}\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ppt-slides#c\": [\n      \"template=9x6\",\n      \"scheme=${1|light,dark,light-mono,dark-mono|}\",\n      \"directory=${1:directory}\",\n      \"nominutes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ppt-slides#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/precattl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"precattlExec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"precattlExec{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"execinside\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"execinside{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"execinsideSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"execinsideSet{${1:cmd}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"execinsideGset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"execinsideGset{${1:cmd}}{${2:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prelim2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrtime\",\n      \"if\": \"scrtime\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PrelimText\"\n    },\n    {\n      \"name\": \"PrelimWords\"\n    },\n    {\n      \"name\": \"PrelimTextStyle\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/prelim2e#c\": [\n      \"danish\",\n      \"draft\",\n      \"final\",\n      \"english\",\n      \"french\",\n      \"german\",\n      \"italian\",\n      \"norsk\",\n      \"time\",\n      \"scrtime\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/prelim2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/preparefont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifplatform\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"preparefontfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"preparefontfile{${1:font-file-name}}{${2:URL}}\"\n      }\n    },\n    {\n      \"name\": \"preparefontfile\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"preparefontfile{${1:font-file-name}}{${2:URL}}[${3:local-saved-file-name}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prerex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"grid\"\n    },\n    {\n      \"name\": \"solidarrow\"\n    },\n    {\n      \"name\": \"dottedarrow\"\n    },\n    {\n      \"name\": \"dashedarrow\"\n    },\n    {\n      \"name\": \"lightbox\"\n    },\n    {\n      \"name\": \"boldbox\"\n    },\n    {\n      \"name\": \"dottedbox\"\n    },\n    {\n      \"name\": \"unit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultCurvature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CourseURL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CourseURL{${1:arg1}}{${2:arg2}}{${3:URL}}\"\n      }\n    },\n    {\n      \"name\": \"background\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PixelsPerUnit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thediagheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solidwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashedwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallersize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselineAdj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgridon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridonfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridontrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"chart\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pressrelease-symbols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"paperclip\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prettyref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newrefformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrefformat{${1:name}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"prettyref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prettytok.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"precattl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"prettyN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyN{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"prettyX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyX{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"prettyO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyO{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"prettyV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyV{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"prettyshowC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyshowC{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"prettyeN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prettyeN{${1:token list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/prettytok#c\": [\n      \"mode=${1|term-8bit,term-shell,html|}\",\n      \"html-file-name=${1:file name}\",\n      \"html-refresh-strategy=${1:value 0-4}\",\n      \"html-refresh-duration=${1:milliseconds}\",\n      \"term-prefix=${1:string}\",\n      \"term-prefix-more=${1:string}\",\n      \"term-wrap-limit=${1:number}\",\n      \"term-shell-decode-cmd=${1:command}\",\n      \"term-shell-decode-cmd-print\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/prettytok#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/preview.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex85\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PreviewBorder\",\n      \"if\": \"tightpage\"\n    },\n    {\n      \"name\": \"PreviewBbAdjust\",\n      \"if\": \"tightpage\"\n    },\n    {\n      \"name\": \"PreviewMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreviewMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewMacro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreviewMacro[${2:arg spec}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewMacro*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreviewMacro*{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewMacro*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PreviewMacro*[${2:arg spec}][${3:default}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreviewEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreviewEnvironment[${2:arg spec}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewEnvironment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreviewEnvironment*{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewEnvironment*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PreviewEnvironment*[${2:arg spec}][${3:default}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewSnarfEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreviewSnarfEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewSnarfEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreviewSnarfEnvironment[${2:arg spec}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PreviewOpen\"\n    },\n    {\n      \"name\": \"PreviewClose\"\n    },\n    {\n      \"name\": \"ifPreview\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"preview\"\n    },\n    {\n      \"name\": \"nopreview\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/preview#c\": [\n      \"active\",\n      \"noconfig\",\n      \"psfixbb\",\n      \"dvips\",\n      \"pdftex\",\n      \"xetex\",\n      \"displaymath\",\n      \"floats\",\n      \"textmath\",\n      \"graphics\",\n      \"sections\",\n      \"delayed\",\n      \"auctex\",\n      \"showlabels\",\n      \"tightpage\",\n      \"lyx\",\n      \"counters\",\n      \"footnotes\",\n      \"tracingall\",\n      \"showbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/preview#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/prftree.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"prfassumption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfassumption{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"prfassumption<label>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfassumption<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"prfboundedassumption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfboundedassumption{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"prfboundedassumption<label>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfboundedassumption<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"prfaxiom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfaxiom{${1:axiom%formula}}\"\n      }\n    },\n    {\n      \"name\": \"prfbyaxiom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prfbyaxiom{${1:name}}{${2:axiom%formula}}\"\n      }\n    },\n    {\n      \"name\": \"prflinepadbefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prflinepadafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prflineextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prflinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfemptylinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfrulenameskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prflabelskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfinterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfdoublelineinterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prffancyline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprfIMPOption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfIMPOptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfIMPOptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprfSTRUToption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfSTRUToptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfSTRUToptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprfSTRUTlabeloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfSTRUTlabeloptiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfSTRUTlabeloptionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfboundedstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfdiscargedassumption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfsummarystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prffancysummarybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfConclusionBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfConclusionBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prfAssumptionBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfAssumptionBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prfRuleNameBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfRuleNameBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prfLabelBox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prfLabelBox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prfref<label>\"\n    },\n    {\n      \"name\": \"theprfassumptioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprfsummarycounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prflabelledassumptionbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prflabelledassumptionbox{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"prflabelleddiscargedassumption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prflabelleddiscargedassumption{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"prfauxlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prfauxlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"NDA\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDA{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDA<label>\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDA<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDAL\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NDAL{${1:label}}{${2:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDD\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDD{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDD<label>\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDD<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDDL\",\n      \"if\": \"ND\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NDDL{${1:label}}{${2:formula}}\"\n      }\n    },\n    {\n      \"name\": \"SEQA\",\n      \"if\": \"SEQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEQA{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDA<label>\",\n      \"if\": \"SEQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDA<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"SEQD\",\n      \"if\": \"SEQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEQD{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"NDA<label>\",\n      \"if\": \"SEQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NDA<label>{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"type\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"universe\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"judgementaldef\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"propositionaldef\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"emptytype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"unittype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"booleantype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"context\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"identitytype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"refl\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"axiomofchoice\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"accessibility\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ap\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"apd\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"basepoint\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"biinv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"cardtype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"cocone\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"cons\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"contr\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"equivtype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ext\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"fiber\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"funext\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"glue\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"happly\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"hom\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"id\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"idtoeqv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"im\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"idtoiso\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ind\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"inj\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"inl\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"inr\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"iscontr\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"isequiv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ishae\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"isotoid\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"isntype\",\n      \"if\": \"ML\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isntype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"isprop\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"isset\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ker\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"LEM\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"linv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"listtype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"loopcons\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"Map\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"merid\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"nil\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ordtype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"pair\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"pred\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"pr\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"Prop\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"qinv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"rec\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"rinv\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"seg\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"Set\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"Succ\",\n      \"if\": \"ML\",\n      \"detail\": \"⪼ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double succeeds\"\n    },\n    {\n      \"name\": \"sup\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"total\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"transport\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"ua\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"Wtype\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"transportconst\",\n      \"if\": \"ML\"\n    },\n    {\n      \"name\": \"MLctxEMPrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLctxEXTrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLVblerule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSubstrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLWkgrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLEQreflrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLEQsymrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLEQtransrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLEQsubstrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLEQsubsteqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLUintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLUcumulrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLUcumuleqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpiformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpiformeqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpiintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpiintroeqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpielimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpielimeqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpicomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpiuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLKintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmaformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmaintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmaelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmacomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmauniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLplusformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLplusintrolrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLplusintrorrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpluselimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpluscomplrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLpluscomprrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLplusuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLzeroformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLzeroelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLzerouniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunitformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunitintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunitelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunitcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunituniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatintrozerorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatintrosuccrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatcompzerorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatcompsuccrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLnatuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLidformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLidintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLidelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLidcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLiduniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLwformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLwintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLwelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLwcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLwuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListintronrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListintrocrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListcompnrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListcompcrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLListuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLfunextrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLunivrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLScomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSpeqintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLSpeqcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIintroarule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIintrobrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIcomparule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIcompbrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIpeqintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLIpeqcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmaintroarule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmaintrobrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmacomparule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmacompbrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmapeqintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLsigmapeqcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOintroarule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOintrobrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOcomparule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOcompbrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOpeqintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLPOpeqcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTelimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTuniqrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTpeqintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLTpeqcomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtorusformrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtorusintrorule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruselimrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruscomprule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqintroarule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqintrobrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqintrocrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqcomparule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqcompbrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MLtoruspeqcompcrule\",\n      \"if\": \"ML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prfMakeInferenceRule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prfMakeInferenceRule{${1:csname}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"prfMakeInferenceRuleRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prfMakeInferenceRuleRef{${1:csname}}{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"prfenv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/prftree#c\": [\n      \"ND\",\n      \"SEQ\",\n      \"IMP\",\n      \"EQ\",\n      \"ML\",\n      \"MLnodef\",\n      \"Strut\",\n      \"StrutLabel\"\n    ],\n    \"\\\\prftree,\\\\NDP,\\\\SEQP\": [\n      \"r\",\n      \"rule\",\n      \"by rule\",\n      \"by\",\n      \"right\",\n      \"l\",\n      \"left\",\n      \"label\",\n      \"straight\",\n      \"straight line\",\n      \"straightline\",\n      \"dotted\",\n      \"dotted line\",\n      \"dottedline\",\n      \"dashed\",\n      \"dashed line\",\n      \"dashedline\",\n      \"f\",\n      \"fancy\",\n      \"fancy line\",\n      \"fancyline\",\n      \"s\",\n      \"single\",\n      \"single line\",\n      \"singleline\",\n      \"d\",\n      \"double\",\n      \"double line\",\n      \"doubleline\",\n      \"noline\",\n      \"summary\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/prftree#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/principia.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pma\"\n    },\n    {\n      \"name\": \"pmabel\"\n    },\n    {\n      \"name\": \"pmalephn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmalephn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmanc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmanc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmancc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmancc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmand\"\n    },\n    {\n      \"name\": \"pmandd\"\n    },\n    {\n      \"name\": \"pmanddd\"\n    },\n    {\n      \"name\": \"pmandddd\"\n    },\n    {\n      \"name\": \"pmanddddd\"\n    },\n    {\n      \"name\": \"pmandddddd\"\n    },\n    {\n      \"name\": \"pmarcls\"\n    },\n    {\n      \"name\": \"pmarexp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmarexp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmarg\"\n    },\n    {\n      \"name\": \"pmargeq\"\n    },\n    {\n      \"name\": \"pmarl\"\n    },\n    {\n      \"name\": \"pmarleq\"\n    },\n    {\n      \"name\": \"pmarncexp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmarncexp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmarprodc\"\n    },\n    {\n      \"name\": \"pmarprodcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmarprodcc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmarprodcnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmarprodcnc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmarprodnc\"\n    },\n    {\n      \"name\": \"pmarsubt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmarsubt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmarsumc\"\n    },\n    {\n      \"name\": \"pmarsumcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmarsumcc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmarsumcnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmarsumcnc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmarsumnc\"\n    },\n    {\n      \"name\": \"pmarvs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmarvs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmast\"\n    },\n    {\n      \"name\": \"pmaw\"\n    },\n    {\n      \"name\": \"pmB\"\n    },\n    {\n      \"name\": \"pmbord\"\n    },\n    {\n      \"name\": \"pmccap\"\n    },\n    {\n      \"name\": \"pmccmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmccmp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmccprd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmccprd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmccsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmccsum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmccup\"\n    },\n    {\n      \"name\": \"pmCdm\"\n    },\n    {\n      \"name\": \"pmcdm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcdm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcdot\"\n    },\n    {\n      \"name\": \"pmcexists\"\n    },\n    {\n      \"name\": \"pmch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmch{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmchh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmchh{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmcin\"\n    },\n    {\n      \"name\": \"pmcinc\"\n    },\n    {\n      \"name\": \"pmcl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcl{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmcll\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmcll{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmCls\"\n    },\n    {\n      \"name\": \"pmcls\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcls{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmclsd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmclsd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmClsinduct\"\n    },\n    {\n      \"name\": \"pmclsinduct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmclsinduct{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmClsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmClsn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmclsrefl\"\n    },\n    {\n      \"name\": \"pmcmin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcmin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmCmp\"\n    },\n    {\n      \"name\": \"pmcmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcmp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcnull\"\n    },\n    {\n      \"name\": \"pmCnv\"\n    },\n    {\n      \"name\": \"pmComp\"\n    },\n    {\n      \"name\": \"pmconc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmconc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmconnex\"\n    },\n    {\n      \"name\": \"pmcontin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcontin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmcontinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmcontinf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmConv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmConv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmconv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmconv{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmconx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmconx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmconxfm\"\n    },\n    {\n      \"name\": \"pmcr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcrel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcrel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcror\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcror{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcrp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcrp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmcrprd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcrprd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcrsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcrsum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcser\"\n    },\n    {\n      \"name\": \"pmcsercl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcsercl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcsercls\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcsercls{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmCsercls\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmCsercls{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmctf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmctf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmcuni\"\n    },\n    {\n      \"name\": \"pmcUnit\"\n    },\n    {\n      \"name\": \"pmcunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcunit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcunits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcunits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcycl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcycl{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmcycli\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmcycli{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmded\"\n    },\n    {\n      \"name\": \"pmdem\"\n    },\n    {\n      \"name\": \"pmden\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmden{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmDer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmDer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmders{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmdf\"\n    },\n    {\n      \"name\": \"pmDm\"\n    },\n    {\n      \"name\": \"pmdm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmdm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmdn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmdn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmdot\"\n    },\n    {\n      \"name\": \"pmdott\"\n    },\n    {\n      \"name\": \"pmdottt\"\n    },\n    {\n      \"name\": \"pmdotttt\"\n    },\n    {\n      \"name\": \"pmdottttt\"\n    },\n    {\n      \"name\": \"pmdotttttt\"\n    },\n    {\n      \"name\": \"pmdotttttt\"\n    },\n    {\n      \"name\": \"pmdsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmdsc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscfe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscfe{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscff{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscfff\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscfff{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscfR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscfR{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscfr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscfr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmefr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmefr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmexc\"\n    },\n    {\n      \"name\": \"pmexcc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmexcc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmexcn\"\n    },\n    {\n      \"name\": \"pmexists\"\n    },\n    {\n      \"name\": \"pmfin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfinid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfinid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfinord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfinord{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmFld\"\n    },\n    {\n      \"name\": \"pmfld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfld{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfmap\"\n    },\n    {\n      \"name\": \"pmfmapconx\"\n    },\n    {\n      \"name\": \"pmfmasym\"\n    },\n    {\n      \"name\": \"pmfmconnex\"\n    },\n    {\n      \"name\": \"pmfmcx\"\n    },\n    {\n      \"name\": \"pmfmcycl\"\n    },\n    {\n      \"name\": \"pmfmg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfmg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfmgrp\"\n    },\n    {\n      \"name\": \"pmfminit\"\n    },\n    {\n      \"name\": \"pmfmrt\"\n    },\n    {\n      \"name\": \"pmfmrtcx\"\n    },\n    {\n      \"name\": \"pmfmsr\"\n    },\n    {\n      \"name\": \"pmfmsubm\"\n    },\n    {\n      \"name\": \"pmfmtrs\"\n    },\n    {\n      \"name\": \"pmfopen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfopen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfopennid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmfopennid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmfr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmfr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmfrep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmfrep{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmgen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmgen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmGs\"\n    },\n    {\n      \"name\": \"pmgs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmhat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmhat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmhcf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmhcf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmiddf\"\n    },\n    {\n      \"name\": \"pmiff\"\n    },\n    {\n      \"name\": \"pmimp\"\n    },\n    {\n      \"name\": \"pmInfinax\"\n    },\n    {\n      \"name\": \"pminfinax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pminfinax{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pminit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pminit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmintcc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintcc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmintco\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintco{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmintf\"\n    },\n    {\n      \"name\": \"pmintnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmintnc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmintoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintoc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmintoo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintoo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmintsecvser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintsecvser{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmintt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmintt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmipr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmipr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmjpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmjpr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmlcm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmlcm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmLess\"\n    },\n    {\n      \"name\": \"pmLimax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmLimax{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmLimf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmLimf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmLimin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmLimin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmLmx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmLmx{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmlsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmlsc{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmlscl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmlscl{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmlt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmlt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmm\"\n    },\n    {\n      \"name\": \"pmmanyone\"\n    },\n    {\n      \"name\": \"pmmax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmmax{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmmed\"\n    },\n    {\n      \"name\": \"pmmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmmin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmmultax\"\n    },\n    {\n      \"name\": \"pmmultc\"\n    },\n    {\n      \"name\": \"pmmultr\"\n    },\n    {\n      \"name\": \"pmn \"\n    },\n    {\n      \"name\": \"pmNc\"\n    },\n    {\n      \"name\": \"pmNC\"\n    },\n    {\n      \"name\": \"pmnc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmNca\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmNca{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmnca\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmnca{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmncaa\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmncaa{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmNCat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmNCat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmNcd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmNcd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmncd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmncd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmncdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmncdd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmnchh\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmnchh{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmncind\"\n    },\n    {\n      \"name\": \"pmNCinduct\"\n    },\n    {\n      \"name\": \"pmncinduct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmncinduct{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmNCll\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmNCll{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmncll\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmncll{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmncmult\"\n    },\n    {\n      \"name\": \"pmncrefl\"\n    },\n    {\n      \"name\": \"pmnid\"\n    },\n    {\n      \"name\": \"pmNoC\"\n    },\n    {\n      \"name\": \"pmnoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnoc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmnoo\"\n    },\n    {\n      \"name\": \"pmNoR\"\n    },\n    {\n      \"name\": \"pmnor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmnot\"\n    },\n    {\n      \"name\": \"pmNr\"\n    },\n    {\n      \"name\": \"pmNR\"\n    },\n    {\n      \"name\": \"pmnr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmNRat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmNRat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmoc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmom\"\n    },\n    {\n      \"name\": \"pmomn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmomn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmonemany\"\n    },\n    {\n      \"name\": \"pmoneone\"\n    },\n    {\n      \"name\": \"pmop\"\n    },\n    {\n      \"name\": \"pmopc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmopc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmopsc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmopsc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmor\"\n    },\n    {\n      \"name\": \"pmordn\"\n    },\n    {\n      \"name\": \"pmordnfin\"\n    },\n    {\n      \"name\": \"pmordninf\"\n    },\n    {\n      \"name\": \"pmorgr\"\n    },\n    {\n      \"name\": \"pmorgrq\"\n    },\n    {\n      \"name\": \"pmorle \"\n    },\n    {\n      \"name\": \"pmorle \"\n    },\n    {\n      \"name\": \"pmorle\"\n    },\n    {\n      \"name\": \"pmorleq\"\n    },\n    {\n      \"name\": \"pmorn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmorn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmosc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmosc{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmoscl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmoscl{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmosf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmosf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmperf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmperf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmpf{${1:func}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpff\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmpff{${1:func}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmpfff\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmpfff{${1:func}}{${2:arg1}}{${3:arg2}}{${4:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpo{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpotid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpotid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpp\"\n    },\n    {\n      \"name\": \"pmpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmpr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmPrec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmPrec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpred\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmpred{${1:pred}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmpredd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmpredd{${1:pred}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmpreddd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmpreddd{${1:pred}}{${2:arg1}}{${3:arg2}}{${4:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmprime\"\n    },\n    {\n      \"name\": \"pmPrm\"\n    },\n    {\n      \"name\": \"pmprm\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmprm{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmprodgr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmprodgr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmprodsr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmprodsr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmprog\"\n    },\n    {\n      \"name\": \"pmprrt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmprrt{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmPsc\"\n    },\n    {\n      \"name\": \"pmqn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmqn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmqnil\"\n    },\n    {\n      \"name\": \"pmqnLe\"\n    },\n    {\n      \"name\": \"pmqnle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmqnle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmqnlez\"\n    },\n    {\n      \"name\": \"pmrarrel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrarrel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmRat\"\n    },\n    {\n      \"name\": \"pmrat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrat{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmRatdef\"\n    },\n    {\n      \"name\": \"pmratg\"\n    },\n    {\n      \"name\": \"pmRatggr\"\n    },\n    {\n      \"name\": \"pmRatgle\"\n    },\n    {\n      \"name\": \"pmratgLe\"\n    },\n    {\n      \"name\": \"pmratn\"\n    },\n    {\n      \"name\": \"pmRatngr\"\n    },\n    {\n      \"name\": \"pmRatnle\"\n    },\n    {\n      \"name\": \"pmratnLe\"\n    },\n    {\n      \"name\": \"pmrats\"\n    },\n    {\n      \"name\": \"pmratssub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmratssub{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrcap\"\n    },\n    {\n      \"name\": \"pmrcmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrcmp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrcup\"\n    },\n    {\n      \"name\": \"pmrdc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrdc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrdiv\"\n    },\n    {\n      \"name\": \"pmRel\"\n    },\n    {\n      \"name\": \"pmrel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrel{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrele\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmrele{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"pmrelep\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrelep{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmReln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmReln{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrems{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmreng\"\n    },\n    {\n      \"name\": \"pmrenn\"\n    },\n    {\n      \"name\": \"pmrennz\"\n    },\n    {\n      \"name\": \"pmrenp\"\n    },\n    {\n      \"name\": \"pmrenproda\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrenproda{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrenpz\"\n    },\n    {\n      \"name\": \"pmrenr\"\n    },\n    {\n      \"name\": \"pmrenrprod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrenrprod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrenrsprod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrenrsprod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrenrssum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrenrssum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrenrsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrenrsum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrensub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrensub{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrensuma\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrensuma{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrensumc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrensumc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrexists\"\n    },\n    {\n      \"name\": \"pmrexp \"\n    },\n    {\n      \"name\": \"pmRexp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmRexp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmRfdcl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRfdcl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmRfddf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRfddf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmRfdfd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRfdfd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmRfdlc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRfdlc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrfprod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrfprod{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmRfprod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRfprod{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrid\"\n    },\n    {\n      \"name\": \"pmrin\"\n    },\n    {\n      \"name\": \"pmrinc\"\n    },\n    {\n      \"name\": \"pmrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrl{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrlcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrlcd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrld\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrld{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrlF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrlF{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrlf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrlf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrmin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrmin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrndsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrndsum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnexp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrnexp{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnprod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnprod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnprodf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrnprodf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsmd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsmd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsumf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrnsumf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsumru\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsumru{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnsumur\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrnsumur{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrnull\"\n    },\n    {\n      \"name\": \"pmrnum\"\n    },\n    {\n      \"name\": \"pmrnumid\"\n    },\n    {\n      \"name\": \"pmRprd\"\n    },\n    {\n      \"name\": \"pmrprd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrprd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmRprdd\"\n    },\n    {\n      \"name\": \"pmrprdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrprdd{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrprdn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrprdn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrprm\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmrprm{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmrprod\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrprod{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrpwr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrpwr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmRrf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRrf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrrf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrrf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmRrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRrl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrrl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrrl{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrsep{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrst{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrsum{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsumb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrsumb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsume\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrsume{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsumr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrsumr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrsumrex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrsumrex{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtdc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtdc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtdi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtdi{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtdrc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtdrc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtdri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtdri{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrti\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrti{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtnet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtnet{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtrc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtrc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtrci\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrtrci{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmrtri{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrtric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrtric{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrts{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmruni\"\n    },\n    {\n      \"name\": \"pmscf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmscf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsCl\"\n    },\n    {\n      \"name\": \"pmscl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmscl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsCle\"\n    },\n    {\n      \"name\": \"pmsded\"\n    },\n    {\n      \"name\": \"pmsect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsect{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsectr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsectr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmseg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmseg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmselc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmselc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSele\"\n    },\n    {\n      \"name\": \"pmsele\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsele{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmSelf\"\n    },\n    {\n      \"name\": \"pmself\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmself{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmSelp\"\n    },\n    {\n      \"name\": \"pmselp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmselp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmSeq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmSeq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmser\"\n    },\n    {\n      \"name\": \"pmserfin\"\n    },\n    {\n      \"name\": \"pmserinf\"\n    },\n    {\n      \"name\": \"pmsfcls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsfcls{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsfclsm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsfclsm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsfclsm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsfclsm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsfclsmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsfclsmp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsfclsp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsfclsp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsfmid\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsfmid{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSg\"\n    },\n    {\n      \"name\": \"pmsg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmshr\"\n    },\n    {\n      \"name\": \"pmsimp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsimp{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSimp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmSimp{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSimps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmSimps{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsimps\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsimps{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsm\"\n    },\n    {\n      \"name\": \"pmsmbar\"\n    },\n    {\n      \"name\": \"pmsmltid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsmltid{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSmor\"\n    },\n    {\n      \"name\": \"pmsmorb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsmorb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSmorsmor\"\n    },\n    {\n      \"name\": \"pmsmorsmorb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsmorsmorb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsmsm\"\n    },\n    {\n      \"name\": \"pmsmsmb\"\n    },\n    {\n      \"name\": \"pmSome\"\n    },\n    {\n      \"name\": \"pmsome\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsome{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmspec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsRl\"\n    },\n    {\n      \"name\": \"pmsrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsrl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmsRle\"\n    },\n    {\n      \"name\": \"pmsrrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsrrn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmstr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmSub{${1:name}}{${2:top}}{${3:bot}}\"\n      }\n    },\n    {\n      \"name\": \"pmsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsub{${1:top}}{${2:bot}}\"\n      }\n    },\n    {\n      \"name\": \"pmSubb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmSubb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsubb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmsubb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSubbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmSubbb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}{${6:top3}}{${7:bot3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsubbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pmsubbb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}{${5:top3}}{${6:bot3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSubbbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmSubbbb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}{${6:top3}}{${7:bot3}}{${8:top4}}{${9:bot4}}\"\n      }\n    },\n    {\n      \"name\": \"pmsubbbb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmsubbbb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}{${5:top3}}{${6:bot3}}{${7:top4}}{${8:bot4}}\"\n      }\n    },\n    {\n      \"name\": \"pmsucc\"\n    },\n    {\n      \"name\": \"pmsumgr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsumgr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsumsr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsumsr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsym{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmthm\"\n    },\n    {\n      \"name\": \"pmtl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmtranc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmtranc{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmtrans\"\n    },\n    {\n      \"name\": \"pmtrpot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmtrpot{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmtrsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmtrsp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmu\"\n    },\n    {\n      \"name\": \"pmvffb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvffb{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmvfm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvfm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmvfmcl\"\n    },\n    {\n      \"name\": \"pmvr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmvrm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmvrm{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmvrmg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmvrmg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmvrnid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmvrnid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmvser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmvser{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmwa\"\n    },\n    {\n      \"name\": \"pmword\"\n    },\n    {\n      \"name\": \"pmwordfin\"\n    },\n    {\n      \"name\": \"pmwordind\"\n    },\n    {\n      \"name\": \"pmwordinf\"\n    },\n    {\n      \"name\": \"eg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Female\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ie\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Male\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmaleph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmArexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmArsubt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmatngr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmatngr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmbr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmbr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmbreve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmbreve{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmcinn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmcirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcirc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmClsd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmcnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcnv{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmcomp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmConc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmContin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmConvg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmConvg{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmconvg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmconvg{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmcorr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmcorr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmCr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmCror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmDen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmder{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmdern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmdern{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmDers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmDf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmDsc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmdscfcR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmdscfcR{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmdscfcr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmdscfcr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmfd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmGen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmHcf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmhp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pminc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmithm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmLcm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmlimax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmlimax{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmlimf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmlimf{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmlimin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmlimin{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmlmx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmlmx{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmMed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmNChh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmNChh{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmncr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmncr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmNoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmNocind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmnocind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnocind{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmNor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmnsn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmnsn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmPerf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmpffff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmpffff{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"pmppf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmppf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmppff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmppff{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmprec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmprec{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmpredddd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmpredddd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"pmpreddddd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pmpreddddd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"pmpredddddd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmpredddddd{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}\"\n      }\n    },\n    {\n      \"name\": \"pmprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmProdsr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmprop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmpsc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmpsc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmpsn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmpsn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmpsnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmpsnn{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmQnle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmratggr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmratggr{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmratgle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmratgle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmratnle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmratnle{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmrfdcl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrfdcl{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrfddf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrfddf{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrfdfd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrfdfd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmrfdlc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmrfdlc{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmRndsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRnexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmRnexp{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmRnprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmrnsmdf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmrnsmdf{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmRnsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRnsumru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRnsumur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRsum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRsumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRsume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmRsumr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pmschs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmschs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmscle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmscle{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmscls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmscls{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmSect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmSeg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmseq{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsmarr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsmor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsmor{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSmorb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsmorsmor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsmorsmor{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSmorsmorb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmsn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsnb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsnn{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsnnb{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmsnnn{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnnb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmsnnnb{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmsnnnn{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnnnb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmsnnnnb{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnnnn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pmsnnnnn{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"pmsnnnnnb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pmsnnnnnb{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"pmsns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmsns{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsrel{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmsrle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmsrle{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"pmStr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmSUb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pmSUb{${1:name}}{${2:top}}{${3:bot}}\"\n      }\n    },\n    {\n      \"name\": \"pmsUb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmsUb{${1:top}}{${2:bot}}\"\n      }\n    },\n    {\n      \"name\": \"pmSUbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pmSUbb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}\"\n      }\n    },\n    {\n      \"name\": \"pmsUbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pmsUbb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}\"\n      }\n    },\n    {\n      \"name\": \"pmSUbbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmSUbbb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}{${6:top3}}{${7:bot3}}\"\n      }\n    },\n    {\n      \"name\": \"pmsUbbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pmsUbbb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}{${5:top3}}{${6:bot3}}\"\n      }\n    },\n    {\n      \"name\": \"pmSUbbbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmSUbbbb{${1:name}}{${2:top1}}{${3:bot1}}{${4:top2}}{${5:bot2}}{${6:top3}}{${7:bot3}}{${8:top4}}{${9:bot4}}\"\n      }\n    },\n    {\n      \"name\": \"pmsUbbbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pmsUbbbb{${1:top1}}{${2:bot1}}{${3:top2}}{${4:bot2}}{${5:top3}}{${6:bot3}}{${7:top4}}{${8:bot4}}\"\n      }\n    },\n    {\n      \"name\": \"pmSumsr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmSym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmthe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmthe{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmtheb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmtheb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmTranc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmTranc{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"pmVfm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/printlen.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"printlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"uselengthunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uselengthunit{${1:unit%keyvals}}\",\n        \"keys\": [\n          \"\\\\uselengthunit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unitspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rndprintlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rndprintlength{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\uselengthunit\": [\n      \"pt\",\n      \"pc\",\n      \"in\",\n      \"mm\",\n      \"cm\",\n      \"bp\",\n      \"dd\",\n      \"cc\",\n      \"PT\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/printsudoku.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sudoku\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sudoku{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cluefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cluefont{${1:font-cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cellsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cellsize{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"writepuzzle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"writepuzzle{${1:line1}}{${2:line2}}{${3:line3}}{${4:line4}}{${5:line5}}{${6:line6}}{${7:line7}}{${8:line8}}{${9:line9}}\"\n      }\n    },\n    {\n      \"name\": \"puzzlefile\"\n    },\n    {\n      \"name\": \"sudpuzznewline\"\n    },\n    {\n      \"name\": \"istchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitoff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splitoff{${1:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prnthyph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"printhyphens\"\n    },\n    {\n      \"name\": \"breakafterword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomorelines\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/proba.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\"\n    },\n    {\n      \"name\": \"B\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"G\"\n    },\n    {\n      \"name\": \"H\"\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"J\"\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"L\"\n    },\n    {\n      \"name\": \"M\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"T\"\n    },\n    {\n      \"name\": \"U\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"W\"\n    },\n    {\n      \"name\": \"X\"\n    },\n    {\n      \"name\": \"Y\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"calA\"\n    },\n    {\n      \"name\": \"calB\"\n    },\n    {\n      \"name\": \"calC\"\n    },\n    {\n      \"name\": \"calD\"\n    },\n    {\n      \"name\": \"calE\"\n    },\n    {\n      \"name\": \"calF\"\n    },\n    {\n      \"name\": \"calG\"\n    },\n    {\n      \"name\": \"calH\"\n    },\n    {\n      \"name\": \"calI\"\n    },\n    {\n      \"name\": \"calJ\"\n    },\n    {\n      \"name\": \"calK\"\n    },\n    {\n      \"name\": \"calL\"\n    },\n    {\n      \"name\": \"calM\"\n    },\n    {\n      \"name\": \"calN\"\n    },\n    {\n      \"name\": \"calO\"\n    },\n    {\n      \"name\": \"calP\"\n    },\n    {\n      \"name\": \"calQ\"\n    },\n    {\n      \"name\": \"calR\"\n    },\n    {\n      \"name\": \"calS\"\n    },\n    {\n      \"name\": \"calT\"\n    },\n    {\n      \"name\": \"calU\"\n    },\n    {\n      \"name\": \"calV\"\n    },\n    {\n      \"name\": \"calW\"\n    },\n    {\n      \"name\": \"calX\"\n    },\n    {\n      \"name\": \"calY\"\n    },\n    {\n      \"name\": \"calZ\"\n    },\n    {\n      \"name\": \"prob\"\n    },\n    {\n      \"name\": \"prob\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prob[${1:letter}]\"\n      }\n    },\n    {\n      \"name\": \"probX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"probX{${1:event%formula}}\"\n      }\n    },\n    {\n      \"name\": \"probX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"probX[${2:letter}]{${1:event%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cprobX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cprobX{${1:event%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cprobX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cprobX[${3:letter}]{${1:event%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EX{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"EX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"EX[${2:letter}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cEX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cEX{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cEX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cEX[${3:letter}]{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Var\"\n    },\n    {\n      \"name\": \"Var\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Var[${1:subscript%formula}]\"\n      }\n    },\n    {\n      \"name\": \"VarX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VarX{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"VarX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VarX[${2:subscript%formula}]{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cVarX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cVarX{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cVarX\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cVarX[${3:subscript%formula}]{${1:arg%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eqlaw\"\n    },\n    {\n      \"name\": \"tolaw\"\n    },\n    {\n      \"name\": \"qvar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qvar{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cqvar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cqvar{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/probsoln.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ClearUsedFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearUsedFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"correctitem\"\n    },\n    {\n      \"name\": \"correctitemformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctitemformat{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"doforrandN\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"doforrandN{${1:n}}{${2:cmd}}{${3:file list}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"draftproblemlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"draftproblemlabel{${1:data set}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"DTLifinlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DTLifinlist{${1:element}}{${2:list}}{${3:true case}}{${4:false case}}\"\n      }\n    },\n    {\n      \"name\": \"ExcludePreviousFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExcludePreviousFile[${2:num of years}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ExcludePreviousFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExcludePreviousFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"firstpassfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstpasstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreachdataset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachdataset{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"foreachproblem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foreachproblem[${2:data set}]{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"foreachproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreachproblem{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"foreachsolution\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foreachsolution[${2:data set}]{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"foreachsolution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreachsolution{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"GetStartYear\"\n    },\n    {\n      \"name\": \"hideanswers\"\n    },\n    {\n      \"name\": \"iffirstpass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowanswers\"\n    },\n    {\n      \"name\": \"ifusedefaultprobargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incorrectitem\"\n    },\n    {\n      \"name\": \"incorrectitemformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"incorrectitemformat{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"loadallproblems\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loadallproblems[${2:data set}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadallproblems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadallproblems{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadexceptproblems\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loadexceptproblems[${3:data set}]{${1:label1,label2,...}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadexceptproblems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loadexceptproblems{${1:label1,label2,...}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadrandomexcept\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"loadrandomexcept[${4:data set}]{${1:n}}{${2:file}}{${3:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"loadrandomexcept\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"loadrandomexcept{${1:n}}{${2:file}}{${3:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"loadrandomproblems\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loadrandomproblems[${3:data set}]{${1:n}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadrandomproblems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loadrandomproblems{${1:n}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadselectedproblems\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loadselectedproblems[${3:data set}]{${1:label1,label2,...}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"loadselectedproblems\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loadselectedproblems{${1:label1,label2,...}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"moveproblem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"moveproblem{${1:label}}{${2:source}}{${3:target}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"newproblem*[${3:args}][${4:default}]{${1:label}}{${2:definition%text}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newproblem*[${3:args}]{${1:label}}{${2:definition%text}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newproblem*{${1:label}}{${2:definition%text}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"newproblem[${4:args}][${5:default}]{${1:label}}{${2:problem%text}}{${3:solution%text}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newproblem[${4:args}]{${1:label}}{${2:problem%text}}{${3:solution%text}}\"\n      }\n    },\n    {\n      \"name\": \"newproblem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newproblem{${1:label}}{${2:problem%text}}{${3:solution%text}}\"\n      }\n    },\n    {\n      \"name\": \"previousproblem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"previousproblem{${1:label}}{${2:data set}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"ProbSolnFragileExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProbSolnFragileFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSNgetrandseed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PSNgetrandseed{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"PSNrand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSNrandom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PSNrandom{${1:register}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"PSNrandseed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PSNrandseed{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"PSNuseoldrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"random\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"random{${1:counter}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"selectallproblems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectallproblems{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"selectrandomly\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"selectrandomly{${1:file}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"setprobargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setprobargs[${3:data set}]{${1:label}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"setprobargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setprobargs{${1:label}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"SetStartMonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetStartMonth{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"SetStartYear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetStartYear{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"SetUsedFileName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUsedFileName{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"showanswers\"\n    },\n    {\n      \"name\": \"showanswersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showanswerstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shuffle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shuffle{${1:arg}}{${2:num}}\"\n      },\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"solutionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisproblem\"\n    },\n    {\n      \"name\": \"thisproblemargs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisproblemlabel\"\n    },\n    {\n      \"name\": \"usedefaultprobargsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedefaultprobargstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usedproblem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"usedproblem{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"defproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"defproblem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:args}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"defproblem\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:args}][${3:default}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"onlyproblem\"\n    },\n    {\n      \"name\": \"onlysolution\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"textenum\"\n    },\n    {\n      \"name\": \"PSNitem\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/probsoln#c\": [\n      \"answers\",\n      \"noanswers\",\n      \"draft\",\n      \"final\",\n      \"usedefaultargs\",\n      \"nousedefaultargs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/probsoln#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/procIAGssymp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"linea\"\n    },\n    {\n      \"name\": \"ifafterthanks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterthankstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterthanksfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/processkv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"processkeyvalues\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"processkeyvalues{${1:keyvals}}{${2:macro}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/prodint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"prodi\"\n    },\n    {\n      \"name\": \"Prodi\"\n    },\n    {\n      \"name\": \"PRODI\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/productbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProductBoxSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProductBoxSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{ProductBox},\\\\ProductBoxSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProductBoxThreeDStartHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProductBoxThreeDEndHook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ProductBox\"\n    },\n    {\n      \"name\": \"ProductBox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ProductBox},\\\\ProductBoxSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"FrontFace\"\n    },\n    {\n      \"name\": \"FrontFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BackFace\"\n    },\n    {\n      \"name\": \"BackFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LeftFace\"\n    },\n    {\n      \"name\": \"LeftFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RightFace\"\n    },\n    {\n      \"name\": \"RightFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TopFace\"\n    },\n    {\n      \"name\": \"TopFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BottomFace\"\n    },\n    {\n      \"name\": \"BottomFace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Front\"\n    },\n    {\n      \"name\": \"Back\"\n    },\n    {\n      \"name\": \"Left\"\n    },\n    {\n      \"name\": \"Right\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"Bottom\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{ProductBox},\\\\ProductBoxSet\": [\n      \"style=${1:box style}\",\n      \"3D\",\n      \"3d\",\n      \"threeD\",\n      \"shadow\",\n      \"mirror\",\n      \"flare\",\n      \"flareDiameter=\",\n      \"fold\",\n      \"earSize=\",\n      \"foldLine=\",\n      \"foldOpacity=${1:factor}\",\n      \"front\",\n      \"back\",\n      \"left\",\n      \"right\",\n      \"top\",\n      \"bottom\",\n      \"empty\",\n      \"scale=${1:factor}\",\n      \"view=${1:view number}\",\n      \"edgeColor=\",\n      \"faceSep=\",\n      \"width=\",\n      \"height=\",\n      \"depth=\",\n      \"clean\",\n      \"clip\"\n    ],\n    \"\\\\begin{FrontFace},\\\\begin{BackFace},\\\\begin{LeftFace},\\\\begin{RightFace},\\\\begin{TopFace},\\\\begin{BottomFace}\": [\n      \"color=\",\n      \"top color=\",\n      \"bottom color=\",\n      \"left color=\",\n      \"right color=\",\n      \"middle color=\",\n      \"inner color=\",\n      \"outer color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/program.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"A{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ABORT\"\n    },\n    {\n      \"name\": \"ACTIONEQ\"\n    },\n    {\n      \"name\": \"ACTIONS\"\n    },\n    {\n      \"name\": \"aeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"AR\"\n    },\n    {\n      \"name\": \"ARRAY\"\n    },\n    {\n      \"name\": \"ATEACH\"\n    },\n    {\n      \"name\": \"AWAIT\"\n    },\n    {\n      \"name\": \"B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"B{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"BAR\"\n    },\n    {\n      \"name\": \"BarDonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BarDonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bdiv\"\n    },\n    {\n      \"name\": \"BEGIN\"\n    },\n    {\n      \"name\": \"bfvariables\"\n    },\n    {\n      \"name\": \"bigcaps\"\n    },\n    {\n      \"name\": \"bigseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigseq{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"bigset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigset{${1:left|right}}\"\n      }\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bigsub[${1:arg1/arg2|arg3}]\"\n      }\n    },\n    {\n      \"name\": \"bigsubseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bigsubseq{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"bij\"\n    },\n    {\n      \"name\": \"bitand\"\n    },\n    {\n      \"name\": \"bitexor\"\n    },\n    {\n      \"name\": \"bitnot\"\n    },\n    {\n      \"name\": \"bitor\"\n    },\n    {\n      \"name\": \"BODY\"\n    },\n    {\n      \"name\": \"boldsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boldsub{${1:letter}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"boldsubm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boldsubm{${1:letter}}{${2:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"boldsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldsymbol{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"boldvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boldvar{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"br\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bstar\"\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CALL\"\n    },\n    {\n      \"name\": \"CASES\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CASES{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"closexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"COMMENT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"COMMENT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"concat\"\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"dashes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddiv\"\n    },\n    {\n      \"name\": \"deq\"\n    },\n    {\n      \"name\": \"dgreat\"\n    },\n    {\n      \"name\": \"dgreq\"\n    },\n    {\n      \"name\": \"DIV\"\n    },\n    {\n      \"name\": \"dleq\"\n    },\n    {\n      \"name\": \"dless\"\n    },\n    {\n      \"name\": \"dminus\"\n    },\n    {\n      \"name\": \"dmult\"\n    },\n    {\n      \"name\": \"dneq\"\n    },\n    {\n      \"name\": \"DO\"\n    },\n    {\n      \"name\": \"dplus\"\n    },\n    {\n      \"name\": \"e\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"e{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"edf\"\n    },\n    {\n      \"name\": \"EDIT\"\n    },\n    {\n      \"name\": \"EDITPARENT\"\n    },\n    {\n      \"name\": \"ELSE\"\n    },\n    {\n      \"name\": \"ELSF\"\n    },\n    {\n      \"name\": \"ELSIF\"\n    },\n    {\n      \"name\": \"END\"\n    },\n    {\n      \"name\": \"ENDACTION\"\n    },\n    {\n      \"name\": \"ENDACTIONS\"\n    },\n    {\n      \"name\": \"ENDCALL\"\n    },\n    {\n      \"name\": \"ENDEDIT\"\n    },\n    {\n      \"name\": \"ENDEXP\"\n    },\n    {\n      \"name\": \"ENDFILL\"\n    },\n    {\n      \"name\": \"ENDFUNCT\"\n    },\n    {\n      \"name\": \"ENDJOIN\"\n    },\n    {\n      \"name\": \"ENDMATCH\"\n    },\n    {\n      \"name\": \"ENDPROC\"\n    },\n    {\n      \"name\": \"ENDREP\"\n    },\n    {\n      \"name\": \"ENDVAR\"\n    },\n    {\n      \"name\": \"EOR\"\n    },\n    {\n      \"name\": \"EQ\"\n    },\n    {\n      \"name\": \"eqnarrayqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqnqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EQT\"\n    },\n    {\n      \"name\": \"EXIT\"\n    },\n    {\n      \"name\": \"exor\"\n    },\n    {\n      \"name\": \"EXP\"\n    },\n    {\n      \"name\": \"f\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"false\"\n    },\n    {\n      \"name\": \"fdiv\"\n    },\n    {\n      \"name\": \"feq\"\n    },\n    {\n      \"name\": \"ffun\"\n    },\n    {\n      \"name\": \"fgreat\"\n    },\n    {\n      \"name\": \"fgreq\"\n    },\n    {\n      \"name\": \"FI\"\n    },\n    {\n      \"name\": \"FILL\"\n    },\n    {\n      \"name\": \"finj\"\n    },\n    {\n      \"name\": \"fleq\"\n    },\n    {\n      \"name\": \"fless\"\n    },\n    {\n      \"name\": \"fminus\"\n    },\n    {\n      \"name\": \"fmult\"\n    },\n    {\n      \"name\": \"fneq\"\n    },\n    {\n      \"name\": \"FOENO\"\n    },\n    {\n      \"name\": \"FOR\"\n    },\n    {\n      \"name\": \"FOREACH\"\n    },\n    {\n      \"name\": \"fplus\"\n    },\n    {\n      \"name\": \"fullstop\"\n    },\n    {\n      \"name\": \"FUNCT\"\n    },\n    {\n      \"name\": \"grefstepcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grefstepcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"gt\"\n    },\n    {\n      \"name\": \"IF\"\n    },\n    {\n      \"name\": \"ifBarDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IFMATCH\"\n    },\n    {\n      \"name\": \"ifMathsModeStrings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifMmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNumberPrograms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTHEN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifVBarOutsideProgram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwasinmmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"im\"\n    },\n    {\n      \"name\": \"implies\"\n    },\n    {\n      \"name\": \"intersect\"\n    },\n    {\n      \"name\": \"JOIN\"\n    },\n    {\n      \"name\": \"join\"\n    },\n    {\n      \"name\": \"keyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"lar\"\n    },\n    {\n      \"name\": \"last\"\n    },\n    {\n      \"name\": \"ldiv\"\n    },\n    {\n      \"name\": \"LE\"\n    },\n    {\n      \"name\": \"lequ\"\n    },\n    {\n      \"name\": \"lgreat\"\n    },\n    {\n      \"name\": \"lgreq\"\n    },\n    {\n      \"name\": \"LIKE\"\n    },\n    {\n      \"name\": \"LLAC\"\n    },\n    {\n      \"name\": \"llapm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llapm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"llapr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llapr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lleq\"\n    },\n    {\n      \"name\": \"lless\"\n    },\n    {\n      \"name\": \"lminus\"\n    },\n    {\n      \"name\": \"lmult\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lowundertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowundertext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"lplus\"\n    },\n    {\n      \"name\": \"lt\"\n    },\n    {\n      \"name\": \"MathsModeStringsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathsModeStringstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MOD\"\n    },\n    {\n      \"name\": \"modbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"modbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"myroman\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"myroman{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NIOJ\"\n    },\n    {\n      \"name\": \"normalbaroutside\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"NULL\"\n    },\n    {\n      \"name\": \"nullset\"\n    },\n    {\n      \"name\": \"NumberProgramsfalse\"\n    },\n    {\n      \"name\": \"NumberProgramstrue\"\n    },\n    {\n      \"name\": \"OD\"\n    },\n    {\n      \"name\": \"ONEOF\"\n    },\n    {\n      \"name\": \"openexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"operatorname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"operatorname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"origbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"overset{${1:superscript}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"p\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"p{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"P\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"P{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pBbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pBbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pfun\"\n    },\n    {\n      \"name\": \"pick\"\n    },\n    {\n      \"name\": \"pinj\"\n    },\n    {\n      \"name\": \"pop\"\n    },\n    {\n      \"name\": \"powerset\"\n    },\n    {\n      \"name\": \"powersetbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"powersetsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PROC\"\n    },\n    {\n      \"name\": \"progbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"progbox{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"prognumstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"programnewpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"programsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"psur\"\n    },\n    {\n      \"name\": \"push\"\n    },\n    {\n      \"name\": \"Q\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Q{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"QE\"\n    },\n    {\n      \"name\": \"qed\"\n    },\n    {\n      \"name\": \"qedsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtab\"\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rar\"\n    },\n    {\n      \"name\": \"rcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rdots\"\n    },\n    {\n      \"name\": \"rel\"\n    },\n    {\n      \"name\": \"REP\"\n    },\n    {\n      \"name\": \"restoretab\"\n    },\n    {\n      \"name\": \"rmtiny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"S\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"S{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"safeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savetab\"\n    },\n    {\n      \"name\": \"sbs\"\n    },\n    {\n      \"name\": \"scriptvar\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"scriptvar|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"scriptvariablefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seq{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"set{${1:left|right}}\"\n      }\n    },\n    {\n      \"name\": \"sfvariables\"\n    },\n    {\n      \"name\": \"SKIP\"\n    },\n    {\n      \"name\": \"SLE\"\n    },\n    {\n      \"name\": \"snugbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STEP\"\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sub[${1:arg1/arg2|arg3}]\"\n      }\n    },\n    {\n      \"name\": \"subseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subseq{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"succeqstar\"\n    },\n    {\n      \"name\": \"succstar\"\n    },\n    {\n      \"name\": \"T\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tab\"\n    },\n    {\n      \"name\": \"textqed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tfun\"\n    },\n    {\n      \"name\": \"THEN\"\n    },\n    {\n      \"name\": \"THENfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"THENtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theprogramline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tinj\"\n    },\n    {\n      \"name\": \"tl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TO\"\n    },\n    {\n      \"name\": \"true\"\n    },\n    {\n      \"name\": \"tsur\"\n    },\n    {\n      \"name\": \"tw\"\n    },\n    {\n      \"name\": \"twoline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twoline{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TYPEDEF\"\n    },\n    {\n      \"name\": \"undertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undertext{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"union\"\n    },\n    {\n      \"name\": \"untab\"\n    },\n    {\n      \"name\": \"utdots\"\n    },\n    {\n      \"name\": \"VAR\"\n    },\n    {\n      \"name\": \"var\"\n    },\n    {\n      \"name\": \"variable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variablefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variablefontend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VBarOutsideProgramfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VBarOutsideProgramtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"w\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"w{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"wasinmmodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wasinmmodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wfle\"\n    },\n    {\n      \"name\": \"wflt\"\n    },\n    {\n      \"name\": \"WHERE\"\n    },\n    {\n      \"name\": \"WHILE\"\n    },\n    {\n      \"name\": \"WITHIN\"\n    },\n    {\n      \"name\": \"WP\"\n    },\n    {\n      \"name\": \"www\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"www{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"x\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"x{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"y\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"y{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Z\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Z{${1:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"z\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"z{${1:subscript%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Cases\"\n    },\n    {\n      \"name\": \"cases\"\n    },\n    {\n      \"name\": \"program\"\n    },\n    {\n      \"name\": \"programbox\"\n    },\n    {\n      \"name\": \"romanenumerate\"\n    },\n    {\n      \"name\": \"smallprogram\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/progressbar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"progressbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"progressbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"progressbar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"progressbar[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\progressbar,\\\\progressbarchange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"progressbarchange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"progressbarchange{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\progressbar,\\\\progressbarchange\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\progressbar,\\\\progressbarchange\": [\n      \"heightr=\",\n      \"heighta=\",\n      \"roundnessr=\",\n      \"roundnessa=\",\n      \"width=\",\n      \"borderwidth=\",\n      \"subdivisions=\",\n      \"tickswidth=\",\n      \"ticksheight=\",\n      \"linecolor=\",\n      \"tickscolor=\",\n      \"emptycolor=\",\n      \"filledcolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/projlib-author.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"regexpatch\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"amsfashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"amsfashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"amsfashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"amsfashion=true\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams-fashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams-fashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams-fashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams-fashion=true\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams fashion\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams fashion\"\n    },\n    {\n      \"name\": \"projlib-language\",\n      \"if\": \"ams fashion=true\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"if\": \"ams fashion=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keywords\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"amsfashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams-fashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedicatory\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedicatory{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subjclass{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"subjclass\",\n      \"if\": \"ams fashion=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subjclass[${2:year}]{${1:classification}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:institute}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"curraddr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curraddr{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-author#c\": [\n      \"amsfashion\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-author#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-datetime.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProjLibSetDatetimeInputFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjLibSetDatetimeInputFormat{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\ProjLibSetDatetimeInputFormat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibtoday\"\n    },\n    {\n      \"name\": \"ProjLibtoday\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ProjLibtoday[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibToday\"\n    },\n    {\n      \"name\": \"ProjLibToday\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ProjLibToday[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Thedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thedate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"Thedate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Thedate[${2:options%keyvals}]{${1:date}}\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TheDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"TheDate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TheDate[${2:options%keyvals}]{${1:date}}\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjLibdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ProjLibdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProjLibdate[${2:options%keyvals}]{${1:date}}\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjLibDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ProjLibDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProjLibDate[${2:options%keyvals}]{${1:date}}\",\n        \"keys\": [\n          \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-datetime#c\": [\n      \"plain\",\n      \"year-month-day\",\n      \"month-day-year\",\n      \"day-month-year\",\n      \"year-month\",\n      \"month-day\",\n      \"month-year\",\n      \"day-month\"\n    ],\n    \"\\\\ProjLibSetDatetimeInputFormat\": [\n      \"year-month-day\",\n      \"month-day-year\",\n      \"day-month-year\"\n    ],\n    \"\\\\ProjLibtoday,\\\\ProjLibToday,\\\\Thedate,\\\\TheDate,\\\\ProjLibdate,\\\\ProjLibDate\": [\n      \"year-month-day=\",\n      \"month-day-year=\",\n      \"day-month-year=\",\n      \"year-month=\",\n      \"month-day=\",\n      \"month-year=\",\n      \"day-month=\",\n      \"only-year-month=\",\n      \"only-month-day=\",\n      \"only-year=\",\n      \"only-month=\",\n      \"only-day=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-datetime#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-draft.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blindtext\"\n    },\n    {\n      \"name\": \"blindtext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blindtext[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"DNF\"\n    },\n    {\n      \"name\": \"DNF<text>\"\n    },\n    {\n      \"name\": \"DNF*\"\n    },\n    {\n      \"name\": \"DNF*<text>\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-draft#c\": [\n      \"draft\",\n      \"fast\",\n      \"no report page\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-draft#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"lmodern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin-modern=true\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"lmodern\",\n      \"if\": \"latin modern=true\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newpxtext\",\n      \"if\": \"palatino=true\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times\"\n    },\n    {\n      \"name\": \"newtxtext\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"times=true\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond\"\n    },\n    {\n      \"name\": \"newtxmath\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond-maths\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"ebgaramond\",\n      \"if\": \"garamond=true\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto\"\n    },\n    {\n      \"name\": \"anyfontsize\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"notomath\",\n      \"if\": \"noto=true\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum\"\n    },\n    {\n      \"name\": \"eulervm\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"biolinum\",\n      \"if\": \"biolinum=true\"\n    },\n    {\n      \"name\": \"mathastext\",\n      \"if\": \"biolinum=true\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-font#c\": [\n      \"useosf\",\n      \"lmodern\",\n      \"palatino\",\n      \"times\",\n      \"garamond\",\n      \"noto\",\n      \"biolinum\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-font#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-language.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"silence\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"csquotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AddLanguageSetting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddLanguageSetting{${1:settings}}\"\n      }\n    },\n    {\n      \"name\": \"AddLanguageSetting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddLanguageSetting[${2:language}]{${1:settings}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMultilingualText\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineMultilingualText{${1:command}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ProjLibLanguageSet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProjLibLanguageSet{${1:object}}{${2:language}}{${3:setting}}\"\n      }\n    },\n    {\n      \"name\": \"UseLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"UseOtherLanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseOtherLanguage{${1:language}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"captionsportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ord\"\n    },\n    {\n      \"name\": \"orda\"\n    },\n    {\n      \"name\": \"ro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsbrazilian\"\n    },\n    {\n      \"name\": \"datebrazilian\"\n    },\n    {\n      \"name\": \"extrasbrazilian\"\n    },\n    {\n      \"name\": \"noextrasbrazilian\"\n    },\n    {\n      \"name\": \"captionsitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italianhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setactivedoublequote\"\n    },\n    {\n      \"name\": \"setISOcompliance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IntelligentComma\"\n    },\n    {\n      \"name\": \"NoIntelligentComma\"\n    },\n    {\n      \"name\": \"XXIletters\"\n    },\n    {\n      \"name\": \"XXVIletters\"\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"virgola\"\n    },\n    {\n      \"name\": \"virgoladecimale\"\n    },\n    {\n      \"name\": \"LtxSymbCaporali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CaporaliFrom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CaporaliFrom{${1:encoding}}{${2:family}}{${3:open guill slot}}{${4:close guill slot}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datejapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasjapanese\",\n      \"if\": \"Japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrdash\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Asbuk\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asbuk{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Russian\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"sh\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ch\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"tg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"ctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"arcctg\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cth\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cosec\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Prob\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Variance\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOD\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nod\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"NOK\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"nok\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"Proj\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"cyrillicencoding\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrillictext\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textcyrillic\",\n      \"if\": \"Russian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcyrillic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dq\",\n      \"if\": \"Russian\"\n    },\n    {\n      \"name\": \"captionsrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasrussian\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRB\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRV\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRG\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRGUP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRD\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRIE\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRZ\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRII\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYI\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRISHRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRK\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRL\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRM\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRO\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRP\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRR\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRS\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRT\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRF\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRC\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSHCH\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYU\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRYA\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRSFTSN\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CYRERY\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyra\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrb\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrv\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrg\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrgup\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrd\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyre\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrie\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrzh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrz\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyri\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrii\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryi\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrishrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrk\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrl\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrm\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyro\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrp\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrr\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrs\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrt\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyru\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrf\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrc\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsh\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrshch\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyryu\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrya\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrsftsn\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrery\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cdash\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acronymname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlistlistingname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notesname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomname\",\n      \"if\": \"Russian\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"OtherLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/projlib-language#c\": [\n      \"English\",\n      \"French\",\n      \"German\",\n      \"Italian\",\n      \"Portuguese\",\n      \"Brazilian\",\n      \"Spanish\",\n      \"Chinese\",\n      \"TChinese\",\n      \"Japanese\",\n      \"Russian\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-language#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-logo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProjLib\"\n    },\n    {\n      \"name\": \"ProjLibText\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-logo#c\": [\n      \"draft\",\n      \"fast\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-logo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefineMathOperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineMathOperator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathOperator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineMathOperator[${2:style=code}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathOperator*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineMathOperator*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathOperator*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineMathOperator*[${2:style=code}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineOperator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineOperator{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineOperator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineOperator[${2:style=code}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineOperator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineOperator*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineOperator*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineOperator*[${2:style=code}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineMathSymbol{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathSymbol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineMathSymbol[${2:options}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DefineMathSymbol,\\\\DefineMathSymbol*,\\\\DefineShortcut,\\\\DefineShortcut*,\\\\ProjLibDefineMathSymbol,\\\\ProjLibDefineMathSymbol*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefineMathSymbol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineMathSymbol*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineMathSymbol*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineMathSymbol*[${2:options}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DefineMathSymbol,\\\\DefineMathSymbol*,\\\\DefineShortcut,\\\\DefineShortcut*,\\\\ProjLibDefineMathSymbol,\\\\ProjLibDefineMathSymbol*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefineShortcut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineShortcut{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineShortcut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineShortcut[${2:options}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DefineMathSymbol,\\\\DefineMathSymbol*,\\\\DefineShortcut,\\\\DefineShortcut*,\\\\ProjLibDefineMathSymbol,\\\\ProjLibDefineMathSymbol*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefineShortcut*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineShortcut*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DefineShortcut*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineShortcut*[${2:options}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\DefineMathSymbol,\\\\DefineMathSymbol*,\\\\DefineShortcut,\\\\DefineShortcut*,\\\\ProjLibDefineMathSymbol,\\\\ProjLibDefineMathSymbol*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedefineInMathMode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RedefineInMathMode{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"ListOfSymbols\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ListOfSymbols{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ListOfSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ListOfSymbols[${2:colwidth1}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ListOfSymbols\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ListOfSymbols[${2:colwidth1}][${3:colwidth2}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCommandCopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideCommandCopy{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\DefineMathSymbol,\\\\DefineMathSymbol*,\\\\DefineShortcut,\\\\DefineShortcut*,\\\\ProjLibDefineMathSymbol,\\\\ProjLibDefineMathSymbol*\": [\n      \"prefix=\",\n      \"type=\",\n      \"style=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/projlib-paper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/projlib-paper#c\": [\n      \"preview mode\",\n      \"paper style=${1|lightyellow,yellow,parchment,green,light-gray,gray,nord,dark|}\",\n      \"light yellow paper\",\n      \"yellow paper\",\n      \"parchment paper\",\n      \"green paper\",\n      \"light gray paper\",\n      \"gray paper\",\n      \"nord paper\",\n      \"dark paper\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-paper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-text.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-paper\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ItemDescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ItemDescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"etc\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/projlib-theorem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-language\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"create-theorem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DisableTheoremNumbering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisableTheoremNumbering{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SwitchTheoremNumbering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SwitchTheoremNumbering{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"theapplication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theassertion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theassumption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaxiom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theclaim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconclusion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconjecture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconstruction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theconvention\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecorollary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedefinition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexercise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thehypothesis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelemma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenotation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theobservation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepostulate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproblem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproperty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theproposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thequestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therecall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theremark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetheorem\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"application\"\n    },\n    {\n      \"name\": \"application\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"application*\"\n    },\n    {\n      \"name\": \"application*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assertion\"\n    },\n    {\n      \"name\": \"assertion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assertion*\"\n    },\n    {\n      \"name\": \"assertion*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"assumption*\"\n    },\n    {\n      \"name\": \"assumption*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom*\"\n    },\n    {\n      \"name\": \"axiom*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim\"\n    },\n    {\n      \"name\": \"claim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"claim*\"\n    },\n    {\n      \"name\": \"claim*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conclusion\"\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conclusion*\"\n    },\n    {\n      \"name\": \"conclusion*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture\"\n    },\n    {\n      \"name\": \"conjecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"conjecture*\"\n    },\n    {\n      \"name\": \"conjecture*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"construction\"\n    },\n    {\n      \"name\": \"construction\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"construction*\"\n    },\n    {\n      \"name\": \"construction*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"convention\"\n    },\n    {\n      \"name\": \"convention\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"convention*\"\n    },\n    {\n      \"name\": \"convention*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary*\"\n    },\n    {\n      \"name\": \"corollary*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition*\"\n    },\n    {\n      \"name\": \"definition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example*\"\n    },\n    {\n      \"name\": \"example*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise*\"\n    },\n    {\n      \"name\": \"exercise*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact\"\n    },\n    {\n      \"name\": \"fact\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"fact*\"\n    },\n    {\n      \"name\": \"fact*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"hypothesis\"\n    },\n    {\n      \"name\": \"hypothesis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"hypothesis*\"\n    },\n    {\n      \"name\": \"hypothesis*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma*\"\n    },\n    {\n      \"name\": \"lemma*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation\"\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"notation*\"\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"observation\"\n    },\n    {\n      \"name\": \"observation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"observation*\"\n    },\n    {\n      \"name\": \"observation*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"postulate\"\n    },\n    {\n      \"name\": \"postulate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"postulate*\"\n    },\n    {\n      \"name\": \"postulate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem\"\n    },\n    {\n      \"name\": \"problem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"problem*\"\n    },\n    {\n      \"name\": \"problem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"property\"\n    },\n    {\n      \"name\": \"property\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"property*\"\n    },\n    {\n      \"name\": \"property*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition*\"\n    },\n    {\n      \"name\": \"proposition*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"question*\"\n    },\n    {\n      \"name\": \"question*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"recall\"\n    },\n    {\n      \"name\": \"recall\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"recall*\"\n    },\n    {\n      \"name\": \"recall*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark*\"\n    },\n    {\n      \"name\": \"remark*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"theorem*\"\n    },\n    {\n      \"name\": \"theorem*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proof*\"\n    },\n    {\n      \"name\": \"proof*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/projlib-theorem#c\": [\n      \"nothms\",\n      \"nothmnum\",\n      \"thmnum\",\n      \"thmnum=${1:counter}\",\n      \"theorem style=${1:style}\",\n      \"complex name\",\n      \"simple name\",\n      \"no preset names\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/projlib-theorem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/projlib-titlepage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"projlib-logo\"\n    },\n    {\n      \"name\": \"projlib-paper\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TitlePage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitlePage{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\TitlePage,\\\\ProjLibTitlePage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TitlePage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TitlePage[${2:options}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\TitlePage,\\\\ProjLibTitlePage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibTitlePage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjLibTitlePage{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\TitlePage,\\\\ProjLibTitlePage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProjLibTitlePage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProjLibTitlePage[${2:options}]{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\TitlePage,\\\\ProjLibTitlePage\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\TitlePage,\\\\ProjLibTitlePage\": [\n      \"logo=${1:graphics}\",\n      \"title=${1:text}\",\n      \"subtitle=${1:text}\",\n      \"author=${1:name}\",\n      \"date=${1:date}\",\n      \"title-page-name=${1:name}\",\n      \"license-page-name=${1:name}\",\n      \"info=${1:text}\",\n      \"license=${1:text}\",\n      \"style=${1:style}\",\n      \"color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/proof-at-the-end.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"thm-restate\"\n    },\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includeExternalAppendix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeExternalAppendix[${2:category}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeExternalAppendix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeExternalAppendix{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"newEndProof\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newEndProof[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newEndProof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newEndProof{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newEndThm\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newEndThm[${3:options%keyvals}]{${1:envname}}{${2:old envname}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newEndThm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newEndThm{${1:envname}}{${2:old envname}}\"\n      }\n    },\n    {\n      \"name\": \"pratendAddLabel\"\n    },\n    {\n      \"name\": \"pratendRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pratendRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pratendSectionlikeCref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendSetGlobal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pratendSetGlobal{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pratendSetLocal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pratendSetLocal{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printProofs\"\n    },\n    {\n      \"name\": \"printProofs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printProofs[${1:category}]\"\n      }\n    },\n    {\n      \"name\": \"textEnd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textEnd[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textEnd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"appendtofile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendtofile{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"category\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eraseIfNeeded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eraseIfNeeded{${1:category}}\"\n      }\n    },\n    {\n      \"name\": \"fileContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeallother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendcountercurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendcustomrestate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendDisableDebugSynctex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendEnableDebugSynctex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendGeneratePrefixFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pratendGeneratePrefixFile{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"pratendLabelProofSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendlastoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendtextlink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pratendtextproof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefixPrAtEndFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecounterAllProofEnd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"proofE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"proofE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv\"\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"thmE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemmaE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"theoremE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollaryE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"propositionE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"propertyE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv=true\"\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"factE\",\n      \"if\": \"createShortEnv=true\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:title%text}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textAtEnd\"\n    },\n    {\n      \"name\": \"textAtEnd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proofEnd\"\n    },\n    {\n      \"name\": \"proofEnd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theorem-env}}\"\n      }\n    },\n    {\n      \"name\": \"theoremEnd\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:theorem-env}}[${2:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"theoremEnd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:theorem-env}}\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremEnd\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:theorem-env}}[${3:title%text}]\",\n        \"keys\": [\n          \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"theoremEndRestateBefore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:theorem-env}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"theoremEndRestateBefore\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:theorem-env}}[${3:title%text}]{${2:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/proof-at-the-end#c\": [\n      \"conf={${1:configuration}}\",\n      \"disablePatchSection\",\n      \"commandRef=${1:csname}\",\n      \"createShortEnv\"\n    ],\n    \"\\\\begin{proofE}#c,\\\\begin{thmE}#c,\\\\begin{lemmaE}#c,\\\\begin{theoremE}#c,\\\\begin{corollaryE}#c,\\\\begin{propositionE}#c,\\\\begin{propertyE}#c,\\\\begin{factE}#c,\\\\begin{theoremEnd}#c,\\\\begin{proofEnd}#c,\\\\begin{textAtEnd}#c,\\\\newEndThm#c,\\\\newEndProof#c,\\\\textEnd#c,\\\\pratendSetGlobal#c,\\\\pratendSetLocal#c\": [\n      \"category=${1:category}\",\n      \"proof here\",\n      \"no proof here\",\n      \"proof end\",\n      \"no proof end\",\n      \"restate\",\n      \"no restate\",\n      \"link to proof\",\n      \"no link to proof\",\n      \"opt all end\",\n      \"no opt all end\",\n      \"text link=${1:text}\",\n      \"text proof=${1:text}\",\n      \"restate command=${1:csname}\",\n      \"restated before\",\n      \"both\",\n      \"no both\",\n      \"external appendix\",\n      \"normal\",\n      \"end\",\n      \"all end\",\n      \"proof at the end\",\n      \"debug\",\n      \"no link to theorem\",\n      \"stared\",\n      \"see full proof\",\n      \"one big link\",\n      \"one big link=${1:text}\",\n      \"one big link translated=${1:text}\",\n      \"text link section\",\n      \"text link section full proof\",\n      \"default text link\",\n      \"default text proof\",\n      \"text proof translated=${1:text}\",\n      \"text link external appendix\",\n      \"only external appendix\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/proof-at-the-end#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/proof.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"deduce\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deduce{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    },\n    {\n      \"name\": \"deduce\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"deduce[${3:label%formula}]{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    },\n    {\n      \"name\": \"infer\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"infer{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    },\n    {\n      \"name\": \"infer\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"infer[${3:label%formula}]{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    },\n    {\n      \"name\": \"infer*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"infer*{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    },\n    {\n      \"name\": \"infer*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"infer*[${3:label%formula}]{${1:conclusions%formula}}{${2:premises%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/proofread.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"soul\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"skp\"\n    },\n    {\n      \"name\": \"skp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skp[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"del\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"del{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"yel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yel{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"yel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yel[${2:comment%text}]{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"add\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"add{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"rep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rep{${1:phrase%text}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"com\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"com{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hilite{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"hilite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hilite[${2:options%keyvals}]{${1:phrase%text}}\",\n        \"keys\": [\n          \"\\\\hilite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/proofread#c\": [\n      \"onehalfspacing\",\n      \"doublespacing\",\n      \"corrected\",\n      \"uncorrected\",\n      \"frame\"\n    ],\n    \"\\\\hilite#c\": [\n      \"fill=\",\n      \"draw=\",\n      \"opacity=\",\n      \"fill opacity=\",\n      \"draw opacity=\",\n      \"line width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/proofread#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/prooftrees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"forest\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\",\n      \"if\": \"external\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"standardnodestrut\",\n      \"if\": \"linguistics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standardnodestrutbox\",\n      \"if\": \"linguistics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberstyle{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tableau\",\n      \"if\": \"tableaux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tree preamble%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{prooftree}#c,\\\\begin{tableau}#c,\\\\forestset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tableau\",\n      \"if\": \"tableau\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tree preamble%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{prooftree}#c,\\\\begin{tableau}#c,\\\\forestset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"prooftree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tree preamble%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{prooftree}#c,\\\\begin{tableau}#c,\\\\forestset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/prooftrees#c\": [\n      \"tableaux\",\n      \"external\",\n      \"linguistics\",\n      \"debug\"\n    ],\n    \"\\\\begin{prooftree}#c,\\\\begin{tableau}#c,\\\\forestset#c\": [\n      \"auto move\",\n      \"not auto move\",\n      \"line numbering\",\n      \"not line numbering\",\n      \"justifications\",\n      \"not justifications\",\n      \"single branches\",\n      \"not single branches\",\n      \"line no width=\",\n      \"just sep=\",\n      \"line no sep=\",\n      \"close sep=\",\n      \"proof tree inner proof width=\",\n      \"proof tree inner proof midpoint=\",\n      \"line no shift=${1:integer}\",\n      \"zero start\",\n      \"to prove={${1:wff}}\",\n      \"check with=${1:symbol}\",\n      \"check right\",\n      \"not check right\",\n      \"check left\",\n      \"close with=${1:symbol}\",\n      \"close with format={${1:TikZ keys}}\",\n      \"close format={${1:TikZ keys}}\",\n      \"subs with=${1:symbol}\",\n      \"subs right\",\n      \"not subs right\",\n      \"subs left\",\n      \"just refs left\",\n      \"not just refs left\",\n      \"just refs right\",\n      \"just format={${1:TikZ keys}}\",\n      \"line no format={${1:TikZ keys}}\",\n      \"wff format={${1:TikZ keys}}\",\n      \"proof statement format={${1:TikZ keys}}\",\n      \"highlight format={${1:TikZ keys}}\",\n      \"merge delimiter=${1:punctuation}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/prooftrees#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/properties.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"datatool\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"loadDefaultProperties\"\n    },\n    {\n      \"name\": \"loadOtherProperties\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadOtherProperties{${1:xxx}}\"\n      }\n    },\n    {\n      \"name\": \"getDefaultProperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getDefaultProperty{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"getOtherProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getOtherProperty{${1:xxx}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"setDefaultProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDefaultProperty{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setOtherProperty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setOtherProperty{${1:xxx}}{${2:key%plain}}{${3:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/protecteddef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ProtectedDef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProtectedDef{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProtectedDef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ProtectedDef{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProtectedDef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProtectedDef*{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProtectedDef*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ProtectedDef*{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/protosem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Aa\"\n    },\n    {\n      \"name\": \"AAa\"\n    },\n    {\n      \"name\": \"AAaleph\"\n    },\n    {\n      \"name\": \"AAayin\"\n    },\n    {\n      \"name\": \"AAb\"\n    },\n    {\n      \"name\": \"AAbeth\"\n    },\n    {\n      \"name\": \"AAd\"\n    },\n    {\n      \"name\": \"AAdaleth\"\n    },\n    {\n      \"name\": \"AAh\"\n    },\n    {\n      \"name\": \"AAhd\"\n    },\n    {\n      \"name\": \"AAhe\"\n    },\n    {\n      \"name\": \"AAhelmet\"\n    },\n    {\n      \"name\": \"AAheth\"\n    },\n    {\n      \"name\": \"AAk\"\n    },\n    {\n      \"name\": \"AAkaph\"\n    },\n    {\n      \"name\": \"AAl\"\n    },\n    {\n      \"name\": \"AAlamed\"\n    },\n    {\n      \"name\": \"Aaleph\"\n    },\n    {\n      \"name\": \"AAo\"\n    },\n    {\n      \"name\": \"AAp\"\n    },\n    {\n      \"name\": \"AApe\"\n    },\n    {\n      \"name\": \"AAq\"\n    },\n    {\n      \"name\": \"AAqoph\"\n    },\n    {\n      \"name\": \"AAr\"\n    },\n    {\n      \"name\": \"AAresh\"\n    },\n    {\n      \"name\": \"AAsade\"\n    },\n    {\n      \"name\": \"AAsd\"\n    },\n    {\n      \"name\": \"AAv\"\n    },\n    {\n      \"name\": \"AAy\"\n    },\n    {\n      \"name\": \"Aayin\"\n    },\n    {\n      \"name\": \"AAyod\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Abeth\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Adaleth\"\n    },\n    {\n      \"name\": \"Ag\"\n    },\n    {\n      \"name\": \"Agimel\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"Ahd\"\n    },\n    {\n      \"name\": \"Ahe\"\n    },\n    {\n      \"name\": \"Ahelmet\"\n    },\n    {\n      \"name\": \"Aheth\"\n    },\n    {\n      \"name\": \"Ak\"\n    },\n    {\n      \"name\": \"Akaph\"\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"Alamed\"\n    },\n    {\n      \"name\": \"Alq\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"Amem\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"Anun\"\n    },\n    {\n      \"name\": \"Ao\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"Ape\"\n    },\n    {\n      \"name\": \"Aq\"\n    },\n    {\n      \"name\": \"Aqoph\"\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"Aresh\"\n    },\n    {\n      \"name\": \"Arq\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"Asade\"\n    },\n    {\n      \"name\": \"Asamekh\"\n    },\n    {\n      \"name\": \"Asd\"\n    },\n    {\n      \"name\": \"Ashin\"\n    },\n    {\n      \"name\": \"Asv\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"Atav\"\n    },\n    {\n      \"name\": \"Atd\"\n    },\n    {\n      \"name\": \"Ateth\"\n    },\n    {\n      \"name\": \"Av\"\n    },\n    {\n      \"name\": \"Avav\"\n    },\n    {\n      \"name\": \"Aw\"\n    },\n    {\n      \"name\": \"Ay\"\n    },\n    {\n      \"name\": \"Ayod\"\n    },\n    {\n      \"name\": \"Az\"\n    },\n    {\n      \"name\": \"Azayin\"\n    },\n    {\n      \"name\": \"protofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textproto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textproto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"translitproto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitproto{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitprotofont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ps-trees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tree-dvips\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Node\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Node{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"Node\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Node[${3:n}]{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"NodeWidthNo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodeWidthNo{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"NodeNo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeNo{${1:n}}{${2:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"NodeZ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeZ{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"nodeZ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nodeZ{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"NodeTNo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeTNo{${1:n}}{${2:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"NodeTZNo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeTZNo{${1:n}}{${2:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"NodeZTNo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeZTNo{${1:n}}{${2:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"MinNodeWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NodeTZ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeTZ{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"NodeT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeT{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"NodeZT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NodeZT{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"NodeWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddToToks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToToks{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AllNodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CollectedNodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CollectedTNodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Compare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Compare{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConnectNode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ConnectTNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConnectTNode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"EveryNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EveryNode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"EveryTNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EveryTNode{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifIsElement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfIsNodeName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfIsNodeName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifTNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsElementfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IsElementOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsElementOf{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"IsElementtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoNodeWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoNodeWarning{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"OptionNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"OptionNode[${3:n}]{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"OptionNodeNo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"OptionNodeNo{${1:n}}[${3:opt}]{${2:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"TestAndAdd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestAndAdd{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TNodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TNodetrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"treetab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols%plain}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pseudo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"aliascnt\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pseudoset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudoset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudodefinestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pseudodefinestyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ct{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fn\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"fn{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"fnfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hd\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"hd{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"id\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"id{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"idfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kw{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"kwfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pr{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pr\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pr{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"prfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudocn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudocn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudoct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudoct{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudofn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudofn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudofn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pseudofn{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"pseudohd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pseudohd{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"pseudoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudoid{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudokw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudokw{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudopr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudopr{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pseudopr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pseudopr{${1:name}}(${2:arguments%formula})\"\n      }\n    },\n    {\n      \"name\": \"pseudost\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pseudost{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"st{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"stfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoComment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoComment{${1:cmd}}{${2:comment}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoConstant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoConstant{${1:cmd}}{${2:constant}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoFunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoFunction{${1:cmd}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoIdentifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoIdentifier{${1:cmd}}{${2:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoKeyword\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoKeyword{${1:cmd}}{${2:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoNormal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoNormal{${1:cmd}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoProcedure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoProcedure{${1:cmd}}{${2:procedure}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePseudoString\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePseudoString{${1:cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"RestorePseudoBackslash\"\n    },\n    {\n      \"name\": \"RestorePseudoEq\"\n    },\n    {\n      \"name\": \"rng\"\n    },\n    {\n      \"name\": \"dts\"\n    },\n    {\n      \"name\": \"eqs\"\n    },\n    {\n      \"name\": \"nf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudobol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudodimcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudoeol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudohdpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudohl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudohlcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudohpad\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudoindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudoindentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudolabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudolabelalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudopos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudopreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudoprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudosavelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pseudosetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepseudoenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepseudoline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboverulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowrulesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"heavyrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lightrulewidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pseudo\"\n    },\n    {\n      \"name\": \"pseudo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudo\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:options%keyvals}][${2:line options}]\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudo*\"\n    },\n    {\n      \"name\": \"pseudo*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pseudo*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:options%keyvals}][${2:line options}]\",\n        \"keys\": [\n          \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\pseudoset#c,\\\\begin{pseudo}#c,\\\\begin{pseudo*}#c,\\\\pseudodefinestyle#c\": [\n      \"begin-tabular=${1:commands}\",\n      \"bol=${1:commands}\",\n      \"bol-append=${1:commands}\",\n      \"bol-prepend=${1:commands}\",\n      \"cnfont=${1:command}\",\n      \"compact\",\n      \"ct-left=${1:text}\",\n      \"ct-right=${1:text}\",\n      \"ctfont=${1:command}\",\n      \"dim\",\n      \"dim-color=\",\n      \"end-tabular=${1:command}\",\n      \"eol=${1:commands}\",\n      \"eol-append=${1:commands}\",\n      \"eol-prepend=${1:commands}\",\n      \"eqs-pad=\",\n      \"eqs-scale=${1:number}\",\n      \"eqs-sep=\",\n      \"extra-space=\",\n      \"fnfont=${1:command}\",\n      \"font=${1:command}\",\n      \"hd-preamble=${1:columns}\",\n      \"hd-space=\",\n      \"hl\",\n      \"hl-color=\",\n      \"hl-warn\",\n      \"hpad=\",\n      \"hsep=\",\n      \"idfont=${1:command}\",\n      \"indent-length=\",\n      \"indent-level=${1:integer}\",\n      \"indent-mark=${1:mark}\",\n      \"indent-mark-color=\",\n      \"indent-mark-shift=\",\n      \"indent-mark-width=\",\n      \"indent-text=${1:text}\",\n      \"init=${1:commands}\",\n      \"init-append=${1:commands}\",\n      \"init-prepend=${1:commands}\",\n      \"kw\",\n      \"kwfont=${1:command}\",\n      \"label=${1:commands}\",\n      \"label-align=${1:column}\",\n      \"left-margin=\",\n      \"line-height=${1:factor}\",\n      \"partopsep=\",\n      \"pause\",\n      \"pos=${1|t,b|}\",\n      \"preamble=${1:columns}\",\n      \"prefix=${1:commands}\",\n      \"prevdepth=\",\n      \"prfont=${1:command}\",\n      \"ref=${1:commands}\",\n      \"setup=${1:commands}\",\n      \"setup-append=${1:commands}\",\n      \"setup-prepend=${1:commands}\",\n      \"st-left=${1:text}\",\n      \"st-right=${1:text}\",\n      \"starred\",\n      \"start=${1:number}\",\n      \"stfont=${1:command}\",\n      \"topsep=\",\n      \"${1:key}<${2:overlay specification}>=${3:value}\",\n      \"%pseudostyle\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\newtcbtheorem,\\\\renewtcbtheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"pseudo/boxed\",\n      \"pseudo/booktabs\",\n      \"pseudo/boxruled\",\n      \"pseudo/filled\",\n      \"pseudo/init=${1:commands}\",\n      \"pseudo/ruled\",\n      \"pseudo/tworuled\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pseudocode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ADO\"\n    },\n    {\n      \"name\": \"AND\"\n    },\n    {\n      \"name\": \"BEGIN\"\n    },\n    {\n      \"name\": \"BREAK\"\n    },\n    {\n      \"name\": \"CALL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CALL{${1:procedure%text}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"CASE\"\n    },\n    {\n      \"name\": \"CELSE\"\n    },\n    {\n      \"name\": \"COMMENT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"COMMENT{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CTHEN\"\n    },\n    {\n      \"name\": \"DO\"\n    },\n    {\n      \"name\": \"DOWNTO\"\n    },\n    {\n      \"name\": \"ELSE\"\n    },\n    {\n      \"name\": \"ELSEIF\"\n    },\n    {\n      \"name\": \"END\"\n    },\n    {\n      \"name\": \"ENDCASE\"\n    },\n    {\n      \"name\": \"ENDMAIN\"\n    },\n    {\n      \"name\": \"ENDPROCEDURE\"\n    },\n    {\n      \"name\": \"EXIT\"\n    },\n    {\n      \"name\": \"EXTERNAL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"EXTERNAL{${1:procedures}}\"\n      }\n    },\n    {\n      \"name\": \"FAIL\"\n    },\n    {\n      \"name\": \"FALSE\"\n    },\n    {\n      \"name\": \"FOR\"\n    },\n    {\n      \"name\": \"FORALL\"\n    },\n    {\n      \"name\": \"FOREACH\"\n    },\n    {\n      \"name\": \"GETS\"\n    },\n    {\n      \"name\": \"GLOBAL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GLOBAL{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"GOTO\"\n    },\n    {\n      \"name\": \"IF\"\n    },\n    {\n      \"name\": \"LET\"\n    },\n    {\n      \"name\": \"LOCAL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LOCAL{${1:variables}}\"\n      }\n    },\n    {\n      \"name\": \"MAIN\"\n    },\n    {\n      \"name\": \"NOT\"\n    },\n    {\n      \"name\": \"OF\"\n    },\n    {\n      \"name\": \"OR\"\n    },\n    {\n      \"name\": \"OUTPUT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OUTPUT{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"PROCEDURE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PROCEDURE{${1:name%text}}{${2:parameters%formula}}\"\n      }\n    },\n    {\n      \"name\": \"REPEAT\"\n    },\n    {\n      \"name\": \"RETURN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RETURN{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"STMTNUM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STMTNUM{${1:space%l}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"SUCCESS\"\n    },\n    {\n      \"name\": \"THEN\"\n    },\n    {\n      \"name\": \"thepseudocode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepseudonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TO\"\n    },\n    {\n      \"name\": \"TRUE\"\n    },\n    {\n      \"name\": \"UNTIL\"\n    },\n    {\n      \"name\": \"WHILE\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pseudocode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name%text}}{${2:parameters%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pseudocode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:frame type%keyvals}]{${1:name%text}}{${2:parameters%formula}}\",\n        \"keys\": [\n          \"\\\\begin{pseudocode}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{pseudocode}\": [\n      \"display\",\n      \"doublebox\",\n      \"framebox\",\n      \"ovalbox\",\n      \"Ovalbox\",\n      \"plain\",\n      \"ruled\",\n      \"shadowbox\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/psfont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AvailableRMFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableRMFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableRMFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableRMFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableSFFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableSFFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableSFFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableSFFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableTTFont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AvailableTTFont{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableTTFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AvailableTTFont[${3:additional code}]{${1:long name}}{${2:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AvailableFont{${1:symbolic name}}{${2:rm font}}{${3:sf font}}{${4:tt font}}\"\n      }\n    },\n    {\n      \"name\": \"AvailableFont\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"AvailableFont[${5:additional code}]{${1:symbolic name}}{${2:rm font}}{${3:sf font}}{${4:tt font}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultRMFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultRMFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultSFFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultSFFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"DefaultTTFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultTTFont{${1:NFSS family name}}\"\n      }\n    },\n    {\n      \"name\": \"Pifont\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pifont{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"Pisymbol\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pisymbol{${1:family}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Pifill\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pifill{${1:family}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Piline\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Piline{${1:family}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Pinumber\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pinumber{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"ding\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ding{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"dingfill\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingfill{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"dingline\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dingline{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"omicron\",\n      \"if\": \"mathptm\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Pilist\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Piautolist\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:family}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"dinglist\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"dingautolist\",\n      \"if\": \"pifont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/psfont#c\": [\n      \"onlyps\",\n      \"pifont\",\n      \"mathptm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/psfont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/psfrag.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psfrag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfrag{${1:tag}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag\",\n      \"arg\": {\n        \"format\": \"{}[][][][]{}\",\n        \"snippet\": \"psfrag{${1:tag}}[${3:posn}][${4:psposn}][${5:scale}][${6:rot}]{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfrag*{${1:tag}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfrag*\",\n      \"arg\": {\n        \"format\": \"{}[][][][]{}\",\n        \"snippet\": \"psfrag*{${1:tag}}[${3:posn}][${4:psposn}][${5:scale}][${6:rot}]{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"psfragscanon\"\n    },\n    {\n      \"name\": \"psfragscanoff\"\n    },\n    {\n      \"name\": \"psfragdebugon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psfragdebugoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psfrags\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/psfrag#c\": [\n      \"scanall\",\n      \"2emode\",\n      \"209mode\",\n      \"debugshow\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/psfrag#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/psfragx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"psfrag\"\n    },\n    {\n      \"name\": \"overpic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includegraphicx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicx{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicx[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"includegraphicx[${2:options%keyvals}](${3:psfrags}){${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()<>{}\",\n        \"snippet\": \"includegraphicx[${2:options%keyvals}](${4:psfrags})<${3:fg overpic}>{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includegraphicx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()<>[]{}\",\n        \"snippet\": \"includegraphicx[${2:options%keyvals}](${5:psfrags})<${4:fg overpic}>[${3:bg overpic}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iflanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguage{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"allmetacomments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectedmetacomments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copypfxfromto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copypfxfromto{${1:EPS file}}{${2:PFX file}}\"\n      }\n    },\n    {\n      \"name\": \"setpfxinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpfxinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"setpfxoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpfxoutput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"copypfxlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfxinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pfxinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ovpinput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovpinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"providecolorcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beforepfxinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Afterpfxinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Beforeovpinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Afterovpinput\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"overpix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"overpix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"overpix\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"[${2:options%keyvals}]<${3:fg overpic}>{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"overpix\",\n      \"arg\": {\n        \"format\": \"[]<>[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]<${4:fg overpic}>[${3:bg overpic}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicx,\\\\begin{overpix}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"onlylanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/psfragx#c\": [\n      \"sub\",\n      \"nosub\",\n      \"allcom\",\n      \"selcom\",\n      \"ovp\",\n      \"noovp\"\n    ],\n    \"\\\\includegraphicx,\\\\begin{overpix}\": [\n      \"pfx\",\n      \"overwritepfx\",\n      \"pfxadd={${1:psfrags}}\",\n      \"ovp\",\n      \"overwriteovp\",\n      \"ovpbgd={${1:picture commands}}\",\n      \"ovpfgd={${1:picture commands}}\",\n      \"abs\",\n      \"percent\",\n      \"permil\",\n      \"rel=${1:number}\",\n      \"grid\",\n      \"tics=${1:number}\",\n      \"unit=\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/psfragx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/psgo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setgounit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgounit{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"stone\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stone{${1:color%plain}}{${2:column}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"stone\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"stone[${4:marker}]{${1:color%plain}}{${2:column}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"move\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"move{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"move\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"move[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"move*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"move*{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"move*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"move*[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"pass\"\n    },\n    {\n      \"name\": \"pass*\"\n    },\n    {\n      \"name\": \"markpos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"markpos{${1:marker}}{${2:column}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"markma\"\n    },\n    {\n      \"name\": \"marktr\"\n    },\n    {\n      \"name\": \"markcr\"\n    },\n    {\n      \"name\": \"marksq\"\n    },\n    {\n      \"name\": \"marklb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marklb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"marksl\"\n    },\n    {\n      \"name\": \"markdd\"\n    },\n    {\n      \"name\": \"goline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"goline{${1:column1}}{${2:row1}}{${3:column2}}{${4:row2}}\"\n      }\n    },\n    {\n      \"name\": \"goarrow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"goarrow{${1:column1}}{${2:row1}}{${3:column2}}{${4:row2}}\"\n      }\n    },\n    {\n      \"name\": \"psgo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blackstone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blackstone{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"blackstone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"blackstone[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"factor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golabelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"golabelformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"goxposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goxposition{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"goxunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"goyposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goyposition{${1:row}}\"\n      }\n    },\n    {\n      \"name\": \"goyunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatchangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mdd{${1:column1}}{${2:row1}}{${3:column2}}{${4:row2}}\"\n      }\n    },\n    {\n      \"name\": \"movenostar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movenostar{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"movenostar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"movenostar[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"movestar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movestar{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"movestar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"movestar[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"nomark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"passnostar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"passstar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placesymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placesymbol{${1:symbol}}{${2:column}}{${3:row}}\"\n      }\n    },\n    {\n      \"name\": \"pointbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pointbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psgollx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgollxval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgolly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgollyval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgosetboardsizes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgourx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgourxval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgoury\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgouryval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmarkbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theboardsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegomove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegotmpc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toggleblackmove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitestone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whitestone{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"whitestone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"whitestone[${3:marker}]{${1:column}}{${2:row}}\"\n      }\n    },\n    {\n      \"name\": \"xoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xpositionmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpositionmarks{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"ypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypositionmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ypositionmarks{${1:counter}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psgoboard\"\n    },\n    {\n      \"name\": \"psgoboard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"psgoboard*\"\n    },\n    {\n      \"name\": \"psgoboard*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"psgopartialboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})}}\"\n      }\n    },\n    {\n      \"name\": \"psgopartialboard\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:size}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})}}\"\n      }\n    },\n    {\n      \"name\": \"psgopartialboard*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})}}\"\n      }\n    },\n    {\n      \"name\": \"psgopartialboard*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:size}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})}}\"\n      }\n    },\n    {\n      \"name\": \"gomoves\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-2dplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setpstgraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpstgraph{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pstgraph},\\\\setpstgraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstlabel{${1:x-label}}{${2:y-label}}\"\n      }\n    },\n    {\n      \"name\": \"pstfileplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstfileplot{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pstfileplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstfileplot[${2:pstricks options}]{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pstgraph\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:x0},${2:y0})\"\n      }\n    },\n    {\n      \"name\": \"pstgraph\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:options%keyvals}](${2:x0},${3:y0})\",\n        \"keys\": [\n          \"\\\\begin{pstgraph},\\\\setpstgraph\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{pstgraph},\\\\setpstgraph\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"xgriddiv=${1:number}\",\n      \"ygriddiv=${1:number}\",\n      \"gridstyle=${1:style}\",\n      \"gridcolor=\",\n      \"gridwidth=\",\n      \"xticksize=${1:number}\",\n      \"yticksize=${1:number}\",\n      \"xtagsep=${1:number}\",\n      \"ytagsep=${1:number}\",\n      \"xtagformat=${1:format commands}\",\n      \"ytagformat=${1:format commands}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"xlabelsep=${1:number}\",\n      \"ylabelsep=${1:number}\",\n      \"framewidth=\",\n      \"framecolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psAffinTransform\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psAffinTransform[${3:options%keyvals}]{${1:transformation matrix}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psAffinTransform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psAffinTransform{${1:transformation matrix}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pssetzlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetzlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psshadow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadow[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadow{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstilt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstilt[${3:options%keyvals}]{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psTilt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psTilt[${3:options%keyvals}]{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstilt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstilt{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psTilt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psTilt{${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeDput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ThreeDput(${2:x},${3:y},${4:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ThreeDput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"ThreeDput[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:stuff}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-3dplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstThreeDCoor\"\n    },\n    {\n      \"name\": \"pstThreeDCoor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstThreeDCoor[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pstThreeDCoor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psxyzlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psxyzlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDPlaneGrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstThreeDPlaneGrid(${1:xmin},${2:ymin})(${3:xmax},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDPlaneGrid\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstThreeDPlaneGrid[${1:options%keyvals}](${2:xmin},${3:ymin})(${4:xmax},${5:ymax})\",\n        \"keys\": [\n          \"\\\\pstThreeDPlaneGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstThreeDPut\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstThreeDPut(${2:x},${3:y},${4:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDPut\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstThreeDPut[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstPlanePut\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstPlanePut(${2:x},${3:y},${4:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstPlanePut\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstPlanePut[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDNode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstThreeDNode(${2:x},${3:y},${4:z}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDDot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pstThreeDDot(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDDot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"pstThreeDDot[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDTriangle\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pstThreeDTriangle(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})(${7:x3},${8:y3},${9:z3})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDTriangle\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pstThreeDTriangle[${1:options%keyvals}](${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2})(${8:x3},${9:y3},${10:z3})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDSquare\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pstThreeDSquare(${1:x0},${2:y0},${3:z0})(${4:x1},${5:y1},${6:z1})(${7:x2},${8:y2},${9:z2})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDSquare\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pstThreeDSquare[${1:options%keyvals}](${2:x0},${3:y0},${4:z0})(${5:x1},${6:y1},${7:z1})(${8:x2},${9:y2},${10:z2})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDBox\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"pstThreeDBox(${1:x0},${2:y0},${3:z0})(${4:x1},${5:y1},${6:z1})(${7:x2},${8:y2},${9:z2})(${10:x3},${11:y3},${12:z3})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDBox\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"pstThreeDBox[${1:options%keyvals}](${2:x0},${3:y0},${4:z0})(${5:x1},${6:y1},${7:z1})(${8:x2},${9:y2},${10:z2})(${11:x3},${12:y3},${13:z3})\"\n      }\n    },\n    {\n      \"name\": \"psBox\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psBox(${4:x},${5:y},${6:z}){${1:width}}{${2:depth}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"psBox\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psBox[${4:options%keyvals}](${5:x},${6:y},${7:z}){${1:width}}{${2:depth}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDEllipse\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pstThreeDEllipse(${1:cx},${2:cy},${3:cz})(${4:ux},${5:uy},${6:uz})(${7:vx},${8:vy},${9:vz})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pstThreeDEllipse[${1:options%keyvals}](${2:cx},${3:cy},${4:cz})(${5:ux},${6:uy},${7:uz})(${8:vx},${9:vy},${10:vz})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDCircle\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pstThreeDCircle(${1:cx},${2:cy},${3:cz})(${4:ux},${5:uy},${6:uz})(${7:vx},${8:vy},${9:vz})\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDCircle\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pstThreeDCircle[${1:options%keyvals}](${2:cx},${3:cy},${4:cz})(${5:ux},${6:uy},${7:uz})(${8:vx},${9:vy},${10:vz})\"\n      }\n    },\n    {\n      \"name\": \"pstIIIDCylinder\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstIIIDCylinder(${3:x},${4:y},${5:z}){${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstIIIDCylinder\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstIIIDCylinder[${3:options%keyvals}](${4:x},${5:y},${6:z}){${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psCylinder\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psCylinder(${3:x},${4:y},${5:z}){${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psCylinder\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psCylinder[${3:options%keyvals}](${4:x},${5:y},${6:z}){${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstParaboloid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstParaboloid{${1:height}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstParaboloid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstParaboloid[${3:options%keyvals}]{${1:height}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDSphere\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstThreeDSphere(${2:x},${3:y},${4:z}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDSphere\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstThreeDSphere[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psplotThreeD\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psplotThreeD(${2:xmin},${3:xmax})(${4:ymin},${5:ymax}){${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotThreeD\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psplotThreeD[${2:options%keyvals}](${3:xmin},${4:xmax})(${5:ymin},${6:ymax}){${1:function%definition}}\",\n        \"keys\": [\n          \"\\\\psplotThreeD#c,\\\\parametricplotThreeD#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parametricplotThreeD\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"parametricplotThreeD(${2:t1},${3:t2})(${4:u1},${5:u2}){${1:functions x y z%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotThreeD\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"parametricplotThreeD[${2:options%keyvals}](${3:t1},${4:t2})(${5:u1},${6:u2}){${1:functions x y z%definition}}\",\n        \"keys\": [\n          \"\\\\psplotThreeD#c,\\\\parametricplotThreeD#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parametricplotThreeD\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"parametricplotThreeD(${2:t1},${3:t2}){${1:functions x y z%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotThreeD\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"parametricplotThreeD[${2:options%keyvals}](${3:t1},${4:t2}){${1:functions x y z%definition}}\",\n        \"keys\": [\n          \"\\\\psplotThreeD#c,\\\\parametricplotThreeD#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fileplotThreeD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileplotThreeD{${1:datafile%file}}\"\n      }\n    },\n    {\n      \"name\": \"fileplotThreeD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fileplotThreeD[${2:options%keyvals}]{${1:datafile%file}}\"\n      }\n    },\n    {\n      \"name\": \"dataplotThreeD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dataplotThreeD{${1:data object}}\"\n      }\n    },\n    {\n      \"name\": \"dataplotThreeD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dataplotThreeD[${2:options%keyvals}]{${1:data object}}\"\n      }\n    },\n    {\n      \"name\": \"listplotThreeD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listplotThreeD{${1:data object}}\"\n      }\n    },\n    {\n      \"name\": \"listplotThreeD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listplotThreeD[${2:options%keyvals}]{${1:data object}}\"\n      }\n    },\n    {\n      \"name\": \"ScalePointsThreeD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstRotPointIIID\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstRotPointIIID(${4:x},${5:y},${6:z}){${1:xmacro%cmd}}{${2:ymacro%cmd}}{${3:zmacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstRotPointIIID\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstRotPointIIID[${4:options%keyvals}](${5:x},${6:y},${7:z}){${1:xmacro%cmd}}{${2:ymacro%cmd}}{${3:zmacro%cmd}}\",\n        \"keys\": [\n          \"\\\\pstRotPointIIID#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getThreeDCoor\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"getThreeDCoor(${2:vector}){${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstaddThreeDVec\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstaddThreeDVec(${4:vectorA})(${5:vectorB}){${1:xmacro%cmd}}{${2:ymacro%cmd}}{${3:zmacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstsubThreeDVec\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstsubThreeDVec(${4:vectorA})(${5:vectorB}){${1:xmacro%cmd}}{${2:ymacro%cmd}}{${3:zmacro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setIIIDplotDefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ABinterCD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"ABinterCD(${2:A})(${3:B})(${4:C})(${5:D}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Arrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Arrows(${1:A})(${2:B})\"\n      }\n    },\n    {\n      \"name\": \"Arrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Arrows[${1:options%keyvals}](${2:A})(${3:B})\"\n      }\n    },\n    {\n      \"name\": \"CalculateCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculateCos{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"CalculateSin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculateSin{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"NormalIIIDCoor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Parallel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"Parallel(${2:A})(${3:B})(${4:C})(${5:D}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Parallel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"Parallel[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UseCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseCos{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"UseSin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseSin{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"arrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"arrowLine(${2:A})(${3:B}){${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"arrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"arrowLine[${2:options%keyvals}](${3:A})(${4:B}){${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"noPT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noPT{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nodeBetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"nodeBetween(${2:A})(${3:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psBeforeLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBeforeLine(${2:A})(${3:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psBeforeLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBeforeLine[${2:options%keyvals}](${3:A})(${4:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psOutLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psOutLine(${2:A})(${3:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psOutLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psOutLine[${2:options%keyvals}](${3:A})(${4:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImpIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psplotImpIIID(${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2}){${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImpIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"psplotImpIIID(${3:x1},${4:y1},${5:z1})(${6:x2},${7:y2},${8:z2})[${2:PS code}]{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pstAdd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstAdd{${1:num1}}{${2:num2}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstDiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstDiv{${1:num1}}{${2:num2}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstIIIDNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()()()\",\n        \"snippet\": \"pstIIIDNode(${1:A})(${2:B})(${3:C})(${4:D})(${5:E})\"\n      }\n    },\n    {\n      \"name\": \"pstIIIDNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()()()()\",\n        \"snippet\": \"pstIIIDNode[${1:options%keyvals}](${2:A})(${3:B})(${4:C})(${5:D})(${6:E})\"\n      }\n    },\n    {\n      \"name\": \"pstMul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstMul{${1:num1}}{${2:num2}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstRotNodeIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pstRotNodeIIID(${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pstSinCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstSinCos{${1:angle}}{${2:sine macro%cmd}}{${3:cosine macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstSub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstSub{${1:num1}}{${2:num2}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDCone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"pstThreeDCone(${2:cx},${3:cy},${4:cz})(${5:ux},${6:uy},${7:uz})(${8:vx},${9:vy},${10:vz}){${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDCone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"pstThreeDCone[${2:options%keyvals}](${3:cx},${4:cy},${5:cz})(${6:ux},${7:uy},${8:uz})(${9:vx},${10:vy},${11:vz}){${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstThreeDPrism\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstThreeDmoveto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pstThreeDmoveto(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"pstUThreeDPut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstUThreeDPut(${2:x},${3:y},${4:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstUThreeDPut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstUThreeDPut[${2:refangle}](${3:x},${4:y},${5:z}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rotateFrame\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"rotateFrame(${2:A})(${3:B})(${4:C})(${5:D}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotateNode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rotateNode(${2:A}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotateTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"rotateTriangle(${2:A})(${3:B})(${4:C}){${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"pszunit\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pstThreeDCoor#c\": [\n      \"drawing\",\n      \"Alpha=${1:degrees}\",\n      \"Beta=${1:degrees}\",\n      \"xMin=${1:number}\",\n      \"xMax=${1:number}\",\n      \"yMin=${1:number}\",\n      \"yMax=${1:number}\",\n      \"zMin=${1:number}\",\n      \"zMax=${1:number}\",\n      \"nameX=${1:name}\",\n      \"spotX=${1:degrees}\",\n      \"nameY=${1:name}\",\n      \"spotY=${1:degrees}\",\n      \"nameZ=${1:name}\",\n      \"spotZ=${1:degrees}\",\n      \"IIIDticks\",\n      \"IIIDlabels\",\n      \"Dx=${1:number}\",\n      \"Dy=${1:number}\",\n      \"Dz=${1:number}\",\n      \"IIIDxTicksPlane=${1|xy,xz,yz|}\",\n      \"IIIDyTicksPlane=${1|xy,xz,yz|}\",\n      \"IIIDzTicksPlane=${1|xy,xz,yz|}\",\n      \"IIIDticksize=${1:number}\",\n      \"IIIDxticksep=${1:number}\",\n      \"IIIDyticksep=${1:number}\",\n      \"IIIDzticksep=${1:number}\",\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\",\n      \"RotAngle=${1:degrees}\",\n      \"xRotVec=${1:degrees}\",\n      \"yRotVec=${1:degrees}\",\n      \"zRotVec=${1:degrees}\",\n      \"RotSequence=${1|xyz,xzy,yxz,yzx,zxy,zyx,quaternion|}\",\n      \"RotSet=${1|set,concat,keep|}\",\n      \"eulerRotation\",\n      \"IIIDOffset={(${1:x,y,z})}\",\n      \"zlabelFactor=${1:text}\",\n      \"comma\",\n      \"linewidth=\",\n      \"linecolor=\",\n      \"planecorr=${1|off,normal,xyrot|}\",\n      \"linestyle=${1:style}\"\n    ],\n    \"\\\\pstThreeDPlaneGrid#c\": [\n      \"planeGrid=${1|xy,xz,yz|}\",\n      \"subticks=${1:integer}\",\n      \"planeGridOffset=${1:number}\"\n    ],\n    \"\\\\psplotThreeD#c,\\\\parametricplotThreeD#c\": [\n      \"plotstyle=${1|dots,line,polygon,curve,ecurve,ccurve,none|}\",\n      \"showpoints\",\n      \"xPlotpoints=${1:number}\",\n      \"yPlotpoints=${1:number}\",\n      \"drawStyle=${1|xLines,yLines,xyLines,yxLines|}\",\n      \"hiddenLine\",\n      \"algebraic\",\n      \"linewidth=\",\n      \"fillstyle=${1:style}\",\n      \"linecolor=\"\n    ],\n    \"\\\\pstRotPointIIID#c\": [\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-abspos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstSetRelativeOrigin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pstSetRelativeOrigin(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"pstSetAbsoluteOrigin\"\n    },\n    {\n      \"name\": \"pstSetPostScriptOrigin\"\n    },\n    {\n      \"name\": \"pstPutAbs\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstPutAbs(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstPutAbs\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstPutAbs[${2:options%keyvals}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-abspos#c\": [\n      \"notitlepage\",\n      \"absolute\",\n      \"lowerleft\",\n      \"relative\",\n      \"PostScript\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-abspos#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-all.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-tree\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-coil\"\n    },\n    {\n      \"name\": \"pst-text\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-eps\"\n    },\n    {\n      \"name\": \"pst-fill\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-am.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psAM\"\n    },\n    {\n      \"name\": \"psAM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psAM[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psAM\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psAM\": [\n      \"BW\",\n      \"C=${1:capacitance in F}\",\n      \"Centering\",\n      \"enveloppe\",\n      \"frequenceAudio=${1:modulated signal frequency in Hz}\",\n      \"frequencePorteuse=${1:carrier frequency in Hz}\",\n      \"linewidth=\",\n      \"R=${1:resistance in Ω}\",\n      \"SignalDemodule\",\n      \"SignalFinal\",\n      \"SignalModulant\",\n      \"SignalModule\",\n      \"SignalPorteuse\",\n      \"SignalRedresse\",\n      \"timeDiv=${1:time base in s/div}\",\n      \"title=${1:text}\",\n      \"traceU\",\n      \"U0=${1:offset in V}\",\n      \"Um=${1:modulated signal amplitude in V}\",\n      \"UMandUm\",\n      \"Up=${1:carrier amplitude in V}\",\n      \"values\",\n      \"voltDivY1=${1:coeff in V/div}\",\n      \"voltDivY2=${1:coeff in V/div}\",\n      \"XY\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-antiprism.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-solides3d\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psAntiprism\"\n    },\n    {\n      \"name\": \"psAntiprism\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psAntiprism[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psAntiprism#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psAntiprism#c\": [\n      \"a=${1:radius}\",\n      \"action=${1|none,draw,draw*,draw**,writesolid,writeobj,writeoff|}\",\n      \"affinage=${1|0,1,2,3,all|}\",\n      \"affinagecoeff=${1:factor}\",\n      \"affinagerm\",\n      \"colored\",\n      \"deactivatecolor\",\n      \"fan\",\n      \"fillcolor=\",\n      \"hollow\",\n      \"hue=${1:hue spec}\",\n      \"incolor=\",\n      \"inouthue=${1:hue spec}\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"meshbases\",\n      \"n=${1:number of edges}\",\n      \"name=${1:name}\",\n      \"numfaces=${2|0,1,2,3,all,${1:PS code}|}\",\n      \"opacity=${1:factor}\",\n      \"plansepare={[${1:a b c d}]}\",\n      \"rm=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-arrow.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psBigArrow\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psBigArrow(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psBigArrow\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psBigArrow[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-bar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"readpsbardata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readpsbardata{${1:macro%cmd}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"readpsbardata\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"readpsbardata[${3:options%keyvals}]{${1:macro%cmd}}{${2:filename%file}}\",\n        \"keys\": [\n          \"\\\\readpsbardata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psbarchart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psbarchart{${1:data macro}}\"\n      }\n    },\n    {\n      \"name\": \"psbarchart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psbarchart[${2:options%keyvals}]{${1:data macro}}\",\n        \"keys\": [\n          \"\\\\psbarchart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newpsbarstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpsbarstyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"psbarlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psbarlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psbarlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psbarscale\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psbarscale(${2:scale}){${1:PostScript code}}\"\n      }\n    },\n    {\n      \"name\": \"setbarstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbarstyle{${1:style}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\readpsbardata#c\": [\n      \"header\"\n    ],\n    \"\\\\psbarchart#c\": [\n      \"chartstyle=${1|cluster,stack,block|}\",\n      \"barstyle={${1:style list}}\",\n      \"barcolsep=${1:factor}\",\n      \"barsep=${1:factor}\",\n      \"barlabelrot=${1:degrees}\",\n      \"orientation=${1|vertical,horizontal|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-barcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"marginnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psbarcode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psbarcode{${1:text or filename%file}}{${2:PS options}}{${3:barcode type}}\"\n      }\n    },\n    {\n      \"name\": \"psbarcode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psbarcode[${4:options%keyvals}]{${1:text or filename%file}}{${2:PS options}}{${3:barcode type}}\",\n        \"keys\": [\n          \"\\\\psbarcode#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QR{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"QR<label>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QR<label>{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"QR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"QR[${2:scale}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"QR\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"QR[${2:scale}]<${3:label}>{${1:URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psbarcode#c\": [\n      \"fontstyle=${1:font commands}\",\n      \"transx=${1:number}\",\n      \"transy=${1:number}\",\n      \"scalex=${1:factor}\",\n      \"scaley=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"file\",\n      \"linecolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-bezier.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psRQBCmasse\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psRQBCmasse(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2}){${1:w0,w1,w2}}\"\n      }\n    },\n    {\n      \"name\": \"psRQBCmasse\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"psRQBCmasse[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:w0,w1,w2}}\",\n        \"keys\": [\n          \"\\\\psRQBCmasse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pscalculate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscalculate{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"defopt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]args{}\",\n        \"snippet\": \"defopt{${1:macro%cmd}}{${2:default}}[${4:optargs}]args{${3:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psbcurve\": [\n      \"bcurveTension=${1:value}\",\n      \"dash=${1:a b}\",\n      \"fillcolor=\",\n      \"fillstyle=${1:style}\",\n      \"linecolor=\",\n      \"linestyle=${1:style}\",\n      \"linewidth=\",\n      \"showpoints\"\n    ],\n    \"\\\\psRQBCmasse\": [\n      \"autoTrace\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"nPoints=${1:number}\",\n      \"showpoints\",\n      \"showPolygon\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-blur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psblurbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psblurbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psblurbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psblurbox[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ifpsblur\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psblurtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psblurfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-bspline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psBsplineNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBsplineNodes{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineNodes\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBsplineNodes[${3:options%keyvals}]{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineNodesE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBsplineNodesE{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineNodesE\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBsplineNodesE[${3:options%keyvals}]{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineNodesC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBsplineNodesC{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineNodesC\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBsplineNodesC[${3:options%keyvals}]{${1:node-root}}{${2:top-index}}\"\n      }\n    },\n    {\n      \"name\": \"bspcurvepoints\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bspcurvepoints{${1:source-name}}{${2:source-max-index}}{${3:dest-name}}\"\n      }\n    },\n    {\n      \"name\": \"bspcurvepoints\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bspcurvepoints[${4:options%keyvals}]{${1:source-name}}{${2:source-max-index}}{${3:dest-name}}\"\n      }\n    },\n    {\n      \"name\": \"bspcurvepointsE\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bspcurvepointsE{${1:source-name}}{${2:source-max-index}}{${3:dest-name}}\"\n      }\n    },\n    {\n      \"name\": \"bspcurvepointsE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"bspcurvepointsE[${4:options%keyvals}]{${1:source-name}}{${2:source-max-index}}{${3:dest-name}}\"\n      }\n    },\n    {\n      \"name\": \"bspNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bspNode{${1:control-point-root}}{${2:top-index}}{${3:t}}{${4:node-name}}\"\n      }\n    },\n    {\n      \"name\": \"bspFnNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bspFnNode{${1:control-point-root}}{${2:top-index}}{${3:x0}}{${4:node-name}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineInterp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBsplineInterp{${1:node-root}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"psBsplineInterpC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBsplineInterpC{${1:node-root}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"bspcurvenodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bspcurvenodes{${1:node-root1}}{${2:node-root2}}\"\n      }\n    },\n    {\n      \"name\": \"thickBspline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"thickBspline{${1:node-root}}{${2:nsegments}}{${3:thickness}}{${4:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBEspline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"thickBEspline{${1:node-root}}{${2:nsegments}}{${3:max-thickness}}{${4:min-thickness}}{${5:angle}}{${6:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBdraw\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"thickBdraw{${1:node-root}}{${2:max-thickness}}{${3:min-thickness}}{${4:angle}}{${5:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBsplinePen\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"thickBsplinePen{${1:node-root}}{${2:nsegments}}{${3:max-thickness}}{${4:min-thickness}}{${5:angle}}{${6:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBsplinePen\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"thickBsplinePen[${7:options%keyvals}]{${1:node-root}}{${2:nsegments}}{${3:max-thickness}}{${4:min-thickness}}{${5:angle}}{${6:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBsplinePenE\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"thickBsplinePenE{${1:node-root}}{${2:nsegments}}{${3:max-thickness}}{${4:min-thickness}}{${5:angle}}{${6:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"thickBsplinePenE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"thickBsplinePenE[${7:options%keyvals}]{${1:node-root}}{${2:nsegments}}{${3:max-thickness}}{${4:min-thickness}}{${5:angle}}{${6:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"refreshbspopts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psBsplineMain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnodesX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noderoot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-calculate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psCalculate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCalculate{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psCalculate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCalculate[${2:siunitx options%keyvals}]{${1:expr%definition}}\",\n        \"keys\": [\n          \"\\\\psCalculate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pscalculate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscalculate{${1:expr%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-calculate#c\": [\n      \"useComma\",\n      \"roundDigit=${1:number}\"\n    ],\n    \"\\\\psCalculate#c\": [\n      \"color=\",\n      \"mode=${1|match,math,text|}\",\n      \"number-color=\",\n      \"number-mode=${1|match,math,text|}\",\n      \"propagate-math-font\",\n      \"reset-math-version\",\n      \"reset-text-family\",\n      \"reset-text-series\",\n      \"reset-text-shape\",\n      \"text-family-to-math\",\n      \"text-font-command=${1:commands}\",\n      \"text-series-to-math\",\n      \"unit-color=\",\n      \"unit-mode=${1|match,math,text|}\",\n      \"evaluate-expression\",\n      \"expression=${1:expression}\",\n      \"input-close-uncertainty=${1:symbols}\",\n      \"input-comparators=${1:symbols}\",\n      \"input-decimal-markers=${1:symbols}\",\n      \"input-digits=${1:symbols}\",\n      \"input-exponent-markers=${1:symbols}\",\n      \"input-ignore=${1:symbols}\",\n      \"input-open-uncertainty=${1:symbols}\",\n      \"input-signs=${1:symbols}\",\n      \"input-uncertainty-signs=${1:symbols}\",\n      \"parse-numbers\",\n      \"retain-explicit-decimal-marker\",\n      \"retain-explicit-plus\",\n      \"retain-zero-uncertainty\",\n      \"drop-exponent\",\n      \"drop-uncertainty\",\n      \"drop-zero-decimal\",\n      \"exponent-mode=${1|input,fixed,engineering,scientific|}\",\n      \"fixed-exponent=${1:integer}\",\n      \"minimum-integer-digits=${1:integer}\",\n      \"minimum-decimal-digits=${1:integer}\",\n      \"round-half=${1|up,even|}\",\n      \"round-minimum=${1:number}\",\n      \"round-mode=${1|none,figures,places,uncertainty|}\",\n      \"round-pad\",\n      \"round-precision=${1:integer}\",\n      \"bracket-ambiguous-numbers\",\n      \"bracket-negative-numbers\",\n      \"exponent-base=${1:value}\",\n      \"exponent-product=${1:symbol}\",\n      \"group-digits=${1|none,decimal,integer|}\",\n      \"group-minimum-digits=${1:integer}\",\n      \"group-separator=${1:separator}\",\n      \"negative-color=\",\n      \"output-close-uncertainty=${1:symbol}\",\n      \"output-decimal-marker=${1:symbol}\",\n      \"output-exponent-marker=${1:symbol}\",\n      \"output-open-uncertainty=${1:symbol}\",\n      \"print-implicit-plus\",\n      \"print-unity-mantissa\",\n      \"print-zero-exponent\",\n      \"print-zero-integer\",\n      \"separate-uncertainty\",\n      \"tight-spacing\",\n      \"uncertainty-mode=${1|separate,compact,compact-marker,full|}\",\n      \"uncertainty-separator=${1:separator}\",\n      \"locale=${1|DE,UK,US,ZA,FR|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-calculate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-calendar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psCalendar\"\n    },\n    {\n      \"name\": \"psCalendar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psCalendar[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psCalendar,\\\\psCalDodecaeder\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psCalDodecaeder\"\n    },\n    {\n      \"name\": \"psCalDodecaeder\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psCalDodecaeder[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psCalendar,\\\\psCalDodecaeder\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-calendar#c\": [\n      \"english\",\n      \"french\",\n      \"ngerman\"\n    ],\n    \"\\\\psCalendar,\\\\psCalDodecaeder\": [\n      \"Year=${1:integer}\",\n      \"Month=${1:integer}\",\n      \"MonthUse=${1:integer}\",\n      \"Day=${1:integer}\",\n      \"style=${1:month}\",\n      \"Jour=${1:integer}\",\n      \"MoisChoisi=${1:integer}\",\n      \"Mois=${1:integer}\",\n      \"An=${1:integer}\",\n      \"Tag=${1:integer}\",\n      \"MonatT=${1:integer}\",\n      \"Monat=${1:integer}\",\n      \"Jahr=${1:integer}\",\n      \"Vx=${1:integer}\",\n      \"Vy=${1:integer}\",\n      \"Vz=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-calendar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-char.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"endpscharclip\"\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip*[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath*[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath*{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"charclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:par}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"charclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-cie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psChromaticityDiagram\"\n    },\n    {\n      \"name\": \"psChromaticityDiagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psChromaticityDiagram[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psChromaticityDiagram\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstCIEcontour\"\n    },\n    {\n      \"name\": \"pstCIEcontour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstCIEcontour[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstPlanck\"\n    },\n    {\n      \"name\": \"pstPlanck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstPlanck[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"txCIEdictBegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CIEdefaultYear\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psChromaticityDiagram\": [\n      \"gamma=${1:number}\",\n      \"contrast=${1:number}\",\n      \"ColorSpace=${1|Adobe,CIE,ColorMatch,NTSC,Pal-Secam,ProPhoto,SMPTE,sRGB|}\",\n      \"datas=${1:name}\",\n      \"primaries\",\n      \"trianglecolor=\",\n      \"bgcolor=\",\n      \"textcolor=\",\n      \"Planck\",\n      \"showcontour\",\n      \"Tfontsize=\",\n      \"unit=${1:number}\",\n      \"PSfont=${1:font name}\",\n      \"fontscale=${1:scale in pts}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-circ.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"wire(${1:A})(${2:B})\"\n      }\n    },\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"wire[${1:options%keyvals}](${2:A})(${3:B})\"\n      }\n    },\n    {\n      \"name\": \"tension\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tension(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tension\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"tension[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ground(${1:A})\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"ground{${1:angle}}(${2:A})\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"ground[${1:options%keyvals}](${2:A})\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"ground[${2:options%keyvals}]{${1:angle}}(${3:A})\"\n      }\n    },\n    {\n      \"name\": \"resistor\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"resistor(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"resistor\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"resistor[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RFLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"RFLine(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RFLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"RFLine[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"capacitor\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"capacitor(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"capacitor\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"capacitor[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"battery\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"battery(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"battery\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"battery[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"coil\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"coil(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"coil\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"coil[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ucc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Ucc(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ucc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"Ucc[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Icc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Icc(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Icc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"Icc[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"switch(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"switch[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"arrowswitch\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"arrowswitch(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"arrowswitch\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"arrowswitch[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"diode\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"diode(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"diode\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"diode[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Zener\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Zener(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Zener\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"Zener[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lamp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"lamp(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lamp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"lamp[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"circledipole\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"circledipole(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"circledipole\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"circledipole[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"LED\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"LED(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"LED\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"LED[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SQUID\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"SQUID(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SQUID\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"SQUID[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RelayNOP\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"RelayNOP(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RelayNOP\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"RelayNOP[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Suppressor\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Suppressor(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Suppressor\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"Suppressor[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Arrestor\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"Arrestor(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Arrestor\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"Arrestor[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"cell(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"cell\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"cell[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"igbt\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"igbt(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"igbt\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"igbt[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"OA\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"OA(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"OA\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"OA[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    },\n    {\n      \"name\": \"GM\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"GM(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"GM\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"GM[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    },\n    {\n      \"name\": \"Tswitch\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"Tswitch(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"Tswitch\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"Tswitch[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    },\n    {\n      \"name\": \"potentiometer\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"potentiometer(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"potentiometer\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"potentiometer[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    },\n    {\n      \"name\": \"transistor\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"transistor(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"transistor\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"transistor[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    },\n    {\n      \"name\": \"quadripole\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"quadripole(${2:A})(${3:B})(${4:C})(${5:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"quadripole\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"quadripole[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"transformer\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"transformer(${2:A})(${3:B})(${4:C})(${5:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"transformer\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"transformer[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtransformer\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"newtransformer(${2:A})(${3:B})(${4:C})(${5:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtransformer\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"newtransformer[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtransformerquad\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"newtransformerquad(${2:A})(${3:B})(${4:C})(${5:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"newtransformerquad\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"newtransformerquad[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"optoCoupler\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"optoCoupler(${2:A})(${3:B})(${4:C})(${5:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"optoCoupler\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"optoCoupler[${2:options%keyvals}](${3:A})(${4:B})(${5:C})(${6:D}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"multidipole\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"multidipole(${1:A})(${2:B})\"\n      }\n    },\n    {\n      \"name\": \"multidipole\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"multidipole[${1:options%keyvals}](${2:A})(${3:B})\"\n      }\n    },\n    {\n      \"name\": \"OpenDipol\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"OpenDipol(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"OpenDipol\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"OpenDipol[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"OpenTripol\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"OpenTripol(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"OpenTripol\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"OpenTripol[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dashpot\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"dashpot(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"dashpot\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"dashpot[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newground\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"newground(${1:A})\"\n      }\n    },\n    {\n      \"name\": \"newground\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"newground{${1:angle}}(${2:A})\"\n      }\n    },\n    {\n      \"name\": \"newground\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"newground[${1:options%keyvals}](${2:A})\"\n      }\n    },\n    {\n      \"name\": \"newground\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"newground[${2:options%keyvals}]{${1:angle}}(${3:A})\"\n      }\n    },\n    {\n      \"name\": \"newdiode\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newdiode(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newdiode\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newdiode[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newZener\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newZener(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newZener\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newZener[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newLED\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newLED(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newLED\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newLED[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newSwitch\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newSwitch(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newSwitch\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newSwitch[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newcapacitor\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newcapacitor(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newcapacitor\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newcapacitor[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newarmature\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"newarmature(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newarmature\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"newarmature[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vdc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"vdc(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vdc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"vdc[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vac\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"vac(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vac\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"vac[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"antenna\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"antenna(${1:A})\"\n      }\n    },\n    {\n      \"name\": \"antenna\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"antenna{${1:angle}}(${2:A})\"\n      }\n    },\n    {\n      \"name\": \"antenna\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"antenna[${1:options%keyvals}](${2:A})\"\n      }\n    },\n    {\n      \"name\": \"antenna\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"antenna[${2:options%keyvals}]{${1:angle}}(${3:A})\"\n      }\n    },\n    {\n      \"name\": \"oscillator\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"oscillator(${3:A}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"oscillator\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"oscillator[${3:options%keyvals}](${4:A}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"filter(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"filter[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"isolator\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"isolator(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"isolator\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"isolator[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"freqmult\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"freqmult(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"freqmult\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"freqmult[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"phaseshifter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"phaseshifter(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"phaseshifter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"phaseshifter[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vco\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"vco(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vco\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"vco[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"amplifier\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"amplifier(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"amplifier\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"amplifier[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"detector\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"detector(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"detector\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"detector[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"attenuator\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"attenuator(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"attenuator\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"attenuator[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mixer\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"mixer(${3:A})(${4:B})(${5:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"mixer\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"mixer[${3:options%keyvals}](${4:A})(${5:B})(${6:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"splitter\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"splitter(${3:A})(${4:B})(${5:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"splitter\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"splitter[${3:options%keyvals}](${4:A})(${5:B})(${6:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"circulator\",\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"circulator{${1:angle}}(${4:A})(${5:B})(${6:C}){${2:label}}{${3:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"circulator\",\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"circulator[${4:options%keyvals}]{${1:angle}}(${5:A})(${6:B})(${7:C}){${2:label}}{${3:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"agc\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"agc(${3:A})(${4:B})(${5:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"agc\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"agc[${3:options%keyvals}](${4:A})(${5:B})(${6:C}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"coupler\",\n      \"arg\": {\n        \"format\": \"()()()(){}{}\",\n        \"snippet\": \"coupler(${3:A})(${4:B})(${5:C})(${6:D}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"coupler\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}{}\",\n        \"snippet\": \"coupler[${3:options%keyvals}](${4:A})(${5:B})(${6:C})(${7:D}){${1:label}}{${2:pstricks options}}\"\n      }\n    },\n    {\n      \"name\": \"logic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logic{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logic\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logic(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"logic[${2:options%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logic\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logic[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicnot\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicnot(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicnot\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicnot[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicand\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicand(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicand\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicand[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicor\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicor(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicor\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicor[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicxor\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicxor(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicxor\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicxor[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicff\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicff(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicff\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicff[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicic\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"logicic(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"logicic\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"logicic[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sevensegmentdisplay\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"sevensegmentdisplay(${2:x},${3:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sevensegmentdisplay\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"sevensegmentdisplay[${2:options%keyvals}](${3:x},${4:y}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xic\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"xic(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"xic\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"xic[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"xio\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"xio(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"xio\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"xio[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"ote\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ote(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"ote\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"ote[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"osr\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"osr(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"osr\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"osr[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"res\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"res(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"res\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"res[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"swpb\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"swpb(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"swpb\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"swpb[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"swtog\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"swtog(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"swtog\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"swtog[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"contact\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"contact(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"contact\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"contact[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"armature\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"armature(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"armature\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"armature[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"newCircDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newCircDipole{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newCircDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newCircDipole[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"icheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"node\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"node(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"modulator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"modulator(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"modulator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"modulator[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"plug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"plug{${1:angle}}(${2:A})\"\n      }\n    },\n    {\n      \"name\": \"plug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"plug[${2:options%keyvals}]{${1:angle}}(${3:A})\"\n      }\n    },\n    {\n      \"name\": \"ampsinu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"ampsinu(${2:A})(${3:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ampsinu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"ampsinu[${2:options%keyvals}](${3:A})(${4:B}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"powermeter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"powermeter(${2:A})(${3:B})(${4:C}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"powermeter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"powermeter[${2:options%keyvals}](${3:A})(${4:B})(${5:C}){${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-coil.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscoil(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscoil{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscoil[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscoil[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscoil*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscoil*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscoil*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pscoil*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscoil*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psCoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCoil{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCoil[${3:options%keyvals}]{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCoil*{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psCoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCoil*[${3:options%keyvals}]{${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pszigzag(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pszigzag{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pszigzag[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pszigzag[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pszigzag*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pszigzag*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pszigzag*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pszigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pszigzag*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pssin(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pssin{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pssin[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pssin[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pssin*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pssin*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pssin*[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pssin*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pssin*[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncsin{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncsin{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncsin[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncsin[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncsin*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncsin*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncsin*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncsin*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcsin{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pcsin{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pcsin[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pcsin[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcsin*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pcsin*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pcsin*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pcsin*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pcsin*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psAltCoil(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psAltCoil{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psAltCoil[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psAltCoil\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psAltCoil[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-contourplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psContourPlot\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psContourPlot[${1:function=function}](${2:%<x1},${3:y1%>})(${4:%<x2},${5:y2%>})\"\n      }\n    },\n    {\n      \"name\": \"psContourPlot\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psContourPlot[${1:function=function,options}](${2:%<x1},${3:y1%>})(${4:%<x2},${5:y2%>})\"\n      }\n    },\n    {\n      \"name\": \"psReadData\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psReadData[${1:FileName=file name}]\"\n      }\n    },\n    {\n      \"name\": \"psReadData\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psReadData[${1:FileName=file name,options}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psContourPlot#c,\\\\psReadData#c\": [\n      \"a=${1:side length}\",\n      \"ChoicePoints=${1:n1 n2 ...}\",\n      \"FileName=${1:file name}\",\n      \"grid\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"ReverseColors\",\n      \"showpoints\",\n      \"unit=${1:number}\"\n    ],\n    \"\\\\psContourPlot#c\": [\n      \"algebraic\",\n      \"Fill\",\n      \"fillcolor=\",\n      \"function=${1:function}\",\n      \"WriteData\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-coxcoor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CoxeterCoordinates\"\n    },\n    {\n      \"name\": \"CoxeterCoordinates\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CoxeterCoordinates[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pscolorVertices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscolorCenters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscolorCentersFaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscolorCentersCells\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeVertices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeCenters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeCentersFaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeCentersCells\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-coxeterp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Polygon\"\n    },\n    {\n      \"name\": \"Polygon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Polygon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Simplex\"\n    },\n    {\n      \"name\": \"Simplex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Simplex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"gammapn\"\n    },\n    {\n      \"name\": \"gammapn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gammapn[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"betapn\"\n    },\n    {\n      \"name\": \"betapn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"betapn[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"gammaptwo\"\n    },\n    {\n      \"name\": \"gammaptwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gammaptwo[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"betaptwo\"\n    },\n    {\n      \"name\": \"betaptwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"betaptwo[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pscolorVertices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscolorCenters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeVertices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssizeCenters\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-dart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psDartBoard\"\n    },\n    {\n      \"name\": \"psDartBoard\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psDartBoard(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psDartBoard\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psDartBoard[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psDartBoard#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psDartBoard\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psDartBoard[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psDartBoard#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psDart\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psDart(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psDart\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psDart[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psDart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psDartBoard#c\": [\n      \"fontsize=\",\n      \"unit=${1:number}\",\n      \"viewpoint=${1:x y z}\",\n      \"preCode=${1:code}\",\n      \"postCode=${1:code}\"\n    ],\n    \"\\\\psDart#c\": [\n      \"rot=${1:degrees}\",\n      \"unit=${1:number}\",\n      \"dartcolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-dbicons.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"seticonparams\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seticonparams{${1:icon-type}}{${2:params}}\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entity{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"entity{${1:id}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"entity[${2:property}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"entity[${2:property}]{${1:id}}[${3:text}]\"\n      }\n    },\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attribute{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"attribute{${1:id}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"attribute[${2:property}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"attribute\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"attribute[${2:property}]{${1:id}}[${3:text}]\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"attributeof{${1:id}}{${2:angle}}{${3:id2}}\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"attributeof{${1:id}}{${2:angle}}{${3:id2}}[${4:text}]\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"attributeof{${1:id}}{${2:angle}}[${4:property}]{${3:id2}}\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"attributeof{${1:id}}{${2:angle}}[${4:property}]{${3:id2}}[${5:text}]\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"attributeof{${1:id}}[${4:dist}]{${2:angle}}{${3:id2}}\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"attributeof{${1:id}}[${4:dist}]{${2:angle}}[${5:property}]{${3:id2}}\"\n      }\n    },\n    {\n      \"name\": \"attributeof\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}[]\",\n        \"snippet\": \"attributeof{${1:id}}[${4:dist}]{${2:angle}}[${5:property}]{${3:id2}}[${6:text}]\"\n      }\n    },\n    {\n      \"name\": \"attrdist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attrdist{${1:dist}}\"\n      }\n    },\n    {\n      \"name\": \"relationship\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relationship{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"relationship\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"relationship{${1:id}}[${2:text}]\"\n      }\n    },\n    {\n      \"name\": \"relationship\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"relationship[${2:property}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"relationship\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"relationship[${2:property}]{${1:id}}[${3:text}]\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"relationshipbetween{${1:entity-id1}}{${2:entity-id2}}{${3:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"relationshipbetween{${1:entity-id1}}{${2:entity-id2}}{${3:relationship-id}}[${4:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"relationshipbetween[${4:property}]{${1:entity-id1}}{${2:entity-id2}}{${3:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"relationshipbetween[${4:property}]{${1:entity-id1}}{${2:entity-id2}}{${3:relationship-id}}[${5:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"{}()[]{}()[]{}\",\n        \"snippet\": \"relationshipbetween{${1:entity-id1}}(${6:role1})[${4:card1}]{${2:entity-id2}}(${7:role2})[${5:card2}]{${3:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"{}()[]{}()[]{}[]\",\n        \"snippet\": \"relationshipbetween{${1:entity-id1}}(${7:role1})[${4:card1}]{${2:entity-id2}}(${8:role2})[${5:card2}]{${3:relationship-id}}[${6:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}()[]{}\",\n        \"snippet\": \"relationshipbetween[${4:property}]{${1:entity-id1}}(${7:role1})[${5:card1}]{${2:entity-id2}}(${8:role2})[${6:card2}]{${3:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"relationshipbetween\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}()[]{}[]\",\n        \"snippet\": \"relationshipbetween[${4:property}]{${1:entity-id1}}(${8:role1})[${5:card1}]{${2:entity-id2}}(${9:role2})[${6:card2}]{${3:relationship-id}}[${7:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inrelationship{${1:entity-id}}{${2:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"inrelationship{${1:entity-id}}{${2:relationship-id}}[${3:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inrelationship[${3:property}]{${1:entity-id}}{${2:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"inrelationship[${3:property}]{${1:entity-id}}{${2:relationship-id}}[${4:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"{}()[]{}\",\n        \"snippet\": \"inrelationship{${1:entity-id}}(${4:role})[${3:card}]{${2:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"{}()[]{}[]\",\n        \"snippet\": \"inrelationship{${1:entity-id}}(${5:role})[${3:card}]{${2:relationship-id}}[${4:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}\",\n        \"snippet\": \"inrelationship[${3:property}]{${1:entity-id}}(${5:role})[${4:card}]{${2:relationship-id}}\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}[]\",\n        \"snippet\": \"inrelationship[${3:property}]{${1:entity-id}}(${6:role})[${4:card}]{${2:relationship-id}}[${5:relationship-name}]\"\n      }\n    },\n    {\n      \"name\": \"inrelationship\",\n      \"arg\": {\n        \"format\": \"[]{}()[]{}[]()\",\n        \"snippet\": \"inrelationship[${3:property}]{${1:entity-id}}(${6:role})[${4:card}]{${2:relationship-id}}[${5:relationship-name}](${7:dist},${8:angle})\"\n      }\n    },\n    {\n      \"name\": \"rolepos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rolepos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cardpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cardpos{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"annote\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"annote{${1:id}}{${2:text}}(${3:dist},${4:angle})\"\n      }\n    },\n    {\n      \"name\": \"nodeconnections\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodeconnections{${1:node connections}}\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"database{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"database{${1:width}}{${2:height}}{${3:text}}[${4:id}]\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"database{${1:width}}{${2:height}}[${4:graph-params}]{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}[]\",\n        \"snippet\": \"database{${1:width}}{${2:height}}[${4:graph-params}]{${3:text}}[${5:id}]\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"database[${4:pos}]{${1:width}}{${2:height}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"database[${4:pos}]{${1:width}}{${2:height}}{${3:text}}[${5:id}]\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"database[${4:pos}]{${1:width}}{${2:height}}[${5:graph-params}]{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"database\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}[]\",\n        \"snippet\": \"database[${4:pos}]{${1:width}}{${2:height}}[${5:graph-params}]{${3:text}}[${6:id}]\"\n      }\n    },\n    {\n      \"name\": \"relationtype\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-diffraction.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-3dplot\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psdiffractionRectangle\"\n    },\n    {\n      \"name\": \"psdiffractionRectangle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psdiffractionRectangle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psdiffractionRectangle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psdiffractionCircular\"\n    },\n    {\n      \"name\": \"psdiffractionCircular\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psdiffractionCircular[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psdiffractionCircular\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psdiffractionTriangle\"\n    },\n    {\n      \"name\": \"psdiffractionTriangle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psdiffractionTriangle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psdiffractionTriangle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psdiffractionRectangle\": [\n      \"a=${1:area}\",\n      \"Alpha=${1:number}\",\n      \"colorMode=${1|0,1,2,3|}\",\n      \"contrast=${1:number}\",\n      \"f=${1:focal length}\",\n      \"IIID\",\n      \"k=${1:height}\",\n      \"lambda=${1:wavelength in nm}\",\n      \"pixel=${1:factor}\",\n      \"s=${1:distance}\",\n      \"twoSlit\"\n    ],\n    \"\\\\psdiffractionCircular\": [\n      \"colorMode=${1|0,1,2,3|}\",\n      \"contrast=${1:number}\",\n      \"d=${1:distance}\",\n      \"f=${1:focal length}\",\n      \"IIID\",\n      \"lambda=${1:wavelength in nm}\",\n      \"pixel=${1:factor}\",\n      \"r=${1:radius}\",\n      \"twoHole\"\n    ],\n    \"\\\\psdiffractionTriangle\": [\n      \"colorMode=${1|0,1,2,3|}\",\n      \"contrast=${1:number}\",\n      \"f=${1:focal length}\",\n      \"h=${1:height}\",\n      \"scale=${1:factor}\",\n      \"IIID\",\n      \"lambda=${1:wavelength in nm}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-electricfield.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psElectricfield\"\n    },\n    {\n      \"name\": \"psElectricfield\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psElectricfield[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psElectricfield#c,\\\\psEquipotential#c\",\n          \"\\\\psElectricfield#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psEquipotential\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psEquipotential(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psEquipotential\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psEquipotential[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\psElectricfield#c,\\\\psEquipotential#c\",\n          \"\\\\psEquipotential#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psElectricfield#c,\\\\psEquipotential#c\": [\n      \"Q={[${1:x1,y1,z1}][${2:x2,y2,z2}]${3:...}}\",\n      \"N=${1:integer}\",\n      \"linewidth=\",\n      \"linecolor=\"\n    ],\n    \"\\\\psElectricfield#c\": [\n      \"points=${1:integer}\",\n      \"Pas=${1:number}\",\n      \"posArrow=${1:factor}\",\n      \"radius=\",\n      \"runit=${1:number}\"\n    ],\n    \"\\\\psEquipotential#c\": [\n      \"Vmax=${1:number}\",\n      \"Vmin=${1:number}\",\n      \"stepV=${1:number}\",\n      \"stepFactor=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-eps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TeXtoEPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endTeXtoEPS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTtoEPS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PSTtoEPS{${1:file%file}}{${2:graphics objects}}\"\n      }\n    },\n    {\n      \"name\": \"PSTtoEPS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PSTtoEPS[${3:options%keyvals}]{${1:file%file}}{${2:graphics objects}}\",\n        \"keys\": [\n          \"\\\\PSTtoEPS\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"TeXtoEPS\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\PSTtoEPS\": [\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bburx=\",\n      \"makeeps=${1|none,new,all,all*|}\",\n      \"checkfile\",\n      \"headerfile=${1:file name}\",\n      \"headers=${1|none,all,user|}\",\n      \"GraphicsRef={${1:x,y}}\",\n      \"Translation={${1:x,y}}\",\n      \"Rotation=${1:angle}\",\n      \"Scale=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-eucl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    },\n    {\n      \"name\": \"pst-calculate\"\n    },\n    {\n      \"name\": \"pst-arrow\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstAbscissa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstAbscissa{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstOrdinate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstOrdinate{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstMoveNode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstMoveNode(${3:dx},${4:dy}){${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstMoveNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstMoveNode[${3:options%keyvals}](${4:dx},${5:dy}){${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstSegmentMark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstSegmentMark{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstSegmentMark\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstSegmentMark[${3:options%keyvals}]{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLabelAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstLabelAB{${1:A}}{${2:B}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstLabelAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstLabelAB[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstLabelAB*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstLabelAB*{${1:A}}{${2:B}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstLabelAB*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstLabelAB*[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangle\",\n      \"arg\": {\n        \"format\": \"(){}(){}(){}\",\n        \"snippet\": \"pstTriangle(${4:x1},${5:y1}){${1:A}}(${6:x2},${7:y2}){${2:B}}(${8:x3},${9:y3}){${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangle\",\n      \"arg\": {\n        \"format\": \"[](){}(){}(){}\",\n        \"snippet\": \"pstTriangle[${4:options%keyvals}](${5:x1},${6:y1}){${1:A}}(${7:x2},${8:y2}){${2:B}}(${9:x3},${10:y3}){${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleSSS\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}\",\n        \"snippet\": \"pstTriangleSSS(${4:pos}){${1:A}}(${5:a},${6:b},${7:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleSSS\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}\",\n        \"snippet\": \"pstTriangleSSS[${4:options%keyvals}](${5:pos}){${1:A}}(${6:a},${7:b},${8:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleSAS\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}\",\n        \"snippet\": \"pstTriangleSAS(${4:pos}){${1:A}}(${5:b},${6:∠A},${7:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleSAS\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}\",\n        \"snippet\": \"pstTriangleSAS[${4:options%keyvals}](${5:pos}){${1:A}}(${6:b},${7:∠A},${8:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleAAS\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}\",\n        \"snippet\": \"pstTriangleAAS(${4:pos}){${1:A}}(${5:∠C},${6:∠A},${7:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleAAS\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}\",\n        \"snippet\": \"pstTriangleAAS[${4:options%keyvals}](${5:pos}){${1:A}}(${6:∠C},${7:∠A},${8:c}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleASA\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}\",\n        \"snippet\": \"pstTriangleASA(${4:pos}){${1:A}}(${5:∠A},${6:c},${7:∠B}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleASA\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}\",\n        \"snippet\": \"pstTriangleASA[${4:options%keyvals}](${5:pos}){${1:A}}(${6:∠A},${7:c},${8:∠B}){${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleIC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstTriangleIC{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleIC\",\n      \"arg\": {\n        \"format\": \"{}{}{}[][]\",\n        \"snippet\": \"pstTriangleIC{${1:A}}{${2:B}}{${3:C}}[${4:I}][${5:H}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleIC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstTriangleIC[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleIC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[][]\",\n        \"snippet\": \"pstTriangleIC[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}[${5:I}][${6:H}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleOC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstTriangleOC{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleOC\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pstTriangleOC{${1:A}}{${2:B}}{${3:C}}[${4:O}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleOC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstTriangleOC[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleOC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pstTriangleOC[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}[${5:O}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleGC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTriangleGC{${1:A}}{${2:B}}{${3:C}}{${4:G}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleGC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[][]\",\n        \"snippet\": \"pstTriangleGC{${1:A}}{${2:B}}{${3:C}}{${4:G}}[${5:M1}][${6:M2}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleGC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstTriangleGC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:G}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleGC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][]\",\n        \"snippet\": \"pstTriangleGC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:G}}[${6:M1}][${7:M2}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleHC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTriangleHC{${1:A}}{${2:B}}{${3:C}}{${4:H}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleHC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[][]\",\n        \"snippet\": \"pstTriangleHC{${1:A}}{${2:B}}{${3:C}}{${4:H}}[${5:H1}][${6:H2}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleHC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstTriangleHC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:H}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleHC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][]\",\n        \"snippet\": \"pstTriangleHC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:H}}[${6:H1}][${7:H2}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleEC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTriangleEC{${1:A}}{${2:B}}{${3:C}}{${4:E}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleEC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"pstTriangleEC{${1:A}}{${2:B}}{${3:C}}{${4:E}}[${5:T1}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleEC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstTriangleEC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:E}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleEC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"pstTriangleEC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:E}}[${6:T1}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleNC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTriangleNC{${1:A}}{${2:B}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleNC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[][][]\",\n        \"snippet\": \"pstTriangleNC{${1:A}}{${2:B}}{${3:C}}{${4:N}}[${5:M1}][${6:M2}][${7:M3}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleNC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstTriangleNC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleNC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][][]\",\n        \"snippet\": \"pstTriangleNC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:N}}[${6:M1}][${7:M2}][${8:M3}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleLC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTriangleLC{${1:A}}{${2:B}}{${3:C}}{${4:L}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleLC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[][][]\",\n        \"snippet\": \"pstTriangleLC{${1:A}}{${2:B}}{${3:C}}{${4:L}}[${5:S1}][${6:S2}][${7:S3}]\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleLC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstTriangleLC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:L}}\"\n      }\n    },\n    {\n      \"name\": \"pstTriangleLC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][][]\",\n        \"snippet\": \"pstTriangleLC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:L}}[${6:S1}][${7:S2}][${8:S3}]\"\n      }\n    },\n    {\n      \"name\": \"pstRightAngle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstRightAngle{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstRightAngle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstRightAngle[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstMarkAngle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstMarkAngle{${1:A}}{${2:B}}{${3:C}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstMarkAngle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstMarkAngle[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstLineAB{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstLineAB[${3:options%keyvals}]{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstLine{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstLine[${3:options%keyvals}]{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"pstLine{${1:A}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"pstLine[${2:options%keyvals}]{${1:A}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstLine(${2:x},${3:y}){${1:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstLine[${2:options%keyvals}](${3:x},${4:y}){${1:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstLine(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstLine[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstLineAA\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstLineAA{${1:A}}{${2:angle}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAA\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstLineAA[${4:options%keyvals}]{${1:A}}{${2:angle}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAA\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstLineAA(${3:x},${4:y}){${1:angle}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAA\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstLineAA[${3:options%keyvals}](${4:x},${5:y}){${1:angle}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAS\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstLineAS{${1:A}}{${2:gradient}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAS\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstLineAS[${4:options%keyvals}]{${1:A}}{${2:gradient}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAS\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstLineAS(${3:x},${4:y}){${1:gradient}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAS\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstLineAS[${3:options%keyvals}](${4:x},${5:y}){${1:gradient}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstLineCoef{${1:a,b,c}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineCoef\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstLineCoef[${4:options%keyvals}]{${1:a,b,c}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAbsNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstLineAbsNode{${1:A}}{${2:B}}{${3:x}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineAbsNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstLineAbsNode[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:x}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineOrdNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstLineOrdNode{${1:A}}{${2:B}}{${3:y}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstLineOrdNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstLineOrdNode[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:y}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstProportionNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstProportionNode{${1:A}}{${2:B}}{${3:λ}}{${4:C}}{${5:C'}}\"\n      }\n    },\n    {\n      \"name\": \"pstProportionNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstProportionNode[${6:options%keyvals}]{${1:A}}{${2:B}}{${3:λ}}{${4:C}}{${5:C'}}\"\n      }\n    },\n    {\n      \"name\": \"pstBisectorAOB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstBisectorAOB{${1:A}}{${2:O}}{${3:B}}{${4:T1}}{${5:T2}}\"\n      }\n    },\n    {\n      \"name\": \"pstBisectorAOB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstBisectorAOB[${6:options%keyvals}]{${1:A}}{${2:O}}{${3:B}}{${4:T1}}{${5:T2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFourthHarmonicNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstFourthHarmonicNode{${1:A}}{${2:B}}{${3:C}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstFourthHarmonicNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstFourthHarmonicNode[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstLocateAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstLocateAB{${1:A}}{${2:B}}{${3:L}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstLocateAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstLocateAB[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:L}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstExtendAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstExtendAB{${1:A}}{${2:B}}{${3:L}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstExtendAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstExtendAB[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:L}}{${4:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstInversion\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstInversion{${1:O}}{${2:A}}{${3:C}}{${4:C'}}\"\n      }\n    },\n    {\n      \"name\": \"pstInversion\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstInversion[${5:options%keyvals}]{${1:O}}{${2:A}}{${3:C}}{${4:C'}}\"\n      }\n    },\n    {\n      \"name\": \"pstGoldenMean\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstGoldenMean{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstGoldenMean\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstGoldenMean[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeometricMean\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstGeometricMean{${1:A}}{${2:B}}{${3:L1}}{${4:L2}}{${5:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeometricMean\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstGeometricMean[${6:options%keyvals}]{${1:A}}{${2:B}}{${3:L1}}{${4:L2}}{${5:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstHarmonicMean\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstHarmonicMean{${1:A}}{${2:B}}{${3:L1}}{${4:L2}}{${5:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstHarmonicMean\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstHarmonicMean[${6:options%keyvals}]{${1:A}}{${2:B}}{${3:L1}}{${4:L2}}{${5:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistAB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstDistAB{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistVal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstDistVal{${1:l}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistCalc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstDistCalc{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pstDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstDist{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistConst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstDistConst{${1:l}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistExpr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstDistExpr{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistCoef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstDistCoef{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pstUserDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstUserDist{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pstScreenDist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstScreenDist{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistMul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstDistMul{${1:A}}{${2:B}}{${3:λ}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistAdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstDistAdd{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistAddVal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstDistAddVal{${1:A}}{${2:B}}{${3:λ}}{${4:L}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistAddCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstDistAddCoef{${1:A}}{${2:B}}{${3:λ1}}{${4:C}}{${5:D}}{${6:λ2}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistSub\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstDistSub{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistSubVal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstDistSubVal{${1:A}}{${2:B}}{${3:λ}}{${4:L}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistSubCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstDistSubCoef{${1:A}}{${2:B}}{${3:λ1}}{${4:C}}{${5:D}}{${6:λ2}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistDiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstDistDiv{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstDistABC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstDistABC{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstCircleOA{${1:O}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOA\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"pstCircleOA{${1:O}}{${2:A}}[${3:angleA}][${4:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOA\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstCircleOA[${3:options%keyvals}]{${1:O}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOA\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"pstCircleOA[${3:options%keyvals}]{${1:O}}{${2:A}}[${4:angleA}][${5:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstCircleAB{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAB\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"pstCircleAB{${1:A}}{${2:B}}[${3:angleA}][${4:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstCircleAB[${3:options%keyvals}]{${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"pstCircleAB[${3:options%keyvals}]{${1:A}}{${2:B}}[${4:angleA}][${5:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstCircleABR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCircleABR{${1:A}}{${2:B}}{${3:R}}{${4:O}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleABR\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCircleABR[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:R}}{${4:O}}\"\n      }\n    },\n    {\n      \"name\": \"pstArcOAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstArcOAB{${1:O}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstArcOAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstArcOAB[${4:options%keyvals}]{${1:O}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstArcnOAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstArcnOAB{${1:O}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstArcnOAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstArcnOAB[${4:options%keyvals}]{${1:O}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCircleNode{${1:O}}{${2:A}}{${3:θ}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCircleNode[${5:options%keyvals}]{${1:O}}{${2:A}}{${3:θ}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleRotNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstCircleRotNode{${1:O}}{${2:A}}{${3:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleRotNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstCircleRotNode[${4:options%keyvals}]{${1:O}}{${2:A}}{${3:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleChordNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCircleChordNode{${1:O}}{${2:A}}{${3:L}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleChordNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCircleChordNode[${5:options%keyvals}]{${1:O}}{${2:A}}{${3:L}}{${4:X}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAbsNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstCircleAbsNode{${1:O}}{${2:A}}{${3:x}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleAbsNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstCircleAbsNode[${6:options%keyvals}]{${1:O}}{${2:A}}{${3:x}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOrdNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstCircleOrdNode{${1:O}}{${2:A}}{${3:y}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleOrdNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstCircleOrdNode[${6:options%keyvals}]{${1:O}}{${2:A}}{${3:y}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstCurvAbsNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCurvAbsNode{${1:O}}{${2:A}}{${3:B}}{${4:abscissa}}\"\n      }\n    },\n    {\n      \"name\": \"pstCurvAbsNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCurvAbsNode[${5:options%keyvals}]{${1:O}}{${2:A}}{${3:B}}{${4:abscissa}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleTangentLine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstCircleTangentLine{${1:O}}{${2:A}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleTangentLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstCircleTangentLine[${4:options%keyvals}]{${1:O}}{${2:A}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleTangentNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstCircleTangentNode{${1:O}}{${2:A}}{${3:P}}{${4:T1}}{${5:T2}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleTangentNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstCircleTangentNode[${6:options%keyvals}]{${1:O}}{${2:A}}{${3:P}}{${4:T1}}{${5:T2}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleExternalCommonTangent\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleExternalCommonTangent{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:T1}}{${6:T2}}{${7:T3}}{${8:T4}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleExternalCommonTangent\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleExternalCommonTangent[${9:options%keyvals}]{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:T1}}{${6:T2}}{${7:T3}}{${8:T4}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleInternalCommonTangent\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleInternalCommonTangent{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:T1}}{${6:T2}}{${7:T3}}{${8:T4}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleInternalCommonTangent\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleInternalCommonTangent[${9:options%keyvals}]{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:T1}}{${6:T2}}{${7:T3}}{${8:T4}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleRadicalAxis\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleRadicalAxis{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:C}}{${6:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleRadicalAxis\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"pstCircleRadicalAxis[${7:options%keyvals}]{${1:O1}}{${2:A}}{${3:O2}}{${4:B}}{${5:C}}{${6:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstETriangleAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstETriangleAB{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstETriangleAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstETriangleAB[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}\"\n      }\n    },\n    {\n      \"name\": \"pstSquareAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstSquareAB{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstSquareAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstSquareAB[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstRegularPolygonAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstRegularPolygonAB{${1:A0}}{${2:A1}}{${3:n}}{${4:A2,A3,...}}\"\n      }\n    },\n    {\n      \"name\": \"pstRegularPolygonAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstRegularPolygonAB[${5:options%keyvals}]{${1:A0}}{${2:A1}}{${3:n}}{${4:A2,A3,...}}\"\n      }\n    },\n    {\n      \"name\": \"pstRegularPolygonOA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstRegularPolygonOA{${1:O}}{${2:A0}}{${3:n}}{${4:A1,A2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pstRegularPolygonOA\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstRegularPolygonOA[${5:options%keyvals}]{${1:O}}{${2:A0}}{${3:n}}{${4:A1,A2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pstGenericCurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstGenericCurve{${1:radical}}{${2:n1}}{${3:n2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGenericCurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstGenericCurve[${4:options%keyvals}]{${1:radical}}{${2:n1}}{${3:n2}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipse\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstEllipse(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstEllipse\",\n      \"arg\": {\n        \"format\": \"()()[][]\",\n        \"snippet\": \"pstEllipse(${3:O})(${4:a},${5:b})[${1:angleA}][${2:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstEllipse[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()[][]\",\n        \"snippet\": \"pstEllipse[${1:options%keyvals}](${4:O})(${5:a},${6:b})[${2:angleA}][${3:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstEllipseNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:P}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstEllipseNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:P}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pstEllipseRotNode(${2:O})(${3:a},${4:b}){${1:P}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pstEllipseRotNode[${2:options%keyvals}](${3:O})(${4:a},${5:b}){${1:P}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstEllipseAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstEllipseAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstEllipseOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstEllipseOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstEllipseFocusNode(${3:O})(${4:a},${5:b}){${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstEllipseFocusNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstEllipseDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstEllipseDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstEllipseLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstEllipseLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstEllipsePolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstEllipsePolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstEllipseTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstEllipseTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstGeneralEllipse(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"pstGeneralEllipse(${2:O})(${3:a},${4:b})[${1:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"()()[][][]\",\n        \"snippet\": \"pstGeneralEllipse(${4:O})(${5:a},${6:b})[${1:θ}][${2:angleA}][${3:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstGeneralEllipse[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()[]\",\n        \"snippet\": \"pstGeneralEllipse[${1:options%keyvals}](${3:O})(${4:a},${5:b})[${2:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipse\",\n      \"arg\": {\n        \"format\": \"[]()()[][][]\",\n        \"snippet\": \"pstGeneralEllipse[${1:options%keyvals}](${5:O})(${6:a},${7:b})[${2:θ}][${3:angleA}][${4:angleB}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFle{${1:F}}{${2:A}}{${3:B}}{${4:e}}{${5:O}}{${6:Rab}}{${7:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFle[${8:options%keyvals}]{${1:F}}{${2:A}}{${3:B}}{${4:e}}{${5:O}}{${6:Rab}}{${7:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFFN\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFFN{${1:F1}}{${2:F2}}{${3:O}}{${4:Rab}}{${5:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFFN\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFFN[${6:options%keyvals}]{${1:F1}}{${2:F2}}{${3:O}}{${4:Rab}}{${5:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseCoef{${1:a,b,c,d,e,f}}{${2:O}}{${3:Rab}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseCoef\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseCoef[${5:options%keyvals}]{${1:a,b,c,d,e,f}}{${2:O}}{${3:Rab}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseABCDE\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseABCDE{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:Rab}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseABCDE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseABCDE[${9:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:Rab}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralEllipseNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralEllipseNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralEllipseNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralEllipseNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pstGeneralEllipseRotNode(${2:O})(${3:a},${4:b}){${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"pstGeneralEllipseRotNode(${3:O})(${4:a},${5:b})[${2:θ}]{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pstGeneralEllipseRotNode[${2:options%keyvals}](${3:O})(${4:a},${5:b}){${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseRotNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}\",\n        \"snippet\": \"pstGeneralEllipseRotNode[${2:options%keyvals}](${4:O})(${5:a},${6:b})[${3:θ}]{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseAbsNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseAbsNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseOrdNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseOrdNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFocusNode(${4:O})(${5:a},${6:b}){${1:t}}{${2:F1}}{${3:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFocusNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:t}}{${2:F1}}{${3:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFocusNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:t}}{${2:F1}}{${3:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseFocusNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:t}}{${2:F1}}{${3:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseDirectrixLine(${6:O})(${7:a},${8:b})[${5:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseDirectrixLine[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseLineInter(${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseLineInter\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseLineInter[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipsePolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipsePolarNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipsePolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipsePolarNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipsePolarNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseTangentNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralEllipseTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralEllipseTangentNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabola\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstParabola(${4:O}){${1:p}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabola\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstParabola[${4:options%keyvals}](${5:O}){${1:p}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstParabolaNode(${4:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstParabolaNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstParabolaAbsNode(${4:O}){${1:p}}{${2:x}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstParabolaAbsNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:x}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstParabolaOrdNode(${5:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstParabolaOrdNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstParabolaFocusNode(${3:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstParabolaFocusNode[${3:options%keyvals}](${4:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstParabolaDirectrixLine(${4:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstParabolaDirectrixLine[${4:options%keyvals}](${5:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}\",\n        \"snippet\": \"pstParabolaLineInter(${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode(${5:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode(${5:O}){${1:p}}(${6:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}()[][]{}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode(${7:O}){${1:p}}(${8:F})[${5:Lx}][${6:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}(${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}()[][]{}{}{}\",\n        \"snippet\": \"pstParabolaPolarNode[${5:options%keyvals}](${8:O}){${1:p}}(${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstParabolaTangentNode(${5:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstParabolaTangentNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabola\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstIParabola(${4:O}){${1:p}}{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabola\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstIParabola[${4:options%keyvals}](${5:O}){${1:p}}{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstIParabolaNode(${4:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstIParabolaNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstIParabolaAbsNode(${5:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstIParabolaAbsNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstIParabolaOrdNode(${4:O}){${1:p}}{${2:y}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstIParabolaOrdNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:y}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstIParabolaFocusNode(${3:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstIParabolaFocusNode[${3:options%keyvals}](${4:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstIParabolaDirectrixLine(${4:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstIParabolaDirectrixLine[${4:options%keyvals}](${5:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}\",\n        \"snippet\": \"pstIParabolaLineInter(${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}{}\",\n        \"snippet\": \"pstIParabolaLineInter[${6:options%keyvals}](${7:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode(${5:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode(${5:O}){${1:p}}(${6:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}()[][]{}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode(${7:O}){${1:p}}(${8:F})[${5:Lx}][${6:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}(${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}()[][]{}{}{}\",\n        \"snippet\": \"pstIParabolaPolarNode[${5:options%keyvals}](${8:O}){${1:p}}(${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstIParabolaTangentNode(${5:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstIParabolaTangentNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabola\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralParabola(${4:O}){${1:p}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabola\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabola(${5:O}){${1:p}}[${4:θ}]{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabola\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralParabola[${4:options%keyvals}](${5:O}){${1:p}}{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabola\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabola[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:x1}}{${3:x2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaNode(${4:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabolaNode(${5:O}){${1:p}}[${4:θ}]{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabolaNode[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaAbsNode(${5:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaAbsNode(${6:O}){${1:p}}[${5:θ}]{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaAbsNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaAbsNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaOrdNode(${5:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaOrdNode(${6:O}){${1:p}}[${5:θ}]{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaOrdNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaOrdNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFl\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaFl{${1:F}}{${2:A}}{${3:B}}{${4:O}}{${5:p}}{${6:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaFl[${7:options%keyvals}]{${1:F}}{${2:A}}{${3:B}}{${4:O}}{${5:p}}{${6:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaCoef{${1:a,b,c,d,e,f}}{${2:O}}{${3:p}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaCoef\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaCoef[${5:options%keyvals}]{${1:a,b,c,d,e,f}}{${2:O}}{${3:p}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaABCDE\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaABCDE{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:p}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaABCDE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaABCDE[${9:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:p}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstGeneralParabolaFocusNode(${3:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"pstGeneralParabolaFocusNode(${4:O}){${1:p}}[${3:θ}]{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstGeneralParabolaFocusNode[${3:options%keyvals}](${4:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}\",\n        \"snippet\": \"pstGeneralParabolaFocusNode[${3:options%keyvals}](${5:O}){${1:p}}[${4:θ}]{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaDirectrixLine(${4:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabolaDirectrixLine(${5:O}){${1:p}}[${4:θ}]{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaDirectrixLine[${4:options%keyvals}](${5:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralParabolaDirectrixLine[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaLineInter(${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaLineInter(${7:O}){${1:p}}[${6:θ}]{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaLineInter[${6:options%keyvals}](${7:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaLineInter[${6:options%keyvals}](${8:O}){${1:p}}[${7:θ}]{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${5:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${6:O}){${1:p}}[${5:θ}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${5:O}){${1:p}}(${6:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[](){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${6:O}){${1:p}}[${5:θ}](${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${7:O}){${1:p}}(${8:F})[${5:Lx}][${6:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[]()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode(${8:O}){${1:p}}[${5:θ}](${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}(${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[](){}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}](${8:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${8:O}){${1:p}}(${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaPolarNode[${5:options%keyvals}](${9:O}){${1:p}}[${6:θ}](${10:F})[${7:Lx}][${8:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaTangentNode(${5:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaTangentNode(${6:O}){${1:p}}[${5:θ}]{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaTangentNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralParabolaTangentNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabola\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralIParabola(${4:O}){${1:p}}{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabola\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralIParabola[${4:options%keyvals}](${5:O}){${1:p}}{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabola\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabola(${5:O}){${1:p}}[${4:θ}]{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabola\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabola[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaNode(${4:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaNode[${4:options%keyvals}](${5:O}){${1:p}}{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabolaNode(${5:O}){${1:p}}[${4:θ}]{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabolaNode[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:t}}{${3:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaAbsNode(${5:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaAbsNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaAbsNode(${6:O}){${1:p}}[${5:θ}]{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaAbsNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:x}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaOrdNode(${5:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaOrdNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaOrdNode(${6:O}){${1:p}}[${5:θ}]{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaOrdNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:y}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstGeneralIParabolaFocusNode(${3:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstGeneralIParabolaFocusNode[${3:options%keyvals}](${4:O}){${1:p}}{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"pstGeneralIParabolaFocusNode(${4:O}){${1:p}}[${3:θ}]{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}\",\n        \"snippet\": \"pstGeneralIParabolaFocusNode[${3:options%keyvals}](${5:O}){${1:p}}[${4:θ}]{${2:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaDirectrixLine(${4:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaDirectrixLine[${4:options%keyvals}](${5:O}){${1:p}}{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabolaDirectrixLine(${5:O}){${1:p}}[${4:θ}]{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}\",\n        \"snippet\": \"pstGeneralIParabolaDirectrixLine[${4:options%keyvals}](${6:O}){${1:p}}[${5:θ}]{${2:Lx}}{${3:Ly}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaLineInter(${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaLineInter[${6:options%keyvals}](${7:O}){${1:p}}{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaLineInter(${7:O}){${1:p}}[${6:θ}]{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaLineInter\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaLineInter[${6:options%keyvals}](${8:O}){${1:p}}[${7:θ}]{${2:A}}{${3:B}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${5:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${6:O}){${1:p}}[${5:θ}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}(){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${5:O}){${1:p}}(${6:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}(){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${6:O}){${1:p}}(${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[](){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${6:O}){${1:p}}[${5:θ}](${7:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[](){}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}](${8:F}){${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${7:O}){${1:p}}(${8:F})[${5:Lx}][${6:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${8:O}){${1:p}}(${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"(){}[]()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode(${8:O}){${1:p}}[${5:θ}](${9:F})[${6:Lx}][${7:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]()[][]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaPolarNode[${5:options%keyvals}](${9:O}){${1:p}}[${6:θ}](${10:F})[${7:Lx}][${8:Ly}]{${2:A}}{${3:B}}{${4:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaTangentNode(${5:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaTangentNode[${5:options%keyvals}](${6:O}){${1:p}}{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"(){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaTangentNode(${6:O}){${1:p}}[${5:θ}]{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIParabolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}{}{}\",\n        \"snippet\": \"pstGeneralIParabolaTangentNode[${5:options%keyvals}](${7:O}){${1:p}}[${6:θ}]{${2:T}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstHyperbola(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"pstHyperbola(${2:O})(${3:a},${4:b})[${1:angleX}]\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstHyperbola[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[]\",\n        \"snippet\": \"pstHyperbola[${1:options%keyvals}](${3:O})(${4:a},${5:b})[${2:angleX}]\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstHyperbolaNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstHyperbolaNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstHyperbolaFocusNode(${3:O})(${4:a},${5:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstHyperbolaFocusNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstHyperbolaDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstHyperbolaDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstHyperbolaAsymptoteLine(${3:O})(${4:a},${5:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstHyperbolaAsymptoteLine[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstHyperbolaLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstHyperbolaLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaPolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaPolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstHyperbolaTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstIHyperbola(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"pstIHyperbola(${2:O})(${3:a},${4:b})[${1:angleY}]\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstIHyperbola[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[]\",\n        \"snippet\": \"pstIHyperbola[${1:options%keyvals}](${3:O})(${4:a},${5:b})[${2:angleY}]\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstIHyperbolaNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstIHyperbolaNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstIHyperbolaFocusNode(${3:O})(${4:a},${5:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstIHyperbolaFocusNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstIHyperbolaDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstIHyperbolaDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstIHyperbolaAsymptoteLine(${3:O})(${4:a},${5:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstIHyperbolaAsymptoteLine[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstIHyperbolaLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstIHyperbolaLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaPolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaPolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstIHyperbolaTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstGeneralHyperbola(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"pstGeneralHyperbola(${2:O})(${3:a},${4:b})[${1:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[][]\",\n        \"snippet\": \"pstGeneralHyperbola(${3:O})(${4:a},${5:b})[${1:θ}][${2:angleX}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstGeneralHyperbola[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[]\",\n        \"snippet\": \"pstGeneralHyperbola[${1:options%keyvals}](${3:O})(${4:a},${5:b})[${2:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[][]\",\n        \"snippet\": \"pstGeneralHyperbola[${1:options%keyvals}](${4:O})(${5:a},${6:b})[${2:θ}][${3:angleX}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFle{${1:F}}{${2:A}}{${3:B}}{${4:e}}{${5:O}}{${6:Rab}}{${7:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFle[${8:options%keyvals}]{${1:F}}{${2:A}}{${3:B}}{${4:e}}{${5:O}}{${6:Rab}}{${7:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFFN\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFFN{${1:F1}}{${2:F2}}{${3:O}}{${4:Rab}}{${5:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFFN\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFFN[${6:options%keyvals}]{${1:F1}}{${2:F2}}{${3:O}}{${4:Rab}}{${5:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaCoef\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaCoef{${1:a,b,c,d,e,f}}{${2:O}}{${3:Rab}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaCoef\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaCoef[${5:options%keyvals}]{${1:a,b,c,d,e,f}}{${2:O}}{${3:Rab}}{${4:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaABCDE\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaABCDE{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:Rab}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaABCDE\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaABCDE[${9:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:O}}{${7:Rab}}{${8:θ}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaAbsNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaAbsNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaOrdNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaOrdNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFocusNode(${3:O})(${4:a},${5:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFocusNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFocusNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaFocusNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaVertexNode(${3:O})(${4:a},${5:b}){${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaVertexNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralHyperbolaVertexNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaVertexNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaDirectrixLine(${6:O})(${7:a},${8:b})[${5:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaDirectrixLine[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaLineInter(${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaLineInter[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaPolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaPolarNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaPolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaPolarNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaTangentNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralHyperbolaTangentNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstGeneralIHyperbola(${1:O})(${2:a},${3:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"pstGeneralIHyperbola(${2:O})(${3:a},${4:b})[${1:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"()()[][]\",\n        \"snippet\": \"pstGeneralIHyperbola(${3:O})(${4:a},${5:b})[${1:θ}][${2:angleY}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstGeneralIHyperbola[${1:options%keyvals}](${2:O})(${3:a},${4:b})\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[]\",\n        \"snippet\": \"pstGeneralIHyperbola[${1:options%keyvals}](${3:O})(${4:a},${5:b})[${2:θ}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbola\",\n      \"arg\": {\n        \"format\": \"[]()()[][]\",\n        \"snippet\": \"pstGeneralIHyperbola[${1:options%keyvals}](${4:O})(${5:a},${6:b})[${2:θ}][${3:angleY}]\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaNode(${3:O})(${4:a},${5:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:t}}{${2:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAbsNode(${4:O})(${5:a},${6:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAbsNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAbsNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAbsNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAbsNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:x}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaOrdNode(${4:O})(${5:a},${6:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaOrdNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaOrdNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaOrdNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaOrdNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:y}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaFocusNode(${3:O})(${4:a},${5:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaFocusNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaFocusNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaFocusNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaFocusNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:F1}}{${2:F2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaVertexNode(${3:O})(${4:a},${5:b}){${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaVertexNode(${4:O})(${5:a},${6:b})[${3:θ}]{${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaVertexNode[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaVertexNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaVertexNode[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:V1}}{${2:V2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaDirectrixLine(${5:O})(${6:a},${7:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaDirectrixLine(${6:O})(${7:a},${8:b})[${5:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaDirectrixLine[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaDirectrixLine\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaDirectrixLine[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:Lx}}{${2:Ly}}{${3:Rx}}{${4:Ry}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAsymptoteLine(${3:O})(${4:a},${5:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAsymptoteLine(${4:O})(${5:a},${6:b})[${3:θ}]{${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAsymptoteLine[${3:options%keyvals}](${4:O})(${5:a},${6:b}){${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaAsymptoteLine\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaAsymptoteLine[${3:options%keyvals}](${5:O})(${6:a},${7:b})[${4:θ}]{${1:L1}}{${2:L2}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaLineInter(${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaLineInter(${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaLineInter[${5:options%keyvals}](${6:O})(${7:a},${8:b}){${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaLineInter\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaLineInter[${5:options%keyvals}](${7:O})(${8:a},${9:b})[${6:θ}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaPolarNode(${4:O})(${5:a},${6:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaPolarNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaPolarNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaPolarNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaPolarNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:A}}{${2:B}}{${3:T}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaTangentNode(${4:O})(${5:a},${6:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaTangentNode(${5:O})(${6:a},${7:b})[${4:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaTangentNode[${4:options%keyvals}](${5:O})(${6:a},${7:b}){${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralIHyperbolaTangentNode\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}{}{}\",\n        \"snippet\": \"pstGeneralIHyperbolaTangentNode[${4:options%keyvals}](${6:O})(${7:a},${8:b})[${5:θ}]{${1:T}}{${2:A}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicEquation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicEquation{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}{${7:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicEquation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicEquation[${8:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}{${7:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseEquation\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pstGeneralEllipseEquation(${2:O})(${3:a},${4:b}){${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseEquation\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pstGeneralEllipseEquation[${2:options%keyvals}](${3:O})(${4:a},${5:b}){${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseEquation\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"pstGeneralEllipseEquation(${3:O})(${4:a},${5:b})[${2:θ}]{${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralEllipseEquation\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}\",\n        \"snippet\": \"pstGeneralEllipseEquation[${2:options%keyvals}](${4:O})(${5:a},${6:b})[${3:θ}]{${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaEquation\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pstGeneralHyperbolaEquation(${2:O})(${3:a},${4:b}){${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaEquation\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"pstGeneralHyperbolaEquation(${3:O})(${4:a},${5:b})[${2:θ}]{${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaEquation\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pstGeneralHyperbolaEquation[${2:options%keyvals}](${3:O})(${4:a},${5:b}){${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralHyperbolaEquation\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}\",\n        \"snippet\": \"pstGeneralHyperbolaEquation[${2:options%keyvals}](${4:O})(${5:a},${6:b})[${3:θ}]{${1:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaEquation\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstGeneralParabolaEquation(${3:O}){${1:p}}{${2:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaEquation\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"pstGeneralParabolaEquation(${4:O}){${1:p}}[${3:θ}]{${2:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaEquation\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstGeneralParabolaEquation[${3:options%keyvals}](${4:O}){${1:p}}{${2:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralParabolaEquation\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}\",\n        \"snippet\": \"pstGeneralParabolaEquation[${3:options%keyvals}](${5:O}){${1:p}}[${4:θ}]{${2:a,b,c,d,e,f}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicLineInter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicLineInter{${1:A}}{${2:B}}{${3:a,b,c,d,e,f}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicLineInter\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicLineInter[${6:options%keyvals}]{${1:A}}{${2:B}}{${3:a,b,c,d,e,f}}{${4:C}}{${5:D}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicCircleInter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicCircleInter{${1:O}}{${2:A}}{${3:a,b,c,d,e,f}}{${4:C}}{${5:D}}{${6:E}}{${7:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicCircleInter\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicCircleInter[${8:options%keyvals}]{${1:O}}{${2:A}}{${3:a,b,c,d,e,f}}{${4:C}}{${5:D}}{${6:E}}{${7:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicEllipseInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicEllipseInter(${6:O})(${7:m},${8:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicEllipseInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicEllipseInter[${6:options%keyvals}](${7:O})(${8:m},${9:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicHyperbolaInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicHyperbolaInter(${6:O})(${7:m},${8:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicHyperbolaInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicHyperbolaInter[${6:options%keyvals}](${7:O})(${8:m},${9:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicIHyperbolaInter\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicIHyperbolaInter(${6:O})(${7:m},${8:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicIHyperbolaInter\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicIHyperbolaInter[${6:options%keyvals}](${7:O})(${8:m},${9:n}){${1:a,b,c,d,e,f}}{${2:C}}{${3:D}}{${4:E}}{${5:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicParabolaInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicParabolaInter(${7:O}){${1:p}}{${2:a,b,c,d,e,f}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicParabolaInter\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicParabolaInter[${7:options%keyvals}](${8:O}){${1:p}}{${2:a,b,c,d,e,f}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicIParabolaInter\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicIParabolaInter(${7:O}){${1:p}}{${2:a,b,c,d,e,f}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicIParabolaInter\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicIParabolaInter[${7:options%keyvals}](${8:O}){${1:p}}{${2:a,b,c,d,e,f}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicInter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicInter{${1:a,b,c,d,e,f}}{${2:a',b',c',d',e',f'}}{${3:C}}{${4:D}}{${5:E}}{${6:F}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicTangentLine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstGeneralConicTangentLine{${1:A}}{${2:a,b,c,d,e,f}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicTangentLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstGeneralConicTangentLine[${4:options%keyvals}]{${1:A}}{${2:a,b,c,d,e,f}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicTangentChord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicTangentChord{${1:T}}{${2:a,b,c,d,e,f}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstGeneralConicTangentChord\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstGeneralConicTangentChord[${5:options%keyvals}]{${1:T}}{${2:a,b,c,d,e,f}}{${3:A}}{${4:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstSymO\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstSymO{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstSymO\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"pstSymO{${1:O}}{${2:M1,...,Mn}}[${3:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstSymO\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstSymO[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstSymO\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"pstSymO[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstOrtSym\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstOrtSym{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstOrtSym\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pstOrtSym{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstOrtSym\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstOrtSym[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstOrtSym\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pstOrtSym[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${5:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstRotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstRotation{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstRotation\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"pstRotation{${1:O}}{${2:M1,...,Mn}}[${3:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstRotation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstRotation[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstRotation\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"pstRotation[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstAngleAOB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstAngleAOB{${1:A}}{${2:O}}{${3:B}}\"\n      }\n    },\n    {\n      \"name\": \"pstTranslation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstTranslation{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstTranslation\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pstTranslation{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstTranslation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstTranslation[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstTranslation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pstTranslation[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${5:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstHomO\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstHomO{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstHomO\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"pstHomO{${1:O}}{${2:M1,...,Mn}}[${3:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstHomO\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstHomO[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstHomO\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"pstHomO[${3:options%keyvals}]{${1:O}}{${2:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstProjection\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstProjection{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstProjection\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pstProjection{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${4:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstProjection\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstProjection[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}\"\n      }\n    },\n    {\n      \"name\": \"pstProjection\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pstProjection[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:M1,...,Mn}}[${5:M1',...,Mn'}]\"\n      }\n    },\n    {\n      \"name\": \"pstMiddleAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstMiddleAB{${1:A}}{${2:B}}{${3:I}}\"\n      }\n    },\n    {\n      \"name\": \"pstMiddleAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstMiddleAB[${4:options%keyvals}]{${1:A}}{${2:B}}{${3:I}}\"\n      }\n    },\n    {\n      \"name\": \"pstCGravABC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCGravABC{${1:A}}{${2:B}}{${3:C}}{${4:G}}\"\n      }\n    },\n    {\n      \"name\": \"pstCGravABC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCGravABC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:G}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleABC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstCircleABC{${1:A}}{${2:B}}{${3:C}}{${4:O}}\"\n      }\n    },\n    {\n      \"name\": \"pstCircleABC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstCircleABC[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:O}}\"\n      }\n    },\n    {\n      \"name\": \"pstMediatorAB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstMediatorAB{${1:A}}{${2:B}}{${3:I}}{${4:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstMediatorAB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstMediatorAB[${5:options%keyvals}]{${1:A}}{${2:B}}{${3:I}}{${4:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstBissectBAC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstBissectBAC{${1:B}}{${2:A}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstBissectBAC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstBissectBAC[${5:options%keyvals}]{${1:B}}{${2:A}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstOutBissectBAC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstOutBissectBAC{${1:B}}{${2:A}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstOutBissectBAC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstOutBissectBAC[${5:options%keyvals}]{${1:B}}{${2:A}}{${3:C}}{${4:N}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterLL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstInterLL{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterLL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstInterLL[${6:options%keyvals}]{${1:A}}{${2:B}}{${3:C}}{${4:D}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterLC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstInterLC{${1:A}}{${2:B}}{${3:O}}{${4:C}}{${5:M1}}{${6:M2}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterLC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"pstInterLC[${7:options%keyvals}]{${1:A}}{${2:B}}{${3:O}}{${4:C}}{${5:M1}}{${6:M2}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterCC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pstInterCC{${1:O1}}{${2:B}}{${3:O2}}{${4:C}}{${5:M1}}{${6:M2}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterCC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"pstInterCC[${7:options%keyvals}]{${1:O1}}{${2:B}}{${3:O2}}{${4:C}}{${5:M1}}{${6:M2}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstInterFF{${1:f%definition}}{${2:g%definition}}{${3:x0}}{${4:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFF\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pstInterFF[${5:options%keyvals}]{${1:f%definition}}{${2:g%definition}}{${3:x0}}{${4:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstInterFL{${1:f%definition}}{${2:A}}{${3:B}}{${4:x0}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstInterFL[${6:options%keyvals}]{${1:f%definition}}{${2:A}}{${3:B}}{${4:x0}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pstInterFC{${1:f%definition}}{${2:O}}{${3:A}}{${4:x0}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"pstInterFC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"pstInterFC[${6:options%keyvals}]{${1:f%definition}}{${2:O}}{${3:A}}{${4:x0}}{${5:M}}\"\n      }\n    },\n    {\n      \"name\": \"psGetDistanceAB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psGetDistanceAB(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetDistanceAB\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psGetDistanceAB[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetAngleABC\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psGetAngleABC(${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetAngleABC\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"psGetAngleABC[${2:options%keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"MarkArrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkArroww\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkArrowww\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkCirc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkCros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkCross\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkHash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkHashh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MarkHashhh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SegSymLst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstParseArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstParseArg{${1:prefix}}{${2:element list}}{${3:value list}}\"\n      }\n    },\n    {\n      \"name\": \"pstShowCoor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstShowCoor{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"pstslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstslashh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstslashhh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstslashslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstslashslashslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetEUCLvalues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psMarkHashLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psMarkHashSep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-eucl#c\": [\n      \"old\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-eucl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-exa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"showexpl\"\n    },\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noaccsupp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noaccsupp{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"PSTcode\"\n    },\n    {\n      \"name\": \"PSTcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PSTcode}#c,\\\\begin{PSTexample}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PSTexample\"\n    },\n    {\n      \"name\": \"PSTexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{PSTcode}#c,\\\\begin{PSTexample}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-exa#c\": [\n      \"swpl\",\n      \"tcb\",\n      \"pdf\"\n    ],\n    \"\\\\begin{PSTcode}#c,\\\\begin{PSTexample}#c\": [\n      \"hwidth=\",\n      \"graphic={${1:includegraphics options}}{${2:imagefile}}\",\n      \"numbers=${1|true,none,out,fancy|}\",\n      \"fcolor=\",\n      \"tcolor=\",\n      \"bcolor=\",\n      \"scolor=\",\n      \"hsep=\",\n      \"vsep=\",\n      \"pos=${1|r,l,b,t,e|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-exa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-feyn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psArrowArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psArrowArc(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psArrowArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psArrowArc[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psArrowArcn\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psArrowArcn(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psArrowArcn\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psArrowArcn[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psArrowLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psArrowLine(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psArrowLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psArrowLine[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"psBCirc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psBCirc(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psBCirc\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psBCirc[${2:options%keyvals}](${3:x},${4:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psBText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psBText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psBText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psCArc(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psCArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psCArc[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psCCirc\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psCCirc(${4:x},${5:y}){${1:radius}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"psCCirc\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psCCirc[${4:options%keyvals}](${5:x},${6:y}){${1:radius}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"psCText\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psCText(${4:x},${5:y}){${1:color1}}{${2:color2}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCText\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psCText[${4:options%keyvals}](${5:x},${6:y}){${1:color1}}{${2:color2}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"psGluonArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psGluonArc(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psGluonArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psGluonArc[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psGluon\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psGluon(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psGluon\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psGluon[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"psPhoton\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psPhoton(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psPhoton\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psPhoton[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"psPhotonArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psPhotonArc(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psPhotonArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psPhotonArc[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psPText\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psPText(${2:x},${3:y})(${4:φ}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psPText\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psPText[${2:mode}](${3:x},${4:y})(${5:φ}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psText[${2:mode}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psZigZag\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psZigZag(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psZigZag\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psZigZag[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"psLinAxis\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psLinAxis(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:num_decs},${6:per_dec},${7:hashsize},${8:offset})\"\n      }\n    },\n    {\n      \"name\": \"psLogAxis\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psLogAxis(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:num_logs},${6:hashsize},${7:offset})\"\n      }\n    },\n    {\n      \"name\": \"psLongArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLongArrowArc(${1:x},${2:y})(${3:φ1},${4:φ2})\"\n      }\n    },\n    {\n      \"name\": \"psLongArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLongArrowArc[${1:options%keyvals}](${2:x},${3:y})(${4:φ1},${5:φ2})\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowArc(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"LongArrowArcn(${1:x},${2:y})(${3:radius},${4:start-angle},${5:end-angle})\"\n      }\n    },\n    {\n      \"name\": \"DashArrowArcn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowArcn(${2:x},${3:y})(${4:radius},${5:start-angle},${6:end-angle}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"LongArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"LongArrow(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"DashArrowLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"DashArrowLine(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:dashsize}}\"\n      }\n    },\n    {\n      \"name\": \"psGCirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psGCirc(${3:x},${4:y}){${1:radius}}{${2:gray color spec}}\"\n      }\n    },\n    {\n      \"name\": \"psGCirc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psGCirc[${3:options%keyvals}](${4:x},${5:y}){${1:radius}}{${2:gray colorspec}}\"\n      }\n    },\n    {\n      \"name\": \"psGText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psGText(${3:x},${4:y}){${1:gray colorspec}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psGText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psGText[${3:options%keyvals}](${4:x},${5:y}){${1:gray colorspec}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-fill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psboxfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psboxfill{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PstTiling\"\n    },\n    {\n      \"name\": \"txfillDict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFillSetDefaults\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pst-fill#c\": [\n      \"tiling\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-fill#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-fit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-flags-colors-html.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-flags.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-all\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"flagAE\"\n    },\n    {\n      \"name\": \"flagAE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAI\"\n    },\n    {\n      \"name\": \"flagAI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAM\"\n    },\n    {\n      \"name\": \"flagAM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAU\"\n    },\n    {\n      \"name\": \"flagAU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAZ\"\n    },\n    {\n      \"name\": \"flagAZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBA\"\n    },\n    {\n      \"name\": \"flagBA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBM\"\n    },\n    {\n      \"name\": \"flagBM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBN\"\n    },\n    {\n      \"name\": \"flagBN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBS\"\n    },\n    {\n      \"name\": \"flagBS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBY\"\n    },\n    {\n      \"name\": \"flagBY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCA\"\n    },\n    {\n      \"name\": \"flagCA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCC\"\n    },\n    {\n      \"name\": \"flagCC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCC[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCK\"\n    },\n    {\n      \"name\": \"flagCK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCU\"\n    },\n    {\n      \"name\": \"flagCU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCX\"\n    },\n    {\n      \"name\": \"flagCX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCX[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDM\"\n    },\n    {\n      \"name\": \"flagDM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagER\"\n    },\n    {\n      \"name\": \"flagER\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagER[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagET\"\n    },\n    {\n      \"name\": \"flagET\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagET[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagFJ\"\n    },\n    {\n      \"name\": \"flagFJ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagFJ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGB\"\n    },\n    {\n      \"name\": \"flagGB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGB[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagHR\"\n    },\n    {\n      \"name\": \"flagHR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagHR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagHU\"\n    },\n    {\n      \"name\": \"flagHU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagHU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIE\"\n    },\n    {\n      \"name\": \"flagIE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIO\"\n    },\n    {\n      \"name\": \"flagIO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagJM\"\n    },\n    {\n      \"name\": \"flagJM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagJM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagJO\"\n    },\n    {\n      \"name\": \"flagJO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagJO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKP\"\n    },\n    {\n      \"name\": \"flagKP\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKP[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKW\"\n    },\n    {\n      \"name\": \"flagKW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKY\"\n    },\n    {\n      \"name\": \"flagKY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKZ\"\n    },\n    {\n      \"name\": \"flagKZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLK\"\n    },\n    {\n      \"name\": \"flagLK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLV\"\n    },\n    {\n      \"name\": \"flagLV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLV[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLY\"\n    },\n    {\n      \"name\": \"flagLY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMD\"\n    },\n    {\n      \"name\": \"flagMD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagME\"\n    },\n    {\n      \"name\": \"flagME\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagME[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMK\"\n    },\n    {\n      \"name\": \"flagMK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMN\"\n    },\n    {\n      \"name\": \"flagMN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMY\"\n    },\n    {\n      \"name\": \"flagMY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNG\"\n    },\n    {\n      \"name\": \"flagNG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNR\"\n    },\n    {\n      \"name\": \"flagNR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNZ\"\n    },\n    {\n      \"name\": \"flagNZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagOM\"\n    },\n    {\n      \"name\": \"flagOM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagOM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPH\"\n    },\n    {\n      \"name\": \"flagPH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPS\"\n    },\n    {\n      \"name\": \"flagPS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSB\"\n    },\n    {\n      \"name\": \"flagSB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSB[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSC\"\n    },\n    {\n      \"name\": \"flagSC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSC[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSD\"\n    },\n    {\n      \"name\": \"flagSD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSI\"\n    },\n    {\n      \"name\": \"flagSI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSS\"\n    },\n    {\n      \"name\": \"flagSS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTJ\"\n    },\n    {\n      \"name\": \"flagTJ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTJ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTL\"\n    },\n    {\n      \"name\": \"flagTL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTO\"\n    },\n    {\n      \"name\": \"flagTO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUK\"\n    },\n    {\n      \"name\": \"flagUK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUZ\"\n    },\n    {\n      \"name\": \"flagUZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagVG\"\n    },\n    {\n      \"name\": \"flagVG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagVG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagZW\"\n    },\n    {\n      \"name\": \"flagZW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagZW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAG\"\n    },\n    {\n      \"name\": \"flagAG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAO\"\n    },\n    {\n      \"name\": \"flagAO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAI\"\n    },\n    {\n      \"name\": \"flagAI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAW\"\n    },\n    {\n      \"name\": \"flagAW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBB\"\n    },\n    {\n      \"name\": \"flagBB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBB[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBF\"\n    },\n    {\n      \"name\": \"flagBF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBF[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBJ\"\n    },\n    {\n      \"name\": \"flagBJ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBJ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBT\"\n    },\n    {\n      \"name\": \"flagBT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBW\"\n    },\n    {\n      \"name\": \"flagBW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCD\"\n    },\n    {\n      \"name\": \"flagCD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCF\"\n    },\n    {\n      \"name\": \"flagCF\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCF[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCL\"\n    },\n    {\n      \"name\": \"flagCL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCM\"\n    },\n    {\n      \"name\": \"flagCM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCN\"\n    },\n    {\n      \"name\": \"flagCN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCO\"\n    },\n    {\n      \"name\": \"flagCO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCY\"\n    },\n    {\n      \"name\": \"flagCY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCZ\"\n    },\n    {\n      \"name\": \"flagCZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDJ\"\n    },\n    {\n      \"name\": \"flagDJ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDJ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDZ\"\n    },\n    {\n      \"name\": \"flagDZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagEC\"\n    },\n    {\n      \"name\": \"flagEC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagEC[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagEG\"\n    },\n    {\n      \"name\": \"flagEG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagEG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagES\"\n    },\n    {\n      \"name\": \"flagES\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagES[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagFR\"\n    },\n    {\n      \"name\": \"flagFR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagFR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGE\"\n    },\n    {\n      \"name\": \"flagGE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGH\"\n    },\n    {\n      \"name\": \"flagGH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGM\"\n    },\n    {\n      \"name\": \"flagGM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGN\"\n    },\n    {\n      \"name\": \"flagGN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGQ\"\n    },\n    {\n      \"name\": \"flagGQ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGQ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGR\"\n    },\n    {\n      \"name\": \"flagGR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagHK\"\n    },\n    {\n      \"name\": \"flagHK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagHK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagID\"\n    },\n    {\n      \"name\": \"flagID\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagID[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIN\"\n    },\n    {\n      \"name\": \"flagIN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIQ\"\n    },\n    {\n      \"name\": \"flagIQ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIQ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIT\"\n    },\n    {\n      \"name\": \"flagIT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagJP\"\n    },\n    {\n      \"name\": \"flagJP\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagJP[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKE\"\n    },\n    {\n      \"name\": \"flagKE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKN\"\n    },\n    {\n      \"name\": \"flagKN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKR\"\n    },\n    {\n      \"name\": \"flagKR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLB\"\n    },\n    {\n      \"name\": \"flagLB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLB[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLS\"\n    },\n    {\n      \"name\": \"flagLS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMA\"\n    },\n    {\n      \"name\": \"flagMA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMG\"\n    },\n    {\n      \"name\": \"flagMG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagML\"\n    },\n    {\n      \"name\": \"flagML\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagML[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMM\"\n    },\n    {\n      \"name\": \"flagMM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMR\"\n    },\n    {\n      \"name\": \"flagMR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMT\"\n    },\n    {\n      \"name\": \"flagMT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMU\"\n    },\n    {\n      \"name\": \"flagMU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMV\"\n    },\n    {\n      \"name\": \"flagMV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMV[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMW\"\n    },\n    {\n      \"name\": \"flagMW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMZ\"\n    },\n    {\n      \"name\": \"flagMZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNA\"\n    },\n    {\n      \"name\": \"flagNA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNL\"\n    },\n    {\n      \"name\": \"flagNL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPA\"\n    },\n    {\n      \"name\": \"flagPA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPE\"\n    },\n    {\n      \"name\": \"flagPE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPK\"\n    },\n    {\n      \"name\": \"flagPK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPR\"\n    },\n    {\n      \"name\": \"flagPR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPT\"\n    },\n    {\n      \"name\": \"flagPT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagRO\"\n    },\n    {\n      \"name\": \"flagRO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagRO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagRS\"\n    },\n    {\n      \"name\": \"flagRS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagRS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagRU\"\n    },\n    {\n      \"name\": \"flagRU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagRU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagRW\"\n    },\n    {\n      \"name\": \"flagRW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagRW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSA\"\n    },\n    {\n      \"name\": \"flagSA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSG\"\n    },\n    {\n      \"name\": \"flagSG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSK\"\n    },\n    {\n      \"name\": \"flagSK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSL\"\n    },\n    {\n      \"name\": \"flagSL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSN\"\n    },\n    {\n      \"name\": \"flagSN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSO\"\n    },\n    {\n      \"name\": \"flagSO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSR\"\n    },\n    {\n      \"name\": \"flagSR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSY\"\n    },\n    {\n      \"name\": \"flagSY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTD\"\n    },\n    {\n      \"name\": \"flagTD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTH\"\n    },\n    {\n      \"name\": \"flagTH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTN\"\n    },\n    {\n      \"name\": \"flagTN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTR\"\n    },\n    {\n      \"name\": \"flagTR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTW\"\n    },\n    {\n      \"name\": \"flagTW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTZ\"\n    },\n    {\n      \"name\": \"flagTZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUA\"\n    },\n    {\n      \"name\": \"flagUA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUG\"\n    },\n    {\n      \"name\": \"flagUG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUY\"\n    },\n    {\n      \"name\": \"flagUY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagVE\"\n    },\n    {\n      \"name\": \"flagVE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagVE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagVN\"\n    },\n    {\n      \"name\": \"flagVN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagVN[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagYE\"\n    },\n    {\n      \"name\": \"flagYE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagYE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagZA\"\n    },\n    {\n      \"name\": \"flagZA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagZA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagZM\"\n    },\n    {\n      \"name\": \"flagZM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagZM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAD\"\n    },\n    {\n      \"name\": \"flagAD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAL\"\n    },\n    {\n      \"name\": \"flagAL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAR\"\n    },\n    {\n      \"name\": \"flagAR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBD\"\n    },\n    {\n      \"name\": \"flagBD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBD[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBG\"\n    },\n    {\n      \"name\": \"flagBG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBH\"\n    },\n    {\n      \"name\": \"flagBH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBI\"\n    },\n    {\n      \"name\": \"flagBI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBR\"\n    },\n    {\n      \"name\": \"flagBR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBZ\"\n    },\n    {\n      \"name\": \"flagBZ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBZ[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCG\"\n    },\n    {\n      \"name\": \"flagCG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCR\"\n    },\n    {\n      \"name\": \"flagCR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDE\"\n    },\n    {\n      \"name\": \"flagDE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDK\"\n    },\n    {\n      \"name\": \"flagDK\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDK[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagDO\"\n    },\n    {\n      \"name\": \"flagDO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagDO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagEE\"\n    },\n    {\n      \"name\": \"flagEE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagEE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGA\"\n    },\n    {\n      \"name\": \"flagGA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagGY\"\n    },\n    {\n      \"name\": \"flagGY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagGY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIL\"\n    },\n    {\n      \"name\": \"flagIL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIR\"\n    },\n    {\n      \"name\": \"flagIR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIR[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKG\"\n    },\n    {\n      \"name\": \"flagKG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKM\"\n    },\n    {\n      \"name\": \"flagKM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKM[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLI\"\n    },\n    {\n      \"name\": \"flagLI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLT\"\n    },\n    {\n      \"name\": \"flagLT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLU\"\n    },\n    {\n      \"name\": \"flagLU\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLU[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMC\"\n    },\n    {\n      \"name\": \"flagMC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMC[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagMX\"\n    },\n    {\n      \"name\": \"flagMX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagMX[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNE\"\n    },\n    {\n      \"name\": \"flagNE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNI\"\n    },\n    {\n      \"name\": \"flagNI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNO\"\n    },\n    {\n      \"name\": \"flagNO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagNP\"\n    },\n    {\n      \"name\": \"flagNP\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagNP[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPG\"\n    },\n    {\n      \"name\": \"flagPG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPL\"\n    },\n    {\n      \"name\": \"flagPL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPL[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPW\"\n    },\n    {\n      \"name\": \"flagPW\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPW[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSE\"\n    },\n    {\n      \"name\": \"flagSE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTT\"\n    },\n    {\n      \"name\": \"flagTT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAS\"\n    },\n    {\n      \"name\": \"flagAS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagUS\"\n    },\n    {\n      \"name\": \"flagUS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagUS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagAT\"\n    },\n    {\n      \"name\": \"flagAT\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagAT[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagCH\"\n    },\n    {\n      \"name\": \"flagCH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagCH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagIS\"\n    },\n    {\n      \"name\": \"flagIS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagIS[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagFI\"\n    },\n    {\n      \"name\": \"flagFI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagFI[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagPY\"\n    },\n    {\n      \"name\": \"flagPY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagPY[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBE\"\n    },\n    {\n      \"name\": \"flagBE\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBE[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagTG\"\n    },\n    {\n      \"name\": \"flagTG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagTG[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagQA\"\n    },\n    {\n      \"name\": \"flagQA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagQA[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagBO\"\n    },\n    {\n      \"name\": \"flagBO\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagBO[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagKH\"\n    },\n    {\n      \"name\": \"flagKH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagKH[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagSV\"\n    },\n    {\n      \"name\": \"flagSV\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagSV[${1:size}]\"\n      }\n    },\n    {\n      \"name\": \"flagLR\"\n    },\n    {\n      \"name\": \"flagLR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagLR[${1:size}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-fr3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstFrameBoxThreeD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PstFrameBoxThreeD{${1:stuff%text}}\"\n      }\n    },\n    {\n      \"name\": \"PstFrameBoxThreeD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PstFrameBoxThreeD[${2:options%keyvals}]{${1:stuff%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-fractal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-func\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psCantor\"\n    },\n    {\n      \"name\": \"psCantor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psCantor[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSier\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psSier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"psSier\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psSier(${3:x0},${4:y0}){${1:base}}{${2:recursion}}\"\n      }\n    },\n    {\n      \"name\": \"psSier\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSier[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSier\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psSier[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psSier\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psSier[${3:options%keyvals}](${4:x0},${5:y0}){${1:base}}{${2:recursion}}\"\n      }\n    },\n    {\n      \"name\": \"psSierCarpet\"\n    },\n    {\n      \"name\": \"psSierCarpet\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psSierCarpet(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psSierCarpet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSierCarpet[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSierCarpet\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSierCarpet[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psfractal\"\n    },\n    {\n      \"name\": \"psfractal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psfractal[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psfractal\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psfractal(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psfractal\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psfractal[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psPhyllotaxis\"\n    },\n    {\n      \"name\": \"psPhyllotaxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psPhyllotaxis[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psPhyllotaxis\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psPhyllotaxis(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psPhyllotaxis\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psPhyllotaxis[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psFern\"\n    },\n    {\n      \"name\": \"psFern\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psFern[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psFern\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psFern(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psFern\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psFern[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psKochflake\"\n    },\n    {\n      \"name\": \"psKochflake\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psKochflake[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psKochflake\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psKochflake(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psKochflake\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psKochflake[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psAppolonius\"\n    },\n    {\n      \"name\": \"psAppolonius\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psAppolonius[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psAppolonius\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psAppolonius(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psAppolonius\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psAppolonius[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psPTree\"\n    },\n    {\n      \"name\": \"psPTree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psPTree[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psPTree\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psPTree(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psPTree\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psPTree[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psFArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psFArrow{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"psFArrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psFArrow[${2:options%keyvals}]{${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"psFArrow\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psFArrow(${2:x},${3:y}){${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"psFArrow\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psFArrow[${2:options%keyvals}](${3:x},${4:y}){${1:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"psFibonacciWord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psFibonacciWord(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psFibonacciWord\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psFibonacciWord[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psFibonacci\"\n    },\n    {\n      \"name\": \"psFibonacci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psFibonacci[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psNewFibonacci\"\n    },\n    {\n      \"name\": \"psNewFibonacci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psNewFibonacci[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psiFibonacci\"\n    },\n    {\n      \"name\": \"psiFibonacci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psiFibonacci[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pskFibonacci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pskFibonacci[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pskFibonacci\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"pskFibonacci[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psBiperiodicFibonacci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psBiperiodicFibonacci[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psBiperiodicFibonacci\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psBiperiodicFibonacci[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psFibonacciPolyominoes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psFibonacciPolyominoes[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psFibonacciPolyominoes\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psFibonacciPolyominoes[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psHilbert\"\n    },\n    {\n      \"name\": \"psHilbert\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psHilbert[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psHenon\"\n    },\n    {\n      \"name\": \"psHenon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psHenon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psHugo\"\n    },\n    {\n      \"name\": \"psHugo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psHugo[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psHugo\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psHugo(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psHugo\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psHugo[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-fun.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-slpe\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psParrot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psParrot{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"psBill\"\n    },\n    {\n      \"name\": \"psFish\"\n    },\n    {\n      \"name\": \"psFish\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psFish[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psLouisXIII\"\n    },\n    {\n      \"name\": \"psLouisXIII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psLouisXIII[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psPulpo\"\n    },\n    {\n      \"name\": \"psPulpo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psPulpo[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Datas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psBranch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psBird\"\n    },\n    {\n      \"name\": \"psBird\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psBird[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psLuke\"\n    },\n    {\n      \"name\": \"psLuke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psLuke[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psAnt\"\n    },\n    {\n      \"name\": \"psAnt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psAnt[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psKangaroo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psKangaroo{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"psKangaroo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psKangaroo[${2:options%keyvals}]{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"psPig\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psPig(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psPig\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psPig[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-func.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-math\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ChebyshevT\"\n    },\n    {\n      \"name\": \"ChebyshevU\"\n    },\n    {\n      \"name\": \"psPolynomial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psPolynomial{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psPolynomial\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psPolynomial[${3:options%keyvals}]{${1:x start}}{${2:x end}}\"\n      }\n    },\n    {\n      \"name\": \"psBernstein\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psBernstein(${1:i},${2:n})\"\n      }\n    },\n    {\n      \"name\": \"psBernstein\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psBernstein(${1:t0},${2:t1})(${3:i},${4:n})\"\n      }\n    },\n    {\n      \"name\": \"psBernstein\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psBernstein[${1:options%keyvals}](${2:i},${3:n})\"\n      }\n    },\n    {\n      \"name\": \"psBernstein\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psBernstein[${1:options%keyvals}](${2:t0},${3:t1})(${4:i},${5:n})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerre\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLaguerre(${1:x0},${2:x1})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerre\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLaguerre[${1:options%keyvals}](${2:x0},${3:x1})\"\n      }\n    },\n    {\n      \"name\": \"psLegendre\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLegendre(${1:x0},${2:x1})\"\n      }\n    },\n    {\n      \"name\": \"psLegendre\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLegendre[${1:options%keyvals}](${2:x0},${3:x1})\"\n      }\n    },\n    {\n      \"name\": \"psZero\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psZero(${3:x0},${4:x1}){${1:function%definition}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psZero\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"psZero(${4:x0},${5:x1}){${1:functionA%definition}}[${3:functionB%definition}]{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psZero\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psZero[${3:options%keyvals}](${4:x0},${5:x1}){${1:function%definition}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psZero\",\n      \"arg\": {\n        \"format\": \"[](){}[]{}\",\n        \"snippet\": \"psZero[${3:options%keyvals}](${5:x0},${6:x1}){${1:functionA%definition}}[${4:functionB%definition}]{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psFourier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psFourier{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psFourier\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psFourier[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psBessel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psBessel{${1:order}}{${2:x0}}{${3:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psBessel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psBessel[${4:options%keyvals}]{${1:order}}{${2:x0}}{${3:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psModBessel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psModBessel{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psModBessel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psModBessel[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psSi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psSi{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psSi\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psSi[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"pssi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssi{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"pssi\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pssi[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCi\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCi{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCi\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCi[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psci\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psci{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psci\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psci[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psIntegral\",\n      \"arg\": {\n        \"format\": \"{}{}(){}\",\n        \"snippet\": \"psIntegral{${1:x0}}{${2:x1}}(${4:a},${5:b}){${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psIntegral\",\n      \"arg\": {\n        \"format\": \"[]{}{}(){}\",\n        \"snippet\": \"psIntegral[${4:options%keyvals}]{${1:x0}}{${2:x1}}(${5:a},${6:b}){${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psCumIntegral\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psCumIntegral{${1:x0}}{${2:x1}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psCumIntegral\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psCumIntegral[${4:options%keyvals}]{${1:x0}}{${2:x1}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psConv\",\n      \"arg\": {\n        \"format\": \"{}{}(){}{}\",\n        \"snippet\": \"psConv{${1:x0}}{${2:x1}}(${5:a},${6:b}){${3:function f%definition}}{${4:function g%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psConv\",\n      \"arg\": {\n        \"format\": \"[]{}{}(){}{}\",\n        \"snippet\": \"psConv[${5:options%keyvals}]{${1:x0}}{${2:x1}}(${6:a},${7:b}){${3:function f%definition}}{${4:function g%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psGauss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGauss{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psGauss\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psGauss[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psGaussI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGaussI{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psGaussI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psGaussI[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBinomial{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomial\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBinomial[${3:options}]{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBinomialC{${1:N}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialC\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBinomialC[${3:options%keyvals}]{${1:N}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialN\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBinomialN{${1:N}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialN\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBinomialN[${3:options%keyvals}]{${1:N}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBinomialF{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBinomialF[${3:options}]{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialFS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBinomialFS{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psBinomialFS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBinomialFS[${3:options}]{${1:<N> or <m,N> or <m,n,N>}}{${2:probability}}\"\n      }\n    },\n    {\n      \"name\": \"psPoisson\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psPoisson{${1:<N> or <M,N>}}{${2:lambda}}\"\n      }\n    },\n    {\n      \"name\": \"psPoisson\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psPoisson[${3:options}]{${1:<N> or <M,N>}}{${2:lambda}}\"\n      }\n    },\n    {\n      \"name\": \"psGammaDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGammaDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psGammaDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psGammaDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psChiIIDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psChiIIDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psChiIIDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psChiIIDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psTDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psTDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psTDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psTDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psNonCentralTDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psNonCentralTDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psNonCentralTDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psNonCentralTDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psFDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psFDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psFDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psFDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psNonCentralFDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psNonCentralFDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psNonCentralFDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psNonCentralFDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psBetaDist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBetaDist{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psBetaDist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBetaDist[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCauchy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCauchy{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCauchy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCauchy[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCauchyI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psCauchyI{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psCauchyI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psCauchyI[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psWeibull\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psWeibull{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psWeibull\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psWeibull[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psWeibullI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psWeibullI{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psWeibullI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psWeibullI[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psVasicek\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psVasicek{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psVasicek\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psVasicek[${3:options%keyvals}]{${1:x0}}{${2:x1}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psLorenz{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz<x data>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psLorenz<x data>{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psLorenz[${2:options%keyvals}]{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"psLorenz[${2:options%keyvals}]<${3:x data}>{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psLorenz*{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz*<x data>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psLorenz*<x data>{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psLorenz*[${2:options%keyvals}]{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLorenz*\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"psLorenz*[${2:options%keyvals}]<${3:x data}>{${1:y data}}\"\n      }\n    },\n    {\n      \"name\": \"psLame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psLame{${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"psLame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psLame[${2:options%keyvals}]{${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"psThomae\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psThomae(${2:x0},${3:x1}){${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"psThomae\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psThomae[${2:options%keyvals}](${3:x0},${4:x1}){${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"psWeierstrass\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psWeierstrass(${2:x0},${3:x1}){${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"psWeierstrass\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"psWeierstrass(${3:x0},${4:x1})[${2:a}]{${1:b}}\"\n      }\n    },\n    {\n      \"name\": \"psWeierstrass\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psWeierstrass[${2:options%keyvals}](${3:x0},${4:x1}){${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"psWeierstrass\",\n      \"arg\": {\n        \"format\": \"[]()[]{}\",\n        \"snippet\": \"psWeierstrass[${2:options%keyvals}](${4:x0},${5:x1})[${3:a}]{${1:b}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psplotImp(${2:xmin},${3:ymin})(${4:xmax},${5:ymax}){${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImp\",\n      \"arg\": {\n        \"format\": \"()()[]{}\",\n        \"snippet\": \"psplotImp(${3:xmin},${4:ymin})(${5:xmax},${6:ymax})[${2:PS code}]{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psplotImp[${2:options%keyvals}](${3:xmin},${4:ymin})(${5:xmax},${6:ymax}){${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotImp\",\n      \"arg\": {\n        \"format\": \"[]()()[]{}\",\n        \"snippet\": \"psplotImp[${2:options%keyvals}](${4:xmin},${5:ymin})(${6:xmax},${7:ymax})[${3:PS code}]{${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psVolume\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psVolume(${3:x0},${4:x1}){${1:steps}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psVolume\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psVolume[${3:options%keyvals}](${4:x0},${5:x1}){${1:steps}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psGetZeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psGetZeros(${2:x0},${3:x1}){${1:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLaguerreC(${1:xmin},${2:xmax})(${3:ymin},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLaguerreC[${1:options%keyvals}](${2:xmin},${3:xmax})(${4:ymin},${5:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLaguerreCC(${1:xmin},${2:xmax})(${3:ymin},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLaguerreCC[${1:options%keyvals}](${2:xmin},${3:xmax})(${4:ymin},${5:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLaguerreCCC(${1:xmin},${2:xmax})(${3:ymin},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLaguerreCCC[${1:options%keyvals}](${2:xmin},${3:xmax})(${4:ymin},${5:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCCCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLaguerreCCCC(${1:xmin},${2:xmax})(${3:ymin},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psLaguerreCCCC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLaguerreCCCC[${1:options%keyvals}](${2:xmin},${3:xmax})(${4:ymin},${5:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psContourLaguerre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psContourLaguerre(${1:xmin},${2:xmax})(${3:ymin},${4:ymax})\"\n      }\n    },\n    {\n      \"name\": \"psContourLaguerre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psContourLaguerre[${1:options%keyvals}](${2:xmin},${3:xmax})(${4:ymin},${5:ymax})\"\n      }\n    },\n    {\n      \"name\": \"cplotstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psCplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"psCplot{${1:x0}}{${2:x1}}{${3:vars}}{${4:function%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-gantt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstGanttChart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PstGanttChart{${1:vertical units}}{${2:horizontal units}}\"\n      }\n    },\n    {\n      \"name\": \"PstGanttChart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PstGanttChart[${3:options%keyvals}]{${1:vertical units}}{${2:horizontal units}}\",\n        \"keys\": [\n          \"\\\\PstGanttChart#c,\\\\begin{PstGanttChart}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endPstGanttChart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGanttTask\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PstGanttTask{${1:start}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"PstGanttTask\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PstGanttTask[${3:options%keyvals}]{${1:start}}{${2:end}}\",\n        \"keys\": [\n          \"\\\\PstGanttTask#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"PstGanttChart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:vertical units}}{${2:horizontal units}}\"\n      }\n    },\n    {\n      \"name\": \"PstGanttChart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:vertical units}}{${2:horizontal units}}\",\n        \"keys\": [\n          \"\\\\PstGanttChart#c,\\\\begin{PstGanttChart}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\PstGanttChart#c,\\\\begin{PstGanttChart}#c\": [\n      \"PstPicture\",\n      \"ChartShowIntervals\",\n      \"ChartStartInterval=${1:number}\",\n      \"ChartModulo\",\n      \"ChartModuloValue=${1:number}\",\n      \"ChartUnitIntervalName=${1:name}\",\n      \"ChartUnitBasicIntervalName=${1:name}\",\n      \"TaskUnitIntervalValue=${1:number}\",\n      \"TaskUnitType=${1:text}\",\n      \"TaskOutsideLabelMaxSize=${1:number}\",\n      \"unit=${1:number}\",\n      \"xunit=${1:number}\",\n      \"yunit=${1:number}\"\n    ],\n    \"\\\\PstGanttTask#c\": [\n      \"TaskUnitType=${1:text}\",\n      \"TaskOutsideLabel={${1:text}}\",\n      \"TaskInsideLabel={${1:text}}\",\n      \"TaskStyle=${1:style}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-geo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"WorldMap\"\n    },\n    {\n      \"name\": \"WorldMap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WorldMap[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\WorldMap#c,\\\\WorldMapII#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WorldMapII\"\n    },\n    {\n      \"name\": \"WorldMapII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WorldMapII[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\WorldMap#c,\\\\WorldMapII#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WorldMapThreeD\"\n    },\n    {\n      \"name\": \"WorldMapThreeD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WorldMapThreeD[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\WorldMapThreeD#c,\\\\WorldMapThreeDII#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WorldMapThreeDII\"\n    },\n    {\n      \"name\": \"WorldMapThreeDII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WorldMapThreeDII[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\WorldMapThreeD#c,\\\\WorldMapThreeDII#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psNodeLabelStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TypeProjection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnodeMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pnodeMap(${2:longitude},${3:latitude}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mapput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"mapput(${2:longitude},${3:latitude}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mapput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}[]\",\n        \"snippet\": \"mapput(${4:longitude},${5:latitude})[${2:node name}]{${1:label}}[${3:country}]\"\n      }\n    },\n    {\n      \"name\": \"mapput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"mapput[${2:angle}](${3:longitude},${4:latitude}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mapput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()[]{}[]\",\n        \"snippet\": \"mapput[${2:angle}](${5:longitude},${6:latitude})[${3:node name}]{${1:label}}[${4:country}]\"\n      }\n    },\n    {\n      \"name\": \"psmeridiencolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmapcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psparallelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psislandcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscoastcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psoceancolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psrivercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswfraczoncolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswmaglincolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psridgecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstransfrmcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstrenchcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgridmapcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscirclecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmeridienwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psparallelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscirclewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgridmapwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psborderwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscoastwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswfraczonwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswmaglinwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psridgewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnodeMapIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pnodeMapIIID(${2:longitude},${3:latitude}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mapputIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"mapputIIID(${2:longitude},${3:latitude}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mapputIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}[]\",\n        \"snippet\": \"mapputIIID(${4:longitude},${5:latitude})[${2:node name}]{${1:label}}[${3:country}]\"\n      }\n    },\n    {\n      \"name\": \"mapputIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"mapputIIID[${2:angle}](${3:longitude},${4:latitude}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mapputIIID\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()[]{}[]\",\n        \"snippet\": \"mapputIIID[${2:angle}](${5:longitude},${6:latitude})[${3:node name}]{${1:label}}[${4:country}]\"\n      }\n    },\n    {\n      \"name\": \"psmeridien\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psmeridien{${1:longitude}}\"\n      }\n    },\n    {\n      \"name\": \"psparallel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psparallel{${1:latitude}}\"\n      }\n    },\n    {\n      \"name\": \"psGlobeTellure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psGlobeTellure(${2:longitude},${3:latitude}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psGlobeTellure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psGlobeTellure[${2:options%keyvals}](${3:longitude},${4:latitude}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psepicenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psepicenter(${2:longitude},${3:latitude}){${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\WorldMap#c,\\\\WorldMapII#c\": [\n      \"Africa\",\n      \"all\",\n      \"Asia\",\n      \"Australia\",\n      \"borders\",\n      \"capitals\",\n      \"cities\",\n      \"Europe\",\n      \"Fill\",\n      \"increment=${1:degrees}\",\n      \"LakeFillColor=\",\n      \"level=${1:level}\",\n      \"limiteL=${1:longitude in degrees}\",\n      \"linewidth=\",\n      \"maillage\",\n      \"MapFillColor=\",\n      \"Mexico\",\n      \"Northamerica\",\n      \"path=${1:path}\",\n      \"RiverFillColor=\",\n      \"rivers\",\n      \"SeaFillColor=\",\n      \"Southamerica\",\n      \"specialData=\",\n      \"type=${1|1,2,3,4,5,6,7,8|}\",\n      \"USA\"\n    ],\n    \"\\\\WorldMapThreeD#c,\\\\WorldMapThreeDII#c\": [\n      \"Africa\",\n      \"all\",\n      \"Asia\",\n      \"Australia\",\n      \"blueEarth\",\n      \"bordercolor=\",\n      \"borders\",\n      \"borderwidth=\",\n      \"Canada\",\n      \"capitals\",\n      \"circlecolor=\",\n      \"circles\",\n      \"circlesep=${1:number}\",\n      \"circlewidth=\",\n      \"cities\",\n      \"coastcolor=\",\n      \"coasts\",\n      \"coastwidth=\",\n      \"Day=${1:day}\",\n      \"daynight\",\n      \"Decran=${1:distance}\",\n      \"Dobs=${1:distance}\",\n      \"Europe\",\n      \"fillstyle=${1:style}\",\n      \"France\",\n      \"Germany\",\n      \"gridmap\",\n      \"gridmapcolor=\",\n      \"gridmapdiv=${1:number}\",\n      \"gridmapwidth=\",\n      \"hour=${1:hour}\",\n      \"increment=${1:degrees}\",\n      \"islandcolor=\",\n      \"islands\",\n      \"lakes\",\n      \"latitude0=${1:degrees}\",\n      \"latitudeParallel=${1:degrees}\",\n      \"level=${1|1,2|}\",\n      \"linewidth=\",\n      \"longitude0=${1:degrees}\",\n      \"longitudeMeridien=${1:degrees}\",\n      \"maillage\",\n      \"mapcolor=\",\n      \"MapFillColor=\",\n      \"Mexico\",\n      \"Month=${1:month}\",\n      \"Northamerica\",\n      \"oceancolor=\",\n      \"opacity=${1:factor}\",\n      \"parallelcolor=\",\n      \"parallelwidth=\",\n      \"path=${1:path}\",\n      \"PHI=${1:longitude in degrees}\",\n      \"Radius=${1:radius}\",\n      \"ridge\",\n      \"ridgecolor=\",\n      \"ridgewidth=\",\n      \"rivercolor=\",\n      \"rivers\",\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\",\n      \"Southamerica\",\n      \"specialData=\",\n      \"THETA=${1:latitude in degrees}\",\n      \"transfrmcolor=\",\n      \"trenchcolor=\",\n      \"USA\",\n      \"visibility\",\n      \"wfraczon\",\n      \"wfraczoncolor=\",\n      \"wfraczonwidth=\",\n      \"wmaglin\",\n      \"wmaglincolor=\",\n      \"wmaglinwidth=\",\n      \"Year=${1:year}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-geometrictools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-node\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psProtractor\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psProtractor{${1:angle}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psProtractor\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psProtractor[${2:options%keyvals}]{${1:angle}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"ProLineCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProFillCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPencil\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psPencil{${1:angle}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psPencil\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psPencil[${2:options%keyvals}]{${1:angle}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"pencilColA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pencilColB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psRuler\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psRuler{${1:angle}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psRuler\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psRuler[${2:options%keyvals}]{${1:angle}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"RulerFillCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psCompass\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psCompass{${1:radius}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psCompass\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psCompass[${2:options%keyvals}]{${1:radius}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"PoCFillCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PoCMineCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psDistAB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psDistAB(${2:A})(${3:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psAngleAB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psAngleAB(${2:A})(${3:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psAngleAOB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psAngleAOB(${2:A})(${3:O})(${4:B}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psParallels\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psParallels(${1:A})(${2:B})(${3:C})\"\n      }\n    },\n    {\n      \"name\": \"psParallels\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psParallels[${1:options%keyvals}](${2:A})(${3:B})(${4:C})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-gr3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstGridThreeD\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstGridThreeD(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"PstGridThreeD\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstGridThreeD[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"PstGridThreeDYFace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PstGridThreeDYFace{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"PstGridThreeDHookNode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGridThreeDHookXFace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGridThreeDHookYFace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGridThreeDHookZFace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGridThreeDHookEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstGridThreeDNodeProcessor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PstGridThreeDNodeProcessor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-hsb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psparametricplotHSB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psparametricplotHSB{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplotHSB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psparametricplotHSB[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pslineHSB\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pslineHSB(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pslineHSB\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pslineHSB[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-infixplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"infix-RPN\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psPlot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psPlot{${1:x0}}{${2:x1}}{${3:infix expr}}\"\n      }\n    },\n    {\n      \"name\": \"psPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{infi\",\n        \"snippet\": \"psPlot[${3:options%keyvals}]{${1:x0}}{${2:x1}}{infi\"\n      }\n    },\n    {\n      \"name\": \"parametricPlot\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"parametricPlot{${1:t0}}{${2:t1}}{${3:x(${5:t})}}{${4:y(${6:t})}}\"\n      }\n    },\n    {\n      \"name\": \"parametricPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"parametricPlot[${5:options}]{${1:t0}}{${2:t1}}{${3:x(${6:t})}}{${4:y(${7:t})}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-intersect.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-func\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pssavepath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssavepath{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pssavepath\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pssavepath[${3:options%keyvals}]{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"psintersect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psintersect{${1:curveA}}{${2:curveB}}\"\n      }\n    },\n    {\n      \"name\": \"psintersect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psintersect[${3:options%keyvals}]{${1:curveA}}{${2:curveB}}\"\n      }\n    },\n    {\n      \"name\": \"pstracecurve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstracecurve{${1:curve name}}\"\n      }\n    },\n    {\n      \"name\": \"pstracecurve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstracecurve{${1:intersection}}{${2:curve name}}\"\n      }\n    },\n    {\n      \"name\": \"pstracecurve\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstracecurve[${2:options%keyvals}]{${1:curve name}}\"\n      }\n    },\n    {\n      \"name\": \"pstracecurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstracecurve[${3:options%keyvals}]{${1:intersection}}{${2:curve name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetCurvePoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGetCurvePoint{${1:curve name}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psGetIsectCenter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psGetIsectCenter{${1:intersection}}{${2:curve name}}{${3:macro%cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-jtree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"jtree\"\n    },\n    {\n      \"name\": \"jtree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jtree[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"endjtree\"\n    },\n    {\n      \"name\": \"defbranch<name>\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"defbranch<name>(${1:height})(${2:slope})\"\n      }\n    },\n    {\n      \"name\": \"deftriangle<name>\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"deftriangle<name>(${1:height})(${2:slopeA})(${3:slopeB})\"\n      }\n    },\n    {\n      \"name\": \"triline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"triline{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"triwd\"\n    },\n    {\n      \"name\": \"defvartriangle<name>\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"defvartriangle<name>(${1:height})\"\n      }\n    },\n    {\n      \"name\": \"jtlong\"\n    },\n    {\n      \"name\": \"jtshort\"\n    },\n    {\n      \"name\": \"jtwide\"\n    },\n    {\n      \"name\": \"jtbig\"\n    },\n    {\n      \"name\": \"jtjot\"\n    },\n    {\n      \"name\": \"blank\"\n    },\n    {\n      \"name\": \"brokenbranch\"\n    },\n    {\n      \"name\": \"etcbranch\"\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"stuff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stuff[${1:tag}]\"\n      }\n    },\n    {\n      \"name\": \"defstuff\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defstuff[${2:tag}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"multiline\"\n    },\n    {\n      \"name\": \"endmultiline\"\n    },\n    {\n      \"name\": \"psinterpolate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psinterpolate(${3:node1})(${4:node2}){${1:num}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"elc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elc{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"elc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"elc[${2:options%keyvals}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"adjoinop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jtreevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"jtreevalue{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"NormalLabelStrut\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"jtree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jtree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"multiline\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-key.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psset{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys{${1:family}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-knot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psKnot\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psKnot(${2:x},${3:y}){${1:knot type}}\"\n      }\n    },\n    {\n      \"name\": \"psKnot\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psKnot[${2:options%keyvals}](${3:x},${4:y}){${1:knot type}}\"\n      }\n    },\n    {\n      \"name\": \"psBorromean\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psBorromean(${3:x},${4:y}){${1:circle radius}}{${2:inner radius}}\"\n      }\n    },\n    {\n      \"name\": \"psBorromean\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psBorromean[${3:options%keyvals}](${4:x},${5:y}){${1:circle radius}}{${2:inner radius}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-labo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstBullesChampagne\"\n    },\n    {\n      \"name\": \"pstBullesChampagne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstBullesChampagne[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pstFilaments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstFilaments{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pstFilaments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstFilaments[${2:value}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pstBilles\"\n    },\n    {\n      \"name\": \"pstBilles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstBilles[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pstBULLES\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstBULLES{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pstBULLES\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstBULLES[${2:value}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pstTournureCuivre\"\n    },\n    {\n      \"name\": \"pstTournureCuivre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstTournureCuivre[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pstClouFer\"\n    },\n    {\n      \"name\": \"pstClouFer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstClouFer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pstGrenailleZinc\"\n    },\n    {\n      \"name\": \"pstGrenailleZinc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstGrenailleZinc[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pstTubeEssais\"\n    },\n    {\n      \"name\": \"pstTubeEssais\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstTubeEssais[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstChauffageTube\"\n    },\n    {\n      \"name\": \"pstChauffageTube\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstChauffageTube[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstBallon\"\n    },\n    {\n      \"name\": \"pstBallon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstBallon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstChauffageBallon\"\n    },\n    {\n      \"name\": \"pstChauffageBallon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstChauffageBallon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstEntonnoir\"\n    },\n    {\n      \"name\": \"pstEntonnoir\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstEntonnoir[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstEprouvette\"\n    },\n    {\n      \"name\": \"pstEprouvette\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstEprouvette[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstpipette\"\n    },\n    {\n      \"name\": \"pstpipette\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstpipette[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstDosage\"\n    },\n    {\n      \"name\": \"pstDosage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstDosage[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstDistillation\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstDistillation(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstDistillation\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstDistillation[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstSeparateFunnel\"\n    },\n    {\n      \"name\": \"pstSeparateFunnel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstSeparateFunnel[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstSupport\"\n    },\n    {\n      \"name\": \"chauffe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cristallisoir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InterieurCristallisoir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register%cmd}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register%cmd}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-layout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"arrayjobx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showRC\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pslayout\"\n    },\n    {\n      \"name\": \"pslayout*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-lens.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstLens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PstLens{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PstLens\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"PstLens(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PstLens\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PstLens[${2:options%keyvals}]{${1:stuff}}\",\n        \"keys\": [\n          \"\\\\PstLens\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PstLens\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"PstLens[${2:options%keyvals}](${3:x},${4:y}){${1:stuff}}\",\n        \"keys\": [\n          \"\\\\PstLens\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PstLensShape\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\PstLens\": [\n      \"LensHandle\",\n      \"LensStyleHandle=${1:style}\",\n      \"LensHandleWidth=\",\n      \"LensHandleHeight=\",\n      \"LensShadow\",\n      \"LensStyleGlass=${1:style}\",\n      \"LensSize=\",\n      \"LensMagnification=${1:factor}\",\n      \"LensRotation=${1:degrees}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-light3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstLightThreeDGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PstLightThreeDGraphic{${1:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"PstLightThreeDGraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PstLightThreeDGraphic[${2:options%keyvals}]{${1:graphic}}\"\n      }\n    },\n    {\n      \"name\": \"PstLightThreeDText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PstLightThreeDText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PstLightThreeDText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PstLightThreeDText[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-lsystem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pslsystem\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pslsystem(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"pslsystem\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"pslsystem[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\pslsystem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pslsystem#c\": [\n      \"F=${1:Rule F → (F)}\",\n      \"X=${1:Rule X → (F,X,Y)}\",\n      \"Y=${1:Rule Y → (F,X,Y)}\",\n      \"Start=${1:Startrule S → (F,X,Y)}\",\n      \"Angle=${1:degrees}\",\n      \"N=${1:number of recursive calls}\",\n      \"Ftype=${1|1,2,3,4|}\",\n      \"BaseLength=\",\n      \"usecolor=${1|0,1,2,3,4|}\",\n      \"linecolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-magneticfield.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-arrow\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psmagneticfield\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psmagneticfield(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psmagneticfield\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psmagneticfield[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\psmagneticfield#c,\\\\psmagneticfieldThreeD#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psmagneticfieldThreeD\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psmagneticfieldThreeD(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"psmagneticfieldThreeD\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psmagneticfieldThreeD[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\psmagneticfield#c,\\\\psmagneticfieldThreeD#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psBarMagnet\"\n    },\n    {\n      \"name\": \"psBarMagnet\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psBarMagnet(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psBarMagnet\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psBarMagnet[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psBarMagnet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psBarMagnet\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psBarMagnet[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psBarMagnet#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psmagneticfield#c,\\\\psmagneticfieldThreeD#c\": [\n      \"R=${1:number}\",\n      \"N=${1:number}\",\n      \"L=${1:number}\",\n      \"nL=${1:integer}\",\n      \"numSpires=\",\n      \"pointsB=${1:integer}\",\n      \"pointsS=${1:integer}\",\n      \"PasB=${1:number}\",\n      \"PasS=${1:number}\",\n      \"nS=${1:integer}\",\n      \"styleSpire=${1:style}\",\n      \"styleCourant=${1:style}\",\n      \"drawSelf\",\n      \"AntiHelmholtz\",\n      \"StreamDensityPlot\",\n      \"setgray\",\n      \"changeNS\",\n      \"linecolor=\"\n    ],\n    \"\\\\psBarMagnet#c\": [\n      \"rot=${1:degrees}\",\n      \"showField\",\n      \"showPoleLabels\",\n      \"fontstyle=${1:font commands}\",\n      \"magnetScale=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-marble.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psMarble\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psMarble(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"psMarble\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psMarble(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psMarble\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psMarble[${1:options%keyvals}](${2:width},${3:height})\",\n        \"keys\": [\n          \"\\\\psMarble#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psMarble\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psMarble[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\",\n        \"keys\": [\n          \"\\\\psMarble#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psMarble#c\": [\n      \"actions={${1:marbling actions}}\",\n      \"spractions={${1:spray actions}}\",\n      \"shadings={${1:shading actions}}\",\n      \"background={[${1:r g b}]}\",\n      \"paper={[${1:r g b}]}\",\n      \"drawcontours\",\n      \"seed=${1:seed}\",\n      \"oversample=${1:number}\",\n      \"overscan=${1:number}\",\n      \"bckg\",\n      \"colors={[${1:r1 g1 b1}] ${2:[r2 b2 g2] ...}}\",\n      \"colors={(${1:RrGgBb}) ${2:(RrGgBb) ...}}\",\n      \"viscosity=${1:number}\",\n      \"linewidth=\",\n      \"linecolor=\",\n      \"blendmode=${1:mode number}\",\n      \"shapealpha=${1:number}\",\n      \"opacity=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-calculate\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defineRandIntervall\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"defineRandIntervall(${2:min},${3:max}){${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeSimpleRandomNumberList\"\n    },\n    {\n      \"name\": \"makeRandomNumberList\"\n    },\n    {\n      \"name\": \"getNumberFromList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getNumberFromList{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-mirror.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstSphereText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstSphereText(${2:x},${3:y},${4:z}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstSphereText[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCube\"\n    },\n    {\n      \"name\": \"pstSphereDie\"\n    },\n    {\n      \"name\": \"pstSphereTetraedre\"\n    },\n    {\n      \"name\": \"pstSpherePoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstSpherePoint(${2:x},${3:y},${4:z}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"NormalIIIDCoor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstSphereCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstSphereCircle{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstSphereCircle[${2:options%keyvals}]{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstSphereArc{${1:radius}}{${2:angle min}}{${3:angle max}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereArc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pstSphereArc[${4:options%keyvals}]{${1:radius}}{${2:angle min}}{${3:angle max}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereFrame\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstSphereFrame(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstSphereFrame\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstSphereFrame[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pstSphereGrid\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pstSphereGrid(${1:x},${2:y},${3:z})\"\n      }\n    },\n    {\n      \"name\": \"pstSphereGrid\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"pstSphereGrid[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"pstMirrorSphere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstMirrorSphere{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCylinder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstSphereCylinder{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCylinder\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstSphereCylinder[${3:options%keyvals}]{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstSphereCone{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereCone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstSphereCone[${3:options%keyvals}]{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pstSpherePyramide\"\n    },\n    {\n      \"name\": \"pstSphereImage\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstSphereImage(${2:x},${3:y},${4:z}){${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pstSphereImage\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstSphereImage[${2:options%keyvals}](${3:x},${4:y},${5:z}){${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotSphere\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parametricplotSphere{${1:x0}}{${2:x1}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotSphere\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"parametricplotSphere{${1:x0}}{${2:x1}}[${4:PS code}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotSphere\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"parametricplotSphere[${4:options%keyvals}]{${1:x0}}{${2:x1}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplotSphere\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"parametricplotSphere[${4:options%keyvals}]{${1:x0}}{${2:x1}}[${5:PS code}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pstFaceSAB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFaceSAB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstFaceSAB[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstFaceSBC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFaceSBC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstFaceSBC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstFaceSCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFaceSCD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstFaceSCD[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstFaceSDA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFaceSDA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstFaceSDA[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pstFaceABCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstFaceABCD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstFaceABCD[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-moire.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psmoire\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psmoire(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psmoire\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psmoire[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psmoire#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtomoirelisttype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtomoirelisttype{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psRandomDotPatterns\"\n    },\n    {\n      \"name\": \"psRandomDotPatterns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psRandomDotPatterns[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psRandomDotPatterns#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psRandomDot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psRandomDot(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psRandomDot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psRandomDot[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psRandomDot#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psGlassPattern\"\n    },\n    {\n      \"name\": \"psGlassPattern\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psGlassPattern[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psGlassPattern#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"variablesMoirages\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psmoire#c\": [\n      \"type=${1|Fresnel,linear,radial,circle,square,Newton,Bouasse,Gauss,dot,chess|}\",\n      \"rotate=${1:degrees}\",\n      \"Rmax=${1:length in cm}\",\n      \"scale=${1:factor}\",\n      \"Alpha=${1:degrees}\",\n      \"E=${1:distance in cm}\",\n      \"n=${1:number}\",\n      \"T=${1:distance in mm}\",\n      \"linewidth=\",\n      \"linecolor=\",\n      \"dotstyle=${1:style}\",\n      \"dotsize=\"\n    ],\n    \"\\\\psRandomDotPatterns#c\": [\n      \"NumberDots=${1:integer}\",\n      \"coefficients=${1:a b θ x0 y0}\",\n      \"srand=${1:random seed}\",\n      \"layer\",\n      \"revlayer\",\n      \"linecolor=\",\n      \"fillcolor=\",\n      \"unit=${1:number}\"\n    ],\n    \"\\\\psRandomDot#c\": [\n      \"hole=${1|round,square|}\",\n      \"r=${1:radius in pts}\",\n      \"p=${1:distance in pts}\",\n      \"rotate=${1:degrees}\",\n      \"k=${1:dispersion factor}\",\n      \"symbole=${1:digit or letter}\",\n      \"PSfont=${1:PS font name}\",\n      \"fontsize=${1:size in pts}\",\n      \"vadjust=${1:number}\",\n      \"hadjust=${1:number}\"\n    ],\n    \"\\\\psGlassPattern#c\": [\n      \"function=${1:function}\",\n      \"layers\",\n      \"linecolor=\",\n      \"fillcolor=\",\n      \"dotsize=\",\n      \"dotstyle=${1:style}\",\n      \"unit=${1:number}\",\n      \"algebraic\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-node.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"actualscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actualscale{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"algparnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"algparnode{${1:t}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"AplusB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"AplusB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowNotch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ArrowNotch{${1:node name}}{${2:node index}}{${3:direction}}{${4:notch}}\"\n      }\n    },\n    {\n      \"name\": \"AtoB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"AtoB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Circlenode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Circlenode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Circlenode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Circlenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Circlenode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"circlenode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"circlenode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"circlenode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"circlenode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"circlenode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Cnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnode(${3:x},${4:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Cnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnode*(${3:x},${4:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Cnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnode*[${3:options%keyvals}](${4:x},${5:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Cnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"cnode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnode[${3:options%keyvals}](${4:x},${5:y}){${1:radius}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"Cnodeput(${4:x},${5:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnodeput(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cnodeput(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"Cnodeput*(${4:x},${5:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"cnodeput*(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"Cnodeput*(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"Cnodeput*[${4:options%keyvals}](${5:x},${6:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnodeput*[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"Cnodeput*[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"cnodeput*[${4:options%keyvals}]{${1:angle}}(${5:x},${6:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"cnodeput*{${1:angle}}(${4:x},${5:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"Cnodeput[${4:options%keyvals}](${5:x},${6:y}){${1:angle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"cnodeput[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cnodeput\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"Cnodeput[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"cnodeput[${4:options%keyvals}]{${1:angle}}(${5:x},${6:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cnodeput\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"cnodeput{${1:angle}}(${4:x},${5:y}){${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"curvepnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"curvepnode{${1:tval}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"curvepnodes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"curvepnodes{${1:tmin}}{${2:tmax}}{${3:expr in t%definition}}{${4:node root}}\"\n      }\n    },\n    {\n      \"name\": \"defaultvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defaultvalue{${1:cmd}}{${2:val}}\"\n      }\n    },\n    {\n      \"name\": \"dianode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dianode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dianode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dianode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dianode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dianode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"dotnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"dotnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"dotnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dotnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"dotnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"endpsmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"fnode*(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fnode*[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"fnode[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"fnpnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fnpnode{${1:xval}}{${2:expr in x%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"fnpnodes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"fnpnodes{${1:xmin}}{${2:xmax}}{${3:expr in x%definition}}{${4:node root}}\"\n      }\n    },\n    {\n      \"name\": \"getnodelist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getnodelist{${1:node root}}{${2:next command}}\"\n      }\n    },\n    {\n      \"name\": \"hasparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hasequal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hascolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeShortNab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeShortNab{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortTab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeShortTab{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortTablr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"MakeShortTablr{${1:char1}}{${2:char2}}{${3:char3}}{${4:char4}}\"\n      }\n    },\n    {\n      \"name\": \"midAB\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"midAB(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"naput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"naput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"naput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"naput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nbput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nbput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nbput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangle*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangle*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangle*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangle*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangle[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangle[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangle{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangle{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangles*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangles*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangles*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangles*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncangles[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncangles[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncangles{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncangles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncangles{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncarc*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarc*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncarc*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarc*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncarc[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarc[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncarc{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarc{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarcbox*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarcbox*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncarcbox[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncarcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncarcbox{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncbar*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbar*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncbar*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbar*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncbar[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbar[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncbar{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbar{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbarr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbarr[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbarr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbarr{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbox*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbox*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncbox[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncbox{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccircle*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccircle*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccircle*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccircle*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccircle[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccircle[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccircle{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccircle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccircle{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccoil[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccoil[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccoil{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccoil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccoil{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccurve*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccurve*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccurve*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccurve*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nccurve[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nccurve[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nccurve{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nccurve\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nccurve{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiagg*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiagg*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiagg*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiagg*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncdiagg[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncdiagg[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncdiagg{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncdiagg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncdiagg{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncline*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncLine*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncline*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncLine*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncline*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncLine*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncline*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncLine*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncline[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncLine[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncline[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncLine[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncline{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncLine{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncline{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncLine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncLine{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nclines[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nclines[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nclines{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nclines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nclines{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncloop*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncloop*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncloop*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncloop*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncloop[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ncloop[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncloop{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncloop{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"ncput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ncput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ncput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ncput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ncput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag*[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag*[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag*{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag*{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nczigzag[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nczigzag[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nczigzag{${1:arrows}}{${2:nodeA}}{${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nczigzag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nczigzag{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"nlput\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"nlput(${3:A})(${4:B}){${1:distance%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"nlput\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"nlput[${3:options%keyvals}](${4:A})(${5:B}){${1:distance%l}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"nodenameA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodenameB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nodex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodex{${1:expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"nodexn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nodexn{${1:expr%definition}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"normalvec\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"normalvec(${2:coords}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"nput*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nput*[${4:options%keyvals}]{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nput*{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nput[${4:options%keyvals}]{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nput\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nput{${1:refangle}}{${2:name}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ovalnode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ovalnode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ovalnode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ovalnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"parsenodexn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"parsenodexn{${1:arg1}}(${3:arg2}){${2:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangle(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangle*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangle*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangle*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangle*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangle[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangle[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangle\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangle{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcangles*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangles*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangles*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcangles[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcangles[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcangles\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcangles{${1:nodeA}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarc(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarc*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarc*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcarc*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcarc*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarc[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcarc[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarc\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcarc{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarcbox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcarcbox*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarcbox*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcarcbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcarcbox[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbar(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbar*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbar*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcbar*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcbar*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbar[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcbar[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbar\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcbar{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbox(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcbox*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbox*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcbox[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pccurve(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pccurve*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pccurve*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pccurve*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pccurve*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pccurve[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pccurve[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pccurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pccurve{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiag(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiag*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiag*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcdiag*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcdiag*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiag[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcdiag[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiag\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcdiag{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcdiagg\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcdiagg(${1:nodeA})(${2:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"pcdiagg\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcdiagg[${1:options%keyvals}](${2:nodeA})(${3:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcline(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcline*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcline*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcline*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcline*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcline[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcline[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcline\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcline{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcloop(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pcloop*(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcloop*[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcloop*[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcloop*{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pcloop[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pcloop[${2:options%keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pcloop\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pcloop{${1:arrows}}(${2:x1},${3:y1})(${4:x2},${5:y2})\"\n      }\n    },\n    {\n      \"name\": \"pnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pnode(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pnode[${2:offset}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"polyIntersections\",\n      \"arg\": {\n        \"format\": \"{}{}()(){}{}\",\n        \"snippet\": \"polyIntersections{${1:name1}}{${2:name2}}(${5:A})(${6:B}){${3:P}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"pscloseNodeFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psDefBoxNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psDefBoxNodes{${1:node name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psDefPSPNodes\"\n    },\n    {\n      \"name\": \"psGetCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetCenter{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetEdgeA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGetEdgeA{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"psGetEdgeB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psGetEdgeB{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeCenter{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeEdgeA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeEdgeA{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psGetNodeEdgeB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psGetNodeEdgeB{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNode\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"psLCNode[${4:P1}]{${1:val1}}[${5:P2}]{${2:val2}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psLCNode{${1:val1}}{${2:val2}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLCNodeVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psLCNodeVar(${2:nodeA})(${3:nodeB})(${4:factorA},${5:factorB}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLDNode\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psLDNode(${3:A})(${4:B}){${1:distance%l}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLDNode\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psLDNode[${3:options%keyvals}](${4:A})(${5:B}){${1:distance%l}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"psLNode[${3:P1}][${4:P2}]{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psLNode[${3:P1}]{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psLNode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psLNode{${1:value}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psmatrix[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psncurve(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psncurve[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psncurve[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psncurve\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psncurve{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnccurve(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnccurve[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnccurve[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnccurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnccurve{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnline(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnline[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnline[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnline\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnline{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnode\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psnode(${3:x},${4:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psnode\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psnode[${3:options%keyvals}](${4:x},${5:y}){${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psnpolygon(${2:x},${3:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psnpolygon[${2:options%keyvals}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psnpolygon[${3:options%keyvals}]{${1:arrows}}(${4:x},${5:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psnpolygon\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psnpolygon{${1:arrows}}(${3:x},${4:y}){${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"psopenNodeFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psparnode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psparnode{${1:t}}{${2:expr in t%definition}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLineVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psRelLineVar(${2:nodeA})(${3:nodeB})(${4:radius;angle}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"psRelNode[${3:P0}][${4:P1}]{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psRelNode[${3:P0}]{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psRelNode{${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelNodeVar\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psRelNodeVar(${2:nodeA})(${3:nodeB})(${4:radius;angle}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psspan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psspan{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"pstiterate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psxline(${3:basept}){${1:nodeexpr1%definition}}{${2:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psxline[${3:options%keyvals}](${4:basept}){${1:nodeexpr1%definition}}{${2:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}\",\n        \"snippet\": \"psxline[${4:options%keyvals}]{${1:arrows}}(${5:basept}){${2:nodeexpr1%definition}}{${3:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psxline\",\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"psxline{${1:arrows}}(${4:basept}){${2:nodeexpr1%definition}}{${3:nodeexpr2%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rhombus\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"rhombus{${1:edge length}}(${4:A})(${5:B}){${2:C}}{${3:D}}\"\n      }\n    },\n    {\n      \"name\": \"rnode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rnode[${3:refpoint}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Rnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rnode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"saveDataAsNodes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveDataAsNodes{${1:data}}{${2:node prefix}}\"\n      }\n    },\n    {\n      \"name\": \"shownode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"shownode(${1:P})\"\n      }\n    },\n    {\n      \"name\": \"taput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"taput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"taput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"taput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tbput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tbput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tbput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"testAlg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tlput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tlput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tlput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trinode*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trinode*[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trinode*{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"trinode[${3:options%keyvals}]{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trinode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trinode{${1:name}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"trput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tvput*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tvput*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tvput[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tvput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tvput{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"unbrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unbrace{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psmatrix\"\n    },\n    {\n      \"name\": \"psmatrix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-node#c\": [\n      \"97\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-node#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-ob3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstCube\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PstCube{${1:x length}}{${2:y length}}{${3:z length}}\"\n      }\n    },\n    {\n      \"name\": \"PstCube\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PstCube[${4:options%keyvals}]{${1:x length}}{${2:y length}}{${3:z length}}\"\n      }\n    },\n    {\n      \"name\": \"PstDie\"\n    },\n    {\n      \"name\": \"PstDie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstDie[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PstObjectsThreeDFaceCenterF\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-ode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstODEsolve\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstODEsolve{${1:result}}{${2:output format}}{${3:t0}}{${4:t1}}{${5:N}}{${6:X_0}}{${7:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pstODEsolve\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"pstODEsolve[${8:options%keyvals}]{${1:result}}{${2:output format}}{${3:t0}}{${4:t1}}{${5:N}}{${6:X_0}}{${7:function%definition}}\",\n        \"keys\": [\n          \"\\\\pstODEsolve#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstODEsaveState\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstODEsaveState{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"pstODErestoreState\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstODErestoreState{${1:state}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pstODEsolve#c\": [\n      \"dt0=${1:number}\",\n      \"append\",\n      \"saveData\",\n      \"algebraicOutputFormat\",\n      \"algebraicT\",\n      \"algebraicN\",\n      \"algebraicIC\",\n      \"algebraic\",\n      \"algebraicAll\",\n      \"silent\",\n      \"varsteptol=${1:number}\",\n      \"rk4\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-optexp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-eucl\"\n    },\n    {\n      \"name\": \"pst-intersect\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"lens(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"lens(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"lens[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"lens[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asphericlens\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"asphericlens(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"asphericlens\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"asphericlens(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"asphericlens\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"asphericlens[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"asphericlens\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"asphericlens[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optplate\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optplate(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optplate\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optplate(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optplate\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optplate[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optplate\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optplate[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optretplate\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optretplate(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optretplate\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optretplate(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optretplate\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optretplate[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optretplate\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optretplate[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pinhole\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pinhole(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"pinhole\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pinhole(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pinhole\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pinhole[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"pinhole\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pinhole[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optbox(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optbox\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optbox(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optbox[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optbox\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optbox[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optarrowcomp\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optarrowcomp(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optarrowcomp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optarrowcomp(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optarrowcomp\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optarrowcomp[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optarrowcomp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optarrowcomp[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optbarcomp\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optbarcomp(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optbarcomp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optbarcomp(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optbarcomp\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optbarcomp[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optbarcomp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optbarcomp[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optsource\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optsource(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optsource\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optsource(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optsource\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optsource[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optsource\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optsource[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crystal\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"crystal(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"crystal\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"crystal(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"crystal\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"crystal[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"crystal\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"crystal[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optdiode\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optdiode(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optdiode\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optdiode(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optdiode\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optdiode[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optdiode\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optdiode[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"doveprism\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"doveprism(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"doveprism\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"doveprism(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"doveprism\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"doveprism[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"doveprism\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"doveprism[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glanthompson\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"glanthompson(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"glanthompson\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"glanthompson(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"glanthompson\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"glanthompson[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"glanthompson\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"glanthompson[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"polarization\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"polarization(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"polarization\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"polarization(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"polarization\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"polarization[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"polarization\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"polarization[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optwedge\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optwedge(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optwedge\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optwedge(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optwedge\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optwedge[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optwedge\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optwedge[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"axicon\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"axicon(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"axicon\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"axicon(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"axicon\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"axicon[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"axicon\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"axicon[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"mirror(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"mirror(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"mirror[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"mirror[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parabolicmirror\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"parabolicmirror(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"parabolicmirror\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"parabolicmirror(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parabolicmirror\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"parabolicmirror[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"parabolicmirror\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"parabolicmirror[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"oapmirror\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"oapmirror(${1:in})(${2:center})(${3:focus})\"\n      }\n    },\n    {\n      \"name\": \"oapmirror\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"oapmirror(${2:in})(${3:center})(${4:focus}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"oapmirror\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"oapmirror[${1:options%keyvals}](${2:in})(${3:center})(${4:focus})\"\n      }\n    },\n    {\n      \"name\": \"oapmirror\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"oapmirror[${2:options%keyvals}](${3:in})(${4:center})(${5:focus}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"beamsplitter\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"beamsplitter(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"beamsplitter\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"beamsplitter(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"beamsplitter\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"beamsplitter[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"beamsplitter\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"beamsplitter[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optgrating\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"optgrating(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optgrating\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"optgrating(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optgrating\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"optgrating[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"optgrating\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"optgrating[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"transmissiongrating\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"transmissiongrating(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"transmissiongrating\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"transmissiongrating(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"transmissiongrating\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"transmissiongrating[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"transmissiongrating\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"transmissiongrating[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optaom\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"optaom(${1:in})(${2:trans})(${3:diff})\"\n      }\n    },\n    {\n      \"name\": \"optaom\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"optaom(${2:in})(${3:trans})(${4:diff}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optaom\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"optaom[${1:options%keyvals}](${2:in})(${3:trans})(${4:diff})\"\n      }\n    },\n    {\n      \"name\": \"optaom\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"optaom[${2:options%keyvals}](${3:in})(${4:trans})(${5:diff}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optprism\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"optprism(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optprism\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"optprism(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optprism\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"optprism[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"optprism\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"optprism[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rightangleprism\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"rightangleprism(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"rightangleprism\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"rightangleprism(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"rightangleprism\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"rightangleprism[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"rightangleprism\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"rightangleprism[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pentaprism\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pentaprism(${1:in})(${2:center})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"pentaprism\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"pentaprism(${2:in})(${3:center})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pentaprism\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pentaprism[${1:options%keyvals}](${2:in})(${3:center})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"pentaprism\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"pentaprism[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfiber\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optfiber(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optfiber\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optfiber(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfiber\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optfiber[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optfiber\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optfiber[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optamp\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optamp(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optamp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optamp(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optamp\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optamp[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optamp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optamp[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optmzm\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optmzm(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optmzm\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optmzm(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optmzm\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optmzm[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optmzm\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optmzm[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"polcontrol\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"polcontrol(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"polcontrol\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"polcontrol(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"polcontrol\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"polcontrol[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"polcontrol\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"polcontrol[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optisolator\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optisolator(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optisolator\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optisolator(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optisolator\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optisolator[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optisolator\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optisolator[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optswitch\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optswitch(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optswitch\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optswitch(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optswitch\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optswitch[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optswitch\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optswitch[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberdelayline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fiberdelayline(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"fiberdelayline\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"fiberdelayline(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberdelayline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fiberdelayline[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"fiberdelayline\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"fiberdelayline[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfiberpolarizer\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optfiberpolarizer(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optfiberpolarizer\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optfiberpolarizer(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfiberpolarizer\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optfiberpolarizer[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optfiberpolarizer\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optfiberpolarizer[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcirculator\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"optcirculator(${1:left})(${2:right})(${3:bottom})\"\n      }\n    },\n    {\n      \"name\": \"optcirculator\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"optcirculator(${2:left})(${3:right})(${4:bottom}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcirculator\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"optcirculator[${1:options%keyvals}](${2:left})(${3:right})(${4:bottom})\"\n      }\n    },\n    {\n      \"name\": \"optcirculator\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"optcirculator[${2:options%keyvals}](${3:left})(${4:right})(${5:bottom}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optcoupler(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optcoupler(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"optcoupler(${1:tl})(${2:bl})(${3:tr})(${4:br})\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"optcoupler(${2:tl})(${3:bl})(${4:tr})(${5:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optcoupler[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optcoupler[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"optcoupler[${1:options%keyvals}](${2:tl})(${3:bl})(${4:tr})(${5:br})\"\n      }\n    },\n    {\n      \"name\": \"optcoupler\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"optcoupler[${2:options%keyvals}](${3:tl})(${4:bl})(${5:tr})(${6:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"wdmcoupler\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"wdmcoupler(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"wdmcoupler\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"wdmcoupler(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"wdmcoupler\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"wdmcoupler[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"wdmcoupler\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"wdmcoupler[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"wdmsplitter\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"wdmsplitter(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"wdmsplitter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"wdmsplitter(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"wdmsplitter\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"wdmsplitter[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"wdmsplitter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"wdmsplitter[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"fiberbox(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"fiberbox(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"fiberbox(${1:tl})(${2:bl})(${3:tr})(${4:br})\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"fiberbox(${2:tl})(${3:bl})(${4:tr})(${5:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"fiberbox[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"fiberbox[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"fiberbox[${1:options%keyvals}](${2:tl})(${3:bl})(${4:tr})(${5:br})\"\n      }\n    },\n    {\n      \"name\": \"fiberbox\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"fiberbox[${2:options%keyvals}](${3:tl})(${4:bl})(${5:tr})(${6:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eleccoupler\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"eleccoupler(${1:tl})(${2:bl})(${3:tr})(${4:br})\"\n      }\n    },\n    {\n      \"name\": \"eleccoupler\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"eleccoupler(${2:tl})(${3:bl})(${4:tr})(${5:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eleccoupler\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"eleccoupler[${1:options%keyvals}](${2:tl})(${3:bl})(${4:tr})(${5:br})\"\n      }\n    },\n    {\n      \"name\": \"eleccoupler\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"eleccoupler[${2:options%keyvals}](${3:tl})(${4:bl})(${5:tr})(${6:br}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"elecsynthesizer\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"elecsynthesizer(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"elecsynthesizer\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"elecsynthesizer(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"elecsynthesizer\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"elecsynthesizer[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"elecsynthesizer\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"elecsynthesizer[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"elecmixer\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"elecmixer(${1:left})(${2:right})(${3:bottom})\"\n      }\n    },\n    {\n      \"name\": \"elecmixer\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"elecmixer(${2:left})(${3:right})(${4:bottom}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"elecmixer\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"elecmixer[${1:options%keyvals}](${2:left})(${3:right})(${4:bottom})\"\n      }\n    },\n    {\n      \"name\": \"elecmixer\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"elecmixer[${2:options%keyvals}](${3:left})(${4:right})(${5:bottom}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfilter\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optfilter(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optfilter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optfilter(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optfilter\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optfilter[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optfilter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optfilter[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fibercollimator\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"fibercollimator(${1:in})(${2:A})(${3:B})(${4:out})\"\n      }\n    },\n    {\n      \"name\": \"fibercollimator\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"fibercollimator(${2:in})(${3:A})(${4:B})(${5:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fibercollimator\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"fibercollimator[${1:options%keyvals}](${2:in})(${3:A})(${4:B})(${5:out})\"\n      }\n    },\n    {\n      \"name\": \"fibercollimator\",\n      \"arg\": {\n        \"format\": \"[]()()()(){}\",\n        \"snippet\": \"fibercollimator[${2:options%keyvals}](${3:in})(${4:A})(${5:B})(${6:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optdetector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"optdetector(${1:in})(${2:out})\"\n      }\n    },\n    {\n      \"name\": \"optdetector\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optdetector(${2:in})(${3:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"optdetector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"optdetector[${1:options%keyvals}](${2:in})(${3:out})\"\n      }\n    },\n    {\n      \"name\": \"optdetector\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optdetector[${2:options%keyvals}](${3:in})(${4:out}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"oenode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oenode{${1:node}}{${2:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeRefA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeRefA{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeRefB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeRefB{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeTrefA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeTrefA{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeTrefB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeTrefB{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeCenter{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeLabel{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeExt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeExt{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeIfc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"oenodeIfc{${1:number}}{${2:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeIn{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeOut{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeRotref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeRotref{${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeBeam\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeBeam{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeBeamUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeBeamUp{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oenodeBeamLow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oenodeBeamLow{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oeBeamCenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeBeamCenter{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oeBeamVec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeBeamVec{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oeBeamVecUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeBeamVecUp{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oeBeamVecLow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeBeamVecLow{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"oeBeamVecMedian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oeBeamVecMedian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"optplane\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"optplane(${1:center})\"\n      }\n    },\n    {\n      \"name\": \"optplane\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"optplane[${1:options%keyvals}](${2:center})\"\n      }\n    },\n    {\n      \"name\": \"backlayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backlayer{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"frontlayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontlayer{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"optdipole\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"optdipole(${2:in})(${3:out}){${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"optdipole\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"optdipole(${3:in})(${4:out}){${1:comp}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"optdipole\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"optdipole[${2:options%keyvals}](${3:in})(${4:out}){${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"optdipole\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"optdipole[${3:options%keyvals}](${4:in})(${5:out}){${1:comp}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"opttripole\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"opttripole(${2:in})(${3:center})(${4:out}){${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"opttripole\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"opttripole(${3:in})(${4:center})(${5:out}){${1:comp}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"opttripole\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"opttripole[${2:options%keyvals}](${3:in})(${4:center})(${5:out}){${1:comp}}\"\n      }\n    },\n    {\n      \"name\": \"opttripole\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"opttripole[${3:options%keyvals}](${4:in})(${5:center})(${6:out}){${1:comp}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpDipole{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newOptexpDipole{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newOptexpDipole[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOptexpDipole[${3:options%keyvals}]{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpTripole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpTripole{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpTripole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newOptexpTripole{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpTripole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newOptexpTripole[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpTripole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOptexpTripole[${3:options%keyvals}]{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpFiberDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpFiberDipole{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpFiberDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newOptexpFiberDipole{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpFiberDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newOptexpFiberDipole[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpFiberDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOptexpFiberDipole[${3:options%keyvals}]{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpElecDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpElecDipole{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpElecDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newOptexpElecDipole{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpElecDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newOptexpElecDipole[${2:options%keyvals}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpElecDipole\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newOptexpElecDipole[${3:options%keyvals}]{${1:name}}{${2:default args}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpComp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpComp{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpCompAmb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpCompAmb{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpElecComp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpElecComp{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newOptexpFiberComp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newOptexpFiberComp{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"oelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oelabel{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"optexp\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-optic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-math\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"resetOpticOptions\"\n    },\n    {\n      \"name\": \"lens\"\n    },\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lens[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"lensCVG\"\n    },\n    {\n      \"name\": \"lensDVG\"\n    },\n    {\n      \"name\": \"Transform\"\n    },\n    {\n      \"name\": \"rayInterLens\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"rayInterLens(${2:start node})(${3:intermediate node})(${4:lens distance}){${1:lens node}}\"\n      }\n    },\n    {\n      \"name\": \"telescope\"\n    },\n    {\n      \"name\": \"telescope\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"telescope[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mirrorCVG\"\n    },\n    {\n      \"name\": \"mirrorCVG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mirrorCVG[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mirrorDVG\"\n    },\n    {\n      \"name\": \"mirrorDVG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mirrorDVG[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mirrorCVGRay\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"mirrorCVGRay(${2:node1})(${3:node2}){${1:mirror node}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorCVGRay\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"mirrorCVGRay[${2:options%keyvals}](${3:node1})(${4:node2}){${1:mirror node}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorDVGRay\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"mirrorDVGRay(${2:node1})(${3:node2}){${1:mirror node}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorDVGRay\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"mirrorDVGRay[${2:options%keyvals}](${3:node1})(${4:node2}){${1:mirror node}}\"\n      }\n    },\n    {\n      \"name\": \"planMirrorRay\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"planMirrorRay(${2:mirror begin})(${3:mirror end})(${4:original point}){${1:new point}}\"\n      }\n    },\n    {\n      \"name\": \"symPlan\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"symPlan(${2:node1})(${3:node2}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"beamLight\"\n    },\n    {\n      \"name\": \"beamLight\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"beamLight[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"refractionRay\",\n      \"arg\": {\n        \"format\": \"()()()(){}{}{}\",\n        \"snippet\": \"refractionRay(${4:A})(${5:B})(${6:C})(${7:D}){${1:n1}}{${2:n2}}{${3:end node}}\"\n      }\n    },\n    {\n      \"name\": \"psprism\"\n    },\n    {\n      \"name\": \"psprism\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psprism[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"lensSPH\"\n    },\n    {\n      \"name\": \"lensSPH\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lensSPH[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mirrorCVG\"\n    },\n    {\n      \"name\": \"mirrorCVG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mirrorCVG[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mirrorDVG\"\n    },\n    {\n      \"name\": \"mirrorDVG\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mirrorDVG[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ABinterSPHLens\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"ABinterSPHLens(${2:A})(${3:B})(${4:center}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"lensSPHRay\",\n      \"arg\": {\n        \"format\": \"()(){}{}{}\",\n        \"snippet\": \"lensSPHRay(${4:A})(${5:B}){${1:refractA}}{${2:refractB}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"lensSPHRay\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}{}\",\n        \"snippet\": \"lensSPHRay[${4:options%keyvals}](${5:A})(${6:B}){${1:refractA}}{${2:refractB}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"reflectionRay\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"reflectionRay(${2:A})(${3:B}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"reflectionRay\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"reflectionRay[${2:options%keyvals}](${3:A})(${4:B}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"eye\"\n    },\n    {\n      \"name\": \"Arrows\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Arrows(${1:nodeA})(${2:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"Arrows\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Arrows[${1:options%keyvals}](${2:nodeA})(${3:nodeB})\"\n      }\n    },\n    {\n      \"name\": \"psOutLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psOutLine(${2:nodeA})(${3:nodeB}){${1:end node}}\"\n      }\n    },\n    {\n      \"name\": \"psOutLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psOutLine[${2:options%keyvals}](${3:nodeA})(${4:nodeB}){${1:end node}}\"\n      }\n    },\n    {\n      \"name\": \"psBeforeLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBeforeLine(${2:nodeA})(${3:nodeB}){${1:start node}}\"\n      }\n    },\n    {\n      \"name\": \"psBeforeLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBeforeLine[${2:options%keyvals}](${3:nodeA})(${4:nodeB}){${1:start node}}\"\n      }\n    },\n    {\n      \"name\": \"Parallel\",\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"Parallel(${2:nodeA})(${3:nodeB})(${4:start node}){${1:end node}}\"\n      }\n    },\n    {\n      \"name\": \"Parallel\",\n      \"arg\": {\n        \"format\": \"[]()()(){}\",\n        \"snippet\": \"Parallel[${2:options%keyvals}](${3:nodeA})(${4:nodeB})(${5:start node}){${1:end node}}\"\n      }\n    },\n    {\n      \"name\": \"ABinterCD\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"ABinterCD(${2:A})(${3:B})(${4:C})(${5:D}){${1:E}}\"\n      }\n    },\n    {\n      \"name\": \"nodeBetween\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"nodeBetween(${2:A})(${3:B}){${1:C}}\"\n      }\n    },\n    {\n      \"name\": \"rotateNode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rotateNode{${1:node name}}{${2:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"rotateTriangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rotateTriangle{${1:nodeA}}{${2:nodeB}}{${3:nodeC}}{${4:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"rotateFrame\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"rotateFrame{${1:nodeA}}{${2:nodeB}}{${3:nodeC}}{${4:nodeD}}{${5:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"arrowLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"arrowLine(${2:start})(${3:end}){${1:arrow number}}\"\n      }\n    },\n    {\n      \"name\": \"arrowLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"arrowLine[${2:options%keyvals}](${3:start})(${4:end}){${1:arrow number}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorTwo\"\n    },\n    {\n      \"name\": \"pslensDVG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pslensDVG{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"pslensCVG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pslensCVG{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"lensTypeCVG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensTypeDVG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensTypePCVG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensTypePDVG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mirrorType\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psprismColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-osci.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Oscillo\"\n    },\n    {\n      \"name\": \"Oscillo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Oscillo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Oscillo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TriangleA\"\n    },\n    {\n      \"name\": \"TriangleB\"\n    },\n    {\n      \"name\": \"RectangleA\"\n    },\n    {\n      \"name\": \"RectangleB\"\n    },\n    {\n      \"name\": \"RDogToothA\"\n    },\n    {\n      \"name\": \"RDogToothB\"\n    },\n    {\n      \"name\": \"LDogToothA\"\n    },\n    {\n      \"name\": \"LDogToothB\"\n    },\n    {\n      \"name\": \"SinusA\"\n    },\n    {\n      \"name\": \"SinusB\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Oscillo#c\": [\n      \"period1=${1:number}\",\n      \"period2=${1:number}\",\n      \"periodmodulation1=${1:number}\",\n      \"freqmod1=${1:number}\",\n      \"periodmodulation2=${1:number}\",\n      \"freqmod2=${1:number}\",\n      \"amplitude1=${1:number}\",\n      \"amplitude2=${1:number}\",\n      \"CC1=${1:number}\",\n      \"CC2=${1:number}\",\n      \"timediv=${1:number}\",\n      \"phase1=${1:number}\",\n      \"phase2=${1:number}\",\n      \"sensivity1=${1:number}\",\n      \"sensivity2=${1:number}\",\n      \"damping1=${1:number}\",\n      \"damping2=${1:number}\",\n      \"Fourier=${1:number}\",\n      \"offset1=${1:number}\",\n      \"offset2=${1:number}\",\n      \"offset3=${1:number}\",\n      \"plotstyle1=${1:style}\",\n      \"plotstyle2=${1:style}\",\n      \"plotstyle3=${1:style}\",\n      \"plotstyle4=${1:style}\",\n      \"operation=${1|add,sub,mul|}\",\n      \"Wave1=${1|\\\\TriangleA,\\\\RectangleA,\\\\RDogToothA,\\\\LDogToothA,\\\\SinusA|}\",\n      \"Wave2=${1|\\\\TriangleB,\\\\RectangleB,\\\\RDogToothB,\\\\LDogToothB,\\\\SinusB|}\",\n      \"Lissajous\",\n      \"AllColor\",\n      \"combine\",\n      \"plotpoints=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-ovl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AltOverlayMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepsoverlaybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psoverlaybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endpsoverlaybox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psoverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psoverlay{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"psputoverlaybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psputoverlaybox{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psoverlaybox\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-pad.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstWallToWall\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstWallToWall(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstWallToWall\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstWallToWall[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstSphereToWall\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstSphereToWall(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstSphereToWall\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstSphereToWall[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstPad\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstPad(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstPad\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstPad[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstFluid\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstFluid(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstFluid\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstFluid[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstWall\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstWall(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstWall\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstWall[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstWallRough\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstWallRough(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstWallRough\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstWallRough[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstSphere\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstSphere(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstSphere\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstSphere[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"PstFlattenedSphere\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"PstFlattenedSphere(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"PstFlattenedSphere\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"PstFlattenedSphere[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-pdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifvtex\"\n    },\n    {\n      \"name\": \"luatex85\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"preview\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PDFcontainer\"\n    },\n    {\n      \"name\": \"savepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savepicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usepicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usepicture{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usepicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usepicture[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\includegraphics,\\\\usepicture,\\\\begin{postscript}\",\n          \"\\\\usepicture,\\\\begin{postscript}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thepspicture\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"postscript\"\n    },\n    {\n      \"name\": \"postscript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\includegraphics,\\\\usepicture,\\\\begin{postscript}\",\n          \"\\\\usepicture,\\\\begin{postscript}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-pdf#c\": [\n      \"active\",\n      \"inactive\",\n      \"pstricks\",\n      \"nopstricks\",\n      \"draft\",\n      \"final\",\n      \"tightpage\",\n      \"notightpage\",\n      \"displaymath\",\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\"\n    ],\n    \"\\\\includegraphics,\\\\usepicture,\\\\begin{postscript}\": [\n      \"frame\",\n      \"innerframe\",\n      \"ignore\",\n      \"showname\",\n      \"namefont=${1:font commands}\"\n    ],\n    \"\\\\usepicture,\\\\begin{postscript}\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-pdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-pdgr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-tree\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"affectedstyle\"\n    },\n    {\n      \"name\": \"affectedbgcolor\"\n    },\n    {\n      \"name\": \"affectedfgcolor\"\n    },\n    {\n      \"name\": \"pstPerson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstPerson{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstPerson\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstPerson[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstAbortion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstAbortion{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstAbortion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstAbortion[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstChildless\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstChildless{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstChildless\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstChildless[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"pstRelationship\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstRelationship{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pstRelationship\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstRelationship[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"pstDescent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstDescent{${1:parent}}{${2:child}}\"\n      }\n    },\n    {\n      \"name\": \"pstDescent\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstDescent[${3:options%keyvals}]{${1:parent}}{${2:child}}\"\n      }\n    },\n    {\n      \"name\": \"pstTwins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pstTwins{${1:parent}}{${2:twin node}}{${3:left twin}}{${4:right twin}}\"\n      }\n    },\n    {\n      \"name\": \"TpstPerson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TpstPerson{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"TpstPerson\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TpstPerson[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"TpstAbortion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TpstAbortion{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"TpstAbortion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TpstAbortion[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"TpstChildless\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TpstChildless{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"TpstChildless\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TpstChildless[${2:options%keyvals}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"ncAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ncAngles{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-perspective.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstransTS\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstransTS(${3:x},${4:y}){${1:A}}{${2:A'}}\"\n      }\n    },\n    {\n      \"name\": \"pstransTS\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstransTS[${3:options%keyvals}](${4:x},${5:y}){${1:A}}{${2:A'}}\"\n      }\n    },\n    {\n      \"name\": \"pstransTSX\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstransTSX(${3:x},${4:y}){${1:A}}{${2:A'}}\"\n      }\n    },\n    {\n      \"name\": \"pstransTSX\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstransTSX[${3:options%keyvals}](${4:x},${5:y}){${1:A}}{${2:A'}}\"\n      }\n    },\n    {\n      \"name\": \"pstransTSK\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pstransTSK(${4:x},${5:y}){${1:length}}{${2:A}}{${3:A'}}\"\n      }\n    },\n    {\n      \"name\": \"pstransTSK\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pstransTSK[${4:options%keyvals}](${5:x},${6:y}){${1:length}}{${2:A}}{${3:A'}}\"\n      }\n    },\n    {\n      \"name\": \"psboxTS\",\n      \"arg\": {\n        \"format\": \"(){}{}{}{}\",\n        \"snippet\": \"psboxTS(${5:x},${6:y},${7:z}){${1:x length}}{${2:y width}}{${3:z height}}{${4:color}}\"\n      }\n    },\n    {\n      \"name\": \"psboxTS\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}{}\",\n        \"snippet\": \"psboxTS[${5:options%keyvals}](${6:x},${7:y},${8:z}){${1:x length}}{${2:y width}}{${3:z height}}{${4:color}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCircleTS{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCircleTS[${2:options%keyvals}]{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTSX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCircleTSX{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTSX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCircleTSX[${2:options%keyvals}]{${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psArcTS\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psArcTS{${1:radius}}{${2:start angle}}{${3:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"psArcTS\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psArcTS[${4:options%keyvals}]{${1:radius}}{${2:start angle}}{${3:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"psArcTSX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psArcTSX{${1:radius}}{${2:start angle}}{${3:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"psArcTSX\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psArcTSX[${4:options%keyvals}]{${1:radius}}{${2:start angle}}{${3:end angle}}\"\n      }\n    },\n    {\n      \"name\": \"psZylinderTS\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psZylinderTS{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"psZylinderTS\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psZylinderTS[${3:options%keyvals}]{${1:radius}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ba\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-platon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psTetrahedron\"\n    },\n    {\n      \"name\": \"psTetrahedron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psTetrahedron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psHexahedron\"\n    },\n    {\n      \"name\": \"psHexahedron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psHexahedron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psOctahedron\"\n    },\n    {\n      \"name\": \"psOctahedron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psOctahedron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psDodecahedron\"\n    },\n    {\n      \"name\": \"psDodecahedron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psDodecahedron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psIcosahedron\"\n    },\n    {\n      \"name\": \"psIcosahedron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psIcosahedron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colorTypeA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorTypeB\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psTetrahedron#c,\\\\psHexahedron#c,\\\\psOctahedron#c,\\\\psDodecahedron#c,\\\\psIcosahedron#c\": [\n      \"PstPicture\",\n      \"Frame\",\n      \"Viewpoint=${1:x y z}\",\n      \"faceName=${1|\\\\Alph,\\\\alph,\\\\arabic,\\\\Roman,\\\\roman|}\",\n      \"faceNameFont=${1:font commands}\",\n      \"colorType=${1:type}\",\n      \"psscale=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-plot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dataplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dataplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"dataplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dataplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"endpsgraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fileplot[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fileplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fileplot{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifSpecialLabelsDone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listplot[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"listplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listplot{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"parametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"parametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"parametricplot{${1:tmin}}{${2:tmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"parametricplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parametricplot{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psaxes(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()()[][]\",\n        \"snippet\": \"psaxes(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})[${1:Xlabel,Xangle}][${2:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psaxes[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]()()()[][]\",\n        \"snippet\": \"psaxes[${1:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2})[${2:Xlabel,Xangle}][${3:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psaxes[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"[]{}()()()[][]\",\n        \"snippet\": \"psaxes[${2:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2})[${3:Xlabel,Xangle}][${4:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psaxes{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psaxes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()()[][]\",\n        \"snippet\": \"psaxes{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2})[${2:Xlabel,Xangle}][${3:Ylabel,Yangle}]\"\n      }\n    },\n    {\n      \"name\": \"psBoxplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psBoxplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psBoxplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psBoxplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psCoordinates\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psCoordinates(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psCoordinates\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psCoordinates[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psdataplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdataplot[${2:options%keyvals}]{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psdataplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdataplot{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"psfileplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psfileplot[${2:options%keyvals}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psfileplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psfileplot{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"psFixpoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psFixpoint[${4:options}]{${1:x0}}{${2:f(${5:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psFixpoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psFixpoint{${1:x0}}{${2:f(${4:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psgraph(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psgraph[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"psgraph[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"psgraph{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraphLLx\"\n    },\n    {\n      \"name\": \"psgraphLLy\"\n    },\n    {\n      \"name\": \"psgraphURx\"\n    },\n    {\n      \"name\": \"psgraphURy\"\n    },\n    {\n      \"name\": \"pshlabel\"\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pslegend[${2:reference}](${3:xoffset},${4:yoffset}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pslegend[${2:reference}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pslegend{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pslistplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pslistplot[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pslistplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pslistplot{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psNewton[${4:options}]{${1:x_0}}{${2:f(${5:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psNewton[${4:options}]{${1:x0}}{${2:f(${6:x})}}[${5:f'(${7:x})}]{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psNewton{${1:x0}}{${2:f(${5:x})}}[${4:f'(${6:x})}]{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psNewton\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psNewton{${1:x0}}{${2:f(${4:x})}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psparametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psparametricplot[${4:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psparametricplot{${1:tmin}}{${2:tmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psparametricplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psparametricplot{${1:tmin}}{${2:tmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiFour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPiTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"psplot[${4:options%keyvals}]{${1:xmin}}{${2:xmax}}[${5:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psplot[${4:options%keyvals}]{${1:xmin}}{${2:xmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"psplot{${1:xmin}}{${2:xmax}}[${4:PS commands}]{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psplot{${1:xmin}}{${2:xmax}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psplotinit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psplotstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psPutXLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPutXLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psPutYLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPutYLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"psreadDataColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"psreadDataColumn[${5:options%keyvals}]{${1:colNo}}{${2:delim}}{${3:macro%cmd}}{${4:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psreadDataColumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"psreadDataColumn{${1:colNo}}{${2:delim}}{${3:macro%cmd}}{${4:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psResetPlotValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psrotatebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psrotatebox{${1:angle}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"pstRadUnit\"\n    },\n    {\n      \"name\": \"pstRadUnitInv\"\n    },\n    {\n      \"name\": \"pstScalePoints\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstScalePoints(${3:xscale},${4:yscale}){${1:xPS}}{${2:yPS}}\"\n      }\n    },\n    {\n      \"name\": \"pstXPSScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstXScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstYPSScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstYScale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psVectorfield\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psVectorfield(${2:%<x0},${3:y0%>})(${4:%<x1},${5:y1%>}){${1:f'(${6:x},${7:y})}}\"\n      }\n    },\n    {\n      \"name\": \"psVectorfield\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psVectorfield[${2:options}](${3:%<x0},${4:y0%>})(${5:%<x1},${6:y1%>}){${1:f'(${7:x},${8:y})}}\"\n      }\n    },\n    {\n      \"name\": \"psvlabel\"\n    },\n    {\n      \"name\": \"psxlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psxsubticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psxTick(${2:x value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psxTick[${2:options%keyvals}](${3:x value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psxTick[${3:options%keyvals}]{${1:rotation}}(${4:x value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxTick\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psxTick{${1:rotation}}(${3:x value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psxticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psylabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psysubticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psyTick(${2:y value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psyTick[${2:options%keyvals}](${3:y value}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psyTick[${3:options%keyvals}]{${1:rotation}}(${4:y value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyTick\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psyTick{${1:rotation}}(${3:y value}){${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"psyticklinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readdata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readdata{${1:macro%cmd}}{${2:file%file}}\"\n      }\n    },\n    {\n      \"name\": \"readdata\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"readdata[${3:options%keyvals}]{${1:macro%cmd}}{${2:file%file}}\",\n        \"keys\": [\n          \"\\\\readdata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"savedata\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"savedata{${1:macro%cmd}}[${2:data}]\"\n      }\n    },\n    {\n      \"name\": \"setDefaulthLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setDefaultvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFractionhLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setFractionvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setTrighLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setTrigvLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialLabelsDonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialLabelsDonetrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph\",\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:xlength%l}}{${2:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    },\n    {\n      \"name\": \"psgraph*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:xlength%l}}{${3:ylength%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pst-plot#c\": [\n      \"97\"\n    ],\n    \"\\\\readdata#c\": [\n      \"ignoreLines=${1:integer}\",\n      \"nStep=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pst-plot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pst-poker.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-blur\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pst-fill\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"crdback\"\n    },\n    {\n      \"name\": \"crdback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crdback[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"colorbgname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorbackname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"pspade\"\n    },\n    {\n      \"name\": \"pheart\"\n    },\n    {\n      \"name\": \"pdiamond\"\n    },\n    {\n      \"name\": \"pclub\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Ac\"\n    },\n    {\n      \"name\": \"Ks\"\n    },\n    {\n      \"name\": \"Kh\"\n    },\n    {\n      \"name\": \"Kd\"\n    },\n    {\n      \"name\": \"Kc\"\n    },\n    {\n      \"name\": \"Qs\"\n    },\n    {\n      \"name\": \"Qh\"\n    },\n    {\n      \"name\": \"Qd\"\n    },\n    {\n      \"name\": \"Qc\"\n    },\n    {\n      \"name\": \"Js\"\n    },\n    {\n      \"name\": \"Jh\"\n    },\n    {\n      \"name\": \"Jd\"\n    },\n    {\n      \"name\": \"Jc\"\n    },\n    {\n      \"name\": \"tens\"\n    },\n    {\n      \"name\": \"tenh\"\n    },\n    {\n      \"name\": \"tend\"\n    },\n    {\n      \"name\": \"tenc\"\n    },\n    {\n      \"name\": \"nines\"\n    },\n    {\n      \"name\": \"nineh\"\n    },\n    {\n      \"name\": \"nined\"\n    },\n    {\n      \"name\": \"ninec\"\n    },\n    {\n      \"name\": \"eigs\"\n    },\n    {\n      \"name\": \"eigh\"\n    },\n    {\n      \"name\": \"eigd\"\n    },\n    {\n      \"name\": \"eigc\"\n    },\n    {\n      \"name\": \"sevs\"\n    },\n    {\n      \"name\": \"sevh\"\n    },\n    {\n      \"name\": \"sevd\"\n    },\n    {\n      \"name\": \"sevc\"\n    },\n    {\n      \"name\": \"sixs\"\n    },\n    {\n      \"name\": \"sixh\"\n    },\n    {\n      \"name\": \"sixd\"\n    },\n    {\n      \"name\": \"sixc\"\n    },\n    {\n      \"name\": \"fives\"\n    },\n    {\n      \"name\": \"fiveh\"\n    },\n    {\n      \"name\": \"fived\"\n    },\n    {\n      \"name\": \"fivec\"\n    },\n    {\n      \"name\": \"fours\"\n    },\n    {\n      \"name\": \"fourh\"\n    },\n    {\n      \"name\": \"fourd\"\n    },\n    {\n      \"name\": \"fourc\"\n    },\n    {\n      \"name\": \"tres\"\n    },\n    {\n      \"name\": \"treh\"\n    },\n    {\n      \"name\": \"tred\"\n    },\n    {\n      \"name\": \"trec\"\n    },\n    {\n      \"name\": \"twos\"\n    },\n    {\n      \"name\": \"twoh\"\n    },\n    {\n      \"name\": \"twod\"\n    },\n    {\n      \"name\": \"twoc\"\n    },\n    {\n      \"name\": \"icard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"icard{${1:value}}{${2:suit}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"crdAs\"\n    },\n    {\n      \"name\": \"crdAh\"\n    },\n    {\n      \"name\": \"crdAd\"\n    },\n    {\n      \"name\": \"crdAc\"\n    },\n    {\n      \"name\": \"crdKs\"\n    },\n    {\n      \"name\": \"crdKh\"\n    },\n    {\n      \"name\": \"crdKd\"\n    },\n    {\n      \"name\": \"crdKc\"\n    },\n    {\n      \"name\": \"crdQs\"\n    },\n    {\n      \"name\": \"crdQh\"\n    },\n    {\n      \"name\": \"crdQd\"\n    },\n    {\n      \"name\": \"crdQc\"\n    },\n    {\n      \"name\": \"crdJs\"\n    },\n    {\n      \"name\": \"crdJh\"\n    },\n    {\n      \"name\": \"crdJd\"\n    },\n    {\n      \"name\": \"crdJc\"\n    },\n    {\n      \"name\": \"crdtens\"\n    },\n    {\n      \"name\": \"crdtenh\"\n    },\n    {\n      \"name\": \"crdtend\"\n    },\n    {\n      \"name\": \"crdtenc\"\n    },\n    {\n      \"name\": \"crdnines\"\n    },\n    {\n      \"name\": \"crdnineh\"\n    },\n    {\n      \"name\": \"crdnined\"\n    },\n    {\n      \"name\": \"crdninec\"\n    },\n    {\n      \"name\": \"crdeigs\"\n    },\n    {\n      \"name\": \"crdeigh\"\n    },\n    {\n      \"name\": \"crdeigd\"\n    },\n    {\n      \"name\": \"crdeigc\"\n    },\n    {\n      \"name\": \"crdsevs\"\n    },\n    {\n      \"name\": \"crdsevh\"\n    },\n    {\n      \"name\": \"crdsevd\"\n    },\n    {\n      \"name\": \"crdsevc\"\n    },\n    {\n      \"name\": \"crdsixs\"\n    },\n    {\n      \"name\": \"crdsixh\"\n    },\n    {\n      \"name\": \"crdsixd\"\n    },\n    {\n      \"name\": \"crdsixc\"\n    },\n    {\n      \"name\": \"crdfives\"\n    },\n    {\n      \"name\": \"crdfiveh\"\n    },\n    {\n      \"name\": \"crdfived\"\n    },\n    {\n      \"name\": \"crdfivec\"\n    },\n    {\n      \"name\": \"crdfours\"\n    },\n    {\n      \"name\": \"crdfourh\"\n    },\n    {\n      \"name\": \"crdfourd\"\n    },\n    {\n      \"name\": \"crdfourc\"\n    },\n    {\n      \"name\": \"crdtres\"\n    },\n    {\n      \"name\": \"crdtreh\"\n    },\n    {\n      \"name\": \"crdtred\"\n    },\n    {\n      \"name\": \"crdtrec\"\n    },\n    {\n      \"name\": \"crdtwos\"\n    },\n    {\n      \"name\": \"crdtwoh\"\n    },\n    {\n      \"name\": \"crdtwod\"\n    },\n    {\n      \"name\": \"crdtwoc\"\n    },\n    {\n      \"name\": \"drawcard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"drawcard{${1:value}}{${2:suit}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"drawcard\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"drawcard[${4:options%keyvals}]{${1:value}}{${2:suit}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"fournier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crdpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"crdpair{${1:card1}}{${2:card2}}\"\n      }\n    },\n    {\n      \"name\": \"crdflop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"crdflop{${1:card1}}{${2:card2}}{${3:card3}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-poly.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PstPolygon\"\n    },\n    {\n      \"name\": \"PstPolygon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstPolygon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstPolygon*\"\n    },\n    {\n      \"name\": \"PstPolygon*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstPolygon*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstTriangle\"\n    },\n    {\n      \"name\": \"PstTriangle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstTriangle[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstSquare\"\n    },\n    {\n      \"name\": \"PstSquare\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstSquare[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstPentagon\"\n    },\n    {\n      \"name\": \"PstPentagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstPentagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstHexagon\"\n    },\n    {\n      \"name\": \"PstHexagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstHexagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstHeptagon\"\n    },\n    {\n      \"name\": \"PstHeptagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstHeptagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstOctogon\"\n    },\n    {\n      \"name\": \"PstOctogon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstOctogon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstNonagon\"\n    },\n    {\n      \"name\": \"PstNonagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstNonagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstDecagon\"\n    },\n    {\n      \"name\": \"PstDecagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstDecagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstDodecagon\"\n    },\n    {\n      \"name\": \"PstDodecagon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstDodecagon[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstStarFiveLines\"\n    },\n    {\n      \"name\": \"PstStarFiveLines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstStarFiveLines[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"PstStarFive\"\n    },\n    {\n      \"name\": \"PstStarFive\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PstStarFive[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pspolygonbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pspolygonbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pspolygonbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pspolygonbox[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-pulley.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-slpe\"\n    },\n    {\n      \"name\": \"pst-eucl\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pspulleys\"\n    },\n    {\n      \"name\": \"pspulleys\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pspulleys[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pspulleys#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pulleyA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pulleyB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pulleyC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radianAI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radianBI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radianCI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"poulieF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flzlx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Npulleys\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pspulleys#c\": [\n      \"pulleyGrid\",\n      \"N=${1|1,2,3,4,5,6|}\",\n      \"M=${1:mass in kg}\",\n      \"h=${1:height in cm}\",\n      \"Dx=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-rputover.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"rputover(${2:x0},${3:y0})(${4:x1},${5:y1}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rputover{${1:angle}}(${3:x0},${4:y0}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"rputover{${1:angle}}(${3:x0},${4:y0})(${5:x1},${6:y1}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"rputover[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1}){${1:stuff}}\",\n        \"keys\": [\n          \"\\\\rputover#c,\\\\pclineover#c,\\\\pcarrowC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rputover[${3:options%keyvals}]{${1:angle}}(${4:x0},${5:y0}){${2:stuff}}\",\n        \"keys\": [\n          \"\\\\rputover#c,\\\\pclineover#c,\\\\pcarrowC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rputover\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"rputover[${3:options%keyvals}]{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:stuff}}\",\n        \"keys\": [\n          \"\\\\rputover#c,\\\\pclineover#c,\\\\pcarrowC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coverable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverable{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"coverable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverable[${2:options%keyvals}]{${1:stuff}}\",\n        \"keys\": [\n          \"\\\\coverable#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pclineover\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pclineover(${2:x0},${3:y0})(${4:x1},${5:y1}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pclineover\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pclineover[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1}){${1:stuff}}\",\n        \"keys\": [\n          \"\\\\pclineover#c,\\\\pcarrowC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcarrowC\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"pcarrowC(${2:x0},${3:y0})(${4:x1},${5:y1}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pcarrowC\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"pcarrowC[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1}){${1:stuff}}\",\n        \"keys\": [\n          \"\\\\pcarrowC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\rputover#c,\\\\pclineover#c,\\\\pcarrowC#c\": [\n      \"autoangle\",\n      \"inverscl\",\n      \"boxpos=${1:pos}\",\n      \"fboxsep=\",\n      \"npos=${1:number}\"\n    ],\n    \"\\\\coverable#c\": [\n      \"inverscl\"\n    ],\n    \"\\\\pclineover#c,\\\\pcarrowC#c\": [\n      \"absnodesep=\",\n      \"angleadd=${1:degrees}\",\n      \"arrows=${1:arrows}\",\n      \"offset=\"\n    ],\n    \"\\\\pcarrowC#c\": [\n      \"addbars=${1:bars}\",\n      \"baroffset=\",\n      \"Cbarwidth=\",\n      \"tbarsize=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-rubans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-solides3d\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pshelices\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pshelices[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pshelices\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"pshelices[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psSpiralRing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSpiralRing[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSpiralRing\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSpiralRing[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psSphericalSpiral\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSphericalSpiral[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSphericalSpiral\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSphericalSpiral[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psSpiralParaboloid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSpiralParaboloid[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSpiralParaboloid\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSpiralParaboloid[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psSpiralCone\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSpiralCone[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"psSpiralCone\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSpiralCone[${1:options%keyvals}](${2:x},${3:y},${4:z})\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-shell.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-solides3d\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psShell\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psShell[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psShell\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psShell\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psShell[${1:options%keyvals}](${2:x},${3:y},${4:z})\",\n        \"keys\": [\n          \"\\\\psShell\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psShell\": [\n      \"A=${1:number}\",\n      \"a=${1:number}\",\n      \"action=${1|none,draw,draw*,draw**,writesolid,writeobj,writeoff|}\",\n      \"alpha=${1:degrees}\",\n      \"b=${1:number}\",\n      \"base=${1:base spec}\",\n      \"beta=${1:degrees}\",\n      \"D=${1:number}\",\n      \"deactivatecolor\",\n      \"fcol=${1:n1 (col1) n2 (col2) ...}\",\n      \"file=${1:file name}\",\n      \"fillcolor=\",\n      \"hue=${1:hue spec}\",\n      \"incolor=\",\n      \"L=${1:number}\",\n      \"lightsrc=${1:x y z}\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"mu=${1:degrees}\",\n      \"N=${1:number}\",\n      \"ngrid=${1:n1 n2}\",\n      \"Omega=${1:degrees}\",\n      \"P=${1:number}\",\n      \"phi=${1:degrees}\",\n      \"precode=${1:PS code}\",\n      \"rm=${1:face1 face2 ...}\",\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\",\n      \"style=${1|Achatina,Ammonite,Argonauta,Codakia,Conus,Epiteonium,Escalaria,Helcion,Lyria,Natalina,Nautilus,Oxystele,Planorbis,Tonna,Turritella|}\",\n      \"unit=${1:number}\",\n      \"W1=${1:number}\",\n      \"W2=${1:number}\",\n      \"writedata\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-sigsys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psaxeslabels\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psaxeslabels(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:x label}}{${2:y label}}\"\n      }\n    },\n    {\n      \"name\": \"psaxeslabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"psaxeslabels{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:x label}}{${3:y label}}\"\n      }\n    },\n    {\n      \"name\": \"psaxeslabels\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psaxeslabels[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:x label}}{${2:y label}}\"\n      }\n    },\n    {\n      \"name\": \"psaxeslabels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"psaxeslabels[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:x label}}{${3:y label}}\"\n      }\n    },\n    {\n      \"name\": \"pstick\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pstick(${2:x},${3:y}){${1:ticklength}}\"\n      }\n    },\n    {\n      \"name\": \"pstick\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"pstick{${1:angle}}(${3:x},${4:y}){${2:ticklength}}\"\n      }\n    },\n    {\n      \"name\": \"pstick\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pstick[${2:options%keyvals}](${3:x},${4:y}){${1:ticklength}}\"\n      }\n    },\n    {\n      \"name\": \"pstick\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"pstick[${3:options%keyvals}]{${1:angle}}(${4:x},${5:y}){${2:ticklength}}\"\n      }\n    },\n    {\n      \"name\": \"psTick\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psTick(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psTick\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psTick{${1:angle}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psTick\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psTick[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psTick\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psTick[${2:options%keyvals}]{${1:angle}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"pssignal\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pssignal(${3:x},${4:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pssignal\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pssignal[${3:options%keyvals}](${4:x},${5:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psstem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psstem{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"psstem\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psstem(${2:x},${3:∆x}){${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"psstem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psstem[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"psstem\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psstem[${2:options%keyvals}](${3:x},${4:∆x}){${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"pszero\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pszero(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"pszero\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pszero[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"pspole\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pspole(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"pspole\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pspole[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"pscircleop\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pscircleop(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"pscircleop\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pscircleop[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"psframeop\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psframeop(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"psframeop\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psframeop[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"psdisk\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psdisk(${2:x},${3:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psdisk\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psdisk[${2:options%keyvals}](${3:x},${4:y}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psring\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psring(${3:x},${4:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psring\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psring[${3:options%keyvals}](${4:x},${5:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psdiskc\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psdiskc(${2:x},${3:y})(${4:x0},${5:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psdiskc\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psdiskc[${2:options%keyvals}](${3:x},${4:y})(${5:x0},${6:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psldots\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psldots(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psldots\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"psldots{${1:angle}}(${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psldots\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psldots[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psldots\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"psldots[${2:options%keyvals}]{${1:angle}}(${3:x},${4:y})\"\n      }\n    },\n    {\n      \"name\": \"ldotsnode\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ldotsnode(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ldotsnode\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"ldotsnode{${1:angle}}(${3:x},${4:y}){${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"ldotsnode\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"ldotsnode[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"ldotsnode\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"ldotsnode[${3:options%keyvals}]{${1:angle}}(${4:x},${5:y}){${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"psblock\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psblock(${3:x},${4:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psblock\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psblock[${3:options%keyvals}](${4:x},${5:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psfblock\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psfblock(${3:x},${4:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psfblock\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psfblock[${3:options%keyvals}](${4:x},${5:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psadaptive\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"psadaptive{${1:nodeA}}(${3:x},${4:y}){${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psadaptive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}(){}\",\n        \"snippet\": \"psadaptive{${1:arrows}}{${2:nodeA}}(${4:x},${5:y}){${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psadaptive\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"psadaptive[${3:options%keyvals}]{${1:nodeA}}(${4:x},${5:y}){${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psadaptive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}(){}\",\n        \"snippet\": \"psadaptive[${4:options%keyvals}]{${1:arrows}}{${2:nodeA}}(${5:x},${6:y}){${3:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"psknob\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psknob(${2:x},${3:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"psknob\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psknob[${2:options%keyvals}](${3:x},${4:y}){${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"psusampler\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psusampler(${3:x},${4:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psusampler\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psusampler[${3:options%keyvals}](${4:x},${5:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdsampler\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psdsampler(${3:x},${4:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdsampler\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psdsampler[${3:options%keyvals}](${4:x},${5:y}){${1:node}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nclist{${1:nc csname}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"nclist{${1:nc csname}}[${3:nc label}]{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nclist{${1:arrows}}{${2:nc csname}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"nclist{${1:arrows}}{${2:nc csname}}[${4:nc label}]{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nclist[${3:options%keyvals}]{${1:nc csname}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nclist[${3:options%keyvals}]{${1:nc csname}}[${4:nc label}]{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"nclist[${4:options%keyvals}]{${1:arrows}}{${2:nc csname}}{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"nclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"nclist[${4:options%keyvals}]{${1:arrows}}{${2:nc csname}}[${5:nc label}]{${3:list}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ncstar{${1:nc csname}}{${2:list}}{${3:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"ncstar{${1:nc csname}}[${4:nc label}]{${2:list}}{${3:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ncstar{${1:arrows}}{${2:nc csname}}{${3:list}}{${4:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}{}\",\n        \"snippet\": \"ncstar{${1:arrows}}{${2:nc csname}}[${5:nc label}]{${3:list}}{${4:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ncstar[${4:options%keyvals}]{${1:nc csname}}{${2:list}}{${3:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"ncstar[${4:options%keyvals}]{${1:nc csname}}[${5:nc label}]{${2:list}}{${3:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ncstar[${5:options%keyvals}]{${1:arrows}}{${2:nc csname}}{${3:list}}{${4:node}}\"\n      }\n    },\n    {\n      \"name\": \"ncstar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"ncstar[${5:options%keyvals}]{${1:arrows}}{${2:nc csname}}[${6:nc label}]{${3:list}}{${4:node}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceUp\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceUp(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceUp\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceUp[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceUp*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceUp*(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceUp*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceUp*[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceDown\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceDown(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceDown\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceDown[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceDown*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceDown*(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceDown*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceDown*[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceRight\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceRight(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceRight\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceRight[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceRight*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceRight*(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceRight*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceRight*[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceLeft\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceLeft(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceLeft\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceLeft[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceLeft*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psBraceLeft*(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBraceLeft*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psBraceLeft*[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-slpe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psBall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psBall{${1:color}}{${2:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"psBall\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psBall(${3:x},${4:y}){${1:color}}{${2:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"psBall\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psBall[${3:options%keyvals}]{${1:color}}{${2:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"psBall\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psBall[${3:options%keyvals}](${4:x},${5:y}){${1:color}}{${2:radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"psslopesteps\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-solarsystem.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-grad\"\n    },\n    {\n      \"name\": \"pst-tools\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SolarSystem\"\n    },\n    {\n      \"name\": \"SolarSystem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SolarSystem[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SolarSystem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Jupiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Saturn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\SolarSystem#c\": [\n      \"Day=${1:day}\",\n      \"Month=${1:month}\",\n      \"Year=${1:year}\",\n      \"Hour=${1:hour}\",\n      \"Minute=${1:minute}\",\n      \"Second=${1:second}\",\n      \"solarValues\",\n      \"viewpoint=\",\n      \"language=${1|DE,FR,EN|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-solides3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"axesIIID\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"axesIIID(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})\"\n      }\n    },\n    {\n      \"name\": \"axesIIID\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"axesIIID[${1:options%keyvals}](${2:x1},${3:y1},${4:z1})(${5:x2},${6:y2},${7:z2})\",\n        \"keys\": [\n          \"\\\\axesIIID#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psSolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSolid[${1:object=name}]\"\n      }\n    },\n    {\n      \"name\": \"psSolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psSolid[${1:object=name,options}]\"\n      }\n    },\n    {\n      \"name\": \"psSolid\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSolid[${1:object=name}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psSolid\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psSolid[${1:object=name,options}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"codejps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codejps{${1:jps code}}\"\n      }\n    },\n    {\n      \"name\": \"defFunction\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"defFunction{${1:name%specialDef}}(${5:var}){${2:x}}{${3:y}}{${4:z}}\"\n      }\n    },\n    {\n      \"name\": \"defFunction\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"defFunction[${5:options%keyvals}]{${1:name%specialDef}}(${6:var}){${2:x}}{${3:y}}{${4:z}}\"\n      }\n    },\n    {\n      \"name\": \"psSurface\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psSurface(${2:xmin},${3:ymin})(${4:xmax},${5:ymax}){${1:surface definition%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psSurface\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psSurface[${2:options%keyvals}](${3:xmin},${4:ymin})(${5:xmax},${6:ymax}){${1:surface definition%definition}}\",\n        \"keys\": [\n          \"\\\\psSurface#c,\\\\psImplicitSurface#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psImplicitSurface\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psImplicitSurface[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psSurface#c,\\\\psImplicitSurface#c\",\n          \"\\\\psImplicitSurface#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psImplicitSurface\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psImplicitSurface[${1:options%keyvals}](${2:x},${3:y},${4:z})\",\n        \"keys\": [\n          \"\\\\psSurface#c,\\\\psImplicitSurface#c\",\n          \"\\\\psImplicitSurface#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"composeSolid\"\n    },\n    {\n      \"name\": \"psPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psPoint(${2:x},${3:y},${4:z}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psTransformPoint\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psTransformPoint(${2:x},${3:y},${4:z})(${5:vx},${6:vy},${7:vz}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"psTransformPoint\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psTransformPoint[${2:options%keyvals}](${3:x},${4:y},${5:z})(${6:vx},${7:vy},${8:vz}){${1:name}}\",\n        \"keys\": [\n          \"\\\\psTransformPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psProjection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psProjection[${1:object=name}]\"\n      }\n    },\n    {\n      \"name\": \"psProjection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psProjection[${1:object=name,options}]\"\n      }\n    },\n    {\n      \"name\": \"psProjection\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psProjection[${1:object=name}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psProjection\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psProjection[${1:object=name,options}](${2:x},${3:y},${4:z})\"\n      }\n    },\n    {\n      \"name\": \"psResetSolidKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridIIID\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"gridIIID(${1:x1},${2:y1})(${3:x2},${4:y2})\"\n      }\n    },\n    {\n      \"name\": \"gridIIID\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"gridIIID[${1:options%keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})\",\n        \"keys\": [\n          \"\\\\gridIIID#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psImage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psImage[${1:filename=imagefile}]\"\n      }\n    },\n    {\n      \"name\": \"psImage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psImage[${1:filename=imagefile,options}]\"\n      }\n    },\n    {\n      \"name\": \"psImage\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psImage[${1:filename=imagefile}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psImage\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psImage[${1:filename=imagefile,options}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"Normale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Normale(${1:radius},${2:longitude},${3:latitude})\"\n      }\n    },\n    {\n      \"name\": \"addtosolideslistobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtosolideslistobject{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\axesIIID#c\": [\n      \"arrowinset=${1:number}\",\n      \"arrowsize=\",\n      \"axisemph=${1:font commands}\",\n      \"axisnames={${1:x,y,z}}\",\n      \"labelsep=\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"mathLabel\",\n      \"showOrigin\"\n    ],\n    \"\\\\psSolid#c\": [\n      \"object=${1|point,line,vector,plan,grille,cube,cylindre,cylindrecreux,cone,conecreux,tronccone,troncconecreux,sphere,ellipsoid,calottesphere,calottespherecreuse,tore,tetrahedron,octahedron,dodecahedron,icosahedron,anneau,prisme,prismecreux,parallelepiped,face,polygonregulier,ruban,surface,surface*,surfaceparametree,pie,fusion,geode,load,offfile,objfile,datfile,new,courbe,vecteur,vecteur3d|}\",\n      \"a=${1:length}\",\n      \"action=${1|none,draw,draw*,draw**,writesolid,writeobj,writeoff|}\",\n      \"affinage=${1|0,1,2,3,all|}\",\n      \"affinagecoeff=${1:factor}\",\n      \"affinagerm\",\n      \"args=${1:args spec}\",\n      \"axe=${1:x y z}\",\n      \"b=${1:length}\",\n      \"base=${1:base spec}\",\n      \"biface\",\n      \"c=${1:length}\",\n      \"chanfrein\",\n      \"chanfreincoeff=${1:factor}\",\n      \"color1=${1:xcolor color}\",\n      \"color2=${1:xcolor color}\",\n      \"color3=${1:xcolor color}\",\n      \"color4=${1:xcolor color}\",\n      \"deactivatecolor\",\n      \"decal=${1:integer}\",\n      \"definition=${1|solidgetsommet,solidcentreface,isobarycentre3d,barycentre3d,hompoint3d,sympoint3d,translatepoint3d,scaleOpoint3d,rotateOpoint3d,orthoprojplane3d,milieu3d,addv3d,vecteur3d,addv3d,subv3d,mulv3d,vectprod3d,normalize3d,equation,normalpoint,solidface|}\",\n      \"dualreg\",\n      \"faces={${1:faces spec}}\",\n      \"fcol=${1:n1 (col1) n2 (col2) ...}\",\n      \"fcolor=\",\n      \"filename=${1:file name}\",\n      \"fillcolor=\",\n      \"fontsize=\",\n      \"function=\",\n      \"grid\",\n      \"h=${1:height}\",\n      \"hollow\",\n      \"hue=${1:hue spec}\",\n      \"incolor=\",\n      \"inhue=${1:hue spec}\",\n      \"inouthue=${1:hue spec}\",\n      \"intersectioncolor=${1:(color1) (color2) ...}\",\n      \"intersectionlinewidth=${1:w1 w2 ...}\",\n      \"intersectionplan={[${1:eq1}] ${2:[eq2] ...}}\",\n      \"intersectiontype=${1|0,-1|}\",\n      \"lightintensity=${1:number}\",\n      \"lightsrc=${1:x y z}\",\n      \"linecolor=\",\n      \"linestyle=${1:style}\",\n      \"linewidth=\",\n      \"load=${1:name}\",\n      \"mode=${1|0,1,2,3,4|}\",\n      \"name=${1:name}\",\n      \"ngrid=${1:<n> or <n1 n2>}\",\n      \"normal=${1:x y z}\",\n      \"num=${1|0,1,2,3,all|}\",\n      \"numfaces=${2|0,1,2,3,all,${1:PS code}|}\",\n      \"opacity=${1:factor}\",\n      \"origine=${1:x y z}\",\n      \"phi=${1:degrees}\",\n      \"plangrid\",\n      \"planmarks\",\n      \"plansection={${1:plan1 plan2 ...}}\",\n      \"plansepare={[${1:a b c d}]}\",\n      \"QZ=${1:number}\",\n      \"R=${1:outer radius}\",\n      \"r=${1:radius}\",\n      \"r0=${1:radius0}\",\n      \"r1=${1:radius1}\",\n      \"range=${1:xmin xmax}\",\n      \"resolution=${1:resolution}\",\n      \"rm=${1:face1 face2 face3}\",\n      \"RotSequence=${1:sequence}\",\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\",\n      \"section=\",\n      \"show=${1|0,1,2,3,all|}\",\n      \"showbase\",\n      \"showBase\",\n      \"sommets=${1:data}\",\n      \"theta=${1:degrees}\",\n      \"transform={${1:transform}}\",\n      \"trunc=${1|0,1,2,3,all|}\",\n      \"trunccoeff=${1:factor}\",\n      \"unit=${1:number}\",\n      \"visibility\"\n    ],\n    \"\\\\psSurface#c,\\\\psImplicitSurface#c\": [\n      \"algebraic\",\n      \"axesboxed\",\n      \"base=${1:base spec}\",\n      \"color1=${1:xcolor color}\",\n      \"color2=${1:xcolor color}\",\n      \"color3=${1:xcolor color}\",\n      \"color4=${1:xcolor color}\",\n      \"deactivatecolor\",\n      \"fcol=${1:n1 (col1) n2 (col2) ...}\",\n      \"fillcolor=\",\n      \"grid\",\n      \"hue=${1:hue spec}\",\n      \"incolor=\",\n      \"inhue=${1:hue spec}\",\n      \"inouthue=${1:hue spec}\",\n      \"intersectionplan={[${1:eq1}] ${2:[eq2] ...}}\",\n      \"intersectiontype=${1|0,-1|}\",\n      \"intersectioncolor=${1:(color1) (color2) ...}\",\n      \"intersectionlinewidth=${1:w1 w2 ...}\",\n      \"lightintensity=${1:number}\",\n      \"lightsrc=${1:x y z}\",\n      \"linecolor=\",\n      \"linewidth=\",\n      \"ngrid=${1:<n> or <n1 n2>}\",\n      \"opacity=${1:factor}\",\n      \"QZ=${1:number}\",\n      \"spotX=${1:pos}\",\n      \"spotY=${1:pos}\",\n      \"spotZ=${1:pos}\",\n      \"xytranslate=${1:x y}\",\n      \"Zmax=${1:number}\",\n      \"Zmin=${1:number}\"\n    ],\n    \"\\\\psImplicitSurface#c\": [\n      \"ImplFunction=${1:F(x,y,z)}\",\n      \"XMinMax=${1:min max step}\",\n      \"YMinMax=${1:min max step}\",\n      \"ZMinMax=${1:min max step}\"\n    ],\n    \"\\\\psLineIIID#c,\\\\psPolygonIIID#c\": [\n      \"doubleline\",\n      \"linearc=${1:number}\",\n      \"linecolor=\",\n      \"linewidth=\"\n    ],\n    \"\\\\psPolygonIIID#c\": [\n      \"fillstyle=${1|solid,vlines,hlines,crosshatch|}\"\n    ],\n    \"\\\\psTransformPoint#c\": [\n      \"RotX=${1:degrees}\",\n      \"RotY=${1:degrees}\",\n      \"RotZ=${1:degrees}\"\n    ],\n    \"\\\\psProjection#c\": [\n      \"definition=${1|milieu,parallelopoint,translatepoint,rotatepoint,hompoint,orthoproj,projx,projy,sympoint,axesympoint,cpoint,xdpoint,ydpoint,interdroite,interdroitecercle,vecteur,orthovecteur,normalize,addv,subv,mulv,horizontale,verticale,paral,perp,mediatrice,bissectrice,axesymdroite,rotatedroite,translatedroite,ABcercle,diamcercle,translatepol,rotatepol,hompol,sympol,axesympol|}\",\n      \"args=${1:args spec}\",\n      \"fillcolor=\",\n      \"fillstyle=${1|solid,vlines,hlines,crosshatch|}\",\n      \"fontsize=\",\n      \"function=${1:function}\",\n      \"hatchcolor=\",\n      \"isolatin\",\n      \"linecolor=\",\n      \"linestyle=${1:style}\",\n      \"name=${1:name}\",\n      \"normal=${1:x y z}\",\n      \"object=${1|texte,cercle,point,vecteur,polygone,line,droite,rightangle,courbe,courbeR2|}\",\n      \"path={${1:PS code}}\",\n      \"phi=${1:degrees}\",\n      \"plan=${1:plan type}\",\n      \"pos=${1:pos}\",\n      \"PSfont=${1:font name}\",\n      \"range=${1:xmin xmax}\",\n      \"resolution=${1:resolution}\",\n      \"text=${1:text}\",\n      \"visibility\"\n    ],\n    \"\\\\gridIIID#c\": [\n      \"axisemph=${1:font commands}\",\n      \"linecolor=\",\n      \"spotX=${1:pos}\",\n      \"spotY=${1:pos}\",\n      \"spotZ=${1:pos}\",\n      \"stepX=${1:number}\",\n      \"stepY=${1:number}\",\n      \"stepZ=${1:number}\",\n      \"ticklength=\",\n      \"Zmax=${1:number}\",\n      \"Zmin=${1:number}\"\n    ],\n    \"\\\\psImage#c\": [\n      \"divisions=${1:integer}\",\n      \"filename=${1:imagefile}\",\n      \"normal=${1:x y z}\",\n      \"origine=${1:x y z}\",\n      \"phi=${1:degrees}\",\n      \"unitPicture=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-soroban.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tige\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tige{${1:nu}}{${2:val}}{${3:un}}\"\n      }\n    },\n    {\n      \"name\": \"tige\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tige[${4:st}]{${1:nu}}{${2:val}}{${3:un}}\"\n      }\n    },\n    {\n      \"name\": \"cadre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cadre{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"cadre\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cadre[${2:st}]{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"barres\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barres{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"barres\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"barres[${2:st}]{${1:nb}}\"\n      }\n    },\n    {\n      \"name\": \"binoire\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"binoire{${1:nu}}{${2:pos}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"binoire\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"binoire[${4:st}]{${1:nu}}{${2:pos}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"barbil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"barbil{${1:nu}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"barbil\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"barbil[${3:st}]{${1:nu}}{${2:pos}}\"\n      }\n    },\n    {\n      \"name\": \"colbil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coltig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theyy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bille\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bille{${1:arg}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"support\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"support{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-spectra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psspectrum\"\n    },\n    {\n      \"name\": \"psspectrum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psspectrum[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psspectrum\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psspectrum\": [\n      \"begin=${1:wavelength in nm}\",\n      \"end=${1:wavelength in nm}\",\n      \"gamma=${1:factor}\",\n      \"brightness=${1:factor}\",\n      \"numlines=${1:integer}\",\n      \"lines=${1:wavelengths in nm}\",\n      \"element=${1:text}\",\n      \"emission\",\n      \"absorption\",\n      \"lwidth=${1:width}\",\n      \"lmin=${1:factor}\",\n      \"axe\",\n      \"DI=${1:length in nm}\",\n      \"axecolor=\",\n      \"axewidth=${1:width}\",\n      \"wlangle=${1:degrees}\",\n      \"wlcmd=${1:font commands}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-spinner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psFidgetSpinner\"\n    },\n    {\n      \"name\": \"psFidgetSpinner\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psFidgetSpinner(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psFidgetSpinner\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"psFidgetSpinner[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\psFidgetSpinner#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psFidgetSpinner\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psFidgetSpinner[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\psFidgetSpinner#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psFidgetSpinner#c\": [\n      \"R=${1:radius}\",\n      \"color0=\",\n      \"color1=\",\n      \"color2=\",\n      \"color3=\",\n      \"colorMask=\",\n      \"rotation=${1:degrees}\",\n      \"mask\",\n      \"customize\",\n      \"customizeMask\",\n      \"image=${1:imagefile}\",\n      \"fillcolor=\",\n      \"linecolor=\",\n      \"linewidth=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-stru.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrow\"\n    },\n    {\n      \"name\": \"circput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"circput(${3:nodeA})(${4:nodeB}){${1:stuffA}}{${2:stuffB}}\"\n      }\n    },\n    {\n      \"name\": \"clockCouple\"\n    },\n    {\n      \"name\": \"debut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixedend\"\n    },\n    {\n      \"name\": \"guide\"\n    },\n    {\n      \"name\": \"hinge\"\n    },\n    {\n      \"name\": \"interhinge\"\n    },\n    {\n      \"name\": \"noclockCouple\"\n    },\n    {\n      \"name\": \"node\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"node(${1:name})\"\n      }\n    },\n    {\n      \"name\": \"PAS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Position\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psArrowCivil\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psArrowCivil(${2:nodeA})(${3:nodeB}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psArrowCivil\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psArrowCivil[${2:options%keyvals}](${3:nodeA})(${4:nodeB}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"roller\"\n    },\n    {\n      \"name\": \"Start\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triload\"\n    },\n    {\n      \"name\": \"triload\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"triload[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-text.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstextpath\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"pstextpath[${3:pos}](${4:x},${5:y}){${1:graphics object}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstextpath\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pstextpath(${3:x},${4:y}){${1:graphics object}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharpath*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharpath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharpath*[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscharclip*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscharclip*[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"endpscharclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCircleText{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCircleText[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircleText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircleText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psWarp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psWarp[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psWarp(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psWarp\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psWarp[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TPoffset\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pscharclip*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-thick.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psthick\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psthick{${1:t1}}{${2:t2}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"fonctionSinus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fonctionSinus{${1:period}}{${2:amplitude}}\"\n      }\n    },\n    {\n      \"name\": \"CalculsCurves\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psthick#c\": [\n      \"E=${1:number}\",\n      \"K=${1:number}\",\n      \"stylethick=${1|vide,thickline,onlythecurvered,onlythecurveblue,thicklineblue,rainbow,solide,serpent|}\",\n      \"curveonly\",\n      \"stylecurve1=${1|vide,thickline,onlythecurvered,onlythecurveblue,thicklineblue,rainbow,solide,serpent|}\",\n      \"stylecurve2=${1|vide,thickline,onlythecurvered,onlythecurveblue,thicklineblue,rainbow,solide,serpent|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-tools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psPrintValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPrintValue{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"psPrintValue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psPrintValue[${2:options%keyvals}]{${1:PS code}}\",\n        \"keys\": [\n          \"\\\\psPrintValue,\\\\psPrintValueNew\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psPrintValueNew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psPrintValueNew{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"psPrintValueNew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psPrintValueNew[${2:options%keyvals}]{${1:PS code}}\",\n        \"keys\": [\n          \"\\\\psPrintValue,\\\\psPrintValueNew\",\n          \"\\\\psPrintValueNew\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psRegisterList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psRegisterList{${1:name}}{${2:value list}}\"\n      }\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register%cmd}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register%cmd}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\"\n    },\n    {\n      \"name\": \"PoinTless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psPrintValue,\\\\psPrintValueNew\": [\n      \"printfont=${1:font name}\",\n      \"postString=${1:string}\",\n      \"trimSpaces\",\n      \"fontscale=${1:scale in pts}\",\n      \"valuewidth=${1:number}\",\n      \"decimals=${1:number}\",\n      \"xShift=${1:shift in pts}\",\n      \"algebraic\",\n      \"VarName=${1:string}\",\n      \"comma\"\n    ],\n    \"\\\\psPrintValueNew\": [\n      \"round\",\n      \"science\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-tree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endpsTree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endskiplevels\"\n    },\n    {\n      \"name\": \"MakeShortTnput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortTnput{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"psedge\"\n    },\n    {\n      \"name\": \"psnodecnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pspred\"\n    },\n    {\n      \"name\": \"pssucc\"\n    },\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstree[${3:options%keyvals}]{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psTree{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstree{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"pstreecnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstreelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skiplevel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevel*[${2:options%keyvals}]{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevel*{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevel[${2:options%keyvals}]{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevel{${1:subtrees}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevels*[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevels*{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skiplevels[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skiplevels{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"TC\"\n    },\n    {\n      \"name\": \"TC*\"\n    },\n    {\n      \"name\": \"TC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"TC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc*[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc*[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc*{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc[${2:options%keyvals}]{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdot\"\n    },\n    {\n      \"name\": \"Tdot*\"\n    },\n    {\n      \"name\": \"Tdot*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf\"\n    },\n    {\n      \"name\": \"Tf*\"\n    },\n    {\n      \"name\": \"Tf*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tfan\"\n    },\n    {\n      \"name\": \"Tfan*\"\n    },\n    {\n      \"name\": \"Tfan*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tfan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tn\"\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tp\"\n    },\n    {\n      \"name\": \"Tp*\"\n    },\n    {\n      \"name\": \"Tp*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"tspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tspace{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri{${1:stuff}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psTree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"skiplevels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:n}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-turtle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psTurtle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psTurtle(${2:x},${3:y}){${1:turtle code}}\"\n      }\n    },\n    {\n      \"name\": \"psTurtle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psTurtle[${2:options%keyvals}](${3:x},${4:y}){${1:turtle code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-tvz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstree{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"pstree\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstree[${3:options%keyvals}]{${1:root}}{${2:successors}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psTree{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psTree[${2:options%keyvals}]{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"endpsTree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tp\"\n    },\n    {\n      \"name\": \"Tp*\"\n    },\n    {\n      \"name\": \"Tp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tp*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tp*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tc*{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Tc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc[${2:options%keyvals}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Tc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tc*[${2:options%keyvals}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"TC\"\n    },\n    {\n      \"name\": \"TC*\"\n    },\n    {\n      \"name\": \"TC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"TC*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TC*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf\"\n    },\n    {\n      \"name\": \"Tf*\"\n    },\n    {\n      \"name\": \"Tf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tf*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tf*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tdot\"\n    },\n    {\n      \"name\": \"Tdot*\"\n    },\n    {\n      \"name\": \"Tdot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tdot*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tdot*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tr*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tr*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tr*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TR*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TR*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tcircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tcircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tcircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TCircle*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"TCircle*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TCircle*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Toval*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Toval*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Toval*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdia*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tdia*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tdia*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ttri*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Ttri*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ttri*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Tn\"\n    },\n    {\n      \"name\": \"Tfan\"\n    },\n    {\n      \"name\": \"Tfan*\"\n    },\n    {\n      \"name\": \"Tfan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Tfan*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tfan*[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pspred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssucc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeShortTnput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortTnput{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"addtreesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtreesep{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"psPred\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psskiplevels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psroot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpstreeflip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treecenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipedge\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psTree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:root}}\"\n      }\n    },\n    {\n      \"name\": \"psTree\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:root}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-vehicle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psVehicle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psVehicle{${1:scaling factor}}{${2:abscissa back wheel}}{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"psVehicle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psVehicle[${4:options%keyvals}]{${1:scaling factor}}{${2:abscissa back wheel}}{${3:function}}\"\n      }\n    },\n    {\n      \"name\": \"Bike\"\n    },\n    {\n      \"name\": \"Tractor\"\n    },\n    {\n      \"name\": \"HighWheeler\"\n    },\n    {\n      \"name\": \"Truck\"\n    },\n    {\n      \"name\": \"Segway\"\n    },\n    {\n      \"name\": \"UniCycle\"\n    },\n    {\n      \"name\": \"wheelA\"\n    },\n    {\n      \"name\": \"wheelB\"\n    },\n    {\n      \"name\": \"wheelC\"\n    },\n    {\n      \"name\": \"wheelD\"\n    },\n    {\n      \"name\": \"arrowWheel\"\n    },\n    {\n      \"name\": \"TruckWheel\"\n    },\n    {\n      \"name\": \"segWheel\"\n    },\n    {\n      \"name\": \"SpokesWheelCrossed\"\n    },\n    {\n      \"name\": \"SpokesWheelA\"\n    },\n    {\n      \"name\": \"SpokesWheelB\"\n    },\n    {\n      \"name\": \"TractorFrontWheel\"\n    },\n    {\n      \"name\": \"TractorRearWheel\"\n    },\n    {\n      \"name\": \"SlopeoMeter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SlopeoMeter{${1:color}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"SelfDefinedVehicle\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-venn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psVenn\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psVenn(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3}){${1:radius}}{${2:segments}}\"\n      }\n    },\n    {\n      \"name\": \"psVenn\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psVenn[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3}){${1:radius}}{${2:segments}}\",\n        \"keys\": [\n          \"\\\\psVenn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psVenn#c\": [\n      \"bgcircle\",\n      \"bgcolor=\",\n      \"bgradius=\",\n      \"fgcolor=\",\n      \"vennfill=${1|solid,hlines,dots|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-vowel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"vowel\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pst-xkey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psset{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"psset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psset[${2:families}]{${1:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pstool.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"catchfile\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"filemod\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"psfrag\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstool\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstool{${1:imagefile}}{${2:input definitions}}\"\n      }\n    },\n    {\n      \"name\": \"pstool\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstool[${3:options%keyvals}]{${1:imagefile}}{${2:input definitions}}\",\n        \"keys\": [\n          \"\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\",\n          \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstool*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstool*{${1:imagefile}}{${2:input definitions}}\"\n      }\n    },\n    {\n      \"name\": \"pstool*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pstool*[${3:options%keyvals}]{${1:imagefile}}{${2:input definitions}}\",\n        \"keys\": [\n          \"\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\",\n          \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfragfig{${1:imagefile}}{${2:input definitions}}\"\n      }\n    },\n    {\n      \"name\": \"psfragfig\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psfragfig[${3:options%keyvals}]{${1:imagefile}}{${2:input definitions}}\",\n        \"keys\": [\n          \"\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\",\n          \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psfragfig*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psfragfig*{${1:imagefile}}{${2:input definitions}}\"\n      }\n    },\n    {\n      \"name\": \"psfragfig*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psfragfig*[${3:options%keyvals}]{${1:imagefile}}{${2:input definitions}}\",\n        \"keys\": [\n          \"\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\",\n          \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pstoolsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstoolsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EndPreamble\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\": [\n      \"macro-file=${1:file name}\",\n      \"process=${1|auto,all,none|}\",\n      \"crop=${1|preview,pdfcrop|}\",\n      \"suffix={${1:suffix}}\",\n      \"cleanup={${1:file extensions}}\",\n      \"mode=${1|batch,nonstop,errorstop|}\",\n      \"latex-options={${1:LaTeX options}}\",\n      \"dvips-options={${1:dvips options}}\",\n      \"ps2pdf-options={${1:ps2pdf options}}\",\n      \"pdfcrop-options={${1:pdfcrop options}}\",\n      \"bitmap=${1|auto,lossy,lossless|}\",\n      \"crossref\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pstool#c,\\\\pstoolsetup,\\\\pstool,\\\\pstool*,\\\\pstool!,\\\\psfragfig,\\\\psfragfig*,\\\\psfragfig!\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pstricks-add.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-plot\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"pst-3d\"\n    },\n    {\n      \"name\": \"pst-math\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-calculate\"\n    },\n    {\n      \"name\": \"pst-xkey\"\n    },\n    {\n      \"name\": \"pst-arrow\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BeginSaveFinalState\"\n    },\n    {\n      \"name\": \"defineTColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defineTColor[${3:options%keyvals}]{${1:name}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"defineTColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineTColor{${1:name}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"EndSaveFinalState\"\n    },\n    {\n      \"name\": \"parseRP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psBrace(${1:A})(${2:B})\"\n      }\n    },\n    {\n      \"name\": \"psbrace\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psbrace(${2:A})(${3:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psBrace*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psBrace*(${1:A})(${2:B})\"\n      }\n    },\n    {\n      \"name\": \"psBrace*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psBrace*[${1:options%keyvals}](${2:A})(${3:B})\"\n      }\n    },\n    {\n      \"name\": \"psBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psBrace[${1:options%keyvals}](${2:A})(${3:B})\"\n      }\n    },\n    {\n      \"name\": \"psbrace\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psbrace[${2:options%keyvals}](${3:A})(${4:B}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCallout\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCallout(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCallout\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCallout[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psCancel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCancel*[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCancel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCancel*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCancel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCancel[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCancel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCancel{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psChart\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psChart[${4:options%keyvals}]{${1:list1}}{${2:list2}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psChart\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psChart{${1:list1}}{${2:list2}}{${3:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTangents\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psCircleTangents(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircleTangents\",\n      \"arg\": {\n        \"format\": \"(){}(){}\",\n        \"snippet\": \"psCircleTangents(${3:x1},${4:y1}){${1:radius1}}(${5:x2},${6:y2}){${2:radius2}}\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psComment(${2:x0},${3:y0})(${4:x1},${5:y1}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}[][]\",\n        \"snippet\": \"psComment(${4:x0},${5:y0})(${6:x1},${7:y1}){${1:text}}[${2:line macro}][${3:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psComment*(${2:x0},${3:y0})(${4:x1},${5:y1}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}[][]\",\n        \"snippet\": \"psComment*(${4:x0},${5:y0})(${6:x1},${7:y1}){${1:text}}[${2:line macro}][${3:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psComment*[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"arg\": {\n        \"format\": \"[]()(){}[][]\",\n        \"snippet\": \"psComment*[${2:options%keyvals}](${5:x0},${6:y0})(${7:x1},${8:y1}){${1:text}}[${3:line macro}][${4:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"psComment*[${3:options%keyvals}]{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}[][]\",\n        \"snippet\": \"psComment*[${3:options%keyvals}]{${1:arrows}}(${6:x0},${7:y0})(${8:x1},${9:y1}){${2:text}}[${4:line macro}][${5:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"psComment*{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}[][]\",\n        \"snippet\": \"psComment*{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:text}}[${3:line macro}][${4:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psComment[${2:options%keyvals}](${3:x0},${4:y0})(${5:x1},${6:y1}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"arg\": {\n        \"format\": \"[]()(){}[][]\",\n        \"snippet\": \"psComment[${2:options%keyvals}](${5:x0},${6:y0})(${7:x1},${8:y1}){${1:text}}[${3:line macro}][${4:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"psComment[${3:options%keyvals}]{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}[][]\",\n        \"snippet\": \"psComment[${3:options%keyvals}]{${1:arrows}}(${6:x0},${7:y0})(${8:x1},${9:y1}){${2:text}}[${4:line macro}][${5:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"psComment{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1}){${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"psComment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}[][]\",\n        \"snippet\": \"psComment{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:text}}[${3:line macro}][${4:put macro}]\"\n      }\n    },\n    {\n      \"name\": \"pscurvepoints\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pscurvepoints[${5:options%keyvals}]{${1:tmin}}{${2:tmax}}{${3:function of t%definition}}{${4:root}}\"\n      }\n    },\n    {\n      \"name\": \"pscurvepoints\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pscurvepoints{${1:tmin}}{${2:tmax}}{${3:function of t%definition}}{${4:array root}}\"\n      }\n    },\n    {\n      \"name\": \"psdice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdice[${2:options%keyvals}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"psdice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdice{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"psDiffSumValue\"\n    },\n    {\n      \"name\": \"psEllipseTangents\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psEllipseTangents(${1:x0},${2:y0})(${3:a},${4:b})(${5:xp},${6:yp})\"\n      }\n    },\n    {\n      \"name\": \"psEllipseTangentsN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()(){}\",\n        \"snippet\": \"psEllipseTangentsN(${2:x0},${3:y0})(${4:a},${5:b})(${6:xp},${7:yp}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psFormatInt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psFormatInt[${2:options%keyvals}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"psFormatInt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psFormatInt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"psGetDistance\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psGetDistance(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psGetDistance\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psGetDistance[${2:decimals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psGetSlope\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psGetSlope(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psGTriangle\",\n      \"arg\": {\n        \"format\": \"()()(){}{}{}\",\n        \"snippet\": \"psGTriangle(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3}){${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"psHomothetie\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psHomothetie(${3:x},${4:y}){${1:factor}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psHomothetie\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psHomothetie[${3:options%keyvals}](${4:x},${5:y}){${1:factor}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psIntersectionPoint\",\n      \"arg\": {\n        \"format\": \"()()()(){}\",\n        \"snippet\": \"psIntersectionPoint(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3}){${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviat\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psKiviat[${3:options%keyvals}]{${1:number of edges}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psKiviat{${1:number of edges}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatAxes\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psKiviatAxes[${3:options%keyvals}]{${1:number of edges}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatAxes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psKiviatAxes{${1:number of edges}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psKiviatLine[${2:options%keyvals}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psKiviatLine{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatTicklines\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psKiviatTicklines{${1:n}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psKiviatTicklines\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psKiviatTicklines[${3:options%keyvals}]{${1:n}}{${2:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psLeftSumValue\"\n    },\n    {\n      \"name\": \"psMatrixPlot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psMatrixPlot[${4:options%keyvals}]{${1:rows}}{${2:columns}}{${3:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psMatrixPlot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psMatrixPlot{${1:rows}}{${2:columns}}{${3:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psMiddleSumValue\"\n    },\n    {\n      \"name\": \"psOlympicRings\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psOlympicRings(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psOlympicRings\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psOlympicRings[${1:options%keyvals}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psParallelLine\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psParallelLine(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2}){${1:length}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psParallelLine\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psParallelLine[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${1:length}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psParallelLine\",\n      \"arg\": {\n        \"format\": \"[]{}()()(){}{}\",\n        \"snippet\": \"psParallelLine[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1})(${9:x2},${10:y2}){${2:length}}{${3:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psParallelLine\",\n      \"arg\": {\n        \"format\": \"{}()()(){}{}\",\n        \"snippet\": \"psParallelLine{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1})(${8:x2},${9:y2}){${2:length}}{${3:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psColorLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psColorLine(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psColorLine\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psColorLine{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psColorLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psColorLine[${1:options%keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psColorLine\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psColorLine[${2:options%keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psparallelogrambox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psparallelogrambox[${2:options%keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psparallelogrambox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psparallelogrambox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psplotDiffEqn\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"psplotDiffEqn[${5:options}]{${1:x0}}{${2:x1}}{${3:y0}}{${4:f(${6:x},${7:y},${8:y'},${9:...})}}\"\n      }\n    },\n    {\n      \"name\": \"psplotDiffEqn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"psplotDiffEqn{${1:x0}}{${2:x1}}{${3:y0}}{${4:f(${5:x},${6:y},${7:y'},${8:...})}}\"\n      }\n    },\n    {\n      \"name\": \"psplotTangent*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psplotTangent*[${4:options%keyvals}]{${1:x}}{${2:dx}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotTangent*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psplotTangent*{${1:x}}{${2:dx}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotTangent\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"psplotTangent[${4:options%keyvals}]{${1:x}}{${2:dx}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psplotTangent\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psplotTangent{${1:x}}{${2:dx}}{${3:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pspolylineticks\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"pspolylineticks[${5:options%keyvals}]{${1:root name}}{${2:function}}{${3:first tick}}{${4:tick count}}\"\n      }\n    },\n    {\n      \"name\": \"pspolylineticks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pspolylineticks{${1:root name}}{${2:function}}{${3:first tick}}{${4:tick count}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psRandom(${2:xmin},${3:ymin})(${4:xmax},${5:ymax}){${1:clip path}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psRandom(${2:xmin},${3:ymin}){${1:clip path}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psRandom[${2:options%keyvals}](${3:xmin},${4:ymin})(${5:xmax},${6:ymax}){${1:clip path}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psRandom[${2:options%keyvals}](${3:xmin},${4:ymin}){${1:clip path}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psRandom[${2:options%keyvals}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"psRandom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psRandom{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"psRandomPointArea\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"psRandomPointArea[${3:options%keyvals}]{${1:number}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psRandomPointArea\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psRandomPointArea{${1:number}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLine\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psRelLine(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLine\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psRelLine[${3:options%keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:length factor}}{${2:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLine\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"psRelLine[${4:options%keyvals}]{${1:arrows}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:length factor}}{${3:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRelLine\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"psRelLine{${1:arrows}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:length factor}}{${3:end node name}}\"\n      }\n    },\n    {\n      \"name\": \"psRiemannSum\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psRiemannSum(${3:x0},${4:x1}){${1:n}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psRightSumValue\"\n    },\n    {\n      \"name\": \"psrotate\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psrotate(${3:x},${4:y}){${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psrotate\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psrotate[${3:options%keyvals}](${4:x},${5:y}){${1:angle}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psStartPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psStartPoint(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"psStartPoint\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psStartPoint[${1:node basename}](${2:x},${3:y})\"\n      }\n    },\n    {\n      \"name\": \"psStep\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psStep(${3:x},${4:y}){${1:n}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psStep\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psStep[${3:options%keyvals}](${4:x},${5:y}){${1:n}}{${2:function%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psTangentLine\",\n      \"arg\": {\n        \"format\": \"()()(){}{}\",\n        \"snippet\": \"psTangentLine(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3}){${1:x}}{${2:dx}}\"\n      }\n    },\n    {\n      \"name\": \"psTangentLine\",\n      \"arg\": {\n        \"format\": \"[]()()(){}{}\",\n        \"snippet\": \"psTangentLine[${3:options%keyvals}](${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3}){${1:x}}{${2:dx}}\"\n      }\n    },\n    {\n      \"name\": \"pstContour\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstContour[${2:options%keyvals}]{${1:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"pstContour\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstContour{${1:data file%file}}\"\n      }\n    },\n    {\n      \"name\": \"psVectorName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswavelengthToGRAY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pswavelengthToRGB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Put(${2:position}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Put*(${2:position}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Put*[${2:options%keyvals}](${3:position}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Put*[${3:options%keyvals}]{${1:ref}}(${4:position}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Put*{${1:ref}}(${3:position}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Put[${2:options%keyvals}](${3:position}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Put[${3:options%keyvals}]{${1:ref}}(${4:position}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Put{${1:ref}}(${3:position}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"resetOptions\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pstricks-pdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"pst-pdf\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"OnlyIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"OnlyIfFileExists{${1:file}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"NotIfFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NotIfFileExists{${1:file}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pstricks-pdf#c\": [\n      \"off\",\n      \"on\",\n      \"crop=${1|on,off|}\",\n      \"ext=${1:extension}\",\n      \"latex={${1:latex cmds}}\",\n      \"dvips={${1:dvips options}}\",\n      \"pspdf={${1:pspdf options}}\",\n      \"pdfcrop={${1:pdfcrop options}}\",\n      \"cleanup={${1:extension list}}\",\n      \"runs=${1:number}\",\n      \"active\",\n      \"inactive\",\n      \"pstricks\",\n      \"nopstricks\",\n      \"draft\",\n      \"final\",\n      \"tightpage\",\n      \"notightpage\",\n      \"displaymath\",\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pstricks-pdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pstricks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"pst-calculate\",\n      \"if\": \"useCalc\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"if\": \"luatex\"\n    },\n    {\n      \"name\": \"xetex\",\n      \"if\": \"xetex\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtopsstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtopsstyle{${1:style}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"AltClipMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altcolormode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrows\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrows{${1:arrows}}\"\n      }\n    },\n    {\n      \"name\": \"black\"\n    },\n    {\n      \"name\": \"blue\"\n    },\n    {\n      \"name\": \"closedshadow\"\n    },\n    {\n      \"name\": \"closedshadow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"closedshadow[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"closepath\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"cput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"cput*[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Cput*[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"cput*{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Cput*{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"cput[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Cput[${3:keyvals}]{${1:angle}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"cput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"cput{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Cput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"Cput{${1:angle}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"curveto\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"curveto(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"cyan\"\n    },\n    {\n      \"name\": \"darkgray\"\n    },\n    {\n      \"name\": \"degrees\"\n    },\n    {\n      \"name\": \"degrees\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"degrees[${1:num}]\"\n      }\n    },\n    {\n      \"name\": \"dim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dim{${1:dim}}\"\n      }\n    },\n    {\n      \"name\": \"DontKillGlue\"\n    },\n    {\n      \"name\": \"endoverlaybox\"\n    },\n    {\n      \"name\": \"endpsclip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everypsbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everypsbox{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fill\"\n    },\n    {\n      \"name\": \"fill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fill[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"gray\"\n    },\n    {\n      \"name\": \"green\"\n    },\n    {\n      \"name\": \"grestore\"\n    },\n    {\n      \"name\": \"gsave\"\n    },\n    {\n      \"name\": \"ifpsmathbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPSTlualatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPSTricks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpstUndefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshowgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KillGlue\"\n    },\n    {\n      \"name\": \"lightgray\"\n    },\n    {\n      \"name\": \"lineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"lineto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"magenta\"\n    },\n    {\n      \"name\": \"movepath\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"movepath(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"moveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"moveto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"mrestore\"\n    },\n    {\n      \"name\": \"msave\"\n    },\n    {\n      \"name\": \"multips\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multips(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"multips\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multips{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multirput(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multirput*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multirput*[${3:refpoint}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"multirput*[${4:refpoint}]{${1:angle}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput*\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirput*{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multirput[${3:refpoint}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:int}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"multirput[${4:refpoint}]{${1:angle}}(${5:x0},${6:y0})(${7:x1},${8:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"multirput\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirput{${1:angle}}(${4:x0},${5:y0})(${6:x1},${7:y1}){${2:int}}{${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"newcmykcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcmykcolor{${1:color%specialDef}}{${2:num1 num2 num3 num4}}\"\n      }\n    },\n    {\n      \"name\": \"newgray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgray{${1:color%specialDef}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"newhsbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhsbcolor{${1:color%specialDef}}{${2:num1 num2 num3}}\"\n      }\n    },\n    {\n      \"name\": \"newpath\"\n    },\n    {\n      \"name\": \"newpsfontdot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newpsfontdot{${1:arg1}}[${4:arg2}]{${2:arg3}}{${3:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"newpsfontdotH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"newpsfontdotH{${1:arg1}}[${5:arg2}]{${2:arg3}}{${3:arg4}}{${4:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"newpsobject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpsobject{${1:name}}{${2:object}}{${3:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newpsstyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newpsstyle[${3:package}]{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newpsstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpsstyle{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"newrgbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newrgbcolor{${1:color}}{${2:num1 num2 num3}}\"\n      }\n    },\n    {\n      \"name\": \"NormalCoor\"\n    },\n    {\n      \"name\": \"openshadow\"\n    },\n    {\n      \"name\": \"openshadow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"openshadow[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"overlaybox\"\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"parabola(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"parabola*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"parabola*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"parabola*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"parabola*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"parabola[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"parabola[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"parabola\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"parabola{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pgfforeach\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psaddtolength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psaddtolength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarc(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarc*(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarc*[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarc*[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarc*{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarc[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarc[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarc\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarc{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psarcAB(${1:xC},${2:yC})(${3:xA},${4:yA})(${5:xB},${6:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psarcAB[${1:keyvals}](${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psarcAB[${2:keyvals}]{${1:arrows}}(${3:xC},${4:yC})(${5:xA},${6:yA})(${7:xB},${8:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcAB\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psarcAB{${1:arrows}}(${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarcn(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"psarcn*(${4:x},${5:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarcn*[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarcn*[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn*\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarcn*{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"psarcn[${4:keyvals}](${5:x},${6:y}){${1:radius}}{${2:angleA}}{${3:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"[]{}(){}{}{}\",\n        \"snippet\": \"psarcn[${5:keyvals}]{${1:arrows}}(${6:x},${7:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcn\",\n      \"arg\": {\n        \"format\": \"{}(){}{}{}\",\n        \"snippet\": \"psarcn{${1:arrows}}(${5:x},${6:y}){${2:radius}}{${3:angleA}}{${4:angleB}}\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psarcnAB(${1:xC},${2:yC})(${3:xA},${4:yA})(${5:xB},${6:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psarcnAB[${1:keyvals}](${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"[]{}()()()\",\n        \"snippet\": \"psarcnAB[${2:keyvals}]{${1:arrows}}(${3:xC},${4:yC})(${5:xA},${6:yA})(${7:xB},${8:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarcnAB\",\n      \"arg\": {\n        \"format\": \"{}()()()\",\n        \"snippet\": \"psarcnAB{${1:arrows}}(${2:xC},${3:yC})(${4:xA},${5:yA})(${6:xB},${7:yB})\"\n      }\n    },\n    {\n      \"name\": \"psarrowlinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"psbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"psbezier*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"psbezier*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"psbezier*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier*\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"psbezier*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"psbezier[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"psbezier[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbezier\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"psbezier{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psbordercolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"pscbezier(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"pscbezier*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})(${7:x3},${8:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"pscbezier*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"pscbezier*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier*\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"pscbezier*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"[]()()()()\",\n        \"snippet\": \"pscbezier[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"[]{}()()()()\",\n        \"snippet\": \"pscbezier[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})(${7:x2},${8:y2})(${9:x3},${10:y3})\"\n      }\n    },\n    {\n      \"name\": \"pscbezier\",\n      \"arg\": {\n        \"format\": \"{}()()()()\",\n        \"snippet\": \"pscbezier{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})(${8:x3},${9:y3})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psccurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psccurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psccurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psccurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psccurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psccurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psccurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psccurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psccurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pscircle(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircle(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"pscircle*(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psCircle*(${2:x0},${3:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pscircle*[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircle*[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscircle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"pscircle[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"psCircle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psCircle[${2:keyvals}](${3:x0},${4:y0}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscirclebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCirclebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscirclebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCirclebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscirclebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psCirclebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscirclebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscirclebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psCirclebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psCirclebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscircleOA\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscircleOA(${1:xO},${2:yO})(${3:xA},${4:yA})\"\n      }\n    },\n    {\n      \"name\": \"pscircleOA\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscircleOA[${1:keyvals}](${2:xO},${3:yO})(${4:xA},${5:yA})\"\n      }\n    },\n    {\n      \"name\": \"psclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psclip{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"psclipbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psclipbox[${2:dim%l}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psclipbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psclipbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pscoor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pscurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pscurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"pscurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"pscurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"pscustom*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscustom*[${2:keyvals}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscustom*{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pscustom[${2:keyvals}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pscustom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscustom{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"psdashcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psdblframebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdblframebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdblframebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdblframebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdblframebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdblframebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psDEBUG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psDEBUG[${2:opt}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psDEBUG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psDEBUG{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdiabox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdiabox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psdiabox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psdiabox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psdiamond\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdiamond(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdiamond*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdiamond*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdiamond\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdiamond[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psdot(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psdot*(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psdot*[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdot\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psdot[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psdots\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdots(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psdots*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdots*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdots\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psdots[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psdoublecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psdoublesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psecurve(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psecurve*(${1:x1},${2:y1})(${3:xn},${4:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psecurve*[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psecurve*[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psecurve*{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psecurve[${1:keyvals}](${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psecurve[${2:keyvals}]{${1:arrows}}(${3:x1},${4:y1})(${5:xn},${6:yn})\"\n      }\n    },\n    {\n      \"name\": \"psecurve\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psecurve{${1:arrows}}(${2:x1},${3:y1})(${4:xn},${5:yn})\"\n      }\n    },\n    {\n      \"name\": \"psellipse\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psellipse(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psellipse*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psellipse*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipse\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psellipse[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psellipseAB(${2:x},${3:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psellipseAB*(${2:x},${3:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psellipseAB*[${2:keyvals}](${3:x},${4:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipseAB\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"psellipseAB[${2:keyvals}](${3:x},${4:y}){${1:half radius}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarc(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarc*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarc*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarc\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarc[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarcn(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticarcn*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarcn*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticarcn\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticarcn[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticwedge(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"psellipticwedge*(${3:x0},${4:y0})(${5:x1},${6:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticwedge*[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psellipticwedge\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"psellipticwedge[${3:keyvals}](${4:x0},${5:y0})(${6:x1},${7:y1}){${1:angle1}}{${2:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psfillcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psforeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psforeach{${1:variable%cmd}}{${2:value list}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"psForeach\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"psForeach{${1:variable%cmd}}{${2:value list}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"psframe\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psframe(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psframe*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psframe*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframe\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psframe[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psframebox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psframebox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psframebox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psframebox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psframebox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psframesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgetCMYKColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetCMYKColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgetColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgetRGBColorValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psgetRGBColorValues{${1:color macro}}\"\n      }\n    },\n    {\n      \"name\": \"psgrid\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psgrid(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"psgridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psgridlabelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshatchcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshooklength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshookwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pshskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pshskip{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"pslabelsep\"\n    },\n    {\n      \"name\": \"pslbrace\"\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psline(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLine(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLine(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psline*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"psLine*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"psLine*(${1:x1},${2:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psline*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLine*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLine*[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psline*[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline*\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psline*{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psline[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"psLine[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"psLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"psLine[${1:keyvals}](${2:x1},${3:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"[]{}()()\",\n        \"snippet\": \"psline[${2:keyvals}]{${1:arrows}}(${3:x0},${4:y0})(${5:x1},${6:y1})\"\n      }\n    },\n    {\n      \"name\": \"psline\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"psline{${1:arrows}}(${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pslinearc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pslongbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pslongbox{${1:name}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"psLoop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psLoop{${1:n}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"psLoopIndex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psmathboxfalse\"\n    },\n    {\n      \"name\": \"psmathboxtrue\"\n    },\n    {\n      \"name\": \"psovalbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psovalbox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psovalbox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psovalbox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psovalbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psovalbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psoverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psoverlay{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"psPline\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"psPline(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"psPline\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"psPline[${1:keyvals}](${2:x1},${3:y1})(${4:x2},${5:y2})(${6:x3},${7:y3})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pspolygon(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon*\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"pspolygon*(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon*\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pspolygon*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"pspolygon\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"pspolygon[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})(${6:x2},${7:y2})\"\n      }\n    },\n    {\n      \"name\": \"psrbrace\"\n    },\n    {\n      \"name\": \"psresetColor\"\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"psRing(${4:x},${5:y})[${3:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psRing(${3:x},${4:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"()[]{}{}\",\n        \"snippet\": \"psRing*(${4:x},${5:y})[${3:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"psRing*(${3:x},${4:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"[]()[]{}{}\",\n        \"snippet\": \"psRing*[${3:keyvals}](${5:x},${6:y})[${4:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing*\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psRing*[${3:keyvals}](${4:x},${5:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"[]()[]{}{}\",\n        \"snippet\": \"psRing[${3:keyvals}](${5:x},${6:y})[${4:start,end}]{${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psRing\",\n      \"arg\": {\n        \"format\": \"[](){}{}\",\n        \"snippet\": \"psRing[${3:keyvals}](${4:x},${5:y}){${1:inner radius}}{${2:outer radius}}\"\n      }\n    },\n    {\n      \"name\": \"psrunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psscalebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"psscalebox{${1:num1 num2}}{${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psscaleboxto\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"psscaleboxto(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pssetGrayscale\"\n    },\n    {\n      \"name\": \"pssetlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"pssetMonochrome\"\n    },\n    {\n      \"name\": \"pssetxlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetxlength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"pssetylength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pssetylength{${1:cmd}}{${2:dim}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadowbox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadowbox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psshadowbox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psshadowbox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"psshadowcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pssubgridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstCheckCoorType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstCheckCoorType{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pstcustomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psTextFrame\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psTextFrame(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame*\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"psTextFrame*(${2:x1},${3:y1})(${4:x2},${5:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame*\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psTextFrame*[${2:keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"psTextFrame\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"psTextFrame[${2:keyvals}](${3:x1},${4:y1})(${5:x2},${6:y2}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstheader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstheader{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PSTlualatexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTlualatextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstnodescale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstriangle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstriangle(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"pstriangle*(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstriangle*[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstriangle\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"pstriangle[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pstribox*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstribox*[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstribox*{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstribox[${2:keyvals}]{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"pstribox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstribox{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"PSTricksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PSTricksOff\"\n    },\n    {\n      \"name\": \"PSTrickstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstrotate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstverb{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pstVerb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstVerb{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"pstverbscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psverbboxfalse\"\n    },\n    {\n      \"name\": \"psverbboxtrue\"\n    },\n    {\n      \"name\": \"pswedge\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pswedge(${4:x0},${5:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge*\",\n      \"arg\": {\n        \"format\": \"(){}{}{}\",\n        \"snippet\": \"pswedge*(${4:x0},${5:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge*\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pswedge*[${4:keyvals}](${5:x0},${6:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"pswedge\",\n      \"arg\": {\n        \"format\": \"[](){}{}{}\",\n        \"snippet\": \"pswedge[${4:keyvals}](${5:x0},${6:y0}){${1:radius}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"psxunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psyunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putoverlaybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putoverlaybox{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"qdisk\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"qdisk(${2:coor}){${1:radius}}\"\n      }\n    },\n    {\n      \"name\": \"qline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"qline(${1:coor0})(${2:coor1})\"\n      }\n    },\n    {\n      \"name\": \"radians\"\n    },\n    {\n      \"name\": \"rcurveto\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"rcurveto(${1:x1},${2:y1})(${3:x2},${4:y2})(${5:x3},${6:y3})\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"resetArrowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversepath\"\n    },\n    {\n      \"name\": \"rlineto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rlineto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"rmoveto\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rmoveto(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotate{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotatedown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatedown{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rotateleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateleft{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rotateright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateright{${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput*(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput*(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput*[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput*[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput*[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput*[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput*{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput*{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput[${2:refpoint}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"Rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"Rput[${3:refpoint}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput{${1:rotation}}(${3:x},${4:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"scale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scale{${1:num1 num2}}\"\n      }\n    },\n    {\n      \"name\": \"setcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"showgridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showgridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpecialCoor\"\n    },\n    {\n      \"name\": \"stroke\"\n    },\n    {\n      \"name\": \"stroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stroke[${1:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"swapaxes\"\n    },\n    {\n      \"name\": \"translate\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"translate(${1:coor})\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"uput*[${2:refangle}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"uput*[${3:refangle}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"{}[](){}\",\n        \"snippet\": \"uput*{${1:labelsep}}[${3:refangle}](${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput*\",\n      \"arg\": {\n        \"format\": \"{}[]{}(){}\",\n        \"snippet\": \"uput*{${1:labelsep}}[${4:refangle}]{${2:rotation}}(${5:x},${6:y}){${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"uput[${2:refangle}](${3:x},${4:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"uput[${3:refangle}]{${1:rotation}}(${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"{}[](){}\",\n        \"snippet\": \"uput{${1:labelsep}}[${3:refangle}](${4:x},${5:y}){${2:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"uput\",\n      \"arg\": {\n        \"format\": \"{}[]{}(){}\",\n        \"snippet\": \"uput{${1:labelsep}}[${4:refangle}]{${2:rotation}}(${5:x},${6:y}){${3:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"white\"\n    },\n    {\n      \"name\": \"yellow\"\n    },\n    {\n      \"name\": \"psset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psset{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPadd{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPsub{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPmul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPdiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPMul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPMul{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPDiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pstFPDiv{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"pstFPstripZeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pstFPstripZeros{${1:cmd}}{${2:num}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"psclip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:graphics}}\"\n      }\n    },\n    {\n      \"name\": \"pspicture*\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture*\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"pspicture\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:keyvals}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pstricks#c\": [\n      \"noxcolor\",\n      \"useCalc\",\n      \"gsfonts\",\n      \"psfonts\",\n      \"noEngineCheck\",\n      \"pdf\",\n      \"xetex\",\n      \"nometadata\",\n      \"distiller\",\n      \"monochrome\",\n      \"grayscale\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"luatex\",\n      \"pdftex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pstricks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pstring.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\",\n      \"if\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pstr\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstr{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pstr\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pstr[${2:raise%l}]{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pstr\",\n      \"if\": \"pstricks\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"pstr[${2:raise%l}][${3:nodesep%l}]{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetLabelStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetLabelStyle{${1:style cmds}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetArrowColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetArrowColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetArrowLineWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetArrowLineWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetArrowAngle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetArrowAngle{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetArrowLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetArrowLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstrSetArrowLineStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstrSetArrowLineStyle{${1:line style%keyvals}}\",\n        \"keys\": [\n          \"\\\\pstrSetArrowLineStyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pstr{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pstr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pstr[${2:raise%l}]{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pstr\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Pstr[${2:raise%l}][${3:nodesep%l}]{${1:string spec%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"arrow{${1:source}}{${2:target}}{${3:angle}}{${4:label}}{${5:linecolor}}{${6:linestyle}}\"\n      }\n    },\n    {\n      \"name\": \"txt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pstring#c\": [\n      \"pstricks\",\n      \"pgf\"\n    ],\n    \"\\\\pstrSetArrowLineStyle#c\": [\n      \"solid\",\n      \"dotted\",\n      \"dashed\",\n      \"none\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pstring#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/psvectorian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pstricks\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"psvectorian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psvectorian{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"psvectorian\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psvectorian[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\psvectorian\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"psvectorianDefaultColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\psvectorian\": [\n      \"scale=${1:factor}\",\n      \"opacity=${1:factor}\",\n      \"width=\",\n      \"height=\",\n      \"color=\",\n      \"flip\",\n      \"mirror\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ptex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autospacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noautospacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autoxspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noautoxspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inhibitglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disinhibitglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yoko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dtou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifydir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifddir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptextracingfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexfontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexminorversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefistretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfstrcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfstrcmp{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcreationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdffilemoddate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilemoddate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdffilesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdffilesize{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfshellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmdfivesum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmdfivesum{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pdfnormaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfelapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfresettimer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epTeXversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodesubtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epTeXinputencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readpapersizespecial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentspacingmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentxspacingmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppresslongerror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppressoutererror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suppressmathparerror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingstacklevels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partokencontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showstream\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"synctex\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ptext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"biditools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setptextdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setptextdefault{${1:range}}\"\n      }\n    },\n    {\n      \"name\": \"ptext\"\n    },\n    {\n      \"name\": \"ptext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ptext[${1:range}]\"\n      }\n    },\n    {\n      \"name\": \"ptext*\"\n    },\n    {\n      \"name\": \"ptext*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ptext*[${1:range}]\"\n      }\n    },\n    {\n      \"name\": \"ChangePtextPar\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ptext#c\": [\n      \"nopar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ptext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ptolemaicastronomy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spheresystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spheresystem{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"spheresystem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spheresystem[${2:options}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"spherelayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spherelayer{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"spherelayer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spherelayer[${2:options}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"spherefill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spherefill{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"spherefill\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spherefill[${2:options}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"proposition{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"proposition[${5:options}]{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"propositionintersect\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"propositionintersect{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"propositionintersect\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"propositionintersect[${5:options}]{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"spherepos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spherepos{${1:angle}}{${2:integer}}{${3:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"spherepos\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"spherepos[${4:options}]{${1:angle}}{${2:integer}}{${3:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"sphereintersect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sphereintersect{${1:integer}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"sphereintersect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sphereintersect[${3:options}]{${1:integer}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"propositionplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"propositionplot{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"propositionplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"propositionplot[${5:options}]{${1:angle}}{${2:integer}}{${3:width}}{${4:length}}\"\n      }\n    },\n    {\n      \"name\": \"sphereplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sphereplot{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/punk.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"punkfamily\"\n    },\n    {\n      \"name\": \"textpunk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpunk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpunksl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpunksl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textpunkbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpunkbf{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/puyotikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pythontex\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"puyosmallscale\"\n    },\n    {\n      \"name\": \"puyobigscale\"\n    },\n    {\n      \"name\": \"puyoboard\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"puyoboard{${1:board string}}{${2:next puyos string}}\"\n      }\n    },\n    {\n      \"name\": \"puyoboard\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"puyoboard[${3:options%keyvals}]{${1:board string}}{${2:next puyos string}}\",\n        \"keys\": [\n          \"\\\\puyoboard,\\\\puyogrid\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"puyomarker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puyomarker{${1:marker string}}\"\n      }\n    },\n    {\n      \"name\": \"puyogrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"puyogrid{${1:board string}}\"\n      }\n    },\n    {\n      \"name\": \"puyogrid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"puyogrid[${2:options%keyvals}]{${1:board string}}\",\n        \"keys\": [\n          \"\\\\puyoboard,\\\\puyogrid\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"puyocolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"puyocolor{${1:name}}{${2:r,g,b}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"puyotikz\"\n    },\n    {\n      \"name\": \"puyotikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:scale}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\puyoboard,\\\\puyogrid\": [\n      \"ncols=${1:number}\",\n      \"nrows=${1:number}\",\n      \"nhidrows=${1:number}\",\n      \"showlabels=${1|True,False|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pvscript.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pvscript\"\n    },\n    {\n      \"name\": \"textpvscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpvscript{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/px-ds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/px-ds#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/px-ds#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxbabel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pxbase\"\n    },\n    {\n      \"name\": \"ifptex\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"ifuptex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cjklanguagename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cjklanguagename{${1:lang-id}}\"\n      }\n    },\n    {\n      \"name\": \"UTFJ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UTFJ{${1:hex number}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxDeclareCJKEncoding{${1:h-encoding}}{${2:v-encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKEncoding*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxDeclareCJKEncoding*{${1:h-encoding}}{${2:v-encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKFamily{${1:encoding}}{${2:mc-m}}{${3:gt-m}}{${4:mc-bx}}{${5:gt-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKFamily*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKFamily*{${1:encoding}}{${2:mc-m}}{${3:gt-m}}{${4:mc-bx}}{${5:gt-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareExtraCJKFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pxDeclareExtraCJKFamily{${1:encoding}}{${2:family}}{${3:font-m}}{${4:font-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareExtraCJKFamily*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pxDeclareExtraCJKFamily*{${1:encoding}}{${2:family}}{${3:font-m}}{${4:font-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKFallback{${1:encoding}}{${2:family}}{${3:series}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKShape{${1:encoding}}{${2:family}}{${3:series}}{${4:font}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareCJKShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:font}}\"\n      }\n    },\n    {\n      \"name\": \"pxDefineFontSubst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxDefineFontSubst{${1:sym}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pxFontSubst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxFontSubst{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareExtraCJKShapeBF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareExtraCJKShapeBF{${1:encoding}}{${2:shape}}{${3:mc-m}}{${4:gt-m}}{${5:mc-bx}}{${6:gt-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxForceFontDeclaration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxDeclareKanjiFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxDeclareKanjiFamily{${1:encoding}}{${2:family}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:spec}}\"\n      }\n    },\n    {\n      \"name\": \"pxUndeclareFontShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pxUndeclareFontShape{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareEncodingDispatcher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxDeclareEncodingDispatcher{${1:encoding}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pxDispatchEncodings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxDispatchEncodings{${1:enc1,enc2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pxIsEncodingDispatched\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxIsEncodingDispatched{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxBothEncodingsFromName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxBothEncodingsFromName{${1:\\\\CSyoko}}{${2:\\\\CState}}{${3:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxEncodingFromName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxEncodingFromName{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxTateEncodingFromName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxTateEncodingFromName{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxSetEncodingName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxSetEncodingName{${1:encoding}}{${2:h-encoding}}{${3:v-encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKEncodingNE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxDeclareCJKEncodingNE{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKEncodingNE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxDeclareCJKEncodingNE*{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareExtraCJKFamilyNE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareExtraCJKFamilyNE{${1:encoding}}{${2:family}}{${3:h-m}}{${4:h-bx}}{${5:v-m}}{${6:v-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareExtraCJKFamilyNE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareExtraCJKFamilyNE*{${1:encoding}}{${2:family}}{${3:h-m}}{${4:h-bx}}{${5:v-m}}{${6:v-bx}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKShapeNE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKShapeNE{${1:encoding}}{${2:family}}{${3:series}}{${4:h-font}}{${5:v-font}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareBasicCJKShapeNE*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareBasicCJKShapeNE*{${1:encoding}}{${2:family}}{${3:series}}{${4:h-font}}{${5:v-font}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareCJKShapeNE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pxDeclareCJKShapeNE{${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:h-font}}{${6:v-font}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclareJSFEncoding\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxDeclareJSFEncoding{${1:h-encoding}}{${2:v-encoding}}{${3:sfid,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareJSFFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareJSFFamily{${1:encoding}}{${2:family}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareJSFFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareJSFFamily{${1:encoding}}{${2:family}}[${4:sfid,...}]{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"AppendToJSFFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AppendToJSFFamily{${1:encoding}}{${2:family}}{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"AppendToJSFFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"AppendToJSFFamily{${1:encoding}}{${2:family}}[${4:sfid,...}]{${3:body}}\"\n      }\n    },\n    {\n      \"name\": \"JSFBasicShapeSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSFBasicShapeSet{${1:font-m-n}}{${2:font-bx-n}}\"\n      }\n    },\n    {\n      \"name\": \"JSFBasicShapeSet*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSFBasicShapeSet*{${1:font-m-n}}{${2:font-bx-n}}\"\n      }\n    },\n    {\n      \"name\": \"JSFFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JSFFallback{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"JSFBasicShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSFBasicShape{${1:series}}{${2:font-n}}\"\n      }\n    },\n    {\n      \"name\": \"JSFBasicShape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"JSFBasicShape*{${1:series}}{${2:font-n}}\"\n      }\n    },\n    {\n      \"name\": \"JSFShape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"JSFShape{${1:series}}{${2:shape}}{${3:font}}\"\n      }\n    },\n    {\n      \"name\": \"JSFShape*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"JSFShape*{${1:series}}{${2:shape}}{${3:font}}\"\n      }\n    },\n    {\n      \"name\": \"JSFShapeRaw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"JSFShapeRaw{${1:series}}{${2:shape}}{${3:spec}}\"\n      }\n    },\n    {\n      \"name\": \"pxStdYEnc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxStdTEnc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"selectjaencoding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectjaencoding{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"normaljaencoding\"\n    },\n    {\n      \"name\": \"standardjaencoding\"\n    },\n    {\n      \"name\": \"pxBDHookEncSwitchOTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxEncSwitchOTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxbabel#c\": [\n      \"japanese\",\n      \"korean\",\n      \"schinese\",\n      \"tchinese\",\n      \"${1:lang-id}=${2:lang-name}\",\n      \"${1:lang-id}=+${2:lang-name}\",\n      \"${1:lang-id}\",\n      \"+${1:lang-id}\",\n      \"main=${1:lang-name}\",\n      \"caption=${1|main,default,switch,auto|}\",\n      \"noswitchcaption\",\n      \"switchcaption\",\n      \"switchfont\",\n      \"noswitchfont\",\n      \"stdjaencoding\",\n      \"nostdjaencoding\",\n      \"deluxemulti\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxbabel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"bxbase\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pxchfon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"glyphid\"\n    },\n    {\n      \"name\": \"pxufont\",\n      \"if\": \"glyphid\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"pxufont\",\n      \"if\": \"expert\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pxchfonsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxchfonsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/pxchfon#c,\\\\pxchfonsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gid\",\n      \"if\": \"glyphid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gid{${1:整数}}\"\n      }\n    },\n    {\n      \"name\": \"pxchfonDeclareOneWeightPreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxchfonDeclareOneWeightPreset{${1:名前}}{${2:明朝}}{${3:ゴシック}}\"\n      }\n    },\n    {\n      \"name\": \"pxchfonDeclareMultiWeightPreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pxchfonDeclareMultiWeightPreset{${1:名前}}{${2:明朝・細}}{${3:明朝・中}}{${4:明朝・太}}{${5:ゴシック・中}}{${6:ゴシック・太}}{${7:ゴシック・極太}}{${8:ゴシック・単}}{${9:丸ゴシック}}\"\n      }\n    },\n    {\n      \"name\": \"setminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setlightminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlightminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setlightminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlightminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmediumminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmediumminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setboldminchofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setboldminchofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmediumgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmediumgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmediumgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setboldgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setboldgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setxboldgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setxboldgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setxboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setoneweightgothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setoneweightgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setoneweightgothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setoneweightgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmarugothicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarugothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setmarugothicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmarugothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreangothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreangothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreangothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreangothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanlightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanlightminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanlightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanlightminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanmediumminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanmediumminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanboldminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanboldminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanmediumgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanmediumgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanxboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanxboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanxboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanxboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanoneweightgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanoneweightgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkoreanmarugothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setkoreanmarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setkoreanmarugothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschineseminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschineseminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesegothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschinesegothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesegothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschinesegothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineselightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschineselightminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineselightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschineselightminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschinesemediumminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschinesemediumminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschineseboldminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschineseboldminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschinesemediumgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschinesemediumgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschineseboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschineseboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesexboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschinesexboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesexboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschinesexboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschineseoneweightgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschineseoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschineseoneweightgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setschinesemarugothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setschinesemarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setschinesemarugothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchineseminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchineseminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesegothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchinesegothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesegothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchinesegothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineselightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchineselightminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineselightminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchineselightminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchinesemediumminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemediumminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchinesemediumminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchineseboldminchofont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseboldminchofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchineseboldminchofont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchinesemediumgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemediumgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchinesemediumgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchineseboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchineseboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesexboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchinesexboldgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesexboldgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchinesexboldgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchineseoneweightgothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchineseoneweightgothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchineseoneweightgothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settchinesemarugothicfont{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"settchinesemarugothicfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settchinesemarugothicfont[${2:番号}]{${1:フォントファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"usecmapforalphabet\"\n    },\n    {\n      \"name\": \"nousecmapforalphabet\"\n    },\n    {\n      \"name\": \"JaFontReplacementFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JaFontReplacementFor{${1:sym}}\"\n      }\n    },\n    {\n      \"name\": \"JaFontReplacementHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"JaFontReplacementHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"JaFontUserDefinedMap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usefontmapline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefontmapline{${1:マップ行}}\"\n      }\n    },\n    {\n      \"name\": \"usefontmapfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefontmapfile{${1:マップファイル名}}\"\n      }\n    },\n    {\n      \"name\": \"setnewglyphcmapprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnewglyphcmapprefix{${1:文字列}}\"\n      }\n    },\n    {\n      \"name\": \"Entry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Entry{${1:sym}}{${2:tfm}}{${3:cmap}}{${4:modify,...}}\"\n      }\n    },\n    {\n      \"name\": \"diruni\"\n    },\n    {\n      \"name\": \"textdiruni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdiruni{${1:テキスト}}\"\n      }\n    },\n    {\n      \"name\": \"pxchfonNoCheckMultiweight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxchfonNoCheckExpert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jfmsync\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jfmsyncbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jfmsyncbox{${1:width}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"usefontmaplines\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pxchfon#c,\\\\pxchfonsetup#c\": [\n      \"nodvidriver\",\n      \"resetdvidriver\",\n      \"dvips\",\n      \"dviout\",\n      \"xdvi\",\n      \"dvipdfmx\",\n      \"use=${1:名前}\",\n      \"alphabet\",\n      \"noalphabet\",\n      \"relfont\",\n      \"otf\",\n      \"nootf\",\n      \"utf\",\n      \"noutf\",\n      \"usecmapforalphabet\",\n      \"nousecmapforalphabet\",\n      \"preferjis2004\",\n      \"nopreferjis2004\",\n      \"everypage\",\n      \"noeverypage\",\n      \"oneweight\",\n      \"nooneweight\",\n      \"unicode\",\n      \"unicode=${1|full,all,UTF,false|}\",\n      \"dumpmap\",\n      \"nodumpmap\",\n      \"dumpmaptl\",\n      \"nodumpmaptl\",\n      \"switchfont\",\n      \"noswitchfont\",\n      \"strictcsi\",\n      \"nostrictcsi\",\n      \"fullwidth\",\n      \"nofullwidth\",\n      \"legacycode=${1|apply,ignore,suppress|}\",\n      \"legacycode-replace=${1:真偽値}\",\n      \"expert\",\n      \"noexpert\",\n      \"glyphid\",\n      \"noglyphid\",\n      \"maybe-multiweight\",\n      \"nocheck-expert\",\n      \"autojfmsync\",\n      \"noautojfmsync\",\n      \"noembed\",\n      \"ms\",\n      \"ipa\",\n      \"ipaex\",\n      \"ms-hg\",\n      \"ipa-hg\",\n      \"ipaex-hg\",\n      \"moga-mobo\",\n      \"moga-mobo-ex\",\n      \"moga-maruberi\",\n      \"ume\",\n      \"kozuka-pro\",\n      \"kozuka-pr6\",\n      \"kozuka-pr6n\",\n      \"hiragino-pro\",\n      \"hiragino-pron\",\n      \"hiragino-elcapitan-pro\",\n      \"hiragino-elcapitan-pron\",\n      \"morisawa-pro\",\n      \"morisawa-pr6n\",\n      \"yu-win\",\n      \"yu-win10\",\n      \"yu-osx\",\n      \"sourcehan-otc\",\n      \"sourcehan\",\n      \"sourcehan-jp\",\n      \"noto-otc\",\n      \"noto\",\n      \"noto-jp\",\n      \"haranoaji\",\n      \"sourcehan-otc!\",\n      \"sourcehan!\",\n      \"sourcehan-jp!\",\n      \"noto-otc!\",\n      \"noto!\",\n      \"noto-jp!\",\n      \"noto-otf!\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxchfon#c,\\\\pxchfonsetup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxcjkcat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cjkcategorymode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cjkcategorymode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\cjkcategorymode#c,\\\\usepackage/pxcjkcat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cjkcategory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cjkcategory{${1:block}}{${2:category}}\"\n      }\n    },\n    {\n      \"name\": \"showcjkcategory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getcjktokenmode\"\n    },\n    {\n      \"name\": \"thecjktokenmode\"\n    },\n    {\n      \"name\": \"setcjktokenmode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcjktokenmode{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokendisabled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokendisabled{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokenenabled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokenenabled{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokenforced\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokenforced{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokendisabledex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokendisabledex{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokenenabledex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokenenabledex{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withcjktokenforcedex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"withcjktokenforcedex{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxcjkcat#c\": [\n      \"ccv1\",\n      \"ccv2\",\n      \"ccv3\",\n      \"ccv4\",\n      \"ccv+\",\n      \"real\",\n      \"nomode\"\n    ],\n    \"\\\\cjkcategorymode#c,\\\\usepackage/pxcjkcat#c\": [\n      \"forcecjk\",\n      \"default\",\n      \"prefercjk\",\n      \"prefercjkvar\",\n      \"japanese\",\n      \"japanesevar\",\n      \"prefernoncjk\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxcjkcat#c\",\n    \"\\\\cjkcategorymode#c,\\\\usepackage/pxcjkcat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"alphaup\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betaup\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiup\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"deltaup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"epsilonup\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"etaup\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"gammaup\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"idotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"iotaup\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappaup\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"lambdaup\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmmappedfrom \"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrJoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfromchar\"\n    },\n    {\n      \"name\": \"Mappedfromchar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapstochar\"\n    },\n    {\n      \"name\": \"mathcent\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfromchar\"\n    },\n    {\n      \"name\": \"Mmappedfromchar\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapstochar\"\n    },\n    {\n      \"name\": \"Mmapstochar\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"muup\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nuup\"\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintclockwise\"\n    },\n    {\n      \"name\": \"oiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintclockwise\"\n    },\n    {\n      \"name\": \"oiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\"\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"phiup\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"piup\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"psiup\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoup\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"sigmaup\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqiiint\"\n    },\n    {\n      \"name\": \"sqiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"sqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauup\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thetaup\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upsilonup\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varepsilonup\"\n    },\n    {\n      \"name\": \"varg\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varoiiintclockwise\"\n    },\n    {\n      \"name\": \"varoiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintclockwise\"\n    },\n    {\n      \"name\": \"varoiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varphiup\"\n    },\n    {\n      \"name\": \"varpiup\"\n    },\n    {\n      \"name\": \"varprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoup\"\n    },\n    {\n      \"name\": \"varsigmaup\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetaup\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"xiup\"\n    },\n    {\n      \"name\": \"zetaup\"\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"DeclareMathSymbolCtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbolCtr{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxfonts#c\": [\n      \"varg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxftnright.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"ftnright\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pxgreeks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pxfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"omicronup\"\n    },\n    {\n      \"name\": \"otheralpha\"\n    },\n    {\n      \"name\": \"otherbeta\"\n    },\n    {\n      \"name\": \"otherchi\"\n    },\n    {\n      \"name\": \"otherdelta\"\n    },\n    {\n      \"name\": \"otherDelta\"\n    },\n    {\n      \"name\": \"otherepsilon\"\n    },\n    {\n      \"name\": \"othereta\"\n    },\n    {\n      \"name\": \"othergamma\"\n    },\n    {\n      \"name\": \"otherGamma\"\n    },\n    {\n      \"name\": \"otheriota\"\n    },\n    {\n      \"name\": \"otherkappa\"\n    },\n    {\n      \"name\": \"otherlambda\"\n    },\n    {\n      \"name\": \"otherLambda\"\n    },\n    {\n      \"name\": \"othermu\"\n    },\n    {\n      \"name\": \"othernu\"\n    },\n    {\n      \"name\": \"otheromega\"\n    },\n    {\n      \"name\": \"otherOmega\"\n    },\n    {\n      \"name\": \"otheromicron\"\n    },\n    {\n      \"name\": \"otherphi\"\n    },\n    {\n      \"name\": \"otherPhi\"\n    },\n    {\n      \"name\": \"otherpi\"\n    },\n    {\n      \"name\": \"otherPi\"\n    },\n    {\n      \"name\": \"otherpsi\"\n    },\n    {\n      \"name\": \"otherPsi\"\n    },\n    {\n      \"name\": \"otherrho\"\n    },\n    {\n      \"name\": \"othersigma\"\n    },\n    {\n      \"name\": \"otherSigma\"\n    },\n    {\n      \"name\": \"othertau\"\n    },\n    {\n      \"name\": \"othertheta\"\n    },\n    {\n      \"name\": \"otherTheta\"\n    },\n    {\n      \"name\": \"otherupsilon\"\n    },\n    {\n      \"name\": \"otherUpsilon\"\n    },\n    {\n      \"name\": \"othervarepsilon\"\n    },\n    {\n      \"name\": \"othervarphi\"\n    },\n    {\n      \"name\": \"othervarpi\"\n    },\n    {\n      \"name\": \"othervarrho\"\n    },\n    {\n      \"name\": \"othervarsigma\"\n    },\n    {\n      \"name\": \"othervartheta\"\n    },\n    {\n      \"name\": \"otherxi\"\n    },\n    {\n      \"name\": \"otherXi\"\n    },\n    {\n      \"name\": \"otherzeta\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxgreeks#c\": [\n      \"itgreek\",\n      \"upgreek\",\n      \"itGreek\",\n      \"upGreek\",\n      \"TeX\",\n      \"sloped\",\n      \"upright\",\n      \"French\",\n      \"ISO\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxgreeks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxjahyper-enc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"suppressbigcode\"\n    },\n    {\n      \"name\": \"suppressdefaulttounicode\"\n    },\n    {\n      \"name\": \"pxjahyperToUnicodeSpecial\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxjahyperToUnicodeSpecial{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxjahyper-enc#c\": [\n      \"dvipdfmx\",\n      \"dvips\",\n      \"nodvidriver\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxjahyper-enc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxjahyper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"bxjatoucs\"\n    },\n    {\n      \"name\": \"pxjahyper-enc\",\n      \"if\": \"tounicode\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"bigcode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pxjahypersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxjahypersetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pxjahypersetup#c,\\\\usepackage/pxjahyper#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ux{${1:Unicode 符号値 16 進}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclarePdfTextCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pxDeclarePdfTextCommand{${1:cmd}}{${2:jis}}{${3:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"pxDeclarePdfTextComposite\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pxDeclarePdfTextComposite{${1:cmd}}{${2:arg}}{${3:jis}}{${4:ucs}}\"\n      }\n    },\n    {\n      \"name\": \"pxjahyperBadCharacter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxjahyperBadCharacter{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxjahyper#c\": [\n      \"dvipdfmx\",\n      \"dvipdfm\",\n      \"dvips\",\n      \"nodvidriver\",\n      \"resetdvidriver\",\n      \"tounicode\",\n      \"notounicode\",\n      \"out2uni\",\n      \"noout2uni\",\n      \"convbkmk\",\n      \"noconvbkmk\",\n      \"papersize\",\n      \"nopapersize\",\n      \"charcmds\",\n      \"nocharcmds\",\n      \"bigcode\",\n      \"nobigcode\",\n      \"jacommentline\",\n      \"nojacommentline\",\n      \"disablecmds\",\n      \"nodisablecmds\",\n      \"otfutf\",\n      \"nootfutf\",\n      \"otfcid\",\n      \"nootfcid\",\n      \"otfmacros\",\n      \"nootfmacros\"\n    ],\n    \"\\\\pxjahypersetup#c,\\\\usepackage/pxjahyper#c\": [\n      \"fallback=${1|geta,delete|}\",\n      \"fallback-warn\",\n      \"fallback-cidm\",\n      \"extjis\",\n      \"ajhankaku-chars\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxjahyper#c\",\n    \"\\\\pxjahypersetup#c,\\\\usepackage/pxjahyper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxjodel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifuptex\"\n    },\n    {\n      \"name\": \"otf\"\n    },\n    {\n      \"name\": \"mlutf\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"mlcid\",\n      \"if\": \"multi\"\n    },\n    {\n      \"name\": \"uplatex\",\n      \"if\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rubydefault\",\n      \"if\": \"expert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyfamily\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"rubykatuji\",\n      \"if\": \"expert\"\n    },\n    {\n      \"name\": \"mgdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltdefault\",\n      \"if\": \"deluxe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathmg\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathmg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mgfamily\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"textmg\",\n      \"if\": \"deluxe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"propshape\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"ebseries\",\n      \"if\": \"deluxe\"\n    },\n    {\n      \"name\": \"ltseries\",\n      \"if\": \"deluxe\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxjodel#c\": [\n      \"prefix=${1:string}\",\n      \"nomacros\",\n      \"noreplace\",\n      \"bold\",\n      \"expert\",\n      \"deluxe\",\n      \"multi\",\n      \"burasage\",\n      \"uplatex\",\n      \"autodetect\",\n      \"jis2004\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxjodel#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxmulticol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxmulticol#c\": [\n      \"errorshow\",\n      \"infoshow\",\n      \"balancingshow\",\n      \"markshow\",\n      \"debugshow\",\n      \"grid\",\n      \"colaction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxmulticol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxpic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"expkv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pxpic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxpic{${1:pixel list}}\"\n      }\n    },\n    {\n      \"name\": \"pxpic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pxpic[${2:options%keyvals}]{${1:pixel list}}\",\n        \"keys\": [\n          \"\\\\pxpic,\\\\pxpicsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxpicsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxpicsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pxpic,\\\\pxpicsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pxpicnewmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxpicnewmode{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"pxpicsetmode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxpicsetmode{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"pxpicnewcolorlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxpicnewcolorlist{${1:name}}{${2:color list}}\"\n      }\n    },\n    {\n      \"name\": \"pxpicsetcolorlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxpicsetcolorlist{${1:name}}{${2:color list}}\"\n      }\n    },\n    {\n      \"name\": \"pxpicaddcolorlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pxpicaddcolorlist{${1:name}}{${2:color list}}\"\n      }\n    },\n    {\n      \"name\": \"pxpicforget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pxpicforget{${1:px}}\"\n      }\n    },\n    {\n      \"name\": \"px\"\n    },\n    {\n      \"name\": \"pxskip\"\n    },\n    {\n      \"name\": \"pxpicHT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxpicWD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxpiclogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxpiclogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pxpiclogo[${1:size}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pxpic,\\\\pxpicsetup\": [\n      \"colors=${1:color list}\",\n      \"colours=${1:color list}\",\n      \"color-list=${1:choice}\",\n      \"colour-list=${1:choice}\",\n      \"exp=${1|full,none|}\",\n      \"expansion=${1|full,none|}\",\n      \"file\",\n      \"gap-hack=\",\n      \"ht=\",\n      \"lines=${1|group,space,csv|}\",\n      \"mode=${1|px,named,rgb,cmy,cmyk,hsb,Hsb,tHsb,gray,RGB,HTML,HSB,Gray,wave|}\",\n      \"size=\",\n      \"skip=\",\n      \"wd=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pxrubrica.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:kanji}}{${2:ruby}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ruby[${3:option%keyvals}]{${1:kanji}}{${2:ruby}}\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jruby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jruby{${1:kanji}}{${2:ruby}}\"\n      }\n    },\n    {\n      \"name\": \"jruby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"jruby[${3:option%keyvals}]{${1:kanji}}{${2:ruby}}\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aruby{${1:text}}{${2:ruby}}\"\n      }\n    },\n    {\n      \"name\": \"aruby\",\n      \"arg\": {\n        \"format\": \"[]{}{rub\",\n        \"snippet\": \"aruby[${2:option%keyvals}]{${1:text}}{rub\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"truby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"truby{${1:kanji}}{${2:upper ruby}}{${3:lower ruby}}\"\n      }\n    },\n    {\n      \"name\": \"truby\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"truby[${4:option%keyvals}]{${1:kanji}}{${2:upper ruby}}{${3:lower ruby}}\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"atruby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"atruby{${1:text}}{${2:upper ruby}}{${3:lower ruby}}\"\n      }\n    },\n    {\n      \"name\": \"atruby\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"atruby[${4:option%keyvals}]{${1:text}}{${2:upper ruby}}{${3:lower ruby}}\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rubysetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubysetup{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rubyfontsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyfontsetup{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"rubybigintrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubybigintrusion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubysmallintrusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubysmallintrusion{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubymaxmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubymaxmargin{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubyintergap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyintergap{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubyusejghost\"\n    },\n    {\n      \"name\": \"rubynousejghost\"\n    },\n    {\n      \"name\": \"rubyuseaghost\"\n    },\n    {\n      \"name\": \"rubynouseaghost\"\n    },\n    {\n      \"name\": \"rubysafemode\"\n    },\n    {\n      \"name\": \"rubynosafemode\"\n    },\n    {\n      \"name\": \"rubysizeratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubysizeratio{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubystretchprop\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rubystretchprop{${1:X}}{${2:Y}}{${3:Z}}\"\n      }\n    },\n    {\n      \"name\": \"rubystretchprophead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rubystretchprophead{${1:Y}}{${2:Z}}\"\n      }\n    },\n    {\n      \"name\": \"rubystretchpropend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rubystretchpropend{${1:X}}{${2:Y}}\"\n      }\n    },\n    {\n      \"name\": \"rubyyheightratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyyheightratio{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubytheightratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubytheightratio{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kenten\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kenten{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kenten\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"kenten[${2:option%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\kenten#c,\\\\jkenten#c,\\\\kentensetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jkenten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jkenten{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jkenten\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jkenten[${2:option%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\kenten#c,\\\\jkenten#c,\\\\kentensetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kentensetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentensetup{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\kenten#c,\\\\jkenten#c,\\\\kentensetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kspan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kspan{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kspan*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kspan*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"kentenmarkinyoko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenmarkinyoko{${1:symbol choice}}\"\n      }\n    },\n    {\n      \"name\": \"kentensubmarkinyoko\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentensubmarkinyoko{${1:symbol choice}}\"\n      }\n    },\n    {\n      \"name\": \"kentenmarkintate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenmarkintate{${1:symbol choice}}\"\n      }\n    },\n    {\n      \"name\": \"kentensubmarkintate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentensubmarkintate{${1:symbol choice}}\"\n      }\n    },\n    {\n      \"name\": \"kentenfontsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenfontsetup{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"kentenintergap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenintergap{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kentensizeratio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentensizeratio{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kentenrubycombination\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenrubycombination{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\kentenrubycombination#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"kentenrubyintergap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kentenrubyintergap{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rubyadjustatlineedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubybreakjukugo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubynoadjustatlineedge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubynobreakjukugo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyuseextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyuseextra{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ruby#c,\\\\jruby#c,\\\\aruby#c,\\\\truby#c,\\\\atruby#c,\\\\rubysetup#c\": [\n      \"-\",\n      \"c\",\n      \"h\",\n      \"H\",\n      \"m\",\n      \"g\",\n      \"j\",\n      \"M\",\n      \"J\",\n      \"P\",\n      \"S\",\n      \"e\",\n      \"E\",\n      \"f\",\n      \"F\",\n      \"|-|\",\n      \"(-)\",\n      \"<->\",\n      \"<-|\",\n      \"|->\",\n      \"-||\",\n      \"||-\",\n      \"<-||\",\n      \"||->\"\n    ],\n    \"\\\\kenten#c,\\\\jkenten#c,\\\\kentensetup#c\": [\n      \"p\",\n      \"s\",\n      \"f\",\n      \"F\",\n      \"P\",\n      \"S\"\n    ],\n    \"\\\\kentenrubycombination#c\": [\n      \"ruby\",\n      \"both\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pxtx-cal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxtx-cal#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxtx-cal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxtx-frak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"frakdotlessi\"\n    },\n    {\n      \"name\": \"frakdotlessj\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/pxtx-frak#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pxtx-frak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pxxspace.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pygmentex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"efbox\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inputpygmented\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputpygmented{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputpygmented\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputpygmented[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pyginline\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pyginline|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pyginline\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pyginline[${1:options}]|${2:code}|\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\pyginline#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpygmented\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpygmented{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"widest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"widest(${3:string list}){${1:code}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimOutAppend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FormatLineNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FormatLineNumber{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pygmented\"\n    },\n    {\n      \"name\": \"pygmented\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\",\n          \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VerbatimOutAppend\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pygmentex#c\": [\n      \"force\"\n    ],\n    \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\pyginline#c,\\\\setpygmented#c\": [\n      \"lang=${1:language}\",\n      \"sty=${1:pygments style}\",\n      \"font=${1:font commands}\",\n      \"colback=\",\n      \"gobble=${1:integer}\",\n      \"tabsize=${1:integer}\",\n      \"linenos\",\n      \"linenostart=${1:integer}\",\n      \"linenostep=${1:integer}\",\n      \"linenosep=\",\n      \"caption=${1:caption}\",\n      \"label=\",\n      \"texcomments\",\n      \"mathescape\",\n      \"escapeinside=${1:two chars}\",\n      \"force\"\n    ],\n    \"\\\\pyginline#c,\\\\setpygmented#c\": [\n      \"inline method=${1:csname}\"\n    ],\n    \"\\\\begin{pygmented}#c,\\\\inputpygmented#c,\\\\setpygmented#c\": [\n      \"boxing method=${1:envname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pygmentex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pylatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"comment\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pymacros\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pyverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyverb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"PySetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PySetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\PySetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"python\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\PySetup\": [\n      \"action=${1|show,hide,verbatim|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pyluatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"py\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"py{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyq{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pycq{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pyfileq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyfileq{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pyfilerepl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyfilerepl{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pysession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pysession{${1:session}}\"\n      }\n    },\n    {\n      \"name\": \"pyoption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pyoption{${1:option%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\pyoption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pyif\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pyif{${1:test}}{${2:then clause}}{${3:else clause}}\"\n      }\n    },\n    {\n      \"name\": \"PyLTVerbatimEnv\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"python\"\n    },\n    {\n      \"name\": \"pythonq\"\n    },\n    {\n      \"name\": \"pythonrepl\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pyluatex#c\": [\n      \"executable=${1:path}\",\n      \"ignoreerrors\",\n      \"localimports\",\n      \"shutdown=${1|veryveryend,veryenddocument,off|}\",\n      \"verbose\"\n    ],\n    \"\\\\pyoption\": [\n      \"ignoreerrors\",\n      \"verbose\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pyluatex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pymacros.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"colonEq\"\n    },\n    {\n      \"name\": \"pytag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pytag{${1:tag}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"py\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"py{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"py*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"py*{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Py\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Py{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Py*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Py*{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Py*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Py*[${2:space%l}]{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Dmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dmath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Dmath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dmath[${2:options%keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\Dmath,\\\\Dmath*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Dmath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dmath*{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"Dmath*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dmath*[${2:options%keyvals}]{${1:formula}}\",\n        \"keys\": [\n          \"\\\\Dmath,\\\\Dmath*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ttTag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttTag{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"pglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pglabel{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Dmath,\\\\Dmath*\": [\n      \"style=${1:cmds}\",\n      \"number=${1:text}\",\n      \"labelprefix=${1:prefix}\",\n      \"label=\",\n      \"indentstep=\",\n      \"compact\",\n      \"compact=${1:number}\",\n      \"spread=\",\n      \"frame\",\n      \"frame=\",\n      \"framesep=\",\n      \"breakdepth=${1:number}\",\n      \"shiftnumber\",\n      \"holdnumber\",\n      \"density=\",\n      \"layout=\",\n      \"shortskiplimit=\",\n      \"background=\",\n      \"color=\",\n      \"center\",\n      \"nocenter\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/python.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"python\"\n    },\n    {\n      \"name\": \"python\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:file}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pythonhighlight.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"framemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pythonprompt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"literatecolour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"literatecolour{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inputpythonfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputpythonfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputpythonfile\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inputpythonfile{${1:file}}[${2:start num}]\"\n      }\n    },\n    {\n      \"name\": \"inputpythonfile\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inputpythonfile{${1:file}}[${2:start num}][${3:end num}]\"\n      }\n    },\n    {\n      \"name\": \"pyth\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pyth|${1:text}|\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"python\"\n    },\n    {\n      \"name\": \"python\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\lstset,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"style=pythonhighlight-style\"\n    ],\n    \"\\\\lstinline,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"style=pythonhighlight-inline-style\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/pythonimmediate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"saveenv\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"currfile-abspath\"\n    },\n    {\n      \"name\": \"precattl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"py\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"py{${1:python expr%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyc{${1:python code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pycq{${1:python code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pythonimmediatecontinue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pythonimmediatecontinue{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pycode\"\n    },\n    {\n      \"name\": \"pycodeq\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pythonimmediate#c\": [\n      \"args=${1:Python args}\",\n      \"python-executable=${1:path}\",\n      \"python-flags=${1:flags}\",\n      \"child-process\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pythonimmediate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/pythontex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"newfloat\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"upquote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"py\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"py{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"py\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"py[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pys{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pys\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pys[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pyv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pyv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pyv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"pyb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pycon{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pycon[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pycons{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pycons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pycons[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyconc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyconc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyconc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyconc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pyconv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pyconv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pyconv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pyconv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"pylab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylab{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylab[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pylabv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pylabv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pylabv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"pylabb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabcon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabcon{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabcon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabcon[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabconc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabconc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabconc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabconc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabcons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pylabcons{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabcons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pylabcons[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pylabconv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"pylabconv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"pylabconv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"pylabconv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"sympy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympy{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympy[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympyc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympys{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympys\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympys[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"sympyv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"sympyv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"sympyv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"sympyb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympyb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympycon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycon{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympycon\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympycon[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympycons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympycons{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympycons\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympycons[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyconc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyconc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyconc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympyconc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyconv\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"sympyconv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"sympyconv\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"sympyconv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"pythontexcustomc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pythontexcustomc{${1:family}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pythontexcustomc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pythontexcustomc[${3:position%keyvals}]{${1:family}}{${2:code%definition}}\",\n        \"keys\": [\n          \"\\\\pythontexcustomc,\\\\begin{pythontexcustomcode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpythontexfv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexfv{${1:fancyvrb settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpythontexfv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpythontexfv[${2:family}]{${1:fancyvrb settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setpythontexprettyprinter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexprettyprinter{${1:printer%keyvals}}\",\n        \"keys\": [\n          \"\\\\setpythontexprettyprinter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpythontexprettyprinter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpythontexprettyprinter[${2:family}]{${1:printer%keyvals}}\",\n        \"keys\": [\n          \"\\\\setpythontexprettyprinter\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setpythontexpyglexer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexpyglexer{${1:pygments lexer}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexpyglexer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpythontexpyglexer[${2:family}]{${1:pygments lexer}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexpygopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexpygopt{${1:pygments options}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexpygopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpythontexpygopt[${2:family}]{${1:pygments options}}\"\n      }\n    },\n    {\n      \"name\": \"printpythontex\"\n    },\n    {\n      \"name\": \"printpythontex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printpythontex[${1:mode%keyvals}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printpythontex\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"printpythontex[${1:mode%keyvals}][${2:fancyvrb settings}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stdoutpythontex\"\n    },\n    {\n      \"name\": \"stdoutpythontex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stdoutpythontex[${1:mode%keyvals}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stdoutpythontex\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"stdoutpythontex[${1:mode%keyvals}][${2:fancyvrb settings}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"saveprintpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saveprintpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savestdoutpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savestdoutpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"useprintpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useprintpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"useprintpythontex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useprintpythontex[${2:mode%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useprintpythontex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"useprintpythontex[${2:mode%keyvals}][${3:fancyvrb settings}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usestdoutpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usestdoutpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usestdoutpythontex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usestdoutpythontex[${2:mode%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usestdoutpythontex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"usestdoutpythontex[${2:mode%keyvals}][${3:fancyvrb settings}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stderrpythontex\"\n    },\n    {\n      \"name\": \"stderrpythontex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stderrpythontex[${1:mode%keyvals}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stderrpythontex\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"stderrpythontex[${1:mode%keyvals}][${2:fancyvrb settings}]\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"savestderrpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savestderrpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usestderrpythontex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usestderrpythontex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usestderrpythontex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usestderrpythontex[${2:mode%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usestderrpythontex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"usestderrpythontex[${2:mode%keyvals}][${3:fancyvrb settings}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpythontexautoprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexautoprint{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexautostdout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexautostdout{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"pygment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pygment{${1:lexer}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inputpygments\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputpygments{${1:lexer}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputpygments\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inputpygments[${3:fancyvrb settings%keyvals}]{${1:lexer}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpygmentsfv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpygmentsfv{${1:fancyvrb settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpygmentsfv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpygmentsfv[${2:lexer}]{${1:fancyvrb settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setpygmentspygopt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpygmentspygopt{${1:pygments options}}\"\n      }\n    },\n    {\n      \"name\": \"setpygmentspygopt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpygmentspygopt[${2:lexer}]{${1:pygments options}}\"\n      }\n    },\n    {\n      \"name\": \"setpygmentsprettyprinter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpygmentsprettyprinter{${1:printer%keyvals}}\",\n        \"keys\": [\n          \"\\\\setpygmentsprettyprinter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpythontexlistingenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexlistingenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexcontext{${1:key-value pairs}}\"\n      }\n    },\n    {\n      \"name\": \"restartpythontexsession\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restartpythontexsession{${1:counter value(${2:s})}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexoutputdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexoutputdir{${1:output directory}}\"\n      }\n    },\n    {\n      \"name\": \"setpythontexworkingdir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpythontexworkingdir{${1:working directory}}\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rb\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbc\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rbc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbc\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rbc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbs\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rbs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbs\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rbs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbv\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"rbv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"rbv\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"rbv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"rbb\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rbb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rbb\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rbb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ruby{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"ruby\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ruby[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubyc\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubyc\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rubyc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubys\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubys{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubys\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rubys[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubyv\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"rubyv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"rubyv\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"rubyv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"rubyb\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rubyb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rubyb\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rubyb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"julia\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"julia{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"julia\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"julia[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"juliac\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"juliac{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"juliac\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"juliac[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"julias\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"julias{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"julias\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"julias[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"juliav\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"juliav|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"juliav\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"juliav[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"juliab\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"juliab{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"juliab\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"juliab[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jl\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jl{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jl\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jl[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jlc\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jlc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jlc\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jlc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jls\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jls{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jls\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jls[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jlv\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"jlv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"jlv\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"jlv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"jlb\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jlb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jlb\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jlb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlab\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlab{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlab\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlab[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabc\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlabc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabc\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlabc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabs\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlabs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabs\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlabs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabv\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"matlabv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"matlabv\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"matlabv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"matlabb\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matlabb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"matlabb\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matlabb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octave\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octave{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octave\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"octave[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octavec\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octavec{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octavec\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"octavec[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octaves\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octaves{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octaves\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"octaves[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octavev\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"octavev|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"octavev\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"octavev[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"octaveb\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octaveb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"octaveb\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"octaveb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bash\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bash{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bash\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bash[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashc\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashc\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bashc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashs\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashs\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bashs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashv\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"bashv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"bashv\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"bashv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"bashb\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bashb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"bashb\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bashb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sage\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sage{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sage\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sage[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sagec\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sagec{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sagec\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sagec[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sages\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sages{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sages\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sages[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sagev\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"sagev|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"sagev\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"sagev[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"sageb\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sageb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sageb\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sageb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rust\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rust{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rust\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rust[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rustc\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rustc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rustc\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rustc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rusts\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rusts{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rusts\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rusts[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rustv\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"rustv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"rustv\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"rustv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"rustb\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rustb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rustb\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rustb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rs\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rs\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rsc\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rsc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rsc\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rsc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rss\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rss{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rss\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rss[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rsv\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"rsv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"rsv\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"rsv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"rsb\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rsb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"rsb\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rsb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"R{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"R[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rc\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rc\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rs\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rs\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rv\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"Rv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"Rv\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"Rv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"Rb\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rb\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perl\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perl{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perl\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perl[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlc\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlc\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perls\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perls{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perls\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perls[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlv\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"perlv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"perlv\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"perlv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"perlb\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlb\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsix\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlsix{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsix\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlsix[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixc\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlsixc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixc\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlsixc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixs\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlsixs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixs\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlsixs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixv\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"perlsixv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"perlsixv\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"perlsixv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"perlsixb\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"perlsixb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"perlsixb\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"perlsixb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psix\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psix{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psix\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psix[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixc\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psixc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixc\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psixc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixs\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psixs{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixs\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psixs[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixv\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"psixv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"psixv\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"psixv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"psixb\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"psixb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"psixb\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"psixb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascript\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"javascript{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascript\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"javascript[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptc\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"javascriptc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptc\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"javascriptc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascripts\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"javascripts{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascripts\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"javascripts[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptv\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"javascriptv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"javascriptv\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"javascriptv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"javascriptb\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"javascriptb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"javascriptb\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"javascriptb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"js\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"js{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"js\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"js[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jsc\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jsc{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jsc\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jsc[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jss\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jss{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jss\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jss[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jsv\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"jsv|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"jsv\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]||\",\n        \"snippet\": \"jsv[${1:session}]|${2:code}|\"\n      }\n    },\n    {\n      \"name\": \"jsb\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jsb{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"jsb\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jsb[${2:session}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"makepythontexfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makepythontexfamily{${1:engine}}\"\n      }\n    },\n    {\n      \"name\": \"makepythontexfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makepythontexfamily[${2:options%keyvals}]{${1:engine}}\",\n        \"keys\": [\n          \"\\\\makepythontexfamily#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DepyFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DepyListing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DepyMacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Depythontex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Depythontex{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DepythontexOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DepythontexOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepygments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepygmentsfv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepygmentspyg\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pycode\"\n    },\n    {\n      \"name\": \"pycode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pycode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pysub\"\n    },\n    {\n      \"name\": \"pysub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pysub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyverbatim\"\n    },\n    {\n      \"name\": \"pyverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyblock\"\n    },\n    {\n      \"name\": \"pyblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyblock\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyconsole\"\n    },\n    {\n      \"name\": \"pyconsole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyconsole\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyconcode\"\n    },\n    {\n      \"name\": \"pyconcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyconcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyconsub\"\n    },\n    {\n      \"name\": \"pyconsub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyconsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pyconverbatim\"\n    },\n    {\n      \"name\": \"pyconverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pyconverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabcode\"\n    },\n    {\n      \"name\": \"pylabcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabsub\"\n    },\n    {\n      \"name\": \"pylabsub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabverbatim\"\n    },\n    {\n      \"name\": \"pylabverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabblock\"\n    },\n    {\n      \"name\": \"pylabblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabblock\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabconsole\"\n    },\n    {\n      \"name\": \"pylabconsole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabconsole\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabconcode\"\n    },\n    {\n      \"name\": \"pylabconcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabconcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabconsub\"\n    },\n    {\n      \"name\": \"pylabconsub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabconsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pylabconverbatim\"\n    },\n    {\n      \"name\": \"pylabconverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"pylabconverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympycode\"\n    },\n    {\n      \"name\": \"sympycode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympycode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympysub\"\n    },\n    {\n      \"name\": \"sympysub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympysub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyverbatim\"\n    },\n    {\n      \"name\": \"sympyverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyblock\"\n    },\n    {\n      \"name\": \"sympyblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyblock\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyconsole\"\n    },\n    {\n      \"name\": \"sympyconsole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyconsole\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyconcode\"\n    },\n    {\n      \"name\": \"sympyconcode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyconcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyconsub\"\n    },\n    {\n      \"name\": \"sympyconsub\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyconsub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sympyconverbatim\"\n    },\n    {\n      \"name\": \"sympyconverbatim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sympyconverbatim\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pythontexcustomcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"pythontexcustomcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position%keyvals}]{${1:family}}\",\n        \"keys\": [\n          \"\\\\pythontexcustomc,\\\\begin{pythontexcustomcode}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pygments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:lexer}}\"\n      }\n    },\n    {\n      \"name\": \"pygments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:fancyvrb settings%keyvals}]{${1:lexer}}\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listing\"\n    },\n    {\n      \"name\": \"rbcode\",\n      \"if\": \"usefamily=rb\"\n    },\n    {\n      \"name\": \"rbcode\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rbcode\",\n      \"if\": \"usefamily=rb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rbsub\",\n      \"if\": \"usefamily=rb\"\n    },\n    {\n      \"name\": \"rbsub\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rbsub\",\n      \"if\": \"usefamily=rb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rbverbatim\",\n      \"if\": \"usefamily=rb\"\n    },\n    {\n      \"name\": \"rbverbatim\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rbverbatim\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rbblock\",\n      \"if\": \"usefamily=rb\"\n    },\n    {\n      \"name\": \"rbblock\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rbblock\",\n      \"if\": \"usefamily=rb\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rubycode\",\n      \"if\": \"usefamily=ruby\"\n    },\n    {\n      \"name\": \"rubycode\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rubycode\",\n      \"if\": \"usefamily=ruby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rubysub\",\n      \"if\": \"usefamily=ruby\"\n    },\n    {\n      \"name\": \"rubysub\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rubysub\",\n      \"if\": \"usefamily=ruby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rubyverbatim\",\n      \"if\": \"usefamily=ruby\"\n    },\n    {\n      \"name\": \"rubyverbatim\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rubyverbatim\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rubyblock\",\n      \"if\": \"usefamily=ruby\"\n    },\n    {\n      \"name\": \"rubyblock\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rubyblock\",\n      \"if\": \"usefamily=ruby\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliacode\",\n      \"if\": \"usefamily=julia\"\n    },\n    {\n      \"name\": \"juliacode\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliacode\",\n      \"if\": \"usefamily=julia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliasub\",\n      \"if\": \"usefamily=julia\"\n    },\n    {\n      \"name\": \"juliasub\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliasub\",\n      \"if\": \"usefamily=julia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliaverbatim\",\n      \"if\": \"usefamily=julia\"\n    },\n    {\n      \"name\": \"juliaverbatim\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliaverbatim\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliablock\",\n      \"if\": \"usefamily=julia\"\n    },\n    {\n      \"name\": \"juliablock\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliablock\",\n      \"if\": \"usefamily=julia\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliaconsole\",\n      \"if\": \"usefamily=juliacon\"\n    },\n    {\n      \"name\": \"juliaconsole\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliaconsole\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"juliaconcode\",\n      \"if\": \"usefamily=juliacon\"\n    },\n    {\n      \"name\": \"juliaconcode\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"juliaconcode\",\n      \"if\": \"usefamily=juliacon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jlcode\",\n      \"if\": \"usefamily=jl\"\n    },\n    {\n      \"name\": \"jlcode\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jlcode\",\n      \"if\": \"usefamily=jl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jlsub\",\n      \"if\": \"usefamily=jl\"\n    },\n    {\n      \"name\": \"jlsub\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jlsub\",\n      \"if\": \"usefamily=jl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jlverbatim\",\n      \"if\": \"usefamily=jl\"\n    },\n    {\n      \"name\": \"jlverbatim\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jlverbatim\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jlblock\",\n      \"if\": \"usefamily=jl\"\n    },\n    {\n      \"name\": \"jlblock\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jlblock\",\n      \"if\": \"usefamily=jl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"matlabcode\",\n      \"if\": \"usefamily=matlab\"\n    },\n    {\n      \"name\": \"matlabcode\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"matlabcode\",\n      \"if\": \"usefamily=matlab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"matlabsub\",\n      \"if\": \"usefamily=matlab\"\n    },\n    {\n      \"name\": \"matlabsub\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"matlabsub\",\n      \"if\": \"usefamily=matlab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"matlabverbatim\",\n      \"if\": \"usefamily=matlab\"\n    },\n    {\n      \"name\": \"matlabverbatim\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"matlabverbatim\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"matlabblock\",\n      \"if\": \"usefamily=matlab\"\n    },\n    {\n      \"name\": \"matlabblock\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"matlabblock\",\n      \"if\": \"usefamily=matlab\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"octavecode\",\n      \"if\": \"usefamily=octave\"\n    },\n    {\n      \"name\": \"octavecode\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"octavecode\",\n      \"if\": \"usefamily=octave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"octavesub\",\n      \"if\": \"usefamily=octave\"\n    },\n    {\n      \"name\": \"octavesub\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"octavesub\",\n      \"if\": \"usefamily=octave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"octaveverbatim\",\n      \"if\": \"usefamily=octave\"\n    },\n    {\n      \"name\": \"octaveverbatim\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"octaveverbatim\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"octaveblock\",\n      \"if\": \"usefamily=octave\"\n    },\n    {\n      \"name\": \"octaveblock\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"octaveblock\",\n      \"if\": \"usefamily=octave\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bashcode\",\n      \"if\": \"usefamily=bash\"\n    },\n    {\n      \"name\": \"bashcode\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"bashcode\",\n      \"if\": \"usefamily=bash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bashsub\",\n      \"if\": \"usefamily=bash\"\n    },\n    {\n      \"name\": \"bashsub\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"bashsub\",\n      \"if\": \"usefamily=bash\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bashverbatim\",\n      \"if\": \"usefamily=bash\"\n    },\n    {\n      \"name\": \"bashverbatim\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"bashverbatim\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bashblock\",\n      \"if\": \"usefamily=bash\"\n    },\n    {\n      \"name\": \"bashblock\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"bashblock\",\n      \"if\": \"usefamily=bash\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sagecode\",\n      \"if\": \"usefamily=sage\"\n    },\n    {\n      \"name\": \"sagecode\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sagecode\",\n      \"if\": \"usefamily=sage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sagesub\",\n      \"if\": \"usefamily=sage\"\n    },\n    {\n      \"name\": \"sagesub\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sagesub\",\n      \"if\": \"usefamily=sage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sageverbatim\",\n      \"if\": \"usefamily=sage\"\n    },\n    {\n      \"name\": \"sageverbatim\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sageverbatim\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sageblock\",\n      \"if\": \"usefamily=sage\"\n    },\n    {\n      \"name\": \"sageblock\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"sageblock\",\n      \"if\": \"usefamily=sage\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rustcode\",\n      \"if\": \"usefamily=rust\"\n    },\n    {\n      \"name\": \"rustcode\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rustcode\",\n      \"if\": \"usefamily=rust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rustsub\",\n      \"if\": \"usefamily=rust\"\n    },\n    {\n      \"name\": \"rustsub\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rustsub\",\n      \"if\": \"usefamily=rust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rustverbatim\",\n      \"if\": \"usefamily=rust\"\n    },\n    {\n      \"name\": \"rustverbatim\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rustverbatim\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rustblock\",\n      \"if\": \"usefamily=rust\"\n    },\n    {\n      \"name\": \"rustblock\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rustblock\",\n      \"if\": \"usefamily=rust\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rscode\",\n      \"if\": \"usefamily=rs\"\n    },\n    {\n      \"name\": \"rscode\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rscode\",\n      \"if\": \"usefamily=rs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rssub\",\n      \"if\": \"usefamily=rs\"\n    },\n    {\n      \"name\": \"rssub\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rssub\",\n      \"if\": \"usefamily=rs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rsverbatim\",\n      \"if\": \"usefamily=rs\"\n    },\n    {\n      \"name\": \"rsverbatim\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rsverbatim\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rsblock\",\n      \"if\": \"usefamily=rs\"\n    },\n    {\n      \"name\": \"rsblock\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"rsblock\",\n      \"if\": \"usefamily=rs\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rcode\",\n      \"if\": \"usefamily=R\"\n    },\n    {\n      \"name\": \"Rcode\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rcode\",\n      \"if\": \"usefamily=R\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rsub\",\n      \"if\": \"usefamily=R\"\n    },\n    {\n      \"name\": \"Rsub\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rsub\",\n      \"if\": \"usefamily=R\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rverbatim\",\n      \"if\": \"usefamily=R\"\n    },\n    {\n      \"name\": \"Rverbatim\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rverbatim\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rblock\",\n      \"if\": \"usefamily=R\"\n    },\n    {\n      \"name\": \"Rblock\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rblock\",\n      \"if\": \"usefamily=R\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rconsole\",\n      \"if\": \"usefamily=juliacon\"\n    },\n    {\n      \"name\": \"Rconsole\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rconsole\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Rconcode\",\n      \"if\": \"usefamily=juliacon\"\n    },\n    {\n      \"name\": \"Rconcode\",\n      \"if\": \"usefamily=juliacon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"Rconcode\",\n      \"if\": \"usefamily=juliacon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlcode\",\n      \"if\": \"usefamily=perl\"\n    },\n    {\n      \"name\": \"perlcode\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlcode\",\n      \"if\": \"usefamily=perl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlsub\",\n      \"if\": \"usefamily=perl\"\n    },\n    {\n      \"name\": \"perlsub\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlsub\",\n      \"if\": \"usefamily=perl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlverbatim\",\n      \"if\": \"usefamily=perl\"\n    },\n    {\n      \"name\": \"perlverbatim\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlverbatim\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlblock\",\n      \"if\": \"usefamily=perl\"\n    },\n    {\n      \"name\": \"perlblock\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlblock\",\n      \"if\": \"usefamily=perl\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlsixcode\",\n      \"if\": \"usefamily=perlsix\"\n    },\n    {\n      \"name\": \"perlsixcode\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlsixcode\",\n      \"if\": \"usefamily=perlsix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlsixsub\",\n      \"if\": \"usefamily=perlsix\"\n    },\n    {\n      \"name\": \"perlsixsub\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlsixsub\",\n      \"if\": \"usefamily=perlsix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlsixverbatim\",\n      \"if\": \"usefamily=perlsix\"\n    },\n    {\n      \"name\": \"perlsixverbatim\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlsixverbatim\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"perlsixblock\",\n      \"if\": \"usefamily=perlsix\"\n    },\n    {\n      \"name\": \"perlsixblock\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"perlsixblock\",\n      \"if\": \"usefamily=perlsix\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"psixcode\",\n      \"if\": \"usefamily=psix\"\n    },\n    {\n      \"name\": \"psixcode\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"psixcode\",\n      \"if\": \"usefamily=psix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"psixsub\",\n      \"if\": \"usefamily=psix\"\n    },\n    {\n      \"name\": \"psixsub\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"psixsub\",\n      \"if\": \"usefamily=psix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"psixverbatim\",\n      \"if\": \"usefamily=psix\"\n    },\n    {\n      \"name\": \"psixverbatim\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"psixverbatim\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"psixblock\",\n      \"if\": \"usefamily=psix\"\n    },\n    {\n      \"name\": \"psixblock\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"psixblock\",\n      \"if\": \"usefamily=psix\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"javascriptcode\",\n      \"if\": \"usefamily=javascript\"\n    },\n    {\n      \"name\": \"javascriptcode\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"javascriptcode\",\n      \"if\": \"usefamily=javascript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"javascriptsub\",\n      \"if\": \"usefamily=javascript\"\n    },\n    {\n      \"name\": \"javascriptsub\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"javascriptsub\",\n      \"if\": \"usefamily=javascript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"javascriptverbatim\",\n      \"if\": \"usefamily=javascript\"\n    },\n    {\n      \"name\": \"javascriptverbatim\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"javascriptverbatim\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"javascriptblock\",\n      \"if\": \"usefamily=javascript\"\n    },\n    {\n      \"name\": \"javascriptblock\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"javascriptblock\",\n      \"if\": \"usefamily=javascript\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jscode\",\n      \"if\": \"usefamily=js\"\n    },\n    {\n      \"name\": \"jscode\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jscode\",\n      \"if\": \"usefamily=js\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jssub\",\n      \"if\": \"usefamily=js\"\n    },\n    {\n      \"name\": \"jssub\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jssub\",\n      \"if\": \"usefamily=js\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jsverbatim\",\n      \"if\": \"usefamily=js\"\n    },\n    {\n      \"name\": \"jsverbatim\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jsverbatim\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jsblock\",\n      \"if\": \"usefamily=js\"\n    },\n    {\n      \"name\": \"jsblock\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:session}]\"\n      }\n    },\n    {\n      \"name\": \"jsblock\",\n      \"if\": \"usefamily=js\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:session}][${2:fancyvrb settings%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/pythontex#c\": [\n      \"usefamily=${1|ruby,rb,julia,juliacon,jl,matlab,octave,bash,sage,rust,rs,R,Rcon,perl,pl,perlsix,psix,javascript,js|}\",\n      \"gobble=${1|none,auto|}\",\n      \"beta\",\n      \"runall\",\n      \"rerun=${1|never,modified,errors,warnings,always|}\",\n      \"hashdependencies\",\n      \"autoprint\",\n      \"autostdout\",\n      \"debug\",\n      \"makestderr\",\n      \"stderrfilename=${1|full,session,genericfile,genericscript|}\",\n      \"pyfuture=${1|none,all,default|}\",\n      \"pyconfuture=${1|none,all,default|}\",\n      \"upquote\",\n      \"fixlr\",\n      \"keeptemps=${1|all,code,none|}\",\n      \"prettyprinter=${1|pygments,fancyvrb|}\",\n      \"prettyprintinline\",\n      \"pygments\",\n      \"pyginline\",\n      \"pyglexer=${1:pygments lexer}\",\n      \"pygopt={${1:pygments options}}\",\n      \"fvextfile\",\n      \"fvextfile=${1:integer}\",\n      \"pyconbanner=${1|none,standard,default,pyversion|}\",\n      \"pyconfilename=${1|stdin,console|}\",\n      \"depythontex\"\n    ],\n    \"\\\\pythontexcustomc,\\\\begin{pythontexcustomcode}\": [\n      \"begin\",\n      \"end\"\n    ],\n    \"\\\\setpythontexprettyprinter\": [\n      \"fancyvrb\",\n      \"pygments\"\n    ],\n    \"\\\\printpythontex,\\\\stdoutpythontex,\\\\useprintpythontex,\\\\usestdoutpythontex,\\\\stderrpythontex,\\\\usestderrpythontex\": [\n      \"raw\",\n      \"verb\",\n      \"verbatim\"\n    ],\n    \"\\\\setpygmentsprettyprinter\": [\n      \"fancyvrb\",\n      \"pygments\"\n    ],\n    \"\\\\makepythontexfamily#c\": [\n      \"prettyprinter=${1|pygments,fancyvrb|}\",\n      \"pyglexer=${1:pygments lexer}\",\n      \"pygopt={${1:pygments options}}\",\n      \"console\"\n    ],\n    \"\\\\begin{pycode},\\\\begin{pysub},\\\\begin{pyverbatim},\\\\begin{pyblock},\\\\begin{pyconsole},\\\\begin{pyconcode},\\\\begin{pyconsub},\\\\begin{pyconverbatim},\\\\begin{pylabcode},\\\\begin{pylabsub},\\\\begin{pylabverbatim},\\\\begin{pylabblock},\\\\begin{pylabconsole},\\\\begin{pylabconcode},\\\\begin{pylabconsub},\\\\begin{pylabconverbatim},\\\\begin{sympycode},\\\\begin{sympysub},\\\\begin{sympyverbatim},\\\\begin{sympyblock},\\\\begin{sympyconsole},\\\\begin{sympyconcode},\\\\begin{sympyconsub},\\\\begin{sympyconverbatim},\\\\setpythontexfv,\\\\begin{pygments},\\\\inputpygments,\\\\setpygmentsfv,\\\\begin{rbcode},\\\\begin{rbsub},\\\\begin{rbverbatim},\\\\begin{rbblock},\\\\begin{rubycode},\\\\begin{rubysub},\\\\begin{rubyverbatim},\\\\begin{rubyblock},\\\\begin{juliacode},\\\\begin{juliasub},\\\\begin{juliaverbatim},\\\\begin{juliablock},\\\\begin{juliaconsole},\\\\begin{juliaconcode},\\\\begin{jlcode},\\\\begin{jlsub},\\\\begin{jlverbatim},\\\\begin{jlblock},\\\\begin{matlabcode},\\\\begin{matlabsub},\\\\begin{matlabverbatim},\\\\begin{matlabblock},\\\\begin{octavecode},\\\\begin{octavesub},\\\\begin{octaveverbatim},\\\\begin{octaveblock},\\\\begin{bashcode},\\\\begin{bashsub},\\\\begin{bashverbatim},\\\\begin{bashblock},\\\\begin{sagecode},\\\\begin{sagesub},\\\\begin{sageverbatim},\\\\begin{sageblock},\\\\begin{rustcode},\\\\begin{rustsub},\\\\begin{rustverbatim},\\\\begin{rustblock},\\\\begin{rscode},\\\\begin{rssub},\\\\begin{rsverbatim},\\\\begin{rsblock},\\\\begin{Rcode},\\\\begin{Rsub},\\\\begin{Rverbatim},\\\\begin{Rblock},\\\\begin{Rconsole},\\\\begin{Rconcode},\\\\begin{perlcode},\\\\begin{perlsub},\\\\begin{perlverbatim},\\\\begin{perlblock},\\\\begin{perlsixcode},\\\\begin{perlsixsub},\\\\begin{perlsixverbatim},\\\\begin{perlsixblock},\\\\begin{psixcode},\\\\begin{psixsub},\\\\begin{psixverbatim},\\\\begin{psixblock},\\\\begin{javascriptcode},\\\\begin{javascriptsub},\\\\begin{javascriptverbatim},\\\\begin{javascriptblock},\\\\begin{jscode},\\\\begin{jssub},\\\\begin{jsverbatim},\\\\begin{jsblock}\": [\n      \"commentchar=${1:single char}\",\n      \"gobble=${1:integer}\",\n      \"formatcom=${1:commands}\",\n      \"formatcom*=${1:commands}\",\n      \"fontfamily=${1:family}\",\n      \"fontsize=${1:size macro}\",\n      \"fontshape=${1:shape}\",\n      \"fontseries=${1:series}\",\n      \"frame=${1|none,leftline,topline,bottomline,lines,single|}\",\n      \"framerule=\",\n      \"framesep=\",\n      \"rulecolor=${1:color cmd}\",\n      \"fillcolor=${1:color cmd}\",\n      \"label=${1:label text}\",\n      \"labelposition=${1|none,topline,bottomline,all|}\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"firstnumber=${1:auto|last|<integer>}\",\n      \"stepnumber=${1:integer}\",\n      \"numberblanklines\",\n      \"firstline=${1:integer}\",\n      \"lastline=${1:integer}\",\n      \"showspaces\",\n      \"showtabs\",\n      \"obeytabs\",\n      \"tabsize=${1:integer}\",\n      \"baselinestretch=${1:factor}\",\n      \"commandchars=${1:three chars}\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"hfuzz=\",\n      \"samepage\",\n      \"codes={${1:code}}\",\n      \"codes*={${1:code}}\",\n      \"defineactive={${1:code}}\",\n      \"defineactive*={${1:code}}\",\n      \"reflabel=\",\n      \"fileext=${1:extension}\",\n      \"vspace=\",\n      \"listparameters={${1:code}}\",\n      \"beameroverlays\",\n      \"curlyquotes\",\n      \"extra\",\n      \"fontencoding=${1:encoding}\",\n      \"highlightcolor=\",\n      \"highlightlines={${1:line ranges}}\",\n      \"linenos\",\n      \"mathescape\",\n      \"numberfirstline\",\n      \"numbers=${1|none,left,right,both|}\",\n      \"retokenize\",\n      \"space=${1:macro}\",\n      \"spacecolor=\",\n      \"stepnumberfromfirst\",\n      \"stepnumberoffsetvalues\",\n      \"tab=${1:macro}\",\n      \"tabcolor=\",\n      \"breakafter=${1:string}\",\n      \"breakaftergroup\",\n      \"breakaftersymbolpre=${1:string}\",\n      \"breakaftersymbolpost=${1:string}\",\n      \"breakanywhere\",\n      \"breakanywheresymbolpre=${1:string}\",\n      \"breakanywheresymbolpost=${1:string}\",\n      \"breakautoindent\",\n      \"breakbefore=${1:string}\",\n      \"breakbeforegroup\",\n      \"breakbeforesymbolpre=${1:string}\",\n      \"breakbeforesymbolpost=${1:string}\",\n      \"breakindent=\",\n      \"breakindentnchars=${1:integer}\",\n      \"breaklines\",\n      \"breaksymbol=${1:string}\",\n      \"breaksymbolleft=${1:string}\",\n      \"breaksymbolright=${1:string}\",\n      \"breaksymbolindent=\",\n      \"breaksymbolindentnchars=${1:integer}\",\n      \"breaksymbolindentleft=\",\n      \"breaksymbolindentleftnchars=${1:integer}\",\n      \"breaksymbolindentright=\",\n      \"breaksymbolindentrightnchars=${1:integer}\",\n      \"breaksymbolsep=\",\n      \"breaksymbolsepnchars=${1:integer}\",\n      \"breaksymbolsepleft=\",\n      \"breaksymbolsepleftnchars=${1:integer}\",\n      \"breaksymbolsepright=\",\n      \"breaksymbolseprightnchars=${1:integer}\",\n      \"breakbytoken\",\n      \"breakbytokenanywhere\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/pythontex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qcircuit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xy\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bra\",\n      \"if\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"if\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ip\",\n      \"if\": \"qm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ip{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"melem\",\n      \"if\": \"qm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"melem{${1:arg1%formula}}{${2:arg2%formula}}{${3:arg3%formula}}\"\n      }\n    },\n    {\n      \"name\": \"expval\",\n      \"if\": \"qm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expval{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"op\",\n      \"if\": \"qm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"op{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Qcircuit \",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Qcircuit {${1:matrix}}\"\n      }\n    },\n    {\n      \"name\": \"barrier\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"barrier[${2:length}]{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"barrier\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barrier{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"cctrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cctrl{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"cctrlo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cctrlo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"cds\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cds{${1:integer}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"cghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"control\"\n    },\n    {\n      \"name\": \"controlo\"\n    },\n    {\n      \"name\": \"ctrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrl{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"ctrlo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrlo{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"cw\"\n    },\n    {\n      \"name\": \"cw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cw[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"cwa\"\n    },\n    {\n      \"name\": \"cwa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cwa[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"cwx\"\n    },\n    {\n      \"name\": \"cwx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cwx[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"dstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dstick{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gate{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gategroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"gategroup{${1:row1}}{${2:col1}}{${3:row2}}{${4:col2}}{${5:length}}{${6:hl-type}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"inputgroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"inputgroup{${1:row1}}{${2:row2}}{${3:length}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"inputgrouph\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"inputgrouph{${1:row1}}{${2:row2}}{${3:length1}}{${4:label}}{${5:length2}}\"\n      }\n    },\n    {\n      \"name\": \"inputgroupv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"inputgroupv{${1:row1}}{${2:row2}}{${3:length1}}{${4:length2}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"link{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"lstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstick{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measure{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measureD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measureD{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measuretab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measuretab{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"meterB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meterB{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"metersymb\"\n    },\n    {\n      \"name\": \"multigate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multigate{${1:integer}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"multimeasure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multimeasure{${1:integer}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"multimeasureD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"multimeasureD{${1:integer}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"nghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pureghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pureghost{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"push\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"push{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qswap\"\n    },\n    {\n      \"name\": \"qw\"\n    },\n    {\n      \"name\": \"qw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qw[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"qwa\"\n    },\n    {\n      \"name\": \"qwa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qwa[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"qwx\"\n    },\n    {\n      \"name\": \"qwx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qwx[${1:integer}]\"\n      }\n    },\n    {\n      \"name\": \"rstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rstick{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgate{${1:label}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"smeterB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smeterB{${1:label}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"targ\"\n    },\n    {\n      \"name\": \"ustick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ustick{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qcircuit#c\": [\n      \"braket\",\n      \"qm\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qcircuit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qcm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tabularx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"headerfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"X\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"X{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"pbs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"questionspace\"\n    },\n    {\n      \"name\": \"answerstitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answerstitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"answerstitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answerstitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"answernumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answernumberfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"thequestion\"\n    },\n    {\n      \"name\": \"truesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"truesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"falsesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"falsesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"true\"\n    },\n    {\n      \"name\": \"false\"\n    },\n    {\n      \"name\": \"correctionstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctionstyle{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"makeform\"\n    },\n    {\n      \"name\": \"makemask\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:question text%text}}\"\n      }\n    },\n    {\n      \"name\": \"correction\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/qcm#c\": [\n      \"english\",\n      \"french\",\n      \"francais\",\n      \"nocorrection\",\n      \"correction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qcm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qqru.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"<\"\n    },\n    {\n      \"name\": \">\"\n    },\n    {\n      \"name\": \"beginconvertquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endconvertquotes\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qqru#c\": [\n      \"ru\",\n      \"en\",\n      \"convert\",\n      \"noconvert\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qqru#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qrbill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"luatex\",\n      \"if\": \"qrmode=lua\"\n    },\n    {\n      \"name\": \"marvosym\",\n      \"if\": \"separate=symbol\"\n    },\n    {\n      \"name\": \"marvosym\",\n      \"if\": \"vrule=symbol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"QRbill\"\n    },\n    {\n      \"name\": \"QRbill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"QRbill[${1:data setup%keyvals}]\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QRbill*\"\n    },\n    {\n      \"name\": \"QRbill*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"QRbill*[${1:data setup%keyvals}]\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qrbillsetdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrbillsetdata{${1:data setup%keyvals}}\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qrbillsetdata*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrbillsetdata*{${1:data setup%keyvals}}\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetupQrBill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetupQrBill{${1:data setup%keyvals}}\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qrbillsetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrbillsetup{${1:data setup%keyvals}}\",\n        \"keys\": [\n          \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QRbillParseDate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"QRbillParseDate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"QRbillAddCustomReplacement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"QRbillAddCustomReplacement{${1:string}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"insertcreditor\"\n    },\n    {\n      \"name\": \"insertcurrency\"\n    },\n    {\n      \"name\": \"insertdebtor\"\n    },\n    {\n      \"name\": \"SetStaticData\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetStaticData{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SetBillingInfoScheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBillingInfoScheme{${1:scheme data}}\"\n      }\n    },\n    {\n      \"name\": \"SetQrScheme\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetQrScheme{${1:scheme data}}\"\n      }\n    },\n    {\n      \"name\": \"qrbillfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qrbill#c\": [\n      \"billinginfo\",\n      \"creditorprefix=${1:string}\",\n      \"debtorprefix=${1:string}\",\n      \"data-to-string\",\n      \"font=${1:font name}\",\n      \"frame=${1|true,false,top,bottom,none|}\",\n      \"ibanseparator=${1:token list}\",\n      \"icon=${2|swiss-cross,${1:file name}|}\",\n      \"iconwidth=\",\n      \"ignore-if-empty={${1:comma list}}\",\n      \"qrmode=${1|package,lua|}\",\n      \"qrsize=\",\n      \"qrscheme=${1:name}\",\n      \"referenceseparator=${1:token list}\",\n      \"sep-iban=${1:integer}\",\n      \"sep-reference=${1:integer}\",\n      \"separate=${1|false,text,symbol|}\",\n      \"replace-tilde\",\n      \"replace-umlauts\",\n      \"vrule=${1|true,false,symbol|}\"\n    ],\n    \"\\\\QRbill,\\\\QRbill*,\\\\SetupQrBill,\\\\qrbillsetdata,\\\\qrbillsetdata*,\\\\qrbillsetup\": [\n      \"QRType=\",\n      \"Version=\",\n      \"CodingType=\",\n      \"Account=\",\n      \"CR-AddressType=\",\n      \"CR-Name=\",\n      \"CR-Address1=\",\n      \"CR-Address2=\",\n      \"CR-PostalCode=\",\n      \"CR-City=\",\n      \"CR-Country=\",\n      \"UCR-AddressType=\",\n      \"UCR-Name=\",\n      \"UCR-Address1=\",\n      \"UCR-Address2=\",\n      \"UCR-ZIP=\",\n      \"UCR-City=\",\n      \"UCR-Country=\",\n      \"Amount=\",\n      \"Currency=\",\n      \"UD-AddressType=\",\n      \"UD-Name=\",\n      \"UD-Address1=\",\n      \"UD-Address2=\",\n      \"UD-PostalCode=\",\n      \"UD-City=\",\n      \"UD-Country=\",\n      \"ReferenceType=\",\n      \"Reference=\",\n      \"Message=\",\n      \"Trailer=\",\n      \"BillingInfo=\",\n      \"AV1-Parameters=\",\n      \"AV2-Parameters=\",\n      \"creditor=\",\n      \"creditor*=\",\n      \"debtor=\",\n      \"debtor*=\",\n      \"AV1=\",\n      \"AV2=\",\n      \"invoicenum=\",\n      \"invoicedate=\",\n      \"customerref=\",\n      \"vat=\",\n      \"vatdate=\",\n      \"vatdetails=\",\n      \"importvat=\",\n      \"conditions=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qrbill#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qrcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qrcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrcode{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"qrcode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qrcode[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\qrcode,\\\\qrset,\\\\qrcode*\",\n          \"\\\\qrcode,\\\\qrset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qrcode*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrcode*{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"qrcode*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qrcode*[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\qrcode,\\\\qrset,\\\\qrcode*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qrset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\qrcode,\\\\qrset,\\\\qrcode*\",\n          \"\\\\qrcode,\\\\qrset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qrcode#c\": [\n      \"nolinks\",\n      \"draft\",\n      \"final\",\n      \"forget\"\n    ],\n    \"\\\\qrcode,\\\\qrset,\\\\qrcode*\": [\n      \"height=\",\n      \"level=${1|L,M,Q,H|}\",\n      \"version=\",\n      \"tight\",\n      \"padding\",\n      \"draft\"\n    ],\n    \"\\\\qrcode,\\\\qrset\": [\n      \"link\",\n      \"nolink\",\n      \"hyperlink\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qrcode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qrcstamps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"annot_pro\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qrCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qrCode{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"qrCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qrCode[${2:options%keyvals}]{${1:URL}}\",\n        \"keys\": [\n          \"\\\\qrCode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QRBase\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/qrcstamps#c\": [\n      \"scandoc\",\n      \"!scandoc\",\n      \"basename=${1:basename}\",\n      \"dvipsone\",\n      \"dvips\",\n      \"textures\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"nodljs\",\n      \"debug\",\n      \"execJS\",\n      \"nopro\",\n      \"reqjs\",\n      \"!reqjs\",\n      \"usealtadobe\"\n    ],\n    \"\\\\qrCode\": [\n      \"name=${1|Approved,AsIs,Confidential,Departmental,Draft,Experimental,Expired,Final,ForComment,ForPublicRelease,NotApproved,NotForPublicRelease,Sold,TopSecret|}\",\n      \"width=\",\n      \"height=\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"widthTo=\",\n      \"heightTo=\",\n      \"customStamp=\",\n      \"ap=\",\n      \"size=${1|small,medium,large|}\",\n      \"allowresize\",\n      \"basename=${1:basename}\",\n      \"contents=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/qrcstamps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/qsharp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qs\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline,\\\\lstdefinelanguage,\\\\lstdefinestyle\": [\n      \"style=QSharp\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/qstest.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makematch\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"IncludeTests\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IncludeTests{${1:pattern list}}\"\n      }\n    },\n    {\n      \"name\": \"TestErrors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestErrors{${1:pattern list}}\"\n      }\n    },\n    {\n      \"name\": \"LogTests\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LogTests{${1:file ext}}{${2:keywordlist1}}{${3:keywordlist2}}\"\n      }\n    },\n    {\n      \"name\": \"LogClose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogClose{${1:file ext}}\"\n      }\n    },\n    {\n      \"name\": \"Expect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Expect{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Expect*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Expect*{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Expect*\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"Expect*{${1:arg1}}*{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ExpectIfThen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExpectIfThen{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"InRange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InRange{${1:dimen1%l}}{${2:dimen2%l}}\"\n      }\n    },\n    {\n      \"name\": \"NearTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NearTo{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"NearTo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NearTo[${2:opt dimen%l}]{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"SaveValueFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveValueFile{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"CloseValueFile\"\n    },\n    {\n      \"name\": \"SaveValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SaveValue{${1:cmd}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SaveValue\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"SaveValue{${1:cmd}}*{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"InternalSetValue\"\n    },\n    {\n      \"name\": \"SavedValue\"\n    },\n    {\n      \"name\": \"CalledName\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"qstest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:test name}}{${2:keywordlist}}\"\n      }\n    },\n    {\n      \"name\": \"ExpectCallSequence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:call sequence}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/qtree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qtreecentertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreecenterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreepadding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qroofpadding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreeunaryht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreeinithook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreefinalhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qleafhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qlabelhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tree[${1:qtree code}]\"\n      }\n    },\n    {\n      \"name\": \"qroof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qroof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qroofx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qroofy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noautomath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qtreeprimes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qleafhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qlabelhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qsetw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qsetw{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"faketreewidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"faketreewidth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"qbalance\"\n    },\n    {\n      \"name\": \"qframesubtree\"\n    },\n    {\n      \"name\": \"qtreeshowframes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leaf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leaf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"branch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"branch{${1:integer}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"qobitree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbranches\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/quantikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryquantikz2\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/quattrocento.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"quattrocento\"\n    },\n    {\n      \"name\": \"quattrocentosans\"\n    },\n    {\n      \"name\": \"quattrocentofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quattrocentosffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quattrocento#c\": [\n      \"scaled=${1:factor}\",\n      \"sf\",\n      \"rm\",\n      \"sfdefault\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quattrocento#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quickreaction.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"quickarrow\"\n    },\n    {\n      \"name\": \"quickarrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quickarrow[${1:above}]\"\n      }\n    },\n    {\n      \"name\": \"quickarrow\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quickarrow[${1:above}][${2:below}]\"\n      }\n    },\n    {\n      \"name\": \"fixrow\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quickreaction\"\n    },\n    {\n      \"name\": \"quickreaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:opt1}]\"\n      }\n    },\n    {\n      \"name\": \"quickreaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:opt1}][${2:opt2}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/quickreaction#c\": [\n      \"iupac\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quickreaction#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quiver.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ar#c\": [\n      \"curve={${1:options}}\",\n      \"tail reversed\",\n      \"2tail\",\n      \"2tail reversed\",\n      \"no body\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/quiz2socrative.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"moresize\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"socrativeMC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"socrativeMC{${1:testo della domanda%text}}{${2:lista delle risposte%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeMC\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"socrativeMC{${1:testo della domanda%text}}{${2:lista delle risposte%text}}[${3:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"socrativeMC[${3:larghezza%l}]{${1:testo della domanda%text}}{${2:lista delle risposte%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"socrativeMC[${3:larghezza%l}]{${1:testo della domanda%text}}{${2:lista delle risposte%text}}[${4:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeTwoMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"socrativeTwoMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeTwoMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"socrativeTwoMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}[${4:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeTwoMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"socrativeTwoMC[${4:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeTwoMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"socrativeTwoMC[${4:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}[${5:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeThreeMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"socrativeThreeMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeThreeMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"socrativeThreeMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}[${5:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeThreeMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"socrativeThreeMC[${5:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeThreeMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[]\",\n        \"snippet\": \"socrativeThreeMC[${5:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}[${6:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeFourMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"socrativeFourMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeFourMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"socrativeFourMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}[${6:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeFourMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"socrativeFourMC[${6:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeFourMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}[]\",\n        \"snippet\": \"socrativeFourMC[${6:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}[${7:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeFiveMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"socrativeFiveMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}{${6:risposta5%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeFiveMC\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}[]\",\n        \"snippet\": \"socrativeFiveMC{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}{${6:risposta5%text}}[${7:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeFiveMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"socrativeFiveMC[${7:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}{${6:risposta5%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeFiveMC\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}[]\",\n        \"snippet\": \"socrativeFiveMC[${7:larghezza%l}]{${1:testo della domanda%text}}{${2:risposta1%text}}{${3:risposta2%text}}{${4:risposta3%text}}{${5:risposta4%text}}{${6:risposta5%text}}[${8:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeTF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"socrativeTF{${1:testo della domanda%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeTF\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"socrativeTF{${1:testo della domanda%text}}[${2:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeTF\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"socrativeTF[${2:larghezza%l}]{${1:testo della domanda%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeTF\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"socrativeTF[${2:larghezza%l}]{${1:testo della domanda%text}}[${3:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeSA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"socrativeSA{${1:testo della domanda%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeSA\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"socrativeSA{${1:testo della domanda%text}}[${2:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"socrativeSA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"socrativeSA[${2:larghezza%l}]{${1:testo della domanda%text}}\"\n      }\n    },\n    {\n      \"name\": \"socrativeSA\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"socrativeSA[${2:larghezza%l}]{${1:testo della domanda%text}}[${3:soluzione%text}]\"\n      }\n    },\n    {\n      \"name\": \"hideBorder\"\n    },\n    {\n      \"name\": \"showBorder\"\n    },\n    {\n      \"name\": \"showSolution\"\n    },\n    {\n      \"name\": \"hideSolution\"\n    },\n    {\n      \"name\": \"useNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useLetters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useEnglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useItalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usePdf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useSocrative\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therispostaCorrente\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therispostaGiusta\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quiz2socrative#c\": [\n      \"pdfQuiz\",\n      \"socrativeQuiz\",\n      \"numbers\",\n      \"letters\",\n      \"italian\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quiz2socrative#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quizztex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"settobox\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"QuizzMillions\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"QuizzMillions{${1:question%text}}{${2:réponse1%text}}{${3:réponse2%text}}{${4:réponse3%text}}{${5:réponse4%text}}\"\n      }\n    },\n    {\n      \"name\": \"QuizzMillions\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"QuizzMillions[${6:clés%keyvals}]{${1:question%text}}{${2:réponse1%text}}{${3:réponse2%text}}{${4:réponse3%text}}{${5:réponse4%text}}\",\n        \"keys\": [\n          \"\\\\QuizzMillions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"QuizzPrendrePlace\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"QuizzPrendrePlace{${1:question%text}}{${2:réponse1%text}}{${3:réponse2%text}}{${4:réponse3%text}}{${5:réponse4%text}}\"\n      }\n    },\n    {\n      \"name\": \"QuizzPrendrePlace\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"QuizzPrendrePlace[${6:clés%keyvals}]{${1:question%text}}{${2:réponse1%text}}{${3:réponse2%text}}{${4:réponse3%text}}{${5:réponse4%text}}\",\n        \"keys\": [\n          \"\\\\QuizzPrendrePlace\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\QuizzMillions\": [\n      \"Largeur=\",\n      \"Marge=\",\n      \"Hauteurs=\",\n      \"Couleur=\",\n      \"CouleurFond=\",\n      \"CouleurLettre=\",\n      \"CouleurTexte=\",\n      \"Bonne=${1|A,B,C,D|}\",\n      \"Mauvaise=${1|A,B,C,D|}\",\n      \"Choix=${1|A,B,C,D|}\",\n      \"CoulBonne=\",\n      \"CoulChoix=\",\n      \"CoulMauvaise=\",\n      \"Affichage=${1|Choix,Sol,PropSol|}\",\n      \"EspacementV=\",\n      \"OffsetV=\",\n      \"Decorations\",\n      \"AffChoix=\",\n      \"Jokers\",\n      \"AffJokers=\",\n      \"CodeAvant=${1:code}\",\n      \"Effet\"\n    ],\n    \"\\\\QuizzPrendrePlace\": [\n      \"Largeur=\",\n      \"MargeMilieu=\",\n      \"Hauteurs=\",\n      \"Couleur=\",\n      \"CouleurFond=\",\n      \"CouleurTexte=\",\n      \"Bonne=${1|A,B,C,D|}\",\n      \"Mauvaise=${1|A,B,C,D|}\",\n      \"Choix=${1|A,B,C,D|}\",\n      \"CoulBonne=\",\n      \"CoulChoix=\",\n      \"CoulMauvaise=\",\n      \"Affichage=${1|Choix,Sol,PropSol|}\",\n      \"EspacementV=\",\n      \"Cadre\",\n      \"Offset=\",\n      \"CodeAvant=${1:code}\",\n      \"Theme=${1:texte}\",\n      \"Type=${1|Duo,Carre,Cash|}\",\n      \"Effet\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/quotchap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"qauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qauthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"qsetcnfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qsetcnfont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"quotefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapnumfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadendvskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterheadstartvskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"savequote\"\n    },\n    {\n      \"name\": \"savequote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/quotchap#c\": [\n      \"grey\",\n      \"nogrey\",\n      \"avantgarde\",\n      \"beramono\",\n      \"berasans\",\n      \"beraserif\",\n      \"biolinum\",\n      \"bookman\",\n      \"charter\",\n      \"courier\",\n      \"helvetica\",\n      \"kpfonts\",\n      \"libertine\",\n      \"lmodern\",\n      \"newcentury\",\n      \"palatino\",\n      \"times\",\n      \"utopia\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quotchap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quoted.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"lquote\"\n    },\n    {\n      \"name\": \"rquote\"\n    },\n    {\n      \"name\": \"inquote\"\n    },\n    {\n      \"name\": \"quoted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quoted{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quoted#c\": [\n      \"american\",\n      \"british\",\n      \"german\",\n      \"polish\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quoted#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quoting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"quotingsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quotingsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{quoting},\\\\quotingsetup,\\\\usepackage/quoting#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quotingfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quoting\"\n    },\n    {\n      \"name\": \"quoting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{quoting},\\\\quotingsetup,\\\\usepackage/quoting#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{quoting},\\\\quotingsetup,\\\\usepackage/quoting#c\": [\n      \"indentfirst=${1|auto,true,false|}\",\n      \"font={${1:format names}}\",\n      \"font+={${1:format names}}\",\n      \"begintext=${1:text}\",\n      \"endtext=${1:text}\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"vskip=\",\n      \"listvskip\",\n      \"noorphanfirst\",\n      \"noorphanafter\",\n      \"noorphans\"\n    ]\n  },\n  \"args\": [\n    \"\\\\begin{quoting},\\\\quotingsetup,\\\\usepackage/quoting#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quran-bn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"quran\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bnSetTrans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bnSetTrans{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"bnGetTrans\"\n    },\n    {\n      \"name\": \"quransurahbn\"\n    },\n    {\n      \"name\": \"quransurahbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahbn[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahbn*\"\n    },\n    {\n      \"name\": \"quransurahbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahbn*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahbn[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahbn\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahbn[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahbn*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahbn*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahbn*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagebn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagebn[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagebn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagebn*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzbn[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzbn*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbbn[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbbn*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterbn[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterbn*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukubn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukubn[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukubn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukubn*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilbn[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilbn*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextbn\"\n    },\n    {\n      \"name\": \"qurantextbn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextbn[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextbn*\"\n    },\n    {\n      \"name\": \"qurantextbn*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextbn*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahbn\"\n    },\n    {\n      \"name\": \"Basmalahbn\"\n    },\n    {\n      \"name\": \"quranayah\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"quranayah[${1:surah range}][${2:ayah range}][${3:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantext\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"qurantext[${1:index range}][${2:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"trans=fa\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quran-bn#c\": [\n      \"hoque\",\n      \"khan\",\n      \"all\",\n      \"nopar\",\n      \"nonumber\",\n      \"uthmani\",\n      \"uthmani-min\",\n      \"translt\",\n      \"transen\",\n      \"transde\",\n      \"transfa\",\n      \"transfr\",\n      \"trans=${1|lt,de,en,fa,fr|}\",\n      \"wordwise\",\n      \"ornbraces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quran-bn#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quran-de.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"quran\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"deSetTrans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deSetTrans{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"deGetTrans\"\n    },\n    {\n      \"name\": \"quransurahde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\"\n    },\n    {\n      \"name\": \"Basmalahde\"\n    },\n    {\n      \"name\": \"quranayah\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"quranayah[${1:surah range}][${2:ayah range}][${3:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantext\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"qurantext[${1:index range}][${2:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"trans=fa\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quran-de#c\": [\n      \"aburida\",\n      \"bubenheim\",\n      \"khoury\",\n      \"zaidan\",\n      \"all\",\n      \"nopar\",\n      \"nonumber\",\n      \"uthmani\",\n      \"uthmani-min\",\n      \"translt\",\n      \"transen\",\n      \"transfa\",\n      \"transfr\",\n      \"trans=${1|lt,en,fa,fr|}\",\n      \"wordwise\",\n      \"ornbraces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quran-de#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quran-ur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"quran\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"urSetTrans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urSetTrans{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"urGetTrans\"\n    },\n    {\n      \"name\": \"quransurahur\"\n    },\n    {\n      \"name\": \"quransurahur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahur[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahur*\"\n    },\n    {\n      \"name\": \"quransurahur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahur*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahur[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahur\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahur[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahur*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahur*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahur*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageur[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageur*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzur[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzur*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbur[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbur*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterur[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterur*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuur[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuur*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilur[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilur*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextur\"\n    },\n    {\n      \"name\": \"qurantextur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextur[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextur*\"\n    },\n    {\n      \"name\": \"qurantextur*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextur*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahur\"\n    },\n    {\n      \"name\": \"Basmalahur\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"trans=fa\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quran-ur#c\": [\n      \"ahmedali\",\n      \"jalandhry\",\n      \"jawadi\",\n      \"junagarhi\",\n      \"kanzuliman\",\n      \"maududi\",\n      \"najafi\",\n      \"qadri\",\n      \"all\",\n      \"nopar\",\n      \"nonumber\",\n      \"uthmani\",\n      \"uthmani-min\",\n      \"translt\",\n      \"transen\",\n      \"transde\",\n      \"transfa\",\n      \"transfr\",\n      \"trans=${1|lt,en,de,fa,fr|}\",\n      \"wordwise\",\n      \"ornbraces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quran-ur#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/quran.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"biditools\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"quransurah\"\n    },\n    {\n      \"name\": \"quransurah\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurah[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurah*\"\n    },\n    {\n      \"name\": \"quransurah*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurah*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"setsurahdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsurahdefault{${1:range}}\"\n      }\n    },\n    {\n      \"name\": \"quranayah\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayah[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayah\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayah[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayah*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayah*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayah*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayah*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpage[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpage*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpage*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuz[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuz*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuz*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizb[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizb*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizb*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarter[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarter*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarter*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranruku\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranruku[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranruku*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranruku*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzil\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzil[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzil*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzil*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantext\"\n    },\n    {\n      \"name\": \"qurantext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantext[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantext*\"\n    },\n    {\n      \"name\": \"qurantext*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantext*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"setqurantextdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setqurantextdefault{${1:m-n}}\"\n      }\n    },\n    {\n      \"name\": \"quranayah\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"quranayah[${1:surah range}][${2:ayah range}][${3:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantext\",\n      \"if\": \"wordwise\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"qurantext[${1:index range}][${2:chunk range}]\"\n      }\n    },\n    {\n      \"name\": \"surahname\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"surahname[${1:index}]\"\n      }\n    },\n    {\n      \"name\": \"surahname*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"surahname*[${1:index}]\"\n      }\n    },\n    {\n      \"name\": \"basmalah\"\n    },\n    {\n      \"name\": \"Basmalah\"\n    },\n    {\n      \"name\": \"indexconvert\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"indexconvert{${1:index}}{${2:surah macro}}{${3:ayah macro}}\"\n      }\n    },\n    {\n      \"name\": \"surahcount\"\n    },\n    {\n      \"name\": \"ayahcount\"\n    },\n    {\n      \"name\": \"ToggleAyahNumber\"\n    },\n    {\n      \"name\": \"ToggleBasmalah\"\n    },\n    {\n      \"name\": \"SetOrnamentalBraces\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetOrnamentalBraces{${1:starting brace}}{${2:ending brace}}\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"translt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"translt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahlt*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagelt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagelt*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzlt*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizblt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizblt*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterlt*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukult*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukult*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzillt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzillt*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"qurantextlt*\",\n      \"if\": \"trans=lt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextlt*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"Basmalahlt\",\n      \"if\": \"trans=lt\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"transde\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"transde\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahde*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahde*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagede*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagede*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzde*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbde*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterde*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukude*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukude*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilde*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"qurantextde*\",\n      \"if\": \"trans=de\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextde*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"Basmalahde\",\n      \"if\": \"trans=de\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"transen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"transen\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahen*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahen*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpageen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpageen*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzen*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizben*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizben*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarteren*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarteren*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukuen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukuen*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilen*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilen*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"qurantexten*\",\n      \"if\": \"trans=en\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantexten*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"Basmalahen\",\n      \"if\": \"trans=en\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"transfr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"transfr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfr*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefr*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfr*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfr*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfr*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufr*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfr*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"qurantextfr*\",\n      \"if\": \"trans=fr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfr*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"Basmalahfr\",\n      \"if\": \"trans=fr\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"transfa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"transfa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"quransurahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quransurahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranayahfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"quranayahfa*[${1:surah range}][${2:ayah range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranpagefa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranpagefa*[${1:page range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranjuzfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranjuzfa*[${1:juz range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranhizbfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranhizbfa*[${1:hizb range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranquarterfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranquarterfa*[${1:quarter range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranrukufa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranrukufa*[${1:ruku range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"quranmanzilfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quranmanzilfa*[${1:manzil range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"qurantextfa*\",\n      \"if\": \"trans=fa\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"qurantextfa*[${1:index range}]\"\n      }\n    },\n    {\n      \"name\": \"basmalahfa\",\n      \"if\": \"trans=fa\"\n    },\n    {\n      \"name\": \"Basmalahfa\",\n      \"if\": \"trans=fa\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/quran#c\": [\n      \"nopar\",\n      \"nonumber\",\n      \"uthmani\",\n      \"uthmani-min\",\n      \"translt\",\n      \"transen\",\n      \"transde\",\n      \"transfa\",\n      \"transfr\",\n      \"trans=${1|lt,de,en,fa,fr|}\",\n      \"wordwise\",\n      \"ornbraces\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/quran#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ragged2e.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"footmisc\",\n      \"if\": \"footnotes\"\n    },\n    {\n      \"name\": \"footmisc\",\n      \"if\": \"document\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Centering\"\n    },\n    {\n      \"name\": \"RaggedLeft\"\n    },\n    {\n      \"name\": \"RaggedRight\"\n    },\n    {\n      \"name\": \"justifying\"\n    },\n    {\n      \"name\": \"CenteringLeftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CenteringRightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CenteringParfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CenteringParindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedLeftLeftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedLeftRightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedLeftParfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedLeftParindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedRightLeftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedRightRightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedRightParfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RaggedRightParindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JustifyingParfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JustifyingParindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcentering\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Center\"\n    },\n    {\n      \"name\": \"FlushLeft\"\n    },\n    {\n      \"name\": \"FlushRight\"\n    },\n    {\n      \"name\": \"justify\"\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXflushleft\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXcenter\",\n      \"if\": \"newcommands\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ragged2e#c\": [\n      \"originalcommands\",\n      \"newcommands\",\n      \"originalparameters\",\n      \"newparameters\",\n      \"raggedrightboxes\",\n      \"footnotes\",\n      \"document\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ragged2e#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/raleway.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"raleway\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ralewaymedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ralewaylight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ralewayextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ralewaythin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ralewayLF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/raleway#c\": [\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"black\",\n      \"semibold\",\n      \"bold\",\n      \"light\",\n      \"extralight\",\n      \"regular\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"nosfdefault\",\n      \"type1\",\n      \"t1\",\n      \"opentype\",\n      \"otf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/raleway#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ran_toks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nToksFor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nToksFor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"useRanTok\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRanTok{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"useRanTok\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useRanTok[${2:name}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"useRTName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRTName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"reorderRanToks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reorderRanToks{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"copyRanToks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyRanToks{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"bRTVToks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bRTVToks{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"eRTVToks\"\n    },\n    {\n      \"name\": \"RTVWHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtVWHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtVWHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"displayListRandomly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayListRandomly{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"displayListRandomly\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"displayListRandomly[${2:prior}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"displayListRandomly\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"displayListRandomly[${2:prior}][${3:post}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"displayListRandomly\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"displayListRandomly[${2:prior}][${3:post}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"first\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"last\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lessone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtTokByNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtTokByNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rtTokByNum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rtTokByNum[${2:name}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ranToksOff\"\n    },\n    {\n      \"name\": \"ranToksOn\"\n    },\n    {\n      \"name\": \"useLastAsSeed\"\n    },\n    {\n      \"name\": \"useThisSeed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useThisSeed{${1:init seed value}}\"\n      }\n    },\n    {\n      \"name\": \"useTheseDBs\",\n      \"if\": \"usedbapp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useTheseDBs{${1:db1,db2,...}}\"\n      }\n    },\n    {\n      \"name\": \"useProbDBs\",\n      \"if\": \"usedbapp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useProbDBs{${1:db1,db2,...}}\"\n      }\n    },\n    {\n      \"name\": \"viewDB\",\n      \"if\": \"usedbapp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"viewDB{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"uniqueXDBChoicesOn\"\n    },\n    {\n      \"name\": \"uniqueXDBChoicesOff\"\n    },\n    {\n      \"name\": \"InputUsedIDs\"\n    },\n    {\n      \"name\": \"ifrtdebug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtdebugtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtdebugfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwerandomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"werandomizetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"werandomizefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsaveseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveseedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"readsavfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InitSeedValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastRandomNum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputRandomSeed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useRandomSeed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRandomSeed{${1:init seed value}}\"\n      }\n    },\n    {\n      \"name\": \"reVerbEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtprobids\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifviewIDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"viewIDstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"viewIDsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxDBUnique\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xDBUniquetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xDBUniquefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtProbIds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrtProbIds{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rtVWId\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtVWId{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Indx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nextrandom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrannum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrannum{${1:count register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"setrandim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setrandim{${1:dimen register}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"pointless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ranval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rtVW\"\n    },\n    {\n      \"name\": \"rtVWi\"\n    },\n    {\n      \"name\": \"rtVWii\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ran_toks#c\": [\n      \"usedbapp\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ran_toks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/randbild.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pst-plot\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showgrid\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"randbild\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"randbild\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:title%text}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"randbild*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"randbild*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:title%text}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"randbildbasis\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"randbildbasis\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:title%text}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/randomlist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ShowList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"ShiftList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShiftList{${1:list}}{${2:start}}{${3:number}}\"\n      }\n    },\n    {\n      \"name\": \"InsertFirstItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertFirstItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"InsertLastItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertLastItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"InsertItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"InsertItem{${1:list}}{${2:index}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"InsertRandomItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InsertRandomItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"InsertList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"InsertList{${1:receive list}}{${2:index}}{${3:insert list}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractFirstItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExtractFirstItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractLastItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExtractLastItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExtractItem{${1:list}}{${2:index}}{${3:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractRandomItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExtractRandomItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExtractList{${1:main list}}{${2:start index}}{${3:end index}}{${4:receive list}}\"\n      }\n    },\n    {\n      \"name\": \"SetFirstItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetFirstItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"SetLastItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetLastItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"SetItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetItem{${1:list}}{${2:index}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"SetRandomItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetRandomItem{${1:list}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"SetList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetList{${1:list}}{${2:list of contents}}\"\n      }\n    },\n    {\n      \"name\": \"ClearList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearList{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"CopyList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CopyList{${1:list1}}{${2:list2}}\"\n      }\n    },\n    {\n      \"name\": \"GetFirstItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetFirstItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"GetLastItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetLastItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"GetItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GetItem{${1:list}}{${2:index}}{${3:macro}}\"\n      }\n    },\n    {\n      \"name\": \"GetRandomItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetRandomItem{${1:list}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"GetList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"GetList{${1:read list}}{${2:start index}}{${3:end index}}{${4:written list}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachFirstItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForEachFirstItem{${1:list}}{${2:macro}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachLastItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForEachLastItem{${1:list}}{${2:macro}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachRandomItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ForEachRandomItem{${1:list}}{${2:macro}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"ReadFieldItem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ReadFieldItem{${1:record}}{${2:rank}}{${3:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ReadFileList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReadFileList{${1:list}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"ReadFileList\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ReadFileList[${3:separator}]{${1:list}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"RLuniformdeviate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RLuniformdeviate{${1:number}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"RLsetrandomseed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RLsetrandomseed{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"CountList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CountList{${1:list}}{${2:macro}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/randomwalk.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"lcg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RandomWalk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RandomWalk{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\RandomWalk\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\RandomWalk\": [\n      \"number=${1:integer}\",\n      \"length=\",\n      \"angles={${1:ang1,ang2,...}}\",\n      \"degree\",\n      \"degrees\",\n      \"angles-relative\",\n      \"revert-random\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/randtext.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"randomize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"randomize{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rangen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lcg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RandomZ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RandomZ{${1:cmd}}{${2:int1}}{${3:int2}}\"\n      }\n    },\n    {\n      \"name\": \"RandomZ\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RandomZ[${4:options%keyvals}]{${1:cmd}}{${2:int1}}{${3:int2}}\",\n        \"keys\": [\n          \"\\\\RandomZ,\\\\RandomQ,\\\\RandomR\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nOf{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"dOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dOf{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"fmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fmt{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"ds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ds{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"RandomQ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RandomQ{${1:cmd}}{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"RandomQ\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"RandomQ{${1:cmd}}[${4:max denom}]{${2:num1}}{${3:num2}}\"\n      }\n    },\n    {\n      \"name\": \"RandomZ\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RandomZ[${4:options%keyvals}]{${1:cmd}}{${2:num1}}{${3:num2}}\",\n        \"keys\": [\n          \"\\\\RandomZ,\\\\RandomQ,\\\\RandomR\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RandomZ\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"RandomZ[${4:options%keyvals}]{${1:cmd}}[${5:max denom}]{${2:num1}}{${3:num2}}\",\n        \"keys\": [\n          \"\\\\RandomZ,\\\\RandomQ,\\\\RandomR\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RandomR\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RandomR{${1:cmd}}{${2:int1}}{${3:int2}}\"\n      }\n    },\n    {\n      \"name\": \"RandomR\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RandomR[${4:options%keyvals}]{${1:cmd}}{${2:int1}}{${3:int2}}\",\n        \"keys\": [\n          \"\\\\RandomZ,\\\\RandomQ,\\\\RandomR\",\n          \"\\\\RandomR\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RNGpowerOfTen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nDivisionsPowerOfTen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nDivisionsPowerOfTen{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RandomL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RandomL{${1:cmd}}{${2:n1,n2,...}}\"\n      }\n    },\n    {\n      \"name\": \"RandomL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RandomL[${3:options%keyvals}]{${1:cmd}}{${2:n1,n2,...}}\",\n        \"keys\": [\n          \"\\\\RandomL,\\\\RandomP\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RandomI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RandomI{${1:cmd}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RandomP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RandomP{${1:cmd}}{${2:list of literals%definition}}\"\n      }\n    },\n    {\n      \"name\": \"RandomP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RandomP[${3:options%keyvals}]{${1:cmd}}{${2:list of literals%definition}}\",\n        \"keys\": [\n          \"\\\\RandomL,\\\\RandomP\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iOf{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"RandomS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RandomS{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"RandomS\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RandomS[${2:dec}]{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"cfmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfmt{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"efmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"efmt{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"cds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cds{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"eds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eds{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"typeOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typeOf{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"defineZ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineZ{${1:cmd}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"defineQ\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defineQ{${1:cmd}}{${2:numerator}}{${3:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"defineR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineR{${1:cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"reduceFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reduceFrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"rfNumer\"\n    },\n    {\n      \"name\": \"rfDenom\"\n    },\n    {\n      \"name\": \"gcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gcd{${1:int1}}{${2:int2}}\"\n      }\n    },\n    {\n      \"name\": \"thegcd\"\n    },\n    {\n      \"name\": \"lcm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lcm{${1:int1}}{${2:int2}}\"\n      }\n    },\n    {\n      \"name\": \"thelcm\"\n    },\n    {\n      \"name\": \"RNGprintf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RNGprintf{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"defineDepQJS\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"defineDepQJS{${1:cmd}}{${2:numerator}}{${3:denominator}}{${4:script%definition}}\"\n      }\n    },\n    {\n      \"name\": \"js\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"js{${1:\\\\name}}\"\n      }\n    },\n    {\n      \"name\": \"RNGadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RNGadd{${1:\\\\name1}}{${2:\\\\name2}}\"\n      }\n    },\n    {\n      \"name\": \"zZero\"\n    },\n    {\n      \"name\": \"zOne\"\n    },\n    {\n      \"name\": \"zMinusOne\"\n    },\n    {\n      \"name\": \"rPI\"\n    },\n    {\n      \"name\": \"rE\"\n    },\n    {\n      \"name\": \"amodb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amodb{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"cntNumDec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cntNumDec{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"convertRatTo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"convertRatTo{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"decPls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loopCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxLoopLimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reseedEachRun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"retnmod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rndnDec\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rndPower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RNGparseRat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RNGparseRat{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"RNGround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RNGround{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"seedCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simplifyCurrentQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simplifyCurrentR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syncronizeQs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syncronizeQs{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"theseDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeCodeForq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeCodeForr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typeCodeForz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updateQ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"updateQ{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"updateZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"updateZ{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"varType\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"writeRVsTo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:quizzes|exercises}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/rangen#c\": [\n      \"testmode\",\n      \"counter=${1:counter}\",\n      \"first=${1:integer}\",\n      \"last=${1:integer}\",\n      \"seed=${1:integer}\",\n      \"quiet\"\n    ],\n    \"\\\\RandomZ,\\\\RandomQ,\\\\RandomR\": [\n      \"ne=${1:integer(s)}\"\n    ],\n    \"\\\\RandomR\": [\n      \"round=${1:integer}\",\n      \"showzeros\"\n    ],\n    \"\\\\RandomL,\\\\RandomP\": [\n      \"index=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rangen#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rank-2-roots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"weightLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weightRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradingDot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSizeWeightLatticetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSizeWeightLatticefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rootSystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{rootSystem}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rootSystem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{rootSystem}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{rootSystem}\": [\n      \"A\",\n      \"B\",\n      \"C\",\n      \"G\"\n    ],\n    \"\\\\wt#c,\\\\hexwt#c,\\\\squarewt#c\": [\n      \"multiplicity=${1:integer}\",\n      \"root\",\n      \"%color\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rawfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"somedefs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fivrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fivmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fivsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fivly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egtrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egtmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egtsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egtly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nintt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tentt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvtt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elvly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twltt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twlly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frtnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frtnmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frtnsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frtnbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frtnly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svtnrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svtnmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svtnsy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svtnbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svtnly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twtyrm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twtymi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twtysy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twtyly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twfvrm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rccol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"fltpoint\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rcRoundingtrue\"\n    },\n    {\n      \"name\": \"rcRoundingfalse\"\n    },\n    {\n      \"name\": \"rcDecimalSign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcDecimalSign{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"rcDecimalSignInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcDecimalSignInput{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"rcDecimalSignOutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcDecimalSignOutput{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"ifrcRounding\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rcs-multi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"rcsid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsid{$%<Id%>$}\"\n      }\n    },\n    {\n      \"name\": \"rcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcs{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"rcskwsave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcskwsave{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"rcsrev\"\n    },\n    {\n      \"name\": \"rcsdate\"\n    },\n    {\n      \"name\": \"rcsauthor\"\n    },\n    {\n      \"name\": \"rcsfilerev\"\n    },\n    {\n      \"name\": \"rcsfiledate\"\n    },\n    {\n      \"name\": \"rcsfileauthor\"\n    },\n    {\n      \"name\": \"rcsmainfilename\"\n    },\n    {\n      \"name\": \"rcssetmainfile\"\n    },\n    {\n      \"name\": \"rcskw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcskw{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"rcskwdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcskwdef{${1:keyword}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"rcsyear\"\n    },\n    {\n      \"name\": \"rcsfileyear\"\n    },\n    {\n      \"name\": \"rcsmonth\"\n    },\n    {\n      \"name\": \"rcsfilemonth\"\n    },\n    {\n      \"name\": \"rcsday\"\n    },\n    {\n      \"name\": \"rcsfileday\"\n    },\n    {\n      \"name\": \"rcshour\"\n    },\n    {\n      \"name\": \"rcsfilehour\"\n    },\n    {\n      \"name\": \"rcsminute\"\n    },\n    {\n      \"name\": \"rcsfileminute\"\n    },\n    {\n      \"name\": \"rcssecond\"\n    },\n    {\n      \"name\": \"rcsfilesecond\"\n    },\n    {\n      \"name\": \"rcstime\"\n    },\n    {\n      \"name\": \"rcsfiletime\"\n    },\n    {\n      \"name\": \"rcspdfdate\"\n    },\n    {\n      \"name\": \"rcstoday\"\n    },\n    {\n      \"name\": \"rcsfiletoday\"\n    },\n    {\n      \"name\": \"rcsRegisterAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcsRegisterAuthor{${1:author}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"rcsFullAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsFullAuthor{${1:author name or macro}}\"\n      }\n    },\n    {\n      \"name\": \"rcsFullAuthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsFullAuthor*{${1:author name or macro}}\"\n      }\n    },\n    {\n      \"name\": \"rcsRegisterRevision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rcsRegisterRevision{${1:revision number}}{${2:tag name}}\"\n      }\n    },\n    {\n      \"name\": \"rcsFullRevision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsFullRevision{${1:revision number or macro}}\"\n      }\n    },\n    {\n      \"name\": \"rcsFullRevision*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsFullRevision*{${1:revision number or macro}}\"\n      }\n    },\n    {\n      \"name\": \"rcsnolinkurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rcsnolinkurl{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"rcsfilename\"\n    },\n    {\n      \"name\": \"rcsfileurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsmainfileurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsmainurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rcsurl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rcsinfo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"scrpage2\",\n      \"if\": \"scrpage2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rcsInfoFile\"\n    },\n    {\n      \"name\": \"rcsInfoRevision\"\n    },\n    {\n      \"name\": \"rcsInfoDate\"\n    },\n    {\n      \"name\": \"rcsInfoTime\"\n    },\n    {\n      \"name\": \"rcsInfoOwner\"\n    },\n    {\n      \"name\": \"rcsInfoStatus\"\n    },\n    {\n      \"name\": \"rcsInfoLocker\"\n    },\n    {\n      \"name\": \"rcsInfoYear\"\n    },\n    {\n      \"name\": \"rcsInfoMonth\"\n    },\n    {\n      \"name\": \"rcsInfoDay\"\n    },\n    {\n      \"name\": \"rcsInfoLongDate\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rcsinfo#c\": [\n      \"today\",\n      \"fancy\",\n      \"fancyhdr\",\n      \"scrpage2\",\n      \"nofancy\",\n      \"long\",\n      \"short\",\n      \"datehyphen\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rcsinfo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/readarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"listofitems\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"readdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readdef{${1:file}}{${2:data-macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"readrecordarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readrecordarray{${1:file}}{${2:array-identifier%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"readarray\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"readarray{${1:data-macro}}{${2:array-identifier%cmd}}[${3:-,columns}]\"\n      }\n    },\n    {\n      \"name\": \"readarray\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"readarray{${1:data-macro}}{${2:array-identifier%cmd}}[${3:-,rows,columns}]\"\n      }\n    },\n    {\n      \"name\": \"readarray*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"readarray*{${1:data-macro}}{${2:array-identifier%cmd}}[${3:-,columns}]\"\n      }\n    },\n    {\n      \"name\": \"readarray*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"readarray*{${1:data-macro}}{${2:array-identifier%cmd}}[${3:-,rows,columns}]\"\n      }\n    },\n    {\n      \"name\": \"initarray\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"initarray{${1:array-identifier%cmd}}[${2:rows,columns}]\"\n      }\n    },\n    {\n      \"name\": \"initarray\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"initarray{${1:array-identifier%cmd}}[${2:planes,rows,columns}]\"\n      }\n    },\n    {\n      \"name\": \"mergearray\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"mergearray{${1:from-array-id}}{${2:to-array-id}}[${3:row,column}]\"\n      }\n    },\n    {\n      \"name\": \"mergearray\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"mergearray{${1:from-array-id}}{${2:to-array-id}}[${3:plane,row,column}]\"\n      }\n    },\n    {\n      \"name\": \"typesetarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetarray{${1:array-identifier}}\"\n      }\n    },\n    {\n      \"name\": \"arraytomacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"arraytomacro{${1:array-identifier}}[${3:row,column}]{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"arraytomacro\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"arraytomacro{${1:array-identifier}}[${3:plane,row,column}]{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setvalue\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setvalue{${1:array-identifier}}[${3:row,column}]{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"setvalue\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setvalue{${1:array-identifier}}[${3:plane,row,column}]{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"readarraysepchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readarraysepchar{${1:parsing-separator-char}}\"\n      }\n    },\n    {\n      \"name\": \"readarrayinitvalue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetcell{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"typesetplanesepchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetrowsepchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetcolsepchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocheckbounds\"\n    },\n    {\n      \"name\": \"checkbounds\"\n    },\n    {\n      \"name\": \"hypercheckbounds\"\n    },\n    {\n      \"name\": \"ifignoreblankreadarrayrecords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreblankreadarrayrecordstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoreblankreadarrayrecordsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrows\"\n    },\n    {\n      \"name\": \"ncols\"\n    },\n    {\n      \"name\": \"nrecords\"\n    },\n    {\n      \"name\": \"ArrayRecord\"\n    },\n    {\n      \"name\": \"ArrayRecord\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ArrayRecord[${1:record}]\"\n      }\n    },\n    {\n      \"name\": \"readarraybackslash\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/readhanja.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"readhanjahangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanjahangulfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"readhanjahangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"readhanjahangulfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"readhanjahangulfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"readhanjahangulfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\readhanjahangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"readhanjahangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"readhanjahangulfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\readhanjahangulfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"readhanjaraise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanjaraise{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"readhanjalocate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanjalocate{${1:options}}\",\n        \"keys\": [\n          \"\\\\readhanjalocate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"readhanjaunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readhanjaunit{${1:options}}\",\n        \"keys\": [\n          \"\\\\readhanjaunit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"readhanjareading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readhanjareading{${1:hanja}}{${2:reading}}\"\n      }\n    },\n    {\n      \"name\": \"readhanjadictionary\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"readhanjadictionary{${1:hanja}}{${2:reading}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"readhanja\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/readhanja#c\": [\n      \"draft\"\n    ],\n    \"\\\\readhanjalocate#c\": [\n      \"pre\",\n      \"post\",\n      \"top\",\n      \"bottom\"\n    ],\n    \"\\\\readhanjaunit#c\": [\n      \"char\",\n      \"word\"\n    ],\n    \"\\\\readhanjahangulfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,SwashOff,Alternate,AlternateOff,WordInitial,WordInitialOff,WordFinal,WordFinalOff,LineFinal,LineFinalOff,Inner,InnerOff,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"Opacity=${1:factor}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,Uppercase,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/readhanja#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/readprov.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"GetFileInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfo{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UseDateOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseDateOf{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UseVersionOf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseVersionOf{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ReadPackageInfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadPackageInfos{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"ReadClassInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadClassInfo{${1:class list}}\"\n      }\n    },\n    {\n      \"name\": \"ReadFileInfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadFileInfos{${1:file list}}\"\n      }\n    },\n    {\n      \"name\": \"ReadShInfos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReadShInfos{${1:.sh file list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/realboxes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"collectbox\"\n    },\n    {\n      \"name\": \"adjcalc\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"graphics\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"graphicx\"\n    },\n    {\n      \"name\": \"dashbox\",\n      \"if\": \"dashbox\"\n    },\n    {\n      \"name\": \"fancybox\",\n      \"if\": \"fancybox\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"dashbox\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"fancybox\",\n      \"if\": \"all\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Mbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Makebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Makebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Makebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Makebox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Makebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Makebox[${2:width}][${3:position}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Framebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Framebox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Framebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Framebox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Framebox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Framebox[${2:width}][${3:position}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Raisebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Raisebox{${1:length}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Raisebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Raisebox{${1:length}}[${3:height}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Raisebox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"Raisebox{${1:length}}[${3:height}][${4:depth}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Centerline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Centerline{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Leftline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Leftline{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rightline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rightline{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rlap{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Llap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Llap{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}][${5:inner-pos}]{${1:width}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"parbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"parbox[${3:position}][${4:height}]{${1:width}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Sbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Sbox{${1:register}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Savebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Savebox{${1:register}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Savebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Savebox{${1:register}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Savebox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"Savebox{${1:register}}[${3:width}][${4:position}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Colorbox{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Colorbox[${3:color model}]{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Fcolorbox{${1:fcolor}}{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"color\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"Fcolorbox[${4:fc model}]{${1:fcolor}}[${5:bg model}]{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"xcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Colorbox{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"xcolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Colorbox[${3:color model}]{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"xcolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Fcolorbox{${1:fcolor}}{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"xcolor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"Fcolorbox[${4:fc model}]{${1:fcolor}}[${5:bg model}]{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rotatebox\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rotatebox{${1:angle}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}[${3:v-scale}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Reflectbox\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reflectbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox{${1:width}}{${2:height}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox*\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox*{${1:width}}{${2:totalheight}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rotatebox\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rotatebox{${1:angle}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}[${3:v-scale}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Reflectbox\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reflectbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox{${1:width}}{${2:height}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox*\",\n      \"if\": \"graphicx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox*{${1:width}}{${2:totalheight}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dashbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dashbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Dashbox[${2:width}][${3:position}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Lbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Lbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lbox[${2:layers}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dlbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dlbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dlbox\",\n      \"if\": \"dashbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dlbox[${2:layers}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Colorbox{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Colorbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Colorbox[${3:color model}]{${1:color}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Fcolorbox{${1:fcolor}}{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Fcolorbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"Fcolorbox[${4:fc model}]{${1:fcolor}}[${5:bg model}]{${2:bgcolor}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Rotatebox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rotatebox{${1:angle}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}{${2:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Scalebox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"Scalebox{${1:h-scale}}[${3:v-scale}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Reflectbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Reflectbox{${1:contents%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox{${1:width}}{${2:height}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Resizebox*\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Resizebox*{${1:width}}{${2:totalheight}}{${3:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dashbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dashbox[${2:width}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dashbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Dashbox[${2:width}][${3:position}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Lbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Lbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lbox[${2:layers}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dlbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dlbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dlbox\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dlbox[${2:layers}]{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/realboxes#c\": [\n      \"xcolor\",\n      \"color\",\n      \"graphics\",\n      \"graphicx\",\n      \"dashbox\",\n      \"fancybox\",\n      \"all\"\n    ],\n    \"\\\\Rotatebox\": [\n      \"x=\",\n      \"y=\",\n      \"origin=\",\n      \"units=${1:number}\",\n      \"x=\",\n      \"y=\",\n      \"origin=\",\n      \"units=${1:number}\",\n      \"x=\",\n      \"y=\",\n      \"origin=\",\n      \"units=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/realboxes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/realhats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lcg\"\n    },\n    {\n      \"name\": \"stackengine\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hat[${2:type%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\hat,\\\\usepackage/realhats#c,\\\\hatn,\\\\hatnoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hatwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hshif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vshif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatused\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gethat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hatn{${1:arg}}{${2:type%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"hatnoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hatnoptions{${1:arg}}{${2:type%keyvals}}{${3:hshift%l}}{${4:vshift%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hat,\\\\usepackage/realhats#c,\\\\hatn,\\\\hatnoptions\": [\n      \"beret\",\n      \"santa\",\n      \"sombrero\",\n      \"witch\",\n      \"tophat\",\n      \"ash\",\n      \"fez\",\n      \"cowboy\",\n      \"crown\",\n      \"dunce\",\n      \"policeman\",\n      \"scottish\",\n      \"birthday\",\n      \"mortarboard\",\n      \"tile-white\",\n      \"tile-gray\",\n      \"tile-light-blue\",\n      \"tile-blue\"\n    ]\n  },\n  \"args\": [\n    \"\\\\hat,\\\\usepackage/realhats#c,\\\\hatn,\\\\hatnoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/realscripts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fakesubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"fakesuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"realsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsubscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"realsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsuperscript{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"footnotemarkfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsubsuperscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsubsuperscript{${1:sub}}{${2:super}}\"\n      }\n    },\n    {\n      \"name\": \"textsubsuperscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsubsuperscript[${3:align%keyvals}]{${1:sub}}{${2:super}}\",\n        \"keys\": [\n          \"\\\\textsubsuperscript,\\\\textsubsuperscript*,\\\\textsupersubscript,\\\\textsupersubscript*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubsuperscript*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsubsuperscript*{${1:sub}}{${2:super}}\"\n      }\n    },\n    {\n      \"name\": \"textsubsuperscript*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsubsuperscript*[${3:align%keyvals}]{${1:sub}}{${2:super}}\",\n        \"keys\": [\n          \"\\\\textsubsuperscript,\\\\textsubsuperscript*,\\\\textsupersubscript,\\\\textsupersubscript*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsupersubscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsupersubscript{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"textsupersubscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsupersubscript[${3:align%keyvals}]{${1:super}}{${2:sub}}\",\n        \"keys\": [\n          \"\\\\textsubsuperscript,\\\\textsubsuperscript*,\\\\textsupersubscript,\\\\textsupersubscript*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsupersubscript*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsupersubscript*{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"textsupersubscript*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textsupersubscript*[${3:align%keyvals}]{${1:super}}{${2:sub}}\",\n        \"keys\": [\n          \"\\\\textsubsuperscript,\\\\textsubsuperscript*,\\\\textsupersubscript,\\\\textsupersubscript*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsupersep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\textsubsuperscript,\\\\textsubsuperscript*,\\\\textsupersubscript,\\\\textsupersubscript*\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/realtranspose.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"realtranspose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realtranspose{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rec-thy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"bbm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"step\",\n      \"if\": \"steps\"\n    },\n    {\n      \"name\": \"step\",\n      \"if\": \"steps\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"step[${1:label%text}]\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Acompat\"\n    },\n    {\n      \"name\": \"Adegrees\"\n    },\n    {\n      \"name\": \"Adegreesjump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aeq\"\n    },\n    {\n      \"name\": \"Aequiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ageq\"\n    },\n    {\n      \"name\": \"Agneq\"\n    },\n    {\n      \"name\": \"Agtr\"\n    },\n    {\n      \"name\": \"Aincompat\"\n    },\n    {\n      \"name\": \"Aleq\"\n    },\n    {\n      \"name\": \"Aless\"\n    },\n    {\n      \"name\": \"Alneq\"\n    },\n    {\n      \"name\": \"AREAdegrees\"\n    },\n    {\n      \"name\": \"aut\"\n    },\n    {\n      \"name\": \"Azero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azeroj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azerojj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azerojjj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azeron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Azeron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Azerosym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baire\"\n    },\n    {\n      \"name\": \"Baire\"\n    },\n    {\n      \"name\": \"bpfuncs\"\n    },\n    {\n      \"name\": \"bstrs\"\n    },\n    {\n      \"name\": \"cantor\"\n    },\n    {\n      \"name\": \"card\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"card{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"case[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"CBderiv\",\n      \"arg\": {\n        \"format\": \"[sup}{}\",\n        \"snippet\": \"CBderiv[sup}{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"CBderiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CBderiv{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cbstrs\"\n    },\n    {\n      \"name\": \"ce\"\n    },\n    {\n      \"name\": \"CEA\"\n    },\n    {\n      \"name\": \"CEA\"\n    },\n    {\n      \"name\": \"CEA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CEA[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"ceil*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ceil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ceil{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cequiv\"\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"compat\"\n    },\n    {\n      \"name\": \"compose\"\n    },\n    {\n      \"name\": \"computable\"\n    },\n    {\n      \"name\": \"Computable\"\n    },\n    {\n      \"name\": \"computablyEnumerable\"\n    },\n    {\n      \"name\": \"ComputablyEnumerable\"\n    },\n    {\n      \"name\": \"concat\"\n    },\n    {\n      \"name\": \"concat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"concat[${1:arg}]\"\n      }\n    },\n    {\n      \"name\": \"conv\"\n    },\n    {\n      \"name\": \"conv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"conv[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"converge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"converge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"converge[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"cornerquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cornerquote{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"cross\"\n    },\n    {\n      \"name\": \"Cross\"\n    },\n    {\n      \"name\": \"CrossOrig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crossOrig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decode{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"deltain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"deltain[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"deltain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deltain{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"DeltaN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeltaN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"DeltaOneN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeltaOneN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"DeltaOneN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeltaOneN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"DeltaZeroN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeltaZeroN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"DeltaZeroN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeltaZeroN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"deltazn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"deltazn[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"deltazn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deltazn{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"diverge\"\n    },\n    {\n      \"name\": \"dom\"\n    },\n    {\n      \"name\": \"EmptyStr\"\n    },\n    {\n      \"name\": \"ensuretext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuretext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"entersat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"entersat{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eq\"\n    },\n    {\n      \"name\": \"eq*\"\n    },\n    {\n      \"name\": \"eqae\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"eset\"\n    },\n    {\n      \"name\": \"estr\"\n    },\n    {\n      \"name\": \"existsinf\"\n    },\n    {\n      \"name\": \"existsuniq\"\n    },\n    {\n      \"name\": \"FinParFuncs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FinParFuncs{${1:domain}}{${2:range}}\"\n      }\n    },\n    {\n      \"name\": \"finsets\"\n    },\n    {\n      \"name\": \"finSsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"floor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"floor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"forall*\"\n    },\n    {\n      \"name\": \"forallae\"\n    },\n    {\n      \"name\": \"forces\"\n    },\n    {\n      \"name\": \"forces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"forces(${1:sup})\"\n      }\n    },\n    {\n      \"name\": \"forces\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"forces(${2:sup})[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"forces*\"\n    },\n    {\n      \"name\": \"forces*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"forces*(${1:sup})\"\n      }\n    },\n    {\n      \"name\": \"forces*\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"forces*(${2:sup})[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"forces*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"forces*[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"forces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"forces[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"fpmapsfrom\"\n    },\n    {\n      \"name\": \"fpmapsto\"\n    },\n    {\n      \"name\": \"godelnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"godelnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"hgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hgt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Hop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hop[${2:sub2}]{${1:sub1}}\"\n      }\n    },\n    {\n      \"name\": \"Hop\",\n      \"arg\": {\n        \"format\": \"[]{}()\",\n        \"snippet\": \"Hop[${2:sub2}]{${1:sub1}}(${3:arg})\"\n      }\n    },\n    {\n      \"name\": \"Hop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hop{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Hop\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"Hop{${1:sub}}(${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"hyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HYP\"\n    },\n    {\n      \"name\": \"iffdef\"\n    },\n    {\n      \"name\": \"incompat\"\n    },\n    {\n      \"name\": \"infsubset\"\n    },\n    {\n      \"name\": \"infsubset*\"\n    },\n    {\n      \"name\": \"infsupset\"\n    },\n    {\n      \"name\": \"infsupset*\"\n    },\n    {\n      \"name\": \"isect\"\n    },\n    {\n      \"name\": \"Isect\"\n    },\n    {\n      \"name\": \"jjjump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jjjump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jjump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jjump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"join\"\n    },\n    {\n      \"name\": \"jump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jumpn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jumpn{${1:arg}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"kleeneO\"\n    },\n    {\n      \"name\": \"kleeneO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"kleeneO(${1:sup})\"\n      }\n    },\n    {\n      \"name\": \"kleeneO\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"kleeneO(${2:sup})[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"kleeneO*\"\n    },\n    {\n      \"name\": \"kleeneO*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"kleeneO*(${1:sup})\"\n      }\n    },\n    {\n      \"name\": \"kleeneO*\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"kleeneO*(${2:sup})[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"kleeneO*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kleeneO*[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"kleeneO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kleeneO[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"kleeneOSYM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Land\"\n    },\n    {\n      \"name\": \"leftof\"\n    },\n    {\n      \"name\": \"leftofeq\"\n    },\n    {\n      \"name\": \"lh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lh{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LLand\"\n    },\n    {\n      \"name\": \"llangle\",\n      \"detail\": \"⦉ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation left binding bracket\"\n    },\n    {\n      \"name\": \"LLor\"\n    },\n    {\n      \"name\": \"logic\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logic{${1:sub1}}{${2:sub2}}\"\n      }\n    },\n    {\n      \"name\": \"Lor\"\n    },\n    {\n      \"name\": \"Low\"\n    },\n    {\n      \"name\": \"Low\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Low[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"LowN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LowN[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"lowN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lowN[${2:sup%formula}]{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"LowN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LowN{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"lowN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowN{${1:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"majsubset\"\n    },\n    {\n      \"name\": \"majsupset\"\n    },\n    {\n      \"name\": \"maps\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"maps{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"meet\"\n    },\n    {\n      \"name\": \"Meet\"\n    },\n    {\n      \"name\": \"MnJoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"module\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"module{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"module\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"module{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"murec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"murec{${1:var%formula}}{${2:condition%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nAeq\"\n    },\n    {\n      \"name\": \"nAgeq\"\n    },\n    {\n      \"name\": \"nAincompat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nAleq\"\n    },\n    {\n      \"name\": \"ncequiv\"\n    },\n    {\n      \"name\": \"nconv\"\n    },\n    {\n      \"name\": \"nconv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nconv[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"ndownarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neqae\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nexistsinf\"\n    },\n    {\n      \"name\": \"nexistsuniq\"\n    },\n    {\n      \"name\": \"nforall\"\n    },\n    {\n      \"name\": \"nforallae\"\n    },\n    {\n      \"name\": \"nin\"\n    },\n    {\n      \"name\": \"nleftof\"\n    },\n    {\n      \"name\": \"nleftofeq\"\n    },\n    {\n      \"name\": \"nprecsucc\"\n    },\n    {\n      \"name\": \"nrightof\"\n    },\n    {\n      \"name\": \"nrightofeq\"\n    },\n    {\n      \"name\": \"nSearrow\"\n    },\n    {\n      \"name\": \"nsubfun\"\n    },\n    {\n      \"name\": \"nsubfuneq\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsuccprec\"\n    },\n    {\n      \"name\": \"nsupfun\"\n    },\n    {\n      \"name\": \"nsupfuneq\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nTeq\"\n    },\n    {\n      \"name\": \"nTequiv\"\n    },\n    {\n      \"name\": \"nTgeq\"\n    },\n    {\n      \"name\": \"nTincompat\"\n    },\n    {\n      \"name\": \"nTleq\"\n    },\n    {\n      \"name\": \"Oabs*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Oabs*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Oabs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oadd\"\n    },\n    {\n      \"name\": \"Ofunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ofunc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ogeq\"\n    },\n    {\n      \"name\": \"Ogtr\"\n    },\n    {\n      \"name\": \"Ohgt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ohgt*{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ohgt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ohgt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Oleq\"\n    },\n    {\n      \"name\": \"Oless\"\n    },\n    {\n      \"name\": \"Olim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Olim{${1:arg}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Omul\"\n    },\n    {\n      \"name\": \"Ongeq\"\n    },\n    {\n      \"name\": \"Ongtr\"\n    },\n    {\n      \"name\": \"Onleq\"\n    },\n    {\n      \"name\": \"Onless\"\n    },\n    {\n      \"name\": \"Oplus\"\n    },\n    {\n      \"name\": \"Opred\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Opred{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ord\"\n    },\n    {\n      \"name\": \"ordpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ordpair{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"Ouniq\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"pair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pair{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ParFuncs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ParFuncs{${1:domain}}{${2:range}}\"\n      }\n    },\n    {\n      \"name\": \"piin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"piin[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"piin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"piin{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PiN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PiN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiOneN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PiOneN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiOneN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PiOneN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiZeroN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PiZeroN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PiZeroN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PiZeroN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"pizn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pizn[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"pizn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pizn{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"pmapsfrom\"\n    },\n    {\n      \"name\": \"pmapsto\"\n    },\n    {\n      \"name\": \"powset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"powset[${2:sub}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"powset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"powset{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"precsucc\"\n    },\n    {\n      \"name\": \"PriorityTree\"\n    },\n    {\n      \"name\": \"PriorityTreeModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"PriorityTreeModule{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PriorityTreeModule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PriorityTreeModule{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"promptdif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"promptminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"promptsetminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pruneTree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pruneTree{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"quotient\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"quotient{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"re\"\n    },\n    {\n      \"name\": \"REA\"\n    },\n    {\n      \"name\": \"REA\"\n    },\n    {\n      \"name\": \"REA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"REA[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"REAop*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"REAop*[${3:sub2}]{${1:sub1}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"REAop*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"REAop*{${1:sub}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"REAop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"REAop[${3:sub2}]{${1:sub1}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"REAop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"REAop{${1:sub}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"recf\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"recf(${2:sup}){${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"recf\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"recf[${2:sub2}](${3:sup}){${1:sub1}}\"\n      }\n    },\n    {\n      \"name\": \"recf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"recf[${2:sub2}]{${1:sub1}}\"\n      }\n    },\n    {\n      \"name\": \"recf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recf{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"recfnl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"recfnl[${4:sub2}]{${1:sub1}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"recfnl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"recfnl{${1:sub}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"recursive\"\n    },\n    {\n      \"name\": \"Recursive\"\n    },\n    {\n      \"name\": \"recursivelyEnumerable\"\n    },\n    {\n      \"name\": \"RecursivelyEnumerable\"\n    },\n    {\n      \"name\": \"REdegrees\"\n    },\n    {\n      \"name\": \"refreq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refreq{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"req*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"req*{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"req*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"req*{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"req\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"req{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"req\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"req{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"require\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"require{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"require\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"require{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"REset\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"REset(${2:sup}){${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"REset\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"REset[${2:sub2}](${3:sup}){${1:sub1}}\"\n      }\n    },\n    {\n      \"name\": \"REset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"REset[${2:sub2}]{${1:sub1}}\"\n      }\n    },\n    {\n      \"name\": \"REset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"REset{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"restr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rightof\"\n    },\n    {\n      \"name\": \"rightofeq\"\n    },\n    {\n      \"name\": \"rng\"\n    },\n    {\n      \"name\": \"rrangle\",\n      \"detail\": \"⦊ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation right binding bracket\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"set{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"setbefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setcmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcmp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcol{${1:arg}}{${2:sup}}\"\n      }\n    },\n    {\n      \"name\": \"setdiff\"\n    },\n    {\n      \"name\": \"sigmain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sigmain[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"sigmain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigmain{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SigmaN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SigmaN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaOneN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SigmaOneN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaOneN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SigmaOneN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaZeroN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SigmaZeroN[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SigmaZeroN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SigmaZeroN{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"sigmazn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sigmazn[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"sigmazn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sigmazn{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"ssetsOfsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"st\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"str\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"str{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"strcD\"\n    },\n    {\n      \"name\": \"strcDa\"\n    },\n    {\n      \"name\": \"strcR\"\n    },\n    {\n      \"name\": \"strcRa\"\n    },\n    {\n      \"name\": \"strpred\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strpred{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"subfun\"\n    },\n    {\n      \"name\": \"subfuneq\"\n    },\n    {\n      \"name\": \"subfunneq\"\n    },\n    {\n      \"name\": \"subsetnaeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"succprec\"\n    },\n    {\n      \"name\": \"supfun\"\n    },\n    {\n      \"name\": \"supfuneq\"\n    },\n    {\n      \"name\": \"supfunneq\"\n    },\n    {\n      \"name\": \"supsetnaeq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"symbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symdiff\"\n    },\n    {\n      \"name\": \"Tcompat\"\n    },\n    {\n      \"name\": \"Tdeg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdeg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tdegrees\"\n    },\n    {\n      \"name\": \"Tdegreesjump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tdegvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tdegvar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Teq\"\n    },\n    {\n      \"name\": \"Tequiv\"\n    },\n    {\n      \"name\": \"Tgeq\"\n    },\n    {\n      \"name\": \"Tgneq\"\n    },\n    {\n      \"name\": \"Tgtr\"\n    },\n    {\n      \"name\": \"thiscase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tincompat\"\n    },\n    {\n      \"name\": \"Tjoin\"\n    },\n    {\n      \"name\": \"TJoin\"\n    },\n    {\n      \"name\": \"Tjump\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tjump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tleq\"\n    },\n    {\n      \"name\": \"Tless\"\n    },\n    {\n      \"name\": \"Tlneq\"\n    },\n    {\n      \"name\": \"Tmeet\"\n    },\n    {\n      \"name\": \"tpath\"\n    },\n    {\n      \"name\": \"tpath\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tpath[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Tplus\"\n    },\n    {\n      \"name\": \"TPlus\"\n    },\n    {\n      \"name\": \"TreeExt\"\n    },\n    {\n      \"name\": \"TreeExtNeq\"\n    },\n    {\n      \"name\": \"TreeMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TreeMod{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"TreeMul\"\n    },\n    {\n      \"name\": \"Tsetjoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TsetJoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttgeq\"\n    },\n    {\n      \"name\": \"ttgneq\"\n    },\n    {\n      \"name\": \"ttgtr\"\n    },\n    {\n      \"name\": \"ttleq\"\n    },\n    {\n      \"name\": \"ttless\"\n    },\n    {\n      \"name\": \"ttlneq\"\n    },\n    {\n      \"name\": \"ttngeq\"\n    },\n    {\n      \"name\": \"ttnleq\"\n    },\n    {\n      \"name\": \"ttSYM\"\n    },\n    {\n      \"name\": \"Tzero\"\n    },\n    {\n      \"name\": \"Tzerosym\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"union\"\n    },\n    {\n      \"name\": \"Union\"\n    },\n    {\n      \"name\": \"use\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"use{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"utilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wck\"\n    },\n    {\n      \"name\": \"wforces\"\n    },\n    {\n      \"name\": \"wjump\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wjump{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wstrs\"\n    },\n    {\n      \"name\": \"xor\"\n    },\n    {\n      \"name\": \"zeroj\"\n    },\n    {\n      \"name\": \"zerojj\"\n    },\n    {\n      \"name\": \"zerojjj\"\n    },\n    {\n      \"name\": \"zeron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zeron{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"zerow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zerow{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"steps\",\n      \"if\": \"steps\"\n    },\n    {\n      \"name\": \"steps\",\n      \"if\": \"steps\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"pfcases*\"\n    },\n    {\n      \"name\": \"pfcases\"\n    },\n    {\n      \"name\": \"pfcasesnonum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pfcasesnumbered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"require*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"require*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"require\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:letter}}[${3:sup%formula}]{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"require\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:letter}}{${2:sub%formula}}\"\n      }\n    },\n    {\n      \"name\": \"requirement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"requirements*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"requirements\"\n    },\n    {\n      \"name\": \"requirements\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:overlay specification}>\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/rec-thy#c\": [\n      \"nomath\",\n      \"nosymb\",\n      \"nosets\",\n      \"noquants\",\n      \"nospaces\",\n      \"nostrings\",\n      \"notrees\",\n      \"nopair\",\n      \"nosetrels\",\n      \"noordinalnotations\",\n      \"nosyntax\",\n      \"noshortsyntax\",\n      \"noforcing\",\n      \"nodegrees\",\n      \"nocomputations\",\n      \"nostructresets\",\n      \"noreqhelper\",\n      \"nosubfun\",\n      \"nopfcases\",\n      \"noprioritytrees\",\n      \"nohyperreqs\",\n      \"nooperators\",\n      \"nofixtype\",\n      \"nodoubleangles\",\n      \"steps\",\n      \"noshortO\",\n      \"altcompat\",\n      \"norsfs\",\n      \"nobbm\",\n      \"modulescr=${1:csname}\",\n      \"pfcasefont=${1:csname}\",\n      \"reqscr=${1:csname}\",\n      \"recfnlsym=${1:csname}\",\n      \"recfsym=${1:csname}\",\n      \"usesym=${1:csname}\",\n      \"emptystr=${1:csname}\",\n      \"concatsym=${1:csname}\",\n      \"lstrdelim=${1:csname}\",\n      \"rstrdelim=${1:csname}\",\n      \"lcodedelim=${1:csname}\",\n      \"rcodedelim=${1:csname}\",\n      \"lpairdelim=${1:csname}\",\n      \"rpairdelim=${1:csname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rec-thy#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/recorder-fingering.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Sopranino\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sopranino{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Sopranino\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sopranino[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Soprano\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Soprano{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Soprano\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Soprano[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Alto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Alto{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Alto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Alto[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tenor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tenor{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Tenor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tenor[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bass{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Bass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bass[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Whistle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Whistle{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Whistle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Whistle[${2:parameters%keyvals}]{${1:note}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fingeringSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fingeringSetup{${1:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewFfingering\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewFfingering{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewFfingering*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewFfingering*{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewCfingering\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCfingering{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewCfingering*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewCfingering*{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewDfingering\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDfingering{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewDfingering*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDfingering*{${1:notename}}{${2:fingering vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewFtrill\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewFtrill{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewFtrill*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewFtrill*{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewCtrill\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewCtrill{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewCtrill*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewCtrill*{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewDtrill\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDtrill{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"NewDtrill*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDtrill*{${1:notename}}{${2:fingering vector}}{${3:trill vector}}\"\n      }\n    },\n    {\n      \"name\": \"Ftrill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ftrill{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Ctrill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ctrill{${1:note}}\"\n      }\n    },\n    {\n      \"name\": \"Dtrill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dtrill{${1:note}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Sopranino,\\\\Soprano,\\\\Alto,\\\\Tenor,\\\\Bass,\\\\Whistle,\\\\fingeringSetup\": [\n      \"thumboffset\",\n      \"width=\",\n      \"LHRHdivider\",\n      \"LHRHspace=\",\n      \"trilldir=${1|L,R,LR|}\",\n      \"Lpointer=${1:symbol}\",\n      \"Rpointer=${1:symbol}\",\n      \"trill={${1:list of holes}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rectopma.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"intitlebreak\"\n    },\n    {\n      \"name\": \"intitlebreakvs\"\n    },\n    {\n      \"name\": \"SaveTopMatter\"\n    },\n    {\n      \"name\": \"SavedTitle\"\n    },\n    {\n      \"name\": \"SavedAuthor\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/recycle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"recycle\"\n    },\n    {\n      \"name\": \"Recycle\"\n    },\n    {\n      \"name\": \"RECYCLE\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/refcheck.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"showrefnames\"\n    },\n    {\n      \"name\": \"norefnames\"\n    },\n    {\n      \"name\": \"showcitenames\"\n    },\n    {\n      \"name\": \"nocitenames\"\n    },\n    {\n      \"name\": \"refcheckxrdoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refcheckxrdoc{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"refcheckxrdoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refcheckxrdoc[${2:prefix}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"setonmsgs\"\n    },\n    {\n      \"name\": \"setoffmsgs\"\n    },\n    {\n      \"name\": \"checkunlbld\"\n    },\n    {\n      \"name\": \"ignoreunlbld\"\n    },\n    {\n      \"name\": \"cleanprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cleanprefix{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"usedref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usedref{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wrtusdrf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrtusdrf{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/refcheck#c\": [\n      \"showrefs\",\n      \"showcites\",\n      \"msgs\",\n      \"chckunlbld\",\n      \"norefs\",\n      \"nocites\",\n      \"nomsgs\",\n      \"ignoreunlbld\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/refcheck#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/refcount.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcounterref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounterref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounterref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"setcounterpageref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcounterpageref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"addtocounterpageref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtocounterpageref{${1:counter}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"getrefnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getrefnumber{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"getpagerefnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getpagerefnumber{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setrefcountdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrefcountdefault{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"getrefbykeydefault\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getrefbykeydefault{${1:label}}{${2:key%keyvals}}{${3:default}}\",\n        \"keys\": [\n          \"\\\\getrefbykeydefault\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"refused\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refused{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"IfRefUndefinedExpandable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfRefUndefinedExpandable{${1:label}}{${2:then}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"IfRefUndefinedBabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfRefUndefinedBabel{${1:label}}{${2:then}}{${3:else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\getrefbykeydefault\": [\n      \"page\",\n      \"title\",\n      \"name\",\n      \"anchor\",\n      \"url\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/refenums.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupRefEnums\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setupRefEnums{${1:EnumID%special}}{${2:PrintName}}\"\n      }\n    },\n    {\n      \"name\": \"setupRefEnums\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setupRefEnums[${3:separator}]{${1:EnumID%special}}{${2:PrintName}}\"\n      }\n    },\n    {\n      \"name\": \"defRefEnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defRefEnum{${1:EnumID%special}}{${2:FullName%text}}{${3:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"defRefEnum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"defRefEnum[${4:wrap csname}]{${1:EnumID%special}}{${2:FullName%text}}{${3:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"defRefEnumHelper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defRefEnumHelper{${1:EnumID}}{${2:FullName%text}}\"\n      }\n    },\n    {\n      \"name\": \"defRefEnumInline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defRefEnumInline{${1:EnumID%special}}{${2:FullName%text}}{${3:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"defRefEnumInline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"defRefEnumInline[${4:wrap csname}]{${1:EnumID%special}}{${2:FullName%text}}{${3:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"refEnumFull\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"refEnumFull{${1:EnumID%special}}{${2:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"refEnumFullP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"refEnumFullP{${1:EnumID%special}}{${2:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"refEnumFullT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"refEnumFullT{${1:EnumID%special}}{${2:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"refEnum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"refEnum{${1:EnumID%special}}{${2:LabelID}}\"\n      }\n    },\n    {\n      \"name\": \"refenumenclosing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refenumenclosing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"refenuminlineenclosing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refenuminlineenclosing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"labelname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelname{${1:LabelID}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/reflectgraphics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"reflectgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reflectgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"reflectgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reflectgraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\reflectgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\reflectgraphics\": [\n      \"width=\",\n      \"height=\",\n      \"scale=${1:factor}\",\n      \"angle=${1:degrees}\",\n      \"trim=${1:<left> <bot> <up> <right>}\",\n      \"distance=\",\n      \"length=${1:percent}\",\n      \"opacity=${1:percent}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/refstyle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newref{${1:type}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\newref\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"partkey\"\n    },\n    {\n      \"name\": \"chapkey\"\n    },\n    {\n      \"name\": \"seckey\"\n    },\n    {\n      \"name\": \"eqkey\"\n    },\n    {\n      \"name\": \"figkey\"\n    },\n    {\n      \"name\": \"tabkey\"\n    },\n    {\n      \"name\": \"fnkey\"\n    },\n    {\n      \"name\": \"partlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"chaplabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaplabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"seclabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seclabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tablabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fnlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"partref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Partref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Partref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Partref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Partref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Partref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Partref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Partref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Partref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chapref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"chapref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chapref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"chapref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Chapref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Chapref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Chapref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Chapref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Chapref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Chapref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Chapref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Chapref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"secref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"secref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"secref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"secref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Secref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Secref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Secref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Secref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Secref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Secref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Secref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Secref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eqref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Eqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Eqref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Eqref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Eqref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eqref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Eqref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Eqref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Figref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Figref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Figref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Figref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Figref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Figref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tabref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tabref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tabref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tabref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Tabref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Tabref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fnref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fnref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fnref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fnref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fnref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fnref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Fnref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fnref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"partrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"partrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"partrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"partrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Partrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Partrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Partrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Partrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Partrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Partrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Partrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Partrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaprangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chaprangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"chaprangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chaprangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chaprangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chaprangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"chaprangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chaprangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Chaprangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Chaprangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Chaprangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Chaprangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Chaprangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Chaprangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Chaprangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Chaprangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"secrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"secrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"secrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"secrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"secrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Secrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Secrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Secrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Secrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Secrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Secrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Secrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Secrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eqrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"eqrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"eqrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eqrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"eqrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"eqrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Eqrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Eqrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Eqrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Eqrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Eqrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Eqrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Eqrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Eqrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"figrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"figrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"figrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"figrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Figrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Figrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Figrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Figrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Figrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Figrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Figrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Figrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"tabrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"tabrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tabrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tabrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Tabrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Tabrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Tabrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tabrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Tabrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Tabrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fnrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fnrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fnrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fnrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"fnrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fnrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fnrangeref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fnrangeref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Fnrangeref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fnrangeref[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Fnrangeref*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Fnrangeref*{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"Fnrangeref*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Fnrangeref*[${3:options%keyvals}]{${1:label1%ref}}{${2:label2%ref}}\",\n        \"keys\": [\n          \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"partpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"partpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chappageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chappageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"chappageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chappageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"secpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"secpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"secpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eqpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"eqpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eqpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"fnpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fnpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareLangOpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLangOpt{${1:language}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RSaddto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RSaddto{${1:code}}{${2:langcmd}}\"\n      }\n    },\n    {\n      \"name\": \"RSukenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSafrikaans\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSdanish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSitalian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSnorwegian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSportuguese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSbrazilian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSswedish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSrngtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSlsttwotxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSlsttxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSparttxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSpartstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSParttxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSPartstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSappendixname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSappendicesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSAppendixname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSAppendicesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSchaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSchaptersname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSChaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSChaptersname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSsectxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSsecstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSSectxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSSecstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSeqtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSeqstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSEqtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSEqstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSfigtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSfigstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSFigtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSFigstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RStabtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RStabstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSTabtxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSTabstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSfootntxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSfootnstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSFootntxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSFootnstxt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chpname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chpname{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RSeqrefform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RSeqrefform{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RSeqref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RSeqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"RSfnmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RSfnmark{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifRSstar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifRSnameon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifRScapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifRSplural\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifRSlsttwo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/refstyle#c\": [\n      \"nokeyprefix\",\n      \"noconfig\",\n      \"english\",\n      \"USenglish\",\n      \"american\",\n      \"canadian\",\n      \"UKenglish\",\n      \"british\",\n      \"afrikaans\",\n      \"danish\",\n      \"french\",\n      \"german\",\n      \"ngerman\",\n      \"austrian\",\n      \"naustrian\",\n      \"italian\",\n      \"norwegian\",\n      \"nynorsk\",\n      \"bokmal\",\n      \"norsk\",\n      \"portuges\",\n      \"portuguese\",\n      \"brazilian\",\n      \"brazil\",\n      \"swedish\"\n    ],\n    \"\\\\newref\": [\n      \"key=${1:type}\",\n      \"s\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"name={${1:text}}\",\n      \"names={${1:text}}\",\n      \"Name={${1:text}}\",\n      \"Names={${1:text}}\",\n      \"lsttwotxt={${1:text}}\",\n      \"lsttxt={${1:text}}\",\n      \"rngtxt={${1:text}}\",\n      \"refcmd=${1:refcmd}\"\n    ],\n    \"\\\\partref,\\\\partref*,\\\\chapref,\\\\chapref*,\\\\secref,\\\\secref*,\\\\eqref,\\\\eqref*,\\\\figref,\\\\figref*,\\\\tabref,\\\\tabref*,\\\\fnref,\\\\fnref*\": [\n      \"key=${1:type}\",\n      \"s\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"name={${1:text}}\",\n      \"names={${1:text}}\",\n      \"lsttwotxt={${1:text}}\",\n      \"lsttxt={${1:text}}\",\n      \"refcmd=${1:refcmd}\"\n    ],\n    \"\\\\Partref,\\\\Partref*,\\\\Chapref,\\\\Chapref*,\\\\Secref,\\\\Secref*,\\\\Eqref,\\\\Eqref*,\\\\Figref,\\\\Figref*,\\\\Tabref,\\\\Tabref*,\\\\Fnref,\\\\Fnref*\": [\n      \"key=${1:type}\",\n      \"s\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"Name={${1:text}}\",\n      \"Names={${1:text}}\",\n      \"lsttwotxt={${1:text}}\",\n      \"lsttxt={${1:text}}\",\n      \"refcmd=${1:refcmd}\"\n    ],\n    \"\\\\partrangeref,\\\\partrangeref*,\\\\chaprangeref,\\\\chaprangeref*,\\\\secrangeref,\\\\secrangeref*,\\\\eqrangeref,\\\\eqrangeref*,\\\\figrangeref,\\\\figrangeref*,\\\\tabrangeref,\\\\tabrangeref*,\\\\fnrangeref,\\\\fnrangeref*\": [\n      \"key=${1:type}\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"names={${1:text}}\",\n      \"rngtxt={${1:text}}\",\n      \"refcmd=${1:refcmd}\"\n    ],\n    \"\\\\Partrangeref,\\\\Partrangeref*,\\\\Chaprangeref,\\\\Chaprangeref*,\\\\Secrangeref,\\\\Secrangeref*,\\\\Eqrangeref,\\\\Eqrangeref*,\\\\Figrangeref,\\\\Figrangeref*,\\\\Tabrangeref,\\\\Tabrangeref*,\\\\Fnrangeref,\\\\Fnrangeref*\": [\n      \"key=${1:type}\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"Names={${1:text}}\",\n      \"rngtxt={${1:text}}\",\n      \"refcmd=${1:refcmd}\"\n    ],\n    \"\\\\partpageref,\\\\chappageref,\\\\secpageref,\\\\eqpageref,\\\\figpageref,\\\\tabpageref,\\\\fnpageref\": [\n      \"key=${1:type}\",\n      \"vref=${1|true,false,far|}\",\n      \"xr=${1:xr key}\",\n      \"refcmd=${1:refcmd}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/refstyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/regcount.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"rgcounts\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/regexpatch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"patch-common\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xpatchcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchcmd*{${1:command}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchbibmacro*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchbibmacro*{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchbibdriver*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchbibdriver*{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchfieldformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchfieldformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchnameformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchnameformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchlistformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchlistformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexfieldformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexfieldformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexnameformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexnameformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchindexlistformat*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"xpatchindexlistformat*[${6:entry type}]{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"regexpatchcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"regexpatchcmd{${1:command}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"regexpatchcmd*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"regexpatchcmd*{${1:command}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"regexpatchbibmacro\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"regexpatchbibmacro{${1:name}}{${2:search}}{${3:replace once}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"regexpatchbibmacro*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"regexpatchbibmacro*{${1:name}}{${2:search}}{${3:replace all}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"xshowcmd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xshowcmd*{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchoptarg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpatchoptarg{${1:name}}{${2:replace}}\"\n      }\n    },\n    {\n      \"name\": \"xpatchparametertext\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xpatchparametertext{${1:name}}{${2:search}}{${3:replace}}{${4:success}}{${5:failure}}\"\n      }\n    },\n    {\n      \"name\": \"checkpatchable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkpatchable{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tracingxpatches\"\n    },\n    {\n      \"name\": \"tracingxpatches\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tracingxpatches[${1:0 or 1}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/register.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listofregisters\"\n    },\n    {\n      \"name\": \"regfield\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"regfield{${1:name}}{${2:length%plain}}{${3:start bit}}{${4:reset value}}\"\n      }\n    },\n    {\n      \"name\": \"regfieldb\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"regfieldb{${1:name}}{${2:length%plain}}{${3:start bit}}\"\n      }\n    },\n    {\n      \"name\": \"regbits\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"regbits{${1:name}}{${2:length%plain}}{${3:reset value}}\"\n      }\n    },\n    {\n      \"name\": \"regnewline\"\n    },\n    {\n      \"name\": \"reglabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reglabel{${1:reset label}}\"\n      }\n    },\n    {\n      \"name\": \"reglabelb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reglabelb{${1:reset label}}\"\n      }\n    },\n    {\n      \"name\": \"TR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TR{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"GetTRPageRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTRPageRef{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"TRfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TRleftlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TRleftlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TRrightlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TRrightlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TRwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TRwriteout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TRwriteout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"regBitFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regBitSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regBitWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regDescFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regDescSkip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regFboxSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regFieldLen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regFiller\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regFiller{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"regFloatName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regLabelAdjust\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regLabelFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regLabelSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regListName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regMakeFieldName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regMakeFieldName{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"regResetDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regResetDrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regResetHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regResetName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regResetSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regRotateFieldName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regRsvdDrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regRsvdHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regSpreadaux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"regSpreadaux{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"regSpread\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regSpread{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"regUnderScore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regdescsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regfieldColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regfieldColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"regfieldColor{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"regfieldNoColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"regfieldNoColor{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"regfieldbColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"regfieldbColor{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"regfieldbNoColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"regfieldbNoColor{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"regspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regspace{${1:bit width}}\"\n      }\n    },\n    {\n      \"name\": \"setRegLengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelowerbit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theupperbit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetRegBits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetRegBits{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"typesetRegColorBits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typesetRegColorBits{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"typesetRegColorReset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"typesetRegColorReset{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"typesetRegReset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typesetRegReset{${1:arg1}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"register\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:placement}}{${2:name}}{${3:register offset}}\"\n      }\n    },\n    {\n      \"name\": \"register*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:placement}}{${2:name}}{${3:register offset}}\"\n      }\n    },\n    {\n      \"name\": \"regdesc\"\n    },\n    {\n      \"name\": \"reglist\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/register#c\": [\n      \"LyX\",\n      \"hyperref\",\n      \"TRflags\",\n      \"TRboxed\",\n      \"color\",\n      \"botcaption\",\n      \"nocaption\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/register#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/regstats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"intcalc\",\n      \"if\": \"timer\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"timer\"\n    },\n    {\n      \"name\": \"intcalc\",\n      \"if\": \"timer=true\"\n    },\n    {\n      \"name\": \"iftex\",\n      \"if\": \"timer=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"regstatselapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsseconds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theregstatscount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatstoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatswrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatslanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regstatsinsert\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/regstats#c\": [\n      \"left\",\n      \"timer\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/regstats#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/relaycircuit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"circuitikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/reledmac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"beginnumbering\"\n    },\n    {\n      \"name\": \"endnumbering\"\n    },\n    {\n      \"name\": \"pstart\"\n    },\n    {\n      \"name\": \"pstart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstart[${1:before code}]\"\n      }\n    },\n    {\n      \"name\": \"pstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pstart[${1:before code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"pend\"\n    },\n    {\n      \"name\": \"pend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pend[${1:after code}]\"\n      }\n    },\n    {\n      \"name\": \"pend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pend[${1:after code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"autopar\"\n    },\n    {\n      \"name\": \"AtEveryPstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryPstart{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryPstart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryPstart*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryPend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryPend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryPend*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryPend*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtStartEveryPstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtStartEveryPstart{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndEveryPend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndEveryPend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"numberpstarttrue\"\n    },\n    {\n      \"name\": \"numberpstartfalse\"\n    },\n    {\n      \"name\": \"thepstart\"\n    },\n    {\n      \"name\": \"sidepstartnumtrue\"\n    },\n    {\n      \"name\": \"sidepstartnumfalse\"\n    },\n    {\n      \"name\": \"labelpstarttrue\"\n    },\n    {\n      \"name\": \"labelpstartfalse\"\n    },\n    {\n      \"name\": \"pausenumbering\"\n    },\n    {\n      \"name\": \"resumenumbering\"\n    },\n    {\n      \"name\": \"numberlinetrue\"\n    },\n    {\n      \"name\": \"numberlinefalse\"\n    },\n    {\n      \"name\": \"firstlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstlinenum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linenumincrement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumincrement{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstsublinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstsublinenum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sublinenumincrement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumincrement{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linenumberlist\"\n    },\n    {\n      \"name\": \"lineation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineation{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\lineation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenummargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummargin{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummargin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftlinenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightlinenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startsub\"\n    },\n    {\n      \"name\": \"endsub\"\n    },\n    {\n      \"name\": \"Xsublinesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xsublinesep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xsublinesep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xsublinesep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xsublinesepside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xsublinesepside{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"startlock\"\n    },\n    {\n      \"name\": \"endlock\"\n    },\n    {\n      \"name\": \"lockdisp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lockdisp{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\lockdisp\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"advanceline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advanceline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlinenum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linenumberstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyle,\\\\sublinenumberstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sublinenumberstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumberstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyle,\\\\sublinenumberstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skipnumbering\"\n    },\n    {\n      \"name\": \"hidenumbering\"\n    },\n    {\n      \"name\": \"hidenumberingonleftpage\"\n    },\n    {\n      \"name\": \"hidenumberingonrightpage\"\n    },\n    {\n      \"name\": \"linenumannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumannotation{${1:annotation}}\"\n      }\n    },\n    {\n      \"name\": \"lineannot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineannot{${1:annot1|annot2}}\"\n      }\n    },\n    {\n      \"name\": \"Xlinenumannotationposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xlinenumannotationposition{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xlinenumannotationposition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xlinenumannotationposition[${2:series}]{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Xlinenumannotationpositionside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xlinenumannotationpositionside{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xendlinenumannotationposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlinenumannotationposition{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xendlinenumannotationposition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendlinenumannotationposition[${2:series}]{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"linenumannotationothersidetrue\"\n    },\n    {\n      \"name\": \"linenumannotationothersidefalse\"\n    },\n    {\n      \"name\": \"Xwraplinenumannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xwraplinenumannotation{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwraplinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xwraplinenumannotation[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwraplinenumannotationside\"\n    },\n    {\n      \"name\": \"Xwraplinenumannotationref\"\n    },\n    {\n      \"name\": \"Xendwraplinenumannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendwraplinenumannotation{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xendwraplinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendwraplinenumannotation[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xnoidenticallinenumannotation\"\n    },\n    {\n      \"name\": \"Xnoidenticallinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnoidenticallinenumannotation[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendnoidenticallinenumannotation\"\n    },\n    {\n      \"name\": \"Xendnoidenticallinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendnoidenticallinenumannotation[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"setlinenumannotationsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlinenumannotationsep{${1:sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"dolinehook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolinehook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"doinsidelinehook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinsidelinehook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"doinsidethislinehook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinsidethislinehook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"edtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edtext{${1:lemma}}{${2:commands%text}}\"\n      }\n    },\n    {\n      \"name\": \"Afootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Afootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Afootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Afootnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bfootnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cfootnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Dfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dfootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dfootnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Efootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Efootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Efootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Efootnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Aendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Aendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Aendnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Bendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Bendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bendnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Cendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Cendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Cendnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Dendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Dendnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Eendnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eendnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Eendnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Eendnote[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"doendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doendnotes{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"doendnotesbysection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doendnotesbysection{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"toendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"toendnotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toendnotes[${2:series}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Atoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Atoendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Atoendnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Atoendnotes*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Btoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btoendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Btoendnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Btoendnotes*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Ctoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ctoendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Ctoendnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ctoendnotes*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dtoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dtoendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Dtoendnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Dtoendnotes*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Etoendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Etoendnotes{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"Etoendnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Etoendnotes*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lemma{${1:alternative}}\"\n      }\n    },\n    {\n      \"name\": \"linenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenum{${1:page1|${2:line1}|${3:subline1}|${4:page2}|${5:line2}|${6:subline2}|font}}\"\n      }\n    },\n    {\n      \"name\": \"sameword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sameword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"sameword\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sameword[${2:depth}]{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"showwordrank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showwordrank{${1:word}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"swnoexpands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msdata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"msdata{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"stopmsdata\"\n    },\n    {\n      \"name\": \"setmsdataseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmsdataseries{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"setmsdatalabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmsdatalabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setmsdataposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmsdataposition{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteA{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteA[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteB{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteB\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteB[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteC[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteD[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteE{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteE[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnoteA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefootnoteE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyfootmarkA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyfootmarkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyfootmarkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyfootmarkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bodyfootmarkE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmarkA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmarkB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmarkC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmarkD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmarkE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteAmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteAmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnoteAmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnoteBmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteBmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnoteBmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnoteCmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteCmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnoteCmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnoteDmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteDmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnoteDmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnoteEmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteEmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"footnoteEmark[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"footnoteAtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteAtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteAtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteAtext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteBtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteBtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteBtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteBtext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteCtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteCtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteCtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteCtext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteDtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteDtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteDtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteDtext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteEtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteEtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteEtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnoteEtext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"seriesatbegin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriesatbegin{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"seriesatend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seriesatend{${1:series}}\"\n      }\n    },\n    {\n      \"name\": \"fnpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnpos{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"mpfnpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mpfnpos{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"Xarrangement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xarrangement{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xarrangement,\\\\arrangementX\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xarrangement\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xarrangement[${2:series}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xarrangement,\\\\arrangementX\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"arrangementX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrangementX{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xarrangement,\\\\arrangementX\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrangementX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrangementX[${2:series}]{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xarrangement,\\\\arrangementX\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Xnonote\"\n    },\n    {\n      \"name\": \"Xnonote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnonote[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"nonoteX\"\n    },\n    {\n      \"name\": \"nonoteX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nonoteX[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xnumberonlyfirstinline\"\n    },\n    {\n      \"name\": \"Xnumberonlyfirstinline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnumberonlyfirstinline[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xnumberonlyfirstintwolines\"\n    },\n    {\n      \"name\": \"Xnumberonlyfirstintwolines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnumberonlyfirstintwolines[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xsymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xsymlinenum{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xsymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xsymlinenum[${2:series}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnumberonlyfirstinline\"\n    },\n    {\n      \"name\": \"Xendnumberonlyfirstinline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendnumberonlyfirstinline[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendnumberonlyfirstintwolines\"\n    },\n    {\n      \"name\": \"Xendnumberonlyfirstintwolines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendnumberonlyfirstintwolines[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendsymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendsymlinenum{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendsymlinenum[${2:series}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirst\"\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirst\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendpagenumberonlyfirst[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirstifsingle\"\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirstifsingle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendpagenumberonlyfirstifsingle[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirstintwo\"\n    },\n    {\n      \"name\": \"Xendpagenumberonlyfirstintwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendpagenumberonlyfirstintwo[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendsympagenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendsympagenum{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsympagenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendsympagenum[${2:series}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceofpagenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendinplaceofpagenumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceofpagenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendinplaceofpagenumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xtxtbeforenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xtxtbeforenumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xtxtbeforenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xtxtbeforenumber[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforepagenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforepagenumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforepagenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforepagenumber[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforepagenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbeforepagenumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforepagenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbeforepagenumber[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafterpagenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendafterpagenumber{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafterpagenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendafterpagenumber[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlineprefixsingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlineprefixsingle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlineprefixsingle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendlineprefixsingle[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlineprefixmore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlineprefixmore{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforepagenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforepagenumber[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xlinerangeseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xlinerangeseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xlinerangeseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xlinerangeseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlinerangeseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlinerangeseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlinerangeseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendlinerangeseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xtwolines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xtwolines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xtwolines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xtwolines[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xmorethantwolines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xmorethantwolines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xmorethantwolines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xmorethantwolines[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xtwolinesbutnotmore\"\n    },\n    {\n      \"name\": \"Xtwolinesbutnotmore\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xtwolinesbutnotmore[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xtwolinesonlyinsamepage\"\n    },\n    {\n      \"name\": \"Xtwolinesonlyinsamepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xtwolinesonlyinsamepage[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendtwolines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendtwolines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendtwolines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendtwolines[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendmorethantwolines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendmorethantwolines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendmorethantwolines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendmorethantwolines[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendtwolinesbutnotmore\"\n    },\n    {\n      \"name\": \"Xendtwolinesbutnotmore\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendtwolinesbutnotmore[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendtwolinesonlyinsamepage\"\n    },\n    {\n      \"name\": \"Xendtwolinesonlyinsamepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendtwolinesonlyinsamepage[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xnonumber\"\n    },\n    {\n      \"name\": \"Xnonumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnonumber[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendnonumber\"\n    },\n    {\n      \"name\": \"Xendnonumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendnonumber[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xnopagenumberifcurrent\"\n    },\n    {\n      \"name\": \"Xnopagenumberifcurrent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnopagenumberifcurrent[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xpstart\"\n    },\n    {\n      \"name\": \"Xpstart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xpstart[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xpstarteverytime\"\n    },\n    {\n      \"name\": \"Xpstarteverytime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xpstarteverytime[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xonlypstart\"\n    },\n    {\n      \"name\": \"Xonlypstart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xonlypstart[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xpstartonlyfirst\"\n    },\n    {\n      \"name\": \"Xpstartonlyfirst\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xpstartonlyfirst[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xpstartseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xpstartseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xpstartseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xpstartseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xstanza\"\n    },\n    {\n      \"name\": \"Xstanza\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xstanza[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xstanzaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xstanzaseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xstanzaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xstanzaseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xstanzaonlyfirst\"\n    },\n    {\n      \"name\": \"Xstanzaonlyfirst\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xstanzaonlyfirst[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xlinenumannotationonlyfirst\"\n    },\n    {\n      \"name\": \"Xlinenumannotationonlyfirst\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xlinenumannotationonlyfirst[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xlinenumannotationonlyfirstintwo\"\n    },\n    {\n      \"name\": \"Xlinenumannotationonlyfirstintwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xlinenumannotationonlyfirstintwo[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xsymlinenumannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xsymlinenumannotation{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xsymlinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xsymlinenumannotation[${2:series}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlinenumannotationonlyfirst\"\n    },\n    {\n      \"name\": \"Xendlinenumannotationonlyfirst\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendlinenumannotationonlyfirst[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendlinenumannotationonlyfirstintwo\"\n    },\n    {\n      \"name\": \"Xendlinenumannotationonlyfirstintwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendlinenumannotationonlyfirstintwo[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendsymlinenumannotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendsymlinenumannotation{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsymlinenumannotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendsymlinenumannotation[${2:series}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"Xnolinenumber\"\n    },\n    {\n      \"name\": \"Xendnolinenumber\"\n    },\n    {\n      \"name\": \"Xnolinenumberifannotation\"\n    },\n    {\n      \"name\": \"Xendnolinenumberifannotation\"\n    },\n    {\n      \"name\": \"Xsublinesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xsublinesep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xsublinesep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xsublinesep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsublinesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendsublinesep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsublinesep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendsublinesep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xpagelinesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xpagelinesep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xpagelinesep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xpagelinesep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforenumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforenumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafternumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xafternumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafternumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xafternumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbeforenumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbeforenumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafternumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendafternumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafternumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendafternumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xnonbreakableafternumber\"\n    },\n    {\n      \"name\": \"Xnonbreakableafternumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnonbreakableafternumber[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xbeforesymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforesymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforesymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforesymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xaftersymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xaftersymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xaftersymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xaftersymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforesymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbeforesymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforesymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbeforesymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendaftersymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendaftersymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendaftersymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendaftersymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xinplaceofnumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xinplaceofnumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendinplaceofnumber{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendinplaceofnumber[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xboxlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xboxlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxsymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xboxsymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxsymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xboxsymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxsymlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendboxsymlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxsymlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendboxsymlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxlinenumalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xboxlinenumalign{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xboxlinenumalign,\\\\Xendboxlinenumalign\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xboxlinenumalign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xboxlinenumalign[${2:series}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xboxlinenumalign,\\\\Xendboxlinenumalign\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Xendboxlinenumalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendboxlinenumalign{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xboxlinenumalign,\\\\Xendboxlinenumalign\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Xendboxlinenumalign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendboxlinenumalign[${2:series}]{${1:alignment%keyvals}}\",\n        \"keys\": [\n          \"\\\\Xboxlinenumalign,\\\\Xendboxlinenumalign\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Xboxstartlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xboxstartlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxstartlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xboxstartlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxendlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xboxendlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xboxendlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xboxendlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xnotboxingsubline\"\n    },\n    {\n      \"name\": \"Xnotboxingsubline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnotboxingsubline[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendboxlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendboxlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendboxlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxstartlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendboxstartlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxstartlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendboxstartlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxendlinenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendboxendlinenum{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendboxendlinenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendboxendlinenum[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnotboxingsubline\"\n    },\n    {\n      \"name\": \"Xendnotboxingsubline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendnotboxingsubline[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xlemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xlemmaseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xlemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xlemmaseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforelemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforelemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforelemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforelemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafterlemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xafterlemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafterlemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xafterlemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xnolemmaseparator\"\n    },\n    {\n      \"name\": \"Xnolemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnolemmaseparator[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xinplaceoflemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xinplaceoflemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xinplaceoflemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xinplaceoflemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlemmaseparator{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendlemmaseparator[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforelemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbeforelemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbeforelemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbeforelemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafterlemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendafterlemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafterlemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendafterlemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceoflemmaseparator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendinplaceoflemmaseparator{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendinplaceoflemmaseparator\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendinplaceoflemmaseparator[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xnotenumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xnotenumfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xnotenumfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xnotenumfont[${2:series}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnotenumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendnotenumfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnotenumfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendnotenumfont[${2:series}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"notenumfontX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notenumfontX{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"notenumfontX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notenumfontX[${2:series}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xlemmadisablefontselection\"\n    },\n    {\n      \"name\": \"Xlemmadisablefontselection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xlemmadisablefontselection[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendlemmadisablefontselection\"\n    },\n    {\n      \"name\": \"Xendlemmadisablefontselection\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendlemmadisablefontselection[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xlemmafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xlemmafont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xlemmafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xlemmafont[${2:series}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlemmafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendlemmafont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendlemmafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendlemmafont[${2:series}]{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xnotefontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xnotefontsize{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xnotefontsize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xnotefontsize[${2:series}]{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"notefontsizeX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notefontsizeX{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"notefontsizeX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"notefontsizeX[${2:series}]{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnotefontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendnotefontsize{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xendnotefontsize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendnotefontsize[${2:series}]{${1:fontsize commands}}\"\n      }\n    },\n    {\n      \"name\": \"Xwraplemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xwraplemma{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwraplemma\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xwraplemma[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwrapendlemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xwrapendlemma{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwrapendlemma\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xwrapendlemma[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwrapcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xwrapcontent{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xwrapcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xwrapcontent[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xendwrapcontent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendwrapcontent{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xendwrapcontent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendwrapcontent[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"wrapcontentX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapcontentX{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"wrapcontentX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wrapcontentX[${2:series}]{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"Xparindent\"\n    },\n    {\n      \"name\": \"Xparindent\"\n    },\n    {\n      \"name\": \"parindentX\"\n    },\n    {\n      \"name\": \"parindentX\"\n    },\n    {\n      \"name\": \"Xhangindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xhangindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xhangindent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xhangindent[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hangindentX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangindentX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hangindentX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hangindentX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendhangindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendhangindent{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendhangindent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendhangindent[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhooklinenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbhooklinenumber{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhooklinenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbhooklinenumber[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendahooklinenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendahooklinenumber{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendahooklinenumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendahooklinenumber[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhookinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbhookinplaceofnumber{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhookinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbhookinplaceofnumber[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendahookinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendahookinplaceofnumber{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendahookinplaceofnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendahookinplaceofnumber[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbhooknote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbhooknote{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbhooknote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbhooknote[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bhooknoteX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhooknoteX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bhooknoteX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bhooknoteX[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhooknote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendbhooknote{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xendbhooknote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendbhooknote[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforeinserting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforeinserting{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforeinserting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforeinserting[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforeinsertingX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforeinsertingX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforeinsertingX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"beforeinsertingX[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xcolalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xcolalign{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xcolalign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xcolalign[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"colalignX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colalignX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"colalignX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colalignX[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xhsizetwocol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xhsizetwocol{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xhsizetwocol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xhsizetwocol[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xhsizethreecol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xhsizethreecol{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xhsizethreecol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xhsizethreecol[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hsizetwocolX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsizetwocolX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hsizetwocolX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hsizetwocolX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hsizethreecolX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsizethreecolX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"hsizethreecolX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hsizethreecolX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafternote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xafternote{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafternote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xafternote[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"afternoteX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afternoteX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"afternoteX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"afternoteX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xparafootsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xparafootsep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xparafootsep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xparafootsep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"parafootsepX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parafootsepX{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"parafootsepX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parafootsepX[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xragged\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xragged{${1:justification%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"Xragged\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xragged[${2:series}]{${1:justification%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"raggedX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raggedX{${1:justification%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"raggedX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"raggedX[${2:series}]{${1:justification%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"Xgroupbyline\"\n    },\n    {\n      \"name\": \"Xgroupbyline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xgroupbyline[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xgroupbylineseparetwolines\"\n    },\n    {\n      \"name\": \"Xgroupbylineseparetwolines\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xgroupbylineseparetwolines[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xtxtbeforenotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xtxtbeforenotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xtxtbeforenotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xtxtbeforenotes[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"txtbeforenotesX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txtbeforenotesX{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"txtbeforenotesX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"txtbeforenotesX[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendtxtbeforenotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendtxtbeforenotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xendtxtbeforenotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendtxtbeforenotes[${2:series}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Xtxtbeforenotesonlyonce\"\n    },\n    {\n      \"name\": \"txtbeforenotesonlyonceX\"\n    },\n    {\n      \"name\": \"Xbhookgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbhookgroup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbhookgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbhookgroup[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bhookgroupX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bhookgroupX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bhookgroupX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bhookgroupX[${2:series}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforenotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xbeforenotes{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xbeforenotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xbeforenotes[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"beforenotesX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforenotesX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"beforenotesX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"beforenotesX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xprenotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xprenotes{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"prenotesX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prenotesX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xonlyonerule\"\n    },\n    {\n      \"name\": \"onlyoneruleX\"\n    },\n    {\n      \"name\": \"Xafterrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xafterrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xafterrule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xafterrule[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"afterruleX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterruleX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"afterruleX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"afterruleX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xmaxhnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xmaxhnotes{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xmaxhnotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xmaxhnotes[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"maxhnotesX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxhnotesX{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"maxhnotesX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maxhnotesX[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"maxhnotesX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maxhnotesX[${2:series}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"widthX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widthX{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"maxhnotesX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maxhnotesX[${2:series}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"Xnoteswidthliketwocolumns\"\n    },\n    {\n      \"name\": \"Xnoteswidthliketwocolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xnoteswidthliketwocolumns[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"noteswidthliketwocolumnsX\"\n    },\n    {\n      \"name\": \"noteswidthliketwocolumnsX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"noteswidthliketwocolumnsX[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendparagraph\"\n    },\n    {\n      \"name\": \"Xendparagraph\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendparagraph[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xendafternote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendafternote{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendafternote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendafternote[${2:series}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xendsep{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"Xendsep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xendsep[${2:series}]{${1:separator}}\"\n      }\n    },\n    {\n      \"name\": \"numlabfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stanza\"\n    },\n    {\n      \"name\": \"stanzaindentbase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setstanzaindents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstanzaindents{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"stanzaindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stanzaindent{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"stanzaindent*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stanzaindent*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"setstanzapenalties\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstanzapenalties{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sethangingsymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethangingsymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryStanza\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryStanza{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryStanza*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryStanza*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtStartEveryStanza\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtStartEveryStanza{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryStopStanza\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryStopStanza{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryStopStanza*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryStopStanza*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeEveryStopStanza\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeEveryStopStanza{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"numberstanzatrue\"\n    },\n    {\n      \"name\": \"numberstanzafalse\"\n    },\n    {\n      \"name\": \"thestanza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stanzanumwrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stanzanumwrapper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"antilabe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"antilabe{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"beforeantilabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterantilabe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ampersand\",\n      \"detail\": \"&\",\n      \"doc\": \"\\\\binampersand (stmaryrd)\"\n    },\n    {\n      \"name\": \"flagstanza\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flagstanza{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"flagstanza\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"flagstanza[${2:length}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"edlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"edpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"edlineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edlineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sublineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pstartref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pstartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"annotationref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annotationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xlineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xsublineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsublineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xpstartref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpstartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xannotationref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xannotationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xflagref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xflagref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"xxref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xxref{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"edmakelabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edmakelabel{${1:label}}{${2:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"edlabelS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edlabelS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"edlabelE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edlabelE{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"edlabelSE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edlabelSE{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SEref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SEref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SEref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SErefwithpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SErefwithpage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SErefwithpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SErefwithpage[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SErefonlypage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SErefonlypage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SErefonlypage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SErefonlypage[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"applabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"applabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"appref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"appref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"appref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"apprefwithpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apprefwithpage{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"apprefwithpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"apprefwithpage[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setapprefprefixsingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setapprefprefixsingle{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"setapprefprefixmore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setapprefprefixmore{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"setSErefprefixsingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSErefprefixsingle{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"setSErefprefixmore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSErefprefixmore{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"setSErefonlypageprefixsingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSErefonlypageprefixsingle{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"setSErefonlypageprefixmore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSErefonlypageprefixmore{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ledinnernote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledinnernote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ledouternote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledouternote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ledleftnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledleftnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ledrightnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledrightnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ledsidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledsidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotemargin{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\sidenotemargin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ledlsnotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledrsnotewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightnoteupfalse\"\n    },\n    {\n      \"name\": \"leftnoteupfalse\"\n    },\n    {\n      \"name\": \"ledlsnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledrsnotesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledlsnotefontsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledrsnotefontsetup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setsidenotesep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidenotesep{${1:sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"edindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"Xinnotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xinnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"Xinnotemark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xinnotemark[${2:series}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"innotemarkX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"innotemarkX{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"innotemarkX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"innotemarkX[${2:series}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"pagelinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edindexlab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edtabcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spreadmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spreadmath{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"spreadtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spreadtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"edrowfill\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edrowfill{${1:start}}{${2:end}}{${3:fill}}\"\n      }\n    },\n    {\n      \"name\": \"edatleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edatleft{${1:symbol%formula}}{${2:halfheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"edatleft\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"edatleft[${3:math%formula}]{${1:symbol%formula}}{${2:halfheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"edatright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edatright{${1:symbol%formula}}{${2:halfheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"edatright\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"edatright[${3:math%formula}]{${1:symbol%formula}}{${2:halfheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"edbeforetab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edbeforetab{${1:text}}{${2:entry}}\"\n      }\n    },\n    {\n      \"name\": \"edaftertab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edaftertab{${1:entry}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"edvertline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edvertline{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"edvertdots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edvertdots{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"eledchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledchapter{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledchapter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledchapter[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledchapter*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledchapter*{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledchapter*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledchapter*[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsection{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsection[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsection*{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsection*[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsubsection{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsubsection[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsubsection*{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsubsection*[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsubsubsection{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsubsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsubsubsection[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsubsection*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsubsubsection*{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"eledsubsubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eledsubsubsection*[${2:text}]{${1:critical text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ledpb\"\n    },\n    {\n      \"name\": \"lednopb\"\n    },\n    {\n      \"name\": \"ledpbsetting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledpbsetting{${1:setting%keyvals}}\",\n        \"keys\": [\n          \"\\\\ledpbsetting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lednopbinversetrue\"\n    },\n    {\n      \"name\": \"lednopbinversefalse\"\n    },\n    {\n      \"name\": \"extensionchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifledfinal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlemma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showlemma{${1:lemma}}\"\n      }\n    },\n    {\n      \"name\": \"theballast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefiddle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morenoexpands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthangingsymbol\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ledgroup\"\n    },\n    {\n      \"name\": \"ledgroupsized\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"ledgroupsized\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos%keyvals}]{${1:width}}\",\n        \"keys\": [\n          \"\\\\begin{ledgroupsized}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edarrayl\"\n    },\n    {\n      \"name\": \"edarrayc\"\n    },\n    {\n      \"name\": \"edarrayr\"\n    },\n    {\n      \"name\": \"edtabularl\"\n    },\n    {\n      \"name\": \"edtabularc\"\n    },\n    {\n      \"name\": \"edtabularr\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/reledmac#c\": [\n      \"series={${1:A,B,C,D,and/or E}}\",\n      \"noeledsec\",\n      \"nocritical\",\n      \"nofamiliar\",\n      \"noledgroup\",\n      \"noend\",\n      \"noquotation\",\n      \"final\",\n      \"draft\",\n      \"parapparatus\",\n      \"nopbinverse\",\n      \"widthliketwocolumns\",\n      \"continuousnumberingwithcolumns\",\n      \"xindy\",\n      \"xindy+hyperref\",\n      \"eledmac-compat\",\n      \"nopenalties\",\n      \"auxdir=${1:folder}\",\n      \"swcaseinsensitive\",\n      \"noresetlinenumannotation\",\n      \"onlyonerule\",\n      \"antilabe\"\n    ],\n    \"\\\\lineation\": [\n      \"page\",\n      \"pstart\",\n      \"section\"\n    ],\n    \"\\\\linenummargin\": [\n      \"left\",\n      \"right\",\n      \"inner\",\n      \"outer\"\n    ],\n    \"\\\\lockdisp\": [\n      \"first\",\n      \"last\",\n      \"all\"\n    ],\n    \"\\\\linenumberstyle,\\\\sublinenumberstyle\": [\n      \"Alph\",\n      \"alph\",\n      \"arabic\",\n      \"Roman\",\n      \"roman\"\n    ],\n    \"\\\\Xlinenumannotationposition,\\\\Xlinenumannotationpositionside,\\\\Xendlinenumannotationposition\": [\n      \"after\",\n      \"before\"\n    ],\n    \"\\\\Afootnote,\\\\Bfootnote,\\\\Cfootnote,\\\\Dfootnote,\\\\Efootnote,\\\\Aendnote,\\\\Bendnote,\\\\Cendnote,\\\\Dendnote,\\\\Eendnote\": [\n      \"fulllines\",\n      \"nonum\",\n      \"nosep\",\n      \"linerangesep=${1:separator}\"\n    ],\n    \"\\\\Xarrangement,\\\\arrangementX\": [\n      \"paragraph\",\n      \"twocol\",\n      \"threecol\",\n      \"normal\"\n    ],\n    \"\\\\Xboxlinenumalign,\\\\Xendboxlinenumalign\": [\n      \"L\",\n      \"R\",\n      \"C\"\n    ],\n    \"\\\\begin{ledgroupsized}\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\SEref,\\\\SErefwithpage,\\\\SErefonlypage,\\\\appref,\\\\apprefwithpage\": [\n      \"fulllines\",\n      \"nonum\",\n      \"nosep\",\n      \"linerangesep=${1:separator}\",\n      \"noprefix\",\n      \"prefixmore\"\n    ],\n    \"\\\\sidenotemargin\": [\n      \"left\",\n      \"right\",\n      \"inner\",\n      \"outer\"\n    ],\n    \"\\\\ledpbsetting\": [\n      \"before\",\n      \"after\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/reledmac#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/reledpar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"advancedshiftedpstartsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advancedshiftedpstartstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftercolumnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AtBeginPairs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginPairs{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryPstartCall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryPstartCall{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"beforecolumnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkpageL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkpageR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkpbL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkpbR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkverseL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkverseR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartoevenpage\"\n    },\n    {\n      \"name\": \"cleartoevenpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartoevenpage[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"columnrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Columns\"\n    },\n    {\n      \"name\": \"columnseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"columnsposition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columnsposition{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\columnsposition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"countLline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countRline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doinsidelineLhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinsidelineLhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"doinsidelineRhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doinsidelineRhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dolineLhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolineLhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"dolineRhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dolineRhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"edtextlater\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edtextlater{${1:lemma}}{${2:footnote command}}\"\n      }\n    },\n    {\n      \"name\": \"edtextnow\"\n    },\n    {\n      \"name\": \"eledsectmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsectmark{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"eledsectnotoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eledsectnotoc{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"endnumberingR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstlinenum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstlinenum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstlinenumR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstlinenumR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstsublinenum*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstsublinenum*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"firstsublinenumR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstsublinenumR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteAmk\"\n    },\n    {\n      \"name\": \"footnoteAnomk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteAnomk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteBmk\"\n    },\n    {\n      \"name\": \"footnoteBnomk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteBnomk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteCmk\"\n    },\n    {\n      \"name\": \"footnoteCnomk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteCnomk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteDmk\"\n    },\n    {\n      \"name\": \"footnoteDnomk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteDnomk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteEmk\"\n    },\n    {\n      \"name\": \"footnoteEnomk\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteEnomk{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"getlinesfrompagelistL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlinesfrompagelistR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlinesfromparlistL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlinesfromparlistR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifadvancedshiftedpstarts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcsboxvoid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcsboxvoid{${1:boxname}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifinserthangingsymbolR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflinenumberLevenifblank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflinenumberRevenifblank\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmovecolumnspositiononrightpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnomaxlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnosyncpstarts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumberpstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpstartnumR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifshiftedpstarts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwrittenlinesL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifwrittenlinesR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthangingsymbolL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthangingsymbolR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthangingsymbolRfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inserthangingsymbolRtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lednopbnumR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lednopbnumR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"lednopbR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledpbnumR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ledpbnumR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ledpbR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledstrutL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledstrutR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ledthegoal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftlinenumannotationR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftpagehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftpstartnumL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftpstartnumR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Leftsidehookend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineation*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineation*{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\lineationR,\\\\lineation*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lineationR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lineationR{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\lineationR,\\\\lineation*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumberLevenifblankfalse\"\n    },\n    {\n      \"name\": \"linenumberLevenifblanktrue\"\n    },\n    {\n      \"name\": \"linenumberlistR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberRevenifblankfalse\"\n    },\n    {\n      \"name\": \"linenumberRevenifblanktrue\"\n    },\n    {\n      \"name\": \"linenumberstyle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberstyle*{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyleR,\\\\sublinenumberstyleR,\\\\linenumberstyle*,\\\\sublinenumberstyle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumberstyleR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumberstyleR{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyleR,\\\\sublinenumberstyleR,\\\\linenumberstyle*,\\\\sublinenumberstyle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumincrement*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumincrement*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linenumincrementR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumincrementR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"linenummargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummargin*{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenummarginColumns*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummarginColumns*{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenummarginColumns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummarginColumns{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenummarginColumnsR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummarginColumnsR{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenummarginR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenummarginR{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumOnlyPagesForColumns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumOnlyPagesForColumns{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumOnlyPagesForColumnsR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumOnlyPagesForColumnsR{${1:location%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linenumrepL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumrepL{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"linenumrepR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linenumrepR{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"maxchunks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxchunks{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"memorydump\"\n    },\n    {\n      \"name\": \"memorydumpL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"memorydumpR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movecolumnspositiononrightpagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"movecolumnspositiononrightpagetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"newnamebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newnamebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"newnamecount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newnamecount{${1:countname}}\"\n      }\n    },\n    {\n      \"name\": \"nomaxlinesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomaxlinestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosyncpstartsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosyncpstartstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numpagelinesL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numpagelinesR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onlysideX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"onlysideX[${2:series}]{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"onlysideX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlysideX{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pages\"\n    },\n    {\n      \"name\": \"pausenumberingR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pendL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pendL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pendL[${1:after code}]\"\n      }\n    },\n    {\n      \"name\": \"pendL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pendL[${1:after code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"pendR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pendR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pendR[${1:after code}]\"\n      }\n    },\n    {\n      \"name\": \"pendR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pendR[${1:after code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"prevpgstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstartL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstartL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstartL[${1:before code}]\"\n      }\n    },\n    {\n      \"name\": \"pstartL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pstartL[${1:before code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"pstartnumRfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstartnumRtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstartR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pstartR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pstartR[${1:before code}]\"\n      }\n    },\n    {\n      \"name\": \"pstartR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"pstartR[${1:before code}][${2:indented code}]\"\n      }\n    },\n    {\n      \"name\": \"Rcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resumenumberingR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightlinenumannotationR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rightpagehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightpstartnumL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightpstartnumR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rightsidehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rightsidehookend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setgoalfraction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setgoalfraction{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"setnamebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnamebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"setparledgroupnotespacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setparledgroupnotespacing{${1:spacing cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setRlineflag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRlineflag{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"setwidthliketwocolumns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftedpstartsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftedpstartstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidenotemargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotemargin*{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sidenotemarginR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotemarginR{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sublinenumberstyle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumberstyle*{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyleR,\\\\sublinenumberstyleR,\\\\linenumberstyle*,\\\\sublinenumberstyle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sublinenumberstyleR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumberstyleR{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\linenumberstyleR,\\\\sublinenumberstyleR,\\\\linenumberstyle*,\\\\sublinenumberstyle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sublinenumincrement*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumincrement*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sublinenumincrementR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumincrementR{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"sublinenumrepL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumrepL{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sublinenumrepR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sublinenumrepR{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thechapterR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefirstlinenumR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefirstsublinenumR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theledlanguageL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theledlanguageR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelinenumincrementR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesectionR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestanzaL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestanzaR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesublinenumincrementR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsectionR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubsubsectionR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unhnamebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unhnamebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"unvnamebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unvnamebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"usenamecount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usenamecount{${1:countname}}\"\n      }\n    },\n    {\n      \"name\": \"writtenlinesLfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writtenlinesLtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writtenlinesRfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writtenlinesRtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xendlineflag\"\n    },\n    {\n      \"name\": \"Xendlineflag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xendlineflag[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xlineflag\"\n    },\n    {\n      \"name\": \"Xlineflag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Xlineflag[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Xonlyside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Xonlyside[${2:series}]{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Xonlyside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Xonlyside{${1:pos%keyvals}}\",\n        \"keys\": [\n          \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pages\"\n    },\n    {\n      \"name\": \"pairs\"\n    },\n    {\n      \"name\": \"Rightside\"\n    },\n    {\n      \"name\": \"Leftside\"\n    },\n    {\n      \"name\": \"astanza\"\n    },\n    {\n      \"name\": \"astanza\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:before code}]\"\n      }\n    },\n    {\n      \"name\": \"astanza\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:before code}][${2:indented code}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/reledpar#c\": [\n      \"shiftedpstarts\",\n      \"advancedshiftedpstarts\",\n      \"nomaxlines\",\n      \"nosyncpstarts\",\n      \"movecolumnspositiononrightpage\",\n      \"sidenotesmarginpage\",\n      \"parledgroup\",\n      \"widthliketwocolumns\",\n      \"continuousnumberingwithcolumns\",\n      \"sameparallelpagenumber\",\n      \"prevpgnotnumbered\",\n      \"prevpgstyle=${1:style}\"\n    ],\n    \"\\\\columnsposition\": [\n      \"L\",\n      \"C\",\n      \"R\"\n    ],\n    \"\\\\eledsectnotoc,\\\\eledsectmark,\\\\Xonlyside,\\\\onlysideX\": [\n      \"L\",\n      \"R\"\n    ],\n    \"\\\\lineationR,\\\\lineation*\": [\n      \"page\",\n      \"pstart\",\n      \"section\"\n    ],\n    \"\\\\linenumberstyleR,\\\\sublinenumberstyleR,\\\\linenumberstyle*,\\\\sublinenumberstyle*\": [\n      \"Alph\",\n      \"alph\",\n      \"arabic\",\n      \"Roman\",\n      \"roman\"\n    ],\n    \"\\\\linenummarginR,\\\\linenummargin*,\\\\linenummarginColumns,\\\\linenummarginColumnsR,\\\\linenummarginColumns*,\\\\linenumOnlyPagesForColumns,\\\\linenumOnlyPagesForColumnsR,\\\\sidenotemarginR,\\\\sidenotemargin*\": [\n      \"left\",\n      \"right\",\n      \"inner\",\n      \"outer\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/reledpar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/relinput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stack\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"relinput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"relinput{${1:part}}{${2:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/relsize.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"relsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relsize{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"larger\"\n    },\n    {\n      \"name\": \"larger\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"larger[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"smaller\"\n    },\n    {\n      \"name\": \"smaller\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"smaller[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"relscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relscale{${1:scale factor}}\"\n      }\n    },\n    {\n      \"name\": \"textlarger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlarger{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlarger\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textlarger[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsmaller\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsmaller{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsmaller\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsmaller[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textscale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textscale{${1:scale factor}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mathsmaller\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsmaller{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathlarger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathlarger{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RSsmallest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSlargest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RSpercentTolerance\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/renditions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rendition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rendition{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thisrendition\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rendition1\"\n    },\n    {\n      \"name\": \"rendition2\"\n    },\n    {\n      \"name\": \"rendition3\"\n    },\n    {\n      \"name\": \"rendition4\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rendition5\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rendition6\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rendition7\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rendition8\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rendition9\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/renditions#c\": [\n      \"max=${1:number}\",\n      \"rendition=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/renditions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/reotex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.shapes\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sync\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sync{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"sync*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sync*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"lossysync\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lossysync{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"lossysync*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lossysync*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"syncdrain\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"syncdrain{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"syncdrain*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"syncdrain*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"syncspout\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"syncspout{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"syncspout*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"syncspout*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"filter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"filter{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"filter*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"filter*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifoe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifoe{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifoe*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifoe*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifof{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifof*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifof*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"asyncdrain\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"asyncdrain{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"asyncdrain*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"asyncdrain*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"asyncspout\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"asyncspout{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"asyncspout*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"asyncspout*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifon{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"fifon*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fifon*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"shiftfifon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"shiftfifon{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"shiftfifon*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"shiftfifon*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"lossyfifon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lossyfifon{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"lossyfifon*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lossyfifon*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"timer\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"timer{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"timer*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"timer*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"ordered\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ordered{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"ordered*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ordered*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"orderedn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"orderedn{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"orderedn*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"orderedn*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"bag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bag{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"bag*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bag*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"bagn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bagn{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"bagn*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bagn*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"set\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"set{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"set*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"set*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"setn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setn{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"setn*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setn*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"delayset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delayset{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"delayset*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delayset*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"delaysetn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delaysetn{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"delaysetn*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delaysetn*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"keyedset\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyedset{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"keyedset*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyedset*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"keyedsetn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyedsetn{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"keyedsetn*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"keyedsetn*{${1:start}}{${2:target}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"ionode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ionode{${1:reference}}{${2:point}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"mixednode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mixednode{${1:reference}}{${2:point}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"xrouter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xrouter{${1:reference}}{${2:point}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Lchannel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Lchannel{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Lchannel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Lchannel[${8:dashed}]{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Lchannel*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Lchannel*{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Lchannel*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Lchannel*[${8:dashed}]{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Uchannel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Uchannel{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Uchannel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Uchannel[${8:dashed}]{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Uchannel*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"Uchannel*{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"Uchannel*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"Uchannel*[${8:dashed}]{${1:channel name}}{${2:start}}{${3:target}}{${4:length}}{${5:orientation}}{${6:polarization}}{${7:labels}}\"\n      }\n    },\n    {\n      \"name\": \"component\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"component{${1:corner1}}{${2:corner2}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"reader\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"reader{${1:reference}}{${2:point}}{${3:labels}}\"\n      }\n    },\n    {\n      \"name\": \"writer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"writer{${1:reference}}{${2:point}}{${3:labels}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/repltext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"repltext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"repltext{${1:replacement text%text}}{${2:general text%text}}\"\n      }\n    },\n    {\n      \"name\": \"prevrepl\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rerunfilecheck.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"uniquecounter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RerunFileCheckSetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RerunFileCheckSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\RerunFileCheckSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RerunFileCheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RerunFileCheck{${1:file}}{${2:file closing action}}{${3:rerun warning}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\RerunFileCheckSetup\": [\n      \"mainaux\",\n      \"partaux\",\n      \"starttoc\",\n      \"index\",\n      \"glossary\",\n      \"aux\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rescansync.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"rescansyncPacked\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rescansyncPacked{${1:macro}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rescansyncSaveenvPacked\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"rescansyncSaveenvghostPacked\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/resizegather.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"resizegathersetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resizegathersetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\resizegathersetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\resizegathersetup\": [\n      \"enable\",\n      \"disable\",\n      \"equations\",\n      \"equation\",\n      \"displaymath\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/resmes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"resmes\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/responsive.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setsizes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsizes{${1:chars per line}}\"\n      }\n    },\n    {\n      \"name\": \"setsizes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsizes[${2:line height ratio}]{${1:chars per line}}\"\n      }\n    },\n    {\n      \"name\": \"fonttobox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fonttobox{${1:text width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"fonttobox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fonttobox[${3:line height ratio}]{${1:text width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"mediaquery\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mediaquery{${1:test name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareMediaQueryMatcher\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareMediaQueryMatcher{${1:test name}}{${2:LaTeX3 boolean test}}\"\n      }\n    },\n    {\n      \"name\": \"mediaquerytrue\"\n    },\n    {\n      \"name\": \"fixtextheight\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/responsive#c,\\\\ResponsiveSetup\": [\n      \"characters=${1:integer}\",\n      \"noautomatic\",\n      \"scale=${1|heptatonic,pentatonic,tetratonic,tritonic,golden|}\",\n      \"number=${1:integer}\",\n      \"ratio=${1:number}\",\n      \"lineratio=${1:number}\",\n      \"lineheight=${1:number}\",\n      \"boxwidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/responsive#c,\\\\ResponsiveSetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rest-api.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"transparent\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bodyFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakRoute\"\n    },\n    {\n      \"name\": \"getDeleteBorderColor\"\n    },\n    {\n      \"name\": \"getDeleteColor\"\n    },\n    {\n      \"name\": \"getDeleteLightColor\"\n    },\n    {\n      \"name\": \"getGetBorderColor\"\n    },\n    {\n      \"name\": \"getGetColor\"\n    },\n    {\n      \"name\": \"getGetLightColor\"\n    },\n    {\n      \"name\": \"getPostBorderColor\"\n    },\n    {\n      \"name\": \"getPostColor\"\n    },\n    {\n      \"name\": \"getPostLightColor\"\n    },\n    {\n      \"name\": \"getPutBorderColor\"\n    },\n    {\n      \"name\": \"getPutColor\"\n    },\n    {\n      \"name\": \"getPutLightColor\"\n    },\n    {\n      \"name\": \"method\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"methodBorderColor\"\n    },\n    {\n      \"name\": \"methodColor\"\n    },\n    {\n      \"name\": \"methodJson\"\n    },\n    {\n      \"name\": \"methodLightColor\"\n    },\n    {\n      \"name\": \"methodXml\"\n    },\n    {\n      \"name\": \"noBreakRoute\"\n    },\n    {\n      \"name\": \"noRouteParameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noRouteParameter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"noRouteResponse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noRouteResponse{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printDescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"routeBreakValue\"\n    },\n    {\n      \"name\": \"routeDescription\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"routeParamItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"routeParamItem{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"urlPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"apiRoute\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:method}}{${2:path}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"routeParameter\"\n    },\n    {\n      \"name\": \"routeRequest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"routeRequestBody\"\n    },\n    {\n      \"name\": \"routeResponse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"routeResponseItem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:status code}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"routeResponseItemBody\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/returntogrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"returntogrid\"\n    },\n    {\n      \"name\": \"returntogrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"returntogrid[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\returntogrid\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showdebugpagegrid\"\n    },\n    {\n      \"name\": \"returntogridsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"returntogridsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\returntogridsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\returntogrid\": [\n      \"save=${1:name}\",\n      \"use=${1:name}\",\n      \"label=${1:name}\",\n      \"strut=${1:integer}\",\n      \"debug-vgrid\",\n      \"tab\",\n      \"tab=${1:name}\"\n    ],\n    \"\\\\returntogridsetup\": [\n      \"active\",\n      \"step=\",\n      \"reference=${1:point name}\",\n      \"offset=\",\n      \"settabpositions={${1:name}}{${2:dim-expr1,dim-expr2,...}}\",\n      \"tab-list=${1:name}\",\n      \"hfill\",\n      \"twoside\",\n      \"debug-tab\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/revquantum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsbsy\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"braket\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"algorithm\"\n    },\n    {\n      \"name\": \"algpseudocode\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"mathpazo\",\n      \"if\": \"pretty\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"uselistings\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"uselistings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"TODO\"\n    },\n    {\n      \"name\": \"todolist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todolist{${1:contents%todo}}\"\n      }\n    },\n    {\n      \"name\": \"ii\"\n    },\n    {\n      \"name\": \"dd\"\n    },\n    {\n      \"name\": \"defeq\"\n    },\n    {\n      \"name\": \"expect\"\n    },\n    {\n      \"name\": \"id\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"newaffil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newaffil{${1:shorthand}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"affilTODO\"\n    },\n    {\n      \"name\": \"affilEQuSUSyd\"\n    },\n    {\n      \"name\": \"affilEQuSMacq\"\n    },\n    {\n      \"name\": \"affilUSydPhys\"\n    },\n    {\n      \"name\": \"affilIQC\"\n    },\n    {\n      \"name\": \"affilUWPhys\"\n    },\n    {\n      \"name\": \"affilUWAMath\"\n    },\n    {\n      \"name\": \"affilUWChem\"\n    },\n    {\n      \"name\": \"affilPI\"\n    },\n    {\n      \"name\": \"affilCIFAR\"\n    },\n    {\n      \"name\": \"affilCQuIC\"\n    },\n    {\n      \"name\": \"affilIBMTJW\"\n    },\n    {\n      \"name\": \"inlinecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinecomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"linecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linecomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"booloption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"booloption{${1:boolean name}}{${2:option name}}{${3:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"newnew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnew{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"algorithmautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lemmaautorefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citeneed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definelanguagealias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definelanguagealias{${1:alias}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/revquantum#c\": [\n      \"final\",\n      \"pretty\",\n      \"uselistings\",\n      \"nobibtexhacks\",\n      \"strict\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/revquantum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/revsymb4-2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"agt\"\n    },\n    {\n      \"name\": \"alt\"\n    },\n    {\n      \"name\": \"altprecsim\"\n    },\n    {\n      \"name\": \"altsuccsim\"\n    },\n    {\n      \"name\": \"Bigglb\"\n    },\n    {\n      \"name\": \"bigglb\"\n    },\n    {\n      \"name\": \"Biggrb\"\n    },\n    {\n      \"name\": \"biggrb\"\n    },\n    {\n      \"name\": \"Biglb\"\n    },\n    {\n      \"name\": \"biglb\"\n    },\n    {\n      \"name\": \"Bigrb\"\n    },\n    {\n      \"name\": \"bigrb\"\n    },\n    {\n      \"name\": \"dddot\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"loarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"openone\"\n    },\n    {\n      \"name\": \"overstar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overstar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"roarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensor{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"vereq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vereq{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rgltxdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"idxlayout\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"hypdoc\"\n    },\n    {\n      \"name\": \"cleveref\"\n    },\n    {\n      \"name\": \"doc\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"keyvaltable\"\n    },\n    {\n      \"name\": \"hologo\"\n    },\n    {\n      \"name\": \"showexpl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NiceDescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NiceDescribeMacro{${1:macro%cmd}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeMacro\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NiceDescribeMacro[${3:idx}]{${1:macro%cmd}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NiceDescribeEnv{${1:envname}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeEnv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NiceDescribeEnv[${3:idx}]{${1:envname}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NiceDescribeCounter{${1:counter}}{${2:qualifiers}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeCounter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NiceDescribeCounter[${3:idx}]{${1:counter}}{${2:qualifiers}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeKey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NiceDescribeKey{${1:keyname}}{${2:keyconfig}}\"\n      }\n    },\n    {\n      \"name\": \"NiceDescribeKey\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"NiceDescribeKey[${3:idx}]{${1:keyname}}{${2:keyconfig}}\"\n      }\n    },\n    {\n      \"name\": \"NewNiceDescription\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewNiceDescription{${1:type}}{${2:efmt}}{${3:afmt}}{${4:icmd}}\"\n      }\n    },\n    {\n      \"name\": \"SpecialOtherIndex\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SpecialOtherIndex{${1:type}}{${2:types}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pkgname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgname{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"pkgnames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgnames{${1:package1,package2,...}}\"\n      }\n    },\n    {\n      \"name\": \"cmarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"coarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\LTXinputExample,\\\\begin{LTXexample}\": [\n      \"morepreset=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ribbonproofs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etextools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"com\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"com{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"com\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"com[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\com,\\\\jus,\\\\startblock,\\\\finishblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jus{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"jus\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"jus[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\com,\\\\jus,\\\\startblock,\\\\finishblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"startblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startblock{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"startblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"startblock[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\com,\\\\jus,\\\\startblock,\\\\finishblock\",\n          \"\\\\startblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"finishblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"finishblock{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"finishblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"finishblock[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\com,\\\\jus,\\\\startblock,\\\\finishblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ribbonpagebreak\"\n    },\n    {\n      \"name\": \"continueblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"continueblock{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"continueblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"continueblock[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\continueblock\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moveribbons\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveribbons{${1:ribbon1,ribbon2,...}}\"\n      }\n    },\n    {\n      \"name\": \"swapribbons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"swapribbons{${1:name1,name2,...}}{${2:name'1,name'2,...}}\"\n      }\n    },\n    {\n      \"name\": \"moveboxes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveboxes{${1:box1,box2,...}}\"\n      }\n    },\n    {\n      \"name\": \"extendboxes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extendboxes{${1:box1,box2,...}}\"\n      }\n    },\n    {\n      \"name\": \"jusColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ribColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varribColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ribTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guideTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultStepHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultRowHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ribTextVOffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxTextVOffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxTextHOffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guideTextVOffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"roundingRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxRoundingRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadowHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadowColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zigzagHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zigzagLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistiness\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ribbonproof\"\n    },\n    {\n      \"name\": \"ribbonproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{ribbonproof}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{ribbonproof}\": [\n      \"extra height=${1:integer}\",\n      \"start ribbons={${1:ribbon1,ribbon2,...}}\",\n      \"start boxes={${1:box1,box2,...}}\",\n      \"draw grid\"\n    ],\n    \"\\\\com,\\\\jus,\\\\startblock,\\\\finishblock\": [\n      \"height=${1:integer}\",\n      \"finish ribbons={${1:name1,name2,...}}\",\n      \"start ribbons={${1:ribbon1,ribbon2,...}}\",\n      \"finish boxes={${1:name1,name2,...}}\",\n      \"start boxes={${1:box1,box2,...}}\",\n      \"extra left=${1:integer}\",\n      \"extra right=${1:integer}\"\n    ],\n    \"\\\\startblock\": [\n      \"fit ribbons={${1:name1,name2,...}}\",\n      \"fit boxes={${1:name1,name2,...}}\"\n    ],\n    \"\\\\continueblock\": [\n      \"height=${1:integer}\",\n      \"start ribbons={${1:ribbon1,ribbon2,...}}\",\n      \"start boxes={${1:box1,box2,...}}\",\n      \"jagged\",\n      \"repeat labels\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/richtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"eforms\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rtpara\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rtpara{${1:name%specialDef}}{${2:richtext paragraph%text}}\"\n      }\n    },\n    {\n      \"name\": \"rtpara\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rtpara[${3:options%keyvals}]{${1:name%specialDef}}{${2:richtext paragraph%text}}\",\n        \"keys\": [\n          \"\\\\rtpara,\\\\span,\\\\setDefaultStyle\",\n          \"\\\\rtpara\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"span\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"span{${1:options%keyvals}}{${2:richtext string%text}}\",\n        \"keys\": [\n          \"\\\\rtpara,\\\\span,\\\\setDefaultStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useRV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRV{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\useRV,\\\\useV,\\\\displayRV,\\\\displayV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useV{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\useRV,\\\\useV,\\\\displayRV,\\\\displayV\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spc\"\n    },\n    {\n      \"name\": \"br\"\n    },\n    {\n      \"name\": \"RV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RV{${1:rich value}}\"\n      }\n    },\n    {\n      \"name\": \"DS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DS{${1:default style}}\"\n      }\n    },\n    {\n      \"name\": \"useDefaultDS\"\n    },\n    {\n      \"name\": \"setDefaultStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDefaultStyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\rtpara,\\\\span,\\\\setDefaultStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"useDS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useDS{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\useDS\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useRVContent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useRVContent{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\useRVContent,\\\\useVContent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useVContent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useVContent{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\useRVContent,\\\\useVContent\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"displayRV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayRV{${1:name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"displayV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displayV{${1:name%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"contName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displayRtParaName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makePDFSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeTeXSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeTeXSpPrnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetRtFontKeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtpdfSPDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtpdfSPDefPrnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rvorvstring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rvorvstring{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"displayRtPara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"displayRtPara*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\useRV,\\\\useV,\\\\displayRV,\\\\displayV\": [\n      \"%rtpara\"\n    ],\n    \"\\\\useDS\": [\n      \"%rtdefaultstyle\"\n    ],\n    \"\\\\useRVContent,\\\\useVContent\": [\n      \"%rvvcontent\"\n    ],\n    \"\\\\rtpara,\\\\span,\\\\setDefaultStyle\": [\n      \"font=${1:font name}\",\n      \"size=${1:number}\",\n      \"raise=${1:number}\",\n      \"ulstyle=${1|none,ul,2ul,wul,2wul|}\",\n      \"style={${1:bold, italic, and/or strikeit}}\",\n      \"color=${1:rrggbb}\",\n      \"url={${1:URL}}\",\n      \"raw=${1:CSS2 markup}\"\n    ],\n    \"\\\\rtpara\": [\n      \"halign=${1|left,center,right,justify|}\",\n      \"valign=${1|top,middle,bottom|}\",\n      \"margleft=${1:number}\",\n      \"margright=${1:number}\",\n      \"indent=${1|none,first,hanging|}\",\n      \"indentby=${1:number}\",\n      \"margtop=${1:number}\",\n      \"margbottom=${1:number}\",\n      \"linespacing=${1|single,oneandhalf,double,exact|}\",\n      \"lineheight=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rigidnotation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewRigidNotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewRigidNotation{${1:name}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"SetConciseNotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetConciseNotation{${1:bool}}\"\n      }\n    },\n    {\n      \"name\": \"UnsetConciseNotation\"\n    },\n    {\n      \"name\": \"Tran\"\n    },\n    {\n      \"name\": \"Inv\"\n    },\n    {\n      \"name\": \"Herm\"\n    },\n    {\n      \"name\": \"Conj\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rit-fonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Ezhuthu\"\n    },\n    {\n      \"name\": \"Joy\"\n    },\n    {\n      \"name\": \"Karuna\"\n    },\n    {\n      \"name\": \"Keraleeyam\"\n    },\n    {\n      \"name\": \"Kutty\"\n    },\n    {\n      \"name\": \"Meera\"\n    },\n    {\n      \"name\": \"Panmana\"\n    },\n    {\n      \"name\": \"Rachana\"\n    },\n    {\n      \"name\": \"Sundar\"\n    },\n    {\n      \"name\": \"Uroob\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rit-fonts#c\": [\n      \"path=${1:file path}\",\n      \"extn=${1:extension}\",\n      \"RM=${1:font name}\",\n      \"SF=${1:font name}\",\n      \"ScaleRM=${1:factor}\",\n      \"ScaleSF=${1:factor}\",\n      \"ScaleDS=${1:factor}\",\n      \"ScaleHW=${1:factor}\",\n      \"osf\",\n      \"oldstyle\",\n      \"lf\",\n      \"lining\",\n      \"df={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rit-fonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rjlpshap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"arrayjob\"\n    },\n    {\n      \"name\": \"forloop\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"parshapelenout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parshapelenout{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"parshapearrlenout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parshapearrlenout{${1:array}}{${2:counter}}\"\n      }\n    },\n    {\n      \"name\": \"parshapeary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parshapeary{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"parshapearray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"parshapearray{${1:array}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"Parshapearray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Parshapearray{${1:array1}}{${2:array2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"parshapecollect\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rmannot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"eforms\"\n    },\n    {\n      \"name\": \"graphicxsp\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fp\",\n      \"if\": \"use3D\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AcroVer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AcroVer{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"AcroVer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AcroVer[${2:option%keyvals}]{${1:version}}\",\n        \"keys\": [\n          \"\\\\AcroVer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pathToSkins\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pathToSkins{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"saveNamedPath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveNamedPath{${1:name}}{${2:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"saveNamedPath\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"saveNamedPath[${3:mime type}]{${1:name}}{${2:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"defineRMPath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineRMPath{${1:cmd}}{${2:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"makePoster\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makePoster{${1:name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"makePoster\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"makePoster[${3:options%keyvals}]{${1:name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"defaultPoster\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultPoster{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setPosterProps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPosterProps{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setPosterProps\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rmAnnot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rmAnnot{${1:width}}{${2:height}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"rmAnnot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"rmAnnot[${4:options%keyvals}]{${1:width}}{${2:height}}{${3:name}}\",\n        \"keys\": [\n          \"\\\\rmAnnot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cntrlbrWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cntrlbrHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setWindowDimPos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setWindowDimPos{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setWindowDimPos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetWindowDimPos\"\n    },\n    {\n      \"name\": \"rmAnnot\",\n      \"if\": \"use3D\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rmAnnot{${1:width}}{${2:height}}{${3:name}}{3Dmodel}\"\n      }\n    },\n    {\n      \"name\": \"rmAnnot\",\n      \"if\": \"use3D\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"rmAnnot[${4:options%keyvals}]{${1:width}}{${2:height}}{${3:name}}{3Dmodel}\",\n        \"keys\": [\n          \"\\\\rmAnnot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setRmOptions3D\",\n      \"if\": \"use3D\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setRmOptions3D{${1:annot name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setRmOptions3D\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"AcrobatVer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appType{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"audCtrlHt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"audCtrlWd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FileStrmAudioPlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FileStrmVideoPlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getargsiii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getargsiii{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ifuseWinAcrobat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifVideoPlayerEx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmGetMetaData\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmGetSource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmGetVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmGetVideoState\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmIsLooping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmMute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmNextCuePoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmPause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmPlay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmPrevCuePoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmRewind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSeek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSeekCuePoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSetScaleMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSetStageColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmShowLoopButton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSkin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSkinAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSkinAutoHide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSkinColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmSource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmUseLocal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmVolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pathToPlayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pathToPlayers{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"PathToSkins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RefObjRm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RefObjRm{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"rmaName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmaNameP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmaUrlName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmaUrlNameP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmDC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmSkinPath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romanVer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useVideoPlayerPlus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useVideoPlayerX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useWinAcrobatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useWinAcrobattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VideoPlayerExfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VideoPlayerExtrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rmannot#c\": [\n      \"use3D\"\n    ],\n    \"\\\\AcroVer\": [\n      \"win=${1|32,64|}\",\n      \"mac\"\n    ],\n    \"\\\\setPosterProps\": [\n      \"color=${1:postscript color}\",\n      \"xPos=${1:number}\",\n      \"yPos=${1:number}\",\n      \"textColor=${1:postscript color}\",\n      \"relTextSize=${1:number}\",\n      \"textSize=${1:number}\",\n      \"textFont=${1:font name}\"\n    ],\n    \"\\\\rmAnnot\": [\n      \"name=${1:name}\",\n      \"enabled=${1|onclick,pageopen,pagevisible|}\",\n      \"deactivated=${1|onclick,pageclose,pageinvisible|}\",\n      \"windowed\",\n      \"url\",\n      \"borderwidth=${1|none,thin,medium,thick|}\",\n      \"poster=${1:name}\",\n      \"posternote=${1:text}\",\n      \"defaultposter\",\n      \"invisible\",\n      \"skin=${1|all,none|}\",\n      \"skinAutoHide\",\n      \"width=\",\n      \"height=\",\n      \"scale=${1:factor}\",\n      \"toolbar\",\n      \"modeltree\"\n    ],\n    \"\\\\setWindowDimPos\": [\n      \"width={${1:KV pairs}}\",\n      \"height={${1:KV pairs}}\",\n      \"position={${1:KV pairs}}\"\n    ],\n    \"\\\\setRmOptions3D\": [\n      \"3DOptions={${1:movie15 options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rmannot#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rmathbr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"*\"\n    },\n    {\n      \"name\": \"cdott\"\n    },\n    {\n      \"name\": \"nobr\"\n    },\n    {\n      \"name\": \"SetBreakableRel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBreakableRel{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetBreakableBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBreakableBin{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetBreakableInner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBreakableInner{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetOpenBracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOpenBracket{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetMathOperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMathOperator{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SetPunctuation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPunctuation{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"UnsetBrokenCmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnsetBrokenCmd{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"BrokenBinOff\"\n    },\n    {\n      \"name\": \"BrokenBinOn\"\n    },\n    {\n      \"name\": \"brokenbin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brokenbin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"brokeninner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brokeninner{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"brokenrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brokenrel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xDeclareBoolOptionX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xDeclareBoolOptionX{${1:key%plain}}{${2:func}}\"\n      }\n    },\n    {\n      \"name\": \"xDeclareChoiceOptionX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"xDeclareChoiceOptionX{${1:key%plain}}[${4:bin}]{${2:al}}[${5:dft}]{${3:func}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rmathbr#c\": [\n      \"scripts=${1|noactive,mathactive,active|}\",\n      \"run=${1|atload,atbegindocument,auto|}\",\n      \"cdottimes\",\n      \"brokencolon\",\n      \"brokenminus\",\n      \"brokenbin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rmathbr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/robotarm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"robotArm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotArm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"robotArm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"robotArm[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\robotArm#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"robotArmBaseLink\"\n    },\n    {\n      \"name\": \"robotArmBaseLink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"robotArmBaseLink[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\robotArmBaseLink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"robotArmLink\"\n    },\n    {\n      \"name\": \"robotArmLink\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"robotArmLink[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\robotArmLink#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"robotArmEndEffector\"\n    },\n    {\n      \"name\": \"robotArmEndEffector\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"robotArmEndEffector[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\robotArmEndEffector#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"robotarmset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotarmset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\robotarmset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"angleannotationcase\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\robotArm#c\": [\n      \"geometry={${1:keyvals}}\",\n      \"config={${1:keyvals}}\",\n      \"styles={${1:styles}}\"\n    ],\n    \"\\\\robotArmBaseLink#c\": [\n      \"height=${1:value}\",\n      \"width=${1:value}\",\n      \"world width=${1:value}\",\n      \"world height=${1:value}\",\n      \"draw base link/.code={${1:code}}\",\n      \"draw world/.code={${1:code}}\"\n    ],\n    \"\\\\robotArmLink#c\": [\n      \"width=${1:value}\",\n      \"length=${1:value}\",\n      \"joint radius=${1:value}\",\n      \"draw link/.code={${1:code}}\",\n      \"draw joint/.code={${1:code}}\"\n    ],\n    \"\\\\robotArmEndEffector#c\": [\n      \"width=${1:value}\",\n      \"length=${1:value}\",\n      \"joint radius=${1:value}\",\n      \"gripper radius=${1:value}\",\n      \"gripper opening angle=${1:degrees}\",\n      \"draw link/.code={${1:code}}\",\n      \"draw joint/.code={${1:code}}\",\n      \"draw end effector/.code={${1:code}}\"\n    ],\n    \"\\\\robotarmset#c\": [\n      \"geometry={${1:keyvals}}\",\n      \"config={${1:keyvals}}\",\n      \"styles={${1:styles}}\",\n      \"base link/height=${1:value}\",\n      \"base link/width=${1:value}\",\n      \"base link/world width=${1:value}\",\n      \"base link/world height=${1:value}\",\n      \"base link/draw base link/.code={${1:code}}\",\n      \"base link/draw world/.code={${1:code}}\",\n      \"link/width=${1:value}\",\n      \"link/length=${1:value}\",\n      \"link/joint radius=${1:value}\",\n      \"link/draw link/.code={${1:code}}\",\n      \"link/draw joint/.code={${1:code}}\",\n      \"end effector/width=${1:value}\",\n      \"end effector/length=${1:value}\",\n      \"end effector/joint radius=${1:value}\",\n      \"end effector/gripper radius=${1:value}\",\n      \"end effector/gripper opening angle=${1:degrees}\",\n      \"end effector/draw link/.code={${1:code}}\",\n      \"end effector/draw joint/.code={${1:code}}\",\n      \"end effector/draw end effector/.code={${1:code}}\"\n    ],\n    \"\\\\path#c,\\\\draw#c\": [\n      \"link style\",\n      \"world style\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"link style/.style={${1:TikZ keys}}\",\n      \"world style/.style={${1:TikZ keys}}\",\n      \"in link/.style={${1:TikZ keys}}\",\n      \"in base link/.style={${1:TikZ keys}}\",\n      \"in world/.style={${1:TikZ keys}}\",\n      \"in end effector/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/roboto-mono.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"robotomonoThin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotomonoThin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotomonoLight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotomonoLight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotomonoRegular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotomonoRegular{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotomonoMedium\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotomonoMedium{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotomonoBold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotomonoBold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotomono\"\n    },\n    {\n      \"name\": \"robotomonoregular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonomedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonothin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonolight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonobold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomonofamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/roboto-mono#c\": [\n      \"scale=${1:factor}\",\n      \"type1\",\n      \"medium\",\n      \"bold\",\n      \"black\",\n      \"thin\",\n      \"light\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/roboto-mono#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/roboto-serif.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"robotoserifBlack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifBlack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifBold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifBold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifLF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifLight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifLight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifMedium\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifMedium{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifOsF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifOsF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifRegular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifRegular{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifThin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifThin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifTLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifTLF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserifTOsF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoserifTOsF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoserif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifblack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifbold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifboldcondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifcondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoseriflf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoseriflight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifmedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifregular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoserifthin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoseriftlf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoseriftosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoseriffamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/roboto-serif#c\": [\n      \"type1\",\n      \"medium\",\n      \"bold\",\n      \"black\",\n      \"thin\",\n      \"light\",\n      \"regular\",\n      \"condensed\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/roboto-serif#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/roboto.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"robotoLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoLF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoTLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoTLF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoOsF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoOsF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoTOsF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoTOsF{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoThin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoThin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoLight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoLight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoRegular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoRegular{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoMedium\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoMedium{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoBold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoBold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"robotoBlack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robotoBlack{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"roboto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotocondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoboldcondensed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoslab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoregular\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotolight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotobold\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotolf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robototlf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robototosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotothin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotomedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoblack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotolgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoslablgr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotofamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robotoslabfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/roboto#c\": [\n      \"scale=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"type1\",\n      \"medium\",\n      \"bold\",\n      \"black\",\n      \"thin\",\n      \"light\",\n      \"regular\",\n      \"condensed\",\n      \"slab\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/roboto#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/robust-externalize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"xsimverb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xparse\"\n    },\n    {\n      \"name\": \"atveryend\"\n    },\n    {\n      \"name\": \"etl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addBeforePlaceholder*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addBeforePlaceholder*{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addBeforePlaceholder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addBeforePlaceholder{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addBeforePlaceholderNoImport*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addBeforePlaceholderNoImport*{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addBeforePlaceholderNoImport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addBeforePlaceholderNoImport{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addPlaceholdersToGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addPlaceholdersToGroup{${1:name group}}{${2:placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"addToPlaceholder*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToPlaceholder*{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addToPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToPlaceholder{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addToPlaceholderNoImport*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToPlaceholderNoImport*{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"addToPlaceholderNoImport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addToPlaceholderNoImport{${1:placeholder%definition}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"appendBeforeGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendBeforeGroupPlaceholders{${1:name group}}{${2:name group to append}}\"\n      }\n    },\n    {\n      \"name\": \"appendGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendGroupPlaceholders{${1:name group}}{${2:name group to append}}\"\n      }\n    },\n    {\n      \"name\": \"boxRobExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cacheEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cacheEnvironment[${3:delimiters}]{${1:envname}}{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"cacheEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cacheEnvironment{${1:envname}}{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"cacheMe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cacheMe[${2:preset style}]{${1:content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"cacheMe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cacheMe{${1:content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"cacheMeCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cacheMeCode[${2:preset style}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"cacheMeCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cacheMeCode{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"cacheTikz\"\n    },\n    {\n      \"name\": \"cacheTikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cacheTikz[${1:preset for TikZ}]\"\n      }\n    },\n    {\n      \"name\": \"cacheTikz\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cacheTikz[${1:preset for TikZ}][${2:preset for TikZpicture}]\"\n      }\n    },\n    {\n      \"name\": \"cacheTikz\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"cacheTikz[${1:preset for TikZ}][${2:preset for TikZpicture}][${3:delimiters}]\"\n      }\n    },\n    {\n      \"name\": \"clearGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearGroupPlaceholders{${1:name group}}\"\n      }\n    },\n    {\n      \"name\": \"clearImportedPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clearImportedPlaceholders{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"configIfMacroPresent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"configIfMacroPresent{${1:macro}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"copyGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyGroupPlaceholders{${1:name group}}{${2:name group to copy}}\"\n      }\n    },\n    {\n      \"name\": \"copyPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"copyPlaceholder{${1:new placeholder%definition}}{${2:old placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"defAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"defAutoForward{${1:cmd}}[${3:arg spec}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"defAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"defAutoForward{${1:cmd}}[${3:arg spec}]{${2:def}}[${4:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"defAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defAutoForward{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"defAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"defAutoForward{${1:cmd}}{${2:def}}[${3:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"evalPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evalPlaceholder{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"evalPlaceholderInplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evalPlaceholderInplace{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"evalPlaceholderNoReplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"evalPlaceholderNoReplacement{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"firstPlaceholdersInCompilationCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstPlaceholdersInCompilationCommand{${1:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"firstPlaceholdersInTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstPlaceholdersInTemplate{${1:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genericAutoForward{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"genericAutoForward{${1:string}}[${3:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"genericAutoForward[${3:preset}]{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"genericAutoForward[${3:preset}]{${1:string}}[${4:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genericAutoForward*{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"genericAutoForward*{${1:string}}[${3:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"genericAutoForward*[${3:preset}]{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForward*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"genericAutoForward*[${3:preset}]{${1:string}}[${4:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genericAutoForwardStringMatch{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"genericAutoForwardStringMatch{${1:string}}[${3:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"genericAutoForwardStringMatch[${3:preset}]{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"genericAutoForwardStringMatch[${3:preset}]{${1:string}}[${4:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"genericAutoForwardStringMatch*{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"genericAutoForwardStringMatch*{${1:string}}[${3:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"genericAutoForwardStringMatch*[${3:preset}]{${1:string}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"genericAutoForwardStringMatch*\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"genericAutoForwardStringMatch*[${3:preset}]{${1:string}}[${4:add. style}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getPlaceholder[${2:new placeholder%definition}]{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getPlaceholder{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderInResult\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getPlaceholderInResult[${2:new placeholder%definition}]{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderInResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getPlaceholderInResult{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderInResultReplaceFromList*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getPlaceholderInResultReplaceFromList*[${3:new placeholder%definition}]{${1:name placeholder%definition}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderInResultReplaceFromList\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getPlaceholderInResultReplaceFromList[${3:new placeholder%definition}]{${1:name placeholder%definition}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderInResultReplaceFromList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getPlaceholderInResultReplaceFromList{${1:name placeholder%definition}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"getPlaceholderNoReplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getPlaceholderNoReplacement{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"importAllPlaceholders\"\n    },\n    {\n      \"name\": \"importAllPlaceholders\"\n    },\n    {\n      \"name\": \"importPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importPlaceholder{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"importPlaceholderFirst\"\n    },\n    {\n      \"name\": \"importPlaceholdersFromGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importPlaceholdersFromGroup{${1:name group}}\"\n      }\n    },\n    {\n      \"name\": \"importPlaceholdersFromGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importPlaceholdersFromGroup{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}[]\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}[${5:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}[${4:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newcommandAutoForward{${1:cmd}}{${2:def}}[${3:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"NewDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"NewExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"newGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newGroupPlaceholders{${1:name group}}\"\n      }\n    },\n    {\n      \"name\": \"onlyPlaceholdersInCompilationCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyPlaceholdersInCompilationCommand{${1:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"onlyPlaceholdersInTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyPlaceholdersInTemplate{${1:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderDoubleNumberHashesInplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholderDoubleNumberHashesInplace{${1:placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderFromContent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderFromContent{${1:name placeholder%definition}}{${2:content placeholder%text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderFromFileContent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderFromFileContent{${1:name placeholder%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderFromString*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholderFromString*{${1:latex3 string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderFromString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholderFromString{${1:latex3 string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderHalveNumberHashesInplace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholderHalveNumberHashesInplace{${1:placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderPathFromContent\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"placeholderPathFromContent{${1:name placeholder%definition}}[${3:suffix}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderPathFromContent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderPathFromContent{${1:name placeholder%definition}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderPathFromFilename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderPathFromFilename{${1:name placeholder%definition}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderReplaceInplace\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeholderReplaceInplace{${1:placeholder%definition}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderReplaceInplaceEval\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"placeholderReplaceInplaceEval{${1:placeholder%definition}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"printAllPlaceholders\"\n    },\n    {\n      \"name\": \"printAllPlaceholdersExceptDefaults\"\n    },\n    {\n      \"name\": \"printAllPlaceholdersExceptDefaults*\"\n    },\n    {\n      \"name\": \"printAllRegisteredGroups\"\n    },\n    {\n      \"name\": \"printAllRegisteredGroupsAndPlaceholders\"\n    },\n    {\n      \"name\": \"printAllRegisteredGroupsAndPlaceholders*\"\n    },\n    {\n      \"name\": \"printGroupPlaceholders*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printGroupPlaceholders*{${1:name group}}\"\n      }\n    },\n    {\n      \"name\": \"printGroupPlaceholders\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printGroupPlaceholders{${1:name group}}\"\n      }\n    },\n    {\n      \"name\": \"printImportedPlaceholders\"\n    },\n    {\n      \"name\": \"printImportedPlaceholdersExceptDefaults\"\n    },\n    {\n      \"name\": \"printPlaceholder*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPlaceholder*{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"printPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPlaceholder{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"printPlaceholderNoReplacement*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPlaceholderNoReplacement*{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"printPlaceholderNoReplacement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPlaceholderNoReplacement{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}[]\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}[${5:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}[${4:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"providecommandAutoForward{${1:cmd}}{${2:def}}[${3:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ProvideDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ProvideExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"removeImportedPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removeImportedPlaceholder{${1:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"removePlaceholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removePlaceholder{${1:placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"removePlaceholderFromGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"removePlaceholderFromGroup{${1:name group}}{${2:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"removePlaceholdersFromGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"removePlaceholdersFromGroup{${1:name group}}{${2:list of placeholders%definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[][]{}[]\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}[${3:args}][${4:default}]{${2:def}}[${5:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}[${3:args}]{${2:def}}[${4:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"renewcommandAutoForward{${1:cmd}}{${2:def}}[${3:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"RenewDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"RenewExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}[${4:add. style}]{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"RenewExpandableDocumentCommandAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewExpandableDocumentCommandAutoForward{${1:cmd}}{${2:xargs}}{${3:def}}\"\n      }\n    },\n    {\n      \"name\": \"res\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"res{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"rescanPlaceholderInVariableNoReplacement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rescanPlaceholderInVariableNoReplacement{${1:name macro}}{${2:name placeholder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"robExtAddCachePath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtAddCachePath{${1:path%file}}\"\n      }\n    },\n    {\n      \"name\": \"robExtAddCachePathAndName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtAddCachePathAndName{${1:path%file}}\"\n      }\n    },\n    {\n      \"name\": \"robExtCacheCommand\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"robExtCacheCommand[${3:delimiters}]{${1:csname}}[${4:xparse signature}]{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"robExtCacheCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"robExtCacheCommand[${3:delimiters}]{${1:csname}}{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"robExtCacheCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"robExtCacheCommand{${1:csname}}[${3:xparse signature}]{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"robExtCacheCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"robExtCacheCommand{${1:csname}}{${2:preset options}}\"\n      }\n    },\n    {\n      \"name\": \"robExtConfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtConfigure{${1:preset style}}\"\n      }\n    },\n    {\n      \"name\": \"robExtDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtDisableTikzpictureOverwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtExternalizeAllTikzpictures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtGetPlaceholderInResultReplaceFromList*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"robExtGetPlaceholderInResultReplaceFromList*{${1:name placeholder%definition}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"robExtHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtPathToInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtPrefixFilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setPlaceholder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setPlaceholder{${1:name placeholder%definition}}{${2:content placeholder%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPlaceholderFromString*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPlaceholderFromString*{${1:latex3 string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setPlaceholderFromString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setPlaceholderFromString{${1:latex3 string%definition}}\"\n      }\n    },\n    {\n      \"name\": \"setPlaceholderRec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setPlaceholderRec{${1:name placeholder%definition}}{${2:content placeholder%text}}\"\n      }\n    },\n    {\n      \"name\": \"setPlaceholderRecReplaceFromList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setPlaceholderRecReplaceFromList{${1:list of placeholders%definition}}{${2:new placeholder%definition}}{${3:content}}\"\n      }\n    },\n    {\n      \"name\": \"writeRobExt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtMv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robExtCp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyFileToCache\"\n    },\n    {\n      \"name\": \"definecolorAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolorAutoForward{${1:color}}{${2:model}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"definecolorAutoForward{${1:color}}{${2:model}}{${3:value}}[${4:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"colorletAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorletAutoForward{${1:color}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"colorletAutoForward\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"colorletAutoForward{${1:color}}{${2:value}}[${3:add. style}]\"\n      }\n    },\n    {\n      \"name\": \"runHereAndInPreambleOfCachedFiles\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runHereAndInPreambleOfCachedFiles{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"runHereAndInPreambleOfCachedFiles\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runHereAndInPreambleOfCachedFiles[${2:preset}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"lenToCm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lenToCm{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lenToCm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lenToCm[${2:unit}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"robExtGpgetvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtGpgetvar{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"robExtGpgetvarNb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtGpgetvarNb{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"robExtGpgetvarNb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"robExtGpgetvarNb[${2:text}]{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"robExtGpgetvarNb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"robExtGpgetvarNb*{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"robExtGpgetvarNb*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"robExtGpgetvarNb*[${2:text}]{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsWeb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicsWeb{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsWeb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicsWeb[${2:graphics options}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsWeb<options>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicsWeb<options>{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicsWeb<options>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicsWeb<options>[${2:graphics options}]{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"doNotCacheTikz\"\n    },\n    {\n      \"name\": \"cacheTikzit\"\n    },\n    {\n      \"name\": \"cacheTikzit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cacheTikzit[${1:preset}]\"\n      }\n    },\n    {\n      \"name\": \"cacheTikzitWithStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cacheTikzitWithStyle{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cacheTikzitWithStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cacheTikzitWithStyle[${2:preset}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzfig{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzfig<options>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzfig<options>{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderRemoveSpacesUntil\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderRemoveSpacesUntil{${1:placeholder}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderRemoveSpacesUntil\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"placeholderRemoveSpacesUntil{${1:placeholder}}[${3:number}]{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderPrependAllLines\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"placeholderPrependAllLines{${1:placeholder}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholderRemoveLeadingSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholderRemoveLeadingSpaces{${1:placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"lenToCmNoUnit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lenToCmNoUnit{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"lenToCmNoUnit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lenToCmNoUnit[${2:unit}]{${1:length}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CacheMe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preset style}}\"\n      }\n    },\n    {\n      \"name\": \"CacheMeCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preset style}}\"\n      }\n    },\n    {\n      \"name\": \"CacheMeNoContent\"\n    },\n    {\n      \"name\": \"PlaceholderFromCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderFromCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:style}]{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderFromCode\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderFromCode\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:style}]{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderPathFromCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderPathFromCode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:suffix}]{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderPathFromCode\",\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"PlaceholderPathFromCode\",\n      \"arg\": {\n        \"format\": \"*[]{}\",\n        \"snippet\": \"*[${2:suffix}]{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"SetPlaceholderCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name placeholder}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpictureC\"\n    },\n    {\n      \"name\": \"tikzpictureC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tikzpictureC\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:preset style}>\"\n      }\n    },\n    {\n      \"name\": \"tikzpictureC\",\n      \"arg\": {\n        \"format\": \"<>[]\",\n        \"snippet\": \"<${2:preset style}>[${1:options}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/robustglossary.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"glopageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glopageref{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"glostring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thegloctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxgloctr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/robustindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gobblepageref\"\n    },\n    {\n      \"name\": \"indexincontents\"\n    },\n    {\n      \"name\": \"setindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindex{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sindex[${2:tag}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"indexcapstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcapstyle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"altsort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capitalsinindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalsinindex{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"cndhyprndxwrng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"encpageref{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"extraheaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"findEndPageRange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findEndPageRange{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"findencap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findencap{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"gobbleindpageref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletillnine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indexcapitalhead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexcapitalhead{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"indexpreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indnr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indnr{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"indpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indpageref{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"indstring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmptonine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newindex{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"robustchoice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"robustcutpoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theindexctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxindctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultindctr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"untilrobustcutpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"untilrobustcutpoint{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"wrapindpageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapindpageref{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"wrappageref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrappageref{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/robustindex#c\": [\n      \"multind\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/robustindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rojud.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"jAB\"\n    },\n    {\n      \"name\": \"jAG\"\n    },\n    {\n      \"name\": \"jAR\"\n    },\n    {\n      \"name\": \"jBC\"\n    },\n    {\n      \"name\": \"jBH\"\n    },\n    {\n      \"name\": \"jBI\"\n    },\n    {\n      \"name\": \"jBN\"\n    },\n    {\n      \"name\": \"jBR\"\n    },\n    {\n      \"name\": \"jBT\"\n    },\n    {\n      \"name\": \"jBV\"\n    },\n    {\n      \"name\": \"jBZ\"\n    },\n    {\n      \"name\": \"jCJ\"\n    },\n    {\n      \"name\": \"jCL\"\n    },\n    {\n      \"name\": \"jCS\"\n    },\n    {\n      \"name\": \"jCT\"\n    },\n    {\n      \"name\": \"jCV\"\n    },\n    {\n      \"name\": \"jDB\"\n    },\n    {\n      \"name\": \"jDJ\"\n    },\n    {\n      \"name\": \"jGJ\"\n    },\n    {\n      \"name\": \"jGL\"\n    },\n    {\n      \"name\": \"jGR\"\n    },\n    {\n      \"name\": \"jHD\"\n    },\n    {\n      \"name\": \"jHR\"\n    },\n    {\n      \"name\": \"jIF\"\n    },\n    {\n      \"name\": \"jIL\"\n    },\n    {\n      \"name\": \"jIS\"\n    },\n    {\n      \"name\": \"jMH\"\n    },\n    {\n      \"name\": \"jMM\"\n    },\n    {\n      \"name\": \"jMS\"\n    },\n    {\n      \"name\": \"jNT\"\n    },\n    {\n      \"name\": \"jOT\"\n    },\n    {\n      \"name\": \"jPH\"\n    },\n    {\n      \"name\": \"jSB\"\n    },\n    {\n      \"name\": \"jSJ\"\n    },\n    {\n      \"name\": \"jSM\"\n    },\n    {\n      \"name\": \"jSV\"\n    },\n    {\n      \"name\": \"jTL\"\n    },\n    {\n      \"name\": \"jTM\"\n    },\n    {\n      \"name\": \"jTR\"\n    },\n    {\n      \"name\": \"jVL\"\n    },\n    {\n      \"name\": \"jVN\"\n    },\n    {\n      \"name\": \"jVS\"\n    },\n    {\n      \"name\": \"paintt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paintt{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/romanbar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Romanbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romanbar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"romannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romannum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Romannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumeric\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumeric{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/romande.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"altstyle\"\n    },\n    {\n      \"name\": \"textalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/romande#c\": [\n      \"alt\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/romande#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/romannum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stdclsdv\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Romannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Romannum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"romannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"romannum{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rorlink.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibrarysvg.path\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rorlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rorlink{${1:ror-link%URL}}\"\n      }\n    },\n    {\n      \"name\": \"rorlink\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rorlink[${2:option%keyvals}]{${1:ror-link%URL}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rorlink#c,\\\\rorlink\": [\n      \"blackwhite\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rorlink#c,\\\\rorlink\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rotating.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"turnbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"turnbox{${1:angle}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"rotFPtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotFPbot\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sidewaystable\"\n    },\n    {\n      \"name\": \"sidewaystable*\"\n    },\n    {\n      \"name\": \"sidewaysfigure\"\n    },\n    {\n      \"name\": \"sidewaysfigure*\"\n    },\n    {\n      \"name\": \"sideways\"\n    },\n    {\n      \"name\": \"turn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:angle}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/rotating#c\": [\n      \"clockwise\",\n      \"counterclockwise\",\n      \"anticlockwise\",\n      \"figuresleft\",\n      \"figuresright\",\n      \"quiet\",\n      \"log\",\n      \"chatter\",\n      \"unknownkeysallowed\",\n      \"draft\",\n      \"final\",\n      \"hiresbb\",\n      \"demo\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"debugshow\",\n      \"hiderotate\",\n      \"hidescale\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rotating#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rotchiffre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"EdefRot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdefRot{${1:type}}{${2:cmd}}{${3:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rotpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rotboxpages\"\n    },\n    {\n      \"name\": \"endrotboxpages\"\n    },\n    {\n      \"name\": \"rotboxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotboxwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rotboxAtRotationHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotboxAtRotationHook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"rotboxAtShippingHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotboxAtShippingHook{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rotunda.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textrtnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrtnd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rtndfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/roundbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"roundbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roundbox{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rpgicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3draw\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"die\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"die{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"die\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"die{${1:shape}}[${3:options%keyvals}]{${2:integer}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"die\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"die[${3:style}]{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"die\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"die[${3:style}]{${1:shape}}[${4:options%keyvals}]{${2:integer}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ability\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ability{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"ability\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ability{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ability\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ability[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"ability\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ability[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"saving\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saving{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"saving\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"saving{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"saving\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"saving[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"saving\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"saving[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"spell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spell{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"spell\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"spell{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"spellschool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellschool{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"spellschool\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"spellschool{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"spellschool\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spellschool[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"spellschool\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"spellschool[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"damage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"damage{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"damage\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"damage{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"attack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"attack{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"attack\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"attack{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"condition{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"condition\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"condition{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsUseIcon{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RPGIconsUseIcon[${2:options%keyvals}]{${1:shape}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"RPGIconsUseIcon[${2:options%keyvals}][${3:integer}]{${1:shape}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsUseIcon*{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RPGIconsUseIcon*[${2:options%keyvals}]{${1:shape}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RPGIconsUseIcon*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"RPGIconsUseIcon*[${2:options%keyvals}][${3:integer}]{${1:shape}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RPGIconsDie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RPGIconsDie{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsDie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"RPGIconsDie{${1:shape}}[${3:options%keyvals}]{${2:integer}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsDie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RPGIconsDie[${3:style}]{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsDie\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"RPGIconsDie[${3:style}]{${1:shape}}[${4:options%keyvals}]{${2:integer}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RPGIconsAbility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsAbility{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsAbility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsAbility{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsAbility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RPGIconsAbility[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsAbility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"RPGIconsAbility[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RPGIconsSaving\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsSaving{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsSaving\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsSaving{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsSaving\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RPGIconsSaving[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsSaving\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"RPGIconsSaving[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsSpell{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsSpell{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpellschool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsSpellschool{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpellschool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsSpellschool{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpellschool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RPGIconsSpellschool[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsSpellschool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"RPGIconsSpellschool[${2:style}]{${1:shape}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RPGIconsDamage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsDamage{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsDamage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsDamage{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsAttack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsAttack{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsAttack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsAttack{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"RPGIconsCondition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsCondition{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsCondition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"RPGIconsCondition{${1:shape}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"rpgiconsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\",\n          \"\\\\rpgiconsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"roll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"roll{${1:roll syntax}}\"\n      }\n    },\n    {\n      \"name\": \"RPGIconsRoll\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPGIconsRoll{${1:roll syntax}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdie\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rpgiconsdie{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdie\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"rpgiconsdie{${1:shape}}[${3:options%keyvals}]{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdie\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rpgiconsdie[${3:style}]{${1:shape}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdie\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"rpgiconsdie[${3:style}]{${1:shape}}[${4:options%keyvals}]{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsability\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsability{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsability\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconsability{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsability\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rpgiconsability[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsability\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rpgiconsability[${2:style}]{${1:shape}}[${3:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconssaving\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconssaving{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconssaving\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconssaving{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconssaving\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rpgiconssaving[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconssaving\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rpgiconssaving[${2:style}]{${1:shape}}[${3:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspell\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsspell{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspell\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconsspell{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspellschool\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsspellschool{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspellschool\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconsspellschool{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspellschool\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rpgiconsspellschool[${2:style}]{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsspellschool\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rpgiconsspellschool[${2:style}]{${1:shape}}[${3:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdamage\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsdamage{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsdamage\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconsdamage{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsattack\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsattack{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsattack\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconsattack{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rpgiconscondition\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconscondition{${1:shape}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconscondition\",\n      \"if\": \"pgf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rpgiconscondition{${1:shape}}[${2:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"provideprotectedrpgicon\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"provideprotectedrpgicon{${1:command}}{${2:shape}}{${3:box name}}\"\n      }\n    },\n    {\n      \"name\": \"provideprotectedrpgicon\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"provideprotectedrpgicon{${1:command}}{${2:shape}}[${4:options}]{${3:box name}}\"\n      }\n    },\n    {\n      \"name\": \"provideprotectedrpgicon\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"provideprotectedrpgicon{${1:command}}[${4:style}]{${2:shape}}{${3:box name}}\"\n      }\n    },\n    {\n      \"name\": \"provideprotectedrpgicon\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"provideprotectedrpgicon{${1:command}}[${4:style}]{${2:shape}}[${5:options}]{${3:box name}}\"\n      }\n    },\n    {\n      \"name\": \"useprotectedrpgicon\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useprotectedrpgicon{${1:box name}}\"\n      }\n    },\n    {\n      \"name\": \"rpgiconsroll\",\n      \"if\": \"pgf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rpgiconsroll{${1:roll syntax}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rpgicons#c\": [\n      \"l3\",\n      \"pgf\",\n      \"compat\",\n      \"opacity\",\n      \"pics\"\n    ],\n    \"\\\\die#c,\\\\ability#c,\\\\saving#c,\\\\spell#c,\\\\spellschool#c,\\\\damage#c,\\\\attack#c,\\\\condition#c,\\\\RPGIconsUseIcon#c,\\\\RPGIconsUseIcon*#c,\\\\RPGIconsDie#c,\\\\RPGIconsAbility#c,\\\\RPGIconsSaving#c,\\\\RPGIconsSpell#c,\\\\RPGIconsSpellschool#c,\\\\RPGIconsDamage#c,\\\\RPGIconsAttack#c,\\\\RPGIconsCondition#c,\\\\rpgiconsset#c\": [\n      \"frame=${1|ability,damage,saving,spellschool|}\",\n      \"stroke=\",\n      \"fill=\",\n      \"text=\",\n      \"color=\",\n      \"background=\",\n      \"stroke opacity=${1:factor}\",\n      \"fill opacity=${1:factor}\",\n      \"text opacity=${1:factor}\",\n      \"opacity=${1:factor}\",\n      \"background opacity=${1:factor}\",\n      \"line width=\",\n      \"scale=${1:factor}\",\n      \"scale inner=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"accessible\",\n      \"accessible=${1|basic,full,false|}\",\n      \"every die={${1:options}}\",\n      \"every ability={${1:options}}\",\n      \"every saving={${1:options}}\",\n      \"every spell={${1:options}}\",\n      \"every spellschool={${1:options}}\",\n      \"every damage={${1:options}}\",\n      \"every attack={${1:options}}\",\n      \"every condition={${1:options}}\",\n      \"every ${1:shape}={${2:options}}\",\n      \"before sep=\",\n      \"after sep=\",\n      \"baseline=\"\n    ],\n    \"\\\\rpgiconsset#c\": [\n      \"roll syntax={${1:syntax}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rpgicons#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rsfso.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rsfso#c\": [\n      \"scaled=${1:factor}\",\n      \"scr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rsfso#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rsphrase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rsnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rsnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rsnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rsnumber[${2:text}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rsphrase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rsphrase{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rsphrase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rsphrase[${2:text}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"iflanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguage{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/rsphrase#c\": [\n      \"strict\",\n      \"adapted\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/rsphrase#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rterface.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Rtilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rcmd{${1:R command%definition}}\"\n      }\n    },\n    {\n      \"name\": \"Rvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rvalue{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rvalue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rvalue[${2:sig figs}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rvalue*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rvalue*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rvalue*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rvalue*[${2:sig figs}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rtable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rtable{${1:col1,col2,...%definition}}{${2:number of rows}}\"\n      }\n    },\n    {\n      \"name\": \"Rset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rset{${1:variable}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Rset[${3:sig figs}]{${1:variable}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rset*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rset*{${1:variable}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rset*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Rset*[${3:sig figs}]{${1:variable}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"Rcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rcode{${1:R code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rubikcube.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"forarray\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Blb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Blt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cubiedx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cubiedx{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Cubiedy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cubiedy{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Dlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dlm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawCubieLD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DrawCubieLD{${1:Xcolor}}{${2:Ycolor}}{${3:Zcolor}}\"\n      }\n    },\n    {\n      \"name\": \"DrawCubieLU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DrawCubieLU{${1:Xcolor}}{${2:Ycolor}}{${3:Zcolor}}\"\n      }\n    },\n    {\n      \"name\": \"DrawCubieRD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DrawCubieRD{${1:Xcolor}}{${2:Ycolor}}{${3:Zcolor}}\"\n      }\n    },\n    {\n      \"name\": \"DrawCubieRU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DrawCubieRU{${1:Xcolor}}{${2:Ycolor}}{${3:Zcolor}}\"\n      }\n    },\n    {\n      \"name\": \"DrawNCubeAll\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DrawNCubeAll{${1:integer}}{${2:Xcolor}}{${3:Ycolor}}{${4:Zcolor}}\"\n      }\n    },\n    {\n      \"name\": \"DrawNotationBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCube\"\n    },\n    {\n      \"name\": \"DrawRubikCubeF\"\n    },\n    {\n      \"name\": \"DrawRubikCubeFrontFace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeLD\"\n    },\n    {\n      \"name\": \"DrawRubikCubeLU\"\n    },\n    {\n      \"name\": \"DrawRubikCubeRD\"\n    },\n    {\n      \"name\": \"DrawRubikCubeRU\"\n    },\n    {\n      \"name\": \"DrawRubikCubeSF\"\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarBD{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBDLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBDRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarBL{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBLLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBLLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarBR{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBRRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBRRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarBU{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBULU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarBURU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarDB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDBLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDBRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarDF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDFLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarDFRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarFD{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFDLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFDRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarFL{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFLRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFLRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarFR{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFRLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFRLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarFU{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFULD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarFURD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarLB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLBLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLBLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarLF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLFRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarLFRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarRB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRBRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRBRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarRF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRFLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarRFLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarUB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUBLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUBRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawRubikCubeSidebarUF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUFLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikCubeSidebarUFRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceBack\"\n    },\n    {\n      \"name\": \"DrawRubikFaceBackSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceBS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceDown\"\n    },\n    {\n      \"name\": \"DrawRubikFaceDownSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceFront\"\n    },\n    {\n      \"name\": \"DrawRubikFaceFrontSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceFS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceLeft\"\n    },\n    {\n      \"name\": \"DrawRubikFaceLeftSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceRight\"\n    },\n    {\n      \"name\": \"DrawRubikFaceRightSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFaceUp\"\n    },\n    {\n      \"name\": \"DrawRubikFaceUpSide\"\n    },\n    {\n      \"name\": \"DrawRubikFaceUS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawRubikFlatBack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawRubikFlatBack{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikFlatDown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawRubikFlatDown{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikFlatFront\"\n    },\n    {\n      \"name\": \"DrawRubikFlatLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawRubikFlatLeft{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikFlatRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawRubikFlatRight{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawRubikFlatUp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawRubikFlatUp{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"Flb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Flm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Flt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Llb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Llm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Llt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoSidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoSidebar{${1:color-code}}\"\n      }\n    },\n    {\n      \"name\": \"Rlb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rlm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rr{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"rrB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrBwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrDwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrEp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrFwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rrh{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"rrhB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhBwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhDwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhEp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhFwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhLwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhMUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhRwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhSup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhTUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhUwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrhzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrLwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrMUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrRwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrSup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrTUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrUwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rryp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubik\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rubik{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"RubikB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikBwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikcube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubikcube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCubeGrey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikCubeGreyAll\"\n    },\n    {\n      \"name\": \"RubikCubeGreyWB\"\n    },\n    {\n      \"name\": \"RubikCubeGreyWY\"\n    },\n    {\n      \"name\": \"RubikCubeSolved\"\n    },\n    {\n      \"name\": \"RubikCubeSolvedWB\"\n    },\n    {\n      \"name\": \"RubikCubeSolvedWY\"\n    },\n    {\n      \"name\": \"RubikCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikDwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikEp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFaceBack\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceBack{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceBackAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceBackAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceDown{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceDownAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceDownAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceFront\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceFront{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceFrontAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceFrontAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceLeft{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceLeftAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceLeftAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceRight{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceRightAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceRightAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"RubikFaceUp{${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}{${8:clr8}}{${9:clr9}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFaceUpAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikFaceUpAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikFap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikFwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubiklp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikLwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikMUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikRwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSidebarLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikSidebarLength{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSidebarSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikSidebarSep{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSidebarWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikSidebarWidth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSliceBottomL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceBottomL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceBottomR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceBottomR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceEquatorL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceEquatorL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceEquatorR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceEquatorR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceMiddleL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceMiddleL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceMiddleR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceMiddleR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceTopL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceTopL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSliceTopR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSliceTopR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}{${5:color5}}{${6:color6}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSolvedConfig\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"RubikSolvedConfig{${1:X+color}}{${2:X-color}}{${3:Y+color}}{${4:Y-color}}{${5:Z+color}}{${6:Z-color}}\"\n      }\n    },\n    {\n      \"name\": \"RubikSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikSup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikTUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubiku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RubikUwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubiky\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rubikzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SequenceBraceA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceBraceA{${1:name}}{${2:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceBraceAF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceBraceAF{${1:name}}{${2:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceBraceB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceBraceB{${1:name}}{${2:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceBraceBF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SequenceBraceBF{${1:name}}{${2:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SequenceInfo\"\n    },\n    {\n      \"name\": \"SequenceLong\"\n    },\n    {\n      \"name\": \"SequenceName\"\n    },\n    {\n      \"name\": \"SequenceShort\"\n    },\n    {\n      \"name\": \"ShowCube\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShowCube{${1:width}}{${2:scale}}{${3:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ShowCubeF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShowCubeF{${1:width}}{${2:scale}}{${3:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSequence\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShowSequence{${1:separator}}{${2:font code}}{${3:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSequenceF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShowSequenceF{${1:separator}}{${2:font code}}{${3:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSequencef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ShowSequencef{${1:separator}}{${2:font code}}{${3:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SquareB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareBwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareDwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareEp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareFwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareLwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareMBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareMF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareMFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareMp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareRwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareTB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareTBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquareUwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textCubieLD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"textCubieLD{${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"textCubieLU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"textCubieLU{${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"textCubieRD\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"textCubieRD{${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"textCubieRU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"textCubieRU{${1:color1}}{${2:color2}}{${3:color3}}\"\n      }\n    },\n    {\n      \"name\": \"textRubik\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textRubik{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"textRubikB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikBwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikDwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikEp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikFwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubiklp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikLwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikML\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikMUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikRwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikSup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikTUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubiku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUmp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikUwp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubiky\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRubikzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ulb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ulm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"x\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rubikpatterns.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Anaconda\"\n    },\n    {\n      \"name\": \"BlackMamba\"\n    },\n    {\n      \"name\": \"CheckerboardsSix\"\n    },\n    {\n      \"name\": \"CheckerboardsThree\"\n    },\n    {\n      \"name\": \"ChristmasCross\"\n    },\n    {\n      \"name\": \"CubeInCube\"\n    },\n    {\n      \"name\": \"CubeInCubeInCube\"\n    },\n    {\n      \"name\": \"EdgeHexagonThree\"\n    },\n    {\n      \"name\": \"EdgeHexagonTwo\"\n    },\n    {\n      \"name\": \"ExchangedChickenFeet\"\n    },\n    {\n      \"name\": \"ExchangedDuckFeet\"\n    },\n    {\n      \"name\": \"ExchangedPeaks\"\n    },\n    {\n      \"name\": \"ExchangedRings\"\n    },\n    {\n      \"name\": \"FemaleBoa\"\n    },\n    {\n      \"name\": \"FemaleRattlesnake\"\n    },\n    {\n      \"name\": \"FourSpot\"\n    },\n    {\n      \"name\": \"FourTwistedPeaks\"\n    },\n    {\n      \"name\": \"GreenMamba\"\n    },\n    {\n      \"name\": \"MaleBoa\"\n    },\n    {\n      \"name\": \"MaleRattlesnake\"\n    },\n    {\n      \"name\": \"OrthogonalBars\"\n    },\n    {\n      \"name\": \"PlummersCross\"\n    },\n    {\n      \"name\": \"PonsAsinorum\"\n    },\n    {\n      \"name\": \"Python\"\n    },\n    {\n      \"name\": \"RonsCubeInCube\"\n    },\n    {\n      \"name\": \"SixSpot\"\n    },\n    {\n      \"name\": \"SixTs\"\n    },\n    {\n      \"name\": \"SixTwoOne\"\n    },\n    {\n      \"name\": \"Stripes\"\n    },\n    {\n      \"name\": \"Superflip\"\n    },\n    {\n      \"name\": \"TomParksPattern\"\n    },\n    {\n      \"name\": \"TwistedChickenFeet\"\n    },\n    {\n      \"name\": \"TwistedDuckFeet\"\n    },\n    {\n      \"name\": \"TwistedRings\"\n    },\n    {\n      \"name\": \"TwoTwistedPeaks\"\n    },\n    {\n      \"name\": \"anaconda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blackmamba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkerboardssix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkerboardsthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"christmascross\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cubeincube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cubeincubeincube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edgehexagonthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edgehexagontwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exchangedchickenfeet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exchangedduckfeet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exchangedpeaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exchangedrings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femaleboa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femalerattlesnake\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourspot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fourtwistedpeaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greenmamba\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleboa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"malerattlesnake\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orthogonalbars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plummerscross\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ponsasinorum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"python\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ronscubeincube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubikpatterns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixspot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixtwoone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stripes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"superflip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tomparkspattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedchickenfeet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedduckfeet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twistedrings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twotwistedpeaks\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rubikrotation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"shellesc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CheckState\"\n    },\n    {\n      \"name\": \"RubikRotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RubikRotation[${2:integer}]{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"RubikRotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RubikRotation{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"SaveRubikState\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveRubikState{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"ShowErrors\"\n    },\n    {\n      \"name\": \"rubikpercentchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubikperlcmd\"\n    },\n    {\n      \"name\": \"rubikperlname\"\n    },\n    {\n      \"name\": \"rubikrotation\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rubiktwocube.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Blt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCube\"\n    },\n    {\n      \"name\": \"DrawTwoCubeF\"\n    },\n    {\n      \"name\": \"DrawTwoCubeFrontFace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeLD\"\n    },\n    {\n      \"name\": \"DrawTwoCubeLU\"\n    },\n    {\n      \"name\": \"DrawTwoCubeRD\"\n    },\n    {\n      \"name\": \"DrawTwoCubeRU\"\n    },\n    {\n      \"name\": \"DrawTwoCubeSF\"\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarBD{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBDLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBDRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarBL{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBLLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBLLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarBR{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBRRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBRRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarBU{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBULU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarBURU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarDB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDBLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDBRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarDF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDFLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarDFRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarFD{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFDLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFDRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarFL{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFLRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFLRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarFR{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFRLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFRLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarFU{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFULD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarFURD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarLB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLBLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLBLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarLF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLFRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarLFRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarRB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRBRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRBRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarRF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRFLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarRFLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarUB{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUBLU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUBRU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DrawTwoCubeSidebarUF{${1:view direction}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUFLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoCubeSidebarUFRD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceBack\"\n    },\n    {\n      \"name\": \"DrawTwoFaceBackSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceBS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceDown\"\n    },\n    {\n      \"name\": \"DrawTwoFaceDownSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceDS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceFront\"\n    },\n    {\n      \"name\": \"DrawTwoFaceFrontSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceFS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceLeft\"\n    },\n    {\n      \"name\": \"DrawTwoFaceLeftSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceLS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceRight\"\n    },\n    {\n      \"name\": \"DrawTwoFaceRightSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceRS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFaceUp\"\n    },\n    {\n      \"name\": \"DrawTwoFaceUpSide\"\n    },\n    {\n      \"name\": \"DrawTwoFaceUS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DrawTwoFlatBack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawTwoFlatBack{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoFlatDown\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawTwoFlatDown{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoFlatFront\"\n    },\n    {\n      \"name\": \"DrawTwoFlatLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawTwoFlatLeft{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoFlatRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawTwoFlatRight{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"DrawTwoFlatUp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DrawTwoFlatUp{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"Flb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Flt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Llb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Llt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoSidebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoSidebar{${1:color-code}}\"\n      }\n    },\n    {\n      \"name\": \"Rlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTCfiledate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTCfileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubiktwocube\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SaveTwoState\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveTwoState{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"SquaretD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SquaretUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textTwo{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"textTwoB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwobp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwodp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwofp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwolp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTworp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwoz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTwozp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tr{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"trB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trh{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"trhB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhbp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhdp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trhzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trlp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trrp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"try\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tryp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trzp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Two\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Two{${1:rotation code}}\"\n      }\n    },\n    {\n      \"name\": \"TwoB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoBc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoBcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twobp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCBp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoCubeGrey\"\n    },\n    {\n      \"name\": \"TwoCubeGreyAll\"\n    },\n    {\n      \"name\": \"TwoCubeSolved\"\n    },\n    {\n      \"name\": \"TwoCubeSolvedWB\"\n    },\n    {\n      \"name\": \"TwoCubeSolvedWY\"\n    },\n    {\n      \"name\": \"TwoCUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoDc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoDcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoDp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twodp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoFaceBack\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceBack{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceBackAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceBackAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceDown\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceDown{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceDownAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceDownAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceFront\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceFront{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceFrontAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceFrontAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceLeft\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceLeft{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceLeftAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceLeftAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceRight\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceRight{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceRightAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceRightAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceUp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoFaceUp{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFaceUpAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoFaceUpAll{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoFc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoFcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoFp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twofp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoLc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoLcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoLp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twolp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoRc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoRcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoRotation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TwoRotation[${2:integer}]{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"TwoRotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoRotation{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"TwoRp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tworp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoSidebarLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoSidebarLength{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSidebarSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoSidebarSep{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSidebarWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TwoSidebarWidth{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSliceBottomL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoSliceBottomL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSliceBottomR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoSliceBottomR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSliceTopL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoSliceTopL{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSliceTopR\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TwoSliceTopR{${1:color1}}{${2:color2}}{${3:color3}}{${4:color4}}\"\n      }\n    },\n    {\n      \"name\": \"TwoSolvedConfig\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"TwoSolvedConfig{${1:X+color}}{${2:X-color}}{${3:Y+color}}{${4:Y-color}}{${5:Z+color}}{${6:Z-color}}\"\n      }\n    },\n    {\n      \"name\": \"TwoU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twou\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoUc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoUcp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoUp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twoup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twoxp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twoy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twoyp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twoz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Twozp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ult\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ruby.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"CJK\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rubysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubysep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rubyoverlap\"\n    },\n    {\n      \"name\": \"rubynooverlap\"\n    },\n    {\n      \"name\": \"rubyCJK\"\n    },\n    {\n      \"name\": \"rubylatin\"\n    },\n    {\n      \"name\": \"ruby\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruby{${1:base characters}}{${2:ruby}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ruby#c\": [\n      \"overlap\",\n      \"nooverlap\",\n      \"CJK\",\n      \"latin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ruby#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/rulerbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"rulerbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulerbox{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"rulerbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulerbox[${2:edges}]{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"rulerleftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerlefttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerrightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerrighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulertopfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulertoptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerbottomfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerbottomtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rtickrule\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/runcode.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"morewrites\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"textgreek\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"minted\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"runExtCode\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"runExtCode{${1:program}}{${2:source file%file}}{${3:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runExtCode\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"runExtCode{${1:program}}{${2:source file%file}}{${3:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"showCode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showCode{${1:lang}}{${2:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"showCode\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"showCode{${1:lang}}{${2:source file%file}}[${3:first line}]\"\n      }\n    },\n    {\n      \"name\": \"showCode\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"showCode{${1:lang}}{${2:source file%file}}[${3:first line}][${4:last line}]\"\n      }\n    },\n    {\n      \"name\": \"includeOutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeOutput{${1:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"includeOutput\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"includeOutput{${1:output file%file}}[${2:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\includeOutput\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"inln\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inln{${1:program}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inln\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"inln{${1:program}}{${2:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inln\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"inln{${1:program}}{${2:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inln\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"inln{${1:program}}{${2:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"showChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showChunk{${1:language}}{${2:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"showChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"showChunk{${1:language}}{${2:source file%file}}[${3:chunk id}]\"\n      }\n    },\n    {\n      \"name\": \"showChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"showChunk{${1:language}}{${2:source file%file}}[${3:chunk id}][${4:begin mark}][${5:end mark}]\"\n      }\n    },\n    {\n      \"name\": \"runCodeIncOut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runCodeIncOut{${1:program}}{${2:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runCodeIncOut\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runCodeIncOut{${1:program}}{${2:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runCodeIncOut\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runCodeIncOut{${1:program}}{${2:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runCodeIncOut\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runCodeIncOut{${1:program}}{${2:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runCodeIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runR{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runR{${1:source file%file}}{${2:output file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runR[${3:server spec}]{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runR[${3:server spec}]{${1:source file%file}}{${2:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}][${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runRIncOut\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runRIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlnR{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:output file%file}][${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|${6:cache}][${4:output file%file}][${5:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}][${5:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|${7:cache}][${5:output file%file}][${6:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runJulia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runJulia{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runJulia\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runJulia{${1:source file%file}}{${2:output file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJulia\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runJulia[${3:server spec}]{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runJulia\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runJulia[${3:server spec}]{${1:source file%file}}{${2:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runJuliaIncOut{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"runJuliaIncOut{${1:source file%file}}[${2:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"runJuliaIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"runJuliaIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}][${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runJuliaIncOut\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runJuliaIncOut[${2:server spec}]{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"runJuliaIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"runJuliaIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"runJuliaIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runJuliaIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlnJulia{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnJulia{${1:code%definition}}[${2:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnJulia{${1:code%definition}}[${2:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inlnJulia{${1:code%definition}}[${2:output file%file}][${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlnJulia[${2:server spec}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnJulia[${2:server spec}]{${1:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnJulia[${2:server spec}]{${1:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnJulia\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"inlnJulia[${2:server spec}]{${1:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runJuliaChunk{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runJuliaChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runJuliaChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runJuliaChunk{${1:source file%file}}{${2:chunk id}}[${3:run|${6:cache}][${4:output file%file}][${5:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runJuliaChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runJuliaChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"runJuliaChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}][${5:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runJuliaChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]\",\n        \"snippet\": \"runJuliaChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|${7:cache}][${5:output file%file}][${6:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runMatlab{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlab\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runMatlab{${1:source file%file}}{${2:output file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runMatlab[${3:server spec}]{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runMatlab[${3:server spec}]{${1:source file%file}}{${2:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runMatlabIncOut{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"runMatlabIncOut{${1:source file%file}}[${2:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"runMatlabIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"runMatlabIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}][${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runMatlabIncOut\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runMatlabIncOut[${2:server spec}]{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"runMatlabIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"runMatlabIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"runMatlabIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runMatlabIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlnMatlab{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnMatlab{${1:code%definition}}[${2:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnMatlab{${1:code%definition}}[${2:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inlnMatlab{${1:code%definition}}[${2:output file%file}][${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlnMatlab[${2:server spec}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnMatlab[${2:server spec}]{${1:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnMatlab[${2:server spec}]{${1:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnMatlab\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"inlnMatlab[${2:server spec}]{${1:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runMatlabChunk{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runMatlabChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runMatlabChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runMatlabChunk{${1:source file%file}}{${2:chunk id}}[${3:run|${6:cache}][${4:output file%file}][${5:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runMatlabChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runMatlabChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"runMatlabChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}][${5:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runMatlabChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]\",\n        \"snippet\": \"runMatlabChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|${7:cache}][${5:output file%file}][${6:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runR{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runR{${1:source file%file}}{${2:output file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runR[${3:server spec}]{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runR\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runR[${3:server spec}]{${1:source file%file}}{${2:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"runRIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}][${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runRIncOut\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"runRIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runRIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlnR{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inlnR{${1:code%definition}}[${2:output file%file}][${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnR\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"inlnR[${2:server spec}]{${1:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runRChunk{${1:source file%file}}{${2:chunk id}}[${3:run|${6:cache}][${4:output file%file}][${5:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}][${5:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runRChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]\",\n        \"snippet\": \"runRChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|${7:cache}][${5:output file%file}][${6:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runPython\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runPython{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runPython\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runPython{${1:source file%file}}{${2:output file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPython\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runPython[${3:server spec}]{${1:source file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runPython\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runPython[${3:server spec}]{${1:source file%file}}{${2:output file%file}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runPythonIncOut{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"runPythonIncOut{${1:source file%file}}[${2:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"runPythonIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"runPythonIncOut{${1:source file%file}}[${2:run|cache}][${3:output file%file}][${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runPythonIncOut\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"runPythonIncOut[${2:server spec}]{${1:source file%file}}\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"runPythonIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"runPythonIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonIncOut\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"runPythonIncOut[${2:server spec}]{${1:source file%file}}[${3:run|cache}][${4:output file%file}][${5:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\runPythonIncOut\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlnPython{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnPython{${1:code%definition}}[${2:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"inlnPython{${1:code%definition}}[${2:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"inlnPython{${1:code%definition}}[${2:output file%file}][${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlnPython[${2:server spec}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnPython[${2:server spec}]{${1:code%definition}}[${3:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"inlnPython[${2:server spec}]{${1:code%definition}}[${3:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"inlnPython\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"inlnPython[${2:server spec}]{${1:code%definition}}[${3:output file%file}][${4:vbox|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runPythonChunk{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"runPythonChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"runPythonChunk{${1:source file%file}}{${2:chunk id}}[${3:run|cache}][${4:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"runPythonChunk{${1:source file%file}}{${2:chunk id}}[${3:run|${6:cache}][${4:output file%file}][${5:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"runPythonChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"runPythonChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"runPythonChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|cache}][${5:output file%file}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonChunk\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][][]\",\n        \"snippet\": \"runPythonChunk[${3:server spec}]{${1:source file%file}}{${2:chunk id}}[${4:run|${7:cache}][${5:output file%file}][${6:vbox}|inline}]\"\n      }\n    },\n    {\n      \"name\": \"runPythonBatch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"runPythonBatch{${1:code%definition}}{${2:output file%file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/runcode#c\": [\n      \"run\",\n      \"cache\",\n      \"nominted\",\n      \"minted\",\n      \"listings\",\n      \"fvextra\",\n      \"reducedspace\",\n      \"nohup\",\n      \"R\",\n      \"julia\",\n      \"matlab\",\n      \"python\",\n      \"stopserver\"\n    ],\n    \"\\\\includeOutput\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ],\n    \"\\\\runCodeIncOut\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ],\n    \"\\\\runRIncOut\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\",\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ],\n    \"\\\\runJuliaIncOut\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ],\n    \"\\\\runMatlabIncOut\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ],\n    \"\\\\runPythonIncOut\": [\n      \"vbox\",\n      \"tex\",\n      \"inline\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/runcode#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/runic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"futfamily\"\n    },\n    {\n      \"name\": \"textfut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Fthorn\"\n    },\n    {\n      \"name\": \"Fng\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rustex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RusTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rustic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textrust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrust{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rustfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rviewport.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\includegraphics\": [\n      \"rviewport=${1:llx lly urx ury}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/rvwrite.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newrvwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newrvwrite{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"rvwrite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rvwrite{${1:write name}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"ervwrite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ervwrite{${1:write name}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dlrchr\"\n    },\n    {\n      \"name\": \"hshchr\"\n    },\n    {\n      \"name\": \"bslchr\"\n    },\n    {\n      \"name\": \"lbrchr\"\n    },\n    {\n      \"name\": \"rbrchr\"\n    },\n    {\n      \"name\": \"tldchr\"\n    },\n    {\n      \"name\": \"ampchr\"\n    },\n    {\n      \"name\": \"rvtwrite\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sa-tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryswitching-architectures\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sacsymb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ca\"\n    },\n    {\n      \"name\": \"cb\"\n    },\n    {\n      \"name\": \"cc\"\n    },\n    {\n      \"name\": \"cd\"\n    },\n    {\n      \"name\": \"ce\"\n    },\n    {\n      \"name\": \"cf\"\n    },\n    {\n      \"name\": \"cg\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"ci\"\n    },\n    {\n      \"name\": \"cj\"\n    },\n    {\n      \"name\": \"ck\"\n    },\n    {\n      \"name\": \"cl\"\n    },\n    {\n      \"name\": \"cm\"\n    },\n    {\n      \"name\": \"cn\"\n    },\n    {\n      \"name\": \"co\"\n    },\n    {\n      \"name\": \"cq\"\n    },\n    {\n      \"name\": \"cs\"\n    },\n    {\n      \"name\": \"ct\"\n    },\n    {\n      \"name\": \"cu\"\n    },\n    {\n      \"name\": \"cv\"\n    },\n    {\n      \"name\": \"cw\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sagetex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"makecmds\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sage{${1:Sage code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sagestr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sagestr{${1:Sage code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"sageplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sageplot{${1:graphics obj, keyword args}}\"\n      }\n    },\n    {\n      \"name\": \"sageplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sageplot[${2:options%keyvals}]{${1:graphics obj, keyword args}}\",\n        \"keys\": [\n          \"\\\\sageplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sageplot\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sageplot[${2:options%keyvals}][${3:fmt}]{${1:graphics obj, keyword args}}\",\n        \"keys\": [\n          \"\\\\sageplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sagetexindent\"\n    },\n    {\n      \"name\": \"sagetexpause\"\n    },\n    {\n      \"name\": \"sagetexunpause\"\n    },\n    {\n      \"name\": \"sageexampleincludetextoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sagecommandlinetextoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sagecommandlineskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sageblock\"\n    },\n    {\n      \"name\": \"sagesilent\"\n    },\n    {\n      \"name\": \"sageverbatim\"\n    },\n    {\n      \"name\": \"sageexample\"\n    },\n    {\n      \"name\": \"sagecommandline\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sagetex#c\": [\n      \"final\",\n      \"imagemagick\",\n      \"epstopdf\",\n      \"noversioncheck\"\n    ],\n    \"\\\\sageplot\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sagetex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sankey.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydubins\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sankeyset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeyset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c\",\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeynode{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\",\n          \"\\\\sankeynode#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sankeynode[${2:options}]{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\",\n          \"\\\\sankeynode#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynodestart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeynodestart{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynodestart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sankeynodestart[${2:options}]{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynodeend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeynodeend{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynodeend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sankeynodeend[${2:options}]{${1:node parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeygetnodeqty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeygetnodeqty{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyqtytolen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeyqtytolen{${1:quantity}}\"\n      }\n    },\n    {\n      \"name\": \"sankeygetnodeorient\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeygetnodeorient{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyadvance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyadvance{${1:node name}}{${2:distance%l}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyadvance\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyadvance[${3:options%keyvals}]{${1:node name}}{${2:distance%l}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyadvance*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyadvance*{${1:node name}}{${2:distance%l}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyadvance*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyadvance*[${3:options%keyvals}]{${1:node name}}{${2:distance%l}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturn{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturn[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturn*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturn*{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturn*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturn*[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnleft{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnleft\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnleft[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnleft*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnleft*{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnleft*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnleft*[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnleftbackward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnleftbackward{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnleftbackward\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnleftbackward[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnleftbackward*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnleftbackward*{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnleftbackward*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnleftbackward*[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnright{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnright\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnright[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnright*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnright*{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnright*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnright*[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnrightbackward\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnrightbackward{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnrightbackward\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnrightbackward[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyturnrightbackward*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyturnrightbackward*{${1:node name}}{${2:angle}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyturnrightbackward*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyturnrightbackward*[${3:options%keyvals}]{${1:node name}}{${2:angle}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyoutin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyoutin{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyoutin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyoutin[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeydubins\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeydubins{${1:nodeA}}{${2:nodeB}}\"\n      }\n    },\n    {\n      \"name\": \"sankeydubins\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeydubins[${3:options%keyvals}]{${1:nodeA}}{${2:nodeB}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeystart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeystart{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"sankeystart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sankeystart[${2:options%keyvals}]{${1:node name}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sankeyend{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sankeyend[${2:options%keyvals}]{${1:node name}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeyfork\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeyfork{${1:node name}}{${2:qty1/name1,qty2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"sankeyfork\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sankeyfork[${3:options%keyvals}]{${1:node name}}{${2:qty1/name1,qty2/name2,...}}\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sankeynodealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sankeynodealias{${1:orig name}}{${2:clone name}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orient\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pos\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sankeydiagram\"\n    },\n    {\n      \"name\": \"sankeydiagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\sankeynode#c,\\\\sankeynodestart#c,\\\\sankeynodeend#c\": [\n      \"name=${1:name}\",\n      \"quantity=${1:quantity}\",\n      \"angle=${1:degrees}\",\n      \"at={${1:x,y}}\",\n      \"anchor=${1|center,left,right|}\",\n      \"as=${1:name}\",\n      \"forked={${1:qty1/name1,qty2/name2,...}}\",\n      \"fork anchor=${1:node}.${2:anchor}\"\n    ],\n    \"\\\\sankeynode#c\": [\n      \"start\",\n      \"end\"\n    ],\n    \"\\\\sankeyset#c\": [\n      \"every diagram/.style={${1:options}}\",\n      \"debug color/.style={${1:options}}\",\n      \"debug line/.style={${1:options}}\",\n      \"debug normal/.style={${1:options}}\",\n      \"debug label/.style={${1:options}}\"\n    ],\n    \"\\\\sankeyset#c,\\\\begin{sankeydiagram}#c,\\\\sankeyadvance#c,\\\\sankeyadvance*#c,\\\\sankeyturn#c,\\\\sankeyturn*#c,\\\\sankeyturnleft#c,\\\\sankeyturnleft*#c,\\\\sankeyturnleftbackward#c,\\\\sankeyturnleftbackward*#c,\\\\sankeyturnright#c,\\\\sankeyturnright*#c,\\\\sankeyturnrightbackward#c,\\\\sankeyturnrightbackward*#c,\\\\sankeyoutin#c,\\\\sankeydubins#c,\\\\sankeystart#c,\\\\sankeyend#c,\\\\sankeyfork#c\": [\n      \"ratio quantity=${1:number}\",\n      \"ratio length=\",\n      \"ratio=${1:distance}/${2:number}\",\n      \"rotate=${1:degrees}\",\n      \"minimum radius=\",\n      \"outin steps=${1:integer}\",\n      \"fill/.style={${1:options}}\",\n      \"draw/.style={${1:options}}\",\n      \"start style=${1|none,simple,arrow|}\",\n      \"end style=${1|none,simple,arrow|}\",\n      \"new start style={${1:name}}{${2:fill path}}{${3:draw path}}\",\n      \"new end style={${1:name}}{${2:fill path}}{${3:draw path}}\",\n      \"debug\",\n      \"every node/.style={${1:node parameters}}\",\n      \"debug color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sansmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sansmath\"\n    },\n    {\n      \"name\": \"unsansmath\"\n    },\n    {\n      \"name\": \"mathsfsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfsl{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfbf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"matheug\",\n      \"if\": \"eulergreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matheug{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"matheug\",\n      \"if\": \"EULERGREEK\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matheug{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sansmathencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EulGreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EuUCGreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NonEulGreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EulGreekList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NonEulGreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfMathSwitch\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sansmath\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sansmath#c\": [\n      \"T1\",\n      \"EULERGREEK\",\n      \"eulergreek\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sansmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sansmathfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathserif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathserif{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sansmathfonts#c\": [\n      \"notmath\",\n      \"onlytext\",\n      \"onlymath\",\n      \"nottext\",\n      \"I\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sansmathfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sarabian.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sarabfamily\"\n    },\n    {\n      \"name\": \"textsarab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsarab{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SAa\"\n    },\n    {\n      \"name\": \"SAb\"\n    },\n    {\n      \"name\": \"SAd\"\n    },\n    {\n      \"name\": \"SAdb\"\n    },\n    {\n      \"name\": \"SAdd\"\n    },\n    {\n      \"name\": \"SAf\"\n    },\n    {\n      \"name\": \"SAg\"\n    },\n    {\n      \"name\": \"SAga\"\n    },\n    {\n      \"name\": \"SAh\"\n    },\n    {\n      \"name\": \"SAhd\"\n    },\n    {\n      \"name\": \"SAhu\"\n    },\n    {\n      \"name\": \"SAk\"\n    },\n    {\n      \"name\": \"SAl\"\n    },\n    {\n      \"name\": \"SAlq\"\n    },\n    {\n      \"name\": \"SAm\"\n    },\n    {\n      \"name\": \"SAn\"\n    },\n    {\n      \"name\": \"SAo\"\n    },\n    {\n      \"name\": \"SAq\"\n    },\n    {\n      \"name\": \"SAr\"\n    },\n    {\n      \"name\": \"SArq\"\n    },\n    {\n      \"name\": \"SAs\"\n    },\n    {\n      \"name\": \"SAsa\"\n    },\n    {\n      \"name\": \"SAsd\"\n    },\n    {\n      \"name\": \"SAsv\"\n    },\n    {\n      \"name\": \"SAt\"\n    },\n    {\n      \"name\": \"SAtb\"\n    },\n    {\n      \"name\": \"SAtd\"\n    },\n    {\n      \"name\": \"SAw\"\n    },\n    {\n      \"name\": \"SAy\"\n    },\n    {\n      \"name\": \"SAz\"\n    },\n    {\n      \"name\": \"SAzd\"\n    },\n    {\n      \"name\": \"translitsarab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitsarab{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitsarabfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/saveenv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"precattl\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"saveenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"saveenvghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"saveenvkeeplast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"saveenvreinsert\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:macro%cmd}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"saveenvkeeplastreinsert\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:macro%cmd}}{${2:code}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/savesym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"savesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savesymbol{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"restoresymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"restoresymbol{${1:prefix}}{${2:csname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/savetrees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"microtype\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"markeverypar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markeverypar{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"savetreesbibnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savetreesbibnote{${1:note}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/savetrees#c\": [\n      \"subtle\",\n      \"moderate\",\n      \"extreme\",\n      \"all=${1|tight,normal|}\",\n      \"bibbreaks=${1|tight,normal|}\",\n      \"paragraphs=${1|tight,normal|}\",\n      \"floats=${1|tight,normal|}\",\n      \"mathspacing=${1|tight,normal|}\",\n      \"wordspacing=${1|tight,normal|}\",\n      \"tracking=${1|tight,normal|}\",\n      \"bibnotes=${1|tight,normal|}\",\n      \"charwidths=${1|tight,normal|}\",\n      \"mathdisplays=${1|tight,normal|}\",\n      \"leading=${1|tight,normal|}\",\n      \"indent=${1|tight,normal|}\",\n      \"lists=${1|tight,normal|}\",\n      \"bibliography=${1|tight,normal|}\",\n      \"title=${1|tight,normal|}\",\n      \"sections=${1|tight,normal|}\",\n      \"margins=${1|tight,normal|}\",\n      \"charwidthfraction=${1:fraction}\",\n      \"leadingfraction=${1:fraction}\",\n      \"marginwidth=\",\n      \"parindent=\",\n      \"trackingfraction=${1:fraction}\",\n      \"wordspacingfraction=${1:fraction}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/savetrees#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sbl-paper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"titletoc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"bibleref-parse\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firstsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"firstsection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"firstsection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"institution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institution{${1:institution%text}}\"\n      }\n    },\n    {\n      \"name\": \"professor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"professor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"course\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"course{${1:course%text}}\"\n      }\n    },\n    {\n      \"name\": \"Pbibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pbibleverse{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"Pbibleverse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pbibleverse[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\Pbibleverse,\\\\Pibibleverse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Pibibleverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pibibleverse{${1:passage}}\"\n      }\n    },\n    {\n      \"name\": \"Pibibleverse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Pibibleverse[${2:options%keyvals}]{${1:passage}}\",\n        \"keys\": [\n          \"\\\\Pbibleverse,\\\\Pibibleverse\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifciteidemsbl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifciteidemsbl{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"namedashpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexiconfinalnamedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volpostnotedelim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mkibid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mkibid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addskipentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addskipentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addincludeentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addincludeentry{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"abbrevwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmaxlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmaxlength{${1:length1}}{${2:length2}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharsec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharsec{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffirstcharnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iffirstcharnum{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"thecurrentpublisher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentlocation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentorganization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecurrentinstitution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepublishertotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelocationtotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorganizationtotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinstitutiontotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepostnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotefirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postnotelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitpostnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volsplitpostnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volsplitpostnote{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setuppostnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citejournal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citejournal{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeseries\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeseries{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeshorthand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeshorthand{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"bibentrycite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibentrycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"biblistcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"biblistcite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNestableCiteCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNestableCiteCommand{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sbl-paper#c\": [\n      \"jblstyle\"\n    ],\n    \"\\\\Pbibleverse,\\\\Pibibleverse\": [\n      \"comma=${1|list,chvsep,likeBR,preferchvsep,preferlikeBR|}\"\n    ],\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"accessdate\",\n      \"citepages=${1|sbl,permit,omit,separate|}\",\n      \"eprintdate=${1|year,short,long,terse,comp,iso8601|}\",\n      \"fullbibrefs\",\n      \"idemtracker=${1|true,false,context,strict,constrict,citation,sbl|}\",\n      \"sblfootnotes\",\n      \"shorthand=${1|true,false,short,intro|}\",\n      \"useshorttitle\",\n      \"usefullcite\",\n      \"usevolume\",\n      \"useseries\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sbl-paper#c\",\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scalebar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scalebar\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"scalebar{${1:length}}{${2:minordivs}}{${3:majordivs}}{${4:start}}{${5:end}}{${6:units}}\"\n      }\n    },\n    {\n      \"name\": \"scalebar\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"scalebar[${7:inverse}]{${1:length}}{${2:minordivs}}{${3:majordivs}}{${4:start}}{${5:end}}{${6:units}}\"\n      }\n    },\n    {\n      \"name\": \"SBRound\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scalefnt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"scalefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scalefont{${1:factor}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scalerel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scalerel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scalerel{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"scalerel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scalerel[${3:max width}]{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"scalerel*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scalerel*{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"scalerel*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scalerel*[${3:max width}]{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"stretchrel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stretchrel{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"stretchrel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stretchrel[${3:narrowest aspect}]{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"stretchrel*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stretchrel*{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"stretchrel*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stretchrel*[${3:narrowest aspect}]{${1:object}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"scaleto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scaleto{${1:object}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"scaleto\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scaleto[${3:max width}]{${1:object}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"stretchto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stretchto{${1:object}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"stretchto\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stretchto[${3:narrowest aspect}]{${1:object}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"scaleleftright\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"scaleleftright{${1:left obj}}{${2:reference}}{${3:right obj}}\"\n      }\n    },\n    {\n      \"name\": \"scaleleftright\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"scaleleftright[${4:max width}]{${1:left obj}}{${2:reference}}{${3:right obj}}\"\n      }\n    },\n    {\n      \"name\": \"stretchleftright\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stretchleftright{${1:left obj}}{${2:reference}}{${3:right obj}}\"\n      }\n    },\n    {\n      \"name\": \"stretchleftright\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"stretchleftright[${4:narrowest aspect}]{${1:left obj}}{${2:reference}}{${3:right obj}}\"\n      }\n    },\n    {\n      \"name\": \"hstretch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hstretch{${1:scale}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"vstretch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vstretch{${1:scale}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"scaleobj\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scaleobj{${1:scale}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"ThisStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ThisStyle{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"SavedStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LMex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LMpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptstyleScaleFactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptscriptstyleScaleFactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Isnextbyte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Isnextbyte{${1:test byte}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"Isnextbyte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Isnextbyte[${3:q}]{${1:test byte}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"theresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoremathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignoremathstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ignoremathstyle[${1:mode}]\"\n      }\n    },\n    {\n      \"name\": \"discernmathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesrwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesrheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srblobheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srblobdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mnxsrwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scanpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fp-basic\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scanpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scanpage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"scanpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scanpage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\scanpage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"initviewport\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"initviewport{${1:scale}}{${2:llx%l}}{${3:lly%l}}{${4:w%l}}{${5:h%l}}\"\n      }\n    },\n    {\n      \"name\": \"whitesq\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"whitesq(${2:x},${3:y}){${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"whitesq\",\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"whitesq(${3:x},${4:y}){${1:x-scale}}[${2:y-scale}]\"\n      }\n    },\n    {\n      \"name\": \"whitecirc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"whitecirc(${2:x},${3:y}){${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"whitecirc\",\n      \"arg\": {\n        \"format\": \"(){}[]\",\n        \"snippet\": \"whitecirc(${3:x},${4:y}){${1:x-scale}}[${2:y-scale}]\"\n      }\n    },\n    {\n      \"name\": \"origpgcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origpgnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"putn(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"thegrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thegrid{${1:width}}{${2:height}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scanpages#c\": [\n      \"nogrid\",\n      \"scale=${1:factor}\",\n      \"llx=\",\n      \"lly=\",\n      \"w=\",\n      \"h=\"\n    ],\n    \"\\\\scanpage\": [\n      \"origpgnum=${1:page number}\",\n      \"origindest\",\n      \"origpgnumoff\",\n      \"dx=\",\n      \"dy=\",\n      \"page=${1:page number}\",\n      \"rot=${1:degrees}\",\n      \"tanrot=${1:tangent}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scanpages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schedule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"class{${1:name}}{${2:location}}{${3:days of week%keyvals}}{${4:start-end}}\",\n        \"keys\": [\n          \"\\\\class\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CellHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CellHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"CellWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CellWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"TimeRange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TimeRange{${1:start-end}}\"\n      }\n    },\n    {\n      \"name\": \"SubUnits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubUnits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"BeginOn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeginOn{${1:day%keyvals}}\",\n        \"keys\": [\n          \"\\\\BeginOn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TextSize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextSize{${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"FiveDay\"\n    },\n    {\n      \"name\": \"SevenDay\"\n    },\n    {\n      \"name\": \"TwelveHour\"\n    },\n    {\n      \"name\": \"TwentyFourHour\"\n    },\n    {\n      \"name\": \"NewAppointment\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewAppointment{${1:name}}{${2:background color}}{${3:text color}}\"\n      }\n    },\n    {\n      \"name\": \"LineThickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LineThickness{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"IncludeWeekends\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoWeekends\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifweekends\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weekendstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"weekendsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftwelve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twelvetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twelvefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsetboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setboxdepthtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setboxdepthfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inrangetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inrangefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thexcoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theycoords\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"schedule\"\n    },\n    {\n      \"name\": \"schedule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%plain}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\class\": [\n      \"M\",\n      \"T\",\n      \"W\",\n      \"Th\",\n      \"F\"\n    ],\n    \"\\\\BeginOn\": [\n      \"Sunday\",\n      \"Monday\",\n      \"Tuesday\",\n      \"Wednesday\",\n      \"Thursday\",\n      \"Friday\",\n      \"Saturday\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/schemabloc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sbStyleLienDefaut\"\n    },\n    {\n      \"name\": \"sbStyleLien\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbStyleLien{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"sbStyleBloc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbStyleBloc{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"sbStyleBlocDefaut\"\n    },\n    {\n      \"name\": \"sbEntree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sbEntree{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"sbSortie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbSortie{${1:nom}}{${2:bloc-nom}}\"\n      }\n    },\n    {\n      \"name\": \"sbSortie\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbSortie[${3:distance}]{${1:nom}}{${2:bloc-nom}}\"\n      }\n    },\n    {\n      \"name\": \"sbBloc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBloc{${1:nom}}{${2:contenu}}{${3:bloc precédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBloc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBloc[${4:distance}]{${1:nom}}{${2:contenu}}{${3:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBlocr{${1:nom}}{${2:contenu}}{${3:bloc precédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBlocr[${4:distance}]{${1:nom}}{${2:contenu}}{${3:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBlocL{${1:nom}}{${2:contenu}}{${3:bloc precédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBlocL[${4:distance}]{${1:nom}}{${2:contenu}}{${3:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocrL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBlocrL{${1:nom}}{${2:contenu}}{${3:bloc precédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocrL\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBlocrL[${4:distance}]{${1:nom}}{${2:contenu}}{${3:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocseul\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBlocseul{${1:nom}}{${2:contenu}}{${3:bloc precédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbBlocseul\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBlocseul[${4:distance}]{${1:nom}}{${2:contenu}}{${3:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbRelier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbRelier{${1:b1}}{${2:b2}}\"\n      }\n    },\n    {\n      \"name\": \"sbRelier\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbRelier[${3:nom}]{${1:b1}}{${2:b2}}\"\n      }\n    },\n    {\n      \"name\": \"sbRelieryx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbRelieryx{${1:nom1}}{${2:nom2}}\"\n      }\n    },\n    {\n      \"name\": \"sbRelierxy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbRelierxy{${1:bloc-nom}}{${2:comp-nom}}\"\n      }\n    },\n    {\n      \"name\": \"sbRelierxy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbRelierxy[${3:label}]{${1:bloc-nom}}{${2:comp-nom}}\"\n      }\n    },\n    {\n      \"name\": \"sbRenvoi\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbRenvoi{${1:nom1}}{${2:nom2}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"sbRenvoi\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbRenvoi[${4:distance}]{${1:nom1}}{${2:nom2}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"sbNomLien\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbNomLien{${1:nom}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"sbNomLien\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbNomLien[${3:distance}]{${1:nom}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompSum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sbCompSum{${1:nom}}{${2:E1}}{${3:a}}{${4:b}}{${5:c}}{${6:d}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompSum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"sbCompSum[${7:distance}]{${1:nom}}{${2:E1}}{${3:a}}{${4:b}}{${5:c}}{${6:d}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompSumr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"sbCompSumr{${1:nom}}{${2:E1}}{${3:a}}{${4:b}}{${5:c}}{${6:d}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompSumr\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"sbCompSumr[${7:distance}]{${1:nom}}{${2:E1}}{${3:a}}{${4:b}}{${5:c}}{${6:d}}\"\n      }\n    },\n    {\n      \"name\": \"sbComp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbComp{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbComp[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComp*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbComp*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComp*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbComp*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbCompr{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbCompr[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompr*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbCompr*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompr*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbCompr*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbCompL{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbCompL[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompL*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbCompL*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbCompL*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbCompL*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbComph{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbComph[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComph*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbComph*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbComph*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbComph*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumh\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbSumh{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumh\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbSumh[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumh*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbSumh*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumh*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbSumh*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumb\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbSumb{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumb\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbSumb[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumb*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbSumb*{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbSumb*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbSumb*[${3:distance}]{${1:nom}}{${2:bloc précédent}}\"\n      }\n    },\n    {\n      \"name\": \"sbDecaleNoeudy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbDecaleNoeudy{${1:N1}}{${2:N2}}\"\n      }\n    },\n    {\n      \"name\": \"sbDecaleNoeudy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbDecaleNoeudy[${3:distance}]{${1:N1}}{${2:N2}}\"\n      }\n    },\n    {\n      \"name\": \"sbDecaleNoeudx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbDecaleNoeudx{${1:N1}}{${2:N2}}\"\n      }\n    },\n    {\n      \"name\": \"sbDecaleNoeudx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbDecaleNoeudx[${3:distance}]{${1:N1}}{${2:N2}}\"\n      }\n    },\n    {\n      \"name\": \"sbChaine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbChaine{${1:noeud depart}}{${2:liste blocs nom/Fonction}}\"\n      }\n    },\n    {\n      \"name\": \"sbChaine\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbChaine[${3:pas}]{${1:noeud depart}}{${2:liste blocs nom/Fonction}}\"\n      }\n    },\n    {\n      \"name\": \"sbChaineRetour\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbChaineRetour{${1:noeud depart}}{${2:liste blocs nom/Fonction}}\"\n      }\n    },\n    {\n      \"name\": \"sbChaineRetour\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbChaineRetour[${3:pas}]{${1:noeud depart}}{${2:liste blocs nom/Fonction}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucleSeule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBoucleSeule{${1:noeud depart}}{${2:liste blocs}}{${3:sortie}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucleSeule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBoucleSeule[${4:pas}]{${1:noeud depart}}{${2:liste blocs}}{${3:sortie}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sbBoucle{${1:noeud depart}}{${2:liste blocs chaine directe}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sbBoucle[${3:pas}]{${1:noeud depart}}{${2:liste blocs chaine directe}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucleRetour\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sbBoucleRetour{${1:noeud depart}}{${2:liste chaine directe}}{${3:liste chaine de retour}}\"\n      }\n    },\n    {\n      \"name\": \"sbBoucleRetour\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sbBoucleRetour[${4:pas}]{${1:noeud depart}}{${2:liste chaine directe}}{${3:liste chaine de retour}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/schemata.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DoBraces\"\n    },\n    {\n      \"name\": \"DoBrackets\"\n    },\n    {\n      \"name\": \"DoGroups\"\n    },\n    {\n      \"name\": \"DoParens\"\n    },\n    {\n      \"name\": \"LCschema\"\n    },\n    {\n      \"name\": \"NudgeSB\"\n    },\n    {\n      \"name\": \"SBNudgeFactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Schema\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"Schema[${5:type}]{${1:adjust%l}}{${2:size%l}}{${3:left}}{${4:right}}\"\n      }\n    },\n    {\n      \"name\": \"schema\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"schema[${3:type}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"Schema\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Schema{${1:adjust%l}}{${2:size%l}}{${3:left}}{${4:right}}\"\n      }\n    },\n    {\n      \"name\": \"schema\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"schema{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"schemabox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"schemabox[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"schemabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schemabox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"schemataLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SwitchSB\"\n    },\n    {\n      \"name\": \"UCschema\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/schemata#c\": [\n      \"braces\",\n      \"brackets\",\n      \"parens\",\n      \"groups\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schemata#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schola-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scholaOsF\"\n    },\n    {\n      \"name\": \"scholaTLF\"\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/schola-otf#c\": [\n      \"lining\",\n      \"oldstyle\",\n      \"proportional\",\n      \"tabular\",\n      \"math=${1:font features}\",\n      \"ScaleRM=${1:factor}\",\n      \"defaultfeatures={${1:font features}}\",\n      \"libertinus\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schola-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scholax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thfamily\"\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scholax#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"foresolidus=\",\n      \"aftsolidus=\",\n      \"raisefrac=\",\n      \"theoremfont\",\n      \"scosf\",\n      \"sups\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"p\",\n      \"proportional\",\n      \"mainfont\",\n      \"tighter\",\n      \"looser\",\n      \"loosest\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scholax#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schooldocs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"lastpage\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:head%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subject[${2:head%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"school\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"school{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:rule length%l}]\"\n      }\n    },\n    {\n      \"name\": \"seprule\"\n    },\n    {\n      \"name\": \"seprule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"seprule[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"correct\"\n    },\n    {\n      \"name\": \"makesmalltitle\"\n    },\n    {\n      \"name\": \"titlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalltitledatestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleflush\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titletopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalltitletopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seprulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seprulelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlecorrectstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxedshape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxedshape{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headsubjectstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schoolstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headdatestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagenamestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"correctname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identityname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identityforename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schooldocstitles\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"classic\",\n      \"elegant\",\n      \"modern\",\n      \"soft\",\n      \"exam\",\n      \"collection\",\n      \"identity\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/schule.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"forarray\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"schulealt\",\n      \"if\": \"typ=schuleALT\"\n    },\n    {\n      \"name\": \"xsim\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"utfsym\"\n    },\n    {\n      \"name\": \"standalone\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"ctable\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"zref-totpages\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"doclicense\"\n    },\n    {\n      \"name\": \"ccicons\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"struktex\"\n    },\n    {\n      \"name\": \"relaycircuit\"\n    },\n    {\n      \"name\": \"pgf-umlcd\"\n    },\n    {\n      \"name\": \"pgf-umlsd\"\n    },\n    {\n      \"name\": \"syntaxdi\"\n    },\n    {\n      \"name\": \"tikzlibraryer\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows.blur\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    },\n    {\n      \"name\": \"mhchem\"\n    },\n    {\n      \"name\": \"ziffer\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"scrhack\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"swarnung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swarnung{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"sfehler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfehler{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"sinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sinfo{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"sdwarnung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdwarnung{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"sdinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdinfo{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"setzeSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setzeSymbol{${1:Symbol}}\"\n      }\n    },\n    {\n      \"name\": \"punkteAufgabe\"\n    },\n    {\n      \"name\": \"punkteTotal\"\n    },\n    {\n      \"name\": \"punktuebersicht\"\n    },\n    {\n      \"name\": \"punktuebersicht\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"punktuebersicht[${1:Darstellungsart}]\"\n      }\n    },\n    {\n      \"name\": \"punktuebersicht*\"\n    },\n    {\n      \"name\": \"punktuebersicht*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"punktuebersicht*[${1:Darstellungsart}]\"\n      }\n    },\n    {\n      \"name\": \"setzeAufgabentemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setzeAufgabentemplate{${1:Templatename%keyvals}}\",\n        \"keys\": [\n          \"\\\\setzeAufgabentemplate,\\\\setzeLoesungentemplate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setzeLoesungentemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setzeLoesungentemplate{${1:Templatename%keyvals}}\",\n        \"keys\": [\n          \"\\\\setzeAufgabentemplate,\\\\setzeLoesungentemplate\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"teilaufgabe\"\n    },\n    {\n      \"name\": \"teilaufgabe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"teilaufgabe[${1:Punkte}]\"\n      }\n    },\n    {\n      \"name\": \"teilaufgabeOhneLoesung\"\n    },\n    {\n      \"name\": \"luecke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luecke{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"luecke\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"luecke[${2:Optionen für blank%keyvals}]{${1:Text%text}}\",\n        \"keys\": [\n          \"\\\\luecke,\\\\textluecke\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textluecke\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textluecke{${1:Länge}}\"\n      }\n    },\n    {\n      \"name\": \"textluecke\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textluecke[${2:Optionen für blank%keyvals}]{${1:Text%text}}\",\n        \"keys\": [\n          \"\\\\luecke,\\\\textluecke\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"choice\"\n    },\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"choice[${1:richtig}]\"\n      }\n    },\n    {\n      \"name\": \"mcrichtig\"\n    },\n    {\n      \"name\": \"mcloesung\"\n    },\n    {\n      \"name\": \"bearbeitungshinweisZuAufgabe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bearbeitungshinweisZuAufgabe{${1:AufgabenId}}\"\n      }\n    },\n    {\n      \"name\": \"bearbeitungshinweisZuAufgabe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bearbeitungshinweisZuAufgabe[${2:Aufgabentyp}]{${1:AufgabenId}}\"\n      }\n    },\n    {\n      \"name\": \"bearbeitungshinweisliste\"\n    },\n    {\n      \"name\": \"aufgabeninput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aufgabeninput{${1:Verzeichnis}}{${2:Datei%file}}\"\n      }\n    },\n    {\n      \"name\": \"getBasedir\"\n    },\n    {\n      \"name\": \"setBasedir\"\n    },\n    {\n      \"name\": \"inputOnce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputOnce{${1:Datei%file}}\"\n      }\n    },\n    {\n      \"name\": \"ifAufgabenpoolOptionTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifAufgabenpoolOptionTF{${1:Optionname}}{${2:Wahr}}{${3:Falsch}}\"\n      }\n    },\n    {\n      \"name\": \"ifAufgabenpoolOptionT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifAufgabenpoolOptionT{${1:Optionname}}{${2:Wahr}}\"\n      }\n    },\n    {\n      \"name\": \"ifAufgabenpoolOptionF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifAufgabenpoolOptionF{${1:Optionname}}{${2:Falsch}}\"\n      }\n    },\n    {\n      \"name\": \"setAufgabenpoolOptionen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setAufgabenpoolOptionen{${1:Optionennamen}}\"\n      }\n    },\n    {\n      \"name\": \"erwartung\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"erwartung{${1:Erwartung}}{${2:Punkte}}\"\n      }\n    },\n    {\n      \"name\": \"erwartung\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"erwartung{${1:Erwartung}}{${2:Punkte}}[${3:Zusatzpunkte}]\"\n      }\n    },\n    {\n      \"name\": \"erwartungshorizont\"\n    },\n    {\n      \"name\": \"notenverteilung\"\n    },\n    {\n      \"name\": \"achtung\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"achtung{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"chb\"\n    },\n    {\n      \"name\": \"chb*\"\n    },\n    {\n      \"name\": \"hinweis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hinweis{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"person\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"person{${1:Name}}\"\n      }\n    },\n    {\n      \"name\": \"so\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"so{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"Seitenzahlen\"\n    },\n    {\n      \"name\": \"diastring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diastring{${1:Zeichenkette}}\"\n      }\n    },\n    {\n      \"name\": \"feldLinFormular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feldLinFormular{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldLinFormular\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"feldLinFormular{${1:Anzahl}}[${2:Textfeldargumente}]\"\n      }\n    },\n    {\n      \"name\": \"feldLinFormular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"feldLinFormular[${2:Abstand}]{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldLinFormular\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"feldLinFormular[${2:Abstand}]{${1:Anzahl}}[${3:Textfeldargumente}]\"\n      }\n    },\n    {\n      \"name\": \"Lkr\"\n    },\n    {\n      \"name\": \"Lkre\"\n    },\n    {\n      \"name\": \"Lpr\"\n    },\n    {\n      \"name\": \"Lprn\"\n    },\n    {\n      \"name\": \"EuE\"\n    },\n    {\n      \"name\": \"EuEn\"\n    },\n    {\n      \"name\": \"EK\"\n    },\n    {\n      \"name\": \"GK\"\n    },\n    {\n      \"name\": \"LK\"\n    },\n    {\n      \"name\": \"EKe\"\n    },\n    {\n      \"name\": \"GKe\"\n    },\n    {\n      \"name\": \"LKe\"\n    },\n    {\n      \"name\": \"EKen\"\n    },\n    {\n      \"name\": \"GKen\"\n    },\n    {\n      \"name\": \"LKen\"\n    },\n    {\n      \"name\": \"SuS\"\n    },\n    {\n      \"name\": \"SuSn\"\n    },\n    {\n      \"name\": \"LuL\"\n    },\n    {\n      \"name\": \"LuLn\"\n    },\n    {\n      \"name\": \"KuK\"\n    },\n    {\n      \"name\": \"KuKn\"\n    },\n    {\n      \"name\": \"lizenzName\"\n    },\n    {\n      \"name\": \"lizenzNameKurz\"\n    },\n    {\n      \"name\": \"lizenzSymbol\"\n    },\n    {\n      \"name\": \"Autor\"\n    },\n    {\n      \"name\": \"Datum\"\n    },\n    {\n      \"name\": \"Titel\"\n    },\n    {\n      \"name\": \"Fach\"\n    },\n    {\n      \"name\": \"Lerngruppe\"\n    },\n    {\n      \"name\": \"Kurs\"\n    },\n    {\n      \"name\": \"DokumentNummer\"\n    },\n    {\n      \"name\": \"feldLin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feldLin{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldLin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"feldLin[${2:Abstand}]{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldKar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feldKar{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldKar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"feldKar[${2:Seitenlänge}]{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"feldMil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"feldMil{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"symNase\"\n    },\n    {\n      \"name\": \"symAuge\"\n    },\n    {\n      \"name\": \"symAugen\"\n    },\n    {\n      \"name\": \"symMund\"\n    },\n    {\n      \"name\": \"symZunge\"\n    },\n    {\n      \"name\": \"symOhr\"\n    },\n    {\n      \"name\": \"symDaumenHoch\"\n    },\n    {\n      \"name\": \"symDaumenRunter\"\n    },\n    {\n      \"name\": \"symZeigefinger\"\n    },\n    {\n      \"name\": \"symApplaus\"\n    },\n    {\n      \"name\": \"symSprechblase\"\n    },\n    {\n      \"name\": \"symZweiSprechblasen\"\n    },\n    {\n      \"name\": \"symDreiSprechblasen\"\n    },\n    {\n      \"name\": \"symDenkblase\"\n    },\n    {\n      \"name\": \"symPalette\"\n    },\n    {\n      \"name\": \"symBleistift\"\n    },\n    {\n      \"name\": \"symFueller\"\n    },\n    {\n      \"name\": \"symKuli\"\n    },\n    {\n      \"name\": \"symBuntstift\"\n    },\n    {\n      \"name\": \"symLineal\"\n    },\n    {\n      \"name\": \"symGeodreieck\"\n    },\n    {\n      \"name\": \"symBueroklammer\"\n    },\n    {\n      \"name\": \"symBueroklammern\"\n    },\n    {\n      \"name\": \"symPin\"\n    },\n    {\n      \"name\": \"symNadel\"\n    },\n    {\n      \"name\": \"symPinsel\"\n    },\n    {\n      \"name\": \"symBuch\"\n    },\n    {\n      \"name\": \"symBild\"\n    },\n    {\n      \"name\": \"symMikroskop\"\n    },\n    {\n      \"name\": \"symHeft\"\n    },\n    {\n      \"name\": \"symBuecher\"\n    },\n    {\n      \"name\": \"symKlemmbrett\"\n    },\n    {\n      \"name\": \"symCD\"\n    },\n    {\n      \"name\": \"symZeitung\"\n    },\n    {\n      \"name\": \"symThermometer\"\n    },\n    {\n      \"name\": \"symSchere\"\n    },\n    {\n      \"name\": \"symSchloss\"\n    },\n    {\n      \"name\": \"symSchlossOffen\"\n    },\n    {\n      \"name\": \"symSchluessel\"\n    },\n    {\n      \"name\": \"symGlocke\"\n    },\n    {\n      \"name\": \"symKeineGlocke\"\n    },\n    {\n      \"name\": \"symLupe\"\n    },\n    {\n      \"name\": \"symNote\"\n    },\n    {\n      \"name\": \"symNoten\"\n    },\n    {\n      \"name\": \"symSmileyLachend\"\n    },\n    {\n      \"name\": \"symSmileyNeutral\"\n    },\n    {\n      \"name\": \"symSmileyTraurig\"\n    },\n    {\n      \"name\": \"symSmileyGrinsend\"\n    },\n    {\n      \"name\": \"symSmileySchlafend\"\n    },\n    {\n      \"name\": \"symSmileyZwinkernd\"\n    },\n    {\n      \"name\": \"symKlee\"\n    },\n    {\n      \"name\": \"symSonne\"\n    },\n    {\n      \"name\": \"symMond\"\n    },\n    {\n      \"name\": \"symStern\"\n    },\n    {\n      \"name\": \"symUhr\"\n    },\n    {\n      \"name\": \"symHaken\"\n    },\n    {\n      \"name\": \"symSpielkarte\"\n    },\n    {\n      \"name\": \"symPik\"\n    },\n    {\n      \"name\": \"symHerz\"\n    },\n    {\n      \"name\": \"symKaro\"\n    },\n    {\n      \"name\": \"symKreuz\"\n    },\n    {\n      \"name\": \"symPikAss\"\n    },\n    {\n      \"name\": \"symPikZwei\"\n    },\n    {\n      \"name\": \"symPikDrei\"\n    },\n    {\n      \"name\": \"symPikVier\"\n    },\n    {\n      \"name\": \"symPikFuenf\"\n    },\n    {\n      \"name\": \"symPikSechs\"\n    },\n    {\n      \"name\": \"symPikSieben\"\n    },\n    {\n      \"name\": \"symPikAcht\"\n    },\n    {\n      \"name\": \"symPikNeun\"\n    },\n    {\n      \"name\": \"symPikZehn\"\n    },\n    {\n      \"name\": \"symPikBube\"\n    },\n    {\n      \"name\": \"symPikDame\"\n    },\n    {\n      \"name\": \"symPikKoenig\"\n    },\n    {\n      \"name\": \"symHerzAss\"\n    },\n    {\n      \"name\": \"symHerzZwei\"\n    },\n    {\n      \"name\": \"symHerzDrei\"\n    },\n    {\n      \"name\": \"symHerzVier\"\n    },\n    {\n      \"name\": \"symHerzFuenf\"\n    },\n    {\n      \"name\": \"symHerzSechs\"\n    },\n    {\n      \"name\": \"symHerzSieben\"\n    },\n    {\n      \"name\": \"symHerzAcht\"\n    },\n    {\n      \"name\": \"symHerzNeun\"\n    },\n    {\n      \"name\": \"symHerzZehn\"\n    },\n    {\n      \"name\": \"symHerzBube\"\n    },\n    {\n      \"name\": \"symHerzDame\"\n    },\n    {\n      \"name\": \"symHerzKoenig\"\n    },\n    {\n      \"name\": \"symKaroAss\"\n    },\n    {\n      \"name\": \"symKaroZwei\"\n    },\n    {\n      \"name\": \"symKaroDrei\"\n    },\n    {\n      \"name\": \"symKaroVier\"\n    },\n    {\n      \"name\": \"symKaroFuenf\"\n    },\n    {\n      \"name\": \"symKaroSechs\"\n    },\n    {\n      \"name\": \"symKaroSieben\"\n    },\n    {\n      \"name\": \"symKaroAcht\"\n    },\n    {\n      \"name\": \"symKaroNeun\"\n    },\n    {\n      \"name\": \"symKaroZehn\"\n    },\n    {\n      \"name\": \"symKaroBube\"\n    },\n    {\n      \"name\": \"symKaroDame\"\n    },\n    {\n      \"name\": \"symKaroKoenig\"\n    },\n    {\n      \"name\": \"symKreuzAss\"\n    },\n    {\n      \"name\": \"symKreuzZwei\"\n    },\n    {\n      \"name\": \"symKreuzDrei\"\n    },\n    {\n      \"name\": \"symKreuzVier\"\n    },\n    {\n      \"name\": \"symKreuzFuenf\"\n    },\n    {\n      \"name\": \"symKreuzSechs\"\n    },\n    {\n      \"name\": \"symKreuzSieben\"\n    },\n    {\n      \"name\": \"symKreuzAcht\"\n    },\n    {\n      \"name\": \"symKreuzNeun\"\n    },\n    {\n      \"name\": \"symKreuzZehn\"\n    },\n    {\n      \"name\": \"symKreuzBube\"\n    },\n    {\n      \"name\": \"symKreuzDame\"\n    },\n    {\n      \"name\": \"symKreuzKoenig\"\n    },\n    {\n      \"name\": \"symBaseball\"\n    },\n    {\n      \"name\": \"symBasketball\"\n    },\n    {\n      \"name\": \"symFussball\"\n    },\n    {\n      \"name\": \"symVolleyball\"\n    },\n    {\n      \"name\": \"symHockey\"\n    },\n    {\n      \"name\": \"symLaufen\"\n    },\n    {\n      \"name\": \"symReiten\"\n    },\n    {\n      \"name\": \"symSchwimmen\"\n    },\n    {\n      \"name\": \"symSki\"\n    },\n    {\n      \"name\": \"symSnowboard\"\n    },\n    {\n      \"name\": \"symSurfen\"\n    },\n    {\n      \"name\": \"symTennis\"\n    },\n    {\n      \"name\": \"symTischtennis\"\n    },\n    {\n      \"name\": \"symPokal\"\n    },\n    {\n      \"name\": \"symMedaille\"\n    },\n    {\n      \"name\": \"symZielflagge\"\n    },\n    {\n      \"name\": \"symHandy\"\n    },\n    {\n      \"name\": \"symKeinHandy\"\n    },\n    {\n      \"name\": \"symTheater\"\n    },\n    {\n      \"name\": \"symAuto\"\n    },\n    {\n      \"name\": \"symBus\"\n    },\n    {\n      \"name\": \"symBahn\"\n    },\n    {\n      \"name\": \"symStrassenbahn\"\n    },\n    {\n      \"name\": \"symSchwebebahn\"\n    },\n    {\n      \"name\": \"symSeilbahn\"\n    },\n    {\n      \"name\": \"symSchiff\"\n    },\n    {\n      \"name\": \"symBoot\"\n    },\n    {\n      \"name\": \"symFahrrad\"\n    },\n    {\n      \"name\": \"symFussgaenger\"\n    },\n    {\n      \"name\": \"symRollstuhl\"\n    },\n    {\n      \"name\": \"symWuerfelEins\"\n    },\n    {\n      \"name\": \"symWuerfelZwei\"\n    },\n    {\n      \"name\": \"symWuerfelDrei\"\n    },\n    {\n      \"name\": \"symWuerfelVier\"\n    },\n    {\n      \"name\": \"symWuerfelFuenf\"\n    },\n    {\n      \"name\": \"symWuerfelSechs\"\n    },\n    {\n      \"name\": \"resetZeilenNr\"\n    },\n    {\n      \"name\": \"anchormark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchormark{${1:Nodename}}\"\n      }\n    },\n    {\n      \"name\": \"anchormark\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"anchormark{${1:Nodename}}[${2:Skalierung}]\"\n      }\n    },\n    {\n      \"name\": \"anchormark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"anchormark[${2:Horizontale Verschiebung}]{${1:Nodename}}\"\n      }\n    },\n    {\n      \"name\": \"anchormark\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"anchormark[${2:Horizontale Verschiebung}]{${1:Nodename}}[${3:Skalierung}]\"\n      }\n    },\n    {\n      \"name\": \"skaliereSequenzdiagramm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skaliereSequenzdiagramm{${1:Faktor}}\"\n      }\n    },\n    {\n      \"name\": \"newthreadtwo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newthreadtwo{${1:Bezeichnung}}{${2:Name}}{${3:Abstand}}\"\n      }\n    },\n    {\n      \"name\": \"newthreadtwo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newthreadtwo[${4:Farbe}]{${1:Bezeichnung}}{${2:Name}}{${3:Abstand}}\"\n      }\n    },\n    {\n      \"name\": \"nextlevel\"\n    },\n    {\n      \"name\": \"elementarladung\"\n    },\n    {\n      \"name\": \"plankscheEV\"\n    },\n    {\n      \"name\": \"plankscheJ\"\n    },\n    {\n      \"name\": \"elektronenmasse\"\n    },\n    {\n      \"name\": \"protonenmasse\"\n    },\n    {\n      \"name\": \"lichtgeschwindigkeit\"\n    },\n    {\n      \"name\": \"rydbergfrequenz\"\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unit[${2:value}]{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unitfrac{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"unitfrac[${3:value}]{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"material\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"material{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"material\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"material[${2:Ebene}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"quelle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quelle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"quelle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"quelle[${2:Ebene}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"vt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vt{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"vt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vt[${2:Ebene}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"TextFeld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextFeld{${1:Höhe}}\"\n      }\n    },\n    {\n      \"name\": \"monatWort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monatWort{${1:Monatszahl}}\"\n      }\n    },\n    {\n      \"name\": \"uebungBild\"\n    },\n    {\n      \"name\": \"hinweisBild\"\n    },\n    {\n      \"name\": \"besuchtitel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"besuchtitel{${1:Titel%text}}\"\n      }\n    },\n    {\n      \"name\": \"lehrer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lehrer{${1:Lehrername}}\"\n      }\n    },\n    {\n      \"name\": \"schulform\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schulform{${1:Schulform}}\"\n      }\n    },\n    {\n      \"name\": \"lerngruppe\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lerngruppe{${1:Name der Lerngruppe}}{${2:Anzahl weiblich}}{${3:Anzahl männlich}}\"\n      }\n    },\n    {\n      \"name\": \"lerngruppe\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"lerngruppe[${4:Kurzform der Lerngruppe}]{${1:Name der Lerngruppe}}{${2:Anzahl weiblich}}{${3:Anzahl männlich}}\"\n      }\n    },\n    {\n      \"name\": \"zeit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"zeit{${1:Startzeit}}{${2:Endzeit}}{${3:Stunde}}\"\n      }\n    },\n    {\n      \"name\": \"schule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schule{${1:Name der Schule}}\"\n      }\n    },\n    {\n      \"name\": \"raum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raum{${1:Raumbezeichnung}}\"\n      }\n    },\n    {\n      \"name\": \"setzeGrundlagen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setzeGrundlagen{${1:Termine}}\"\n      }\n    },\n    {\n      \"name\": \"captionsngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datengerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasngerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dq\"\n    },\n    {\n      \"name\": \"ntosstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ntossfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdqoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"aufgabe\"\n    },\n    {\n      \"name\": \"aufgabe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Optionen%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{aufgabe},\\\\begin{aufgabe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"aufgabe*\"\n    },\n    {\n      \"name\": \"aufgabe*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Optionen%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{aufgabe},\\\\begin{aufgabe*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"teilaufgaben\"\n    },\n    {\n      \"name\": \"loesung\"\n    },\n    {\n      \"name\": \"loesung*\"\n    },\n    {\n      \"name\": \"mcumgebung\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:Spaltenzahl})\"\n      }\n    },\n    {\n      \"name\": \"bearbeitungshinweis\"\n    },\n    {\n      \"name\": \"aufgabenpoolHinweis\"\n    },\n    {\n      \"name\": \"erwartungen\"\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"smalldescription\"\n    },\n    {\n      \"name\": \"smallenumerate\"\n    },\n    {\n      \"name\": \"smallitemize\"\n    },\n    {\n      \"name\": \"mehrspaltig\"\n    },\n    {\n      \"name\": \"mehrspaltig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Anzahl}]\"\n      }\n    },\n    {\n      \"name\": \"zeilenNr\"\n    },\n    {\n      \"name\": \"zeilenNr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Modulo}]\"\n      }\n    },\n    {\n      \"name\": \"zeilenNrMehrspaltig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"zeilenNrMehrspaltig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:Modulo}]{${1:Anzahl}}\"\n      }\n    },\n    {\n      \"name\": \"zeilenNrZweispaltig\"\n    },\n    {\n      \"name\": \"zeilenNrZweispaltig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Modulo}]\"\n      }\n    },\n    {\n      \"name\": \"hinweisBox\"\n    },\n    {\n      \"name\": \"handlungsfeld1\"\n    },\n    {\n      \"name\": \"handlungsfeld1\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"handlungsfeld2\"\n    },\n    {\n      \"name\": \"handlungsfeld2\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"handlungsfeld3\"\n    },\n    {\n      \"name\": \"handlungsfeld3\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"handlungsfeld4\"\n    },\n    {\n      \"name\": \"handlungsfeld4\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"handlungsfeld5\"\n    },\n    {\n      \"name\": \"handlungsfeld5\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    },\n    {\n      \"name\": \"handlungsfeld6\"\n    },\n    {\n      \"name\": \"handlungsfeld6\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tcolorbox options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/schule#c\": [\n      \"fach=${1|Informatik,Physik,Geschichte|}\",\n      \"weitereFaecher={${1:Fach1,Fach2,...}}\",\n      \"module=${1|Aufgaben,Aufgabenpool,Bewertung,Format,Formulare,genord,Kuerzel,Lizenzen,Metadaten,Papiertypen,Storycard,Symbole,Texte|}\",\n      \"typ=${1|ab,Beurteilung,folie,kl,leit,lzk,ub,ueb,ohne|}\",\n      \"sprache={${1:lang1,lang2,...}}\",\n      \"debug\",\n      \"loesungen=${1|folgend,keine,seite|}\",\n      \"erwartungshorizontAnzeigen\",\n      \"erwartungshorizontKeineSeiten\",\n      \"erwartungshorizontStil=${1|einzeltabellen,simpel,standard|}\",\n      \"kmkPunkte\",\n      \"notenOhneTendenz\",\n      \"notenschema={${1:spec}}\",\n      \"farbig\",\n      \"datumAnzeigen\",\n      \"namensfeldAnzeigen\",\n      \"seitenzahlen=${1|auto,autoGesamt,immer,immerGesamt,keine|}\",\n      \"zitate=${1|guillemets,quotes,swiss|}\",\n      \"gendering=${1|binneni,fem,gap,mas,split,star|}\",\n      \"lizenz=${1|cc-by-4,cc-by-sa-4,cc-by-nc-sa-4,cc-by-nc-sa-eu-4|}\",\n      \"nohyperxmp\",\n      \"lerngruppe=${1:Lerngruppe}\",\n      \"nummer=${1:Dokumentnummer}\",\n      \"klausurtyp=${1|klausur,klasse,kurs|}\",\n      \"hinweisLinkVerbergen\",\n      \"loesungLinkVerbergen\",\n      \"beurteilung={${1:Namen}}\",\n      \"ref={${1:Namen}}\",\n      \"zeitraum={${1:Zeitraum}}\",\n      \"schulname={${1:Namen}}\",\n      \"schullogo=${1:imagefile}\",\n      \"schulanschrift={${1:schulanschrift}}\",\n      \"schulstr={${1:Straße}}\",\n      \"schulort={${1:Ort}}\",\n      \"lehramt={${1:Lehramt}}\"\n    ],\n    \"\\\\begin{aufgabe},\\\\begin{aufgabe*}\": [\n      \"ID=${1:text}\",\n      \"counter-value=${1:integer}\",\n      \"subtitle=${1:text}\",\n      \"points=${1:number}\",\n      \"bonus-points=${1:number}\",\n      \"print\",\n      \"print!\",\n      \"use\",\n      \"use!\",\n      \"used\",\n      \"solution\",\n      \"tags={${1:tag1,tag2,...}}\",\n      \"topics={${1:topic1,topic2,...}}\",\n      \"page=${1:text}\",\n      \"page-value=${1:integer}\",\n      \"section=${1:text}\",\n      \"section-value=${1:integer}\",\n      \"chapter=${1:text}\",\n      \"chapter-value=${1:integer}\",\n      \"sectioning={${1:section numbers}}\",\n      \"exercise-body={${1:code}}\",\n      \"solution-body={${1:code}}\",\n      \"%xsimexerprop\",\n      \"%xsimexertag\",\n      \"symbol=${1:symbol}\"\n    ],\n    \"\\\\setzeAufgabentemplate,\\\\setzeLoesungentemplate\": [\n      \"schule-binnen\",\n      \"schule-default\",\n      \"schule-keinenummer\",\n      \"schule-keinepunkte\",\n      \"schule-keintitel\",\n      \"schule-randpunkte\",\n      \"schule-tcolorbox\"\n    ],\n    \"\\\\luecke,\\\\textluecke\": [\n      \"blank-style={${1:code}}\",\n      \"filled-style={${1:code}}\",\n      \"style={${1:code}}\",\n      \"scale=${1:factor}\",\n      \"width=\",\n      \"linespread=${1:factor}\",\n      \"line-increment=\",\n      \"line-minimum-length=\"\n    ],\n    \"\\\\begin{tikzpicture}#c\": [\n      \"pap\"\n    ],\n    \"\\\\node#c\": [\n      \"startstop\",\n      \"verzweigung\",\n      \"aktion\",\n      \"einausgabe\",\n      \"unterprogramm\"\n    ],\n    \"\\\\draw#c\": [\n      \"linie\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schule#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schulma-physik.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycircuits.ee.IEC\"\n    },\n    {\n      \"name\": \"circuitikz\",\n      \"if\": \"circuitikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Massstab\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Massstab{${1:Zahl1}}{${2:Einheit1%formula}}{${3:Zahl2}}{${4:Einheit2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tqty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tqty{${1:Zahl}}{${2:Einheit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tunit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tunit{${1:Einheit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Beschl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beschl{${1:Zahl}}\"\n      }\n    },\n    {\n      \"name\": \"Erdb\"\n    },\n    {\n      \"name\": \"Ortsf\"\n    },\n    {\n      \"name\": \"Elem\"\n    },\n    {\n      \"name\": \"Elekm\"\n    },\n    {\n      \"name\": \"Lichtg\"\n    },\n    {\n      \"name\": \"Planck\"\n    },\n    {\n      \"name\": \"EFK\"\n    },\n    {\n      \"name\": \"MFK\"\n    },\n    {\n      \"name\": \"MFK*\"\n    },\n    {\n      \"name\": \"Messschieber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Messschieber{${1:Messwert}}\"\n      }\n    },\n    {\n      \"name\": \"Messschieber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Messschieber[${2:cm|${3:inch}|cm+inch}]{${1:Messwert}}\"\n      }\n    },\n    {\n      \"name\": \"Messschraube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Messschraube{${1:Messwert}}\"\n      }\n    },\n    {\n      \"name\": \"Kraftmesser\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Kraftmesser{${1:Messwert}}{${2:Maximalausschlag}}\"\n      }\n    },\n    {\n      \"name\": \"Multimeter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Multimeter{${1:Messwert}}{${2:Maximalausschlag}}{${3:Maßeinheit}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/schulma-physik#c\": [\n      \"circuitikz\"\n    ],\n    \"\\\\node#c\": [\n      \"spannungsquelle\",\n      \"messgeraet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schulma-physik#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schulma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"autoaligne\"\n    },\n    {\n      \"name\": \"icomma\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LGS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LGS{${1:Gleichungen%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ehoch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ehoch{${1:Exponent}}\"\n      }\n    },\n    {\n      \"name\": \"diff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diff{${1:Variable}}\"\n      }\n    },\n    {\n      \"name\": \"Pkt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Pkt{${1:x%formula}}{${2:y%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pkt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Pkt[${3:Name%formula}]{${1:x%formula}}{${2:y%formula}}\"\n      }\n    },\n    {\n      \"name\": \"PktR\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PktR{${1:x%formula}}{${2:y%formula}}{${3:z%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Pkt\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Pkt[${4:Name%formula}]{${1:x%formula}}{${2:y%formula}}{${3:z%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Vek\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Vek{${1:x%formula}}{${2:y%formula}}{${3:z%formula}}\"\n      }\n    },\n    {\n      \"name\": \"VekBr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"VekBr{${1:x%formula}}{${2:y%formula}}{${3:z%formula}}\"\n      }\n    },\n    {\n      \"name\": \"GTRY\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GTRY{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"GTRY\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"GTRY{${1:index}}[${2:term%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Rechenkaestchen\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Rechenkaestchen{${1:Breite}}{${2:Höhe}}\"\n      }\n    },\n    {\n      \"name\": \"Rechenkaestchen\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Rechenkaestchen[${3:Kästchengröße}]{${1:Breite}}{${2:Höhe}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Kosy\"\n    },\n    {\n      \"name\": \"Kosy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pgfplots options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Kosy}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/schulma#c\": [\n      \"ohne-icomma\"\n    ],\n    \"\\\\node#c\": [\n      \"Kreuz\"\n    ],\n    \"\\\\begin{Kosy}#c\": [\n      \"compat=${1|1.18,1.17,1.16,1.15,1.14,1.13,1.12,1.11,1.10,1.9,1.8,1.7,1.6,1.5.1,1.5,1.4,1.3,pre 1.3,default|}\",\n      \"empty line=${1|auto,none,scanline,jump|}\",\n      \"domain=${1:x1:x2}\",\n      \"y domain=${1:y1:y2}\",\n      \"domain y=${1:y1:y2}\",\n      \"samples=${1:number}\",\n      \"samples y=${1:number}\",\n      \"samples at={${1:coord list}}\",\n      \"variable=${1:variable name}\",\n      \"variable y=${1:variable name}\",\n      \"trig format plots=${1|default,deg,rad|}\",\n      \"trig format=${1|deg,rad|}\",\n      \"translate gnuplot\",\n      \"parametric\",\n      \"id=${1:id}\",\n      \"prefix=${1:filename prefix}\",\n      \"raw gnuplot\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:tension}\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"xbar\",\n      \"bar shift auto\",\n      \"bar shift auto=${1:shift for multiple plots}\",\n      \"ybar\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar direction=${1|auto,x,y|}\",\n      \"ybar interval\",\n      \"ybar interval=${1:relative width}\",\n      \"xbar interval\",\n      \"xbar interval=${1:relative width}\",\n      \"xcomb\",\n      \"ycomb\",\n      \"quiver={${1:quiver options}}\",\n      \"stack plots=${1|x,y,false|}\",\n      \"ybar stacked\",\n      \"ybar stacked=${1|plus,minus|}\",\n      \"xbar stacked\",\n      \"xbar stacked=${1|plus,minus|}\",\n      \"stack dir=${1|plus,minus|}\",\n      \"reverse stacked plots\",\n      \"stacked ignores zero\",\n      \"xbar interval stacked\",\n      \"xbar interval stacked=${1|plus,minus|}\",\n      \"ybar interval stacked\",\n      \"ybar interval stacked=${1|plus,minus|}\",\n      \"stack negative=${1|on previous,separate|}\",\n      \"area style\",\n      \"only marks\",\n      \"scatter\",\n      \"scatter src=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"scatter/use mapped color={${1:options for each marker}}\",\n      \"scatter/classes={${1:styles for each class name}}\",\n      \"nodes near coords\",\n      \"nodes near coords={${1:content}}\",\n      \"nodes near coords*\",\n      \"nodes near coords*={${1:content}}\",\n      \"nodes near coords style={${1:options}}\",\n      \"node near coords style={${1:options}}\",\n      \"node near coord style={${1:options}}\",\n      \"nodes near coords align=${1|auto,horizontal,vertical|}\",\n      \"coordinate style/.condition={${1:expression}}{${2:options}}\",\n      \"coordinate style/.from={${1:options}}\",\n      \"coordinate style/.clear\",\n      \"scatter/position=${1|absolute,relative|}\",\n      \"scatter/@pre marker code/.code={${1:code}}\",\n      \"scatter/@post marker code/.code={${1:code}}\",\n      \"mesh\",\n      \"unbounded coords=${1|discard,jump|}\",\n      \"mesh/rows=${1:integer}\",\n      \"mesh/cols=${1:integer}\",\n      \"mesh/scanline verbose\",\n      \"mesh/ordering=${1|x varies,y varies,rowwise,colwise|}\",\n      \"mesh/check=${1|false,warning,error|}\",\n      \"z buffer=${1|default,none,auto,sort,reverse x seq,reverse y seq,reverse xy seq|}\",\n      \"surf\",\n      \"shader=${1|flat,interp,faceted,flat corner,flat mean,faceted interp|}\",\n      \"faceted color=\",\n      \"mesh/interior colormap={${1:map name}}{${2:colormap spec}}\",\n      \"mesh/interior colormap name=${1:map name}\",\n      \"mesh/interior colormap thresh=${1:number}\",\n      \"surf shading/precision=${1|pdf,postscript,ps|}\",\n      \"mesh/color input=${1|colormap,explicit,explicit mathparse|}\",\n      \"mesh/colorspace explicit color input=${1|rgb,rgb255,cmy,cmyk,cmyk255,gray,wave,hsb,Hsb,HTML|}\",\n      \"mesh/colorspace explicit color output=${1|rgb,cmyk,gray|}\",\n      \"contour lua={${1:contour options}}\",\n      \"contour gnuplot={${1:contour options}}\",\n      \"contour prepared={${1:contour options}}\",\n      \"contour prepared format=${1|standard,matlab|}\",\n      \"contour external={${1:contour options}}\",\n      \"contour filled={${1:contour options}}\",\n      \"matrix plot\",\n      \"matrix plot*\",\n      \"imagesc\",\n      \"imagesc*\",\n      \"patch\",\n      \"patch table={${1:file or inline table}}\",\n      \"patch table with point meta={${1:file or inline table}}\",\n      \"patch table with individual point meta={${1:file or inline table}}\",\n      \"mesh input=${1|lattice,patches,image|}\",\n      \"patch type=${1|default,rectangle,triangle,line|}\",\n      \"mark size=\",\n      \"mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"cube/size x=\",\n      \"cube/size y=\",\n      \"cube/size z=\",\n      \"no markers\",\n      \"mark repeat=${1:integer}\",\n      \"mark phase=${1:integer}\",\n      \"mark indices={${1:index list}}\",\n      \"mark color=\",\n      \"mark options={${1:options}}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dashdotted\",\n      \"densely dashdotted\",\n      \"loosely dashdotted\",\n      \"dashdotdotted\",\n      \"densely dashdotdotted\",\n      \"loosely dashdotdotted\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"font={${1:font commands}}\",\n      \"line width=\",\n      \"thin\",\n      \"ultra thin\",\n      \"very thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"%color\",\n      \"color=\",\n      \"draw=\",\n      \"fill=\",\n      \"colormap name=${1:map name}\",\n      \"colormap={${1:map name}}{${2:colormap spec}}\",\n      \"colormap default colorspace=${1|auto,gray,rgb,cmyk|}\",\n      \"color of colormap=${1:value}\",\n      \"color of colormap=${1:value} of ${2:map name}\",\n      \"index of colormap=${1:index}\",\n      \"index of colormap=${1:index} of ${2:map name}\",\n      \"const color of colormap=${1:value}\",\n      \"const color of colormap=${1:value} of ${2:map name}\",\n      \"cycle list={${1:list}}\",\n      \"cycle list name=${1:name}\",\n      \"mark list fill=\",\n      \"cycle list shift=${1:integer}\",\n      \"cycle multi list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"cycle multiindex* list={${1:<list1> \\\\nextlist <list2>...}}\",\n      \"point meta=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"set point meta if empty=${2|none,x,y,z,f(x),explicit,explicit symbolic,${1:expression}|}\",\n      \"point meta rel=${1|axis wide,per plot|}\",\n      \"point meta min=${1:number}\",\n      \"point meta max=${1:number}\",\n      \"colormap access=${1|map,direct,const,piecewise constant,piecewise const,piecewise linear|}\",\n      \"near ticklabel align=${1|inside,center,outside|}\",\n      \"near ticklabel at={${1:coord}}\",\n      \"sloped like x axis\",\n      \"sloped like y axis\",\n      \"sloped like z axis\",\n      \"sloped like x axis={${1:options}}\",\n      \"sloped like y axis={${1:options}}\",\n      \"sloped like z axis={${1:options}}\",\n      \"xlabel=${1:text}\",\n      \"ylabel=${1:text}\",\n      \"zlabel=${1:text}\",\n      \"xlabel shift=\",\n      \"ylabel shift=\",\n      \"zlabel shift=\",\n      \"label shift=\",\n      \"title=${1:text}\",\n      \"extra description/.code={${1:code}}\",\n      \"legend entries={${1:list}}\",\n      \"legend style={${1:options}}\",\n      \"legend pos=${1|south west,south east,north west,north east,outer north east|}\",\n      \"legend cell align=${1|left,right,center|}\",\n      \"legend columns\",\n      \"legend columns=${1:number}\",\n      \"legend plot pos=${1|left,right,none|}\",\n      \"legend image post style={${1:options}}\",\n      \"legend image code/.code={${1:code}}\",\n      \"line legend\",\n      \"empty legend\",\n      \"area legend\",\n      \"xbar legend\",\n      \"ybar legend\",\n      \"zbar legend\",\n      \"xbar interval legend\",\n      \"ybar interval legend\",\n      \"zbar interval legend\",\n      \"mesh legend\",\n      \"reverse legend\",\n      \"legend reversed\",\n      \"transpose legend\",\n      \"legend transposed\",\n      \"invoke before crossref tikzpicture={${1:code}}\",\n      \"invoke after crossref tikzpicture={${1:code}}\",\n      \"legend to name=\",\n      \"axis x line=${1|box,top,middle,center,bottom,none|}\",\n      \"axis x line*=${1|box,top,middle,center,bottom,none|}\",\n      \"axis y line=${1|box,left,middle,center,right,none|}\",\n      \"axis y line*=${1|box,left,middle,center,right,none|}\",\n      \"axis z line=${1|box,left,middle,center,right,none|}\",\n      \"axis z line*=${1|box,left,middle,center,right,none|}\",\n      \"axis lines=${1|box,left,middle,center,right,none|}\",\n      \"axis lines*=${1|box,left,middle,center,right,none|}\",\n      \"axis line style={${1:options}}\",\n      \"inner axis line style={${1:options}}\",\n      \"outer axis line style={${1:options}}\",\n      \"x axis line style={${1:options}}\",\n      \"y axis line style={${1:options}}\",\n      \"z axis line style={${1:options}}\",\n      \"separate axis lines\",\n      \"axis x line shift=\",\n      \"axis y line shift=\",\n      \"axis z line shift=\",\n      \"axis line shift=\",\n      \"axis x discontinuity=${1|crunch,parallel,none|}\",\n      \"axis y discontinuity=${1|crunch,parallel,none|}\",\n      \"axis z discontinuity=${1|crunch,parallel,none|}\",\n      \"xtickmin=${1:coord}\",\n      \"ytickmin=${1:coord}\",\n      \"ztickmin=${1:coord}\",\n      \"xtickmax=${1:coord}\",\n      \"ytickmax=${1:coord}\",\n      \"ztickmax=${1:coord}\",\n      \"hide x axis\",\n      \"hide y axis\",\n      \"hide z axis\",\n      \"hide axis\",\n      \"colorbar\",\n      \"colorbar right\",\n      \"colorbar left\",\n      \"colorbar horizontal\",\n      \"colorbar source\",\n      \"colorbar style={${1:options}}\",\n      \"colorbar/width=\",\n      \"colorbar/draw/.code={${1:code}}\",\n      \"colorbar sampled\",\n      \"colorbar sampled={${1:options}}\",\n      \"colorbar sampled line\",\n      \"colorbar sampled line={${1:options}}\",\n      \"colorbar as legend\",\n      \"colorbar to name=\",\n      \"width=\",\n      \"height=\",\n      \"scale only axis\",\n      \"x=\",\n      \"y=\",\n      \"z=\",\n      \"x={${1:(x,y)}}\",\n      \"y={${1:(x,y)}}\",\n      \"z={${1:(x,y)}}\",\n      \"xmode=${1|normal,linear,log|}\",\n      \"ymode=${1|normal,linear,log|}\",\n      \"zmode=${1|normal,linear,log|}\",\n      \"x dir=${1|normal,reverse|}\",\n      \"y dir=${1|normal,reverse|}\",\n      \"z dir=${1|normal,reverse|}\",\n      \"axis equal\",\n      \"axis equal image\",\n      \"unit vector ratio={${1:rx ry rz}}\",\n      \"unit vector ratio*={${1:rx ry rz}}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"x post scale=${1:scale}\",\n      \"y post scale=${1:scale}\",\n      \"z post scale=${1:scale}\",\n      \"scale=${1:scale}\",\n      \"max space between ticks=${1:integer}\",\n      \"try min ticks=${1:integer}\",\n      \"normalsize\",\n      \"small\",\n      \"footnotesize\",\n      \"tiny\",\n      \"scale mode=${1|auto,none,stretch to fill,scale uniformly|}\",\n      \"scale uniformly strategy=${1|auto,units only,change vertical limits,change horizontal limits|}\",\n      \"unit rescale keep size=${1|true,false,unless limits declared|}\",\n      \"view={${1:azimuth}}{${2:elevation}}\",\n      \"view/az=${1:azimuth}\",\n      \"view/h=${1:azimuth}\",\n      \"view/el=${1:elevation}\",\n      \"view/v=${1:elevation}\",\n      \"plot box ratio={${1:xstretch ystretch zstretch}}\",\n      \"3d box=${1|background,complete,complete*|}\",\n      \"error bars/x dir=${1|none,plus,minus,both|}\",\n      \"error bars/y dir=${1|none,plus,minus,both|}\",\n      \"error bars/z dir=${1|none,plus,minus,both|}\",\n      \"error bars/x fixed=${1:value}\",\n      \"error bars/y fixed=${1:value}\",\n      \"error bars/z fixed=${1:value}\",\n      \"error bars/x fixed relative=${1:percent}\",\n      \"error bars/y fixed relative=${1:percent}\",\n      \"error bars/z fixed relative=${1:percent}\",\n      \"error bars/x explicit\",\n      \"error bars/y explicit\",\n      \"error bars/z explicit\",\n      \"error bars/x explicit relative\",\n      \"error bars/y explicit relative\",\n      \"error bars/z explicit relative\",\n      \"error bars/error mark=${1|*,x,+,-,|,o,asterisk,star,10-pointed star,oplus,oplus*,otimes,otimes*,square,square*,triangle,triangle*,diamond,diamond*,halfdiamond,halfdiamond*,halfsquare,halfsquare*,halfsquare right,halfsquare right*,halfsquare left,halfsquare left*,Mercedes star,Mercedes star flipped,halfcircle,halfcircle*,pentagon,pentagon*,ball,text,cube,cube*|}\",\n      \"error bars/error mark options={${1:options}}\",\n      \"error bars/error bar style={${1:options}}\",\n      \"log ticks with fixed point\",\n      \"log plot exponent style={${1:options}}\",\n      \"log identify minor tick positions\",\n      \"log number format code/.code={${1:code}}\",\n      \"log base 10 number format code/.code={${1:code}}\",\n      \"log number format basis/.code={${1:code}}\",\n      \"xmin=${1:coord}\",\n      \"ymin=${1:coord}\",\n      \"zmin=${1:coord}\",\n      \"xmax=${1:coord}\",\n      \"ymax=${1:coord}\",\n      \"zmax=${1:coord}\",\n      \"min=${1:coord}\",\n      \"max=${1:coord}\",\n      \"clip xlimits\",\n      \"clip ylimits\",\n      \"clip zlimits\",\n      \"clip limits\",\n      \"enlarge x limits={${1:enlarge options}}\",\n      \"enlarge y limits={${1:enlarge options}}\",\n      \"enlarge z limits={${1:enlarge options}}\",\n      \"enlargelimits=${1:value}\",\n      \"enlargelimits respects figure size\",\n      \"log origin x=${1|0,infty|}\",\n      \"log origin y=${1|0,infty|}\",\n      \"log origin z=${1|0,infty|}\",\n      \"log origin=${1|0,infty|}\",\n      \"update limits\",\n      \"xtick distance=${1:number}\",\n      \"ytick distance=${1:number}\",\n      \"ztick distance=${1:number}\",\n      \"xtick=${2|data,{${1:coord list}}|}\",\n      \"ytick=${2|data,{${1:coord list}}|}\",\n      \"ztick=${2|data,{${1:coord list}}|}\",\n      \"minor x tick num=${1:number}\",\n      \"minor y tick num=${1:number}\",\n      \"minor z tick num=${1:number}\",\n      \"minor tick num=${1:number}\",\n      \"minor xtick=${2|data,{${1:coord list}}|}\",\n      \"minor ytick=${2|data,{${1:coord list}}|}\",\n      \"minor ztick=${2|data,{${1:coord list}}|}\",\n      \"minor tick=${2|data,{${1:coord list}}|}\",\n      \"extra x ticks={${1:coord list}}\",\n      \"extra y ticks={${1:coord list}}\",\n      \"extra z ticks={${1:coord list}}\",\n      \"xtickten={${1:exponent base 10 list}}\",\n      \"ytickten={${1:exponent base 10 list}}\",\n      \"ztickten={${1:exponent base 10 list}}\",\n      \"xticklabels={${1:label list}}\",\n      \"yticklabels={${1:label list}}\",\n      \"zticklabels={${1:label list}}\",\n      \"xticklabel=${1:command}\",\n      \"yticklabel=${1:command}\",\n      \"zticklabel=${1:command}\",\n      \"xticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"yticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"zticklabels from table={${1:table or file}}{${2:col name}}\",\n      \"extra x tick label={${1:code}}\",\n      \"extra y tick label={${1:code}}\",\n      \"extra z tick label={${1:code}}\",\n      \"extra x tick labels={${1:label list}}\",\n      \"extra y tick labels={${1:label list}}\",\n      \"extra z tick labels={${1:label list}}\",\n      \"x tick label as interval\",\n      \"y tick label as interval\",\n      \"z tick label as interval\",\n      \"xminorticks\",\n      \"yminorticks\",\n      \"zminorticks\",\n      \"xmajorticks\",\n      \"ymajorticks\",\n      \"zmajorticks\",\n      \"ticks=${1|minor,major,both,none|}\",\n      \"xtick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ytick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"ztick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"tick pos=${1|lower,upper,bottom,top,left,right,both|}\",\n      \"xticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"yticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"zticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"ticklabel pos=${1|lower,upper,bottom,top,left,right,default|}\",\n      \"xtick align=${1|inside,center,outside|}\",\n      \"ytick align=${1|inside,center,outside|}\",\n      \"ztick align=${1|inside,center,outside|}\",\n      \"tick align=${1|inside,center,outside|}\",\n      \"xticklabel shift=\",\n      \"yticklabel shift=\",\n      \"zticklabel shift=\",\n      \"ticklabel shift=\",\n      \"typeset ticklabels with strut\",\n      \"scaled ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled x ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled y ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"scaled z ticks=${5|true,false,base 10:${1:exp},real:${2:num},manual:{${3:label}}{${4:code}}|}\",\n      \"xtick scale label code/.code={${1:code}}\",\n      \"ytick scale label code/.code={${1:code}}\",\n      \"ztick scale label code/.code={${1:code}}\",\n      \"tick scale label code/.code={${1:code}}\",\n      \"tick scale binop=${1:TeX math operator}\",\n      \"scale ticks below exponent=${1:exponent}\",\n      \"scale ticks above exponent=${1:exponent}\",\n      \"max space between ticks=${1:number}\",\n      \"try min ticks=${1:number}\",\n      \"try min ticks log=${1:number}\",\n      \"tickwidth=\",\n      \"major tick length=\",\n      \"subtickwidth=\",\n      \"minor tick length=\",\n      \"log basis x=${1:number}\",\n      \"log basis y=${1:number}\",\n      \"log basis z=${1:number}\",\n      \"hide obscured x ticks\",\n      \"hide obscured y ticks\",\n      \"hide obscured z ticks\",\n      \"xminorgrids\",\n      \"yminorgrids\",\n      \"zminorgrids\",\n      \"xmajorgrids\",\n      \"ymajorgrids\",\n      \"zmajorgrids\",\n      \"grid=${1|minor,major,both,none|}\",\n      \"allow reversal of rel axis cs\",\n      \"pos=${1:fraction}\",\n      \"sloped\",\n      \"allow upside down\",\n      \"pos segment=${1:segment index}\",\n      \"forget plot style={${1:options}}\",\n      \"label style={${1:options}}\",\n      \"x label style={${1:options}}\",\n      \"y label style={${1:options}}\",\n      \"z label style={${1:options}}\",\n      \"xlabel style={${1:options}}\",\n      \"ylabel style={${1:options}}\",\n      \"zlabel style={${1:options}}\",\n      \"title style={${1:options}}\",\n      \"3d box foreground style={${1:options}}\",\n      \"colorbar sampled line style={${1:options}}\",\n      \"tick style={${1:options}}\",\n      \"minor tick style={${1:options}}\",\n      \"major tick style={${1:options}}\",\n      \"tick label style={${1:options}}\",\n      \"ticklabel style={${1:options}}\",\n      \"x tick label style={${1:options}}\",\n      \"y tick label style={${1:options}}\",\n      \"z tick label style={${1:options}}\",\n      \"xticklabel style={${1:options}}\",\n      \"yticklabel style={${1:options}}\",\n      \"zticklabel style={${1:options}}\",\n      \"x tick scale label style={${1:options}}\",\n      \"y tick scale label style={${1:options}}\",\n      \"z tick scale label style={${1:options}}\",\n      \"xtick style={${1:options}}\",\n      \"ytick style={${1:options}}\",\n      \"ztick style={${1:options}}\",\n      \"minor x tick style={${1:options}}\",\n      \"minor y tick style={${1:options}}\",\n      \"minor z tick style={${1:options}}\",\n      \"major x tick style={${1:options}}\",\n      \"major y tick style={${1:options}}\",\n      \"major z tick style={${1:options}}\",\n      \"extra x tick style={${1:options}}\",\n      \"extra y tick style={${1:options}}\",\n      \"extra z tick style={${1:options}}\",\n      \"extra tick style={${1:options}}\",\n      \"grid style={${1:options}}\",\n      \"minor grid style={${1:options}}\",\n      \"major grid style={${1:options}}\",\n      \"x grid style={${1:options}}\",\n      \"y grid style={${1:options}}\",\n      \"z grid style={${1:options}}\",\n      \"minor x grid style={${1:options}}\",\n      \"minor y grid style={${1:options}}\",\n      \"minor z grid style={${1:options}}\",\n      \"major x grid style={${1:options}}\",\n      \"major y grid style={${1:options}}\",\n      \"major z grid style={${1:options}}\",\n      \"at={${1:(x,y)}}\",\n      \"anchor=${1:name}\",\n      \"clip\",\n      \"clip marker paths\",\n      \"clip bounding box=${1|default tikz,upper bound|}\",\n      \"clip mode=${1|global,individual|}\",\n      \"x coord trafo/.code={${1:code}}\",\n      \"y coord trafo/.code={${1:code}}\",\n      \"z coord trafo/.code={${1:code}}\",\n      \"x coord inv trafo/.code={${1:code}}\",\n      \"y coord inv trafo/.code={${1:code}}\",\n      \"z coord inv trafo/.code={${1:code}}\",\n      \"symbolic x coords={${1:dictionary}}\",\n      \"symbolic y coords={${1:dictionary}}\",\n      \"symbolic z coords={${1:dictionary}}\",\n      \"x filter/.expression={${1:math expr}}\",\n      \"y filter/.expression={${1:math expr}}\",\n      \"z filter/.expression={${1:math expr}}\",\n      \"x filter/.append expression={${1:math expr}}\",\n      \"y filter/.append expression={${1:math expr}}\",\n      \"z filter/.append expression={${1:math expr}}\",\n      \"x filter/.code={${1:code}}\",\n      \"y filter/.code={${1:code}}\",\n      \"z filter/.code={${1:code}}\",\n      \"filter point/.code={${1:code}}\",\n      \"pre filter/.code={${1:code}}\",\n      \"skip coords between index={${1:begin}}{${2:end}}\",\n      \"each nth point=${1:integer}\",\n      \"restrict x to domain=${1:min:max}\",\n      \"restrict y to domain=${1:min:max}\",\n      \"restrict z to domain=${1:min:max}\",\n      \"restrict x to domain*=${1:min:max}\",\n      \"restrict y to domain*=${1:min:max}\",\n      \"restrict z to domain*=${1:min:max}\",\n      \"restrict expr to domain={${1:expr}}{${2:min:max}}\",\n      \"restrict expr to domain*={${1:expr}}{${2:min:max}}\",\n      \"filter discard warning\",\n      \"data cs=${1|cart,polar,polarrad|}\",\n      \"disablelogfilter\",\n      \"disabledatascaling\",\n      \"execute at begin plot={${1:commands}}\",\n      \"execute at end plot={${1:commands}}\",\n      \"execute at begin axis={${1:commands}}\",\n      \"execute at end axis={${1:commands}}\",\n      \"execute at begin plot visualization={${1:commands}}\",\n      \"execute at end plot visualization={${1:commands}}\",\n      \"forget plot\",\n      \"before end axis/.code={${1:code}}\",\n      \"after end axis/.code={${1:code}}\",\n      \"axis on top\",\n      \"visualization depends on=${1:\\\\macro}\",\n      \"visualization depends on=${1:expression} \\\\as ${2:\\\\macro}\",\n      \"visualization depends on=value ${1:content} \\\\as ${2:\\\\macro}\",\n      \"set layers=${1|none,standard,axis on top|}\",\n      \"on layer=${1:layer name}\",\n      \"mark layer=${2|auto,like plot,${1:layer name}|}\",\n      \"cell picture=${1|true,false,if necessary|}\",\n      \"enable tick line clipping\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schulma#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/schwalbe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"diagram\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rb{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"normaldia\"\n    },\n    {\n      \"name\": \"smalldia\"\n    },\n    {\n      \"name\": \"urdruck\"\n    },\n    {\n      \"name\": \"windowpar\"\n    },\n    {\n      \"name\": \"bel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ferner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helplength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boardskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublediagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doublediagram{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/schwalbe#c\": [\n      \"10pt\",\n      \"11pt\",\n      \"12pt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/schwalbe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scientific-thesis-cover.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Coverpage\"\n    },\n    {\n      \"name\": \"Affirmation\"\n    },\n    {\n      \"name\": \"ifinputencloaded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputencloadedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputencloadedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsgerman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Titelblatt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Versicherung\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scientific-thesis-cover#c\": [\n      \"language=${1|german,english|}\",\n      \"title={${1:title text}}\",\n      \"author={${1:author}}\",\n      \"type=${2|bachelor,master,diplom,study,projectinf,{${1:text}}|}\",\n      \"institute=${2|iaas,ipvs,fmi,iste,iti,iris,vis,visus,sec,fac,{${1:text}}|}\",\n      \"course=${2|cs,se,mcl,msv,bis,simtech,{${1:text}}|}\",\n      \"examiner={${1:examiner}}\",\n      \"supervisor={${1:supervisor}}\",\n      \"startdate={${1:YYYY-MM-DD}}\",\n      \"enddate={${1:YYYY-MM-DD}}\",\n      \"crk={${1:classification codes}}\",\n      \"number=${1:number}\",\n      \"setPageNumberToOne\",\n      \"setCoverPageNumberToMinusOne\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scientific-thesis-cover#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scikgtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"suffix\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"researchproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"researchproblem{${1:problem%text}}\"\n      }\n    },\n    {\n      \"name\": \"researchproblem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"researchproblem[${2:number}]{${1:problem%text}}\"\n      }\n    },\n    {\n      \"name\": \"researchproblem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"researchproblem*{${1:problem%text}}\"\n      }\n    },\n    {\n      \"name\": \"researchproblem*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"researchproblem*[${2:number}]{${1:problem%text}}\"\n      }\n    },\n    {\n      \"name\": \"objective\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objective{${1:objective%text}}\"\n      }\n    },\n    {\n      \"name\": \"objective\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"objective[${2:number}]{${1:objective%text}}\"\n      }\n    },\n    {\n      \"name\": \"objective*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objective*{${1:objective%text}}\"\n      }\n    },\n    {\n      \"name\": \"objective*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"objective*[${2:number}]{${1:objective%text}}\"\n      }\n    },\n    {\n      \"name\": \"method\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"method{${1:method%text}}\"\n      }\n    },\n    {\n      \"name\": \"method\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"method[${2:number}]{${1:method%text}}\"\n      }\n    },\n    {\n      \"name\": \"method*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"method*{${1:method%text}}\"\n      }\n    },\n    {\n      \"name\": \"method*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"method*[${2:number}]{${1:method%text}}\"\n      }\n    },\n    {\n      \"name\": \"result\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"result{${1:result%text}}\"\n      }\n    },\n    {\n      \"name\": \"result\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"result[${2:number}]{${1:result%text}}\"\n      }\n    },\n    {\n      \"name\": \"result*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"result*{${1:result%text}}\"\n      }\n    },\n    {\n      \"name\": \"result*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"result*[${2:number}]{${1:result%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conclusion{${1:conclusion%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"conclusion[${2:number}]{${1:conclusion%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conclusion*{${1:conclusion%text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"conclusion*[${2:number}]{${1:conclusion%text}}\"\n      }\n    },\n    {\n      \"name\": \"metatitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metatitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"metatitle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metatitle*{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"metaauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metaauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"metaauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metaauthor*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"researchfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"researchfield{${1:field%text}}\"\n      }\n    },\n    {\n      \"name\": \"researchfield*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"researchfield*{${1:field%text}}\"\n      }\n    },\n    {\n      \"name\": \"contribution\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contribution{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"contribution\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"contribution[${3:number}]{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"contribution*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contribution*{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"contribution*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"contribution*[${3:number}]{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"uri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uri{${1:URI%URL}}{${2:label%text}}\"\n      }\n    },\n    {\n      \"name\": \"addmetaproperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addmetaproperty{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"addmetaproperty\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addmetaproperty[${2:model}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newpropertycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newpropertycommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newpropertycommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newpropertycommand[${2:model}]{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scikgtex#c\": [\n      \"compatibility\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scikgtex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sclang-prettifier.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scttfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting,\\\\lstMakeShortInline\": [\n      \"style=SuperCollider-IDE\",\n      \"scsymbolstyle=${1:style}\",\n      \"scenvvarstyle=${1:style}\",\n      \"scclassstyle=${1:style}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scontents.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setupsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupsc{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setupsc,\\\\usepackage/scontents#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newenvsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newenvsc{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newenvsc\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"newenvsc{${1:envname}}[${2:initial keys%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"Scontents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Scontents{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"Scontents\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Scontents[${2:options%keyvals}]{${1:argument}}\",\n        \"keys\": [\n          \"\\\\Scontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Scontents*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Scontents*{${1:argument}}\"\n      }\n    },\n    {\n      \"name\": \"Scontents*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Scontents*[${2:options%keyvals}]{${1:argument}}\",\n        \"keys\": [\n          \"\\\\Scontents*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getstored\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getstored{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"getstored\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getstored[${2:index}]{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"foreachsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreachsc{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"foreachsc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"foreachsc[${2:options%keyvals}]{${1:seq name}}\",\n        \"keys\": [\n          \"\\\\foreachsc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typestored\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typestored{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"typestored\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typestored[${2:options%keyvals}]{${1:seq name}}\",\n        \"keys\": [\n          \"\\\\typestored#c,\\\\meaningsc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meaningsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meaningsc{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"meaningsc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meaningsc[${2:options%keyvals}]{${1:seq name}}\",\n        \"keys\": [\n          \"\\\\typestored#c,\\\\meaningsc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"countsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countsc{${1:seq name}}\"\n      }\n    },\n    {\n      \"name\": \"cleanseqsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleanseqsc{${1:seq name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scontents\"\n    },\n    {\n      \"name\": \"scontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scontents}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"verbatimsc\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\setupsc,\\\\usepackage/scontents#c\": [\n      \"store-env=${1:seq name}\",\n      \"store-cmd=${1:seq name}\",\n      \"print-env\",\n      \"print-cmd\",\n      \"print-all\",\n      \"store-all=${1:seq name}\",\n      \"overwrite\",\n      \"width-tab=${1:integer}\",\n      \"force-eol\",\n      \"verb-font=${1:font family}\"\n    ],\n    \"\\\\begin{scontents}\": [\n      \"store-env=${1:seq name}\",\n      \"print-env\",\n      \"write-env=${1:file.ext}\",\n      \"write-out=${1:file.ext}\",\n      \"overwrite\",\n      \"force-eol\"\n    ],\n    \"\\\\Scontents\": [\n      \"store-cmd=${1:seq name}\",\n      \"print-cmd\",\n      \"force-eol\"\n    ],\n    \"\\\\Scontents*\": [\n      \"store-cmd=${1:seq name}\",\n      \"print-cmd\",\n      \"write-cmd=${1:file.ext}\",\n      \"write-out=${1:file.ext}\",\n      \"overwrite\",\n      \"force-eol\"\n    ],\n    \"\\\\foreachsc\": [\n      \"sep={${1:code}}\",\n      \"step=${1:integer}\",\n      \"start=${1:integer}\",\n      \"stop=${1:integer}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"wrapper={${1:code}}\"\n    ],\n    \"\\\\typestored#c,\\\\meaningsc#c\": [\n      \"width-tab=${1:integer}\",\n      \"${1:index}\"\n    ],\n    \"\\\\mergesc\": [\n      \"typestored\",\n      \"meaningsc\",\n      \"print-cmd\",\n      \"write-out=${1:file.ext}\",\n      \"width-tab=${1:integer}\",\n      \"overwrite\"\n    ]\n  },\n  \"args\": [\n    \"\\\\setupsc,\\\\usepackage/scontents#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scraddr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"InputAddressFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputAddressFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"adrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"adrentry{${1:LastName}}{${2:FirstName}}{${3:Address}}{${4:Phone}}{${5:F1}}{${6:F2}}{${7:Comment}}{${8:Key}}\"\n      }\n    },\n    {\n      \"name\": \"addrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addrentry{${1:LastName}}{${2:FirstName}}{${3:Address}}{${4:Phone}}{${5:F1}}{${6:F2}}{${7:F3}}{${8:F4}}{${9:Key}}\"\n      }\n    },\n    {\n      \"name\": \"addrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrchar{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"adrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adrchar{${1:initial}}\"\n      }\n    },\n    {\n      \"name\": \"Name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Name{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FirstName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstName{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"LastName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LastName{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Address{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Telephone{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeI{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeII{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"Comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Comment{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeIII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeIII{${1:Key}}\"\n      }\n    },\n    {\n      \"name\": \"FreeIV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FreeIV{${1:Key}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scraddr#c\": [\n      \"adrFreeIVempty\",\n      \"adrFreeIVshow\",\n      \"adrFreeIVwarn\",\n      \"adrFreeIVstop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scraddr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scrambledenvs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newscrambledenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newscrambledenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"defaultlabelfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultlabelfont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"defaultrefprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultrefprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"defaultreffont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultreffont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"defaultprintenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defaultprintenv{${1:open env code}}{${2:close env code}}\"\n      }\n    },\n    {\n      \"name\": \"defaultprintitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultprintitem{${1:item cmds}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scrambledenvs#c\": [\n      \"noscramble\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scrambledenvs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scratch3.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"blockmove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockmove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocklook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocklook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocksound\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocksound{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockpen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockvariable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockvariable{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocklist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocklist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockevent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockevent{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockcontrol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockcontrol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blocksensing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blocksensing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ovalmove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalmove{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalmove*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalmove*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovallook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovallook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovallook*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovallook*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalsound\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalsound{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalsound*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalsound*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalpen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalpen{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalpen*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalpen*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalvariable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalvariable{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalvariable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalvariable*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovallist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovallist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovallist*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovallist*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalcontrol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalcontrol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalcontrol*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalcontrol*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalsensing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalsensing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalsensing*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalsensing*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovaloperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovaloperator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovaloperator*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovaloperator*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"turnleft\"\n    },\n    {\n      \"name\": \"turnright\"\n    },\n    {\n      \"name\": \"pencolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pencolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"blockinit\"\n    },\n    {\n      \"name\": \"blockinitclone\"\n    },\n    {\n      \"name\": \"greenflag\"\n    },\n    {\n      \"name\": \"selectmenu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectmenu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockif\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blockif{${1:test%text}}{${2:true-instructions%text}}\"\n      }\n    },\n    {\n      \"name\": \"blockifelse\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"blockifelse{${1:test%text}}{${2:true-instructions%text}}{${3:false-instructions%text}}\"\n      }\n    },\n    {\n      \"name\": \"booloperator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booloperator{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boolsensing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolsensing{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boollist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boollist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boolempty\"\n    },\n    {\n      \"name\": \"boolempty\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"boolempty[${1:dimen%l}]\"\n      }\n    },\n    {\n      \"name\": \"blockstop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockstop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockrepeat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blockrepeat{${1:text}}{${2:instructions}}\"\n      }\n    },\n    {\n      \"name\": \"blockinfloop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"blockinfloop{${1:text}}{${2:instructions}}\"\n      }\n    },\n    {\n      \"name\": \"initmoreblocks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"initmoreblocks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"namemoreblocks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namemoreblocks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ovalmoreblocks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovalmoreblocks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockmoreblocks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blockmoreblocks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boolmoreblocks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolmoreblocks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blockspace\"\n    },\n    {\n      \"name\": \"blockspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blockspace[${1:coeff}]\"\n      }\n    },\n    {\n      \"name\": \"setscratch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setscratch{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{scratch},\\\\setscratch,\\\\setdefaultscratch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdefaultscratch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdefaultscratch{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{scratch},\\\\setscratch,\\\\setdefaultscratch\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetscratch\"\n    },\n    {\n      \"name\": \"numblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numblock{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scratch\"\n    },\n    {\n      \"name\": \"scratch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scratch},\\\\setscratch,\\\\setdefaultscratch\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{scratch},\\\\setscratch,\\\\setdefaultscratch\": [\n      \"else word=${1:characters}\",\n      \"pre text=${1:code}\",\n      \"x sep=\",\n      \"y sepsup=\",\n      \"y sepinf=\",\n      \"line width=\",\n      \"loop width=\",\n      \"loop height=\",\n      \"corner=\",\n      \"notch=\",\n      \"scale=${1:coeff}\",\n      \"init arcangle=${1:degrees}\",\n      \"init arclength=\",\n      \"print\",\n      \"fill blocks\",\n      \"fill gray=${1:factor}\",\n      \"contrast=${1:integer}\",\n      \"text color=\",\n      \"flag gray=${1:factor}\",\n      \"line gray=${1:factor}\",\n      \"num blocks\",\n      \"num sep=\",\n      \"num start=${1:integer}\",\n      \"baseline=${1:l, c, or <integer>}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"KOMAScriptVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rloop{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfLTXAtLeastTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLTXAtLeastTF{${1:date}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineFamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamilyMember\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineFamilyMember{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamilyMember\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefineFamilyMember[${2:member}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamilyKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineFamilyKey{${1:family}}{${2:key%plain}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamilyKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DefineFamilyKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"DefineFamilyKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"DefineFamilyKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxFamilyKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RelaxFamilyKey{${1:family}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"RelaxFamilyKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RelaxFamilyKey[${3:member}]{${1:family}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyKeyState\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyKeyStateUnknown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyKeyStateUnknownValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyKeyStateNeedValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyKeyStateProcessed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyOfKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyMemberOfKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FamilyProcessOptions{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FamilyProcessOptions[${2:member}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfFamilyOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfFamilyOptions{${1:action}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndOfFamilyOptions*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndOfFamilyOptions*{${1:action}}\"\n      }\n    },\n    {\n      \"name\": \"IfArgIsEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfArgIsEmpty{${1:arg}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"XdivY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XdivY{${1:dividend}}{${2:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"XmodY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XmodY{${1:dividend}}{${2:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"Ifundefinedorrelax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifundefinedorrelax{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnotundefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnotundefined{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ifstr{${1:string1}}{${2:string2}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifstrstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Ifstrstart{${1:string1}}{${2:string2}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifislengthprimitive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifislengthprimitive{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisdimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisdimen{${1:string}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisskip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisskip{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifiscount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifiscount{${1:count}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisdimexpr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisdimexpr{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisglueexpr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisglueexpr{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisnumexpr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisnumexpr{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisdefchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisdefchar{${1:arg}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifiscounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifiscounter{${1:counter}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisinteger{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisdimension\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisdimension{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifisglue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifisglue{${1:expression}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifnumber{${1:string}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifintnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifintnumber{${1:string}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifdimen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifdimen{${1:string}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifpdfoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifpdfoutput{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifpsoutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifpsoutput{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifdvioutput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifdvioutput{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfRTL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfRTL{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLTR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfLTR{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"PackageInfoNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PackageInfoNoLine{${1:package}}{${2:information%text}}\"\n      }\n    },\n    {\n      \"name\": \"ClassInfoNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ClassInfoNoLine{${1:class}}{${2:information%text}}\"\n      }\n    },\n    {\n      \"name\": \"IfActiveMkBoth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfActiveMkBoth{${1:then code}}{${2:else code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeFamilyProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeFamilyProcessOptions{${1:family}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeFamilyProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BeforeFamilyProcessOptions[${3:member}]{${1:family}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FamilyExecuteOptions{${1:family}}{${2:options list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FamilyExecuteOptions[${3:member}]{${1:family}}{${2:options list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FamilyOptions{${1:family}}{${2:options list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyOption{${1:family}}{${2:option}}{${3:value list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyUnknownKeyValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilyUnknownKeyValue{${1:family}}{${2:key%plain}}{${3:value}}{${4:value list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FamilyBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyBoolKey{${1:family}}{${2:key%plain}}{${3:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyBoolKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetBool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetBool{${1:family}}{${2:key%plain}}{${3:switch name}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyInverseBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyInverseBoolKey{${1:family}}{${2:key%plain}}{${3:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyInverseBoolKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyInverseBoolKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:switch name}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetInverseBool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetInverseBool{${1:family}}{${2:key%plain}}{${3:switch name}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyCounterKey{${1:family}}{${2:key%plain}}{${3:counter}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyCounterKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:counter}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyCounterKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:counter}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetCounter{${1:family}}{${2:key%plain}}{${3:counter}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyCounterMacroKey{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyCounterMacroKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCounterMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyCounterMacroKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetCounterMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetCounterMacro{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyLengthKey{${1:family}}{${2:key%plain}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyLengthKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyLengthKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetLength{${1:family}}{${2:key%plain}}{${3:length}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyLengthMacroKey{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyLengthMacroKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyLengthMacroKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetLengthMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetLengthMacro{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyUseLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyUseLengthMacroKey{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyUseLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyUseLengthMacroKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyUseLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyUseLengthMacroKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetUseLengthMacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilySetUseLengthMacro{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyNumericalKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FamilyNumericalKey{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FamilyLengthMacroKey[${5:member}]{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthMacroKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}{}\",\n        \"snippet\": \"FamilyLengthMacroKey[${5:member}]{${1:family}}{${2:key%plain}}[${6:default}]{${3:macro%cmd}}{${4:value list}}\"\n      }\n    },\n    {\n      \"name\": \"FamilySetNumerical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"FamilySetNumerical{${1:family}}{${2:key%plain}}{${3:macro%cmd}}{${4:value list}}{${5:value}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyStringKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyStringKey{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyStringKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyStringKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyStringKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyStringKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyCSKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"FamilyCSKey{${1:family}}{${2:key%plain}}{${3:csname}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"FamilyLengthKey[${4:member}]{${1:family}}{${2:key%plain}}{${3:csname}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyLengthKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"FamilyLengthKey[${4:member}]{${1:family}}{${2:key%plain}}[${5:default}]{${3:csname}}\"\n      }\n    },\n    {\n      \"name\": \"ForDoHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForDoHook{${1:specification}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"SplitDoHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SplitDoHook{${1:specifier}}{${2:head macro%cmd}}{${3:remainder macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteDoHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteDoHook{${1:specifier}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoDoHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddtoDoHook{${1:name}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoOneTimeDoHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddtoOneTimeDoHook{${1:name}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"defcaptionname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defcaptionname{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defcaptionname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defcaptionname*{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecaptionname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providecaptionname{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecaptionname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providecaptionname*{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcaptionname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newcaptionname{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcaptionname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newcaptionname*{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcaptionname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewcaptionname{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcaptionname*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewcaptionname*{${1:language list}}{${2:term%cmd}}{${3:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrdate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CenturyPart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CenturyPart{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DecadePart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DecadePart{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"DayNumber\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DayNumber{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"ISODayNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISODayNumber{${1:ISO-date}}\"\n      }\n    },\n    {\n      \"name\": \"DayName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DayName{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"ISODayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ISODayName{${1:ISO-date}}\"\n      }\n    },\n    {\n      \"name\": \"DayNameByNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DayNameByNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ISOToday\"\n    },\n    {\n      \"name\": \"IsoToday\"\n    },\n    {\n      \"name\": \"todaysname\"\n    },\n    {\n      \"name\": \"todaysnumber\"\n    },\n    {\n      \"name\": \"nameday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameday{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newdaylanguage\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"newdaylanguage{${1:language}}{${2:Monday}}{${3:Tuesday}}{${4:Wednesday}}{${5:Thursday}}{${6:Friday}}{${7:Saturday}}{${8:Sunday}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/screenplay-pkg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fadein\"\n    },\n    {\n      \"name\": \"intslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intextslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intextslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"intextslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intextslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extintslug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extintslug{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"extintslug\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"extintslug[${2:time}]{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"paren\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paren{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dialbreak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dialbreak{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"dialbreak\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dialbreak[${2:directions%text}]{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"titbreak\"\n    },\n    {\n      \"name\": \"centertitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centertitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"centretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intercut\"\n    },\n    {\n      \"name\": \"pov\"\n    },\n    {\n      \"name\": \"revert\"\n    },\n    {\n      \"name\": \"fadeout\"\n    },\n    {\n      \"name\": \"theend\"\n    },\n    {\n      \"name\": \"screenspacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"screenspacing{${1:spacing}}\"\n      }\n    },\n    {\n      \"name\": \"screenfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"screenfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"contd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialfix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialgutter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialnametab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dialwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fadeintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fadeouttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercuttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"more\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parentab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sccenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sccenter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sccentre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sccentre{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sepintext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scflushright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scflushright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"slugspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slug{${1:pretext}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"slug\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"slug[${3:time}]{${1:pretext}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"thirty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleovertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widthgutter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"screenplay\"\n    },\n    {\n      \"name\": \"dialogue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"dialogue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:directions%text}]{${1:character name}}\"\n      }\n    },\n    {\n      \"name\": \"titleover\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrextend.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"changefontsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changefontsizes{${1:font size}}\"\n      }\n    },\n    {\n      \"name\": \"cleardoubleemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleevenpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoubleevenpageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoublepageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleevenplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleevenstandardpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddemptypage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddpageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoubleoddpageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoubleevenpageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoublepageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleoddplainpage\"\n    },\n    {\n      \"name\": \"cleardoubleoddstandardpage\"\n    },\n    {\n      \"name\": \"cleardoublepageusingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleardoublepageusingstyle{${1:pagestyle%keyvals}}\",\n        \"keys\": [\n          \"\\\\cleardoubleevenpageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoublepageusingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cleardoubleplainpage\"\n    },\n    {\n      \"name\": \"cleardoublestandardpage\"\n    },\n    {\n      \"name\": \"coverpagebottommargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpageleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagerightmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coverpagetopmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:dedication%text}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"deffootnote[${4:mark width%l}]{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deffootnote{${1:indent%l}}{${2:parindent%l}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"deffootnotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deffootnotemark{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dictum[${2:author}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dictumauthorformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dictumauthorformat{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"dictumrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dictumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:short title}}\"\n      }\n    },\n    {\n      \"name\": \"FamilyElseValue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontispiece\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frontispiece{${1:frontispiece%text}}\"\n      }\n    },\n    {\n      \"name\": \"Ifthispageodd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifthispageodd{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"ifthispagewasodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelinglabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinglabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:titlebackfoot%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:page number}]\"\n      }\n    },\n    {\n      \"name\": \"marginline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marginline{${1:margin note%text}}\"\n      }\n    },\n    {\n      \"name\": \"maybesffamily\"\n    },\n    {\n      \"name\": \"multfootsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnoteseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publishers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"publishers{${1:publisher}}\"\n      }\n    },\n    {\n      \"name\": \"raggeddictum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggeddictumtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedfootnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"textmaybesf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmaybesf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thefootnotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thispagewasoddtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:title head%text}}\"\n      }\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:titlebackhead%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:inner indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left indent%l}]{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"addmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indent%l}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:delimiter}]{${1:widest pattern}}\"\n      }\n    },\n    {\n      \"name\": \"labeling\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:widest pattern}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"overfullrule=${1|true,on,yes,false,off,no|}\",\n      \"fontsize=\",\n      \"titlepage=${1|true,on,yes,false,off,no,firstiscover|}\",\n      \"cleardoublepage=${1|empty,headings,letter,myheadings,plain,plain.letter,scrheadings,plain.scrheadings,current|}\",\n      \"footnotes=${1|multiple,nomultiple|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"subtitle\",\n      \"titlehead\",\n      \"author\",\n      \"date\",\n      \"publishers\",\n      \"dedication\",\n      \"sectioning\",\n      \"disposition\",\n      \"dictum\",\n      \"dictumauthor\",\n      \"dictumtext\",\n      \"labelinglabel\",\n      \"labelingseparator\"\n    ],\n    \"\\\\cleardoubleevenpageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoublepageusingstyle#c\": [\n      \"headings\",\n      \"myheadings\",\n      \"empty\",\n      \"plain\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrfontsizes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"generatefontfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"generatefontfile{${1:file name%file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrhack.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlogo\"\n    },\n    {\n      \"name\": \"floatbytocbasic\",\n      \"if\": \"float\"\n    },\n    {\n      \"name\": \"floatbytocbasic\",\n      \"if\": \"float=true\"\n    },\n    {\n      \"name\": \"floatrowbytocbasic\",\n      \"if\": \"floatrow\"\n    },\n    {\n      \"name\": \"floatrowbytocbasic\",\n      \"if\": \"floatrow=true\"\n    },\n    {\n      \"name\": \"lscapeenhanced\",\n      \"if\": \"lscape\"\n    },\n    {\n      \"name\": \"lscapeenhanced\",\n      \"if\": \"lscape=true\"\n    },\n    {\n      \"name\": \"setspaceenhanced\",\n      \"if\": \"setspace\"\n    },\n    {\n      \"name\": \"setspaceenhanced\",\n      \"if\": \"setspace=true\"\n    },\n    {\n      \"name\": \"standardsectioning\",\n      \"if\": \"standardsections\"\n    },\n    {\n      \"name\": \"standardsectioning\",\n      \"if\": \"standardsections=true\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scrhack#c\": [\n      \"float\",\n      \"floatrow\",\n      \"lscape\",\n      \"setspace\",\n      \"standardsections\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scrhack#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scripture.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ch{${1:chapter number}}\"\n      }\n    },\n    {\n      \"name\": \"ch*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ch*{${1:chapter number}}\"\n      }\n    },\n    {\n      \"name\": \"extraskip\"\n    },\n    {\n      \"name\": \"added\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"added{${1:words%text}}\"\n      }\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:divine name}}\"\n      }\n    },\n    {\n      \"name\": \"LORD\"\n    },\n    {\n      \"name\": \"GOD\"\n    },\n    {\n      \"name\": \"nofirstverse\"\n    },\n    {\n      \"name\": \"nohang\"\n    },\n    {\n      \"name\": \"redletteron\"\n    },\n    {\n      \"name\": \"redletteroff\"\n    },\n    {\n      \"name\": \"scripturecurrentchapter\"\n    },\n    {\n      \"name\": \"scripturecurrentverse\"\n    },\n    {\n      \"name\": \"scripturestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scripturestyle{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"scripturestyle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scripturestyle*{${1:name}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"selah\"\n    },\n    {\n      \"name\": \"scripturesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scripturesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textright{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textscripture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscripture{${1:quotation%text}}\"\n      }\n    },\n    {\n      \"name\": \"textscripture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textscripture[${2:reference}]{${1:quotation%text}}\"\n      }\n    },\n    {\n      \"name\": \"textscripture\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textscripture[${2:reference}][${3:options%keyvals}]{${1:quotation%text}}\",\n        \"keys\": [\n          \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"vs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vs{${1:verse number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"center\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flushright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanging\"\n    },\n    {\n      \"name\": \"hanging\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\",\n          \"\\\\begin{hanging}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"midparachap\"\n    },\n    {\n      \"name\": \"midparachap\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{midparachap}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"narrow\"\n    },\n    {\n      \"name\": \"narrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"poetry\"\n    },\n    {\n      \"name\": \"poetry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\",\n          \"\\\\begin{poetry}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scripture\"\n    },\n    {\n      \"name\": \"scripture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:reference}]\"\n      }\n    },\n    {\n      \"name\": \"scripture\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:reference}][${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\": [\n      \"aboveskip=\",\n      \"added/font=${1:font commands}\",\n      \"added/format=${1:macro}\",\n      \"belowskip=\",\n      \"chapter/colour=\",\n      \"chapter/color=\",\n      \"chapter/drop\",\n      \"chapter/font=${1:font commands}\",\n      \"chapter/format=${1:macro}\",\n      \"chapter/hide\",\n      \"chapter/nodrop\",\n      \"chapter/sep=\",\n      \"chapter/show\",\n      \"chapter/showverse\",\n      \"colour=\",\n      \"color=\",\n      \"compact\",\n      \"extraskip=\",\n      \"font=${1:font commands}\",\n      \"inline\",\n      \"inline/begin=${1:code}\",\n      \"inline/end=${1:code}\",\n      \"inline/reference/format=${1:macro}\",\n      \"inline/reference/sep=\",\n      \"inline/version/delim=${1:delim}\",\n      \"inline/version/format=${1:macro}\",\n      \"indent\",\n      \"language=${1:language name}\",\n      \"language/variant=${1:language variant name}\",\n      \"leftmargin=\",\n      \"name/font=${1:font commands}\",\n      \"name/format=${1:macro}\",\n      \"noindent\",\n      \"parindent=\",\n      \"parskip=\",\n      \"redletter\",\n      \"redletter/colour=\",\n      \"redletter/color=\",\n      \"reference/align=${1|inline,left,right|}\",\n      \"reference/colour=\",\n      \"reference/color=\",\n      \"reference/font=${1:font commands}\",\n      \"reference/format=${1:macro}\",\n      \"reference/newline\",\n      \"reference/sep=\",\n      \"rightmargin=\",\n      \"selah/font=${1:font commands}\",\n      \"selah/format=${1:macro}\",\n      \"selah/sep=\",\n      \"selah/text=${1:text}\",\n      \"style=\",\n      \"textright/sep=\",\n      \"verse/colour=\",\n      \"verse/color=\",\n      \"verse/first\",\n      \"verse/firstformat=${1:macro}\",\n      \"verse/firstsep=\",\n      \"verse/font=${1:font commands}\",\n      \"verse/format=${1:macro}\",\n      \"verse/hide\",\n      \"verse/sep=\",\n      \"verse/show\",\n      \"version=${1:version}\",\n      \"version/delim=${1:delim}\",\n      \"version/format=${1:macro}\",\n      \"center/aboveskip=\",\n      \"center/belowskip=\",\n      \"center/leftmargin=\",\n      \"center/rightmargin=\",\n      \"flushright/aboveskip=\",\n      \"flushright/belowskip=\",\n      \"flushright/leftmargin=\",\n      \"flushright/rightmargin=\",\n      \"hanging/aboveskip=\",\n      \"hanging/belowskip=\",\n      \"hanging/hang=\",\n      \"hanging/leftmargin=\",\n      \"hanging/rightmargin=\",\n      \"midparachap/hideverse\",\n      \"midparachap/showverse\",\n      \"narrow/aboveskip=\",\n      \"narrow/belowskip=\",\n      \"narrow/leftmargin=\",\n      \"narrow/rightmargin=\",\n      \"poetry/aboveskip=\",\n      \"poetry/belowskip=\",\n      \"poetry/bigindent=\",\n      \"poetry/indent=\",\n      \"poetry/leftmargin=\",\n      \"poetry/rightmargin=\",\n      \"poetry/verse/left\",\n      \"poetry/verse/right\",\n      \"poetry/verse/sep=\"\n    ],\n    \"\\\\begin{center},\\\\begin{flushright},\\\\begin{hanging},\\\\begin{narrow},\\\\begin{poetry}\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"leftmargin=\",\n      \"rightmargin=\"\n    ],\n    \"\\\\begin{hanging}\": [\n      \"hang=\"\n    ],\n    \"\\\\begin{midparachap}\": [\n      \"hideverse\",\n      \"showverse\"\n    ],\n    \"\\\\begin{poetry}\": [\n      \"bigindent=\",\n      \"indent=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scripture#c,\\\\scripturesetup,\\\\scripturestyle,\\\\scripturestyle*,\\\\textscripture,\\\\begin{scripture}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scrjura.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Clausemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Clausemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ellipsispar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ellipsispar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ellipsispar[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"parellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecontractClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Clauseformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Clauseformat{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thecontractSubClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareNewJuraEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareNewJuraEnvironment{${1:envname}}{${2:start code}}{${3:end code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewJuraEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"DeclareNewJuraEnvironment{${1:envname}}[${4:options%keyvals}]{${2:start code}}{${3:end code}}\",\n        \"keys\": [\n          \"\\\\DeclareNewJuraEnvironment#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Clause\"\n    },\n    {\n      \"name\": \"Clause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Clause[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Clause#c,\\\\SubClause#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SubClause\"\n    },\n    {\n      \"name\": \"SubClause\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SubClause[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Clause#c,\\\\SubClause#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Sentence\"\n    },\n    {\n      \"name\": \"refClause\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refClause{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refClauseN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refClauseN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refPar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPar{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refParL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refParS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refParN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refParN[${2:number format}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentence{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceL{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceS{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refSentenceN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refSentenceN{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"theClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSubClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHSubClause\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ManualPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parformatseparation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"withoutparnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisparnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHsentence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencenumberformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parciteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentenceciteformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parlongformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshortformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parnumericformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencelongformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentenceshortformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencenumericformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentencename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sentenceshortname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmaxpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newmaxpar{${1:envname}}{${2:arg1}}{${3:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"getmaxpar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getmaxpar{${1:envname}}{${2:arg1}}{${3:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"contract\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/scrjura#c\": [\n      \"contract\"\n    ],\n    \"\\\\KOMAoptions#c,\\\\usepackage/scrjura#c\": [\n      \"juratotoc=${1|true,on,yes,false,off,no|}\",\n      \"juratocindent=\",\n      \"juratocnumberwidth=\",\n      \"juratitlepagebreak=${1|true,on,yes,false,off,no|}\",\n      \"clausemark=${1|both,false,off,no,forceboth,forceright,right|}\",\n      \"parnumber=${1|true,false,auto,manual|}\",\n      \"ref=${1|long,numeric,clauseonly,onlyclause,ClauseOnly,OnlyClause,parlong,longpar,ParL,parnumeric,numericpar,ParN,paroff,nopar,parshort,shortpar,ParS,sentencelong,longsentence,SentenceL,sentencenumeric,numericsentence,SentenceN,sentenceoff,nosentence,sentenceshort,shortsentence,SentenceS,short|}\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"Clause\",\n      \"contract.Clause\",\n      \"parnumber\",\n      \"sentencenumber\"\n    ],\n    \"\\\\DeclareNewJuraEnvironment#c\": [\n      \"Clause=${1:command}\",\n      \"ClauseFont=${1:commands}\",\n      \"SubClause=${1:command}\",\n      \"Sentence=${1:command}\",\n      \"ClauseNumberFormat=${1:command}\"\n    ],\n    \"\\\\Clause#c,\\\\SubClause#c\": [\n      \"dummy\",\n      \"head=${1:running head}\",\n      \"nohead\",\n      \"notocentry\",\n      \"number=${1:number}\",\n      \"preskip=\",\n      \"postskip=\",\n      \"title=${1:title}\",\n      \"tocentry=${1:entry}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scrjura#c\",\n    \"\\\\KOMAoptions#c,\\\\usepackage/scrjura#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scrkbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"KOMAProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KOMAExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAExecuteOptions{${1:option list}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAoptions{${1:option list%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KOMAoption{${1:option}}{${2:value list}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoptionsOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"KOMAoptionsOf{${1:file with ext%file}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoptionsOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"KOMAoptionsOf[${2:prefix}]{${1:file with ext%file}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoptionOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"KOMAoptionOf{${1:file with ext%file}}{${2:option}}\"\n      }\n    },\n    {\n      \"name\": \"KOMAoptionsOf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"KOMAoptionsOf[${3:prefix}]{${1:file with ext%file}}{${2:option}}\"\n      }\n    },\n    {\n      \"name\": \"AfterKOMAoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfExistskomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExistskomafont{${1:element}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsAliaskomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfIsAliaskomafont{${1:element}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"setkomafont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomafont{${1:element%keyvals}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtokomafont{${1:element%keyvals}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"usekomafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"usesizeofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usesizeofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"usefamilyofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefamilyofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"useseriesofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useseriesofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"useshapeofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useshapeofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"useencodingofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useencodingofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"usefontofkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usefontofkomafont{${1:element%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafontrelaxlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtokomafontrelaxlist{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafontgobblelist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtokomafontgobblelist{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"addtokomafontonearglist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtokomafontonearglist{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"newkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newkomafont{${1:element}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"newkomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newkomafont[${3:warning}]{${1:element}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"aliaskomafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aliaskomafont{${1:alias}}{${2:element}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlayer-fancyhdr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlayer\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/scrlayer-fancyhdr#c\": [\n      \"nocheck\",\n      \"compatV3\",\n      \"myheadings\",\n      \"headings\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/scrlayer-fancyhdr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/scrlayer-notecolumn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlayer\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareNoteColumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNoteColumn{${1:note-column name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNoteColumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNoteColumn[${2:options%keyvals}]{${1:note-column name}}\",\n        \"keys\": [\n          \"\\\\DeclareNoteColumn#c,\\\\DeclareNewNoteColumn#c,\\\\ProvideNoteColumn#c,\\\\RedeclareNoteColumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewNoteColumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewNoteColumn{${1:note-column name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewNoteColumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewNoteColumn[${2:options%keyvals}]{${1:note-column name}}\",\n        \"keys\": [\n          \"\\\\DeclareNoteColumn#c,\\\\DeclareNewNoteColumn#c,\\\\ProvideNoteColumn#c,\\\\RedeclareNoteColumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideNoteColumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideNoteColumn{${1:note-column name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideNoteColumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideNoteColumn[${2:options%keyvals}]{${1:note-column name}}\",\n        \"keys\": [\n          \"\\\\DeclareNoteColumn#c,\\\\DeclareNewNoteColumn#c,\\\\ProvideNoteColumn#c,\\\\RedeclareNoteColumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareNoteColumn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareNoteColumn{${1:note-column name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareNoteColumn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareNoteColumn[${2:options%keyvals}]{${1:note-column name}}\",\n        \"keys\": [\n          \"\\\\DeclareNoteColumn#c,\\\\DeclareNewNoteColumn#c,\\\\ProvideNoteColumn#c,\\\\RedeclareNoteColumn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makenote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"makenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makenote[${2:note-column name}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"makenote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makenote*{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"makenote*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makenote*[${2:note-column name}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"restoreinnote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearnotecolumn\"\n    },\n    {\n      \"name\": \"clearnotecolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearnotecolumn[${1:note-column name}]\"\n      }\n    },\n    {\n      \"name\": \"clearnotecolumns\"\n    },\n    {\n      \"name\": \"clearnotecolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearnotecolumns[${1:note-column name list}]\"\n      }\n    },\n    {\n      \"name\": \"syncwithnotecolumn\"\n    },\n    {\n      \"name\": \"syncwithnotecolumn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"syncwithnotecolumn[${1:note-column name}]\"\n      }\n    },\n    {\n      \"name\": \"syncwithnotecolumns\"\n    },\n    {\n      \"name\": \"syncwithnotecolumns\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"syncwithnotecolumns[${1:note-column name list}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"autoclearnotecolumns=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\DeclareNoteColumn#c,\\\\DeclareNewNoteColumn#c,\\\\ProvideNoteColumn#c,\\\\RedeclareNoteColumn#c\": [\n      \"font=${1:font attribute}\",\n      \"marginpar\",\n      \"normalmarginpar\",\n      \"position=\",\n      \"reversemarginpar\",\n      \"width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlayer-scrpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlayer\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LaTeXcentering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXraggedright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defpagestyle{${1:name%specialDef}}{${2:header spec}}{${3:footer spec}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newpagestyle{${1:name%specialDef}}{${2:header spec}}{${3:footer spec}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewpagestyle{${1:name%specialDef}}{${2:header spec}}{${3:footer spec}}\"\n      }\n    },\n    {\n      \"name\": \"providepagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providepagestyle{${1:name%specialDef}}{${2:header spec}}{${3:footer spec}}\"\n      }\n    },\n    {\n      \"name\": \"deftriplepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newtriplepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renewtriplepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"providetriplepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defpairofpagestyles{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"defpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defpairofpagestyles[${3:parent pair}]{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpairofpagestyles{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newpairofpagestyles[${3:parent pair}]{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewpairofpagestyles{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewpairofpagestyles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewpairofpagestyles[${3:parent pair}]{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providepairofpagestyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providepairofpagestyles{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providepairofpagestyles\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providepairofpagestyles[${3:parent pair}]{${1:name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ihead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ihead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ihead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ihead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ohead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ohead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ohead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ohead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"chead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lehead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lehead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lehead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lehead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lohead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lohead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lohead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lohead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rehead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rehead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rehead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rehead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rohead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rohead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rohead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rohead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cehead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cehead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cehead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cehead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cohead{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cohead[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cohead*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cohead*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ifoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ifoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ofoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ofoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ofoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ofoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lefoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lefoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lofoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lofoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lofoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lofoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rofoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rofoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rofoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rofoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cefoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cefoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cefoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cefoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cofoot{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cofoot[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cofoot*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cofoot*[${2:plain content%text}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"clearmainofpairofpagestyles\"\n    },\n    {\n      \"name\": \"clearplainofpairofpagestyles\"\n    },\n    {\n      \"name\": \"clearpairofpagestyles\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"autoenlargeheadfoot=${1|true,on,yes,false,off,no|}\",\n      \"pagestyleset=${1|KOMA-Script,standard|}\",\n      \"headwidth=${1:width:offset:offset}\",\n      \"footwidth=${1:width:offset:offset}\",\n      \"headtopline=${1:thickness:length}\",\n      \"headsepline=${1:thickness:length}\",\n      \"footsepline=${1:thickness:length}\",\n      \"footbotline=${1:thickness:length}\",\n      \"plainheadtopline=${1|true,on,yes,false,off,no|}\",\n      \"plainheadsepline=${1|true,on,yes,false,off,no|}\",\n      \"plainfootsepline=${1|true,on,yes,false,off,no|}\",\n      \"plainfootbotline=${1|true,on,yes,false,off,no|}\",\n      \"ilines\",\n      \"clines\",\n      \"olines\",\n      \"hmode=${1|true,on,yes,false,off,no|}\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"scrheadings\",\n      \"plain.scrheadings\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"footbotline\",\n      \"footsepline\",\n      \"headsepline\",\n      \"headtopline\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlayer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakeMarkcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeMarkcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rightfirstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightbotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"righttopmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftfirstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftbotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lefttopmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pnumfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pnumfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"partmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptermarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphmarkformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GenericMarkFormat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"markleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markleft{${1:left mark}}\"\n      }\n    },\n    {\n      \"name\": \"markdouble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markdouble{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"manualmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"automark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"automark{${1:left-mark level}}\"\n      }\n    },\n    {\n      \"name\": \"automark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"automark[${2:right-mark level}]{${1:left-mark level}}\"\n      }\n    },\n    {\n      \"name\": \"automark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"automark*{${1:left-mark level}}\"\n      }\n    },\n    {\n      \"name\": \"automark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"automark*[${2:right-mark level}]{${1:left-mark level}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSectionNumberDepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSectionNumberDepth{${1:level name}}{${2:level depth}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareLayer[${2:options%keyvals}]{${1:layer name}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewLayer[${2:options%keyvals}]{${1:layer name}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvideLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvideLayer[${2:options%keyvals}]{${1:layer name}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclareLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RedeclareLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclareLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RedeclareLayer[${2:options%keyvals}]{${1:layer name}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ModifyLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ModifyLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"ModifyLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ModifyLayer[${2:options%keyvals}]{${1:layer name}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ModifyLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ModifyLayers{${1:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"ModifyLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ModifyLayers[${2:options%keyvals}]{${1:layer list}}\",\n        \"keys\": [\n          \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"layerhalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layervalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerxoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layeryoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfLayerExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLayerExists{${1:layer name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"GetLayerContents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetLayerContents{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"DestroyLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DestroyLayer{${1:layer name}}\"\n      }\n    },\n    {\n      \"name\": \"layercontentsmeasure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LenToUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LenToUnit{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachLayerOfPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachLayerOfPageStyle{${1:pagestyle name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachLayerOfPageStyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachLayerOfPageStyle*{${1:pagestyle name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"layerrawmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layertextmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"layerpicturemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"putLL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putLL{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"putUL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putUL{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"putLR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putLR{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"putUR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putUR{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"putC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putC{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePageStyleByLayers{${1:pagestyle name%specialDef}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclarePageStyleByLayers[${3:options%keyvals}]{${1:page style name%specialDef}}{${2:layer list}}\",\n        \"keys\": [\n          \"\\\\DeclarePageStyleByLayers#c,\\\\DeclareNewPageStyleByLayers#c,\\\\ProvidePageStyleByLayers#c,\\\\RedeclarePageStyleByLayers#c,\\\\ModifyLayerPageStyleOptions#c,\\\\AddToLayerPageStyleOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareNewPageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNewPageStyleByLayers{${1:pagestyle name%specialDef}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewPageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareNewPageStyleByLayers[${3:options%keyvals}]{${1:page style name%specialDef}}{${2:layer list}}\",\n        \"keys\": [\n          \"\\\\DeclarePageStyleByLayers#c,\\\\DeclareNewPageStyleByLayers#c,\\\\ProvidePageStyleByLayers#c,\\\\RedeclarePageStyleByLayers#c,\\\\ModifyLayerPageStyleOptions#c,\\\\AddToLayerPageStyleOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvidePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvidePageStyleByLayers{${1:pagestyle name%specialDef}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ProvidePageStyleByLayers[${3:options%keyvals}]{${1:page style name%specialDef}}{${2:layer list}}\",\n        \"keys\": [\n          \"\\\\DeclarePageStyleByLayers#c,\\\\DeclareNewPageStyleByLayers#c,\\\\ProvidePageStyleByLayers#c,\\\\RedeclarePageStyleByLayers#c,\\\\ModifyLayerPageStyleOptions#c,\\\\AddToLayerPageStyleOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RedeclarePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RedeclarePageStyleByLayers{${1:pagestyle name%specialDef}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclarePageStyleByLayers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RedeclarePageStyleByLayers[${3:options%keyvals}]{${1:page style name%specialDef}}{${2:layer list}}\",\n        \"keys\": [\n          \"\\\\DeclarePageStyleByLayers#c,\\\\DeclareNewPageStyleByLayers#c,\\\\ProvidePageStyleByLayers#c,\\\\RedeclarePageStyleByLayers#c,\\\\ModifyLayerPageStyleOptions#c,\\\\AddToLayerPageStyleOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddLayersToPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddLayersToPageStyle{${1:pagestyle name}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"AddLayersAtEndOfPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddLayersAtEndOfPageStyle{${1:pagestyle name}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"AddLayersAtBeginOfPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddLayersAtBeginOfPageStyle{${1:pagestyle name}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveLayersFromPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveLayersFromPageStyle{${1:pagestyle name}}{${2:layer list}}\"\n      }\n    },\n    {\n      \"name\": \"AddLayersToPageStyleAfterLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddLayersToPageStyleAfterLayer{${1:pagestyle name}}{${2:layer list}}{${3:ref layer name}}\"\n      }\n    },\n    {\n      \"name\": \"AddLayersToPageStyleBeforeLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddLayersToPageStyleBeforeLayer{${1:pagestyle name}}{${2:layer list}}{${3:ref layer name}}\"\n      }\n    },\n    {\n      \"name\": \"UnifyLayersAtPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnifyLayersAtPageStyle{${1:pagestyle name}}\"\n      }\n    },\n    {\n      \"name\": \"ModifyLayerPageStyleOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ModifyLayerPageStyleOptions{${1:pagestyle name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"AddToLayerPageStyleOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToLayerPageStyleOptions{${1:pagestyle name}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePageStyleAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePageStyleAlias{${1:alias name%specialDef}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewPageStyleAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareNewPageStyleAlias{${1:alias name%specialDef}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidePageStyleAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvidePageStyleAlias{${1:alias name%specialDef}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"RedeclarePageStyleAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RedeclarePageStyleAlias{${1:alias name%specialDef}}{${2:original name}}\"\n      }\n    },\n    {\n      \"name\": \"DestroyPageStyleAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DestroyPageStyleAlias{${1:pagestyle name}}\"\n      }\n    },\n    {\n      \"name\": \"GetRealPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetRealPageStyle{${1:pagestyle name}}\"\n      }\n    },\n    {\n      \"name\": \"IfLayerPageStyleExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfLayerPageStyleExists{${1:pagestyle name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfRealLayerPageStyleExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfRealLayerPageStyleExists{${1:pagestyle name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLayerAtPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfLayerAtPageStyle{${1:pagestyle name}}{${2:layer name}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSomeLayersAtPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSomeLayersAtPageStyle{${1:pagestyle name}}{${2:layer list}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"IfLayersAtPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfLayersAtPageStyle{${1:pagestyle name}}{${2:layer list}}{${3:then code}}{${4:else code}}\"\n      }\n    },\n    {\n      \"name\": \"DestroyRealLayerPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DestroyRealLayerPageStyle{${1:pagestyle name}}\"\n      }\n    },\n    {\n      \"name\": \"currentpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toplevelpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftoplevelpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toplevelpagestyletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toplevelpagestylefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BeforeSelectAnyPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeSelectAnyPageStyle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterSelectAnyPageStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterSelectAnyPageStyle{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"draft=${1|true,on,yes,false,off,no|}\",\n      \"onpsselect=${1:code}\",\n      \"onpsinit=${1:code}\",\n      \"onpsoneside=${1:code}\",\n      \"onpstwoside=${1:code}\",\n      \"onpsoddpage=${1:code}\",\n      \"onpsevenpage=${1:code}\",\n      \"onpsfloatpage=${1:code}\",\n      \"onpsnonfloatpage=${1:code}\",\n      \"onpsbackground=${1:code}\",\n      \"onpsforeground=${1:code}\",\n      \"singlespacing=${1|true,on,yes,false,off,no|}\",\n      \"deactivatepagestylelayers=${1|true,on,yes,false,off,no|}\",\n      \"automark\",\n      \"autooneside=${1|true,on,yes,false,off,no|}\",\n      \"manualmark\",\n      \"markcase=${1|lower,upper,title,used,ignoreuppercase,nouppercase,ignoreupper,noupper|}\"\n    ],\n    \"\\\\DeclareLayer#c,\\\\DeclareNewLayer#c,\\\\ProvideLayer#c,\\\\RedeclareLayer#c,\\\\ModifyLayer#c,\\\\ModifyLayers#c\": [\n      \"addcontents=${1:code}\",\n      \"addheight=\",\n      \"addhoffset=\",\n      \"addvoffset=\",\n      \"addwidth=\",\n      \"align=${1:alignment chars}\",\n      \"area={${1:hoffset}}{${2:voffset}}{${3:width}}{${4:height}}\",\n      \"backandforeground\",\n      \"background\",\n      \"bottommargin\",\n      \"clone=${1:layer name}\",\n      \"contents=${1:code}\",\n      \"evenpage\",\n      \"everypage\",\n      \"everyside\",\n      \"floatornonfloatpage\",\n      \"floatpage\",\n      \"foot\",\n      \"footskip\",\n      \"foreground\",\n      \"head\",\n      \"headsep\",\n      \"height=\",\n      \"hoffset=\",\n      \"innermargin\",\n      \"leftmargin\",\n      \"mode=${1|text,picture,raw|}\",\n      \"nonfloatpage\",\n      \"oddorevenpage\",\n      \"oddpage\",\n      \"oneside\",\n      \"outermargin\",\n      \"page\",\n      \"pretocontents=${1:code}\",\n      \"rightmargin\",\n      \"textarea\",\n      \"topmargin\",\n      \"twoside\",\n      \"unrestricted\",\n      \"voffset=\",\n      \"width=\"\n    ],\n    \"\\\\DeclarePageStyleByLayers#c,\\\\DeclareNewPageStyleByLayers#c,\\\\ProvidePageStyleByLayers#c,\\\\RedeclarePageStyleByLayers#c,\\\\ModifyLayerPageStyleOptions#c,\\\\AddToLayerPageStyleOptions#c\": [\n      \"onselect=${1:code}\",\n      \"oninit=${1:code}\",\n      \"ononeside=${1:code}\",\n      \"ontwoside=${1:code}\",\n      \"onoddpage=${1:code}\",\n      \"onevenpage=${1:code}\",\n      \"onfloatpage=${1:code}\",\n      \"onnonfloatpage=${1:code}\",\n      \"onbackground=${1:code}\",\n      \"onforeground=${1:code}\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c\": [\n      \"%komapagestyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrletter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"scrlayer-scrpage\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addrchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addrchar{${1:initial letter}}\"\n      }\n    },\n    {\n      \"name\": \"addrentry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"addrentry{${1:last name}}{${2:first name}}{${3:address}}{${4:phone}}{${5:F1}}{${6:F2}}{${7:F3}}{${8:F4}}{${9:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtolengthplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"addtolengthplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtolengthplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addtoplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtoplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtoreffields\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoreffields{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AtBeginLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtBeginLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEndLetter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndLetter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"bankname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cc{${1:distribution list%text}}\"\n      }\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"closing{${1:concluding text%text}}\"\n      }\n    },\n    {\n      \"name\": \"customername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultreffields\"\n    },\n    {\n      \"name\": \"emailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encl{${1:enclosures%text}}\"\n      }\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faxname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreachemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachkomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"foreachkomavarifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"foreachkomavarifempty{${1:list of variables}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"foreachnonemptykomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"foreachnonemptykomavar{${1:list of variables}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"headfromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifkomavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavar{${1:name}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty*{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifkomavarempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifkomavarempty{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"Ifplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifplength{${1:pseudo-length}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"invoicename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LetterOptionNeedsPapersize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetterOptionNeedsPapersize{${1:option name}}{${2:paper size}}\"\n      }\n    },\n    {\n      \"name\": \"letterpagemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"letterpagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadLetterOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOption{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LoadLetterOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadLetterOptions{${1:list of names%keyvals}}\",\n        \"keys\": [\n          \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mobilephonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar*[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newkomavar[${2:description}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newkomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newkomavar{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newplength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newplength{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"opening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opening{${1:salutation%text}}\"\n      }\n    },\n    {\n      \"name\": \"phonename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\"\n    },\n    {\n      \"name\": \"raggedsignature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removereffields\"\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar*{${1:name%keyvals}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}[${3:description%text}]{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setkomavar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkomavar{${1:name%keyvals}}{${2:content%text}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setlengthtoplength[${3:factor}]{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setlengthtoplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlengthtoplength{${1:length}}{${2:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setparsizes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setparsizes{${1:indent%l}}{${2:distance%l}}{${3:last-line end space}}\"\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplength[${3:factor}]{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplength{${1:pseudo-length%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtodepth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtodepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtodepth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtoheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtoheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtoheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtototalheight[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtototalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtototalheight{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setplengthtowidth[${3:factor}]{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setplengthtowidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setplengthtowidth{${1:pseudo-length%keyvals}}{${2:content}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"startbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopbreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subjectname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thisletter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar*[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usekomavar[${2:command}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usekomavar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usekomavar{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"useplength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useplength{${1:pseudo-length%keyvals}}\",\n        \"keys\": [\n          \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wwwname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourmailname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yourrefname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showfields\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showfields{${1:field list}}\"\n      }\n    },\n    {\n      \"name\": \"setshowstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setshowstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\setshowstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"edgesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"showenvelope(${1:width},${2:height})(${3:h-offset},${4:v-offset})\"\n      }\n    },\n    {\n      \"name\": \"showenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"showenvelope(${2:width},${3:height})(${4:h-offset},${5:v-offset})[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showISOenvelope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showISOenvelope{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showISOenvelope#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScommercial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"showUScommercial{${1:format%keyvals}}[${2:instructions}]\",\n        \"keys\": [\n          \"\\\\showUScommercial#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showUScheck\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showUScheck[${1:instructions}]\"\n      }\n    },\n    {\n      \"name\": \"unitfactor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:recipient}}\"\n      }\n    },\n    {\n      \"name\": \"letter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:recipient}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"foldmarks=${1:setting}\",\n      \"firsthead=${1|true,on,yes,false,off,no|}\",\n      \"fromalign=${1|center,centered,middle,false,no,off,left,locationleft,leftlocation,locationright,rightlocation,location,right|}\",\n      \"fromrule=${1|afteraddress,below,on,true,yes,aftername,false,no,off|}\",\n      \"symbolicnames=${1|true,on,yes,false,off,no,marvosym,fontawesome,awesome|}\",\n      \"fromphone=${1|true,on,yes,false,off,no|}\",\n      \"frommobilephone=${1|true,on,yes,false,off,no|}\",\n      \"fromfax=${1|true,on,yes,false,off,no|}\",\n      \"fromemail=${1|true,on,yes,false,off,no|}\",\n      \"fromurl=${1|true,on,yes,false,off,no|}\",\n      \"fromlogo=${1|true,on,yes,false,off,no|}\",\n      \"addrfield=${1|backgroundimage,PPbackgroundimage,PPBackgroundImage,PPBackGroundImage,ppbackgroundimage,ppBackgroundImage,ppBackGroundImage,false,off,no,image,Image,PPimage,PPImage,ppimage,ppImage,PP,pp,PPexplicite,PPExplicite,ppexplicite,ppExplicite,topaligned,alignedtop,true,on,yes|}\",\n      \"backaddress=${1|true,on,yes,false,off,no,underlined,plain|}\",\n      \"priority=${1|false,off,no,manual,B,b,economy,Economy,ECONOMY,B-ECONOMY,B-Economy,b-economy,A,a,priority,Priority,PRIORITY,A-PRIORITY,A-Priority,a-priority|}\",\n      \"locfield=${1|narrow,wide|}\",\n      \"numericaldate=${1|true,on,yes,false,off,no|}\",\n      \"refline=${1|dateleft,dateright,narrow,nodate,wide|}\",\n      \"subject=${1|afteropening,beforeopening,centered,left,right,titled,underlined,untitled|}\",\n      \"enlargefirstpage=${1|true,on,yes,false,off,no|}\",\n      \"firstfoot=${1|true,on,yes,false,off,no|}\",\n      \"pagenumber=${1|bot,foot,botcenter,botcentered,botmittle,footcenter,footcentered,footmiddle,botleft,footleft,botright,footright,center,centered,middle,false,no,off,head,top,headcenter,headcentered,headmiddle,topcenter,topcentered,topmiddle,headleft,topleft,headright,topright,left,right|}\"\n    ],\n    \"\\\\showfields\": [\n      \"test\",\n      \"head\",\n      \"foot\",\n      \"address\",\n      \"location\",\n      \"refline\"\n    ],\n    \"\\\\setshowstyle\": [\n      \"frame\",\n      \"rule\",\n      \"edges\"\n    ],\n    \"\\\\showISOenvelope#c\": [\n      \"C4\",\n      \"C5\",\n      \"C5/6\",\n      \"DL\",\n      \"C6\"\n    ],\n    \"\\\\showUScommercial#c\": [\n      \"9\",\n      \"10\"\n    ],\n    \"\\\\setkomavar#c,\\\\setkomavar*#c,\\\\usekomavar#c,\\\\usekomavar*#c\": [\n      \"addresseeimage\",\n      \"backaddress\",\n      \"backaddressseparator\",\n      \"ccseparator\",\n      \"customer\",\n      \"date\",\n      \"emailseparator\",\n      \"enclseparator\",\n      \"faxseparator\",\n      \"firstfoot\",\n      \"firsthead\",\n      \"fromaddress\",\n      \"frombank\",\n      \"fromemail\",\n      \"fromfax\",\n      \"fromlogo\",\n      \"frommobilephone\",\n      \"fromname\",\n      \"fromphone\",\n      \"fromurl\",\n      \"fromzipcode\",\n      \"invoice\",\n      \"location\",\n      \"myref\",\n      \"nextfoot\",\n      \"nexthead\",\n      \"phoneseparator\",\n      \"place\",\n      \"placeseparator\",\n      \"PPdatamatrix\",\n      \"PPcode\",\n      \"signature\",\n      \"specialmail\",\n      \"subject\",\n      \"subjectseparator\",\n      \"title\",\n      \"toaddress\",\n      \"toname\",\n      \"yourmail\",\n      \"yourref\",\n      \"zipcodeseparator\"\n    ],\n    \"\\\\useplength#c,\\\\setplength#c,\\\\addtoplength#c,\\\\setlengthtoplength#c,\\\\addtolengthplength#c,\\\\setplengthtowidth#c,\\\\setplengthtoheight#c,\\\\setplengthtodepth#c,\\\\setplengthtototalheight#c\": [\n      \"backaddrheight\",\n      \"bfoldmarklength\",\n      \"bfoldmarkvpos\",\n      \"firstfoothpos\",\n      \"firstfootvpos\",\n      \"firstfootwidth\",\n      \"firstheadhpos\",\n      \"firstheadvpos\",\n      \"firstheadwidth\",\n      \"foldmarkhpos\",\n      \"foldmarkvpos\",\n      \"fromrulethickness\",\n      \"fromrulewidth\",\n      \"lfoldmarkhpos\",\n      \"lfoldmarklength\",\n      \"locheight\",\n      \"lochpos\",\n      \"locvpos\",\n      \"locwidth\",\n      \"mfoldmarklength\",\n      \"mfoldmarkvpos\",\n      \"pfoldmarklength\",\n      \"PPdatamatrixvskip\",\n      \"PPheadheight\",\n      \"PPheadwidth\",\n      \"refaftervskip\",\n      \"refhpos\",\n      \"refvpos\",\n      \"refwidth\",\n      \"sigbeforevskip\",\n      \"sigindent\",\n      \"specialmailindent\",\n      \"specialmailrightindent\",\n      \"subjectaftervskip\",\n      \"subjectbeforevskip\",\n      \"additional verti\",\n      \"subjectvpos\",\n      \"tfoldmarklength\",\n      \"tfoldmarkvpos\",\n      \"toaddrheight\",\n      \"toaddrhpos\",\n      \"toaddrindent\",\n      \"toaddrvpos\",\n      \"toaddrwidth\"\n    ],\n    \"\\\\setkomafont#c,\\\\addtokomafont#c,\\\\usekomafont#c,\\\\usesizeofkomafont#c,\\\\usefamilyofkomafont#c,\\\\useseriesofkomafont#c,\\\\useshapeofkomafont#c,\\\\useencodingofkomafont#c,\\\\usefontofkomafont#c\": [\n      \"addressee\",\n      \"backaddress\",\n      \"descriptionlabel\",\n      \"foldmark\",\n      \"footnote\",\n      \"footnotelabel\",\n      \"footnotereference\",\n      \"footnoterule\",\n      \"fromaddress\",\n      \"fromname\",\n      \"fromrule\",\n      \"itemizelabel\",\n      \"labelinglabel\",\n      \"labelingseparator\",\n      \"labelitemi\",\n      \"labelitemii\",\n      \"labelitemiii\",\n      \"labelitemiv\",\n      \"pagefoot\",\n      \"pagehead\",\n      \"pageheadfoot\",\n      \"pagenumber\",\n      \"pagination\",\n      \"placeanddate\",\n      \"refname\",\n      \"refvalue\",\n      \"specialmail\",\n      \"lettersubject\",\n      \"lettertitle\",\n      \"toaddress\",\n      \"toname\"\n    ],\n    \"\\\\LoadLetterOption#c,\\\\LoadLetterOptions#c\": [\n      \"DIN\",\n      \"DINmtext\",\n      \"KakuLL\",\n      \"KOMAold\",\n      \"NF\",\n      \"NipponEH\",\n      \"NipponEL\",\n      \"NipponLH\",\n      \"NipponLL\",\n      \"NipponRL\",\n      \"SN\",\n      \"SNleft\",\n      \"UScommercial9\",\n      \"UScommercial9DW\"\n    ],\n    \"\\\\pagestyle#c,\\\\thispagestyle#c,\\\\cleardoublepageusingstyle#c,\\\\cleardoubleoddpageusingstyle#c,\\\\cleardoubleevenpageusingstyle#c\": [\n      \"letter\",\n      \"plain.letter\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlfile-hook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BeforeFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeFile{${1:file}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"BeforeFile{${1:file}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterFile{${1:file}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterFile{${1:file}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeClass{${1:class}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"BeforeClass{${1:class}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforePackage{${1:package}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"BeforePackage{${1:package}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterAtEndOfClass{${1:class}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterAtEndOfClass{${1:class}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterAtEndOfClass*{${1:class}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterAtEndOfClass*{${1:class}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterAtEndOfPackage{${1:package}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterAtEndOfPackage{${1:package}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfPackage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterAtEndOfPackage*{${1:package}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtEndOfPackage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterAtEndOfPackage*{${1:package}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterClass{${1:class}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterClass{${1:class}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterClass*{${1:class}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterClass*{${1:class}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterPackage{${1:package}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterPackage{${1:package}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPackage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AfterPackage*{${1:package}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterPackage*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"AfterPackage*{${1:package}}[${3:label}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"ReplaceInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReplaceInput{${1:original file%file}}{${2:replacement file%file}}\"\n      }\n    },\n    {\n      \"name\": \"ReplaceClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReplaceClass{${1:original class}}{${2:replacement class}}\"\n      }\n    },\n    {\n      \"name\": \"ReplacePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ReplacePackage{${1:original package}}{${2:replacement package}}\"\n      }\n    },\n    {\n      \"name\": \"UnReplaceInput\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnReplaceInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UnReplaceClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnReplaceClass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"UnReplacePackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnReplacePackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"PreventPackageFromLoading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreventPackageFromLoading{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"PreventPackageFromLoading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreventPackageFromLoading[${2:alternate code}]{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"PreventPackageFromLoading*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreventPackageFromLoading*{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"PreventPackageFromLoading*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PreventPackageFromLoading*[${2:alternate code}]{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"StorePreventPackageFromLoading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StorePreventPackageFromLoading{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"ResetPreventPackageFromLoading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnPreventPackageFromLoading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnPreventPackageFromLoading{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"UnPreventPackageFromLoading*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnPreventPackageFromLoading*{${1:package list}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeClosingMainAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeClosingMainAux{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterReadingMainAux\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterReadingMainAux{${1:commands}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlfile-hook\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrlogo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"KOMAScript\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrpage2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"automark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"automark{${1:left}}\"\n      }\n    },\n    {\n      \"name\": \"automark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"automark[${2:right}]{${1:left}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cefoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cefoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cfoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"chead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clearscrheadfoot\"\n    },\n    {\n      \"name\": \"clearscrheadings\"\n    },\n    {\n      \"name\": \"clearscrplain\"\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headfont\"\n    },\n    {\n      \"name\": \"headmark\"\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ifoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ihead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ihead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ihead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lefoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lefoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lefoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"manualmark\"\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pagemark\"\n    },\n    {\n      \"name\": \"pnumfont\"\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"refoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rehead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rofoot[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rofoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rofoot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rohead[${2:plain}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rohead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rohead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootbotline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setfootbotline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootbotline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootbotline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setfootbotline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootsepline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setfootsepline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootsepline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setfootsepline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setfootsepline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setfootwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfootwidth[${2:offset}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setfootwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadsepline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setheadsepline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadsepline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadsepline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setheadsepline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadtopline{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setheadtopline{${1:dimen}}[${2:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadtopline[${2:length}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"setheadtopline\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setheadtopline[${2:length}]{${1:dimen}}[${3:commands}]\"\n      }\n    },\n    {\n      \"name\": \"setheadwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setheadwidth[${2:offset}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"setheadwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadwidth{${1:width}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrtime.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thistime\"\n    },\n    {\n      \"name\": \"thistime\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thistime[${1:delimiter}]\"\n      }\n    },\n    {\n      \"name\": \"thistime*\"\n    },\n    {\n      \"name\": \"thistime*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thistime*[${1:delimiter}]\"\n      }\n    },\n    {\n      \"name\": \"settime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settime{${1:time}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"12h=${1|true,on,yes,false,off,no|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scrwfile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"tocbasic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TOCclone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TOCclone{${1:source ext}}{${2:destination ext}}\"\n      }\n    },\n    {\n      \"name\": \"TOCclone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TOCclone[${3:list heading}]{${1:source ext}}{${2:destination ext}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/scsnowman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scsnowman\"\n    },\n    {\n      \"name\": \"scsnowman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scsnowman[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\scsnowman#c,\\\\scsnowmandefault#c,\\\\scsnowmannumeral#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scsnowmandefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scsnowmandefault{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\scsnowman#c,\\\\scsnowmandefault#c,\\\\scsnowmannumeral#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scsnowmannumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scsnowmannumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"scsnowmannumeral\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scsnowmannumeral[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\scsnowman#c,\\\\scsnowmandefault#c,\\\\scsnowmannumeral#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usescsnowmanlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usescsnowmanlibrary{${1:library%file}}\"\n      }\n    },\n    {\n      \"name\": \"makeitemsnowman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeitemother\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeqedsnowman\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeqedother\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\scsnowman#c,\\\\scsnowmandefault#c,\\\\scsnowmannumeral#c\": [\n      \"scale=${1:factor}\",\n      \"adjustbaseline\",\n      \"body\",\n      \"body=\",\n      \"eyes\",\n      \"eyes=\",\n      \"mouth\",\n      \"mouth=\",\n      \"nose\",\n      \"nose=\",\n      \"sweat\",\n      \"sweat=\",\n      \"arms\",\n      \"arms=\",\n      \"hat\",\n      \"hat=\",\n      \"muffler\",\n      \"muffler=\",\n      \"buttons\",\n      \"buttons=\",\n      \"snow\",\n      \"snow=\",\n      \"note\",\n      \"note=\",\n      \"broom\",\n      \"broom=\",\n      \"shape=\",\n      \"mouthshape=${1|smile,tight,frown|}\",\n      \"mikan=\",\n      \"leaf=\"\n    ],\n    \"\\\\pagenumbering#c\": [\n      \"enumsnowman\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sdapsarray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"sdapsbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sdapsnested\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sdapsnested{${1:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sdapsarray\"\n    },\n    {\n      \"name\": \"sdapsarray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sdapsarray}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{sdapsarray}\": [\n      \"flip\",\n      \"layouter=${1|default,rotated|}\",\n      \"angle=${1:angle}\",\n      \"align=${1:string}\",\n      \"keepenv\",\n      \"no_header\",\n      \"colsep=\",\n      \"rowsep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sdapsbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"qrcode\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sdapslayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"sdapsbase\"\n    },\n    {\n      \"name\": \"sdapsarray\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"choice{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"choice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"choice[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\choice\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"question{${1:text}}\"\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"question[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\question\"\n        ],\n        \"keyPos\": 0\n      },\n      \"detail\": \"?\",\n      \"doc\": \"Question mark\"\n    },\n    {\n      \"name\": \"range\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"range{${1:question%text}}{${2:lower%text}}{${3:upper%text}}{${4:other%text}}\"\n      }\n    },\n    {\n      \"name\": \"range\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"range[${5:options%keyvals}]{${1:question%text}}{${2:lower%text}}{${3:upper%text}}{${4:other%text}}\",\n        \"keys\": [\n          \"\\\\range\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"choicearray\"\n    },\n    {\n      \"name\": \"choicearray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{choicearray},\\\\begin{optionarray}\",\n          \"\\\\begin{choicearray}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"optionarray\"\n    },\n    {\n      \"name\": \"optionarray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{choicearray},\\\\begin{optionarray}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rangearray\"\n    },\n    {\n      \"name\": \"rangearray\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{rangearray}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{choicearray},\\\\begin{optionarray}\": [\n      \"align=\",\n      \"noalign\",\n      \"horizontal\",\n      \"layouter=${1|default,rotated|}\",\n      \"angle=${1:angle}\",\n      \"vertical\",\n      \"type=${1|multichoice,singlechoice|}\",\n      \"multichoice\",\n      \"singlechoice\"\n    ],\n    \"\\\\begin{choicearray}\": [\n      \"type=${1|multichoice,singlechoice|}\",\n      \"multichoice\",\n      \"singlechoice\"\n    ],\n    \"\\\\choice\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\",\n      \"val=${1:value}\"\n    ],\n    \"\\\\question\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\",\n      \"range=${1:list}\"\n    ],\n    \"\\\\begin{rangearray}\": [\n      \"count=${1:integer}\",\n      \"align=${1:string}\",\n      \"other\"\n    ],\n    \"\\\\range\": [\n      \"text=${1:text}\",\n      \"var=${1:variable}\",\n      \"upper=${1:text}\",\n      \"lower=${1:text}\",\n      \"other\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/se2colors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/se2colors#c\": [\n      \"cmode=${1|4C,cmyk,RGB,BW,gray|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/se2colors#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/se2fonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"libertinus-otf\"\n    },\n    {\n      \"name\": \"inconsolata-nerd-font\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pdftexengine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexengine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"luatexengine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifengineTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifengineTF{${1:engine}}{${2:then block}}{${3:else block}}\"\n      }\n    },\n    {\n      \"name\": \"ifengineT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifengineT{${1:engine}}{${2:then block}}\"\n      }\n    },\n    {\n      \"name\": \"ifengineF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifengineF{${1:engine}}{${2:else block}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/se2packages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fvextra\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"selnolig\"\n    },\n    {\n      \"name\": \"lua-widow-control\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"siunitx\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"siunitx=true\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"minted\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"minted=true\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"listings\"\n    },\n    {\n      \"name\": \"listings\",\n      \"if\": \"listings=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"sidenotesplus\",\n      \"if\": \"biblatex\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex=true\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"biblatex=true\"\n    },\n    {\n      \"name\": \"sidenotesplus\",\n      \"if\": \"biblatex=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex=numeric\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"biblatex=numeric\"\n    },\n    {\n      \"name\": \"sidenotesplus\",\n      \"if\": \"biblatex=numeric\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"biblatex=alphabetic\"\n    },\n    {\n      \"name\": \"software-biblatex\",\n      \"if\": \"biblatex=alphabetic\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"cleveref=true\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"siunitx\",\n      \"if\": \"all=true\"\n    },\n    {\n      \"name\": \"minted\",\n      \"if\": \"all=true\"\n    },\n    {\n      \"name\": \"biblatex\",\n      \"if\": \"all=true\"\n    },\n    {\n      \"name\": \"cleveref\",\n      \"if\": \"all=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maycite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maycite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"margincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"margincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"margincites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"margincites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"margincites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"margincites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"margincites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"margincites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"margincites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maycite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maycite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"margincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"margincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"margincites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"margincites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"margincites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"margincites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"margincites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"margincites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=true\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"margincites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"maycite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maycite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"maycite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maycite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"margincite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"margincite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincite\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margincite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"margincites{${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"margincites(${3:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"margincites(${3:pre})(${4:post}){${1:bibid}}{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]{}[]{}\",\n        \"snippet\": \"margincites(${5:pre})(${6:post})[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"margincites[${3:post}]{${1:bibid}}[${4:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}\",\n        \"snippet\": \"margincites[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"margincites\",\n      \"if\": \"biblatex=numeric\",\n      \"arg\": {\n        \"format\": \"()()[][]{}[][]{}\",\n        \"snippet\": \"margincites(${7:pre})(${8:post})[${3:pre}][${4:post}]{${1:bibid}}[${5:pre}][${6:post}]{${2:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/se2packages#c\": [\n      \"csquotes\",\n      \"nocsquotes\",\n      \"booktabs\",\n      \"nobooktabs\",\n      \"siunitx\",\n      \"minted\",\n      \"listings\",\n      \"biblatex=${1|true,false,alphabetic,numeric|}\",\n      \"selnolig\",\n      \"noselnolig\",\n      \"widowcontrol\",\n      \"nowidowcontrol\",\n      \"microtype\",\n      \"nomicrotype\",\n      \"cleveref\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/se2packages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/secdot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sectiondot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectiondot{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"sectionpunct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sectionpunct{${1:level}}{${2:punctuation}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/secnum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setsecnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnum{${1:num format}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/secnum#c\": [\n      \"tocdep=${1:integer}\",\n      \"breaking=${1:token}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/secnum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sectionbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fancybox\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"framesectionbox\"\n    },\n    {\n      \"name\": \"doublesectionbox\"\n    },\n    {\n      \"name\": \"shadowsectionbox\"\n    },\n    {\n      \"name\": \"framesubsectionbox\"\n    },\n    {\n      \"name\": \"doublesubsectionbox\"\n    },\n    {\n      \"name\": \"shadowsubsectionbox\"\n    },\n    {\n      \"name\": \"framesubsubsectionbox\"\n    },\n    {\n      \"name\": \"doublesubsubsectionbox\"\n    },\n    {\n      \"name\": \"shadowsubsubsectionbox\"\n    },\n    {\n      \"name\": \"colboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makesectionbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesectionbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesubsectionbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesubsectionbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makesubsubsectionbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makesubsubsectionbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sectboxskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectsavebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectboxskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectsavebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectboxskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectsavebox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sectionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sectionbreak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sectionbreak\"\n    },\n    {\n      \"name\": \"sectionbreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sectionbreak[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"sectionbreakmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionbreakmark{${1:mark}}\"\n      }\n    },\n    {\n      \"name\": \"asterism\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sectionbreak#c\": [\n      \"preskip=\",\n      \"postskip=\",\n      \"skip=\",\n      \"style=${1:font commands}\",\n      \"mark=${1:chars}\",\n      \"asterism\",\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sectionbreak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sectsty.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"allsectionsfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allsectionsfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"partfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparagraphfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"minisecfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minisecfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"partnumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partnumberfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"parttitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttitlefont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chapternumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapternumberfont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitlefont{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"nohang\"\n    },\n    {\n      \"name\": \"ulemheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ulemheading{${1:ulem command}}\"\n      }\n    },\n    {\n      \"name\": \"sectionrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sectionrule{${1:raise top%l}}{${2:top rule%l}}{${3:raise bottom%l}}{${4:bottom rule%l}}\"\n      }\n    },\n    {\n      \"name\": \"SSifnumberpart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSifnumberpart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SSiftitlepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SSiftitlepart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SSsectlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcentering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifcentering{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifraggedleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifraggedleft{${1:true}}{${2:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sectsty#c\": [\n      \"garrulous\",\n      \"chatty\",\n      \"taciturn\",\n      \"yorkshire\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sectsty#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/seealso.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"seepage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seepage{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealsopage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealsopage{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seenopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seenopage{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealsonopage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealsonopage{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:entry}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"SeealsoPrintList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seealsosetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seealsosetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\seealsosetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"seealsosetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"seealsosetup[${2:seelists}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\seealsosetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SeealsoGobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SeealsoGobble{${1:char}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/seealso#c\": [\n      \"override\",\n      \"activecr\"\n    ],\n    \"\\\\seealsosetup\": [\n      \"name=${1:name}\",\n      \"listsep=${1:sep}\",\n      \"itemsep=${1:sep}\",\n      \"nameformat=${1:format code}\",\n      \"itemformat=${1:format code}\",\n      \"pageformat=${1:format code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/seealso#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/selectp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"outputonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outputonly{${1:list of page numbers}}\"\n      }\n    },\n    {\n      \"name\": \"AbsVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AbsVal{${1:TeX num or dimen}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/selinput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"stringenc\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SelectInputEncodingList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectInputEncodingList{${1:encoding list}}\"\n      }\n    },\n    {\n      \"name\": \"SelectInputMappings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectInputMappings{${1:mapping pairs}}\"\n      }\n    },\n    {\n      \"name\": \"SelectInputDefineMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectInputDefineMapping{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/selinput#c\": [\n      \"warning\",\n      \"ucs\",\n      \"utf8=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/selinput#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/selnolig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"english\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"english\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"UKenglish\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"UKenglish\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"british\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"british\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"USenglish\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"USenglish\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"american\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"american\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"canadian\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"canadian\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"australian\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"australian\"\n    },\n    {\n      \"name\": \"selnolig-english-patterns\",\n      \"if\": \"newzealand\"\n    },\n    {\n      \"name\": \"selnolig-english-hyphex\",\n      \"if\": \"newzealand\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"ngerman\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"german\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"austrian\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"austrian\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"naustrian\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"naustrian\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"swissgerman\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"swissgerman\"\n    },\n    {\n      \"name\": \"selnolig-german-patterns\",\n      \"if\": \"swiss\"\n    },\n    {\n      \"name\": \"selnolig-german-hyphex\",\n      \"if\": \"swiss\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nolig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nolig{${1:search string}}{${2:spec string}}\"\n      }\n    },\n    {\n      \"name\": \"keeplig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keeplig{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"uselig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uselig{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"breaklig\"\n    },\n    {\n      \"name\": \"debugoff\"\n    },\n    {\n      \"name\": \"debugon\"\n    },\n    {\n      \"name\": \"selnoligoff\"\n    },\n    {\n      \"name\": \"selnoligon\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/selnolig#c\": [\n      \"english\",\n      \"ngerman\",\n      \"noftligs\",\n      \"broadf\",\n      \"hdlig\",\n      \"noadditionalhyphenationpatterns\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/selnolig#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/semantex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"leftindex\"\n    },\n    {\n      \"name\": \"semtex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewVariableClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewVariableClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewVariableClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NewVariableClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareVariableClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareVariableClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareVariableClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareVariableClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"NewSymbolClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewSymbolClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewSymbolClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NewSymbolClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSymbolClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSymbolClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareSymbolClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"NewSimpleClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewSimpleClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewSimpleClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NewSimpleClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSimpleClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSimpleClass{${1:\\\\Class%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSimpleClass\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareSimpleClass{${1:\\\\Class%cmd}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"SemantexBaseObject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NewObject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewObject{${1:\\\\Class}}{${2:\\\\object%cmd}}{${3:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"NewObject\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"NewObject{${1:\\\\Class}}{${2:\\\\object%cmd}}{${3:symbol%formula}}[${4:options}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareObject\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareObject{${1:\\\\Class}}{${2:\\\\object%cmd}}{${3:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareObject\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"DeclareObject{${1:\\\\Class}}{${2:\\\\object%cmd}}{${3:symbol%formula}}[${4:options}]\"\n      }\n    },\n    {\n      \"name\": \"SetupClass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupClass{${1:\\\\Class}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\SetupClass#c,\\\\SetupObject#c,\\\\UseClassInCommand#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetupObject\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetupObject{${1:\\\\object}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\SetupClass#c,\\\\SetupObject#c,\\\\UseClassInCommand#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"UseClassInCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseClassInCommand{${1:\\\\Class}}{${2:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"UseClassInCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"UseClassInCommand{${1:\\\\Class}}[${3:options%keyvals}]{${2:symbol%formula}}\",\n        \"keys\": [\n          \"\\\\SetupClass#c,\\\\SetupObject#c,\\\\UseClassInCommand#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SemantexSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SemantexSetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SemantexRecordObject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexRecordObject{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexRecordSource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexRecordSource{${1:source%definition}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexThis\"\n    },\n    {\n      \"name\": \"SemantexSetKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetKeys{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetKeysx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetKeysx{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgKeys{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgKeysx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgKeysx{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgSingleKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgSingleKeys{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgSingleKeysx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgSingleKeysx{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetOneArgSingleKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetOneArgSingleKey{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetOneArgSingleKeyx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetOneArgSingleKeyx{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgWithoutKeyval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgWithoutKeyval{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexSetArgWithoutKeyvalx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexSetArgWithoutKeyvalx{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataProvide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexDataProvide{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataSet{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataSetx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataSetx{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataPutLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataPutLeft{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataPutLeftx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataPutLeftx{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataPutRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataPutRight{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataPutRightx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexDataPutRightx{${1:data}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataGet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexDataGet{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataGetExpNot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexDataGetExpNot{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexDataClear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexDataClear{${1:data}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolProvide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexBoolProvide{${1:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolSetTrue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexBoolSetTrue{${1:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolSetFalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexBoolSetFalse{${1:boolean}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolIfTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexBoolIfTF{${1:boolean}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolIfT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexBoolIfT{${1:boolean}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexBoolIfF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexBoolIfF{${1:boolean}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntProvide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexIntProvide{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntGet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexIntGet{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntSet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexIntSet{${1:integer}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIncr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexIntIncr{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfEqTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SemantexIntIfEqTF{${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfEqT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfEqT{${1:integer1}}{${2:integer2}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfEqF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfEqF{${1:integer1}}{${2:integer2}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfGreaterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SemantexIntIfGreaterTF{${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfGreaterT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfGreaterT{${1:integer1}}{${2:integer2}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfGreaterF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfGreaterF{${1:integer1}}{${2:integer2}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfLessTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SemantexIntIfLessTF{${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfLessT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfLessT{${1:integer1}}{${2:integer2}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntIfLessF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIntIfLessF{${1:integer1}}{${2:integer2}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIntClear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexIntClear{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIfBlankTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexIfBlankTF{${1:tokens}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIfBlankT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexIfBlankT{${1:tokens}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexIfBlankF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexIfBlankF{${1:tokens}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexStrIfEqTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SemantexStrIfEqTF{${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexStrIfEqT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexStrIfEqT{${1:string1}}{${2:string2}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexStrIfEqF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SemantexStrIfEqF{${1:string1}}{${2:string2}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexERROR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexERROR{${1:error message}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexERRORKeyValueNotFound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexERRORKeyValueNotFound{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexERRORArgKeyValueNotFound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SemantexERRORArgKeyValueNotFound{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SemantexExpNot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemantexExpNot{${1:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\SetupClass#c,\\\\SetupObject#c,\\\\UseClassInCommand#c\": [\n      \"define keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"define keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"append keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"append keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"prepend keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"prepend keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"remove key=${1:key name}\",\n      \"remove key[${1:args}]=${2:key name}\",\n      \"define arg keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"define arg keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"append arg keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"append arg keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"prepend arg keys={{${1:key1}}{${2:keys to run}}${3:,{key2}{keys to run},...}}\",\n      \"prepend arg keys[${1:args}]={{${2:key1}}{${3:keys to run}}${4:,{key2}{keys to run},...}}\",\n      \"remove arg key=${1:key name}\",\n      \"remove arg key[${1:args}]=${2:key name}\",\n      \"execute={${1:TeX code}}\",\n      \"set keys={${1:keyvals}}\",\n      \"set keys x={${1:keyvals}}\",\n      \"data provide={${1:data}}\",\n      \"data set={${1:data}}{${2:value}}\",\n      \"data set x={${1:data}}{${2:value}}\",\n      \"data put left={${1:data}}{${2:value}}\",\n      \"data put left x={${1:data}}{${2:value}}\",\n      \"data put right={${1:data}}{${2:value}}\",\n      \"data put right x={${1:data}}{${2:value}}\",\n      \"data clear={${1:data}}{${2:value}}\",\n      \"bool provide={${1:boolean}}\",\n      \"bool set true={${1:boolean}}\",\n      \"bool set false={${1:boolean}}\",\n      \"bool if TF={${1:boolean}}{${2:true}}{${3:false}}\",\n      \"bool if T={${1:boolean}}{${2:true}}\",\n      \"bool if F={${1:boolean}}{${2:false}}\",\n      \"int provide={${1:integer}}\",\n      \"int set={${1:integer}}{${2:value}}\",\n      \"int incr={${1:integer}}\",\n      \"int if eq TF={${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\",\n      \"int if eq T={${1:integer1}}{${2:integer2}}{${3:true}}\",\n      \"int if eq F={${1:integer1}}{${2:integer2}}{${3:false}}\",\n      \"int if greater TF={${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\",\n      \"int if greater T={${1:integer1}}{${2:integer2}}{${3:true}}\",\n      \"int if greater F={${1:integer1}}{${2:integer2}}{${3:false}}\",\n      \"int if less TF={${1:integer1}}{${2:integer2}}{${3:true}}{${4:false}}\",\n      \"int if less T={${1:integer1}}{${2:integer2}}{${3:true}}\",\n      \"int if less F={${1:integer1}}{${2:integer2}}{${3:false}}\",\n      \"int clear={${1:integer}}\",\n      \"if blank TF={${1:tokens}}{${2:true}}{${3:false}}\",\n      \"if blank T={${1:tokens}}{${2:true}}\",\n      \"if blank F={${1:tokens}}{${2:false}}\",\n      \"string if eq TF={${1:string1}}{${2:string2}}{${3:true}}{${4:false}}\",\n      \"string if eq T={${1:string1}}{${2:string2}}{${3:true}}\",\n      \"string if eq F={${1:string1}}{${2:string2}}{${3:false}}\",\n      \"ERROR={${1:error message}}\",\n      \"ERROR key value not found={${1:key}}{${2:value}}\",\n      \"ERROR arg key value not found={${1:key}}{${2:value}}\",\n      \"parent=${1:\\\\Class}\",\n      \"class=${1:\\\\Class}\",\n      \"copy=${1:\\\\object}\",\n      \"symbol={${1:value}}\",\n      \"symbol put left=${1:value}\",\n      \"symbol put right=${1:value}\",\n      \"height phantom=${1:value}\",\n      \"slanting phantom=${1:value}\",\n      \"grading position=${1|upper,lower|}\",\n      \"command=${1:command}\",\n      \"clear command\",\n      \"return\",\n      \"inner return\",\n      \"right return\",\n      \"left return\",\n      \"left index return\",\n      \"right index return\",\n      \"index return\",\n      \"left arg return\",\n      \"right arg return\",\n      \"arg return\",\n      \"output=${1:\\\\Class}\",\n      \"do output\",\n      \"output options={${1:keys}}\",\n      \"parse options={${1:keys}}\",\n      \"parse\",\n      \"parse code\",\n      \"math class=${1:command}\",\n      \"default=${1:value}\",\n      \"*\",\n      \"**\",\n      \"slot\",\n      \"dots\",\n      \"* with other sep=${1:separator}\",\n      \"** with other sep=${1:separator}\",\n      \"arg=${1:value}\",\n      \"smash\",\n      \"prime\",\n      \"par\",\n      \"no par\",\n      \"never par\",\n      \"use par=${1|true,false,never|}\",\n      \"par size=${2|normal,auto,*,${1:other}|}\",\n      \"left par=${1:parenthesis}\",\n      \"right par=${1:parenthesis}\",\n      \"spar\",\n      \"spar=${2|normal,auto,*,${1:other}|}\",\n      \"spar size=${2|normal,auto,*,${1:other}|}\",\n      \"left spar=${1:parenthesis}\",\n      \"right spar=${1:parenthesis}\",\n      \"other spar={${1:left parenthesis}}{${2:right parenthesis}}\",\n      \"Other spar={${1:left parenthesis}}{${2:right parenthesis}}{${3:normal|auto|*}}\",\n      \"set arg keys={${1:keyvals}}\",\n      \"set arg keys x={${1:keyvals}}\",\n      \"set arg single keys={${1:keyvals}}\",\n      \"set arg single keys x={${1:keyvals}}\",\n      \"set one arg single key=${1:key}\",\n      \"set one arg single key x=${1:key}\",\n      \"set arg without keyval=${1:value}\",\n      \"set arg without keyval x=${1:value}\",\n      \"pre arg=${1:value}\",\n      \"pre arg put left=${1:value}\",\n      \"post arg=${1:value}\",\n      \"post arg put right=${1:value}\",\n      \"set arg sep=${1:value}\",\n      \"set arg slot=${1:value}\",\n      \"set arg dots=${1:value}\",\n      \"arg keyval=${1|true,false,single keys,one single keys|}\",\n      \"arg position=${1|left,right|}\",\n      \"next arg with sep\",\n      \"sep arg=${1:value}\",\n      \"comma arg=${1:value}\",\n      \"arg with other sep={${1:separator}}{${2:value}}\",\n      \"arg dots with other sep=${1:separator}\",\n      \"arg slot with other sep=${1:separator}\",\n      \"arg dots\",\n      \"comma arg dots\",\n      \"arg slot\",\n      \"comma arg slot\",\n      \"clear arg\",\n      \"clear pre arg\",\n      \"clear post arg\",\n      \"upper=${1:value}\",\n      \"sep upper=${1:value}\",\n      \"comman upper=${1:value}\",\n      \"pre upper=${1:value}\",\n      \"pre upper put left=${1:value}\",\n      \"post upper=${1:value}\",\n      \"post upper put right=${1:value}\",\n      \"upper put left=${1:value}\",\n      \"set upper sep=${1:value}\",\n      \"next upper with sep\",\n      \"upper with other sep={${1:separator}}{${2:value}}\",\n      \"upper slot\",\n      \"sep upper slot\",\n      \"comma upper slot\",\n      \"set upper slot=${1:value}\",\n      \"upper slot with other sep=${1:separator}\",\n      \"upper dots\",\n      \"sep upper dots\",\n      \"comma upper dots\",\n      \"set upper dots=${1:value}\",\n      \"upper dots with other sep=${1:separator}\",\n      \"upper *\",\n      \"upper **\",\n      \"sep upper *\",\n      \"sep upper **\",\n      \"comma upper *\",\n      \"comma upper **\",\n      \"upper * with other sep=${1:separator}\",\n      \"upper ** with other sep=${1:separator}\",\n      \"clear upper\",\n      \"clear pre upper\",\n      \"clear post upper\",\n      \"lower=${1:value}\",\n      \"sep lower=${1:value}\",\n      \"comma lower=${1:value}\",\n      \"pre lower=${1:value}\",\n      \"pre lower put left=${1:value}\",\n      \"post lower=${1:value}\",\n      \"post lower put right=${1:value}\",\n      \"lower put left=${1:value}\",\n      \"set lower sep=${1:value}\",\n      \"next lower with sep\",\n      \"lower with other sep={${1:separator}}{${2:value}}\",\n      \"lower slot\",\n      \"sep lower slot\",\n      \"comma lower slot\",\n      \"set lower slot=${1:value}\",\n      \"lower slot with other sep=${1:separator}\",\n      \"lower dots\",\n      \"sep lower dots\",\n      \"comma lower dots\",\n      \"set lower dots=${1:value}\",\n      \"lower dots with other sep=${1:separator}\",\n      \"lower *\",\n      \"lower **\",\n      \"sep lower *\",\n      \"sep lower **\",\n      \"comma lower *\",\n      \"comma lower **\",\n      \"lower * with other sep=${1:separator}\",\n      \"lower ** with other sep=${1:separator}\",\n      \"clear lower\",\n      \"clear pre lower\",\n      \"clear post lower\",\n      \"upper left=${1:value}\",\n      \"sep upper left=${1:value}\",\n      \"comman upper left=${1:value}\",\n      \"pre upper left=${1:value}\",\n      \"pre upper left put left=${1:value}\",\n      \"post upper left=${1:value}\",\n      \"post upper left put right=${1:value}\",\n      \"upper left put left=${1:value}\",\n      \"set upper left sep=${1:value}\",\n      \"next upper left with sep\",\n      \"upper left with other sep={${1:separator}}{${2:value}}\",\n      \"upper left slot\",\n      \"sep upper left slot\",\n      \"comma upper left slot\",\n      \"set upper left slot=${1:value}\",\n      \"upper left slot with other sep=${1:separator}\",\n      \"upper left dots\",\n      \"sep upper left dots\",\n      \"comma upper left dots\",\n      \"set upper left dots=${1:value}\",\n      \"upper left dots with other sep=${1:separator}\",\n      \"upper left *\",\n      \"upper left **\",\n      \"sep upper left *\",\n      \"sep upper left **\",\n      \"comma upper left *\",\n      \"comma upper left **\",\n      \"upper left * with other sep=${1:separator}\",\n      \"upper left ** with other sep=${1:separator}\",\n      \"clear upper left\",\n      \"clear pre upper left\",\n      \"clear post upper left\",\n      \"lower left=${1:value}\",\n      \"sep lower left=${1:value}\",\n      \"comman lower left=${1:value}\",\n      \"pre lower left=${1:value}\",\n      \"pre lower left put left=${1:value}\",\n      \"post lower left=${1:value}\",\n      \"post lower left put right=${1:value}\",\n      \"lower left put left=${1:value}\",\n      \"set lower left sep=${1:value}\",\n      \"next lower left with sep\",\n      \"lower left with other sep={${1:separator}}{${2:value}}\",\n      \"lower left slot\",\n      \"sep lower left slot\",\n      \"comma lower left slot\",\n      \"set lower left slot=${1:value}\",\n      \"lower left slot with other sep=${1:separator}\",\n      \"lower left dots\",\n      \"sep lower left dots\",\n      \"comma lower left dots\",\n      \"set lower left dots=${1:value}\",\n      \"lower left dots with other sep=${1:separator}\",\n      \"lower left *\",\n      \"lower left **\",\n      \"sep lower left *\",\n      \"sep lower left **\",\n      \"comma lower left *\",\n      \"comma lower left **\",\n      \"lower left * with other sep=${1:separator}\",\n      \"lower left ** with other sep=${1:separator}\",\n      \"clear lower left\",\n      \"clear pre lower left\",\n      \"clear post lower left\",\n      \"d=${1:value}\",\n      \"sep d=${1:value}\",\n      \"comma d=${1:value}\",\n      \"pre d=${1:value}\",\n      \"pre d put left=${1:value}\",\n      \"post d=${1:value}\",\n      \"post d put left=${1:value}\",\n      \"d put left=${1:value}\",\n      \"set d sep=${1:value}\",\n      \"next d with sep\",\n      \"d with other sep={${1:separator}}{${2:value}}\",\n      \"d slot\",\n      \"sep d slot\",\n      \"comma d slot\",\n      \"set d slot=${1:value}\",\n      \"d slot with other sep=${1:separator}\",\n      \"d dots\",\n      \"sep d dots\",\n      \"comma d dots\",\n      \"set d dots=${1:value}\",\n      \"d dots with other sep=${1:separator}\",\n      \"d *\",\n      \"d **\",\n      \"sep d *\",\n      \"sep d **\",\n      \"comma d *\",\n      \"comma d **\",\n      \"d * with other sep=${1:separator}\",\n      \"d ** with other sep=${1:separator}\",\n      \"clear d\",\n      \"clear pre d\",\n      \"clear post d\",\n      \"i=${1:value}\",\n      \"sep i=${1:value}\",\n      \"comma i=${1:value}\",\n      \"pre i=${1:value}\",\n      \"pre i put left=${1:value}\",\n      \"post d=${1:value}\",\n      \"post i put left=${1:value}\",\n      \"i put left=${1:value}\",\n      \"set i sep=${1:value}\",\n      \"next i with sep\",\n      \"i with other sep={${1:separator}}{${2:value}}\",\n      \"i slot\",\n      \"sep i slot\",\n      \"comma i slot\",\n      \"set i slot=${1:value}\",\n      \"i slot with other sep=${1:separator}\",\n      \"i dots\",\n      \"sep i dots\",\n      \"comma i dots\",\n      \"set i dots=${1:value}\",\n      \"i dots with other sep=${1:separator}\",\n      \"i *\",\n      \"i **\",\n      \"sep i *\",\n      \"sep i **\",\n      \"comma i *\",\n      \"comma i **\",\n      \"i * with other sep=${1:separator}\",\n      \"i ** with other sep=${1:separator}\",\n      \"clear i\",\n      \"clear pre i\",\n      \"clear post i\"\n    ],\n    \"\\\\SemantexSetup#c\": [\n      \"keyval parser=${1:command}\",\n      \"single key parser=${1:command}\",\n      \"semtex file\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/semantic-markup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"endnotes\",\n      \"if\": \"endnotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DoBeforeEndnotes\",\n      \"if\": \"endnotes\"\n    },\n    {\n      \"name\": \"EndnoteFont\",\n      \"if\": \"endnotes\"\n    },\n    {\n      \"name\": \"SetupEndnotes\",\n      \"if\": \"endnotes\"\n    },\n    {\n      \"name\": \"ifdefaultquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultquotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultquotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifendnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strong{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quoted\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"quoted{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"soCalled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soCalled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mentioned\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mentioned{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"foreign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreign{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"worktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worktitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ptitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"add\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"add{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Dots\"\n    },\n    {\n      \"name\": \"gloss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gloss{${1:term%text}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"quotedgloss\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"quotedgloss{${1:term%text}}{${2:def%text}}\"\n      }\n    },\n    {\n      \"name\": \"XXX\"\n    },\n    {\n      \"name\": \"XXX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"XXX[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"citXXX\"\n    },\n    {\n      \"name\": \"citXXX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"citXXX[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"fl\"\n    },\n    {\n      \"name\": \"na\"\n    },\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"octave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octave{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"musfig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"musfig{${1:upper}}{${2:lower}}\"\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meter{${1:upper}}{${2:lower}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Footnote\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/semantic-markup#c\": [\n      \"defaultquotes\",\n      \"endnotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/semantic-markup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/semantic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathlig\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathlig{${1:characters}}{${2:ligature commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"mathligson\"\n    },\n    {\n      \"name\": \"mathligsoff\"\n    },\n    {\n      \"name\": \"mathligprotect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathligprotect{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"inference\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inference{${1:line1 \\\\\\\\ ... \\\\\\\\ lineN%formula}}{${2:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inference\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inference[${3:name}]{${1:line1 \\\\\\\\ ... \\\\\\\\ lineN%formula}}{${2:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inference*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inference*{${1:line1 \\\\\\\\ ... \\\\\\\\ lineN%formula}}{${2:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inference*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inference*[${3:name}]{${1:line1 \\\\\\\\ ... \\\\\\\\ lineN%formula}}{${2:conclusion%formula}}\"\n      }\n    },\n    {\n      \"name\": \"setpremisesend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpremisesend{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setpremisesspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpremisesspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setnamespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnamespace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"predicate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"predicate{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"predicatebegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predicateend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compiler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compiler{${1:source,machine,target}}\"\n      }\n    },\n    {\n      \"name\": \"interpreter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interpreter{${1:source,language}}\"\n      }\n    },\n    {\n      \"name\": \"program\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"program{${1:program,language}}\"\n      }\n    },\n    {\n      \"name\": \"machine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"machine{${1:machine}}\"\n      }\n    },\n    {\n      \"name\": \"reservestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reservestyle{${1:macro%cmd}}{${2:formatting%definition}}\"\n      }\n    },\n    {\n      \"name\": \"reservestyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"reservestyle[${3:spacing cmd}]{${1:macro%cmd}}{${2:formatting%definition}}\"\n      }\n    },\n    {\n      \"name\": \"comp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comp{${1:command%plain}}{${2:environment%formula}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eval{${1:command%plain}}{${2:environment%formula}}\"\n      }\n    },\n    {\n      \"name\": \"evalsymbol\"\n    },\n    {\n      \"name\": \"evalsymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"evalsymbol[${1:superscript%formula}]\"\n      }\n    },\n    {\n      \"name\": \"compsymbol\"\n    },\n    {\n      \"name\": \"compsymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"compsymbol[${1:superscript%formula}]\"\n      }\n    },\n    {\n      \"name\": \"exe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exe{${1:program}}{${2:data%formula}}\"\n      }\n    },\n    {\n      \"name\": \"exe\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"exe{${1:program}}[${3:machine%formula}]{${2:data%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TestForConflict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TestForConflict{${1:command list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/semantic#c\": [\n      \"ligature\",\n      \"inference\",\n      \"tdiagram\",\n      \"reserved\",\n      \"shorthand\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/semantic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/semesterplanner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"schedule\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"lecture{${1:course name}}{${2:lecturer}}{${3:room}}{${4:day%keyvals}}{${5:start-end}}{${6:priority}}\",\n        \"keys\": [\n          \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"seminar\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"seminar{${1:course name}}{${2:lecturer}}{${3:room}}{${4:day%keyvals}}{${5:start-end}}{${6:priority}}\",\n        \"keys\": [\n          \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"meeting\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"meeting{${1:course name}}{${2:lecturer}}{${3:room}}{${4:day%keyvals}}{${5:start-end}}{${6:priority}}\",\n        \"keys\": [\n          \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"officehour\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"officehour{${1:course name}}{${2:lecturer}}{${3:room}}{${4:day%keyvals}}{${5:start-end}}{${6:priority}}\",\n        \"keys\": [\n          \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"tutorial\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tutorial{${1:course name}}{${2:lecturer}}{${3:room}}{${4:day%keyvals}}{${5:start-end}}{${6:priority}}\",\n        \"keys\": [\n          \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ttlegend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttlegend{${1:color}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"appointment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"appointment{${1:date}}{${2:time}}{${3:course}}{${4:description}}{${5:room}}{${6:priority}}\"\n      }\n    },\n    {\n      \"name\": \"deadline\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"deadline{${1:date}}{${2:course}}{${3:description}}{${4:priority}}\"\n      }\n    },\n    {\n      \"name\": \"exam\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"exam{${1:date}}{${2:time}}{${3:course}}{${4:type}}\"\n      }\n    },\n    {\n      \"name\": \"pnone\"\n    },\n    {\n      \"name\": \"plow\"\n    },\n    {\n      \"name\": \"pmid\"\n    },\n    {\n      \"name\": \"phigh\"\n    },\n    {\n      \"name\": \"pmandatory\"\n    },\n    {\n      \"name\": \"teams\"\n    },\n    {\n      \"name\": \"zoom\"\n    },\n    {\n      \"name\": \"youtube\"\n    },\n    {\n      \"name\": \"written\"\n    },\n    {\n      \"name\": \"oral\"\n    },\n    {\n      \"name\": \"tba\"\n    },\n    {\n      \"name\": \"tbd\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"timetable\"\n    },\n    {\n      \"name\": \"legend\"\n    },\n    {\n      \"name\": \"appointments\"\n    },\n    {\n      \"name\": \"appointments\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:room-column title}]\"\n      }\n    },\n    {\n      \"name\": \"deadlines\"\n    },\n    {\n      \"name\": \"exams\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\lecture,\\\\seminar,\\\\meeting,\\\\officehour,\\\\tutorial\": [\n      \"M\",\n      \"T\",\n      \"W\",\n      \"Th\",\n      \"F\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/semesterplannerlua.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalendar\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"luapackageloader\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lecture\"\n    },\n    {\n      \"name\": \"lecture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lecture[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"seminar\"\n    },\n    {\n      \"name\": \"seminar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"seminar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tutorial\"\n    },\n    {\n      \"name\": \"tutorial\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tutorial[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"meeting\"\n    },\n    {\n      \"name\": \"meeting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"meeting[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"officehour\"\n    },\n    {\n      \"name\": \"officehour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"officehour[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"laboratory\"\n    },\n    {\n      \"name\": \"laboratory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"laboratory[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"fieldstudy\"\n    },\n    {\n      \"name\": \"fieldstudy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fieldstudy[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"printSpCalendar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printSpCalendar{${1:start date}}{${2:end date}}\"\n      }\n    },\n    {\n      \"name\": \"printSpCalendar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printSpCalendar[${3:cols}]{${1:start date}}{${2:end date}}\"\n      }\n    },\n    {\n      \"name\": \"appointment\"\n    },\n    {\n      \"name\": \"appointment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"appointment[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"exam\"\n    },\n    {\n      \"name\": \"exam\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"exam[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"deadline\"\n    },\n    {\n      \"name\": \"deadline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"deadline[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"oral\"\n    },\n    {\n      \"name\": \"written\"\n    },\n    {\n      \"name\": \"pmandatory\"\n    },\n    {\n      \"name\": \"phigh\"\n    },\n    {\n      \"name\": \"pmid\"\n    },\n    {\n      \"name\": \"plow\"\n    },\n    {\n      \"name\": \"pnone\"\n    },\n    {\n      \"name\": \"teams\"\n    },\n    {\n      \"name\": \"zoom\"\n    },\n    {\n      \"name\": \"youtube\"\n    },\n    {\n      \"name\": \"BBB\"\n    },\n    {\n      \"name\": \"tbd\"\n    },\n    {\n      \"name\": \"tba\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"timetable\"\n    },\n    {\n      \"name\": \"timetable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"appointments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"appointments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:header%text}]{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"exams\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:true|false}}\"\n      }\n    },\n    {\n      \"name\": \"deadlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:true|false}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/semioneside.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"leftpagecontent\"\n    },\n    {\n      \"name\": \"leftpagecontrolend\"\n    },\n    {\n      \"name\": \"leftpagecontrolstart\"\n    },\n    {\n      \"name\": \"rightpagecontrolstart\"\n    },\n    {\n      \"name\": \"semionesideoff\"\n    },\n    {\n      \"name\": \"semionesideon\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/semtex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SemantexBullet\"\n    },\n    {\n      \"name\": \"SemantexDoubleBullet\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/semtrans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Alif\"\n    },\n    {\n      \"name\": \"Ayn\"\n    },\n    {\n      \"name\": \"U\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"T\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"T{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sepfootnotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sepfootnotecontent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sepfootnotecontent{${1:key%specialDef}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sepfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sepfootnote{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\sepfootnote#c,\\\\sepfootnotemark#c,\\\\sepfootnotetext#c,\\\\printsepfootnote#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sepfootnotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sepfootnotemark{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\sepfootnote#c,\\\\sepfootnotemark#c,\\\\sepfootnotetext#c,\\\\printsepfootnote#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sepfootnotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sepfootnotetext{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\sepfootnote#c,\\\\sepfootnotemark#c,\\\\sepfootnotetext#c,\\\\printsepfootnote#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsepfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printsepfootnote{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\sepfootnote#c,\\\\sepfootnotemark#c,\\\\sepfootnotetext#c,\\\\printsepfootnote#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sepfootquicknote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sepfootquicknote{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnotes{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newfootnotes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newfootnotes*{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbolfootnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsymbolfootnotes{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbolfootnotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsymbolfootnotes[${2:counter}]{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newendnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newendnotes{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newcommentnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcommentnotes{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbolcommentnotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsymbolcommentnotes{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"newsymbolcommentnotes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsymbolcommentnotes[${2:counter}]{${1:prefix}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sepfootnotes#c\": [\n      \"quiet\",\n      \"warn\",\n      \"error\",\n      \"global\",\n      \"after\"\n    ],\n    \"\\\\sepfootnote#c,\\\\sepfootnotemark#c,\\\\sepfootnotetext#c,\\\\printsepfootnote#c\": [\n      \"%sepfootnotekey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sepfootnotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sepnum.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sepnum\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sepnum{${1:symbol}}{${2:whole-part-sep}}{${3:frac-part-sep}}{${4:number}}\"\n      }\n    },\n    {\n      \"name\": \"sepnumform\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"sepnumform{${1:symbol}}{${2:whole-part-sep}}{${3:frac-part-sep}}{${4:counter}}\"\n      }\n    },\n    {\n      \"name\": \"printnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printnumKomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnumTrenner\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/seqsplit.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"seqsplit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seqsplit{${1:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"seqinsert\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/serbian-lig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spfl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alfija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfibija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfibijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfilohija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfilohije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfilohiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfiteatar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfiteatra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfiteatru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anglofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anglofilom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anfilade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apokrifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atrofija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atrofirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autentifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autentifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autentifikaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autofilter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinitet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afiniteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinitete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afiniteti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinitetom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinitetu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmirali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisalo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisanja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisanje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisanju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisuci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afirmisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amfibijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apostrofirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autobiografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beneficija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beneficije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"benfika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibliografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biografima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofizika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofizike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofiziku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofizicka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofizicke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biofizicki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefirajte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefiraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefirala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefirate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blefiras\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brifing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brifinga\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brifingu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brifinzima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biblofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cinkografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charshafima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delfinima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"demografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defilea\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defileom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defileu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defilovala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defilovali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defilovao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defiluje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defiluju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanjem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisanju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitivno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definicija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definicije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definiciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definiciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisemo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definises\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisimo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisuca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definisuci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficitom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deficitu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"distrofije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defilirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"demografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitivnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitivna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diskvalifikacijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definitivne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evrofili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evrofimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ekofin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epitafi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esnafi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esnafima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasniji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasniju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"efikasnoscu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etnografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elektrificirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elektrifikacijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"falsifikat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibroza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibroze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibula\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibulama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fibulu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuralna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuralne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuralni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuralnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuralno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuracija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuracije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuraciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuraciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuricu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurinama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurinom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuriraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurirala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuriralo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuricama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizijatar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalcima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiziku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiziolog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiziologa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizioloska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizioloske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizioloski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiziolosko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicari\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicarima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicarka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicarku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickoga\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizickom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizicku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijaker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakeri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakerima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakerom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijakeru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijaska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijasko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijaskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijesta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijoke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijoku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijoci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijuk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijuka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijukale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijuke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijukom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijuce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fijucu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksacijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksatorima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksatore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksatori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiraj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiralo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiramo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksiranju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiksu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiktivnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikusa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikuse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikusi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikcija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikcijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikcije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikcijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fikciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filantrop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filantropa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filantropi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filaret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filareta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filaretom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filaretu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filatelija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filatelije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filateliju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"file\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filetima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filigran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filigrana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filigranom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijalama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijalom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filijalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"film\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmadzija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmadziju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmicnost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmova\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmovi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmovima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmofili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmsko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmsku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofiranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofsko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofsku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filolog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filologom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filolozi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filolozima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filolosko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filoloskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filteri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filterima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filterom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filteru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtracija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtracije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtraciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtraciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtriraj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtriraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtriranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtriranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtriranjem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filcani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filcom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fildzana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fildzanom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalizuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finaliste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalistu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansijsku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiranih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansiranju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finansirate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fingira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fingiranjem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finesa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finesama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finijeg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finijem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finijih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finijoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finisha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finishe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finishiraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finishu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fino\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finoca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finoce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finoci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finocom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finocu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fioka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiokama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fioke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fioku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fioci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiokicama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fisija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fisije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskalnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskultura\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskulture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskulturi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiskulturu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitilj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitilja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitilje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitnes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografishe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fotografiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fuficama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fimoza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ficfiric\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitiljaca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frankofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filatelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filtrirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurativan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filingranski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizionomija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizioloskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fizikalca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fonografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fortifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filatelisticki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filharmonijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filharmonijsko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fitnesa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurativno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filcanim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filcanog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filozofiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gasifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geografima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geofizikom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geofiziku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geofizicka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geofizicki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafijskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikona\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikoni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikonom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafikonu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafiku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafitima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafitom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafitnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafitu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficara\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficari\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafickim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafickih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafickog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafickoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grafickom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"graficku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grofica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grofice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grofici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groficom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"groficu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geofizika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glorifikovati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatiserifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hemofilije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hiperfina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hiperfinog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hipertrofirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hipofize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hlorofila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harfist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hipofiza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hemofilija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hijeroglifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hijeroglifima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hidrografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hipertrofija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikovati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikujete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infiltrira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infinitiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infinitiva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infinitivi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infinitivu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficiraju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficirale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inficiranu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infinitivni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ikonografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identificiranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"identifikaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kadifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kalfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfilic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kartografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karfiol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karfiola\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karfiolu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"katastrofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafilerije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafileriji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafileriju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafich\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaficha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafiche\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafichi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafichima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafichu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kafice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kaficu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kvalifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kvalifikovali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kefir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kodifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kodifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koeficijent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koeficijentima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguracija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguracije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguraciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguraciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiskuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koreografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kofice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kodifikator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kartografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kodificirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kodifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koreografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasificirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"klasifikujem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguracija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfiguracije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kinematografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kvalifikacijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfilima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kalfinoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"karanfilce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"litografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"litografije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leksikografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijas\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijasi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijasima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijaskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijasku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijasu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mafiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metafizika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metafizike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metafiziku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metafizici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metafizicka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mefistofelovskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mikrofilm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mikrofilma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mikrofilmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modifikova\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modifikuj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morfij\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morfijum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morfijuma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morfijumom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"morfijumu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"modificirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinijeg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfiniji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinijim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinijih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfinijoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najfiniju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najefikasniji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasnosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neprofitna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neprofitne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neprofitni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neprofitno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neprofitnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimfice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimfici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nimficu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neefikasnost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neklasificiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nekvalifikovan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"najprefinjeniji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nedefinisana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odsrafio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odsrafiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orfizam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orfizma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofisa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofisnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofisnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficijelna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficijelne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficijelni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficijelno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficijelnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficiri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirov\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirovim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirovu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirska\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirskih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirsko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirskog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirskoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirskom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficirsku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficiru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oficircina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragrafi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafiniranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafinom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafinske\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafinsku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafirala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafirale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafirali\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parafirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifizam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifizma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifikom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifiku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifiste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacificka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacificke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacificki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifickim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifickih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacificko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifickog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifickoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pacifickom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidniji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"perfidnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personifikovan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plastificiranim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plastificiranog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"podoficir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"podoficira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"podoficire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"podoficiri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"podoficiru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polufinala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polufinale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polufinalu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pontifikat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfire\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfiri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfirija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfirije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfirom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"porfiru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"potrefilo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefiks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefiksa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefiksi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefiksima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefiksom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjena\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjeno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefinjenosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilaksi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilisan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjena\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjene\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitabilno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profiteri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profiterom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profiteru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profitu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilaksa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjeno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paleografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"piktografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polufinalist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pornografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profinjenost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profilaktican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"personificiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ratifikovala\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ratifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ratifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinerija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinerijama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinerije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafineriji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafineriju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafiniran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafiniranom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafiniranu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafiniranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinisana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinisanu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinisani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinovan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinovane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafinovani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reafirmise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reafirmisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redefinisanje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redefinise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"redefinisu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reljefi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reljefima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rusofila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rusofile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rusofili\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rafiniranog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radiografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ratifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"samoidentifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safirima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safirno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safirom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safiru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimidi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimov\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimovo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafimu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"serafita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sertifikat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sertifikata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sertifikatima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sertifikaciono\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sifilis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sifilisa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sifilisom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofizmima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofistike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofistima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisticka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisticke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisticki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisticko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifikacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifikacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifikaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifikum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificnosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificnostima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specificnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stenografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strofici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sulfid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sulfida\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sulfide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"surfing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufizam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiksa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufikse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiksi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiksima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiksom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufiksu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufijskim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suficit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suficita\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suficitom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suficitu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfinga\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfinge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfingom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenografi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofizam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"safirski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sifiliticar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stenografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofisticirani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specifikacijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofistika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sherifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shefica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shefice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shefici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sheficom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shrafiran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shrafiranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shrafiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shrafirana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tarifi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tartufi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tartufima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teozofi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teozofija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trandafil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trandafir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafika\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafikama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafikant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafikanti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafike\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafikinga\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafiku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trafici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trijumfima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trijumfira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trofima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trofimov\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trofimu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trofin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telegrafija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telegrafist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topografija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"telegrafijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unificira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unificirao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ufitiljenih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ufitiljio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verifikuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verifikuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zafir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zafira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zafijuche\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zasrafim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zasrafiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zefir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zefira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zulufi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zasarafiti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zalfija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zalfije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zalfijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zalfiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeroflot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeroflota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baterflaj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bofl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chifluk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflatorna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deflacijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defloracija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagrantna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagrantni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagrantno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flanel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flaster\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flastera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasteri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasterima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasterom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flastere\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasterchic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flauta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flaute\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flauti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautiste\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautisti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautistu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasirane\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasirano\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasiranoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasiranu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasiranje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasicama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasici\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasicom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasicu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flasu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegmom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flekama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flekice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flekicu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleksibilnijoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleksibilno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleku\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flerta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovalo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovanja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovanje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertovao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertujete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertujte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flertuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleci\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flesh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleshevi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fliperu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flomaster\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flomastera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flomasteri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floret\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floreti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floretom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floreta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floretu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florinu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floskula\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floskulama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floskule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floskulom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floskulu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotama\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotantna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotantnoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotilu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flotu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluida\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidnih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluidnosti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluktuira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluorom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frflja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frfljate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flamingo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flautist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fliper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frfljati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flamanski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flanelski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flegmatican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluktuacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fluorescentan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflatorna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflatorne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflatorni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflatorno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflatornu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflacija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflacije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflaciji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflacijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflaciju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflaciona\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflacione\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infleksija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infleksije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infleksiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"influence\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isflekan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inflacijski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflaza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflaze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflazne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflaznu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflazom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflazu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamufliran\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kifla\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kifle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kifli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflicu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kiflu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konflikata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konflikt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konflikta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konflikte\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konflikti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktne\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"konfliktu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kamuflirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mikroflore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muflon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muflona\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nefleksibilnost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamflet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfleta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamflete\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfleti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfletima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfletist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfletic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pamfletu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiflaza\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiflaze\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiflazi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiflazu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflekse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksima\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksna\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksnim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektora\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektuje\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektuju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refleksivan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektorom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reflektirati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"suflera\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufleri\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sufliranja\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teleflore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vafl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vafle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vafli\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhirofle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadafi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadafija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadafijev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadafijem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gadafiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zamfirova\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zamfirove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zamfirovic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zafirovic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zafirovica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zafirovicu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zafirovski\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijinu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jozefina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Koperfilda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Marfi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Memfist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Memfista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mustafina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mustafinim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mustafino\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mustafinoj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mustafica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mefista\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mefisto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mefistotel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimovic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jefimovica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofija\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofije\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofiji\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijinih\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijinom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijinu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofijom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sofiju\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofila\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofilo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofilovica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofilom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Teofilu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Trifica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Culafic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gertelfingenu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gertelfingen\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sesstime.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"timingconfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingconfigure{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/sesstime#c,\\\\timingconfigure\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingconfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingconfigure[${2:cond}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/sesstime#c,\\\\timingconfigure\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"timingstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingstart{${1:abstime}}\"\n      }\n    },\n    {\n      \"name\": \"timingstart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingstart[${2:cond%keyvals}]{${1:abstime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingstart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingstart*{${1:reltime}}\"\n      }\n    },\n    {\n      \"name\": \"timingstart*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingstart*[${2:cond%keyvals}]{${1:reltime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingsplit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingsplit{${1:abstime}}\"\n      }\n    },\n    {\n      \"name\": \"timingsplit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingsplit[${2:cond%keyvals}]{${1:abstime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingsplit*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingsplit*{${1:reltime}}\"\n      }\n    },\n    {\n      \"name\": \"timingsplit*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingsplit*[${2:cond%keyvals}]{${1:reltime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingstop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingstop{${1:abstime}}\"\n      }\n    },\n    {\n      \"name\": \"timingstop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingstop[${2:cond%keyvals}]{${1:abstime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingstop*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingstop*{${1:reltime}}\"\n      }\n    },\n    {\n      \"name\": \"timingstop*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingstop*[${2:cond%keyvals}]{${1:reltime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingnext{${1:abstime}}\"\n      }\n    },\n    {\n      \"name\": \"timingnext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingnext[${2:cond%keyvals}]{${1:abstime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingnext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingnext*{${1:reltime}}\"\n      }\n    },\n    {\n      \"name\": \"timingnext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingnext*[${2:cond%keyvals}]{${1:reltime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timinglapse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timinglapse{${1:reltime}}\"\n      }\n    },\n    {\n      \"name\": \"timinglapse\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timinglapse[${2:cond%keyvals}]{${1:reltime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timinggauge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timinggauge{${1:abstime}}\"\n      }\n    },\n    {\n      \"name\": \"timinggauge\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timinggauge[${2:cond%keyvals}]{${1:abstime}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingblocktotal\"\n    },\n    {\n      \"name\": \"timingblocktotal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingblocktotal[${1:error}]\"\n      }\n    },\n    {\n      \"name\": \"timingblocktotal*\"\n    },\n    {\n      \"name\": \"timingblocktotal*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingblocktotal*[${1:error}]\"\n      }\n    },\n    {\n      \"name\": \"timingchapter\"\n    },\n    {\n      \"name\": \"timingchapter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingchapter[${1:cond%keyvals}]\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingchapterend\"\n    },\n    {\n      \"name\": \"timingchapterend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingchapterend[${1:cond%keyvals}]\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingchapterlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingchapterlabel{${1:chapterlabel%special}}\"\n      }\n    },\n    {\n      \"name\": \"timingchaptertotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingchaptertotal{${1:chapterlabel%special}}\"\n      }\n    },\n    {\n      \"name\": \"timingchapterlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingchapterlabel[${2:error}]{${1:chapterlabel%special}}\"\n      }\n    },\n    {\n      \"name\": \"timingchaptertotal*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingchaptertotal*{${1:chapterlabel%special}}\"\n      }\n    },\n    {\n      \"name\": \"timingchapterlabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingchapterlabel*[${2:error}]{${1:chapterlabel%special}}\"\n      }\n    },\n    {\n      \"name\": \"timingreturn\"\n    },\n    {\n      \"name\": \"timingsession\"\n    },\n    {\n      \"name\": \"timingsession\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingsession[${1:cond%keyvals}]\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingsessionend\"\n    },\n    {\n      \"name\": \"timingsessionend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timingsessionend[${1:cond%keyvals}]\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timinglistofsessions\"\n    },\n    {\n      \"name\": \"timingcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingcomment{${1:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"timingcomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingcomment[${2:cond%keyvals}]{${1:comment%text}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingif\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingif{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"timingif\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingif[${2:cond%keyvals}]{${1:code}}\",\n        \"keys\": [\n          \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"timingprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingprint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingprint[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingprintblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"timingprintblock{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"timingprintchapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingprintchapter{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingprintmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingprintmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingprintremark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingprintremark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingprintsession\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"timingprintsession{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"timingsessionline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"timingsessionline{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"timingsessiontotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"timingsessiontotal{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"timingsessiontotal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"timingsessiontotal[${2:opt}]{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sesstime#c,\\\\timingconfigure\": [\n      \"print\",\n      \"block\",\n      \"chapter\",\n      \"session\",\n      \"comment\",\n      \"warning\",\n      \"width=\",\n      \"widthl=\",\n      \"widthr=\",\n      \"autosession=${1:duration}\",\n      \"depthsec=${1:depth}\",\n      \"depthpar=${1:depth}\",\n      \"flags={${1:flag1,flag2,...}}\"\n    ],\n    \"\\\\timingstart,\\\\timingstart*,\\\\timingsplit,\\\\timingsplit*,\\\\timingstop,\\\\timingstop*,\\\\timingnext,\\\\timingnext*,\\\\timinglapse,\\\\timinggauge,\\\\timingchapter,\\\\timingchapterend,\\\\timingsession,\\\\timingsessionend,\\\\timingcomment,\\\\timingif\": [\n      \"if=${1:flag}\",\n      \"not=${1:flag}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sesstime#c,\\\\timingconfigure\"\n  ]\n}"
  },
  {
    "path": "dev/packages/setdeck.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcard\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"setcard{${1:num}}{${2:shadingnum}}{${3:colornum}}{${4:shapenum}}{${5:scaling}}\"\n      }\n    },\n    {\n      \"name\": \"smallsetcard\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"smallsetcard{${1:num}}{${2:shadingnum}}{${3:colornum}}{${4:shapenum}}{${5:scaling}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/setdim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"txa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txa{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"settext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"settext{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}\"\n      }\n    },\n    {\n      \"name\": \"lsettext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lsettext{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}\"\n      }\n    },\n    {\n      \"name\": \"retdims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rstdims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setpage{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}{${6:topmargin}}{${7:headheight}}{${8:headsep}}{${9:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"lsetpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"lsetpage{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}{${6:topmargin}}{${7:headheight}}{${8:headsep}}{${9:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"changetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"changetext{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}\"\n      }\n    },\n    {\n      \"name\": \"changepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"changepage{${1:height}}{${2:width}}{${3:evenmargin}}{${4:oddmargin}}{${5:colsep}}{${6:topmargin}}{${7:headheight}}{${8:headsep}}{${9:footskip}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/setouterhbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setouterhboxFailure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setouterhboxRemove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setouterhboxFinish\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setouterhboxFinish{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setouterhboxAfter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setouterhboxAfter{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setouterhboxReturnAfterFi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setouterhboxReturnAfterFi{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"setouterhbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:box number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sets.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newset{${1:set%cmd}}{${2:elmt1|${3:elmt2}|...}}\"\n      }\n    },\n    {\n      \"name\": \"newsetsimple\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsetsimple{${1:set%cmd}}{${2:elmt1|${3:elmt2}|...}}\"\n      }\n    },\n    {\n      \"name\": \"listset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listset{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"setseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iselementofset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iselementofset{${1:element}}{${2:set}}\"\n      }\n    },\n    {\n      \"name\": \"sortset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sortset{${1:set1}}{${2:set2%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"deleteduplicates\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deleteduplicates{${1:set1}}{${2:set2%cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/setspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"singlespacing\"\n    },\n    {\n      \"name\": \"onehalfspacing\"\n    },\n    {\n      \"name\": \"doublespacing\"\n    },\n    {\n      \"name\": \"SetSinglespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"displayskipstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdisplayskipstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdisplayskipstretch{${1:factor}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"singlespace\"\n    },\n    {\n      \"name\": \"singlespace*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublespace\"\n    },\n    {\n      \"name\": \"onehalfspace\"\n    },\n    {\n      \"name\": \"spacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/setspace#c\": [\n      \"nodisplayskipstretch\",\n      \"singlespacing\",\n      \"onehalfspacing\",\n      \"doublespacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/setspace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/setspaceenhanced.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"setspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spacesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spacesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/setspaceenhanced#c,\\\\spacesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/setspaceenhanced#c,\\\\spacesetup\": [\n      \"byselectfont\",\n      \"doublespacing\",\n      \"keepfontsize\",\n      \"onehalfspacing\",\n      \"singlespacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/setspaceenhanced#c,\\\\spacesetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/settobox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"settoboxwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoboxwidth{${1:length}}{${2:box}}\"\n      }\n    },\n    {\n      \"name\": \"settoboxheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoboxheight{${1:length}}{${2:box}}\"\n      }\n    },\n    {\n      \"name\": \"settoboxdepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoboxdepth{${1:length}}{${2:box}}\"\n      }\n    },\n    {\n      \"name\": \"settoboxtotalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settoboxtotalheight{${1:length}}{${2:box}}\"\n      }\n    },\n    {\n      \"name\": \"setboxwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxwidth{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxheight{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxdepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxdepth{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxmoveleft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxmoveleft{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxmoveright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxmoveright{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxlower\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxlower{${1:box}}{${2:length-expr}}\"\n      }\n    },\n    {\n      \"name\": \"setboxright\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setboxright{${1:box}}{${2:length-expr}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sf298.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"totpages\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AbstractClassification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AbstractClassification{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"AbstractLimitation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AbstractLimitation{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"Acronyms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Acronyms{${1:acro1,acro2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Author\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Author{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"ContractNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ContractNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"DatesCovered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DatesCovered{${1:dates%text}}\"\n      }\n    },\n    {\n      \"name\": \"DistributionStatement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DistributionStatement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DownShift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DownShift{${1:pts}}\"\n      }\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"GeneralInstructions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GeneralInstructions{${1:fontsize csname}}\"\n      }\n    },\n    {\n      \"name\": \"GrantNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GrantNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"LeftShift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LeftShift{${1:pts}}\"\n      }\n    },\n    {\n      \"name\": \"MakeGenInsPage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeGenInsPage{${1:fontsize csname}}\"\n      }\n    },\n    {\n      \"name\": \"MakeRptDocPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberPages*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberPages*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NumberPages\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberPages{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PageClassification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PageClassification{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"PerformingOrg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PerformingOrg{${1:organization%text}}\"\n      }\n    },\n    {\n      \"name\": \"POReportNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"POReportNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ProgramElementNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgramElementNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ProjectNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProjectNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ReportClassification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReportClassification{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"ReportDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReportDate{${1:date%text}}\"\n      }\n    },\n    {\n      \"name\": \"ReportDescription\"\n    },\n    {\n      \"name\": \"ReportType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ReportType{${1:type%text}}\"\n      }\n    },\n    {\n      \"name\": \"ResponsiblePerson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResponsiblePerson{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"RPTelephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RPTelephone{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SMReportNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SMReportNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SponsoringAgency\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SponsoringAgency{${1:agency%text}}\"\n      }\n    },\n    {\n      \"name\": \"SubjectTerms\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubjectTerms{${1:term1;term2;...}}\"\n      }\n    },\n    {\n      \"name\": \"SupplementaryNotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SupplementaryNotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TaskNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TaskNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Title\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Title{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WorkUnitNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WorkUnitNumber{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sf298#c\": [\n      \"config\",\n      \"noconfig\",\n      \"floatlongboxes\",\n      \"nofloatlongboxes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sf298#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sfmath.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mathsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsl{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sfmath#c\": [\n      \"slantedGreek\",\n      \"cm\",\n      \"lm\",\n      \"helvet\",\n      \"cmbright\",\n      \"tx\",\n      \"px\",\n      \"T1experimental\",\n      \"AlphT1experimental\",\n      \"mathrmOrig\",\n      \"mathbfOrig\",\n      \"mathitOrig\",\n      \"mathsfOrig\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sfmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sgame.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gamestretch\"\n    },\n    {\n      \"name\": \"sgcolsep\"\n    },\n    {\n      \"name\": \"sglabelsep\"\n    },\n    {\n      \"name\": \"ifirpawcgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"irpawcgltrue\"\n    },\n    {\n      \"name\": \"irpawcglfalse\"\n    },\n    {\n      \"name\": \"ifirplwcgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"irplwcgltrue\"\n    },\n    {\n      \"name\": \"irplwcglfalse\"\n    },\n    {\n      \"name\": \"ifgamemath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gamemathtrue\"\n    },\n    {\n      \"name\": \"gamemathfalse\"\n    },\n    {\n      \"name\": \"ifgamevalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gamevaligntrue\"\n    },\n    {\n      \"name\": \"gamevalignfalse\"\n    },\n    {\n      \"name\": \"ifssual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssualtrue\"\n    },\n    {\n      \"name\": \"ssualfalse\"\n    },\n    {\n      \"name\": \"sglinecolor\"\n    },\n    {\n      \"name\": \"sgtextcolor\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}]\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}][${5:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}][${5:game label}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sgamevar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gamestretch\"\n    },\n    {\n      \"name\": \"sgcolsep\"\n    },\n    {\n      \"name\": \"sglabelsep\"\n    },\n    {\n      \"name\": \"ifirpawcgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"irpawcgltrue\"\n    },\n    {\n      \"name\": \"irpawcglfalse\"\n    },\n    {\n      \"name\": \"ifirplwcgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"irplwcgltrue\"\n    },\n    {\n      \"name\": \"irplwcglfalse\"\n    },\n    {\n      \"name\": \"ifgamemath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gamemathtrue\"\n    },\n    {\n      \"name\": \"gamemathfalse\"\n    },\n    {\n      \"name\": \"ifgamevalign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gamevaligntrue\"\n    },\n    {\n      \"name\": \"gamevalignfalse\"\n    },\n    {\n      \"name\": \"ifssual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssualtrue\"\n    },\n    {\n      \"name\": \"ssualfalse\"\n    },\n    {\n      \"name\": \"sglinecolor\"\n    },\n    {\n      \"name\": \"sgtextcolor\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}]\"\n      }\n    },\n    {\n      \"name\": \"game\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}][${5:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:game label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}]\"\n      }\n    },\n    {\n      \"name\": \"game*\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"{${1:rows}}{${2:columns}}[${3:row label}][${4:column label}][${5:game label}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shadethm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newshadetheorem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newshadetheorem{${1:envname}}{${2:label text}}\"\n      }\n    },\n    {\n      \"name\": \"newshadetheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"newshadetheorem{${1:envname}}{${2:label text}}[${3:counter}]\"\n      }\n    },\n    {\n      \"name\": \"shadeboxrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadeboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadesetinsideminipage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadedtextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadeleftshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shaderightshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadesavebox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"shadebox\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/shadethm#c\": [\n      \"bodymargin\",\n      \"shademargin\",\n      \"${1:sth file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/shadethm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/shadow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shabox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shabox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sboxrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sboxsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdim\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shadowtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shadowtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"shadowoffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowoffset{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"shadowoffsetx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowoffsetx{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"shadowoffsety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowoffsety{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"shadowcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"shadowrgb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowrgb{${1:r,g,b}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shapepar.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shapepar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shapepar{${1:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"shapepar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shapepar[${2:scale len}]{${1:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"Shapepar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shapepar{${1:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"Shapepar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shapepar[${2:scale len}]{${1:shape spec}}\"\n      }\n    },\n    {\n      \"name\": \"cutout\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"cutout{${1:side%keyvals}}(${2:hoffset},${3:voffset})\",\n        \"keys\": [\n          \"\\\\cutout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"squareshape\"\n    },\n    {\n      \"name\": \"squarepar\"\n    },\n    {\n      \"name\": \"circleshape\"\n    },\n    {\n      \"name\": \"circlepar\"\n    },\n    {\n      \"name\": \"CDlabshape\"\n    },\n    {\n      \"name\": \"CDlabel\"\n    },\n    {\n      \"name\": \"diamondshape\"\n    },\n    {\n      \"name\": \"diamondpar\"\n    },\n    {\n      \"name\": \"heartshape\"\n    },\n    {\n      \"name\": \"heartpar\"\n    },\n    {\n      \"name\": \"starshape\"\n    },\n    {\n      \"name\": \"starpar\"\n    },\n    {\n      \"name\": \"hexagonshape\"\n    },\n    {\n      \"name\": \"hexagonpar\"\n    },\n    {\n      \"name\": \"nutshape\"\n    },\n    {\n      \"name\": \"nutpar\"\n    },\n    {\n      \"name\": \"rectangleshape\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rectangleshape{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"cutoutsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cutoutsepstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RefineBaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScaleMaxTries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SmallestGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SmallGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SmallestSegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pointless\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pointless{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"AbsVal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AbsVal{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"fpdivide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fpdivide{${1:dimen1}}{${2:dimen2}}\"\n      }\n    },\n    {\n      \"name\": \"sqrtofdim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sqrtofdim{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"specA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"specB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqrtcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqrtofcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squinitial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"squinitial{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"squiterate\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\cutout\": [\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shdoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shchange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shchange{${1:key%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\shchange,\\\\shchangecolor\",\n          \"\\\\shchange,\\\\shchangesymbol\",\n          \"\\\\shchange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shchangecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shchangecolor{${1:color key%keyvals}}{${2:color}}\",\n        \"keys\": [\n          \"\\\\shchange,\\\\shchangecolor\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shchangesymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shchangesymbol{${1:symbol key%keyvals}}{${2:symbol}}\",\n        \"keys\": [\n          \"\\\\shchange,\\\\shchangesymbol\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shpreset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shpreset{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\shpreset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shpresetdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shpresetdef{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"shuser\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shuser{${1:user name}}\"\n      }\n    },\n    {\n      \"name\": \"shmachine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shmachine{${1:machine name}}\"\n      }\n    },\n    {\n      \"name\": \"shline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shline{${1:path}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"shpath\"\n    },\n    {\n      \"name\": \"shoutput\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shoutput{${1:shell cmd options}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"shlistname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shlistname{${1:sessions list name}}\"\n      }\n    },\n    {\n      \"name\": \"shfloatname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shfloatname{${1:sessions float name}}\"\n      }\n    },\n    {\n      \"name\": \"shread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shread{${1:init cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"shrun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrun{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"shautoread\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shautoread{${1:init cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"shautorun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shautorun{${1:shell command}}\"\n      }\n    },\n    {\n      \"name\": \"shautopath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shautopath{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"shautoformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shautoformat{${1:true or false}}\"\n      }\n    },\n    {\n      \"name\": \"shclearfiles\"\n    },\n    {\n      \"name\": \"listofsh\"\n    },\n    {\n      \"name\": \"theshlinenumber\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sh\"\n    },\n    {\n      \"name\": \"shbox\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\shchange,\\\\shchangecolor\": [\n      \"backgroundcolor\",\n      \"usernamecolor\",\n      \"machinenamecolor\",\n      \"indicatorcolor\",\n      \"separatorcolor\",\n      \"pathcolor\",\n      \"optioncolor\",\n      \"textcolor\"\n    ],\n    \"\\\\shchange,\\\\shchangesymbol\": [\n      \"indicatorsymbol\",\n      \"separatorsymbol\"\n    ],\n    \"\\\\shchange\": [\n      \"defaultpath=${1:path}\"\n    ],\n    \"\\\\shpreset#c\": [\n      \"default\",\n      \"mint\",\n      \"arrows\",\n      \"darkblue\",\n      \"airy\",\n      \"blackwhite\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shellesc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ShellEscapeStatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DelayedShellEscape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DelayedShellEscape{${1:script}}\"\n      }\n    },\n    {\n      \"name\": \"ShellEscape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShellEscape{${1:script}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shortlst.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"runitemsep\"\n    },\n    {\n      \"name\": \"shortitemwidth\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"shortitemize\"\n    },\n    {\n      \"name\": \"shortenumerate\"\n    },\n    {\n      \"name\": \"runenumerate\"\n    },\n    {\n      \"name\": \"runitemize\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shortmathj.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"shortifyAMSjournalname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortifyAMSjournalname{${1:journal}}\"\n      }\n    },\n    {\n      \"name\": \"shortifiedAMSjournalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"givenAMSjournalname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstletter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shorttoc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shorttableofcontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shorttableofcontents{${1:title%text}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"shorttoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shorttoc{${1:title%text}}{${2:depth}}\"\n      }\n    },\n    {\n      \"name\": \"anothertableofcontents\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"anothertableofcontents{${1:document}}{${2:title%text}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"anothertableofcontents\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"anothertableofcontents[${4:suffix}]{${1:document}}{${2:title%text}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"anothertoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"anothertoc{${1:document}}{${2:title%text}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"anothertoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"anothertoc[${4:suffix}]{${1:document}}{${2:title%text}}{${3:depth}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/shortvrb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MakeShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortVerb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortVerb*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortVerb*{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteShortVerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteShortVerb{${1:\\\\character}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/show2e.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"showcmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"showcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"showenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showenv{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/showcharinbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ShowCharInBox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowCharInBox{${1:character}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/showdim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tenthpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tenthpt{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"tenthpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tenthpc{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"hundredthpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hundredthpc{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"tenthpcpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tenthpcpt{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"pttenthpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pttenthpc{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"pthundredthpc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pthundredthpc{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"points\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"negpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"negpoints{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"picas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"picas{${1:dimen}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/showexpl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"attachfile\",\n      \"if\": \"attachfiles\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LTXinputExample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTXinputExample{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LTXinputExample\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LTXinputExample[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstdefinelanguage,\\\\lstdefinestyle,\\\\LTXinputExample,\\\\begin{LTXexample}\",\n          \"\\\\LTXinputExample,\\\\begin{LTXexample}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ResultBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResultBoxSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResultBoxRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theltxexample\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePercentIgnore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MakePercentComment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstlgrindeffile\",\n      \"if\": \"lgrind\"\n    },\n    {\n      \"name\": \"lstdefineformat\",\n      \"if\": \"formats\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lstdefineformat{${1:name}}{${2:format}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"LTXexample\"\n    },\n    {\n      \"name\": \"LTXexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\lstset,\\\\lstdefinelanguage,\\\\lstdefinestyle,\\\\LTXinputExample,\\\\begin{LTXexample}\",\n          \"\\\\LTXinputExample,\\\\begin{LTXexample}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/showexpl#c\": [\n      \"final\",\n      \"draft\",\n      \"attachfiles\",\n      \"savemem\",\n      \"noaspects\",\n      \"lgrind\",\n      \"procnames\",\n      \"hyper\",\n      \"formats\"\n    ],\n    \"\\\\lstset,\\\\lstdefinelanguage,\\\\lstdefinestyle,\\\\LTXinputExample,\\\\begin{LTXexample}\": [\n      \"attachfile\",\n      \"codefile=${1:file name}\",\n      \"explpreset={${1:listings keyvals}}\",\n      \"graphic=${1:file}\",\n      \"hsep=\",\n      \"justification=${1:command}\",\n      \"overhang=\",\n      \"pos=${1|t,b,l,r,o,i|}\",\n      \"preset=${1:code}\",\n      \"rangeaccept\",\n      \"rframe=\",\n      \"scaled\",\n      \"scaled=${1:factor}\",\n      \"varwidth\",\n      \"vsep=\",\n      \"wide\",\n      \"width=\"\n    ],\n    \"\\\\LTXinputExample,\\\\begin{LTXexample}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetxcs={${1:list of csnames}}\",\n      \"deletetxcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ],\n    \"\\\\lstset,\\\\lstinline,\\\\begin{lstlisting},\\\\lstinputlisting\": [\n      \"procnamekeys={${1:keywords}}\",\n      \"moreprocnamekeys={${1:keywords}}\",\n      \"deleteprocnamekeys={${1:keywords}}\",\n      \"procnamestyle=${1:style}\",\n      \"indexprocnames\",\n      \"hyperref={${1:identifiers}}\",\n      \"morehyperref={${1:identifiers}}\",\n      \"deletehyperref={${1:identifiers}}\",\n      \"hyperanchor=${1:two-parameter macro}\",\n      \"hyperlink=${1:two-parameter macro}\",\n      \"lgrindef=${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showexpl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/showframe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"eso-pic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ShowFrameColor\"\n    },\n    {\n      \"name\": \"ShowFrameLinethickness\"\n    },\n    {\n      \"name\": \"ShowFramePicture\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/showhyphenation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/showhyphenation#c\": [\n      \"make\",\n      \"ontop\",\n      \"lime\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showhyphenation#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/showhyphens.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/showhyphens#c\": [\n      \"blue\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showhyphens#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/showkerning.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/showkerning#c\": [\n      \"ontop\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showkerning#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/showkeys.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showkeyslabelformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showkeyslabelformat{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/showkeys#c\": [\n      \"notref\",\n      \"notcite\",\n      \"color\",\n      \"final\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showkeys#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/showlabels.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"showlabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showlabels{${1:cmd name}}\"\n      }\n    },\n    {\n      \"name\": \"showlabels\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showlabels[${2:format cmds}]{${1:cmd name}}\"\n      }\n    },\n    {\n      \"name\": \"showlabelsinline\"\n    },\n    {\n      \"name\": \"showlabelsmarginal\"\n    },\n    {\n      \"name\": \"showlabelsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlabelsetlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showlabelsetlabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"showlabeltype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlabelrefline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/showlabels#c\": [\n      \"outer\",\n      \"inner\",\n      \"left\",\n      \"right\",\n      \"marginal\",\n      \"inline\",\n      \"nolabel\",\n      \"draft\",\n      \"final\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/showlabels#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/shuffle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shuffle\",\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"cshuffle\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sidebars.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"backgroundcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backgroundcolor{${1:r,g,b}}\"\n      }\n    },\n    {\n      \"name\": \"sidebarcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebarcolor{${1:r,g,b}}\"\n      }\n    },\n    {\n      \"name\": \"highlightcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlightcolor{${1:r,g,b}}\"\n      }\n    },\n    {\n      \"name\": \"titlecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlecolor{${1:r,g,b}}\"\n      }\n    },\n    {\n      \"name\": \"sidebartitlecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidebartitlecolor{${1:r,g,b}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sidebars#c\": [\n      \"compress\"\n    ],\n    \"\\\\begin{slide}#c,\\\\begin{multislide}#c,\\\\slidestyle#c\": [\n      \"plain\",\n      \"outline\",\n      \"normal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sidebars#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sidecap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"raggedright\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"raggedleft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"ragged\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sidecaptionsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecaptionrelwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidecaptionvpos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sidecaptionvpos{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"SCtable\"\n    },\n    {\n      \"name\": \"SCtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:rel-width}]\"\n      }\n    },\n    {\n      \"name\": \"SCtable\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:rel-width}][${2:float}]\"\n      }\n    },\n    {\n      \"name\": \"SCfigure\"\n    },\n    {\n      \"name\": \"SCfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:rel-width}]\"\n      }\n    },\n    {\n      \"name\": \"SCfigure\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:rel-width}][${2:float}]\"\n      }\n    },\n    {\n      \"name\": \"SCtable*\"\n    },\n    {\n      \"name\": \"SCtable*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:rel-width}]\"\n      }\n    },\n    {\n      \"name\": \"SCtable*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:rel-width}][${2:float}]\"\n      }\n    },\n    {\n      \"name\": \"SCfigure*\"\n    },\n    {\n      \"name\": \"SCfigure*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:rel-width}]\"\n      }\n    },\n    {\n      \"name\": \"SCfigure*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:rel-width}][${2:float}]\"\n      }\n    },\n    {\n      \"name\": \"wide\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sidecap#c\": [\n      \"outercaption\",\n      \"innercaption\",\n      \"leftcaption\",\n      \"rightcaption\",\n      \"wide\",\n      \"raggedright\",\n      \"raggedleft\",\n      \"ragged\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sidecap#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sidenotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"changepage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenote[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenotemark[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenotemark[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenotetext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenotetext[${2:number}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecaption[${2:entry}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecaption[${2:entry}][${3:offset%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thesidenote\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:offset%l}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sidenotes#c\": [\n      \"oneside\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sidenotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sidenotesplus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    },\n    {\n      \"name\": \"mparhack\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"Ragged\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetext{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetext*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetextbefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetextbefore{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetextbefore*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetextbefore*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sidenotemark(${1:%<mark%>})\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidenotemark*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"sidenotemark*(${1:%<mark%>})\"\n      }\n    },\n    {\n      \"name\": \"sidealert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidealert{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidealert*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidealert*{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"sidepar\"\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption<offset>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecaption<offset>[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecaption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecaption*[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecaption*<offset>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecaption*<offset>[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"raggedinner\"\n    },\n    {\n      \"name\": \"raggedouter\"\n    },\n    {\n      \"name\": \"margincaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margincaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margincaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"margincaption[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margincaption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"margincaption*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"margincaption*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"margincaption*[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecite{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecite[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecite[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecite*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecite*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecite*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecite*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecitebefore{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecitebefore[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecitebefore[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecitebefore*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecitebefore*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitebefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecitebefore*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideciteafter{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideciteafter[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideciteafter[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sideciteafter*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sideciteafter*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sideciteafter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sideciteafter*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitemark\"\n    },\n    {\n      \"name\": \"sidecitemark*\"\n    },\n    {\n      \"name\": \"sidecitet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecitet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecitet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecitet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidecitet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitet*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidecitet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"sidecitet*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidecitet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"snptest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfNoValueOrEmptyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueOrEmptyTF{${1:arg}}{${2:-NoValue-Code}}{${3:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"thesidenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesidealert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfsTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfsTF{${1:arg}}{${2:-NoValue-Code}}{${3:ValueCode}}\"\n      }\n    },\n    {\n      \"name\": \"istwosided\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"istwosided{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"marginparsepodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginparsepeven\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"marginfigure\"\n    },\n    {\n      \"name\": \"marginfigure\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"|${1:float offset}|\"\n      }\n    },\n    {\n      \"name\": \"margintable\"\n    },\n    {\n      \"name\": \"margintable\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"|${1:float offset}|\"\n      }\n    },\n    {\n      \"name\": \"text*\"\n    },\n    {\n      \"name\": \"text*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width factor}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sidenotesplus#c\": [\n      \"mark=${1|alph,Alph,arabic,roman,Roman,fnsymbol|}\",\n      \"font=${1|rm,sf|}\",\n      \"size=${1|footnote,normal,small,script|}\",\n      \"shape=${1|up,it,sl|}\",\n      \"ragged\",\n      \"Ragged\",\n      \"classic\",\n      \"sepdiff=\",\n      \"alerton\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sidenotesplus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/signchart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"signchart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"signchart{${1:values}}{${2:signs}}\"\n      }\n    },\n    {\n      \"name\": \"signchart\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"signchart[${3:options%keyvals}]{${1:values}}{${2:signs}}\",\n        \"keys\": [\n          \"\\\\signchart\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"signHeightKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valNorthSouthKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valSepKey\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signChartWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"signHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valNorthSouth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valSep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/signchart#c\": [\n      \"signunder\",\n      \"valunder\"\n    ],\n    \"\\\\signchart\": [\n      \"height=\",\n      \"valanchor=${1:anchor name}\",\n      \"valsep=\",\n      \"width=\",\n      \"arrows=${1:arrow style}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/signchart#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/silence.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"WarningsOff\"\n    },\n    {\n      \"name\": \"WarningsOff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WarningsOff[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"WarningsOff*\"\n    },\n    {\n      \"name\": \"ErrorsOff\"\n    },\n    {\n      \"name\": \"ErrorsOff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ErrorsOff[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"ErrorsOff*\"\n    },\n    {\n      \"name\": \"WarningsOn\"\n    },\n    {\n      \"name\": \"WarningsOn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WarningsOn[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"ErrorsOn\"\n    },\n    {\n      \"name\": \"ErrorsOn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ErrorsOn[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"WarningFilter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WarningFilter{${1:package}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"WarningFilter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"WarningFilter[${3:family}]{${1:package}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"ErrorFilter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ErrorFilter{${1:package}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"ErrorFilter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ErrorFilter[${3:family}]{${1:package}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"ActivateWarningFilters\"\n    },\n    {\n      \"name\": \"ActivateWarningFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ActivateWarningFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"ActivateErrorFilters\"\n    },\n    {\n      \"name\": \"ActivateErrorFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ActivateErrorFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"DeactivateWarningFilters\"\n    },\n    {\n      \"name\": \"DeactivateWarningFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeactivateWarningFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"DeactivateErrorFilters\"\n    },\n    {\n      \"name\": \"DeactivateErrorFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeactivateErrorFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"ActivateFilters\"\n    },\n    {\n      \"name\": \"ActivateFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ActivateFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"DeactivateFilters\"\n    },\n    {\n      \"name\": \"DeactivateFilters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DeactivateFilters[${1:list}]\"\n      }\n    },\n    {\n      \"name\": \"WarningFilter*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WarningFilter*{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"WarningFilter*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"WarningFilter*[${3:family}]{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"ErrorFilter*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ErrorFilter*{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"ErrorFilter*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ErrorFilter*[${3:family}]{${1:name}}{${2:message}}\"\n      }\n    },\n    {\n      \"name\": \"SafeMode\"\n    },\n    {\n      \"name\": \"BoldMode\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sillypage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"silly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"silly{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"sillystep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sillystep{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"sillynumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sillynumeral{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pagenumbering#c\": [\n      \"silly\",\n      \"sillynumeral\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simplebnf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tabularray\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetBNFLayout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBNFLayout{${1:tblr options}}\"\n      }\n    },\n    {\n      \"name\": \"SetBNFConfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetBNFConfig{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{bnf},\\\\SetBNFConfig\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bnf\"\n    },\n    {\n      \"name\": \"bnf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:tblr options}]\"\n      }\n    },\n    {\n      \"name\": \"bnf\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:options%keyvals})\"\n      }\n    },\n    {\n      \"name\": \"bnf\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"(${2:options%keyvals})[${1:tblr options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{bnf},\\\\SetBNFConfig\": [\n      \"prod-delim={${1:characters}}\",\n      \"new-line-delim={${1:characters}}\",\n      \"single-line-delim={${1:characters}}\",\n      \"comment={${1:characters}}\",\n      \"relation={${1:characters}}\",\n      \"relation-sym-map={${1:specification}}\",\n      \"or-sym=${1:symbol}\",\n      \"prod-sep=\",\n      \"row-sep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simpleicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"simpleicon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"simpleicon{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simpleicon\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\simpleicon\": [\n      \"42\",\n      \"1001tracklists\",\n      \"1dot1dot1dot1\",\n      \"1panel\",\n      \"1password\",\n      \"2fas\",\n      \"2k\",\n      \"30secondsofcode\",\n      \"365datascience\",\n      \"3m\",\n      \"4chan\",\n      \"4d\",\n      \"500px\",\n      \"7zip\",\n      \"99designs\",\n      \"9gag\",\n      \"abbott\",\n      \"abbrobotstudio\",\n      \"abbvie\",\n      \"aboutdotme\",\n      \"abstract\",\n      \"abusedotch\",\n      \"academia\",\n      \"accenture\",\n      \"accusoft\",\n      \"acer\",\n      \"acm\",\n      \"actigraph\",\n      \"activision\",\n      \"activitypub\",\n      \"actix\",\n      \"actualbudget\",\n      \"acura\",\n      \"adafruit\",\n      \"adblock\",\n      \"adblockplus\",\n      \"adguard\",\n      \"adidas\",\n      \"adminer\",\n      \"adobe\",\n      \"adobeacrobatreader\",\n      \"adobeaftereffects\",\n      \"adobeaudition\",\n      \"adobecreativecloud\",\n      \"adobedreamweaver\",\n      \"adobefonts\",\n      \"adobeillustrator\",\n      \"adobeindesign\",\n      \"adobelightroom\",\n      \"adobelightroomclassic\",\n      \"adobephotoshop\",\n      \"adobepremierepro\",\n      \"adobexd\",\n      \"adonisjs\",\n      \"adp\",\n      \"adroll\",\n      \"adventofcode\",\n      \"adyen\",\n      \"aegisauthenticator\",\n      \"aerlingus\",\n      \"aeroflot\",\n      \"aeromexico\",\n      \"aerospike\",\n      \"aew\",\n      \"affine\",\n      \"affinity\",\n      \"affinitydesigner\",\n      \"affinityphoto\",\n      \"affinitypublisher\",\n      \"aframe\",\n      \"afterpay\",\n      \"agora\",\n      \"aib\",\n      \"aidungeon\",\n      \"aiohttp\",\n      \"aiqfome\",\n      \"airasia\",\n      \"airbnb\",\n      \"airbrake\",\n      \"airbus\",\n      \"airbyte\",\n      \"aircall\",\n      \"aircanada\",\n      \"airchina\",\n      \"airfrance\",\n      \"airindia\",\n      \"airplayaudio\",\n      \"airplayvideo\",\n      \"airtable\",\n      \"airtel\",\n      \"airtransat\",\n      \"ajv\",\n      \"akamai\",\n      \"akaunting\",\n      \"akiflow\",\n      \"alacritty\",\n      \"alamy\",\n      \"albertheijn\",\n      \"alby\",\n      \"alchemy\",\n      \"aldinord\",\n      \"aldisud\",\n      \"alfaromeo\",\n      \"alfred\",\n      \"algolia\",\n      \"algorand\",\n      \"alibabacloud\",\n      \"alibabadotcom\",\n      \"alienware\",\n      \"aliexpress\",\n      \"alipay\",\n      \"allegro\",\n      \"alliedmodders\",\n      \"allocine\",\n      \"alltrails\",\n      \"almalinux\",\n      \"alpinedotjs\",\n      \"alpinelinux\",\n      \"alteryx\",\n      \"altiumdesigner\",\n      \"alwaysdata\",\n      \"alx\",\n      \"amazon\",\n      \"amazonalexa\",\n      \"amazonapigateway\",\n      \"amazoncloudwatch\",\n      \"amazoncognito\",\n      \"amazondocumentdb\",\n      \"amazondynamodb\",\n      \"amazonec2\",\n      \"amazonecs\",\n      \"amazoneks\",\n      \"amazonelasticache\",\n      \"amazonfiretv\",\n      \"amazongames\",\n      \"amazoniam\",\n      \"amazonlumberyard\",\n      \"amazonluna\",\n      \"amazonmusic\",\n      \"amazonpay\",\n      \"amazonprime\",\n      \"amazonrds\",\n      \"amazonredshift\",\n      \"amazonroute53\",\n      \"amazons3\",\n      \"amazonsimpleemailservice\",\n      \"amazonsqs\",\n      \"amazonwebservices\",\n      \"amd\",\n      \"ameba\",\n      \"americanairlines\",\n      \"americanexpress\",\n      \"amg\",\n      \"amp\",\n      \"amul\",\n      \"ana\",\n      \"anaconda\",\n      \"analogue\",\n      \"andela\",\n      \"android\",\n      \"androidauto\",\n      \"androidstudio\",\n      \"angular\",\n      \"anilist\",\n      \"animalplanet\",\n      \"ankermake\",\n      \"anki\",\n      \"ansible\",\n      \"answer\",\n      \"ansys\",\n      \"anta\",\n      \"antdesign\",\n      \"antena3\",\n      \"anthropic\",\n      \"anycubic\",\n      \"anydesk\",\n      \"anytype\",\n      \"aol\",\n      \"apache\",\n      \"apacheairflow\",\n      \"apacheant\",\n      \"apachecassandra\",\n      \"apachecloudstack\",\n      \"apachecordova\",\n      \"apachecouchdb\",\n      \"apachedolphinscheduler\",\n      \"apachedruid\",\n      \"apacheecharts\",\n      \"apacheflink\",\n      \"apachefreemarker\",\n      \"apachegroovy\",\n      \"apacheguacamole\",\n      \"apachehadoop\",\n      \"apachehbase\",\n      \"apachehive\",\n      \"apachejmeter\",\n      \"apachekafka\",\n      \"apachekylin\",\n      \"apachemaven\",\n      \"apachenetbeanside\",\n      \"apachenifi\",\n      \"apacheopenoffice\",\n      \"apacheparquet\",\n      \"apachepulsar\",\n      \"apacherocketmq\",\n      \"apachesolr\",\n      \"apachespark\",\n      \"apachestorm\",\n      \"apachesuperset\",\n      \"apachetomcat\",\n      \"aparat\",\n      \"apifox\",\n      \"apmterminals\",\n      \"apollographql\",\n      \"apostrophe\",\n      \"appian\",\n      \"appium\",\n      \"apple\",\n      \"applearcade\",\n      \"applemusic\",\n      \"applenews\",\n      \"applepay\",\n      \"applepodcasts\",\n      \"appletv\",\n      \"appsignal\",\n      \"appsmith\",\n      \"appstore\",\n      \"appveyor\",\n      \"appwrite\",\n      \"aqua\",\n      \"aral\",\n      \"arangodb\",\n      \"arc\",\n      \"arcgis\",\n      \"archicad\",\n      \"archiveofourown\",\n      \"archlinux\",\n      \"ardour\",\n      \"arduino\",\n      \"argo\",\n      \"argos\",\n      \"ariakit\",\n      \"arkecosystem\",\n      \"arlo\",\n      \"arm\",\n      \"armkeil\",\n      \"arstechnica\",\n      \"artifacthub\",\n      \"artixlinux\",\n      \"artstation\",\n      \"arxiv\",\n      \"asahilinux\",\n      \"asana\",\n      \"asciidoctor\",\n      \"asciinema\",\n      \"asda\",\n      \"aseprite\",\n      \"askfm\",\n      \"assemblyscript\",\n      \"asterisk\",\n      \"astonmartin\",\n      \"astra\",\n      \"astral\",\n      \"astro\",\n      \"asus\",\n      \"atandt\",\n      \"atari\",\n      \"atlassian\",\n      \"auchan\",\n      \"audacity\",\n      \"audi\",\n      \"audible\",\n      \"audiobookshelf\",\n      \"audioboom\",\n      \"audiomack\",\n      \"audiotechnica\",\n      \"aurelia\",\n      \"auth0\",\n      \"authelia\",\n      \"authentik\",\n      \"authy\",\n      \"autocad\",\n      \"autocannon\",\n      \"autodesk\",\n      \"autodeskmaya\",\n      \"autodeskrevit\",\n      \"autohotkey\",\n      \"autoit\",\n      \"automattic\",\n      \"autoprefixer\",\n      \"autozone\",\n      \"avajs\",\n      \"avast\",\n      \"avianca\",\n      \"avira\",\n      \"awesomelists\",\n      \"awesomewm\",\n      \"awsamplify\",\n      \"awselasticloadbalancing\",\n      \"awsfargate\",\n      \"awslambda\",\n      \"awsorganizations\",\n      \"awssecretsmanager\",\n      \"awwwards\",\n      \"axios\",\n      \"babel\",\n      \"babelio\",\n      \"babylondotjs\",\n      \"backblaze\",\n      \"backbonedotjs\",\n      \"backendless\",\n      \"backstage\",\n      \"badoo\",\n      \"baidu\",\n      \"bakalari\",\n      \"bamboo\",\n      \"bambulab\",\n      \"bandcamp\",\n      \"bandlab\",\n      \"bandrautomation\",\n      \"bandsintown\",\n      \"bankofamerica\",\n      \"barclays\",\n      \"baremetrics\",\n      \"barmenia\",\n      \"basecamp\",\n      \"baserow\",\n      \"basicattentiontoken\",\n      \"bastyon\",\n      \"bat\",\n      \"bata\",\n      \"battledotnet\",\n      \"bazel\",\n      \"beatport\",\n      \"beats\",\n      \"beatsbydre\",\n      \"beatstars\",\n      \"beekeeperstudio\",\n      \"behance\",\n      \"beijingsubway\",\n      \"bem\",\n      \"bentley\",\n      \"bento\",\n      \"bentobox\",\n      \"bentoml\",\n      \"bereal\",\n      \"betfair\",\n      \"betterstack\",\n      \"bevy\",\n      \"bigbasket\",\n      \"bigbluebutton\",\n      \"bigcartel\",\n      \"bigcommerce\",\n      \"bilibili\",\n      \"billboard\",\n      \"bim\",\n      \"binance\",\n      \"biolink\",\n      \"biome\",\n      \"bisecthosting\",\n      \"bit\",\n      \"bitbucket\",\n      \"bitcoin\",\n      \"bitcoincash\",\n      \"bitcoinsv\",\n      \"bitcomet\",\n      \"bitdefender\",\n      \"bitly\",\n      \"bitrise\",\n      \"bittorrent\",\n      \"bitwarden\",\n      \"bitwig\",\n      \"blackberry\",\n      \"blackmagicdesign\",\n      \"blazemeter\",\n      \"blazor\",\n      \"blender\",\n      \"blockbench\",\n      \"blockchaindotcom\",\n      \"blogger\",\n      \"bloglovin\",\n      \"blueprint\",\n      \"bluesky\",\n      \"bluesound\",\n      \"bluetooth\",\n      \"bmcsoftware\",\n      \"bmw\",\n      \"bnbchain\",\n      \"boardgamegeek\",\n      \"boat\",\n      \"boehringeringelheim\",\n      \"boeing\",\n      \"bombardier\",\n      \"bookalope\",\n      \"bookbub\",\n      \"bookmeter\",\n      \"bookmyshow\",\n      \"bookstack\",\n      \"boost\",\n      \"boosty\",\n      \"boots\",\n      \"bootstrap\",\n      \"borgbackup\",\n      \"bosch\",\n      \"bose\",\n      \"botblecms\",\n      \"boulanger\",\n      \"bower\",\n      \"box\",\n      \"boxysvg\",\n      \"braintree\",\n      \"brandfolder\",\n      \"brave\",\n      \"breaker\",\n      \"brenntag\",\n      \"brevo\",\n      \"brex\",\n      \"bricks\",\n      \"britishairways\",\n      \"broadcom\",\n      \"bruno\",\n      \"bsd\",\n      \"bspwm\",\n      \"bt\",\n      \"buddy\",\n      \"budibase\",\n      \"buefy\",\n      \"buffer\",\n      \"bugatti\",\n      \"bugcrowd\",\n      \"bugsnag\",\n      \"buhl\",\n      \"buildkite\",\n      \"builtbybit\",\n      \"bukalapak\",\n      \"bulma\",\n      \"bun\",\n      \"bungie\",\n      \"bunq\",\n      \"burgerking\",\n      \"burpsuite\",\n      \"burton\",\n      \"buymeacoffee\",\n      \"buysellads\",\n      \"buzzfeed\",\n      \"bvg\",\n      \"byjus\",\n      \"bytedance\",\n      \"c\",\n      \"cachet\",\n      \"caddy\",\n      \"cadillac\",\n      \"cafepress\",\n      \"caffeine\",\n      \"cairographics\",\n      \"cairometro\",\n      \"cakephp\",\n      \"caldotcom\",\n      \"calendly\",\n      \"calibreweb\",\n      \"campaignmonitor\",\n      \"camunda\",\n      \"canonical\",\n      \"canva\",\n      \"canvas\",\n      \"capacitor\",\n      \"caprover\",\n      \"cardano\",\n      \"carlsberggroup\",\n      \"carrd\",\n      \"carrefour\",\n      \"carthrottle\",\n      \"carto\",\n      \"cashapp\",\n      \"castbox\",\n      \"castorama\",\n      \"castro\",\n      \"caterpillar\",\n      \"cbc\",\n      \"cbs\",\n      \"ccleaner\",\n      \"cdprojekt\",\n      \"celery\",\n      \"celestron\",\n      \"centos\",\n      \"ceph\",\n      \"cesium\",\n      \"chai\",\n      \"chainguard\",\n      \"chainlink\",\n      \"chakraui\",\n      \"channel4\",\n      \"charles\",\n      \"chartdotjs\",\n      \"chartmogul\",\n      \"chase\",\n      \"chatbot\",\n      \"chatwoot\",\n      \"checkio\",\n      \"checkmarx\",\n      \"checkmk\",\n      \"chedraui\",\n      \"cheerio\",\n      \"chef\",\n      \"chemex\",\n      \"chessdotcom\",\n      \"chevrolet\",\n      \"chianetwork\",\n      \"chinaeasternairlines\",\n      \"chinasouthernairlines\",\n      \"chocolatey\",\n      \"chromatic\",\n      \"chromecast\",\n      \"chromewebstore\",\n      \"chrysler\",\n      \"chupachups\",\n      \"cilium\",\n      \"cinema4d\",\n      \"circle\",\n      \"circleci\",\n      \"circuitverse\",\n      \"cirrusci\",\n      \"cisco\",\n      \"citrix\",\n      \"citroen\",\n      \"civicrm\",\n      \"civo\",\n      \"ckeditor4\",\n      \"clarifai\",\n      \"claris\",\n      \"clarivate\",\n      \"clerk\",\n      \"clevercloud\",\n      \"clickhouse\",\n      \"clickup\",\n      \"clion\",\n      \"cliqz\",\n      \"clockify\",\n      \"clojure\",\n      \"cloud66\",\n      \"cloudbees\",\n      \"cloudcannon\",\n      \"cloudera\",\n      \"cloudflare\",\n      \"cloudflarepages\",\n      \"cloudflareworkers\",\n      \"cloudfoundry\",\n      \"cloudinary\",\n      \"cloudron\",\n      \"cloudsmith\",\n      \"cloudways\",\n      \"clubforce\",\n      \"clubhouse\",\n      \"clyp\",\n      \"cmake\",\n      \"cncf\",\n      \"cnet\",\n      \"cnn\",\n      \"cocacola\",\n      \"cockpit\",\n      \"cockroachlabs\",\n      \"cocoapods\",\n      \"cocos\",\n      \"coda\",\n      \"codacy\",\n      \"codeberg\",\n      \"codeblocks\",\n      \"codecademy\",\n      \"codeceptjs\",\n      \"codechef\",\n      \"codeclimate\",\n      \"codecov\",\n      \"codecrafters\",\n      \"codefactor\",\n      \"codeforces\",\n      \"codefresh\",\n      \"codeigniter\",\n      \"codeium\",\n      \"codemagic\",\n      \"codementor\",\n      \"codemirror\",\n      \"codenewbie\",\n      \"codepen\",\n      \"codeproject\",\n      \"coder\",\n      \"codersrank\",\n      \"coderwall\",\n      \"codesandbox\",\n      \"codeship\",\n      \"codesignal\",\n      \"codestream\",\n      \"codewars\",\n      \"codingame\",\n      \"codingninjas\",\n      \"codio\",\n      \"coffeescript\",\n      \"coggle\",\n      \"cognizant\",\n      \"coil\",\n      \"coinbase\",\n      \"coinmarketcap\",\n      \"comicfury\",\n      \"comma\",\n      \"commerzbank\",\n      \"commitlint\",\n      \"commodore\",\n      \"commonworkflowlanguage\",\n      \"compilerexplorer\",\n      \"composer\",\n      \"comptia\",\n      \"comsol\",\n      \"conan\",\n      \"concourse\",\n      \"condaforge\",\n      \"conekta\",\n      \"confluence\",\n      \"construct3\",\n      \"consul\",\n      \"contabo\",\n      \"contactlesspayment\",\n      \"containerd\",\n      \"contao\",\n      \"contentful\",\n      \"contentstack\",\n      \"contributorcovenant\",\n      \"conventionalcommits\",\n      \"convertio\",\n      \"cookiecutter\",\n      \"coolermaster\",\n      \"coop\",\n      \"copaairlines\",\n      \"coppel\",\n      \"cora\",\n      \"coreldraw\",\n      \"coronaengine\",\n      \"coronarenderer\",\n      \"corsair\",\n      \"couchbase\",\n      \"counterstrike\",\n      \"countingworkspro\",\n      \"coursera\",\n      \"coveralls\",\n      \"coze\",\n      \"cpanel\",\n      \"cplusplus\",\n      \"cplusplusbuilder\",\n      \"craftcms\",\n      \"craftsman\",\n      \"cratedb\",\n      \"crayon\",\n      \"creality\",\n      \"createreactapp\",\n      \"creativecommons\",\n      \"creativetechnology\",\n      \"credly\",\n      \"crehana\",\n      \"crewunited\",\n      \"criticalrole\",\n      \"crowdin\",\n      \"crowdsource\",\n      \"crunchbase\",\n      \"crunchyroll\",\n      \"cryengine\",\n      \"cryptpad\",\n      \"crystal\",\n      \"csdn\",\n      \"css3\",\n      \"cssdesignawards\",\n      \"cssmodules\",\n      \"csswizardry\",\n      \"cts\",\n      \"cucumber\",\n      \"cultura\",\n      \"curl\",\n      \"curseforge\",\n      \"customink\",\n      \"cyberdefenders\",\n      \"cycling74\",\n      \"cypress\",\n      \"cytoscapedotjs\",\n      \"d\",\n      \"d3dotjs\",\n      \"dacia\",\n      \"daf\",\n      \"dailydotdev\",\n      \"dailymotion\",\n      \"daisyui\",\n      \"dapr\",\n      \"darkreader\",\n      \"dart\",\n      \"darty\",\n      \"daserste\",\n      \"dash\",\n      \"dashlane\",\n      \"dask\",\n      \"dassaultsystemes\",\n      \"databricks\",\n      \"datacamp\",\n      \"datadog\",\n      \"datadotai\",\n      \"datagrip\",\n      \"dataiku\",\n      \"datastax\",\n      \"datefns\",\n      \"datev\",\n      \"datocms\",\n      \"datto\",\n      \"davinciresolve\",\n      \"dazhongdianping\",\n      \"dazn\",\n      \"dbeaver\",\n      \"dblp\",\n      \"dbt\",\n      \"dcentertainment\",\n      \"debian\",\n      \"decapcms\",\n      \"decentraland\",\n      \"dedge\",\n      \"deepcool\",\n      \"deepgram\",\n      \"deepin\",\n      \"deepl\",\n      \"deepnote\",\n      \"delicious\",\n      \"deliveroo\",\n      \"dell\",\n      \"delonghi\",\n      \"delphi\",\n      \"delta\",\n      \"deluge\",\n      \"deno\",\n      \"denon\",\n      \"dependabot\",\n      \"dependencycheck\",\n      \"depositphotos\",\n      \"derspiegel\",\n      \"deutschebahn\",\n      \"deutschebank\",\n      \"deutschepost\",\n      \"deutschewelle\",\n      \"devdotto\",\n      \"devexpress\",\n      \"deviantart\",\n      \"devpost\",\n      \"devrant\",\n      \"dgraph\",\n      \"dhl\",\n      \"diagramsdotnet\",\n      \"dialogflow\",\n      \"diaspora\",\n      \"dictionarydotcom\",\n      \"digg\",\n      \"digikeyelectronics\",\n      \"digitalocean\",\n      \"dinersclub\",\n      \"dior\",\n      \"directus\",\n      \"discogs\",\n      \"discord\",\n      \"discourse\",\n      \"discover\",\n      \"disqus\",\n      \"disroot\",\n      \"distrokid\",\n      \"django\",\n      \"dji\",\n      \"dlib\",\n      \"dlna\",\n      \"dm\",\n      \"docker\",\n      \"docsdotrs\",\n      \"docsify\",\n      \"doctrine\",\n      \"docusaurus\",\n      \"dogecoin\",\n      \"doi\",\n      \"dolby\",\n      \"doordash\",\n      \"dota2\",\n      \"dotenv\",\n      \"dotnet\",\n      \"douban\",\n      \"doubanread\",\n      \"dovecot\",\n      \"dovetail\",\n      \"downdetector\",\n      \"doxygen\",\n      \"dpd\",\n      \"dragonframe\",\n      \"draugiemdotlv\",\n      \"dreamstime\",\n      \"dribbble\",\n      \"drizzle\",\n      \"drone\",\n      \"drooble\",\n      \"dropbox\",\n      \"drupal\",\n      \"dsautomobiles\",\n      \"dts\",\n      \"dtube\",\n      \"ducati\",\n      \"duckdb\",\n      \"duckduckgo\",\n      \"dungeonsanddragons\",\n      \"dunked\",\n      \"dunzo\",\n      \"duolingo\",\n      \"duplicati\",\n      \"dvc\",\n      \"dwavesystems\",\n      \"dwm\",\n      \"dynatrace\",\n      \"e\",\n      \"e3\",\n      \"ea\",\n      \"eagle\",\n      \"easyeda\",\n      \"easyjet\",\n      \"ebay\",\n      \"ebox\",\n      \"eclipseadoptium\",\n      \"eclipseche\",\n      \"eclipseide\",\n      \"eclipsejetty\",\n      \"eclipsemosquitto\",\n      \"eclipsevertdotx\",\n      \"ecovacs\",\n      \"edeka\",\n      \"edgeimpulse\",\n      \"editorconfig\",\n      \"edotleclerc\",\n      \"educative\",\n      \"edx\",\n      \"egghead\",\n      \"egnyte\",\n      \"eight\",\n      \"eightsleep\",\n      \"ejs\",\n      \"elastic\",\n      \"elasticcloud\",\n      \"elasticsearch\",\n      \"elasticstack\",\n      \"elavon\",\n      \"electron\",\n      \"electronbuilder\",\n      \"electronfiddle\",\n      \"elegoo\",\n      \"element\",\n      \"elementary\",\n      \"elementor\",\n      \"eleventy\",\n      \"elgato\",\n      \"elixir\",\n      \"eljueves\",\n      \"ello\",\n      \"elm\",\n      \"elsevier\",\n      \"embarcadero\",\n      \"embark\",\n      \"emberdotjs\",\n      \"emby\",\n      \"emirates\",\n      \"emlakjet\",\n      \"empirekred\",\n      \"endeavouros\",\n      \"engadget\",\n      \"enpass\",\n      \"enterprisedb\",\n      \"envato\",\n      \"envoyproxy\",\n      \"epel\",\n      \"epicgames\",\n      \"epson\",\n      \"equinixmetal\",\n      \"eraser\",\n      \"ericsson\",\n      \"erlang\",\n      \"erpnext\",\n      \"esbuild\",\n      \"esea\",\n      \"eslgaming\",\n      \"eslint\",\n      \"esotericsoftware\",\n      \"esphome\",\n      \"espressif\",\n      \"esri\",\n      \"etcd\",\n      \"ethereum\",\n      \"ethers\",\n      \"ethiopianairlines\",\n      \"etihadairways\",\n      \"etsy\",\n      \"eventbrite\",\n      \"eventstore\",\n      \"evernote\",\n      \"excalidraw\",\n      \"exercism\",\n      \"exordo\",\n      \"exoscale\",\n      \"expedia\",\n      \"expensify\",\n      \"expertsexchange\",\n      \"expo\",\n      \"express\",\n      \"expressvpn\",\n      \"eyeem\",\n      \"f1\",\n      \"f5\",\n      \"facebook\",\n      \"facebookgaming\",\n      \"facebooklive\",\n      \"faceit\",\n      \"facepunch\",\n      \"fairphone\",\n      \"falco\",\n      \"falcon\",\n      \"fampay\",\n      \"fandango\",\n      \"fandom\",\n      \"fanfou\",\n      \"fantom\",\n      \"farcaster\",\n      \"fareharbor\",\n      \"farfetch\",\n      \"fastapi\",\n      \"fastify\",\n      \"fastlane\",\n      \"fastly\",\n      \"fathom\",\n      \"fauna\",\n      \"favro\",\n      \"fdroid\",\n      \"feathub\",\n      \"fedex\",\n      \"fedora\",\n      \"feedly\",\n      \"ferrari\",\n      \"ferrarinv\",\n      \"ferretdb\",\n      \"ffmpeg\",\n      \"fi\",\n      \"fiat\",\n      \"fidoalliance\",\n      \"fifa\",\n      \"fig\",\n      \"figma\",\n      \"figshare\",\n      \"fila\",\n      \"filedotio\",\n      \"files\",\n      \"filezilla\",\n      \"fineco\",\n      \"fing\",\n      \"firebase\",\n      \"firefish\",\n      \"fireflyiii\",\n      \"firefox\",\n      \"firefoxbrowser\",\n      \"fireship\",\n      \"firewalla\",\n      \"first\",\n      \"fishshell\",\n      \"fitbit\",\n      \"fivem\",\n      \"fiverr\",\n      \"fizz\",\n      \"flashforge\",\n      \"flask\",\n      \"flat\",\n      \"flathub\",\n      \"flatpak\",\n      \"flickr\",\n      \"flightaware\",\n      \"flipboard\",\n      \"flipkart\",\n      \"floatplane\",\n      \"flood\",\n      \"fluentbit\",\n      \"fluentd\",\n      \"fluke\",\n      \"flutter\",\n      \"flux\",\n      \"fluxus\",\n      \"flydotio\",\n      \"flyway\",\n      \"fmod\",\n      \"fnac\",\n      \"folium\",\n      \"fonoma\",\n      \"fontawesome\",\n      \"fontbase\",\n      \"fontforge\",\n      \"foobar2000\",\n      \"foodpanda\",\n      \"ford\",\n      \"forgejo\",\n      \"formik\",\n      \"formspree\",\n      \"formstack\",\n      \"fortinet\",\n      \"fortran\",\n      \"fossa\",\n      \"fossilscm\",\n      \"foundryvirtualtabletop\",\n      \"foursquare\",\n      \"foursquarecityguide\",\n      \"fox\",\n      \"foxtel\",\n      \"fozzy\",\n      \"framer\",\n      \"framework\",\n      \"framework7\",\n      \"franprix\",\n      \"frappe\",\n      \"fraunhofergesellschaft\",\n      \"freebsd\",\n      \"freecad\",\n      \"freecodecamp\",\n      \"freedesktopdotorg\",\n      \"freelancer\",\n      \"freelancermap\",\n      \"freenas\",\n      \"freepik\",\n      \"fresh\",\n      \"frontendmentor\",\n      \"frontify\",\n      \"fsecure\",\n      \"fsharp\",\n      \"fubo\",\n      \"fueler\",\n      \"fugacloud\",\n      \"fujifilm\",\n      \"fujitsu\",\n      \"funimation\",\n      \"furaffinity\",\n      \"furrynetwork\",\n      \"fusionauth\",\n      \"futurelearn\",\n      \"g2\",\n      \"g2a\",\n      \"g2g\",\n      \"galaxus\",\n      \"gameandwatch\",\n      \"gamebanana\",\n      \"gamedeveloper\",\n      \"gamejolt\",\n      \"gameloft\",\n      \"gamemaker\",\n      \"garmin\",\n      \"gatling\",\n      \"gatsby\",\n      \"gcore\",\n      \"gdal\",\n      \"geant\",\n      \"geeksforgeeks\",\n      \"generalelectric\",\n      \"generalmotors\",\n      \"genius\",\n      \"gentoo\",\n      \"geocaching\",\n      \"geode\",\n      \"geopandas\",\n      \"gerrit\",\n      \"getx\",\n      \"ghost\",\n      \"ghostery\",\n      \"gimp\",\n      \"gin\",\n      \"giphy\",\n      \"git\",\n      \"gitbook\",\n      \"gitconnected\",\n      \"gitea\",\n      \"gitee\",\n      \"gitextensions\",\n      \"gitforwindows\",\n      \"github\",\n      \"githubactions\",\n      \"githubcopilot\",\n      \"githubpages\",\n      \"githubsponsors\",\n      \"gitignoredotio\",\n      \"gitkraken\",\n      \"gitlab\",\n      \"gitlfs\",\n      \"gitpod\",\n      \"gitter\",\n      \"glassdoor\",\n      \"glide\",\n      \"glitch\",\n      \"globus\",\n      \"glovo\",\n      \"gltf\",\n      \"gmail\",\n      \"gnome\",\n      \"gnometerminal\",\n      \"gnu\",\n      \"gnubash\",\n      \"gnuemacs\",\n      \"gnuicecat\",\n      \"gnuprivacyguard\",\n      \"gnusocial\",\n      \"go\",\n      \"gocd\",\n      \"godaddy\",\n      \"godotengine\",\n      \"gofundme\",\n      \"gogdotcom\",\n      \"gojek\",\n      \"goland\",\n      \"goldenline\",\n      \"goldmansachs\",\n      \"goodreads\",\n      \"google\",\n      \"googleadmob\",\n      \"googleads\",\n      \"googleadsense\",\n      \"googleanalytics\",\n      \"googleappsscript\",\n      \"googleassistant\",\n      \"googleauthenticator\",\n      \"googlebigquery\",\n      \"googlebigtable\",\n      \"googlecalendar\",\n      \"googlecampaignmanager360\",\n      \"googlecardboard\",\n      \"googlechat\",\n      \"googlechrome\",\n      \"googlechronicle\",\n      \"googleclassroom\",\n      \"googlecloud\",\n      \"googlecloudcomposer\",\n      \"googlecloudspanner\",\n      \"googlecloudstorage\",\n      \"googlecolab\",\n      \"googlecontaineroptimizedos\",\n      \"googledataflow\",\n      \"googledataproc\",\n      \"googledatastudio\",\n      \"googledisplayandvideo360\",\n      \"googledocs\",\n      \"googledrive\",\n      \"googleearth\",\n      \"googleearthengine\",\n      \"googlefit\",\n      \"googlefonts\",\n      \"googleforms\",\n      \"googlegemini\",\n      \"googlehome\",\n      \"googlekeep\",\n      \"googlelens\",\n      \"googlemaps\",\n      \"googlemarketingplatform\",\n      \"googlemeet\",\n      \"googlemessages\",\n      \"googlenearby\",\n      \"googlenews\",\n      \"googlepay\",\n      \"googlephotos\",\n      \"googleplay\",\n      \"googlepubsub\",\n      \"googlescholar\",\n      \"googlesearchconsole\",\n      \"googlesheets\",\n      \"googleslides\",\n      \"googlestreetview\",\n      \"googletagmanager\",\n      \"googletasks\",\n      \"googletranslate\",\n      \"gotomeeting\",\n      \"grab\",\n      \"gradle\",\n      \"gradleplaypublisher\",\n      \"grafana\",\n      \"grammarly\",\n      \"grandfrais\",\n      \"grapheneos\",\n      \"graphite\",\n      \"graphql\",\n      \"grav\",\n      \"gravatar\",\n      \"graylog\",\n      \"greasyfork\",\n      \"greatlearning\",\n      \"greenhouse\",\n      \"greensock\",\n      \"griddotai\",\n      \"gridsome\",\n      \"groupme\",\n      \"groupon\",\n      \"grubhub\",\n      \"grunt\",\n      \"gsk\",\n      \"gsmarenadotcom\",\n      \"gstreamer\",\n      \"gtk\",\n      \"guangzhoumetro\",\n      \"guilded\",\n      \"guitarpro\",\n      \"gulp\",\n      \"gumroad\",\n      \"gumtree\",\n      \"gunicorn\",\n      \"gurobi\",\n      \"gusto\",\n      \"gutenberg\",\n      \"h3\",\n      \"habr\",\n      \"hackaday\",\n      \"hackclub\",\n      \"hackerearth\",\n      \"hackernoon\",\n      \"hackerone\",\n      \"hackerrank\",\n      \"hackster\",\n      \"hackthebox\",\n      \"hal\",\n      \"handlebarsdotjs\",\n      \"handm\",\n      \"handshake\",\n      \"handshakeprotocol\",\n      \"happycow\",\n      \"harbor\",\n      \"harmonyos\",\n      \"hashicorp\",\n      \"hashnode\",\n      \"haskell\",\n      \"hasura\",\n      \"hatenabookmark\",\n      \"haveibeenpwned\",\n      \"haxe\",\n      \"hbo\",\n      \"hcl\",\n      \"hdfcbank\",\n      \"headlessui\",\n      \"headphonezone\",\n      \"headspace\",\n      \"hearth\",\n      \"hearthisdotat\",\n      \"hedera\",\n      \"helium\",\n      \"helix\",\n      \"hellofresh\",\n      \"hellyhansen\",\n      \"helm\",\n      \"helpdesk\",\n      \"helpscout\",\n      \"hepsiemlak\",\n      \"here\",\n      \"heroku\",\n      \"hetzner\",\n      \"hevy\",\n      \"hexlet\",\n      \"hexo\",\n      \"hey\",\n      \"hibernate\",\n      \"hibob\",\n      \"hilton\",\n      \"hiltonhotelsandresorts\",\n      \"hitachi\",\n      \"hive\",\n      \"hiveblockchain\",\n      \"hivemq\",\n      \"homarr\",\n      \"homeadvisor\",\n      \"homeassistant\",\n      \"homeassistantcommunitystore\",\n      \"homebrew\",\n      \"homebridge\",\n      \"homepage\",\n      \"homify\",\n      \"honda\",\n      \"honey\",\n      \"hono\",\n      \"honor\",\n      \"hootsuite\",\n      \"hoppscotch\",\n      \"hostinger\",\n      \"hotelsdotcom\",\n      \"hotjar\",\n      \"hotwire\",\n      \"houdini\",\n      \"houzz\",\n      \"hp\",\n      \"hsbc\",\n      \"html5\",\n      \"htmlacademy\",\n      \"htmx\",\n      \"htop\",\n      \"httpie\",\n      \"huawei\",\n      \"hubspot\",\n      \"huggingface\",\n      \"hugo\",\n      \"humblebundle\",\n      \"humhub\",\n      \"hungryjacks\",\n      \"husqvarna\",\n      \"hyper\",\n      \"hyperskill\",\n      \"hypothesis\",\n      \"hyprland\",\n      \"hyundai\",\n      \"i18next\",\n      \"i3\",\n      \"iata\",\n      \"ibeacon\",\n      \"iberia\",\n      \"iced\",\n      \"iceland\",\n      \"icicibank\",\n      \"icinga\",\n      \"icloud\",\n      \"icomoon\",\n      \"icon\",\n      \"iconfinder\",\n      \"iconify\",\n      \"iconjar\",\n      \"icons8\",\n      \"icq\",\n      \"ieee\",\n      \"ifixit\",\n      \"ifood\",\n      \"ifttt\",\n      \"igdb\",\n      \"ign\",\n      \"iheartradio\",\n      \"ikea\",\n      \"iledefrancemobilites\",\n      \"imagedotsc\",\n      \"imagej\",\n      \"imdb\",\n      \"imessage\",\n      \"imgur\",\n      \"immer\",\n      \"immich\",\n      \"imou\",\n      \"improvmx\",\n      \"indeed\",\n      \"indiansuperleague\",\n      \"indiehackers\",\n      \"indigo\",\n      \"inductiveautomation\",\n      \"inertia\",\n      \"infiniti\",\n      \"influxdb\",\n      \"infomaniak\",\n      \"infoq\",\n      \"informatica\",\n      \"infosys\",\n      \"infracost\",\n      \"ingress\",\n      \"inkdrop\",\n      \"inkscape\",\n      \"inoreader\",\n      \"insomnia\",\n      \"inspire\",\n      \"insta360\",\n      \"instacart\",\n      \"instagram\",\n      \"instapaper\",\n      \"instatus\",\n      \"instructables\",\n      \"instructure\",\n      \"intel\",\n      \"intellijidea\",\n      \"interactiondesignfoundation\",\n      \"interactjs\",\n      \"interbase\",\n      \"intercom\",\n      \"intermarche\",\n      \"internetarchive\",\n      \"internetcomputer\",\n      \"intigriti\",\n      \"intuit\",\n      \"invision\",\n      \"invoiceninja\",\n      \"iobroker\",\n      \"ionic\",\n      \"ionos\",\n      \"ios\",\n      \"iota\",\n      \"ipfs\",\n      \"iris\",\n      \"irobot\",\n      \"isc2\",\n      \"issuu\",\n      \"istio\",\n      \"itchdotio\",\n      \"iterm2\",\n      \"itunes\",\n      \"itvx\",\n      \"iveco\",\n      \"jabber\",\n      \"jaeger\",\n      \"jaguar\",\n      \"jamboard\",\n      \"jameson\",\n      \"jamstack\",\n      \"jasmine\",\n      \"java\",\n      \"javascript\",\n      \"jbl\",\n      \"jcb\",\n      \"jeep\",\n      \"jekyll\",\n      \"jellyfin\",\n      \"jenkins\",\n      \"jest\",\n      \"jet\",\n      \"jetblue\",\n      \"jetbrains\",\n      \"jetpackcompose\",\n      \"jfrog\",\n      \"jfrogpipelines\",\n      \"jhipster\",\n      \"jinja\",\n      \"jira\",\n      \"jirasoftware\",\n      \"jitpack\",\n      \"jitsi\",\n      \"johndeere\",\n      \"joomla\",\n      \"joplin\",\n      \"jordan\",\n      \"jouav\",\n      \"jovian\",\n      \"jpeg\",\n      \"jquery\",\n      \"jrgroup\",\n      \"jsdelivr\",\n      \"jsfiddle\",\n      \"json\",\n      \"jsonwebtokens\",\n      \"jsr\",\n      \"jss\",\n      \"juce\",\n      \"juejin\",\n      \"juke\",\n      \"julia\",\n      \"junipernetworks\",\n      \"junit5\",\n      \"jupyter\",\n      \"justeat\",\n      \"justgiving\",\n      \"k3s\",\n      \"k6\",\n      \"kaggle\",\n      \"kagi\",\n      \"kahoot\",\n      \"kaios\",\n      \"kakao\",\n      \"kakaotalk\",\n      \"kalilinux\",\n      \"kamailio\",\n      \"kaniko\",\n      \"karlsruherverkehrsverbund\",\n      \"kasasmart\",\n      \"kashflow\",\n      \"kaspersky\",\n      \"katacoda\",\n      \"katana\",\n      \"kaufland\",\n      \"kde\",\n      \"kdenlive\",\n      \"kdeplasma\",\n      \"kedro\",\n      \"keenetic\",\n      \"keepachangelog\",\n      \"keepassxc\",\n      \"keeweb\",\n      \"kentico\",\n      \"keras\",\n      \"keybase\",\n      \"keycdn\",\n      \"keycloak\",\n      \"keystone\",\n      \"kfc\",\n      \"khanacademy\",\n      \"khronosgroup\",\n      \"kia\",\n      \"kibana\",\n      \"kicad\",\n      \"kick\",\n      \"kickstarter\",\n      \"kik\",\n      \"kingstontechnology\",\n      \"kinopoisk\",\n      \"kinsta\",\n      \"kirby\",\n      \"kit\",\n      \"kitsu\",\n      \"klarna\",\n      \"klm\",\n      \"klook\",\n      \"knative\",\n      \"knexdotjs\",\n      \"knime\",\n      \"knip\",\n      \"knowledgebase\",\n      \"known\",\n      \"koa\",\n      \"koc\",\n      \"kodak\",\n      \"kodi\",\n      \"koenigsegg\",\n      \"kofax\",\n      \"kofi\",\n      \"komoot\",\n      \"konami\",\n      \"kong\",\n      \"kongregate\",\n      \"konva\",\n      \"kotlin\",\n      \"koyeb\",\n      \"krita\",\n      \"ktm\",\n      \"ktor\",\n      \"kuaishou\",\n      \"kubernetes\",\n      \"kubuntu\",\n      \"kucoin\",\n      \"kuma\",\n      \"kununu\",\n      \"kuula\",\n      \"kx\",\n      \"kyocera\",\n      \"labview\",\n      \"lada\",\n      \"lamborghini\",\n      \"landrover\",\n      \"langchain\",\n      \"languagetool\",\n      \"lapce\",\n      \"laragon\",\n      \"laravel\",\n      \"laravelhorizon\",\n      \"laravelnova\",\n      \"lastdotfm\",\n      \"lastpass\",\n      \"latex\",\n      \"launchpad\",\n      \"lazarus\",\n      \"lazyvim\",\n      \"lbry\",\n      \"leaderprice\",\n      \"leaflet\",\n      \"leagueoflegends\",\n      \"leanpub\",\n      \"leetcode\",\n      \"lefthook\",\n      \"legacygames\",\n      \"leica\",\n      \"lemmy\",\n      \"lemonsqueezy\",\n      \"lenovo\",\n      \"lens\",\n      \"leptos\",\n      \"lequipe\",\n      \"lerna\",\n      \"leroymerlin\",\n      \"leslibraires\",\n      \"less\",\n      \"letsencrypt\",\n      \"letterboxd\",\n      \"levelsdotfyi\",\n      \"lg\",\n      \"liberadotchat\",\n      \"liberapay\",\n      \"librariesdotio\",\n      \"librarything\",\n      \"libreoffice\",\n      \"libreofficebase\",\n      \"libreofficecalc\",\n      \"libreofficedraw\",\n      \"libreofficeimpress\",\n      \"libreofficemath\",\n      \"libreofficewriter\",\n      \"libretranslate\",\n      \"libretube\",\n      \"librewolf\",\n      \"libuv\",\n      \"lichess\",\n      \"lidl\",\n      \"lifx\",\n      \"lightburn\",\n      \"lighthouse\",\n      \"lightning\",\n      \"limesurvey\",\n      \"line\",\n      \"lineageos\",\n      \"linear\",\n      \"lining\",\n      \"linkedin\",\n      \"linkerd\",\n      \"linkfire\",\n      \"linksys\",\n      \"linktree\",\n      \"lintcode\",\n      \"linux\",\n      \"linuxcontainers\",\n      \"linuxfoundation\",\n      \"linuxmint\",\n      \"linuxprofessionalinstitute\",\n      \"linuxserver\",\n      \"lionair\",\n      \"liquibase\",\n      \"listmonk\",\n      \"lit\",\n      \"litecoin\",\n      \"literal\",\n      \"litiengine\",\n      \"livechat\",\n      \"livejournal\",\n      \"livewire\",\n      \"llvm\",\n      \"lmms\",\n      \"lobsters\",\n      \"local\",\n      \"lodash\",\n      \"logitech\",\n      \"logitechg\",\n      \"logmein\",\n      \"logseq\",\n      \"logstash\",\n      \"looker\",\n      \"loom\",\n      \"loop\",\n      \"loopback\",\n      \"lootcrate\",\n      \"lospec\",\n      \"lotpolishairlines\",\n      \"ltspice\",\n      \"lua\",\n      \"lubuntu\",\n      \"lucia\",\n      \"lucid\",\n      \"lucide\",\n      \"ludwig\",\n      \"lufthansa\",\n      \"lumen\",\n      \"lunacy\",\n      \"lutris\",\n      \"lydia\",\n      \"lyft\",\n      \"maas\",\n      \"macos\",\n      \"macpaw\",\n      \"macys\",\n      \"magasinsu\",\n      \"magento\",\n      \"magic\",\n      \"magisk\",\n      \"mahindra\",\n      \"mailboxdotorg\",\n      \"mailchimp\",\n      \"maildotcom\",\n      \"maildotru\",\n      \"mailgun\",\n      \"mailtrap\",\n      \"mainwp\",\n      \"majorleaguehacking\",\n      \"make\",\n      \"makerbot\",\n      \"malt\",\n      \"malwarebytes\",\n      \"mambaui\",\n      \"mamp\",\n      \"man\",\n      \"manageiq\",\n      \"manjaro\",\n      \"mantine\",\n      \"mapbox\",\n      \"maplibre\",\n      \"mariadb\",\n      \"mariadbfoundation\",\n      \"markdown\",\n      \"marketo\",\n      \"marko\",\n      \"marriott\",\n      \"marvelapp\",\n      \"maserati\",\n      \"mastercard\",\n      \"mastercomfig\",\n      \"mastodon\",\n      \"materialdesign\",\n      \"materialdesignicons\",\n      \"materialformkdocs\",\n      \"matillion\",\n      \"matomo\",\n      \"matrix\",\n      \"matterdotjs\",\n      \"mattermost\",\n      \"matternet\",\n      \"mautic\",\n      \"max\",\n      \"maxplanckgesellschaft\",\n      \"maytag\",\n      \"mazda\",\n      \"mcafee\",\n      \"mcdonalds\",\n      \"mclaren\",\n      \"mdbook\",\n      \"mdnwebdocs\",\n      \"mdx\",\n      \"mediafire\",\n      \"mediamarkt\",\n      \"mediapipe\",\n      \"mediatek\",\n      \"medibangpaint\",\n      \"medium\",\n      \"medusa\",\n      \"meetup\",\n      \"mega\",\n      \"meilisearch\",\n      \"meituan\",\n      \"meizu\",\n      \"mendeley\",\n      \"mentorcruise\",\n      \"mercadopago\",\n      \"mercedes\",\n      \"merck\",\n      \"mercurial\",\n      \"mermaid\",\n      \"messenger\",\n      \"meta\",\n      \"metabase\",\n      \"metacritic\",\n      \"metafilter\",\n      \"metasploit\",\n      \"meteor\",\n      \"metro\",\n      \"metrodelaciudaddemexico\",\n      \"metrodemadrid\",\n      \"metrodeparis\",\n      \"mewe\",\n      \"mg\",\n      \"microbit\",\n      \"microdotblog\",\n      \"microeditor\",\n      \"microgenetics\",\n      \"micropython\",\n      \"microstation\",\n      \"microstrategy\",\n      \"midi\",\n      \"migadu\",\n      \"mihoyo\",\n      \"mikrotik\",\n      \"milanote\",\n      \"milvus\",\n      \"minds\",\n      \"minetest\",\n      \"mingww64\",\n      \"mini\",\n      \"minio\",\n      \"mintlify\",\n      \"minutemailer\",\n      \"miraheze\",\n      \"miro\",\n      \"misskey\",\n      \"mitsubishi\",\n      \"mix\",\n      \"mixcloud\",\n      \"mixpanel\",\n      \"mlb\",\n      \"mlflow\",\n      \"mobx\",\n      \"mobxstatetree\",\n      \"mocha\",\n      \"mockserviceworker\",\n      \"modal\",\n      \"modin\",\n      \"modrinth\",\n      \"modx\",\n      \"moleculer\",\n      \"momenteo\",\n      \"monero\",\n      \"moneygram\",\n      \"mongodb\",\n      \"mongoose\",\n      \"mongoosedotws\",\n      \"monica\",\n      \"monkeytie\",\n      \"monkeytype\",\n      \"monogames\",\n      \"monoprix\",\n      \"monster\",\n      \"monzo\",\n      \"moo\",\n      \"moodle\",\n      \"moonrepo\",\n      \"moq\",\n      \"moqups\",\n      \"morrisons\",\n      \"moscowmetro\",\n      \"motorola\",\n      \"mozilla\",\n      \"mpv\",\n      \"mqtt\",\n      \"msi\",\n      \"msibusiness\",\n      \"mta\",\n      \"mtr\",\n      \"mubi\",\n      \"mui\",\n      \"mulesoft\",\n      \"muller\",\n      \"multisim\",\n      \"mumble\",\n      \"muo\",\n      \"mural\",\n      \"musescore\",\n      \"musicbrainz\",\n      \"mxlinux\",\n      \"myanimelist\",\n      \"myget\",\n      \"myob\",\n      \"myspace\",\n      \"mysql\",\n      \"n26\",\n      \"n8n\",\n      \"namebase\",\n      \"namecheap\",\n      \"namemc\",\n      \"namesilo\",\n      \"namuwiki\",\n      \"nano\",\n      \"nanostores\",\n      \"nasa\",\n      \"nationalgrid\",\n      \"nationalrail\",\n      \"nativescript\",\n      \"natsdotio\",\n      \"naver\",\n      \"nba\",\n      \"nbb\",\n      \"nbc\",\n      \"ndr\",\n      \"near\",\n      \"nebula\",\n      \"nec\",\n      \"neo4j\",\n      \"neovim\",\n      \"neptune\",\n      \"nestjs\",\n      \"netapp\",\n      \"netbsd\",\n      \"netcup\",\n      \"netdata\",\n      \"neteasecloudmusic\",\n      \"netflix\",\n      \"netgear\",\n      \"netlify\",\n      \"nette\",\n      \"netto\",\n      \"neutralinojs\",\n      \"newbalance\",\n      \"newegg\",\n      \"newjapanprowrestling\",\n      \"newrelic\",\n      \"newyorktimes\",\n      \"nexon\",\n      \"nextbilliondotai\",\n      \"nextcloud\",\n      \"nextdns\",\n      \"nextdoor\",\n      \"nextdotjs\",\n      \"nextra\",\n      \"nextui\",\n      \"nexusmods\",\n      \"nfc\",\n      \"nginx\",\n      \"nginxproxymanager\",\n      \"ngrok\",\n      \"ngrx\",\n      \"nhl\",\n      \"nicehash\",\n      \"niconico\",\n      \"nike\",\n      \"nikon\",\n      \"nim\",\n      \"nintendo\",\n      \"nintendo3ds\",\n      \"nintendogamecube\",\n      \"nintendoswitch\",\n      \"nissan\",\n      \"nixos\",\n      \"nodedotjs\",\n      \"nodemon\",\n      \"nodered\",\n      \"nokia\",\n      \"nomad\",\n      \"norco\",\n      \"nordicsemiconductor\",\n      \"nordvpn\",\n      \"normalizedotcss\",\n      \"norton\",\n      \"norwegian\",\n      \"notepadplusplus\",\n      \"notion\",\n      \"notist\",\n      \"nounproject\",\n      \"novu\",\n      \"now\",\n      \"npm\",\n      \"nrwl\",\n      \"nsis\",\n      \"ntfy\",\n      \"nubank\",\n      \"nucleo\",\n      \"nuget\",\n      \"nuke\",\n      \"numba\",\n      \"numpy\",\n      \"nunjucks\",\n      \"nushell\",\n      \"nutanix\",\n      \"nuxtdotjs\",\n      \"nvidia\",\n      \"nvm\",\n      \"nx\",\n      \"nxp\",\n      \"nzxt\",\n      \"o2\",\n      \"observable\",\n      \"obsidian\",\n      \"obsstudio\",\n      \"ocaml\",\n      \"oclif\",\n      \"octanerender\",\n      \"octave\",\n      \"octobercms\",\n      \"octoprint\",\n      \"octopusdeploy\",\n      \"oculus\",\n      \"odnoklassniki\",\n      \"odoo\",\n      \"odysee\",\n      \"ohdear\",\n      \"okcupid\",\n      \"okta\",\n      \"ollama\",\n      \"oneplus\",\n      \"onlyfans\",\n      \"onlyoffice\",\n      \"onnx\",\n      \"onstar\",\n      \"opel\",\n      \"openaccess\",\n      \"openai\",\n      \"openaigym\",\n      \"openapiinitiative\",\n      \"openbadges\",\n      \"openbsd\",\n      \"openbugbounty\",\n      \"opencollective\",\n      \"opencontainersinitiative\",\n      \"opencv\",\n      \"openfaas\",\n      \"opengl\",\n      \"openhab\",\n      \"openid\",\n      \"openjdk\",\n      \"openjsfoundation\",\n      \"openlayers\",\n      \"openmediavault\",\n      \"openmined\",\n      \"opennebula\",\n      \"openproject\",\n      \"openscad\",\n      \"opensea\",\n      \"opensearch\",\n      \"opensourcehardware\",\n      \"opensourceinitiative\",\n      \"openssl\",\n      \"openstack\",\n      \"openstreetmap\",\n      \"opensuse\",\n      \"opentelemetry\",\n      \"opentext\",\n      \"opentofu\",\n      \"openverse\",\n      \"openvpn\",\n      \"openwrt\",\n      \"openzeppelin\",\n      \"openzfs\",\n      \"opera\",\n      \"operagx\",\n      \"opnsense\",\n      \"oppo\",\n      \"opsgenie\",\n      \"opslevel\",\n      \"optimism\",\n      \"oracle\",\n      \"orange\",\n      \"orcid\",\n      \"oreilly\",\n      \"org\",\n      \"organicmaps\",\n      \"origin\",\n      \"osano\",\n      \"osf\",\n      \"osgeo\",\n      \"oshkosh\",\n      \"osmc\",\n      \"osu\",\n      \"otto\",\n      \"outline\",\n      \"overcast\",\n      \"overleaf\",\n      \"ovh\",\n      \"owasp\",\n      \"owncloud\",\n      \"oxygen\",\n      \"oyo\",\n      \"p5dotjs\",\n      \"packagist\",\n      \"packer\",\n      \"packt\",\n      \"paddle\",\n      \"paddlepaddle\",\n      \"paddypower\",\n      \"pagekit\",\n      \"pagerduty\",\n      \"pagespeedinsights\",\n      \"pagseguro\",\n      \"palantir\",\n      \"paloaltonetworks\",\n      \"paloaltosoftware\",\n      \"panasonic\",\n      \"pandas\",\n      \"pandora\",\n      \"pantheon\",\n      \"paperlessngx\",\n      \"paperspace\",\n      \"paperswithcode\",\n      \"paramountplus\",\n      \"paritysubstrate\",\n      \"parrotsecurity\",\n      \"parsedotly\",\n      \"passport\",\n      \"pastebin\",\n      \"patreon\",\n      \"paychex\",\n      \"payhip\",\n      \"payloadcms\",\n      \"payoneer\",\n      \"paypal\",\n      \"paytm\",\n      \"pcgamingwiki\",\n      \"pdm\",\n      \"pdq\",\n      \"peakdesign\",\n      \"pearson\",\n      \"peerlist\",\n      \"peertube\",\n      \"pegasusairlines\",\n      \"pelican\",\n      \"peloton\",\n      \"penny\",\n      \"penpot\",\n      \"percy\",\n      \"perforce\",\n      \"perl\",\n      \"perplexity\",\n      \"persistent\",\n      \"personio\",\n      \"petsathome\",\n      \"peugeot\",\n      \"pexels\",\n      \"pfsense\",\n      \"phabricator\",\n      \"philipshue\",\n      \"phoenixframework\",\n      \"phonepe\",\n      \"phosphoricons\",\n      \"photobucket\",\n      \"photocrowd\",\n      \"photon\",\n      \"photopea\",\n      \"php\",\n      \"phpmyadmin\",\n      \"phpstorm\",\n      \"piaggiogroup\",\n      \"piapro\",\n      \"picardsurgeles\",\n      \"picartodottv\",\n      \"picnic\",\n      \"picpay\",\n      \"picrew\",\n      \"picxy\",\n      \"pihole\",\n      \"pimcore\",\n      \"pinboard\",\n      \"pinescript\",\n      \"pinetwork\",\n      \"pingdom\",\n      \"pino\",\n      \"pinterest\",\n      \"pioneerdj\",\n      \"piped\",\n      \"pipx\",\n      \"pivotaltracker\",\n      \"piwigo\",\n      \"pix\",\n      \"pixabay\",\n      \"pixelfed\",\n      \"pixiv\",\n      \"pixlr\",\n      \"pkgsrc\",\n      \"planet\",\n      \"planetscale\",\n      \"plangrid\",\n      \"platformdotsh\",\n      \"platformio\",\n      \"platzi\",\n      \"plausibleanalytics\",\n      \"playcanvas\",\n      \"playerdotme\",\n      \"playerfm\",\n      \"playstation\",\n      \"playstation2\",\n      \"playstation3\",\n      \"playstation4\",\n      \"playstation5\",\n      \"playstationportable\",\n      \"playstationvita\",\n      \"pleroma\",\n      \"plesk\",\n      \"plex\",\n      \"plotly\",\n      \"plume\",\n      \"pluralsight\",\n      \"plurk\",\n      \"pluscodes\",\n      \"pm2\",\n      \"pnpm\",\n      \"pocket\",\n      \"pocketbase\",\n      \"pocketcasts\",\n      \"podcastaddict\",\n      \"podcastindex\",\n      \"podman\",\n      \"poe\",\n      \"poetry\",\n      \"pointy\",\n      \"pokemon\",\n      \"polars\",\n      \"polestar\",\n      \"polkadot\",\n      \"poly\",\n      \"polygon\",\n      \"polymerproject\",\n      \"polywork\",\n      \"pond5\",\n      \"popos\",\n      \"porkbun\",\n      \"porsche\",\n      \"portainer\",\n      \"portswigger\",\n      \"posit\",\n      \"postcss\",\n      \"postgresql\",\n      \"posthog\",\n      \"postman\",\n      \"postmates\",\n      \"powers\",\n      \"prdotco\",\n      \"preact\",\n      \"precommit\",\n      \"prefect\",\n      \"premierleague\",\n      \"prepbytes\",\n      \"prestashop\",\n      \"presto\",\n      \"prettier\",\n      \"pretzel\",\n      \"prevention\",\n      \"prezi\",\n      \"prime\",\n      \"primefaces\",\n      \"primeng\",\n      \"primereact\",\n      \"primevideo\",\n      \"primevue\",\n      \"printables\",\n      \"prisma\",\n      \"prismic\",\n      \"privatedivision\",\n      \"privateinternetaccess\",\n      \"probot\",\n      \"processingfoundation\",\n      \"processwire\",\n      \"producthunt\",\n      \"progate\",\n      \"progress\",\n      \"prometheus\",\n      \"pronounsdotpage\",\n      \"prosieben\",\n      \"proteus\",\n      \"protocolsdotio\",\n      \"protodotio\",\n      \"proton\",\n      \"protoncalendar\",\n      \"protondb\",\n      \"protondrive\",\n      \"protonmail\",\n      \"protonvpn\",\n      \"protools\",\n      \"protractor\",\n      \"proxmox\",\n      \"pterodactyl\",\n      \"pubg\",\n      \"publons\",\n      \"pubmed\",\n      \"pug\",\n      \"pulumi\",\n      \"puma\",\n      \"puppet\",\n      \"puppeteer\",\n      \"purescript\",\n      \"purgecss\",\n      \"purism\",\n      \"pushbullet\",\n      \"pusher\",\n      \"pwa\",\n      \"pycharm\",\n      \"pycqa\",\n      \"pydantic\",\n      \"pyg\",\n      \"pypi\",\n      \"pypy\",\n      \"pyscaffold\",\n      \"pysyft\",\n      \"pytest\",\n      \"python\",\n      \"pythonanywhere\",\n      \"pytorch\",\n      \"pyup\",\n      \"qantas\",\n      \"qase\",\n      \"qatarairways\",\n      \"qbittorrent\",\n      \"qemu\",\n      \"qgis\",\n      \"qi\",\n      \"qiita\",\n      \"qiskit\",\n      \"qiwi\",\n      \"qlik\",\n      \"qmk\",\n      \"qnap\",\n      \"qt\",\n      \"qualcomm\",\n      \"qualtrics\",\n      \"qualys\",\n      \"quantcast\",\n      \"quantconnect\",\n      \"quarkus\",\n      \"quarto\",\n      \"quasar\",\n      \"qubesos\",\n      \"quest\",\n      \"quickbooks\",\n      \"quicklook\",\n      \"quicktime\",\n      \"quicktype\",\n      \"quip\",\n      \"quizlet\",\n      \"quora\",\n      \"qwant\",\n      \"qwik\",\n      \"qwiklabs\",\n      \"qzone\",\n      \"r\",\n      \"r3\",\n      \"rabbitmq\",\n      \"racket\",\n      \"radar\",\n      \"radarr\",\n      \"radiopublic\",\n      \"radixui\",\n      \"radstudio\",\n      \"railway\",\n      \"rainmeter\",\n      \"rakuten\",\n      \"ram\",\n      \"rancher\",\n      \"rapid\",\n      \"rarible\",\n      \"rasa\",\n      \"raspberrypi\",\n      \"ravelry\",\n      \"ray\",\n      \"raycast\",\n      \"raylib\",\n      \"razer\",\n      \"razorpay\",\n      \"rclone\",\n      \"react\",\n      \"reactbootstrap\",\n      \"reacthookform\",\n      \"reactiveresume\",\n      \"reactivex\",\n      \"reactos\",\n      \"reactquery\",\n      \"reactrouter\",\n      \"reacttable\",\n      \"readdotcv\",\n      \"readme\",\n      \"readthedocs\",\n      \"realm\",\n      \"reason\",\n      \"reasonstudios\",\n      \"recoil\",\n      \"red\",\n      \"redash\",\n      \"redbubble\",\n      \"redbull\",\n      \"redcandlegames\",\n      \"reddit\",\n      \"redhat\",\n      \"redhatopenshift\",\n      \"redis\",\n      \"redmine\",\n      \"redox\",\n      \"redragon\",\n      \"redsys\",\n      \"redux\",\n      \"reduxsaga\",\n      \"redwoodjs\",\n      \"reebok\",\n      \"refine\",\n      \"relay\",\n      \"relianceindustrieslimited\",\n      \"remark\",\n      \"remedyentertainment\",\n      \"remix\",\n      \"removedotbg\",\n      \"renault\",\n      \"render\",\n      \"renovate\",\n      \"renpy\",\n      \"renren\",\n      \"replit\",\n      \"republicofgamers\",\n      \"rescript\",\n      \"rescuetime\",\n      \"researchgate\",\n      \"resend\",\n      \"resharper\",\n      \"resurrectionremixos\",\n      \"retool\",\n      \"retroarch\",\n      \"retropie\",\n      \"revanced\",\n      \"revealdotjs\",\n      \"reverbnation\",\n      \"revoltdotchat\",\n      \"revolut\",\n      \"revue\",\n      \"rewe\",\n      \"rezgo\",\n      \"rhinoceros\",\n      \"rich\",\n      \"rider\",\n      \"rimacautomobili\",\n      \"rime\",\n      \"ring\",\n      \"riotgames\",\n      \"ripple\",\n      \"riscv\",\n      \"riseup\",\n      \"ritzcarlton\",\n      \"rive\",\n      \"roadmapdotsh\",\n      \"roamresearch\",\n      \"robinhood\",\n      \"roblox\",\n      \"robloxstudio\",\n      \"roboflow\",\n      \"robotframework\",\n      \"rocket\",\n      \"rocketdotchat\",\n      \"rocksdb\",\n      \"rockstargames\",\n      \"rockwellautomation\",\n      \"rockylinux\",\n      \"roku\",\n      \"roll20\",\n      \"rollsroyce\",\n      \"rollupdotjs\",\n      \"roon\",\n      \"rootme\",\n      \"roots\",\n      \"rootsbedrock\",\n      \"rootssage\",\n      \"ros\",\n      \"rossmann\",\n      \"rotaryinternational\",\n      \"rottentomatoes\",\n      \"roundcube\",\n      \"rsocket\",\n      \"rss\",\n      \"rstudioide\",\n      \"rte\",\n      \"rtl\",\n      \"rtlzwei\",\n      \"rtm\",\n      \"rubocop\",\n      \"ruby\",\n      \"rubygems\",\n      \"rubymine\",\n      \"rubyonrails\",\n      \"rubysinatra\",\n      \"ruff\",\n      \"rumahweb\",\n      \"rumble\",\n      \"rundeck\",\n      \"runkeeper\",\n      \"runkit\",\n      \"runrundotit\",\n      \"rust\",\n      \"rustdesk\",\n      \"rxdb\",\n      \"ryanair\",\n      \"rye\",\n      \"s7airlines\",\n      \"sabanci\",\n      \"safari\",\n      \"sage\",\n      \"sahibinden\",\n      \"sailfishos\",\n      \"sailsdotjs\",\n      \"salesforce\",\n      \"salla\",\n      \"saltproject\",\n      \"samsclub\",\n      \"samsung\",\n      \"samsungpay\",\n      \"sandisk\",\n      \"sanfranciscomunicipalrailway\",\n      \"sanic\",\n      \"sanity\",\n      \"saopaulometro\",\n      \"sap\",\n      \"sartorius\",\n      \"sass\",\n      \"sat1\",\n      \"satellite\",\n      \"saturn\",\n      \"saucelabs\",\n      \"saudia\",\n      \"scala\",\n      \"scaleway\",\n      \"scania\",\n      \"schneiderelectric\",\n      \"scikitlearn\",\n      \"scilab\",\n      \"scipy\",\n      \"scopus\",\n      \"scpfoundation\",\n      \"scrapbox\",\n      \"scrapy\",\n      \"scratch\",\n      \"screencastify\",\n      \"scribd\",\n      \"scrimba\",\n      \"scrollreveal\",\n      \"scrumalliance\",\n      \"scrutinizerci\",\n      \"scylladb\",\n      \"seagate\",\n      \"searxng\",\n      \"seat\",\n      \"seatgeek\",\n      \"securityscorecard\",\n      \"sefaria\",\n      \"sega\",\n      \"selenium\",\n      \"sellfy\",\n      \"semanticrelease\",\n      \"semanticscholar\",\n      \"semanticui\",\n      \"semanticuireact\",\n      \"semanticweb\",\n      \"semaphoreci\",\n      \"semrush\",\n      \"semver\",\n      \"sencha\",\n      \"sennheiser\",\n      \"sensu\",\n      \"sentry\",\n      \"sepa\",\n      \"sequelize\",\n      \"serverfault\",\n      \"serverless\",\n      \"session\",\n      \"sessionize\",\n      \"setapp\",\n      \"sfml\",\n      \"shadcnui\",\n      \"shadow\",\n      \"shanghaimetro\",\n      \"sharex\",\n      \"sharp\",\n      \"shazam\",\n      \"shell\",\n      \"shelly\",\n      \"shenzhenmetro\",\n      \"shieldsdotio\",\n      \"shikimori\",\n      \"shopee\",\n      \"shopify\",\n      \"shopware\",\n      \"shortcut\",\n      \"showpad\",\n      \"showtime\",\n      \"showwcase\",\n      \"shutterstock\",\n      \"sidekiq\",\n      \"sidequest\",\n      \"siemens\",\n      \"sifive\",\n      \"signal\",\n      \"similarweb\",\n      \"simkl\",\n      \"simpleanalytics\",\n      \"simpleicons\",\n      \"simplelogin\",\n      \"simplenote\",\n      \"sinaweibo\",\n      \"singaporeairlines\",\n      \"singlestore\",\n      \"sitecore\",\n      \"sitepoint\",\n      \"siyuan\",\n      \"skaffold\",\n      \"sketch\",\n      \"sketchfab\",\n      \"sketchup\",\n      \"skillshare\",\n      \"skoda\",\n      \"sky\",\n      \"skypack\",\n      \"skyrock\",\n      \"slack\",\n      \"slackware\",\n      \"slashdot\",\n      \"slickpic\",\n      \"slides\",\n      \"slideshare\",\n      \"slint\",\n      \"smart\",\n      \"smartthings\",\n      \"smashdotgg\",\n      \"smashingmagazine\",\n      \"smrt\",\n      \"smugmug\",\n      \"snapchat\",\n      \"snapcraft\",\n      \"sncf\",\n      \"snort\",\n      \"snowflake\",\n      \"snowpack\",\n      \"snyk\",\n      \"socialblade\",\n      \"society6\",\n      \"socketdotio\",\n      \"softpedia\",\n      \"sogou\",\n      \"solana\",\n      \"solid\",\n      \"solidity\",\n      \"sololearn\",\n      \"solus\",\n      \"sonar\",\n      \"sonarcloud\",\n      \"sonarlint\",\n      \"sonarqube\",\n      \"sonarr\",\n      \"sonatype\",\n      \"songkick\",\n      \"songoda\",\n      \"sonicwall\",\n      \"sonos\",\n      \"sony\",\n      \"soriana\",\n      \"soundcharts\",\n      \"soundcloud\",\n      \"sourceengine\",\n      \"sourceforge\",\n      \"sourcehut\",\n      \"sourcetree\",\n      \"southwestairlines\",\n      \"spacemacs\",\n      \"spaceship\",\n      \"spacex\",\n      \"spacy\",\n      \"sparkar\",\n      \"sparkasse\",\n      \"sparkfun\",\n      \"sparkpost\",\n      \"spdx\",\n      \"speakerdeck\",\n      \"spectrum\",\n      \"speedtest\",\n      \"speedypage\",\n      \"sphinx\",\n      \"spigotmc\",\n      \"spine\",\n      \"spinnaker\",\n      \"spinrilla\",\n      \"splunk\",\n      \"spoj\",\n      \"spond\",\n      \"spotify\",\n      \"spotlight\",\n      \"spreadshirt\",\n      \"spreaker\",\n      \"spring\",\n      \"springboot\",\n      \"springcreators\",\n      \"springsecurity\",\n      \"spyderide\",\n      \"sqlalchemy\",\n      \"sqlite\",\n      \"square\",\n      \"squareenix\",\n      \"squarespace\",\n      \"srgssr\",\n      \"ssrn\",\n      \"sst\",\n      \"stackbit\",\n      \"stackblitz\",\n      \"stackedit\",\n      \"stackexchange\",\n      \"stackhawk\",\n      \"stackoverflow\",\n      \"stackpath\",\n      \"stackshare\",\n      \"stadia\",\n      \"staffbase\",\n      \"stagetimer\",\n      \"standardjs\",\n      \"standardresume\",\n      \"starbucks\",\n      \"stardock\",\n      \"starlingbank\",\n      \"starship\",\n      \"startrek\",\n      \"starz\",\n      \"statamic\",\n      \"statista\",\n      \"statuspage\",\n      \"statuspal\",\n      \"steam\",\n      \"steamdb\",\n      \"steamdeck\",\n      \"steamworks\",\n      \"steelseries\",\n      \"steem\",\n      \"steemit\",\n      \"steinberg\",\n      \"stellar\",\n      \"stencil\",\n      \"stencyl\",\n      \"stimulus\",\n      \"stitcher\",\n      \"stmicroelectronics\",\n      \"stockx\",\n      \"stopstalk\",\n      \"storyblok\",\n      \"storybook\",\n      \"strapi\",\n      \"strava\",\n      \"streamlabs\",\n      \"streamlit\",\n      \"streamrunners\",\n      \"stripe\",\n      \"strongswan\",\n      \"stryker\",\n      \"stubhub\",\n      \"studio3t\",\n      \"studyverse\",\n      \"styledcomponents\",\n      \"stylelint\",\n      \"styleshare\",\n      \"stylus\",\n      \"subaru\",\n      \"sublimetext\",\n      \"substack\",\n      \"subtitleedit\",\n      \"subversion\",\n      \"suckless\",\n      \"sumologic\",\n      \"suno\",\n      \"sunrise\",\n      \"supabase\",\n      \"supercrease\",\n      \"supermicro\",\n      \"superuser\",\n      \"surrealdb\",\n      \"surveymonkey\",\n      \"suse\",\n      \"suzuki\",\n      \"svelte\",\n      \"svg\",\n      \"svgdotjs\",\n      \"svgo\",\n      \"svgtrace\",\n      \"swagger\",\n      \"swarm\",\n      \"sway\",\n      \"swc\",\n      \"swift\",\n      \"swiggy\",\n      \"swiper\",\n      \"swr\",\n      \"symantec\",\n      \"symbolab\",\n      \"symfony\",\n      \"symphony\",\n      \"sympy\",\n      \"syncthing\",\n      \"synology\",\n      \"system76\",\n      \"tabelog\",\n      \"tableau\",\n      \"tablecheck\",\n      \"tacobell\",\n      \"tado\",\n      \"taichigraphics\",\n      \"taichilang\",\n      \"tails\",\n      \"tailscale\",\n      \"tailwindcss\",\n      \"taipy\",\n      \"taketwointeractivesoftware\",\n      \"talend\",\n      \"talenthouse\",\n      \"talos\",\n      \"tamiya\",\n      \"tampermonkey\",\n      \"taobao\",\n      \"tapas\",\n      \"target\",\n      \"tarom\",\n      \"task\",\n      \"tasmota\",\n      \"tata\",\n      \"tauri\",\n      \"taxbuzz\",\n      \"tcs\",\n      \"teal\",\n      \"teamcity\",\n      \"teamspeak\",\n      \"teamviewer\",\n      \"techcrunch\",\n      \"ted\",\n      \"teepublic\",\n      \"teespring\",\n      \"tekton\",\n      \"tele5\",\n      \"telegram\",\n      \"telegraph\",\n      \"telequebec\",\n      \"temporal\",\n      \"tencentqq\",\n      \"tensorflow\",\n      \"teradata\",\n      \"teratail\",\n      \"termius\",\n      \"terraform\",\n      \"tesco\",\n      \"tesla\",\n      \"testcafe\",\n      \"testin\",\n      \"testinglibrary\",\n      \"testrail\",\n      \"tether\",\n      \"textpattern\",\n      \"tga\",\n      \"thangs\",\n      \"thanos\",\n      \"thealgorithms\",\n      \"theboringcompany\",\n      \"theconversation\",\n      \"thefinals\",\n      \"theguardian\",\n      \"theirishtimes\",\n      \"themighty\",\n      \"themodelsresource\",\n      \"themoviedatabase\",\n      \"thenorthface\",\n      \"theodinproject\",\n      \"theregister\",\n      \"thesoundsresource\",\n      \"thespritersresource\",\n      \"thewashingtonpost\",\n      \"theweatherchannel\",\n      \"thingiverse\",\n      \"thinkpad\",\n      \"thirdweb\",\n      \"threadless\",\n      \"threads\",\n      \"threedotjs\",\n      \"threema\",\n      \"thumbtack\",\n      \"thunderbird\",\n      \"thunderstore\",\n      \"thurgauerkantonalbank\",\n      \"thymeleaf\",\n      \"ticketmaster\",\n      \"ticktick\",\n      \"tidal\",\n      \"tiddlywiki\",\n      \"tide\",\n      \"tidyverse\",\n      \"tietoevry\",\n      \"tiktok\",\n      \"tildapublishing\",\n      \"tile\",\n      \"timescale\",\n      \"tina\",\n      \"tinder\",\n      \"tindie\",\n      \"tinkercad\",\n      \"tinygrad\",\n      \"tinyletter\",\n      \"tistory\",\n      \"tldraw\",\n      \"tmobile\",\n      \"tmux\",\n      \"todoist\",\n      \"toggl\",\n      \"toggltrack\",\n      \"tokyometro\",\n      \"toll\",\n      \"toml\",\n      \"tomorrowland\",\n      \"ton\",\n      \"topcoder\",\n      \"topdotgg\",\n      \"toptal\",\n      \"torbrowser\",\n      \"torproject\",\n      \"toshiba\",\n      \"totvs\",\n      \"tourbox\",\n      \"tower\",\n      \"toyota\",\n      \"tplink\",\n      \"tqdm\",\n      \"traccar\",\n      \"tradingview\",\n      \"traefikmesh\",\n      \"traefikproxy\",\n      \"trailforks\",\n      \"trainerroad\",\n      \"trakt\",\n      \"transifex\",\n      \"transmission\",\n      \"transferwise\",\n      \"transportforireland\",\n      \"transportforlondon\",\n      \"travisci\",\n      \"treehouse\",\n      \"trello\",\n      \"trendmicro\",\n      \"treyarch\",\n      \"tricentis\",\n      \"trilium\",\n      \"triller\",\n      \"trillertv\",\n      \"trino\",\n      \"tripadvisor\",\n      \"tripdotcom\",\n      \"trivago\",\n      \"trivy\",\n      \"trove\",\n      \"trpc\",\n      \"truenas\",\n      \"trueup\",\n      \"trulia\",\n      \"trustedshops\",\n      \"trustpilot\",\n      \"tryhackme\",\n      \"tryitonline\",\n      \"tsnode\",\n      \"tubi\",\n      \"tui\",\n      \"tumblr\",\n      \"tunein\",\n      \"turbo\",\n      \"turborepo\",\n      \"turbosquid\",\n      \"turkishairlines\",\n      \"turso\",\n      \"tutanota\",\n      \"tv4play\",\n      \"tvtime\",\n      \"twilio\",\n      \"twinkly\",\n      \"twinmotion\",\n      \"twitch\",\n      \"typeform\",\n      \"typeorm\",\n      \"typer\",\n      \"typescript\",\n      \"typo3\",\n      \"typst\",\n      \"uber\",\n      \"ubereats\",\n      \"ubiquiti\",\n      \"ubisoft\",\n      \"ublockorigin\",\n      \"ubuntu\",\n      \"ubuntumate\",\n      \"udacity\",\n      \"udemy\",\n      \"ufc\",\n      \"uikit\",\n      \"uipath\",\n      \"ulule\",\n      \"umami\",\n      \"umbraco\",\n      \"uml\",\n      \"unacademy\",\n      \"underarmour\",\n      \"underscoredotjs\",\n      \"undertale\",\n      \"unicode\",\n      \"unilever\",\n      \"uniqlo\",\n      \"uniqloja\",\n      \"unitedairlines\",\n      \"unitednations\",\n      \"unity\",\n      \"unjs\",\n      \"unlicense\",\n      \"unocss\",\n      \"unpkg\",\n      \"unraid\",\n      \"unrealengine\",\n      \"unsplash\",\n      \"untappd\",\n      \"upcloud\",\n      \"uphold\",\n      \"uplabs\",\n      \"upptime\",\n      \"ups\",\n      \"upstash\",\n      \"uptimekuma\",\n      \"uptobox\",\n      \"upwork\",\n      \"usps\",\n      \"utorrent\",\n      \"v\",\n      \"v2ex\",\n      \"v8\",\n      \"vaadin\",\n      \"vagrant\",\n      \"vala\",\n      \"valorant\",\n      \"valve\",\n      \"vapor\",\n      \"vault\",\n      \"vaultwarden\",\n      \"vauxhall\",\n      \"vbulletin\",\n      \"vectary\",\n      \"vectorlogozone\",\n      \"vectorworks\",\n      \"veeam\",\n      \"veed\",\n      \"veepee\",\n      \"vega\",\n      \"vegas\",\n      \"velog\",\n      \"venmo\",\n      \"vercel\",\n      \"verdaccio\",\n      \"veritas\",\n      \"verizon\",\n      \"vespa\",\n      \"vestel\",\n      \"vexxhost\",\n      \"vfairs\",\n      \"viadeo\",\n      \"viaplay\",\n      \"viber\",\n      \"viblo\",\n      \"victoriametrics\",\n      \"victronenergy\",\n      \"vim\",\n      \"vimeo\",\n      \"vimeolivestream\",\n      \"virgin\",\n      \"virginatlantic\",\n      \"virginmedia\",\n      \"virtualbox\",\n      \"virustotal\",\n      \"visa\",\n      \"visx\",\n      \"vite\",\n      \"vitepress\",\n      \"vitess\",\n      \"vitest\",\n      \"vivaldi\",\n      \"vivawallet\",\n      \"vivino\",\n      \"vivint\",\n      \"vivo\",\n      \"vk\",\n      \"vlcmediaplayer\",\n      \"vmware\",\n      \"vodafone\",\n      \"voidlinux\",\n      \"voipdotms\",\n      \"volkswagen\",\n      \"volvo\",\n      \"vonage\",\n      \"vorondesign\",\n      \"vowpalwabbit\",\n      \"vox\",\n      \"vrchat\",\n      \"vsco\",\n      \"vscodium\",\n      \"vtex\",\n      \"vuedotjs\",\n      \"vuetify\",\n      \"vulkan\",\n      \"vultr\",\n      \"vyond\",\n      \"w3schools\",\n      \"wacom\",\n      \"wagmi\",\n      \"wagtail\",\n      \"wails\",\n      \"wakatime\",\n      \"walkman\",\n      \"wallabag\",\n      \"walletconnect\",\n      \"walmart\",\n      \"wantedly\",\n      \"wappalyzer\",\n      \"warnerbros\",\n      \"warp\",\n      \"wasabi\",\n      \"wasmcloud\",\n      \"wasmer\",\n      \"watchtower\",\n      \"wattpad\",\n      \"wayland\",\n      \"waze\",\n      \"wazirx\",\n      \"wearos\",\n      \"weasyl\",\n      \"web3dotjs\",\n      \"webassembly\",\n      \"webauthn\",\n      \"webcomponentsdotorg\",\n      \"webdriverio\",\n      \"webex\",\n      \"webflow\",\n      \"webgl\",\n      \"webgpu\",\n      \"weblate\",\n      \"webmin\",\n      \"webmoney\",\n      \"webpack\",\n      \"webrtc\",\n      \"webstorm\",\n      \"webtoon\",\n      \"webtrees\",\n      \"wechat\",\n      \"wegame\",\n      \"weightsandbiases\",\n      \"welcometothejungle\",\n      \"wellfound\",\n      \"wellsfargo\",\n      \"wemo\",\n      \"westerndigital\",\n      \"westernunion\",\n      \"wetransfer\",\n      \"wezterm\",\n      \"wgpu\",\n      \"whatsapp\",\n      \"wheniwork\",\n      \"wii\",\n      \"wiiu\",\n      \"wikidata\",\n      \"wikidotgg\",\n      \"wikidotjs\",\n      \"wikimediacommons\",\n      \"wikimediafoundation\",\n      \"wikipedia\",\n      \"wikiquote\",\n      \"wikivoyage\",\n      \"winamp\",\n      \"wipro\",\n      \"wire\",\n      \"wireguard\",\n      \"wireshark\",\n      \"wise\",\n      \"wish\",\n      \"wistia\",\n      \"wix\",\n      \"wizzair\",\n      \"wolfram\",\n      \"wolframlanguage\",\n      \"wolframmathematica\",\n      \"wondershare\",\n      \"wondersharefilmora\",\n      \"woo\",\n      \"woocommerce\",\n      \"wordpress\",\n      \"workplace\",\n      \"worldhealthorganization\",\n      \"wpengine\",\n      \"wpexplorer\",\n      \"wprocket\",\n      \"writedotas\",\n      \"wwe\",\n      \"wwise\",\n      \"wykop\",\n      \"wyze\",\n      \"x\",\n      \"xampp\",\n      \"xcode\",\n      \"xdadevelopers\",\n      \"xdotorg\",\n      \"xendit\",\n      \"xero\",\n      \"xfce\",\n      \"xiaohongshu\",\n      \"xiaomi\",\n      \"xing\",\n      \"xml\",\n      \"xmpp\",\n      \"xo\",\n      \"xrp\",\n      \"xsplit\",\n      \"xstate\",\n      \"xubuntu\",\n      \"yabai\",\n      \"yale\",\n      \"yamahacorporation\",\n      \"yamahamotorcorporation\",\n      \"yaml\",\n      \"yandexcloud\",\n      \"yarn\",\n      \"ycombinator\",\n      \"yelp\",\n      \"yeti\",\n      \"yii\",\n      \"yoast\",\n      \"youtube\",\n      \"youtubegaming\",\n      \"youtubekids\",\n      \"youtubemusic\",\n      \"youtubeshorts\",\n      \"youtubestudio\",\n      \"youtubetv\",\n      \"yr\",\n      \"yubico\",\n      \"yunohost\",\n      \"zabka\",\n      \"zaim\",\n      \"zalando\",\n      \"zalo\",\n      \"zap\",\n      \"zapier\",\n      \"zara\",\n      \"zazzle\",\n      \"zcash\",\n      \"zcool\",\n      \"zdf\",\n      \"zebpay\",\n      \"zebratechnologies\",\n      \"zedindustries\",\n      \"zelle\",\n      \"zend\",\n      \"zendesk\",\n      \"zenn\",\n      \"zenodo\",\n      \"zensar\",\n      \"zerodha\",\n      \"zerotier\",\n      \"zerply\",\n      \"zettlr\",\n      \"zhihu\",\n      \"zig\",\n      \"zigbee\",\n      \"zigbee2mqtt\",\n      \"ziggo\",\n      \"zilch\",\n      \"zillow\",\n      \"zingat\",\n      \"zod\",\n      \"zoho\",\n      \"zoiper\",\n      \"zomato\",\n      \"zoom\",\n      \"zorin\",\n      \"zotero\",\n      \"zsh\",\n      \"zulip\",\n      \"zyte\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simpleinvoice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"advdate\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"babel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setinvoicetitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinvoicetitle{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"setinvoicenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinvoicenumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setreceivername\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setreceivername{${1:reciever's name}}\"\n      }\n    },\n    {\n      \"name\": \"setreceiveraddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setreceiveraddress{${1:reciever's address}}\"\n      }\n    },\n    {\n      \"name\": \"setname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setname{${1:your name}}\"\n      }\n    },\n    {\n      \"name\": \"setaddress\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setaddress{${1:your address (${3:multiline})}}{${2:your address (${4:single line})}}\"\n      }\n    },\n    {\n      \"name\": \"setphonenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setphonenumber{${1:your phone number}}\"\n      }\n    },\n    {\n      \"name\": \"setemail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setemail{${1:your email}}\"\n      }\n    },\n    {\n      \"name\": \"setyourref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyourref{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setourref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setourref{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setinvoicedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setinvoicedate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"setdeadline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdeadline{${1:days from now}}\"\n      }\n    },\n    {\n      \"name\": \"additem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"additem{${1:description}}{${2:price excluding vat}}{${3:vat percentage}}{${4:price including vat}}\"\n      }\n    },\n    {\n      \"name\": \"setsubtotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubtotal{${1:total excluding vat}}\"\n      }\n    },\n    {\n      \"name\": \"setvat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setvat{${1:total vat}}\"\n      }\n    },\n    {\n      \"name\": \"settotal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settotal{${1:total including vat}}\"\n      }\n    },\n    {\n      \"name\": \"setaccountnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaccountnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeinvoice\"\n    },\n    {\n      \"name\": \"linesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/simpleinvoice#c\": [\n      \"american\",\n      \"english\",\n      \"UKenglish\",\n      \"USenglish\",\n      \"norsk\",\n      \"norwegian\",\n      \"bokmaal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/simpleinvoice#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/simplekv.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setKV[${2:keygroup name}]{${1:key1=val1,key2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"setKVdefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setKVdefault[${2:keygroup name}]{${1:key1=val1,key2=val2,...}}\"\n      }\n    },\n    {\n      \"name\": \"useKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useKV[${2:keygroup}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"restoreKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"restoreKV[${1:keygroup}]\"\n      }\n    },\n    {\n      \"name\": \"useKVdefault\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useKVdefault[${1:keygroup}]\"\n      }\n    },\n    {\n      \"name\": \"ifboolKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifboolKV[${4:keygroup}]{${1:key%plain}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"showKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showKV[${2:keygroup}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"defKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"defKV[${2:keygroup}]{${1:key1=code1,key2=code2,...}}\"\n      }\n    },\n    {\n      \"name\": \"testboolKV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"testboolKV{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simplenodes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"simplenode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"simplenode{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"examplenode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examplenode{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"alertnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alertnode{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"warnnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"warnnode{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"link\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"link{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"gettikzxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gettikzxy{${1:(${4:x},${5:y})}}{${2:xcmd%cmd}}{${3:ycmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"mynode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mynode{${1:draw color}}{${2:fill color}}\"\n      }\n    },\n    {\n      \"name\": \"myline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"myline{${1:anchor1}}{${2:anchor2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/simplenodes#c\": [\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"width=\",\n      \"minheight=\",\n      \"innersep=\",\n      \"outersep=\",\n      \"thickness=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/simplenodes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/simpleoptics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mirror\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirror{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}\"\n      }\n    },\n    {\n      \"name\": \"leftplanoconvexlens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"leftplanoconvexlens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"rightplanoconvexlens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"rightplanoconvexlens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"leftplanoconcavelens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"leftplanoconcavelens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"rightplanoconcavelens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"rightplanoconcavelens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"biconvexlens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"biconvexlens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"biconcavelens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"biconcavelens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"convexconcavelens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"convexconcavelens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"concaveconvexlens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"concaveconvexlens{${1:x}}{${2:y}}{${3:focal length}}{${4:mirror height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"lens\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lens{${1:x}}{${2:y}}{${3:focal length}}{${4:height}}{${5:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"straightline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"straightline{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mirrorY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mirrorRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mirrorHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensThickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensXright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lensXleft\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simpler-wick.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wick{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wick[${2:options%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\wick\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"c\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\wick\": [\n      \"sep=\",\n      \"offset=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/simples-matrices.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"simplesmatricessetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"simplesmatricessetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/simples-matrices#c,\\\\simplesmatricessetup,\\\\matrice,\\\\declarermatrice,\\\\declarermatrice*,\\\\lamatrice,\\\\matid,\\\\matnulle\",\n          \"\\\\simplesmatricessetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrice{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matrice[${2:type}]{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrice<keyvals>{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice<keyvals>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matrice<keyvals>[${2:type}]{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"matrice(${2:prefix}){${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"matrice(${3:prefix})[${2:type}]{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"()<>{}\",\n        \"snippet\": \"matrice(${3:prefix})<${2:keyvals}>{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"matrice\",\n      \"arg\": {\n        \"format\": \"()<>[]{}\",\n        \"snippet\": \"matrice(${4:prefix})<${3:keyvals}>[${2:type}]{${1:clist of coefficients}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarermatrice{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarermatrice{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarermatrice<keyvals>{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarermatrice<keyvals>{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"declarermatrice(${3:prefix}){${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"declarermatrice(${4:prefix}){${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"()<>{}{}\",\n        \"snippet\": \"declarermatrice(${4:prefix})<${3:keyvals}>{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice\",\n      \"arg\": {\n        \"format\": \"()<>{}[]{}\",\n        \"snippet\": \"declarermatrice(${5:prefix})<${4:keyvals}>{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarermatrice*{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarermatrice*{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declarermatrice*<keyvals>{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"declarermatrice*<keyvals>{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"declarermatrice*(${3:prefix}){${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"(){}[]{}\",\n        \"snippet\": \"declarermatrice*(${4:prefix}){${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"()<>{}{}\",\n        \"snippet\": \"declarermatrice*(${4:prefix})<${3:keyvals}>{${1:matrix name}}{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"declarermatrice*\",\n      \"arg\": {\n        \"format\": \"()<>{}[]{}\",\n        \"snippet\": \"declarermatrice*(${5:prefix})<${4:keyvals}>{${1:matrix name}}[${3:type}]{${2:clist of coefficients%formula}}\"\n      }\n    },\n    {\n      \"name\": \"lamatrice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lamatrice{${1:matrix name}}\"\n      }\n    },\n    {\n      \"name\": \"lamatrice<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lamatrice<keyvals>{${1:matrix name}}\"\n      }\n    },\n    {\n      \"name\": \"lamatrice\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"lamatrice(${2:prefix}){${1:matrix name}}\"\n      }\n    },\n    {\n      \"name\": \"lamatrice\",\n      \"arg\": {\n        \"format\": \"()<>{}\",\n        \"snippet\": \"lamatrice(${3:prefix})<${2:keyvals}>{${1:matrix name}}\"\n      }\n    },\n    {\n      \"name\": \"MatriceInterieur\"\n    },\n    {\n      \"name\": \"LaMatriceInterieur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaMatriceInterieur{${1:matrix name}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matid{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matid[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matid<keyvals>{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid<keyvals>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matid<keyvals>[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"matid(${2:prefix}){${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"matid(${3:prefix})[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"()<>{}\",\n        \"snippet\": \"matid(${3:prefix})<${2:keyvals}>{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matid\",\n      \"arg\": {\n        \"format\": \"()<>[]{}\",\n        \"snippet\": \"matid(${4:prefix})<${3:keyvals}>[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matnulle{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matnulle[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle<keyvals>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matnulle<keyvals>{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle<keyvals>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"matnulle<keyvals>[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"matnulle(${2:prefix}){${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"matnulle(${3:prefix})[${2:coefficient}]{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"()<>{}\",\n        \"snippet\": \"matnulle(${3:prefix})<${2:keyvals}>{${1:number of columns}}\"\n      }\n    },\n    {\n      \"name\": \"matnulle\",\n      \"arg\": {\n        \"format\": \"()<>[]{}\",\n        \"snippet\": \"matnulle(${4:prefix})<${3:keyvals}>[${2:coefficient}]{${1:number of columns}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/simples-matrices#c,\\\\simplesmatricessetup,\\\\matrice,\\\\declarermatrice,\\\\declarermatrice*,\\\\lamatrice,\\\\matid,\\\\matnulle\": [\n      \"envir=${1:envname}\",\n      \"prefix=${1:envname prefix}\",\n      \"typeord=${1:type}\",\n      \"argopt=${1:token list}\"\n    ],\n    \"\\\\simplesmatricessetup\": [\n      \"out-of-box\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/simples-matrices#c,\\\\simplesmatricessetup,\\\\matrice,\\\\declarermatrice,\\\\declarermatrice*,\\\\lamatrice,\\\\matid,\\\\matnulle\"\n  ]\n}"
  },
  {
    "path": "dev/packages/simpsons.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Left\"\n    },\n    {\n      \"name\": \"Lisa\"\n    },\n    {\n      \"name\": \"Homer\"\n    },\n    {\n      \"name\": \"Bart\"\n    },\n    {\n      \"name\": \"Marge\"\n    },\n    {\n      \"name\": \"Maggie\"\n    },\n    {\n      \"name\": \"Burns\"\n    },\n    {\n      \"name\": \"SNPP\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sitem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sitem[${1:label}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/siunitx-special.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bit\"\n    },\n    {\n      \"name\": \"byte\"\n    },\n    {\n      \"name\": \"mmHg\"\n    },\n    {\n      \"name\": \"molar\"\n    },\n    {\n      \"name\": \"Molar\"\n    },\n    {\n      \"name\": \"torr\"\n    },\n    {\n      \"name\": \"dalton\"\n    },\n    {\n      \"name\": \"clight\"\n    },\n    {\n      \"name\": \"eVperc\"\n    },\n    {\n      \"name\": \"yoctobarn\"\n    },\n    {\n      \"name\": \"yb\"\n    },\n    {\n      \"name\": \"zeptobarn\"\n    },\n    {\n      \"name\": \"zb\"\n    },\n    {\n      \"name\": \"attobarn\"\n    },\n    {\n      \"name\": \"ab\"\n    },\n    {\n      \"name\": \"femtobarn\"\n    },\n    {\n      \"name\": \"fb\"\n    },\n    {\n      \"name\": \"picobarn\"\n    },\n    {\n      \"name\": \"pb\"\n    },\n    {\n      \"name\": \"nanobarn\"\n    },\n    {\n      \"name\": \"nb\"\n    },\n    {\n      \"name\": \"micron\"\n    },\n    {\n      \"name\": \"mrad\"\n    },\n    {\n      \"name\": \"gauss\"\n    },\n    {\n      \"name\": \"parsec\"\n    },\n    {\n      \"name\": \"lightyear\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/siunitx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"use-xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"A\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"amu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ang\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ang[${2:options}]{${1:angle}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ang{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"arcminute\"\n    },\n    {\n      \"name\": \"arcsecond\"\n    },\n    {\n      \"name\": \"as\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"astronomicalunit\"\n    },\n    {\n      \"name\": \"atto\"\n    },\n    {\n      \"name\": \"becquerel\"\n    },\n    {\n      \"name\": \"bel\"\n    },\n    {\n      \"name\": \"bit\"\n    },\n    {\n      \"name\": \"byte\"\n    },\n    {\n      \"name\": \"C\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"centi\"\n    },\n    {\n      \"name\": \"cm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"complexnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"complexnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"complexnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"complexnum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"complexqty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"complexqty{${1:number}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"complexqty\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"complexqty[${3:options%keyvals}]{${1:number}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"cubed\"\n    },\n    {\n      \"name\": \"cubic\"\n    },\n    {\n      \"name\": \"dalton\"\n    },\n    {\n      \"name\": \"dB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deca\"\n    },\n    {\n      \"name\": \"deci\"\n    },\n    {\n      \"name\": \"decibel\"\n    },\n    {\n      \"name\": \"DeclareSIPower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSIPower{${1:symbol-before%cmd}}{${2:symbol-after%cmd}}{${3:power}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPrefix\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSIPrefix{${1:prefix macro%cmd}}{${2:symbol}}{${3:power of 10}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIQualifier\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIQualifier{${1:qualifier%cmd}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIUnit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareSIUnit[${3:options%keyvals}]{${1:unit%cmd}}{${2:definition}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareSIUnit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIUnit{${1:unit%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"degreeCelsius\"\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"deka\"\n    },\n    {\n      \"name\": \"dm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"electronvolt\"\n    },\n    {\n      \"name\": \"eV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exa\"\n    },\n    {\n      \"name\": \"exbi\"\n    },\n    {\n      \"name\": \"F\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"femto\"\n    },\n    {\n      \"name\": \"fF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"g\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gibi\"\n    },\n    {\n      \"name\": \"giga\"\n    },\n    {\n      \"name\": \"GPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gram\"\n    },\n    {\n      \"name\": \"gray\"\n    },\n    {\n      \"name\": \"GW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hectare\"\n    },\n    {\n      \"name\": \"hecto\"\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"highlight\"\n    },\n    {\n      \"name\": \"hL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"Hz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"J\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"K\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"katal\"\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"keV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kibi\"\n    },\n    {\n      \"name\": \"kilo\"\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"kJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"km\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kWh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"L\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"l\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liter\"\n    },\n    {\n      \"name\": \"litre\"\n    },\n    {\n      \"name\": \"lumen\"\n    },\n    {\n      \"name\": \"lux\"\n    },\n    {\n      \"name\": \"m\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mebi\"\n    },\n    {\n      \"name\": \"mega\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"metre\"\n    },\n    {\n      \"name\": \"MeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"milli\"\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"mJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mohm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"mp\",\n      \"unusual\": true,\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"MPa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"N\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nano\"\n    },\n    {\n      \"name\": \"nC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"neper\"\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"nF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ng\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"num\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"num[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"num\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"num{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"numlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numlist[${2:options}]{${1:numbers}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numlist{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"numproduct\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"numproduct[${2:options}]{${1:numbers}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numproduct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numproduct{${1:numbers}}\"\n      }\n    },\n    {\n      \"name\": \"numrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"numrange[${3:options}]{${1:number1}}{${2:number2}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"numrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numrange{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"nV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"of\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"of{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"Pa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"pebi\"\n    },\n    {\n      \"name\": \"per\"\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"pF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pico\"\n    },\n    {\n      \"name\": \"pmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qty\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qty[${3:options%keyvals}]{${1:number}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qty{${1:number}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtylist\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qtylist[${3:options%keyvals}]{${1:numbers}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtylist\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtylist{${1:numbers}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtyproduct\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"qtyproduct[${3:options%keyvals}]{${1:numbers}}{${2:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtyproduct\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qtyproduct{${1:numbers}}{${2:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"qtyrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"qtyrange[${4:options%keyvals}]{${1:number1}}{${2:number2}}{${3:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qtyrange\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"qtyrange{${1:number1}}{${2:number2}}{${3:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"quecto\"\n    },\n    {\n      \"name\": \"quetta\"\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"raiseto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"raiseto{${1:power}}\"\n      }\n    },\n    {\n      \"name\": \"ronna\"\n    },\n    {\n      \"name\": \"ronto\"\n    },\n    {\n      \"name\": \"s\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"siemens\"\n    },\n    {\n      \"name\": \"sievert\"\n    },\n    {\n      \"name\": \"sisetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sisetup{${1:options}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\complexnum,\\\\complexqty\",\n          \"\\\\sisetup,\\\\ang\",\n          \"\\\\sisetup\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\tablenum\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squared\"\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"T\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tablenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablenum[${2:options}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\tablenum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tebi\"\n    },\n    {\n      \"name\": \"tera\"\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"TeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"THz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tonne\"\n    },\n    {\n      \"name\": \"tothe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tothe{${1:power}}\"\n      }\n    },\n    {\n      \"name\": \"uA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ug\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"um\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unit[${2:options%keyvals}]{${1:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"us\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"V\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"W\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"yobi\"\n    },\n    {\n      \"name\": \"yocto\"\n    },\n    {\n      \"name\": \"yotta\"\n    },\n    {\n      \"name\": \"zebi\"\n    },\n    {\n      \"name\": \"zepto\"\n    },\n    {\n      \"name\": \"zetta\"\n    },\n    {\n      \"name\": \"DeclareBinaryPrefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareBinaryPrefix{${1:prefix macro%cmd}}{${2:symbol}}{${3:power of 2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPostPower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIPostPower{${1:power macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSIPrePower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSIPrePower{${1:power macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"SI[${3:options%keyvals}]{${1:value}}[${4:pre-unit%formula}]{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SI[${3:options%keyvals}]{${1:value}}{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SI{${1:value}}[${3:pre-unit%formula}]{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SI{${1:value}}{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"si\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"si[${2:options%keyvals}]{${1:unit%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"si\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"si{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SIlist{${1:values}}{${2:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SIlist[${3:options%keyvals}]{${1:values}}{${2:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SIrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SIrange{${1:value1}}{${2:value2}}{${3:unit commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SIrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"SIrange[${4:options%keyvals}]{${1:value1}}{${2:value2}}{${3:unit commands%formula}}\",\n        \"keys\": [\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\",\n          \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"ge\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\unit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"color=\",\n      \"mode=${1|match,math,text|}\",\n      \"number-color=\",\n      \"number-mode=${1|match,math,text|}\",\n      \"propagate-math-font\",\n      \"reset-math-version\",\n      \"reset-text-family\",\n      \"reset-text-series\",\n      \"reset-text-shape\",\n      \"text-family-to-math\",\n      \"text-subscript-command=${1:command}\",\n      \"text-superscript-command=${1:command}\",\n      \"text-font-command=${1:commands}\",\n      \"text-series-to-math\",\n      \"unit-color=\",\n      \"unit-mode=${1|match,math,text|}\",\n      \"locale=${1|DE,UK,US,ZA,FR|}\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\complexnum,\\\\complexqty,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numproduct,\\\\numrange,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\tablenum,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"evaluate-expression\",\n      \"expression=${1:expression}\",\n      \"input-close-uncertainty=${1:symbols}\",\n      \"input-comparators=${1:symbols}\",\n      \"input-decimal-markers=${1:symbols}\",\n      \"input-digits=${1:symbols}\",\n      \"input-exponent-markers=${1:symbols}\",\n      \"input-ignore=${1:symbols}\",\n      \"input-open-uncertainty=${1:symbols}\",\n      \"input-signs=${1:symbols}\",\n      \"input-uncertainty-divider=${1:symbol}\",\n      \"input-uncertainty-signs=${1:symbols}\",\n      \"parse-numbers\",\n      \"retain-explicit-decimal-marker\",\n      \"retain-explicit-plus\",\n      \"retain-negative-zero\",\n      \"retain-zero-uncertainty\",\n      \"drop-exponent\",\n      \"drop-uncertainty\",\n      \"drop-zero-decimal\",\n      \"exponent-mode=${1|input,fixed,engineering,scientific,threshold|}\",\n      \"exponent-thresholds=${1:min:max}\",\n      \"fixed-exponent=${1:integer}\",\n      \"minimum-integer-digits=${1:integer}\",\n      \"minimum-decimal-digits=${1:integer}\",\n      \"round-direction=${1|nearest,up,down|}\",\n      \"round-half=${1|up,even|}\",\n      \"round-minimum=${1:number}\",\n      \"round-mode=${1|none,figures,places,uncertainty|}\",\n      \"round-pad\",\n      \"round-precision=${1:integer}\",\n      \"round-zero-positive\",\n      \"uncertainty-round-direction=${1|nearest,up,down|}\",\n      \"bracket-ambiguous-numbers\",\n      \"bracket-negative-numbers\",\n      \"digit-group-size=${1:integer}\",\n      \"digit-group-first-size=${1:integer}\",\n      \"digit-group-other-size=${1:integer}\",\n      \"exponent-base=${1:value}\",\n      \"exponent-product=${1:symbol}\",\n      \"group-digits=${1|none,decimal,integer|}\",\n      \"group-minimum-digits=${1:integer}\",\n      \"group-separator=${1:separator}\",\n      \"negative-color=\",\n      \"output-close-uncertainty=${1:symbol}\",\n      \"output-decimal-marker=${1:symbol}\",\n      \"output-exponent-marker=${1:symbol}\",\n      \"output-open-uncertainty=${1:symbol}\",\n      \"print-exponent-implicit-plus\",\n      \"print-implicit-plus\",\n      \"print-mantissa-implicit-plus\",\n      \"print-unity-mantissa\",\n      \"print-zero-exponent\",\n      \"print-zero-integer\",\n      \"separate-uncertainty\",\n      \"tight-spacing\",\n      \"uncertainty-descriptor-mode=${1|bracket,bracket-separator,separator,subscript|}\",\n      \"uncertainty-descriptor-separator=${1:separator}\",\n      \"uncertainty-descriptors={${1:desc1,desc2,...}}\",\n      \"uncertainty-mode=${1|separate,compact,compact-marker,full|}\",\n      \"uncertainty-separator=${1:separator}\",\n      \"zero-decimal-as-symbol\",\n      \"zero-symbol=${1:symbol}\"\n    ],\n    \"\\\\sisetup,\\\\numlist,\\\\qtylist,\\\\SIlist\": [\n      \"list-close-bracket=${1:symbol}\",\n      \"list-exponents=${1|individual,combine-bracket,combine|}\",\n      \"list-final-separator=${1:separator}\",\n      \"list-independent-prefix\",\n      \"list-open-bracket=${1:symbol}\",\n      \"list-pair-separator=${1:separator}\",\n      \"list-separator=${1:separator}\",\n      \"list-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\numproduct,\\\\qtyproduct\": [\n      \"product-close-bracket=${1:symbol}\",\n      \"product-exponents=${1|individual,combine-bracket,combine|}\",\n      \"product-independent-prefix\",\n      \"product-mode=${1|symbol,phrase|}\",\n      \"product-open-bracket=${1:symbol}\",\n      \"product-phrase=${1:text}\",\n      \"product-symbol=${1:symbol}\",\n      \"product-units=${1|bracket,bracket-power,power,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\numrange,\\\\qtyrange,\\\\SIrange\": [\n      \"range-close-bracket=${1:symbol}\",\n      \"range-exponents=${1|individual,combine-bracket,combine|}\",\n      \"range-independent-prefix\",\n      \"range-open-bracket=${1:symbol}\",\n      \"range-open-phrase=${1:symbol}\",\n      \"range-phrase=${1:text}\",\n      \"range-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\complexnum,\\\\complexqty\": [\n      \"complex-angle-unit=${1|degrees,radians|}\",\n      \"complex-mode=${1|cartesian,polar,input|}\",\n      \"complex-root-position=${1|after-number,before-number|}\",\n      \"complex-symbol-angle=${1:symbol}\",\n      \"complex-symbol-degree=${1:symbol}\",\n      \"input-complex-root=${1:tokens}\",\n      \"output-complex-root=${1:symbol}\",\n      \"print-complex-unity\"\n    ],\n    \"\\\\sisetup,\\\\ang\": [\n      \"angle-mode=${1|arc,decimal|}\",\n      \"angle-symbol-degree=${1:symbol}\",\n      \"angle-symbol-minute=${1:symbol}\",\n      \"angle-symbol-over-decimal\",\n      \"angle-symbol-second=${1:symbol}\",\n      \"angle-separator=${1:separator}\",\n      \"fill-angle-degrees\",\n      \"fill-angle-minutes\",\n      \"fill-angle-seconds\",\n      \"number-angle-product=${1:separator}\",\n      \"add-arc-degree-zero\",\n      \"add-arc-minute-zero\",\n      \"add-arc-second-zero\",\n      \"arc-separator=\"\n    ],\n    \"\\\\sisetup\": [\n      \"free-standing-units\",\n      \"overwrite-functions\",\n      \"space-before-unit\",\n      \"unit-optional-argument\",\n      \"use-xspace\",\n      \"list-input-separator=${1:separator}\",\n      \"product-input-separator=${1:separator}\",\n      \"table-column-type=${1:tokens}\",\n      \"detect-all\",\n      \"detect-display-math\",\n      \"detect-family\",\n      \"detect-inline-family=${1|text,math|}\",\n      \"detect-inline-weight=${1|text,math|}\",\n      \"detect-mode\",\n      \"detect-none\",\n      \"detect-shape\",\n      \"detect-weight\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\unit,\\\\si\": [\n      \"bracket-unit-denominator\",\n      \"forbid-literal-units\",\n      \"fraction-command=${1:command}\",\n      \"inter-unit-product=${1:separator}\",\n      \"parse-units\",\n      \"per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"display-per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"inline-per-mode=${1|fraction,power,power-positive-first,repeated-symbol,symbol,single-symbol|}\",\n      \"per-symbol-script-correction=${1:separator}\",\n      \"per-symbol=${1:symbol}\",\n      \"power-half-as-sqrt\",\n      \"qualifier-mode=${1|subscript,bracket,combine,phrase|}\",\n      \"qualifier-phrase=${1:text}\",\n      \"sticky-per\",\n      \"unit-font-command=${1:command}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\qty,\\\\qtylist,\\\\qtyproduct,\\\\qtyrange,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"allow-quantity-breaks\",\n      \"extract-mass-in-kilograms\",\n      \"prefix-mode=${1|input,combine-exponent,extract-exponent|}\",\n      \"quantity-product=${1:symbol}\",\n      \"separate-uncertainty-units=${1|bracket,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\tablenum\": [\n      \"table-align-comparator\",\n      \"table-align-exponent\",\n      \"table-align-text-after\",\n      \"table-align-text-before\",\n      \"table-align-uncertainty\",\n      \"table-alignment=${1|left,center,right|}\",\n      \"table-alignment-mode=${1|marker,format,none|}\",\n      \"table-auto-round\",\n      \"table-column-width=\",\n      \"table-fixed-width=\",\n      \"table-format=${1:format value}\",\n      \"table-model-setup=${1:commands}\",\n      \"table-number-alignment=${1|left,center,right|}\",\n      \"table-text-alignment=${1|left,center,right,none|}\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"math-rm=\",\n      \"math-sf=\",\n      \"math-tt=\",\n      \"text-rm=\",\n      \"text-sf=\",\n      \"text-tt=\",\n      \"text-tt=\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\numrange,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"number-math-rm=\",\n      \"number-math-sf=\",\n      \"number-math-tt=\",\n      \"number-text-rm=\",\n      \"number-text-sf=\",\n      \"number-text-tt=\",\n      \"input-protect-tokens=\",\n      \"input-symbols=\",\n      \"add-decimal-zero\",\n      \"add-integer-zero\",\n      \"explicit-sign=\",\n      \"omit-uncertainty\",\n      \"retain-unity-mantissa\",\n      \"retain-zero-exponent\",\n      \"round-integer-to-decimal\",\n      \"scientific-notation=${1|true,false,fixed,engineering|}\",\n      \"zero-decimal-to-integer\",\n      \"bracket-numbers\",\n      \"close-bracket=\",\n      \"copy-complex-root=\",\n      \"copy-decimal-marker=\",\n      \"open-bracket=\"\n    ],\n    \"\\\\sisetup,\\\\ang,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"unit-math-rm=\",\n      \"unit-math-sf=\",\n      \"unit-math-tt=\",\n      \"unit-text-rm=\",\n      \"unit-text-sf=\",\n      \"unit-text-tt=\",\n      \"math-arcminute=\",\n      \"math-arcsecond=\",\n      \"math-degree=\",\n      \"redefine-symbols\",\n      \"text-arcminute=\",\n      \"text-arcsecond=\",\n      \"text-degree=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\num,\\\\numlist,\\\\SI,\\\\SIlist\": [\n      \"fraction-function=\",\n      \"input-product=\",\n      \"input-quotient=\",\n      \"output-product=\",\n      \"output-quotient=\",\n      \"quotient-mode=${1|symbol,fraction|}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\si,\\\\SIlist,\\\\SIrange\": [\n      \"literal-superscript-as-power\",\n      \"power-font=${1|number,unit|}\",\n      \"prefixes-as-symbols\",\n      \"math-angstrom=\",\n      \"math-celsius=\",\n      \"math-micro=\",\n      \"math-ohm=\",\n      \"text-angstrom=\",\n      \"text-celsius=\",\n      \"text-micro=\",\n      \"text-ohm=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist,\\\\SIrange\": [\n      \"allow-number-unit-breaks\",\n      \"exponent-to-prefix\",\n      \"number-unit-product=\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit,\\\\SI,\\\\SIlist\": [\n      \"multi-part-units=${1|brackets,repeat,single|}\"\n    ],\n    \"\\\\sisetup,\\\\DeclareSIUnit\": [\n      \"table-align-text-pre\",\n      \"table-align-text-post\",\n      \"table-comparator\",\n      \"table-figures-decimal=\",\n      \"table-figures-exponent=\",\n      \"table-figures-integer=\",\n      \"table-figures-uncertainty=\",\n      \"table-parse-only\",\n      \"table-omit-exponent\",\n      \"table-space-text-pre=\",\n      \"table-space-text-post=\",\n      \"table-sign-exponent\",\n      \"table-sign-mantissa\",\n      \"table-unit-alignment=${1|center,right,left|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sizeredc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"changeunitlength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changeunitlength{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ifsizereduction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducedsizepicture\"\n    },\n    {\n      \"name\": \"reducedsizepicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"reducedsizepicture[${1:unit length}]\"\n      }\n    },\n    {\n      \"name\": \"sizereductionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sizereductiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"substfontsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thicklines\"\n    },\n    {\n      \"name\": \"thinlines\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/skak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chessfss\"\n    },\n    {\n      \"name\": \"lambda\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pstricks\",\n      \"if\": \"ps\"\n    },\n    {\n      \"name\": \"pst-node\",\n      \"if\": \"ps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newgame\"\n    },\n    {\n      \"name\": \"mainline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mainline{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"variation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"variation{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"showboard\"\n    },\n    {\n      \"name\": \"hidemoves\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidemoves{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"storegame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storegame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"restoregame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restoregame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savegame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savegame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"loadgame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadgame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"notationon\"\n    },\n    {\n      \"name\": \"notationoff\"\n    },\n    {\n      \"name\": \"showinverseboard\"\n    },\n    {\n      \"name\": \"wmove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wmove{${1:move}}\"\n      }\n    },\n    {\n      \"name\": \"bmove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bmove{${1:move}}\"\n      }\n    },\n    {\n      \"name\": \"lastmove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lastmove{${1:move}}\"\n      }\n    },\n    {\n      \"name\": \"showonlywhite\"\n    },\n    {\n      \"name\": \"showonlyblack\"\n    },\n    {\n      \"name\": \"showonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonly{${1:piece1,piece2,...}}\"\n      }\n    },\n    {\n      \"name\": \"showallbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showallbut{${1:piece1,piece2,...}}\"\n      }\n    },\n    {\n      \"name\": \"fenboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fenboard{${1:instructions}}\"\n      }\n    },\n    {\n      \"name\": \"styleA\"\n    },\n    {\n      \"name\": \"styleB\"\n    },\n    {\n      \"name\": \"styleC\"\n    },\n    {\n      \"name\": \"variationstyle\"\n    },\n    {\n      \"name\": \"mainlinestyle\"\n    },\n    {\n      \"name\": \"longmoves\"\n    },\n    {\n      \"name\": \"shortmoves\"\n    },\n    {\n      \"name\": \"newskaklanguage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newskaklanguage{${1:language}}{${2:pieces}}\"\n      }\n    },\n    {\n      \"name\": \"skaklanguage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skaklanguage[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"boardasfen\"\n    },\n    {\n      \"name\": \"EnPassantSquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variationcurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuevariation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuevariationcurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tinyboard\"\n    },\n    {\n      \"name\": \"smallboard\"\n    },\n    {\n      \"name\": \"normalboard\"\n    },\n    {\n      \"name\": \"largeboard\"\n    },\n    {\n      \"name\": \"movecomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"movecomment{${1:moves}}\"\n      }\n    },\n    {\n      \"name\": \"showall\"\n    },\n    {\n      \"name\": \"showonlypawns\"\n    },\n    {\n      \"name\": \"showmoveron\"\n    },\n    {\n      \"name\": \"showmoveroff\"\n    },\n    {\n      \"name\": \"printarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printarrow{${1:from}}{${2:to}}\"\n      }\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highlight{${1:square list}}\"\n      }\n    },\n    {\n      \"name\": \"highlight\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"highlight[${2:marker}]{${1:square list}}\"\n      }\n    },\n    {\n      \"name\": \"printknightmove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printknightmove{${1:from}}{${2:to}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/skak#c\": [\n      \"tiny\",\n      \"small\",\n      \"normal\",\n      \"large\",\n      \"notation\",\n      \"mover\",\n      \"moveroff\",\n      \"notationoff\",\n      \"ps\",\n      \"psoff\",\n      \"english\",\n      \"styleA\",\n      \"styleB\",\n      \"styleC\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/skak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/skeldoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"enotez\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"skelset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\skelset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelline\"\n    },\n    {\n      \"name\": \"skelline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelline[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"skelline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelline{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelline[${2:width}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelref\"\n    },\n    {\n      \"name\": \"skelref\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelref[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"skelref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelref{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelref[${2:width}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelcite\"\n    },\n    {\n      \"name\": \"skelcite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelcite[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelcite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelcite{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelcite[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelcite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelpar\"\n    },\n    {\n      \"name\": \"skelpar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelpar[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelpar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelpar{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelpar[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelpar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelfig\"\n    },\n    {\n      \"name\": \"skelfig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelfig[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelfig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelfig{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelfig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelfig[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelfig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelcaption\"\n    },\n    {\n      \"name\": \"skelcaption\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelcaption[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelcaption#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelcaption{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelcaption[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelcaption#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelpars\"\n    },\n    {\n      \"name\": \"skelpars\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelpars[${1:pars}]\"\n      }\n    },\n    {\n      \"name\": \"skelpars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelpars{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelpars\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelpars[${2:pars}]{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelitems\"\n    },\n    {\n      \"name\": \"skelitems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelitems[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelitems#c,\\\\skelenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelitems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelitems{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelitems\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelitems[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelitems#c,\\\\skelenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelenum\"\n    },\n    {\n      \"name\": \"skelenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelenum[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelitems#c,\\\\skelenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelenum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelenum{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelenum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelenum[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelitems#c,\\\\skelenum#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skeltabular\"\n    },\n    {\n      \"name\": \"skeltabular\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skeltabular[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skeltabular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skeltabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skeltabular{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skeltabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skeltabular[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skeltabular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelbib\"\n    },\n    {\n      \"name\": \"skelbib\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelbib[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelbib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelbib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelbib{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelbib\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelbib[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelbib#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelpseudo\"\n    },\n    {\n      \"name\": \"skelpseudo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skelpseudo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\skelpseudo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelpseudo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelpseudo{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"skelpseudo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"skelpseudo[${2:options%keyvals}]{${1:note%text}}\",\n        \"keys\": [\n          \"\\\\skelpseudo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"skelnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skelnote{${1:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"printskelnotes\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\skelset\": [\n      \"main-color=\",\n      \"full-width=\",\n      \"short-width=\",\n      \"fill-width=\",\n      \"hypersetup={${1:hyperref options}}\",\n      \"min-mpwidth=\",\n      \"line-raise=\",\n      \"line-height=\",\n      \"note-font=${1:font commands}\",\n      \"note-color=\",\n      \"line-width=\",\n      \"ref-width=\",\n      \"cite-width=\",\n      \"cite-left=${1:code}\",\n      \"cite-right=${1:code}\",\n      \"par-lines=${1:integer}\",\n      \"par-first-width=\",\n      \"par-width=\",\n      \"par-last-width=\",\n      \"fig-width=\",\n      \"fig-height=\",\n      \"caption-lines=${1:integer}\",\n      \"pars-pars=${1:integer}\",\n      \"list-items=${1:integer}\",\n      \"list-item-lines=${1:integer}\",\n      \"tabular-rows=${1:integer}\",\n      \"tabular-colsep=\",\n      \"tabular-stretch=${1:factor}\",\n      \"bib-items=${1:integer}\",\n      \"bib-item-lines=${1:integer}\",\n      \"pseudo-lines=${1:integer}\",\n      \"pseudo-head=\",\n      \"pseudo-newlines={${1:cmd1,cmd2,...}}\"\n    ],\n    \"\\\\skelcite#c\": [\n      \"${1:width}\",\n      \"width=\",\n      \"left=${1:code}\",\n      \"right=${1:code}\"\n    ],\n    \"\\\\skelpar#c\": [\n      \"${1:lines}\",\n      \"lines=${1:integer}\",\n      \"first-width=\",\n      \"width=\",\n      \"last-width=\"\n    ],\n    \"\\\\skelfig#c\": [\n      \"${1:height}\",\n      \"width=\",\n      \"height=\"\n    ],\n    \"\\\\skelcaption#c\": [\n      \"${1:lines}\",\n      \"lines=${1:integer}\",\n      \"first-width=\",\n      \"width=\",\n      \"last-width=\"\n    ],\n    \"\\\\skelitems#c,\\\\skelenum#c\": [\n      \"${1:items}\",\n      \"items=${1:integer}\",\n      \"item-lines=${1:integer}\"\n    ],\n    \"\\\\skeltabular#c\": [\n      \"${1:rows}\",\n      \"rows=${1:integer}\",\n      \"colsep=\",\n      \"stretch=${1:factor}\"\n    ],\n    \"\\\\skelbib#c\": [\n      \"${1:items}\",\n      \"items=${1:integer}\",\n      \"item-lines=${1:integer}\"\n    ],\n    \"\\\\skelpseudo#c\": [\n      \"${1:lines}\",\n      \"lines=${1:integer}\",\n      \"head=\",\n      \"newlines={${1:cmd1,cmd2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/skillicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"photosymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"photosymbol{${1:icon name}}\"\n      }\n    },\n    {\n      \"name\": \"photosymbol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"photosymbol[${2:size}]{${1:icon name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/skills.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"marginnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"skilldef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"skilldef{${1:label}}{${2:reference}}{${3:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"skillquestion\"\n    },\n    {\n      \"name\": \"skillquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skillquestion[${1:skill1,skill2,...}]\"\n      }\n    },\n    {\n      \"name\": \"skillquestion\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"skillquestion[${1:skill1,skill2,...}][${2:points}]\"\n      }\n    },\n    {\n      \"name\": \"skills\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skills{${1:skill1,skill2,...}}\"\n      }\n    },\n    {\n      \"name\": \"globalskills\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"globalskills{${1:skill1,skill2,...}}\"\n      }\n    },\n    {\n      \"name\": \"skillstable\"\n    },\n    {\n      \"name\": \"skillstable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"skillstable[${1:sort type%keyvals}]\",\n        \"keys\": [\n          \"\\\\skillstable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"putglobalskills\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skillssep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skillsinmargin\"\n    },\n    {\n      \"name\": \"skillsinleftmargin\"\n    },\n    {\n      \"name\": \"skillsinrightmargin\"\n    },\n    {\n      \"name\": \"noskillsinmargin\"\n    },\n    {\n      \"name\": \"noskillsinrightmargin\"\n    },\n    {\n      \"name\": \"skillsinmarginvadjust\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skillsinmarginvadjust{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bracketedskills\"\n    },\n    {\n      \"name\": \"nobracketedskills\"\n    },\n    {\n      \"name\": \"boxedskills\"\n    },\n    {\n      \"name\": \"noboxedskills\"\n    },\n    {\n      \"name\": \"onlyskills\"\n    },\n    {\n      \"name\": \"notonlyskills\"\n    },\n    {\n      \"name\": \"skillsenclosement\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"skillsenclosement{${1:opening}}{${2:closing}}\"\n      }\n    },\n    {\n      \"name\": \"skilllevelname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLocalization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintingSkillsConfiguration\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultskillsclosing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultskillsenclosement\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultskillsopening\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalskill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"globalskill{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"globalskill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"globalskill[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"glsgobblenumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glsgobblenumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"multiskills\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multiskills{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"skillcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skillsclosing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skillsopening\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"skill{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"skillquestions\"\n    },\n    {\n      \"name\": \"skillquestions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:skill1,skill2,...}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/skills#c\": [\n      \"makenoidxglossaries\",\n      \"donotmakenoidxglossaries\",\n      \"counter=${1:counter}\"\n    ],\n    \"\\\\skillstable\": [\n      \"word\",\n      \"letter\",\n      \"standard\",\n      \"use\",\n      \"def\",\n      \"nocase\",\n      \"case\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/skills#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/skmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"xfrac\"\n    },\n    {\n      \"name\": \"isomath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"N\",\n      \"if\": \"commonsets\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"commonsets\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"commonsets\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"commonsets\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"commonsets\"\n    },\n    {\n      \"name\": \"N\",\n      \"if\": \"commonsets=true\"\n    },\n    {\n      \"name\": \"Z\",\n      \"if\": \"commonsets=true\"\n    },\n    {\n      \"name\": \"Q\",\n      \"if\": \"commonsets=true\"\n    },\n    {\n      \"name\": \"R\",\n      \"if\": \"commonsets=true\"\n    },\n    {\n      \"name\": \"C\",\n      \"if\": \"commonsets=true\"\n    },\n    {\n      \"name\": \"ii\"\n    },\n    {\n      \"name\": \"jj\"\n    },\n    {\n      \"name\": \"ee\"\n    },\n    {\n      \"name\": \"norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norm{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"abs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abs{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:var%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pd{${1:func%formula}}{${2:var1,var2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"pd*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pd*{${1:func%formula}}{${2:var1,var2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"td\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"td{${1:func%formula}}{${2:var1,var2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"E\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"E{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"P\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"P{${1:<expr1>\\\\given<expr2>}}\"\n      }\n    },\n    {\n      \"name\": \"var\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"var{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cov\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cov{${1:expr1%formula}}{${2:expr2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sin{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sin[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arcsin{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arcsin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arcsin[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cos{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cos[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arccos{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arccos\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arccos[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tan{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tan[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arctan{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arctan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arctan[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cot{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cot[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sinh{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sinh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sinh[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cosh{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"cosh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cosh[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tanh{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tanh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tanh[${2:power%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ln{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"log\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"log{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"log\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"log[${2:base%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"exp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exp{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"exp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exp*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"min\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"min{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"min\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"min[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"min*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"min*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"min*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"min*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argmin{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"argmin[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argmin*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"argmin*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"max\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"max{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"max\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"max[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"max*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"max*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"max*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"max*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argmax{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmax\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"argmax[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmax*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"argmax*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argmax*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"argmax*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sup{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sup[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sup*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sup*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sup*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sup*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inf{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inf[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inf*{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"inf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inf*[${2:domain%formula}]{${1:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Re\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Re{${1:expr%formula}}\"\n      },\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"Im\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Im{${1:expr%formula}}\"\n      },\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/skmath#c\": [\n      \"commonsets\",\n      \"notation=${1|iso,english,german,legacy|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/skmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/skt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"skt\"\n    },\n    {\n      \"name\": \"sktb\"\n    },\n    {\n      \"name\": \"sktbs\"\n    },\n    {\n      \"name\": \"sktf\"\n    },\n    {\n      \"name\": \"sktfs\"\n    },\n    {\n      \"name\": \"skti\"\n    },\n    {\n      \"name\": \"sktI\"\n    },\n    {\n      \"name\": \"skts\"\n    },\n    {\n      \"name\": \"sktt\"\n    },\n    {\n      \"name\": \"sktT\"\n    },\n    {\n      \"name\": \"sktu\"\n    },\n    {\n      \"name\": \"sktU\"\n    },\n    {\n      \"name\": \"sktx\"\n    },\n    {\n      \"name\": \"sktX\"\n    },\n    {\n      \"name\": \"SKTBOXA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SKTBOXB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sktcommon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SKTDIMH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SKTDIMS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SKTDIMV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSKTCNTS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSKTCNTX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSKTCNTY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSKTCNTZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZA{${1:diacritic code}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZB{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZC{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZD{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZF{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZH{${1:factor}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZK\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZK{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZL{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZM{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZN{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ZP{${1:x}}{${2:y}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"ZR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ZR{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"ZS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZS{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ZT{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ZV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZV{${1:factor}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZW\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZW{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZX{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZY{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ZZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZZ{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/skt#c\": [\n      \"xitalic\",\n      \"iitalic\",\n      \"titalic\",\n      \"uitalic\",\n      \"larger\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/skt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/skull.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"skull\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/slantsc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scitdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scsldefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noscshape\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/slashbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"backslashbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"backslashbox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"backslashbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"backslashbox[${3:width}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"backslashbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"backslashbox[${3:width}][${4:trim%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\backslashbox,\\\\slashbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"slashbox{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"slashbox[${3:width}]{${1:left%text}}{${2:right%text}}\"\n      }\n    },\n    {\n      \"name\": \"slashbox\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"slashbox[${3:width}][${4:trim%keyvals}]{${1:left%text}}{${2:right%text}}\",\n        \"keys\": [\n          \"\\\\backslashbox,\\\\slashbox\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\backslashbox,\\\\slashbox\": [\n      \"l\",\n      \"r\",\n      \"lr\",\n      \"rl\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/slashed.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"slashed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slashed{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"declareslashed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"declareslashed{${1:prefix%formula}}{${2:slash symbol}}{${3:shift right}}{${4:shift up}}{${5:symbol%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/slemph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"itswitch\"\n    },\n    {\n      \"name\": \"slswitch\"\n    },\n    {\n      \"name\": \"textitswitch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textitswitch{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textslswitch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textslswitch{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sltables.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    },\n    {\n      \"name\": \"vt\"\n    },\n    {\n      \"name\": \"vtt\"\n    },\n    {\n      \"name\": \"vttt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vttt{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"vtr\"\n    },\n    {\n      \"name\": \"vttr\"\n    },\n    {\n      \"name\": \"vtttr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtttr{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"stpar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stpar{${1:dimen%l}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"el\"\n    },\n    {\n      \"name\": \"elt\"\n    },\n    {\n      \"name\": \"eltt\"\n    },\n    {\n      \"name\": \"elttt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elttt{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"elspec\"\n    },\n    {\n      \"name\": \"trule\"\n    },\n    {\n      \"name\": \"ttrule\"\n    },\n    {\n      \"name\": \"tttrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tttrule{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"borderrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emultirow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"estpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"estparrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablesborderthin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablesin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablesinternalthin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablesomit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstablesright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internalrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablelinehelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablemodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablemodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesborderthinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesborderthintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesborderwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablescount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesdummy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesdummyc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesinternalthinfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesinternalthintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesinternalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesintrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stableslines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stableslineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stableslineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stableslinet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesmultiplehelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesomitfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesomittrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesrightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesrighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestemp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesthickline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablesthinline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestrutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestrutsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stablestylehelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stmultispan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stmultispan{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"stspan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"stable\"\n    },\n    {\n      \"name\": \"stableto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"stablesp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stretch}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/smalltableof.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"chapterNoNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterNoNumber{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectionNoNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionNoNumber{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"toc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toc{${1:extension de la table}}\"\n      }\n    },\n    {\n      \"name\": \"tablesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sectiontable{${1:title}}{${2:extension de la table}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontableoffigure\"\n    },\n    {\n      \"name\": \"sectiontableoftable\"\n    },\n    {\n      \"name\": \"tablechapter\"\n    },\n    {\n      \"name\": \"stdtables\"\n    },\n    {\n      \"name\": \"mabibliographie\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mabibliographie{${1:bibstyle}}{${2:bib file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/smart-eqn.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"smesetsym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smesetsym{${1:style csname}}{${2:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"smeclearsym\"\n    },\n    {\n      \"name\": \"makeatmath\"\n    },\n    {\n      \"name\": \"smenewenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smenewenv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"smeraw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smeraw{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"smeDefineVerbatimEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"smeDefineVerbatimEnvironment{${1:envname}}{${2:env type}}{${3:options}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/smartdiagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"smartdiagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smartdiagram[${2:type%keyvals}]{${1:list of items}}\",\n        \"keys\": [\n          \"\\\\smartdiagram,\\\\smartdiagramanimated,\\\\smartdiagramadd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smartdiagramanimated\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"smartdiagramanimated[${2:type%keyvals}]{${1:list of items}}\",\n        \"keys\": [\n          \"\\\\smartdiagram,\\\\smartdiagramanimated,\\\\smartdiagramadd\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usesmartdiagramlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usesmartdiagramlibrary{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"smartdiagramadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"smartdiagramadd[${3:type%keyvals}]{${1:list of items}}{${2:list of additions}}\"\n      }\n    },\n    {\n      \"name\": \"smartdiagramconnect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"smartdiagramconnect{${1:arrow options}}{${2:start module/end module}}\"\n      }\n    },\n    {\n      \"name\": \"smartdiagramset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartdiagramset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\smartdiagramset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\smartdiagram,\\\\smartdiagramanimated,\\\\smartdiagramadd\": [\n      \"circular diagram\",\n      \"circular diagram:clockwise\",\n      \"flow diagram\",\n      \"flow diagram:horizontal\",\n      \"descriptive diagram\",\n      \"priority descriptive diagram\",\n      \"bubble diagram\",\n      \"constellation diagram\",\n      \"connected constellation diagram\",\n      \"sequence diagram\"\n    ],\n    \"\\\\usesmartdiagramlibrary#c\": [\n      \"additions\"\n    ],\n    \"\\\\smartdiagramset#c\": [\n      \"set color list={${1:color1,color2,...}}\",\n      \"uniform color list=\",\n      \"use predefined color list\",\n      \"insert decoration=\",\n      \"arrow line width=\",\n      \"arrow tip=\",\n      \"arrow style=\",\n      \"uniform arrow color\",\n      \"arrow color=\",\n      \"module minimum width=\",\n      \"module minimum height=\",\n      \"module y sep=\",\n      \"module x sep=\",\n      \"module shape=\",\n      \"text width=\",\n      \"font=${1:cmd}\",\n      \"border color=\",\n      \"text color=\",\n      \"circular distance=\",\n      \"back arrow distance=\",\n      \"back arrow disabled\",\n      \"circular final arrow disabled\",\n      \"descriptive items y sep=\",\n      \"description title width=\",\n      \"description title text width=\",\n      \"description text width=\",\n      \"description title font=${1:cmd}\",\n      \"description font=${1:cmd}\",\n      \"description width=\",\n      \"priority arrow width=\",\n      \"priority arrow head extend=\",\n      \"priority tick size=\",\n      \"priority arrow height advance=\",\n      \"bubble center node size=\",\n      \"bubble center node font=${1:cmd}\",\n      \"bubble center node color=\",\n      \"distance center/other bubbles=\",\n      \"distance text center bubble=\",\n      \"bubble fill opacity=\",\n      \"bubble node size=\",\n      \"bubble text opacity=\",\n      \"bubble node font=${1:cmd}\",\n      \"planet size=\",\n      \"planet color=\",\n      \"planet font=${1:cmd}\",\n      \"distance planet-connection=\",\n      \"distance planet-text=\",\n      \"planet text width=\",\n      \"satellite size=\",\n      \"satellite font=${1:cmd}\",\n      \"satellite fill opacity=\",\n      \"satellite text opacity=\",\n      \"satellite text width=\",\n      \"distance satellite-connection=\",\n      \"connection line width=\",\n      \"distance planet-satellite=\",\n      \"uniform connection color\",\n      \"connection color=\",\n      \"sequence item height=\",\n      \"sequence item width=\",\n      \"sequence item border color=\",\n      \"sequence item border size=\",\n      \"sequence item font size=\",\n      \"sequence item fill opacity=\",\n      \"sequence item text opacity=\",\n      \"sequence item text width=\",\n      \"sequence item text color=\",\n      \"uniform sequence color\",\n      \"sequence item uniform color=\",\n      \"additions={${1:specs}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/smartref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newnamelabel\",\n      \"if\": \"byname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"byname\",\n      \"if\": \"byname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"byname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"byshortname\",\n      \"if\": \"byname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"byshortname{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetequationval\",\n      \"if\": \"equation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetequationval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"equationref\",\n      \"if\": \"equation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifequationchanged\",\n      \"if\": \"equation\"\n    },\n    {\n      \"name\": \"isequationchanged\",\n      \"if\": \"equation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isequationchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sequationref\",\n      \"if\": \"equation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefequationref\",\n      \"if\": \"equation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefequationref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetfigureval\",\n      \"if\": \"figure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetfigureval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"figureref\",\n      \"if\": \"figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"iffigurechanged\",\n      \"if\": \"figure\"\n    },\n    {\n      \"name\": \"isfigurechanged\",\n      \"if\": \"figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isfigurechanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sfigureref\",\n      \"if\": \"figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfigureref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sreffigureref\",\n      \"if\": \"figure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sreffigureref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetfootnoteval\",\n      \"if\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetfootnoteval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteref\",\n      \"if\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"iffootnotechanged\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"isfootnotechanged\",\n      \"if\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isfootnotechanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sfootnoteref\",\n      \"if\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sfootnoteref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sreffootnoteref\",\n      \"if\": \"footnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sreffootnoteref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetparagraphval\",\n      \"if\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetparagraphval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphref\",\n      \"if\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifparagraphchanged\",\n      \"if\": \"paragraph\"\n    },\n    {\n      \"name\": \"isparagraphchanged\",\n      \"if\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isparagraphchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sparagraphref\",\n      \"if\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparagraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefparagraphref\",\n      \"if\": \"paragraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefparagraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetpartval\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetpartval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifpartchanged\",\n      \"if\": \"part\"\n    },\n    {\n      \"name\": \"ispartchanged\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ispartchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"spartref\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"shortpartname\",\n      \"if\": \"part\"\n    },\n    {\n      \"name\": \"srefpartref\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefpartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"smartref\",\n      \"if\": \"part\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetsectionval\",\n      \"if\": \"section\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetsectionval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"sectionref\",\n      \"if\": \"section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifsectionchanged\",\n      \"if\": \"section\"\n    },\n    {\n      \"name\": \"issectionchanged\",\n      \"if\": \"section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issectionchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssectionref\",\n      \"if\": \"section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefsectionref\",\n      \"if\": \"section\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetsubparagraphval\",\n      \"if\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetsubparagraphval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"subparagraphref\",\n      \"if\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subparagraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifsubparagraphchanged\",\n      \"if\": \"subparagraph\"\n    },\n    {\n      \"name\": \"issubparagraphchanged\",\n      \"if\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issubparagraphchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssubparagraphref\",\n      \"if\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssubparagraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefsubparagraphref\",\n      \"if\": \"subparagraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefsubparagraphref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetsubsectionval\",\n      \"if\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetsubsectionval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionref\",\n      \"if\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifsubsectionchanged\",\n      \"if\": \"subsection\"\n    },\n    {\n      \"name\": \"issubsectionchanged\",\n      \"if\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issubsectionchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssubsectionref\",\n      \"if\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssubsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefsubsectionref\",\n      \"if\": \"subsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefsubsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetsubsubsectionval\",\n      \"if\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetsubsubsectionval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectionref\",\n      \"if\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifsubsubsectionchanged\",\n      \"if\": \"subsubsection\"\n    },\n    {\n      \"name\": \"issubsubsectionchanged\",\n      \"if\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issubsubsectionchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssubsubsectionref\",\n      \"if\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssubsubsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"srefsubsubsectionref\",\n      \"if\": \"subsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefsubsubsectionref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgettableval\",\n      \"if\": \"table\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgettableval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"if\": \"table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"iftablechanged\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"istablechanged\",\n      \"if\": \"table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"istablechanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"stableref\",\n      \"if\": \"table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sreftableref\",\n      \"if\": \"table\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sreftableref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetchapterval\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetchapterval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"chapterref\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ifchapterchanged\",\n      \"if\": \"chapter\"\n    },\n    {\n      \"name\": \"ischapterchanged\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ischapterchanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"schapterref\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"schapterref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"shortchaptername\",\n      \"if\": \"chapter\"\n    },\n    {\n      \"name\": \"srefchapterref\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefchapterref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"smartref\",\n      \"if\": \"chapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smartref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sgetpageval\",\n      \"if\": \"page\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sgetpageval{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"ifpagechanged\",\n      \"if\": \"page\"\n    },\n    {\n      \"name\": \"ispagechanged\",\n      \"if\": \"page\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ispagechanged{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"spageref\",\n      \"if\": \"page\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"shortpagename\",\n      \"if\": \"page\"\n    },\n    {\n      \"name\": \"srefpageref\",\n      \"if\": \"page\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srefpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"addtoreflist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoreflist{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"newsmartlabel\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/smartref#c\": [\n      \"byname\",\n      \"${1:counter}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/smartref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/smartunits.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SmartUnit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SmartUnit{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\SmartUnit,\\\\SmartUnitSettings\",\n          \"\\\\SmartUnit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SmartUnitSettings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SmartUnitSettings{${1:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\SmartUnit,\\\\SmartUnitSettings\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\SmartUnit,\\\\SmartUnitSettings\": [\n      \"metric\",\n      \"imperial\",\n      \"metric imperial\",\n      \"imperial metric\",\n      \"figures=${1:integer}\",\n      \"places=${1:integer}\",\n      \"uk\",\n      \"usa\"\n    ],\n    \"\\\\SmartUnit\": [\n      \"km=${1:number}\",\n      \"miles=${1:number}\",\n      \"mi=${1:number}\",\n      \"cm=${1:number}\",\n      \"inches=${1:number}\",\n      \"feet=${1:number}\",\n      \"celsius=${1:number}\",\n      \"C=${1:number}\",\n      \"fahrenheit=${1:number}\",\n      \"F=${1:number}\",\n      \"hours=${1:number}\",\n      \"minutes=${1:number}\",\n      \"seconds=${1:number}\",\n      \"am\",\n      \"pm\",\n      \"L=${1:number}\",\n      \"l=${1:number}\",\n      \"gal=${1:number}\",\n      \"gallons=${1:number}\",\n      \"kg=${1:number}\",\n      \"pounds=${1:number}\",\n      \"pound=${1:number}\",\n      \"lbs=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/smfthm.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"NoSwapTheoremNumbers\"\n    },\n    {\n      \"name\": \"NumberTheoremsAs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberTheoremsAs{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"NumberTheoremsIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumberTheoremsIn{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SwapTheoremNumbers\"\n    },\n    {\n      \"name\": \"thesmfthm\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theo\"\n    },\n    {\n      \"name\": \"theo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"prop\"\n    },\n    {\n      \"name\": \"prop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"conj\"\n    },\n    {\n      \"name\": \"conj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"coro\"\n    },\n    {\n      \"name\": \"coro\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemm\"\n    },\n    {\n      \"name\": \"lemm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"defi\"\n    },\n    {\n      \"name\": \"defi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"rema\"\n    },\n    {\n      \"name\": \"rema\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"exem\"\n    },\n    {\n      \"name\": \"exem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"enonce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theorem name}}\"\n      }\n    },\n    {\n      \"name\": \"enonce*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:theorem name}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/snapshot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SpecialInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SpecialInput{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/snaptodo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzpagenodes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"snaptodo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"snaptodo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"snaptodo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"snaptodo[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\snaptodo,\\\\snaptodoset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"snaptodoset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"snaptodoset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\snaptodo,\\\\snaptodoset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\snaptodo,\\\\snaptodoset\": [\n      \"call chain/.style={${1:TikZ styles}}\",\n      \"margin block/.style={${1:TikZ styles}}\",\n      \"block sep=\",\n      \"chain sep=\",\n      \"chain bias=\",\n      \"block rise=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/snotez.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"perpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenote[${2:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"sidenote(${2:offset}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"sidenote(${3:offset})[${2:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenote\",\n      \"if\": \"dblarg=true\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sidenote[${2:offset}][${3:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sidenotemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sidenotemark[${1:mark}]\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sidenotetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sidenotetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sidenotetext[${2:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newsnotezfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsnotezfloat{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"newsnotezfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsnotezfloat[${2:code}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setsidenotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsidenotes{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsidenotes\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sidefigure\"\n    },\n    {\n      \"name\": \"sidetable\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\setsidenotes\": [\n      \"dblarg\",\n      \"marginnote\",\n      \"text-format=${1:code}\",\n      \"text-format+=${1:code}\",\n      \"perpage\",\n      \"perchapter\",\n      \"note-mark-sep=${1:code}\",\n      \"note-mark-format=${1:code}\",\n      \"text-mark-format=${1:code}\",\n      \"footnote\",\n      \"sidefloat-format=${1:code}\",\n      \"sidefloat-format+=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sobolev.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"H\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"H{${1:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"H\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"H{${1:sup%formula}}[${2:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Hdiv\"\n    },\n    {\n      \"name\": \"Hdiv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hdiv[${1:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"L\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"L{${1:sup%formula}}\"\n      }\n    },\n    {\n      \"name\": \"W\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"W{${1:sup1%formula}}{${2:sup2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"Norm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Norm{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Norm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Norm{${1:arg%formula}}[${2:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"SemiNorm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SemiNorm{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SemiNorm\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"SemiNorm{${1:arg%formula}}[${2:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Scalar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Scalar{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Scalar\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Scalar{${1:arg1%formula}}{${2:arg2%formula}}[${3:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Crochet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Crochet{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Crochet\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"Crochet{${1:arg1%formula}}{${2:arg2%formula}}[${3:sub%formula}]\"\n      }\n    },\n    {\n      \"name\": \"DefaultSet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefaultSet{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"NoDefaultSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HAccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HAccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Lbar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sobolev#c\": [\n      \"DivAsExponent\",\n      \"DivInBrackets\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sobolev#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/software-biblatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xurl\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\": [\n      \"halid\",\n      \"swhid\",\n      \"shortswhid\",\n      \"swlabels\",\n      \"vcs\",\n      \"license\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/biblatex#c,\\\\ExecuteBibliographyOptions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/solvesudoku.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"printsudoku\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sudokusolve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sudokusolve{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"getproblem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getproblem{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"reduceallcells\"\n    },\n    {\n      \"name\": \"keepreducing\"\n    },\n    {\n      \"name\": \"writegame\"\n    },\n    {\n      \"name\": \"sudsolnfile\"\n    },\n    {\n      \"name\": \"numcluesctr\"\n    },\n    {\n      \"name\": \"difficultyctr\"\n    },\n    {\n      \"name\": \"checkboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkcols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkkeepon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checkrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checksetforpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checksetforpair{${1:set}}\"\n      }\n    },\n    {\n      \"name\": \"checksimplereductions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checksolution\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commentary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"commentary{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"createsudsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deleteboxpairdigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deleteboxpairdigits{${1:boxcell}}\"\n      }\n    },\n    {\n      \"name\": \"deletecolpairdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deletenumfromset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"deletenumfromset{${1:digit}}{${2:set}}{${3:cnt}}\"\n      }\n    },\n    {\n      \"name\": \"deleterowpairdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaystatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"findboxpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"findboxpair{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"findcolpair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"findrowpair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fixentry\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gatherline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gatherline{${1:rowstartcell}}\"\n      }\n    },\n    {\n      \"name\": \"getloner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getloner{${1:setsum}}{${2:cnt}}\"\n      }\n    },\n    {\n      \"name\": \"getnthboxcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getnthboxcell{${1:n}}{${2:firstcell}}{${3:cnt}}\"\n      }\n    },\n    {\n      \"name\": \"hideprogress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initialisesuddata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initialsoln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keepreducingcells\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newknt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newknt{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"numofnuminset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"numofnuminset{${1:digit}}{${2:set}}{${3:cnt}}\"\n      }\n    },\n    {\n      \"name\": \"reduceaboxpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reduceaboxpair{${1:boxcell}}\"\n      }\n    },\n    {\n      \"name\": \"reduceacell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reduceacolpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reduceacolpair{${1:colcell}}\"\n      }\n    },\n    {\n      \"name\": \"reducearowpair\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reducearowpair{${1:rowcell}}\"\n      }\n    },\n    {\n      \"name\": \"reducebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducebox{${1:box}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reduceboxloners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reduceboxpairs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducecol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducecol{${1:col}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reducecolloners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducecolpairs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducelonerboxcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducelonerboxcell{${1:boxcell}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reducelonercolcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducelonercolcell{${1:colcell}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reducelonerrowcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducelonerrowcell{${1:rowcell}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reduceloners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducepairs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducerow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reducerow{${1:row}}{${2:digit}}\"\n      }\n    },\n    {\n      \"name\": \"reducerowloners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reducerowpairs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"settonum{${1:set}}{${2:cnt}}\"\n      }\n    },\n    {\n      \"name\": \"showprogress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sudaline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumboxsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumcolsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumrowsets\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typelonestatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typelonestatusX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesimplestatus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesimplestatusX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useknt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useknt{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/somedefs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"UseAllDefinitions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseSomeDefinitions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseDefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseDefinition{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesDefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesDefinition{${1:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/songbook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"conditionals\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"multicol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CBExcl\"\n    },\n    {\n      \"name\": \"OHExcl\"\n    },\n    {\n      \"name\": \"WBExcl\"\n    },\n    {\n      \"name\": \"WOExcl\"\n    },\n    {\n      \"name\": \"CBPageBrk\"\n    },\n    {\n      \"name\": \"Ch\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ch{${1:chord}}{${2:syllable}}\"\n      }\n    },\n    {\n      \"name\": \"Chr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Chr{${1:chord}}{${2:syllable}}\"\n      }\n    },\n    {\n      \"name\": \"ChX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChX{${1:chord}}{${2:syllable}}\"\n      }\n    },\n    {\n      \"name\": \"CSColBrk\"\n    },\n    {\n      \"name\": \"makeArtistIndex\"\n    },\n    {\n      \"name\": \"artistIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"artistIndex{${1:artist}}{${2:title and number%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeKeyIndex\"\n    },\n    {\n      \"name\": \"keyIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keyIndex{${1:key and title%text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"makeTitleContents\"\n    },\n    {\n      \"name\": \"titleContents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleContents{${1:number}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeTitleContentsSkip\"\n    },\n    {\n      \"name\": \"titleContentsSkip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleContentsSkip{${1:number}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"makeTitleIndex\"\n    },\n    {\n      \"name\": \"titleIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleIndex{${1:title%text}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"NotWOPageBrk\"\n    },\n    {\n      \"name\": \"OHContPgFtr\"\n    },\n    {\n      \"name\": \"OHContPgHdr\"\n    },\n    {\n      \"name\": \"OHPageBrk\"\n    },\n    {\n      \"name\": \"SBBridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SBBridge{${1:bridge}}\"\n      }\n    },\n    {\n      \"name\": \"SBEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SBEnd{${1:ending%text}}\"\n      }\n    },\n    {\n      \"name\": \"SBEnd\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SBEnd[${2:words-only}]{${1:ending%text}}\"\n      }\n    },\n    {\n      \"name\": \"SBIntro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SBIntro{${1:intro%text}}\"\n      }\n    },\n    {\n      \"name\": \"SBIntro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SBIntro[${2:words-only}]{${1:intro%text}}\"\n      }\n    },\n    {\n      \"name\": \"SBMargNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SBMargNote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SBRef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SBRef{${1:book title%text}}{${2:page or song number}}\"\n      }\n    },\n    {\n      \"name\": \"SBem\"\n    },\n    {\n      \"name\": \"SBen\"\n    },\n    {\n      \"name\": \"STitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STitle{${1:song title%text}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"WBPageBrk\"\n    },\n    {\n      \"name\": \"WOPageBrk\"\n    },\n    {\n      \"name\": \"CpyRt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CpyRt{${1:copyright info%text}}\"\n      }\n    },\n    {\n      \"name\": \"FLineIdx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FLineIdx{${1:first line%text}}\"\n      }\n    },\n    {\n      \"name\": \"SBChorusMarkright\"\n    },\n    {\n      \"name\": \"SBContinueMark\"\n    },\n    {\n      \"name\": \"SBSectionMarkright\"\n    },\n    {\n      \"name\": \"SBVerseMarkright\"\n    },\n    {\n      \"name\": \"SongMarkboth\"\n    },\n    {\n      \"name\": \"STitleMarkboth\"\n    },\n    {\n      \"name\": \"ScriptRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ScriptRef{${1:scripture address}}\"\n      }\n    },\n    {\n      \"name\": \"WAndM\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WAndM{${1:lyricist and composer}}\"\n      }\n    },\n    {\n      \"name\": \"ifSBinSongEnv\"\n    },\n    {\n      \"name\": \"SBinSongEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBinSongEnvfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifChordBk\"\n    },\n    {\n      \"name\": \"ChordBktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChordBkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifOverhead\"\n    },\n    {\n      \"name\": \"Overheadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overheadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifWordBk\"\n    },\n    {\n      \"name\": \"WordBktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WordBkfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifWordsOnly\"\n    },\n    {\n      \"name\": \"WordsOnlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WordsOnlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNotWordsOnly\"\n    },\n    {\n      \"name\": \"NotWordsOnlytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NotWordsOnlyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCompactSongMode\"\n    },\n    {\n      \"name\": \"CompactSongModetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CompactSongModefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSongEject\"\n    },\n    {\n      \"name\": \"SongEjecttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SongEjectfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCompactAllMode\"\n    },\n    {\n      \"name\": \"CompactAllModetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CompactAllModefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifExcludeSong\"\n    },\n    {\n      \"name\": \"ExcludeSongtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExcludeSongfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPrintAllSongs\"\n    },\n    {\n      \"name\": \"PrintAllSongstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintAllSongsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSamepageMode\"\n    },\n    {\n      \"name\": \"SamepageModetrue\"\n    },\n    {\n      \"name\": \"SamepageModefalse\"\n    },\n    {\n      \"name\": \"ifSBpaperAfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperAfourtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperAfourfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSBpaperAfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperAfivetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperAfivefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSBpaperBfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperBfivetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperBfivefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSBpaperLtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperLtrtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperLtrfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSBpaperLgl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperLgltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperLglfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSBpaperExc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperExctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBpaperExcfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSBSongCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSBSectionCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theSBVerseCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"HangAmt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeftMarginSBBracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeftMarginSBChorus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeftMarginSBSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LeftMarginSBVerse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBChordRaise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBRuleRaiseAmount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAboveSTitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterTitleBlk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterChorus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterOpGroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterSection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterSBBracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterSong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceAfterVerse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SpaceBeforeSBBracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OHContPgFtrTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OHContPgHdrTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBBaseLang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBBridgeTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBChorusTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBContinueTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBEndTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBIntersyllableRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBIntroTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBPubDom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBUnknownTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBWAndMTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChBassFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChBkFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CpyRtFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CpyRtInfoFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBBracketTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBBridgeTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBChorusTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBDefaultFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBEndTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBIntroTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBLyricNoteFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBMargNoteFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBOccursBrktFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBOccursTagFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBRefFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBVerseNumberFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SBSectionNumberFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STitleFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STitleKeyFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STitleNumberFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScriptRefFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WandMFont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"SBBracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"SBBracket*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"SBChorus\"\n    },\n    {\n      \"name\": \"SBChorus*\"\n    },\n    {\n      \"name\": \"SBExtraKeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:song content}}\"\n      }\n    },\n    {\n      \"name\": \"SBOccurs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:occurrences}}\"\n      }\n    },\n    {\n      \"name\": \"SBOpGroup\"\n    },\n    {\n      \"name\": \"SBSection\"\n    },\n    {\n      \"name\": \"SBSection*\"\n    },\n    {\n      \"name\": \"SBVerse\"\n    },\n    {\n      \"name\": \"SBVerse*\"\n    },\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:key%plain}}{${3:copyright%text}}{${4:names}}{${5:scriptureref}}{${6:licensing%text}}\"\n      }\n    },\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"[${7:format string}]{${1:title%text}}{${2:key%plain}}{${3:copyright%text}}{${4:names}}{${5:scriptureref}}{${6:licensing%text}}\"\n      }\n    },\n    {\n      \"name\": \"songTranslation\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"{${1:language}}{${2:title%text}}{${3:permission%text}}{${4:performer}}\"\n      }\n    },\n    {\n      \"name\": \"xlatn\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:title%text}}{${2:permission%text}}{${3:performer}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/songbook#c\": [\n      \"compactallsongs\",\n      \"printallsongs\",\n      \"chordbk\",\n      \"wordbk\",\n      \"overhead\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/songbook#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/songproj.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verse\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"longest\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longest{${1:song line}}\"\n      }\n    },\n    {\n      \"name\": \"numbercouplets\"\n    },\n    {\n      \"name\": \"inputsong\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputsong{${1:file}}{${2:stanzas per slide}}\"\n      }\n    },\n    {\n      \"name\": \"inputsong\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"inputsong{${1:file}}{${2:stanzas per slide}}[${3:couplet list}]\"\n      }\n    },\n    {\n      \"name\": \"inputsong*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inputsong*{${1:file}}{${2:stanzas per slide}}\"\n      }\n    },\n    {\n      \"name\": \"inputsong*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"inputsong*{${1:file}}{${2:stanzas per slide}}[${3:couplet list}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stanzas per slide}}\"\n      }\n    },\n    {\n      \"name\": \"song\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:stanzas per slide}}[${2:couplet list}]\"\n      }\n    },\n    {\n      \"name\": \"intro\"\n    },\n    {\n      \"name\": \"refrain\"\n    },\n    {\n      \"name\": \"couplet\"\n    },\n    {\n      \"name\": \"final\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/songs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chordson\"\n    },\n    {\n      \"name\": \"chordsoff\"\n    },\n    {\n      \"name\": \"slides\"\n    },\n    {\n      \"name\": \"measureson\"\n    },\n    {\n      \"name\": \"measuresoff\"\n    },\n    {\n      \"name\": \"indexeson\"\n    },\n    {\n      \"name\": \"indexesoff\"\n    },\n    {\n      \"name\": \"scriptureon\"\n    },\n    {\n      \"name\": \"scriptureoff\"\n    },\n    {\n      \"name\": \"includeonlysongs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeonlysongs{${1:songlist}}\"\n      }\n    },\n    {\n      \"name\": \"beginsong\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginsong{${1:titles%text}}\"\n      }\n    },\n    {\n      \"name\": \"beginsong\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"beginsong{${1:titles%text}}[${2:otherinfo%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"endsong\"\n    },\n    {\n      \"name\": \"setlicense\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlicense{${1:license}}\"\n      }\n    },\n    {\n      \"name\": \"beginverse\"\n    },\n    {\n      \"name\": \"beginverse*\"\n    },\n    {\n      \"name\": \"endverse\"\n    },\n    {\n      \"name\": \"beginchorus\"\n    },\n    {\n      \"name\": \"endchorus\"\n    },\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:chordname}]\"\n      }\n    },\n    {\n      \"name\": \"nolyrics\"\n    },\n    {\n      \"name\": \"DeclareLyricChar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLyricChar{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNonLyric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNonLyric{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNoHyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNoHyphen{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"MultiwordChords\"\n    },\n    {\n      \"name\": \"shrp\"\n    },\n    {\n      \"name\": \"flt\"\n    },\n    {\n      \"name\": \"memorize\"\n    },\n    {\n      \"name\": \"memorize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"memorize[${1:regname}]\"\n      }\n    },\n    {\n      \"name\": \"newchords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newchords{${1:regname}}\"\n      }\n    },\n    {\n      \"name\": \"replay\"\n    },\n    {\n      \"name\": \"replay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"replay[${1:regname}]\"\n      }\n    },\n    {\n      \"name\": \"repchoruses\"\n    },\n    {\n      \"name\": \"norepchoruses\"\n    },\n    {\n      \"name\": \"brk\"\n    },\n    {\n      \"name\": \"nextcol\"\n    },\n    {\n      \"name\": \"sclearpage\"\n    },\n    {\n      \"name\": \"scleardpage\"\n    },\n    {\n      \"name\": \"echo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"echo{${1:lyrics and chords}}\"\n      }\n    },\n    {\n      \"name\": \"rep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rep{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"lrep\"\n    },\n    {\n      \"name\": \"rrep\"\n    },\n    {\n      \"name\": \"measurebar\"\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"meter{${1:n}}{${2:d}}\"\n      }\n    },\n    {\n      \"name\": \"mbar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mbar{${1:n}}{${2:d}}\"\n      }\n    },\n    {\n      \"name\": \"textnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"musicnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"musicnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"capo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capo{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"ch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ch{${1:chord}}{${2:pre}}{${3:post}}{${4:full}}\"\n      }\n    },\n    {\n      \"name\": \"mch\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mch{${1:chord}}{${2:pre}}{${3:post}}{${4:full}}\"\n      }\n    },\n    {\n      \"name\": \"gtab\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtab{${1:chord}}{${2:fret:strings:fingering}}\"\n      }\n    },\n    {\n      \"name\": \"transpose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transpose{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"preferflats\"\n    },\n    {\n      \"name\": \"prefersharps\"\n    },\n    {\n      \"name\": \"trchordformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trchordformat{${1:chordname}}{${2:transposed-chordname}}\"\n      }\n    },\n    {\n      \"name\": \"solfedge\"\n    },\n    {\n      \"name\": \"alphascale\"\n    },\n    {\n      \"name\": \"notenames\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"notenames{${1:nameA}}{${2:nameB}}{${3:nameC}}{${4:nameD}}{${5:nameE}}{${6:nameF}}{${7:nameG}}\"\n      }\n    },\n    {\n      \"name\": \"notenamesin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"notenamesin{${1:nameA}}{${2:nameB}}{${3:nameC}}{${4:nameD}}{${5:nameE}}{${6:nameF}}{${7:nameG}}\"\n      }\n    },\n    {\n      \"name\": \"notenamesout\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"notenamesout{${1:nameA}}{${2:nameB}}{${3:nameC}}{${4:nameD}}{${5:nameE}}{${6:nameF}}{${7:nameG}}\"\n      }\n    },\n    {\n      \"name\": \"transposehere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transposehere{${1:chords}}\"\n      }\n    },\n    {\n      \"name\": \"notrans\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notrans{${1:chords}}\"\n      }\n    },\n    {\n      \"name\": \"gtabtrans\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gtabtrans{${1:chord}}{${2:fret:strings:fingering}}\"\n      }\n    },\n    {\n      \"name\": \"beginscripture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginscripture{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"endscripture\"\n    },\n    {\n      \"name\": \"Acolon\"\n    },\n    {\n      \"name\": \"Bcolon\"\n    },\n    {\n      \"name\": \"strophe\"\n    },\n    {\n      \"name\": \"scripindent\"\n    },\n    {\n      \"name\": \"scripoutdent\"\n    },\n    {\n      \"name\": \"songsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songsection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"songchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songchapter{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newindex{${1:id}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"newauthorindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newauthorindex{${1:id}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"newscripindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newscripindex{${1:id}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"showindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showindex{${1:title%text}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"showindex\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showindex[${3:columns}]{${1:title%text}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"indexentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indexentry{${1:lyrics%text}}\"\n      }\n    },\n    {\n      \"name\": \"indexentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indexentry[${2:indexes}]{${1:lyrics%text}}\"\n      }\n    },\n    {\n      \"name\": \"indextitleentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indextitleentry{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"indextitleentry\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"indextitleentry[${2:indexes}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"thesongnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printsongnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printsongnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"songnumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nosongnumbers\"\n    },\n    {\n      \"name\": \"theversenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printversenum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printversenum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"versenumwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noversenumbers\"\n    },\n    {\n      \"name\": \"placeversenum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeversenum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"lyricfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chorusfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meterfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echofont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notebgcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"snumbgcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printchord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printchord{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sharpsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flatsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everychorus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterpreludeskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforepostludeskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselineadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clineparams\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbarheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendprelude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendpostlude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeprelude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepostlude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vvpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vcpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cvpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brkpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sepverses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versejustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chorusjustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"justifyleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"justifycenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"notejustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placenote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scripturefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printscrcite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printscrcite{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifchorded\"\n    },\n    {\n      \"name\": \"iflyric\"\n    },\n    {\n      \"name\": \"ifslides\"\n    },\n    {\n      \"name\": \"ifpartiallist\"\n    },\n    {\n      \"name\": \"ifpartial\"\n    },\n    {\n      \"name\": \"ifsongindexes\"\n    },\n    {\n      \"name\": \"ifmeasures\"\n    },\n    {\n      \"name\": \"ifrawtext\"\n    },\n    {\n      \"name\": \"iftranscapos\"\n    },\n    {\n      \"name\": \"ifnolyrics\"\n    },\n    {\n      \"name\": \"ifpagepreludes\"\n    },\n    {\n      \"name\": \"ifvnumbered\"\n    },\n    {\n      \"name\": \"songcolumns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songcolumns{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"pagepreludes\"\n    },\n    {\n      \"name\": \"colbotglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastcolglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"songpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"songpos{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"spenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sepindexestrue\"\n    },\n    {\n      \"name\": \"sepindexesfalse\"\n    },\n    {\n      \"name\": \"idxheadwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxrefsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxlyricfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxheadfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxbgcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxauthfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxscripfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idxbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxbook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"idxcont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"idxcont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"indexsongsas\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"indexsongsas{${1:id}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"songtarget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"songtarget{${1:level}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"songlink\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"songlink{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"titleprefixword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleprefixword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"authsepword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authsepword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"authbyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authbyword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"authignoreword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authignoreword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"songmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chorusmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newsongkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newsongkey{${1:keyname%specialDef}}{${2:initcode}}{${3:setcode}}\"\n      }\n    },\n    {\n      \"name\": \"newsongkey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"newsongkey{${1:keyname%specialDef}}{${2:initcode}}[${4:default}]{${3:setcode}}\"\n      }\n    },\n    {\n      \"name\": \"chordlocals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shiftdblquotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"shiftdblquotes{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"songauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"songrefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"songcopyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"songlicense\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"songtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettitles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nexttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreachtitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreachtitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"songlist\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"songs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:indexes}}\"\n      }\n    },\n    {\n      \"name\": \"intersong\"\n    },\n    {\n      \"name\": \"intersong*\"\n    },\n    {\n      \"name\": \"songgroup\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/songs#c\": [\n      \"slides\",\n      \"unouter\",\n      \"rawtext\",\n      \"noshading\",\n      \"noindexes\",\n      \"nopdfindex\",\n      \"chorded\",\n      \"lyric\",\n      \"showmeasures\",\n      \"nomeasures\",\n      \"transposecapos\",\n      \"noscripture\",\n      \"twosongcolumns\",\n      \"onesongcolumn\"\n    ],\n    \"\\\\beginsong\": [\n      \"by={${1:authors}}\",\n      \"cr={${1:copyright}}\",\n      \"li={${1:license}}\",\n      \"sr={${1:refs}}\",\n      \"index={${1:lyrics}}\",\n      \"ititle={${1:title}}\",\n      \"%newsongkey\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/songs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/soul.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"so\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"so{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textso{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"caps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcaps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcaps{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"capsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textul{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"st\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"st{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textst\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texthl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"soulaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soulaccent{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"soulregister\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"soulregister{${1:cmd}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"soulomit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"soulomit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sloppyword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sloppyword{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sodef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sodef{${1:cmd}}{${2:font}}{${3:innerletter%l}}{${4:inner%l}}{${5:outer%l}}\"\n      }\n    },\n    {\n      \"name\": \"resetso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"capsdef{${1:enc/fam/series/shape/size}}{${2:optcmd}}{${3:innerletter%l}}{${4:inner%l}}{${5:outer%l}}\"\n      }\n    },\n    {\n      \"name\": \"capssave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capssave{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"capsselect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capsselect{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"capsreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capsdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setul{${1:ul-depth%l}}{${2:ul-thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"resetul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuldepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuldepth{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"setuloverlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuloverlap{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"setulcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setulcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setstcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"sethlcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethlcolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/soul#c\": [\n      \"capsdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/soul#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/soulpos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soulutf8\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ulposdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ulposdef{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ulposdef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ulposdef{${1:cmd}}[${3:options%keyvals}]{${2:definition}}\",\n        \"keys\": [\n          \"\\\\ulposdef\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"ifulstarttype\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifulstarttype{${1:type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifulendtype\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifulendtype{${1:type}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ulstarttype\"\n    },\n    {\n      \"name\": \"ulendtype\"\n    },\n    {\n      \"name\": \"ulpostolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ulposdef\": [\n      \"xoffset=\",\n      \"xoffset-start=\",\n      \"xoffset-end=\",\n      \"gap=\",\n      \"gap-start=\",\n      \"gap-end=\",\n      \"hyphens=${1|include,exclude|}\",\n      \"overdraw\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/soulutf8.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/soulutf8#c\": [\n      \"capsdefault\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/soulutf8#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/soup.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hideinsoup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hideinsoup{${1:x}}{${2:y}}{${3:dir}}{${4:seq}}\"\n      }\n    },\n    {\n      \"name\": \"hideinsoup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"hideinsoup{${1:x}}{${2:y}}{${3:dir}}{${4:seq}}[${5:clue}]\"\n      }\n    },\n    {\n      \"name\": \"hideinsoup*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hideinsoup*{${1:x}}{${2:y}}{${3:dir}}{${4:seq}}\"\n      }\n    },\n    {\n      \"name\": \"hideinsoup*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"hideinsoup*{${1:x}}{${2:y}}{${3:dir}}{${4:seq}}[${5:clue}]\"\n      }\n    },\n    {\n      \"name\": \"highlightinsoup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"highlightinsoup{${1:x1}}{${2:y1}}{${3:x2}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"listofclues\"\n    },\n    {\n      \"name\": \"listofclues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listofclues[${1:format}]\"\n      }\n    },\n    {\n      \"name\": \"theclue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"alphabetsoup\"\n    },\n    {\n      \"name\": \"alphabetsoup\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:width}][${2:height}][${3:font}]\"\n      }\n    },\n    {\n      \"name\": \"alphabetsoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"alphabetsoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[][][]\",\n        \"snippet\": \"*[${1:width}][${2:height}][${3:font}]\"\n      }\n    },\n    {\n      \"name\": \"Alphabetsoup\"\n    },\n    {\n      \"name\": \"Alphabetsoup\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"[${1:width}][${2:height}][${3:font}]\"\n      }\n    },\n    {\n      \"name\": \"Alphabetsoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"Alphabetsoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[][][]\",\n        \"snippet\": \"*[${1:width}][${2:height}][${3:font}]\"\n      }\n    },\n    {\n      \"name\": \"numbersoup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:max}}\"\n      }\n    },\n    {\n      \"name\": \"numbersoup\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]\",\n        \"snippet\": \"[${2:width}][${3:height}]{${1:max}}[${4:min}][${5:font}]\"\n      }\n    },\n    {\n      \"name\": \"numbersoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:max}}\"\n      }\n    },\n    {\n      \"name\": \"numbersoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[][]{}[][]\",\n        \"snippet\": \"*[${2:width}][${3:height}]{${1:max}}[${4:min}][${5:font}]\"\n      }\n    },\n    {\n      \"name\": \"homemadesoup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"homemadesoup\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"[${2:width}][${3:height}]{${1:symbols}}[${4:font}]\"\n      }\n    },\n    {\n      \"name\": \"homemadesoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*{}\",\n        \"snippet\": \"*{${1:symbols}}\"\n      }\n    },\n    {\n      \"name\": \"homemadesoup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"*[][]{}[]\",\n        \"snippet\": \"*[${2:width}][${3:height}]{${1:symbols}}[${4:font}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/soup#c\": [\n      \"usetikz\",\n      \"highlight\",\n      \"highlightcolor=\",\n      \"linecolor=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/soup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sourcecodepro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sourcecodepro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourcecodepromedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourcecodeprolight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourcecodeproextreme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sourcecodeprolf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nativeoldstylenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nativeoldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sourcecodepro#c\": [\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"black\",\n      \"semibold\",\n      \"bold\",\n      \"light\",\n      \"extralight\",\n      \"regular\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"ttdefault\",\n      \"nottdefault\",\n      \"type1\",\n      \"t1\",\n      \"opentype\",\n      \"otf\",\n      \"ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sourcecodepro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sourcesanspro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sourcesanspro\"\n    },\n    {\n      \"name\": \"sourcesansprolight\"\n    },\n    {\n      \"name\": \"sourcesansproextreme\"\n    },\n    {\n      \"name\": \"sourcesansprolf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nativeoldstylenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nativeoldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sourcesanspro#c\": [\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"black\",\n      \"semibold\",\n      \"bold\",\n      \"light\",\n      \"extralight\",\n      \"regular\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"sfdefault\",\n      \"nosfdefault\",\n      \"type1\",\n      \"t1\",\n      \"opentype\",\n      \"otf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sourcesanspro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sourceserifpro.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sourceserifpro\"\n    },\n    {\n      \"name\": \"sourceserifprolight\"\n    },\n    {\n      \"name\": \"sourceserifproextreme\"\n    },\n    {\n      \"name\": \"sourceserifprolf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nativeoldstylenums\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nativeoldstylenums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/sourceserifpro#c\": [\n      \"lining\",\n      \"nf\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"proportional\",\n      \"black\",\n      \"semibold\",\n      \"bold\",\n      \"light\",\n      \"extralight\",\n      \"regular\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"default\",\n      \"rmdefault\",\n      \"normdefault\",\n      \"type1\",\n      \"opentype\",\n      \"otf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sourceserifpro#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spacekern.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"semicolon\",\n      \"detail\": \";\",\n      \"doc\": \"Semicolon p:\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spacekern#c\": [\n      \"noiwkern\",\n      \"noredef\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spacekern#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spacingtricks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"centeredline\"\n    },\n    {\n      \"name\": \"pifont\",\n      \"if\": \"pifont\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"centered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centered{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoteindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"footnt[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"strutheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strutdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vstrut{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"vstrut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vstrut[${2:depth}]{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"cstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cstrut{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"parindentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bul\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aster\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checksymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowsymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compactlistindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ie\"\n    },\n    {\n      \"name\": \"eg\"\n    },\n    {\n      \"name\": \"dualboxes\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dualboxes{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"dualboxes\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dualboxes[${3:pos}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"dualboxes*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dualboxes*{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"dualboxes*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dualboxes*[${3:pos}]{${1:left}}{${2:right}}\"\n      }\n    },\n    {\n      \"name\": \"otherside\"\n    },\n    {\n      \"name\": \"juxtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"juxbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"juxsepspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"indentblock\"\n    },\n    {\n      \"name\": \"indentblock\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"compactlist\"\n    },\n    {\n      \"name\": \"compactlist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:symbol}]\"\n      }\n    },\n    {\n      \"name\": \"juxtapose\"\n    },\n    {\n      \"name\": \"juxtapose\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:left-ratio}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/spacingtricks#c\": [\n      \"pifont\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spacingtricks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spalign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spalignarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignarray{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignarray[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignarray*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignarray*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignarray*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignarray*[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignmat{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignmat[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignmat*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignmat*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignmat*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignmat*[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignvector\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignvector{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignvector\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignvector[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignvector*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignvector*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignvector*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignvector*[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmatn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spalignaugmatn{${1:num of cols}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmatn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"spalignaugmatn[${3:alignment%keyvals}]{${1:num of cols}}{${2:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmatn*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spalignaugmatn*{${1:num of cols}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmatn*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"spalignaugmatn*[${3:alignment%keyvals}]{${1:num of cols}}{${2:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignaugmat{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignaugmat[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmat*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignaugmat*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmat*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignaugmat*[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmathalf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignaugmathalf{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmathalf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignaugmathalf[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignaugmathalf*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignaugmathalf*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignaugmathalf*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spalignaugmathalf*[${2:alignment%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spalignsys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignsys{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignsys*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignsys*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spaligntabular\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spaligntabular{${1:preamble}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spaligndelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spaligndelims{${1:left-delim}}{${2:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"spalignsysdelims\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spalignsysdelims{${1:left-delim}}{${2:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"spalignmatdelimskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignvecdelimskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignsysdelimskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignsystabspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignendofrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignendline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignaligntab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignretokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spalignretokenize{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignrun\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spalignrun{${1:tokens}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spalignenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spalignenv{${1:before-tokens}}{${2:after-tokens}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"spaligntoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spalignmaxcols\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spalign#c\": [\n      \"delims=${1:delims}\",\n      \"sysdelims=${1:delims}\",\n      \"matdelimskip=${1:space cmd}\",\n      \"vecdelimskip=${1:space cmd}\",\n      \"sysdelimskip=${1:space cmd}\",\n      \"systabspace=\",\n      \"endofrow=${1:character}\",\n      \"separator=${1:character}\"\n    ],\n    \"\\\\spalignarray,\\\\spalignarray*,\\\\spalignmat,\\\\spalignmat*,\\\\spalignvector,\\\\spalignvector*,\\\\spalignaugmatn,\\\\spalignaugmatn*,\\\\spalignaugmat,\\\\spalignaugmat*,\\\\spalignaugmathalf,\\\\spalignaugmathalf*\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spalign#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spark-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sparkBarMedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkBarNarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkBarExtranarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkBarWide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkBarExtrawide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotLineMedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotLineThick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotLineExtrathick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotLineThin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotLineExtrathin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotMedium\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotSmall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotExtralarge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkDotExtrasmall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkBar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkBar{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkBar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkBar[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkBar,\\\\sparkBar*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkBar\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkBar[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkBar,\\\\sparkBar*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkBar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkBar*{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkBar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkBar*[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkBar,\\\\sparkBar*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkBar*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkBar*[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkBar,\\\\sparkBar*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkDot{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkDot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkDot[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkDot,\\\\sparkDot*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDot\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkDot[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkDot,\\\\sparkDot*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDot*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkDot*{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkDot*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkDot*[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkDot,\\\\sparkDot*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDot*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkDot*[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkDot,\\\\sparkDot*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDotline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkDotline{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkDotline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkDotline[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkDotline,\\\\sparkDotline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDotline\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkDotline[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkDotline,\\\\sparkDotline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDotline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sparkDotline*{${1:values}}\"\n      }\n    },\n    {\n      \"name\": \"sparkDotline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sparkDotline*[${2:type%keyvals}]{${1:values}}\",\n        \"keys\": [\n          \"\\\\sparkDotline,\\\\sparkDotline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sparkDotline*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"sparkDotline*[${2:type%keyvals}][${3:num1}]{${1:values}}[${4:num2}]\",\n        \"keys\": [\n          \"\\\\sparkDotline,\\\\sparkDotline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setSparkColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setSparkColor{${1:rrggbb}}{${2:values}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spark-otf#c\": [\n      \"usefilenames\",\n      \"DefaultFeatures={${1:features}}\"\n    ],\n    \"\\\\sparkBar,\\\\sparkBar*\": [\n      \"Extranarrow\",\n      \"Extrawide\",\n      \"Medium\",\n      \"Narrow\",\n      \"Wide\"\n    ],\n    \"\\\\sparkDot,\\\\sparkDot*\": [\n      \"Extralarge\",\n      \"Extrasmall\",\n      \"Large\",\n      \"Medium\",\n      \"Small\"\n    ],\n    \"\\\\sparkDotline,\\\\sparkDotline*\": [\n      \"Extrathick\",\n      \"Extrathin\",\n      \"Medium\",\n      \"Thick\",\n      \"Thin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spark-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sparklines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sparkbottomline\"\n    },\n    {\n      \"name\": \"sparkbottomline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sparkbottomline[${1:length%plain}]\"\n      }\n    },\n    {\n      \"name\": \"sparklinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkdotwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkspikewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparkbottomlinethickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparklineclipsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sparklineheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sparkline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%plain}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/spbmark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"super\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"super{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"super\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"super[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"super\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"super[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"super\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"super{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sub{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sub[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sub[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sub{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"llastwd\"\n    },\n    {\n      \"name\": \"clastwd\"\n    },\n    {\n      \"name\": \"rlastwd\"\n    },\n    {\n      \"name\": \"supersub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"supersub{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"supersub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"supersub[${3:keyvals}]{${1:super}}{${2:sub}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supersub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"supersub[${3:keyvals}][${4:height,depth}]{${1:super}}{${2:sub}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supersub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"supersub{${1:super}}{${2:sub}}[${3:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"superwd\"\n    },\n    {\n      \"name\": \"subwd\"\n    },\n    {\n      \"name\": \"maxwd\"\n    },\n    {\n      \"name\": \"spb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spb{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"spb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"spb[${3:keyvals}]{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"spb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"spb[${3:keyvals}][${4:height,depth}]{${1:super}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"spb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"spb{${1:super}}{${2:sub}}[${3:keyvals%plain}]\"\n      }\n    },\n    {\n      \"name\": \"defspbstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defspbstyle{${1:style name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"spbifmath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spbifmath{${1:math code%formula}}{${2:text code}}\"\n      }\n    },\n    {\n      \"name\": \"spbshortkv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spbshortkv{${1:short opt%specialDef}}{${2:keyval%keyvals}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\spbshortkv\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sp[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sp[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sp{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sb[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sb[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sb{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sp[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sp[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"math=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sp{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sb[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sb[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"math=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sb{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsuperscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsubscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"text=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsuperscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text=true\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"text=true\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsubscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sp[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sp[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sp{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sb[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sb[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sb{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsuperscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"both\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"both\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsubscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sp[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sp[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sp\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sp{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sb[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sb[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sb\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sb{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsuperscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsuperscript\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsuperscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"textsubscript[${2:keyvals}][${3:height,depth}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textsubscript\",\n      \"if\": \"all\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textsubscript{${1:content}}[${2:keyvals%plain}]\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"spbset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spbset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\",\n          \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\",\n          \"\\\\spbset,\\\\spbshortkv\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fnmarkfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spbmark#c\": [\n      \"text\",\n      \"math\",\n      \"math*\",\n      \"foot\",\n      \"both\",\n      \"all\",\n      \"spcore=${1|trad,none|}\",\n      \"sbcore=${1|trad,none|}\"\n    ],\n    \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript,\\\\spbshortkv\": [\n      \"vmove=\",\n      \"hmove=\",\n      \"cmd={${1:format cmds}}\",\n      \"cmd+={${1:format cmds}}\",\n      \"height=\",\n      \"depth=\",\n      \"style=${1:style name}\",\n      \"mode=${1|text,math,match|}\",\n      \"vsep={${1:super move,sub move}}\",\n      \"halign=${1|l,c,r|}\"\n    ],\n    \"\\\\spbset,\\\\super,\\\\sub,\\\\supersub,\\\\sp,\\\\sb,\\\\textsuperscript,\\\\textsubscript\": [\n      \"%spbshortkv\"\n    ],\n    \"\\\\spbset,\\\\spbshortkv\": [\n      \"spvmove=\",\n      \"sphmove=\",\n      \"sbvmove=\",\n      \"sbhmove=\",\n      \"nohmove\",\n      \"novmove\",\n      \"spcmd={${1:format cmds}}\",\n      \"spcmd+={${1:format cmds}}\",\n      \"sbcmd={${1:format cmds}}\",\n      \"sbcmd+={${1:format cmds}}\",\n      \"spheight=\",\n      \"spdepth=\",\n      \"sbheight=\",\n      \"sbdepth=\",\n      \"spbhmove=\",\n      \"spbcmd={${1:super cmds,sub cmds}}\",\n      \"spbcmd+={${1:super cmds,sub cmds}}\",\n      \"spbheight=\",\n      \"spbdepth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spbmark#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spdef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifsmartphone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartphonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smartphonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsp{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"expexe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expexe{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spdef#c,\\\\RequirePackage/spdef#c\": [\n      \"ph\",\n      \"pa\",\n      \"!ph\",\n      \"!pa\",\n      \"use=${1:csname}\",\n      \"!use=${1:csname}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spdef#c,\\\\RequirePackage/spdef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spectral.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spectralextralight\"\n    },\n    {\n      \"name\": \"spectrallight\"\n    },\n    {\n      \"name\": \"spectralmedium\"\n    },\n    {\n      \"name\": \"spectralsemibold\"\n    },\n    {\n      \"name\": \"spectralextrabold\"\n    },\n    {\n      \"name\": \"liningnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liningnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proportionalnums\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proportionalnums{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swshape\"\n    },\n    {\n      \"name\": \"textsw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spectral#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"type1\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"tabular\",\n      \"t\",\n      \"proportional\",\n      \"p\",\n      \"medium\",\n      \"m\",\n      \"light\",\n      \"l\",\n      \"el\",\n      \"extralight\",\n      \"semibold\",\n      \"sb\",\n      \"extrabold\",\n      \"eb\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spectral#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spectralsequences.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"pdfcomment\",\n      \"if\": \"tooltip\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sseqtooltip\",\n      \"if\": \"tooltip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sseqtooltip{${1:text}}{${2:tooltip text}}\"\n      }\n    },\n    {\n      \"name\": \"printpage\"\n    },\n    {\n      \"name\": \"printpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printpage[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"class(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"class\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"class[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"replaceclass\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"replaceclass(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"replaceclass\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"replaceclass(${1:x},${2:y},${3:n})\"\n      }\n    },\n    {\n      \"name\": \"replaceclass\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"replaceclass[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"replaceclass\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"replaceclass[${1:options%keyvals}](${2:x},${3:y},${4:n})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"replacesource\"\n    },\n    {\n      \"name\": \"replacesource\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"replacesource[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"replacetarget\"\n    },\n    {\n      \"name\": \"replacetarget\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"replacetarget[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"replacestructlines\"\n    },\n    {\n      \"name\": \"replacestructlines\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"replacestructlines(${1:source coord})\"\n      }\n    },\n    {\n      \"name\": \"classoptions\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"classoptions[${1:options%keyvals}](${2:x},${3:y})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\classoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"classoptions\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"classoptions[${1:options%keyvals}](${2:x},${3:y},${4:n})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\classoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"classoptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"classoptions[${1:options%keyvals}](${2:class name})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\classoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"classoptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"classoptions[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\classoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"structline\"\n    },\n    {\n      \"name\": \"structline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"structline[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\structline#c,\\\\structlineoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"structline\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"structline(${1:source coord})(${2:target coord})\"\n      }\n    },\n    {\n      \"name\": \"structline\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"structline[${1:options%keyvals}](${2:source coord})(${3:target coord})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\structline#c,\\\\structlineoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"structlineoptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"structlineoptions[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\structline#c,\\\\structlineoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"structlineoptions\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"structlineoptions[${1:options%keyvals}](${2:source coord})(${3:target coord})\",\n        \"keys\": [\n          \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\",\n          \"\\\\structline#c,\\\\structlineoptions#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extension\"\n    },\n    {\n      \"name\": \"extension\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"extension[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extension\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"extension(${1:source coord})(${2:target coord})\"\n      }\n    },\n    {\n      \"name\": \"extension\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"extension[${1:options%keyvals}](${2:source coord})(${3:target coord})\",\n        \"keys\": [\n          \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extensionoptions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"extensionoptions[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"extensionoptions\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"extensionoptions[${1:options%keyvals}](${2:source coord})(${3:target coord})\"\n      }\n    },\n    {\n      \"name\": \"circleclasses\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"circleclasses(${1:source coord})(${2:target coord})\"\n      }\n    },\n    {\n      \"name\": \"circleclasses\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"circleclasses[${1:options%keyvals}](${2:source coord})(${3:target coord})\",\n        \"keys\": [\n          \"\\\\circleclasses#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xcoord\"\n    },\n    {\n      \"name\": \"ycoord\"\n    },\n    {\n      \"name\": \"isalive\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"isalive(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"isalive\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isalive{${1:(${2:coord1})...(${3:coordN})}}\"\n      }\n    },\n    {\n      \"name\": \"sseqset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sseqset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{sseqdata}#c,\\\\begin{sseqpage}#c,\\\\sseqset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Do\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Do{${1:iterations}}{${2:loop body}}\"\n      }\n    },\n    {\n      \"name\": \"DoUntilOutOfBounds\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoUntilOutOfBounds{${1:loop body}}\"\n      }\n    },\n    {\n      \"name\": \"DoUntilOutOfBoundsThenNMore\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoUntilOutOfBoundsThenNMore{${1:extra iterations}}{${2:loop body}}\"\n      }\n    },\n    {\n      \"name\": \"iteration\"\n    },\n    {\n      \"name\": \"NewSseqCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewSseqCommand{${1:macro%cmd}}{${2:args}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSseqCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSseqCommand{${1:macro%cmd}}{${2:args}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewSseqGroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewSseqGroup{${1:macro%cmd}}{${2:args}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSseqGroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSseqGroup{${1:macro%cmd}}{${2:args}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"SseqCopyPage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SseqCopyPage{${1:macro%cmd}}{${2:spectral sequence name}}{${3:page}}\"\n      }\n    },\n    {\n      \"name\": \"SseqNewFamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SseqNewFamily{${1:family name}}\"\n      }\n    },\n    {\n      \"name\": \"SseqParseInt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SseqParseInt{${1:macro%cmd}}{${2:integer expr}}\"\n      }\n    },\n    {\n      \"name\": \"SseqIfEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SseqIfEmptyTF{${1:expression}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"SseqIfEmptyT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SseqIfEmptyT{${1:expression}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"SseqIfEmptyF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SseqIfEmptyF{${1:expression}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"IfExistsTF{${1:page}}(${4:coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfExistsT{${1:page}}(${3:coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfExistsF{${1:page}}(${3:coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfAliveTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"IfAliveTF{${1:page}}(${4:coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfAliveT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfAliveT{${1:page}}(${3:coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfAliveF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfAliveF{${1:page}}(${3:coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfOutOfBoundsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"IfOutOfBoundsTF(${3:coord}){${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfOutOfBoundsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"IfOutOfBoundsT(${2:coord}){${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfOutOfBoundsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"IfOutOfBoundsF(${2:coord}){${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInBoundsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"IfInBoundsTF(${3:coord}){${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInBoundsT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"IfInBoundsT(${2:coord}){${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfInBoundsF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"IfInBoundsF(${2:coord}){${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"IfValidDifferentialTF{${1:page}}(${4:coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"IfValidDifferentialTF{${1:page}}(${4:coord})(${5:target coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfValidDifferentialT{${1:page}}(${3:coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"IfValidDifferentialT{${1:page}}(${3:coord})(${4:target coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"IfValidDifferentialF{${1:page}}(${3:coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfValidDifferentialF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"IfValidDifferentialF{${1:page}}(${3:coord})(${4:target coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}{}\",\n        \"snippet\": \"DrawIfValidDifferentialTF{${1:page}}(${4:coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"DrawIfValidDifferentialTF{${1:page}}(${4:coord})(${5:target coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}{}\",\n        \"snippet\": \"DrawIfValidDifferentialTF[${4:options}]{${1:page}}(${5:coord})(${6:target coord}){${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"DrawIfValidDifferentialT{${1:page}}(${3:coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferentialT{${1:page}}(${3:coord})(${4:target coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferentialT[${3:options}]{${1:page}}(${4:coord})(${5:target coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"DrawIfValidDifferentialF{${1:page}}(${3:coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferentialF{${1:page}}(${3:coord})(${4:target coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferentialF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferentialF[${3:options}]{${1:page}}(${4:coord})(${5:target coord}){${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferential\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"DrawIfValidDifferential{${1:page}}(${3:coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferential\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferential{${1:page}}(${3:coord})(${4:target coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"DrawIfValidDifferential\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}()(){}\",\n        \"snippet\": \"DrawIfValidDifferential[${3:options}]{${1:page}}(${4:coord})(${5:target coord}){${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"SseqNormalizeMonomial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SseqNormalizeMonomial{${1:monomial}}\"\n      }\n    },\n    {\n      \"name\": \"result\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SseqNormalizeMonomialSetVariables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SseqNormalizeMonomialSetVariables{${1:monomial}}\"\n      }\n    },\n    {\n      \"name\": \"SseqAHSSNameHandler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsecoordinate\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"parsecoordinate{${1:macro%cmd}}(${2:coord})\"\n      }\n    },\n    {\n      \"name\": \"getdtarget\",\n      \"arg\": {\n        \"format\": \"{}{}()\",\n        \"snippet\": \"getdtarget{${1:macro%cmd}}{${2:page}}(${3:source coord})\"\n      }\n    },\n    {\n      \"name\": \"parsedifferential\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"parsedifferential{${1:page}}(${2:differential coord})\"\n      }\n    },\n    {\n      \"name\": \"parsedifferential\",\n      \"arg\": {\n        \"format\": \"{}()()\",\n        \"snippet\": \"parsedifferential{${1:page}}(${2:differential coord})(${3:differential target})\"\n      }\n    },\n    {\n      \"name\": \"nameclass\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"nameclass{${1:name}}(${2:coord})\"\n      }\n    },\n    {\n      \"name\": \"tagclass\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"tagclass{${1:tag}}(${2:coord})\"\n      }\n    },\n    {\n      \"name\": \"gettag\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"gettag{${1:macro%cmd}}(${2:coord})\"\n      }\n    },\n    {\n      \"name\": \"pushstack\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pushstack(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"savestack\"\n    },\n    {\n      \"name\": \"restorestack\"\n    },\n    {\n      \"name\": \"SseqNewClassPattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SseqNewClassPattern{${1:name}}{${2:offsets}}\"\n      }\n    },\n    {\n      \"name\": \"SseqOrientationNormal\"\n    },\n    {\n      \"name\": \"SseqOrientationSideways\"\n    },\n    {\n      \"name\": \"SseqOrientationToggle\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sseqdata\"\n    },\n    {\n      \"name\": \"sseqdata\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sseqdata}#c,\\\\begin{sseqpage}#c,\\\\sseqset#c\",\n          \"\\\\begin{sseqdata}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sseqpage\"\n    },\n    {\n      \"name\": \"sseqpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{sseqdata}#c,\\\\begin{sseqpage}#c,\\\\sseqset#c\",\n          \"\\\\begin{sseqpage}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"quiet\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/spectralsequences#c\": [\n      \"draft\",\n      \"tooltips\"\n    ],\n    \"\\\\class#c,\\\\d#c,\\\\structline#c,\\\\replaceclass#c,\\\\classoptions#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\": [\n      \"xshift=${1:integer}\",\n      \"yshift=${1:integer}\",\n      \"%color\",\n      \"\\\"${1:text}\\\"\",\n      \"\\\"${1:text}\\\" ${2:TikZ options}\",\n      \"\\\"${1:text}\\\"'\",\n      \"\\\"${1:text}\\\"' ${2:TikZ options}\",\n      \"pin={${1:TikZ options}}\",\n      \"description\",\n      \"circlen=${1:integer}\",\n      \"newellipse\",\n      \"ellipse ratio=${1:ratio}\",\n      \"isosceles triangle\",\n      \"rectangle\",\n      \"diamond\",\n      \"semicircle\",\n      \"regular polygon\",\n      \"regular polygon sides=${1:integer}\",\n      \"minimum width=\",\n      \"minimum height=\",\n      \"minimum size=\",\n      \"inner sep=\",\n      \"outer sep=\",\n      \"name=${1:node name}\",\n      \"show name={${1:label options}}\",\n      \"tag=${1:tag}\",\n      \"insert=${1:integer}\",\n      \"offset={(${1:x,y})}\",\n      \"tooltip=${1:text}\"\n    ],\n    \"\\\\classoptions#c\": [\n      \"page=${1:page}\",\n      \"page=${1:page}--${2:page max}\",\n      \"generation=${1:generation}\",\n      \"generation=${1:generation}--${2:generation max}\",\n      \"fill\"\n    ],\n    \"\\\\d#c,\\\\structline#c,\\\\extension#c,\\\\doptions#c,\\\\structlineoptions#c,\\\\replacestructlines#c\": [\n      \"source anchor=${1:anchor}\",\n      \"target anchor=${1:anchor}\",\n      \"shorten >=\",\n      \"shorten <=\",\n      \"bend left=${1:angle}\",\n      \"bend right=${1:angle}\",\n      \"in=${1:anchor}\",\n      \"out=${1:anchor}\"\n    ],\n    \"\\\\structline#c,\\\\structlineoptions#c\": [\n      \"page=${1:page}\",\n      \"page=${1:page}--${2:page max}\",\n      \"dashed\"\n    ],\n    \"\\\\circleclasses#c\": [\n      \"fit=${1:coords or nodes}\",\n      \"rounded rectangle\",\n      \"ellipse ratio=${1:ratio}\",\n      \"class style\",\n      \"permanent cycle style\",\n      \"transient cycle style\",\n      \"this page class style\",\n      \"differential style\",\n      \"struct line style\",\n      \"page=${1:page}\",\n      \"page=${1:page}--${2:page max}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"background\",\n      \"page constraint={${1:predicate}}\",\n      \"page constraint or={${1:predicate}}\",\n      \"class style\",\n      \"permanent cycle style\",\n      \"transient cycle style\",\n      \"this page class style\",\n      \"differential style\",\n      \"struct line style\"\n    ],\n    \"\\\\begin{sseqdata}#c,\\\\begin{sseqpage}#c,\\\\sseqset#c\": [\n      \"sseqs={${1:keys}}\",\n      \"change sseqs={${1:keys}}\",\n      \"sseq={${1:keys}}\",\n      \"change sseq={${1:keys}}\",\n      \"classes={${1:keys}}\",\n      \"cycles={${1:keys}}\",\n      \"change classes={${1:keys}}\",\n      \"change cycles={${1:keys}}\",\n      \"permanent classes={${1:keys}}\",\n      \"permanent cycles={${1:keys}}\",\n      \"change permanent classes={${1:keys}}\",\n      \"change permanent cycles={${1:keys}}\",\n      \"transient classes={${1:keys}}\",\n      \"transient cycles={${1:keys}}\",\n      \"change transient classes={${1:keys}}\",\n      \"change transient cycles={${1:keys}}\",\n      \"this page classes={${1:keys}}\",\n      \"this page cycles={${1:keys}}\",\n      \"change this page classes={${1:keys}}\",\n      \"change this page cycles={${1:keys}}\",\n      \"edges={${1:keys}}\",\n      \"differentials={${1:keys}}\",\n      \"struct lines={${1:keys}}\",\n      \"change edges={${1:keys}}\",\n      \"change differentials={${1:keys}}\",\n      \"change struct lines={${1:keys}}\",\n      \"this page struct lines={${1:keys}}\",\n      \"change this page struct lines={${1:keys}}\",\n      \"tikz primitives={${1:keys}}\",\n      \"change tikz primitives={${1:keys}}\",\n      \"labels={${1:keys}}\",\n      \"change labels={${1:keys}}\",\n      \"class labels={${1:keys}}\",\n      \"inner class labels={${1:keys}}\",\n      \"outer class labels={${1:keys}}\",\n      \"change class labels={${1:keys}}\",\n      \"change inner class labels={${1:keys}}\",\n      \"change outer class labels={${1:keys}}\",\n      \"edge labels={${1:keys}}\",\n      \"differential labels={${1:keys}}\",\n      \"struct line labels={${1:keys}}\",\n      \"change edge labels={${1:keys}}\",\n      \"change differential labels={${1:keys}}\",\n      \"change struct line labels={${1:keys}}\",\n      \"label distance=\",\n      \"above label distance=\",\n      \"below label distance=\",\n      \"left label distance=\",\n      \"right label distance=\",\n      \"above left label distance=\",\n      \"above right label distance=\",\n      \"below left label distance=\",\n      \"below right label distance=\",\n      \"run off=${1:start tip}-${2:end tip}\",\n      \"run off struct lines=${1:start tip}-${2:end tip}\",\n      \"run off differentials=${1:start tip}-${2:end tip}\",\n      \"class label handler=${1:macro}\",\n      \"class name handler=${1:macro}\",\n      \"class name prefix=${1:prefix}\",\n      \"class name postfix=${1:postfix}\",\n      \"name=${1:sseq name}\",\n      \"page=${1:page}\",\n      \"page=${1:page}--${2:page max}\",\n      \"degree={${1:x degree}}{${2:y degree}}\",\n      \"cohomological Serre grading\",\n      \"homological Serre grading\",\n      \"Adams grading\",\n      \"strict degree\",\n      \"lax degree\",\n      \"no differentials\",\n      \"draw differentials\",\n      \"no struct lines\",\n      \"draw struct lines\",\n      \"no orphan edges\",\n      \"draw orphan edges\",\n      \"class pattern=${1:class pattern name}\",\n      \"class placement transform={${1:transform keys}}\",\n      \"add class placement transform={${1:transform keys}}\",\n      \"math nodes\",\n      \"scale=${1:factor}\",\n      \"xscale=${1:factor}\",\n      \"yscale=${1:factor}\",\n      \"xmirror\",\n      \"ymirror\",\n      \"rotate=${1:angle}\",\n      \"x range={${1:x min}}{${2:x max}}\",\n      \"y range={${1:y min}}{${2:y max}}\",\n      \"range check standard\",\n      \"range check sideways\",\n      \"range check off\",\n      \"grid=${1:grid type}\",\n      \"grid color=\",\n      \"grid step=${1:integer}\",\n      \"x grid step=${1:integer}\",\n      \"y grid step=${1:integer}\",\n      \"title=${1:text}\",\n      \"title style={${1:keys}}\",\n      \"x label=${1:text}\",\n      \"y label=${1:text}\",\n      \"x label style={${1:keys}}\",\n      \"y label style={${1:keys}}\",\n      \"label style={${1:keys}}\",\n      \"no title\",\n      \"draw title\",\n      \"no x label\",\n      \"no y label\",\n      \"no labels\",\n      \"draw x label\",\n      \"draw y label\",\n      \"draw labels\",\n      \"no x ticks\",\n      \"no y ticks\",\n      \"no ticks\",\n      \"draw x ticks\",\n      \"draw y ticks\",\n      \"draw ticks\",\n      \"x tick step=${1:integer}\",\n      \"y tick step=${1:integer}\",\n      \"tick step=${1:integer}\",\n      \"x tick offset=${1:integer}\",\n      \"y tick offset=${1:integer}\",\n      \"tick offset=${1:integer}\",\n      \"x major tick step=${1:integer}\",\n      \"y major tick step=${1:integer}\",\n      \"major tick step=${1:integer}\",\n      \"x minor tick step=${1:integer}\",\n      \"y minor tick step=${1:integer}\",\n      \"minor tick step=${1:integer}\",\n      \"x tick style={${1:keys}}\",\n      \"y tick style={${1:keys}}\",\n      \"tick style={${1:keys}}\",\n      \"x tick handler=${1:macro}\",\n      \"y tick handler=${1:macro}\",\n      \"tick handler=${1:macro}\",\n      \"x axis type=${1|border,center,frame,none|}\",\n      \"y axis type=${1|border,center,frame,none|}\",\n      \"axes type=${1|border,center,frame,none|}\",\n      \"no x axis\",\n      \"no y axis\",\n      \"no axes\",\n      \"x axis origin=${1:x value}\",\n      \"y axis origin=${1:y value}\",\n      \"x axis gap=\",\n      \"y axis gap=\",\n      \"axes gap=\",\n      \"x tick gap=\",\n      \"y tick gap=\",\n      \"x axis extend start=\",\n      \"y axis extend start=\",\n      \"x axis extend end=\",\n      \"y axis extend end=\",\n      \"x axis tail=\",\n      \"y axis tail=\",\n      \"x axis clip padding=\",\n      \"y axis clip padding=\",\n      \"right clip padding=\",\n      \"left clip padding=\",\n      \"top clip padding=\",\n      \"bottom clip padding=\",\n      \"custom clip=${1:clip path}\",\n      \"clip\",\n      \"rotate labels\"\n    ],\n    \"\\\\begin{sseqdata}#c\": [\n      \"update existing\"\n    ],\n    \"\\\\begin{sseqpage}#c\": [\n      \"keep changes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spectralsequences#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spelatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"newfile\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setenum\",\n      \"if\": \"extramath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setenum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setdesc\",\n      \"if\": \"extramath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdesc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setenum\",\n      \"if\": \"extramath=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setenum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setdesc\",\n      \"if\": \"extramath=true\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdesc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"spelitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spelitem{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spelitem[${2:label%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacpp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spelmacpp{${1:csname}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacpp\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"spelmacpp{${1:csname}}[${3:args}]{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacpp\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"spelmacpp{${1:csname}}[${3:args}][${4:default}]{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvpp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spelenvpp{${1:envname}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvpp\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"spelenvpp{${1:envname}}[${3:args}]{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvpp\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"spelenvpp{${1:envname}}[${3:args}][${4:default}]{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacad\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spelmacad{${1:csname}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacad\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"spelmacad{${1:csname}}[${3:args}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelmacad\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"spelmacad{${1:csname}}[${3:args}][${4:default}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvad\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"spelenvad{${1:envname}}{${2:begin text%text}}{${3:end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvad\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"spelenvad{${1:envname}}[${4:args}]{${2:begin text%text}}{${3:end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"spelenvad\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"spelenvad{${1:envname}}[${4:args}][${5:default}]{${2:begin text%text}}{${3:end text%text}}\"\n      }\n    },\n    {\n      \"name\": \"spelatex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spelpl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"spelchunk\"\n    },\n    {\n      \"name\": \"spelchunk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{spelchunk}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spelchunkad\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/spelatex#c\": [\n      \"format=${1:type}\",\n      \"server=%URL%>\",\n      \"markervisibility=${1|none,onlygroups|}\",\n      \"disabled\",\n      \"extramath\"\n    ],\n    \"\\\\begin{spelchunk}\": [\n      \"arealink\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spelatex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spelling.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spellingreadgood\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingreadgood{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"spellingmatchrules\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingmatchrules{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"spellinghighlight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellinghighlight{${1:on/off}}\"\n      }\n    },\n    {\n      \"name\": \"spellinghighlightcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellinghighlightcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"spellingoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingoutput{${1:on/off}}\"\n      }\n    },\n    {\n      \"name\": \"spellingoutputname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingoutputname{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"spellingoutputlinelength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingoutputlinelength{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"spellingextract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingextract{${1:on/off}}\"\n      }\n    },\n    {\n      \"name\": \"spellingmapping\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spellingmapping{${1:number}}{${2:chars}}\"\n      }\n    },\n    {\n      \"name\": \"spellingclearallmappings\"\n    },\n    {\n      \"name\": \"spellingtablepar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingtablepar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"spellingreadLT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingreadLT{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"spellingreadbad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingreadbad{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"spellingreadgood\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spellingreadgood{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/splitidx.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newindex{${1:shortcut}}\"\n      }\n    },\n    {\n      \"name\": \"newindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newindex[${2:index name}]{${1:shortcut}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sindex{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"sindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sindex[${2:shortcut}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"index\",\n      \"if\": \"useindex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"index[${2:shortcut}]{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"AtWriteToIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtWriteToIndex{${1:shortcut}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtNextWriteToIndex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AtNextWriteToIndex{${1:shortcut}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newprotectedindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newprotectedindex{${1:shortcut}}\"\n      }\n    },\n    {\n      \"name\": \"newprotectedindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newprotectedindex[${2:index name}]{${1:shortcut}}\"\n      }\n    },\n    {\n      \"name\": \"printindex\"\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printindex[${1:shortcut}]\"\n      }\n    },\n    {\n      \"name\": \"printindex\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"printindex[${1:shortcut}][${2:index name}]\"\n      }\n    },\n    {\n      \"name\": \"printindex*\"\n    },\n    {\n      \"name\": \"printsubindex\"\n    },\n    {\n      \"name\": \"printsubindex*\"\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexpreamble{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"setindexpreamble\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setindexpreamble[${2:shortcut}]{${1:preamble%text}}\"\n      }\n    },\n    {\n      \"name\": \"useindexpreamble\"\n    },\n    {\n      \"name\": \"useindexpreamble\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useindexpreamble[${1:commands}]\"\n      }\n    },\n    {\n      \"name\": \"indexshortcut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extendtheindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"extendtheindex{${1:before begin}}{${2:after begin}}{${3:before end}}{${4:after end}}\"\n      }\n    },\n    {\n      \"name\": \"printindices\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"see\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"see{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seealso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seealso{${1:text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/splitidx#c\": [\n      \"split\",\n      \"makeindex\",\n      \"useindex\",\n      \"allintoone\",\n      \"protected\",\n      \"idxcommands\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/splitidx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    },\n    {\n      \"name\": \"afterpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"spot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spot[${2:node options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spot\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"spot(${2:node name}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"spot(${3:node name})[${2:node options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spot<overlay spec>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spot<overlay spec>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot<overlay spec>\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spot<overlay spec>[${2:node options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot<overlay spec>\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"spot<overlay spec>(${2:node name}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot<overlay spec>\",\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"spot<overlay spec>(${3:node name})[${2:node options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spot*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spot*[${2:node options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"spot*(${2:node name}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"spot*(${3:node name})[${2:node options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"spot*<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spot*<overlay spec>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spot*<overlay spec>[${2:node options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"spot*<overlay spec>(${2:node name}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"spot*<overlay spec>\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()[]{}\",\n        \"snippet\": \"spot*<overlay spec>(${3:node name})[${2:node options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setspotlightcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspotlightcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"resetspotlightcolor\"\n    },\n    {\n      \"name\": \"spotlightcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setspotlightstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setspotlightstyle{${1:node options%keyvals}}\",\n        \"keys\": [\n          \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetspotlightstyle\"\n    },\n    {\n      \"name\": \"spotlightnodeoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dospots\"\n    },\n    {\n      \"name\": \"dospotsheader\"\n    },\n    {\n      \"name\": \"dospotsfooter\"\n    },\n    {\n      \"name\": \"AtEndFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEndFrame{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryBeginFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryBeginFrame{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AtEveryEndFrame\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtEveryEndFrame{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\spot#c,\\\\spot*#c,\\\\setspotlightstyle#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name path=${1:path}\",\n      \"name path global=${1:path}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"on grid\",\n      \"node distance=\",\n      \"base left=\",\n      \"base right=\",\n      \"mid left=\",\n      \"mid right=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"remember picture\",\n      \"overlay\",\n      \"every new ->\",\n      \"every new --\",\n      \"every new <->\",\n      \"every new <-\",\n      \"every new -!-\",\n      \"new set=${1:set name}\",\n      \"set=${1:set name}\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\",\n      \"decoration={${1:options}}\",\n      \"decorate\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"matrix\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/spotcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewSpotColorSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewSpotColorSpace{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AddSpotColor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AddSpotColor{${1:colorspace}}{${2:color}}{${3:pdf name}}{${4:specification}}\"\n      }\n    },\n    {\n      \"name\": \"SpotSpace\"\n    },\n    {\n      \"name\": \"SetPageColorSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPageColorSpace{${1:colorspace}}\"\n      }\n    },\n    {\n      \"name\": \"SpotColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SpotColor{${1:color}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetPageColorResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPageColorResource{${1:resource}}\"\n      }\n    },\n    {\n      \"name\": \"thecolorprofile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpantone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pantonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pantonefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/spotcolor#c\": [\n      \"hks\",\n      \"pantone\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spotcolor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spreadtab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"STeol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STeol{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"STcopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STcopy{${1:>x,vy}}{${2:formula}}\"\n      }\n    },\n    {\n      \"name\": \"STsetdecimalsep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STsetdecimalsep{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"STautoround\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STautoround{${1:number of digits}}\"\n      }\n    },\n    {\n      \"name\": \"STautoround*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STautoround*{${1:number of digits}}\"\n      }\n    },\n    {\n      \"name\": \"hhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hhline{${1:colspec}}\"\n      }\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"toprule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"toprule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"midrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"midrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"bottomrule\"\n    },\n    {\n      \"name\": \"bottomrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bottomrule[${1:line width%l}]\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrule{${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"cmidrule(${2:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"cmidrule[${2:line width%l}](${3:trim}){${1:a-b}}\"\n      }\n    },\n    {\n      \"name\": \"morecmidrules\"\n    },\n    {\n      \"name\": \"specialrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialrule{${1:line width%l}}{${2:above space}}{${3:below space}}\"\n      }\n    },\n    {\n      \"name\": \"addlinespace\"\n    },\n    {\n      \"name\": \"addlinespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlinespace[${1:vspace}]\"\n      }\n    },\n    {\n      \"name\": \"SThiderow\"\n    },\n    {\n      \"name\": \"SThidecol\"\n    },\n    {\n      \"name\": \"STsavecell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STsavecell{${1:cmd}}{${2:reference}}\"\n      }\n    },\n    {\n      \"name\": \"STsetdisplaymarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STsetdisplaymarks{${1:left-delim}}{${2:right-delim}}\"\n      }\n    },\n    {\n      \"name\": \"STtag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STtag{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"STmakegtag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STmakegtag{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"STmessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STmessage{${1:bool%keyvals}}\",\n        \"keys\": [\n          \"\\\\STmessage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"STdebug\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STdebug{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\STdebug\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"STusefp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STusexfp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STtextcell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STnumericfieldmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STtransposecar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STprintnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STprintnum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"STeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STeval{${1:variable%cmd}}{${2:expression}}\"\n      }\n    },\n    {\n      \"name\": \"STround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"STround{${1:variable%cmd}}{${2:value}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"STclip\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STclip{${1:variable%cmd}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"STtrunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"STtrunc{${1:variable%cmd}}{${2:value}}{${3:digits}}\"\n      }\n    },\n    {\n      \"name\": \"STadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"STadd{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STmul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"STmul{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"STdiv{${1:variable%cmd}}{${2:value1}}{${3:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STrandom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STrandom{${1:variable%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"STifzero\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STifzero{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"STifgt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STifgt{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STiflt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STiflt{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STifeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"STifeq{${1:value1}}{${2:value2}}\"\n      }\n    },\n    {\n      \"name\": \"STifint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STifint{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"STifneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STifneg{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"STaddcol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STaddrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STdatetonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"STdatetonum{${1:cmd}}{${2:jj}}{${3:mm}}{${4:aa}}\"\n      }\n    },\n    {\n      \"name\": \"STdisplaytab\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"spreadtab\",\n      \"arg\": {\n        \"format\": \"{{}{}}\",\n        \"snippet\": \"{{${1:envname}}{${2:preamble}}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/spreadtab#c\": [\n      \"fp\",\n      \"xfp\"\n    ],\n    \"\\\\STmessage\": [\n      \"true\",\n      \"false\"\n    ],\n    \"\\\\STdebug\": [\n      \"formula\",\n      \"text\",\n      \"code\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/spreadtab#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/spverbatim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"spverb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"spverb|${1:text}|\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"spverbatim\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sqrcaps.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textsqrc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsqrc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sqrcfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/srbtiks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stix2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LAT\"\n    },\n    {\n      \"name\": \"CYR\"\n    },\n    {\n      \"name\": \"lat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lat{${1:text}}\"\n      },\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"cyr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"U\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"f\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"f{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"AKS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AKS{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ADS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ADS{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"AKU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AKU{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ADU\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ADU{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"AGZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AGZ{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"ADZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ADZ{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"AKZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AKZ{${1:letter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/srbtiks#c\": [\n      \"nostix\",\n      \"noslant\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/srbtiks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/srcltx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Input\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Input{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"MainFile\"\n    },\n    {\n      \"name\": \"srcIncludeHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srcIncludeHook{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentInput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"srcInputHook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"srcInputHook{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifSRCOK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRCOKtrue\"\n    },\n    {\n      \"name\": \"SRCOKfalse\"\n    },\n    {\n      \"name\": \"WinEdt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WinEdt{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/srcltx#c\": [\n      \"active\",\n      \"inactive\",\n      \"nowinedt\",\n      \"dviwin\",\n      \"debug\",\n      \"nopar\",\n      \"nomath\",\n      \"nodisplay\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/srcltx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/srdp-tables.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"delarray\",\n      \"if\": \"delarray\"\n    },\n    {\n      \"name\": \"linegoal\",\n      \"if\": \"linegoal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"usetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucline{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabucline[${2:spec}]{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"savetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preamble{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabuphantomline\"\n    },\n    {\n      \"name\": \"extrarowdepth\"\n    },\n    {\n      \"name\": \"abovetabulinesep\"\n    },\n    {\n      \"name\": \"belowtabulinesep\"\n    },\n    {\n      \"name\": \"tabustrutrule\"\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taburulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"||{}\",\n        \"snippet\": \"taburulecolor|${2:doubleRuleSepColor}|{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tabureset\"\n    },\n    {\n      \"name\": \"newtabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"everyrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyrow{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"rowfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rowfont[${2:alignment}]{${1:fontSpec}}\"\n      }\n    },\n    {\n      \"name\": \"tabudecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabudecimal{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"firstline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabuscantokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokenstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokensfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabucolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucolumn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabucolX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabudefaulttarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuDisableCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuendlongtrial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuthepreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaburow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingtabu\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/srdp-tables#c\": [\n      \"delarray\",\n      \"linegoal\",\n      \"scantokens\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/srdp-tables#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sseq.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sseqpacking\"\n    },\n    {\n      \"name\": \"sspacksmart\"\n    },\n    {\n      \"name\": \"sspackhorizontal\"\n    },\n    {\n      \"name\": \"sspackvertical\"\n    },\n    {\n      \"name\": \"sspackdiagonal\"\n    },\n    {\n      \"name\": \"ssmoveto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssmoveto{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssmove\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssmove{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdrop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdrop{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssdrop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssdrop[${2:options%keyvals}]{${1:math%formula}}\",\n        \"keys\": [\n          \"\\\\ssdrop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssgoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssgoto{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ssresetprefix\"\n    },\n    {\n      \"name\": \"ssabsgoto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssabsgoto{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssdroplabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdroplabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ssdroplabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ssdroplabel[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\ssdroplabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssdropextension\"\n    },\n    {\n      \"name\": \"ssstroke\"\n    },\n    {\n      \"name\": \"ssstroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssstroke[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\ssstroke,\\\\ssline,\\\\ssarrow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssarrowhead\"\n    },\n    {\n      \"name\": \"ssarrowhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssarrowhead[${1:arrow style}]\"\n      }\n    },\n    {\n      \"name\": \"ssinversearrowhead\"\n    },\n    {\n      \"name\": \"ssinversearrowhead\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ssinversearrowhead[${1:arrow style}]\"\n      }\n    },\n    {\n      \"name\": \"ssline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssline\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssline[${3:options%keyvals}]{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssarrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssarrow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssarrow[${3:options%keyvals}]{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssbullstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssbullstring{${1:x}}{${2:y}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"ssinfbullstring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssinfbullstring{${1:x}}{${2:y}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"ssdropbull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdropboxed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdropboxed{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssdropcircled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdropcircled{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sscurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sscurve{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdashedcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdashedcurve{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"ssdottedstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdottedcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssdottedcurve{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"sscurvedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurvedline{${1:value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdashedline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"sscurveddashedline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurveddashedline{${1:value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"sscurvedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurvedarrow{${1:value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssdashedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdashedarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"sscurveddashedarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sscurveddashedarrow{${1:value}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssvoidline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssvoidline{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssvoidarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssvoidarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssinversevoidarrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssinversevoidarrow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ssplaceboxed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplaceboxed{${1:arg1}}{${2:arg2}}{${3:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssplacecircled\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplacecircled{${1:arg1}}{${2:arg2}}{${3:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ssplace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ssplace{${1:arg1}}{${2:arg2}}{${3:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"currprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dropvarname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dropvarname{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"extractcoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcurroutofrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifoutofrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outofrangetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outofrangefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnodrop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifnodrop{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniquedrop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifuniquedrop{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ntimes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntimes{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"putxyq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putxyq{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"putxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putxy{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"setcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssassertsource\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssconncolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssdroperrormsg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdroperrormsg{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sseqbullcnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqconcludeconnection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqconncommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqgridstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqpack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sseqpack{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sseqrearrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"sseqrearrange{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"sseqsavecnti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecnto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntvii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqsavecntviii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqstacking\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sseqstacking{${1:x}}{${2:y}}{${3:n}}\"\n      }\n    },\n    {\n      \"name\": \"sseqwritecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sseqwritecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"sseqxlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sseqylabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssfinishpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssglobalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ssglobalname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ssgridchess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssgridchess{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ssgridcrossword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssgridcrossword{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ssgriddots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssgriddots{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ssgridgo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssgridgo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ssgridnone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssgridnone{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sslabelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssplacecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssprepareline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssprepareline{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"sssetglobalname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sssetglobalname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecoratedcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentamplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentaspect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecorationsegmentamplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecorationsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfdecoratepathhascorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratepathhascornerstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratepathhascornersfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclaredecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaredecoration{${1:name}}{${2:initial state}}{${3:states}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"state{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"state{${1:name}}[${3:options%keyvals}]{${2:code}}\",\n        \"keys\": [\n          \"\\\\state#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfifdecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfifdecoration{${1:name}}{${2:if code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremetadecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaremetadecoration{${1:name}}{${2:initial state}}{${3:states}}\"\n      }\n    },\n    {\n      \"name\": \"pgfifmetadecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfifmetadecoration{${1:name}}{${2:if code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"decoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decoration{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"beforedecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforedecoration{${1:before code}}\"\n      }\n    },\n    {\n      \"name\": \"afterdecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterdecoration{${1:after code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoratedpathlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedinputsegmentcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedinputsegmentremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratebeforecode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorateaftercode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdecoratepath{${1:name}}{${2:path commands}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecoratecurrentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdecoratecurrentpath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecorationpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorateexistingpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedpathlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedpathfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedpathlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedinputsegmentfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedinputsegmentlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetdecorationsegmenttransformation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetdecorationsegmenttransformation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoratedremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointmetadecoratedpathfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointmetadecoratedpathlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentstartangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentendangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationcurrentinputsegment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationnextinputsegmentobject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationinputsegmentmoveto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationinputsegmentlineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationinputsegmentcurveto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationinputsegmentclosepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationinputsegmentlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfdecoraterectangleclockwise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoraterectangleclockwisetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoraterectangleclockwisefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sseq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:x-range}}{${2:y-range}}\"\n      }\n    },\n    {\n      \"name\": \"sseq\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:x-range}}{${2:y-range}}\",\n        \"keys\": [\n          \"\\\\begin{sseq}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sseq#c\": [\n      \"color\",\n      \"nocolor\",\n      \"debug\"\n    ],\n    \"\\\\begin{sseq}\": [\n      \"grid=${1|none,crossword,go,dots,chess|}\",\n      \"entrysize=\",\n      \"labels=${1:labels}\",\n      \"xlabels=${1:labels}\",\n      \"ylabels=${1:labels}\",\n      \"labelstep=${1:integer}\",\n      \"xlabelstep=${1:integer}\",\n      \"ylabelstep=${1:integer}\",\n      \"gapsize=\",\n      \"xgapsize=\",\n      \"ygapsize=\",\n      \"gridstroke=\",\n      \"leak=\",\n      \"xleak=\",\n      \"yleak=\",\n      \"arrows=${1:arrow type}\"\n    ],\n    \"\\\\ssdrop\": [\n      \"circled\",\n      \"boxed\",\n      \"color=\",\n      \"name=${1:name}\"\n    ],\n    \"\\\\ssdroplabel\": [\n      \"U\",\n      \"LU\",\n      \"RU\",\n      \"L\",\n      \"R\",\n      \"LD\",\n      \"RD\",\n      \"D\",\n      \"color=\"\n    ],\n    \"\\\\ssstroke,\\\\ssline,\\\\ssarrow\": [\n      \"color=\",\n      \"curve=${1:value}\",\n      \"dashed\",\n      \"dashed=${1:dash type}\",\n      \"dotted\",\n      \"dotted=${1:dash type}\",\n      \"arrowfrom\",\n      \"arrowfrom=${1:arrow style}\",\n      \"arrowto\",\n      \"arrowto=${1:arrow style}\",\n      \"void\"\n    ],\n    \"\\\\state#c\": [\n      \"switch if less than=${1:dimen} to ${2:new state}\",\n      \"switch if input segment less than=${1:dimen} to ${2:new state}\",\n      \"width=\",\n      \"repeat state=${1:repetitions}\",\n      \"next state=${1:new state}\",\n      \"if input segment is closepath={${1:options}}\",\n      \"auto end on length=\",\n      \"auto corner on length=\",\n      \"persistent precomputation=${1:precode}\",\n      \"persistent postcomputation=${1:postcode}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sseq#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stabular.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\",\n      \"if\": \"array\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"stabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"stabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"stabular*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"stabular*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stack.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"NewStack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewStack{${1:stack name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"Stack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Stack{${1:stack}}\"\n      }\n    },\n    {\n      \"name\": \"Push\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Push{${1:stack}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"Pop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Pop{${1:stack}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowTop{${1:stack}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stackengine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Sstackgap\"\n    },\n    {\n      \"name\": \"Lstackgap\"\n    },\n    {\n      \"name\": \"setstackgap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setstackgap{${1:S or L}}{${2:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"stackgap\"\n    },\n    {\n      \"name\": \"stackalignment\"\n    },\n    {\n      \"name\": \"quietstack\"\n    },\n    {\n      \"name\": \"useanchorwidth\"\n    },\n    {\n      \"name\": \"stacktype\"\n    },\n    {\n      \"name\": \"stackMath\"\n    },\n    {\n      \"name\": \"lstackMath\"\n    },\n    {\n      \"name\": \"stackText\"\n    },\n    {\n      \"name\": \"lstackText\"\n    },\n    {\n      \"name\": \"strutlongstacks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strutlongstacks{${1:T or F}}\"\n      }\n    },\n    {\n      \"name\": \"strutshortanchors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strutshortanchors{${1:T or F}}\"\n      }\n    },\n    {\n      \"name\": \"setstackEOL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstackEOL{${1:end-of-line character}}\"\n      }\n    },\n    {\n      \"name\": \"stackengine\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"stackengine{${1:gap%l}}{${2:anchor}}{${3:item}}{${4:O or U}}{${5:align%keyvals}}{${6:quiet-bool}}{${7:anchorwidth-bool}}{${8:type}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"stackon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackon{${1:anchor}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"stackon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackon[${3:length}]{${1:anchor}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"stackunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackunder{${1:anchor}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"stackunder\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackunder[${3:length}]{${1:anchor}}{${2:item}}\"\n      }\n    },\n    {\n      \"name\": \"Shortstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shortstack{${1:item1 ... itemN anchor}}\"\n      }\n    },\n    {\n      \"name\": \"Shortstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shortstack[${2:align%keyvals}]{${1:item1 ... itemN anchor}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Longstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Longstack{${1:item1 ... itemN anchor}}\"\n      }\n    },\n    {\n      \"name\": \"Longstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Longstack[${2:align%keyvals}]{${1:item1 ... itemN anchor}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Shortunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Shortunderstack{${1:anchor item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"Shortunderstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Shortunderstack[${2:align%keyvals}]{${1:anchor item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Longunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Longunderstack{${1:anchor item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"Longunderstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Longunderstack[${2:align%keyvals}]{${1:anchor item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tllap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tllap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"tllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tllap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"tclap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tclap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"tclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tclap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"trlap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trlap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"trlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trlap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"bllap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bllap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"bllap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bllap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"bclap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bclap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"bclap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bclap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"brlap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"brlap[${2:length}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"brlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brlap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"toplap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toplap{${1:direction%keyvals}}{${2:item}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"toplap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toplap[${3:length}]{${1:direction%keyvals}}{${2:item}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"bottomlap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bottomlap{${1:direction%keyvals}}{${2:item}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bottomlap\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"bottomlap[${3:length}]{${1:direction%keyvals}}{${2:item}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"stackanchor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackanchor{${1:top item}}{${2:bottom item}}\"\n      }\n    },\n    {\n      \"name\": \"stackanchor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackanchor[${3:gap%l}]{${1:top item}}{${2:bottom item}}\"\n      }\n    },\n    {\n      \"name\": \"Centerstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Centerstack{${1:item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"Centerstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Centerstack[${2:align%keyvals}]{${1:item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vectorstack{${1:item1 ... itemN%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Vectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vectorstack[${2:align%keyvals}]{${1:item1 ... itemN%formula}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parenVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenVectorstack{${1:item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"parenVectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenVectorstack[${2:align%keyvals}]{${1:item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bracketVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracketVectorstack{${1:item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"bracketVectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bracketVectorstack[${2:align%keyvals}]{${1:item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"braceVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braceVectorstack{${1:item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"braceVectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"braceVectorstack[${2:align%keyvals}]{${1:item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vertVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertVectorstack{${1:item1 ... itemN}}\"\n      }\n    },\n    {\n      \"name\": \"vertVectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vertVectorstack[${2:align%keyvals}]{${1:item1 ... itemN}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ensurestackMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensurestackMath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"abovebaseline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abovebaseline{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"abovebaseline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"abovebaseline[${2:gap%l}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"belowbaseline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"belowbaseline{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"belowbaseline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"belowbaseline[${2:gap%l}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"stackinset\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"stackinset{${1:Halign%keyvals}}{${2:Hoffset%l}}{${3:Valign}}{${4:Voffset}}{${5:inset item}}{${6:anchor item}}\",\n        \"keys\": [\n          \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addstackgap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addstackgap{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"addstackgap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addstackgap[${2:gap%l}]{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"hsmash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hsmash{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"savestack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savestack{${1:macro%cmd}}{${2:stacking operation}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stackengine#c\": [\n      \"usestackEOL\",\n      \"oldsyntax\"\n    ],\n    \"\\\\stackengine#c,\\\\Shortstack#c,\\\\Longstack#c,\\\\Shortunderstack#c,\\\\Longunderstack#c,\\\\toplap#c,\\\\bottomlap#c,\\\\Centerstack#c,\\\\Vectorstack#c,\\\\parenVectorstack#c,\\\\bracketVectorstack#c,\\\\braceVectorstack#c,\\\\vertVectorstack#c,\\\\stackinset#c\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stackengine#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stacklet.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"PushCatMakeLetterAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PopLetterCatAt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifltx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stackrel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"stackrel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackrel[${3:sub}]{${1:above}}{${2:rel}}\"\n      }\n    },\n    {\n      \"name\": \"stackbin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackbin{${1:above}}{${2:bin}}\"\n      }\n    },\n    {\n      \"name\": \"stackbin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stackbin[${3:sub}]{${1:above}}{${2:bin}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/standalone.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"filemod-expmin\"\n    },\n    {\n      \"name\": \"gincltex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"trimclip\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includestandalone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includestandalone{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includestandalone\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includestandalone[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\includestandalone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"standaloneconfig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"standaloneconfig{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"standaloneignore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstandalone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstandalonebeamer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonebeamertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"standalonebeamerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfStandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfStandalone{${1:code for standalone}}{${2:code for main document}}\"\n      }\n    },\n    {\n      \"name\": \"onlyifstandalone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlyifstandalone{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"standalone\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/standalone\": [\n      \"subpreambles\",\n      \"sort\",\n      \"print\",\n      \"comments\",\n      \"nocomments\",\n      \"obeyclassoptions\"\n    ],\n    \"\\\\usepackage/standalone,\\\\standaloneconfig,\\\\includestandalone\": [\n      \"group\",\n      \"mode=${1|tex,image,image|tex,build,buildmissing,buildnew|}\",\n      \"extension=${1:extension}\",\n      \"build={${1:build options}}\"\n    ],\n    \"\\\\includestandalone\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/standalone\",\n    \"\\\\usepackage/standalone,\\\\standaloneconfig,\\\\includestandalone\"\n  ]\n}"
  },
  {
    "path": "dev/packages/standardsectioning.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/standardsectioning#c\": [\n      \"article\",\n      \"book\",\n      \"report\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/standardsectioning#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stanli.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryautomata\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrary3d\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dsupport\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"dsupport{2}{${1:insertion point}}[${2:plane}]\"\n      }\n    },\n    {\n      \"name\": \"setcoords\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcoords{${1:x angle}}{${2:y angle}}\"\n      }\n    },\n    {\n      \"name\": \"setcoords\",\n      \"arg\": {\n        \"format\": \"{}{}[][][]\",\n        \"snippet\": \"setcoords{${1:x angle}}{${2:y angle}}[${3:x dir}][${4:y dir}][${5:z dir}]\"\n      }\n    },\n    {\n      \"name\": \"setcoords\",\n      \"arg\": {\n        \"format\": \"{}{}[][][][]\",\n        \"snippet\": \"setcoords{${1:x angle}}{${2:y angle}}[${3:x dir}][${4:y dir}][${5:z dir}][${6:z angle}]\"\n      }\n    },\n    {\n      \"name\": \"setaxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaxis{1}\"\n      }\n    },\n    {\n      \"name\": \"setaxis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setaxis{2}\"\n      }\n    },\n    {\n      \"name\": \"setaxis\",\n      \"arg\": {\n        \"format\": \"{}[][][][][][]\",\n        \"snippet\": \"setaxis{3}[${1:Xlabel}][${2:Ylabel}][${3:Zlabel}][${4:xlabel}][${5:ylabel}][${6:zlabel}]\"\n      }\n    },\n    {\n      \"name\": \"setaxis\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"setaxis{4}[${1:x orient.}][${2:y orient.}][${3:z orient.}]\"\n      }\n    },\n    {\n      \"name\": \"showpoint\"\n    },\n    {\n      \"name\": \"dscaling\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dscaling{${1:type%keyvals}}{${2:factor}}\",\n        \"keys\": [\n          \"\\\\dscaling#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DaddonLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DaxisDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DaxisLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DbigLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DdimensioningBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DforceDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DforceLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhelpVarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhelpVarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhelpVarC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhingeAxialHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhingeAxialLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhingeBigRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhingeCornerLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhingeRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DhugeLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DlineloadDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DlineloadDistanceMM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DlineloadForce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DlineloadInterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DlocalaxisLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DnormalLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DnoteRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DscalingParameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DshowPointParameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DsmallLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DspringAmplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DspringLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DspringPostLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DspringPreLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DspringSegmentLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DsupportGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DsupportLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DtinyLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DxAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DxLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DxNodePos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DxVarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DxVarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DyAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DyLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DyNodePos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DyVarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DyVarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DzAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DzLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DzNodePos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DzVarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DzVarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colorGray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimensioningBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatchingAmplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatchingAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatchingLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helpVarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helpVarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hingeAxialHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hingeAxialLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hingeCornerLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hingeRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hugeLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineloadDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineloadForce\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineloadInterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentAngle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"momentDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pathdrawcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pathfillcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scalingParameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springAmplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springPostLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springPreLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"springSegmentLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportBasicHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportBasicLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportGap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportHatchingHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportHatchingLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supportLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"temperatureHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tinyLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotmult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotmult{${1:macro%cmd}}{${2:x}}{${3:y}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotresetrotatedcoordsorigin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotsetrotatedcoordsorigin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tdplotsetrotatedcoordsorigin{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsetrotatedcoords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotsetrotatedcoords{${1:angle1}}{${2:angle2}}{${3:angle3}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsinandcos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotsinandcos{${1:macor1%cmd}}{${2:macor2%cmd}}{${3:angle}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\beam#c,\\\\dbeam#c\": [\n      \"1\",\n      \"2\",\n      \"3\",\n      \"4\"\n    ],\n    \"\\\\support#c\": [\n      \"1\",\n      \"2\",\n      \"3\",\n      \"4\",\n      \"5\",\n      \"6\"\n    ],\n    \"\\\\load#c\": [\n      \"1\",\n      \"2\",\n      \"3\"\n    ],\n    \"\\\\dimensioning#c\": [\n      \"1\",\n      \"2\",\n      \"3\"\n    ],\n    \"\\\\dload#c\": [\n      \"1\",\n      \"2\",\n      \"3\",\n      \"4\"\n    ],\n    \"\\\\dscaling#c\": [\n      \"1\",\n      \"2\",\n      \"3\",\n      \"4\",\n      \"5\",\n      \"6\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/starfont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"starfontsans\"\n    },\n    {\n      \"name\": \"starfontserif\"\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"Jupiter\"\n    },\n    {\n      \"name\": \"Moon\"\n    },\n    {\n      \"name\": \"Saturn\"\n    },\n    {\n      \"name\": \"Mercury\"\n    },\n    {\n      \"name\": \"Uranus\"\n    },\n    {\n      \"name\": \"Venus\"\n    },\n    {\n      \"name\": \"Neptune\"\n    },\n    {\n      \"name\": \"Terra\"\n    },\n    {\n      \"name\": \"Pluto\"\n    },\n    {\n      \"name\": \"Mars\"\n    },\n    {\n      \"name\": \"varTerra\"\n    },\n    {\n      \"name\": \"Aries\"\n    },\n    {\n      \"name\": \"Libra\"\n    },\n    {\n      \"name\": \"Taurus\"\n    },\n    {\n      \"name\": \"Scorpio\"\n    },\n    {\n      \"name\": \"Gemini\"\n    },\n    {\n      \"name\": \"Sagittarius\"\n    },\n    {\n      \"name\": \"Cancer\"\n    },\n    {\n      \"name\": \"Capricorn\"\n    },\n    {\n      \"name\": \"Leo\"\n    },\n    {\n      \"name\": \"Aquarius\"\n    },\n    {\n      \"name\": \"Virgo\"\n    },\n    {\n      \"name\": \"Pisces\"\n    },\n    {\n      \"name\": \"varCapricorn\"\n    },\n    {\n      \"name\": \"Zodiac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Zodiac{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ceres\"\n    },\n    {\n      \"name\": \"Amor\"\n    },\n    {\n      \"name\": \"Pallas\"\n    },\n    {\n      \"name\": \"Eros\"\n    },\n    {\n      \"name\": \"Juno\"\n    },\n    {\n      \"name\": \"Hidalgo\"\n    },\n    {\n      \"name\": \"Vesta\"\n    },\n    {\n      \"name\": \"Hygiea\"\n    },\n    {\n      \"name\": \"Chiron\"\n    },\n    {\n      \"name\": \"Psyche\"\n    },\n    {\n      \"name\": \"Sappho\"\n    },\n    {\n      \"name\": \"Cupido\"\n    },\n    {\n      \"name\": \"Apollon\"\n    },\n    {\n      \"name\": \"Hades\"\n    },\n    {\n      \"name\": \"Admetos\"\n    },\n    {\n      \"name\": \"Zeus\"\n    },\n    {\n      \"name\": \"Vulkanus\"\n    },\n    {\n      \"name\": \"Kronos\"\n    },\n    {\n      \"name\": \"Poseidon\"\n    },\n    {\n      \"name\": \"NorthNode\"\n    },\n    {\n      \"name\": \"SouthNode\"\n    },\n    {\n      \"name\": \"Lilith\"\n    },\n    {\n      \"name\": \"Fortune\"\n    },\n    {\n      \"name\": \"Conjunction\"\n    },\n    {\n      \"name\": \"Quincunx\"\n    },\n    {\n      \"name\": \"Opposition\"\n    },\n    {\n      \"name\": \"Semisextile\"\n    },\n    {\n      \"name\": \"Trine\"\n    },\n    {\n      \"name\": \"Semisquare\"\n    },\n    {\n      \"name\": \"Square\"\n    },\n    {\n      \"name\": \"Sesquiquadrate\"\n    },\n    {\n      \"name\": \"Sextile\"\n    },\n    {\n      \"name\": \"ASC\"\n    },\n    {\n      \"name\": \"DSC\"\n    },\n    {\n      \"name\": \"MC\"\n    },\n    {\n      \"name\": \"IC\"\n    },\n    {\n      \"name\": \"Vertex\"\n    },\n    {\n      \"name\": \"EastPoint\"\n    },\n    {\n      \"name\": \"Retrograde\"\n    },\n    {\n      \"name\": \"Station\"\n    },\n    {\n      \"name\": \"Direct\"\n    },\n    {\n      \"name\": \"Fire\"\n    },\n    {\n      \"name\": \"Earth\"\n    },\n    {\n      \"name\": \"Air\"\n    },\n    {\n      \"name\": \"Water\"\n    },\n    {\n      \"name\": \"Natal\"\n    },\n    {\n      \"name\": \"Radix\"\n    },\n    {\n      \"name\": \"Pentagram\"\n    },\n    {\n      \"name\": \"varMoon\"\n    },\n    {\n      \"name\": \"varUranus\"\n    },\n    {\n      \"name\": \"varPluto\"\n    },\n    {\n      \"name\": \"stf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stchr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textstf{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/starfont#c\": [\n      \"starfontsans\",\n      \"starfontserif\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/starfont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/starray.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/starray#c\": [\n      \"prefix=${1:prefix}\",\n      \"msg-err=${1|none,strict,syntax,reference,all|}\",\n      \"msg-suppress=${1|none,reference,syntax,strict,all|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/starray#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/statistics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"statisticssetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"statisticssetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsTable\",\n          \"\\\\statisticssetup#c,\\\\StatsGraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"statisticssetup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"statisticssetup[${2:module}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsTable\",\n          \"\\\\statisticssetup#c,\\\\StatsGraph\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"StatsTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StatsTable{${1:data source}}\"\n      }\n    },\n    {\n      \"name\": \"StatsTable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"StatsTable[${2:options%keyvals}]{${1:data source}}\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsTable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"StatsTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"StatsTable{${1:data source}}[${2:options}]\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsTable\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"StatsTable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"StatsTable[${2:options%keyvals}]{${1:data source}}[${3:options}]\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsTable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valuename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"freqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firsthline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lasthline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StatsGraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StatsGraph{${1:data source}}\"\n      }\n    },\n    {\n      \"name\": \"StatsGraph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"StatsGraph[${2:options%keyvals}]{${1:data source}}\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsGraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"StatsGraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"StatsGraph{${1:data source}}[${2:options}]\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsGraph\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"StatsGraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"StatsGraph[${2:options%keyvals}]{${1:data source}}[${3:options}]\",\n        \"keys\": [\n          \"\\\\statisticssetup#c,\\\\StatsGraph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ccountname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfreqname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"min\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"max\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"range\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"total\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\statisticssetup#c,\\\\StatsTable\": [\n      \"values\",\n      \"values=${1:row header text}\",\n      \"counts\",\n      \"counts=${1:row header text}\",\n      \"frequencies\",\n      \"frequencies=${1:row header text}\",\n      \"icc\",\n      \"icc=${1:row header text}\",\n      \"icf\",\n      \"icf=${1:row header text}\",\n      \"dcc\",\n      \"dcc=${1:row header text}\",\n      \"dcf\",\n      \"dcf=${1:row header text}\",\n      \"novalues\",\n      \"nocounts\",\n      \"nofrequencies\",\n      \"noicc\",\n      \"nodcc\",\n      \"noicf\",\n      \"nodcf\",\n      \"values/header=${1:row header text}\",\n      \"counts/header=${1:row header text}\",\n      \"frequencies/header=${1:row header text}\",\n      \"icc/header=${1:row header text}\",\n      \"icf/header=${1:row header text}\",\n      \"dcc/header=${1:row header text}\",\n      \"dcf/header=${1:row header text}\",\n      \"values/format=${1:formatting code}\",\n      \"counts/format=${1:formatting code}\",\n      \"frequencies/format=${1:formatting code}\",\n      \"icc/format=${1:formatting code}\",\n      \"icf/format=${1:formatting code}\",\n      \"dcc/format=${1:formatting code}\",\n      \"dcf/format=${1:formatting code}\",\n      \"allcounts/format=${1:formatting code}\",\n      \"allfreqs/format=${1:formatting code}\",\n      \"allfreqs/format/percent\",\n      \"allfreqs/format/real\",\n      \"digits=${1:integer}\",\n      \"showonly={${1:integer/range list}}\",\n      \"showonly/hidden=${1:formatting code}\",\n      \"showonly/shown=${1:formatting code}\",\n      \"maxcols={${1:integer list}}\",\n      \"tablesep=${1:TeX content}\",\n      \"preline=${1:array content}\",\n      \"postline=${1:array content}\",\n      \"outline=${1:array content}\",\n      \"newline=${1:array content}\",\n      \"coltype=${1:coltype}\",\n      \"headcoltype=${1:coltype}\",\n      \"frame=${1|none,clean,full|}\",\n      \"valign=${1|t,c,b|}\"\n    ],\n    \"\\\\statisticssetup#c,\\\\StatsGraph\": [\n      \"picture={${1:TikZ options}}\",\n      \"picture/reset\",\n      \"axissystem={${1:TikZ axis options}}\",\n      \"axissystem/reset\",\n      \"width=\",\n      \"height\",\n      \"tikzinfo'={${1:TikZ picture code}}\",\n      \"tikzinfo'/reset\",\n      \"tikzinfo={${1:TikZ picture code}}\",\n      \"tikzinfo/reset\",\n      \"style={${1:TikZ path options}}\",\n      \"style/reset\",\n      \"comb/style={${1:TikZ path options}}\",\n      \"comb/style/reset\",\n      \"histogram/style={${1:TikZ path options}}\",\n      \"histogram/style/reset\",\n      \"cumulative/style={${1:TikZ path options}}\",\n      \"cumulative/style/reset\",\n      \"showonly={${1:integer/range list}}\",\n      \"counts\",\n      \"counts=${1:label}\",\n      \"frequencies\",\n      \"frequencies=${1:label}\",\n      \"comb/counts\",\n      \"comb/counts=${1:label}\",\n      \"comb/frequencies\",\n      \"comb/frequencies=${1:label}\",\n      \"histogram/counts\",\n      \"histogram/counts=${1:label}\",\n      \"histogram/frequencies\",\n      \"histogram/frequencies=${1:label}\",\n      \"cumulative/counts\",\n      \"cumulative/counts=${1:label}\",\n      \"cumulative/frequencies\",\n      \"cumulative/frequencies=${1:label}\",\n      \"counts/label=${1:label}\",\n      \"frequencies/label=${1:label}\",\n      \"comb/counts/label=${1:label}\",\n      \"comb/frequencies/label=${1:label}\",\n      \"histogram/counts/label=${1:label}\",\n      \"histogram/frequencies/label=${1:label}\",\n      \"cumulative/counts/label=${1:label}\",\n      \"cumulative/frequencies/label=${1:label}\",\n      \"y/label=${1:label}\",\n      \"comb/y/label=${1:label}\",\n      \"histogram/y/label=${1:label}\",\n      \"cumulative/y/label=${1:label}\",\n      \"counts/axis={${1:TikZ axis options}}\",\n      \"frequencies/axis={${1:TikZ axis options}}\",\n      \"comb/counts/axis={${1:TikZ axis options}}\",\n      \"comb/frequencies/axis={${1:TikZ axis options}}\",\n      \"histogram/counts/axis={${1:TikZ axis options}}\",\n      \"histogram/frequencies/axis={${1:TikZ axis options}}\",\n      \"cumulative/counts/axis={${1:TikZ axis options}}\",\n      \"cumulative/frequencies/axis={${1:TikZ axis options}}\",\n      \"counts/axis/reset\",\n      \"frequencies/axis/reset\",\n      \"comb/counts/axis/reset\",\n      \"comb/frequencies/axis/reset\",\n      \"histogram/counts/axis/reset\",\n      \"histogram/frequencies/axis/reset\",\n      \"cumulative/counts/axis/reset\",\n      \"cumulative/frequencies/axis/reset\",\n      \"y/axis={${1:TikZ axis options}}\",\n      \"y/axis/reset\",\n      \"comb/axis={${1:TikZ axis options}}\",\n      \"comb/axis/reset\",\n      \"histogram/axis={${1:TikZ axis options}}\",\n      \"histogram/axis/reset\",\n      \"cumulative/axis={${1:TikZ axis options}}\",\n      \"cumulative/axis/reset\",\n      \"counts/format=${1:formatting code}\",\n      \"frequencies/format=${1:formatting code}\",\n      \"y/format=${1:formatting code}\",\n      \"comb/counts/format=${1:formatting code}\",\n      \"comb/frequencies/format=${1:formatting code}\",\n      \"comb/y/format=${1:formatting code}\",\n      \"histogram/counts/format=${1:formatting code}\",\n      \"histogram/frequencies/format=${1:formatting code}\",\n      \"histogram/y/format=${1:formatting code}\",\n      \"cumulative/counts/format=${1:formatting code}\",\n      \"cumulative/frequencies/format=${1:formatting code}\",\n      \"cumulative/y/format=${1:formatting code}\",\n      \"frequencies/format/real=${1:places}\",\n      \"comb/frequencies/format/real=${1:places}\",\n      \"histogram/frequencies/format/real=${1:places}\",\n      \"cumulative/frequencies/format/real=${1:places}\",\n      \"frequencies/format/percent=${1:places}\",\n      \"comb/frequencies/format/percent=${1:places}\",\n      \"histogram/frequencies/format/percent=${1:places}\",\n      \"cumulative/frequencies/format/percent=${1:places}\",\n      \"counts/margin=${1:expr}\",\n      \"frequencies/margin=${1:expr}\",\n      \"y/margin=${1:expr}\",\n      \"comb/counts/margin=${1:expr}\",\n      \"comb/frequencies/margin=${1:expr}\",\n      \"comb/y/margin=${1:expr}\",\n      \"histogram/counts/margin=${1:expr}\",\n      \"histogram/frequencies/margin=${1:expr}\",\n      \"histogram/y/margin=${1:expr}\",\n      \"cumulative/counts/margin=${1:expr}\",\n      \"cumulative/frequencies/margin=${1:expr}\",\n      \"cumulative/y/margin=${1:expr}\",\n      \"values/label=${1:label}\",\n      \"x/label=${1:label}\",\n      \"comb/values/label=${1:label}\",\n      \"comb/x/label=${1:label}\",\n      \"histogram/values/label=${1:label}\",\n      \"histogram/x/label=${1:label}\",\n      \"cumulative/values/label=${1:label}\",\n      \"cumulative/x/label=${1:label}\",\n      \"values/axis={${1:TikZ axis options}}\",\n      \"x/axis={${1:TikZ axis options}}\",\n      \"comb/values/axis={${1:TikZ axis options}}\",\n      \"comb/x/axis={${1:TikZ axis options}}\",\n      \"histogram/values/axis={${1:TikZ axis options}}\",\n      \"histogram/x/axis={${1:TikZ axis options}}\",\n      \"cumulative/values/axis={${1:TikZ axis options}}\",\n      \"cumulative/x/axis={${1:TikZ axis options}}\",\n      \"values/axis/reset\",\n      \"x/axis/reset\",\n      \"comb/values/axis/reset\",\n      \"comb/x/axis/reset\",\n      \"histogram/values/axis/reset\",\n      \"histogram/x/axis/reset\",\n      \"cumulative/values/axis/reset\",\n      \"cumulative/x/axis/reset\",\n      \"values/format=${1:formatting code}\",\n      \"x/format=${1:formatting code}\",\n      \"comb/values/format=${1:formatting code}\",\n      \"comb/x/format=${1:formatting code}\",\n      \"histogram/values/format=${1:formatting code}\",\n      \"histogram/x/format=${1:formatting code}\",\n      \"cumulative/values/format=${1:formatting code}\",\n      \"cumulative/x/format=${1:formatting code}\",\n      \"values/margin=${1:expr}\",\n      \"x/margin=${1:expr}\",\n      \"comb/values/margin=${1:expr}\",\n      \"comb/x/margin=${1:expr}\",\n      \"histogram/values/margin=${1:expr}\",\n      \"histogram/x/margin=${1:expr}\",\n      \"cumulative/values/margin=${1:expr}\",\n      \"cumulative/x/margin=${1:expr}\",\n      \"cumulative\",\n      \"decreasing\",\n      \"histogram/areas\",\n      \"histogram/areas/style={${1:TikZ node options}}\",\n      \"histogram/areas/style/reset\",\n      \"histogram/counts/autostep\",\n      \"histogram/counts/autostep=${1:fp expr}\",\n      \"histogram/frequencies/autostep\",\n      \"histogram/frequencies/autostep=${1:fp expr}\",\n      \"histogram/y/autostep\",\n      \"histogram/y/autostep=${1:fp expr}\",\n      \"histogram/legend={${1:legend keys}}\",\n      \"histogram/legend/x\",\n      \"histogram/legend/x=${1:fp expr}\",\n      \"histogram/legend/w\",\n      \"histogram/legend/w=${1:fp expr}\",\n      \"histogram/legend/y=${1:fp expr}\",\n      \"histogram/legend/h=${1:fp expr}\",\n      \"histogram/legend/area=${1:fp expr}\",\n      \"histogram/legend/options={${1:TikZ node options}}\",\n      \"histogram/legend/options/reset\",\n      \"histogram/legend/label=${1:TikZ label value}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/statmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"bm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"abcbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abcbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"greekbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greekbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bfA\"\n    },\n    {\n      \"name\": \"bfB\"\n    },\n    {\n      \"name\": \"bfC\"\n    },\n    {\n      \"name\": \"bfD\"\n    },\n    {\n      \"name\": \"bfE\"\n    },\n    {\n      \"name\": \"bfF\"\n    },\n    {\n      \"name\": \"bfG\"\n    },\n    {\n      \"name\": \"bfH\"\n    },\n    {\n      \"name\": \"bfI\"\n    },\n    {\n      \"name\": \"bfJ\"\n    },\n    {\n      \"name\": \"bfK\"\n    },\n    {\n      \"name\": \"bfL\"\n    },\n    {\n      \"name\": \"bfM\"\n    },\n    {\n      \"name\": \"bfN\"\n    },\n    {\n      \"name\": \"bfO\"\n    },\n    {\n      \"name\": \"bfP\"\n    },\n    {\n      \"name\": \"bfQ\"\n    },\n    {\n      \"name\": \"bfR\"\n    },\n    {\n      \"name\": \"bfS\"\n    },\n    {\n      \"name\": \"bfT\"\n    },\n    {\n      \"name\": \"bfU\"\n    },\n    {\n      \"name\": \"bfV\"\n    },\n    {\n      \"name\": \"bfW\"\n    },\n    {\n      \"name\": \"bfX\"\n    },\n    {\n      \"name\": \"bfY\"\n    },\n    {\n      \"name\": \"bfZ\"\n    },\n    {\n      \"name\": \"bfa\"\n    },\n    {\n      \"name\": \"bfb\"\n    },\n    {\n      \"name\": \"bfc\"\n    },\n    {\n      \"name\": \"bfd\"\n    },\n    {\n      \"name\": \"bfe\"\n    },\n    {\n      \"name\": \"bff\"\n    },\n    {\n      \"name\": \"bfg\"\n    },\n    {\n      \"name\": \"bfh\"\n    },\n    {\n      \"name\": \"bfi\"\n    },\n    {\n      \"name\": \"bfj\"\n    },\n    {\n      \"name\": \"bfk\"\n    },\n    {\n      \"name\": \"bfl\"\n    },\n    {\n      \"name\": \"bfm\"\n    },\n    {\n      \"name\": \"bfn\"\n    },\n    {\n      \"name\": \"bfo\"\n    },\n    {\n      \"name\": \"bfp\"\n    },\n    {\n      \"name\": \"bfq\"\n    },\n    {\n      \"name\": \"bfr\"\n    },\n    {\n      \"name\": \"bfs\"\n    },\n    {\n      \"name\": \"bft\"\n    },\n    {\n      \"name\": \"bfu\"\n    },\n    {\n      \"name\": \"bfv\"\n    },\n    {\n      \"name\": \"bfw\"\n    },\n    {\n      \"name\": \"bfx\"\n    },\n    {\n      \"name\": \"bfy\"\n    },\n    {\n      \"name\": \"bfz\"\n    },\n    {\n      \"name\": \"bfalpha\"\n    },\n    {\n      \"name\": \"bfbeta\"\n    },\n    {\n      \"name\": \"bfdelta\"\n    },\n    {\n      \"name\": \"bfepsilon\"\n    },\n    {\n      \"name\": \"bfvarepsilon\"\n    },\n    {\n      \"name\": \"bfzeta\"\n    },\n    {\n      \"name\": \"bfeta\"\n    },\n    {\n      \"name\": \"bftheta\"\n    },\n    {\n      \"name\": \"bfvartheta\"\n    },\n    {\n      \"name\": \"bfgamma\"\n    },\n    {\n      \"name\": \"bfkappa\"\n    },\n    {\n      \"name\": \"bflambda\"\n    },\n    {\n      \"name\": \"bfmu\"\n    },\n    {\n      \"name\": \"bfnu\"\n    },\n    {\n      \"name\": \"bfxi\"\n    },\n    {\n      \"name\": \"bfpi\"\n    },\n    {\n      \"name\": \"bfvarpi\"\n    },\n    {\n      \"name\": \"bfrho\"\n    },\n    {\n      \"name\": \"bfvarrho\"\n    },\n    {\n      \"name\": \"bfsigma\"\n    },\n    {\n      \"name\": \"bfvarsigma\"\n    },\n    {\n      \"name\": \"bftau\"\n    },\n    {\n      \"name\": \"bfupsilon\"\n    },\n    {\n      \"name\": \"bfphi\"\n    },\n    {\n      \"name\": \"bfvarphi\"\n    },\n    {\n      \"name\": \"bfchi\"\n    },\n    {\n      \"name\": \"bfpsi\"\n    },\n    {\n      \"name\": \"bfomega\"\n    },\n    {\n      \"name\": \"bfiota\"\n    },\n    {\n      \"name\": \"bfGamma\"\n    },\n    {\n      \"name\": \"bfDelta\"\n    },\n    {\n      \"name\": \"bfTheta\"\n    },\n    {\n      \"name\": \"bfLambda\"\n    },\n    {\n      \"name\": \"bfXi\"\n    },\n    {\n      \"name\": \"bfPi\"\n    },\n    {\n      \"name\": \"bfSigma\"\n    },\n    {\n      \"name\": \"bfUpsilon\"\n    },\n    {\n      \"name\": \"bfPhi\"\n    },\n    {\n      \"name\": \"bfPsi\"\n    },\n    {\n      \"name\": \"bfOmega\"\n    },\n    {\n      \"name\": \"bfzero\"\n    },\n    {\n      \"name\": \"cov\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"V\"\n    },\n    {\n      \"name\": \"inas\"\n    },\n    {\n      \"name\": \"inprob\"\n    },\n    {\n      \"name\": \"indist\"\n    },\n    {\n      \"name\": \"plim\"\n    },\n    {\n      \"name\": \"tr\"\n    },\n    {\n      \"name\": \"vc\"\n    },\n    {\n      \"name\": \"vcs\"\n    },\n    {\n      \"name\": \"vch\"\n    },\n    {\n      \"name\": \"diag\"\n    },\n    {\n      \"name\": \"argmin\"\n    },\n    {\n      \"name\": \"argmax\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/statmath#c\": [\n      \"abcbm\",\n      \"greekbm\",\n      \"abcbf\",\n      \"greekbs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/statmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/statrep.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"sas\"\n    },\n    {\n      \"name\": \"longfigure\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Listing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Listing{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Listing\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Listing[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Listing,\\\\Graphic\",\n          \"\\\\Listing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Graphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Graphic{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Graphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Graphic[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Listing,\\\\Graphic\",\n          \"\\\\Graphic\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SRcaptionfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRcaptioncontinuedfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRcontinuedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRdefaultdests\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRdpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRgraphicdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRgraphtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRlatexdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRlatexstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRodsgraphopts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRintertext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRlinesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRlistingdir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRmacropath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRmacroinclude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRpagesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRprogramline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRprogramname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRtempfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SRverbfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dosloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unsloppy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Boxlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Boxlisting{${1:file name}}\"\n      }\n    },\n    {\n      \"name\": \"Boxgraphic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Boxgraphic{${1:file name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Datastep\"\n    },\n    {\n      \"name\": \"Datastep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Datastep}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Sascode\"\n    },\n    {\n      \"name\": \"Sascode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{Sascode}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/statrep#c\": [\n      \"generate\",\n      \"color\",\n      \"figname=${1:counter}\",\n      \"resetby=${1:counter}\",\n      \"set\",\n      \"final\",\n      \"errorshow\",\n      \"pausing\"\n    ],\n    \"\\\\begin{Datastep}\": [\n      \"program\",\n      \"display\",\n      \"first=${1:n}\",\n      \"last=${1:m}\",\n      \"fontsize=\"\n    ],\n    \"\\\\begin{Sascode}\": [\n      \"store=${1:name}\",\n      \"program\",\n      \"display\",\n      \"fontsize=\"\n    ],\n    \"\\\\Listing,\\\\Graphic\": [\n      \"caption={%|}\",\n      \"firstobj=\",\n      \"lastobj=\",\n      \"objects=\",\n      \"options=${1|autopage,graph,list,newpage,nopage,onebox,skipfirst,skiplast,table|}\",\n      \"pattern=\",\n      \"store=${1:name}\",\n      \"style=\",\n      \"type=${1|listing,graph|}\"\n    ],\n    \"\\\\Listing\": [\n      \"dest=\",\n      \"fontsize=\",\n      \"linesize=\",\n      \"pagesize=\"\n    ],\n    \"\\\\Graphic\": [\n      \"dpi=\",\n      \"height=\",\n      \"scale=\",\n      \"width=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/statrep#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/staves.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"icelandicFamily\"\n    },\n    {\n      \"name\": \"runictext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runictext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"staveI\"\n    },\n    {\n      \"name\": \"staveII\"\n    },\n    {\n      \"name\": \"staveIII\"\n    },\n    {\n      \"name\": \"staveIV\"\n    },\n    {\n      \"name\": \"staveIX\"\n    },\n    {\n      \"name\": \"staveL\"\n    },\n    {\n      \"name\": \"staveLI\"\n    },\n    {\n      \"name\": \"staveLII\"\n    },\n    {\n      \"name\": \"staveLIII\"\n    },\n    {\n      \"name\": \"staveLIV\"\n    },\n    {\n      \"name\": \"staveLIX\"\n    },\n    {\n      \"name\": \"staveLV\"\n    },\n    {\n      \"name\": \"staveLVI\"\n    },\n    {\n      \"name\": \"staveLVII\"\n    },\n    {\n      \"name\": \"staveLVIII\"\n    },\n    {\n      \"name\": \"staveLX\"\n    },\n    {\n      \"name\": \"staveLXI\"\n    },\n    {\n      \"name\": \"staveLXII\"\n    },\n    {\n      \"name\": \"staveLXIII\"\n    },\n    {\n      \"name\": \"staveLXIV\"\n    },\n    {\n      \"name\": \"staveLXV\"\n    },\n    {\n      \"name\": \"staveLXVI\"\n    },\n    {\n      \"name\": \"staveLXVII\"\n    },\n    {\n      \"name\": \"staveLXVIII\"\n    },\n    {\n      \"name\": \"staveV\"\n    },\n    {\n      \"name\": \"staveVI\"\n    },\n    {\n      \"name\": \"staveVII\"\n    },\n    {\n      \"name\": \"staveVIII\"\n    },\n    {\n      \"name\": \"staveX\"\n    },\n    {\n      \"name\": \"staveXI\"\n    },\n    {\n      \"name\": \"staveXII\"\n    },\n    {\n      \"name\": \"staveXIII\"\n    },\n    {\n      \"name\": \"staveXIV\"\n    },\n    {\n      \"name\": \"staveXIX\"\n    },\n    {\n      \"name\": \"staveXL\"\n    },\n    {\n      \"name\": \"staveXLI\"\n    },\n    {\n      \"name\": \"staveXLII\"\n    },\n    {\n      \"name\": \"staveXLIII\"\n    },\n    {\n      \"name\": \"staveXLIV\"\n    },\n    {\n      \"name\": \"staveXLIX\"\n    },\n    {\n      \"name\": \"staveXLV\"\n    },\n    {\n      \"name\": \"staveXLVI\"\n    },\n    {\n      \"name\": \"staveXLVII\"\n    },\n    {\n      \"name\": \"staveXLVIII\"\n    },\n    {\n      \"name\": \"staveXV\"\n    },\n    {\n      \"name\": \"staveXVI\"\n    },\n    {\n      \"name\": \"staveXVII\"\n    },\n    {\n      \"name\": \"staveXVIII\"\n    },\n    {\n      \"name\": \"staveXX\"\n    },\n    {\n      \"name\": \"staveXXI\"\n    },\n    {\n      \"name\": \"staveXXII\"\n    },\n    {\n      \"name\": \"staveXXIII\"\n    },\n    {\n      \"name\": \"staveXXIV\"\n    },\n    {\n      \"name\": \"staveXXIX\"\n    },\n    {\n      \"name\": \"staveXXV\"\n    },\n    {\n      \"name\": \"staveXXVI\"\n    },\n    {\n      \"name\": \"staveXXVII\"\n    },\n    {\n      \"name\": \"staveXXVIII\"\n    },\n    {\n      \"name\": \"staveXXX\"\n    },\n    {\n      \"name\": \"staveXXXI\"\n    },\n    {\n      \"name\": \"staveXXXII\"\n    },\n    {\n      \"name\": \"staveXXXIII\"\n    },\n    {\n      \"name\": \"staveXXXIV\"\n    },\n    {\n      \"name\": \"staveXXXIX\"\n    },\n    {\n      \"name\": \"staveXXXV\"\n    },\n    {\n      \"name\": \"staveXXXVI\"\n    },\n    {\n      \"name\": \"staveXXXVII\"\n    },\n    {\n      \"name\": \"staveXXXVIII\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stdclsdv.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ifSCDknownclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDknownclasstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDknownclassfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSCDchapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDchaptertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDchapterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSCDpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDparttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDpartfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSCDsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDsectiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDsectionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSCDnodivs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDnodivstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDnodivsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDquit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDCheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SCDCheckCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"SCDCheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SCDCheckCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"SCDCheckCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"SCDCheckCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ifSCDSameDefinition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDSameDefinitiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SCDSameDefinitionfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stdpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"typearea\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"titlesec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CharsX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CharsI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeichenzahl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeilenzahl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stdpage#c\": [\n      \"just\",\n      \"noindent\",\n      \"linenumbers\",\n      \"hyphen\",\n      \"parskip\",\n      \"chars=${1:integer}\",\n      \"lines=${1:integer}\",\n      \"baselinestretch\",\n      \"baselinestretch=${1:factor}\",\n      \"typewriter\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stdpage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stealcaps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"renewcaps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"renewcaps{${1:font name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stealcaps#c\": [\n      \"from=${1:font name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stealcaps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/steinmetz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phase{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phase[${2:stylenum%keyvals}]{${1:arg}}\",\n        \"keys\": [\n          \"\\\\phase\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\phase\": [\n      \"0\",\n      \"1\",\n      \"2\",\n      \"3\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/step.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"lining\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lining{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oldstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/step#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"mainfont\",\n      \"bold\",\n      \"regular\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/step#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/steroid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"carom\"\n    },\n    {\n      \"name\": \"ccycle\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"androstane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"androstane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"androstane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"androstane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"androstanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"androstanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"androstanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"androstanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"androstanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"androstanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"androstanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"androstanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"campestanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"campestanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"campestanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cholestanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"cholestanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cholestanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ergostanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"ergostanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ergostanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estrane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"estrane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estrane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"estrane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estranealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"estranealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estranealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"estranealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estranebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"estranebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"estranebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"estranebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furostan{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furostan[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostanalpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furostanalpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostanalpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furostanalpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostanbeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"furostanbeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"furostanbeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"furostanbeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gonane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gonane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gonanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gonanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gonanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"gonanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gonanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poriferastanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"poriferastanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"poriferastanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pregnane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pregnane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pregnanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pregnanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pregnanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pregnanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pregnanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranoseChairi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyranoseChairi{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranoseChairi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyranoseChairi[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranoseChairii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pyranoseChairii{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"pyranoseChairii\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pyranoseChairii[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostan\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spirostan{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostan\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spirostan[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostanalpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spirostanalpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostanalpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spirostanalpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostanbeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spirostanbeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostanbeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spirostanbeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostannor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"spirostannor{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"spirostannor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"spirostannor[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidChain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidChain{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidChain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidChain[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidShortChain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidShortChain{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidShortChain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidShortChain[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidethylchain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidethylchain{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidethylchain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidethylchain[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidfuros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidfuros{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidfuros\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidfuros[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidshortchain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidshortchain{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidshortchain\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidshortchain[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidspiro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"steroidspiro{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"steroidspiro\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"steroidspiro[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastanE{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastanE[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastane\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastane{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastane\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastane[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastaneAlpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastaneAlpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastaneAlpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastaneAlpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastaneBeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastaneBeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastaneBeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastaneBeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanealpha\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastanealpha{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanealpha\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastanealpha[${2:bondlist}]{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanebeta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stigmastanebeta{${1:subslist}}\"\n      }\n    },\n    {\n      \"name\": \"stigmastanebeta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stigmastanebeta[${2:bondlist}]{${1:subslist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stex-logo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stex-tikzinput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stex\"\n    },\n    {\n      \"name\": \"tikzinput\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mhtikzinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mhtikzinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mhtikzinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mhtikzinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\mhtikzinput,\\\\cmhtikzinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cmhtikzinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmhtikzinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"cmhtikzinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmhtikzinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\mhtikzinput,\\\\cmhtikzinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"libusetikzlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libusetikzlibrary{${1:library}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mhtikzinput,\\\\cmhtikzinput\": [\n      \"mhrepos=${1:file path}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"stex-logo\"\n    },\n    {\n      \"name\": \"standalone\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"stex-tikzinput\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"libinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"libusepackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libusepackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"libusepackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"libusepackage[${2:options}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"addmhbibresource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addmhbibresource{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"addmhbibresource\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addmhbibresource[${2:archive}]{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"libusetikzlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libusetikzlibrary{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"ifstexhtml\"\n    },\n    {\n      \"name\": \"STEXinvisible\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STEXinvisible{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"skipfragment\"\n    },\n    {\n      \"name\": \"setsectionlevel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsectionlevel{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"currentsectionlevel\"\n    },\n    {\n      \"name\": \"Currentsectionlevel\"\n    },\n    {\n      \"name\": \"inputref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputref{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"inputref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputref[${2:archive}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mhinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mhinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mhinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mhinput[${2:archive}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifinputref\"\n    },\n    {\n      \"name\": \"IfInputref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfInputref{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"mhgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mhgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"mhgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mhgraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\mhgraphics,\\\\cmhgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cmhgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmhgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"cmhgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmhgraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\mhgraphics,\\\\cmhgraphics\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstinputmhlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstinputmhlisting{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"lstinputmhlisting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstinputmhlisting[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\lstinputmhlisting,\\\\clstinputmhlisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clstinputmhlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clstinputmhlisting{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"clstinputmhlisting\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"clstinputmhlisting[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\lstinputmhlisting,\\\\clstinputmhlisting\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sref[${2:options}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"sref\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"sref[${2:options1}]{${1:label}}[${3:options2}]\"\n      }\n    },\n    {\n      \"name\": \"srefsetin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"srefsetin{${1:file}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"srefsetin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"srefsetin[${3:archive}]{${1:file}}{${2:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sreflabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sreflabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"extref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extref{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"extref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"extref[${3:options}]{${1:label}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"STEXexport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"STEXexport{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"symdecl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symdecl{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"symdecl\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"symdecl{${1:name}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"symdecl*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symdecl*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"symdecl*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"symdecl*{${1:name}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"textsymdecl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textsymdecl{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"textsymdecl\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"textsymdecl{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"symdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symdef{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"symdef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"symdef{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"symref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symref{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"sr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sr{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"symname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"symname\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"symname[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\symname,\\\\sn,\\\\Symname,\\\\Sn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"sn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sn[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\symname,\\\\sn,\\\\Symname,\\\\Sn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Symname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Symname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Symname\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Symname[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\symname,\\\\sn,\\\\Symname,\\\\Sn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Sn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sn{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Sn\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Sn[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\symname,\\\\sn,\\\\Symname,\\\\Sn\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sns{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Sns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sns{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"srefsym\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"srefsym{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"srefsymuri\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"srefsymuri{${1:URI}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"symuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symuse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"notation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"notation\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"notation{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"notation*{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"notation*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"notation*{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"comp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comp{${1:component}}\"\n      }\n    },\n    {\n      \"name\": \"maincomp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maincomp{${1:component}}\"\n      }\n    },\n    {\n      \"name\": \"setnotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setnotation{${1:name}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"infprec\"\n    },\n    {\n      \"name\": \"neginfprec\"\n    },\n    {\n      \"name\": \"dobrackets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dobrackets{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"withbrackets\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"withbrackets{${1:left}}{${2:right}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"argsep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"argsep{${1:parameter token}}{${2:separator}}\"\n      }\n    },\n    {\n      \"name\": \"argmap\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"argmap{${1:parameter token}}{${2:code}}{${3:separator}}\"\n      }\n    },\n    {\n      \"name\": \"argarraymap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"argarraymap{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"arg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arg[${2:i}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"arg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arg*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"arg*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arg*[${2:i}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"usemodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usemodule{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"usemodule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usemodule[${2:archive}]{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"requiremodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"requiremodule{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"requiremodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"requiremodule[${2:archive}]{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"importmodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importmodule{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"importmodule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"importmodule[${2:archive}]{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"vardef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vardef{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"vardef\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"vardef{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"varnotation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"varnotation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"varnotation\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"varnotation{${1:name}}[${3:options}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"svar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"svar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"svar[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"varseq\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"varseq{${1:name}}{${2:range}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"varseq\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"varseq{${1:name}}[${4:options}]{${2:range}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ellipses\"\n    },\n    {\n      \"name\": \"seqmap\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seqmap{${1:code}}{${2:sequence}}\"\n      }\n    },\n    {\n      \"name\": \"this\"\n    },\n    {\n      \"name\": \"usestructure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usestructure{${1:struct}}\"\n      }\n    },\n    {\n      \"name\": \"inlineass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineass{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlineass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineass[${2:options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinedef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinedef{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlinedef\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlinedef[${2:options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlineex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"inlineex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inlineex[${2:options}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"varbind\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varbind{${1:cls}}\"\n      }\n    },\n    {\n      \"name\": \"definiendum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definiendum{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"definame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"definame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"definame[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Definame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Definame{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Definame\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Definame[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"defnotation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defnotation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"definiens\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definiens{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"definiens\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"definiens[${2:name}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"premise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"premise{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"conclusion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"conclusion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"conclusion[${2:symbol}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"symrefemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symrefemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"compemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"varemph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylemodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylemodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylemodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylemodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylecopymodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylecopymodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylecopymodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylecopymodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleinterpretmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleinterpretmodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleinterpretmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleinterpretmodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerealization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylerealization{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerealization\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylerealization[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylemathstructure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylemathstructure{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylemathstructure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylemathstructure[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleextstructure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleextstructure{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleextstructure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleextstructure[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyledefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyledefinition{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyledefinition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyledefinition[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassertion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleassertion{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassertion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleassertion[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleexample\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleexample{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleexample\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleexample[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleparagraph{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleparagraph[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleproof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleproof{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleproof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleproof[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesubproof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylesubproof{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesubproof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylesubproof[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleusemodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleusemodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleusemodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleusemodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleimportmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleimportmodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleimportmodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleimportmodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerequiremodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylerequiremodule{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerequiremodule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylerequiremodule[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleassign{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleassign[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerenamedecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylerenamedecl{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerenamedecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylerenamedecl[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassignMorphism\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleassignMorphism{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleassignMorphism\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleassignMorphism[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylecopymod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylecopymod{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylecopymod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylecopymod[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleinterpretmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleinterpretmod{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleinterpretmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleinterpretmod[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerealize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylerealize{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylerealize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylerealize[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesymdecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylesymdecl{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesymdecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylesymdecl[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyletextsymdecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyletextsymdecl{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyletextsymdecl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyletextsymdecl[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylenotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylenotation{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylenotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylenotation[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevarnotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylevarnotation{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevarnotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylevarnotation[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesymdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylesymdef{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylesymdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylesymdef[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevardef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylevardef{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevardef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylevardef[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevarseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylevarseq{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylevarseq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylevarseq[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylespfsketch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstylespfsketch{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstylespfsketch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstylespfsketch[${2:style}]{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleMMTinclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stexstyleMMTinclude{${1:definition}}\"\n      }\n    },\n    {\n      \"name\": \"stexstyleMMTinclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stexstyleMMTinclude[${2:style}]{${1:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sfragment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sfragment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\begin{sfragment}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blindfragment\"\n    },\n    {\n      \"name\": \"smodule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:module}}\"\n      }\n    },\n    {\n      \"name\": \"smodule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:module}}\",\n        \"keys\": [\n          \"\\\\begin{smodule}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mathstructure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"mathstructure\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:name}}[${2:options}]\"\n      }\n    },\n    {\n      \"name\": \"extstructure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:structs}}\"\n      }\n    },\n    {\n      \"name\": \"extstructure\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:name}}[${3:options}]{${2:structs}}\"\n      }\n    },\n    {\n      \"name\": \"extstructure*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:struct}}\"\n      }\n    },\n    {\n      \"name\": \"sdefinition\"\n    },\n    {\n      \"name\": \"sdefinition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"sassertion\"\n    },\n    {\n      \"name\": \"sassertion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"sexample\"\n    },\n    {\n      \"name\": \"sexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"sparagraph\"\n    },\n    {\n      \"name\": \"sparagraph\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"sproof\"\n    },\n    {\n      \"name\": \"sproof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/stex#c\": [\n      \"lang=${1:language}\",\n      \"mathhub=${1:directory}\",\n      \"writesms\",\n      \"usems\",\n      \"image\",\n      \"nofrontmatter\",\n      \"debug=${1:log-prefix}\",\n      \"checkterms\"\n    ],\n    \"\\\\begin{sfragment}\": [\n      \"id=\",\n      \"short=${1:short title}\"\n    ],\n    \"\\\\mhgraphics,\\\\cmhgraphics\": [\n      \"archive=${1:file path}\",\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\lstinputmhlisting,\\\\clstinputmhlisting\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ],\n    \"\\\\begin{smodule}\": [\n      \"title={${1:text}}\",\n      \"style=\",\n      \"id=\",\n      \"ns=${1:URI}\",\n      \"lang=${1:language}\",\n      \"sig=${1:language}\"\n    ],\n    \"\\\\symname,\\\\sn,\\\\Symname,\\\\Sn\": [\n      \"pre=\",\n      \"post=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stexthm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stex\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"observation\"\n    },\n    {\n      \"name\": \"observation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stfloats.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fnbelowfloat\"\n    },\n    {\n      \"name\": \"fnunderfloat\"\n    },\n    {\n      \"name\": \"setbaselinefloat\"\n    },\n    {\n      \"name\": \"setbaselinefixed\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stickstootext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defigures\"\n    },\n    {\n      \"name\": \"infigures\"\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"nufigures\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"useosf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useproportional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stickstootext#c\": [\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"lf\",\n      \"oldstyle\",\n      \"osf\",\n      \"p\",\n      \"proportional\",\n      \"t\",\n      \"tabular\",\n      \"theoremfont\",\n      \"sups\",\n      \"scosf\",\n      \"foresolidus=\",\n      \"aftsolidus=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stickstootext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stix2.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"accurrent\",\n      \"detail\": \"⏦\",\n      \"doc\": \"\\\\ac (wasysym), ac current\"\n    },\n    {\n      \"name\": \"acidfree\",\n      \"detail\": \"♾\",\n      \"doc\": \"Permanent paper sign\"\n    },\n    {\n      \"name\": \"acwcirclearrow\",\n      \"detail\": \"⥀\",\n      \"doc\": \"Anticlockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"acwgapcirclearrow\",\n      \"detail\": \"⟲\",\n      \"doc\": \"Anticlockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"acwleftarcarrow\",\n      \"detail\": \"⤹\",\n      \"doc\": \"Left-side arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwopencirclearrow\",\n      \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n    },\n    {\n      \"name\": \"acwoverarcarrow\",\n      \"detail\": \"⤺\",\n      \"doc\": \"Top arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"acwunderarcarrow\",\n      \"detail\": \"⤻\",\n      \"doc\": \"Bottom arc anticlockwise arrow\"\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"angdnr\",\n      \"detail\": \"⦟\",\n      \"doc\": \"Acute angle\"\n    },\n    {\n      \"name\": \"angles\",\n      \"detail\": \"⦞\",\n      \"doc\": \"Angle with s inside\"\n    },\n    {\n      \"name\": \"angleubar\",\n      \"detail\": \"⦤\",\n      \"doc\": \"Angle with underbar\"\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"annuity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annuity{${1:arg}}\"\n      },\n      \"detail\": \"x⃧\",\n      \"doc\": \"Combining annuity symbol\"\n    },\n    {\n      \"name\": \"APLboxquestion\",\n      \"detail\": \"⍰\",\n      \"doc\": \"Apl functional symbol quad question\"\n    },\n    {\n      \"name\": \"APLboxupcaret\",\n      \"detail\": \"⍓\",\n      \"doc\": \"Apl functional symbol quad up caret\"\n    },\n    {\n      \"name\": \"APLnotbackslash\",\n      \"detail\": \"⍀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Apl functional symbol backslash bar\"\n    },\n    {\n      \"name\": \"APLnotslash\",\n      \"detail\": \"⌿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Apl functional symbol slash bar, solidus, bar through\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxeqq\",\n      \"detail\": \"⩰\",\n      \"doc\": \"Approximately equal or equal to\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"arrowaccentex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowaccentlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowaccentrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"asteq\",\n      \"detail\": \"⩮\",\n      \"doc\": \"Equals with asterisk\"\n    },\n    {\n      \"name\": \"asteraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asteraccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃰\",\n      \"doc\": \"Combining asterisk above\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"awintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"awintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backdprime\",\n      \"detail\": \"‶\",\n      \"doc\": \"Double reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"backtrprime\",\n      \"detail\": \"‷\",\n      \"doc\": \"Triple reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"bagmember\",\n      \"detail\": \"⋿\",\n      \"doc\": \"\\\\mathsf{e}, bag membership\"\n    },\n    {\n      \"name\": \"barcap\",\n      \"detail\": \"⩃\",\n      \"doc\": \"Intersection with overbar\"\n    },\n    {\n      \"name\": \"barcup\",\n      \"detail\": \"⩂\",\n      \"doc\": \"Union with overbar\"\n    },\n    {\n      \"name\": \"bardownharpoonleft\",\n      \"detail\": \"⥡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"bardownharpoonright\",\n      \"detail\": \"⥝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"barleftarrow\",\n      \"detail\": \"⇤ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards arrow to bar\"\n    },\n    {\n      \"name\": \"barleftarrowrightarrowbar\"\n    },\n    {\n      \"name\": \"barleftharpoondown\",\n      \"detail\": \"⥖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"barleftharpoonup\",\n      \"detail\": \"⥒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"barovernorthwestarrow\",\n      \"detail\": \"↸\",\n      \"doc\": \"North west arrow to long bar\"\n    },\n    {\n      \"name\": \"barrightarrowdiamond\",\n      \"detail\": \"⤠\",\n      \"doc\": \"Rightwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"barrightharpoondown\",\n      \"detail\": \"⥟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"barrightharpoonup\",\n      \"detail\": \"⥛ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"baruparrow\",\n      \"detail\": \"⤒ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards arrow to bar\"\n    },\n    {\n      \"name\": \"barupharpoonleft\",\n      \"detail\": \"⥘ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"barupharpoonright\",\n      \"detail\": \"⥔ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"Barv\",\n      \"detail\": \"⫧\",\n      \"doc\": \"Short down tack with overbar\"\n    },\n    {\n      \"name\": \"barV\",\n      \"detail\": \"⫪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double down tack\"\n    },\n    {\n      \"name\": \"barvee\",\n      \"detail\": \"⊽\",\n      \"doc\": \"Bar, vee (large vee)\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"Bbbsum\",\n      \"detail\": \"⅀ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck n-ary summation\"\n    },\n    {\n      \"name\": \"Bbbsumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbrktbrk\",\n      \"detail\": \"⎶\",\n      \"doc\": \"Bottom square bracket over top square bracket\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"benzenr\",\n      \"detail\": \"⏣\",\n      \"doc\": \"Benzene ring with circle\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigblacktriangledown\",\n      \"detail\": \"▼\",\n      \"doc\": \"Big down triangle, filled\"\n    },\n    {\n      \"name\": \"bigblacktriangleup\",\n      \"detail\": \"▲\",\n      \"doc\": \"Black up-pointing triangle\"\n    },\n    {\n      \"name\": \"bigbot\",\n      \"detail\": \"⟘\",\n      \"doc\": \"Large up tack\"\n    },\n    {\n      \"name\": \"bigcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigcupdotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biginterleave\",\n      \"detail\": \"⫼ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Large triple vertical bar operator\"\n    },\n    {\n      \"name\": \"bigodotop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigoplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigotimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigslopedvee\",\n      \"detail\": \"⩗\",\n      \"doc\": \"Sloping large or\"\n    },\n    {\n      \"name\": \"bigslopedwedge\",\n      \"detail\": \"⩘\",\n      \"doc\": \"Sloping large and\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"bigtalloblong\",\n      \"detail\": \"⫿\",\n      \"doc\": \"N-ary white vertical bar\"\n    },\n    {\n      \"name\": \"bigtalloblongop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigtimesop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigtop\",\n      \"detail\": \"⟙\",\n      \"doc\": \"Large down tack\"\n    },\n    {\n      \"name\": \"bigtriangleleft\",\n      \"detail\": \"⨞\",\n      \"doc\": \"Large left triangle operator\"\n    },\n    {\n      \"name\": \"biguplusop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigveeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwedgeop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigwhitestar\",\n      \"detail\": \"☆\",\n      \"doc\": \"Star, open\"\n    },\n    {\n      \"name\": \"blackcircledownarrow\",\n      \"detail\": \"⧭\",\n      \"doc\": \"Black circle with down arrow\"\n    },\n    {\n      \"name\": \"blackcircledrightdot\",\n      \"detail\": \"⚈\",\n      \"doc\": \"Black circle with white dot right\"\n    },\n    {\n      \"name\": \"blackcircledtwodots\",\n      \"detail\": \"⚉\",\n      \"doc\": \"Black circle with two white dots\"\n    },\n    {\n      \"name\": \"blackcircleulquadwhite\",\n      \"detail\": \"◕\",\n      \"doc\": \"Circle with all but upper left quadrant black\"\n    },\n    {\n      \"name\": \"blackdiamonddownarrow\",\n      \"detail\": \"⧪\",\n      \"doc\": \"Black diamond with down arrow\"\n    },\n    {\n      \"name\": \"blackhourglass\",\n      \"detail\": \"⧗\",\n      \"doc\": \"Black hourglass\"\n    },\n    {\n      \"name\": \"blackinwhitediamond\",\n      \"detail\": \"◈\",\n      \"doc\": \"White diamond containing black small diamond\"\n    },\n    {\n      \"name\": \"blackinwhitesquare\",\n      \"detail\": \"▣\",\n      \"doc\": \"White square containing black small square\"\n    },\n    {\n      \"name\": \"blacklefthalfcircle\",\n      \"detail\": \"◖ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Left half black circle\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blackpointerleft\",\n      \"detail\": \"◄\",\n      \"doc\": \"Black left-pointing pointer\"\n    },\n    {\n      \"name\": \"blackpointerright\",\n      \"detail\": \"►\",\n      \"doc\": \"Black right-pointing pointer\"\n    },\n    {\n      \"name\": \"blackrighthalfcircle\",\n      \"detail\": \"◗ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Right half black circle\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blkhorzoval\",\n      \"detail\": \"⬬\",\n      \"doc\": \"Black horizontal ellipse\"\n    },\n    {\n      \"name\": \"blkvertoval\",\n      \"detail\": \"⬮\",\n      \"doc\": \"Black vertical ellipse\"\n    },\n    {\n      \"name\": \"bNot\",\n      \"detail\": \"⫭\",\n      \"doc\": \"Reversed double stroke not sign\"\n    },\n    {\n      \"name\": \"botsemicircle\",\n      \"detail\": \"◡\",\n      \"doc\": \"Lower half circle\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxcircle\",\n      \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared small circle\"\n    },\n    {\n      \"name\": \"boxdiag\",\n      \"detail\": \"⧄ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared rising diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxonbox\",\n      \"detail\": \"⧉\",\n      \"doc\": \"Two joined squares\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"braceex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracemu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketlu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsimilarleftarrow\",\n      \"detail\": \"⭁\",\n      \"doc\": \"Reverse tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"bsimilarrightarrow\",\n      \"detail\": \"⭇\",\n      \"doc\": \"Reverse tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"bsolhsub\",\n      \"detail\": \"⟈\",\n      \"doc\": \"Reverse solidus preceding subset\"\n    },\n    {\n      \"name\": \"btimes\",\n      \"detail\": \"⨲\",\n      \"doc\": \"Semidirect product with bottom closed\"\n    },\n    {\n      \"name\": \"bullseye\",\n      \"detail\": \"◎\",\n      \"doc\": \"\\\\circledcirc (amssymb), bullseye\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"bumpeqq\",\n      \"detail\": \"⪮\",\n      \"doc\": \"Equals sign with bumpy above\"\n    },\n    {\n      \"name\": \"candra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candra{${1:arg}}\"\n      },\n      \"detail\": \" ̐\",\n      \"doc\": \"Candrabindu (non-spacing)\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"capbarcup\",\n      \"detail\": \"⩉\",\n      \"doc\": \"Intersection above bar above union\"\n    },\n    {\n      \"name\": \"capdot\",\n      \"detail\": \"⩀\",\n      \"doc\": \"Intersection with dot\"\n    },\n    {\n      \"name\": \"capovercup\",\n      \"detail\": \"⩇\",\n      \"doc\": \"Intersection above union\"\n    },\n    {\n      \"name\": \"capwedge\",\n      \"detail\": \"⩄\",\n      \"doc\": \"Intersection with logical and\"\n    },\n    {\n      \"name\": \"caretinsert\",\n      \"detail\": \"‸\",\n      \"doc\": \"Caret (insertion mark)\"\n    },\n    {\n      \"name\": \"carriagereturn\",\n      \"detail\": \"↵\",\n      \"doc\": \"Downwards arrow with corner leftward = carriage return\"\n    },\n    {\n      \"name\": \"ccwundercurvearrow\",\n      \"detail\": \"⤿\",\n      \"doc\": \"Lower left semicircular anticlockwise arrow\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"checkmarkmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirbot\",\n      \"detail\": \"⟟\",\n      \"doc\": \"Up tack with circle above\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circlebottomhalfblack\",\n      \"detail\": \"◒\",\n      \"doc\": \"Circle, filled bottom half\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbullet\",\n      \"detail\": \"⦿\",\n      \"doc\": \"Circled bullet\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"circledownarrow\",\n      \"detail\": \"⧬\",\n      \"doc\": \"White circle with down arrow\"\n    },\n    {\n      \"name\": \"circledparallel\",\n      \"detail\": \"⦷\",\n      \"doc\": \"Circled parallel\"\n    },\n    {\n      \"name\": \"circledrightdot\",\n      \"detail\": \"⚆\",\n      \"doc\": \"White circle with dot right\"\n    },\n    {\n      \"name\": \"circledRmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledstar\",\n      \"detail\": \"✪\",\n      \"doc\": \"Circled white star\"\n    },\n    {\n      \"name\": \"circledtwodots\",\n      \"detail\": \"⚇\",\n      \"doc\": \"White circle with two dots\"\n    },\n    {\n      \"name\": \"circledvert\",\n      \"detail\": \"⦶\",\n      \"doc\": \"Circled vertical bar\"\n    },\n    {\n      \"name\": \"circledwhitebullet\",\n      \"detail\": \"⦾\",\n      \"doc\": \"Circled white bullet\"\n    },\n    {\n      \"name\": \"circlehbar\",\n      \"detail\": \"⦵\",\n      \"doc\": \"Circle with horizontal bar\"\n    },\n    {\n      \"name\": \"circlelefthalfblack\",\n      \"detail\": \"◐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled left half [harvey ball]\"\n    },\n    {\n      \"name\": \"circlellquad\",\n      \"detail\": \"◵\",\n      \"doc\": \"White circle with lower left quadrant\"\n    },\n    {\n      \"name\": \"circlelrquad\",\n      \"detail\": \"◶\",\n      \"doc\": \"White circle with lower right quadrant\"\n    },\n    {\n      \"name\": \"circleonleftarrow\",\n      \"detail\": \"⬰\",\n      \"doc\": \"Left arrow with small circle\"\n    },\n    {\n      \"name\": \"circleonrightarrow\",\n      \"detail\": \"⇴\",\n      \"doc\": \"Right arrow with small circle\"\n    },\n    {\n      \"name\": \"circlerighthalfblack\",\n      \"detail\": \"◑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled right half\"\n    },\n    {\n      \"name\": \"circletophalfblack\",\n      \"detail\": \"◓\",\n      \"doc\": \"Circle, filled top half\"\n    },\n    {\n      \"name\": \"circleulquad\",\n      \"detail\": \"◴\",\n      \"doc\": \"White circle with upper left quadrant\"\n    },\n    {\n      \"name\": \"circleurquad\",\n      \"detail\": \"◷\",\n      \"doc\": \"White circle with upper right quadrant\"\n    },\n    {\n      \"name\": \"circleurquadblack\",\n      \"detail\": \"◔\",\n      \"doc\": \"Circle with upper right quadrant black\"\n    },\n    {\n      \"name\": \"circlevertfill\",\n      \"detail\": \"◍\",\n      \"doc\": \"Circle with vertical fill\"\n    },\n    {\n      \"name\": \"cirE\",\n      \"detail\": \"⧃\",\n      \"doc\": \"Circle with two horizontal strokes to the right\"\n    },\n    {\n      \"name\": \"cirfnint\",\n      \"detail\": \"⨐\",\n      \"doc\": \"Circulation function\"\n    },\n    {\n      \"name\": \"cirfnintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirfnintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirmid\",\n      \"detail\": \"⫯\",\n      \"doc\": \"Vertical line with circle above\"\n    },\n    {\n      \"name\": \"cirscir\",\n      \"detail\": \"⧂\",\n      \"doc\": \"Circle with small circle to the right\"\n    },\n    {\n      \"name\": \"closedvarcap\",\n      \"detail\": \"⩍\",\n      \"doc\": \"Closed intersection with serifs\"\n    },\n    {\n      \"name\": \"closedvarcup\",\n      \"detail\": \"⩌\",\n      \"doc\": \"Closed union with serifs\"\n    },\n    {\n      \"name\": \"closedvarcupsmashprod\",\n      \"detail\": \"⩐\",\n      \"doc\": \"Closed union with serifs and smash product\"\n    },\n    {\n      \"name\": \"closure\",\n      \"detail\": \"⁐\",\n      \"doc\": \"Close up (editing mark)\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"commaminus\",\n      \"detail\": \"⨩\",\n      \"doc\": \"Minus sign with comma above\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"concavediamond\",\n      \"detail\": \"⟡\",\n      \"doc\": \"White concave-sided diamond\"\n    },\n    {\n      \"name\": \"concavediamondtickleft\",\n      \"detail\": \"⟢\",\n      \"doc\": \"White concave-sided diamond with leftwards tick\"\n    },\n    {\n      \"name\": \"concavediamondtickright\",\n      \"detail\": \"⟣\",\n      \"doc\": \"White concave-sided diamond with rightwards tick\"\n    },\n    {\n      \"name\": \"congdot\",\n      \"detail\": \"⩭\",\n      \"doc\": \"Congruent with dot above\"\n    },\n    {\n      \"name\": \"conictaper\",\n      \"detail\": \"⌲\",\n      \"doc\": \"Conical taper\"\n    },\n    {\n      \"name\": \"conjquant\",\n      \"detail\": \"⨇\",\n      \"doc\": \"Two logical and operator\"\n    },\n    {\n      \"name\": \"conjquantop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coprodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csub\",\n      \"detail\": \"⫏\",\n      \"doc\": \"Closed subset\"\n    },\n    {\n      \"name\": \"csube\",\n      \"detail\": \"⫑\",\n      \"doc\": \"Closed subset or equal to\"\n    },\n    {\n      \"name\": \"csup\",\n      \"detail\": \"⫐\",\n      \"doc\": \"Closed superset\"\n    },\n    {\n      \"name\": \"csupe\",\n      \"detail\": \"⫒\",\n      \"doc\": \"Closed superset or equal to\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupbarcap\",\n      \"detail\": \"⩈\",\n      \"doc\": \"Union above bar above intersection\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupleftarrow\",\n      \"detail\": \"⊌\",\n      \"doc\": \"Multiset\"\n    },\n    {\n      \"name\": \"cupovercap\",\n      \"detail\": \"⩆\",\n      \"doc\": \"Union above intersection\"\n    },\n    {\n      \"name\": \"cupvee\",\n      \"detail\": \"⩅\",\n      \"doc\": \"Union with logical or\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowleftplus\",\n      \"detail\": \"⤽\",\n      \"doc\": \"Top arc anticlockwise arrow with plus\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowrightminus\",\n      \"detail\": \"⤼\",\n      \"doc\": \"Top arc clockwise arrow with minus\"\n    },\n    {\n      \"name\": \"cwcirclearrow\",\n      \"detail\": \"⥁\",\n      \"doc\": \"Clockwise closed circle arrow\"\n    },\n    {\n      \"name\": \"cwgapcirclearrow\",\n      \"detail\": \"⟳\",\n      \"doc\": \"Clockwise gapped circle arrow\"\n    },\n    {\n      \"name\": \"cwopencirclearrow\",\n      \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n    },\n    {\n      \"name\": \"cwrightarcarrow\",\n      \"detail\": \"⤸\",\n      \"doc\": \"Right-side arc clockwise arrow\"\n    },\n    {\n      \"name\": \"cwundercurvearrow\",\n      \"detail\": \"⤾\",\n      \"doc\": \"Lower right semicircular clockwise arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"danger\",\n      \"detail\": \"☡\",\n      \"doc\": \"Caution sign, dangerous bend\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftharpoondown\",\n      \"detail\": \"⥫ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"dashrightharpoondown\",\n      \"detail\": \"⥭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down below long dash\"\n    },\n    {\n      \"name\": \"dashV\",\n      \"detail\": \"⫣\",\n      \"doc\": \"Double vertical bar left turnstile\"\n    },\n    {\n      \"name\": \"Dashv\",\n      \"detail\": \"⫤\",\n      \"doc\": \"Vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"DashV\",\n      \"detail\": \"⫥\",\n      \"doc\": \"Double vertical bar double left turnstile\"\n    },\n    {\n      \"name\": \"DashVDash\",\n      \"detail\": \"⟚\",\n      \"doc\": \"Left and right double turnstile\"\n    },\n    {\n      \"name\": \"dashVdash\",\n      \"detail\": \"⟛\",\n      \"doc\": \"Left and right tack\"\n    },\n    {\n      \"name\": \"dbkarow\",\n      \"detail\": \"⤏\",\n      \"doc\": \"Rightwards triple dash arrow\"\n    },\n    {\n      \"name\": \"ddddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dddot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ddotseq\",\n      \"detail\": \"⩷\",\n      \"doc\": \"Equals sign with two dots above and two dots below\"\n    },\n    {\n      \"name\": \"DDownarrow\",\n      \"detail\": \"⟱\",\n      \"doc\": \"Downwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Ddownarrow\",\n      \"detail\": \"⤋\",\n      \"doc\": \"Downwards triple arrow\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"diamondbotblack\",\n      \"detail\": \"⬙\",\n      \"doc\": \"Diamond with bottom half black\"\n    },\n    {\n      \"name\": \"diamondcdot\",\n      \"detail\": \"⟐ (\\\"txfonts\\\" command)\",\n      \"doc\": \"White diamond with centred dot\"\n    },\n    {\n      \"name\": \"diamondleftarrow\",\n      \"detail\": \"⤝\",\n      \"doc\": \"Leftwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftarrowbar\",\n      \"detail\": \"⤟\",\n      \"doc\": \"Leftwards arrow from bar to black diamond\"\n    },\n    {\n      \"name\": \"diamondleftblack\",\n      \"detail\": \"⬖\",\n      \"doc\": \"Diamond with left half black\"\n    },\n    {\n      \"name\": \"diamondrightblack\",\n      \"detail\": \"⬗\",\n      \"doc\": \"Diamond with right half black\"\n    },\n    {\n      \"name\": \"diamondtopblack\",\n      \"detail\": \"⬘\",\n      \"doc\": \"Diamond with top half black\"\n    },\n    {\n      \"name\": \"dicei\",\n      \"detail\": \"⚀\",\n      \"doc\": \"Die face-1\"\n    },\n    {\n      \"name\": \"diceii\",\n      \"detail\": \"⚁\",\n      \"doc\": \"Die face-2\"\n    },\n    {\n      \"name\": \"diceiii\",\n      \"detail\": \"⚂\",\n      \"doc\": \"Die face-3\"\n    },\n    {\n      \"name\": \"diceiv\",\n      \"detail\": \"⚃\",\n      \"doc\": \"Die face-4\"\n    },\n    {\n      \"name\": \"dicev\",\n      \"detail\": \"⚄\",\n      \"doc\": \"Die face-5\"\n    },\n    {\n      \"name\": \"dicevi\",\n      \"detail\": \"⚅\",\n      \"doc\": \"Die face-6\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"dingasterisk\",\n      \"detail\": \"✽\",\n      \"doc\": \"Heavy teardrop-spoked asterisk\"\n    },\n    {\n      \"name\": \"disin\",\n      \"detail\": \"⋲\",\n      \"doc\": \"Element of with long horizontal stroke\"\n    },\n    {\n      \"name\": \"disjquant\",\n      \"detail\": \"⨈\",\n      \"doc\": \"Two logical or operator\"\n    },\n    {\n      \"name\": \"disjquantop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotequiv\",\n      \"detail\": \"⩧\",\n      \"doc\": \"Identical with dot above\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsim\",\n      \"detail\": \"⩪\",\n      \"doc\": \"Tilde operator with dot above\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"dottedcircle\",\n      \"detail\": \"◌\",\n      \"doc\": \"Dotted circle\"\n    },\n    {\n      \"name\": \"dottedsquare\",\n      \"detail\": \"⬚\",\n      \"doc\": \"Dotted square\"\n    },\n    {\n      \"name\": \"dottimes\",\n      \"detail\": \"⨰\",\n      \"doc\": \"Multiplication sign with dot above\"\n    },\n    {\n      \"name\": \"doublebarvee\",\n      \"detail\": \"⩢\",\n      \"doc\": \"Logical or with double overbar\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"doubleplus\",\n      \"detail\": \"⧺\",\n      \"doc\": \"Double plus\"\n    },\n    {\n      \"name\": \"downarrowbar\",\n      \"detail\": \"⤓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards arrow to bar\"\n    },\n    {\n      \"name\": \"downarrowbarred\",\n      \"detail\": \"⤈\",\n      \"doc\": \"Downwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downfishtail\",\n      \"detail\": \"⥿\",\n      \"doc\": \"Down fish tail\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonleftbar\",\n      \"detail\": \"⥙ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left to bar\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downharpoonrightbar\",\n      \"detail\": \"⥕ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb right to bar\"\n    },\n    {\n      \"name\": \"downharpoonsleftright\",\n      \"detail\": \"⥥ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Downwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downrightcurvedarrow\",\n      \"detail\": \"⤵\",\n      \"doc\": \"Arrow pointing rightwards then curving downwards\"\n    },\n    {\n      \"name\": \"downtriangleleftblack\",\n      \"detail\": \"⧨\",\n      \"doc\": \"Down-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"downtrianglerightblack\",\n      \"detail\": \"⧩\",\n      \"doc\": \"Down-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downupharpoonsleftright\",\n      \"detail\": \"⥯ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uprevequilibrium (wrisym), downwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"downzigzagarrow\",\n      \"detail\": \"↯ (\\\"stmaryrd -wasysym\\\" command)\",\n      \"doc\": \"T \\\\lightning (marvosym), downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"dprime\",\n      \"detail\": \"″ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double prime or second, not superscripted\"\n    },\n    {\n      \"name\": \"draftingarrow\",\n      \"detail\": \"➛\",\n      \"doc\": \"Right arrow with bold head (drafting)\"\n    },\n    {\n      \"name\": \"drbkarow\",\n      \"detail\": \"⤐\",\n      \"doc\": \"Rightwards two-headed triple dash arrow\"\n    },\n    {\n      \"name\": \"droang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droang{${1:arg}}\"\n      },\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"dsol\",\n      \"detail\": \"⧶\",\n      \"doc\": \"Solidus with overbar\"\n    },\n    {\n      \"name\": \"dsub\",\n      \"detail\": \"⩤ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\ndres (oz), domain antirestriction\"\n    },\n    {\n      \"name\": \"dualmap\",\n      \"detail\": \"⧟ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Double-ended multimap\"\n    },\n    {\n      \"name\": \"egsdot\",\n      \"detail\": \"⪘\",\n      \"doc\": \"Slanted equal to or greater-than with dot inside\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"elinters\",\n      \"detail\": \"⏧\",\n      \"doc\": \"Electrical intersection\"\n    },\n    {\n      \"name\": \"elsdot\",\n      \"detail\": \"⪗\",\n      \"doc\": \"Slanted equal to or less-than with dot inside\"\n    },\n    {\n      \"name\": \"emptysetoarr\",\n      \"detail\": \"⦳\",\n      \"doc\": \"Empty set with right arrow above\"\n    },\n    {\n      \"name\": \"emptysetoarrl\",\n      \"detail\": \"⦴\",\n      \"doc\": \"Empty set with left arrow above\"\n    },\n    {\n      \"name\": \"emptysetobar\",\n      \"detail\": \"⦱\",\n      \"doc\": \"Empty set with overbar\"\n    },\n    {\n      \"name\": \"emptysetocirc\",\n      \"detail\": \"⦲\",\n      \"doc\": \"Empty set with small circle above\"\n    },\n    {\n      \"name\": \"enclosecircle\",\n      \"detail\": \"x⃝\",\n      \"doc\": \"Combining enclosing circle\"\n    },\n    {\n      \"name\": \"enclosediamond\",\n      \"detail\": \"x⃟\",\n      \"doc\": \"Combining enclosing diamond\"\n    },\n    {\n      \"name\": \"enclosesquare\",\n      \"detail\": \"x⃞\",\n      \"doc\": \"Combining enclosing square\"\n    },\n    {\n      \"name\": \"enclosetriangle\",\n      \"detail\": \"x⃤\",\n      \"doc\": \"Combining enclosing upward pointing triangle\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"eparsl\",\n      \"detail\": \"⧣\",\n      \"doc\": \"Equals sign and slanted parallel\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"eqdot\",\n      \"detail\": \"⩦\",\n      \"doc\": \"Equals sign with dot below\"\n    },\n    {\n      \"name\": \"eqeq\",\n      \"detail\": \"⩵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"==, two consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqeqeq\",\n      \"detail\": \"⩶ (\\\"wrisym\\\" command)\",\n      \"doc\": \"===, three consecutive equals signs\"\n    },\n    {\n      \"name\": \"eqgtr\",\n      \"detail\": \"⋝\",\n      \"doc\": \"Equal-or-greater\"\n    },\n    {\n      \"name\": \"eqless\",\n      \"detail\": \"⋜\",\n      \"doc\": \"Equal-or-less\"\n    },\n    {\n      \"name\": \"eqqgtr\",\n      \"detail\": \"⪚\",\n      \"doc\": \"Double-line equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqless\",\n      \"detail\": \"⪙\",\n      \"doc\": \"Double-line equal to or less-than\"\n    },\n    {\n      \"name\": \"eqqplus\",\n      \"detail\": \"⩱\",\n      \"doc\": \"Equals sign above plus sign\"\n    },\n    {\n      \"name\": \"eqqsim\",\n      \"detail\": \"⩳\",\n      \"doc\": \"Equals sign above tilde operator\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalleftarrow\",\n      \"detail\": \"⭀\",\n      \"doc\": \"Equals sign above leftwards arrow\"\n    },\n    {\n      \"name\": \"equalparallel\",\n      \"detail\": \"⋕ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Parallel, equal; equal or parallel\"\n    },\n    {\n      \"name\": \"equalrightarrow\",\n      \"detail\": \"⥱\",\n      \"doc\": \"Equals sign above rightwards arrow\"\n    },\n    {\n      \"name\": \"Equiv\",\n      \"detail\": \"≣\",\n      \"doc\": \"Strict equivalence (4 lines)\"\n    },\n    {\n      \"name\": \"equivDD\",\n      \"detail\": \"⩸\",\n      \"doc\": \"Equivalent with four dots above\"\n    },\n    {\n      \"name\": \"equivVert\",\n      \"detail\": \"⩨\",\n      \"doc\": \"Triple horizontal bar with double vertical stroke\"\n    },\n    {\n      \"name\": \"equivVvert\",\n      \"detail\": \"⩩\",\n      \"doc\": \"Triple horizontal bar with triple vertical stroke\"\n    },\n    {\n      \"name\": \"eqvparsl\",\n      \"detail\": \"⧥\",\n      \"doc\": \"Identical to and slanted parallel\"\n    },\n    {\n      \"name\": \"errbarblackcircle\",\n      \"detail\": \"⧳\",\n      \"doc\": \"Error-barred black circle\"\n    },\n    {\n      \"name\": \"errbarblackdiamond\",\n      \"detail\": \"⧱\",\n      \"doc\": \"Error-barred black diamond\"\n    },\n    {\n      \"name\": \"errbarblacksquare\",\n      \"detail\": \"⧯\",\n      \"doc\": \"Error-barred black square\"\n    },\n    {\n      \"name\": \"errbarcircle\",\n      \"detail\": \"⧲\",\n      \"doc\": \"Error-barred white circle\"\n    },\n    {\n      \"name\": \"errbardiamond\",\n      \"detail\": \"⧰\",\n      \"doc\": \"Error-barred white diamond\"\n    },\n    {\n      \"name\": \"errbarsquare\",\n      \"detail\": \"⧮\",\n      \"doc\": \"Error-barred white square\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"Eulerconst\",\n      \"detail\": \"ℇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Euler constant\"\n    },\n    {\n      \"name\": \"Exclam\",\n      \"detail\": \"‼\",\n      \"doc\": \"!!, double exclamation mark\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fbowtie\",\n      \"detail\": \"⧓\",\n      \"doc\": \"Black bowtie\"\n    },\n    {\n      \"name\": \"fcmp\",\n      \"detail\": \"⨾ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\comp (oz), relational composition\"\n    },\n    {\n      \"name\": \"fdiagovnearrow\",\n      \"detail\": \"⤯\",\n      \"doc\": \"Falling diagonal crossing north east arrow\"\n    },\n    {\n      \"name\": \"fdiagovrdiag\",\n      \"detail\": \"⤬\",\n      \"doc\": \"Falling diagonal crossing rising diagonal\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fisheye\",\n      \"detail\": \"◉\",\n      \"doc\": \"Fisheye\"\n    },\n    {\n      \"name\": \"fltns\",\n      \"detail\": \"⏥\",\n      \"doc\": \"Flatness\"\n    },\n    {\n      \"name\": \"forks\",\n      \"detail\": \"⫝̸\",\n      \"doc\": \"Forking\"\n    },\n    {\n      \"name\": \"forksnot\",\n      \"detail\": \"⫝\",\n      \"doc\": \"Nonforking\"\n    },\n    {\n      \"name\": \"forkv\",\n      \"detail\": \"⫙\",\n      \"doc\": \"Element of opening downwards\"\n    },\n    {\n      \"name\": \"fourvdots\",\n      \"detail\": \"⦙\",\n      \"doc\": \"Dotted fence\"\n    },\n    {\n      \"name\": \"fracslash\",\n      \"detail\": \"⁄\",\n      \"doc\": \"/, fraction slash\"\n    },\n    {\n      \"name\": \"fullouterjoin\",\n      \"detail\": \"⟗\",\n      \"doc\": \"Full outer join\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"gescc\",\n      \"detail\": \"⪩\",\n      \"doc\": \"Greater-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"gesdot\",\n      \"detail\": \"⪀\",\n      \"doc\": \"Greater-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"gesdoto\",\n      \"detail\": \"⪂\",\n      \"doc\": \"Greater-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"gesdotol\",\n      \"detail\": \"⪄\",\n      \"doc\": \"Greater-than or slanted equal to with dot above left\"\n    },\n    {\n      \"name\": \"gesles\",\n      \"detail\": \"⪔\",\n      \"doc\": \"Greater-than above slanted equal above less-than above slanted equal\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggnest\",\n      \"detail\": \"⫸\",\n      \"doc\": \"Triple nested greater-than\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gla\",\n      \"detail\": \"⪥\",\n      \"doc\": \"Greater-than beside less-than\"\n    },\n    {\n      \"name\": \"glE\",\n      \"detail\": \"⪒\",\n      \"doc\": \"Greater-than above less-than above double-line equal\"\n    },\n    {\n      \"name\": \"gleichstark\",\n      \"detail\": \"⧦\",\n      \"doc\": \"Gleich stark\"\n    },\n    {\n      \"name\": \"glj\",\n      \"detail\": \"⪤\",\n      \"doc\": \"Greater-than overlapping less-than\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gsime\",\n      \"detail\": \"⪎\",\n      \"doc\": \"Greater-than above similar or equal\"\n    },\n    {\n      \"name\": \"gsiml\",\n      \"detail\": \"⪐\",\n      \"doc\": \"Greater-than above similar above less-than\"\n    },\n    {\n      \"name\": \"Gt\",\n      \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n    },\n    {\n      \"name\": \"gtcc\",\n      \"detail\": \"⪧ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Greater-than closed by curve\"\n    },\n    {\n      \"name\": \"gtcir\",\n      \"detail\": \"⩺\",\n      \"doc\": \"Greater-than with circle inside\"\n    },\n    {\n      \"name\": \"gtlpar\",\n      \"detail\": \"⦠\",\n      \"doc\": \"Spherical angle opening left\"\n    },\n    {\n      \"name\": \"gtquest\",\n      \"detail\": \"⩼\",\n      \"doc\": \"Greater-than with question mark above\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrarr\",\n      \"detail\": \"⥸\",\n      \"doc\": \"Greater-than above rightwards arrow\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harpoonaccentlt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"harpoonaccentrt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hatapprox\",\n      \"detail\": \"⩯\",\n      \"doc\": \"Almost equal to with circumflex accent\"\n    },\n    {\n      \"name\": \"Hermaphrodite\",\n      \"detail\": \"⚥\",\n      \"doc\": \"Male and female sign\"\n    },\n    {\n      \"name\": \"hermitmatrix\",\n      \"detail\": \"⊹\",\n      \"doc\": \"Hermitian conjugate matrix\"\n    },\n    {\n      \"name\": \"hexagon\",\n      \"detail\": \"⎔\",\n      \"doc\": \"Horizontal benzene ring [hexagon flat open]\"\n    },\n    {\n      \"name\": \"hexagonblack\",\n      \"detail\": \"⬣\",\n      \"doc\": \"Horizontal black hexagon\"\n    },\n    {\n      \"name\": \"hknearrow\",\n      \"detail\": \"⤤\",\n      \"doc\": \"North east arrow with hook\"\n    },\n    {\n      \"name\": \"hknwarrow\",\n      \"detail\": \"⤣\",\n      \"doc\": \"North west arrow with hook\"\n    },\n    {\n      \"name\": \"hksearow\",\n      \"detail\": \"⤥\",\n      \"doc\": \"South east arrow with hook\"\n    },\n    {\n      \"name\": \"hkswarow\",\n      \"detail\": \"⤦\",\n      \"doc\": \"South west arrow with hook\"\n    },\n    {\n      \"name\": \"hourglass\",\n      \"detail\": \"⧖\",\n      \"doc\": \"White hourglass\"\n    },\n    {\n      \"name\": \"house\",\n      \"detail\": \"⌂\",\n      \"doc\": \"House\"\n    },\n    {\n      \"name\": \"hrectangle\",\n      \"detail\": \"▭\",\n      \"doc\": \"Horizontal rectangle, open\"\n    },\n    {\n      \"name\": \"hrectangleblack\",\n      \"detail\": \"▬\",\n      \"doc\": \"Black rectangle\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"hyphenbullet\",\n      \"detail\": \"⁃\",\n      \"doc\": \"Rectangle, filled (hyphen bullet)\"\n    },\n    {\n      \"name\": \"hzigzag\",\n      \"detail\": \"〰\",\n      \"doc\": \"Zigzag\"\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"iiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iinfin\",\n      \"detail\": \"⧜\",\n      \"doc\": \"Incomplete infinity\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"imageof\",\n      \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Image of\"\n    },\n    {\n      \"name\": \"increment\",\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"intbar\",\n      \"detail\": \"⨍\",\n      \"doc\": \"Finite part integral\"\n    },\n    {\n      \"name\": \"intBar\",\n      \"detail\": \"⨎\",\n      \"doc\": \"Integral with double stroke\"\n    },\n    {\n      \"name\": \"intbarslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intBarslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intbarupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intBarupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intcap\",\n      \"detail\": \"⨙\",\n      \"doc\": \"Integral with intersection\"\n    },\n    {\n      \"name\": \"intcapslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intcapupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"intclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intcup\",\n      \"detail\": \"⨚\",\n      \"doc\": \"Integral with union\"\n    },\n    {\n      \"name\": \"intcupslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intcupupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"interleave\",\n      \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Triple vertical bar binary relation\"\n    },\n    {\n      \"name\": \"intlarhk\",\n      \"detail\": \"⨗\",\n      \"doc\": \"Integral with leftwards arrow with hook\"\n    },\n    {\n      \"name\": \"intlarhkslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intlarhkupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intprod\",\n      \"detail\": \"⨼\",\n      \"doc\": \"Interior product\"\n    },\n    {\n      \"name\": \"intprodr\",\n      \"detail\": \"⨽\",\n      \"doc\": \"Righthand interior product\"\n    },\n    {\n      \"name\": \"intslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intx\",\n      \"detail\": \"⨘\",\n      \"doc\": \"Integral with times sign\"\n    },\n    {\n      \"name\": \"intxslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intxupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inversebullet\",\n      \"detail\": \"◘\",\n      \"doc\": \"Inverse bullet\"\n    },\n    {\n      \"name\": \"inversewhitecircle\",\n      \"detail\": \"◙\",\n      \"doc\": \"Inverse white circle\"\n    },\n    {\n      \"name\": \"invlazys\",\n      \"detail\": \"∾\",\n      \"doc\": \"Most positive, inverted lazy s\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"invwhitelowerhalfcircle\",\n      \"detail\": \"◛\",\n      \"doc\": \"Lower half inverse white circle\"\n    },\n    {\n      \"name\": \"invwhiteupperhalfcircle\",\n      \"detail\": \"◚\",\n      \"doc\": \"Upper half inverse white circle\"\n    },\n    {\n      \"name\": \"isindot\",\n      \"detail\": \"⋵\",\n      \"doc\": \"Element of with dot above\"\n    },\n    {\n      \"name\": \"isinE\",\n      \"detail\": \"⋹\",\n      \"doc\": \"Element of with two horizontal strokes\"\n    },\n    {\n      \"name\": \"isinobar\",\n      \"detail\": \"⋷\",\n      \"doc\": \"Small element of with overbar\"\n    },\n    {\n      \"name\": \"isins\",\n      \"detail\": \"⋴\",\n      \"doc\": \"Small element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"isinvb\",\n      \"detail\": \"⋸\",\n      \"doc\": \"Element of with underbar\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kernelcontraction\",\n      \"detail\": \"∻\",\n      \"doc\": \"Homothetic\"\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"langledot\",\n      \"detail\": \"⦑\",\n      \"doc\": \"Left angle bracket with dot\"\n    },\n    {\n      \"name\": \"laplac\",\n      \"detail\": \"⧠\",\n      \"doc\": \"Square with contoured outline\"\n    },\n    {\n      \"name\": \"lat\",\n      \"detail\": \"⪫\",\n      \"doc\": \"Larger than\"\n    },\n    {\n      \"name\": \"late\",\n      \"detail\": \"⪭\",\n      \"doc\": \"Larger than or equal to\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"lblkbrbrak\",\n      \"detail\": \"⦗\",\n      \"doc\": \"Left black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lBrace\",\n      \"detail\": \"⦃\",\n      \"doc\": \"Left white curly bracket\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"lbracklltick\",\n      \"detail\": \"⦏\",\n      \"doc\": \"Left square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"lbrackubar\",\n      \"detail\": \"⦋\",\n      \"doc\": \"Left square bracket with underbar\"\n    },\n    {\n      \"name\": \"lbrackultick\",\n      \"detail\": \"⦍\",\n      \"doc\": \"Left square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"lbrbrak\",\n      \"detail\": \"〔\",\n      \"doc\": \"Left broken bracket\"\n    },\n    {\n      \"name\": \"Lbrbrak\",\n      \"detail\": \"〘\",\n      \"doc\": \"Left white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lbrbrak\",\n      \"detail\": \"〔\",\n      \"doc\": \"Left broken bracket\"\n    },\n    {\n      \"name\": \"Lbrbrak\",\n      \"detail\": \"〘\",\n      \"doc\": \"Left white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"lcurvyangle\",\n      \"detail\": \"⧼\",\n      \"doc\": \"Left pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"Ldsh\",\n      \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left down angled arrow\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftarrowaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"leftarrowapprox\",\n      \"detail\": \"⭊\",\n      \"doc\": \"Leftwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbackapprox\",\n      \"detail\": \"⭂\",\n      \"doc\": \"Leftwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"leftarrowbsimilar\",\n      \"detail\": \"⭋\",\n      \"doc\": \"Leftwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowless\",\n      \"detail\": \"⥷\",\n      \"doc\": \"Leftwards arrow through less-than\"\n    },\n    {\n      \"name\": \"leftarrowonoplus\",\n      \"detail\": \"⬲\",\n      \"doc\": \"Left arrow with circled plus\"\n    },\n    {\n      \"name\": \"leftarrowplus\",\n      \"detail\": \"⥆\",\n      \"doc\": \"Leftwards arrow with plus below\"\n    },\n    {\n      \"name\": \"leftarrowshortrightarrow\",\n      \"detail\": \"⥃\",\n      \"doc\": \"Leftwards arrow above short rightwards arrow\"\n    },\n    {\n      \"name\": \"leftarrowsimilar\",\n      \"detail\": \"⥳\",\n      \"doc\": \"Leftwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"leftarrowsubset\",\n      \"detail\": \"⥺\",\n      \"doc\": \"Leftwards arrow through subset\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftarrowx\",\n      \"detail\": \"⬾\",\n      \"doc\": \"Leftwards arrow through x\"\n    },\n    {\n      \"name\": \"leftbkarrow\",\n      \"detail\": \"⤌\",\n      \"doc\": \"Leftwards double dash arrow\"\n    },\n    {\n      \"name\": \"leftcurvedarrow\",\n      \"detail\": \"⬿\",\n      \"doc\": \"Wave arrow pointing directly left\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leftdbkarrow\",\n      \"detail\": \"⤎\",\n      \"doc\": \"Leftwards triple dash arrow\"\n    },\n    {\n      \"name\": \"leftdbltail\",\n      \"detail\": \"⤛\",\n      \"doc\": \"Leftwards double arrow-tail\"\n    },\n    {\n      \"name\": \"leftdotarrow\",\n      \"detail\": \"⬸\",\n      \"doc\": \"Leftwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"leftdowncurvedarrow\",\n      \"detail\": \"⤶\",\n      \"doc\": \"Arrow pointing downwards then curving leftwards\"\n    },\n    {\n      \"name\": \"leftfishtail\",\n      \"detail\": \"⥼ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left fish tail\"\n    },\n    {\n      \"name\": \"leftharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining left harpoon above\"\n    },\n    {\n      \"name\": \"leftharpoondownbar\",\n      \"detail\": \"⥞ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb down from bar\"\n    },\n    {\n      \"name\": \"leftharpoonsupdown\",\n      \"detail\": \"⥢ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftharpoonupbar\",\n      \"detail\": \"⥚ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up from bar\"\n    },\n    {\n      \"name\": \"leftharpoonupdash\",\n      \"detail\": \"⥪ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Leftwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"leftouterjoin\",\n      \"detail\": \"⟕\",\n      \"doc\": \"Left outer join\"\n    },\n    {\n      \"name\": \"leftrightarrowaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftrightarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightarrowcircle\",\n      \"detail\": \"⥈\",\n      \"doc\": \"Left right arrow through small circle\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoondowndown\",\n      \"detail\": \"⥐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb down right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoondownup\",\n      \"detail\": \"⥋ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb down right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightharpoonsdown\",\n      \"detail\": \"⥧\",\n      \"doc\": \"Leftwards harpoon with barb down above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"leftrightharpoonsup\",\n      \"detail\": \"⥦\",\n      \"doc\": \"Leftwards harpoon with barb up above rightwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"leftrightharpoonupdown\",\n      \"detail\": \"⥊ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left barb up right barb down harpoon\"\n    },\n    {\n      \"name\": \"leftrightharpoonupup\",\n      \"detail\": \"⥎ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left barb up right barb up harpoon\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"lefttail\",\n      \"detail\": \"⤙\",\n      \"doc\": \"Leftwards arrow-tail\"\n    },\n    {\n      \"name\": \"leftthreearrows\",\n      \"detail\": \"⬱\",\n      \"doc\": \"Three leftwards arrows\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftwavearrow\",\n      \"detail\": \"↜\",\n      \"doc\": \"Left arrow-wavy\"\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lescc\",\n      \"detail\": \"⪨\",\n      \"doc\": \"Less-than closed by curve above slanted equal\"\n    },\n    {\n      \"name\": \"lesdot\",\n      \"detail\": \"⩿\",\n      \"doc\": \"Less-than or slanted equal to with dot inside\"\n    },\n    {\n      \"name\": \"lesdoto\",\n      \"detail\": \"⪁\",\n      \"doc\": \"Less-than or slanted equal to with dot above\"\n    },\n    {\n      \"name\": \"lesdotor\",\n      \"detail\": \"⪃\",\n      \"doc\": \"Less-than or slanted equal to with dot above right\"\n    },\n    {\n      \"name\": \"lesges\",\n      \"detail\": \"⪓\",\n      \"doc\": \"Less-than above slanted equal above greater-than above slanted equal\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lfbowtie\",\n      \"detail\": \"⧑\",\n      \"doc\": \"Left black bowtie\"\n    },\n    {\n      \"name\": \"lftimes\",\n      \"detail\": \"⧔\",\n      \"doc\": \"Left black times\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgE\",\n      \"detail\": \"⪑\",\n      \"doc\": \"Less-than above greater-than above double-line equal\"\n    },\n    {\n      \"name\": \"lgwhtcircle\",\n      \"detail\": \"◯\",\n      \"doc\": \"Large circle\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"linefeed\",\n      \"detail\": \"↴\",\n      \"doc\": \"Rightwards arrow with corner downwards\"\n    },\n    {\n      \"name\": \"llangle\",\n      \"detail\": \"⦉ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation left binding bracket\"\n    },\n    {\n      \"name\": \"llarc\",\n      \"detail\": \"◟\",\n      \"doc\": \"Lower left quadrant circular arc\"\n    },\n    {\n      \"name\": \"llblacktriangle\",\n      \"detail\": \"◣\",\n      \"doc\": \"Lower left triangle, filled\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"LLeftarrow\",\n      \"detail\": \"⭅\",\n      \"doc\": \"Leftwards quadruple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lllnest\",\n      \"detail\": \"⫷\",\n      \"doc\": \"Triple nested less-than\"\n    },\n    {\n      \"name\": \"llparenthesis\",\n      \"detail\": \"⦇ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n    },\n    {\n      \"name\": \"lltriangle\",\n      \"detail\": \"◺\",\n      \"doc\": \"Lower left triangle\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longdashv\",\n      \"detail\": \"⟞\",\n      \"doc\": \"Long right tack\"\n    },\n    {\n      \"name\": \"longdivision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longdivision{${1:arg}}\"\n      },\n      \"detail\": \"⟌\",\n      \"doc\": \"Long division\"\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lowint\",\n      \"detail\": \"⨜\",\n      \"doc\": \"Integral with underbar\"\n    },\n    {\n      \"name\": \"lowintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lozengeminus\",\n      \"detail\": \"⟠\",\n      \"doc\": \"Lozenge divided by horizontal rule\"\n    },\n    {\n      \"name\": \"lParen\",\n      \"detail\": \"⦅ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Left white parenthesis\"\n    },\n    {\n      \"name\": \"Lparengtr\",\n      \"detail\": \"⦕\",\n      \"doc\": \"Double left arc greater-than bracket\"\n    },\n    {\n      \"name\": \"lparenless\",\n      \"detail\": \"⦓\",\n      \"doc\": \"Left arc less-than bracket\"\n    },\n    {\n      \"name\": \"lrarc\",\n      \"detail\": \"◞\",\n      \"doc\": \"Lower right quadrant circular arc\"\n    },\n    {\n      \"name\": \"lrblacktriangle\",\n      \"detail\": \"◢\",\n      \"doc\": \"Lower right triangle, filled\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrtriangle\",\n      \"detail\": \"◿\",\n      \"doc\": \"Lower right triangle\"\n    },\n    {\n      \"name\": \"lrtriangleeq\",\n      \"detail\": \"⧡\",\n      \"doc\": \"Increases as\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"lsime\",\n      \"detail\": \"⪍\",\n      \"doc\": \"Less-than above similar or equal\"\n    },\n    {\n      \"name\": \"lsimg\",\n      \"detail\": \"⪏\",\n      \"doc\": \"Less-than above similar above greater-than\"\n    },\n    {\n      \"name\": \"lsqhook\",\n      \"detail\": \"⫍\",\n      \"doc\": \"Square left open box operator\"\n    },\n    {\n      \"name\": \"Lt\",\n      \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n    },\n    {\n      \"name\": \"ltcc\",\n      \"detail\": \"⪦ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Less-than closed by curve\"\n    },\n    {\n      \"name\": \"ltcir\",\n      \"detail\": \"⩹\",\n      \"doc\": \"Less-than with circle inside\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"ltlarr\",\n      \"detail\": \"⥶\",\n      \"doc\": \"Less-than above leftwards arrow\"\n    },\n    {\n      \"name\": \"ltquest\",\n      \"detail\": \"⩻\",\n      \"doc\": \"Less-than with question mark above\"\n    },\n    {\n      \"name\": \"ltrivb\",\n      \"detail\": \"⧏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Left triangle beside vertical bar\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"lvzigzag\",\n      \"detail\": \"⧘\",\n      \"doc\": \"Left wiggly fence\"\n    },\n    {\n      \"name\": \"Lvzigzag\",\n      \"detail\": \"⧚\",\n      \"doc\": \"Left double wiggly fence\"\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"maltesemath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathvisiblespace\"\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"measangledltosw\",\n      \"detail\": \"⦯\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and down\"\n    },\n    {\n      \"name\": \"measangledrtose\",\n      \"detail\": \"⦮\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and down\"\n    },\n    {\n      \"name\": \"measangleldtosw\",\n      \"detail\": \"⦫\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and left\"\n    },\n    {\n      \"name\": \"measanglelutonw\",\n      \"detail\": \"⦩\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and left\"\n    },\n    {\n      \"name\": \"measanglerdtose\",\n      \"detail\": \"⦪\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing down and right\"\n    },\n    {\n      \"name\": \"measanglerutone\",\n      \"detail\": \"⦨\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing up and right\"\n    },\n    {\n      \"name\": \"measangleultonw\",\n      \"detail\": \"⦭\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing left and up\"\n    },\n    {\n      \"name\": \"measangleurtone\",\n      \"detail\": \"⦬\",\n      \"doc\": \"Measured angle with open arm ending in arrow pointing right and up\"\n    },\n    {\n      \"name\": \"measeq\",\n      \"detail\": \"≞\",\n      \"doc\": \"Measured by (m over equals)\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"measuredangleleft\",\n      \"detail\": \"⦛\",\n      \"doc\": \"Measured angle opening left\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"medblackstar\",\n      \"detail\": \"⭑\",\n      \"doc\": \"Black medium star\"\n    },\n    {\n      \"name\": \"medwhitestar\",\n      \"detail\": \"⭐\",\n      \"doc\": \"White medium star\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"midbarvee\",\n      \"detail\": \"⩝\",\n      \"doc\": \"Logical or with horizontal dash\"\n    },\n    {\n      \"name\": \"midbarwedge\",\n      \"detail\": \"⩜\",\n      \"doc\": \"Ogical and with horizontal dash\"\n    },\n    {\n      \"name\": \"midcir\",\n      \"detail\": \"⫰\",\n      \"doc\": \"Vertical line with circle below\"\n    },\n    {\n      \"name\": \"minusdot\",\n      \"detail\": \"⨪\",\n      \"doc\": \"Minus sign with dot below\"\n    },\n    {\n      \"name\": \"minusfdots\",\n      \"detail\": \"⨫\",\n      \"doc\": \"Minus sign with falling dots\"\n    },\n    {\n      \"name\": \"minusrdots\",\n      \"detail\": \"⨬\",\n      \"doc\": \"Minus sign with rising dots\"\n    },\n    {\n      \"name\": \"mlcp\",\n      \"detail\": \"⫛\",\n      \"doc\": \"Transversal intersection\"\n    },\n    {\n      \"name\": \"modtwosum\",\n      \"detail\": \"⨊\",\n      \"doc\": \"Modulo two sum\"\n    },\n    {\n      \"name\": \"modtwosumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeqq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"ncongdot\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"neovnwarrow\",\n      \"detail\": \"⤱\",\n      \"doc\": \"North east arrow crossing north west arrow\"\n    },\n    {\n      \"name\": \"neovsearrow\",\n      \"detail\": \"⤮\",\n      \"doc\": \"North east arrow crossing south east arrow\"\n    },\n    {\n      \"name\": \"neqsim\"\n    },\n    {\n      \"name\": \"neqslantgtr\"\n    },\n    {\n      \"name\": \"neqslantless\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"neswarrow\",\n      \"detail\": \"⤢\",\n      \"doc\": \"North east and south west arrow\"\n    },\n    {\n      \"name\": \"neuter\",\n      \"detail\": \"⚲\",\n      \"doc\": \"Neuter\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"nforksnot\"\n    },\n    {\n      \"name\": \"nge\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngets\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nHdownarrow\",\n      \"detail\": \"⇟\",\n      \"doc\": \"Downwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhpar\",\n      \"detail\": \"⫲\",\n      \"doc\": \"Parallel with horizontal stroke\"\n    },\n    {\n      \"name\": \"nHuparrow\",\n      \"detail\": \"⇞\",\n      \"doc\": \"Upwards arrow with double stroke\"\n    },\n    {\n      \"name\": \"nhVvert\",\n      \"detail\": \"⫵\",\n      \"doc\": \"Triple vertical bar with horizontal stroke\"\n    },\n    {\n      \"name\": \"niobar\",\n      \"detail\": \"⋾\",\n      \"doc\": \"Small contains with overbar\"\n    },\n    {\n      \"name\": \"nis\",\n      \"detail\": \"⋼\",\n      \"doc\": \"Small contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"nisd\",\n      \"detail\": \"⋺\",\n      \"doc\": \"Contains with long horizontal stroke\"\n    },\n    {\n      \"name\": \"nle\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"Not\",\n      \"detail\": \"⫬\",\n      \"doc\": \"Double stroke not sign\"\n    },\n    {\n      \"name\": \"notchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"npolint\",\n      \"detail\": \"⨔\",\n      \"doc\": \"Line integration not including the pole\"\n    },\n    {\n      \"name\": \"npolintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"npolintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvarisinobar\"\n    },\n    {\n      \"name\": \"nvarniobar\"\n    },\n    {\n      \"name\": \"nvartriangleleft\"\n    },\n    {\n      \"name\": \"nvartriangleright\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"nvinfty\",\n      \"detail\": \"⧞\",\n      \"doc\": \"Infinity negated with vertical bar\"\n    },\n    {\n      \"name\": \"nvleftarrow\",\n      \"detail\": \"⇷\",\n      \"doc\": \"Leftwards arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrow\",\n      \"detail\": \"⇺\",\n      \"doc\": \"Leftwards arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvLeftarrow\",\n      \"detail\": \"⤂\",\n      \"doc\": \"Leftwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftarrowtail\",\n      \"detail\": \"⬹\",\n      \"doc\": \"Leftwards arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVleftarrowtail\",\n      \"detail\": \"⬺\",\n      \"doc\": \"Leftwards arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvleftrightarrow\",\n      \"detail\": \"⇹\",\n      \"doc\": \"Left right arrow with vertical stroke, partial relation\"\n    },\n    {\n      \"name\": \"nVleftrightarrow\",\n      \"detail\": \"⇼\",\n      \"doc\": \"Left right arrow with double vertical stroke, finite relation\"\n    },\n    {\n      \"name\": \"nvLeftrightarrow\",\n      \"detail\": \"⤄\",\n      \"doc\": \"Left right double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrow\",\n      \"detail\": \"⇸ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with vertical stroke, partial function\"\n    },\n    {\n      \"name\": \"nVrightarrow\",\n      \"detail\": \"⇻ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with double vertical stroke, finite function\"\n    },\n    {\n      \"name\": \"nvRightarrow\",\n      \"detail\": \"⤃\",\n      \"doc\": \"Rightwards double arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nvrightarrowtail\",\n      \"detail\": \"⤔ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with vertical stroke, partial injection\"\n    },\n    {\n      \"name\": \"nVrightarrowtail\",\n      \"detail\": \"⤕ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards arrow with tail with double vertical stroke, finite injection\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrow\",\n      \"detail\": \"⬴\",\n      \"doc\": \"Leftwards two-headed arrow with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrow\",\n      \"detail\": \"⬵\",\n      \"doc\": \"Leftwards two-headed arrow with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadleftarrowtail\",\n      \"detail\": \"⬼\",\n      \"doc\": \"Leftwards two-headed arrow with tail with vertical stroke\"\n    },\n    {\n      \"name\": \"nVtwoheadleftarrowtail\",\n      \"detail\": \"⬽\",\n      \"doc\": \"Leftwards two-headed arrow with tail with double vertical stroke\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrow\",\n      \"detail\": \"⤀ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\psurj (oz), rightwards two-headed arrow with vertical stroke, partial surjection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrow\",\n      \"detail\": \"⤁\",\n      \"doc\": \"Rightwards two-headed arrow with double vertical stroke, finite surjection\"\n    },\n    {\n      \"name\": \"nvtwoheadrightarrowtail\",\n      \"detail\": \"⤗\",\n      \"doc\": \"Rightwards two-headed arrow with tail with vertical stroke, surjective injection\"\n    },\n    {\n      \"name\": \"nVtwoheadrightarrowtail\",\n      \"detail\": \"⤘\",\n      \"doc\": \"Rightwards two-headed arrow with tail with double vertical stroke, finite surjective injection\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"nwovnearrow\",\n      \"detail\": \"⤲\",\n      \"doc\": \"North west arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"nwsearrow\",\n      \"detail\": \"⤡\",\n      \"doc\": \"North west and south east arrow\"\n    },\n    {\n      \"name\": \"obar\",\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"obot\",\n      \"detail\": \"⦺\",\n      \"doc\": \"Circle divided by horizontal bar and top half divided by vertical bar\"\n    },\n    {\n      \"name\": \"obrbrak\",\n      \"detail\": \"⏠\",\n      \"doc\": \"Top tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocommatopright{${1:arg}}\"\n      },\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"odiv\",\n      \"detail\": \"⨸\",\n      \"doc\": \"Circled division sign\"\n    },\n    {\n      \"name\": \"odotslashdot\",\n      \"detail\": \"⦼\",\n      \"doc\": \"Circled anticlockwise-rotated division sign\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olcross\",\n      \"detail\": \"⦻\",\n      \"doc\": \"Circle with superimposed x\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"operp\",\n      \"detail\": \"⦹\",\n      \"doc\": \"Circled perpendicular\"\n    },\n    {\n      \"name\": \"opluslhrim\",\n      \"detail\": \"⨭\",\n      \"doc\": \"Plus sign in left half circle\"\n    },\n    {\n      \"name\": \"oplusrhrim\",\n      \"detail\": \"⨮\",\n      \"doc\": \"Plus sign in right half circle\"\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"Otimes\",\n      \"detail\": \"⨷\",\n      \"doc\": \"Multiplication sign in double circle\"\n    },\n    {\n      \"name\": \"otimeshat\",\n      \"detail\": \"⨶\",\n      \"doc\": \"Circled multiplication sign with circumflex accent\"\n    },\n    {\n      \"name\": \"otimeslhrim\",\n      \"detail\": \"⨴\",\n      \"doc\": \"Multiplication sign in left half circle\"\n    },\n    {\n      \"name\": \"otimesrhrim\",\n      \"detail\": \"⨵\",\n      \"doc\": \"Multiplication sign in right half circle\"\n    },\n    {\n      \"name\": \"oturnedcomma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oturnedcomma{${1:arg}}\"\n      },\n      \"detail\": \" ̒\",\n      \"doc\": \"Combining turned comma above\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃡ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left right arrow above\"\n    },\n    {\n      \"name\": \"overparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overparen{${1:arg}}\"\n      },\n      \"detail\": \"⏜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\wideparen (yhmath mathabx fourier), top parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ovhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovhook{${1:arg}}\"\n      },\n      \"detail\": \" ̉\",\n      \"doc\": \"Combining hook above\"\n    },\n    {\n      \"name\": \"parallelogram\",\n      \"detail\": \"▱\",\n      \"doc\": \"Parallelogram, open\"\n    },\n    {\n      \"name\": \"parallelogramblack\",\n      \"detail\": \"▰\",\n      \"doc\": \"Black parallelogram\"\n    },\n    {\n      \"name\": \"parenld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenlu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parsim\",\n      \"detail\": \"⫳\",\n      \"doc\": \"Parallel with tilde operator\"\n    },\n    {\n      \"name\": \"partialmeetcontraction\",\n      \"detail\": \"⪣\",\n      \"doc\": \"Double less-than with underbar\"\n    },\n    {\n      \"name\": \"pentagon\",\n      \"detail\": \"⬠\",\n      \"doc\": \"White pentagon\"\n    },\n    {\n      \"name\": \"pentagonblack\",\n      \"detail\": \"⬟\",\n      \"doc\": \"Black pentagon\"\n    },\n    {\n      \"name\": \"perps\",\n      \"detail\": \"⫡\",\n      \"doc\": \"Perpendicular with s\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"plusdot\",\n      \"detail\": \"⨥\",\n      \"doc\": \"Plus sign with dot below\"\n    },\n    {\n      \"name\": \"pluseqq\",\n      \"detail\": \"⩲\",\n      \"doc\": \"Plus sign above equals sign\"\n    },\n    {\n      \"name\": \"plushat\",\n      \"detail\": \"⨣\",\n      \"doc\": \"Plus sign with circumflex accent above\"\n    },\n    {\n      \"name\": \"plussim\",\n      \"detail\": \"⨦\",\n      \"doc\": \"Plus sign with tilde below\"\n    },\n    {\n      \"name\": \"plussubtwo\",\n      \"detail\": \"⨧\",\n      \"doc\": \"Plus sign with subscript two\"\n    },\n    {\n      \"name\": \"plustrif\",\n      \"detail\": \"⨨\",\n      \"doc\": \"Plus sign with black triangle\"\n    },\n    {\n      \"name\": \"pointint\",\n      \"detail\": \"⨕\",\n      \"doc\": \"Integral around a point operator\"\n    },\n    {\n      \"name\": \"pointintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postalmark\",\n      \"detail\": \"〒\",\n      \"doc\": \"Postal mark\"\n    },\n    {\n      \"name\": \"Prec\",\n      \"detail\": \"⪻ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double precedes\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"prodop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"profline\",\n      \"detail\": \"⌒\",\n      \"doc\": \"Profile of a line\"\n    },\n    {\n      \"name\": \"profsurf\",\n      \"detail\": \"⌓\",\n      \"doc\": \"Profile of a surface\"\n    },\n    {\n      \"name\": \"PropertyLine\",\n      \"detail\": \"⅊\",\n      \"doc\": \"Property line\"\n    },\n    {\n      \"name\": \"prurel\",\n      \"detail\": \"⊰\",\n      \"doc\": \"Element precedes under relation\"\n    },\n    {\n      \"name\": \"pullback\",\n      \"detail\": \"⟓\",\n      \"doc\": \"Lower right corner with dot\"\n    },\n    {\n      \"name\": \"pushout\",\n      \"detail\": \"⟔\",\n      \"doc\": \"Upper left corner with dot\"\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"qprime\",\n      \"detail\": \"⁗ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Quadruple prime, not superscripted\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"questeq\",\n      \"detail\": \"≟\",\n      \"doc\": \"Equal with questionmark\"\n    },\n    {\n      \"name\": \"Question\",\n      \"detail\": \"⁇\",\n      \"doc\": \"??, double question mark\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"rangledot\",\n      \"detail\": \"⦒\",\n      \"doc\": \"Right angle bracket with dot\"\n    },\n    {\n      \"name\": \"rangledownzigzagarrow\",\n      \"detail\": \"⍼\",\n      \"doc\": \"Right angle with downwards zigzag arrow\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rblkbrbrak\",\n      \"detail\": \"⦘\",\n      \"doc\": \"Right black tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rBrace\",\n      \"detail\": \"⦄\",\n      \"doc\": \"Right white curly bracket\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rbracklrtick\",\n      \"detail\": \"⦎\",\n      \"doc\": \"Right square bracket with tick in bottom corner\"\n    },\n    {\n      \"name\": \"rbrackubar\",\n      \"detail\": \"⦌\",\n      \"doc\": \"Right square bracket with underbar\"\n    },\n    {\n      \"name\": \"rbrackurtick\",\n      \"detail\": \"⦐\",\n      \"doc\": \"Right square bracket with tick in top corner\"\n    },\n    {\n      \"name\": \"rbrbrak\",\n      \"detail\": \"〕\",\n      \"doc\": \"Right broken bracket\"\n    },\n    {\n      \"name\": \"Rbrbrak\",\n      \"detail\": \"〙\",\n      \"doc\": \"Right white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rbrbrak\",\n      \"detail\": \"〕\",\n      \"doc\": \"Right broken bracket\"\n    },\n    {\n      \"name\": \"Rbrbrak\",\n      \"detail\": \"〙\",\n      \"doc\": \"Right white tortoise shell bracket\"\n    },\n    {\n      \"name\": \"rcurvyangle\",\n      \"detail\": \"⧽\",\n      \"doc\": \"Right pointing curved angle bracket\"\n    },\n    {\n      \"name\": \"rdiagovfdiag\",\n      \"detail\": \"⤫\",\n      \"doc\": \"Rising diagonal crossing falling diagonal\"\n    },\n    {\n      \"name\": \"rdiagovsearrow\",\n      \"detail\": \"⤰\",\n      \"doc\": \"Rising diagonal crossing south east arrow\"\n    },\n    {\n      \"name\": \"Rdsh\",\n      \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Right down angled arrow\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"revangle\",\n      \"detail\": \"⦣\",\n      \"doc\": \"Reversed angle\"\n    },\n    {\n      \"name\": \"revangleubar\",\n      \"detail\": \"⦥\",\n      \"doc\": \"Reversed angle with underbar\"\n    },\n    {\n      \"name\": \"revemptyset\",\n      \"detail\": \"⦰\",\n      \"doc\": \"Reversed empty set\"\n    },\n    {\n      \"name\": \"revnmid\",\n      \"detail\": \"⫮\",\n      \"doc\": \"Does not divide with reversed negation slash\"\n    },\n    {\n      \"name\": \"rfbowtie\",\n      \"detail\": \"⧒\",\n      \"doc\": \"Right black bowtie\"\n    },\n    {\n      \"name\": \"rftimes\",\n      \"detail\": \"⧕\",\n      \"doc\": \"Right black times\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightanglemdot\",\n      \"detail\": \"⦝\",\n      \"doc\": \"Measured right angle with dot\"\n    },\n    {\n      \"name\": \"rightanglesqr\",\n      \"detail\": \"⦜\",\n      \"doc\": \"Right angle variant with square\"\n    },\n    {\n      \"name\": \"rightarrowaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightarrowaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rightarrowapprox\",\n      \"detail\": \"⥵\",\n      \"doc\": \"Rightwards arrow above almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbackapprox\",\n      \"detail\": \"⭈\",\n      \"doc\": \"Rightwards arrow above reverse almost equal to\"\n    },\n    {\n      \"name\": \"rightarrowbar\",\n      \"detail\": \"⇥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards arrow to bar\"\n    },\n    {\n      \"name\": \"rightarrowbsimilar\",\n      \"detail\": \"⭌\",\n      \"doc\": \"Righttwards arrow above reverse tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowdiamond\",\n      \"detail\": \"⤞\",\n      \"doc\": \"Rightwards arrow to black diamond\"\n    },\n    {\n      \"name\": \"rightarrowgtr\",\n      \"detail\": \"⭃\",\n      \"doc\": \"Rightwards arrow through less-than\"\n    },\n    {\n      \"name\": \"rightarrowonoplus\",\n      \"detail\": \"⟴\",\n      \"doc\": \"Right arrow with circled plus\"\n    },\n    {\n      \"name\": \"rightarrowplus\",\n      \"detail\": \"⥅\",\n      \"doc\": \"Rightwards arrow with plus below\"\n    },\n    {\n      \"name\": \"rightarrowshortleftarrow\",\n      \"detail\": \"⥂\",\n      \"doc\": \"Rightwards arrow above short leftwards arrow\"\n    },\n    {\n      \"name\": \"rightarrowsimilar\",\n      \"detail\": \"⥴\",\n      \"doc\": \"Rightwards arrow above tilde operator\"\n    },\n    {\n      \"name\": \"rightarrowsupset\",\n      \"detail\": \"⭄\",\n      \"doc\": \"Rightwards arrow through subset\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rightarrowx\",\n      \"detail\": \"⥇\",\n      \"doc\": \"Rightwards arrow through x\"\n    },\n    {\n      \"name\": \"rightbkarrow\",\n      \"detail\": \"⤍\",\n      \"doc\": \"Rightwards double dash arrow\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"rightdbltail\",\n      \"detail\": \"⤜\",\n      \"doc\": \"Rightwards double arrow-tail\"\n    },\n    {\n      \"name\": \"rightdotarrow\",\n      \"detail\": \"⤑\",\n      \"doc\": \"Rightwards arrow with dotted stem\"\n    },\n    {\n      \"name\": \"rightdowncurvedarrow\",\n      \"detail\": \"⤷\",\n      \"doc\": \"Arrow pointing downwards then curving rightwards\"\n    },\n    {\n      \"name\": \"rightfishtail\",\n      \"detail\": \"⥽ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Right fish tail\"\n    },\n    {\n      \"name\": \"rightharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining right harpoon above\"\n    },\n    {\n      \"name\": \"rightharpoondownbar\",\n      \"detail\": \"⥗ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb down to bar\"\n    },\n    {\n      \"name\": \"rightharpoonsupdown\",\n      \"detail\": \"⥤ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above rightwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightharpoonupbar\",\n      \"detail\": \"⥓ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up to bar\"\n    },\n    {\n      \"name\": \"rightharpoonupdash\",\n      \"detail\": \"⥬ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Rightwards harpoon with barb up above long dash\"\n    },\n    {\n      \"name\": \"rightimply\",\n      \"detail\": \"⥰\",\n      \"doc\": \"Right double arrow with rounded head\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightleftharpoonsdown\",\n      \"detail\": \"⥩\",\n      \"doc\": \"Rightwards harpoon with barb down above leftwards harpoon with barb down\"\n    },\n    {\n      \"name\": \"rightleftharpoonsup\",\n      \"detail\": \"⥨\",\n      \"doc\": \"Rightwards harpoon with barb up above leftwards harpoon with barb up\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"rightouterjoin\",\n      \"detail\": \"⟖\",\n      \"doc\": \"Right outer join\"\n    },\n    {\n      \"name\": \"rightpentagon\",\n      \"detail\": \"⭔\",\n      \"doc\": \"White right-pointing pentagon\"\n    },\n    {\n      \"name\": \"rightpentagonblack\",\n      \"detail\": \"⭓\",\n      \"doc\": \"Black right-pointing pentagon\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"righttail\",\n      \"detail\": \"⤚\",\n      \"doc\": \"Rightwards arrow-tail\"\n    },\n    {\n      \"name\": \"rightthreearrows\",\n      \"detail\": \"⇶\",\n      \"doc\": \"Three rightwards arrows\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightwavearrow\",\n      \"detail\": \"↝\",\n      \"doc\": \"Right arrow-wavy\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"ringplus\",\n      \"detail\": \"⨢\",\n      \"doc\": \"Plus sign with small circle above\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rParen\",\n      \"detail\": \"⦆ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Right white parenthesis\"\n    },\n    {\n      \"name\": \"rparengtr\",\n      \"detail\": \"⦔\",\n      \"doc\": \"Right arc greater-than bracket\"\n    },\n    {\n      \"name\": \"Rparenless\",\n      \"detail\": \"⦖\",\n      \"doc\": \"Double right arc less-than bracket\"\n    },\n    {\n      \"name\": \"rppolint\",\n      \"detail\": \"⨒\",\n      \"doc\": \"Line integration with rectangular path around pole\"\n    },\n    {\n      \"name\": \"rppolintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rppolintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrangle\",\n      \"detail\": \"⦊ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation right binding bracket\"\n    },\n    {\n      \"name\": \"Rrelbar\"\n    },\n    {\n      \"name\": \"RRelbar\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"RRightarrow\",\n      \"detail\": \"⭆\",\n      \"doc\": \"Rightwards quadruple arrow\"\n    },\n    {\n      \"name\": \"rrparenthesis\",\n      \"detail\": \"⦈ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rsolbar\",\n      \"detail\": \"⧷\",\n      \"doc\": \"Reverse solidus with horizontal stroke\"\n    },\n    {\n      \"name\": \"rsqhook\",\n      \"detail\": \"⫎\",\n      \"doc\": \"Square right open box operator\"\n    },\n    {\n      \"name\": \"rsub\",\n      \"detail\": \"⩥ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\nrres (oz), range antirestriction\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"rtriltri\",\n      \"detail\": \"⧎\",\n      \"doc\": \"Right triangle above left triangle\"\n    },\n    {\n      \"name\": \"ruledelayed\",\n      \"detail\": \"⧴\",\n      \"doc\": \"Rule-delayed\"\n    },\n    {\n      \"name\": \"rvzigzag\",\n      \"detail\": \"⧙\",\n      \"doc\": \"Right wiggly fence\"\n    },\n    {\n      \"name\": \"Rvzigzag\",\n      \"detail\": \"⧛\",\n      \"doc\": \"Right double wiggly fence\"\n    },\n    {\n      \"name\": \"sansLmirrored\",\n      \"detail\": \"⅃\",\n      \"doc\": \"Reversed sans-serif capital l\"\n    },\n    {\n      \"name\": \"sansLturned\",\n      \"detail\": \"⅂\",\n      \"doc\": \"Turned sans-serif capital l\"\n    },\n    {\n      \"name\": \"scpolint\",\n      \"detail\": \"⨓\",\n      \"doc\": \"Line integration with semicircular path around pole\"\n    },\n    {\n      \"name\": \"scpolintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scpolintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scurel\",\n      \"detail\": \"⊱\",\n      \"doc\": \"Succeeds under relation\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"seovnearrow\",\n      \"detail\": \"⤭\",\n      \"doc\": \"South east arrow crossing north east arrow\"\n    },\n    {\n      \"name\": \"shortdowntack\",\n      \"detail\": \"⫟\",\n      \"doc\": \"Short down tack\"\n    },\n    {\n      \"name\": \"shortlefttack\",\n      \"detail\": \"⫞\",\n      \"doc\": \"Short left tack\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortrightarrowleftarrow\",\n      \"detail\": \"⥄\",\n      \"doc\": \"Short rightwards arrow above leftwards arrow\"\n    },\n    {\n      \"name\": \"shortuptack\",\n      \"detail\": \"⫠\",\n      \"doc\": \"Short up tack\"\n    },\n    {\n      \"name\": \"shuffle\",\n      \"detail\": \"⧢\",\n      \"doc\": \"Shuffle product\"\n    },\n    {\n      \"name\": \"simgE\",\n      \"detail\": \"⪠\",\n      \"doc\": \"Similar above greater-than above equals sign\"\n    },\n    {\n      \"name\": \"simgtr\",\n      \"detail\": \"⪞\",\n      \"doc\": \"Similar or greater-than\"\n    },\n    {\n      \"name\": \"similarleftarrow\",\n      \"detail\": \"⭉\",\n      \"doc\": \"Tilde operator above leftwards arrow\"\n    },\n    {\n      \"name\": \"similarrightarrow\",\n      \"detail\": \"⥲\",\n      \"doc\": \"Tilde operator above rightwards arrow\"\n    },\n    {\n      \"name\": \"simlE\",\n      \"detail\": \"⪟\",\n      \"doc\": \"Similar above less-than above equals sign\"\n    },\n    {\n      \"name\": \"simless\",\n      \"detail\": \"⪝\",\n      \"doc\": \"Similar or less-than\"\n    },\n    {\n      \"name\": \"simminussim\",\n      \"detail\": \"⩬\",\n      \"doc\": \"Similar minus similar\"\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"simplus\",\n      \"detail\": \"⨤\",\n      \"doc\": \"Plus sign with tilde above\"\n    },\n    {\n      \"name\": \"simrdots\",\n      \"detail\": \"⩫\",\n      \"doc\": \"Tilde operator with rising dots\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"smallawint\"\n    },\n    {\n      \"name\": \"smallawintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallawintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallcirfnint\"\n    },\n    {\n      \"name\": \"smallcirfnintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallcirfnintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfint\"\n    },\n    {\n      \"name\": \"smallfintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smalliiiint\"\n    },\n    {\n      \"name\": \"smalliiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiint\"\n    },\n    {\n      \"name\": \"smalliiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliint\"\n    },\n    {\n      \"name\": \"smalliintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalliintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallin\",\n      \"detail\": \"∊\",\n      \"doc\": \"Set membership (small set membership)\"\n    },\n    {\n      \"name\": \"smallintbar\"\n    },\n    {\n      \"name\": \"smallintBar\"\n    },\n    {\n      \"name\": \"smallintbarsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintBarsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintbarup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintBarup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintcap\"\n    },\n    {\n      \"name\": \"smallintcapsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintcapup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintclockwise\"\n    },\n    {\n      \"name\": \"smallintclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintcup\"\n    },\n    {\n      \"name\": \"smallintcupsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintcupup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintlarhk\"\n    },\n    {\n      \"name\": \"smallintlarhksl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintlarhkup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintx\"\n    },\n    {\n      \"name\": \"smallintxsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallintxup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalllowint\"\n    },\n    {\n      \"name\": \"smalllowintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalllowintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallni\",\n      \"detail\": \"∍\",\n      \"doc\": \"R: contains (small contains as member)\"\n    },\n    {\n      \"name\": \"smallnpolint\"\n    },\n    {\n      \"name\": \"smallnpolintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallnpolintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiint\"\n    },\n    {\n      \"name\": \"smalloiiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiint\"\n    },\n    {\n      \"name\": \"smalloiintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloiintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalloint\"\n    },\n    {\n      \"name\": \"smallointctrclockwise\"\n    },\n    {\n      \"name\": \"smallointctrclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointctrclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallointup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallpointint\"\n    },\n    {\n      \"name\": \"smallpointintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallpointintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallrppolint\"\n    },\n    {\n      \"name\": \"smallrppolintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallrppolintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallscpolint\"\n    },\n    {\n      \"name\": \"smallscpolintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallscpolintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smallsqint\"\n    },\n    {\n      \"name\": \"smallsqintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsqintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsumint\"\n    },\n    {\n      \"name\": \"smallsumintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallsumintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smallupint\"\n    },\n    {\n      \"name\": \"smallupintsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallupintup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwise\"\n    },\n    {\n      \"name\": \"smallvarointclockwisesl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallvarointclockwiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smashtimes\",\n      \"detail\": \"⨳\",\n      \"doc\": \"Smash product\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smblksquare\",\n      \"detail\": \"▪\",\n      \"doc\": \"Sq bullet, filled\"\n    },\n    {\n      \"name\": \"smeparsl\",\n      \"detail\": \"⧤\",\n      \"doc\": \"Equals sign and slanted parallel with tilde above\"\n    },\n    {\n      \"name\": \"smt\",\n      \"detail\": \"⪪\",\n      \"doc\": \"Smaller than\"\n    },\n    {\n      \"name\": \"smte\",\n      \"detail\": \"⪬\",\n      \"doc\": \"Smaller than or equal to\"\n    },\n    {\n      \"name\": \"smwhitestar\",\n      \"detail\": \"⭒\",\n      \"doc\": \"White small star\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"smwhtsquare\",\n      \"detail\": \"▫\",\n      \"doc\": \"White small square\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sphericalangleup\",\n      \"detail\": \"⦡\",\n      \"doc\": \"Spherical angle opening up\"\n    },\n    {\n      \"name\": \"Sqcap\",\n      \"detail\": \"⩎\",\n      \"doc\": \"Double square intersection\"\n    },\n    {\n      \"name\": \"Sqcup\",\n      \"detail\": \"⩏\",\n      \"doc\": \"Double square union\"\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqlozenge\",\n      \"detail\": \"⌑ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Square lozenge\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"squarebotblack\",\n      \"detail\": \"⬓\",\n      \"doc\": \"Square with bottom half black\"\n    },\n    {\n      \"name\": \"squarecrossfill\",\n      \"detail\": \"▩\",\n      \"doc\": \"Square with diagonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squarehfill\",\n      \"detail\": \"▤\",\n      \"doc\": \"Square, horizontal rule filled\"\n    },\n    {\n      \"name\": \"squarehvfill\",\n      \"detail\": \"▦\",\n      \"doc\": \"Square with orthogonal crosshatch fill\"\n    },\n    {\n      \"name\": \"squareleftblack\",\n      \"detail\": \"◧\",\n      \"doc\": \"Square, filled left half\"\n    },\n    {\n      \"name\": \"squarellblack\",\n      \"detail\": \"⬕\",\n      \"doc\": \"Square with lower left diagonal half black\"\n    },\n    {\n      \"name\": \"squarellquad\",\n      \"detail\": \"◱\",\n      \"doc\": \"White square with lower left quadrant\"\n    },\n    {\n      \"name\": \"squarelrblack\",\n      \"detail\": \"◪\",\n      \"doc\": \"Square, filled bottom right corner\"\n    },\n    {\n      \"name\": \"squarelrquad\",\n      \"detail\": \"◲\",\n      \"doc\": \"White square with lower right quadrant\"\n    },\n    {\n      \"name\": \"squareneswfill\",\n      \"detail\": \"▨\",\n      \"doc\": \"Square, ne-to-sw rule filled\"\n    },\n    {\n      \"name\": \"squarenwsefill\",\n      \"detail\": \"▧\",\n      \"doc\": \"Square, nw-to-se rule filled\"\n    },\n    {\n      \"name\": \"squarerightblack\",\n      \"detail\": \"◨\",\n      \"doc\": \"Square, filled right half\"\n    },\n    {\n      \"name\": \"squaretopblack\",\n      \"detail\": \"⬒\",\n      \"doc\": \"Square with top half black\"\n    },\n    {\n      \"name\": \"squareulblack\",\n      \"detail\": \"◩\",\n      \"doc\": \"Square, filled top left corner\"\n    },\n    {\n      \"name\": \"squareulquad\",\n      \"detail\": \"◰\",\n      \"doc\": \"White square with upper left quadrant\"\n    },\n    {\n      \"name\": \"squareurblack\",\n      \"detail\": \"⬔\",\n      \"doc\": \"Square with upper right diagonal half black\"\n    },\n    {\n      \"name\": \"squareurquad\",\n      \"detail\": \"◳\",\n      \"doc\": \"White square with upper right quadrant\"\n    },\n    {\n      \"name\": \"squarevfill\",\n      \"detail\": \"▥\",\n      \"doc\": \"Square, vertical rule filled\"\n    },\n    {\n      \"name\": \"squoval\",\n      \"detail\": \"▢\",\n      \"doc\": \"White square with rounded corners\"\n    },\n    {\n      \"name\": \"sslash\",\n      \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\varparallel (txfonts), double solidus operator\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"strns\",\n      \"detail\": \"⏤\",\n      \"doc\": \"Straightness\"\n    },\n    {\n      \"name\": \"subedot\",\n      \"detail\": \"⫃\",\n      \"doc\": \"Subset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"submult\",\n      \"detail\": \"⫁\",\n      \"doc\": \"Subset with multiplication sign below\"\n    },\n    {\n      \"name\": \"subrarr\",\n      \"detail\": \"⥹\",\n      \"doc\": \"Subset above rightwards arrow\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subsetapprox\",\n      \"detail\": \"⫉\",\n      \"doc\": \"Subset of above almost equal to\"\n    },\n    {\n      \"name\": \"subsetcirc\",\n      \"detail\": \"⟃\",\n      \"doc\": \"Open subset\"\n    },\n    {\n      \"name\": \"subsetdot\",\n      \"detail\": \"⪽\",\n      \"doc\": \"Subset with dot\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"subsetplus\",\n      \"detail\": \"⪿\",\n      \"doc\": \"Subset with plus sign below\"\n    },\n    {\n      \"name\": \"subsim\",\n      \"detail\": \"⫇\",\n      \"doc\": \"Subset of above tilde operator\"\n    },\n    {\n      \"name\": \"subsub\",\n      \"detail\": \"⫕\",\n      \"doc\": \"Subset above subset\"\n    },\n    {\n      \"name\": \"subsup\",\n      \"detail\": \"⫓\",\n      \"doc\": \"Subset above superset\"\n    },\n    {\n      \"name\": \"Succ\",\n      \"detail\": \"⪼ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double succeeds\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumint\",\n      \"detail\": \"⨋\",\n      \"doc\": \"Summation with integral\"\n    },\n    {\n      \"name\": \"sumintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"supdsub\",\n      \"detail\": \"⫘\",\n      \"doc\": \"Superset beside and joined by dash with subset\"\n    },\n    {\n      \"name\": \"supedot\",\n      \"detail\": \"⫄\",\n      \"doc\": \"Superset of or equal to with dot above\"\n    },\n    {\n      \"name\": \"suphsol\",\n      \"detail\": \"⟉\",\n      \"doc\": \"Superset preceding solidus\"\n    },\n    {\n      \"name\": \"suphsub\",\n      \"detail\": \"⫗\",\n      \"doc\": \"Superset beside subset\"\n    },\n    {\n      \"name\": \"suplarr\",\n      \"detail\": \"⥻\",\n      \"doc\": \"Superset above leftwards arrow\"\n    },\n    {\n      \"name\": \"supmult\",\n      \"detail\": \"⫂\",\n      \"doc\": \"Superset with multiplication sign below\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supsetapprox\",\n      \"detail\": \"⫊\",\n      \"doc\": \"Superset of above almost equal to\"\n    },\n    {\n      \"name\": \"supsetcirc\",\n      \"detail\": \"⟄\",\n      \"doc\": \"Open superset\"\n    },\n    {\n      \"name\": \"supsetdot\",\n      \"detail\": \"⪾\",\n      \"doc\": \"Superset with dot\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"supsetplus\",\n      \"detail\": \"⫀\",\n      \"doc\": \"Superset with plus sign below\"\n    },\n    {\n      \"name\": \"supsim\",\n      \"detail\": \"⫈\",\n      \"doc\": \"Superset of above tilde operator\"\n    },\n    {\n      \"name\": \"supsub\",\n      \"detail\": \"⫔\",\n      \"doc\": \"Superset above subset\"\n    },\n    {\n      \"name\": \"supsup\",\n      \"detail\": \"⫖\",\n      \"doc\": \"Superset above superset\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"talloblong\",\n      \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"White vertical bar\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thermod\",\n      \"detail\": \"⧧\",\n      \"doc\": \"Thermodynamic\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"threedangle\",\n      \"detail\": \"⟀\",\n      \"doc\": \"Three dimensional angle\"\n    },\n    {\n      \"name\": \"threedotcolon\",\n      \"detail\": \"⫶\",\n      \"doc\": \"Triple colon operator\"\n    },\n    {\n      \"name\": \"tieinfty\",\n      \"detail\": \"⧝\",\n      \"doc\": \"Tie over infinity\"\n    },\n    {\n      \"name\": \"timesbar\",\n      \"detail\": \"⨱\",\n      \"doc\": \"Multiplication sign with underbar\"\n    },\n    {\n      \"name\": \"tminus\",\n      \"detail\": \"⧿\",\n      \"doc\": \"Miny\"\n    },\n    {\n      \"name\": \"toea\",\n      \"detail\": \"⤨\",\n      \"doc\": \"North east arrow and south east arrow\"\n    },\n    {\n      \"name\": \"tona\",\n      \"detail\": \"⤧\",\n      \"doc\": \"North west arrow and north east arrow\"\n    },\n    {\n      \"name\": \"topbot\",\n      \"detail\": \"⌶\",\n      \"doc\": \"Apl functional symbol i-beam, top and bottom\"\n    },\n    {\n      \"name\": \"topcir\",\n      \"detail\": \"⫱\",\n      \"doc\": \"Down tack with circle below\"\n    },\n    {\n      \"name\": \"topfork\",\n      \"detail\": \"⫚\",\n      \"doc\": \"Pitchfork with tee top\"\n    },\n    {\n      \"name\": \"topsemicircle\",\n      \"detail\": \"◠\",\n      \"doc\": \"Upper half circle\"\n    },\n    {\n      \"name\": \"tosa\",\n      \"detail\": \"⤩\",\n      \"doc\": \"South east arrow and south west arrow\"\n    },\n    {\n      \"name\": \"towa\",\n      \"detail\": \"⤪\",\n      \"doc\": \"South west arrow and north west arrow\"\n    },\n    {\n      \"name\": \"tplus\",\n      \"detail\": \"⧾\",\n      \"doc\": \"Tiny\"\n    },\n    {\n      \"name\": \"trapezium\",\n      \"detail\": \"⏢\",\n      \"doc\": \"White trapezium\"\n    },\n    {\n      \"name\": \"trianglecdot\",\n      \"detail\": \"◬\",\n      \"doc\": \"Triangle with centered dot\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"triangleleftblack\",\n      \"detail\": \"◭\",\n      \"doc\": \"Up-pointing triangle with left half black\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleminus\",\n      \"detail\": \"⨺\",\n      \"doc\": \"Minus sign in triangle\"\n    },\n    {\n      \"name\": \"triangleodot\",\n      \"detail\": \"⧊\",\n      \"doc\": \"Triangle with dot above\"\n    },\n    {\n      \"name\": \"triangleplus\",\n      \"detail\": \"⨹\",\n      \"doc\": \"Plus sign in triangle\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerightblack\",\n      \"detail\": \"◮\",\n      \"doc\": \"Up-pointing triangle with right half black\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"triangles\",\n      \"detail\": \"⧌\",\n      \"doc\": \"S in triangle\"\n    },\n    {\n      \"name\": \"triangleserifs\",\n      \"detail\": \"⧍\",\n      \"doc\": \"Triangle with serifs at bottom\"\n    },\n    {\n      \"name\": \"triangletimes\",\n      \"detail\": \"⨻\",\n      \"doc\": \"Multiplication sign in triangle\"\n    },\n    {\n      \"name\": \"triangleubar\",\n      \"detail\": \"⧋\",\n      \"doc\": \"Triangle with underbar\"\n    },\n    {\n      \"name\": \"tripleplus\",\n      \"detail\": \"⧻\",\n      \"doc\": \"Triple plus\"\n    },\n    {\n      \"name\": \"trprime\",\n      \"detail\": \"‴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Triple prime (not superscripted)\"\n    },\n    {\n      \"name\": \"trslash\",\n      \"detail\": \"⫻\",\n      \"doc\": \"Triple solidus binary relation\"\n    },\n    {\n      \"name\": \"turnangle\",\n      \"detail\": \"⦢\",\n      \"doc\": \"Turned angle\"\n    },\n    {\n      \"name\": \"turnediota\",\n      \"detail\": \"℩\",\n      \"doc\": \"Turned iota\"\n    },\n    {\n      \"name\": \"turnednot\",\n      \"detail\": \"⌙\",\n      \"doc\": \"Turned not sign\"\n    },\n    {\n      \"name\": \"twocaps\",\n      \"detail\": \"⩋\",\n      \"doc\": \"Intersection beside and joined with intersection\"\n    },\n    {\n      \"name\": \"twocups\",\n      \"detail\": \"⩊\",\n      \"doc\": \"Union beside and joined with union\"\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrowtail\",\n      \"detail\": \"⬻\",\n      \"doc\": \"Leftwards two-headed arrow with tail\"\n    },\n    {\n      \"name\": \"twoheadleftdbkarrow\",\n      \"detail\": \"⬷\",\n      \"doc\": \"Leftwards two-headed triple-dash arrow\"\n    },\n    {\n      \"name\": \"twoheadmapsfrom\",\n      \"detail\": \"⬶\",\n      \"doc\": \"Leftwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadmapsto\",\n      \"detail\": \"⤅\",\n      \"doc\": \"Rightwards two-headed arrow from bar\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheadrightarrowtail\",\n      \"detail\": \"⤖ (\\\"oz\\\" command)\",\n      \"doc\": \"Rightwards two-headed arrow with tail, bijection\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheaduparrowcircle\",\n      \"detail\": \"⥉\",\n      \"doc\": \"Upwards two-headed arrow from small circle\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"typecolon\",\n      \"detail\": \"⦂\",\n      \"doc\": \"Z notation type colon, (present in bbold font but no command)\"\n    },\n    {\n      \"name\": \"ubrbrak\",\n      \"detail\": \"⏡\",\n      \"doc\": \"Bottom tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"ularc\",\n      \"detail\": \"◜\",\n      \"doc\": \"Upper left quadrant circular arc\"\n    },\n    {\n      \"name\": \"ulblacktriangle\",\n      \"detail\": \"◤\",\n      \"doc\": \"Upper left triangle, filled\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"ultriangle\",\n      \"detail\": \"◸\",\n      \"doc\": \"Upper left triangle\"\n    },\n    {\n      \"name\": \"uminus\",\n      \"detail\": \"⩁\",\n      \"doc\": \"Union with minus sign, bag subtraction\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃮ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining left arrow below\"\n    },\n    {\n      \"name\": \"underleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underleftrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftrightarrow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"underparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underparen{${1:arg}}\"\n      },\n      \"detail\": \"⏝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Bottom parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"underrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightarrow{${1:arg}}\"\n      },\n      \"detail\": \"x⃯ (\\\"amsmath\\\" command)\",\n      \"doc\": \"Combining right arrow below\"\n    },\n    {\n      \"name\": \"underrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unicodeellipsis\",\n      \"unusual\": true,\n      \"detail\": \"…\",\n      \"doc\": \"Ellipsis (horizontal)\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"uparrowbarred\",\n      \"detail\": \"⤉\",\n      \"doc\": \"Upwards arrow with horizontal stroke\"\n    },\n    {\n      \"name\": \"uparrowoncircle\",\n      \"detail\": \"⦽\",\n      \"doc\": \"Up arrow through circle\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updownarrowbar\",\n      \"detail\": \"↨\",\n      \"doc\": \"Up down arrow with base (perpendicular)\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"updownharpoonleftleft\",\n      \"detail\": \"⥑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb left down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonleftright\",\n      \"detail\": \"⥍\",\n      \"doc\": \"Up barb left down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightleft\",\n      \"detail\": \"⥌\",\n      \"doc\": \"Up barb right down barb left harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonrightright\",\n      \"detail\": \"⥏ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Up barb right down barb right harpoon\"\n    },\n    {\n      \"name\": \"updownharpoonsleftright\",\n      \"detail\": \"⥮ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\upequilibrium (wrisym), upwards harpoon with barb left beside downwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upfishtail\",\n      \"detail\": \"⥾\",\n      \"doc\": \"Up fish tail\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonleftbar\",\n      \"detail\": \"⥠ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left from bar\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upharpoonrightbar\",\n      \"detail\": \"⥜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb right from bar\"\n    },\n    {\n      \"name\": \"upharpoonsleftright\",\n      \"detail\": \"⥣ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Upwards harpoon with barb left beside upwards harpoon with barb right\"\n    },\n    {\n      \"name\": \"upin\",\n      \"detail\": \"⟒\",\n      \"doc\": \"Element of opening upwards\"\n    },\n    {\n      \"name\": \"upint\",\n      \"detail\": \"⨛\",\n      \"doc\": \"Integral with overbar\"\n    },\n    {\n      \"name\": \"upintslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upintupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uprightcurvearrow\",\n      \"detail\": \"⤴\",\n      \"doc\": \"Arrow pointing rightwards then curving upwards\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"urarc\",\n      \"detail\": \"◝\",\n      \"doc\": \"Upper right quadrant circular arc\"\n    },\n    {\n      \"name\": \"urblacktriangle\",\n      \"detail\": \"◥\",\n      \"doc\": \"Upper right triangle, filled\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"urtriangle\",\n      \"detail\": \"◹\",\n      \"doc\": \"Upper right triangle\"\n    },\n    {\n      \"name\": \"UUparrow\",\n      \"detail\": \"⟰\",\n      \"doc\": \"Upwards quadruple arrow\"\n    },\n    {\n      \"name\": \"Uuparrow\",\n      \"detail\": \"⤊\",\n      \"doc\": \"Upwards triple arrow\"\n    },\n    {\n      \"name\": \"varbarwedge\",\n      \"detail\": \"⌅\",\n      \"doc\": \"\\\\barwedge (amssymb), projective (bar over small wedge) not nand\"\n    },\n    {\n      \"name\": \"varcarriagereturn\",\n      \"detail\": \"⏎\",\n      \"doc\": \"Return symbol\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"vardoublebarwedge\",\n      \"detail\": \"⌆\",\n      \"doc\": \"\\\\doublebarwedge (amssymb), perspective (double bar over small wedge)\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varhexagon\",\n      \"detail\": \"⬡\",\n      \"doc\": \"White hexagon\"\n    },\n    {\n      \"name\": \"varhexagonblack\",\n      \"detail\": \"⬢\",\n      \"doc\": \"Black hexagon\"\n    },\n    {\n      \"name\": \"varhexagonlrbonds\",\n      \"detail\": \"⌬\",\n      \"doc\": \"Six carbon ring, corner down, double bonds lower right etc\"\n    },\n    {\n      \"name\": \"varisinobar\",\n      \"detail\": \"⋶ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Element of with overbar\"\n    },\n    {\n      \"name\": \"varisins\",\n      \"detail\": \"⋳\",\n      \"doc\": \"Element of with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varlrtriangle\",\n      \"detail\": \"⊿\",\n      \"doc\": \"Right triangle\"\n    },\n    {\n      \"name\": \"varniobar\",\n      \"detail\": \"⋽\",\n      \"doc\": \"Contains with overbar\"\n    },\n    {\n      \"name\": \"varnis\",\n      \"detail\": \"⋻\",\n      \"doc\": \"Contains with vertical bar at end of horizontal stroke\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseslop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwiseupop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varstar\",\n      \"detail\": \"✶\",\n      \"doc\": \"Six pointed black star\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varVdash\",\n      \"detail\": \"⫦\",\n      \"doc\": \"Long dash from left member of double vertical\"\n    },\n    {\n      \"name\": \"varveebar\",\n      \"detail\": \"⩡\",\n      \"doc\": \"Small vee with underbar\"\n    },\n    {\n      \"name\": \"vBar\",\n      \"detail\": \"⫨\",\n      \"doc\": \"Short up tack with underbar\"\n    },\n    {\n      \"name\": \"Vbar\",\n      \"detail\": \"⫫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\perp (txfonts), double up tack\"\n    },\n    {\n      \"name\": \"vBarv\",\n      \"detail\": \"⫩\",\n      \"doc\": \"Short up tack above short down tack\"\n    },\n    {\n      \"name\": \"vbrtri\",\n      \"detail\": \"⧐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Vertical bar beside right triangle\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDdash\",\n      \"detail\": \"⫢\",\n      \"doc\": \"Vertical bar triple right turnstile\"\n    },\n    {\n      \"name\": \"vdotsmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vectimes\",\n      \"detail\": \"⨯\",\n      \"doc\": \"\\\\times, vector or cross product\"\n    },\n    {\n      \"name\": \"Vee\",\n      \"detail\": \"⩔\",\n      \"doc\": \"Double logical or\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veedot\",\n      \"detail\": \"⟇\",\n      \"doc\": \"Or with dot inside\"\n    },\n    {\n      \"name\": \"veedoublebar\",\n      \"detail\": \"⩣\",\n      \"doc\": \"Logical or with double underbar\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"veemidvert\",\n      \"detail\": \"⩛\",\n      \"doc\": \"Logical or with middle stem\"\n    },\n    {\n      \"name\": \"veeodot\",\n      \"detail\": \"⩒\",\n      \"doc\": \"Logical or with dot above\"\n    },\n    {\n      \"name\": \"veeonvee\",\n      \"detail\": \"⩖\",\n      \"doc\": \"Two intersecting logical or\"\n    },\n    {\n      \"name\": \"veeonwedge\",\n      \"detail\": \"⩙\",\n      \"doc\": \"Logical or overlapping logical and\"\n    },\n    {\n      \"name\": \"vertoverlay\",\n      \"detail\": \"x⃒\",\n      \"doc\": \"Combining long vertical line overlay\"\n    },\n    {\n      \"name\": \"viewdata\",\n      \"detail\": \"⌗\",\n      \"doc\": \"Viewdata square\"\n    },\n    {\n      \"name\": \"vlongdash\",\n      \"detail\": \"⟝\",\n      \"doc\": \"Long left tack\"\n    },\n    {\n      \"name\": \"vrectangle\",\n      \"detail\": \"▯\",\n      \"doc\": \"Rectangle, white (vertical)\"\n    },\n    {\n      \"name\": \"vrectangleblack\",\n      \"detail\": \"▮\",\n      \"doc\": \"Black vertical rectangle\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblkcircle\",\n      \"unusual\": true,\n      \"detail\": \"∙\",\n      \"doc\": \"Bullet operator\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtcircle\",\n      \"detail\": \"∘\",\n      \"doc\": \"Composite function (small circle)\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"vzigzag\",\n      \"detail\": \"⦚\",\n      \"doc\": \"Vertical zigzag line\"\n    },\n    {\n      \"name\": \"Wedge\",\n      \"detail\": \"⩓\",\n      \"doc\": \"Double logical and\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"wedgedot\",\n      \"detail\": \"⟑\",\n      \"doc\": \"And with dot\"\n    },\n    {\n      \"name\": \"wedgedoublebar\",\n      \"detail\": \"⩠\",\n      \"doc\": \"Logical and with double underbar\"\n    },\n    {\n      \"name\": \"wedgemidvert\",\n      \"detail\": \"⩚\",\n      \"doc\": \"Logical and with middle stem\"\n    },\n    {\n      \"name\": \"wedgeodot\",\n      \"detail\": \"⩑\",\n      \"doc\": \"Logical and with dot above\"\n    },\n    {\n      \"name\": \"wedgeonwedge\",\n      \"detail\": \"⩕\",\n      \"doc\": \"Two intersecting logical and\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"whitearrowupfrombar\",\n      \"detail\": \"⇪\",\n      \"doc\": \"Upwards white arrow from bar\"\n    },\n    {\n      \"name\": \"whiteinwhitetriangle\",\n      \"detail\": \"⟁\",\n      \"doc\": \"White triangle containing small white triangle\"\n    },\n    {\n      \"name\": \"whitepointerleft\",\n      \"detail\": \"◅\",\n      \"doc\": \"\\\\triangleleft (mathabx), white left-pointing pointer\"\n    },\n    {\n      \"name\": \"whitepointerright\",\n      \"detail\": \"▻\",\n      \"doc\": \"\\\\triangleright (mathabx), white right-pointing pointer\"\n    },\n    {\n      \"name\": \"whitesquaretickleft\",\n      \"detail\": \"⟤\",\n      \"doc\": \"White square with leftwards tick\"\n    },\n    {\n      \"name\": \"whitesquaretickright\",\n      \"detail\": \"⟥\",\n      \"doc\": \"White square with rightwards tick\"\n    },\n    {\n      \"name\": \"whthorzoval\",\n      \"detail\": \"⬭\",\n      \"doc\": \"White horizontal ellipse\"\n    },\n    {\n      \"name\": \"whtvertoval\",\n      \"detail\": \"⬯\",\n      \"doc\": \"White vertical ellipse\"\n    },\n    {\n      \"name\": \"wideangledown\",\n      \"detail\": \"⦦\",\n      \"doc\": \"Oblique angle opening up\"\n    },\n    {\n      \"name\": \"wideangleup\",\n      \"detail\": \"⦧\",\n      \"doc\": \"Oblique angle opening down\"\n    },\n    {\n      \"name\": \"widebridgeabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebridgeabove{${1:arg}}\"\n      },\n      \"detail\": \"x⃩\",\n      \"doc\": \"Combining wide bridge above\"\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xbsol\",\n      \"detail\": \"⧹ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\hide (oz), big reverse solidus, schema hiding\"\n    },\n    {\n      \"name\": \"xbsolop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xsol\",\n      \"detail\": \"⧸\",\n      \"doc\": \"Big solidus\"\n    },\n    {\n      \"name\": \"xsolop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yenmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    },\n    {\n      \"name\": \"zcmp\",\n      \"detail\": \"⨟ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\semi (oz), \\\\fatsemi (stmaryrd), schema composition\"\n    },\n    {\n      \"name\": \"zpipe\",\n      \"detail\": \"⨠ (\\\"oz\\\" command)\",\n      \"doc\": \"Z notation schema piping\"\n    },\n    {\n      \"name\": \"zproject\",\n      \"detail\": \"⨡ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\project (oz), schema projection\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stix2#c\": [\n      \"notext\",\n      \"nomath\",\n      \"not1\",\n      \"notextcomp\",\n      \"lcgreekalpha\",\n      \"upint\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stix2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stmaryrd.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Ydown\"\n    },\n    {\n      \"name\": \"Yleft\"\n    },\n    {\n      \"name\": \"Yright\"\n    },\n    {\n      \"name\": \"Yup\",\n      \"detail\": \"⅄ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Turned sans-serif capital y\"\n    },\n    {\n      \"name\": \"baro\"\n    },\n    {\n      \"name\": \"bbslash\"\n    },\n    {\n      \"name\": \"binampersand\"\n    },\n    {\n      \"name\": \"bindnasrepma\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbox\",\n      \"detail\": \"⧈ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared square\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxcircle\",\n      \"detail\": \"⧇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Squared small circle\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxempty\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"curlyveedownarrow\"\n    },\n    {\n      \"name\": \"curlyveeuparrow\"\n    },\n    {\n      \"name\": \"curlywedgedownarrow\"\n    },\n    {\n      \"name\": \"curlywedgeuparrow\"\n    },\n    {\n      \"name\": \"fatbslash\"\n    },\n    {\n      \"name\": \"fatsemi\"\n    },\n    {\n      \"name\": \"fatslash\"\n    },\n    {\n      \"name\": \"interleave\",\n      \"detail\": \"⫴ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Triple vertical bar binary relation\"\n    },\n    {\n      \"name\": \"leftslice\"\n    },\n    {\n      \"name\": \"merge\"\n    },\n    {\n      \"name\": \"minuso\"\n    },\n    {\n      \"name\": \"moo\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"obar\",\n      \"detail\": \"⌽\",\n      \"doc\": \"\\\\aplvert{\\\\circle} (wasysym), \\\\obar (stmaryrd), apl functional symbol circle stile, circle with vertical bar\"\n    },\n    {\n      \"name\": \"oblong\"\n    },\n    {\n      \"name\": \"obslash\",\n      \"detail\": \"⦸ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled reverse solidus\"\n    },\n    {\n      \"name\": \"ogreaterthan\",\n      \"detail\": \"⧁ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled greater-than\"\n    },\n    {\n      \"name\": \"olessthan\",\n      \"detail\": \"⧀ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Circled less-than\"\n    },\n    {\n      \"name\": \"ovee\"\n    },\n    {\n      \"name\": \"owedge\"\n    },\n    {\n      \"name\": \"rightslice\"\n    },\n    {\n      \"name\": \"sslash\",\n      \"detail\": \"⫽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\varparallel (txfonts), double solidus operator\"\n    },\n    {\n      \"name\": \"talloblong\",\n      \"detail\": \"⫾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"White vertical bar\"\n    },\n    {\n      \"name\": \"varbigcirc\"\n    },\n    {\n      \"name\": \"varcurlyvee\"\n    },\n    {\n      \"name\": \"varcurlywedge\"\n    },\n    {\n      \"name\": \"varoast\"\n    },\n    {\n      \"name\": \"varobar\"\n    },\n    {\n      \"name\": \"varobslash\"\n    },\n    {\n      \"name\": \"varocircle\"\n    },\n    {\n      \"name\": \"varodot\"\n    },\n    {\n      \"name\": \"varogreaterthan\"\n    },\n    {\n      \"name\": \"varolessthan\"\n    },\n    {\n      \"name\": \"varominus\"\n    },\n    {\n      \"name\": \"varoplus\"\n    },\n    {\n      \"name\": \"varoslash\"\n    },\n    {\n      \"name\": \"varotimes\"\n    },\n    {\n      \"name\": \"varovee\"\n    },\n    {\n      \"name\": \"varowedge\"\n    },\n    {\n      \"name\": \"vartimes\"\n    },\n    {\n      \"name\": \"oast\"\n    },\n    {\n      \"name\": \"ocircle\"\n    },\n    {\n      \"name\": \"bigbox\"\n    },\n    {\n      \"name\": \"bigcurlyvee\"\n    },\n    {\n      \"name\": \"bigcurlywedge\"\n    },\n    {\n      \"name\": \"biginterleave\",\n      \"detail\": \"⫼ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Large triple vertical bar operator\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigparallel\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigtriangledown\",\n      \"detail\": \"▽\",\n      \"doc\": \"Big down triangle, open\"\n    },\n    {\n      \"name\": \"bigtriangleup\",\n      \"detail\": \"△\",\n      \"doc\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n    },\n    {\n      \"name\": \"inplus\"\n    },\n    {\n      \"name\": \"niplus\"\n    },\n    {\n      \"name\": \"ntrianglelefteqslant\"\n    },\n    {\n      \"name\": \"ntrianglerighteqslant\"\n    },\n    {\n      \"name\": \"subsetplus\",\n      \"detail\": \"⪿\",\n      \"doc\": \"Subset with plus sign below\"\n    },\n    {\n      \"name\": \"subsetpluseq\"\n    },\n    {\n      \"name\": \"supsetplus\",\n      \"detail\": \"⫀\",\n      \"doc\": \"Superset with plus sign below\"\n    },\n    {\n      \"name\": \"supsetpluseq\"\n    },\n    {\n      \"name\": \"trianglelefteqslant\"\n    },\n    {\n      \"name\": \"trianglerighteqslant\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"leftarrowtriangle\",\n      \"detail\": \"⇽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Leftwards open-headed arrow\"\n    },\n    {\n      \"name\": \"leftrightarroweq\"\n    },\n    {\n      \"name\": \"leftrightarrowtriangle\",\n      \"detail\": \"⇿ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Left right open-headed arrow\"\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"nnearrow\"\n    },\n    {\n      \"name\": \"nnwarrow\"\n    },\n    {\n      \"name\": \"rightarrowtriangle\",\n      \"detail\": \"⇾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards open-headed arrow\"\n    },\n    {\n      \"name\": \"rrparenthesis\",\n      \"detail\": \"⦈ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\rrparenthesis (stmaryrd), right image bracket\"\n    },\n    {\n      \"name\": \"shortdownarrow\"\n    },\n    {\n      \"name\": \"shortleftarrow\"\n    },\n    {\n      \"name\": \"shortrightarrow\"\n    },\n    {\n      \"name\": \"shortuparrow\"\n    },\n    {\n      \"name\": \"ssearrow\"\n    },\n    {\n      \"name\": \"sswarrow\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llceil\"\n    },\n    {\n      \"name\": \"llfloor\"\n    },\n    {\n      \"name\": \"llparenthesis\",\n      \"detail\": \"⦇ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\llparenthesis (stmaryrd), left image bracket\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"rrceil\"\n    },\n    {\n      \"name\": \"rrfloor\"\n    },\n    {\n      \"name\": \"Arrownot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapsfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrownot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsfromchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longarrownot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Longarrownot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varcopyright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stmaryrd#c\": [\n      \"only\",\n      \"heavycircles\",\n      \"Ydown\",\n      \"Yleft\",\n      \"Yright\",\n      \"Yup\",\n      \"baro\",\n      \"bbslash\",\n      \"binampersand\",\n      \"bindnasrepma\",\n      \"boxast\",\n      \"boxbar\",\n      \"boxbox\",\n      \"boxbslash\",\n      \"boxcircle\",\n      \"boxdot\",\n      \"boxempty\",\n      \"boxslash\",\n      \"curlyveedownarrow\",\n      \"curlyveeuparrow\",\n      \"curlywedgedownarrow\",\n      \"curlywedgeuparrow\",\n      \"fatbslash\",\n      \"fatsemi\",\n      \"fatslash\",\n      \"interleave\",\n      \"leftslice\",\n      \"merge\",\n      \"minuso\",\n      \"moo\",\n      \"nplus\",\n      \"obar\",\n      \"oblong\",\n      \"obslash\",\n      \"ogreaterthan\",\n      \"olessthan\",\n      \"ovee\",\n      \"owedge\",\n      \"rightslice\",\n      \"sslash\",\n      \"talloblong\",\n      \"varbigcirc\",\n      \"varcurlyvee\",\n      \"varcurlywedge\",\n      \"varoast\",\n      \"varobar\",\n      \"varobslash\",\n      \"varocircle\",\n      \"varodot\",\n      \"varogreaterthan\",\n      \"varolessthan\",\n      \"varominus\",\n      \"varoplus\",\n      \"varoslash\",\n      \"varotimes\",\n      \"varovee\",\n      \"varowedge\",\n      \"vartimes\",\n      \"oast\",\n      \"ocircle\",\n      \"bigbox\",\n      \"bigcurlyvee\",\n      \"bigcurlywedge\",\n      \"biginterleave\",\n      \"bignplus\",\n      \"bigparallel\",\n      \"bigsqcap\",\n      \"bigtriangledown\",\n      \"bigtriangleup\",\n      \"inplus\",\n      \"niplus\",\n      \"ntrianglelefteqslant\",\n      \"ntrianglerighteqslant\",\n      \"subsetplus\",\n      \"subsetpluseq\",\n      \"supsetplus\",\n      \"supsetpluseq\",\n      \"trianglelefteqslant\",\n      \"trianglerighteqslant\",\n      \"Longmapsfrom\",\n      \"Longmapsto\",\n      \"Mapsfrom\",\n      \"Mapsto\",\n      \"leftarrowtriangle\",\n      \"leftrightarroweq\",\n      \"leftrightarrowtriangle\",\n      \"lightning\",\n      \"longmapsfrom\",\n      \"mapsfrom\",\n      \"nnearrow\",\n      \"nnwarrow\",\n      \"rightarrowtriangle\",\n      \"rrparenthesis\",\n      \"shortdownarrow\",\n      \"shortleftarrow\",\n      \"shortrightarrow\",\n      \"shortuparrow\",\n      \"ssearrow\",\n      \"sswarrow\",\n      \"Lbag\",\n      \"Rbag\",\n      \"lbag\",\n      \"llbracket\",\n      \"llceil\",\n      \"llfloor\",\n      \"llparenthesis\",\n      \"rbag\",\n      \"rrbracket\",\n      \"rrceil\",\n      \"rrfloor\",\n      \"Arrownot\",\n      \"Mapsfromchar\",\n      \"Mapstochar\",\n      \"arrownot\",\n      \"mapsfromchar\",\n      \"varcopyright\",\n      \"longarrownot\",\n      \"Longarrownot\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stmaryrd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stoneipa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sipafont\"\n    },\n    {\n      \"name\": \"sipaalternatefont\"\n    },\n    {\n      \"name\": \"sipachoosephoneticchar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sipachoosephoneticchar{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"sipachoosealternatechar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sipachoosealternatechar{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"sipasetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sipasetup{${1:glyph}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"sipaalternatesetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sipaalternatesetup{${1:glyph}}{${2:char}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stoneipa#c\": [\n      \"fontname=${1:font name}\",\n      \"scfontname=${1:font name}\",\n      \"phoneticfontname=${1:font name}\",\n      \"alternatefontname=${1:font name}\",\n      \"noalternatescaling\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stoneipa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/storebox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"collectbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newstorebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newstorebox{${1:boxname%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"storebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"storebox{${1:boxname}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"usestorebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usestorebox{${1:boxname}}\"\n      }\n    },\n    {\n      \"name\": \"ifstorebox\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"storebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:boxname}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/storebox#c\": [\n      \"disable\",\n      \"enable\",\n      \"immediate\",\n      \"delayed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/storebox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/strands.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"forarray\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\",\n      \"if\": \"externalize=1\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vpartition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpartition{${1:sorted blocks}}\"\n      }\n    },\n    {\n      \"name\": \"vpartition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vpartition[${2:options%keyvals}]{${1:sorted blocks}}\",\n        \"keys\": [\n          \"\\\\vpartition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arcpartition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arcpartition{${1:sorted blocks}}\"\n      }\n    },\n    {\n      \"name\": \"arcpartition\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arcpartition[${2:options%keyvals}]{${1:sorted blocks}}\",\n        \"keys\": [\n          \"\\\\arcpartition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"permutation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permutation{${1:images of 1 to n}}\"\n      }\n    },\n    {\n      \"name\": \"permutation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"permutation[${2:options%keyvals}]{${1:images of 1 to n}}\",\n        \"keys\": [\n          \"\\\\permutation\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tiedpair\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tiedpair{${1:permutation}}{${2:set partition}}\"\n      }\n    },\n    {\n      \"name\": \"tiedpair\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tiedpair[${3:options%keyvals}]{${1:permutation}}{${2:set partition}}\",\n        \"keys\": [\n          \"\\\\tiedpair\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tie{${1:dots}}\"\n      }\n    },\n    {\n      \"name\": \"tie\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tie[${2:options%keyvals}]{${1:dots}}\",\n        \"keys\": [\n          \"\\\\tie\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"strands\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"strands{${1:generators}}\"\n      }\n    },\n    {\n      \"name\": \"strands\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"strands[${2:options%keyvals}]{${1:generators}}\",\n        \"keys\": [\n          \"\\\\strands\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getelem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getelem{${1:list}}{${2:index}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"decoratestrands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decoratestrands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"decoratestrands[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"vvpartition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vvpartition{${1:sorted blocks}}\"\n      }\n    },\n    {\n      \"name\": \"vvpartition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vvpartition[${2:options}]{${1:sorted blocks}}\"\n      }\n    },\n    {\n      \"name\": \"bbackstrands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbackstrands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bbackstrands[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"lleftstrand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lleftstrand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lleftstrand[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"rrightstrand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrightstrand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rrightstrand[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"ccrossback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccrossback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ccrossback[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"bbraidgen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bbraidgen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bbraidgen[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"ttanglegen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttanglegen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ttanglegen[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"aaddgen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaddgen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aaddgen[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"thelevelscounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sstrands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sstrands{${1:generators}}\"\n      }\n    },\n    {\n      \"name\": \"sstrands\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sstrands[${2:options}]{${1:generators}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/strands#c\": [\n      \"backcolor=\",\n      \"bend=${1:integer}\",\n      \"bendbraid=${1:integer}\",\n      \"bendtangle=${1:integer}\",\n      \"braidcross=${1:number}\",\n      \"braidsingcross=${1:number}\",\n      \"braidvirtcross=${1:number}\",\n      \"bulletsize=${1:number}\",\n      \"coverunion=${1:number}\",\n      \"direction=${1:number}\",\n      \"externalize=${1|0,1|}\",\n      \"font=${1:number}\",\n      \"gencharposbraid=${1:braid generator}\",\n      \"gencharnegbraid=${1:braid generator}\",\n      \"gencharvirtual=${1:braid generator}\",\n      \"gencharsingular=${1:braid generator}\",\n      \"genchartangle=${1:braid generator}\",\n      \"genchartie=${1:braid generator}\",\n      \"genchartiedtangle=${1:braid generator}\",\n      \"height=${1:number}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"norma=${1:number}\",\n      \"normb=${1:number}\",\n      \"normcolor=\",\n      \"nstr=${1:integer}\",\n      \"num=${1:integer}\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tiebend=${1:integer}\",\n      \"tiebull=${1|0,1|}\",\n      \"tiebullsize=${1:number}\",\n      \"tiecolor=\",\n      \"tiesnake\",\n      \"tiestyle=${1|solid,dashed,dotted|}\",\n      \"tiewidth=${1:number}\",\n      \"timeswidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\vpartition\": [\n      \"bend=${1:integer}\",\n      \"bulla=${1|0,1|}\",\n      \"bullb=${1|0,1|}\",\n      \"bulletends=\",\n      \"floor=${1:number}\",\n      \"font=${1:fontsize}\",\n      \"height=${1:number}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"norma=${1:number}\",\n      \"normb=${1:number}\",\n      \"nstr=${1:integer}\",\n      \"reflect=${1:integer}\",\n      \"rotate=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"type=${1|0,2,3,4,5|}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\arcpartition\": [\n      \"bend=${1:integer}\",\n      \"bull=${1|0,1|}\",\n      \"bulletsize=${1:number}\",\n      \"floor=${1:number}\",\n      \"font=${1:fontsize}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"norma=${1:number}\",\n      \"normb=${1:number}\",\n      \"num=${1:integer}\",\n      \"rotate=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"type=${1|0,1|}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\permutation\": [\n      \"bulla=${1|0,1|}\",\n      \"bullb=${1|0,1|}\",\n      \"bulletends=${1:number}\",\n      \"floor=${1:number}\",\n      \"font=${1:fontsize}\",\n      \"height=${1:number}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"norma=${1:number}\",\n      \"normb=${1:number}\",\n      \"nstr=${1:integer}\",\n      \"rotate=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"type=${1|0,2,3,4,5|}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\tiedpair\": [\n      \"above=${1|0,1|}\",\n      \"bend=${1:integer}\",\n      \"bulla=${1|0,1|}\",\n      \"bullb=${1|0,1|}\",\n      \"bulletends=${1:number}\",\n      \"floor=${1:number}\",\n      \"font=${1:fontsize}\",\n      \"height=${1:number}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"norma=${1:number}\",\n      \"normb=${1:number}\",\n      \"nstr=${1:integer}\",\n      \"rotate=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"type=${1|0,2,3,4,5|}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\tie\": [\n      \"bend=${1:integer}\",\n      \"bull=${1|0,1|}\",\n      \"bulletie=${1:number}\",\n      \"color=\",\n      \"floor=${1:number}\",\n      \"height=${1:number}\",\n      \"snake\",\n      \"snakeamp=\",\n      \"snakends=\",\n      \"snakelen=\",\n      \"style=${1|solid,dashed,dotted|}\",\n      \"tieheight=${1:number}\",\n      \"tiewidth=${1:number}\",\n      \"width=${1:number}\"\n    ],\n    \"\\\\strands\": [\n      \"bendbraid=${1:integer}\",\n      \"bendtangle=${1:integer}\",\n      \"bulla=${1|0,1|}\",\n      \"bullb=${1|0,1|}\",\n      \"bulletends=${1:number}\",\n      \"direction=${1:number}\",\n      \"floor=${1:number}\",\n      \"height=${1:number}\",\n      \"labelver=${1:number}\",\n      \"labelhor=${1:number}\",\n      \"nstr=${1:integer}\",\n      \"rotate=${1:integer}\",\n      \"scale=${1:factor}\",\n      \"strwidth=${1:number}\",\n      \"tiebull=${1|0,1|}\",\n      \"tiebullsize=\",\n      \"tiecolor=\",\n      \"tieheight=${1:number}\",\n      \"tiesnake\",\n      \"tiesnakeamp=\",\n      \"tiesnakends=\",\n      \"tiesnakelen=${1:number}\",\n      \"tiestyle=${1|solid,dashed,dotted|}\",\n      \"tiewidth=${1:number}\",\n      \"tkzpic=${1|0,1|}\",\n      \"type=${1|0,2,3,4,5|}\",\n      \"width=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/strands#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/stricttex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"StrictBracketsOn\"\n    },\n    {\n      \"name\": \"StrictBracketsOff\"\n    },\n    {\n      \"name\": \"NumbersInCommandsOn\"\n    },\n    {\n      \"name\": \"NumbersInCommandsOff\"\n    },\n    {\n      \"name\": \"NumbersAndPrimesInCommandsOn\"\n    },\n    {\n      \"name\": \"NumbersAndPrimesInCommandsOff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/string-diagrams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wires\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wires{${1:connectivity}}{${2:loose ends}}\"\n      }\n    },\n    {\n      \"name\": \"wires\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wires[${3:TikZ keys}]{${1:connectivity}}{${2:loose ends}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"box\",\n      \"box ports north=${1:integer}\",\n      \"box ports east=${1:integer}\",\n      \"box ports south=${1:integer}\",\n      \"box ports west=${1:integer}\",\n      \"box ports=${1:integer1}/${2:integer2}/${3:integer3}/${4:integer4}\",\n      \"dot\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stringenc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"pdfescape\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"StringEncodingConvert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StringEncodingConvert{${1:cmd}}{${2:string}}{${3:from}}{${4:to}}\"\n      }\n    },\n    {\n      \"name\": \"StringEncodingSuccessFailure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StringEncodingSuccessFailure{${1:success}}{${2:failure}}\"\n      }\n    },\n    {\n      \"name\": \"StringEncodingConvertTest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"StringEncodingConvertTest{${1:cmd}}{${2:string}}{${3:from}}{${4:to}}{${5:success}}{${6:failure}}\"\n      }\n    },\n    {\n      \"name\": \"StringEncodingList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StringEncodingLoad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StringEncodingLoad{${1:enc file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stringstrings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thestring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Treatments\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"Treatments{${1:U-mode}}{${2:l-mode}}{${3:p-mode}}{${4:n-mode}}{${5:s-mode}}{${6:b-mode}}\"\n      }\n    },\n    {\n      \"name\": \"defaultTreatments\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"encodetoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"encodetoken{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"encodetoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"encodetoken[${2:index}]{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"decodetoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decodetoken{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"decodetoken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"decodetoken[${2:index}]{${1:token}}\"\n      }\n    },\n    {\n      \"name\": \"substring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"substring{${1:string}}{${2:min}}{${3:max}}\"\n      }\n    },\n    {\n      \"name\": \"substring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"substring[${4:mode%keyvals}]{${1:string}}{${2:min}}{${3:max}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"caseupper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caseupper{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"caseupper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caseupper[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"caselower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caselower{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"caselower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"caselower[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solelyuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solelyuppercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"solelyuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"solelyuppercase[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solelylowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solelylowercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"solelylowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"solelylowercase[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"changecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"changecase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"changecase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"changecase[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noblanks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noblanks{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"noblanks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"noblanks[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nosymbolsnumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nosymbolsnumerals{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"nosymbolsnumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nosymbolsnumerals[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alphabetic{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"alphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alphabetic[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"capitalize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalize{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"capitalize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"capitalize[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"capitalizewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalizewords{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"capitalizewords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"capitalizewords[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"capitalizetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalizetitle{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"capitalizetitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"capitalizetitle[${2:mode%keyvals}]{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"addlcword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlcword{${1:word}}\"\n      }\n    },\n    {\n      \"name\": \"addlcwords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addlcwords{${1:word1 word2 word3 . . . }}\"\n      }\n    },\n    {\n      \"name\": \"resetlcwords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reversestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reversestring{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"reversestring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reversestring[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convertchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"convertchar{${1:string}}{${2:from-char}}{${3:to-string}}\"\n      }\n    },\n    {\n      \"name\": \"convertchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"convertchar[${4:mode%keyvals}]{${1:string}}{${2:from-char}}{${3:to-string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convertword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"convertword{${1:string}}{${2:from-string}}{${3:to-string}}\"\n      }\n    },\n    {\n      \"name\": \"convertword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"convertword[${4:mode%keyvals}]{${1:string}}{${2:from-string}}{${3:to-string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rotateword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateword{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"rotateword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rotateword[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"removeword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removeword{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"removeword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"removeword[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getnextword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getnextword{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"getnextword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getnextword[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getaword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getaword{${1:string}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"getaword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getaword[${3:mode%keyvals}]{${1:string}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rotateleadingspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateleadingspaces{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"rotateleadingspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rotateleadingspaces[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"removeleadingspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removeleadingspaces{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"removeleadingspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"removeleadingspaces[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stringencode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stringencode{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"stringencode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stringencode[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stringdecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stringdecode{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"stringdecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stringdecode[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gobblechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobblechar{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"gobblechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gobblechar[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\gobblechar,\\\\gobblechars,\\\\retokenize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gobblechars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gobblechars{${1:string}}{${2:n}}\"\n      }\n    },\n    {\n      \"name\": \"gobblechars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gobblechars[${3:mode%keyvals}]{${1:string}}{${2:n}}\",\n        \"keys\": [\n          \"\\\\gobblechar,\\\\gobblechars,\\\\retokenize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"retokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retokenize{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"retokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"retokenize[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\gobblechar,\\\\gobblechars,\\\\retokenize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stringlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stringlength{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"stringlength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stringlength[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"findchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"findchars{${1:string}}{${2:match-char}}\"\n      }\n    },\n    {\n      \"name\": \"findchars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"findchars[${3:mode%keyvals}]{${1:string}}{${2:match-char}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"findwords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"findwords{${1:string}}{${2:match-string}}\"\n      }\n    },\n    {\n      \"name\": \"findwords\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"findwords[${3:mode%keyvals}]{${1:string}}{${2:match-string}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"whereischar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whereischar{${1:string}}{${2:match-char}}\"\n      }\n    },\n    {\n      \"name\": \"whereischar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"whereischar[${3:mode%keyvals}]{${1:string}}{${2:match-char}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"whereisword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"whereisword{${1:string}}{${2:match-string}}\"\n      }\n    },\n    {\n      \"name\": \"whereisword\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"whereisword[${3:mode%keyvals}]{${1:string}}{${2:match-string}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wordcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wordcount{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"wordcount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wordcount[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"getargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getargs{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"getargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"getargs[${2:mode%keyvals}]{${1:string}}\",\n        \"keys\": [\n          \"\\\\getargs\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"isnextbyte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isnextbyte{${1:match-byte}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"isnextbyte\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"isnextbyte[${3:mode%keyvals}]{${1:match-byte}}{${2:string}}\",\n        \"keys\": [\n          \"\\\\isnextbyte\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"testmatchingchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"testmatchingchar{${1:string}}{${2:n}}{${3:match-char}}\"\n      }\n    },\n    {\n      \"name\": \"testcapitalized\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testcapitalized{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testuncapitalized\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testuncapitalized{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testleadingalpha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testleadingalpha{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testuppercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testsolelyuppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testsolelyuppercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testlowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testlowercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testsolelylowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testsolelylowercase{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"testalphabetic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testalphabetic{${1:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\substring,\\\\caseupper,\\\\caselower,\\\\solelyuppercase,\\\\solelylowercase,\\\\changecase,\\\\noblanks,\\\\nosymbolsnumerals,\\\\alphabetic,\\\\capitalize,\\\\capitalizewords,\\\\reversestring,\\\\convertchar,\\\\convertword,\\\\rotateword,\\\\removeword,\\\\getnextword,\\\\getaword,\\\\rotateleadingspaces,\\\\removeleadingspaces,\\\\stringencode,\\\\stringdecode\": [\n      \"v\",\n      \"q\",\n      \"e\"\n    ],\n    \"\\\\gobblechar,\\\\gobblechars,\\\\retokenize\": [\n      \"v\",\n      \"q\"\n    ],\n    \"\\\\stringlength,\\\\findchars,\\\\findwords,\\\\whereischar,\\\\whereisword,\\\\wordcount\": [\n      \"v\",\n      \"q\"\n    ],\n    \"\\\\getargs\": [\n      \"q\",\n      \"e\"\n    ],\n    \"\\\\isnextbyte\": [\n      \"v\",\n      \"q\",\n      \"e\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stripsemantex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"StripSemantex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StripSemantex{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"StripSemantexStripComments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StripSemantexStripComments{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/structmech.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setstructmech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstructmech{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/structmech#c,\\\\setstructmech\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NodalForce\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NodalForce{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"NodalForce\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NodalForce[${2:color}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"NodalForce\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]\",\n        \"snippet\": \"NodalForce[${2:color}]{${1:x,y}}[${3:Hlabel}][${4:Vlabel}][${5:Rlabel}]\"\n      }\n    },\n    {\n      \"name\": \"NodalForce\",\n      \"arg\": {\n        \"format\": \"[]{}[][][]{}[]\",\n        \"snippet\": \"NodalForce[${3:color}]{${1:x,y}}[${4:Hlabel}][${5:Vlabel}][${6:Rlabel}]{${2:rotation}}[${7:scale}]\"\n      }\n    },\n    {\n      \"name\": \"BasicForce\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"BasicForce{${1:x1,y1}}{${2:x2,y2}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"BasicForce\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"BasicForce[${4:number%keyvals}]{${1:x1,y1}}{${2:x2,y2}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\BasicForce\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BasicForce\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BasicForce[${5:number%keyvals}]{${1:x1,y1}}{${2:x2,y2}}{${3:label}}{${4:TikZ keys}}\",\n        \"keys\": [\n          \"\\\\BasicForce\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"BasicForce\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}[][][]\",\n        \"snippet\": \"BasicForce[${5:number%keyvals}]{${1:x1,y1}}{${2:x2,y2}}{${3:label}}{${4:TikZ keys}}[${6:label1}][${7:label2}][${8:label3}]\",\n        \"keys\": [\n          \"\\\\BasicForce\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UDL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UDL{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"UDL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"UDL[${3:F}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"UDL\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"UDL[${3:F}]{${1:x1,y1}}{${2:x2,y2}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"UDL\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"UDL[${4:F}]{${1:x1,y1}}{${2:x2,y2}}[${5:label}]{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"HingeSupport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HingeSupport{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"HingeSupport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HingeSupport[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"HingeSupport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"HingeSupport[${3:rotation}]{${1:x,y}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"FixedSupport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FixedSupport{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"FixedSupport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FixedSupport[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"FixedSupport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FixedSupport[${3:rotation}]{${1:x,y}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"RollerSupport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RollerSupport{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"RollerSupport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RollerSupport[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"RollerSupport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"RollerSupport[${3:rotation}]{${1:x,y}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"SliderSupport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SliderSupport{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"SliderSupport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SliderSupport[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"SliderSupport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SliderSupport[${3:rotation}]{${1:x,y}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"SleeveSupport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SleeveSupport{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"SleeveSupport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SleeveSupport[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"SleeveSupport\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"SleeveSupport[${2:rotation}]{${1:x,y}}[${3:gap%l}]\"\n      }\n    },\n    {\n      \"name\": \"SleeveSupport\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"SleeveSupport[${3:rotation}]{${1:x,y}}[${4:gap%l}]{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"Rigid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rigid{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"Rigid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Rigid[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"Rigid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Rigid[${3:rotation}]{${1:x,y}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"CoorOrigin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoorOrigin{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"CoorOrigin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CoorOrigin[${2:rotation}]{${1:x,y}}\"\n      }\n    },\n    {\n      \"name\": \"CoorOrigin\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"CoorOrigin[${2:rotation}]{${1:x,y}}[${3:xlabel}][${4:ylabel}]\"\n      }\n    },\n    {\n      \"name\": \"CoorOrigin\",\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"CoorOrigin[${3:rotation}]{${1:x,y}}[${4:xlabel}][${5:ylabel}]{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"IForceA\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IForceA{${1:x1,y1}}{${2:x2,y2}}{${3:force-lower}}{${4:force-higher}}\"\n      }\n    },\n    {\n      \"name\": \"IForceA\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IForceA[${5:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:force-lower}}{${4:force-higher}}\"\n      }\n    },\n    {\n      \"name\": \"IForceA\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IForceA[${6:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:force-lower}}{${4:force-higher}}{${5:scale}}\"\n      }\n    },\n    {\n      \"name\": \"IForceB\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IForceB{${1:x1,y1}}{${2:x2,y2}}{${3:moment-lower}}{${4:moment-higher}}{${5:increment}}\"\n      }\n    },\n    {\n      \"name\": \"IForceB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IForceB[${6:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:moment-lower}}{${4:moment-higher}}{${5:increment}}\"\n      }\n    },\n    {\n      \"name\": \"IForceB\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"IForceB[${7:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:moment-lower}}{${4:moment-higher}}{${5:increment}}{${6:scale}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformP\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BeamDeformP{${1:x1,y1}}{${2:x2,y2}}{${3:disp-lower}}{${4:disp-higher}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BeamDeformP[${5:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:disp-lower}}{${4:disp-higher}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]{}[]\",\n        \"snippet\": \"BeamDeformP[${5:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:disp-lower}}[${6:rot-lower}]{${4:disp-higher}}[${7:rot-higher}]\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformP\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]{}[]{}\",\n        \"snippet\": \"BeamDeformP[${6:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:disp-lower}}[${7:rot-lower}]{${4:disp-higher}}[${8:rot-higher}]{${5:scale}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeamDeformR{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformR\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"BeamDeformR[${3:color}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformR\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]\",\n        \"snippet\": \"BeamDeformR[${3:color}]{${1:x1,y1}}{${2:x2,y2}}[${4:rot-lower}][${5:rot-higher}]\"\n      }\n    },\n    {\n      \"name\": \"BeamDeformR\",\n      \"arg\": {\n        \"format\": \"[]{}{}[][]{}\",\n        \"snippet\": \"BeamDeformR[${4:color}]{${1:x1,y1}}{${2:x2,y2}}[${5:rot-lower}][${6:rot-higher}]{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"Dashpot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Dashpot{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"Dashpot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Dashpot{${1:x1,y1}}{${2:x2,y2}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"Dashpot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Dashpot[${3:color}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"Dashpot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Dashpot[${4:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"Spring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Spring{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"Spring\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Spring{${1:x1,y1}}{${2:x2,y2}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"Spring\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Spring[${3:color}]{${1:x1,y1}}{${2:x2,y2}}\"\n      }\n    },\n    {\n      \"name\": \"Spring\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Spring[${4:color}]{${1:x1,y1}}{${2:x2,y2}}{${3:scale}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/structmech#c,\\\\setstructmech\": [\n      \"fill=\",\n      \"line=\",\n      \"node=\",\n      \"axis=\",\n      \"rotation=\",\n      \"convention=${1|*ign,direction|}\",\n      \"showvalue=${1|on,off|}\",\n      \"absvalue=${1|on,off|}\",\n      \"opacity=${1:factor}\",\n      \"linewidth=\"\n    ],\n    \"\\\\BasicForce\": [\n      \"1\",\n      \"2L\",\n      \"2H\",\n      \"2\",\n      \"3\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/structmech#c,\\\\setstructmech\"\n  ]\n}"
  },
  {
    "path": "dev/packages/struktex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"struktxf\"\n    },\n    {\n      \"name\": \"struktxp\"\n    },\n    {\n      \"name\": \"pict2e\"\n    },\n    {\n      \"name\": \"curves\",\n      \"if\": \"curves\"\n    },\n    {\n      \"name\": \"emlines2\",\n      \"if\": \"emlines\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"assert\",\n      \"if\": \"verification\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"assert{${1:assertion%text}}\"\n      },\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"assert\",\n      \"if\": \"verification\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assert[${2:height}]{${1:assertion%text}}\"\n      },\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"StrukTeX\"\n    },\n    {\n      \"name\": \"sProofOn\"\n    },\n    {\n      \"name\": \"sProofOff\"\n    },\n    {\n      \"name\": \"PositionNSS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PositionNSS{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"assign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"assign{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"assign\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"assign[${2:height}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"declarationtitle\"\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"description{${1:variable name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionindent\"\n    },\n    {\n      \"name\": \"descriptionwidth\"\n    },\n    {\n      \"name\": \"descriptionsep\"\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sub\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sub[${2:height}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"return\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"return{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"return\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"return[${2:height}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"while\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"while{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"while\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"while[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"whileend\"\n    },\n    {\n      \"name\": \"until\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"until{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"until\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"until[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"untilend\"\n    },\n    {\n      \"name\": \"forallin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forallin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forallin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"forallin[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"forallinend\"\n    },\n    {\n      \"name\": \"forever\"\n    },\n    {\n      \"name\": \"forever\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"forever[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"foreverend\"\n    },\n    {\n      \"name\": \"exit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"exit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"exit[${2:height}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelse\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ifthenelse{${1:left angle}}{${2:right angle}}{${3:condition%text}}{${4:left text%text}}{${5:right text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelse\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"ifthenelse[${6:height}]{${1:left angle}}{${2:right angle}}{${3:condition%text}}{${4:left text%text}}{${5:right text%text}}\"\n      }\n    },\n    {\n      \"name\": \"change\"\n    },\n    {\n      \"name\": \"ifend\"\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"case{${1:angle}}{${2:num cases}}{${3:condition%text}}{${4:case1 text%text}}\"\n      }\n    },\n    {\n      \"name\": \"case\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"case[${5:height}]{${1:angle}}{${2:num cases}}{${3:condition%text}}{${4:case1 text%text}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"switch{${1:case-n text%text}}\"\n      }\n    },\n    {\n      \"name\": \"switch\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"switch[${2:position}]{${1:case-n text%text}}\"\n      }\n    },\n    {\n      \"name\": \"caseend\"\n    },\n    {\n      \"name\": \"inparallel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inparallel{${1:num tasks}}{${2:task1 description%text}}\"\n      }\n    },\n    {\n      \"name\": \"inparallel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inparallel[${3:height}]{${1:num tasks}}{${2:task1 description%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"task{${1:task-n description%text}}\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"task[${2:position}]{${1:task-n description%text}}\"\n      }\n    },\n    {\n      \"name\": \"inparallelend\"\n    },\n    {\n      \"name\": \"CenterNssFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CenterNssFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"centernssfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centernssfile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"struktogramm\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:width},${2:height})\"\n      }\n    },\n    {\n      \"name\": \"struktogramm\",\n      \"arg\": {\n        \"format\": \"()[]\",\n        \"snippet\": \"(${2:width},${3:height})[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"declaration\"\n    },\n    {\n      \"name\": \"declaration\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"centernss\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/struktex#c\": [\n      \"english\",\n      \"german\",\n      \"ngerman\",\n      \"curves\",\n      \"emlines\",\n      \"pict2e\",\n      \"verification\",\n      \"nofiller\",\n      \"draft\",\n      \"final\",\n      \"debug\",\n      \"outer\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/struktex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/struktxf.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"nat\"\n    },\n    {\n      \"name\": \"integer\"\n    },\n    {\n      \"name\": \"real\"\n    },\n    {\n      \"name\": \"complex\"\n    },\n    {\n      \"name\": \"MathItalics\"\n    },\n    {\n      \"name\": \"MathNormal\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/struktxp.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pVariable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pVariable{${1:name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pVar{${1:name%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pKeyword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pKeyword{${1:keyword%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pKey{${1:keyword%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pExpression\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pExpression{${1:expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pExp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pExp{${1:expression%definition}}\"\n      }\n    },\n    {\n      \"name\": \"pComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pComment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pTrue\"\n    },\n    {\n      \"name\": \"pFalse\"\n    },\n    {\n      \"name\": \"pFonts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pFonts{${1:variable font}}{${2:keyword font}}{${3:comment font}}\"\n      }\n    },\n    {\n      \"name\": \"pBoolValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pBoolValue{${1:true}}{${2:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/stubs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"textpos\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"stubs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stubs{${1:width}}{${2:text front%text}}\"\n      }\n    },\n    {\n      \"name\": \"stubs\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"stubs{${1:width}}[${3:text back%text}]{${2:text front%text}}\"\n      }\n    },\n    {\n      \"name\": \"stubs\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stubs[${3:number}]{${1:width}}{${2:text front%text}}\"\n      }\n    },\n    {\n      \"name\": \"stubs\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"stubs[${3:number}]{${1:width}}[${4:text back%text}]{${2:text front%text}}\"\n      }\n    },\n    {\n      \"name\": \"stublmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stubrmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stubbmargin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/stubs#c\": [\n      \"addmargin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/stubs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/studenthandouts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"changepage\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fmtcount\"\n    },\n    {\n      \"name\": \"tocloft\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sethandouttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sethandouttitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"importhandout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"importhandout{${1:unit number}}{${2:handout number}}\"\n      }\n    },\n    {\n      \"name\": \"importall\"\n    },\n    {\n      \"name\": \"importnone\"\n    },\n    {\n      \"name\": \"importonlyunits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importonlyunits{${1:unit numbers}}\"\n      }\n    },\n    {\n      \"name\": \"importallunits\"\n    },\n    {\n      \"name\": \"importonlyhandouts\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"importonlyhandouts{${1:handout numbers}}\"\n      }\n    },\n    {\n      \"name\": \"importallhandouts\"\n    },\n    {\n      \"name\": \"thehandoutsdirectory\"\n    },\n    {\n      \"name\": \"thehandoutslabel\"\n    },\n    {\n      \"name\": \"thehandoutscredit\"\n    },\n    {\n      \"name\": \"setunittitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setunittitle{${1:unit number}}{${2:unit title%text}}\"\n      }\n    },\n    {\n      \"name\": \"thehandoutsgeometry\"\n    },\n    {\n      \"name\": \"thehandoutnumber\"\n    },\n    {\n      \"name\": \"thehandouttitle\"\n    },\n    {\n      \"name\": \"thehandoutfulltitle\"\n    },\n    {\n      \"name\": \"thehandoutpage\"\n    },\n    {\n      \"name\": \"theunitnumber\"\n    },\n    {\n      \"name\": \"theunittitle\"\n    },\n    {\n      \"name\": \"theunitfulltitle\"\n    },\n    {\n      \"name\": \"thehandoutslabel\"\n    },\n    {\n      \"name\": \"thehandoutscredit\"\n    },\n    {\n      \"name\": \"allhandoutinfo\"\n    },\n    {\n      \"name\": \"gnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gnewcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"gnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"gnewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"gnewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"gnewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"grenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grenewcommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"grenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"grenewcommand{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"grenewcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"grenewcommand{${1:cmd}}[${3:args}][${4:default}]{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/studenthandouts#c\": [\n      \"blanks\",\n      \"noblanks\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/studenthandouts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/styledcmd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lt3rawobjects\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newstyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newstyledcmd{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newstyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"newstyledcmd{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewstyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewstyledcmd{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewstyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"renewstyledcmd{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providestyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providestyledcmd{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providestyledcmd\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"providestyledcmd{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setGlobalStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setGlobalStyle{${1:cmd}}{${2:new style name}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocStyledCMD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewDocStyledCMD{${1:cmd}}{${2:style name}}{${3:xargs}}{${4:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDocStyledCMD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewDocStyledCMD{${1:cmd}}{${2:style name}}{${3:xargs}}{${4:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDocStyledCMD\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideDocStyledCMD{${1:cmd}}{${2:style name}}{${3:xargs}}{${4:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newstyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newstyledcmdExp{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newstyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"newstyledcmdExp{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewstyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewstyledcmdExp{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewstyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"renewstyledcmdExp{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providestyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providestyledcmdExp{${1:cmd}}{${2:style name}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providestyledcmdExp\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"providestyledcmdExp{${1:cmd}}{${2:style name}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"AddCMDToGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddCMDToGroup{${1:group name}}{${2:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"SetGroupStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetGroupStyle{${1:group name}}{${2:style name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/suanpan-l3.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rod{${1:num}}{${2:val}}\"\n      }\n    },\n    {\n      \"name\": \"rod*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rod*{${1:num}}{${2:val}}\"\n      }\n    },\n    {\n      \"name\": \"rods\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rods{${1:val list}}\"\n      }\n    },\n    {\n      \"name\": \"bid\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"bid{${1:num}}{${2:pos list}}{${3:fill color}}[${4:draw color}]\"\n      }\n    },\n    {\n      \"name\": \"bids\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bids{${1:num}}{${2:val}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"bids*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"bids*{${1:num}}{${2:val}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"rodmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rodmark{${1:marker list}}\"\n      }\n    },\n    {\n      \"name\": \"rodmark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rodmark[${2:start}]{${1:marker list}}\"\n      }\n    },\n    {\n      \"name\": \"mkframe\"\n    },\n    {\n      \"name\": \"lrframe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lrframe{${1:first num}}{${2:last num}}\"\n      }\n    },\n    {\n      \"name\": \"suanpanset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suanpanset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/suanpan-l3#c,\\\\begin{suanpan},\\\\suanpanset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"suanpan\"\n    },\n    {\n      \"name\": \"suanpan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\usepackage/suanpan-l3#c,\\\\begin{suanpan},\\\\suanpanset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/suanpan-l3#c,\\\\begin{suanpan},\\\\suanpanset\": [\n      \"draft\",\n      \"empty\",\n      \"linewd=\",\n      \"bidh=\",\n      \"bidd=\",\n      \"rodd=\",\n      \"framew=\",\n      \"rodsep=\",\n      \"bidsep=\",\n      \"scale=${1:factor}\",\n      \"framedraw=\",\n      \"roddraw=\",\n      \"rodfill=\",\n      \"outerdraw=\",\n      \"outerfill=\",\n      \"innerdraw=\",\n      \"innerfill=\",\n      \"font=${1:font commands}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/suanpan-l3#c,\\\\begin{suanpan},\\\\suanpanset\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subcaption.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=onehalfspacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"font+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"labelfont+=doublespacing\"\n    },\n    {\n      \"name\": \"setspace\",\n      \"if\": \"textfont+=doublespacing\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"font+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"labelfont+=sansmath\"\n    },\n    {\n      \"name\": \"sansmath\",\n      \"if\": \"textfont+=sansmath\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"subcaptionbox{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}[${4:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox\",\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"subcaptionbox[${3:list entry}]{${1:heading%text}}[${4:width}][${5:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionbox*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"subcaptionbox*{${1:heading%text}}[${3:width}][${4:inner-pos}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaption[${2:list entry}]{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaption*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaption*{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"subref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref*{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"thesubfigure\"\n    },\n    {\n      \"name\": \"thesubtable\"\n    },\n    {\n      \"name\": \"phantomsubcaption\"\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfloat[${2:list entry}][${3:sub-caption}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfloat[${2:sub-caption}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfloat{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionlistentry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptionlistentry{${1:list entry}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptiontext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptiontext[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subcaptiontext*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiontext*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subcaptiontext*[${2:number}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptionblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"[${2:position}][${3:height}][${4:inner pos}]{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"subcaptiongroup\"\n    },\n    {\n      \"name\": \"subcaptiongroup*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/subcaption#c\": [\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"box=${1|empty,none,parbox,colorbox|}\",\n      \"boxcolor=\",\n      \"boxsep=\",\n      \"calcmargin*=\",\n      \"calcmargin=\",\n      \"calcwidth*=\",\n      \"calcwidth=\",\n      \"debug\",\n      \"figurename=${1:name}\",\n      \"figureposition=${1|top,above,bottom,below,auto|}\",\n      \"figurewithin=${1:counter}\",\n      \"figurewithout\",\n      \"font+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"font=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"format=${1|plain,hang|}\",\n      \"hangindent=\",\n      \"indention=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash,gobble,gobbletwo|}\",\n      \"list=${1|on,off,true,false|}\",\n      \"listfigurename=${1:name}\",\n      \"listformat=${1|empty,simple,parens,subsimple,subparens,period,subperiod|}\",\n      \"listtablename=${1:name}\",\n      \"listtype=${1:list type}\",\n      \"listtype+=${1:list type ext}\",\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"margin*=\",\n      \"margin=\",\n      \"maxmargin=\",\n      \"minmargin=\",\n      \"name=${1:name}\",\n      \"oneside\",\n      \"parbox=${1|empty,none,parbox,colorbox|}\",\n      \"parindent=\",\n      \"parskip=\",\n      \"position=${1|top,above,bottom,below,auto|}\",\n      \"singlelinecheck\",\n      \"skip=\",\n      \"strut=${1|on,off|}\",\n      \"style=\",\n      \"style*=\",\n      \"tablename=${1:name}\",\n      \"tableposition=${1|top,above,bottom,below,auto|}\",\n      \"tablewithin=${1:counter}\",\n      \"tablewithout\",\n      \"textfont+=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textfont=${4|scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge,smaller,larger,none,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,{stretch=${1:factor}},normalcolor,{color=${2:color}},normal,{hypersetup=${3:options}},sansmath|}\",\n      \"textformat=${1|empty,simple,period|}\",\n      \"twoside\",\n      \"width*=\",\n      \"width=\",\n      \"within=${1:counter}\",\n      \"without\",\n      \"list-entry=${1|default,list-entry,entry|}\",\n      \"hypcap\",\n      \"hypcapspace=\",\n      \"type=${1:float type}\",\n      \"type*=${1:float type}\",\n      \"subtype=${1:float type}\",\n      \"subtype*=${1:float type}\",\n      \"compatibility\",\n      \"config=${1:file name}\"\n    ],\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/subcaption#c,\\\\DeclareCaptionStyle#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\": [\n      \"labelformat=${1|original,empty,simple,brace,parens,autodot,unnumbered,subsimple,subparens|}\",\n      \"subrefformat=${1|original,empty,simple,brace,parens,autodot,unnumbered,subsimple,subparens|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subcaption#c\",\n    \"\\\\captionsetup#c,\\\\captionsetup*#c,\\\\usepackage/subcaption#c,\\\\DeclareCaptionStyle#c,\\\\subcaptionsetup#c,\\\\subcaptionsetup*#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subdepth.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subdepth#c\": [\n      \"low-sup\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subdepth#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subdocs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subdocuments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subdocuments{${1:file list%file}}\"\n      }\n    },\n    {\n      \"name\": \"subdocuments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subdocuments[${2:options%keyvals}]{${1:file list%file}}\",\n        \"keys\": [\n          \"\\\\subdocuments\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\subdocuments\": [\n      \"clear=${1|single,double|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subeqn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thesubequation\"\n    },\n    {\n      \"name\": \"themainequation\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subequations\"\n    },\n    {\n      \"name\": \"subeqnarray\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subeqnarray.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thesubequation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slabel{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subeqnarray\"\n    },\n    {\n      \"name\": \"subeqnarray*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subfig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Justified\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=Centering\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedRight\"\n    },\n    {\n      \"name\": \"ragged2e\",\n      \"if\": \"justification=RaggedLeft\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtable{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtable[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtable[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"Subref\",\n      \"if\": \"config=altsf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubfloat{${1:float name}}\"\n      }\n    },\n    {\n      \"name\": \"newsubfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newsubfloat[${2:kv-list}]{${1:float name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionListOfFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionListOfFormat{${1:keyword}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubrefFormat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSubrefFormat{${1:keyword}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfloat{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfloat[${2:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfloat\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfloat[${2:listentry%text}][${3:subcaption%text}]{${1:body%text}}\"\n      }\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"subref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"listsubcaptions\"\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtablename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfig#c\": [\n      \"caption\",\n      \"config=${1:file name}\",\n      \"font=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"labelfont=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"textfont=${1|scriptsize,footnotesize,small,normalsize,large,Large,normalfont,up,it,sl,sc,md,bf,rm,sf,tt,singlespacing,onehalfspacing,doublespacing,normalcolor,normal|}\",\n      \"style=${1|default,ruled|}\",\n      \"singlelinecheck\",\n      \"format=${1|default,hang|}\",\n      \"indention=\",\n      \"hangindent=\",\n      \"width=\",\n      \"margin=\",\n      \"parskip=\",\n      \"justification=${1|justified,centering,centerlast,centerfirst,raggedright,raggedleft,Justified,Centering,RaggedRight,RaggedLeft|}\",\n      \"labelformat=${1|original,empty,simple,brace,parens|}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"labelsep=${1|none,colon,period,space,quad,newline,endash|}\",\n      \"position=${1|top,above,bottom,below,auto|}\"\n    ],\n    \"\\\\usepackage/subfig#c,\\\\captionsetup#c,\\\\captionsetup*#c,\\\\DeclareCaptionStyle#c\": [\n      \"lofdepth=${1:integer}\",\n      \"lotdepth=${1:integer}\",\n      \"listofformat=${1|empty,simple,parens,subsimple,subparens|}\",\n      \"subrefformat=${1|empty,simple,parens,subsimple,subparens|}\",\n      \"listofindent=\",\n      \"listofnumwidth=\",\n      \"farskip=\",\n      \"captionskip=\",\n      \"topadjust=\",\n      \"nearskip=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfig#c\",\n    \"\\\\usepackage/subfig#c,\\\\captionsetup#c,\\\\captionsetup*#c,\\\\DeclareCaptionStyle#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subfigmat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"subfigure\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sfmcolsep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subfigmatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subfigure.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfigure{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subfigure[${2:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subfigure\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subfigure[${2:listentry%text}][${3:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtable{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtable[${2:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtable\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"subtable[${2:listentry%text}][${3:caption%text}]{${1:figure%text}}\"\n      }\n    },\n    {\n      \"name\": \"thesubfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigtopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcapskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcaptopadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigbottomskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfigcapmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiglabelskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Subref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Subref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"listsubcaptions\"\n    },\n    {\n      \"name\": \"ifsubfiguretopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiguretopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiguretopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsubtabletopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtabletopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtabletopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffiguretopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuretopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figuretopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figureotopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabletopcap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabletopcaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabletopcapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"label\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"label(${2:bookmark}){${1:key%labeldef}}\"\n      }\n    },\n    {\n      \"name\": \"subcapfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subcaplabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subcapsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelofdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelotdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfigure#c\": [\n      \"normal\",\n      \"hang\",\n      \"center\",\n      \"centerlast\",\n      \"nooneline\",\n      \"raggedright\",\n      \"isu\",\n      \"anne\",\n      \"scriptsize\",\n      \"footnotesize\",\n      \"small\",\n      \"normalsize\",\n      \"large\",\n      \"Large\",\n      \"rm\",\n      \"sf\",\n      \"tt\",\n      \"md\",\n      \"bf\",\n      \"up\",\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"RM\",\n      \"SF\",\n      \"TT\",\n      \"MD\",\n      \"BF\",\n      \"IT\",\n      \"SL\",\n      \"SC\",\n      \"UP\",\n      \"figbotcap\",\n      \"figtopcap\",\n      \"tabbotcap\",\n      \"tabtopcap\",\n      \"FIGBOTCAP\",\n      \"FIGTOPCAP\",\n      \"TABBOTCAP\",\n      \"TABTOPCAP\",\n      \"loose\",\n      \"tight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfigure#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subfiles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"import\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"subfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"subfileinclude\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfileinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"subfix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subfix{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifSubfilesClassLoaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifSubfilesClassLoaded{${1:then}}{${2:else}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subfiles#c\": [\n      \"v1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfiles#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/subfloat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"subfiguresbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subfiguresend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtablesbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subtablesend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfloatfigure\"\n    },\n    {\n      \"name\": \"thesubfloattable\"\n    },\n    {\n      \"name\": \"themainfigure\"\n    },\n    {\n      \"name\": \"themaintable\"\n    },\n    {\n      \"name\": \"ifinsubfloatfigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insubfloatfigurestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insubfloatfiguresfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinsubfloattables\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insubfloattablestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insubfloattablesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesubfloatfiguremax\",\n      \"if\": \"countmax\"\n    },\n    {\n      \"name\": \"thesubfloattablemax\",\n      \"if\": \"countmax\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"subfigures\"\n    },\n    {\n      \"name\": \"subtables\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/subfloat#c\": [\n      \"countmax\",\n      \"nocountmax\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/substances.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"chemmacros\"\n    },\n    {\n      \"name\": \"chemfig\"\n    },\n    {\n      \"name\": \"ghsystem\"\n    },\n    {\n      \"name\": \"chemfig\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareSubstance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareSubstance{${1:id%specialDef}}{${2:properties%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareSubstance\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"LoadSubstances\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadSubstances{${1:database name}}\"\n      }\n    },\n    {\n      \"name\": \"SubstancesDatabase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubstancesDatabase{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"CAS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CAS{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SubstancesStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubstancesStyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"SubstancesStyle*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubstancesStyle*{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"LoadSubstancesStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadSubstancesStyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSubstanceProperty{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareSubstanceProperty{${1:name%specialDef}}[${2:pre code}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"DeclareSubstanceProperty{${1:name%specialDef}}[${2:pre code}][${3:post code}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareSubstanceProperty*{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareSubstanceProperty*{${1:name%specialDef}}[${2:pre code}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareSubstanceProperty*\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"DeclareSubstanceProperty*{${1:name%specialDef}}[${2:pre code}][${3:post code}]\"\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chem{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chem{${1:id%keyvals}}[${2:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chem[${2:pre}]{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chem[${2:pre}]{${1:id%keyvals}}[${3:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chem[${2:pre}][${3:post}]{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"chem\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"chem[${2:pre}][${3:post}]{${1:id%keyvals}}[${4:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chem*{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"chem*{${1:id%keyvals}}[${2:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chem*[${2:pre}]{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"chem*[${2:pre}]{${1:id%keyvals}}[${3:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chem*[${2:pre}][${3:post}]{${1:id%keyvals}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"chem*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"chem*[${2:pre}][${3:post}]{${1:id%keyvals}}[${4:property}]\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"GetSubstanceProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetSubstanceProperty{${1:id%keyvals}}{${2:property}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RetrieveSubstanceProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RetrieveSubstanceProperty{${1:id%keyvals}}{${2:property}}\",\n        \"keys\": [\n          \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ForAllSubstancesDo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForAllSubstancesDo{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AllSubstancesSequence\"\n    },\n    {\n      \"name\": \"AllSubstancesClist\"\n    },\n    {\n      \"name\": \"IfSubstancePropertyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSubstancePropertyTF{${1:id}}{${2:field}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstancePropertyT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstancePropertyT{${1:id}}{${2:field}}{${3:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstancePropertyF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstancePropertyF{${1:id}}{${2:field}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceFieldTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstanceFieldTF{${1:field}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceFieldT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfSubstanceFieldT{${1:field}}{${2:true code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceFieldF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfSubstanceFieldF{${1:field}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceExistTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstanceExistTF{${1:id}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceExistT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstanceExistT{${1:id}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubstanceExistF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfSubstanceExistF{${1:id}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"SubstanceIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SubstanceIndex{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"SubstanceIndex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SubstanceIndex[${2:opt}]{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"SubstanceIndexNameEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubstanceIndexNameEntry{${1:sort}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"SubstanceIndexNameAltEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SubstanceIndexNameAltEntry{${1:sort}}{${2:name}}{${3:alt}}\"\n      }\n    },\n    {\n      \"name\": \"SubstanceIndexAltEntry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SubstanceIndexAltEntry{${1:alt sort}}{${2:name}}{${3:alt}}\"\n      }\n    },\n    {\n      \"name\": \"ghspictograms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghspictograms{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ghsstatements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ghsstatements{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/substances#c\": [\n      \"draft\",\n      \"final\",\n      \"index\",\n      \"style=${1:style name}\",\n      \"strict\"\n    ],\n    \"\\\\DeclareSubstance\": [\n      \"name=${1:name}\",\n      \"sort=${1:sort name}\",\n      \"alt=${1:alt name}\",\n      \"altsort=${1:sort alt name}\",\n      \"CAS=${1:CAS number}\",\n      \"PubChem=${1:PubChem number}\",\n      \"formula=${1:formula}\",\n      \"structure=${1:structure}\",\n      \"mp=${1:melting point}\",\n      \"bp=${1:boiling point}\",\n      \"density=${1:density}\",\n      \"phase=${1:phase}\",\n      \"pKa=${1:pKa}\",\n      \"pKa1=${1:pKa1}\",\n      \"pKa2=${1:pKa2}\",\n      \"pKb=${1:pKb}\",\n      \"pKb1=${1:pKb1}\",\n      \"pKb2=${1:pKb2}\",\n      \"pictograms={${1:list of pictograms}}\",\n      \"H={${1:list of hazard statements}}\",\n      \"P={${1:list of precautionary statements}}\",\n      \"EUH={${1:list of EUH statements}}\",\n      \"LD50=${1:median lethal dose}\",\n      \"%substancesfield\"\n    ],\n    \"\\\\chem#c,\\\\chem*#c,\\\\GetSubstanceProperty#c,\\\\RetrieveSubstanceProperty#c\": [\n      \"%substancesid\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/substances#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/substitutefont.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"substitutefont\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"substitutefont{${1:encoding}}{${2:family}}{${3:new family}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/substr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"IfSubStringInString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSubStringInString{${1:substring}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfCharInString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfCharInString{${1:char}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"BehindSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BehindSubString{${1:substring}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeSubString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BeforeSubString{${1:substring}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"CountSubStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CountSubStrings{${1:substring}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"SubStringsToCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SubStringsToCounter{${1:counter}}{${2:substring}}{${3:string}}\"\n      }\n    },\n    {\n      \"name\": \"IfBeforeSubStringEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfBeforeSubStringEmpty{${1:substring}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfBehindSubStringEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfBehindSubStringEmpty{${1:substring}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subsupscripts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fourscripts\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"fourscripts{${1:arg}}{${2:lsup}}{${3:lsub}}{${4:rsup}}{${5:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"lrsubscripts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lrsubscripts{${1:arg}}{${2:lsub}}{${3:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"lrsuperscripts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lrsuperscripts{${1:arg}}{${2:lsup}}{${3:rsup}}\"\n      }\n    },\n    {\n      \"name\": \"twolscripts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"twolscripts{${1:arg}}{${2:lsup}}{${3:lsub}}\"\n      }\n    },\n    {\n      \"name\": \"twolscripts\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"twolscripts[${4:skip%l}]{${1:arg}}{${2:lsup}}{${3:lsub}}\"\n      }\n    },\n    {\n      \"name\": \"tworscripts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tworscripts{${1:arg}}{${2:rsup}}{${3:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"tworscripts\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tworscripts[${4:skip%l}]{${1:arg}}{${2:rsup}}{${3:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"lsubscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lsubscript{${1:arg}}{${2:lsub}}\"\n      }\n    },\n    {\n      \"name\": \"lsubscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lsubscript[${3:skip%l}]{${1:arg}}{${2:lsub}}\"\n      }\n    },\n    {\n      \"name\": \"lsuperscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lsuperscript{${1:arg}}{${2:lsup}}\"\n      }\n    },\n    {\n      \"name\": \"lsuperscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"lsuperscript[${3:skip%l}]{${1:arg}}{${2:lsup}}\"\n      }\n    },\n    {\n      \"name\": \"rsubscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rsubscript{${1:arg}}{${2:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"rsubscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rsubscript[${3:skip%l}]{${1:arg}}{${2:rsub}}\"\n      }\n    },\n    {\n      \"name\": \"rsuperscript\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rsuperscript{${1:arg}}{${2:rsup}}\"\n      }\n    },\n    {\n      \"name\": \"rsuperscript\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"rsuperscript[${3:skip%l}]{${1:arg}}{${2:rsup}}\"\n      }\n    },\n    {\n      \"name\": \"largerSkips\"\n    },\n    {\n      \"name\": \"setDblLSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDblLSkip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setDblRSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setDblRSkip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setSingleLSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleLSkip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"setSingleRSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleRSkip{${1:skip%l}}\"\n      }\n    },\n    {\n      \"name\": \"fourscriptsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"fourscriptsC{${1:arg}}{${2:lsup}}{${3:lsub}}{${4:rsup}}{${5:rsub}}{${6:lskip%l}}{${7:rskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"lrsubscriptsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lrsubscriptsC{${1:arg}}{${2:lsub}}{${3:rsub}}{${4:lskip%l}}{${5:rskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"lrsuperscriptsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lrsuperscriptsC{${1:arg}}{${2:lsup}}{${3:rsup}}{${4:lskip%l}}{${5:rskip%l}}\"\n      }\n    },\n    {\n      \"name\": \"dblleftscriptskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblrightscriptskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singleleftscriptskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"singlerightscriptskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/subtext.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/subtext#c\": [\n      \"upright\",\n      \"normal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/subtext#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/sudoku.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sudokuformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sudokusize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sudokuthickline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sudokuthinline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sudoku\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/suetterl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"suetterlin\"\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"textsuetterlin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuetterlin{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/suffix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/superiors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"trace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textfnscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfnscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textSuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textSuperscript{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/superiors#c\": [\n      \"notitlepatch\",\n      \"supscale=${1:factor}\",\n      \"supscolor=\",\n      \"supsraised=\",\n      \"supsfam=${1:family}\",\n      \"supsotf=${1:.otf file}\",\n      \"supsLspaced=\",\n      \"supsRspaced=\",\n      \"supspaced=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/superiors#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/supertabular.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bottomcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setSTheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSTheight{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"shrinkheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrinkheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablecaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefirsthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasttail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabletail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sttraceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceoff\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpsupertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpsupertabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"supertabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"supertabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/supertabular#c\": [\n      \"errorshow\",\n      \"pageshow\",\n      \"debugshow\",\n      \"estimate\",\n      \"calculate\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/supertabular#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/suppose.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"euscript\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"supp\"\n    },\n    {\n      \"name\": \"bsup\"\n    },\n    {\n      \"name\": \"plainsupp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainbsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csup\",\n      \"unusual\": true,\n      \"detail\": \"⫐\",\n      \"doc\": \"Closed superset\"\n    },\n    {\n      \"name\": \"bcsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbcsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbdsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"besup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sesup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbesup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbtsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbvsup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"mathdutchcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdutchcal{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"mathdutchbfcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathdutchbfcal{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"itt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itt{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"sansserif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sansserif{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"bfeuscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bfeuscript{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"bfsansserif\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bfsansserif{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"bolditt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bolditt{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"Swidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bcshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bdshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldrulelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bplainshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"btshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curboldfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hardsvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hardvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"plainshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbcshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbdshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbeshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbtshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sbvshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theslantselected\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vshift\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/suppose#c\": [\n      \"mathcal\",\n      \"dutchcal\",\n      \"eulerscript\",\n      \"tt\",\n      \"sans-serif\",\n      \"slant\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/suppose#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/susy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sfer\"\n    },\n    {\n      \"name\": \"sfer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sfer[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqk\"\n    },\n    {\n      \"name\": \"sqk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqk[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"squ\"\n    },\n    {\n      \"name\": \"squ\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squ[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqd\"\n    },\n    {\n      \"name\": \"sqd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqd[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqc\"\n    },\n    {\n      \"name\": \"sqc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqc[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqs\"\n    },\n    {\n      \"name\": \"sqs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqs[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqt\"\n    },\n    {\n      \"name\": \"sqt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqt[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sqb\"\n    },\n    {\n      \"name\": \"sqb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sqb[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"slep\"\n    },\n    {\n      \"name\": \"slep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slep[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sle\"\n    },\n    {\n      \"name\": \"sle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sle[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"slmu\"\n    },\n    {\n      \"name\": \"slmu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slmu[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"sltau\"\n    },\n    {\n      \"name\": \"sltau\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sltau[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"slneu\"\n    },\n    {\n      \"name\": \"slneu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slneu[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Hu\"\n    },\n    {\n      \"name\": \"Hu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hu[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Hd\"\n    },\n    {\n      \"name\": \"Hd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hd[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Ho\"\n    },\n    {\n      \"name\": \"Ho\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ho[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Hou\"\n    },\n    {\n      \"name\": \"Hou\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hou[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Hod\"\n    },\n    {\n      \"name\": \"Hod\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Hod[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"No\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"No[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Co\"\n    },\n    {\n      \"name\": \"Co\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Co[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Cop\"\n    },\n    {\n      \"name\": \"Cop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cop[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"Com\"\n    },\n    {\n      \"name\": \"Com\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Com[${1:sub}]\"\n      }\n    },\n    {\n      \"name\": \"tbeta\"\n    },\n    {\n      \"name\": \"go\"\n    },\n    {\n      \"name\": \"Wo\"\n    },\n    {\n      \"name\": \"Zo\"\n    },\n    {\n      \"name\": \"pho\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sverb.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"listingsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listingindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"matcher\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"matcher{${1:cmd}}{${2:target}}{${3:process-cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"listing\"\n    },\n    {\n      \"name\": \"listing*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:end string}}\"\n      }\n    },\n    {\n      \"name\": \"verbwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"demo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"demo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:shape%keyvals}]{${1:title}}\",\n        \"keys\": [\n          \"\\\\begin{demo}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ignore\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{demo}\": [\n      \"w\",\n      \"n\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/svg-extract.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"svghidepreamblestart\"\n    },\n    {\n      \"name\": \"svghidepreambleend\"\n    },\n    {\n      \"name\": \"svgxoutputbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svgxsetbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svgxsetbox{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"svgxsetbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"svgxsetbox[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"svgxsetpapersize\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svg-extract#c\": [\n      \"on\",\n      \"off\"\n    ],\n    \"\\\\usepackage/svg-extract#c,\\\\svgsetup#c,\\\\includesvg,\\\\includeinkscape\": [\n      \"extract\",\n      \"extractpath=${2|svgdir,svgpath,svgsubdir,svgsubpath,basedir,basepath,jobdir,jobpath,basesubdir,basesubpath,jobsubdir,jobsubpath,${1:path}|}\",\n      \"extractname=${1|filename,name,filenamenumbered,namenumbered,numberedfilename,numberedname,numbered,section,numberedsection,sectionnumbered|}\",\n      \"extractformat={${1:fmt1,fmt2,...}}\",\n      \"extractwidth=\",\n      \"extractheight=\",\n      \"extractdistort\",\n      \"extractscale=${1:factor}\",\n      \"extractpretex=${1:code}\",\n      \"extractapptex=${1:code}\",\n      \"extractpreamble=${1:file name}\",\n      \"extractpreambleend=${1:line}\",\n      \"extractruns=${1:number}\",\n      \"latexexe=${1:exe}\",\n      \"latexopt=${1:opt}\",\n      \"latexext=${1:extension}\",\n      \"dvipsopt=${1:opt}\",\n      \"pstoepsopt=${1:opt}\",\n      \"pstopdfopt=${1:opt}\",\n      \"pdftoepsopt=${1:opt}\",\n      \"pdftopsopt=${1:opt}\",\n      \"clean=${2|true,false,{${1:ext1,ext2,...}}|}\",\n      \"exclude\",\n      \"convert=${1|false,off,no,true,on,yes,magick,imagemagick,convert,gs,ghostscript,gs64,ghostscript64,gs32,ghostscript32|}\",\n      \"convertformat={${1:fmt1,fmt2,...}}\",\n      \"convertdpi={${1:fmt=integer}}\",\n      \"magickexe=${1:exe}\",\n      \"magicksetting=${1:settings}\",\n      \"magickoperator=${1:operators}\",\n      \"gsexe=${1:exe}\",\n      \"gsdevice=\",\n      \"gsopt=${1:opt}\"\n    ],\n    \"\\\\includesvg,\\\\includeinkscape\": [\n      \"extractangle=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svg-extract#c\",\n    \"\\\\usepackage/svg-extract#c,\\\\svgsetup#c,\\\\includesvg,\\\\includeinkscape\"\n  ]\n}"
  },
  {
    "path": "dev/packages/svg.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"ifplatform\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"transparent\"\n    },\n    {\n      \"name\": \"pgfsys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"svgsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svgsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/svg#c,\\\\svgsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"svgpath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svgpath{${1:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"includesvg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includesvg{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includesvg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includesvg[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includesvg\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includeinkscape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeinkscape{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includeinkscape\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeinkscape[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includeinkscape\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svg#c\": [\n      \"usexcolor=${1|true,on,yes,false,off,no|}\",\n      \"usetransparent=${1|true,on,yes,false,off,no|}\",\n      \"noxcolor\",\n      \"notransparent\"\n    ],\n    \"\\\\usepackage/svg#c,\\\\svgsetup#c\": [\n      \"inkscape=${2|false,off,no,true,on,yes,newer,onlynewer,forced,force,overwrite,pdf,eps,ps,png,latex,nolatex,drawing,page,${1:integer}dpi|}\",\n      \"inkscapepath=${2|svgdir,svgpath,svgsubdir,svgsubpath,basedir,basepath,jobdir,jobpath,basesubdir,basesubpath,jobsubdir,jobsubpath,${1:path}|}\",\n      \"inkscapeexe=${1:exec path}\",\n      \"inkscapeversion=${1|0,1,auto|}\",\n      \"inkscapename=${1:file name}\",\n      \"inkscapeformat=${1|pdf,aps,ps,png|}\",\n      \"inkscapelatex\",\n      \"inkscapearea=${1|drawing,crop,page,nocrop|}\",\n      \"inkscapedpi=${1:integer}\",\n      \"inkscapeopt=${1:Inkscape option}\",\n      \"svgextension=${1:extension}\",\n      \"width=\",\n      \"height=\",\n      \"distort\",\n      \"scale=${1:factor}\",\n      \"pretex=${1:code}\",\n      \"apptex=${1:code}\",\n      \"draft\",\n      \"lastpage\"\n    ],\n    \"\\\\includesvg\": [\n      \"inkscape=${2|false,off,no,true,on,yes,newer,onlynewer,forced,force,overwrite,pdf,eps,ps,png,latex,nolatex,drawing,page,${1:integer}dpi|}\",\n      \"inkscapeformat=${1|pdf,aps,ps,png|}\",\n      \"inkscapelatex\",\n      \"inkscapearea=${1|drawing,crop,page,nocrop|}\",\n      \"inkscapedpi=${1:integer}\",\n      \"inkscapeopt=${1:Inkscape option}\",\n      \"svgextension=${1:extension}\",\n      \"width=\",\n      \"height=\",\n      \"distort\",\n      \"scale=${1:factor}\",\n      \"pretex=${1:code}\",\n      \"apptex=${1:code}\",\n      \"draft\",\n      \"lastpage\",\n      \"angle=${1:degrees}\",\n      \"origin=\"\n    ],\n    \"\\\\includeinkscape\": [\n      \"inkscapeformat=${1|pdf,aps,ps,png|}\",\n      \"inkscapelatex\",\n      \"width=\",\n      \"height=\",\n      \"distort\",\n      \"scale=${1:factor}\",\n      \"pretex=${1:code}\",\n      \"apptex=${1:code}\",\n      \"draft\",\n      \"lastpage\",\n      \"angle=${1:degrees}\",\n      \"origin=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svg#c\",\n    \"\\\\usepackage/svg#c,\\\\svgsetup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/svgcolor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/svn-multi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"filehook\"\n    },\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"graphics\",\n      \"if\": \"graphics\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgfimages\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"svngraphicsgroup\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngraphicsgroup{${1:graphic group name}}\"\n      }\n    },\n    {\n      \"name\": \"svnignoregraphic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoregraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsidergraphic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsidergraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svngraphicsgroup\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngraphicsgroup{${1:graphic group name}}\"\n      }\n    },\n    {\n      \"name\": \"svnignoregraphic\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoregraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsidergraphic\",\n      \"if\": \"graphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsidergraphic{${1:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svnid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnid{$%<Id%>$}\"\n      }\n    },\n    {\n      \"name\": \"svnidlong\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"svnidlong{$%<HeadURL%>$}{$%<LastChangedDate%>$}{$%<LastRevision%>$}{$%<LastChangedBy%>$}\"\n      }\n    },\n    {\n      \"name\": \"svn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svn{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svn*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svn*{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svnkwsave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnkwsave{$%<keyword%>$}\"\n      }\n    },\n    {\n      \"name\": \"svngroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svngroup{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"thesvngroup\"\n    },\n    {\n      \"name\": \"svnsetcg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnsetcg{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"thesvncg\"\n    },\n    {\n      \"name\": \"svnsubgroup\"\n    },\n    {\n      \"name\": \"svnignoreextensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnignoreextensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"svnconsiderextensions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnconsiderextensions{${1:ext list}}\"\n      }\n    },\n    {\n      \"name\": \"svnrev\"\n    },\n    {\n      \"name\": \"svndate\"\n    },\n    {\n      \"name\": \"svnauthor\"\n    },\n    {\n      \"name\": \"svnfilerev\"\n    },\n    {\n      \"name\": \"svnfiledate\"\n    },\n    {\n      \"name\": \"svnfileauthor\"\n    },\n    {\n      \"name\": \"svncgrev\"\n    },\n    {\n      \"name\": \"svncgauthor\"\n    },\n    {\n      \"name\": \"svncgdate\"\n    },\n    {\n      \"name\": \"svng\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svng{${1:group name}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"svnmainurl\"\n    },\n    {\n      \"name\": \"svnmainfilename\"\n    },\n    {\n      \"name\": \"svnsetmainfile\"\n    },\n    {\n      \"name\": \"svnkw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnkw{${1:keyword name}}\"\n      }\n    },\n    {\n      \"name\": \"svnkwdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnkwdef{${1:keyword name}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"ifsvnfilemodified\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsvnfilemodified{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifsvnmodified\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifsvnmodified{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"svnyear\"\n    },\n    {\n      \"name\": \"svnfileyear\"\n    },\n    {\n      \"name\": \"svncgyear\"\n    },\n    {\n      \"name\": \"svnmonth\"\n    },\n    {\n      \"name\": \"svnfilemonth\"\n    },\n    {\n      \"name\": \"svncgmonth\"\n    },\n    {\n      \"name\": \"svnday\"\n    },\n    {\n      \"name\": \"svnfileday\"\n    },\n    {\n      \"name\": \"svncgday\"\n    },\n    {\n      \"name\": \"svnhour\"\n    },\n    {\n      \"name\": \"svnfilehour\"\n    },\n    {\n      \"name\": \"svncghour\"\n    },\n    {\n      \"name\": \"svnminute\"\n    },\n    {\n      \"name\": \"svnfileminute\"\n    },\n    {\n      \"name\": \"svncgminute\"\n    },\n    {\n      \"name\": \"svnsecond\"\n    },\n    {\n      \"name\": \"svnfilesecond\"\n    },\n    {\n      \"name\": \"svncgsecond\"\n    },\n    {\n      \"name\": \"svntimezone\"\n    },\n    {\n      \"name\": \"svnfiletimezone\"\n    },\n    {\n      \"name\": \"svncgtimezone\"\n    },\n    {\n      \"name\": \"svntimezonehour\"\n    },\n    {\n      \"name\": \"svnfiletimezonehour\"\n    },\n    {\n      \"name\": \"svncgtimezonehour\"\n    },\n    {\n      \"name\": \"svntimezoneminute\"\n    },\n    {\n      \"name\": \"svnfiletimezoneminute\"\n    },\n    {\n      \"name\": \"svncgtimezoneminute\"\n    },\n    {\n      \"name\": \"svntime\"\n    },\n    {\n      \"name\": \"svnfiletime\"\n    },\n    {\n      \"name\": \"svncgtime\"\n    },\n    {\n      \"name\": \"svnpdfdate\"\n    },\n    {\n      \"name\": \"svntoday\"\n    },\n    {\n      \"name\": \"svnfiletoday\"\n    },\n    {\n      \"name\": \"svncgtoday\"\n    },\n    {\n      \"name\": \"svnfilefname\"\n    },\n    {\n      \"name\": \"svnfileurl\"\n    },\n    {\n      \"name\": \"svncgfname\"\n    },\n    {\n      \"name\": \"svnurl\"\n    },\n    {\n      \"name\": \"svnfname\"\n    },\n    {\n      \"name\": \"svncgurl\"\n    },\n    {\n      \"name\": \"svnRegisterAuthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnRegisterAuthor{${1:author}}{${2:full name}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullAuthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullAuthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullAuthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullAuthor*{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svnRegisterRevision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svnRegisterRevision{${1:revision number}}{${2:tag name}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullRevision\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullRevision{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svnFullRevision*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnFullRevision*{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svnnolinkurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svnnolinkurl{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"tableofrevisions\"\n    },\n    {\n      \"name\": \"svnrevisionsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnbeforetable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnaftertable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvntable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntablehead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntablefoot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnglobalrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnglobalrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svngrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvngrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnsubgrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnsubgrouprow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svnfilerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endsvnfilerow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntabglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svntabgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabgroup{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"svntabsubgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svntabsubgroup{${1:nesting level}}{${2:subgroup name}}\"\n      }\n    },\n    {\n      \"name\": \"svntabfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"svntabfile{${1:nesting level}}{${2:file path/name%file}}\"\n      }\n    },\n    {\n      \"name\": \"svntabrev\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabrev{${1:revision number}}\"\n      }\n    },\n    {\n      \"name\": \"svntabauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svntabauthor{${1:author}}\"\n      }\n    },\n    {\n      \"name\": \"svntabdate\",\n      \"arg\": {\n        \"format\": \"{{}{}{}{}{}{}{}{}}\",\n        \"snippet\": \"svntabdate{{${1:year}}{${2:month}}{${3:day}}{${4:hour}}{${5:minute}}{${6:second}}{${7:TZ hour}}{${8:TZ minute}}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svn-multi#c\": [\n      \"old\",\n      \"all\",\n      \"verbatim\",\n      \"external\",\n      \"groups\",\n      \"subgroups\",\n      \"graphics\",\n      \"pgfimages\",\n      \"autoload\",\n      \"table\",\n      \"filehooks\",\n      \"autokw=${1|false,true,all,ext|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svn-multi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/svn-prov.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ProvidesPackageSVN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesPackageSVN{$Id: %<name%> %<revision%> %<date%> %<time%> %<author%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackageSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvidesPackageSVN[${1:filename}]{$Id: %<keywords%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackageSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ProvidesPackageSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesPackageSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"ProvidesPackageSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}][${3:description}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClassSVN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesClassSVN{$Id: %<name%> %<revision%> %<date%> %<time%> %<author%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClassSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvidesClassSVN[${1:filename}]{$Id: %<keywords%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClassSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ProvidesClassSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesClassSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"ProvidesClassSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}][${3:description}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFileSVN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvidesFileSVN{$Id: %<name%> %<revision%> %<date%> %<time%> %<author%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFileSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ProvidesFileSVN[${1:filename}]{$Id: %<keywords%>$}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFileSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ProvidesFileSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}]\"\n      }\n    },\n    {\n      \"name\": \"ProvidesFileSVN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"ProvidesFileSVN[${1:filename}]{$Id: %<keywords%>$}[${2:version}][${3:description}]\"\n      }\n    },\n    {\n      \"name\": \"rev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"revinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filebase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filerev\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fileversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filetoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetFileInfoSVN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfoSVN{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GetFileInfoSVN*\"\n    },\n    {\n      \"name\": \"DefineFileInfoSVN\"\n    },\n    {\n      \"name\": \"DefineFileInfoSVN\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DefineFileInfoSVN[${1:name}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/svn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"SVNDate\"\n    },\n    {\n      \"name\": \"SVNRawDate\"\n    },\n    {\n      \"name\": \"SVNTime\"\n    },\n    {\n      \"name\": \"SVNempty\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/svninfo.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"svnInfoFile\"\n    },\n    {\n      \"name\": \"svnInfoRevision\"\n    },\n    {\n      \"name\": \"svnInfoMinRevision\"\n    },\n    {\n      \"name\": \"svnInfoMaxRevision\"\n    },\n    {\n      \"name\": \"svnInfoDate\"\n    },\n    {\n      \"name\": \"svnInfoTime\"\n    },\n    {\n      \"name\": \"svnInfoOwner\"\n    },\n    {\n      \"name\": \"svnInfoYear\"\n    },\n    {\n      \"name\": \"svnInfoMonth\"\n    },\n    {\n      \"name\": \"svnInfoDay\"\n    },\n    {\n      \"name\": \"svnInfoLongDate\"\n    },\n    {\n      \"name\": \"svnId\"\n    },\n    {\n      \"name\": \"svnToday\"\n    },\n    {\n      \"name\": \"svnInfoMaxToday\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/svninfo#c\": [\n      \"svk\",\n      \"today\",\n      \"notoday\",\n      \"revrange\",\n      \"fancyhdr\",\n      \"nofancy\",\n      \"scrpage\",\n      \"eso-foot\",\n      \"margin\",\n      \"long\",\n      \"short\",\n      \"final\",\n      \"draft\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/svninfo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/svrsymbols.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"adsorbate\"\n    },\n    {\n      \"name\": \"adsorbent\"\n    },\n    {\n      \"name\": \"antimuon\"\n    },\n    {\n      \"name\": \"antineutrino\"\n    },\n    {\n      \"name\": \"antineutron\"\n    },\n    {\n      \"name\": \"antiproton\"\n    },\n    {\n      \"name\": \"antiquark\"\n    },\n    {\n      \"name\": \"antiquarkb\"\n    },\n    {\n      \"name\": \"antiquarkc\"\n    },\n    {\n      \"name\": \"antiquarkd\"\n    },\n    {\n      \"name\": \"antiquarks\"\n    },\n    {\n      \"name\": \"antiquarkt\"\n    },\n    {\n      \"name\": \"antiquarku\"\n    },\n    {\n      \"name\": \"anyon\"\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"atom\"\n    },\n    {\n      \"name\": \"bigassumption\"\n    },\n    {\n      \"name\": \"Bigassumption\"\n    },\n    {\n      \"name\": \"biggassumption\"\n    },\n    {\n      \"name\": \"Bmesonminus\"\n    },\n    {\n      \"name\": \"Bmesonnull\"\n    },\n    {\n      \"name\": \"Bmesonplus\"\n    },\n    {\n      \"name\": \"bond\"\n    },\n    {\n      \"name\": \"boseDistrib\"\n    },\n    {\n      \"name\": \"boson\"\n    },\n    {\n      \"name\": \"conductivity\"\n    },\n    {\n      \"name\": \"covbond\"\n    },\n    {\n      \"name\": \"dipole\"\n    },\n    {\n      \"name\": \"Dmesonminus\"\n    },\n    {\n      \"name\": \"Dmesonnull\"\n    },\n    {\n      \"name\": \"Dmesonplus\"\n    },\n    {\n      \"name\": \"doublecovbond\"\n    },\n    {\n      \"name\": \"electron \"\n    },\n    {\n      \"name\": \"errorsym\"\n    },\n    {\n      \"name\": \"etameson\"\n    },\n    {\n      \"name\": \"etamesonprime\"\n    },\n    {\n      \"name\": \"exciton\"\n    },\n    {\n      \"name\": \"experimentalsym\"\n    },\n    {\n      \"name\": \"externalsym\"\n    },\n    {\n      \"name\": \"fermiDistrib\"\n    },\n    {\n      \"name\": \"fermion\"\n    },\n    {\n      \"name\": \"Gluon\"\n    },\n    {\n      \"name\": \"graphene\"\n    },\n    {\n      \"name\": \"graviton\"\n    },\n    {\n      \"name\": \"hbond\"\n    },\n    {\n      \"name\": \"Higgsboson\"\n    },\n    {\n      \"name\": \"hole\"\n    },\n    {\n      \"name\": \"interaction\"\n    },\n    {\n      \"name\": \"internalsym\"\n    },\n    {\n      \"name\": \"ion\"\n    },\n    {\n      \"name\": \"ionicbond\"\n    },\n    {\n      \"name\": \"Jpsimeson\"\n    },\n    {\n      \"name\": \"Kaonminus\"\n    },\n    {\n      \"name\": \"Kaonnull\"\n    },\n    {\n      \"name\": \"Kaonplus\"\n    },\n    {\n      \"name\": \"magnon\"\n    },\n    {\n      \"name\": \"maxwellDistrib\"\n    },\n    {\n      \"name\": \"metalbond\"\n    },\n    {\n      \"name\": \"method\"\n    },\n    {\n      \"name\": \"muon \"\n    },\n    {\n      \"name\": \"neutrino\"\n    },\n    {\n      \"name\": \"neutron\"\n    },\n    {\n      \"name\": \"nucleus\"\n    },\n    {\n      \"name\": \"orbit\"\n    },\n    {\n      \"name\": \"phimeson\"\n    },\n    {\n      \"name\": \"phimesonnull\"\n    },\n    {\n      \"name\": \"phonon\"\n    },\n    {\n      \"name\": \"pionminus\"\n    },\n    {\n      \"name\": \"pionnull\"\n    },\n    {\n      \"name\": \"pionplus\"\n    },\n    {\n      \"name\": \"plasmon\"\n    },\n    {\n      \"name\": \"polariton\"\n    },\n    {\n      \"name\": \"polaron\"\n    },\n    {\n      \"name\": \"positron\"\n    },\n    {\n      \"name\": \"protein\"\n    },\n    {\n      \"name\": \"proton\"\n    },\n    {\n      \"name\": \"quadrupole\"\n    },\n    {\n      \"name\": \"quark\"\n    },\n    {\n      \"name\": \"quarkb\"\n    },\n    {\n      \"name\": \"quarkc\"\n    },\n    {\n      \"name\": \"quarkd\"\n    },\n    {\n      \"name\": \"quarks\"\n    },\n    {\n      \"name\": \"quarkt\"\n    },\n    {\n      \"name\": \"quarku\"\n    },\n    {\n      \"name\": \"reference\"\n    },\n    {\n      \"name\": \"resistivity\"\n    },\n    {\n      \"name\": \"rhomesonminus\"\n    },\n    {\n      \"name\": \"rhomesonnull\"\n    },\n    {\n      \"name\": \"rhomesonplus\"\n    },\n    {\n      \"name\": \"solid\"\n    },\n    {\n      \"name\": \"spin\"\n    },\n    {\n      \"name\": \"spindown\"\n    },\n    {\n      \"name\": \"spinup\"\n    },\n    {\n      \"name\": \"surface\"\n    },\n    {\n      \"name\": \"svrexample\"\n    },\n    {\n      \"name\": \"svrphoton\"\n    },\n    {\n      \"name\": \"tachyon\"\n    },\n    {\n      \"name\": \"tauleptonminus\"\n    },\n    {\n      \"name\": \"tauleptonplus\"\n    },\n    {\n      \"name\": \"Tmesonminus\"\n    },\n    {\n      \"name\": \"Tmesonnull\"\n    },\n    {\n      \"name\": \"Tmesonplus\"\n    },\n    {\n      \"name\": \"triplecovbond\"\n    },\n    {\n      \"name\": \"Upsilonmeson\"\n    },\n    {\n      \"name\": \"varphoton\"\n    },\n    {\n      \"name\": \"water\"\n    },\n    {\n      \"name\": \"Wboson\"\n    },\n    {\n      \"name\": \"Wbosonminus\"\n    },\n    {\n      \"name\": \"Wbosonplus\"\n    },\n    {\n      \"name\": \"Zboson\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/swfigure.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"afterpage\"\n    },\n    {\n      \"name\": \"wrapfig2\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DFimage[${3:mode}]{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"DFimage[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"DFimage[${3:mode}]{${1:imagefile}}{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"DFimage[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]()<>\",\n        \"snippet\": \"DFimage[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}[${5:label}](${7:height coor})<${6:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"cleartoeven\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cleartoeven{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cleartopage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CompStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CompStrings{${1:string1}}{${2:string2}}\"\n      }\n    },\n    {\n      \"name\": \"DFcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DFcaption[${2:lof entry%text}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DFcaption[${2:lof entry%text}]{${1:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DFcaption{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DFcaption{${1:caption%text}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFcaptionP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DFcaptionP[${2:lof entry%text}]{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFcaptionP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DFcaptionP[${2:lof entry%text}]{${1:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFcaptionP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DFcaptionP{${1:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFcaptionP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DFcaptionP{${1:caption%text}}[${2:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFhalfheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DFhalfwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DFheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DFheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DFscalefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DFwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DisplayModeList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"externalmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FigSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fptest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"fptest{${1:test}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"FScaptionShift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"FSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"FSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"FSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"FSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"FSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"FSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FSfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"FSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"FSfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"HSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"HSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"HSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"HSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"HSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"HSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"HSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"HSfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"HSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"HSfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"internalmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"NFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"NFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"NFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"NFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"NFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NFfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"NFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"NFfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"RFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"RFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"RFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"RFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"RFfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"RFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RFfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"RFfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"RFfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"RFx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RFy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetList{${1:cmd}}{${2:item1,item2,...}}\"\n      }\n    },\n    {\n      \"name\": \"spreadwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SWcaptionShift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"SWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"SWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"SWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"SWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"SWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"SWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SWfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"SWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"SWfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"TestList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TestList{${1:list}}{${2:string}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"THfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"THfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"THfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"THfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"THfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"THfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"THfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"THfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"THfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"THfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"TScaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"TWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"TWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"TWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"TWfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"TWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TWfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"TWfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"TWfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"VSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"VSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"VSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"VSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"VSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]()<>\",\n        \"snippet\": \"VSfigure{${1:imagefile}}[${3:lof entry%text}]{${2:caption%text}}[${4:label}](${6:height coor})<${5:line corr}>\"\n      }\n    },\n    {\n      \"name\": \"VSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VSfigure{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"VSfigure\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"VSfigure{${1:imagefile}}{${2:caption%text}}[${3:label}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:mode}]{${1:imagefile}}{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"[${3:mode}]{${1:imagefile}}{${2:caption%text}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}[${5:label}]\"\n      }\n    },\n    {\n      \"name\": \"DFimage\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]()<>\",\n        \"snippet\": \"[${3:mode}]{${1:imagefile}}[${4:lof entry%text}]{${2:caption%text}}[${5:label}](${7:height coor})<${6:line corr}>\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/swungdash.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"accsupp\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"swungdash\"\n    },\n    {\n      \"name\": \"thetilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twiddle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/symbats3.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"symbats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"admetos\"\n    },\n    {\n      \"name\": \"admetos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"admetos[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"aegishjalmur\"\n    },\n    {\n      \"name\": \"aegishjalmur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aegishjalmur[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"airelement\"\n    },\n    {\n      \"name\": \"airelement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"airelement[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"angleacute\"\n    },\n    {\n      \"name\": \"angleacute\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"angleacute[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"ankh\"\n    },\n    {\n      \"name\": \"ankh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ankh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"apollon\"\n    },\n    {\n      \"name\": \"apollon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"apollon[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"aquarius\"\n    },\n    {\n      \"name\": \"aquarius\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aquarius[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"aries\"\n    },\n    {\n      \"name\": \"aries\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"aries[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"ascendingnode\"\n    },\n    {\n      \"name\": \"ascendingnode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ascendingnode[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"astraea\"\n    },\n    {\n      \"name\": \"astraea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"astraea[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"athameeast\"\n    },\n    {\n      \"name\": \"athameeast\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"athameeast[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"athamenorth\"\n    },\n    {\n      \"name\": \"athamenorth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"athamenorth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"athamesouth\"\n    },\n    {\n      \"name\": \"athamesouth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"athamesouth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"athamewest\"\n    },\n    {\n      \"name\": \"athamewest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"athamewest[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"awen\"\n    },\n    {\n      \"name\": \"awen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"awen[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"beltane\"\n    },\n    {\n      \"name\": \"beltane\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"beltane[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"blackdiamondoncross\"\n    },\n    {\n      \"name\": \"blackdiamondoncross\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blackdiamondoncross[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"blackmoonlilith\"\n    },\n    {\n      \"name\": \"blackmoonlilith\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blackmoonlilith[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"cancer\"\n    },\n    {\n      \"name\": \"cancer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cancer[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"capricorn\"\n    },\n    {\n      \"name\": \"capricorn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"capricorn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"celtictrefoilknotopen\"\n    },\n    {\n      \"name\": \"celtictrefoilknotopen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"celtictrefoilknotopen[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"celtictrefoilknotsolid\"\n    },\n    {\n      \"name\": \"celtictrefoilknotsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"celtictrefoilknotsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"ceres\"\n    },\n    {\n      \"name\": \"ceres\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ceres[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"chiron\"\n    },\n    {\n      \"name\": \"chiron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chiron[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"circleplus\"\n    },\n    {\n      \"name\": \"circleplus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"circleplus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"conjunction\"\n    },\n    {\n      \"name\": \"conjunction\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"conjunction[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"crossedstaff\"\n    },\n    {\n      \"name\": \"crossedstaff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crossedstaff[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"cupido\"\n    },\n    {\n      \"name\": \"cupido\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cupido[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"descendingnode\"\n    },\n    {\n      \"name\": \"descendingnode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"descendingnode[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"doubledfemale\"\n    },\n    {\n      \"name\": \"doubledfemale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"doubledfemale[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"doubledmale\"\n    },\n    {\n      \"name\": \"doubledmale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"doubledmale[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"dupsun\"\n    },\n    {\n      \"name\": \"dupsun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dupsun[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"dupsunfourspokes\"\n    },\n    {\n      \"name\": \"dupsunfourspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dupsunfourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"earthelement\"\n    },\n    {\n      \"name\": \"earthelement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"earthelement[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"earth\"\n    },\n    {\n      \"name\": \"earth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"earth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"eightsabbats\"\n    },\n    {\n      \"name\": \"eightsabbats\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eightsabbats[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"eostre\"\n    },\n    {\n      \"name\": \"eostre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eostre[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"female\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"female[${1:vskip%l}]\"\n      },\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"fireelement\"\n    },\n    {\n      \"name\": \"fireelement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fireelement[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"fylfotilkley\"\n    },\n    {\n      \"name\": \"fylfotilkley\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fylfotilkley[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"gemini\"\n    },\n    {\n      \"name\": \"gemini\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gemini[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"goddessasmoon\"\n    },\n    {\n      \"name\": \"goddessasmoon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"goddessasmoon[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"hades\"\n    },\n    {\n      \"name\": \"hades\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hades[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"hammer\"\n    },\n    {\n      \"name\": \"hammer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hammer[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"horizontalmalewithstroke\"\n    },\n    {\n      \"name\": \"horizontalmalewithstroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"horizontalmalewithstroke[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"hygiea\"\n    },\n    {\n      \"name\": \"hygiea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hygiea[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"imbolc\"\n    },\n    {\n      \"name\": \"imbolc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"imbolc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"interlockedmalefemale\"\n    },\n    {\n      \"name\": \"interlockedmalefemale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"interlockedmalefemale[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"juno\"\n    },\n    {\n      \"name\": \"juno\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"juno[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"jupiter\"\n    },\n    {\n      \"name\": \"jupiter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"jupiter[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"kronos\"\n    },\n    {\n      \"name\": \"kronos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kronos[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"labrys\"\n    },\n    {\n      \"name\": \"labrys\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"labrys[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"leo\"\n    },\n    {\n      \"name\": \"leo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"leo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"libra\"\n    },\n    {\n      \"name\": \"libra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"libra[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"lightning\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lightning[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"lughnasadh\"\n    },\n    {\n      \"name\": \"lughnasadh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lughnasadh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"male\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"male[${1:vskip%l}]\"\n      },\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"maleandfemale\"\n    },\n    {\n      \"name\": \"maleandfemale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maleandfemale[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"malewithstroke\"\n    },\n    {\n      \"name\": \"malewithstroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"malewithstroke[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"malewithstrokemalefemale\"\n    },\n    {\n      \"name\": \"malewithstrokemalefemale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"malewithstrokemalefemale[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"mars\"\n    },\n    {\n      \"name\": \"mars\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mars[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"mazeround\"\n    },\n    {\n      \"name\": \"mazeround\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mazeround[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"mazesquarebase\"\n    },\n    {\n      \"name\": \"mazesquarebase\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mazesquarebase[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"mercury\"\n    },\n    {\n      \"name\": \"mercury\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mercury[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonfirstquarteroutline\"\n    },\n    {\n      \"name\": \"moonfirstquarteroutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonfirstquarteroutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonfirstquartersolid\"\n    },\n    {\n      \"name\": \"moonfirstquartersolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonfirstquartersolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonfull\"\n    },\n    {\n      \"name\": \"moonfull\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonfull[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonlastquarteroutline\"\n    },\n    {\n      \"name\": \"moonlastquarteroutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonlastquarteroutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonlastquartersolid\"\n    },\n    {\n      \"name\": \"moonlastquartersolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonlastquartersolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonnew\"\n    },\n    {\n      \"name\": \"moonnew\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonnew[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaningoutline\"\n    },\n    {\n      \"name\": \"moonwaningoutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaningoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaningsolid\"\n    },\n    {\n      \"name\": \"moonwaningsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaningsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaxfullwaneoutline\"\n    },\n    {\n      \"name\": \"moonwaxfullwaneoutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaxfullwaneoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaxfullwanesolid\"\n    },\n    {\n      \"name\": \"moonwaxfullwanesolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaxfullwanesolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaxingoutline\"\n    },\n    {\n      \"name\": \"moonwaxingoutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaxingoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"moonwaxingsolid\"\n    },\n    {\n      \"name\": \"moonwaxingsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moonwaxingsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"neptuneformtwo\"\n    },\n    {\n      \"name\": \"neptuneformtwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neptuneformtwo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"neptune\"\n    },\n    {\n      \"name\": \"neptune\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neptune[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"nessus\"\n    },\n    {\n      \"name\": \"nessus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nessus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"neuter\",\n      \"detail\": \"⚲\",\n      \"doc\": \"Neuter\"\n    },\n    {\n      \"name\": \"neuter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"neuter[${1:vskip%l}]\"\n      },\n      \"detail\": \"⚲\",\n      \"doc\": \"Neuter\"\n    },\n    {\n      \"name\": \"octile\"\n    },\n    {\n      \"name\": \"octile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"octile[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGailm\"\n    },\n    {\n      \"name\": \"OGailm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGailm[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGbeith\"\n    },\n    {\n      \"name\": \"OGbeith\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGbeith[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGceirt\"\n    },\n    {\n      \"name\": \"OGceirt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGceirt[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGcoll\"\n    },\n    {\n      \"name\": \"OGcoll\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGcoll[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGdair\"\n    },\n    {\n      \"name\": \"OGdair\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGdair[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGeabhadh\"\n    },\n    {\n      \"name\": \"OGeabhadh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGeabhadh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGeadhadh\"\n    },\n    {\n      \"name\": \"OGeadhadh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGeadhadh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGeamhancholl\"\n    },\n    {\n      \"name\": \"OGeamhancholl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGeamhancholl[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGfearn\"\n    },\n    {\n      \"name\": \"OGfearn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGfearn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGfeather\"\n    },\n    {\n      \"name\": \"OGfeather\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGfeather[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGgort\"\n    },\n    {\n      \"name\": \"OGgort\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGgort[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGifin\"\n    },\n    {\n      \"name\": \"OGifin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGifin[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGiodhadh\"\n    },\n    {\n      \"name\": \"OGiodhadh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGiodhadh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGluis\"\n    },\n    {\n      \"name\": \"OGluis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGluis[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGmuin\"\n    },\n    {\n      \"name\": \"OGmuin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGmuin[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGngeadal\"\n    },\n    {\n      \"name\": \"OGngeadal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGngeadal[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGnion\"\n    },\n    {\n      \"name\": \"OGnion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGnion[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGonn\"\n    },\n    {\n      \"name\": \"OGonn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGonn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGor\"\n    },\n    {\n      \"name\": \"OGor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGor[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGpeith\"\n    },\n    {\n      \"name\": \"OGpeith\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGpeith[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGreversedfeather\"\n    },\n    {\n      \"name\": \"OGreversedfeather\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGreversedfeather[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGruis\"\n    },\n    {\n      \"name\": \"OGruis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGruis[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGsail\"\n    },\n    {\n      \"name\": \"OGsail\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGsail[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGstraif\"\n    },\n    {\n      \"name\": \"OGstraif\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGstraif[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGtinne\"\n    },\n    {\n      \"name\": \"OGtinne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGtinne[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGuath\"\n    },\n    {\n      \"name\": \"OGuath\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGuath[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGuilleann\"\n    },\n    {\n      \"name\": \"OGuilleann\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGuilleann[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"OGur\"\n    },\n    {\n      \"name\": \"OGur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"OGur[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldankh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldankh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldankh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldaquarius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldaquarius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldaquarius[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldaries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldaries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldaries[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldascendingnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldascendingnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldascendingnode[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldcancer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldcancer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldcancer[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldcapricorn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldcapricorn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldcapricorn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldceres\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldceres\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldceres[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldconjunction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldconjunction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldconjunction[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"olddescendingnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olddescendingnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"olddescendingnode[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldearth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldearth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldearth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldgemini\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldgemini\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldgemini[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldjupiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldjupiter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldjupiter[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldleo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldleo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldleo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldlibra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldlibra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldlibra[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldmercury\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldmercury\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldmercury[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldmoonwaningoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldmoonwaningoutline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldmoonwaningoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldmoonwaxingoutline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldmoonwaxingoutline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldmoonwaxingoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldneptune\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldneptune\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldneptune[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldopposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldopposition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldopposition[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagramintL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagramintL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagramintL[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagramintRsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagramintRsolid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagramintRsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagramintR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagramintR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagramintR[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagraminvsolid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagraminvsolid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagraminvsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagraminv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagraminv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagraminv[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpentagram\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpentagram\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpentagram[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpisces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpisces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpisces[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldpluto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldpluto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldpluto[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldsaggitarius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsaggitarius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldsaggitarius[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldsaturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsaturn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldsaturn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldsextile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsextile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldsextile[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldsquare\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsquare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldsquare[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldsuncoronafourspokes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldsuncoronafourspokes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldsuncoronafourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldtaurus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldtaurus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldtaurus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"olduranus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"olduranus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"olduranus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"oldvirgo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oldvirgo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oldvirgo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"opposition\"\n    },\n    {\n      \"name\": \"opposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"opposition[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pallas\"\n    },\n    {\n      \"name\": \"pallas\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pallas[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"parting\"\n    },\n    {\n      \"name\": \"parting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"parting[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramcircled\"\n    },\n    {\n      \"name\": \"pentagramcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintLcircled\"\n    },\n    {\n      \"name\": \"pentagramintLcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintLcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintL\"\n    },\n    {\n      \"name\": \"pentagramintL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintL[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintR\"\n    },\n    {\n      \"name\": \"pentagramintR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintR[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintRcircled\"\n    },\n    {\n      \"name\": \"pentagramintRcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintRcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintRsolid\"\n    },\n    {\n      \"name\": \"pentagramintRsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintRsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramintRtriangle\"\n    },\n    {\n      \"name\": \"pentagramintRtriangle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramintRtriangle[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvcircled\"\n    },\n    {\n      \"name\": \"pentagraminvcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvintLcircled\"\n    },\n    {\n      \"name\": \"pentagraminvintLcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvintLcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvintL\"\n    },\n    {\n      \"name\": \"pentagraminvintL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvintL[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvintRcircled\"\n    },\n    {\n      \"name\": \"pentagraminvintRcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvintRcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvintRsolid\"\n    },\n    {\n      \"name\": \"pentagraminvintRsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvintRsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvintR\"\n    },\n    {\n      \"name\": \"pentagraminvintR\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvintR[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminvsolid\"\n    },\n    {\n      \"name\": \"pentagraminvsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminvsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagraminv\"\n    },\n    {\n      \"name\": \"pentagraminv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagraminv[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramrough\"\n    },\n    {\n      \"name\": \"pentagramrough\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramrough[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramroughcircled\"\n    },\n    {\n      \"name\": \"pentagramroughcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramroughcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramroughinv\"\n    },\n    {\n      \"name\": \"pentagramroughinv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramroughinv[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramroughinvcircled\"\n    },\n    {\n      \"name\": \"pentagramroughinvcircled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramroughinvcircled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramroughinvsolid\"\n    },\n    {\n      \"name\": \"pentagramroughinvsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramroughinvsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramroughsolid\"\n    },\n    {\n      \"name\": \"pentagramroughsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramroughsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramsolid\"\n    },\n    {\n      \"name\": \"pentagramsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagram\"\n    },\n    {\n      \"name\": \"pentagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagram[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pentagramwithtriangle\"\n    },\n    {\n      \"name\": \"pentagramwithtriangle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pentagramwithtriangle[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"perfectcouple\"\n    },\n    {\n      \"name\": \"perfectcouple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"perfectcouple[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"perfectcouplethirddegree\"\n    },\n    {\n      \"name\": \"perfectcouplethirddegree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"perfectcouplethirddegree[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pholus\"\n    },\n    {\n      \"name\": \"pholus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pholus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pisces\"\n    },\n    {\n      \"name\": \"pisces\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pisces[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"plutoformfive\"\n    },\n    {\n      \"name\": \"plutoformfive\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"plutoformfive[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"plutoformfour\"\n    },\n    {\n      \"name\": \"plutoformfour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"plutoformfour[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"plutoformthree\"\n    },\n    {\n      \"name\": \"plutoformthree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"plutoformthree[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"plutoformtwo\"\n    },\n    {\n      \"name\": \"plutoformtwo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"plutoformtwo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"pluto\"\n    },\n    {\n      \"name\": \"pluto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pluto[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"poseidon\"\n    },\n    {\n      \"name\": \"poseidon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"poseidon[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"powergoingforth\"\n    },\n    {\n      \"name\": \"powergoingforth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"powergoingforth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"prescription\"\n    },\n    {\n      \"name\": \"prescription\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"prescription[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"proserpina\"\n    },\n    {\n      \"name\": \"proserpina\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"proserpina[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"quincunx\"\n    },\n    {\n      \"name\": \"quincunx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"quincunx[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"recipe\"\n    },\n    {\n      \"name\": \"recipe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"recipe[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"rockartgoddess\"\n    },\n    {\n      \"name\": \"rockartgoddess\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rockartgoddess[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"rockarthorse\"\n    },\n    {\n      \"name\": \"rockarthorse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rockarthorse[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUaca\"\n    },\n    {\n      \"name\": \"RUaca\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUaca[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUaesc\"\n    },\n    {\n      \"name\": \"RUaesc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUaesc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUalgizeolhx\"\n    },\n    {\n      \"name\": \"RUalgizeolhx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUalgizeolhx[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUansuza\"\n    },\n    {\n      \"name\": \"RUansuza\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUansuza[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUarlaugsymbol\"\n    },\n    {\n      \"name\": \"RUarlaugsymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUarlaugsymbol[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUbelgthorsymbol\"\n    },\n    {\n      \"name\": \"RUbelgthorsymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUbelgthorsymbol[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUberkananbeorcbjarkanb\"\n    },\n    {\n      \"name\": \"RUberkananbeorcbjarkanb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUberkananbeorcbjarkanb[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUc\"\n    },\n    {\n      \"name\": \"RUc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUcalc\"\n    },\n    {\n      \"name\": \"RUcalc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUcalc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUcealc\"\n    },\n    {\n      \"name\": \"RUcealc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUcealc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUcen\"\n    },\n    {\n      \"name\": \"RUcen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUcen[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUcrosspunctuation\"\n    },\n    {\n      \"name\": \"RUcrosspunctuation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUcrosspunctuation[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUcweorth\"\n    },\n    {\n      \"name\": \"RUcweorth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUcweorth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUd\"\n    },\n    {\n      \"name\": \"RUd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUd[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUdagazdaegd\"\n    },\n    {\n      \"name\": \"RUdagazdaegd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUdagazdaegd[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUdottedl\"\n    },\n    {\n      \"name\": \"RUdottedl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUdottedl[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUdottedn\"\n    },\n    {\n      \"name\": \"RUdottedn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUdottedn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUdottedp\"\n    },\n    {\n      \"name\": \"RUdottedp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUdottedp[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUe\"\n    },\n    {\n      \"name\": \"RUe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUe[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUear\"\n    },\n    {\n      \"name\": \"RUear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUear[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUehwazehe\"\n    },\n    {\n      \"name\": \"RUehwazehe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUehwazehe[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUeng\"\n    },\n    {\n      \"name\": \"RUeng\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUeng[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUeth\"\n    },\n    {\n      \"name\": \"RUeth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUeth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfehufeohfef\"\n    },\n    {\n      \"name\": \"RUfehufeohfef\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfehufeohfef[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfrankscasketac\"\n    },\n    {\n      \"name\": \"RUfrankscasketac\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfrankscasketac[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfrankscasketaesc\"\n    },\n    {\n      \"name\": \"RUfrankscasketaesc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfrankscasketaesc[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfrankscasketeh\"\n    },\n    {\n      \"name\": \"RUfrankscasketeh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfrankscasketeh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfrankscasketis\"\n    },\n    {\n      \"name\": \"RUfrankscasketis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfrankscasketis[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUfrankscasketos\"\n    },\n    {\n      \"name\": \"RUfrankscasketos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUfrankscasketos[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUg\"\n    },\n    {\n      \"name\": \"RUg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUg[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUgar\"\n    },\n    {\n      \"name\": \"RUgar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUgar[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUgebogyfug\"\n    },\n    {\n      \"name\": \"RUgebogyfug\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUgebogyfug[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUger\"\n    },\n    {\n      \"name\": \"RUger\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUger[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUhaeglh\"\n    },\n    {\n      \"name\": \"RUhaeglh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUhaeglh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUhaglazh\"\n    },\n    {\n      \"name\": \"RUhaglazh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUhaglazh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUicelandicyr\"\n    },\n    {\n      \"name\": \"RUicelandicyr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUicelandicyr[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUing\"\n    },\n    {\n      \"name\": \"RUing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUing[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUingwaz\"\n    },\n    {\n      \"name\": \"RUingwaz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUingwaz[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUior\"\n    },\n    {\n      \"name\": \"RUior\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUior[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUisazisissi\"\n    },\n    {\n      \"name\": \"RUisazisissi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUisazisissi[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUiwazeoh\"\n    },\n    {\n      \"name\": \"RUiwazeoh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUiwazeoh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUjeranj\"\n    },\n    {\n      \"name\": \"RUjeranj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUjeranj[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUk\"\n    },\n    {\n      \"name\": \"RUk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUk[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUkauna\"\n    },\n    {\n      \"name\": \"RUkauna\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUkauna[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUkaunk\"\n    },\n    {\n      \"name\": \"RUkaunk\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUkaunk[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlaukazlagulogrl\"\n    },\n    {\n      \"name\": \"RUlaukazlagulogrl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlaukazlagulogrl[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlongbrancharae\"\n    },\n    {\n      \"name\": \"RUlongbrancharae\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlongbrancharae[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlongbranchhagallh\"\n    },\n    {\n      \"name\": \"RUlongbranchhagallh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlongbranchhagallh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlongbranchmadrm\"\n    },\n    {\n      \"name\": \"RUlongbranchmadrm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlongbranchmadrm[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlongbranchosso\"\n    },\n    {\n      \"name\": \"RUlongbranchosso\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlongbranchosso[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUlongbranchyr\"\n    },\n    {\n      \"name\": \"RUlongbranchyr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUlongbranchyr[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUmannazmanm\"\n    },\n    {\n      \"name\": \"RUmannazmanm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUmannazmanm[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUmultiplepunctuation\"\n    },\n    {\n      \"name\": \"RUmultiplepunctuation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUmultiplepunctuation[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUnaudiznydnaudn\"\n    },\n    {\n      \"name\": \"RUnaudiznydnaudn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUnaudiznydnaudn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUo\"\n    },\n    {\n      \"name\": \"RUo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUoe\"\n    },\n    {\n      \"name\": \"RUoe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUoe[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUon\"\n    },\n    {\n      \"name\": \"RUon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUon[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUoo\"\n    },\n    {\n      \"name\": \"RUoo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUoo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUopenp\"\n    },\n    {\n      \"name\": \"RUopenp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUopenp[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUoso\"\n    },\n    {\n      \"name\": \"RUoso\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUoso[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUothalanethelo\"\n    },\n    {\n      \"name\": \"RUothalanethelo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUothalanethelo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUperthopeorthp\"\n    },\n    {\n      \"name\": \"RUperthopeorthp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUperthopeorthp[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUq\"\n    },\n    {\n      \"name\": \"RUq\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUq[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUraidoradreidr\"\n    },\n    {\n      \"name\": \"RUraidoradreidr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUraidoradreidr[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUsh\"\n    },\n    {\n      \"name\": \"RUsh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUsh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigara\"\n    },\n    {\n      \"name\": \"RUshorttwigara\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigara[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigbjarkanb\"\n    },\n    {\n      \"name\": \"RUshorttwigbjarkanb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigbjarkanb[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwighagallh\"\n    },\n    {\n      \"name\": \"RUshorttwighagallh\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwighagallh[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigmadrm\"\n    },\n    {\n      \"name\": \"RUshorttwigmadrm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigmadrm[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwignaudn\"\n    },\n    {\n      \"name\": \"RUshorttwignaudn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwignaudn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigosso\"\n    },\n    {\n      \"name\": \"RUshorttwigosso\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigosso[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigsols\"\n    },\n    {\n      \"name\": \"RUshorttwigsols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigsols[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigtyrt\"\n    },\n    {\n      \"name\": \"RUshorttwigtyrt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigtyrt[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUshorttwigyr\"\n    },\n    {\n      \"name\": \"RUshorttwigyr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUshorttwigyr[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUsigellongbranchsols\"\n    },\n    {\n      \"name\": \"RUsigellongbranchsols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUsigellongbranchsols[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUsinglepunctuation\"\n    },\n    {\n      \"name\": \"RUsinglepunctuation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUsinglepunctuation[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUsowilos\"\n    },\n    {\n      \"name\": \"RUsowilos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUsowilos[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUstan\"\n    },\n    {\n      \"name\": \"RUstan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUstan[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUthurisazthursthorn\"\n    },\n    {\n      \"name\": \"RUthurisazthursthorn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUthurisazthursthorn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUtiwaztirtyrt\"\n    },\n    {\n      \"name\": \"RUtiwaztirtyrt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUtiwaztirtyrt[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUtvimadursymbol\"\n    },\n    {\n      \"name\": \"RUtvimadursymbol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUtvimadursymbol[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUuruzuru\"\n    },\n    {\n      \"name\": \"RUuruzuru\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUuruzuru[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUv\"\n    },\n    {\n      \"name\": \"RUv\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUv[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUw\"\n    },\n    {\n      \"name\": \"RUw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUw[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUwunjowynnw\"\n    },\n    {\n      \"name\": \"RUwunjowynnw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUwunjowynnw[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUx\"\n    },\n    {\n      \"name\": \"RUx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUx[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUy\"\n    },\n    {\n      \"name\": \"RUy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUy[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUyr\"\n    },\n    {\n      \"name\": \"RUyr\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUyr[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"RUz\"\n    },\n    {\n      \"name\": \"RUz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RUz[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"saggitarius\"\n    },\n    {\n      \"name\": \"saggitarius\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"saggitarius[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"salute\"\n    },\n    {\n      \"name\": \"salute\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"salute[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"samhuinn\"\n    },\n    {\n      \"name\": \"samhuinn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"samhuinn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"saturn\"\n    },\n    {\n      \"name\": \"saturn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"saturn[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"scorpio\"\n    },\n    {\n      \"name\": \"scorpio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scorpio[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"scorpius\"\n    },\n    {\n      \"name\": \"scorpius\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scorpius[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"scourge\"\n    },\n    {\n      \"name\": \"scourge\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scourge[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"selena\"\n    },\n    {\n      \"name\": \"selena\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"selena[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"semisextile\"\n    },\n    {\n      \"name\": \"semisextile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"semisextile[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"serpentimpaled\"\n    },\n    {\n      \"name\": \"serpentimpaled\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"serpentimpaled[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sesquiquadrate\"\n    },\n    {\n      \"name\": \"sesquiquadrate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sesquiquadrate[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sextile\"\n    },\n    {\n      \"name\": \"sextile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sextile[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"square\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"square[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"stareightarrows\"\n    },\n    {\n      \"name\": \"stareightarrows\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stareightarrows[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sulphur\"\n    },\n    {\n      \"name\": \"sulphur\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sulphur[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"sun\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sun[${1:vskip%l}]\"\n      },\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"suncoronafourspokes\"\n    },\n    {\n      \"name\": \"suncoronafourspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suncoronafourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"suncoronahubfourspokes\"\n    },\n    {\n      \"name\": \"suncoronahubfourspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suncoronahubfourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"suncoronasixspokes\"\n    },\n    {\n      \"name\": \"suncoronasixspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suncoronasixspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"suneightspokes\"\n    },\n    {\n      \"name\": \"suneightspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suneightspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunfourdoublespokes\"\n    },\n    {\n      \"name\": \"sunfourdoublespokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunfourdoublespokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunfourspokes\"\n    },\n    {\n      \"name\": \"sunfourspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunfourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunrays\"\n    },\n    {\n      \"name\": \"sunrays\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunrays[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunthreedoublespokes\"\n    },\n    {\n      \"name\": \"sunthreedoublespokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunthreedoublespokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunwithrays\"\n    },\n    {\n      \"name\": \"sunwithrays\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunwithrays[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"sunwithraysfourspokes\"\n    },\n    {\n      \"name\": \"sunwithraysfourspokes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sunwithraysfourspokes[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"taurus\"\n    },\n    {\n      \"name\": \"taurus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"taurus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"transpluto\"\n    },\n    {\n      \"name\": \"transpluto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transpluto[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"truelightmoonarta\"\n    },\n    {\n      \"name\": \"truelightmoonarta\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"truelightmoonarta[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"uranus\"\n    },\n    {\n      \"name\": \"uranus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uranus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"valknutoutline\"\n    },\n    {\n      \"name\": \"valknutoutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"valknutoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"valknutsolid\"\n    },\n    {\n      \"name\": \"valknutsolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"valknutsolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"vargemini\"\n    },\n    {\n      \"name\": \"vargemini\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vargemini[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"varuranus\"\n    },\n    {\n      \"name\": \"varuranus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"varuranus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"venus\"\n    },\n    {\n      \"name\": \"venus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"venus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"venusfigureoutline\"\n    },\n    {\n      \"name\": \"venusfigureoutline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"venusfigureoutline[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"venusfiguresolid\"\n    },\n    {\n      \"name\": \"venusfiguresolid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"venusfiguresolid[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"verticalmalewithstroke\"\n    },\n    {\n      \"name\": \"verticalmalewithstroke\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verticalmalewithstroke[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"vesta\"\n    },\n    {\n      \"name\": \"vesta\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vesta[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"virgo\"\n    },\n    {\n      \"name\": \"virgo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"virgo[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"vulcanus\"\n    },\n    {\n      \"name\": \"vulcanus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vulcanus[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"waterelement\"\n    },\n    {\n      \"name\": \"waterelement\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"waterelement[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"whiteknifeeast\"\n    },\n    {\n      \"name\": \"whiteknifeeast\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whiteknifeeast[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"whiteknifenorth\"\n    },\n    {\n      \"name\": \"whiteknifenorth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whiteknifenorth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"whiteknifesouth\"\n    },\n    {\n      \"name\": \"whiteknifesouth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whiteknifesouth[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"whiteknifewest\"\n    },\n    {\n      \"name\": \"whiteknifewest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"whiteknifewest[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"yule\"\n    },\n    {\n      \"name\": \"yule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"yule[${1:vskip%l}]\"\n      }\n    },\n    {\n      \"name\": \"zeus\"\n    },\n    {\n      \"name\": \"zeus\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zeus[${1:vskip%l}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/symbats3#c\": [\n      \"descenders\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/symbats3#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/symbolpalette.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"macrolist\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newsuitetheme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsuitetheme{${1:theme}}\"\n      }\n    },\n    {\n      \"name\": \"addsymboltotheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addsymboltotheme{${1:theme}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"newsuite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newsuite{${1:theme}}{${2:suite}}\"\n      }\n    },\n    {\n      \"name\": \"setsuitesymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setsuitesymbol{${1:theme}}{${2:suite}}{${3:symbol}}{${4:icon}}\"\n      }\n    },\n    {\n      \"name\": \"activesuite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"activesuite{${1:theme}}{${2:suite}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printsymbol{${1:theme}}{${2:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/sympytex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"makecmds\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sympy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympy{${1:Sympy code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"sympyplot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sympyplot{${1:graphics obj, keyword args%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sympyplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sympyplot[${2:options%keyvals}]{${1:graphics obj, keyword args%definition}}\",\n        \"keys\": [\n          \"\\\\sympyplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sympyplot\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"sympyplot[${2:options%keyvals}][${3:fmt}]{${1:graphics obj, keyword args%definition}}\",\n        \"keys\": [\n          \"\\\\sympyplot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sympytexindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"sympyblock\"\n    },\n    {\n      \"name\": \"sympysilent\"\n    },\n    {\n      \"name\": \"sympyverbatim\"\n    },\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/sympytex#c\": [\n      \"imagemagick\"\n    ],\n    \"\\\\sympyplot\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/sympytex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/synproof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Exists\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"Forall\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"Neg\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"And\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"Or\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"Falsum\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"Implies\",\n      \"if\": \"symbols\"\n    },\n    {\n      \"name\": \"SetDim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDim{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetDim,\\\\begin{synproof}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"step{${1:expression}}{${2:rule}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"step{${1:expression}}{${2:rule}}[${3:label}]\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"step[${3:line number}]{${1:expression}}{${2:rule}}\"\n      }\n    },\n    {\n      \"name\": \"step\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"step[${3:line number}]{${1:expression}}{${2:rule}}[${4:label}]\"\n      }\n    },\n    {\n      \"name\": \"LineNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LineNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"assumption\"\n    },\n    {\n      \"name\": \"assumend\"\n    },\n    {\n      \"name\": \"AssumeLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExToRule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LineSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newctr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newctr{${1:counter name}}\"\n      }\n    },\n    {\n      \"name\": \"Num\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumToEx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OutLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ResetDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Start\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theembedding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theendassumption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theinfline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thestep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"synproof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:derivation length}}\"\n      }\n    },\n    {\n      \"name\": \"synproof\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:derivation length}}\",\n        \"keys\": [\n          \"\\\\SetDim,\\\\begin{synproof}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/synproof#c\": [\n      \"symbols\"\n    ],\n    \"\\\\SetDim,\\\\begin{synproof}\": [\n      \"NumToEx=${1:number}\",\n      \"ExToRule=${1:number}\",\n      \"OutLine=${1:number}\",\n      \"LineSpace=${1:number}\",\n      \"AssumeLine=${1:number}\",\n      \"HorAlign=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/synproof#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/syntax.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"shortverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortverb{${1:\\\\<${2:char}>}}\"\n      }\n    },\n    {\n      \"name\": \"unverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unverb{${1:\\\\<${2:char}>}}\"\n      }\n    },\n    {\n      \"name\": \"synt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"synt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lit*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lit*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"syntax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syntax{${1:syntax}}\"\n      }\n    },\n    {\n      \"name\": \"synshorts\"\n    },\n    {\n      \"name\": \"synshortsoff\"\n    },\n    {\n      \"name\": \"alt\"\n    },\n    {\n      \"name\": \"grammarparsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grammarindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grammarlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tok\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tok{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sdsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdlengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdstartspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdendspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdmidskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdtokskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdfinalskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sdcirclediam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syntleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"syntright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"litleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"litright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulitleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ulitright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"shortverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:\\\\<${2:char}>}}\"\n      }\n    },\n    {\n      \"name\": \"synshorts\"\n    },\n    {\n      \"name\": \"grammar\"\n    },\n    {\n      \"name\": \"syntdiag\"\n    },\n    {\n      \"name\": \"syntdiag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:commands}]\"\n      }\n    },\n    {\n      \"name\": \"syntdiag*\"\n    },\n    {\n      \"name\": \"syntdiag*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:commands}]\"\n      }\n    },\n    {\n      \"name\": \"stack\"\n    },\n    {\n      \"name\": \"rep\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/syntax#c\": [\n      \"rounded\",\n      \"square\",\n      \"nounderscore\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/syntax#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/syntaxdi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c\": [\n      \"syntaxdiagramm\"\n    ],\n    \"\\\\node#c\": [\n      \"fnonterminal\",\n      \"nonterminal\",\n      \"fterminal\",\n      \"terminal\",\n      \"point\",\n      \"endpoint\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/synthslant.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fontspec\"\n    },\n    {\n      \"name\": \"l3draw\",\n      \"if\": \"l3draw\"\n    },\n    {\n      \"name\": \"pst-3d\",\n      \"if\": \"ps\"\n    },\n    {\n      \"name\": \"pst-3d\",\n      \"if\": \"PS\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"TikZ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"synthslant\"\n    },\n    {\n      \"name\": \"synthnegslant\"\n    },\n    {\n      \"name\": \"textsynthslant\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsynthslant{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsynthuprightitalic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsynthuprightitalic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"synthslantbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"synthslantbox{${1:slant}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"slantcontext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"negslantcontext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"slantenvironment\"\n    },\n    {\n      \"name\": \"negslantenvironment\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/synthslant#c\": [\n      \"auto\",\n      \"disable\",\n      \"fontspec\",\n      \"l3draw\",\n      \"negslant=${1:slant-expr}\",\n      \"pdf\",\n      \"posslant=${1:slant-expr}\",\n      \"ps\",\n      \"slant=${1:slant-expr}\",\n      \"tikz\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/synthslant#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/syntonly.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"syntaxonly\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/systeme.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"systeme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"systeme{${1:eq1,eq2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"systeme\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"systeme[${2:alignment_chars%formula}]{${1:eq1,eq2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"syslineskipcoeff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syslineskipcoeff{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"sysdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sysdelim{${1:delim1%formula}}{${2:delim2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sysequivsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sysequivsign{${1:sign%formula}}{${2:substitution%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sysaddeqsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysaddeqsign{${1:sign%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sysremoveeqsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysremoveeqsign{${1:sign%formula}}\"\n      }\n    },\n    {\n      \"name\": \"syseqsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syseqsep{${1:character%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sysalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysalign{${1:l|${2:c}|${3:r,l}|${4:c}|r}}\"\n      }\n    },\n    {\n      \"name\": \"syssignspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syssignspace{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"syseqspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syseqspace{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"sysextracolsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysextracolsign{${1:sign%formula}}\"\n      }\n    },\n    {\n      \"name\": \"syscodeextracol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"syscodeextracol{${1:start code}}{${2:end code}}\"\n      }\n    },\n    {\n      \"name\": \"sysautonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysautonum{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"sysautonum*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysautonum*{${1:expression%formula}}\"\n      }\n    },\n    {\n      \"name\": \"SYSeqnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sysreseteqnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sysnosubstitute\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/t1enc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/t4phonet.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textcrd\"\n    },\n    {\n      \"name\": \"textcrh\"\n    },\n    {\n      \"name\": \"textdoublegrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublegrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublegrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublegrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublevbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublevbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublevbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublevbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textepsilon\"\n    },\n    {\n      \"name\": \"textesh\"\n    },\n    {\n      \"name\": \"textfjlig\"\n    },\n    {\n      \"name\": \"texthtb\"\n    },\n    {\n      \"name\": \"texthtc\"\n    },\n    {\n      \"name\": \"texthtd\"\n    },\n    {\n      \"name\": \"texthtd\"\n    },\n    {\n      \"name\": \"texthtk\"\n    },\n    {\n      \"name\": \"texthtp\"\n    },\n    {\n      \"name\": \"texthtt\"\n    },\n    {\n      \"name\": \"textiota\"\n    },\n    {\n      \"name\": \"textltailn\"\n    },\n    {\n      \"name\": \"textopeno\"\n    },\n    {\n      \"name\": \"textpipe\"\n    },\n    {\n      \"name\": \"textrtaild\"\n    },\n    {\n      \"name\": \"textrtailt\"\n    },\n    {\n      \"name\": \"textschwa\"\n    },\n    {\n      \"name\": \"textscriptv\"\n    },\n    {\n      \"name\": \"textteshlig\"\n    },\n    {\n      \"name\": \"textvbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textvbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textyogh\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabfigures.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"debug\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tabfigures#c\": [\n      \"debug\",\n      \"eqno\",\n      \"toc\",\n      \"enum\",\n      \"bib\",\n      \"lineno\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabfigures#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/table-fct.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"pstricks\"\n    },\n    {\n      \"name\": \"pstricks-add\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"colX{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"colND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colND{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"colNDV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colNDV{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"colV\"\n    },\n    {\n      \"name\": \"colC\"\n    },\n    {\n      \"name\": \"colD\"\n    },\n    {\n      \"name\": \"colCvx\"\n    },\n    {\n      \"name\": \"colCcv\"\n    },\n    {\n      \"name\": \"colIflx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colIflx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collX\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"collX{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"collX\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"collX[${4:\\\\Zro}]{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"Zro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"collNd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"collNd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"collNdv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"collNdv{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"collND\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collND{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collNDV\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collNDV{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collV\"\n    },\n    {\n      \"name\": \"collC\"\n    },\n    {\n      \"name\": \"collD\"\n    },\n    {\n      \"name\": \"collCvx\"\n    },\n    {\n      \"name\": \"collCcv\"\n    },\n    {\n      \"name\": \"collIflx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collIflx{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collCz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collCz{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collDz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collDz{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collCvxz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collCvxz{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"collCcvz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collCcvz{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Scal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TTpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colF{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"collF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"collF{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"linF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linnF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linnM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linnS\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{table-type1},\\\\begin{table-type2}\": [\n      \"Xunit=\",\n      \"Yunit=\",\n      \"Scal=${1:factor}\",\n      \"Bcolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tablefootnote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tablefootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefootnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablefootnote[${2:number}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swtablemakefntext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swtablemakefntext{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tableof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"toftagstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toftagstart{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"toftagstop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toftagstop{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"toftagthis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toftagthis{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tofuntagthis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tofuntagthis{${1:tag1,tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nexttocwithtags\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nexttocwithtags{${1:required-tag1,required-tag2,...}}{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nexttocwithtags*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nexttocwithtags*{${1:required-tag1,required-tag2,...}}{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nexttocwithtags\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"nexttocwithtags{${1:required-tag1,required-tag2,...}}*{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"nexttocwithtags*\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"nexttocwithtags*{${1:required-tag1,required-tag2,...}}*{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableoftaggedcontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tableoftaggedcontents{${1:required-tag1,required-tag2,...}}{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableoftaggedcontents*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tableoftaggedcontents*{${1:required-tag1,required-tag2,...}}{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableoftaggedcontents\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"tableoftaggedcontents{${1:required-tag1,required-tag2,...}}*{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableoftaggedcontents*\",\n      \"arg\": {\n        \"format\": \"{}*{}\",\n        \"snippet\": \"tableoftaggedcontents*{${1:required-tag1,required-tag2,...}}*{${2:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableof{${1:required-tag1,required-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tableof*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableof*{${1:required-tag1,required-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tablenotof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenotof{${1:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tablenotof*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenotof*{${1:excluded-tag1,excluded-tag2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tofOpenTocFileForWrite\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tablestyles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tablestyle\"\n    },\n    {\n      \"name\": \"tablestyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablestyle[${1:style%keyvals}]\",\n        \"keys\": [\n          \"\\\\tablestyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tbegin\"\n    },\n    {\n      \"name\": \"tend\"\n    },\n    {\n      \"name\": \"tbody\"\n    },\n    {\n      \"name\": \"theadstart\"\n    },\n    {\n      \"name\": \"tsubheadstart\"\n    },\n    {\n      \"name\": \"theadend\"\n    },\n    {\n      \"name\": \"tsubheadend\"\n    },\n    {\n      \"name\": \"thead\"\n    },\n    {\n      \"name\": \"tsubhead\"\n    },\n    {\n      \"name\": \"theadrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"theadrow{${1:number of cells}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsubheadrow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsubheadrow{${1:number of cells}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlinetop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlinemid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlinebottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setuptablefontsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setuptablefontsize{${1:name}}{${2:size definition}}\"\n      }\n    },\n    {\n      \"name\": \"tablefontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefontsize{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setuptablecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setuptablecolor{${1:color name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"tablecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tablealtcolored\"\n    },\n    {\n      \"name\": \"disablealternatecolors\"\n    },\n    {\n      \"name\": \"coloredhline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coloredhline{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"coloredvline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coloredvline{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setuptablestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setuptablestyle{${1:style name%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"resettablestyle\"\n    },\n    {\n      \"name\": \"tableitemize\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tablestyle\": [\n      \"default\",\n      \"roman\",\n      \"sansbold\",\n      \"sansboldbw\",\n      \"%tablestyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tablists.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makecell\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabenumitem\"\n    },\n    {\n      \"name\": \"notabenumitem\"\n    },\n    {\n      \"name\": \"noitem\"\n    },\n    {\n      \"name\": \"skipitem\"\n    },\n    {\n      \"name\": \"tabenumsep\"\n    },\n    {\n      \"name\": \"tabenumindent\"\n    },\n    {\n      \"name\": \"subtabenumitem\"\n    },\n    {\n      \"name\": \"subitem\"\n    },\n    {\n      \"name\": \"restorelistitem\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabenum\"\n    },\n    {\n      \"name\": \"tabenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:format}]\"\n      }\n    },\n    {\n      \"name\": \"subtabenum\"\n    },\n    {\n      \"name\": \"subtabenum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:format}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tablor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"initablor\"\n    },\n    {\n      \"name\": \"initablor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"initablor[${1:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"nettoyer\"\n    },\n    {\n      \"name\": \"nettoyer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nettoyer[${1:préfixe}]\"\n      }\n    },\n    {\n      \"name\": \"ech\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ech{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"tv\"\n    },\n    {\n      \"name\": \"tvbis\"\n    },\n    {\n      \"name\": \"coultab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coultab{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"dresse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dresse{${1:color}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"dressetoile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dressetoile{${1:color}}{${2:nom}}\"\n      }\n    },\n    {\n      \"name\": \"executGiacmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"executGiacmp{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"couleurtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echelle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"echof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomtravail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTVn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTVnbis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editeur\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"TV\"\n    },\n    {\n      \"name\": \"TSq\"\n    },\n    {\n      \"name\": \"TVS\"\n    },\n    {\n      \"name\": \"TVZ\"\n    },\n    {\n      \"name\": \"TVI\"\n    },\n    {\n      \"name\": \"TVIex\"\n    },\n    {\n      \"name\": \"TVapp\"\n    },\n    {\n      \"name\": \"TVIapp\"\n    },\n    {\n      \"name\": \"TVPC\"\n    },\n    {\n      \"name\": \"TVP\"\n    },\n    {\n      \"name\": \"TSa\"\n    },\n    {\n      \"name\": \"TS\"\n    },\n    {\n      \"name\": \"TSc\"\n    },\n    {\n      \"name\": \"TS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TV*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TSq*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVS*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVZ*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVI*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVIex*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVapp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVIapp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVPC*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TVP*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TSc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:numéro}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tablor#c\": [\n      \"xcas\",\n      \"windows\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tablor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabls.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tablinesep\"\n    },\n    {\n      \"name\": \"tablineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arraylinesep\"\n    },\n    {\n      \"name\": \"arraylineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrarulesep\"\n    },\n    {\n      \"name\": \"hline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hline[${1:extra%l}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tablvar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"pst-node\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\",\n      \"if\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns.meta\",\n      \"if\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"barre\"\n    },\n    {\n      \"name\": \"barre\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"barre[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"bas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bas{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"bb\"\n    },\n    {\n      \"name\": \"bblim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"bblim{${1:ligne1}}{${2:label1}}{${3:ligne2}}{${4:label2}}\"\n      }\n    },\n    {\n      \"name\": \"bblim*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bblim*{${1:label1}}{${2:label2}}\"\n      }\n    },\n    {\n      \"name\": \"discont\"\n    },\n    {\n      \"name\": \"hachure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hachure{${1:llx,lly}}{${2:urx,ury}}\"\n      }\n    },\n    {\n      \"name\": \"haut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"haut{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"limd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"limd[${3:pos%keyvals}]{${1:ligne}}{${2:valeur}}\",\n        \"keys\": [\n          \"\\\\limd,\\\\limg,\\\\pos,\\\\posvr,\\\\valpos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"limd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"limd{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"limd*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"limd*{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"limg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"limg[${3:pos%keyvals}]{${1:ligne}}{${2:valeur}}\",\n        \"keys\": [\n          \"\\\\limd,\\\\limg,\\\\pos,\\\\posvr,\\\\valpos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"limg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"limg{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"limg*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"limg*{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"mil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mil{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"pos*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pos*{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"pos\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pos[${3:align%keyvals}]{${1:ligne}}{${2:valeur}}\",\n        \"keys\": [\n          \"\\\\limd,\\\\limg,\\\\pos,\\\\posvr,\\\\valpos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pos{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"posvr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"posvr[${3:pos%keyvals}]{${1:ligne}}{${2:valeur}}\",\n        \"keys\": [\n          \"\\\\limd,\\\\limg,\\\\pos,\\\\posvr,\\\\valpos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"posvr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"posvr{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"tablvarset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablvarset{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{tablvar}#c,\\\\begin{tablvar*}#c,\\\\tablvarset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"variations\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"variations[${2:nblignes}]{${1:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"variations\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"variations{${1:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"vr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vr[${2:ligne}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vr{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vrconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrconnect{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"bbrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bordercolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colvalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fleche\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fleche{${1:node1}}{${2:node2}}\"\n      }\n    },\n    {\n      \"name\": \"innercolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intervalwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"limsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noeud\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noeud{${1:name}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"rowbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablvarinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablvarinit{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tablvarstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxdiscont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themaxZI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenbvarlignes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenbZI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumdiscont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumvr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thenumZI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvbarrewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvcoltypes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tvrulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"valpos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"valpos[${3:pos%keyvals}]{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"valpos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"valpos{${1:ligne}}{${2:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"varloop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"varloop{${1:iter}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"vdecal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vdecal{${1:decal%l}}{${2:contenu}}\"\n      }\n    },\n    {\n      \"name\": \"zbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zbox[${2:pos%keyvals}]{${1:contenu}}\"\n      }\n    },\n    {\n      \"name\": \"zbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zbox{${1:contenu}}\"\n      }\n    },\n    {\n      \"name\": \"ZIaddheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZIaddheight{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ZIaddwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZIc[${1:opt}]\"\n      }\n    },\n    {\n      \"name\": \"ZIcouleur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZIcouleur{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ZIdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIfind\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIgetheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZIgetheight{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ZIh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIh*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ZIh[${1:hauteur%l}]\"\n      }\n    },\n    {\n      \"name\": \"ZIheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIheighti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIheightii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIheightiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIheightiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZInew\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIreset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ZIreset{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ZItype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZIwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tablvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"tablvar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\begin{tablvar}#c,\\\\begin{tablvar*}#c,\\\\tablvarset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablvar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"tablvar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:keyvals}]{${1:nombre}}\",\n        \"keys\": [\n          \"\\\\begin{tablvar}#c,\\\\begin{tablvar*}#c,\\\\tablvarset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tablvars#c\": [\n      \"pstricks\",\n      \"tikz\"\n    ],\n    \"\\\\begin{tablvar}#c,\\\\begin{tablvar*}#c,\\\\tablvarset\": [\n      \"intervalwidth=\",\n      \"colvalwidth=\",\n      \"firstcolsep=\",\n      \"bordercolsep=\",\n      \"limsep=\",\n      \"stretch=${1:factor}\",\n      \"extleft\",\n      \"extright\",\n      \"ZItype=${1|h,c|}\",\n      \"ZIcolor=\",\n      \"ZIaddwidth=\"\n    ],\n    \"\\\\limd,\\\\limg,\\\\pos,\\\\posvr,\\\\valpos\": [\n      \"c\",\n      \"b\",\n      \"t\"\n    ],\n    \"\\\\zbox\": [\n      \"c\",\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tablvars#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/taborder.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setTabOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTabOrder{${1:order type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setTabOrder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setTabOrderByList\"\n    },\n    {\n      \"name\": \"setTabOrderByNumber\"\n    },\n    {\n      \"name\": \"setStructTabOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setStructTabOrder{${1:object list}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/taborder#c\": [\n      \"structure\"\n    ],\n    \"\\\\setTabOrder#c\": [\n      \"c\",\n      \"C\",\n      \"r\",\n      \"R\",\n      \"s\",\n      \"S\",\n      \"w\",\n      \"W\",\n      \"a\",\n      \"A\",\n      \"unspecified\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/taborder#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabstackengine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"stackengine\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TABstackText\"\n    },\n    {\n      \"name\": \"TABstackMath\"\n    },\n    {\n      \"name\": \"TABstackMathstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABstackMathstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"TABstackTextstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABstackTextstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"clearTABstyle\"\n    },\n    {\n      \"name\": \"fixTABwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixTABwidth{${1:T or F}}\"\n      }\n    },\n    {\n      \"name\": \"setstacktabbedgap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstacktabbedgap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"setstackaligngap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstackaligngap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"setstacktabulargap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstacktabulargap{${1:gap%l}}\"\n      }\n    },\n    {\n      \"name\": \"TABrule\"\n    },\n    {\n      \"name\": \"TABrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TABrule[${1:v-shift%l}]\"\n      }\n    },\n    {\n      \"name\": \"TABruleshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TABcline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABcline{${1:cols1,cols2,...}}\"\n      }\n    },\n    {\n      \"name\": \"relaxTABsyntax\",\n      \"if\": \"TABcline\"\n    },\n    {\n      \"name\": \"tabbedVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedVectorstack{${1:array%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedCenterstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedCenterstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedLongunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedLongunderstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedLongstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedLongstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedShortunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedShortunderstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedShortstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabbedShortstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignVectorstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignVectorstack{${1:array%formula}}\"\n      }\n    },\n    {\n      \"name\": \"alignVectorstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignVectorstack[${2:align%keyvals}]{${1:array%formula}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignCenterstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignCenterstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignCenterstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignCenterstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignLongunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignLongunderstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignLongunderstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignLongunderstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignLongstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignLongstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignLongstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignLongstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignShortunderstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignShortunderstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignShortunderstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignShortunderstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"alignShortstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignShortstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"alignShortstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"alignShortstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Matrixstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Matrixstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"Matrixstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Matrixstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parenMatrixstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parenMatrixstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"parenMatrixstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parenMatrixstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"braceMatrixstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"braceMatrixstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"braceMatrixstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"braceMatrixstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bracketMatrixstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bracketMatrixstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"bracketMatrixstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bracketMatrixstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vertMatrixstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertMatrixstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"vertMatrixstack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vertMatrixstack[${2:align%keyvals}]{${1:array}}\",\n        \"keys\": [\n          \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabularVectorstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularVectorstack{${1:cols}}{${2:array%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tabularCenterstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularCenterstack{${1:cols}}{${2:array%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tabularLongunderstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularLongunderstack{${1:cols}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabularLongstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularLongstack{${1:cols}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabularShortunderstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularShortunderstack{${1:cols}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabularShortstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabularShortstack{${1:cols}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabbedstackon{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabbedstackon[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabbedstackunder{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackunder\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabbedstackunder[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackanchor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tabbedstackanchor{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabbedstackanchor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tabbedstackanchor[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alignstackon{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"alignstackon[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackunder\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alignstackunder{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackunder\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"alignstackunder[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackanchor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alignstackanchor{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"alignstackanchor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"alignstackanchor[${3:gap%l}]{${1:tabbed anchor}}{${2:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackon\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tabularstackon{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackon\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tabularstackon[${4:gap%l}]{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackunder\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tabularstackunder{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackunder\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tabularstackunder[${4:gap%l}]{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackanchor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tabularstackanchor{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabularstackanchor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tabularstackanchor[${4:gap%l}]{${1:cols}}{${2:tabbed anchor}}{${3:tabbed arg}}\"\n      }\n    },\n    {\n      \"name\": \"ensureTABstackMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensureTABstackMath{${1:formula}}\"\n      }\n    },\n    {\n      \"name\": \"setstackTAB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setstackTAB{${1:tabbing char}}\"\n      }\n    },\n    {\n      \"name\": \"TABunaryLeft\"\n    },\n    {\n      \"name\": \"TABbinaryRight\"\n    },\n    {\n      \"name\": \"TABunaryRight\"\n    },\n    {\n      \"name\": \"TABbinaryLeft\"\n    },\n    {\n      \"name\": \"TABbinary\"\n    },\n    {\n      \"name\": \"readTABstack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"readTABstack{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"TABwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABwd{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"TABht\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABht{${1:row}}\"\n      }\n    },\n    {\n      \"name\": \"TABdp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABdp{${1:row}}\"\n      }\n    },\n    {\n      \"name\": \"TABcellRaw\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TABcellRaw[${1:row,column}]\"\n      }\n    },\n    {\n      \"name\": \"TABcell\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TABcell{${1:row}}{${2:column}}\"\n      }\n    },\n    {\n      \"name\": \"TABstrut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABstrut{${1:row}}\"\n      }\n    },\n    {\n      \"name\": \"TABcellBox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TABcellBox{${1:row}}{${2:column}}\"\n      }\n    },\n    {\n      \"name\": \"TABcellBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TABcellBox[${3:align%keyvals}]{${1:row}}{${2:column}}\"\n      }\n    },\n    {\n      \"name\": \"getTABcelltoks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"getTABcelltoks[${1:row,column}]\"\n      }\n    },\n    {\n      \"name\": \"TABcelltoks\"\n    },\n    {\n      \"name\": \"TABcells\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TABcells{${1:row or blank}}\"\n      }\n    },\n    {\n      \"name\": \"maxTABwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setTABrulecolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTABrulecolumn{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tabstackengine#c\": [\n      \"TABcline\"\n    ],\n    \"\\\\alignVectorstack,\\\\alignCenterstack,\\\\alignLongunderstack,\\\\alignLongstack,\\\\alignShortunderstack,\\\\alignShortstack,\\\\Matrixstack,\\\\parenMatrixstack,\\\\braceMatrixstack,\\\\bracketMatrixstack,\\\\vertMatrixstack,\\\\TABcellBox\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabstackengine#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabto.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tabto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabto{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tabto*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabto*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TabPrevPos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tab\"\n    },\n    {\n      \"name\": \"TabPositions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TabPositions{${1:length1,length2,...}}\"\n      }\n    },\n    {\n      \"name\": \"NumTabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumTabs{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"NextTabStop\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabu.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"delarray\",\n      \"if\": \"delarray\"\n    },\n    {\n      \"name\": \"linegoal\",\n      \"if\": \"linegoal\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"usetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucline{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"tabucline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabucline[${2:spec}]{${1:from-to}}\"\n      }\n    },\n    {\n      \"name\": \"savetabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savetabu{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preamble{${1:username}}\"\n      }\n    },\n    {\n      \"name\": \"tabuphantomline\"\n    },\n    {\n      \"name\": \"extrarowdepth\"\n    },\n    {\n      \"name\": \"abovetabulinesep\"\n    },\n    {\n      \"name\": \"belowtabulinesep\"\n    },\n    {\n      \"name\": \"tabustrutrule\"\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taburulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"taburulecolor\",\n      \"arg\": {\n        \"format\": \"||{}\",\n        \"snippet\": \"taburulecolor|${2:doubleRuleSepColor}|{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tabureset\"\n    },\n    {\n      \"name\": \"newtabulinestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtabulinestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"everyrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyrow{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"rowfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rowfont[${2:alignment}]{${1:fontSpec}}\"\n      }\n    },\n    {\n      \"name\": \"tabudecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabudecimal{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"firstline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftabuscantokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokenstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuscantokensfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabucolumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabucolumn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tabucolX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabudefaulttarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuDisableCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuendlongtrial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabulineon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabuthepreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetaburow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingtabu\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtabu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabu#c\": [\n      \"delarray\",\n      \"linegoal\",\n      \"scantokens\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabu#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabularborder.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tbon\"\n    },\n    {\n      \"name\": \"tboff\"\n    },\n    {\n      \"name\": \"tabcolwidthi\"\n    },\n    {\n      \"name\": \"tabcolwidthii\"\n    },\n    {\n      \"name\": \"tabcolwidthiii\"\n    },\n    {\n      \"name\": \"tabcolwidthiv\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularcalc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"numprint\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"htablecalc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"htablecalc{${1:cell (${5:0},${6:0})}}{${2:var=val1,val2,...}}{${3:label}}{${4:formula}}\"\n      }\n    },\n    {\n      \"name\": \"tclistsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vtablecalc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vtablecalc{${1:cell (${5:0},${6:0})}}{${2:var=val1,val2,...}}{${3:label}}{${4:formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcnoshowmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcatbeginrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcsethrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tcsethrule{${1:line 0%definition}}{${2:line 1%definition}}{${3:other lines%definition}}\"\n      }\n    },\n    {\n      \"name\": \"tcresethrule\"\n    },\n    {\n      \"name\": \"tcsetcoltype\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcsetcoltype{${1:type 1}}{${2:type 2}}\"\n      }\n    },\n    {\n      \"name\": \"tcsetcoltype\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcsetcoltype[${3:right lines}]{${1:type 1}}{${2:type 2}}\"\n      }\n    },\n    {\n      \"name\": \"tcresetcoltype\"\n    },\n    {\n      \"name\": \"defcellcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defcellcode{${1:row number}}{${2:col number}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"edefcellcode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"edefcellcode{${1:row number}}{${2:col number}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"tcresetcellcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcprintvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcprintvalue{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tcprintresult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcprintresult{${1:number}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tcprintroundresult\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcprintroundresult{${1:precision}}\"\n      }\n    },\n    {\n      \"name\": \"tcprintroundresult*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcprintroundresult*{${1:precision}}\"\n      }\n    },\n    {\n      \"name\": \"tcprintroundvalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcprintroundvalue{${1:precision}}\"\n      }\n    },\n    {\n      \"name\": \"tcwritetofile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcwritetofile{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"tccol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tclin\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tabularcalc#c\": [\n      \"fixFPpow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabularcalc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabularew.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GetExcessWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExcessWidth{${1:column}}\"\n      }\n    },\n    {\n      \"name\": \"ExcessWidth\"\n    },\n    {\n      \"name\": \"spew\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spew{${1:factor}}{${2:column}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentColumn\"\n    },\n    {\n      \"name\": \"NumberOfColumns\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabularew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularht.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"interrowspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interrowspace{${1:height spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"interrowspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"interrowspace[${2:line num list}]{${1:height spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"interrowfill\"\n    },\n    {\n      \"name\": \"interrowfill\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"interrowfill[${1:line num list}]\"\n      }\n    },\n    {\n      \"name\": \"interrowstart\"\n    },\n    {\n      \"name\": \"interrowstart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"interrowstart[${1:line num list}]\"\n      }\n    },\n    {\n      \"name\": \"interrowstop\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabularht\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:height spec%keyvals}}{${2:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabularht*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:height spec%keyvals}}{${2:width}}{${3:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrayht\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:height spec%keyvals}}{${2:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabularhtx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:height spec%keyvals}}{${2:width}}{${3:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabularht#c\": [\n      \"vlines\",\n      \"pdftex\",\n      \"dvips\"\n    ],\n    \"\\\\begin{tabularht}#c,\\\\begin{tabularht*}#c,\\\\begin{arrayht}#c,\\\\begin{tabularhtx}#c,\\\\interrowspace#c\": [\n      \"to=\",\n      \"spread=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabularht#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabularkv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"tabularht\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"tabularkv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"tabularkv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularkv}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tabularkv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:options%keyvals}][${3:pos}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{tabularkv}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tabularkv}\": [\n      \"width=\",\n      \"x=\",\n      \"height=\",\n      \"valign=${1|top,bottom,center|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularray.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ninecolors\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetTblrOuter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrOuter{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrOuter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrOuter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetTblrOuter[${2:envname}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrOuter#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetTblrInner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrInner{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrInner\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetTblrInner[${2:envname}]{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHline{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetHline[${3:index}]{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetHlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetHlines{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetHlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetHlines[${3:index}]{${1:cols}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetVspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetVspace{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hline[${1:styles%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cline[${2:styles%keyvals}]{${1:index}}\",\n        \"keys\": [\n          \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"therownum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therowcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecolcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetVline{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetVline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetVline[${3:index}]{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"SetVlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetVlines{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetVlines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetVlines[${3:index}]{${1:rows}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"vline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vline[${1:styles%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rline{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"rline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rline[${2:styles%keyvals}]{${1:index}}\",\n        \"keys\": [\n          \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCell{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetCell[${2:r=rows,c=columns}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetCells\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCells{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetCells\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetCells[${2:r=rows,c=columns}]{${1:options}}\",\n        \"keys\": [\n          \"\\\\SetCell#c,\\\\SetCells#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"SetRow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetRow{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetRow#c,\\\\SetRows#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetRows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetRows{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetRow#c,\\\\SetRows#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetColumn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetColumn{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetColumn#c,\\\\SetColumns#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetColumns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetColumns{${1:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetColumn#c,\\\\SetColumns#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hborder{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\hborder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vborder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vborder{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\vborder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewColumnType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewColumnType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnType\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewColumnType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRowType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewRowType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewRowType\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewRowType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnRowType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewColumnRowType{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewColumnRowType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewColumnRowType{${1:name}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTblrEnviron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewTblrEnviron{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewTableCommand\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewTableCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewChildSelector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewChildSelector{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"NewChildSelector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewChildSelector{${1:arg1}}[${3:opt1}][${4:opt2}]{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"leftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTblrTracing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTblrTracing{${1:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrTracing#c,\\\\SetTabularrayTracing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefTblrTemplate{${1:element%keyvals}}{${2:template name}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTblrTemplate{${1:element%keyvals}}{${2:template name}}{${3:definition}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTblrTemplate{${1:element%keyvals}}{${2:template name}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UseTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseTblrTemplate{${1:element%keyvals}}{${2:default}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExpTblrTemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExpTblrTemplate{${1:element%keyvals}}{${2:default}}\",\n        \"keys\": [\n          \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tblrcontfootname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tblrcontheadname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTblrStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTblrStyle{${1:element}}{${2:styles%keyvals}}\",\n        \"keys\": [\n          \"\\\\SetTblrStyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"NewTblrTheme\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTblrTheme{${1:theme name%specialDef}}{${2:specs}}\"\n      }\n    },\n    {\n      \"name\": \"TblrNote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TblrNote{${1:mark-symbol}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrText\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsertTblrText{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrNoteTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrNoteText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrRemarkTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InsertTblrRemarkText\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MapTblrNotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTblrNotes{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"MapTblrRemarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MapTblrRemarks{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"NewTblrLibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTblrLibrary{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrLibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrLibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\UseTblrLibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LogTblrTracing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LogTblrTracing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"GetTblrStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetTblrStyle{${1:element}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrAlign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrAlign{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrIndent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrIndent{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrHang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrHang{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrColor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrColor{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"UseTblrFont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTblrFont{${1:element}}\"\n      }\n    },\n    {\n      \"name\": \"InsertTblrMore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsertTblrMore{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NewDashStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDashStyle{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewContentCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"NewContentCommand{${1:cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"TblrParboxRestore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignBoth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignCenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrAlignRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrNewPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rulewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TblrOverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrMeasuringBool\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRowSpanTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellColSpanTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBackgroundTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellOmittedBool\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellAboveBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellBelowBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellLeftBorderColorTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderStyleTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderWidthTl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lTblrCellRightBorderColorTl\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"tblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"longtblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"talltblr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"talltblr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:outer specs%keyvals}]{${1:preamble}}\",\n        \"keys\": [\n          \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\SetTblrOuter#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"valign=${1|t,m,b|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"headsep=\",\n      \"footsep=\",\n      \"presep=\",\n      \"postsep=\",\n      \"theme=${1:theme}\",\n      \"caption=${1:caption text}\",\n      \"entry=${1:short caption text}\",\n      \"label=\",\n      \"baseline=${2|t,T,m,b,B,${1:row number}|}\",\n      \"long\",\n      \"tall\",\n      \"expand\",\n      \"expand+\"\n    ],\n    \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\": [\n      \"colspec={${1:col types}}\",\n      \"rowspec={${1:row types}}\",\n      \"width=\",\n      \"hspan=${1|default,even,minimal|}\",\n      \"vspan=${1|default,even|}\",\n      \"stretch=${1:factor}\",\n      \"columns={${1:styles}}\",\n      \"rows={${1:styles}}\",\n      \"cells={${1:styles}}\",\n      \"hlines\",\n      \"hlines={${1:styles}}\",\n      \"hlines={${1:cols}}{${2:styles}}\",\n      \"vlines\",\n      \"vlines={${1:styles}}\",\n      \"vlines={${1:rows}}{${2:styles}}\",\n      \"leftsep=\",\n      \"rightsep=\",\n      \"colsep=\",\n      \"abovesep=\",\n      \"belowsep=\",\n      \"rowsep=\",\n      \"rulesep=\",\n      \"rowhead=${1:number}\",\n      \"rowfoot=${1:number}\",\n      \"column{${1:j}}={${2:styles}}\",\n      \"column\",\n      \"row{${1:i}}={${2:styles}}\",\n      \"row\",\n      \"cell{${1:i}}{${2:j}}={${3:styles}}\",\n      \"cell\",\n      \"vline{${1:j}}={${2:index}}{${3:cols}}{${4:styles}}\",\n      \"vline\",\n      \"hline{${1:i}}={${2:index}}{${3:cols}}{${4:styles}}\",\n      \"hline\",\n      \"measure=${1|vbox|}\",\n      \"baseline=${2|t,T,m,b,B,${1:row number}|}\",\n      \"delimiter={${1:keyvals}}\"\n    ],\n    \"\\\\SetHline#c,\\\\SetHlines#c,\\\\SetVspace#c,\\\\hline#c,\\\\cline#c,\\\\toprule#c,\\\\midrule#c,\\\\cmidrule#c,\\\\bottomrule#c,\\\\cmidrulemore#c,\\\\specialrule#c\": [\n      \"dash=${1|solid,dashed,dotted|}\",\n      \"solid\",\n      \"dashed\",\n      \"dotted\",\n      \"text=\",\n      \"wd=\",\n      \"${1:width}\",\n      \"fg=\",\n      \"${1:color}\",\n      \"leftpos=\",\n      \"rightpos=\",\n      \"endpos\",\n      \"abovespace=\",\n      \"belowspace=\",\n      \"abovespace+=\",\n      \"belowspace+=\"\n    ],\n    \"\\\\SetVline#c,\\\\SetVlines#c,\\\\vline#c,\\\\rline#c\": [\n      \"dash=${1|solid,dashed,dotted|}\",\n      \"solid\",\n      \"dashed\",\n      \"dotted\",\n      \"text=\",\n      \"wd=\",\n      \"${1:width}\",\n      \"fg=\",\n      \"${1:color}\",\n      \"abovepos=\",\n      \"belowpos=\"\n    ],\n    \"\\\\SetCell#c,\\\\SetCells#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"wd=\",\n      \"${1:width}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\SetRow#c,\\\\SetRows#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"ht=\",\n      \"${1:height}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"abovesep=\",\n      \"abovesep+=\",\n      \"belowsep=\",\n      \"belowsep+=\",\n      \"rowsep=\",\n      \"rowsep+=\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\SetColumn#c,\\\\SetColumns#c\": [\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"valign=${1|t,m,b,h,f|}\",\n      \"t\",\n      \"m\",\n      \"b\",\n      \"h\",\n      \"f\",\n      \"wd=\",\n      \"${1:width}\",\n      \"co=${1:coeff}\",\n      \"bg=\",\n      \"${1:background color}\",\n      \"fg=\",\n      \"font=${1:font commands}\",\n      \"mode=${1|math,imath,dmath,text|}\",\n      \"$\",\n      \"$$\",\n      \"cmd=${1:command}\",\n      \"leftsep=\",\n      \"leftsep+=\",\n      \"rightsep=\",\n      \"rightsep+=\",\n      \"colsep=\",\n      \"colsep+=\",\n      \"preto=${1:text}\",\n      \"appto=${1:text}\"\n    ],\n    \"\\\\hborder#c\": [\n      \"pagebreak=${1|yes,no,auto|}\",\n      \"abovespace=\",\n      \"belowspace=\",\n      \"abovespace+=\",\n      \"belowspace+=\"\n    ],\n    \"\\\\vborder#c\": [\n      \"leftspace=\",\n      \"rightspace=\",\n      \"leftspace+=\",\n      \"rightspace+=\"\n    ],\n    \"\\\\SetTblrTracing#c,\\\\SetTabularrayTracing#c\": [\n      \"all\",\n      \"none\",\n      \"+row\",\n      \"+column\",\n      \"+text\",\n      \"-text\",\n      \"+command\",\n      \"-command\",\n      \"+option\",\n      \"-option\",\n      \"+theme\",\n      \"-theme\",\n      \"+outer\",\n      \"-outer\",\n      \"+inner\",\n      \"-inner\",\n      \"-column\",\n      \"-row\",\n      \"+cell\",\n      \"-cell\",\n      \"+vline\",\n      \"-vline\",\n      \"+hline\",\n      \"-hline\",\n      \"+colspec\",\n      \"-colspec\",\n      \"+rowspec\",\n      \"-rowspec\",\n      \"+target\",\n      \"-target\",\n      \"+cellspan\",\n      \"-cellspan\",\n      \"+intarray\",\n      \"-intarray\",\n      \"+page\",\n      \"-page\",\n      \"+step\",\n      \"-step\"\n    ],\n    \"\\\\begin{longtblr}#c,\\\\begin{talltblr}#c\": [\n      \"headsep=\",\n      \"footsep=\",\n      \"presep=\",\n      \"postsep=\",\n      \"theme=\",\n      \"caption={${1:text}}\",\n      \"entry={${1:text}}\",\n      \"label=\",\n      \"note{${1:name}}={${2:text}}\",\n      \"remark{${1:name}}={${2:text}}\"\n    ],\n    \"\\\\DefTblrTemplate#c,\\\\DeclareTblrTemplate#c,\\\\SetTblrTemplate#c,\\\\UseTblrTemplate#c,\\\\ExpTblrTemplate#c\": [\n      \"contfoot-text\",\n      \"contfoot\",\n      \"conthead-text\",\n      \"conthead\",\n      \"conthead-pre\",\n      \"caption-tag\",\n      \"caption-sep\",\n      \"caption-text\",\n      \"caption\",\n      \"caption-lot\",\n      \"capcont\",\n      \"note-tag\",\n      \"note-sep\",\n      \"note-text\",\n      \"note-border\",\n      \"note\",\n      \"remark-tag\",\n      \"remark-sep\",\n      \"remark-text\",\n      \"remark\",\n      \"firsthead\",\n      \"middlehead\",\n      \"lasthead\",\n      \"head\",\n      \"firstfoot\",\n      \"middlefoot\",\n      \"lastfoot\",\n      \"foot\"\n    ],\n    \"\\\\SetTblrStyle#c\": [\n      \"fg=\",\n      \"${1:color}\",\n      \"font=${1:commands}\",\n      \"${1:font commands}\",\n      \"halign=${1|l,c,r|}\",\n      \"l\",\n      \"c\",\n      \"r\",\n      \"indent=\",\n      \"hang=\"\n    ],\n    \"\\\\UseTblrLibrary#c\": [\n      \"amsmath\",\n      \"booktabs\",\n      \"counter\",\n      \"diagbox\",\n      \"functional\",\n      \"hook\",\n      \"html\",\n      \"nameref\",\n      \"siunitx\",\n      \"varwidth\",\n      \"zref\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibraryamsmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibrarybooktabs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"toprule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"toprule[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"midrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"midrule[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrule{${1:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrule\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmidrule[${2:options%keyvals}]{${1:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"bottomrule\"\n    },\n    {\n      \"name\": \"bottomrule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bottomrule[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"cmidrulemore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmidrulemore{${1:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"cmidrulemore\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cmidrulemore[${2:options%keyvals}]{${1:i-j}}\"\n      }\n    },\n    {\n      \"name\": \"morecmidrules\"\n    },\n    {\n      \"name\": \"specialrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specialrule{${1:options%keyvals}}{${2:belowsep}}{${3:abovesep}}\"\n      }\n    },\n    {\n      \"name\": \"addrowspace\"\n    },\n    {\n      \"name\": \"addrowspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addrowspace[${1:space%l}]\"\n      }\n    },\n    {\n      \"name\": \"addlinespace\"\n    },\n    {\n      \"name\": \"addlinespace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"addlinespace[${1:space%l}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"booktabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"longtabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"talltabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibrarydiagbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"diagbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"diagboxthree\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"diagboxthree{${1:lower}}{${2:middle}}{${3:upper}}\"\n      }\n    },\n    {\n      \"name\": \"diagboxthree\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"diagboxthree[${4:options%keyvals}]{${1:lower}}{${2:middle}}{${3:upper}}\",\n        \"keys\": [\n          \"\\\\diagboxthree\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\diagboxthree\": [\n      \"width=\",\n      \"height=\",\n      \"dir=${1|NW,NE,SW,SE|}\",\n      \"innerwidth=\",\n      \"innerleftsep=\",\n      \"innerrightsep=\",\n      \"outerleftsep=\",\n      \"outerrightsep=\",\n      \"leftsep=\",\n      \"rightsep=\",\n      \"trim=${1|l,r,lr,rl|}\",\n      \"font=${1:font commands}\",\n      \"linewidth=\",\n      \"linecolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibraryfunctional.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"functional\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cellGetText\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cellGetText{${1:rownum}}{${2:colnum}}\"\n      }\n    },\n    {\n      \"name\": \"cellSetText\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cellSetText{${1:rownum}}{${2:colnum}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"cellSetStyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cellSetStyle{${1:rownum}}{${2:colnum}}{${3:style}}\"\n      }\n    },\n    {\n      \"name\": \"rowSetStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rowSetStyle{${1:rownum}}{${2:style}}\"\n      }\n    },\n    {\n      \"name\": \"columnSetStyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"columnSetStyle{${1:style}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tblr}#c,\\\\SetTblrOuter#c\": [\n      \"evaluate=${1:function}\"\n    ],\n    \"\\\\SetTblrInner#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c\": [\n      \"process=${1:function}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibrarynameref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nameref\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibrarysiunitx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TblrNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TblrNum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TblrUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TblrUnit{${1:unit}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibraryvarwidth.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varwidth\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\SetTblrInner#c,\\\\begin{tblr}#c,\\\\begin{+matrix}#c,\\\\begin{+bmatrix}#c,\\\\begin{+Bmatrix}#c,\\\\begin{+pmatrix}#c,\\\\begin{+vmatrix}#c,\\\\begin{+Vmatrix}#c,\\\\begin{+cases}#c,\\\\begin{booktabs}#c,\\\\begin{longtabs}#c,\\\\begin{talltabs}#c\": [\n      \"measure=vbox\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularraylibraryzref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-user\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tabularx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabularxcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingtabularx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabularx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"tabularx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:pos}]{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabularx#c\": [\n      \"infoshow\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabularx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabulary.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"arraybackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tyformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tymin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tymax\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabulary\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabulary#c\": [\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabulary#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tabvar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"niveau\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"niveau{${1:départ}}{${2:total}}\"\n      }\n    },\n    {\n      \"name\": \"croit\"\n    },\n    {\n      \"name\": \"decroit\"\n    },\n    {\n      \"name\": \"constante\"\n    },\n    {\n      \"name\": \"dbarre\"\n    },\n    {\n      \"name\": \"discont\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"discont{${1:valeur gauche}}{${2:ou}}{${3:valeur droite}}\"\n      }\n    },\n    {\n      \"name\": \"discont\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"discont[${4:num}]{${1:valeur gauche}}{${2:ou}}{${3:valeur droite}}\"\n      }\n    },\n    {\n      \"name\": \"barre\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"barre{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TVcenter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TVcenter{${1:math%formula}}\"\n      }\n    },\n    {\n      \"name\": \"TVstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TVstretch{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"TVarrowscale\"\n    },\n    {\n      \"name\": \"eastarrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eastarrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eastarrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eastarrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eastarrowiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enearrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enearrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enearrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enearrowiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esearrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esearrowi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esearrowii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esearrowiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esearrowiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlecheC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlecheD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlecheH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlechesMPfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FlechesMPtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFlechesMP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVarraycolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVarraystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVarrowscolstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVcolorLeftSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVcolorRightSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVextradepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVextraheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVextraheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVmaxcolwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVnl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TVtabularnewline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tabvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tabvar#c\": [\n      \"FlechesMP\",\n      \"FlechesPS\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tabvar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tagging.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tagged\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tagged{${1:tag list}}{${2:source text}}\"\n      }\n    },\n    {\n      \"name\": \"untagged\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"untagged{${1:tag list}}{${2:alt text}}\"\n      }\n    },\n    {\n      \"name\": \"iftagged\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftagged{${1:tag list}}{${2:source text}}{${3:alt text}}\"\n      }\n    },\n    {\n      \"name\": \"usetag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetag{${1:tag list}}\"\n      }\n    },\n    {\n      \"name\": \"droptag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"droptag{${1:tag list}}\"\n      }\n    },\n    {\n      \"name\": \"taggedy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"taggedn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"taggedblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag list}}\"\n      }\n    },\n    {\n      \"name\": \"untaggedblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag list}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tagpair.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varwidth\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pairing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pairing{${1:upper text%text}}{${2:lower text%text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomline{${1:bottom text%text}}\"\n      }\n    },\n    {\n      \"name\": \"narrowraggedleft\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pairingline\"\n    },\n    {\n      \"name\": \"taggedline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:tag}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tagpdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfmanagement-testphase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tagpdfsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagpdfsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tagpdfsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tagtool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagtool{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tagtool\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tagmcbegin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagmcbegin{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tagmcbegin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tagmcend\"\n    },\n    {\n      \"name\": \"tagmcuse\"\n    },\n    {\n      \"name\": \"tagmcifinTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tagmcifinTF{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tagstructbegin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagstructbegin{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tagstructbegin\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tagstructend\"\n    },\n    {\n      \"name\": \"tagstructuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagstructuse{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tagstop\"\n    },\n    {\n      \"name\": \"tagstart\"\n    },\n    {\n      \"name\": \"ShowTagging\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowTagging{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ShowTagging\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tagpdfsuppressmarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tagpdfsuppressmarks{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tagpdf#c\": [\n      \"luamode\",\n      \"genericmode\",\n      \"disabledelayedshipout\"\n    ],\n    \"\\\\tagpdfsetup\": [\n      \"activate=${1:tag}\",\n      \"activate/all\",\n      \"activate/mc\",\n      \"activate/softhyphen\",\n      \"activate/spaces\",\n      \"activate/struct\",\n      \"activate/struct-dest\",\n      \"activate/tagunmarked\",\n      \"activate/tree\",\n      \"role/mathml-tags\",\n      \"role/new-tag=${1:tag/role}\",\n      \"role/new-attribute={${1:name}}{${2:content}}\",\n      \"role/map-tags=${1|false,pdf|}\",\n      \"debug/show\",\n      \"debug/show=${1|para,paraOff,spaces,spacesOff|}\",\n      \"debug/log=${1|none,v,vv,vvv,all|}\",\n      \"debug/uncompress\",\n      \"viewer/pane/mathml\",\n      \"viewer/pane/mathsource\",\n      \"viewer/startstructure=${1:number}\",\n      \"page/tabsorder=${1|row,column,structure,none|}\",\n      \"page/exclude-header-footer=${1|false,pagination|}\",\n      \"para/tagging\",\n      \"para/tag=${1:tag}\",\n      \"para/maintag=${1:tag}\",\n      \"para/flattened\",\n      \"math/alt/use\",\n      \"math/mathml/write-dummy=${1:code}\",\n      \"math/mathml/sources=${1:comma list}\",\n      \"math/mathml/AF\",\n      \"math/tex/AF\",\n      \"table/tagging=\",\n      \"table/header-rows=${1:comma list}\",\n      \"text/lang=${1:lang}\"\n    ],\n    \"\\\\tagtool\": [\n      \"para/tagging\",\n      \"para/maintag=${1:tag}\",\n      \"para/tag=${1:tag}\",\n      \"para/flattened\"\n    ],\n    \"\\\\tagmcbegin\": [\n      \"tag=${1:tag}\",\n      \"artifact=${1|pagination,pagination/header,pagination/footer,layout,page,background,notype|}\",\n      \"stash\",\n      \"label=${1:name}\",\n      \"alt=${1:text}\",\n      \"actualtext=${1:text}\",\n      \"raw=${1:PDF code}\"\n    ],\n    \"\\\\tagstructbegin\": [\n      \"tag=${1:tag}\",\n      \"stash\",\n      \"label=${1:name}\",\n      \"parent=${1:structure number}\",\n      \"firstkid\",\n      \"alt=${1:text}\",\n      \"actualtext=${1:text}\",\n      \"attribute={${1:attr1,attr2,...}}\",\n      \"attribute-class={${1:attr1,attr2,...}}\",\n      \"title=${1:text}\",\n      \"title-o=${1:text}\",\n      \"AF=${1:object}\",\n      \"root-AF=${1:object}\",\n      \"AFinline=${1:text}\",\n      \"AFinline-o=${1:text}\",\n      \"texsource=${1:text}\",\n      \"lang=${1:lang id}\",\n      \"ref=${1:label1,label2,...}}\",\n      \"E=${1:text}\"\n    ],\n    \"\\\\ShowTagging\": [\n      \"mc-data=${1:integer}\",\n      \"mc-current\",\n      \"struct-stack=${1|log,show|}\",\n      \"debug/structures\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tagpdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tameflts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"releasefloats\"\n    },\n    {\n      \"name\": \"tamefloats\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tangocolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dumptangocolors\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tascmac.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mask\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mask{${1:text}}{${2:pattern%keyvals}}\",\n        \"keys\": [\n          \"\\\\mask,\\\\maskbox,\\\\Maskbox\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"maskbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"maskbox{${1:width}}{${2:height}}{${3:pattern%keyvals}}{${4:pos}}{${5:text}}\",\n        \"keys\": [\n          \"\\\\mask,\\\\maskbox,\\\\Maskbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"Maskbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"Maskbox{${1:width}}{${2:height}}{${3:pattern%keyvals}}{${4:pos}}{${5:thickness%l}}{${6:text}}\",\n        \"keys\": [\n          \"\\\\mask,\\\\maskbox,\\\\Maskbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"keytop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keytop{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"yen\",\n      \"detail\": \"¥ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Yen sign\"\n    },\n    {\n      \"name\": \"return\"\n    },\n    {\n      \"name\": \"Return\"\n    },\n    {\n      \"name\": \"ascii\"\n    },\n    {\n      \"name\": \"Ascii\"\n    },\n    {\n      \"name\": \"ASCII\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"boxnote\"\n    },\n    {\n      \"name\": \"screen\"\n    },\n    {\n      \"name\": \"screen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:roundness}]\"\n      }\n    },\n    {\n      \"name\": \"itembox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"itembox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:roundness}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"shadebox\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\mask,\\\\maskbox,\\\\Maskbox\": [\n      \"A\",\n      \"B\",\n      \"C\",\n      \"D\",\n      \"E\",\n      \"F\",\n      \"G\",\n      \"H\",\n      \"I\",\n      \"J\",\n      \"K\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tasks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"task\"\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"task[${1:label text}]\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"task[${1:label text}](${2:cols})\"\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"task(${1:cols})\"\n      }\n    },\n    {\n      \"name\": \"task*\"\n    },\n    {\n      \"name\": \"task*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"task*[${1:label text}]\"\n      }\n    },\n    {\n      \"name\": \"task*\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"task*[${1:label text}](${2:cols})\"\n      }\n    },\n    {\n      \"name\": \"task*\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"task*(${1:cols})\"\n      }\n    },\n    {\n      \"name\": \"startnewitemline\"\n    },\n    {\n      \"name\": \"settasks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settasks{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewTasksEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewTasksEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"NewTasksEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}[]()\",\n        \"snippet\": \"NewTasksEnvironment[${2:keyvals}]{${1:envname}}[${3:separator}](${4:cols})\",\n        \"keys\": [\n          \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RenewTasksEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RenewTasksEnvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"RenewTasksEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}[]()\",\n        \"snippet\": \"RenewTasksEnvironment[${2:keyvals}]{${1:envname}}[${3:separator}](${4:cols})\",\n        \"keys\": [\n          \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tasksifmeasuringTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tasksifmeasuringTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"tasksifmeasuringT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tasksifmeasuringT{${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"tasksifmeasuringF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tasksifmeasuringF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"tasklabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetask\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tasks\"\n    },\n    {\n      \"name\": \"tasks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tasks\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"[${1:keyvals}](${2:cols})\",\n        \"keys\": [\n          \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tasks\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"(${1:cols})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tasks},\\\\settasks,\\\\NewTasksEnvironment,\\\\RenewTasksEnvironment\": [\n      \"style=${1|itemize,enumerate|}\",\n      \"label-format=${1:code}\",\n      \"label=${1:code}\",\n      \"ref=${1:code}\",\n      \"label-width=\",\n      \"label-offset=\",\n      \"item-format=${1:code}\",\n      \"item-indent=\",\n      \"column-sep=\",\n      \"label-align=${1|left,right,center|}\",\n      \"before-skip=\",\n      \"after-skip=\",\n      \"after-item-skip=\",\n      \"resume\",\n      \"start=${1:integer}\",\n      \"counter=${1:counter}\",\n      \"debug\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\",\n      \"if\": \"skins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\",\n      \"if\": \"vignette\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryraster\",\n      \"if\": \"raster\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistings\",\n      \"if\": \"listings\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\",\n      \"if\": \"listingsutf8\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\",\n      \"if\": \"minted\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\",\n      \"if\": \"theorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\",\n      \"if\": \"breakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\",\n      \"if\": \"magazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\",\n      \"if\": \"poster\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\",\n      \"if\": \"fitting\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\",\n      \"if\": \"hooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\",\n      \"if\": \"external\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarydocumentation\",\n      \"if\": \"documentation\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymany\",\n      \"if\": \"many\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\",\n      \"if\": \"most\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryall\",\n      \"if\": \"all\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbuselibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbuselibrary{${1:library%keys}}\"\n      }\n    },\n    {\n      \"name\": \"tcblower\"\n    },\n    {\n      \"name\": \"tcbset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbset{${1:options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbsetforeverylayer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsetforeverylayer{${1:options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbox{${1:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbox[${2:options%keyvals}]{${1:box content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcolorbox{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcolorbox[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcolorbox{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcolorbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcolorbox[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTColorBox{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTColorBox[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTColorBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTColorBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTColorBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcbox{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcbox[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcbox{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcbox[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBox[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBox{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBox\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBox[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"tcboxverb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcboxverb{${1:verbatim box content%definition}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxverb\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcboxverb[${2:options%keyvals}]{${1:verbatim box content%definition}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\",\n          \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcolorboxenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcolorboxenvironment{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"tcbtitletext\"\n    },\n    {\n      \"name\": \"tcbtitle\"\n    },\n    {\n      \"name\": \"tcbsubtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsubtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsubtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbsubtitle[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbheightfromgroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbheightfromgroup{${1:macro%cmd}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsetmanagedlayers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbsetmanagedlayers{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thetcblayer\"\n    },\n    {\n      \"name\": \"tcbifoddpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbifoddpage{${1:odd code}}{${2:even code}}\"\n      }\n    },\n    {\n      \"name\": \"tcbifoddpageoroneside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbifoddpageoroneside{${1:odd code}}{${2:even code}}\"\n      }\n    },\n    {\n      \"name\": \"thetcolorboxnumber\"\n    },\n    {\n      \"name\": \"thetcolorboxpage\"\n    },\n    {\n      \"name\": \"thetcbcounter\"\n    },\n    {\n      \"name\": \"tcbcounter\"\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcblistof{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tcblistof{${1:name}}[${3:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcblistof[${3:section macro}]{${1:name}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcblistof\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"tcblistof[${3:section macro}]{${1:name}}[${4:short title}]{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsidebyside\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsidebyside{${1:left-handed content%text}}{${2:right-handed content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsidebyside\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcbsidebyside[${3:options%keyvals}]{${1:left-handed content%text}}{${2:right-handed content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endtcbverbatimwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbusetemp\"\n    },\n    {\n      \"name\": \"tcbstartrecording\"\n    },\n    {\n      \"name\": \"tcbstartrecording\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tcbstartrecording[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"tcbrecord\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbrecord{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"tcbstoprecording\"\n    },\n    {\n      \"name\": \"tcbinputrecords\"\n    },\n    {\n      \"name\": \"tcbinputrecords\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tcbinputrecords[${1:file}]\"\n      }\n    },\n    {\n      \"name\": \"tcbsubskin\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tcbsubskin{${1:name}}{${2:base skin}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"tcbheightspace\"\n    },\n    {\n      \"name\": \"tcbtextwidth\"\n    },\n    {\n      \"name\": \"tcbtextheight\"\n    },\n    {\n      \"name\": \"tcbsegmentstate\"\n    },\n    {\n      \"name\": \"tcbpatcharcangular\"\n    },\n    {\n      \"name\": \"tcbpatcharcround\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options}]\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbverbatimwrite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tcbwritetemp\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbuselibrary,\\\\usepackage/tcolorbox#c\": [\n      \"skins\",\n      \"vignette\",\n      \"raster\",\n      \"listings\",\n      \"listingsutf8\",\n      \"minted\",\n      \"theorems\",\n      \"breakable\",\n      \"magazine\",\n      \"poster\",\n      \"fitting\",\n      \"hooks\",\n      \"xparse\",\n      \"external\",\n      \"documentation\",\n      \"many\",\n      \"most\",\n      \"all\"\n    ],\n    \"\\\\tcbset\": [\n      \"library/skins\",\n      \"library/vignette\",\n      \"library/raster\",\n      \"library/listings\",\n      \"library/listingsutf8\",\n      \"library/minted\",\n      \"library/theorems\",\n      \"library/breakable\",\n      \"library/magazine\",\n      \"library/poster\",\n      \"library/fitting\",\n      \"library/hooks\",\n      \"library/xparse\",\n      \"library/external\",\n      \"library/documentation\",\n      \"library/many\",\n      \"library/most\",\n      \"library/all\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"title=${1:text}\",\n      \"notitle\",\n      \"adjusted title=${1:text}\",\n      \"adjust text=${1:text}\",\n      \"squeezed title=${1:text}\",\n      \"squeezed title*=${1:text}\",\n      \"titlebox=${1|visible,invisible|}\",\n      \"detach title\",\n      \"attach title\",\n      \"attach title to upper\",\n      \"attach title to upper=${1:text}\",\n      \"subtitle style={${1:options}}\",\n      \"upperbox=${1|visible,invisible|}\",\n      \"visible\",\n      \"invisible\",\n      \"saveto=${1:file name}\",\n      \"lowerbox=${1|visible,invisible,ignored|}\",\n      \"savelowerto=${1:file name}\",\n      \"redirectlowerto=${1:file name}\",\n      \"lower separated\",\n      \"savedelimiter=${1:name}\",\n      \"colframe=\",\n      \"colback=\",\n      \"title filled\",\n      \"colbacktitle=\",\n      \"colupper=\",\n      \"collower=\",\n      \"coltext=\",\n      \"coltitle=\",\n      \"fontupper=${1:text}\",\n      \"fontlower=${1:text}\",\n      \"fonttitle=${1:text}\",\n      \"halign=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign upper=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign code={${1:code}}\",\n      \"halign upper code={${1:code}}\",\n      \"halign lower=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign lower code={${1:code}}\",\n      \"halign title=${1|justify,left,flush left,right,flush right,center,flush center|}\",\n      \"halign title code={${1:code}}\",\n      \"flushleft upper\",\n      \"center upper\",\n      \"flushright upper\",\n      \"flushleft lower\",\n      \"center lower\",\n      \"flushright lower\",\n      \"flushleft title\",\n      \"center title\",\n      \"flushright title\",\n      \"valign=${1|top,center,bottom,scale,scale*|}\",\n      \"valign upper=${1|top,center,bottom,scale,scale*|}\",\n      \"valign lower=${1|top,center,bottom,scale,scale*|}\",\n      \"valign scale limit=${1:number}\",\n      \"width=\",\n      \"text width=\",\n      \"add to width=\",\n      \"toprule=\",\n      \"bottomrule=\",\n      \"leftrule=\",\n      \"rightrule=\",\n      \"titlerule=\",\n      \"boxrule=\",\n      \"arc=\",\n      \"circular arc\",\n      \"bean arc\",\n      \"octogon arc\",\n      \"arc is angular\",\n      \"arc is curved\",\n      \"outer arc=\",\n      \"auto outer arc\",\n      \"boxsep=\",\n      \"left=\",\n      \"left*=\",\n      \"lefttitle=\",\n      \"leftupper=\",\n      \"leftlower=\",\n      \"right=\",\n      \"right*=\",\n      \"righttitle=\",\n      \"rightupper=\",\n      \"rightlower=\",\n      \"top=\",\n      \"toptitle=\",\n      \"bottom=\",\n      \"bottomtitle=\",\n      \"middle=\",\n      \"size=${1|normal,title,small,fbox,tight,minimal|}\",\n      \"oversize\",\n      \"oversize=\",\n      \"toggle left and right=${1|none,forced,evenpage|}\",\n      \"sharp corners\",\n      \"sharp corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"rounded corners\",\n      \"rounded corners=${1|northwest,northeast,southwest,southeast,north,south,east,west,downhill,uphill,all|}\",\n      \"sharpish corners\",\n      \"opacityframe=${1:fraction}\",\n      \"opacityback=${1:fraction}\",\n      \"opacitybacktitle=${1:fraction}\",\n      \"opacityfill=${1:fraction}\",\n      \"opacityupper=${1:fraction}\",\n      \"opacitylower=${1:fraction}\",\n      \"opacitytext=${1:fraction}\",\n      \"opacitytitle=${1:fraction}\",\n      \"natural height\",\n      \"height=\",\n      \"height plus=\",\n      \"height from=${1:min} to ${2:max}\",\n      \"text height=\",\n      \"add to height=\",\n      \"add to natural height=\",\n      \"height fill\",\n      \"height fill=${1|true,false,maximum|}\",\n      \"inherit height\",\n      \"inherit height=${1:fraction}\",\n      \"square\",\n      \"space=${1:fraction}\",\n      \"space to upper\",\n      \"space to lower\",\n      \"space to both\",\n      \"space to=${1:macro}\",\n      \"split=${1:fraction}\",\n      \"equal height group=${1:id}\",\n      \"minimum for equal height group=${1:id:length}\",\n      \"minimum for current equal height group=\",\n      \"use height from group\",\n      \"use height from group=${1:id}\",\n      \"before title={${1:code}}\",\n      \"before title*={${1:code}}\",\n      \"after title={${1:code}}\",\n      \"after title*={${1:code}}\",\n      \"before upper={${1:code}}\",\n      \"before upper*={${1:code}}\",\n      \"after upper={${1:code}}\",\n      \"after upper*={${1:code}}\",\n      \"before lower={${1:code}}\",\n      \"before lower*={${1:code}}\",\n      \"after lower={${1:code}}\",\n      \"after lower*={${1:code}}\",\n      \"text fill=\",\n      \"tabulars={${1:preamble}}\",\n      \"tabulars*={${1:code}}{${2:preamble}}\",\n      \"tabularx={${1:preamble}}\",\n      \"tabularx*={${1:code}}{${2:preamble}}\",\n      \"tikz upper\",\n      \"tikz upper={${1:TikZ options}}\",\n      \"tikz lower\",\n      \"tikz lower={${1:TikZ options}}\",\n      \"tikznode upper\",\n      \"tikznode upper={${1:TikZ options}}\",\n      \"tikznode lower\",\n      \"tikznode lower={${1:TikZ options}}\",\n      \"tikznode\",\n      \"tikznode={${1:TikZ options}}\",\n      \"varwidth upper\",\n      \"varwidth upper=\",\n      \"environment upper=${1:name}\",\n      \"environment upper args={${1:name}}{${2:code}}\",\n      \"environment lower=${1:name}\",\n      \"environment lower args={${1:name}}{${2:code}}\",\n      \"environment title=${1:name}\",\n      \"environment title args={${1:name}}{${2:code}}\",\n      \"overlay={${1:code}}\",\n      \"no overlay\",\n      \"overlay broken={${1:code}}\",\n      \"overlay unbroken={${1:code}}\",\n      \"overlay first={${1:code}}\",\n      \"overlay middle={${1:code}}\",\n      \"overlay last={${1:code}}\",\n      \"overlay unbroken and first={${1:code}}\",\n      \"overlay middle and last={${1:code}}\",\n      \"overlay unbroken and last={${1:code}}\",\n      \"overlay first and middle={${1:code}}\",\n      \"floatplacement=${1:values}\",\n      \"float\",\n      \"float=${1:values}\",\n      \"float*\",\n      \"float*=${1:values}\",\n      \"nofloat\",\n      \"every float={${1:code}}\",\n      \"before float={${1:code}}\",\n      \"after float={${1:code}}\",\n      \"before={${1:code}}\",\n      \"after={${1:code}}\",\n      \"nobeforeafter\",\n      \"force nobeforeafter\",\n      \"before skip balanced=${1:glue}\",\n      \"after skip balanced=${1:glue}\",\n      \"beforeafter skip balanced=${1:glue}\",\n      \"before skip=\",\n      \"after skip=\",\n      \"beforeafter skip=\",\n      \"left skip=\",\n      \"right skip=\",\n      \"leftright skip=\",\n      \"parskip\",\n      \"noparskip\",\n      \"autoparskip\",\n      \"baseline=\",\n      \"box align=${1|bottom,top,center,base|}\",\n      \"ignore nobreak\",\n      \"before nobreak={${1:code}}\",\n      \"parfillskip restore\",\n      \"enlarge top initially by=\",\n      \"enlarge bottom finally by=\",\n      \"enlarge top at break by=\",\n      \"enlarge bottom at break by=\",\n      \"enlarge top by=\",\n      \"enlarge bottom by=\",\n      \"enlarge left by=\",\n      \"enlarge right by=\",\n      \"enlarge by=\",\n      \"grow to left by=\",\n      \"grow to right by=\",\n      \"grow sidewards by=\",\n      \"flush left\",\n      \"flush right\",\n      \"center\",\n      \"toggle enlargement=${1|none,forced,evenpage|}\",\n      \"spread inwards\",\n      \"spread inwards=\",\n      \"spread outwards\",\n      \"spread outwards=\",\n      \"move upwards\",\n      \"move upwards=\",\n      \"move upwards*\",\n      \"move upwards*=\",\n      \"fill downwards\",\n      \"fill downwards=\",\n      \"spread upwards\",\n      \"spread upwards=\",\n      \"spread upwards*\",\n      \"spread upwards*=\",\n      \"spread sidewards\",\n      \"spread sidewards=\",\n      \"spread\",\n      \"spread=\",\n      \"spread downwards\",\n      \"spread downwards=\",\n      \"shrink tight\",\n      \"extrude left by=\",\n      \"extrude right by=\",\n      \"extrude top by=\",\n      \"extrude bottom by=\",\n      \"extrude by=\",\n      \"every box/.style={${1:options}}\",\n      \"every box on layer 1/.style={${1:options}}\",\n      \"every box on layer 2/.style={${1:options}}\",\n      \"every box on layer 3/.style={${1:options}}\",\n      \"every box on layer 4/.style={${1:options}}\",\n      \"every box on higher layers/.style={${1:options}}\",\n      \"capture=${1|minipage,hbox,fitbox|}\",\n      \"hbox\",\n      \"minipage\",\n      \"parbox\",\n      \"hyphenationfix\",\n      \"tempfile=${1:file name}\",\n      \"phantom={${1:code}}\",\n      \"nophantom\",\n      \"label is label\",\n      \"label is zlabel\",\n      \"label=\",\n      \"phantomlabel=\",\n      \"step=${1:counter}\",\n      \"step and label={${1:counter}}{${2:marker}}\",\n      \"label type=${1:type}\",\n      \"no label type\",\n      \"nameref=${1:text}\",\n      \"short title=${1:text}\",\n      \"hypertarget=${1:marker}\",\n      \"bookmark=${1:text}\",\n      \"bookmark*={${1:options}}{${2:text}}\",\n      \"index=${1:entry}\",\n      \"index*={${1:name}}{${2:entry}}\",\n      \"check odd page\",\n      \"if odd page={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside={${1:odd options}}{${2:even options}}\",\n      \"if odd page*={${1:odd options}}{${2:even options}}\",\n      \"if odd page or oneside*={${1:odd options}}{${2:even options}}\",\n      \"shield externalize\",\n      \"external=${1:file name}\",\n      \"remake\",\n      \"remake\",\n      \"reset\",\n      \"code={${1:code}}\",\n      \"IfBlankTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfBlankT={${1:token list}}{${2:true}}\",\n      \"IfBlankF={${1:token list}}{${2:false}}\",\n      \"IfEmptyTF={${1:token list}}{${2:true}}{${3:false}}\",\n      \"IfEmptyT={${1:token list}}{${2:true}}\",\n      \"IfEmptyF={${1:token list}}{${2:false}}\",\n      \"IfNoValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfNoValueT={${1:arg}}{${2:true}}\",\n      \"IfNoValueF={${1:arg}}{${2:false}}\",\n      \"IfValueTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfValueT={${1:arg}}{${2:true}}\",\n      \"IfValueF={${1:arg}}{${2:false}}\",\n      \"IfBooleanTF={${1:arg}}{${2:true}}{${3:false}}\",\n      \"IfBooleanT={${1:arg}}{${2:true}}\",\n      \"IfBooleanF={${1:arg}}{${2:false}}\",\n      \"void\",\n      \"nirvana\",\n      \"blend before title=${1|colon,dash,colon hang,dash hang|}\",\n      \"blend before title code={${1:code}}\",\n      \"list entry=${1:text}\",\n      \"list text=${1:text}\",\n      \"add to list={${1:list}}{${2:type}}\",\n      \"sidebyside\",\n      \"sidebyside align=${1|center,top,bottom,center seam,top seam,bottom seam|}\",\n      \"sidebyside gap=\",\n      \"lefthand width=\",\n      \"righthand width=\",\n      \"lefthand ratio=${1:fraction}\",\n      \"righthand ratio=${1:fraction}\",\n      \"sidebyside adapt=${1|none,left,right,both|}\",\n      \"sidebyside switch\",\n      \"verbatim ignore percent\",\n      \"verbatim ignore indention at end\",\n      \"record=${1:content}\",\n      \"no recording\",\n      \"skin=${1:name}\",\n      \"skin first=${1:name}\",\n      \"skin middle=${1:name}\",\n      \"skin last=${1:name}\",\n      \"frame engine=${1|standard,path,pathjigsaw,pathfirst,pathfirstjigsaw,pathmiddle,pathmiddlejigsaw,pathlast,pathlastjigsaw,freelance,spartan,empty|}\",\n      \"interior titled engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"interior engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"segmentation engine=${1|standard,path,freelance,spartan,empty|}\",\n      \"title engine=${1|standard,path,pathfirst,pathmiddle,pathlast,freelance,spartan,empty|}\",\n      \"geometry nodes\",\n      \"frame code={${1:code}}\",\n      \"frame empty\",\n      \"interior titled code={${1:code}}\",\n      \"interior titled empty\",\n      \"interior code={${1:code}}\",\n      \"interior empty\",\n      \"segmentation code={${1:code}}\",\n      \"segmentation empty\",\n      \"title code={${1:code}}\",\n      \"title empty\",\n      \"skin first is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin middle is subskin of={${1:base skin}}{${2:options}}\",\n      \"skin last is subskin of={${1:base skin}}{${2:options}}\"\n    ],\n    \"\\\\tcbset,\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\tcboxverb,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit\": [\n      \"tcbox raise=\",\n      \"tcbox raise base\",\n      \"on line\",\n      \"verbatim\",\n      \"tcbox width=${1|auto,auto limited,forced center,forced left,forced right,minimum center,minimum left,minimum right|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\tcbuselibrary,\\\\usepackage/tcolorbox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryall.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryminted\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarydocumentation\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarybreakable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfcol\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbbreak\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"breakable\",\n      \"breakable=${1|true,false,unlimited|}\",\n      \"unbreakable\",\n      \"enforce breakable\",\n      \"title after break=${1:text}\",\n      \"notitle after break\",\n      \"adjusted title after break=${1:text}\",\n      \"lines before break=${1:number}\",\n      \"break at=${1:length1/length2/...}\",\n      \"enlargepage=${1:length1/length2/...}\",\n      \"enlargepage flexible=\",\n      \"compress page\",\n      \"compress page=${1|all,baselineskip,none|}\",\n      \"shrink break goal=\",\n      \"use color stack\",\n      \"toprule at break=\",\n      \"bottomrule at break=\",\n      \"topsep at break=\",\n      \"bottomsep at break=\",\n      \"pad before break=\",\n      \"pad before break*=\",\n      \"pad after break=\",\n      \"pad at break=\",\n      \"pad at break*=\",\n      \"height fixed for=${1|none,first,middle,last,first and middle,middle and last,all|}\",\n      \"vfill before first\",\n      \"segmentation at break\",\n      \"extras={${1:options}}\",\n      \"no extras\",\n      \"extras broken={${1:options}}\",\n      \"extras unbroken={${1:options}}\",\n      \"no extras unbroken\",\n      \"extras first={${1:options}}\",\n      \"no extras first\",\n      \"extras middle={${1:options}}\",\n      \"no extras middle\",\n      \"extras last={${1:options}}\",\n      \"no extras last\",\n      \"extras unbroken and first={${1:options}}\",\n      \"extras middle and last={${1:options}}\",\n      \"extras unbroken and last={${1:options}}\",\n      \"extras first and middle={${1:options}}\",\n      \"extras title after break={${1:options}}\",\n      \"no extras title after break\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarydocumentation.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryraster\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"refcount\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"marginnote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"docValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docValue{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docValue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docValue[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docValue*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docValue*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docValue*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docValue*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docAuxCommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxCommand{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxCommand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docAuxCommand[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docAuxCommand*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxCommand*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxCommand*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docAuxCommand*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docAuxEnvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxEnvironment{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docAuxEnvironment[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docAuxEnvironment*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxEnvironment*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxEnvironment*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docAuxEnvironment*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docAuxKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxKey{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxKey\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"docAuxKey[${2:key path}][${3:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"docAuxKey*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docAuxKey*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docAuxKey*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"docAuxKey*[${2:key path}][${3:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"docCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docCounter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docCounter[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docCounter*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docCounter*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docCounter*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docCounter*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docLength{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docLength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docLength[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docLength*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docLength*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docLength*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docLength*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docColor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docColor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docColor[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docColor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"docColor*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"docColor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"docColor*[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sarg\"\n    },\n    {\n      \"name\": \"brackets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"brackets{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tcbmakedocSubKey\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbmakedocSubKey{${1:envname}}{${2:key path}}\"\n      }\n    },\n    {\n      \"name\": \"tcbmakedocSubKey\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcbmakedocSubKey[${3:options%keyvals}]{${1:envname}}{${2:key path}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbmakedocSubKeys\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbmakedocSubKeys{${1:envname}}{${2:key path}}\"\n      }\n    },\n    {\n      \"name\": \"tcbmakedocSubKeys\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcbmakedocSubKeys[${3:options%keyvals}]{${1:envname}}{${2:key path}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"refCom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refCom{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refCom*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refCom*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refEnv{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refEnv*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refEnv*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refKey{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refKey*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refKey*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refPathOperation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPathOperation{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refPathOperation*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPathOperation*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refAux\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refAux{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refAuxcs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refAuxcs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"refPkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refPkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"refPkg\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"refPkg[${2:CTAN name}]{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"colDef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colDef{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"colOpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colOpt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"colFade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colFade{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tcbdocmarginnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbdocmarginnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbdocmarginnote\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbdocmarginnote[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcbdocnew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbdocnew{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"tcbdocupdated\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbdocupdated{${1:date}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"docCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docCommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docCommand*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docCommand*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docEnvironment\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docEnvironment*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docEnvironment*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docKey\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}{${3:description}}\"\n      }\n    },\n    {\n      \"name\": \"docKey\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"[${4:key path}][${5:options%keyvals}]{${1:name}}{${2:parameters}}{${3:description%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"docKey*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}{${3:description}}\"\n      }\n    },\n    {\n      \"name\": \"docKey*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"[${4:key path}][${5:options%keyvals}]{${1:name}}{${2:parameters}}{${3:description%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"docPathOperation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docPathOperation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"docPathOperation*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:name}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"docPathOperation*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:name}}{${2:parameters}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\",\n          \"\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dispExample\"\n    },\n    {\n      \"name\": \"dispExample*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dispListing\"\n    },\n    {\n      \"name\": \"dispListing*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbset\",\n          \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"absquote\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*\": [\n      \"doc name=${1:name}\",\n      \"doc label=${1:text}\",\n      \"doc index=${1:text}\",\n      \"doc sort index=${1:text}\",\n      \"doc into index\",\n      \"doc no index\"\n    ],\n    \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations}\": [\n      \"doc parameter=${1:parameters}\",\n      \"doc description=${1:description}\",\n      \"doc new=${1:date}\",\n      \"doc updated=${1:date}\",\n      \"doc new and updated={${1:new date}}{${2:update date}}\",\n      \"doc left=\",\n      \"doc right=\",\n      \"doc left indent=\",\n      \"doc right indent=\",\n      \"doc raster={${1:options}}\",\n      \"doc head={${1:options}}\",\n      \"before doc body={${1:code}}\",\n      \"after doc body={${1:code}}\"\n    ],\n    \"\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\tcbset\": [\n      \"before doc body command={${1:code}}\",\n      \"after doc body command={${1:code}}\",\n      \"doc head command={${1:options}}\",\n      \"doc raster command={${1:options}}\"\n    ],\n    \"\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\tcbset\": [\n      \"before doc body environment={${1:code}}\",\n      \"after doc body environment={${1:code}}\",\n      \"doc head environment={${1:options}}\",\n      \"doc raster environment={${1:options}}\"\n    ],\n    \"\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\tcbset\": [\n      \"doc keypath=${1:key path}\",\n      \"doc key prefix=${1:key prefix}\",\n      \"index key formatter\",\n      \"index key formatter=${1:macro}\",\n      \"index keys formatter\",\n      \"index keys formatter=${1:macro}\",\n      \"before doc body key={${1:code}}\",\n      \"after doc body key={${1:code}}\",\n      \"doc head key={${1:options}}\",\n      \"doc raster key={${1:options}}\"\n    ],\n    \"\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\tcbset\": [\n      \"before doc body path={${1:code}}\",\n      \"after doc body path={${1:code}}\",\n      \"doc head path={${1:options}}\",\n      \"doc raster path={${1:options}}\"\n    ],\n    \"\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbset\": [\n      \"docexample/.style={${1:options}}\",\n      \"documentation listing options={${1:listings keys}}\",\n      \"documentation listing style=${1:listings style}\",\n      \"documentation minted options={${1:minted keys}}\",\n      \"documentation minted style=${1:minted style}\",\n      \"documentation minted language=${1:language}\"\n    ],\n    \"\\\\tcbset,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\tcbmakedocSubKey,\\\\tcbmakedocSubKeys,\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*}\": [\n      \"keywords bold\",\n      \"page ref formatter=${1:macro}\",\n      \"index command=${1:macro}\",\n      \"index command name=${1:name}\",\n      \"index format=${1|pgfsection,pgfchapter,pgf,doc,off|}\",\n      \"index actual=${1:character}\",\n      \"index quote=${1:character}\",\n      \"index level=${1:character}\",\n      \"index default settings/.style=\",\n      \"index german settings/.style=\",\n      \"index annotate\",\n      \"index colorize\",\n      \"index gather colors\",\n      \"index gather commands\",\n      \"index gather counters\",\n      \"index gather environments\",\n      \"index gather keys\",\n      \"index gather lengths\",\n      \"index gather paths\",\n      \"index gather values\",\n      \"index gather all\",\n      \"index gather none\",\n      \"color command=\",\n      \"color environment=\",\n      \"color key=\",\n      \"color path=\",\n      \"color value=\",\n      \"color counter=\",\n      \"color length=\",\n      \"color color=\",\n      \"color definition=\",\n      \"color option=\",\n      \"color fade=\",\n      \"color hyperlink=\",\n      \"english language\",\n      \"doclang/color=${1:text}\",\n      \"doclang/colors=${1:text}\",\n      \"doclang/commands=${1:text}\",\n      \"doclang/counter=${1:text}\",\n      \"doclang/environment=${1:text}\",\n      \"doclang/environments=${1:text}\",\n      \"doclang/environment content=${1:text}\",\n      \"doclang/index=${1:text}\",\n      \"doclang/key=${1:text}\",\n      \"doclang/keys=${1:text}\",\n      \"doclang/length=${1:text}\",\n      \"doclang/lengths=${1:text}\",\n      \"doclang/new=${1:text}\",\n      \"doclang/path=${1:text}\",\n      \"doclang/paths=${1:text}\",\n      \"doclang/pageshort=${1:text}\",\n      \"doclang/updated=${1:text}\",\n      \"doclang/value=${1:text}\",\n      \"doclang/values=${1:text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryexternal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"incgraph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbEXTERNALIZE\"\n    },\n    {\n      \"name\": \"tcbifexternal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbifexternal{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"newtcbexternalizeenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newtcbexternalizeenvironment{${1:newenv%envname}}{${2:env}}{${3:options%keyvals}}{${4:begdef}}{${5:enddef}}\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbexternalizeenvironment\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewtcbexternalizeenvironment{${1:newenv%envname}}{${2:env}}{${3:options%keyvals}}{${4:begdef}}{${5:enddef}}\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbexternalizetcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newtcbexternalizetcolorbox{${1:newenv%envname}}{${2:env}}{${3:options%keyvals}}{${4:begin end options}}\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbexternalizetcolorbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewtcbexternalizetcolorbox{${1:newenv%envname}}{${2:env}}{${3:options%keyvals}}{${4:begin end options}}\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"tcbiffileprocess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tcbiffileprocess{${1:condition}}{${2:source}}{${3:md5-file}}{${4:target}}{${5:true}}{${6:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcbexternal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tcbexternal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extcolorbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"extcolorbox\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}[${3:tcolorbox options}]\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"extikzpicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"extikzpicture\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}[${3:tikz options}]\",\n        \"keys\": [\n          \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tcbexternal},\\\\begin{extcolorbox},\\\\begin{extikzpicture},\\\\newtcbexternalizeenvironment,\\\\renewtcbexternalizeenvironment,\\\\newtcbexternalizetcolorbox,\\\\renewtcbexternalizetcolorbox\": [\n      \"runner=${1:file name}\",\n      \"prefix=${1:text}\",\n      \"externalize\",\n      \"force remake\",\n      \"!\",\n      \"-\",\n      \"name=${1:name}\",\n      \"safety=${1:length}\",\n      \"environment=${1:envname}\",\n      \"environment with percent\",\n      \"minipage\",\n      \"minipage=\",\n      \"plain\",\n      \"compiler=${1:text}\",\n      \"runs=${1:number}\",\n      \"input source on error\",\n      \"preclass={${1:code}}\",\n      \"PassOptionsToPackage={${1:options}}{${2:package}}\",\n      \"PassOptionsToClass={${1:options}}{${2:class}}\",\n      \"clear preclass\",\n      \"preamble={${1:code}}\",\n      \"preamble tcbset={${1:options}}\",\n      \"clear preamble\"\n    ],\n    \"\\\\tcbset\": [\n      \"external/runner=${1:file name}\",\n      \"external/prefix=${1:text}\",\n      \"external/externalize\",\n      \"external/force remake\",\n      \"external/!\",\n      \"external/-\",\n      \"external/name=${1:name}\",\n      \"external/safety=${1:length}\",\n      \"external/environment=${1:envname}\",\n      \"external/environment with percent\",\n      \"external/minipage\",\n      \"external/minipage=\",\n      \"external/plain\",\n      \"external/compiler=${1:text}\",\n      \"external/runs=${1:number}\",\n      \"external/input source on error\",\n      \"external/preclass={${1:code}}\",\n      \"external/PassOptionsToPackage={${1:options}}{${2:package}}\",\n      \"external/PassOptionsToClass={${1:options}}{${2:class}}\",\n      \"external/clear preclass\",\n      \"external/preamble={${1:code}}\",\n      \"external/preamble tcbset={${1:options}}\",\n      \"external/clear preamble\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\": [\n      \"externalize listing=${1:name}\",\n      \"externalize listing!=${1:name}\"\n    ],\n    \"\\\\tcbset,\\\\begin{dispExample*}\": [\n      \"externalize example=${1:name}\",\n      \"externalize example!=${1:name}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryfitting.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tcboxfit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcboxfit{${1:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxfit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcboxfit[${2:options%keyvals}]{${1:box content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcboxfit{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcboxfit{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcboxfit{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcboxfit[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcboxfit[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcboxfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcboxfit[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcboxfit{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcboxfit{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcboxfit{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcboxfit[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcboxfit[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcboxfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcboxfit[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBoxFit[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBoxFit[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBoxFit[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBoxFit[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTotalTCBoxFit[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTotalTCBoxFit[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTotalTCBoxFit[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBoxFit{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTotalTCBoxFit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTotalTCBoxFit[${5:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}{${4:content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"tcbfitdim\"\n    },\n    {\n      \"name\": \"tcbfontsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbfontsize{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"tcbfitsteps\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"fit\",\n      \"fit to=${1:width} and ${2:height}\",\n      \"fit to height=\",\n      \"fit basedim=\",\n      \"fit skip=${1:factor}\",\n      \"fit fontsize macros\",\n      \"fit height plus=\",\n      \"fit width plus=\",\n      \"fit width from=${1:min} to ${2:max}\",\n      \"fit height from=${1:min} to ${2:max}\",\n      \"fit algorithm=${1|fontsize,fontsize*,areasize,areasize*,hybrid,hybrid*,squeeze|}\",\n      \"fit maxstep=${1:number}\",\n      \"fit maxfontdiff=\",\n      \"fit maxfontdiffgap=\",\n      \"fit maxwidthdiff=\",\n      \"fit maxwidthdiffgap=\",\n      \"fit warning=${1|off,on,final|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryhooks.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"before title app={${1:code}}\",\n      \"before title pre={${1:code}}\",\n      \"after title app={${1:code}}\",\n      \"after title pre={${1:code}}\",\n      \"before upper app={${1:code}}\",\n      \"before upper pre={${1:code}}\",\n      \"after upper app={${1:code}}\",\n      \"after upper pre={${1:code}}\",\n      \"before lower app={${1:code}}\",\n      \"before lower pre={${1:code}}\",\n      \"after lower app={${1:code}}\",\n      \"after lower pre={${1:code}}\",\n      \"environment upper app=${1:name}\",\n      \"environment upper args app={${1:name}}{${2:code}}\",\n      \"environment upper pre=${1:name}\",\n      \"environment upper args pre={${1:name}}{${2:code}}\",\n      \"environment lower app=${1:name}\",\n      \"environment lower args app={${1:name}}{${2:code}}\",\n      \"environment lower pre=${1:name}\",\n      \"environment lower args pre={${1:name}}{${2:code}}\",\n      \"environment title app=${1:name}\",\n      \"environment title args app={${1:name}}{${2:code}}\",\n      \"environment title pre=${1:name}\",\n      \"environment title args pre={${1:name}}{${2:code}}\",\n      \"before app={${1:code}}\",\n      \"before pre={${1:code}}\",\n      \"after app={${1:code}}\",\n      \"after pre={${1:code}}\",\n      \"before float app={${1:code}}\",\n      \"before float pre={${1:code}}\",\n      \"after float app={${1:code}}\",\n      \"after float pre={${1:code}}\",\n      \"overlay app={${1:code}}\",\n      \"overlay pre={${1:code}}\",\n      \"overlay unbroken app={${1:code}}\",\n      \"overlay unbroken pre={${1:code}}\",\n      \"overlay first app={${1:code}}\",\n      \"overlay first pre={${1:code}}\",\n      \"overlay middle app={${1:code}}\",\n      \"overlay middle pre={${1:code}}\",\n      \"overlay last app={${1:code}}\",\n      \"overlay last pre={${1:code}}\",\n      \"overlay broken app={${1:code}}\",\n      \"overlay broken pre={${1:code}}\",\n      \"overlay unbroken and first app={${1:code}}\",\n      \"overlay unbroken and first pre={${1:code}}\",\n      \"overlay middle and last app={${1:code}}\",\n      \"overlay middle and last pre={${1:code}}\",\n      \"overlay unbroken and last app={${1:code}}\",\n      \"overlay unbroken and last pre={${1:code}}\",\n      \"overlay first and middle app={${1:code}}\",\n      \"overlay first and middle pre={${1:code}}\",\n      \"watermark text app=${1:text}\",\n      \"watermark text pre=${1:text}\",\n      \"watermark text app on=${1:part} is ${2:text}\",\n      \"watermark text pre on=${1:part} is ${2:text}\",\n      \"watermark graphics app=${1:file name}\",\n      \"watermark graphics pre=${1:file name}\",\n      \"watermark graphics app on=${1:part} is ${2:file}\",\n      \"watermark graphics pre on=${1:part} is ${2:file}\",\n      \"watermark tikz app={${1:code}}\",\n      \"watermark tikz pre={${1:code}}\",\n      \"watermark tikz app on=${1:part} is ${2:code}\",\n      \"watermark tikz pre on=${1:part} is ${2:code}\",\n      \"underlay pre={${1:code}}\",\n      \"underlay unbroken pre={${1:code}}\",\n      \"underlay first pre={${1:code}}\",\n      \"underlay middle pre={${1:code}}\",\n      \"underlay last pre={${1:code}}\",\n      \"underlay boxed title pre={${1:code}}\",\n      \"underlay broken pre={${1:code}}\",\n      \"underlay unbroken and first pre={${1:code}}\",\n      \"underlay middle and last pre={${1:code}}\",\n      \"underlay unbroken and last pre={${1:code}}\",\n      \"underlay first and middle pre={${1:code}}\",\n      \"finish pre={${1:code}}\",\n      \"finish unbroken pre={${1:code}}\",\n      \"finish first pre={${1:code}}\",\n      \"finish middle pre={${1:code}}\",\n      \"finish last pre={${1:code}}\",\n      \"finish broken pre={${1:code}}\",\n      \"finish unbroken and first pre={${1:code}}\",\n      \"finish middle and last pre={${1:code}}\",\n      \"finish unbroken and last pre={${1:code}}\",\n      \"finish first and middle pre={${1:code}}\",\n      \"frame code app={${1:code}}\",\n      \"frame code pre={${1:code}}\",\n      \"interior titled code app={${1:code}}\",\n      \"interior titled code pre={${1:code}}\",\n      \"interior code app={${1:code}}\",\n      \"interior code pre={${1:code}}\",\n      \"segmentation code app={${1:code}}\",\n      \"segmentation code pre={${1:code}}\",\n      \"title code app={${1:code}}\",\n      \"title code pre={${1:code}}\",\n      \"extras pre={${1:options}}\",\n      \"extras unbroken pre={${1:options}}\",\n      \"extras first pre={${1:options}}\",\n      \"extras middle pre={${1:options}}\",\n      \"extras last pre={${1:options}}\",\n      \"extras broken pre={${1:options}}\",\n      \"extras unbroken and first pre={${1:options}}\",\n      \"extras middle and last pre={${1:options}}\",\n      \"extras unbroken and last pre={${1:options}}\",\n      \"extras first and middle pre={${1:options}}\",\n      \"listing options app={${1:options}}\",\n      \"listing options pre={${1:options}}\",\n      \"minted options app={${1:options}}\",\n      \"minted options pre={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarylistings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbinputlisting{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbuselistingtext\"\n    },\n    {\n      \"name\": \"tcbuselistinglisting\"\n    },\n    {\n      \"name\": \"tcbusetemplisting\"\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"thetcblisting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbiffileprocess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tcbiffileprocess{${1:condition}}{${2:source}}{${3:md5-file}}{${4:target}}{${5:true}}{${6:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcblisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcboutputlisting\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\": [\n      \"listing options={${1:listings options}}\",\n      \"no listing options\",\n      \"listing style=${1:style}\",\n      \"listing inputencoding=${1:encoding}\",\n      \"listing remove caption\",\n      \"every listing line=${1:text}\",\n      \"every listing line*=${1:text}\",\n      \"listing engine=${1|listings,minted|}\",\n      \"listing file=${1:file name}\",\n      \"listing and text\",\n      \"text and listing\",\n      \"listing only\",\n      \"text only\",\n      \"comment=${1:text}\",\n      \"comment only\",\n      \"image comment={${1:graphics options}}{${2:file}}\",\n      \"tcbimage comment=${1:file name}\",\n      \"pdf comment\",\n      \"pdf comment=${1:file name}\",\n      \"pdf extension=${1:extension}\",\n      \"comment style={${1:options}}\",\n      \"listing and comment\",\n      \"comment and listing\",\n      \"listing side text\",\n      \"text side listing\",\n      \"listing outside text\",\n      \"text outside listing\",\n      \"listing side comment\",\n      \"comment side listing\",\n      \"listing outside comment\",\n      \"comment outside listing\",\n      \"listing above text\",\n      \"listing above* text\",\n      \"text above listing\",\n      \"text above* listing\",\n      \"listing above comment\",\n      \"listing above* comment\",\n      \"comment above listing\",\n      \"comment above* listing\",\n      \"no process\",\n      \"process code={${1:code}}\",\n      \"run system command=${1:system command}\",\n      \"compilable listing\",\n      \"run pdflatex=${1:arguments}\",\n      \"run pdflatex\",\n      \"run xelatex=${1:arguments}\",\n      \"run xelatex\",\n      \"run lualatex=${1:arguments}\",\n      \"run lualatex\",\n      \"run makeindex=${1:arguments}\",\n      \"run makeindex\",\n      \"run bibtex=${1:arguments}\",\n      \"run bibtex\",\n      \"run biber=${1:arguments}\",\n      \"run biber\",\n      \"run arara=${1:arguments}\",\n      \"run arara\",\n      \"run latex=${1:arguments}\",\n      \"run latex\",\n      \"run dvips=${1:arguments}\",\n      \"run dvips\",\n      \"run ps2pdf=${1:arguments}\",\n      \"run ps2pdf\",\n      \"freeze file=${1:file}\",\n      \"freeze none\",\n      \"freeze extension=${1:text}\",\n      \"freeze pdf\",\n      \"freeze png\",\n      \"freeze jpg\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarylistingsutf8.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarylistings\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"listingsutf8\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\": [\n      \"listing utf8=${1:encoding}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarymagazine.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newboxarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newboxarray{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"boxarrayreset\"\n    },\n    {\n      \"name\": \"boxarrayreset\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"boxarrayreset[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"boxarrayclear\"\n    },\n    {\n      \"name\": \"boxarrayclear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"boxarrayclear[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boxarraygetsize{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetsize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"boxarraygetsize[${2:name}]{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"useboxarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useboxarray{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"useboxarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useboxarray[${2:name}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"usetcboxarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usetcboxarray{${1:index}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usetcboxarray\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"usetcboxarray[${3:name}]{${1:index}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"consumeboxarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"consumeboxarray{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"consumeboxarray\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"consumeboxarray[${2:name}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"consumetcboxarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"consumetcboxarray{${1:index}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"consumetcboxarray\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"consumetcboxarray[${3:name}]{${1:index}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"boxarraygetbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxarraygetbox{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"boxarraygetbox[${3:name}]{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"ifboxarrayempty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifboxarrayempty{${1:index}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifboxarrayempty\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifboxarrayempty[${4:name}]{${1:index}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxarraygetwidth{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetwidth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"boxarraygetwidth[${3:name}]{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxarraygetheight{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"boxarraygetheight[${3:name}]{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetdepth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxarraygetdepth{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygetdepth\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"boxarraygetdepth[${3:name}]{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygettotalheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"boxarraygettotalheight{${1:macro%cmd}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"boxarraygettotalheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"boxarraygettotalheight[${3:name}]{${1:macro%cmd}}{${2:index}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"boxarraystore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"reset box array\",\n      \"reset box array=${1:name}\",\n      \"store to box array\",\n      \"store to box array=${1:name}\",\n      \"reset and store to box array\",\n      \"reset and store to box array=${1:name}\",\n      \"do not store to box array\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarymany.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibraryraster\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryhooks\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarytheorems\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryminted.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"minted\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbinputlisting{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbuselistingtext\"\n    },\n    {\n      \"name\": \"tcbuselistinglisting\"\n    },\n    {\n      \"name\": \"tcbusetemplisting\"\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcblisting{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcblisting[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcblisting{${1:envname}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcblisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcblisting[${3:init options}]{${1:envname}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBListing{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBListing[${4:init options}]{${1:envname}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newtcbinputlisting{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"newtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}[${3:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewtcbinputlisting{${1:cmd}}[${3:args}][${4:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbinputlisting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[][]{}\",\n        \"snippet\": \"renewtcbinputlisting[${3:init options}]{${1:cmd}}[${4:args}][${5:default}]{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"DeclareTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"DeclareTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"NewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"NewTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"RenewTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTCBInputListing\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTCBInputListing{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTCBInputListing\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ProvideTCBInputListing[${4:init options}]{${1:cmd}}{${2:xargs}}{${3:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"thetcblisting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbiffileprocess\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tcbiffileprocess{${1:condition}}{${2:source}}{${3:md5-file}}{${4:target}}{${5:true}}{${6:false}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcblisting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcboutputlisting\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing\": [\n      \"minted language=${1:programming lang}\",\n      \"minted options={${1:minted options}}\",\n      \"default minted options={${1:minted options}}\",\n      \"minted style=${1:style}\",\n      \"listing engine=${1|listings,minted|}\",\n      \"listing file=${1:file name}\",\n      \"listing and text\",\n      \"text and listing\",\n      \"listing only\",\n      \"text only\",\n      \"comment=${1:text}\",\n      \"comment only\",\n      \"image comment={${1:graphics options}}{${2:file}}\",\n      \"tcbimage comment=${1:file name}\",\n      \"pdf comment\",\n      \"pdf comment=${1:file name}\",\n      \"pdf extension=${1:extension}\",\n      \"comment style={${1:options}}\",\n      \"listing and comment\",\n      \"comment and listing\",\n      \"listing side text\",\n      \"text side listing\",\n      \"listing outside text\",\n      \"text outside listing\",\n      \"listing side comment\",\n      \"comment side listing\",\n      \"listing outside comment\",\n      \"comment outside listing\",\n      \"listing above text\",\n      \"listing above* text\",\n      \"text above listing\",\n      \"text above* listing\",\n      \"listing above comment\",\n      \"listing above* comment\",\n      \"comment above listing\",\n      \"comment above* listing\",\n      \"no process\",\n      \"process code={${1:code}}\",\n      \"run system command=${1:system command}\",\n      \"compilable listing\",\n      \"run pdflatex=${1:arguments}\",\n      \"run pdflatex\",\n      \"run xelatex=${1:arguments}\",\n      \"run xelatex\",\n      \"run lualatex=${1:arguments}\",\n      \"run lualatex\",\n      \"run makeindex=${1:arguments}\",\n      \"run makeindex\",\n      \"run bibtex=${1:arguments}\",\n      \"run bibtex\",\n      \"run biber=${1:arguments}\",\n      \"run biber\",\n      \"run arara=${1:arguments}\",\n      \"run arara\",\n      \"run latex=${1:arguments}\",\n      \"run latex\",\n      \"run dvips=${1:arguments}\",\n      \"run dvips\",\n      \"run ps2pdf=${1:arguments}\",\n      \"run ps2pdf\",\n      \"freeze file=${1:file}\",\n      \"freeze none\",\n      \"freeze extension=${1:text}\",\n      \"freeze pdf\",\n      \"freeze png\",\n      \"freeze jpg\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarymost.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarymany\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarylistingsutf8\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryexternal\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryvignette\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryposter\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryposter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymagazine\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryfitting\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbposterwidth\"\n    },\n    {\n      \"name\": \"tcbposterheight\"\n    },\n    {\n      \"name\": \"tcbpostercolspacing\"\n    },\n    {\n      \"name\": \"tcbposterrowspacing\"\n    },\n    {\n      \"name\": \"tcbpostercolumns\"\n    },\n    {\n      \"name\": \"tcbposterrows\"\n    },\n    {\n      \"name\": \"tcbpostercolwidth\"\n    },\n    {\n      \"name\": \"tcbposterrowheight\"\n    },\n    {\n      \"name\": \"tcbposterset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbposterset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{tcbposter},\\\\tcbposterset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"posterbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"posterbox{${1:placement}}{${2:box content%text}}\"\n      }\n    },\n    {\n      \"name\": \"posterbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"posterbox[${3:options%keyvals}]{${1:placement}}{${2:box content%text}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\posterbox,\\\\begin{posterboxenv}\",\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcbposter\"\n    },\n    {\n      \"name\": \"tcbposter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tcbposter},\\\\tcbposterset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"posterboxenv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:placement}}\"\n      }\n    },\n    {\n      \"name\": \"posterboxenv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:placement}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\posterbox,\\\\begin{posterboxenv}\",\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tcbposter},\\\\tcbposterset\": [\n      \"poster={${1:poster options}}\",\n      \"coverage={${1:options}}\",\n      \"no coverage\",\n      \"boxes={${1:options}}\",\n      \"fontsize=\"\n    ],\n    \"\\\\tcbset,\\\\posterbox,\\\\begin{posterboxenv}\": [\n      \"posterset/poster={${1:poster options}}\",\n      \"posterset/coverage={${1:options}}\",\n      \"posterset/no coverage\",\n      \"posterset/boxes={${1:options}}\",\n      \"posterset/fontsize=\",\n      \"poster/columns=${1:number}\",\n      \"poster/rows=${1:number}\",\n      \"poster/colspacing=\",\n      \"poster/rowspacing=\",\n      \"poster/showframe\",\n      \"poster/width=\",\n      \"poster/height=\",\n      \"poster/prefix=${1:name}\",\n      \"posterloc/name=${1:name}\",\n      \"posterloc/column=${1:number}\",\n      \"posterloc/column*=${1:number}\",\n      \"posterloc/span=${1:number}\",\n      \"posterloc/row=${1:number}\",\n      \"posterloc/rowspan=${1:number}\",\n      \"posterloc/fixed height\",\n      \"posterloc/below=${1:name}\",\n      \"posterloc/above=${1:name}\",\n      \"posterloc/at=${1:name}\",\n      \"posterloc/between=${1:name1} and ${2:name2}\",\n      \"posterloc/sequence=${1:sequence}\",\n      \"posterloc/xshift=\",\n      \"posterloc/yshift=\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"placeholder\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryraster.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thetcbrasternum\"\n    },\n    {\n      \"name\": \"thetcbrastercolumn\"\n    },\n    {\n      \"name\": \"thetcbrasterrow\"\n    },\n    {\n      \"name\": \"tcbitem\"\n    },\n    {\n      \"name\": \"tcbitem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tcbitem[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcbraster\"\n    },\n    {\n      \"name\": \"tcbraster\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbitemize\"\n    },\n    {\n      \"name\": \"tcbitemize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcboxedraster\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:box options}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxedraster\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:raster options%keyvals}]{${1:box options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcboxeditemize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:box options}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxeditemize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:raster options%keyvals}]{${1:box options}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize}\": [\n      \"raster columns=${1:number}\",\n      \"raster rows=${1:number}\",\n      \"raster width=\",\n      \"raster width flush left=\",\n      \"raster width center=\",\n      \"raster width flush right=\",\n      \"raster height=\",\n      \"raster before skip=\",\n      \"raster after skip=\",\n      \"raster equal skip=\",\n      \"raster left skip=\",\n      \"raster right skip=\",\n      \"raster column skip=\",\n      \"raster row skip=\",\n      \"raster halign=${1|left,center,right|}\",\n      \"raster valign=${1|top,center,bottom|}\",\n      \"raster equal height\",\n      \"raster equal height=${1|none,rows,all|}\",\n      \"raster equal height group=${1:id}\",\n      \"raster force size\",\n      \"raster reset\",\n      \"raster every box/.style={${1:options}}\",\n      \"raster odd column/.style={${1:options}}\",\n      \"raster even column/.style={${1:options}}\",\n      \"raster column 1/.style={${1:options}}\",\n      \"raster column 2/.style={${1:options}}\",\n      \"raster column 3/.style={${1:options}}\",\n      \"raster column 4/.style={${1:options}}\",\n      \"raster odd row/.style={${1:options}}\",\n      \"raster even row/.style={${1:options}}\",\n      \"raster row 1/.style={${1:options}}\",\n      \"raster row 2/.style={${1:options}}\",\n      \"raster row 3/.style={${1:options}}\",\n      \"raster row 4/.style={${1:options}}\",\n      \"raster odd number/.style={${1:options}}\",\n      \"raster even number/.style={${1:options}}\",\n      \"raster number 1/.style={${1:options}}\",\n      \"raster number 2/.style={${1:options}}\",\n      \"raster number 3/.style={${1:options}}\",\n      \"raster number 4/.style={${1:options}}\",\n      \"raster multicolumn=${1:number}\",\n      \"raster multirow=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryskins.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzfill.image\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcboxedtitlewidth\"\n    },\n    {\n      \"name\": \"tcboxedtitleheight\"\n    },\n    {\n      \"name\": \"tcbstartdraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbstopdraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbinterruptdraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbcontinuedraftmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcbline\"\n    },\n    {\n      \"name\": \"tcbline*\"\n    },\n    {\n      \"name\": \"tcboverlaplower\"\n    },\n    {\n      \"name\": \"tcbincludegraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbincludegraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"tcbincludegraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbincludegraphics[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\tcbincludegraphics,\\\\tcbincludepdf\",\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"imagename\"\n    },\n    {\n      \"name\": \"tcbincludepdf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbincludepdf{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tcbincludepdf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbincludepdf[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\tcbincludegraphics,\\\\tcbincludepdf\",\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"imagepage\"\n    },\n    {\n      \"name\": \"pdfpages\"\n    },\n    {\n      \"name\": \"tcbsettowidthofnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsettowidthofnode{${1:register}}{${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsetmacrotowidthofnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsetmacrotowidthofnode{${1:macro%cmd}}{${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsettoheightofnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsettoheightofnode{${1:register}}{${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"tcbsetmacrotoheightofnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbsetmacrotoheightofnode{${1:macro%cmd}}{${2:node}}\"\n      }\n    },\n    {\n      \"name\": \"tcbhypernode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcbhypernode{${1:macro}}{${2:node}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tcbclipframe\"\n    },\n    {\n      \"name\": \"tcbinvclipframe\"\n    },\n    {\n      \"name\": \"tcbclipinterior\"\n    },\n    {\n      \"name\": \"tcbcliptitle\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c\": [\n      \"tcb fill frame\",\n      \"tcb fill interior\",\n      \"tcb fill title\"\n    ],\n    \"\\\\tcbset,\\\\tcbincludegraphics,\\\\tcbincludepdf\": [\n      \"graphics options={${1:graphics options}}\",\n      \"graphics directory=${1:directory}\",\n      \"graphics pages=${1:selection}\",\n      \"graphics orientation=${1|as-is,landscape,landscape*,portrait,portrait*|}\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"frame style={${1:TikZ options}}\",\n      \"frame style image=${1:file name}\",\n      \"frame style tile={${1:graphics options}}{${2:file}}\",\n      \"frame hidden\",\n      \"interior style={${1:TikZ options}}\",\n      \"interior style image=${1:file name}\",\n      \"interior style tile={${1:graphics options}}{${2:file}}\",\n      \"interior hidden\",\n      \"segmentation style={${1:TikZ options}}\",\n      \"segmentation hidden\",\n      \"title style={${1:TikZ options}}\",\n      \"title style image=${1:file name}\",\n      \"title style tile={${1:graphics options}}{${2:file}}\",\n      \"title hidden\",\n      \"titlerule style={${1:TikZ options}}\",\n      \"attach boxed title to top left\",\n      \"attach boxed title to top left={${1:boxtitle options}}\",\n      \"attach boxed title to top text left\",\n      \"attach boxed title to top text left={${1:boxtitle options}}\",\n      \"attach boxed title to top center\",\n      \"attach boxed title to top center={${1:boxtitle options}}\",\n      \"attach boxed title to top right\",\n      \"attach boxed title to top right={${1:boxtitle options}}\",\n      \"attach boxed title to top text right\",\n      \"attach boxed title to top text right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom left\",\n      \"attach boxed title to bottom left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text left\",\n      \"attach boxed title to bottom text left={${1:boxtitle options}}\",\n      \"attach boxed title to bottom center\",\n      \"attach boxed title to bottom center={${1:boxtitle options}}\",\n      \"attach boxed title to bottom right\",\n      \"attach boxed title to bottom right={${1:boxtitle options}}\",\n      \"attach boxed title to bottom text right\",\n      \"attach boxed title to bottom text right={${1:boxtitle options}}\",\n      \"attach boxed title to top\",\n      \"attach boxed title to top={${1:boxtitle options}}\",\n      \"attach boxed title to top*\",\n      \"attach boxed title to top*={${1:boxtitle options}}\",\n      \"attach boxed title to bottom\",\n      \"attach boxed title to bottom={${1:boxtitle options}}\",\n      \"attach boxed title to bottom*\",\n      \"attach boxed title to bottom*={${1:boxtitle options}}\",\n      \"flip title\",\n      \"flip title={${1:boxtitle options}}\",\n      \"boxed title size=${1|title,standard,copy|}\",\n      \"boxed title style={${1:options}}\",\n      \"no boxed title style\",\n      \"hbox boxed title\",\n      \"minipage boxed title\",\n      \"minipage boxed title=\",\n      \"minipage boxed title*\",\n      \"minipage boxed title*=\",\n      \"tikznode boxed title={${1:TikZ options}}\",\n      \"varwidth boxed title\",\n      \"varwidth boxed title=\",\n      \"varwidth boxed title*\",\n      \"varwidth boxed title*=\",\n      \"watermark text=${1:text}\",\n      \"watermark text on=${1:part} is ${2:text}\",\n      \"watermark graphics=${1:file name}\",\n      \"watermark graphics on=${1:part} is ${2:file}\",\n      \"watermark tikz={${1:code}}\",\n      \"watermark tikz on=${1:part} is ${2:code}\",\n      \"no watermark\",\n      \"watermark opacity=${1:fraction}\",\n      \"watermark zoom=${1:fraction}\",\n      \"watermark shrink=${1:fraction}\",\n      \"watermark overzoom=${1:fraction}\",\n      \"watermark stretch=${1:fraction}\",\n      \"watermark color=\",\n      \"clip watermark\",\n      \"clip title\",\n      \"clip upper\",\n      \"clip lower\",\n      \"borderline={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no borderline\",\n      \"show bounding box\",\n      \"show bounding box=\",\n      \"borderline north={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline south={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline east={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline west={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline horizontal={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"borderline vertical={${1:width}}{${2:offset}}{${3:TikZ options}}\",\n      \"no shadow\",\n      \"drop shadow\",\n      \"drop shadow=\",\n      \"drop fuzzy shadow\",\n      \"drop fuzzy shadow=\",\n      \"drop midday shadow\",\n      \"drop midday shadow=\",\n      \"drop fuzzy midday shadow\",\n      \"drop fuzzy midday shadow=\",\n      \"halo\",\n      \"halo=${1:size} with ${2:color}\",\n      \"fuzzy halo\",\n      \"fuzzy halo=${1:size} with ${2:color}\",\n      \"drop shadow southeast\",\n      \"drop shadow southeast=\",\n      \"drop shadow south\",\n      \"drop shadow south=\",\n      \"drop shadow southwest\",\n      \"drop shadow southwest=\",\n      \"drop shadow west\",\n      \"drop shadow west=\",\n      \"drop shadow northwest\",\n      \"drop shadow northwest=\",\n      \"drop shadow north\",\n      \"drop shadow north=\",\n      \"drop shadow northeast\",\n      \"drop shadow northeast=\",\n      \"drop shadow east\",\n      \"drop shadow east=\",\n      \"drop fuzzy shadow southeast\",\n      \"drop fuzzy shadow southeast=\",\n      \"drop fuzzy shadow south\",\n      \"drop fuzzy shadow south=\",\n      \"drop fuzzy shadow southwest\",\n      \"drop fuzzy shadow southwest=\",\n      \"drop fuzzy shadow west\",\n      \"drop fuzzy shadow west=\",\n      \"drop fuzzy shadow northwest\",\n      \"drop fuzzy shadow northwest=\",\n      \"drop fuzzy shadow north\",\n      \"drop fuzzy shadow north=\",\n      \"drop fuzzy shadow northeast\",\n      \"drop fuzzy shadow northeast=\",\n      \"drop fuzzy shadow east\",\n      \"drop fuzzy shadow east=\",\n      \"drop lifted shadow\",\n      \"drop lifted shadow=\",\n      \"drop small lifted shadow\",\n      \"drop small lifted shadow=\",\n      \"drop large lifted shadow\",\n      \"drop large lifted shadow=\",\n      \"shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:TikZ options}}\",\n      \"fuzzy shadow={${1:xshift}}{${2:yshift}}{${3:offset}}{${4:step}}{${5:TikZ options}}\",\n      \"smart shadow arc\",\n      \"lifted shadow={${1:xshift}}{${2:yshift}}{${3:bend}}{${4:step}}{${5:TikZ options}}\",\n      \"tikz={${1:TikZ options}}\",\n      \"tikz reset\",\n      \"at begin tikz={${1:TikZ code}}\",\n      \"at begin tikz reset\",\n      \"at end tikz={${1:TikZ code}}\",\n      \"at end tikz reset\",\n      \"rotate=${1:angle}\",\n      \"scale=${1:fraction}\",\n      \"remember\",\n      \"remember as=${1:name}\",\n      \"underlay={${1:code}}\",\n      \"no underlay\",\n      \"underlay broken={${1:code}}\",\n      \"underlay unbroken={${1:code}}\",\n      \"no underlay unbroken\",\n      \"underlay first={${1:code}}\",\n      \"no underlay first\",\n      \"underlay middle={${1:code}}\",\n      \"no underlay middle\",\n      \"underlay last={${1:code}}\",\n      \"no underlay last\",\n      \"underlay boxed title={${1:code}}\",\n      \"no underlay boxed title\",\n      \"underlay unbroken and first={${1:code}}\",\n      \"underlay middle and last={${1:code}}\",\n      \"underlay unbroken and last={${1:code}}\",\n      \"underlay first and middle={${1:code}}\",\n      \"finish={${1:code}}\",\n      \"no finish\",\n      \"finish broken={${1:code}}\",\n      \"finish unbroken={${1:code}}\",\n      \"no finish unbroken\",\n      \"finish first={${1:code}}\",\n      \"no finish first\",\n      \"finish middle={${1:code}}\",\n      \"no finish middle\",\n      \"finish last={${1:code}}\",\n      \"no finish last\",\n      \"finish unbroken and first={${1:code}}\",\n      \"finish middle and last={${1:code}}\",\n      \"finish unbroken and last={${1:code}}\",\n      \"finish first and middle={${1:code}}\",\n      \"hyperref=${1:marker}\",\n      \"hyperref interior=${1:marker}\",\n      \"hyperref title=${1:marker}\",\n      \"hyperref node={${1:marker}}{${2:node}}\",\n      \"hyperlink=${1:marker}\",\n      \"hyperlink interior=${1:marker}\",\n      \"hyperlink title=${1:marker}\",\n      \"hyperlink node={${1:marker}}{${2:node}}\",\n      \"hyperurl=${1:URL}\",\n      \"hyperurl interior=${1:URL}\",\n      \"hyperurl title=${1:URL}\",\n      \"hyperurl node={${1:URL}}{${2:node}}\",\n      \"hyperurl*={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* interior={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* title={${1:hyperref options}}{${2:URL}}\",\n      \"hyperurl* node={${1:hyperref options}}{${2:URL}}{${3:node}}\",\n      \"draftmode\",\n      \"standard\",\n      \"standard jigsaw\",\n      \"enhanced\",\n      \"enhanced standard\",\n      \"blank\",\n      \"enhanced jigsaw\",\n      \"enhanced standard jigsaw\",\n      \"marker\",\n      \"bicolor\",\n      \"colbacklower=\",\n      \"opacitybacklower=${1:fraction}\",\n      \"overlaplower=\",\n      \"bicolor jigsaw\",\n      \"tile\",\n      \"beamer\",\n      \"widget\",\n      \"empty\",\n      \"blanker\",\n      \"blankest\",\n      \"spartan\",\n      \"draft\",\n      \"freelance\",\n      \"extend freelance={${1:options}}\",\n      \"extend freelancefirst={${1:options}}\",\n      \"extend freelancemiddle={${1:options}}\",\n      \"extend freelancelast={${1:options}}\",\n      \"only=<${1:overlay spec}>{${2:options}}\",\n      \"hide=<${1:overlay spec}>\",\n      \"beamer hidden/.style={${1:options}}\",\n      \"alert=<${1:overlay spec}>\",\n      \"beamer alerted/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibrarytheorems.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewTcbTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"NewTcbTheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewTcbTheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"NewTcbTheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"newtcbtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newtcbtheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newtcbtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newtcbtheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"RenewTcbTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"RenewTcbTheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"RenewTcbTheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"RenewTcbTheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"renewtcbtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"renewtcbtheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewtcbtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"renewtcbtheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"ProvideTcbTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ProvideTcbTheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"ProvideTcbTheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ProvideTcbTheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"DeclareTcbTheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareTcbTheorem{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareTcbTheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareTcbTheorem[${5:init options}]{${1:envname}}{${2:display name}}{${3:options%keyvals}}{${4:prefix}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"tcboxmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcboxmath{${1:mathematical box content%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcboxmath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcboxmath[${2:options%keyvals}]{${1:mathematical box content%formula}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tcbhighmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbhighmath{${1:mathematical box content%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tcbhighmath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcbhighmath[${2:options%keyvals}]{${1:mathematical box content%formula}}\",\n        \"keys\": [\n          \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"separator sign=${1:sign}\",\n      \"separator sign colon\",\n      \"separator sign dash\",\n      \"separator sign none\",\n      \"description delimiters=\",\n      \"description delimiters parenthesis\",\n      \"description delimiters none\",\n      \"description color\",\n      \"description color=\",\n      \"description font\",\n      \"description font=${1:text}\",\n      \"description formatter\",\n      \"description formatter=${1:macro}\",\n      \"terminator sign=${1:sign}\",\n      \"terminator sign colon\",\n      \"terminator sign dash\",\n      \"terminator sign none\",\n      \"label separator=${1:separator}\",\n      \"theorem full label supplement={${1:style}}\",\n      \"theorem label supplement={${1:style}}\",\n      \"theorem hanging indent\",\n      \"theorem hanging indent=\",\n      \"theorem name and number\",\n      \"theorem number and name\",\n      \"theorem name\",\n      \"theorem number\",\n      \"theorem={${1:display name}}{${2:counter}}{${3:title}}{${4:marker}}\",\n      \"highlight math style={${1:options}}\",\n      \"math upper\",\n      \"math lower\",\n      \"math\",\n      \"ams equation upper\",\n      \"ams equation lower\",\n      \"ams equation\",\n      \"ams equation* upper\",\n      \"ams equation* lower\",\n      \"ams equation*\",\n      \"ams align upper\",\n      \"ams align lower\",\n      \"ams align\",\n      \"ams align* upper\",\n      \"ams align* lower\",\n      \"ams align*\",\n      \"ams gather upper\",\n      \"ams gather lower\",\n      \"ams gather\",\n      \"ams gather* upper\",\n      \"ams gather* lower\",\n      \"ams gather*\",\n      \"ams nodisplayskip upper\",\n      \"ams nodisplayskip lower\",\n      \"ams nodisplayskip\",\n      \"theorem style=${1|standard,change standard,plain,break,plain apart,change,change break,change apart,margin,margin break,margin apart|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tcolorboxlibraryvignette.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tcbvignette\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcbvignette{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tcbvignette\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tcbvignette\": [\n      \"xmin=\",\n      \"xmax=\",\n      \"ymin=\",\n      \"ymax=\",\n      \"lower left corner={${1:x,y}}\",\n      \"upper right corner={${1:x,y}}\",\n      \"inside node=${1:name}\",\n      \"outside node=${1:name}\",\n      \"over node=${1:name}\",\n      \"over node offset=\",\n      \"north size=\",\n      \"south size=\",\n      \"east size=\",\n      \"west size=\",\n      \"vertical size=\",\n      \"horizontal size=\",\n      \"size=\",\n      \"north style={${1:TikZ options}}\",\n      \"south style={${1:TikZ options}}\",\n      \"east style={${1:TikZ options}}\",\n      \"west style={${1:TikZ options}}\",\n      \"scope={${1:TikZ options}}\",\n      \"raised color=\",\n      \"lowered color=\",\n      \"color from=${1:inner} to ${2:outer}\",\n      \"base color=\",\n      \"draw method=${1|direct,clipped|}\",\n      \"fade in={${1:TikZ options}}\",\n      \"fade out={${1:TikZ options}}\",\n      \"semi fade in={${1:TikZ options}}\",\n      \"semi fade out={${1:TikZ options}}\"\n    ],\n    \"\\\\tcbset\": [\n      \"vig/xmin=\",\n      \"vig/xmax=\",\n      \"vig/ymin=\",\n      \"vig/ymax=\",\n      \"vig/lower left corner={${1:x,y}}\",\n      \"vig/upper right corner={${1:x,y}}\",\n      \"vig/inside node=${1:name}\",\n      \"vig/outside node=${1:name}\",\n      \"vig/over node=${1:name}\",\n      \"vig/over node offset=\",\n      \"vig/north size=\",\n      \"vig/south size=\",\n      \"vig/east size=\",\n      \"vig/west size=\",\n      \"vig/vertical size=\",\n      \"vig/horizontal size=\",\n      \"vig/size=\",\n      \"vig/north style={${1:TikZ options}}\",\n      \"vig/south style={${1:TikZ options}}\",\n      \"vig/east style={${1:TikZ options}}\",\n      \"vig/west style={${1:TikZ options}}\",\n      \"vig/scope={${1:TikZ options}}\",\n      \"vig/raised color=\",\n      \"vig/lowered color=\",\n      \"vig/color from=${1:inner} to ${2:outer}\",\n      \"vig/base color=\",\n      \"vig/draw method=${1|direct,clipped|}\",\n      \"vig/fade in={${1:TikZ options}}\",\n      \"vig/fade out={${1:TikZ options}}\",\n      \"vig/semi fade in={${1:TikZ options}}\",\n      \"vig/semi fade out={${1:TikZ options}}\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"underlay vignette\",\n      \"underlay vignette={${1:vignette options}}\",\n      \"underlay raise shading vignette\",\n      \"underlay raise shading vignette={${1:vignette options}}\",\n      \"underlay raise fading vignette\",\n      \"underlay raise fading vignette={${1:vignette options}}\",\n      \"underlay shade in vignette\",\n      \"underlay shade in vignette={${1:vignette options}}\",\n      \"finish vignette\",\n      \"finish vignette={${1:vignette options}}\",\n      \"finish raised fading vignette\",\n      \"finish raised fading vignette={${1:vignette options}}\",\n      \"finish fading vignette\",\n      \"finish fading vignette={${1:vignette options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tdclock.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"initclock\"\n    },\n    {\n      \"name\": \"tdclock\"\n    },\n    {\n      \"name\": \"tdtime\"\n    },\n    {\n      \"name\": \"tddate\"\n    },\n    {\n      \"name\": \"tdday\"\n    },\n    {\n      \"name\": \"tdmonth\"\n    },\n    {\n      \"name\": \"tdyear\"\n    },\n    {\n      \"name\": \"tdhours\"\n    },\n    {\n      \"name\": \"tdminutes\"\n    },\n    {\n      \"name\": \"tdseconds\"\n    },\n    {\n      \"name\": \"crono\"\n    },\n    {\n      \"name\": \"cronohours\"\n    },\n    {\n      \"name\": \"cronominutes\"\n    },\n    {\n      \"name\": \"cronoseconds\"\n    },\n    {\n      \"name\": \"resetcrono\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetcrono{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"toggleclock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toggleclock{${1:button text}}\"\n      }\n    },\n    {\n      \"name\": \"factorclockfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"factorclockfont{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"hhmmss\"\n    },\n    {\n      \"name\": \"hhmm\"\n    },\n    {\n      \"name\": \"timeseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddmmyyyy\"\n    },\n    {\n      \"name\": \"mmddyyyy\"\n    },\n    {\n      \"name\": \"dateseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfcolon\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tdclock#c\": [\n      \"font=${1|Helv,HelvB,HelvI,HelvBI,Times,TimesB,TimesI,TimesBI,Cour,CourB,CourI,CourBI|}\",\n      \"timeinterval=${1:integer}\",\n      \"timeduration=${1:minutes}\",\n      \"timewarningfirst=${1:integer 0-100}\",\n      \"timewarningsecond=${1:integer 0-100}\",\n      \"timedeath=${1:0|1}\",\n      \"colorwarningfirst=\",\n      \"colorwarningsecond=\",\n      \"fillcolorwarningfirst=\",\n      \"fillcolorwarningsecond=\",\n      \"resetatpages=${3|none,all,${1:integer},{${2:list of integers}}|}\",\n      \"pageresetcontrol=${1|pdfpagelabels,pdfpagenumbers|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tdclock#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tdsfrmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"stmaryrd\",\n      \"if\": \"taupe\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nuplet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nuplet{${1:valeurs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"anuplet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anuplet{${1:valeurs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"rnuplet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rnuplet{${1:valeurs}}\"\n      }\n    },\n    {\n      \"name\": \"rnuplet\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rnuplet{${1:valeurs}}[${2:écart}]\"\n      }\n    },\n    {\n      \"name\": \"rnuplet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rnuplet[${2:md}]{${1:valeurs}}\"\n      }\n    },\n    {\n      \"name\": \"rnuplet\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rnuplet[${2:md}]{${1:valeurs}}[${3:écart}]\"\n      }\n    },\n    {\n      \"name\": \"parent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parent{${1:valeurs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"accol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accol{${1:valeur%formula}}\"\n      }\n    },\n    {\n      \"name\": \"crochet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crochet{${1:valeur%formula}}\"\n      }\n    },\n    {\n      \"name\": \"varabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varabs{${1:valeur%formula}}\"\n      }\n    },\n    {\n      \"name\": \"norme\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"norme{${1:valeur%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EncloreExtensible\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EncloreExtensible{${1:délim-gauche%formula}}{${2:délim-droite%formula}}{${3:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EncloreExtensible\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"EncloreExtensible[${4:md}]{${1:délim-gauche%formula}}{${2:délim-droite%formula}}{${3:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"EnsembleDeNombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EnsembleDeNombre{${1:lettre}}{${2:sup%formula}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"grastab\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grastab{${1:lettre}}\"\n      }\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"C[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"N\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"N[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"Q\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Q[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"R\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"R[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"Z\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Z[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"K\"\n    },\n    {\n      \"name\": \"K\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"K[${1:sup%formula}]\"\n      }\n    },\n    {\n      \"name\": \"definirvecteur\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definirvecteur{${1:a%formula}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"definirvecteur\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"definirvecteur[${4:bb}]{${1:a%formula}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"redefinirvecteur\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"redefinirvecteur{${1:a%formula}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"redefinirvecteur\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"redefinirvecteur[${4:bb}]{${1:a%formula}}{${2:n}}{${3:m}}\"\n      }\n    },\n    {\n      \"name\": \"vecti\"\n    },\n    {\n      \"name\": \"vectj\"\n    },\n    {\n      \"name\": \"vectk\"\n    },\n    {\n      \"name\": \"vectu\"\n    },\n    {\n      \"name\": \"vectv\"\n    },\n    {\n      \"name\": \"vecteur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vecteur{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vecteur\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"vecteur{${1:texte%formula}}[${2:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"vecteur\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vecteur[${2:espace-avant}]{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vecteur\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"vecteur[${2:espace-avant}]{${1:texte%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"vecteur*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vecteur*{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vecteur*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"vecteur*{${1:texte%formula}}[${2:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"vecteur*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vecteur*[${2:espace-avant}]{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"vecteur*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"vecteur*[${2:espace-avant}]{${1:texte%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"V{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"V{${1:texte%formula}}[${2:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"V[${2:espace-avant}]{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"V\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"V[${2:espace-avant}]{${1:texte%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"V*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"V*{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"V*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"V*{${1:texte%formula}}[${2:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"V*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"V*[${2:espace-avant}]{${1:texte%formula}}\"\n      }\n    },\n    {\n      \"name\": \"V*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"V*[${2:espace-avant}]{${1:texte%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"base\"\n    },\n    {\n      \"name\": \"base\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"base[${1:dimension : 1, 2 ou 3}]\"\n      }\n    },\n    {\n      \"name\": \"repere\"\n    },\n    {\n      \"name\": \"repere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"repere[${1:dimension : 1, 2 ou 3}]\"\n      }\n    },\n    {\n      \"name\": \"repere\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"repere[${1:dimension : 1, 2 ou 3}][${2:centre}]\"\n      }\n    },\n    {\n      \"name\": \"rog\"\n    },\n    {\n      \"name\": \"rog\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rog[${1:dimension : 1, 2 ou 3}]\"\n      }\n    },\n    {\n      \"name\": \"rog\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rog[${1:dimension : 1, 2 ou 3}][${2:centre}]\"\n      }\n    },\n    {\n      \"name\": \"ron\"\n    },\n    {\n      \"name\": \"ron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ron[${1:dimension : 1, 2 ou 3}]\"\n      }\n    },\n    {\n      \"name\": \"ron\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"ron[${1:dimension : 1, 2 ou 3}][${2:centre}]\"\n      }\n    },\n    {\n      \"name\": \"rond\"\n    },\n    {\n      \"name\": \"rond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rond[${1:dimension : 1, 2 ou 3}]\"\n      }\n    },\n    {\n      \"name\": \"rond\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"rond[${1:dimension : 1, 2 ou 3}][${2:centre}]\"\n      }\n    },\n    {\n      \"name\": \"repcom\"\n    },\n    {\n      \"name\": \"roncom\"\n    },\n    {\n      \"name\": \"rondcom\"\n    },\n    {\n      \"name\": \"Repere\"\n    },\n    {\n      \"name\": \"Repere*\"\n    },\n    {\n      \"name\": \"Rog\"\n    },\n    {\n      \"name\": \"Ron\"\n    },\n    {\n      \"name\": \"Rond\"\n    },\n    {\n      \"name\": \"E\"\n    },\n    {\n      \"name\": \"eu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eu{${1:exposant%formula}}\"\n      }\n    },\n    {\n      \"name\": \"I\"\n    },\n    {\n      \"name\": \"D\"\n    },\n    {\n      \"name\": \"FixeAvanceDx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FixeAvanceDx{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"FixeReculIntegrande\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FixeReculIntegrande{${1:nombre}}\"\n      }\n    },\n    {\n      \"name\": \"intgen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"intgen{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}\"\n      }\n    },\n    {\n      \"name\": \"intgen\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"intgen[${4:md}]{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}\"\n      }\n    },\n    {\n      \"name\": \"intgen\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"intgen[${4:md}][${5:recul}]{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrer\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"integrer{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrer\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"integrer[${5:md}]{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrer\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"integrer[${5:md}][${6:recul}]{${1:inf%formula}}{${2:sup%formula}}{${3:intégrande%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrale\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"integrale{${1:inf%formula}}{${2:sup%formula}}{${3:nom de fonction%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrale\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"integrale[${5:md}]{${1:inf%formula}}{${2:sup%formula}}{${3:nom de fonction%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"integrale\",\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"integrale[${5:md}][${6:recul}]{${1:inf%formula}}{${2:sup%formula}}{${3:nom de fonction%formula}}{${4:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"intabfx\"\n    },\n    {\n      \"name\": \"intabfx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"intabfx[${1:md}]\"\n      }\n    },\n    {\n      \"name\": \"intabfx\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"intabfx[${1:md}][${2:recul}]\"\n      }\n    },\n    {\n      \"name\": \"plusinf\"\n    },\n    {\n      \"name\": \"moinsinf\"\n    },\n    {\n      \"name\": \"interff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interff{${1:bornes%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interoo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interoo{${1:bornes%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interfo{${1:bornes%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interof{${1:bornes%formula}}\"\n      }\n    },\n    {\n      \"name\": \"intferab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"manus{${1:une lettre}}\"\n      }\n    },\n    {\n      \"name\": \"ensemble\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ensemble{${1:domaine%formula}}{${2:attributs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ensemble\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ensemble{${1:domaine%formula}}{${2:attributs%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"ensemble\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ensemble[${3:espace-avant}]{${1:domaine%formula}}{${2:attributs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ensemble\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"ensemble[${3:espace-avant}]{${1:domaine%formula}}{${2:attributs%formula}}[${4:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"vide\"\n    },\n    {\n      \"name\": \"dans\"\n    },\n    {\n      \"name\": \"donne\"\n    },\n    {\n      \"name\": \"ppq\"\n    },\n    {\n      \"name\": \"pgq\"\n    },\n    {\n      \"name\": \"cnp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cnp{${1:n%formula}}{${2:p%formula}}\"\n      }\n    },\n    {\n      \"name\": \"mdfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdfrac{${1:numerator%formula}}{${2:denominator%formula}}\"\n      }\n    },\n    {\n      \"name\": \"mfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mfrac{${1:numerator%formula}}{${2:denominator%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suite\",\n      \"if\": \"suite\"\n    },\n    {\n      \"name\": \"suite\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suite[${1:texte%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suite*\",\n      \"if\": \"suite\"\n    },\n    {\n      \"name\": \"suite*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"suite*[${1:deco%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suite*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"suite*[${1:deco%formula}][${2:texte%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"suitar{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"suitar[${3:texte%formula}]{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"suitar{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"suitar{${1:raison%formula}}{${2:premier%formula}}[${3:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"suitar[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"suitar{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}[${4:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"suitar[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}[${5:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"suitar*{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"suitar*[${3:texte%formula}]{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"suitar*{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"suitar*{${1:raison%formula}}{${2:premier%formula}}[${3:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"suitar*[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"suitar*{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}[${4:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitar*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"suitar*[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}[${5:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"suitgeo{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"suitgeo[${3:texte%formula}]{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"suitgeo{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"suitgeo{${1:raison%formula}}{${2:premier%formula}}[${3:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"suitgeo[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"suitgeo{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}[${4:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"suitgeo[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}[${5:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"suitgeo*{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"suitgeo*[${3:texte%formula}]{${1:raison%formula}}{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"suitgeo*{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"suitgeo*{${1:raison%formula}}{${2:premier%formula}}[${3:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"suitgeo*[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"suitgeo*{${1:raison%formula}}[${3:rang%formula}]{${2:premier%formula}}[${4:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"suitgeo*\",\n      \"if\": \"suite\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}[]\",\n        \"snippet\": \"suitgeo*[${3:texte%formula}]{${1:raison%formula}}[${4:rang%formula}]{${2:premier%formula}}[${5:entre%formula}]\"\n      }\n    },\n    {\n      \"name\": \"prodscal\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prodscal{${1:deux vecteurs%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Ker\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"Img\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"tendversen\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tendversen{${1:valeur}}\"\n      }\n    },\n    {\n      \"name\": \"devlim\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"devlim{${1:ordre du DL%formula}}\"\n      }\n    },\n    {\n      \"name\": \"devlim\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"devlim[${2:en%formula}]{${1:ordre du DL%formula}}\"\n      }\n    },\n    {\n      \"name\": \"drv\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drv{${1:fonction%formula}}{${2:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"drv\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drv[${3:n-ième}]{${1:fonction%formula}}{${2:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ddrv\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddrv{${1:fonction%formula}}{${2:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ddrv\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ddrv[${3:n-ième}]{${1:fonction%formula}}{${2:variable%formula}}\"\n      }\n    },\n    {\n      \"name\": \"derpart\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"derpart{${1:dessus%formula}}{${2:dessous%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interent{${1:bornes entières%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"interent{${1:bornes entières%formula}}[${2:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"interent[${2:md}]{${1:bornes entières%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"interent[${2:md}]{${1:bornes entières%formula}}[${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"interent[${2:md}][${3:espace-avant}]{${1:bornes entières%formula}}\"\n      }\n    },\n    {\n      \"name\": \"interent\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"interent[${2:md}][${3:espace-avant}]{${1:bornes entières%formula}}[${4:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"interzn\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"interzn\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"interzn[${1:md}]\"\n      }\n    },\n    {\n      \"name\": \"interzn\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"interzn[${1:md}][${2:espace-avant}]\"\n      }\n    },\n    {\n      \"name\": \"interzn\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"interzn[${1:md}][${2:espace-avant}][${3:espace-après}]\"\n      }\n    },\n    {\n      \"name\": \"parties\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parties{${1:ensemble%formula}}\"\n      }\n    },\n    {\n      \"name\": \"parties\",\n      \"if\": \"taupe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parties[${2:n}]{${1:ensemble%formula}}\"\n      }\n    },\n    {\n      \"name\": \"argsh\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"argch\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"argth\",\n      \"if\": \"taupe\"\n    },\n    {\n      \"name\": \"TdSMDerPartSepar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TdSMnuplet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TdSMnuplet{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TdSMReculParenthese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TdSMsepdefens\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tdsfrmath#c\": [\n      \"ArgArcMaj\",\n      \"avecmathdesign\",\n      \"calcomd=${1:csname}\",\n      \"caloptn=${1:option}\",\n      \"calpack=${1:package}\",\n      \"CharPoCal\",\n      \"CharPoGdT\",\n      \"ensdeco=${1|ehsb,ebsb,ehsh,ebsh,sbeb,sheh|}\",\n      \"gdtcomd=${1:csname}\",\n      \"gdtoptn=${1:option}\",\n      \"gdtpack=${1:package}\",\n      \"nupletsep=${1|virgule,pointvirgule|}\",\n      \"placesigne=${1|haut,bas|}\",\n      \"SepDefEnsExt\",\n      \"suite\",\n      \"suitedeco\",\n      \"taupe\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tdsfrmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ted.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Substitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Substitute{${1:input}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"Substitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Substitute*{${1:input}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"Substitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Substitute[${4:output}]{${1:input}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"Substitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"Substitute*[${4:output}]{${1:input}}{${2:from}}{${3:to}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowTokens{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTokens*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowTokens*{${1:token list}}\"\n      }\n    },\n    {\n      \"name\": \"ShowTokensLogonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowTokensOnline\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/telprint.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"telprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telprint{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"telspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telspace{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telhyphen{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telslash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telslash{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telleftparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telleftparen{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telrightparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telrightparen{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telplus{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"teltilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"teltilde{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"telnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"TELAtEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELfuture\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELreset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELrightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELsp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELsplit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELswitch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELtemp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELtilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TELx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/templatetools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"scrlfile\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"IfDefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfDefined{${1:command}}{${2:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"IfUndefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfUndefined{${1:command}}{${2:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfElseDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfElseDefined{${1:command}}{${2:code-defined}}{${3:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfElseUndefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfElseUndefined{${1:command}}{${2:code-undefined}}{${3:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"IfMultDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMultDefined{${1:list of commands%cmd}}{${2:code-defined}}{${3:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfDraft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfDraft{${1:draft-mode-active code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNotDraft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfNotDraft{${1:draft-mode-disabled code}}\"\n      }\n    },\n    {\n      \"name\": \"IfNotDraftElse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfNotDraftElse{${1:draft-mode-active code}}{${2:draft-mode-disabled code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageLoaded{${1:package}}{${2:is-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackageNotLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackageNotLoaded{${1:package}}{${2:is-not-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackagesLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackagesLoaded{${1:list of packages}}{${2:all-are-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"IfPackagesNotLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfPackagesNotLoaded{${1:list of packages}}{${2:none-are-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"IfElsePackageLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfElsePackageLoaded{${1:package}}{${2:is-loaded code}}{${3:is-not-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteAfterPackage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExecuteAfterPackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteBeforePackage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExecuteBeforePackage{${1:package}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfTikzLibraryLoaded\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfTikzLibraryLoaded{${1:library}}{${2:if-loaded code}}\"\n      }\n    },\n    {\n      \"name\": \"IfColumntypeDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfColumntypeDefined{${1:column type}}{${2:code-defined}}{${3:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfColumntypesDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfColumntypesDefined{${1:column type}}{${2:code-undefined}}{${3:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"IfColorDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfColorDefined{${1:color}}{${2:code-defined}}{${3:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfColorsDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfColorsDefined{${1:color}}{${2:code-undefined}}{${3:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"IfMathVersionDefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfMathVersionDefined{${1:font version}}{${2:code-defined}}{${3:code-undefined}}\"\n      }\n    },\n    {\n      \"name\": \"IfGlossariesStyleDefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfGlossariesStyleDefined{${1:style name}}{${2:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"IfBibEnvironmentDefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfBibEnvironmentDefined{${1:envname}}{${2:code-defined}}\"\n      }\n    },\n    {\n      \"name\": \"SetTemplateDefinition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetTemplateDefinition{${1:group}}{${2:property}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"UseDefinition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseDefinition{${1:group}}{${2:property}}\"\n      }\n    },\n    {\n      \"name\": \"CheckIfColumntypeDefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckIfColumntypeDefined{${1:column type}}\"\n      }\n    },\n    {\n      \"name\": \"isColumntypeDefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isColumntypeDefined{${1:column type}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tempora.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sufigures\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LGCscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tempora#c\": [\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\",\n      \"lining\",\n      \"oldstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tempora#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tengwarscript.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp-basic\"\n    },\n    {\n      \"name\": \"fp-snap\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tengwarparmaite\",\n      \"if\": \"parmaite\"\n    },\n    {\n      \"name\": \"tengwarparmaite\",\n      \"if\": \"parmaite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarparmaite[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarunicodeparmaite\",\n      \"if\": \"unicodeparmaite\"\n    },\n    {\n      \"name\": \"tengwarunicodeparmaite\",\n      \"if\": \"unicodeparmaite\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarunicodeparmaite[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarelfica\",\n      \"if\": \"elfica\"\n    },\n    {\n      \"name\": \"tengwarelfica\",\n      \"if\": \"elfica\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarelfica[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwargothika\",\n      \"if\": \"gothika\"\n    },\n    {\n      \"name\": \"tengwargothika\",\n      \"if\": \"gothika\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwargothika[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarformal\",\n      \"if\": \"formal\"\n    },\n    {\n      \"name\": \"tengwarformal\",\n      \"if\": \"formal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarformal[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatar\",\n      \"if\": \"annatar\"\n    },\n    {\n      \"name\": \"tengwarannatar\",\n      \"if\": \"annatar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatar[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatarbold\",\n      \"if\": \"annatarbold\"\n    },\n    {\n      \"name\": \"tengwarannatarbold\",\n      \"if\": \"annatarbold\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatarbold[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannataritalic\",\n      \"if\": \"annataritalic\"\n    },\n    {\n      \"name\": \"tengwarannataritalic\",\n      \"if\": \"annataritalic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannataritalic[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatarbolditalic\",\n      \"if\": \"annatarbolditalic\"\n    },\n    {\n      \"name\": \"tengwarannatarbolditalic\",\n      \"if\": \"annatarbolditalic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatarbolditalic[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenya\",\n      \"if\": \"quenya\"\n    },\n    {\n      \"name\": \"tengwarquenya\",\n      \"if\": \"quenya\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenya[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenyacapI\",\n      \"if\": \"quenyacapI\"\n    },\n    {\n      \"name\": \"tengwarquenyacapI\",\n      \"if\": \"quenyacapI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenyacapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenyacapII\",\n      \"if\": \"quenyacapII\"\n    },\n    {\n      \"name\": \"tengwarquenyacapII\",\n      \"if\": \"quenyacapII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenyacapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarin\",\n      \"if\": \"sindarin\"\n    },\n    {\n      \"name\": \"tengwarsindarin\",\n      \"if\": \"sindarin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarin[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarincapI\",\n      \"if\": \"sindarincapI\"\n    },\n    {\n      \"name\": \"tengwarsindarincapI\",\n      \"if\": \"sindarincapI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarincapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarincapII\",\n      \"if\": \"sindarincapII\"\n    },\n    {\n      \"name\": \"tengwarsindarincapII\",\n      \"if\": \"sindarincapII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarincapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldor\",\n      \"if\": \"noldor\"\n    },\n    {\n      \"name\": \"tengwarnoldor\",\n      \"if\": \"noldor\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldor[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldorcapI\",\n      \"if\": \"noldorcapI\"\n    },\n    {\n      \"name\": \"tengwarnoldorcapI\",\n      \"if\": \"noldorcapI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldorcapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldorcapII\",\n      \"if\": \"noldorcapII\"\n    },\n    {\n      \"name\": \"tengwarnoldorcapII\",\n      \"if\": \"noldorcapII\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldorcapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarteleri\",\n      \"if\": \"teleri\"\n    },\n    {\n      \"name\": \"tengwarteleri\",\n      \"if\": \"teleri\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarteleri[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarparmaite\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarparmaite\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarparmaite[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarunicodeparmaite\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarunicodeparmaite\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarunicodeparmaite[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarelfica\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarelfica\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarelfica[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwargothika\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwargothika\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwargothika[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarformal\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarformal\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarformal[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatar\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarannatar\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatar[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatarbold\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarannatarbold\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatarbold[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannataritalic\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarannataritalic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannataritalic[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarannatarbolditalic\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarannatarbolditalic\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarannatarbolditalic[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenya\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarquenya\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenya[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenyacapI\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarquenyacapI\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenyacapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarquenyacapII\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarquenyacapII\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarquenyacapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarin\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarsindarin\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarin[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarincapI\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarsindarincapI\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarincapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarsindarincapII\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarsindarincapII\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarsindarincapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldor\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarnoldor\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldor[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldorcapI\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarnoldorcapI\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldorcapI[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarnoldorcapII\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarnoldorcapII\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarnoldorcapII[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"tengwarteleri\",\n      \"if\": \"all\"\n    },\n    {\n      \"name\": \"tengwarteleri\",\n      \"if\": \"all\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tengwarteleri[${1:factor}]\"\n      }\n    },\n    {\n      \"name\": \"Taara\"\n    },\n    {\n      \"name\": \"Taha\"\n    },\n    {\n      \"name\": \"Talda\"\n    },\n    {\n      \"name\": \"Tampa\"\n    },\n    {\n      \"name\": \"Tanca\"\n    },\n    {\n      \"name\": \"Tando\"\n    },\n    {\n      \"name\": \"Tanga\"\n    },\n    {\n      \"name\": \"Tanna\"\n    },\n    {\n      \"name\": \"Tanto\"\n    },\n    {\n      \"name\": \"Tarda\"\n    },\n    {\n      \"name\": \"Tardaalt\"\n    },\n    {\n      \"name\": \"Tbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Tbox[${3:y}]{${1:x}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Tcalma\"\n    },\n    {\n      \"name\": \"Tcentereddot\"\n    },\n    {\n      \"name\": \"Tcenteredlongtilde\"\n    },\n    {\n      \"name\": \"Tcenteredtilde\"\n    },\n    {\n      \"name\": \"Tcolon\"\n    },\n    {\n      \"name\": \"Tcurlyhook\"\n    },\n    {\n      \"name\": \"Tcurlyhook\"\n    },\n    {\n      \"name\": \"Teight\"\n    },\n    {\n      \"name\": \"Televen\"\n    },\n    {\n      \"name\": \"Tempty\"\n    },\n    {\n      \"name\": \"tengmag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tengmag{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"tengwa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tengwa{${1:char-num}}\"\n      }\n    },\n    {\n      \"name\": \"Tesse\"\n    },\n    {\n      \"name\": \"Tessealt\"\n    },\n    {\n      \"name\": \"Tessenuquerna\"\n    },\n    {\n      \"name\": \"Tessenuquernaalt\"\n    },\n    {\n      \"name\": \"Texclamation\"\n    },\n    {\n      \"name\": \"Textendedando\"\n    },\n    {\n      \"name\": \"Textendedanga\"\n    },\n    {\n      \"name\": \"Textendedcalma\"\n    },\n    {\n      \"name\": \"Textendedparma\"\n    },\n    {\n      \"name\": \"Textendedquesse\"\n    },\n    {\n      \"name\": \"Textendedtinco\"\n    },\n    {\n      \"name\": \"Textendedumbar\"\n    },\n    {\n      \"name\": \"Textendedungwe\"\n    },\n    {\n      \"name\": \"Tfive\"\n    },\n    {\n      \"name\": \"Tformen\"\n    },\n    {\n      \"name\": \"Tfour\"\n    },\n    {\n      \"name\": \"Thalla\"\n    },\n    {\n      \"name\": \"Thwesta\"\n    },\n    {\n      \"name\": \"Thwestasindarinwa\"\n    },\n    {\n      \"name\": \"Thyarmen\"\n    },\n    {\n      \"name\": \"Tkern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tkern{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Tlambe\"\n    },\n    {\n      \"name\": \"Tlambealt\"\n    },\n    {\n      \"name\": \"Tlefthook\"\n    },\n    {\n      \"name\": \"Tlefthook\"\n    },\n    {\n      \"name\": \"Tmalta\"\n    },\n    {\n      \"name\": \"Tnine\"\n    },\n    {\n      \"name\": \"Tnoldo\"\n    },\n    {\n      \"name\": \"Tnuumen\"\n    },\n    {\n      \"name\": \"Tnwalme\"\n    },\n    {\n      \"name\": \"Tone\"\n    },\n    {\n      \"name\": \"Toore\"\n    },\n    {\n      \"name\": \"Tosse\"\n    },\n    {\n      \"name\": \"Tparenthesis\"\n    },\n    {\n      \"name\": \"Tparma\"\n    },\n    {\n      \"name\": \"Tquesse\"\n    },\n    {\n      \"name\": \"Tquestion\"\n    },\n    {\n      \"name\": \"Trighthook\"\n    },\n    {\n      \"name\": \"Trighthook\"\n    },\n    {\n      \"name\": \"Tromancomma\"\n    },\n    {\n      \"name\": \"Tromandblquoteleft\"\n    },\n    {\n      \"name\": \"Tromandblquoteright\"\n    },\n    {\n      \"name\": \"Tromanexclamation\"\n    },\n    {\n      \"name\": \"Tromanparenleft\"\n    },\n    {\n      \"name\": \"Tromanparenright\"\n    },\n    {\n      \"name\": \"Tromanperiod\"\n    },\n    {\n      \"name\": \"Tromanquestion\"\n    },\n    {\n      \"name\": \"Tromanquoteleft\"\n    },\n    {\n      \"name\": \"Tromanquoteright\"\n    },\n    {\n      \"name\": \"Tromansemicolon\"\n    },\n    {\n      \"name\": \"Troomen\"\n    },\n    {\n      \"name\": \"Troomenalt\"\n    },\n    {\n      \"name\": \"Ts\"\n    },\n    {\n      \"name\": \"Tseven\"\n    },\n    {\n      \"name\": \"Tsilme\"\n    },\n    {\n      \"name\": \"Tsilmealt\"\n    },\n    {\n      \"name\": \"Tsilmenuquerna\"\n    },\n    {\n      \"name\": \"Tsilmenuquernaalt\"\n    },\n    {\n      \"name\": \"Tsix\"\n    },\n    {\n      \"name\": \"TTacute\"\n    },\n    {\n      \"name\": \"TTbreve\"\n    },\n    {\n      \"name\": \"TTcaron\"\n    },\n    {\n      \"name\": \"TTdecimal\"\n    },\n    {\n      \"name\": \"TTdot\"\n    },\n    {\n      \"name\": \"TTdotbelow\"\n    },\n    {\n      \"name\": \"TTdoubleacute\"\n    },\n    {\n      \"name\": \"TTdoubleacutebelow\"\n    },\n    {\n      \"name\": \"TTdoubleleftcurl\"\n    },\n    {\n      \"name\": \"TTdoubler\"\n    },\n    {\n      \"name\": \"TTdoublerightcurl\"\n    },\n    {\n      \"name\": \"TTduodecimal\"\n    },\n    {\n      \"name\": \"Ttelco\"\n    },\n    {\n      \"name\": \"Tten\"\n    },\n    {\n      \"name\": \"Tthree\"\n    },\n    {\n      \"name\": \"Tthreeverticaldots\"\n    },\n    {\n      \"name\": \"Tthuule\"\n    },\n    {\n      \"name\": \"Ttinco\"\n    },\n    {\n      \"name\": \"TTleastsignificant\"\n    },\n    {\n      \"name\": \"TTleftcurl\"\n    },\n    {\n      \"name\": \"TTleftcurlbelow\"\n    },\n    {\n      \"name\": \"TTlefttilde\"\n    },\n    {\n      \"name\": \"TTlefttwodotsbelow\"\n    },\n    {\n      \"name\": \"TTnasalizer\"\n    },\n    {\n      \"name\": \"TTrightcurl\"\n    },\n    {\n      \"name\": \"TTrightcurlbelow\"\n    },\n    {\n      \"name\": \"TTthreedots\"\n    },\n    {\n      \"name\": \"TTthreedotsbelow\"\n    },\n    {\n      \"name\": \"TTtilde\"\n    },\n    {\n      \"name\": \"TTtwodots\"\n    },\n    {\n      \"name\": \"TTtwodotsbelow\"\n    },\n    {\n      \"name\": \"TTverticalbarbelow\"\n    },\n    {\n      \"name\": \"Ttwo\"\n    },\n    {\n      \"name\": \"Tumbar\"\n    },\n    {\n      \"name\": \"Tungwe\"\n    },\n    {\n      \"name\": \"Tunque\"\n    },\n    {\n      \"name\": \"Tuphook\"\n    },\n    {\n      \"name\": \"Tuphook\"\n    },\n    {\n      \"name\": \"Tuure\"\n    },\n    {\n      \"name\": \"Tvala\"\n    },\n    {\n      \"name\": \"Tvilya\"\n    },\n    {\n      \"name\": \"Tyanta\"\n    },\n    {\n      \"name\": \"Tzero\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tengwar\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tengwarscript#c\": [\n      \"parmaite\",\n      \"unicodeparmaite\",\n      \"elfica\",\n      \"gothika\",\n      \"formal\",\n      \"annatar\",\n      \"annatarbold\",\n      \"annataritalic\",\n      \"annatarbolditalic\",\n      \"quenya\",\n      \"quenyacapI\",\n      \"quenyacapII\",\n      \"sindarin\",\n      \"sindarincapI\",\n      \"sindarincapII\",\n      \"noldor\",\n      \"noldorcapI\",\n      \"noldorcapII\",\n      \"teleri\",\n      \"all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tengwarscript#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tensind.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tensordelimiter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensordelimiter{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"tensorformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tensorformat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"indexdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whenindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"whenindex{${1:index}}{${2:new-index}}{${3:commands}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tensor\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tensor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"indices\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indices{${1:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"indices*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indices*{${1:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensor{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tensor[${3:pre-indices}]{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tensor*{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"tensor*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tensor*[${3:pre-indices}]{${1:symbol}}{${2:^sup1_sub1^sup2_sub2...}}\"\n      }\n    },\n    {\n      \"name\": \"indexmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nuclide{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nuclide[${2:mass no%formula}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclide\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"nuclide[${2:mass no%formula}][${3:atomic no%formula}]{${1:symbol%formula}}\"\n      }\n    },\n    {\n      \"name\": \"nuclideFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"massnumFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensorSmash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tensorStrut\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tensor#c\": [\n      \"align\",\n      \"text\",\n      \"nosmash\",\n      \"nostrut\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tensor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/termcal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"skipday\"\n    },\n    {\n      \"name\": \"calday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"calday{${1:option list}}\"\n      }\n    },\n    {\n      \"name\": \"calday\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"calday[${2:head%text}]{${1:option list}}\"\n      }\n    },\n    {\n      \"name\": \"classday\"\n    },\n    {\n      \"name\": \"noclassday\"\n    },\n    {\n      \"name\": \"weeklytext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weeklytext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"options\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"options{${1:day}}{${2:option list}}\"\n      }\n    },\n    {\n      \"name\": \"caltext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"caltext{${1:day}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"caltexton\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"caltexton{${1:day}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"caltextnext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"caltextnext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"calboxdepth\"\n    },\n    {\n      \"name\": \"calwidth\"\n    },\n    {\n      \"name\": \"calprintdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calprintclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtotoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtotoks{${1:token box}}{${2:new tokens}}\"\n      }\n    },\n    {\n      \"name\": \"advancedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advancemonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classdayfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classdaytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifclassday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifleap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnewmonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leapfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leaptrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monthlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monthname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmonthfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmonthtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:register}}\"\n      }\n    },\n    {\n      \"name\": \"ordinaldate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setdate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdate{${1:mm/dd/yyyy}}\"\n      }\n    },\n    {\n      \"name\": \"setleap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theclassnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themonth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetextdaycount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theyear\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"calendar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:mm/dd/yyyy}}{${2:number of weeks}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/termes-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"termesOsF\"\n    },\n    {\n      \"name\": \"termesTLF\"\n    },\n    {\n      \"name\": \"Lctosc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lctosmcp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lctosmcp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lliga\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lliga{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lhlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lhlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ldlig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ldlig{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lcpsp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcpsp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lsinf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lsinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Land\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lfrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lfrac{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mbfscra\",\n      \"unusual\": true,\n      \"detail\": \"𝓪\",\n      \"doc\": \"Mathematical bold script small a\"\n    },\n    {\n      \"name\": \"mbfscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝓫\",\n      \"doc\": \"Mathematical bold script small b\"\n    },\n    {\n      \"name\": \"mbfscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝓬\",\n      \"doc\": \"Mathematical bold script small c\"\n    },\n    {\n      \"name\": \"mbfscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝓭\",\n      \"doc\": \"Mathematical bold script small d\"\n    },\n    {\n      \"name\": \"mbfscre\",\n      \"unusual\": true,\n      \"detail\": \"𝓮\",\n      \"doc\": \"Mathematical bold script small e\"\n    },\n    {\n      \"name\": \"mbfscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝓯\",\n      \"doc\": \"Mathematical bold script small f\"\n    },\n    {\n      \"name\": \"mbfscrg\",\n      \"unusual\": true,\n      \"detail\": \"𝓰\",\n      \"doc\": \"Mathematical bold script small g\"\n    },\n    {\n      \"name\": \"mbfscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝓱\",\n      \"doc\": \"Mathematical bold script small h\"\n    },\n    {\n      \"name\": \"mbfscri\",\n      \"unusual\": true,\n      \"detail\": \"𝓲\",\n      \"doc\": \"Mathematical bold script small i\"\n    },\n    {\n      \"name\": \"mbfscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝓳\",\n      \"doc\": \"Mathematical bold script small j\"\n    },\n    {\n      \"name\": \"mbfscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓴\",\n      \"doc\": \"Mathematical bold script small k\"\n    },\n    {\n      \"name\": \"mbfscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓵\",\n      \"doc\": \"Mathematical bold script small l\"\n    },\n    {\n      \"name\": \"mbfscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓶\",\n      \"doc\": \"Mathematical bold script small m\"\n    },\n    {\n      \"name\": \"mbfscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓷\",\n      \"doc\": \"Mathematical bold script small n\"\n    },\n    {\n      \"name\": \"mbfscro\",\n      \"unusual\": true,\n      \"detail\": \"𝓸\",\n      \"doc\": \"Mathematical bold script small o\"\n    },\n    {\n      \"name\": \"mbfscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓹\",\n      \"doc\": \"Mathematical bold script small p\"\n    },\n    {\n      \"name\": \"mbfscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓺\",\n      \"doc\": \"Mathematical bold script small q\"\n    },\n    {\n      \"name\": \"mbfscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓻\",\n      \"doc\": \"Mathematical bold script small r\"\n    },\n    {\n      \"name\": \"mbfscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓼\",\n      \"doc\": \"Mathematical bold script small s\"\n    },\n    {\n      \"name\": \"mbfscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓽\",\n      \"doc\": \"Mathematical bold script small t\"\n    },\n    {\n      \"name\": \"mbfscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓾\",\n      \"doc\": \"Mathematical bold script small u\"\n    },\n    {\n      \"name\": \"mbfscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓿\",\n      \"doc\": \"Mathematical bold script small v\"\n    },\n    {\n      \"name\": \"mbfscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝔀\",\n      \"doc\": \"Mathematical bold script small w\"\n    },\n    {\n      \"name\": \"mbfscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝔁\",\n      \"doc\": \"Mathematical bold script small x\"\n    },\n    {\n      \"name\": \"mbfscry\",\n      \"unusual\": true,\n      \"detail\": \"𝔂\",\n      \"doc\": \"Mathematical bold script small y\"\n    },\n    {\n      \"name\": \"mbfscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝔃\",\n      \"doc\": \"Mathematical bold script small z\"\n    },\n    {\n      \"name\": \"mscra\",\n      \"unusual\": true,\n      \"detail\": \"𝒶 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small a\"\n    },\n    {\n      \"name\": \"mscrb\",\n      \"unusual\": true,\n      \"detail\": \"𝒷 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small b\"\n    },\n    {\n      \"name\": \"mscrc\",\n      \"unusual\": true,\n      \"detail\": \"𝒸 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small c\"\n    },\n    {\n      \"name\": \"mscrd\",\n      \"unusual\": true,\n      \"detail\": \"𝒹 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small d\"\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrf\",\n      \"unusual\": true,\n      \"detail\": \"𝒻 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small f\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscrh\",\n      \"unusual\": true,\n      \"detail\": \"𝒽 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small h\"\n    },\n    {\n      \"name\": \"mscri\",\n      \"unusual\": true,\n      \"detail\": \"𝒾 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small i\"\n    },\n    {\n      \"name\": \"mscrj\",\n      \"unusual\": true,\n      \"detail\": \"𝒿 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small j\"\n    },\n    {\n      \"name\": \"mscrk\",\n      \"unusual\": true,\n      \"detail\": \"𝓀 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small k\"\n    },\n    {\n      \"name\": \"mscrl\",\n      \"unusual\": true,\n      \"detail\": \"𝓁 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small l\"\n    },\n    {\n      \"name\": \"mscrm\",\n      \"unusual\": true,\n      \"detail\": \"𝓂 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small m\"\n    },\n    {\n      \"name\": \"mscrn\",\n      \"unusual\": true,\n      \"detail\": \"𝓃 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small n\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mscrp\",\n      \"unusual\": true,\n      \"detail\": \"𝓅 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small p\"\n    },\n    {\n      \"name\": \"mscrq\",\n      \"unusual\": true,\n      \"detail\": \"𝓆 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small q\"\n    },\n    {\n      \"name\": \"mscrr\",\n      \"unusual\": true,\n      \"detail\": \"𝓇 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small r\"\n    },\n    {\n      \"name\": \"mscrs\",\n      \"unusual\": true,\n      \"detail\": \"𝓈 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small s\"\n    },\n    {\n      \"name\": \"mscrt\",\n      \"unusual\": true,\n      \"detail\": \"𝓉 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small t\"\n    },\n    {\n      \"name\": \"mscru\",\n      \"unusual\": true,\n      \"detail\": \"𝓊 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small u\"\n    },\n    {\n      \"name\": \"mscrv\",\n      \"unusual\": true,\n      \"detail\": \"𝓋 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small v\"\n    },\n    {\n      \"name\": \"mscrw\",\n      \"unusual\": true,\n      \"detail\": \"𝓌 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small w\"\n    },\n    {\n      \"name\": \"mscrx\",\n      \"unusual\": true,\n      \"detail\": \"𝓍 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small x\"\n    },\n    {\n      \"name\": \"mscry\",\n      \"unusual\": true,\n      \"detail\": \"𝓎 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small y\"\n    },\n    {\n      \"name\": \"mscrz\",\n      \"unusual\": true,\n      \"detail\": \"𝓏 (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Mathematical script small z\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/termes-otf#c\": [\n      \"lining\",\n      \"oldstyle\",\n      \"proportional\",\n      \"tabular\",\n      \"math=${1:font features}\",\n      \"ScaleRM=${1:factor}\",\n      \"defaultfeatures={${1:font features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/termes-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/termlist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"termlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termlabelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"termindent\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"termlist\"\n    },\n    {\n      \"name\": \"termlist*\"\n    },\n    {\n      \"name\": \"term\"\n    },\n    {\n      \"name\": \"term*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/termsim.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fontawesome5\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"minted\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarybreakable\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"termfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"termfile{${1:title%text}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"termfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"termfile[${3:options%keyvals}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"termfile*\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"termfile*[${3:options%keyvals}][${4:comments%text}]{${1:title%text}}{${2:file}}\",\n        \"keys\": [\n          \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"termset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"termset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UbuntuMin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UbuntuClose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UbuntuMax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WindowsLogo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"terminal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"terminal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"terminal*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"[${2:options%keyvals}][${3:comments%text}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{terminal},\\\\begin{terminal*},\\\\termfile,\\\\termfile*,\\\\termset\": [\n      \"minted\",\n      \"os=${1|win10,mac,ubuntu|}\",\n      \"theme=${1|dark,light,white|}\",\n      \"shstyle=${1:style}\",\n      \"shsize=${1:font size command}\",\n      \"commentf=${1:format commands}\",\n      \"shstretch=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/testhyphens.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"testhyphens\"\n    },\n    {\n      \"name\": \"breakafterword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getlastline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nomorelines\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"checkhyphens\"\n    },\n    {\n      \"name\": \"checkhyphens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:left-right}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/testidx-glossaries.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"testidx\"\n    },\n    {\n      \"name\": \"glossaries\"\n    },\n    {\n      \"name\": \"glossaries-mcols\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"extra\"\n    },\n    {\n      \"name\": \"glossaries-extra\",\n      \"if\": \"bib2gls\"\n    },\n    {\n      \"name\": \"glossaries-extra-bib2gls\",\n      \"if\": \"bib2gls\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLanguage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GlsSetXdyLanguage[${2:glossary type}]{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyCodePage\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyCodePage{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyCounters\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyCounters{${1:counter list}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAttribute\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyAttribute{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyLocation{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyLocation\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"GlsAddXdyLocation[${3:prefix-location}]{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyLocationClassOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyLocationClassOrder{${1:location names}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyMinRangeLength\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyMinRangeLength{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyFirstLetterAfterDigits\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyFirstLetterAfterDigits{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyNumberGroupOrder\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyNumberGroupOrder{${1:relative location}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddLetterGroup\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddLetterGroup{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddSortRule\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddSortRule{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyAlphabet\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlsAddXdyAlphabet{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"GlsAddXdyStyle\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsAddXdyStyle{${1:xindy style}}\"\n      }\n    },\n    {\n      \"name\": \"GlsSetXdyStyles\",\n      \"if\": \"xindy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GlsSetXdyStyles{${1:xindy styles}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxloadsamples\"\n    },\n    {\n      \"name\": \"tstidxmakegloss\"\n    },\n    {\n      \"name\": \"tstidxmakegloss\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tstidxmakegloss[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tstidxprintglossaries\"\n    },\n    {\n      \"name\": \"tstidxprintglossary\"\n    },\n    {\n      \"name\": \"tstidxprintglossary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tstidxprintglossary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tstidxprintglossary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/testidx-glossaries#c\": [\n      \"extra\",\n      \"noextra\",\n      \"makeindex\",\n      \"xindy\",\n      \"tex\",\n      \"bib2gls\",\n      \"manual\",\n      \"seekey\",\n      \"noseekey\",\n      \"noglsnumbers\",\n      \"glsnumbers\",\n      \"desc\",\n      \"nodesc\",\n      \"ascii\",\n      \"noascii\",\n      \"german\",\n      \"ngerman\",\n      \"nogerman\",\n      \"stripaccents\",\n      \"nostripaccents\",\n      \"sanitize\",\n      \"nosanitize\",\n      \"showmarks\",\n      \"hidemarks\",\n      \"noshowmarks\",\n      \"verbose\",\n      \"noverbose\",\n      \"notestencaps\",\n      \"testencaps\",\n      \"prefix\",\n      \"noprefix\",\n      \"diglyphs\",\n      \"nodiglyphs\"\n    ],\n    \"\\\\tstidxprintglossary#c\": [\n      \"type=\",\n      \"title=\",\n      \"toctitle=\",\n      \"style=\",\n      \"numberedsection=${1|false,nolabel,autolabel|}\",\n      \"nonumberlist\",\n      \"nogroupskip\",\n      \"nopostdot\",\n      \"entrycounter\",\n      \"subentrycounter\",\n      \"sort=${1|word,letter,standard,use,def,nocase,case|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/testidx-glossaries#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/testidx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"testidxGermanOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxGermanOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxStripAccents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxNoStripAccents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxSanitizeOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxSanitizeOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxshowmarkstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxshowmarksfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftestidxverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxverbosefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftestidxdiglyphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxdiglyphstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxdiglyphsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftestidxprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxprefixtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidxprefixfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testidx\"\n    },\n    {\n      \"name\": \"testidx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"testidx[${1:blocks}]\"\n      }\n    },\n    {\n      \"name\": \"tstidxmaxblocks\"\n    },\n    {\n      \"name\": \"tstidxprefixblock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxprefixblock{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"tstindex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstindex{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxopenmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxclosemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxsubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxopensubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxclosesubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxsubsubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxopensubsubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxclosesubsubmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxseemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxsubseemarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxsubseesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxencapi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxencapi{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxencapii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxencapii{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxencapiii\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxencapiii{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxSetSeeEncap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxSetSeeEncap{${1:encap name}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxSetSeeAlsoEncap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxSetSeeAlsoEncap{${1:encap name}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstidxtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstidxquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxactual\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxlevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxencap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxopenrange\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstidxcloserange\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/testidx#c\": [\n      \"ascii\",\n      \"noascii\",\n      \"german\",\n      \"ngerman\",\n      \"nogerman\",\n      \"stripaccents\",\n      \"nostripaccents\",\n      \"sanitize\",\n      \"nosanitize\",\n      \"showmarks\",\n      \"hidemarks\",\n      \"noshowmarks\",\n      \"verbose\",\n      \"noverbose\",\n      \"notestencaps\",\n      \"testencaps\",\n      \"prefix\",\n      \"noprefix\",\n      \"diglyphs\",\n      \"nodiglyphs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/testidx#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tetragonos.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"getTG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getTG{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"saveTG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"saveTG{${1:string}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"loadTG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadTG{${1:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/teubner.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"exscale\"\n    },\n    {\n      \"name\": \"textalpha\"\n    },\n    {\n      \"name\": \"trace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"\",\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    },\n    {\n      \"name\": \"<\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"<{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \">\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \">{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"2tr\"\n    },\n    {\n      \"name\": \"4MACRO\"\n    },\n    {\n      \"name\": \"A\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"A{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Ab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ab{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"acapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accacuto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accacuto{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"accbreve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbreve{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"acccircon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acccircon{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"accdieresi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdieresi{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"accgrave\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accgrave{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"accmacron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accmacron{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Ad\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ad{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"aeolchorsor\"\n    },\n    {\n      \"name\": \"aeolicbii\"\n    },\n    {\n      \"name\": \"aeolicbiii\"\n    },\n    {\n      \"name\": \"aeolicbiv\"\n    },\n    {\n      \"name\": \"Am\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Am{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"anceps\"\n    },\n    {\n      \"name\": \"ancepsdbrevis\"\n    },\n    {\n      \"name\": \"antilabe\"\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"apex\"\n    },\n    {\n      \"name\": \"apici\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"apici{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ar{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Arb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Arm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"As\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"As{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Asb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Asm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Asm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"AtticNumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtticNumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"B\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"B{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"banceps\"\n    },\n    {\n      \"name\": \"barbbrevis\"\n    },\n    {\n      \"name\": \"barbrevis\"\n    },\n    {\n      \"name\": \"bbrevis\"\n    },\n    {\n      \"name\": \"bcutbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bd{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"boldLipsianfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boldLipsiantrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakVersofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakVersotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brevis\"\n    },\n    {\n      \"name\": \"C\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"C{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"c\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"c{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"cap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cap{${1:letter}}\"\n      },\n      \"detail\": \"∩\",\n      \"doc\": \"Intersection\"\n    },\n    {\n      \"name\": \"catal\"\n    },\n    {\n      \"name\": \"Cd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cd{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"chor\"\n    },\n    {\n      \"name\": \"Cm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"coppa\"\n    },\n    {\n      \"name\": \"Coppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corona\"\n    },\n    {\n      \"name\": \"coronainv\"\n    },\n    {\n      \"name\": \"Coronis\"\n    },\n    {\n      \"name\": \"coronis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cr{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Crm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Crm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"crux\"\n    },\n    {\n      \"name\": \"Cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cs{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Csm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Csm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"cut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cut{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"D\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"D{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Dashes\"\n    },\n    {\n      \"name\": \"DASHES\"\n    },\n    {\n      \"name\": \"Dashes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dashes[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"DASHES\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DASHES[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"dBar\"\n    },\n    {\n      \"name\": \"dcutbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denarius\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"Dots\"\n    },\n    {\n      \"name\": \"DOTS\"\n    },\n    {\n      \"name\": \"Dots\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dots[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"DOTS\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"DOTS[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"downfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dparagr\"\n    },\n    {\n      \"name\": \"dracma\"\n    },\n    {\n      \"name\": \"dstar\"\n    },\n    {\n      \"name\": \"dz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ElemInd\"\n    },\n    {\n      \"name\": \"ENcdq\"\n    },\n    {\n      \"name\": \"ENdqtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ENdqtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ENodq\"\n    },\n    {\n      \"name\": \"enopl\"\n    },\n    {\n      \"name\": \"etos\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"Euro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"f\"\n    },\n    {\n      \"name\": \"F\"\n    },\n    {\n      \"name\": \"fHigh\"\n    },\n    {\n      \"name\": \"FinisCarmen\"\n    },\n    {\n      \"name\": \"FinCar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fLow\"\n    },\n    {\n      \"name\": \"frapar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frapar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"G\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"G{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Gb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"gcutbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gd{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GEcdq\"\n    },\n    {\n      \"name\": \"GEcq\"\n    },\n    {\n      \"name\": \"GEdqtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GEdqtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GEodq\"\n    },\n    {\n      \"name\": \"GEoq\"\n    },\n    {\n      \"name\": \"GEqtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GEqtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"GlyphNamesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GlyphNamestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Gr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gr{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Grb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Grb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GreekName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greeknumeral*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Grm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Grm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"grtoday\"\n    },\n    {\n      \"name\": \"grtoday*\"\n    },\n    {\n      \"name\": \"Gs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gs{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Gsb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gsb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Gsm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gsm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"GTROF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GTRON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gusv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"hemiobelion\"\n    },\n    {\n      \"name\": \"hexam\"\n    },\n    {\n      \"name\": \"Hfill\"\n    },\n    {\n      \"name\": \"hiatus\"\n    },\n    {\n      \"name\": \"Hiatus\"\n    },\n    {\n      \"name\": \"hv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iam\"\n    },\n    {\n      \"name\": \"ifboldLipsian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifBreakVersi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifCMLM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifCMLM{${1:family}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifFamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifFamily{${1:latin}}{${2:greek}}\"\n      }\n    },\n    {\n      \"name\": \"ifGlyphNames\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLipsian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifonesizetypeone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPDF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifSubVerso\"\n    },\n    {\n      \"name\": \"Int\"\n    },\n    {\n      \"name\": \"iod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ipercatal\"\n    },\n    {\n      \"name\": \"iS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iS{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"itclosedquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itcq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itopenquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itoq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kclick\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Koppa\"\n    },\n    {\n      \"name\": \"ladd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ladd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Ladd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ladd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lbrk\"\n    },\n    {\n      \"name\": \"ldel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ldel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lesp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lesp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Lipsiakostext\"\n    },\n    {\n      \"name\": \"Lipsianfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lipsiantrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lishape\"\n    },\n    {\n      \"name\": \"LitNil\"\n    },\n    {\n      \"name\": \"litnil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lladd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lladd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LLadd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LLadd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LLadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"LLadd{${1:text}}[${2:right kerning}]\"\n      }\n    },\n    {\n      \"name\": \"LLadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LLadd[${2:left kerning}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LLadd\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"LLadd[${2:left kerning}]{${1:text}}[${3:right kerning}]\"\n      }\n    },\n    {\n      \"name\": \"LLaddKern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LLaddKern{${1:len1}}{${2:len2}}\"\n      }\n    },\n    {\n      \"name\": \"lmqi\"\n    },\n    {\n      \"name\": \"lmqs\"\n    },\n    {\n      \"name\": \"longa\"\n    },\n    {\n      \"name\": \"lpar\"\n    },\n    {\n      \"name\": \"M\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"M{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mcap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mcap{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"md\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"md{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"metricsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metricstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"metricstack{${1:base}}{${2:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"mezzeq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mezzeq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mO{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"mqi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mqi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mqs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mqs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MutPers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mutpers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nasal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nasal{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"nbs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nesso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nesso{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"newmetrics\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newmetrics{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"nexus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nexus{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoLipsiakostext\"\n    },\n    {\n      \"name\": \"NoSubVerso\"\n    },\n    {\n      \"name\": \"onesizetypeonefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onesizetypeonetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Open\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Open{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"OSN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OSN{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"palat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"palat{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"paragr\"\n    },\n    {\n      \"name\": \"pentam\"\n    },\n    {\n      \"name\": \"permill\"\n    },\n    {\n      \"name\": \"positio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posthindspace\"\n    },\n    {\n      \"name\": \"posthinspace\"\n    },\n    {\n      \"name\": \"previousencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"previouslanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"q\"\n    },\n    {\n      \"name\": \"qmark\"\n    },\n    {\n      \"name\": \"qu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qusv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"r\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"r{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Rb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"rbrk\"\n    },\n    {\n      \"name\": \"responsio\"\n    },\n    {\n      \"name\": \"ring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ring{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"Rm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Rm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"rmqi\"\n    },\n    {\n      \"name\": \"rmqs\"\n    },\n    {\n      \"name\": \"rpar\"\n    },\n    {\n      \"name\": \"rsshape\"\n    },\n    {\n      \"name\": \"rszeugma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rszeugma{${1:two letters}}\"\n      }\n    },\n    {\n      \"name\": \"s\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"s{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"Sb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sb{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"schwa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"semiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"semiv{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"shva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shwa\"\n    },\n    {\n      \"name\": \"sinafia\"\n    },\n    {\n      \"name\": \"siner\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siner{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"siniz\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"siniz{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"skewstack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"skewstack{${1:base}}{${2:apex}}\"\n      }\n    },\n    {\n      \"name\": \"slzeugm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slzeugm{${1:two letters}}\"\n      }\n    },\n    {\n      \"name\": \"slzeugma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slzeugma{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Sm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sm{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"smallvert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splus\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"stater\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"stimes\"\n    },\n    {\n      \"name\": \"substitutefontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"substitutefontfamily{${1:family}}{${2:latin}}{${3:greek}}\"\n      }\n    },\n    {\n      \"name\": \"SubVerso\"\n    },\n    {\n      \"name\": \"SubVerso\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SubVerso[${1:inner number}]\"\n      }\n    },\n    {\n      \"name\": \"SubVersofalse\"\n    },\n    {\n      \"name\": \"SubVersotrue\"\n    },\n    {\n      \"name\": \"sva\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"svert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tBar\"\n    },\n    {\n      \"name\": \"tenaspir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tenaspir{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"tetartemorion\"\n    },\n    {\n      \"name\": \"textDidot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textDidot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdigamma\"\n    },\n    {\n      \"name\": \"textli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textli{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textLipsias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textLipsias{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textmtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmtr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrs{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textui{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thesubverso\"\n    },\n    {\n      \"name\": \"theverso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thorn\"\n    },\n    {\n      \"name\": \"Thorn\"\n    },\n    {\n      \"name\": \"TROF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TRON\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tstar\"\n    },\n    {\n      \"name\": \"U\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"U{${1:diphthong}}\"\n      }\n    },\n    {\n      \"name\": \"ubarbbrevis\"\n    },\n    {\n      \"name\": \"ubarbrevis\"\n    },\n    {\n      \"name\": \"ubarsbrevis\"\n    },\n    {\n      \"name\": \"ubrevislonga\"\n    },\n    {\n      \"name\": \"Ud\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ud{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"uishape\"\n    },\n    {\n      \"name\": \"UO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UO{${1:letter}}\"\n      }\n    },\n    {\n      \"name\": \"upfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ut{${1:letters}}\"\n      }\n    },\n    {\n      \"name\": \"Utie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Utie{${1:two letters}}\"\n      }\n    },\n    {\n      \"name\": \"varkoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varstigma\"\n    },\n    {\n      \"name\": \"Vdeka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verseskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verseskip{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"verso\"\n    },\n    {\n      \"name\": \"verso\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verso[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"versoskip\"\n    },\n    {\n      \"name\": \"Vetto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vkilo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vmiria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"X\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yod\"\n    },\n    {\n      \"name\": \"zeugma\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zeugma{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"aa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"aai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ac\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"aci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ag\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"agi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ar\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ara\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"arai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"arc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"arci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"arg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"argi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ari\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"as\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"asi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ea\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"eg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"er\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"era\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"erg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"es\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"esa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"esg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ha\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hr\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hra\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hrai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hrc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hrci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hrg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hrgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hri\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hs\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"hsi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ia\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ic\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"id\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"Id\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ida\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"idc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"idg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ig\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ir\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ira\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"irc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"irg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"is\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"isa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"isc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"isg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"oa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"oG\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"oR\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ora\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"org\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"os\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"osa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"osg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"rr\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"rs\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ua\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"uc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ud\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"Ud\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"uda\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"udc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"udg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ug\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ur\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ura\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"urc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"urg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"us\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"usa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"usc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"usg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wr\",\n      \"if\": \"GlyphNames\",\n      \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Wreath product\"\n    },\n    {\n      \"name\": \"wra\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wrai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wrc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wrci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wrg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wrgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wri\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"ws\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsa\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsai\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsc\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsci\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsg\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsgi\",\n      \"if\": \"GlyphNames\"\n    },\n    {\n      \"name\": \"wsi\",\n      \"if\": \"GlyphNames\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"bracedmetrics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"GRD\"\n    },\n    {\n      \"name\": \"GRD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"GRL\"\n    },\n    {\n      \"name\": \"GRL\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:series}]\"\n      }\n    },\n    {\n      \"name\": \"Lipsiakostext\"\n    },\n    {\n      \"name\": \"Versi\"\n    },\n    {\n      \"name\": \"VERSI\"\n    },\n    {\n      \"name\": \"Versi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"VERSI\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:outer number}]\"\n      }\n    },\n    {\n      \"name\": \"versi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/teubner#c\": [\n      \"boldLipsian\",\n      \"10pt\",\n      \"NoGlyphNames\",\n      \"GlyphNames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/teubner#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tex-locale.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xfor\"\n    },\n    {\n      \"name\": \"tracklang\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"texosquery\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontawesome\",\n      \"if\": \"symbols=fontawesome\"\n    },\n    {\n      \"name\": \"babel\",\n      \"if\": \"support=babel\"\n    },\n    {\n      \"name\": \"polyglossia\",\n      \"if\": \"support=polyglossia\"\n    },\n    {\n      \"name\": \"CJK\",\n      \"if\": \"support=cjk\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"inputenc=auto\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"inputenc=utf8\"\n    },\n    {\n      \"name\": \"inputenc\",\n      \"if\": \"inputenc=utf8x\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"inputenc=utf8x\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"datetime=iso\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"datetime=text\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"datetime=num\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"datetime=numeric\"\n    },\n    {\n      \"name\": \"datetime2\",\n      \"if\": \"iso\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"fontenc=T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"fontenc=T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"fontenc=T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"fontenc=T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"fontenc=T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"fontenc=T1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"fontenc=T1\"\n    },\n    {\n      \"name\": \"LocaleQueryFile\"\n    },\n    {\n      \"name\": \"LocaleStyQueryFile\"\n    },\n    {\n      \"name\": \"localeprequery\"\n    },\n    {\n      \"name\": \"localepostquery\"\n    },\n    {\n      \"name\": \"LocaleMain\"\n    },\n    {\n      \"name\": \"LocaleOther\"\n    },\n    {\n      \"name\": \"selectlocale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectlocale{${1:locale}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleOSname\"\n    },\n    {\n      \"name\": \"LocaleOSversion\"\n    },\n    {\n      \"name\": \"LocaleOSarch\"\n    },\n    {\n      \"name\": \"LocaleOScodeset\"\n    },\n    {\n      \"name\": \"LocaleQueryCodesetParam\"\n    },\n    {\n      \"name\": \"LocaleOStag\"\n    },\n    {\n      \"name\": \"LocaleNowStamp\"\n    },\n    {\n      \"name\": \"LocaleMainFile\"\n    },\n    {\n      \"name\": \"LocaleFileMod\"\n    },\n    {\n      \"name\": \"LocaleSetAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleSetAttribute{${1:label}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleGetAttribute{${1:label}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleSetDialectAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleSetDialectAttribute{${1:dialect}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetDialectAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleGetDialectAttribute{${1:dialect}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleSetRegionAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleSetRegionAttribute{${1:region code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetRegionAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleGetRegionAttribute{${1:region code}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleSetCurrencyAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleSetCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetCurrencyAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleGetCurrencyAttribute{${1:currency code}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"localeshowattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localeshowattribute{${1:label}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"localeshowdialectattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localeshowdialectattribute{${1:dialect}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"localeshowregionattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localeshowregionattribute{${1:region code}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"localeshowcurrencyattribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localeshowcurrencyattribute{${1:currency code}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAddToAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAddToAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAddToAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAddToAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfInAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfInAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfXpInAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfXpInAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEachInAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleForEachInAttributeList{${1:label}}{${2:attribute}}{${3:cmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAddToDialectAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAddToDialectAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAddToDialectAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAddToDialectAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfInDialectAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfInDialectAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfXpInDialectAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfXpInDialectAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEachInDialectAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleForEachInDialectAttributeList{${1:label}}{${2:attribute}}{${3:cmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAddToRegionAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAddToRegionAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAddToRegionAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAddToRegionAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfInRegionAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfInRegionAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfXpInRegionAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfXpInRegionAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEachInRegionAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleForEachInRegionAttributeList{${1:label}}{${2:attribute}}{${3:cmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAddToCurrencyAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAddToCurrencyAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAddToCurrencyAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAddToCurrencyAttributeList{${1:label}}{${2:attribute}}{${3:item}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfInCurrencyAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfInCurrencyAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfXpInCurrencyAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfXpInCurrencyAttributeList{${1:label}}{${2:attribute}}{${3:item}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleForEachInCurrencyAttributeList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleForEachInCurrencyAttributeList{${1:label}}{${2:attribute}}{${3:cmd}}{${4:body}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetDialectAttribute\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleGetDialectAttribute{${1:dialect}}{${2:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"localenumfmt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"localenumfmt{${1:pattern}}{${2:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"localenumfmtneg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localenumfmtneg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localenumfmtzero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localenumfmtzero{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localenumfmtpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localenumfmtpos{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"localeint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeint{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"localedec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localedec{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"localecur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localecur{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"localeper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localeper{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfDateTimePatternsSupported\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleIfDateTimePatternsSupported{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDateTimeInfo\"\n    },\n    {\n      \"name\": \"LocaleApplyDateTimePattern\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleApplyDateTimePattern{${1:dialect}}{${2:attribute}}{${3:data}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleMainDialect\"\n    },\n    {\n      \"name\": \"LocaleMainRegion\"\n    },\n    {\n      \"name\": \"LocaleLanguageTag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLanguageTag{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLanguageName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLanguageName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLanguageNativeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLanguageNativeName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleRegionName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleRegionName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleRegionNativeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleRegionNativeName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleVariantName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleVariantName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleVariantNativeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleVariantNativeName{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasLanguageName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleIfHasLanguageName{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasRegionName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleIfHasRegionName{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasVariantName\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleIfHasVariantName{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"localedatetimefmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localedatetimefmt{${1:date-time text}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleFullDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleFullDate{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLongDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLongDate{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleMediumDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleMediumDate{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleShortDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleShortDate{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"dtmMondayIndex\"\n    },\n    {\n      \"name\": \"dtmTuesdayIndex\"\n    },\n    {\n      \"name\": \"dtmWednesdayIndex\"\n    },\n    {\n      \"name\": \"dtmThursdayIndex\"\n    },\n    {\n      \"name\": \"dtmFridayIndex\"\n    },\n    {\n      \"name\": \"dtmSaturdayIndex\"\n    },\n    {\n      \"name\": \"dtmSundayIndex\"\n    },\n    {\n      \"name\": \"LocaleDayName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleDayName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleShortDayName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleShortDayName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleStandaloneDayName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleStandaloneDayName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleStandaloneShortDayName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleStandaloneShortDayName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleFirstDayIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleFirstDayIndex{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexFromZeroMonToOneSun\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleDayIndexFromZeroMonToOneSun{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexFromZeroMonToOneMon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleDayIndexFromZeroMonToOneMon{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexFromOneSunToZeroMon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleDayIndexFromOneSunToZeroMon{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexFromOneMonToZeroMon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleDayIndexFromOneMonToZeroMon{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexFromRegion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleDayIndexFromRegion{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleDayIndexToRegion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleDayIndexToRegion{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleMonthName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleMonthName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleShortMonthName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleShortMonthName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleStandaloneMonthName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleStandaloneMonthName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleStandaloneShortMonthName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LocaleStandaloneShortMonthName{${1:dialect}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleFullTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleFullTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLongTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLongTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleMediumTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleMediumTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleShortTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleShortTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleFullDateTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleFullDateTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLongDateTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleLongDateTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleMediumDateTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleMediumDateTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleShortDateTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleShortDateTime{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericGroupSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericGroupSep{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfNumericUsesGroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleIfNumericUsesGroup{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericDecimalSep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericDecimalSep{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericMonetarySep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericMonetarySep{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericExponent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericExponent{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericPercent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericPercent{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleNumericPermill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleNumericPermill{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleCurrencyLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleCurrencyLabel{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleCurrencyRegionalLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleCurrencyRegionalLabel{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleCurrencySymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleCurrencySymbol{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleCurrencyTeXSymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LocaleCurrencyTeXSymbol{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleLanguageName\"\n    },\n    {\n      \"name\": \"CurrentLocaleLanguageNativeName\"\n    },\n    {\n      \"name\": \"CurrentLocaleRegionName\"\n    },\n    {\n      \"name\": \"CurrentLocaleRegionNativeName\"\n    },\n    {\n      \"name\": \"CurrentLocaleVariantName\"\n    },\n    {\n      \"name\": \"CurrentLocaleVariantNativeName\"\n    },\n    {\n      \"name\": \"CurrentLocaleFirstDayIndex\"\n    },\n    {\n      \"name\": \"CurrentLocaleDayIndexFromRegion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleDayIndexFromRegion{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleDayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleDayName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleShortDayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleShortDayName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleStandaloneDayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleStandaloneDayName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleStandaloneShortDayName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleStandaloneShortDayName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleMonthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleMonthName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleShortMonthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleShortMonthName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleStandaloneMonthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleStandaloneMonthName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleStandaloneShortMonthName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CurrentLocaleStandaloneShortMonthName{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleDate\"\n    },\n    {\n      \"name\": \"localedatechoice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"localedatechoice{${1:full}}{${2:long}}{${3:medium}}{${4:short}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleTime\"\n    },\n    {\n      \"name\": \"localetimechoice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"localetimechoice{${1:full}}{${2:long}}{${3:medium}}{${4:short}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleDateTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleFullDate\"\n    },\n    {\n      \"name\": \"CurrentLocaleLongDate\"\n    },\n    {\n      \"name\": \"CurrentLocaleMediumDate\"\n    },\n    {\n      \"name\": \"CurrentLocaleShortDate\"\n    },\n    {\n      \"name\": \"CurrentLocaleFullTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleLongTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleMediumTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleShortTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleFullDateTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleLongDateTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleMediumDateTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleShortDateTime\"\n    },\n    {\n      \"name\": \"CurrentLocaleCurrency\"\n    },\n    {\n      \"name\": \"localecurrchoice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"localecurrchoice{${1:label}}{${2:regional}}{${3:symbol}}{${4:TeX}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleNumericGroupSep\"\n    },\n    {\n      \"name\": \"CurrentLocaleIfNumericUsesGroup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CurrentLocaleIfNumericUsesGroup{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentLocaleDecimalSep\"\n    },\n    {\n      \"name\": \"CurrentLocaleMonetarySep\"\n    },\n    {\n      \"name\": \"CurrentLocaleExponent\"\n    },\n    {\n      \"name\": \"CurrentLocalePercent\"\n    },\n    {\n      \"name\": \"CurrentLocalePermill\"\n    },\n    {\n      \"name\": \"CurrentLocaleIntegerPattern\"\n    },\n    {\n      \"name\": \"CurrentLocaleDecimalPattern\"\n    },\n    {\n      \"name\": \"CurrentLocaleCurrencyPattern\"\n    },\n    {\n      \"name\": \"CurrentLocalePercentPattern\"\n    },\n    {\n      \"name\": \"CurrentLocaleApplyDateTimePattern\"\n    },\n    {\n      \"name\": \"LocaleSupportPackageCase\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleSupportPackageCase{${1:babel}}{${2:polyglossia}}{${3:neither}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAppToAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAppToAttribute{${1:label}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAppToCurrencyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAppToCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAppToDialectAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAppToDialectAttribute{${1:dialect}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleAppToRegionAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleAppToRegionAttribute{${1:region code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetAttributeOrDefValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleGetAttributeOrDefValue{${1:label}}{${2:attribute}}{${3:default}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetCurrencyAttributeOrDefValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleGetCurrencyAttributeOrDefValue{${1:currency code}}{${2:attribute}}{${3:default}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetDialectAttributeOrDefValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleGetDialectAttributeOrDefValue{${1:dialect}}{${2:attribute}}{${3:default}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleGetRegionAttributeOrDefValue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleGetRegionAttributeOrDefValue{${1:region code}}{${2:attribute}}{${3:default}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfAttributeEqCsName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfAttributeEqCsName{${1:label}}{${2:attribute}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfAttributeEqCs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfAttributeEqCs{${1:label}}{${2:attribute}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfAttributeEqNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfAttributeEqNum{${1:label}}{${2:attribute}}{${3:num}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfCurrencyAttributeEqCsName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfCurrencyAttributeEqCsName{${1:currency code}}{${2:attribute}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfCurrencyAttributeEqCs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfCurrencyAttributeEqCs{${1:currency code}}{${2:attribute}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfCurrencyAttributeEqNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfCurrencyAttributeEqNum{${1:currency code}}{${2:attribute}}{${3:num}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfDialectAttributeEqCsName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfDialectAttributeEqCsName{${1:dialect}}{${2:attribute}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfDialectAttributeEqCs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfDialectAttributeEqCs{${1:dialect}}{${2:attribute}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfDialectAttributeEqNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfDialectAttributeEqNum{${1:dialect}}{${2:attribute}}{${3:num}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasAttribute{${1:label}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasCurrencyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasCurrencyNonEmptyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasCurrencyNonEmptyAttribute{${1:currency code}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasDialectAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasDialectAttribute{${1:dialect}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasDialectNonEmptyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasDialectNonEmptyAttribute{${1:dialect}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasNonEmptyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasNonEmptyAttribute{${1:label}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasRegionAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasRegionAttribute{${1:region code}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfHasRegionNonEmptyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"LocaleIfHasRegionNonEmptyAttribute{${1:region code}}{${2:attribute}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfRegionAttributeEqCsName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfRegionAttributeEqCsName{${1:region code}}{${2:attribute}}{${3:csname}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfRegionAttributeEqCs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfRegionAttributeEqCs{${1:region code}}{${2:attribute}}{${3:cmd}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfRegionAttributeEqNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfRegionAttributeEqNum{${1:region code}}{${2:attribute}}{${3:num}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfSameAttributeValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfSameAttributeValues{${1:label}}{${2:attribute1}}{${3:attribute2}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfSameCurrencyAttributeValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfSameCurrencyAttributeValues{${1:currency code}}{${2:attribute1}}{${3:attribute2}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfSameDialectAttributeValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfSameDialectAttributeValues{${1:dialect}}{${2:attribute1}}{${3:attribute2}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleIfSameRegionAttributeValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"LocaleIfSameRegionAttributeValues{${1:region code}}{${2:attribute1}}{${3:attribute2}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLetAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleLetAttribute{${1:label}}{${2:attribute}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLetCurrencyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleLetCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLetDialectAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleLetDialectAttribute{${1:dialect}}{${2:attribute}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleLetRegionAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleLetRegionAttribute{${1:region code}}{${2:attribute}}{${3:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleProvideAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleProvideAttribute{${1:label}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleProvideCurrencyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleProvideCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleProvideDialectAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleProvideDialectAttribute{${1:dialect}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleProvideRegionAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleProvideRegionAttribute{${1:region code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAppToAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAppToAttribute{${1:label}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAppToCurrencyAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAppToCurrencyAttribute{${1:currency code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAppToDialectAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAppToDialectAttribute{${1:dialect}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"LocaleXpAppToRegionAttribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"LocaleXpAppToRegionAttribute{${1:region code}}{${2:attribute}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"localenopolypunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"localenopolypunct{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatEEEE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatEEEE{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatEEE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatEEE{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatLLLL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatLLLL{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatLLL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatLLL{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatMMMM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatMMMM{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatMMM\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatMMM{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerytimezonefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerytimezonefmt{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tex-locale#c\": [\n      \"main=${1:tag}\",\n      \"other={${1:tag list}}\",\n      \"symbols=${1|textcomp,fontawesome,none|}\",\n      \"support=${1|none,auto,babel,polyglossia,cjk|}\",\n      \"fontenc=${2|none,auto,${1:encoding}|}\",\n      \"inputenc=${2|none,auto,${1:encoding}|}\",\n      \"datetime=${1|false,iso,text,num,locale|}\",\n      \"iso\",\n      \"date=${1|full,long,medium,short|}\",\n      \"time=${1|full,long,medium,short|}\",\n      \"timedate\",\n      \"currency=${1|official,unofficial,sym,tex|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tex-locale#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"above\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovedisplayshortskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovedisplayskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abovewithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjdemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterassignment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftergroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atopwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"badness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"baselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"batchmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"begingroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowdisplayshortskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"belowdisplayskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"binoppenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"botmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"box\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxmaxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brokenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"char\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closein\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"closeout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clubpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"count\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"countdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crcr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"csname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"day\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"deadcycles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"def\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaulthyphenchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultskewchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimiterfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"delimitershortfall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimendef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discretionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"discretionary{${1:pre-break}}{${2:post-break}}{${3:no-break}}\"\n      }\n    },\n    {\n      \"name\": \"displayindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaylimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidowpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divide\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doublehyphendemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"edef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"else\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emergencystretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"end\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endcsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endlinechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"errhelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errmessage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"errmessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"errorcontextlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"errorstopmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"escapechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everycr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everydisplay\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyjob\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everymath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everypar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exhyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finalhyphendemerits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"floatingpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"font\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fontname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"futurelet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"global\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globaldefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangafter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hangindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hbadness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hfil\"\n    },\n    {\n      \"name\": \"hfill\"\n    },\n    {\n      \"name\": \"hfilneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"holdinginserts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrule\"\n    },\n    {\n      \"name\": \"hsize\"\n    },\n    {\n      \"name\": \"hskip\"\n    },\n    {\n      \"name\": \"hss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hyphenation{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphenpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"if\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifeof\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifodd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvoid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ignorespaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"immediate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"indent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"language\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"left\"\n    },\n    {\n      \"name\": \"lefthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leqno\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leqno{${1:eqn num}}\"\n      }\n    },\n    {\n      \"name\": \"let\"\n    },\n    {\n      \"name\": \"limits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"long\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"looseness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mark{${1:mark text}}\"\n      }\n    },\n    {\n      \"name\": \"mathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathbin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathchoice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mathchoice{${1:display}}{${2:text%plain}}{${3:subscript}}{${4:subsubscript}}\"\n      }\n    },\n    {\n      \"name\": \"mathclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathinner\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathpunct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathsurround\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxdeadcycles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meaning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"message\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"message{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"month\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moveleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moveright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiply\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muskipdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlinechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noalign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noalign{${1:material}}\"\n      }\n    },\n    {\n      \"name\": \"noboundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nolimits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonstopmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nulldelimiterspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nullfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"number\"\n    },\n    {\n      \"name\": \"omit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"or\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"output\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outputpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"over\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overfullrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overwithdelims\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagedepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefilllstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefillstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagefilstretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagegoal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pageshrink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagetotal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"par\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parfillskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patterns{${1:patterns}}\"\n      }\n    },\n    {\n      \"name\": \"pausing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"postdisplaypenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaypenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pretolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prevdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prevgraf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"read\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relax\"\n    },\n    {\n      \"name\": \"relpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"right\"\n    },\n    {\n      \"name\": \"rightskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"righthyphenmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romannumeral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptscriptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scrollmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sfcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"show\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showboxbreadth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showboxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showlists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showthe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skewchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spaceskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"span\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"special\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"special{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"splitbotmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitfirstmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitmaxdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splittopskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"string\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"the\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"time\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toksdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tolerance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingcommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracinglostchars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingmacros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingonline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingoutput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingparagraphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingrestores\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingstats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uccode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uchyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unhbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unhcopy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unvbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unvcopy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vadjust\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vadjust{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"valign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valign{${1:⟨preamble⟩ \\\\cr ⟨column⟩ \\\\cr ... ⟨column⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"vbadness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vcenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcenter{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"vfil\"\n    },\n    {\n      \"name\": \"vfill\"\n    },\n    {\n      \"name\": \"vfilneg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vfuzz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrule\"\n    },\n    {\n      \"name\": \"vsize\"\n    },\n    {\n      \"name\": \"vskip\"\n    },\n    {\n      \"name\": \"vsplit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vss\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vtop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtop{${1:vertical mode material}}\"\n      }\n    },\n    {\n      \"name\": \"wd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widowpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"write\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xleaders\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xspaceskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"year\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aa\"\n    },\n    {\n      \"name\": \"AA\"\n    },\n    {\n      \"name\": \"active\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ae\"\n    },\n    {\n      \"name\": \"AE\"\n    },\n    {\n      \"name\": \"aleph\",\n      \"detail\": \"ℵ\",\n      \"doc\": \"Aleph, hebrew\"\n    },\n    {\n      \"name\": \"allowbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amalg\",\n      \"detail\": \"⨿\",\n      \"doc\": \"Amalgamation or coproduct\"\n    },\n    {\n      \"name\": \"angle\",\n      \"detail\": \"∠\",\n      \"doc\": \"Angle\"\n    },\n    {\n      \"name\": \"arccos\"\n    },\n    {\n      \"name\": \"arcsin\"\n    },\n    {\n      \"name\": \"arctan\"\n    },\n    {\n      \"name\": \"arg\"\n    },\n    {\n      \"name\": \"arrowvert\"\n    },\n    {\n      \"name\": \"Arrowvert\"\n    },\n    {\n      \"name\": \"ast\",\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"asymp\",\n      \"detail\": \"≍\",\n      \"doc\": \"Asymptotically equal to\"\n    },\n    {\n      \"name\": \"b\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"b{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"bf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"big\"\n    },\n    {\n      \"name\": \"Big\"\n    },\n    {\n      \"name\": \"bigbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigcirc\"\n    },\n    {\n      \"name\": \"bigg\"\n    },\n    {\n      \"name\": \"Bigg\"\n    },\n    {\n      \"name\": \"biggl\"\n    },\n    {\n      \"name\": \"Biggl\"\n    },\n    {\n      \"name\": \"biggm\"\n    },\n    {\n      \"name\": \"Biggm\"\n    },\n    {\n      \"name\": \"biggr\"\n    },\n    {\n      \"name\": \"Biggr\"\n    },\n    {\n      \"name\": \"bigl\"\n    },\n    {\n      \"name\": \"Bigl\"\n    },\n    {\n      \"name\": \"bigm\"\n    },\n    {\n      \"name\": \"Bigm\"\n    },\n    {\n      \"name\": \"bigodot\",\n      \"detail\": \"⨀\",\n      \"doc\": \"N-ary circled dot operator\"\n    },\n    {\n      \"name\": \"bigoplus\",\n      \"detail\": \"⨁\",\n      \"doc\": \"N-ary circled plus operator\"\n    },\n    {\n      \"name\": \"bigotimes\",\n      \"detail\": \"⨂\",\n      \"doc\": \"N-ary circled times operator\"\n    },\n    {\n      \"name\": \"bigr\"\n    },\n    {\n      \"name\": \"Bigr\"\n    },\n    {\n      \"name\": \"bigskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bigsqcup\",\n      \"detail\": \"⨆\",\n      \"doc\": \"N-ary square union operator\"\n    },\n    {\n      \"name\": \"bigtriangledown\",\n      \"detail\": \"▽\",\n      \"doc\": \"Big down triangle, open\"\n    },\n    {\n      \"name\": \"bigtriangleup\",\n      \"detail\": \"△\",\n      \"doc\": \"\\\\triangle (amsfonts), \\\\vartriangle (amssymb), big up triangle, open\"\n    },\n    {\n      \"name\": \"biguplus\",\n      \"detail\": \"⨄\",\n      \"doc\": \"N-ary union operator with plus\"\n    },\n    {\n      \"name\": \"bigvee\",\n      \"detail\": \"⋁\",\n      \"doc\": \"Logical and operator\"\n    },\n    {\n      \"name\": \"bigwedge\",\n      \"detail\": \"⋀\",\n      \"doc\": \"Logical or operator\"\n    },\n    {\n      \"name\": \"bmod\"\n    },\n    {\n      \"name\": \"bordermatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bordermatrix{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"bot\",\n      \"detail\": \"⊥\",\n      \"doc\": \"Up tack, bottom\"\n    },\n    {\n      \"name\": \"bowtie\",\n      \"detail\": \"⋈\",\n      \"doc\": \"\\\\lrtimes (txfonts), bowtie\"\n    },\n    {\n      \"name\": \"brace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracevert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"break\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"buildrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bullet\"\n    },\n    {\n      \"name\": \"c\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"c{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"cal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cases\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cases{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"cdotp\",\n      \"detail\": \"·\",\n      \"doc\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n    },\n    {\n      \"name\": \"choose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clubsuit\",\n      \"detail\": \"♣\",\n      \"doc\": \"Club suit symbol\"\n    },\n    {\n      \"name\": \"colon\"\n    },\n    {\n      \"name\": \"cong\",\n      \"detail\": \"≅\",\n      \"doc\": \"Congruent with\"\n    },\n    {\n      \"name\": \"coprod\",\n      \"detail\": \"∐\",\n      \"doc\": \"Coproduct operator\"\n    },\n    {\n      \"name\": \"copyright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cos\"\n    },\n    {\n      \"name\": \"cosh\"\n    },\n    {\n      \"name\": \"cot\"\n    },\n    {\n      \"name\": \"coth\"\n    },\n    {\n      \"name\": \"csc\"\n    },\n    {\n      \"name\": \"d\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"d{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"dag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"dashv\",\n      \"detail\": \"⊣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left tack, non-theorem, does not yield, (dash and vertical)\"\n    },\n    {\n      \"name\": \"ddag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"deg\"\n    },\n    {\n      \"name\": \"det\"\n    },\n    {\n      \"name\": \"diamond\"\n    },\n    {\n      \"name\": \"diamondsuit\",\n      \"detail\": \"♢\",\n      \"doc\": \"Diamond suit symbol\"\n    },\n    {\n      \"name\": \"dim\"\n    },\n    {\n      \"name\": \"displaylines\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"displaylines{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"doteq\",\n      \"detail\": \"≐\",\n      \"doc\": \"\\\\dotequal (wrisym), equals, single dot above\"\n    },\n    {\n      \"name\": \"dotfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dots\"\n    },\n    {\n      \"name\": \"downarrow\",\n      \"detail\": \"↓\",\n      \"doc\": \"Downward arrow\"\n    },\n    {\n      \"name\": \"Downarrow\",\n      \"detail\": \"⇓\",\n      \"doc\": \"Down double arrow\"\n    },\n    {\n      \"name\": \"downbracefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"egroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ell\",\n      \"detail\": \"ℓ\",\n      \"doc\": \"Cursive small l\"\n    },\n    {\n      \"name\": \"empty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyset\"\n    },\n    {\n      \"name\": \"endgraf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exp\"\n    },\n    {\n      \"name\": \"filbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flat\",\n      \"detail\": \"♭\",\n      \"doc\": \"Musical flat\"\n    },\n    {\n      \"name\": \"fmtname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmtversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frown\",\n      \"detail\": \"⌢\",\n      \"doc\": \"\\\\smallfrown, frown (down curve)\"\n    },\n    {\n      \"name\": \"gcd\"\n    },\n    {\n      \"name\": \"ge\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"gg\",\n      \"detail\": \"≫\",\n      \"doc\": \"Much greater than, type 2\"\n    },\n    {\n      \"name\": \"goodbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"H\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"H{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"hbar\"\n    },\n    {\n      \"name\": \"heartsuit\",\n      \"detail\": \"♡\",\n      \"doc\": \"Heart suit symbol\"\n    },\n    {\n      \"name\": \"hglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hidewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hom\"\n    },\n    {\n      \"name\": \"hookleftarrow\",\n      \"detail\": \"↩\",\n      \"doc\": \"Left arrow-hooked\"\n    },\n    {\n      \"name\": \"hookrightarrow\",\n      \"detail\": \"↪\",\n      \"doc\": \"Right arrow-hooked\"\n    },\n    {\n      \"name\": \"hphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hrulefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"i\"\n    },\n    {\n      \"name\": \"ialign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ialign{${1:⟨preamble⟩ \\\\cr ⟨row⟩ \\\\cr ... ⟨row⟩ \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"iff\"\n    },\n    {\n      \"name\": \"Im\",\n      \"detail\": \"ℑ\",\n      \"doc\": \"\\\\mathfrak{i} (eufrak), imaginary part\"\n    },\n    {\n      \"name\": \"imath\",\n      \"detail\": \"𝚤\",\n      \"doc\": \"Mathematical italic small dotless i\"\n    },\n    {\n      \"name\": \"inf\"\n    },\n    {\n      \"name\": \"int\",\n      \"detail\": \"∫\",\n      \"doc\": \"Integral operator\"\n    },\n    {\n      \"name\": \"it\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"j\"\n    },\n    {\n      \"name\": \"jmath\",\n      \"detail\": \"𝚥\",\n      \"doc\": \"Mathematical italic small dotless j\"\n    },\n    {\n      \"name\": \"jot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ker\"\n    },\n    {\n      \"name\": \"l\"\n    },\n    {\n      \"name\": \"L\"\n    },\n    {\n      \"name\": \"land\"\n    },\n    {\n      \"name\": \"langle\",\n      \"detail\": \"⟨\",\n      \"doc\": \"Mathematical left angle bracket\"\n    },\n    {\n      \"name\": \"lbrace\",\n      \"detail\": \"{\",\n      \"doc\": \"\\\\lbrace, left curly bracket\"\n    },\n    {\n      \"name\": \"lbrack\",\n      \"detail\": \"[\",\n      \"doc\": \"Left square bracket\"\n    },\n    {\n      \"name\": \"lceil\",\n      \"detail\": \"⌈\",\n      \"doc\": \"Left ceiling\"\n    },\n    {\n      \"name\": \"ldotp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"le\"\n    },\n    {\n      \"name\": \"leftarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftharpoondown\",\n      \"detail\": \"↽\",\n      \"doc\": \"Left harpoon-down\"\n    },\n    {\n      \"name\": \"leftharpoonup\",\n      \"detail\": \"↼\",\n      \"doc\": \"Left harpoon-up\"\n    },\n    {\n      \"name\": \"leftline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"leftrightarrow\",\n      \"detail\": \"↔\",\n      \"doc\": \"\\\\rel (oz), left right arrow, relation\"\n    },\n    {\n      \"name\": \"lfloor\",\n      \"detail\": \"⌊\",\n      \"doc\": \"Left floor\"\n    },\n    {\n      \"name\": \"lg\"\n    },\n    {\n      \"name\": \"lgroup\"\n    },\n    {\n      \"name\": \"lim\"\n    },\n    {\n      \"name\": \"liminf\"\n    },\n    {\n      \"name\": \"limsup\"\n    },\n    {\n      \"name\": \"line\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"line{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ll\",\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"llap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"llap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lmoustache\",\n      \"unusual\": true,\n      \"detail\": \"⎰\",\n      \"doc\": \"? \\\\lmoustache, upper left or lower right curly bracket section\"\n    },\n    {\n      \"name\": \"ln\"\n    },\n    {\n      \"name\": \"lnot\"\n    },\n    {\n      \"name\": \"log\"\n    },\n    {\n      \"name\": \"loggingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longleftarrow\",\n      \"detail\": \"⟵\",\n      \"doc\": \"Long leftwards arrow\"\n    },\n    {\n      \"name\": \"Longleftarrow\",\n      \"detail\": \"⟸\",\n      \"doc\": \"\\\\impliedby (amsmath), long leftwards double arrow\"\n    },\n    {\n      \"name\": \"longleftrightarrow\",\n      \"detail\": \"⟷\",\n      \"doc\": \"Long left right arrow\"\n    },\n    {\n      \"name\": \"Longleftrightarrow\",\n      \"detail\": \"⟺\",\n      \"doc\": \"\\\\iff (oz), long left right double arrow\"\n    },\n    {\n      \"name\": \"longmapsto\",\n      \"detail\": \"⟼\",\n      \"doc\": \"Long rightwards arrow from bar\"\n    },\n    {\n      \"name\": \"longrightarrow\",\n      \"detail\": \"⟶\",\n      \"doc\": \"Long rightwards arrow\"\n    },\n    {\n      \"name\": \"Longrightarrow\",\n      \"detail\": \"⟹\",\n      \"doc\": \"\\\\implies (amsmath), long rightwards double arrow\"\n    },\n    {\n      \"name\": \"loop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lor\"\n    },\n    {\n      \"name\": \"lq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magstephalf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapsto\",\n      \"detail\": \"↦\",\n      \"doc\": \"Maps to, rightward, maplet\"\n    },\n    {\n      \"name\": \"mathpalette\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mathpalette{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"mathstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"matrix{${1:line \\\\cr ... line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"max\"\n    },\n    {\n      \"name\": \"maxdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"min\"\n    },\n    {\n      \"name\": \"mit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"models\",\n      \"detail\": \"⊧\",\n      \"doc\": \"Models (vertical, short double dash)\"\n    },\n    {\n      \"name\": \"mp\",\n      \"detail\": \"∓\",\n      \"doc\": \"Minus-or-plus sign\"\n    },\n    {\n      \"name\": \"nabla\",\n      \"detail\": \"∇\",\n      \"doc\": \"Nabla, del, hamilton operator\"\n    },\n    {\n      \"name\": \"narrower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"natural\",\n      \"detail\": \"♮\",\n      \"doc\": \"Music natural\"\n    },\n    {\n      \"name\": \"nearrow\",\n      \"detail\": \"↗\",\n      \"doc\": \"Ne pointing arrow\"\n    },\n    {\n      \"name\": \"ne\",\n      \"detail\": \"≠\",\n      \"doc\": \"\\\\ne, r: not equal\"\n    },\n    {\n      \"name\": \"negthinspace\"\n    },\n    {\n      \"name\": \"newbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newfam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newhelp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newif\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newinsert\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newread\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newtoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ni\",\n      \"detail\": \"∋\",\n      \"doc\": \"\\\\owns, contains, variant\"\n    },\n    {\n      \"name\": \"nobreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nointerlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nonfrenchspacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbaselines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalbaselineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normallineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normallineskiplimit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"not\",\n      \"detail\": \" ̸\",\n      \"doc\": \"Combining long solidus overlay\"\n    },\n    {\n      \"name\": \"null\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nwarrow\",\n      \"detail\": \"↖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Nw pointing arrow\"\n    },\n    {\n      \"name\": \"o\"\n    },\n    {\n      \"name\": \"O\"\n    },\n    {\n      \"name\": \"oalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"obeylines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obeyspaces\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odot\",\n      \"detail\": \"⊙\",\n      \"doc\": \"Middle dot in circle\"\n    },\n    {\n      \"name\": \"oe\"\n    },\n    {\n      \"name\": \"OE\"\n    },\n    {\n      \"name\": \"offinterlineskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oint\",\n      \"detail\": \"∮\",\n      \"doc\": \"Contour integral operator\"\n    },\n    {\n      \"name\": \"ominus\",\n      \"detail\": \"⊖\",\n      \"doc\": \"Minus sign in circle\"\n    },\n    {\n      \"name\": \"ooalign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ooalign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oplus\",\n      \"detail\": \"⊕\",\n      \"doc\": \"Plus sign in circle\"\n    },\n    {\n      \"name\": \"oslash\",\n      \"detail\": \"⊘\",\n      \"doc\": \"Solidus in circle\"\n    },\n    {\n      \"name\": \"otimes\",\n      \"detail\": \"⊗\",\n      \"doc\": \"Multiply sign in circle\"\n    },\n    {\n      \"name\": \"overleftarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftarrow{${1:text%plain}}\"\n      },\n      \"detail\": \"x⃖ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\overleftarrow, combining left arrow above\"\n    },\n    {\n      \"name\": \"overrightarrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarrow{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"owns\"\n    },\n    {\n      \"name\": \"P\"\n    },\n    {\n      \"name\": \"parallel\",\n      \"detail\": \"∥\",\n      \"doc\": \"Parallel\"\n    },\n    {\n      \"name\": \"perp\",\n      \"detail\": \"⟂\",\n      \"doc\": \"Perpendicular\"\n    },\n    {\n      \"name\": \"phantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pmatrix{${1:line \\\\cr line \\\\cr}}\"\n      }\n    },\n    {\n      \"name\": \"pmod\"\n    },\n    {\n      \"name\": \"Pr\"\n    },\n    {\n      \"name\": \"prec\",\n      \"detail\": \"≺\",\n      \"doc\": \"Precedes\"\n    },\n    {\n      \"name\": \"preceq\",\n      \"detail\": \"⪯\",\n      \"doc\": \"Precedes above single-line equals sign\"\n    },\n    {\n      \"name\": \"propto\",\n      \"detail\": \"∝\",\n      \"doc\": \"\\\\varpropto (amssymb), is proportional to\"\n    },\n    {\n      \"name\": \"qquad\"\n    },\n    {\n      \"name\": \"quad\"\n    },\n    {\n      \"name\": \"raggedbottom\"\n    },\n    {\n      \"name\": \"rangle\",\n      \"detail\": \"⟩\",\n      \"doc\": \"Mathematical right angle bracket\"\n    },\n    {\n      \"name\": \"rbrace\",\n      \"detail\": \"}\",\n      \"doc\": \"\\\\rbrace, right curly bracket\"\n    },\n    {\n      \"name\": \"rbrack\",\n      \"detail\": \"]\",\n      \"doc\": \"Right square bracket\"\n    },\n    {\n      \"name\": \"rceil\",\n      \"detail\": \"⌉\",\n      \"doc\": \"Right ceiling\"\n    },\n    {\n      \"name\": \"Re\",\n      \"detail\": \"ℜ\",\n      \"doc\": \"\\\\mathfrak{r} (eufrak), real part\"\n    },\n    {\n      \"name\": \"repeat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rfloor\",\n      \"detail\": \"⌋\",\n      \"doc\": \"Right floor\"\n    },\n    {\n      \"name\": \"rgroup\"\n    },\n    {\n      \"name\": \"rightarrowfill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rightharpoondown\",\n      \"detail\": \"⇁\",\n      \"doc\": \"Right harpoon-down\"\n    },\n    {\n      \"name\": \"rightharpoonup\",\n      \"detail\": \"⇀\",\n      \"doc\": \"Right harpoon-up\"\n    },\n    {\n      \"name\": \"rightleftharpoons\",\n      \"detail\": \"⇌\",\n      \"doc\": \"\\\\equilibrium (wrisym), right harpoon over left\"\n    },\n    {\n      \"name\": \"rightline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rlap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rlap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rmoustache\",\n      \"unusual\": true,\n      \"detail\": \"⎱\",\n      \"doc\": \"? \\\\rmoustache, upper right or lower left curly bracket section\"\n    },\n    {\n      \"name\": \"root\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"S\"\n    },\n    {\n      \"name\": \"sb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sb{${1:subscript}}\"\n      }\n    },\n    {\n      \"name\": \"searrow\",\n      \"detail\": \"↘\",\n      \"doc\": \"Se pointing arrow\"\n    },\n    {\n      \"name\": \"sec\"\n    },\n    {\n      \"name\": \"sharp\",\n      \"detail\": \"♯\",\n      \"doc\": \"\\\\# (oz), music sharp sign, infix bag count\"\n    },\n    {\n      \"name\": \"showhyphens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showhyphens{${1:space separated words}}\"\n      }\n    },\n    {\n      \"name\": \"sim\",\n      \"detail\": \"∼\",\n      \"doc\": \"Similar to, tilde operator\"\n    },\n    {\n      \"name\": \"simeq\",\n      \"detail\": \"≃\",\n      \"doc\": \"Similar, equals\"\n    },\n    {\n      \"name\": \"sin\"\n    },\n    {\n      \"name\": \"sinh\"\n    },\n    {\n      \"name\": \"skew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"skew{${1:num}}{${2:math accent}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"sl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallint\"\n    },\n    {\n      \"name\": \"smallskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"smash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"smile\",\n      \"detail\": \"⌣\",\n      \"doc\": \"\\\\smallsmile, smile (up curve)\"\n    },\n    {\n      \"name\": \"sp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sp{${1:superscript}}\"\n      }\n    },\n    {\n      \"name\": \"space\"\n    },\n    {\n      \"name\": \"spadesuit\",\n      \"detail\": \"♠\",\n      \"doc\": \"Spades suit symbol\"\n    },\n    {\n      \"name\": \"sqcap\",\n      \"detail\": \"⊓\",\n      \"doc\": \"Square intersection\"\n    },\n    {\n      \"name\": \"sqcup\",\n      \"detail\": \"⊔\",\n      \"doc\": \"Square union\"\n    },\n    {\n      \"name\": \"sqsubseteq\",\n      \"detail\": \"⊑\",\n      \"doc\": \"Square subset, equals\"\n    },\n    {\n      \"name\": \"sqsupseteq\",\n      \"detail\": \"⊒\",\n      \"doc\": \"Square superset, equals\"\n    },\n    {\n      \"name\": \"ss\"\n    },\n    {\n      \"name\": \"star\",\n      \"detail\": \"⋆\",\n      \"doc\": \"Small star, filled, low\"\n    },\n    {\n      \"name\": \"strut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strutbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subseteq\",\n      \"detail\": \"⊆\",\n      \"doc\": \"Subset, equals\"\n    },\n    {\n      \"name\": \"succ\",\n      \"detail\": \"≻\",\n      \"doc\": \"Succeeds\"\n    },\n    {\n      \"name\": \"succeq\",\n      \"detail\": \"⪰\",\n      \"doc\": \"Succeeds above single-line equals sign\"\n    },\n    {\n      \"name\": \"sup\"\n    },\n    {\n      \"name\": \"supseteq\",\n      \"detail\": \"⊇\",\n      \"doc\": \"Superset, equals\"\n    },\n    {\n      \"name\": \"surd\"\n    },\n    {\n      \"name\": \"swarrow\",\n      \"detail\": \"↙\",\n      \"doc\": \"Sw pointing arrow\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:oo}}\"\n      }\n    },\n    {\n      \"name\": \"tan\"\n    },\n    {\n      \"name\": \"tanh\"\n    },\n    {\n      \"name\": \"TeX\"\n    },\n    {\n      \"name\": \"thinspace\"\n    },\n    {\n      \"name\": \"to\"\n    },\n    {\n      \"name\": \"top\",\n      \"detail\": \"⊤\",\n      \"doc\": \"Down tack, top\"\n    },\n    {\n      \"name\": \"tracingall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangle\"\n    },\n    {\n      \"name\": \"triangleleft\",\n      \"detail\": \"◁ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\dres (oz), \\\\lefttriangle (wrisym), (large) left triangle, open; domain restriction\"\n    },\n    {\n      \"name\": \"triangleright\",\n      \"detail\": \"▷ (\\\"amssymb wasysym\\\" command)\",\n      \"doc\": \"\\\\rres (oz), \\\\righttriangle (wrisym), (large) right triangle, open; range restriction\"\n    },\n    {\n      \"name\": \"tt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"u\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"u{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"underbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbar{${1:text}}\"\n      },\n      \"detail\": \" ̱\",\n      \"doc\": \"Combining macron below\"\n    },\n    {\n      \"name\": \"uparrow\",\n      \"detail\": \"↑\",\n      \"doc\": \"Upward arrow\"\n    },\n    {\n      \"name\": \"Uparrow\",\n      \"detail\": \"⇑\",\n      \"doc\": \"Up double arrow\"\n    },\n    {\n      \"name\": \"upbracefill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updownarrow\",\n      \"detail\": \"↕\",\n      \"doc\": \"Up and down arrow\"\n    },\n    {\n      \"name\": \"Updownarrow\",\n      \"detail\": \"⇕\",\n      \"doc\": \"Up and down double arrow\"\n    },\n    {\n      \"name\": \"uplus\",\n      \"detail\": \"⊎\",\n      \"doc\": \"\\\\buni (oz), plus sign in union\"\n    },\n    {\n      \"name\": \"v\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"v{${1:o}}\"\n      }\n    },\n    {\n      \"name\": \"vdash\",\n      \"detail\": \"⊢\",\n      \"doc\": \"Right tack, proves, implies, yields, (vertical and dash)\"\n    },\n    {\n      \"name\": \"vert\",\n      \"detail\": \"|\",\n      \"doc\": \"\\\\vert, vertical bar\"\n    },\n    {\n      \"name\": \"Vert\",\n      \"detail\": \"‖\",\n      \"doc\": \"\\\\vert, double vertical bar\"\n    },\n    {\n      \"name\": \"vglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vphantom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vphantom{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"wlog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wlog{${1:token list%text}}\"\n      }\n    },\n    {\n      \"name\": \"wp\",\n      \"detail\": \"℘ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Weierstrass p\"\n    },\n    {\n      \"name\": \"wr\",\n      \"detail\": \"≀ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Wreath product\"\n    },\n    {\n      \"name\": \"allocationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceru\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"do\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dospecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footnoterule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hideskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interdisplaylinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interfootnotelinepenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"joinrel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leavevmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mapstochar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mathhexbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removelastskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rootbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vdots\",\n      \"detail\": \"⋮\",\n      \"doc\": \"Vertical ellipsis\"\n    },\n    {\n      \"name\": \"big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big(${1}\\\\big)\"\n      }\n    },\n    {\n      \"name\": \"big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big[${1}\\\\big]\"\n      }\n    },\n    {\n      \"name\": \"big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"big|${1}\\\\big|\"\n      }\n    },\n    {\n      \"name\": \"Big(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big(${1}\\\\Big)\"\n      }\n    },\n    {\n      \"name\": \"Big[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big[${1}\\\\Big]\"\n      }\n    },\n    {\n      \"name\": \"Big|\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Big|${1}\\\\Big|\"\n      }\n    },\n    {\n      \"name\": \"bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl(${1}\\\\bigr)\"\n      }\n    },\n    {\n      \"name\": \"bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl[${1}\\\\bigr]\"\n      }\n    },\n    {\n      \"name\": \"bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"bigl\\\\{${1}\\\\bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Bigl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl(${1}\\\\Bigr)\"\n      }\n    },\n    {\n      \"name\": \"Bigl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl[${1}\\\\Bigr]\"\n      }\n    },\n    {\n      \"name\": \"Bigl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Bigl\\\\{${1}\\\\Bigr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl(${1}\\\\biggr)\"\n      }\n    },\n    {\n      \"name\": \"biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl[${1}\\\\biggr]\"\n      }\n    },\n    {\n      \"name\": \"biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"biggl\\\\{${1}\\\\biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"Biggl(\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl(${1}\\\\Biggr)\"\n      }\n    },\n    {\n      \"name\": \"Biggl[\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl[${1}\\\\Biggr]\"\n      }\n    },\n    {\n      \"name\": \"Biggl\\\\{\",\n      \"arg\": {\n        \"format\": \"\",\n        \"snippet\": \"Biggl\\\\{${1}\\\\Biggr\\\\\\\\}\"\n      }\n    },\n    {\n      \"name\": \"int_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"int_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"lim_\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lim_{${1:min}}\"\n      }\n    },\n    {\n      \"name\": \"prod_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"prod_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"sum_\",\n      \"arg\": {\n        \"format\": \"{}^{}\",\n        \"snippet\": \"sum_{${1:min}}^{${2:max}}\"\n      }\n    },\n    {\n      \"name\": \"beginL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beginR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"detokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"detokenize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"endL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eTeXversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"everyeof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyeof{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"currentgrouplevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentgrouptype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentiflevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentiftype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentifbranch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcsname\"\n    },\n    {\n      \"name\": \"ifdefined\"\n    },\n    {\n      \"name\": \"interactionmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinefit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastnodetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"middle\"\n    },\n    {\n      \"name\": \"numexpr\"\n    },\n    {\n      \"name\": \"parshapedimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshapeindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parshapelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"predisplaydirection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"protected\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scantokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scantokens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"showgroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showtokens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showtokens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TeXXeTstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingassigns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracinggroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingifs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingscantokens\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unexpanded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unexpanded{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"unless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dimexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muexpr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluestretch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueshrink\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluestretchorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glueshrinkorder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gluetomu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mutoglue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlinepenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clubpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"widowpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"displaywidowpenalties\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracingnesting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savingvdiscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savinghyphcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showifs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pagediscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"splitdiscards\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffontchar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tex4ebook.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coverimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coverimage{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"coverimage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coverimage[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\coverimage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"epubpage\"\n    },\n    {\n      \"name\": \"DeclareLanguageEbook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageEbook{${1:lang name}}{${2:lang code}}\"\n      }\n    },\n    {\n      \"name\": \"GetLanguage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\coverimage\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tex4ht.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AnchorLabel\"\n    },\n    {\n      \"name\": \"BlockElementEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlockElementEnd{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"BlockElementStart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"BlockElementStart{${1:name}}{${2:additional-attributes}}\"\n      }\n    },\n    {\n      \"name\": \"ConfigureEnv\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ConfigureEnv{${1:envname}}{${2:before-env}}{${3:after-env}}{${4:before-list}}{${5:after-list}}\"\n      }\n    },\n    {\n      \"name\": \"ConfigureList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ConfigureList{${1:list-name}}{${2:before-list}}{${3:after-list}}{${4:before-label}}{${5:after-label}}\"\n      }\n    },\n    {\n      \"name\": \"ConfigureMark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConfigureMark{${1:unit-name}}{${2:print-section-number}}\"\n      }\n    },\n    {\n      \"name\": \"ConfigureToc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ConfigureToc{${1:unit-name}}{${2:before-unit-number}}{${3:before-content}}{${4:before-page-number}}{${5:at-end}}\"\n      }\n    },\n    {\n      \"name\": \"ContCutAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ContCutAt{${1:section-type}}\"\n      }\n    },\n    {\n      \"name\": \"Css\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Css{${1:CSS code}}\"\n      }\n    },\n    {\n      \"name\": \"CssFile\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CssFile[${1:list of CSS files}]\"\n      }\n    },\n    {\n      \"name\": \"CutAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CutAt{${1:at-unit,until-unit1,until-unit2,...}}\"\n      }\n    },\n    {\n      \"name\": \"EndCss\"\n    },\n    {\n      \"name\": \"EndCssFile\"\n    },\n    {\n      \"name\": \"EndHPage\"\n    },\n    {\n      \"name\": \"EndJavaScript\"\n    },\n    {\n      \"name\": \"EndLink\"\n    },\n    {\n      \"name\": \"EndNoFonts\"\n    },\n    {\n      \"name\": \"EndP\"\n    },\n    {\n      \"name\": \"EndPicture\"\n    },\n    {\n      \"name\": \"EndPreamble\"\n    },\n    {\n      \"name\": \"HCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HCode{${1:markup}}\"\n      }\n    },\n    {\n      \"name\": \"HPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HPage{${1:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"HtmlParOff\"\n    },\n    {\n      \"name\": \"HtmlParOn\"\n    },\n    {\n      \"name\": \"ifOption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifOption{${1:option}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifTag\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifTag{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IgnoreIndent\"\n    },\n    {\n      \"name\": \"IgnorePar\"\n    },\n    {\n      \"name\": \"InlineElementEnd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InlineElementEnd{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"InlineElementStart\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"InlineElementStart{${1:name}}{${2:additional-attributes}}\"\n      }\n    },\n    {\n      \"name\": \"JavaScript\"\n    },\n    {\n      \"name\": \"LikeRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LikeRef{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Link\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Link[${3:target-file args}]{${1:target-loc}}{${2:cur-loc}}\"\n      }\n    },\n    {\n      \"name\": \"Link\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Link{${1:target-loc}}{${2:cur-loc}}\"\n      }\n    },\n    {\n      \"name\": \"LinkCommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LinkCommand{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"NewConfigure\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"NewConfigure{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewConfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewConfigure{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"NewLogicalBlock\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewLogicalBlock{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"NewSection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewSection{${1:cmd}}{${2:mark-for-toc}}\"\n      }\n    },\n    {\n      \"name\": \"NextPictureFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NextPictureFile{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"NoFonts\"\n    },\n    {\n      \"name\": \"NoLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoLink{${1:section-name}}\"\n      }\n    },\n    {\n      \"name\": \"PauseCutAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PauseCutAt{${1:section-type}}\"\n      }\n    },\n    {\n      \"name\": \"Picture*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Picture*[${2:replacement-for-text-browsers}]{${1:file-name attributes}}\"\n      }\n    },\n    {\n      \"name\": \"Picture*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Picture*{${1:file-name attributes}}\"\n      }\n    },\n    {\n      \"name\": \"Picture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Picture[${2:replacement-for-textual-browser}]{${1:file-name attributes}}\"\n      }\n    },\n    {\n      \"name\": \"Picture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Picture{${1:file-name attributes}}\"\n      }\n    },\n    {\n      \"name\": \"PictureFile\"\n    },\n    {\n      \"name\": \"Preamble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Preamble{${1:TeX4ht options}}\"\n      }\n    },\n    {\n      \"name\": \"RecallEndP\"\n    },\n    {\n      \"name\": \"RecallHtmlPar\"\n    },\n    {\n      \"name\": \"Ref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"SaveEndP\"\n    },\n    {\n      \"name\": \"SaveHtmlPar\"\n    },\n    {\n      \"name\": \"ScriptCommand\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ScriptCommand{${1:command}}{${2:prefix}}{${3:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"ScriptEnv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ScriptEnv{${1:environment}}{${2:prefix}}{${3:postfix}}\"\n      }\n    },\n    {\n      \"name\": \"SetBlockProperty\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetBlockProperty{${1:name}}{${2:attribute-name}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetTag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTag{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ShowIndent\"\n    },\n    {\n      \"name\": \"ShowPar\"\n    },\n    {\n      \"name\": \"ShowRefstepAnchor\"\n    },\n    {\n      \"name\": \"SkipRefstepAnchor\"\n    },\n    {\n      \"name\": \"TableOfContents\"\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:unit1,unit2,...}]\"\n      }\n    },\n    {\n      \"name\": \"TableOfContents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TableOfContents[${1:unit1,unit2,...}]\"\n      }\n    },\n    {\n      \"name\": \"Tag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Tag{${1:label}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"Tg<markup>\"\n    },\n    {\n      \"name\": \"TitleCount\"\n    },\n    {\n      \"name\": \"TitleMark\"\n    },\n    {\n      \"name\": \"TocAt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TocAt{${1:section-type1,section-type2,...}}\"\n      }\n    },\n    {\n      \"name\": \"TocCount\"\n    },\n    {\n      \"name\": \"VerbMath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VerbMath{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"fixmathjaxtoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixmathjaxtoc{${1:math cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewConfigureOO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewConfigureOO{${1:configname}}\"\n      }\n    },\n    {\n      \"name\": \"ConfigureOO\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ConfigureOO{${1:configname}}{${2:configuration}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniregisterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeuniregisterchar{${1:char-code}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniunregisterchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeuniunregisterchar{${1:char-code}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniregisterblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeuniregisterblock{${1:char-code1}}{${2:char-code2}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniregisterblockhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeuniregisterblockhex{${1:hex-num1}}{${2:hex-num2}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniblockdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeuniblockdef{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xeuniuseblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeuniuseblock{${1:block-name}}\"\n      }\n    },\n    {\n      \"name\": \"xenunidelblock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xenunidelblock{${1:block-name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texapi.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"texapiversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texenginenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"formatnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"priminput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primunexpanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptycs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacecs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbletwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblefour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblefive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblesix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobbleeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobblenine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reverse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffxnextnospace<token><true>\"\n    },\n    {\n      \"name\": \"setcatcodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcatcodes{${1:<list>}}\"\n      }\n    },\n    {\n      \"name\": \"restorecatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dofornoempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resumefor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newfornoempty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstoftwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondoftwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"breakdofor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pausedofor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texdate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"padcount\"\n    },\n    {\n      \"name\": \"modulus\"\n    },\n    {\n      \"name\": \"iflang\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printdate\"\n    },\n    {\n      \"name\": \"initcurrdate\"\n    },\n    {\n      \"name\": \"initdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"initdate{${1:year}}{${2:month}}{${3:day}}\"\n      }\n    },\n    {\n      \"name\": \"printfdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printfdate{${1:format%keyvals}}\",\n        \"keys\": [\n          \"\\\\printfdate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdateformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nameddateformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nameddateformat{${1:name}}{${2:format string}}\"\n      }\n    },\n    {\n      \"name\": \"texdatenumformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"advancebydays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advancebydays{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"advancebyweeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advancebyweeks{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"advancebymonths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"advancebymonths{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"regressbydays\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regressbydays{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"regressbyweeks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regressbyweeks{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"regressbymonths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regressbymonths{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"savedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savedate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"restoredate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restoredate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"texdcal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texdcal{${1:year}}{${2:month}}\"\n      }\n    },\n    {\n      \"name\": \"texdcalyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdcalyear{${1:year}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\printfdate#c\": [\n      \"ISO\",\n      \"ISOext\",\n      \"american\",\n      \"shamerican\",\n      \"british\",\n      \"shbritish\",\n      \"shbritishdots\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texdepends.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RequireFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RequireFile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\RequirePackage/texdepends#c,\\\\usepackage/texdepends#c\": [\n      \"debug\",\n      \"extension=${1:file ext}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\RequirePackage/texdepends#c,\\\\usepackage/texdepends#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texdimens.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"texdimenpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenpt{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbpdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbpdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbpup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbpup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimennd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimennd{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimennddown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimennddown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenndup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenndup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimendd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimendd{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimendddown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimendddown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenddup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenddup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenmm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenmm{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenmmdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenmmdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenmmup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenmmup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenpc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenpc{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenpcdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenpcdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenpcup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenpcup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimennc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimennc{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenncdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenncdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenncup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenncup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimencc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimencc{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenccdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenccdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenccup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenccup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimencm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimencm{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimencmdown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimencmdown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimencmup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimencmup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenin{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenindown\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenindown{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimeninup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimeninup{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothcmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothcmin{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothincm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothincm{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothcminpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothcminpt{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothincmpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothincmpt{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothcminsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothcminsp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothincmsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothincmsp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothmmbp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothmmbp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothbpmm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothbpmm{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothbpmmpt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothbpmmpt{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothmmbppt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothmmbppt{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothbpmmsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothbpmmsp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenbothmmbpsp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texdimenbothmmbpsp{${1:dim-expr}}\"\n      }\n    },\n    {\n      \"name\": \"texdimenwithunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texdimenwithunit{${1:dim-expr1}}{${2:dim-expr2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texdraw.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"centertexdraw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"centertexdraw{${1:TeXdraw commands}}\"\n      }\n    },\n    {\n      \"name\": \"everytexdraw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everytexdraw{${1:TeXdraw commands}}\"\n      }\n    },\n    {\n      \"name\": \"move \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"move (${1:x y})\"\n      }\n    },\n    {\n      \"name\": \"lvec \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"lvec (${1:x y})\"\n      }\n    },\n    {\n      \"name\": \"avec \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"avec (${1:x y})\"\n      }\n    },\n    {\n      \"name\": \"rmove \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rmove (${1:dx dy})\"\n      }\n    },\n    {\n      \"name\": \"rlvec \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"rlvec (${1:dx dy})\"\n      }\n    },\n    {\n      \"name\": \"ravec \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ravec (${1:dx dy})\"\n      }\n    },\n    {\n      \"name\": \"lpatt \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"lpatt (${1:pattern})\"\n      }\n    },\n    {\n      \"name\": \"htext \",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"htext (${2:x y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"htext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"htext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vtext \",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"vtext (${2:x y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clvec \",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"clvec (${1:x1 y1})(${2:x2 y2})(${3:x3 y3})\"\n      }\n    },\n    {\n      \"name\": \"bsegment\"\n    },\n    {\n      \"name\": \"esegment\"\n    },\n    {\n      \"name\": \"savecurrpos \",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"savecurrpos (${1:*%<px%> *%<py%>})\"\n      }\n    },\n    {\n      \"name\": \"savepos \",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"savepos (${1:%<x y%>})(${2:*%<px%> *%<py%>})\"\n      }\n    },\n    {\n      \"name\": \"drawbb\"\n    },\n    {\n      \"name\": \"writeps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writeps{${1:ps-commands}}\"\n      }\n    },\n    {\n      \"name\": \"coordtopix \",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"coordtopix {${1:dimen}}{${2:pixels}}\"\n      }\n    },\n    {\n      \"name\": \"intdiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"intdiv{${1:numerator}}{${2:denominator}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"listtopix \",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"listtopix (${2:list}){${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pixtobp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pixtobp{${1:pixels}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pixtocoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pixtocoord{${1:pixels}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pixtodim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pixtodim{${1:pixels}}{${2:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"rottxt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"rottxt{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"writetx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writetx{${1:ps-commands}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"texdraw\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texlinks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"domore\"\n    },\n    {\n      \"name\": \"langcode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newlet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"htm\"\n    },\n    {\n      \"name\": \"html\"\n    },\n    {\n      \"name\": \"pdf\"\n    },\n    {\n      \"name\": \"DoubleArg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DoubleArg{${1:cmd}}{${2:arg}}\"\n      }\n    },\n    {\n      \"name\": \"urlfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlfmt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"filenamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filenamefmt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pkgnamefmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgnamefmt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"httpref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"httpref{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"httpsref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"httpsref{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"NormalHTTPref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NormalHTTPref{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ithttpref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ithttpref{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"httpprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHTTPprefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlhttpsref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlhttpsref{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urlhttpref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlhttpref{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"domainref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"domainref{${1:domain%URL}}{${2:path%URL}}\"\n      }\n    },\n    {\n      \"name\": \"prefixref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prefixref{${1:prefix%URL}}{${2:suffix%URL}}\"\n      }\n    },\n    {\n      \"name\": \"foothttpurlref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foothttpurlref{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urlfoot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"urlfoot{${1:short}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"urlpkgfoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlpkgfoot{${1:package-id}}\"\n      }\n    },\n    {\n      \"name\": \"httpbaseref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"httpbaseref{${1:base%URL}}{${2:rest%URL}}{${3:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"httpsbaseref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"httpsbaseref{${1:base%URL}}{${2:rest%URL}}{${3:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBasedHref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MakeBasedHref{${1:cmd}}{${2:base%URL}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBasedHref\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"MakeBasedHref[${3:prefix}]{${1:cmd}}{${2:base%URL}}\"\n      }\n    },\n    {\n      \"name\": \"googlecom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"googleref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"googleref{${1:keywords}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"googlemapsref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"googlemapsref{${1:keywords}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wikilangref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wikilangref{${1:lang-code}}{${2:lemma}}{${3:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Wikilangdisambref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Wikilangdisambref{${1:lang-code}}{${2:term}}{${3:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Wikilangref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wikilangref{${1:lang-code}}{${2:lemma|text}}\"\n      }\n    },\n    {\n      \"name\": \"wikideref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wikideref{${1:lemma}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wikienref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wikienref{${1:lemma}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Wikideref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wikideref{${1:lemma}}\"\n      }\n    },\n    {\n      \"name\": \"Wikienref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wikienref{${1:lemma}}\"\n      }\n    },\n    {\n      \"name\": \"Wikidedisambref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wikidedisambref{${1:lemma}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"Wikiendisambref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wikiendisambref{${1:lemma}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"langcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wikiref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wikiref{${1:lemma}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Wikiref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wikiref{${1:lemma}}\"\n      }\n    },\n    {\n      \"name\": \"Wikidisambref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Wikidisambref{${1:term}}{${2:tag}}\"\n      }\n    },\n    {\n      \"name\": \"ancuml\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ancuml{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanorg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctanorg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwctanorg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwctanorgbaseref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wwwctanorgbaseref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanorgbaseref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nullctanorgbaseref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanorgbaseref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanorgbaseref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texarchive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltxcontrib\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wwwctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nullctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tugctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tugctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"dantectanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dantectanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sciservref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sciservref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mirrorctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"usemirrorctan\"\n    },\n    {\n      \"name\": \"usewwwctan\"\n    },\n    {\n      \"name\": \"usenullctan\"\n    },\n    {\n      \"name\": \"usetugctan\"\n    },\n    {\n      \"name\": \"usedantectani\"\n    },\n    {\n      \"name\": \"usesciservctan\"\n    },\n    {\n      \"name\": \"CTANfileref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CTANfileref{${1:cmd}}{${2:path%URL}}{${3:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorctanfileref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mirrorctanfileref{${1:path%URL}}{${2:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"ctanfileref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanfileref{${1:path%URL}}{${2:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"dirctanref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dirctanref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"catalogueref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"catalogueref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cataloguestartref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cataloguestartref{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"bytopicref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"bytopicref{${1:anchor}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"catpkgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"catpkgref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"CatPkgRef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CatPkgRef{${1:name}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"catpkggenref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"catpkggenref{${1:package}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wwwctanpkggenref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wwwctanpkggenref{${1:package}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkggenref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nullctanpkggenref{${1:package}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wwwctanpkgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwwctanpkgref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"WwwCtanPkgRef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WwwCtanPkgRef{${1:name}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"wwwctanpkgstyref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwwctanpkgstyref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkgstyref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nullctanpkgstyref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nullctanpkgref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"NullCtanPkgRef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NullCtanPkgRef{${1:name}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgstyref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkgstyref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkgref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"CtanPkgRef\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CtanPkgRef{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkggenref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkggenref{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"useWWWpkgpages\"\n    },\n    {\n      \"name\": \"useOpkgpages\"\n    },\n    {\n      \"name\": \"useCATpkgpages\"\n    },\n    {\n      \"name\": \"AllPkgRefs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AllPkgRefs{${1:name}}{${2:Name}}\"\n      }\n    },\n    {\n      \"name\": \"allpkgrefs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allpkgrefs{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"useALLpkgpages\"\n    },\n    {\n      \"name\": \"wwwctanpkgauref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wwwctanpkgauref{${1:id}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkgauref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nullctanpkgauref{${1:id}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgauref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanpkgauref{${1:id}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"wwwctanpkgtopicref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wwwctanpkgtopicref{${1:topic-id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkgtopicref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nullctanpkgtopicref{${1:topic-id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"nullctanpkgsearchref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nullctanpkgsearchref{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wwwctanpkgsearchref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wwwctanpkgsearchref{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgtopicref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkgtopicref{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanpkgsearchref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanpkgsearchref{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texlistyearmonthref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texlistyearmonthref{${1:listref}}{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"texlanglistmonthref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"texlanglistmonthref{${1:monthcmd}}{${2:listref}}{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"detexlistmonthref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"detexlistmonthref{${1:listref}}{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"entexlistmonthref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"entexlistmonthref{${1:listref}}{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"texlistmonthref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texlistmonthref{${1:listref}}{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"ctanannref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanannref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanannpref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ctanannpref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ctanannyearmonthref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanannyearmonthref{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"ctanannmonthref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanannmonthref{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"stackexref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackexref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"stackquestionref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"stackquestionref{${1:URL base%URL}}{${2:id}}{${3:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"stackoverref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stackoverref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tugref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tugref{${1:path%URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texhaxref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texhaxref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"THref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"THref{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texhaxpref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texhaxpref{${1:id}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"THpref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"THpref{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texhaxyearmonthref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texhaxyearmonthref{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"texhaxmonthref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texhaxmonthref{2digits-monthno}\"\n      }\n    },\n    {\n      \"name\": \"tugbartref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tugbartref{${1:tb<${3:vol}>-<${4:issue}>/<filename-base>}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tugbArtref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tugbArtref{${1:<vol>-<${3:issue}>/<filename-base>}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tugiref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tugiref{${1:anchor}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ukfaqref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ukfaqref{${1:label}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wikilangbooksref\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wikilangbooksref{${1:lang-code}}{${2:book/subject}}{${3:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"latexwikibookref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"latexwikibookref{${1:subject}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texwikibookref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texwikibookref{${1:subject}}{${2:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/texlinks#c\": [\n      \"blog\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/texlinks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texmate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"chessfss\"\n    },\n    {\n      \"name\": \"skak\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"afterb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ahead\"\n    },\n    {\n      \"name\": \"analysistop\"\n    },\n    {\n      \"name\": \"attack\"\n    },\n    {\n      \"name\": \"backlevel\"\n    },\n    {\n      \"name\": \"bBetter\"\n    },\n    {\n      \"name\": \"BBetter\"\n    },\n    {\n      \"name\": \"beforeb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforeno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bishops\"\n    },\n    {\n      \"name\": \"blackelo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blackelo{${1:rating}}\"\n      }\n    },\n    {\n      \"name\": \"blackname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blackname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"blackturnmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blackwins\"\n    },\n    {\n      \"name\": \"bname\"\n    },\n    {\n      \"name\": \"boardcenter\"\n    },\n    {\n      \"name\": \"boarddiagonal\"\n    },\n    {\n      \"name\": \"boardfile\"\n    },\n    {\n      \"name\": \"bottomdiagramnames\"\n    },\n    {\n      \"name\": \"CastleO\"\n    },\n    {\n      \"name\": \"checksign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagibottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiibottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiiibottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiiimove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiiitop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiiiturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiimove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiitop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiiturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagimove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagitop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagiturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessdiagivturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chessevent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chessevent{${1:event name%text}}\"\n      }\n    },\n    {\n      \"name\": \"chessopening\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chessopening{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"development\"\n    },\n    {\n      \"name\": \"diagrambottom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiagramCache\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DiagramCache{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"diagrammove\"\n    },\n    {\n      \"name\": \"diagramnames\"\n    },\n    {\n      \"name\": \"diagramnumber\"\n    },\n    {\n      \"name\": \"diagramsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagramtop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doubledpawns\"\n    },\n    {\n      \"name\": \"drawn\"\n    },\n    {\n      \"name\": \"ECO\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ECO{${1:ECO}}\"\n      }\n    },\n    {\n      \"name\": \"iclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"icloset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iicloset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiicloset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiifont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiopent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiopent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initiative\"\n    },\n    {\n      \"name\": \"iopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iopent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivcloset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ivopent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kingside\"\n    },\n    {\n      \"name\": \"leftdiagramturn\"\n    },\n    {\n      \"name\": \"makebarchess\"\n    },\n    {\n      \"name\": \"makebarother\"\n    },\n    {\n      \"name\": \"makediagrams\"\n    },\n    {\n      \"name\": \"makediagramsfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makegametitle\"\n    },\n    {\n      \"name\": \"nextdiagrambottom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextdiagrambottom{${1:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"nextdiagramtop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nextdiagramtop{${1:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"nodiagrammove\"\n    },\n    {\n      \"name\": \"nodiagramnames\"\n    },\n    {\n      \"name\": \"nodiagramnumber\"\n    },\n    {\n      \"name\": \"nodiagramturn\"\n    },\n    {\n      \"name\": \"oppositebishops\"\n    },\n    {\n      \"name\": \"pawnsno\"\n    },\n    {\n      \"name\": \"pieceinitials\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pieceinitials{${1:new initials}}\"\n      }\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"position[${2:⟨w or b⟩ ⟨movenum⟩}]{${1:instructions}}\"\n      }\n    },\n    {\n      \"name\": \"position\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"position{${1:instructions}}\"\n      }\n    },\n    {\n      \"name\": \"preparediagram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"preparediagram{${1:header%text}}{${2:footer%text}}\"\n      }\n    },\n    {\n      \"name\": \"queenside\"\n    },\n    {\n      \"name\": \"resigns\"\n    },\n    {\n      \"name\": \"result\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"result{${1:result}}\"\n      }\n    },\n    {\n      \"name\": \"rightdiagramturn\"\n    },\n    {\n      \"name\": \"separatedpawns\"\n    },\n    {\n      \"name\": \"SkakOff\"\n    },\n    {\n      \"name\": \"SkakOn\"\n    },\n    {\n      \"name\": \"spaceadv\"\n    },\n    {\n      \"name\": \"steplevel\"\n    },\n    {\n      \"name\": \"takes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TheDiagram\"\n    },\n    {\n      \"name\": \"thediagram\"\n    },\n    {\n      \"name\": \"Threat<threat>\"\n    },\n    {\n      \"name\": \"threat<threat>\"\n    },\n    {\n      \"name\": \"timetrouble\"\n    },\n    {\n      \"name\": \"toD*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toD*{${1:move}}\"\n      }\n    },\n    {\n      \"name\": \"toD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toD{${1:move}}\"\n      }\n    },\n    {\n      \"name\": \"topdiagramnames\"\n    },\n    {\n      \"name\": \"varfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VariationsEnvironment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VariationsEnvironment{${1:begdef}}{${2:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"wBetter\"\n    },\n    {\n      \"name\": \"WBetter\"\n    },\n    {\n      \"name\": \"weak\"\n    },\n    {\n      \"name\": \"whiteelo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whiteelo{${1:rating}}\"\n      }\n    },\n    {\n      \"name\": \"whitename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"whitename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"whiteturnmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"whitewins\"\n    },\n    {\n      \"name\": \"wname\"\n    },\n    {\n      \"name\": \"MaxDiagramCache\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"move\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXmate\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"texmate\"\n    },\n    {\n      \"name\": \"variations\"\n    },\n    {\n      \"name\": \"variations*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/texmate#c\": [\n      \"skakoff\",\n      \"diagnostics\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/texmate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texments.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usestyle{${1:pygments style}}\"\n      }\n    },\n    {\n      \"name\": \"pygment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pygment{${1:language}}{${2:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"includecode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includecode{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"includecode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includecode[${2:language}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"proglang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lexercommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lexercommand{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pygmented\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:language}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texnames.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"AmS\"\n    },\n    {\n      \"name\": \"AmSLaTeX\"\n    },\n    {\n      \"name\": \"AMSLaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMSTEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AMSTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AmSTeX\"\n    },\n    {\n      \"name\": \"BIBTEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BIBTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BibTeX\"\n    },\n    {\n      \"name\": \"LAMSTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LAmSTeX\"\n    },\n    {\n      \"name\": \"LamSTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LATEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LaTeXo\"\n    },\n    {\n      \"name\": \"METAFONT\"\n    },\n    {\n      \"name\": \"MF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SLITEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SLITeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SLiTeX\"\n    },\n    {\n      \"name\": \"SliTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manfnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"manfntsl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PiC\"\n    },\n    {\n      \"name\": \"PiCTeX\"\n    },\n    {\n      \"name\": \"VorTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texnegar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"newverbs\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"KashidaOff\"\n    },\n    {\n      \"name\": \"KashidaOn\"\n    },\n    {\n      \"name\": \"KashidaHMFixOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KashidaHMFixOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discouragebadlinebreaks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"discouragebadlinebreaks[${2:linebreakpenalty}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"discouragebadlinebreaks[${2:linebreakpenalty}][${3:kashidastretch}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TeXNegar\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/texnegar#c\": [\n      \"Minimal=${1|On,Off|}\",\n      \"Kashida=${1|glyph,leaders+glyph,leaders+hrule,Off,On|}\",\n      \"linebreakpenalty=${1:integer}\",\n      \"ligatures=${1|aalt,ccmp,dlig,fina,init,locl,medi,rlig,default|}\",\n      \"color=\",\n      \"Kashidafontfamily=${1|AdobeArab,Amiri,HMXKayhan,ScheherazadeNew,Scheherazade|}\",\n      \"hboxrecursion=${1|On,Off|}\",\n      \"vboxrecursion=${1|On,Off|}\",\n      \"kashidastretch=${1|kayhan,khorramshahr,kayhannavaar,kayhanpook,kayhansayeh,khoramshahr,khorramshahr,niloofar,paatch,riyaz,roya,shafigh,shafighKurd,shafighUzbek,shiraz,sols,tabriz,titr,titre,traffic,vahid,vosta,yaghut,yagut,yas,yekan,yermook,zar,ziba,default,noskip|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/texnegar#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texosquery.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TeXOSQuery\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQuery{${1:cmd}}{${2:args%definition}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFromFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryFromFile{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryLocale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryLocale{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryLangTag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryLangTag{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryNumeric\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryNumeric{${1:cmd}}{${2:locale}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryLocaleData\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryLocaleData{${1:cmd}}{${2:locale}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryName{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryVersion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryVersion{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryArch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryArch{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryDateTime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryDateTime{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryTimeZones\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryTimeZones{${1:cmd}}{${2:locale}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryNow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryNow{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileDate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryFileDate{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryCwd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryCwd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryHome\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryHome{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryTmpDir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryTmpDir{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileSize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryFileSize{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileURI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryFileURI{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilePath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryFilePath{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryDirName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TeXOSQueryDirName{${1:cmd}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileList{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileList{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirList{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileList{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileList{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirList\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirList{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListDateAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListDateAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListDateAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListDateAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListDateAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListDateAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListDateDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListDateDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListDateDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListDateDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListDateDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListDateDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListSizeAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListSizeAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListSizeAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListSizeAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListSizeAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListSizeAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListSizeDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListSizeDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListSizeDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListSizeDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListSizeDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListSizeDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListNameAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListNameAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListNameAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListNameAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListNameAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListNameAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListNameDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListNameDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListNameDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListNameDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListNameDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListNameDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListExtAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListExtAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListExtAsc{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListExtAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListExtAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListExtAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFileListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryFileListExtDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryRegularFileListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQueryRegularFileListExtDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQuerySubDirListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TeXOSQuerySubDirListExtDes{${1:cmd}}{${2:separator}}{${3:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterFileListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterFileListExtDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterRegularFileListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterRegularFileListExtDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryFilterSubDirListExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryFilterSubDirListExtDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalk\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalk{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkDateAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkDateAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkDateDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkDateDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkSizeAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkSizeAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkSizeDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkSizeDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkNameAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkNameAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkNameDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkNameDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkNameIgnoreCaseAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkNameIgnoreCaseAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkNameIgnoreCaseDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkNameIgnoreCaseDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkExtAsc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkExtAsc{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSQueryWalkExtDes\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TeXOSQueryWalkExtDes{${1:cmd}}{${2:separator}}{${3:regex}}{${4:directory}}\"\n      }\n    },\n    {\n      \"name\": \"TeXOSInvokerName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSQueryInvoker\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TeXOSQueryInvoker{${1:invoker}}\"\n      }\n    },\n    {\n      \"name\": \"ifTeXOSQueryDryRun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSQueryDryRuntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSQueryDryRunfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSQueryAllowRestricted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSQueryDenyRestricted\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeXOSInvokerRestrictedMessage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerynonasciiwrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerynonasciiwrap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"twrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twrp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerynonasciidetokwrap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerynonasciidetokwrap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"fwrp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fwrp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerybackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextbackslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryleftbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextleftbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryrightbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextrightbrace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryhash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytexthash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryunderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextunderscore \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerybacktick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextbacktick\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryclosequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextclosequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerydoublequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextdoublequote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextcolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerysemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextsemicolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryequals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextequals\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextslash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryhyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytexthyphen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextplus \",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextcomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryopenparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextopenparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycloseparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextcloseparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryopensq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextopensq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryclosesq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextclosesq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextasterisk\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryatchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextatchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerybar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerylessthan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextlessthan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerygreaterthan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextgreaterthan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytexttilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycircum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextcircum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryampersand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextampersand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerydollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextdollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextquestion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryliteralspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerytextspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerycurrency{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerycurrencydollar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencycent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencypound\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencysign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyyen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyecu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencycolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencycruzeiro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyfranc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencylira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencymill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencynaira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencypeseta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyrupee\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencywon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencynewsheqel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencydong\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyeuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencykip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencytugrik\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencydrachma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencygermanpenny\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencypeso\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyguarani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyaustral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyhryvnia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencycedi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencylivretournois\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyspesmilo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencytenge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyturkishlira\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencynordicmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencymanat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerycurrencyruble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"famp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fatc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fbks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fclb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fdol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fdqt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feql\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fexc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fhsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fhyn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fopb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fosb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fpls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fscl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fslh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fspc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fusc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tatc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tbks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tclb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcln\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdqt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"teql\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgrv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thsh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thyn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tlbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"topb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tosb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tpls\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tque\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trbr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tslh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tspc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttld\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tusc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerystripquotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerystripquotes{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerydefpattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerydefpattern{${1:cmd}}{${2:pattern specs}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerydtf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerydtf{${1:n}}{${2:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"patdtf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patdtf{${1:n}}{${2:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerypatnum{${1:numeric pattern}}\"\n      }\n    },\n    {\n      \"name\": \"numfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numfmt{${1:numeric pattern}}\"\n      }\n    },\n    {\n      \"name\": \"patnumfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patnumfmt{${1:numeric pattern}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatplusminus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatplusminus{${1:+ve numeric pattern}}{${2:-ve numeric pattern}}\"\n      }\n    },\n    {\n      \"name\": \"pmnumfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pmnumfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patpmnumfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patpmnumfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatsinum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatsinum{${1:decimal pattern}}{${2:mantissa pattern}}\"\n      }\n    },\n    {\n      \"name\": \"sinumfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sinumfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patsinumfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patsinumfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatdec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatdec{${1:integer pattern}}{${2:fraction pattern}}\"\n      }\n    },\n    {\n      \"name\": \"decfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"decfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patdecfmt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patdecfmt{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatprefixcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatprefixcurrency{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"pcur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patpcur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patpcur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatprefixicurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatprefixicurrency{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"picur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"picur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patpicur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patpicur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatsuffixcurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatsuffixcurrency{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"scur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patscur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patscur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatsuffixicurrency\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatsuffixicurrency{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sicur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sicur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patsicur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patsicur{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatprefixpercent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatprefixpercent{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ppct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ppct{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patppct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patppct{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatsuffixpercent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatsuffixpercent{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"spct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spct{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patspct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patspct{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatprefixpermill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatprefixpermill{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ppml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ppml{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patppml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patppml{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatsuffixpermill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texosquerypatsuffixpermill{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"spml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"spml{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"patspml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"patspml{${1:decimal pattern}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerypatstr{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"patstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"patstr{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patapo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatdigit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patdgt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatdigitnozero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patdgtnz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatgroupsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patngp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patmsg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryfmtdatetime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtdatetime{${1:pattern}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmttimezonehr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmttimezonehr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmttimezonenumhr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmttimezonenumhr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmttimezonemin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmttimezonemin{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryshorttimezone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryshorttimezone{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryshortdstzone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryshortdstzone{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerylongtimezone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerylongtimezone{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerylongdstzone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerylongdstzone{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerytimesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosqueryfmtpatz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatz{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatzz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatzz{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatzzz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatzzz{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatzzzz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatzzzz{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatZ{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatZZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatZZ{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatZZZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatZZZ{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatZZZZ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatZZZZ{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatX{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatXX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatXX{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatXXX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatXXX{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatXXXX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatXXXX{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpata{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpataa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpataa{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpataaa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpataaa{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpataaaa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpataaaa{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatG{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatGG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatGG{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatGGG \",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatGGG {${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtpatGGGG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosqueryfmtpatGGGG{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"texosqueryfmtnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"texosqueryfmtnumber{${1:pattern}}{${2:int}}{${3:frac}}{${4:mantissa}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatfmtstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerypatfmtstr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatfmtquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtexp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtdecsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtcurdecsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texosquerypatfmtint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texosquerypatfmtcurrencysign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmticurrencysign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtminus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtplus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtgroupsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtpercentsign\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texosquerypatfmtpermillsign\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texshade.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alignment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alignment{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\alignment\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"allmatchspecial\"\n    },\n    {\n      \"name\": \"allmatchspecial\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"allmatchspecial[${1:percentage}]\"\n      }\n    },\n    {\n      \"name\": \"allowzero\"\n    },\n    {\n      \"name\": \"alphacount\"\n    },\n    {\n      \"name\": \"Alphacount\"\n    },\n    {\n      \"name\": \"appearance\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"appearance{${1:filetype%keyvals}}{${2:type}}{${3:position}}{${4:labelstyle}}{${5:text}}\",\n        \"keys\": [\n          \"\\\\appearance\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backtranslabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"backtranslabel[${2:size}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\backtranslabel,\\\\backtranstext\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"backtranslabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backtranslabel{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\backtranslabel,\\\\backtranstext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"backtranstext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"backtranstext[${2:size}]{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\backtranslabel,\\\\backtranstext\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"backtranstext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"backtranstext{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\backtranslabel,\\\\backtranstext\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bargraphstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bargraphstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"bbbbottomspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbbbottomspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bbbottomspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbbottomspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bbottomspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bbottomspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"bigblockskip\"\n    },\n    {\n      \"name\": \"bigsepline\"\n    },\n    {\n      \"name\": \"bottomspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"changeshadingcolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"changeshadingcolors{${1:seqref}}{${2:selection}}{${3:name}}\"\n      }\n    },\n    {\n      \"name\": \"charge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"charge{${1:seqref}}{${2:i|${3:o}|${4:N}|C}}\"\n      }\n    },\n    {\n      \"name\": \"charstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"charstretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"chimeraaxisdistance\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chimeraaxisdistance{${1:x-dist}}{${2:y-dist}}{${3:z-dist}}\"\n      }\n    },\n    {\n      \"name\": \"chimeraballScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chimeraballScale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"chimerachain\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chimerachain{${1:chain-label}}\"\n      }\n    },\n    {\n      \"name\": \"clearfuncgroups\"\n    },\n    {\n      \"name\": \"clearlogocolors\"\n    },\n    {\n      \"name\": \"clearlogocolors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearlogocolors[${1:color}]\"\n      }\n    },\n    {\n      \"name\": \"codon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"codon{${1:amino-acid}}{${2:triplet1,triplet2,...}}\"\n      }\n    },\n    {\n      \"name\": \"colorscalestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorscalestretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"constoallseqs\"\n    },\n    {\n      \"name\": \"constosingleseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constosingleseq{${1:seqref}}\"\n      }\n    },\n    {\n      \"name\": \"constosingleseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"constosingleseq{${1:seqref}}\"\n      }\n    },\n    {\n      \"name\": \"defconsensus\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"defconsensus{${1:symbol1}}{${2:symbol2}}{${3:symbol3}}\"\n      }\n    },\n    {\n      \"name\": \"defshadingcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defshadingcolors{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"disallowzero\"\n    },\n    {\n      \"name\": \"DNAgroups\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DNAgroups{${1:group1,group2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DNAsims\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DNAsims{${1:residue}}{${2:similars}}\"\n      }\n    },\n    {\n      \"name\": \"dofrequencycorrection\"\n    },\n    {\n      \"name\": \"domaingaprule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"domaingaprule{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"donotshade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"donotshade{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"echostructurefile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"echostructurefile{${1:strucref}}\"\n      }\n    },\n    {\n      \"name\": \"emphblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emphblock{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"emphdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"emphdefault{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"emphregion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"emphregion{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"englishlanguage\"\n    },\n    {\n      \"name\": \"exportconsensus\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"exportconsensus[${3:pymol/chimera}]{${1:seqref}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"exportconsensus\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"exportconsensus{${1:seqref}}{${2:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"feature\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"feature{${1:position%keyvals}}{${2:seqref}}{${3:selection}}{${4:labelstyle}}{${5:text}}\",\n        \"keys\": [\n          \"\\\\feature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"featurenamecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"featurenamecolor{${1:ttttop...bbbbottom}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"featurenamesbf\"\n    },\n    {\n      \"name\": \"featurenamescolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"featurenamescolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"featurenamesfootnotesize\"\n    },\n    {\n      \"name\": \"featurenameshuge\"\n    },\n    {\n      \"name\": \"featurenamesHuge\"\n    },\n    {\n      \"name\": \"featurenamesit\"\n    },\n    {\n      \"name\": \"featurenameslarge\"\n    },\n    {\n      \"name\": \"featurenamesLarge\"\n    },\n    {\n      \"name\": \"featurenamesLARGE\"\n    },\n    {\n      \"name\": \"featurenamesmd\"\n    },\n    {\n      \"name\": \"featurenamesnormalsize\"\n    },\n    {\n      \"name\": \"featurenamesrm\"\n    },\n    {\n      \"name\": \"featurenamessc\"\n    },\n    {\n      \"name\": \"featurenamesscriptsize\"\n    },\n    {\n      \"name\": \"featurenamessf\"\n    },\n    {\n      \"name\": \"featurenamessl\"\n    },\n    {\n      \"name\": \"featurenamessmall\"\n    },\n    {\n      \"name\": \"featurenamestiny\"\n    },\n    {\n      \"name\": \"featurenamestt\"\n    },\n    {\n      \"name\": \"featurenamesup\"\n    },\n    {\n      \"name\": \"featurerule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"featurerule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"featuresbf\"\n    },\n    {\n      \"name\": \"featuresfootnotesize\"\n    },\n    {\n      \"name\": \"featureshuge\"\n    },\n    {\n      \"name\": \"featuresHuge\"\n    },\n    {\n      \"name\": \"featuresit\"\n    },\n    {\n      \"name\": \"featureslarge\"\n    },\n    {\n      \"name\": \"featuresLarge\"\n    },\n    {\n      \"name\": \"featuresLARGE\"\n    },\n    {\n      \"name\": \"featuresmd\"\n    },\n    {\n      \"name\": \"featuresnormalsize\"\n    },\n    {\n      \"name\": \"featuresrm\"\n    },\n    {\n      \"name\": \"featuressc\"\n    },\n    {\n      \"name\": \"featuresscriptsize\"\n    },\n    {\n      \"name\": \"featuressf\"\n    },\n    {\n      \"name\": \"featuressl\"\n    },\n    {\n      \"name\": \"featuressmall\"\n    },\n    {\n      \"name\": \"featurestiny\"\n    },\n    {\n      \"name\": \"featurestt\"\n    },\n    {\n      \"name\": \"featurestylenamecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"featurestylenamecolor{${1:ttttop...bbbbottom}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"featurestylenamesbf\"\n    },\n    {\n      \"name\": \"featurestylenamescolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"featurestylenamescolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"featurestylenamesfootnotesize\"\n    },\n    {\n      \"name\": \"featurestylenameshuge\"\n    },\n    {\n      \"name\": \"featurestylenamesHuge\"\n    },\n    {\n      \"name\": \"featurestylenamesit\"\n    },\n    {\n      \"name\": \"featurestylenameslarge\"\n    },\n    {\n      \"name\": \"featurestylenamesLarge\"\n    },\n    {\n      \"name\": \"featurestylenamesLARGE\"\n    },\n    {\n      \"name\": \"featurestylenamesmd\"\n    },\n    {\n      \"name\": \"featurestylenamesnormalsize\"\n    },\n    {\n      \"name\": \"featurestylenamesrm\"\n    },\n    {\n      \"name\": \"featurestylenamessc\"\n    },\n    {\n      \"name\": \"featurestylenamesscriptsize\"\n    },\n    {\n      \"name\": \"featurestylenamessf\"\n    },\n    {\n      \"name\": \"featurestylenamessl\"\n    },\n    {\n      \"name\": \"featurestylenamessmall\"\n    },\n    {\n      \"name\": \"featurestylenamestiny\"\n    },\n    {\n      \"name\": \"featurestylenamestt\"\n    },\n    {\n      \"name\": \"featurestylenamesup\"\n    },\n    {\n      \"name\": \"featurestylesbf\"\n    },\n    {\n      \"name\": \"featurestylesfootnotesize\"\n    },\n    {\n      \"name\": \"featurestyleshuge\"\n    },\n    {\n      \"name\": \"featurestylesHuge\"\n    },\n    {\n      \"name\": \"featurestylesit\"\n    },\n    {\n      \"name\": \"featurestyleslarge\"\n    },\n    {\n      \"name\": \"featurestylesLarge\"\n    },\n    {\n      \"name\": \"featurestylesLARGE\"\n    },\n    {\n      \"name\": \"featurestylesmd\"\n    },\n    {\n      \"name\": \"featurestylesnormalsize\"\n    },\n    {\n      \"name\": \"featurestylesrm\"\n    },\n    {\n      \"name\": \"featurestylessc\"\n    },\n    {\n      \"name\": \"featurestylesscriptsize\"\n    },\n    {\n      \"name\": \"featurestylessf\"\n    },\n    {\n      \"name\": \"featurestylessl\"\n    },\n    {\n      \"name\": \"featurestylessmall\"\n    },\n    {\n      \"name\": \"featurestylestiny\"\n    },\n    {\n      \"name\": \"featurestylestt\"\n    },\n    {\n      \"name\": \"featurestylesup\"\n    },\n    {\n      \"name\": \"featuresup\"\n    },\n    {\n      \"name\": \"fingerprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fingerprint{${1:res. per line}}\"\n      }\n    },\n    {\n      \"name\": \"firstcolumnDSSP\"\n    },\n    {\n      \"name\": \"fixblockspace\"\n    },\n    {\n      \"name\": \"flexblockspace\"\n    },\n    {\n      \"name\": \"frameblock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frameblock{${1:seqref}}{${2:selection}}{${3:color[${4:length}]}}\"\n      }\n    },\n    {\n      \"name\": \"frameblock\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frameblock{${1:seqref}}{${2:selection}}{${3:color}}\"\n      }\n    },\n    {\n      \"name\": \"gapchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gapchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"gappenalty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gappenalty{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"gaprule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gaprule{${1:thickness%l}}\"\n      }\n    },\n    {\n      \"name\": \"geneticcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"geneticcode{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"germanlanguage\"\n    },\n    {\n      \"name\": \"hideallmatchpositions\"\n    },\n    {\n      \"name\": \"hideconsensus\"\n    },\n    {\n      \"name\": \"hidefeaturename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidefeaturename{${1:ttttop...bbbbottom}}\"\n      }\n    },\n    {\n      \"name\": \"hidefeaturenames\"\n    },\n    {\n      \"name\": \"hidefeaturestylename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidefeaturestylename{${1:ttttop...bbbbottom}}\"\n      }\n    },\n    {\n      \"name\": \"hidefeaturestylenames\"\n    },\n    {\n      \"name\": \"hideleadinggaps\"\n    },\n    {\n      \"name\": \"hidelegend\"\n    },\n    {\n      \"name\": \"hidelogoscale\"\n    },\n    {\n      \"name\": \"hidename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidename{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"hidenames\"\n    },\n    {\n      \"name\": \"hidenegatives\"\n    },\n    {\n      \"name\": \"hidenumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hidenumber{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"hidenumbering\"\n    },\n    {\n      \"name\": \"hideonDSSP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideonDSSP{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"hideonHMMTOP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideonHMMTOP{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"hideonPHDsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideonPHDsec{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"hideonPHDtopo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideonPHDtopo{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"hideonSTRIDE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideonSTRIDE{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"hiderelevance\"\n    },\n    {\n      \"name\": \"hideresidues\"\n    },\n    {\n      \"name\": \"hideruler\"\n    },\n    {\n      \"name\": \"hideruler\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hideruler[${1:top/bottom}]\"\n      }\n    },\n    {\n      \"name\": \"hideseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hideseq{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"hideseqs\"\n    },\n    {\n      \"name\": \"hidesequencelogo\"\n    },\n    {\n      \"name\": \"hidesubfamilylogo\"\n    },\n    {\n      \"name\": \"includeDSSP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includeDSSP[${3:make new}]{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeDSSP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includeDSSP{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeHMMTOP\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includeHMMTOP[${3:make new}]{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeHMMTOP\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includeHMMTOP{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includePHDsec\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includePHDsec[${3:make new}]{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includePHDsec\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includePHDsec{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includePHDtopo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includePHDtopo[${3:make new}]{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includePHDtopo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includePHDtopo{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeSTRIDE\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"includeSTRIDE[${3:make new}]{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeSTRIDE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includeSTRIDE{${1:seqref}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"includeTCoffee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeTCoffee{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"killseq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"killseq{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"legendbf\"\n    },\n    {\n      \"name\": \"legendcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legendcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"legendfootnotesize\"\n    },\n    {\n      \"name\": \"legendhuge\"\n    },\n    {\n      \"name\": \"legendHuge\"\n    },\n    {\n      \"name\": \"legendit\"\n    },\n    {\n      \"name\": \"legendlarge\"\n    },\n    {\n      \"name\": \"legendLarge\"\n    },\n    {\n      \"name\": \"legendLARGE\"\n    },\n    {\n      \"name\": \"legendmd\"\n    },\n    {\n      \"name\": \"legendnormalsize\"\n    },\n    {\n      \"name\": \"legendrm\"\n    },\n    {\n      \"name\": \"legendsc\"\n    },\n    {\n      \"name\": \"legendscriptsize\"\n    },\n    {\n      \"name\": \"legendsf\"\n    },\n    {\n      \"name\": \"legendsl\"\n    },\n    {\n      \"name\": \"legendsmall\"\n    },\n    {\n      \"name\": \"legendtiny\"\n    },\n    {\n      \"name\": \"legendtt\"\n    },\n    {\n      \"name\": \"legendup\"\n    },\n    {\n      \"name\": \"linestretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"linestretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"logocolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"logocolor{${1:residues}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"logostretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logostretch{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"lowerblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lowerblock{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"lowerregion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lowerregion{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"medblockskip\"\n    },\n    {\n      \"name\": \"medsepline\"\n    },\n    {\n      \"name\": \"memeBlack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memeBlack{${1:residues}}\"\n      }\n    },\n    {\n      \"name\": \"memeBlue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memeBlue{${1:residues}}\"\n      }\n    },\n    {\n      \"name\": \"memelabelcutoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memelabelcutoff{${1:bit-value}}\"\n      }\n    },\n    {\n      \"name\": \"memeRed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memeRed{${1:residues}}\"\n      }\n    },\n    {\n      \"name\": \"memeStandardcolors\"\n    },\n    {\n      \"name\": \"memeWhite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memeWhite{${1:residues}}\"\n      }\n    },\n    {\n      \"name\": \"memeYellow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"memeYellow{${1:residues}}\"\n      }\n    },\n    {\n      \"name\": \"messagePDBlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"messagePDBlist{${1:selection}}\"\n      }\n    },\n    {\n      \"name\": \"molweight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"molweight{${1:seqref}}{${2:Da|kDa}}\"\n      }\n    },\n    {\n      \"name\": \"movelegend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movelegend{${1:x-offset}}{${2:y-offset}}\"\n      }\n    },\n    {\n      \"name\": \"namecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namecolor{${1:seq1,seq2,...}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"nameconsensus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameconsensus{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nameruler\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nameruler{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"nameruler\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nameruler[${2:top/bottom}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"namerulerpos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namerulerpos{${1:number}}{${2:text[${3:color}]}}\"\n      }\n    },\n    {\n      \"name\": \"namerulerpos\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"namerulerpos[${3:top/bottom}]{${1:number}}{${2:text[${4:color}]}}\"\n      }\n    },\n    {\n      \"name\": \"namerulerpos\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"namerulerpos{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"namerulerpos\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"namerulerpos[${3:top/bottom}]{${1:number}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"namesbf\"\n    },\n    {\n      \"name\": \"namescolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namescolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"nameseq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nameseq{${1:seqref}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"namesequencelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namesequencelogo{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"namesfootnotesize\"\n    },\n    {\n      \"name\": \"nameshuge\"\n    },\n    {\n      \"name\": \"namesHuge\"\n    },\n    {\n      \"name\": \"namesit\"\n    },\n    {\n      \"name\": \"nameslarge\"\n    },\n    {\n      \"name\": \"namesLarge\"\n    },\n    {\n      \"name\": \"namesLARGE\"\n    },\n    {\n      \"name\": \"namesmd\"\n    },\n    {\n      \"name\": \"namesnormalsize\"\n    },\n    {\n      \"name\": \"namesrm\"\n    },\n    {\n      \"name\": \"namessc\"\n    },\n    {\n      \"name\": \"namesscriptsize\"\n    },\n    {\n      \"name\": \"namessf\"\n    },\n    {\n      \"name\": \"namessl\"\n    },\n    {\n      \"name\": \"namessmall\"\n    },\n    {\n      \"name\": \"namestiny\"\n    },\n    {\n      \"name\": \"namestt\"\n    },\n    {\n      \"name\": \"namesubfamilylogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"namesubfamilylogo[${2:neg-name}]{${1:pos-name}}\"\n      }\n    },\n    {\n      \"name\": \"namesubfamilylogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namesubfamilylogo{${1:pos-name}}\"\n      }\n    },\n    {\n      \"name\": \"namesup\"\n    },\n    {\n      \"name\": \"noblockskip\"\n    },\n    {\n      \"name\": \"nosepline\"\n    },\n    {\n      \"name\": \"numbercolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"numbercolor{${1:seq1,seq2,...}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"numberingbf\"\n    },\n    {\n      \"name\": \"numberingcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberingcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"numberingfootnotesize\"\n    },\n    {\n      \"name\": \"numberinghuge\"\n    },\n    {\n      \"name\": \"numberingHuge\"\n    },\n    {\n      \"name\": \"numberingit\"\n    },\n    {\n      \"name\": \"numberinglarge\"\n    },\n    {\n      \"name\": \"numberingLarge\"\n    },\n    {\n      \"name\": \"numberingLARGE\"\n    },\n    {\n      \"name\": \"numberingmd\"\n    },\n    {\n      \"name\": \"numberingnormalsize\"\n    },\n    {\n      \"name\": \"numberingrm\"\n    },\n    {\n      \"name\": \"numberingsc\"\n    },\n    {\n      \"name\": \"numberingscriptsize\"\n    },\n    {\n      \"name\": \"numberingsf\"\n    },\n    {\n      \"name\": \"numberingsl\"\n    },\n    {\n      \"name\": \"numberingsmall\"\n    },\n    {\n      \"name\": \"numberingtiny\"\n    },\n    {\n      \"name\": \"numberingtt\"\n    },\n    {\n      \"name\": \"numberingup\"\n    },\n    {\n      \"name\": \"numberingwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numberingwidth{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"numcount\"\n    },\n    {\n      \"name\": \"orderseqs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orderseqs{${1:seq1,seq2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pepgroups\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pepgroups{${1:group1,group2,...}}\"\n      }\n    },\n    {\n      \"name\": \"pepsims\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pepsims{${1:residue}}{${2:similars}}\"\n      }\n    },\n    {\n      \"name\": \"percentidentity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"percentidentity{${1:seqref1}}{${2:seqref2}}\"\n      }\n    },\n    {\n      \"name\": \"percentsimilarity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"percentsimilarity{${1:seqref1}}{${2:seqref2}}\"\n      }\n    },\n    {\n      \"name\": \"printPDBlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printPDBlist{${1:selection}}\"\n      }\n    },\n    {\n      \"name\": \"relevance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relevance{${1:bit-value}}\"\n      }\n    },\n    {\n      \"name\": \"residuesbf\"\n    },\n    {\n      \"name\": \"residuesfootnotesize\"\n    },\n    {\n      \"name\": \"residueshuge\"\n    },\n    {\n      \"name\": \"residuesHuge\"\n    },\n    {\n      \"name\": \"residuesit\"\n    },\n    {\n      \"name\": \"residueslarge\"\n    },\n    {\n      \"name\": \"residuesLarge\"\n    },\n    {\n      \"name\": \"residuesLARGE\"\n    },\n    {\n      \"name\": \"residuesmd\"\n    },\n    {\n      \"name\": \"residuesnormalsize\"\n    },\n    {\n      \"name\": \"residuesperline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"residuesperline*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"residuesperline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"residuesperline{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"residuesrm\"\n    },\n    {\n      \"name\": \"residuessc\"\n    },\n    {\n      \"name\": \"residuesscriptsize\"\n    },\n    {\n      \"name\": \"residuessf\"\n    },\n    {\n      \"name\": \"residuessl\"\n    },\n    {\n      \"name\": \"residuessmall\"\n    },\n    {\n      \"name\": \"residuestiny\"\n    },\n    {\n      \"name\": \"residuestt\"\n    },\n    {\n      \"name\": \"residuesup\"\n    },\n    {\n      \"name\": \"romancount\"\n    },\n    {\n      \"name\": \"Romancount\"\n    },\n    {\n      \"name\": \"rotateruler\"\n    },\n    {\n      \"name\": \"rotateruler\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rotateruler[${1:top/bottom}]\"\n      }\n    },\n    {\n      \"name\": \"rulercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rulercolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulercolor[${2:top/bottom}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rulerfootnotesize\"\n    },\n    {\n      \"name\": \"rulerhuge\"\n    },\n    {\n      \"name\": \"rulerHuge\"\n    },\n    {\n      \"name\": \"rulerlarge\"\n    },\n    {\n      \"name\": \"rulerLarge\"\n    },\n    {\n      \"name\": \"rulerLARGE\"\n    },\n    {\n      \"name\": \"rulernamecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulernamecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rulernamecolor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulernamecolor[${2:top/bottom}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rulernamefootnotesize\"\n    },\n    {\n      \"name\": \"rulernamehuge\"\n    },\n    {\n      \"name\": \"rulernameHuge\"\n    },\n    {\n      \"name\": \"rulernamelarge\"\n    },\n    {\n      \"name\": \"rulernameLarge\"\n    },\n    {\n      \"name\": \"rulernameLARGE\"\n    },\n    {\n      \"name\": \"rulernamenormalsize\"\n    },\n    {\n      \"name\": \"rulernamerm\"\n    },\n    {\n      \"name\": \"rulernamescriptsize\"\n    },\n    {\n      \"name\": \"rulernamesf\"\n    },\n    {\n      \"name\": \"rulernamesmall\"\n    },\n    {\n      \"name\": \"rulernametiny\"\n    },\n    {\n      \"name\": \"rulernamett\"\n    },\n    {\n      \"name\": \"rulernormalsize\"\n    },\n    {\n      \"name\": \"rulerrm\"\n    },\n    {\n      \"name\": \"rulerscriptsize\"\n    },\n    {\n      \"name\": \"rulersf\"\n    },\n    {\n      \"name\": \"rulersmall\"\n    },\n    {\n      \"name\": \"rulerspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulerspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rulerspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulerspace[${2:top/bottom}]{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"rulersteps\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulersteps{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rulersteps\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rulersteps[${2:top/bottom}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"rulertiny\"\n    },\n    {\n      \"name\": \"rulertt\"\n    },\n    {\n      \"name\": \"secondcolumnDSSP\"\n    },\n    {\n      \"name\": \"separationline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"separationline{${1:seqref}}\"\n      }\n    },\n    {\n      \"name\": \"seqlength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"seqlength{${1:seqref}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"seqtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seqtype{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\seqtype\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdomain\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setdomain{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"setends\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setends[${3:start-number}]{${1:seqref}}{${2:start..stop}}\"\n      }\n    },\n    {\n      \"name\": \"setends\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setends{${1:seqref}}{${2:start..stop}}\"\n      }\n    },\n    {\n      \"name\": \"setfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfamily{${1:text%plain}}{${2:family%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfamily\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setfont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"setfont{${1:text%plain}}{${2:family}}{${3:series}}{${4:shape}}{${5:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsize,\\\\setfont\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"setseries\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setseries{${1:text%plain}}{${2:series%keyvals}}\",\n        \"keys\": [\n          \"\\\\setseries\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setshape\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setshape{${1:text%plain}}{${2:shape%keyvals}}\",\n        \"keys\": [\n          \"\\\\setshape\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsize{${1:text%plain}}{${2:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsize,\\\\setfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setsubfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsubfamily{${1:seqrefs}}\"\n      }\n    },\n    {\n      \"name\": \"setweight\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setweight{${1:res1}}{${2:res2}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"shadeallresidues\"\n    },\n    {\n      \"name\": \"shadebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadebox{${1:color%keyvals}}\",\n        \"keys\": [\n          \"\\\\shadebox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shadingcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadingcolors{${1:scheme%keyvals}}\",\n        \"keys\": [\n          \"\\\\shadingcolors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shadingmode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shadingmode[${2:option}]{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\shadingmode\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"shadingmode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadingmode{${1:mode%keyvals}}\",\n        \"keys\": [\n          \"\\\\shadingmode\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shortcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showcaption[${2:position}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"showconsensus\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showconsensus[${2:type%keyvals}]{${1:top|bottom}}\",\n        \"keys\": [\n          \"\\\\showconsensus\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showconsensus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showconsensus{${1:top|bottom}}\"\n      }\n    },\n    {\n      \"name\": \"showfeaturename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showfeaturename{${1:ttttop...bbbbottom}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"showfeaturestylename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showfeaturestylename{${1:ttttop...bbbbottom}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"showleadinggaps\"\n    },\n    {\n      \"name\": \"showlegend\"\n    },\n    {\n      \"name\": \"showlogoscale\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showlogoscale[${2:color}]{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\showlogoscale,\\\\shownumbering\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"showlogoscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showlogoscale{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\showlogoscale,\\\\shownumbering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shownames\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shownames[${2:color}]{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\shownames\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"shownames\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shownames{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\shownames\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shownegatives\"\n    },\n    {\n      \"name\": \"shownegatives\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shownegatives[${1:choice%keyvals}]\",\n        \"keys\": [\n          \"\\\\shownegatives,\\\\tintdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shownumbering\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"shownumbering[${2:color}]{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\showlogoscale,\\\\shownumbering\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"shownumbering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shownumbering{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\showlogoscale,\\\\shownumbering\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showonDSSP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonDSSP{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"showonHMMTOP\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonHMMTOP{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"showonPHDsec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonPHDsec{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"showonPHDtopo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonPHDtopo{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"showonSTRIDE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showonSTRIDE{${1:structures}}\"\n      }\n    },\n    {\n      \"name\": \"showrelevance\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showrelevance[${2:color}]{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"showrelevance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showrelevance{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"showresidues\"\n    },\n    {\n      \"name\": \"showruler\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"showruler[${3:color}]{${1:position%keyvals}}{${2:seqref}}\",\n        \"keys\": [\n          \"\\\\showruler,\\\\showcaption\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"showruler\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showruler{${1:position%keyvals}}{${2:seqref}}\",\n        \"keys\": [\n          \"\\\\showruler,\\\\showcaption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showseqs\"\n    },\n    {\n      \"name\": \"showsequencelogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showsequencelogo[${2:colorset%keyvals}]{${1:top|bottom}}\",\n        \"keys\": [\n          \"\\\\showsequencelogo,\\\\showsubfamilylogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showsequencelogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showsequencelogo{${1:top|bottom}}\"\n      }\n    },\n    {\n      \"name\": \"showsubfamilylogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"showsubfamilylogo[${2:colorset%keyvals}]{${1:top|bottom}}\",\n        \"keys\": [\n          \"\\\\showsequencelogo,\\\\showsubfamilylogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"showsubfamilylogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showsubfamilylogo{${1:top|bottom}}\"\n      }\n    },\n    {\n      \"name\": \"similaritytable\"\n    },\n    {\n      \"name\": \"smallblockskip\"\n    },\n    {\n      \"name\": \"smallsepline\"\n    },\n    {\n      \"name\": \"spanishlanguage\"\n    },\n    {\n      \"name\": \"startnumber\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"startnumber[${3:start..stop}]{${1:seqref}}{${2:start-number}}\"\n      }\n    },\n    {\n      \"name\": \"startnumber\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"startnumber{${1:seqref}}{${2:start-number}}\"\n      }\n    },\n    {\n      \"name\": \"stopchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stopchar{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"structurememe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"structurememe[${2:seqref}]{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"structurememe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"structurememe{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"TeXshade\"\n    },\n    {\n      \"name\": \"threshold\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"threshold[${2:percentage}]{${1:percentage}}\"\n      }\n    },\n    {\n      \"name\": \"threshold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threshold{${1:percentage}}\"\n      }\n    },\n    {\n      \"name\": \"tintblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tintblock{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"tintdefault\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tintdefault{${1:level%keyvals}}\",\n        \"keys\": [\n          \"\\\\shownegatives,\\\\tintdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tintregion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tintregion{${1:seqref}}{${2:selection}}\"\n      }\n    },\n    {\n      \"name\": \"topspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ttopspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttopspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tttopspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tttopspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"ttttopspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttttopspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"undofrequencycorrection\"\n    },\n    {\n      \"name\": \"unrotateruler\"\n    },\n    {\n      \"name\": \"unrotateruler\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unrotateruler[${1:top/bottom}]\"\n      }\n    },\n    {\n      \"name\": \"vblockspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vblockspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"vsepspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vsepspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"weighttable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weighttable{${1:table%keyvals}}\",\n        \"keys\": [\n          \"\\\\weighttable\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nomatchresidues\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nomatchresidues{${1:res-color}}{${2:shad-color}}{${3:case}}{${4:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"conservedresidues\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"conservedresidues{${1:res-color}}{${2:shad-color}}{${3:case}}{${4:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"allmatchresidues\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"allmatchresidues{${1:res-color}}{${2:shad-color}}{${3:case}}{${4:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"similarresidues\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"similarresidues{${1:res-color}}{${2:shad-color}}{${3:case}}{${4:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"funcshadingstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"funcshadingstyle{${1:residue}}{${2:res-color}}{${3:shad-color}}{${4:case}}{${5:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 4\n      }\n    },\n    {\n      \"name\": \"funcgroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"funcgroup{${1:descr}}{${2:residues}}{${3:res-color}}{${4:shad-color}}{${5:case}}{${6:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\"\n        ],\n        \"keyPos\": 5\n      }\n    },\n    {\n      \"name\": \"consensuscolors\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"consensuscolors{${1:res-color1}}{${2:shad-color1}}{${3:res-color2}}{${4:shad-color2}}{${5:res-color3}}{${6:shad-color3}}\"\n      }\n    },\n    {\n      \"name\": \"gapcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gapcolors{${1:symbol-color}}{${2:background-color}}\"\n      }\n    },\n    {\n      \"name\": \"domaingapcolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"domaingapcolors{${1:foreground-color}}{${2:background-color}}\"\n      }\n    },\n    {\n      \"name\": \"shaderegion\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"shaderegion{${1:seqref}}{${2:selection}}{${3:res-color}}{${4:shad-color}}\"\n      }\n    },\n    {\n      \"name\": \"shadeblock\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"shadeblock{${1:seqref}}{${2:selection}}{${3:res-color}}{${4:shad-color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"texshade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:alignment-file%file}}\"\n      }\n    },\n    {\n      \"name\": \"texshade\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:parameter-file%file}]{${1:alignment-file%file}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/texshade#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ],\n    \"\\\\alignment\": [\n      \"left\",\n      \"center\",\n      \"right\"\n    ],\n    \"\\\\appearance\": [\n      \"DSSP\",\n      \"STRIDE\",\n      \"PHDsec\",\n      \"PHDtopo\",\n      \"HMMTOP\"\n    ],\n    \"\\\\allmatchresidues,\\\\conservedresidues,\\\\emphdefault,\\\\funcgroup,\\\\funcshadingstyle,\\\\nomatchresidues,\\\\similarresidues\": [\n      \"bf\",\n      \"md\",\n      \"up\",\n      \"it\",\n      \"sl\",\n      \"rm\",\n      \"sf\",\n      \"tt\"\n    ],\n    \"\\\\backtranslabel,\\\\backtranstext\": [\n      \"horizontal\",\n      \"alternating\",\n      \"zigzag\",\n      \"oblique\",\n      \"vertical\"\n    ],\n    \"\\\\feature\": [\n      \"top\",\n      \"ttop\",\n      \"tttop\",\n      \"ttttop\",\n      \"bottom\",\n      \"bbottom\",\n      \"bbbottom\",\n      \"bbbbottom\"\n    ],\n    \"\\\\seqtype\": [\n      \"P\",\n      \"N\"\n    ],\n    \"\\\\setfamily\": [\n      \"rm\",\n      \"sf\",\n      \"tt\"\n    ],\n    \"\\\\setseries\": [\n      \"bf\",\n      \"md\"\n    ],\n    \"\\\\setshape\": [\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"up\"\n    ],\n    \"\\\\setsize,\\\\setfont\": [\n      \"tiny\",\n      \"scriptsize\",\n      \"footnotesize\",\n      \"small\",\n      \"normalsize\",\n      \"large\",\n      \"Large\",\n      \"LARGE\",\n      \"huge\",\n      \"Huge\"\n    ],\n    \"\\\\shadebox\": [\n      \"%color\",\n      \"nomatch\",\n      \"similar\",\n      \"conserved\",\n      \"allmatch\"\n    ],\n    \"\\\\shadingcolors\": [\n      \"blues\",\n      \"reds\",\n      \"greens\",\n      \"grays\",\n      \"black\"\n    ],\n    \"\\\\shadingmode\": [\n      \"identical\",\n      \"similar\",\n      \"T-Coffee\",\n      \"diverse\"\n    ],\n    \"\\\\showconsensus\": [\n      \"Gray\",\n      \"BlueRed\",\n      \"RedBlue\",\n      \"GreenRed\",\n      \"RedGreen\",\n      \"ColdHot\",\n      \"HotCold\",\n      \"T-Coffee\"\n    ],\n    \"\\\\showlogoscale,\\\\shownumbering\": [\n      \"left\",\n      \"right\",\n      \"leftright\"\n    ],\n    \"\\\\shownames\": [\n      \"left\",\n      \"right\"\n    ],\n    \"\\\\shownegatives,\\\\tintdefault\": [\n      \"weak\",\n      \"medium\",\n      \"strong\"\n    ],\n    \"\\\\showruler,\\\\showcaption\": [\n      \"top\",\n      \"bottom\"\n    ],\n    \"\\\\showsequencelogo,\\\\showsubfamilylogo\": [\n      \"chemical\",\n      \"rasmol\",\n      \"hydropathy\",\n      \"structure\",\n      \"standard area\",\n      \"accessible area\"\n    ],\n    \"\\\\weighttable\": [\n      \"identity\",\n      \"structural\",\n      \"PAM250\",\n      \"PAM100\",\n      \"BLOSUM62\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/texshade#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texsort.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"sortlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sortlist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"to\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"to{${1:list name}}\"\n      }\n    },\n    {\n      \"name\": \"sep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sep{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"compresslist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"compresslist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"initarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"initarray{${1:list}}{${2:array}}\"\n      }\n    },\n    {\n      \"name\": \"outarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"outarray{${1:array}}{${2:step}}\"\n      }\n    },\n    {\n      \"name\": \"setarrayitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarrayitem{${1:array}}{${2:index}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"getarraylenght\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getarraylenght{${1:array}}\"\n      }\n    },\n    {\n      \"name\": \"setarraylenght\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setarraylenght{${1:array}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"upheap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upheap{${1:array}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"insertheapelem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"insertheapelem{${1:array}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"downheap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"downheap{${1:array}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"sortlistarray\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sortlistarray{${1:array}}{${2:sorted array}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/texsurgery.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theTSeval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTSrun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTSrunsilent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lstinlinesafe\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"lstinlinesafe|${1:code}|\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eval{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"eval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"eval[${2:language}]{${1:code%definition}}\"\n      }\n    },\n    {\n      \"name\": \"sage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sage{${1:code%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"run\"\n    },\n    {\n      \"name\": \"run\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    },\n    {\n      \"name\": \"runsilent\"\n    },\n    {\n      \"name\": \"runsilent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:language}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/texsurgery#c\": [\n      \"showcode\",\n      \"noinstructions\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/texsurgery#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textalpha.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ensuregreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greekscript\"\n    },\n    {\n      \"name\": \"textAlpha\"\n    },\n    {\n      \"name\": \"textBeta\"\n    },\n    {\n      \"name\": \"textGamma\"\n    },\n    {\n      \"name\": \"textDelta\"\n    },\n    {\n      \"name\": \"textEpsilon\"\n    },\n    {\n      \"name\": \"textZeta\"\n    },\n    {\n      \"name\": \"textEta\"\n    },\n    {\n      \"name\": \"textTheta\"\n    },\n    {\n      \"name\": \"textIota\"\n    },\n    {\n      \"name\": \"textKappa\"\n    },\n    {\n      \"name\": \"textLambda\"\n    },\n    {\n      \"name\": \"textMu\"\n    },\n    {\n      \"name\": \"textNu\"\n    },\n    {\n      \"name\": \"textXi\"\n    },\n    {\n      \"name\": \"textOmicron\"\n    },\n    {\n      \"name\": \"textPi\"\n    },\n    {\n      \"name\": \"textRho\"\n    },\n    {\n      \"name\": \"textSigma\"\n    },\n    {\n      \"name\": \"textTau\"\n    },\n    {\n      \"name\": \"textUpsilon\"\n    },\n    {\n      \"name\": \"textPhi\"\n    },\n    {\n      \"name\": \"textChi\"\n    },\n    {\n      \"name\": \"textPsi\"\n    },\n    {\n      \"name\": \"textOmega\"\n    },\n    {\n      \"name\": \"textalpha\"\n    },\n    {\n      \"name\": \"textbeta\"\n    },\n    {\n      \"name\": \"textgamma\"\n    },\n    {\n      \"name\": \"textdelta\"\n    },\n    {\n      \"name\": \"textepsilon\"\n    },\n    {\n      \"name\": \"textzeta\"\n    },\n    {\n      \"name\": \"texteta\"\n    },\n    {\n      \"name\": \"texttheta\"\n    },\n    {\n      \"name\": \"textiota\"\n    },\n    {\n      \"name\": \"textkappa\"\n    },\n    {\n      \"name\": \"textlambda\"\n    },\n    {\n      \"name\": \"textmu\"\n    },\n    {\n      \"name\": \"textnu\"\n    },\n    {\n      \"name\": \"textxi\"\n    },\n    {\n      \"name\": \"textomicron\"\n    },\n    {\n      \"name\": \"textpi\"\n    },\n    {\n      \"name\": \"textrho\"\n    },\n    {\n      \"name\": \"textsigma\"\n    },\n    {\n      \"name\": \"textfinalsigma\"\n    },\n    {\n      \"name\": \"textautosigma\"\n    },\n    {\n      \"name\": \"texttau\"\n    },\n    {\n      \"name\": \"textupsilon\"\n    },\n    {\n      \"name\": \"textphi\"\n    },\n    {\n      \"name\": \"textchi\"\n    },\n    {\n      \"name\": \"textpsi\"\n    },\n    {\n      \"name\": \"textomega\"\n    },\n    {\n      \"name\": \"textpentedeka\"\n    },\n    {\n      \"name\": \"textpentehekaton\"\n    },\n    {\n      \"name\": \"textpenteqilioi\"\n    },\n    {\n      \"name\": \"textpentemurioi\"\n    },\n    {\n      \"name\": \"textstigma\"\n    },\n    {\n      \"name\": \"textvarstigma\"\n    },\n    {\n      \"name\": \"textKoppa\"\n    },\n    {\n      \"name\": \"textkoppa\"\n    },\n    {\n      \"name\": \"textqoppa\"\n    },\n    {\n      \"name\": \"textQoppa\"\n    },\n    {\n      \"name\": \"textStigma\"\n    },\n    {\n      \"name\": \"textSampi\"\n    },\n    {\n      \"name\": \"textsampi\"\n    },\n    {\n      \"name\": \"textanoteleia\"\n    },\n    {\n      \"name\": \"texterotimatiko\"\n    },\n    {\n      \"name\": \"textdigamma\"\n    },\n    {\n      \"name\": \"textDigamma\"\n    },\n    {\n      \"name\": \"textdexiakeraia\"\n    },\n    {\n      \"name\": \"textaristerikeraia\"\n    },\n    {\n      \"name\": \"textmicro\"\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmugreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\"\n    },\n    {\n      \"name\": \"ypogegrammeni\"\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accoxia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsemicolon\"\n    },\n    {\n      \"name\": \"<\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \">\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpisymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrhosymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textThetasymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilonsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarbeta\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarkappa\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarTheta\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvartheta\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarpi\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarrho\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarepsilon\",\n      \"if\": \"normalize-symbols\"\n    },\n    {\n      \"name\": \"textvarphi\",\n      \"if\": \"normalize-symbols\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textalpha#c\": [\n      \"normalize-symbols\",\n      \"keep-semicolon\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textalpha#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textarea.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"StartFromTextArea\"\n    },\n    {\n      \"name\": \"StartFromHeaderArea\"\n    },\n    {\n      \"name\": \"ExpandTextArea\"\n    },\n    {\n      \"name\": \"ExpandTextArea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExpandTextArea[${1:hfm}]\"\n      }\n    },\n    {\n      \"name\": \"RestoreTextArea\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/textcase.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"MakeTextUppercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeTextUppercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"MakeTextLowercase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeTextLowercase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoCaseChange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoCaseChange{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textcase#c\": [\n      \"overload\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textcase#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textcmds.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"mdash\"\n    },\n    {\n      \"name\": \"ndash\"\n    },\n    {\n      \"name\": \"qd\"\n    },\n    {\n      \"name\": \"xd\"\n    },\n    {\n      \"name\": \"ldq\"\n    },\n    {\n      \"name\": \"rdq\"\n    },\n    {\n      \"name\": \"lsq\"\n    },\n    {\n      \"name\": \"rsq\"\n    },\n    {\n      \"name\": \"bul\"\n    },\n    {\n      \"name\": \"vsp\"\n    },\n    {\n      \"name\": \"pdc\"\n    },\n    {\n      \"name\": \"vrt\"\n    },\n    {\n      \"name\": \"cir\"\n    },\n    {\n      \"name\": \"til\"\n    },\n    {\n      \"name\": \"bsl\"\n    },\n    {\n      \"name\": \"cwm\"\n    },\n    {\n      \"name\": \"qq\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qq{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"q\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"q{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"supsize\"\n    },\n    {\n      \"name\": \"tsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tsub{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textprimechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tprime\"\n    },\n    {\n      \"name\": \"lara\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lara{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/textcomp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"capitalacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalacute{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalbreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalbreve{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcaron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcaron{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcedilla\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcedilla{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalcircumflex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalcircumflex{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaldieresis\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaldieresis{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaldotaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaldotaccent{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalgrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalgrave{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalhungarumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalhungarumlaut{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalmacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalmacron{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalnewtie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalnewtie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalogonek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalogonek{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitalring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitalring{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaltie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaltie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"capitaltilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"capitaltilde{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"newtie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtie{${1:A}}\"\n      }\n    },\n    {\n      \"name\": \"textacutedbl\"\n    },\n    {\n      \"name\": \"textascendercompwordmark\"\n    },\n    {\n      \"name\": \"textasciiacute\"\n    },\n    {\n      \"name\": \"textasciibreve\"\n    },\n    {\n      \"name\": \"textasciicaron\"\n    },\n    {\n      \"name\": \"textasciidieresis\"\n    },\n    {\n      \"name\": \"textasciigrave\"\n    },\n    {\n      \"name\": \"textasciimacron\"\n    },\n    {\n      \"name\": \"textasteriskcentered\"\n    },\n    {\n      \"name\": \"textbaht\"\n    },\n    {\n      \"name\": \"textbardbl\"\n    },\n    {\n      \"name\": \"textbigcircle\"\n    },\n    {\n      \"name\": \"textblank\"\n    },\n    {\n      \"name\": \"textborn\"\n    },\n    {\n      \"name\": \"textbrokenbar\"\n    },\n    {\n      \"name\": \"textbullet\"\n    },\n    {\n      \"name\": \"textcapitalcompwordmark\"\n    },\n    {\n      \"name\": \"textcelsius\"\n    },\n    {\n      \"name\": \"textcent\"\n    },\n    {\n      \"name\": \"textcentoldstyle\"\n    },\n    {\n      \"name\": \"textcircled\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircled{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textcircledP\"\n    },\n    {\n      \"name\": \"textcolonmonetary\"\n    },\n    {\n      \"name\": \"textcopyleft\"\n    },\n    {\n      \"name\": \"textcopyright\"\n    },\n    {\n      \"name\": \"textcurrency\"\n    },\n    {\n      \"name\": \"textdagger\"\n    },\n    {\n      \"name\": \"textdaggerdbl\"\n    },\n    {\n      \"name\": \"textdblhyphen\"\n    },\n    {\n      \"name\": \"textdblhyphenchar\"\n    },\n    {\n      \"name\": \"textdegree\"\n    },\n    {\n      \"name\": \"textdied\"\n    },\n    {\n      \"name\": \"textdiscount\"\n    },\n    {\n      \"name\": \"textdiv\"\n    },\n    {\n      \"name\": \"textdivorced\"\n    },\n    {\n      \"name\": \"textdollar\"\n    },\n    {\n      \"name\": \"textdollaroldstyle\"\n    },\n    {\n      \"name\": \"textdong\"\n    },\n    {\n      \"name\": \"textdownarrow\"\n    },\n    {\n      \"name\": \"texteightoldstyle\"\n    },\n    {\n      \"name\": \"textestimated\"\n    },\n    {\n      \"name\": \"texteuro\"\n    },\n    {\n      \"name\": \"textfiveoldstyle\"\n    },\n    {\n      \"name\": \"textflorin\"\n    },\n    {\n      \"name\": \"textfouroldstyle\"\n    },\n    {\n      \"name\": \"textfractionsolidus\"\n    },\n    {\n      \"name\": \"textgravedbl\"\n    },\n    {\n      \"name\": \"textguarani\"\n    },\n    {\n      \"name\": \"textinterrobang\"\n    },\n    {\n      \"name\": \"textinterrobangdown\"\n    },\n    {\n      \"name\": \"textlangle\"\n    },\n    {\n      \"name\": \"textlbrackdbl\"\n    },\n    {\n      \"name\": \"textleaf\"\n    },\n    {\n      \"name\": \"textleftarrow\"\n    },\n    {\n      \"name\": \"textlegacyasteriskcentered\"\n    },\n    {\n      \"name\": \"textlegacybardbl\"\n    },\n    {\n      \"name\": \"textlegacybullet\"\n    },\n    {\n      \"name\": \"textlegacydagger\"\n    },\n    {\n      \"name\": \"textlegacydaggerdbl\"\n    },\n    {\n      \"name\": \"textlegacyparagraph\"\n    },\n    {\n      \"name\": \"textlegacyperiodcentered\"\n    },\n    {\n      \"name\": \"textlegacysection\"\n    },\n    {\n      \"name\": \"textlira\"\n    },\n    {\n      \"name\": \"textlnot\"\n    },\n    {\n      \"name\": \"textlquill\"\n    },\n    {\n      \"name\": \"textmarried\"\n    },\n    {\n      \"name\": \"textmho\"\n    },\n    {\n      \"name\": \"textminus\"\n    },\n    {\n      \"name\": \"textmu\"\n    },\n    {\n      \"name\": \"textmusicalnote\"\n    },\n    {\n      \"name\": \"textnaira\"\n    },\n    {\n      \"name\": \"textnineoldstyle\"\n    },\n    {\n      \"name\": \"textnumero\"\n    },\n    {\n      \"name\": \"textohm\"\n    },\n    {\n      \"name\": \"textonehalf\"\n    },\n    {\n      \"name\": \"textoneoldstyle\"\n    },\n    {\n      \"name\": \"textonequarter\"\n    },\n    {\n      \"name\": \"textonesuperior\"\n    },\n    {\n      \"name\": \"textopenbullet\"\n    },\n    {\n      \"name\": \"textordfeminine\"\n    },\n    {\n      \"name\": \"textordmasculine\"\n    },\n    {\n      \"name\": \"textparagraph\"\n    },\n    {\n      \"name\": \"textperiodcentered\"\n    },\n    {\n      \"name\": \"textpertenthousand\"\n    },\n    {\n      \"name\": \"textperthousand\"\n    },\n    {\n      \"name\": \"textpeso\"\n    },\n    {\n      \"name\": \"textpilcrow\"\n    },\n    {\n      \"name\": \"textpm\"\n    },\n    {\n      \"name\": \"textquotesingle\"\n    },\n    {\n      \"name\": \"textquotestraightbase\"\n    },\n    {\n      \"name\": \"textquotestraightdblbase\"\n    },\n    {\n      \"name\": \"textrangle\"\n    },\n    {\n      \"name\": \"textrbrackdbl\"\n    },\n    {\n      \"name\": \"textrecipe\"\n    },\n    {\n      \"name\": \"textreferencemark\"\n    },\n    {\n      \"name\": \"textregistered\"\n    },\n    {\n      \"name\": \"textrightarrow\"\n    },\n    {\n      \"name\": \"textrquill\"\n    },\n    {\n      \"name\": \"textsection\"\n    },\n    {\n      \"name\": \"textservicemark\"\n    },\n    {\n      \"name\": \"textsevenoldstyle\"\n    },\n    {\n      \"name\": \"textsixoldstyle\"\n    },\n    {\n      \"name\": \"textsterling\"\n    },\n    {\n      \"name\": \"textsurd\"\n    },\n    {\n      \"name\": \"textthreeoldstyle\"\n    },\n    {\n      \"name\": \"textthreequarters\"\n    },\n    {\n      \"name\": \"textthreequartersemdash\"\n    },\n    {\n      \"name\": \"textthreesuperior\"\n    },\n    {\n      \"name\": \"texttildelow\"\n    },\n    {\n      \"name\": \"texttimes\"\n    },\n    {\n      \"name\": \"texttrademark\"\n    },\n    {\n      \"name\": \"texttwelveudash\"\n    },\n    {\n      \"name\": \"texttwooldstyle\"\n    },\n    {\n      \"name\": \"texttwosuperior\"\n    },\n    {\n      \"name\": \"textuparrow\"\n    },\n    {\n      \"name\": \"textwon\"\n    },\n    {\n      \"name\": \"textyen\"\n    },\n    {\n      \"name\": \"textzerooldstyle\"\n    },\n    {\n      \"name\": \"t\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"t{${1:A}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textcomp#c\": [\n      \"full\",\n      \"almostfull\",\n      \"euro\",\n      \"safe\",\n      \"error\",\n      \"warn\",\n      \"info\",\n      \"quiet\",\n      \"force\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textcomp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textcsc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cscshape\"\n    },\n    {\n      \"name\": \"textcsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"csconlyshape\"\n    },\n    {\n      \"name\": \"csconly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"csconly{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/textfit.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"scaletoheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scaletoheight{${1:height}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"scaletowidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scaletowidth{${1:width}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifScalebyMagsteps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScalebyMagstepstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScalebyMagstepsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNoisyFitting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoisyFittingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoisyFittingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magsteps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fontname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textfit#c\": [\n      \"noisy\",\n      \"magstep\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textfit#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textfrac.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TextFrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TextFrac{${1:numerator}}{${2:denominator}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/textglos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gl{${1:gloss}}\"\n      }\n    },\n    {\n      \"name\": \"gl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gl[${2:postfix}]{${1:gloss}}\"\n      }\n    },\n    {\n      \"name\": \"gl\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"gl[${2:prefix}][${3:postfix}]{${1:gloss}}\"\n      }\n    },\n    {\n      \"name\": \"xo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xo{${1:orthography}}\"\n      }\n    },\n    {\n      \"name\": \"xo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xo[${2:postfix}]{${1:orthography}}\"\n      }\n    },\n    {\n      \"name\": \"xo\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xo[${2:prefix}][${3:postfix}]{${1:orthography}}\"\n      }\n    },\n    {\n      \"name\": \"xt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xt{${1:phonetic}}\"\n      }\n    },\n    {\n      \"name\": \"xt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xt[${2:postfix}]{${1:phonetic}}\"\n      }\n    },\n    {\n      \"name\": \"xt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xt[${2:prefix}][${3:postfix}]{${1:phonetic}}\"\n      }\n    },\n    {\n      \"name\": \"xm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xm{${1:phonemic}}\"\n      }\n    },\n    {\n      \"name\": \"xm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xm[${2:postfix}]{${1:phonemic}}\"\n      }\n    },\n    {\n      \"name\": \"xm\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xm[${2:prefix}][${3:postfix}]{${1:phonemic}}\"\n      }\n    },\n    {\n      \"name\": \"xv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xv{${1:vernacular}}\"\n      }\n    },\n    {\n      \"name\": \"xv\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xv[${2:postfix}]{${1:vernacular}}\"\n      }\n    },\n    {\n      \"name\": \"xv\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xv[${2:prefix}][${3:postfix}]{${1:vernacular}}\"\n      }\n    },\n    {\n      \"name\": \"xh\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xh{${1:reconstruction}}\"\n      }\n    },\n    {\n      \"name\": \"xh\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xh[${2:postfix}]{${1:reconstruction}}\"\n      }\n    },\n    {\n      \"name\": \"xh\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xh[${2:prefix}][${3:postfix}]{${1:reconstruction}}\"\n      }\n    },\n    {\n      \"name\": \"lingprestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lingprestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lingpoststyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lingpoststyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lingexample\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"lingexample{${1:csname}}{${2:template}}\"\n      }\n    },\n    {\n      \"name\": \"shorteq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbrhyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbreq\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nbrpunct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbrpunct{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/textgreek.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"scripttheta\"\n    },\n    {\n      \"name\": \"straightepsilon\"\n    },\n    {\n      \"name\": \"straightphi\"\n    },\n    {\n      \"name\": \"straighttheta\"\n    },\n    {\n      \"name\": \"textalpha\"\n    },\n    {\n      \"name\": \"textAlpha\"\n    },\n    {\n      \"name\": \"textbeta\"\n    },\n    {\n      \"name\": \"textBeta\"\n    },\n    {\n      \"name\": \"textchi\"\n    },\n    {\n      \"name\": \"textChi\"\n    },\n    {\n      \"name\": \"textdelta\"\n    },\n    {\n      \"name\": \"textDelta\"\n    },\n    {\n      \"name\": \"textepsilon\"\n    },\n    {\n      \"name\": \"textEpsilon\"\n    },\n    {\n      \"name\": \"texteta\"\n    },\n    {\n      \"name\": \"textEta\"\n    },\n    {\n      \"name\": \"textgamma\"\n    },\n    {\n      \"name\": \"textGamma\"\n    },\n    {\n      \"name\": \"textiota\"\n    },\n    {\n      \"name\": \"textIota\"\n    },\n    {\n      \"name\": \"textkappa\"\n    },\n    {\n      \"name\": \"textKappa\"\n    },\n    {\n      \"name\": \"textlambda\"\n    },\n    {\n      \"name\": \"textLambda\"\n    },\n    {\n      \"name\": \"textmu\"\n    },\n    {\n      \"name\": \"textMu\"\n    },\n    {\n      \"name\": \"textmugreek\"\n    },\n    {\n      \"name\": \"textnu\"\n    },\n    {\n      \"name\": \"textNu\"\n    },\n    {\n      \"name\": \"textomega\"\n    },\n    {\n      \"name\": \"textOmega\"\n    },\n    {\n      \"name\": \"textomikron\"\n    },\n    {\n      \"name\": \"textOmikron\"\n    },\n    {\n      \"name\": \"textphi\"\n    },\n    {\n      \"name\": \"textPhi\"\n    },\n    {\n      \"name\": \"textpi\"\n    },\n    {\n      \"name\": \"textPi\"\n    },\n    {\n      \"name\": \"textpsi\"\n    },\n    {\n      \"name\": \"textPsi\"\n    },\n    {\n      \"name\": \"textrho\"\n    },\n    {\n      \"name\": \"textRho\"\n    },\n    {\n      \"name\": \"textsigma\"\n    },\n    {\n      \"name\": \"textSigma\"\n    },\n    {\n      \"name\": \"texttau\"\n    },\n    {\n      \"name\": \"textTau\"\n    },\n    {\n      \"name\": \"texttheta\"\n    },\n    {\n      \"name\": \"textTheta\"\n    },\n    {\n      \"name\": \"textupsilon\"\n    },\n    {\n      \"name\": \"textUpsilon\"\n    },\n    {\n      \"name\": \"textvarsigma\"\n    },\n    {\n      \"name\": \"textxi\"\n    },\n    {\n      \"name\": \"textXi\"\n    },\n    {\n      \"name\": \"textzeta\"\n    },\n    {\n      \"name\": \"textZeta\"\n    },\n    {\n      \"name\": \"textgreekfontmap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgreekfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextGreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TextGreek{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextGreekSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTextGreekSymbol{${1:letter}}{${2:LGR}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextGreekSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"DeclareTextGreekSymbol{${1:letter}}{${2:LGR}}[${3:OML}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareTextGreekSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[][]\",\n        \"snippet\": \"DeclareTextGreekSymbol{${1:letter}}{${2:LGR}}[${3:OML}][${4:U}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textgreek#c\": [\n      \"cbgreek\",\n      \"euler\",\n      \"artemisia\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textgreek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textopo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getsequence{${1:PHD}}{${2:PHD-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getsequence[${3:make new}]{${1:PHD}}{${2:PHD-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getsequence{${1:HMMTOP}}{${2:HMMTOP-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getsequence[${3:make new}]{${1:HMMTOP}}{${2:HMMTOP-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getsequence{${1:SwissProt}}{${2:SwissProt-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getsequence[${3:make new}]{${1:SwissProt}}{${2:SwissProt-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getsequence{${1:alignment}}{${2:SwissProt-file}}\"\n      }\n    },\n    {\n      \"name\": \"getsequence\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"getsequence[${3:seqnum}]{${1:alignment}}{${2:alignment-file}}\"\n      }\n    },\n    {\n      \"name\": \"MRs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MRs{${1:start1..stop1,start2..stop2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Nterm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nterm{${1:intra|extra}}\"\n      }\n    },\n    {\n      \"name\": \"sequence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sequence{${1:amino-acid-sequence}}\"\n      }\n    },\n    {\n      \"name\": \"scaletopo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scaletopo{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"loopextent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopextent{${1:extent}}\"\n      }\n    },\n    {\n      \"name\": \"loopextent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loopextent{${1:extent[${2:distance}]}}\"\n      }\n    },\n    {\n      \"name\": \"loopextent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loopextent[${2:loop}]{${1:extent}}\"\n      }\n    },\n    {\n      \"name\": \"loopextent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"loopextent[${2:loop}]{${1:extent[${3:distance}]}}\"\n      }\n    },\n    {\n      \"name\": \"loopfoot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loopfoot{${1:loop}}{${2:direction[${3:neck}]}}\"\n      }\n    },\n    {\n      \"name\": \"flipNterm\"\n    },\n    {\n      \"name\": \"flipCterm\"\n    },\n    {\n      \"name\": \"clearMRs\"\n    },\n    {\n      \"name\": \"anchor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"anchor{${1:pos}}\"\n      }\n    },\n    {\n      \"name\": \"membranecolors\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"membranecolors{${1:border}}{${2:interior}}\"\n      }\n    },\n    {\n      \"name\": \"borderthickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"borderthickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"labeloutside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labeloutside{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"labeloutside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"labeloutside[${2:left|right}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"labelinside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelinside{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"labelinside\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"labelinside[${2:left|right}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"moveinsidelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveinsidelabel{${1:⟨dir,dist⟩ or ⟨x,y⟩}}\"\n      }\n    },\n    {\n      \"name\": \"moveoutsidelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveoutsidelabel{${1:⟨dir,dist⟩ or ⟨x,y⟩}}\"\n      }\n    },\n    {\n      \"name\": \"broadenmembrane\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"broadenmembrane{${1:left|right}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"thickenmembrane\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thickenmembrane{${1:top|bottom}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"hidemembrane\"\n    },\n    {\n      \"name\": \"showmembrane\"\n    },\n    {\n      \"name\": \"labelTMs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelTMs{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"numcount\"\n    },\n    {\n      \"name\": \"alphacount\"\n    },\n    {\n      \"name\": \"Alphacount\"\n    },\n    {\n      \"name\": \"romancount\"\n    },\n    {\n      \"name\": \"Romancount\"\n    },\n    {\n      \"name\": \"labelTM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelTM{${1:num}}{${2:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"labelTM\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"labelTM[${3:⟨dir,dist⟩ or ⟨x,y⟩}]{${1:num}}{${2:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"moveTMlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"moveTMlabel{${1:num}}{${2:⟨dir,dist⟩ or ⟨x,y⟩}}\"\n      }\n    },\n    {\n      \"name\": \"TMlabelcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TMlabelcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"hideTMlabels\"\n    },\n    {\n      \"name\": \"labelloops\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"labelloops{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"labelloop\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"labelloop[${3:⟨dir,dist⟩ or ⟨x,y⟩}]{${1:num}}{${2:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"movelooplabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movelooplabel{${1:num}}{${2:⟨dir,dist⟩ or ⟨x,y⟩}}\"\n      }\n    },\n    {\n      \"name\": \"looplabelcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"looplabelcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"hidelooplabels\"\n    },\n    {\n      \"name\": \"showNterm\"\n    },\n    {\n      \"name\": \"hideNterm\"\n    },\n    {\n      \"name\": \"showCterm\"\n    },\n    {\n      \"name\": \"hideCterm\"\n    },\n    {\n      \"name\": \"labelstyle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"labelstyle{${1:name}}{${2:shape}}{${3:frame-color}}{${4:background-color}}{${5:char-color}}{${6:legend-text}}\"\n      }\n    },\n    {\n      \"name\": \"labelregion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"labelregion{${1:list-of-regions}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"labelregion\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"labelregion[${4:⟨dir,dist⟩ or ⟨x,y⟩}]{${1:list-of-regions}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"phosphorylation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phosphorylation{${1:list-of-positions}}\"\n      }\n    },\n    {\n      \"name\": \"glycosylation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"glycosylation{${1:list-of-positions}}\"\n      }\n    },\n    {\n      \"name\": \"countercolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countercolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"rulethickness\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rulethickness{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"place{${1:x%,y% }}{${2:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"place\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"place[${3:num}]{${1:x%,y% }}{${2:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"addtagtoNterm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtagtoNterm{${1:tag-sequence}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"addtagtoNterm\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addtagtoNterm[${4:⟨dir,dist⟩ or ⟨x,y⟩}]{${1:tag-sequence}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"addtagtoCterm\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtagtoCterm{${1:tag-sequence}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"addtagtoCterm\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addtagtoCterm[${4:⟨dir,dist⟩ or ⟨x,y⟩}]{${1:tag-sequence}}{${2:style-name}}{${3:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"seqstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"seqstart{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"applyshading{${1:identical}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"applyshading[${3:num}]{${1:identical}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"applyshading{${1:similar}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"applyshading[${3:num}]{${1:similar}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"applyshading{${1:functional}}{${2:group}}\"\n      }\n    },\n    {\n      \"name\": \"applyshading\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"applyshading[${3:parameter-file}]{${1:functional}}{${2:group}}\"\n      }\n    },\n    {\n      \"name\": \"shadingcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadingcolors{${1:colorscheme}}\"\n      }\n    },\n    {\n      \"name\": \"allmatchspecial\"\n    },\n    {\n      \"name\": \"allmatchspecialoff\"\n    },\n    {\n      \"name\": \"standardresidues\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"standardresidues{${1:style%keyvals}}{${2:frame}}{${3:background}}{${4:char}}\",\n        \"keys\": [\n          \"\\\\standardresidues,\\\\similarpositions,\\\\conservedpositions,\\\\invariablepositions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"similarpositions\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"similarpositions{${1:style%keyvals}}{${2:frame}}{${3:background}}{${4:char}}\",\n        \"keys\": [\n          \"\\\\standardresidues,\\\\similarpositions,\\\\conservedpositions,\\\\invariablepositions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"conservedpositions\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"conservedpositions{${1:style%keyvals}}{${2:frame}}{${3:background}}{${4:char}}\",\n        \"keys\": [\n          \"\\\\standardresidues,\\\\similarpositions,\\\\conservedpositions,\\\\invariablepositions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"invariablepositions\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"invariablepositions{${1:style%keyvals}}{${2:frame}}{${3:background}}{${4:char}}\",\n        \"keys\": [\n          \"\\\\standardresidues,\\\\similarpositions,\\\\conservedpositions,\\\\invariablepositions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"donotshadestartMet\"\n    },\n    {\n      \"name\": \"shadestartMet\"\n    },\n    {\n      \"name\": \"hidelegend\"\n    },\n    {\n      \"name\": \"showlegend\"\n    },\n    {\n      \"name\": \"movelegend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"movelegend{${1:x-offset}}{${2:y-offset}}\"\n      }\n    },\n    {\n      \"name\": \"helixstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"helixstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\helixstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scalewheel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scalewheel{${1:percent}}\"\n      }\n    },\n    {\n      \"name\": \"symbolsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbolsize{${1:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\symbolsize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wheelsperline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wheelsperline{${1:num}}\"\n      }\n    },\n    {\n      \"name\": \"viewfromextra\"\n    },\n    {\n      \"name\": \"viewfromintra\"\n    },\n    {\n      \"name\": \"showmoment\"\n    },\n    {\n      \"name\": \"hidemoment\"\n    },\n    {\n      \"name\": \"Hmean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hmean{${1:helix-num}}\"\n      }\n    },\n    {\n      \"name\": \"muH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"muH{${1:helix-num}}\"\n      }\n    },\n    {\n      \"name\": \"muHmean\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"muHmean{${1:helix-num}}\"\n      }\n    },\n    {\n      \"name\": \"mudelta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mudelta{${1:helix-num}}\"\n      }\n    },\n    {\n      \"name\": \"momentcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"momentcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"scalemoment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scalemoment{${1:percent}}\"\n      }\n    },\n    {\n      \"name\": \"showwheelnumbering\"\n    },\n    {\n      \"name\": \"hidewheelnumbering\"\n    },\n    {\n      \"name\": \"showbonds\"\n    },\n    {\n      \"name\": \"hidebonds\"\n    },\n    {\n      \"name\": \"setfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setfamily{${1:text}}{${2:family%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfamily#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setseries\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setseries{${1:text}}{${2:series%keyvals}}\",\n        \"keys\": [\n          \"\\\\setseries#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setshape\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setshape{${1:text}}{${2:shape%keyvals}}\",\n        \"keys\": [\n          \"\\\\setshape#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setsize{${1:text}}{${2:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\setsize#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setfont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"setfont{${1:text}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\"\n      }\n    },\n    {\n      \"name\": \"labelsrm\"\n    },\n    {\n      \"name\": \"labelstiny\"\n    },\n    {\n      \"name\": \"labelssf\"\n    },\n    {\n      \"name\": \"labelsscriptsize\"\n    },\n    {\n      \"name\": \"labelstt\"\n    },\n    {\n      \"name\": \"labelsfootnotesize\"\n    },\n    {\n      \"name\": \"labelsbf\"\n    },\n    {\n      \"name\": \"labelssmall\"\n    },\n    {\n      \"name\": \"labelsmd\"\n    },\n    {\n      \"name\": \"labelsnormalsize\"\n    },\n    {\n      \"name\": \"labelsit\"\n    },\n    {\n      \"name\": \"labelslarge\"\n    },\n    {\n      \"name\": \"labelssl\"\n    },\n    {\n      \"name\": \"labelsLarge\"\n    },\n    {\n      \"name\": \"labelssc\"\n    },\n    {\n      \"name\": \"labelsLARGE\"\n    },\n    {\n      \"name\": \"labelsup\"\n    },\n    {\n      \"name\": \"labelshuge\"\n    },\n    {\n      \"name\": \"labelsHuge\"\n    },\n    {\n      \"name\": \"membranelabelsrm\"\n    },\n    {\n      \"name\": \"membranelabelssf\"\n    },\n    {\n      \"name\": \"membranelabelstt\"\n    },\n    {\n      \"name\": \"membranelabelsmd\"\n    },\n    {\n      \"name\": \"membranelabelsbf\"\n    },\n    {\n      \"name\": \"membranelabelsup\"\n    },\n    {\n      \"name\": \"membranelabelsit\"\n    },\n    {\n      \"name\": \"membranelabelssl\"\n    },\n    {\n      \"name\": \"membranelabelssc\"\n    },\n    {\n      \"name\": \"membranelabelstiny\"\n    },\n    {\n      \"name\": \"membranelabelsscriptsize\"\n    },\n    {\n      \"name\": \"membranelabelsfootnotesize\"\n    },\n    {\n      \"name\": \"membranelabelssmall\"\n    },\n    {\n      \"name\": \"membranelabelsnormalsize\"\n    },\n    {\n      \"name\": \"membranelabelslarge\"\n    },\n    {\n      \"name\": \"membranelabelsLarge\"\n    },\n    {\n      \"name\": \"membranelabelsLARGE\"\n    },\n    {\n      \"name\": \"membranelabelshuge\"\n    },\n    {\n      \"name\": \"membranelabelsHuge\"\n    },\n    {\n      \"name\": \"looplabelsrm\"\n    },\n    {\n      \"name\": \"looplabelssf\"\n    },\n    {\n      \"name\": \"looplabelstt\"\n    },\n    {\n      \"name\": \"looplabelsmd\"\n    },\n    {\n      \"name\": \"looplabelsbf\"\n    },\n    {\n      \"name\": \"looplabelsup\"\n    },\n    {\n      \"name\": \"looplabelsit\"\n    },\n    {\n      \"name\": \"looplabelssl\"\n    },\n    {\n      \"name\": \"looplabelssc\"\n    },\n    {\n      \"name\": \"looplabelstiny\"\n    },\n    {\n      \"name\": \"looplabelsscriptsize\"\n    },\n    {\n      \"name\": \"looplabelsfootnotesize\"\n    },\n    {\n      \"name\": \"looplabelssmall\"\n    },\n    {\n      \"name\": \"looplabelsnormalsize\"\n    },\n    {\n      \"name\": \"looplabelslarge\"\n    },\n    {\n      \"name\": \"looplabelsLarge\"\n    },\n    {\n      \"name\": \"looplabelsLARGE\"\n    },\n    {\n      \"name\": \"looplabelshuge\"\n    },\n    {\n      \"name\": \"looplabelsHuge\"\n    },\n    {\n      \"name\": \"TMlabelsrm\"\n    },\n    {\n      \"name\": \"TMlabelssf\"\n    },\n    {\n      \"name\": \"TMlabelstt\"\n    },\n    {\n      \"name\": \"TMlabelsmd\"\n    },\n    {\n      \"name\": \"TMlabelsbf\"\n    },\n    {\n      \"name\": \"TMlabelsup\"\n    },\n    {\n      \"name\": \"TMlabelsit\"\n    },\n    {\n      \"name\": \"TMlabelssl\"\n    },\n    {\n      \"name\": \"TMlabelssc\"\n    },\n    {\n      \"name\": \"TMlabelstiny\"\n    },\n    {\n      \"name\": \"TMlabelsscriptsize\"\n    },\n    {\n      \"name\": \"TMlabelsfootnotesize\"\n    },\n    {\n      \"name\": \"TMlabelssmall\"\n    },\n    {\n      \"name\": \"TMlabelsnormalsize\"\n    },\n    {\n      \"name\": \"TMlabelslarge\"\n    },\n    {\n      \"name\": \"TMlabelsLarge\"\n    },\n    {\n      \"name\": \"TMlabelsLARGE\"\n    },\n    {\n      \"name\": \"TMlabelshuge\"\n    },\n    {\n      \"name\": \"TMlabelsHuge\"\n    },\n    {\n      \"name\": \"TeXtopo\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"textopo\"\n    },\n    {\n      \"name\": \"textopo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:parameter-file%file}]\"\n      }\n    },\n    {\n      \"name\": \"helicalwheel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:helix-list}}\"\n      }\n    },\n    {\n      \"name\": \"helicalwheel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:parameter-file%file}]{${1:helix-list}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/textopo#c\": [\n      \"monochrome\",\n      \"debugshow\",\n      \"setpagesize\",\n      \"nosetpagesize\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"dvisvgm\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"dvipsnames\",\n      \"nodvipsnames\",\n      \"usenames\"\n    ],\n    \"\\\\standardresidues,\\\\similarpositions,\\\\conservedpositions,\\\\invariablepositions\": [\n      \"circ\",\n      \"box\",\n      \"diamond\"\n    ],\n    \"\\\\helixstyle\": [\n      \"perspective\",\n      \"wheel\",\n      \"net\"\n    ],\n    \"\\\\symbolsize\": [\n      \"small\",\n      \"medium\",\n      \"large\"\n    ],\n    \"\\\\setfamily#c\": [\n      \"rm\",\n      \"sf\",\n      \"tt\"\n    ],\n    \"\\\\setseries#c\": [\n      \"bf\",\n      \"md\"\n    ],\n    \"\\\\setshape#c\": [\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"up\"\n    ],\n    \"\\\\setsize#c\": [\n      \"tiny\",\n      \"scriptsize\",\n      \"footnotesize\",\n      \"small\",\n      \"normalsize\",\n      \"large\",\n      \"Large\",\n      \"LARGE\",\n      \"huge\",\n      \"Huge\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textopo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textpos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"everyshi\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TPoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\TPoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TPGrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TPGrid{${1:nhoriz}}{${2:nvert}}\"\n      }\n    },\n    {\n      \"name\": \"TPGrid\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TPGrid[${3:x,y}]{${1:nhoriz}}{${2:nvert}}\"\n      }\n    },\n    {\n      \"name\": \"TPShowGrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TPShowGrid{${1:nhoriz}}{${2:nvert}}\"\n      }\n    },\n    {\n      \"name\": \"TPMargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPMargin{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"TPMargin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPMargin*{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"TPReferencePosition\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPReferencePosition{${1:val1,val2}}\"\n      }\n    },\n    {\n      \"name\": \"TPHorizModule\"\n    },\n    {\n      \"name\": \"TPVertModule\"\n    },\n    {\n      \"name\": \"ifTPshowboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPshowboxestrue\"\n    },\n    {\n      \"name\": \"TPshowboxesfalse\"\n    },\n    {\n      \"name\": \"TPboxrulesize\"\n    },\n    {\n      \"name\": \"textblocklabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblocklabel{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"showtextsize\"\n    },\n    {\n      \"name\": \"textblockorigin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textblockorigin{${1:hpos}}{${2:vpos}}\"\n      }\n    },\n    {\n      \"name\": \"textblockcolour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblockcolour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textblockcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblockcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textblockrulecolour\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblockrulecolour{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textblockrulecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textblockrulecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tekstblokkulur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tekstblokkulur{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"tekstblokroolkulur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tekstblokroolkulur{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"textblock\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:hsize}}(${2:hpos},${3:vpos})\"\n      }\n    },\n    {\n      \"name\": \"textblock\",\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"{${1:hsize}}[${2:ho,vo}](${3:hpos},${4:vpos})\"\n      }\n    },\n    {\n      \"name\": \"textblock*\",\n      \"arg\": {\n        \"format\": \"{}()\",\n        \"snippet\": \"{${1:hsize}}(${2:hpos},${3:vpos})\"\n      }\n    },\n    {\n      \"name\": \"textblock*\",\n      \"arg\": {\n        \"format\": \"{}[]()\",\n        \"snippet\": \"{${1:hsize}}[${2:ho,vo}](${3:hpos},${4:vpos})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/textpos#c\": [\n      \"showboxes\",\n      \"noshowtext\",\n      \"absolute\",\n      \"relative\",\n      \"overlay\",\n      \"quiet\",\n      \"verbose\",\n      \"discardcontent\"\n    ],\n    \"\\\\TPoptions\": [\n      \"absolute\",\n      \"overlay\",\n      \"verbose\",\n      \"showboxes\",\n      \"showtext\",\n      \"discardcontent\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textpos#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/textualicomma.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textualicommafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textualicommafont{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"mathcomma\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/textualicomma#c\": [\n      \"sffamily\",\n      \"ttfamily\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/textualicomma#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/texvc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"cancel\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"eurosym\"\n    },\n    {\n      \"name\": \"teubner\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Complex\"\n    },\n    {\n      \"name\": \"Dagger\"\n    },\n    {\n      \"name\": \"Darr\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Harr\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Larr\"\n    },\n    {\n      \"name\": \"Lrarr\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"Rarr\"\n    },\n    {\n      \"name\": \"Reals\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Uarr\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"alef\"\n    },\n    {\n      \"name\": \"alefsym\"\n    },\n    {\n      \"name\": \"ang\"\n    },\n    {\n      \"name\": \"bull\"\n    },\n    {\n      \"name\": \"clubs\"\n    },\n    {\n      \"name\": \"cnums\"\n    },\n    {\n      \"name\": \"dArr\"\n    },\n    {\n      \"name\": \"darr\"\n    },\n    {\n      \"name\": \"diamonds\"\n    },\n    {\n      \"name\": \"exist\"\n    },\n    {\n      \"name\": \"hAar\"\n    },\n    {\n      \"name\": \"harr\"\n    },\n    {\n      \"name\": \"hearts\"\n    },\n    {\n      \"name\": \"image\"\n    },\n    {\n      \"name\": \"infin\"\n    },\n    {\n      \"name\": \"isin\"\n    },\n    {\n      \"name\": \"lArr\"\n    },\n    {\n      \"name\": \"lang\"\n    },\n    {\n      \"name\": \"larr\"\n    },\n    {\n      \"name\": \"lrArr\"\n    },\n    {\n      \"name\": \"lrarr\"\n    },\n    {\n      \"name\": \"natnums\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"plusmn\"\n    },\n    {\n      \"name\": \"rArr\"\n    },\n    {\n      \"name\": \"rang\"\n    },\n    {\n      \"name\": \"rarr\"\n    },\n    {\n      \"name\": \"real\"\n    },\n    {\n      \"name\": \"reals\"\n    },\n    {\n      \"name\": \"sdot\"\n    },\n    {\n      \"name\": \"sect\"\n    },\n    {\n      \"name\": \"spades\"\n    },\n    {\n      \"name\": \"sub\"\n    },\n    {\n      \"name\": \"sube\"\n    },\n    {\n      \"name\": \"supe\"\n    },\n    {\n      \"name\": \"thetasym\"\n    },\n    {\n      \"name\": \"uArr\"\n    },\n    {\n      \"name\": \"uarr\"\n    },\n    {\n      \"name\": \"varcoppa\"\n    },\n    {\n      \"name\": \"weierp\"\n    },\n    {\n      \"name\": \"captionsgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dategreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasgreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekscript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greektext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ensuregreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ensuregreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textgreek\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgreek{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"greekfontencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"outlfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"greekhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grtoday\"\n    },\n    {\n      \"name\": \"anwtonos\"\n    },\n    {\n      \"name\": \"katwtonos\"\n    },\n    {\n      \"name\": \"qoppa\"\n    },\n    {\n      \"name\": \"varqoppa\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"ddigamma\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\"\n    },\n    {\n      \"name\": \"textAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfinalsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textautosigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentedeka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentehekaton\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpenteqilioi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarstigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textKoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textqoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textQoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textanoteleia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texterotimatiko\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdexiakeraia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textaristerikeraia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textstigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textkoppagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textStigmagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textSampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsampigreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textdigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textDigammagreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsigngreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnumeralsignlowergreek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpentemuria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textmicro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textschwa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textampersand\"\n    },\n    {\n      \"name\": \"accdialytika\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytika{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prosgegrammeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ypogegrammeni\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"accdialytikaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikatonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikatonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdialytikavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdialytikavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:a}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accinvertedbrevebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accinvertedbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accbrevebelow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accbrevebelow{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiavaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiavaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"acctonos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"acctonos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaoxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaoxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilioxia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilioxia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsilivaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsilivaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasiaperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasiaperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsiliperispomeni\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsiliperispomeni{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accvaria\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accvaria{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accdasia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accdasia{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"accpsili\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"accpsili{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tfrupee.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"rupee\"\n    },\n    {\n      \"name\": \"rupeefont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tgadventor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgadventor#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgadventor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgbonum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgbonum#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"oldspacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgbonum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgchorus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgchorus#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"oldspacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgchorus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgcursor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgcursor#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgcursor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgheros.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgheros#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"condensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgheros#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgothic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"texttgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tgothfamily\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tgpagella.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgpagella#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"oldspacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgpagella#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgschola.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgschola#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"oldspacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgschola#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tgtermes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tgtermes#c\": [\n      \"scale=${1:factor}\",\n      \"matchlowercase=${1:factor}\",\n      \"matchuppercase=${1:factor}\",\n      \"oldspacing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tgtermes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thaienum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thaimultialph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaimultialph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thaimultiAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaimultiAlph{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thaispec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"ucharclasses\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"polyglossia\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"mathtools\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"amssymb\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"amsthm\",\n      \"if\": \"math\"\n    },\n    {\n      \"name\": \"mathspec\",\n      \"if\": \"math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thaifont\"\n    },\n    {\n      \"name\": \"thaialph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaialph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thalph{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thainum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thainum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thainumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thainumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thaidigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thaidigits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thdigits{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"thaispecver\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thailang\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"proposition\"\n    },\n    {\n      \"name\": \"proposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"axiom\"\n    },\n    {\n      \"name\": \"axiom\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    },\n    {\n      \"name\": \"note\"\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:heading%text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/thaispec#c\": [\n      \"thainum\",\n      \"math\",\n      \"thaifont=${1:font name}\",\n      \"sloppy\",\n      \"thaispacing\",\n      \"thaicaption\",\n      \"beamerthmcount\",\n      \"thmcount=${1|default,no,full,section,chapter,kind,kind-section,kind-chapter|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thaispec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thalie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setthalieoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setthalieoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/thalie#c,\\\\setthalieoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"play{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"play[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"play*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"play*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"act\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"act{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"act\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"act[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"act*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"act*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"scene\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scene{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"scene\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"scene[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"scene*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scene*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"interlude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interlude{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"interlude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"interlude[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"interlude*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"interlude*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"curtain\"\n    },\n    {\n      \"name\": \"customplay\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"customplay{${1:counter}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"customplay*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customplay*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"customact\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"customact{${1:counter}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"customact*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customact*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"customscene\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"customscene{${1:counter}}{${2:title}}\"\n      }\n    },\n    {\n      \"name\": \"customscene*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customscene*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"theact\"\n    },\n    {\n      \"name\": \"theplay\"\n    },\n    {\n      \"name\": \"thescene\"\n    },\n    {\n      \"name\": \"playmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"playmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"actmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"actmark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"scenemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scenemark{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"character\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"character{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"character\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"character[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\character\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cast{${1:cast}}\"\n      }\n    },\n    {\n      \"name\": \"characterspace\"\n    },\n    {\n      \"name\": \"dramatischaracter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dramatischaracter{${1:name}}{${2:description}}{${3:cast}}\"\n      }\n    },\n    {\n      \"name\": \"dramatischaractername\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dramatischaractername{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"dramatischaracterdescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dramatischaracterdescription{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"dramatischaractercast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dramatischaractercast{${1:cast}}\"\n      }\n    },\n    {\n      \"name\": \"dramatiscast\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dramatiscast{${1:cast}}\"\n      }\n    },\n    {\n      \"name\": \"disposablecharacter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disposablecharacter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"disposablecharacter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"disposablecharacter[${2:directions}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setcharactername\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcharactername{${1:csname}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"speakswithoutdirection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speakswithoutdirection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"speakswithdirection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"speakswithdirection{${1:name}}{${2:direction}}\"\n      }\n    },\n    {\n      \"name\": \"did\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"did{${1:directions}}\"\n      }\n    },\n    {\n      \"name\": \"onstage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onstage{${1:directions}}\"\n      }\n    },\n    {\n      \"name\": \"pause\"\n    },\n    {\n      \"name\": \"pauseverse\"\n    },\n    {\n      \"name\": \"resumeverse\"\n    },\n    {\n      \"name\": \"adjustverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adjustverse{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"playname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"actname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scenename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interludename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pausename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"curtainname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dramatis\"\n    },\n    {\n      \"name\": \"dramatis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dramatis}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"charactergroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"charactergroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:description}}\"\n      }\n    },\n    {\n      \"name\": \"castgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"castgroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\begin{castgroup}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dramatisenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dramatischaractergroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:description}}\"\n      }\n    },\n    {\n      \"name\": \"dramatischaractercastgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:name}}{${2:description}}{${3:cast}}\"\n      }\n    },\n    {\n      \"name\": \"dida\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/thalie#c,\\\\setthalieoptions\": [\n      \"characterstyle=${1|bold,margin,center,simple,arden,imprimerie-verse,imprimerie-prose|}\",\n      \"playstyle=${1|center,bigcenter,box,custom|}\",\n      \"actstyle=${1|center,bigcenter,box,custom|}\",\n      \"scenestyle=${1|center,bigcenter,box,custom|}\",\n      \"playlevel=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"actlevel=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"scenelevel=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"interludelevel=${1|play,act,scene|}\",\n      \"xspace\"\n    ],\n    \"\\\\begin{dramatis}\": [\n      \"hidden\",\n      \"defaultcast=${1:cast}\"\n    ],\n    \"\\\\character\": [\n      \"desc=${1:description}\",\n      \"cmd=${1:csname}\",\n      \"drama=${1:name}\",\n      \"cast=${1:cast}\"\n    ],\n    \"\\\\begin{castgroup}\": [\n      \"desc=${1:description}\",\n      \"cmd=${1:csname}\",\n      \"drama=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thalie#c,\\\\setthalieoptions\"\n  ]\n}"
  },
  {
    "path": "dev/packages/theatre.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"enumitem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TheatreComment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheatreComment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreComment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TheatreComment[${2:commentaire}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreCreerUnRole\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TheatreCreerUnRole{${1:nomcourt}}{${2:nomlong}}{${3:petit}}{${4:grand}}{${5:couleur}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreIniCpteReplique\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheatreIniCpteReplique{${1:numéro}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreMvt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheatreMvt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreMvt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TheatreMvt[${2:commentaire}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreNomDuRole\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TheatreNomDuRole{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"TheatreEcarterRepliques\"\n    },\n    {\n      \"name\": \"TheatreEntreNomEtReplique\"\n    },\n    {\n      \"name\": \"TheatreTailleRoleCpte\"\n    },\n    {\n      \"name\": \"TheatreTailleRoleNom\"\n    },\n    {\n      \"name\": \"TheatreSerrerRepliques\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TheatreXparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TheatreXparindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TheatreXparskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theTheatreCpteReplique\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"theatre\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/theorem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theoremstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"theorembodyfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theorembodyfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"theoremheaderfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"theoremheaderfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"theorempreskipamount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theorempostskipamount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/theoremref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thlabel{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"thref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"thnameref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thnameref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/theoremref#c\": [\n      \"lowercase\",\n      \"reftex\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/theoremref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thepdfnumber.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"thepdfnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thepdfnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thepdfnumberNormZeroOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thepdfnumberNormZeroOne{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thermodynamics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allbut\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"allbut[${3:subscript}]{${1:index}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"allbut\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allbut{${1:index}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"allbutlastand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"allbutlastand[${3:subscript}]{${1:index}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"allbutlastand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"allbutlastand{${1:index}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"allcomponents\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allcomponents{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"allMs\"\n    },\n    {\n      \"name\": \"allMsbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allMsbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allMsbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allMsbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allmus\"\n    },\n    {\n      \"name\": \"allmusbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allmusbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allmusbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allmusbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allNs\"\n    },\n    {\n      \"name\": \"allNsbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allNsbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allNsbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allNsbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allWs\"\n    },\n    {\n      \"name\": \"allWsbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allWsbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allWsbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allWsbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allXs\"\n    },\n    {\n      \"name\": \"allXsbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allXsbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allXsbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allXsbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allYs\"\n    },\n    {\n      \"name\": \"allYsbut\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"allYsbut[${2:subscript}]{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"allYsbut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allYsbut{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"alphaP\"\n    },\n    {\n      \"name\": \"alphaS\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"Apm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Apm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Apm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Apm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"Bm\"\n    },\n    {\n      \"name\": \"Bpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Bpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Bs\"\n    },\n    {\n      \"name\": \"Bt\"\n    },\n    {\n      \"name\": \"compressibilitysymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cP\"\n    },\n    {\n      \"name\": \"cPpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cPpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cPpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cPpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cPs\"\n    },\n    {\n      \"name\": \"cPt\"\n    },\n    {\n      \"name\": \"cV\"\n    },\n    {\n      \"name\": \"cVpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"cVpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cVpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cVpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"cVs\"\n    },\n    {\n      \"name\": \"cVt\"\n    },\n    {\n      \"name\": \"dbar\"\n    },\n    {\n      \"name\": \"DeclareSubscrSymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareSubscrSymbol{${1:csname}}{${2:symbol%formula}}{${3:subscript%formula}}\"\n      }\n    },\n    {\n      \"name\": \"Deltaf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltaf{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Deltafus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltafus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Deltamix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltamix{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Deltarxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltarxn{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Deltasub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltasub{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Deltavap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Deltavap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Em\"\n    },\n    {\n      \"name\": \"Epm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Epm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Epm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Epm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Es\"\n    },\n    {\n      \"name\": \"Et\"\n    },\n    {\n      \"name\": \"excess\"\n    },\n    {\n      \"name\": \"expansivitysymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FE\"\n    },\n    {\n      \"name\": \"FEpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FEpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"FEpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FEpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"FEs\"\n    },\n    {\n      \"name\": \"FEt\"\n    },\n    {\n      \"name\": \"Fm\"\n    },\n    {\n      \"name\": \"fmix\"\n    },\n    {\n      \"name\": \"formation\"\n    },\n    {\n      \"name\": \"Fpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Fpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Fpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Fpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"fpure\"\n    },\n    {\n      \"name\": \"FR\"\n    },\n    {\n      \"name\": \"FRpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"FRpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"FRpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FRpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"FRs\"\n    },\n    {\n      \"name\": \"FRt\"\n    },\n    {\n      \"name\": \"Fs\"\n    },\n    {\n      \"name\": \"fsat\"\n    },\n    {\n      \"name\": \"fstd\"\n    },\n    {\n      \"name\": \"Ft\"\n    },\n    {\n      \"name\": \"fusion\"\n    },\n    {\n      \"name\": \"gammamol\"\n    },\n    {\n      \"name\": \"gammarat\"\n    },\n    {\n      \"name\": \"GE\"\n    },\n    {\n      \"name\": \"GEpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GEpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"GEpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GEpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"GEs\"\n    },\n    {\n      \"name\": \"GEt\"\n    },\n    {\n      \"name\": \"Gm\"\n    },\n    {\n      \"name\": \"Gpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Gpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Gpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"GR\"\n    },\n    {\n      \"name\": \"GRpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"GRpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"GRpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GRpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"GRs\"\n    },\n    {\n      \"name\": \"GRt\"\n    },\n    {\n      \"name\": \"Gs\"\n    },\n    {\n      \"name\": \"Gt\",\n      \"detail\": \"⪢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ggg (mathabx -amssymb), double nested greater-than\"\n    },\n    {\n      \"name\": \"HE\"\n    },\n    {\n      \"name\": \"heatcapacitysymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Henrymol\"\n    },\n    {\n      \"name\": \"Henryrat\"\n    },\n    {\n      \"name\": \"HEpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HEpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"HEpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HEpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"HEs\"\n    },\n    {\n      \"name\": \"HEt\"\n    },\n    {\n      \"name\": \"Hm\"\n    },\n    {\n      \"name\": \"Hpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Hpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Hpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Hpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Hpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"HR\"\n    },\n    {\n      \"name\": \"HRpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"HRpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"HRpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HRpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"HRs\"\n    },\n    {\n      \"name\": \"HRt\"\n    },\n    {\n      \"name\": \"Hs\"\n    },\n    {\n      \"name\": \"Ht\"\n    },\n    {\n      \"name\": \"IG\"\n    },\n    {\n      \"name\": \"IGM\"\n    },\n    {\n      \"name\": \"IS\"\n    },\n    {\n      \"name\": \"Jacobian\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Jacobian{${1:func1}}{${2:func2}}{${3:var1}}{${4:var2}}\"\n      }\n    },\n    {\n      \"name\": \"kappaS\"\n    },\n    {\n      \"name\": \"kappaT\"\n    },\n    {\n      \"name\": \"Lm\"\n    },\n    {\n      \"name\": \"Lpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Lpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Lpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Lpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Ls\"\n    },\n    {\n      \"name\": \"Lt\",\n      \"detail\": \"⪡ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\lll (mathabx -amssymb), double nested less-than\"\n    },\n    {\n      \"name\": \"mixing\"\n    },\n    {\n      \"name\": \"Mm\"\n    },\n    {\n      \"name\": \"Mpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Mpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Mpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Ms\"\n    },\n    {\n      \"name\": \"Mt\"\n    },\n    {\n      \"name\": \"ncomponents\"\n    },\n    {\n      \"name\": \"Nt\"\n    },\n    {\n      \"name\": \"Partial*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Partial*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Partial\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Partial{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialBigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialBigg*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Partialbigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Partialbigg*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialBigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialBigg{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Partialbigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Partialbigg{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialClose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartialEmptyClose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartialMixSecond*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecond*{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialMixSecond\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecond{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialMixSecondBigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecondBigg*{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialMixSecondbigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecondbigg*{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialMixSecondBigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecondBigg{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialMixSecondbigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PartialMixSecondbigg{${1:function}}{${2:var1}}{${3:var2}}{${4:sub}}\"\n      }\n    },\n    {\n      \"name\": \"partialmolar\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"partialmolar{${1:symbol}}[${3:sup}]{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"partialmolar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"partialmolar{${1:symbol}}{${2:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialOpen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PartialSecond*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecond*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialSecond\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecond{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialSecondBigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecondBigg*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialSecondbigg*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecondbigg*{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialSecondBigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecondBigg{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"PartialSecondbigg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PartialSecondbigg{${1:function}}{${2:variable}}{${3:sub}}\"\n      }\n    },\n    {\n      \"name\": \"phimix\"\n    },\n    {\n      \"name\": \"phipure\"\n    },\n    {\n      \"name\": \"phisat\"\n    },\n    {\n      \"name\": \"prodall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prodall{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Psat\"\n    },\n    {\n      \"name\": \"Pstd\"\n    },\n    {\n      \"name\": \"Pvap\"\n    },\n    {\n      \"name\": \"Qm\"\n    },\n    {\n      \"name\": \"Qs\"\n    },\n    {\n      \"name\": \"Qt\"\n    },\n    {\n      \"name\": \"reaction\"\n    },\n    {\n      \"name\": \"residual\"\n    },\n    {\n      \"name\": \"sat\"\n    },\n    {\n      \"name\": \"SE\"\n    },\n    {\n      \"name\": \"SEpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SEpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SEpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SEpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SEs\"\n    },\n    {\n      \"name\": \"SEt\"\n    },\n    {\n      \"name\": \"Sm\"\n    },\n    {\n      \"name\": \"Spm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Spm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Spm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Spm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"SR\"\n    },\n    {\n      \"name\": \"SRpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SRpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SRpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SRpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"SRs\"\n    },\n    {\n      \"name\": \"SRt\"\n    },\n    {\n      \"name\": \"Ss\"\n    },\n    {\n      \"name\": \"St\"\n    },\n    {\n      \"name\": \"std\"\n    },\n    {\n      \"name\": \"sublimation\"\n    },\n    {\n      \"name\": \"sumall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumall{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"sumallbutlast\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sumallbutlast{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"UE\"\n    },\n    {\n      \"name\": \"UEpm\"\n    },\n    {\n      \"name\": \"UEs\"\n    },\n    {\n      \"name\": \"UEt\"\n    },\n    {\n      \"name\": \"Um\"\n    },\n    {\n      \"name\": \"Upm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Upm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Upm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Upm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"UR\"\n    },\n    {\n      \"name\": \"URpm\"\n    },\n    {\n      \"name\": \"URs\"\n    },\n    {\n      \"name\": \"URt\"\n    },\n    {\n      \"name\": \"Us\"\n    },\n    {\n      \"name\": \"Ut\"\n    },\n    {\n      \"name\": \"vaporization\"\n    },\n    {\n      \"name\": \"VE\"\n    },\n    {\n      \"name\": \"VEpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VEpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"VEpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VEpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"VEs\"\n    },\n    {\n      \"name\": \"VEt\"\n    },\n    {\n      \"name\": \"Vm\"\n    },\n    {\n      \"name\": \"Vpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"Vpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"VR\"\n    },\n    {\n      \"name\": \"VRpm\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VRpm[${2:sup}]{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"VRpm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VRpm{${1:sub}}\"\n      }\n    },\n    {\n      \"name\": \"VRs\"\n    },\n    {\n      \"name\": \"VRt\"\n    },\n    {\n      \"name\": \"Vs\"\n    },\n    {\n      \"name\": \"Vt\"\n    },\n    {\n      \"name\": \"Wm\"\n    },\n    {\n      \"name\": \"Ws\"\n    },\n    {\n      \"name\": \"Wt\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thermobar\"\n    },\n    {\n      \"name\": \"thermobraces\"\n    },\n    {\n      \"name\": \"thermobrackets\"\n    },\n    {\n      \"name\": \"thermoNOsubscripts\"\n    },\n    {\n      \"name\": \"thermoparentheses\"\n    },\n    {\n      \"name\": \"thermoplain\"\n    },\n    {\n      \"name\": \"thermosubscripts\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/thermodynamics#c\": [\n      \"bar\",\n      \"Bejan\",\n      \"braces\",\n      \"brackets\",\n      \"CBK\",\n      \"delta\",\n      \"EEAGHaN\",\n      \"EEFGHAn\",\n      \"EEFGHAn\",\n      \"EEFGHan\",\n      \"EEFGHaN\",\n      \"ElliottLira\",\n      \"EUAGHan\",\n      \"EUAGHaN\",\n      \"EUAGHAn\",\n      \"EUAGHAN\",\n      \"EUFGHAn\",\n      \"EUFGHAN\",\n      \"EUFGHan\",\n      \"EUFGHaN\",\n      \"EUHAGan\",\n      \"EUHAGaN\",\n      \"extensive-plain\",\n      \"extensive-superscript\",\n      \"intensive-lowercase\",\n      \"intensive-plain\",\n      \"Koretsky\",\n      \"moles-index\",\n      \"moles-range\",\n      \"MSBB\",\n      \"nosubscripts\",\n      \"parentheses\",\n      \"plain-derivatives\",\n      \"Prausnitz\",\n      \"Sandler\",\n      \"subscripts\",\n      \"SVNAS\",\n      \"TesterModell\",\n      \"Thompson\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thermodynamics#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thinsp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"stretchthinspace\"\n    },\n    {\n      \"name\": \"stretchnegthinspace\"\n    },\n    {\n      \"name\": \"stretchthinthinspace\"\n    },\n    {\n      \"name\": \"thinthinspace\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thinsp#c\": [\n      \"nothinspace\",\n      \"thinspace\",\n      \"nothinthinspace\",\n      \"thinthinspace\",\n      \"nonegthinspace\",\n      \"negthinspace\",\n      \"onethird\",\n      \"onehalf\",\n      \"twothirds\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thinsp#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thm-autoref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"thm-patch\"\n    },\n    {\n      \"name\": \"aliasctr\"\n    },\n    {\n      \"name\": \"parseargs\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Autoref\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Autoref{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thm-kv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"thm-patch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"declaretheoremstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaretheoremstyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"declaretheoremstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declaretheoremstyle[${2:options%keyvals}]{${1:style name}}\",\n        \"keys\": [\n          \"\\\\declaretheoremstyle\",\n          \"\\\\declaretheoremstyle,\\\\declaretheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaretheorem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declaretheorem{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"declaretheorem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"declaretheorem[${2:options%keyvals}]{${1:envname}}\",\n        \"keys\": [\n          \"\\\\declaretheoremstyle,\\\\declaretheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaretheorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"declaretheorem[${2:options%keyvals}]{${1:envname}}[${3:options}]\",\n        \"keys\": [\n          \"\\\\declaretheoremstyle,\\\\declaretheorem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"declaretheorem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"declaretheorem{${1:envname}}[${2:options}]\",\n        \"keys\": [\n          \"\\\\declaretheoremstyle,\\\\declaretheorem\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"thmcontinues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmcontinues{${1:key}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thm-kv#c\": [\n      \"lowercase\",\n      \"uppercase\",\n      \"anycase\"\n    ],\n    \"\\\\declaretheoremstyle\": [\n      \"spaceabove=\",\n      \"spacebelow=\",\n      \"headfont=${1:font commands}\",\n      \"notefont=${1:font commands}\",\n      \"bodyfont=${1:font commands}\",\n      \"headpunct=${1:symbol}\",\n      \"notebraces=${1:two chars}\",\n      \"break\",\n      \"postheadspace=\",\n      \"headformat=${1:code}\",\n      \"headstyle=${1:code}\",\n      \"headindent=\"\n    ],\n    \"\\\\declaretheoremstyle,\\\\declaretheorem\": [\n      \"parent=${1:counter}\",\n      \"numberwithin=${1:counter}\",\n      \"within=${1:counter}\",\n      \"sibling=${1:counter}\",\n      \"numberlike=${1:counter}\",\n      \"sharenumber=${1:counter}\",\n      \"title=${1:title}\",\n      \"name=${1:name}\",\n      \"heading=${1:heading}\",\n      \"numbered=${1|yes,no,unless unique|}\",\n      \"style=${1:style name}\",\n      \"preheadhook=${1:code}\",\n      \"postheadhook=${1:code}\",\n      \"prefoothook=${1:code}\",\n      \"postfoothook=${1:code}\",\n      \"refname=${1:name}\",\n      \"refname={${1:singular-name,plural-name}}\",\n      \"Refname=${1:name}\",\n      \"Refname={${1:singular-name,plural-name}}\",\n      \"shaded={${1:shade options}}\",\n      \"thmbox=${1|L,M,S|}\",\n      \"mdframed={${1:mdframed options}}\",\n      \"qed=${1:symbol}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thm-kv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thm-listof.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"thm-patch\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listoftheorems\"\n    },\n    {\n      \"name\": \"listoftheorems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftheorems[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\listoftheorems,\\\\setlisttheoremstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listtheoremname\"\n    },\n    {\n      \"name\": \"setlisttheoremstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlisttheoremstyle{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\listoftheorems,\\\\setlisttheoremstyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thmtformatoptarg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmtformatoptarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"showtheorems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showtheorems{${1:thm1,thm2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ignoretheorems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ignoretheorems{${1:thm1,thm2,...}}\"\n      }\n    },\n    {\n      \"name\": \"onlynamedtheorems\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"onlynamedtheorems{${1:thm1,thm2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\listoftheorems,\\\\setlisttheoremstyle\": [\n      \"title=${1:title}\",\n      \"ignore={${1:thm1,thm2,...}}\",\n      \"ignoreall\",\n      \"show={${1:thm1,thm2,...}}\",\n      \"showall\",\n      \"onlynamed={${1:thm1,thm2,...}}\",\n      \"swapnumber\",\n      \"numwidth=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thm-patch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"parseargs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtotheorempreheadhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempreheadhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempreheadhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempreheadhook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostheadhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempostheadhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostheadhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempostheadhook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremprefoothook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheoremprefoothook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheoremprefoothook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheoremprefoothook[${2:envname}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostfoothook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotheorempostfoothook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotheorempostfoothook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotheorempostfoothook[${2:envname}]{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thm-restate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"thmtools\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"restatable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:envname}}{${2:cmd name}}\",\n        \"keys\": [\n          \"\\\\begin{restatable}#c,\\\\begin{restatable*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restatable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:envname}}{${2:cmd name}}\"\n      }\n    },\n    {\n      \"name\": \"restatable*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:envname}}{${2:cmd name}}\",\n        \"keys\": [\n          \"\\\\begin{restatable}#c,\\\\begin{restatable*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"restatable*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:envname}}{${2:cmd name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{restatable}#c,\\\\begin{restatable*}#c\": [\n      \"${1:title}\",\n      \"name=${1:title}\",\n      \"label=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/thmbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thmboxoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thmboxoptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}\",\n        \"keys\": [\n          \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"newtheorem[${3:options%keyvals}]{${1:envname}}{${2:caption}}[${4:within}]\",\n        \"keys\": [\n          \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thmbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"thmbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftbar\"\n    },\n    {\n      \"name\": \"leftbar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"proof\"\n    },\n    {\n      \"name\": \"proof\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:postfix}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:label text}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/thmbox#c\": [\n      \"nothm\",\n      \"nocut\",\n      \"nounderline\"\n    ],\n    \"\\\\thmboxoptions#c,\\\\begin{thmbox}#c,\\\\begin{leftbar}#c,\\\\newtheorem#c\": [\n      \"style=${1|S,M,L|}\",\n      \"S\",\n      \"M\",\n      \"L\",\n      \"cut\",\n      \"underline\",\n      \"headstyle=${1:code}\",\n      \"titlestyle=${1:code}\",\n      \"bodystyle=${1:code}\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"hskip=\",\n      \"vskip=\",\n      \"thickness=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thmbox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thmtools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"thm-patch\"\n    },\n    {\n      \"name\": \"thm-kv\"\n    },\n    {\n      \"name\": \"thm-autoref\"\n    },\n    {\n      \"name\": \"thm-listof\"\n    },\n    {\n      \"name\": \"thm-restate\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thmtools#c\": [\n      \"debug\",\n      \"lowercase\",\n      \"uppercase\",\n      \"anycase\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thmtools#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thorshammer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"insdljs\"\n    },\n    {\n      \"name\": \"exerquiz\"\n    },\n    {\n      \"name\": \"eq-save\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"autoCopyOff\"\n    },\n    {\n      \"name\": \"autoCopyOn\"\n    },\n    {\n      \"name\": \"bClassData\"\n    },\n    {\n      \"name\": \"classMember*\",\n      \"arg\": {\n        \"format\": \"{}{}*{}\",\n        \"snippet\": \"classMember*{${1:first}}{${2:last}}*{${3:full-path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"classMember*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"classMember*{${1:first}}{${2:last}}{${3:folder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"classMember\",\n      \"arg\": {\n        \"format\": \"{}{}*{}\",\n        \"snippet\": \"classMember{${1:first}}{${2:last}}*{${3:full-path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"classMember\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"classMember{${1:first}}{${2:last}}{${3:folder%definition}}\"\n      }\n    },\n    {\n      \"name\": \"classPath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classPath*{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"classPath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"classPath{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"completeMsgFld\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"completeMsgFld[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"completeMsgFld\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"completeMsgFld{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCoverPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCoverPage{${1:page range}}\"\n      }\n    },\n    {\n      \"name\": \"declareQuizBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareQuizBody{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"distrToInstrOff\"\n    },\n    {\n      \"name\": \"distrToInstrOn\"\n    },\n    {\n      \"name\": \"distrToStudentsOff\"\n    },\n    {\n      \"name\": \"distrToStudentsOn\"\n    },\n    {\n      \"name\": \"enumQuizzes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumQuizzes{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"EsH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"essayitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"essayitem{${1:nPts}}\"\n      }\n    },\n    {\n      \"name\": \"essayQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"essayQ{${1:nPts}}\"\n      }\n    },\n    {\n      \"name\": \"EsW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FirstName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FirstName[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"FirstName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FirstName{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"flattenOff\"\n    },\n    {\n      \"name\": \"flattenOn\"\n    },\n    {\n      \"name\": \"freezeOrSave\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"freezeOrSave[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"freezeOrSave\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"freezeOrSave{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"FullName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"FullName[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"FullName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"FullName{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"InputClassData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputClassData{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"InputFormattedClass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"InputFormattedClass[${2:cmd}]{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"InputFormattedClass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputFormattedClass{${1:base name}}\"\n      }\n    },\n    {\n      \"name\": \"InputQuizBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InputQuizBody{${1:qb name}}\"\n      }\n    },\n    {\n      \"name\": \"instrAutoCloseOff\"\n    },\n    {\n      \"name\": \"instrAutoCloseOn\"\n    },\n    {\n      \"name\": \"instrAutoSaveOff\"\n    },\n    {\n      \"name\": \"instrAutoSaveOn\"\n    },\n    {\n      \"name\": \"instrPath*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instrPath*{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"instrPath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instrPath{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"LastName\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"LastName[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"LastName\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LastName{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"LngPtsFld\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LngPtsFld[${2:eforms params}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LngPtsFld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LngPtsFld{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"markQz\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"markQz[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"markQz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"markQz{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"oct\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QzVer\"\n    },\n    {\n      \"name\": \"rhPgNumsOnly\"\n    },\n    {\n      \"name\": \"sadQuizzes\"\n    },\n    {\n      \"name\": \"setInitMag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setInitMag{${1:choice%keyvals}}\",\n        \"keys\": [\n          \"\\\\setInitMag\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ShrtPtsFld\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ShrtPtsFld[${2:eforms params}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ShrtPtsFld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShrtPtsFld{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"stuAutoCloseOff\"\n    },\n    {\n      \"name\": \"stuAutoCloseOn\"\n    },\n    {\n      \"name\": \"stuAutoSaveOff\"\n    },\n    {\n      \"name\": \"stuAutoSaveOn\"\n    },\n    {\n      \"name\": \"studentGrade\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"studentGrade[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"studentGrade\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"studentGrade{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"studentReport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"studentReport[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"studentReport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"studentReport{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"stuSaveBtn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stuSaveBtn[${3:eforms params}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"stuSaveBtn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stuSaveBtn{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"thfullnameFmt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thfullnameFmt{${1:how-to-format}}\"\n      }\n    },\n    {\n      \"name\": \"thQuizHeader\"\n    },\n    {\n      \"name\": \"thQuizHeader*\"\n    },\n    {\n      \"name\": \"thQuizHeaderLayout\"\n    },\n    {\n      \"name\": \"thQuizName\"\n    },\n    {\n      \"name\": \"thQuizTrailer\"\n    },\n    {\n      \"name\": \"thQzHeaderCQ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thQzHeaderCQ{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thQzHeaderCS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thQzHeaderCS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thQzHeaderL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thQzHeaderL{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thQzHeaderR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thQzHeaderR{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thqzname\"\n    },\n    {\n      \"name\": \"thQzName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thQzName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TotalsFld\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TotalsFld[${2:eforms params}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"TotalsFld\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TotalsFld{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"useEndQuizThor\"\n    },\n    {\n      \"name\": \"useNameToCustomize\"\n    },\n    {\n      \"name\": \"useNameToCustomize\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"docassembly\"\n    },\n    {\n      \"name\": \"makeClassFiles\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/thorshammer#c\": [\n      \"nocfg\",\n      \"testmode\",\n      \"!testmode\",\n      \"ordinary\",\n      \"useclass\",\n      \"usebatch\",\n      \"batchdistr\"\n    ],\n    \"\\\\setInitMag\": [\n      \"fitpage\",\n      \"actualsize\",\n      \"fitwidth\",\n      \"fitheight\",\n      \"fitvisible\",\n      \"inheritzoom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thorshammer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/threadcol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setthreadname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setthreadname{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/threeparttable.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnote{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"TPTminimum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPToverlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTrlap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTtagStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTnoteLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTnoteSettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTdoTablenotes\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"threeparttable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{threeparttable},\\\\begin{measuredfigure}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measuredfigure\"\n    },\n    {\n      \"name\": \"measuredfigure\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pos%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{threeparttable},\\\\begin{measuredfigure}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tablenotes\"\n    },\n    {\n      \"name\": \"tablenotes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tablenotes}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/threeparttable#c\": [\n      \"para\",\n      \"flushleft\",\n      \"online\",\n      \"normal\"\n    ],\n    \"\\\\begin{threeparttable},\\\\begin{measuredfigure}\": [\n      \"t\",\n      \"b\",\n      \"c\"\n    ],\n    \"\\\\begin{tablenotes}\": [\n      \"para\",\n      \"flushleft\",\n      \"online\",\n      \"normal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/threeparttable#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/threeparttablex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"threeparttable\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"insertTableNotes\"\n    },\n    {\n      \"name\": \"tnotex\",\n      \"if\": \"referable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnotex{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tnotex*\",\n      \"if\": \"referable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tnotex*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"setTableNoteFont\",\n      \"if\": \"referable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setTableNoteFont{${1:font cmds}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"if\": \"referable\"\n    },\n    {\n      \"name\": \"source\",\n      \"if\": \"referable\"\n    },\n    {\n      \"name\": \"TPTLnotename\",\n      \"if\": \"referable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTLsourcename\",\n      \"if\": \"referable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTLnotesnamefontcommand\",\n      \"if\": \"referable\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ThreePartTable\"\n    },\n    {\n      \"name\": \"TableNotes\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/threeparttablex#c\": [\n      \"referable\",\n      \"para\",\n      \"flushleft\",\n      \"online\",\n      \"normal\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/threeparttablex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thsmc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thsmc#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thsmc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thumb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"minitoc\",\n      \"if\": \"minitoc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Overviewpage\"\n    },\n    {\n      \"name\": \"thumbwidth\"\n    },\n    {\n      \"name\": \"thumbheight\"\n    },\n    {\n      \"name\": \"thumbskip\"\n    },\n    {\n      \"name\": \"overviewskip\"\n    },\n    {\n      \"name\": \"thumbchap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbHskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethumbheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethumbwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelthumbskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"therthumbskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theoverviewskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPreface\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prefacetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Prefacefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preface\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"preface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"preface[${1:text}]\"\n      }\n    },\n    {\n      \"name\": \"thumbfilledbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rthumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lthumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovrthumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovrthumb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbfilledoval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumboval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbheaderfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewdatefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbtitlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbauthorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbdatefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifAppendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Appendixtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Appendixfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theappendix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbsecnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"secname{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"thumboverview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethumbhskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theOverviewnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethumbline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifOverview\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Overviewfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OverviewPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thethumbovrwidth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thumb#c\": [\n      \"minitoc\",\n      \"box\",\n      \"filledbox\",\n      \"oval\",\n      \"filledoval\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thumb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thumbs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"pageslts\"\n    },\n    {\n      \"name\": \"pagecolor\"\n    },\n    {\n      \"name\": \"rerunfilecheck\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thumbsinfo\",\n      \"if\": \"verbose\"\n    },\n    {\n      \"name\": \"thumbsinfo\",\n      \"if\": \"verbose=true\"\n    },\n    {\n      \"name\": \"addthumb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"addthumb{${1:title%plain}}{${2:display text}}{${3:color}}{${4:background color}}\"\n      }\n    },\n    {\n      \"name\": \"addtitlethumb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"addtitlethumb{${1:title%plain}}{${2:display text}}{${3:color}}{${4:background color}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"stopthumb\"\n    },\n    {\n      \"name\": \"continuethumb\"\n    },\n    {\n      \"name\": \"thumbsoverview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbsoverview{${1:mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"thumbsoverviewback\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbsoverviewback{${1:mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"thumbsoverviewverso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbsoverviewverso{${1:mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"thumbsoverviewdouble\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbsoverviewdouble{${1:mark%text}}\"\n      }\n    },\n    {\n      \"name\": \"thumbnewcolumn\"\n    },\n    {\n      \"name\": \"addthumbsoverviewtocontents\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addthumbsoverviewtocontents{${1:level}}{${2:entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"thumbsnophantom\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thumbs#c\": [\n      \"linefill=${1|line,dots|}\",\n      \"minheight=\",\n      \"height=${1|auto|}\",\n      \"width=${1|auto|}\",\n      \"distance=\",\n      \"topthumbmargin=\",\n      \"bottomthumbmargin=\",\n      \"eventxtindent=\",\n      \"oddtxtexdent=\",\n      \"evenmarkindent=\",\n      \"oddmarkexdent=\",\n      \"evenprintvoffset=\",\n      \"thumblink=${1|none,title,page,titleandpage,line,rule|}\",\n      \"nophantomsection\",\n      \"ignorehoffset\",\n      \"ignorevoffset\",\n      \"verbose\",\n      \"draft\",\n      \"hidethumbs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thumbs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/thumby.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"perltex\"\n    },\n    {\n      \"name\": \"bophook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thumbyNumberFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyNumberFormat{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"thumbySides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbySides{${1:one or two}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyBackground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyBackground{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyForeground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyForeground{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyPageHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyPageHeight{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyThumbWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyThumbWidth{${1:points}}\"\n      }\n    },\n    {\n      \"name\": \"thumbySetup\"\n    },\n    {\n      \"name\": \"thumbyTotalChapters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyTotalChapters{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thumbychapnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thumbyprintthumb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thumbyprintthumb{${1:number}}{${2:left or right}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyprintthumbleft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyprintthumbleft{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"thumbyprintthumbright\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thumbyprintthumbright{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/thumb#c\": [\n      \"minitoc\",\n      \"box\",\n      \"filledbox\",\n      \"oval\",\n      \"filledoval\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/thumb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ticket.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ticketdefault\"\n    },\n    {\n      \"name\": \"ticket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ticket{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"ticketreset\"\n    },\n    {\n      \"name\": \"backside\"\n    },\n    {\n      \"name\": \"ticketskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ticketskip{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ticketNumbers\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ticketNumbers{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ticketWidth\"\n    },\n    {\n      \"name\": \"ticketHeight\"\n    },\n    {\n      \"name\": \"ticketSize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ticketSize{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ticketDistance\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ticketDistance{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"ticketToUse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ticket#c\": [\n      \"${1:.tdf file}\",\n      \"boxed\",\n      \"crossmark\",\n      \"circlemark\",\n      \"emptycrossmark\",\n      \"cutmark\",\n      \"rowmode\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ticket#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ticollege.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"multirow\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TiC\"\n    },\n    {\n      \"name\": \"TiC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TiC[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\TiC\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Aff\"\n    },\n    {\n      \"name\": \"TiRacine\"\n    },\n    {\n      \"name\": \"ContrastDown\"\n    },\n    {\n      \"name\": \"ContrastUp\"\n    },\n    {\n      \"name\": \"Div\"\n    },\n    {\n      \"name\": \"TiCMenu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TiCMenu{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"TiCMenu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TiCMenu[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\TiCMenu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TiCScreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TiCScreen{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"TiCScreen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TiCScreen[${2:options%keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\TiCScreen\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TiCCalc\"\n    },\n    {\n      \"name\": \"TiCCalc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TiCCalc[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\TiCCalc\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TiCCalc*\"\n    },\n    {\n      \"name\": \"TiCCalc*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TiCCalc*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\TiCCalc*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\TiC\": [\n      \"style=${1|general,number,arrows|}\",\n      \"rounded=${1|none,left,right|}\",\n      \"principal=${1:text}\",\n      \"position=${1:number}\",\n      \"fontsize=\",\n      \"raise=\",\n      \"second=${1:text}\",\n      \"colour text=\",\n      \"color text=\",\n      \"colour second=\",\n      \"color second=\",\n      \"colour key=\",\n      \"color key=\",\n      \"circle\",\n      \"radius=\",\n      \"colour circle=\",\n      \"color circle=\",\n      \"thickness=\",\n      \"circleup\",\n      \"circledown\",\n      \"circleleft\",\n      \"circleright\",\n      \"name=\"\n    ],\n    \"\\\\TiCMenu\": [\n      \"size=\",\n      \"select\",\n      \"colour box=\",\n      \"color box=\",\n      \"text=\"\n    ],\n    \"\\\\TiCScreen\": [\n      \"colour screen=\",\n      \"color screen=\",\n      \"screenname=\",\n      \"width=${1:number}\",\n      \"height=${1:number}\"\n    ],\n    \"\\\\TiCCalc\": [\n      \"title=\",\n      \"colour calc=\",\n      \"color calc=\"\n    ],\n    \"\\\\TiCCalc*\": [\n      \"calcscale=${1:number}\",\n      \"calcrotate=${1:degrees}\",\n      \"calcraise=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-3dplot.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrary3d\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tdplotsetmaincoords\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tdplotsetmaincoords{${1:θ}}{${2:φ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsetrotatedcoords\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotsetrotatedcoords{${1:α}}{${2:β}}{${3:γ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsetrotatedcoordsorigin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tdplotsetrotatedcoordsorigin{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotresetrotatedcoordsorigin\"\n    },\n    {\n      \"name\": \"tdplotsetthetaplanecoords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tdplotsetthetaplanecoords{${1:φ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsetrotatedthetaplanecoords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tdplotsetrotatedthetaplanecoords{${1:φ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsetcoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tdplotsetcoord{${1:point}}{${2:r}}{${3:θ}}{${4:φ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplottransformmainrot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplottransformmainrot{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotresx\"\n    },\n    {\n      \"name\": \"tdplotresy\"\n    },\n    {\n      \"name\": \"tdplotresz\"\n    },\n    {\n      \"name\": \"tdplotresphi\"\n    },\n    {\n      \"name\": \"tdplotrestheta\"\n    },\n    {\n      \"name\": \"tdplottransformrotmain\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplottransformrotmain{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"tdplottransformmainscreen\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplottransformmainscreen{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotgetpolarcoords\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotgetpolarcoords{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotcrossprod\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tdplotcrossprod(${1:x1},${2:y1},${3:z1})(${4:x2},${5:y2},${6:z2})\"\n      }\n    },\n    {\n      \"name\": \"tdplotdefinepoints\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"tdplotdefinepoints(${1:vx},${2:vy},${3:vz})(${4:x1},${5:y1},${6:z1})(${7:x2},${8:y2},${9:z2})\"\n      }\n    },\n    {\n      \"name\": \"tdplotdrawarc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tdplotdrawarc{${1:center}}{${2:r}}{${3:angle start}}{${4:angle end}}{${5:label options}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotdrawarc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"tdplotdrawarc[${7:options%keyvals}]{${1:center}}{${2:r}}{${3:angle start}}{${4:angle end}}{${5:label options}}{${6:label}}\",\n        \"keys\": [\n          \"\\\\tdplotdrawarc#c,\\\\tdplotdrawpolytopearc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdplotdrawpolytopearc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotdrawpolytopearc{${1:r}}{${2:label options}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotdrawpolytopearc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"tdplotdrawpolytopearc[${4:options%keyvals}]{${1:r}}{${2:label options}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\tdplotdrawarc#c,\\\\tdplotdrawpolytopearc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdplotvertexx\"\n    },\n    {\n      \"name\": \"tdplotvertexy\"\n    },\n    {\n      \"name\": \"tdplotvertexz\"\n    },\n    {\n      \"name\": \"tdplotax\"\n    },\n    {\n      \"name\": \"tdplotay\"\n    },\n    {\n      \"name\": \"tdplotaz\"\n    },\n    {\n      \"name\": \"tdplotbx\"\n    },\n    {\n      \"name\": \"tdplotby\"\n    },\n    {\n      \"name\": \"tdplotbz\"\n    },\n    {\n      \"name\": \"tdplotsphericalsurfaceplot\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"tdplotsphericalsurfaceplot{${1:θ-steps}}{${2:φ-steps}}{${3:function}}{${4:line color}}{${5:fill color}}{${6:x axis}}{${7:y axis}}{${8:z axis}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsphericalsurfaceplot\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"tdplotsphericalsurfaceplot[${9:fill style%keyvals}]{${1:θ-steps}}{${2:φ-steps}}{${3:function}}{${4:line color}}{${5:fill color}}{${6:x axis}}{${7:y axis}}{${8:z axis}}\",\n        \"keys\": [\n          \"\\\\tdplotsphericalsurfaceplot#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdplottheta\"\n    },\n    {\n      \"name\": \"tdplotphi\"\n    },\n    {\n      \"name\": \"tdplotr\"\n    },\n    {\n      \"name\": \"tdplotsetpolarplotrange\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tdplotsetpolarplotrange{${1:θ1}}{${2:θ2}}{${3:φ1}}{${4:φ2}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotresetpolarplotrange\"\n    },\n    {\n      \"name\": \"tdplotshowargcolorguide\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tdplotshowargcolorguide{${1:x pos}}{${2:y pos}}{${3:x size}}{${4:y size}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsinandcos\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotsinandcos{${1:sin macro%cmd}}{${2:cos macro%cmd}}{${3:θ}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotmult\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotmult{${1:macro%cmd}}{${2:multiplicand}}{${3:multiplicator}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotdiv\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tdplotdiv{${1:macro%cmd}}{${2:dividend}}{${3:divisor}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotlowerphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotupperphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotlowertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotuppertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotcalctransformmainrot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotcalctransformrotmain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotcalctransformmainscreen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotcheckdiff\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tdplotcheckdiff{${1:val1}}{${2:val2}}{${3:tolerance}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotdosurfaceplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"tdplotdosurfaceplot{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotsimplesetcoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tdplotsimplesetcoord{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tdplotmaintheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotmainphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotstartphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotsuperfudge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdploty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplothuestep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotxsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotysize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotyscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotstarty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotstopy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotstartx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdplotstopx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c,\\\\tdplotdrawarc#c,\\\\tdplotdrawpolytopearc#c\": [\n      \"tdplot_main_coords\",\n      \"tdplot_rotated_coords\",\n      \"tdplot_screen_coords\"\n    ],\n    \"\\\\tdplotsphericalsurfaceplot#c\": [\n      \"parametricfill\"\n    ],\n    \"\\\\tdplotdrawarc#c,\\\\tdplotdrawpolytopearc#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name path=${1:path}\",\n      \"name path global=${1:path}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"on grid\",\n      \"node distance=\",\n      \"base left=\",\n      \"base right=\",\n      \"mid left=\",\n      \"mid right=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"remember picture\",\n      \"overlay\",\n      \"every new ->\",\n      \"every new --\",\n      \"every new <->\",\n      \"every new <-\",\n      \"every new -!-\",\n      \"new set=${1:set name}\",\n      \"set=${1:set name}\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\",\n      \"decoration={${1:options}}\",\n      \"decorate\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"use as bounding box\",\n      \"clip\",\n      \"preaction={${1:options}}\",\n      \"postaction={${1:options}}\",\n      \"late options={${1:options}}\",\n      \"pic actions\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-among-us-fancyhdr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz-among-us\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-among-us-watermark-eso-pic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz-among-us\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifFG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FGtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FGfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myboxAmongUs\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikz-among-us-watermark-eso-pic#c\": [\n      \"cor=\",\n      \"type=${1|0,1|}\",\n      \"FG\",\n      \"BG\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikz-among-us-watermark-eso-pic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikz-among-us.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"xifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"amongUsOriginal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsOriginal{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsOriginal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsOriginal[${3:opt}]{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesI{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesI[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesAngryI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesAngryI{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesAngryI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesAngryI[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesVeryangryI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesVeryangryI{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesVeryangryI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesVeryangryI[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesHappyI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesHappyI{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesHappyI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesHappyI[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesScaredI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesScaredI{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesScaredI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesScaredI[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBackpackI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsBackpackI{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBackpackI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsBackpackI[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsBodyI{${1:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsBodyI[${2:opt}]{${1:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsI{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsI[${3:opt}]{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorSmile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impostorSmile{${1:SmileColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorSmile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"impostorSmile[${2:opt}]{${1:SmileColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeethUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impostorTeethUp{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeethUp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"impostorTeethUp[${2:opt}]{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeethLw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impostorTeethLw{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeethLw\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"impostorTeethLw[${2:opt}]{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeeth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"impostorTeeth{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorTeeth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"impostorTeeth[${2:opt}]{${1:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorI\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"impostorI{${1:BodyColor}}{${2:EyeColor}}{${3:SmileColor}}{${4:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorI\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"impostorI[${5:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:SmileColor}}{${4:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostBodyI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsGhostBodyI{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostBodyI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsGhostBodyI[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsGhostI{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostI\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsGhostI[${3:opt}]{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussCapInnerDetail\"\n    },\n    {\n      \"name\": \"amoongussCapWhite\"\n    },\n    {\n      \"name\": \"amoongussCapI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussCapI{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussCapI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussCapI[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussBodyI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussBodyI{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussBodyI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussBodyI[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussNoseI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussNoseI{${1:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussNoseI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussNoseI[${2:opt}]{${1:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussLeftHandI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussLeftHandI{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussLeftHandI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussLeftHandI[${2:opt}]{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussRightHandI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussRightHandI{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussRightHandI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussRightHandI[${2:opt}]{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussI\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"amoongussI{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussI\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"amoongussI[${6:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostBodyI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussGhostBodyI{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostBodyI\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussGhostBodyI[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostI\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"amoongussGhostI{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostI\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"amoongussGhostI[${6:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsA{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsA\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsA[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsB{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsB\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsB[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsC{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsC[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsD{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsD[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsE{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsE[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsF{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsF\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsF[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsHandsG{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsHandsG\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsHandsG[${2:opt}]{${1:HandColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesAngryII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesAngryII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesAngryII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesAngryII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesVeryangryII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesVeryangryII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesVeryangryII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesVeryangryII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesHappyII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesHappyII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesHappyII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesHappyII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesScaredII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesScaredII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesScaredII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesScaredII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBackpackII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsBackpackII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBackpackII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsBackpackII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsBodyII{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsBodyII[${2:opt}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsII\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsII{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsII\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsII[${3:opt}]{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostBodyII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsGhostBodyII{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostBodyII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsGhostBodyII[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostII\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsGhostII{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsGhostII\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsGhostII[${3:opt}]{${1:BodyColor}}{${2:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorII\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"impostorII{${1:BodyColor}}{${2:EyeColor}}{${3:SmileColor}}{${4:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"impostorII\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"impostorII[${5:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:SmileColor}}{${4:TeethColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussCapII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussCapII{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussCapII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussCapII[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussBodyII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussBodyII{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussBodyII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussBodyII[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussNoseII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussNoseII{${1:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussNoseII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussNoseII[${2:opt}]{${1:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussLeftHandII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussLeftHandII{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussLeftHandII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussLeftHandII[${2:opt}]{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussRightHandII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussRightHandII{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussRightHandII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussRightHandII[${2:opt}]{${1:PokeballColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussII\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"amoongussII{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussII\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"amoongussII[${6:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostBodyII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amoongussGhostBodyII{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostBodyII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amoongussGhostBodyII[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostII\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"amoongussGhostII{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amoongussGhostII\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"amoongussGhostII[${6:opt}]{${1:BodyColor}}{${2:EyeColor}}{${3:PokeballColor}}{${4:PokeballColor}}{${5:NoseColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesIII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsEyesIII{${1:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsEyesIII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsEyesIII[${2:opt}]{${1:EyeColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyIII\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amongUsBodyIII{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsBodyIII\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"amongUsBodyIII[${2:opt}]{${1:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsIII\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"amongUsIII{${1:EyeColor}}{${2:BodyColor}}\"\n      }\n    },\n    {\n      \"name\": \"amongUsIII\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"amongUsIII[${3:opt}]{${1:EyeColor}}{${2:BodyColor}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-bagua.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"bitset\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"taiji\"\n    },\n    {\n      \"name\": \"taiji\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"taiji[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"taiji*\"\n    },\n    {\n      \"name\": \"taiji*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"taiji*[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xtaiji\"\n    },\n    {\n      \"name\": \"xtaiji\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xtaiji[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"xtaiji*\"\n    },\n    {\n      \"name\": \"xtaiji*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xtaiji*[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"drawliangyi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawliangyi{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"drawliangyi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawliangyi[${1:yshift}]{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"liangyi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"liangyi{0 or 1}\"\n      }\n    },\n    {\n      \"name\": \"liangyi\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"liangyi{0 or 1}[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sixiang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sixiang{${1:binary}}\"\n      }\n    },\n    {\n      \"name\": \"sixiang\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sixiang{${1:binary}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sixiang*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sixiang*{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"sixiang*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"sixiang*{${1:decimal}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bagua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bagua{${1:binary}}\"\n      }\n    },\n    {\n      \"name\": \"bagua\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bagua{${1:binary}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bagua*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bagua*{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"bagua*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"bagua*{${1:decimal}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Bagua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bagua{${1:binary}}\"\n      }\n    },\n    {\n      \"name\": \"Bagua\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Bagua{${1:binary}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Bagua\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Bagua[${2:8}]{${1:octal}}\"\n      }\n    },\n    {\n      \"name\": \"Bagua\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"Bagua[${2:8}]{${1:octal}}[${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Bagua*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Bagua*{${1:decimal}}\"\n      }\n    },\n    {\n      \"name\": \"Bagua*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"Bagua*{${1:decimal}}[${2:scale}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-cd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-dependency.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"depkeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"depkeys{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"depedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"depedge{${1:from-word}}{${2:to-word}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"depedge\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"depedge[${4:options%keyvals}]{${1:from-word}}{${2:to-word}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"deproot\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deproot{${1:root-offset}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"deproot\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"deproot[${3:options%keyvals}]{${1:root-offset}}{${2:label}}\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wordgroup\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"wordgroup{${1:row-offset}}{${2:word-offset-beg}}{${3:word-offset-end}}{${4:gid}}\"\n      }\n    },\n    {\n      \"name\": \"wordgroup\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"wordgroup[${5:options%keyvals}]{${1:row-offset}}{${2:word-offset-beg}}{${3:word-offset-end}}{${4:gid}}\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"groupedge\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"groupedge{${1:from-gid}}{${2:to-gid}}{${3:label}}{${4:height}}\"\n      }\n    },\n    {\n      \"name\": \"groupedge\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"groupedge[${5:options%keyvals}]{${1:from-gid}}{${2:to-gid}}{${3:label}}{${4:height}}\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"depstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"depstyle{${1:style name%specialDef}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"matrixref\"\n    },\n    {\n      \"name\": \"wordref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wordref{${1:row-offset}}{${2:word-offset}}\"\n      }\n    },\n    {\n      \"name\": \"rootref\"\n    },\n    {\n      \"name\": \"storelabelnode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storelabelnode{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"storefirstcorner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storefirstcorner{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"storesecondcorner\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storesecondcorner{${1:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"settgtlayer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yca\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ycb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"dependency\"\n    },\n    {\n      \"name\": \"dependency\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c\",\n          \"\\\\begin{dependency}#c\",\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"deptext\"\n    },\n    {\n      \"name\": \"deptext\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c\",\n          \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{dependency}#c,\\\\begin{deptext}#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name path=${1:path}\",\n      \"name path global=${1:path}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"on grid\",\n      \"node distance=\",\n      \"base left=\",\n      \"base right=\",\n      \"mid left=\",\n      \"mid right=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"remember picture\",\n      \"overlay\",\n      \"every new ->\",\n      \"every new --\",\n      \"every new <->\",\n      \"every new <-\",\n      \"every new -!-\",\n      \"new set=${1:set name}\",\n      \"set=${1:set name}\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\",\n      \"decoration={${1:options}}\",\n      \"decorate\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"column sep=\",\n      \"row sep=\",\n      \"every cell={${1:row}}{${2:column}}\",\n      \"cells={${1:options}}\",\n      \"nodes={${1:options}}\",\n      \"column ${1:n}/.style={${2:options}}\",\n      \"every odd column/.style={${1:options}}\",\n      \"every even column/.style={${1:options}}\",\n      \"row ${1:m}/.style={${2:options}}\",\n      \"every odd row/.style={${1:options}}\",\n      \"every even row/.style={${1:options}}\",\n      \"row ${1:m} column ${2:n}/.style={${3:options}}\",\n      \"execute at begin cell=${1:code}\",\n      \"execute at end cell=${1:code}\",\n      \"execute at empty cell=${1:code}\",\n      \"matrix anchor=${1:anchor}\",\n      \"ampersand replacement=${1:macro}\"\n    ],\n    \"\\\\begin{dependency}#c\": [\n      \"baseline\",\n      \"baseline=${1:<dimen> or <coord> or default}\",\n      \"execute at begin picture=${1:code}\",\n      \"execute at end picture=${1:code}\",\n      \"every scope/.style={${1:options}}\",\n      \"every path/.style={${1:options}}\",\n      \"every circle/.style={${1:options}}\",\n      \"every to/.style={${1:options}}\",\n      \"every node/.style={${1:options}}\",\n      \"every lower node part/.style={${1:options}}\",\n      \"every label/.style={${1:options}}\",\n      \"every pin/.style={${1:options}}\",\n      \"every pin edge/.style={${1:options}}\",\n      \"every label quotes/.style={${1:options}}\",\n      \"every pin quotes/.style={${1:options}}\",\n      \"every edge/.style={${1:options}}\",\n      \"every edge quotes/.style={${1:options}}\",\n      \"every pic/.style={${1:options}}\",\n      \"every pic quotes/.style={${1:options}}\",\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"every matrix/.style={${1:options}}\",\n      \"every outer matrix/.style={${1:options}}\",\n      \"every child/.style={${1:options}}\",\n      \"every child node/.style={${1:options}}\",\n      \"every plot/.style={${1:options}}\",\n      \"every mark/.style={${1:options}}\",\n      \"every loop/.style={${1:options}}\",\n      \"execute at begin to=${1:code}\",\n      \"execute at end to=${1:code}\",\n      \"execute at begin node=${1:code}\",\n      \"execute at end node=${1:code}\",\n      \"trim left\",\n      \"trim left=${1:<dimen> or <coord> or default}\",\n      \"trim right\",\n      \"trim right=${1:<dimen> or <coord> or default}\",\n      \"tri lowlevel\",\n      \"name prefix=${1:text}\",\n      \"name suffix=${1:text}\",\n      \"badness warnings for centered text\",\n      \"node halign header=${1:macro}\",\n      \"quotes mean label\",\n      \"quotes mean pin\",\n      \"level/.style={${1:options}}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"level distance=\",\n      \"sibling distance=\",\n      \"edge from parent/.style={${1:options}}\",\n      \"variable=${1:macro}\",\n      \"samples=${1:number}\",\n      \"domain=${1:start}:${2:end}\",\n      \"samples at=${1:samples list}\",\n      \"parametric\",\n      \"range=${1:start}:${2:end}\",\n      \"yrange=${1:start}:${2:end}\",\n      \"xrange=${1:start}:${2:end}\",\n      \"id=${1:id}\",\n      \"prefix\",\n      \"raw gnuplot\",\n      \"mark=${1:mark}\",\n      \"mark repeat=${1:number}\",\n      \"mark phase=${1:number}\",\n      \"mark indices=${1:list}\",\n      \"mark size=\",\n      \"mark options={${1:options}}\",\n      \"no marks\",\n      \"no markers\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:value}\",\n      \"smooth cycle\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"ycomb\",\n      \"xcomb\",\n      \"polar comb\",\n      \"ybar\",\n      \"xbar\",\n      \"ybar interval\",\n      \"xbar interval\",\n      \"only marks\",\n      \"blend mode=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"blend group=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar interval shift=${1:factor}\",\n      \"bar interval width=${1:scale}\",\n      \"matrix/inner style order={${1:list}}\",\n      \"pic type=${1:type}\",\n      \"pics/code=${1:code}\",\n      \"pics/foreground code=${1:code}\",\n      \"pics/background code=${1:code}\",\n      \"pic text=${1:text}\",\n      \"pic text options={${1:options}}\"\n    ],\n    \"\\\\begin{dependency}#c,\\\\begin{deptext}#c,\\\\depkeys#c,\\\\depedge#c,\\\\deproot#c,\\\\wordgroup#c,\\\\groupedge#c\": [\n      \"edge unit distance=\",\n      \"edge height=\",\n      \"edge above\",\n      \"edge below\",\n      \"edge slant=\",\n      \"edge horizontal padding=\",\n      \"edge vertical padding=\",\n      \"arc edge\",\n      \"segmented edge\",\n      \"arc angle=${1:decimal}\",\n      \"text only label\",\n      \"edge start x offset=\",\n      \"edge end x offset=\",\n      \"theme=${1|default,simple,night,brazil,grassy,iron,copper|}\",\n      \"edge theme=${1|default,simple,night,brazil,grassy,iron,copper|}\",\n      \"label theme=${1|default,simple,night,brazil,grassy,iron,copper|}\",\n      \"text theme=${1|default,simple,night,brazil,grassy,iron,copper|}\",\n      \"hide label\",\n      \"show label\",\n      \"edge style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"group style={${1:TikZ keys}}\",\n      \"nodes={${1:TikZ keys}}\",\n      \"%depstyle\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-dimline.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dimline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"dimline[${4:options%keyvals}]{${1:start}}{${2:end}}{${3:label}}\",\n        \"keys\": [\n          \"\\\\dimline\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\dimline\": [\n      \"color=\",\n      \"line style=\",\n      \"label style=\",\n      \"extension start length=\",\n      \"extension end length=\",\n      \"extension start angle=${1:degrees}\",\n      \"extension end angle=${1:degrees}\",\n      \"extension start style=\",\n      \"extension end style=\",\n      \"extension start path=\",\n      \"extension end path=\",\n      \"arrows=${1|dimline-dimline,dimline reverse-dimline reverse|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-feynhand.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikzlibrarygraphs\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibraryexternal\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzfeynhandset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzfeynhandset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\vertex,\\\\tikzfeynhandset\",\n          \"\\\\propagator,\\\\propag,\\\\tikzfeynhandset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vertex\"\n    },\n    {\n      \"name\": \"vertex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vertex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\vertex,\\\\tikzfeynhandset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"propagator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"propagator\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"propagator[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\propagator,\\\\propag,\\\\tikzfeynhandset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"propag\"\n    },\n    {\n      \"name\": \"propag\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"propag[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\propagator,\\\\propag,\\\\tikzfeynhandset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iftikzfeynhandallowemptynode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzfeynhandallowemptynodetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzfeynhandallowemptynodefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftikzfeynhandvertex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzfeynhandvertextrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzfeynhandvertexfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhanddotsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhandblobsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhandlinesize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhandarrowsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhandtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feynhandtopsepcolor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"feynhand\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\vertex,\\\\tikzfeynhandset\": [\n      \"particle\",\n      \"dot\",\n      \"ringdot\",\n      \"squaredot\",\n      \"crossdot\",\n      \"blob\",\n      \"ringblob\",\n      \"grayblob\",\n      \"NWblob\",\n      \"NEblob\",\n      \"%color\"\n    ],\n    \"\\\\propagator,\\\\propag,\\\\tikzfeynhandset\": [\n      \"plain\",\n      \"top\",\n      \"fer\",\n      \"fermion\",\n      \"antfer\",\n      \"anti fermion\",\n      \"pho\",\n      \"photon\",\n      \"bos\",\n      \"boson\",\n      \"chabos\",\n      \"charged boson\",\n      \"antbos\",\n      \"anti charged boson\",\n      \"glu\",\n      \"gluon\",\n      \"sca\",\n      \"scalar\",\n      \"chasca\",\n      \"charged scalar\",\n      \"antsca\",\n      \"anti charged scalar\",\n      \"gho\",\n      \"ghost\",\n      \"chagho\",\n      \"charged ghost\",\n      \"antgho\",\n      \"anti charged ghost\",\n      \"maj\",\n      \"majorana\",\n      \"antmaj\",\n      \"anti majorana\",\n      \"momentum={${1:[options] label}}\",\n      \"momentum'={${1:[options] label}}\",\n      \"reversed momentum={${1:[options] label}}\",\n      \"reversed momentum'={${1:[options] label}}\",\n      \"mom={${1:[options] label}}\",\n      \"mom'={${1:[options] label}}\",\n      \"revmom={${1:[options] label}}\",\n      \"revmom'={${1:[options] label}}\",\n      \"insertion={${1:[options] fraction}}\",\n      \"slash={${1:[options] fraction}}\",\n      \"backslash={${1:[options] fraction}}\",\n      \"with arrow=${1:fraction}\",\n      \"with reversed arrow=${1:fraction}\",\n      \"%color\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-feynman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarygraphs\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarygraphdrawing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzfeynmanset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzfeynmanset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\feynmandiagram#c,\\\\tikzfeynmanset#c,\\\\begin{feynman}#c,\\\\diagram#c,\\\\diagram*#c\",\n          \"\\\\tikzfeynmanset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagram{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"diagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"diagram[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\feynmandiagram#c,\\\\tikzfeynmanset#c,\\\\begin{feynman}#c,\\\\diagram#c,\\\\diagram*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"diagram*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"diagram*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"diagram*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"diagram*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\feynmandiagram#c,\\\\tikzfeynmanset#c,\\\\begin{feynman}#c,\\\\diagram#c,\\\\diagram*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"feynman\"\n    },\n    {\n      \"name\": \"feynman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\feynmandiagram#c,\\\\tikzfeynmanset#c,\\\\begin{feynman}#c,\\\\diagram#c,\\\\diagram*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\feynmandiagram#c,\\\\tikzfeynmanset#c,\\\\begin{feynman}#c,\\\\diagram#c,\\\\diagram*#c\": [\n      \"execute at begin feynman={${1:code}}\",\n      \"execute at end feynman={${1:code}}\",\n      \"every feynman=${1:styles}\",\n      \"inline=${1:node}\",\n      \"baseline=${1:node}\",\n      \"horizontal=${1:node1} to ${2:node2}\",\n      \"horizontal'=${1:node1} to ${2:node2}\",\n      \"vertical=${1:node1} to ${2:node2}\",\n      \"vertical'=${1:node1} to ${2:node2}\",\n      \"every diagram=${1:styles}\",\n      \"small\",\n      \"medium\",\n      \"large\",\n      \"spring layout\",\n      \"spring electrical layout\",\n      \"layered layout\",\n      \"tree layout\",\n      \"edges=${1:options}\",\n      \"nodes=${1:options}\",\n      \"vertex\",\n      \"every small=${1:styles}\",\n      \"every medium=${1:styles}\",\n      \"every large=${1:styles}\",\n      \"every vertex=${1:styles}\",\n      \"every dot=${1:styles}\",\n      \"every square dot=${1:styles}\",\n      \"every empty dot=${1:styles}\",\n      \"every crossed dot=${1:styles}\",\n      \"every particle=${1:styles}\",\n      \"every blob=${1:styles}\",\n      \"every edge=${1:styles}\",\n      \"every boson=${1:styles}\",\n      \"every photon=${1:styles}\",\n      \"every charges boson=${1:styles}\",\n      \"every anti charged boson=${1:styles}\",\n      \"every scalar=${1:styles}\",\n      \"every anti charge scalar=${1:styles}\",\n      \"every ghost=${1:styles}\",\n      \"every fermion=${1:styles}\",\n      \"every anti fermion=${1:styles}\",\n      \"eveyr majorana=${1:styles}\",\n      \"eveyr anti majorana=${1:styles}\",\n      \"every gluon=${1:styles}\"\n    ],\n    \"\\\\vertex#c\": [\n      \"right=${1:length} of ${2:node}\",\n      \"below=${1:length} of ${2:node}\",\n      \"above=${1:length} of ${2:node}\",\n      \"left=${1:length} of ${2:node}\",\n      \"above right=of ${1:node}\",\n      \"above left=of ${1:node}\",\n      \"below right=of ${1:node}\",\n      \"below left=of ${1:node}\"\n    ],\n    \"\\\\tikzfeynmanset#c\": [\n      \"compat=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-imagelabels.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"imagelabelset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"imagelabelset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\imagelabelset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"annotationimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:options%keyvals}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\begin{annotationimage}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{annotationimage}\": [\n      \"bb=\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=\",\n      \"trim=\",\n      \"angle=\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=\",\n      \"clip\",\n      \"draft\",\n      \"type=\",\n      \"ext=\",\n      \"read=\",\n      \"command=\",\n      \"quiet\",\n      \"page=\",\n      \"interpolate\",\n      \"decodearray=\"\n    ],\n    \"\\\\imagelabelset\": [\n      \"coarse grid color=\",\n      \"fine grid color=\",\n      \"image label font=\",\n      \"image label distance=\",\n      \"image label back=\",\n      \"image label text=\",\n      \"coordinate label font=\",\n      \"coordinate label distance=\",\n      \"coordinate label back=\",\n      \"coordinate label text=\",\n      \"annotation font=\",\n      \"arrow distance=\",\n      \"border thickness=\",\n      \"arrow thickness=\",\n      \"tip size=\",\n      \"outer dist=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-inet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"inetcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inetcell{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"inetcell\",\n      \"arg\": {\n        \"format\": \"[](){}[]\",\n        \"snippet\": \"inetcell[${2:options}](${4:node name}){${1:symbol}}[${3:angle}]\"\n      }\n    },\n    {\n      \"name\": \"inetwire\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"inetwire(${1:cell1.port1})(${2:cell2.port2})\"\n      }\n    },\n    {\n      \"name\": \"inetwire\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"inetwire[${1:options}](${2:cell1.port1})(${3:cell2.port2})\"\n      }\n    },\n    {\n      \"name\": \"inetloop\"\n    },\n    {\n      \"name\": \"inetloop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inetloop[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"inetwirecoords\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"inetwirecoords(${1:node1})(${2:node2})\"\n      }\n    },\n    {\n      \"name\": \"inetwirecoords\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"inetwirecoords[${1:options}](${2:node1})(${3:node2})\"\n      }\n    },\n    {\n      \"name\": \"inetwirefree\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"inetwirefree(${1:cell.port})\"\n      }\n    },\n    {\n      \"name\": \"inetwirefree\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"inetwirefree[${1:options}](${2:cell.port})\"\n      }\n    },\n    {\n      \"name\": \"inetbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inetbox{${1:(${3:cell1}) (${4:cell2}) ...}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"inetbox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inetbox[${3:options}]{${1:(${4:cell1}) (${5:cell2}) ...}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"inetprombox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"inetprombox{${1:(${3:cell1}) (${4:cell2}) ...}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"inetprombox\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"inetprombox[${3:options}]{${1:(${4:cell1}) (${5:cell2}) ...}}{${2:node name}}\"\n      }\n    },\n    {\n      \"name\": \"inetnofancy\"\n    },\n    {\n      \"name\": \"inetfancy\"\n    },\n    {\n      \"name\": \"inetcellstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inetwirestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inetboxstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inetcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inetsetfancycellstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inetsetfancycellstyle{${1:specs}}\"\n      }\n    },\n    {\n      \"name\": \"inetsetfancywirestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inetsetfancywirestyle{${1:specs}}\"\n      }\n    },\n    {\n      \"name\": \"inetoptions\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-lake-fig.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"subfiles\"\n    },\n    {\n      \"name\": \"pbox\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"relsize\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mystrut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"mystrut(${1:height},${2:depth})\"\n      }\n    },\n    {\n      \"name\": \"lakediagramgreen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lakediagramgreen[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lakediagramblue\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lakediagramblue[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"isolated\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"isolated[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"headwater\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"headwater[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"primary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"primary[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"secondary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"secondary[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"secondarypluswatershed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"secondarypluswatershed[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"connectivitydiagram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"connectivitydiagram[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"secondaryprofile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"secondaryprofile[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"secondaryprofileflatequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"secondaryprofileflatequal[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"primaryprofileflatequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"primaryprofileflatequal[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"headwaterprofileflatequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headwaterprofileflatequal[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"isolatedprofileflatequal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isolatedprofileflatequal[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"headwaterprofile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"headwaterprofile[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"primaryprofile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"primaryprofile[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"isolatedprofile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isolatedprofile[${2:scale}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"primaryprofileplus\"\n    },\n    {\n      \"name\": \"secondaryprofileplus\"\n    },\n    {\n      \"name\": \"primaryprofileblue\"\n    },\n    {\n      \"name\": \"primaryprofilegreen\"\n    },\n    {\n      \"name\": \"isolatedflux\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isolatedflux[${2:scale}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"isolatedwireframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"isolatedwireframe[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"secondarywireframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"secondarywireframe[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"watershedconnectivity\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"watershedconnectivity[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"incrementalcumulativeloads\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"incrementalcumulativeloads[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"retentiontrapping\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"retentiontrapping[${1:scale}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-layers.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"on behind layer\",\n      \"on above layer\",\n      \"on glass layer\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-mirror-lens.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mirrorSphGauss\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirrorSphGauss{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGauss\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mirrorSphGauss[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussCoord\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussCoord[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussFixed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussFixed{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussFixed\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussFixed[${8:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussFixedCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussFixedCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorSphGaussFixedCoord\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"mirrorSphGaussFixedCoord[${9:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGauss\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensSphGauss{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGauss\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lensSphGauss[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensSphGaussCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussCoord\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lensSphGaussCoord[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussFixed\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussFixed{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussFixed\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussFixed[${8:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussFixedCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussFixedCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussFixedCoord\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussFixedCoord[${9:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorLensObjIma\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirrorLensObjIma{${1:p}}{${2:pp}}{${3:o}}{${4:i}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorLensCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"mirrorLensCoord{${1:p}}{${2:pp}}{${3:o}}{${4:i}}{${5:f}}{${6:Co}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorBase\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirrorBase{${1:f}}{${2:yM}}{${3:minXaxis}}{${4:maxXaxis}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorPts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"mirrorPts{${1:v}}{${2:f}}{${3:c}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorRays\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mirrorRays{${1:p}}{${2:pp}}{${3:o}}{${4:i}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorRays\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mirrorRays[${5:arrows}]{${1:p}}{${2:pp}}{${3:o}}{${4:i}}\"\n      }\n    },\n    {\n      \"name\": \"lensBase\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensBase{${1:f}}{${2:yM}}{${3:minXaxis}}{${4:maxXaxis}}\"\n      }\n    },\n    {\n      \"name\": \"lensPts\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"lensPts{${1:v}}{${2:f}}{${3:a}}\"\n      }\n    },\n    {\n      \"name\": \"lensRays\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensRays{${1:p}}{${2:pp}}{${3:o}}{${4:i}}\"\n      }\n    },\n    {\n      \"name\": \"lensRays\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lensRays[${5:arrows}]{${1:p}}{${2:pp}}{${3:o}}{${4:i}}\"\n      }\n    },\n    {\n      \"name\": \"mirrorMath\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"mirrorMath{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}\"\n      }\n    },\n    {\n      \"name\": \"lensMath\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lensMath{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}\"\n      }\n    },\n    {\n      \"name\": \"lensMathL\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"lensMathL{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensSphGaussL{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lensSphGaussL[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLCoord[${5:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLFixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLFixed{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLFixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLFixed[${8:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLFixedCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLFixedCoord{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    },\n    {\n      \"name\": \"lensSphGaussLFixedCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"lensSphGaussLFixedCoord[${9:arrows}]{${1:f}}{${2:p}}{${3:o}}{${4:epsilon}}{${5:yM}}{${6:xL}}{${7:xR}}{${8:Co}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-network.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrary3d\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryarrows.meta\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Vertex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vertex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Vertex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vertex[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Vertex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Edge\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Edge(${1:vertex1})(${2:vertex2})\"\n      }\n    },\n    {\n      \"name\": \"Edge\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Edge[${1:options%keyvals}](${2:vertex1})(${3:vertex2})\",\n        \"keys\": [\n          \"\\\\Edge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Text{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Text\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Text[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\Text\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vertices\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vertices{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Vertices\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vertices[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Vertices\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Edges\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Edges{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"Edges\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Edges[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\Edges\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Plane\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Plane[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Plane\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetDefaultUnit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDefaultUnit{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"SetDistanceScale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetDistanceScale{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetLayerDistance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetLayerDistance{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"SetCoordinates\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetCoordinates[${1:specs%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetCoordinates\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetVertexStyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetVertexStyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetVertexStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetEdgeStyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetEdgeStyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetEdgeStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EdgesNotInBG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgesInBG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetTextStyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetTextStyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetTextStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetPlaneStyle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetPlaneStyle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetPlaneStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetPlaneWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPlaneWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"SetPlaneHeight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPlaneHeight{${1:height}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Layer\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\Vertex\": [\n      \"x=\",\n      \"y=\",\n      \"size=\",\n      \"color=\",\n      \"opacity=\",\n      \"shape=\",\n      \"label=\",\n      \"fontsize=\",\n      \"fontcolor=\",\n      \"fontscale=\",\n      \"position=\",\n      \"distance=\",\n      \"style=\",\n      \"layer=\",\n      \"NoLabel\",\n      \"IdAsLabel\",\n      \"Math\",\n      \"RGB\",\n      \"Pseudo\"\n    ],\n    \"\\\\Edge\": [\n      \"lw=\",\n      \"color=\",\n      \"opacity=\",\n      \"bend=\",\n      \"label=\",\n      \"fontsize=\",\n      \"fontcolor=\",\n      \"fontscale=\",\n      \"position=\",\n      \"distance=\",\n      \"style=\",\n      \"path={${1:vertex list}}\",\n      \"loopsize=\",\n      \"loopposition=\",\n      \"loopshape=\",\n      \"Direct\",\n      \"Math\",\n      \"RGB\",\n      \"NotInBG\"\n    ],\n    \"\\\\Text\": [\n      \"x=\",\n      \"y=\",\n      \"fontsize=\",\n      \"color=\",\n      \"opacity=\",\n      \"position=\",\n      \"distance=\",\n      \"rotation=\",\n      \"anchor=\",\n      \"width=\",\n      \"style=\",\n      \"layer=\",\n      \"RGB\"\n    ],\n    \"\\\\Vertices\": [\n      \"size=\",\n      \"color=\",\n      \"opacity=\",\n      \"style=\",\n      \"layer=\",\n      \"NoLabel\",\n      \"IdAsLabel\",\n      \"Math\",\n      \"RGB\",\n      \"Pseudo\"\n    ],\n    \"\\\\Edges\": [\n      \"lw=\",\n      \"color=\",\n      \"opacity=\",\n      \"style=\",\n      \"vertices=${1:file}\",\n      \"layer=\",\n      \"Direct\",\n      \"Math\",\n      \"NoLabel\",\n      \"RGB\",\n      \"NotInBG\"\n    ],\n    \"\\\\begin{tikzpicture}#c\": [\n      \"multilayer\",\n      \"multilayer=3d\"\n    ],\n    \"\\\\Plane\": [\n      \"x=\",\n      \"y=\",\n      \"width=\",\n      \"height=\",\n      \"color=\",\n      \"opacity=\",\n      \"grid=\",\n      \"image=${1:file}\",\n      \"style=\",\n      \"layer=\",\n      \"RGB\",\n      \"NoFill\",\n      \"NoBorder\",\n      \"ImageAndFill\",\n      \"InBG\"\n    ],\n    \"\\\\SetCoordinates\": [\n      \"xAngle=\",\n      \"yAngle=\",\n      \"zAngle=\",\n      \"xLength=\",\n      \"yLength=\",\n      \"zLength=\"\n    ],\n    \"\\\\SetVertexStyle\": [\n      \"Shape=\",\n      \"InnerSep=\",\n      \"OuterSep=\",\n      \"MinSize=\",\n      \"FillColor=\",\n      \"FillOpacity=\",\n      \"LineWidth=\",\n      \"LineColor=\",\n      \"LineOpacity=\",\n      \"TextFont=\",\n      \"TextColor=\",\n      \"TextOpacity=\",\n      \"TextRotation=\"\n    ],\n    \"\\\\SetEdgeStyle\": [\n      \"LineWidth=\",\n      \"Color=\",\n      \"Opacity=\",\n      \"Arrow=\",\n      \"TextFont=\",\n      \"TextOpacity=\",\n      \"TextFillColor=\",\n      \"TextFillOpacity=\",\n      \"InnerSep=\",\n      \"OuterSep=\",\n      \"TextRotation=\"\n    ],\n    \"\\\\SetTextStyle\": [\n      \"TextFont=\",\n      \"TextOpacity=\",\n      \"TextColor=\",\n      \"InnerSep=\",\n      \"OuterSep=\",\n      \"TextRotation=\"\n    ],\n    \"\\\\SetPlaneStyle\": [\n      \"LineWidth=\",\n      \"LineColor=\",\n      \"LineOpacity=\",\n      \"FillColor=\",\n      \"FillOpacity=\",\n      \"GridLineWidth=\",\n      \"GridColor=\",\n      \"GridOpacity=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-opm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    },\n    {\n      \"name\": \"makeshape\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"defaulttriangleanchors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaulttrianglelengths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opmInstance\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opmInstance{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"trianglepath\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"opmobject\",\n      \"opmprocess\",\n      \"opmaggregation\",\n      \"opmexhibition\",\n      \"opmgeneralization\",\n      \"opminstantiation\",\n      \"opmstate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-osci.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"osci\"\n    },\n    {\n      \"name\": \"osci\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"osci[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\osci#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\osci#c\": [\n      \"scale=${1:factor}\",\n      \"rounded corners=${1:radius}\",\n      \"second channel=${1|0,1|}\",\n      \"screen offset one=${1:offset}\",\n      \"screen offset two=${1:offset}\",\n      \"time div=${1:milliseconds}\",\n      \"voltage div one=${1:volts}\",\n      \"voltage div two=${1:volts}\",\n      \"sample rate=${1:rate}\",\n      \"xy mode=${1|0,1|}\",\n      \"math mode=${1|0,1,2,3,4|}\",\n      \"math mode hide source=${1|0,1|}\",\n      \"func one=${1:function}\",\n      \"func two=${1:function}\",\n      \"indicators=${1|0,1|}\",\n      \"vertical cursor one\",\n      \"vertical cursor two\",\n      \"horizontal cursor one\",\n      \"horizontal cursor two\",\n      \"cursor precision=${1:integer}\",\n      \"color one=${1:hexadecimal}\",\n      \"color text one=${1:hexadecimal}\",\n      \"color two=${1:hexadecimal}\",\n      \"color text two=${1:hexadecimal}\",\n      \"color three=${1:hexadecimal}\",\n      \"color text three=${1:hexadecimal}\",\n      \"graph back color=${1:hexadecimal}\",\n      \"info back color=${1:hexadecimal}\",\n      \"main axis color=${1:hexadecimal}\",\n      \"grid color=${1:hexadecimal}\",\n      \"horizontal cursor color=${1:hexadecimal}\",\n      \"vertical cursor color=${1:hexadecimal}\",\n      \"smooth one=${1|0,1|}\",\n      \"smooth two=${1|0,1|}\",\n      \"smooth three=${1|0,1|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-page.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"textpos\",\n      \"if\": \"textpos\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tpflip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tpflip{${1:odd page code}}{${2:even page code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpageputanchorsdefaults\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsbody\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsmarginpar\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsheader\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsfooter\"\n    },\n    {\n      \"name\": \"tikzpageputanchorstop\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsright\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsbottom\"\n    },\n    {\n      \"name\": \"tikzpageputanchorsleft\"\n    },\n    {\n      \"name\": \"tikzpageputanchors\"\n    },\n    {\n      \"name\": \"tpshowframes\"\n    },\n    {\n      \"name\": \"tpfancyhdrdefault\"\n    },\n    {\n      \"name\": \"tikzpage\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikz-page#c\": [\n      \"textpos\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikz-page#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikz-palattice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drift\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drift{${1:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"drift\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"drift{${1:length%plain}}[${2:name}]\"\n      }\n    },\n    {\n      \"name\": \"dipole\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dipole{${1:name}}{${2:arc length}}{${3:bending angle}}\"\n      }\n    },\n    {\n      \"name\": \"dipole\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"dipole{${1:name}}{${2:arc length}}{${3:bending angle}}[${4:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\dipole\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"dipole\",\n      \"arg\": {\n        \"format\": \"{}{}{}[][]\",\n        \"snippet\": \"dipole{${1:name}}{${2:arc length}}{${3:bending angle}}[${4:type%keyvals}][${5:thickness}]\",\n        \"keys\": [\n          \"\\\\dipole\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"quadrupole\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"quadrupole{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"quadrupole\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"quadrupole{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"sextupole\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sextupole{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"sextupole\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"sextupole{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"corrector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"corrector{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"corrector\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"corrector{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"kicker\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kicker{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"kicker\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"kicker{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"cavity\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cavity{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"cavity\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"cavity{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"solenoid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"solenoid{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"solenoid\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"solenoid{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"beamdump\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"beamdump{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"beamdump\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"beamdump{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"source{${1:name}}{${2:length%plain}}\"\n      }\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"source{${1:name}}{${2:length%plain}}[${3:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"screen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"screen{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"screen\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"screen{${1:name}}[${2:length%plain}]\"\n      }\n    },\n    {\n      \"name\": \"valve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"valve{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"valve\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"valve{${1:name}}[${2:length%plain}]\"\n      }\n    },\n    {\n      \"name\": \"marker\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marker{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"marker\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"marker{${1:name}}[${2:length%plain}]\"\n      }\n    },\n    {\n      \"name\": \"start\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"start{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"rotate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotate{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"setangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setangle{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"goto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"goto{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"drawrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"drawrule{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"drawrule\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"drawrule{${1:coordinate}}[${2:tick distance}]\"\n      }\n    },\n    {\n      \"name\": \"drawrule\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"drawrule{${1:coordinate}}[${2:tick distance}][${3:scale}]\"\n      }\n    },\n    {\n      \"name\": \"drawrule\",\n      \"arg\": {\n        \"format\": \"{}[][][]\",\n        \"snippet\": \"drawrule{${1:coordinate}}[${2:tick distance}][${3:scale}][${4:height%plain}]\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"legend{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"legend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"legend{${1:coordinate}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"completelegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"completelegend{${1:coordinate}}\"\n      }\n    },\n    {\n      \"name\": \"completelegend\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"completelegend{${1:coordinate}}[${2:scale}]\"\n      }\n    },\n    {\n      \"name\": \"setlegendtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlegendtext{${1:type%keyvals}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addlegendentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addlegendentry{${1:text}}{${2:TikZ options}}\"\n      }\n    },\n    {\n      \"name\": \"turnlabels\"\n    },\n    {\n      \"name\": \"northlabels\"\n    },\n    {\n      \"name\": \"southlabels\"\n    },\n    {\n      \"name\": \"rotatelabels\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotatelabels{${1:degrees}}\"\n      }\n    },\n    {\n      \"name\": \"rotatelabels\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rotatelabels{${1:degrees}}[${2:anchor}]\"\n      }\n    },\n    {\n      \"name\": \"setlabeldistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlabeldistance{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"resetlabeldistance\"\n    },\n    {\n      \"name\": \"setlabelfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlabelfont{${1:fontsize cmd}}\"\n      }\n    },\n    {\n      \"name\": \"setlinecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setlinecolor{${1:type%keyvals}}{${2:color}}\",\n        \"keys\": [\n          \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetlinecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetlinecolor{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setelementcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setelementcolor{${1:type%keyvals}}{${2:color}}\",\n        \"keys\": [\n          \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resetelementcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resetelementcolor{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlabelcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlabelcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"savecoordinate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecoordinate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"savecoordinate\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"savecoordinate{${1:name}}[${2:position}]\"\n      }\n    },\n    {\n      \"name\": \"angleinc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declarecoords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elementlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"elementlabel{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"elementwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptycustomlegendkeys\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iinc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jinc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labeldist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelrot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markerlen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marklabelang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectangleelement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rectangleelement{${1:name}}{${2:length%plain}}{${3:thickness}}{${4:type}}\"\n      }\n    },\n    {\n      \"name\": \"savelabeldist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatelabelanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"updatemarkerlabelanchor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"lattice\"\n    },\n    {\n      \"name\": \"lattice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"lattice\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:scale}][${2:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"labeldistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"fade\"\n    },\n    {\n      \"name\": \"fade\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:opacity}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\dipole\": [\n      \"s\",\n      \"r\",\n      \"br\"\n    ],\n    \"\\\\setlegendtext#c,\\\\setlinecolor#c,\\\\resetlinecolor#c,\\\\setelementcolor#c,\\\\resetelementcolor#c\": [\n      \"dipole\",\n      \"quadrupole\",\n      \"sextupole\",\n      \"kicker\",\n      \"corrector\",\n      \"solenoid\",\n      \"cavity\",\n      \"source\",\n      \"screen\",\n      \"valve\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-qtree.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgftree\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Tree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Tree[${1:qtree code}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzset#c,\\\\begin{tikzpicture}#c,\\\\begin{scope}#c\": [\n      \"level distance=\",\n      \"sibling distance=\",\n      \"grow=${1|up,down,left,right|}\",\n      \"grow'=${1|up,down,left,right|}\",\n      \"level ${1:n}+/.style={${2:options}}\",\n      \"interior/.style={${1:options}}\",\n      \"frontier/.style={${1:options}}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"every tree node/.style={${1:options}}\",\n      \"every internal node/.style={${1:options}}\",\n      \"every leaf node/.style={${1:options}}\",\n      \"every level ${1:n} node/.style={${2:options}}\",\n      \"edge from parent/.append style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-timing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"texttiming\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttiming{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"texttiming\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"texttiming[${2:init char/TikZ keys}]{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"timing\"\n    },\n    {\n      \"name\": \"timing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"timing[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"extracode\"\n    },\n    {\n      \"name\": \"extracode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"extracode[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"endextracode\"\n    },\n    {\n      \"name\": \"tablegrid\"\n    },\n    {\n      \"name\": \"tablegrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablegrid[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"tablegrid*\"\n    },\n    {\n      \"name\": \"tablegrid*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablegrid*[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"fulltablegrid\"\n    },\n    {\n      \"name\": \"fulltablegrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fulltablegrid[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"nrows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rowdist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coldist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"horlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"horlines{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"horlines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"horlines[${2:TikZ keys}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"vertlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertlines{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"vertlines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vertlines[${2:TikZ keys}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"tableheader\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tableheader{${1:description title%text}}{${2:signal title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableheader\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tableheader[${3:TikZ keys}]{${1:description title%text}}{${2:signal title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tablerules\"\n    },\n    {\n      \"name\": \"tablerules\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tablerules[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"background\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztimingsetwscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetwscale{${1:math expr}}\"\n      }\n    },\n    {\n      \"name\": \"setwscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwscale{${1:math expr}}\"\n      }\n    },\n    {\n      \"name\": \"wscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztimingmetachar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingmetachar{${1:meta char}}{${2:char group}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingmetachar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"tikztimingmetachar{${1:meta char}}[${3:args}]{${2:char group}}\"\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetikztiminglibrary{${1:libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usetikztiminglibrary[${2:options}]{${1:libraries%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetikztiminglibrary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"usetikztiminglibrary[${2:options}]{${1:libraries%keyvals}}[${3:date}]\",\n        \"keys\": [\n          \"\\\\usetikztiminglibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikztimingcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingcounter{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetcounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingsetcounter{${1:char}}{${2:pgfmath expr}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timingwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"timingheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"charb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"abc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"list\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gslope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"style\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdraw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdraw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newdraw[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"newdrawns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdrawns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newdrawns[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"code\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"code{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetdslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetdslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingsetzslope\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikztimingsetzslope{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikztiminguse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztiminguse{${1:char}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingdef{${1:char}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingcpy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingcpy{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztiminglet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztiminglet{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingchar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikztimingchar{${1:char}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"tikztimingecopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikztimingecopy{${1:char1}}{${2:char2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikztimingtable\"\n    },\n    {\n      \"name\": \"extracode\"\n    },\n    {\n      \"name\": \"extracode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"background\"\n    },\n    {\n      \"name\": \"background\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:TikZ keys}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetikztiminglibrary\": [\n      \"arrows\",\n      \"either\",\n      \"overlays\",\n      \"clockarrows\",\n      \"columntype\",\n      \"nicetabs\",\n      \"counters\",\n      \"advnodes\",\n      \"ifsym\",\n      \"interval\",\n      \"beamer\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-trackschematic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"xltabular\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tsFullSymbology\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tsSymbol[${2:width}]{${1:symbol name}}\"\n      }\n    },\n    {\n      \"name\": \"maintrack\"\n    },\n    {\n      \"name\": \"secondarytrack\"\n    },\n    {\n      \"name\": \"sidetrack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tracklabel\"\n    },\n    {\n      \"name\": \"bufferstop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bufferstop[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bufferstop#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trackclosure\"\n    },\n    {\n      \"name\": \"turnout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"turnout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\turnout#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crossing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"crossing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\crossing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slipturnout\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slipturnout[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\slipturnout#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"derailer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"derailer[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\derailer#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"parkedvehicles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"parkedvehicles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\parkedvehicles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shunting\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shunting[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\shunting#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"train\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"train[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\train#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"signal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"signal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\signal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"distantsignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"distantsignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"speedsignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"speedsignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\",\n          \"\\\\speedsignal#c,\\\\speedsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"speedsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"speedsign[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\",\n          \"\\\\speedsignal#c,\\\\speedsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blocksignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blocksignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"routesignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"routesignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\",\n          \"\\\\routesignal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shuntsignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shuntsignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\",\n          \"\\\\shuntsignal#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shuntlimit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shuntlimit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"berthsignal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"berthsignal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"berthsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"berthsign[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"viewpoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"viewpoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clearingpoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearingpoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\",\n          \"\\\\clearingpoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"standardclearing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"standardclearing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\",\n          \"\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blockclearing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blockclearing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\",\n          \"\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"routeclearing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"routeclearing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\",\n          \"\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"brakingpoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"brakingpoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\brakingpoint#c,\\\\movementauthority#c,\\\\dangerpoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"movementauthority\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"movementauthority[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\brakingpoint#c,\\\\movementauthority#c,\\\\dangerpoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dangerpoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dangerpoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\brakingpoint#c,\\\\movementauthority#c,\\\\dangerpoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"route\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"route[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\route#c,\\\\directioncontrol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"directioncontrol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"directioncontrol[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\route#c,\\\\directioncontrol#c\",\n          \"\\\\directioncontrol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"balise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"balise[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\balise#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"transmitter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"transmitter[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\transmitter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trackloop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trackloop[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\trackloop#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"platform\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"platform[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\platform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"levelcrossing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"levelcrossing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\levelcrossing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bridge\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bridge[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bridge#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"interlocking\"\n    },\n    {\n      \"name\": \"hump\"\n    },\n    {\n      \"name\": \"pylon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pylon[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pylon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"distantpoweroff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"distantpoweroff[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"poweroff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"poweroff[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"poweron\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"poweron[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"distantpantographdown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"distantpantographdown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pantographdown\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pantographdown[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pantographup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pantographup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wirelimit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wirelimit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trackdistance\"\n    },\n    {\n      \"name\": \"berth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"berth[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\berth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measureline\"\n    },\n    {\n      \"name\": \"hectometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hectometer[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\hectometer#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trackmarking\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trackmarking[${1:color%plain}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzset#c\": [\n      \"traffic practice=${1|left,right|}\"\n    ],\n    \"\\\\bufferstop#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"friction=\",\n      \"foreground=\"\n    ],\n    \"\\\\turnout#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"branch=${1|left,right|}\",\n      \"operation=${1|manual|}\",\n      \"fouling point\",\n      \"points=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\crossing#c\": [\n      \"branch=${1|left,right|}\",\n      \"fouling point\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\slipturnout#c\": [\n      \"branch=${1|left,right|}\",\n      \"slip=${1|double,none,left,right|}\",\n      \"operation=${1|manual|}\",\n      \"fouling point\",\n      \"forward points=${1|left,right|}\",\n      \"backwards points=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\derailer#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"branch=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\parkedvehicles#c\": [\n      \"length=\",\n      \"label at={${1:(x,y)}}\",\n      \"label align=${1|left,right|}\",\n      \"foreground=\",\n      \"background=\"\n    ],\n    \"\\\\shunting#c\": [\n      \"face=${1|forward,backward|}\",\n      \"movement\",\n      \"forward\",\n      \"backward\",\n      \"operation=${1|manual,automatic|}\",\n      \"bend left at={${1:(x,y)}}\",\n      \"bend right at={${1:(x,y)}}\",\n      \"label at={${1:(x,y)}}\",\n      \"label align=${1|left,right|}\",\n      \"foreground=\",\n      \"background=\"\n    ],\n    \"\\\\train#c\": [\n      \"face=${1|forward,backward|}\",\n      \"run=${1|slow,normal,fast|}\",\n      \"forward\",\n      \"backward\",\n      \"length=\",\n      \"operation=${1|manual,automatic|}\",\n      \"ghost\",\n      \"bend left at={${1:(x,y)}}\",\n      \"bend right at={${1:(x,y)}}\",\n      \"shift label={${1:(x,y)}}\",\n      \"label align=${1|left,right|}\",\n      \"foreground=\",\n      \"background=\"\n    ],\n    \"\\\\signal#c\": [\n      \"distant\",\n      \"speed type\",\n      \"block\",\n      \"route\",\n      \"shunt limit\",\n      \"shunting\",\n      \"berth\",\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"speed=\",\n      \"distant speed=\",\n      \"locked\",\n      \"position=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\",\n      \"rotate=${1:degrees}\"\n    ],\n    \"\\\\distantsignal#c,\\\\speedsignal#c,\\\\speedsign#c,\\\\blocksignal#c,\\\\routesignal#c,\\\\shuntsignal#c,\\\\shuntlimit#c,\\\\berthsignal#c,\\\\berthsign#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"position=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\",\n      \"rotate=${1:degrees}\"\n    ],\n    \"\\\\speedsignal#c,\\\\speedsign#c\": [\n      \"speed=\"\n    ],\n    \"\\\\routesignal#c\": [\n      \"speed=\",\n      \"locked\"\n    ],\n    \"\\\\shuntsignal#c\": [\n      \"locked\"\n    ],\n    \"\\\\viewpoint#c,\\\\clearingpoint#c,\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"position=${1|left,right|}\",\n      \"foreground=\",\n      \"rotate=${1:degrees}\"\n    ],\n    \"\\\\clearingpoint#c\": [\n      \"standard\",\n      \"block\",\n      \"route\",\n      \"shift label={${1:(x,y)}}\"\n    ],\n    \"\\\\standardclearing#c,\\\\blockclearing#c,\\\\routeclearing#c\": [\n      \"shift label={${1:(x,y)}}\"\n    ],\n    \"\\\\brakingpoint#c,\\\\movementauthority#c,\\\\dangerpoint#c\": [\n      \"face=${1|forward,backward,bidirectional|}\",\n      \"forward\",\n      \"backward\",\n      \"bidirectional\",\n      \"position=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\route#c,\\\\directioncontrol#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"background=\"\n    ],\n    \"\\\\directioncontrol#c\": [\n      \"bidirectional\"\n    ],\n    \"\\\\balise#c\": [\n      \"face=${1|forward,backward|}\",\n      \"forward\",\n      \"backward\",\n      \"switched\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\",\n      \"along={${1:list of integers}}\",\n      \"oppose={${1:list of integers}}\",\n      \"along switched={${1:list of integers}}\",\n      \"oppose switched={${1:list of integers}}\",\n      \"index\"\n    ],\n    \"\\\\transmitter#c\": [\n      \"face=${1|forward,backward,bidirectional|}\",\n      \"type=${1|balise,loop|}\",\n      \"forward\",\n      \"backward\",\n      \"bidirectional\",\n      \"position=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\trackloop#c\": [\n      \"position=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\"\n    ],\n    \"\\\\platform#c\": [\n      \"side=${1|left,right,both|}\",\n      \"length=\",\n      \"width=\",\n      \"foreground=\"\n    ],\n    \"\\\\levelcrossing#c\": [\n      \"barrier=${1|none,semi,full|}\",\n      \"side=${1|both,left,right|}\",\n      \"road width=\",\n      \"width=\",\n      \"no road\",\n      \"foreground=\"\n    ],\n    \"\\\\bridge#c\": [\n      \"length=\",\n      \"width=\",\n      \"shift left=\",\n      \"shift right=\",\n      \"side=${1|both,left,right|}\",\n      \"foreground=\",\n      \"background=\",\n      \"no background\"\n    ],\n    \"\\\\pylon#c\": [\n      \"side=${1|right,left,both|}\",\n      \"foreground=\",\n      \"background=\"\n    ],\n    \"\\\\distantpoweroff#c,\\\\poweroff#c,\\\\poweron#c,\\\\distantpantographdown#c,\\\\pantographdown#c,\\\\pantographup#c,\\\\wirelimit#c\": [\n      \"face=${1|forward,backward,bidirectional|}\",\n      \"forward\",\n      \"backward\",\n      \"bidirectional\",\n      \"position=${1|left,right|}\",\n      \"signal color=\",\n      \"shift label={${1:(x,y)}}\",\n      \"foreground=\",\n      \"background=\"\n    ],\n    \"\\\\berth#c\": [\n      \"face=${1|forward,backward,bidirectional|}\",\n      \"forward\",\n      \"backward\",\n      \"bidirectional\",\n      \"length=\",\n      \"position=${1|left,right|}\",\n      \"foreground=\"\n    ],\n    \"\\\\hectometer#c\": [\n      \"hectometer base={${1:(x,y)}}\",\n      \"orientation=${1|left,right|}\",\n      \"shift label={${1:(x,y)}}\",\n      \"hectometer color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-truchet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"truchetsquare\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"truchetsquare{${1:Center}}{${2:NE}}{${3:NW}}{${4:SW}}{${5:SE}}\"\n      }\n    },\n    {\n      \"name\": \"truchetsquare\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"truchetsquare[${6:(${7:x},${8:y})}]{${1:Center}}{${2:NE}}{${3:NW}}{${4:SW}}{${5:SE}}\"\n      }\n    },\n    {\n      \"name\": \"diagonalsquare\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"diagonalsquare{${1:NE}}{${2:NW}}{${3:SW}}{${4:SE}}\"\n      }\n    },\n    {\n      \"name\": \"diagonalsquare\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"diagonalsquare[${5:(${6:x},${7:y})}]{${1:NE}}{${2:NW}}{${3:SW}}{${4:SE}}\"\n      }\n    },\n    {\n      \"name\": \"tileA\"\n    },\n    {\n      \"name\": \"tileA\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tileA[${1:(${2:x},${3:y})}]\"\n      }\n    },\n    {\n      \"name\": \"tileB\"\n    },\n    {\n      \"name\": \"tileB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tileB[${1:(${2:x},${3:y})}]\"\n      }\n    },\n    {\n      \"name\": \"tileC\"\n    },\n    {\n      \"name\": \"tileC\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tileC[${1:(${2:x},${3:y})}]\"\n      }\n    },\n    {\n      \"name\": \"tileD\"\n    },\n    {\n      \"name\": \"tileD\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tileD[${1:(${2:x},${3:y})}]\"\n      }\n    },\n    {\n      \"name\": \"truchethex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"truchethex{${1:Center}}{${2:NW}}{${3:W}}{${4:SW}}{${5:SE}}{${6:E}}{${7:NW}}\"\n      }\n    },\n    {\n      \"name\": \"truchethex\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"truchethex[${8:(${9:x},${10:y})}]{${1:Center}}{${2:NW}}{${3:W}}{${4:SW}}{${5:SE}}{${6:E}}{${7:NW}}\"\n      }\n    },\n    {\n      \"name\": \"truchetsplithex\"\n    },\n    {\n      \"name\": \"truchetsplithex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"truchetsplithex[${1:(${2:x},${3:y})}]\"\n      }\n    },\n    {\n      \"name\": \"truchetcube\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"truchetcube{${1:Bottom}}{${2:Front}}{${3:Right}}{${4:Back}}{${5:Left}}{${6:Right}}\"\n      }\n    },\n    {\n      \"name\": \"truchetcube\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"truchetcube[${7:(${8:x},${9:y})}]{${1:Bottom}}{${2:Front}}{${3:Right}}{${4:Back}}{${5:Left}}{${6:Right}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rotatehex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:degrees}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz-uml.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"umlemptypackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlemptypackage{${1:package-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlemptypackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlemptypackage[${2:options%keyvals}]{${1:package-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlclass{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlclass\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlclass[${4:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlstatic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlstatic{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"umlvirt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlvirt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"umlemptyclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlemptyclass{${1:class-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlemptyclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlemptyclass[${2:options%keyvals}]{${1:class-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlsimpleclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlsimpleclass{${1:class-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlsimpleclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlsimpleclass[${2:options%keyvals}]{${1:class-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlabstract\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlabstract{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlabstract\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlabstract[${4:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umltypedef\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umltypedef{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umltypedef\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umltypedef[${4:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlenum\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlenum{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlenum\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlenum[${4:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlinterface\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlinterface{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlinterface\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlinterface[${4:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}\"\n      }\n    },\n    {\n      \"name\": \"umlsimpleinterface\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlsimpleinterface{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlsimpleinterface\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlsimpleinterface[${2:options%keyvals}]{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umldep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umldep{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umldep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umldep[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umluniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umluniassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umluniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umluniassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlbiassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlbiassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlbiassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlbiassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umluniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umluniaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umluniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umluniaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlcompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlcompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlcompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlunicompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlunicompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlimport{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlimport[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlinherit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlinherit{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlinherit[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlimpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlimpl{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlimpl[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlnest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlnest{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlnest[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlreal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlreal{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlreal[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVinherit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVinherit{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVinherit[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVimpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVimpl{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVimpl[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVreal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVreal{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVreal[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVuniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVuniassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVuniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVuniassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVuniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVuniaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVuniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVuniaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVcompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVcompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVcompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVunicompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVunicompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVimport{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVimport[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVnest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVnest{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVnest[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVdep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVdep{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVdep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVdep[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHinherit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHinherit{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHinherit[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHimpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHimpl{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHimpl[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHreal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHreal{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHreal[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHuniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHuniassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHuniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHuniassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHuniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHuniaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHuniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHuniaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHcompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHcompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHcompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHunicompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHunicompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHimport{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHimport[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHnest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHnest{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHnest[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHdep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHdep{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHdep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHdep[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHinherit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHinherit{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHinherit[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHimpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHimpl{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHimpl[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHreal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHreal{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHreal[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHuniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHuniassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHuniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHuniassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHuniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHuniaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHuniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHuniaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHcompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHcompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHcompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHunicompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHunicompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHimport{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHimport[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHnest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHnest{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHnest[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHdep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHdep{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHdep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHdep[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVinherit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVinherit{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVinherit[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVimpl\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVimpl{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVimpl[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVreal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVreal{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVreal[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVuniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVuniassoc{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVuniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVuniassoc[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVuniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVuniaggreg{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVuniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVuniaggreg[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVcompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVcompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVcompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVunicompo{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVunicompo[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVimport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVimport{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVimport[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVnest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVnest{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVnest[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVdep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVdep{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVdep\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVdep[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlrelation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlrelation{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlrelation[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVrelation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVrelation{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVrelation[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHrelation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHrelation{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHrelation[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHrelation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHrelation{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHrelation[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVrelation\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVrelation{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVrelation[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNrelation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNrelation{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNrelation\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNrelation[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNinherit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNinherit{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNinherit\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNinherit[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNimpl\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNimpl{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNimpl\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNimpl[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNreal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNreal{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNreal\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNreal[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNassoc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNassoc{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNassoc[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNuniassoc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNuniassoc{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNuniassoc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNuniassoc[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNaggreg{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNaggreg[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNuniaggreg\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNuniaggreg{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNuniaggreg\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNuniaggreg[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNcompo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNcompo{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNcompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNcompo[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNunicompo\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNunicompo{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNunicompo\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNunicompo[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNimport\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNimport{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNimport\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNimport[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNnest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNnest{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNnest\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNnest[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNdep\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNdep{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNdep\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNdep[${4:options%keyvals}]{${1:source-class}}{${2:control-node}}{${3:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlpoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlpoint{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"umlNarynode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlNarynode{${1:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"umlNarynode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlNarynode[${2:options%keyvals}]{${1:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"umlnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlnote{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlnote[${3:options%keyvals}]{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHnote{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHnote[${3:options%keyvals}]{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVnote{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVnote[${3:options%keyvals}]{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVnote{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVnote[${3:options%keyvals}]{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHnote{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHnote\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHnote[${3:options%keyvals}]{${1:node-name}}{${2:note%text}}\"\n      }\n    },\n    {\n      \"name\": \"umlassocclass\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"umlassocclass{${1:class-name}}{${2:attributes}}{${3:operations}}{${4:}}\"\n      }\n    },\n    {\n      \"name\": \"umlassocclass\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"umlassocclass[${5:options%keyvals}]{${1:class-name}}{${2:attributes}}{${3:operations}}{${4:}}\"\n      }\n    },\n    {\n      \"name\": \"tikzumlset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzumlset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"umlactor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlactor{${1:actor-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlactor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlactor[${2:options%keyvals}]{${1:actor-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlusecase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlusecase{${1:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"umlusecase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlusecase[${2:options%keyvals}]{${1:label-text}}\"\n      }\n    },\n    {\n      \"name\": \"umlinclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlinclude{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlinclude[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVinclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVinclude{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVinclude[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHinclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHinclude{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHinclude[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHinclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHinclude{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHinclude[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVinclude\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVinclude{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVinclude[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNinclude\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNinclude{${1:source-case}}{${2:control-node}}{${3:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNinclude\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNinclude[${4:options%keyvals}]{${1:source-case}}{${2:control-node}}{${3:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlextend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlextend{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlextend[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVextend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVextend{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVextend[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHextend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHextend{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHextend[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHextend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHextend{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHextend[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVextend\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVextend{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVextend[${3:options%keyvals}]{${1:source-case}}{${2:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNextend\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNextend{${1:source-case}}{${2:control-node}}{${3:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNextend\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNextend[${4:options%keyvals}]{${1:source-case}}{${2:control-node}}{${3:target-case}}\"\n      }\n    },\n    {\n      \"name\": \"umlbasicstate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlbasicstate{${1:state-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlbasicstate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlbasicstate[${2:options%keyvals}]{${1:state-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlstateinitial\"\n    },\n    {\n      \"name\": \"umlstateinitial\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstateinitial[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstatefinal\"\n    },\n    {\n      \"name\": \"umlstatefinal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstatefinal[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstatejoin\"\n    },\n    {\n      \"name\": \"umlstatejoin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstatejoin[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstatedecision\"\n    },\n    {\n      \"name\": \"umlstatedecision\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstatedecision[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstateenter\"\n    },\n    {\n      \"name\": \"umlstateenter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstateenter[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstateexit\"\n    },\n    {\n      \"name\": \"umlstateexit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstateexit[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstateend\"\n    },\n    {\n      \"name\": \"umlstateend\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstateend[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstatehistory\"\n    },\n    {\n      \"name\": \"umlstatehistory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstatehistory[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlstatedeephistory\"\n    },\n    {\n      \"name\": \"umlstatedeephistory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlstatedeephistory[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umltrans\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umltrans{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umltrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umltrans[${3:options%keyvals}]{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVtrans\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVtrans{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVtrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVtrans[${3:options%keyvals}]{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHtrans\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHtrans{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHtrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHtrans[${3:options%keyvals}]{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVtrans\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVtrans{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVtrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVtrans[${3:options%keyvals}]{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHtrans\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHtrans{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHtrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHtrans[${3:options%keyvals}]{${1:source-state}}{${2:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNtrans\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"umlCNtrans{${1:source-state}}{${2:control-node}}{${3:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNtrans\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"umlCNtrans[${4:options%keyvals}]{${1:source-state}}{${2:control-node}}{${3:target-state}}\"\n      }\n    },\n    {\n      \"name\": \"umlobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlobject{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlobject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlobject[${2:options%keyvals}]{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlbasicobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlbasicobject{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlbasicobject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlbasicobject[${2:options%keyvals}]{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umldatabase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umldatabase{${1:database-name}}\"\n      }\n    },\n    {\n      \"name\": \"umldatabase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umldatabase[${2:options%keyvals}]{${1:database-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlmulti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlmulti{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlmulti\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlmulti[${2:options%keyvals}]{${1:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlentity\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlentity{${1:entity-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlentity\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlentity[${2:options%keyvals}]{${1:entity-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlboundary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlboundary{${1:boundary-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlboundary\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlboundary[${2:options%keyvals}]{${1:boundary-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlcontrol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlcontrol{${1:control-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlcontrol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlcontrol[${2:options%keyvals}]{${1:control-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlcreatecall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlcreatecall{${1:call-sender}}{${2:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlcreatecall\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlcreatecall[${3:options%keyvals}]{${1:call-sender}}{${2:object-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlfpart\"\n    },\n    {\n      \"name\": \"umlfpart\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"umlfpart[${1:label-text}]\"\n      }\n    },\n    {\n      \"name\": \"umlbasiccomponent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlbasiccomponent{${1:component-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlbasiccomponent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlbasiccomponent[${2:options%keyvals}]{${1:component-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlprovidedinterface\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlprovidedinterface{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlprovidedinterface\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlprovidedinterface[${2:options%keyvals}]{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlrequiredinterface\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlrequiredinterface{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlrequiredinterface\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlrequiredinterface[${2:options%keyvals}]{${1:interface-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlassemblyconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlassemblyconnector{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlassemblyconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlassemblyconnector[${3:options%keyvals}]{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVassemblyconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVassemblyconnector{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVassemblyconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVassemblyconnector[${3:options%keyvals}]{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHassemblyconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHassemblyconnector{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHassemblyconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHassemblyconnector[${3:options%keyvals}]{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHassemblyconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHassemblyconnector{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHassemblyconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHassemblyconnector[${3:options%keyvals}]{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVassemblyconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVassemblyconnector{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVassemblyconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVassemblyconnector[${3:options%keyvals}]{${1:component1}}{${2:component2}}\"\n      }\n    },\n    {\n      \"name\": \"umldelegateconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umldelegateconnector{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umldelegateconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umldelegateconnector[${3:options%keyvals}]{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVdelegateconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVdelegateconnector{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVdelegateconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVdelegateconnector[${3:options%keyvals}]{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHdelegateconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHdelegateconnector{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHdelegateconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHdelegateconnector[${3:options%keyvals}]{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHdelegateconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHdelegateconnector{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHdelegateconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHdelegateconnector[${3:options%keyvals}]{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVdelegateconnector\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVdelegateconnector{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVdelegateconnector\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVdelegateconnector[${3:options%keyvals}]{${1:sub-component}}{${2:parent-component}}\"\n      }\n    },\n    {\n      \"name\": \"umlport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlport{${1:component-name}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"umlport\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlport[${3:options%keyvals}]{${1:component-name}}{${2:anchor}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlCNfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlCNfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlCNfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVHfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVHfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVHfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlHVfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlHVfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlHVfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHVfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHVfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHVfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlVHfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlVHfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlVHfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlfriend{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlfriend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"umlfriend[${3:options%keyvals}]{${1:source-class}}{${2:target-class}}\"\n      }\n    },\n    {\n      \"name\": \"umlassemblyconnectorsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlassemblyconnectorsymbol{${1:start-name}}{${2:end-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umlnode{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"umlsdnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlsdnode{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"umlsdnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"umlsdnode[${2:options%keyvals}]{${1:node}}\"\n      }\n    },\n    {\n      \"name\": \"umlstatetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umlstatetext{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"umlpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:package-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlpackage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:package-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlsystem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:system-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlsystem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:system-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlstate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:state-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlstate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:state-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlseqdiag\"\n    },\n    {\n      \"name\": \"umlcall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:source-object}}{${2:target-object}}\"\n      }\n    },\n    {\n      \"name\": \"umlcall\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:options%keyvals}]{${1:source-object}}{${2:target-object}}\"\n      }\n    },\n    {\n      \"name\": \"umlcallself\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"umlcallself\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"umlfragment\"\n    },\n    {\n      \"name\": \"umlfragment\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"umlcomponent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:component-name}}\"\n      }\n    },\n    {\n      \"name\": \"umlcomponent\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:component-name}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"pgffor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scoped\"\n    },\n    {\n      \"name\": \"scoped\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"scoped[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzoption{${1:key%plain}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"tikzparentanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchildanchor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzparentnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchildnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikz[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzdeclarecoordinatesystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzdeclarecoordinatesystem{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaliascoordinatesystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaliascoordinatesystem{${1:new name}}{${2:old name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzifinpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzifinpicture{${1:in code}}{${2:out code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaddtikzonlycommandshortcutlet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaddtikzonlycommandshortcutlet{${1:short cmd%cmd}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"tikzaddtikzonlycommandshortcutdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzaddtikzonlycommandshortcutdef{${1:short cmd%cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"nodepart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodepart{${1:part name}}\"\n      }\n    },\n    {\n      \"name\": \"nodepart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nodepart[${2:options%keyvals}]{${1:part name}}\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfextra{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfextra\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztostart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztotarget\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztonodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlastnode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzleveldistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzsiblingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikztreelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikznumberofchildren\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikznumberofcurrentchild\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzpictext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzpictextoptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usetikzlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetikzlibrary{${1:library list%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikzlibrary#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfplothandlercurveto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetplottension\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplottension{${1:tension}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlerclosedcurve\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxcomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerycomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamnext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotxzerolevelstreamconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotxzerolevelstreamconstant{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotyzerolevelstreamconstant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplotyzerolevelstreamconstant{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotbarwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplotbarshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerybar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerybarinterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerxbarinterval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlinetomarkright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerconstantlinetomarkmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerjumpmarkmid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerpolarcomb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfplothandlermark{${1:mark code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarkrepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarkrepeat{${1:repeat count}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarkphase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarkphase{${1:index}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlermarklisted\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfplothandlermarklisted{${1:code}}{${2:positions}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareplotmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclareplotmark{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetplotmarksize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetplotmarksize{${1:size%l}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplotmarksize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfuseplotmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfuseplotmark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfplothandlergaplineto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlergapcycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcurrentrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcurrentcolumn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixbeforeassemblenode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmatrixbeforeassemblenode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetmatrixrowsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmatrixrowsep{${1:sep list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetmatrixcolumnsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetmatrixcolumnsep{${1:sep list}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixcolumnsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfmatrix{${1:shape}}{${2:anchor}}{${3:name}}{${4:usage}}{${5:shift}}{${6:precode}}{${7:matrix cells}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixnextcell\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixnextcell\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfmatrixnextcell[${1:additional sep list}]\"\n      }\n    },\n    {\n      \"name\": \"pgfmatrixbegincode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixemptycode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmatrixendrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfmatrixendrow[${1:additional sep list}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"scope\"\n    },\n    {\n      \"name\": \"scope\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzpicture\"\n    },\n    {\n      \"name\": \"tikzpicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\",\n          \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetikzlibrary#c\": [\n      \"3d\",\n      \"angles\",\n      \"animations\",\n      \"arrows.meta\",\n      \"automata\",\n      \"babel\",\n      \"backgrounds\",\n      \"bayesnet\",\n      \"bbox\",\n      \"bending\",\n      \"braids\",\n      \"calc\",\n      \"calendar\",\n      \"calligraphy\",\n      \"cd\",\n      \"celtic\",\n      \"chains\",\n      \"circuits\",\n      \"circuits.ee\",\n      \"circuits.ee.IEC\",\n      \"circuits.ee.IEC.relay\",\n      \"circuits.logic\",\n      \"circuits.logic.CDH\",\n      \"circuits.logic.IEC\",\n      \"circuits.logic.US\",\n      \"circuits.plc.ladder\",\n      \"circuits.plc.sfc\",\n      \"colorbrewer\",\n      \"commutative-diagrams\",\n      \"curvilinear\",\n      \"datavisualization\",\n      \"datavisualization.3d\",\n      \"datavisualization.barcharts\",\n      \"datavisualization.formats.functions\",\n      \"datavisualization.polar\",\n      \"datavisualization.sparklines\",\n      \"decorations\",\n      \"decorations.footprints\",\n      \"decorations.fractals\",\n      \"decorations.markings\",\n      \"decorations.pathmorphing\",\n      \"decorations.pathreplacing\",\n      \"decorations.shapes\",\n      \"decorations.text\",\n      \"dubins\",\n      \"ducks\",\n      \"er\",\n      \"ext.calendar-plus\",\n      \"ext.misc\",\n      \"ext.node-families\",\n      \"ext.node-families.shapes.geometric\",\n      \"ext.paths.arcto\",\n      \"ext.paths.ortho\",\n      \"ext.paths.timer\",\n      \"ext.patterns.images\",\n      \"ext.positioning-plus\",\n      \"ext.scalepicture\",\n      \"ext.shapes.circlearrow\",\n      \"ext.shapes.circlecrosssplit\",\n      \"ext.shapes.heatmark\",\n      \"ext.shapes.rectangleroundedcorners\",\n      \"ext.shapes.superellipse\",\n      \"ext.shapes.uncenteredrectangle\",\n      \"ext.topaths.arcthrough\",\n      \"ext.transformations.mirror\",\n      \"external\",\n      \"fadings\",\n      \"fill.hexagon\",\n      \"fill.image\",\n      \"fill.rhombus\",\n      \"fit\",\n      \"fixedpointarithmetic\",\n      \"folding\",\n      \"fpu\",\n      \"graphdrawing\",\n      \"graphs\",\n      \"graphs.standard\",\n      \"hobby\",\n      \"intersections\",\n      \"karnaugh\",\n      \"knots\",\n      \"lindenmayersystems\",\n      \"math\",\n      \"matrix\",\n      \"matrix.skeleton\",\n      \"mindmap\",\n      \"nef\",\n      \"ocgx\",\n      \"optics\",\n      \"overlay-beamer-styles\",\n      \"patterns\",\n      \"patterns.images\",\n      \"patterns.meta\",\n      \"penrose\",\n      \"perspective\",\n      \"petri\",\n      \"plothandlers\",\n      \"plotmarks\",\n      \"positioning\",\n      \"profiler\",\n      \"quantikz\",\n      \"quotes\",\n      \"rdf\",\n      \"rulercompass\",\n      \"scopes\",\n      \"shadings\",\n      \"shadows\",\n      \"shadows.blur\",\n      \"shapes\",\n      \"shapes.arrows\",\n      \"shapes.callouts\",\n      \"shapes.gates.ee\",\n      \"shapes.gates.ee.IEC\",\n      \"shapes.gates.logic\",\n      \"shapes.gates.logic.IEC\",\n      \"shapes.gates.logic.US\",\n      \"shapes.geometric\",\n      \"shapes.misc\",\n      \"shapes.multipart\",\n      \"shapes.symbols\",\n      \"spath3\",\n      \"spy\",\n      \"svg.path\",\n      \"swigs\",\n      \"switching-architectures\",\n      \"through\",\n      \"tikzmark\",\n      \"topaths\",\n      \"tqft\",\n      \"trees\",\n      \"turtle\",\n      \"views\",\n      \"zx-calculus\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"every picture/.style={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c\": [\n      \"baseline\",\n      \"baseline=${1:<dimen> or <coord> or default}\",\n      \"execute at begin picture=${1:code}\",\n      \"execute at end picture=${1:code}\",\n      \"every scope/.style={${1:options}}\"\n    ],\n    \"\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"execute at begin scope=${1:code}\",\n      \"execute at end scope=${1:code}\",\n      \"transparency group\",\n      \"transparency group=${1:options}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every path/.style={${1:options}}\",\n      \"every circle/.style={${1:options}}\",\n      \"every to/.style={${1:options}}\",\n      \"every node/.style={${1:options}}\",\n      \"every lower node part/.style={${1:options}}\",\n      \"every label/.style={${1:options}}\",\n      \"every pin/.style={${1:options}}\",\n      \"every pin edge/.style={${1:options}}\",\n      \"every edge/.style={${1:options}}\",\n      \"every pic/.style={${1:options}}\",\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"every matrix/.style={${1:options}}\",\n      \"every outer matrix/.style={${1:options}}\",\n      \"every child/.style={${1:options}}\",\n      \"every child node/.style={${1:options}}\",\n      \"every plot/.style={${1:options}}\",\n      \"every mark/.style={${1:options}}\",\n      \"every loop/.style={${1:options}}\",\n      \"execute at begin to=${1:code}\",\n      \"execute at end to=${1:code}\",\n      \"execute at begin node=${1:code}\",\n      \"execute at end node=${1:code}\",\n      \"trim left\",\n      \"trim left=${1:<dimen> or <coord> or default}\",\n      \"trim right\",\n      \"trim right=${1:<dimen> or <coord> or default}\",\n      \"tri lowlevel\",\n      \"name prefix=${1:text}\",\n      \"name suffix=${1:text}\",\n      \"badness warnings for centered text\",\n      \"node halign header=${1:macro}\",\n      \"level/.style={${1:options}}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"level distance=\",\n      \"sibling distance=\",\n      \"edge from parent/.style={${1:options}}\",\n      \"variable=${1:macro}\",\n      \"samples=${1:number}\",\n      \"domain=${1:start}:${2:end}\",\n      \"samples at=${1:samples list}\",\n      \"parametric\",\n      \"range=${1:start}:${2:end}\",\n      \"yrange=${1:start}:${2:end}\",\n      \"xrange=${1:start}:${2:end}\",\n      \"id=${1:id}\",\n      \"prefix\",\n      \"raw gnuplot\",\n      \"mark=${1:mark}\",\n      \"mark repeat=${1:number}\",\n      \"mark phase=${1:number}\",\n      \"mark indices=${1:list}\",\n      \"mark size=\",\n      \"mark options={${1:options}}\",\n      \"no marks\",\n      \"no markers\",\n      \"sharp plot\",\n      \"smooth\",\n      \"tension=${1:value}\",\n      \"smooth cycle\",\n      \"const plot\",\n      \"const plot mark left\",\n      \"const plot mark right\",\n      \"const plot mark mid\",\n      \"jump mark left\",\n      \"jump mark right\",\n      \"jump mark mid\",\n      \"ycomb\",\n      \"xcomb\",\n      \"polar comb\",\n      \"ybar\",\n      \"xbar\",\n      \"ybar interval\",\n      \"xbar interval\",\n      \"only marks\",\n      \"blend mode=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"blend group=${1|normal,multiply,screen,overlay,darken,lighten,color dodge,color burn,hard light,soft light,difference,exclusion,hue,saturation,color,luminosity|}\",\n      \"matrix/inner style order={${1:list}}\",\n      \"bar width=\",\n      \"bar shift=\",\n      \"bar interval shift=${1:factor}\",\n      \"bar interval width=${1:scale}\",\n      \"gap around stream point=\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"remember picture\",\n      \"overlay\",\n      \"growth parent anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"growth function=${1:macro}\",\n      \"edge from parent path=${1:path}\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\"\n    ],\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"use as bounding box\",\n      \"clip\",\n      \"preaction={${1:options}}\",\n      \"postaction={${1:options}}\",\n      \"late options={${1:options}}\",\n      \"pic actions\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"matrix\",\n      \"shape=${1:shape}\",\n      \"circle\",\n      \"rectangle\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\": [\n      \"pic type=${1:type}\",\n      \"pics/code=${1:code}\",\n      \"pics/foreground code=${1:code}\",\n      \"pics/background code=${1:code}\",\n      \"pic text=${1:text}\",\n      \"pic text options={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\": [\n      \"column sep=\",\n      \"row sep=\",\n      \"every cell={${1:row}}{${2:column}}\",\n      \"cells={${1:options}}\",\n      \"nodes={${1:options}}\",\n      \"column ${1:n}/.style={${2:options}}\",\n      \"every odd column/.style={${1:options}}\",\n      \"every even column/.style={${1:options}}\",\n      \"row ${1:m}/.style={${2:options}}\",\n      \"every odd row/.style={${1:options}}\",\n      \"every even row/.style={${1:options}}\",\n      \"row ${1:m} column ${2:n}/.style={${3:options}}\",\n      \"execute at begin cell=${1:code}\",\n      \"execute at end cell=${1:code}\",\n      \"execute at empty cell=${1:code}\",\n      \"matrix anchor=${1:anchor}\",\n      \"ampersand replacement=${1:macro}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz2d-fr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefinirPoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefinirPoint{${1:noeud}}{${2:coordonnées}}\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoint\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"DefinirPoint{${1:noeud}}{${2:coordonnées}}<${3:label}>\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DefinirPoint[${3:clés%keyvals}]{${1:noeud}}{${2:coordonnées}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefinirPoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}<>\",\n        \"snippet\": \"DefinirPoint[${3:clés%keyvals}]{${1:noeud}}{${2:coordonnées}}<${4:label}>\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefinirPoint*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefinirPoint*{${1:noeud}}{${2:coordonnées}}\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoint*\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"DefinirPoint*{${1:noeud}}{${2:coordonnées}}<${3:label}>\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoint*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DefinirPoint*[${3:clés%keyvals}]{${1:noeud}}{${2:coordonnées}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefinirPoint*\",\n      \"arg\": {\n        \"format\": \"[]{}{}<>\",\n        \"snippet\": \"DefinirPoint*[${3:clés%keyvals}]{${1:noeud}}{${2:coordonnées}}<${4:label}>\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefinirPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefinirPoints{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefinirPoints[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefinirPoints*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefinirPoints*{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"DefinirPoints*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DefinirPoints*[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MarquerPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarquerPoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"MarquerPoint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MarquerPoint[${2:clés%keyvals}]{${1:point}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MarquerPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarquerPoints{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"MarquerPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MarquerPoints[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePoint{${1:formule}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePoint\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"ImagePoint{${1:formule}}<${2:label}>\"\n      }\n    },\n    {\n      \"name\": \"ImagePoint\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ImagePoint[${2:clés%keyvals}]{${1:formule}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePoint\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"ImagePoint[${2:clés%keyvals}]{${1:formule}}<${3:label}>\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePoint*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagePoint*{${1:formule}}\"\n      }\n    },\n    {\n      \"name\": \"ImagePoint*\",\n      \"arg\": {\n        \"format\": \"{}<>\",\n        \"snippet\": \"ImagePoint*{${1:formule}}<${2:label}>\"\n      }\n    },\n    {\n      \"name\": \"ImagePoint*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ImagePoint*[${2:clés%keyvals}]{${1:formule}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagePoint*\",\n      \"arg\": {\n        \"format\": \"[]{}<>\",\n        \"snippet\": \"ImagePoint*[${2:clés%keyvals}]{${1:formule}}<${3:label}>\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagesPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagesPoints{${1:formule1 § formule2 § ...}}\"\n      }\n    },\n    {\n      \"name\": \"ImagesPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ImagesPoints[${2:clés%keyvals}]{${1:formule1 § formule2 § ...}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ImagesPoints*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ImagesPoints*{${1:formule1 § formule2 § ...}}\"\n      }\n    },\n    {\n      \"name\": \"ImagesPoints*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ImagesPoints*[${2:clés%keyvals}]{${1:formule1 § formule2 § ...}}\",\n        \"keys\": [\n          \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TracerSegments\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TracerSegments{${1:ptA/ptB ptC/ptD ...}}\"\n      }\n    },\n    {\n      \"name\": \"TracerSegments<options TikZ>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TracerSegments<options TikZ>{${1:ptA/ptB ptC/ptD ...}}\"\n      }\n    },\n    {\n      \"name\": \"TracerSegments\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TracerSegments[${2:clés%keyvals}]{${1:ptA/ptB ptC/ptD ...}}\",\n        \"keys\": [\n          \"\\\\TracerSegments\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TracerSegments\",\n      \"arg\": {\n        \"format\": \"[]<>{}\",\n        \"snippet\": \"TracerSegments[${2:clés%keyvals}]<${3:options TikZ}>{${1:ptA/ptB ptC/ptD ...}}\",\n        \"keys\": [\n          \"\\\\TracerSegments\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\draw#c\": [\n      \"mainlevee\",\n      \"mainlevee=${1:segment len} et ${2:amplitude}\"\n    ],\n    \"\\\\DefinirPoint,\\\\DefinirPoint*,\\\\DefinirPoints,\\\\DefinirPoints*,\\\\MarquerPoint,\\\\MarquerPoints,\\\\ImagePoint,\\\\ImagePoint*,\\\\ImagesPoints,\\\\ImagesPoints*\": [\n      \"PosLabel=${1:position}\",\n      \"TaillePolice=${1:font commands}\",\n      \"DecalLabel=\",\n      \"StyleMarque=${1|x,o,+|}\",\n      \"Math\",\n      \"TailleMarque=\",\n      \"Couleur=\"\n    ],\n    \"\\\\TracerSegments\": [\n      \"Cap=${1:type}\",\n      \"Join=${1:type}\",\n      \"Couleurs=${1:liste de couleurs}\",\n      \"Cycle\",\n      \"Suite\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikz3d-fr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PlacePointEspace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PlacePointEspace{${1:nœud}}{${2:coordonnées}}\"\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"PlacePointEspace{${1:nœud}}{${2:coordonnées}}<${3:label}>\"\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PlacePointEspace[${3:clés%keyvals}]{${1:nœud}}{${2:coordonnées}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace\",\n      \"arg\": {\n        \"format\": \"[]{}{}<>\",\n        \"snippet\": \"PlacePointEspace[${3:clés%keyvals}]{${1:nœud}}{${2:coordonnées}}<${4:label}>\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PlacePointEspace*{${1:nœud}}{${2:coordonnées}}\"\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace*\",\n      \"arg\": {\n        \"format\": \"{}{}<>\",\n        \"snippet\": \"PlacePointEspace*{${1:nœud}}{${2:coordonnées}}<${3:label}>\"\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"PlacePointEspace*[${3:clés%keyvals}]{${1:nœud}}{${2:coordonnées}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlacePointEspace*\",\n      \"arg\": {\n        \"format\": \"[]{}{}<>\",\n        \"snippet\": \"PlacePointEspace*[${3:clés%keyvals}]{${1:nœud}}{${2:coordonnées}}<${4:label}>\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlacePointsEspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlacePointsEspace{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"PlacePointsEspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PlacePointsEspace[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlacePointsEspace*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlacePointsEspace*{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"PlacePointsEspace*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PlacePointsEspace*[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MarquePointEspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarquePointEspace{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"MarquePointEspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MarquePointEspace[${2:clés%keyvals}]{${1:point}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MarquePointsEspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MarquePointsEspace{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"MarquePointsEspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"MarquePointsEspace[${2:clés%keyvals}]{${1:liste}}\",\n        \"keys\": [\n          \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TraceSegmentEspace\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"TraceSegmentEspace(${1:point})(${2:point})\"\n      }\n    },\n    {\n      \"name\": \"TraceSegmentEspace\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"TraceSegmentEspace[${1:options TikZ}](${2:point})(${3:point})\"\n      }\n    },\n    {\n      \"name\": \"TraceSegmentsEspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TraceSegmentsEspace{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"TraceSegmentsEspace\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TraceSegmentsEspace[${2:options TikZ}]{${1:liste}}\"\n      }\n    },\n    {\n      \"name\": \"PaveTikzTriDim\"\n    },\n    {\n      \"name\": \"PaveTikzTriDim\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PaveTikzTriDim[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\PaveTikzTriDim\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PlaquePetitsCubes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PlaquePetitsCubes{${1:empilement}}\"\n      }\n    },\n    {\n      \"name\": \"PlaquePetitsCubes\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"PlaquePetitsCubes{${1:empilement}}[${2:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"PlaquePetitsCubes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PlaquePetitsCubes[${2:color}]{${1:empilement}}\"\n      }\n    },\n    {\n      \"name\": \"PlaquePetitsCubes\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"PlaquePetitsCubes[${2:color}]{${1:empilement}}[${3:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"PlaqueVide\"\n    },\n    {\n      \"name\": \"PlaqueVide\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"PlaqueVide[${1:nb}]\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlocPetitsCubes{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"BlocPetitsCubes{${1:grille des hauteurs}}[${2:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BlocPetitsCubes[${2:color}]{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"BlocPetitsCubes[${2:color}]{${1:grille des hauteurs}}[${3:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BlocPetitsCubes*{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes*\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"BlocPetitsCubes*{${1:grille des hauteurs}}[${2:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BlocPetitsCubes*[${2:color}]{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"BlocPetitsCubes*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"BlocPetitsCubes*[${2:color}]{${1:grille des hauteurs}}[${3:épaisseur}]\"\n      }\n    },\n    {\n      \"name\": \"PetitCube\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PetitCube{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"PetitCube\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PetitCube[${2:color}]{${1:grille des hauteurs}}\"\n      }\n    },\n    {\n      \"name\": \"PetitCube\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"PetitCube[${2:color}][${3:épaisseur}]{${1:grille des hauteurs}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"EnvTikzEspace\"\n    },\n    {\n      \"name\": \"EnvTikzEspace\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{EnvTikzEspace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvTikzEspace\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{EnvTikzEspace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EnvTikzEspace\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\begin{EnvTikzEspace}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EmpilementCubes\"\n    },\n    {\n      \"name\": \"EmpilementCubes\",\n      \"arg\": {\n        \"format\": \"<>\",\n        \"snippet\": \"<${1:options TikZ}>\"\n      }\n    },\n    {\n      \"name\": \"EmpilementCubes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:échelle}]\"\n      }\n    },\n    {\n      \"name\": \"EmpilementCubes\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"[${1:échelle}]<${2:options TikZ}>\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{EnvTikzEspace}\": [\n      \"UniteX={${1:angle}:${2:longueur}}\",\n      \"UniteY={${1:angle}:${2:longueur}}\",\n      \"UniteZ={${1:angle}:${2:longueur}}\",\n      \"VueClassique\"\n    ],\n    \"\\\\PlacePointEspace,\\\\PlacePointEspace*,\\\\PlacePointsEspace,\\\\PlacePointsEspace*,\\\\MarquePointEspace,\\\\MarquePointsEspace\": [\n      \"PosLabel=${1:pos}\",\n      \"StyleMarque=${1|x,o|}\",\n      \"TailleMarque=\",\n      \"Couleur=\"\n    ],\n    \"\\\\PaveTikzTriDim\": [\n      \"Largeur=${1:nombre}\",\n      \"Profondeur=${1:nombre}\",\n      \"Hauteur=${1:nombre}\",\n      \"Sommets=${1:liste}\",\n      \"Math\",\n      \"Epaisseur=${1:épaisseur}\",\n      \"AffLabel\",\n      \"Plein\",\n      \"Cube\",\n      \"Couleur=\",\n      \"CouleurSommets=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzPackets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"pbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"packetsInit\"\n    },\n    {\n      \"name\": \"packetsPrintBitScale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packetsPrintBitScale{${1:last bit value}}\"\n      }\n    },\n    {\n      \"name\": \"packetsBitFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"packetsPrintBitNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"packetsPutField\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"packetsPutField{${1:num of bits}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"packetsPutField\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"packetsPutField[${3:TikZ keys%keyvals}]{${1:num of bits}}{${2:display name}}\",\n        \"keys\": [\n          \"\\\\packetsPutField#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"packetsPutField\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"packetsPutField{${1:num of bits}}[${3:node name}]{${2:display name}}\"\n      }\n    },\n    {\n      \"name\": \"packetsPutField\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"packetsPutField[${3:TikZ keys%keyvals}]{${1:num of bits}}[${4:node name}]{${2:display name}}\",\n        \"keys\": [\n          \"\\\\packetsPutField#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"packetsPrintRangeOnLeft\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"packetsPrintRangeOnLeft{${1:first bit}}{${2:last bit}}\"\n      }\n    },\n    {\n      \"name\": \"packetsPrintRangeOnLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"packetsPrintRangeOnLeft[${3:node name}]{${1:first bit}}{${2:last bit}}\"\n      }\n    },\n    {\n      \"name\": \"packetsPrintRangeOnRight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"packetsPrintRangeOnRight{${1:first bit}}{${2:last bit}}\"\n      }\n    },\n    {\n      \"name\": \"packetsPrintRangeOnRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"packetsPrintRangeOnRight[${3:node name}]{${1:first bit}}{${2:last bit}}\"\n      }\n    },\n    {\n      \"name\": \"packetsNextLine\"\n    },\n    {\n      \"name\": \"packetsEndLine\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"packetsEndLine{${1:first bit}}{${2:last bit}}\"\n      }\n    },\n    {\n      \"name\": \"packetsLastNode\"\n    },\n    {\n      \"name\": \"packetsFirstNodeInLastLine\"\n    },\n    {\n      \"name\": \"packetsBitWidth\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\packetsPutField#c\": [\n      \"x=${1:<dimen> or <coord>}\",\n      \"y=${1:<dimen> or <coord>}\",\n      \"z=${1:<dimen> or <coord>}\",\n      \"name=${1:name}\",\n      \"append after command=${1:path}\",\n      \"prefix after command=${1:path}\",\n      \"rounded corners\",\n      \"rounded corners=\",\n      \"sharp corners\",\n      \"x radius=${1:<num> or <dimen>}\",\n      \"y radius=${1:<num> or <dimen>}\",\n      \"radius=\",\n      \"at=${1:coord}\",\n      \"start angle=${1:degrees}\",\n      \"end angle=${1:degrees}\",\n      \"delta angle=${1:degrees}\",\n      \"step=${1:<num> or <dimen> or <coord>}\",\n      \"xstep=${1:<num> or <dimen>}\",\n      \"ystep=${1:<num> or <dimen>}\",\n      \"help lines\",\n      \"bend=${1:coord}\",\n      \"bend pos=${1:fraction}\",\n      \"parabola height=\",\n      \"bend at start\",\n      \"bend at end\",\n      \"to path=${1:path}\",\n      \"save path=${1:macro}\",\n      \"use path=${1:macro}\",\n      \"color=\",\n      \"%color\",\n      \"draw\",\n      \"draw=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"dash expand off\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"double\",\n      \"double=\",\n      \"double distance=\",\n      \"double distance between line centers=\",\n      \"double equal sign distance\",\n      \"fill\",\n      \"fill=\",\n      \"pattern\",\n      \"pattern=${1:name}\",\n      \"pattern color=\",\n      \"nonzero rule\",\n      \"even odd rule\",\n      \"shade\",\n      \"shading=${1|axis,radial,ball|}\",\n      \"shading angle=${1:degrees}\",\n      \"arrows=${1:start spec}-${2:end spec}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"tips\",\n      \"tips=${1|true,proper,on draw,on proper draw,never,false|}\",\n      \">=${1:end arrow spec}\",\n      \"shorten <=\",\n      \"shorten >=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=${1:<dimen> or auto}\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=${1:aspect ratio}\",\n      \"shape border uses incircle\",\n      \"shape border rotate=${1:degrees}\",\n      \"text=\",\n      \"node font=${1:font commands}\",\n      \"font=${1:font commands}\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above\",\n      \"above=\",\n      \"below\",\n      \"below=\",\n      \"right\",\n      \"right=\",\n      \"left\",\n      \"left=\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"transform shape\",\n      \"transform shape nonlinear\",\n      \"pos=${1:fraction}\",\n      \"auto\",\n      \"auto=${1|left,right,false|}\",\n      \"swap\",\n      \"sloped\",\n      \"allow upside down\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"label=[${1:options}]${2:angle}:${3:text}\",\n      \"label position=${1:degrees}\",\n      \"absolute\",\n      \"label distance=\",\n      \"pin=${1:angle}:${2:text}\",\n      \"pin=[${1:options}]${2:angle}:${3:text}\",\n      \"pin distance=\",\n      \"pin edge={${1:options}}\",\n      \"remember picture\",\n      \"overlay\",\n      \"draw opacity=${1:value}\",\n      \"opacity=${1:value}\",\n      \"transparent\",\n      \"ultra nearly transparent\",\n      \"very nearly transparent\",\n      \"nearly transparent\",\n      \"semitransparent\",\n      \"nearly opaque\",\n      \"very nearly opaque\",\n      \"ultra nearly opaque\",\n      \"opaque\",\n      \"fill opacity=${1:value}\",\n      \"text opacity=${1:value}\",\n      \"shift={${1:coordinate}}\",\n      \"shift only\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degrees}\",\n      \"rotate around={${1:degree}:${2:coordinate}}\",\n      \"rotate around x=${1:degrees}\",\n      \"rotate around y=${1:degrees}\",\n      \"rotate around z=${1:degrees}\",\n      \"cm={${1:a,b,c,d,coord}}\",\n      \"reset cm\",\n      \"transform canvas={${1:options}}\",\n      \"out=${1:degrees}\",\n      \"in=${1:degrees}\",\n      \"relative\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"bend angle=${1:degrees}\",\n      \"looseness=${1:number}\",\n      \"out looseness=${1:number}\",\n      \"in looseness=${1:number}\",\n      \"min distance=\",\n      \"max distance=\",\n      \"out min distance=\",\n      \"out max distance=\",\n      \"in min distance=\",\n      \"in max distance=\",\n      \"distance=\",\n      \"out distance=\",\n      \"in distance=\",\n      \"out control=${1:coord}\",\n      \"in control=${1:coord}\",\n      \"controls=${1:coord1} and ${2:coord2}\",\n      \"%tikzstyle\",\n      \"protocolsField\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzbricks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz-3dplot\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"brick\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"brick{${1:length%plain}}{${2:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"brick\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"brick[${3:options%keyvals}]{${1:length%plain}}{${2:width%plain}}\",\n        \"keys\": [\n          \"\\\\brick#c,\\\\usepackage/tikzbricks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wallbrick\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wallbrick{${1:length%plain}}{${2:width%plain}}\"\n      }\n    },\n    {\n      \"name\": \"wallbrick\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wallbrick[${3:options%keyvals}]{${1:length%plain}}{${2:width%plain}}\",\n        \"keys\": [\n          \"\\\\wallbrick#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newrow\"\n    },\n    {\n      \"name\": \"thebrickx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebricky\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thebrickz\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"wall\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\brick#c,\\\\usepackage/tikzbricks#c\": [\n      \"color=\",\n      \"frontcolor=\",\n      \"topcolor=\",\n      \"sidecolor=\",\n      \"studcolor=\",\n      \"brickheight=${1:number}\",\n      \"bricklength=${1:number}\",\n      \"brickwidth=${1:number}\",\n      \"studradius=${1:number}\",\n      \"studheight=${1:number}\",\n      \"studtext={${1:text}}\"\n    ],\n    \"\\\\wallbrick#c\": [\n      \"color=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\brick#c,\\\\usepackage/tikzbricks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzcodeblocks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"fontawesome\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarytrees\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"translations\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setcolor{${1:name%specialDef}}{${2:hex color code}}\"\n      }\n    },\n    {\n      \"name\": \"dropdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dropdown{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"intbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"intbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"intbox[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stringbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stringbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"stringbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stringbox[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boolbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"boolbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boolbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"boolbox[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bild\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bild{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"bild\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bild[${2:scale}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"emptyled\"\n    },\n    {\n      \"name\": \"fullled\"\n    },\n    {\n      \"name\": \"X\"\n    },\n    {\n      \"name\": \"0\"\n    },\n    {\n      \"name\": \"wenndann\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wenndann{${1:text}}{${2:then node code}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"wenndann\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"wenndann[${4:options%keyvals}]{${1:text}}{${2:then node code}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"wenndannsonst\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"wenndannsonst{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"wenndannsonst\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"wenndannsonst[${5:options%keyvals}]{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"schleife\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"schleife{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"schleife\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"schleife[${5:options%keyvals}]{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenblocks\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifthenblocks{${1:text}}{${2:then node code}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenblocks\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"ifthenblocks[${4:options%keyvals}]{${1:text}}{${2:then node code}}{${3:node name}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelseblocks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifthenelseblocks{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"ifthenelseblocks\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"ifthenelseblocks[${5:options%keyvals}]{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"loopblocks\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"loopblocks{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"loopblocks\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"loopblocks[${5:options%keyvals}]{${1:text}}{${2:then node code}}{${3:else node code}}{${4:node name}}\"\n      }\n    },\n    {\n      \"name\": \"einruecken\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"einruecken{${1:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"moveindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"moveindent{${1:nodes}}\"\n      }\n    },\n    {\n      \"name\": \"usb\"\n    },\n    {\n      \"name\": \"farbe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"farbe{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"setupquotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"myshift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockhspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockhspaceoben\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockhspaceunten\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"blockvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dreieckseite\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikzcodeblocks#c\": [\n      \"print\"\n    ],\n    \"\\\\begin{tikzpicture}#c\": [\n      \"codeblocks\",\n      \"openroberta\",\n      \"eckig\",\n      \"nocolor\",\n      \"umgebung\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\node#c,\\\\intbox#c,\\\\stringbox#c,\\\\boolbox#c,\\\\wenndann#c,\\\\wenndannsonst#c,\\\\schleife#c,\\\\ifthenblocks#c,\\\\ifthenelseblocks#c,\\\\loopblocks#c\": [\n      \"grundlage\",\n      \"eingabe\",\n      \"schleife\",\n      \"logik\",\n      \"musik\",\n      \"led\",\n      \"platzhalter\",\n      \"mathe\",\n      \"funk\",\n      \"motor\",\n      \"zeichenkette\",\n      \"spiel\",\n      \"bild\",\n      \"pins\",\n      \"konsole\",\n      \"steuerung\",\n      \"bluetooth\",\n      \"start\",\n      \"aktion\",\n      \"sensor\",\n      \"kontrolle\",\n      \"liste\",\n      \"farbe\",\n      \"bild\",\n      \"variablen\",\n      \"funktion\",\n      \"nachricht\",\n      \"unter={${1:node}}{${2:x-factor}}{${3:y-factor}}\",\n      \"under={${1:node}}{${2:x-factor}}{${3:y-factor}}\",\n      \"robertashape\",\n      \"puzzleteil\",\n      \"keinezacken\",\n      \"pinlow\",\n      \"pinhigh\",\n      \"nopins\",\n      \"square\",\n      \"puzzlepiece\",\n      \"boden\",\n      \"floor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikzcodeblocks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzdotncross.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryintersections\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"showcoordstrue\"\n    },\n    {\n      \"name\": \"showcoordsfalse\"\n    },\n    {\n      \"name\": \"ncoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"ncoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"pincoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"pincoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"dotcoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"dotcoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"dotpincoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"dotpincoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"odotcoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"odotcoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"odotpincoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"odotpincoord(${1:coord})\"\n      }\n    },\n    {\n      \"name\": \"pathcross\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pathcross{${1:coordA}}{${2:coordB}}{${3:path-name}}\"\n      }\n    },\n    {\n      \"name\": \"pathcross\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pathcross{${1:coordA}}{${2:coordB}}{${3:path-name}}[${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"pathcross\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pathcross[${4:cross-name}]{${1:coordA}}{${2:coordB}}{${3:path-name}}\"\n      }\n    },\n    {\n      \"name\": \"pathcross\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pathcross[${4:cross-name}]{${1:coordA}}{${2:coordB}}{${3:path-name}}[${5:width}]\"\n      }\n    },\n    {\n      \"name\": \"pathcross*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pathcross*{${1:coordA}}{${2:coordB}}{${3:path-name}}\"\n      }\n    },\n    {\n      \"name\": \"pathcross*\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"pathcross*{${1:coordA}}{${2:coordB}}{${3:path-name}}[${4:width}]\"\n      }\n    },\n    {\n      \"name\": \"pathcross*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pathcross*[${4:cross-name}]{${1:coordA}}{${2:coordB}}{${3:path-name}}\"\n      }\n    },\n    {\n      \"name\": \"pathcross*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"pathcross*[${4:cross-name}]{${1:coordA}}{${2:coordB}}{${3:path-name}}[${5:width}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzducks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"duck\"\n    },\n    {\n      \"name\": \"duck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"duck[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\duck#c\",\n          \"\\\\duck#c,\\\\randuck#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"picduck\"\n    },\n    {\n      \"name\": \"randuck\"\n    },\n    {\n      \"name\": \"randuck\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"randuck[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\duck#c,\\\\randuck#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"randomhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomaccessories\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shuffleducks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathgrumpybill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathbill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathtshirt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathjacket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathcape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathshorthair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathlonghair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathcrazyhair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathrecedinghair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathcrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathmohican\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathmullet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathqueencrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathkingcrown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathdarthvader\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckpathhorsetail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookclothing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookhair\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookhat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duckhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stripes\"\n    },\n    {\n      \"name\": \"stripes\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stripes[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\stripes\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\duck#c\": [\n      \"body=\",\n      \"head=\",\n      \"bill=\",\n      \"eye=\",\n      \"grumpy\",\n      \"laughing\",\n      \"parrot\",\n      \"longhair\",\n      \"longhair=\",\n      \"shorthair\",\n      \"shorthair=\",\n      \"parting\",\n      \"parting=\",\n      \"crazyhair\",\n      \"crazyhair=\",\n      \"recedinghair\",\n      \"recedinghair=\",\n      \"mohican\",\n      \"mohican=\",\n      \"mullet\",\n      \"mullet=\",\n      \"eyebrow\",\n      \"eyebrow=\",\n      \"beard\",\n      \"beard=\",\n      \"tshirt=\",\n      \"jacket=\",\n      \"tie\",\n      \"tie=\",\n      \"bowtie\",\n      \"bowtie=\",\n      \"aodai\",\n      \"aodai=\",\n      \"cape\",\n      \"cape=\",\n      \"water\",\n      \"water=\",\n      \"alien\",\n      \"alien=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"cap\",\n      \"cap=\",\n      \"conicalhat\",\n      \"conicalhat=\",\n      \"santa\",\n      \"santa=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"beret\",\n      \"beret=\",\n      \"peakedcap\",\n      \"peakedcap=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"sailor\",\n      \"sailor=\",\n      \"bobblehat\",\n      \"bobblehat=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"helmet\",\n      \"helmet=\",\n      \"viking\",\n      \"viking=\",\n      \"devil\",\n      \"devil=\",\n      \"unicorn\",\n      \"unicorn=\",\n      \"bunny\",\n      \"bunny=\",\n      \"inear=\",\n      \"sheep\",\n      \"horsetail\",\n      \"horsetail=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"magicwand\",\n      \"glasses\",\n      \"glasses=\",\n      \"squareglasses\",\n      \"squareglasses=\",\n      \"sunglasses\",\n      \"sunglasses=\",\n      \"mask\",\n      \"mask=\",\n      \"signpost\",\n      \"signpost=\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech=\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think=\",\n      \"buttons\",\n      \"buttons=\",\n      \"lapel\",\n      \"lapel=\",\n      \"book\",\n      \"book=\",\n      \"bookcolour=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"darthvader\",\n      \"darthvader=\",\n      \"torch\",\n      \"torch=\",\n      \"prison\",\n      \"prison=\",\n      \"crozier\",\n      \"crozier=\",\n      \"necklace\",\n      \"necklace=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"chef\",\n      \"chef=\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"cake\",\n      \"cake=\",\n      \"pizza\",\n      \"baguette\",\n      \"baguette=\",\n      \"cheese\",\n      \"cheese=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cocktail\",\n      \"wing\",\n      \"wing=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"stethoscope\",\n      \"stethoscope=\",\n      \"neckerchief\",\n      \"neckerchief=\",\n      \"scarf\",\n      \"scarf=\",\n      \"woggle\",\n      \"woggle=\",\n      \"snowduck\",\n      \"snowduck=\",\n      \"vampire\",\n      \"vampire=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"overleaf\",\n      \"name=${1:name}\",\n      \"stripes\",\n      \"stripes={${1:code}}\",\n      \"banana\",\n      \"banana=\",\n      \"stick\",\n      \"stick=\",\n      \"leaf\",\n      \"leaf=\"\n    ],\n    \"\\\\duck#c,\\\\randuck#c\": [\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ],\n    \"\\\\stripes\": [\n      \"color=\",\n      \"distance=${1:number}\",\n      \"width=${1:number}\",\n      \"height=${1:number}\",\n      \"initialx=${1:number}\",\n      \"initialy=${1:number}\",\n      \"rotate=${1:degrees}\",\n      \"emblem=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzexternal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzexternalize\"\n    },\n    {\n      \"name\": \"tikzexternalize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikzexternalize[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"tikzsetnextfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetnextfilename{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsetexternalprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetexternalprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsetfigurename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetfigurename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzappendtofigurename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzappendtofigurename{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikz[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"tikzset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"beginpgfgraphicnamed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beginpgfgraphicnamed{${1:file name prefix}}\"\n      }\n    },\n    {\n      \"name\": \"endpgfgraphicnamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzifinpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzifinpicture{${1:in code}}{${2:out code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfincludeexternalgraphics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfincludeexternalgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfexternalreaddpth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfexternalreaddpth{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfretval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikzpicture\"\n    },\n    {\n      \"name\": \"tikzpicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzfill.hexagon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.hexagon\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzfill.image.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.image\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzfill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.image\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.hexagon\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.rhombus\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzfill.rhombus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryfill.rhombus\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzinclude.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includetikzgraphics\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includetikzgraphics{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includetikzgraphics\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includetikzgraphics[${2:name}]{${1:imagefile}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzinput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"standalone\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\tikzinput,\\\\ctikzinput\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctikzinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctikzinput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ctikzinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ctikzinput[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\tikzinput,\\\\ctikzinput\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikzinput#c\": [\n      \"image\"\n    ],\n    \"\\\\tikzinput,\\\\ctikzinput\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikzinput#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzlibrary3d.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"plane origin=${1:point}\",\n      \"plane x=${1:point}\",\n      \"plane y=${1:point}\",\n      \"canvas is plane\",\n      \"canvas is xy plane at z=\",\n      \"canvas is yx plane at z=\",\n      \"canvas is xz plane at y=\",\n      \"canvas is zx plane at y=\",\n      \"canvas is yz plane at x=\",\n      \"canvas is zy plane at x=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryangles.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"angle radius=\",\n      \"angle eccentricity=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryanimations.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfanimateattribute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfanimateattribute{${1:attribute%keyvals}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfanimateattributecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfanimateattributecode{${1:attribute%keyvals}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfparsetime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfparsetime{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsnapshot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsnapshot{${1:time}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsnapshotafter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsnapshotafter{${1:time}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"animate={${1:animation specification}}\",\n      \"make snapshot of=${1:time}\",\n      \"make snapshot after=${1:time}\",\n      \"make snapshot if necessary\",\n      \"make snapshot if necessary=${1:time}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryautomata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"state without output\",\n      \"state with output\",\n      \"state\",\n      \"initial\",\n      \"initial by arrow\",\n      \"initial above\",\n      \"initial below\",\n      \"initial left\",\n      \"initial right\",\n      \"initial by diamond\",\n      \"accepting\",\n      \"accepting by double\",\n      \"accepting by arrow\",\n      \"accepting above\",\n      \"accepting below\",\n      \"accepting left\",\n      \"accepting right\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"initial text=${1:text}\",\n      \"initial where=${1|above,below,left,right|}\",\n      \"initial distance=\",\n      \"accepting text=${1:text}\",\n      \"accepting where=${1|above,below,left,right|}\",\n      \"accepting distance=\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every state/.style={${1:options}}\",\n      \"every initial by arrow/.style={${1:options}}\",\n      \"every accepting by arrow/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybabel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"handle active characters in code\",\n      \"handle active characters in nodes\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybackgrounds.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"on background layer={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every on background layer/.style={${1:options}}\",\n      \"inner frame xsep=\",\n      \"inner frame ysep=\",\n      \"inner frame sep=\",\n      \"tight background\",\n      \"loose background\",\n      \"background rectangle/.style={${1:options}}\",\n      \"background grid/.style={${1:options}}\",\n      \"outer frame xsep=\",\n      \"outer frame ysep=\",\n      \"outer frame sep=\",\n      \"background top/.style={${1:options}}\",\n      \"background bottom/.style={${1:options}}\",\n      \"background left/.style={${1:options}}\",\n      \"background right/.style={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c\": [\n      \"show background rectangle\",\n      \"framed\",\n      \"show background grid\",\n      \"gridded\",\n      \"show background top\",\n      \"show background bottom\",\n      \"show background left\",\n      \"show background right\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybayesnet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarychains\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"factor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"factor{${1:name}}{${2:caption%text}}{${3:inputs}}{${4:outputs}}\"\n      }\n    },\n    {\n      \"name\": \"factor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"factor[${5:TikZ keys}]{${1:name}}{${2:caption%text}}{${3:inputs}}{${4:outputs}}\"\n      }\n    },\n    {\n      \"name\": \"plate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plate{${1:name}}{${2:fitlist}}{${3:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"plate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"plate[${4:TikZ keys}]{${1:name}}{${2:fitlist}}{${3:caption%text}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gate{${1:name}}{${2:fitlist}}{${3:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"gate[${4:TikZ keys}]{${1:name}}{${2:fitlist}}{${3:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"vgate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vgate{${1:name}}{${2:fitlist-left}}{${3:caption-left%text}}{${4:fitlist-right}}{${5:caption-right%text}}{${6:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"vgate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"vgate[${7:TikZ keys}]{${1:name}}{${2:fitlist-left}}{${3:caption-left%text}}{${4:fitlist-right}}{${5:caption-right%text}}{${6:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"hgate\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"hgate{${1:name}}{${2:fitlist-top}}{${3:caption-top%text}}{${4:fitlist-bottom}}{${5:caption-bottom%text}}{${6:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"hgate\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"hgate[${7:TikZ keys}]{${1:name}}{${2:fitlist-top}}{${3:caption-top%text}}{${4:fitlist-bottom}}{${5:caption-bottom%text}}{${6:inputs}}\"\n      }\n    },\n    {\n      \"name\": \"edge\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"edge{${1:inputs}}{${2:outputs}}\"\n      }\n    },\n    {\n      \"name\": \"edge\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"edge[${3:TikZ keys}]{${1:inputs}}{${2:outputs}}\"\n      }\n    },\n    {\n      \"name\": \"factoredge\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"factoredge{${1:inputs}}{${2:factors}}{${3:outputs}}\"\n      }\n    },\n    {\n      \"name\": \"factoredge\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"factoredge[${4:TikZ keys}]{${1:inputs}}{${2:factors}}{${3:outputs}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"latent\",\n      \"obs\",\n      \"det\",\n      \"const\",\n      \"factor\",\n      \"plate\",\n      \"gate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryfpu\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"bezier bounding box\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybending.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycurvilinear\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarybraids.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pic#c\": [\n      \"braid/add floor={${1:x,y,width,height,name}}\",\n      \"braid/crossing convention=${1|over,under|}\",\n      \"braid/flip crossing convention\",\n      \"braid/set symbols=${1|over,under|}\",\n      \"braid/flip symbols\",\n      \"braid/number of strands=${1:integer}\",\n      \"braid/height=\",\n      \"braid/crossing height=\",\n      \"braid/width=\",\n      \"braid/border height=\",\n      \"braid/gap=${1:number 0-0.5}\",\n      \"braid/control factor=${1:factor}\",\n      \"braid/nudge factor=${1:factor}\",\n      \"braid/every strand/.style={${1:options}}\",\n      \"braid/strand ${1:⟨n⟩}/.style={${2:options}}\",\n      \"braid/every floor/.style={${1:options}}\",\n      \"braid/floor ${1:⟨n⟩}/.style={${2:options}}\",\n      \"braid/anchor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycalendar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfcalendar\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzdaycode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzdaytext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzmonthcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzmonthtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzyearcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzyeartext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\calendar#c\": [\n      \"dates=${1:start} to ${2:end}\",\n      \"day xshift=\",\n      \"day yshift=\",\n      \"month xshift=\",\n      \"month yshift=\",\n      \"day code={${1:code}}\",\n      \"day text=${1:text}\",\n      \"month code={${1:code}}\",\n      \"month text=${1:text}\",\n      \"year code={${1:code}}\",\n      \"year text=${1:text}\",\n      \"if=(${1:conditions}) ${2:〈code or options〉}\",\n      \"if=(${1:conditions}) ${2:〈code or options〉} else ${3:〈else code or options〉}\",\n      \"execute before day scope={${1:code}}\",\n      \"execute at begin day scope={${1:code}}\",\n      \"execute at end day scope={${1:code}}\",\n      \"execute after day scope={${1:code}}\",\n      \"day list downward\",\n      \"day list upward\",\n      \"day list right\",\n      \"day list left\",\n      \"week list\",\n      \"month list\",\n      \"month label left\",\n      \"month label left vertical\",\n      \"month label right\",\n      \"month label right vertical\",\n      \"month label above left\",\n      \"month label above centered\",\n      \"month label above right\",\n      \"month label below left\",\n      \"month label below centered\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"every calendar/.style={${1:options}}\",\n      \"every month/.style={${1:options}}\",\n      \"every year/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycalligraphy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"spath3\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\calligraphy#c,\\\\pen#c,\\\\definepen#c\": [\n      \"pen colour=\",\n      \"nib style={${1:index}}{${2:options}}\",\n      \"stroke style={${1:index}}{${2:options}}\",\n      \"this stroke style=\",\n      \"taper=${1|none,both,start,end|}\",\n      \"weight=${1|heavy,light|}\",\n      \"heavy\",\n      \"light\",\n      \"heavy line width=\",\n      \"light line width=\",\n      \"taper line width=\",\n      \"line width=\"\n    ],\n    \"\\\\calligraphy#c\": [\n      \"copperplate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryarrows.meta\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrow[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"arrow[${3:options}]{${1:direction}}{${2:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"arrow[${3:options}]{${1:direction}}[${4:label options}]{${2:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"uar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"urar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"urar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dlar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dlar[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dlar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dlar[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ular[${1:options}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ular[${2:options}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcdset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzcdset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzcdset#c,\\\\begin{tikzcd}#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzcdmatrixname\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikzcd\"\n    },\n    {\n      \"name\": \"tikzcd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tikzcdset#c,\\\\begin{tikzcd}#c\",\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\": [\n      \"to head\",\n      \"rightarrow\",\n      \"leftarrow\",\n      \"leftrightarrow\",\n      \"Rightarrow\",\n      \"Leftarrow\",\n      \"Leftrightarrow\",\n      \"maps to\",\n      \"mapsto\",\n      \"mapsfrom\",\n      \"Mapsto\",\n      \"Mapsfrom\",\n      \"hook\",\n      \"hook'\",\n      \"hookrightarrow\",\n      \"hookleftarrow\",\n      \"dashed\",\n      \"dashrightarrow\",\n      \"dashleftarrow\",\n      \"tail\",\n      \"rightarrowtail\",\n      \"leftarrowtail\",\n      \"squiggly\",\n      \"rightsquigarrow\",\n      \"leftsquigarrow\",\n      \"leftrightsquigarrow\",\n      \"two heads\",\n      \"twoheadrightarrow\",\n      \"twoheadleftarrow\",\n      \"no head\",\n      \"no tail\",\n      \"dash\",\n      \"equal\",\n      \"harpoon\",\n      \"harpoon'\",\n      \"rightharpoonup\",\n      \"rightharpoondown\",\n      \"leftharpoonup\",\n      \"leftharpoondown\",\n      \"from=\",\n      \"to=\",\n      \"phantom\",\n      \"shift left=\",\n      \"shift right=\",\n      \"shift={${1:coordinate}}\",\n      \"xshift=\",\n      \"yshift=\",\n      \"start anchor=${1:anchor}\",\n      \"start anchor={[${1:coord transforms}]${2:anchor}}\",\n      \"end anchor=${1:anchor}\",\n      \"end anchor={[${1:coord transforms}]${2:anchor}}\",\n      \"bend left\",\n      \"bend left=${1:degrees}\",\n      \"bend right\",\n      \"bend right=${1:degrees}\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"above\",\n      \"below\",\n      \"left\",\n      \"right\",\n      \"swap\",\n      \"to path={${1:path spec}}\"\n    ],\n    \"\\\\tikzcdset#c,\\\\begin{tikzcd}#c\": [\n      \"every diagram\",\n      \"diagrams={${1:options}}\",\n      \"every matrix\",\n      \"every cell\",\n      \"cells={${1:options}}\",\n      \"row sep=\",\n      \"column sep=\",\n      \"sep=\",\n      \"cramped\",\n      \"math mode\",\n      \"background color=\",\n      \"every arrow\",\n      \"arrows={${1:options}}\",\n      \"arrow style=${1|Latin Modern,math font,tikz|}\",\n      \"every label\",\n      \"labels={${1:options}}\",\n      \"center yshift=\",\n      \"ampersand replacement=${1:macro}\"\n    ],\n    \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c,\\\\tikzcdset#c,\\\\begin{tikzcd}#c\": [\n      \"shorten=\",\n      \"crossing over\",\n      \"crossing over clearance=\",\n      \"marking\",\n      \"description\",\n      \"%color\",\n      \"color=\",\n      \"in=${1:degrees}\",\n      \"out=${1:degrees}\",\n      \"font=${1:font commands}\",\n      \"line width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryceltic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CelticDrawPath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CelticDrawPath{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\CelticDrawPath#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\CelticDrawPath#c\": [\n      \"max steps=${1:integer}\",\n      \"flip\",\n      \"width=\",\n      \"height=\",\n      \"size={${1:width,height}}\",\n      \"crossings={${1:x,y,type; ...}}\",\n      \"symmetric crossings={${1:x,y,type; ...}}\",\n      \"ignore crossings={${1:x,y,type; ...}}\",\n      \"ignore symmetric crossings={${1:x,y,type; ...}}\",\n      \"style={${1:TikZ keys}}\",\n      \"at=${1:coordinate}\",\n      \"inner clip=${1:integer}\",\n      \"outer clip=${1:integer}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"celtic surround/.style={${1:TikZ keys}}\",\n      \"celtic bar/.style={${1:TikZ keys}}\",\n      \"celtic path/.style={${1:TikZ keys}}\",\n      \"celtic path ${1:⟨n⟩}/.style={${2:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarychains.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzchaincount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchaincurrent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzchainprevious\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"start chain\",\n      \"chain default direction=${1:direction}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\chainin#c\": [\n      \"continue chain\",\n      \"continue chain=${1:direction}\",\n      \"continue chain=${1:〈chain name〉〈direction〉}\",\n      \"on chain\",\n      \"on chain=${1:direction}\",\n      \"on chain=${1:〈chain name〉〈direction〉}\",\n      \"join\",\n      \"join=with ${1:with} by {${2:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every on chain/.style={${1:options}}\",\n      \"every join/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.ee.IEC.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits.ee\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.gates.ee.IEC\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit ee IEC\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"current direction\",\n      \"current direction'\",\n      \"resistor\",\n      \"resistor={${1:options}}\",\n      \"inductor\",\n      \"inductor={${1:options}}\",\n      \"capacitor\",\n      \"capacitor={${1:options}}\",\n      \"battery\",\n      \"battery={${1:options}}\",\n      \"bulb\",\n      \"bulb={${1:options}}\",\n      \"current source\",\n      \"current source={${1:options}}\",\n      \"voltage source\",\n      \"voltage source={${1:options}}\",\n      \"ac source\",\n      \"ac source={${1:options}}\",\n      \"dc source\",\n      \"dc source={${1:options}}\",\n      \"ground\",\n      \"ground={${1:options}}\",\n      \"diode\",\n      \"diode={${1:options}}\",\n      \"Zener diode\",\n      \"Zener diode={${1:options}}\",\n      \"Schottky diode\",\n      \"Schottky diode={${1:options}}\",\n      \"tunnel diode\",\n      \"tunnel diode={${1:options}}\",\n      \"backward diode\",\n      \"backward diode={${1:options}}\",\n      \"breakdown diode\",\n      \"breakdown diode={${1:options}}\",\n      \"contact\",\n      \"contact={${1:options}}\",\n      \"make contact\",\n      \"make contact={${1:options}}\",\n      \"break contact\",\n      \"break contact={${1:options}}\",\n      \"amperemeter\",\n      \"amperemeter={${1:options}}\",\n      \"voltmeter\",\n      \"voltmeter={${1:options}}\",\n      \"ohmmeter\",\n      \"ohmmeter={${1:options}}\",\n      \"ampere=${1:value}\",\n      \"volt=${1:value}\",\n      \"ohm=${1:value}\",\n      \"siemens=${1:value}\",\n      \"henry=${1:value}\",\n      \"farad=${1:value}\",\n      \"coulomb=${1:value}\",\n      \"voltampere=${1:value}\",\n      \"watt=${1:value}\",\n      \"hertz=${1:value}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.ee.IEC.relay.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits.ee.IEC\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit ee IEC relay\",\n      \"every term/.style={${1:TikZ keys}}\",\n      \"every term'/.style={${1:TikZ keys}}\",\n      \"every term''/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.ee.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.gates.ee\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit ee\",\n      \"every circuit ee/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.marking\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuits\",\n      \"huge circuit symbols\",\n      \"large circuit symbols\",\n      \"medium circuit symbols\",\n      \"small circuit symbols\",\n      \"tiny circuit symbols\",\n      \"circuit declare symbol=${1:name}\",\n      \"every circuit symbol/.style={${1:options}}\",\n      \"circuit declare unit={${1:name}}{${2:unit}}\",\n      \"circuit declare annotation={${1:name}}{${2:distance}}{${3:path}}\",\n      \"circuit symbol open/.style={${1:options}}\",\n      \"circuit symbol filled/.style={${1:options}}\",\n      \"circuit symbol lines/.style={${1:options}}\",\n      \"circuit symbol wires/.style={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"circuit symbol unit=\",\n      \"circuit symbol size=width ${1:〈width〉} height ${2:〈height〉}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"point up\",\n      \"point down\",\n      \"point left\",\n      \"point right\",\n      \"info=${1:text}\",\n      \"info=${1:〈angle〉}:${2:〈text〉}\",\n      \"info=[${1:options}]${2:〈angle〉}:${3:〈text〉}\",\n      \"info'=${1:text}\",\n      \"info'=${1:〈angle〉}:${2:〈text〉}\",\n      \"info'=[${1:options}]${2:〈angle〉}:${3:〈text〉}\",\n      \"info sloped=${1:text}\",\n      \"info sloped=${1:〈angle〉}:${2:〈text〉}\",\n      \"info sloped=[${1:options}]${2:〈angle〉}:${3:〈text〉}\",\n      \"info' sloped=${1:text}\",\n      \"info' sloped=${1:〈angle〉}:${2:〈text〉}\",\n      \"info' sloped=[${1:options}]${2:〈angle〉}:${3:〈text〉}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.logic.CDH.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits.logic.US\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit logic CDH\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.logic.IEC.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits.logic\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.gates.logic.IEC\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit logic IEC\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.logic.US.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits.logic\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.gates.logic.US\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit logic US\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.logic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit logic\",\n      \"every circuit logic/.style={${1:options}}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"inputs={${1:inputs}}\",\n      \"and gate\",\n      \"nand gate\",\n      \"or gate\",\n      \"nor gate\",\n      \"xor gate\",\n      \"xnor gate\",\n      \"not gate\",\n      \"buffer gate\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.plc.ladder.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ladderskip\"\n    },\n    {\n      \"name\": \"ladderrungend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ladderrungend{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ladderpowerrails\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit plc ladder\",\n      \"ladderrungsep=${1:number}\"\n    ],\n    \"\\\\node#c\": [\n      \"symbol=${1:symbol}\",\n      \"symbol color=\",\n      \"clksize=\",\n      \"input sep=\",\n      \"output sep=\",\n      \"inputs={${1:input1,input2,...}}\",\n      \"outputs={${1:output1,output2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycircuits.plc.sfc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycircuits\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.gates.ee\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"circuit plc sfc\",\n      \"sfcaqw=\",\n      \"sfcanw=\",\n      \"sfcah=\",\n      \"time=${1:time}\",\n      \"qualifier=${1|N,R,S,L,D,P,SD,DS,SL,P1,P0|}\",\n      \"every sfcstep/.style={${1:TikZ keys}}\",\n      \"every sfcstepi/.style={${1:TikZ keys}}\",\n      \"every info/.style={${1:TikZ keys}}\",\n      \"every info'/.style={${1:TikZ keys}}\",\n      \"every sfctransition/.style={${1:TikZ keys}}\",\n      \"every sfcaction/.style={${1:TikZ keys}}\",\n      \"every sfcqualifier/.style={${1:TikZ keys}}\",\n      \"every sfctime/.style={${1:TikZ keys}}\",\n      \"every sfcactionname/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\node#c\": [\n      \"sfcstep={${1:options}}\",\n      \"sfcstepi={${1:options}}\",\n      \"sfctransition={${1:options}}\",\n      \"sfcstar={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycolorbrewer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycommutative-diagrams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\obj#c\": [\n      \"expand=${1|none,once,full|}\",\n      \"tetragonal=base ${1:<length>} height ${2:<length>}\",\n      \"hexagonal=${1:<direction>} side ${2:<length>} angle ${3:<angle>}\",\n      \"square=\",\n      \"golden=\",\n      \"replace character=${1:character1} with ${2:character2}\",\n      \"replace charcode=${1:charcode} with ${2:character}\",\n      \"remove characters=${1:characters}\",\n      \"remove character=${1:character}\",\n      \"remove charcode=${1:charcode}\",\n      \"overwrite=${1|false,alias,true|}\",\n      \"%color\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"above left=of ${1:node}\",\n      \"below left=of ${1:node}\",\n      \"above right=of ${1:node}\",\n      \"below right=of ${1:node}\",\n      \"base left=of ${1:node}\",\n      \"base right=of ${1:node}\",\n      \"mid left=of ${1:node}\",\n      \"mid right=of ${1:node}\"\n    ],\n    \"\\\\mor#c\": [\n      \"mid\",\n      \"%color\",\n      \"swap\",\n      \"at start\",\n      \"very near start\",\n      \"near start\",\n      \"midway\",\n      \"near end\",\n      \"very near end\",\n      \"at end\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c\": [\n      \"codi\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarycurvilinear.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfsetcurvilinearbeziercurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfsetcurvilinearbeziercurve{${1:start}}{${2:support1}}{${3:support2}}{${4:end}}\"\n      }\n    },\n    {\n      \"name\": \"pgfcurvilineardistancetotime\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfcurvilineardistancetotime{${1:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcurvilinearbezierorthogonal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointcurvilinearbezierorthogonal{${1:distance}}{${2:offset}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointcurvilinearbezierpolar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpointcurvilinearbezierpolar{${1:x}}{${2:y}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.3d.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\": [\n      \"school book 3d plot\",\n      \"scientific 3d plot\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.barcharts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\": [\n      \"candle stick plot\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.formats.functions.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"value\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"value{${1:variable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryfpu\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzdatavisualizationset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzdatavisualizationset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzdvdeclarestylesheetcolorseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tikzdvdeclarestylesheetcolorseries{${1:name}}{${2:color model}}{${3:init color}}{${4:step}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdatapoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdata{${1:inline data}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgfdata[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pgfdata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfdata[${2:options%keyvals}]{${1:inline data}}\",\n        \"keys\": [\n          \"\\\\pgfdata#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclaredataformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfdeclaredataformat{${1:name}}{${2:catcode code}}{${3:start code}}{${4:line args}}{${5:line code}}{${6:emptyline code}}{${7:end code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdvdeclarestylesheet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdvdeclarestylesheet{${1:name}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooclass{${1:class name}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}{}\",\n        \"snippet\": \"pgfooclass(${3:list of superclasses}){${1:class name}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoogc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfoothis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfooset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooset{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooeset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooeset{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooappend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooappend{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooprefix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooprefix{${1:attribute}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoolet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfoolet{${1:attribute}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoovalueof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfoovalueof{${1:attribute}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooget\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfooget{${1:attribute}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"pgfooobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfooobj{${1:id}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\": [\n      \"data point={${1:options}}\",\n      \"before survey=${1:code}\",\n      \"at start survey=${1:code}\",\n      \"at end survey=${1:code}\",\n      \"after survey=${1:code}\",\n      \"before visualization=${1:code}\",\n      \"at start visualization=${1:code}\",\n      \"at end visualization=${1:code}\",\n      \"after visualization=${1:code}\",\n      \"new object={${1:options}}\",\n      \"class=${1:class name}\",\n      \"when=${1:phase name}\",\n      \"store=${1:key name}\",\n      \"before creation=${1:code}\",\n      \"after creation=${1:code}\",\n      \"arg1=${1:value}\",\n      \"arg2=${1:value}\",\n      \"arg3=${1:value}\",\n      \"arg4=${1:value}\",\n      \"arg5=${1:value}\",\n      \"arg6=${1:value}\",\n      \"arg7=${1:value}\",\n      \"arg8=${1:value}\",\n      \"arg1 from key=${1:key}\",\n      \"arg2 from key=${1:key}\",\n      \"arg3 from key=${1:key}\",\n      \"arg4 from key=${1:key}\",\n      \"arg5 from key=${1:key}\",\n      \"arg6 from key=${1:key}\",\n      \"arg7 from key=${1:key}\",\n      \"arg8 from key=${1:key}\",\n      \"arg1 handle from key=${1:key}\",\n      \"arg2 handle from key=${1:key}\",\n      \"arg3 handle from key=${1:key}\",\n      \"arg4 handle from key=${1:key}\",\n      \"arg5 handle from key=${1:key}\",\n      \"arg6 handle from key=${1:key}\",\n      \"arg7 handle from key=${1:key}\",\n      \"arg8 handle from key=${1:key}\",\n      \"new axis base=${1:axis name}\",\n      \"all axes={${1:options}}\",\n      \"new Cartesian axis=${1:name}\",\n      \"scientific axes\",\n      \"scientific axes={${1:options}}\",\n      \"every scientific axes/.style={${1:options}}\",\n      \"school book axes\",\n      \"school book axes={${1:options}}\",\n      \"xy Cartesian\",\n      \"xy axes={${1:options}}\",\n      \"xyz Cartesian cabinet\",\n      \"xyz axes={${1:options}}\",\n      \"uv Cartesian\",\n      \"uv axes={${1:options}}\",\n      \"uvw Cartesian cabinet\",\n      \"uvw axes={${1:options}}\",\n      \"step=${1:value}\",\n      \"minor steps between steps\",\n      \"minor steps between steps=${1:number}\",\n      \"phase=${1:value}\",\n      \"about=${1:number}\",\n      \"about strategy=${1:list}\",\n      \"standard about strategy\",\n      \"euro about strategy\",\n      \"half about strategy\",\n      \"decimal about strategy\",\n      \"quarter about strategy\",\n      \"int about strategy\",\n      \"many\",\n      \"some\",\n      \"few\",\n      \"none\",\n      \"major={${1:options}}\",\n      \"minor={${1:options}}\",\n      \"subminor={${1:options}}\",\n      \"common={${1:options}}\",\n      \"at=${1:list}\",\n      \"major at=${1:list}\",\n      \"minor at=${1:list}\",\n      \"subminor at=${1:list}\",\n      \"also at=${1:list}\",\n      \"major also at=${1:list}\",\n      \"minor also at=${1:list}\",\n      \"subminor also at=${1:list}\",\n      \"style={${1:TikZ options}}\",\n      \"styling\",\n      \"node style={${1:TikZ options}}\",\n      \"node styling\",\n      \"grid layer/.style={${1:options}}\",\n      \"every grid/.style={${1:options}}\",\n      \"every major grid/.style={${1:options}}\",\n      \"every minor grid/.style={${1:options}}\",\n      \"every subminor grid/.style={${1:options}}\",\n      \"every ticks/.style={${1:options}}\",\n      \"every major ticks/.style={${1:options}}\",\n      \"every minor ticks/.style={${1:options}}\",\n      \"every subminor ticks/.style={${1:options}}\",\n      \"tick layer/.style={${1:options}}\",\n      \"tick node layer/.style={${1:options}}\",\n      \"options at=${1:value} as [${2:options}]\",\n      \"no tick text at=${1:value}\",\n      \"tick prefix=${1:text}\",\n      \"tick suffix=${1:text}\",\n      \"tick unit=${1:math text}\",\n      \"tick typesetter=${1:value}\",\n      \"tick text low even padding=\",\n      \"tick text low odd padding=\",\n      \"tick text high even padding=\",\n      \"tick text high odd padding=\",\n      \"tick text odd padding=\",\n      \"tick text even padding=\",\n      \"tick text padding=\",\n      \"stack=\",\n      \"stack'=\",\n      \"compute step=${1:code}\",\n      \"low=${1|min,max,padded min,padded max|}\",\n      \"high=${1|min,max,padded min,padded max|}\",\n      \"padded\",\n      \"axis layer/.style={${1:options}}\",\n      \"every axis/.style={${1:options}}\",\n      \"direction axis=${1:axis name}\",\n      \"tick length=\",\n      \"tick text at low\",\n      \"tick text at high\",\n      \"no tick text\",\n      \"new axis system={${1:name}}{${2:setup}}{${3:default opts}}{${4:application opts}}\",\n      \"every visualizer/.style={${1:options}}\",\n      \"visualize as line\",\n      \"visualize as line=${1:visualizer name}\",\n      \"visualize as smooth line\",\n      \"visualize as smooth line=${1:visualizer name}\",\n      \"visualize as scatter\",\n      \"visualize as scatter=${1:visualizer name}\",\n      \"new visualizer={${1:name}}{${2:options}}{${3:legend entry options}}\",\n      \"style sheet=${1|vary thickness,vary dashing,vary thickness and dashing,cross marks,strong colors,vary hue,shades of blue,shades of red,gray scale,|}\",\n      \"every data set label/.append style={${1:options}}\",\n      \"every label in data/.append style={${1:options}}\",\n      \"new legend\",\n      \"new legend=${1:legend name}\",\n      \"legend={${1:options}}\",\n      \"every label in legend/.style={${1:options}}\",\n      \"new legend entry={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every data/.style={${1:options}}\"\n    ],\n    \"\\\\pgfdata#c\": [\n      \"read from file=${1:file name}\",\n      \"inline\",\n      \"format=${1|TeX code,named,table|}\",\n      \"every data\",\n      \"new set=${1:name}\",\n      \"store in set=${1:name}\",\n      \"use set=${1:name}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.polar.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\": [\n      \"scientific polar axes\",\n      \"scientific polar axes={${1:options}}\",\n      \"new polar axes={${1:angle axis name}}{${2:radius axis name}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydatavisualization.sparklines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydatavisualization\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\datavisualization#c,\\\\tikzdatavisualizationset#c\": [\n      \"spark line\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.footprints.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.fractals.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfdecoratedcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentamplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentangle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationsegmentaspect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecorationsegmentamplitude\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecorationsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpgfdecoratepathhascorners\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdeclaredecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaredecoration{${1:name}}{${2:initial state}}{${3:states}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"state{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"state{${1:name}}[${3:options%keyvals}]{${2:code}}\",\n        \"keys\": [\n          \"\\\\state#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pgfdeclaremetadecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclaremetadecoration{${1:name}}{${2:initial state}}{${3:states}}\"\n      }\n    },\n    {\n      \"name\": \"decoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"decoration{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"beforedecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"beforedecoration{${1:before code}}\"\n      }\n    },\n    {\n      \"name\": \"afterdecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterdecoration{${1:after code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoratedpathlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedinputsegmentcompleteddistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmetadecoratedinputsegmentremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratebeforecode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorateaftercode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdecoratepath{${1:name}}{${2:path commands}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecoratecurrentpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdecoratecurrentpath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecorationpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorateexistingpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedpathlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedpathfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedpathlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedinputsegmentfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointdecoratedinputsegmentlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfsetdecorationsegmenttransformation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfsetdecorationsegmenttransformation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoratedremainingdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointmetadecoratedpathfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpointmetadecoratedpathlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedinputsegmentlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecoratedangle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pgfdecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmetadecoration\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"decoration={${1:options}}\",\n      \"decorate\"\n    ],\n    \"\\\\state#c\": [\n      \"switch if less than=${1:dimen} to ${2:new state}\",\n      \"switch if input segment less than=${1:dimen} to ${2:new state}\",\n      \"width=\",\n      \"repeat state=${1:repetitions}\",\n      \"next state=${1:new state}\",\n      \"if input segment is closepath={${1:options}}\",\n      \"auto end on length=\",\n      \"auto corner on length=\",\n      \"persistent precomputation=${1:precode}\",\n      \"persistent postcomputation=${1:postcode}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.markings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrow{${1:arrow end tip}}\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrow[${2:options%keyvals}]{${1:arrow end tip}}\"\n      }\n    },\n    {\n      \"name\": \"arrowreversed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowreversed{${1:arrow end tip}}\"\n      }\n    },\n    {\n      \"name\": \"arrowreversed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrowreversed[${2:options%keyvals}]{${1:arrow end tip}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.pathmorphing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.pathreplacing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzinputsegmentfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzinputsegmentlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzinputsegmentsupporta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzinputsegmentsupportb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.shapes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydecorations.text.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfdecorationrestoftext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfdecorationtext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarydubins.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ifpgfmathcond\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifpgfmathcond{${1:condition}}\"\n      }\n    },\n    {\n      \"name\": \"dubinspath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dubinspath{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"dubinspathset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dubinspathset{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"dubinspathcalc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dubinspathcalc{${1:options}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryducks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzducks\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"entity\",\n      \"relationship\",\n      \"attribute\",\n      \"key attribute\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every entity/.style={${1:options}}\",\n      \"every relationship/.style={${1:options}}\",\n      \"every attribute/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.calendar-plus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarycalendar\"\n    },\n    {\n      \"name\": \"pgfcalendar-ext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathweeksinmonthofyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathweeksinmonthofyear{${1:first weekday}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlastdayinmonthofyear\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathlastdayinmonthofyear{${1:month}}{${2:year}}\"\n      }\n    },\n    {\n      \"name\": \"tikzweekcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzweektext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\calendar#c\": [\n      \"day xshift=\",\n      \"day yshift=\",\n      \"month xshift=\",\n      \"month yshift=\",\n      \"week code=${1:code}\",\n      \"week text=${1:text}\",\n      \"every week/.append style={${1:TikZ keys}}\",\n      \"week label left\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.misc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathstrrepeat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathstrrepeat{${1:\\\"text\\\"}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathisInString\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathisInString{${1:\\\"string\\\"}}{${2:\\\"text\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathstrcat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathstrcat{${1:\\\"textA\\\"}}{${2:\\\"textB\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathisEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathisEmpty{${1:\\\"text\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathatanXY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathatanXY{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathatanYX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathatanYX{${1:y}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathanglebetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathanglebetween{${1:\\\"p1\\\"}}{${2:\\\"p2\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathqanglebetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathqanglebetween{${1:\\\"p\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdistancebetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdistancebetween{${1:\\\"p1\\\"}}{${2:\\\"p2\\\"}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathqdistancebetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathqdistancebetween{${1:\\\"p\\\"}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"full arc\",\n      \"full arc=${1:number}\"\n    ],\n    \"\\\\foreach#c\": [\n      \"no separator\",\n      \"normal list\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.node-families.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzextnodefamiliesgetwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzextnodefamiliesgetwidth{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"tikzextnodefamiliesgetheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzextnodefamiliesgetheight{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"tikzextnodefamiliesgettextwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzextnodefamiliesgettextwidth{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"tikzextnodefamiliesgettextdepth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzextnodefamiliesgettextdepth{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"tikzextnodefamiliesgettextheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzextnodefamiliesgettextheight{${1:family}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.node-families.shapes.geometric.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryext.node-families\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.nodes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"node on line\",\n      \"node on line=${1:anchor spec}\",\n      \"nodes on line\",\n      \"nodes on curve\",\n      \"nodes on curve=${1:to path}\",\n      \"nodes on curve'\",\n      \"nodes on curve'=${1:to path}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.paths.arcto.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every arc to/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.paths.timer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"rectangle timer=${1|line,rectangle|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.patterns.images.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfsetupimageaspattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfsetupimageaspattern{${1:name}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"pgfsetupimageaspattern\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfsetupimageaspattern[${3:options%keyvals}]{${1:name}}{${2:imagefile}}\",\n        \"keys\": [\n          \"\\\\pgfsetupimageaspattern\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pgfsetupimageaspattern\": [\n      \"height=\",\n      \"width=\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"mask=${1:mask name}\"\n    ],\n    \"\\\\node#c\": [\n      \"image as pattern={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.positioning-plus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"corner above left\",\n      \"corner above left=${1:specification}\",\n      \"corner below left\",\n      \"corner below left=${1:specification}\",\n      \"corner above right\",\n      \"corner above right=${1:specification}\",\n      \"corner below right\",\n      \"corner below right=${1:specification}\",\n      \"north left\",\n      \"north left=${1:specification}\",\n      \"north right\",\n      \"north right=${1:specification}\",\n      \"south left\",\n      \"south left=${1:specification}\",\n      \"south right\",\n      \"south right=${1:specification}\",\n      \"west above\",\n      \"west above=${1:specification}\",\n      \"west below\",\n      \"west below=${1:specification}\",\n      \"east above\",\n      \"east above=${1:specification}\",\n      \"east below\",\n      \"east below=${1:specification}\",\n      \"corner north left\",\n      \"corner north left=${1:specification}\",\n      \"corner north right\",\n      \"corner north right=${1:specification}\",\n      \"corner south left\",\n      \"corner south left=${1:specification}\",\n      \"corner south right\",\n      \"corner south right=${1:specification}\",\n      \"corner west above\",\n      \"corner west above=${1:specification}\",\n      \"corner west below\",\n      \"corner west below=${1:specification}\",\n      \"corner east above\",\n      \"corner east above=${1:specification}\",\n      \"corner east below\",\n      \"corner east below=${1:specification}\",\n      \"fit bounding box=${1:list of coords}\",\n      \"span vertical=${1:list of coords}\",\n      \"span horizontal=${1:list of coords}\",\n      \"span=${1:list of coords}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.scalepicture.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzextpicturewidth\"\n    },\n    {\n      \"name\": \"tikzextpictureheight\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c\": [\n      \"save picture size\",\n      \"picture width=\",\n      \"minimum picture width=\",\n      \"maximum picture width=\",\n      \"picture height=\",\n      \"minimum picture height=\",\n      \"maximum picture height=\",\n      \"minimum picture size={${1:width}}{${2:height}}\",\n      \"maximum picture size={${1:width}}{${2:height}}\",\n      \"picture width*=\",\n      \"minimum picture width*=\",\n      \"maximum picture width*=\",\n      \"picture height*=\",\n      \"minimum picture height*=\",\n      \"maximum picture height*=\",\n      \"picture size*={${1:width}}{${2:height}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.circlearrow.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"circle arrow\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"circle arrow start angle=${1:degrees}\",\n      \"circle arrow end angle=${1:degrees}\",\n      \"circle arrow delta angle=${1:degrees}\",\n      \"circle arrow arrows=${1:⟨start tip spec⟩-⟨end tip spec⟩}\",\n      \"circle arrow turn left north\",\n      \"circle arrow turn left east\",\n      \"circle arrow turn left west\",\n      \"circle arrow turn left south\",\n      \"circle arrow turn right north\",\n      \"circle arrow turn right east\",\n      \"circle arrow turn right west\",\n      \"circle arrow turn right south\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.circlecrosssplit.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"circle cross split\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"circle cross split part fill={${1:color1,color2,...}}\",\n      \"circle cross split uses custom fill\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.heatmark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"heatmark\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"heatmark arcs=${1:integer}\",\n      \"heatmark arc width=\",\n      \"heatmark arc sep=\",\n      \"heatmark arc rings=${1:integer}\",\n      \"heatmark arc sep angle=${1:degrees}\",\n      \"heatmark inner opacity=${1:factor}\",\n      \"heatmark outer opacity=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.rectangleroundedcorners.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"rectangle with rounded corners\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"rectangle with rounded corners north west radius=\",\n      \"rectangle with rounded corners north east radius=\",\n      \"rectangle with rounded corners south west radius=\",\n      \"rectangle with rounded corners south east radius=\",\n      \"rectangle with rounded corners radius=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.superellipse.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathsuperellipsex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathsuperellipsex{${1:t}}{2/m}{${2:r_x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsuperellipsey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathsuperellipsey{${1:t}}{2/n}{${2:r_y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathsuperellipseXY\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfmathsuperellipseXY{${1:t}}{2/m}{2/n}{${2:a}}{${3:b}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"superellipse\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"superellipse x exponent=${1:exponent}\",\n      \"superellipse y exponent=${1:exponent}\",\n      \"superellipse step=${1:integer}\",\n      \"superellipse exponent=${1:exponent}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.shapes.uncenteredrectangle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"uncentered rectangle\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"uncentered rectangle center=${1|left,text,right,real|}\",\n      \"uncentered rectangle use saved center\",\n      \"uncentered rectangle center yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryext.transformations.mirror.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgftransformxmirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxmirror{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformymirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformymirror{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformmirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgftransformmirror{${1:pointA}}{${2:pointB}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqtransformmirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqtransformmirror{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformxMirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformxMirror{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformyMirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgftransformyMirror{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"pgftransformMirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgftransformMirror{${1:pointA}}{${2:pointB}}\"\n      }\n    },\n    {\n      \"name\": \"pgfqtransformMirror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfqtransformMirror{${1:point}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"xmirror\",\n      \"xmirror=${1:val or coord}\",\n      \"ymirror\",\n      \"ymirror=${1:val or coord}\",\n      \"mirror x\",\n      \"mirror x=${1:coord}\",\n      \"mirror y\",\n      \"mirror y=${1:coord}\",\n      \"mirror=${1:⟨pointA⟩}--${2:⟨pointB⟩}\",\n      \"xMirror\",\n      \"xMirror=${1:val or coord}\",\n      \"yMirror\",\n      \"yMirror=${1:val or coord}\",\n      \"Mirror x\",\n      \"Mirror x=${1:coord}\",\n      \"Mirror y\",\n      \"Mirror y=${1:coord}\",\n      \"Mirror=${1:⟨pointA⟩}--${2:⟨pointB⟩}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryexternal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzexternalize\"\n    },\n    {\n      \"name\": \"tikzexternalize\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikzexternalize[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tikzexternalize#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzexternalrealjob\"\n    },\n    {\n      \"name\": \"tikzexternalcheckshellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzsetexternalprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetexternalprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsetnextfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetnextfilename{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsetfigurename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsetfigurename{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzappendtofigurename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzappendtofigurename{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpicturedependsonfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzpicturedependsonfile{${1:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzexternalimgextension\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzexternalfiledependsonfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzexternalfiledependsonfile{${1:external graphics}}{${2:file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"tikzexternaldisable\"\n    },\n    {\n      \"name\": \"tikzexternalenable\"\n    },\n    {\n      \"name\": \"tikzifexternalizing\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzifexternalizing{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzifexternalizingnext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzifexternalizingnext{${1:true code}}{${2:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzexternalize#c\": [\n      \"system call={${1:template}}\",\n      \"shell escape={${1:command-line arg}}\",\n      \"aux in dpth\",\n      \"prefix=${1:file name prefix}\",\n      \"figure name=${1:name}\",\n      \"disable dependency files\",\n      \"force remake\",\n      \"remake next\",\n      \"export next\",\n      \"export\",\n      \"up to date check=imple,md5,diff\",\n      \"figure list\",\n      \"mode=${1|only graphics,no graphics,only pictures,graphics if exists,list only,list and make|}\",\n      \"verbose IO\",\n      \"verbose optimize\",\n      \"verbose\",\n      \"optimize\",\n      \"optimize command away={${1:command}}{${2:arg count}}\",\n      \"only named\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfadings.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzfading\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikzfading[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tikzfading#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikzfadingfrompicture\"\n    },\n    {\n      \"name\": \"tikzfadingfrompicture\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tikzfadingfrompicture}#c,\\\\tikzfadingfrompicture#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"path fading\",\n      \"path fading=${1:name}\",\n      \"fit fading\",\n      \"fading transform={${1:options}}\",\n      \"fading angle=${1:degrees}\",\n      \"scope fading=${1:name}\"\n    ],\n    \"\\\\begin{tikzfadingfrompicture}#c,\\\\tikzfadingfrompicture#c\": [\n      \"name=${1:name}\"\n    ],\n    \"\\\\tikzfading#c\": [\n      \"name=${1:name}\",\n      \"left color=\",\n      \"right color=\",\n      \"inner color=\",\n      \"outer color=\",\n      \"top color=\",\n      \"bottom color=\",\n      \"middle color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfill.hexagon.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarypatterns.meta\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"pattern hexagon={${1:pattern keys}}\",\n      \"pattern hexagon grid={${1:pattern keys}}\",\n      \"pattern hexagon cycle={${1:pattern keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfill.image.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"fill plain image=${1:file name}\",\n      \"fill plain image*={${1:graphics options}}{${2:file name}}\",\n      \"fill plain picture={${1:graphical code}}\",\n      \"fill stretch image=${1:file name}\",\n      \"fill stretch image*={${1:graphics options}}{${2:file name}}\",\n      \"fill stretch picture={${1:graphical code}}\",\n      \"fill overzoom image=${1:file name}\",\n      \"fill overzoom image*={${1:graphics options}}{${2:file name}}\",\n      \"fill overzoom picture={${1:graphical code}}\",\n      \"fill zoom image=${1:file name}\",\n      \"fill zoom image*={${1:graphics options}}{${2:file name}}\",\n      \"fill zoom picture={${1:graphical code}}\",\n      \"fill shrink image=${1:file name}\",\n      \"fill shrink image*={${1:graphics options}}{${2:file name}}\",\n      \"fill shrink picture={${1:graphical code}}\",\n      \"fill tile image=${1:file name}\",\n      \"fill tile image*={${1:graphics options}}{${2:file name}}\",\n      \"fill tile picture={${1:graphical code}}\",\n      \"fill image opacity=${1:fraction}\",\n      \"fill image scale=${1:fraction}\",\n      \"fill image options={${1:graphics options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfill.rhombus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarypatterns.meta\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"pattern rhombus={${1:pattern keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfit.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"fit=${1:coords or nodes}\",\n      \"rotate fit=${1:degrees}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every fit/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfixedpointarithmetic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathfpscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfpparse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpparse{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpscientific\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpscientific{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfplessthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfplessthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpgreaterthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpgreaterthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpequalto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpequalto{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpadd{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpsubtract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpsubtract{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpmultiply\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpmultiply{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpdivide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpdivide{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpabs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpabs{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpneg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpneg{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpround{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpfloor{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpceil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpceil{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpmod{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfppow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfppow{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpexp{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpln\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpln{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpsqrt{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpveclen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfpveclen{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpsin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpsin{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpcos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpcos{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfptan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfptan{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpacos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpacos{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpasin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpasin{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpatan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpatan{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpcot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpcot{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpsec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpsec{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpcosec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpcosec{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpdeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpdeg{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfprad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfprad{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfpsetseed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfpsetseed{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfprnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfprand\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"fixed point arithmetic={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfolding.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\pic#c\": [\n      \"folding line length=\",\n      \"face 1={${1:code}}\",\n      \"face 2={${1:code}}\",\n      \"face 3={${1:code}}\",\n      \"face 4={${1:code}}\",\n      \"every cut/.style={${1:options}}\",\n      \"every fold/.style={${1:options}}\",\n      \"numbered faces\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryfpu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgflibraryfpuifactive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgflibraryfpuifactive{${1:true code}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatscale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatparse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatscientific\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatscientific{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatlessthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatlessthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatgreaterthan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatgreaterthan{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmaxtwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmaxtwo{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmax{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmin{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmintwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmintwo{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattoextentedprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloattoextentedprecision{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsetextprecision\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatsetextprecision{${1:shift}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatifapproxequalrel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathfloatifapproxequalrel{${1:x}}{${2:y}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatifflags\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfmathfloatifflags{${1:number}}{${2:flag}}{${3:true code}}{${4:false code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatadd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatadd{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsubtract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatsubtract{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmultiplyfixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmultiplyfixed{${1:float}}{${2:fixed}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmultiply\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmultiply{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatdivide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatdivide{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatsqrt{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatint{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatfloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatfloor{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatceil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatceil{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatshift\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatshift{${1:x}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatsign{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatabserror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatabserror{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatrelerror\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatrelerror{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatmod{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatmodknowsinverse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfmathfloatmodknowsinverse{${1:x}}{${2:y}}{${3:z}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatdeg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatdeg{${1:x in radians}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatrad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatrad{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatsin{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatcos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatcos{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloattan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloattan{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatcot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatcot{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatatan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatatan{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatatantwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathfloatatantwo{${1:x}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatsec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatsec{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatcosec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatcosec{${1:x in degrees}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatln\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatln{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathlog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathlog{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatexp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmathfloatexp{${1:x}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathfloatrand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfmathfloatrnd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarygraphdrawing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usegdlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usegdlibrary{${1:list of libraries%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdset{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdevent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfgdevent{${1:name}}{${2:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdbegineventgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdbegineventgroup{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdendeventgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdeventgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdeventgroup{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdsetlatenodeoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdsetlatenodeoption{${1:node name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdcallbackrendernode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfgdcallbackrendernode{${1:node name}}{${2:xmin}}{${3:xmax}}{${4:ymin}}{${5:ymax}}{${6:xpos}}{${7:ypos}}{${8:boxnum}}{${9:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpositionnodelatername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelaterminy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpositionnodelatermaxy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdedge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfgdedge{${1:node1}}{${2:node2}}{${3:edge dir}}{${4:edge opts}}{${5:edge nodes}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdsetedgecallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdsetedgecallback{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgddefaultedgecallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"pgfgddefaultedgecallback{${1:node1}}{${2:node2}}{${3:options}}{${4:auxtext}}{${5:alg options}}{${6:bend info}}{${7:animations}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdcallbackbeginshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdcallbackendshipout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdbeginlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdendlayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdsubgraphnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfgdsubgraphnode{${1:node name}}{${2:node options}}{${3:node text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfgdsetrequestcallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdsetrequestcallback{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"ifpgfgdgraphdrawingscopeactive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdbeginscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdendscope\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfgdaddspecificationhook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfgdaddspecificationhook{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\graph#c,\\\\tikzgraphsset#c\": [\n      \"node distance=\",\n      \"node pre sep=\",\n      \"node post sep=\",\n      \"node sep=\",\n      \"level distance=\",\n      \"layer distance=\",\n      \"level pre sep=\",\n      \"level post sep=\",\n      \"layer pre sep=\",\n      \"layer post sep=\",\n      \"level sep=\",\n      \"layer sep=\",\n      \"sibling distance=\",\n      \"sibling pre sep=\",\n      \"sibling post sep=\",\n      \"sibling sep=\",\n      \"part distance=\",\n      \"part pre sep=\",\n      \"part post sep=\",\n      \"part sep=\",\n      \"component sep=\",\n      \"component distance=\",\n      \"anchor node=${1:string}\",\n      \"anchor at={${1:coord}}\",\n      \"orient=${1:direction}\",\n      \"orient'=${1:direction}\",\n      \"orient tail=${1:string}\",\n      \"orient head=${1:string}\",\n      \"horizontal=${1:tail} to ${2:head}\",\n      \"horizontal'=${1:head} to ${2:tail}\",\n      \"vertical=${1:tail} to ${2:head}\",\n      \"vertical'=${1:head} to ${2:tail}\",\n      \"grow=${1:direction}\",\n      \"grow'=${1:direction}\",\n      \"componentwise\",\n      \"component order=${1|by first specified node,increasing node number,decreasing node number|}\",\n      \"small components first\",\n      \"large components first\",\n      \"component direction=${1:direction}\",\n      \"component align=${1|first node,center,counterclockwise,clockwise,counterclockwise bounding box,clockwise bounding box,|}\",\n      \"components go right top aligned\",\n      \"components go right absolute top aligned\",\n      \"components go right bottom aligned\",\n      \"components go right absolute bottom aligned\",\n      \"components go right center aligned\",\n      \"components go right\",\n      \"components go left top aligned\",\n      \"components go left absolute top aligned\",\n      \"components go left bottom aligned\",\n      \"components go left absolute bottom aligned\",\n      \"components go left center aligned\",\n      \"components go left\",\n      \"components go down right aligned\",\n      \"components go down absolute right aligned\",\n      \"components go down left aligned\",\n      \"components go down absolute left aligned\",\n      \"components go down center aligned\",\n      \"components go down\",\n      \"components go up right aligned\",\n      \"components go up absolute right aligned\",\n      \"components go up left aligned\",\n      \"components go up absolute left aligned\",\n      \"components go up center aligned\",\n      \"components go up\",\n      \"component packing=${1|rectangular,skyline|}\",\n      \"allow inside edges\",\n      \"nodes behind edges\",\n      \"edges behind nodes\",\n      \"random seed=${1:number}\",\n      \"variation=${1:number}\",\n      \"tree layout\",\n      \"missing nodes get space\",\n      \"significant sep=\",\n      \"binary tree layout\",\n      \"extended binary tree layout\",\n      \"minimum number of children=${1:number}\",\n      \"breadth first spanning tree\",\n      \"depth first spanning tree\",\n      \"root\",\n      \"span priority=${1:number}\",\n      \"span edge\",\n      \"no span edge\",\n      \"span priority ->=${1:number}\",\n      \"span priority reversed ->=${1:number}\",\n      \"span using directed\",\n      \"span using all\",\n      \"layered layout\",\n      \"depth first cycle removal\",\n      \"prioritized greedy cycle removal\",\n      \"greedy cycle removal\",\n      \"naive greedy cycle removal\",\n      \"random greedy cycle removal\",\n      \"linear optimization layer assignment\",\n      \"minimum height layer assignment\",\n      \"sweep crossing minimization\",\n      \"linear optimization node positioning\",\n      \"polyline layer edge routing\",\n      \"iterations=${1:number}\",\n      \"initial step length=\",\n      \"cooling factor=${1:number}\",\n      \"convergence tolerance=${1:number}\",\n      \"spring constant=${1:number}\",\n      \"electric force order=${1:number}\",\n      \"approximate remote forces\",\n      \"coarsen\",\n      \"minimum coarsening size=${1:number}\",\n      \"downsize ratio=${1:number}\",\n      \"spring layout\",\n      \"spring Hu 2006 layout\",\n      \"spring electrical layout\",\n      \"spring electrical layout'\",\n      \"spring electrical Hu 2006 layout\",\n      \"spring electrical Walshaw 2000 layout\",\n      \"simple necklace layout\",\n      \"phylogenetic tree layout\",\n      \"phylogenetic tree by author\",\n      \"unweighted pair group method using arithmetic averages\",\n      \"upgma\",\n      \"balanced minimum evolution\",\n      \"balanced nearest neighbour interchange\",\n      \"no phylogenetic tree optimization\",\n      \"rooted rectangular phylogram\",\n      \"rectangular phylogram\",\n      \"rooted straight phylogram\",\n      \"straight phylogram\",\n      \"unrooted rectangular phylogram\",\n      \"unrooted straight phylogram\",\n      \"evolutionary unit length=\",\n      \"necklace routing\",\n      \"simple demo layout\",\n      \"simple edge demo layout\",\n      \"simple Huffman layout\",\n      \"probability=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarygraphs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzgraphsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzgraphsset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzgraphsset#c\",\n          \"\\\\graph#c,\\\\tikzgraphsset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzgraphnodetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphnodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphnodepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphnodefullname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphforeachcolorednode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzgraphforeachcolorednode{${1:color}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"tikzgraphpreparecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikzgraphpreparecolor{${1:color}}{${2:counter}}{${3:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"tikzgraphV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphVnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzgraphWnum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every new ->/.style={${1:options}}\",\n      \"every new --/.style={${1:options}}\",\n      \"every new <->/.style={${1:options}}\",\n      \"every new <-/.style={${1:options}}\",\n      \"every new -!-/.style={${1:options}}\",\n      \"new set=${1:set name}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"set=${1:set name}\"\n    ],\n    \"\\\\tikzgraphsset#c\": [\n      \"every graph/.style={${1:options}}\"\n    ],\n    \"\\\\graph#c,\\\\tikzgraphsset#c\": [\n      \"nodes={${1:options}}\",\n      \"edges={${1:options}}\",\n      \"edge node={${1:node spec}}\",\n      \"edge label=${1:text}\",\n      \"edge label'=${1:text}\",\n      \"new ->={${1:left node}}{${2:right node}}{${3:edge options}}{${4:edge nodes}}\",\n      \"left anchor=${1:anchor}\",\n      \"right anchor=${1:anchor}\",\n      \"new --={${1:left node}}{${2:right node}}{${3:edge options}}{${4:edge nodes}}\",\n      \"new <->={${1:left node}}{${2:right node}}{${3:edge options}}{${4:edge nodes}}\",\n      \"new <-={${1:left node}}{${2:right node}}{${3:edge options}}{${4:edge nodes}}\",\n      \"new -!-={${1:left node}}{${2:right node}}{${3:edge options}}{${4:edge nodes}}\",\n      \"use existing nodes\",\n      \"fresh nodes\",\n      \"number nodes\",\n      \"number nodes=${1:start number}\",\n      \"number nodes sep=${1:text}\",\n      \"name=${1:prefix}\",\n      \"name separator=${1:symbols}\",\n      \"as=${1:text}\",\n      \"typeset=${1:code}\",\n      \"empty nodes\",\n      \"math nodes\",\n      \"trie\",\n      \"quick\",\n      \"multi\",\n      \"simple\",\n      \"edge quotes={${1:options}}\",\n      \"edge quotes center\",\n      \"edge quotes mid\",\n      \"put node text on incoming edges\",\n      \"put node text on incoming edges={${1:options}}\",\n      \"put node text on outgoing edges\",\n      \"put node text on outgoing edges={${1:options}}\",\n      \"operator=${1:code}\",\n      \"color class=${1:name}\",\n      \"default edge operator=${1:key}\",\n      \"no placement\",\n      \"x=\",\n      \"y=\",\n      \"Cartesian placement\",\n      \"chain shift=${1:coord}\",\n      \"group shift=${1:coord}\",\n      \"grow up\",\n      \"grow up=\",\n      \"grow down\",\n      \"grow down=\",\n      \"grow left\",\n      \"grow left=\",\n      \"grow right\",\n      \"grow right=\",\n      \"branch up\",\n      \"branch up=\",\n      \"branch down\",\n      \"branch down=\",\n      \"branch left\",\n      \"branch left=\",\n      \"branch right\",\n      \"branch right=\",\n      \"grid placement\",\n      \"grow right sep\",\n      \"grow right sep=\",\n      \"grow left sep\",\n      \"grow left sep\",\n      \"grow up sep\",\n      \"grow up sep\",\n      \"grow down sep\",\n      \"grow down sep=\",\n      \"branch up sep\",\n      \"branch up sep=\",\n      \"branch down sep\",\n      \"branch down sep=\",\n      \"branch left sep\",\n      \"branch left sep=\",\n      \"branch right sep\",\n      \"branch right sep=\",\n      \"circular placement\",\n      \"chain polar shift=(${1:angle}:${2:radius})\",\n      \"group polar shift=(${1:angle}:${2:radius})\",\n      \"radius=\",\n      \"phase=${1:degrees}\",\n      \"clockwise\",\n      \"clockwise=${1:number}\",\n      \"counterclockwise\",\n      \"counterclockwise=${1:number}\",\n      \"level=${1:level}\",\n      \"level ${1:n}/.style={${2:options}}\",\n      \"placement/logical node width=${1:node name}\",\n      \"placement/logical node depth=${1:node name}\",\n      \"placement/compute position/.append code=${1:code}\"\n    ],\n    \"\\\\graph#c\": [\n      \"declare={${1:name}}{${2:specification}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarygraphs.standard.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarygraphs\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryhobby.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"curvethrough\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curvethrough{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"curvethrough\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"curvethrough[${2:options}]{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathhobby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfpathhobby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathhobby{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathhobbypt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathhobbypt{${1:pgf point spec}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathhobbypt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfpathhobbypt{${1:pgf point spec}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathhobbyptparams\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathhobbyptparams{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpathhobbyend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothanderhobby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerclosedhobby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfplothandlerquickhobby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hobbyinit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hobbyinit{${1:moveto}}{${2:curveto}}{${3:close}}\"\n      }\n    },\n    {\n      \"name\": \"hobbyaddpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbyaddpoint{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"hobbysetparams\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbysetparams{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"hobbygenpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hobbygenifnecpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbygenifnecpath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"hobbyusepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbyusepath{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"hobbysavepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbysavepath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"hobbyrestorepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbyrestorepath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"hobbyshowpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hobbyshowpath{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"hobbygenusepath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hobbyclearpath\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"use Hobby shortcut\",\n      \"use quick Hobby shortcut\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c\": [\n      \"hobby\",\n      \"closed hobby\",\n      \"quick hobby\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryintersections.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"name path=${1:name}\",\n      \"name path global=${1:name}\",\n      \"name intersections={${1:options}}\",\n      \"turn\",\n      \"current point is local\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarykarnaugh.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"karnaughmap\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"karnaughmap{${1:num var}}{${2:function}}{${3:var list}}{${4:contents}}{${5:decoration}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmaptab\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"karnaughmaptab{${1:num var}}{${2:function}}{${3:var list}}{${4:contents}}{${5:decoration}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmapvert\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"karnaughmapvert{${1:num var}}{${2:function}}{${3:var list}}{${4:contents}}{${5:decoration}}\"\n      }\n    },\n    {\n      \"name\": \"karnaughmaptabvert\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"karnaughmaptabvert{${1:num var}}{${2:function}}{${3:var list}}{${4:contents}}{${5:decoration}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdectoGray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdectoGray{${1:macro%cmd}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"kmdectobin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kmdectobin{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kmdectoKG\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kmdectoKG{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kmvarno\"\n    },\n    {\n      \"name\": \"kmdectoKGdec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"kmdectoKGdec{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"kmindexcounter\"\n    },\n    {\n      \"name\": \"kmunitlength\"\n    },\n    {\n      \"name\": \"kmxsize\"\n    },\n    {\n      \"name\": \"kmysize\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c\": [\n      \"karnaugh\",\n      \"karnaugh cell size=\",\n      \"American style\",\n      \"disable bars\",\n      \"kmbar/.style={${1:TikZ keys}}\",\n      \"kmbar label/.style={${1:TikZ keys}}\",\n      \"kmbar sep=\",\n      \"kmbar top sep=\",\n      \"kmbar left sep=\",\n      \"enable indices\",\n      \"kmindex/.style={${1:TikZ keys}}\",\n      \"kmindex posx=\",\n      \"kmindex posy=\",\n      \"kmindex pos={${1:x coord}}{${2:y coord}}\",\n      \"binary index\",\n      \"Gray index\",\n      \"kmsep line/.style={${1:TikZ keys}}\",\n      \"kmsep line length=\",\n      \"kmcell/.style={${1:TikZ keys}}\",\n      \"kmlabel top/.style={${1:TikZ keys}}\",\n      \"kmlabel left/.style={${1:TikZ keys}}\",\n      \"kmvar/.style={${1:TikZ keys}}\",\n      \"kmbox/.style={${1:TikZ keys}}\",\n      \"kmlines/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"every karnaugh/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryknots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibraryspath3\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"flipcrossings\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flipcrossings{${1:list of crossings}}\"\n      }\n    },\n    {\n      \"name\": \"redraw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"redraw{${1:strand number}}{${2:point}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"knot\"\n    },\n    {\n      \"name\": \"knot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarylindenmayersystems.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfdeclarelindenmayersystem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfdeclarelindenmayersystem{${1:name}}{${2:specification}}\"\n      }\n    },\n    {\n      \"name\": \"symbol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"symbol{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"pgflsystemcurrentstep\"\n    },\n    {\n      \"name\": \"pgflsystemcurrentleftangle\"\n    },\n    {\n      \"name\": \"pgflsystemcurrentrightangle\"\n    },\n    {\n      \"name\": \"pgflsystemrandomizestep\"\n    },\n    {\n      \"name\": \"pgflsystemrandomizeleftangle\"\n    },\n    {\n      \"name\": \"pgflsystemrandomizerightangle\"\n    },\n    {\n      \"name\": \"pgflsystemdrawforward\"\n    },\n    {\n      \"name\": \"pgflsystemmoveforward\"\n    },\n    {\n      \"name\": \"pgflsystemturnleft\"\n    },\n    {\n      \"name\": \"pgflsystemturnright\"\n    },\n    {\n      \"name\": \"pgflsystemsavestate\"\n    },\n    {\n      \"name\": \"pgflsystemrestorestate\"\n    },\n    {\n      \"name\": \"pgflsystemstep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflsystemrandomizesteppercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgflsystemrandomizeanglepercent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rule{${1:head -> body}}\"\n      }\n    },\n    {\n      \"name\": \"pgflindenmayersystem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgflindenmayersystem{${1:name}}{${2:axiom}}{${3:order}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"lindenmayer system={${1:keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarymarmots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzmarmots\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarymath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryfpu\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzmath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzmath{${1:statements}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"evaluate={${1:statements}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarymatrix.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\matrix#c\": [\n      \"matrix of nodes\",\n      \"matrix of math nodes\",\n      \"nodes in empty cells\",\n      \"left delimiter=${1:delimiter}\",\n      \"right delimiter=${1:delimiter}\",\n      \"above delimiter=${1:delimiter}\",\n      \"below delimiter=${1:delimiter}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\matrix#c\": [\n      \"every delimiter/.style={${1:options}}\",\n      \"every left delimiter/.style={${1:options}}\",\n      \"every right delimiter/.style={${1:options}}\",\n      \"every above delimiter/.style={${1:options}}\",\n      \"every below delimiter/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarymatrix.skeleton.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarymatrix\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fitandstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fitandstyle{${1:node spec}}{${2:TikZ keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\fitandstyle#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fitandstyle\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"fitandstyle[${3:layer name}]{${1:node spec}}{${2:TikZ keys%keyvals}}\",\n        \"keys\": [\n          \"\\\\fitandstyle#c\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\matrix#c\": [\n      \"label skeleton\",\n      \"style odd rows={${1:TikZ keys}}\",\n      \"style odd rows on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style even rows={${1:TikZ keys}}\",\n      \"style even rows on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style odd tiling rows={${1:TikZ keys}}\",\n      \"style odd tiling rows on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style even tiling rows={${1:TikZ keys}}\",\n      \"style even tiling rows on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style odd columns={${1:TikZ keys}}\",\n      \"style odd columns on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style even columns={${1:TikZ keys}}\",\n      \"style even columns on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style odd tiling columns={${1:TikZ keys}}\",\n      \"style odd tiling columns on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style even tiling columns={${1:TikZ keys}}\",\n      \"style even tiling columns on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style grid={${1:TikZ keys}}\",\n      \"style grid on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style tiling grid={${1:TikZ keys}}\",\n      \"style tiling grid on layer={${1:layer}}{${2:TikZ keys}}\",\n      \"style contour={${1:TikZ keys}}\",\n      \"style contour on layer={${1:layer}}{${2:TikZ keys}}\"\n    ],\n    \"\\\\fitandstyle#c\": [\n      \"fill=\",\n      \"highlight=\",\n      \"opacity=${1:factor}\",\n      \"draw=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarymindmap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarytrees\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"mindmap\",\n      \"every mindmap/.style={${1:options}}\",\n      \"small mindmap\",\n      \"large mindmap\",\n      \"huge mindmap\",\n      \"every concept/.style={${1:options}}\",\n      \"concept color=\",\n      \"every extra concept/.style={${1:options}}\",\n      \"root concept/.append style={${1:options}}\",\n      \"level 1 concept/.append style={${1:options}}\",\n      \"level 2 concept/.append style={${1:options}}\",\n      \"level 3 concept/.append style={${1:options}}\",\n      \"level 4 concept/.append style={${1:options}}\",\n      \"every circle connection bar/.style={${1:options}}\",\n      \"every annotation/.style={${1:options}}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"concept\",\n      \"extra concept\",\n      \"annotation\"\n    ],\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"concept connection\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarynef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"nef\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"ea\",\n      \"ens\",\n      \"ext\",\n      \"net\",\n      \"pnode\",\n      \"rect\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarynfold.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfoffsetpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfoffsetpath{${1:softpath}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetpathfraction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfoffsetpathfraction{${1:softpath}}{${2:width}}{${3:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetpathqfraction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfoffsetpathqfraction{${1:softpath}}{${2:width}}{${3:fraction}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetpathindex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"pgfoffsetpathindex{${1:softpath}}{${2:width}}{${3:i}}{${4:n}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcrossproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathcrossproduct{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathdotproduct\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathdotproduct{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmathcrossdot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathcrossdot{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"pgfpointtaxicabnorm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpointtaxicabnorm{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfoffsetcurve{${1:point1}}{${2:point2}}{${3:point3}}{${4:point4}}{${5:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetcurvenomove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"pgfoffsetcurvenomove{${1:point1}}{${2:point2}}{${3:point3}}{${4:point4}}{${5:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetcurvecallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"pgfoffsetcurvecallback{${1:point1}}{${2:point2}}{${3:point3}}{${4:point4}}{${5:distance}}{${6:num}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfoffsetline{${1:point1}}{${2:point2}}{${3:distance}}\"\n      }\n    },\n    {\n      \"name\": \"pgfoffsetlinenomove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfoffsetlinenomove{${1:point1}}{${2:point2}}{${3:distance}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\draw#c,\\\\ar#c\": [\n      \"nfold\",\n      \"nfold=${1:integer}\",\n      \"scaling nfold\",\n      \"scaling nfold=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryocgx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ocgx\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzset#c,\\\\begin{tikzpicture}#c,\\\\begin{scope}#c,\\\\node#c\": [\n      \"ocg={${1:options}}\",\n      \"switch ocg={${1:ocg list}}\",\n      \"show ocg={${1:ocg list}}\",\n      \"hide ocg={${1:ocg list}}\",\n      \"actions ocg={${1:ocg list1}}{${2:ocg list2}}{${3:ocg list3}}\",\n      \"switch ocg with mark on={${1:ocg ref}}{${2:ocg list}}\",\n      \"switch ocg with mark off={${1:ocg ref}}{${2:ocg list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryoptics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"use optics\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c\": [\n      \"object height=\",\n      \"object aspect ratio=${1:number}\",\n      \"lens\",\n      \"draw focal points\",\n      \"draw focal points={${1:TikZ keys}}\",\n      \"focal length=\",\n      \"lens height=${1:number}\",\n      \"lens type=${1|converging,diverging|}\",\n      \"slit\",\n      \"slit height=${1:number}\",\n      \"double slit\",\n      \"slit separation=${1:number}\",\n      \"mirror\",\n      \"mirror decoration separation=${1:number}\",\n      \"mirror decoration amplitude=${1:number}\",\n      \"spherical mirror\",\n      \"spherical mirror angle=${1:degrees}\",\n      \"spherical mirror type=${1|concave,convex|}\",\n      \"concave mirror\",\n      \"convex mirror\",\n      \"spherical mirror orientation=${1|ltr,rtl|}\",\n      \"draw mirror center\",\n      \"draw mirror center={${1:TikZ keys}}\",\n      \"draw mirror focus\",\n      \"draw mirror focus={${1:TikZ keys}}\",\n      \"polarizer\",\n      \"beam splitter\",\n      \"double amici prism\",\n      \"prism height=\",\n      \"prism apex angle=${1:degrees}\",\n      \"thin optics element\",\n      \"thick optics element\",\n      \"heat filter\",\n      \"screen\",\n      \"diffraction grating\",\n      \"grid\",\n      \"semi-transparent mirror\",\n      \"diaphragm\",\n      \"generic optics io\",\n      \"io body height=\",\n      \"io body aspect ratio=${1:number}\",\n      \"io aperture width=${1:number}\",\n      \"io aperture height=${1:number}\",\n      \"io aperture shift=${1:number}\",\n      \"io orientation=${1|ltr,rtl|}\",\n      \"sensor line\",\n      \"sensor line height=\",\n      \"sensor line aspect ratio=${1:number}\",\n      \"sensor line pixel number=${1:number}\",\n      \"sensor line pixel width=${1:number}\",\n      \"sensor line inner ysep=${1:number}\",\n      \"generic sensor\",\n      \"generic lamp\",\n      \"halogen lamp\",\n      \"spectral lamp\",\n      \"laser\",\n      \"laser'\"\n    ],\n    \"\\\\draw#c\": [\n      \"->-\",\n      \"-<-\",\n      \"->>-\",\n      \"-<<-\",\n      \"->n={n=${1:〈num〉,〈specs〉}}\",\n      \"-<n={n=${1:〈num〉,〈specs〉}}\",\n      \"put arrow\",\n      \"put arrow={${1:options}}\",\n      \"put coordinate=${1:coord} at ${2:position}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryoverlay-beamer-styles.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\tikzset#c,\\\\begin{scope}#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"invisible\",\n      \"visible on=<${1:overlay specification}>\",\n      \"alt=<${1:overlay specification}>{${2:default keys}}{${3:alt keys}}\",\n      \"background text={${1:TikZ keys}}\",\n      \"background default text={${1:TikZ keys}}\",\n      \"text on=<${1:overlay specification}>\",\n      \"background fill={${1:TikZ keys}}\",\n      \"background default fill={${1:TikZ keys}}\",\n      \"fill on=<${1:overlay specification}>\",\n      \"background draw={${1:TikZ keys}}\",\n      \"background default draw={${1:TikZ keys}}\",\n      \"draw on=<${1:overlay specification}>\",\n      \"background filldraw={${1:TikZ keys}}\",\n      \"background default filldraw={${1:TikZ keys}}\",\n      \"filldraw on=<${1:overlay specification}>\",\n      \"background aspect={${1:TikZ keys}}\",\n      \"background default aspect={${1:TikZ keys}}\",\n      \"aspect on=<${1:overlay specification}>\",\n      \"background shade={${1:TikZ keys}}\",\n      \"background default shade={${1:TikZ keys}}\",\n      \"shade on=<${1:overlay specification}>\",\n      \"background shadedraw={${1:TikZ keys}}\",\n      \"background default shadedraw={${1:TikZ keys}}\",\n      \"shadedraw on=<${1:overlay specification}>\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarypatterns.meta.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzdeclarepattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzdeclarepattern{${1:config%keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzdeclarepattern#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pgfdeclarepattern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfdeclarepattern{${1:config%keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzdeclarepattern#c\": [\n      \"name=${1:name}\",\n      \"type=${1|uncolored,colored,form only,inherently colored|}\",\n      \"x=\",\n      \"y=\",\n      \"parameters=\",\n      \"defaults=\",\n      \"bottom left=${1:point}\",\n      \"top right=${1:point}\",\n      \"tile size=${1:point}\",\n      \"tile transformation=${1:transformation}\",\n      \"code=${1:code}\",\n      \"set up code=${1:code}\",\n      \"bounding box=${1:point1} and ${2:point2}\",\n      \"infer tile bounding box\",\n      \"infer tile bounding box=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarypenrose.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryspath3\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"BakePenroseTile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BakePenroseTile{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\BakePenroseTile#c,\\\\pic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PenroseDecomposition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PenroseDecomposition{${1:type%keyvals}}{${2:level}}{${3:seed}}\",\n        \"keys\": [\n          \"\\\\PenroseDecomposition#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"PenroseDecomposition\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PenroseDecomposition[${4:TikZ keys}]{${1:type%keyvals}}{${2:level}}{${3:seed}}\",\n        \"keys\": [\n          \"\\\\PenroseDecomposition#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"DefineTile\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineTile{${1:name%specialDef}}{${2:sides}}{${3:coordinates}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every Penrose tile/.style={${1:TikZ keys}}\",\n      \"Penrose tile ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"every Penrose pic/.style={${1:TikZ keys}}\",\n      \"every kite/.style={${1:TikZ keys}}\",\n      \"every dart/.style={${1:TikZ keys}}\",\n      \"every thin rhombus/.style={${1:TikZ keys}}\",\n      \"every thick rhombus/.style={${1:TikZ keys}}\",\n      \"every pentagon 5/.style={${1:TikZ keys}}\",\n      \"every pentagon 3/.style={${1:TikZ keys}}\",\n      \"every pentagon 2/.style={${1:TikZ keys}}\",\n      \"every pentagram/.style={${1:TikZ keys}}\",\n      \"every boat/.style={${1:TikZ keys}}\",\n      \"every diamond/.style={${1:TikZ keys}}\",\n      \"every golden triangle/.style={${1:TikZ keys}}\",\n      \"every reverse golden triangle/.style={${1:TikZ keys}}\",\n      \"every golden gnomon/.style={${1:TikZ keys}}\",\n      \"every reverse golden gnomon/.style={${1:TikZ keys}}\",\n      \"every circle arc/.style={${1:TikZ keys}}\",\n      \"every long arc/.style={${1:TikZ keys}}\",\n      \"Penrose step=\"\n    ],\n    \"\\\\BakePenroseTile#c,\\\\pic#c\": [\n      \"kite\",\n      \"dart\",\n      \"thin rhombus\",\n      \"thick rhombus\",\n      \"pentagon 5\",\n      \"pentagon 3\",\n      \"pentagon 2\",\n      \"pentagram\",\n      \"boat\",\n      \"diamond\",\n      \"golden triangle\",\n      \"reverse golden triangle\",\n      \"golden gnomon\",\n      \"reverse golden gnomon\",\n      \"%penrosetilename\"\n    ],\n    \"\\\\pic#c\": [\n      \"align with=${1:tile} along ${2:edge}\",\n      \"align with=${1:tile} along ${2:edge} using ${3:number}\"\n    ],\n    \"\\\\PenroseDecomposition#c\": [\n      \"kite\",\n      \"rhombus\",\n      \"pentagon\",\n      \"ktriangle\",\n      \"rtriangle\"\n    ],\n    \"\\\\path#c\": [\n      \"save Penrose path=${1:edge}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"clone Penrose side path={${1:target}}{${2:source}}\",\n      \"clone Penrose tile path={${1:target}}{${2:source}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryperspective.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"3d view\",\n      \"isometric view\",\n      \"perspective\",\n      \"perspective={${1:vanishing points}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarypetri.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"place\",\n      \"transition\",\n      \"token\",\n      \"tokens=${1:integer}\",\n      \"colored tokens={${1:color list}}\",\n      \"structured tokens={${1:text list}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every place/.style={${1:options}}\",\n      \"every transition/.style={${1:options}}\",\n      \"every token/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryplotmarks.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"mark color=\",\n      \"text mark=${1:text}\",\n      \"text mark as node\",\n      \"text mark style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarypositioning.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"on grid\",\n      \"node distance=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"above left=of ${1:node}\",\n      \"below left=of ${1:node}\",\n      \"above right=of ${1:node}\",\n      \"below right=of ${1:node}\",\n      \"base left=of ${1:node}\",\n      \"base right=of ${1:node}\",\n      \"mid left=of ${1:node}\",\n      \"mid right=of ${1:node}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryprofiler.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pgfprofilenew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofilenew{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilenewforcommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfprofilenewforcommand{${1:macro}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilenewforcommand\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pgfprofilenewforcommand[${3:profiler entry name}]{${1:macro}}{${2:args}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilecs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprofilenewforcommandpattern\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfprofilenewforcommandpattern{${1:macro}}{${2:arg pattern}}{${3:invocation pattern}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilenewforcommandpattern\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"pgfprofilenewforcommandpattern[${4:profiler entry name}]{${1:macro}}{${2:arg pattern}}{${3:invocation pattern}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofileshowinvocationsfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofileshowinvocationsfor{${1:profiler entry name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofileshowinvocationsexpandedfor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofileshowinvocationsexpandedfor{${1:profiler entry name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilenewforenvironment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofilenewforenvironment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilenewforenvironment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pgfprofilenewforenvironment[${2:profiler entry name}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofileenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfprofilestart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofilestart{${1:profiler entry name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofileend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofileend{${1:profiler entry name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofilepostprocess\"\n    },\n    {\n      \"name\": \"pgfprofilesetrel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfprofilesetrel{${1:profiler entry name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfprofileifisrunning\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfprofileifisrunning{${1:profiler entry name}}{${2:true code}}{${3:false code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryquantikz.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gate{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}][${3:width}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}][${3:width}][${4:height}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phase{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phase[${2:TikZ keys%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"lstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstick{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstick[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rstick{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rstick[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qw\"\n    },\n    {\n      \"name\": \"cw\"\n    },\n    {\n      \"name\": \"push\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"push{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"alias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alias{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"trash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trash{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"trash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trash[${2:TikZ keys%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qwbundle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qwbundle{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qwbundle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qwbundle[${2:alternate}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"qwbundle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qwbundle[${2:alternate=2}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ctrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"octrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octrl{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"targ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"targ{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"targ\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"targ[${2:TikZ keys%keyvals}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"control\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"control{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"control\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"control[${2:TikZ keys%keyvals}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ocontrol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocontrol{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ocontrol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ocontrol[${2:TikZ keys%keyvals}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"targX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"targX{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"targX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"targX[${2:TikZ keys%keyvals}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"swap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swap{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"vqw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vqw{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"vcw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcw{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"cwbend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cwbend{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ctrlbundle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrlbundle{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ctrlbundle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ctrlbundle[${2:1 or 2}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ctrlbundle\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ctrlbundle[${2:1 or 2}][${3:TikZ keys%keyvals}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"gateinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gateinput{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gateinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gateinput[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gateoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gateoutput{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gateoutput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gateoutput[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slice{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"slice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"slice[${2:options%keyvals}]{${1:title%text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"phantomgate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantomgate{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"hphantomgate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphantomgate{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghost{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ghost[${2:options}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ghost[${2:options}][${3:width}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"ghost[${2:options}][${3:width}][${4:height}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"midstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midstick{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"midstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"midstick[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linethrough\"\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meter[${2:TikZ keys%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"measuretab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measuretab{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measuretab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"measuretab[${2:TikZ keys%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"meterD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meterD{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"meterD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meterD[${2:TikZ keys%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measure{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"measure[${2:TikZ keys%keyvals}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"gategroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gategroup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"gategroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gategroup[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wave\"\n    },\n    {\n      \"name\": \"wave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wave[${1:TikZ keys%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"makeebit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeebit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeebit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makeebit[${2:angle}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makeebit\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"makeebit[${2:angle}][${3:TikZ keys%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proj{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:left%formula}}{${2:right%formula}}\"\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrow[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"ar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"rar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"lar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"dar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"uar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"drar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"drar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"urar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"urar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"dlar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dlar[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"ular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ular[${1:options}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quantikz\"\n    },\n    {\n      \"name\": \"quantikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{quantikz}#c,\\\\begin{tikzcd}#c\",\n          \"\\\\begin{quantikz}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{quantikz}#c,\\\\begin{tikzcd}#c\": [\n      \"slice all\",\n      \"remove end slices=${1:integer}\",\n      \"slice titles=${1:text}\",\n      \"slice style={${1:TikZ keys}}\",\n      \"slice label style={${1:TikZ keys}}\",\n      \"vertical slice labels\",\n      \"align equals at=${1:wire number}\",\n      \"thin lines\",\n      \"transparent\"\n    ],\n    \"\\\\gate#c,\\\\lstick#c,\\\\rstick#c,\\\\gateinput#c,\\\\gateoutput#c,\\\\slice#c,\\\\midstick#c,\\\\gategroup#c\": [\n      \"wires=${1:integer}\",\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"cwires=${1:integer}\",\n      \"nwires=${1:integer}\",\n      \"bundle=${1:integer}\",\n      \"disable auto height\",\n      \"brackets=${1|none,left,right,both|}\",\n      \"${1:integer}\",\n      \"steps=${1:integer}\",\n      \"background\",\n      \"swap\"\n    ],\n    \"\\\\begin{quantikz}#c\": [\n      \"every diagram\",\n      \"diagrams={${1:options}}\",\n      \"every matrix\",\n      \"every cell\",\n      \"cells={${1:options}}\",\n      \"row sep=\",\n      \"column sep=\",\n      \"sep=\",\n      \"cramped\",\n      \"math mode\",\n      \"background color=\",\n      \"every arrow\",\n      \"arrows={${1:options}}\",\n      \"arrow style=${1|Latin Modern,math font,tikz|}\",\n      \"every label\",\n      \"labels={${1:options}}\",\n      \"center yshift=\",\n      \"ampersand replacement=${1:macro}\",\n      \"shorten=\",\n      \"crossing over\",\n      \"crossing over clearance=\",\n      \"marking\",\n      \"description\",\n      \"%color\",\n      \"color=\",\n      \"in=${1:degrees}\",\n      \"out=${1:degrees}\",\n      \"font=${1:font commands}\",\n      \"line width=\",\n      \"shorten=\",\n      \"crossing over\",\n      \"crossing over clearance=\",\n      \"marking\",\n      \"description\",\n      \"%color\",\n      \"color=\",\n      \"in=${1:degrees}\",\n      \"out=${1:degrees}\",\n      \"font=${1:font commands}\",\n      \"line width=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryquantikz2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"pgfmath\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"col\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setwiretype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setwiretype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"setwiretype\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setwiretype[${2:n}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wire{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wire[${2:dir}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"wire[${2:dir}][${3:n}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"wire\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"wire[${2:dir}][${3:n}][${4:TikZ keys}]{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"wireoverride\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wireoverride{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"qwbundle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qwbundle{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"qwbundle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"qwbundle[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\qwbundle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"permute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"permute{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"linethrough\"\n    },\n    {\n      \"name\": \"push\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"push{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"phantomgate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phantomgate{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"hphantomgate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hphantomgate{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phase{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"phase\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"phase[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\phase#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lstick{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"lstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lstick[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\lstick#c,\\\\midstick#c,\\\\rstick#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"midstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"midstick{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"midstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"midstick[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\lstick#c,\\\\midstick#c,\\\\rstick#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rstick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rstick{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"rstick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rstick[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\lstick#c,\\\\midstick#c,\\\\rstick#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gate{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}][${3:min width}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gate\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"gate[${2:options%keyvals}][${3:min width}][${4:min height}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gate#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gateinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gateinput{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"gateinput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gateinput[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gateinput#c,\\\\gateoutput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gateoutput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gateoutput{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"gateoutput\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gateoutput[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gateinput#c,\\\\gateoutput#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meter{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meter[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"meter[${2:options%keyvals}][${3:min width}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"meter[${2:options%keyvals}][${3:min width}][${4:min height}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metercw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"metercw{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"metercw\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"metercw[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metercw\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"metercw[${2:options%keyvals}][${3:min width}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"metercw\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"metercw[${2:options%keyvals}][${3:min width}][${4:min height}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\meter#c,\\\\metercw#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measure{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"measure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"measure[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"measuretab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"measuretab{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"measuretab\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"measuretab[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"meterD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meterD{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"meterD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"meterD[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"inputD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputD{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"inputD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputD[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"swap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"swap{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"swap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"swap[${2:options%keyvals}]{${1:n}}\",\n        \"keys\": [\n          \"\\\\swap#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ctrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctrl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"ctrl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ctrl[${2:options%keyvals}]{${1:n}}\",\n        \"keys\": [\n          \"\\\\ctrl#c,\\\\octrl#c\",\n          \"\\\\ctrl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"octrl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"octrl{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"octrl\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"octrl[${2:options%keyvals}]{${1:n}}\",\n        \"keys\": [\n          \"\\\\ctrl#c,\\\\octrl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"control\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"control{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"control\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"control[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\control#c,\\\\ocontrol#c\",\n          \"\\\\control#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ocontrol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocontrol{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ocontrol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ocontrol[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\control#c,\\\\ocontrol#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"targ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"targ{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"targ\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"targ[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\targ#c,\\\\targX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"targX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"targX{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"targX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"targX[${2:options%keyvals}]{${1:}}\",\n        \"keys\": [\n          \"\\\\targ#c,\\\\targX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"gategroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gategroup{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"gategroup\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gategroup[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\gategroup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slice\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"slice{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"slice\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"slice[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\slice#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makeebit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeebit{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"makeebit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makeebit[${2:options%keyvals}]{${1:label text}}\",\n        \"keys\": [\n          \"\\\\makeebit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"trash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trash{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"trash\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"trash[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ground{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ground\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ground[${2:TikZ keys}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"wave\"\n    },\n    {\n      \"name\": \"wave\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wave[${1:TikZ keys}]\"\n      }\n    },\n    {\n      \"name\": \"verticaltext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verticaltext{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ket{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"bra\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bra{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"proj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proj{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"braket\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"braket{${1:arg1%formula}}{${2:arg2%formula}}\"\n      }\n    },\n    {\n      \"name\": \"forceredefine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ghost\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ghost{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ghost[${2:min width}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"ghost\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"ghost[${2:min width}][${3:min height}]{${1:label text}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdeclareanchoralias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"pgfdeclareanchoralias{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pgfaddtoshape\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfaddtoshape{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"quantikz\"\n    },\n    {\n      \"name\": \"quantikz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{quantikz}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{quantikz}#c\": [\n      \"wire types={${1:list}}\",\n      \"thin lines\",\n      \"transparent\",\n      \"classical gap=\",\n      \"align equals at=${1:n}\",\n      \"slice all\",\n      \"remove end slices=${1:n}\",\n      \"slice titles=${1:text}\",\n      \"slice style={${1:TikZ keys}}\",\n      \"slice label style={${1:TikZ keys}}\",\n      \"vertical slice labels\",\n      \"column sep=\",\n      \"row sep=\",\n      \"between origins\",\n      \"color=\"\n    ],\n    \"\\\\qwbundle#c\": [\n      \"style={${1:TikZ keys}}\",\n      \"Strike Height=\",\n      \"Strike Width=\"\n    ],\n    \"\\\\phase#c\": [\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\"\n    ],\n    \"\\\\lstick#c,\\\\midstick#c,\\\\rstick#c\": [\n      \"${1:n}\",\n      \"wires=${1:n}\",\n      \"label style={${1:TikZ keys}}\",\n      \"brackets=${1|none,left,right,both|}\",\n      \"braces=\"\n    ],\n    \"\\\\gate#c\": [\n      \"${1:n}\",\n      \"wires=${1:n}\",\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"disable auto height\",\n      \"swap\"\n    ],\n    \"\\\\gateinput#c,\\\\gateoutput#c\": [\n      \"${1:n}\",\n      \"wires=${1:n}\",\n      \"label style={${1:TikZ keys}}\",\n      \"braces=\"\n    ],\n    \"\\\\meter#c,\\\\metercw#c\": [\n      \"${1:n}\",\n      \"wires=${1:n}\",\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"disable auto height\"\n    ],\n    \"\\\\swap#c\": [\n      \"partial swap=${1:text}\",\n      \"partial position=${1:factor}\",\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"vertical wire=${1|q,c,b|}\"\n    ],\n    \"\\\\ctrl#c,\\\\octrl#c\": [\n      \"style={${1:TikZ keys}}\",\n      \"wire style={${1:TikZ keys}}\",\n      \"vertical wire=${1|q,c,b|}\"\n    ],\n    \"\\\\ctrl#c\": [\n      \"open\"\n    ],\n    \"\\\\control#c,\\\\ocontrol#c\": [\n      \"style={${1:TikZ keys}}\"\n    ],\n    \"\\\\control#c\": [\n      \"open\"\n    ],\n    \"\\\\targ#c,\\\\targX#c\": [\n      \"style={${1:TikZ keys}}\"\n    ],\n    \"\\\\gategroup#c\": [\n      \"${1:n}\",\n      \"wires=${1:n}\",\n      \"steps=${1:m}\",\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"background\"\n    ],\n    \"\\\\slice#c\": [\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\"\n    ],\n    \"\\\\makeebit#c\": [\n      \"style={${1:TikZ keys}}\",\n      \"label style={${1:TikZ keys}}\",\n      \"angle=${1:degrees}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryquotes.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every label quotes/.style={${1:options}}\",\n      \"quotes mean pin\",\n      \"every pin quotes/.style={${1:options}}\",\n      \"node quotes mean=${1:replacement}\",\n      \"every edge quotes/.style={${1:options}}\",\n      \"every pic quotes/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryrdf.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzrdfhashmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzrdfcontext\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"rdf engine on\",\n      \"rdf engine={${1:rdf keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryrulercompass.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"intersections\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thepointlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"point{${1:path1}}{${2:path2}}{${3:intersection}}\"\n      }\n    },\n    {\n      \"name\": \"point\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"point[${4:styles}]{${1:path1}}{${2:path2}}{${3:intersection}}\"\n      }\n    },\n    {\n      \"name\": \"ruler\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ruler{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"ruler\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ruler[${3:styles}]{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"compass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"compass{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"compass\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"compass[${3:styles}]{${1:point1}}{${2:point2}}\"\n      }\n    },\n    {\n      \"name\": \"constrain\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"stop jumping\",\n      \"max size={${1:width}}{${2:height}}\",\n      \"enclosing box/offset=\",\n      \"constrain\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshadings.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"top color=\",\n      \"bottom color=\",\n      \"middle color=\",\n      \"left color=\",\n      \"right color=\",\n      \"ball color=\",\n      \"lower left=\",\n      \"upper left=\",\n      \"upper right=\",\n      \"lower right=\",\n      \"inner color=\",\n      \"outer color=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshadows.blur.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shadows\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"blur shadow\",\n      \"blur shadow={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshadows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c,\\\\matrix#c,\\\\calendar#c,\\\\chainin#c,\\\\arrow#c,\\\\arrowreversed#c\": [\n      \"general shadow\",\n      \"general shadow={${1:options}}\",\n      \"drop shadow\",\n      \"drop shadow={${1:options}}\",\n      \"copy shadow\",\n      \"copy shadow={${1:options}}\",\n      \"double copy shadow\",\n      \"double copy shadow={${1:options}}\",\n      \"circular drop shadow\",\n      \"circular drop shadow={${1:options}}\",\n      \"circular glow\",\n      \"circular glow={${1:options}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every shadow/.style={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.arrows.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"single arrow\",\n      \"double arrow\",\n      \"arrow box\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"single arrow tip angle=${1:degrees}\",\n      \"single arrow head extend=\",\n      \"single arrow head indent=\",\n      \"double arrow tip angle=${1:degrees}\",\n      \"double arrow head extend=\",\n      \"double arrow head indent=\",\n      \"arrow box tip angle=${1:degrees}\",\n      \"arrow box head extend=\",\n      \"arrow box head indent=\",\n      \"arrow box shaft width=\",\n      \"arrow box north arrow=\",\n      \"arrow box south arrow=\",\n      \"arrow box east arrow=\",\n      \"arrow box west arrow=\",\n      \"arrow box arrows={${1:list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.callouts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"rectangle callout\",\n      \"ellipse callout\",\n      \"cloud callout\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"callout relative pointer=${1:coordinate}\",\n      \"callout absolute pointer=${1:coordinate}\",\n      \"callout pointer shorten=\",\n      \"callout pointer width=\",\n      \"callout pointer arc=${1:degrees}\",\n      \"callout pointer start size=\",\n      \"callout pointer end size=\",\n      \"callout pointer segments=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.gates.ee.IEC.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"generic circle IEC\",\n      \"generic diode IEC\",\n      \"breakdown diode IEC\",\n      \"var resistor IEC\",\n      \"inductor IEC\",\n      \"capacitor IEC\",\n      \"battery IEC\",\n      \"ground IEC\",\n      \"make contact IEC\",\n      \"var make contact IEC\",\n      \"break contact IEC\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.gates.ee.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"rectangle ee\",\n      \"circle ee\",\n      \"direction ee\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"direction ee arrow=${1:arrow tip name}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.gates.logic.IEC.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.gates.logic\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"and gate IEC symbol=${1:text}\",\n      \"nand gate IEC symbol=${1:text}\",\n      \"or gate IEC symbol=${1:text}\",\n      \"nor gate IEC symbol=${1:text}\",\n      \"xor gate IEC symbol=${1:text}\",\n      \"xnor gate IEC symbol=${1:text}\",\n      \"not gate IEC symbol=${1:text}\",\n      \"buffer gate IEC symbol=${1:text}\",\n      \"logic gate IEC symbol align=${1|top,bottom,left,right|}\",\n      \"logic gate IEC symbol color=\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"and gate IEC\",\n      \"nand gate IEC\",\n      \"or gate IEC\",\n      \"xor gate IEC\",\n      \"xnor gate IEC\",\n      \"not gate IEC\",\n      \"buffer gate IEC\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.gates.logic.US.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.gates.logic\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"logic gate anchors use bounding box=\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"and gate US\",\n      \"and gate CDH\",\n      \"nand gate US\",\n      \"nand gate CDH\",\n      \"or gate US\",\n      \"nor gate US\",\n      \"xor gate US\",\n      \"xnor gate US\",\n      \"not gate US\",\n      \"buffer gate US\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.gates.logic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"logic gate inputs={${1:input list}}\",\n      \"logic gate inverted radius=\",\n      \"logic gate input sep=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.geometric.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"diamond\",\n      \"ellipse\",\n      \"trapezium\",\n      \"semicircle\",\n      \"regular polygon\",\n      \"star\",\n      \"isosceles triangle\",\n      \"kite\",\n      \"dart\",\n      \"circular sector\",\n      \"cylinder\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"aspect=${1:value}\",\n      \"trapezium left angle=${1:degrees}\",\n      \"trapezium right angle=${1:degrees}\",\n      \"trapezium angle=${1:degrees}\",\n      \"trapezium stretches\",\n      \"trapezium stretches body\",\n      \"regular polygon sides=${1:integer}\",\n      \"star points=${1:integer}\",\n      \"star point height=\",\n      \"star point ratio=${1:number}\",\n      \"isosceles triangle apex angle=${1:degrees}\",\n      \"isosceles triangle stretches\",\n      \"kite upper vertex angle=${1:degrees}\",\n      \"kite lower vertex angle=${1:degrees}\",\n      \"kite vertex angles=${1:degrees}\",\n      \"dart tip angle=${1:degrees}\",\n      \"dart tail angle=${1:degrees}\",\n      \"circular sector angle=${1:degrees}\",\n      \"cylinder uses custom fill\",\n      \"cylinder end fill=\",\n      \"cylinder body fill=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.arrows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.callouts\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.multipart\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.misc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"cross out\",\n      \"strike out\",\n      \"rounded rectangle\",\n      \"chamfered rectangle\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"rounded rectangle arc length=${1:degrees}\",\n      \"rounded rectangle west arc=${1|concave,convex,none|}\",\n      \"rounded rectangle east arc=${1|concave,convex,none|}\",\n      \"chamfered rectangle angle=${1:degrees}\",\n      \"chamfered rectangle xsep=\",\n      \"chamfered rectangle ysep=\",\n      \"chamfered rectangle sep=\",\n      \"chamfered rectangle corners={${1:list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.multipart.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"circle split\",\n      \"circle solidus\",\n      \"ellipse split\",\n      \"rectangle split\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"rectangle split allocate boxes=${1:number}\",\n      \"rectangle split parts=${1:number}\",\n      \"rectangle split empty part width=\",\n      \"rectangle split empty part height=\",\n      \"rectangle split empty part depth=\",\n      \"rectangle split part align={${1:list}}\",\n      \"rectangle split draw splits\",\n      \"rectangle split use custom fill\",\n      \"rectangle split part fill={${1:list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryshapes.symbols.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"correct forbidden sign\",\n      \"forbidden sign\",\n      \"magnifying glass\",\n      \"cloud\",\n      \"starburst\",\n      \"signal\",\n      \"tape\",\n      \"magnetic tape\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\nodepart#c,\\\\pic#c\": [\n      \"magnifying glass handle angle fill=${1:degrees}\",\n      \"magnifying glass handle angle aspect=${1:factor}\",\n      \"cloud puffs=${1:integer}\",\n      \"cloud puff arc=${1:degrees}\",\n      \"cloud ignores aspect\",\n      \"starburst points=${1:integer}\",\n      \"starburst point height=\",\n      \"random starburst=${1:integer}\",\n      \"signal pointer angle=${1:degrees}\",\n      \"signal from=${1:direction}\",\n      \"signal from=${1:direction} and ${2:opposite direction}\",\n      \"signal to=${1:direction}\",\n      \"signal to=${1:direction} and ${2:opposite direction}\",\n      \"tape bend top=${1|in and out,out and in,none|}\",\n      \"tape bend bottom=${1|in and out,out and in,none|}\",\n      \"tape bend height=\",\n      \"magnetic tape tail extend=\",\n      \"magnetic tape tail=${1:proportion}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryspath3.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"spath3\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getComponentOf\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getComponentOf{${1:macro%cmd}}{${2:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"spath/adjust and close globally=${1:path}\",\n      \"spath/adjust and close=${1:path}\",\n      \"spath/append no move=${1:name}\",\n      \"spath/append reverse no move=${1:name}\",\n      \"spath/append reverse=${1:name}\",\n      \"spath/append=${1:name}\",\n      \"spath/clone globally={${1:target}}{${2:source}}\",\n      \"spath/clone={${1:target}}{${2:source}}\",\n      \"spath/close globally with curve={${1:path}}{${2:splice path}}\",\n      \"spath/close globally with={${1:path}}{${2:splice path}}\",\n      \"spath/close globally=${1:path}\",\n      \"spath/close with curve={${1:path}}{${2:splice path}}\",\n      \"spath/close with={${1:path}}{${2:splice path}}\",\n      \"spath/close=${1:path}\",\n      \"spath/join with={${1:path}}{${2:path, options}}\",\n      \"spath/open globally=${1:path}\",\n      \"spath/open=${1:path}\",\n      \"spath/reverse globally=${1:name}\",\n      \"spath/reverse=${1:name}\",\n      \"spath/save global=${1:name}\",\n      \"spath/save=${1:name}\",\n      \"spath/shorten at both ends={${1:path}}{${2:length}}\",\n      \"spath/shorten at end={${1:path}}{${2:length}}\",\n      \"spath/shorten at start={${1:path}}{${2:length}}\",\n      \"spath/shorten globally at both ends={${1:path}}{${2:length}}\",\n      \"spath/shorten globally at end={${1:path}}{${2:length}}\",\n      \"spath/shorten globally at start={${1:path}}{${2:length}}\",\n      \"spath/show current path\",\n      \"spath/show=${1:name}\",\n      \"spath/split at into={${1:start path}}{${2:end path}}{${3:path}}{${4:parameter}}\",\n      \"spath/split at keep end={${1:path}}{${2:parameter}}\",\n      \"spath/split at keep middle={${1:path}}{${2:parameter}}{${3:parameter}}\",\n      \"spath/split at keep start={${1:path}}{${2:parameter}}\",\n      \"spath/split at={${1:path}}{${2:parameter}}\",\n      \"spath/split globally at into={${1:start path}}{${2:end path}}{${3:path}}{${4:parameter}}\",\n      \"spath/split globally at keep end={${1:path}}{${2:parameter}}\",\n      \"spath/split globally at keep middle={${1:path}}{${2:parameter}}{${3:parameter}}\",\n      \"spath/split globally at keep start={${1:path}}{${2:parameter}}\",\n      \"spath/split globally at={${1:path}}{${2:parameter}}\",\n      \"spath/to=${1:name}\",\n      \"spath/transform global={${1:name}}{${2:transformations}}\",\n      \"spath/transform={${1:name}}{${2:transformations}}\",\n      \"spath/translate globally={${1:name}}{${2:x-dimen}}{${3:y-dimen}}\",\n      \"spath/translate={${1:name}}{${2:x-dimen}}{${3:y-dimen}}\",\n      \"spath/use=${1:name}\",\n      \"spath/use={${1:name,options}}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\nodepart#c\": [\n      \"spath/transform to={${1:path}}{${2:parameter}}\",\n      \"spath/upright transform to={${1:path}}{${2:parameter}}\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\scoped#c\": [\n      \"spath/get components of globally={${1:path}}{${2:macro}}\",\n      \"spath/get components of={${1:path}}{${2:macro}}\",\n      \"spath/global knot={${1:path}}{${2:gap}}{${3:components}}\",\n      \"spath/insert gaps after components={${1:path}}{${2:gap}}\",\n      \"spath/insert gaps after components={${1:path}}{${2:gap}}{${3:components}}\",\n      \"spath/insert gaps after segments={${1:path}}{${2:gap}}\",\n      \"spath/insert gaps after segments={${1:path}}{${2:gap}}{${3:segments}}\",\n      \"spath/insert gaps globally after components={${1:path}}{${2:gap}}\",\n      \"spath/insert gaps globally after components={${1:path}}{${2:gap}}{${3:components}}\",\n      \"spath/insert gaps globally after segments={${1:path}}{${2:gap}}\",\n      \"spath/insert gaps globally after segments={${1:path}}{${2:gap}}{${3:segments}}\",\n      \"spath/join components globally upright with={${1:path}}{${2:splice path}}\",\n      \"spath/join components globally upright with={${1:path}}{${2:splice path}}{${3:list}}\",\n      \"spath/join components globally with curve={${1:path}}\",\n      \"spath/join components globally with curve={${1:path}}{${2:list}}\",\n      \"spath/join components globally with={${1:path}}{${2:splice path}}\",\n      \"spath/join components globally with={${1:path}}{${2:splice path}}{${3:list}}\",\n      \"spath/join components globally={${1:path}}{${2:components}}\",\n      \"spath/join components upright with={${1:path}}{${2:splice path}}\",\n      \"spath/join components upright with={${1:path}}{${2:splice path}}{${3:list}}\",\n      \"spath/join components with curve={${1:path}}\",\n      \"spath/join components with curve={${1:path}}{${2:list}}\",\n      \"spath/join components with={${1:path}}{${2:splice path}}\",\n      \"spath/join components with={${1:path}}{${2:splice path}}{${3:list}}\",\n      \"spath/join components={${1:path}}{${2:components}}\",\n      \"spath/knot={${1:path}}{${2:gap}}{${3:components}}\",\n      \"spath/remove components globally={${1:path}}{${2:list}}\",\n      \"spath/remove components={${1:path}}{${2:list}}\",\n      \"spath/remove empty components globally=${1:path}\",\n      \"spath/remove empty components=${1:path}\",\n      \"spath/render components=${1:path}\",\n      \"spath/replace lines globally=${1:path}\",\n      \"spath/replace lines=${1:path}\",\n      \"spath/span global={${1:name}}{${2:start point}}{${3:end point}}\",\n      \"spath/span={${1:name}}{${2:start point}}{${3:end point}}\",\n      \"spath/split at intersections with={${1:first}}{${2:second}}\",\n      \"spath/split at intersections={${1:first}}{${2:second}}\",\n      \"spath/split at self intersections=${1:path}\",\n      \"spath/split globally at intersections with={${1:first}}{${2:second}}\",\n      \"spath/split globally at intersections={${1:first}}{${2:second}}\",\n      \"spath/split globally at self intersections=${1:path}\",\n      \"spath/spot weld globally=${1:path}\",\n      \"spath/spot weld=${1:path}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryspy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"spy scope={${1:options}}\",\n      \"every spy in node/.style={${1:options}}\",\n      \"spy connection path=${1:code}\",\n      \"every spy on node/.style={${1:options}}\",\n      \"spy using outlines={${1:options}}\",\n      \"spy using overlays={${1:options}}\"\n    ],\n    \"\\\\spy#c\": [\n      \"size=\",\n      \"height=\",\n      \"width=\",\n      \"connect spies\",\n      \"%color\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarysvg.path.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfparser\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfpathsvg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfpathsvg{${1:path}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryswigs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c\": [\n      \"swig hsplit={${1:options}}\",\n      \"swig vsplit={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryswitching-architectures.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"clos snb\",\n      \"clos rear\",\n      \"benes\",\n      \"benes complete\",\n      \"banyan omega\",\n      \"banyan flip\",\n      \"clos snb example\",\n      \"clos rear example\",\n      \"clos example with labels\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c\": [\n      \"N=${1:num input ports}\",\n      \"M=${1:num output ports}\",\n      \"r1=${1:num modules}\",\n      \"r3=${1:num modules}\",\n      \"P=${1:num ports}\",\n      \"module size=\",\n      \"module ysep=${1:number}\",\n      \"module xsep=${1:number}\",\n      \"module label opacity=${1:factor}\",\n      \"pin length factor=${1:factor}\",\n      \"module font=${1:font commands}\",\n      \"connections disabled\",\n      \"N label=${1:text}\",\n      \"r1 label=${1:text}\",\n      \"m1 label=${1:text}\",\n      \"r2 label=${1:text}\",\n      \"M label=${1:text}\",\n      \"r3 label=${1:text}\",\n      \"m3 label=${1:text}\",\n      \"set math mode labels\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarythrough.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"meet={${1:specification}}\",\n      \"slice={${1:specification}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytikzlings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytikzmark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tikzmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzmark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmark\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tikzmark[${2:drawing command}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"pgfmark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pgfmark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"iftikzmark\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftikzmark{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftikzmarkexists\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iftikzmarkexists{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"iftikzmarkoncurrentpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iftikzmarkoncurrentpage{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"iftikzmarkonpage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftikzmarkonpage{${1:name}}{${2:page}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmarknode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzmarknode{${1:name}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"tikzmarknode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tikzmarknode[${3:options%keyvals}]{${1:name}}{${2:contents}}\"\n      }\n    },\n    {\n      \"name\": \"subnode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subnode{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"subnode\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"subnode[${3:options%keyvals}]{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"SaveNode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaveNode{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SaveNode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SaveNode[${2:group name}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"usetikzmarklibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetikzmarklibrary{${1:library%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetikzmarklibrary\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"StartHighlighting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StartHighlighting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"StartHighlighting[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"StopHighlighting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Highlight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Highlight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Highlight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Highlight[${2:options%keyvals}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tikzmarkmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzmarkmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:prefix}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usetikzmarklibrary\": [\n      \"listings\",\n      \"ams\",\n      \"highlighting\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytilings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryspath3\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefineTile\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefineTile{${1:name%specialDef}}{${2:sides}}{${3:vertices}}\"\n      }\n    },\n    {\n      \"name\": \"BakeTile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BakeTile{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\BakeTile#c,\\\\pic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TilingDecomposition\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TilingDecomposition{${1:type%keyvals}}{${2:level}}{${3:seed}}\",\n        \"keys\": [\n          \"\\\\TilingDecomposition#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TilingDecomposition\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"TilingDecomposition[${4:TikZ keys}]{${1:type%keyvals}}{${2:level}}{${3:seed}}\",\n        \"keys\": [\n          \"\\\\TilingDecomposition#c\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\BakeTile#c,\\\\pic#c\": [\n      \"%penrosetilename\"\n    ],\n    \"\\\\TilingDecomposition#c\": [\n      \"kite\",\n      \"rhombus\",\n      \"pentagon\",\n      \"ktriangle\",\n      \"rtriangle\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every tile/.style={${1:TikZ keys}}\",\n      \"tile ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"every circle arc/.style={${1:TikZ keys}}\",\n      \"every long arc/.style={${1:TikZ keys}}\",\n      \"tiling step=\",\n      \"first tile/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\pic#c\": [\n      \"align with=${1:tile} along ${2:edge}\",\n      \"align with=${1:tile} along ${2:edge} using ${3:number}\"\n    ],\n    \"\\\\path#c\": [\n      \"save tiling path=${1:edge}\"\n    ],\n    \"\\\\tikzset#c\": [\n      \"clone tiling side path={${1:target}}{${2:source}}\",\n      \"clone tile path={${1:target}}{${2:source}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytilings.penrose.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibrarytilings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\BakeTile#c,\\\\pic#c\": [\n      \"kite\",\n      \"dart\",\n      \"thin rhombus\",\n      \"thick rhombus\",\n      \"pentagon 5\",\n      \"pentagon 3\",\n      \"pentagon 2\",\n      \"pentagram\",\n      \"boat\",\n      \"diamond\",\n      \"golden triangle\",\n      \"reverse golden triangle\",\n      \"golden gnomon\",\n      \"reverse golden gnomon\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every kite/.style={${1:TikZ keys}}\",\n      \"every dart/.style={${1:TikZ keys}}\",\n      \"every thin rhombus/.style={${1:TikZ keys}}\",\n      \"every thick rhombus/.style={${1:TikZ keys}}\",\n      \"every pentagon 5/.style={${1:TikZ keys}}\",\n      \"every pentagon 3/.style={${1:TikZ keys}}\",\n      \"every pentagon 2/.style={${1:TikZ keys}}\",\n      \"every pentagram/.style={${1:TikZ keys}}\",\n      \"every boat/.style={${1:TikZ keys}}\",\n      \"every diamond/.style={${1:TikZ keys}}\",\n      \"every golden triangle/.style={${1:TikZ keys}}\",\n      \"every reverse golden triangle/.style={${1:TikZ keys}}\",\n      \"every golden gnomon/.style={${1:TikZ keys}}\",\n      \"every reverse golden gnomon/.style={${1:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytilings.polykite.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tilings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DefinePolykiteTile\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefinePolykiteTile{${1:name%specialDef}}{${2:a}}{${3:b}}\"\n      }\n    },\n    {\n      \"name\": \"DefinePolykiteTile*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DefinePolykiteTile*{${1:name%specialDef}}{${2:a}}{${3:b}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\BakeTile#c,\\\\pic#c\": [\n      \"aperiodical hat\",\n      \"aperiodical turtle\",\n      \"spectral hat\",\n      \"spectral turtle\",\n      \"spectre\",\n      \"meta cluster T\",\n      \"meta cluster P\",\n      \"meta cluster F\",\n      \"meta cluster H\",\n      \"super cluster T\",\n      \"super cluster P\",\n      \"super cluster F\",\n      \"super cluster H\",\n      \"subcluster T\",\n      \"subcluster P\",\n      \"subcluster F\",\n      \"subcluster H\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytqft.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"every tqft/.style={${1:TikZ keys}}\",\n      \"tqft/every boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every incoming boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every outgoing boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every lower boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every incoming lower boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every outgoing lower boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every upper boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every incoming upper boundary component/.style={${1:TikZ keys}}\",\n      \"tqft/every outgoing upper boundary component/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\node#c,\\\\coordinate#c,\\\\pic#c\": [\n      \"tqft/pair of pants\",\n      \"tqft/reverse pair of pants\",\n      \"tqft/cylinder to prior\",\n      \"tqft/cylinder to next\",\n      \"tqft/cylinder\",\n      \"tqft/cap\",\n      \"tqft/cup\"\n    ],\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\node#c,\\\\coordinate#c,\\\\pic#c\": [\n      \"tqft/view from=${1|incoming,outgoing|}\",\n      \"tqft/cobordism height=\",\n      \"tqft/boundary separation=\",\n      \"tqft/circle x radius=\",\n      \"tqft/circle y radius=\",\n      \"tqft/incoming boundary components=${1:integer}\",\n      \"tqft/skip incoming boundary components=${1:integer}\",\n      \"tqft/outgoing boundary components=${1:integer}\",\n      \"tqft/skip outgoing boundary components=${1:integer}\",\n      \"tqft/offset=${1:number}\",\n      \"tqft/genus=${1:integer}\",\n      \"tqft/twisted\",\n      \"tqft/incoming boundary component ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/outgoing boundary component ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/incoming lower boundary component ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/outgoing lower boundary component ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/cobordism/.style={${1:TikZ keys}}\",\n      \"tqft/genus upper/.style={${1:TikZ keys}}\",\n      \"tqft/genus lower/.style={${1:TikZ keys}}\",\n      \"tqft/hole ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/hole ${1:<n>} upper/.style={${2:TikZ keys}}\",\n      \"tqft/hole ${1:<n>} lower/.style={${2:TikZ keys}}\",\n      \"tqft/cobordism edge/.style={${1:TikZ keys}}\",\n      \"tqft/cobordism outer edge/.style={${1:TikZ keys}}\",\n      \"tqft/between incoming/.style={${1:TikZ keys}}\",\n      \"tqft/between outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/between incoming and outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/between incoming ${1:<n>} and ${2:<n+1>}/.style={${3:TikZ keys}}\",\n      \"tqft/between outgoing ${1:<n>} and ${2:<n+1>}/.style={${3:TikZ keys}}\",\n      \"tqft/between first incoming and first outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/between first incoming and first outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/between last incoming and last outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/between first and last incoming/.style={${1:TikZ keys}}\",\n      \"tqft/between first and last outgoing/.style={${1:TikZ keys}}\",\n      \"tqft/incoming upper boundary component ${1:<n>}/.style={${2:TikZ keys}}\",\n      \"tqft/outgoing upper boundary component ${1:<n>}/.style={${2:TikZ keys}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibrarytrees.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"grow via three points={one child at ${1:(P0)} and two children at ${2:(P1)} and ${3:(P2)}}\",\n      \"grow cyclic\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryturtle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c,\\\\path#c,\\\\draw#c,\\\\fill#c,\\\\filldraw#c,\\\\pattern#c,\\\\shade#c,\\\\shadedraw#c,\\\\clip#c\": [\n      \"turtle={${1:options}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryviews.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\begin{tikzpicture}#c,\\\\tikz#c,\\\\begin{scope}#c,\\\\tikzset#c,\\\\scoped#c\": [\n      \"meet={${1:specification}}\",\n      \"slice={${1:specification}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlibraryzx-calculus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"bm\"\n    },\n    {\n      \"name\": \"tikzlibrarycd\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zx{${1:diagram%formula}}\"\n      }\n    },\n    {\n      \"name\": \"zx\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zx[${2:options%keyvals}]{${1:diagram%formula}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c\",\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxEmptyDiagram\"\n    },\n    {\n      \"name\": \"zxNone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxNone{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxNone\",\n      \"arg\": {\n        \"format\": \"|{}\",\n        \"snippet\": \"zxNone|{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxN{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"|{}\",\n        \"snippet\": \"zxN|{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxNoneDouble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxNoneDouble{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxNoneDouble\",\n      \"arg\": {\n        \"format\": \"|{}\",\n        \"snippet\": \"zxNoneDouble|{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxFracZ\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zxFracZ{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"zxFracZ\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"zxFracZ{${1:numerator}}[${3:num with parens}][${4:denom with parens}]{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"zxFracX\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zxFracX{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"zxZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxZ{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxZ\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zxZ[${2:options%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\",\n          \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxZ*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxZ*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxZ\",\n      \"arg\": {\n        \"format\": \"[]*{}\",\n        \"snippet\": \"zxZ[${2:options%keyvals}]*{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\",\n          \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxX{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxX\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zxX[${2:options%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\",\n          \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxX*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxX*{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxX\",\n      \"arg\": {\n        \"format\": \"[]*{}\",\n        \"snippet\": \"zxX[${2:options%keyvals}]*{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\",\n          \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxH{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"zxH\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zxH[${2:options%keyvals}]{${1:text%plain}}\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\",\n          \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"leftManyDots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftManyDots{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"leftManyDots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftManyDots[${2:text scale}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"leftManyDots\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"leftManyDots[${2:text scale}][${3:dots scale}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rightManyDots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightManyDots{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rightManyDots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightManyDots[${2:text scale}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"rightManyDots\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"rightManyDots[${2:text scale}][${3:dots scale}]{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"middleManyDots\"\n    },\n    {\n      \"name\": \"zxLoop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxLoop{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zxLoop[${2:dir angle}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"zxLoop[${2:dir angle}][${3:open angle}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoop\",\n      \"arg\": {\n        \"format\": \"[][][]{}\",\n        \"snippet\": \"zxLoop[${2:dir angle}][${3:open angle}][${4:styles}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoopAboveDots\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxLoopAboveDots{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoopAboveDots\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zxLoopAboveDots[${2:open angle}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxLoopAboveDots\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"zxLoopAboveDots[${2:open angle}][${3:styles}]{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"zxDebugMode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrow\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arrow[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"arrow[${2:options%keyvals}]{${1:direction}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"lar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"uar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"urar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"urar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dlar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dlar[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ular[${2:options%keyvals}]{${1:labels}}\",\n        \"keys\": [\n          \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zxConvertToFracInContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxConvertToFracInLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxMinusInShort\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHColFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHRowFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSColFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSRowFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHSCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHSRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHSColFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxHSRowFlat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxWCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxWRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxwCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxwRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDotsCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDotsRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxZeroCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxZeroRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxNCol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxNRow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultColumnSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultRowSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultSoftAngleS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultSoftAngleN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultSoftAngleO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultSoftAngleChevron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxScaleDots\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxMinus\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxEdgesAbove\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxControlPointsVisible\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxEnableIntersections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDisableIntersections\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxEnableIntersectionsNodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxEnableIntersectionsWires\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxIntersectionLineBetweenStartEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxDefaultLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSaveDiagram\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zxSaveDiagram{${1:cmd}}{${2:diagram%formula}}\"\n      }\n    },\n    {\n      \"name\": \"zxSaveDiagram\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"zxSaveDiagram{${1:cmd}}[${3:options%keyvals}]{${2:diagram%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ZX\"\n    },\n    {\n      \"name\": \"ZX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c\",\n          \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c\": [\n      \"every diagram\",\n      \"diagrams={${1:options}}\",\n      \"every matrix\",\n      \"every cell\",\n      \"cells={${1:options}}\",\n      \"row sep=\",\n      \"column sep=\",\n      \"sep=\",\n      \"cramped\",\n      \"math mode\",\n      \"background color=\",\n      \"every arrow\",\n      \"arrows={${1:options}}\",\n      \"arrow style=${1|Latin Modern,math font,tikz|}\",\n      \"every label\",\n      \"labels={${1:options}}\",\n      \"center yshift=\",\n      \"ampersand replacement=${1:macro}\",\n      \"shorten=\",\n      \"crossing over\",\n      \"crossing over clearance=\",\n      \"marking\",\n      \"description\",\n      \"%color\",\n      \"color=\",\n      \"in=${1:degrees}\",\n      \"out=${1:degrees}\",\n      \"font=${1:font commands}\",\n      \"line width=\",\n      \"execute at begin picture={${1:code}}\",\n      \"math baseline=${1:node alias}\",\n      \"zx column sep=\",\n      \"zx row sep=\",\n      \"use diagram={${1:\\\\name}}{${2:nodes}}\"\n    ],\n    \"\\\\zx#c,\\\\begin{ZX}#c,\\\\zxSaveDiagram#c,\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\": [\n      \"phase in content\",\n      \"phase in label\",\n      \"phase in label={${1:styles}}\",\n      \"pil\",\n      \"pil={${1:styles}}\",\n      \"phase in label above\",\n      \"phase in label above={${1:styles}}\",\n      \"pila\",\n      \"pila={${1:styles}}\",\n      \"phase in label below\",\n      \"phase in label below={${1:styles}}\",\n      \"pilb\",\n      \"pilb={${1:styles}}\",\n      \"phase in label right\",\n      \"phase in label right={${1:styles}}\",\n      \"pilr\",\n      \"pilr={${1:styles}}\",\n      \"phase in label left\",\n      \"phase in label left={${1:styles}}\",\n      \"pill\",\n      \"pill={${1:styles}}\",\n      \"text=\"\n    ],\n    \"\\\\zxZ#c,\\\\zxX#c,\\\\zxH#c\": [\n      \"a=${1:alias}\"\n    ],\n    \"\\\\arrow#c,\\\\ar#c,\\\\rar#c,\\\\lar#c,\\\\dar#c,\\\\uar#c,\\\\drar#c,\\\\urar#c,\\\\dlar#c,\\\\ular#c\": [\n      \"C\",\n      \"C=${1:radius ratio}\",\n      \"C.\",\n      \"C.=${1:radius ratio}\",\n      \"C'\",\n      \"C'=${1:radius ratio}\",\n      \"C-\",\n      \"C-=${1:radius ratio}\",\n      \"o'\",\n      \"o'=${1:angle}\",\n      \"o.\",\n      \"o.=${1:angle}\",\n      \"o-\",\n      \"o-=${1:angle}\",\n      \"-o\",\n      \"-o=${1:angle}\",\n      \"(\",\n      \"(=${1:angle}\",\n      \")\",\n      \")=${1:angle}\",\n      \"('-\",\n      \"('=${1:angle}\",\n      \"(.\",\n      \"(.=${1:angle}\",\n      \"start fake center north\",\n      \"start fake center south\",\n      \"start fake center east\",\n      \"start fake center west\",\n      \"start real center\",\n      \"end fake center north\",\n      \"end fake center south\",\n      \"end fake center east\",\n      \"end fake center west\",\n      \"end real center\",\n      \"left to right\",\n      \"right to left\",\n      \"up to down\",\n      \"down to up\",\n      \"force left to right\",\n      \"force right to left\",\n      \"force up to down\",\n      \"force down to up\",\n      \"no fake center\",\n      \"s\",\n      \"s=${1:-andL config}\",\n      \"s'\",\n      \"s'=${1:-andL config}\",\n      \"s.\",\n      \"s.=${1:-andL config}\",\n      \"-s\",\n      \"-s=${1:-andL config}\",\n      \"-s'\",\n      \"-s'=${1:-andL config}\",\n      \"-s.\",\n      \"-s.=${1:-andL config}\",\n      \"s'-\",\n      \"s'-=${1:-andL config}\",\n      \"s.-\",\n      \"s.-=${1:-andL config}\",\n      \"S\",\n      \"S=${1:-andL config}\",\n      \"S'\",\n      \"S'=${1:-andL config}\",\n      \"S.\",\n      \"S.=${1:-andL config}\",\n      \"-S\",\n      \"-S=${1:-andL config}\",\n      \"-S'\",\n      \"-S'=${1:-andL config}\",\n      \"-S.\",\n      \"-S.=${1:-andL config}\",\n      \"S'-\",\n      \"S'-=${1:-andL config}\",\n      \"S.-\",\n      \"S.-=${1:-andL config}\",\n      \"ss\",\n      \"ss=${1:-andL config}\",\n      \"SS\",\n      \"SS=${1:-andL config}\",\n      \"ss.\",\n      \"ss.=${1:-andL config}\",\n      \".ss\",\n      \".ss=${1:-andL config}\",\n      \"sIs.\",\n      \"sIs.=${1:-andL config}\",\n      \".sIs\",\n      \".sIs=${1:-andL config}\",\n      \"ss.I\",\n      \"ss.I=${1:-andL config}\",\n      \"I.ss\",\n      \"I.ss=${1:-andL config}\",\n      \"SIS\",\n      \"SIS=${1:-andL config}\",\n      \".SIS\",\n      \".SIS=${1:-andL config}\",\n      \"ISS\",\n      \"ISS=${1:-andL config}\",\n      \"SS.I\",\n      \"SS.I=${1:-andL config}\",\n      \"I.SS\",\n      \"I.SS=${1:-andL config}\",\n      \"SSI\",\n      \"SSI=${1:-andL config}\",\n      \"N\",\n      \"N=${1:-andL config}\",\n      \"N'\",\n      \"N'=${1:-andL config}\",\n      \"N.\",\n      \"N.=${1:-andL config}\",\n      \"-N\",\n      \"-N=${1:-andL config}\",\n      \"-N'\",\n      \"-N'=${1:-andL config}\",\n      \"-N.\",\n      \"-N.=${1:-andL config}\",\n      \"N-\",\n      \"N-=${1:-andL config}\",\n      \"N'\",\n      \"N'=${1:-andL config}\",\n      \"N.\",\n      \"N.=${1:-andL config}\",\n      \"Nbase\",\n      \"Nbase=${1:-andL config}\",\n      \"NN\",\n      \"NN=${1:-andL config}\",\n      \"NN.\",\n      \"NN.=${1:-andL config}\",\n      \".NN\",\n      \".NN=${1:-andL config}\",\n      \"NIN\",\n      \"NIN=${1:-andL config}\",\n      \"INN\",\n      \"INN=${1:-andL config}\",\n      \"NNI\",\n      \"NNI=${1:-andL config}\",\n      \"<'\",\n      \"<'=${1:-andL config}\",\n      \"<.\",\n      \"<.=${1:-andL config}\",\n      \"'>\",\n      \"'>=${1:-andL config}\",\n      \".>\",\n      \".>=${1:-andL config}\",\n      \"'v\",\n      \"'v=${1:-andL config}\",\n      \"v'\",\n      \"v'=${1:-andL config}\",\n      \".^\",\n      \".^=${1:-andL config}\",\n      \"^.\",\n      \"^.=${1:-andL config}\",\n      \"3 dots\",\n      \"3 dots=${1:text}\",\n      \"3 vdots\",\n      \"3 vdots=${1:text}\",\n      \"H\",\n      \"H={${1:styles}}\",\n      \"Z\",\n      \"Z={${1:styles}}\",\n      \"X\",\n      \"X={${1:styles}}\",\n      \"wire centered\",\n      \"wc\",\n      \"wire centered start\",\n      \"wcs\",\n      \"wire centered end\",\n      \"wce\",\n      \"edge above\",\n      \"edge not above\",\n      \"control points visible\",\n      \"control points not visible\",\n      \"use intersections\",\n      \"dont use intersections\",\n      \"ui\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-addons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"thing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"thing[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\thing#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"scalingfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscalefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yscalefactor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\thing#c\": [\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-anteaters.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"anteater\"\n    },\n    {\n      \"name\": \"anteater\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"anteater[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\anteater#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"anteaterhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anteaterhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anteaterhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anteaterhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\anteater#c\": [\n      \"body=\",\n      \"eye=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-bats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bat\"\n    },\n    {\n      \"name\": \"bat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bat[${1:options%keyvals}]\",\n        \"keys\": [\n          \"bat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bathookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bathookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bathookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bathookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"bat#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"mouth=\",\n      \"ears=\",\n      \"feet=\",\n      \"wings=${1:num 0-1}\",\n      \"teeth=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-bears.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bear\"\n    },\n    {\n      \"name\": \"bear\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bear[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bear#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bearhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bearhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bearhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bearhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bear#c\": [\n      \"body=\",\n      \"eye=\",\n      \"mouth=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-bees.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bee\"\n    },\n    {\n      \"name\": \"bee\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bee[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bee#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"beehookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beehookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beehookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beehookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bee#c\": [\n      \"body=\",\n      \"antennas=\",\n      \"eye=\",\n      \"mouth=\",\n      \"wings=\",\n      \"hands=\",\n      \"stripes=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-bugs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bug\"\n    },\n    {\n      \"name\": \"bug\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bug[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\bug#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"bughookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bughookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bughookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bughookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\bug#c\": [\n      \"body=\",\n      \"antennas=\",\n      \"eye=\",\n      \"pupil=\",\n      \"mouth=\",\n      \"arms=\",\n      \"wings=\",\n      \"feet=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book=\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost=\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech=\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think=\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-cats.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cat\"\n    },\n    {\n      \"name\": \"cat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cat[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\cat#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cathookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cathookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cathookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cathookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\cat#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"nose=\",\n      \"whiskers=\",\n      \"paws=\",\n      \"pupilwidth=${1:number}\",\n      \"narrow pupils\",\n      \"medium pupils\",\n      \"wide pupils\",\n      \"very wide pupils\",\n      \"schroedinger\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-chickens.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"chicken\"\n    },\n    {\n      \"name\": \"chicken\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"chicken[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\chicken#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chickenhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chickenhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chickenhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chickenhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\chicken#c\": [\n      \"body=\",\n      \"comb=\",\n      \"eye=\",\n      \"pupil=\",\n      \"bill=\",\n      \"feet=\",\n      \"baby\",\n      \"baby=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-coatis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"coati\"\n    },\n    {\n      \"name\": \"coati\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"coati[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\coati#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coatihookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coatihookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coatihookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coatihookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\coati#c\": [\n      \"body=\",\n      \"eye=\",\n      \"rotatehead=${1:number}\",\n      \"sideward\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-elephants.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"elephant\"\n    },\n    {\n      \"name\": \"elephant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"elephant[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\elephant#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"elephanthookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elephanthookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elephanthookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elephanthookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\elephant#c\": [\n      \"body=\",\n      \"eye=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-hippos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hippo\"\n    },\n    {\n      \"name\": \"hippo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hippo[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\hippo#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hippohookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hippohookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hippohookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hippohookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\hippo#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"mouth=\",\n      \"toes=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-koalas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows.blur\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"koala\"\n    },\n    {\n      \"name\": \"koala\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"koala[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\koala#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"koalahookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koalahookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koalahookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"koalahookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\koala#c\": [\n      \"body=\",\n      \"eye=\",\n      \"mouth=\",\n      \"blush\",\n      \"blush=\",\n      \"sleeping\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-marmots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows.blur\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"marmot\"\n    },\n    {\n      \"name\": \"marmot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"marmot[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\marmot#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"marmothookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marmothookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marmothookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marmothookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\marmot#c\": [\n      \"body=\",\n      \"eye=\",\n      \"mouth=\",\n      \"blush\",\n      \"blush=\",\n      \"whiskers=\",\n      \"teeth\",\n      \"teeth=\",\n      \"shadow\",\n      \"askphil\",\n      \"leftstep\",\n      \"rightstep\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-mice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mouse\"\n    },\n    {\n      \"name\": \"mouse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mouse[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\mouse#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mousehookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mousehookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mousehookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mousehookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\mouse#c\": [\n      \"body=\",\n      \"eye=\",\n      \"whiskers=\",\n      \"rotatearms=${1:number}\",\n      \"leftstep\",\n      \"rightstep\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-moles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"moles\"\n    },\n    {\n      \"name\": \"moles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"moles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\moles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"moleshookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moleshookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moleshookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moleshookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\moles#c\": [\n      \"body=\",\n      \"eye=\",\n      \"muzzle=\",\n      \"hands=\",\n      \"feet=\",\n      \"mouth=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-owls.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"owl\"\n    },\n    {\n      \"name\": \"owl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"owl[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\owl#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"owlhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"owlhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"owlhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"owlhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\owl#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"bill=\",\n      \"feet=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-pandas.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"panda\"\n    },\n    {\n      \"name\": \"panda\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"panda[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\panda#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pandahookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pandahookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pandahookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pandahookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\panda#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"mouth=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-penguins.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"penguin\"\n    },\n    {\n      \"name\": \"penguin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"penguin[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\penguin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"penguinhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penguinhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penguinhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penguinhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\penguin#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"bill=\",\n      \"belly=\",\n      \"feet=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-pigs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pig\"\n    },\n    {\n      \"name\": \"pig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pig[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pig#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pighookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pighookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pighookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pighookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pig#c\": [\n      \"body=\",\n      \"eye=\",\n      \"tail=\",\n      \"mouth=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-rhinos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rhino\"\n    },\n    {\n      \"name\": \"rhino\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rhino[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\rhino#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rhinohookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhinohookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhinohookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rhinohookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\rhino#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"mouth=\",\n      \"toes=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-sheep.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sheep\"\n    },\n    {\n      \"name\": \"sheep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sheep[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\sheep#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sheephookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sheephookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sheephookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sheephookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\sheep#c\": [\n      \"body=\",\n      \"eye=\",\n      \"nose=\",\n      \"blush\",\n      \"blush=\",\n      \"monocle\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-sloths.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sloth\"\n    },\n    {\n      \"name\": \"sloth\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sloth[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\sloth#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"slothhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slothhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slothhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slothhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\sloth#c\": [\n      \"body=\",\n      \"eye=\",\n      \"mouth=\",\n      \"sleeping\",\n      \"eyelid=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-snowmen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"snowman\"\n    },\n    {\n      \"name\": \"snowman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"snowman[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\snowman#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"snowmanhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"snowmanhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"snowmanhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"snowmanhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\snowman#c\": [\n      \"body=\",\n      \"eye=\",\n      \"nose=\",\n      \"mouth=\",\n      \"buttons=\",\n      \"globalwarming\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-squirrels.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"squirrel\"\n    },\n    {\n      \"name\": \"squirrel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squirrel[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\squirrel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"squirrelhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squirrelhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squirrelhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"squirrelhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\squirrel#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings-wolves.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wolf\"\n    },\n    {\n      \"name\": \"wolf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wolf[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\wolf#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wolfhookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wolfhookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wolfhookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wolfhookforeground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbackground\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbelly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookbody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzlinghookforeground\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\wolf#c\": [\n      \"body=\",\n      \"eye=\",\n      \"pupil=\",\n      \"rotatearms=${1:degrees}\",\n      \"leftstep\",\n      \"rightstep\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzlings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlings-anteaters\"\n    },\n    {\n      \"name\": \"tikzlings-bats\"\n    },\n    {\n      \"name\": \"tikzlings-bears\"\n    },\n    {\n      \"name\": \"tikzlings-bees\"\n    },\n    {\n      \"name\": \"tikzlings-bugs\"\n    },\n    {\n      \"name\": \"tikzlings-cats\"\n    },\n    {\n      \"name\": \"tikzlings-chickens\"\n    },\n    {\n      \"name\": \"tikzlings-coatis\"\n    },\n    {\n      \"name\": \"tikzlings-elephants\"\n    },\n    {\n      \"name\": \"tikzlings-hippos\"\n    },\n    {\n      \"name\": \"tikzlings-koalas\"\n    },\n    {\n      \"name\": \"tikzlings-marmots\"\n    },\n    {\n      \"name\": \"tikzlings-mice\"\n    },\n    {\n      \"name\": \"tikzlings-moles\"\n    },\n    {\n      \"name\": \"tikzlings-owls\"\n    },\n    {\n      \"name\": \"tikzlings-pandas\"\n    },\n    {\n      \"name\": \"tikzlings-penguins\"\n    },\n    {\n      \"name\": \"tikzlings-pigs\"\n    },\n    {\n      \"name\": \"tikzlings-rhinos\"\n    },\n    {\n      \"name\": \"tikzlings-sheep\"\n    },\n    {\n      \"name\": \"tikzlings-sloths\"\n    },\n    {\n      \"name\": \"tikzlings-snowmen\"\n    },\n    {\n      \"name\": \"tikzlings-squirrels\"\n    },\n    {\n      \"name\": \"tikzlings-wolves\"\n    },\n    {\n      \"name\": \"tikzlings-addons\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzling\"\n    },\n    {\n      \"name\": \"tikzling\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tikzling[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tikzling#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExpArgsNnx\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzling#c\": [\n      \"body=\",\n      \"back\",\n      \"3D\",\n      \"contour\",\n      \"contour=\",\n      \"hat\",\n      \"hat=\",\n      \"tophat\",\n      \"tophat=\",\n      \"beret\",\n      \"beret=\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"ribbon\",\n      \"ribbon=\",\n      \"harlequin\",\n      \"harlequin=\",\n      \"niuqelrah\",\n      \"niuqelrah=\",\n      \"witch\",\n      \"witch=\",\n      \"magichat\",\n      \"magichat=\",\n      \"magicstars\",\n      \"magicstars=\",\n      \"crown\",\n      \"crown=\",\n      \"queencrown\",\n      \"queencrown=\",\n      \"kingcrown\",\n      \"kingcrown=\",\n      \"santa\",\n      \"santa=\",\n      \"chef\",\n      \"chef=\",\n      \"graduate\",\n      \"graduate=\",\n      \"tassel\",\n      \"tassel=\",\n      \"alien\",\n      \"alien=\",\n      \"book\",\n      \"book={${1:text}}\",\n      \"bookcolour=\",\n      \"signpost\",\n      \"signpost={${1:text}}\",\n      \"signcolour=\",\n      \"signback=\",\n      \"speech\",\n      \"speech={${1:text}}\",\n      \"bubblecolour=\",\n      \"think\",\n      \"think={${1:text}}\",\n      \"pizza\",\n      \"cheese\",\n      \"cheese=\",\n      \"baguette\",\n      \"baguette=\",\n      \"cake\",\n      \"cake=\",\n      \"icecream\",\n      \"icecream=\",\n      \"flavoura=\",\n      \"flavourb=\",\n      \"flavourc=\",\n      \"milkshake\",\n      \"milkshake=\",\n      \"wine\",\n      \"wine=\",\n      \"cricket\",\n      \"cricket=\",\n      \"hockey\",\n      \"hockey=\",\n      \"football\",\n      \"football=\",\n      \"crystalball\",\n      \"crystalball=\",\n      \"magicwand\",\n      \"rollingpin\",\n      \"rollingpin=\",\n      \"lightsaber\",\n      \"lightsaber=\",\n      \"torch\",\n      \"torch=\",\n      \"basket\",\n      \"basket=\",\n      \"easter\",\n      \"easter=\",\n      \"egga=\",\n      \"eggb=\",\n      \"eggc=\",\n      \"crozier\",\n      \"crozier=\",\n      \"shovel\",\n      \"shovel=\",\n      \"pickaxe\",\n      \"pickaxe=\",\n      \"strawbroom\",\n      \"strawbroom=\",\n      \"strawbroomstick\",\n      \"strawbroomstick=\",\n      \"strawbroomribbon\",\n      \"strawbroomribbon=\",\n      \"broom\",\n      \"broom=\",\n      \"broomstick\",\n      \"broomstick=\",\n      \"umbrella\",\n      \"umbrella=\",\n      \"umbrellaclosed\",\n      \"umbrellaclosed=\",\n      \"handbag\",\n      \"handbag=\",\n      \"cocktail\",\n      \"rotate=${1:degrees}\",\n      \"scale=${1:factor}\",\n      \"xshift=\",\n      \"yshift=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzmarmots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikzlings-marmots\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzorbital.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"drawLevel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"drawLevel[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\drawLevel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"orbital\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"orbital[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\orbital#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"satom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"satom[${2:options}]{${1:color/rotation-angle/anchor/number of electrons/scale}}\",\n        \"keys\": [\n          \"\\\\satom#c,\\\\atom#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"atom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"atom[${2:options}]{${1:color/rotation-angle/anchor/number of electrons/scale}}\",\n        \"keys\": [\n          \"\\\\satom#c,\\\\atom#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setOrbitalDrawing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setOrbitalDrawing{${1:TikZ options}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\drawLevel\": [\n      \"elec=${1|up,down,updown,pair|}\",\n      \"pos={(%|)}\",\n      \"width=${1:number}\",\n      \"style={${1:TikZ options}}\",\n      \"spinstyle={${1:TikZ options}}\",\n      \"spinlength=${1:number}\"\n    ],\n    \"\\\\orbital#c\": [\n      \"pos={(%|)}\",\n      \"scale=${1:factor}\",\n      \"opacity=${1:factor}\",\n      \"pcolor=\",\n      \"ncolor=\",\n      \"color=\",\n      \"rotate=${1:degrees}\",\n      \"nelec=${1:integer}\"\n    ],\n    \"\\\\satom#c,\\\\atom#c\": [\n      \"pos={(%|)}\",\n      \"name=${1:name}\",\n      \"color=\",\n      \"opacity=${1:factor}\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzpagenodes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"currentsidemargin\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzpeople.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alltikzpeople\",\n      \"if\": \"demo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alltikzpeople{${1:width}}{${2:node options}}\"\n      }\n    },\n    {\n      \"name\": \"alltikzpeople*\",\n      \"if\": \"demo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"alltikzpeople*{${1:width}}{${2:node options}}\"\n      }\n    },\n    {\n      \"name\": \"tikzpeoplecolors\",\n      \"if\": \"demo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzpeoplecolors{${1:shape name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikzpeople#c\": [\n      \"draft\",\n      \"demo\",\n      \"nobeards\",\n      \"saturated\"\n    ],\n    \"\\\\node#c\": [\n      \"shape=${1:shape name}\",\n      \"alice\",\n      \"bob\",\n      \"bride\",\n      \"builder\",\n      \"businessman\",\n      \"charlie\",\n      \"chef\",\n      \"conductor\",\n      \"cowboy\",\n      \"criminal\",\n      \"dave\",\n      \"devil\",\n      \"duck\",\n      \"graduate\",\n      \"groom\",\n      \"guard\",\n      \"jester\",\n      \"judge\",\n      \"maninblack\",\n      \"mexican\",\n      \"nun\",\n      \"nurse\",\n      \"physician\",\n      \"pilot\",\n      \"police\",\n      \"priest\",\n      \"sailor\",\n      \"santa\",\n      \"surgeon\",\n      \"evil\",\n      \"female\",\n      \"good\",\n      \"mirrored\",\n      \"monitor\",\n      \"saturated\",\n      \"shield\",\n      \"sword\",\n      \"hat=\",\n      \"hair=\",\n      \"shirt=\",\n      \"cross=\",\n      \"collar=\",\n      \"skin=\",\n      \"details=\",\n      \"undershirt=\",\n      \"veil=\",\n      \"pearls=\",\n      \"trousers=\",\n      \"tie=\",\n      \"monogram=\",\n      \"buttons=\",\n      \"hatbadge=\",\n      \"hatshield=\",\n      \"stitching=\",\n      \"vest=\",\n      \"patches=\",\n      \"bill=\",\n      \"tongue=\",\n      \"stripes=\",\n      \"lining=\",\n      \"pattern=\",\n      \"hairshadow=\",\n      \"earpiece=\",\n      \"glasses=\",\n      \"ringtop=\",\n      \"ringmid=\",\n      \"ringbot=\",\n      \"plaid=\",\n      \"badgeclip=\",\n      \"badgename=\",\n      \"redcross=\",\n      \"badge=\",\n      \"stethoscope=\",\n      \"tube=\",\n      \"decoration=\",\n      \"visor=\",\n      \"straps=\",\n      \"beard=\",\n      \"mask=\",\n      \"monogramtext=${1:text}\",\n      \"badgetext=${1:text}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikzpeople#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzpfeile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ra\"\n    },\n    {\n      \"name\": \"ra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ra[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"la\"\n    },\n    {\n      \"name\": \"la\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"la[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"mapsto\",\n      \"detail\": \"↦\",\n      \"doc\": \"Maps to, rightward, maplet\"\n    },\n    {\n      \"name\": \"lmapsto\"\n    },\n    {\n      \"name\": \"inj\"\n    },\n    {\n      \"name\": \"inj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"linj\"\n    },\n    {\n      \"name\": \"linj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"linj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"surj\"\n    },\n    {\n      \"name\": \"surj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"surj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"lsurj\"\n    },\n    {\n      \"name\": \"lsurj\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lsurj[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"isom\"\n    },\n    {\n      \"name\": \"lisom\"\n    },\n    {\n      \"name\": \"lra\"\n    },\n    {\n      \"name\": \"lra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lra[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"ppf\"\n    },\n    {\n      \"name\": \"ppf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ppf[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"lppf\"\n    },\n    {\n      \"name\": \"lppf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lppf[${1:label}]\"\n      }\n    },\n    {\n      \"name\": \"smapsto\"\n    },\n    {\n      \"name\": \"lsmapsto\"\n    },\n    {\n      \"name\": \"oldmapsto\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzpingus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibraryshadings\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns.meta\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryfadings\",\n      \"if\": \"glows\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pingu\"\n    },\n    {\n      \"name\": \"pingu\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pingu[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\pingu#c,\\\\pingudefaults#c,\\\\pingudefaultsappend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pingudefaults\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pingudefaults{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pingu#c,\\\\pingudefaults#c,\\\\pingudefaultsappend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pingudefaultsappend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pingudefaultsappend{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\pingu#c,\\\\pingudefaults#c,\\\\pingudefaultsappend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pinguloadlibrary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pinguloadlibrary{${1:library1,library2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\pinguloadlibrary#c,\\\\pinguloadlibraries#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pinguloadlibraries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pinguloadlibraries{${1:library1,library2,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\pinguloadlibrary#c,\\\\pinguloadlibraries#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikzpingus#c\": [\n      \"glows\",\n      \"manual-layers\",\n      \"bare\"\n    ],\n    \"\\\\pingu#c,\\\\pingudefaults#c,\\\\pingudefaultsappend#c\": [\n      \"random from={{${1:keyvals1}}{${2:keyvals2}}${3:...}}\",\n      \"name=${1:text}\",\n      \"scale=${1:factor}\",\n      \"meta-dots\",\n      \"left foot=${1|none,normal,sit,simple,back,chubby,!random|}\",\n      \"left foot color=\",\n      \"left foot none=\",\n      \"left foot normal=\",\n      \"left foot sit=\",\n      \"left foot simple=\",\n      \"left foot back=\",\n      \"left foot chubby=\",\n      \"right foot=${1|none,normal,sit,simple,back,chubby,!random|}\",\n      \"right foot color=\",\n      \"right foot none=\",\n      \"right foot normal=\",\n      \"right foot sit=\",\n      \"right foot simple=\",\n      \"right foot back=\",\n      \"right foot chubby=\",\n      \"feet=${1|none,normal,sit,simple,back,chubby,!random|}\",\n      \"feet color=\",\n      \"feet none=\",\n      \"feet normal=\",\n      \"feet sit=\",\n      \"feet simple=\",\n      \"feet back=\",\n      \"feet chubby=\",\n      \"body main=\",\n      \"body head=\",\n      \"body=\",\n      \"body front=\",\n      \"body type=${1|none,normal,chubby,legacy,tilt-right,tilt-left,!random|}\",\n      \"height=\",\n      \"small size\",\n      \"normal size\",\n      \"large size\",\n      \"left eye=${1|none,normal,vertical,shiny,wink,shock,devil,sad,angry,hearts,!random|}\",\n      \"left eye color=\",\n      \"left eye second color=\",\n      \"left eye none=\",\n      \"left eye normal=\",\n      \"left eye vertical=\",\n      \"left eye shiny=\",\n      \"left eye wink=\",\n      \"left eye shock=\",\n      \"left eye devil=\",\n      \"left eye sad=\",\n      \"left eye angry=\",\n      \"left eye hearts=\",\n      \"right eye=${1|none,normal,vertical,shiny,wink,shock,devil,sad,angry,hearts,!random|}\",\n      \"right eye color=\",\n      \"right eye second color=\",\n      \"right eye none=\",\n      \"right eye normal=\",\n      \"right eye vertical=\",\n      \"right eye shiny=\",\n      \"right eye wink=\",\n      \"right eye shock=\",\n      \"right eye devil=\",\n      \"right eye sad=\",\n      \"right eye angry=\",\n      \"right eye hearts=\",\n      \"eyes=${1|none,normal,vertical,shiny,wink,shock,devil,sad,angry,hearts,critical,!random|}\",\n      \"eyes color=\",\n      \"eyes second color=\",\n      \"eyes none=\",\n      \"eyes normal=\",\n      \"eyes vertical=\",\n      \"eyes shiny=\",\n      \"eyes wink=\",\n      \"eyes shock=\",\n      \"eyes devil=\",\n      \"eyes sad=\",\n      \"eyes angry=\",\n      \"eyes hearts=\",\n      \"eyes critical=\",\n      \"left wing=${1|none,normal,wave,raise,grab,shock,hug|}\",\n      \"left wing color=\",\n      \"left wing none=\",\n      \"left wing normal=\",\n      \"left wing wave=\",\n      \"left wing raise=\",\n      \"left wing grab=\",\n      \"left wing shock=\",\n      \"left wing hug=\",\n      \"right wing=${1|none,normal,wave,raise,grab,shock,hug|}\",\n      \"right wing color=\",\n      \"right wing none=\",\n      \"right wing normal=\",\n      \"right wing wave=\",\n      \"right wing raise=\",\n      \"right wing grab=\",\n      \"right wing shock=\",\n      \"right wing hug=\",\n      \"wings=${1|none,normal,wave,raise,grab,shock,hug,!random|}\",\n      \"wings color=\",\n      \"wings none=\",\n      \"wings normal=\",\n      \"wings wave=\",\n      \"wings raise=\",\n      \"wings grab=\",\n      \"wings shock=\",\n      \"wings hug=\",\n      \"hair 1 color=\",\n      \"hair 2 color=\",\n      \"hair 3 color=\",\n      \"hair 4 color=\",\n      \"hair 5 color=\",\n      \"hairs color=\",\n      \"hairstyle=${1|none,normal,!random|}\",\n      \"hairstyle none=\",\n      \"hairstyle normal=\",\n      \"bill=${1|none,normal,foreground,flat,angry,!random|}\",\n      \"bill color=\",\n      \"bill none=\",\n      \"bill normal=\",\n      \"bill foreground=\",\n      \"bill flat=\",\n      \"bill angry=\",\n      \":line\",\n      \":fill\",\n      \":ghost parts\",\n      \":ghost parts=${1:opacity}\",\n      \":ghost\",\n      \":ghost=${1:opacity}\",\n      \":devil\",\n      \":devil=\",\n      \":hide\",\n      \":back\",\n      \":pingu={${1:options}}\",\n      \":mix=${1:color mix}\",\n      \":mix-draw=${1:color mix}\",\n      \":mix-all=${1:color mix}\",\n      \"heart\",\n      \"heart=\",\n      \"vampire teeth\",\n      \"vampire teeth=\",\n      \"tie\",\n      \"tie=\",\n      \"tie knot=\",\n      \"tie length=\",\n      \"tie offset=\",\n      \"tie width=\",\n      \"tie pattern=${1:TeX code}\",\n      \"tie dots\",\n      \"tie dots=\",\n      \"bow tie\",\n      \"bow tie=\",\n      \"bow tie b=\",\n      \"bow tie knot=\",\n      \"bow tie offset=\",\n      \"cup\",\n      \"cup=\",\n      \"cup straw=\",\n      \"cup steam=\",\n      \"cup steam shift=\",\n      \"medal\",\n      \"medal=\",\n      \"medal band=\",\n      \"medal shade=\",\n      \"medal shade width=\",\n      \"medal text=${1:text}\",\n      \"gold medal\",\n      \"gold medal=${1:text}\",\n      \"silver medal\",\n      \"silver medal=${1:text}\",\n      \"bronze medal\",\n      \"bronze medal=${1:text}\",\n      \"eye patch left\",\n      \"eye patch left=\",\n      \"eye patch right\",\n      \"eye patch right=\",\n      \"monocle left\",\n      \"monocle left=\",\n      \"monocle left glass=\",\n      \"monocle left opacity=${1:factor}\",\n      \"monocle left string=\",\n      \"monocle left string length=\",\n      \"monocle left blob=\",\n      \"monocle right\",\n      \"monocle right=\",\n      \"monocle right glass=\",\n      \"monocle right opacity=${1:factor}\",\n      \"monocle right string=\",\n      \"monocle right string length=\",\n      \"monocle right blob=\",\n      \"pants\",\n      \"pants=\",\n      \"pants bands\",\n      \"pants button left=\",\n      \"pants button right=\",\n      \"pants buttons=\",\n      \"pants button left shade=\",\n      \"pants button right shade=\",\n      \"pants buttons shade=\",\n      \"pants no buttons\",\n      \"pants extra height=\",\n      \"glow=\",\n      \"glow thick=\",\n      \"glow solid=\",\n      \"glow steps={${1:num1,num2,...}}\",\n      \"glow function={${1:function}}\",\n      \"glow width function={${1:function}}\",\n      \"eye frame=\",\n      \"glasses\",\n      \"glasses=\",\n      \"glasses left fill=\",\n      \"glasses right fill=\",\n      \"glasses fill=\",\n      \"glasses left opacity=${1:factor}\",\n      \"glasses right opacity=${1:factor}\",\n      \"glasses opacity=${1:factor}\",\n      \"glasses line width=\",\n      \"sun glasses\",\n      \"sun glasses=\",\n      \"glasses round\",\n      \"glasses round=\",\n      \"glasses round left fill=\",\n      \"glasses round right fill=\",\n      \"glasses round fill=\",\n      \"glasses round left opacity=${1:factor}\",\n      \"glasses round right opacity=${1:factor}\",\n      \"glasses round opacity=${1:factor}\",\n      \"glasses round line width=\",\n      \"sun glasses round\",\n      \"sun glasses round=\",\n      \"devil horns\",\n      \"devil horns=\",\n      \"devil wings\",\n      \"devil wings=\",\n      \"devil wings b=\",\n      \"belt\",\n      \"belt=\",\n      \"belt knot color=\",\n      \"head band\",\n      \"head band=\",\n      \"head band bend=${1:degrees}\",\n      \"head band angle=${1:degrees}\",\n      \"head band upper angle=${1:degrees}\",\n      \"head band knot\",\n      \"head band knot color=\",\n      \"head band knot a color=\",\n      \"head band knot b color=\",\n      \"head band bands\",\n      \"head band bands a color=\",\n      \"head band bands b color=\",\n      \"rook\",\n      \"rook=\",\n      \"rook back=\",\n      \"rook hatch\",\n      \"rook shade=\",\n      \"halo\",\n      \"halo=\",\n      \"halo raise=\",\n      \"halo glow\",\n      \"halo above\",\n      \"strawhat\",\n      \"strawhat=\",\n      \"strawhat ribbon=\",\n      \"strawhat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"hat\",\n      \"hat=\",\n      \"hat ribbon=\",\n      \"hat base=\",\n      \"hat coronal=\",\n      \"hat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"mitra\",\n      \"mitra=\",\n      \"mitra height\",\n      \"mitra background=\",\n      \"mitra overset=\",\n      \"mitra lower angle=${1:degrees}\",\n      \"mitra upper angle=${1:degrees}\",\n      \"mitra lower band=\",\n      \"mitra lower band height=${1:factor}\",\n      \"mitra upper band=\",\n      \"mitra upper band height=${1:factor}\",\n      \"mitra center band=\",\n      \"mitra center band width=${1:factor}\",\n      \"mitra position{${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"witch hat\",\n      \"witch hat=\",\n      \"witch hat ribbon=\",\n      \"witch hat base=\",\n      \"witch hat coronal=\",\n      \"witch hat band=\",\n      \"witch hat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"conical hat\",\n      \"conical hat=\",\n      \"conical hat rounding=\",\n      \"conical hat shade=\",\n      \"conical hat height=\",\n      \"conical hat width=\",\n      \"conical hat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"cap\",\n      \"cap=\",\n      \"cap padding=\",\n      \"cap extra height=\",\n      \"construction helmet\",\n      \"construction helmet=\",\n      \"construction helmet padding=\",\n      \"construction helmet extra height=\",\n      \"construction helmet position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"crown\",\n      \"crown=\",\n      \"crown 3d\",\n      \"crown back=\",\n      \"crown front bend=${1:degrees}\",\n      \"crown back bend=${1:degrees}\",\n      \"crown gem shade\",\n      \"crown gem colors={${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}{${5:clr5}}{${6:clr6}}{${7:clr7}}\",\n      \"crown gem ring=\",\n      \"crown position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"crown 2d\",\n      \"crown 2d=\",\n      \"princess crown\",\n      \"princess crown=\",\n      \"princess crown 3d\",\n      \"princess crown back=\",\n      \"princess crown front bend=${1:degrees}\",\n      \"princess crown back bend=${1:degrees}\",\n      \"princess crown gem shade\",\n      \"princess crown bobbles\",\n      \"princess crown gem colors={${1:clr1}}{${2:clr2}}{${3:clr3}}{${4:clr4}}\",\n      \"princess crown gem ring=\",\n      \"princess crown position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"princess crown 2d\",\n      \"princess crown 2d=\",\n      \"cake-hat\",\n      \"cake-hat=\",\n      \"cake-hat top=\",\n      \"cake-hat shade=\",\n      \"cake-hat candle=\",\n      \"cake-hat candle fire=\",\n      \"cake-hat candle fire 2=\",\n      \"cake-hat candle fire 3=\",\n      \"cake-hat candle wick=\",\n      \"cake-hat candle shade=\",\n      \"cake-hat candle back=\",\n      \"cake-hat outline=\",\n      \"cake-hat outline width=\",\n      \"cake-hat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"pumpkin-hat\",\n      \"pumpkin-hat=\",\n      \"pumpkin-hat stalk=\",\n      \"pumpkin-hat stalk top=\",\n      \"pumpkin-hat stripe a=\",\n      \"pumpkin-hat stripe b=\",\n      \"pumpkin-hat stripe c=\",\n      \"pumpkin-hat outline=\",\n      \"pumpkin-hat outline width=\",\n      \"pumpkin-hat position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"jack o lantern\",\n      \"jack o lantern=\",\n      \"jack o lantern stalk=\",\n      \"jack o lantern stalk top=\",\n      \"jack o lantern stripe a=\",\n      \"jack o lantern stripe b=\",\n      \"jack o lantern stripe c=\",\n      \"jack o lantern back stripe a=\",\n      \"jack o lantern back stripe b=\",\n      \"jack o lantern back stripe c=\",\n      \"jack o lantern background=\",\n      \"jack o lantern outline=\",\n      \"jack o lantern outline width=\",\n      \"jack o lantern width=\",\n      \"jack o lantern height=\",\n      \"jack o lantern position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"jack o lantern helmet=\",\n      \"bee\",\n      \"bee=\",\n      \"bee body=\",\n      \"bee wings=\",\n      \"bee mouth=\",\n      \"bee eyes=\",\n      \"bee blush=\",\n      \"bee position={${1:angle}:(${2:x,y}){${3:scale}}}\",\n      \"on horse\",\n      \"on horse=\",\n      \"on horse flip\",\n      \"on horse donkey\",\n      \"on horse has base\",\n      \"on horse has bounding box\",\n      \"on horse draw=\",\n      \"on horse mane=\",\n      \"on horse mane draw=\",\n      \"on horse thatch=\",\n      \"on horse thatch draw=\",\n      \"on horse tail=\",\n      \"on horse tail draw=\",\n      \"on horse eyes=\",\n      \"on horse mouth=\",\n      \"on horse nose=\",\n      \"on horse ears=\",\n      \"on horse base=\",\n      \"on horse base draw=\",\n      \"on horse base shade=\",\n      \"on horse base shade draw=\",\n      \"on horse front left hoof=\",\n      \"on horse front right hoof=\",\n      \"on horse back left hoof=\",\n      \"on horse back right hoof=\",\n      \"on horse front hoofs=\",\n      \"on horse back hoofs=\",\n      \"on horse hoofs=\",\n      \"on horse xshift=\",\n      \"on horse yshift=\",\n      \"on horse scale=${1:factor}\",\n      \"horse behind\",\n      \"horse behind=\",\n      \"vr-headset\",\n      \"vr-headset=\",\n      \"vr-headset band=\",\n      \"vr-headset band top=\",\n      \"vr-headset hair\",\n      \"vr-headset text=${1:text}\",\n      \"vr-headset text color=\",\n      \"headphone\",\n      \"headphone=\",\n      \"headphone left=\",\n      \"headphone right=\",\n      \"headphone left outer=\",\n      \"headphone right outer=\",\n      \"headphone outer=\",\n      \"headphone left inner=\",\n      \"headphone right inner=\",\n      \"headphone inner=\",\n      \"santa hat\",\n      \"santa hat=\",\n      \"santa hat second=\",\n      \"santa hat bobble=\",\n      \"santa beard\",\n      \"santa beard=\",\n      \"santa beard string=\",\n      \"snowball left\",\n      \"snowball left=\",\n      \"snowball left size=\",\n      \"snowball left xshift=\",\n      \"snowball left yshift=\",\n      \"snowball right\",\n      \"snowball right=\",\n      \"snowball right size=\",\n      \"snowball right xshift=\",\n      \"snowball right yshift=\",\n      \"wool hat\",\n      \"wool hat=\",\n      \"wool hat second=\",\n      \"wool hat bobble=\",\n      \"deer hat\",\n      \"deer hat=\",\n      \"deer hat b=\",\n      \"deer hat band=\",\n      \"mask\",\n      \"mask=\",\n      \"mask band=\",\n      \"mask line width=\",\n      \"mask band inner=\",\n      \"mask band outer=\",\n      \"blush\",\n      \"blush=\",\n      \"blush second=\",\n      \"blush opacity=${1:factor}\",\n      \"banner=${1:text}\",\n      \"banner band=\",\n      \"banner text color=\",\n      \"banner stick left color=\",\n      \"banner stick right color=\",\n      \"banner sticks color=\",\n      \"banner stick left length=\",\n      \"banner stick right length=\",\n      \"banner sticks length=\",\n      \"banner raise=\",\n      \"banner height=\",\n      \"banner font=${1:font commands}\",\n      \"banner bent=${1:degrees}\",\n      \"left wing item angle=${1:degrees}\",\n      \"left wing item flip\",\n      \"right wing item angle=${1:degrees}\",\n      \"right wing item flip\",\n      \"lollipop left\",\n      \"lollipop left=\",\n      \"lollipop left handle=\",\n      \"lollipop left second=\",\n      \"lollipop right\",\n      \"lollipop right=\",\n      \"lollipop right handle=\",\n      \"lollipop right second=\",\n      \"cane left\",\n      \"cane left=\",\n      \"cane left raise=\",\n      \"cane right\",\n      \"cane right=\",\n      \"cane right raise=\",\n      \"hand cast left=${1:text}\",\n      \"hand cast left color=\",\n      \"hand cast right=${1:text}\",\n      \"hand cast right color=\",\n      \"sign post left\",\n      \"sign post left=${1:text}\",\n      \"sign post left color=\",\n      \"sign post left font color=\",\n      \"sign post right\",\n      \"sign post right=${1:text}\",\n      \"sign post right color=\",\n      \"sign post right font color=\",\n      \"lightsaber left\",\n      \"lightsaber left=\",\n      \"lightsaber left handle=\",\n      \"lightsaber left deco=\",\n      \"lightsaber left ribbs=\",\n      \"lightsaber left button=\",\n      \"lightsaber left button b=\",\n      \"lightsaber left double\",\n      \"lightsaber left color b=\",\n      \"lightsaber left length=\",\n      \"lightsaber left length b=\",\n      \"lightsaber left yshift=\",\n      \"lightsaber left glow\",\n      \"lightsaber left solid\",\n      \"lightsaber left glow core=\",\n      \"lightsaber left outer glow factor=${1:factor}\",\n      \"lightsaber left disabled\",\n      \"lightsaber right\",\n      \"lightsaber right=\",\n      \"lightsaber right handle=\",\n      \"lightsaber right deco=\",\n      \"lightsaber right ribbs=\",\n      \"lightsaber right button=\",\n      \"lightsaber right button b=\",\n      \"lightsaber right double\",\n      \"lightsaber right color b=\",\n      \"lightsaber right length=\",\n      \"lightsaber right length b=\",\n      \"lightsaber right yshift=\",\n      \"lightsaber right glow\",\n      \"lightsaber right solid\",\n      \"lightsaber right glow core=\",\n      \"lightsaber right outer glow factor=${1:factor}\",\n      \"lightsaber right disabled\",\n      \"light-staff left\",\n      \"light-staff left=\",\n      \"light-staff left length=\",\n      \"light-staff left glow length=\",\n      \"light-staff left head=\",\n      \"light-staff left staff=\",\n      \"light-staff left core=\",\n      \"light-staff left core width=\",\n      \"light-staff left outer glow factor=${1:factor}\",\n      \"light-staff right\",\n      \"light-staff right=\",\n      \"light-staff right length=\",\n      \"light-staff right glow length=\",\n      \"light-staff right head=\",\n      \"light-staff right staff=\",\n      \"light-staff right core=\",\n      \"light-staff right core width=\",\n      \"light-staff right outer glow factor=${1:factor}\",\n      \"broom left\",\n      \"broom left=\",\n      \"broom left length=\",\n      \"broom left shift=\",\n      \"broom left band=\",\n      \"broom left bristles a=\",\n      \"broom left bristles b=\",\n      \"broom left bristles c=\",\n      \"broom right\",\n      \"broom right=\",\n      \"broom right length=\",\n      \"broom right shift=\",\n      \"broom right band=\",\n      \"broom right bristles a=\",\n      \"broom right bristles b=\",\n      \"broom right bristles c=\",\n      \"flag left\",\n      \"flag left=\",\n      \"flag left pole=\",\n      \"flag left bobble=\",\n      \"flag left code={${1:code}}\",\n      \"pride flag left\",\n      \"pride flag left=\",\n      \"german flag left\",\n      \"german flag left=\",\n      \"flag right\",\n      \"flag right=\",\n      \"flag right pole=\",\n      \"flag right bobble=\",\n      \"flag right code={${1:code}}\",\n      \"pride flag right\",\n      \"pride flag right=\",\n      \"german flag right\",\n      \"german flag right=\",\n      \"present left\",\n      \"present left=\",\n      \"present left width=\",\n      \"present left height=\",\n      \"present left ribbon=\",\n      \"present left band=\",\n      \"present left band width=\",\n      \"present left xshift=\",\n      \"present left yshift=\",\n      \"present left band second height=\",\n      \"present left band second yshift=\",\n      \"present left lid=\",\n      \"present left lid height=\",\n      \"present left lid overhang=\",\n      \"present left lid yshift=\",\n      \"present left lid band=\",\n      \"present right\",\n      \"present right=\",\n      \"present right width=\",\n      \"present right height=\",\n      \"present right ribbon=\",\n      \"present right band=\",\n      \"present right band width=\",\n      \"present right xshift=\",\n      \"present right yshift=\",\n      \"present right band second height=\",\n      \"present right band second yshift=\",\n      \"present right lid=\",\n      \"present right lid height=\",\n      \"present right lid overhang=\",\n      \"present right lid yshift=\",\n      \"present right lid band=\",\n      \"staff left\",\n      \"staff left=\",\n      \"staff left length=\",\n      \"staff left raise=\",\n      \"staff left code={${1:TikZ code}}\",\n      \"staff left code app={${1:TikZ code}}\",\n      \"staff left code app pre={${1:TikZ code}}\",\n      \"spear left\",\n      \"spear left=\",\n      \"cross left\",\n      \"cross left=\",\n      \"staff right\",\n      \"staff right=\",\n      \"staff right length=\",\n      \"staff right raise=\",\n      \"staff right code={${1:TikZ code}}\",\n      \"staff right code app={${1:TikZ code}}\",\n      \"staff right code app pre={${1:TikZ code}}\",\n      \"spear right\",\n      \"spear right=\",\n      \"cross right\",\n      \"cross right=\",\n      \"hammer left\",\n      \"hammer left=\",\n      \"hammer left handle length=\",\n      \"hammer left handle shift=\",\n      \"hammer left width=\",\n      \"hammer left height=\",\n      \"hammer left xshift=\",\n      \"hammer left yshift=\",\n      \"hammer left handle=\",\n      \"hammer left with knob\",\n      \"hammer left with knob=\",\n      \"hammer right\",\n      \"hammer right=\",\n      \"hammer right handle length=\",\n      \"hammer right handle shift=\",\n      \"hammer right width=\",\n      \"hammer right height=\",\n      \"hammer right xshift=\",\n      \"hammer right yshift=\",\n      \"hammer right handle=\",\n      \"hammer right with knob\",\n      \"hammer right with knob=\",\n      \"magnifier left\",\n      \"magnifier left=\",\n      \"magnifier left handle length=\",\n      \"magnifier left handle shift=\",\n      \"magnifier left size=\",\n      \"magnifier left glass=\",\n      \"magnifier left opacity=${1:factor}\",\n      \"magnifier left thick=\",\n      \"magnifier left xshift=\",\n      \"magnifier left yshift=\",\n      \"magnifier right\",\n      \"magnifier right=\",\n      \"magnifier right handle length=\",\n      \"magnifier right handle shift=\",\n      \"magnifier right size=\",\n      \"magnifier right glass=\",\n      \"magnifier right opacity=${1:factor}\",\n      \"magnifier right thick=\",\n      \"magnifier right xshift=\",\n      \"magnifier right yshift=\",\n      \"plank left\",\n      \"plank left=\",\n      \"plank left width=\",\n      \"plank left height=\",\n      \"plank left xshift=\",\n      \"plank left yshift=\",\n      \"plank right\",\n      \"plank right=\",\n      \"plank right width=\",\n      \"plank right height=\",\n      \"plank right xshift=\",\n      \"plank right yshift=\",\n      \"laptop left\",\n      \"laptop left=\",\n      \"laptop left bracket=\",\n      \"laptop left lower=\",\n      \"laptop left key=\",\n      \"laptop left display=\",\n      \"laptop left content={${1:TikZ code}}\",\n      \"laptop left mid={${1:code}}\",\n      \"laptop right\",\n      \"laptop right=\",\n      \"laptop right bracket=\",\n      \"laptop right lower=\",\n      \"laptop right key=\",\n      \"laptop right display=\",\n      \"laptop right content={${1:TikZ code}}\",\n      \"laptop right mid={${1:code}}\",\n      \"devil fork left\",\n      \"devil fork left=\",\n      \"devil fork left second=\",\n      \"devil fork left length=\",\n      \"devil fork right\",\n      \"devil fork right=\",\n      \"devil fork right second=\",\n      \"devil fork right length=\",\n      \"horse left\",\n      \"horse left=\",\n      \"horse left flip\",\n      \"horse left donkey\",\n      \"horse left has base\",\n      \"horse left draw=\",\n      \"horse left mane=\",\n      \"horse left mane draw=\",\n      \"horse left thatch=\",\n      \"horse left thatch draw=\",\n      \"horse left tail=\",\n      \"horse left tail draw=\",\n      \"horse left eyes=\",\n      \"horse left mouth=\",\n      \"horse left nose=\",\n      \"horse left ears=\",\n      \"horse left base=\",\n      \"horse left base draw=\",\n      \"horse left base shade=\",\n      \"horse left base shade draw=\",\n      \"horse left front left hoof=\",\n      \"horse left front right hoof=\",\n      \"horse left back left hoof=\",\n      \"horse left back right hoof=\",\n      \"horse left front hoofs=\",\n      \"horse left back hoofs=\",\n      \"horse left hoofs=\",\n      \"horse left xshift=\",\n      \"horse left yshift=\",\n      \"horse left on base\",\n      \"horse right\",\n      \"horse right=\",\n      \"horse right flip\",\n      \"horse right donkey\",\n      \"horse right has base\",\n      \"horse right draw=\",\n      \"horse right mane=\",\n      \"horse right mane draw=\",\n      \"horse right thatch=\",\n      \"horse right thatch draw=\",\n      \"horse right tail=\",\n      \"horse right tail draw=\",\n      \"horse right eyes=\",\n      \"horse right mouth=\",\n      \"horse right nose=\",\n      \"horse right ears=\",\n      \"horse right base=\",\n      \"horse right base draw=\",\n      \"horse right base shade=\",\n      \"horse right base shade draw=\",\n      \"horse right front left hoof=\",\n      \"horse right front right hoof=\",\n      \"horse right back left hoof=\",\n      \"horse right back right hoof=\",\n      \"horse right front hoofs=\",\n      \"horse right back hoofs=\",\n      \"horse right hoofs=\",\n      \"horse right xshift=\",\n      \"horse right yshift=\",\n      \"horse right on base\",\n      \"cloak\",\n      \"cloak=\",\n      \"cloak cap=\",\n      \"cloak wings color=\",\n      \"cloak bottom color=\",\n      \"cloak front color=\",\n      \"cloak padding=\",\n      \"cape\",\n      \"cape=\",\n      \"shirt\",\n      \"shirt=\",\n      \"shirt raise=\",\n      \"shirt padding=\",\n      \"shirt button top=\",\n      \"shirt button middle=\",\n      \"shirt button bottom=\",\n      \"shirt buttons=\",\n      \"shirt button top shade=\",\n      \"shirt button middle shade=\",\n      \"shirt button bottom shade=\",\n      \"shirt buttons shade=\",\n      \"shirt no buttons\",\n      \"shirt above\",\n      \"second shirt\",\n      \"second shirt=\",\n      \"second shirt raise=\",\n      \"second shirt neck=\",\n      \"xshift=\",\n      \"yshift=\"\n    ],\n    \"\\\\pinguloadlibrary#c,\\\\pinguloadlibraries#c\": [\n      \"shirts\",\n      \"glasses\",\n      \"medieval\",\n      \"cloak\",\n      \"christmas\",\n      \"science-fiction\",\n      \"fun\",\n      \"technology\",\n      \"flags\",\n      \"hats\",\n      \"sport\",\n      \"formal\",\n      \"signs\",\n      \"devil\",\n      \"safe\",\n      \"magic\",\n      \"movement\",\n      \"emotions\",\n      \"horse\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikzpingus#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzquests.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"defNewRepository\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defNewRepository{${1:repository}}\"\n      }\n    },\n    {\n      \"name\": \"defNewRepository*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defNewRepository*{${1:repository}}\"\n      }\n    },\n    {\n      \"name\": \"SelectRepository\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SelectRepository{${1:repository}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defQuestion{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestion\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"defQuestion{${1:name}}{${2:code}}[${3:remarks}]\"\n      }\n    },\n    {\n      \"name\": \"defQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defQuestion[${3:repository}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"defQuestion[${3:repository}]{${1:name}}{${2:code}}[${4:remarks}]\"\n      }\n    },\n    {\n      \"name\": \"defQuestion*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defQuestion*{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestion*\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"defQuestion*{${1:name}}{${2:code}}[${3:remarks}]\"\n      }\n    },\n    {\n      \"name\": \"defQuestion*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defQuestion*[${3:repository}]{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestion*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"defQuestion*[${3:repository}]{${1:name}}{${2:code}}[${4:remarks}]\"\n      }\n    },\n    {\n      \"name\": \"defQuestionAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defQuestionAlias{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestionAlias\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defQuestionAlias[${3:repository}]{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestionAlias*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defQuestionAlias*{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"defQuestionAlias*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defQuestionAlias*[${3:repository}]{${1:alias}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ftikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ftikzQuestion{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ftikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"ftikzQuestion{${1:name}}[${2:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ftikzQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"ftikzQuestion[${2:repository}]{${1:name}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"ftikzQuestion\",\n      \"arg\": {\n        \"format\": \"()[]{}[]<>\",\n        \"snippet\": \"ftikzQuestion(${5:scale})[${2:repository}]{${1:name}}[${3:keyvals}]<${4:annotation}>\"\n      }\n    },\n    {\n      \"name\": \"tikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzQuestion{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"tikzQuestion{${1:name}}[${2:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"tikzQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"tikzQuestion[${2:repository}]{${1:name}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"tikzQuestion\",\n      \"arg\": {\n        \"format\": \"()[]{}[]<>\",\n        \"snippet\": \"tikzQuestion(${5:scale})[${2:repository}]{${1:name}}[${3:keyvals}]<${4:annotation}>\"\n      }\n    },\n    {\n      \"name\": \"rawtikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rawtikzQuestion{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"rawtikzQuestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"rawtikzQuestion{${1:name}}[${2:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rawtikzQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"rawtikzQuestion[${2:repository}]{${1:name}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"rawtikzQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]<>\",\n        \"snippet\": \"rawtikzQuestion[${2:repository}]{${1:name}}[${3:keyvals}]<${4:annotation}>\"\n      }\n    },\n    {\n      \"name\": \"textQuestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textQuestion{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"textQuestion\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"textQuestion{${1:name}}[${2:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"textQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"textQuestion[${2:repository}]{${1:name}}[${3:keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"textQuestion\",\n      \"arg\": {\n        \"format\": \"[]{}[]<>\",\n        \"snippet\": \"textQuestion[${2:repository}]{${1:name}}[${3:keyvals}]<${4:annotation}>\"\n      }\n    },\n    {\n      \"name\": \"QuestionsList\"\n    },\n    {\n      \"name\": \"QuestionsList\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"QuestionsList[${1:repository list}]\"\n      }\n    },\n    {\n      \"name\": \"QuestVal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuestVal{${1:key%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tikzquests#c\": [\n      \"no alias\",\n      \"xtrakeys={${1:keyvals}}\",\n      \"xtraidx={${1:keyvals}}\",\n      \"undef color=\",\n      \"in review\",\n      \"no defs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tikzquests#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzrput.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"rput(${2:x},${3:y}){${1:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"rput[${2:refpoint}](${3:x},${4:y}){${1:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rput{${1:angle}}(${3:x},${4:y}){${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"rput\",\n      \"arg\": {\n        \"format\": \"[]{}(){}\",\n        \"snippet\": \"rput[${3:refpoint}]{${1:angle}}(${4:x},${5:y}){${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"tikzrputPtVirCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzrputAtCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tikzrputTwoPtCode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzscale.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pgfmathsetglobalmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfmathsetglobalmacro{${1:cmd}}{${2:math expr}}\"\n      }\n    },\n    {\n      \"name\": \"ifTikzLibraryLoaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifTikzLibraryLoaded{${1:library}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifExternalizationLoaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifExternalizationLoaded{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifedefequal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifedefequal{${1:expr1}}{${2:expr2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"edocsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"edocsvlist{${1:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"eforcsvlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eforcsvlist{${1:handler}}{${2:csvlist}}\"\n      }\n    },\n    {\n      \"name\": \"forgrouplist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"forgrouplist{${1:handler}}{${2:grouplist}}\"\n      }\n    },\n    {\n      \"name\": \"grouplistbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eforgrouplist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eforgrouplist{${1:handler}}{${2:grouplist}}\"\n      }\n    },\n    {\n      \"name\": \"IfNoValueOrSplitEmptyTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfNoValueOrSplitEmptyTF{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"maxTestIterations\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tikzsymbols.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarytrees\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tikzsymbolsset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsymbolsset{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tikzsymbolsset,\\\\usepackage/tikzsymbols#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tikzsymbolsuse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsymbolsuse{${1:symbol name}}\"\n      }\n    },\n    {\n      \"name\": \"Kochtopf\"\n    },\n    {\n      \"name\": \"pot\"\n    },\n    {\n      \"name\": \"Bratpfanne\"\n    },\n    {\n      \"name\": \"fryingpan\"\n    },\n    {\n      \"name\": \"Schneebesen\"\n    },\n    {\n      \"name\": \"eggbeater\"\n    },\n    {\n      \"name\": \"Sieb\"\n    },\n    {\n      \"name\": \"sieve\"\n    },\n    {\n      \"name\": \"Purierstab\"\n    },\n    {\n      \"name\": \"blender\"\n    },\n    {\n      \"name\": \"Dreizack\"\n    },\n    {\n      \"name\": \"trident\"\n    },\n    {\n      \"name\": \"Backblech\"\n    },\n    {\n      \"name\": \"bakingplate\"\n    },\n    {\n      \"name\": \"Ofen\"\n    },\n    {\n      \"name\": \"oven\"\n    },\n    {\n      \"name\": \"Pfanne\"\n    },\n    {\n      \"name\": \"pan\"\n    },\n    {\n      \"name\": \"Herd\"\n    },\n    {\n      \"name\": \"cooker\"\n    },\n    {\n      \"name\": \"Saftpresse\"\n    },\n    {\n      \"name\": \"squeezer\"\n    },\n    {\n      \"name\": \"Schussel\"\n    },\n    {\n      \"name\": \"bowl\"\n    },\n    {\n      \"name\": \"Schaler\"\n    },\n    {\n      \"name\": \"peeler\"\n    },\n    {\n      \"name\": \"Reibe\"\n    },\n    {\n      \"name\": \"grater\"\n    },\n    {\n      \"name\": \"Flasche\"\n    },\n    {\n      \"name\": \"bottle\"\n    },\n    {\n      \"name\": \"Nudelholz\"\n    },\n    {\n      \"name\": \"rollingpin\"\n    },\n    {\n      \"name\": \"Knoblauchpresse\"\n    },\n    {\n      \"name\": \"garlicpress\"\n    },\n    {\n      \"name\": \"Kochtopf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Kochtopf[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pot[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Bratpfanne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bratpfanne[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"fryingpan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fryingpan[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Schneebesen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Schneebesen[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"eggbeater\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eggbeater[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Sieb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Sieb[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"sieve\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sieve[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Purierstab\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Purierstab[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"blender\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"blender[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Dreizack\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Dreizack[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"trident\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"trident[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Backblech\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Backblech[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bakingplate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bakingplate[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Ofen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ofen[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"oven\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"oven[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Pfanne\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Pfanne[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"pan\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pan[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Herd\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Herd[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"cooker\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cooker[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Saftpresse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Saftpresse[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"squeezer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squeezer[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Schussel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Schussel[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bowl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bowl[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Schaler\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Schaler[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"peeler\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"peeler[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Reibe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Reibe[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"grater\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"grater[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Flasche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Flasche[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"bottle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"bottle[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Nudelholz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Nudelholz[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"rollingpin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"rollingpin[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Knoblauchpresse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Knoblauchpresse[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"garlicpress\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"garlicpress[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Smiley\"\n    },\n    {\n      \"name\": \"Sadey\"\n    },\n    {\n      \"name\": \"Neutrey\"\n    },\n    {\n      \"name\": \"Annoey\"\n    },\n    {\n      \"name\": \"Laughey\"\n    },\n    {\n      \"name\": \"Winkey\"\n    },\n    {\n      \"name\": \"oldWinkey\"\n    },\n    {\n      \"name\": \"Sey\"\n    },\n    {\n      \"name\": \"Xey\"\n    },\n    {\n      \"name\": \"Innocey\"\n    },\n    {\n      \"name\": \"wInnocey\"\n    },\n    {\n      \"name\": \"Cooley\"\n    },\n    {\n      \"name\": \"Tongey\"\n    },\n    {\n      \"name\": \"Nursey\"\n    },\n    {\n      \"name\": \"Vomey\"\n    },\n    {\n      \"name\": \"Walley\"\n    },\n    {\n      \"name\": \"rWalley\"\n    },\n    {\n      \"name\": \"Cat\"\n    },\n    {\n      \"name\": \"Ninja\"\n    },\n    {\n      \"name\": \"Sleepey\"\n    },\n    {\n      \"name\": \"Maskey\"\n    },\n    {\n      \"name\": \"NiceReapey\"\n    },\n    {\n      \"name\": \"Smiley\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Smiley[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Sadey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Sadey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Neutrey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Neutrey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Changey\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Changey[${2:scale}][${3:color}]{${1:mood}}\"\n      }\n    },\n    {\n      \"name\": \"cChangey\",\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"cChangey[${2:scale}][${3:color1%color}][${4:color2%color}][${5:color3%color}]{${1:mood}}\"\n      }\n    },\n    {\n      \"name\": \"Annoey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Annoey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Laughey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Laughey[${1:scale}][${2:color}][${3:mouth color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Winkey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Winkey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"oldWinkey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"oldWinkey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Sey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Sey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Xey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Xey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Innocey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Innocey[${1:scale}][${2:color}][${3:halo color%color}]\"\n      }\n    },\n    {\n      \"name\": \"wInnocey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wInnocey[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Cooley\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Cooley[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Tongey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Tongey[${1:scale}][${2:color}][${3:tongue color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Nursey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Nursey[${1:scale}][${2:color}][${3:cross color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Vomey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Vomey[${1:scale}][${2:color}][${3:vomit color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Walley\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Walley[${1:scale}][${2:color}][${3:wall color%color}]\"\n      }\n    },\n    {\n      \"name\": \"rWalley\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"rWalley[${1:scale}][${2:color}][${3:wall color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Cat\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Cat[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"SchrodingersCat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SchrodingersCat[${2:scale}]{${1:case}}\"\n      }\n    },\n    {\n      \"name\": \"Ninja\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"Ninja[${1:scale}][${2:color}][${3:headband color%color}][${4:eye color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Sleepey\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"Sleepey[${1:scale}][${2:color}][${3:cap color%color}][${4:star color%color}]\"\n      }\n    },\n    {\n      \"name\": \"Maskey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"Maskey[${1:scale}][${2:color}][${3:mask color%color}]\"\n      }\n    },\n    {\n      \"name\": \"NiceReapey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NiceReapey[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"dSmiley\"\n    },\n    {\n      \"name\": \"dSadey\"\n    },\n    {\n      \"name\": \"dNeutrey\"\n    },\n    {\n      \"name\": \"dAnnoey\"\n    },\n    {\n      \"name\": \"dLaughey\"\n    },\n    {\n      \"name\": \"dWinkey\"\n    },\n    {\n      \"name\": \"dSey\"\n    },\n    {\n      \"name\": \"dXey\"\n    },\n    {\n      \"name\": \"dInnocey\"\n    },\n    {\n      \"name\": \"dCooley\"\n    },\n    {\n      \"name\": \"dNinja\"\n    },\n    {\n      \"name\": \"drWalley\"\n    },\n    {\n      \"name\": \"dWalley\"\n    },\n    {\n      \"name\": \"dVomey\"\n    },\n    {\n      \"name\": \"dNursey\"\n    },\n    {\n      \"name\": \"dTongey\"\n    },\n    {\n      \"name\": \"dSleepey\"\n    },\n    {\n      \"name\": \"olddWinkey\"\n    },\n    {\n      \"name\": \"dSmiley\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dSmiley[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dSadey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dSadey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dNeutrey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dNeutrey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dChangey\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"dChangey[${2:scale}][${3:color}]{${1:mood}}\"\n      }\n    },\n    {\n      \"name\": \"dcChangey\",\n      \"arg\": {\n        \"format\": \"[][][][]{}\",\n        \"snippet\": \"dcChangey[${2:scale}][${3:color1%color}][${4:color2%color}][${5:color3%color}]{${1:mood}}\"\n      }\n    },\n    {\n      \"name\": \"dAnnoey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dAnnoey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dLaughey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"dLaughey[${1:scale}][${2:color}][${3:mouth color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dWinkey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dWinkey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dSey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dSey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dXey\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dXey[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dInnocey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"dInnocey[${1:scale}][${2:color}][${3:halo color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dCooley\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dCooley[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dNinja\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"dNinja[${1:scale}][${2:color}][${3:headband color%color}][${4:eye color%color}]\"\n      }\n    },\n    {\n      \"name\": \"drWalley\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"drWalley[${1:scale}][${2:color}][${3:wall color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dWalley\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"dWalley[${1:scale}][${2:color}][${3:wall color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dVomey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"dVomey[${1:scale}][${2:color}][${3:vomit color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dNursey\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"dNursey[${1:scale}][${2:color}][${3:cap color%color}][${4:cross color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dTongey\",\n      \"arg\": {\n        \"format\": \"[][][]\",\n        \"snippet\": \"dTongey[${1:scale}][${2:color}][${3:tongue color%color}]\"\n      }\n    },\n    {\n      \"name\": \"dSleepey\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"dSleepey[${1:scale}][${2:color}][${3:cap color%color}][${4:star color%color}]\"\n      }\n    },\n    {\n      \"name\": \"olddWinkey\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"olddWinkey[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Strichmaxerl\"\n    },\n    {\n      \"name\": \"Heart\"\n    },\n    {\n      \"name\": \"dHeart\"\n    },\n    {\n      \"name\": \"Candle\"\n    },\n    {\n      \"name\": \"Fire\"\n    },\n    {\n      \"name\": \"Coffeecup\"\n    },\n    {\n      \"name\": \"Chair\"\n    },\n    {\n      \"name\": \"Bed\"\n    },\n    {\n      \"name\": \"Tribar\"\n    },\n    {\n      \"name\": \"Moai\"\n    },\n    {\n      \"name\": \"Snowman\"\n    },\n    {\n      \"name\": \"Strichmaxerl\",\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"Strichmaxerl[${1:scale}][${2:left arm}][${3:right arm}][${4:left leg}][${5:right leg}]\"\n      }\n    },\n    {\n      \"name\": \"Heart\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"Heart[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"dHeart\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"dHeart[${1:scale}][${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"Candle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Candle[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Fire\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Fire[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Coffeecup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Coffeecup[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Chair\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Chair[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Bed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Bed[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Tribar\",\n      \"arg\": {\n        \"format\": \"[][][][]\",\n        \"snippet\": \"Tribar[${1:scale}][${2:color1%color}][${3:color2%color}][${4:color3%color}]\"\n      }\n    },\n    {\n      \"name\": \"Moai\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Moai[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Snowman\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Snowman[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"BasicTree\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"BasicTree{${1:trunkcolor%color}}{${2:leafcolor1%color}}{${3:leafcolor2%color}}{${4:leaf}}\"\n      }\n    },\n    {\n      \"name\": \"Springtree\"\n    },\n    {\n      \"name\": \"Summertree\"\n    },\n    {\n      \"name\": \"Autumntree\"\n    },\n    {\n      \"name\": \"Wintertree\"\n    },\n    {\n      \"name\": \"WorstTree\"\n    },\n    {\n      \"name\": \"BasicTree\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"BasicTree[${5:scale}]{${1:trunkcolor%color}}{${2:leafcolor1%color}}{${3:leafcolor2%color}}{${4:leaf}}\"\n      }\n    },\n    {\n      \"name\": \"Springtree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Springtree[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Summertree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Summertree[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Autumntree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Autumntree[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"Wintertree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Wintertree[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"WorstTree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"WorstTree[${1:scale}]\"\n      }\n    },\n    {\n      \"name\": \"tikzsymbolsdefinesymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tikzsymbolsdefinesymbol{${1:symbol name}}{${2:args}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsymbolsprovideandusesavebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tikzsymbolsprovideandusesavebox{${1:box name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsymbolssetscaleabs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tikzsymbolssetscaleabs{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"tikzsymbolsscaleabs\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tikzsymbolsset,\\\\usepackage/tikzsymbols#c\": [\n      \"draft\",\n      \"final\",\n      \"tree=${1|true,false,on,off|}\",\n      \"after-symbol=${1:code}\",\n      \"global-scale=${1:number}\",\n      \"symbol-scale={${1:sym1=num1,sym2=num2,...}}\",\n      \"append-style={${1:TikZ keys}}\",\n      \"usebox\",\n      \"baseline\",\n      \"remember-picture\"\n    ],\n    \"\\\\usepackage/tikzsymbols#c\": [\n      \"marvosym\",\n      \"prefix=${1:string}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\tikzsymbolsset,\\\\usepackage/tikzsymbols#c\",\n    \"\\\\usepackage/tikzsymbols#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tikzviolinplots.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfplots\"\n    },\n    {\n      \"name\": \"pgfplotstable\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    },\n    {\n      \"name\": \"pgfkeys\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"violinsetoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"violinsetoptions{${1:pgfplots options}}\"\n      }\n    },\n    {\n      \"name\": \"violinsetoptions\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"violinsetoptions[${2:package-specific options%keyvals}]{${1:pgfplots options}}\",\n        \"keys\": [\n          \"\\\\violinsetoptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"violinplot\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"violinplot{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"violinplot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"violinplot[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\violinplot,\\\\violinplotwholefile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"violinplotwholefile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"violinplotwholefile{${1:filename%file}}\"\n      }\n    },\n    {\n      \"name\": \"violinplotwholefile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"violinplotwholefile[${2:options%keyvals}]{${1:filename%file}}\",\n        \"keys\": [\n          \"\\\\violinplot,\\\\violinplotwholefile\",\n          \"\\\\violinplotwholefile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\violinsetoptions\": [\n      \"scaled\",\n      \"data points\",\n      \"averages\",\n      \"no mirror\",\n      \"reverse axis\"\n    ],\n    \"\\\\violinplot,\\\\violinplotwholefile\": [\n      \"col sep=${1|space,tab,comma,colon,semicolon,braces,ampersand|}\",\n      \"index=${1:column name}\",\n      \"kernel=${1|gaussian,logistic,parabolic,uniform,triangular|}\",\n      \"bandwidth=${1:number}\",\n      \"samples=${1:integer}\",\n      \"relative position=${1:integer}\",\n      \"color=\",\n      \"label={${1:text}}\",\n      \"invert\",\n      \"average mark=${1:mark}\",\n      \"dataset mark=${1:mark}\",\n      \"average size=\",\n      \"dataset size=\",\n      \"average color=\",\n      \"dataset color=\",\n      \"average opacity=${1:factor}\",\n      \"dataset opacity=${1:factor}\",\n      \"average fill=\",\n      \"dataset fill=\",\n      \"average fill opacity=${1:factor}\",\n      \"dataset fill opacity=${1:factor}\"\n    ],\n    \"\\\\violinplotwholefile\": [\n      \"primary color=\",\n      \"secondary color=\",\n      \"indexes={${1:index1,index2,...}}\",\n      \"spacing=${1:number}\",\n      \"labels={${1:label1,label2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tile-graphic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"shellesc\"\n    },\n    {\n      \"name\": \"web\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"multido\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setTileParams\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setTileParams{${1:rows}}{${2:cols}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setTileParams\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"setTileParams[${4:options%keyvals}]{${1:rows}}{${2:cols}}{${3:imagefile}}\",\n        \"keys\": [\n          \"\\\\setTileParams\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tileTheGraphic\"\n    },\n    {\n      \"name\": \"fullPathToSource\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullPathToSource{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"afterPkgCreationHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterPkgCreationHook{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"afterTileCreationHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterTileCreationHook{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"bpHttile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bpWdtile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"compileTileFiles\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definePath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definePath{${1:cmd}}{${2:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"dvipsappArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dvipsappArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifpassthruTG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftgfolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IWTD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IWTD{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"latexappArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"latexappArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nCols\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nFilesCreated\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nRows\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"packagesuffix\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"packagesuffix{${1:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"passthruTGfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"passthruTGtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pathToPic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pkgappArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgappArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"syscopy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"syscopy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sysdel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysdel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sysmove\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sysmove{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tgBaseName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgfolderfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgfoldertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgInFolder\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgInputContent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tgTileBaseIndx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileappArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tileappArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"WriteBookmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrtTileCuts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wrttiledoc\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tile-graphic#c\": [\n      \"wrttofiles\",\n      \"!wrttofiles\",\n      \"packagefiles\",\n      \"!packagefiles\",\n      \"pdfcreator=${1|pdflatex,lualatex,xelatex,ps2pdf,distiller|}\"\n    ],\n    \"\\\\setTileParams\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tile-graphic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/time.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"now\"\n    },\n    {\n      \"name\": \"hour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minute\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/timing-diagrams.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshape.callouts\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"boxheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tadvance\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tadvance{${1:name}}{${2:x}}{${3:tikz code}}\"\n      }\n    },\n    {\n      \"name\": \"tarrowCoord\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tarrowCoord{${1:(${4:name1})}}{${2:(${5:name2})}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tarrowLU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tarrowLU{${1:name1}}{${2:name2}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tarrowUL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tarrowUL{${1:name1}}{${2:name2}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tbox{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcalloutL\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcalloutL[${3:coord}]{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcalloutL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcalloutL{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcalloutU\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tcalloutU[${3:coord}]{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcalloutU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcalloutU{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcaption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcaption{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tcatchup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tcatchup{${1:name1}}{${2:name2}}\"\n      }\n    },\n    {\n      \"name\": \"tendbrace\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tendbrace{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tevent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tevent{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"teventA\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"teventA{${1:name}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"tlighttick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlighttick{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tline{${1:name}}{${2:y}}\"\n      }\n    },\n    {\n      \"name\": \"tlonglighttick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tlonglighttick{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"trecall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trecall{${1:name}}{${2:remember-name}}\"\n      }\n    },\n    {\n      \"name\": \"tremember\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tremember{${1:name}}{${2:remember-name}}\"\n      }\n    },\n    {\n      \"name\": \"tsetcurrent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsetcurrent{${1:name}}{${2:coord}}\"\n      }\n    },\n    {\n      \"name\": \"tsetcurrentabs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsetcurrentabs{${1:name}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"tskip\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tskip{${1:name}}{${2:x}}\"\n      }\n    },\n    {\n      \"name\": \"tskiparrowL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tskiparrowL{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tskiparrowU\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tskiparrowU{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tskiptext\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tskiptext{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tskiptextCONF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tskiptextCONF{${1:name}}{${2:x}}{${3:node options}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"tskiptextinbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tskiptextinbox{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tskiptextL\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tskiptextL{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tsmallbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tsmallbox{${1:name}}{${2:x}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstartbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstartbrace{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tstrongtick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tstrongtick{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ttextarrowU\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ttextarrowU[${3:coord}]{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ttextarrowU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttextarrowU{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ttextL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttextL{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ttextM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttextM{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ttextU\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttextU{${1:name}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ttick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ttick{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ttimeline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttimeline{${1:name}}{${2:x}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tinos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tinos\"\n    },\n    {\n      \"name\": \"tinosfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tinos#c\": [\n      \"scaled=${1:factor}\",\n      \"type1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tinos#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tipa.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tone\",\n      \"if\": \"tone\"\n    },\n    {\n      \"name\": \"extraipa\",\n      \"if\": \"extra\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"NG\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dj\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"ng\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"k\",\n      \"if\": \"T1\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guilsinglright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotedblbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"quotesinglbase\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"textquotedbl\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"DJ\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"th\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"TH\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"dh\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"if\": \"T1\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"if\": \"T1\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"guillemetright\",\n      \"if\": \"T1\"\n    },\n    {\n      \"name\": \"IJ\"\n    },\n    {\n      \"name\": \"ij\"\n    },\n    {\n      \"name\": \"ipabar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ipabar{${1:symbol}}{${2:height}}{${3:width}}{${4:lkern}}{${5:rkern}}\"\n      }\n    },\n    {\n      \"name\": \"ipaclap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ipaclap{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"s\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"s{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"SS\"\n    },\n    {\n      \"name\": \"textacutemacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textacutemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textacutewedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textacutewedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textadvancing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textadvancing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbabygamma\"\n    },\n    {\n      \"name\": \"textbarb\"\n    },\n    {\n      \"name\": \"textbarc\"\n    },\n    {\n      \"name\": \"textbard\"\n    },\n    {\n      \"name\": \"textbardotlessj\"\n    },\n    {\n      \"name\": \"textbarg\"\n    },\n    {\n      \"name\": \"textbarglotstop\"\n    },\n    {\n      \"name\": \"textbari\"\n    },\n    {\n      \"name\": \"textbarl\"\n    },\n    {\n      \"name\": \"textbaro\"\n    },\n    {\n      \"name\": \"textbarrevglotstop\"\n    },\n    {\n      \"name\": \"textbaru\"\n    },\n    {\n      \"name\": \"textbeltl\"\n    },\n    {\n      \"name\": \"textbeta\"\n    },\n    {\n      \"name\": \"textbottomtiebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbottomtiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbrevemacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbrevemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbullseye\"\n    },\n    {\n      \"name\": \"textceltpal\"\n    },\n    {\n      \"name\": \"textchi\"\n    },\n    {\n      \"name\": \"textcircumacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircumacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textcircumdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcircumdot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textcloseepsilon\"\n    },\n    {\n      \"name\": \"textcloseomega\"\n    },\n    {\n      \"name\": \"textcloserevepsilon\"\n    },\n    {\n      \"name\": \"textcommatailz\"\n    },\n    {\n      \"name\": \"textcorner\"\n    },\n    {\n      \"name\": \"textcrb\"\n    },\n    {\n      \"name\": \"textcrd\"\n    },\n    {\n      \"name\": \"textcrg\"\n    },\n    {\n      \"name\": \"textcrh\"\n    },\n    {\n      \"name\": \"textcrinvglotstop\"\n    },\n    {\n      \"name\": \"textcrlambda\"\n    },\n    {\n      \"name\": \"textcrtwo\"\n    },\n    {\n      \"name\": \"textctc\"\n    },\n    {\n      \"name\": \"textctd\"\n    },\n    {\n      \"name\": \"textctdctzlig\"\n    },\n    {\n      \"name\": \"textctesh\"\n    },\n    {\n      \"name\": \"textctj\"\n    },\n    {\n      \"name\": \"textctn\"\n    },\n    {\n      \"name\": \"textctt\"\n    },\n    {\n      \"name\": \"textcttctclig\"\n    },\n    {\n      \"name\": \"textctyogh\"\n    },\n    {\n      \"name\": \"textctz\"\n    },\n    {\n      \"name\": \"textdctzlig\"\n    },\n    {\n      \"name\": \"textdotacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdotacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdotbreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdotbreve{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublebaresh\"\n    },\n    {\n      \"name\": \"textdoublebarpipe\"\n    },\n    {\n      \"name\": \"textdoublebarslash\"\n    },\n    {\n      \"name\": \"textdoublegrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublegrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublepipe\"\n    },\n    {\n      \"name\": \"textdoublevbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdoublevbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textdoublevertline\"\n    },\n    {\n      \"name\": \"textdownstep\"\n    },\n    {\n      \"name\": \"textdyoghlig\"\n    },\n    {\n      \"name\": \"textdzlig\"\n    },\n    {\n      \"name\": \"textepsilon\"\n    },\n    {\n      \"name\": \"textesh\"\n    },\n    {\n      \"name\": \"textfallrise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfallrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textfishhookr\"\n    },\n    {\n      \"name\": \"textg\"\n    },\n    {\n      \"name\": \"textgamma\"\n    },\n    {\n      \"name\": \"textglobfall\"\n    },\n    {\n      \"name\": \"textglobrise\"\n    },\n    {\n      \"name\": \"textglotstop\"\n    },\n    {\n      \"name\": \"textgravecircum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravecircum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravedot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravedot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravemacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravemacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textgravemid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgravemid{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texthalflength\"\n    },\n    {\n      \"name\": \"texthardsign\"\n    },\n    {\n      \"name\": \"texthighrise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texthighrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texthooktop\"\n    },\n    {\n      \"name\": \"texthtb\"\n    },\n    {\n      \"name\": \"texthtbardotlessj\"\n    },\n    {\n      \"name\": \"texthtc\"\n    },\n    {\n      \"name\": \"texthtd\"\n    },\n    {\n      \"name\": \"texthtg\"\n    },\n    {\n      \"name\": \"texthth\"\n    },\n    {\n      \"name\": \"texththeng\"\n    },\n    {\n      \"name\": \"texthtk\"\n    },\n    {\n      \"name\": \"texthtp\"\n    },\n    {\n      \"name\": \"texthtq\"\n    },\n    {\n      \"name\": \"texthtrtaild\"\n    },\n    {\n      \"name\": \"texthtscg\"\n    },\n    {\n      \"name\": \"texthtt\"\n    },\n    {\n      \"name\": \"texthvlig\"\n    },\n    {\n      \"name\": \"textinvglotstop\"\n    },\n    {\n      \"name\": \"textinvscr\"\n    },\n    {\n      \"name\": \"textinvsubbridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinvsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textiota\"\n    },\n    {\n      \"name\": \"textipa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textipa{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlambda\"\n    },\n    {\n      \"name\": \"textlengthmark\"\n    },\n    {\n      \"name\": \"textlhookt\"\n    },\n    {\n      \"name\": \"textlhtlongi\"\n    },\n    {\n      \"name\": \"textlhtlongy\"\n    },\n    {\n      \"name\": \"textlonglegr\"\n    },\n    {\n      \"name\": \"textlowering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlowering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlowrise\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlowrise{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlptr\"\n    },\n    {\n      \"name\": \"textltailm\"\n    },\n    {\n      \"name\": \"textltailn\"\n    },\n    {\n      \"name\": \"textltilde\"\n    },\n    {\n      \"name\": \"textlyoghlig\"\n    },\n    {\n      \"name\": \"textmidacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmidacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textObardotlessj\"\n    },\n    {\n      \"name\": \"textOlyoghlig\"\n    },\n    {\n      \"name\": \"textomega\"\n    },\n    {\n      \"name\": \"textopencorner\"\n    },\n    {\n      \"name\": \"textopeno\"\n    },\n    {\n      \"name\": \"textovercross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textovercross{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textoverw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverw{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textpalhook\"\n    },\n    {\n      \"name\": \"textphi\"\n    },\n    {\n      \"name\": \"textpipe\"\n    },\n    {\n      \"name\": \"textpolhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpolhook{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textprimstress\"\n    },\n    {\n      \"name\": \"textraiseglotstop\"\n    },\n    {\n      \"name\": \"textraisevibyi\"\n    },\n    {\n      \"name\": \"textraising\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textraising{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textramshorns\"\n    },\n    {\n      \"name\": \"textretracting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textretracting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrevapostrophe\"\n    },\n    {\n      \"name\": \"textreve\"\n    },\n    {\n      \"name\": \"textrevepsilon\"\n    },\n    {\n      \"name\": \"textrevglotstop\"\n    },\n    {\n      \"name\": \"textrevyogh\"\n    },\n    {\n      \"name\": \"textrhookrevepsilon\"\n    },\n    {\n      \"name\": \"textrhookschwa\"\n    },\n    {\n      \"name\": \"textrhoticity\"\n    },\n    {\n      \"name\": \"textringmacron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textringmacron{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrisefall\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrisefall{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textroundcap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textroundcap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textrptr\"\n    },\n    {\n      \"name\": \"textrtaild\"\n    },\n    {\n      \"name\": \"textrtaill\"\n    },\n    {\n      \"name\": \"textrtailn\"\n    },\n    {\n      \"name\": \"textrtailr\"\n    },\n    {\n      \"name\": \"textrtails\"\n    },\n    {\n      \"name\": \"textrtailt\"\n    },\n    {\n      \"name\": \"textrtailz\"\n    },\n    {\n      \"name\": \"textrthook\"\n    },\n    {\n      \"name\": \"textsca\"\n    },\n    {\n      \"name\": \"textscb\"\n    },\n    {\n      \"name\": \"textsce\"\n    },\n    {\n      \"name\": \"textscg\"\n    },\n    {\n      \"name\": \"textsch\"\n    },\n    {\n      \"name\": \"textschwa\"\n    },\n    {\n      \"name\": \"textsci\"\n    },\n    {\n      \"name\": \"textscj\"\n    },\n    {\n      \"name\": \"textscl\"\n    },\n    {\n      \"name\": \"textscn\"\n    },\n    {\n      \"name\": \"textscoelig\"\n    },\n    {\n      \"name\": \"textscomega\"\n    },\n    {\n      \"name\": \"textscr\"\n    },\n    {\n      \"name\": \"textscripta\"\n    },\n    {\n      \"name\": \"textscriptg\"\n    },\n    {\n      \"name\": \"textscriptv\"\n    },\n    {\n      \"name\": \"textscu\"\n    },\n    {\n      \"name\": \"textscy\"\n    },\n    {\n      \"name\": \"textseagull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textseagull{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsecstress\"\n    },\n    {\n      \"name\": \"textsoftsign\"\n    },\n    {\n      \"name\": \"textstretchc\"\n    },\n    {\n      \"name\": \"textsubacute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubacute{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubcircum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubcircum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubdot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubgrave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubgrave{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsublhalfring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsublhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubplus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubrhalfring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubrhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubsquare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubsquare{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubumlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubw{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubwedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubwedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperimposetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperimposetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsyllabic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsyllabic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttctclig\"\n    },\n    {\n      \"name\": \"textteshlig\"\n    },\n    {\n      \"name\": \"texttheta\"\n    },\n    {\n      \"name\": \"textthorn\"\n    },\n    {\n      \"name\": \"texttildedot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttildedot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttoneletterstem\"\n    },\n    {\n      \"name\": \"texttoptiebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttoptiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttslig\"\n    },\n    {\n      \"name\": \"textturna\"\n    },\n    {\n      \"name\": \"textturncelig\"\n    },\n    {\n      \"name\": \"textturnh\"\n    },\n    {\n      \"name\": \"textturnk\"\n    },\n    {\n      \"name\": \"textturnlonglegr\"\n    },\n    {\n      \"name\": \"textturnm \"\n    },\n    {\n      \"name\": \"textturnmrleg\"\n    },\n    {\n      \"name\": \"textturnr\"\n    },\n    {\n      \"name\": \"textturnrrtail\"\n    },\n    {\n      \"name\": \"textturnscripta\"\n    },\n    {\n      \"name\": \"textturnt\"\n    },\n    {\n      \"name\": \"textturnv\"\n    },\n    {\n      \"name\": \"textturnw\"\n    },\n    {\n      \"name\": \"textturny\"\n    },\n    {\n      \"name\": \"textupsilon\"\n    },\n    {\n      \"name\": \"textupstep\"\n    },\n    {\n      \"name\": \"textvbaraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvbaraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textvertline\"\n    },\n    {\n      \"name\": \"textvibyi\"\n    },\n    {\n      \"name\": \"textvibyy\"\n    },\n    {\n      \"name\": \"textwynn\"\n    },\n    {\n      \"name\": \"textyogh\"\n    },\n    {\n      \"name\": \"tipaencoding\"\n    },\n    {\n      \"name\": \"tipamedspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipanegthinspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipasafemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipathickspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipx\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"super\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"super{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nrsuper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nrsuper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sups{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"upperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"upperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Upperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Upperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Upperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"loweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Loweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"Loweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Loweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaupperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaupperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaupperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaupperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaUpperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaUpperaccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaUpperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaUpperaccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaloweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaloweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaloweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaloweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaLoweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaLoweraccent{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"tipaLoweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tipaLoweraccent[${3:shift%l}]{${1:slot}}{${2:char}}\"\n      }\n    },\n    {\n      \"name\": \"*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"|\",\n        \"snippet\": \"|\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"IPA\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tipa#c\": [\n      \"extra\",\n      \"tone\",\n      \"safe\",\n      \"T1\",\n      \"noenc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tipa#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tipauni.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"expkv-def\"\n    },\n    {\n      \"name\": \"expkv-opt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textrtailt\"\n    },\n    {\n      \"name\": \"textrtaild\"\n    },\n    {\n      \"name\": \"textipa\"\n    },\n    {\n      \"name\": \"textbardotlessj\"\n    },\n    {\n      \"name\": \"textscg\"\n    },\n    {\n      \"name\": \"textglotstop\"\n    },\n    {\n      \"name\": \"textltailm\"\n    },\n    {\n      \"name\": \"textrtailn\"\n    },\n    {\n      \"name\": \"textltailn\"\n    },\n    {\n      \"name\": \"textscn\"\n    },\n    {\n      \"name\": \"textscb\"\n    },\n    {\n      \"name\": \"textscr\"\n    },\n    {\n      \"name\": \"labdentflap\"\n    },\n    {\n      \"name\": \"textfishhookr\"\n    },\n    {\n      \"name\": \"textrtailr\"\n    },\n    {\n      \"name\": \"textphi\"\n    },\n    {\n      \"name\": \"textbeta\"\n    },\n    {\n      \"name\": \"texttheta\"\n    },\n    {\n      \"name\": \"textyogh\"\n    },\n    {\n      \"name\": \"textrtails\"\n    },\n    {\n      \"name\": \"textrtailz\"\n    },\n    {\n      \"name\": \"textctj\"\n    },\n    {\n      \"name\": \"textgamma\"\n    },\n    {\n      \"name\": \"textchi\"\n    },\n    {\n      \"name\": \"textinvscr\"\n    },\n    {\n      \"name\": \"textcrh\"\n    },\n    {\n      \"name\": \"textrevglotstop\"\n    },\n    {\n      \"name\": \"texthth\"\n    },\n    {\n      \"name\": \"textbeltl\"\n    },\n    {\n      \"name\": \"textlyoghlig\"\n    },\n    {\n      \"name\": \"labdentapp\"\n    },\n    {\n      \"name\": \"textturnr\"\n    },\n    {\n      \"name\": \"textturnrrtail\"\n    },\n    {\n      \"name\": \"textturnmrleg\"\n    },\n    {\n      \"name\": \"textrtaill\"\n    },\n    {\n      \"name\": \"textturny\"\n    },\n    {\n      \"name\": \"textscl\"\n    },\n    {\n      \"name\": \"textbullseye\"\n    },\n    {\n      \"name\": \"pstalvclick\"\n    },\n    {\n      \"name\": \"textdoublebarpipe\"\n    },\n    {\n      \"name\": \"textdoublepipe\"\n    },\n    {\n      \"name\": \"texthtb\"\n    },\n    {\n      \"name\": \"texthtd\"\n    },\n    {\n      \"name\": \"texthtbardotlessj\"\n    },\n    {\n      \"name\": \"texthtg\"\n    },\n    {\n      \"name\": \"texthtscg\"\n    },\n    {\n      \"name\": \"textturnw\"\n    },\n    {\n      \"name\": \"textturnh\"\n    },\n    {\n      \"name\": \"textsch\"\n    },\n    {\n      \"name\": \"textbarrevglotstop\"\n    },\n    {\n      \"name\": \"textturnlonglegr\"\n    },\n    {\n      \"name\": \"textbarglotstop\"\n    },\n    {\n      \"name\": \"textctc\"\n    },\n    {\n      \"name\": \"textctz\"\n    },\n    {\n      \"name\": \"texththeng\"\n    },\n    {\n      \"name\": \"textsci\"\n    },\n    {\n      \"name\": \"textscy\"\n    },\n    {\n      \"name\": \"textepsilon\"\n    },\n    {\n      \"name\": \"textbari\"\n    },\n    {\n      \"name\": \"textbaru\"\n    },\n    {\n      \"name\": \"textupsilon\"\n    },\n    {\n      \"name\": \"textreve\"\n    },\n    {\n      \"name\": \"textbaro\"\n    },\n    {\n      \"name\": \"textschwa\"\n    },\n    {\n      \"name\": \"textrevepsilon\"\n    },\n    {\n      \"name\": \"textcloserevepsilon\"\n    },\n    {\n      \"name\": \"textturna\"\n    },\n    {\n      \"name\": \"textturnm\"\n    },\n    {\n      \"name\": \"textramshorns\"\n    },\n    {\n      \"name\": \"textturnv\"\n    },\n    {\n      \"name\": \"textopeno\"\n    },\n    {\n      \"name\": \"textscripta\"\n    },\n    {\n      \"name\": \"textturnscripta\"\n    },\n    {\n      \"name\": \"textrhoticity\"\n    },\n    {\n      \"name\": \"textcorner\"\n    },\n    {\n      \"name\": \"textesh\"\n    },\n    {\n      \"name\": \"textdzlig\"\n    },\n    {\n      \"name\": \"textdyoghlig\"\n    },\n    {\n      \"name\": \"texttslig\"\n    },\n    {\n      \"name\": \"textteshlig\"\n    },\n    {\n      \"name\": \"textdblig\"\n    },\n    {\n      \"name\": \"textqplig\"\n    },\n    {\n      \"name\": \"texthvlig\"\n    },\n    {\n      \"name\": \"texttctclig\"\n    },\n    {\n      \"name\": \"stdlnetiebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stdlnetiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsupring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsupring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubwedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubwedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsupwedge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsupwedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubrhalfring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubrhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsublhalfring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsublhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubplus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubplus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsupbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsupbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textovercross\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textovercross{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsyllabic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsyllabic{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubarch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubarch{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubumlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsupumlaut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsupumlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubtilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubtilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsuptilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuptilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textseagull\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textseagull{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperimposetilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperimposetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textraising\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textraising{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textlowering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlowering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textadvancing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textadvancing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textretracting\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textretracting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubbridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textinvsubbridge\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinvsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textsubsquare\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubsquare{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"texttoptiebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttoptiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textbottomtiebar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textbottomtiebar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textipa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textipa{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"super\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"super{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunistar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunistar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisemicolon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisemicolon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunicolon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunicolon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunibang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunibang{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunipipe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunipipe{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunitextbottomtiebar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaunitextbottomtiebar{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaunits{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisubbridge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniinvsubbridge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniinvsubbridge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisublhalfring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisublhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisubrhalfring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisubrhalfring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisubplus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisubplus{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniraising\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniraising{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunilowering\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunilowering{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniadvancing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniadvancing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniretracting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniretracting{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniovercross\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniovercross{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniseagull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniseagull{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniring\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSupRing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSupRing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSubRing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSubRing{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniwedge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniwedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSubWedge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSubWedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSupWedge\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSupWedge{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunibar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunibar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSubBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSubBar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSupBar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSupBar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniovercross\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniovercross{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipauniumlaut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipauniumlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSubUmlaut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSubUmlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSupUmlaut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSupUmlaut{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunitilde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunitilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSubTilde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSubTilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TipaUniSupTilde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipaUniSupTilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunisuperimposetilde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunisuperimposetilde{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunitexttoptiebar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaunitexttoptiebar{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tipaunit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipaunit{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ifnontipa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nontipatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nontipafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tipaunicmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tipaunicmd{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"IPA\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tipauni#c\": [\n      \"documentfont=${1:font name}\",\n      \"fontspecoptions={${1:fontspec options}}\",\n      \"preservefont\",\n      \"recommendedfont\",\n      \"resetfontspecoptions\",\n      \"incompatible\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tipauni#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tipfr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"newtxtt\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarybabel\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"multido\"\n    },\n    {\n      \"name\": \"colortbl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Touche\"\n    },\n    {\n      \"name\": \"Touche\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Touche[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Touche\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Menu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Menu{${1:nom}}\"\n      }\n    },\n    {\n      \"name\": \"Menu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Menu[${2:option%keyvals}]{${1:nom}}\",\n        \"keys\": [\n          \"\\\\Menu\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Ecran\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ecran{${1:contenu}}\"\n      }\n    },\n    {\n      \"name\": \"Ecran\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Ecran[${2:options%keyvals}]{${1:contenu}}\",\n        \"keys\": [\n          \"\\\\Ecran\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Calculatrice\"\n    },\n    {\n      \"name\": \"Calculatrice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Calculatrice[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"Calculatrice*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Calculatrice*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\Calculatrice*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Circonflexe\"\n    },\n    {\n      \"name\": \"Racine\"\n    },\n    {\n      \"name\": \"theLineCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theLineResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefBool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefBool{${1:bool name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Touche\": [\n      \"style=${1|function,number,operation,graph,second,alpha,on,enter,arrows|}\",\n      \"principal=${1:text}\",\n      \"position=${1:nombre}\",\n      \"raise=\",\n      \"fontsize=\",\n      \"second=${1:text}\",\n      \"alpha=${1:text}\",\n      \"circle\",\n      \"radius=\",\n      \"colour=\",\n      \"color=\",\n      \"thickness=\",\n      \"fixed\",\n      \"xoffset=\",\n      \"yoffset=\",\n      \"scalearrows=${1:nombre}\",\n      \"arrowtot\",\n      \"arrowup\",\n      \"arrowdown\",\n      \"arrowleft\",\n      \"arrowright\",\n      \"name=${1:text}\"\n    ],\n    \"\\\\Menu\": [\n      \"size=\",\n      \"select\",\n      \"colourbox=\",\n      \"text=${1:text}\"\n    ],\n    \"\\\\Ecran\": [\n      \"screencolour=\",\n      \"screencolor=\",\n      \"screenname=${1:text}\",\n      \"width=${1:nombre}\",\n      \"height=${1:nombre}\",\n      \"graphic\",\n      \"xgrad=${1:nombre}\",\n      \"ygrad=${1:nombre}\",\n      \"nbgradx=${1:nombre}\",\n      \"nbgrady=${1:nombre}\",\n      \"origin={(${1:x,y})}\",\n      \"plotcolour=\",\n      \"plotcolor=\",\n      \"plotwidth=\"\n    ],\n    \"\\\\Calculatrice*\": [\n      \"calcscale=${1:nombre}\",\n      \"calcrotate=${1:degrés}\",\n      \"calcraise=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tipx.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tipa\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textaolig\"\n    },\n    {\n      \"name\": \"textbenttailyogh\"\n    },\n    {\n      \"name\": \"textbktailgamma\"\n    },\n    {\n      \"name\": \"textctinvglotstop\"\n    },\n    {\n      \"name\": \"textctjvar\"\n    },\n    {\n      \"name\": \"textctstretchc\"\n    },\n    {\n      \"name\": \"textctstretchcvar\"\n    },\n    {\n      \"name\": \"textctturnt\"\n    },\n    {\n      \"name\": \"textdblig\"\n    },\n    {\n      \"name\": \"textdoublebarpipevar\"\n    },\n    {\n      \"name\": \"textdoublepipevar\"\n    },\n    {\n      \"name\": \"textdownfullarrow\"\n    },\n    {\n      \"name\": \"textfemale\"\n    },\n    {\n      \"name\": \"textfrbarn\"\n    },\n    {\n      \"name\": \"textfrhookd\"\n    },\n    {\n      \"name\": \"textfrhookdvar\"\n    },\n    {\n      \"name\": \"textfrhookt\"\n    },\n    {\n      \"name\": \"textfrtailgamma\"\n    },\n    {\n      \"name\": \"textglotstopvari\"\n    },\n    {\n      \"name\": \"textglotstopvarii\"\n    },\n    {\n      \"name\": \"textglotstopvariii\"\n    },\n    {\n      \"name\": \"textgrgamma\"\n    },\n    {\n      \"name\": \"textheng\"\n    },\n    {\n      \"name\": \"texthmlig\"\n    },\n    {\n      \"name\": \"texthtbardotlessjvar\"\n    },\n    {\n      \"name\": \"textinvomega\"\n    },\n    {\n      \"name\": \"textinvsca\"\n    },\n    {\n      \"name\": \"textinvscripta\"\n    },\n    {\n      \"name\": \"textlfishhookrlig\"\n    },\n    {\n      \"name\": \"textlhookfour\"\n    },\n    {\n      \"name\": \"textlhookp\"\n    },\n    {\n      \"name\": \"textlhti\"\n    },\n    {\n      \"name\": \"textlooptoprevesh\"\n    },\n    {\n      \"name\": \"textnrleg\"\n    },\n    {\n      \"name\": \"textObullseye\"\n    },\n    {\n      \"name\": \"textpalhooklong\"\n    },\n    {\n      \"name\": \"textpalhookvar\"\n    },\n    {\n      \"name\": \"textpipevar\"\n    },\n    {\n      \"name\": \"textqplig\"\n    },\n    {\n      \"name\": \"textrectangle\"\n    },\n    {\n      \"name\": \"textretractingvar\"\n    },\n    {\n      \"name\": \"textrevpolhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrevpolhook{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"textrevscl\"\n    },\n    {\n      \"name\": \"textrevscr\"\n    },\n    {\n      \"name\": \"textrhooka\"\n    },\n    {\n      \"name\": \"textrhooke\"\n    },\n    {\n      \"name\": \"textrhookepsilon\"\n    },\n    {\n      \"name\": \"textrhookopeno\"\n    },\n    {\n      \"name\": \"textrtailhth\"\n    },\n    {\n      \"name\": \"textrthooklong\"\n    },\n    {\n      \"name\": \"textscaolig\"\n    },\n    {\n      \"name\": \"textscdelta\"\n    },\n    {\n      \"name\": \"textscf\"\n    },\n    {\n      \"name\": \"textsck\"\n    },\n    {\n      \"name\": \"textscm\"\n    },\n    {\n      \"name\": \"textscp\"\n    },\n    {\n      \"name\": \"textscq\"\n    },\n    {\n      \"name\": \"textspleftarrow\"\n    },\n    {\n      \"name\": \"textstretchcvar\"\n    },\n    {\n      \"name\": \"textsubdoublearrow\"\n    },\n    {\n      \"name\": \"textsubrightarrow\"\n    },\n    {\n      \"name\": \"textthornvari\"\n    },\n    {\n      \"name\": \"textthornvarii\"\n    },\n    {\n      \"name\": \"textthornvariii\"\n    },\n    {\n      \"name\": \"textthornvariv\"\n    },\n    {\n      \"name\": \"textturnglotstop\"\n    },\n    {\n      \"name\": \"textturnsck\"\n    },\n    {\n      \"name\": \"textturnscu\"\n    },\n    {\n      \"name\": \"textturnthree\"\n    },\n    {\n      \"name\": \"textturntwo\"\n    },\n    {\n      \"name\": \"textuncrfemale\"\n    },\n    {\n      \"name\": \"textupfullarrow\"\n    },\n    {\n      \"name\": \"tipxloweraccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipxloweraccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tipxupperaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tipxupperaccent{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tiscreen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lcd\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tipa\"\n    },\n    {\n      \"name\": \"textgreek\"\n    },\n    {\n      \"name\": \"wasysym\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tiscreenX\"\n    },\n    {\n      \"name\": \"tiscreenY\"\n    },\n    {\n      \"name\": \"tibtn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tibtn{${1:bgcolor}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tibtn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tibtn[${3:textcolor}]{${1:bgcolor}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tibtnextra\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tibtnextra{${1:content%text}}{${2:text1%text}}{${3:text2%text}}\"\n      }\n    },\n    {\n      \"name\": \"tibtnalpha\"\n    },\n    {\n      \"name\": \"tibtnsecond\"\n    },\n    {\n      \"name\": \"tibtnenter\"\n    },\n    {\n      \"name\": \"tibtnextraalpha\"\n    },\n    {\n      \"name\": \"tibtnextrasecond\"\n    },\n    {\n      \"name\": \"tibtnextraenter\"\n    },\n    {\n      \"name\": \"tibtndiv\"\n    },\n    {\n      \"name\": \"tibtntimes\"\n    },\n    {\n      \"name\": \"tibtnminus\"\n    },\n    {\n      \"name\": \"tibtnplus\"\n    },\n    {\n      \"name\": \"tibtnextradiv\"\n    },\n    {\n      \"name\": \"tibtnextratimes\"\n    },\n    {\n      \"name\": \"tibtnextraminus\"\n    },\n    {\n      \"name\": \"tibtnextraplus\"\n    },\n    {\n      \"name\": \"tibtnzero\"\n    },\n    {\n      \"name\": \"tibtnone\"\n    },\n    {\n      \"name\": \"tibtntwo\"\n    },\n    {\n      \"name\": \"tibtnthree\"\n    },\n    {\n      \"name\": \"tibtnfour\"\n    },\n    {\n      \"name\": \"tibtnfive\"\n    },\n    {\n      \"name\": \"tibtnsix\"\n    },\n    {\n      \"name\": \"tibtnseven\"\n    },\n    {\n      \"name\": \"tibtneight\"\n    },\n    {\n      \"name\": \"tibtnnine\"\n    },\n    {\n      \"name\": \"tibtnextrazero\"\n    },\n    {\n      \"name\": \"tibtnextraone\"\n    },\n    {\n      \"name\": \"tibtnextratwo\"\n    },\n    {\n      \"name\": \"tibtnextrathree\"\n    },\n    {\n      \"name\": \"tibtnextrafour\"\n    },\n    {\n      \"name\": \"tibtnextrafive\"\n    },\n    {\n      \"name\": \"tibtnextrasix\"\n    },\n    {\n      \"name\": \"tibtnextraseven\"\n    },\n    {\n      \"name\": \"tibtnextraeight\"\n    },\n    {\n      \"name\": \"tibtnextranine\"\n    },\n    {\n      \"name\": \"tibtnmode\"\n    },\n    {\n      \"name\": \"tibtndel\"\n    },\n    {\n      \"name\": \"tibtnxton\"\n    },\n    {\n      \"name\": \"tibtnstat\"\n    },\n    {\n      \"name\": \"tibtnmath\"\n    },\n    {\n      \"name\": \"tibtnmatrix\"\n    },\n    {\n      \"name\": \"tibtnprgm\"\n    },\n    {\n      \"name\": \"tibtnvars\"\n    },\n    {\n      \"name\": \"tibtnclear\"\n    },\n    {\n      \"name\": \"tibtnxnone\"\n    },\n    {\n      \"name\": \"tibtnsin\"\n    },\n    {\n      \"name\": \"tibtncos\"\n    },\n    {\n      \"name\": \"tibtntan\"\n    },\n    {\n      \"name\": \"tibtnpower\"\n    },\n    {\n      \"name\": \"tibtnxtwo\"\n    },\n    {\n      \"name\": \"tibtncomma\"\n    },\n    {\n      \"name\": \"tibtnleftparen\"\n    },\n    {\n      \"name\": \"tibtnrightparen\"\n    },\n    {\n      \"name\": \"tibtnlog\"\n    },\n    {\n      \"name\": \"tibtnln\"\n    },\n    {\n      \"name\": \"tibtnsto\"\n    },\n    {\n      \"name\": \"tibtnon\"\n    },\n    {\n      \"name\": \"tibtndot\"\n    },\n    {\n      \"name\": \"tibtnneg\"\n    },\n    {\n      \"name\": \"tibtnextramode\"\n    },\n    {\n      \"name\": \"tibtnextradel\"\n    },\n    {\n      \"name\": \"tibtnextraxton\"\n    },\n    {\n      \"name\": \"tibtnextrastat\"\n    },\n    {\n      \"name\": \"tibtnextramath\"\n    },\n    {\n      \"name\": \"tibtnextramatrix\"\n    },\n    {\n      \"name\": \"tibtnextraprgm\"\n    },\n    {\n      \"name\": \"tibtnextravars\"\n    },\n    {\n      \"name\": \"tibtnextraclear\"\n    },\n    {\n      \"name\": \"tibtnextraxnone\"\n    },\n    {\n      \"name\": \"tibtnextrasin\"\n    },\n    {\n      \"name\": \"tibtnextracos\"\n    },\n    {\n      \"name\": \"tibtnextratan\"\n    },\n    {\n      \"name\": \"tibtnextrapower\"\n    },\n    {\n      \"name\": \"tibtnextraxtwo\"\n    },\n    {\n      \"name\": \"tibtnextracomma\"\n    },\n    {\n      \"name\": \"tibtnextraleftparen\"\n    },\n    {\n      \"name\": \"tibtnextrarightparen\"\n    },\n    {\n      \"name\": \"tibtnextralog\"\n    },\n    {\n      \"name\": \"tibtnextraln\"\n    },\n    {\n      \"name\": \"tibtnextrasto\"\n    },\n    {\n      \"name\": \"tibtnextraon\"\n    },\n    {\n      \"name\": \"tibtnextradot\"\n    },\n    {\n      \"name\": \"tibtnextraneg\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tiscreen#c\": [\n      \"color\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tiscreen#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titlecaps.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifnextok\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlecap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlecap{${1:rich text%text}}\"\n      }\n    },\n    {\n      \"name\": \"titlecap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlecap[${2:option}]{${1:rich text%text}}\"\n      }\n    },\n    {\n      \"name\": \"Addlcwords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Addlcwords{${1:space-separated word list}}\"\n      }\n    },\n    {\n      \"name\": \"Resetlcwords\"\n    },\n    {\n      \"name\": \"textnc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"converttilde\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noatinsidetc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usestringstringsnames\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/titlefoot.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"runningtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"runningtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"amssubj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"amssubj{${1:classifications}}\"\n      }\n    },\n    {\n      \"name\": \"authorfootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorfootnote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywordsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"runningtitlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amssubjname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorfnname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unmarkedfntext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unmarkedfntext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footnotecomma\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/titlepic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"titlepic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlepic{${1:graphics code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titlepic#c\": [\n      \"tt\",\n      \"tc\",\n      \"cc\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titlepic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titleps.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newpagestyle{${1:name%specialDef}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"newpagestyle\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newpagestyle{${1:name%specialDef}}[${3:global-style}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewpagestyle{${1:name}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"renewpagestyle\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewpagestyle{${1:name}}[${3:global-style}]{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"sethead\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sethead{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"sethead\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"sethead[${4:even-left}][${5:even-center}][${6:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"sethead*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sethead*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"setfoot\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setfoot{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"setfoot\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}\",\n        \"snippet\": \"setfoot[${4:even-left}][${5:even-center}][${6:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"setfoot*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setfoot*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"parttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptertitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifthepart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthepart{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthechapter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthechapter{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthesection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthesection{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthesubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthesubsection{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthesubsubsection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthesubsubsection{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iftheparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftheparagraph{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifthesubparagraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifthesubparagraph{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"settitlemarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitlemarks{${1:level-name,sublevel-name,...}}\"\n      }\n    },\n    {\n      \"name\": \"settitlemarks*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitlemarks*{${1:level-name,sublevel-name,...}}\"\n      }\n    },\n    {\n      \"name\": \"headrule\"\n    },\n    {\n      \"name\": \"footrule\"\n    },\n    {\n      \"name\": \"setheadrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setheadrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"setfootrule\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfootrule{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"makeheadrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makefootrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmarkboth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmarkboth{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"resetmarkboth\"\n    },\n    {\n      \"name\": \"widenhead\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widenhead{${1:odd-left}}{${2:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"widenhead\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"widenhead[${3:even-left}][${4:even-right}]{${1:odd-left}}{${2:odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"widenhead*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"widenhead*{${1:even-right/odd-left}}{${2:even-left/odd-right}}\"\n      }\n    },\n    {\n      \"name\": \"TitlepsPatchSection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitlepsPatchSection{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"TitlepsPatchSection*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitlepsPatchSection*{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"bottitlemarks\"\n    },\n    {\n      \"name\": \"toptitlemarks\"\n    },\n    {\n      \"name\": \"firsttitlemarks\"\n    },\n    {\n      \"name\": \"nexttoptitlemarks\"\n    },\n    {\n      \"name\": \"outertitlemarks\"\n    },\n    {\n      \"name\": \"innertitlemarks\"\n    },\n    {\n      \"name\": \"newtitlemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtitlemark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"newtitlemark*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtitlemark*{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"pretitlemark\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pretitlemark{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"pretitlemark*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pretitlemark*{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifsamemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsamemark{${1:group}}{${2:command}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"setfloathead\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfloathead{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"setfloathead\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}[]\",\n        \"snippet\": \"setfloathead[${5:even-left}][${6:even-center}][${7:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}[${8:floats}]\"\n      }\n    },\n    {\n      \"name\": \"setfloathead*\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfloathead*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatfoot\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfloatfoot{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"setfloatfoot\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}[]\",\n        \"snippet\": \"setfloatfoot[${5:even-left}][${6:even-center}][${7:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}[${8:floats}]\"\n      }\n    },\n    {\n      \"name\": \"setfloatfoot*\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setfloatfoot*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"nextfloathead\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nextfloathead{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"nextfloathead\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}[]\",\n        \"snippet\": \"nextfloathead[${5:even-left}][${6:even-center}][${7:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}[${8:floats}]\"\n      }\n    },\n    {\n      \"name\": \"nextfloathead*\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nextfloathead*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"nextfloatfoot\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nextfloatfoot{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"nextfloatfoot\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"[][][]{}{}{}{}[]\",\n        \"snippet\": \"nextfloatfoot[${5:even-left}][${6:even-center}][${7:even-right}]{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}[${8:floats}]\"\n      }\n    },\n    {\n      \"name\": \"nextfloatfoot*\",\n      \"if\": \"psfloats\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"nextfloatfoot*{${1:odd-left}}{${2:odd-center}}{${3:odd-right}}{${4:extra}}\"\n      }\n    },\n    {\n      \"name\": \"newshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"botshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"botshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"firstshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"nexttopshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nexttopshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"preshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"shortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"topshortmark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topshortmark{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"newmarkset\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newmarkset{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"newextramark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newextramark{${1:markset}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"newextramark*\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newextramark*{${1:markset}}{${2:command}}\"\n      }\n    },\n    {\n      \"name\": \"botextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"botextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"topextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"firstextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"nexttopextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nexttopextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"outerextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"outerextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"innerextramarks\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"innerextramarks{${1:markset}}\"\n      }\n    },\n    {\n      \"name\": \"extramark\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extramark{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"preextramark\",\n      \"if\": \"extramarks\"\n    },\n    {\n      \"name\": \"preshortmark\",\n      \"if\": \"extramarks\"\n    },\n    {\n      \"name\": \"settitlemarks*\",\n      \"if\": \"extramarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settitlemarks*{${1:level-name,sublevel-name,...}}\"\n      }\n    },\n    {\n      \"name\": \"iftitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"iftitle{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titleps#c\": [\n      \"psfloats\",\n      \"outermarks\",\n      \"topmarks\",\n      \"botmarks\",\n      \"innermarks\",\n      \"extramarks\",\n      \"nopatches\"\n    ],\n    \"\\\\pagestyle#c\": [\n      \"%titlepspagestyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titleps#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titleref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"theTitleReference\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"theTitleReference{${1:number}}{${2:title%plain}}\"\n      }\n    },\n    {\n      \"name\": \"titleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"currenttitle\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/titles.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"moredefs\"\n    },\n    {\n      \"name\": \"slemph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"word\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"word{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"phrase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phrase{${1:phrase%text}}\"\n      }\n    },\n    {\n      \"name\": \"foreign\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreign{${1:foreign text}}\"\n      }\n    },\n    {\n      \"name\": \"foreignword\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"foreignword{${1:foreign word}}\"\n      }\n    },\n    {\n      \"name\": \"term\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"term{${1:technical term}}\"\n      }\n    },\n    {\n      \"name\": \"defn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defn{${1:definition%text}}\"\n      }\n    },\n    {\n      \"name\": \"book\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"book{${1:book title%text}}\"\n      }\n    },\n    {\n      \"name\": \"journal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"journal{${1:journal title%text}}\"\n      }\n    },\n    {\n      \"name\": \"music\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"music{${1:music title%text}}\"\n      }\n    },\n    {\n      \"name\": \"article\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"article{${1:article title%text}}\"\n      }\n    },\n    {\n      \"name\": \"storytitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storytitle{${1:story title%text}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitle{${1:poem title%text}}\"\n      }\n    },\n    {\n      \"name\": \"play\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"play{${1:play title%text}}\"\n      }\n    },\n    {\n      \"name\": \"craft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"craft{${1:craft title%text}}\"\n      }\n    },\n    {\n      \"name\": \"species\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"species{${1:species}}\"\n      }\n    },\n    {\n      \"name\": \"Wrapquotes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Wrapquotes{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesNS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesNS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesIS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesIS{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesNN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesNN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesIN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesIN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesSN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesSN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesDN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesDN{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"WrapquotesSK\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WrapquotesSK{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"IfQuestionOrExclamation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfQuestionOrExclamation{${1:text}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"longpoem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"longpoem{${1:poem title%text}}\"\n      }\n    },\n    {\n      \"name\": \"film\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"film{${1:film title%text}}\"\n      }\n    },\n    {\n      \"name\": \"essaytitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"essaytitle{${1:essay title%text}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertitle{${1:chapter title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titles#c\": [\n      \"british\",\n      \"american\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titles#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titlesec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"titleps\",\n      \"if\": \"pagestyles\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlelabel{${1:label-format}}\"\n      }\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"titleformat*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleformat*{${1:command%plain}}{${2:format}}\"\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"titleformat{${1:command%plain}}{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}\"\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"titleformat{${1:command%plain}}[${6:shape%keyvals}]{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}\",\n        \"keys\": [\n          \"\\\\titleformat#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleformat\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[]\",\n        \"snippet\": \"titleformat{${1:command%plain}}[${6:shape%keyvals}]{${2:format}}{${3:label}}{${4:sep%l}}{${5:before-code}}[${7:after-code}]\",\n        \"keys\": [\n          \"\\\\titleformat#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"chaptertitlename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlespacing\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titlespacing{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"titlespacing\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"titlespacing{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}[${5:right-sep%l}]\"\n      }\n    },\n    {\n      \"name\": \"titlespacing*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"titlespacing*{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}\"\n      }\n    },\n    {\n      \"name\": \"titlespacing*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}[]\",\n        \"snippet\": \"titlespacing*{${1:command%plain}}{${2:left%l}}{${3:before-sep%l}}{${4:after-sep%l}}[${5:right-sep%l}]\"\n      }\n    },\n    {\n      \"name\": \"beforetitleunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aftertitleunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filright\"\n    },\n    {\n      \"name\": \"filcenter\"\n    },\n    {\n      \"name\": \"filleft\"\n    },\n    {\n      \"name\": \"fillast\"\n    },\n    {\n      \"name\": \"filinner\"\n    },\n    {\n      \"name\": \"filouter\"\n    },\n    {\n      \"name\": \"wordsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bottomtitlespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nostruts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"if\": \"calcwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline*{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"if\": \"calcwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline*[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titlerule\"\n    },\n    {\n      \"name\": \"titlerule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"titlerule[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerule*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlerule*[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlewidthfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlewidthlast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftitlemeasuring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iftitlemeasuring{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"assignpagestyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"assignpagestyle{${1:command%plain}}{${2:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"sectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectionbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptertolists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleclass\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"titleclass{${1:name%cmd}}{${2:class%keyvals}}\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleclass\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"titleclass{${1:name%cmd}}{${2:class%keyvals}}[${3:super-level-cmd}]\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"titleclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"titleclass{${1:name%cmd}}[${3:start-level-num}]{${2:class%keyvals}}\",\n        \"keys\": [\n          \"\\\\titleclass\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titlesec#c\": [\n      \"rm\",\n      \"sf\",\n      \"tt\",\n      \"md\",\n      \"bf\",\n      \"up\",\n      \"it\",\n      \"sl\",\n      \"sc\",\n      \"big\",\n      \"medium\",\n      \"small\",\n      \"tiny\",\n      \"raggedleft\",\n      \"center\",\n      \"raggedright\",\n      \"compact\",\n      \"uppercase\",\n      \"indentafter\",\n      \"noindentafter\",\n      \"rigidchapters\",\n      \"rubberchapters\",\n      \"bottomtitles\",\n      \"nobottomtitles\",\n      \"nobottomtitles*\",\n      \"aftersep\",\n      \"largestsep\",\n      \"pageatnewline\",\n      \"nostruts\",\n      \"calcwidth\",\n      \"explicit\",\n      \"oldparttoc\",\n      \"newparttoc\",\n      \"clearempty\",\n      \"toctitles\",\n      \"newlinetospace\",\n      \"notocpart*\",\n      \"loadonly\",\n      \"pagestyles\",\n      \"floatps\",\n      \"psfloats\",\n      \"extramarks\",\n      \"outermarks\",\n      \"topmarks\",\n      \"botmarks\",\n      \"innermarks\",\n      \"footmarks\"\n    ],\n    \"\\\\titleformat#c\": [\n      \"hang\",\n      \"block\",\n      \"display\",\n      \"runin\",\n      \"leftmargin\",\n      \"rightmargin\",\n      \"drop\",\n      \"wrap\",\n      \"frame\"\n    ],\n    \"\\\\titleline,\\\\titleline*\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ],\n    \"\\\\titleclass\": [\n      \"page\",\n      \"top\",\n      \"straight\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titlesec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titletoc.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"dottedcontents\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"dottedcontents{${1:section}}{${2:above-code}}{${3:label-width%l}}{${4:leader-width%l}}\"\n      }\n    },\n    {\n      \"name\": \"dottedcontents\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"dottedcontents{${1:section}}[${5:left%l}]{${2:above-code}}{${3:label-width%l}}{${4:leader-width%l}}\"\n      }\n    },\n    {\n      \"name\": \"titlecontents\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"titlecontents{${1:section}}{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}\"\n      }\n    },\n    {\n      \"name\": \"titlecontents\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"titlecontents{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}\"\n      }\n    },\n    {\n      \"name\": \"titlecontents\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}[]\",\n        \"snippet\": \"titlecontents{${1:section}}{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}[${6:below-code}]\"\n      }\n    },\n    {\n      \"name\": \"titlecontents\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[]\",\n        \"snippet\": \"titlecontents{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}[${7:below-code}]\"\n      }\n    },\n    {\n      \"name\": \"contentsmargin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contentsmargin{${1:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"contentsmargin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contentsmargin[${2:correction%l}]{${1:right%l}}\"\n      }\n    },\n    {\n      \"name\": \"thecontentslabel\"\n    },\n    {\n      \"name\": \"thecontentspage\"\n    },\n    {\n      \"name\": \"contentslabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contentslabel{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"contentslabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"contentslabel[${2:format}]{${1:space%l}}\"\n      }\n    },\n    {\n      \"name\": \"contentspage\"\n    },\n    {\n      \"name\": \"contentspage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"contentspage[${1:format}]\"\n      }\n    },\n    {\n      \"name\": \"contentspush\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contentspush{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlecontents*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"titlecontents*{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}\"\n      }\n    },\n    {\n      \"name\": \"titlecontents*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[]\",\n        \"snippet\": \"titlecontents*{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}[${7:separator}]\"\n      }\n    },\n    {\n      \"name\": \"titlecontents*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[][]\",\n        \"snippet\": \"titlecontents*{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}[${7:separator}][${8:end}]\"\n      }\n    },\n    {\n      \"name\": \"titlecontents*\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}[][][]\",\n        \"snippet\": \"titlecontents*{${1:section}}[${6:left%l}]{${2:above-code}}{${3:numbered-entry-format}}{${4:numberless-entry-format}}{${5:filler-page-format}}[${7:begin}][${8:separator}][${9:end}]\"\n      }\n    },\n    {\n      \"name\": \"contentsuse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"contentsuse{${1:name}}{${2:ext}}\"\n      }\n    },\n    {\n      \"name\": \"contentsfinish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startcontents\"\n    },\n    {\n      \"name\": \"startcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"startcontents[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"stopcontents\"\n    },\n    {\n      \"name\": \"stopcontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stopcontents[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"resumecontents\"\n    },\n    {\n      \"name\": \"resumecontents\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resumecontents[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"printcontents\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printcontents{${1:prefix}}{${2:start-level}}{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printcontents\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printcontents[${4:name}]{${1:prefix}}{${2:start-level}}{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printcontents\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"printcontents{${1:prefix}}{${2:start-level}}[${4:toc-depth}]{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printcontents\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"printcontents[${4:name}]{${1:prefix}}{${2:start-level}}[${5:toc-depth}]{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"startlist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"startlist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"startlist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"startlist[${2:name}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"stoplist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stoplist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"stoplist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"stoplist[${2:name}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"resumelist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resumelist{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"resumelist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resumelist[${2:name}]{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printlist{${1:list}}{${2:prefix}}{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printlist[${4:name}]{${1:list}}{${2:prefix}}{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"printlist{${1:list}}{${2:prefix}}[${4:toc-depth}]{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"printlist\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]{}\",\n        \"snippet\": \"printlist[${4:name}]{${1:list}}{${2:prefix}}[${5:toc-depth}]{${3:toc-code}}\"\n      }\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleline*{${1:horizontal material%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titleline*[${2:align%keyvals}]{${1:horizontal material%text}}\",\n        \"keys\": [\n          \"\\\\titleline,\\\\titleline*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titlerule\"\n    },\n    {\n      \"name\": \"titlerule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"titlerule[${1:height}]\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlerule*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlerule*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titlerule*[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"filright\"\n    },\n    {\n      \"name\": \"filleft\"\n    },\n    {\n      \"name\": \"filcenter\"\n    },\n    {\n      \"name\": \"fillast\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/titletoc#c\": [\n      \"dotinlabels\",\n      \"nodotinlabels\",\n      \"rigidseps\",\n      \"rubberseps\",\n      \"leftlabels\",\n      \"rightlabels\"\n    ],\n    \"\\\\titleline,\\\\titleline*\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/titletoc#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/titling.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"pretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pretitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"posttitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"posttitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"preauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postauthor{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"predate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"predate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postdate{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"droptitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehooka\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlehookd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calccentering\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"calccentering{${1:length}}{${2:margin}}\"\n      }\n    },\n    {\n      \"name\": \"thetitle\"\n    },\n    {\n      \"name\": \"theauthor\"\n    },\n    {\n      \"name\": \"thedate\"\n    },\n    {\n      \"name\": \"killtitle\"\n    },\n    {\n      \"name\": \"keepthetitle\"\n    },\n    {\n      \"name\": \"emptythanks\"\n    },\n    {\n      \"name\": \"thanksmarkseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmarkseries{${1:format}}\"\n      }\n    },\n    {\n      \"name\": \"symbolthanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"continuousmarks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksheadextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thanksheadextra{${1:pre%l}}{${2:post%l}}\"\n      }\n    },\n    {\n      \"name\": \"thanksfootextra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thanksfootextra{${1:pre%l}}{${2:post%l}}\"\n      }\n    },\n    {\n      \"name\": \"thanksmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksmark{${1:n}}\"\n      }\n    },\n    {\n      \"name\": \"thanksgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tamark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksmarkwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksfootmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksfootpre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksfootpost\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thanksscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"makethanksmarkhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makethanksmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usethanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cancelthanksrule\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"appendiargdef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"appendiargdef{${1:macro}}{${2:code}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"titlingpage\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryangles\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.shapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibrarythrough\"\n    },\n    {\n      \"name\": \"numprint\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzInit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzInit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzInit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawX[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzLabelX[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzLabelX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzLabelY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzLabelY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzAxeX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzAxeX[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzAxeY#c,\\\\tkzAxeX#c,\\\\tkzAxeXY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzAxeY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzAxeY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzAxeY#c,\\\\tkzAxeX#c,\\\\tkzAxeXY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzAxeXY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzAxeXY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzAxeY#c,\\\\tkzAxeX#c,\\\\tkzAxeXY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawXY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawXY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawXY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelXY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzLabelXY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzLabelXY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpAxis\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAxis[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpAxis#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzGrid[${1:options}]\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzGrid[${1:options}](${2:%<x1%>},${3:%<y1%>})(${4:%<x2%>},${5:%<y2%>})\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<x%>},${3:%<y%>}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<x%>},${4:%<y%>}){${1:name}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<angle%>:%<radius%>}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<angle%>:%<radius%>}){${1:name}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzDefPoints{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzDefPoints[${2:options}]{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:angle:radius}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPointCoord\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPointCoord[${2:a,b}](${3:x},${4:y}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPointCoord\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPointCoord[${2:a,b}](${3:angle:radius}){${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoint(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoint[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelPoint(${2:point}){${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelPoint[${2:TikZ options}](${3:point}){${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLabelPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzLabelPoints[${1:TikZ options}](${2:point1},${3:point2},${4:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzAutoLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzAutoLabelPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpPoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpPoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPointShowCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPointShowCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowPointCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowPointCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClip\"\n    },\n    {\n      \"name\": \"tkzClip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzClip[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzClip#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowBB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzShowBB[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzClipBB\"\n    },\n    {\n      \"name\": \"tkzSetBB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzSetBB(${1:point1})(${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzSaveBB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRestoreBB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRep\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzRep[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzRep#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzHLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzHLine{${1:decimal number}}\"\n      }\n    },\n    {\n      \"name\": \"tkzHLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzHLine[${2:options%keyvals}]{${1:decimal number}}\",\n        \"keys\": [\n          \"\\\\tkzHLine#c,\\\\tkzHLines#c,\\\\tkzVLine#c,\\\\tkzVLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzHLines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzHLines{${1:list of decimal numbers}}\"\n      }\n    },\n    {\n      \"name\": \"tkzHLines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzHLines[${2:options%keyvals}]{${1:list of decimal numbers}}\",\n        \"keys\": [\n          \"\\\\tkzHLine#c,\\\\tkzHLines#c,\\\\tkzVLine#c,\\\\tkzVLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzVLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzVLine{${1:decimal number}}\"\n      }\n    },\n    {\n      \"name\": \"tkzVLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzVLine[${2:options%keyvals}]{${1:decimal number}}\",\n        \"keys\": [\n          \"\\\\tkzHLine#c,\\\\tkzHLines#c,\\\\tkzVLine#c,\\\\tkzVLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzVLines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzVLines{${1:list of decimal numbers}}\"\n      }\n    },\n    {\n      \"name\": \"tkzVLines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzVLines[${2:options%keyvals}]{${1:list of decimal numbers}}\",\n        \"keys\": [\n          \"\\\\tkzHLine#c,\\\\tkzHLines#c,\\\\tkzVLine#c,\\\\tkzVLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzHTick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzHTick{${1:decimal number}}\"\n      }\n    },\n    {\n      \"name\": \"tkzHTick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzHTick[${2:options%keyvals}]{${1:decimal number}}\",\n        \"keys\": [\n          \"\\\\tkzHTick#c,\\\\tkzHTicks#c,\\\\tkzVTick#c,\\\\tkzVTicks#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzHTicks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzHTicks{${1:list of decimal numbers}}\"\n      }\n    },\n    {\n      \"name\": \"tkzHTicks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzHTicks[${2:options%keyvals}]{${1:list of decimal numbers}}\",\n        \"keys\": [\n          \"\\\\tkzHTick#c,\\\\tkzHTicks#c,\\\\tkzVTick#c,\\\\tkzVTicks#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzVTick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzVTick{${1:decimal number}}\"\n      }\n    },\n    {\n      \"name\": \"tkzVTick\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzVTick[${2:options%keyvals}]{${1:decimal number}}\",\n        \"keys\": [\n          \"\\\\tkzHTick#c,\\\\tkzHTicks#c,\\\\tkzVTick#c,\\\\tkzVTicks#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzVTicks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzVTicks{${1:list of decimal numbers}}\"\n      }\n    },\n    {\n      \"name\": \"tkzVTicks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzVTicks[${2:options%keyvals}]{${1:list of decimal numbers}}\",\n        \"keys\": [\n          \"\\\\tkzHTick#c,\\\\tkzHTicks#c,\\\\tkzVTick#c,\\\\tkzVTicks#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefSetOfPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzDefSetOfPoints{${1:x1/y1,x2/y2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSetOfPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzDefSetOfPoints[${2:options%keyvals}]{${1:x1/y1,x2/y2,...}}\",\n        \"keys\": [\n          \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSetOfPoints\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawSetOfPoints[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzJoinSetOfPoints\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzJoinSetOfPoints[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawMark\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawMark(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawMark\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawMark[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawMarks\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawMarks(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawMarks\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawMarks[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpMark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpMark[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpMark#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\",\n        \"keys\": [\n          \"\\\\tkzText#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzLegend{${1:style/size/color/text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzLegend[${2:options%keyvals}]{${1:style/size/color/text}}\",\n        \"keys\": [\n          \"\\\\tkzLegend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGetPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetPoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetFirstPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetFirstPoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetSecondPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetSecondPoint{${1:point}}\"\n      }\n    },\n    {\n      \"name\": \"tkzmathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInvPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInvPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrtPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwobyTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzEuler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzSetUpStyle[${2:TikZ options}]{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"usetkzobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkzobj{${1:list of objects}}\"\n      }\n    },\n    {\n      \"name\": \"usetkztool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkztool{${1:list of tools}}\"\n      }\n    },\n    {\n      \"name\": \"tkzPrintFrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzPrintFrac{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzPrintFracWithPi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzPrintFracWithPi{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzfactors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzfactors{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzReducFrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzReducFrac{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzMathFirstResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzMathSecondResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractxy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iftkznodedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftkznodedefined{${1:node}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tkzActivOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzActivOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTwoPtCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPtExCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPtVirCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CountToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CountToken{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SubStringConditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubStringConditional{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"RecursionMacroEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecursionMacroEnd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ReplaceSubStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ReplaceSubStrings{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"DisabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSwapPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSwapPoints(${1:A},${2:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPermute\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPermute(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDotProduct\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDotProduct(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzGetResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetResult{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzIsLinear\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsLinear(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzIsOrtho\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsOrtho(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzHelpGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupcolorkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupcolorkeys{${1:color keys}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpColors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpColors[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpAllColors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAllColors[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzAddName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzAddName[${2:TikZ options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzgetinteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzgetinteger{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpGrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpGrid[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzRenamePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzRenamePoint(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPoints\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzGetPoints{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpLabel[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointCoord(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointxy(${2:arg1}){${1:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzInit#c\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"xstep=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"ystep=${1:number}\"\n    ],\n    \"\\\\tkzDrawX#c\": [\n      \"color=\",\n      \"noticks\",\n      \"right space=\",\n      \"left space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"tickup=\",\n      \"tickdn=\"\n    ],\n    \"\\\\tkzLabelX#c\": [\n      \"frac=${1:integer}\",\n      \"trig=${1:integer}\",\n      \"font=${1:font commands}\",\n      \"color=\",\n      \"step=${1:number}\",\n      \"np off\",\n      \"orig\",\n      \"text=\"\n    ],\n    \"\\\\tkzDrawY#c\": [\n      \"color=\",\n      \"noticks\",\n      \"up space=\",\n      \"down space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"ticklt=\",\n      \"tickrt=\"\n    ],\n    \"\\\\tkzLabelY#c\": [\n      \"color=\",\n      \"frac=${1:integer}\",\n      \"font=${1:font commands}\",\n      \"step=${1:number}\",\n      \"text=\"\n    ],\n    \"\\\\tkzAxeY#c,\\\\tkzAxeX#c,\\\\tkzAxeXY#c\": [\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"frac=${1:integer}\",\n      \"swap\",\n      \"text=\"\n    ],\n    \"\\\\tkzDrawXY#c\": [\n      \"color=\",\n      \"noticks\",\n      \"right space=\",\n      \"left space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"ticklt=\",\n      \"tickrt=\",\n      \"tickup=\",\n      \"tickdn=\"\n    ],\n    \"\\\\tkzLabelXY#c\": [\n      \"color=\",\n      \"frac=${1:integer}\",\n      \"font=${1:font commands}\",\n      \"step=${1:number}\",\n      \"text=\"\n    ],\n    \"\\\\tkzSetUpAxis#c\": [\n      \"line width=\",\n      \"tickwd=\",\n      \"ticka=\",\n      \"tickb=\",\n      \"font=${1:font commands}\"\n    ],\n    \"\\\\tkzGrid#c\": [\n      \"sub\",\n      \"color=\",\n      \"subxstep=${1:number}\",\n      \"subystep=${1:number}\",\n      \"line width=\"\n    ],\n    \"\\\\tkzDefPoint#c\": [\n      \"shift=(${1:x},${2:y})\"\n    ],\n    \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\": [\n      \"shape=${1|circle,cross,cross out|}\",\n      \"size=\",\n      \"color=\"\n    ],\n    \"\\\\tkzAutoLabelPoints#c\": [\n      \"center=\",\n      \"dist=${1:factor}\"\n    ],\n    \"\\\\tkzSetUpPoint#c\": [\n      \"shape=${1|circle,cross,cross out|}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"fill=\"\n    ],\n    \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\": [\n      \"xlabel=${1:text}\",\n      \"xstyle=\",\n      \"noxdraw\",\n      \"ylabel=${1:text}\",\n      \"ystyle=\",\n      \"noydraw\"\n    ],\n    \"\\\\tkzClip#c\": [\n      \"space=${1:number}\"\n    ],\n    \"\\\\tkzRep#c\": [\n      \"line width=\",\n      \"xlabel=\",\n      \"ylabel=\",\n      \"posxlabel=\",\n      \"posylabel=\",\n      \"xnorm=${1:number}\",\n      \"ynorm=${1:number}\",\n      \"color=\",\n      \"colorlabel=\"\n    ],\n    \"\\\\tkzHLine#c,\\\\tkzHLines#c,\\\\tkzVLine#c,\\\\tkzVLines#c\": [\n      \"color=\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\"\n    ],\n    \"\\\\tkzHTick#c,\\\\tkzHTicks#c,\\\\tkzVTick#c,\\\\tkzVTicks#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\": [\n      \"mark=${1:mark}\",\n      \"mark size=\",\n      \"mark options={${1:TikZ options}}\"\n    ],\n    \"\\\\tkzDefSetOfPoints#c,\\\\tkzDrawSetOfPoints#c,\\\\tkzJoinSetOfPoints#c,\\\\tkzDrawMark#c,\\\\tkzDrawMarks#c\": [\n      \"prefix=${1:prefix}\"\n    ],\n    \"\\\\tkzSetUpMark#c\": [\n      \"mark=${1:mark}\",\n      \"color=\",\n      \"fill=\",\n      \"size=\"\n    ],\n    \"\\\\tkzText#c\": [\n      \"draw\",\n      \"color=\",\n      \"text=\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"line width=\",\n      \"rotate=${1:degrees}\",\n      \"inner sep=\",\n      \"text width=\"\n    ],\n    \"\\\\tkzLegend#c\": [\n      \"line\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-berge.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tkz-graph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"grEmptyPath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grEmptyPath{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grEmptyPath\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grEmptyPath[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\grEmptyPath#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphLoop\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdgeInGraphLoop{${1:prefix}}{${2:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphLoop*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EdgeInGraphLoop*{${1:prefix}}{${2:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphSeq\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdgeInGraphSeq{${1:prefix}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphMod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdgeInGraphMod{${1:prefix}}{${2:number of vertices}}{${3:add}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphMod*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"EdgeInGraphMod*{${1:prefix}}{${2:number of vertices}}{${3:add}}{${4:start}}{${5:step}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphModLoop\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EdgeInGraphModLoop{${1:prefix}}{${2:number of vertices}}{${3:add}}{${4:start}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeIdentity\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdgeIdentity{${1:prefix1}}{${2:prefix2}}{${3:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeIdentity*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdgeIdentity*{${1:prefix1}}{${2:prefix2}}{${3:vertex1,vertex2,...}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeFromOneToAll\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EdgeFromOneToAll{${1:prefix1}}{${2:prefix2}}{${3:from}}{${4:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeFromOneToSeq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"EdgeFromOneToSeq{${1:prefix1}}{${2:prefix2}}{${3:from}}{${4:start}}{${5:end}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeFromOneToSel\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EdgeFromOneToSel{${1:prefix1}}{${2:prefix2}}{${3:from}}{${4:vertex1,vertex2,...}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeFromOneToComp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EdgeFromOneToComp{${1:prefix1}}{${2:prefix2}}{${3:from}}{${4:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeMod\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"EdgeMod{${1:prefix1}}{${2:prefix2}}{${3:number of vertices}}{${4:step}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeMod*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"EdgeMod*{${1:prefix1}}{${2:prefix2}}{${3:number of vertices}}{${4:step1}}{${5:step2}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeDoubleMod\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"EdgeDoubleMod{${1:prefix1}}{${2:numofvertices1}}{${3:start1}}{${4:add1}}{${5:prefix2}}{${6:numofvertices2}}{${7:start2}}{${8:add2}}{${9:end}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphFromOneToComp\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"EdgeInGraphFromOneToComp{${1:prefix}}{${2:number of vertices}}{${3:from}}\"\n      }\n    },\n    {\n      \"name\": \"EdgeInGraphFromOneToComp\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"EdgeInGraphFromOneToComp[${4:options%keyvals}]{${1:prefix}}{${2:number of vertices}}{${3:from}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grEmptyCycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grEmptyCycle{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grEmptyCycle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grEmptyCycle[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grCycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grCycle{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grCycle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grCycle[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grComplete\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grComplete{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grComplete\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grComplete[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grCirculant\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grCirculant{${1:number of vertices}}{${2:step1,step2,...}}\"\n      }\n    },\n    {\n      \"name\": \"grCirculant\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grCirculant[${3:options%keyvals}]{${1:number of vertices}}{${2:step1,step2,...}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grStar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grStar{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grStar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grStar[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grSQCycle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grSQCycle{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grSQCycle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grSQCycle[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grWheel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grWheel{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grWheel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grWheel[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grLadder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grLadder{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grLadder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grLadder[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\grLadder#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grPrism\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grPrism{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grPrism\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grPrism[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\grPrism#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grCompleteBipartite\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"grCompleteBipartite{${1:number1}}{${2:number2}}\"\n      }\n    },\n    {\n      \"name\": \"grCompleteBipartite\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grCompleteBipartite[${3:options%keyvals}]{${1:number1}}{${2:number2}}\",\n        \"keys\": [\n          \"\\\\grCompleteBipartite#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grTriangularGrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grTriangularGrid{${1:number of vertices}}\"\n      }\n    },\n    {\n      \"name\": \"grTriangularGrid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"grTriangularGrid[${2:options%keyvals}]{${1:number of vertices}}\",\n        \"keys\": [\n          \"\\\\grTriangularGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grLCF\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"grLCF[${3:RA-number}]{${1:num1,num2,...}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpColors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpColors[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AssignVertexLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AssignVertexLabel{${1:prefix}}{${2:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AssignVertexLabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AssignVertexLabel[${3:options%keyvals}]{${1:prefix}}{${2:name1,name2,...}}\",\n        \"keys\": [\n          \"\\\\AssignVertexLabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grAndrasfai\"\n    },\n    {\n      \"name\": \"grBalaban\"\n    },\n    {\n      \"name\": \"grChvatal\"\n    },\n    {\n      \"name\": \"grCocktailParty\"\n    },\n    {\n      \"name\": \"grCrown\"\n    },\n    {\n      \"name\": \"grCubicalGraph\"\n    },\n    {\n      \"name\": \"grDesargues\"\n    },\n    {\n      \"name\": \"grDodecahedral\"\n    },\n    {\n      \"name\": \"grDoyle\"\n    },\n    {\n      \"name\": \"grEmptyGrid\"\n    },\n    {\n      \"name\": \"grEmptyLadder\"\n    },\n    {\n      \"name\": \"grEmptyStar\"\n    },\n    {\n      \"name\": \"grFolkman\"\n    },\n    {\n      \"name\": \"grFoster\"\n    },\n    {\n      \"name\": \"grFranklin\"\n    },\n    {\n      \"name\": \"grGeneralizedPetersen\"\n    },\n    {\n      \"name\": \"grGrotzsch\"\n    },\n    {\n      \"name\": \"grHeawood\"\n    },\n    {\n      \"name\": \"grIcosahedral\"\n    },\n    {\n      \"name\": \"grKonisberg\"\n    },\n    {\n      \"name\": \"grLevi\"\n    },\n    {\n      \"name\": \"grMcGee\"\n    },\n    {\n      \"name\": \"grMobiusKantor\"\n    },\n    {\n      \"name\": \"grMobiusLadder\"\n    },\n    {\n      \"name\": \"grOctahedral\"\n    },\n    {\n      \"name\": \"grPappus\"\n    },\n    {\n      \"name\": \"grPath\"\n    },\n    {\n      \"name\": \"grPetersen\"\n    },\n    {\n      \"name\": \"grRobertson\"\n    },\n    {\n      \"name\": \"grRobertsonWegner\"\n    },\n    {\n      \"name\": \"grTetrahedral\"\n    },\n    {\n      \"name\": \"grTutteCoxeter\"\n    },\n    {\n      \"name\": \"grWong\"\n    },\n    {\n      \"name\": \"grWriteExplicitLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grWriteExplicitLabels\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\grEmptyPath#c\": [\n      \"RA=\",\n      \"RS=\",\n      \"prefix=\",\n      \"Math\",\n      \"form=\"\n    ],\n    \"\\\\EdgeInGraphFromOneToComp#c,\\\\grEmptyCycle#c,\\\\grCycle#c,\\\\grComplete#c,\\\\grCirculant#c,\\\\grStar#c,\\\\grSQCycle#c,\\\\grWheel#c\": [\n      \"x=\",\n      \"y=\",\n      \"rotation=\",\n      \"RA=\",\n      \"prefix=\",\n      \"Math\"\n    ],\n    \"\\\\grLadder#c\": [\n      \"RA=\",\n      \"RS=\",\n      \"prefix=\",\n      \"prefixx=\",\n      \"Math\"\n    ],\n    \"\\\\grPrism#c\": [\n      \"RA=\",\n      \"RB=\",\n      \"prefix=\",\n      \"prefixx=\",\n      \"Math\"\n    ],\n    \"\\\\grCompleteBipartite#c\": [\n      \"RA=\",\n      \"RB=\",\n      \"RS=\",\n      \"form=\",\n      \"prefix=\",\n      \"prefixx=\",\n      \"Math\"\n    ],\n    \"\\\\grTriangularGrid#c\": [\n      \"RA=\",\n      \"form=\",\n      \"prefix=\",\n      \"Math\"\n    ],\n    \"\\\\grLCF#c\": [\n      \"RA=\"\n    ],\n    \"\\\\tkzSetUpColors\": [\n      \"background=\",\n      \"text=\"\n    ],\n    \"\\\\AssignVertexLabel\": [\n      \"size=\",\n      \"color=\",\n      \"Math\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-bernoulli.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"xintbinhex\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzSchemBernoulli\"\n    },\n    {\n      \"name\": \"tkzSchemBernoulli\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSchemBernoulli[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSchemBernoulli<options TikZ>\"\n    },\n    {\n      \"name\": \"tkzSchemBernoulli\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"tkzSchemBernoulli[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSchemBernoulli*\"\n    },\n    {\n      \"name\": \"tkzSchemBernoulli*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSchemBernoulli*[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSchemBernoulli*<options TikZ>\"\n    },\n    {\n      \"name\": \"tkzSchemBernoulli*\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"tkzSchemBernoulli*[${1:clés%keyvals}]<${2:options TikZ}>\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzEpreuvBernoulli\"\n    },\n    {\n      \"name\": \"tkzEpreuvBernoulli\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzEpreuvBernoulli[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzEpreuvBernoulli*\"\n    },\n    {\n      \"name\": \"tkzEpreuvBernoulli*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzEpreuvBernoulli*[${1:clés%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSchemBernStyleDefaut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzBernoulliTree\"\n    },\n    {\n      \"name\": \"tkzBernoulliTree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzBernoulliTree[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernoulliTree<TikZ options>\"\n    },\n    {\n      \"name\": \"tkzBernoulliTree\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"tkzBernoulliTree[${1:keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernoulliTree*\"\n    },\n    {\n      \"name\": \"tkzBernoulliTree*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzBernoulliTree*[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernoulliTree*<TikZ options>\"\n    },\n    {\n      \"name\": \"tkzBernoulliTree*\",\n      \"arg\": {\n        \"format\": \"[]<>\",\n        \"snippet\": \"tkzBernoulliTree*[${1:keyvals}]<${2:TikZ options}>\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernoulliTrial\"\n    },\n    {\n      \"name\": \"tkzBernoulliTrial\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzBernoulliTrial[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernoulliTrial*\"\n    },\n    {\n      \"name\": \"tkzBernoulliTrial*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzBernoulliTrial*[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzBernTreeStyleDefault\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzSchemBernoulli,\\\\tkzSchemBernoulli*,\\\\tkzEpreuvBernoulli,\\\\tkzEpreuvBernoulli*\": [\n      \"EspNiv=${1:nombre}\",\n      \"EspFeuil=${1:nombre}\",\n      \"Evts=${1:Succès/Échec}\",\n      \"Probas=${1:probabilités}\",\n      \"Grille\",\n      \"AffProbas\",\n      \"Racine=${1:nom}\",\n      \"Aide\",\n      \"Notice\",\n      \"Var=${1:nom}\",\n      \"N=${1:nombre}\"\n    ],\n    \"\\\\tkzBernoulliTree,\\\\tkzBernoulliTree*,\\\\tkzBernoulliTrial,\\\\tkzBernoulliTrial*\": [\n      \"LevelSep=${1:number}\",\n      \"NodeSep=${1:number}\",\n      \"Events=\",\n      \"Probs=\",\n      \"Grid\",\n      \"ShowProbs\",\n      \"Root=${1:name}\",\n      \"Help\",\n      \"Guide\",\n      \"Var=${1:name}\",\n      \"N=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-elements.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzGetNodes\"\n    },\n    {\n      \"name\": \"tkzUseLua\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzUseLua{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDN\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzDN{${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDN\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzDN[${2:n}]{${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLuaEllipse\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawLuaEllipse(${1:pt1},${2:pt2},${3:pt3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLuaEllipse\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawLuaEllipse[${1:options}](${2:pt1},${3:pt2},${4:pt3})\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tkzelements\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-euclide.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibraryangles\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.shapes\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibraryplotmarks\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryquotes\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.misc\"\n    },\n    {\n      \"name\": \"tikzlibrarythrough\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"luacode\",\n      \"if\": \"lua\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzmathanglebetweenpoints\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzmathanglebetweenpoints{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSqrt\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzSqrt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzExp\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzExp{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLog\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzLog{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSin\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzSin{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzCos\",\n      \"if\": \"lua\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzCos{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<x%>},${3:%<y%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<x%>},${4:%<y%>}){${1:ref}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPoint(${2:%<angle%>:%<radius%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPoint[${2:options}](${3:%<angle%>:%<radius%>}){${1:ref}}\",\n        \"keys\": [\n          \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:%<x%>},${4:%<y%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPoint[${2:point}](${3:%<angle%>:%<radius%>}){${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefShiftPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefShiftPointCoord[${2:point1}](${3:angle:radius}){${1:point2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzDefPoints{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPoints\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzDefPoints[${2:options%keyvals}]{${1:x1/y1/name1,x2/y2/name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetPoint{${1:ref}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPoints\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzGetPoints{${1:ref1}}{${2:ref2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetFirstPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetFirstPoint{${1:ref1}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetSecondPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetSecondPoint{${1:ref2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetThirdPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetThirdPoint{${1:ref3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetLength{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMidPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMidPoint(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBarycentricPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBarycentricPoint(${1:point1=num1},${2:point2=num2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSimilitudeCenter\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDefSimilitudeCenter(${1:O},${2:A})(${3:O'},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSimilitudeCenter\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefSimilitudeCenter[${1:options%keyvals}](${2:O},${3:A})(${4:O'},${5:B})\",\n        \"keys\": [\n          \"\\\\tkzDefSimilitudeCenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefHarmonic\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefHarmonic(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefHarmonic\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefHarmonic[${1:options%keyvals}](${2:pt1},${3:pt2},${4:pt3})\",\n        \"keys\": [\n          \"\\\\tkzDefHarmonic#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenRatio\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenRatio(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquiPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEquiPoints(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquiPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefEquiPoints[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefEquiPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefMidArc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMidArc(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangleCenter\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTriangleCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangleCenter\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTriangleCenter[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDefTriangleCenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefProjExcenter\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDefProjExcenter(${2:A},${3:B},${4:C})(${5:a},${6:b},${7:c}){${1:X,Y,Z}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefProjExcenter\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"tkzDefProjExcenter[${2:options%keyvals}](${3:A},${4:B},${5:C})(${6:a},${7:b},${8:c}){${1:X,Y,Z}}\",\n        \"keys\": [\n          \"\\\\tkzDefProjExcenter#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointOnLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointOnLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefPointOnLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointOnCircle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDefPointOnCircle[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefPointOnCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointBy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointBy(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointBy\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointBy[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointsBy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzDefPointsBy(${2:point1},${3:point2},${4:...}){${1:point1,point2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointsBy\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefPointsBy[${2:options%keyvals}](${3:point1},${4:point2},${5:...}){${1:point1,point2,...}}\",\n        \"keys\": [\n          \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointWith\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointWith(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointWith\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointWith[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefPointWith#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGetVectxy\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetVectxy(${2:point1},${3:point2}){${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefTangent\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTangent(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTangent\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTangent[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefTangent#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefTriangle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefTriangle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefTriangle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefSpcTriangle\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzDefSpcTriangle[${2:options%keyvals}](${3:point1},${4:point2},${5:point3}){${1:ref1,ref2,ref3}}\",\n        \"keys\": [\n          \"\\\\tkzDefSpcTriangle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPermute\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPermute(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSquare\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSquare(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRectangle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefParallelogram\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefParallelogram(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenRectangle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldRectangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldRectangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRegPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefRegPolygon(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRegPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefRegPolygon[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefRegPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleBy\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleBy(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleBy\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefCircleBy[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDefCircleBy#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInterLL\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLL(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLC\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzInterLC[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3},${5:point4})\",\n        \"keys\": [\n          \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInterCC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCC\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzInterCC[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3},${5:point4})\",\n        \"keys\": [\n          \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTestInterCC\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTestInterCC(${1:O},${2:A})(${3:O'},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"iftkzFlagCC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagCCtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagCCfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInterCCN\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCCN(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCCR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterCCR(${1:point1},${2:radius1})(${3:point2},${4:radius2})\"\n      }\n    },\n    {\n      \"name\": \"tkzGetAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGetAngle(${1:csname})\"\n      }\n    },\n    {\n      \"name\": \"tkzAngleResult\"\n    },\n    {\n      \"name\": \"tkzFindAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFindAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFindSlopeAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFindSlopeAngle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRandPointOn\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDefRandPointOn[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDefRandPointOn#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoint(${1:name})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoint\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoint[${1:options%keyvals}](${2:name})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPoints(${1:name1},${2:name2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPoints[${1:options%keyvals}](${2:name1},${3:name2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawLines\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawLines(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawLines\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawLines[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegment\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegment\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSegment[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegments\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSegments(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSegments\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSegments[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolySeg\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolySeg(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolySeg\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolySeg[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSemiCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSemiCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawSemiCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSemiCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawSemiCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawArc\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDrawArc(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArc\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArc[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDrawArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDrawSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzDrawSector#c,\\\\tkzFillSector#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillCircles\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillCircles(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillCircles\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillCircles[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzFillPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFillSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzFillSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFillAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzFillAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzFillAngle#c,\\\\tkzFillAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzInit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzInit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzInit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClip\"\n    },\n    {\n      \"name\": \"tkzClip\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzClip[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzClip#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowBB\"\n    },\n    {\n      \"name\": \"tkzShowBB\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzShowBB[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzShowBB#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipBB\"\n    },\n    {\n      \"name\": \"tkzClipPolygon\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzClipPolygon(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzClipPolygon\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzClipPolygon[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzClipPolygon#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipCircle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzClipCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzClipCircle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzClipCircle[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzClipCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipSector\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzClipSector[${1:options%keyvals}](${2:point1},${3:point2})(${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzClipSector#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzClipSector\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzClipSector(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegment\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegment\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkSegment[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegments\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkSegments(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkSegments\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkSegments[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkArc\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkArc(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkArc\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkArc[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkAngle#c,\\\\tkzMarkAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzMarkRightAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMarkRightAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMarkRightAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzMarkRightAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzMarkRightAngle#c,\\\\tkzMarkRightAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzPicAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPicAngle(${1:A},${2:O},${3:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPicAngle[${1:TikZ options}](${2:A},${3:O},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicRightAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPicRightAngle(${1:A},${2:O},${3:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzPicRightAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPicRightAngle[${1:TikZ options}](${2:A},${3:O},${4:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelPoint(${2:point}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoint\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelPoint[${2:options%keyvals}](${3:point}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLabelPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzLabelPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzAutoLabelPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzAutoLabelPoints(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzAutoLabelPoints\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzAutoLabelPoints[${1:options%keyvals}](${2:point1},${3:point2},${4:...})\",\n        \"keys\": [\n          \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\",\n          \"\\\\tkzAutoLabelPoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegment\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelSegment(${2:point1},${3:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegment\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelSegment[${2:options%keyvals}](${3:point1},${4:point2}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegments\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelSegments(${2:pt1},${3:pt2 pt3},${4:pt4 ...}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelSegments\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelSegments[${2:options%keyvals}](${3:pt1},${4:pt2 pt3},${5:pt4 ...}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelLine\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelLine(${2:point1},${3:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelLine\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelLine[${2:options%keyvals}](${3:point1},${4:point2}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelAngle\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLabelAngle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelAngle\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzLabelAngle[${1:options%keyvals}](${2:point1},${3:point2},${4:point3})\",\n        \"keys\": [\n          \"\\\\tkzLabelAngle#c,\\\\tkzLabelAngles#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelCircle\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzLabelCircle(${2:point1},${3:point2})(${4:angle}){${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelCircle\",\n      \"arg\": {\n        \"format\": \"[]()(){}\",\n        \"snippet\": \"tkzLabelCircle[${2:options%keyvals}](${3:point1},${4:point2})(${5:angle}){${1:label%plain}}\",\n        \"keys\": [\n          \"\\\\tkzLabelCircle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLabelArc\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelArc(${2:point1},${3:point2},${4:point3}){${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelArc\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelArc[${2:options%keyvals}](${3:point1},${4:point2},${5:point3}){${1:label}}\",\n        \"keys\": [\n          \"\\\\tkzLabelArc#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzCompass\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCompass(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCompass\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCompass[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzCompass#c,\\\\tkzCompasss#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzCompasss\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCompasss(${1:pt1},${2:pt2 pt3},${3:pt4 ...})\"\n      }\n    },\n    {\n      \"name\": \"tkzCompasss\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCompasss[${1:options%keyvals}](${2:pt1},${3:pt2 pt3},${4:pt4 ...})\",\n        \"keys\": [\n          \"\\\\tkzCompass#c,\\\\tkzCompasss#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowLine[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzShowLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowTransformation\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowTransformation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowTransformation\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowTransformation[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzShowTransformation#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzProtractor\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzProtractor(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzProtractor\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzProtractor[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzProtractor#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateSegment\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDuplicateSegment(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateSegment\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDuplicateSegment(${2:point1},${3:point2})(${4:point3},${5:point4}){${1:point5}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDuplicateLength(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDuplicateLength\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzDuplicateLength(${2:point1},${3:point2})(${4:point3},${5:point4}){${1:point5}}\"\n      }\n    },\n    {\n      \"name\": \"tkzCalcLength\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCalcLength(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCalcLength\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzCalcLength[${1:options%keyvals}](${2:point1},${3:point2})\",\n        \"keys\": [\n          \"\\\\tkzCalcLength#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzpttocm\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzpttocm(${2:number}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzcmtopt\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzcmtopt(${2:number}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointCoord\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointCoord(${2:point}){${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSwapPoints\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSwapPoints(${1:A},${2:B})\"\n      }\n    },\n    {\n      \"name\": \"tkzDotProduct\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDotProduct(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzPowerCircle\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzPowerCircle(${1:A})(${2:O},${3:M})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefRadicalAxis\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzDefRadicalAxis(${1:A},${2:B})(${3:C},${4:D})\"\n      }\n    },\n    {\n      \"name\": \"tkzIsLinear\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsLinear(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzIsOrtho\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzIsOrtho(${1:A},${2:B},${3:C})\"\n      }\n    },\n    {\n      \"name\": \"tkzGetResult\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzGetResult{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpColors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpColors[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpColors#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpPoint\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpPoint[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpPoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpLine\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpLine[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpArc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpArc[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpCompass\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpCompass[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\",\n          \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzSetUpLabel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpLabel[${1:TikZ options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzSetUpStyle[${2:TikZ options}]{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLengthResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRadius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftkzLinear\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLineartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzLinearfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftkzOrtho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzOrthotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzOrthofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupcolorkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupcolorkeys{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"tkzSetUpAllColors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAllColors[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzNormalizeAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNormalizeAngle(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"tkzpointnormalised\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzpointnormalised{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzmathrotatepointaround\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tkzmathrotatepointaround{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"extractxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractxy{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iftkznodedefined\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iftkznodedefined{${1:node}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tkzActivOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzActivOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CountToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CountToken{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"SubStringConditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubStringConditional{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"RecursionMacroEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RecursionMacroEnd{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"ReplaceSubStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ReplaceSubStrings{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"DisabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnabledNumprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzMathResult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzHelpGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzText(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzText\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzText[${2:options%keyvals}](${3:x},${4:y}){${1:text}}\",\n        \"keys\": [\n          \"\\\\tkzText#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzLegend{${1:style/size/color/text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLegend\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzLegend[${2:options%keyvals}]{${1:style/size/color/text}}\",\n        \"keys\": [\n          \"\\\\tkzLegend#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removedot\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpAxis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpAxis[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawX\"\n    },\n    {\n      \"name\": \"tkzDrawX\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawX[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawX#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawY\"\n    },\n    {\n      \"name\": \"tkzDrawY\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawY[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawY#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygons\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawPolygons(${1:point1},${2:point2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawPolygons\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawPolygons[${1:options}](${2:point1},${3:point2},${4:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelRegPolygon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzLabelRegPolygon(${2:point}){${1:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzLabelRegPolygon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"tkzLabelRegPolygon[${2:options}](${3:point}){${1:label1,label2,...}}\"\n      }\n    },\n    {\n      \"name\": \"iftkzClipOutPoly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutPolytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutPolyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpCircle[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"iftkzClipOutCircle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutCircletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzClipOutCirclefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSetUpGrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSetUpGrid[${1:options}]\"\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzGrid[${1:options}]\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzGrid\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzGrid[${1:options}](${2:%<x1%>},${3:%<y1%>})(${4:%<x2%>},${5:%<y2%>})\",\n        \"keys\": [\n          \"\\\\tkzGrid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleTranslation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleHomothety\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleHomothety(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleReflection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleReflection(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleSymmetry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleSymmetry(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleRotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleRotation(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthogonalCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthogonalCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoThroughCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoThroughCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInversionCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInversionCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEquilateral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEquilateral(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIsoscelesRightTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefIsoscelesRightTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawEquilateral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawEquilateral[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIsoscelesRightTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefIsoscelesRightTriangle[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTwoOne\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTwoOne(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPythagore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPythagore(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSchoolTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSchoolTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEuclideTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEuclideTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGoldenTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGoldenTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCheopsTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCheopsTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTwoAnglesTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefTwoAnglesTriangle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"SetUpPTTR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUpPTTR{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIncentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefIncentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExcentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefExcentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzExcentralTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzExcentralTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefIntouchTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefIntouchTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefContactTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefContactTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefFeuerbachTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefFeuerbachTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCentroidTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefCentroidTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMedialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefMedialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMidpointTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefMidpointTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthicTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefOrthicTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefAltitudeTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefAltitudeTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefEulerTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefTangentialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefTangentialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSymmedialTriangle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDefSymmedialTriangle[${1:options}](${2:point1},${3:point2},${4:point3})(${5:ref1},${6:ref2})\"\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzPointShowCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzPointShowCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzPointShowCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzShowPointCoord(${1:point})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowPointCoord\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowPointCoord[${1:options%keyvals}](${2:point})\",\n        \"keys\": [\n          \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleR(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircleD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircleD(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircumCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircumCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExRadius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExRadius(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefNinePointsCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefNinePointsCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFeuerBachCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFeuerBachCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerRadius\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerRadius(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefApolloniusCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefApolloniusCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthogonalCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthogonalCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoThroughCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoThroughCircle(${1:point1},${2:point2},${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSpiekerCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSpiekerCircle(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorRwithNodesAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorRwithNodesAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawSectorR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawSectorR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFillSectorR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzFillSectorR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLineLL\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefLineLL[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefOrthLine[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMediatorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefMediatorLine[${1:options}](${2:point1},${3:point2},${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBisectorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBisectorLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBisectorOutLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBisectorOutLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSymmedianLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSymmedianLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefAltitudeLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefAltitudeLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerLine(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtAt(${1:point1})(${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtFromP\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtFromP(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzTgtFromPR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTgtFromPR(${1:point1},${2:point2})(${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzRegPolygonCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRegPolygonCenter(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRegPolygonSide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRegPolygonSide(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRenamePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzRenamePoint(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzGetPointxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"tkzGetPointxy(${2:arg1}){${1:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcTowards\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcTowards[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRotate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRotate[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRwithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRwithNodes[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcR[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRAngles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRAngles[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArcRAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzDrawArcRAN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzPathArcRAN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzPathArcRAN[${1:options}](${2:point1},${3:point2})(${4:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnRect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnRect(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnSegment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnSegment(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnLine(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnCircle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnCircle(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnCircleThrough\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnCircleThrough(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRandPointOnDisk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzRandPointOnDisk(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKOrth[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecK\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecK[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKOrthNorm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKOrthNorm[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzVecKNorm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzVecKNorm[${1:options}](${2:point1},${3:point2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowMediatorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzShowMediatorLine[${1:opts}](${2:arg})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowLLLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowLLLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowOrthLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowOrthLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowBisectorLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowBisectorLine[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowTranslation[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowSymOrth[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowCSym[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzShowProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"tkzShowProjection[${1:opts}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"FirstPointInList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FirstPointInList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzTranslation(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUTranslation(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzCSym(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUCSym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUCSym(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzSymOrth(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUSymOrth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUSymOrth(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzProjection(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUProjection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUProjection(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzHomo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzHomo(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUHomo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUHomo(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRotateAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzRotateAngle(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzURotateAngle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzURotateAngle(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzRotateInRad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzRotateInRad(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzURotateInRad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzURotateInRad(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzInversePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzInversePoint(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUInversePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUInversePoint(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzInverseNegativePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"tkzInverseNegativePoint(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"tkzUInverseNegativePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzUInverseNegativePoint(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefBCPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefBCPoint(${1:point1=num1},${2:point2=num2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"tkzDivHarmonic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDivHarmonic(${1:pt1},${2:pt2},${3:pt3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDivHarmonic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDivHarmonic[${1:options%keyvals}](${2:pt1},${3:pt2},${4:pt3})\"\n      }\n    },\n    {\n      \"name\": \"tkzOrthoCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzOrthoCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefOrthoCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefOrthoCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzCentroid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCentroid(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzBaryCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzBaryCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzCircumCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzCircumCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefCircumCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefCircumCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzInCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzInCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefInCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefInCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzExCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzExCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefExCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefExCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzEulerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzEulerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzNinePointCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNinePointCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefEulerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefEulerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzSymmedianCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSymmedianCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzLemoinePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzLemoinePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzGrebePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGrebePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefLemoinePoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefLemoinePoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzSpiekerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzSpiekerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefSpiekerCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefSpiekerCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzGergonneCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzGergonneCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefGergonneCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefGergonneCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzNagelCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzNagelCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefNagelCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefNagelCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzMittenpunktCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzMittenpunktCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMittenpunktCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMittenpunktCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefMiddlespoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefMiddlespoint(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzFeuerbachCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzFeuerbachCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefFeuerbachCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefFeuerbachCenter(${1:point1},${2:point2},${3:point3})\"\n      }\n    },\n    {\n      \"name\": \"tkzOrthogonalCenter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzOrthogonalCenter(${1:point1},${2:point2})\"\n      }\n    },\n    {\n      \"name\": \"usetkzobj\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkzobj{${1:list of objects}}\"\n      }\n    },\n    {\n      \"name\": \"usetkztool\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetkztool{${1:list of tools}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLLxy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzInterLLxy(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"tkzTestInterLC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"tkzTestInterLC(${1:point1},${2:point2})(${3:point3},${4:point4})\"\n      }\n    },\n    {\n      \"name\": \"iftkzFlagLC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagLCtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFlagLCfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInterLCR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterLCR(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterLCWithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterLCWithNodes(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzInterCCWithNodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"tkzInterCCWithNodes(${3:arg1})(${4:arg2}){${1:arg3}}{${2:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzAddName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzAddName[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"FullProtractor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FullProtractorReturn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzmathstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzCoeffSubColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzCoeffSubLw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzRatioLineGrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzInvPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrtPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrThree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrFive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSqrTwobyTwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzEuler\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tkz-euclide#c\": [\n      \"lua\"\n    ],\n    \"\\\\tkzDefPoint#c,\\\\tkzDefPoints#c\": [\n      \"label=${1:text}\",\n      \"shift=(${1:x},${2:y})\",\n      \"shift=(${1:angle}:${2:radius})\"\n    ],\n    \"\\\\tkzDefSimilitudeCenter#c\": [\n      \"ext\",\n      \"int\"\n    ],\n    \"\\\\tkzDefHarmonic#c\": [\n      \"both\",\n      \"ext\",\n      \"int\"\n    ],\n    \"\\\\tkzDefEquiPoints#c\": [\n      \"dist=\",\n      \"from=${1:point}\",\n      \"show\",\n      \"/tkzcompass/delta=${1:number}\"\n    ],\n    \"\\\\tkzDefTriangleCenter#c\": [\n      \"ortho\",\n      \"orthic\",\n      \"centroid\",\n      \"median\",\n      \"circum\",\n      \"in\",\n      \"ex\",\n      \"euler\",\n      \"gergonne\",\n      \"symmedian\",\n      \"lemoine\",\n      \"grebe\",\n      \"spieker\",\n      \"nagel\",\n      \"mittenpunkt\",\n      \"feuerbach\"\n    ],\n    \"\\\\tkzDefProjExcenter#c\": [\n      \"name=${1:name}\"\n    ],\n    \"\\\\tkzDefPointOnLine#c\": [\n      \"pos=${1:number}\"\n    ],\n    \"\\\\tkzDefPointOnCircle#c\": [\n      \"through=center ${1:point1} angle ${2:degrees} point ${3:point2}\",\n      \"R=center ${1:point} angle ${2:degrees} radius ${3:radius}\",\n      \"through in rad=center ${1:point1} angle ${2:radians} point ${3:point2}\",\n      \"R in rad=center ${1:point} angle ${2:radians} radius ${3:radius}\"\n    ],\n    \"\\\\tkzDefPointBy#c,\\\\tkzDefPointsBy#c\": [\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"homothety=center ${1:point} ratio ${2:number}\",\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"rotation=center ${1:point} angle ${2:degrees}\",\n      \"rotation in rad=center ${1:point} angle ${2:radians}\",\n      \"inversion=center ${1:point1} through ${2:point2}\",\n      \"inversion negative=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzDefPointWith#c\": [\n      \"orthogonal\",\n      \"orthogonal normed\",\n      \"linear\",\n      \"linear normed\",\n      \"colinear=at ${1:point}\",\n      \"colinear normed=at ${1:point}\",\n      \"K=${1:number}\"\n    ],\n    \"\\\\tkzDefLine#c\": [\n      \"mediator\",\n      \"perpendicular=through ${1:point}\",\n      \"orthogonal=through ${1:point}\",\n      \"parallel=through ${1:point}\",\n      \"bisector\",\n      \"bisector out\",\n      \"symmedian\",\n      \"altitude\",\n      \"euler\",\n      \"tangent at=${1:point}\",\n      \"tangent from=${1:point}\",\n      \"K=${1:number}\",\n      \"normed\"\n    ],\n    \"\\\\tkzDefTangent#c\": [\n      \"at=${1:point}\",\n      \"from=${1:point}\",\n      \"from with R=${1:point}\"\n    ],\n    \"\\\\tkzDefTriangle#c\": [\n      \"two angles=${1:angle1} and ${2:angle2}\",\n      \"equilateral\",\n      \"isosceles right\",\n      \"pythagore\",\n      \"pythagoras\",\n      \"egyptian\",\n      \"school\",\n      \"gold\",\n      \"euclid\",\n      \"golden\",\n      \"cheops\",\n      \"swap\"\n    ],\n    \"\\\\tkzDefSpcTriangle#c\": [\n      \"orthic\",\n      \"centroid\",\n      \"medial\",\n      \"in\",\n      \"incentral\",\n      \"ex\",\n      \"excentral\",\n      \"extouch\",\n      \"intouch\",\n      \"contact\",\n      \"euler\",\n      \"symmedial\",\n      \"tangential\",\n      \"feuerbach\",\n      \"name=${1:name}\",\n      \"ortho\"\n    ],\n    \"\\\\tkzDefRegPolygon#c\": [\n      \"name=${1:name}\",\n      \"sides=${1:integer}\",\n      \"center\",\n      \"side\"\n    ],\n    \"\\\\tkzDefCircle#c\": [\n      \"R\",\n      \"diameter\",\n      \"circum\",\n      \"in\",\n      \"ex\",\n      \"euler\",\n      \"nine\",\n      \"spieker\",\n      \"apollonius\",\n      \"orthogonal from=${1:point}\",\n      \"orthogonal through=${1:point1} and ${2:point2}\",\n      \"K=${1:number}\"\n    ],\n    \"\\\\tkzDefCircleBy#c\": [\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"homothety=center ${1:point} ratio ${2:number}\",\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"rotation=center ${1:point} angle ${2:degrees}\",\n      \"inversion=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzInterLC#c,\\\\tkzInterCC#c\": [\n      \"N\",\n      \"R\",\n      \"with nodes\"\n    ],\n    \"\\\\tkzDefRandPointOn#c\": [\n      \"rectangle=${1:point1} and ${2:point2}\",\n      \"segment=${1:point1}--${2:point2}\",\n      \"line=${1:point1}--${2:point2}\",\n      \"circle=center ${1:point} radius ${2:number}\",\n      \"circle through=center ${1:point1} through ${2:point2}\",\n      \"disk through=center ${1:point1} through ${2:point2}\"\n    ],\n    \"\\\\tkzDrawPoint#c,\\\\tkzDrawPoints#c\": [\n      \"shape=${1|circle,cross,cross out|}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"draw=\",\n      \"opacity=${1:factor}\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzDrawLine#c,\\\\tkzDrawLines#c\": [\n      \"add=${1:num1} and ${2:num2}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSegment#c,\\\\tkzDrawSegments#c\": [\n      \"add=${1:num1} and ${2:num2}\",\n      \"dim={${1:label},${2:dim},${3:option}}\",\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawPolygon#c,\\\\tkzDrawPolySeg#c\": [\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"draw=\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"style={${1:TikZ options}}\",\n      \"->\",\n      \"<-\",\n      \"<->\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"line width=\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawCircle#c,\\\\tkzDrawCircles#c\": [\n      \"through\",\n      \"R\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSemiCircle#c,\\\\tkzDrawSemiCircles#c\": [\n      \"through\",\n      \"diameter\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawArc#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\",\n      \"R with nodes\",\n      \"angles\",\n      \"delta=${1:number}\",\n      \"reverse\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzDrawSector#c,\\\\tkzFillSector#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\",\n      \"R with nodes\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"color=\",\n      \"%color\",\n      \"draw=\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\",\n      \"double\",\n      \"double distance=\"\n    ],\n    \"\\\\tkzFillCircle#c,\\\\tkzFillCircles#c\": [\n      \"radius\",\n      \"R\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"opacity=${1:factor}\"\n    ],\n    \"\\\\tkzFillPolygon#c\": [\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"fill=\"\n    ],\n    \"\\\\tkzFillAngle#c,\\\\tkzFillAngles#c\": [\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"opacity=${1:factor}\",\n      \"fill=\",\n      \"left color=\",\n      \"right color=\"\n    ],\n    \"\\\\tkzInit#c\": [\n      \"xmin=${1:number}\",\n      \"xmax=${1:number}\",\n      \"xstep=${1:number}\",\n      \"ymin=${1:number}\",\n      \"ymax=${1:number}\",\n      \"ystep=${1:number}\"\n    ],\n    \"\\\\tkzClip#c\": [\n      \"space=${1:number}\"\n    ],\n    \"\\\\tkzShowBB#c\": [\n      \"line width=\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzClipPolygon#c\": [\n      \"out\"\n    ],\n    \"\\\\tkzClipCircle#c\": [\n      \"out\"\n    ],\n    \"\\\\tkzClipSector#c\": [\n      \"towards\",\n      \"rotate\",\n      \"R\"\n    ],\n    \"\\\\tkzMarkSegment#c,\\\\tkzMarkSegments#c,\\\\tkzMarkArc#c\": [\n      \"pos=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"mark=${1:mark}\",\n      \"size=\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzMarkAngle#c,\\\\tkzMarkAngles#c\": [\n      \"arc=${1|l,ll,lll|}\",\n      \"size=\",\n      \"mark=${1:mark}\",\n      \"mksize=\",\n      \"mkcolor=\",\n      \"color=\",\n      \"mkpos=${1:number}\"\n    ],\n    \"\\\\tkzMarkRightAngle#c,\\\\tkzMarkRightAngles#c\": [\n      \"german\",\n      \"size=${1:number}\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"draw=\",\n      \"color=\",\n      \"%color\",\n      \"line width=\"\n    ],\n    \"\\\\tkzLabelPoint#c,\\\\tkzLabelPoints#c,\\\\tkzAutoLabelPoints#c\": [\n      \"left\",\n      \"right\",\n      \"above\",\n      \"below\",\n      \"above right\",\n      \"above left\",\n      \"below right\",\n      \"below left\",\n      \"color=\",\n      \"%color\",\n      \"font=${1:font commands}\",\n      \"label=${1:text}\",\n      \"centered\"\n    ],\n    \"\\\\tkzAutoLabelPoints#c\": [\n      \"center=${1:point}\",\n      \"dist=${1:number}\"\n    ],\n    \"\\\\tkzLabelLine#c,\\\\tkzLabelSegment#c,\\\\tkzLabelSegments#c\": [\n      \"pos=${1:number}\",\n      \"swap\",\n      \"auto\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"sloped\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzLabelAngle#c,\\\\tkzLabelAngles#c\": [\n      \"pos=${1:number}\",\n      \"circle\",\n      \"draw\",\n      \"fill=\",\n      \"font=${1:font commands}\"\n    ],\n    \"\\\\tkzLabelCircle#c\": [\n      \"radius\",\n      \"R\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"color=\",\n      \"%color\",\n      \"fill=\",\n      \"font=${1:font commands}\",\n      \"draw\",\n      \"text width=\",\n      \"text centered\"\n    ],\n    \"\\\\tkzLabelArc#c\": [\n      \"pos=${1:number}\",\n      \"below=\",\n      \"above=\",\n      \"left=\",\n      \"right=\",\n      \"below left=\",\n      \"below right=\",\n      \"above left=\",\n      \"above right=\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzCompass#c,\\\\tkzCompasss#c\": [\n      \"delta=${1:degrees}\",\n      \"length=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzShowLine#c\": [\n      \"mediator\",\n      \"parallel=through ${1:point}\",\n      \"perpendicular=through ${1:point}\",\n      \"orthogonal\",\n      \"bisector\",\n      \"K=${1:number}\",\n      \"length=${1:number}\",\n      \"ratio=${1:number}\",\n      \"gap=${1:number}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\",\n      \"solid\",\n      \"dotted\",\n      \"densely dotted\",\n      \"loosely dotted\",\n      \"dashed\",\n      \"densely dashed\",\n      \"loosely dashed\",\n      \"dash dot\",\n      \"densely dash dot\",\n      \"loosely dash dot\",\n      \"dash dot dot\",\n      \"densely dash dot dot\",\n      \"loosely dash dot dot\",\n      \"line width=\",\n      \"style={${1:TikZ options}}\",\n      \"line width=\",\n      \"ultra thin\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"ultra thick\"\n    ],\n    \"\\\\tkzShowTransformation#c\": [\n      \"reflection=over ${1:point1}--${2:point2}\",\n      \"symmetry=center ${1:point}\",\n      \"projection=onto ${1:point1}--${2:point2}\",\n      \"translation=from ${1:point1} to ${2:point2}\",\n      \"K=${1:number}\",\n      \"length=${1:number}\",\n      \"ratio=${1:number}\",\n      \"gap=${1:number}\",\n      \"size=${1:number}\",\n      \"color=\",\n      \"%color\"\n    ],\n    \"\\\\tkzProtractor#c\": [\n      \"lw=\",\n      \"scale=${1:factor}\",\n      \"return\"\n    ],\n    \"\\\\tkzCalcLength#c\": [\n      \"cm\"\n    ],\n    \"\\\\tkzSetUpColors#c\": [\n      \"background=\",\n      \"text=\"\n    ],\n    \"\\\\tkzSetUpPoint#c\": [\n      \"color=\",\n      \"size=${1:number}\",\n      \"fill=\",\n      \"shape=${1|circle,cross,cross out|}\"\n    ],\n    \"\\\\tkzSetUpLine#c,\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\": [\n      \"color=\",\n      \"line width=\",\n      \"style=${1|solid,dotted,densely dotted,loosely dotted,dashed,densely dashed,loosely dashed,dash dot,densely dash dot,loosely dash dot,dash dot dot,densely dash dot dot ,loosely dash dot dot|}\",\n      \"add=${1:num1} and ${2:num2}\"\n    ],\n    \"\\\\tkzSetUpLine#c\": [\n      \"add=${1:num1} and ${2:num2}\"\n    ],\n    \"\\\\tkzSetUpArc#c,\\\\tkzSetUpCompass#c\": [\n      \"delta=${1:number}\"\n    ],\n    \"\\\\tkzText#c\": [\n      \"draw\",\n      \"color=\",\n      \"text=\",\n      \"fill=\",\n      \"opacity=${1:factor}\",\n      \"line width=\",\n      \"rotate=${1:degrees}\",\n      \"inner sep=\",\n      \"text width=\"\n    ],\n    \"\\\\tkzLegend#c\": [\n      \"line\"\n    ],\n    \"\\\\tkzDrawX#c\": [\n      \"color=\",\n      \"noticks\",\n      \"right space=\",\n      \"left space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"tickup=\",\n      \"tickdn=\",\n      \">=${1:end arrow spec}\"\n    ],\n    \"\\\\tkzDrawY#c\": [\n      \"color=\",\n      \"noticks\",\n      \"up space=\",\n      \"down space=\",\n      \"label=${1:text}\",\n      \"trig=${1:integer}\",\n      \"tickwd=\",\n      \"ticklt=\",\n      \"tickrt=\"\n    ],\n    \"\\\\tkzGrid#c\": [\n      \"sub\",\n      \"color=\",\n      \"%color\",\n      \"subxstep=${1:number}\",\n      \"subystep=${1:number}\",\n      \"line width=\"\n    ],\n    \"\\\\tkzPointShowCoord#c,\\\\tkzShowPointCoord#c\": [\n      \"xlabel=${1:text}\",\n      \"xstyle=\",\n      \"noxdraw\",\n      \"ylabel=${1:text}\",\n      \"ystyle=\",\n      \"noydraw\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tkz-euclide#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tkz-fct.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tkz-base\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzFct\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzFct{${1:gnuplot expression}}\"\n      }\n    },\n    {\n      \"name\": \"tkzFct\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzFct[${2:options%keyvals}]{${1:gnuplot expression}}\",\n        \"keys\": [\n          \"\\\\tkzFct#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDefPointByFct\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDefPointByFct(${1:number})\"\n      }\n    },\n    {\n      \"name\": \"tkzDefPointByFct\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDefPointByFct[${1:options%keyvals}](${2:number})\",\n        \"keys\": [\n          \"\\\\tkzDefPointByFct#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawTangentLine\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"tkzDrawTangentLine(${1:number})\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawTangentLine\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzDrawTangentLine[${1:options%keyvals}](${2:number})\",\n        \"keys\": [\n          \"\\\\tkzDrawTangentLine#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawArea\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawArea[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawArea#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawAreafg\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawAreafg[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawAreafg#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawRiemannSum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawRiemannSum[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawRiemannSum#c,\\\\tkzDrawRiemannSumInf#c,\\\\tkzDrawRiemannSumSup#c,\\\\tkzDrawRiemannSumMid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawRiemannSumInf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawRiemannSumInf[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawRiemannSum#c,\\\\tkzDrawRiemannSumInf#c,\\\\tkzDrawRiemannSumSup#c,\\\\tkzDrawRiemannSumMid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawRiemannSumSup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawRiemannSumSup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawRiemannSum#c,\\\\tkzDrawRiemannSumInf#c,\\\\tkzDrawRiemannSumSup#c,\\\\tkzDrawRiemannSumMid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzDrawRiemannSumMid\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzDrawRiemannSumMid[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzDrawRiemannSum#c,\\\\tkzDrawRiemannSumInf#c,\\\\tkzDrawRiemannSumSup#c,\\\\tkzDrawRiemannSumMid#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFctPar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzFctPar{${1:x(${3:t})}}{${2:y(${4:t})}}\"\n      }\n    },\n    {\n      \"name\": \"tkzFctPar\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tkzFctPar[${3:options}]{${1:x(${4:t})}}{${2:y(${5:t})}}\",\n        \"keys\": [\n          \"\\\\tkzFctPar#c,\\\\tkzFctPolar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzFctPolar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzFctPolar{${1:f(${2:t})}}\"\n      }\n    },\n    {\n      \"name\": \"tkzFctPolar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzFctPolar[${2:options}]{${1:f(${3:t})}}\",\n        \"keys\": [\n          \"\\\\tkzFctPar#c,\\\\tkzFctPolar#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzFct#c\": [\n      \"domain=\",\n      \"samples=\",\n      \"id=\",\n      \"color=\",\n      \"line width=\",\n      \"style=\"\n    ],\n    \"\\\\tkzDefPointByFct#c\": [\n      \"draw\",\n      \"with=\",\n      \"ref=\"\n    ],\n    \"\\\\tkzDrawTangentLine#c\": [\n      \"draw\",\n      \"with=\",\n      \"kr=\",\n      \"kl=\"\n    ],\n    \"\\\\tkzDrawArea#c\": [\n      \"domain=\",\n      \"with=\",\n      \"color=\",\n      \"opacity=\",\n      \"style=\"\n    ],\n    \"\\\\tkzDrawAreafg#c\": [\n      \"between=\",\n      \"domain=\",\n      \"opacity=\"\n    ],\n    \"\\\\tkzDrawRiemannSum#c,\\\\tkzDrawRiemannSumInf#c,\\\\tkzDrawRiemannSumSup#c,\\\\tkzDrawRiemannSumMid#c\": [\n      \"interval=\",\n      \"number=\"\n    ],\n    \"\\\\tkzFctPar#c,\\\\tkzFctPolar#c\": [\n      \"domain=\",\n      \"samples=\",\n      \"id=\",\n      \"color=\",\n      \"line width=\",\n      \"style=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-graph.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Vertex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vertex{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"Vertex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Vertex[${2:options%keyvals}]{${1:name}}\",\n        \"keys\": [\n          \"\\\\Vertex,\\\\Vertices\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Vertices\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Vertices{${1:type}}{${2:vertex1,vertex2,...}}\"\n      }\n    },\n    {\n      \"name\": \"Vertices\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Vertices[${3:options%keyvals}]{${1:type}}{${2:vertex1,vertex2,...}}\",\n        \"keys\": [\n          \"\\\\Vertex,\\\\Vertices\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"EA\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"EA(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"EA\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"EA[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WE\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"WE(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"WE\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"WE[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NO\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"NO(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"NO\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"NO[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SO\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"SO(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"SO\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"SO[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NOEA\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"NOEA(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"NOEA\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"NOEA[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NOWE\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"NOWE(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"NOWE\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"NOWE[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SOEA\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"SOEA(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"SOEA\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"SOEA[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SOWE\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"SOWE(${2:vertex1}){${1:vertex2}}\"\n      }\n    },\n    {\n      \"name\": \"SOWE\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"SOWE[${2:options%keyvals}](${3:vertex1}){${1:vertex2}}\",\n        \"keys\": [\n          \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetGraphUnit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetGraphUnit{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetVertexNoLabel\"\n    },\n    {\n      \"name\": \"SetVertexMath\"\n    },\n    {\n      \"name\": \"SetVertexLabel\"\n    },\n    {\n      \"name\": \"SetVertexLabelOut\"\n    },\n    {\n      \"name\": \"SetVertexLabelIn\"\n    },\n    {\n      \"name\": \"Edge\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"Edge(${1:vertex1})(${2:vertex2})\"\n      }\n    },\n    {\n      \"name\": \"Edge\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"Edge[${1:options%keyvals}](${2:vertex1})(${3:vertex2})\",\n        \"keys\": [\n          \"\\\\Edge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Loop\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Loop(${1:vertex})\"\n      }\n    },\n    {\n      \"name\": \"Loop\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"Loop[${1:options%keyvals}](${2:vertex})\",\n        \"keys\": [\n          \"\\\\Loop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Edges\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"Edges(${1:vertex1},${2:vertex2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"Edges\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"Edges[${1:options%keyvals}](${2:vertex1},${3:vertex2},${4:...})\"\n      }\n    },\n    {\n      \"name\": \"GraphInit\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GraphInit[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\GraphInit\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VertexInnerSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexOuterSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexShape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexLineColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexLightFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexDarkFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexTextColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexBallColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexBigMinSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexInterMinSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VertexSmallMinSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgeFillColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgeArtColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgeColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgeDoubleDistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EdgeLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetVertexSimple\"\n    },\n    {\n      \"name\": \"SetVertexSimple\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetVertexSimple[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetVertexSimple\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetVertexNormal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetVertexNormal[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetVertexNormal\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetUpVertex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetUpVertex[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetUpVertex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetUpEdge\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"SetUpEdge[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\SetUpEdge\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetGraphShadeColor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetGraphShadeColor{${1:vertexcolor}}{${2:color1}}{${3:color2}}\"\n      }\n    },\n    {\n      \"name\": \"SetGraphArtColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetGraphArtColor{${1:vertexcolor}}{${2:edgecolor}}\"\n      }\n    },\n    {\n      \"name\": \"SetGraphColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetGraphColor{${1:vertexcolor}}{${2:edgecolor}}\"\n      }\n    },\n    {\n      \"name\": \"grProb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"grProb{${1:left-vertex}}{${2:right-vertex}}{${3:toplabel}}{${4:bottomlabel}}{${5:leftlabel}}{${6:rightlabel}}\"\n      }\n    },\n    {\n      \"name\": \"grProb\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"grProb[${7:options%keyvals}]{${1:left-vertex}}{${2:right-vertex}}{${3:toplabel}}{${4:bottomlabel}}{${5:leftlabel}}{${6:rightlabel}}\",\n        \"keys\": [\n          \"\\\\grProb,\\\\grProbThree\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grProbThree\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"grProbThree{${1:right-vertex}}{${2:up-vertex}}{${3:down-vertex}}{${4:rr/ru/rd}}{${5:uu/ud/ur}}{${6:dd/dr/du}}\"\n      }\n    },\n    {\n      \"name\": \"grProbThree\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}\",\n        \"snippet\": \"grProbThree[${7:options%keyvals}]{${1:right-vertex}}{${2:up-vertex}}{${3:down-vertex}}{${4:rr/ru/rd}}{${5:uu/ud/ur}}{${6:dd/dr/du}}\",\n        \"keys\": [\n          \"\\\\grProb,\\\\grProbThree\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddVertexColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddVertexColor{${1:color}}{${2:vertex1,vertex2,...}}\"\n      }\n    },\n    {\n      \"name\": \"SetVertexArt\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\Vertex,\\\\Vertices\": [\n      \"x=\",\n      \"y=\",\n      \"a=\",\n      \"d=\",\n      \"Node\",\n      \"position=\",\n      \"dir=\",\n      \"NoLabel\",\n      \"LabelOut\",\n      \"L=\",\n      \"Math\",\n      \"Ldist=\",\n      \"Lpos=\"\n    ],\n    \"\\\\EA,\\\\WE,\\\\NO,\\\\SO,\\\\NOEA,\\\\NOWE,\\\\SOEA,\\\\SOWE\": [\n      \"x=\",\n      \"y=\",\n      \"a=\",\n      \"d=\",\n      \"Node\",\n      \"position=\",\n      \"dir=\",\n      \"NoLabel\",\n      \"LabelOut\",\n      \"L=\",\n      \"Math\",\n      \"Ldist=\",\n      \"Lpos=\",\n      \"unit=\"\n    ],\n    \"\\\\Edge\": [\n      \"local\",\n      \"color=\",\n      \"lw=\",\n      \"label=\",\n      \"labeltext=\",\n      \"labelcolor=\",\n      \"labelstyle=\",\n      \"style=\"\n    ],\n    \"\\\\Loop\": [\n      \"color=\",\n      \"lw=\",\n      \"label=\",\n      \"labelstyle=\",\n      \"style=\",\n      \"color=\",\n      \"lw=\",\n      \"label=\",\n      \"labelstyle=\",\n      \"style=\",\n      \"dir=${1|EA,WE,NO,SO,NOEA,NOWE,SOEA,SOWE|}\",\n      \"dist=\"\n    ],\n    \"\\\\GraphInit\": [\n      \"vstyle=${1|Empty,Hasse,Simple,Classic,Normal,Shade,Dijkstra,Welsh,Art,Shade Art|}\"\n    ],\n    \"\\\\SetVertexSimple\": [\n      \"Shape=\",\n      \"MinSize=\",\n      \"LineWidth=\",\n      \"LineColor=\",\n      \"FillColor=\"\n    ],\n    \"\\\\SetVertexNormal\": [\n      \"color=\",\n      \"label=\",\n      \"labelstyle=\",\n      \"labeltext=\",\n      \"labelcolor=\",\n      \"style=\",\n      \"lw=\",\n      \"Shape=\",\n      \"LineWidth=\",\n      \"FillColor=\"\n    ],\n    \"\\\\SetUpVertex\": [\n      \"Lpos=\",\n      \"Ldist=\",\n      \"style=\",\n      \"NoLabel\",\n      \"LabelOut\"\n    ],\n    \"\\\\SetUpEdge\": [\n      \"color=\",\n      \"label=\",\n      \"labelstyle=\",\n      \"labeltext=\",\n      \"labelcolor=\",\n      \"style=\",\n      \"lw=\"\n    ],\n    \"\\\\grProb,\\\\grProbThree\": [\n      \"unit=\",\n      \"LposA=\",\n      \"LposB=\",\n      \"Ldist=\",\n      \"LoopDist=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-kiviat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzKiviatDiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzKiviatDiagram{${1:name1,name2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzKiviatDiagram\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzKiviatDiagram[${2:options%keyvals}]{${1:name1,name2,...}}\",\n        \"keys\": [\n          \"\\\\tkzKiviatDiagram#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzKiviatLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzKiviatLine[${2:options%keyvals}]{${1:num1,num2,...}}\",\n        \"keys\": [\n          \"\\\\tkzKiviatLine#c,\\\\tkzKiviatLineFromFile#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzKiviatLineFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tkzKiviatLineFromFile[${3:options%keyvals}]{${1:file1%file}}{${2:file2%file}}\",\n        \"keys\": [\n          \"\\\\tkzKiviatLine#c,\\\\tkzKiviatLineFromFile#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzKiviatGrad\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"tkzKiviatGrad[${1:options%keyvals}](${2:integer})\",\n        \"keys\": [\n          \"\\\\tkzKiviatGrad#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzKiviatDiagramFromFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzKiviatDiagramFromFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tkzKiviatDiagramFromFile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzKiviatDiagramFromFile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\tkzKiviatDiagramFromFile#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzKiviatDiagram#c\": [\n      \"lattice=\",\n      \"gap=\",\n      \"space=\",\n      \"label space=\",\n      \"step=\",\n      \"radial style=\",\n      \"label style=\"\n    ],\n    \"\\\\tkzKiviatLine#c,\\\\tkzKiviatLineFromFile#c\": [\n      \"fill=\",\n      \"opacity=\"\n    ],\n    \"\\\\tkzKiviatGrad#c\": [\n      \"graduation distance=\",\n      \"prefix=\",\n      \"suffix=\",\n      \"unity=\"\n    ],\n    \"\\\\tkzKiviatDiagramFromFile#c\": [\n      \"lattice=\",\n      \"gap=\",\n      \"space=\",\n      \"label space=\",\n      \"step=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-linknodes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LinkNodes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LinkNodes{${1:expression}}\"\n      }\n    },\n    {\n      \"name\": \"LinkNodes\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LinkNodes[${2:keyvals}]{${1:expression}}\",\n        \"keys\": [\n          \"\\\\begin{NodesList},\\\\LinkNodes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddNode\"\n    },\n    {\n      \"name\": \"AddNode\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"AddNode[${1:number}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"NodesList\"\n    },\n    {\n      \"name\": \"NodesList\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{NodesList},\\\\LinkNodes\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{NodesList},\\\\LinkNodes\": [\n      \"margin=\",\n      \"dy=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-orm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"entity\"\n    },\n    {\n      \"name\": \"entity\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"entity[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"value\"\n    },\n    {\n      \"name\": \"value\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"value[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unary\"\n    },\n    {\n      \"name\": \"unary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"unary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"role\"\n    },\n    {\n      \"name\": \"role\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"role[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"binary\"\n    },\n    {\n      \"name\": \"binary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"binary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"roles\"\n    },\n    {\n      \"name\": \"roles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"roles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ternary\"\n    },\n    {\n      \"name\": \"ternary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ternary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vunary\"\n    },\n    {\n      \"name\": \"vunary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vunary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vrole\"\n    },\n    {\n      \"name\": \"vrole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vrole[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vbinary\"\n    },\n    {\n      \"name\": \"vbinary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vbinary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vroles\"\n    },\n    {\n      \"name\": \"vroles\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vroles[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vternary\"\n    },\n    {\n      \"name\": \"vternary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vternary[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"plays\"\n    },\n    {\n      \"name\": \"plays\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"plays[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\",\n          \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"limits\"\n    },\n    {\n      \"name\": \"limits\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"limits[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"limitsto\"\n    },\n    {\n      \"name\": \"limitsto\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"limitsto[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"rules\"\n    },\n    {\n      \"name\": \"constraintdeclare\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"constraintdeclare{${1:name}}{${2:path code}}\"\n      }\n    },\n    {\n      \"name\": \"constraintdeclarealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"constraintdeclarealias{${1:alias name}}{${2:existing name}}\"\n      }\n    },\n    {\n      \"name\": \"constraintdeclareasnode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"constraintdeclareasnode{${1:name}}{${2:TikZ code}}\"\n      }\n    },\n    {\n      \"name\": \"ormtext\"\n    },\n    {\n      \"name\": \"ormbf\"\n    },\n    {\n      \"name\": \"ormc\"\n    },\n    {\n      \"name\": \"ormsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormsub{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormind\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormind{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormbraces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormbraces{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormvalues\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormvalues{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormleft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormleft{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ormup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ormup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tkzorm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ormarrowup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ormarrowdown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ormarrowleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ormarrowright\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\node#c\": [\n      \"entity\",\n      \"value\",\n      \"power\",\n      \"power=\",\n      \"sequence\",\n      \"sequence=\",\n      \"roles\",\n      \"roles=${1:number}\",\n      \"role\",\n      \"role=${1:number}\",\n      \"vroles\",\n      \"vroles=${1:number}\",\n      \"vrole\",\n      \"vrole=${1:number}\",\n      \"relation\",\n      \"relationship\",\n      \"plays\"\n    ],\n    \"\\\\begin{tikzpicture}#c\": [\n      \"every entity/.style={${1:TikZ options}}\",\n      \"every value/.style={${1:TikZ options}}\",\n      \"every object/.style={${1:TikZ options}}\",\n      \"every predicate/.style={${1:TikZ options}}\",\n      \"every relationship/.style={${1:TikZ options}}\",\n      \"every constraint/.style={${1:TikZ options}}\",\n      \"edge from parent/.style=${1|subtype,suptype|}\",\n      \"orm\",\n      \"orm-spacious\",\n      \"every orm line\"\n    ],\n    \"\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c,\\\\limits#c,\\\\limitsto#c\": [\n      \"dash pattern=${1:dash pattern}\",\n      \"dash phase=${1:dash phase}\",\n      \"dash=${1:dash pattern} phase ${2:dash phase}\",\n      \"solid\",\n      \"dotted\",\n      \"dashed\",\n      \"dash dot\",\n      \"line width=\",\n      \"very thin\",\n      \"thin\",\n      \"semithick\",\n      \"thick\",\n      \"very thick\",\n      \"line cap=${1|round,rect,butt|}\",\n      \"line join=${1|round,bevel,miter|}\",\n      \"miter limit=${1:factor}\",\n      \"help lines\",\n      \"anchor=\",\n      \"inner sep=\",\n      \"inner xsep=\",\n      \"inner ysep=\",\n      \"outer sep=\",\n      \"outer xsep=\",\n      \"outer ysep=\",\n      \"minimum height=\",\n      \"minimum width=\",\n      \"minimum size=\",\n      \"shape aspect=\",\n      \"text=%color\",\n      \"node font=\",\n      \"font=\",\n      \"text width=\",\n      \"align=${1|left,flush left,right,flush right,center,flush center,justify|}\",\n      \"text height=\",\n      \"text depth=\",\n      \"anchor=${1|north west,north,north east,west,center,east,mid west,mid,mid east,base west,base,base east,south west,south,south east,text|}\",\n      \"above=\",\n      \"below=\",\n      \"right=\",\n      \"left=\",\n      \"above=of ${1:node}\",\n      \"below=of ${1:node}\",\n      \"right=of ${1:node}\",\n      \"left=of ${1:node}\",\n      \"above left\",\n      \"above right\",\n      \"below left\",\n      \"below right\",\n      \"centered\",\n      \"pos=\",\n      \"midway\",\n      \"near start\",\n      \"near end\",\n      \"very near start\",\n      \"very near end\",\n      \"at start\",\n      \"at end\",\n      \"label=${1:angle}:${2:text}\",\n      \"shift=${1:coordinate}\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:scale}\",\n      \"xscale=${1:scale}\",\n      \"yscale=${1:scale}\",\n      \"xslant=${1:factor}\",\n      \"yslant=${1:factor}\",\n      \"rotate=${1:degree}\",\n      \"rotate around={${1:degree}:coordinate}\",\n      \"every picture\",\n      \"every scope\",\n      \"every node\",\n      \"->\",\n      \"<-\",\n      \"name path=\",\n      \"name=\",\n      \"sharp corners\",\n      \"rounded corners=\",\n      \"outline\",\n      \"color=\"\n    ],\n    \"\\\\node#c,\\\\entity#c,\\\\value#c,\\\\unary#c,\\\\role#c,\\\\binary#c,\\\\roles#c,\\\\ternary#c,\\\\vunary#c,\\\\vrole#c,\\\\vbinary#c,\\\\vroles#c,\\\\vternary#c,\\\\plays#c\": [\n      \"role name\",\n      \"index=\",\n      \"unique\",\n      \"unique=\",\n      \"skip unique=\",\n      \"uniqueness bar\",\n      \"skipped uniqueness bar\",\n      \"constraint dot\",\n      \"cdot\",\n      \"constraint=${1|x,exclusive,unique,equal,mandatory,total required,or,preferred unique,subset,xor,partition,external,supset,irreflexive,antisymmetric,symmetric,intransitive,asymmetric,acyclic,purely reflexive,reflexive,strongly intransitive,acyclic intransitive,symmetric irreflexive,transitive,text|}\",\n      \"rule=${1:mark}\",\n      \"duplicated\",\n      \"implied\",\n      \"zoomed\",\n      \"mandatory\",\n      \"mdot-idot\",\n      \"odot-iodot\"\n    ],\n    \"\\\\draw#c\": [\n      \"limits\",\n      \"limits to\",\n      \"subtype\",\n      \"suptype\",\n      \"subinterface\",\n      \"supinterface\",\n      \"both required\",\n      \"both mandatory\",\n      \"relation\",\n      \"relationship\",\n      \"uniqueness bar\",\n      \"skipped uniqueness bar\",\n      \"implied\"\n    ],\n    \"\\\\begin{scope}#c\": [\n      \"duplicated model\",\n      \"implied model\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkz-tab.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypatterns\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzTabInit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tkzTabInit{${1:expr1/height1,expr2/height2,...}}{${2:expr1,expr2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabInit\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tkzTabInit[${3:options%keyvals}]{${1:expr1/height1,expr2/height2,...}}{${2:expr1,expr2,...}}\",\n        \"keys\": [\n          \"\\\\tkzTabInit,\\\\tkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTab\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tkzTab{${1:list1}}{${2:list2}}{${3:list3%formula}}{${4:list4}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTab\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"tkzTab[${5:options%keyvals}]{${1:list1}}{${2:list2}}{${3:list3%formula}}{${4:list4}}\",\n        \"keys\": [\n          \"\\\\tkzTabInit,\\\\tkzTab\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabLine\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzTabLine{${1:symbol1,symbol2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabLine\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzTabLine[${2:options%keyvals}]{${1:symbol1,symbol2,...%formula}}\",\n        \"keys\": [\n          \"\\\\tkzTabLine\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabVar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzTabVar{${1:symbol1/expr,symbol2/expr1/expr2,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabVar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tkzTabVar[${2:options%keyvals}]{${1:symbol1/expr,symbol2/expr1/expr2,...}}\",\n        \"keys\": [\n          \"\\\\tkzTabVar\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabVal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tkzTabVal{${1:start}}{${2:finish}}{${3:position}}{${4:antecedent}}{${5:image}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabVal\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"tkzTabVal[${6:options%keyvals}]{${1:start}}{${2:finish}}{${3:position}}{${4:antecedent}}{${5:image}}\",\n        \"keys\": [\n          \"\\\\tkzTabVal,\\\\tkzTabIma,\\\\tkzTabImaFrom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabIma\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tkzTabIma{${1:start}}{${2:finish}}{${3:position}}{${4:antecedent}}{${5:image}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabIma\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"tkzTabIma[${6:options%keyvals}]{${1:start}}{${2:finish}}{${3:position}}{${4:antecedent}}{${5:image}}\",\n        \"keys\": [\n          \"\\\\tkzTabVal,\\\\tkzTabIma,\\\\tkzTabImaFrom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabImaFrom\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tkzTabImaFrom{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabImaFrom\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"tkzTabImaFrom[${5:options%keyvals}]{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\",\n        \"keys\": [\n          \"\\\\tkzTabVal,\\\\tkzTabIma,\\\\tkzTabImaFrom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabTan\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tkzTabTan{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabTan\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"tkzTabTan[${5:options%keyvals}]{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\",\n        \"keys\": [\n          \"\\\\tkzTabTan,\\\\tkzTabTanFrom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabTanFrom\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tkzTabTanFrom{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabTanFrom\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"tkzTabTanFrom[${5:options%keyvals}]{${1:start}}{${2:finish}}{${3:antecedent}}{${4:image}}\",\n        \"keys\": [\n          \"\\\\tkzTabTan,\\\\tkzTabTanFrom\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabSlope\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tkzTabSlope{${1:num1/leftexpr1/rightexpr1,num2/leftexpr2/rightexpr3,...}}\"\n      }\n    },\n    {\n      \"name\": \"tkzTabSetup\"\n    },\n    {\n      \"name\": \"tkzTabSetup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzTabSetup[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzTabSetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzTabColors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzTabColors[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\tkzTabColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stripspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stripspaces{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tkzDrawArrow\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTabDefaultArrowStyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTabDefaultBackgroundColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTabDefaultLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTabDefaultSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzTabDefaultWritingColor\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\tkzTabInit,\\\\tkzTab\": [\n      \"color\",\n      \"colorC=\",\n      \"colorL=\",\n      \"colorT=\",\n      \"colorV=\",\n      \"deltacl=${1:number}\",\n      \"espcl=${1:number}\",\n      \"help\",\n      \"lgt=${1:number}\",\n      \"lw=\",\n      \"nocadre\",\n      \"textw=\"\n    ],\n    \"\\\\tkzTabLine\": [\n      \"help\"\n    ],\n    \"\\\\tkzTabVar\": [\n      \"color=\",\n      \"help\"\n    ],\n    \"\\\\tkzTabVal,\\\\tkzTabIma,\\\\tkzTabImaFrom\": [\n      \"draw\",\n      \"remember=${1:name}\"\n    ],\n    \"\\\\tkzTabTan,\\\\tkzTabTanFrom\": [\n      \"color=\",\n      \"draw\",\n      \"pos\",\n      \"pos=${1:position}\",\n      \"remember=${1:name}\"\n    ],\n    \"\\\\tkzTabSetup\": [\n      \"arrowcolor=\",\n      \"arrowlinewidth=\",\n      \"arrowstyle={${1:TikZ keys}}\",\n      \"backgroundcolor=\",\n      \"color=\",\n      \"crosslines\",\n      \"doublecolor=\",\n      \"doubledistance=\",\n      \"fromarrowstyle={${1:TikZ keys}}\",\n      \"fromcolor=\",\n      \"fromstyle={${1:TikZ keys}}\",\n      \"fromwidth=\",\n      \"hcolor=\",\n      \"hopacity=${1:factor}\",\n      \"lw=\",\n      \"patterncolor=\",\n      \"patternstyle={${1:TikZ keys}}\",\n      \"tanarrowstyle={${1:TikZ keys}}\",\n      \"tancolor=\",\n      \"tanstyle={${1:TikZ keys}}\",\n      \"tanwidth=\",\n      \"tcolor=\",\n      \"tstyle={${1:TikZ keys}}\",\n      \"twidth=\"\n    ],\n    \"\\\\tkzTabColors\": [\n      \"color=\",\n      \"backgroundcolor=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tkzexample.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"mdframed\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tkzexamplebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzexamplewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzFileSavedPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzltxexamplebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzltxexamplewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzref\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSavedCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tkzSavedCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tkzSavedCode[${1:prefix=prefix}]\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tkzexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tkzexample}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tkzltxexample\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{tkzltxexample}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tkzexample#c\": [\n      \"saved\"\n    ],\n    \"\\\\begin{tkzexample}#c\": [\n      \"execute code\",\n      \"show num\",\n      \"overhang\",\n      \"code only\",\n      \"width=\",\n      \"code=\",\n      \"graphic=\",\n      \"overhang\",\n      \"num\",\n      \"numcolor=\",\n      \"numbkgcolor=\",\n      \"global num\",\n      \"code style=${1:font commands}\",\n      \"normal\",\n      \"small\",\n      \"very small\",\n      \"right margin=\",\n      \"left margin=\",\n      \"inner left margin=\",\n      \"inner right margin=\",\n      \"inner top margin=\",\n      \"inner bottom margin=\",\n      \"line frame width=\",\n      \"frame code=\",\n      \"frame tex=\",\n      \"above skip=\",\n      \"below skip=\",\n      \"hsep=\",\n      \"pre=${1:code}\",\n      \"post=${1:code}\",\n      \"latex=\",\n      \"vbox\"\n    ],\n    \"\\\\begin{tkzltxexample}#c\": [\n      \"width=\",\n      \"code=\",\n      \"show num\",\n      \"num\",\n      \"global num\",\n      \"numcolor=\",\n      \"numbkgcolor=\",\n      \"normal\",\n      \"small\",\n      \"very small\",\n      \"right margin\",\n      \"left margin=\",\n      \"inner left margin=\",\n      \"inner right margin=\",\n      \"inner top margin=\",\n      \"inner bottom margin=\",\n      \"line frame width=\",\n      \"hsep=\",\n      \"typeset listing\",\n      \"frame code=\",\n      \"ignorespaces\",\n      \"leave comments\",\n      \"vbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tkzexample#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/to-be-determined.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"soul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tbd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tbd{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tocbasic.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Ifattoclist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifattoclist{${1:extension}}{${2:then code}}{${3:else code}}\"\n      }\n    },\n    {\n      \"name\": \"addtotoclist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotoclist{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"addtotoclist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtotoclist[${2:owner}]{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"owneroftoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"owneroftoc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"categoryoftoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"categoryoftoc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AtAddToTocList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AtAddToTocList{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AtAddToTocList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AtAddToTocList[${2:owner}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"removefromtoclist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removefromtoclist{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"removefromtoclist\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"removefromtoclist[${2:owner}]{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"doforeachtocfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doforeachtocfile{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"doforeachtocfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doforeachtocfile[${2:owner}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"addtoeachtocfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoeachtocfile{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"addtoeachtocfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addtoeachtocfile[${2:owner}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"addcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addcontentslinetoeachtocfile{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addcontentslinetoeachtocfile[${3:owner}]{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addxcontentsline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addxcontentsline{${1:extension}}{${2:level}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"addxcontentsline\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"addxcontentsline{${1:extension}}{${2:level}}[${4:section number}]{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"nonumberline\"\n    },\n    {\n      \"name\": \"addxcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addxcontentslinetoeachtocfile{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addxcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"addxcontentslinetoeachtocfile{${1:level}}[${3:section number}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addxcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addxcontentslinetoeachtocfile[${3:owner}]{${1:level}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"addxcontentslinetoeachtocfile\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"addxcontentslinetoeachtocfile[${3:owner}]{${1:level}}[${4:section number}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeStartingTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeStartingTOC{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeStartingTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BeforeStartingTOC[${2:extension}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterStartingTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterStartingTOC{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterStartingTOC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AfterStartingTOC[${2:extension}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"listoftoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listoftoc{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"listoftoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"listoftoc[${2:list-of title}]{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"listoftoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listoftoc*{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"listofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofeachtoc\"\n    },\n    {\n      \"name\": \"listofeachtoc\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listofeachtoc[${1:owner}]\"\n      }\n    },\n    {\n      \"name\": \"BeforeTOCHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeTOCHead{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeTOCHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BeforeTOCHead[${2:extension}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterTOCHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterTOCHead{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"AfterTOCHead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AfterTOCHead[${2:extension}]{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"deftocheading\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deftocheading{${1:extension}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"setuptoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setuptoc{${1:extension}}{${2:feature list%keyvals}}\",\n        \"keys\": [\n          \"\\\\setuptoc#c,\\\\unsettoc#c,\\\\Iftocfeature#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"unsettoc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unsettoc{${1:extension}}{${2:feature list%keyvals}}\",\n        \"keys\": [\n          \"\\\\setuptoc#c,\\\\unsettoc#c,\\\\Iftocfeature#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"Iftocfeature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Iftocfeature{${1:extension}}{${2:feature%keyvals}}{${3:then code}}{${4:else code}}\",\n        \"keys\": [\n          \"\\\\setuptoc#c,\\\\unsettoc#c,\\\\Iftocfeature#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"tocbasicautomode\"\n    },\n    {\n      \"name\": \"DeclareNewTOC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareNewTOC{${1:extension}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareNewTOC\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareNewTOC[${2:options%keyvals}]{${1:extension}}\",\n        \"keys\": [\n          \"\\\\DeclareNewTOC#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usetocbasicnumberline\"\n    },\n    {\n      \"name\": \"usetocbasicnumberline\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"usetocbasicnumberline[${1:code}]\"\n      }\n    },\n    {\n      \"name\": \"TOCEntryStyleInitCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TOCEntryStyleInitCode{${1:style}}{${2:initial code}}\"\n      }\n    },\n    {\n      \"name\": \"TOCEntryStyleInitCode*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TOCEntryStyleInitCode*{${1:style}}{${2:initial code}}\"\n      }\n    },\n    {\n      \"name\": \"TOCEntryStyleStartInitCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TOCEntryStyleStartInitCode{${1:style}}{${2:initial code}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryBooleanOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryBooleanOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryBooleanOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryCommandOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryCommandOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryCommandOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryCommandOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryIfOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryIfOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryIfOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryIfOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryLengthOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryLengthOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryLengthOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryListOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryListOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryListOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryListOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DefineTOCEntryNumberOption{${1:option}}{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryNumberOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}\",\n        \"snippet\": \"DefineTOCEntryNumberOption{${1:option}}[${5:default}]{${2:prefix}}{${3:postfix}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineTOCEntryOption{${1:option}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DefineTOCEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DefineTOCEntryOption{${1:option}}[${3:default}]{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"AddToDeclareTOCEntryStylePreCheckNeeds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToDeclareTOCEntryStylePreCheckNeeds{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"PreToDeclareTOCEntryStylePreCheckNeeds\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreToDeclareTOCEntryStylePreCheckNeeds{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"TOCEntryStyleNeedsCommandByOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TOCEntryStyleNeedsCommandByOption{${1:option}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCEntryStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTOCEntryStyle{${1:style}}{${2:command code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCEntryStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareTOCEntryStyle{${1:style}}[${3:initial code}]{${2:command code}}\"\n      }\n    },\n    {\n      \"name\": \"CloneTOCEntryStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CloneTOCEntryStyle{${1:style}}{${2:new style}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCStyleEntry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTOCStyleEntry{${1:style}}{${2:entry level}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCStyleEntry\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTOCStyleEntry[${3:option list%keyvals}]{${1:style}}{${2:entry level}}\",\n        \"keys\": [\n          \"\\\\DeclareTOCStyleEntry#c,\\\\DeclareTOCStyleEntries#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareTOCStyleEntries\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTOCStyleEntries{${1:style}}{${2:entry level}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTOCStyleEntries\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareTOCStyleEntries[${3:option list%keyvals}]{${1:style}}{${2:entry level}}\",\n        \"keys\": [\n          \"\\\\DeclareTOCStyleEntry#c,\\\\DeclareTOCStyleEntries#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"LastTOCLevelWasHigher\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastTOCLevelWasSame\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LastTOCLevelWasLower\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOCLineLeaderFill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOCLineLeaderFill\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TOCLineLeaderFill[${1:leader}]\"\n      }\n    },\n    {\n      \"name\": \"MakeMarkcase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeMarkcase{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"parttocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectiontocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"paragraphtocdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subparagraphtocdepth\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setuptoc#c,\\\\unsettoc#c,\\\\Iftocfeature#c\": [\n      \"leveldown\",\n      \"nobabel\",\n      \"noindent\",\n      \"noparskipfake\",\n      \"noprotrusion\",\n      \"numbered\",\n      \"numberline\",\n      \"onecolumn\",\n      \"totoc\",\n      \"chapteratlist\"\n    ],\n    \"\\\\DeclareNewTOC#c\": [\n      \"atbegin=${1:commands}\",\n      \"atend=${1:commands}\",\n      \"category=${1:string}\",\n      \"counterwithin=${1:counter}\",\n      \"float\",\n      \"floatpos=${1:float positions}\",\n      \"floattype=${1:number}\",\n      \"forcenames\",\n      \"hang=\",\n      \"indent=\",\n      \"level=${1:number}\",\n      \"listname=${1:title}\",\n      \"name=${1:entry name}\",\n      \"nonfloat\",\n      \"owner=${1:string}\",\n      \"setup={${1:list of attributes}}\",\n      \"tocentrystyle=${1:TOC-entry style}\",\n      \"tocentryafterpar=${1:code}\",\n      \"tocentrybeforeskip=\",\n      \"tocentrybreakafternumber=${1|true,on,yes,false,off,no|}\",\n      \"tocentrydynindent=${1|true,on,yes,false,off,no|}\",\n      \"tocentrydynnumwidth=${1|true,on,yes,false,off,no|}\",\n      \"tocentryentryformat=${1:command}\",\n      \"tocentryentrynumberformat=${1:command}\",\n      \"tocentryindent=\",\n      \"tocentrylevel=${1:integer}\",\n      \"tocentryindentfollows={${1:list of levels}}\",\n      \"tocentrylinefill=${1:code}\",\n      \"tocentrynumsep=\",\n      \"tocentrynumwidth=\",\n      \"tocentryonendentry=${1:code}\",\n      \"tocentryonendlastentry=${1:code}\",\n      \"tocentryonstartentry=${1:code}\",\n      \"tocentryonstartfirstentry=${1:code}\",\n      \"tocentryonstarthigherlevel=${1:code}\",\n      \"tocentryonstartlowerlevel=${1:code}\",\n      \"tocentryonstartsamelevel=${1:code}\",\n      \"tocentrypagenumberbox=${1:command}\",\n      \"tocentrypagenumberformat=${1:command}\",\n      \"tocentrypagenumberwidth=\",\n      \"tocentryprepagenumber=${1:code}\",\n      \"tocentryraggedentrytext=${1|true,on,yes,false,off,no|}\",\n      \"tocentryraggedpagenumber=${1|true,on,yes,false,off,no|}\",\n      \"tocentryraggedright=${1|true,on,yes,false,off,no|}\",\n      \"tocentryrightindent=\",\n      \"type=${1:entry type}\",\n      \"types=${1:string}\",\n      \"unset={${1:list of attributes}}\"\n    ],\n    \"\\\\DeclareTOCStyleEntry#c,\\\\DeclareTOCStyleEntries#c\": [\n      \"afterpar=${1:code}\",\n      \"beforeskip=\",\n      \"breakafternumber=${1|true,on,yes,false,off,no|}\",\n      \"dynindent=${1|true,on,yes,false,off,no|}\",\n      \"dynnumwidth=${1|true,on,yes,false,off,no|}\",\n      \"entryformat=${1:command}\",\n      \"entrynumberformat=${1:command}\",\n      \"indent=\",\n      \"level=${1:integer}\",\n      \"indentfollows={${1:list of levels}}\",\n      \"linefill=${1:code}\",\n      \"numsep=\",\n      \"numwidth=\",\n      \"onendentry=${1:code}\",\n      \"onendlastentry=${1:code}\",\n      \"onstartentry=${1:code}\",\n      \"onstartfirstentry=${1:code}\",\n      \"onstarthigherlevel=${1:code}\",\n      \"onstartlowerlevel=${1:code}\",\n      \"onstartsamelevel=${1:code}\",\n      \"pagenumberbox=${1:command}\",\n      \"pagenumberformat=${1:command}\",\n      \"pagenumberwidth=\",\n      \"prepagenumber=${1:code}\",\n      \"raggedentrytext=${1|true,on,yes,false,off,no|}\",\n      \"raggedpagenumber=${1|true,on,yes,false,off,no|}\",\n      \"raggedright=${1|true,on,yes,false,off,no|}\",\n      \"rightindent=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tocbibind.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tocotherhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocotherhead{${1:headingname}}\"\n      }\n    },\n    {\n      \"name\": \"tocbibname\"\n    },\n    {\n      \"name\": \"setindexname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setindexname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"settocname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setlotname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlotname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setlofname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlofname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"settocbibname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocbibname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"simplechapter\"\n    },\n    {\n      \"name\": \"simplechapter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"simplechapter[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"restorechapter\"\n    },\n    {\n      \"name\": \"simplechapterdelim\"\n    },\n    {\n      \"name\": \"tocchapter\"\n    },\n    {\n      \"name\": \"tocsection\"\n    },\n    {\n      \"name\": \"tocfile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tocfile{${1:text}}{${2:file-extension}}\"\n      }\n    },\n    {\n      \"name\": \"tocetcmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocetcmark{${1:head}}\"\n      }\n    },\n    {\n      \"name\": \"PRWPackageNote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRWPackageNote{${1:package}}{${2:note text}}\"\n      }\n    },\n    {\n      \"name\": \"PRWPackageNoteNoLine\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PRWPackageNoteNoLine{${1:package}}{${2:note text}}\"\n      }\n    },\n    {\n      \"name\": \"bibsection\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"thebibitemlist\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tocbibind#c\": [\n      \"notbib\",\n      \"notindex\",\n      \"nottoc\",\n      \"notlot\",\n      \"notlof\",\n      \"chapter\",\n      \"section\",\n      \"numbib\",\n      \"numindex\",\n      \"other\",\n      \"none\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tocbibind#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tocdata.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tocdataformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocdataformat{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocdata\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tocdata{${1:list extension}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"partauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"partauthor{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"partauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"partauthor[${4:list entry}]{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"partauthor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"partauthor[${4:list entry}]{${1:title}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"chapterauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chapterauthor{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"chapterauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"chapterauthor[${4:list entry}]{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"chapterauthor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"chapterauthor[${4:list entry}]{${1:title}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"sectionauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"sectionauthor{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"sectionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"sectionauthor[${4:list entry}]{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"sectionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"sectionauthor[${4:list entry}]{${1:title}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"subsectionauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"subsectionauthor{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"subsectionauthor[${4:list entry}]{${1:title}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"subsectionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"subsectionauthor[${4:list entry}]{${1:title}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"captionartist\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"captionartist{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionartist\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"captionartist[${4:list entry}]{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionartist\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"captionartist[${4:list entry}]{${1:title%text}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"captionauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"captionauthor{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"captionauthor[${4:list entry}]{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionauthor\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"captionauthor[${4:list entry}]{${1:title%text}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"captionartist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"captionartist*{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionartist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"captionartist*[${4:list entry}]{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionartist*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"captionartist*[${4:list entry}]{${1:title%text}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"captionauthor*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"captionauthor*{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionauthor*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"captionauthor*[${4:list entry}]{${1:title%text}}{${2:first}}{${3:last}}\"\n      }\n    },\n    {\n      \"name\": \"captionauthor*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}[]\",\n        \"snippet\": \"captionauthor*[${4:list entry}]{${1:title%text}}[${5:prefix}]{${2:first}}{${3:last}}[${6:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"tocdatapartprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdatapartprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdatachapterprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdatachapterprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdatasectionprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdatasectionprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdatasubsectionprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdatasubsectionprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdataartistprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdataartistprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdataartisttextprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocdataartisttextprint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tocdataauthorprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tocdataauthorprint{${1:prefix}}{${2:first}}{${3:last}}{${4:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"tocdataauthortextprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocdataauthortextprint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tdartistjustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartistcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartistleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartistright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartisttextjustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartisttextcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartisttextleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdartisttextright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthorjustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthorcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthorleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthorright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthortextjustify\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthortextcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthortextleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tdauthortextright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settocdata\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocdata{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"TDoptionalnameprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TDoptionalnameprint{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"TDartistauthorprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TDartistauthorprint{${1:author}}{${2:prefix}}{${3:first}}{${4:last}}{${5:suffix}}\"\n      }\n    },\n    {\n      \"name\": \"TDartistauthortextprint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TDartistauthortextprint{${1:author}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tocenter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ToCenter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ToCenter{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ToCenter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ToCenter[${3:hfm}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"ToCenter*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ToCenter*{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"FromMargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FromMargins{${1:left%l}}{${2:right%l}}{${3:top%l}}{${4:bottom%l}}\"\n      }\n    },\n    {\n      \"name\": \"FromMargins\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FromMargins[${5:hfm}]{${1:left%l}}{${2:right%l}}{${3:top%l}}{${4:bottom%l}}\"\n      }\n    },\n    {\n      \"name\": \"FromMargins*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FromMargins*{${1:left%l}}{${2:right%l}}{${3:top%l}}{${4:bottom%l}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tocloft.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tocloftpagestyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocloftpagestyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"cftmarktoc\"\n    },\n    {\n      \"name\": \"cftmarklof\"\n    },\n    {\n      \"name\": \"cftmarklot\"\n    },\n    {\n      \"name\": \"cftbeforetoctitleskip\"\n    },\n    {\n      \"name\": \"cftbeforeloftitleskip\"\n    },\n    {\n      \"name\": \"cftbeforelottitleskip\"\n    },\n    {\n      \"name\": \"cftaftertoctitleskip\"\n    },\n    {\n      \"name\": \"cftafterloftitleskip\"\n    },\n    {\n      \"name\": \"cftafterlottitleskip\"\n    },\n    {\n      \"name\": \"cfttoctitlefont\"\n    },\n    {\n      \"name\": \"cftloftitlefont\"\n    },\n    {\n      \"name\": \"cftlottitlefont\"\n    },\n    {\n      \"name\": \"cftaftertoctitle\"\n    },\n    {\n      \"name\": \"cftafterloftitle\"\n    },\n    {\n      \"name\": \"cftafterlottitle\"\n    },\n    {\n      \"name\": \"cftdot\"\n    },\n    {\n      \"name\": \"cftdotsep\"\n    },\n    {\n      \"name\": \"cftnodots\"\n    },\n    {\n      \"name\": \"cftdotfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftdotfill{${1:sep}}\"\n      }\n    },\n    {\n      \"name\": \"cftsetpnumwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsetpnumwidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftsetrmarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftsetrmarg{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"cftpnumalign\"\n    },\n    {\n      \"name\": \"cftparskip\"\n    },\n    {\n      \"name\": \"cftbeforepartskip\"\n    },\n    {\n      \"name\": \"cftbeforechapskip\"\n    },\n    {\n      \"name\": \"cftbeforesecskip\"\n    },\n    {\n      \"name\": \"cftbeforesubsecskip\"\n    },\n    {\n      \"name\": \"cftbeforesubsubsecskip\"\n    },\n    {\n      \"name\": \"cftbeforeparaskip\"\n    },\n    {\n      \"name\": \"cftbeforesubparaskip\"\n    },\n    {\n      \"name\": \"cftbeforefigskip\"\n    },\n    {\n      \"name\": \"cftbeforesubfigskip\"\n    },\n    {\n      \"name\": \"cftbeforetabskip\"\n    },\n    {\n      \"name\": \"cftbeforesubtabskip\"\n    },\n    {\n      \"name\": \"cftpartindent\"\n    },\n    {\n      \"name\": \"cftchapindent\"\n    },\n    {\n      \"name\": \"cftsecindent\"\n    },\n    {\n      \"name\": \"cftsubsecindent\"\n    },\n    {\n      \"name\": \"cftsubsubsecindent\"\n    },\n    {\n      \"name\": \"cftparaindent\"\n    },\n    {\n      \"name\": \"cftsubparaindent\"\n    },\n    {\n      \"name\": \"cftfigindent\"\n    },\n    {\n      \"name\": \"cftsubfigindent\"\n    },\n    {\n      \"name\": \"cfttabindent\"\n    },\n    {\n      \"name\": \"cftsubtabindent\"\n    },\n    {\n      \"name\": \"cftpartnumwidth\"\n    },\n    {\n      \"name\": \"cftchapnumwidth\"\n    },\n    {\n      \"name\": \"cftsecnumwidth\"\n    },\n    {\n      \"name\": \"cftsubsecnumwidth\"\n    },\n    {\n      \"name\": \"cftsubsubsecnumwidth\"\n    },\n    {\n      \"name\": \"cftparanumwidth\"\n    },\n    {\n      \"name\": \"cftsubparanumwidth\"\n    },\n    {\n      \"name\": \"cftfignumwidth\"\n    },\n    {\n      \"name\": \"cftsubfignumwidth\"\n    },\n    {\n      \"name\": \"cfttabnumwidth\"\n    },\n    {\n      \"name\": \"cftsubtabnumwidth\"\n    },\n    {\n      \"name\": \"cftpartfont\"\n    },\n    {\n      \"name\": \"cftchapfont\"\n    },\n    {\n      \"name\": \"cftsecfont\"\n    },\n    {\n      \"name\": \"cftsubsecfont\"\n    },\n    {\n      \"name\": \"cftsubsubsecfont\"\n    },\n    {\n      \"name\": \"cftparafont\"\n    },\n    {\n      \"name\": \"cftsubparafont\"\n    },\n    {\n      \"name\": \"cftfigfont\"\n    },\n    {\n      \"name\": \"cftsubfigfont\"\n    },\n    {\n      \"name\": \"cfttabfont\"\n    },\n    {\n      \"name\": \"cftsubtabfont\"\n    },\n    {\n      \"name\": \"cftpartpresnum\"\n    },\n    {\n      \"name\": \"cftchappresnum\"\n    },\n    {\n      \"name\": \"cftsecpresnum\"\n    },\n    {\n      \"name\": \"cftsubsecpresnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecpresnum\"\n    },\n    {\n      \"name\": \"cftparapresnum\"\n    },\n    {\n      \"name\": \"cftsubparapresnum\"\n    },\n    {\n      \"name\": \"cftfigpresnum\"\n    },\n    {\n      \"name\": \"cftsubfigpresnum\"\n    },\n    {\n      \"name\": \"cfttabpresnum\"\n    },\n    {\n      \"name\": \"cftsubtabpresnum\"\n    },\n    {\n      \"name\": \"cftpartaftersnum\"\n    },\n    {\n      \"name\": \"cftchapaftersnum\"\n    },\n    {\n      \"name\": \"cftsecaftersnum\"\n    },\n    {\n      \"name\": \"cftsubsecaftersnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecaftersnum\"\n    },\n    {\n      \"name\": \"cftparaaftersnum\"\n    },\n    {\n      \"name\": \"cftsubparaaftersnum\"\n    },\n    {\n      \"name\": \"cftfigaftersnum\"\n    },\n    {\n      \"name\": \"cftsubfigaftersnum\"\n    },\n    {\n      \"name\": \"cfttabaftersnum\"\n    },\n    {\n      \"name\": \"cftsubtabaftersnum\"\n    },\n    {\n      \"name\": \"cftpartaftersnumb\"\n    },\n    {\n      \"name\": \"cftchapaftersnumb\"\n    },\n    {\n      \"name\": \"cftsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubsubsecaftersnumb\"\n    },\n    {\n      \"name\": \"cftparaaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubparaaftersnumb\"\n    },\n    {\n      \"name\": \"cftfigaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubfigaftersnumb\"\n    },\n    {\n      \"name\": \"cfttabaftersnumb\"\n    },\n    {\n      \"name\": \"cftsubtabaftersnumb\"\n    },\n    {\n      \"name\": \"cftpartleader\"\n    },\n    {\n      \"name\": \"cftchapleader\"\n    },\n    {\n      \"name\": \"cftsecleader\"\n    },\n    {\n      \"name\": \"cftsubsecleader\"\n    },\n    {\n      \"name\": \"cftsubsubsecleader\"\n    },\n    {\n      \"name\": \"cftparaleader\"\n    },\n    {\n      \"name\": \"cftsubparaleader\"\n    },\n    {\n      \"name\": \"cftfigleader\"\n    },\n    {\n      \"name\": \"cftsubfigleader\"\n    },\n    {\n      \"name\": \"cfttableader\"\n    },\n    {\n      \"name\": \"cftsubtableader\"\n    },\n    {\n      \"name\": \"cftpartdotsep\"\n    },\n    {\n      \"name\": \"cftchapdotsep\"\n    },\n    {\n      \"name\": \"cftsecdotsep\"\n    },\n    {\n      \"name\": \"cftsubsecdotsep\"\n    },\n    {\n      \"name\": \"cftsubsubsecdotsep\"\n    },\n    {\n      \"name\": \"cftparadotsep\"\n    },\n    {\n      \"name\": \"cftsubparadotsep\"\n    },\n    {\n      \"name\": \"cftfigdotsep\"\n    },\n    {\n      \"name\": \"cftsubfigdotsep\"\n    },\n    {\n      \"name\": \"cfttabdotsep\"\n    },\n    {\n      \"name\": \"cftsubtabdotsep\"\n    },\n    {\n      \"name\": \"cftpartpagefont\"\n    },\n    {\n      \"name\": \"cftchappagefont\"\n    },\n    {\n      \"name\": \"cftsecpagefont\"\n    },\n    {\n      \"name\": \"cftsubsecpagefont\"\n    },\n    {\n      \"name\": \"cftsubsubsecpagefont\"\n    },\n    {\n      \"name\": \"cftparapagefont\"\n    },\n    {\n      \"name\": \"cftsubparapagefont\"\n    },\n    {\n      \"name\": \"cftfigpagefont\"\n    },\n    {\n      \"name\": \"cftsubfigpagefont\"\n    },\n    {\n      \"name\": \"cfttabpagefont\"\n    },\n    {\n      \"name\": \"cftsubtabpagefont\"\n    },\n    {\n      \"name\": \"cftpartafterpnum\"\n    },\n    {\n      \"name\": \"cftchapafterpnum\"\n    },\n    {\n      \"name\": \"cftsecafterpnum\"\n    },\n    {\n      \"name\": \"cftsubsecafterpnum\"\n    },\n    {\n      \"name\": \"cftsubsubsecafterpnum\"\n    },\n    {\n      \"name\": \"cftparaafterpnum\"\n    },\n    {\n      \"name\": \"cftsubparaafterpnum\"\n    },\n    {\n      \"name\": \"cftfigafterpnum\"\n    },\n    {\n      \"name\": \"cftsubfigafterpnum\"\n    },\n    {\n      \"name\": \"cfttabafterpnum\"\n    },\n    {\n      \"name\": \"cftsubtabafterpnum\"\n    },\n    {\n      \"name\": \"cftsetindents\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftsetindents{${1:entry}}{${2:indent}}{${3:numwidth}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumbersoff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumbersoff{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"cftpagenumberson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftpagenumberson{${1:entry}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistof[${4:within}]{${1:entry}}{${2:ext}}{${3:listofname}}\"\n      }\n    },\n    {\n      \"name\": \"newlistof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newlistof{${1:entry}}{${2:ext}}{${3:listofname}}\"\n      }\n    },\n    {\n      \"name\": \"tocdepth\"\n    },\n    {\n      \"name\": \"lotdepth\"\n    },\n    {\n      \"name\": \"lofdepth\"\n    },\n    {\n      \"name\": \"newlistentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"newlistentry[${4:within}]{${1:entry}}{${2:ext}}{${3:level-1}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecis{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecishere\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecishere{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftchapterprecistoc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cftchapterprecistoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cftlocalchange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cftlocalchange{${1:file}}{${2:pnumwidth}}{${3:tocrmarg}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"cftaddtitleline{${1:file}}{${2:kind}}{${3:title}}{${4:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftaddnumtitleline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"cftaddnumtitleline{${1:file}}{${2:kind}}{${3:num}}{${4:title}}{${5:page}}\"\n      }\n    },\n    {\n      \"name\": \"cftlofposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlofprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlotposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftlotprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttocposthook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttocprehook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftpartfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsecfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparafillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparafillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubfigfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubtabfillnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftchapname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubsubsecname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubparaname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftfigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubfigname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cfttabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftsubtabname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cftparfillskip\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tocloft#c\": [\n      \"subfigure\",\n      \"titles\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tocloft#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tocvsec2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"maxtocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxtocdepth{${1:sec}}\"\n      }\n    },\n    {\n      \"name\": \"settocdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settocdepth{${1:sec}}\"\n      }\n    },\n    {\n      \"name\": \"resettocdepth\"\n    },\n    {\n      \"name\": \"resettocdepth*\"\n    },\n    {\n      \"name\": \"setsecnumdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsecnumdepth{${1:sec}}\"\n      }\n    },\n    {\n      \"name\": \"maxsecnumdepth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxsecnumdepth{${1:sec}}\"\n      }\n    },\n    {\n      \"name\": \"resetsecnumdepth\"\n    },\n    {\n      \"name\": \"resetsecnumdepth*\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/todo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amssymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:mark text}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo*{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo*[${2:mark text}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Todo[${2:mark text}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Todo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Todo*{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"Todo*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Todo*[${2:mark text%text}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todoformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todomark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"done\"\n    },\n    {\n      \"name\": \"done\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"done[${1:done text%text}]\"\n      }\n    },\n    {\n      \"name\": \"todoopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todoclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"astodos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"astodos{${1:mark text%text}}\"\n      }\n    },\n    {\n      \"name\": \"todoenvformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"todos\"\n    },\n    {\n      \"name\": \"todoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetodo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doneitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"doneitem{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"todoitem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todoitem{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"todoenv\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/todo#c\": [\n      \"nothing\",\n      \"hide\",\n      \"superscript\",\n      \"marginpar\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/todo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/todonotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\",\n      \"if\": \"loadshadowlibrary\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setuptodonotes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuptodonotes{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"todostyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"todostyle{${1:name%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"missingfigure{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"missingfigure\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"missingfigure[${2:options%keyvals}]{${1:text%todo}}\",\n        \"keys\": [\n          \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\",\n          \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listoftodos\"\n    },\n    {\n      \"name\": \"listoftodos\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"listoftodos[${1:name}]\"\n      }\n    },\n    {\n      \"name\": \"todototoc\"\n    },\n    {\n      \"name\": \"todoformat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todoformat{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/todonotes#c\": [\n      \"disable\",\n      \"obeyDraft\",\n      \"obeyFinal\",\n      \"danish\",\n      \"german\",\n      \"ngerman\",\n      \"english\",\n      \"french\",\n      \"swedish\",\n      \"spanish\",\n      \"catalan\",\n      \"italian\",\n      \"portuguese\",\n      \"dutch\",\n      \"croatian\",\n      \"colorinlistoftodos\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"tickmarkheight=\",\n      \"textwidth=\",\n      \"textsize=${1:fontsize csname}\",\n      \"format=${1:csname}\",\n      \"prependcaption={${1:text}}\",\n      \"loadshadowlibrary\",\n      \"shadow\",\n      \"dvistyle\",\n      \"figwidth=\"\n    ],\n    \"\\\\todo,\\\\setuptodonotes,\\\\todostyle\": [\n      \"disable\",\n      \"color=\",\n      \"backgroundcolor=\",\n      \"textcolor=\",\n      \"linecolor=\",\n      \"bordercolor=\",\n      \"shadow\",\n      \"noshadow\",\n      \"tickmarkheight=\",\n      \"format=${1:csname}\",\n      \"line\",\n      \"noline\",\n      \"inline\",\n      \"noinline\",\n      \"size=${1:fontsize command}\",\n      \"list\",\n      \"nolist\",\n      \"caption={${1:text}}\",\n      \"prepend\",\n      \"noprepend\",\n      \"fancyline\",\n      \"author=${1:author}\",\n      \"inlinewidth=\",\n      \"inlinepar\",\n      \"noinlinepar\"\n    ],\n    \"\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\": [\n      \"figwidth=\",\n      \"figheight=\",\n      \"figcolor=\"\n    ],\n    \"\\\\todo,\\\\missingfigure,\\\\setuptodonotes,\\\\todostyle\": [\n      \"%todonotesstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/todonotes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tokcycle.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"tokcycle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tokcycle{${1:character code}}{${2:group-content code}}{${3:macro code}}{${4:space code}}{${5:token input}}\"\n      }\n    },\n    {\n      \"name\": \"expandedtokcycle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"expandedtokcycle{${1:character code}}{${2:group-content code}}{${3:macro code}}{${4:space code}}{${5:token input}}\"\n      }\n    },\n    {\n      \"name\": \"tokencycle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"tokencycle{${1:character code}}{${2:group-content code}}{${3:macro code}}{${4:space code}}\"\n      }\n    },\n    {\n      \"name\": \"endtokencycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tokcyclexpress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tokcyclexpress{${1:token input}}\"\n      }\n    },\n    {\n      \"name\": \"expandedtokcyclexpress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"expandedtokcyclexpress{${1:token input}}\"\n      }\n    },\n    {\n      \"name\": \"tokencyclexpress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"endtokencyclexpress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tokcycleenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"tokcycleenvironment{${1:command}}{${2:character code}}{${3:group-content code}}{${4:macro code}}{${5:space code}}\"\n      }\n    },\n    {\n      \"name\": \"xtokcycleenvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"xtokcycleenvironment{${1:command}}{${2:character code}}{${3:group-content code}}{${4:macro code}}{${5:space code}}{${6:begin code}}{${7:end code}}\"\n      }\n    },\n    {\n      \"name\": \"tcafterenv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcafterenv{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Characterdirective\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Characterdirective{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Groupdirective\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Groupdirective{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Macrodirective\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Macrodirective{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Spacedirective\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Spacedirective{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"resetCharacterdirective\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetGroupdirective\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetMacrodirective\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetSpacedirective\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettokcycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cytoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addcytoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addcytoks{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"addcytoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addcytoks[${2:<integer> or x}]{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"ifstripgrouping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stripgroupingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stripgroupingfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"processtoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"processtoks{${1:tokens}}\"\n      }\n    },\n    {\n      \"name\": \"groupedcytoks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"groupedcytoks{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"stripimplicitgroupingcase\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stripimplicitgroupingcase{0, 1, or -1}\"\n      }\n    },\n    {\n      \"name\": \"tcpopuntil\"\n    },\n    {\n      \"name\": \"ifspacepopped\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacepoppedtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacepoppedfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcpush\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcpush{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tcpush\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcpush[${2:<integer> or x}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tcpushgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tcpushgroup{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tcpushgroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tcpushgroup[${2:<integer> or x}]{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"truncategroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"truncategroupiftokis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"truncategroupiftokis{${1:token}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"truncatecycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"truncatecycleiftokis\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"truncatecycleiftokis{${1:token}}{${2:false code}}\"\n      }\n    },\n    {\n      \"name\": \"settcEscapechar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settcEscapechar{${1:escape token}}\"\n      }\n    },\n    {\n      \"name\": \"ifactivetok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activetoktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activetokfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifactivetokunexpandable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activetokunexpandabletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activetokunexpandablefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifactivechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activechartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"activecharfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifimplicittok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"implicittoktrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"implicittokfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcsptoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theactivespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcatSIX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catSIXtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"catSIXfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"implicitsixtok\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tctestifcon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tctestifcon{${1:TeX if condition}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tctestifx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tctestifx{${1:\\\\ifx comparison tokens}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"tctestifnum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tctestifnum{${1:\\\\ifnum condition}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"aftertokcycle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftertokcycle{${1:actions}}\"\n      }\n    },\n    {\n      \"name\": \"tcendgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settcGrouping\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tokenizer.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GetTokens\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GetTokens{${1:csname1}}{${2:csname2}}{${3:source}}\"\n      }\n    },\n    {\n      \"name\": \"TrimSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrimSpaces{${1:source}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tokenizer#c\": [\n      \"trim\",\n      \"notrim\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tokenizer#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tolkienfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"annatar\"\n    },\n    {\n      \"name\": \"Arnor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arnor{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Beleriand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Beleriand{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"cirthfont\"\n    },\n    {\n      \"name\": \"Daeron\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Daeron{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"defaultbase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eldamar\"\n    },\n    {\n      \"name\": \"eleven\"\n    },\n    {\n      \"name\": \"Erebor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Erebor{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Eregion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Eregion{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"es\"\n    },\n    {\n      \"name\": \"fonterebor\"\n    },\n    {\n      \"name\": \"fontquenya\"\n    },\n    {\n      \"name\": \"fontsindarin\"\n    },\n    {\n      \"name\": \"Gondor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Gondor{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Hobbit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Hobbit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Mazarbul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mazarbul{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Moria\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Moria{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"noldor\"\n    },\n    {\n      \"name\": \"of\"\n    },\n    {\n      \"name\": \"ofthe\"\n    },\n    {\n      \"name\": \"Orthmode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Orthmode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"p\"\n    },\n    {\n      \"name\": \"parmaite\"\n    },\n    {\n      \"name\": \"Phonemic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Phonemic{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Quenya\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Quenya{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"QuenyaA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuenyaA{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Quenyagen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Quenyagen{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"Quenyared\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Quenyared{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"reversedigits\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"reversedigits[${2:base}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"reversedigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reversedigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"s\"\n    },\n    {\n      \"name\": \"sa\"\n    },\n    {\n      \"name\": \"Sarati\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Sarati{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"SaratiA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SaratiA{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"saratifont\"\n    },\n    {\n      \"name\": \"se\"\n    },\n    {\n      \"name\": \"si\"\n    },\n    {\n      \"name\": \"so\"\n    },\n    {\n      \"name\": \"su\"\n    },\n    {\n      \"name\": \"sunrune\"\n    },\n    {\n      \"name\": \"sy\"\n    },\n    {\n      \"name\": \"Tehtamode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Tehtamode{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ten\"\n    },\n    {\n      \"name\": \"tengalt\"\n    },\n    {\n      \"name\": \"tengfont\"\n    },\n    {\n      \"name\": \"The\"\n    },\n    {\n      \"name\": \"THE\"\n    },\n    {\n      \"name\": \"twelve\"\n    },\n    {\n      \"name\": \"valmarfont\"\n    },\n    {\n      \"name\": \"Valmaric\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Valmaric{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"ValmaricA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ValmaricA{${1:Tengwar text}}\"\n      }\n    },\n    {\n      \"name\": \"arnorfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beleriandfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirthabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirthE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cirthfancysetup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cirthfancysetup{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"cirthS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daeronfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"donothing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"donothing{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"elvishoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ereborfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eregionfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gondorfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hobbitfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mazarbulfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"moriafamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orthfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phonemicfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quenyaabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quenyaafamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quenyafamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quenyagenfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quenyaredfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saratiabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savecolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savecomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveexclam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savehat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveleftparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveperiod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savequest\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saverightparen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savescolon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sindarinabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tehtafamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tengwarabbrevs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarEA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarNA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tengwarnumbering\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarPA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarQA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TengwarSA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textlatin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetengwarnumctrA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetengwarnumctrB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetengwarnumctrC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"arnor\"\n    },\n    {\n      \"name\": \"barsarati\"\n    },\n    {\n      \"name\": \"barsaratia\"\n    },\n    {\n      \"name\": \"beleriand\"\n    },\n    {\n      \"name\": \"daeron\"\n    },\n    {\n      \"name\": \"eregion\"\n    },\n    {\n      \"name\": \"fancydaeron\"\n    },\n    {\n      \"name\": \"fancyerebor\"\n    },\n    {\n      \"name\": \"fancyeregion\"\n    },\n    {\n      \"name\": \"fancyhobbit\"\n    },\n    {\n      \"name\": \"fancymoria\"\n    },\n    {\n      \"name\": \"gondor\"\n    },\n    {\n      \"name\": \"mazarbul\"\n    },\n    {\n      \"name\": \"moria\"\n    },\n    {\n      \"name\": \"orthmode\"\n    },\n    {\n      \"name\": \"phonemic\"\n    },\n    {\n      \"name\": \"quenya\"\n    },\n    {\n      \"name\": \"quenyaa\"\n    },\n    {\n      \"name\": \"quenyagen\"\n    },\n    {\n      \"name\": \"quenyared\"\n    },\n    {\n      \"name\": \"sarati\"\n    },\n    {\n      \"name\": \"saratia\"\n    },\n    {\n      \"name\": \"tehtamode\"\n    },\n    {\n      \"name\": \"valmarica\"\n    },\n    {\n      \"name\": \"valmaric\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tolkienfonts#c\": [\n      \"sarati\",\n      \"valmaric\",\n      \"eregion\",\n      \"daeron\",\n      \"moria\",\n      \"quenya\",\n      \"quenyagen\",\n      \"quenyared\",\n      \"quenyaa\",\n      \"gondor\",\n      \"arnor\",\n      \"beleriand\",\n      \"orthmode\",\n      \"mazarbul\",\n      \"tehtamode\",\n      \"phonemic\",\n      \"erebor\",\n      \"hobbit\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tolkienfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tone.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tipa\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tone{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rtone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rtone{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"stone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stone{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tonevalue.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"contour\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"listofitems\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"untpoint\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"untpoint{${1:tone value}}{${2:tone name}}\"\n      }\n    },\n    {\n      \"name\": \"untpoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"untpoint[${3:options%keyvals}]{${1:tone value}}{${2:tone name}}\",\n        \"keys\": [\n          \"\\\\untpoint#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"linkuntpoints\",\n      \"arg\": {\n        \"format\": \"{{}{}}{{}{}}\",\n        \"snippet\": \"linkuntpoints{{${1:toneval1}}{${2:tonename1}}}{{${3:toneval2}}{${4:tonename2}}}\"\n      }\n    },\n    {\n      \"name\": \"linkuntpoints\",\n      \"arg\": {\n        \"format\": \"[]{{}{}}{{}{}}\",\n        \"snippet\": \"linkuntpoints[${5:options}]{{${1:toneval1}}{${2:tonename1}}}{{${3:toneval2}}{${4:tonename2}}}\",\n        \"keys\": [\n          \"\\\\linkuntpoints#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"drawuntpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"drawuntpoint{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}{${8:arg8}}\"\n      }\n    },\n    {\n      \"name\": \"drawuntpoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"drawuntpoint[${9:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}{${6:arg6}}{${7:arg7}}{${8:arg8}}\"\n      }\n    },\n    {\n      \"name\": \"len\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sendiauToListStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sendiauToListStr{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sendiaulistStr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sendiaulist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesumOfPitchHeights\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toneVisualisationFontCmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xjoinbycomma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xstart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ystart\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"untVisualisation\"\n    },\n    {\n      \"name\": \"untVisualisation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{untVisualisation}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/tonevalue#c\": [\n      \"fontcmd=${1:font commands}\",\n      \"draft\",\n      \"contourlength=\",\n      \"contournumber=${1:integer}\",\n      \"defaultcolors\"\n    ],\n    \"\\\\begin{untVisualisation}#c\": [\n      \"minmax={${1:min,max}}\",\n      \"scale=${1:factor}\",\n      \"showlabels\"\n    ],\n    \"\\\\untpoint#c\": [\n      \"stem\",\n      \"label=${1|above,below,left,right,above left,above right,below left,below right|}\",\n      \"bgcolor=\",\n      \"xshift=\",\n      \"yshift=\",\n      \"scale=${1:factor}\",\n      \"tikzoptions={${1:TikZ options}}\"\n    ],\n    \"\\\\linkuntpoints#c\": [\n      \"color=\",\n      \"bend=${1|bend left,bend right|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tonevalue#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/toolbox.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"toolboxMakeDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxMakeDef{${1:name}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxMakeDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"toolboxMakeDef[${3:prefix}]{${1:name}}{${2:replacement}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxFreeDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxFreeDef{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxFreeDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toolboxFreeDef[${2:prefix}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxFreeDef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxFreeDef*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxFreeDef*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"toolboxFreeDef*[${2:prefix}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxGobbleNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxGobbleNext{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxIfNextToken\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxIfNextToken{${1:token}}{${2:if}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxToken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toolboxIfNextGobbling\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxIfNextGobbling{${1:token}}{${2:if}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxIfEmpty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxIfEmpty{${1:arg}}{${2:if}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxIfX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"toolboxIfX{${1:arg1}}{${2:arg2}}{${3:if}}{${4:else}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxIfElse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxIfElse{${1:ifcmd}}{${2:if}}{${3:else}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxLoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxLoop{${1:items}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxLoopName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxLoopName{${1:name}}{${2:items}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxTokenLoop\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxTokenLoop{${1:tokens}}{${2:action}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxTokenLoopName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"toolboxTokenLoopName{${1:name}}{${2:tokens}}{${3:action}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toolboxSplitAt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"toolboxSplitAt{${1:argument}}{${2:search}}{${3:\\\\beforestring%cmd}}{${4:\\\\afterstring%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxSplitAt*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"toolboxSplitAt*{${1:argument}}{${2:search}}{${3:\\\\beforestring%cmd}}{${4:\\\\afterstring%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxMakeSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxMakeSplit{${1:search}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxMakeSplit*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxMakeSplit*{${1:search}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxFreeSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxFreeSplit{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxMakeHarmless\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxMakeHarmless{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxDropBrace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxDropBrace{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxNewiftrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxNewiftrue{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxNewiffalse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxNewiffalse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxNewifTrue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxNewifTrue{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxNewifFalse\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxNewifFalse{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxEmpty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toolboxSpaceToken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toolboxFirstOfTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxFirstOfTwo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxSecondOfTwo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"toolboxSecondOfTwo{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"toolboxGobbleArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"toolboxGobbleArg{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/topcapt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short text%text}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/topcoman.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareSlantedCapitalGreekLetters\"\n    },\n    {\n      \"name\": \"textormath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textormath{${1:text code}}{${2:math code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"ped\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ped{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ap{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"diff\"\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:unit%formula}}\"\n      }\n    },\n    {\n      \"name\": \"gei\"\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"gradi\"\n    },\n    {\n      \"name\": \"listing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listing{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"fakeSC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakeSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"simulatedSC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"simulatedSC{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DisableFigTabNames\"\n    },\n    {\n      \"name\": \"EnableFigTabNames\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/topfloat.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"topI\"\n    },\n    {\n      \"name\": \"endtopI\"\n    },\n    {\n      \"name\": \"topII\"\n    },\n    {\n      \"name\": \"endtopII\"\n    },\n    {\n      \"name\": \"tabcap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabcap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabcap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tabcap[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figcap{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"figcap\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"figcap[${2:width}]{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"topfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:number}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/topfront.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monografia{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titolo{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titolo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"titolo[${2:short title%text}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"sottotitolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sottotitolo{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"materia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"materia{${1:discipline%text}}\"\n      }\n    },\n    {\n      \"name\": \"Materia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Materia{${1:discipline%text}}\"\n      }\n    },\n    {\n      \"name\": \"direttore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"direttore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"coordinatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coordinatore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"QualificaDirettore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QualificaDirettore{${1:director's function%text}}\"\n      }\n    },\n    {\n      \"name\": \"relatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"relatore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"secondorelatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondorelatore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"terzorelatore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"terzorelatore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tutore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tutore{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"TutorName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TutorName{${1:tutor's position%text}}\"\n      }\n    },\n    {\n      \"name\": \"AdvisorName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AdvisorName{${1:advisor's title%text}}\"\n      }\n    },\n    {\n      \"name\": \"CoAdvisorName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CoAdvisorName{${1:coadvisor's title%text}}\"\n      }\n    },\n    {\n      \"name\": \"candidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candidato{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"candidata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"candidata{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"secondocandidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondocandidato{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"secondacandidata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"secondacandidata{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"terzocandidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"terzocandidato{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"terzacandidata\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"terzacandidata{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"CandidateName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateName{${1:candidate's status%text}}\"\n      }\n    },\n    {\n      \"name\": \"sedutadilaurea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sedutadilaurea{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"esamedidottorato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"esamedidottorato{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ciclodidottorato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ciclodidottorato{${1:cycle}}\"\n      }\n    },\n    {\n      \"name\": \"CycleName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CycleName{${1:cycle name%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodilaurea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodilaurea{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodidottorato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodidottorato{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"CorsoDiLaureaIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CorsoDiLaureaIn{${1:degree generic name%text}}\"\n      }\n    },\n    {\n      \"name\": \"TesiDiLaurea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TesiDiLaurea{${1:thesis generic name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeMonografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeMonografia{${1:bachelor's report name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeDissertazione\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeDissertazione{${1:PhD thesis name%text}}\"\n      }\n    },\n    {\n      \"name\": \"InName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InName{${1:in name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeAnnoAccademico\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeAnnoAccademico{${1:academic year name%text}}\"\n      }\n    },\n    {\n      \"name\": \"logosede\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"logosede{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"logosede\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"logosede[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"retrofrontespizio\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"retrofrontespizio{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"annoaccademico\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"annoaccademico{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"ateneo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ateneo{${1:university generic name%text}}\"\n      }\n    },\n    {\n      \"name\": \"nomeateneo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nomeateneo{${1:university proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"scuoladidottorato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"scuoladidottorato{${1:PhD school name%text}}\"\n      }\n    },\n    {\n      \"name\": \"setlogodistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlogodistance{${1:distance%l}}\"\n      }\n    },\n    {\n      \"name\": \"struttura\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"struttura{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"struttura\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"struttura[${2:number}]{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"facolta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"facolta{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"facolta\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"facolta[${2:number}]{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"FacoltaDi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FacoltaDi{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"StrutturaDidattica\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrutturaDidattica{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"DottoratoIn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DottoratoIn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeTutoreAziendale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeTutoreAziendale{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NomePrimoTomo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomePrimoTomo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeSecondoTomo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeSecondoTomo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeTerzoTomo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeTerzoTomo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeQuartoTomo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeQuartoTomo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AnnoAccademico\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BoxCandidati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BoxRelatori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Candidata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Candidate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Candidati\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Candidato\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Correlatore\"\n    },\n    {\n      \"name\": \"Correlatori\"\n    },\n    {\n      \"name\": \"EnDash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getseduta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headstrut\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IDlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrimoTomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printloghi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QuartoTomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relatore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Relatori\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SecondoTomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TerzoTomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetomo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TPTmaybestar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TPTmaybestar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Tutore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tutoreaziendale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tutoreaziendale{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"classicafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classicatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Direttorefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Direttoretrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottoralefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottoraletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottoratofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dottoratotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evenboxesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evenboxestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femminilefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femminiletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifclassica\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifDirettore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdottorale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdottorato\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifevenboxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffemminile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmagistrale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifmonografia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifplurale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifScuDo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifsecondaria\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTOPfront\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftriennale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magistralefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magistraletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monografiafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"monografiatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluralefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pluraletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScuDofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ScuDotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondariafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondariatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPfrontfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPfronttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triennalefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triennaletrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"frontespizio\"\n    },\n    {\n      \"name\": \"frontespizio*\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/topfront#c\": [\n      \"evenboxes\",\n      \"cucitura\",\n      \"14pt\",\n      \"classica\",\n      \"autoretitolo\",\n      \"oldstyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/topfront#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/topiclongtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endfirstfoot\"\n    },\n    {\n      \"name\": \"endlastfoot\"\n    },\n    {\n      \"name\": \"endfirsthead\"\n    },\n    {\n      \"name\": \"endfoot\"\n    },\n    {\n      \"name\": \"endhead\"\n    },\n    {\n      \"name\": \"Topic\"\n    },\n    {\n      \"name\": \"Topic\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Topic[${1:content}]\"\n      }\n    },\n    {\n      \"name\": \"TopicLine\"\n    },\n    {\n      \"name\": \"TopicSetContinuationCode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TopicSetContinuationCode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"TopicSetVPos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TopicSetVPos{${1:vpos%keyvals}}\",\n        \"keys\": [\n          \"\\\\TopicSetVPos\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TopicSetWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TopicSetWidth{${1:width spec%keyvals}}\",\n        \"keys\": [\n          \"\\\\TopicSetWidth\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"topiclongtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\TopicSetVPos\": [\n      \"b\",\n      \"c\",\n      \"t\"\n    ],\n    \"\\\\TopicSetWidth\": [\n      \"=\",\n      \"*\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/topsection.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"topsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topsection{${1:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/toptesi-scudo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"lscape\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"siunitx\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"nomencl\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"imakeidx\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CClicence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CClicence{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CycleNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CycleNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"diff\"\n    },\n    {\n      \"name\": \"Disclaimer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Disclaimer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"eu\"\n    },\n    {\n      \"name\": \"ExaminationDate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExaminationDate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"ExaminerList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExaminerList{${1:list of examiners}}\"\n      }\n    },\n    {\n      \"name\": \"fivestars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gei\"\n    },\n    {\n      \"name\": \"ifmybibstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iu\"\n    },\n    {\n      \"name\": \"ju\"\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"mybibstylefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mybibstyletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ndissertation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ndissertation{${1:dissertation name%text}}\"\n      }\n    },\n    {\n      \"name\": \"Ndoctoralprogram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ndoctoralprogram{${1:doctoral program%text}}\"\n      }\n    },\n    {\n      \"name\": \"Nexaminationcommittee\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nexaminationcommittee{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"Nlocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Nlocation{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"NSupervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NSupervisor{${1:singular%text}}{${2:plural%text}}\"\n      }\n    },\n    {\n      \"name\": \"PhDschoolLogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"PhDschoolLogo[${2:height}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"PhDschoolLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PhDschoolLogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"printloghi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnomencl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printnomencl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printnomencl[${1:space}]\"\n      }\n    },\n    {\n      \"name\": \"ProgramName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProgramName{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"setlogodistance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlogodistance{${1:distance%l}}\"\n      }\n    },\n    {\n      \"name\": \"Signature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Signature{${1:signature}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SupervisorList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SupervisorList{${1:list of supervisors}}\"\n      }\n    },\n    {\n      \"name\": \"SupervisorNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SupervisorNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeauthor*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeauthor*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeauthor*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeauthor*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citeyearpar[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citeyearpar[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citeyearpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeyearpar{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citet*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citet*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citet*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citet*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citep*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citep*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citep*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citep*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealt*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealt*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealt*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealt*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citealp*[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citealp*[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citealp*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citealp*{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"Citefullauthor[${2:prenote}][${3:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Citefullauthor[${2:postnote}]{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"Citefullauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Citefullauthor{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"defcitealias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defcitealias{${1:bibid}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"citetalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citetalias{${1:bibid}}\"\n      }\n    },\n    {\n      \"name\": \"citepalias\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citepalias{${1:bibid}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ThesisTitlePage\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/toptesi#c\": [\n      \"mybibliostyle\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/toptesi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/toptesi-sss.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multirow\"\n    },\n    {\n      \"name\": \"indentfirst\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AnnoScolastico\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AnnoScolastico{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"femminilefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"femminiletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IDlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifBlank\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifBlank{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"iffemminile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IndirizzoMiur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IndirizzoMiur{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"NomeCandidato\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeCandidato{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"NomeScuola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeScuola{${1:school specific name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeTesina\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeTesina{${1:document name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NumeroCommissione\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NumeroCommissione{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"OpzioneMiur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OpzioneMiur{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Presidente\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Presidente{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"SedeScuola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SedeScuola{${1:school address}}\"\n      }\n    },\n    {\n      \"name\": \"sottotitolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sottotitolo{${1:subtitle%text}}\"\n      }\n    },\n    {\n      \"name\": \"SSSLogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SSSLogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"studente\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studente{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"studentessa\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"studentessa{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"TipoScuola\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TipoScuola{${1:school generic name%text}}\"\n      }\n    },\n    {\n      \"name\": \"titolo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titolo{${1:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"FrontespizioTesina\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/toptesi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"topfront\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"topfront\"\n    },\n    {\n      \"name\": \"topcoman\"\n    },\n    {\n      \"name\": \"frontespizio\",\n      \"if\": \"tipotesi=frontespizio\"\n    },\n    {\n      \"name\": \"toptesi-scudo\",\n      \"if\": \"tipotesi=scudo\"\n    },\n    {\n      \"name\": \"toptesi-sss\",\n      \"if\": \"tipotesi=secondaria\"\n    },\n    {\n      \"name\": \"toptesi-sss\",\n      \"if\": \"tipotesi=sss\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodistudi\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodistudi{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"giorno\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"giorno{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"luogo\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luogo{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"NomeAteneo\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeAteneo{${1:university proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeCorsoDiStudi\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NomeElaborato\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeElaborato{${1:thesis name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeRelatore\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NomeRelatore{${1:singular}}{${2:plural}}\"\n      }\n    },\n    {\n      \"name\": \"StrutturaDi\",\n      \"if\": \"tipotesi=triennale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrutturaDi{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"corsodistudi\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"corsodistudi{${1:degree proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"giorno\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"giorno{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"luogo\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"luogo{${1:location}}\"\n      }\n    },\n    {\n      \"name\": \"NomeAteneo\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeAteneo{${1:university proper name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeCorsoDiStudi\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NomeElaborato\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NomeElaborato{${1:thesis name%text}}\"\n      }\n    },\n    {\n      \"name\": \"NomeRelatore\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NomeRelatore{${1:singular}}{${2:plural}}\"\n      }\n    },\n    {\n      \"name\": \"StrutturaDi\",\n      \"if\": \"tipotesi=monografia\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrutturaDi{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"CandidateNames\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CandidateNames{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"TitoloListaCandidati\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitoloListaCandidati{${1:candidate list headings%text}}\"\n      }\n    },\n    {\n      \"name\": \"backmatter\"\n    },\n    {\n      \"name\": \"captionof\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"captionof{${1:float type}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"english\"\n    },\n    {\n      \"name\": \"ExtendCaptions\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExtendCaptions{${1:language}}{${2:summary title%text}}{${3:acknowledgements title%text}}\"\n      }\n    },\n    {\n      \"name\": \"figurespagetrue\"\n    },\n    {\n      \"name\": \"frontmatter\"\n    },\n    {\n      \"name\": \"goodpagebreak\"\n    },\n    {\n      \"name\": \"goodpagebreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"goodpagebreak[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"indici\"\n    },\n    {\n      \"name\": \"indici\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"indici[${1:pagestyle}]\"\n      }\n    },\n    {\n      \"name\": \"inglese\"\n    },\n    {\n      \"name\": \"italiano\"\n    },\n    {\n      \"name\": \"mainmatter\"\n    },\n    {\n      \"name\": \"nota\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nota[${2:mark}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nota\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nota{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NoteWhiteLine\"\n    },\n    {\n      \"name\": \"paginavuota\"\n    },\n    {\n      \"name\": \"ringraziamenti\"\n    },\n    {\n      \"name\": \"setbindingcorrection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbindingcorrection{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"sommario\"\n    },\n    {\n      \"name\": \"tablespagetrue\"\n    },\n    {\n      \"name\": \"tomo\"\n    },\n    {\n      \"name\": \"captionSD*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionSD*[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionSD*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionSD*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionSD\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"captionSD[${2:short text%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"captionSD\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"captionSD{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SDcaption\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SDcaption[${3:short text%text}]{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"SDcaption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SDcaption{${1:text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"SDimage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SDimage{${1:image commands}}\"\n      }\n    },\n    {\n      \"name\": \"acknowledgements\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acknowledgename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allcontents\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"allcontents[${1:pagestyle}]\"\n      }\n    },\n    {\n      \"name\": \"blankpagestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blankpagestyle{${1:pagestyle}}\"\n      }\n    },\n    {\n      \"name\": \"captionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterbibliographyfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chapterbibliographytrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"customfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptypage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figurespagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmatterfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frontmattertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headWarn{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ifchapterbibliography\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifcustom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifempty\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifempty{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iffigurespage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffrontmatter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflibro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifNumberFloat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnumeriromani\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftablespage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTOPfolioinhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTOPnocenterfolio\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTOPnocenterhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifTOPnumerazioneromana\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lapagina\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoValidTipo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoValidTipo{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"NumberFloatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NumberFloattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numeriromanifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numeriromanitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"phantomsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveaddvspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDcapbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDcaptionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDfigbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDfigurewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDlinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDtabular\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SDtabular{${1:image commands}}\"\n      }\n    },\n    {\n      \"name\": \"summary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"summaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tablespagefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theNumberSD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toctrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPfolioinheadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPfolioinheadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnocenterfoliofalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnocenterfoliotrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnocenterheadfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnocenterheadtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnumerazioneromanafalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPnumerazioneromanatrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TOPsecnumdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TROF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TROFF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TRON\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=triennale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=triennale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=monografia\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=monografia\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=magistrale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=magistrale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=dottorale\"\n    },\n    {\n      \"name\": \"ThesisTitlePage\",\n      \"if\": \"tipotesi=dottorale\",\n      \"arg\": {\n        \"format\": \"*\",\n        \"snippet\": \"*\"\n      }\n    },\n    {\n      \"name\": \"citazioni\"\n    },\n    {\n      \"name\": \"dedica\"\n    },\n    {\n      \"name\": \"dedication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"interlinea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"pdfxmetadata\"\n    },\n    {\n      \"name\": \"wittysentences\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SDbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:float type}}\"\n      }\n    },\n    {\n      \"name\": \"SDbox\",\n      \"arg\": {\n        \"format\": \"{}*\",\n        \"snippet\": \"{${1:float type}}*\"\n      }\n    },\n    {\n      \"name\": \"SDbox\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:float type}}[${2:width factor}]\"\n      }\n    },\n    {\n      \"name\": \"SDbox\",\n      \"arg\": {\n        \"format\": \"{}*[]\",\n        \"snippet\": \"{${1:float type}}*[${2:width factor}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/toptesi#c\": [\n      \"cucitura=\",\n      \"corpo=\",\n      \"chapterbib\",\n      \"evenboxes\",\n      \"libro\",\n      \"stile=${1|standard,classica,trieste|}\",\n      \"autoretitolo\",\n      \"oldstyle\",\n      \"nocenterfolio\",\n      \"nocenterhead\",\n      \"folioinhead\",\n      \"numerazioneromana\",\n      \"tipotesi=${1|topfront,frontespizio,triennale,monografia,magistrale,dottorale,scudo,secondaria,sss,custom|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/toptesi#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/totalcount.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\",\n      \"if\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"totalenumis\",\n      \"if\": \"enumi\"\n    },\n    {\n      \"name\": \"iftotalenumis\",\n      \"if\": \"enumi\"\n    },\n    {\n      \"name\": \"totalenumiis\",\n      \"if\": \"enumii\"\n    },\n    {\n      \"name\": \"iftotalenumiis\",\n      \"if\": \"enumii\"\n    },\n    {\n      \"name\": \"totalenumiiis\",\n      \"if\": \"enumiii\"\n    },\n    {\n      \"name\": \"iftotalenumiiis\",\n      \"if\": \"enumiii\"\n    },\n    {\n      \"name\": \"totalenumivs\",\n      \"if\": \"enumiv\"\n    },\n    {\n      \"name\": \"iftotalenumivs\",\n      \"if\": \"enumiv\"\n    },\n    {\n      \"name\": \"totalequations\",\n      \"if\": \"equation\"\n    },\n    {\n      \"name\": \"iftotalequations\",\n      \"if\": \"equation\"\n    },\n    {\n      \"name\": \"totalfigures\",\n      \"if\": \"figure\"\n    },\n    {\n      \"name\": \"iftotalfigures\",\n      \"if\": \"figure\"\n    },\n    {\n      \"name\": \"totalfootnotes\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"iftotalfootnotes\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"totalmpfns\",\n      \"if\": \"mpfn\"\n    },\n    {\n      \"name\": \"iftotalmpfns\",\n      \"if\": \"mpfn\"\n    },\n    {\n      \"name\": \"totalmpfootnotes\",\n      \"if\": \"mpfootnote\"\n    },\n    {\n      \"name\": \"iftotalmpfootnotes\",\n      \"if\": \"mpfootnote\"\n    },\n    {\n      \"name\": \"totalparagraphs\",\n      \"if\": \"paragraph\"\n    },\n    {\n      \"name\": \"iftotalparagraphs\",\n      \"if\": \"paragraph\"\n    },\n    {\n      \"name\": \"totalparts\",\n      \"if\": \"part\"\n    },\n    {\n      \"name\": \"iftotalparts\",\n      \"if\": \"part\"\n    },\n    {\n      \"name\": \"totalsections\",\n      \"if\": \"section\"\n    },\n    {\n      \"name\": \"iftotalsections\",\n      \"if\": \"section\"\n    },\n    {\n      \"name\": \"totalsubparagraphs\",\n      \"if\": \"subparagraph\"\n    },\n    {\n      \"name\": \"iftotalsubparagraphs\",\n      \"if\": \"subparagraph\"\n    },\n    {\n      \"name\": \"totalsubsections\",\n      \"if\": \"subsection\"\n    },\n    {\n      \"name\": \"iftotalsubsections\",\n      \"if\": \"subsection\"\n    },\n    {\n      \"name\": \"totalsubsubsections\",\n      \"if\": \"subsubsection\"\n    },\n    {\n      \"name\": \"iftotalsubsubsections\",\n      \"if\": \"subsubsection\"\n    },\n    {\n      \"name\": \"totaltables\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"iftotaltables\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"totalchapters\",\n      \"if\": \"chapter\"\n    },\n    {\n      \"name\": \"iftotalchapters\",\n      \"if\": \"chapter\"\n    },\n    {\n      \"name\": \"totalpages\",\n      \"if\": \"page\"\n    },\n    {\n      \"name\": \"iftotalpages\",\n      \"if\": \"page\"\n    },\n    {\n      \"name\": \"DeclareTotalCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareTotalCounter{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/totalcount#c\": [\n      \"${1:counter}\",\n      \"xspace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/totalcount#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/totcount.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"regtotcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"regtotcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"regtotcounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"regtotcounter[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\regtotcounter,\\\\newtotcounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newtotcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newtotcounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"newtotcounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newtotcounter[${2:option%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\regtotcounter,\\\\newtotcounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"total\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"total{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"totvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"totvalue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"usetotcountfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetotcountfile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\regtotcounter,\\\\newtotcounter\": [\n      \"auxfile=${1:file}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/totpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"everyshi\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theTotPages\"\n    },\n    {\n      \"name\": \"TotPerSheet\"\n    },\n    {\n      \"name\": \"TotSheets\"\n    },\n    {\n      \"name\": \"ifTotPagesToDvi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TotPagesToDvitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TotPagesToDvifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifPagesPerSheet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PagesPerSheettrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PagesPerSheetfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/totpages#c\": [\n      \"dvi\",\n      \"nodvi\",\n      \"pagespersheet=${1:integer}\",\n      \"nopagespersheet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/totpages#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/trace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"traceon\"\n    },\n    {\n      \"name\": \"traceoff\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/trace#c\": [\n      \"logonly\",\n      \"full\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/trace#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tracefnt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tracefnt#c\": [\n      \"errorshow\",\n      \"warningshow\",\n      \"infoshow\",\n      \"loading\",\n      \"debugshow\",\n      \"pausing\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tracefnt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tracking.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"track\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"track{${1:length}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"fittrack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fittrack{${1:length}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"ratiotrack\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ratiotrack{${1:ratio}}{${2:string}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tracklang-scripts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tracklang\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TrackLangScriptMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"TrackLangScriptMap{${1:letter code}}{${2:numeric code}}{${3:script name}}{${4:direction}}{${5:parent script}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptAlphaToNumeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangScriptAlphaToNumeric{${1:alpha code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptIfKnownAlpha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangScriptIfKnownAlpha{${1:alpha code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptNumericToAlpha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangScriptNumericToAlpha{${1:numeric code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptIfKnownNumeric\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangScriptIfKnownNumeric{${1:numeric code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptAlphaToName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangScriptAlphaToName{${1:alpha code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptAlphaToDir\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangScriptAlphaToDir{${1:alpha code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptSetParent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangScriptSetParent{${1:alpha code}}{${2:parent alpha code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptGetParent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangScriptGetParent{${1:alpha code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangScriptIfHasParent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangScriptIfHasParent{${1:alpha code}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tracklang.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TrackPredefinedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackPredefinedDialect{${1:dialect label}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLocale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLocale{${1:locale}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLanguageTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLanguageTag{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"TrackIfKnownLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackIfKnownLanguage{${1:tag}}{${2:success code}}{${3:fail code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangFromEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangShowWarningsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangShowWarningstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangEnvLang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangEnvTerritory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangEnvCodeSet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangEnvModifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangQueryEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangQueryOtherEnv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangQueryOtherEnv{${1:env-name}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangParseFromEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnyTrackedLanguages\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AnyTrackedLanguages{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectFromLanguageTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetTrackedDialectFromLanguageTag{${1:tag}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"TrackedDialectClosestSubMatch\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ForEachTrackedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachTrackedDialect{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachTrackedLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachTrackedLanguage{${1:cmd}}{${2:body}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfTrackedLanguage{${1:language-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfTrackedDialect{${1:dialect-label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackedLanguageFromDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackedLanguageFromDialect{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"TrackedDialectsFromLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackedDialectsFromLanguage{${1:root language label}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedLanguageHasIsoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTrackedLanguageHasIsoCode{${1:code type}}{${2:label}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedIsoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTrackedIsoCode{${1:code type}}{${2:code}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackedLanguageFromIsoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackedLanguageFromIsoCode{${1:code type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackedIsoCodeFromLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackedIsoCodeFromLanguage{${1:code type}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"TwoLetterIsoCountryCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TwoLetterIsoLanguageCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThreeLetterIsoLanguageCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ThreeLetterExtIsoLanguageCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetTrackedLanguageTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedLanguageTag{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectModifier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectModifier{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"IfHasTrackedDialectModifier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHasTrackedDialectModifier{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectVariant{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"IfHasTrackedDialectVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHasTrackedDialectVariant{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectScript{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"IfHasTrackedDialectScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHasTrackedDialectScript{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetDefaultScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetDefaultScript{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedDialectIsScriptCs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTrackedDialectIsScriptCs{${1:dialect}}{${2:cs}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectSubLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectSubLang{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"IfHasTrackedDialectSubLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHasTrackedDialectSubLang{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectAdditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectAdditional{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"IfHasTrackedDialectAdditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHasTrackedDialectAdditional{${1:dialect}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedLanguageFileExists\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfTrackedLanguageFileExists{${1:dialect}}{${2:prefix}}{${3:suffix}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentTrackedTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangRequireDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangRequireDialect{${1:pkgname}}{${2:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangRequireDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"TrackLangRequireDialect[${3:load code}]{${1:pkgname}}{${2:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangRequireDialectPrefix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedLanguage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedRegion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedIsoCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialectModifier\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialectVariant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialectSubLang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialectAdditional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedLanguageTag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedDialectScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangProvidesResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangProvidesResource{${1:tag}}{${2:version info}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangRequireResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangRequireResource{${1:tag}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangEncodingName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangRequireResourceOrDo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangRequireResourceOrDo{${1:tag}}{${2:code1}}{${3:code2}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangRequestResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangRequestResource{${1:tag}}{${2:not found code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangAddToHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangAddToHook{${1:code}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangAddToCaptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangAddToCaptions{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangRedefHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TrackLangRedefHook{${1:code}}{${2:type}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangAddExtraScriptFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangAddExtraScriptFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangAddExtraRegionFile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangAddExtraRegionFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"TrackPredefinedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackPredefinedDialect{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"SetCurrentTrackedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetCurrentTrackedDialect{${1:dialect}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangNewLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"TrackLangNewLanguage{${1:language}}{${2:639-1 code}}{${3:639-2 (${8:T})}}{${4:639-2 (${9:B})}}{${5:639-3}}{${6:3166-1}}{${7:default script}}\"\n      }\n    },\n    {\n      \"name\": \"AddTrackedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddTrackedDialect{${1:dialect label}}{${2:root language label}}\"\n      }\n    },\n    {\n      \"name\": \"AddTrackedLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddTrackedLanguage{${1:root language label}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangLastTrackedDialect\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangProvidePredefinedLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangProvidePredefinedLanguage{${1:language label}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangProvidePredefinedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"TrackLangProvidePredefinedDialect{${1:dialect}}{${2:language}}{3166-1 code}{${3:modifier}}{${4:variant}}{${5:map}}{${6:script}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectLabelMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectLabelMap{${1:tracklang-label}}{${2:hook-label}}\"\n      }\n    },\n    {\n      \"name\": \"AddTrackedLanguageIsoCodes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddTrackedLanguageIsoCodes{${1:root language label}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectModifier\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectModifier{${1:dialect}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectScript{${1:dialect}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectVariant\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectVariant{${1:dialect}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectSubLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectSubLang{${1:dialect}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetTrackedDialectAdditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetTrackedDialectAdditional{${1:dialect}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddTrackedCountryIsoCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddTrackedCountryIsoCode{${1:root language}}\"\n      }\n    },\n    {\n      \"name\": \"AddTrackedIsoLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddTrackedIsoLanguage{${1:code type}}{${2:code}}{${3:language}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentTrackedDialectSubLang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TrackLangDeclareDialectOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"TrackLangDeclareDialectOption{${1:dialect}}{${2:root lang}}{3166-1 code}{${3:modifier}}{${4:variant}}{${5:map}}{${6:script}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangDeclareLanguageOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"TrackLangDeclareLanguageOption{${1:language}}{${2:639-1 code}}{${3:639-2 (${8:T})}}{${4:639-2 (${9:B})}}{${5:639-3}}{${6:3166-1}}{${7:default script}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetKnownCountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetKnownCountry{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetKnownIsoThreeLetterLangB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetKnownIsoThreeLetterLangB{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetKnownIsoThreeLetterLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetKnownIsoThreeLetterLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetKnownIsoTwoLetterLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetKnownIsoTwoLetterLang{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangGetKnownLangFromIso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TrackLangGetKnownLangFromIso{${1:ISO code}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfAlphaNumericChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfAlphaNumericChar{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfHasDefaultScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfHasDefaultScript{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfHasKnownCountry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfHasKnownCountry{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfKnownIsoThreeLetterLangB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfKnownIsoThreeLetterLangB{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfKnownIsoThreeLetterLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfKnownIsoThreeLetterLang{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfKnownIsoTwoLetterLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfKnownIsoTwoLetterLang{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfKnownLangFromIso\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfKnownLangFromIso{${1:ISO code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfKnownLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfKnownLang{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfLanguageTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfLanguageTag{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfRegionTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfRegionTag{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfScriptTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfScriptTag{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TrackLangIfVariantTag\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TrackLangIfVariantTag{${1:tag}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"CurrentTrackedIsoCodeI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedIsoCodeII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CurrentTrackedIsoCodeIII\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetTrackedDialectFromMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectFromMapping{${1:language hook}}\"\n      }\n    },\n    {\n      \"name\": \"GetTrackedDialectToMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTrackedDialectToMapping{${1:tracklang label}}\"\n      }\n    },\n    {\n      \"name\": \"IfHookHasMappingFromTrackedDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfHookHasMappingFromTrackedDialect{${1:hook label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfTrackedDialectHasMapping\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfTrackedDialectHasMapping{${1:tracklang label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"LetTrackLangOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetTrackLangOption{${1:option}}{${2:synonym}}\"\n      }\n    },\n    {\n      \"name\": \"LetTrackLangSynonym\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LetTrackLangSynonym{${1:option}}{${2:synonym}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tracklang#c\": [\n      \"${1:language}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tracklang#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/trajan.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"trjnfamily\"\n    },\n    {\n      \"name\": \"texttrjn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttrjn{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tram.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"tram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:integer}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tramlines.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"booktabs\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tramlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tramlines{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tramlinesep\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/translations.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DeclareLanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLanguage{${1:lang}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageAlias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageAlias{${1:lang2}}{${2:lang1}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageDialect{${1:dialect}}{${2:lang}}\"\n      }\n    },\n    {\n      \"name\": \"NewTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"NewTranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"NewTranslationFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewTranslationFallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"RenewTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"RenewTranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"RenewTranslationFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewTranslationFallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideTranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideTranslationFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideTranslationFallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareTranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTranslationFallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTranslationFallback{${1:key%plain}}{${2:fallback}}\"\n      }\n    },\n    {\n      \"name\": \"definetranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definetranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"definetranslationfallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definetranslationfallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"redefinetranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"redefinetranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"redefinetranslationfallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"redefinetranslationfallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"addtranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"addtranslationfallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addtranslationfallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"declaretranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"declaretranslation{${1:lang}}{${2:key%plain}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"declaretranslationfallback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"declaretranslationfallback{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"IfTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfTranslation{${1:lang}}{${2:key%plain}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetTranslationFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetTranslationFor{${1:lang}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTranslation{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetLCTranslationFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetLCTranslationFor{${1:lang}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetLCTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetLCTranslation{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetTranslationForWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetTranslationForWarn{${1:lang}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetTranslationWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetTranslationWarn{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetLCTranslationForWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetLCTranslationForWarn{${1:lang}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"GetLCTranslationWarn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetLCTranslationWarn{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SaveTranslationFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SaveTranslationFor{${1:cmd}}{${2:lang}}{${3:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"SaveTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SaveTranslation{${1:cmd}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"LoadDictionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadDictionary{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"LoadDictionaryFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadDictionaryFor{${1:lang}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"LoadDictionaryForDialect\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadDictionaryForDialect{${1:lang}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"NewDictTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewDictTranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"RenewDictTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewDictTranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDictTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideDictTranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDictTranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareDictTranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideDictionaryFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ProvideDictionaryFor{${1:lang}}{${2:name}}[${3:date}]\"\n      }\n    },\n    {\n      \"name\": \"PrintDictionaryFor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"PrintDictionaryFor{${1:lang}}{${2:name}}{${3:pre}}{${4:mid}}{${5:post}}\"\n      }\n    },\n    {\n      \"name\": \"baselanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"baselanguage{${1:lang}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentlanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentlanguage{${1:lang}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentlang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifcurrentlang{${1:lang}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentbaselanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifcurrentbaselanguage{${1:lang}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ifcurrentbaselang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ifcurrentbaselang{${1:lang}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/translator.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newtranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"newtranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newtranslation[${3:options%keyvals}]{${1:key%plain}}{${2:translation}}\",\n        \"keys\": [\n          \"\\\\newtranslation,\\\\renewtranslation,\\\\providetranslation,\\\\deftranslation,\\\\translate,\\\\translatelet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"renewtranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewtranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"renewtranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"renewtranslation[${3:options%keyvals}]{${1:key%plain}}{${2:translation}}\",\n        \"keys\": [\n          \"\\\\newtranslation,\\\\renewtranslation,\\\\providetranslation,\\\\deftranslation,\\\\translate,\\\\translatelet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"providetranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providetranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"providetranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"providetranslation[${3:options%keyvals}]{${1:key%plain}}{${2:translation}}\",\n        \"keys\": [\n          \"\\\\newtranslation,\\\\renewtranslation,\\\\providetranslation,\\\\deftranslation,\\\\translate,\\\\translatelet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"deftranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"deftranslation{${1:key%plain}}{${2:translation}}\"\n      }\n    },\n    {\n      \"name\": \"deftranslation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"deftranslation[${3:options%keyvals}]{${1:key%plain}}{${2:translation}}\",\n        \"keys\": [\n          \"\\\\newtranslation,\\\\renewtranslation,\\\\providetranslation,\\\\deftranslation,\\\\translate,\\\\translatelet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ProvidesDictionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvidesDictionary{${1:kind}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"ProvidesDictionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"ProvidesDictionary{${1:kind}}{${2:language}}[${3:version}]\"\n      }\n    },\n    {\n      \"name\": \"usedictionary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usedictionary{${1:kind}}\"\n      }\n    },\n    {\n      \"name\": \"uselanguage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uselanguage{${1:lang1,lang2,...}}\"\n      }\n    },\n    {\n      \"name\": \"translate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translate{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"translate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"translate[${2:options%keyvals}]{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"translatelet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"translatelet{${1:macro%cmd}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"translatelet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"translatelet[${3:options%keyvals}]{${1:macro%cmd}}{${2:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"languagepath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"languagepath{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"languagealias\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"languagealias{${1:name}}{${2:language list}}\"\n      }\n    },\n    {\n      \"name\": \"languagename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newtranslation,\\\\renewtranslation,\\\\providetranslation,\\\\deftranslation,\\\\translate,\\\\translatelet\": [\n      \"to=${1:language}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/transparent.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"auxhook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"transparent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"transparent{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"texttransparent\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"texttransparent{${1:value}}{${2:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tree-dvips.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"node\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"node{${1:nodename}}{${2:object%text}}\"\n      }\n    },\n    {\n      \"name\": \"nodepoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodepoint{${1:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodepoint\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"nodepoint{${1:nodename}}[${2:hshift%l}]\"\n      }\n    },\n    {\n      \"name\": \"nodepoint\",\n      \"arg\": {\n        \"format\": \"{}[][]\",\n        \"snippet\": \"nodepoint{${1:nodename}}[${2:hshift%l}][${3:vshift%l}]\"\n      }\n    },\n    {\n      \"name\": \"nodeconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nodeconnect{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodeconnect\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"nodeconnect{${1:fromnodename}}[${3:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nodeconnect[${3:fromloc}]{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"nodeconnect[${3:fromloc}]{${1:fromnodename}}[${4:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"anodeconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"anodeconnect{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"anodeconnect\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"anodeconnect{${1:fromnodename}}[${3:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"anodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"anodeconnect[${3:fromloc}]{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"anodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"anodeconnect[${3:fromloc}]{${1:fromnodename}}[${4:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"aanodeconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aanodeconnect{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"aanodeconnect\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"aanodeconnect{${1:fromnodename}}[${3:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"aanodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"aanodeconnect[${3:fromloc}]{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"aanodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"aanodeconnect[${3:fromloc}]{${1:fromnodename}}[${4:toloc}]{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"barnodeconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"barnodeconnect{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"barnodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"barnodeconnect[${3:depth%l}]{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"abarnodeconnect\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"abarnodeconnect{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"abarnodeconnect\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"abarnodeconnect[${3:depth%l}]{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodecurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nodecurve{${1:fromnodename}}{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"nodecurve\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"nodecurve[${4:fromloc}]{${1:fromnodename}}[${5:toloc}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"nodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}\",\n        \"snippet\": \"nodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"nodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}[]\",\n        \"snippet\": \"nodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}[${8:tdepth%l}]\"\n      }\n    },\n    {\n      \"name\": \"anodecurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"anodecurve{${1:fromnodename}}{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"anodecurve\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"anodecurve[${4:fromloc}]{${1:fromnodename}}[${5:toloc}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"anodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}\",\n        \"snippet\": \"anodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"anodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}[]\",\n        \"snippet\": \"anodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}[${8:tdepth%l}]\"\n      }\n    },\n    {\n      \"name\": \"aanodecurve\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aanodecurve{${1:fromnodename}}{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"aanodecurve\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"aanodecurve[${4:fromloc}]{${1:fromnodename}}[${5:toloc}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"aanodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}\",\n        \"snippet\": \"aanodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}\"\n      }\n    },\n    {\n      \"name\": \"aanodecurve\",\n      \"arg\": {\n        \"format\": \"[][]{}[][]{}{}[]\",\n        \"snippet\": \"aanodecurve[${4:fromloc}][${5:fromang}]{${1:fromnodename}}[${6:toloc}][${7:toang}]{${2:tonodename}}{${3:fdepth%l}}[${8:tdepth%l}]\"\n      }\n    },\n    {\n      \"name\": \"nodetriangle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nodetriangle{${1:fromnodename}}{${2:tonodename}}\"\n      }\n    },\n    {\n      \"name\": \"delink\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delink{${1:fromnodename}}{${2:tonodename}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"delink\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"delink{${1:fromnodename}}[${4:toloc}]{${2:tonodename}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"delink\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"delink[${4:fromloc}]{${1:fromnodename}}{${2:tonodename}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"delink\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"delink[${4:fromloc}]{${1:fromnodename}}[${5:toloc}]{${2:tonodename}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"nodebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodebox{${1:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodecircle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodecircle{${1:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodecircle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"nodecircle[${2:depth%l}]{${1:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodeoval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nodeoval{${1:nodename}}\"\n      }\n    },\n    {\n      \"name\": \"nodemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"treelinewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowinset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowhead\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"arrowhead{${1:width}}{${2:length}}{${3:inset%l}}\"\n      }\n    },\n    {\n      \"name\": \"makedash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makedash{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"delinkcurve\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"delinkcurve{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"iftransparent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscmd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pscmd{${1:PS code}}\"\n      }\n    },\n    {\n      \"name\": \"thinline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transparentfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"transparenttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wnum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/trees.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"branchlabels\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"branchlabels{${1:label1%formula}}{${2:label2%formula}}{${3:label3%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/trfsigns.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"fourier\"\n    },\n    {\n      \"name\": \"Fourier\"\n    },\n    {\n      \"name\": \"laplace\"\n    },\n    {\n      \"name\": \"Laplace\"\n    },\n    {\n      \"name\": \"dfourier\"\n    },\n    {\n      \"name\": \"Dfourier\"\n    },\n    {\n      \"name\": \"ztransf\"\n    },\n    {\n      \"name\": \"Ztransf\"\n    },\n    {\n      \"name\": \"dft\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dft{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"DFT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DFT{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"e\"\n    },\n    {\n      \"name\": \"im\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/trig.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"CalculateSin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculateSin{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"CalculateCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculateCos{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"UseSin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseSin{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"UseCos\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseCos{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"CalculateTan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CalculateTan{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"UseTan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseTan{${1:angle}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/trimclip.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"collectbox\"\n    },\n    {\n      \"name\": \"adjcalc\"\n    },\n    {\n      \"name\": \"pgf\",\n      \"if\": \"pgf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"trimbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trimbox{${1:trim specs}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"trimbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"trimbox*{${1:trim specs}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"clipbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clipbox{${1:clip specs}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"clipbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"clipbox*{${1:clip specs}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"marginbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marginbox{${1:margin specs}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"marginbox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"marginbox*{${1:margin specs}}{${2:content%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"trimbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:trim specs}}\"\n      }\n    },\n    {\n      \"name\": \"trimbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:trim specs}}\"\n      }\n    },\n    {\n      \"name\": \"clipbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:clip specs}}\"\n      }\n    },\n    {\n      \"name\": \"clipbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:clip specs}}\"\n      }\n    },\n    {\n      \"name\": \"marginbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:margin specs}}\"\n      }\n    },\n    {\n      \"name\": \"marginbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:margin specs}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/trimclip#c\": [\n      \"pdftex\",\n      \"luatex\",\n      \"dvips\",\n      \"xetex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pgf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/trimclip#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/trivfloat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"floatrow\",\n      \"if\": \"floatrow\"\n    },\n    {\n      \"name\": \"floatrow\",\n      \"if\": \"floatrow=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"trivfloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"trivfloat{${1:envname%envname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/trivfloat#c\": [\n      \"floatrow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/trivfloat#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/trsym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TransformHoriz\"\n    },\n    {\n      \"name\": \"InversTransformHoriz\"\n    },\n    {\n      \"name\": \"TransformVert\"\n    },\n    {\n      \"name\": \"InversTransformVert\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/truncate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"truncate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"truncate{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"truncate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"truncate[${3:marker}]{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"TruncateMarker\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/truncate#c\": [\n      \"breakwords\",\n      \"breakall\",\n      \"hyphenate\",\n      \"fit\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/truncate#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/truthtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"truthtable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"truthtable{${1:vars}}{${2:dvars}}{${3:statements}}{${4:dstatements}}{${5:true val}}{${6:false val}}\"\n      }\n    },\n    {\n      \"name\": \"truthtableasc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"truthtableasc{${1:vars}}{${2:dvars}}{${3:statements}}{${4:dstatements}}{${5:true val}}{${6:false val}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tsvtemplate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"tsvtemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsvtemplate{${1:template}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"tsvtemplate\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tsvtemplate[${3:colname1,colname2,...}]{${1:template}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"applytemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"applytemplate{${1:separator}}{${2:colnames}}{${3:template}}{${4:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"tsv template\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"tsv template\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:colname1,colname2,...}]{${1:file}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tucv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"resbib\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resbib{${1:title%text}}{${2:information%text}}\"\n      }\n    },\n    {\n      \"name\": \"resconference\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"resconference[${3:description%text}]{${1:conference name}}{${2:role%text}}\"\n      }\n    },\n    {\n      \"name\": \"resconference\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resconference{${1:conference name}}{${2:role%text}}\"\n      }\n    },\n    {\n      \"name\": \"resdegree\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resdegree[${2:description%text}]{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"resdegree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resdegree{${1:degree%text}}\"\n      }\n    },\n    {\n      \"name\": \"resdesc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resdesc{${1:item%text}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"resemployer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resemployer[${2:description%text}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"resemployer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resemployer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"resentry\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"resentry[${3:indent}]{${1:left text%text}}{${2:right text%text}}\"\n      }\n    },\n    {\n      \"name\": \"resentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resentry{${1:left text%text}}{${2:right text%text}}\"\n      }\n    },\n    {\n      \"name\": \"resentrysinglecol\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resentrysinglecol[${2:indent}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resentrysinglecol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resentrysinglecol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"resheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"resheading{${1:heading%text}}\"\n      }\n    },\n    {\n      \"name\": \"resjob\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"resjob[${4:description%text}]{${1:job name%text}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"resjob\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"resjob{${1:job name%text}}{${2:start}}{${3:end}}\"\n      }\n    },\n    {\n      \"name\": \"resschool\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"resschool{${1:school name}}{${2:location}}\"\n      }\n    },\n    {\n      \"name\": \"ressubconference\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ressubconference[${2:description%text}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ressubconference\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ressubconference{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ressubentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ressubentry{${1:left text%text}}{${2:right text%text}}\"\n      }\n    },\n    {\n      \"name\": \"ressubentrysinglecol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ressubentrysinglecol{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tucv#c\": [\n      \"pagesetup\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tucv#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tudacolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tudacolors#c\": [\n      \"accentcolor=\",\n      \"textaccentcolor=\",\n      \"identbarcolor=\",\n      \"color=\",\n      \"text=${1|black,white|}\",\n      \"cmyk\",\n      \"RGB\",\n      \"department=mecheng\",\n      \"departmentconfigprefix=${1:prefix}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tudacolors#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tudafonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"anyfontsize\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"XCharter\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"roboto\"\n    },\n    {\n      \"name\": \"roboto-mono\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"accentfont\"\n    },\n    {\n      \"name\": \"textaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textaccent{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tudafonts#c\": [\n      \"T1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tudafonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tudarules.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"tudacolors\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tudarules#c\": [\n      \"color=\",\n      \"blackrule\",\n      \"paper=${1|dl,a6,a5,a4,a3,a2,a1,a0,slide,beamer,leaflet|}\",\n      \"department=${1|default,mecheng|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tudarules#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tudscrbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TUDoptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TUDoptions{${1:Optionenliste%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"TUDoption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TUDoption{${1:Option%keyvals}}{${2:Werteliste}}\"\n      }\n    },\n    {\n      \"name\": \"iflanguageloaded\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"iflanguageloaded{${1:language}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"TUDProcessOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDProcessOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TUDProcessOptions[${1:member}]\"\n      }\n    },\n    {\n      \"name\": \"TUDExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TUDExecuteOptions{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"TUDExecuteOptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TUDExecuteOptions[${2:member}]{${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"TUDScriptVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptVersionNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptContact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptRepository\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptForum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tudscrcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setcdcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcdcolors{${1:Farbmodell}}\"\n      }\n    },\n    {\n      \"name\": \"TUDScriptVersion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptVersionNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScript\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptContact\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptRepository\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TUDScriptForum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tudscrcolor#c\": [\n      \"oldcolors\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tudscrcolor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tudscrfonts.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tudscrbase\"\n    },\n    {\n      \"name\": \"scrextend\"\n    },\n    {\n      \"name\": \"newunicodechar\"\n    },\n    {\n      \"name\": \"mathastext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cdfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cdfont{${1:Schriftart}}\"\n      }\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textcd{${1:Schriftart}}{${2:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontln\"\n    },\n    {\n      \"name\": \"textcdln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdln{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontrn\"\n    },\n    {\n      \"name\": \"textcdrn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdrn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsn\"\n    },\n    {\n      \"name\": \"textcdsn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbn\"\n    },\n    {\n      \"name\": \"textcdbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxn\"\n    },\n    {\n      \"name\": \"textcdxn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxn{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontli\"\n    },\n    {\n      \"name\": \"textcdli\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdli{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontri\"\n    },\n    {\n      \"name\": \"textcdri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdri{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontsi\"\n    },\n    {\n      \"name\": \"textcdsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdsi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontbi\"\n    },\n    {\n      \"name\": \"textcdbi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdbi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"cdfontxi\"\n    },\n    {\n      \"name\": \"textcdxi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcdxi{${1:Text%text}}\"\n      }\n    },\n    {\n      \"name\": \"upGamma\",\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"itGamma\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"itDelta\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"itTheta\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"itLambda\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"itXi\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"itPi\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"itSigma\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"itUpsilon\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"itPhi\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"itPsi\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"itOmega\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"italpha\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"itbeta\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"itgamma\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"itdelta\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"itepsilon\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"itvarepsilon\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"itzeta\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"iteta\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"ittheta\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"itvartheta\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"itiota\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"itkappa\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"itlambda\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"itmu\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"itnu\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"itxi\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"itpi\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"itvarpi\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"itrho\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"itvarrho\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"itsigma\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"itvarsigma\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"ittau\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"itupsilon\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"itphi\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"itvarphi\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"itchi\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"itpsi\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"itomega\"\n    },\n    {\n      \"name\": \"otherGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheralpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othergamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othereta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheriota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othermu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othernu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othersigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othertau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"othervarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otherpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"otheromega\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\TUDoptions#c\": [\n      \"cdfont=${1:Einstellung}\",\n      \"cdoldfont=${1|true,false,nodin,din,onlydin|}\",\n      \"fontsize=\",\n      \"relspacing=${1:Ein-Aus-Wert}\",\n      \"ttfont=${1:Einstellung}\",\n      \"cdmath=${1:Ein-Aus-Wert}\",\n      \"slantedgreek=${1:Ein-Aus-Wert}\",\n      \"tudscrver=${1:Version}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/tudscrsupervisor.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"taskform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"taskform{${1:Ziele%text}}{${2:Schwerpunkte%text}}\"\n      }\n    },\n    {\n      \"name\": \"taskform\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"taskform[${3:Parameterliste%keyvals}]{${1:Ziele%text}}{${2:Schwerpunkte%text}}\",\n        \"keys\": [\n          \"\\\\begin{task}#c,\\\\taskform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chairman\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chairman{${1:Prüfungsausschussvorsitzender}}\"\n      }\n    },\n    {\n      \"name\": \"issuedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"issuedate{${1:Ausgabedatum}}\"\n      }\n    },\n    {\n      \"name\": \"duedate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duedate{${1:Abgabetermin}}\"\n      }\n    },\n    {\n      \"name\": \"evaluationform\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"evaluationform{${1:Aufgabe%text}}{${2:Inhalt%text}}{${3:Bewertung%text}}{${4:Note%text}}\"\n      }\n    },\n    {\n      \"name\": \"evaluationform\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"evaluationform[${5:Parameterliste%keyvals}]{${1:Aufgabe%text}}{${2:Inhalt%text}}{${3:Bewertung%text}}{${4:Note%text}}\",\n        \"keys\": [\n          \"\\\\begin{evaluation}#c,\\\\evaluationform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grade\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"grade{${1:Note%text}}\"\n      }\n    },\n    {\n      \"name\": \"noticeform\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"noticeform{${1:Inhalt%text}}{${2:Schwerpunkte%text}}\"\n      }\n    },\n    {\n      \"name\": \"noticeform\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"noticeform[${3:Parameterliste%keyvals}]{${1:Inhalt%text}}{${2:Schwerpunkte%text}}\",\n        \"keys\": [\n          \"\\\\begin{notice}#c,\\\\noticeform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"contactperson\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"contactperson{${1:Kontaktperson(${2:en})}}\"\n      }\n    },\n    {\n      \"name\": \"office\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"office{${1:Dienstsitz%text}}\"\n      }\n    },\n    {\n      \"name\": \"telephone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telephone{${1:Telefonnummer}}\"\n      }\n    },\n    {\n      \"name\": \"telefax\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"telefax{${1:Telefaxnummer}}\"\n      }\n    },\n    {\n      \"name\": \"taskname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tasktext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"namesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"issuedatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"duedatetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chairmanname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"focusname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"objectivesname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evaluationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evaluationtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"assessmentname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gradetext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noticename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contactpersonname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"contactname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"student\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"student{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"task\"\n    },\n    {\n      \"name\": \"task\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{task}#c,\\\\taskform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"evaluation\"\n    },\n    {\n      \"name\": \"evaluation\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{evaluation}#c,\\\\evaluationform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notice\"\n    },\n    {\n      \"name\": \"notice\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:Parameterliste%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{notice}#c,\\\\noticeform#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{task}#c,\\\\taskform#c\": [\n      \"headline=${1:Überschrift}\",\n      \"style=${1:Stil}\"\n    ],\n    \"\\\\begin{evaluation}#c,\\\\evaluationform#c\": [\n      \"headline=${1:Überschrift}\",\n      \"grade=${1:Note}\"\n    ],\n    \"\\\\begin{notice}#c,\\\\noticeform#c\": [\n      \"headline=${1:Überschrift}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/turabian-formatting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"nowidow\"\n    },\n    {\n      \"name\": \"footmisc\"\n    },\n    {\n      \"name\": \"endnotes\",\n      \"if\": \"endnotes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"footnotemargin\"\n    },\n    {\n      \"name\": \"listillustrationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listofillustrations\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/turabian-formatting#c\": [\n      \"noraggedright\",\n      \"authordate\",\n      \"noadjustbib\",\n      \"endnotes\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/turabian-formatting#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/turnstile.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"firstwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secondwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrawidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leasturnstilewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnstilewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnstileheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dashthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddashthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raiseup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raisedown\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tinyverdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verdistance\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lift\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lengthvar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"first\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"second\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"turnstilebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makever\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"makever{${1:cmd}}[${2:params}]\"\n      }\n    },\n    {\n      \"name\": \"makehor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"makehor{${1:cmd}}[${2:params}]\"\n      }\n    },\n    {\n      \"name\": \"turnstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"turnstile[${6:size option%keyvals}]{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}{${5:arg5}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nntstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nntstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nntstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nntstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ndtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ndtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ndtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ndtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sntstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sntstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sntstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sntstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dntstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dntstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dntstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dntstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ddtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ddtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tntstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tntstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tntstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tntstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nnststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nnststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nnststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nnststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nsststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nsststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nsststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nsststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ndststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ndststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ndststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ndststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ntststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ntststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ntststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nndtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nndtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nndtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nndtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nsdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nsdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nsdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nsdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nddtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nddtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nddtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nddtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ntdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ntdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ntdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nnttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nnttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nnttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nnttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"nsttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"nsttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"nsttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"nsttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ndttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ndttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ndttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ndttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ntttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ntttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ntttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ntttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"snststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"snststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"snststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"snststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ssststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sdststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sdststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sdststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sdststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"stststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sndtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sndtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sndtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sndtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ssdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ssdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sddtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sddtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sddtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sddtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"stdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"snttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"snttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"snttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"snttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ssttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ssttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ssttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ssttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sdttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sdttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"sdttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sdttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"stttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"stttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"stttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dnststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dnststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dnststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dnststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dsststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dsststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dsststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ddststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ddststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dtststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dtststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dtststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dndtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dndtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dndtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dndtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dsdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dsdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dsdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dddtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dddtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dddtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dddtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dtdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dtdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dtdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dnttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dnttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dnttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dnttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dsttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dsttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dsttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dsttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ddttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ddttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ddttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ddttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"dtttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"dtttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"dtttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"dtttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tnststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tnststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tnststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tnststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tsststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tsststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tdststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tdststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tdststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ttststile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttststile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ttststile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ttststile[${3:size option%keyvals}]{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tndtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tndtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tndtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tndtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tsdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tsdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tddtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tddtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tddtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tddtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ttdtstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttdtstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ttdtstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ttdtstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tnttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tnttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tnttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tnttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tsttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tsttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tsttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tsttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"tdttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tdttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"tdttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tdttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ttttstile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ttttstile{${1:below}}{${2:above}}\"\n      }\n    },\n    {\n      \"name\": \"ttttstile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ttttstile[${3:size option%keyvals}]{${1:below}}{${2:above}}\",\n        \"keys\": [\n          \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\turnstile,\\\\nntstile,\\\\nststile,\\\\ndtstile,\\\\nttstile,\\\\sntstile,\\\\sststile,\\\\sdtstile,\\\\sttstile,\\\\dntstile,\\\\dststile,\\\\ddtstile,\\\\dttstile,\\\\tntstile,\\\\tststile,\\\\tdtstile,\\\\tttstile,\\\\nnststile,\\\\nsststile,\\\\ndststile,\\\\ntststile,\\\\nndtstile,\\\\nsdtstile,\\\\nddtstile,\\\\ntdtstile,\\\\nnttstile,\\\\nsttstile,\\\\ndttstile,\\\\ntttstile,\\\\snststile,\\\\ssststile,\\\\sdststile,\\\\stststile,\\\\sndstile,\\\\ssdtstile,\\\\sddtstile,\\\\stdtstile,\\\\snttstile,\\\\ssttstile,\\\\sdttstile,\\\\stttstile,\\\\dnststile,\\\\dsststile,\\\\ddststile,\\\\dtststile,\\\\dndtstile,\\\\dsdtstile,\\\\dddtstile,\\\\dtdtstile,\\\\dnttstile,\\\\dsttstile,\\\\ddttstile,\\\\dtttstile,\\\\tnststile,\\\\tsststile,\\\\tdststile,\\\\ttdtstile,\\\\tndtstile,\\\\tsdtstile,\\\\tddtstile,\\\\ttdtstile,\\\\tnttstile,\\\\tsttstile,\\\\tdttstile,\\\\ttttstile\": [\n      \"d\",\n      \"t\",\n      \"s\",\n      \"ss\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/turnthepage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"turnthepage\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/turnthepage#c\": [\n      \"short\",\n      \"english\",\n      \"francais\",\n      \"nederlands\",\n      \"deutsch\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/turnthepage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tweaklist.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"deschook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumhooki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumhookii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumhookiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumhookiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemhook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemhooki\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemhookii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemhookiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itemhookiv\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/twemojis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"twemoji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twemoji{${1:emoji name}}\"\n      }\n    },\n    {\n      \"name\": \"twemoji\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"twemoji[${2:options%keyvals}]{${1:emoji name}}\",\n        \"keys\": [\n          \"\\\\twemoji\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"texttwemoji\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttwemoji{${1:emoji name}}\"\n      }\n    },\n    {\n      \"name\": \"twemojiDefaultHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defineTwemoji\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineTwemoji{${1:number}}{${2:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\twemoji\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/twoopt.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"newcommandtwoopt\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"newcommandtwoopt{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandtwoopt\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"renewcommandtwoopt{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandtwoopt\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"providecommandtwoopt{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandtwoopt*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"newcommandtwoopt*{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandtwoopt*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"renewcommandtwoopt*{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandtwoopt*\",\n      \"arg\": {\n        \"format\": \"{}[][][]{}\",\n        \"snippet\": \"providecommandtwoopt*{${1:cmd}}[${3:args}][${4:default1}][${5:default2}]{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/twoup.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cleartolastpage\"\n    },\n    {\n      \"name\": \"cleartolastpage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartolastpage[${1:div}]\"\n      }\n    },\n    {\n      \"name\": \"cleartolastpage\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cleartolastpage[${1:div}][${2:rem}]\"\n      }\n    },\n    {\n      \"name\": \"cleartolastpage*\"\n    },\n    {\n      \"name\": \"cleartolastpage*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cleartolastpage*[${1:div}]\"\n      }\n    },\n    {\n      \"name\": \"cleartolastpage*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"cleartolastpage*[${1:div}][${2:rem}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/twoup#c\": [\n      \"noheadfoot\",\n      \"nofoot\",\n      \"nohead\",\n      \"nospecial\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/twoup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tx-ds.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bbdotlessi\"\n    },\n    {\n      \"name\": \"bbdotlessj\"\n    },\n    {\n      \"name\": \"imathbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmathbb\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tx-ds#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tx-ds#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/tx-of.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbb{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/tx-of#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/tx-of#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/txfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"alphaup\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"betaup\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bignplus\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigsqcapplus\"\n    },\n    {\n      \"name\": \"bigsqcupplus\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"Bot\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"boxast\",\n      \"detail\": \"⧆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared asterisk\"\n    },\n    {\n      \"name\": \"boxbar\",\n      \"detail\": \"◫ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Vertical bar in box\"\n    },\n    {\n      \"name\": \"boxbslash\",\n      \"detail\": \"⧅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"Squared falling diagonal slash\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxdotleft\"\n    },\n    {\n      \"name\": \"boxdotLeft\"\n    },\n    {\n      \"name\": \"boxdotright\"\n    },\n    {\n      \"name\": \"boxdotRight\"\n    },\n    {\n      \"name\": \"boxleft\"\n    },\n    {\n      \"name\": \"boxLeft\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxright\"\n    },\n    {\n      \"name\": \"boxRight\"\n    },\n    {\n      \"name\": \"boxslash\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"chiup\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledbar\"\n    },\n    {\n      \"name\": \"circledbslash\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circleddot\"\n    },\n    {\n      \"name\": \"circleddotleft\"\n    },\n    {\n      \"name\": \"circleddotright\"\n    },\n    {\n      \"name\": \"circledgtr\"\n    },\n    {\n      \"name\": \"circledless\"\n    },\n    {\n      \"name\": \"circledminus\"\n    },\n    {\n      \"name\": \"circledotleft\"\n    },\n    {\n      \"name\": \"circledotright\"\n    },\n    {\n      \"name\": \"circledplus\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"circledslash\"\n    },\n    {\n      \"name\": \"circledtimes\"\n    },\n    {\n      \"name\": \"circledvee\"\n    },\n    {\n      \"name\": \"circledwedge\"\n    },\n    {\n      \"name\": \"circleleft\"\n    },\n    {\n      \"name\": \"circleright\"\n    },\n    {\n      \"name\": \"colonapprox\"\n    },\n    {\n      \"name\": \"Colonapprox\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"Coloneq\",\n      \"detail\": \"⩴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"::=, \\\\coloneq (txfonts), double colon equal\"\n    },\n    {\n      \"name\": \"coloneqq\"\n    },\n    {\n      \"name\": \"Coloneqq\"\n    },\n    {\n      \"name\": \"colonsim\"\n    },\n    {\n      \"name\": \"Colonsim\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dasharrow\"\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashleftrightarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"deltaup\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"Diamondblack\"\n    },\n    {\n      \"name\": \"Diamonddot\"\n    },\n    {\n      \"name\": \"Diamonddotleft\"\n    },\n    {\n      \"name\": \"DiamonddotLeft\"\n    },\n    {\n      \"name\": \"Diamonddotright\"\n    },\n    {\n      \"name\": \"DiamonddotRight\"\n    },\n    {\n      \"name\": \"Diamondleft\"\n    },\n    {\n      \"name\": \"DiamondLeft\"\n    },\n    {\n      \"name\": \"Diamondright\"\n    },\n    {\n      \"name\": \"DiamondRight\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"epsilonup\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"Eqcolon\"\n    },\n    {\n      \"name\": \"eqqcolon\"\n    },\n    {\n      \"name\": \"Eqqcolon\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"etaup\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"fintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"gammaup\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gggtr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"idotsint\"\n    },\n    {\n      \"name\": \"idotsintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiiint\",\n      \"detail\": \"⨌ (\\\"amsmath esint\\\" command)\",\n      \"doc\": \"Quadruple integral operator\"\n    },\n    {\n      \"name\": \"iiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"iiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"invamp\"\n    },\n    {\n      \"name\": \"iotaup\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"kappaup\"\n    },\n    {\n      \"name\": \"lambdabar\"\n    },\n    {\n      \"name\": \"lambdaslash\"\n    },\n    {\n      \"name\": \"lambdaup\"\n    },\n    {\n      \"name\": \"lbag\",\n      \"detail\": \"⟅ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\lbag (stmaryrd -oz), left s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Lbag\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leadstoext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"lJoin\"\n    },\n    {\n      \"name\": \"llbracket\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"llless\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmappedfrom\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmmappedfrom \"\n    },\n    {\n      \"name\": \"longmmappedfrom\"\n    },\n    {\n      \"name\": \"longmmapsto\"\n    },\n    {\n      \"name\": \"Longmmapsto\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"lrJoin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lrtimes\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mappedfrom\"\n    },\n    {\n      \"name\": \"Mappedfrom\"\n    },\n    {\n      \"name\": \"mappedfromchar\"\n    },\n    {\n      \"name\": \"Mappedfromchar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapstochar\"\n    },\n    {\n      \"name\": \"mathcent\"\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"medbullet\"\n    },\n    {\n      \"name\": \"medcirc\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"mmappedfrom\"\n    },\n    {\n      \"name\": \"Mmappedfrom\"\n    },\n    {\n      \"name\": \"mmappedfromchar\"\n    },\n    {\n      \"name\": \"Mmappedfromchar\"\n    },\n    {\n      \"name\": \"mmapsto\"\n    },\n    {\n      \"name\": \"Mmapsto\"\n    },\n    {\n      \"name\": \"mmapstochar\"\n    },\n    {\n      \"name\": \"Mmapstochar\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapboth\"\n    },\n    {\n      \"name\": \"multimapbothvert\"\n    },\n    {\n      \"name\": \"multimapdot\"\n    },\n    {\n      \"name\": \"multimapdotboth\"\n    },\n    {\n      \"name\": \"multimapdotbothA\"\n    },\n    {\n      \"name\": \"multimapdotbothAvert\"\n    },\n    {\n      \"name\": \"multimapdotbothB\"\n    },\n    {\n      \"name\": \"multimapdotbothBvert\"\n    },\n    {\n      \"name\": \"multimapdotbothvert\"\n    },\n    {\n      \"name\": \"multimapdotinv\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"muup\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"napproxeq\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"nbacksim\"\n    },\n    {\n      \"name\": \"nbacksimeq\"\n    },\n    {\n      \"name\": \"nbumpeq\"\n    },\n    {\n      \"name\": \"nBumpeq\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"ngg\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrapprox\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessapprox\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nll\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"notni\"\n    },\n    {\n      \"name\": \"notowns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nplus\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"nprecapprox\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"npreceqq\"\n    },\n    {\n      \"name\": \"nprecsim\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubset\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupset\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSubset\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsuccapprox\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsucceqq\"\n    },\n    {\n      \"name\": \"nsuccsim\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nSupset\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"nthickapprox\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"ntwoheadleftarrow\"\n    },\n    {\n      \"name\": \"ntwoheadrightarrow\"\n    },\n    {\n      \"name\": \"nuup\"\n    },\n    {\n      \"name\": \"nvarparallel\"\n    },\n    {\n      \"name\": \"nvarparallelinv\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiiintclockwise\"\n    },\n    {\n      \"name\": \"oiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"oiintclockwise\"\n    },\n    {\n      \"name\": \"oiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintctrclockwise\"\n    },\n    {\n      \"name\": \"oiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointclockwise\"\n    },\n    {\n      \"name\": \"ointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"ointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omegaup\"\n    },\n    {\n      \"name\": \"openJoin\"\n    },\n    {\n      \"name\": \"opentimes\"\n    },\n    {\n      \"name\": \"Perp\"\n    },\n    {\n      \"name\": \"phiup\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"piup\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"psiup\"\n    },\n    {\n      \"name\": \"rbag\",\n      \"detail\": \"⟆ (\\\"stmaryrd txfonts\\\" command)\",\n      \"doc\": \"\\\\rbag (stmaryrd -oz), right s-shaped bag delimiter\"\n    },\n    {\n      \"name\": \"Rbag\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rhoup\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rJoin\"\n    },\n    {\n      \"name\": \"rrbracket\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"sigmaup\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"sqcapplus\"\n    },\n    {\n      \"name\": \"sqcupplus\"\n    },\n    {\n      \"name\": \"sqiiint\"\n    },\n    {\n      \"name\": \"sqiiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqiint\"\n    },\n    {\n      \"name\": \"sqiintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqint\",\n      \"detail\": \"⨖ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\sqrint (wrisym), quaternion integral operator\"\n    },\n    {\n      \"name\": \"sqintop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"strictfi\"\n    },\n    {\n      \"name\": \"strictif\"\n    },\n    {\n      \"name\": \"strictiff\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"tauup\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"thetaup\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"Top\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upsilonup\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varBbbk\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"varepsilonup\"\n    },\n    {\n      \"name\": \"varg\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"varmathbb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"varmathbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varoiiintclockwise\"\n    },\n    {\n      \"name\": \"varoiiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintclockwise\"\n    },\n    {\n      \"name\": \"varoiintclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoiintctrclockwise\"\n    },\n    {\n      \"name\": \"varoiintctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varointclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varointctrclockwise\"\n    },\n    {\n      \"name\": \"varointctrclockwiseop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varparallel\"\n    },\n    {\n      \"name\": \"varparallelinv\"\n    },\n    {\n      \"name\": \"varphiup\"\n    },\n    {\n      \"name\": \"varpiup\"\n    },\n    {\n      \"name\": \"varprod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varrhoup\"\n    },\n    {\n      \"name\": \"varsigmaup\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varthetaup\"\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"varv\"\n    },\n    {\n      \"name\": \"varw\"\n    },\n    {\n      \"name\": \"vary\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"VvDash\"\n    },\n    {\n      \"name\": \"Wr\"\n    },\n    {\n      \"name\": \"xiup\"\n    },\n    {\n      \"name\": \"zetaup\"\n    },\n    {\n      \"name\": \"textsquare\"\n    },\n    {\n      \"name\": \"openbox\"\n    },\n    {\n      \"name\": \"DeclareMathSymbolCtr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareMathSymbolCtr{${1:cmd}}{${2:type}}{${3:sym-font}}{${4:slot}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/txfonts#c\": [\n      \"varg\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/txfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/txfontsb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"txfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"scslshape\"\n    },\n    {\n      \"name\": \"textscsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textscsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"anwtonos\"\n    },\n    {\n      \"name\": \"Digamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ddigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varqoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sampi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vardigamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Stigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VarQoppa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euro\",\n      \"unusual\": true,\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"Euro\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/txfontsb#c\": [\n      \"Upsilonalt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/txfontsb#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/txgreeks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"txfonts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"omicronup\"\n    },\n    {\n      \"name\": \"otheralpha\"\n    },\n    {\n      \"name\": \"otherbeta\"\n    },\n    {\n      \"name\": \"otherchi\"\n    },\n    {\n      \"name\": \"otherdelta\"\n    },\n    {\n      \"name\": \"otherDelta\"\n    },\n    {\n      \"name\": \"otherepsilon\"\n    },\n    {\n      \"name\": \"othereta\"\n    },\n    {\n      \"name\": \"othergamma\"\n    },\n    {\n      \"name\": \"otherGamma\"\n    },\n    {\n      \"name\": \"otheriota\"\n    },\n    {\n      \"name\": \"otherkappa\"\n    },\n    {\n      \"name\": \"otherlambda\"\n    },\n    {\n      \"name\": \"otherLambda\"\n    },\n    {\n      \"name\": \"othermu\"\n    },\n    {\n      \"name\": \"othernu\"\n    },\n    {\n      \"name\": \"otheromega\"\n    },\n    {\n      \"name\": \"otherOmega\"\n    },\n    {\n      \"name\": \"otheromicron\"\n    },\n    {\n      \"name\": \"otherphi\"\n    },\n    {\n      \"name\": \"otherPhi\"\n    },\n    {\n      \"name\": \"otherpi\"\n    },\n    {\n      \"name\": \"otherPi\"\n    },\n    {\n      \"name\": \"otherpsi\"\n    },\n    {\n      \"name\": \"otherPsi\"\n    },\n    {\n      \"name\": \"otherrho\"\n    },\n    {\n      \"name\": \"othersigma\"\n    },\n    {\n      \"name\": \"otherSigma\"\n    },\n    {\n      \"name\": \"othertau\"\n    },\n    {\n      \"name\": \"othertheta\"\n    },\n    {\n      \"name\": \"otherTheta\"\n    },\n    {\n      \"name\": \"otherupsilon\"\n    },\n    {\n      \"name\": \"otherUpsilon\"\n    },\n    {\n      \"name\": \"othervarepsilon\"\n    },\n    {\n      \"name\": \"othervarphi\"\n    },\n    {\n      \"name\": \"othervarpi\"\n    },\n    {\n      \"name\": \"othervarrho\"\n    },\n    {\n      \"name\": \"othervarsigma\"\n    },\n    {\n      \"name\": \"othervartheta\"\n    },\n    {\n      \"name\": \"otherxi\"\n    },\n    {\n      \"name\": \"otherXi\"\n    },\n    {\n      \"name\": \"otherzeta\"\n    },\n    {\n      \"name\": \"varDelta\"\n    },\n    {\n      \"name\": \"varGamma\"\n    },\n    {\n      \"name\": \"varLambda\"\n    },\n    {\n      \"name\": \"varOmega\"\n    },\n    {\n      \"name\": \"varPhi\"\n    },\n    {\n      \"name\": \"varPi\"\n    },\n    {\n      \"name\": \"varPsi\"\n    },\n    {\n      \"name\": \"varSigma\"\n    },\n    {\n      \"name\": \"varTheta\"\n    },\n    {\n      \"name\": \"varUpsilon\"\n    },\n    {\n      \"name\": \"varXi\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/txgreeks#c\": [\n      \"itgreek\",\n      \"upgreek\",\n      \"itGreek\",\n      \"upGreek\",\n      \"TeX\",\n      \"sloped\",\n      \"upright\",\n      \"French\",\n      \"ISO\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/txgreeks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/txuprcal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mathbcal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbcal{${1:text%plain}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/txuprcal#c\": [\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/txuprcal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/typearea.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrkbase\"\n    },\n    {\n      \"name\": \"scrlogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PaperNameToSize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PaperNameToSize{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideUnknownPaperSizeError\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideUnknownPaperSizeError{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"isopaper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isopaper{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"isopaper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"isopaper[${2:letter}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AfterCalculatingTypearea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterCalculatingTypearea{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterCalculatingTypearea*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterCalculatingTypearea*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"activateareas\"\n    },\n    {\n      \"name\": \"typearea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typearea{${1:DIV}}\"\n      }\n    },\n    {\n      \"name\": \"typearea\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typearea[${2:BCOR}]{${1:DIV}}\"\n      }\n    },\n    {\n      \"name\": \"recalctypearea\"\n    },\n    {\n      \"name\": \"storeareas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"storeareas{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeRestoreareas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeRestoreareas{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeRestoreareas*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeRestoreareas*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterRestoreareas\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterRestoreareas{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterRestoreareas*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterRestoreareas*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"areaset{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"areaset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"areaset[${3:BCOR}]{${1:width}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"AfterSettingArea\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterSettingArea{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterSettingArea*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterSettingArea*{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"footheight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\KOMAoptions#c\": [\n      \"BCOR=${1:correction}\",\n      \"DIV=${1|areaset,calc,classic,current,default,last|}\",\n      \"twoside=${1|true,on,yes,false,off,no,semi|}\",\n      \"twocolumn=${1|true,on,yes,false,off,no|}\",\n      \"headinclude=${1|true,on,yes,false,off,no|}\",\n      \"footinclude=${1|true,on,yes,false,off,no|}\",\n      \"mpinclude=${1|true,on,yes,false,off,no|}\",\n      \"headlines=${1:number of lines}\",\n      \"headheight=\",\n      \"footlines=${1:number of lines}\",\n      \"footheight=\",\n      \"paper=${1|letter,legal,executive,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,landscape,seascape,portrait|}\",\n      \"pagesize\",\n      \"pagesize=${1|auto,automedia,false,no,off,dvipdfmx,dvips,pdftex,luatex|}\",\n      \"headsepline=${1|true,on,yes,false,off,no|}\",\n      \"footsepline=${1|true,on,yes,false,off,no|}\",\n      \"areasetadvanced=${1|true,on,yes,false,off,no|}\",\n      \"usegeometry\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/typed-checklist.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"bbding\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"xltabular\"\n    },\n    {\n      \"name\": \"ltablex\",\n      \"if\": \"tablepkg=ltablex\"\n    },\n    {\n      \"name\": \"tabularx\",\n      \"if\": \"tablepkg=tabularx\"\n    },\n    {\n      \"name\": \"asciilist\",\n      \"if\": \"withAsciilist\"\n    },\n    {\n      \"name\": \"asciilist\",\n      \"if\": \"withAsciilist=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CheckListSet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckListSet{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{CheckList},\\\\CheckListSet\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Goal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Goal{${1:status}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"Goal\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Goal[${3:options%keyvals}]{${1:status}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\Goal,\\\\Task,\\\\Artifact,\\\\Milestone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Task\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Task{${1:status}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"Task\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Task[${3:options%keyvals}]{${1:status}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\Goal,\\\\Task,\\\\Artifact,\\\\Milestone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Artifact\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Artifact{${1:status}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"Artifact\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Artifact[${3:options%keyvals}]{${1:status}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\Goal,\\\\Task,\\\\Artifact,\\\\Milestone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Milestone\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Milestone{${1:status}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"Milestone\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Milestone[${3:options%keyvals}]{${1:status}}{${2:description%text}}\",\n        \"keys\": [\n          \"\\\\Goal,\\\\Task,\\\\Artifact,\\\\Milestone\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CheckListAddType\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckListAddType{${1:type}}{${2:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListAddStatus\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CheckListAddStatus{${1:types}}{${2:status}}{${3:is-closed}}{${4:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDeclareLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"CheckListDeclareLayout{${1:name}}{${2:fields}}{${3:begindef}}{${4:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDefineFieldFormat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListDefineFieldFormat{${1:layout}}{${2:field}}{${3:code}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListExtendLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListExtendLayout{${1:name}}{${2:base}}{${3:fields}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListStatusSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckListStatusSymbol{${1:status}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListSigned\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckListSigned{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListSigned\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CheckListSigned[${2:core}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDefaultLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckListDefaultLabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDisplayDeadline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckListDisplayDeadline{${1:status}}{${2:deadline}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListHighlightDeadline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListHighlightDeadline{${1:is-closed}}{${2:is-passed}}{${3:deadline}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListAddEntryOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckListAddEntryOption{${1:name%specialDef}}{${2:default}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterClosed\"\n    },\n    {\n      \"name\": \"CheckListFilterClosed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CheckListFilterClosed[${1:types}]\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckListFilterValue{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterValue\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CheckListFilterValue[${3:types}]{${1:field}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterDeadline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListFilterDeadline{${1:comp}}{${2:date}}{${3:filter-inv}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterDeadline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CheckListFilterDeadline[${4:types}]{${1:comp}}{${2:date}}{${3:filter-inv}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListFilterReset\"\n    },\n    {\n      \"name\": \"CheckListFilterReset\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"CheckListFilterReset[${1:types}]\"\n      }\n    },\n    {\n      \"name\": \"CheckListSetFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckListSetFilter{${1:fields}}{${2:filter code}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListSetFilter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"CheckListSetFilter[${3:types}]{${1:fields}}{${2:filter code}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDateCompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"CheckListDateCompare{${1:date}}{${2:comp}}{${3:refdate}}{${4:true}}{${5:false}}{${6:fail}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListDefaultLayout\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckListDefaultLayout{${1:layout}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListIfClosed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListIfClosed{${1:status}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"CheckListParseDate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CheckListParseDate{${1:date}}{${2:cmd}}{${3:fail}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CheckList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"CheckList\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\begin{CheckList},\\\\CheckListSet\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/typed-checklist#c\": [\n      \"withAsciilist\",\n      \"tablepkg=${1|ltablex,tabularx,xltabular|}\",\n      \"onecounter\",\n      \"layout=${1|list,table,hidden|}\",\n      \"input-dates=${1|d.m.y,m/d/y,y-m-d|}\",\n      \"output-dates=${1|d.m.y,m/d/y,y-m-d,d.m.yy,m/d/yy,yy-m-d,d.m.,m/d,m-d,same,datetime|}\",\n      \"strict-dates\"\n    ],\n    \"\\\\begin{CheckList},\\\\CheckListSet\": [\n      \"layout=${1|list,table,hidden|}\",\n      \"input-dates=${1|d.m.y,m/d/y,y-m-d|}\",\n      \"output-dates=${1|d.m.y,m/d/y,y-m-d,d.m.yy,m/d/yy,yy-m-d,d.m.,m/d,m-d,same,datetime|}\",\n      \"strict-dates\"\n    ],\n    \"\\\\Goal,\\\\Task,\\\\Artifact,\\\\Milestone\": [\n      \"who={${1:text}}\",\n      \"deadline=${1:date}\",\n      \"label=\",\n      \"%checklistentryoption\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/typed-checklist#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/typedref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"appendixref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"appendixref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"chapterref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chapterref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"figureref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figureref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"footnoteref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footnoteref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"itemref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"paragraphref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paragraphref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"partref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"sectionref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"tableref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tableref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"equationref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"equationref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"eqref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"refname\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"refname{${1:label type}}{${2:singular form%text}}{${3:plural form%text}}\"\n      }\n    },\n    {\n      \"name\": \"itemname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itemname{${1:label type}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newtheorem{${1:envname}}{${2:singular form}}{${3:plural form}}\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"newtheorem{${1:envname}}{${2:singular form}}{${3:plural form}}[${4:within}]\"\n      }\n    },\n    {\n      \"name\": \"newtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"newtheorem{${1:envname}}{${2:singular form}}[${4:numbered like}]{${3:plural form}}\"\n      }\n    },\n    {\n      \"name\": \"eqname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"eqname{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/typedref#c\": [\n      \"oxfordcomma\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/typedref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/typewriter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luaotfload\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ttgreybolda\"\n    },\n    {\n      \"name\": \"ttgreyboldb\"\n    },\n    {\n      \"name\": \"ttrotatebold\"\n    },\n    {\n      \"name\": \"ttdownbold\"\n    },\n    {\n      \"name\": \"ttrightbold\"\n    },\n    {\n      \"name\": \"ttoverprintbolda\"\n    },\n    {\n      \"name\": \"ttoverprintboldb\"\n    },\n    {\n      \"name\": \"ttoverprintboldc\"\n    },\n    {\n      \"name\": \"ttgreynormala\"\n    },\n    {\n      \"name\": \"ttgreynormalb\"\n    },\n    {\n      \"name\": \"ttrotatenormal\"\n    },\n    {\n      \"name\": \"ttrightnormal\"\n    },\n    {\n      \"name\": \"ttdownnormal\"\n    },\n    {\n      \"name\": \"ttoverprintnormal\"\n    },\n    {\n      \"name\": \"ttbasefont\"\n    },\n    {\n      \"name\": \"ttfontsize\"\n    },\n    {\n      \"name\": \"cmuntt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmunttid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xUnicodeMathSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xUnicodeMathSymbol{${1:char number}}{${2:cmd}}{${3:type}}{${4:description}}\"\n      }\n    },\n    {\n      \"name\": \"xxUnicodeMathSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xxUnicodeMathSymbol{${1:char number}}{${2:cmd}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"mathexclam\"\n    },\n    {\n      \"name\": \"mathoctothorpe\"\n    },\n    {\n      \"name\": \"mathpercent\"\n    },\n    {\n      \"name\": \"mathampersand\"\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"mathplus\"\n    },\n    {\n      \"name\": \"mathcomma\"\n    },\n    {\n      \"name\": \"mathperiod\"\n    },\n    {\n      \"name\": \"mathslash\",\n      \"detail\": \"/\",\n      \"doc\": \"\\\\slash, solidus\"\n    },\n    {\n      \"name\": \"mathcolon\",\n      \"detail\": \":\",\n      \"doc\": \"\\\\colon (literal), colon (not ratio)\"\n    },\n    {\n      \"name\": \"mathsemicolon\"\n    },\n    {\n      \"name\": \"less\",\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"equal\",\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"greater\",\n      \"detail\": \">\",\n      \"doc\": \"Greater-than sign r:\"\n    },\n    {\n      \"name\": \"mathquestion\"\n    },\n    {\n      \"name\": \"mathatsign\"\n    },\n    {\n      \"name\": \"mathyen\"\n    },\n    {\n      \"name\": \"matheth\",\n      \"detail\": \"ð (\\\"amssymb arevmath\\\" command)\",\n      \"doc\": \"Eth\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"ovhook\",\n      \"detail\": \" ̉\",\n      \"doc\": \"Combining hook above\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"ocommatopright\",\n      \"detail\": \" ̕\",\n      \"doc\": \"Combining comma above right\"\n    },\n    {\n      \"name\": \"droang\",\n      \"detail\": \" ̚\",\n      \"doc\": \"Left angle above (non-spacing)\"\n    },\n    {\n      \"name\": \"wideutilde\",\n      \"detail\": \" ̰ (\\\"undertilde\\\" command)\",\n      \"doc\": \"Under tilde accent (multiple characters and non-spacing)\"\n    },\n    {\n      \"name\": \"mathunderbar\"\n    },\n    {\n      \"name\": \"underleftrightarrow\"\n    },\n    {\n      \"name\": \"mupAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muptheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muplambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muppi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muprho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muptau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muppsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upoldKoppa\",\n      \"unusual\": true,\n      \"detail\": \"Ϙ (\\\"arevmath\\\" command)\",\n      \"doc\": \"\\\\koppa (wrisym), t \\\\qoppa (lgr), greek letter archaic koppa\"\n    },\n    {\n      \"name\": \"upoldkoppa\",\n      \"unusual\": true,\n      \"detail\": \"ϙ (\\\"arevmath\\\" command)\",\n      \"doc\": \"\\\\koppa (wrisym), t \\\\qoppa (lgr), greek small letter archaic koppa\"\n    },\n    {\n      \"name\": \"upStigma\",\n      \"unusual\": true,\n      \"detail\": \"Ϛ (\\\"arevmath wrisym\\\" command)\",\n      \"doc\": \"Capital stigma\"\n    },\n    {\n      \"name\": \"upstigma\",\n      \"unusual\": true,\n      \"detail\": \"ϛ (\\\"arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter stigma\"\n    },\n    {\n      \"name\": \"upDigamma\",\n      \"unusual\": true,\n      \"detail\": \"Ϝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Capital digamma\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"upkoppa\",\n      \"unusual\": true,\n      \"detail\": \"ϟ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Greek small letter koppa\"\n    },\n    {\n      \"name\": \"upSampi\",\n      \"unusual\": true,\n      \"detail\": \"Ϡ (\\\"arevmath wrisym\\\" command)\",\n      \"doc\": \"Capital sampi\"\n    },\n    {\n      \"name\": \"upsampi\",\n      \"unusual\": true,\n      \"detail\": \"ϡ (\\\"arevmath\\\" command)\",\n      \"doc\": \"\\\\sampi (wrisym), greek small letter sampi\"\n    },\n    {\n      \"name\": \"mupvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"oldKoppa\"\n    },\n    {\n      \"name\": \"oldkoppa\"\n    },\n    {\n      \"name\": \"Stigma\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"Sampi\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"unicodeellipsis\",\n      \"detail\": \"…\",\n      \"doc\": \"Ellipsis (horizontal)\"\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"fracslash\",\n      \"detail\": \"⁄\",\n      \"doc\": \"/, fraction slash\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"BbbC\",\n      \"detail\": \"ℂ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{c} (dsfont), open face c\"\n    },\n    {\n      \"name\": \"BbbR\",\n      \"detail\": \"ℝ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{r} (dsfont), open face r\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"increment\",\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"blanksymbol\"\n    },\n    {\n      \"name\": \"mathvisiblespace\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"neuter\",\n      \"detail\": \"⚲\",\n      \"doc\": \"Neuter\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/typicons.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ticon{${1:icon}}\"\n      }\n    },\n    {\n      \"name\": \"tiAdjustBrightness\"\n    },\n    {\n      \"name\": \"tiAdjustContrast\"\n    },\n    {\n      \"name\": \"tiAnchorOutline\"\n    },\n    {\n      \"name\": \"tiAnchor\"\n    },\n    {\n      \"name\": \"tiArchive\"\n    },\n    {\n      \"name\": \"tiArrowBackOutline\"\n    },\n    {\n      \"name\": \"tiArrowBack\"\n    },\n    {\n      \"name\": \"tiArrowDownOutline\"\n    },\n    {\n      \"name\": \"tiArrowDownThick\"\n    },\n    {\n      \"name\": \"tiArrowDown\"\n    },\n    {\n      \"name\": \"tiArrowForwardOutline\"\n    },\n    {\n      \"name\": \"tiArrowForward\"\n    },\n    {\n      \"name\": \"tiArrowLeftOutline\"\n    },\n    {\n      \"name\": \"tiArrowLeftThick\"\n    },\n    {\n      \"name\": \"tiArrowLeft\"\n    },\n    {\n      \"name\": \"tiArrowLoopOutline\"\n    },\n    {\n      \"name\": \"tiArrowLoop\"\n    },\n    {\n      \"name\": \"tiArrowMaximiseOutline\"\n    },\n    {\n      \"name\": \"tiArrowMaximise\"\n    },\n    {\n      \"name\": \"tiArrowMinimiseOutline\"\n    },\n    {\n      \"name\": \"tiArrowMinimise\"\n    },\n    {\n      \"name\": \"tiArrowMoveOutline\"\n    },\n    {\n      \"name\": \"tiArrowMove\"\n    },\n    {\n      \"name\": \"tiArrowRepeatOutline\"\n    },\n    {\n      \"name\": \"tiArrowRepeat\"\n    },\n    {\n      \"name\": \"tiArrowRightOutline\"\n    },\n    {\n      \"name\": \"tiArrowRightThick\"\n    },\n    {\n      \"name\": \"tiArrowRight\"\n    },\n    {\n      \"name\": \"tiArrowShuffle\"\n    },\n    {\n      \"name\": \"tiArrowSortedDown\"\n    },\n    {\n      \"name\": \"tiArrowSortedUp\"\n    },\n    {\n      \"name\": \"tiArrowSyncOutline\"\n    },\n    {\n      \"name\": \"tiArrowSync\"\n    },\n    {\n      \"name\": \"tiArrowUnsorted\"\n    },\n    {\n      \"name\": \"tiArrowUpOutline\"\n    },\n    {\n      \"name\": \"tiArrowUpThick\"\n    },\n    {\n      \"name\": \"tiArrowUp\"\n    },\n    {\n      \"name\": \"tiAt\"\n    },\n    {\n      \"name\": \"tiAttachmentOutline\"\n    },\n    {\n      \"name\": \"tiAttachment\"\n    },\n    {\n      \"name\": \"tiBackspaceOutline\"\n    },\n    {\n      \"name\": \"tiBackspace\"\n    },\n    {\n      \"name\": \"tiBatteryCharge\"\n    },\n    {\n      \"name\": \"tiBatteryFull\"\n    },\n    {\n      \"name\": \"tiBatteryHigh\"\n    },\n    {\n      \"name\": \"tiBatteryLow\"\n    },\n    {\n      \"name\": \"tiBatteryMid\"\n    },\n    {\n      \"name\": \"tiBeaker\"\n    },\n    {\n      \"name\": \"tiBeer\"\n    },\n    {\n      \"name\": \"tiBell\"\n    },\n    {\n      \"name\": \"tiBook\"\n    },\n    {\n      \"name\": \"tiBookmark\"\n    },\n    {\n      \"name\": \"tiBriefcase\"\n    },\n    {\n      \"name\": \"tiBrush\"\n    },\n    {\n      \"name\": \"tiBusinessCard\"\n    },\n    {\n      \"name\": \"tiCalculator\"\n    },\n    {\n      \"name\": \"tiCalendarOutline\"\n    },\n    {\n      \"name\": \"tiCalendar\"\n    },\n    {\n      \"name\": \"tiCameraOutline\"\n    },\n    {\n      \"name\": \"tiCamera\"\n    },\n    {\n      \"name\": \"tiCancelOutline\"\n    },\n    {\n      \"name\": \"tiCancel\"\n    },\n    {\n      \"name\": \"tiChartAreaOutline\"\n    },\n    {\n      \"name\": \"tiChartArea\"\n    },\n    {\n      \"name\": \"tiChartBarOutline\"\n    },\n    {\n      \"name\": \"tiChartBar\"\n    },\n    {\n      \"name\": \"tiChartLineOutline\"\n    },\n    {\n      \"name\": \"tiChartLine\"\n    },\n    {\n      \"name\": \"tiChartPieOutline\"\n    },\n    {\n      \"name\": \"tiChartPie\"\n    },\n    {\n      \"name\": \"tiChevronLeftOutline\"\n    },\n    {\n      \"name\": \"tiChevronLeft\"\n    },\n    {\n      \"name\": \"tiChevronRightOutline\"\n    },\n    {\n      \"name\": \"tiChevronRight\"\n    },\n    {\n      \"name\": \"tiClipboard\"\n    },\n    {\n      \"name\": \"tiCloudStorage\"\n    },\n    {\n      \"name\": \"tiCloudStorageOutline\"\n    },\n    {\n      \"name\": \"tiCodeOutline\"\n    },\n    {\n      \"name\": \"tiCode\"\n    },\n    {\n      \"name\": \"tiCoffee\"\n    },\n    {\n      \"name\": \"tiCogOutline\"\n    },\n    {\n      \"name\": \"tiCog\"\n    },\n    {\n      \"name\": \"tiCompass\"\n    },\n    {\n      \"name\": \"tiContacts\"\n    },\n    {\n      \"name\": \"tiCreditCard\"\n    },\n    {\n      \"name\": \"tiCss3\"\n    },\n    {\n      \"name\": \"tiDatabase\"\n    },\n    {\n      \"name\": \"tiDeleteOutline\"\n    },\n    {\n      \"name\": \"tiDelete\"\n    },\n    {\n      \"name\": \"tiDeviceDesktop\"\n    },\n    {\n      \"name\": \"tiDeviceLaptop\"\n    },\n    {\n      \"name\": \"tiDevicePhone\"\n    },\n    {\n      \"name\": \"tiDeviceTablet\"\n    },\n    {\n      \"name\": \"tiDirections\"\n    },\n    {\n      \"name\": \"tiDivideOutline\"\n    },\n    {\n      \"name\": \"tiDivide\"\n    },\n    {\n      \"name\": \"tiDocumentAdd\"\n    },\n    {\n      \"name\": \"tiDocumentDelete\"\n    },\n    {\n      \"name\": \"tiDocumentText\"\n    },\n    {\n      \"name\": \"tiDocument\"\n    },\n    {\n      \"name\": \"tiDownloadOutline\"\n    },\n    {\n      \"name\": \"tiDownload\"\n    },\n    {\n      \"name\": \"tiDropbox\"\n    },\n    {\n      \"name\": \"tiEdit\"\n    },\n    {\n      \"name\": \"tiEjectOutline\"\n    },\n    {\n      \"name\": \"tiEject\"\n    },\n    {\n      \"name\": \"tiEqualsOutline\"\n    },\n    {\n      \"name\": \"tiEquals\"\n    },\n    {\n      \"name\": \"tiExportOutline\"\n    },\n    {\n      \"name\": \"tiExport\"\n    },\n    {\n      \"name\": \"tiEyeOutline\"\n    },\n    {\n      \"name\": \"tiEye\"\n    },\n    {\n      \"name\": \"tiFeather\"\n    },\n    {\n      \"name\": \"tiFilm\"\n    },\n    {\n      \"name\": \"tiFilter\"\n    },\n    {\n      \"name\": \"tiFlagOutline\"\n    },\n    {\n      \"name\": \"tiFlag\"\n    },\n    {\n      \"name\": \"tiFlashOutline\"\n    },\n    {\n      \"name\": \"tiFlash\"\n    },\n    {\n      \"name\": \"tiFlowChildren\"\n    },\n    {\n      \"name\": \"tiFlowMerge\"\n    },\n    {\n      \"name\": \"tiFlowParallel\"\n    },\n    {\n      \"name\": \"tiFlowSwitch\"\n    },\n    {\n      \"name\": \"tiFolderAdd\"\n    },\n    {\n      \"name\": \"tiFolderDelete\"\n    },\n    {\n      \"name\": \"tiFolderOpen\"\n    },\n    {\n      \"name\": \"tiFolder\"\n    },\n    {\n      \"name\": \"tiGift\"\n    },\n    {\n      \"name\": \"tiGlobeOutline\"\n    },\n    {\n      \"name\": \"tiGlobe\"\n    },\n    {\n      \"name\": \"tiGroupOutline\"\n    },\n    {\n      \"name\": \"tiGroup\"\n    },\n    {\n      \"name\": \"tiHeadphones\"\n    },\n    {\n      \"name\": \"tiHeartFullOutline\"\n    },\n    {\n      \"name\": \"tiHeartHalfOutline\"\n    },\n    {\n      \"name\": \"tiHeartOutline\"\n    },\n    {\n      \"name\": \"tiHeart\"\n    },\n    {\n      \"name\": \"tiHomeOutline\"\n    },\n    {\n      \"name\": \"tiHome\"\n    },\n    {\n      \"name\": \"tiHtml5\"\n    },\n    {\n      \"name\": \"tiImageOutline\"\n    },\n    {\n      \"name\": \"tiImage\"\n    },\n    {\n      \"name\": \"tiInfinityOutline\"\n    },\n    {\n      \"name\": \"tiInfinity\"\n    },\n    {\n      \"name\": \"tiInfoLargeOutline\"\n    },\n    {\n      \"name\": \"tiInfoLarge\"\n    },\n    {\n      \"name\": \"tiInfoOutline\"\n    },\n    {\n      \"name\": \"tiInfo\"\n    },\n    {\n      \"name\": \"tiInputCheckedOutline\"\n    },\n    {\n      \"name\": \"tiInputChecked\"\n    },\n    {\n      \"name\": \"tiKeyOutline\"\n    },\n    {\n      \"name\": \"tiKey\"\n    },\n    {\n      \"name\": \"tiKeyboard\"\n    },\n    {\n      \"name\": \"tiLeaf\"\n    },\n    {\n      \"name\": \"tiLightbulb\"\n    },\n    {\n      \"name\": \"tiLinkOutline\"\n    },\n    {\n      \"name\": \"tiLink\"\n    },\n    {\n      \"name\": \"tiLocationArrowOutline\"\n    },\n    {\n      \"name\": \"tiLocationArrow\"\n    },\n    {\n      \"name\": \"tiLocationOutline\"\n    },\n    {\n      \"name\": \"tiLocation\"\n    },\n    {\n      \"name\": \"tiLockClosedOutline\"\n    },\n    {\n      \"name\": \"tiLockClosed\"\n    },\n    {\n      \"name\": \"tiLockOpenOutline\"\n    },\n    {\n      \"name\": \"tiLockOpen\"\n    },\n    {\n      \"name\": \"tiMail\"\n    },\n    {\n      \"name\": \"tiMap\"\n    },\n    {\n      \"name\": \"tiMediaEjectOutline\"\n    },\n    {\n      \"name\": \"tiMediaEject\"\n    },\n    {\n      \"name\": \"tiMediaFastForwardOutline\"\n    },\n    {\n      \"name\": \"tiMediaFastForward\"\n    },\n    {\n      \"name\": \"tiMediaPauseOutline\"\n    },\n    {\n      \"name\": \"tiMediaPause\"\n    },\n    {\n      \"name\": \"tiMediaPlayOutline\"\n    },\n    {\n      \"name\": \"tiMediaPlayReverseOutline\"\n    },\n    {\n      \"name\": \"tiMediaPlayReverse\"\n    },\n    {\n      \"name\": \"tiMediaPlay\"\n    },\n    {\n      \"name\": \"tiMediaRecordOutline\"\n    },\n    {\n      \"name\": \"tiMediaRecord\"\n    },\n    {\n      \"name\": \"tiMediaRewindOutline\"\n    },\n    {\n      \"name\": \"tiMediaRewind\"\n    },\n    {\n      \"name\": \"tiMediaStopOutline\"\n    },\n    {\n      \"name\": \"tiMediaStop\"\n    },\n    {\n      \"name\": \"tiMessageTyping\"\n    },\n    {\n      \"name\": \"tiMessage\"\n    },\n    {\n      \"name\": \"tiMessages\"\n    },\n    {\n      \"name\": \"tiMicrophoneOutline\"\n    },\n    {\n      \"name\": \"tiMicrophone\"\n    },\n    {\n      \"name\": \"tiMinusOutline\"\n    },\n    {\n      \"name\": \"tiMinus\"\n    },\n    {\n      \"name\": \"tiMortarBoard\"\n    },\n    {\n      \"name\": \"tiNews\"\n    },\n    {\n      \"name\": \"tiNotesOutline\"\n    },\n    {\n      \"name\": \"tiNotes\"\n    },\n    {\n      \"name\": \"tiPen\"\n    },\n    {\n      \"name\": \"tiPencil\"\n    },\n    {\n      \"name\": \"tiPhoneOutline\"\n    },\n    {\n      \"name\": \"tiPhone\"\n    },\n    {\n      \"name\": \"tiPiOutline\"\n    },\n    {\n      \"name\": \"tiPi\"\n    },\n    {\n      \"name\": \"tiPinOutline\"\n    },\n    {\n      \"name\": \"tiPin\"\n    },\n    {\n      \"name\": \"tiPipette\"\n    },\n    {\n      \"name\": \"tiPlaneOutline\"\n    },\n    {\n      \"name\": \"tiPlane\"\n    },\n    {\n      \"name\": \"tiPlug\"\n    },\n    {\n      \"name\": \"tiPlusOutline\"\n    },\n    {\n      \"name\": \"tiPlus\"\n    },\n    {\n      \"name\": \"tiPointOfInterestOutline\"\n    },\n    {\n      \"name\": \"tiPointOfInterest\"\n    },\n    {\n      \"name\": \"tiPowerOutline\"\n    },\n    {\n      \"name\": \"tiPower\"\n    },\n    {\n      \"name\": \"tiPrinter\"\n    },\n    {\n      \"name\": \"tiPuzzleOutline\"\n    },\n    {\n      \"name\": \"tiPuzzle\"\n    },\n    {\n      \"name\": \"tiRadarOutline\"\n    },\n    {\n      \"name\": \"tiRadar\"\n    },\n    {\n      \"name\": \"tiRefreshOutline\"\n    },\n    {\n      \"name\": \"tiRefresh\"\n    },\n    {\n      \"name\": \"tiRssOutline\"\n    },\n    {\n      \"name\": \"tiRss\"\n    },\n    {\n      \"name\": \"tiScissorsOutline\"\n    },\n    {\n      \"name\": \"tiScissors\"\n    },\n    {\n      \"name\": \"tiShoppingBag\"\n    },\n    {\n      \"name\": \"tiShoppingCart\"\n    },\n    {\n      \"name\": \"tiSocialAtCircular\"\n    },\n    {\n      \"name\": \"tiSocialDribbbleCircular\"\n    },\n    {\n      \"name\": \"tiSocialDribbble\"\n    },\n    {\n      \"name\": \"tiSocialFacebookCircular\"\n    },\n    {\n      \"name\": \"tiSocialFacebook\"\n    },\n    {\n      \"name\": \"tiSocialFlickrCircular\"\n    },\n    {\n      \"name\": \"tiSocialFlickr\"\n    },\n    {\n      \"name\": \"tiSocialGithubCircular\"\n    },\n    {\n      \"name\": \"tiSocialGithub\"\n    },\n    {\n      \"name\": \"tiSocialGooglePlusCircular\"\n    },\n    {\n      \"name\": \"tiSocialGooglePlus\"\n    },\n    {\n      \"name\": \"tiSocialInstagramCircular\"\n    },\n    {\n      \"name\": \"tiSocialInstagram\"\n    },\n    {\n      \"name\": \"tiSocialLastFmCircular\"\n    },\n    {\n      \"name\": \"tiSocialLastFm\"\n    },\n    {\n      \"name\": \"tiSocialLinkedinCircular\"\n    },\n    {\n      \"name\": \"tiSocialLinkedin\"\n    },\n    {\n      \"name\": \"tiSocialPinterestCircular\"\n    },\n    {\n      \"name\": \"tiSocialPinterest\"\n    },\n    {\n      \"name\": \"tiSocialSkypeOutline\"\n    },\n    {\n      \"name\": \"tiSocialSkype\"\n    },\n    {\n      \"name\": \"tiSocialTumblerCircular\"\n    },\n    {\n      \"name\": \"tiSocialTumbler\"\n    },\n    {\n      \"name\": \"tiSocialTwitterCircular\"\n    },\n    {\n      \"name\": \"tiSocialTwitter\"\n    },\n    {\n      \"name\": \"tiSocialVimeoCircular\"\n    },\n    {\n      \"name\": \"tiSocialVimeo\"\n    },\n    {\n      \"name\": \"tiSocialYoutubeCircular\"\n    },\n    {\n      \"name\": \"tiSocialYoutube\"\n    },\n    {\n      \"name\": \"tiSortAlphabeticallyOutline\"\n    },\n    {\n      \"name\": \"tiSortAlphabetically\"\n    },\n    {\n      \"name\": \"tiSortNumericallyOutline\"\n    },\n    {\n      \"name\": \"tiSortNumerically\"\n    },\n    {\n      \"name\": \"tiSpannerOutline\"\n    },\n    {\n      \"name\": \"tiSpanner\"\n    },\n    {\n      \"name\": \"tiSpiral\"\n    },\n    {\n      \"name\": \"tiStarFullOutline\"\n    },\n    {\n      \"name\": \"tiStarHalfOutline\"\n    },\n    {\n      \"name\": \"tiStarHalf\"\n    },\n    {\n      \"name\": \"tiStarOutline\"\n    },\n    {\n      \"name\": \"tiStar\"\n    },\n    {\n      \"name\": \"tiStarburstOutline\"\n    },\n    {\n      \"name\": \"tiStarburst\"\n    },\n    {\n      \"name\": \"tiStopwatch\"\n    },\n    {\n      \"name\": \"tiSupport\"\n    },\n    {\n      \"name\": \"tiTabsOutline\"\n    },\n    {\n      \"name\": \"tiTag\"\n    },\n    {\n      \"name\": \"tiTags\"\n    },\n    {\n      \"name\": \"tiThLargeOutline\"\n    },\n    {\n      \"name\": \"tiThLarge\"\n    },\n    {\n      \"name\": \"tiThListOutline\"\n    },\n    {\n      \"name\": \"tiThList\"\n    },\n    {\n      \"name\": \"tiThMenuOutline\"\n    },\n    {\n      \"name\": \"tiThMenu\"\n    },\n    {\n      \"name\": \"tiThSmallOutline\"\n    },\n    {\n      \"name\": \"tiThSmall\"\n    },\n    {\n      \"name\": \"tiThermometer\"\n    },\n    {\n      \"name\": \"tiThumbsDown\"\n    },\n    {\n      \"name\": \"tiThumbsOk\"\n    },\n    {\n      \"name\": \"tiThumbsUp\"\n    },\n    {\n      \"name\": \"tiTickOutline\"\n    },\n    {\n      \"name\": \"tiTick\"\n    },\n    {\n      \"name\": \"tiTicket\"\n    },\n    {\n      \"name\": \"tiTime\"\n    },\n    {\n      \"name\": \"tiTimesOutline\"\n    },\n    {\n      \"name\": \"tiTimes\"\n    },\n    {\n      \"name\": \"tiTrash\"\n    },\n    {\n      \"name\": \"tiTree\"\n    },\n    {\n      \"name\": \"tiUploadOutline\"\n    },\n    {\n      \"name\": \"tiUpload\"\n    },\n    {\n      \"name\": \"tiUserAddOutline\"\n    },\n    {\n      \"name\": \"tiUserAdd\"\n    },\n    {\n      \"name\": \"tiUserDeleteOutline\"\n    },\n    {\n      \"name\": \"tiUserDelete\"\n    },\n    {\n      \"name\": \"tiUserOutline\"\n    },\n    {\n      \"name\": \"tiUser\"\n    },\n    {\n      \"name\": \"tiVendorAndroid\"\n    },\n    {\n      \"name\": \"tiVendorApple\"\n    },\n    {\n      \"name\": \"tiVendorMicrosoft\"\n    },\n    {\n      \"name\": \"tiVideoOutline\"\n    },\n    {\n      \"name\": \"tiVideo\"\n    },\n    {\n      \"name\": \"tiVolumeDown\"\n    },\n    {\n      \"name\": \"tiVolumeMute\"\n    },\n    {\n      \"name\": \"tiVolumeUp\"\n    },\n    {\n      \"name\": \"tiVolume\"\n    },\n    {\n      \"name\": \"tiWarningOutline\"\n    },\n    {\n      \"name\": \"tiWarning\"\n    },\n    {\n      \"name\": \"tiWatch\"\n    },\n    {\n      \"name\": \"tiWavesOutline\"\n    },\n    {\n      \"name\": \"tiWaves\"\n    },\n    {\n      \"name\": \"tiWeatherCloudy\"\n    },\n    {\n      \"name\": \"tiWeatherDownpour\"\n    },\n    {\n      \"name\": \"tiWeatherNight\"\n    },\n    {\n      \"name\": \"tiWeatherPartlySunny\"\n    },\n    {\n      \"name\": \"tiWeatherShower\"\n    },\n    {\n      \"name\": \"tiWeatherSnow\"\n    },\n    {\n      \"name\": \"tiWeatherStormy\"\n    },\n    {\n      \"name\": \"tiWeatherSunny\"\n    },\n    {\n      \"name\": \"tiWeatherWindyCloudy\"\n    },\n    {\n      \"name\": \"tiWeatherWindy\"\n    },\n    {\n      \"name\": \"tiWiFiOutline\"\n    },\n    {\n      \"name\": \"tiWiFi\"\n    },\n    {\n      \"name\": \"tiWine\"\n    },\n    {\n      \"name\": \"tiWorldOutline\"\n    },\n    {\n      \"name\": \"tiWorld\"\n    },\n    {\n      \"name\": \"tiZoomInOutline\"\n    },\n    {\n      \"name\": \"tiZoomIn\"\n    },\n    {\n      \"name\": \"tiZoomOutOutline\"\n    },\n    {\n      \"name\": \"tiZoomOut\"\n    },\n    {\n      \"name\": \"tiZoomOutline\"\n    },\n    {\n      \"name\": \"tiZoom\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/typoaid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"typrintalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintalph{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"typrintalph*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintalph*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"typrintex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintex{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"typrintex*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintex*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"typrintem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintem{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"typrintem*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typrintem*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tyallsimple\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tyallsimple{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tyallsimple*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tyallsimple*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tychperwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tychperwidth{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tychperwidth\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tychperwidth[${2:width}]{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tychperwidth*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tychperwidth*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tychperwidth*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tychperwidth*[${2:width}]{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthgivchar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tywidthgivchar{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthgivchar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tywidthgivchar[${2:font switch}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthgivchar*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tywidthgivchar*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthgivchar*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tywidthgivchar*[${2:font switch}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tyheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tyheight{${1:height}}{${2:baselineskip}}\"\n      }\n    },\n    {\n      \"name\": \"tyheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tyheight[${3:font switch}]{${1:height}}{${2:baselineskip}}\"\n      }\n    },\n    {\n      \"name\": \"tyheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"tyheight[${3:font switch}]{${1:height}}{${2:baselineskip}}[${4:font size}]\"\n      }\n    },\n    {\n      \"name\": \"tyheight*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tyheight*{${1:height}}{${2:baselineskip}}\"\n      }\n    },\n    {\n      \"name\": \"tyheight*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tyheight*[${3:font switch}]{${1:height}}{${2:baselineskip}}\"\n      }\n    },\n    {\n      \"name\": \"tyheight*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"tyheight*[${3:font switch}]{${1:height}}{${2:baselineskip}}[${4:font size}]\"\n      }\n    },\n    {\n      \"name\": \"tyfonttable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tyfonttable{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tyfonttable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tyfonttable*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthtable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tywidthtable{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tywidthtable*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tywidthtable*{${1:font switch}}\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tyformfactorheight{${1:height}}{${2:form factor}}\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tyformfactorheight[${3:font switch}]{${1:height}}{${2:form factor}}\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"tyformfactorheight[${3:font switch}]{${1:height}}{${2:form factor}}[${4:baselineskip}]\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tyformfactorheight*{${1:height}}{${2:form factor}}\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"tyformfactorheight*[${3:font switch}]{${1:height}}{${2:form factor}}\"\n      }\n    },\n    {\n      \"name\": \"tyformfactorheight*\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"tyformfactorheight*[${3:font switch}]{${1:height}}{${2:form factor}}[${4:baselineskip}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/typog.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"everyhook\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"typogget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typogget{${1:key%keyvals}}\",\n        \"keys\": [\n          \"\\\\typogget\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typoggetnth\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"typoggetnth{${1:csname}}{${2:key%keyvals}}{${3:index}}\",\n        \"keys\": [\n          \"\\\\typoggetnth\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"fontsizeinfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontsizeinfo{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"fontsizeinfo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fontsizeinfo*{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"allowhyphenation\"\n    },\n    {\n      \"name\": \"breakpoint\"\n    },\n    {\n      \"name\": \"breakpoint*\"\n    },\n    {\n      \"name\": \"nolig\"\n    },\n    {\n      \"name\": \"nolig\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nolig[${1:kerning}]\"\n      }\n    },\n    {\n      \"name\": \"nolig*\"\n    },\n    {\n      \"name\": \"nolig*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nolig*[${1:kerning}]\"\n      }\n    },\n    {\n      \"name\": \"itcorr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itcorr{${1:strength}}\"\n      }\n    },\n    {\n      \"name\": \"itcorr*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"itcorr*{${1:strength}}\"\n      }\n    },\n    {\n      \"name\": \"kernedslash\"\n    },\n    {\n      \"name\": \"kernedslash*\"\n    },\n    {\n      \"name\": \"kernedhyphen\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kernedhyphen{${1:left-kern}}{${2:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"kernedhyphen\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kernedhyphen[${3:raise}]{${1:left-kern}}{${2:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"kernedhyphen*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"kernedhyphen*{${1:left-kern}}{${2:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"kernedhyphen*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"kernedhyphen*[${3:raise}]{${1:left-kern}}{${2:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"leftkernedhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftkernedhyphen{${1:left-kern}}\"\n      }\n    },\n    {\n      \"name\": \"leftkernedhyphen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftkernedhyphen[${2:raise}]{${1:left-kern}}\"\n      }\n    },\n    {\n      \"name\": \"leftkernedhyphen*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftkernedhyphen*{${1:left-kern}}\"\n      }\n    },\n    {\n      \"name\": \"leftkernedhyphen*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"leftkernedhyphen*[${2:raise}]{${1:left-kern}}\"\n      }\n    },\n    {\n      \"name\": \"rightkernedhyphen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightkernedhyphen{${1:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"rightkernedhyphen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightkernedhyphen[${2:raise}]{${1:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"rightkernedhyphen*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightkernedhyphen*{${1:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"rightkernedhyphen*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"rightkernedhyphen*[${2:raise}]{${1:right-kern}}\"\n      }\n    },\n    {\n      \"name\": \"capitalhyphen\"\n    },\n    {\n      \"name\": \"capitalhyphen*\"\n    },\n    {\n      \"name\": \"capitalendash\"\n    },\n    {\n      \"name\": \"capitalendash*\"\n    },\n    {\n      \"name\": \"capitaldash\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capitaldash*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"capitalemdash\"\n    },\n    {\n      \"name\": \"capitalemdash*\"\n    },\n    {\n      \"name\": \"figuredash\"\n    },\n    {\n      \"name\": \"figuredash*\"\n    },\n    {\n      \"name\": \"capitaltimes\"\n    },\n    {\n      \"name\": \"singleguillemetleft\"\n    },\n    {\n      \"name\": \"singleguillemetright\"\n    },\n    {\n      \"name\": \"doubleguillemetleft\"\n    },\n    {\n      \"name\": \"doubleguillemetright\"\n    },\n    {\n      \"name\": \"Singleguillemetleft\"\n    },\n    {\n      \"name\": \"Singleguillemetright\"\n    },\n    {\n      \"name\": \"Doubleguillemetleft\"\n    },\n    {\n      \"name\": \"Doubleguillemetright\"\n    },\n    {\n      \"name\": \"uppercaseadjustlabelitems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercaseadjustlabelitems{${1:levels-to-adjust}}\"\n      }\n    },\n    {\n      \"name\": \"lowercaseadjustlabelitems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercaseadjustlabelitems{${1:levels-to-adjust}}\"\n      }\n    },\n    {\n      \"name\": \"noadjustlabelitems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"noadjustlabelitems{${1:levels-to-adjust}}\"\n      }\n    },\n    {\n      \"name\": \"typogadjuststairs\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"typogadjuststairs{${1:step-size}}{${2:number-of-steps}}{${3:sample}}\"\n      }\n    },\n    {\n      \"name\": \"typogadjuststairs\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"typogadjuststairs[${4:scale}]{${1:step-size}}{${2:number-of-steps}}{${3:sample}}\"\n      }\n    },\n    {\n      \"name\": \"typoguppercaseadjustcheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typoguppercaseadjustcheck{${1:sample}}\"\n      }\n    },\n    {\n      \"name\": \"typoguppercaseadjustcheck\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typoguppercaseadjustcheck[${2:scale}]{${1:sample}}\"\n      }\n    },\n    {\n      \"name\": \"typoglowercaseadjustcheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typoglowercaseadjustcheck{${1:sample}}\"\n      }\n    },\n    {\n      \"name\": \"typoglowercaseadjustcheck\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"typoglowercaseadjustcheck[${2:scale}]{${1:sample}}\"\n      }\n    },\n    {\n      \"name\": \"widespace\"\n    },\n    {\n      \"name\": \"widespace*\"\n    },\n    {\n      \"name\": \"narrowspace\"\n    },\n    {\n      \"name\": \"narrowspace*\"\n    },\n    {\n      \"name\": \"slightlysloppy\"\n    },\n    {\n      \"name\": \"slightlysloppy\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"slightlysloppy[${1:sloppiness}]\"\n      }\n    },\n    {\n      \"name\": \"vtietop\"\n    },\n    {\n      \"name\": \"vtietop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vtietop[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"splicevtietop\"\n    },\n    {\n      \"name\": \"splicevtietop\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"splicevtietop[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"vtiebot\"\n    },\n    {\n      \"name\": \"vtiebot\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vtiebot[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"setbaselineskip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbaselineskip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"resetbaselineskip\"\n    },\n    {\n      \"name\": \"setbaselineskippercentage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbaselineskippercentage{${1:percent}}\"\n      }\n    },\n    {\n      \"name\": \"setleading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setleading{${1:leading}}\"\n      }\n    },\n    {\n      \"name\": \"setleadingpercentage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setleadingpercentage{${1:percent}}\"\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightfuzzfactor\"\n    },\n    {\n      \"name\": \"smoothraggedrightgenerator\"\n    },\n    {\n      \"name\": \"smoothraggedrightleftskip\"\n    },\n    {\n      \"name\": \"smoothraggedrightparindent\"\n    },\n    {\n      \"name\": \"smoothraggedrightragwidth\"\n    },\n    {\n      \"name\": \"typogadjuststairsfor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"typogadjuststairsfor{${1:scale-factor}}{${2:step-size}}{${3:number-of-steps}}{${4:sample}}{${5:N}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"typogsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/typog#c,\\\\begin{typogsetup}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typoginspect\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"typoginspect\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:option%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\begin{typoginspect},\\\\begin{typoginspectpar}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typoginspectpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"typoginspectpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:option%keyvals}]{${1:id}}\",\n        \"keys\": [\n          \"\\\\begin{typoginspect},\\\\begin{typoginspectpar}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hyphenmin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:hyphen-min}}\"\n      }\n    },\n    {\n      \"name\": \"hyphenmin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:left-hyphen-min}]{${1:hyphen-min}}\"\n      }\n    },\n    {\n      \"name\": \"lastlineraggedleftpar\"\n    },\n    {\n      \"name\": \"lastlineflushrightpar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinecenteredpar\"\n    },\n    {\n      \"name\": \"shortenpar\"\n    },\n    {\n      \"name\": \"prolongpar\"\n    },\n    {\n      \"name\": \"covernextindentpar\"\n    },\n    {\n      \"name\": \"covernextindentpar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:dim}]\"\n      }\n    },\n    {\n      \"name\": \"openlastlinepar\"\n    },\n    {\n      \"name\": \"openlastlinepar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:dim}]\"\n      }\n    },\n    {\n      \"name\": \"loosespacing\"\n    },\n    {\n      \"name\": \"loosespacing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"tightspacing\"\n    },\n    {\n      \"name\": \"tightspacing\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"setfonttracking\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:delta}}\"\n      }\n    },\n    {\n      \"name\": \"setfontshrink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"setfontstretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"setfontexpand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:level}}\"\n      }\n    },\n    {\n      \"name\": \"nofontexpansion\"\n    },\n    {\n      \"name\": \"nofontexpand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocharprotrusion\"\n    },\n    {\n      \"name\": \"slightlysloppypar\"\n    },\n    {\n      \"name\": \"slightlysloppypar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:sloppiness}]\"\n      }\n    },\n    {\n      \"name\": \"vtietoppar\"\n    },\n    {\n      \"name\": \"vtietoppar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"vtiebotpar\"\n    },\n    {\n      \"name\": \"vtietoppar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"vtiebotdisp\"\n    },\n    {\n      \"name\": \"vtiebotdisp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"vtiebotdisptoppar\"\n    },\n    {\n      \"name\": \"vtiebotdisptoppar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:before-num}]\"\n      }\n    },\n    {\n      \"name\": \"vtiebotdisptoppar\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"[${1:before-num}][${2:after-num}]\"\n      }\n    },\n    {\n      \"name\": \"breakabledisplay\"\n    },\n    {\n      \"name\": \"breakabledisplay\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:level}]\"\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapetriplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:width1}}{${2:width2}}{${3:width3}}\"\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapetriplet\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"[${4:options%keyvals}]{${1:width1}}{${2:width2}}{${3:width3}}\",\n        \"keys\": [\n          \"\\\\begin{smoothraggedrightshapetriplet},\\\\begin{smoothraggedrightshapequintuplet},\\\\begin{smoothraggedrightshapeseptuplet}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapequintuplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:width1}}{${2:width2}}{${3:width3}}{${4:width4}}{${5:width5}}\"\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapequintuplet\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"[${6:options%keyvals}]{${1:width1}}{${2:width2}}{${3:width3}}{${4:width4}}{${5:width5}}\",\n        \"keys\": [\n          \"\\\\begin{smoothraggedrightshapetriplet},\\\\begin{smoothraggedrightshapequintuplet},\\\\begin{smoothraggedrightshapeseptuplet}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapeseptuplet\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}\",\n        \"snippet\": \"{${1:width1}}{${2:width2}}{${3:width3}}{${4:width4}}{${5:width5}}{${6:width6}}{${7:width7}}\"\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightshapeseptuplet\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}{}{}\",\n        \"snippet\": \"[${8:options%keyvals}]{${1:width1}}{${2:width2}}{${3:width3}}{${4:width4}}{${5:width5}}{${6:width6}}{${7:width7}}\",\n        \"keys\": [\n          \"\\\\begin{smoothraggedrightshapetriplet},\\\\begin{smoothraggedrightshapequintuplet},\\\\begin{smoothraggedrightshapeseptuplet}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smoothraggedrightpar\"\n    },\n    {\n      \"name\": \"smoothraggedrightpar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{smoothraggedrightpar},\\\\begin{smoothraggedright}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"smoothraggedright\"\n    },\n    {\n      \"name\": \"smoothraggedright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:option%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{smoothraggedrightpar},\\\\begin{smoothraggedright}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/typog#c,\\\\begin{typogsetup}\": [\n      \"breakpenalty=${1:penalty}\",\n      \"debug\",\n      \"nodebug\",\n      \"ligaturekern=\",\n      \"lowercaselabelitemadjustments={${1:dim1,dim2,dim3,dim4}}\",\n      \"mathitalicscorrection=\",\n      \"raise*=\",\n      \"raisecapitaldash=\",\n      \"raisecapitalhyphen=\",\n      \"raisecapitaltimes=\",\n      \"raisecapitalguillemets=\",\n      \"raiseguillemets=\",\n      \"raisefiguredash=\",\n      \"shrinklimits={${1:lim1,lim2,lim3}}\",\n      \"stretchlimits={${1:lim1,lim2,lim3}}\",\n      \"slashkern=\",\n      \"textitalicscorrection=\",\n      \"trackingttspacing=${1:outer-spacing}\",\n      \"uppercaselabelitemadjustments={${1:dim1,dim2,dim3,dim4}}\"\n    ],\n    \"\\\\typogget\": [\n      \"breakpenalty\",\n      \"ligaturekern\",\n      \"mathitalicscorrection\",\n      \"raise*\",\n      \"raisecapitaldash\",\n      \"raisecapitalhyphen\",\n      \"raisecapitaltimes\",\n      \"raisecapitalguillemets\",\n      \"raiseguillemets\",\n      \"raisefiguredash\",\n      \"shrinklimits\",\n      \"stretchlimits\",\n      \"slashkern\",\n      \"textitalicscorrection\",\n      \"trackingttspacing\"\n    ],\n    \"\\\\typoggetnth\": [\n      \"lowercaselabelitemadjustments\",\n      \"shrinklimits\",\n      \"stretchlimits\",\n      \"trackingttspacing\",\n      \"uppercaselabelitemadjustments\"\n    ],\n    \"\\\\begin{typoginspect},\\\\begin{typoginspectpar}\": [\n      \"tracingboxes\",\n      \"tracingboxes=${1:size}\"\n    ],\n    \"\\\\begin{smoothraggedrightshapetriplet},\\\\begin{smoothraggedrightshapequintuplet},\\\\begin{smoothraggedrightshapeseptuplet}\": [\n      \"leftskip=\",\n      \"parindent=\"\n    ],\n    \"\\\\begin{smoothraggedrightpar},\\\\begin{smoothraggedright}\": [\n      \"linewidth=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/typog#c,\\\\begin{typogsetup}\"\n  ]\n}"
  },
  {
    "path": "dev/packages/typogrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"typogridsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typogridsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/typogrid#c,\\\\typogridsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"typogrid\"\n    },\n    {\n      \"name\": \"gridwidth\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/typogrid#c\": [\n      \"draft\",\n      \"final\",\n      \"colorgrid\",\n      \"grid\"\n    ],\n    \"\\\\usepackage/typogrid#c,\\\\typogridsetup\": [\n      \"columns=${1:number}\",\n      \"headings\",\n      \"margin\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/typogrid#c\",\n    \"\\\\usepackage/typogrid#c,\\\\typogridsetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uarial.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/uarial#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/uarial#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uassign.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"amsthm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ebox\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ebox{${1:}}\"\n      }\n    },\n    {\n      \"name\": \"ientry\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ientry{${1:entry%text}}\"\n      }\n    },\n    {\n      \"name\": \"thequestioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thesolutioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trashcan\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexamplecounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexsolutioncounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thedefcounter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\"\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"exsolution\"\n    },\n    {\n      \"name\": \"definition\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/uassign#c\": [\n      \"hideanswers\",\n      \"hidequestions\",\n      \"assignheader\",\n      \"notesheader\",\n      \"links\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/uassign#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ucharcat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ucharclasses.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setTransitionTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionTo{${1:block name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionFrom\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionFrom{${1:block name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitions\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setTransitions{${1:block name}}{${2:enter-code}}{${3:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsFor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setTransitionsFor{${1:block name}}{${2:enter-code}}{${3:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setDefaultTransitions\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setDefaultTransitions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"disableTransitionRules\"\n    },\n    {\n      \"name\": \"enableTransitionRules\"\n    },\n    {\n      \"name\": \"uccoff\"\n    },\n    {\n      \"name\": \"uccon\"\n    },\n    {\n      \"name\": \"newXeTeXintercharclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AllClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"overrideClassLoading\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClassGroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ArabicsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CanadianSyllabicsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CherokeeFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ChineseClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CyrillicsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DevanagariClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DiacriticsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EthiopicFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GeorgianFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GreekClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KoreanClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"JapaneseClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LatinClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathematicsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MongolianFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MyanmarFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PhoneticsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PunctuationClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SundaneseFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SymbolsClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SyriacFullClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VedicMarksClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YiClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OtherClasses\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"doclass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doclass{${1:class name}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAdlam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAdlam{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAegeanNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAegeanNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAhom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAhom{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAlchemicalSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAlchemicalSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAlphabeticPresentationForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAlphabeticPresentationForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAnatolianHieroglyphs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAnatolianHieroglyphs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAncientGreekMusicalNotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAncientGreekMusicalNotation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAncientGreekNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAncientGreekNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAncientSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAncientSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicExtendedC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicExtendedC{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicMathematicalAlphabeticSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicMathematicalAlphabeticSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicPresentationFormsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicPresentationFormsA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicPresentationFormsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicPresentationFormsB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabicSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArmenian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArmenian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArrows{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForAvestan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForAvestan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBalinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBalinese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBamum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBamum{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBamumSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBamumSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBasicLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBasicLatin{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBassaVah\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBassaVah{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBatak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBatak{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBengali\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBengali{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBhaiksuki\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBhaiksuki{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBlockElements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBlockElements{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBopomofo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBopomofo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBopomofoExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBopomofoExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBoxDrawing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBoxDrawing{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBrahmi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBrahmi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBraillePatterns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBraillePatterns{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBuginese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBuginese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForBuhid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForBuhid{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForByzantineMusicalSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForByzantineMusicalSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCarian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCaucasianAlbanian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCaucasianAlbanian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForChakma\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForChakma{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCham\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCham{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCherokee\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCherokee{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCherokeeSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCherokeeSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForChessSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForChessSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForChorasmian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForChorasmian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKCompatibility\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKCompatibility{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKCompatibilityForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKCompatibilityForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKCompatibilityIdeographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKCompatibilityIdeographs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKCompatibilityIdeographsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKCompatibilityIdeographsSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKRadicalsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKRadicalsSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKStrokes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKStrokes{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKSymbolsAndPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKSymbolsAndPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionC{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionD{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionE{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionF{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionG{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJKUnifiedIdeographsExtensionH\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJKUnifiedIdeographsExtensionH{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCombiningDiacriticalMarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCombiningDiacriticalMarks{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCombiningDiacriticalMarksExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCombiningDiacriticalMarksExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCombiningDiacriticalMarksForSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCombiningDiacriticalMarksForSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCombiningDiacriticalMarksSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCombiningDiacriticalMarksSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCombiningHalfMarks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCombiningHalfMarks{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCommonIndicNumberForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCommonIndicNumberForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForControlPictures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForControlPictures{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCoptic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCopticEpactNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCopticEpactNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCountingRodNumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCountingRodNumerals{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCuneiform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCuneiform{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCuneiformNumbersAndPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCuneiformNumbersAndPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCurrencySymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCurrencySymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCypriotSyllabary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCypriotSyllabary{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyproMinoan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyproMinoan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillicExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillicExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillicExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillicExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillicExtendedC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillicExtendedC{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillicExtendedD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillicExtendedD{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillicSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDeseret\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDeseret{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDevanagari\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDevanagari{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDevanagariExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDevanagariExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDevanagariExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDevanagariExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDingbats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDingbats{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDivesAkuru\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDivesAkuru{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDogra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDogra{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDominoTiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDominoTiles{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDuployan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDuployan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEarlyDynasticCuneiform\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEarlyDynasticCuneiform{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEgyptianHieroglyphs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEgyptianHieroglyphs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEgyptianHieroglyphFormatControls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEgyptianHieroglyphFormatControls{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForElbasan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForElbasan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForElymaic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForElymaic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEmoticons\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEmoticons{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEnclosedAlphanumerics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEnclosedAlphanumerics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEnclosedAlphanumericSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEnclosedAlphanumericSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEnclosedCJKLettersAndMonths\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEnclosedCJKLettersAndMonths{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEnclosedIdeographicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEnclosedIdeographicSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopicExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopicExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopicExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopicExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopicExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopicExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopicSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopicSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeneralPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeneralPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeometricShapes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeometricShapes{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeometricShapesExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeometricShapesExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeorgian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeorgian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeorgianExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeorgianExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeorgianSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeorgianSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGlagolitic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGlagolitic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGlagoliticSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGlagoliticSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGothic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGothic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGrantha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGrantha{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGreekAndCoptic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGreekAndCoptic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGreekExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGreekExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGujarati\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGujarati{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGunjalaGondi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGunjalaGondi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGurmukhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGurmukhi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHalfwidthAndFullwidthForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHalfwidthAndFullwidthForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHangulCompatibilityJamo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHangulCompatibilityJamo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHangulJamo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHangulJamo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHangulJamoExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHangulJamoExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHangulJamoExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHangulJamoExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHangulSyllables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHangulSyllables{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHanifiRohingya\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHanifiRohingya{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHanunoo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHanunoo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHatran\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHatran{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHebrew\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHebrew{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForHiragana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForHiragana{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForIdeographicDescriptionCharacters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForIdeographicDescriptionCharacters{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForIdeographicSymbolsAndPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForIdeographicSymbolsAndPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForImperialAramaic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForImperialAramaic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForIndicSiyaqNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForIndicSiyaqNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForInscriptionalPahlavi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForInscriptionalPahlavi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForInscriptionalParthian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForInscriptionalParthian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForIPAExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForIPAExtensions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForJavanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForJavanese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKaithi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKaithi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKaktovikNumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKaktovikNumerals{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKanaExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKanaExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKanaExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKanaExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKanaSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKanaSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKanbun\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKanbun{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKangxiRadicals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKangxiRadicals{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKannada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKannada{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKatakana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKatakana{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKatakanaPhoneticExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKatakanaPhoneticExtensions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKawi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKawi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKayahLi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKayahLi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKharoshthi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKharoshthi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKhitanSmallScript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKhitanSmallScript{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKhmer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKhmer{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKhmerSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKhmerSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKhojki\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKhojki{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKhudawadi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKhudawadi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLao{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedAdditional\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedAdditional{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedC{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedD\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedD{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedE{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedF{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinExtendedG\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinExtendedG{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatinSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatinSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLepcha\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLepcha{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLetterlikeSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLetterlikeSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLimbu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLimbu{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLinearA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLinearA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLinearBIdeograms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLinearBIdeograms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLinearBSyllabary\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLinearBSyllabary{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLisu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLisu{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLisuSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLisuSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLycian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLycian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLydian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLydian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMahajani\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMahajani{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMahjongTiles\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMahjongTiles{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMakasar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMakasar{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMalayalam\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMalayalam{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMandaic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMandaic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForManichaean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForManichaean{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMarchen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMarchen{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMasaramGondi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMasaramGondi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMathematicalAlphanumericSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMathematicalAlphanumericSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMathematicalOperators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMathematicalOperators{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMayanNumerals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMayanNumerals{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMedefaidrin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMedefaidrin{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMeeteiMayek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMeeteiMayek{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMeeteiMayekExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMeeteiMayekExtensions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMendeKikakui\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMendeKikakui{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMeroiticCursive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMeroiticCursive{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMeroiticHieroglyphs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMeroiticHieroglyphs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiao\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiao{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousMathematicalSymbolsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousMathematicalSymbolsA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousMathematicalSymbolsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousMathematicalSymbolsB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousSymbolsAndArrows\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousSymbolsAndArrows{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousSymbolsAndPictographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousSymbolsAndPictographs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMiscellaneousTechnical\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMiscellaneousTechnical{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForModi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForModi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForModifierToneLetters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForModifierToneLetters{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMongolian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMongolian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMongolianSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMongolianSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMro{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMultani\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMultani{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMusicalSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMusicalSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMyanmar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMyanmar{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMyanmarExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMyanmarExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMyanmarExtendedB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMyanmarExtendedB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNabataean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNabataean{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNagMundari\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNagMundari{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNandinagari\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNandinagari{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNewa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNewa{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNewTaiLue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNewTaiLue{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNKo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNKo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNumberForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNumberForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNyiakengPuachueHmong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNyiakengPuachueHmong{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForNushu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForNushu{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOgham\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOgham{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOlChiki\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOlChiki{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldHungarian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldHungarian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldItalic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldItalic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldNorthArabian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldNorthArabian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldPermic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldPermic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldPersian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldPersian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldSogdian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldSogdian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldSouthArabian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldSouthArabian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldTurkic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldTurkic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOldUighur\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOldUighur{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOpticalCharacterRecognition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOpticalCharacterRecognition{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOriya\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOriya{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOrnamentalDingbats\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOrnamentalDingbats{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOsage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOsage{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOsmanya\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOsmanya{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForOttomanSiyaqNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForOttomanSiyaqNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPahawhHmong\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPahawhHmong{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPalmyrene\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPalmyrene{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPauCinHau\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPauCinHau{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhagsPa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhagsPa{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhaistosDisc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhaistosDisc{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhoenician\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhoenician{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhoneticExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhoneticExtensions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhoneticExtensionsSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhoneticExtensionsSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPlayingCards\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPlayingCards{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPrivateUseArea\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPrivateUseArea{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPsalterPahlavi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPsalterPahlavi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForRejang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForRejang{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForRumiNumeralSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForRumiNumeralSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForRunic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForRunic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSamaritan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSamaritan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSaurashtra\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSaurashtra{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSharada\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSharada{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForShavian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForShavian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForShorthandFormatControls\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForShorthandFormatControls{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSiddham\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSiddham{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSinhala\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSinhala{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSinhalaArchaicNumbers\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSinhalaArchaicNumbers{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSmallFormVariants\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSmallFormVariants{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSmallKanaExtension\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSmallKanaExtension{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSogdian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSogdian{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSoraSompeng\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSoraSompeng{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSoyombo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSoyombo{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSpacingModifierLetters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSpacingModifierLetters{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSundanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSundanese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSundaneseSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSundaneseSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSuperscriptsAndSubscripts\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSuperscriptsAndSubscripts{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalArrowsA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalArrowsA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalArrowsB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalArrowsB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalArrowsC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalArrowsC{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalMathematicalOperators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalMathematicalOperators{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementalSymbolsAndPictographs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementalSymbolsAndPictographs{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementaryPrivateUseAreaA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementaryPrivateUseAreaA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSupplementaryPrivateUseAreaB\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSupplementaryPrivateUseAreaB{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSuttonSignWriting\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSuttonSignWriting{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSylotiNagri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSylotiNagri{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSymbolsAndPictographsExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSymbolsAndPictographsExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSymbolsForLegacyComputing\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSymbolsForLegacyComputing{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSyriac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSyriac{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSyriacSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSyriacSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTagalog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTagalog{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTagbanwa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTagbanwa{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTags\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTags{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTaiLe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTaiLe{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTaiTham\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTaiTham{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTaiViet\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTaiViet{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTaiXuanJingSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTaiXuanJingSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTakri\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTakri{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTamil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTamil{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTamilSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTamilSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTangsa\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTangsa{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTangut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTangut{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTangutComponents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTangutComponents{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTangutSupplement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTangutSupplement{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTelugu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTelugu{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForThaana\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForThaana{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForThai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForThai{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTibetan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTibetan{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTifinagh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTifinagh{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTirhuta\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTirhuta{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForToto\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForToto{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForTransportAndMapSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForTransportAndMapSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForUgaritic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForUgaritic{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForUnifiedCanadianAboriginalSyllabics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForUnifiedCanadianAboriginalSyllabics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForUnifiedCanadianAboriginalSyllabicsExtended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForUnifiedCanadianAboriginalSyllabicsExtended{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForUnifiedCanadianAboriginalSyllabicsExtendedA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForUnifiedCanadianAboriginalSyllabicsExtendedA{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForVai\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForVai{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForVedicExtensions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForVedicExtensions{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForVerticalForms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForVerticalForms{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForVithkuqi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForVithkuqi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForWancho\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForWancho{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForWarangCiti\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForWarangCiti{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForYezidi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForYezidi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForYiRadicals\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForYiRadicals{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForYiSyllables\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForYiSyllables{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForYijingHexagramSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForYijingHexagramSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForZanabazarSquare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForZanabazarSquare{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForZnamennyMusicalNotation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForZnamennyMusicalNotation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForArabics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForArabics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCanadianSyllabics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCanadianSyllabics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCherokeeFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCherokeeFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForChinese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForChinese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCJK\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCJK{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForCyrillics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForCyrillics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForDiacritics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForDiacritics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForEthiopicFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForEthiopicFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGeorgianFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGeorgianFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForGreek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForGreek{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForKorean\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForKorean{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForJapanese\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForJapanese{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForLatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForLatin{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMathematics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMathematics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMongolianFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMongolianFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForMyanmarFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForMyanmarFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPhonetics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPhonetics{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForPunctuation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForPunctuation{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSundaneseFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSundaneseFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSymbols\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSymbols{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForSyriacFull\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForSyriacFull{${1:enter-code}}{${2:exit-code}}\"\n      }\n    },\n    {\n      \"name\": \"setTransitionsForYi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTransitionsForYi{${1:enter-code}}{${2:exit-code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ucharclasses#c\": [\n      \"verbose\",\n      \"Adlam\",\n      \"AegeanNumbers\",\n      \"Ahom\",\n      \"AlchemicalSymbols\",\n      \"AlphabeticPresentationForms\",\n      \"AnatolianHieroglyphs\",\n      \"AncientGreekMusicalNotation\",\n      \"AncientGreekNumbers\",\n      \"AncientSymbols\",\n      \"Arabic\",\n      \"ArabicExtendedA\",\n      \"ArabicExtendedB\",\n      \"ArabicExtendedC\",\n      \"ArabicMathematicalAlphabeticSymbols\",\n      \"ArabicPresentationFormsA\",\n      \"ArabicPresentationFormsB\",\n      \"ArabicSupplement\",\n      \"Armenian\",\n      \"Arrows\",\n      \"Avestan\",\n      \"Balinese\",\n      \"Bamum\",\n      \"BamumSupplement\",\n      \"BasicLatin\",\n      \"BassaVah\",\n      \"Batak\",\n      \"Bengali\",\n      \"Bhaiksuki\",\n      \"BlockElements\",\n      \"Bopomofo\",\n      \"BopomofoExtended\",\n      \"BoxDrawing\",\n      \"Brahmi\",\n      \"BraillePatterns\",\n      \"Buginese\",\n      \"Buhid\",\n      \"ByzantineMusicalSymbols\",\n      \"Carian\",\n      \"CaucasianAlbanian\",\n      \"Chakma\",\n      \"Cham\",\n      \"Cherokee\",\n      \"CherokeeSupplement\",\n      \"ChessSymbols\",\n      \"Chorasmian\",\n      \"CJKCompatibility\",\n      \"CJKCompatibilityForms\",\n      \"CJKCompatibilityIdeographs\",\n      \"CJKCompatibilityIdeographsSupplement\",\n      \"CJKRadicalsSupplement\",\n      \"CJKStrokes\",\n      \"CJKSymbolsAndPunctuation\",\n      \"CJKUnifiedIdeographs\",\n      \"CJKUnifiedIdeographsExtensionA\",\n      \"CJKUnifiedIdeographsExtensionB\",\n      \"CJKUnifiedIdeographsExtensionC\",\n      \"CJKUnifiedIdeographsExtensionD\",\n      \"CJKUnifiedIdeographsExtensionE\",\n      \"CJKUnifiedIdeographsExtensionF\",\n      \"CJKUnifiedIdeographsExtensionG\",\n      \"CJKUnifiedIdeographsExtensionH\",\n      \"CombiningDiacriticalMarks\",\n      \"CombiningDiacriticalMarksExtended\",\n      \"CombiningDiacriticalMarksForSymbols\",\n      \"CombiningDiacriticalMarksSupplement\",\n      \"CombiningHalfMarks\",\n      \"CommonIndicNumberForms\",\n      \"ControlPictures\",\n      \"Coptic\",\n      \"CopticEpactNumbers\",\n      \"CountingRodNumerals\",\n      \"Cuneiform\",\n      \"CuneiformNumbersAndPunctuation\",\n      \"CurrencySymbols\",\n      \"CypriotSyllabary\",\n      \"CyproMinoan\",\n      \"Cyrillic\",\n      \"CyrillicExtendedA\",\n      \"CyrillicExtendedB\",\n      \"CyrillicExtendedC\",\n      \"CyrillicExtendedD\",\n      \"CyrillicSupplement\",\n      \"Deseret\",\n      \"Devanagari\",\n      \"DevanagariExtended\",\n      \"DevanagariExtendedA\",\n      \"Dingbats\",\n      \"DivesAkuru\",\n      \"Dogra\",\n      \"DominoTiles\",\n      \"Duployan\",\n      \"EarlyDynasticCuneiform\",\n      \"EgyptianHieroglyphs\",\n      \"EgyptianHieroglyphFormatControls\",\n      \"Elbasan\",\n      \"Elymaic\",\n      \"Emoticons\",\n      \"EnclosedAlphanumerics\",\n      \"EnclosedAlphanumericSupplement\",\n      \"EnclosedCJKLettersAndMonths\",\n      \"EnclosedIdeographicSupplement\",\n      \"Ethiopic\",\n      \"EthiopicExtended\",\n      \"EthiopicExtendedA\",\n      \"EthiopicExtendedB\",\n      \"EthiopicSupplement\",\n      \"GeneralPunctuation\",\n      \"GeometricShapes\",\n      \"GeometricShapesExtended\",\n      \"Georgian\",\n      \"GeorgianExtended\",\n      \"GeorgianSupplement\",\n      \"Glagolitic\",\n      \"GlagoliticSupplement\",\n      \"Gothic\",\n      \"Grantha\",\n      \"GreekAndCoptic\",\n      \"GreekExtended\",\n      \"Gujarati\",\n      \"GunjalaGondi\",\n      \"Gurmukhi\",\n      \"HalfwidthAndFullwidthForms\",\n      \"HangulCompatibilityJamo\",\n      \"HangulJamo\",\n      \"HangulJamoExtendedA\",\n      \"HangulJamoExtendedB\",\n      \"HangulSyllables\",\n      \"HanifiRohingya\",\n      \"Hanunoo\",\n      \"Hatran\",\n      \"Hebrew\",\n      \"Hiragana\",\n      \"IdeographicDescriptionCharacters\",\n      \"IdeographicSymbolsAndPunctuation\",\n      \"ImperialAramaic\",\n      \"IndicSiyaqNumbers\",\n      \"InscriptionalPahlavi\",\n      \"InscriptionalParthian\",\n      \"IPAExtensions\",\n      \"Javanese\",\n      \"Kaithi\",\n      \"KaktovikNumerals\",\n      \"KanaExtendedA\",\n      \"KanaExtendedB\",\n      \"KanaSupplement\",\n      \"Kanbun\",\n      \"KangxiRadicals\",\n      \"Kannada\",\n      \"Katakana\",\n      \"KatakanaPhoneticExtensions\",\n      \"Kawi\",\n      \"KayahLi\",\n      \"Kharoshthi\",\n      \"KhitanSmallScript\",\n      \"Khmer\",\n      \"KhmerSymbols\",\n      \"Khojki\",\n      \"Khudawadi\",\n      \"Lao\",\n      \"LatinExtendedAdditional\",\n      \"LatinExtendedA\",\n      \"LatinExtendedB\",\n      \"LatinExtendedC\",\n      \"LatinExtendedD\",\n      \"LatinExtendedE\",\n      \"LatinExtendedF\",\n      \"LatinExtendedG\",\n      \"LatinSupplement\",\n      \"Lepcha\",\n      \"LetterlikeSymbols\",\n      \"Limbu\",\n      \"LinearA\",\n      \"LinearBIdeograms\",\n      \"LinearBSyllabary\",\n      \"Lisu\",\n      \"LisuSupplement\",\n      \"Lycian\",\n      \"Lydian\",\n      \"Mahajani\",\n      \"MahjongTiles\",\n      \"Makasar\",\n      \"Malayalam\",\n      \"Mandaic\",\n      \"Manichaean\",\n      \"Marchen\",\n      \"MasaramGondi\",\n      \"MathematicalAlphanumericSymbols\",\n      \"MathematicalOperators\",\n      \"MayanNumerals\",\n      \"Medefaidrin\",\n      \"MeeteiMayek\",\n      \"MeeteiMayekExtensions\",\n      \"MendeKikakui\",\n      \"MeroiticCursive\",\n      \"MeroiticHieroglyphs\",\n      \"Miao\",\n      \"MiscellaneousMathematicalSymbolsA\",\n      \"MiscellaneousMathematicalSymbolsB\",\n      \"MiscellaneousSymbols\",\n      \"MiscellaneousSymbolsAndArrows\",\n      \"MiscellaneousSymbolsAndPictographs\",\n      \"MiscellaneousTechnical\",\n      \"Modi\",\n      \"ModifierToneLetters\",\n      \"Mongolian\",\n      \"MongolianSupplement\",\n      \"Mro\",\n      \"Multani\",\n      \"MusicalSymbols\",\n      \"Myanmar\",\n      \"MyanmarExtendedA\",\n      \"MyanmarExtendedB\",\n      \"Nabataean\",\n      \"NagMundari\",\n      \"Nandinagari\",\n      \"Newa\",\n      \"NewTaiLue\",\n      \"NKo\",\n      \"NumberForms\",\n      \"NyiakengPuachueHmong\",\n      \"Nushu\",\n      \"Ogham\",\n      \"OlChiki\",\n      \"OldHungarian\",\n      \"OldItalic\",\n      \"OldNorthArabian\",\n      \"OldPermic\",\n      \"OldPersian\",\n      \"OldSogdian\",\n      \"OldSouthArabian\",\n      \"OldTurkic\",\n      \"OldUighur\",\n      \"OpticalCharacterRecognition\",\n      \"Oriya\",\n      \"OrnamentalDingbats\",\n      \"Osage\",\n      \"Osmanya\",\n      \"OttomanSiyaqNumbers\",\n      \"PahawhHmong\",\n      \"Palmyrene\",\n      \"PauCinHau\",\n      \"PhagsPa\",\n      \"PhaistosDisc\",\n      \"Phoenician\",\n      \"PhoneticExtensions\",\n      \"PhoneticExtensionsSupplement\",\n      \"PlayingCards\",\n      \"PrivateUseArea\",\n      \"PsalterPahlavi\",\n      \"Rejang\",\n      \"RumiNumeralSymbols\",\n      \"Runic\",\n      \"Samaritan\",\n      \"Saurashtra\",\n      \"Sharada\",\n      \"Shavian\",\n      \"ShorthandFormatControls\",\n      \"Siddham\",\n      \"Sinhala\",\n      \"SinhalaArchaicNumbers\",\n      \"SmallFormVariants\",\n      \"SmallKanaExtension\",\n      \"Sogdian\",\n      \"SoraSompeng\",\n      \"Soyombo\",\n      \"SpacingModifierLetters\",\n      \"Sundanese\",\n      \"SundaneseSupplement\",\n      \"SuperscriptsAndSubscripts\",\n      \"SupplementalArrowsA\",\n      \"SupplementalArrowsB\",\n      \"SupplementalArrowsC\",\n      \"SupplementalMathematicalOperators\",\n      \"SupplementalPunctuation\",\n      \"SupplementalSymbolsAndPictographs\",\n      \"SupplementaryPrivateUseAreaA\",\n      \"SupplementaryPrivateUseAreaB\",\n      \"SuttonSignWriting\",\n      \"SylotiNagri\",\n      \"SymbolsAndPictographsExtendedA\",\n      \"SymbolsForLegacyComputing\",\n      \"Syriac\",\n      \"SyriacSupplement\",\n      \"Tagalog\",\n      \"Tagbanwa\",\n      \"Tags\",\n      \"TaiLe\",\n      \"TaiTham\",\n      \"TaiViet\",\n      \"TaiXuanJingSymbols\",\n      \"Takri\",\n      \"Tamil\",\n      \"TamilSupplement\",\n      \"Tangsa\",\n      \"Tangut\",\n      \"TangutComponents\",\n      \"TangutSupplement\",\n      \"Telugu\",\n      \"Thaana\",\n      \"Thai\",\n      \"Tibetan\",\n      \"Tifinagh\",\n      \"Tirhuta\",\n      \"Toto\",\n      \"TransportAndMapSymbols\",\n      \"Ugaritic\",\n      \"UnifiedCanadianAboriginalSyllabics\",\n      \"UnifiedCanadianAboriginalSyllabicsExtended\",\n      \"UnifiedCanadianAboriginalSyllabicsExtendedA\",\n      \"Vai\",\n      \"VedicExtensions\",\n      \"VerticalForms\",\n      \"Vithkuqi\",\n      \"Wancho\",\n      \"WarangCiti\",\n      \"Yezidi\",\n      \"YiRadicals\",\n      \"YiSyllables\",\n      \"YijingHexagramSymbols\",\n      \"ZanabazarSquare\",\n      \"ZnamennyMusicalNotation\",\n      \"Arabics\",\n      \"CanadianSyllabics\",\n      \"CherokeeFull\",\n      \"Chinese\",\n      \"CJK\",\n      \"Cyrillics\",\n      \"Diacritics\",\n      \"EthiopicFull\",\n      \"GeorgianFull\",\n      \"Greek\",\n      \"Korean\",\n      \"Japanese\",\n      \"Latin\",\n      \"Mathematics\",\n      \"MongolianFull\",\n      \"MyanmarFull\",\n      \"Phonetics\",\n      \"Punctuation\",\n      \"SundaneseFull\",\n      \"Symbols\",\n      \"SyriacFull\",\n      \"Yi\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ucharclasses#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ucs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucshyper\",\n      \"if\": \"hyperref\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"graphics\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetUnicodeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUnicodeOption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/ucs#c,\\\\SetUnicodeOption\",\n          \"\\\\SetUnicodeOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetUnicodeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"SetUnicodeOption[${2:priority}]{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/ucs#c,\\\\SetUnicodeOption\",\n          \"\\\\SetUnicodeOption\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"XDeclareUnicodeOption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"XDeclareUnicodeOption{${1:package%plain}}{${2:name}}{${3:activate}}{${4:on}}{${5:off}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeOption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareUnicodeOption{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeOption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareUnicodeOption[${2:package%plain}]{${1:name%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"unicodevirtual\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodevirtual{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"unicodecombine\"\n    },\n    {\n      \"name\": \"PreloadUnicodePage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PreloadUnicodePage{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"PrerenderUnicode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrerenderUnicode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacter{${1:slot}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUnicodeCharacterAsOptional\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareUnicodeCharacterAsOptional{${1:slot}}{${2:option}}{${3:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"unichar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unichar{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"unicodesuper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unicodesuper{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"PrintUnicodeName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintUnicodeName{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeCharFilter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnicodeCharFilter{${1:command}}\"\n      }\n    },\n    {\n      \"name\": \"UCSProtectionNone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCSProtectionIeC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UCSProtectionUnichar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textascii\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textascii{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textasciiencoding\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ucs#c,\\\\SetUnicodeOption\": [\n      \"combine\",\n      \"nocombine\",\n      \"default\",\n      \"nodefault\",\n      \"document\",\n      \"nodocument\",\n      \"fasterrors\",\n      \"nofasterrors\",\n      \"graphics\",\n      \"nographics\",\n      \"savemem\",\n      \"nosavemem\",\n      \"warnunknown\",\n      \"nowarnunknown\",\n      \"autogenerated\",\n      \"noautogenerated\",\n      \"cjkbg5\",\n      \"nocjkbg5\",\n      \"cjkgb\",\n      \"nocjkgb\",\n      \"cjkhangul\",\n      \"nocjkhangul\",\n      \"cjkjis\",\n      \"nocjkjis\",\n      \"mathletters\",\n      \"nomathletters\",\n      \"postscript\",\n      \"nopostscript\",\n      \"privatecsur\",\n      \"noprivatecsur\",\n      \"tipa\",\n      \"notipa\"\n    ],\n    \"\\\\usepackage/ucs#c\": [\n      \"showmagickern\",\n      \"hyperref\"\n    ],\n    \"\\\\SetUnicodeOption\": [\n      \"%unicodeoption\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ucs#c,\\\\SetUnicodeOption\",\n    \"\\\\usepackage/ucs#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ucshyper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UCSPU\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UCSPU{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"UCSPUrange\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UCSPUrange{${1:num1}}{${2:num2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ucshyper#c\": [\n      \"nodirect\",\n      \"direct\",\n      \"noprerender\",\n      \"prerender\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ucshyper#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ucsutils.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ucs\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UnicodeEmbedFont\",\n      \"if\": \"univerb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UnicodeEmbedFont{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\UnicodeEmbedFont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"univerb\",\n      \"if\": \"univerb\",\n      \"arg\": {\n        \"format\": \"||\",\n        \"snippet\": \"univerb|${1:text}|\"\n      }\n    },\n    {\n      \"name\": \"unistring\",\n      \"if\": \"unistring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unistring{${1:string%definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ucsutils#c\": [\n      \"UnicodeEmbedFont\",\n      \"univerb\",\n      \"unistring\"\n    ],\n    \"\\\\UnicodeEmbedFont\": [\n      \"encoding=${1:encoding}\",\n      \"start=${1:position}\",\n      \"fontstart=${1:position}\",\n      \"num=${1:number}\",\n      \"option=${1:Unicode option}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ucsutils#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ugarite.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"cugarfamily\"\n    },\n    {\n      \"name\": \"textcugar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcugar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Arq\"\n    },\n    {\n      \"name\": \"Ab\"\n    },\n    {\n      \"name\": \"Ag\"\n    },\n    {\n      \"name\": \"Ahu\"\n    },\n    {\n      \"name\": \"Ad\"\n    },\n    {\n      \"name\": \"Ah\"\n    },\n    {\n      \"name\": \"Aw\"\n    },\n    {\n      \"name\": \"Az\"\n    },\n    {\n      \"name\": \"Ahd\"\n    },\n    {\n      \"name\": \"Atd\"\n    },\n    {\n      \"name\": \"Ay\"\n    },\n    {\n      \"name\": \"Ak\"\n    },\n    {\n      \"name\": \"Asa\"\n    },\n    {\n      \"name\": \"Al\"\n    },\n    {\n      \"name\": \"Am\"\n    },\n    {\n      \"name\": \"Adb\"\n    },\n    {\n      \"name\": \"An\"\n    },\n    {\n      \"name\": \"Azd\"\n    },\n    {\n      \"name\": \"As\"\n    },\n    {\n      \"name\": \"Alq\"\n    },\n    {\n      \"name\": \"Ap\"\n    },\n    {\n      \"name\": \"Asd\"\n    },\n    {\n      \"name\": \"Aq\"\n    },\n    {\n      \"name\": \"Ar\"\n    },\n    {\n      \"name\": \"Atb\"\n    },\n    {\n      \"name\": \"Agd\"\n    },\n    {\n      \"name\": \"At\"\n    },\n    {\n      \"name\": \"Ai\"\n    },\n    {\n      \"name\": \"Au\"\n    },\n    {\n      \"name\": \"Asg\"\n    },\n    {\n      \"name\": \"Awd\"\n    },\n    {\n      \"name\": \"Aa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aaleph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abeth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Agimel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adaleth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ahe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Avav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Azayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aheth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ateth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ayod\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Akaph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Alamed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Amem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Anun\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asamekh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ao\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aayin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asade\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aqoph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aresh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atav\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"translitcugar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"translitcugar{${1:char-commands}}\"\n      }\n    },\n    {\n      \"name\": \"translitcugarfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uhrzeit.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"soul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"dtd\"\n    },\n    {\n      \"name\": \"dtc\"\n    },\n    {\n      \"name\": \"uhri\"\n    },\n    {\n      \"name\": \"uhrii\"\n    },\n    {\n      \"name\": \"uhriii\"\n    },\n    {\n      \"name\": \"uhriv\"\n    },\n    {\n      \"name\": \"uhr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uhr{${1:hour}}{${2:minute}}\"\n      }\n    },\n    {\n      \"name\": \"vonbis\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vonbis{${1:hour1}}{${2:minute1}}{${3:hour2}}{${4:minute2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ulem.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"uline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uuline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uwave{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dashuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dashuline{${1:dashing}}\"\n      }\n    },\n    {\n      \"name\": \"dotuline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotuline{${1:dotty}}\"\n      }\n    },\n    {\n      \"name\": \"ULdepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULforem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ULthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markoverwith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markoverwith{${1:something}}\"\n      }\n    },\n    {\n      \"name\": \"normalem\"\n    },\n    {\n      \"name\": \"useunder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"useunder{${1:underline command}}{${2:font declaration}}{${3:font command}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ulem#c\": [\n      \"normalem\",\n      \"ULforem\",\n      \"normalbf\",\n      \"UWforbf\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ulem#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ulgothic.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ulgothic#c\": [\n      \"scaled\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ulgothic#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ulsy.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"odplus\"\n    },\n    {\n      \"name\": \"blitza\"\n    },\n    {\n      \"name\": \"blitzb\"\n    },\n    {\n      \"name\": \"blitzc\"\n    },\n    {\n      \"name\": \"blitzd\"\n    },\n    {\n      \"name\": \"blitze\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/umoline.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Underline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Underline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Midline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Midline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Overline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Overline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"UnderlineDepth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MidlineHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OverlineHeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MidlineChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MidlineChar{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"UMOline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UMOline{${1:height}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"UMOlineThickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UMOspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UMOspace{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"UMOspace\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"UMOspace{${1:length}}[${2:num}]\"\n      }\n    },\n    {\n      \"name\": \"UMOspace*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UMOspace*{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"UMOnewline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UMOnewline*\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/underlin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pagestyle#c\": [\n      \"underline\",\n      \"myunderline\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/underoverlap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UOLoverbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLoverbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"UOLoverbrace\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"UOLoverbrace{${1:arg}}[${2:overlap arg}]\"\n      }\n    },\n    {\n      \"name\": \"UOLunderbrace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLunderbrace{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"UOLunderbrace\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"UOLunderbrace{${1:arg}}[${2:overlap arg}]\"\n      }\n    },\n    {\n      \"name\": \"UOLoverline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLoverline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"UOLoverline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"UOLoverline{${1:arg}}[${2:overlap arg}]\"\n      }\n    },\n    {\n      \"name\": \"UOLunderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLunderline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"UOLunderline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"UOLunderline{${1:arg}}[${2:overlap arg}]\"\n      }\n    },\n    {\n      \"name\": \"newUOLdecorator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newUOLdecorator{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"UOLaugment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLaugment{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"UOLunaugment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UOLunaugment{${1:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/underscore.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ActiveUnderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalUnderscoreDef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BreakableUnderscore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UnderscoreCommands\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/underscore#c\": [\n      \"nohyphen\",\n      \"strings\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/underscore#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/undertilde.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"utilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"utilde{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/undolabl.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"overridelabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overridelabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"undonewlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undonewlabel{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/unfontsxe.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unfontsxe#c\": [\n      \"mj=${1:font name}\",\n      \"mjbold=${1:font name}\",\n      \"mjitalic=${1:font name}\",\n      \"mjbolditalic=${1:font name}\",\n      \"gt=${1:font name}\",\n      \"gtbold=${1:font name}\",\n      \"gtitalic=${1:font name}\",\n      \"gtbolditalic=${1:font name}\",\n      \"renderer=\",\n      \"fakeitalic\",\n      \"jamo\",\n      \"mjinterhangul=\",\n      \"gtinterhangul=\",\n      \"mjwordspace=\",\n      \"gtwordspace=\",\n      \"untaza\",\n      \"other={${1:options}}\",\n      \"baekmuk\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unfontsxe#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uni-titlepage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrbase\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"TitlePageStyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"TitlePageStyle[${2:option=value,...%keyvals}]{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"TitleOption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TitleOption{${1:option%keyvals}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\TitleOption\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:option=value,...%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle,\\\\TitleOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TitleOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TitleOptions{${1:option=value,...%keyvals}}\",\n        \"keys\": [\n          \"\\\\maketitle,\\\\TitleOptions\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NowButAfterBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NowButAfterBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"usetitleelement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usetitleelement{${1:element%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetitleelement,\\\\usenonemptytitleelement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"usenonemptytitleelement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usenonemptytitleelement{${1:element%keyvals}}\",\n        \"keys\": [\n          \"\\\\usetitleelement,\\\\usenonemptytitleelement\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"advisorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"atthename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bachelorthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chairmanname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"companyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"coursename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dedication\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefineReplaceTitleKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DefineReplaceTitleKey{${1:name}}{${2:alias}}\"\n      }\n    },\n    {\n      \"name\": \"DefineSimpleTitleKey\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DefineSimpleTitleKey{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"degreethesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diplomathesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"durationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"englishordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"englishordinalfemalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishordinalmalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishordinalmalereferename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examinationdatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"examinationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exittitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extratitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extratitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"femaleordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"femaleordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"femalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fromplacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanfemaleordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"germanfemaleordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"germanmaleordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"germanmaleordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"germanordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"germanordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"germanordinalfemalecorrectorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanordinalfemalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanordinalmalecorrectorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germanordinalmalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"homepage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"indatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inittitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inittitlestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KITlongname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KITurl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lowertitleback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowertitleback{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mainlogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makemaintitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makemaintitleback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeposttitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeposttitleback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepretitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makepretitleback\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maleordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maleordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"malerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"masterthesisname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationnumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"matriculationnumbername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ofthename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oralexaminationdatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordinal{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordinalfemalecorrectorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinalfemalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ordinalmalerefereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationDHBW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationKIT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationTUHH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationUKoLa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationUKoLA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentationinformationWWUM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"presentedbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"projectpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"publishers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refereename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seminarpapername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentresearchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"studentreserchname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thetitlepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlefont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titlehead\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"titlepagestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uppertitleback\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppertitleback{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"titlepage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{titlepage},\\\\begin{fullsizetitle}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fullsizetitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{titlepage},\\\\begin{fullsizetitle}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-1,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/JT-Aufsaetze,\\\\TitlePageStyle/JT-Geschichte,\\\\TitlePageStyle/JT-Typography,\\\\TitlePageStyle/WWUM,\\\\TitlePageStyle/UKoLa\": [\n      \"author={${1:author names}}\",\n      \"pagenumber=${1:number}\",\n      \"pagestyle=${1:style}\",\n      \"student=${1:student name}\",\n      \"subject=${1:subject}\",\n      \"subjectfont=${1:font commands}\",\n      \"title={${1:title text}}\",\n      \"titlefont=${1:font commands}\",\n      \"titlepagefont=${1:font commands}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/WWUM,\\\\TitlePageStyle/UKoLa\": [\n      \"academicgrade=${1:grade}\"\n    ],\n    \"\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/UKoLa\": [\n      \"advisor=${1:advisor name}\"\n    ],\n    \"\\\\TitlePageStyle/TU-DD\": [\n      \"blackborder\"\n    ],\n    \"\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/WWUM,\\\\TitlePageStyle/UKoLa\": [\n      \"chair=${1:chair name}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW\": [\n      \"company=${1:company}\",\n      \"course=${1:course}\",\n      \"duration=${1:duration}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-1,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/JT-Typography,\\\\TitlePageStyle/WWUM\": [\n      \"date=${1:date}\"\n    ],\n    \"\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-1,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer\": [\n      \"dedication={${1:dedication text}}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/WWUM\": [\n      \"discipline=${1:discipline}\"\n    ],\n    \"\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/JT-Aufsaetze,\\\\TitlePageStyle/JT-Geschichte,\\\\TitlePageStyle/JT-Typography\": [\n      \"extratitle={${1:extra title text}}\"\n    ],\n    \"\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/WWUM\": [\n      \"faculty=${1:faculty name}\"\n    ],\n    \"\\\\TitlePageStyle/TU-HH\": [\n      \"final\"\n    ],\n    \"\\\\TitlePageStyle/KIT\": [\n      \"homepage=${1:URL}\"\n    ],\n    \"\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-1,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/JT-Aufsaetze,\\\\TitlePageStyle/JT-Geschichte,\\\\TitlePageStyle/JT-Typography\": [\n      \"lowertitleback={${1:text}}\",\n      \"publisher=${1:publisher name}\",\n      \"uppertitleback={${1:text}}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/UKoLa\": [\n      \"mainlogo={${1:logo code}}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-DD\": [\n      \"matriculationnumber=${1:number}\"\n    ],\n    \"\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/WWUM\": [\n      \"oralexaminationdate=${1:date}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/JT-Geschichte,\\\\TitlePageStyle/JT-Typography,\\\\TitlePageStyle/WWUM,\\\\TitlePageStyle/UKoLa\": [\n      \"place=${1:location}\"\n    ],\n    \"\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/WWUM\": [\n      \"professor=${1:professor name}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/UKoLa,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/WWUM\": [\n      \"referee={${1:referee names}}\"\n    ],\n    \"\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/JT-Aufsaetze,\\\\TitlePageStyle/JT-Geschichte,\\\\TitlePageStyle/Spacer\": [\n      \"rulesep=\",\n      \"rulewidth=\",\n      \"rulecolor=\"\n    ],\n    \"\\\\TitlePageStyle/UKoLa\": [\n      \"secondlogo={${1:logo code}}\"\n    ],\n    \"\\\\TitlePageStyle/WWUM\": [\n      \"science=${1:science}\"\n    ],\n    \"\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-1,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/TU-HH\": [\n      \"subtitle={${1:subtitle text}}\",\n      \"subtitlefont=${1:font commands}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/KOMAScript,\\\\TitlePageStyle/Markus-2,\\\\TitlePageStyle/Spacer,\\\\TitlePageStyle/KIT\": [\n      \"titlehead={${1:titlehead code}}\"\n    ],\n    \"\\\\TitlePageStyle/DHBW,\\\\TitlePageStyle/TU-DD,\\\\TitlePageStyle/TU-HH,\\\\TitlePageStyle/KIT,\\\\TitlePageStyle/WWUM\": [\n      \"university=${1:university}\"\n    ],\n    \"\\\\TitleOption\": [\n      \"academicgrade\",\n      \"advisor\",\n      \"author\",\n      \"blackborder\",\n      \"chair\",\n      \"company\",\n      \"course\",\n      \"date\",\n      \"dedication\",\n      \"discipline\",\n      \"duration\",\n      \"extratitle\",\n      \"faculty\",\n      \"final\",\n      \"homepage\",\n      \"lowertitleback\",\n      \"mainlogo\",\n      \"matriculationnumber\",\n      \"oralexaminationdate\",\n      \"pagenumber\",\n      \"pagestyle\",\n      \"place\",\n      \"professor\",\n      \"publisher\",\n      \"referee\",\n      \"rulesep\",\n      \"rulewidth\",\n      \"secondlogo\",\n      \"science\",\n      \"student\",\n      \"subject\",\n      \"subjectfont\",\n      \"subtitle\",\n      \"subtitlefont\",\n      \"title\",\n      \"titlefont\",\n      \"titlehead\",\n      \"titlepagefont\",\n      \"university\",\n      \"uppertitleback\"\n    ],\n    \"\\\\maketitle,\\\\TitleOptions\": [\n      \"academicgrade=${1:grade}\",\n      \"advisor=${1:advisor name}\",\n      \"author={${1:author names}}\",\n      \"blackborder\",\n      \"chair=${1:chair name}\",\n      \"company=${1:company}\",\n      \"course=${1:course}\",\n      \"date=${1:date}\",\n      \"dedication={${1:dedication text}}\",\n      \"discipline=${1:discipline}\",\n      \"duration=${1:duration}\",\n      \"extratitle={${1:extra title text}}\",\n      \"faculty=${1:faculty name}\",\n      \"final\",\n      \"homepage=${1:URL}\",\n      \"lowertitleback={${1:text}}\",\n      \"mainlogo={${1:logo code}}\",\n      \"matriculationnumber=${1:number}\",\n      \"oralexaminationdate=${1:date}\",\n      \"pagenumber=${1:number}\",\n      \"pagestyle=${1:style}\",\n      \"place=${1:location}\",\n      \"professor=${1:professor name}\",\n      \"publisher=${1:publisher name}\",\n      \"referee={${1:referee names}}\",\n      \"rulesep=\",\n      \"rulewidth=\",\n      \"secondlogo={${1:logo code}}\",\n      \"science=${1:science}\",\n      \"student=${1:student name}\",\n      \"subject=${1:subject}\",\n      \"subjectfont=${1:font commands}\",\n      \"subtitle={${1:subtitle text}}\",\n      \"subtitlefont=${1:font commands}\",\n      \"title={${1:title text}}\",\n      \"titlefont=${1:font commands}\",\n      \"titlehead={${1:titlehead code}}\",\n      \"titlepagefont=${1:font commands}\",\n      \"university=${1:university}\",\n      \"uppertitleback={${1:text}}\"\n    ],\n    \"\\\\begin{titlepage},\\\\begin{fullsizetitle}\": [\n      \"pagenumber=${1:number}\",\n      \"pagestyle=${1:style}\"\n    ],\n    \"\\\\usetitleelement,\\\\usenonemptytitleelement\": [\n      \"academicgrade\",\n      \"advisor\",\n      \"author\",\n      \"chair\",\n      \"company\",\n      \"course\",\n      \"date\",\n      \"dedication\",\n      \"discipline\",\n      \"duration\",\n      \"faculty\",\n      \"homepage\",\n      \"mainlogo\",\n      \"matriculationnumber\",\n      \"oralexaminationdate\",\n      \"place\",\n      \"professor\",\n      \"publisher\",\n      \"referee\",\n      \"secondlogo\",\n      \"subject\",\n      \"subtitle\",\n      \"title\",\n      \"titlehead\",\n      \"university\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uni.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"textuni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuni{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"uni\"\n    },\n    {\n      \"name\": \"textunirm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunirm{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unirm\"\n    },\n    {\n      \"name\": \"textunisl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunisl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unisl\"\n    },\n    {\n      \"name\": \"textunisc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunisc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unisc\"\n    },\n    {\n      \"name\": \"textunist\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunist{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unist\"\n    },\n    {\n      \"name\": \"textunibf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunibf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unibf\"\n    },\n    {\n      \"name\": \"textunibsl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunibsl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unibsl\"\n    },\n    {\n      \"name\": \"textunibsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunibsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unibsc\"\n    },\n    {\n      \"name\": \"textunibst\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textunibst{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unibst\"\n    },\n    {\n      \"name\": \"bausquare\"\n    },\n    {\n      \"name\": \"baucircle\"\n    },\n    {\n      \"name\": \"bautriangle\"\n    },\n    {\n      \"name\": \"bauhead\"\n    },\n    {\n      \"name\": \"bauforms\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"varQ\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"guillemoleft\"\n    },\n    {\n      \"name\": \"guillemoright\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"textogonek\"\n    },\n    {\n      \"name\": \"textcmr\",\n      \"if\": \"default\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcmr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cmr\",\n      \"if\": \"default\"\n    },\n    {\n      \"name\": \"cmrdefault\",\n      \"if\": \"default\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmrenc\",\n      \"if\": \"default\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cmrfamily\",\n      \"if\": \"default\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unifamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unifamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniseries\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniseriesdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unishape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unishapedefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUniChar{${1:command}}{${2:slot}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUniCommand{${1:command}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUniCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareUniCommand{${1:command}}[${3:args}]{${2:definition}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/uni#c\": [\n      \"strict\",\n      \"default\",\n      \"medium\",\n      \"bold\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/uni#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uni8.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"lmodern\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"soulutf8\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"font=times\"\n    },\n    {\n      \"name\": \"tgtermes\",\n      \"if\": \"font=times\"\n    },\n    {\n      \"name\": \"tgheros\",\n      \"if\": \"font=times\"\n    },\n    {\n      \"name\": \"tgcursor\",\n      \"if\": \"font=times\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"font=tg\"\n    },\n    {\n      \"name\": \"tgtermes\",\n      \"if\": \"font=tg\"\n    },\n    {\n      \"name\": \"tgheros\",\n      \"if\": \"font=tg\"\n    },\n    {\n      \"name\": \"tgcursor\",\n      \"if\": \"font=tg\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"font=old-times\"\n    },\n    {\n      \"name\": \"mathptmx\",\n      \"if\": \"font=oldtimes\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fontspec\"\n    },\n    {\n      \"name\": \"fontspec\",\n      \"if\": \"fontspec=yes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"UnivFixPaperSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uline{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/uni8#c\": [\n      \"fontspec\",\n      \"fontspec=${1|yes,no|}\",\n      \"inputenc=${1|utf8,utf8x,latin1,latin2|}\",\n      \"font=${1|cm,times,old-times|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/uni8#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unicode-alphabets.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"stringstrings\"\n    },\n    {\n      \"name\": \"csvsimple\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"agl\",\n      \"if\": \"AGL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agl{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"agl*\",\n      \"if\": \"AGL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"agl*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessj\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LL\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ll\",\n      \"if\": \"AGL\",\n      \"unusual\": true,\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"commaaccent\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acute\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Caron\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dieresis\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DieresisAcute\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DieresisGrave\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grave\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hungarumlaut\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macron\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrBreve\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrFlex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblGrave\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrbreve\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrflex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblgrave\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresisacute\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresisgrave\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightserif\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registerserif\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trademarkserif\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onefitted\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rupiah\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threequartersemdash\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centinferior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commainferior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commasuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollarinferior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollarsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypheninferior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphensuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"periodinferior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"periodsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsuperior\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brevesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Caronsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Circumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dotaccentsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hungarumlautsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lslashsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OEsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ogoneksmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ringsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Scaronsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tildesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zcaronsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exclamsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollaroldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ampersandsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zerooldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twooldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threeoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fouroldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiveoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevenoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nineoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Csmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Esmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ismall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ksmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Msmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Osmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ssmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Wsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ysmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exclamdownsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centoldstyle\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macronsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cedillasmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questiondownsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Agravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acircumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atildesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aringsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ccedillasmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Egravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ecircumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Edieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Igravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Icircumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ethsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ntildesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ogravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ocircumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Otildesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Odieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ugravesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ucircumflexsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yacutesmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thornsmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ydieresissmall\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maihanakatleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraileftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraiileftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraueleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraueeleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitaikhuleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maiekupperleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maieklowrightthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maieklowleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maithoupperleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitholowrightthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitholowleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitriupperleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitrilowrightthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitrilowleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawaupperleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawalowrightthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawalowleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatupperleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatlowrightthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatlowleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nikhahitleftthai\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radicalex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowvertex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowhorizex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registersans\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightsans\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trademarksans\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenlefttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenleftex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenleftbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketlefttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketleftex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketleftbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelefttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceleftmid\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceleftbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integralex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrighttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrightex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrightbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrighttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrightex\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrightbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerighttp\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerightmid\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerightbt\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apple\",\n      \"if\": \"AGL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyfi\",\n      \"if\": \"CYFI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyfi{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"cyfi*\",\n      \"if\": \"CYFI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyfi*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"cyfi\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyfi{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"cyfi*\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cyfi*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"mufi\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mufi{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"mufi*\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mufi*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"titus\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titus{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"titus*\",\n      \"if\": \"LINCUA\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titus*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"entity\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotlessj\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LL\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ll\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true,\n      \"detail\": \"≪\",\n      \"doc\": \"Much less than, type 2\"\n    },\n    {\n      \"name\": \"commaaccent\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Caron\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dieresis\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DieresisAcute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DieresisGrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Grave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hungarumlaut\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macron\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrBreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrFlex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblGrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrbreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrflex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dblgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresisacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dieresisgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightserif\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registerserif\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trademarkserif\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onefitted\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rupiah\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threequartersemdash\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centinferior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commainferior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"commasuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollarinferior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollarsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hypheninferior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hyphensuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"periodinferior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"periodsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"esuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"osuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ssuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tsuperior\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Brevesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Caronsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Circumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dotaccentsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hungarumlautsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lslashsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OEsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ogoneksmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ringsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Scaronsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tildesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zcaronsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exclamsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dollaroldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ampersandsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zerooldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oneoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twooldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threeoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fouroldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fiveoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sixoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevenoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nineoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questionsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Bsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Csmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Esmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Fsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ismall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Jsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ksmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Msmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Osmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Psmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ssmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Usmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Wsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ysmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Zsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exclamdownsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centoldstyle\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Macronsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cedillasmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"questiondownsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Agravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Acircumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Atildesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Aringsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ccedillasmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Egravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ecircumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Edieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Igravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Icircumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ethsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ntildesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ogravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ocircumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Otildesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Odieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ugravesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ucircumflexsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Yacutesmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Thornsmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ydieresissmall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maihanakatleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraileftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraiileftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraueleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saraueeleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitaikhuleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maiekupperleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maieklowrightthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maieklowleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maithoupperleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitholowrightthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitholowleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitriupperleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitrilowrightthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maitrilowleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawaupperleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawalowrightthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maichattawalowleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatupperleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatlowrightthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thanthakhatlowleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nikhahitleftthai\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radicalex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowvertex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arrowhorizex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registersans\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightsans\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trademarksans\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenlefttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenleftex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenleftbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketlefttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketleftex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketleftbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracelefttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceleftmid\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceleftbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integralex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrighttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrightex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parenrightbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrighttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrightex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracketrightbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerighttp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerightmid\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bracerightbt\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"apple\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OEligogon\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vvertline\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligogon\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vvertline\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idblstrok\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jdblstrok\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autem\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vslashura\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vslashuradbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornrarmlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hrarmlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrarmlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krarmlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UUlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uulig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UElig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uelig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xslashlradbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligring\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligogonacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adiaguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odiaguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotogon\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orrotlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonglbarlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iesup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ausup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eesup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eosup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iasup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iosup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iusup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jesup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mesup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oosup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uasup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uvsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uwsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wasup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wisup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wusup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wvsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qvinslig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongdestlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenlacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenlosmalllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogonenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongaumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonghlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongilig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongoumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslonglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongilig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongtilig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongtrlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonguumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongvinslig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hslonglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kslonglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligslashacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligslashacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finsacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muncacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ocurlacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocurlacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vinsacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vinsacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eacombcirc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eucombcirc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ucurlbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OEligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YYligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yyligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finsdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finssemiclosedot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsclosedot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Juml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"juml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YYliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yyliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEligcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashmacracute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashmacracute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashbreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashbreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligogon\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligogon\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eogoncurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogoncurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Odotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"udotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bblig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cklig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotdrotlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eylig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fjlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fuumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fylig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fftlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffylig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftylig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdrotlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gethlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapslonglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppflourlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trottrotlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tylig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tzlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"benl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ethenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"henl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ienl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"venl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnodotenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qscap\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscap\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornscap\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aacloselig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anecklesselig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anecklessvlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aflig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinslig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aglig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anscaplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arscaplig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"athornlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oclig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnecklessElig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uuligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UUligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEligdotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligdotacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligenl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AUligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AYligdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ayligdot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AUligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AYligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ayligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligdotbl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaliguml\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macrhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macrmed\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovlmed\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kscapsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ysup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnodotsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anligsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arligsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anscapligsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trotsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orrotsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orumsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rumsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Csqu\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eunc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gsqu\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Munc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arscapligsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogonsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emacrsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asqu\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogonsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omacrsup\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ET\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornbarslash\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urrot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etslash\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"de\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctinter\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelev\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nflour\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflour\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"USbase\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usbase\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ETslash\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sem\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foumllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallzero\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vmod\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xmod\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlemn\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combcurlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erang\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ercurl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combdothigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combcurlbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tridagger\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midring\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ramus\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medcom\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parag\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posit\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ductsimpl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctposit\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colmidcomposit\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tridotscomposit\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctexclam\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctintertilde\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctvers\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renvoi\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevdiag\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctinterlemn\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidotscomposit\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"virgsusp\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctflex\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"virgmin\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hidot\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavylin\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevhiback\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevhack\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combtripbrevebl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ains\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ains\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aopen\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligred\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligred\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligred\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kunc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aunc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aneckless\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Euncclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eunc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eext\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etall\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finssemiclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsdothook\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdivloop\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glglowloop\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gsmlowloop\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ilong\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ksemiclose\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muncdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"munc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nrdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscaprdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapldes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qstem\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xldes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yrgmainstrok\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"munc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncrdes\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romnumCrevovl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romaslibr\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapxbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapybar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapdslash\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dram\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecu\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florloop\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grosch\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libradut\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librafren\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraital\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraflem\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liranuov\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lirasterl\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markold\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markflour\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msign\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msignflour\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obol\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penningar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reichtalold\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schillgerm\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schillgermscript\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scudi\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krone\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helbing\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ouncescript\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cnumbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnumbar\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lllig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongchlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongjlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongklig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongklig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongtlig\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacr\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbreve\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevemacr\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacracute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbreveacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevegrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbreveacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbrevegrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metranc\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancacute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrpause\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrdblgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevedblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevedblgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancdblgrave\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacracute\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacrdblac\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacr\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vovlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xovlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lovlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Covlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dovlhigh\",\n      \"if\": \"LINCUA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mufi\",\n      \"if\": \"MUFI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mufi{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"mufi*\",\n      \"if\": \"MUFI\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mufi*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"OEligogon\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Pdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vvertline\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligogon\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vvertline\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idblstrok\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jdblstrok\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"autem\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vslashura\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vslashuradbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornrarmlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hrarmlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrarmlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krarmlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UUlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uulig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UElig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uelig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xslashlradbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligring\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligogonacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adiaguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odiaguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotogon\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orrotlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonglbarlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iesup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ausup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eesup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eosup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iasup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iosup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iusup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jesup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mesup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oosup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uasup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uvsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uwsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wasup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wisup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wusup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wvsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qvinslig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongdestlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenlacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenlosmalllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogonenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongaumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonghlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongilig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongoumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslonglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongilig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongtilig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongtrlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slonguumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongvinslig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hslonglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kslonglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligslashacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligslashacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finsacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muncacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ocurlacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ocurlacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rrotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vinsacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vinsacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eacombcirc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eucombcirc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ucurlbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OEligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YYligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yyligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Finsdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finssemiclosedot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsclosedot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Juml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"juml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"YYliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yyliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEligcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashmacracute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashmacracute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashbreve\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashbreve\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligogon\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligogon\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eogoncurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogoncurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Adotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Idotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"idotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Odotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oogondotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogondotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Oslashdotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashdotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"udotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bblig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cklig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ctlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotdrotlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eylig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"faumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fjlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fuumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fylig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fftlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ffylig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ftylig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdrotlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gethlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapslonglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ppflourlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ttlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trottrotlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tylig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tzlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PPlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"golig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"benl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drotenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ethenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"genl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"henl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ienl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"menl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"senl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"venl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnodotenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qscap\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xscap\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornscap\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aacloselig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anecklesselig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anecklessvlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aflig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afinslig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aglig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anscaplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arscaplig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"athornlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oclig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AnecklessElig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uuligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UUligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AEligdotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligdotacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oeligenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligenl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AUligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AYligdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ayligdot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AUligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"auligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AVligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"avligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AYligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ayligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OOligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ooligdotbl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AAliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aaliguml\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macrhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macrmed\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ovlmed\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bscapsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dscapsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kscapsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"psup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tscapsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ysup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inodotsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jnodotsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oslashsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anligsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arligsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anscapligsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trotsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orrotsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orumsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rumsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Csqu\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eunc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Gsqu\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Hunc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Munc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Sclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arscapligsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eogonsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emacrsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Asqu\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oogonsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omacrsup\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ET\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thornbarslash\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urrot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etslash\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"de\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctinter\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelev\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tcurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nflour\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rflour\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"USbase\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"usbase\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ETslash\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sem\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foumllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"smallzero\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vmod\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xmod\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"arbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rabar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"urlemn\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combcurlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"erang\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ercurl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combdothigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combcurlbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tridagger\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"midring\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ramus\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"medcom\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parag\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"posit\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ductsimpl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctposit\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colmidcomposit\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tridotscomposit\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctexclam\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctintertilde\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctvers\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"renvoi\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevdiag\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctinterlemn\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bidotscomposit\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"virgsusp\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctflex\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"virgmin\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hidot\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wavylin\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevhiback\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"punctelevhack\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combtripbrevebl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ains\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ains\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aopen\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aeligred\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AOligred\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aoligred\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kunc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aunc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aneckless\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Euncclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eunc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eext\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etall\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finssemiclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"finsdothook\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gdivloop\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glglowloop\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gsmlowloop\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ilong\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ksemiclose\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mrdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Muncdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"munc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nrdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nrdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscaprdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nscapldes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Qstem\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xldes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yrgmainstrok\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hrdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"munc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncrdes\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muncacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romnumCrevovl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romaslibr\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapxbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapybar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"romscapdslash\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dram\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ecu\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"florloop\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"grosch\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libradut\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"librafren\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraital\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"libraflem\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"liranuov\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lirasterl\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markold\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"markflour\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msign\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"msignflour\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"obol\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"penningar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reichtalold\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schillgerm\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"schillgermscript\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scudi\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"krone\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"helbing\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ouncescript\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Cnumbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cnumbar\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lllig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongchlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongjlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongklig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongklig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"slongslongtlig\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacr\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbreve\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbreve\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevemacr\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacracute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrgrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbreveacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevegrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbreveacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrbrevegrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metranc\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancacute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancgrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrpause\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrmacrdblgrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevedblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrbrevedblgrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrancdblgrave\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacracute\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacrdblac\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metrdblbrevemacr\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vovlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Xovlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Lovlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Covlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Dovlhigh\",\n      \"if\": \"MUFI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sil\",\n      \"if\": \"SIL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sil{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"sil*\",\n      \"if\": \"SIL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sil*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"titus\",\n      \"if\": \"TITUS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titus{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"titus*\",\n      \"if\": \"TITUS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titus*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"ucsur\",\n      \"if\": \"UCSUR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ucsur{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"ucsur*\",\n      \"if\": \"UCSUR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ucsur*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"unz\",\n      \"if\": \"UNZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unz{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"unz*\",\n      \"if\": \"UNZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unz*{${1:char name or code}}\"\n      }\n    },\n    {\n      \"name\": \"roundr\",\n      \"if\": \"UNZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"longs\",\n      \"if\": \"UNZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germandbls\",\n      \"if\": \"UNZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"germandblS\",\n      \"if\": \"UNZ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prestroke\",\n      \"if\": \"UNZ\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unicode-alphabets#c\": [\n      \"AGL\",\n      \"CYFI\",\n      \"LINCUA\",\n      \"MUFI\",\n      \"SIL\",\n      \"TITUS\",\n      \"UCSUR\",\n      \"UNZ\",\n      \"fonts={${1:set1=\\\\fontcmd1,...}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unicode-alphabets#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unicode-math-input.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"umiMathbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathbfit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathscr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathbfscr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathfrak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathbb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathbbit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathbffrak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathsf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathsfbf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathsfit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathsfbfit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiMathtt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiFrac\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiDeclareMathChar\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umiDeclareMathChar{${1:character}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"umiDeclareMathDelimiter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umiDeclareMathDelimiter{${1:character}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"umiRefreshDelimiterList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiPatchCmdUnicodeArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umiPatchCmdUnicodeArg{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"umiUnpatchCmdUnicodeArg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umiUnpatchCmdUnicodeArg{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"umiPatchCmdUnicodeTwoArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umiPatchCmdUnicodeTwoArgs{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"umiPatchCmdUnicodeArgExtraGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umiPatchCmdUnicodeArgExtraGroup{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"umiBraceNext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"umiBraceNext{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"umiPatchPrime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiUnpatchPrime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"umiDeclareMathCharCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umiDeclareMathCharCopy{${1:character}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"umiDeclareMathDelimiterCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"umiDeclareMathDelimiterCopy{${1:character}}{${2:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unicode-math-input#c\": [\n      \"ignore-refresh-delimiter-list\",\n      \"ignore-patch-delimiter-commands\",\n      \"ignore-patch-prime\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unicode-math-input#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unicode-math.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"fix-cm\"\n    },\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"unimathsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unimathsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n          \"\\\\unimathsetup#c,\\\\usepackage/unicode-math#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathfont{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathfont[${2:font features}]{${1:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setmathfont{${1:font}}[${2:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n          \"\\\\setmathfont#c,\\\\setmathfontface#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setmathfont[${2:font features}]{${1:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n          \"\\\\setmathfont#c,\\\\setmathfontface#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmathfontface{${1:cmd}}{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setmathfontface{${1:cmd}}[${3:font features}]{${2:font}}\"\n      }\n    },\n    {\n      \"name\": \"setmathfontface\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setmathfontface{${1:cmd}}{${2:font}}[${3:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n          \"\\\\setmathfont#c,\\\\setmathfontface#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"setmathfontface\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}[]\",\n        \"snippet\": \"setmathfontface{${1:cmd}}[${3:font features}]{${2:font}}[${4:font features%keyvals}]\",\n        \"keys\": [\n          \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n          \"\\\\setmathfont#c,\\\\setmathfontface#c\"\n        ],\n        \"keyPos\": 3\n      }\n    },\n    {\n      \"name\": \"setoperatorfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setoperatorfont{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"NewNegationCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"NewNegationCommand{${1:symbol or cmd%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"RenewNegationCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RenewNegationCommand{${1:symbol or cmd%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"symnormal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symnormal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symliteral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symliteral{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symrm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symtt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symtt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbb{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbbit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbbit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symfrak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symsfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symsfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfsf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbffrak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfsfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfsfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"symbfsfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symbfsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathtextrm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtextrm{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathtextbf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtextbf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathtextit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtextit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathtextsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtextsf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathtexttt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathtexttt{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbbit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbbit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathsfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsf\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsf{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfcal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfcal{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfscr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfscr{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbffrak\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbffrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsfup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsfup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathbfsfit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathbfsfit{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"mathfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathfrak{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"addnolimits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addnolimits{${1:math commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"crampeddisplaystyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedscriptstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crampedtextstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removenolimits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"removenolimits{${1:math commands%formula}}\"\n      }\n    },\n    {\n      \"name\": \"UnicodeMathSymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"UnicodeMathSymbol{${1:code point}}{${2:cmd}}{${3:math class}}{${4:unicode name}}\"\n      }\n    },\n    {\n      \"name\": \"Angstrom\",\n      \"detail\": \"Å (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\mathring{\\\\mathrm{a}}, ångström capital a with ring\"\n    },\n    {\n      \"name\": \"ast\",\n      \"detail\": \"∗\",\n      \"doc\": \"Asterisk operator (hodge star operator)\"\n    },\n    {\n      \"name\": \"backdprime\",\n      \"detail\": \"‶\",\n      \"doc\": \"Double reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backprime\",\n      \"detail\": \"‵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"backslash\",\n      \"detail\": \"\\\\\",\n      \"doc\": \"Reverse solidus\"\n    },\n    {\n      \"name\": \"backtrprime\",\n      \"detail\": \"‷\",\n      \"doc\": \"Triple reverse prime, not superscripted\"\n    },\n    {\n      \"name\": \"blanksymbol\"\n    },\n    {\n      \"name\": \"bullet\"\n    },\n    {\n      \"name\": \"cdotp\",\n      \"detail\": \"·\",\n      \"doc\": \"\\\\cdot, \\\\centerdot, b: middle dot\"\n    },\n    {\n      \"name\": \"dagger\",\n      \"detail\": \"†\",\n      \"doc\": \"Dagger relation\"\n    },\n    {\n      \"name\": \"ddagger\",\n      \"detail\": \"‡\",\n      \"doc\": \"Double dagger relation\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"divslash\",\n      \"unusual\": true,\n      \"detail\": \"∕\",\n      \"doc\": \"Division slash\"\n    },\n    {\n      \"name\": \"downarrow\",\n      \"detail\": \"↓\",\n      \"doc\": \"Downward arrow\"\n    },\n    {\n      \"name\": \"dprime\",\n      \"detail\": \"″ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Double prime or second, not superscripted\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"equal\",\n      \"unusual\": true,\n      \"detail\": \"=\",\n      \"doc\": \"Equals sign r:\"\n    },\n    {\n      \"name\": \"eth\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"fracslash\",\n      \"unusual\": true,\n      \"detail\": \"⁄\",\n      \"doc\": \"/, fraction slash\"\n    },\n    {\n      \"name\": \"gets\"\n    },\n    {\n      \"name\": \"greater\",\n      \"unusual\": true,\n      \"detail\": \">\",\n      \"doc\": \"Greater-than sign r:\"\n    },\n    {\n      \"name\": \"ldotp\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"less\",\n      \"unusual\": true,\n      \"detail\": \"<\",\n      \"doc\": \"Less-than sign r:\"\n    },\n    {\n      \"name\": \"lnot\"\n    },\n    {\n      \"name\": \"mathampersand\"\n    },\n    {\n      \"name\": \"mathatsign\"\n    },\n    {\n      \"name\": \"mathcolon\",\n      \"detail\": \":\",\n      \"doc\": \"\\\\colon (literal), colon (not ratio)\"\n    },\n    {\n      \"name\": \"mathcomma\"\n    },\n    {\n      \"name\": \"mathdollar\",\n      \"detail\": \"$\",\n      \"doc\": \"\\\\mathdollar, dollar sign\"\n    },\n    {\n      \"name\": \"matheth\",\n      \"detail\": \"ð (\\\"amssymb arevmath\\\" command)\",\n      \"doc\": \"Eth\"\n    },\n    {\n      \"name\": \"mathhyphen\"\n    },\n    {\n      \"name\": \"mathoctothorpe\"\n    },\n    {\n      \"name\": \"mathparagraph\"\n    },\n    {\n      \"name\": \"mathpercent\"\n    },\n    {\n      \"name\": \"mathperiod\"\n    },\n    {\n      \"name\": \"mathplus\"\n    },\n    {\n      \"name\": \"mathquestion\"\n    },\n    {\n      \"name\": \"mathratio\",\n      \"detail\": \"∶\",\n      \"doc\": \"X \\\\colon, ratio\"\n    },\n    {\n      \"name\": \"mathsection\"\n    },\n    {\n      \"name\": \"mathsemicolon\"\n    },\n    {\n      \"name\": \"mathslash\",\n      \"detail\": \"/\",\n      \"doc\": \"\\\\slash, solidus\"\n    },\n    {\n      \"name\": \"mathsterling\"\n    },\n    {\n      \"name\": \"mathunderscore\"\n    },\n    {\n      \"name\": \"mathvisiblespace\"\n    },\n    {\n      \"name\": \"mathyen\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"minus\",\n      \"unusual\": true,\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"qprime\",\n      \"detail\": \"⁗ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Quadruple prime, not superscripted\"\n    },\n    {\n      \"name\": \"smblkcircle\",\n      \"detail\": \"•\",\n      \"doc\": \"Bullet (small, filled)\"\n    },\n    {\n      \"name\": \"smwhtcircle\",\n      \"detail\": \"◦\",\n      \"doc\": \"White bullet\"\n    },\n    {\n      \"name\": \"sphericalangle\",\n      \"unusual\": true,\n      \"detail\": \"∢ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Spherical angle\"\n    },\n    {\n      \"name\": \"surd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"unusual\": true,\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"to\"\n    },\n    {\n      \"name\": \"trprime\",\n      \"detail\": \"‴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Triple prime (not superscripted)\"\n    },\n    {\n      \"name\": \"unicodeellipsis\",\n      \"unusual\": true,\n      \"detail\": \"…\",\n      \"doc\": \"Ellipsis (horizontal)\"\n    },\n    {\n      \"name\": \"uparrow\",\n      \"detail\": \"↑\",\n      \"doc\": \"Upward arrow\"\n    },\n    {\n      \"name\": \"vert\",\n      \"detail\": \"|\",\n      \"doc\": \"\\\\vert, vertical bar\"\n    },\n    {\n      \"name\": \"Vert\",\n      \"detail\": \"‖\",\n      \"doc\": \"\\\\vert, double vertical bar\"\n    },\n    {\n      \"name\": \"Alpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BbbA\",\n      \"unusual\": true,\n      \"detail\": \"𝔸 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{a} (dsfont), mathematical double-struck capital a\"\n    },\n    {\n      \"name\": \"Bbba\",\n      \"unusual\": true,\n      \"detail\": \"𝕒 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small a\"\n    },\n    {\n      \"name\": \"BbbB\",\n      \"unusual\": true,\n      \"detail\": \"𝔹 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{b} (dsfont), matmathematical double-struck capital b\"\n    },\n    {\n      \"name\": \"Bbbb\",\n      \"unusual\": true,\n      \"detail\": \"𝕓 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small b\"\n    },\n    {\n      \"name\": \"BbbC\",\n      \"unusual\": true,\n      \"detail\": \"ℂ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{c} (dsfont), open face c\"\n    },\n    {\n      \"name\": \"Bbbc\",\n      \"unusual\": true,\n      \"detail\": \"𝕔 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small c\"\n    },\n    {\n      \"name\": \"BbbD\",\n      \"unusual\": true,\n      \"detail\": \"𝔻 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{d} (dsfont), matmathematical double-struck capital d\"\n    },\n    {\n      \"name\": \"Bbbd\",\n      \"unusual\": true,\n      \"detail\": \"𝕕 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small d\"\n    },\n    {\n      \"name\": \"BbbE\",\n      \"unusual\": true,\n      \"detail\": \"𝔼 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{e} (dsfont), matmathematical double-struck capital e\"\n    },\n    {\n      \"name\": \"Bbbe\",\n      \"unusual\": true,\n      \"detail\": \"𝕖 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small e\"\n    },\n    {\n      \"name\": \"Bbbeight\",\n      \"unusual\": true,\n      \"detail\": \"𝟠 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 8\"\n    },\n    {\n      \"name\": \"BbbF\",\n      \"unusual\": true,\n      \"detail\": \"𝔽 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{f} (dsfont), matmathematical double-struck capital f\"\n    },\n    {\n      \"name\": \"Bbbf\",\n      \"unusual\": true,\n      \"detail\": \"𝕗 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small f\"\n    },\n    {\n      \"name\": \"Bbbfive\",\n      \"unusual\": true,\n      \"detail\": \"𝟝 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 5\"\n    },\n    {\n      \"name\": \"Bbbfour\",\n      \"unusual\": true,\n      \"detail\": \"𝟜 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 4\"\n    },\n    {\n      \"name\": \"BbbG\",\n      \"unusual\": true,\n      \"detail\": \"𝔾 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{g} (dsfont), matmathematical double-struck capital g\"\n    },\n    {\n      \"name\": \"Bbbg\",\n      \"unusual\": true,\n      \"detail\": \"𝕘 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small g\"\n    },\n    {\n      \"name\": \"Bbbgamma\",\n      \"unusual\": true,\n      \"detail\": \"ℽ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"\\\\eulergamma (wrisym), double-struck small gamma\"\n    },\n    {\n      \"name\": \"BbbGamma\",\n      \"unusual\": true,\n      \"detail\": \"ℾ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck capital gamma\"\n    },\n    {\n      \"name\": \"BbbH\",\n      \"unusual\": true,\n      \"detail\": \"ℍ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{h} (dsfont), open face capital h\"\n    },\n    {\n      \"name\": \"Bbbh\",\n      \"unusual\": true,\n      \"detail\": \"𝕙 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small h\"\n    },\n    {\n      \"name\": \"BbbI\",\n      \"unusual\": true,\n      \"detail\": \"𝕀 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{i} (dsfont), matmathematical double-struck capital i\"\n    },\n    {\n      \"name\": \"Bbbi\",\n      \"unusual\": true,\n      \"detail\": \"𝕚 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small i\"\n    },\n    {\n      \"name\": \"BbbJ\",\n      \"unusual\": true,\n      \"detail\": \"𝕁 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{j} (dsfont), matmathematical double-struck capital j\"\n    },\n    {\n      \"name\": \"Bbbj\",\n      \"unusual\": true,\n      \"detail\": \"𝕛 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small j\"\n    },\n    {\n      \"name\": \"BbbK\",\n      \"unusual\": true,\n      \"detail\": \"𝕂 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{k} (dsfont), matmathematical double-struck capital k\"\n    },\n    {\n      \"name\": \"Bbbk\",\n      \"unusual\": true,\n      \"detail\": \"𝕜 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\bbbk (amssymb), mathematical double-struck small k\"\n    },\n    {\n      \"name\": \"BbbL\",\n      \"unusual\": true,\n      \"detail\": \"𝕃 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{l} (dsfont), matmathematical double-struck capital l\"\n    },\n    {\n      \"name\": \"Bbbl\",\n      \"unusual\": true,\n      \"detail\": \"𝕝 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small l\"\n    },\n    {\n      \"name\": \"BbbM\",\n      \"unusual\": true,\n      \"detail\": \"𝕄 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{m} (dsfont), matmathematical double-struck capital m\"\n    },\n    {\n      \"name\": \"Bbbm\",\n      \"unusual\": true,\n      \"detail\": \"𝕞 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small m\"\n    },\n    {\n      \"name\": \"BbbN\",\n      \"unusual\": true,\n      \"detail\": \"ℕ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{n} (dsfont), open face n\"\n    },\n    {\n      \"name\": \"Bbbn\",\n      \"unusual\": true,\n      \"detail\": \"𝕟 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small n\"\n    },\n    {\n      \"name\": \"Bbbnine\",\n      \"unusual\": true,\n      \"detail\": \"𝟡 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 9\"\n    },\n    {\n      \"name\": \"BbbO\",\n      \"unusual\": true,\n      \"detail\": \"𝕆 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{o} (dsfont), matmathematical double-struck capital o\"\n    },\n    {\n      \"name\": \"Bbbo\",\n      \"unusual\": true,\n      \"detail\": \"𝕠 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small o\"\n    },\n    {\n      \"name\": \"Bbbone\",\n      \"unusual\": true,\n      \"detail\": \"𝟙 (\\\"bbold fourier\\\" command)\",\n      \"doc\": \"\\\\mathds{1} (dsfont), mathematical double-struck digit 1\"\n    },\n    {\n      \"name\": \"BbbP\",\n      \"unusual\": true,\n      \"detail\": \"ℙ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{p} (dsfont), open face p\"\n    },\n    {\n      \"name\": \"Bbbp\",\n      \"unusual\": true,\n      \"detail\": \"𝕡 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small p\"\n    },\n    {\n      \"name\": \"Bbbpi\",\n      \"unusual\": true,\n      \"detail\": \"ℼ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"\\\\doublepi (wrisym), double-struck small pi\"\n    },\n    {\n      \"name\": \"BbbPi\",\n      \"unusual\": true,\n      \"detail\": \"ℿ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck capital pi\"\n    },\n    {\n      \"name\": \"BbbQ\",\n      \"unusual\": true,\n      \"detail\": \"ℚ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{q} (dsfont), open face q\"\n    },\n    {\n      \"name\": \"Bbbq\",\n      \"unusual\": true,\n      \"detail\": \"𝕢 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small q\"\n    },\n    {\n      \"name\": \"BbbR\",\n      \"unusual\": true,\n      \"detail\": \"ℝ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{r} (dsfont), open face r\"\n    },\n    {\n      \"name\": \"Bbbr\",\n      \"unusual\": true,\n      \"detail\": \"𝕣 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small r\"\n    },\n    {\n      \"name\": \"BbbS\",\n      \"unusual\": true,\n      \"detail\": \"𝕊 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{s} (dsfont), matmathematical double-struck capital s\"\n    },\n    {\n      \"name\": \"Bbbs\",\n      \"unusual\": true,\n      \"detail\": \"𝕤 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small s\"\n    },\n    {\n      \"name\": \"Bbbseven\",\n      \"unusual\": true,\n      \"detail\": \"𝟟 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 7\"\n    },\n    {\n      \"name\": \"Bbbsix\",\n      \"unusual\": true,\n      \"detail\": \"𝟞 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 6\"\n    },\n    {\n      \"name\": \"Bbbsum\",\n      \"unusual\": true,\n      \"detail\": \"⅀ (\\\"mathbbol\\\" command)\",\n      \"doc\": \"Double-struck n-ary summation\"\n    },\n    {\n      \"name\": \"BbbT\",\n      \"unusual\": true,\n      \"detail\": \"𝕋 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{t} (dsfont), matmathematical double-struck capital t\"\n    },\n    {\n      \"name\": \"Bbbt\",\n      \"unusual\": true,\n      \"detail\": \"𝕥 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small t\"\n    },\n    {\n      \"name\": \"Bbbthree\",\n      \"unusual\": true,\n      \"detail\": \"𝟛 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 3\"\n    },\n    {\n      \"name\": \"Bbbtwo\",\n      \"unusual\": true,\n      \"detail\": \"𝟚 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 2\"\n    },\n    {\n      \"name\": \"BbbU\",\n      \"unusual\": true,\n      \"detail\": \"𝕌 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{u} (dsfont), matmathematical double-struck capital u\"\n    },\n    {\n      \"name\": \"Bbbu\",\n      \"unusual\": true,\n      \"detail\": \"𝕦 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small u\"\n    },\n    {\n      \"name\": \"BbbV\",\n      \"unusual\": true,\n      \"detail\": \"𝕍 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{v} (dsfont), matmathematical double-struck capital v\"\n    },\n    {\n      \"name\": \"Bbbv\",\n      \"unusual\": true,\n      \"detail\": \"𝕧 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small v\"\n    },\n    {\n      \"name\": \"BbbW\",\n      \"unusual\": true,\n      \"detail\": \"𝕎 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{w} (dsfont), matmathematical double-struck capital w\"\n    },\n    {\n      \"name\": \"Bbbw\",\n      \"unusual\": true,\n      \"detail\": \"𝕨 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small w\"\n    },\n    {\n      \"name\": \"BbbX\",\n      \"unusual\": true,\n      \"detail\": \"𝕏 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{x} (dsfont), matmathematical double-struck capital x\"\n    },\n    {\n      \"name\": \"Bbbx\",\n      \"unusual\": true,\n      \"detail\": \"𝕩 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small x\"\n    },\n    {\n      \"name\": \"BbbY\",\n      \"unusual\": true,\n      \"detail\": \"𝕐 (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{y} (dsfont), matmathematical double-struck capital y\"\n    },\n    {\n      \"name\": \"Bbby\",\n      \"unusual\": true,\n      \"detail\": \"𝕪 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small y\"\n    },\n    {\n      \"name\": \"BbbZ\",\n      \"unusual\": true,\n      \"detail\": \"ℤ (\\\"mathbb\\\" command)\",\n      \"doc\": \"\\\\mathds{z} (dsfont), open face z\"\n    },\n    {\n      \"name\": \"Bbbz\",\n      \"unusual\": true,\n      \"detail\": \"𝕫 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck small z\"\n    },\n    {\n      \"name\": \"Bbbzero\",\n      \"unusual\": true,\n      \"detail\": \"𝟘 (\\\"bbold\\\" command)\",\n      \"doc\": \"Mathematical double-struck digit 0\"\n    },\n    {\n      \"name\": \"Beta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Chi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Epsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Eta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Iota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iteta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itlambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itpsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ittheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvarTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"itzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Kappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfA\",\n      \"unusual\": true,\n      \"detail\": \"𝐀\",\n      \"doc\": \"Mathematical bold capital a\"\n    },\n    {\n      \"name\": \"mbfa\",\n      \"unusual\": true,\n      \"detail\": \"𝐚\",\n      \"doc\": \"Mathematical bold small a\"\n    },\n    {\n      \"name\": \"mbfAlpha\",\n      \"unusual\": true,\n      \"detail\": \"𝚨\",\n      \"doc\": \"Mathematical bold capital alpha\"\n    },\n    {\n      \"name\": \"mbfalpha\",\n      \"unusual\": true,\n      \"detail\": \"𝛂 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small alpha\"\n    },\n    {\n      \"name\": \"mbfB\",\n      \"unusual\": true,\n      \"detail\": \"𝐁\",\n      \"doc\": \"Mathematical bold capital b\"\n    },\n    {\n      \"name\": \"mbfb\",\n      \"unusual\": true,\n      \"detail\": \"𝐛\",\n      \"doc\": \"Mathematical bold small b\"\n    },\n    {\n      \"name\": \"mbfBeta\",\n      \"unusual\": true,\n      \"detail\": \"𝚩\",\n      \"doc\": \"Mathematical bold capital beta\"\n    },\n    {\n      \"name\": \"mbfbeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛃 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small beta\"\n    },\n    {\n      \"name\": \"mbfC\",\n      \"unusual\": true,\n      \"detail\": \"𝐂\",\n      \"doc\": \"Mathematical bold capital c\"\n    },\n    {\n      \"name\": \"mbfc\",\n      \"unusual\": true,\n      \"detail\": \"𝐜\",\n      \"doc\": \"Mathematical bold small c\"\n    },\n    {\n      \"name\": \"mbfChi\",\n      \"unusual\": true,\n      \"detail\": \"𝚾\",\n      \"doc\": \"Mathematical bold capital chi\"\n    },\n    {\n      \"name\": \"mbfchi\",\n      \"unusual\": true,\n      \"detail\": \"𝛘 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small chi\"\n    },\n    {\n      \"name\": \"mbfD\",\n      \"unusual\": true,\n      \"detail\": \"𝐃\",\n      \"doc\": \"Mathematical bold capital d\"\n    },\n    {\n      \"name\": \"mbfd\",\n      \"unusual\": true,\n      \"detail\": \"𝐝\",\n      \"doc\": \"Mathematical bold small d\"\n    },\n    {\n      \"name\": \"mbfDelta\",\n      \"unusual\": true,\n      \"detail\": \"𝚫\",\n      \"doc\": \"Mathematical bold capital delta\"\n    },\n    {\n      \"name\": \"mbfdelta\",\n      \"unusual\": true,\n      \"detail\": \"𝛅 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small delta\"\n    },\n    {\n      \"name\": \"mbfE\",\n      \"unusual\": true,\n      \"detail\": \"𝐄\",\n      \"doc\": \"Mathematical bold capital e\"\n    },\n    {\n      \"name\": \"mbfe\",\n      \"unusual\": true,\n      \"detail\": \"𝐞\",\n      \"doc\": \"Mathematical bold small e\"\n    },\n    {\n      \"name\": \"mbfeight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝚬\",\n      \"doc\": \"Mathematical bold capital epsilon\"\n    },\n    {\n      \"name\": \"mbfepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝛆 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small epsilon\"\n    },\n    {\n      \"name\": \"mbfEta\",\n      \"unusual\": true,\n      \"detail\": \"𝚮\",\n      \"doc\": \"Mathematical bold capital eta\"\n    },\n    {\n      \"name\": \"mbfeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛈 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small eta\"\n    },\n    {\n      \"name\": \"mbfF\",\n      \"unusual\": true,\n      \"detail\": \"𝐅\",\n      \"doc\": \"Mathematical bold capital f\"\n    },\n    {\n      \"name\": \"mbff\",\n      \"unusual\": true,\n      \"detail\": \"𝐟\",\n      \"doc\": \"Mathematical bold small f\"\n    },\n    {\n      \"name\": \"mbffive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbffour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbffrakA\",\n      \"unusual\": true,\n      \"detail\": \"𝕬\",\n      \"doc\": \"Mathematical bold fraktur capital a\"\n    },\n    {\n      \"name\": \"mbffraka\",\n      \"unusual\": true,\n      \"detail\": \"𝖆\",\n      \"doc\": \"Mathematical bold fraktur small a\"\n    },\n    {\n      \"name\": \"mbffrakB\",\n      \"unusual\": true,\n      \"detail\": \"𝕭\",\n      \"doc\": \"Mathematical bold fraktur capital b\"\n    },\n    {\n      \"name\": \"mbffrakb\",\n      \"unusual\": true,\n      \"detail\": \"𝖇\",\n      \"doc\": \"Mathematical bold fraktur small b\"\n    },\n    {\n      \"name\": \"mbffrakC\",\n      \"unusual\": true,\n      \"detail\": \"𝕮\",\n      \"doc\": \"Mathematical bold fraktur capital c\"\n    },\n    {\n      \"name\": \"mbffrakc\",\n      \"unusual\": true,\n      \"detail\": \"𝖈\",\n      \"doc\": \"Mathematical bold fraktur small c\"\n    },\n    {\n      \"name\": \"mbffrakD\",\n      \"unusual\": true,\n      \"detail\": \"𝕯\",\n      \"doc\": \"Mathematical bold fraktur capital d\"\n    },\n    {\n      \"name\": \"mbffrakd\",\n      \"unusual\": true,\n      \"detail\": \"𝖉\",\n      \"doc\": \"Mathematical bold fraktur small d\"\n    },\n    {\n      \"name\": \"mbffrakE\",\n      \"unusual\": true,\n      \"detail\": \"𝕰\",\n      \"doc\": \"Mathematical bold fraktur capital e\"\n    },\n    {\n      \"name\": \"mbffrake\",\n      \"unusual\": true,\n      \"detail\": \"𝖊\",\n      \"doc\": \"Mathematical bold fraktur small e\"\n    },\n    {\n      \"name\": \"mbffrakF\",\n      \"unusual\": true,\n      \"detail\": \"𝕱\",\n      \"doc\": \"Mathematical bold fraktur capital f\"\n    },\n    {\n      \"name\": \"mbffrakf\",\n      \"unusual\": true,\n      \"detail\": \"𝖋\",\n      \"doc\": \"Mathematical bold fraktur small f\"\n    },\n    {\n      \"name\": \"mbffrakG\",\n      \"unusual\": true,\n      \"detail\": \"𝕲\",\n      \"doc\": \"Mathematical bold fraktur capital g\"\n    },\n    {\n      \"name\": \"mbffrakg\",\n      \"unusual\": true,\n      \"detail\": \"𝖌\",\n      \"doc\": \"Mathematical bold fraktur small g\"\n    },\n    {\n      \"name\": \"mbffrakH\",\n      \"unusual\": true,\n      \"detail\": \"𝕳\",\n      \"doc\": \"Mathematical bold fraktur capital h\"\n    },\n    {\n      \"name\": \"mbffrakh\",\n      \"unusual\": true,\n      \"detail\": \"𝖍\",\n      \"doc\": \"Mathematical bold fraktur small h\"\n    },\n    {\n      \"name\": \"mbffrakI\",\n      \"unusual\": true,\n      \"detail\": \"𝕴\",\n      \"doc\": \"Mathematical bold fraktur capital i\"\n    },\n    {\n      \"name\": \"mbffraki\",\n      \"unusual\": true,\n      \"detail\": \"𝖎\",\n      \"doc\": \"Mathematical bold fraktur small i\"\n    },\n    {\n      \"name\": \"mbffrakJ\",\n      \"unusual\": true,\n      \"detail\": \"𝕵\",\n      \"doc\": \"Mathematical bold fraktur capital j\"\n    },\n    {\n      \"name\": \"mbffrakj\",\n      \"unusual\": true,\n      \"detail\": \"𝖏\",\n      \"doc\": \"Mathematical bold fraktur small j\"\n    },\n    {\n      \"name\": \"mbffrakK\",\n      \"unusual\": true,\n      \"detail\": \"𝕶\",\n      \"doc\": \"Mathematical bold fraktur capital k\"\n    },\n    {\n      \"name\": \"mbffrakk\",\n      \"unusual\": true,\n      \"detail\": \"𝖐\",\n      \"doc\": \"Mathematical bold fraktur small k\"\n    },\n    {\n      \"name\": \"mbffrakL\",\n      \"unusual\": true,\n      \"detail\": \"𝕷\",\n      \"doc\": \"Mathematical bold fraktur capital l\"\n    },\n    {\n      \"name\": \"mbffrakl\",\n      \"unusual\": true,\n      \"detail\": \"𝖑\",\n      \"doc\": \"Mathematical bold fraktur small l\"\n    },\n    {\n      \"name\": \"mbffrakM\",\n      \"unusual\": true,\n      \"detail\": \"𝕸\",\n      \"doc\": \"Mathematical bold fraktur capital m\"\n    },\n    {\n      \"name\": \"mbffrakm\",\n      \"unusual\": true,\n      \"detail\": \"𝖒\",\n      \"doc\": \"Mathematical bold fraktur small m\"\n    },\n    {\n      \"name\": \"mbffrakN\",\n      \"unusual\": true,\n      \"detail\": \"𝕹\",\n      \"doc\": \"Mathematical bold fraktur capital n\"\n    },\n    {\n      \"name\": \"mbffrakn\",\n      \"unusual\": true,\n      \"detail\": \"𝖓\",\n      \"doc\": \"Mathematical bold fraktur small n\"\n    },\n    {\n      \"name\": \"mbffrakO\",\n      \"unusual\": true,\n      \"detail\": \"𝕺\",\n      \"doc\": \"Mathematical bold fraktur capital o\"\n    },\n    {\n      \"name\": \"mbffrako\",\n      \"unusual\": true,\n      \"detail\": \"𝖔\",\n      \"doc\": \"Mathematical bold fraktur small o\"\n    },\n    {\n      \"name\": \"mbffrakP\",\n      \"unusual\": true,\n      \"detail\": \"𝕻\",\n      \"doc\": \"Mathematical bold fraktur capital p\"\n    },\n    {\n      \"name\": \"mbffrakp\",\n      \"unusual\": true,\n      \"detail\": \"𝖕\",\n      \"doc\": \"Mathematical bold fraktur small p\"\n    },\n    {\n      \"name\": \"mbffrakQ\",\n      \"unusual\": true,\n      \"detail\": \"𝕼\",\n      \"doc\": \"Mathematical bold fraktur capital q\"\n    },\n    {\n      \"name\": \"mbffrakq\",\n      \"unusual\": true,\n      \"detail\": \"𝖖\",\n      \"doc\": \"Mathematical bold fraktur small q\"\n    },\n    {\n      \"name\": \"mbffrakR\",\n      \"unusual\": true,\n      \"detail\": \"𝕽\",\n      \"doc\": \"Mathematical bold fraktur capital r\"\n    },\n    {\n      \"name\": \"mbffrakr\",\n      \"unusual\": true,\n      \"detail\": \"𝖗\",\n      \"doc\": \"Mathematical bold fraktur small r\"\n    },\n    {\n      \"name\": \"mbffrakS\",\n      \"unusual\": true,\n      \"detail\": \"𝕾\",\n      \"doc\": \"Mathematical bold fraktur capital s\"\n    },\n    {\n      \"name\": \"mbffraks\",\n      \"unusual\": true,\n      \"detail\": \"𝖘\",\n      \"doc\": \"Mathematical bold fraktur small s\"\n    },\n    {\n      \"name\": \"mbffrakT\",\n      \"unusual\": true,\n      \"detail\": \"𝕿\",\n      \"doc\": \"Mathematical bold fraktur capital t\"\n    },\n    {\n      \"name\": \"mbffrakt\",\n      \"unusual\": true,\n      \"detail\": \"𝖙\",\n      \"doc\": \"Mathematical bold fraktur small t\"\n    },\n    {\n      \"name\": \"mbffrakU\",\n      \"unusual\": true,\n      \"detail\": \"𝖀\",\n      \"doc\": \"Mathematical bold fraktur capital u\"\n    },\n    {\n      \"name\": \"mbffraku\",\n      \"unusual\": true,\n      \"detail\": \"𝖚\",\n      \"doc\": \"Mathematical bold fraktur small u\"\n    },\n    {\n      \"name\": \"mbffrakV\",\n      \"unusual\": true,\n      \"detail\": \"𝖁\",\n      \"doc\": \"Mathematical bold fraktur capital v\"\n    },\n    {\n      \"name\": \"mbffrakv\",\n      \"unusual\": true,\n      \"detail\": \"𝖛\",\n      \"doc\": \"Mathematical bold fraktur small v\"\n    },\n    {\n      \"name\": \"mbffrakW\",\n      \"unusual\": true,\n      \"detail\": \"𝖂\",\n      \"doc\": \"Mathematical bold fraktur capital w\"\n    },\n    {\n      \"name\": \"mbffrakw\",\n      \"unusual\": true,\n      \"detail\": \"𝖜\",\n      \"doc\": \"Mathematical bold fraktur small w\"\n    },\n    {\n      \"name\": \"mbffrakX\",\n      \"unusual\": true,\n      \"detail\": \"𝖃\",\n      \"doc\": \"Mathematical bold fraktur capital x\"\n    },\n    {\n      \"name\": \"mbffrakx\",\n      \"unusual\": true,\n      \"detail\": \"𝖝\",\n      \"doc\": \"Mathematical bold fraktur small x\"\n    },\n    {\n      \"name\": \"mbffrakY\",\n      \"unusual\": true,\n      \"detail\": \"𝖄\",\n      \"doc\": \"Mathematical bold fraktur capital y\"\n    },\n    {\n      \"name\": \"mbffraky\",\n      \"unusual\": true,\n      \"detail\": \"𝖞\",\n      \"doc\": \"Mathematical bold fraktur small y\"\n    },\n    {\n      \"name\": \"mbffrakZ\",\n      \"unusual\": true,\n      \"detail\": \"𝖅\",\n      \"doc\": \"Mathematical bold fraktur capital z\"\n    },\n    {\n      \"name\": \"mbffrakz\",\n      \"unusual\": true,\n      \"detail\": \"𝖟\",\n      \"doc\": \"Mathematical bold fraktur small z\"\n    },\n    {\n      \"name\": \"mbfG\",\n      \"unusual\": true,\n      \"detail\": \"𝐆\",\n      \"doc\": \"Mathematical bold capital g\"\n    },\n    {\n      \"name\": \"mbfg\",\n      \"unusual\": true,\n      \"detail\": \"𝐠\",\n      \"doc\": \"Mathematical bold small g\"\n    },\n    {\n      \"name\": \"mbfGamma\",\n      \"unusual\": true,\n      \"detail\": \"𝚪\",\n      \"doc\": \"Mathematical bold capital gamma\"\n    },\n    {\n      \"name\": \"mbfgamma\",\n      \"unusual\": true,\n      \"detail\": \"𝛄 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small gamma\"\n    },\n    {\n      \"name\": \"mbfH\",\n      \"unusual\": true,\n      \"detail\": \"𝐇\",\n      \"doc\": \"Mathematical bold capital h\"\n    },\n    {\n      \"name\": \"mbfh\",\n      \"unusual\": true,\n      \"detail\": \"𝐡\",\n      \"doc\": \"Mathematical bold small h\"\n    },\n    {\n      \"name\": \"mbfI\",\n      \"unusual\": true,\n      \"detail\": \"𝐈\",\n      \"doc\": \"Mathematical bold capital i\"\n    },\n    {\n      \"name\": \"mbfi\",\n      \"unusual\": true,\n      \"detail\": \"𝐢\",\n      \"doc\": \"Mathematical bold small i\"\n    },\n    {\n      \"name\": \"mbfIota\",\n      \"unusual\": true,\n      \"detail\": \"𝚰\",\n      \"doc\": \"Mathematical bold capital iota\"\n    },\n    {\n      \"name\": \"mbfiota\",\n      \"unusual\": true,\n      \"detail\": \"𝛊 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small iota\"\n    },\n    {\n      \"name\": \"mbfitA\",\n      \"unusual\": true,\n      \"detail\": \"𝑨 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{a} (fixmath), mathematical bold italic capital a\"\n    },\n    {\n      \"name\": \"mbfita\",\n      \"unusual\": true,\n      \"detail\": \"𝒂 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{a} (fixmath), mathematical bold italic small a\"\n    },\n    {\n      \"name\": \"mbfitAlpha\",\n      \"unusual\": true,\n      \"detail\": \"𝜜\",\n      \"doc\": \"Mathematical bold italic capital alpha\"\n    },\n    {\n      \"name\": \"mbfitalpha\",\n      \"unusual\": true,\n      \"detail\": \"𝜶 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\alpha} (fixmath), mathematical bold italic small alpha\"\n    },\n    {\n      \"name\": \"mbfitB\",\n      \"unusual\": true,\n      \"detail\": \"𝑩 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{b} (fixmath), mathematical bold italic capital b\"\n    },\n    {\n      \"name\": \"mbfitb\",\n      \"unusual\": true,\n      \"detail\": \"𝒃 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{b} (fixmath), mathematical bold italic small b\"\n    },\n    {\n      \"name\": \"mbfitBeta\",\n      \"unusual\": true,\n      \"detail\": \"𝜝\",\n      \"doc\": \"Mathematical bold italic capital beta\"\n    },\n    {\n      \"name\": \"mbfitbeta\",\n      \"unusual\": true,\n      \"detail\": \"𝜷 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\beta} (fixmath), mathematical bold italic small beta\"\n    },\n    {\n      \"name\": \"mbfitC\",\n      \"unusual\": true,\n      \"detail\": \"𝑪 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{c} (fixmath), mathematical bold italic capital c\"\n    },\n    {\n      \"name\": \"mbfitc\",\n      \"unusual\": true,\n      \"detail\": \"𝒄 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{c} (fixmath), mathematical bold italic small c\"\n    },\n    {\n      \"name\": \"mbfitChi\",\n      \"unusual\": true,\n      \"detail\": \"𝜲\",\n      \"doc\": \"Mathematical bold italic capital chi\"\n    },\n    {\n      \"name\": \"mbfitchi\",\n      \"unusual\": true,\n      \"detail\": \"𝝌 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\chi} (fixmath), mathematical bold italic small chi\"\n    },\n    {\n      \"name\": \"mbfitD\",\n      \"unusual\": true,\n      \"detail\": \"𝑫 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{d} (fixmath), mathematical bold italic capital d\"\n    },\n    {\n      \"name\": \"mbfitd\",\n      \"unusual\": true,\n      \"detail\": \"𝒅 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{d} (fixmath), mathematical bold italic small d\"\n    },\n    {\n      \"name\": \"mbfitDelta\",\n      \"unusual\": true,\n      \"detail\": \"𝜟 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic capital delta\"\n    },\n    {\n      \"name\": \"mbfitdelta\",\n      \"unusual\": true,\n      \"detail\": \"𝜹 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\delta} (fixmath), mathematical bold italic small delta\"\n    },\n    {\n      \"name\": \"mbfitE\",\n      \"unusual\": true,\n      \"detail\": \"𝑬 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{e} (fixmath), mathematical bold italic capital e\"\n    },\n    {\n      \"name\": \"mbfite\",\n      \"unusual\": true,\n      \"detail\": \"𝒆 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{e} (fixmath), mathematical bold italic small e\"\n    },\n    {\n      \"name\": \"mbfitEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜠\",\n      \"doc\": \"Mathematical bold italic capital epsilon\"\n    },\n    {\n      \"name\": \"mbfitepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜺 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varepsilon} (fixmath), mathematical bold italic small epsilon\"\n    },\n    {\n      \"name\": \"mbfitEta\",\n      \"unusual\": true,\n      \"detail\": \"𝜢\",\n      \"doc\": \"Mathematical bold italic capital eta\"\n    },\n    {\n      \"name\": \"mbfiteta\",\n      \"unusual\": true,\n      \"detail\": \"𝜼 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\eta} (fixmath), mathematical bold italic small eta\"\n    },\n    {\n      \"name\": \"mbfitF\",\n      \"unusual\": true,\n      \"detail\": \"𝑭 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{f} (fixmath), mathematical bold italic capital f\"\n    },\n    {\n      \"name\": \"mbfitf\",\n      \"unusual\": true,\n      \"detail\": \"𝒇 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{f} (fixmath), mathematical bold italic small f\"\n    },\n    {\n      \"name\": \"mbfitG\",\n      \"unusual\": true,\n      \"detail\": \"𝑮 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{g} (fixmath), mathematical bold italic capital g\"\n    },\n    {\n      \"name\": \"mbfitg\",\n      \"unusual\": true,\n      \"detail\": \"𝒈 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{g} (fixmath), mathematical bold italic small g\"\n    },\n    {\n      \"name\": \"mbfitGamma\",\n      \"unusual\": true,\n      \"detail\": \"𝜞 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic capital gamma\"\n    },\n    {\n      \"name\": \"mbfitgamma\",\n      \"unusual\": true,\n      \"detail\": \"𝜸 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\gamma} (fixmath), mathematical bold italic small gamma\"\n    },\n    {\n      \"name\": \"mbfitH\",\n      \"unusual\": true,\n      \"detail\": \"𝑯 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{h} (fixmath), mathematical bold italic capital h\"\n    },\n    {\n      \"name\": \"mbfith\",\n      \"unusual\": true,\n      \"detail\": \"𝒉 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{h} (fixmath), mathematical bold italic small h\"\n    },\n    {\n      \"name\": \"mbfitI\",\n      \"unusual\": true,\n      \"detail\": \"𝑰 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{i} (fixmath), mathematical bold italic capital i\"\n    },\n    {\n      \"name\": \"mbfiti\",\n      \"unusual\": true,\n      \"detail\": \"𝒊 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{i} (fixmath), mathematical bold italic small i\"\n    },\n    {\n      \"name\": \"mbfitIota\",\n      \"unusual\": true,\n      \"detail\": \"𝜤\",\n      \"doc\": \"Mathematical bold italic capital iota\"\n    },\n    {\n      \"name\": \"mbfitiota\",\n      \"unusual\": true,\n      \"detail\": \"𝜾 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\iota} (fixmath), mathematical bold italic small iota\"\n    },\n    {\n      \"name\": \"mbfitJ\",\n      \"unusual\": true,\n      \"detail\": \"𝑱 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{j} (fixmath), mathematical bold italic capital j\"\n    },\n    {\n      \"name\": \"mbfitj\",\n      \"unusual\": true,\n      \"detail\": \"𝒋 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{j} (fixmath), mathematical bold italic small j\"\n    },\n    {\n      \"name\": \"mbfitK\",\n      \"unusual\": true,\n      \"detail\": \"𝑲 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{k} (fixmath), mathematical bold italic capital k\"\n    },\n    {\n      \"name\": \"mbfitk\",\n      \"unusual\": true,\n      \"detail\": \"𝒌 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{k} (fixmath), mathematical bold italic small k\"\n    },\n    {\n      \"name\": \"mbfitKappa\",\n      \"unusual\": true,\n      \"detail\": \"𝜥\",\n      \"doc\": \"Mathematical bold italic capital kappa\"\n    },\n    {\n      \"name\": \"mbfitkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝜿 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\kappa} (fixmath), mathematical bold italic small kappa\"\n    },\n    {\n      \"name\": \"mbfitL\",\n      \"unusual\": true,\n      \"detail\": \"𝑳 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{l} (fixmath), mathematical bold italic capital l\"\n    },\n    {\n      \"name\": \"mbfitl\",\n      \"unusual\": true,\n      \"detail\": \"𝒍 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{l} (fixmath), mathematical bold italic small l\"\n    },\n    {\n      \"name\": \"mbfitLambda\",\n      \"unusual\": true,\n      \"detail\": \"𝜦 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic capital lambda\"\n    },\n    {\n      \"name\": \"mbfitlambda\",\n      \"unusual\": true,\n      \"detail\": \"𝝀 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\lambda} (fixmath), mathematical bold italic small lambda\"\n    },\n    {\n      \"name\": \"mbfitM\",\n      \"unusual\": true,\n      \"detail\": \"𝑴 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{m} (fixmath), mathematical bold italic capital m\"\n    },\n    {\n      \"name\": \"mbfitm\",\n      \"unusual\": true,\n      \"detail\": \"𝒎 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{m} (fixmath), mathematical bold italic small m\"\n    },\n    {\n      \"name\": \"mbfitMu\",\n      \"unusual\": true,\n      \"detail\": \"𝜧\",\n      \"doc\": \"Mathematical bold italic capital mu\"\n    },\n    {\n      \"name\": \"mbfitmu\",\n      \"unusual\": true,\n      \"detail\": \"𝝁 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\mu} (fixmath), mathematical bold italic small mu\"\n    },\n    {\n      \"name\": \"mbfitN\",\n      \"unusual\": true,\n      \"detail\": \"𝑵 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{n} (fixmath), mathematical bold italic capital n\"\n    },\n    {\n      \"name\": \"mbfitn\",\n      \"unusual\": true,\n      \"detail\": \"𝒏 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{n} (fixmath), mathematical bold italic small n\"\n    },\n    {\n      \"name\": \"mbfitnabla\",\n      \"unusual\": true,\n      \"detail\": \"𝜵\",\n      \"doc\": \"Mathematical bold italic nabla\"\n    },\n    {\n      \"name\": \"mbfitNu\",\n      \"unusual\": true,\n      \"detail\": \"𝜨\",\n      \"doc\": \"Mathematical bold italic capital nu\"\n    },\n    {\n      \"name\": \"mbfitnu\",\n      \"unusual\": true,\n      \"detail\": \"𝝂 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\nu} (fixmath), mathematical bold italic small nu\"\n    },\n    {\n      \"name\": \"mbfitO\",\n      \"unusual\": true,\n      \"detail\": \"𝑶 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{o} (fixmath), mathematical bold italic capital o\"\n    },\n    {\n      \"name\": \"mbfito\",\n      \"unusual\": true,\n      \"detail\": \"𝒐 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{o} (fixmath), mathematical bold italic small o\"\n    },\n    {\n      \"name\": \"mbfitOmega\",\n      \"unusual\": true,\n      \"detail\": \"𝜴 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic capital omega\"\n    },\n    {\n      \"name\": \"mbfitomega\",\n      \"unusual\": true,\n      \"detail\": \"𝝎 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\omega} (fixmath), mathematical bold italic small omega\"\n    },\n    {\n      \"name\": \"mbfitOmicron\",\n      \"unusual\": true,\n      \"detail\": \"𝜪\",\n      \"doc\": \"Mathematical bold italic capital omicron\"\n    },\n    {\n      \"name\": \"mbfitomicron\",\n      \"unusual\": true,\n      \"detail\": \"𝝄\",\n      \"doc\": \"Mathematical bold italic small omicron\"\n    },\n    {\n      \"name\": \"mbfitP\",\n      \"unusual\": true,\n      \"detail\": \"𝑷 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{p} (fixmath), mathematical bold italic capital p\"\n    },\n    {\n      \"name\": \"mbfitp\",\n      \"unusual\": true,\n      \"detail\": \"𝒑 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{p} (fixmath), mathematical bold italic small p\"\n    },\n    {\n      \"name\": \"mbfitpartial\",\n      \"unusual\": true,\n      \"detail\": \"𝝏\",\n      \"doc\": \"Mathematical bold italic partial differential\"\n    },\n    {\n      \"name\": \"mbfitPhi\",\n      \"unusual\": true,\n      \"detail\": \"𝜱 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic capital phi\"\n    },\n    {\n      \"name\": \"mbfitphi\",\n      \"unusual\": true,\n      \"detail\": \"𝝋 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varphi} (fixmath), mathematical bold italic small phi\"\n    },\n    {\n      \"name\": \"mbfitPi\",\n      \"unusual\": true,\n      \"detail\": \"𝜫 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic capital pi\"\n    },\n    {\n      \"name\": \"mbfitpi\",\n      \"unusual\": true,\n      \"detail\": \"𝝅 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\pi} (fixmath), mathematical bold italic small pi\"\n    },\n    {\n      \"name\": \"mbfitPsi\",\n      \"unusual\": true,\n      \"detail\": \"𝜳 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic capital psi\"\n    },\n    {\n      \"name\": \"mbfitpsi\",\n      \"unusual\": true,\n      \"detail\": \"𝝍 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\psi} (fixmath), mathematical bold italic small psi\"\n    },\n    {\n      \"name\": \"mbfitQ\",\n      \"unusual\": true,\n      \"detail\": \"𝑸 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{q} (fixmath), mathematical bold italic capital q\"\n    },\n    {\n      \"name\": \"mbfitq\",\n      \"unusual\": true,\n      \"detail\": \"𝒒 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{q} (fixmath), mathematical bold italic small q\"\n    },\n    {\n      \"name\": \"mbfitR\",\n      \"unusual\": true,\n      \"detail\": \"𝑹 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{r} (fixmath), mathematical bold italic capital r\"\n    },\n    {\n      \"name\": \"mbfitr\",\n      \"unusual\": true,\n      \"detail\": \"𝒓 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{r} (fixmath), mathematical bold italic small r\"\n    },\n    {\n      \"name\": \"mbfitRho\",\n      \"unusual\": true,\n      \"detail\": \"𝜬\",\n      \"doc\": \"Mathematical bold italic capital rho\"\n    },\n    {\n      \"name\": \"mbfitrho\",\n      \"unusual\": true,\n      \"detail\": \"𝝆 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\rho} (fixmath), mathematical bold italic small rho\"\n    },\n    {\n      \"name\": \"mbfitS\",\n      \"unusual\": true,\n      \"detail\": \"𝑺 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{s} (fixmath), mathematical bold italic capital s\"\n    },\n    {\n      \"name\": \"mbfits\",\n      \"unusual\": true,\n      \"detail\": \"𝒔 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{s} (fixmath), mathematical bold italic small s\"\n    },\n    {\n      \"name\": \"mbfitsansA\",\n      \"unusual\": true,\n      \"detail\": \"𝘼 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital a\"\n    },\n    {\n      \"name\": \"mbfitsansa\",\n      \"unusual\": true,\n      \"detail\": \"𝙖 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small a\"\n    },\n    {\n      \"name\": \"mbfitsansAlpha\",\n      \"unusual\": true,\n      \"detail\": \"𝞐\",\n      \"doc\": \"Mathematical sans-serif bold italic capital alpha\"\n    },\n    {\n      \"name\": \"mbfitsansalpha\",\n      \"unusual\": true,\n      \"detail\": \"𝞪 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small alpha\"\n    },\n    {\n      \"name\": \"mbfitsansB\",\n      \"unusual\": true,\n      \"detail\": \"𝘽 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital b\"\n    },\n    {\n      \"name\": \"mbfitsansb\",\n      \"unusual\": true,\n      \"detail\": \"𝙗 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small b\"\n    },\n    {\n      \"name\": \"mbfitsansBeta\",\n      \"unusual\": true,\n      \"detail\": \"𝞑\",\n      \"doc\": \"Mathematical sans-serif bold italic capital beta\"\n    },\n    {\n      \"name\": \"mbfitsansbeta\",\n      \"unusual\": true,\n      \"detail\": \"𝞫 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small beta\"\n    },\n    {\n      \"name\": \"mbfitsansC\",\n      \"unusual\": true,\n      \"detail\": \"𝘾 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital c\"\n    },\n    {\n      \"name\": \"mbfitsansc\",\n      \"unusual\": true,\n      \"detail\": \"𝙘 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small c\"\n    },\n    {\n      \"name\": \"mbfitsansChi\",\n      \"unusual\": true,\n      \"detail\": \"𝞦\",\n      \"doc\": \"Mathematical sans-serif bold italic capital chi\"\n    },\n    {\n      \"name\": \"mbfitsanschi\",\n      \"unusual\": true,\n      \"detail\": \"𝟀 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small chi\"\n    },\n    {\n      \"name\": \"mbfitsansD\",\n      \"unusual\": true,\n      \"detail\": \"𝘿 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital d\"\n    },\n    {\n      \"name\": \"mbfitsansd\",\n      \"unusual\": true,\n      \"detail\": \"𝙙 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small d\"\n    },\n    {\n      \"name\": \"mbfitsansDelta\",\n      \"unusual\": true,\n      \"detail\": \"𝞓 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital delta\"\n    },\n    {\n      \"name\": \"mbfitsansdelta\",\n      \"unusual\": true,\n      \"detail\": \"𝞭 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small delta\"\n    },\n    {\n      \"name\": \"mbfitsansE\",\n      \"unusual\": true,\n      \"detail\": \"𝙀 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital e\"\n    },\n    {\n      \"name\": \"mbfitsanse\",\n      \"unusual\": true,\n      \"detail\": \"𝙚 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small e\"\n    },\n    {\n      \"name\": \"mbfitsansEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞔\",\n      \"doc\": \"Mathematical sans-serif bold italic capital epsilon\"\n    },\n    {\n      \"name\": \"mbfitsansepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞮 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small epsilon\"\n    },\n    {\n      \"name\": \"mbfitsansEta\",\n      \"unusual\": true,\n      \"detail\": \"𝞖\",\n      \"doc\": \"Mathematical sans-serif bold italic capital eta\"\n    },\n    {\n      \"name\": \"mbfitsanseta\",\n      \"unusual\": true,\n      \"detail\": \"𝞰 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small eta\"\n    },\n    {\n      \"name\": \"mbfitsansF\",\n      \"unusual\": true,\n      \"detail\": \"𝙁 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital f\"\n    },\n    {\n      \"name\": \"mbfitsansf\",\n      \"unusual\": true,\n      \"detail\": \"𝙛 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small f\"\n    },\n    {\n      \"name\": \"mbfitsansG\",\n      \"unusual\": true,\n      \"detail\": \"𝙂 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital g\"\n    },\n    {\n      \"name\": \"mbfitsansg\",\n      \"unusual\": true,\n      \"detail\": \"𝙜 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small g\"\n    },\n    {\n      \"name\": \"mbfitsansGamma\",\n      \"unusual\": true,\n      \"detail\": \"𝞒 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital gamma\"\n    },\n    {\n      \"name\": \"mbfitsansgamma\",\n      \"unusual\": true,\n      \"detail\": \"𝞬 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small gamma\"\n    },\n    {\n      \"name\": \"mbfitsansH\",\n      \"unusual\": true,\n      \"detail\": \"𝙃 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital h\"\n    },\n    {\n      \"name\": \"mbfitsansh\",\n      \"unusual\": true,\n      \"detail\": \"𝙝 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small h\"\n    },\n    {\n      \"name\": \"mbfitsansI\",\n      \"unusual\": true,\n      \"detail\": \"𝙄 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital i\"\n    },\n    {\n      \"name\": \"mbfitsansi\",\n      \"unusual\": true,\n      \"detail\": \"𝙞 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small i\"\n    },\n    {\n      \"name\": \"mbfitsansIota\",\n      \"unusual\": true,\n      \"detail\": \"𝞘\",\n      \"doc\": \"Mathematical sans-serif bold italic capital iota\"\n    },\n    {\n      \"name\": \"mbfitsansiota\",\n      \"unusual\": true,\n      \"detail\": \"𝞲 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small iota\"\n    },\n    {\n      \"name\": \"mbfitsansJ\",\n      \"unusual\": true,\n      \"detail\": \"𝙅 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital j\"\n    },\n    {\n      \"name\": \"mbfitsansj\",\n      \"unusual\": true,\n      \"detail\": \"𝙟 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small j\"\n    },\n    {\n      \"name\": \"mbfitsansK\",\n      \"unusual\": true,\n      \"detail\": \"𝙆 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital k\"\n    },\n    {\n      \"name\": \"mbfitsansk\",\n      \"unusual\": true,\n      \"detail\": \"𝙠 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small k\"\n    },\n    {\n      \"name\": \"mbfitsansKappa\",\n      \"unusual\": true,\n      \"detail\": \"𝞙\",\n      \"doc\": \"Mathematical sans-serif bold italic capital kappa\"\n    },\n    {\n      \"name\": \"mbfitsanskappa\",\n      \"unusual\": true,\n      \"detail\": \"𝞳 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small kappa\"\n    },\n    {\n      \"name\": \"mbfitsansL\",\n      \"unusual\": true,\n      \"detail\": \"𝙇 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital l\"\n    },\n    {\n      \"name\": \"mbfitsansl\",\n      \"unusual\": true,\n      \"detail\": \"𝙡 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small l\"\n    },\n    {\n      \"name\": \"mbfitsansLambda\",\n      \"unusual\": true,\n      \"detail\": \"𝞚 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital lambda\"\n    },\n    {\n      \"name\": \"mbfitsanslambda\",\n      \"unusual\": true,\n      \"detail\": \"𝞴 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small lambda\"\n    },\n    {\n      \"name\": \"mbfitsansM\",\n      \"unusual\": true,\n      \"detail\": \"𝙈 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital m\"\n    },\n    {\n      \"name\": \"mbfitsansm\",\n      \"unusual\": true,\n      \"detail\": \"𝙢 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small m\"\n    },\n    {\n      \"name\": \"mbfitsansMu\",\n      \"unusual\": true,\n      \"detail\": \"𝞛\",\n      \"doc\": \"Mathematical sans-serif bold italic capital mu\"\n    },\n    {\n      \"name\": \"mbfitsansmu\",\n      \"unusual\": true,\n      \"detail\": \"𝞵 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small mu\"\n    },\n    {\n      \"name\": \"mbfitsansN\",\n      \"unusual\": true,\n      \"detail\": \"𝙉 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital n\"\n    },\n    {\n      \"name\": \"mbfitsansn\",\n      \"unusual\": true,\n      \"detail\": \"𝙣 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small n\"\n    },\n    {\n      \"name\": \"mbfitsansnabla\",\n      \"unusual\": true,\n      \"detail\": \"𝞩\",\n      \"doc\": \"Mathematical sans-serif bold italic nabla\"\n    },\n    {\n      \"name\": \"mbfitsansNu\",\n      \"unusual\": true,\n      \"detail\": \"𝞜\",\n      \"doc\": \"Mathematical sans-serif bold italic capital nu\"\n    },\n    {\n      \"name\": \"mbfitsansnu\",\n      \"unusual\": true,\n      \"detail\": \"𝞶 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small nu\"\n    },\n    {\n      \"name\": \"mbfitsansO\",\n      \"unusual\": true,\n      \"detail\": \"𝙊 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital o\"\n    },\n    {\n      \"name\": \"mbfitsanso\",\n      \"unusual\": true,\n      \"detail\": \"𝙤 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small o\"\n    },\n    {\n      \"name\": \"mbfitsansOmega\",\n      \"unusual\": true,\n      \"detail\": \"𝞨 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital omega\"\n    },\n    {\n      \"name\": \"mbfitsansomega\",\n      \"unusual\": true,\n      \"detail\": \"𝟂 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small omega\"\n    },\n    {\n      \"name\": \"mbfitsansOmicron\",\n      \"unusual\": true,\n      \"detail\": \"𝞞\",\n      \"doc\": \"Mathematical sans-serif bold italic capital omicron\"\n    },\n    {\n      \"name\": \"mbfitsansomicron\",\n      \"unusual\": true,\n      \"detail\": \"𝞸\",\n      \"doc\": \"Mathematical sans-serif bold italic small omicron\"\n    },\n    {\n      \"name\": \"mbfitsansP\",\n      \"unusual\": true,\n      \"detail\": \"𝙋 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital p\"\n    },\n    {\n      \"name\": \"mbfitsansp\",\n      \"unusual\": true,\n      \"detail\": \"𝙥 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small p\"\n    },\n    {\n      \"name\": \"mbfitsanspartial\",\n      \"unusual\": true,\n      \"detail\": \"𝟃\",\n      \"doc\": \"Mathematical sans-serif bold italic partial differential\"\n    },\n    {\n      \"name\": \"mbfitsansPhi\",\n      \"unusual\": true,\n      \"detail\": \"𝞥 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital phi\"\n    },\n    {\n      \"name\": \"mbfitsansphi\",\n      \"unusual\": true,\n      \"detail\": \"𝞿 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small phi\"\n    },\n    {\n      \"name\": \"mbfitsansPi\",\n      \"unusual\": true,\n      \"detail\": \"𝞟 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital pi\"\n    },\n    {\n      \"name\": \"mbfitsanspi\",\n      \"unusual\": true,\n      \"detail\": \"𝞹 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small pi\"\n    },\n    {\n      \"name\": \"mbfitsansPsi\",\n      \"unusual\": true,\n      \"detail\": \"𝞧 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital psi\"\n    },\n    {\n      \"name\": \"mbfitsanspsi\",\n      \"unusual\": true,\n      \"detail\": \"𝟁 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small psi\"\n    },\n    {\n      \"name\": \"mbfitsansQ\",\n      \"unusual\": true,\n      \"detail\": \"𝙌 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital q\"\n    },\n    {\n      \"name\": \"mbfitsansq\",\n      \"unusual\": true,\n      \"detail\": \"𝙦 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small q\"\n    },\n    {\n      \"name\": \"mbfitsansR\",\n      \"unusual\": true,\n      \"detail\": \"𝙍 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital r\"\n    },\n    {\n      \"name\": \"mbfitsansr\",\n      \"unusual\": true,\n      \"detail\": \"𝙧 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small r\"\n    },\n    {\n      \"name\": \"mbfitsansRho\",\n      \"unusual\": true,\n      \"detail\": \"𝞠\",\n      \"doc\": \"Mathematical sans-serif bold italic capital rho\"\n    },\n    {\n      \"name\": \"mbfitsansrho\",\n      \"unusual\": true,\n      \"detail\": \"𝞺 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small rho\"\n    },\n    {\n      \"name\": \"mbfitsansS\",\n      \"unusual\": true,\n      \"detail\": \"𝙎 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital s\"\n    },\n    {\n      \"name\": \"mbfitsanss\",\n      \"unusual\": true,\n      \"detail\": \"𝙨 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small s\"\n    },\n    {\n      \"name\": \"mbfitsansSigma\",\n      \"unusual\": true,\n      \"detail\": \"𝞢 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital sigma\"\n    },\n    {\n      \"name\": \"mbfitsanssigma\",\n      \"unusual\": true,\n      \"detail\": \"𝞼 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small sigma\"\n    },\n    {\n      \"name\": \"mbfitsansT\",\n      \"unusual\": true,\n      \"detail\": \"𝙏 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital t\"\n    },\n    {\n      \"name\": \"mbfitsanst\",\n      \"unusual\": true,\n      \"detail\": \"𝙩 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small t\"\n    },\n    {\n      \"name\": \"mbfitsansTau\",\n      \"unusual\": true,\n      \"detail\": \"𝞣\",\n      \"doc\": \"Mathematical sans-serif bold italic capital tau\"\n    },\n    {\n      \"name\": \"mbfitsanstau\",\n      \"unusual\": true,\n      \"detail\": \"𝞽 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small tau\"\n    },\n    {\n      \"name\": \"mbfitsansTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝞗 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital theta\"\n    },\n    {\n      \"name\": \"mbfitsanstheta\",\n      \"unusual\": true,\n      \"detail\": \"𝞱 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small theta\"\n    },\n    {\n      \"name\": \"mbfitsansU\",\n      \"unusual\": true,\n      \"detail\": \"𝙐 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital u\"\n    },\n    {\n      \"name\": \"mbfitsansu\",\n      \"unusual\": true,\n      \"detail\": \"𝙪 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small u\"\n    },\n    {\n      \"name\": \"mbfitsansUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞤 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital upsilon\"\n    },\n    {\n      \"name\": \"mbfitsansupsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞾 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small upsilon\"\n    },\n    {\n      \"name\": \"mbfitsansV\",\n      \"unusual\": true,\n      \"detail\": \"𝙑 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital v\"\n    },\n    {\n      \"name\": \"mbfitsansv\",\n      \"unusual\": true,\n      \"detail\": \"𝙫 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small v\"\n    },\n    {\n      \"name\": \"mbfitsansvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝟄 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝟆\",\n      \"doc\": \"Mathematical sans-serif bold italic kappa symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarphi\",\n      \"unusual\": true,\n      \"detail\": \"𝟇 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic phi symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarpi\",\n      \"unusual\": true,\n      \"detail\": \"𝟉 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic pi symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarrho\",\n      \"unusual\": true,\n      \"detail\": \"𝟈 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic rho symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝞻 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small final sigma\"\n    },\n    {\n      \"name\": \"mbfitsansvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝞡\",\n      \"doc\": \"Mathematical sans-serif bold italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfitsansvartheta\",\n      \"unusual\": true,\n      \"detail\": \"𝟅 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic theta symbol\"\n    },\n    {\n      \"name\": \"mbfitsansW\",\n      \"unusual\": true,\n      \"detail\": \"𝙒 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital w\"\n    },\n    {\n      \"name\": \"mbfitsansw\",\n      \"unusual\": true,\n      \"detail\": \"𝙬 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small w\"\n    },\n    {\n      \"name\": \"mbfitsansX\",\n      \"unusual\": true,\n      \"detail\": \"𝙓 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital x\"\n    },\n    {\n      \"name\": \"mbfitsansx\",\n      \"unusual\": true,\n      \"detail\": \"𝙭 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small x\"\n    },\n    {\n      \"name\": \"mbfitsansXi\",\n      \"unusual\": true,\n      \"detail\": \"𝞝 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital xi\"\n    },\n    {\n      \"name\": \"mbfitsansxi\",\n      \"unusual\": true,\n      \"detail\": \"𝞷 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small xi\"\n    },\n    {\n      \"name\": \"mbfitsansY\",\n      \"unusual\": true,\n      \"detail\": \"𝙔 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital y\"\n    },\n    {\n      \"name\": \"mbfitsansy\",\n      \"unusual\": true,\n      \"detail\": \"𝙮 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small y\"\n    },\n    {\n      \"name\": \"mbfitsansZ\",\n      \"unusual\": true,\n      \"detail\": \"𝙕 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic capital z\"\n    },\n    {\n      \"name\": \"mbfitsansz\",\n      \"unusual\": true,\n      \"detail\": \"𝙯 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small z\"\n    },\n    {\n      \"name\": \"mbfitsansZeta\",\n      \"unusual\": true,\n      \"detail\": \"𝞕\",\n      \"doc\": \"Mathematical sans-serif bold italic capital zeta\"\n    },\n    {\n      \"name\": \"mbfitsanszeta\",\n      \"unusual\": true,\n      \"detail\": \"𝞯 (\\\"isomath\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold italic small zeta\"\n    },\n    {\n      \"name\": \"mbfitSigma\",\n      \"unusual\": true,\n      \"detail\": \"𝜮 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic capital sigma\"\n    },\n    {\n      \"name\": \"mbfitsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝝈 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\sigma} (fixmath), mathematical bold italic small sigma\"\n    },\n    {\n      \"name\": \"mbfitT\",\n      \"unusual\": true,\n      \"detail\": \"𝑻 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{t} (fixmath), mathematical bold italic capital t\"\n    },\n    {\n      \"name\": \"mbfitt\",\n      \"unusual\": true,\n      \"detail\": \"𝒕 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{t} (fixmath), mathematical bold italic small t\"\n    },\n    {\n      \"name\": \"mbfitTau\",\n      \"unusual\": true,\n      \"detail\": \"𝜯\",\n      \"doc\": \"Mathematical bold italic capital tau\"\n    },\n    {\n      \"name\": \"mbfittau\",\n      \"unusual\": true,\n      \"detail\": \"𝝉 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\tau} (fixmath), mathematical bold italic small tau\"\n    },\n    {\n      \"name\": \"mbfitTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝜣 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic capital theta\"\n    },\n    {\n      \"name\": \"mbfittheta\",\n      \"unusual\": true,\n      \"detail\": \"𝜽 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\theta} (fixmath), mathematical bold italic small theta\"\n    },\n    {\n      \"name\": \"mbfitU\",\n      \"unusual\": true,\n      \"detail\": \"𝑼 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{u} (fixmath), mathematical bold italic capital u\"\n    },\n    {\n      \"name\": \"mbfitu\",\n      \"unusual\": true,\n      \"detail\": \"𝒖 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{u} (fixmath), mathematical bold italic small u\"\n    },\n    {\n      \"name\": \"mbfitUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜰 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic capital upsilon\"\n    },\n    {\n      \"name\": \"mbfitupsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝝊 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\upsilon} (fixmath), mathematical bold italic small upsilon\"\n    },\n    {\n      \"name\": \"mbfitV\",\n      \"unusual\": true,\n      \"detail\": \"𝑽 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{v} (fixmath), mathematical bold italic capital v\"\n    },\n    {\n      \"name\": \"mbfitv\",\n      \"unusual\": true,\n      \"detail\": \"𝒗 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{v} (fixmath), mathematical bold italic small v\"\n    },\n    {\n      \"name\": \"mbfitvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝝐 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\epsilon} (fixmath), mathematical bold italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfitvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝝒\",\n      \"doc\": \"Mathematical bold italic kappa symbol\"\n    },\n    {\n      \"name\": \"mbfitvarphi\",\n      \"unusual\": true,\n      \"detail\": \"𝝓 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\phi} (fixmath), mathematical bold italic phi symbol\"\n    },\n    {\n      \"name\": \"mbfitvarpi\",\n      \"unusual\": true,\n      \"detail\": \"𝝕 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varpi} (fixmath), mathematical bold italic pi symbol\"\n    },\n    {\n      \"name\": \"mbfitvarrho\",\n      \"unusual\": true,\n      \"detail\": \"𝝔 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varrho} (fixmath), mathematical bold italic rho symbol\"\n    },\n    {\n      \"name\": \"mbfitvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝝇 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\varsigma} (fixmath), mathematical bold italic small final sigma\"\n    },\n    {\n      \"name\": \"mbfitvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝜭\",\n      \"doc\": \"Mathematical bold italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfitvartheta\",\n      \"unusual\": true,\n      \"detail\": \"𝝑 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\vartheta} (fixmath), mathematical bold italic theta symbol\"\n    },\n    {\n      \"name\": \"mbfitW\",\n      \"unusual\": true,\n      \"detail\": \"𝑾 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{w} (fixmath), mathematical bold italic capital w\"\n    },\n    {\n      \"name\": \"mbfitw\",\n      \"unusual\": true,\n      \"detail\": \"𝒘 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{w} (fixmath), mathematical bold italic small w\"\n    },\n    {\n      \"name\": \"mbfitX\",\n      \"unusual\": true,\n      \"detail\": \"𝑿 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{x} (fixmath), mathematical bold italic capital x\"\n    },\n    {\n      \"name\": \"mbfitx\",\n      \"unusual\": true,\n      \"detail\": \"𝒙 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{x} (fixmath), mathematical bold italic small x\"\n    },\n    {\n      \"name\": \"mbfitXi\",\n      \"unusual\": true,\n      \"detail\": \"𝜩 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic capital xi\"\n    },\n    {\n      \"name\": \"mbfitxi\",\n      \"unusual\": true,\n      \"detail\": \"𝝃 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\xi} (fixmath), mathematical bold italic small xi\"\n    },\n    {\n      \"name\": \"mbfitY\",\n      \"unusual\": true,\n      \"detail\": \"𝒀 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{y} (fixmath), mathematical bold italic capital y\"\n    },\n    {\n      \"name\": \"mbfity\",\n      \"unusual\": true,\n      \"detail\": \"𝒚 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{y} (fixmath), mathematical bold italic small y\"\n    },\n    {\n      \"name\": \"mbfitZ\",\n      \"unusual\": true,\n      \"detail\": \"𝒁 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{z} (fixmath), mathematical bold italic capital z\"\n    },\n    {\n      \"name\": \"mbfitz\",\n      \"unusual\": true,\n      \"detail\": \"𝒛 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{z} (fixmath), mathematical bold italic small z\"\n    },\n    {\n      \"name\": \"mbfitZeta\",\n      \"unusual\": true,\n      \"detail\": \"𝜡\",\n      \"doc\": \"Mathematical bold italic capital zeta\"\n    },\n    {\n      \"name\": \"mbfitzeta\",\n      \"unusual\": true,\n      \"detail\": \"𝜻 (\\\"isomath\\\" command)\",\n      \"doc\": \"\\\\mathbold{\\\\zeta} (fixmath), mathematical bold italic small zeta\"\n    },\n    {\n      \"name\": \"mbfJ\",\n      \"unusual\": true,\n      \"detail\": \"𝐉\",\n      \"doc\": \"Mathematical bold capital j\"\n    },\n    {\n      \"name\": \"mbfj\",\n      \"unusual\": true,\n      \"detail\": \"𝐣\",\n      \"doc\": \"Mathematical bold small j\"\n    },\n    {\n      \"name\": \"mbfK\",\n      \"unusual\": true,\n      \"detail\": \"𝐊\",\n      \"doc\": \"Mathematical bold capital k\"\n    },\n    {\n      \"name\": \"mbfk\",\n      \"unusual\": true,\n      \"detail\": \"𝐤\",\n      \"doc\": \"Mathematical bold small k\"\n    },\n    {\n      \"name\": \"mbfKappa\",\n      \"unusual\": true,\n      \"detail\": \"𝚱\",\n      \"doc\": \"Mathematical bold capital kappa\"\n    },\n    {\n      \"name\": \"mbfkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝛋 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small kappa\"\n    },\n    {\n      \"name\": \"mbfL\",\n      \"unusual\": true,\n      \"detail\": \"𝐋\",\n      \"doc\": \"Mathematical bold capital l\"\n    },\n    {\n      \"name\": \"mbfl\",\n      \"unusual\": true,\n      \"detail\": \"𝐥\",\n      \"doc\": \"Mathematical bold small l\"\n    },\n    {\n      \"name\": \"mbfLambda\",\n      \"unusual\": true,\n      \"detail\": \"𝚲\",\n      \"doc\": \"Mathematical bold capital lambda\"\n    },\n    {\n      \"name\": \"mbflambda\",\n      \"unusual\": true,\n      \"detail\": \"𝛌 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small lambda\"\n    },\n    {\n      \"name\": \"mbfM\",\n      \"unusual\": true,\n      \"detail\": \"𝐌\",\n      \"doc\": \"Mathematical bold capital m\"\n    },\n    {\n      \"name\": \"mbfm\",\n      \"unusual\": true,\n      \"detail\": \"𝐦\",\n      \"doc\": \"Mathematical bold small m\"\n    },\n    {\n      \"name\": \"mbfMu\",\n      \"unusual\": true,\n      \"detail\": \"𝚳\",\n      \"doc\": \"Mathematical bold capital mu\"\n    },\n    {\n      \"name\": \"mbfmu\",\n      \"unusual\": true,\n      \"detail\": \"𝛍 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small mu\"\n    },\n    {\n      \"name\": \"mbfN\",\n      \"unusual\": true,\n      \"detail\": \"𝐍\",\n      \"doc\": \"Mathematical bold capital n\"\n    },\n    {\n      \"name\": \"mbfn\",\n      \"unusual\": true,\n      \"detail\": \"𝐧\",\n      \"doc\": \"Mathematical bold small n\"\n    },\n    {\n      \"name\": \"mbfnabla\",\n      \"unusual\": true,\n      \"detail\": \"𝛁\",\n      \"doc\": \"Mathematical bold nabla\"\n    },\n    {\n      \"name\": \"mbfnine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfNu\",\n      \"unusual\": true,\n      \"detail\": \"𝚴\",\n      \"doc\": \"Mathematical bold capital nu\"\n    },\n    {\n      \"name\": \"mbfnu\",\n      \"unusual\": true,\n      \"detail\": \"𝛎 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small nu\"\n    },\n    {\n      \"name\": \"mbfO\",\n      \"unusual\": true,\n      \"detail\": \"𝐎\",\n      \"doc\": \"Mathematical bold capital o\"\n    },\n    {\n      \"name\": \"mbfo\",\n      \"unusual\": true,\n      \"detail\": \"𝐨\",\n      \"doc\": \"Mathematical bold small o\"\n    },\n    {\n      \"name\": \"mbfOmega\",\n      \"unusual\": true,\n      \"detail\": \"𝛀\",\n      \"doc\": \"Mathematical bold capital omega\"\n    },\n    {\n      \"name\": \"mbfomega\",\n      \"unusual\": true,\n      \"detail\": \"𝛚 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small omega\"\n    },\n    {\n      \"name\": \"mbfOmicron\",\n      \"unusual\": true,\n      \"detail\": \"𝚶\",\n      \"doc\": \"Mathematical bold capital omicron\"\n    },\n    {\n      \"name\": \"mbfomicron\",\n      \"unusual\": true,\n      \"detail\": \"𝛐\",\n      \"doc\": \"Mathematical bold small omicron\"\n    },\n    {\n      \"name\": \"mbfone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfP\",\n      \"unusual\": true,\n      \"detail\": \"𝐏\",\n      \"doc\": \"Mathematical bold capital p\"\n    },\n    {\n      \"name\": \"mbfp\",\n      \"unusual\": true,\n      \"detail\": \"𝐩\",\n      \"doc\": \"Mathematical bold small p\"\n    },\n    {\n      \"name\": \"mbfpartial\",\n      \"unusual\": true,\n      \"detail\": \"𝛛\",\n      \"doc\": \"Mathematical bold partial differential\"\n    },\n    {\n      \"name\": \"mbfPhi\",\n      \"unusual\": true,\n      \"detail\": \"𝚽\",\n      \"doc\": \"Mathematical bold capital phi\"\n    },\n    {\n      \"name\": \"mbfphi\",\n      \"unusual\": true,\n      \"detail\": \"𝛟 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold phi symbol\"\n    },\n    {\n      \"name\": \"mbfPi\",\n      \"unusual\": true,\n      \"detail\": \"𝚷\",\n      \"doc\": \"Mathematical bold capital pi\"\n    },\n    {\n      \"name\": \"mbfpi\",\n      \"unusual\": true,\n      \"detail\": \"𝛑 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small pi\"\n    },\n    {\n      \"name\": \"mbfPsi\",\n      \"unusual\": true,\n      \"detail\": \"𝚿\",\n      \"doc\": \"Mathematical bold capital psi\"\n    },\n    {\n      \"name\": \"mbfpsi\",\n      \"unusual\": true,\n      \"detail\": \"𝛙 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small psi\"\n    },\n    {\n      \"name\": \"mbfQ\",\n      \"unusual\": true,\n      \"detail\": \"𝐐\",\n      \"doc\": \"Mathematical bold capital q\"\n    },\n    {\n      \"name\": \"mbfq\",\n      \"unusual\": true,\n      \"detail\": \"𝐪\",\n      \"doc\": \"Mathematical bold small q\"\n    },\n    {\n      \"name\": \"mbfR\",\n      \"unusual\": true,\n      \"detail\": \"𝐑\",\n      \"doc\": \"Mathematical bold capital r\"\n    },\n    {\n      \"name\": \"mbfr\",\n      \"unusual\": true,\n      \"detail\": \"𝐫\",\n      \"doc\": \"Mathematical bold small r\"\n    },\n    {\n      \"name\": \"mbfRho\",\n      \"unusual\": true,\n      \"detail\": \"𝚸\",\n      \"doc\": \"Mathematical bold capital rho\"\n    },\n    {\n      \"name\": \"mbfrho\",\n      \"unusual\": true,\n      \"detail\": \"𝛒 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small rho\"\n    },\n    {\n      \"name\": \"mbfS\",\n      \"unusual\": true,\n      \"detail\": \"𝐒\",\n      \"doc\": \"Mathematical bold capital s\"\n    },\n    {\n      \"name\": \"mbfs\",\n      \"unusual\": true,\n      \"detail\": \"𝐬\",\n      \"doc\": \"Mathematical bold small s\"\n    },\n    {\n      \"name\": \"mbfsansA\",\n      \"unusual\": true,\n      \"detail\": \"𝗔 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital a\"\n    },\n    {\n      \"name\": \"mbfsansa\",\n      \"unusual\": true,\n      \"detail\": \"𝗮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small a\"\n    },\n    {\n      \"name\": \"mbfsansAlpha\",\n      \"unusual\": true,\n      \"detail\": \"𝝖\",\n      \"doc\": \"Mathematical sans-serif bold capital alpha\"\n    },\n    {\n      \"name\": \"mbfsansalpha\",\n      \"unusual\": true,\n      \"detail\": \"𝝰 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small alpha\"\n    },\n    {\n      \"name\": \"mbfsansB\",\n      \"unusual\": true,\n      \"detail\": \"𝗕 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital b\"\n    },\n    {\n      \"name\": \"mbfsansb\",\n      \"unusual\": true,\n      \"detail\": \"𝗯 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small b\"\n    },\n    {\n      \"name\": \"mbfsansBeta\",\n      \"unusual\": true,\n      \"detail\": \"𝝗\",\n      \"doc\": \"Mathematical sans-serif bold capital beta\"\n    },\n    {\n      \"name\": \"mbfsansbeta\",\n      \"unusual\": true,\n      \"detail\": \"𝝱 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small beta\"\n    },\n    {\n      \"name\": \"mbfsansC\",\n      \"unusual\": true,\n      \"detail\": \"𝗖 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital c\"\n    },\n    {\n      \"name\": \"mbfsansc\",\n      \"unusual\": true,\n      \"detail\": \"𝗰 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small c\"\n    },\n    {\n      \"name\": \"mbfsansChi\",\n      \"unusual\": true,\n      \"detail\": \"𝝬\",\n      \"doc\": \"Mathematical sans-serif bold capital chi\"\n    },\n    {\n      \"name\": \"mbfsanschi\",\n      \"unusual\": true,\n      \"detail\": \"𝞆 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small chi\"\n    },\n    {\n      \"name\": \"mbfsansD\",\n      \"unusual\": true,\n      \"detail\": \"𝗗 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital d\"\n    },\n    {\n      \"name\": \"mbfsansd\",\n      \"unusual\": true,\n      \"detail\": \"𝗱 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small d\"\n    },\n    {\n      \"name\": \"mbfsansDelta\",\n      \"unusual\": true,\n      \"detail\": \"𝝙 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital delta\"\n    },\n    {\n      \"name\": \"mbfsansdelta\",\n      \"unusual\": true,\n      \"detail\": \"𝝳 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small delta\"\n    },\n    {\n      \"name\": \"mbfsansE\",\n      \"unusual\": true,\n      \"detail\": \"𝗘 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital e\"\n    },\n    {\n      \"name\": \"mbfsanse\",\n      \"unusual\": true,\n      \"detail\": \"𝗲 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small e\"\n    },\n    {\n      \"name\": \"mbfsanseight\",\n      \"unusual\": true,\n      \"detail\": \"𝟴 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 8\"\n    },\n    {\n      \"name\": \"mbfsansEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝝚\",\n      \"doc\": \"Mathematical sans-serif bold capital epsilon\"\n    },\n    {\n      \"name\": \"mbfsansepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝝴 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small epsilon\"\n    },\n    {\n      \"name\": \"mbfsansEta\",\n      \"unusual\": true,\n      \"detail\": \"𝝜\",\n      \"doc\": \"Mathematical sans-serif bold capital eta\"\n    },\n    {\n      \"name\": \"mbfsanseta\",\n      \"unusual\": true,\n      \"detail\": \"𝝶 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small eta\"\n    },\n    {\n      \"name\": \"mbfsansF\",\n      \"unusual\": true,\n      \"detail\": \"𝗙 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital f\"\n    },\n    {\n      \"name\": \"mbfsansf\",\n      \"unusual\": true,\n      \"detail\": \"𝗳 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small f\"\n    },\n    {\n      \"name\": \"mbfsansfive\",\n      \"unusual\": true,\n      \"detail\": \"𝟱 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 5\"\n    },\n    {\n      \"name\": \"mbfsansfour\",\n      \"unusual\": true,\n      \"detail\": \"𝟰 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 4\"\n    },\n    {\n      \"name\": \"mbfsansG\",\n      \"unusual\": true,\n      \"detail\": \"𝗚 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital g\"\n    },\n    {\n      \"name\": \"mbfsansg\",\n      \"unusual\": true,\n      \"detail\": \"𝗴 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small g\"\n    },\n    {\n      \"name\": \"mbfsansGamma\",\n      \"unusual\": true,\n      \"detail\": \"𝝘 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital gamma\"\n    },\n    {\n      \"name\": \"mbfsansgamma\",\n      \"unusual\": true,\n      \"detail\": \"𝝲 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small gamma\"\n    },\n    {\n      \"name\": \"mbfsansH\",\n      \"unusual\": true,\n      \"detail\": \"𝗛 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital h\"\n    },\n    {\n      \"name\": \"mbfsansh\",\n      \"unusual\": true,\n      \"detail\": \"𝗵 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small h\"\n    },\n    {\n      \"name\": \"mbfsansI\",\n      \"unusual\": true,\n      \"detail\": \"𝗜 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital i\"\n    },\n    {\n      \"name\": \"mbfsansi\",\n      \"unusual\": true,\n      \"detail\": \"𝗶 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small i\"\n    },\n    {\n      \"name\": \"mbfsansIota\",\n      \"unusual\": true,\n      \"detail\": \"𝝞\",\n      \"doc\": \"Mathematical sans-serif bold capital iota\"\n    },\n    {\n      \"name\": \"mbfsansiota\",\n      \"unusual\": true,\n      \"detail\": \"𝝸 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small iota\"\n    },\n    {\n      \"name\": \"mbfsansJ\",\n      \"unusual\": true,\n      \"detail\": \"𝗝 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital j\"\n    },\n    {\n      \"name\": \"mbfsansj\",\n      \"unusual\": true,\n      \"detail\": \"𝗷 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small j\"\n    },\n    {\n      \"name\": \"mbfsansK\",\n      \"unusual\": true,\n      \"detail\": \"𝗞 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital k\"\n    },\n    {\n      \"name\": \"mbfsansk\",\n      \"unusual\": true,\n      \"detail\": \"𝗸 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small k\"\n    },\n    {\n      \"name\": \"mbfsansKappa\",\n      \"unusual\": true,\n      \"detail\": \"𝝟\",\n      \"doc\": \"Mathematical sans-serif bold capital kappa\"\n    },\n    {\n      \"name\": \"mbfsanskappa\",\n      \"unusual\": true,\n      \"detail\": \"𝝹 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small kappa\"\n    },\n    {\n      \"name\": \"mbfsansL\",\n      \"unusual\": true,\n      \"detail\": \"𝗟 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital l\"\n    },\n    {\n      \"name\": \"mbfsansl\",\n      \"unusual\": true,\n      \"detail\": \"𝗹 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small l\"\n    },\n    {\n      \"name\": \"mbfsansLambda\",\n      \"unusual\": true,\n      \"detail\": \"𝝠 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital lambda\"\n    },\n    {\n      \"name\": \"mbfsanslambda\",\n      \"unusual\": true,\n      \"detail\": \"𝝺 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small lambda\"\n    },\n    {\n      \"name\": \"mbfsansM\",\n      \"unusual\": true,\n      \"detail\": \"𝗠 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital m\"\n    },\n    {\n      \"name\": \"mbfsansm\",\n      \"unusual\": true,\n      \"detail\": \"𝗺 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small m\"\n    },\n    {\n      \"name\": \"mbfsansMu\",\n      \"unusual\": true,\n      \"detail\": \"𝝡\",\n      \"doc\": \"Mathematical sans-serif bold capital mu\"\n    },\n    {\n      \"name\": \"mbfsansmu\",\n      \"unusual\": true,\n      \"detail\": \"𝝻 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small mu\"\n    },\n    {\n      \"name\": \"mbfsansN\",\n      \"unusual\": true,\n      \"detail\": \"𝗡 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital n\"\n    },\n    {\n      \"name\": \"mbfsansn\",\n      \"unusual\": true,\n      \"detail\": \"𝗻 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small n\"\n    },\n    {\n      \"name\": \"mbfsansnabla\",\n      \"unusual\": true,\n      \"detail\": \"𝝯\",\n      \"doc\": \"Mathematical sans-serif bold nabla\"\n    },\n    {\n      \"name\": \"mbfsansnine\",\n      \"unusual\": true,\n      \"detail\": \"𝟵 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 9\"\n    },\n    {\n      \"name\": \"mbfsansNu\",\n      \"unusual\": true,\n      \"detail\": \"𝝢\",\n      \"doc\": \"Mathematical sans-serif bold capital nu\"\n    },\n    {\n      \"name\": \"mbfsansnu\",\n      \"unusual\": true,\n      \"detail\": \"𝝼 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small nu\"\n    },\n    {\n      \"name\": \"mbfsansO\",\n      \"unusual\": true,\n      \"detail\": \"𝗢 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital o\"\n    },\n    {\n      \"name\": \"mbfsanso\",\n      \"unusual\": true,\n      \"detail\": \"𝗼 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small o\"\n    },\n    {\n      \"name\": \"mbfsansOmega\",\n      \"unusual\": true,\n      \"detail\": \"𝝮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital omega\"\n    },\n    {\n      \"name\": \"mbfsansomega\",\n      \"unusual\": true,\n      \"detail\": \"𝞈 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small omega\"\n    },\n    {\n      \"name\": \"mbfsansOmicron\",\n      \"unusual\": true,\n      \"detail\": \"𝝤\",\n      \"doc\": \"Mathematical sans-serif bold capital omicron\"\n    },\n    {\n      \"name\": \"mbfsansomicron\",\n      \"unusual\": true,\n      \"detail\": \"𝝾\",\n      \"doc\": \"Mathematical sans-serif bold small omicron\"\n    },\n    {\n      \"name\": \"mbfsansone\",\n      \"unusual\": true,\n      \"detail\": \"𝟭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 1\"\n    },\n    {\n      \"name\": \"mbfsansP\",\n      \"unusual\": true,\n      \"detail\": \"𝗣 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital p\"\n    },\n    {\n      \"name\": \"mbfsansp\",\n      \"unusual\": true,\n      \"detail\": \"𝗽 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small p\"\n    },\n    {\n      \"name\": \"mbfsanspartial\",\n      \"unusual\": true,\n      \"detail\": \"𝞉\",\n      \"doc\": \"Mathematical sans-serif bold partial differential\"\n    },\n    {\n      \"name\": \"mbfsansPhi\",\n      \"unusual\": true,\n      \"detail\": \"𝝫 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital phi\"\n    },\n    {\n      \"name\": \"mbfsansphi\",\n      \"unusual\": true,\n      \"detail\": \"𝞅 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small phi\"\n    },\n    {\n      \"name\": \"mbfsansPi\",\n      \"unusual\": true,\n      \"detail\": \"𝝥 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital pi\"\n    },\n    {\n      \"name\": \"mbfsanspi\",\n      \"unusual\": true,\n      \"detail\": \"𝝿 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small pi\"\n    },\n    {\n      \"name\": \"mbfsansPsi\",\n      \"unusual\": true,\n      \"detail\": \"𝝭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital psi\"\n    },\n    {\n      \"name\": \"mbfsanspsi\",\n      \"unusual\": true,\n      \"detail\": \"𝞇 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small psi\"\n    },\n    {\n      \"name\": \"mbfsansQ\",\n      \"unusual\": true,\n      \"detail\": \"𝗤 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital q\"\n    },\n    {\n      \"name\": \"mbfsansq\",\n      \"unusual\": true,\n      \"detail\": \"𝗾 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small q\"\n    },\n    {\n      \"name\": \"mbfsansR\",\n      \"unusual\": true,\n      \"detail\": \"𝗥 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital r\"\n    },\n    {\n      \"name\": \"mbfsansr\",\n      \"unusual\": true,\n      \"detail\": \"𝗿 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small r\"\n    },\n    {\n      \"name\": \"mbfsansRho\",\n      \"unusual\": true,\n      \"detail\": \"𝝦\",\n      \"doc\": \"Mathematical sans-serif bold capital rho\"\n    },\n    {\n      \"name\": \"mbfsansrho\",\n      \"unusual\": true,\n      \"detail\": \"𝞀 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small rho\"\n    },\n    {\n      \"name\": \"mbfsansS\",\n      \"unusual\": true,\n      \"detail\": \"𝗦 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital s\"\n    },\n    {\n      \"name\": \"mbfsanss\",\n      \"unusual\": true,\n      \"detail\": \"𝘀 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small s\"\n    },\n    {\n      \"name\": \"mbfsansseven\",\n      \"unusual\": true,\n      \"detail\": \"𝟳 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 7\"\n    },\n    {\n      \"name\": \"mbfsansSigma\",\n      \"unusual\": true,\n      \"detail\": \"𝝨 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital sigma\"\n    },\n    {\n      \"name\": \"mbfsanssigma\",\n      \"unusual\": true,\n      \"detail\": \"𝞂 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small sigma\"\n    },\n    {\n      \"name\": \"mbfsanssix\",\n      \"unusual\": true,\n      \"detail\": \"𝟲 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 6\"\n    },\n    {\n      \"name\": \"mbfsansT\",\n      \"unusual\": true,\n      \"detail\": \"𝗧 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital t\"\n    },\n    {\n      \"name\": \"mbfsanst\",\n      \"unusual\": true,\n      \"detail\": \"𝘁 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small t\"\n    },\n    {\n      \"name\": \"mbfsansTau\",\n      \"unusual\": true,\n      \"detail\": \"𝝩\",\n      \"doc\": \"Mathematical sans-serif bold capital tau\"\n    },\n    {\n      \"name\": \"mbfsanstau\",\n      \"unusual\": true,\n      \"detail\": \"𝞃 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small tau\"\n    },\n    {\n      \"name\": \"mbfsansTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝝝 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital theta\"\n    },\n    {\n      \"name\": \"mbfsanstheta\",\n      \"unusual\": true,\n      \"detail\": \"𝝷 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small theta\"\n    },\n    {\n      \"name\": \"mbfsansthree\",\n      \"unusual\": true,\n      \"detail\": \"𝟯 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 3\"\n    },\n    {\n      \"name\": \"mbfsanstwo\",\n      \"unusual\": true,\n      \"detail\": \"𝟮 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 2\"\n    },\n    {\n      \"name\": \"mbfsansU\",\n      \"unusual\": true,\n      \"detail\": \"𝗨 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital u\"\n    },\n    {\n      \"name\": \"mbfsansu\",\n      \"unusual\": true,\n      \"detail\": \"𝘂 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small u\"\n    },\n    {\n      \"name\": \"mbfsansUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝝪 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital upsilon\"\n    },\n    {\n      \"name\": \"mbfsansupsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞄 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small upsilon\"\n    },\n    {\n      \"name\": \"mbfsansV\",\n      \"unusual\": true,\n      \"detail\": \"𝗩 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital v\"\n    },\n    {\n      \"name\": \"mbfsansv\",\n      \"unusual\": true,\n      \"detail\": \"𝘃 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small v\"\n    },\n    {\n      \"name\": \"mbfsansvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝞊 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝞌\",\n      \"doc\": \"Mathematical sans-serif bold kappa symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarphi\",\n      \"unusual\": true,\n      \"detail\": \"𝞍 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold phi symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarpi\",\n      \"unusual\": true,\n      \"detail\": \"𝞏 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold pi symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarrho\",\n      \"unusual\": true,\n      \"detail\": \"𝞎 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold rho symbol\"\n    },\n    {\n      \"name\": \"mbfsansvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝞁 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small final sigma\"\n    },\n    {\n      \"name\": \"mbfsansvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝝧\",\n      \"doc\": \"Mathematical sans-serif bold capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfsansvartheta\",\n      \"unusual\": true,\n      \"detail\": \"𝞋 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold theta symbol\"\n    },\n    {\n      \"name\": \"mbfsansW\",\n      \"unusual\": true,\n      \"detail\": \"𝗪 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital w\"\n    },\n    {\n      \"name\": \"mbfsansw\",\n      \"unusual\": true,\n      \"detail\": \"𝘄 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small w\"\n    },\n    {\n      \"name\": \"mbfsansX\",\n      \"unusual\": true,\n      \"detail\": \"𝗫 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital x\"\n    },\n    {\n      \"name\": \"mbfsansx\",\n      \"unusual\": true,\n      \"detail\": \"𝘅 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small x\"\n    },\n    {\n      \"name\": \"mbfsansXi\",\n      \"unusual\": true,\n      \"detail\": \"𝝣 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital xi\"\n    },\n    {\n      \"name\": \"mbfsansxi\",\n      \"unusual\": true,\n      \"detail\": \"𝝽 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small xi\"\n    },\n    {\n      \"name\": \"mbfsansY\",\n      \"unusual\": true,\n      \"detail\": \"𝗬 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital y\"\n    },\n    {\n      \"name\": \"mbfsansy\",\n      \"unusual\": true,\n      \"detail\": \"𝘆 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small y\"\n    },\n    {\n      \"name\": \"mbfsansZ\",\n      \"unusual\": true,\n      \"detail\": \"𝗭 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold capital z\"\n    },\n    {\n      \"name\": \"mbfsansz\",\n      \"unusual\": true,\n      \"detail\": \"𝘇 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small z\"\n    },\n    {\n      \"name\": \"mbfsanszero\",\n      \"unusual\": true,\n      \"detail\": \"𝟬 (\\\"mathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold digit 0\"\n    },\n    {\n      \"name\": \"mbfsansZeta\",\n      \"unusual\": true,\n      \"detail\": \"𝝛\",\n      \"doc\": \"Mathematical sans-serif bold capital zeta\"\n    },\n    {\n      \"name\": \"mbfsanszeta\",\n      \"unusual\": true,\n      \"detail\": \"𝝵 (\\\"omlmathsfbf\\\" command)\",\n      \"doc\": \"Mathematical sans-serif bold small zeta\"\n    },\n    {\n      \"name\": \"mbfscrA\",\n      \"unusual\": true,\n      \"detail\": \"𝓐\",\n      \"doc\": \"Mathematical bold script capital a\"\n    },\n    {\n      \"name\": \"mbfscrB\",\n      \"unusual\": true,\n      \"detail\": \"𝓑\",\n      \"doc\": \"Mathematical bold script capital b\"\n    },\n    {\n      \"name\": \"mbfscrC\",\n      \"unusual\": true,\n      \"detail\": \"𝓒\",\n      \"doc\": \"Mathematical bold script capital c\"\n    },\n    {\n      \"name\": \"mbfscrD\",\n      \"unusual\": true,\n      \"detail\": \"𝓓\",\n      \"doc\": \"Mathematical bold script capital d\"\n    },\n    {\n      \"name\": \"mbfscrE\",\n      \"unusual\": true,\n      \"detail\": \"𝓔\",\n      \"doc\": \"Mathematical bold script capital e\"\n    },\n    {\n      \"name\": \"mbfscrF\",\n      \"unusual\": true,\n      \"detail\": \"𝓕\",\n      \"doc\": \"Mathematical bold script capital f\"\n    },\n    {\n      \"name\": \"mbfscrG\",\n      \"unusual\": true,\n      \"detail\": \"𝓖\",\n      \"doc\": \"Mathematical bold script capital g\"\n    },\n    {\n      \"name\": \"mbfscrH\",\n      \"unusual\": true,\n      \"detail\": \"𝓗\",\n      \"doc\": \"Mathematical bold script capital h\"\n    },\n    {\n      \"name\": \"mbfscrI\",\n      \"unusual\": true,\n      \"detail\": \"𝓘\",\n      \"doc\": \"Mathematical bold script capital i\"\n    },\n    {\n      \"name\": \"mbfscrJ\",\n      \"unusual\": true,\n      \"detail\": \"𝓙\",\n      \"doc\": \"Mathematical bold script capital j\"\n    },\n    {\n      \"name\": \"mbfscrK\",\n      \"unusual\": true,\n      \"detail\": \"𝓚\",\n      \"doc\": \"Mathematical bold script capital k\"\n    },\n    {\n      \"name\": \"mbfscrL\",\n      \"unusual\": true,\n      \"detail\": \"𝓛\",\n      \"doc\": \"Mathematical bold script capital l\"\n    },\n    {\n      \"name\": \"mbfscrM\",\n      \"unusual\": true,\n      \"detail\": \"𝓜\",\n      \"doc\": \"Mathematical bold script capital m\"\n    },\n    {\n      \"name\": \"mbfscrN\",\n      \"unusual\": true,\n      \"detail\": \"𝓝\",\n      \"doc\": \"Mathematical bold script capital n\"\n    },\n    {\n      \"name\": \"mbfscrO\",\n      \"unusual\": true,\n      \"detail\": \"𝓞\",\n      \"doc\": \"Mathematical bold script capital o\"\n    },\n    {\n      \"name\": \"mbfscrP\",\n      \"unusual\": true,\n      \"detail\": \"𝓟\",\n      \"doc\": \"Mathematical bold script capital p\"\n    },\n    {\n      \"name\": \"mbfscrQ\",\n      \"unusual\": true,\n      \"detail\": \"𝓠\",\n      \"doc\": \"Mathematical bold script capital q\"\n    },\n    {\n      \"name\": \"mbfscrR\",\n      \"unusual\": true,\n      \"detail\": \"𝓡\",\n      \"doc\": \"Mathematical bold script capital r\"\n    },\n    {\n      \"name\": \"mbfscrS\",\n      \"unusual\": true,\n      \"detail\": \"𝓢\",\n      \"doc\": \"Mathematical bold script capital s\"\n    },\n    {\n      \"name\": \"mbfscrT\",\n      \"unusual\": true,\n      \"detail\": \"𝓣\",\n      \"doc\": \"Mathematical bold script capital t\"\n    },\n    {\n      \"name\": \"mbfscrU\",\n      \"unusual\": true,\n      \"detail\": \"𝓤\",\n      \"doc\": \"Mathematical bold script capital u\"\n    },\n    {\n      \"name\": \"mbfscrV\",\n      \"unusual\": true,\n      \"detail\": \"𝓥\",\n      \"doc\": \"Mathematical bold script capital v\"\n    },\n    {\n      \"name\": \"mbfscrW\",\n      \"unusual\": true,\n      \"detail\": \"𝓦\",\n      \"doc\": \"Mathematical bold script capital w\"\n    },\n    {\n      \"name\": \"mbfscrX\",\n      \"unusual\": true,\n      \"detail\": \"𝓧\",\n      \"doc\": \"Mathematical bold script capital x\"\n    },\n    {\n      \"name\": \"mbfscrY\",\n      \"unusual\": true,\n      \"detail\": \"𝓨\",\n      \"doc\": \"Mathematical bold script capital y\"\n    },\n    {\n      \"name\": \"mbfscrZ\",\n      \"unusual\": true,\n      \"detail\": \"𝓩\",\n      \"doc\": \"Mathematical bold script capital z\"\n    },\n    {\n      \"name\": \"mbfseven\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfSigma\",\n      \"unusual\": true,\n      \"detail\": \"𝚺\",\n      \"doc\": \"Mathematical bold capital sigma\"\n    },\n    {\n      \"name\": \"mbfsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝛔 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small sigma\"\n    },\n    {\n      \"name\": \"mbfsix\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfT\",\n      \"unusual\": true,\n      \"detail\": \"𝐓\",\n      \"doc\": \"Mathematical bold capital t\"\n    },\n    {\n      \"name\": \"mbft\",\n      \"unusual\": true,\n      \"detail\": \"𝐭\",\n      \"doc\": \"Mathematical bold small t\"\n    },\n    {\n      \"name\": \"mbfTau\",\n      \"unusual\": true,\n      \"detail\": \"𝚻\",\n      \"doc\": \"Mathematical bold capital tau\"\n    },\n    {\n      \"name\": \"mbftau\",\n      \"unusual\": true,\n      \"detail\": \"𝛕 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small tau\"\n    },\n    {\n      \"name\": \"mbfTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝚯\",\n      \"doc\": \"Mathematical bold capital theta\"\n    },\n    {\n      \"name\": \"mbftheta\",\n      \"unusual\": true,\n      \"detail\": \"𝛉 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small theta\"\n    },\n    {\n      \"name\": \"mbfthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbftwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfU\",\n      \"unusual\": true,\n      \"detail\": \"𝐔\",\n      \"doc\": \"Mathematical bold capital u\"\n    },\n    {\n      \"name\": \"mbfu\",\n      \"unusual\": true,\n      \"detail\": \"𝐮\",\n      \"doc\": \"Mathematical bold small u\"\n    },\n    {\n      \"name\": \"mbfUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝚼\",\n      \"doc\": \"Mathematical bold capital upsilon\"\n    },\n    {\n      \"name\": \"mbfupsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝛖 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small upsilon\"\n    },\n    {\n      \"name\": \"mbfV\",\n      \"unusual\": true,\n      \"detail\": \"𝐕\",\n      \"doc\": \"Mathematical bold capital v\"\n    },\n    {\n      \"name\": \"mbfv\",\n      \"unusual\": true,\n      \"detail\": \"𝐯\",\n      \"doc\": \"Mathematical bold small v\"\n    },\n    {\n      \"name\": \"mbfvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝛜 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold epsilon symbol\"\n    },\n    {\n      \"name\": \"mbfvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝛞\",\n      \"doc\": \"Mathematical bold kappa symbol\"\n    },\n    {\n      \"name\": \"mbfvarphi\",\n      \"unusual\": true,\n      \"detail\": \"𝛗 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small phi\"\n    },\n    {\n      \"name\": \"mbfvarpi\",\n      \"unusual\": true,\n      \"detail\": \"𝛡 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold pi symbol\"\n    },\n    {\n      \"name\": \"mbfvarrho\",\n      \"unusual\": true,\n      \"detail\": \"𝛠 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold rho symbol\"\n    },\n    {\n      \"name\": \"mbfvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝛓 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small final sigma\"\n    },\n    {\n      \"name\": \"mbfvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝚹\",\n      \"doc\": \"Mathematical bold capital theta symbol\"\n    },\n    {\n      \"name\": \"mbfvartheta\",\n      \"unusual\": true,\n      \"detail\": \"𝛝 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold theta symbol\"\n    },\n    {\n      \"name\": \"mbfW\",\n      \"unusual\": true,\n      \"detail\": \"𝐖\",\n      \"doc\": \"Mathematical bold capital w\"\n    },\n    {\n      \"name\": \"mbfw\",\n      \"unusual\": true,\n      \"detail\": \"𝐰\",\n      \"doc\": \"Mathematical bold small w\"\n    },\n    {\n      \"name\": \"mbfX\",\n      \"unusual\": true,\n      \"detail\": \"𝐗\",\n      \"doc\": \"Mathematical bold capital x\"\n    },\n    {\n      \"name\": \"mbfx\",\n      \"unusual\": true,\n      \"detail\": \"𝐱\",\n      \"doc\": \"Mathematical bold small x\"\n    },\n    {\n      \"name\": \"mbfXi\",\n      \"unusual\": true,\n      \"detail\": \"𝚵\",\n      \"doc\": \"Mathematical bold capital xi\"\n    },\n    {\n      \"name\": \"mbfxi\",\n      \"unusual\": true,\n      \"detail\": \"𝛏 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small xi\"\n    },\n    {\n      \"name\": \"mbfY\",\n      \"unusual\": true,\n      \"detail\": \"𝐘\",\n      \"doc\": \"Mathematical bold capital y\"\n    },\n    {\n      \"name\": \"mbfy\",\n      \"unusual\": true,\n      \"detail\": \"𝐲\",\n      \"doc\": \"Mathematical bold small y\"\n    },\n    {\n      \"name\": \"mbfZ\",\n      \"unusual\": true,\n      \"detail\": \"𝐙\",\n      \"doc\": \"Mathematical bold capital z\"\n    },\n    {\n      \"name\": \"mbfz\",\n      \"unusual\": true,\n      \"detail\": \"𝐳\",\n      \"doc\": \"Mathematical bold small z\"\n    },\n    {\n      \"name\": \"mbfzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfZeta\",\n      \"unusual\": true,\n      \"detail\": \"𝚭\",\n      \"doc\": \"Mathematical bold capital zeta\"\n    },\n    {\n      \"name\": \"mbfzeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛇 (\\\"omlmathbf\\\" command)\",\n      \"doc\": \"Mathematical bold small zeta\"\n    },\n    {\n      \"name\": \"mfrakA\",\n      \"unusual\": true,\n      \"detail\": \"𝔄 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital a\"\n    },\n    {\n      \"name\": \"mfraka\",\n      \"unusual\": true,\n      \"detail\": \"𝔞 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small a\"\n    },\n    {\n      \"name\": \"mfrakB\",\n      \"unusual\": true,\n      \"detail\": \"𝔅 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital b\"\n    },\n    {\n      \"name\": \"mfrakb\",\n      \"unusual\": true,\n      \"detail\": \"𝔟 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small b\"\n    },\n    {\n      \"name\": \"mfrakC\",\n      \"unusual\": true,\n      \"detail\": \"ℭ (\\\"eufrak\\\" command)\",\n      \"doc\": \"Black-letter capital c\"\n    },\n    {\n      \"name\": \"mfrakc\",\n      \"unusual\": true,\n      \"detail\": \"𝔠 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small c\"\n    },\n    {\n      \"name\": \"mfrakD\",\n      \"unusual\": true,\n      \"detail\": \"𝔇 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital d\"\n    },\n    {\n      \"name\": \"mfrakd\",\n      \"unusual\": true,\n      \"detail\": \"𝔡 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small d\"\n    },\n    {\n      \"name\": \"mfrakE\",\n      \"unusual\": true,\n      \"detail\": \"𝔈 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital e\"\n    },\n    {\n      \"name\": \"mfrake\",\n      \"unusual\": true,\n      \"detail\": \"𝔢 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small e\"\n    },\n    {\n      \"name\": \"mfrakF\",\n      \"unusual\": true,\n      \"detail\": \"𝔉 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital f\"\n    },\n    {\n      \"name\": \"mfrakf\",\n      \"unusual\": true,\n      \"detail\": \"𝔣 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small f\"\n    },\n    {\n      \"name\": \"mfrakG\",\n      \"unusual\": true,\n      \"detail\": \"𝔊 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital g\"\n    },\n    {\n      \"name\": \"mfrakg\",\n      \"unusual\": true,\n      \"detail\": \"𝔤 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small g\"\n    },\n    {\n      \"name\": \"mfrakH\",\n      \"unusual\": true,\n      \"detail\": \"ℌ (\\\"eufrak\\\" command)\",\n      \"doc\": \"/frak h, black-letter capital h\"\n    },\n    {\n      \"name\": \"mfrakh\",\n      \"unusual\": true,\n      \"detail\": \"𝔥 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small h\"\n    },\n    {\n      \"name\": \"mfraki\",\n      \"unusual\": true,\n      \"detail\": \"𝔦 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small i\"\n    },\n    {\n      \"name\": \"mfrakJ\",\n      \"unusual\": true,\n      \"detail\": \"𝔍 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital j\"\n    },\n    {\n      \"name\": \"mfrakj\",\n      \"unusual\": true,\n      \"detail\": \"𝔧 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small j\"\n    },\n    {\n      \"name\": \"mfrakK\",\n      \"unusual\": true,\n      \"detail\": \"𝔎 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital k\"\n    },\n    {\n      \"name\": \"mfrakk\",\n      \"unusual\": true,\n      \"detail\": \"𝔨 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small k\"\n    },\n    {\n      \"name\": \"mfrakL\",\n      \"unusual\": true,\n      \"detail\": \"𝔏 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital l\"\n    },\n    {\n      \"name\": \"mfrakl\",\n      \"unusual\": true,\n      \"detail\": \"𝔩 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small l\"\n    },\n    {\n      \"name\": \"mfrakM\",\n      \"unusual\": true,\n      \"detail\": \"𝔐 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital m\"\n    },\n    {\n      \"name\": \"mfrakm\",\n      \"unusual\": true,\n      \"detail\": \"𝔪 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small m\"\n    },\n    {\n      \"name\": \"mfrakN\",\n      \"unusual\": true,\n      \"detail\": \"𝔑 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital n\"\n    },\n    {\n      \"name\": \"mfrakn\",\n      \"unusual\": true,\n      \"detail\": \"𝔫 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small n\"\n    },\n    {\n      \"name\": \"mfrakO\",\n      \"unusual\": true,\n      \"detail\": \"𝔒 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital o\"\n    },\n    {\n      \"name\": \"mfrako\",\n      \"unusual\": true,\n      \"detail\": \"𝔬 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small o\"\n    },\n    {\n      \"name\": \"mfrakP\",\n      \"unusual\": true,\n      \"detail\": \"𝔓 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital p\"\n    },\n    {\n      \"name\": \"mfrakp\",\n      \"unusual\": true,\n      \"detail\": \"𝔭 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small p\"\n    },\n    {\n      \"name\": \"mfrakQ\",\n      \"unusual\": true,\n      \"detail\": \"𝔔 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital q\"\n    },\n    {\n      \"name\": \"mfrakq\",\n      \"unusual\": true,\n      \"detail\": \"𝔮 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small q\"\n    },\n    {\n      \"name\": \"mfrakr\",\n      \"unusual\": true,\n      \"detail\": \"𝔯 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small r\"\n    },\n    {\n      \"name\": \"mfrakS\",\n      \"unusual\": true,\n      \"detail\": \"𝔖 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital s\"\n    },\n    {\n      \"name\": \"mfraks\",\n      \"unusual\": true,\n      \"detail\": \"𝔰 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small s\"\n    },\n    {\n      \"name\": \"mfrakT\",\n      \"unusual\": true,\n      \"detail\": \"𝔗 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital t\"\n    },\n    {\n      \"name\": \"mfrakt\",\n      \"unusual\": true,\n      \"detail\": \"𝔱 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small t\"\n    },\n    {\n      \"name\": \"mfrakU\",\n      \"unusual\": true,\n      \"detail\": \"𝔘 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital u\"\n    },\n    {\n      \"name\": \"mfraku\",\n      \"unusual\": true,\n      \"detail\": \"𝔲 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small u\"\n    },\n    {\n      \"name\": \"mfrakV\",\n      \"unusual\": true,\n      \"detail\": \"𝔙 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital v\"\n    },\n    {\n      \"name\": \"mfrakv\",\n      \"unusual\": true,\n      \"detail\": \"𝔳 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small v\"\n    },\n    {\n      \"name\": \"mfrakW\",\n      \"unusual\": true,\n      \"detail\": \"𝔚 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital w\"\n    },\n    {\n      \"name\": \"mfrakw\",\n      \"unusual\": true,\n      \"detail\": \"𝔴 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small w\"\n    },\n    {\n      \"name\": \"mfrakX\",\n      \"unusual\": true,\n      \"detail\": \"𝔛 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital x\"\n    },\n    {\n      \"name\": \"mfrakx\",\n      \"unusual\": true,\n      \"detail\": \"𝔵 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small x\"\n    },\n    {\n      \"name\": \"mfrakY\",\n      \"unusual\": true,\n      \"detail\": \"𝔜 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur capital y\"\n    },\n    {\n      \"name\": \"mfraky\",\n      \"unusual\": true,\n      \"detail\": \"𝔶 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small y\"\n    },\n    {\n      \"name\": \"mfrakZ\",\n      \"unusual\": true,\n      \"detail\": \"ℨ (\\\"eufrak\\\" command)\",\n      \"doc\": \"/frak z, black-letter capital z\"\n    },\n    {\n      \"name\": \"mfrakz\",\n      \"unusual\": true,\n      \"detail\": \"𝔷 (\\\"eufrak\\\" command)\",\n      \"doc\": \"Mathematical fraktur small z\"\n    },\n    {\n      \"name\": \"mitA\",\n      \"unusual\": true,\n      \"detail\": \"𝐴\",\n      \"doc\": \"\\\\mathit{a}, mathematical italic capital a\"\n    },\n    {\n      \"name\": \"mita\",\n      \"unusual\": true,\n      \"detail\": \"𝑎\",\n      \"doc\": \"\\\\mathit{a}, mathematical italic small a\"\n    },\n    {\n      \"name\": \"mitAlpha\",\n      \"unusual\": true,\n      \"detail\": \"𝛢\",\n      \"doc\": \"Mathematical italic capital alpha\"\n    },\n    {\n      \"name\": \"mitalpha\",\n      \"unusual\": true,\n      \"detail\": \"𝛼\",\n      \"doc\": \"\\\\mathit{\\\\alpha} (omlmathit), mathematical italic small alpha\"\n    },\n    {\n      \"name\": \"mitB\",\n      \"unusual\": true,\n      \"detail\": \"𝐵\",\n      \"doc\": \"\\\\mathit{b}, mathematical italic capital b\"\n    },\n    {\n      \"name\": \"mitb\",\n      \"unusual\": true,\n      \"detail\": \"𝑏\",\n      \"doc\": \"\\\\mathit{b}, mathematical italic small b\"\n    },\n    {\n      \"name\": \"mitBbbD\",\n      \"unusual\": true,\n      \"detail\": \"ⅅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\dd (wrisym), double-struck italic capital d\"\n    },\n    {\n      \"name\": \"mitBbbd\",\n      \"unusual\": true,\n      \"detail\": \"ⅆ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\dd (wrisym), double-struck italic small d\"\n    },\n    {\n      \"name\": \"mitBbbe\",\n      \"unusual\": true,\n      \"detail\": \"ⅇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ee (wrisym), double-struck italic small e\"\n    },\n    {\n      \"name\": \"mitBbbi\",\n      \"unusual\": true,\n      \"detail\": \"ⅈ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\ii (wrisym), double-struck italic small i\"\n    },\n    {\n      \"name\": \"mitBbbj\",\n      \"unusual\": true,\n      \"detail\": \"ⅉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\jj (wrisym), double-struck italic small j\"\n    },\n    {\n      \"name\": \"mitBeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛣\",\n      \"doc\": \"Mathematical italic capital beta\"\n    },\n    {\n      \"name\": \"mitbeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛽\",\n      \"doc\": \"\\\\mathit{\\\\beta} (omlmathit), mathematical italic small beta\"\n    },\n    {\n      \"name\": \"mitC\",\n      \"unusual\": true,\n      \"detail\": \"𝐶\",\n      \"doc\": \"\\\\mathit{c}, mathematical italic capital c\"\n    },\n    {\n      \"name\": \"mitc\",\n      \"unusual\": true,\n      \"detail\": \"𝑐\",\n      \"doc\": \"\\\\mathit{c}, mathematical italic small c\"\n    },\n    {\n      \"name\": \"mitChi\",\n      \"unusual\": true,\n      \"detail\": \"𝛸\",\n      \"doc\": \"Mathematical italic capital chi\"\n    },\n    {\n      \"name\": \"mitchi\",\n      \"unusual\": true,\n      \"detail\": \"𝜒\",\n      \"doc\": \"\\\\mathit{\\\\chi} (omlmathit), mathematical italic small chi\"\n    },\n    {\n      \"name\": \"mitD\",\n      \"unusual\": true,\n      \"detail\": \"𝐷\",\n      \"doc\": \"\\\\mathit{d}, mathematical italic capital d\"\n    },\n    {\n      \"name\": \"mitd\",\n      \"unusual\": true,\n      \"detail\": \"𝑑\",\n      \"doc\": \"\\\\mathit{d}, mathematical italic small d\"\n    },\n    {\n      \"name\": \"mitDelta\",\n      \"unusual\": true,\n      \"detail\": \"𝛥 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\delta} (-fourier), \\\\vardelta (amsmath fourier), mathematical italic capital delta\"\n    },\n    {\n      \"name\": \"mitdelta\",\n      \"unusual\": true,\n      \"detail\": \"𝛿\",\n      \"doc\": \"\\\\mathit{\\\\delta} (omlmathit), mathematical italic small delta\"\n    },\n    {\n      \"name\": \"mitE\",\n      \"unusual\": true,\n      \"detail\": \"𝐸\",\n      \"doc\": \"\\\\mathit{e}, mathematical italic capital e\"\n    },\n    {\n      \"name\": \"mite\",\n      \"unusual\": true,\n      \"detail\": \"𝑒\",\n      \"doc\": \"\\\\mathit{e}, mathematical italic small e\"\n    },\n    {\n      \"name\": \"mitEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝛦\",\n      \"doc\": \"Mathematical italic capital epsilon\"\n    },\n    {\n      \"name\": \"mitepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜀\",\n      \"doc\": \"\\\\mathit{\\\\varepsilon} (omlmathit), mathematical italic small epsilon\"\n    },\n    {\n      \"name\": \"mitEta\",\n      \"unusual\": true,\n      \"detail\": \"𝛨\",\n      \"doc\": \"Mathematical italic capital eta\"\n    },\n    {\n      \"name\": \"miteta\",\n      \"unusual\": true,\n      \"detail\": \"𝜂\",\n      \"doc\": \"\\\\mathit{\\\\eta} (omlmathit), mathematical italic small eta\"\n    },\n    {\n      \"name\": \"mitF\",\n      \"unusual\": true,\n      \"detail\": \"𝐹\",\n      \"doc\": \"\\\\mathit{f}, mathematical italic capital f\"\n    },\n    {\n      \"name\": \"mitf\",\n      \"unusual\": true,\n      \"detail\": \"𝑓\",\n      \"doc\": \"\\\\mathit{f}, mathematical italic small f\"\n    },\n    {\n      \"name\": \"mitG\",\n      \"unusual\": true,\n      \"detail\": \"𝐺\",\n      \"doc\": \"\\\\mathit{g}, mathematical italic capital g\"\n    },\n    {\n      \"name\": \"mitg\",\n      \"unusual\": true,\n      \"detail\": \"𝑔\",\n      \"doc\": \"\\\\mathit{g}, mathematical italic small g\"\n    },\n    {\n      \"name\": \"mitGamma\",\n      \"unusual\": true,\n      \"detail\": \"𝛤 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\gamma} (-fourier), \\\\vargamma (amsmath fourier), mathematical italic capital gamma\"\n    },\n    {\n      \"name\": \"mitgamma\",\n      \"unusual\": true,\n      \"detail\": \"𝛾\",\n      \"doc\": \"\\\\mathit{\\\\gamma} (omlmathit), mathematical italic small gamma\"\n    },\n    {\n      \"name\": \"mitH\",\n      \"unusual\": true,\n      \"detail\": \"𝐻\",\n      \"doc\": \"\\\\mathit{h}, mathematical italic capital h\"\n    },\n    {\n      \"name\": \"mitI\",\n      \"unusual\": true,\n      \"detail\": \"𝐼\",\n      \"doc\": \"\\\\mathit{i}, mathematical italic capital i\"\n    },\n    {\n      \"name\": \"miti\",\n      \"unusual\": true,\n      \"detail\": \"𝑖\",\n      \"doc\": \"\\\\mathit{i}, mathematical italic small i\"\n    },\n    {\n      \"name\": \"mitIota\",\n      \"unusual\": true,\n      \"detail\": \"𝛪\",\n      \"doc\": \"Mathematical italic capital iota\"\n    },\n    {\n      \"name\": \"mitiota\",\n      \"unusual\": true,\n      \"detail\": \"𝜄\",\n      \"doc\": \"\\\\mathit{\\\\iota} (omlmathit), mathematical italic small iota\"\n    },\n    {\n      \"name\": \"mitJ\",\n      \"unusual\": true,\n      \"detail\": \"𝐽\",\n      \"doc\": \"\\\\mathit{j}, mathematical italic capital j\"\n    },\n    {\n      \"name\": \"mitj\",\n      \"unusual\": true,\n      \"detail\": \"𝑗\",\n      \"doc\": \"\\\\mathit{j}, mathematical italic small j\"\n    },\n    {\n      \"name\": \"mitK\",\n      \"unusual\": true,\n      \"detail\": \"𝐾\",\n      \"doc\": \"\\\\mathit{k}, mathematical italic capital k\"\n    },\n    {\n      \"name\": \"mitk\",\n      \"unusual\": true,\n      \"detail\": \"𝑘\",\n      \"doc\": \"\\\\mathit{k}, mathematical italic small k\"\n    },\n    {\n      \"name\": \"mitKappa\",\n      \"unusual\": true,\n      \"detail\": \"𝛫\",\n      \"doc\": \"Mathematical italic capital kappa\"\n    },\n    {\n      \"name\": \"mitkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝜅\",\n      \"doc\": \"\\\\mathit{\\\\kappa} (omlmathit), mathematical italic small kappa\"\n    },\n    {\n      \"name\": \"mitL\",\n      \"unusual\": true,\n      \"detail\": \"𝐿\",\n      \"doc\": \"\\\\mathit{l}, mathematical italic capital l\"\n    },\n    {\n      \"name\": \"mitl\",\n      \"unusual\": true,\n      \"detail\": \"𝑙\",\n      \"doc\": \"\\\\mathit{l}, mathematical italic small l\"\n    },\n    {\n      \"name\": \"mitLambda\",\n      \"unusual\": true,\n      \"detail\": \"𝛬 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\lambda} (-fourier), \\\\varlambda (amsmath fourier), mathematical italic capital lambda\"\n    },\n    {\n      \"name\": \"mitlambda\",\n      \"unusual\": true,\n      \"detail\": \"𝜆\",\n      \"doc\": \"\\\\mathit{\\\\lambda} (omlmathit), mathematical italic small lambda\"\n    },\n    {\n      \"name\": \"mitM\",\n      \"unusual\": true,\n      \"detail\": \"𝑀\",\n      \"doc\": \"\\\\mathit{m}, mathematical italic capital m\"\n    },\n    {\n      \"name\": \"mitm\",\n      \"unusual\": true,\n      \"detail\": \"𝑚\",\n      \"doc\": \"\\\\mathit{m}, mathematical italic small m\"\n    },\n    {\n      \"name\": \"mitMu\",\n      \"unusual\": true,\n      \"detail\": \"𝛭\",\n      \"doc\": \"Mathematical italic capital mu\"\n    },\n    {\n      \"name\": \"mitmu\",\n      \"unusual\": true,\n      \"detail\": \"𝜇\",\n      \"doc\": \"\\\\mathit{\\\\mu} (omlmathit), mathematical italic small mu\"\n    },\n    {\n      \"name\": \"mitN\",\n      \"unusual\": true,\n      \"detail\": \"𝑁\",\n      \"doc\": \"\\\\mathit{n}, mathematical italic capital n\"\n    },\n    {\n      \"name\": \"mitn\",\n      \"unusual\": true,\n      \"detail\": \"𝑛\",\n      \"doc\": \"\\\\mathit{n}, mathematical italic small n\"\n    },\n    {\n      \"name\": \"mitnabla\",\n      \"unusual\": true,\n      \"detail\": \"𝛻\",\n      \"doc\": \"Mathematical italic nabla\"\n    },\n    {\n      \"name\": \"mitNu\",\n      \"unusual\": true,\n      \"detail\": \"𝛮\",\n      \"doc\": \"Mathematical italic capital nu\"\n    },\n    {\n      \"name\": \"mitnu\",\n      \"unusual\": true,\n      \"detail\": \"𝜈\",\n      \"doc\": \"\\\\mathit{\\\\nu} (omlmathit), mathematical italic small nu\"\n    },\n    {\n      \"name\": \"mitO\",\n      \"unusual\": true,\n      \"detail\": \"𝑂\",\n      \"doc\": \"\\\\mathit{o}, mathematical italic capital o\"\n    },\n    {\n      \"name\": \"mito\",\n      \"unusual\": true,\n      \"detail\": \"𝑜\",\n      \"doc\": \"\\\\mathit{o}, mathematical italic small o\"\n    },\n    {\n      \"name\": \"mitOmega\",\n      \"unusual\": true,\n      \"detail\": \"𝛺 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\omega} (-fourier), \\\\varomega (amsmath fourier), mathematical italic capital omega\"\n    },\n    {\n      \"name\": \"mitomega\",\n      \"unusual\": true,\n      \"detail\": \"𝜔\",\n      \"doc\": \"\\\\mathit{\\\\omega} (omlmathit), mathematical italic small omega\"\n    },\n    {\n      \"name\": \"mitOmicron\",\n      \"unusual\": true,\n      \"detail\": \"𝛰\",\n      \"doc\": \"Mathematical italic capital omicron\"\n    },\n    {\n      \"name\": \"mitomicron\",\n      \"unusual\": true,\n      \"detail\": \"𝜊\",\n      \"doc\": \"Mathematical italic small omicron\"\n    },\n    {\n      \"name\": \"mitP\",\n      \"unusual\": true,\n      \"detail\": \"𝑃\",\n      \"doc\": \"\\\\mathit{p}, mathematical italic capital p\"\n    },\n    {\n      \"name\": \"mitp\",\n      \"unusual\": true,\n      \"detail\": \"𝑝\",\n      \"doc\": \"\\\\mathit{p}, mathematical italic small p\"\n    },\n    {\n      \"name\": \"mitpartial\",\n      \"unusual\": true,\n      \"detail\": \"𝜕\",\n      \"doc\": \"\\\\mathit{\\\\partial} (omlmathit), mathematical italic partial differential\"\n    },\n    {\n      \"name\": \"mitPhi\",\n      \"unusual\": true,\n      \"detail\": \"𝛷 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\phi} (-fourier), \\\\varphi (amsmath fourier), mathematical italic capital phi\"\n    },\n    {\n      \"name\": \"mitphi\",\n      \"unusual\": true,\n      \"detail\": \"𝜑\",\n      \"doc\": \"\\\\mathit{\\\\varphi} (omlmathit), mathematical italic small phi\"\n    },\n    {\n      \"name\": \"mitPi\",\n      \"unusual\": true,\n      \"detail\": \"𝛱 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\pi} (-fourier), \\\\varpi (amsmath fourier), mathematical italic capital pi\"\n    },\n    {\n      \"name\": \"mitpi\",\n      \"unusual\": true,\n      \"detail\": \"𝜋\",\n      \"doc\": \"\\\\mathit{\\\\pi} (omlmathit), mathematical italic small pi\"\n    },\n    {\n      \"name\": \"mitPsi\",\n      \"unusual\": true,\n      \"detail\": \"𝛹 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\psi} (-fourier), \\\\varpsi (amsmath fourier), mathematical italic capital psi\"\n    },\n    {\n      \"name\": \"mitpsi\",\n      \"unusual\": true,\n      \"detail\": \"𝜓\",\n      \"doc\": \"\\\\mathit{\\\\psi} (omlmathit), mathematical italic small psi\"\n    },\n    {\n      \"name\": \"mitQ\",\n      \"unusual\": true,\n      \"detail\": \"𝑄\",\n      \"doc\": \"\\\\mathit{q}, mathematical italic capital q\"\n    },\n    {\n      \"name\": \"mitq\",\n      \"unusual\": true,\n      \"detail\": \"𝑞\",\n      \"doc\": \"\\\\mathit{q}, mathematical italic small q\"\n    },\n    {\n      \"name\": \"mitR\",\n      \"unusual\": true,\n      \"detail\": \"𝑅\",\n      \"doc\": \"\\\\mathit{r}, mathematical italic capital r\"\n    },\n    {\n      \"name\": \"mitr\",\n      \"unusual\": true,\n      \"detail\": \"𝑟\",\n      \"doc\": \"\\\\mathit{r}, mathematical italic small r\"\n    },\n    {\n      \"name\": \"mitRho\",\n      \"unusual\": true,\n      \"detail\": \"𝛲\",\n      \"doc\": \"Mathematical italic capital rho\"\n    },\n    {\n      \"name\": \"mitrho\",\n      \"unusual\": true,\n      \"detail\": \"𝜌\",\n      \"doc\": \"\\\\mathit{\\\\rho} (omlmathit), mathematical italic small rho\"\n    },\n    {\n      \"name\": \"mitS\",\n      \"unusual\": true,\n      \"detail\": \"𝑆\",\n      \"doc\": \"\\\\mathit{s}, mathematical italic capital s\"\n    },\n    {\n      \"name\": \"mits\",\n      \"unusual\": true,\n      \"detail\": \"𝑠\",\n      \"doc\": \"\\\\mathit{s}, mathematical italic small s\"\n    },\n    {\n      \"name\": \"mitsansA\",\n      \"unusual\": true,\n      \"detail\": \"𝘈 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital a\"\n    },\n    {\n      \"name\": \"mitsansa\",\n      \"unusual\": true,\n      \"detail\": \"𝘢 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small a\"\n    },\n    {\n      \"name\": \"mitsansB\",\n      \"unusual\": true,\n      \"detail\": \"𝘉 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital b\"\n    },\n    {\n      \"name\": \"mitsansb\",\n      \"unusual\": true,\n      \"detail\": \"𝘣 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small b\"\n    },\n    {\n      \"name\": \"mitsansC\",\n      \"unusual\": true,\n      \"detail\": \"𝘊 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital c\"\n    },\n    {\n      \"name\": \"mitsansc\",\n      \"unusual\": true,\n      \"detail\": \"𝘤 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small c\"\n    },\n    {\n      \"name\": \"mitsansD\",\n      \"unusual\": true,\n      \"detail\": \"𝘋 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital d\"\n    },\n    {\n      \"name\": \"mitsansd\",\n      \"unusual\": true,\n      \"detail\": \"𝘥 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small d\"\n    },\n    {\n      \"name\": \"mitsansE\",\n      \"unusual\": true,\n      \"detail\": \"𝘌 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital e\"\n    },\n    {\n      \"name\": \"mitsanse\",\n      \"unusual\": true,\n      \"detail\": \"𝘦 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small e\"\n    },\n    {\n      \"name\": \"mitsansF\",\n      \"unusual\": true,\n      \"detail\": \"𝘍 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital f\"\n    },\n    {\n      \"name\": \"mitsansf\",\n      \"unusual\": true,\n      \"detail\": \"𝘧 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small f\"\n    },\n    {\n      \"name\": \"mitsansG\",\n      \"unusual\": true,\n      \"detail\": \"𝘎 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital g\"\n    },\n    {\n      \"name\": \"mitsansg\",\n      \"unusual\": true,\n      \"detail\": \"𝘨 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small g\"\n    },\n    {\n      \"name\": \"mitsansH\",\n      \"unusual\": true,\n      \"detail\": \"𝘏 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital h\"\n    },\n    {\n      \"name\": \"mitsansh\",\n      \"unusual\": true,\n      \"detail\": \"𝘩 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small h\"\n    },\n    {\n      \"name\": \"mitsansI\",\n      \"unusual\": true,\n      \"detail\": \"𝘐 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital i\"\n    },\n    {\n      \"name\": \"mitsansi\",\n      \"unusual\": true,\n      \"detail\": \"𝘪 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small i\"\n    },\n    {\n      \"name\": \"mitsansJ\",\n      \"unusual\": true,\n      \"detail\": \"𝘑 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital j\"\n    },\n    {\n      \"name\": \"mitsansj\",\n      \"unusual\": true,\n      \"detail\": \"𝘫 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small j\"\n    },\n    {\n      \"name\": \"mitsansK\",\n      \"unusual\": true,\n      \"detail\": \"𝘒 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital k\"\n    },\n    {\n      \"name\": \"mitsansk\",\n      \"unusual\": true,\n      \"detail\": \"𝘬 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small k\"\n    },\n    {\n      \"name\": \"mitsansL\",\n      \"unusual\": true,\n      \"detail\": \"𝘓 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital l\"\n    },\n    {\n      \"name\": \"mitsansl\",\n      \"unusual\": true,\n      \"detail\": \"𝘭 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small l\"\n    },\n    {\n      \"name\": \"mitsansM\",\n      \"unusual\": true,\n      \"detail\": \"𝘔 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital m\"\n    },\n    {\n      \"name\": \"mitsansm\",\n      \"unusual\": true,\n      \"detail\": \"𝘮 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small m\"\n    },\n    {\n      \"name\": \"mitsansN\",\n      \"unusual\": true,\n      \"detail\": \"𝘕 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital n\"\n    },\n    {\n      \"name\": \"mitsansn\",\n      \"unusual\": true,\n      \"detail\": \"𝘯 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small n\"\n    },\n    {\n      \"name\": \"mitsansO\",\n      \"unusual\": true,\n      \"detail\": \"𝘖 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital o\"\n    },\n    {\n      \"name\": \"mitsanso\",\n      \"unusual\": true,\n      \"detail\": \"𝘰 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small o\"\n    },\n    {\n      \"name\": \"mitsansP\",\n      \"unusual\": true,\n      \"detail\": \"𝘗 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital p\"\n    },\n    {\n      \"name\": \"mitsansp\",\n      \"unusual\": true,\n      \"detail\": \"𝘱 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small p\"\n    },\n    {\n      \"name\": \"mitsansQ\",\n      \"unusual\": true,\n      \"detail\": \"𝘘 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital q\"\n    },\n    {\n      \"name\": \"mitsansq\",\n      \"unusual\": true,\n      \"detail\": \"𝘲 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small q\"\n    },\n    {\n      \"name\": \"mitsansR\",\n      \"unusual\": true,\n      \"detail\": \"𝘙 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital r\"\n    },\n    {\n      \"name\": \"mitsansr\",\n      \"unusual\": true,\n      \"detail\": \"𝘳 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small r\"\n    },\n    {\n      \"name\": \"mitsansS\",\n      \"unusual\": true,\n      \"detail\": \"𝘚 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital s\"\n    },\n    {\n      \"name\": \"mitsanss\",\n      \"unusual\": true,\n      \"detail\": \"𝘴 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small s\"\n    },\n    {\n      \"name\": \"mitsansT\",\n      \"unusual\": true,\n      \"detail\": \"𝘛 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital t\"\n    },\n    {\n      \"name\": \"mitsanst\",\n      \"unusual\": true,\n      \"detail\": \"𝘵 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small t\"\n    },\n    {\n      \"name\": \"mitsansU\",\n      \"unusual\": true,\n      \"detail\": \"𝘜 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital u\"\n    },\n    {\n      \"name\": \"mitsansu\",\n      \"unusual\": true,\n      \"detail\": \"𝘶 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small u\"\n    },\n    {\n      \"name\": \"mitsansV\",\n      \"unusual\": true,\n      \"detail\": \"𝘝 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital v\"\n    },\n    {\n      \"name\": \"mitsansv\",\n      \"unusual\": true,\n      \"detail\": \"𝘷 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small v\"\n    },\n    {\n      \"name\": \"mitsansW\",\n      \"unusual\": true,\n      \"detail\": \"𝘞 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital w\"\n    },\n    {\n      \"name\": \"mitsansw\",\n      \"unusual\": true,\n      \"detail\": \"𝘸 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small w\"\n    },\n    {\n      \"name\": \"mitsansX\",\n      \"unusual\": true,\n      \"detail\": \"𝘟 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital x\"\n    },\n    {\n      \"name\": \"mitsansx\",\n      \"unusual\": true,\n      \"detail\": \"𝘹 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small x\"\n    },\n    {\n      \"name\": \"mitsansY\",\n      \"unusual\": true,\n      \"detail\": \"𝘠 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital y\"\n    },\n    {\n      \"name\": \"mitsansy\",\n      \"unusual\": true,\n      \"detail\": \"𝘺 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small y\"\n    },\n    {\n      \"name\": \"mitsansZ\",\n      \"unusual\": true,\n      \"detail\": \"𝘡 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic capital z\"\n    },\n    {\n      \"name\": \"mitsansz\",\n      \"unusual\": true,\n      \"detail\": \"𝘻 (\\\"omlmathsfit\\\" command)\",\n      \"doc\": \"Mathematical sans-serif italic small z\"\n    },\n    {\n      \"name\": \"mitSigma\",\n      \"unusual\": true,\n      \"detail\": \"𝛴 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\sigma} (-fourier), \\\\varsigma (amsmath fourier), mathematical italic capital sigma\"\n    },\n    {\n      \"name\": \"mitsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝜎\",\n      \"doc\": \"\\\\mathit{\\\\sigma} (omlmathit), mathematical italic small sigma\"\n    },\n    {\n      \"name\": \"mitT\",\n      \"unusual\": true,\n      \"detail\": \"𝑇\",\n      \"doc\": \"\\\\mathit{t}, mathematical italic capital t\"\n    },\n    {\n      \"name\": \"mitt\",\n      \"unusual\": true,\n      \"detail\": \"𝑡\",\n      \"doc\": \"\\\\mathit{t}, mathematical italic small t\"\n    },\n    {\n      \"name\": \"mitTau\",\n      \"unusual\": true,\n      \"detail\": \"𝛵\",\n      \"doc\": \"Mathematical italic capital tau\"\n    },\n    {\n      \"name\": \"mittau\",\n      \"unusual\": true,\n      \"detail\": \"𝜏\",\n      \"doc\": \"\\\\mathit{\\\\tau} (omlmathit), mathematical italic small tau\"\n    },\n    {\n      \"name\": \"mitTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝛩 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\theta} (-fourier), \\\\vartheta (amsmath fourier), mathematical italic capital theta\"\n    },\n    {\n      \"name\": \"mittheta\",\n      \"unusual\": true,\n      \"detail\": \"𝜃\",\n      \"doc\": \"\\\\mathit{\\\\theta} (omlmathit), mathematical italic small theta\"\n    },\n    {\n      \"name\": \"mitU\",\n      \"unusual\": true,\n      \"detail\": \"𝑈\",\n      \"doc\": \"\\\\mathit{u}, mathematical italic capital u\"\n    },\n    {\n      \"name\": \"mitu\",\n      \"unusual\": true,\n      \"detail\": \"𝑢\",\n      \"doc\": \"\\\\mathit{u}, mathematical italic small u\"\n    },\n    {\n      \"name\": \"mitUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝛶 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\upsilon} (-fourier), \\\\varupsilon (amsmath fourier), mathematical italic capital upsilon\"\n    },\n    {\n      \"name\": \"mitupsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜐\",\n      \"doc\": \"\\\\mathit{\\\\upsilon} (omlmathit), mathematical italic small upsilon\"\n    },\n    {\n      \"name\": \"mitV\",\n      \"unusual\": true,\n      \"detail\": \"𝑉\",\n      \"doc\": \"\\\\mathit{v}, mathematical italic capital v\"\n    },\n    {\n      \"name\": \"mitv\",\n      \"unusual\": true,\n      \"detail\": \"𝑣\",\n      \"doc\": \"\\\\mathit{v}, mathematical italic small v\"\n    },\n    {\n      \"name\": \"mitvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"𝜖\",\n      \"doc\": \"\\\\mathit{\\\\epsilon} (omlmathit), mathematical italic epsilon symbol\"\n    },\n    {\n      \"name\": \"mitvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"𝜘 (\\\"amssymb\\\" command)\",\n      \"doc\": \"Mathematical italic kappa symbol\"\n    },\n    {\n      \"name\": \"mitvarphi\",\n      \"unusual\": true,\n      \"detail\": \"𝜙\",\n      \"doc\": \"\\\\mathit{\\\\phi} (omlmathit), mathematical italic phi symbol\"\n    },\n    {\n      \"name\": \"mitvarpi\",\n      \"unusual\": true,\n      \"detail\": \"𝜛\",\n      \"doc\": \"\\\\mathit{\\\\varpi} (omlmathit), mathematical italic pi symbol\"\n    },\n    {\n      \"name\": \"mitvarrho\",\n      \"unusual\": true,\n      \"detail\": \"𝜚\",\n      \"doc\": \"\\\\mathit{\\\\varrho} (omlmathit), mathematical italic rho symbol\"\n    },\n    {\n      \"name\": \"mitvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"𝜍\",\n      \"doc\": \"\\\\mathit{\\\\varsigma} (omlmathit), mathematical italic small final sigma\"\n    },\n    {\n      \"name\": \"mitvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"𝛳\",\n      \"doc\": \"Mathematical italic capital theta symbol\"\n    },\n    {\n      \"name\": \"mitvartheta\",\n      \"unusual\": true,\n      \"detail\": \"𝜗\",\n      \"doc\": \"\\\\mathit{\\\\vartheta} (omlmathit), mathematical italic theta symbol\"\n    },\n    {\n      \"name\": \"mitW\",\n      \"unusual\": true,\n      \"detail\": \"𝑊\",\n      \"doc\": \"\\\\mathit{w}, mathematical italic capital w\"\n    },\n    {\n      \"name\": \"mitw\",\n      \"unusual\": true,\n      \"detail\": \"𝑤\",\n      \"doc\": \"\\\\mathit{w}, mathematical italic small w\"\n    },\n    {\n      \"name\": \"mitX\",\n      \"unusual\": true,\n      \"detail\": \"𝑋\",\n      \"doc\": \"\\\\mathit{x}, mathematical italic capital x\"\n    },\n    {\n      \"name\": \"mitx\",\n      \"unusual\": true,\n      \"detail\": \"𝑥\",\n      \"doc\": \"\\\\mathit{x}, mathematical italic small x\"\n    },\n    {\n      \"name\": \"mitXi\",\n      \"unusual\": true,\n      \"detail\": \"𝛯 (\\\"slantedGreek\\\" command)\",\n      \"doc\": \"\\\\mathit{\\\\xi} (-fourier), \\\\varxi (amsmath fourier), mathematical italic capital xi\"\n    },\n    {\n      \"name\": \"mitxi\",\n      \"unusual\": true,\n      \"detail\": \"𝜉\",\n      \"doc\": \"\\\\mathit{\\\\xi} (omlmathit), mathematical italic small xi\"\n    },\n    {\n      \"name\": \"mitY\",\n      \"unusual\": true,\n      \"detail\": \"𝑌\",\n      \"doc\": \"\\\\mathit{y}, mathematical italic capital y\"\n    },\n    {\n      \"name\": \"mity\",\n      \"unusual\": true,\n      \"detail\": \"𝑦\",\n      \"doc\": \"\\\\mathit{y}, mathematical italic small y\"\n    },\n    {\n      \"name\": \"mitZ\",\n      \"unusual\": true,\n      \"detail\": \"𝑍\",\n      \"doc\": \"\\\\mathit{z}, mathematical italic capital z\"\n    },\n    {\n      \"name\": \"mitz\",\n      \"unusual\": true,\n      \"detail\": \"𝑧\",\n      \"doc\": \"\\\\mathit{z}, mathematical italic small z\"\n    },\n    {\n      \"name\": \"mitZeta\",\n      \"unusual\": true,\n      \"detail\": \"𝛧\",\n      \"doc\": \"Mathematical italic capital zeta\"\n    },\n    {\n      \"name\": \"mitzeta\",\n      \"unusual\": true,\n      \"detail\": \"𝜁\",\n      \"doc\": \"\\\\mathit{\\\\zeta} (omlmathit), mathematical italic small zeta\"\n    },\n    {\n      \"name\": \"msansA\",\n      \"unusual\": true,\n      \"detail\": \"𝖠\",\n      \"doc\": \"Mathematical sans-serif capital a\"\n    },\n    {\n      \"name\": \"msansa\",\n      \"unusual\": true,\n      \"detail\": \"𝖺\",\n      \"doc\": \"Mathematical sans-serif small a\"\n    },\n    {\n      \"name\": \"msansB\",\n      \"unusual\": true,\n      \"detail\": \"𝖡\",\n      \"doc\": \"Mathematical sans-serif capital b\"\n    },\n    {\n      \"name\": \"msansb\",\n      \"unusual\": true,\n      \"detail\": \"𝖻\",\n      \"doc\": \"Mathematical sans-serif small b\"\n    },\n    {\n      \"name\": \"msansC\",\n      \"unusual\": true,\n      \"detail\": \"𝖢\",\n      \"doc\": \"Mathematical sans-serif capital c\"\n    },\n    {\n      \"name\": \"msansc\",\n      \"unusual\": true,\n      \"detail\": \"𝖼\",\n      \"doc\": \"Mathematical sans-serif small c\"\n    },\n    {\n      \"name\": \"msansD\",\n      \"unusual\": true,\n      \"detail\": \"𝖣\",\n      \"doc\": \"Mathematical sans-serif capital d\"\n    },\n    {\n      \"name\": \"msansd\",\n      \"unusual\": true,\n      \"detail\": \"𝖽\",\n      \"doc\": \"Mathematical sans-serif small d\"\n    },\n    {\n      \"name\": \"msansE\",\n      \"unusual\": true,\n      \"detail\": \"𝖤\",\n      \"doc\": \"Mathematical sans-serif capital e\"\n    },\n    {\n      \"name\": \"msanse\",\n      \"unusual\": true,\n      \"detail\": \"𝖾\",\n      \"doc\": \"Mathematical sans-serif small e\"\n    },\n    {\n      \"name\": \"msanseight\",\n      \"unusual\": true,\n      \"detail\": \"𝟪\",\n      \"doc\": \"Mathematical sans-serif digit 8\"\n    },\n    {\n      \"name\": \"msansF\",\n      \"unusual\": true,\n      \"detail\": \"𝖥\",\n      \"doc\": \"Mathematical sans-serif capital f\"\n    },\n    {\n      \"name\": \"msansf\",\n      \"unusual\": true,\n      \"detail\": \"𝖿\",\n      \"doc\": \"Mathematical sans-serif small f\"\n    },\n    {\n      \"name\": \"msansfive\",\n      \"unusual\": true,\n      \"detail\": \"𝟧\",\n      \"doc\": \"Mathematical sans-serif digit 5\"\n    },\n    {\n      \"name\": \"msansfour\",\n      \"unusual\": true,\n      \"detail\": \"𝟦\",\n      \"doc\": \"Mathematical sans-serif digit 4\"\n    },\n    {\n      \"name\": \"msansG\",\n      \"unusual\": true,\n      \"detail\": \"𝖦\",\n      \"doc\": \"Mathematical sans-serif capital g\"\n    },\n    {\n      \"name\": \"msansg\",\n      \"unusual\": true,\n      \"detail\": \"𝗀\",\n      \"doc\": \"Mathematical sans-serif small g\"\n    },\n    {\n      \"name\": \"msansH\",\n      \"unusual\": true,\n      \"detail\": \"𝖧\",\n      \"doc\": \"Mathematical sans-serif capital h\"\n    },\n    {\n      \"name\": \"msansh\",\n      \"unusual\": true,\n      \"detail\": \"𝗁\",\n      \"doc\": \"Mathematical sans-serif small h\"\n    },\n    {\n      \"name\": \"msansI\",\n      \"unusual\": true,\n      \"detail\": \"𝖨\",\n      \"doc\": \"Mathematical sans-serif capital i\"\n    },\n    {\n      \"name\": \"msansi\",\n      \"unusual\": true,\n      \"detail\": \"𝗂\",\n      \"doc\": \"Mathematical sans-serif small i\"\n    },\n    {\n      \"name\": \"msansJ\",\n      \"unusual\": true,\n      \"detail\": \"𝖩\",\n      \"doc\": \"Mathematical sans-serif capital j\"\n    },\n    {\n      \"name\": \"msansj\",\n      \"unusual\": true,\n      \"detail\": \"𝗃\",\n      \"doc\": \"Mathematical sans-serif small j\"\n    },\n    {\n      \"name\": \"msansK\",\n      \"unusual\": true,\n      \"detail\": \"𝖪\",\n      \"doc\": \"Mathematical sans-serif capital k\"\n    },\n    {\n      \"name\": \"msansk\",\n      \"unusual\": true,\n      \"detail\": \"𝗄\",\n      \"doc\": \"Mathematical sans-serif small k\"\n    },\n    {\n      \"name\": \"msansL\",\n      \"unusual\": true,\n      \"detail\": \"𝖫\",\n      \"doc\": \"Mathematical sans-serif capital l\"\n    },\n    {\n      \"name\": \"msansl\",\n      \"unusual\": true,\n      \"detail\": \"𝗅\",\n      \"doc\": \"Mathematical sans-serif small l\"\n    },\n    {\n      \"name\": \"msansM\",\n      \"unusual\": true,\n      \"detail\": \"𝖬\",\n      \"doc\": \"Mathematical sans-serif capital m\"\n    },\n    {\n      \"name\": \"msansm\",\n      \"unusual\": true,\n      \"detail\": \"𝗆\",\n      \"doc\": \"Mathematical sans-serif small m\"\n    },\n    {\n      \"name\": \"msansN\",\n      \"unusual\": true,\n      \"detail\": \"𝖭\",\n      \"doc\": \"Mathematical sans-serif capital n\"\n    },\n    {\n      \"name\": \"msansn\",\n      \"unusual\": true,\n      \"detail\": \"𝗇\",\n      \"doc\": \"Mathematical sans-serif small n\"\n    },\n    {\n      \"name\": \"msansnine\",\n      \"unusual\": true,\n      \"detail\": \"𝟫\",\n      \"doc\": \"Mathematical sans-serif digit 9\"\n    },\n    {\n      \"name\": \"msansO\",\n      \"unusual\": true,\n      \"detail\": \"𝖮\",\n      \"doc\": \"Mathematical sans-serif capital o\"\n    },\n    {\n      \"name\": \"msanso\",\n      \"unusual\": true,\n      \"detail\": \"𝗈\",\n      \"doc\": \"Mathematical sans-serif small o\"\n    },\n    {\n      \"name\": \"msansone\",\n      \"unusual\": true,\n      \"detail\": \"𝟣\",\n      \"doc\": \"Mathematical sans-serif digit 1\"\n    },\n    {\n      \"name\": \"msansP\",\n      \"unusual\": true,\n      \"detail\": \"𝖯\",\n      \"doc\": \"Mathematical sans-serif capital p\"\n    },\n    {\n      \"name\": \"msansp\",\n      \"unusual\": true,\n      \"detail\": \"𝗉\",\n      \"doc\": \"Mathematical sans-serif small p\"\n    },\n    {\n      \"name\": \"msansQ\",\n      \"unusual\": true,\n      \"detail\": \"𝖰\",\n      \"doc\": \"Mathematical sans-serif capital q\"\n    },\n    {\n      \"name\": \"msansq\",\n      \"unusual\": true,\n      \"detail\": \"𝗊\",\n      \"doc\": \"Mathematical sans-serif small q\"\n    },\n    {\n      \"name\": \"msansR\",\n      \"unusual\": true,\n      \"detail\": \"𝖱\",\n      \"doc\": \"Mathematical sans-serif capital r\"\n    },\n    {\n      \"name\": \"msansr\",\n      \"unusual\": true,\n      \"detail\": \"𝗋\",\n      \"doc\": \"Mathematical sans-serif small r\"\n    },\n    {\n      \"name\": \"msansS\",\n      \"unusual\": true,\n      \"detail\": \"𝖲\",\n      \"doc\": \"Mathematical sans-serif capital s\"\n    },\n    {\n      \"name\": \"msanss\",\n      \"unusual\": true,\n      \"detail\": \"𝗌\",\n      \"doc\": \"Mathematical sans-serif small s\"\n    },\n    {\n      \"name\": \"msansseven\",\n      \"unusual\": true,\n      \"detail\": \"𝟩\",\n      \"doc\": \"Mathematical sans-serif digit 7\"\n    },\n    {\n      \"name\": \"msanssix\",\n      \"unusual\": true,\n      \"detail\": \"𝟨\",\n      \"doc\": \"Mathematical sans-serif digit 6\"\n    },\n    {\n      \"name\": \"msansT\",\n      \"unusual\": true,\n      \"detail\": \"𝖳\",\n      \"doc\": \"Mathematical sans-serif capital t\"\n    },\n    {\n      \"name\": \"msanst\",\n      \"unusual\": true,\n      \"detail\": \"𝗍\",\n      \"doc\": \"Mathematical sans-serif small t\"\n    },\n    {\n      \"name\": \"msansthree\",\n      \"unusual\": true,\n      \"detail\": \"𝟥\",\n      \"doc\": \"Mathematical sans-serif digit 3\"\n    },\n    {\n      \"name\": \"msanstwo\",\n      \"unusual\": true,\n      \"detail\": \"𝟤\",\n      \"doc\": \"Mathematical sans-serif digit 2\"\n    },\n    {\n      \"name\": \"msansU\",\n      \"unusual\": true,\n      \"detail\": \"𝖴\",\n      \"doc\": \"Mathematical sans-serif capital u\"\n    },\n    {\n      \"name\": \"msansu\",\n      \"unusual\": true,\n      \"detail\": \"𝗎\",\n      \"doc\": \"Mathematical sans-serif small u\"\n    },\n    {\n      \"name\": \"msansV\",\n      \"unusual\": true,\n      \"detail\": \"𝖵\",\n      \"doc\": \"Mathematical sans-serif capital v\"\n    },\n    {\n      \"name\": \"msansv\",\n      \"unusual\": true,\n      \"detail\": \"𝗏\",\n      \"doc\": \"Mathematical sans-serif small v\"\n    },\n    {\n      \"name\": \"msansW\",\n      \"unusual\": true,\n      \"detail\": \"𝖶\",\n      \"doc\": \"Mathematical sans-serif capital w\"\n    },\n    {\n      \"name\": \"msansw\",\n      \"unusual\": true,\n      \"detail\": \"𝗐\",\n      \"doc\": \"Mathematical sans-serif small w\"\n    },\n    {\n      \"name\": \"msansX\",\n      \"unusual\": true,\n      \"detail\": \"𝖷\",\n      \"doc\": \"Mathematical sans-serif capital x\"\n    },\n    {\n      \"name\": \"msansx\",\n      \"unusual\": true,\n      \"detail\": \"𝗑\",\n      \"doc\": \"Mathematical sans-serif small x\"\n    },\n    {\n      \"name\": \"msansY\",\n      \"unusual\": true,\n      \"detail\": \"𝖸\",\n      \"doc\": \"Mathematical sans-serif capital y\"\n    },\n    {\n      \"name\": \"msansy\",\n      \"unusual\": true,\n      \"detail\": \"𝗒\",\n      \"doc\": \"Mathematical sans-serif small y\"\n    },\n    {\n      \"name\": \"msansZ\",\n      \"unusual\": true,\n      \"detail\": \"𝖹\",\n      \"doc\": \"Mathematical sans-serif capital z\"\n    },\n    {\n      \"name\": \"msansz\",\n      \"unusual\": true,\n      \"detail\": \"𝗓\",\n      \"doc\": \"Mathematical sans-serif small z\"\n    },\n    {\n      \"name\": \"msanszero\",\n      \"unusual\": true,\n      \"detail\": \"𝟢\",\n      \"doc\": \"Mathematical sans-serif digit 0\"\n    },\n    {\n      \"name\": \"mscrA\",\n      \"unusual\": true,\n      \"detail\": \"𝒜\",\n      \"doc\": \"Mathematical script capital a\"\n    },\n    {\n      \"name\": \"mscrB\",\n      \"unusual\": true,\n      \"detail\": \"ℬ\",\n      \"doc\": \"Bernoulli function (script capital b)\"\n    },\n    {\n      \"name\": \"mscrC\",\n      \"unusual\": true,\n      \"detail\": \"𝒞\",\n      \"doc\": \"Mathematical script capital c\"\n    },\n    {\n      \"name\": \"mscrD\",\n      \"unusual\": true,\n      \"detail\": \"𝒟\",\n      \"doc\": \"Mathematical script capital d\"\n    },\n    {\n      \"name\": \"mscrE\",\n      \"unusual\": true,\n      \"detail\": \"ℰ\",\n      \"doc\": \"/scr e, script capital e\"\n    },\n    {\n      \"name\": \"mscrF\",\n      \"unusual\": true,\n      \"detail\": \"ℱ\",\n      \"doc\": \"/scr f, script capital f\"\n    },\n    {\n      \"name\": \"mscrG\",\n      \"unusual\": true,\n      \"detail\": \"𝒢\",\n      \"doc\": \"Mathematical script capital g\"\n    },\n    {\n      \"name\": \"mscrH\",\n      \"unusual\": true,\n      \"detail\": \"ℋ\",\n      \"doc\": \"Hamiltonian (script capital h)\"\n    },\n    {\n      \"name\": \"mscrI\",\n      \"unusual\": true,\n      \"detail\": \"ℐ\",\n      \"doc\": \"/scr i, script capital i\"\n    },\n    {\n      \"name\": \"mscrJ\",\n      \"unusual\": true,\n      \"detail\": \"𝒥\",\n      \"doc\": \"Mathematical script capital j\"\n    },\n    {\n      \"name\": \"mscrK\",\n      \"unusual\": true,\n      \"detail\": \"𝒦\",\n      \"doc\": \"Mathematical script capital k\"\n    },\n    {\n      \"name\": \"mscrL\",\n      \"unusual\": true,\n      \"detail\": \"ℒ\",\n      \"doc\": \"Lagrangian (script capital l)\"\n    },\n    {\n      \"name\": \"mscrM\",\n      \"unusual\": true,\n      \"detail\": \"ℳ\",\n      \"doc\": \"Physics m-matrix (script capital m)\"\n    },\n    {\n      \"name\": \"mscrN\",\n      \"unusual\": true,\n      \"detail\": \"𝒩\",\n      \"doc\": \"Mathematical script capital n\"\n    },\n    {\n      \"name\": \"mscrO\",\n      \"unusual\": true,\n      \"detail\": \"𝒪\",\n      \"doc\": \"Mathematical script capital o\"\n    },\n    {\n      \"name\": \"mscrP\",\n      \"unusual\": true,\n      \"detail\": \"𝒫\",\n      \"doc\": \"Mathematical script capital p\"\n    },\n    {\n      \"name\": \"mscrQ\",\n      \"unusual\": true,\n      \"detail\": \"𝒬\",\n      \"doc\": \"Mathematical script capital q\"\n    },\n    {\n      \"name\": \"mscrR\",\n      \"unusual\": true,\n      \"detail\": \"ℛ\",\n      \"doc\": \"/scr r, script capital r\"\n    },\n    {\n      \"name\": \"mscrS\",\n      \"unusual\": true,\n      \"detail\": \"𝒮\",\n      \"doc\": \"Mathematical script capital s\"\n    },\n    {\n      \"name\": \"mscrT\",\n      \"unusual\": true,\n      \"detail\": \"𝒯\",\n      \"doc\": \"Mathematical script capital t\"\n    },\n    {\n      \"name\": \"mscrU\",\n      \"unusual\": true,\n      \"detail\": \"𝒰\",\n      \"doc\": \"Mathematical script capital u\"\n    },\n    {\n      \"name\": \"mscrV\",\n      \"unusual\": true,\n      \"detail\": \"𝒱\",\n      \"doc\": \"Mathematical script capital v\"\n    },\n    {\n      \"name\": \"mscrW\",\n      \"unusual\": true,\n      \"detail\": \"𝒲\",\n      \"doc\": \"Mathematical script capital w\"\n    },\n    {\n      \"name\": \"mscrX\",\n      \"unusual\": true,\n      \"detail\": \"𝒳\",\n      \"doc\": \"Mathematical script capital x\"\n    },\n    {\n      \"name\": \"mscrY\",\n      \"unusual\": true,\n      \"detail\": \"𝒴\",\n      \"doc\": \"Mathematical script capital y\"\n    },\n    {\n      \"name\": \"mscrZ\",\n      \"unusual\": true,\n      \"detail\": \"𝒵\",\n      \"doc\": \"Mathematical script capital z\"\n    },\n    {\n      \"name\": \"mttA\",\n      \"unusual\": true,\n      \"detail\": \"𝙰\",\n      \"doc\": \"Mathematical monospace capital a\"\n    },\n    {\n      \"name\": \"mtta\",\n      \"unusual\": true,\n      \"detail\": \"𝚊\",\n      \"doc\": \"Mathematical monospace small a\"\n    },\n    {\n      \"name\": \"mttB\",\n      \"unusual\": true,\n      \"detail\": \"𝙱\",\n      \"doc\": \"Mathematical monospace capital b\"\n    },\n    {\n      \"name\": \"mttb\",\n      \"unusual\": true,\n      \"detail\": \"𝚋\",\n      \"doc\": \"Mathematical monospace small b\"\n    },\n    {\n      \"name\": \"mttC\",\n      \"unusual\": true,\n      \"detail\": \"𝙲\",\n      \"doc\": \"Mathematical monospace capital c\"\n    },\n    {\n      \"name\": \"mttc\",\n      \"unusual\": true,\n      \"detail\": \"𝚌\",\n      \"doc\": \"Mathematical monospace small c\"\n    },\n    {\n      \"name\": \"mttD\",\n      \"unusual\": true,\n      \"detail\": \"𝙳\",\n      \"doc\": \"Mathematical monospace capital d\"\n    },\n    {\n      \"name\": \"mttd\",\n      \"unusual\": true,\n      \"detail\": \"𝚍\",\n      \"doc\": \"Mathematical monospace small d\"\n    },\n    {\n      \"name\": \"mttE\",\n      \"unusual\": true,\n      \"detail\": \"𝙴\",\n      \"doc\": \"Mathematical monospace capital e\"\n    },\n    {\n      \"name\": \"mtte\",\n      \"unusual\": true,\n      \"detail\": \"𝚎\",\n      \"doc\": \"Mathematical monospace small e\"\n    },\n    {\n      \"name\": \"mtteight\",\n      \"unusual\": true,\n      \"detail\": \"𝟾\",\n      \"doc\": \"Mathematical monospace digit 8\"\n    },\n    {\n      \"name\": \"mttF\",\n      \"unusual\": true,\n      \"detail\": \"𝙵\",\n      \"doc\": \"Mathematical monospace capital f\"\n    },\n    {\n      \"name\": \"mttf\",\n      \"unusual\": true,\n      \"detail\": \"𝚏\",\n      \"doc\": \"Mathematical monospace small f\"\n    },\n    {\n      \"name\": \"mttfive\",\n      \"unusual\": true,\n      \"detail\": \"𝟻\",\n      \"doc\": \"Mathematical monospace digit 5\"\n    },\n    {\n      \"name\": \"mttfour\",\n      \"unusual\": true,\n      \"detail\": \"𝟺\",\n      \"doc\": \"Mathematical monospace digit 4\"\n    },\n    {\n      \"name\": \"mttG\",\n      \"unusual\": true,\n      \"detail\": \"𝙶\",\n      \"doc\": \"Mathematical monospace capital g\"\n    },\n    {\n      \"name\": \"mttg\",\n      \"unusual\": true,\n      \"detail\": \"𝚐\",\n      \"doc\": \"Mathematical monospace small g\"\n    },\n    {\n      \"name\": \"mttH\",\n      \"unusual\": true,\n      \"detail\": \"𝙷\",\n      \"doc\": \"Mathematical monospace capital h\"\n    },\n    {\n      \"name\": \"mtth\",\n      \"unusual\": true,\n      \"detail\": \"𝚑\",\n      \"doc\": \"Mathematical monospace small h\"\n    },\n    {\n      \"name\": \"mttI\",\n      \"unusual\": true,\n      \"detail\": \"𝙸\",\n      \"doc\": \"Mathematical monospace capital i\"\n    },\n    {\n      \"name\": \"mtti\",\n      \"unusual\": true,\n      \"detail\": \"𝚒\",\n      \"doc\": \"Mathematical monospace small i\"\n    },\n    {\n      \"name\": \"mttJ\",\n      \"unusual\": true,\n      \"detail\": \"𝙹\",\n      \"doc\": \"Mathematical monospace capital j\"\n    },\n    {\n      \"name\": \"mttj\",\n      \"unusual\": true,\n      \"detail\": \"𝚓\",\n      \"doc\": \"Mathematical monospace small j\"\n    },\n    {\n      \"name\": \"mttK\",\n      \"unusual\": true,\n      \"detail\": \"𝙺\",\n      \"doc\": \"Mathematical monospace capital k\"\n    },\n    {\n      \"name\": \"mttk\",\n      \"unusual\": true,\n      \"detail\": \"𝚔\",\n      \"doc\": \"Mathematical monospace small k\"\n    },\n    {\n      \"name\": \"mttL\",\n      \"unusual\": true,\n      \"detail\": \"𝙻\",\n      \"doc\": \"Mathematical monospace capital l\"\n    },\n    {\n      \"name\": \"mttl\",\n      \"unusual\": true,\n      \"detail\": \"𝚕\",\n      \"doc\": \"Mathematical monospace small l\"\n    },\n    {\n      \"name\": \"mttM\",\n      \"unusual\": true,\n      \"detail\": \"𝙼\",\n      \"doc\": \"Mathematical monospace capital m\"\n    },\n    {\n      \"name\": \"mttm\",\n      \"unusual\": true,\n      \"detail\": \"𝚖\",\n      \"doc\": \"Mathematical monospace small m\"\n    },\n    {\n      \"name\": \"mttN\",\n      \"unusual\": true,\n      \"detail\": \"𝙽\",\n      \"doc\": \"Mathematical monospace capital n\"\n    },\n    {\n      \"name\": \"mttn\",\n      \"unusual\": true,\n      \"detail\": \"𝚗\",\n      \"doc\": \"Mathematical monospace small n\"\n    },\n    {\n      \"name\": \"mttnine\",\n      \"unusual\": true,\n      \"detail\": \"𝟿\",\n      \"doc\": \"Mathematical monospace digit 9\"\n    },\n    {\n      \"name\": \"mttO\",\n      \"unusual\": true,\n      \"detail\": \"𝙾\",\n      \"doc\": \"Mathematical monospace capital o\"\n    },\n    {\n      \"name\": \"mtto\",\n      \"unusual\": true,\n      \"detail\": \"𝚘\",\n      \"doc\": \"Mathematical monospace small o\"\n    },\n    {\n      \"name\": \"mttone\",\n      \"unusual\": true,\n      \"detail\": \"𝟷\",\n      \"doc\": \"Mathematical monospace digit 1\"\n    },\n    {\n      \"name\": \"mttP\",\n      \"unusual\": true,\n      \"detail\": \"𝙿\",\n      \"doc\": \"Mathematical monospace capital p\"\n    },\n    {\n      \"name\": \"mttp\",\n      \"unusual\": true,\n      \"detail\": \"𝚙\",\n      \"doc\": \"Mathematical monospace small p\"\n    },\n    {\n      \"name\": \"mttQ\",\n      \"unusual\": true,\n      \"detail\": \"𝚀\",\n      \"doc\": \"Mathematical monospace capital q\"\n    },\n    {\n      \"name\": \"mttq\",\n      \"unusual\": true,\n      \"detail\": \"𝚚\",\n      \"doc\": \"Mathematical monospace small q\"\n    },\n    {\n      \"name\": \"mttR\",\n      \"unusual\": true,\n      \"detail\": \"𝚁\",\n      \"doc\": \"Mathematical monospace capital r\"\n    },\n    {\n      \"name\": \"mttr\",\n      \"unusual\": true,\n      \"detail\": \"𝚛\",\n      \"doc\": \"Mathematical monospace small r\"\n    },\n    {\n      \"name\": \"mttS\",\n      \"unusual\": true,\n      \"detail\": \"𝚂\",\n      \"doc\": \"Mathematical monospace capital s\"\n    },\n    {\n      \"name\": \"mtts\",\n      \"unusual\": true,\n      \"detail\": \"𝚜\",\n      \"doc\": \"Mathematical monospace small s\"\n    },\n    {\n      \"name\": \"mttseven\",\n      \"unusual\": true,\n      \"detail\": \"𝟽\",\n      \"doc\": \"Mathematical monospace digit 7\"\n    },\n    {\n      \"name\": \"mttsix\",\n      \"unusual\": true,\n      \"detail\": \"𝟼\",\n      \"doc\": \"Mathematical monospace digit 6\"\n    },\n    {\n      \"name\": \"mttT\",\n      \"unusual\": true,\n      \"detail\": \"𝚃\",\n      \"doc\": \"Mathematical monospace capital t\"\n    },\n    {\n      \"name\": \"mttt\",\n      \"unusual\": true,\n      \"detail\": \"𝚝\",\n      \"doc\": \"Mathematical monospace small t\"\n    },\n    {\n      \"name\": \"mttthree\",\n      \"unusual\": true,\n      \"detail\": \"𝟹\",\n      \"doc\": \"Mathematical monospace digit 3\"\n    },\n    {\n      \"name\": \"mtttwo\",\n      \"unusual\": true,\n      \"detail\": \"𝟸\",\n      \"doc\": \"Mathematical monospace digit 2\"\n    },\n    {\n      \"name\": \"mttU\",\n      \"unusual\": true,\n      \"detail\": \"𝚄\",\n      \"doc\": \"Mathematical monospace capital u\"\n    },\n    {\n      \"name\": \"mttu\",\n      \"unusual\": true,\n      \"detail\": \"𝚞\",\n      \"doc\": \"Mathematical monospace small u\"\n    },\n    {\n      \"name\": \"mttV\",\n      \"unusual\": true,\n      \"detail\": \"𝚅\",\n      \"doc\": \"Mathematical monospace capital v\"\n    },\n    {\n      \"name\": \"mttv\",\n      \"unusual\": true,\n      \"detail\": \"𝚟\",\n      \"doc\": \"Mathematical monospace small v\"\n    },\n    {\n      \"name\": \"mttW\",\n      \"unusual\": true,\n      \"detail\": \"𝚆\",\n      \"doc\": \"Mathematical monospace capital w\"\n    },\n    {\n      \"name\": \"mttw\",\n      \"unusual\": true,\n      \"detail\": \"𝚠\",\n      \"doc\": \"Mathematical monospace small w\"\n    },\n    {\n      \"name\": \"mttX\",\n      \"unusual\": true,\n      \"detail\": \"𝚇\",\n      \"doc\": \"Mathematical monospace capital x\"\n    },\n    {\n      \"name\": \"mttx\",\n      \"unusual\": true,\n      \"detail\": \"𝚡\",\n      \"doc\": \"Mathematical monospace small x\"\n    },\n    {\n      \"name\": \"mttY\",\n      \"unusual\": true,\n      \"detail\": \"𝚈\",\n      \"doc\": \"Mathematical monospace capital y\"\n    },\n    {\n      \"name\": \"mtty\",\n      \"unusual\": true,\n      \"detail\": \"𝚢\",\n      \"doc\": \"Mathematical monospace small y\"\n    },\n    {\n      \"name\": \"mttZ\",\n      \"unusual\": true,\n      \"detail\": \"𝚉\",\n      \"doc\": \"Mathematical monospace capital z\"\n    },\n    {\n      \"name\": \"mttz\",\n      \"unusual\": true,\n      \"detail\": \"𝚣\",\n      \"doc\": \"Mathematical monospace small z\"\n    },\n    {\n      \"name\": \"mttzero\",\n      \"unusual\": true,\n      \"detail\": \"𝟶\",\n      \"doc\": \"Mathematical monospace digit 0\"\n    },\n    {\n      \"name\": \"Mu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupAlpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupalpha\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupBeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupbeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupChi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupchi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupDelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupdelta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupEpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupEta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupGamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupgamma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupIota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupiota\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupKappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupLambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muplambda\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupMu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupNu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupnu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupomega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupOmicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupomicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPhi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muppi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupPsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muppsi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupRho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muprho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupSigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupTau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muptau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"muptheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupUpsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupupsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarepsilon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarkappa\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarphi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarpi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarrho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarsigma\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvartheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupvarTheta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupXi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupxi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupZeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mupzeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Nu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"omicron\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Rho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tau\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upAlpha\",\n      \"unusual\": true,\n      \"detail\": \"Α\",\n      \"doc\": \"Capital alpha, greek\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"unusual\": true,\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upBeta\",\n      \"unusual\": true,\n      \"detail\": \"Β\",\n      \"doc\": \"Capital beta, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"unusual\": true,\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upChi\",\n      \"unusual\": true,\n      \"detail\": \"Χ\",\n      \"doc\": \"Capital chi, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"unusual\": true,\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"upDelta\",\n      \"unusual\": true,\n      \"detail\": \"Δ\",\n      \"doc\": \"\\\\delta (-slantedgreek), \\\\mathrm{\\\\delta}, capital delta, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"unusual\": true,\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upEpsilon\",\n      \"unusual\": true,\n      \"detail\": \"Ε\",\n      \"doc\": \"Capital epsilon, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upEta\",\n      \"unusual\": true,\n      \"detail\": \"Η\",\n      \"doc\": \"Capital eta, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"unusual\": true,\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upGamma\",\n      \"unusual\": true,\n      \"detail\": \"Γ\",\n      \"doc\": \"\\\\gamma (-slantedgreek), \\\\mathrm{\\\\gamma}, capital gamma, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"unusual\": true,\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upIota\",\n      \"unusual\": true,\n      \"detail\": \"Ι\",\n      \"doc\": \"Capital iota, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"unusual\": true,\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upKappa\",\n      \"unusual\": true,\n      \"detail\": \"Κ\",\n      \"doc\": \"Capital kappa, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"unusual\": true,\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"upLambda\",\n      \"unusual\": true,\n      \"detail\": \"Λ\",\n      \"doc\": \"\\\\lambda (-slantedgreek), \\\\mathrm{\\\\lambda}, capital lambda, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"unusual\": true,\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upMu\",\n      \"unusual\": true,\n      \"detail\": \"Μ\",\n      \"doc\": \"Capital mu, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"unusual\": true,\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upNu\",\n      \"unusual\": true,\n      \"detail\": \"Ν\",\n      \"doc\": \"Capital nu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"unusual\": true,\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upOmega\",\n      \"unusual\": true,\n      \"detail\": \"Ω\",\n      \"doc\": \"\\\\omega (-slantedgreek), \\\\mathrm{\\\\omega}, capital omega, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"unusual\": true,\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upOmicron\",\n      \"unusual\": true,\n      \"detail\": \"Ο\",\n      \"doc\": \"Capital omicron, greek\"\n    },\n    {\n      \"name\": \"upomicron\",\n      \"unusual\": true,\n      \"detail\": \"ο\",\n      \"doc\": \"Small omicron, greek\"\n    },\n    {\n      \"name\": \"upPhi\",\n      \"unusual\": true,\n      \"detail\": \"Φ\",\n      \"doc\": \"\\\\phi (-slantedgreek), \\\\mathrm{\\\\phi}, capital phi, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"unusual\": true,\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"upPi\",\n      \"unusual\": true,\n      \"detail\": \"Π\",\n      \"doc\": \"\\\\pi (-slantedgreek), \\\\mathrm{\\\\pi}, capital pi, greek\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"unusual\": true,\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"upPsi\",\n      \"unusual\": true,\n      \"detail\": \"Ψ\",\n      \"doc\": \"\\\\psi (-slantedgreek), \\\\mathrm{\\\\psi}, capital psi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"unusual\": true,\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"upRho\",\n      \"unusual\": true,\n      \"detail\": \"Ρ\",\n      \"doc\": \"Capital rho, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"unusual\": true,\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upSigma\",\n      \"unusual\": true,\n      \"detail\": \"Σ\",\n      \"doc\": \"\\\\sigma (-slantedgreek), \\\\mathrm{\\\\sigma}, capital sigma, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"unusual\": true,\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"upTau\",\n      \"unusual\": true,\n      \"detail\": \"Τ\",\n      \"doc\": \"Capital tau, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"unusual\": true,\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"upTheta\",\n      \"unusual\": true,\n      \"detail\": \"Θ\",\n      \"doc\": \"\\\\theta (-slantedgreek), \\\\mathrm{\\\\theta}, capital theta, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"unusual\": true,\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upUpsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϒ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon}, greek upsilon with hook symbol\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"unusual\": true,\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"unusual\": true,\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarkappa\",\n      \"unusual\": true,\n      \"detail\": \"ϰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greek kappa symbol (round)\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"unusual\": true,\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"unusual\": true,\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"unusual\": true,\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"unusual\": true,\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvarTheta\",\n      \"unusual\": true,\n      \"detail\": \"ϴ\",\n      \"doc\": \"X \\\\vartheta (amssymb), greek capital theta symbol\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"unusual\": true,\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upXi\",\n      \"unusual\": true,\n      \"detail\": \"Ξ\",\n      \"doc\": \"\\\\xi (-slantedgreek), \\\\mathrm{\\\\xi}, capital xi, greek\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"unusual\": true,\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upZeta\",\n      \"unusual\": true,\n      \"detail\": \"Ζ\",\n      \"doc\": \"Capital zeta, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"unusual\": true,\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    },\n    {\n      \"name\": \"varkappa\"\n    },\n    {\n      \"name\": \"Zeta\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"acwopencirclearrow\",\n      \"detail\": \"↺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftturn (wasysym), anticlockwise open circle arrow\"\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"approxeq\",\n      \"detail\": \"≊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Approximate, equals\"\n    },\n    {\n      \"name\": \"approxident\",\n      \"detail\": \"≋\",\n      \"doc\": \"Approximately identical to\"\n    },\n    {\n      \"name\": \"arceq\",\n      \"detail\": \"≘\",\n      \"doc\": \"Arc, equals; corresponds to\"\n    },\n    {\n      \"name\": \"assert\",\n      \"detail\": \"⊦\",\n      \"doc\": \"\\\\vdash, assertion (vertical, short dash)\"\n    },\n    {\n      \"name\": \"asteraccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asteraccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃰\",\n      \"doc\": \"Combining asterisk above\"\n    },\n    {\n      \"name\": \"awint\",\n      \"detail\": \"⨑\",\n      \"doc\": \"Anticlockwise integration\"\n    },\n    {\n      \"name\": \"backcong\",\n      \"detail\": \"≌\",\n      \"doc\": \"All equal to\"\n    },\n    {\n      \"name\": \"backsim\",\n      \"detail\": \"∽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar\"\n    },\n    {\n      \"name\": \"backsimeq\",\n      \"detail\": \"⋍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Reverse similar, equals\"\n    },\n    {\n      \"name\": \"barvee\",\n      \"detail\": \"⊽\",\n      \"doc\": \"Bar, vee (large vee)\"\n    },\n    {\n      \"name\": \"barwedge\",\n      \"detail\": \"⊼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical nand (bar over wedge)\"\n    },\n    {\n      \"name\": \"because\",\n      \"detail\": \"∵ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Because\"\n    },\n    {\n      \"name\": \"beth\",\n      \"detail\": \"ℶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Beth, hebrew\"\n    },\n    {\n      \"name\": \"between\",\n      \"detail\": \"≬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Between\"\n    },\n    {\n      \"name\": \"bigblacktriangledown\",\n      \"detail\": \"▼\",\n      \"doc\": \"Big down triangle, filled\"\n    },\n    {\n      \"name\": \"bigblacktriangleup\",\n      \"detail\": \"▲\",\n      \"doc\": \"Black up-pointing triangle\"\n    },\n    {\n      \"name\": \"bigbot\",\n      \"detail\": \"⟘\",\n      \"doc\": \"Large up tack\"\n    },\n    {\n      \"name\": \"bigcupdot\",\n      \"detail\": \"⨃\",\n      \"doc\": \"N-ary union operator with dot\"\n    },\n    {\n      \"name\": \"bigsqcap\",\n      \"detail\": \"⨅ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary square intersection operator\"\n    },\n    {\n      \"name\": \"bigtimes\",\n      \"detail\": \"⨉ (\\\"txfonts\\\" command)\",\n      \"doc\": \"N-ary times operator\"\n    },\n    {\n      \"name\": \"bigtop\",\n      \"detail\": \"⟙\",\n      \"doc\": \"Large down tack\"\n    },\n    {\n      \"name\": \"blacktriangleleft\",\n      \"detail\": \"◀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleleft (fourier -mathabx), (large) left triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangleright\",\n      \"detail\": \"▶ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\blacktriangleright (fourier -mathabx), (large) right triangle, filled\"\n    },\n    {\n      \"name\": \"blockfull\",\n      \"detail\": \"█\",\n      \"doc\": \"Full block\"\n    },\n    {\n      \"name\": \"blockhalfshaded\",\n      \"detail\": \"▒\",\n      \"doc\": \"50\\\\% shaded block\"\n    },\n    {\n      \"name\": \"blockqtrshaded\",\n      \"detail\": \"░\",\n      \"doc\": \"25\\\\% shaded block\"\n    },\n    {\n      \"name\": \"blockthreeqtrshaded\",\n      \"detail\": \"▓\",\n      \"doc\": \"75\\\\% shaded block\"\n    },\n    {\n      \"name\": \"boxdot\",\n      \"detail\": \"⊡ (\\\"amssymb stmaryrd\\\" command)\",\n      \"doc\": \"/dotsquare /boxdot b: small dot in box\"\n    },\n    {\n      \"name\": \"boxminus\",\n      \"detail\": \"⊟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Minus sign in box\"\n    },\n    {\n      \"name\": \"boxplus\",\n      \"detail\": \"⊞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign in box\"\n    },\n    {\n      \"name\": \"boxtimes\",\n      \"detail\": \"⊠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Multiply sign in box\"\n    },\n    {\n      \"name\": \"bumpeq\",\n      \"detail\": \"≏ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals, equals\"\n    },\n    {\n      \"name\": \"Bumpeq\",\n      \"detail\": \"≎ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Bumpy equals\"\n    },\n    {\n      \"name\": \"Cap\",\n      \"detail\": \"⋒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cap /doublecap b: double intersection\"\n    },\n    {\n      \"name\": \"carriagereturn\",\n      \"detail\": \"↵\",\n      \"doc\": \"Downwards arrow with corner leftward = carriage return\"\n    },\n    {\n      \"name\": \"checkmark\",\n      \"detail\": \"✓ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\ballotcheck (arevmath), tick, check mark\"\n    },\n    {\n      \"name\": \"circeq\",\n      \"detail\": \"≗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, equals\"\n    },\n    {\n      \"name\": \"circledast\",\n      \"detail\": \"⊛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Asterisk in circle\"\n    },\n    {\n      \"name\": \"circledcirc\",\n      \"detail\": \"⊚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Small circle in circle\"\n    },\n    {\n      \"name\": \"circleddash\",\n      \"detail\": \"⊝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Hyphen in circle\"\n    },\n    {\n      \"name\": \"circledequal\",\n      \"detail\": \"⊜\",\n      \"doc\": \"Equal in circle\"\n    },\n    {\n      \"name\": \"Colon\",\n      \"detail\": \"∷ (\\\"wrisym\\\" command)\",\n      \"doc\": \"::, two colons\"\n    },\n    {\n      \"name\": \"coloneq\",\n      \"detail\": \"≔ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\coloneqq (txfonts), \\\\setdelayed (wrisym), := colon, equals\"\n    },\n    {\n      \"name\": \"complement\",\n      \"detail\": \"∁ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Complement sign\"\n    },\n    {\n      \"name\": \"concavediamond\",\n      \"detail\": \"⟡\",\n      \"doc\": \"White concave-sided diamond\"\n    },\n    {\n      \"name\": \"concavediamondtickleft\",\n      \"detail\": \"⟢\",\n      \"doc\": \"White concave-sided diamond with leftwards tick\"\n    },\n    {\n      \"name\": \"concavediamondtickright\",\n      \"detail\": \"⟣\",\n      \"doc\": \"White concave-sided diamond with rightwards tick\"\n    },\n    {\n      \"name\": \"Cup\",\n      \"detail\": \"⋓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/cup /doublecup b: double union\"\n    },\n    {\n      \"name\": \"cupdot\",\n      \"detail\": \"⊍\",\n      \"doc\": \"Union, with dot\"\n    },\n    {\n      \"name\": \"cupleftarrow\",\n      \"detail\": \"⊌\",\n      \"doc\": \"Multiset\"\n    },\n    {\n      \"name\": \"curlyeqprec\",\n      \"detail\": \"⋞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, precedes\"\n    },\n    {\n      \"name\": \"curlyeqsucc\",\n      \"detail\": \"⋟ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly equals, succeeds\"\n    },\n    {\n      \"name\": \"curlyvee\",\n      \"detail\": \"⋎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical or\"\n    },\n    {\n      \"name\": \"curlywedge\",\n      \"detail\": \"⋏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Curly logical and\"\n    },\n    {\n      \"name\": \"curvearrowleft\",\n      \"detail\": \"↶ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Left curved arrow\"\n    },\n    {\n      \"name\": \"curvearrowright\",\n      \"detail\": \"↷ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Right curved arrow\"\n    },\n    {\n      \"name\": \"cwopencirclearrow\",\n      \"detail\": \"↻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightturn (wasysym), clockwise open circle arrow\"\n    },\n    {\n      \"name\": \"daleth\",\n      \"detail\": \"ℸ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Daleth, hebrew\"\n    },\n    {\n      \"name\": \"dashcolon\",\n      \"detail\": \"∹ (\\\"txfonts -mathabx\\\" command)\",\n      \"doc\": \"-:, excess\"\n    },\n    {\n      \"name\": \"DashVDash\",\n      \"detail\": \"⟚\",\n      \"doc\": \"Left and right double turnstile\"\n    },\n    {\n      \"name\": \"dashVdash\",\n      \"detail\": \"⟛\",\n      \"doc\": \"Left and right tack\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"divideontimes\",\n      \"detail\": \"⋇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Division on times\"\n    },\n    {\n      \"name\": \"Doteq\",\n      \"detail\": \"≑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\doteqdot (amssymb), /doteq r: equals, even dots\"\n    },\n    {\n      \"name\": \"dotminus\",\n      \"detail\": \"∸\",\n      \"doc\": \"Minus sign, dot above\"\n    },\n    {\n      \"name\": \"dotplus\",\n      \"detail\": \"∔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Plus sign, dot above\"\n    },\n    {\n      \"name\": \"dotsminusdots\",\n      \"detail\": \"∺\",\n      \"doc\": \"Minus with four dots, geometric proportion\"\n    },\n    {\n      \"name\": \"dottedsquare\",\n      \"detail\": \"⬚\",\n      \"doc\": \"Dotted square\"\n    },\n    {\n      \"name\": \"downdownarrows\",\n      \"detail\": \"⇊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two down arrows\"\n    },\n    {\n      \"name\": \"downharpoonleft\",\n      \"detail\": \"⇃ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftdown (wrisym), down harpoon-left\"\n    },\n    {\n      \"name\": \"downharpoonright\",\n      \"detail\": \"⇂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonrightdown (wrisym), down harpoon-right\"\n    },\n    {\n      \"name\": \"downuparrows\",\n      \"detail\": \"⇵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\downarrowuparrow (wrisym), downwards arrow leftwards of upwards arrow\"\n    },\n    {\n      \"name\": \"downwhitearrow\",\n      \"detail\": \"⇩\",\n      \"doc\": \"Downwards white arrow\"\n    },\n    {\n      \"name\": \"enclosecircle\",\n      \"detail\": \"x⃝\",\n      \"doc\": \"Combining enclosing circle\"\n    },\n    {\n      \"name\": \"enclosediamond\",\n      \"detail\": \"x⃟\",\n      \"doc\": \"Combining enclosing diamond\"\n    },\n    {\n      \"name\": \"enclosesquare\",\n      \"detail\": \"x⃞\",\n      \"doc\": \"Combining enclosing square\"\n    },\n    {\n      \"name\": \"enclosetriangle\",\n      \"detail\": \"x⃤\",\n      \"doc\": \"Combining enclosing upward pointing triangle\"\n    },\n    {\n      \"name\": \"eqcirc\",\n      \"detail\": \"≖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle on equals sign\"\n    },\n    {\n      \"name\": \"eqcolon\",\n      \"detail\": \"≕ (\\\"mathabx -txfonts\\\" command)\",\n      \"doc\": \"\\\\eqqcolon (txfonts), =:, equals, colon\"\n    },\n    {\n      \"name\": \"eqdef\",\n      \"detail\": \"≝\",\n      \"doc\": \"Equals by definition\"\n    },\n    {\n      \"name\": \"eqgtr\",\n      \"detail\": \"⋝\",\n      \"doc\": \"Equal-or-greater\"\n    },\n    {\n      \"name\": \"eqless\",\n      \"detail\": \"⋜\",\n      \"doc\": \"Equal-or-less\"\n    },\n    {\n      \"name\": \"eqsim\",\n      \"detail\": \"≂ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, similar\"\n    },\n    {\n      \"name\": \"eqslantgtr\",\n      \"detail\": \"⪖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqslantless\",\n      \"detail\": \"⪕ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"equalparallel\",\n      \"detail\": \"⋕ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Parallel, equal; equal or parallel\"\n    },\n    {\n      \"name\": \"Equiv\",\n      \"detail\": \"≣\",\n      \"doc\": \"Strict equivalence (4 lines)\"\n    },\n    {\n      \"name\": \"Eulerconst\",\n      \"detail\": \"ℇ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Euler constant\"\n    },\n    {\n      \"name\": \"fallingdotseq\",\n      \"detail\": \"≒ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, falling dots\"\n    },\n    {\n      \"name\": \"geqq\",\n      \"detail\": \"≧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, double equals\"\n    },\n    {\n      \"name\": \"geqslant\",\n      \"detail\": \"⩾ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Greater-than or slanted equal to\"\n    },\n    {\n      \"name\": \"ggg\",\n      \"detail\": \"⋙ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple greater-than\"\n    },\n    {\n      \"name\": \"gimel\",\n      \"detail\": \"ℷ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Gimel, hebrew\"\n    },\n    {\n      \"name\": \"gnapprox\",\n      \"detail\": \"⪊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and not approximate\"\n    },\n    {\n      \"name\": \"gneq\",\n      \"detail\": \"⪈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"gneqq\",\n      \"detail\": \"≩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not double equals\"\n    },\n    {\n      \"name\": \"gnsim\",\n      \"detail\": \"⋧ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, not similar\"\n    },\n    {\n      \"name\": \"gtrapprox\",\n      \"detail\": \"⪆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than or approximate\"\n    },\n    {\n      \"name\": \"gtrdot\",\n      \"detail\": \"⋗ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater than, with dot\"\n    },\n    {\n      \"name\": \"gtreqless\",\n      \"detail\": \"⋛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater, equals, less\"\n    },\n    {\n      \"name\": \"gtreqqless\",\n      \"detail\": \"⪌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Greater-than above double-line equal above less-than\"\n    },\n    {\n      \"name\": \"gtrless\",\n      \"detail\": \"≷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\greaterless (wrisym), greater, less\"\n    },\n    {\n      \"name\": \"gtrsim\",\n      \"detail\": \"≳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprge (wasysym), \\\\greatertilde (wrisym), greater, similar\"\n    },\n    {\n      \"name\": \"hermitmatrix\",\n      \"detail\": \"⊹\",\n      \"doc\": \"Hermitian conjugate matrix\"\n    },\n    {\n      \"name\": \"horizbar\",\n      \"detail\": \"―\",\n      \"doc\": \"Horizontal bar\"\n    },\n    {\n      \"name\": \"hrectangle\",\n      \"detail\": \"▭\",\n      \"doc\": \"Horizontal rectangle, open\"\n    },\n    {\n      \"name\": \"hrectangleblack\",\n      \"detail\": \"▬\",\n      \"doc\": \"Black rectangle\"\n    },\n    {\n      \"name\": \"hslash\",\n      \"detail\": \"ℏ (\\\"amssymb fourier arevmath\\\" command)\",\n      \"doc\": \"=\\\\hbar (wrisym), #\\\\hbar, planck's h over 2pi\"\n    },\n    {\n      \"name\": \"imageof\",\n      \"detail\": \"⊷ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Image of\"\n    },\n    {\n      \"name\": \"increment\",\n      \"detail\": \"∆\",\n      \"doc\": \"\\\\mathrm{\\\\delta}, laplacian (delta; nabla square)\"\n    },\n    {\n      \"name\": \"intbottom\",\n      \"unusual\": true,\n      \"detail\": \"⌡\",\n      \"doc\": \"Bottom half integral\"\n    },\n    {\n      \"name\": \"intclockwise\",\n      \"detail\": \"∱\",\n      \"doc\": \"Clockwise integral\"\n    },\n    {\n      \"name\": \"intercal\",\n      \"detail\": \"⊺ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Intercal\"\n    },\n    {\n      \"name\": \"inttop\",\n      \"unusual\": true,\n      \"detail\": \"⌠\",\n      \"doc\": \"Top half integral\"\n    },\n    {\n      \"name\": \"invlazys\",\n      \"detail\": \"∾\",\n      \"doc\": \"Most positive, inverted lazy s\"\n    },\n    {\n      \"name\": \"invnot\",\n      \"detail\": \"⌐ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Reverse not\"\n    },\n    {\n      \"name\": \"kernelcontraction\",\n      \"detail\": \"∻\",\n      \"doc\": \"Homothetic\"\n    },\n    {\n      \"name\": \"lAngle\",\n      \"detail\": \"⟪ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical left double angle bracket, left chevron bracket\"\n    },\n    {\n      \"name\": \"lbracelend\",\n      \"unusual\": true,\n      \"detail\": \"⎩\",\n      \"doc\": \"Left curly bracket lower hook\"\n    },\n    {\n      \"name\": \"lbracemid\",\n      \"unusual\": true,\n      \"detail\": \"⎨\",\n      \"doc\": \"Left curly bracket middle piece\"\n    },\n    {\n      \"name\": \"lbraceuend\",\n      \"unusual\": true,\n      \"detail\": \"⎧\",\n      \"doc\": \"Left curly bracket upper hook\"\n    },\n    {\n      \"name\": \"lBrack\",\n      \"detail\": \"⟦ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\lbrack (mathbbol), \\\\lbag (oz -stmaryrd), mathematical left white square bracket\"\n    },\n    {\n      \"name\": \"lbrackextender\",\n      \"unusual\": true,\n      \"detail\": \"⎢\",\n      \"doc\": \"Left square bracket extension\"\n    },\n    {\n      \"name\": \"lbracklend\",\n      \"unusual\": true,\n      \"detail\": \"⎣\",\n      \"doc\": \"Left square bracket lower corner\"\n    },\n    {\n      \"name\": \"lbrackuend\",\n      \"unusual\": true,\n      \"detail\": \"⎡\",\n      \"doc\": \"Left square bracket upper corner\"\n    },\n    {\n      \"name\": \"Ldsh\",\n      \"detail\": \"↲ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Left down angled arrow\"\n    },\n    {\n      \"name\": \"leftarrowtail\",\n      \"detail\": \"↢ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-tailed\"\n    },\n    {\n      \"name\": \"leftharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃐ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining left harpoon above\"\n    },\n    {\n      \"name\": \"leftleftarrows\",\n      \"detail\": \"⇇ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two left arrows\"\n    },\n    {\n      \"name\": \"leftrightarrows\",\n      \"detail\": \"⇆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\leftrightarrow (wrisym), left arrow over right arrow\"\n    },\n    {\n      \"name\": \"leftrightharpoons\",\n      \"detail\": \"⇋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\revequilibrium (wrisym), left harpoon over right\"\n    },\n    {\n      \"name\": \"leftrightsquigarrow\",\n      \"detail\": \"↭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left and right arr-wavy\"\n    },\n    {\n      \"name\": \"leftsquigarrow\",\n      \"detail\": \"⇜ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"leftthreearrows\",\n      \"detail\": \"⬱\",\n      \"doc\": \"Three leftwards arrows\"\n    },\n    {\n      \"name\": \"leftthreetimes\",\n      \"detail\": \"⋋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left semidirect product\"\n    },\n    {\n      \"name\": \"leftwhitearrow\",\n      \"detail\": \"⇦\",\n      \"doc\": \"Leftwards white arrow\"\n    },\n    {\n      \"name\": \"leqq\",\n      \"detail\": \"≦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, double equals\"\n    },\n    {\n      \"name\": \"leqslant\",\n      \"detail\": \"⩽ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Less-than or slanted equal to\"\n    },\n    {\n      \"name\": \"lessapprox\",\n      \"detail\": \"⪅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than or approximate\"\n    },\n    {\n      \"name\": \"lessdot\",\n      \"detail\": \"⋖ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less than, with dot\"\n    },\n    {\n      \"name\": \"lesseqgtr\",\n      \"detail\": \"⋚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, equals, greater\"\n    },\n    {\n      \"name\": \"lesseqqgtr\",\n      \"detail\": \"⪋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than above double-line equal above greater-than\"\n    },\n    {\n      \"name\": \"lessgtr\",\n      \"detail\": \"≶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, greater\"\n    },\n    {\n      \"name\": \"lesssim\",\n      \"detail\": \"≲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\apprle (wasysym), \\\\lesstilde (wrisym), less, similar\"\n    },\n    {\n      \"name\": \"lgwhtcircle\",\n      \"detail\": \"◯\",\n      \"doc\": \"Large circle\"\n    },\n    {\n      \"name\": \"linefeed\",\n      \"detail\": \"↴\",\n      \"doc\": \"Rightwards arrow with corner downwards\"\n    },\n    {\n      \"name\": \"llcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌞ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower left corner\"\n    },\n    {\n      \"name\": \"Lleftarrow\",\n      \"detail\": \"⇚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triple arrow\"\n    },\n    {\n      \"name\": \"lll\",\n      \"detail\": \"⋘ (\\\"amssymb -mathabx\\\" command)\",\n      \"doc\": \"Triple less-than\"\n    },\n    {\n      \"name\": \"lnapprox\",\n      \"detail\": \"⪉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and not approximate\"\n    },\n    {\n      \"name\": \"lneq\",\n      \"detail\": \"⪇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less-than and single-line not equal to\"\n    },\n    {\n      \"name\": \"lneqq\",\n      \"detail\": \"≨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not double equals\"\n    },\n    {\n      \"name\": \"lnsim\",\n      \"detail\": \"⋦ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Less, not similar\"\n    },\n    {\n      \"name\": \"longdashv\",\n      \"detail\": \"⟞\",\n      \"doc\": \"Long right tack\"\n    },\n    {\n      \"name\": \"longleftsquigarrow\",\n      \"detail\": \"⬳\",\n      \"doc\": \"Long leftwards squiggle arrow\"\n    },\n    {\n      \"name\": \"longmapsfrom\",\n      \"detail\": \"⟻ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsfrom\",\n      \"detail\": \"⟽ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\longmappedfrom (kpfonts), long leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Longmapsto\",\n      \"detail\": \"⟾ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Long rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"longrightsquigarrow\",\n      \"detail\": \"⟿\",\n      \"doc\": \"Long rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"looparrowleft\",\n      \"detail\": \"↫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left arrow-looped\"\n    },\n    {\n      \"name\": \"looparrowright\",\n      \"detail\": \"↬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right arrow-looped\"\n    },\n    {\n      \"name\": \"lozengeminus\",\n      \"detail\": \"⟠\",\n      \"doc\": \"Lozenge divided by horizontal rule\"\n    },\n    {\n      \"name\": \"lparen\",\n      \"detail\": \"(\",\n      \"doc\": \"Left parenthesis\"\n    },\n    {\n      \"name\": \"lparenextender\",\n      \"unusual\": true,\n      \"detail\": \"⎜\",\n      \"doc\": \"Left parenthesis extension\"\n    },\n    {\n      \"name\": \"lparenlend\",\n      \"unusual\": true,\n      \"detail\": \"⎝\",\n      \"doc\": \"Left parenthesis lower hook\"\n    },\n    {\n      \"name\": \"lparenuend\",\n      \"unusual\": true,\n      \"detail\": \"⎛\",\n      \"doc\": \"Left parenthesis upper hook\"\n    },\n    {\n      \"name\": \"lrcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌟ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Lower right corner\"\n    },\n    {\n      \"name\": \"Lsh\",\n      \"detail\": \"↰ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip leftwards\"\n    },\n    {\n      \"name\": \"ltimes\",\n      \"detail\": \"⋉ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, left closed\"\n    },\n    {\n      \"name\": \"maltese\",\n      \"detail\": \"✠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Maltese cross\"\n    },\n    {\n      \"name\": \"mapsdown\",\n      \"detail\": \"↧ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, downward\"\n    },\n    {\n      \"name\": \"mapsfrom\",\n      \"detail\": \"↤ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), maps to, leftward\"\n    },\n    {\n      \"name\": \"Mapsfrom\",\n      \"detail\": \"⤆ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"\\\\mappedfrom (kpfonts), leftwards double arrow from bar\"\n    },\n    {\n      \"name\": \"Mapsto\",\n      \"detail\": \"⤇ (\\\"stmaryrd\\\" command)\",\n      \"doc\": \"Rightwards double arrow from bar\"\n    },\n    {\n      \"name\": \"mapsup\",\n      \"detail\": \"↥ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Maps to, upward\"\n    },\n    {\n      \"name\": \"mathexclam\"\n    },\n    {\n      \"name\": \"mathunderbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mathunderbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"mdlgblkcircle\",\n      \"detail\": \"● (\\\"wasysym\\\" command)\",\n      \"doc\": \"Circle, filled\"\n    },\n    {\n      \"name\": \"mdlgblksquare\",\n      \"detail\": \"■\",\n      \"doc\": \"Square, filled\"\n    },\n    {\n      \"name\": \"mdlgwhtcircle\",\n      \"detail\": \"○ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Medium large circle\"\n    },\n    {\n      \"name\": \"mdlgwhtlozenge\",\n      \"detail\": \"◊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Lozenge or total mark\"\n    },\n    {\n      \"name\": \"mdlgwhtsquare\",\n      \"detail\": \"□\",\n      \"doc\": \"Square, open\"\n    },\n    {\n      \"name\": \"measeq\",\n      \"detail\": \"≞\",\n      \"doc\": \"Measured by (m over equals)\"\n    },\n    {\n      \"name\": \"measuredangle\",\n      \"detail\": \"∡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Measured angle\"\n    },\n    {\n      \"name\": \"measuredrightangle\",\n      \"detail\": \"⊾\",\n      \"doc\": \"Right angle-measured [with arc]\"\n    },\n    {\n      \"name\": \"minus\",\n      \"detail\": \"−\",\n      \"doc\": \"Minus sign\"\n    },\n    {\n      \"name\": \"multimap\",\n      \"detail\": \"⊸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"/multimap a:\"\n    },\n    {\n      \"name\": \"multimapinv\",\n      \"detail\": \"⟜ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Left multimap\"\n    },\n    {\n      \"name\": \"napprox\",\n      \"detail\": \"≉ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not approximate\"\n    },\n    {\n      \"name\": \"nasymp\",\n      \"detail\": \"≭ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\nasymp (wrisym), not asymptotically equal to\"\n    },\n    {\n      \"name\": \"ncong\",\n      \"detail\": \"≇ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not congruent with\"\n    },\n    {\n      \"name\": \"Nearrow\",\n      \"detail\": \"⇗ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Ne pointing double arrow\"\n    },\n    {\n      \"name\": \"nequiv\",\n      \"detail\": \"≢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not identical with\"\n    },\n    {\n      \"name\": \"nexists\",\n      \"detail\": \"∄ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"\\\\nexi (oz), negated exists\"\n    },\n    {\n      \"name\": \"ngeq\",\n      \"detail\": \"≱ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\ngeqslant (fourier), not greater-than-or-equal\"\n    },\n    {\n      \"name\": \"ngtr\",\n      \"detail\": \"≯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not greater-than\"\n    },\n    {\n      \"name\": \"ngtrless\",\n      \"detail\": \"≹ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, less\"\n    },\n    {\n      \"name\": \"ngtrsim\",\n      \"detail\": \"≵ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not greater, similar\"\n    },\n    {\n      \"name\": \"nleftarrow\",\n      \"detail\": \"↚ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left arrow\"\n    },\n    {\n      \"name\": \"nLeftarrow\",\n      \"detail\": \"⇍ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implied by\"\n    },\n    {\n      \"name\": \"nleftrightarrow\",\n      \"detail\": \"↮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right arrow\"\n    },\n    {\n      \"name\": \"nLeftrightarrow\",\n      \"detail\": \"⇎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not left and right double arrows\"\n    },\n    {\n      \"name\": \"nleq\",\n      \"detail\": \"≰ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\nleqslant (fourier), not less-than-or-equal\"\n    },\n    {\n      \"name\": \"nless\",\n      \"detail\": \"≮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not less-than\"\n    },\n    {\n      \"name\": \"nlessgtr\",\n      \"detail\": \"≸ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, greater\"\n    },\n    {\n      \"name\": \"nlesssim\",\n      \"detail\": \"≴ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not less, similar\"\n    },\n    {\n      \"name\": \"nmid\",\n      \"detail\": \"∤ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Negated mid, does not divide\"\n    },\n    {\n      \"name\": \"nni\",\n      \"detail\": \"∌ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\notni (txfonts), \\\\notowner (mathabx), \\\\notowns (fourier), negated contains, variant\"\n    },\n    {\n      \"name\": \"notaccent\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"notaccent{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nparallel\",\n      \"detail\": \"∦ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not parallel\"\n    },\n    {\n      \"name\": \"nprec\",\n      \"detail\": \"⊀ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not precedes\"\n    },\n    {\n      \"name\": \"npreccurlyeq\",\n      \"detail\": \"⋠ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Does not precede or equal\"\n    },\n    {\n      \"name\": \"nrightarrow\",\n      \"detail\": \"↛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not right arrow\"\n    },\n    {\n      \"name\": \"nRightarrow\",\n      \"detail\": \"⇏ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not implies\"\n    },\n    {\n      \"name\": \"nsim\",\n      \"detail\": \"≁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not similar\"\n    },\n    {\n      \"name\": \"nsime\",\n      \"detail\": \"≄ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Not similar, equals\"\n    },\n    {\n      \"name\": \"nsimeq\"\n    },\n    {\n      \"name\": \"nsqsubseteq\",\n      \"detail\": \"⋢ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square subset, equals\"\n    },\n    {\n      \"name\": \"nsqsupseteq\",\n      \"detail\": \"⋣ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not, square superset, equals\"\n    },\n    {\n      \"name\": \"nsubset\",\n      \"detail\": \"⊄ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not subset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsubseteq\",\n      \"detail\": \"⊈ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not subset, equals\"\n    },\n    {\n      \"name\": \"nsucc\",\n      \"detail\": \"⊁ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds\"\n    },\n    {\n      \"name\": \"nsucccurlyeq\",\n      \"detail\": \"⋡ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not succeeds, curly equals\"\n    },\n    {\n      \"name\": \"nsupset\",\n      \"detail\": \"⊅ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Not superset, variant [slash negation]\"\n    },\n    {\n      \"name\": \"nsupseteq\",\n      \"detail\": \"⊉ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Not superset, equals\"\n    },\n    {\n      \"name\": \"ntrianglelefteq\",\n      \"detail\": \"⋬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunlhd (wrisym), not left triangle, equals\"\n    },\n    {\n      \"name\": \"ntrianglerighteq\",\n      \"detail\": \"⋭ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\nunrhd (wrisym), not right triangle, equals\"\n    },\n    {\n      \"name\": \"nvartriangleleft\"\n    },\n    {\n      \"name\": \"nvartriangleright\"\n    },\n    {\n      \"name\": \"nvdash\",\n      \"detail\": \"⊬ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not vertical, dash\"\n    },\n    {\n      \"name\": \"nvDash\",\n      \"detail\": \"⊭ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Not vertical, double dash\"\n    },\n    {\n      \"name\": \"nVdash\",\n      \"detail\": \"⊮ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vertical, dash\"\n    },\n    {\n      \"name\": \"nVDash\",\n      \"detail\": \"⊯ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Not double vert, double dash\"\n    },\n    {\n      \"name\": \"Nwarrow\",\n      \"detail\": \"⇖ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Nw pointing double arrow\"\n    },\n    {\n      \"name\": \"obrbrak\",\n      \"detail\": \"⏠\",\n      \"doc\": \"Top tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"ocirc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ocirc{${1:arg}}\"\n      },\n      \"detail\": \" ̊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\ring (yhmath), ring\"\n    },\n    {\n      \"name\": \"oiiint\",\n      \"detail\": \"∰ (\\\"txfonts fourier\\\" command)\",\n      \"doc\": \"Triple contour integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"ointctrclockwise\",\n      \"detail\": \"∳ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\cntclockoint (wrisym), contour integral, anticlockwise\"\n    },\n    {\n      \"name\": \"origof\",\n      \"detail\": \"⊶ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Original of\"\n    },\n    {\n      \"name\": \"overbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbar{${1:arg}}\"\n      },\n      \"detail\": \" ̅\",\n      \"doc\": \"Overbar embellishment\"\n    },\n    {\n      \"name\": \"overbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎴\",\n      \"doc\": \"Top square bracket\"\n    },\n    {\n      \"name\": \"overleftharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overleftharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overparen{${1:arg}}\"\n      },\n      \"detail\": \"⏜ (\\\"wrisym\\\" command)\",\n      \"doc\": \"\\\\wideparen (yhmath mathabx fourier), top parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"overrightharpoon\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightharpoon{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ovhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ovhook{${1:arg}}\"\n      },\n      \"detail\": \" ̉\",\n      \"doc\": \"Combining hook above\"\n    },\n    {\n      \"name\": \"Planckconst\",\n      \"detail\": \"ℎ\",\n      \"doc\": \"h, planck constant\"\n    },\n    {\n      \"name\": \"preccurlyeq\",\n      \"detail\": \"≼ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedesslantequal (wrisym), precedes, curly equals\"\n    },\n    {\n      \"name\": \"precnsim\",\n      \"detail\": \"⋨ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes, not similar\"\n    },\n    {\n      \"name\": \"precsim\",\n      \"detail\": \"≾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\precedestilde (wrisym), precedes, similar\"\n    },\n    {\n      \"name\": \"QED\",\n      \"detail\": \"∎\",\n      \"doc\": \"\\\\blacksquare (amssymb), end of proof\"\n    },\n    {\n      \"name\": \"questeq\",\n      \"detail\": \"≟\",\n      \"doc\": \"Equal with questionmark\"\n    },\n    {\n      \"name\": \"rAngle\",\n      \"detail\": \"⟫ (\\\"oz\\\" command)\",\n      \"doc\": \"Mathematical right double angle bracket, right chevron bracket\"\n    },\n    {\n      \"name\": \"rbracelend\",\n      \"unusual\": true,\n      \"detail\": \"⎭\",\n      \"doc\": \"Right curly bracket lower hook\"\n    },\n    {\n      \"name\": \"rbracemid\",\n      \"unusual\": true,\n      \"detail\": \"⎬\",\n      \"doc\": \"Right curly bracket middle piece\"\n    },\n    {\n      \"name\": \"rbraceuend\",\n      \"unusual\": true,\n      \"detail\": \"⎫\",\n      \"doc\": \"Right curly bracket upper hook\"\n    },\n    {\n      \"name\": \"rBrack\",\n      \"detail\": \"⟧ (\\\"stmaryrd wrisym kpfonts fourier\\\" command)\",\n      \"doc\": \"\\\\rbrack (mathbbol), \\\\rbag (oz -stmaryrd), mathematical right white square bracket\"\n    },\n    {\n      \"name\": \"rbrackextender\",\n      \"unusual\": true,\n      \"detail\": \"⎥\",\n      \"doc\": \"Right square bracket extension\"\n    },\n    {\n      \"name\": \"rbracklend\",\n      \"unusual\": true,\n      \"detail\": \"⎦\",\n      \"doc\": \"Right square bracket lower corner\"\n    },\n    {\n      \"name\": \"rbrackuend\",\n      \"unusual\": true,\n      \"detail\": \"⎤\",\n      \"doc\": \"Right square bracket upper corner\"\n    },\n    {\n      \"name\": \"Rdsh\",\n      \"detail\": \"↳ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Right down angled arrow\"\n    },\n    {\n      \"name\": \"reversesolidus\"\n    },\n    {\n      \"name\": \"rightangle\",\n      \"detail\": \"∟ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Right (90 degree) angle\"\n    },\n    {\n      \"name\": \"rightarrowonoplus\",\n      \"detail\": \"⟴\",\n      \"doc\": \"Right arrow with circled plus\"\n    },\n    {\n      \"name\": \"rightarrowtail\",\n      \"detail\": \"↣ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tinj (oz), \\\\inj (oz), right arrow-tailed, total injection\"\n    },\n    {\n      \"name\": \"rightharpoonaccent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightharpoonaccent{${1:arg}}\"\n      },\n      \"detail\": \"x⃑ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Combining right harpoon above\"\n    },\n    {\n      \"name\": \"rightleftarrows\",\n      \"detail\": \"⇄ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\rightleftarrow (wrisym), right arrow over left arrow\"\n    },\n    {\n      \"name\": \"rightrightarrows\",\n      \"detail\": \"⇉ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Two right arrows\"\n    },\n    {\n      \"name\": \"rightsquigarrow\",\n      \"detail\": \"⇝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Rightwards squiggle arrow\"\n    },\n    {\n      \"name\": \"rightthreearrows\",\n      \"detail\": \"⇶\",\n      \"doc\": \"Three rightwards arrows\"\n    },\n    {\n      \"name\": \"rightthreetimes\",\n      \"detail\": \"⋌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right semidirect product\"\n    },\n    {\n      \"name\": \"rightwhitearrow\",\n      \"detail\": \"⇨\",\n      \"doc\": \"Rightwards white arrow\"\n    },\n    {\n      \"name\": \"risingdotseq\",\n      \"detail\": \"≓ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Equals, rising dots\"\n    },\n    {\n      \"name\": \"rparen\",\n      \"detail\": \")\",\n      \"doc\": \"Right parenthesis\"\n    },\n    {\n      \"name\": \"rparenextender\",\n      \"unusual\": true,\n      \"detail\": \"⎟\",\n      \"doc\": \"Right parenthesis extension\"\n    },\n    {\n      \"name\": \"rparenlend\",\n      \"unusual\": true,\n      \"detail\": \"⎠\",\n      \"doc\": \"Right parenthesis lower hook\"\n    },\n    {\n      \"name\": \"rparenuend\",\n      \"unusual\": true,\n      \"detail\": \"⎞\",\n      \"doc\": \"Right parenthesis upper hook\"\n    },\n    {\n      \"name\": \"Rrightarrow\",\n      \"detail\": \"⇛ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triple arrow\"\n    },\n    {\n      \"name\": \"Rsh\",\n      \"detail\": \"↱ (\\\"amssymb\\\" command)\",\n      \"doc\": \"A: upwards arrow with tip rightwards\"\n    },\n    {\n      \"name\": \"rtimes\",\n      \"detail\": \"⋊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Times sign, right closed\"\n    },\n    {\n      \"name\": \"Searrow\",\n      \"detail\": \"⇘ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Se pointing double arrow\"\n    },\n    {\n      \"name\": \"sime\"\n    },\n    {\n      \"name\": \"simneqq\",\n      \"detail\": \"≆\",\n      \"doc\": \"Similar, not equals [vert only for 9573 entity]\"\n    },\n    {\n      \"name\": \"sinewave\",\n      \"detail\": \"∿ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Sine wave, alternating current\"\n    },\n    {\n      \"name\": \"smallin\",\n      \"detail\": \"∊\",\n      \"doc\": \"Set membership (small set membership)\"\n    },\n    {\n      \"name\": \"smallni\",\n      \"detail\": \"∍\",\n      \"doc\": \"R: contains (small contains as member)\"\n    },\n    {\n      \"name\": \"smallsetminus\",\n      \"detail\": \"∖ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"Small set minus (cf. reverse solidus)\"\n    },\n    {\n      \"name\": \"smblksquare\",\n      \"detail\": \"▪\",\n      \"doc\": \"Sq bullet, filled\"\n    },\n    {\n      \"name\": \"smwhtdiamond\",\n      \"detail\": \"⋄\",\n      \"doc\": \"Diamond operator (white diamond)\"\n    },\n    {\n      \"name\": \"smwhtsquare\",\n      \"detail\": \"▫\",\n      \"doc\": \"White small square\"\n    },\n    {\n      \"name\": \"sqrtbottom\",\n      \"detail\": \"⎷\",\n      \"doc\": \"Radical symbol bottom\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsubsetneq\",\n      \"detail\": \"⋤\",\n      \"doc\": \"Square subset, not equals\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"sqsupsetneq\",\n      \"detail\": \"⋥\",\n      \"doc\": \"Square superset, not equals\"\n    },\n    {\n      \"name\": \"stareq\",\n      \"detail\": \"≛\",\n      \"doc\": \"Star equals\"\n    },\n    {\n      \"name\": \"Subset\",\n      \"detail\": \"⋐ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double subset\"\n    },\n    {\n      \"name\": \"subsetneq\",\n      \"detail\": \"⊊ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsubsetneq (fourier), subset, not equals\"\n    },\n    {\n      \"name\": \"succcurlyeq\",\n      \"detail\": \"≽ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedsslantequal (wrisym), succeeds, curly equals\"\n    },\n    {\n      \"name\": \"succnsim\",\n      \"detail\": \"⋩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds, not similar\"\n    },\n    {\n      \"name\": \"succsim\",\n      \"detail\": \"≿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\succeedstilde (wrisym), succeeds, similar\"\n    },\n    {\n      \"name\": \"sumbottom\",\n      \"detail\": \"⎳\",\n      \"doc\": \"Summation bottom\"\n    },\n    {\n      \"name\": \"sumtop\",\n      \"detail\": \"⎲\",\n      \"doc\": \"Summation top\"\n    },\n    {\n      \"name\": \"Supset\",\n      \"detail\": \"⋑ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double superset\"\n    },\n    {\n      \"name\": \"supsetneq\",\n      \"detail\": \"⊋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset, not equals\"\n    },\n    {\n      \"name\": \"Swarrow\",\n      \"detail\": \"⇙ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Sw pointing double arrow\"\n    },\n    {\n      \"name\": \"therefore\",\n      \"detail\": \"∴ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"\\\\wasytherefore (wasysym), therefore\"\n    },\n    {\n      \"name\": \"threeunderdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"threeunderdot{${1:arg}}\"\n      },\n      \"detail\": \"x⃨\",\n      \"doc\": \"Combining triple underdot\"\n    },\n    {\n      \"name\": \"trianglelefteq\",\n      \"detail\": \"⊴ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unlhd (wrisym), left triangle, equals\"\n    },\n    {\n      \"name\": \"triangleq\",\n      \"detail\": \"≜ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\varsdef (oz), triangle, equals\"\n    },\n    {\n      \"name\": \"trianglerighteq\",\n      \"detail\": \"⊵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\unrhd (wrisym), right triangle, equals\"\n    },\n    {\n      \"name\": \"turnednot\",\n      \"detail\": \"⌙\",\n      \"doc\": \"Turned not sign\"\n    },\n    {\n      \"name\": \"twoheaddownarrow\",\n      \"detail\": \"↡\",\n      \"doc\": \"Down two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadleftarrow\",\n      \"detail\": \"↞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left two-headed arrow\"\n    },\n    {\n      \"name\": \"twoheadrightarrow\",\n      \"detail\": \"↠ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\tsur (oz), \\\\surj (oz), right two-headed arrow, total surjection\"\n    },\n    {\n      \"name\": \"twoheaduparrow\",\n      \"detail\": \"↟\",\n      \"doc\": \"Up two-headed arrow\"\n    },\n    {\n      \"name\": \"twolowline\",\n      \"detail\": \"‗\",\n      \"doc\": \"Double low line (spacing)\"\n    },\n    {\n      \"name\": \"ubrbrak\",\n      \"detail\": \"⏡\",\n      \"doc\": \"Bottom tortoise shell bracket (mathematical use)\"\n    },\n    {\n      \"name\": \"ulcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌜ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper left corner\"\n    },\n    {\n      \"name\": \"underbracket\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underbracket{${1:arg}}\"\n      },\n      \"detail\": \"⎵\",\n      \"doc\": \"Bottom square bracket\"\n    },\n    {\n      \"name\": \"underleftharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underleftharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃭\",\n      \"doc\": \"Combining leftwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"underparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underparen{${1:arg}}\"\n      },\n      \"detail\": \"⏝ (\\\"wrisym\\\" command)\",\n      \"doc\": \"Bottom parenthesis (mathematical use)\"\n    },\n    {\n      \"name\": \"underrightharpoondown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"underrightharpoondown{${1:arg}}\"\n      },\n      \"detail\": \"x⃬\",\n      \"doc\": \"Combining rightwards harpoon with barb downwards\"\n    },\n    {\n      \"name\": \"unicodecdots\",\n      \"unusual\": true,\n      \"detail\": \"⋯\",\n      \"doc\": \"Three dots, centered\"\n    },\n    {\n      \"name\": \"updownarrows\",\n      \"detail\": \"⇅ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\uparrowdownarrow (wrisym), up arrow, down arrow\"\n    },\n    {\n      \"name\": \"upharpoonleft\",\n      \"detail\": \"↿ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\upharpoonleftup (wrisym), up harpoon-left\"\n    },\n    {\n      \"name\": \"upharpoonright\",\n      \"detail\": \"↾ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\restriction (amssymb), \\\\upharpoonrightup (wrisym), a: up harpoon-right\"\n    },\n    {\n      \"name\": \"upuparrows\",\n      \"detail\": \"⇈ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Two up arrows\"\n    },\n    {\n      \"name\": \"upwhitearrow\",\n      \"detail\": \"⇧\",\n      \"doc\": \"Upwards white arrow\"\n    },\n    {\n      \"name\": \"urcorner\",\n      \"unusual\": true,\n      \"detail\": \"⌝ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Upper right corner\"\n    },\n    {\n      \"name\": \"varbarwedge\",\n      \"detail\": \"⌅\",\n      \"doc\": \"\\\\barwedge (amssymb), projective (bar over small wedge) not nand\"\n    },\n    {\n      \"name\": \"varclubsuit\",\n      \"detail\": \"♧ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varclub (arevmath), club, white (card suit)\"\n    },\n    {\n      \"name\": \"vardiamondsuit\",\n      \"detail\": \"♦ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\vardiamond (arevmath), filled diamond (card suit)\"\n    },\n    {\n      \"name\": \"vardoublebarwedge\",\n      \"detail\": \"⌆\",\n      \"doc\": \"\\\\doublebarwedge (amssymb), perspective (double bar over small wedge)\"\n    },\n    {\n      \"name\": \"varheartsuit\",\n      \"detail\": \"♥ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varheart (arevmath), filled heart (card suit)\"\n    },\n    {\n      \"name\": \"varlrtriangle\",\n      \"detail\": \"⊿\",\n      \"doc\": \"Right triangle\"\n    },\n    {\n      \"name\": \"varnothing\",\n      \"detail\": \"∅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Circle, slash\"\n    },\n    {\n      \"name\": \"varointclockwise\",\n      \"detail\": \"∲ (\\\"esint\\\" command)\",\n      \"doc\": \"\\\\clockoint (wrisym), contour integral, clockwise\"\n    },\n    {\n      \"name\": \"varspadesuit\",\n      \"detail\": \"♤ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\varspade (arevmath), spade, white (card suit)\"\n    },\n    {\n      \"name\": \"vartriangleleft\",\n      \"detail\": \"⊲ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Left triangle, open, variant\"\n    },\n    {\n      \"name\": \"vartriangleright\",\n      \"detail\": \"⊳ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Right triangle, open, variant\"\n    },\n    {\n      \"name\": \"vbraceextender\",\n      \"unusual\": true,\n      \"detail\": \"⎪\",\n      \"doc\": \"Curly bracket extension\"\n    },\n    {\n      \"name\": \"VDash\",\n      \"detail\": \"⊫ (\\\"mathabx txfonts\\\" command)\",\n      \"doc\": \"Double vert, double dash\"\n    },\n    {\n      \"name\": \"vDash\",\n      \"detail\": \"⊨ (\\\"amssymb fourier\\\" command)\",\n      \"doc\": \"True (vertical, double dash)\"\n    },\n    {\n      \"name\": \"Vdash\",\n      \"detail\": \"⊩ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Double vertical, dash\"\n    },\n    {\n      \"name\": \"vectimes\",\n      \"detail\": \"⨯\",\n      \"doc\": \"\\\\times, vector or cross product\"\n    },\n    {\n      \"name\": \"veebar\",\n      \"detail\": \"⊻ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical or, bar below (large vee); exclusive disjunction\"\n    },\n    {\n      \"name\": \"veeeq\",\n      \"detail\": \"≚\",\n      \"doc\": \"Logical or, equals\"\n    },\n    {\n      \"name\": \"vertoverlay\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertoverlay{${1:arg}}\"\n      },\n      \"detail\": \"x⃒\",\n      \"doc\": \"Combining long vertical line overlay\"\n    },\n    {\n      \"name\": \"vlongdash\",\n      \"detail\": \"⟝\",\n      \"doc\": \"Long left tack\"\n    },\n    {\n      \"name\": \"Vvdash\",\n      \"detail\": \"⊪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Triple vertical, dash\"\n    },\n    {\n      \"name\": \"vysmblkcircle\",\n      \"detail\": \"∙\",\n      \"doc\": \"Bullet operator\"\n    },\n    {\n      \"name\": \"vysmwhtcircle\",\n      \"detail\": \"∘\",\n      \"doc\": \"Composite function (small circle)\"\n    },\n    {\n      \"name\": \"wedgeq\",\n      \"detail\": \"≙ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\sdef (oz), t \\\\corresponds (marvosym), corresponds to (wedge over equals)\"\n    },\n    {\n      \"name\": \"widebreve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebreve{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widebridgeabove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widebridgeabove{${1:arg}}\"\n      },\n      \"detail\": \"x⃩\",\n      \"doc\": \"Combining wide bridge above\"\n    },\n    {\n      \"name\": \"widecheck\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widecheck{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideoverbar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideoverbar{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"wideutilde\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideutilde{${1:arg}}\"\n      },\n      \"detail\": \" ̰ (\\\"undertilde\\\" command)\",\n      \"doc\": \"Under tilde accent (multiple characters and non-spacing)\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\": [\n      \"normal-style=${1|ISO,TeX,french,upright,literal|}\",\n      \"math-style=${1|ISO,TeX,french,upright,literal|}\",\n      \"bold-style=${1|ISO,TeX,upright,literal|}\",\n      \"sans-style=${1|italic,upright,literal|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"colon=${1|TeX,literal|}\",\n      \"slash-delimiter=${1|ascii,frac,div|}\",\n      \"active-frac=${1|small,normalsize|}\",\n      \"mathrm=${1|text,sym|}\",\n      \"mathup=${1|text,sym|}\",\n      \"mathit=${1|text,sym|}\",\n      \"mathsf=${1|text,sym|}\",\n      \"mathbf=${1|text,sym|}\",\n      \"mathtt=${1|text,sym|}\"\n    ],\n    \"\\\\unimathsetup#c,\\\\usepackage/unicode-math#c\": [\n      \"trace=${1|on,debug,off|}\",\n      \"warnings-off={${1:warning list}}\"\n    ],\n    \"\\\\setmathfont#c,\\\\setmathfontface#c\": [\n      \"range=${1:unicode range}\",\n      \"script-font=${1:font name}\",\n      \"sscript-font=${1:font name}\",\n      \"script-features={${1:features}}\",\n      \"sscript-features={${1:features}}\",\n      \"version=${1:version name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\unimathsetup#c,\\\\setmathfont#c,\\\\setmathfontface#c,\\\\usepackage/unicode-math#c\",\n    \"\\\\unimathsetup#c,\\\\usepackage/unicode-math#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unicodefonttable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"longtable\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"caption\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"displayfonttable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"displayfonttable{${1:font name}}{${2:font features}}\"\n      }\n    },\n    {\n      \"name\": \"displayfonttable\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"displayfonttable[${3:options%keyvals}]{${1:font name}}{${2:font features}}\",\n        \"keys\": [\n          \"\\\\displayfonttable,\\\\displayfonttable*,\\\\fonttablesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"displayfonttable*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"displayfonttable*{${1:font name}}{${2:font features}}\"\n      }\n    },\n    {\n      \"name\": \"displayfonttable*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"displayfonttable*[${3:options%keyvals}]{${1:font name}}{${2:font features}}\",\n        \"keys\": [\n          \"\\\\displayfonttable,\\\\displayfonttable*,\\\\fonttablesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fonttablesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fonttablesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\displayfonttable,\\\\displayfonttable*,\\\\fonttablesetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"fonttableglyphcount\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\displayfonttable,\\\\displayfonttable*,\\\\fonttablesetup\": [\n      \"header\",\n      \"noheader\",\n      \"title-format=${1:code}\",\n      \"title-format-cont=${1:code}\",\n      \"display-block=${1|titles,rules,none|}\",\n      \"hex-digits=${1|block,foot,head,head+foot,none|}\",\n      \"hex-digits-font=${1:font commands}\",\n      \"hex-digits-row-format=${1:code}\",\n      \"color=\",\n      \"statistics\",\n      \"nostatistics\",\n      \"statistics-font=${1:font commands}\",\n      \"statistics-format=${1:code}\",\n      \"glyph-width=\",\n      \"missing-glyph=${1:code}\",\n      \"missing-glyph-font=${1:font commands}\",\n      \"missing-glyph-color=\",\n      \"compare-with=${1:font name}\",\n      \"compare-color=\",\n      \"compare-bgcolor=\",\n      \"statistics-compare-format=${1:code}\",\n      \"range-start=${1:slot}\",\n      \"range-end=${1:slot}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/unifront.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newsubsection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newsubsection{${1:title}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unifront#c\": [\n      \"red\",\n      \"blue\",\n      \"yellow\",\n      \"help\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unifront#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uninormalize.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luatexbase\"\n    },\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/uninormalize#c\": [\n      \"nodes\",\n      \"buffer\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/uninormalize#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unique.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setuniqmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setuniqmark{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ifuniq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifuniq{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unique#c\": [\n      \"unq\",\n      \"aux\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unique#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uniquecounter.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"UniqueCounterNew\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UniqueCounterNew{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"UniqueCounterCall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UniqueCounterCall{${1:counter}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"UniqueCounterIncrement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UniqueCounterIncrement{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"UniqueCounterGet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UniqueCounterGet{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/unisc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfparser\"\n    },\n    {\n      \"name\": \"xpatch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"oldscshape\"\n    },\n    {\n      \"name\": \"oldtextsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oldtextsc{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/unitconv.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"luacode\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"convTeXLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convTeXLength{${1:TeX length}}\"\n      }\n    },\n    {\n      \"name\": \"convTeXLength\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"convTeXLength[${2:unit%keyvals}]{${1:TeX length}}\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convTeXLength\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"convTeXLength[${2:unit%keyvals}][${3:digits}]{${1:TeX length}}\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convTeXLength*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convTeXLength*{${1:TeX length}}\"\n      }\n    },\n    {\n      \"name\": \"convTeXLength*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"convTeXLength*[${2:unit%keyvals}]{${1:TeX length}}\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convTeXLength*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"convTeXLength*[${2:unit%keyvals}][${3:digits}]{${1:TeX length}}\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convLength\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"convLength[${2:unit1%keyvals}]{${1:value}}[${3:unit2}]\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convLength\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"convLength[${2:unit1%keyvals}][${3:digits}]{${1:value}}[${4:unit2}]\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convLength*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"convLength*[${2:unit1%keyvals}]{${1:value}}[${3:unit2}]\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"convLength*\",\n      \"arg\": {\n        \"format\": \"[][]{}[]\",\n        \"snippet\": \"convLength*[${2:unit1%keyvals}][${3:digits}]{${1:value}}[${4:unit2}]\",\n        \"keys\": [\n          \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\convTeXLength,\\\\convTeXLength*,\\\\convLength,\\\\convLength*\": [\n      \"bp\",\n      \"cc\",\n      \"cm\",\n      \"dd\",\n      \"em\",\n      \"ex\",\n      \"in\",\n      \"km\",\n      \"m\",\n      \"mm\",\n      \"mu\",\n      \"pc\",\n      \"pt\",\n      \"px\",\n      \"sp\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/units.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unit[${2:value}]{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unit{${1:dimension}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"unitfrac[${3:value%:translatable}]{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    },\n    {\n      \"name\": \"unitfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"unitfrac{${1:num%:translatable}}{${2:den%:translatable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/units#c\": [\n      \"tight\",\n      \"loose\",\n      \"nice\",\n      \"ugly\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/units#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unitsdef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"units\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Micro\",\n      \"if\": \"OHM\"\n    },\n    {\n      \"name\": \"Ohm\",\n      \"if\": \"OHM\"\n    },\n    {\n      \"name\": \"Ohm\",\n      \"if\": \"OHM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Ohm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"Celsius\",\n      \"if\": \"OHM\"\n    },\n    {\n      \"name\": \"Celsius\",\n      \"if\": \"OHM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Celsius[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"Degree\",\n      \"if\": \"OHM\"\n    },\n    {\n      \"name\": \"Degree\",\n      \"if\": \"OHM\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"Degree[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"gensymbohm\",\n      \"if\": \"redef-gensymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gensymbcelsius\",\n      \"if\": \"redef-gensymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gensymbmicro\",\n      \"if\": \"redef-gensymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitvaluesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitsignonly\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitsignonly{${1:\\\\unitmacro}}\"\n      }\n    },\n    {\n      \"name\": \"ilu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ilu{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"ilu\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ilu[${2:value}]{${1:unit}}\"\n      }\n    },\n    {\n      \"name\": \"arc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arc{${1:degree;min;sec}}\"\n      }\n    },\n    {\n      \"name\": \"SI\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SI{${1:value}}{${2:unit}}\"\n      }\n    },\n    {\n      \"name\": \"unitSIdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newunit{${1:\\\\unitmacro%cmd}}{${2:unitsign}}\"\n      }\n    },\n    {\n      \"name\": \"renewunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewunit{${1:\\\\unitmacro%cmd}}{${2:unitsign}}\"\n      }\n    },\n    {\n      \"name\": \"newnosepunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newnosepunit{${1:\\\\unitmacro%cmd}}{${2:unitsign}}\"\n      }\n    },\n    {\n      \"name\": \"renewnosepunit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewnosepunit{${1:\\\\unitmacro%cmd}}{${2:unitsign}}\"\n      }\n    },\n    {\n      \"name\": \"per\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"per{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"unittimes\"\n    },\n    {\n      \"name\": \"unitsep\"\n    },\n    {\n      \"name\": \"unitsuperscript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unitsuperscript{${1:sup}}\"\n      }\n    },\n    {\n      \"name\": \"setTextOmega\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTextOmega{${1:serif-def}}{${2:sans-serif-def}}\"\n      }\n    },\n    {\n      \"name\": \"setMathOmega\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMathOmega{${1:def}}\"\n      }\n    },\n    {\n      \"name\": \"setTextmu\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTextmu{${1:serif-def}}{${2:sans-serif-def}}\"\n      }\n    },\n    {\n      \"name\": \"setMathmu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMathmu{${1:def}}\"\n      }\n    },\n    {\n      \"name\": \"setTextCelsius\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTextCelsius{${1:serif-def}}{${2:sans-serif-def}}\"\n      }\n    },\n    {\n      \"name\": \"setMathCelsius\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMathCelsius{${1:def}}\"\n      }\n    },\n    {\n      \"name\": \"setTextDegree\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setTextDegree{${1:serif-def}}{${2:sans-serif-def}}\"\n      }\n    },\n    {\n      \"name\": \"setMathDegree\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setMathDegree{${1:def}}\"\n      }\n    },\n    {\n      \"name\": \"yocto\"\n    },\n    {\n      \"name\": \"zepto\"\n    },\n    {\n      \"name\": \"atto\"\n    },\n    {\n      \"name\": \"femto\"\n    },\n    {\n      \"name\": \"pico\"\n    },\n    {\n      \"name\": \"nano\"\n    },\n    {\n      \"name\": \"micro\"\n    },\n    {\n      \"name\": \"milli\"\n    },\n    {\n      \"name\": \"centi\"\n    },\n    {\n      \"name\": \"deci\"\n    },\n    {\n      \"name\": \"deca\"\n    },\n    {\n      \"name\": \"hecto\"\n    },\n    {\n      \"name\": \"kilo\"\n    },\n    {\n      \"name\": \"mega\"\n    },\n    {\n      \"name\": \"giga\"\n    },\n    {\n      \"name\": \"tera\"\n    },\n    {\n      \"name\": \"peta\"\n    },\n    {\n      \"name\": \"exa\"\n    },\n    {\n      \"name\": \"zetta\"\n    },\n    {\n      \"name\": \"yotta\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"meter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"meter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"gram\"\n    },\n    {\n      \"name\": \"gram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilogram\"\n    },\n    {\n      \"name\": \"kilogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilogram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mole\"\n    },\n    {\n      \"name\": \"mole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"second\"\n    },\n    {\n      \"name\": \"second\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"second[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ampere\"\n    },\n    {\n      \"name\": \"ampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kelvin\"\n    },\n    {\n      \"name\": \"kelvin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kelvin[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"candela\"\n    },\n    {\n      \"name\": \"candela\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"candela[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picometer\"\n    },\n    {\n      \"name\": \"picometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanometer\"\n    },\n    {\n      \"name\": \"nanometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micrometer\"\n    },\n    {\n      \"name\": \"micrometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micrometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millimeter\"\n    },\n    {\n      \"name\": \"millimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"centimeter\"\n    },\n    {\n      \"name\": \"centimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"centimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"decimeter\"\n    },\n    {\n      \"name\": \"decimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"decimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilometer\"\n    },\n    {\n      \"name\": \"kilometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"femtogram\"\n    },\n    {\n      \"name\": \"femtogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"femtogram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picogram\"\n    },\n    {\n      \"name\": \"picogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picogram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanogram\"\n    },\n    {\n      \"name\": \"nanogram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanogram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"microgram\"\n    },\n    {\n      \"name\": \"microgram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"microgram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"milligram\"\n    },\n    {\n      \"name\": \"milligram\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"milligram[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"femtomole\"\n    },\n    {\n      \"name\": \"femtomole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"femtomole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picomole\"\n    },\n    {\n      \"name\": \"picomole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picomole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanomole\"\n    },\n    {\n      \"name\": \"nanomole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanomole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micromole\"\n    },\n    {\n      \"name\": \"micromole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micromole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millimole\"\n    },\n    {\n      \"name\": \"millimole\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millimole[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"attosecond\"\n    },\n    {\n      \"name\": \"attosecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"attosecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"femtosecond\"\n    },\n    {\n      \"name\": \"femtosecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"femtosecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picosecond\"\n    },\n    {\n      \"name\": \"picosecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picosecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanosecond\"\n    },\n    {\n      \"name\": \"nanosecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanosecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"microsecond\"\n    },\n    {\n      \"name\": \"microsecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"microsecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millisecond\"\n    },\n    {\n      \"name\": \"millisecond\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millisecond[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picoampere\"\n    },\n    {\n      \"name\": \"picoampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picoampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanoampere\"\n    },\n    {\n      \"name\": \"nanoampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanoampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"microampere\"\n    },\n    {\n      \"name\": \"microampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"microampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"milliampere\"\n    },\n    {\n      \"name\": \"milliampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"milliampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kiloampere\"\n    },\n    {\n      \"name\": \"kiloampere\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kiloampere[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"percent\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"percent[${1:value}]\"\n      },\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"liter\"\n    },\n    {\n      \"name\": \"liter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"liter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"femtoliter\"\n    },\n    {\n      \"name\": \"femtoliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"femtoliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picoliter\"\n    },\n    {\n      \"name\": \"picoliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picoliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanoliter\"\n    },\n    {\n      \"name\": \"nanoliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanoliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"microliter\"\n    },\n    {\n      \"name\": \"microliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"microliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"milliliter\"\n    },\n    {\n      \"name\": \"milliliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"milliliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"centiliter\"\n    },\n    {\n      \"name\": \"centiliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"centiliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"deciliter\"\n    },\n    {\n      \"name\": \"deciliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"deciliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"hectoliter\"\n    },\n    {\n      \"name\": \"hectoliter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hectoliter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"cubicmeter\"\n    },\n    {\n      \"name\": \"cubicmeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cubicmeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"cubicmicrometer\"\n    },\n    {\n      \"name\": \"cubicmicrometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cubicmicrometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"cubicmillimeter\"\n    },\n    {\n      \"name\": \"cubicmillimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cubicmillimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"squaremeter\"\n    },\n    {\n      \"name\": \"squaremeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squaremeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ar\"\n    },\n    {\n      \"name\": \"ar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"hektar\"\n    },\n    {\n      \"name\": \"hektar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hektar[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"squarecentimeter\"\n    },\n    {\n      \"name\": \"squarecentimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squarecentimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"squaremillimeter\"\n    },\n    {\n      \"name\": \"squaremillimeter\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squaremillimeter[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"squarekilometer\"\n    },\n    {\n      \"name\": \"squarekilometer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"squarekilometer[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ton\"\n    },\n    {\n      \"name\": \"ton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ton[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"volt\"\n    },\n    {\n      \"name\": \"volt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"volt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millivolt\"\n    },\n    {\n      \"name\": \"millivolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millivolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilovolt\"\n    },\n    {\n      \"name\": \"kilovolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilovolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"watt\"\n    },\n    {\n      \"name\": \"watt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"watt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"milliwatt\"\n    },\n    {\n      \"name\": \"milliwatt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"milliwatt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilowatt\"\n    },\n    {\n      \"name\": \"kilowatt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilowatt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megawatt\"\n    },\n    {\n      \"name\": \"megawatt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megawatt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"coulomb\"\n    },\n    {\n      \"name\": \"coulomb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"coulomb[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ohm\"\n    },\n    {\n      \"name\": \"ohm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ohm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kiloohm\"\n    },\n    {\n      \"name\": \"kiloohm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kiloohm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megaohm\"\n    },\n    {\n      \"name\": \"megaohm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megaohm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"gigaohm\"\n    },\n    {\n      \"name\": \"gigaohm\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gigaohm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"siemens\"\n    },\n    {\n      \"name\": \"siemens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"siemens[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millisiemens\"\n    },\n    {\n      \"name\": \"millisiemens\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millisiemens[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"farad\"\n    },\n    {\n      \"name\": \"farad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"farad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"femtofarad\"\n    },\n    {\n      \"name\": \"femtofarad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"femtofarad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picofarad\"\n    },\n    {\n      \"name\": \"picofarad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picofarad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanofarad\"\n    },\n    {\n      \"name\": \"nanofarad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanofarad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"microfarad\"\n    },\n    {\n      \"name\": \"microfarad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"microfarad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millifarad\"\n    },\n    {\n      \"name\": \"millifarad\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millifarad[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"joule\"\n    },\n    {\n      \"name\": \"joule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"joule[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millijoule\"\n    },\n    {\n      \"name\": \"millijoule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millijoule[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilojoule\"\n    },\n    {\n      \"name\": \"kilojoule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilojoule[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megajoule\"\n    },\n    {\n      \"name\": \"megajoule\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megajoule[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"calory\"\n    },\n    {\n      \"name\": \"calory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"calory[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilocalory\"\n    },\n    {\n      \"name\": \"kilocalory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilocalory[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"electronvolt\"\n    },\n    {\n      \"name\": \"electronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"electronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millielectronvolt\"\n    },\n    {\n      \"name\": \"millielectronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millielectronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kiloelectronvolt\"\n    },\n    {\n      \"name\": \"kiloelectronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kiloelectronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megaelectronvolt\"\n    },\n    {\n      \"name\": \"megaelectronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megaelectronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"gigaelectronvolt\"\n    },\n    {\n      \"name\": \"gigaelectronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gigaelectronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"teraelectronvolt\"\n    },\n    {\n      \"name\": \"teraelectronvolt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"teraelectronvolt[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"minute\"\n    },\n    {\n      \"name\": \"minute\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"minute[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"hour\"\n    },\n    {\n      \"name\": \"hour\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hour[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"days\"\n    },\n    {\n      \"name\": \"days\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"days[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"celsius\"\n    },\n    {\n      \"name\": \"celsius\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"celsius[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"radian\"\n    },\n    {\n      \"name\": \"radian\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"radian[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"steradian\"\n    },\n    {\n      \"name\": \"steradian\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"steradian[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"degree\"\n    },\n    {\n      \"name\": \"degree\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"degree[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"arcmin\"\n    },\n    {\n      \"name\": \"arcmin\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arcmin[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"arcsec\"\n    },\n    {\n      \"name\": \"arcsec\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"arcsec[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"hertz\"\n    },\n    {\n      \"name\": \"hertz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hertz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilohertz\"\n    },\n    {\n      \"name\": \"kilohertz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilohertz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megahertz\"\n    },\n    {\n      \"name\": \"megahertz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megahertz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"gigahertz\"\n    },\n    {\n      \"name\": \"gigahertz\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gigahertz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"newton\"\n    },\n    {\n      \"name\": \"newton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newton[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millinewton\"\n    },\n    {\n      \"name\": \"millinewton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millinewton[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kilonewton\"\n    },\n    {\n      \"name\": \"kilonewton\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kilonewton[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pascal\"\n    },\n    {\n      \"name\": \"pascal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pascal[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"hectopascal\"\n    },\n    {\n      \"name\": \"hectopascal\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"hectopascal[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"uBar\"\n    },\n    {\n      \"name\": \"uBar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"uBar[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millibar\"\n    },\n    {\n      \"name\": \"millibar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millibar[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"weber\"\n    },\n    {\n      \"name\": \"weber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"weber[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"tesla\"\n    },\n    {\n      \"name\": \"tesla\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tesla[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"henry\"\n    },\n    {\n      \"name\": \"henry\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"henry[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"lumen\"\n    },\n    {\n      \"name\": \"lumen\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lumen[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"lux\"\n    },\n    {\n      \"name\": \"lux\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"lux[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"becquerel\"\n    },\n    {\n      \"name\": \"becquerel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"becquerel[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"megabecquerel\"\n    },\n    {\n      \"name\": \"megabecquerel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"megabecquerel[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"curie\"\n    },\n    {\n      \"name\": \"curie\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"curie[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"sievert\"\n    },\n    {\n      \"name\": \"sievert\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sievert[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"millisievert\"\n    },\n    {\n      \"name\": \"millisievert\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"millisievert[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"unitCelsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitDegree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitMathCelsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitMathDegree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitMathOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitMathmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitTextCelsius\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitTextDegree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitTextOmega\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitTextmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unitmu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pA[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nA[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micA[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mA[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kA[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kJ\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kJ[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"eV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"eV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"meV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"meV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"meV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"keV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"keV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"MeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MeV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MeV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"GeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GeV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GeV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"TeV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TeV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"TeV[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kHz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kHz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"MHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MHz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"MHz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"GHz\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GHz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"GHz[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"picom\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"picom\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"picom[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"cm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"dm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dm[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"km\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"km\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"km[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"fmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fmol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fmol[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pmol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pmol[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nmol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nmol[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micmol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micmol[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mmol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mmol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mmol[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"sek\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sek\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sek[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"fs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fs[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ps\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ps\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ps[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ns\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ns\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ns[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mics\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mics[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ms\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ms\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ms[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kg[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fg[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pg[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nanog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nanog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nanog[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micg[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mg\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mg[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"kv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"kv[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"mv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mv[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"fl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"pl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"nl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"nl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"micl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"micl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"micl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"ml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ml\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ml[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"cl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"dl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"dl[${1:value}]\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/unitsdef#c\": [\n      \"OHM\",\n      \"ohm\",\n      \"redef-gensymb\",\n      \"liter\",\n      \"LITER\",\n      \"noxspace\",\n      \"noabbrv\",\n      \"ugly\",\n      \"noamperageabbr\",\n      \"nofrequncyabbr\",\n      \"nomolabbr\",\n      \"novoltageabbr\",\n      \"novolumeabbr\",\n      \"noweightabbr\",\n      \"noenergyabbr\",\n      \"nolengthabbr\",\n      \"notimeabbr\",\n      \"noconfig\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/unitsdef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/universalis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    },\n    {\n      \"name\": \"mweights\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"univrs\"\n    },\n    {\n      \"name\": \"univrscondensed\"\n    },\n    {\n      \"name\": \"univrsfamily\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/universalis#c\": [\n      \"scaled=${1:factor}\",\n      \"sfdefault\",\n      \"type1\",\n      \"condensed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/universalis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/unravel.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"gtl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"unravel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unravel{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"unravel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unravel[${2:keyvals}]{${1:content}}\",\n        \"keys\": [\n          \"\\\\unravel,\\\\unravelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"unravelsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unravelsetup{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\unravel,\\\\unravelsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\unravel,\\\\unravelsetup\": [\n      \"explicit-prompt\",\n      \"internal-debug\",\n      \"machine\",\n      \"max-action=${1:integer}\",\n      \"max-output=${1:integer}\",\n      \"max-input=${1:integer}\",\n      \"mute\",\n      \"number-steps\",\n      \"online=${1:integer}\",\n      \"prompt-input={${1:item1,item2,...}}\",\n      \"trace-assigns\",\n      \"trace-expansion\",\n      \"trace-other\",\n      \"welcome-message\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/updatemarks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"updatemarks-nums\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"AddToUpdateMarksList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToUpdateMarksList{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"SetUpdateMarksList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetUpdateMarksList{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveFromUpdateMarksList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveFromUpdateMarksList{${1:number list}}\"\n      }\n    },\n    {\n      \"name\": \"AddAllocatedToUpdateMarksList\"\n    },\n    {\n      \"name\": \"ExtractMarks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExtractMarks{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExtractMarks[${2:number list}]{${1:box number}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarks*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExtractMarks*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarks*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ExtractMarks*[${2:number list}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractSplitMarks\"\n    },\n    {\n      \"name\": \"ExtractSplitMarks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ExtractSplitMarks[${1:number list}]\"\n      }\n    },\n    {\n      \"name\": \"UpdateMarks\"\n    },\n    {\n      \"name\": \"UpdateMarks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"UpdateMarks[${1:number list}]\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarksTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExtractMarksTo{${1:box number}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarksTo\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ExtractMarksTo[${3:number list}]{${1:box number}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarksTo*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExtractMarksTo*{${1:text}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExtractMarksTo*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ExtractMarksTo*[${3:number list}]{${1:text}}{${2:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/updatemarks#c\": [\n      \"minipage\",\n      \"multicol\",\n      \"tcolorbox\"\n    ],\n    \"\\\\tcbset,\\\\begin{tcolorbox},\\\\tcbsetforeverylayer,\\\\tcbox,\\\\newtcolorbox,\\\\renewtcolorbox,\\\\newtcbox,\\\\renewtcbox,\\\\tcolorboxenvironment,\\\\tcbsubtitle,\\\\tcbsidebyside,\\\\tcbsubskin,\\\\tcbincludegraphics,\\\\tcbincludepdf,\\\\begin{tcbraster},\\\\begin{tcbitemize},\\\\tcbitem,\\\\begin{tcboxedraster},\\\\begin{tcboxeditemize},\\\\begin{tcblisting},\\\\tcbinputlisting,\\\\newtcblisting,\\\\renewtcblisting,\\\\newtcbinputlisting,\\\\renewtcbinputlisting,\\\\NewTcbTheorem,\\\\newtcbtheorem,\\\\RenewTcbTheorem,\\\\renewtcbtheorem,\\\\ProvideTcbTheorem,\\\\DeclareTcbTheorem,\\\\tcboxmath,\\\\tcbhighmath,\\\\usetcboxarray,\\\\consumetcboxarray,\\\\posterbox,\\\\begin{posterboxenv},\\\\tcboxfit,\\\\newtcboxfit,\\\\renewtcboxfit,\\\\DeclareTColorBox,\\\\NewTColorBox,\\\\RenewTColorBox,\\\\ProvideTColorBox,\\\\DeclareTotalTColorBox,\\\\NewTotalTColorBox,\\\\RenewTotalTColorBox,\\\\ProvideTotalTColorBox,\\\\DeclareTCBox,\\\\NewTCBox,\\\\RenewTCBox,\\\\ProvideTCBox,\\\\DeclareTotalTCBox,\\\\NewTotalTCBox,\\\\RenewTotalTCBox,\\\\ProvideTotalTCBox,\\\\DeclareTCBListing,\\\\NewTCBListing,\\\\RenewTCBListing,\\\\ProvideTCBListing,\\\\DeclareTCBInputListing,\\\\NewTCBInputListing,\\\\RenewTCBInputListing,\\\\ProvideTCBInputListing,\\\\DeclareTCBoxFit,\\\\NewTCBoxFit,\\\\RenewTCBoxFit,\\\\ProvideTCBoxFit,\\\\DeclareTotalTCBoxFit,\\\\NewTotalTCBoxFit,\\\\RenewTotalTCBoxFit,\\\\ProvideTotalTCBoxFit,\\\\tcboxverb,\\\\begin{docCommand},\\\\begin{docCommand*},\\\\begin{docCommands},\\\\begin{docEnvironment},\\\\begin{docEnvironment*},\\\\begin{docEnvironments},\\\\begin{docKey},\\\\begin{docKey*},\\\\begin{docKeys},\\\\begin{docPathOperation},\\\\begin{docPathOperation*},\\\\begin{docPathOperations},\\\\docValue,\\\\docValue*,\\\\docAuxCommand,\\\\docAuxCommand*,\\\\docAuxEnvironment,\\\\docAuxEnvironment*,\\\\docAuxKey,\\\\docAuxKey*,\\\\docCounter,\\\\docCounter*,\\\\docLength,\\\\docLength*,\\\\docColor,\\\\docColor*,\\\\begin{dispExample*},\\\\begin{dispListing*},\\\\tcbdocmarginnote\": [\n      \"updatemarks\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/updatemarks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upgreek.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Updelta\"\n    },\n    {\n      \"name\": \"Upgamma\"\n    },\n    {\n      \"name\": \"Uplambda\"\n    },\n    {\n      \"name\": \"Upomega\"\n    },\n    {\n      \"name\": \"Upphi\"\n    },\n    {\n      \"name\": \"Uppi\"\n    },\n    {\n      \"name\": \"Uppsi\"\n    },\n    {\n      \"name\": \"Upsigma\"\n    },\n    {\n      \"name\": \"Uptheta\"\n    },\n    {\n      \"name\": \"Upupsilon\"\n    },\n    {\n      \"name\": \"Upxi\"\n    },\n    {\n      \"name\": \"upalpha\",\n      \"detail\": \"α\",\n      \"doc\": \"\\\\mathrm{\\\\alpha} (omlmathrm), \\\\alphaup (kpfonts mathdesign), \\\\upalpha (upgreek), alpha, greek\"\n    },\n    {\n      \"name\": \"upbeta\",\n      \"detail\": \"β\",\n      \"doc\": \"\\\\mathrm{\\\\beta} (omlmathrm), \\\\betaup (kpfonts mathdesign), \\\\upbeta (upgreek), beta, greek\"\n    },\n    {\n      \"name\": \"upchi\",\n      \"detail\": \"χ\",\n      \"doc\": \"\\\\mathrm{\\\\chi} (omlmathrm), \\\\chiup (kpfonts mathdesign), \\\\upchi (upgreek), chi, greek\"\n    },\n    {\n      \"name\": \"updelta\",\n      \"detail\": \"δ\",\n      \"doc\": \"\\\\mathrm{\\\\delta} (omlmathrm), \\\\deltaup (kpfonts mathdesign), \\\\updelta (upgreek), delta, greek\"\n    },\n    {\n      \"name\": \"upepsilon\",\n      \"detail\": \"ε\",\n      \"doc\": \"\\\\mathrm{\\\\varepsilon} (omlmathrm), \\\\varepsilonup (kpfonts mathdesign), \\\\upepsilon (upgreek), rounded epsilon, greek\"\n    },\n    {\n      \"name\": \"upeta\",\n      \"detail\": \"η\",\n      \"doc\": \"\\\\mathrm{\\\\eta} (omlmathrm), \\\\etaup (kpfonts mathdesign), \\\\upeta (upgreek), eta, greek\"\n    },\n    {\n      \"name\": \"upgamma\",\n      \"detail\": \"γ\",\n      \"doc\": \"\\\\mathrm{\\\\gamma} (omlmathrm), \\\\gammaup (kpfonts mathdesign), \\\\upgamma (upgreek), gamma, greek\"\n    },\n    {\n      \"name\": \"upiota\",\n      \"detail\": \"ι\",\n      \"doc\": \"\\\\mathrm{\\\\iota} (omlmathrm), \\\\iotaup (kpfonts mathdesign), \\\\upiota (upgreek), iota, greek\"\n    },\n    {\n      \"name\": \"upkappa\",\n      \"detail\": \"κ\",\n      \"doc\": \"\\\\mathrm{\\\\kappa} (omlmathrm), \\\\kappaup (kpfonts mathdesign), \\\\upkappa (upgreek), kappa, greek\"\n    },\n    {\n      \"name\": \"uplambda\",\n      \"detail\": \"λ\",\n      \"doc\": \"\\\\mathrm{\\\\lambda} (omlmathrm), \\\\lambdaup (kpfonts mathdesign), \\\\uplambda (upgreek), lambda, greek\"\n    },\n    {\n      \"name\": \"upmu\",\n      \"detail\": \"μ\",\n      \"doc\": \"\\\\mathrm{\\\\mu} (omlmathrm), \\\\muup (kpfonts mathdesign), \\\\upmu (upgreek), mu, greek\"\n    },\n    {\n      \"name\": \"upnu\",\n      \"detail\": \"ν\",\n      \"doc\": \"\\\\mathrm{\\\\nu} (omlmathrm), \\\\nuup (kpfonts mathdesign), \\\\upnu (upgreek), nu, greek\"\n    },\n    {\n      \"name\": \"upomega\",\n      \"detail\": \"ω\",\n      \"doc\": \"\\\\mathrm{\\\\omega} (omlmathrm), \\\\omegaup (kpfonts mathdesign), \\\\upomega (upgreek), omega, greek\"\n    },\n    {\n      \"name\": \"upphi\",\n      \"detail\": \"ϕ\",\n      \"doc\": \"\\\\mathrm{\\\\phi} (omlmathrm), \\\\phiup (kpfonts mathdesign), greek phi symbol (straight)\"\n    },\n    {\n      \"name\": \"uppi\",\n      \"detail\": \"π\",\n      \"doc\": \"\\\\mathrm{\\\\pi} (omlmathrm), \\\\piup (kpfonts mathdesign), \\\\uppi (upgreek), pi, greek\"\n    },\n    {\n      \"name\": \"uppsi\",\n      \"detail\": \"ψ\",\n      \"doc\": \"\\\\mathrm{\\\\psi} (omlmathrm), \\\\psiup (kpfonts mathdesign), \\\\uppsi (upgreek), psi, greek\"\n    },\n    {\n      \"name\": \"uprho\",\n      \"detail\": \"ρ\",\n      \"doc\": \"\\\\mathrm{\\\\rho} (omlmathrm), \\\\rhoup (kpfonts mathdesign), \\\\uprho (upgreek), rho, greek\"\n    },\n    {\n      \"name\": \"upsigma\",\n      \"detail\": \"σ\",\n      \"doc\": \"\\\\mathrm{\\\\sigma} (omlmathrm), \\\\sigmaup (kpfonts mathdesign), \\\\upsigma (upgreek), sigma, greek\"\n    },\n    {\n      \"name\": \"uptau\",\n      \"detail\": \"τ\",\n      \"doc\": \"\\\\mathrm{\\\\tau} (omlmathrm), \\\\tauup (kpfonts mathdesign), \\\\uptau (upgreek), tau, greek\"\n    },\n    {\n      \"name\": \"uptheta\",\n      \"detail\": \"θ\",\n      \"doc\": \"\\\\mathrm{\\\\theta} (omlmathrm), \\\\thetaup (kpfonts mathdesign), straight theta, \\\\uptheta (upgreek), theta, greek\"\n    },\n    {\n      \"name\": \"upupsilon\",\n      \"detail\": \"υ\",\n      \"doc\": \"\\\\mathrm{\\\\upsilon} (omlmathrm), \\\\upsilonup (kpfonts mathdesign), \\\\upupsilon (upgreek), upsilon, greek\"\n    },\n    {\n      \"name\": \"upvarepsilon\",\n      \"detail\": \"ϵ\",\n      \"doc\": \"\\\\mathrm{\\\\epsilon} (omlmathrm), \\\\epsilonup (kpfonts mathdesign), greek lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"upvarphi\",\n      \"detail\": \"φ\",\n      \"doc\": \"\\\\mathrm{\\\\varphi} (omlmathrm), \\\\varphiup (kpfonts mathdesign), \\\\upvarphi (upgreek), curly or open phi, greek\"\n    },\n    {\n      \"name\": \"upvarpi\",\n      \"detail\": \"ϖ\",\n      \"doc\": \"\\\\mathrm{\\\\varpi} (omlmathrm), \\\\varpiup (kpfonts mathdesign), greek pi symbol (pomega)\"\n    },\n    {\n      \"name\": \"upvarrho\",\n      \"detail\": \"ϱ\",\n      \"doc\": \"\\\\mathrm{\\\\varrho} (omlmathrm), \\\\varrhoup (kpfonts mathdesign), greek rho symbol (round)\"\n    },\n    {\n      \"name\": \"upvarsigma\",\n      \"detail\": \"ς\",\n      \"doc\": \"\\\\mathrm{\\\\varsigma} (omlmathrm), \\\\varsigmaup (kpfonts mathdesign), \\\\upvarsigma (upgreek), terminal sigma, greek\"\n    },\n    {\n      \"name\": \"upvartheta\",\n      \"detail\": \"ϑ\",\n      \"doc\": \"\\\\mathrm{\\\\vartheta} (omlmathrm), \\\\varthetaup (kpfonts mathdesign), curly or open theta\"\n    },\n    {\n      \"name\": \"upxi\",\n      \"detail\": \"ξ\",\n      \"doc\": \"\\\\mathrm{\\\\xi} (omlmathrm), \\\\xiup (kpfonts mathdesign), \\\\upxi (upgreek), xi, greek\"\n    },\n    {\n      \"name\": \"upzeta\",\n      \"detail\": \"ζ\",\n      \"doc\": \"\\\\mathrm{\\\\zeta} (omlmathrm), \\\\zetaup (kpfonts mathdesign), \\\\upzeta (upgreek), zeta, greek\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upgreek#c\": [\n      \"Symbol\",\n      \"Symbolsmallscale\",\n      \"Euler\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upgreek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upkcat.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"platex\"\n    },\n    {\n      \"name\": \"ifuptex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getkcatcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getkcatcode{${1:jachar}}\"\n      }\n    },\n    {\n      \"name\": \"thekcatcode\"\n    },\n    {\n      \"name\": \"setkcatcode\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkcatcode{${1:jachar}}{${2:value}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uplatex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uptex\"\n    },\n    {\n      \"name\": \"platex\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/upmethodology-backpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"upmethodology-extension\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"makebackcover\"\n    },\n    {\n      \"name\": \"setbackcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setbackcover{${1:layout name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-backpage#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-backpage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-code.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"upmcodelang\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upmcodelang{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/upmethodology-code#c,\\\\upmcodelang#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"jclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jclass{${1:class%plain}}\"\n      }\n    },\n    {\n      \"name\": \"jinterface\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jinterface{${1:interface}}\"\n      }\n    },\n    {\n      \"name\": \"jpackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jpackage{${1:package%plain}}\"\n      }\n    },\n    {\n      \"name\": \"jfunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jfunc{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"jclazz\"\n    },\n    {\n      \"name\": \"jvoid\"\n    },\n    {\n      \"name\": \"jint\"\n    },\n    {\n      \"name\": \"jlong\"\n    },\n    {\n      \"name\": \"jfloat\"\n    },\n    {\n      \"name\": \"jboolean\"\n    },\n    {\n      \"name\": \"jdouble\"\n    },\n    {\n      \"name\": \"jchar\"\n    },\n    {\n      \"name\": \"jstring\"\n    },\n    {\n      \"name\": \"jarray\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jarray{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"jcollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jcollection{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"jset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jset{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"jtrue\"\n    },\n    {\n      \"name\": \"jfalse\"\n    },\n    {\n      \"name\": \"jop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jop{${1:operator}}\"\n      }\n    },\n    {\n      \"name\": \"jcall\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"jcall{${1:function}}{${2:params}}\"\n      }\n    },\n    {\n      \"name\": \"jcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jcode{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-code#c,\\\\upmcodelang#c\": [\n      \"uml\",\n      \"java\",\n      \"cpp\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-code#c,\\\\upmcodelang#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-document.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"vmargin\"\n    },\n    {\n      \"name\": \"upmethodology-extension\"\n    },\n    {\n      \"name\": \"upmethodology-fmt\"\n    },\n    {\n      \"name\": \"upmethodology-version\"\n    },\n    {\n      \"name\": \"draftwatermark\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"listendskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declaredocument\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"declaredocument{${1:project}}{${2:name}}{${3:ref}}\"\n      }\n    },\n    {\n      \"name\": \"declaredocumentex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"declaredocumentex{${1:project}}{${2:subproject}}{${3:name}}{${4:ref}}\"\n      }\n    },\n    {\n      \"name\": \"upmdocumentsummary\"\n    },\n    {\n      \"name\": \"upmdocumentsummary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upmdocumentsummary[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"upmdocinfopage\"\n    },\n    {\n      \"name\": \"upmpublicationpage\"\n    },\n    {\n      \"name\": \"upmpublicationminipage\"\n    },\n    {\n      \"name\": \"theupmproject\"\n    },\n    {\n      \"name\": \"theupmsubproject\"\n    },\n    {\n      \"name\": \"theupmdocname\"\n    },\n    {\n      \"name\": \"theupmdocref\"\n    },\n    {\n      \"name\": \"theupmsmalldoclogo\"\n    },\n    {\n      \"name\": \"theupmdoclogo\"\n    },\n    {\n      \"name\": \"defupmsmalllogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defupmsmalllogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"defupmlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defupmlogo{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"theupmfulldocname\"\n    },\n    {\n      \"name\": \"setdocabstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdocabstract{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setdocabstract\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdocabstract[${2:language}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setdockeywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdockeywords{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"setdockeywords\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdockeywords[${2:language}]{${1:keywords%text}}\"\n      }\n    },\n    {\n      \"name\": \"theupmdocabstract\"\n    },\n    {\n      \"name\": \"theupmdockeywords\"\n    },\n    {\n      \"name\": \"theauthorlist\"\n    },\n    {\n      \"name\": \"ifdocumentauthor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifdocumentauthor{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"addauthor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addauthor{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addauthor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addauthor[${3:email%URL}]{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addauthor*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addauthor*{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"addauthor*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addauthor*[${4:email%URL}]{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"upmdocumentauthors\"\n    },\n    {\n      \"name\": \"upmdocumentauthors\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upmdocumentauthors[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"thevalidatorlist\"\n    },\n    {\n      \"name\": \"addvalidator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addvalidator{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addvalidator\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addvalidator[${3:email%URL}]{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addvalidator*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addvalidator*{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"addvalidator*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addvalidator*[${4:email%URL}]{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"upmdocumentvalidators\"\n    },\n    {\n      \"name\": \"upmdocumentvalidators\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upmdocumentvalidators[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"addauthorvalidator\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addauthorvalidator{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addauthorvalidator\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addauthorvalidator[${3:email%URL}]{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addauthorvalidator*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addauthorvalidator*{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"addauthorvalidator*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addauthorvalidator*[${4:email%URL}]{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"theinformedlist\"\n    },\n    {\n      \"name\": \"addinformed\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"addinformed{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addinformed\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"addinformed[${3:email%URL}]{${1:first name}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"addinformed*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addinformed*{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"addinformed*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"addinformed*[${4:email%URL}]{${1:first name}}{${2:name}}{${3:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"upmdocumentinformedpeople\"\n    },\n    {\n      \"name\": \"upmdocumentinformedpeople\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upmdocumentinformedpeople[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"theupmcopyrighter\"\n    },\n    {\n      \"name\": \"theupmpublisher\"\n    },\n    {\n      \"name\": \"theupmprintedin\"\n    },\n    {\n      \"name\": \"theupmisbn\"\n    },\n    {\n      \"name\": \"theupmissn\"\n    },\n    {\n      \"name\": \"theupmdoi\"\n    },\n    {\n      \"name\": \"theupmpublishingdate\"\n    },\n    {\n      \"name\": \"theupmformattedpublisher\"\n    },\n    {\n      \"name\": \"theupmformattedcopyrighter\"\n    },\n    {\n      \"name\": \"setdocumentpurpose\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdocumentpurpose{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpublisher\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpublisher{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setcopyrighter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setcopyrighter{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"setprintingaddress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setprintingaddress{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"setisbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setisbn{${1:ISBN}}\"\n      }\n    },\n    {\n      \"name\": \"setissn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setissn{${1:ISSN}}\"\n      }\n    },\n    {\n      \"name\": \"setdoi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdoi{${1:DOI}}\"\n      }\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"englishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"britishhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"americanhyphenmins\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"french\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frenchbsetup\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchbsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"bsc\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"degre\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"iemes\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"ier\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"iere\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"ieres\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"iers\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"no\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"Nos\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"og\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"seename\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"tertio\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"tild\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"if\": \"francais\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\",\n      \"if\": \"francais\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"french\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"french\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"french\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"enumerateFB\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"itemizeFB\",\n      \"if\": \"francais\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"if\": \"francais\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"if\": \"francais\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-document#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\",\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-document#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-extension.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Ifdefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifdefined{${1:arg}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifelsedefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifelsedefined{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifundefined\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifundefined{${1:arg}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifelseundefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Ifelseundefined{${1:arg}}{${2:true code}}{${3:false code}}\"\n      }\n    },\n    {\n      \"name\": \"Get\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Get{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"GetLang\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetLang{${1:variable}}{${2:language}}\"\n      }\n    },\n    {\n      \"name\": \"Set\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Set{${1:variable}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Set\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Set[${3:language}]{${1:variable}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"Append\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Append{${1:variable}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Append\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"Append[${3:language}]{${1:variable}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"Unset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Unset{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"Unset\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Unset[${2:language}]{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCopyright\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"DeclareCopyright{${1:extname}}{${2:year}}{${3:copyrighter}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCopyright\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"DeclareCopyright[${5:language}]{${1:extname}}{${2:year}}{${3:copyrighter}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Put(${2:x},${3:y}){${1:stuff}}\"\n      }\n    },\n    {\n      \"name\": \"UseExtension\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UseExtension{${1:extname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/upmethodology-fmt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"subcaption\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"colortbl\"\n    },\n    {\n      \"name\": \"picinpar\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"thmtools\"\n    },\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"txfonts\"\n    },\n    {\n      \"name\": \"relsize\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"hyphenat\"\n    },\n    {\n      \"name\": \"bbm\"\n    },\n    {\n      \"name\": \"environ\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textsub\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsub{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Emph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Emph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"trademark\"\n    },\n    {\n      \"name\": \"regmark\"\n    },\n    {\n      \"name\": \"smalltrade\"\n    },\n    {\n      \"name\": \"smallreg\"\n    },\n    {\n      \"name\": \"smallcopy\"\n    },\n    {\n      \"name\": \"ust\"\n    },\n    {\n      \"name\": \"und\"\n    },\n    {\n      \"name\": \"urd\"\n    },\n    {\n      \"name\": \"uth\"\n    },\n    {\n      \"name\": \"R\"\n    },\n    {\n      \"name\": \"N\"\n    },\n    {\n      \"name\": \"Z\"\n    },\n    {\n      \"name\": \"C\"\n    },\n    {\n      \"name\": \"Q\"\n    },\n    {\n      \"name\": \"powerset\"\n    },\n    {\n      \"name\": \"sgn\"\n    },\n    {\n      \"name\": \"mfigure\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mfigure{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mfigure\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mfigure[${5:position}]{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mfigure*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mfigure*{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mfigure*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mfigure*[${5:position}]{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"figref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"figpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"figpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"msubfigure\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"msubfigure{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareGraphicsExtensionsWtex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareGraphicsExtensionsWtex{${1:extensions}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicswtex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includegraphicswtex{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includegraphicswtex\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includegraphicswtex[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicswtex,\\\\includefigurewtex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"includefigurewtex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includefigurewtex{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"includefigurewtex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includefigurewtex[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\includegraphicswtex,\\\\includefigurewtex\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"figmath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figmath{${1:id}}{${2:expr%formula}}\"\n      }\n    },\n    {\n      \"name\": \"figtext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"figtext{${1:id}}{${2:expr}}\"\n      }\n    },\n    {\n      \"name\": \"mfigurewtex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mfigurewtex{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mfigurewtex\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mfigurewtex[${5:position}]{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"mfigurewtex*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"mfigurewtex*{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"mfigurewtex*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"mfigurewtex*[${5:position}]{${1:options%keyvals}}{${2:imagefile}}{${3:caption%text}}{${4:label}}\",\n        \"keys\": [\n          \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"tabularheaderstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularheaderstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabulartitlespec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulartitlespec{${1:colspec}}\"\n      }\n    },\n    {\n      \"name\": \"tabulartitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulartitle{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabulartitleinside\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabulartitleinside{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"tabularrowheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabularrowheader{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"captionastitle\"\n    },\n    {\n      \"name\": \"tablenote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablenote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tabpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"parttoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttoc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"parttoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parttoc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"parttoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parttoc*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"parttoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"parttoc*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertoc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chaptertoc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chaptertoc*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chaptertoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chaptertoc*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectiontoc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sectiontoc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectiontoc*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"sectiontoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"sectiontoc*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectiontoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectiontoc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectiontoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsectiontoc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectiontoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectiontoc*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsectiontoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsectiontoc*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectiontoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectiontoc{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectiontoc\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsectiontoc[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectiontoc*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectiontoc*{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsectiontoc*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsectiontoc*[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfull\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chapterfull{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfull\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chapterfull[${3:short title}]{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfull*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chapterfull*{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"chapterfull*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"chapterfull*[${3:short title}]{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfull\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sectionfull{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfull\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sectionfull[${3:short title}]{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfull*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sectionfull*{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"sectionfull*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sectionfull*[${3:short title}]{${1:title}}{${2:header%text}}\"\n      }\n    },\n    {\n      \"name\": \"bibsize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibsize{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"savecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"restorecounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorecounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"saveenumcounter\"\n    },\n    {\n      \"name\": \"restoreenumcounter\"\n    },\n    {\n      \"name\": \"setenumcounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setenumcounter{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"getenumcounter\"\n    },\n    {\n      \"name\": \"savefootnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefootnote{${1:text}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"savefootnote*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savefootnote*{${1:text}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"reffootnote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reffootnote{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"makedate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"makedate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"extractyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractyear{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"extractmonth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractmonth{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"extractday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractday{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"makenamespacing\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makenamespacing{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"upmmakename\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"upmmakename{${1:first}}{${2:last}}{${3:separator}}\"\n      }\n    },\n    {\n      \"name\": \"upmmakename\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"upmmakename[${4:von}]{${1:first}}{${2:last}}{${3:separator}}\"\n      }\n    },\n    {\n      \"name\": \"upmmakenamestar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"upmmakenamestar{${1:first}}{${2:last}}{${3:separator}}\"\n      }\n    },\n    {\n      \"name\": \"upmmakenamestar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"upmmakenamestar[${4:von}]{${1:first}}{${2:last}}{${3:separator}}\"\n      }\n    },\n    {\n      \"name\": \"makename\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makename{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"makename\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"makename[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"makelastname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makelastname{${1:last name}}\"\n      }\n    },\n    {\n      \"name\": \"makelastname\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"makelastname[${2:von}]{${1:last name}}\"\n      }\n    },\n    {\n      \"name\": \"makefirstname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makefirstname{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"prname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"prname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"prname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"prname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"prname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"prname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"drname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"drname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"drname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"drname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"drname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"drname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"phdname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phdname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"phdname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"phdname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"phdname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"phdname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"phdname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"phdname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"scdname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scdname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"scdname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scdname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"scdname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scdname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"scdname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scdname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"mdname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"mdname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"mdname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mdname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"mdname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"mdname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"pengname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pengname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"pengname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pengname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"pengname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pengname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"pengname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pengname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"iengname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iengname{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"iengname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"iengname[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"iengname*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"iengname*{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"iengname*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"iengname*[${3:von}]{${1:first}}{${2:last}}\"\n      }\n    },\n    {\n      \"name\": \"inlineenumerationlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlineenumerationlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enumdescriptionlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enumdescriptionlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"enumdescriptioncounterseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enumdescriptionlabelseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"href\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"href{${1:URL}}{${2:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"textdown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdown{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"definitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listdefinitionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"declareupmtheorem\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"declareupmtheorem{${1:envname}}{${2:label%text}}{${3:list title%text}}\"\n      }\n    },\n    {\n      \"name\": \"declareupmtheorem\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"declareupmtheorem[${4:theoremstyle}]{${1:envname}}{${2:label%text}}{${3:list title%text}}\"\n      }\n    },\n    {\n      \"name\": \"upmtheoremopt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upmtheoremopt{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"overridedescriptionenvironment\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoredescriptionenvironment\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"graphicspathcontext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:path%definition}}\"\n      }\n    },\n    {\n      \"name\": \"mfigures\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:caption%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"mfigures\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:position}]{${1:caption%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"mfigures*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:caption%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"mfigures*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:position}]{${1:caption%text}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"mtabular\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:N}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"mtabular\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:width}]{${1:N}}{${2:cols}}\"\n      }\n    },\n    {\n      \"name\": \"mtable\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"{${1:width}}{${2:N}}{${3:cols}}{${4:caption%text}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"mtable\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"[${6:options%keyvals}]{${1:width}}{${2:N}}{${3:cols}}{${4:caption%text}}{${5:label}}\",\n        \"keys\": [\n          \"\\\\begin{mtable}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"umlinpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"umlinpar\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"inlineenumeration\"\n    },\n    {\n      \"name\": \"description\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:separator}]\"\n      }\n    },\n    {\n      \"name\": \"enumdescriptionx\"\n    },\n    {\n      \"name\": \"enumdescriptionx\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:type}]\"\n      }\n    },\n    {\n      \"name\": \"enumdescription\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:counter prefix}}{${2:counter postfix}}\"\n      }\n    },\n    {\n      \"name\": \"enumdescription\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:type}]{${1:counter prefix}}{${2:counter postfix}}\"\n      }\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:labeltype}]\"\n      }\n    },\n    {\n      \"name\": \"upmfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:size cmd}}\"\n      }\n    },\n    {\n      \"name\": \"framedminipage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"framedcolorminipage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:width}}{${2:border color}}{${3:background color}}\"\n      }\n    },\n    {\n      \"name\": \"upmcaution\"\n    },\n    {\n      \"name\": \"upmcaution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"upminfo\"\n    },\n    {\n      \"name\": \"upminfo\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"upmquestion\"\n    },\n    {\n      \"name\": \"upmquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:header%text}]\"\n      }\n    },\n    {\n      \"name\": \"emphbox\"\n    },\n    {\n      \"name\": \"emphbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox2\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox2\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox3\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"titleemphbox3\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-fmt#c\": [\n      \"french\",\n      \"francais\",\n      \"english\",\n      \"standardlists\"\n    ],\n    \"\\\\theoremstyle#c\": [\n      \"upmdefinition\"\n    ],\n    \"\\\\mfigure,\\\\mfigure*,\\\\msubfigure,\\\\mfigurewtex,\\\\mfigurewtex*\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\includegraphicswtex,\\\\includefigurewtex\": [\n      \"width=\",\n      \"height=\"\n    ],\n    \"\\\\begin{mtable}\": [\n      \"size=${1:size cmd}\",\n      \"h\",\n      \"t\",\n      \"b\",\n      \"p\",\n      \"H\",\n      \"ht\",\n      \"hb\",\n      \"hp\",\n      \"hH\",\n      \"h!\",\n      \"tb\",\n      \"tp\",\n      \"tH\",\n      \"t!\",\n      \"bp\",\n      \"bH\",\n      \"b!\",\n      \"pH\",\n      \"p!\",\n      \"H!\",\n      \"htb\",\n      \"htp\",\n      \"htH\",\n      \"ht!\",\n      \"tbp\",\n      \"tbH\",\n      \"tb!\",\n      \"bpH\",\n      \"bp!\",\n      \"pH!\",\n      \"htbp\",\n      \"htbH\",\n      \"htb!\",\n      \"tbpH\",\n      \"tbp!\",\n      \"bpH!\",\n      \"htbpH\",\n      \"htbp!\",\n      \"htbpH!\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-fmt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-frontpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"upmethodology-extension\"\n    },\n    {\n      \"name\": \"upmethodology-document\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setfrontcover\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfrontcover{${1:layout name%keyvals}}\",\n        \"keys\": [\n          \"\\\\setfrontcover#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"makefrontcover\"\n    },\n    {\n      \"name\": \"setfrontillustration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfrontillustration{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setfrontillustration\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfrontillustration[${2:scale}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"clearfrontillustration\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-frontpage#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ],\n    \"\\\\setfrontcover#c\": [\n      \"classic\",\n      \"modern\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-frontpage#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-p-common.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"arakhneorg\"\n    },\n    {\n      \"name\": \"upmcurrentlang\"\n    },\n    {\n      \"name\": \"ifupmlang\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifupmlang{${1:language}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifnotempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifnotempty{${1:arg}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifempty{${1:arg}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"Ifelseempty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ifelseempty{${1:arg}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newpageintoc\"\n    },\n    {\n      \"name\": \"ifupmbookformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmbookformattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmbookformatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifupmreportformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmreportformattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmreportformatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifupmarticleformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmarticleformattrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"upmarticleformatfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpdfcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpdfcolor{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/upmethodology-spec.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"upmethodology-fmt\"\n    },\n    {\n      \"name\": \"upmethodology-code\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"speccons\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"speccons{${1:name}}{${2:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"speccons\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"speccons[${3:modifiers}]{${1:name}}{${2:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"specget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"specget{${1:return type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"specget\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"specget[${3:modifiers}]{${1:return type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"specset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"specset{${1:name}}{${2:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"specset\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"specset[${3:modifiers}]{${1:name}}{${2:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"specfunc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"specfunc{${1:return type}}{${2:name}}{${3:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"specfunc\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"specfunc[${4:modifiers}]{${1:return type}}{${2:name}}{${3:prototype}}\"\n      }\n    },\n    {\n      \"name\": \"specreturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specreturn{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"specglobalreturn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"specglobalreturn{${1:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"specparam\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"specparam{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"specparam\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"specparam[${3:in|${4:inout}|out}]{${1:name}}{${2:description%text}}\"\n      }\n    },\n    {\n      \"name\": \"specendhline\"\n    },\n    {\n      \"name\": \"specstarthline\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"detailspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"detailspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"detailspec*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"detailspec*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:width}]{${1:title%text}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-spec#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-spec#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-task.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"upmethodology-version\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"taskname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskname{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"tasksuper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tasksuper{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"taskcomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"taskprogress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskprogress{${1:percent}}\"\n      }\n    },\n    {\n      \"name\": \"taskstart\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskstart{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"taskend\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskend{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"taskmanager\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskmanager{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"taskmember\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"taskmember{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"taskmilestone\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"taskmilestone{${1:date}}{${2:comment%text}}\"\n      }\n    },\n    {\n      \"name\": \"thetasksuper\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetasksuper{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskname{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskcomment{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskprogress\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskprogress{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskstart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskstart{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskend{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskmanagers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskmanagers{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskmembers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskmembers{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskmilestones\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskmilestones{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskmilestonecomment\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"thetaskmilestonecomment{${1:id}}{${2:date}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thetaskdescription{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"thetaskdescription\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"thetaskdescription[${2:width}]{${1:id}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"taskdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"taskdescription*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:id}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-task#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-task#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/upmethodology-version.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"upmethodology-p-common\"\n    },\n    {\n      \"name\": \"upmethodology-fmt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"upmrestricted\"\n    },\n    {\n      \"name\": \"upmvalidable\"\n    },\n    {\n      \"name\": \"upmvalidated\"\n    },\n    {\n      \"name\": \"upmpublic\"\n    },\n    {\n      \"name\": \"upmdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upmdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"upmdescription\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upmdescription{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"upmstatus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"upmstatus{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"theupmdate\"\n    },\n    {\n      \"name\": \"theupmlastmodif\"\n    },\n    {\n      \"name\": \"theupmstatus\"\n    },\n    {\n      \"name\": \"updateversion\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"updateversion{${1:version}}{${2:date}}{${3:description%text}}{${4:status%text}}\"\n      }\n    },\n    {\n      \"name\": \"initialversion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"initialversion{${1:date}}{${2:description%text}}{${3:status%text}}\"\n      }\n    },\n    {\n      \"name\": \"initialversion\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"initialversion[${4:version}]{${1:date}}{${2:description%text}}{${3:status%text}}\"\n      }\n    },\n    {\n      \"name\": \"incversion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"incversion{${1:date}}{${2:description%text}}{${3:status%text}}\"\n      }\n    },\n    {\n      \"name\": \"incsubversion\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"incsubversion{${1:date}}{${2:description%text}}{${3:status%text}}\"\n      }\n    },\n    {\n      \"name\": \"theupmversion\"\n    },\n    {\n      \"name\": \"upmhistory\"\n    },\n    {\n      \"name\": \"upmhistory\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"upmhistory[${1:width}]\"\n      }\n    },\n    {\n      \"name\": \"upmcopyrightdate\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/upmethodology-version#c\": [\n      \"french\",\n      \"francais\",\n      \"english\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/upmethodology-version#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/uptex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ptex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"disablecjktoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enablecjktoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forcecjktoken\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptexrevision\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uptexversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currentcjktoken\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/upzhkinsoku.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"uplatex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupzhkinsokuwith\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setupzhkinsokuwith{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"DisableOTLatinVariableSlotsKinsoku\"\n    },\n    {\n      \"name\": \"EnableOTLatinVariableSlotsKinsoku\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uri.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"urisetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urisetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\urisetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"uref\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uref{${1:URL}}{${2:link text}}\"\n      }\n    },\n    {\n      \"name\": \"arxiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arxiv{${1:arXiv path}}\"\n      }\n    },\n    {\n      \"name\": \"asin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asin{${1:Amazon number}}\"\n      }\n    },\n    {\n      \"name\": \"doi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doi{${1:DOI number}}\"\n      }\n    },\n    {\n      \"name\": \"hdl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hdl{${1:handle.net path}}\"\n      }\n    },\n    {\n      \"name\": \"nbn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nbn{${1:NBN spec}}\"\n      }\n    },\n    {\n      \"name\": \"oclc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oclc{${1:WorldCat number}}\"\n      }\n    },\n    {\n      \"name\": \"oid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oid{${1:OID number}}\"\n      }\n    },\n    {\n      \"name\": \"pubmed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pubmed{${1:PubMed number}}\"\n      }\n    },\n    {\n      \"name\": \"tinyuri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tinyuri{${1:TinyURL path}}\"\n      }\n    },\n    {\n      \"name\": \"tinypuri\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tinypuri{${1:TinyURL path}}\"\n      }\n    },\n    {\n      \"name\": \"wc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wc{${1:WebCite path}}\"\n      }\n    },\n    {\n      \"name\": \"citeurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"citeurl{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"mailto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"mailto{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"mailto\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mailto[${2:subject}]{${1:address}}\"\n      }\n    },\n    {\n      \"name\": \"ukoeln\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ukoeln{${1:UKoeln address}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\urisetup\": [\n      \"arxivpre={%|}\",\n      \"arxivpost={%|}\",\n      \"asinpre={%|}\",\n      \"asinpost={%|}\",\n      \"doipre={%|}\",\n      \"doipost={%|}\",\n      \"hdlpre={%|}\",\n      \"hdlpost={%|}\",\n      \"nbnpre={%|}\",\n      \"nbnpost={%|}\",\n      \"oclcpre={%|}\",\n      \"oclcpost={%|}\",\n      \"oidpre={%|}\",\n      \"oidpost={%|}\",\n      \"pubmedpre={%|}\",\n      \"pubmedpost={%|}\",\n      \"tinyuripre={%|}\",\n      \"tinyuripost={%|}\",\n      \"tinypuripre={%|}\",\n      \"tinypuripost={%|}\",\n      \"wcpre={%|}\",\n      \"wcpost={%|}\",\n      \"xmpppre={%|}\",\n      \"xmpppost={%|}\",\n      \"citeurlpre={%|}\",\n      \"citeurlpost={%|}\",\n      \"mailtopre={%|}\",\n      \"mailtopost={%|}\",\n      \"ukoelnpre={%|}\",\n      \"ukoelnpost={%|}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/url.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"url\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"url{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"path\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"path{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"urldef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urldef{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareUrlCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareUrlCommand{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"urlstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"urlstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\urlstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"UrlBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBigBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlNoBreaks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlOrds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlSpecials\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlTildeSpecial\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlFont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Urlmuskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBreakPenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UrlBigBreakPenalty\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/url#c\": [\n      \"obeyspaces\",\n      \"hyphens\",\n      \"spaces\",\n      \"lowtilde\",\n      \"allowmove\"\n    ],\n    \"\\\\urlstyle#c\": [\n      \"tt\",\n      \"rm\",\n      \"sf\",\n      \"same\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/url#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/urwchancal.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/urwchancal#c\": [\n      \"scaled=${1:factor}\",\n      \"mathscr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/urwchancal#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/usebib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bibinput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibinput{${1:bib file}}\"\n      }\n    },\n    {\n      \"name\": \"newbibfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newbibfield{${1:field}}\"\n      }\n    },\n    {\n      \"name\": \"newbibignore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newbibignore{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"usebibentry\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usebibentry{${1:citekey}}{${2:field%keyvals}}\",\n        \"keys\": [\n          \"\\\\usebibentry#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"usebibentryurl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usebibentryurl{${1:citekey}}\"\n      }\n    },\n    {\n      \"name\": \"usebibentryurl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"usebibentryurl[${2:delim}]{${1:citekey}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usebibentry#c\": [\n      \"title\",\n      \"year\",\n      \"note\",\n      \"isbn\",\n      \"%usebibfield\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/useclass.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"useclass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useclass{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"useclass\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useclass[${2:options%keyvals}]{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"useclass*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useclass*{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"useclass*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useclass*[${2:options%keyvals}]{${1:class}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ushort.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ushort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushort{${1:char%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ushortw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushortw{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ushortd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushortd{${1:char%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ushortdw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushortdw{${1:arg%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ushortdline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushortdline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ushortCreate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ushortEnsuremath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ushortEnsuremath{${1:expression}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/utf8add.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"upgreek\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"gensymb\"\n    },\n    {\n      \"name\": \"nicefrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"Upomicron\"\n    },\n    {\n      \"name\": \"Upalpha\"\n    },\n    {\n      \"name\": \"Upbeta\"\n    },\n    {\n      \"name\": \"Upchi\"\n    },\n    {\n      \"name\": \"Upepsilon\"\n    },\n    {\n      \"name\": \"Upeta\"\n    },\n    {\n      \"name\": \"Upiota\"\n    },\n    {\n      \"name\": \"Upkappa\"\n    },\n    {\n      \"name\": \"Upmu\"\n    },\n    {\n      \"name\": \"Upnu\"\n    },\n    {\n      \"name\": \"Upomicron\"\n    },\n    {\n      \"name\": \"Uprho\"\n    },\n    {\n      \"name\": \"Uptau\"\n    },\n    {\n      \"name\": \"Upzeta\"\n    },\n    {\n      \"name\": \"textfoursuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfivesuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsixsuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsevensuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteightsuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textninesuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzerosuperior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textoneinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttwoinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreeinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfourinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfiveinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsixinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textseveninferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texteightinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnineinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzeroinferior\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textonethird\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttwothirds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textzerothirds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textonefifth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttwofifths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreefifths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfourfifths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textonesixth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfivesixths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textoneseventh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textoneeighth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreeeighths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfiveeighths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textseveneighths\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textonenininth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textonetenth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttwothird\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreequarter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"texttwofifth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreefifth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfourfifth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfivesixth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textthreeeighth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textfiveeighth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textseveneighth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"molar\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/utf8add#c\": [\n      \"nogreek\",\n      \"uppercasegreek=${1|default,italic,upright|}\",\n      \"lowercasegreek=${1|default,italic,upright|}\",\n      \"greek=${1|default,italic,upright|}\",\n      \"mathinferior\",\n      \"mathsuperior\",\n      \"mathfigures\",\n      \"mathfractions\",\n      \"math\",\n      \"nicefrac\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/utf8add#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/utf8hax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"inputenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"omicron\"\n    },\n    {\n      \"name\": \"Alpha\"\n    },\n    {\n      \"name\": \"Beta\"\n    },\n    {\n      \"name\": \"Chi\"\n    },\n    {\n      \"name\": \"Epsilon\"\n    },\n    {\n      \"name\": \"Eta\"\n    },\n    {\n      \"name\": \"Iota\"\n    },\n    {\n      \"name\": \"Kappa\"\n    },\n    {\n      \"name\": \"Mu\"\n    },\n    {\n      \"name\": \"Nu\"\n    },\n    {\n      \"name\": \"Omicron\"\n    },\n    {\n      \"name\": \"Rho\"\n    },\n    {\n      \"name\": \"Tau\"\n    },\n    {\n      \"name\": \"Zeta\"\n    },\n    {\n      \"name\": \"newautomath\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newautomath{${1:text%plain}}{${2:math%formula}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/utf8hax#c\": [\n      \"autochar\",\n      \"mathchar\",\n      \"currmath\",\n      \"yenmath\",\n      \"sterlingmath\",\n      \"copyauto\",\n      \"regauto\",\n      \"default\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/utf8hax#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/utfsym.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"usym\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usym{${1:symbolID}}\"\n      }\n    },\n    {\n      \"name\": \"usymH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usymH{${1:symbolID}}{${2:height}}\"\n      }\n    },\n    {\n      \"name\": \"usymW\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"usymW{${1:symbolID}}{${2:width}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uuthesis-chapterbib.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chapterbib\"\n    },\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setupuuchapterbib\"\n    },\n    {\n      \"name\": \"theuuchapterbibfigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuuchapterbibsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuuchapterbibsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuuchapterbibsubsubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theuuchapterbibtable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uudummyfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uudummyfigure{${1:title%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"uudummysection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uudummysection{${1:title%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"uudummysubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uudummysubsection{${1:title%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"uudummysubsubsection\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uudummysubsubsection{${1:title%text}}{${2:page number}}\"\n      }\n    },\n    {\n      \"name\": \"uudummytable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"uudummytable{${1:title%text}}{${2:page number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uuthesis-color-headings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"rgb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"mainheadingtext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"mainheadingtext{${1:text}}{${2:formatting}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uuthesis-index.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"indexname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newindexgroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newindexgroup{${1:title%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/uwa-colours.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/va.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"va\"\n    },\n    {\n      \"name\": \"textva\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textva{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vacal\"\n    },\n    {\n      \"name\": \"textvacal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvacal{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/variablelm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontenc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/variablelm#c\": [\n      \"scale=${1:factor}\",\n      \"ttscale=${1:factor}\",\n      \"sfscale=${1:factor}\",\n      \"encoding=${1:encoding}\",\n      \"variablett\",\n      \"lighttt\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/variablelm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/variations.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bvariations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"evariations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"c\"\n    },\n    {\n      \"name\": \"d\"\n    },\n    {\n      \"name\": \"ch\"\n    },\n    {\n      \"name\": \"cb\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"db\"\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"h\"\n    },\n    {\n      \"name\": \"filet\"\n    },\n    {\n      \"name\": \"l\"\n    },\n    {\n      \"name\": \"z\"\n    },\n    {\n      \"name\": \"bb\"\n    },\n    {\n      \"name\": \"bg\"\n    },\n    {\n      \"name\": \"bd\"\n    },\n    {\n      \"name\": \"ga\"\n    },\n    {\n      \"name\": \"dr\"\n    },\n    {\n      \"name\": \"mI\"\n    },\n    {\n      \"name\": \"pI\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"variations\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/varioref.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vpageref[${2:samepage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vpageref*[${2:samepage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"vpageref[${2:samepage}][${3:otherpage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpageref*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"vpageref*[${2:samepage}][${3:otherpage}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vrefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vrefrange[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpagerefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpagerefrange*{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vpagerefrange[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefrange*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"vpagerefrange*[${3:same page text}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefpagenum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vrefpagenum{${1:cmd}}{${2:label%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefcompare\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vpagerefcompare{${1:label1%ref}}{${2:label2%ref}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefnearby\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vpagerefnearby{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"labelformat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"labelformat{${1:counter}}{${2:argument}}\"\n      }\n    },\n    {\n      \"name\": \"Vref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Vref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Vref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"Ref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"thevpagerefnum\"\n    },\n    {\n      \"name\": \"reftextbefore\"\n    },\n    {\n      \"name\": \"reftextfacebefore\"\n    },\n    {\n      \"name\": \"reftextafter\"\n    },\n    {\n      \"name\": \"reftextfaceafter\"\n    },\n    {\n      \"name\": \"reftextcurrent\"\n    },\n    {\n      \"name\": \"reftextfaraway\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"reftextfaraway{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"reftextvario\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextvario{${1:text1}}{${2:text2}}\"\n      }\n    },\n    {\n      \"name\": \"reftextpagerange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextpagerange{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"reftextlabelrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"reftextlabelrange{${1:label1%ref}}{${2:label2%ref}}\"\n      }\n    },\n    {\n      \"name\": \"vrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefrangeformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullrefformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Vrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefrangedefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullrefdefaultformat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vrefwarning\"\n    },\n    {\n      \"name\": \"vrefshowerrors\"\n    },\n    {\n      \"name\": \"fullref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fullref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"vpagerefcomparenearby\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vpagerefcomparenearby{${1:label1%ref}}{${2:label2%ref}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/varioref#c\": [\n      \"afrikaans\",\n      \"american\",\n      \"arabic\",\n      \"austrian\",\n      \"naustrian\",\n      \"basque\",\n      \"bahasam\",\n      \"brazil\",\n      \"breton\",\n      \"bulgarian\",\n      \"catalan\",\n      \"croatian\",\n      \"czech\",\n      \"danish\",\n      \"dutch\",\n      \"english\",\n      \"esperanto\",\n      \"finnish\",\n      \"french\",\n      \"galician\",\n      \"german\",\n      \"ngerman\",\n      \"greek\",\n      \"icelandic\",\n      \"italian\",\n      \"japanese\",\n      \"magyar\",\n      \"norsk\",\n      \"nynorsk\",\n      \"polish\",\n      \"portuges\",\n      \"romanian\",\n      \"russian\",\n      \"slovak\",\n      \"slovene\",\n      \"spanish\",\n      \"swedish\",\n      \"turkish\",\n      \"ukrainian\",\n      \"francais\",\n      \"germanb\",\n      \"draft\",\n      \"final\",\n      \"space\",\n      \"nospace\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/varioref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/varsfromjobname.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"currfile\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"getfromjobname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfromjobname{${1:param}}\"\n      }\n    },\n    {\n      \"name\": \"getonefromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gettwofromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getthreefromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfourfromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfivefromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getsixfromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getsevenfromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geteightfromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getninefromjobname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfromcurrfilename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"getfromcurrfilename{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"getonefromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gettwofromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getthreefromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfourfromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getfivefromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getsixfromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getsevenfromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"geteightfromcurrfilename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getninefromcurrfilename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/varvbtm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"newvbtm\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newtabverbatim{${1:envname}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"newtabverbatim{${1:envname}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"newtabverbatim{${1:envname}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewtabverbatim{${1:envname}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"renewtabverbatim{${1:envname}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewtabverbatim\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"renewtabverbatim{${1:envname}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"VVBbegintab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBendtab\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBprintFF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBprintFFas\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VVBprintFFas{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"VVBbreakatFF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBbreakatFFonly\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBnonverb\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VVBnonverb{${1:\\\\character}}\"\n      }\n    },\n    {\n      \"name\": \"VVBnonverbmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"VVBnonverbmath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"VVBnonverbmath[${1:\\\\character}]\"\n      }\n    },\n    {\n      \"name\": \"newverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newverbatiminput{${1:cmd}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"newverbatiminput{${1:cmd}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"newverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"newverbatiminput{${1:cmd}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"renewverbatiminput{${1:cmd}}{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}{}{}\",\n        \"snippet\": \"renewverbatiminput{${1:cmd}}[${6:args}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    },\n    {\n      \"name\": \"renewverbatiminput\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}{}{}\",\n        \"snippet\": \"renewverbatiminput{${1:cmd}}[${6:args}][${7:default}]{${2:beg-def-outer}}{${3:beg-def-inner}}{${4:end-def-inner}}{${5:end-def-outer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/varwidth.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"narrowragged\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"varwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vcell.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"savecellbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savecellbox{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"vcell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vcell{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"savecellheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printcelltop\"\n    },\n    {\n      \"name\": \"printcellmiddle\"\n    },\n    {\n      \"name\": \"printcellbottom\"\n    },\n    {\n      \"name\": \"resetcellcount\"\n    },\n    {\n      \"name\": \"rowheight\"\n    },\n    {\n      \"name\": \"rowht\"\n    },\n    {\n      \"name\": \"rowdp\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vdmlisting.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"times\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vdmnotcovered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vdmnotcovered{${1:VDM specification}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vdmsl\"\n    },\n    {\n      \"name\": \"vdmsl\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{vdmsl},\\\\begin{vdmpp},\\\\begin{vdmrt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vdmpp\"\n    },\n    {\n      \"name\": \"vdmpp\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{vdmsl},\\\\begin{vdmpp},\\\\begin{vdmrt}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vdmrt\"\n    },\n    {\n      \"name\": \"vdmrt\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{vdmsl},\\\\begin{vdmpp},\\\\begin{vdmrt}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/vdmlisting#c\": [\n      \"color\",\n      \"notimes\"\n    ],\n    \"\\\\begin{vdmsl},\\\\begin{vdmpp},\\\\begin{vdmrt}\": [\n      \"inputpath=${1:path}\",\n      \"aboveskip=\",\n      \"belowskip=\",\n      \"lineskip=\",\n      \"boxpos=${1|b,c,t|}\",\n      \"print\",\n      \"showlines\",\n      \"emptylines=${1:number}\",\n      \"emptylines=*${1:number}\",\n      \"gobble=${1:number}\",\n      \"style=${1:style name}\",\n      \"language=${1:language}\",\n      \"language=[${1:dialect}]${2:language}\",\n      \"alsolanguage=${1:language}\",\n      \"alsolanguage=[${1:dialect}]${2:language}\",\n      \"defaultdialect=[${1:dialect}]${2:language}\",\n      \"printpod\",\n      \"usekeywordsintag\",\n      \"tagstyle=${1:style}\",\n      \"markfirstintag=${1:style}\",\n      \"makemacrouse\",\n      \"basicstyle=${1:style}\",\n      \"identifierstyle=${1:style}\",\n      \"commentstyle=${1:style}\",\n      \"stringstyle=${1:style}\",\n      \"keywordstyle=${1:style}\",\n      \"keywordstyle=[${1:number}]${2:style}\",\n      \"keywordstyle=[${1:number}]*${2:style}\",\n      \"ndkeywordstyle=${1:style}\",\n      \"classoffset=${1:number}\",\n      \"texcsstyle=${1:style}\",\n      \"texcsstyle=[${1:class number}]${2:style}\",\n      \"texcsstyle=*[${1:class number}]${2:style}\",\n      \"directivestyle=${1:style}\",\n      \"emph={${1:identifier list}}\",\n      \"emph=[${1:number}]{${2:identifier list}}\",\n      \"moreemph={${1:identifier list}}\",\n      \"moreemph=[${1:number}]{${2:identifier list}}\",\n      \"deleteemph={${1:identifier list}}\",\n      \"deleteemph=[${1:number}]{${2:identifier list}}\",\n      \"emphstyle={${1:style}}\",\n      \"emphstyle=[${1:number}]{${2:style}}\",\n      \"delim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"delim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"moredelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=*[${1:type}][${2:style}]${3:delimiters}\",\n      \"deletedelim=**[${1:type}][${2:style}]${3:delimiters}\",\n      \"extendedchars\",\n      \"inputencoding=${1:encoding}\",\n      \"upquote\",\n      \"tabsize=${1:number}\",\n      \"showtabs\",\n      \"tab=${1:tokens}\",\n      \"showspaces\",\n      \"showstringspaces\",\n      \"formfeed=${1:tokens}\",\n      \"numbers=${1|none,left,right|}\",\n      \"stepnumber=${1:number}\",\n      \"numberfirstline\",\n      \"numberstyle=${1:style}\",\n      \"numbersep=\",\n      \"numberblanklines\",\n      \"firstnumber=${1:auto|last|<number>}\",\n      \"name=${1:name}\",\n      \"title=${1:title text}\",\n      \"caption={${1:caption text}}\",\n      \"caption={[${1:short}]${2:caption text}}\",\n      \"label=\",\n      \"nolol\",\n      \"numberbychapter\",\n      \"captionpos=${1:subset of tb}\",\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"linewidth=\",\n      \"xleftmargin=\",\n      \"xrightmargin=\",\n      \"resetmargins\",\n      \"breaklines\",\n      \"breakatwhitespace\",\n      \"prebreak=${1:tokens}\",\n      \"postbreak=${1:tokens}\",\n      \"breakindent=\",\n      \"breakautoindent\",\n      \"frame=${1:type}\",\n      \"frameround=\",\n      \"framesep=\",\n      \"rulesep=\",\n      \"framerule=\",\n      \"framexleftmargin=\",\n      \"framexrightmargin=\",\n      \"framextopmargin=\",\n      \"framexbottommargin=\",\n      \"backgroundcolor=\",\n      \"rulecolor=\",\n      \"fillcolor=\",\n      \"rulesepcolor=\",\n      \"frameshape={${1:top shape}}{${2:left shape}}{${3:right shape}}{${4:bottom shape}}\",\n      \"index={${1:identifiers}}\",\n      \"index=[${1:number}]{${2:identifiers}}\",\n      \"index=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"moreindex={${1:identifiers}}\",\n      \"moreindex=[${1:number}]{${2:identifiers}}\",\n      \"moreindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"deleteindex={${1:identifiers}}\",\n      \"deleteindex=[${1:number}]{${2:identifiers}}\",\n      \"deleteindex=[${1:number}][${2:keyword classes}]{${3:identifiers}}\",\n      \"indexstyle=${1:one-parameter macro}\",\n      \"indexstyle=[${1:number}]${2:one-parameter macro}\",\n      \"columns=${1:alignment}\",\n      \"columns=[${1:c|l|r}]${2:alignment}\",\n      \"flexiblecolumns\",\n      \"keepspaces\",\n      \"basewidth=\",\n      \"fontadjust\",\n      \"texcl\",\n      \"mathescape\",\n      \"escapechar=${1:character}\",\n      \"escapeinside=${1:<char1><char2>}\",\n      \"escapebegin=${1:tokens}\",\n      \"escapeend=${1:tokens}\",\n      \"fancyvrb\",\n      \"fvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"morefvcmdparams=${1:<cmd1> <num1> ...}\",\n      \"literate={${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"literate=*{${1:replace}}{${2:replacement text}}{${3:length}}${4:...}\",\n      \"rangebeginprefix=${1:prefix}\",\n      \"rangebeginsuffix=${1:suffix}\",\n      \"rangeendprefix=${1:prefix}\",\n      \"rangeendsuffix=${1:suffix}\",\n      \"rangeprefix=${1:prefix}\",\n      \"rangesuffix=${1:suffix}\",\n      \"includerangemarker\",\n      \"multicols=${1:number}\",\n      \"float\",\n      \"float=${1:subset of tbph}\",\n      \"float=*${1:subset of tbph}\",\n      \"floatplacement=${1:place specifiers}\",\n      \"firstline=${1:number}\",\n      \"lastline=${1:number}\",\n      \"linerange={${1:first1-last1,first2-last2,...}}\",\n      \"consecutivenumbers\",\n      \"keywordsprefix=${1:prefix}\",\n      \"keywords={${1:list of keywords}}\",\n      \"keywords=[${1:number}]{${2:list of keywords}}\",\n      \"morekeywords={${1:list of keywords}}\",\n      \"morekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"deletekeywords={${1:list of keywords}}\",\n      \"deletekeywords=[${1:number}]{${2:list of keywords}}\",\n      \"ndkeywords={${1:list of keywords}}\",\n      \"moreendkeywords={${1:list of keywords}}\",\n      \"deleteendkeywords={${1:list of keywords}}\",\n      \"texcs={${1:list of csnames}}\",\n      \"texcs=[${1:class number}]{${2:list of csnames}}\",\n      \"moretexcs={${1:list of csnames}}\",\n      \"moretexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"deletetexcs={${1:list of csnames}}\",\n      \"deletetexcs=[${1:class number}]{${2:list of csnames}}\",\n      \"directives={${1:list of compiler directives}}\",\n      \"moredirectives={${1:list of compiler directives}}\",\n      \"deletedirectives={${1:list of compiler directives}}\",\n      \"sensitive\",\n      \"alsoletter={${1:character sequence}}\",\n      \"alsodigit={${1:character sequence}}\",\n      \"alsoother={${1:character sequence}}\",\n      \"otherkeywords={${1:keywords}}\",\n      \"tag=${1:<char1><char2>}\",\n      \"string=${1:delimiter}\",\n      \"string=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"morestring=${1:delimiter}\",\n      \"morestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"deletestring=${1:delimiter}\",\n      \"deletestring=[${1:b|d|m|bd|s}]${2:delimiter}\",\n      \"comment=${1:delimiter(s)}\",\n      \"comment=[${1:type}]${2:delimiter(s)}\",\n      \"morecomment=${1:delimiter(s)}\",\n      \"morecomment=[${1:type}]${2:delimiter(s)}\",\n      \"deletecomment=${1:delimiter(s)}\",\n      \"deletecomment=[${1:type}]${2:delimiter(s)}\",\n      \"keywordcomment={${1:keywords}}\",\n      \"morekeywordcomment={${1:keywords}}\",\n      \"deletekeywordcomment={${1:keywords}}\",\n      \"keywordcommentsemicolon={${1:keywords}}{${2:keywords}}{${3:keywords}}\",\n      \"podcomment\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vdmlisting#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vector.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"buvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"svec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"svec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"suvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"uvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"uuvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uuvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"firstelement\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"firstelement{${1:start index}}\"\n      }\n    },\n    {\n      \"name\": \"irvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"irvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"irvec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"irvec[${2:end index}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"icvec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"icvec{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"icvec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"icvec[${2:end index}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"rvec\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"rvec{${1:arg}}{${2:start index}}{${3:end index}}\"\n      }\n    },\n    {\n      \"name\": \"cvec\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cvec{${1:arg}}{${2:start index}}{${3:end index}}\"\n      }\n    },\n    {\n      \"name\": \"undertilde\",\n      \"if\": \"wavy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"undertilde{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/vector#c\": [\n      \"wavy\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vector#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vectorlogos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"simplevectorlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"simplevectorlogo{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\",\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"simplevectorlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"simplevectorlogo[${2:options}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\",\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"simplevectorlogo*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"simplevectorlogo*{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\",\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"simplevectorlogo*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"simplevectorlogo*[${2:options}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\",\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorlogo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vectorlogo{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"vectorlogo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"vectorlogo[${2:suffix}]{${1:name%keyvals}}\",\n        \"keys\": [\n          \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"logoscratch\"\n    },\n    {\n      \"name\": \"logoscratch\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logoscratch[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logogeogebra\"\n    },\n    {\n      \"name\": \"logogeogebra\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logogeogebra[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logotexstudio\"\n    },\n    {\n      \"name\": \"logotexstudio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logotexstudio[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logoemacs\"\n    },\n    {\n      \"name\": \"logoemacs\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logoemacs[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logotexmaker\"\n    },\n    {\n      \"name\": \"logotexmaker\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logotexmaker[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logomiktex\"\n    },\n    {\n      \"name\": \"logomiktex\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logomiktex[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logoctanlion\"\n    },\n    {\n      \"name\": \"logoctanlion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logoctanlion[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logolatexproject\"\n    },\n    {\n      \"name\": \"logolatexproject\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logolatexproject[${1:suffix}]\"\n      }\n    },\n    {\n      \"name\": \"logotexworks\"\n    },\n    {\n      \"name\": \"logotexworks\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"logotexworks[${1:suffix}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\simplevectorlogo,\\\\simplevectorlogo*,\\\\vectorlogo\": [\n      \"emacs\",\n      \"geogebra\",\n      \"scratch\",\n      \"texmaker\",\n      \"texstudio\",\n      \"miktex\",\n      \"ctanlion\",\n      \"latexproject\",\n      \"texworks\"\n    ],\n    \"\\\\simplevectorlogo,\\\\simplevectorlogo*\": [\n      \"emacs-alt\",\n      \"geogebra-icon\",\n      \"scratch-alt\",\n      \"scratch-cat\",\n      \"texmaker-alt\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/venndiagram.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"fillA\"\n    },\n    {\n      \"name\": \"fillB\"\n    },\n    {\n      \"name\": \"fillC\"\n    },\n    {\n      \"name\": \"fillAll\"\n    },\n    {\n      \"name\": \"fillNotABC\"\n    },\n    {\n      \"name\": \"fillOnlyA\"\n    },\n    {\n      \"name\": \"fillOnlyB\"\n    },\n    {\n      \"name\": \"fillOnlyC\"\n    },\n    {\n      \"name\": \"fillNotA\"\n    },\n    {\n      \"name\": \"fillNotB\"\n    },\n    {\n      \"name\": \"fillNotC\"\n    },\n    {\n      \"name\": \"fillNotAorB\"\n    },\n    {\n      \"name\": \"fillNotAorNotB\"\n    },\n    {\n      \"name\": \"fillANotB\"\n    },\n    {\n      \"name\": \"fillBNotA\"\n    },\n    {\n      \"name\": \"fillANotC\"\n    },\n    {\n      \"name\": \"fillCNotA\"\n    },\n    {\n      \"name\": \"fillBNotC\"\n    },\n    {\n      \"name\": \"fillCNotB\"\n    },\n    {\n      \"name\": \"fillACapB\"\n    },\n    {\n      \"name\": \"fillBCapA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillACapC\"\n    },\n    {\n      \"name\": \"fillCCapA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillBCapC\"\n    },\n    {\n      \"name\": \"fillCCapB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillACapBNotC\"\n    },\n    {\n      \"name\": \"fillBCapANotC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillACapCNotB\"\n    },\n    {\n      \"name\": \"fillCCapANotB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillBCapCNotA\"\n    },\n    {\n      \"name\": \"fillCCapBNotA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillACapBCapC\"\n    },\n    {\n      \"name\": \"fillACapCCapB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillBCapACapC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillBCapCCapA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillCCapACapB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillCCapBCapA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setpostvennhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpostvennhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ifvennoldpgf\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vennoldpgftrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vennoldpgffalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifvennshowframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vennshowframetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vennshowframefalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"venndiagram3sets\"\n    },\n    {\n      \"name\": \"venndiagram3sets\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{venndiagram3sets},\\\\begin{venndiagram2sets}\",\n          \"\\\\begin{venndiagram3sets}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"venndiagram2sets\"\n    },\n    {\n      \"name\": \"venndiagram2sets\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{venndiagram3sets},\\\\begin{venndiagram2sets}\",\n          \"\\\\begin{venndiagram2sets}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{venndiagram3sets},\\\\begin{venndiagram2sets}\": [\n      \"shade=\",\n      \"labelA=${1:label text}\",\n      \"labelB=${1:label text}\",\n      \"labelOnlyA=${1:label text}\",\n      \"labelOnlyB=${1:label text}\",\n      \"radius=\",\n      \"hgap=\",\n      \"vgap=\",\n      \"overlap=\",\n      \"showframe\",\n      \"tikzoptions={${1:TikZ options}}\"\n    ],\n    \"\\\\begin{venndiagram3sets}\": [\n      \"labelC=${1:label text}\",\n      \"labelOnlyC=${1:label text}\",\n      \"labelOnlyAB=${1:label text}\",\n      \"labelOnlyAC=${1:label text}\",\n      \"labelOnlyBC=${1:label text}\",\n      \"labelABC=${1:label text}\",\n      \"labelNotABC=${1:label text}\"\n    ],\n    \"\\\\begin{venndiagram2sets}\": [\n      \"labelAB=${1:label text}\",\n      \"labelNotAB=${1:label text}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/venturis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"svn-prov\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"nfssext-cfr\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sishape\"\n    },\n    {\n      \"name\": \"textsi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsi{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"swashstyle\"\n    },\n    {\n      \"name\": \"textswash\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswash{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lstyle\"\n    },\n    {\n      \"name\": \"textl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ostyle\"\n    },\n    {\n      \"name\": \"texto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tstyle\"\n    },\n    {\n      \"name\": \"textt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pstyle\"\n    },\n    {\n      \"name\": \"textp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textp{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tlstyle\"\n    },\n    {\n      \"name\": \"texttl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tostyle\"\n    },\n    {\n      \"name\": \"textto\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textto{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"plstyle\"\n    },\n    {\n      \"name\": \"textpl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"postyle\"\n    },\n    {\n      \"name\": \"textpo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpo{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"instyle\"\n    },\n    {\n      \"name\": \"textin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sustyle\"\n    },\n    {\n      \"name\": \"textsu\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"regwidth\"\n    },\n    {\n      \"name\": \"textrw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrw{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cdwidth\"\n    },\n    {\n      \"name\": \"textcd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textcd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"etwidth\"\n    },\n    {\n      \"name\": \"textet\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textet{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ucwidth\"\n    },\n    {\n      \"name\": \"textuc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textuc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lgweight\"\n    },\n    {\n      \"name\": \"textlg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlg{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"mbweight\"\n    },\n    {\n      \"name\": \"textmb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textmb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dbweight\"\n    },\n    {\n      \"name\": \"textdb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ebweight\"\n    },\n    {\n      \"name\": \"texteb\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texteb{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"olshape\"\n    },\n    {\n      \"name\": \"textol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textol{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tistyle\"\n    },\n    {\n      \"name\": \"textti\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textti{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"altstyle\"\n    },\n    {\n      \"name\": \"textalt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textalt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vtstyle\"\n    },\n    {\n      \"name\": \"textvt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textvtl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvtl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"Hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hwithstroke\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/venturis#c\": [\n      \"osf\",\n      \"lf\",\n      \"scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/venturis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/venturis2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"venturis\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/venturisold.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"venturis\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verbasef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"vrbexin\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"here\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"VautoSubF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"VautoSubF{${1:startline}}{${2:endline}}{${3:file}}{${4:caption}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"VautoSubF\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"VautoSubF[${6:lines-numbered}]{${1:startline}}{${2:endline}}{${3:file}}{${4:caption}}{${5:label}}\"\n      }\n    },\n    {\n      \"name\": \"VautoSfFont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VautoSfFont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"VautoSfFont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VautoSfFont[${2:linenum-font-commands}]{${1:font-commands}}\"\n      }\n    },\n    {\n      \"name\": \"VautoPl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VautoPl{${1:placement}}\"\n      }\n    },\n    {\n      \"name\": \"VautoLines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VautoLines{${1:lines-per-page}}\"\n      }\n    },\n    {\n      \"name\": \"VautoLines\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VautoLines[${2:first-page-lines}]{${1:lines-per-page}}\"\n      }\n    },\n    {\n      \"name\": \"VautoSubFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"VautoSubFF{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"VautoSubFF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"VautoSubFF[${2:linenum-font-commands}]{${1:font-commands}}\"\n      }\n    },\n    {\n      \"name\": \"ifsubstr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ifsubstr{${1:string}}{${2:substring}}{${3:true}}{${4:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verbatim.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"verbatiminput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbatiminput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"verbatiminput*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbatiminput*{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verbatimbox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"readarray\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"verbfilebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbfilebox{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"verbfilebox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"verbfilebox[${2:pre-commands}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"theverbbox\"\n    },\n    {\n      \"name\": \"boxtopsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxbottomsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addvbuffer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addvbuffer{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"addvbuffer\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addvbuffer[${2:length}]{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"verbfilenobox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verbfilenobox{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"verbfilenobox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"verbfilenobox[${2:pre-commands}]{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verbbox\"\n    },\n    {\n      \"name\": \"verbbox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pre-commands}]\"\n      }\n    },\n    {\n      \"name\": \"myverbbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:token%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"myverbbox\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pre-commands}]{${1:token%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"verbnobox\"\n    },\n    {\n      \"name\": \"verbnobox\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:pre-commands}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verbatimcopy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setOutputDir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setOutputDir{${1:directory%definition}}\"\n      }\n    },\n    {\n      \"name\": \"VerbatimCopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VerbatimCopy{${1:input file%file}}{${2:output file%file}}\"\n      }\n    },\n    {\n      \"name\": \"VCverbaction\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VCverbaction{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/verbatimcopy#c\": [\n      \"compatibility\",\n      \"enquotefilenames\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/verbatimcopy#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/verbdef.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"verbdef\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"verbdef{${1:cmd}}{${2:verb text}}\"\n      }\n    },\n    {\n      \"name\": \"verbdef*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"verbdef*{${1:cmd}}{${2:verb text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verbments.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fancyvrb\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"plset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pyglist},\\\\plset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"listofpyglistings\"\n    },\n    {\n      \"name\": \"listofpyglistingsname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"listofpyglistingsname{${1:name%text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pyglist\"\n    },\n    {\n      \"name\": \"pyglist\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pyglist},\\\\plset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{pyglist},\\\\plset\": [\n      \"abovecaptionskip=\",\n      \"belowcaptionskip=\",\n      \"bgcolor=\",\n      \"caption={${1:text}}\",\n      \"captionbgcolor=\",\n      \"captionfont=${1:font commands}\",\n      \"encoding=${1:encoding}\",\n      \"fontsize=\",\n      \"fvset={${1:fancyvrb options}}\",\n      \"gobble=${1:integer}\",\n      \"language=${1:language}\",\n      \"label=\",\n      \"listingname=${1:name}\",\n      \"listingnamefont=${1:font commands}\",\n      \"mathescape\",\n      \"numbers=${1|none,left,right|}\",\n      \"numbersep=\",\n      \"showspaces\",\n      \"style=${1:Pygments style}\",\n      \"texcl\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/verdana.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/verdana#c\": [\n      \"nofligs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/verdana#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/verifiche.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"pgffor\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"enumitem\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ulem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:nome dell’istituto%text}}\"\n      }\n    },\n    {\n      \"name\": \"asyear\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyear{${1:anno scolastico}}\"\n      }\n    },\n    {\n      \"name\": \"asyear\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"asyear[${2:preambolo%text}]{${1:anno scolastico}}\"\n      }\n    },\n    {\n      \"name\": \"testtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testtype{${1:tipo di compito%text}}\"\n      }\n    },\n    {\n      \"name\": \"instruction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instruction{${1:istruzioni%text}}\"\n      }\n    },\n    {\n      \"name\": \"duration\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"duration{${1:durata%text}}\"\n      }\n    },\n    {\n      \"name\": \"duration\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"duration[${2:preambolo%text}]{${1:durata%text}}\"\n      }\n    },\n    {\n      \"name\": \"durationfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"durationfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:testo del sottotitolo%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitlefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitlefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"printheading\"\n    },\n    {\n      \"name\": \"headingstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headingstyle{${1:style%keyvals}}\",\n        \"keys\": [\n          \"\\\\headingstyle#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defineheadingstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defineheadingstyle{${1:nome dello stile%specialDef}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"partialpt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialpt{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"inlinesol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inlinesol{${1:testo%text}}\"\n      }\n    },\n    {\n      \"name\": \"completetext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"completetext{${1:testo%text}}\"\n      }\n    },\n    {\n      \"name\": \"completetext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"completetext[${2:dim%l}]{${1:testo%text}}\"\n      }\n    },\n    {\n      \"name\": \"truefalse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"truefalse{${1:V|F}}\"\n      }\n    },\n    {\n      \"name\": \"checkmarker\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"checked\"\n    },\n    {\n      \"name\": \"openquestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"openquestion{${1:soluzione%text}}\"\n      }\n    },\n    {\n      \"name\": \"openquestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"openquestion[${2:options%keyvals}]{${1:soluzione%text}}\",\n        \"keys\": [\n          \"\\\\openquestion\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"finderror\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"finderror{${1:testo sbagliato%text}}{${2:testo giusto%text}}\"\n      }\n    },\n    {\n      \"name\": \"textandimage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textandimage{${1:rx material%text}}{${2:dx material%text}}\"\n      }\n    },\n    {\n      \"name\": \"textandimage\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textandimage[${3:leftwidth%l}]{${1:rx material%text}}{${2:dx material%text}}\"\n      }\n    },\n    {\n      \"name\": \"textandimage\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"textandimage[${3:leftwidth%l}][${4:rightwidth%l}]{${1:rx material%text}}{${2:dx material%text}}\"\n      }\n    },\n    {\n      \"name\": \"makecolumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"makecolumn{${1:width}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"columnseparation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"institutefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institutefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ptfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"asyearfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"asyearfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"testtypefont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testtypefont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"instructionfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"instructionfont{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"solutionfont\"\n    },\n    {\n      \"name\": \"instructiondelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headercandidatenamelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerclasslabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headerdatelabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"candidatenamerulerlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"classrulerlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"daterulerlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerciselabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ptrulerlength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partialptprefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialptprefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"ptlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptlabel{${1:plural}}\"\n      }\n    },\n    {\n      \"name\": \"ptlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ptlabel[${2:singular}]{${1:plural}}\"\n      }\n    },\n    {\n      \"name\": \"partialptlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialptlabel{${1:plural}}\"\n      }\n    },\n    {\n      \"name\": \"partialptlabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"partialptlabel[${2:singular}]{${1:plural}}\"\n      }\n    },\n    {\n      \"name\": \"diffsymb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ptdelimiters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ptdelimiters{${1:coppia di caratteri}}\"\n      }\n    },\n    {\n      \"name\": \"partialptdelimiters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"partialptdelimiters{${1:coppia di caratteri}}\"\n      }\n    },\n    {\n      \"name\": \"closedquestionitem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionlabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themultitestcounter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertreftonum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"convertreftonum{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"exercisemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exercisetitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"italiandictiornary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openquestionheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openquestionlinecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"openquestionwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savepointsaux\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"solutionscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sumpartialpt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theexercisenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thepartialpoints\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"esercizio\"\n    },\n    {\n      \"name\": \"esercizio\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{esercizio},\\\\begin{esercizio*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"esercizio*\"\n    },\n    {\n      \"name\": \"esercizio*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{esercizio},\\\\begin{esercizio*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"soluzione\"\n    },\n    {\n      \"name\": \"soluzione\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{soluzione}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"closedquestion\"\n    },\n    {\n      \"name\": \"closedquestion\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"closedquestion*\"\n    },\n    {\n      \"name\": \"closedquestion*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crocette\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crocette\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"crocette*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"crocette*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\",\n          \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"multitest\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:n}]\"\n      }\n    },\n    {\n      \"name\": \"enumerate*\"\n    },\n    {\n      \"name\": \"enumerate*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"itemize*\"\n    },\n    {\n      \"name\": \"itemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"description*\"\n    },\n    {\n      \"name\": \"description*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/verifiche#c\": [\n      \"solutions\",\n      \"noinstitute\",\n      \"noinstruction\",\n      \"noduration\",\n      \"noasyear\",\n      \"nocandidatename\",\n      \"notesttype\",\n      \"nosubtitle\",\n      \"nonumbered\",\n      \"noexercisept\",\n      \"color=\",\n      \"red\",\n      \"blue\"\n    ],\n    \"\\\\headingstyle#c\": [\n      \"galilei\",\n      \"einstein\",\n      \"cattaneo\",\n      \"%verificheheadingstyle\"\n    ],\n    \"\\\\pagestyle#c\": [\n      \"mainverifiche\",\n      \"verifiche\"\n    ],\n    \"\\\\begin{esercizio},\\\\begin{esercizio*}\": [\n      \"label=${1:text}\",\n      \"diff=${1:number}\",\n      \"pt=${1:number}\",\n      \"partialpt\"\n    ],\n    \"\\\\begin{soluzione}\": [\n      \"label=${1:text}\"\n    ],\n    \"\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\": [\n      \"topsep=\",\n      \"partopsep=\",\n      \"parsep=\",\n      \"itemsep=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"listparindent=\",\n      \"labelwidth=\",\n      \"labelsep=\",\n      \"itemindent=\",\n      \"label=${1:commands}\",\n      \"label*=${1:commands}\",\n      \"ref=${1:commands}\",\n      \"font=${1:commands}\",\n      \"format=${1:commands}\",\n      \"align=${1|left,right,parleft|}\",\n      \"labelindent=\",\n      \"left=${1:labelindent}\",\n      \"left=${1:labelindent} .. ${2:leftmargin}\",\n      \"widest\",\n      \"widest=${1:string}\",\n      \"widest*=${1:integer}\",\n      \"labelsep*=\",\n      \"labelindent*=\",\n      \"start=${1:integer}\",\n      \"resume\",\n      \"resume=${1:series name}\",\n      \"resume*\",\n      \"resume*=${1:series name}\",\n      \"series=${1:series name}\",\n      \"beginpenalty=${1:integer}\",\n      \"midpenalty=${1:integer}\",\n      \"endpenalty=${1:integer}\",\n      \"before=${1:code}\",\n      \"before*=${1:code}\",\n      \"after=${1:code}\",\n      \"after*=${1:code}\",\n      \"first=${1:code}\",\n      \"first*=${1:code}\",\n      \"style=${1|standard,unboxed,nextline,sameline,multiline|}\",\n      \"noitemsep\",\n      \"nosep\",\n      \"wide\",\n      \"wide=${1:parindent}\",\n      \"itemjoin=${1:string}\",\n      \"itemjoin*=${1:string}\",\n      \"afterlabel=${1:string}\",\n      \"mode=${1|unboxed,boxed|}\"\n    ],\n    \"\\\\openquestion\": [\n      \"type=${1|lines,squares|}\",\n      \"width=\",\n      \"height=\",\n      \"spacedim=\",\n      \"linecolor=\"\n    ],\n    \"\\\\begin{enumerate}#c,\\\\begin{itemize}#c,\\\\begin{description}#c,\\\\begin{enumerate*}#c,\\\\begin{itemize*}#c,\\\\begin{description*}#c,\\\\begin{closedquestion},\\\\begin{closedquestion*},\\\\begin{crocette},\\\\begin{crocette*}\": [\n      \"A\",\n      \"a\",\n      \"I\",\n      \"i\",\n      \"1\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/verifiche#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/verifycommand.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"VerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"VerifyCommand{${1:command}}{${2:md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"VerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"VerifyCommand[${3:your package}]{${1:command}}{${2:md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"VerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"VerifyCommand[${3:your package}][${4:their package}]{${1:command}}{${2:md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"VerifyEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"VerifyEnvironment{${1:envname}}{${2:begin md5 checksum}}{${3:end md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"VerifyEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"VerifyEnvironment[${4:your package}]{${1:envname}}{${2:begin md5 checksum}}{${3:end md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"VerifyEnvironment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}\",\n        \"snippet\": \"VerifyEnvironment[${4:your package}][${5:their package}]{${1:envname}}{${2:begin md5 checksum}}{${3:end md5 checksum}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfVerifyCommand{${1:command}}{${2:md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfVerifyCommand[${5:your package}]{${1:command}}{${2:md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyCommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"IfVerifyCommand[${5:your package}][${6:their package}]{${1:command}}{${2:md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentBegin{${1:envname}}{${2:begin md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentBegin[${5:your package}]{${1:envname}}{${2:begin md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentBegin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentBegin[${5:your package}][${6:their package}]{${1:envname}}{${2:begin md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentEnd{${1:envname}}{${2:end md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentEnd[${5:your package}]{${1:envname}}{${2:end md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyEnvironmentEnd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][]{}{}{}{}\",\n        \"snippet\": \"IfVerifyEnvironmentEnd[${5:your package}][${6:their package}]{${1:envname}}{${2:end md5 checksum}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"TestVerifyCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfVerifyCommandPassed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfVerifyCommandPassed{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfVerifyCommandFailed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfVerifyCommandFailed{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"VERCMDWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"VERCMDWarning{${1:your package}}{${2:their package}}{${3:defn name}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/verifycommand\": [\n      \"disable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/verifycommand\"\n  ]\n}"
  },
  {
    "path": "dev/packages/verse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"indentpattern\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"indentpattern{${1:digits}}\"\n      }\n    },\n    {\n      \"name\": \"versewidth\"\n    },\n    {\n      \"name\": \"vin\"\n    },\n    {\n      \"name\": \"vgap\"\n    },\n    {\n      \"name\": \"vindent\"\n    },\n    {\n      \"name\": \"leftmargini\"\n    },\n    {\n      \"name\": \"stanzaskip\"\n    },\n    {\n      \"name\": \"verselinebreak\"\n    },\n    {\n      \"name\": \"verselinebreak\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"verselinebreak[${1:length}]\"\n      }\n    },\n    {\n      \"name\": \"flagverse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"flagverse{${1:flag}}\"\n      }\n    },\n    {\n      \"name\": \"vleftskip\"\n    },\n    {\n      \"name\": \"vrightskip\"\n    },\n    {\n      \"name\": \"poemlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemlines{${1:nth}}\"\n      }\n    },\n    {\n      \"name\": \"setverselinenums\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setverselinenums{${1:first line num}}{${2:start nums at}}\"\n      }\n    },\n    {\n      \"name\": \"thepoemline\"\n    },\n    {\n      \"name\": \"verselinenumfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"verselinenumfont{${1:font-spec}}\"\n      }\n    },\n    {\n      \"name\": \"verselinenumbersleft\"\n    },\n    {\n      \"name\": \"verselinenumbersright\"\n    },\n    {\n      \"name\": \"poemtitle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poemtitle{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"poemtitle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"poemtitle*{${1:short}}{${2:long}}\"\n      }\n    },\n    {\n      \"name\": \"poemtoc\"\n    },\n    {\n      \"name\": \"poemtitlefont\"\n    },\n    {\n      \"name\": \"beforepoemtitleskip\"\n    },\n    {\n      \"name\": \"afterpoemtitleskip\"\n    },\n    {\n      \"name\": \"poemtitlemark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"poemtitlemark{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"newarray\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newarray{${1:array name}}{${2:low}}{${3:high}}\"\n      }\n    },\n    {\n      \"name\": \"setarrayelement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setarrayelement{${1:array name}}{${2:index}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"getarrayelement\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"getarrayelement{${1:array name}}{${2:index}}{${3:result}}\"\n      }\n    },\n    {\n      \"name\": \"checkarrayindex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"checkarrayindex{${1:array name}}{${2:index}}\"\n      }\n    },\n    {\n      \"name\": \"stringtoarray\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"stringtoarray{${1:array name}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"arraytostring\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arraytostring{${1:array name}}{${2:result}}\"\n      }\n    },\n    {\n      \"name\": \"checkifinteger\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"checkifinteger{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"altindentfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"altindenttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bounderrorfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bounderrortrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gobm\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gobm{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ifaltindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifstarpattern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integerfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"integertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patternfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"patterntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"starpatternfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"starpatterntrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thechrsinstr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefvsline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theHpoemline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevslineno\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vlnumfont\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verse\"\n    },\n    {\n      \"name\": \"verse\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:length of average line}]\"\n      }\n    },\n    {\n      \"name\": \"altverse\"\n    },\n    {\n      \"name\": \"patverse\"\n    },\n    {\n      \"name\": \"patverse*\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/version.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"includeversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeversion{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"excludeversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludeversion{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"excludeversion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"excludeversion[${2:text}]{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/versions.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"markversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"markversion{${1:version%envname}}\"\n      }\n    },\n    {\n      \"name\": \"includeversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeversion{${1:version%envname}}\"\n      }\n    },\n    {\n      \"name\": \"excludeversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"excludeversion{${1:version%envname}}\"\n      }\n    },\n    {\n      \"name\": \"processifversion\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"processifversion{${1:version}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"includeversionnogroup\",\n      \"if\": \"nogroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeversionnogroup{${1:version%envname}}\"\n      }\n    },\n    {\n      \"name\": \"versionmessage\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"versionmessage{${1:version}}{${2:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\versionmessage#c\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"comment\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/versions#c\": [\n      \"nogroup\",\n      \"tracing\"\n    ],\n    \"\\\\versionmessage#c\": [\n      \"excluded\",\n      \"included\",\n      \"included with marks\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/versions#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/versonotes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"versonote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versonote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versoleftmargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versotextwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"versolayout\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vertbars.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lineno\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"LNenv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtodef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"addtodef{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"pwvbbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"barspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"addtomakeLNL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pwvbLNL\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vertbar\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/vertbars#c\": [\n      \"addpageno\",\n      \"mathrefs\",\n      \"edtable\",\n      \"longtable\",\n      \"nolongtablepatch\",\n      \"left\",\n      \"right\",\n      \"switch\",\n      \"switch*\",\n      \"columnwise\",\n      \"pagewise\",\n      \"running\",\n      \"modulo\",\n      \"modulo*\",\n      \"mathlines\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vertbars#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vgrid.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"everypage\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"ifoddpage\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vhistory.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxtable\"\n    },\n    {\n      \"name\": \"sets\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vhEntry\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vhEntry{${1:version}}{${2:date}}{${3:author1|${5:author2}|...}}{${4:changes%text}}\"\n      }\n    },\n    {\n      \"name\": \"vhCurrentVersion\"\n    },\n    {\n      \"name\": \"vhCurrentDate\"\n    },\n    {\n      \"name\": \"vhAllAuthorsSet\"\n    },\n    {\n      \"name\": \"vhListAllAuthors\"\n    },\n    {\n      \"name\": \"vhListAllAuthorsLong\"\n    },\n    {\n      \"name\": \"vhListAllAuthorsLongWithAbbrev\"\n    },\n    {\n      \"name\": \"vhAbbrevSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhAbbrevLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhAbbrevRight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhAuthorColWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhChangeColWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhhistoryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhversionname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhdatename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhauthorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vhchangename\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"versionhistory\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/vhistory#c\": [\n      \"nochapter\",\n      \"tocentry\",\n      \"owncaptions\",\n      \"tablegrid\",\n      \"omittable\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vhistory#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vietnam.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ifpdf\",\n      \"if\": \"cmap\"\n    },\n    {\n      \"name\": \"cmap\",\n      \"if\": \"cmap\"\n    },\n    {\n      \"name\": \"varioref-vi\",\n      \"if\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsvietnam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUSenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abreve\"\n    },\n    {\n      \"name\": \"abreve\"\n    },\n    {\n      \"name\": \"ABREVE\"\n    },\n    {\n      \"name\": \"Acircumflex\"\n    },\n    {\n      \"name\": \"acircumflex\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"Ecircumflex\"\n    },\n    {\n      \"name\": \"ecircumflex\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"h\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ocircumflex\"\n    },\n    {\n      \"name\": \"ocircumflex\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\"\n    },\n    {\n      \"name\": \"OHORN\"\n    },\n    {\n      \"name\": \"ohorn\"\n    },\n    {\n      \"name\": \"Ohorn\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"UHORN\"\n    },\n    {\n      \"name\": \"uhorn\"\n    },\n    {\n      \"name\": \"Uhorn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/vietnam#c\": [\n      \"viscii\",\n      \"tcvn\",\n      \"vps\",\n      \"mviscii\",\n      \"noinputenc\",\n      \"nocaptions\",\n      \"utf8\",\n      \"utf8x\",\n      \"varioref\",\n      \"cmap\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vietnam#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/viking.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vikfamily\"\n    },\n    {\n      \"name\": \"textvik\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textvik{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/virginialake.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"vlor\"\n    },\n    {\n      \"name\": \"vlan\"\n    },\n    {\n      \"name\": \"vlim\"\n    },\n    {\n      \"name\": \"vlne\"\n    },\n    {\n      \"name\": \"vldi\"\n    },\n    {\n      \"name\": \"vlmi\"\n    },\n    {\n      \"name\": \"vls\"\n    },\n    {\n      \"name\": \"vlsbr\"\n    },\n    {\n      \"name\": \"vlscn\"\n    },\n    {\n      \"name\": \"vlhole\"\n    },\n    {\n      \"name\": \"vlsmallbrackets\"\n    },\n    {\n      \"name\": \"vlnosmallbrackets\"\n    },\n    {\n      \"name\": \"vlupdate\"\n    },\n    {\n      \"name\": \"vlstore\"\n    },\n    {\n      \"name\": \"vlread\"\n    },\n    {\n      \"name\": \"vldot\"\n    },\n    {\n      \"name\": \"vlsqbrl\"\n    },\n    {\n      \"name\": \"vlsqbrr\"\n    },\n    {\n      \"name\": \"vlrobrl\"\n    },\n    {\n      \"name\": \"vlrobrr\"\n    },\n    {\n      \"name\": \"vlnos\"\n    },\n    {\n      \"name\": \"vlnostructuresyntax\"\n    },\n    {\n      \"name\": \"vlnostructuresyntax\"\n    },\n    {\n      \"name\": \"vlsmallleftlabels\"\n    },\n    {\n      \"name\": \"vlnosmallleftlabels\"\n    },\n    {\n      \"name\": \"vlderivation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vlderivation{${1:derivation}}\"\n      }\n    },\n    {\n      \"name\": \"vlproof\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vlproof{${1:left label}}{${2:right label}}{${3:conclusion}}\"\n      }\n    },\n    {\n      \"name\": \"vlder\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlder{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vltreeder\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vltreeder{${1:label}}{${2:conclusion}}{${3:left premiss}}{${4:middle premiss}}{${5:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vlinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vliinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vliinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss}}{${5:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vliiinf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vliiinf{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss}}{${5:middle premiss}}{${6:right premiss}}\"\n      }\n    },\n    {\n      \"name\": \"vlpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vlpr{${1:left label}}{${2:right label}}{${3:conclusion}}\"\n      }\n    },\n    {\n      \"name\": \"vlde\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlde{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss (${5:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vltr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vltr{${1:label}}{${2:conclusion}}{${3:left premiss (${6:derivation})}}{${4:middle premiss (${7:derivation})}}{${5:right premiss (${8:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vltr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vltr{${1:label}}{${2:conclusion}}{${3:left premiss (${7:derivation})}}{${4:middle premiss (${8:derivation})}}{${5:right premiss (${9:derivation})}}{${6:scale}}\"\n      }\n    },\n    {\n      \"name\": \"vlin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"vlin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:premiss (${5:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vliin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"vliin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss (${6:derivation})}}{${5:right premiss (${7:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vliiin\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"vliiin{${1:left label}}{${2:right label}}{${3:conclusion}}{${4:left premiss (${7:derivation})}}{${5:middle premiss (${8:derivation})}}{${6:right premiss (${9:derivation})}}\"\n      }\n    },\n    {\n      \"name\": \"vlhy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vlhy{${1:premiss}}\"\n      }\n    },\n    {\n      \"name\": \"aftriangletrue\"\n    },\n    {\n      \"name\": \"aftrianglefalse\"\n    },\n    {\n      \"name\": \"afaid\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaid{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaidcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaidex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaidexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaidexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaidnw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaidnw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaidnwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaidnwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaiu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaiunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaiunwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afnegspace\"\n    },\n    {\n      \"name\": \"afraise\"\n    },\n    {\n      \"name\": \"aflower\"\n    },\n    {\n      \"name\": \"afacd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacd{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}{${9:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnw\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afacdnw{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacdexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacdnwexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacdnwexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}{${9:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}{${11:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunw\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afacunw{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacuexsq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afacuexsq{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afacunwexsqcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afacunwexsqcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:scale numerator}}{${6:scale denominator}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afaiu{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:colour}}{${8:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuex\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuex{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}\"\n      }\n    },\n    {\n      \"name\": \"afaiuexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"afaiuexcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:label}}{${6:label}}{${7:scale numerator}}{${8:scale denominator}}{${9:colour}}{${10:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afaiunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afaiunwcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afaiunwcol{${1:label}}{${2:label}}{${3:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawd\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afawd{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afawdcol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawdnw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afawdnw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawu\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afawu{${1:label}}{${2:label}}{${3:label}}{${4:label}}\"\n      }\n    },\n    {\n      \"name\": \"afawucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"afawucol{${1:label}}{${2:label}}{${3:label}}{${4:label}}{${5:colour}}{${6:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afawunw\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afawunw{${1:label}}{${2:label}}\"\n      }\n    },\n    {\n      \"name\": \"aff\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aff{${1:scale}}{${2:label}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"affcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"affcol{${1:scale}}{${2:label}}{${3:label}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aft\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aft{${1:scale}}{${2:label}}{${3:label}}\"\n      }\n    },\n    {\n      \"name\": \"aftcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcol{${1:scale}}{${2:label}}{${3:label}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvdj\"\n    },\n    {\n      \"name\": \"afvj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afvj{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afvjcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvjd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afvjd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afvjdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afvju\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afvju{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afvjucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afvjucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvj\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftvj{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftvjcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftvjd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftvjdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftvju\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftvju{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftvjucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftvjucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afex\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afex{${1:scale}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afexcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afexcol{${1:scale}}{${2:scale}}{${3:colour}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afcjl{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afcjlcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjld\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjld{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjldcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjldcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjlu{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjlucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjlucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftcjl{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftcjlcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjld\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjld{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjldcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjldcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlu\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjlu{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjlucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjlucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afcjr{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"afcjrcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjrd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjrdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"afcjru\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"afcjru{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"afcjrucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"afcjrucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aftcjr{${1:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrcol\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"aftcjrcol{${1:scale}}{${2:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjrd{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrdcol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjrdcol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjru\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"aftcjru{${1:label}}{${2:label}}{${3:scale}}\"\n      }\n    },\n    {\n      \"name\": \"aftcjrucol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"aftcjrucol{${1:label}}{${2:label}}{${3:scale}}{${4:colour}}\"\n      }\n    },\n    {\n      \"name\": \"affr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"affr{${1:scale}}{${2:scale}}\"\n      }\n    },\n    {\n      \"name\": \"atomicflow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atomicflow{${1:atomicflow}}\"\n      }\n    },\n    {\n      \"name\": \"atomicflowinv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atomicflowinv{${1:atomicflow}}\"\n      }\n    },\n    {\n      \"name\": \"vldownsmash\"\n    },\n    {\n      \"name\": \"vlupsmash\"\n    },\n    {\n      \"name\": \"vlsmash\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vmargin.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setpapersize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpapersize{${1:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\setpapersize,\\\\usepackage/vmargin#c\",\n          \"\\\\setpapersize\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpapersize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpapersize[${2:landscape|portrait}]{${1:size%keyvals}}\",\n        \"keys\": [\n          \"\\\\setpapersize,\\\\usepackage/vmargin#c\",\n          \"\\\\setpapersize\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setpapersize\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"setpapersize{${1:custom}}{${2:width}}{${3:height}}\"\n      }\n    },\n    {\n      \"name\": \"PaperWidth\"\n    },\n    {\n      \"name\": \"PaperHeight\"\n    },\n    {\n      \"name\": \"ifLandscape\"\n    },\n    {\n      \"name\": \"setmargins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setmargins{${1:left}}{${2:top}}{${3:textwidth}}{${4:textheight}}{${5:headheight}}{${6:headsep}}{${7:footheight}}{${8:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"setmarginsrb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setmarginsrb{${1:left}}{${2:top}}{${3:right}}{${4:bottom}}{${5:headheight}}{${6:headsep}}{${7:footheight}}{${8:footskip}}\"\n      }\n    },\n    {\n      \"name\": \"setmargnohf\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmargnohf{${1:left}}{${2:top}}{${3:textwidth}}{${4:textheight}}\"\n      }\n    },\n    {\n      \"name\": \"setmargnohfrb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmargnohfrb{${1:left}}{${2:top}}{${3:right}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"setmarg\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmarg{${1:left}}{${2:top}}{${3:textwidth}}{${4:textheight}}\"\n      }\n    },\n    {\n      \"name\": \"setmargrb\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setmargrb{${1:left}}{${2:top}}{${3:right}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"shiftmargins\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/vmargin#c\": [\n      \"shiftmargins\",\n      \"portrait\",\n      \"landscape\",\n      \"nohf\"\n    ],\n    \"\\\\setpapersize,\\\\usepackage/vmargin#c\": [\n      \"A0\",\n      \"A1\",\n      \"A2\",\n      \"A3\",\n      \"A4\",\n      \"A5\",\n      \"A6\",\n      \"A7\",\n      \"A8\",\n      \"A9\",\n      \"B0\",\n      \"B1\",\n      \"B2\",\n      \"B3\",\n      \"B4\",\n      \"B5\",\n      \"B6\",\n      \"B7\",\n      \"B8\",\n      \"B9\",\n      \"C0\",\n      \"C1\",\n      \"C2\",\n      \"C3\",\n      \"C4\",\n      \"C5\",\n      \"C6\",\n      \"C7\",\n      \"C8\",\n      \"C9\",\n      \"USletter\",\n      \"USlegal\",\n      \"USexecutive\"\n    ],\n    \"\\\\setpapersize\": [\n      \"custom\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vmargin#c\",\n    \"\\\\setpapersize,\\\\usepackage/vmargin#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vntex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"inputenc\"\n    },\n    {\n      \"name\": \"ucs\",\n      \"if\": \"utf8x\"\n    },\n    {\n      \"name\": \"ifpdf\",\n      \"if\": \"cmap\"\n    },\n    {\n      \"name\": \"cmap\",\n      \"if\": \"cmap\"\n    },\n    {\n      \"name\": \"varioref-vi\",\n      \"if\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsvietnam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateUSenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dateenglish\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datevietnam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headpagename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Abreve\"\n    },\n    {\n      \"name\": \"abreve\"\n    },\n    {\n      \"name\": \"ABREVE\"\n    },\n    {\n      \"name\": \"Acircumflex\"\n    },\n    {\n      \"name\": \"acircumflex\"\n    },\n    {\n      \"name\": \"ACIRCUMFLEX\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"Ecircumflex\"\n    },\n    {\n      \"name\": \"ecircumflex\"\n    },\n    {\n      \"name\": \"ECIRCUMFLEX\"\n    },\n    {\n      \"name\": \"guillemotleft\"\n    },\n    {\n      \"name\": \"guillemotright\"\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"h\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"h{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Ocircumflex\"\n    },\n    {\n      \"name\": \"ocircumflex\"\n    },\n    {\n      \"name\": \"OCIRCUMFLEX\"\n    },\n    {\n      \"name\": \"OHORN\"\n    },\n    {\n      \"name\": \"ohorn\"\n    },\n    {\n      \"name\": \"Ohorn\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"UHORN\"\n    },\n    {\n      \"name\": \"uhorn\"\n    },\n    {\n      \"name\": \"Uhorn\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/vntex#c\": [\n      \"viscii\",\n      \"tcvn\",\n      \"vps\",\n      \"mviscii\",\n      \"noinputenc\",\n      \"nocaptions\",\n      \"utf8\",\n      \"utf8x\",\n      \"varioref\",\n      \"cmap\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vntex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/volumes.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"nowtoaux\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"allvolumescommand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"allvolumescommand{${1:commands}}\"\n      }\n    },\n    {\n      \"name\": \"alwaysinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"alwaysinclude{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"ifnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ifnumber{${1:arg}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"onlyvolume\"\n    },\n    {\n      \"name\": \"onlyvolume\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"onlyvolume[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"thenumberofvolumes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thevolume\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"voladdtolof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"voladdtolof{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"voladdtolot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"voladdtolot{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"voladdtotoc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"voladdtotoc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volume\"\n    },\n    {\n      \"name\": \"volumecommand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"volumecommand{${1:number}}{${2:commands}}\"\n      }\n    },\n    {\n      \"name\": \"volumelist\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumename\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"volumename{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"volumeone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumethree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"volumetwo\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/volumes#c\": [\n      \"manual\",\n      \"tocall\",\n      \"lofall\",\n      \"lotall\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/volumes#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vowel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"putcvowel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"putcvowel{${1:symbol}}{${2:num}}\"\n      }\n    },\n    {\n      \"name\": \"putcvowel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"putcvowel[${3:dot pos%keyvals}]{${1:symbol}}{${2:num}}\",\n        \"keys\": [\n          \"\\\\putcvowel,\\\\putvowel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"putvowel\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"putvowel{${1:symbol}}{${2:x%l}}{${3:y%l}}\"\n      }\n    },\n    {\n      \"name\": \"putvowel\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"putvowel[${4:dot pos%keyvals}]{${1:symbol}}{${2:x%l}}{${3:y%l}}\",\n        \"keys\": [\n          \"\\\\putcvowel,\\\\putvowel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"super\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"super{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vowelhunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vowelvunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vowelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vowelline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vowelsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagrate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrectdgm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectdgmtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rectdgmfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftriangledgm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledgmtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"triangledgmfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifthreelevel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threeleveltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"threelevelfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifnoerase\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noerasetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noerasefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"diagline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"diagline{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vowel\"\n    },\n    {\n      \"name\": \"vowel\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{vowel}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{vowel}\": [\n      \"plain\",\n      \"simple\",\n      \"standard\",\n      \"ipanew\",\n      \"rectangle\",\n      \"triangle\",\n      \"three\"\n    ],\n    \"\\\\putcvowel,\\\\putvowel\": [\n      \"l\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vpe.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"form\"\n    },\n    {\n      \"name\": \"pifont\",\n      \"if\": \"form\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"form=true\"\n    },\n    {\n      \"name\": \"pifont\",\n      \"if\": \"form=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vpesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/vpe#c,\\\\vpesetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"VPE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vpeentry\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vpeentry{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"vpesystem\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpesystem{${1:arg1}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/vpe#c\": [\n      \"debug\"\n    ],\n    \"\\\\usepackage/vpe#c,\\\\vpesetup#c\": [\n      \"active\",\n      \"inactive\",\n      \"dupes\",\n      \"nodupes\",\n      \"linux\",\n      \"unix\",\n      \"win\",\n      \"dos\",\n      \"system=${1|linux,win|}\",\n      \"form\",\n      \"noform\",\n      \"acroform\",\n      \"noacroform\",\n      \"command=${1:script}\",\n      \"progname=${1:program}\",\n      \"application=${1:application}\",\n      \"parameters=${1:parameters}\",\n      \"width=${1:integer}\",\n      \"height=${1:integer}\",\n      \"depth=${1:integer}\",\n      \"color=${1:r g b}\",\n      \"border=${1:r g b}\",\n      \"flag=${1:flag}\",\n      \"attr=${1:attr}\",\n      \"everyhbox\",\n      \"noeveryhbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vpe#c\",\n    \"\\\\usepackage/vpe#c,\\\\vpesetup#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/vplref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lineno\"\n    },\n    {\n      \"name\": \"varioref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vpagelineref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vpagelineref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"LineWithPage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LineWithPage{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vrbexin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"verbatim\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vrsion.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\",\n      \"if\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"version\"\n    },\n    {\n      \"name\": \"keepversion\"\n    },\n    {\n      \"name\": \"stepversion\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vruler.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setvruler\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"setvruler[${1:scale}][${2:initcount}]\"\n      }\n    },\n    {\n      \"name\": \"setvruler\",\n      \"arg\": {\n        \"format\": \"[][][][][][][][][]\",\n        \"snippet\": \"setvruler[${1:scale}][${2:initcount}][${3:step}][${4:digits}][${5:mode}][${6:odd-hshift}][${7:even-hshift}][${8:vshift}][${9:height}]\"\n      }\n    },\n    {\n      \"name\": \"unsetvruler\"\n    },\n    {\n      \"name\": \"rulercount\"\n    },\n    {\n      \"name\": \"VrulerDefined\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EntryVruler\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fillzeros\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fillzeros[${2:width}]{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"makevruler\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][]\",\n        \"snippet\": \"makevruler[${1:scale}][${2:initcount}][${3:step}][${4:digits}][${5:height}]\"\n      }\n    },\n    {\n      \"name\": \"SET\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[][][][][][][][][]\",\n        \"snippet\": \"SET[${1:scale}][${2:initcount}][${3:step}][${4:digits}][${5:mode}][${6:odd-hshift}][${7:even-hshift}][${8:vshift}][${9:height}]\"\n      }\n    },\n    {\n      \"name\": \"toksone\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tokstwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toksthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toksfour\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"toksfive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"push\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"popnil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"STKcount\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vtable.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"dashrule\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"forloop\"\n    },\n    {\n      \"name\": \"alphalph\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"nextRow\"\n    },\n    {\n      \"name\": \"lb\"\n    },\n    {\n      \"name\": \"setMultiColRow\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setMultiColRow{${1:col num}}{${2:row num}}{${3:max width%l}}{${4:min width%l}}{${5:hmode}}{${6:vmode}}{${7:left sep%l}}{${8:right sep%l}}{${9:text}}\"\n      }\n    },\n    {\n      \"name\": \"setMultiColumn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"setMultiColumn{${1:col num}}{${2:max width%l}}{${3:min width%l}}{${4:hmode}}{${5:vmode}}{${6:left sep%l}}{${7:right sep%l}}{${8:text}}\"\n      }\n    },\n    {\n      \"name\": \"setMultiRow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setMultiRow{${1:col num}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"setMultiRow\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setMultiRow{${1:col num}}[${3:min height%l}]{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"tableFormatedCell\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tableFormatedCell{${1:max width%l}}{${2:hmode}}{${3:vmode}}\"\n      }\n    },\n    {\n      \"name\": \"tableFormatedCell\",\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"tableFormatedCell{${1:max width%l}}[${4:min width%l}]{${2:hmode}}{${3:vmode}}\"\n      }\n    },\n    {\n      \"name\": \"forceRowHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"forceRowHeight{${1:height}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/vwcol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"ragged2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"vwcolsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vwcolsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{vwcol},\\\\vwcolsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"vwcol\"\n    },\n    {\n      \"name\": \"vwcol\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{vwcol},\\\\vwcolsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/vwcol#c\": [\n      \"quiet\"\n    ],\n    \"\\\\begin{vwcol},\\\\vwcolsetup\": [\n      \"widths={${1:ratio1,ratio2,...}}\",\n      \"sep=${1:factor}\",\n      \"sidesep\",\n      \"presep\",\n      \"postsep\",\n      \"rule=\",\n      \"siderule\",\n      \"prerule\",\n      \"postrule\",\n      \"rulecolor=\",\n      \"justify=${1|ragged,flush,raggedleft,center|}\",\n      \"indent=\",\n      \"quiet\",\n      \"lines=${1:integer}\",\n      \"maxrecursion=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/vwcol#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wallpaper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CenterWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CenterWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisCenterWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisCenterWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"TileWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TileWallPaper{${1:width}}{${2:height}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisTileWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ThisTileWallPaper{${1:width}}{${2:height}}{${3:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"TileSquareWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"TileSquareWallPaper{${1:number}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisTileSquareWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisTileSquareWallPaper{${1:number}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ULCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ULCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisULCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisULCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LLCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LLCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisLLCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisLLCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"URCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"URCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisURCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisURCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"LRCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LRCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ThisLRCornerWallPaper\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ThisLRCornerWallPaper{${1:scaling}}{${2:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"ClearWallPaper\"\n    },\n    {\n      \"name\": \"wpXoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wpYoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileXoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileYoffset\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tilewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tileY\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wargame.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibraryintersections\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.geometric\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.arrows\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.markings\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows.blur\"\n    },\n    {\n      \"name\": \"alphalph\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amstext\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"hex\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"hex(${1:location})\"\n      }\n    },\n    {\n      \"name\": \"hex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"hex(${1:location})(${2:name})\"\n      }\n    },\n    {\n      \"name\": \"hex\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"hex[${1:options%keyvals}](${2:location})\",\n        \"keys\": [\n          \"\\\\hex#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"hex[${1:options%keyvals}](${2:location})(${3:name})\",\n        \"keys\": [\n          \"\\\\hex#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"boardframe\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"boardframe(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"boardframe\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"boardframe[${1:margin}](${2:lower-left})(${3:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"boardclip\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"boardclip(${2:lower-left})(${3:upper-right}){${1:options}}\"\n      }\n    },\n    {\n      \"name\": \"splitboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splitboard{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\splitboard#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hexdbglvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fortmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fortmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"fortmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"terrainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"terrainmark{${1:terrain-keys}}\"\n      }\n    },\n    {\n      \"name\": \"terrainmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"terrainmark[${2:options%keyvals}]{${1:terrain-keys}}\"\n      }\n    },\n    {\n      \"name\": \"clearhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"clearhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"woodshex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"woodshex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"woodshex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mountainhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mountainhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mountainhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"cityhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cityhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"cityhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"beachhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beachhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"beachhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"seahex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seahex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"seahex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"riverhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"riverhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"riverhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"roadhex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"roadhex\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"roadhex[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"shiftScalePath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"shiftScalePath{${1:macro}}{${2:relative-coords}}\"\n      }\n    },\n    {\n      \"name\": \"hexboardpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boardpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"boardpath(${1:lower-left})(${2:upper-right})\"\n      }\n    },\n    {\n      \"name\": \"debuggrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boardhexes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"boardhexes(${1:arg1})(${2:arg2})\"\n      }\n    },\n    {\n      \"name\": \"boardhexes\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"boardhexes[${1:options%keyvals}](${2:arg1})(${3:arg2})\"\n      }\n    },\n    {\n      \"name\": \"segment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}{}{}{}\",\n        \"snippet\": \"segment(${5:arg1})(${6:arg2}){${1:arg3}}{${2:arg4}}{${3:arg5}}{${4:arg6}}\"\n      }\n    },\n    {\n      \"name\": \"wargamelogo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wargamelogo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"wargamelogo[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"wargamedbglvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"natoapp\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"natoapp(${1:location})\"\n      }\n    },\n    {\n      \"name\": \"natoapp\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"natoapp(${1:location})(${2:name})\"\n      }\n    },\n    {\n      \"name\": \"natoapp\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"natoapp[${1:options%keyvals}](${2:location})\",\n        \"keys\": [\n          \"\\\\natoapp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"natoapp\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"natoapp[${1:options%keyvals}](${2:location})(${3:name})\",\n        \"keys\": [\n          \"\\\\natoapp#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"natoappdbglvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"natoappmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"natoappmark{${1:mains}}\"\n      }\n    },\n    {\n      \"name\": \"natoappmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"natoappmark[${2:options%keyvals}]{${1:mains}}\"\n      }\n    },\n    {\n      \"name\": \"echelonmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"echelonmark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"echelonmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"echelonmark[${2:options%keyvals}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"armouredmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"armouredmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"armouredmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"infantrymark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infantrymark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"infantrymark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"artillerymark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artillerymark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"artillerymark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"combinedmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"combinedmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"combinedmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"pgmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"pgmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"reconnaissancemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"reconnaissancemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"reconnaissancemark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"corpsmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corpsmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"corpsmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"divisionmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"divisionmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"divisionmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"brigademark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"brigademark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"brigademark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"regimentmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"regimentmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"regimentmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"sofmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sofmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"sofmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"mountaineermark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mountaineermark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"mountaineermark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"airbornemark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"airbornemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"airbornemark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"amphibiousmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"amphibiousmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"amphibiousmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"airassaultmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"airassaultmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"airassaultmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"testpath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testpath{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"chit\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"chit(${1:location})\"\n      }\n    },\n    {\n      \"name\": \"chit\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"chit(${1:location})(${2:name})\"\n      }\n    },\n    {\n      \"name\": \"chit\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"chit[${1:options%keyvals}](${2:location})\",\n        \"keys\": [\n          \"\\\\chit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chit\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"chit[${1:options%keyvals}](${2:location})(${3:name})\",\n        \"keys\": [\n          \"\\\\chit#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chitdbglvl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shadechit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"shadechit(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"eliminatechit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"eliminatechit(${1:arg})\"\n      }\n    },\n    {\n      \"name\": \"stackchits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"stackchits(${2:arg1})(${3:arg2}){${1:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"chits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chits{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"chits*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chits*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"chitgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"chitgrid{${1:columns}}{${2:rows}}{${3:cell size}}\"\n      }\n    },\n    {\n      \"name\": \"doublechits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doublechits{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"doublechits*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doublechits*{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"doublechitgrid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"doublechitgrid{${1:columns}}{${2:rows}}{${3:cell size}}\"\n      }\n    },\n    {\n      \"name\": \"chitmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"chitmark{${1:chit-keys}}\"\n      }\n    },\n    {\n      \"name\": \"chitmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chitmark[${2:options%keyvals}]{${1:chit-keys}}\"\n      }\n    },\n    {\n      \"name\": \"stackmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stackmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"stackmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"zocmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zocmark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zocmark[${1:options%keyvals}]\"\n      }\n    },\n    {\n      \"name\": \"dicemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dicemark{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dicemark\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"dicemark[${2:options%keyvals}]{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"getbbl\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getbb\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/wargame#c\": [\n      \"noterrainpic\",\n      \"terrainpic\"\n    ],\n    \"\\\\hex#c\": [\n      \"terrain={${1:terrain-keys}}\",\n      \"ridges={${1:ridges-keys}}\",\n      \"label={${1:label-keys}}\",\n      \"town={${1:town-keys}}\",\n      \"bevel={${1:bevel-keys}}\",\n      \"extra={${1:extra-keys}}\",\n      \"extra clipped={${1:extra-keys}}\",\n      \"row=${1:row}\",\n      \"column=${1:column}\"\n    ],\n    \"\\\\splitboard#c\": [\n      \"paper=${1|a4,a3,letter,tabloid|}\",\n      \"landscape\",\n      \"margin=${1:number}\",\n      \"ncol=${1:integer}\",\n      \"nrow=${1:integer}\",\n      \"overlap=${1:number}\",\n      \"image=${1:imagefile}\",\n      \"output=${1:file name}\",\n      \"standalone\",\n      \"scale=${1:factor}\"\n    ],\n    \"\\\\natoapp#c\": [\n      \"faction=${1:faction}\",\n      \"command=${1|air,land,equipment,installation,sea surface,sub surface,space,activity,none|}\",\n      \"main={${1:mains}}\",\n      \"left={${1:lefts}}\",\n      \"right={${1:rights}}\",\n      \"top={${1:tops}}\",\n      \"bottom={${1:bottoms}}\",\n      \"below={${1:belows}}\",\n      \"echelon=${1|team,squad,section,platoon,company,battalion,regiment,brigade,division,corps,army,army group,theatre,command|}\",\n      \"frame={${1:frame-keys}}\"\n    ],\n    \"\\\\chit#c\": [\n      \"symbol={${1:nato app 6(c) spec}}\",\n      \"full={${1:spec}}\",\n      \"color=\",\n      \"fill=\",\n      \"text=\",\n      \"draw=\",\n      \"bevel={${1:bevel-keys}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wargame#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/warning.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"addglobalwarning\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addglobalwarning{${1:warning}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/warpcol.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"array\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pcolbegin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pcolbegin{${1:alignment%keyvals}}{${2:pattern}}\",\n        \"keys\": [\n          \"\\\\pcolbegin#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pcolend\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\pcolbegin#c\": [\n      \"l\",\n      \"c\",\n      \"r\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wasysym.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"male\",\n      \"detail\": \"♂ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\mars (mathabx), \\\\boy (mathabx), mars, male\"\n    },\n    {\n      \"name\": \"female\",\n      \"detail\": \"♀ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\venus (mathabx), \\\\girl (mathabx), venus, female\"\n    },\n    {\n      \"name\": \"currency\"\n    },\n    {\n      \"name\": \"phone\"\n    },\n    {\n      \"name\": \"recorder\"\n    },\n    {\n      \"name\": \"clock\"\n    },\n    {\n      \"name\": \"lightning\"\n    },\n    {\n      \"name\": \"pointer\"\n    },\n    {\n      \"name\": \"RIGHTarrow\"\n    },\n    {\n      \"name\": \"LEFTarrow\"\n    },\n    {\n      \"name\": \"UParrow\"\n    },\n    {\n      \"name\": \"DOWNarrow\"\n    },\n    {\n      \"name\": \"AC\"\n    },\n    {\n      \"name\": \"HF\"\n    },\n    {\n      \"name\": \"VHF\"\n    },\n    {\n      \"name\": \"Square\"\n    },\n    {\n      \"name\": \"CheckedBox\"\n    },\n    {\n      \"name\": \"XBox\"\n    },\n    {\n      \"name\": \"hexagon\",\n      \"detail\": \"⎔\",\n      \"doc\": \"Horizontal benzene ring [hexagon flat open]\"\n    },\n    {\n      \"name\": \"pentagon\",\n      \"detail\": \"⬠\",\n      \"doc\": \"White pentagon\"\n    },\n    {\n      \"name\": \"octagon\"\n    },\n    {\n      \"name\": \"varhexagon\",\n      \"detail\": \"⬡\",\n      \"doc\": \"White hexagon\"\n    },\n    {\n      \"name\": \"hexstar\"\n    },\n    {\n      \"name\": \"varhexstar\"\n    },\n    {\n      \"name\": \"davidsstar\"\n    },\n    {\n      \"name\": \"diameter\",\n      \"detail\": \"⌀ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\varnothing (amssymb), diameter sign\"\n    },\n    {\n      \"name\": \"invdiameter\"\n    },\n    {\n      \"name\": \"varangle\"\n    },\n    {\n      \"name\": \"wasylozenge\"\n    },\n    {\n      \"name\": \"kreuz\"\n    },\n    {\n      \"name\": \"smiley\"\n    },\n    {\n      \"name\": \"frownie\"\n    },\n    {\n      \"name\": \"blacksmiley\",\n      \"detail\": \"☻ (\\\"wasysym\\\" command)\",\n      \"doc\": \"\\\\invsmileface (arevmath), black smiling face\"\n    },\n    {\n      \"name\": \"sun\",\n      \"detail\": \"☼ (\\\"wasysym\\\" command)\",\n      \"doc\": \"White sun with rays\"\n    },\n    {\n      \"name\": \"checked\"\n    },\n    {\n      \"name\": \"bell\"\n    },\n    {\n      \"name\": \"eighthnote\",\n      \"detail\": \"♪ (\\\"arevmath\\\" command)\",\n      \"doc\": \"Eighth note\"\n    },\n    {\n      \"name\": \"quarternote\",\n      \"detail\": \"♩ (\\\"arevmath wasysym\\\" command)\",\n      \"doc\": \"Music note (sung text sign)\"\n    },\n    {\n      \"name\": \"halfnote\"\n    },\n    {\n      \"name\": \"fullnote\"\n    },\n    {\n      \"name\": \"twonotes\",\n      \"detail\": \"♫ (\\\"wasysym\\\" command)\",\n      \"doc\": \"Beamed eighth notes\"\n    },\n    {\n      \"name\": \"brokenvert\"\n    },\n    {\n      \"name\": \"ataribox\"\n    },\n    {\n      \"name\": \"wasytherefore\"\n    },\n    {\n      \"name\": \"Circle\"\n    },\n    {\n      \"name\": \"CIRCLE\"\n    },\n    {\n      \"name\": \"Leftcircle\"\n    },\n    {\n      \"name\": \"LEFTCIRCLE\"\n    },\n    {\n      \"name\": \"Rightcircle\"\n    },\n    {\n      \"name\": \"RIGHTCIRCLE\"\n    },\n    {\n      \"name\": \"LEFTcircle\"\n    },\n    {\n      \"name\": \"RIGHTcircle\"\n    },\n    {\n      \"name\": \"vernal\"\n    },\n    {\n      \"name\": \"ascnode\"\n    },\n    {\n      \"name\": \"descnode\"\n    },\n    {\n      \"name\": \"fullmoon\"\n    },\n    {\n      \"name\": \"newmoon\"\n    },\n    {\n      \"name\": \"leftmoon\",\n      \"detail\": \"☾ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"Last quarter moon\"\n    },\n    {\n      \"name\": \"rightmoon\",\n      \"detail\": \"☽ (\\\"wasysym mathabx\\\" command)\",\n      \"doc\": \"First quarter moon\"\n    },\n    {\n      \"name\": \"astrosun\",\n      \"detail\": \"☉ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Sun\"\n    },\n    {\n      \"name\": \"mercury\"\n    },\n    {\n      \"name\": \"venus\"\n    },\n    {\n      \"name\": \"earth\"\n    },\n    {\n      \"name\": \"mars\"\n    },\n    {\n      \"name\": \"jupiter\"\n    },\n    {\n      \"name\": \"saturn\"\n    },\n    {\n      \"name\": \"uranus\"\n    },\n    {\n      \"name\": \"neptune\"\n    },\n    {\n      \"name\": \"pluto\"\n    },\n    {\n      \"name\": \"aries\"\n    },\n    {\n      \"name\": \"taurus\"\n    },\n    {\n      \"name\": \"gemini\"\n    },\n    {\n      \"name\": \"cancer\"\n    },\n    {\n      \"name\": \"leo\"\n    },\n    {\n      \"name\": \"virgo\"\n    },\n    {\n      \"name\": \"libra\"\n    },\n    {\n      \"name\": \"scorpio\"\n    },\n    {\n      \"name\": \"sagittarius\"\n    },\n    {\n      \"name\": \"capricornus\"\n    },\n    {\n      \"name\": \"aquarius\"\n    },\n    {\n      \"name\": \"pisces\"\n    },\n    {\n      \"name\": \"conjunction\"\n    },\n    {\n      \"name\": \"opposition\"\n    },\n    {\n      \"name\": \"APLstar\"\n    },\n    {\n      \"name\": \"APLlog\"\n    },\n    {\n      \"name\": \"APLbox\"\n    },\n    {\n      \"name\": \"APLup\"\n    },\n    {\n      \"name\": \"APLdown\"\n    },\n    {\n      \"name\": \"APLinput\"\n    },\n    {\n      \"name\": \"APLcomment\"\n    },\n    {\n      \"name\": \"APLinv\"\n    },\n    {\n      \"name\": \"APLuparrowbox\"\n    },\n    {\n      \"name\": \"APLdownarrowbox\"\n    },\n    {\n      \"name\": \"APLleftarrowbox\"\n    },\n    {\n      \"name\": \"APLrightarrowbox\"\n    },\n    {\n      \"name\": \"notbackslash\"\n    },\n    {\n      \"name\": \"notslash\"\n    },\n    {\n      \"name\": \"APLminus\"\n    },\n    {\n      \"name\": \"APLnot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLnot{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APLcirc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLcirc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"APLvert\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"APLvert{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Bowtie\"\n    },\n    {\n      \"name\": \"leftturn\"\n    },\n    {\n      \"name\": \"rightturn\"\n    },\n    {\n      \"name\": \"photon\"\n    },\n    {\n      \"name\": \"gluon\"\n    },\n    {\n      \"name\": \"cent\"\n    },\n    {\n      \"name\": \"permil\"\n    },\n    {\n      \"name\": \"agemO\"\n    },\n    {\n      \"name\": \"thorn\"\n    },\n    {\n      \"name\": \"Thorn\"\n    },\n    {\n      \"name\": \"openo\"\n    },\n    {\n      \"name\": \"inve\"\n    },\n    {\n      \"name\": \"mho\",\n      \"detail\": \"℧ (\\\"amsfonts arevmath\\\" command)\",\n      \"doc\": \"\\\\mho (wrisym), t \\\\agemo (wasysym), conductance\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"sqsubset\",\n      \"detail\": \"⊏ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square subset\"\n    },\n    {\n      \"name\": \"sqsupset\",\n      \"detail\": \"⊐ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Square superset\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"LHD\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"RHD\"\n    },\n    {\n      \"name\": \"apprle\"\n    },\n    {\n      \"name\": \"apprge\"\n    },\n    {\n      \"name\": \"wasypropto\"\n    },\n    {\n      \"name\": \"invneg\"\n    },\n    {\n      \"name\": \"ocircle\"\n    },\n    {\n      \"name\": \"logof\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"roundz\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"wasyeuro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"longs\"\n    },\n    {\n      \"name\": \"wasyparagraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Paragraph\"\n    },\n    {\n      \"name\": \"iint\",\n      \"detail\": \"∬ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Double integral operator\"\n    },\n    {\n      \"name\": \"iiint\",\n      \"detail\": \"∭ (\\\"amsmath fourier esint wasysym\\\" command)\",\n      \"doc\": \"Triple integral operator\"\n    },\n    {\n      \"name\": \"oiint\",\n      \"detail\": \"∯ (\\\"esint wasysym fourier\\\" command)\",\n      \"doc\": \"\\\\dbloint (wrisym), double contour integral operator\"\n    },\n    {\n      \"name\": \"varint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varoint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"applecmd\"\n    },\n    {\n      \"name\": \"wasycmd\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/wasysym#c\": [\n      \"compat1\",\n      \"integrals\",\n      \"nointegrals\",\n      \"noeuro\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wasysym#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/watermark.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"watermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"watermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"leftwatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leftwatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"rightwatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rightwatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"thiswatermark\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thiswatermark{${1:body}}\"\n      }\n    },\n    {\n      \"name\": \"thispageheading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thispageheading{${1:heading%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/web.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"aeb-comment\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"usetemplates\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"usetemplates\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"leftpanel\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"leftpanel\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"rightpanel\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"rightpanel\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"leftpanelprt\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"leftpanelprt\"\n    },\n    {\n      \"name\": \"eso-pic\",\n      \"if\": \"rightpanelprt\"\n    },\n    {\n      \"name\": \"graphicx\",\n      \"if\": \"rightpanelprt\"\n    },\n    {\n      \"name\": \"pifont\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"pifont\",\n      \"if\": \"extended\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ui\",\n      \"if\": \"useui\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ui{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\ui\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"screensize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"screensize{${1:height}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"margins\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"margins{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"margins\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"margins[${5:panel width}]{${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\"\n      }\n    },\n    {\n      \"name\": \"setScreensizeFromGraphic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setScreensizeFromGraphic{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setScreensizeFromGraphic\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setScreensizeFromGraphic[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\setScreensizeFromGraphic,\\\\template\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addtoWebHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoWebHeight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"addtoWebWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoWebWidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"panelwidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelwidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"lheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rheader{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rfooter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rfooter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"headerformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerformat{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"footerformat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footerformat{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"webheadwrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webheadwrapper{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"webfootwrapper\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"webfootwrapper{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"clearHeaders\"\n    },\n    {\n      \"name\": \"restoreHeaders\"\n    },\n    {\n      \"name\": \"clearFooters\"\n    },\n    {\n      \"name\": \"restoreFooters\"\n    },\n    {\n      \"name\": \"headersOnSectionPage\"\n    },\n    {\n      \"name\": \"noHeadersOnSectionPage\"\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:subject%text}}\"\n      }\n    },\n    {\n      \"name\": \"university\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"university{${1:university%text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"version\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"version{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"copyrightyears\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightyears{${1:years}}\"\n      }\n    },\n    {\n      \"name\": \"universityColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universityColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"titleColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"authorColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:word1,word2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"topTitlePage\"\n    },\n    {\n      \"name\": \"titlepageTrailer\"\n    },\n    {\n      \"name\": \"optionalPageMatter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optionalPageMatter{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"optionalPageMatter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"optionalPageMatter[${2:vspace}]{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"nocopyright\"\n    },\n    {\n      \"name\": \"minimumskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"copyrightLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"copyrightLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"revisionLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"revisionLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"versionLabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"versionLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"webtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"websubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webkeywords\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webcopyrightyears\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"directoryName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directoryName{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"tocName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocName{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"dirContentLink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dirContentLink{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"formatWordDirectory\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatWordDirectory{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"formatDirectoryItems\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatDirectoryItems{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"removeDirTOC\"\n    },\n    {\n      \"name\": \"removeDirArticle\"\n    },\n    {\n      \"name\": \"addtoDirList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtoDirList{${1:new item%text}}\"\n      }\n    },\n    {\n      \"name\": \"dirTOCItem\"\n    },\n    {\n      \"name\": \"dirArticleItem\"\n    },\n    {\n      \"name\": \"priorDirMatter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorDirMatter{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"afterDirMatter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterDirMatter{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"priorDirList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"priorDirList{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"afterDirList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterDirList{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"directoryhook\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directoryhook{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"tocindent\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocindent{${1:indent}}\"\n      }\n    },\n    {\n      \"name\": \"widestNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widestNumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"tocColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"coverpagemargin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeinlinetitle\"\n    },\n    {\n      \"name\": \"NaviBarOn\"\n    },\n    {\n      \"name\": \"NaviBarOff\"\n    },\n    {\n      \"name\": \"navibarTextColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"navibarTextColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"navibarBgColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"navibarBgColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"navibariconHeight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"navibariconHeight{${1:height}}\"\n      }\n    },\n    {\n      \"name\": \"navibariconWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"navibariconWidth{${1:width}}\"\n      }\n    },\n    {\n      \"name\": \"newNaviIcon\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"newNaviIcon{${1:cmd}}{${2:width}}{${3:height}}{${4:text}}{${5:action%definition}}\"\n      }\n    },\n    {\n      \"name\": \"newNaviIcon\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"newNaviIcon[${6:m|${7:j}|l}]{${1:cmd}}{${2:width}}{${3:height}}{${4:text}}{${5:action%definition}}\"\n      }\n    },\n    {\n      \"name\": \"insertnaviiconhere\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertnaviiconhere{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"insertnaviiconhereafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"insertnaviiconhereafter{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowUp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArrowUp{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ArrowDown\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ArrowDown{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"defaultpageheader\"\n    },\n    {\n      \"name\": \"directionIconTextColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionIconTextColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"directionIconBgColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"directionIconBgColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"panelNaviGroup\"\n    },\n    {\n      \"name\": \"ifeqforpaper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforpapertrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eqforpaperfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useFullWidthForPaper\"\n    },\n    {\n      \"name\": \"prtscr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prtscr{${1:print text%text}}{${2:screen text%text}}\"\n      }\n    },\n    {\n      \"name\": \"NewPage\"\n    },\n    {\n      \"name\": \"template\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"template{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"template\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"template[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\setScreensizeFromGraphic,\\\\template\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"textBgColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textBgColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"AddToTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"paneltemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"paneltemplate{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"paneltemplate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paneltemplate[${2:options%keyvals}]{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"panelBgColor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelBgColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"AddToPanelTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddToPanelTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"buildpanel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"buildpanel{${1:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"minPanelWidth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"minPanelWidth{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"disableTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disableTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"enableTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enableTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"disablePanelTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablePanelTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"enablePanelTemplate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"enablePanelTemplate{${1:template name}}\"\n      }\n    },\n    {\n      \"name\": \"ClearTextTemplate\"\n    },\n    {\n      \"name\": \"ClearPanelTemplate\"\n    },\n    {\n      \"name\": \"ClearBuildPanel\"\n    },\n    {\n      \"name\": \"ClearAllTemplates\"\n    },\n    {\n      \"name\": \"ClearTextTemplateBuffer\"\n    },\n    {\n      \"name\": \"ClearPanelTemplateBuffer\"\n    },\n    {\n      \"name\": \"aboveTopTitleSkip\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aboveTopTitleSkip{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"noFinalDot\"\n    },\n    {\n      \"name\": \"tocPartTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocPartTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"formatPartTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatPartTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"restorePartTitleFormat\"\n    },\n    {\n      \"name\": \"noPartNumbers\"\n    },\n    {\n      \"name\": \"formatChapterNumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatChapterNumber{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"formatChapterTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"formatChapterTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocInfo\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDocInfo{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareDocInfo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePageLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclarePageLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"universityLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universityLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"authorLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"topTitlePageProportion\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topTitlePageProportion{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"DesignTitlePageTrailer\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DesignTitlePageTrailer{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DesignTitlePageTrailer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectTocDings\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectTocDings{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectTocDings\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectColors\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noSectionNumbers\",\n      \"if\": \"pro\"\n    },\n    {\n      \"name\": \"tocLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sectionLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsectionLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubsectionLayout\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shadowhoffset\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowhoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"shadowvoffset\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowvoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"customSecHead\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsecHead\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsubsecHead\",\n      \"if\": \"pro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"preparedLabel\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparedLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prepared\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prepared{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"talkdate\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"webtalkdate\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"talkdateLabel\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdateLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"talksite\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talksite{${1:site}}\"\n      }\n    },\n    {\n      \"name\": \"customUniversity\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customUniversity{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customTitle\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customAuthor\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customAuthor{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customToc\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customToc{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"halignuniversity\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntitle\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignauthor\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsection\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsection\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsubsection\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntoc\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubDefaultDing\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubDefaultDing{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"sectionTitle\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionAuthor\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionUniversity\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionToc\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifShadow\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowtrue\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowfalse\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useSectionNumbers\",\n      \"if\": \"pro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dDingToc\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingToc\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingToc\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dDingTocColor\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingTocColor\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingTocColor\",\n      \"if\": \"pro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocInfo\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDocInfo{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareDocInfo\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclarePageLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclarePageLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclarePageLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"universityLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"universityLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"titleLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titleLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"authorLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"topTitlePageProportion\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topTitlePageProportion{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"DesignTitlePageTrailer\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DesignTitlePageTrailer{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\DesignTitlePageTrailer\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectTocDings\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectTocDings{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectTocDings\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"selectColors\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\selectColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"noSectionNumbers\",\n      \"if\": \"extended\"\n    },\n    {\n      \"name\": \"tocLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sectionLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsectionLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"subsubsectionLayout\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubsectionLayout{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"shadowhoffset\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowhoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"shadowvoffset\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shadowvoffset{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"customSecHead\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsecHead\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customSubsubsecHead\",\n      \"if\": \"extended\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customSubsubsecHead{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"preparedLabel\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparedLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"prepared\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prepared{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"talkdate\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdate{${1:date}}\"\n      }\n    },\n    {\n      \"name\": \"webtalkdate\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"talkdateLabel\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talkdateLabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"talksite\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"talksite{${1:site}}\"\n      }\n    },\n    {\n      \"name\": \"customUniversity\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customUniversity{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customTitle\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customTitle{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customAuthor\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customAuthor{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"customToc\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"customToc{${1:TeX code}}\"\n      }\n    },\n    {\n      \"name\": \"halignuniversity\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntitle\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignauthor\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsection\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsection\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halignsubsubsection\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haligntoc\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubDefaultDing\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subsubDefaultDing{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"sectionTitle\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionAuthor\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionUniversity\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectionToc\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifShadow\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowtrue\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Shadowfalse\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useSectionNumbers\",\n      \"if\": \"extended\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dDingToc\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingToc\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingToc\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingToc{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"dDingTocColor\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ddDingTocColor\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ddDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"dddDingTocColor\",\n      \"if\": \"extended\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dddDingTocColor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"BGColorAndGraphic\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BGColorAndGraphicFullWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"InitLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aboveOPMvspace\"\n    },\n    {\n      \"name\": \"addToWebHWError\"\n    },\n    {\n      \"name\": \"addtofullwidthtemplateArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtofullwidthtemplateArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addtopaneltemplateArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtopaneltemplateArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"addtotemplateArgs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addtotemplateArgs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aebwritelastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"allowTransparency\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bWebCustomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"calculatefullwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"centertextonpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chkpanelgroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearfullwidthtemplateArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"clearpaneltemplateArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cleartemplateArgs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currLeftMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currPanelWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"currTopMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cyrCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"disablePanels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disablePanels{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"disableScreens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disableScreens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"eWebCustomize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"forceSubSubNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullscreenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullscreenwidthadj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullwidthtemplate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"fullwidthtemplate{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"get\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getDimsFromGraphic\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"getDimsFromGraphic{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"getargsii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"getargs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"getargs{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"hproportionwebauthor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hproportionwebtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hproportionwebuniversity\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"incby\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inputWebCfg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insNaviBar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertwebtoc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"isChapter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listAddToPanelTemplates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listAddToTemplates\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"loadwebpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeFullwidthhead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlepostamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketitlepreamble\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"marginsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maxtextscreentext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newBottomMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newLeftMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newPanelWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newRightMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newTopMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocopyrightNotice\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nocopyrightsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"norevisionLabel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionalpagematter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origpaperheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"origpaperwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelIconGroup\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelNavigroupWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelSep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelgroupHeight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelgroupHeight{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"panelgroupSep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelgroupSep{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"panelgroupWidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelgroupWidth{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"panelrowsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelscreenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"panelsep\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"panelsep{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pdfLang\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfLang{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"placePanelTemplateInLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"placePanelTemplateInLayer[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"placePanelTemplateInLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placePanelTemplateInLayer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"placeScreenNavibar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"placeTemplateInLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"placeTemplateInLayer[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"placeTemplateInLayer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeTemplateInLayer{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"popFromFullWidthPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prtscrA\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"prtscrA{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"prtscrV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pushToFullWidthPage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"removehereaftericon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"resetmargins[${5:opt}]{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"resetmargins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"resetmargins{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"restoreElements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restoreElements{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restorePanels\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restorePanels{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restoreSavedHead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreScreens\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"restoreScreens{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"restorenormalsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveClearElements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saveClearElements{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"saveElements\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"saveElements{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setPageDevice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"setPageDevice[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setPageDevice\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setPageDevice{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"shortwebsubject\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shortwebtitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdPanelBG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stdbldpanel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"templatedefaults\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textscreenwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thewebemail\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tightsettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"titleauthorproportion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tocIndentByNumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tocIndentByNumber{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"tocindentByNumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"trailerFontSize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useStandardPanel\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vspaceAfterDirName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webArg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webNotPaneledWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webSaveMargDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webSaveSSDim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webdirectory\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"websetheadheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"webtableofcontents\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"forscreen\"\n    },\n    {\n      \"name\": \"forpaper\"\n    },\n    {\n      \"name\": \"Fullwidthtext\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/web#c\": [\n      \"noxcolor\",\n      \"dutch\",\n      \"french\",\n      \"german\",\n      \"italian\",\n      \"norsk\",\n      \"russian\",\n      \"spanish\",\n      \"dansk\",\n      \"polish\",\n      \"finnish\",\n      \"czech\",\n      \"catalan\",\n      \"brazil\",\n      \"turkish\",\n      \"dvips\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"textures\",\n      \"pdftex\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"xetex\",\n      \"luatex\",\n      \"forpaper\",\n      \"forcolorpaper\",\n      \"latexlayout\",\n      \"uselatexsectioning\",\n      \"weblikeclass\",\n      \"nodirectory\",\n      \"usedirectory\",\n      \"latextoc\",\n      \"nobullets\",\n      \"designi\",\n      \"designii\",\n      \"designiii\",\n      \"designiv\",\n      \"designv\",\n      \"designvi\",\n      \"designvii\",\n      \"designviii\",\n      \"designix\",\n      \"usesf\",\n      \"unicode\",\n      \"xhyperref\",\n      \"addtoHyOpts={${1:hyperref options}}\",\n      \"addtoHyOpts*={${1:hyperref options}}\",\n      \"useui\",\n      \"forceSubSubNumbers\",\n      \"centertitlepage\",\n      \"centertitlepagefull\",\n      \"pro\",\n      \"extended\",\n      \"draft\",\n      \"usetemplates\",\n      \"leftpanel\",\n      \"rightpanel\",\n      \"templatesforpaper\",\n      \"rightpanelprt\",\n      \"leftpanelprt\",\n      \"navibar\",\n      \"navibar*\",\n      \"tight\",\n      \"tight*\",\n      \"uselatexparts\",\n      \"uselatexchapters\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\ui\": [\n      \"border=${1|visible,invisible|}\",\n      \"linewidth=${1|thin,medium,thick|}\",\n      \"highlight=${1|none,invert,outline,inset,push|}\",\n      \"bordercolor={${1:R G B}}\",\n      \"linestyle=${1|solid,dashed,underlined,beveled,inset|}\",\n      \"dasharray=${1:number}\",\n      \"linktxtcolor=\",\n      \"annotflags=${1|hidden,print,-print,noview,lock|}\",\n      \"fieldflags=${1|readonly,required,noexport,multiline,password,notoggleoff,radio,pushbutton,combo,edit,sort,fileselect,multiselect,nospellcheck,noscrolling,comb,radiosinunison,commitonchange,richtext|}\",\n      \"maxlength=${1:number}\",\n      \"tooltip={${1:text}}\",\n      \"default=${1:text}\",\n      \"value=${1:text}\",\n      \"rotate=${1|0,90,180,270|}\",\n      \"bgcolor={${1:R G B}}\",\n      \"uptxt={${1:text}}\",\n      \"downtxt={${1:text}}\",\n      \"rollovertxt={${1:text}}\",\n      \"normappr=${1:string}\",\n      \"rollappr=${1:string}\",\n      \"downappr=${1:string}\",\n      \"importicons=${1|yes,no|}\",\n      \"layout=${1|labelonly,icononly,icontop,iconbottom,iconleft,iconright,labelover|}\",\n      \"scalewhen=${1|always,never,iconbig,iconsmall|}\",\n      \"scale=${1|proportional,nonproportional|}\",\n      \"position={${1:x y}}\",\n      \"fitbounds\",\n      \"appr={${1:specs}}\",\n      \"align=${1|left,centered,right|}\",\n      \"textfont=${1:font name}\",\n      \"textsize=${1:number}\",\n      \"textcolor=${1:number}\",\n      \"autocenter=${1|yes,no|}\",\n      \"inline=${1|yes,no|}\",\n      \"presets=${1:\\\\cmd}\",\n      \"symbolchoice=${1|check,circle,cross,diamond,square,star|}\",\n      \"rectW=\",\n      \"rectH=\",\n      \"width=\",\n      \"height=\",\n      \"scalefactor=${1:factor}\",\n      \"goto={${1:KV-pairs}}\",\n      \"js={${1:script}}\",\n      \"mouseup={${1:script}}\",\n      \"mousedown={${1:script}}\",\n      \"onenter={${1:script}}\",\n      \"onexit={${1:script}}\",\n      \"onfocus={${1:script}}\",\n      \"onblur={${1:script}}\",\n      \"format={${1:script}}\",\n      \"keystroke={${1:script}}\",\n      \"validate={${1:script}}\",\n      \"calculate={${1:script}}\",\n      \"pageopen={${1:script}}\",\n      \"pageclose={${1:script}}\",\n      \"pagevisible={${1:script}}\",\n      \"pageinvisible={${1:script}}\",\n      \"lock={${1:KV-pairs}}\"\n    ],\n    \"\\\\setScreensizeFromGraphic,\\\\template\": [\n      \"alt={${1:alt text}}\",\n      \"bb=${1:llx lly urx ury}\",\n      \"bbllx=\",\n      \"bblly=\",\n      \"bburx=\",\n      \"bbury=\",\n      \"natwidth=\",\n      \"natheight=\",\n      \"hiresbb\",\n      \"pagebox=${1|mediabox,cropbox,bleedbox,trimbox,artbox|}\",\n      \"viewport=${1:llx lly urx ury}\",\n      \"trim=${1:llx lly urx ury}\",\n      \"angle=${1:degrees}\",\n      \"origin=\",\n      \"width=\",\n      \"height=\",\n      \"totalheight=\",\n      \"keepaspectratio\",\n      \"scale=${1:factor}\",\n      \"clip\",\n      \"draft\",\n      \"type=${1:file type}\",\n      \"ext=${1:file extension}\",\n      \"read=${1:read-file extension}\",\n      \"command=\",\n      \"quiet\",\n      \"page=${1:page number}\",\n      \"interpolate\",\n      \"decodearray={${1:color array}}\"\n    ],\n    \"\\\\DeclareDocInfo\": [\n      \"title={${1:text}}\",\n      \"author={${1:name}}\",\n      \"university={${1:university}}\",\n      \"email=${1:email}\",\n      \"talksite={${1:site}}\",\n      \"talkdate=${1:date}\",\n      \"talkdateLabel={${1:text}}\",\n      \"version=${1:version}\",\n      \"versionLabel={${1:text}}\",\n      \"subject={${1:subject}}\",\n      \"keywords={${1:word1,word2,...}}\",\n      \"copyrightyears={${1:years}}\",\n      \"prepared=${1:date}\",\n      \"preparedLabel={${1:text}}\",\n      \"Title={${1:text}}\",\n      \"authors={${1:name1}}{${2:name2}}${3:...}\",\n      \"Subject={${1:subject}}\",\n      \"Keywords={${1:word1,word2,...}}\",\n      \"lang=${1:language}\",\n      \"copyrightStatus=${1|True,False|}\",\n      \"copyrightNotice={${1:text}}\",\n      \"copyrightInfoURL=${1:URL}\",\n      \"authortitle={${1:text}}\",\n      \"descriptionwriter={${1:text}}\",\n      \"customProperties={name=${1:name1},value=${2:value1}}${3:{name=name2,value=value2}...}\",\n      \"title={${1:text}}\",\n      \"author={${1:name}}\",\n      \"university={${1:university}}\",\n      \"email=${1:email}\",\n      \"talksite={${1:site}}\",\n      \"talkdate=${1:date}\",\n      \"talkdateLabel={${1:text}}\",\n      \"version=${1:version}\",\n      \"versionLabel={${1:text}}\",\n      \"subject={${1:subject}}\",\n      \"keywords={${1:word1,word2,...}}\",\n      \"copyrightyears={${1:years}}\",\n      \"prepared=${1:date}\",\n      \"preparedLabel={${1:text}}\",\n      \"Title={${1:text}}\",\n      \"authors={${1:name1}}{${2:name2}}${3:...}\",\n      \"Subject={${1:subject}}\",\n      \"Keywords={${1:word1,word2,...}}\",\n      \"lang=${1:language}\",\n      \"copyrightStatus=${1|True,False|}\",\n      \"copyrightNotice={${1:text}}\",\n      \"copyrightInfoURL=${1:URL}\",\n      \"authortitle={${1:text}}\",\n      \"descriptionwriter={${1:text}}\",\n      \"customProperties={name=${1:name1},value=${2:value1}}${3:{name=name2,value=value2}...}\"\n    ],\n    \"\\\\DeclarePageLayout\": [\n      \"design=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensizeOf=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensize={${1:height}}{${2:width}}\",\n      \"margins={${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\",\n      \"headheight=\",\n      \"topmargin=\",\n      \"additionalheadsep=\",\n      \"marginparsep=\",\n      \"marginparwidth=\",\n      \"marginparpush=\",\n      \"footskip=\",\n      \"webfootskip=\",\n      \"panelwidth=\",\n      \"panelsep=\",\n      \"design=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensizeOf=${1|designi,designii,designiii,designiv,designv,designvi,designvii,designviii,designix|}\",\n      \"screensize={${1:height}}{${2:width}}\",\n      \"margins={${1:left}}{${2:right}}{${3:top}}{${4:bottom}}\",\n      \"headheight=\",\n      \"topmargin=\",\n      \"additionalheadsep=\",\n      \"marginparsep=\",\n      \"marginparwidth=\",\n      \"marginparpush=\",\n      \"footskip=\",\n      \"webfootskip=\",\n      \"panelwidth=\",\n      \"panelsep=\"\n    ],\n    \"\\\\universityLayout,\\\\titleLayout,\\\\authorLayout\": [\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"hproportion=${1:factor}\",\n      \"xhalign=${1|l,c,r|}\",\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"hproportion=${1:factor}\",\n      \"xhalign=${1|l,c,r|}\"\n    ],\n    \"\\\\DesignTitlePageTrailer\": [\n      \"ul=${1:text}\",\n      \"ur=${1:text}\",\n      \"ll=${1:text}\",\n      \"lr=${1:text}\",\n      \"textColor=\",\n      \"bgColor=\",\n      \"borderColor=\",\n      \"fboxsep=\",\n      \"fboxrule=\",\n      \"graphic=${1:imagefile}\",\n      \"namedgraphic=${1:name}\",\n      \"raise=\",\n      \"fontSize=${1:fontsize cmd}\",\n      \"formatting=${1:font commands}\",\n      \"ul=${1:text}\",\n      \"ur=${1:text}\",\n      \"ll=${1:text}\",\n      \"lr=${1:text}\",\n      \"textColor=\",\n      \"bgColor=\",\n      \"borderColor=\",\n      \"fboxsep=\",\n      \"fboxrule=\",\n      \"graphic=${1:imagefile}\",\n      \"namedgraphic=${1:name}\",\n      \"raise=\",\n      \"fontSize=${1:fontsize cmd}\",\n      \"formatting=${1:font commands}\"\n    ],\n    \"\\\\selectTocDings\": [\n      \"dDing=${1:symbol}\",\n      \"ddDing=${1:symbol}\",\n      \"dddDing=${1:symbol}\",\n      \"dDingColor=\",\n      \"ddDingColor=\",\n      \"dddDingColor=\",\n      \"dDing=${1:symbol}\",\n      \"ddDing=${1:symbol}\",\n      \"dddDing=${1:symbol}\",\n      \"dDingColor=\",\n      \"ddDingColor=\",\n      \"dddDingColor=\"\n    ],\n    \"\\\\selectColors\": [\n      \"universityColor=\",\n      \"titleColor=\",\n      \"textBgColor=\",\n      \"panelBgColor=\",\n      \"urlColor=\",\n      \"linkColor=\",\n      \"fileColor=\",\n      \"universityColor=\",\n      \"titleColor=\",\n      \"textBgColor=\",\n      \"panelBgColor=\",\n      \"urlColor=\",\n      \"linkColor=\",\n      \"fileColor=\"\n    ],\n    \"\\\\tocLayout,\\\\sectionLayout,\\\\subsectionLayout,\\\\subsubsectionLayout\": [\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"ding=${1:symbol}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"numdingcolor=\",\n      \"reset=${1|font,all|}\",\n      \"fontfamily=${1|rmfamily,sffamily,ttfamily|}\",\n      \"fontseries=${1|bfseries,mdseries|}\",\n      \"fontshape=${1|upshape,itshape,scshape,slshape|}\",\n      \"fontsize=${1|tiny,scriptsize,footnotesize,small,normalsize,large,Large,LARGE,huge,Huge|}\",\n      \"halign=${1|l,c,r|}\",\n      \"ding=${1:symbol}\",\n      \"color=\",\n      \"special=${1|shadow,framebox,colorbox,fcolorbox,frameboxfit,colorboxfit,fcolorboxfit,custom,default|}\",\n      \"framecolor=\",\n      \"bgcolor=\",\n      \"shadowcolor=\",\n      \"beforeskip=\",\n      \"afterskip=\",\n      \"usefont={${1:encoding}}{${2:family}}{${3:series}}{${4:shape}}{${5:size}}\",\n      \"numdingcolor=\",\n      \"reset=${1|font,all|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/web#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wedn.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wedn\"\n    },\n    {\n      \"name\": \"euros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/weekday.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"weekday\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"weekday{${1:yyyy}}{${2:mm}}{${3:dd}}\"\n      }\n    },\n    {\n      \"name\": \"weekdaydate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"weekdaydate{${1:yyyy}}{${2:mm}}{${3:dd}}\"\n      }\n    },\n    {\n      \"name\": \"wwwy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwm\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwwt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wwws\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/weiqi.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3draw\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newweiqi\"\n    },\n    {\n      \"name\": \"newweiqi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newweiqi[${1:尺寸}]\"\n      }\n    },\n    {\n      \"name\": \"weiqisize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqisize{${1:尺寸}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiblack\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqiblack{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiblack\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"weiqiblack[${2:标签}]{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiwhite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqiwhite{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiwhite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"weiqiwhite[${2:标签}]{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqidie\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqidie{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"showweiqi\"\n    },\n    {\n      \"name\": \"showweiqi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"showweiqi[${1:区间}]\"\n      }\n    },\n    {\n      \"name\": \"weiqilabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqilabel{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqilabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"weiqilabel[${2:标签}]{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"clearlabel\"\n    },\n    {\n      \"name\": \"weiqired\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqired{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqigreen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqigreen{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiblue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqiblue{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"clearpoint\"\n    },\n    {\n      \"name\": \"weiqirotate\"\n    },\n    {\n      \"name\": \"weiqirotate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"weiqirotate[${1:角度}]\"\n      }\n    },\n    {\n      \"name\": \"weiqimirror\"\n    },\n    {\n      \"name\": \"weiqimirror\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"weiqimirror[${1:镜像轴}]\"\n      }\n    },\n    {\n      \"name\": \"weiqiposition\"\n    },\n    {\n      \"name\": \"weiqiposition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"weiqiposition[${1:角度}]\"\n      }\n    },\n    {\n      \"name\": \"weiqiscale\"\n    },\n    {\n      \"name\": \"weiqiscale\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"weiqiscale[${1:比例}]\"\n      }\n    },\n    {\n      \"name\": \"weiqiminsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"weiqiminsize{${1:宽度}}{${2:高度}}\"\n      }\n    },\n    {\n      \"name\": \"nonelocmode\"\n    },\n    {\n      \"name\": \"normallocmode\"\n    },\n    {\n      \"name\": \"sgflocmode\"\n    },\n    {\n      \"name\": \"saveweiqi\"\n    },\n    {\n      \"name\": \"saveweiqi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"saveweiqi[${1:序号}]\"\n      }\n    },\n    {\n      \"name\": \"useweiqi\"\n    },\n    {\n      \"name\": \"useweiqi\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"useweiqi[${1:序号}]\"\n      }\n    },\n    {\n      \"name\": \"weiqichange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqichange{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"weiqiremove\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqiremove{${1:坐标}}\"\n      }\n    },\n    {\n      \"name\": \"resetnumber\"\n    },\n    {\n      \"name\": \"resetnumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resetnumber[${1:起点}]\"\n      }\n    },\n    {\n      \"name\": \"weiqisgf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"weiqisgf{${1:文本}}\"\n      }\n    },\n    {\n      \"name\": \"weiqisgf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"weiqisgf[${2:标签}]{${1:文本}}\"\n      }\n    },\n    {\n      \"name\": \"inputsgf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"inputsgf{${1:文件}}\"\n      }\n    },\n    {\n      \"name\": \"inputsgf\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"inputsgf[${2:起点}]{${1:文件}}\"\n      }\n    },\n    {\n      \"name\": \"weiqidata\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wela.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wela\"\n    },\n    {\n      \"name\": \"euros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wesa.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wesa\"\n    },\n    {\n      \"name\": \"euros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wesu.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wesu\"\n    },\n    {\n      \"name\": \"euros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/weva.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"weva\"\n    },\n    {\n      \"name\": \"euros\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wheelchart.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wheelchart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wheelchart{${1:wheelchart data}}\"\n      }\n    },\n    {\n      \"name\": \"wheelchart\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wheelchart[${2:options%keyvals}]{${1:wheelchart data}}\",\n        \"keys\": [\n          \"\\\\wheelchart#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WCangle\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"WCangle{${1:angle pos}}{${2:angle shift}}{${3:pos}}{${4:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCangle\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"WCangle[${5:number}]{${1:angle pos}}{${2:angle shift}}{${3:pos}}{${4:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCcoordinate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WCcoordinate{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"WCcoordinate\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"WCcoordinate[${2:number}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"WCcount\"\n    },\n    {\n      \"name\": \"WCcountdiscrete\"\n    },\n    {\n      \"name\": \"WCdataangle\"\n    },\n    {\n      \"name\": \"WCetocthelinkedname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthelinkednumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthelinkedpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthenumberofpages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCetocthepage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WClegend\"\n    },\n    {\n      \"name\": \"WCmidangle\"\n    },\n    {\n      \"name\": \"WCperc\"\n    },\n    {\n      \"name\": \"WCpercentage\"\n    },\n    {\n      \"name\": \"WCpercentagerounded\"\n    },\n    {\n      \"name\": \"WCpoint\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"WCpoint{${1:angle pos}}{${2:angle shift}}{${3:pos}}{${4:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCpoint\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"WCpoint[${5:number}]{${1:angle pos}}{${2:angle shift}}{${3:pos}}{${4:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCradius\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WCradius{${1:pos}}{${2:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCradius\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"WCradius[${3:number}]{${1:pos}}{${2:sep}}\"\n      }\n    },\n    {\n      \"name\": \"WCtotalcount\"\n    },\n    {\n      \"name\": \"WCtotalnum\"\n    },\n    {\n      \"name\": \"WCvarA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarF\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarK\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarV\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarW\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WCvarZ\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\wheelchart#c\": [\n      \"after slices={${1:code}}\",\n      \"anchor xsep=${1:degrees}\",\n      \"anchor ysep=${1:degrees}\",\n      \"arc={${1:TikZ keys}}\",\n      \"arc around line=${1:number}\",\n      \"arc around text\",\n      \"arc data={${1:text}}\",\n      \"arc data align=${1|center,left,right|}\",\n      \"arc data angle pos=${1:value}\",\n      \"arc data angle shift=${1:degrees}\",\n      \"arc data dir=${1:value}\",\n      \"arc data expand=${1:type}\",\n      \"arc data line sep factor=${1:factor}\",\n      \"arc data lines pos=${1:factor}\",\n      \"arc data lines shift=${1:value}\",\n      \"arc data pos=${1:value}\",\n      \"arc data sep=${1:value}\",\n      \"arc data style={${1:TikZ keys}}\",\n      \"arc first half={${1:TikZ keys}}\",\n      \"arc pos=${1:value}\",\n      \"arc second half={${1:TikZ keys}}\",\n      \"arc sep=${1:value}\",\n      \"at=${1:point}\",\n      \"before slices={${1:code}}\",\n      \"caption={${1:text}}\",\n      \"caption left={${1:text}}\",\n      \"caption left sep=${1:value}\",\n      \"caption left style={${1:TikZ keys}}\",\n      \"caption sep=${1:value}\",\n      \"caption style={${1:TikZ keys}}\",\n      \"contour={${1:TikZ keys}}\",\n      \"counterclockwise\",\n      \"data={${1:text}}\",\n      \"data angle pos=${1:value}\",\n      \"data angle shift=${1:degrees}\",\n      \"data pos=${1:value}\",\n      \"data sep=${1:value}\",\n      \"data style={${1:TikZ keys}}\",\n      \"discrete\",\n      \"discrete factor=${1:value}\",\n      \"discrete partitioning=${1|angle,radius|}\",\n      \"discrete pic={${1:code}}\",\n      \"discrete sort=${1|angle,radius|}\",\n      \"discrete space at borders\",\n      \"domain=${1:start}:${2:end}\",\n      \"etoc code={${1:code}}\",\n      \"etoc count total pages=${1:number}\",\n      \"etoc level=${1:level}\",\n      \"etoc name=${1:name}\",\n      \"etoc use name=${1:name}\",\n      \"expand list=${1|false,once,true|}\",\n      \"expand list items=${1|false,once,true|}\",\n      \"explode\",\n      \"explode=${1:factor}\",\n      \"for loop end={${1:code}}\",\n      \"for loop start={${1:code}}\",\n      \"gap\",\n      \"gap=${1:factor}\",\n      \"gap max angle=${1:degrees}\",\n      \"gap polar\",\n      \"gap polar=${1:degrees}\",\n      \"gap radius\",\n      \"gap radius=${1:value}\",\n      \"header={${1:list}}\",\n      \"header prefix=${1:prefix}\",\n      \"inner data={${1:text}}\",\n      \"inner data angle pos=${1:value}\",\n      \"inner data angle shift=${1:degrees}\",\n      \"inner data pos=${1:value}\",\n      \"inner data sep=${1:value}\",\n      \"inner data style={${1:TikZ keys}}\",\n      \"inner plot={${1:code}}\",\n      \"inner plot style={${1:TikZ keys}}\",\n      \"inner radius=${1:value}\",\n      \"legend={${1:code}}\",\n      \"legend entry={${1:code}}\",\n      \"legend only\",\n      \"legend row={${1:code}}\",\n      \"lines\",\n      \"lines=${1:value}\",\n      \"lines angle pos=${1:value}\",\n      \"lines angle shift=${1:degrees}\",\n      \"lines ext\",\n      \"lines ext=${1:value}\",\n      \"lines ext bottom dir=${1|left,right|}\",\n      \"lines ext dir=${1|left,right|}\",\n      \"lines ext dirsep=${1:degrees}\",\n      \"lines ext fixed\",\n      \"lines ext fixed left=${1:value}\",\n      \"lines ext fixed right=${1:value}\",\n      \"lines ext left anchor=${1:anchor}\",\n      \"lines ext right anchor=${1:anchor}\",\n      \"lines ext top dir=${1|left,right|}\",\n      \"lines pos=${1:value}\",\n      \"lines sep=${1:value}\",\n      \"lines style={${1:TikZ keys}}\",\n      \"middle={${1:text}}\",\n      \"middle fill={${1:TikZ keys}}\",\n      \"middle style={${1:TikZ keys}}\",\n      \"name=${1:name}\",\n      \"outer plot={${1:code}}\",\n      \"outer plot style={${1:TikZ keys}}\",\n      \"outer radius=${1:value}\",\n      \"perc precision=${1:integer}\",\n      \"pie\",\n      \"plot={${1:code}}\",\n      \"plot style={${1:TikZ keys}}\",\n      \"radius={${1:inner radius}}{${2:outer radius}}\",\n      \"samples=${1:number}\",\n      \"separator columns=${1:delimiter}\",\n      \"separator rows=${1:delimiter}\",\n      \"slices={${1:path}}\",\n      \"slices angle pos=${1:value}\",\n      \"slices angle shift=${1:degrees}\",\n      \"slices arc={${1:value1}}{${2:value2}}\",\n      \"slices arc inner end\",\n      \"slices arc inner end start\",\n      \"slices arc inner start\",\n      \"slices arc inner start end\",\n      \"slices arc match={${1:arg1}}{${2:num1}}{${3:num2}}{${4:num3}}{${5:arg2}}{${6:arg3}}{${7:arg4}}\",\n      \"slices arc outer end\",\n      \"slices arc outer end start\",\n      \"slices arc outer start\",\n      \"slices arc outer start end\",\n      \"slices Arrow=${1:angle}\",\n      \"slices arrow={${1:value1}}{${2:value2}}\",\n      \"slices end={${1:path}}\",\n      \"slices end arc={${1:value1}}{${2:value2}}\",\n      \"slices end arrow={${1:value1}}{${2:value2}}\",\n      \"slices end to={${1:value1}}{${2:value2}}\",\n      \"slices inner={${1:path}}\",\n      \"slices inner angle reduce=${1:degrees}\",\n      \"slices inner angle shift=${1:degrees}\",\n      \"slices inner arc={${1:value1}}{${2:value2}}\",\n      \"slices inner arc tangent\",\n      \"slices inner arrow={${1:value1}}{${2:value2}}\",\n      \"slices inner end angle shift=${1:degrees}\",\n      \"slices inner start angle shift=${1:degrees}\",\n      \"slices inner to={${1:value1}}{${2:value2}}\",\n      \"slices outer={${1:path}}\",\n      \"slices outer angle reduce=${1:degrees}\",\n      \"slices outer angle shift=${1:degrees}\",\n      \"slices outer arc={${1:value1}}{${2:value2}}\",\n      \"slices outer arc tangent\",\n      \"slices outer arrow={${1:value1}}{${2:value2}}\",\n      \"slices outer end angle shift=${1:degrees}\",\n      \"slices outer start angle shift=${1:degrees}\",\n      \"slices outer to={${1:value1}}{${2:value2}}\",\n      \"slices pos=${1:value}\",\n      \"slices scope={${1:TikZ keys}}\",\n      \"slices sep=${1:value}\",\n      \"slices start={${1:path}}\",\n      \"slices start arc={${1:value1}}{${2:value2}}\",\n      \"slices start arrow={${1:value1}}{${2:value2}}\",\n      \"slices start to={${1:value1}}{${2:value2}}\",\n      \"slices style={${1:TikZ keys}}\",\n      \"slices to={${1:value1}}{${2:value2}}\",\n      \"slice{${1:range}}={${2:TikZ keys}}\",\n      \"start angle=${1:degrees}\",\n      \"start half\",\n      \"start half=${1:degrees}\",\n      \"title={${1:text}}\",\n      \"title left={${1:text}}\",\n      \"title left sep=${1:value}\",\n      \"title left style={${1:TikZ keys}}\",\n      \"title sep=${1:value}\",\n      \"title style={${1:TikZ keys}}\",\n      \"total angle=${1:degrees}\",\n      \"total count=${1:integer}\",\n      \"triangle proportional area={${1:width}}{${2:height}}\",\n      \"triangle proportional height={${1:width}}{${2:height}}\",\n      \"value=${1:value}\",\n      \"WClist${1:name}={${2:list}}\",\n      \"wheel data={${1:text}}\",\n      \"wheel data angle pos=${1:value}\",\n      \"wheel data angle shift=${1:degrees}\",\n      \"wheel data pos=${1:value}\",\n      \"wheel data sep=${1:value}\",\n      \"wheel data style={${1:TikZ keys}}\",\n      \"wheel lines={${1:TikZ keys}}\",\n      \"xbar={${1:width}}{${2:height}}\",\n      \"ybar={${1:width}}{${2:height}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/widetable.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"widetabular\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"widetabular\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"{${1:width}}[${3:alignment}]{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/widows-and-orphans.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"underscore\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"WaOsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WaOsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\WaOsetup,\\\\usepackage/widows-and-orphans#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"WaOparameters\"\n    },\n    {\n      \"name\": \"WaOignorenext\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\WaOsetup,\\\\usepackage/widows-and-orphans#c\": [\n      \"check=${1|warning,error,info,none|}\",\n      \"orphans=${1|prevent,avoid,default|}\",\n      \"widows=${1|prevent,avoid,default|}\",\n      \"prevent-all\",\n      \"avoid-all\",\n      \"default-all\"\n    ]\n  },\n  \"args\": [\n    \"\\\\WaOsetup,\\\\usepackage/widows-and-orphans#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wiki.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wikimarkup\"\n    },\n    {\n      \"name\": \"nowikimarkup\"\n    },\n    {\n      \"name\": \"wikiEnvironments\"\n    },\n    {\n      \"name\": \"nowikiEnvironments\"\n    },\n    {\n      \"name\": \"wikiFonts\"\n    },\n    {\n      \"name\": \"nowikiFonts\"\n    },\n    {\n      \"name\": \"wikiHeadings\"\n    },\n    {\n      \"name\": \"nowikiHeadings\"\n    },\n    {\n      \"name\": \"AssignCatCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AssignCatCode{${1:cmd}}{${2:catcode}}\"\n      }\n    },\n    {\n      \"name\": \"MakeActive\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeActive{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"MakeOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeOther{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"normalequals\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/wiki#c\": [\n      \"noFonts\",\n      \"noHeadings\",\n      \"noEnvironments\",\n      \"noVerbatim\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wiki#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wiley-authoringtemplate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"lipsum\"\n    },\n    {\n      \"name\": \"ulem\"\n    },\n    {\n      \"name\": \"alltt\"\n    },\n    {\n      \"name\": \"rotating\"\n    },\n    {\n      \"name\": \"boites\"\n    },\n    {\n      \"name\": \"boites_exemples\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"epstopdf\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"enumerate\"\n    },\n    {\n      \"name\": \"latexsym\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"amsthm\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"moreverb\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"breakurl\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"acknowledgments\"\n    },\n    {\n      \"name\": \"acro\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"acro{${1:acronym}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"address*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address*[${2:id}]{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"address*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address*{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"address[${2:id}]{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"address\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"address{${1:address%text}}\"\n      }\n    },\n    {\n      \"name\": \"answer\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answer{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"AuAff\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AuAff{${1:author \\\\\\\\ affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author*[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"author*{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"author[${2:id}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"authorinitials\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"authorinitials{${1:initials}}\"\n      }\n    },\n    {\n      \"name\": \"booktitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"booktitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"botrule\"\n    },\n    {\n      \"name\": \"city\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"city{${1:city}}\"\n      }\n    },\n    {\n      \"name\": \"country\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"country{${1:country}}\"\n      }\n    },\n    {\n      \"name\": \"countrypart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countrypart{${1:part of country%text}}\"\n      }\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:email%URL}}\"\n      }\n    },\n    {\n      \"name\": \"exerIns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"exerIns{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"explanation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"explanation{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fnm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fnm{${1:first name}}\"\n      }\n    },\n    {\n      \"name\": \"halftitlepage\"\n    },\n    {\n      \"name\": \"hint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keywords{${1:keyword1,keyword2,...%text}}\"\n      }\n    },\n    {\n      \"name\": \"latexprintindex\"\n    },\n    {\n      \"name\": \"midrule\"\n    },\n    {\n      \"name\": \"name\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"name{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"orgdiv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgdiv{${1:organization division%text}}\"\n      }\n    },\n    {\n      \"name\": \"orgname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgname{${1:organization%text}}\"\n      }\n    },\n    {\n      \"name\": \"phone\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"phone{${1:phone number}}\"\n      }\n    },\n    {\n      \"name\": \"postcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postcode{${1:postcode}}\"\n      }\n    },\n    {\n      \"name\": \"prefaceauthor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prefaceauthor{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"solution{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"source\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"source{${1:source%text}}\"\n      }\n    },\n    {\n      \"name\": \"state\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"state{${1:state}}\"\n      }\n    },\n    {\n      \"name\": \"street\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"street{${1:street}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"sur\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sur{${1:surname}}\"\n      }\n    },\n    {\n      \"name\": \"titlepage\"\n    },\n    {\n      \"name\": \"toprule\"\n    },\n    {\n      \"name\": \"where\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"where{${1:place \\\\\\\\ date%text}}\"\n      }\n    },\n    {\n      \"name\": \"AbsTxtfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AuthandAffil\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Authorfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Extsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Extsource{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"FeaFxdHd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FeaFxdHd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Featurefixedtypetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Featurefixedtypetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Mathstatementtypetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Mathstatementtypetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Newlabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Newlabel{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"PoetryHd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoetryHd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"QELftRghtDimen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QEsource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QEsource{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"QuoteHd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"QuoteHd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"Schemecaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Schemecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"StepDownCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StepDownCounter{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"StepUpCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StepUpCounter{${1:count}}\"\n      }\n    },\n    {\n      \"name\": \"Versesource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Versesource{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"addressfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"affil\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"affil{${1:affiliation%text}}\"\n      }\n    },\n    {\n      \"name\": \"affnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"artauthors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorimage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"authorsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibfont\"\n    },\n    {\n      \"name\": \"bibsection\"\n    },\n    {\n      \"name\": \"bibtype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bibtype{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"corresfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"corresinfo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"editionstatement\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"editionstatement{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"emailsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exerssectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractHd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extractHd{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extractname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feafxdtype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feanameBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feanameGeneral\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feanameNote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feanameTip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feanameWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feasecfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feasection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feasubsecfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"feasubsection\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"featuretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"featuretitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"featuretype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"figure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"foreword\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"introduction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"jmkLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmkLabel{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jmkRef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jmkRef{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"jmkaddress\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"minustocounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"minustocounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"nifigcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nifigcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"nitabcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"nitabcaption{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"numbered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"orgaddress\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"orgaddress{${1:arg1}}\"\n      }\n    },\n    {\n      \"name\": \"paratitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pullquotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ques\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ques{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"quotename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quotetype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"raggedcenter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"refstepdowncounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"refstepdowncounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"schemename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"startonoddpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stepdowncounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"stepdowncounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"subparatitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subsubsectitle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tabcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"tabcaption{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"theaffn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"theaucount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thecorrauthcount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thefnmCnt\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thescheme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typetext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"typetext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unnumbered\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"unnumfigcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unnumfigcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"unnumtabcaption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"unnumtabcaption{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"versename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcopyrightpage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xcopyrightpage{${1:arg1}}{${2:arg2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:title%text}}\"\n      }\n    },\n    {\n      \"name\": \"acronyms\"\n    },\n    {\n      \"name\": \"contributors\"\n    },\n    {\n      \"name\": \"copyrightpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:copyright year}}\"\n      }\n    },\n    {\n      \"name\": \"corollary\"\n    },\n    {\n      \"name\": \"corollary\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"definition\"\n    },\n    {\n      \"name\": \"definition\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"dialogue\"\n    },\n    {\n      \"name\": \"enumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:labeltype}]\"\n      }\n    },\n    {\n      \"name\": \"example\"\n    },\n    {\n      \"name\": \"example\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"exer\"\n    },\n    {\n      \"name\": \"exer\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercises\"\n    },\n    {\n      \"name\": \"exercises\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"feature\"\n    },\n    {\n      \"name\": \"feature\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{feature}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"featureFixed\"\n    },\n    {\n      \"name\": \"featureFixed\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{featureFixed}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"introduction\"\n    },\n    {\n      \"name\": \"lemma\"\n    },\n    {\n      \"name\": \"lemma\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"objectives\"\n    },\n    {\n      \"name\": \"problems\"\n    },\n    {\n      \"name\": \"problems\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"quote\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:type%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{quote}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"remark\"\n    },\n    {\n      \"name\": \"remark\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"scheme\"\n    },\n    {\n      \"name\": \"theorem\"\n    },\n    {\n      \"name\": \"theorem\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"unnumfigure\"\n    },\n    {\n      \"name\": \"unnumtable\"\n    },\n    {\n      \"name\": \"foreword\"\n    },\n    {\n      \"name\": \"preface\"\n    },\n    {\n      \"name\": \"BoxI\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeaBox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"QE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"biography\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"epigraph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"featureFxd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nifigure\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nitable\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pullquote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"warning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xextract\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{feature}\": [\n      \"Box\",\n      \"BoxI\"\n    ],\n    \"\\\\begin{featureFixed}\": [\n      \"tip\",\n      \"note\",\n      \"warning\"\n    ],\n    \"\\\\begin{quote}\": [\n      \"quote\",\n      \"extract\",\n      \"poetry\",\n      \"pullquote\",\n      \"epigraph\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/withargs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"uniquecsname\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/witharrows.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"varwidth\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarybending\"\n    },\n    {\n      \"name\": \"footnote\",\n      \"if\": \"footnote\"\n    },\n    {\n      \"name\": \"footnotehyper\",\n      \"if\": \"footnotehyper\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"WithArrowsOptions\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"WithArrowsOptions{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{WithArrows},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"Arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Arrow{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"Arrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Arrow[${2:options%keyvals}]{${1:label%plain}}\",\n        \"keys\": [\n          \"\\\\Arrow\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"MultiArrow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"MultiArrow{${1:row1,row2,...}}{${2:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"WithArrowsLastEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tag\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"tag*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tag*{${1:label%plain}}\"\n      }\n    },\n    {\n      \"name\": \"notag\"\n    },\n    {\n      \"name\": \"tagnextline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithArrowsRightX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WithArrowsNewStyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"WithArrowsNewStyle{${1:style name%specialDef}}{${2:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"WithArrowsNbLines\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"WithArrows\"\n    },\n    {\n      \"name\": \"WithArrows\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{WithArrows},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DispWithArrows\"\n    },\n    {\n      \"name\": \"DispWithArrows\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\",\n          \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DispWithArrows*\"\n    },\n    {\n      \"name\": \"DispWithArrows*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\",\n          \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\",\n          \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/witharrows#c\": [\n      \"footnote\",\n      \"footnotehyper\",\n      \"beamer\"\n    ],\n    \"\\\\begin{WithArrows},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\": [\n      \"c\",\n      \"b\",\n      \"right-overlap\"\n    ],\n    \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\": [\n      \"tikz={${1:TikZ options}}\",\n      \"xoffset=\",\n      \"command-name=${1:csname}\",\n      \"code-before=${1:code}\",\n      \"code-after=${1:code}\",\n      \"format=${1:cols}\",\n      \"show-nodes\",\n      \"show-node-names\",\n      \"displaystyle\",\n      \"ll\",\n      \"lr\",\n      \"rl\",\n      \"rr\",\n      \"i\",\n      \"group\",\n      \"groups\",\n      \"up-and-down={${1:options}}\",\n      \"jot=\",\n      \"interline=\",\n      \"tikz-code={${1:code}}\",\n      \"start-adjust=\",\n      \"end-adjust=\",\n      \"adjust=\",\n      \"ygap=\",\n      \"ystart=\",\n      \"max-length-of-arrow=\",\n      \"%witharrowsstyle\"\n    ],\n    \"\\\\begin{WithArrows},\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\": [\n      \"name=${1:node name}\"\n    ],\n    \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\": [\n      \"wrap-lines\",\n      \"tagged-lines={${1:line1,line2,...}}\",\n      \"fleqn\",\n      \"mathindent=\",\n      \"subequations\",\n      \"standard-behaviour-with-items\"\n    ],\n    \"\\\\begin{DispWithArrows},\\\\begin{DispWithArrows*},\\\\WithArrowsNewStyle\": [\n      \"left-brace\",\n      \"left-brace={${1:content}}\",\n      \"replace-left-brace-by=\"\n    ],\n    \"\\\\WithArrowsOptions,\\\\WithArrowsNewStyle\": [\n      \"xoffset-for-o-arrows=\",\n      \"up-and-down/width=\",\n      \"up-and-down/radius=\",\n      \"no-arrows\"\n    ],\n    \"\\\\Arrow\": [\n      \"jump=${1:integer}\",\n      \"xoffset=\",\n      \"tikz=\",\n      \"tikz-code={${1:code}}\",\n      \"ll\",\n      \"lr\",\n      \"rl\",\n      \"rr\",\n      \"i\",\n      \"new-group\",\n      \"o\",\n      \"up\",\n      \"up={${1:options}}\",\n      \"down\",\n      \"down={${1:options}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/witharrows#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wordcloud.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luamplib\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wordcloud\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wordcloud{${1:(${2:word1},${3:weight1});(${4:word2},${5:weight2});...}}\"\n      }\n    },\n    {\n      \"name\": \"wordcloud\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"wordcloud[${2:options}]{${1:(${3:word1},${4:weight1});(${5:word2},${6:weight2});...}}\",\n        \"keys\": [\n          \"\\\\wordcloud,\\\\wordcloudFile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wordcloudFile\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"wordcloudFile{${1:file}}{${2:number of words}}\"\n      }\n    },\n    {\n      \"name\": \"wordcloudFile\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"wordcloudFile[${3:options%keyvals}]{${1:file}}{${2:number of words}}\",\n        \"keys\": [\n          \"\\\\wordcloud,\\\\wordcloudFile\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wordcloudIgnoreWords\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wordcloudIgnoreWords{${1:word1,word2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\wordcloud,\\\\wordcloudFile\": [\n      \"scale=${1:factor}\",\n      \"margin=\",\n      \"rotate=${1:degrees}\",\n      \"usecolor\",\n      \"colors={${1:color1,color2,...}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wordle.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"simplekv\"\n    },\n    {\n      \"name\": \"xstring\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [\n    {\n      \"name\": \"WordleGrid\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:word%text}}\"\n      }\n    },\n    {\n      \"name\": \"WordleGrid\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:keyvals}]{${1:word%text}}\",\n        \"keys\": [\n          \"\\\\begin{WordleGrid}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"GrilleSutom\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:mot%text}}\"\n      }\n    },\n    {\n      \"name\": \"GrilleSutom\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:clés%keyvals}]{${1:mot%text}}\",\n        \"keys\": [\n          \"\\\\begin{GrilleSutom}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{WordleGrid}\": [\n      \"Colors={${1:back,misplaced,good}}\",\n      \"Rounded=${1:number}\",\n      \"Unit=${1:number}\",\n      \"Font=${1:font commands}\",\n      \"ColorLetters=\",\n      \"BorderColor=\",\n      \"Letters\",\n      \"Style=\",\n      \"Thickness=${1:number}\"\n    ],\n    \"\\\\begin{GrilleSutom}\": [\n      \"Couleurs={${1:fond,mal placée,bien placée}}\",\n      \"Arrondi=${1:nombre}\",\n      \"Unite=${1:nombre}\",\n      \"Police=${1:font commands}\",\n      \"CouleurLettres=\",\n      \"CouleurBordure=\",\n      \"Lettres\",\n      \"Style=\",\n      \"Epaisseur=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wordlike.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"mathptmx\"\n    },\n    {\n      \"name\": \"helvet\"\n    },\n    {\n      \"name\": \"courier\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/wordlike#c\": [\n      \"msword\",\n      \"basic\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wordlike#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/worksheet.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"scrlayer-scrpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"score\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"score{${1:score}}\"\n      }\n    },\n    {\n      \"name\": \"learningtargets\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"learningtargets{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"occurrence\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"occurrence{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"easy\"\n    },\n    {\n      \"name\": \"medium\"\n    },\n    {\n      \"name\": \"hard\"\n    },\n    {\n      \"name\": \"worksheetShowFileName\"\n    },\n    {\n      \"name\": \"worksheetShowScore\"\n    },\n    {\n      \"name\": \"worksheetShowLearningTargets\"\n    },\n    {\n      \"name\": \"worksheetShowDifficulty\"\n    },\n    {\n      \"name\": \"worksheetShowOccurrence\"\n    },\n    {\n      \"name\": \"worksheetHideFileName\"\n    },\n    {\n      \"name\": \"worksheetHideScore\"\n    },\n    {\n      \"name\": \"worksheetHideLearningTargets\"\n    },\n    {\n      \"name\": \"worksheetHideDifficulty\"\n    },\n    {\n      \"name\": \"worksheetHideOccurrence\"\n    },\n    {\n      \"name\": \"worksheetTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worksheetTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"worksheetSubTitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worksheetSubTitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"worksheetMakeTitle\"\n    },\n    {\n      \"name\": \"worksheetAuthors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worksheetAuthors{${1:names}}\"\n      }\n    },\n    {\n      \"name\": \"worksheetCourseName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worksheetCourseName{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"worksheetChangelvFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"worksheetChangelvFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"worksheetNoSFFamilyInHeader\"\n    },\n    {\n      \"name\": \"worksheetHideHeader\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:settings commands}]\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/worldflags.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    },\n    {\n      \"name\": \"tikzlibraryshadows\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes\"\n    },\n    {\n      \"name\": \"tikzlibraryshapes.symbols\"\n    },\n    {\n      \"name\": \"tikzlibrarypositioning\"\n    },\n    {\n      \"name\": \"tikzlibrarymath\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.text\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"worldflag\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"worldflag[${2:options%keyvals}]{${1:flag code}}\",\n        \"keys\": [\n          \"\\\\worldflag,\\\\flagsdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"flagsdefault\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"flagsdefault[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\worldflag,\\\\flagsdefault\",\n          \"\\\\flagsdefault\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framecode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framecode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"flagvariant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flaglength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"flagframe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"framecolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stretchfactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hstripesII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"hstripesII{${1:color1%color}}{${2:color2%color}}\"\n      }\n    },\n    {\n      \"name\": \"hstripesIII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hstripesIII{${1:color1%color}}{${2:color2%color}}{${3:color3%color}}\"\n      }\n    },\n    {\n      \"name\": \"hstripesIV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"hstripesIV{${1:color1%color}}{${2:color2%color}}{${3:color3%color}}{${4:color4%color}}\"\n      }\n    },\n    {\n      \"name\": \"vstripesII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vstripesII{${1:color1%color}}{${2:color2%color}}\"\n      }\n    },\n    {\n      \"name\": \"vstripesIII\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vstripesIII{${1:color1%color}}{${2:color2%color}}{${3:color3%color}}\"\n      }\n    },\n    {\n      \"name\": \"hbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"hbar{${1:color}}{${2:ycoord}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"vbar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"vbar{${1:color}}{${2:xcoord}}{${3:width}}\"\n      }\n    },\n    {\n      \"name\": \"chevron\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"chevron{${1:color}}{${2:xcoord}}\"\n      }\n    },\n    {\n      \"name\": \"starV\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"starV{${1:color}}{${2:coord}}{${3:radius}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"starVI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"starVI{${1:color}}{${2:coord}}{${3:radius}}{${4:angle}}\"\n      }\n    },\n    {\n      \"name\": \"starn\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"starn{${1:color}}{${2:coord}}{${3:outer radius}}{${4:inner radius}}{${5:angle}}\"\n      }\n    },\n    {\n      \"name\": \"moon\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"moon{${1:color}}{${2:coord1}}{${3:radius1}}{${4:coord2}}{${5:radius2}}\"\n      }\n    },\n    {\n      \"name\": \"unionjack\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"unionjack{${1:xcoord1}}{${2:ycoord1}}{${3:xcoord2}}{${4:ycoord2}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"flagdescription\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:aspectratio}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\worldflag,\\\\flagsdefault\": [\n      \"width=\",\n      \"length=\",\n      \"framewidth=\",\n      \"framecolor=\",\n      \"stretch=${1:number}\",\n      \"grid\",\n      \"noemblem\",\n      \"emblem\",\n      \"emblemdefault\",\n      \"variant=${1:number}\"\n    ],\n    \"\\\\flagsdefault\": [\n      \"rotate=${1:degrees}\",\n      \"turn=${1:degrees}\",\n      \"hang=${1:degrees}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wrapfig.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"wrapoverhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFclear\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"wrapfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:position}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wrapfigure\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:lineheight}]{${1:position}}[${4:overhang%l}]{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wraptable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:position}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wraptable\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:lineheight}]{${1:position}}[${4:overhang%l}]{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wrapfloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:floatname}}{${2:position}}{${3:width}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wrapfig2.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"float\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"pict2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetWFbgd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetWFbgd{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetWFfrm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetWFfrm{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"SetWFtxt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetWFtxt{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"includeframedtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includeframedtext{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"includeframedtext\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"includeframedtext[${2:width}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"includeframedtext\",\n      \"arg\": {\n        \"format\": \"[]{}[][]\",\n        \"snippet\": \"includeframedtext[${2:width}]{${1:text}}[${3:settings}][${4:radius%l}]\"\n      }\n    },\n    {\n      \"name\": \"framedbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"framedbox{${1:frame width%l}}{${2:frame thickness%l}}{${3:frame sep%l}}{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"framedbox\",\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}\",\n        \"snippet\": \"framedbox{${1:frame width%l}}{${2:frame thickness%l}}{${3:frame sep%l}}[${5:corner radius%l}]{${4:text}}\"\n      }\n    },\n    {\n      \"name\": \"Frame\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Frame{${1:frame width%l}}{${2:frame height%l}}{${3:corner radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"Frame*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Frame*{${1:frame width%l}}{${2:frame height%l}}{${3:corner radius%l}}\"\n      }\n    },\n    {\n      \"name\": \"wrapoverhang\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"insertwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFinsertwidthL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFinsertwidthH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFscalefactor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFscalewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WFclear\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"wrapfigure\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wrapfigure\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:position%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wrapfigure\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:lines}]{${1:position%keyvals}}[${4:overhang}]{${2:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"wraptable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wraptable\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:position%keyvals}}{${2:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wraptable\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:lines}]{${1:position%keyvals}}[${4:overhang}]{${2:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"wraptext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:position%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"wraptext\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:position%keyvals}}{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wraptext\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"[${3:lines}]{${1:position%keyvals}}[${4:overhang}]{${2:width}}\"\n      }\n    },\n    {\n      \"name\": \"wrapfloat\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:object}}{${2:position%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"wrapfloat\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"{${1:object}}{${2:position%keyvals}}{${3:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"wrapfloat\",\n      \"arg\": {\n        \"format\": \"{}[]{}[]{}\",\n        \"snippet\": \"{${1:object}}[${4:lines}]{${2:position%keyvals}}[${5:overhang}]{${3:width}}\",\n        \"keys\": [\n          \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\"\n        ],\n        \"keyPos\": 2\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/wrapfig2#c\": [\n      \"verbose\",\n      \"WFold\"\n    ],\n    \"\\\\begin{wrapfigure},\\\\begin{wraptable},\\\\begin{wrapfloat}\": [\n      \"l\",\n      \"r\",\n      \"L\",\n      \"R\",\n      \"i\",\n      \"o\",\n      \"I\",\n      \"O\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/wrapfig2#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/wrapstuff.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"wrapstuffset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wrapstuffset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{wrapstuff},\\\\wrapstuffset\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"wrapstuffclear\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"wrapstuff\"\n    },\n    {\n      \"name\": \"wrapstuff\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{wrapstuff},\\\\wrapstuffset\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{wrapstuff},\\\\wrapstuffset\": [\n      \"top=${1:integer}\",\n      \"width=\",\n      \"height=\",\n      \"leftsep=\",\n      \"rightsep=\",\n      \"hsep=\",\n      \"abovesep=\",\n      \"belowsep=\",\n      \"vsep=\",\n      \"l\",\n      \"r\",\n      \"c\",\n      \"i\",\n      \"o\",\n      \"ratio=${1:real number}\",\n      \"column=${1|true,false,par|}\",\n      \"hoffset=\",\n      \"voffset=\",\n      \"type=${1:float type}\",\n      \"lines=${1:integer}\",\n      \"linewidth=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/wtref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newref{${1:ref types}}\"\n      }\n    },\n    {\n      \"name\": \"newref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newref[${2:options%keyvals}]{${1:ref types}}\",\n        \"keys\": [\n          \"\\\\newref\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setrefstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setrefstyle{${1:ref types}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\setrefstyle\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newref\": [\n      \"namespace=${1:string}\",\n      \"nonamespace\",\n      \"scope=${1:counter}\"\n    ],\n    \"\\\\setrefstyle\": [\n      \"refcmd=${1:command}\",\n      \"sep=${1:command}\",\n      \"last sep\",\n      \"last sep=${1:command}\",\n      \"prefix=${1:command}\",\n      \"suffix=${1:command}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xCJK2uni.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"useCJKencmap\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useCJKencmap{${1:encoding}}\"\n      }\n    },\n    {\n      \"name\": \"CJKchartouni\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKchartouni{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsfdtouni\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CJKsfdtouni{${1:plane}}{${2:slot}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xargs.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newcommandx\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommandx{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newcommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommandx{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommandx{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandx*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"newcommandx*{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newcommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newcommandx*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newcommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newcommandx*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandx\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommandx{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewcommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommandx{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommandx{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandx*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"renewcommandx*{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewcommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"renewcommandx*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"renewcommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"renewcommandx*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandx\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providecommandx{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providecommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providecommandx{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecommandx{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandx*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"providecommandx*{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"providecommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"providecommandx*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"providecommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"providecommandx*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironmentx\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironmentx{${1:envname}}[${4:args}][${5:list%keyvals}]{${2:begdef}}{${3:enddef}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newenvironmentx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironmentx{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironmentx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironmentx{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironmentx*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"newenvironmentx*{${1:envname}}[${4:args}][${5:list%keyvals}]{${2:begdef}}{${3:enddef}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"newenvironmentx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"newenvironmentx*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"newenvironmentx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"newenvironmentx*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironmentx{${1:envname}}[${4:args}][${5:list%keyvals}]{${2:begdef}}{${3:enddef}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironmentx{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironmentx{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}{}\",\n        \"snippet\": \"renewenvironmentx*{${1:envname}}[${4:args}][${5:list%keyvals}]{${2:begdef}}{${3:enddef}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}{}\",\n        \"snippet\": \"renewenvironmentx*{${1:envname}}[${4:args}]{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"renewenvironmentx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"renewenvironmentx*{${1:envname}}{${2:begdef}}{${3:enddef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommandx{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommandx{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommandx{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareRobustCommandx*{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareRobustCommandx*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareRobustCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareRobustCommandx*{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommandx{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CheckCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommandx{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommandx\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommandx{${1:cmd}}{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"CheckCommandx*{${1:cmd}}[${3:args}][${4:list%keyvals}]{${2:def}}\",\n        \"keys\": [\n          \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CheckCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"CheckCommandx*{${1:cmd}}[${3:args}]{${2:def}}\"\n      }\n    },\n    {\n      \"name\": \"CheckCommandx*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CheckCommandx*{${1:cmd}}{${2:def}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\newcommandx#c,\\\\newcommandx*#c,\\\\renewcommandx#c,\\\\renewcommandx*#c,\\\\providecommandx#c,\\\\providecommandx*#c,\\\\newenvironmentx#c,\\\\newenvironmentx*#c,\\\\renewenvironmentx#c,\\\\renewenvironmentx*#c,\\\\DeclareRobustCommandx#c,\\\\DeclareRobustCommandx*#c,\\\\CheckCommandx#c,\\\\CheckCommandx*#c\": [\n      \"${1:num}=${2:val}\",\n      \"usedefault\",\n      \"usedefault=${1:flag}\",\n      \"addprefix=${1:prefix cmds}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xassoccnt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"addtocounter\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"addtocounter{${1:counter}}{${2:value}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\addtocounter\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"NewDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewDocumentCounter{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"NewDocumentCounter{${1:counter1,counter2,...}}[${2:resetting counter}]\"\n      }\n    },\n    {\n      \"name\": \"NewDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewDocumentCounter[${2:options%keyvals}]{${1:counter1,counter2,...}}\",\n        \"keys\": [\n          \"\\\\NewDocumentCounter,\\\\DeclareDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"NewDocumentCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"NewDocumentCounter[${2:options%keyvals}]{${1:counter1,counter2,...}}[${3:resetting counter}]\",\n        \"keys\": [\n          \"\\\\NewDocumentCounter,\\\\DeclareDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareDocumentCounter{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"DeclareDocumentCounter{${1:counter1,counter2,...}}[${2:resetting counter}]\"\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareDocumentCounter[${2:options%keyvals}]{${1:counter1,counter2,...}}\",\n        \"keys\": [\n          \"\\\\NewDocumentCounter,\\\\DeclareDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareDocumentCounter\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"DeclareDocumentCounter[${2:options%keyvals}]{${1:counter1,counter2,...}}[${3:resetting counter}]\",\n        \"keys\": [\n          \"\\\\NewDocumentCounter,\\\\DeclareDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"SetDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetDocumentCounter{${1:counter}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"SetDocumentCounter[${3:options%keyvals}]{${1:counter}}{${2:value}}\",\n        \"keys\": [\n          \"\\\\SetDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"StepDownCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StepDownCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"SubtractFromCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SubtractFromCounter{${1:counter}}{${2:delta value}}\"\n      }\n    },\n    {\n      \"name\": \"CopyDocumentCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CopyDocumentCounters{${1:source counter}}{${2:target counter}}\"\n      }\n    },\n    {\n      \"name\": \"SwapDocumentCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SwapDocumentCounters{${1:counter1}}{${2:counter2}}\"\n      }\n    },\n    {\n      \"name\": \"SyncCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SyncCounters{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsDocumentCounterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfIsDocumentCounterTF{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsDocumentCounterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfIsDocumentCounterT{${1:name}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfIsDocumentCounterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfIsDocumentCounterF{${1:name}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"LastAddedToCounter\"\n    },\n    {\n      \"name\": \"LastSteppedCounter\"\n    },\n    {\n      \"name\": \"LastRefSteppedCounter\"\n    },\n    {\n      \"name\": \"LastSetCounter\"\n    },\n    {\n      \"name\": \"LastCounterValue\"\n    },\n    {\n      \"name\": \"RemoveFromReset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveFromReset{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveFromFullReset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveFromFullReset{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"ClearCounterResetList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearCounterResetList{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"ClearCounterResetList*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearCounterResetList*{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"AddToReset\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToReset{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"countersresetlistcount\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"countersresetlistcount{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"getresetlistcount\"\n    },\n    {\n      \"name\": \"CounterFullResetList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CounterFullResetList{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"IfInResetListTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfInResetListTF{${1:resetting counter}}{${2:counter}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInResetListT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInResetListT{${1:resetting counter}}{${2:counter}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfInResetListF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInResetListF{${1:resetting counter}}{${2:counter}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayResetList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DisplayResetList{${1:resetting counter}}\"\n      }\n    },\n    {\n      \"name\": \"DisplayResetList\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DisplayResetList[${2:separator}]{${1:resetting counter}}\"\n      }\n    },\n    {\n      \"name\": \"ShowResetList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowResetList{${1:resetting counter}}\"\n      }\n    },\n    {\n      \"name\": \"GetAllResetLists\"\n    },\n    {\n      \"name\": \"GetParentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetParentCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"LoopAddtoCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopAddtoCounters{${1:counter1,counter2,...}}{${2:increment}}\"\n      }\n    },\n    {\n      \"name\": \"LoopResetCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoopResetCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"LoopRefstepCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoopRefstepCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"LoopSetCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopSetCounters{${1:counter1,counter2,...}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"LoopStepCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoopStepCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"LoopCountersFunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopCountersFunction{${1:counter1,counter2,...}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"LoopCounterResetList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopCounterResetList{${1:counter}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"LoopFullCounterResetList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoopFullCounterResetList{${1:counter}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"CounterWithin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CounterWithin{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"CounterWithin*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CounterWithin*{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"CounterWithout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CounterWithout{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"CounterWithout*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"CounterWithout*{${1:counter1,counter2,...}}{${2:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"BinaryValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BinaryValue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"hexValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hexValue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"HexValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"HexValue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"OctalValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OctalValue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xalphalph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xalphalph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"xAlphAlph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xAlphAlph{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"CounterFormat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CounterFormat{${1:counter1!format1,counter2!format2,...}}\"\n      }\n    },\n    {\n      \"name\": \"CounterFormat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CounterFormat[${2:options%keyvals}]{${1:counter1!format1,counter2!format2,...}}\",\n        \"keys\": [\n          \"\\\\CounterFormat\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"StoreCounterFormats\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StoreCounterFormats{${1:shorthand1!macro1,shorthand2!macro2,...}}\"\n      }\n    },\n    {\n      \"name\": \"StoreCounterFormats\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"StoreCounterFormats[${2:options%keyvals}]{${1:shorthand1!macro1,shorthand2!macro2,...}}\",\n        \"keys\": [\n          \"\\\\StoreCounterFormats,\\\\AddCounterFormats\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddCounterFormats\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddCounterFormats{${1:shorthand1!macro1,shorthand2!macro2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AddCounterFormats\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddCounterFormats[${2:options%keyvals}]{${1:shorthand1!macro1,shorthand2!macro2,...}}\",\n        \"keys\": [\n          \"\\\\StoreCounterFormats,\\\\AddCounterFormats\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RemoveCounterFormats\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveCounterFormats{${1:shorthand1,shorthand2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareAssociatedCounters{${1:driver counter}}{${2:assoc counter list}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DeclareAssociatedCounters[${3:options%keyvals}]{${1:driver counter}}{${2:assoc counter list}}\",\n        \"keys\": [\n          \"\\\\DeclareAssociatedCounters,\\\\AddAssociatedCounters\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddAssociatedCounters{${1:driver counter}}{${2:assoc counter list}}\"\n      }\n    },\n    {\n      \"name\": \"AddAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"AddAssociatedCounters[${3:options%keyvals}]{${1:driver counter}}{${2:assoc counter list}}\",\n        \"keys\": [\n          \"\\\\DeclareAssociatedCounters,\\\\AddAssociatedCounters\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"RemoveAssociatedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveAssociatedCounter{${1:driver counter}}{${2:assoc counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RemoveAssociatedCounters{${1:driver counter}}{${2:assoc counter list}}\"\n      }\n    },\n    {\n      \"name\": \"ClearAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearAssociatedCounters{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTotalAssociatedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareTotalAssociatedCounters{${1:driver counter}}{${2:assoc counter list}}\"\n      }\n    },\n    {\n      \"name\": \"AddDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddDriverCounter{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveDriverCounter{${1:driver counter}}\"\n      }\n    },\n    {\n      \"name\": \"ClearDriverCounters\"\n    },\n    {\n      \"name\": \"IsAssociatedToCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IsAssociatedToCounter{${1:driver counter}}{${2:assoc counter}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetDriverCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"IsAssociatedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsAssociatedCounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsDriverCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsDriverCounter{${1:driver counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCoupledCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCoupledCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCoupledCounters\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareCoupledCounters[${2:options%keyvals}]{${1:counter1,counter2,...}}\",\n        \"keys\": [\n          \"\\\\DeclareCoupledCounters,\\\\AddCoupledCounters\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareCoupledCountersGroup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareCoupledCountersGroup{${1:group name}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveCoupledCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemoveCoupledCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveCoupledCounters\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RemoveCoupledCounters[${2:options%keyvals}]{${1:counter1,counter2,...}}\",\n        \"keys\": [\n          \"\\\\RemoveCoupledCounters,\\\\ClearCoupledCounters\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddCoupledCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddCoupledCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"AddCoupledCounters\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddCoupledCounters[${2:options%keyvals}]{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ClearCoupledCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ClearCoupledCounters{${1:options%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ClearAllCoupledCounters\"\n    },\n    {\n      \"name\": \"IsCoupledCounterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsCoupledCounterTF{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsCoupledCounterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsCoupledCounterT{${1:counter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsCoupledCounterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsCoupledCounterF{${1:counter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"DeclarePeriodicCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclarePeriodicCounter{${1:counter}}{${2:threshold value}}\"\n      }\n    },\n    {\n      \"name\": \"AddPeriodicCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddPeriodicCounter{${1:counter}}{${2:threshold value}}\"\n      }\n    },\n    {\n      \"name\": \"RemovePeriodicCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemovePeriodicCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemovePeriodicCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RemovePeriodicCounter{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveAllPeriodicCounters\"\n    },\n    {\n      \"name\": \"RemoveAllPeriodicCounters\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"RemoveAllPeriodicCounters[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\RemovePeriodicCounter,\\\\RemoveAllPeriodicCounters,\\\\ChangePeriodicCounterCondition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ChangePeriodicCounterCondition\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ChangePeriodicCounterCondition{${1:counter}}{${2:threshold value}}\"\n      }\n    },\n    {\n      \"name\": \"ChangePeriodicCounterCondition\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ChangePeriodicCounterCondition[${3:options%keyvals}]{${1:counter}}{${2:threshold value}}\",\n        \"keys\": [\n          \"\\\\RemovePeriodicCounter,\\\\RemoveAllPeriodicCounters,\\\\ChangePeriodicCounterCondition\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IsPeriodicCounterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsPeriodicCounterTF{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsPeriodicCounterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsPeriodicCounterT{${1:counter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsPeriodicCounterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsPeriodicCounterF{${1:counter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"SuspendCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SuspendCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"CascadeSuspendCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CascadeSuspendCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ResumeSuspendedCounters\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ResumeSuspendedCounters{${1:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ResumeAllSuspendedCounters\"\n    },\n    {\n      \"name\": \"IsSuspendedCounter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsSuspendedCounter{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RegisterTotalDocumentCounter{${1:total counter}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RegisterTotalDocumentCounter[${2:options%keyvals}]{${1:total counter}}\",\n        \"keys\": [\n          \"\\\\RegisterTotalDocumentCounter,\\\\NewTotalDocumentCounter,\\\\DeclareTotalDocumentCounter\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"TotalCounterInternalName\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TotalCounterInternalName{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"TotalCounterInternalNameExp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TotalCounterInternalNameExp{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"TotalValue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"TotalValue{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"IsTotalCounterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsTotalCounterTF{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsTotalCounterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsTotalCounterT{${1:counter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsTotalCounterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsTotalCounterF{${1:counter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"NewTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewTotalDocumentCounter{${1:total-counter1,total-counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"NewTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewTotalDocumentCounter[${2:options%keyvals}]{${1:total-counter1,total-counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareTotalDocumentCounter{${1:total-counter1,total-counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareTotalDocumentCounter\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareTotalDocumentCounter[${2:options%keyvals}]{${1:total-counter1,total-counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"IsSuperTotalCounterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsSuperTotalCounterTF{${1:counter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsSuperTotalCounterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsSuperTotalCounterT{${1:counter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsSuperTotalCounterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsSuperTotalCounterF{${1:counter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"label{${1:key}}[${2:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\label#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"label\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"label[${2:cleveref overrule}]{${1:key}}[${3:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\label#c\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"LaTeXLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LaTeXLabel{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"LaTeXLabel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"LaTeXLabel[${2:cleveref overrule}]{${1:key}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterPreLabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RegisterPreLabelHook{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterPostLabelHook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RegisterPostLabelHook{${1:cmd1,cmd2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ClearPostLabelHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ClearPreLabelHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AddBackupCounters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddBackupCounters[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddFeature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AddFeature[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AddLanguageMappings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddLanguageMappings{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"AssignBackupCounters\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"AssignBackupCounters[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"AssociatedCounterInfoColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BackupCounterGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BackupCounterGroup[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"BackupCounterValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"BackupCounterValues[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClearBackupCounterGroups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ClearBackupCounterGroups[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClearBackupState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ClearBackupState[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ClearCounterBackupState\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ClearCounterBackupState[${3:options}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ClearCounterFormats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareBackupCountersGroupName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareBackupCountersGroupName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMappings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareLanguageMappings{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareLanguageMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareLanguageMap{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteBackupCounterGroups\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeleteBackupCounterGroups[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"DriverCounterInfoColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EnableNumberofrunsTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EnableNumberofrunsTF{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"GeneralCounterInfoColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetParentCounterChain\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetParentCounterChain{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistsDriverCounterList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExistsDriverCounterList{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupCounterF{${1:name}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterGroupF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupCounterGroupF{${1:name}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterGroupTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsBackupCounterGroupTF{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterGroupT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupCounterGroupT{${1:name}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsBackupCounterTF{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupCounterT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupCounterT{${1:name}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupStateF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupStateF{${1:name}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupStateTF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IsBackupStateTF{${1:name}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IsBackupStateT\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IsBackupStateT{${1:name}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"NewContainer\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewContainer{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"NewCounterHierarchy\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"NewCounterHierarchy[${2:options}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"PrettyPrintCounterName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrettyPrintCounterName{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideOriginalLabelCommands\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RedefineLabelCommand\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RemoveCountersFromBackupGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RemoveCountersFromBackupGroup[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RemoveFeature\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RemoveFeature[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreBackupCounterGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"RestoreBackupCounterGroup[${2:options}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RunLabelHooks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RunLabelHooks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RunPostLabelHooks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RunPostLabelHooks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RunPreLabelHooks\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RunPreLabelHooks{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowAllAssociatedCounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowAssociatedCountersList\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowAssociatedCountersList{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowCounterFormats\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowDriverCounterList\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ShowLanguageMappings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ShowLanguageMappings{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"ShowSuspendedCounters\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TotalCounterInfoColor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WriteCountersAtEnd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"showresetlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"showresetlist{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xassoccnt#c\": [\n      \"autodefinecounters\",\n      \"nonumberofruns\",\n      \"redefinelabel\",\n      \"standardcounterformats=${1|on,off|}\"\n    ],\n    \"\\\\addtocounter\": [\n      \"wrap\"\n    ],\n    \"\\\\NewDocumentCounter,\\\\DeclareDocumentCounter\": [\n      \"initial=${1:integer}\"\n    ],\n    \"\\\\SetDocumentCounter\": [\n      \"associatedtoo\",\n      \"onlycounters=${1:counter list}\"\n    ],\n    \"\\\\CounterFormat\": [\n      \"recursive\",\n      \"separator=${1:character}\"\n    ],\n    \"\\\\StoreCounterFormats,\\\\AddCounterFormats\": [\n      \"separator=${1:character}\"\n    ],\n    \"\\\\DeclareAssociatedCounters,\\\\AddAssociatedCounters\": [\n      \"autodefine=${1|none,all,driver,associated|}\",\n      \"sloppy\"\n    ],\n    \"\\\\DeclareCoupledCounters,\\\\AddCoupledCounters\": [\n      \"name=${1:group name}\",\n      \"multiple\"\n    ],\n    \"\\\\RemoveCoupledCounters,\\\\ClearCoupledCounters\": [\n      \"name=${1:group name}\"\n    ],\n    \"\\\\RemovePeriodicCounter,\\\\RemoveAllPeriodicCounters,\\\\ChangePeriodicCounterCondition\": [\n      \"reset\"\n    ],\n    \"\\\\RegisterTotalDocumentCounter,\\\\NewTotalDocumentCounter,\\\\DeclareTotalDocumentCounter\": [\n      \"supertotal\"\n    ],\n    \"\\\\label#c\": [\n      \"all\",\n      \"select=${1:counter list}\",\n      \"prefix=${1:string}\",\n      \"prefix-sep=${1:string}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xassoccnt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xbmks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xbmksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xbmksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xbmksetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pdfbookmarkx{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"pdfbookmarkx[${3:level}]{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"pdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"pdfbookmarkx{${1:text}}[${3:keyvals}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"pdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"pdfbookmarkx[${3:level}]{${1:text}}[${4:keyvals}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"currentpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"currentpdfbookmarkx{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"currentpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"currentpdfbookmarkx{${1:text}}[${3:keyvals}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"subpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"subpdfbookmarkx{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"subpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"subpdfbookmarkx{${1:text}}[${3:keyvals}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"belowpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"belowpdfbookmarkx{${1:text}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"belowpdfbookmarkx\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"belowpdfbookmarkx{${1:text}}[${3:keyvals}]{${2:name}}\",\n        \"keys\": [\n          \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xbmks#c\": [\n      \"dvipsone\",\n      \"dvips\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\"\n    ],\n    \"\\\\xbmksetup\": [\n      \"docbundle={${1:name1,name2,...}}\",\n      \"colors={${1:int=<color>,ext=<color>}}\",\n      \"styles={${1:style1,style2,...}}\"\n    ],\n    \"\\\\pdfbookmarkx,\\\\currentpdfbookmarkx,\\\\subpdfbookmarkx,\\\\belowpdfbookmarkx\": [\n      \"action={${1:PDF action}}\",\n      \"color=\",\n      \"style=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xbmks#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcharter-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    },\n    {\n      \"name\": \"realscripts\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"circledR\"\n    },\n    {\n      \"name\": \"circledS\"\n    },\n    {\n      \"name\": \"backepsilon\"\n    },\n    {\n      \"name\": \"bigstar\",\n      \"detail\": \"★ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Star, filled\"\n    },\n    {\n      \"name\": \"blacklozenge\"\n    },\n    {\n      \"name\": \"blacksquare\"\n    },\n    {\n      \"name\": \"blacktriangle\",\n      \"detail\": \"▴ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Up triangle, filled\"\n    },\n    {\n      \"name\": \"blacktriangledown\",\n      \"detail\": \"▾ (\\\"mathabx\\\" command)\",\n      \"doc\": \"Black down-pointing small triangle\"\n    },\n    {\n      \"name\": \"Box\"\n    },\n    {\n      \"name\": \"centerdot\"\n    },\n    {\n      \"name\": \"circlearrowleft\"\n    },\n    {\n      \"name\": \"circlearrowright\"\n    },\n    {\n      \"name\": \"cuberoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberoot{${1:arg}}\"\n      },\n      \"detail\": \"∛\",\n      \"doc\": \"Cube root\"\n    },\n    {\n      \"name\": \"cuberootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cuberootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"dashleftarrow\"\n    },\n    {\n      \"name\": \"dashrightarrow\"\n    },\n    {\n      \"name\": \"diagdown\"\n    },\n    {\n      \"name\": \"diagup\"\n    },\n    {\n      \"name\": \"Diamond\"\n    },\n    {\n      \"name\": \"digamma\"\n    },\n    {\n      \"name\": \"doteqdot\"\n    },\n    {\n      \"name\": \"doublebarwedge\",\n      \"detail\": \"⩞ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Logical and with double overbar\"\n    },\n    {\n      \"name\": \"doublecap\"\n    },\n    {\n      \"name\": \"doublecup\"\n    },\n    {\n      \"name\": \"downdasharrow\",\n      \"detail\": \"⇣\",\n      \"doc\": \"Downwards dashed arrow\"\n    },\n    {\n      \"name\": \"enleadertwodots\",\n      \"detail\": \"‥\",\n      \"doc\": \"Double baseline dot (en leader)\"\n    },\n    {\n      \"name\": \"eqqslantgtr\",\n      \"detail\": \"⪜\",\n      \"doc\": \"Double-line slanted equal to or greater-than\"\n    },\n    {\n      \"name\": \"eqqslantless\",\n      \"detail\": \"⪛\",\n      \"doc\": \"Double-line slanted equal to or less-than\"\n    },\n    {\n      \"name\": \"Finv\",\n      \"detail\": \"Ⅎ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Turned capital f\"\n    },\n    {\n      \"name\": \"fourthroot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthroot{${1:arg}}\"\n      },\n      \"detail\": \"∜\",\n      \"doc\": \"Fourth root\"\n    },\n    {\n      \"name\": \"fourthrootsign\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fourthrootsign{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Game\",\n      \"detail\": \"⅁\",\n      \"doc\": \"\\\\game (amssymb), turned sans-serif capital g (amssymb has mirrored g)\"\n    },\n    {\n      \"name\": \"geqqslant\",\n      \"detail\": \"⫺\",\n      \"doc\": \"Double-line slanted greater-than or equal to\"\n    },\n    {\n      \"name\": \"gggtr\"\n    },\n    {\n      \"name\": \"gtreqqslantless\"\n    },\n    {\n      \"name\": \"gtreqslantless\"\n    },\n    {\n      \"name\": \"gvertneqq\"\n    },\n    {\n      \"name\": \"harrowextender\",\n      \"unusual\": true,\n      \"detail\": \"⎯\",\n      \"doc\": \"Horizontal line extension (used to extend arrows)\"\n    },\n    {\n      \"name\": \"intextender\",\n      \"unusual\": true,\n      \"detail\": \"⎮\",\n      \"doc\": \"Integral extension\"\n    },\n    {\n      \"name\": \"Join\",\n      \"detail\": \"⨝ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Join\"\n    },\n    {\n      \"name\": \"leadsto\"\n    },\n    {\n      \"name\": \"leftdasharrow\",\n      \"detail\": \"⇠ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"Leftwards dashed arrow\"\n    },\n    {\n      \"name\": \"leqqslant\",\n      \"detail\": \"⫹\",\n      \"doc\": \"Double-line slanted less-than or equal to\"\n    },\n    {\n      \"name\": \"lesseqqslantgtr\"\n    },\n    {\n      \"name\": \"lesseqslantgtr\"\n    },\n    {\n      \"name\": \"lgblkcircle\",\n      \"detail\": \"⬤\",\n      \"doc\": \"Black large circle\"\n    },\n    {\n      \"name\": \"lgblksquare\",\n      \"detail\": \"⬛ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"Black large square\"\n    },\n    {\n      \"name\": \"lgwhtsquare\",\n      \"detail\": \"⬜ (\\\"fourier -amssymb\\\" command)\",\n      \"doc\": \"White large square\"\n    },\n    {\n      \"name\": \"lhd\"\n    },\n    {\n      \"name\": \"llless\"\n    },\n    {\n      \"name\": \"lozenge\"\n    },\n    {\n      \"name\": \"lvertneqq\"\n    },\n    {\n      \"name\": \"mbfdotlessi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfdotlessj\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfimath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitvarv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfitvarw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfjmath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mbfvarzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mdblkcircle\",\n      \"detail\": \"⚫ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium black circle\"\n    },\n    {\n      \"name\": \"mdblkdiamond\",\n      \"detail\": \"⬥\",\n      \"doc\": \"Black medium diamond\"\n    },\n    {\n      \"name\": \"mdblklozenge\",\n      \"detail\": \"⬧\",\n      \"doc\": \"\\\\blacklozenge (amssymb), black medium lozenge\"\n    },\n    {\n      \"name\": \"mdblksquare\",\n      \"detail\": \"◼ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"Black medium square\"\n    },\n    {\n      \"name\": \"mdlgblkdiamond\",\n      \"detail\": \"◆ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Black diamond\"\n    },\n    {\n      \"name\": \"mdlgblklozenge\",\n      \"detail\": \"⧫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Black lozenge\"\n    },\n    {\n      \"name\": \"mdlgwhtdiamond\",\n      \"detail\": \"◇ (\\\"amssymb\\\" command)\",\n      \"doc\": \"White diamond; diamond, open\"\n    },\n    {\n      \"name\": \"mdsmblkcircle\",\n      \"detail\": \"⦁ (\\\"oz\\\" command)\",\n      \"doc\": \"\\\\dot (oz), spot\"\n    },\n    {\n      \"name\": \"mdsmblksquare\",\n      \"detail\": \"◾\",\n      \"doc\": \"Black medium small square\"\n    },\n    {\n      \"name\": \"mdsmwhtcircle\",\n      \"detail\": \"⚬\",\n      \"doc\": \"Medium small white circle\"\n    },\n    {\n      \"name\": \"mdsmwhtsquare\",\n      \"detail\": \"◽\",\n      \"doc\": \"White medium small square\"\n    },\n    {\n      \"name\": \"mdwhtcircle\",\n      \"detail\": \"⚪ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Medium white circle\"\n    },\n    {\n      \"name\": \"mdwhtdiamond\",\n      \"detail\": \"⬦\",\n      \"doc\": \"White medium diamond\"\n    },\n    {\n      \"name\": \"mdwhtlozenge\",\n      \"detail\": \"⬨\",\n      \"doc\": \"\\\\lozenge (amssymb), white medium lozenge\"\n    },\n    {\n      \"name\": \"mdwhtsquare\",\n      \"detail\": \"◻ (\\\"amssymb -fourier\\\" command)\",\n      \"doc\": \"White medium square\"\n    },\n    {\n      \"name\": \"mithbar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitvarv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mitvarw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mscre\",\n      \"unusual\": true,\n      \"detail\": \"ℯ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr e, script small letter e\"\n    },\n    {\n      \"name\": \"mscrg\",\n      \"unusual\": true,\n      \"detail\": \"ℊ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"/scr g, script small letter g\"\n    },\n    {\n      \"name\": \"mscro\",\n      \"unusual\": true,\n      \"detail\": \"ℴ (\\\"urwchancal\\\" command)\",\n      \"doc\": \"Order of (script small o)\"\n    },\n    {\n      \"name\": \"mupvarzero\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ngeqq\"\n    },\n    {\n      \"name\": \"ngeqqslant\"\n    },\n    {\n      \"name\": \"ngeqslant\"\n    },\n    {\n      \"name\": \"nleqq\"\n    },\n    {\n      \"name\": \"nleqqslant\"\n    },\n    {\n      \"name\": \"nleqslant\"\n    },\n    {\n      \"name\": \"nparallelslant\"\n    },\n    {\n      \"name\": \"npreceq\"\n    },\n    {\n      \"name\": \"nshortmid\"\n    },\n    {\n      \"name\": \"nshortparallel\"\n    },\n    {\n      \"name\": \"nshortparallelslant\"\n    },\n    {\n      \"name\": \"nsubseteqq\"\n    },\n    {\n      \"name\": \"nsucceq\"\n    },\n    {\n      \"name\": \"nsupseteqq\"\n    },\n    {\n      \"name\": \"ntriangleleft\",\n      \"detail\": \"⋪ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notlefttriangle (wrisym), not left triangle\"\n    },\n    {\n      \"name\": \"ntriangleright\",\n      \"detail\": \"⋫ (\\\"amssymb\\\" command)\",\n      \"doc\": \"\\\\notrighttriangle (wrisym), not right triangle\"\n    },\n    {\n      \"name\": \"overrightarc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"overrightarc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parallelslant\"\n    },\n    {\n      \"name\": \"pitchfork\",\n      \"detail\": \"⋔ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Pitchfork\"\n    },\n    {\n      \"name\": \"precapprox\",\n      \"detail\": \"⪷ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above almost equal to\"\n    },\n    {\n      \"name\": \"preceqq\",\n      \"detail\": \"⪳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Precedes above equals sign\"\n    },\n    {\n      \"name\": \"precnapprox\",\n      \"detail\": \"⪹ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not almost equal to\"\n    },\n    {\n      \"name\": \"precneq\",\n      \"detail\": \"⪱\",\n      \"doc\": \"Precedes above single-line not equal to\"\n    },\n    {\n      \"name\": \"precneqq\",\n      \"detail\": \"⪵ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Precedes above not equal to\"\n    },\n    {\n      \"name\": \"restriction\"\n    },\n    {\n      \"name\": \"rhd\"\n    },\n    {\n      \"name\": \"rightcurvedarrow\",\n      \"detail\": \"⤳ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Wave arrow pointing directly right\"\n    },\n    {\n      \"name\": \"rightdasharrow\",\n      \"detail\": \"⇢ (\\\"amsfonts\\\" command)\",\n      \"doc\": \"\\\\dasharrow (amsfonts), rightwards dashed arrow\"\n    },\n    {\n      \"name\": \"shortmid\"\n    },\n    {\n      \"name\": \"shortparallel\"\n    },\n    {\n      \"name\": \"shortparallelslant\"\n    },\n    {\n      \"name\": \"smallblacktriangleleft\",\n      \"detail\": \"◂ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Left triangle, filled\"\n    },\n    {\n      \"name\": \"smallblacktriangleright\",\n      \"detail\": \"▸ (\\\"mathabx -fourier\\\" command)\",\n      \"doc\": \"Right triangle, filled\"\n    },\n    {\n      \"name\": \"smallfrown\"\n    },\n    {\n      \"name\": \"smallsmile\"\n    },\n    {\n      \"name\": \"smalltriangleleft\",\n      \"detail\": \"◃ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleleft, \\\\triangleleft (mathabx), left triangle, open\"\n    },\n    {\n      \"name\": \"smalltriangleright\",\n      \"detail\": \"▹ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangleright, \\\\triangleright (mathabx), right triangle, open\"\n    },\n    {\n      \"name\": \"smblkdiamond\",\n      \"detail\": \"⬩\",\n      \"doc\": \"Black small diamond\"\n    },\n    {\n      \"name\": \"smblklozenge\",\n      \"detail\": \"⬪\",\n      \"doc\": \"Black small lozenge\"\n    },\n    {\n      \"name\": \"smwhtlozenge\",\n      \"detail\": \"⬫\",\n      \"doc\": \"White small lozenge\"\n    },\n    {\n      \"name\": \"square\"\n    },\n    {\n      \"name\": \"subseteqq\",\n      \"detail\": \"⫅ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above equals sign\"\n    },\n    {\n      \"name\": \"subsetneqq\",\n      \"detail\": \"⫋ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Subset of above not equal to\"\n    },\n    {\n      \"name\": \"succapprox\",\n      \"detail\": \"⪸ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above almost equal to\"\n    },\n    {\n      \"name\": \"succeqq\",\n      \"detail\": \"⪴ (\\\"txfonts\\\" command)\",\n      \"doc\": \"Succeeds above equals sign\"\n    },\n    {\n      \"name\": \"succnapprox\",\n      \"detail\": \"⪺ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not almost equal to\"\n    },\n    {\n      \"name\": \"succneq\",\n      \"detail\": \"⪲\",\n      \"doc\": \"Succeeds above single-line not equal to\"\n    },\n    {\n      \"name\": \"succneqq\",\n      \"detail\": \"⪶ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Succeeds above not equal to\"\n    },\n    {\n      \"name\": \"supseteqq\",\n      \"detail\": \"⫆ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above equals sign\"\n    },\n    {\n      \"name\": \"supsetneqq\",\n      \"detail\": \"⫌ (\\\"amssymb\\\" command)\",\n      \"doc\": \"Superset of above not equal to\"\n    },\n    {\n      \"name\": \"thickapprox\"\n    },\n    {\n      \"name\": \"thicksim\"\n    },\n    {\n      \"name\": \"tieconcat\",\n      \"unusual\": true,\n      \"detail\": \"⁀ (\\\"oz\\\" command)\",\n      \"doc\": \"Character tie, sequence concatenation\"\n    },\n    {\n      \"name\": \"triangledown\",\n      \"detail\": \"▿ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\triangledown (amssymb), white down-pointing small triangle\"\n    },\n    {\n      \"name\": \"unlhd\"\n    },\n    {\n      \"name\": \"unrhd\"\n    },\n    {\n      \"name\": \"upand\",\n      \"detail\": \"⅋ (\\\"txfonts\\\" command)\",\n      \"doc\": \"\\\\bindnasrepma (stmaryrd), turned ampersand\"\n    },\n    {\n      \"name\": \"upbackepsilon\",\n      \"detail\": \"϶ (\\\"amssymb wrisym\\\" command)\",\n      \"doc\": \"Greek reversed lunate epsilon symbol\"\n    },\n    {\n      \"name\": \"updasharrow\",\n      \"detail\": \"⇡\",\n      \"doc\": \"Upwards dashed arrow\"\n    },\n    {\n      \"name\": \"updigamma\",\n      \"unusual\": true,\n      \"detail\": \"ϝ (\\\"amssymb arevmath wrisym\\\" command)\",\n      \"doc\": \"Greek small letter digamma\"\n    },\n    {\n      \"name\": \"varemptyset\"\n    },\n    {\n      \"name\": \"varpropto\"\n    },\n    {\n      \"name\": \"varsubsetneq\"\n    },\n    {\n      \"name\": \"varsubsetneqq\"\n    },\n    {\n      \"name\": \"varsupsetneq\"\n    },\n    {\n      \"name\": \"varsupsetneqq\"\n    },\n    {\n      \"name\": \"varsymbfscrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymbfscrQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymbfscrT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrE\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrQ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"varsymscrT\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vartriangle\",\n      \"detail\": \"▵ (\\\"mathabx\\\" command)\",\n      \"doc\": \"\\\\vartriangle (amssymb), small up triangle, open\"\n    },\n    {\n      \"name\": \"Vvert\",\n      \"detail\": \"⦀ (\\\"fourier\\\" command)\",\n      \"doc\": \"Triple vertical bar delimiter\"\n    },\n    {\n      \"name\": \"vysmblksquare\",\n      \"detail\": \"⬝\",\n      \"doc\": \"\\\\centerdot (amssymb), t \\\\squaredot (marvosym), black very small square\"\n    },\n    {\n      \"name\": \"vysmwhtsquare\",\n      \"detail\": \"⬞\",\n      \"doc\": \"White very small square\"\n    },\n    {\n      \"name\": \"wedgebar\",\n      \"detail\": \"⩟\",\n      \"doc\": \"Logical and with underbar\"\n    },\n    {\n      \"name\": \"widearc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widearc{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"Zbar\",\n      \"detail\": \"Ƶ\",\n      \"doc\": \"Impedance\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xcharter-otf#c\": [\n      \"no-text\",\n      \"tight\",\n      \"loose\",\n      \"fulloldstyle\",\n      \"math-style=${1|ISO,TeX,french,upright|}\",\n      \"bold-style=${1|ISO,TeX,upright|}\",\n      \"nabla=${1|italic,upright,literal|}\",\n      \"partial=${1|italic,upright,literal|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"StylisticSet=${1|4,5,6|}\",\n      \"Style=${1|upint,leqslant,smaller,subsetneq,parallelslant|}\",\n      \"Scale=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcharter-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcntperchap.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-counter\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xassoccnt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"RegisterTrackCounter\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterTrackCounter{${1:track counter}}{${2:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"RegisterMultipleTrackCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"RegisterMultipleTrackCounters{${1:trackcounter1,trackcounter2,...}}{${2:counter1,counter2,...}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValue\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObtainTrackedValue{${1:track level}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValue\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObtainTrackedValue[${3:counter value}]{${1:track level}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValueExp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObtainTrackedValueExp{${1:track level}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValueExp\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObtainTrackedValueExp[${3:counter value}]{${1:track level}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"tracklabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tracklabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tracklabel\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tracklabel[${2:counter}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tracklabel*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tracklabel*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"tracklabel*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tracklabel*[${2:counter}]{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValueByLabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ObtainTrackedValueByLabel{${1:label}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"ObtainTrackedValueByLabel\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"ObtainTrackedValueByLabel[${3:counter}]{${1:label}}{${2:tracked counter}}\"\n      }\n    },\n    {\n      \"name\": \"AddToTrackedCounters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToTrackedCounters{${1:trackedcounter1,trackedcounter2,...}}{${2:counter value}}\"\n      }\n    },\n    {\n      \"name\": \"CloseTrackFileForWrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetStoredValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LoadTrackedValues\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"OpenTrackFileForWrite\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"OpenTrackFileForWrite{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"StoreCounterValues\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StoreCounterValues{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"TrackCounters\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xcoffins.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"TotalHeight\"\n    },\n    {\n      \"name\": \"Height\"\n    },\n    {\n      \"name\": \"Depth\"\n    },\n    {\n      \"name\": \"Width\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xcolor-material.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printcolorvalue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printcolorvalue{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"printcolorvalue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printcolorvalue[${2:model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorsample\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorsample{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorsample\",\n      \"arg\": {\n        \"format\": \"[][][]{}[]\",\n        \"snippet\": \"colorsample[${2:model}][${3:textcolor%color}][${4:box width%l}]{${1:color}}[${5:title%text}]\"\n      }\n    },\n    {\n      \"name\": \"colorpalette\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colorpalette{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorpalette\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"colorpalette[${2:options%keyvals}]{${1:color}}\",\n        \"keys\": [\n          \"\\\\colorpalette\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xcolor-material#c\": [\n      \"prefix=${1:prefix}\"\n    ],\n    \"\\\\colorpalette\": [\n      \"width=\",\n      \"height=\",\n      \"shape=${1:shape}\",\n      \"title=\",\n      \"title text color=\",\n      \"init text color=\",\n      \"altern text color=\",\n      \"variation font=\",\n      \"value font=\",\n      \"title font=\",\n      \"colorbox sep=\",\n      \"first colorbox sep=\",\n      \"title colorbox height=\",\n      \"primary palette=\",\n      \"secondary palette=\",\n      \"percent char=\",\n      \"primary variation=\",\n      \"primary toggle at=\",\n      \"secondary toggle at=\",\n      \"color model=\",\n      \"both\",\n      \"primary\",\n      \"basic\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcolor-material#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcolor-solarized.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"solarizedPalette\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xcolor-solarized#c\": [\n      \"prefix=${1:prefix}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcolor-solarized#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"GetGinDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GinDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xcolorcmd\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"adjustUCRBG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeHsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangetHsb\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeRGB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeHSB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rangeGray\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"substitutecolormodel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"substitutecolormodel{${1:source model}}{${2:target model-list}}\"\n      }\n    },\n    {\n      \"name\": \"selectcolormodel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"selectcolormodel{${1:num model}}\"\n      }\n    },\n    {\n      \"name\": \"ifconvertcolorsD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsDtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsDfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifconvertcolorsU\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsUtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"convertcolorsUfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"definecolor{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"definecolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"definecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"providecolor{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolor\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"providecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"colorlet{${1:name%specialDef}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"colorlet{${1:name%specialDef}}[${3:num-model}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"colorlet[${3:type}]{${1:name%specialDef}}{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"colorlet\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"colorlet[${3:type}]{${1:name%specialDef}}[${4:num-model}]{${2:color}}\"\n      }\n    },\n    {\n      \"name\": \"definecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"definecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"providecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"providecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"preparecolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"preparecolor[${4:type}]{${1:name%specialDef}}{${2:model-list}}{${3:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"preparecolorset\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"preparecolorset[${5:type}]{${1:model-list}}{${2:head}}{${3:tail}}{${4:set-spec}}\"\n      }\n    },\n    {\n      \"name\": \"ifdefinecolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"definecolors{${1:id-list}}\"\n      }\n    },\n    {\n      \"name\": \"providecolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"providecolors{${1:id-list}}\"\n      }\n    },\n    {\n      \"name\": \"ifglobalcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalcolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"globalcolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xglobal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boxframe\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"boxframe{${1:width}}{${2:height}}{${3:depth}}\"\n      }\n    },\n    {\n      \"name\": \"testcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"testcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"testcolor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"testcolor[${2:model-list}]{${1:spec-list}}\"\n      }\n    },\n    {\n      \"name\": \"blendcolors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blendcolors{${1:mix-expr}}\"\n      }\n    },\n    {\n      \"name\": \"blendcolors*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blendcolors*{${1:mix-expr}}\"\n      }\n    },\n    {\n      \"name\": \"maskcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maskcolors{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"maskcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"maskcolors[${2:num-model}]{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"ifmaskcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcolorstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maskcolorsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"colormask\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"definecolorseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"definecolorseries{${1:name}}{${2:core-model}}{${3:method%keyvals}}{${4:b-spec}}{${5:s-spec}}\",\n        \"keys\": [\n          \"\\\\definecolorseries\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"definecolorseries\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]{}[]{}\",\n        \"snippet\": \"definecolorseries{${1:name}}{${2:core-model}}{${3:method%keyvals}}[${6:b-model}]{${4:b-spec}}[${7:s-model}]{${5:s-spec}}\",\n        \"keys\": [\n          \"\\\\definecolorseries\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"resetcolorseries\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"resetcolorseries[${2:div}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"colorseriescycle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extractcolorspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"extractcolorspec{${1:color}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"extractcolorspecs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"extractcolorspecs{${1:color}}{${2:model-cmd%cmd}}{${3:color-cmd%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"convertcolorspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"convertcolorspec{${1:model}}{${2:spec}}{${3:target-model}}{${4:cmd}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"testcolors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"testcolors\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:model-list}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xcolor#c\": [\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"luatex\",\n      \"pdftex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"emtex\",\n      \"dviwin\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"pctex32\",\n      \"truetex\",\n      \"tcidvi\",\n      \"vtex\",\n      \"xetex\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ],\n    \"\\\\definecolorseries\": [\n      \"step\",\n      \"grad\",\n      \"last\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcolor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcomment.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcomment{${1:envname list}}\"\n      }\n    },\n    {\n      \"name\": \"xcommentchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rescanfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rescanfile{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"norescanfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"envirsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newxcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newxcomment{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"newxcomment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"newxcomment[${2:envname list}]{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"nofloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nofloat{${1:envname list}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname list}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xcookybooky.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"ifsym\"\n    },\n    {\n      \"name\": \"cookingsymbols\"\n    },\n    {\n      \"name\": \"wrapfig\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"lettrine\"\n    },\n    {\n      \"name\": \"fancyhdr\"\n    },\n    {\n      \"name\": \"units\"\n    },\n    {\n      \"name\": \"eso-pic\"\n    },\n    {\n      \"name\": \"picture\"\n    },\n    {\n      \"name\": \"tabulary\"\n    },\n    {\n      \"name\": \"framed\"\n    },\n    {\n      \"name\": \"emerald\",\n      \"if\": \"handwritten\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"graph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"graph{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\graph\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ingredients\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ingredients{${1:ingredients%text}}\"\n      }\n    },\n    {\n      \"name\": \"ingredients\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ingredients[${2:lines}]{${1:ingredients%text}}\"\n      }\n    },\n    {\n      \"name\": \"preparation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preparation{${1:steps%text}}\"\n      }\n    },\n    {\n      \"name\": \"step\"\n    },\n    {\n      \"name\": \"introduction\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"introduction{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"suggestion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"suggestion{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"suggestion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"suggestion[${2:headline%text}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"portion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"portion{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"portion\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"portion[${2:unit}]{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"hint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bakingtemperature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bakingtemperature{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\bakingtemperature\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setRecipeColors\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecipeColors{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setRecipeColors\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setRecipeLengths\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecipeLengths{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setRecipeLengths\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setRecipeSizes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setRecipeSizes{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setRecipeSizes\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setRecipenameFont\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"setRecipenameFont{${1:family}}{${2:encoding}}{${3:series}}{${4:shape}}\"\n      }\n    },\n    {\n      \"name\": \"setHeadlines\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setHeadlines{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setHeadlines\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setBackgroundPicture\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setBackgroundPicture{${1:imagefile}}\"\n      }\n    },\n    {\n      \"name\": \"setBackgroundPicture\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setBackgroundPicture[${2:options%keyvals}]{${1:imagefile}}\",\n        \"keys\": [\n          \"\\\\setBackgroundPicture\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"postingredients\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postingredients{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"postpreparation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"postpreparation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pregraph\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pregraph{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"preingredients\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"preingredients{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"prepreparation\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prepreparation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"prerecipeoverview\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"prerecipeoverview{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"pretitle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pretitle{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"recipesection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"recipesection{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"recipesection\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"recipesection[${2:short title}]{${1:title}}\"\n      }\n    },\n    {\n      \"name\": \"thestep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifclkfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textifclk\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textifclk{${1:text%plain}}\"\n      }\n    },\n    {\n      \"name\": \"showclock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"showclock{${1:hour}}{${2:minute}}\"\n      }\n    },\n    {\n      \"name\": \"Taschenuhr\"\n    },\n    {\n      \"name\": \"VarTaschenuhr\"\n    },\n    {\n      \"name\": \"StopWatchStart\"\n    },\n    {\n      \"name\": \"StopWatchEnd\"\n    },\n    {\n      \"name\": \"Interval\"\n    },\n    {\n      \"name\": \"Wecker\"\n    },\n    {\n      \"name\": \"VarClock\"\n    },\n    {\n      \"name\": \"Letter\"\n    },\n    {\n      \"name\": \"Telephone\"\n    },\n    {\n      \"name\": \"SectioningDiamond\"\n    },\n    {\n      \"name\": \"FilledSectioningDiamond\"\n    },\n    {\n      \"name\": \"PaperPortrait\"\n    },\n    {\n      \"name\": \"PaperLandscape\"\n    },\n    {\n      \"name\": \"Cube\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Cube{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Irritant\"\n    },\n    {\n      \"name\": \"Fire\"\n    },\n    {\n      \"name\": \"Radiation\"\n    },\n    {\n      \"name\": \"StrokeOne\"\n    },\n    {\n      \"name\": \"StrokeTwo\"\n    },\n    {\n      \"name\": \"StrokeThree\"\n    },\n    {\n      \"name\": \"StrokeFour\"\n    },\n    {\n      \"name\": \"StrokeFive\"\n    },\n    {\n      \"name\": \"textweathersymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textweathersymbol{${1:slot}}\"\n      }\n    },\n    {\n      \"name\": \"Sun\"\n    },\n    {\n      \"name\": \"HalfSun\"\n    },\n    {\n      \"name\": \"NoSun\"\n    },\n    {\n      \"name\": \"Fog\"\n    },\n    {\n      \"name\": \"ThinFog\"\n    },\n    {\n      \"name\": \"Rain\"\n    },\n    {\n      \"name\": \"WeakRain\"\n    },\n    {\n      \"name\": \"Hail\"\n    },\n    {\n      \"name\": \"Sleet\"\n    },\n    {\n      \"name\": \"Snow\"\n    },\n    {\n      \"name\": \"Lightning\"\n    },\n    {\n      \"name\": \"Cloud\"\n    },\n    {\n      \"name\": \"RainCloud\"\n    },\n    {\n      \"name\": \"WeakRainCloud\"\n    },\n    {\n      \"name\": \"SunCloud\"\n    },\n    {\n      \"name\": \"SnowCloud\"\n    },\n    {\n      \"name\": \"FilledCloud\"\n    },\n    {\n      \"name\": \"FilledRainCloud\"\n    },\n    {\n      \"name\": \"FilledWeakRainCloud\"\n    },\n    {\n      \"name\": \"FilledSunCloud\"\n    },\n    {\n      \"name\": \"FilledSnowCloud\"\n    },\n    {\n      \"name\": \"wind\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"wind{${1:integer}}{${2:angle}}{${3:speed}}\"\n      }\n    },\n    {\n      \"name\": \"Thermo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Thermo{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"recipe\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name%text}}\"\n      }\n    },\n    {\n      \"name\": \"recipe\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:options%keyvals}]{${1:name%text}}\",\n        \"keys\": [\n          \"\\\\begin{recipe}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xcookybooky#c\": [\n      \"handwritten\",\n      \"nowarnings\",\n      \"myconfig\"\n    ],\n    \"\\\\begin{recipe}\": [\n      \"preparationtime={${1:time}}\",\n      \"bakingtime={${1:time}}\",\n      \"bakingtemperature={${1:temperature}}\",\n      \"portion={${1:portion}}\",\n      \"calory={${1:calory}}\",\n      \"source={${1:source}}\"\n    ],\n    \"\\\\graph\": [\n      \"small=${1:imagefile}\",\n      \"smallpicturewidth=\",\n      \"bigpicturewidth=\",\n      \"big=${1:imagefile}\"\n    ],\n    \"\\\\bakingtemperature\": [\n      \"fanoven=${1:temperature}\",\n      \"topbottomheat=${1:temperature}\",\n      \"topheat=${1:temperature}\",\n      \"bottomheat=${1:temperature}\",\n      \"gasstove=${1:temperature}\"\n    ],\n    \"\\\\setRecipeColors\": [\n      \"recipename=\",\n      \"intro=\",\n      \"ing=\",\n      \"inghead=\",\n      \"prep=\",\n      \"prephead=\",\n      \"suggestion=\",\n      \"suggestionhead=\",\n      \"separationgraph=\",\n      \"hint=\",\n      \"hinthead=\",\n      \"hintline=\",\n      \"numeration=\"\n    ],\n    \"\\\\setRecipeLengths\": [\n      \"pictureheight=\",\n      \"bigpicturewidth=\",\n      \"smallpicturewidth=\",\n      \"introductionwidth=\",\n      \"preparationwidth=\",\n      \"ingredientswidth=\"\n    ],\n    \"\\\\setRecipeSizes\": [\n      \"recipename=${1:fontsize commands}\",\n      \"intro=${1:fontsize commands}\",\n      \"ing=${1:fontsize commands}\",\n      \"inghead=${1:fontsize commands}\",\n      \"prep=${1:fontsize commands}\",\n      \"prephead=${1:fontsize commands}\",\n      \"suggestion=${1:fontsize commands}\",\n      \"hint=${1:fontsize commands}\",\n      \"hinthead=${1:fontsize commands}\"\n    ],\n    \"\\\\setHeadlines\": [\n      \"inghead=${1:text}\",\n      \"prephead=${1:text}\",\n      \"hinthead=${1:text}\",\n      \"continuationhead=${1:text}\",\n      \"continuationfoot=${1:text}\",\n      \"preparationtime=${1:text}\",\n      \"bakingtime=${1:text}\",\n      \"bakingtemperature=${1:text}\",\n      \"portion=${1:text}\",\n      \"portionvalue=${1:text}\",\n      \"calory=${1:text}\",\n      \"source=${1:text}\"\n    ],\n    \"\\\\setBackgroundPicture\": [\n      \"width=\",\n      \"height=\",\n      \"x=\",\n      \"y=\",\n      \"orientation=${1|default,pagecenter,textcenter,stockcenter|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcookybooky#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xcpdftips.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"bibentry\"\n    },\n    {\n      \"name\": \"pdfcomment\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"pdfbase\",\n      \"if\": \"ocg\"\n    },\n    {\n      \"name\": \"ocgbase\",\n      \"if\": \"ocg\"\n    },\n    {\n      \"name\": \"calc\",\n      \"if\": \"ocg\"\n    },\n    {\n      \"name\": \"linegoal\",\n      \"if\": \"ocg\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"ocg\"\n    },\n    {\n      \"name\": \"tcolorbox\",\n      \"if\": \"tcolorbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xpdfcite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpdfcite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"xpdfcite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xpdfcite[${2:postfix}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"xpdfcite\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"xpdfcite[${2:prefix}][${3:postfix}]{${1:keylist}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xcpdftips#c\": [\n      \"redefcite\",\n      \"ocg\",\n      \"tcolorbox\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xcpdftips#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xdufont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"unicode-math\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xdusetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xdusetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xdusetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\xdusetup#c\": [\n      \"style={${1:keyvals}}\",\n      \"style/cjk-font=${1|adobe,fandol,founder,hanyi,sinotype,win,none|}\",\n      \"style/cjk-fake-bold=${1:伪粗体粗细程度}\",\n      \"style/cjk-fake-slant=${1:伪斜体倾斜程度}\",\n      \"style/latin-font=${1|gyre,tac,tacn,tcc,thcs,tll,none|}\",\n      \"style/latin-sans-scale=${1|upper,lower,off|}\",\n      \"style/latin-mono-scale=${1|upper,lower,off|}\",\n      \"style/math-font=${1|asana,cambria,cm,concrete,erewhon,euler,fira,garamond,gfsneohellenic,kp,libertinus,lm,newcm,stix2,stix,xcharter,xits,bonum,dejavu,pagella,schola,termes,none|}\",\n      \"style/unicode-math={${1:unicode-math宏包选项}}\",\n      \"style/font-type=${1|font,file|}\",\n      \"style/font-path={${1:路径}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xeCJK-listings.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xeCJK-listings#c\": [\n      \"LocalConfig=${2|true,false,${1:name}|}\",\n      \"xeCJKactive\",\n      \"CJKspace\",\n      \"CJKmath\",\n      \"CJKglue=${1:glue}\",\n      \"CJKecglue=${1:glue}\",\n      \"xCJKecglue=${1:glue}\",\n      \"CheckSingle\",\n      \"WindowPenalty=${1:integer}\",\n      \"PlainEquation\",\n      \"NewLineCS={${1:commands}}\",\n      \"NewLineCS+={${1:commands}}\",\n      \"NewLineCS-={${1:commands}}\",\n      \"EnvCS={${1:commands}}\",\n      \"EnvCS+={${1:commands}}\",\n      \"EnvCS-={${1:commands}}\",\n      \"InlineEnv={${1:env1,env2,...}}\",\n      \"InlineEnv+={${1:env1,env2,...}}\",\n      \"InlineEnv-={${1:env1,env2,...}}\",\n      \"AutoFallback\",\n      \"AutoFakeBold=${1:true,false,or <number>}\",\n      \"AutoFakeSlant=${1:true,false,or <number>}\",\n      \"EmboldenFactor=${1:factor}\",\n      \"SlantFactor=${1:factor}\",\n      \"PunctStyle=${1|quanjiao,banjiao,kaiming,hangmobanjiao,CCT,plain|}\",\n      \"PunctFamily=${1:false or <family>}\",\n      \"KaiMingPunct={${1:punctuation}}\",\n      \"KaiMingPunct+={${1:punctuation}}\",\n      \"KaiMingPunct-={${1:punctuation}}\",\n      \"LongPunct={${1:punctuation}}\",\n      \"LongPunct+={${1:punctuation}}\",\n      \"LongPunct-={${1:punctuation}}\",\n      \"MiddlePunct={${1:punctuation}}\",\n      \"MiddlePunct+={${1:punctuation}}\",\n      \"MiddlePunct-={${1:punctuation}}\",\n      \"PunctWidth=\",\n      \"PunctBoundWidth=\",\n      \"AllowBreakBetweenPuncts\",\n      \"RubberPunctSkip=${1|true,false,plus,minus|}\",\n      \"CheckFullRight\",\n      \"NoBreakCS={${1:commands}}\",\n      \"NoBreakCS+={${1:commands}}\",\n      \"NoBreakCS-={${1:commands}}\",\n      \"Verb=${1|true,false,env,env+|}\",\n      \"LoadFandol\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeCJK-listings#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xeCJK.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"xtemplate\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xeCJKsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmainfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmainfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKsansfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKsansfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmonofont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmonofont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"CJKfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newCJKfontfamily{${1:cmd}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newCJKfontfamily\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"newCJKfontfamily[${3:family}]{${1:cmd}}[${4:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 2\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"CJKfontspec{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"CJKfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKfontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defaultCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultCJKfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addCJKfontfeatures*{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures[${2:blocks}]{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addCJKfontfeatures*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"addCJKfontfeatures*[${2:blocks}]{${1:font features%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmathfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmathfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setCJKmathfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKfallbackfamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setCJKfallbackfamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareSubCJKBlock{${1:block}}{${2:block range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareSubCJKBlock*{${1:block}}{${2:block range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKCancelSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKCancelSubCJKBlock{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKCancelSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKCancelSubCJKBlock*{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKRestoreSubCJKBlock\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKRestoreSubCJKBlock{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKRestoreSubCJKBlock*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xeCJKRestoreSubCJKBlock*{${1:blocks}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareCharClass\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareCharClass{${1:char class}}{${2:class range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclareCharClass*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclareCharClass*{${1:char class}}{${2:class range}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKResetCharClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKResetPunctClass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalspacechars\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"normalspacechars{${1:char list}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetwidth\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKsetwidth{${1:punct list}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetwidth*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKsetwidth*{${1:punct list}}{${2:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKsetkern\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xeCJKsetkern{${1:first punct}}{${2:second punct}}{${3:length}}\"\n      }\n    },\n    {\n      \"name\": \"xeCJKDeclarePunctStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKDeclarePunctStyle{${1:style}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKEditPunctStyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xeCJKEditPunctStyle{${1:style}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"xeCJKVerbAddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKOffVerbAddon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKnobreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xeCJKShipoutHook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xeCJK#c\": [\n      \"LocalConfig=${2|true,false,${1:name}|}\"\n    ],\n    \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\": [\n      \"xeCJKactive\",\n      \"CJKspace\",\n      \"CJKmath\",\n      \"CJKglue=${1:glue}\",\n      \"CJKecglue=${1:glue}\",\n      \"xCJKecglue=${1:glue}\",\n      \"CheckSingle\",\n      \"WindowPenalty=${1:integer}\",\n      \"PlainEquation\",\n      \"NewLineCS={${1:commands}}\",\n      \"NewLineCS+={${1:commands}}\",\n      \"NewLineCS-={${1:commands}}\",\n      \"EnvCS={${1:commands}}\",\n      \"EnvCS+={${1:commands}}\",\n      \"EnvCS-={${1:commands}}\",\n      \"InlineEnv={${1:env1,env2,...}}\",\n      \"InlineEnv+={${1:env1,env2,...}}\",\n      \"InlineEnv-={${1:env1,env2,...}}\",\n      \"AutoFallback\",\n      \"AutoFakeBold=${1:true,false,or <number>}\",\n      \"AutoFakeSlant=${1:true,false,or <number>}\",\n      \"EmboldenFactor=${1:factor}\",\n      \"SlantFactor=${1:factor}\",\n      \"PunctStyle=${1|quanjiao,banjiao,kaiming,hangmobanjiao,CCT,plain|}\",\n      \"PunctFamily=${1:false or <family>}\",\n      \"KaiMingPunct={${1:punctuation}}\",\n      \"KaiMingPunct+={${1:punctuation}}\",\n      \"KaiMingPunct-={${1:punctuation}}\",\n      \"LongPunct={${1:punctuation}}\",\n      \"LongPunct+={${1:punctuation}}\",\n      \"LongPunct-={${1:punctuation}}\",\n      \"MiddlePunct={${1:punctuation}}\",\n      \"MiddlePunct+={${1:punctuation}}\",\n      \"MiddlePunct-={${1:punctuation}}\",\n      \"PunctWidth=\",\n      \"PunctBoundWidth=\",\n      \"AllowBreakBetweenPuncts\",\n      \"RubberPunctSkip=${1|true,false,plus,minus|}\",\n      \"CheckFullRight\",\n      \"NoBreakCS={${1:commands}}\",\n      \"NoBreakCS+={${1:commands}}\",\n      \"NoBreakCS-={${1:commands}}\",\n      \"Verb=${1|true,false,env,env+|}\",\n      \"LoadFandol\"\n    ],\n    \"\\\\xeCJKDeclarePunctStyle,\\\\xeCJKEditPunctStyle\": [\n      \"enabled-global-setting\",\n      \"fixed-punct-width=\",\n      \"fixed-punct-ratio=${1:real}\",\n      \"mixed-punct-width=\",\n      \"mixed-punct-ratio=${1:real}\",\n      \"middle-punct-width=\",\n      \"middle-punct-ratio=${1:real}\",\n      \"fixed-margin-width=\",\n      \"fixed-margin-ratio=${1:real}\",\n      \"mixed-margin-width=\",\n      \"mixed-margin-ratio=${1:real}\",\n      \"middle-margin-width=\",\n      \"middle-margin-ratio=${1:real}\",\n      \"bound-punct-width=\",\n      \"bound-punct-ratio=${1:real}\",\n      \"bound-margin-width=\",\n      \"bound-margin-ratio=${1:real}\",\n      \"enabled-hanging\",\n      \"add-min-bound-to-margin\",\n      \"optimize-margin\",\n      \"margin-minimum=\",\n      \"enabled-kerning\",\n      \"min-bound-to-kerning\",\n      \"kerning-total-width=\",\n      \"kerning-total-ratio=${1:real}\",\n      \"same-align-margin=\",\n      \"same-align-ratio=${1:real}\",\n      \"different-align-margin=\",\n      \"different-align-ratio=${1:real}\",\n      \"kerning-margin-width=\",\n      \"kerning-margin-ratio=${1:real}\",\n      \"optimize-kerning \",\n      \"kerning-margin-minimum=\"\n    ],\n    \"\\\\setCJKmainfont,\\\\setCJKsansfont,\\\\setCJKmonofont,\\\\setCJKfamilyfont,\\\\newCJKfontfamily,\\\\CJKfontspec,\\\\defaultCJKfontfeatures,\\\\addCJKfontfeatures,\\\\setCJKmathfont,\\\\setCJKfallbackfamilyfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"FallBack\",\n      \"FallBack=${1:font name}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"Mapping=${1|fullwidth-stop,full-stop,han-trad,han-simp|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeCJK#c\",\n    \"\\\\xeCJKsetup,\\\\usepackage/xeCJK#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xeCJKfntef.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xeCJK\"\n    },\n    {\n      \"name\": \"ulem\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CJKunderline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderline[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderline*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdblline*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdblline[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdblline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdblline*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderwave\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderwave*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderwave\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderwave[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderwave*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderwave*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKsout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKsout\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKsout[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKsout*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKsout*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKxout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKxout*{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKxout\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKxout[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKxout*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKxout*[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderdot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKunderdot{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderdot\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"CJKunderdot[${2:options%keyvals}]{${1:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderdot\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanyline{${1:depth%l}}{${2:underlined contents}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanyline*{${1:depth%l}}{${2:underlined contents}}{${3:text}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanyline[${4:options%keyvals}]{${1:depth%l}}{${2:underlined contents}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanyline*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanyline*[${4:options%keyvals}]{${1:depth%l}}{${2:underlined contents}}{${3:text}}\",\n        \"keys\": [\n          \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"CJKunderanysymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"CJKunderanysymbol{${1:depth%l}}{${2:symbol}}{${3:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CJKunderanysymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"CJKunderanysymbol[${4:options%keyvals}]{${1:depth%l}}{${2:symbol}}{${3:contents}}\",\n        \"keys\": [\n          \"\\\\CJKunderanysymbol\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xeCJKfntefon\"\n    },\n    {\n      \"name\": \"xeCJKfntefon*\"\n    },\n    {\n      \"name\": \"xeCJKfntefon\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xeCJKfntefon[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xeCJKfntefon*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xeCJKfntefon*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"CJKfilltwosides\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:width%l}}\"\n      }\n    },\n    {\n      \"name\": \"CJKfilltwosides*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:position}]{${1:width%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xeCJKfntef#c\": [\n      \"normalem\",\n      \"ULforem\",\n      \"normalbf\",\n      \"UWforbf\"\n    ],\n    \"\\\\CJKunderline,\\\\CJKunderline*,\\\\CJKunderline-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderdblline,\\\\CJKunderdblline*,\\\\CJKunderdblline-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\",\n      \"gap=\"\n    ],\n    \"\\\\CJKunderwave,\\\\CJKunderwave*,\\\\CJKunderwave-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"symbol=${1:symbol}\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKsout,\\\\CJKsout*,\\\\CJKsout-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"thickness=\",\n      \"height=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKxout,\\\\CJKxout*,\\\\CJKxout-\": [\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderdot\": [\n      \"symbol=${1:symbol}\",\n      \"depth=\",\n      \"sep=\",\n      \"format=${1:format commands}\",\n      \"textformat=${1:format commands}\",\n      \"boxdepth=\"\n    ],\n    \"\\\\xeCJKsetup\": [\n      \"underline={${1:options}}\",\n      \"underline/skip\",\n      \"underline/hidden\",\n      \"underline/subtract\",\n      \"underline/thickness=\",\n      \"underline/depth=\",\n      \"underline/sep=\",\n      \"underline/format=${1:format commands}\",\n      \"underline/textformat=${1:format commands}\",\n      \"underdblline={${1:options}}\",\n      \"underdblline/skip\",\n      \"underdblline/hidden\",\n      \"underdblline/subtract\",\n      \"underdblline/thickness=\",\n      \"underdblline/depth=\",\n      \"underdblline/sep=\",\n      \"underdblline/format=${1:format commands}\",\n      \"underdblline/textformat=${1:format commands}\",\n      \"underdblline/gap=\",\n      \"underwave={${1:options}}\",\n      \"underwave/skip\",\n      \"underwave/hidden\",\n      \"underwave/subtract\",\n      \"underwave/symbol=${1:symbol}\",\n      \"underwave/depth=\",\n      \"underwave/sep=\",\n      \"underwave/format=${1:format commands}\",\n      \"underwave/textformat=${1:format commands}\",\n      \"sout={${1:options}}\",\n      \"sout/skip\",\n      \"sout/hidden\",\n      \"sout/subtract\",\n      \"sout/thickness=\",\n      \"sout/height=\",\n      \"sout/format=${1:format commands}\",\n      \"sout/textformat=${1:format commands}\",\n      \"xout={${1:options}}\",\n      \"xout/skip\",\n      \"xout/hidden\",\n      \"xout/subtract\",\n      \"xout/format=${1:format commands}\",\n      \"xout/textformat=${1:format commands}\",\n      \"underdot={${1:options}}\",\n      \"underdot/symbol=${1:symbol}\",\n      \"underdot/depth=\",\n      \"underdot/sep=\",\n      \"underdot/format=${1:format commands}\",\n      \"underdot/textformat=${1:format commands}\",\n      \"underdot/boxdepth=\",\n      \"symbol/sep=\",\n      \"symbol/boxdepth=\",\n      \"symbol/textformat=${1:format commands}\",\n      \"ulem={${1:options}}\",\n      \"ulem/skip\",\n      \"ulem/hidden\",\n      \"ulem/subtract\",\n      \"ulem/sep=\",\n      \"ulem/boxdepth=\",\n      \"ulem/textformat=${1:format commands}\"\n    ],\n    \"\\\\CJKunderanyline,\\\\CJKunderanyline*,\\\\CJKunderanyline-\": [\n      \"textformat=${1:format commands}\",\n      \"skip\",\n      \"hidden\",\n      \"subtract\",\n      \"sep=\",\n      \"boxdepth=\"\n    ],\n    \"\\\\CJKunderanysymbol\": [\n      \"textformat=${1:format commands}\",\n      \"sep=\",\n      \"boxdepth=\"\n    ],\n    \"\\\\xeCJKfntefon,\\\\xeCJKfntefon*,\\\\xeCJKfntefon-\": [\n      \"textformat=${1:format commands}\",\n      \"skip\",\n      \"hidden\",\n      \"subtract\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeCJKfntef#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xecolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"iftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"definergbcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"definergbcolor{${1:color}}{${2:RRGGBB}}\"\n      }\n    },\n    {\n      \"name\": \"xecolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xecolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"textxecolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textxecolor{${1:color}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"normalxecolor\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xecyr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifluatex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xltxtra\"\n    },\n    {\n      \"name\": \"xunicode\"\n    },\n    {\n      \"name\": \"misccorr\",\n      \"if\": \"mis\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"flqq\"\n    },\n    {\n      \"name\": \"frqq\"\n    },\n    {\n      \"name\": \"glqq\"\n    },\n    {\n      \"name\": \"grqq\"\n    },\n    {\n      \"name\": \"cyrdash\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xecyr#c\": [\n      \"noext\",\n      \"mis\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xecyr#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xecyrmongolian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luahyphenrules\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Useg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Useg{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"useg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useg{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"mongmonth\"\n    },\n    {\n      \"name\": \"nousegalph\"\n    },\n    {\n      \"name\": \"usegalph\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xeindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"xesearch\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"IndexList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IndexList{${1:name}}{${2:list of entries}}\"\n      }\n    },\n    {\n      \"name\": \"IndexList*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IndexList*{${1:name}}{${2:list of entries}}\"\n      }\n    },\n    {\n      \"name\": \"StopIndexList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StopIndexList{${1:lists}}\"\n      }\n    },\n    {\n      \"name\": \"StopIndex\"\n    },\n    {\n      \"name\": \"NoIndex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NoIndex{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xeindex#c\": [\n      \"mark\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xeindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xellipsis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xelip\"\n    },\n    {\n      \"name\": \"xelipend\"\n    },\n    {\n      \"name\": \"xelipchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipbef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipaft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipgap\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipprechar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelippostchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelipprebef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelippostbef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelippreaft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xelippostaft\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xellipsis#c\": [\n      \"latex\",\n      \"chicago\",\n      \"oldmla\",\n      \"mla\",\n      \"bluebook\",\n      \"char=${1:character}\",\n      \"num=${1:integer}\",\n      \"before=\",\n      \"after=\",\n      \"gap=\",\n      \"prechar=${1:character}\",\n      \"postchar=${1:character}\",\n      \"prebefore=\",\n      \"preafter=\",\n      \"postbefore=\",\n      \"postafter=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xellipsis#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xepersian-hm.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xepersian\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"KashidaOff\"\n    },\n    {\n      \"name\": \"KashidaOn\"\n    },\n    {\n      \"name\": \"KashidaHMFixOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"KashidaHMFixOn\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"discouragebadlinebreaks{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"discouragebadlinebreaks[${2:linebreakpenalty}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"discouragebadlinebreaks\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"discouragebadlinebreaks[${2:linebreakpenalty}][${3:kashidastretch}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"XePersianHM\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xepersian-hm#c\": [\n      \"Kashida=${1|glyph,leaders+glyph,leaders+hrule,Off,On|}\",\n      \"linebreakpenalty=${1:integer}\",\n      \"ligatures=${1|aalt,ccmp,dlig,fina,init,locl,medi,rlig,default|}\",\n      \"color=\",\n      \"kashidastretch=${1|kayhan,khorramshahr,kayhannavaar,kayhanpook,kayhansayeh,khoramshahr,khorramshahr,niloofar,paatch,riyaz,roya,shafigh,shafighKurd,shafighUzbek,shiraz,sols,tabriz,titr,titre,traffic,vahid,vosta,yaghut,yagut,yas,yekan,yermook,zar,ziba,default,noskip|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xepersian-hm#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xepersian-mathdigitspec.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setmathdigitfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathdigitfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathdigitfont,\\\\setmathsfdigitfont,\\\\setmathttdigitfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathsfdigitfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathsfdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathsfdigitfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathsfdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathdigitfont,\\\\setmathsfdigitfont,\\\\setmathttdigitfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathttdigitfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathttdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathttdigitfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathttdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmathdigitfont,\\\\setmathsfdigitfont,\\\\setmathttdigitfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DefaultMathDigits\"\n    },\n    {\n      \"name\": \"PersianMathDigits\"\n    },\n    {\n      \"name\": \"AutoMathDigits\"\n    },\n    {\n      \"name\": \"AutoDisplayMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoInlineMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultDisplayMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultInlineMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DefaultMathDecimalSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"MathDecimalSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiandecimalseparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PersianDisplayMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PersianInlineMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianmathdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianmathsfdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianmathttdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetDisplayMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetInlineMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetMathCharDef\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetMathCharDef{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"SetMathCode\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"SetMathCode{${1:arg1}}{${2:arg2}}{${3:arg3}}{${4:arg4}}\"\n      }\n    },\n    {\n      \"name\": \"SwitchToDefaultMathDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SwitchToPersianMathDigits\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\setmathdigitfont,\\\\setmathsfdigitfont,\\\\setmathttdigitfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xepersian-multiplechoice.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pifont\"\n    },\n    {\n      \"name\": \"fullpage\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"verbatim\"\n    },\n    {\n      \"name\": \"tabularx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"answernumberfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answernumberfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"answerstitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answerstitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"answerstitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"answerstitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"correctionstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"correctionstyle{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"false\"\n    },\n    {\n      \"name\": \"falsesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"falsesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"headerfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"headerfont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"makeform\"\n    },\n    {\n      \"name\": \"makemask\"\n    },\n    {\n      \"name\": \"pbs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pbs{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"questionsepspace\"\n    },\n    {\n      \"name\": \"questionspace\"\n    },\n    {\n      \"name\": \"questiontitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questiontitle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"questiontitlefont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"questiontitlefont{${1:font commands}}\"\n      }\n    },\n    {\n      \"name\": \"questiontitlespace\"\n    },\n    {\n      \"name\": \"thequestion\"\n    },\n    {\n      \"name\": \"true\"\n    },\n    {\n      \"name\": \"truesymbol\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"truesymbol{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"X\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"X{${1:symbol}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"question\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"correction\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xepersian-multiplechoice#c\": [\n      \"nocorrection\",\n      \"correction\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xepersian-multiplechoice#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xepersian-persiancal.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"persianday\"\n    },\n    {\n      \"name\": \"persianmonth\"\n    },\n    {\n      \"name\": \"persianyear\"\n    },\n    {\n      \"name\": \"persiantoday\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xepersian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"xepersian-persiancal\"\n    },\n    {\n      \"name\": \"xepersian-mathdigitspec\"\n    },\n    {\n      \"name\": \"bidi\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote\"\n    },\n    {\n      \"name\": \"bidi-perpage\",\n      \"if\": \"perpagefootnote=on\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures\"\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"normalfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"twocolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"threecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fourcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"fivecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"sixcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sevencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"eightcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ninecolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"tencolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"LTRcolumnfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"paragraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setLTRparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"setRTLparagraphfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\"\n    },\n    {\n      \"name\": \"AddExtraParaSkip\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AddExtraParaSkip{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"extrafeetendmini\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetendminihook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetins\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrafeetinshook\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAboveFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetAtBottom\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowFloat\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FeetBelowRagged\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footfudgefactor\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footinsdim\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"footmarkwidth\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"footscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"footscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"foottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LTRfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LTRfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"LTRfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"multiplefootnotemarker\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalRTLparaLTRfootnotes\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootfootmark\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"RTLfootmarkstyle\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootmarkstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfootscript\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RTLfootscript{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"RTLfoottextfont\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSingleSpace\",\n      \"if\": \"extrafootnotefeatures=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSingleSpace{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"KashidaOn\",\n      \"if\": \"Kashida\"\n    },\n    {\n      \"name\": \"KashidaOff\",\n      \"if\": \"Kashida\"\n    },\n    {\n      \"name\": \"KashidaOn\",\n      \"if\": \"Kashida=on\"\n    },\n    {\n      \"name\": \"KashidaOff\",\n      \"if\": \"Kashida=on\"\n    },\n    {\n      \"name\": \"eqcommand\",\n      \"if\": \"localise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqcommand{${1:command-name in Persian}}{${2:original LaTeX command-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqenvironment\",\n      \"if\": \"localise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqenvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"makezwnjletter\",\n      \"if\": \"localise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EqEnvironment\",\n      \"if\": \"localise\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EqEnvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqcommand\",\n      \"if\": \"localise=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqcommand{${1:command-name in Persian}}{${2:original LaTeX command-name}}\"\n      }\n    },\n    {\n      \"name\": \"eqenvironment\",\n      \"if\": \"localise=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"eqenvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"makezwnjletter\",\n      \"if\": \"localise=on\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"EqEnvironment\",\n      \"if\": \"localise=on\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"EqEnvironment{${1:environment-name in Persian}}{${2:original LaTeX environment-name}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DetectColumn{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"DetectColumn\",\n      \"if\": \"DetectColumn=on\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"DetectColumn[${3:opt}]{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"xepersianreleasename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepersianversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xepersiandate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"settextfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"settextfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settextfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"settextdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"settextdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"settextdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"settextdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setdigitfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setdigitfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setdigitfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlatintextfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatintextfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatintextfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatintextfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpersiansansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpersiansansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpersiansansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpersiansansfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"persiansffamily\"\n    },\n    {\n      \"name\": \"textpersiansf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersiansf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpersianmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpersianmonofont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"persianttfamily\"\n    },\n    {\n      \"name\": \"textpersiantt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpersiantt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setiranicfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setiranicfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setiranicfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setiranicfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"iranicfamily\"\n    },\n    {\n      \"name\": \"textiranic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textiranic{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setnavarfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setnavarfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setnavarfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setnavarfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"navarfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textnavar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnavar{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setpookfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setpookfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setpookfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setpookfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"pookfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textpook\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textpook{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setsayehfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsayehfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsayehfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsayehfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"sayehfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textsayeh\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsayeh{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatinsansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinsansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatinsansfont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setlatinmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlatinmonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setlatinmonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setlatinmonofont[${2:Options%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"lr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lr{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"rl\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rl{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"latintoday\"\n    },\n    {\n      \"name\": \"twocolumnstableofcontents\"\n    },\n    {\n      \"name\": \"XePersian\"\n    },\n    {\n      \"name\": \"plq\"\n    },\n    {\n      \"name\": \"prq\"\n    },\n    {\n      \"name\": \"Latincite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Latincite{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"Latincite\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"Latincite[${2:add. text}]{${1:keylist}}\"\n      }\n    },\n    {\n      \"name\": \"harfi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harfi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"harfinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"harfinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"adadi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adadi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"adadinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adadinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"tartibi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tartibi{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"tartibinumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tartibinumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"Abjad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abjad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Abjadnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Abjadnumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"abjad\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjad{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"abjadnumeral\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"abjadnumeral{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"ifwritexviii\"\n    },\n    {\n      \"name\": \"writexviiitrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"writexviiifalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfxepersianPackageVersion\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersion{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfxepersianPackageVersionBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersionBefore{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfxepersianPackageVersionLater\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfxepersianPackageVersionLater{${1:version}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"iranicdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"LatinAlphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"navardefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PersianAlphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persiansfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persianttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pookdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resetlatinfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sayehdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setfontsize[${2:opt}]{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setfontsize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setfontsize{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setpersianfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextDigitFontOff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"TextDigitFontOn\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"latin\"\n    },\n    {\n      \"name\": \"persian\"\n    },\n    {\n      \"name\": \"latinitems\"\n    },\n    {\n      \"name\": \"persianitems\"\n    },\n    {\n      \"name\": \"latin*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"persian*\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xepersian#c\": [\n      \"defaultlatinfontfeatures={${1:font features}}\",\n      \"extrafootnotefeatures\",\n      \"Kashida\",\n      \"quickindex-variant1\",\n      \"quickindex-variant2\",\n      \"localise\",\n      \"mathdigits=${1|automatic,default,persian|}\",\n      \"inlinemathdigits=${1|automatic,default,persian|}\",\n      \"displaymathdigits=${1|automatic,default,persian|}\",\n      \"RTLdocument\",\n      \"documentdirection=${1|righttoleft,lefttoright|}\",\n      \"tabledirection=${1|righttoleft,lefttoright|}\",\n      \"script=${1|latin,nonlatin|}\",\n      \"rldocument\",\n      \"footnoterule=${1|automatic,left,right,split,textwidth|}\",\n      \"footnotedirection=${1|righttoleft,lefttoright|}\",\n      \"debugfootnotedirection\",\n      \"abjadvariant=${1|one,two|}\",\n      \"mathfontsizescale=${1:factor}\",\n      \"fontsizescale=${1:factor}\",\n      \"fontsize=\",\n      \"latinfontsizescale=${1:factor}\",\n      \"baselineskipscale=${1:factor}\",\n      \"latinbaselineskipscale=${1:factor}\",\n      \"logo\",\n      \"pdfinfo\",\n      \"computeautoilg\",\n      \"DetectColumn\",\n      \"debugtextdigitfont\",\n      \"perpagefootnote\"\n    ],\n    \"\\\\settextfont,\\\\settextdigitfont,\\\\setdigitfont,\\\\setlatintextfont,\\\\setpersiansansfont,\\\\setpersianmonofont,\\\\setiranicfont,\\\\setnavarfont,\\\\setpookfont,\\\\setsayehfont,\\\\setlatinsansfont,\\\\setlatinmonofont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xepersian#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xesearch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SearchList\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SearchList{${1:name}}{${2:replacement text}}{${3:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"SearchList*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SearchList*{${1:name}}{${2:replacement text}}{${3:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"StopList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StopList{${1:list of lists}}\"\n      }\n    },\n    {\n      \"name\": \"AddToList\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToList{${1:name}}{${2:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"AddToList*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddToList*{${1:name}}{${2:list of words}}\"\n      }\n    },\n    {\n      \"name\": \"MakeBoundary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeBoundary{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"UndoBoundary\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UndoBoundary{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"StartSearching\"\n    },\n    {\n      \"name\": \"StopSearching\"\n    },\n    {\n      \"name\": \"SortByLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SortByLength{${1:pPsS}}\"\n      }\n    },\n    {\n      \"name\": \"SortByLength*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SortByLength*{${1:pPsS}}\"\n      }\n    },\n    {\n      \"name\": \"DoNotSort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DoNotSort{${1:pPsS}}\"\n      }\n    },\n    {\n      \"name\": \"SearchAll\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SearchAll{${1:pPsS}}\"\n      }\n    },\n    {\n      \"name\": \"SearchOnlyOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SearchOnlyOne{${1:pPsS}}\"\n      }\n    },\n    {\n      \"name\": \"SearchOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SearchOrder{${1:order and inhibitions}}\"\n      }\n    },\n    {\n      \"name\": \"PrefixFound\"\n    },\n    {\n      \"name\": \"SuffixFound\"\n    },\n    {\n      \"name\": \"AffixFound\"\n    },\n    {\n      \"name\": \"PatchOutput\"\n    },\n    {\n      \"name\": \"NormalOutput\"\n    },\n    {\n      \"name\": \"PatchTracing\"\n    },\n    {\n      \"name\": \"NormalTracing\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xespotcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"graphics\"\n    },\n    {\n      \"name\": \"color\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"NewSpotColorSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"NewSpotColorSpace{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"AddSpotColor\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AddSpotColor{${1:colorspace}}{${2:color}}{${3:pdf name}}{${4:specification}}\"\n      }\n    },\n    {\n      \"name\": \"SpotSpace\"\n    },\n    {\n      \"name\": \"SetPageColorSpace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPageColorSpace{${1:colorspace}}\"\n      }\n    },\n    {\n      \"name\": \"SpotColor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SpotColor{${1:color}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"SetPageColorResource\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPageColorResource{${1:resource}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xespotcolor#c\": [\n      \"hks\",\n      \"pantone\",\n      \"xcolor\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xespotcolor#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xetex.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"XeTeXtracingfonts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfonttype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfirstfontchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlastfontchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountglyphs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharglyph\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXglyphbounds\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXuseglyphmetrics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXgenerateactualtext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTscripttag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountlanguages\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTlanguagetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTcountfeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXOTfeaturetag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountfeatures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfeaturecode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfeaturename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXisexclusivefeature\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindfeaturebyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountselectors\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXselectorcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXselectorname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXisdefaultselector\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindselectorbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcountvariations\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationmin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationmax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXvariationdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXfindvariationbyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterwordspaceshaping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathchardef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathcharnumdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelcodenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Udelimiter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Umathaccent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uradical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Uchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ucharcat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterchartokenstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newXeTeXintercharclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclass\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinterchartoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinputnormalization\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXinputencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXdefaultencoding\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXdashbreakstate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreaklocale\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreakskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXlinebreakpenalty\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXupwardsmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXhyphenatablelength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpicfile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpdffile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXpdfpagecount\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXprotrudechars\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpageheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfpagewidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfsavepos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastxpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdflastypos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expanded\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifincsname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifprimitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primitive\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"shellescape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strcmp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"strcmp{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"normaldeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"randomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setrandomseed\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"uniformdeviate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"elapsedtime\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"resettimer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"creationdate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filedump\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"filemoddate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filemoddate{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"filesize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filesize{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"mdfivesum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pdfmapfile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pdfmapline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pdfmapline{${1:map spec}}\"\n      }\n    },\n    {\n      \"name\": \"suppressfontnotfounderror\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXrevision\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xetexko.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"kolabels-utf\"\n    },\n    {\n      \"name\": \"konames-utf\",\n      \"if\": \"hangul\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setmainhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmainhangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainhangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmainhanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmainhanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmainhanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmainhanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsanshangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsanshangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsanshangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsanshangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setsanshanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setsanshanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setsanshanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setsanshanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonohangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonohangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmonohangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonohangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmonohanjafont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonohanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmonohanjafont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmonohanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"newhangulfontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhangulfontfamily{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhangulfontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhangulfontfamily{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhanjafontfamily\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhanjafontfamily{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhanjafontfamily\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhanjafontfamily{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhangulfontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhangulfontface{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhangulfontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhangulfontface{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newhanjafontface\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newhanjafontface{${1:command}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"newhanjafontface\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newhanjafontface{${1:command}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"addhangulfontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhangulfontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhangulfontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhangulfontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhanjafontfeature\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhanjafontfeature{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"addhanjafontfeatures\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addhanjafontfeatures{${1:font features%keyvals}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hangulfontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hangulfontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"hangulfontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hangulfontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adhochangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adhochangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"adhochangulfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adhochangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanjafontspec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hanjafontspec{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"hanjafontspec\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"hanjafontspec[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"adhochanjafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"adhochanjafont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"adhochanjafont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"adhochanjafont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"hanjabyhangulfont\"\n    },\n    {\n      \"name\": \"xetexkofontregime\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xetexkofontregime[${2:options%keyvals}]{${1:regime}}\",\n        \"keys\": [\n          \"\\\\xetexkofontregime\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"latinalphs\"\n    },\n    {\n      \"name\": \"latinparens\"\n    },\n    {\n      \"name\": \"latincolons\"\n    },\n    {\n      \"name\": \"latinhyphens\"\n    },\n    {\n      \"name\": \"latinpuncts\"\n    },\n    {\n      \"name\": \"latincjksymbols\"\n    },\n    {\n      \"name\": \"hangulalphs\"\n    },\n    {\n      \"name\": \"hangulparens\"\n    },\n    {\n      \"name\": \"hangulcolons\"\n    },\n    {\n      \"name\": \"hangulhyphens\"\n    },\n    {\n      \"name\": \"hangulpuncts\"\n    },\n    {\n      \"name\": \"hangulcjksymbols\"\n    },\n    {\n      \"name\": \"hanjaalphs\"\n    },\n    {\n      \"name\": \"hanjaparens\"\n    },\n    {\n      \"name\": \"hanjacolons\"\n    },\n    {\n      \"name\": \"hanjahyphens\"\n    },\n    {\n      \"name\": \"hanjapuncts\"\n    },\n    {\n      \"name\": \"hanjacjksymbols\"\n    },\n    {\n      \"name\": \"prevfontalphs\"\n    },\n    {\n      \"name\": \"prevfontparens\"\n    },\n    {\n      \"name\": \"prevfontcolons\"\n    },\n    {\n      \"name\": \"prevfonthyphens\"\n    },\n    {\n      \"name\": \"prevfontpuncts\"\n    },\n    {\n      \"name\": \"prevfontcjksymbols\"\n    },\n    {\n      \"name\": \"latinmarks\"\n    },\n    {\n      \"name\": \"hangulmarks\"\n    },\n    {\n      \"name\": \"hanjamarks\"\n    },\n    {\n      \"name\": \"prevfontmarks\"\n    },\n    {\n      \"name\": \"everyhangul\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyhangul{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"everyhanja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"everyhanja{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"disablekoreanfonts\"\n    },\n    {\n      \"name\": \"disablecjksymbolspacing\"\n    },\n    {\n      \"name\": \"enablecjksymbolspacing\"\n    },\n    {\n      \"name\": \"compresspunctuations\"\n    },\n    {\n      \"name\": \"nocompresspunctuations\"\n    },\n    {\n      \"name\": \"disablehangulspacing\"\n    },\n    {\n      \"name\": \"disablehangulspacingandlinebreak\"\n    },\n    {\n      \"name\": \"enablehangulspacingandlinebreak\"\n    },\n    {\n      \"name\": \"verticaltypesetting\"\n    },\n    {\n      \"name\": \"removeclassicspaces\"\n    },\n    {\n      \"name\": \"typesetclassic\"\n    },\n    {\n      \"name\": \"typesetmodern\"\n    },\n    {\n      \"name\": \"inhibitglue\"\n    },\n    {\n      \"name\": \"hangingpunctuations\"\n    },\n    {\n      \"name\": \"hangingpunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setmathhangulfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmathhangulfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setmathhangulfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setmathhangulfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setmathhangulblock\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setmathhangulblock{${1:begin}}{${2:end}}\"\n      }\n    },\n    {\n      \"name\": \"jong\"\n    },\n    {\n      \"name\": \"jung\"\n    },\n    {\n      \"name\": \"rieul\"\n    },\n    {\n      \"name\": \"dotemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dotemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"dotemphraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotemphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkoulemsupport\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"hellipsis\"\n    },\n    {\n      \"name\": \"chinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"japanese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Schinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Tchinese\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesethorizontal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"typesetvertical\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vertlatin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"vertlatin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"XeKocatcodeofATchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAH\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAO\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassAP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassBoundary\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassCJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassCL\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassCM\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassEX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassFS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassHG\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassIgnore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassIS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassJJ\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassLD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassMD\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassNS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassOP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassSY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XeTeXcharclassVC\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkocharraise\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkodefaulthangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkodefaulthanguloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkodefaulthanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkodefaulthanjaoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohangulfontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohanguloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohanjafontfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohanjaoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkohu\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkointerhchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomainhangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomainhanguloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomainhanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomainhanjaoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomathhangulfamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomonohangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomonohanguloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomonohanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkomonohanjaoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkosanshangulfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkosanshanguloption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkosanshanjafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xetexkosanshanjaoption\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XKinterhangulbreak\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XKinterhanjabreak\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"verticaltypesetting\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"vertical\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"horizontal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:dimen%l}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xetexko#c\": [\n      \"hangul\",\n      \"hanja\"\n    ],\n    \"\\\\setmainhangulfont,\\\\setmainhanjafont,\\\\setsanshangulfont,\\\\setsanshanjafont,\\\\setmonohangulfont,\\\\setmonohanjafont,\\\\newhangulfontfamily,\\\\newhanjafontfamily,\\\\newhangulfontface,\\\\newhanjafontface,\\\\addhangulfontfeature,\\\\addhangulfontfeatures,\\\\addhanjafontfeature,\\\\addhanjafontfeatures,\\\\hangulfontspec,\\\\adhochangulfont,\\\\hanjafontspec,\\\\adhochanjafont,\\\\setmathhangulfont\": [\n      \"InterHangul=\",\n      \"interhchar=\",\n      \"InterLatinCJK=\",\n      \"hu=\",\n      \"CharRaise=\",\n      \"charraise=\",\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ],\n    \"\\\\xetexkofontregime\": [\n      \"alphs=${1|latin,hangul,hanja,prevfont|}\",\n      \"parens=${1|latin,hangul,hanja,prevfont|}\",\n      \"colons=${1|latin,hangul,hanja,prevfont|}\",\n      \"hyphens=${1|latin,hangul,hanja,prevfont|}\",\n      \"puncts=${1|latin,hangul,hanja,prevfont|}\",\n      \"cjksymbols=${1|latin,hangul,hanja,prevfont|}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xetexko#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xevlna.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xevlnaDisable\"\n    },\n    {\n      \"name\": \"xevlnaEnable\"\n    },\n    {\n      \"name\": \"CSopenpunctuation\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSnonsyllabicpreposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSinterchartoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CSnointerchartoks\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PreCSpreposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ExamineCSpreposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessCSpreposition\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xevlnaXeTeXspace\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xfakebold.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"pdfrender\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setBold\"\n    },\n    {\n      \"name\": \"setBold\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setBold[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"unsetBold\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xfakebold#c\": [\n      \"bold=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xfakebold#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xfp.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xfrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amstext\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"xtemplate\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"sfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"sfrac{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"sfrac\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"sfrac{${1:num}}[${3:sep}]{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"sfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"sfrac[${3:instance}]{${1:num}}{${2:denom}}\"\n      }\n    },\n    {\n      \"name\": \"sfrac\",\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"sfrac[${3:instance}]{${1:num}}[${4:sep}]{${2:denom}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xgreek.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xelistings\",\n      \"if\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"anwtonos\"\n    },\n    {\n      \"name\": \"katwtonos\"\n    },\n    {\n      \"name\": \"koppa\"\n    },\n    {\n      \"name\": \"sampi\"\n    },\n    {\n      \"name\": \"Digamma\"\n    },\n    {\n      \"name\": \"ddigamma\"\n    },\n    {\n      \"name\": \"anoteleia\"\n    },\n    {\n      \"name\": \"euro\",\n      \"detail\": \"€\",\n      \"doc\": \"Euro sign\"\n    },\n    {\n      \"name\": \"permill\"\n    },\n    {\n      \"name\": \"stigma\"\n    },\n    {\n      \"name\": \"greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Greeknumeral\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Greeknumeral{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"atticnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"atticnum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"setlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setlanguage{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\setlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"grtoday\"\n    },\n    {\n      \"name\": \"Grtoday\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xgreek#c\": [\n      \"monogreek\",\n      \"polygreek\",\n      \"ancientgreek\",\n      \"stigma\",\n      \"noindentfirst\",\n      \"nonumeralsign\",\n      \"listings\"\n    ],\n    \"\\\\setlanguage#c\": [\n      \"monogreek\",\n      \"polygreek\",\n      \"ancientgreek\",\n      \"american\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xgreek#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xhfill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xhrulefill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xhrulefill{${1:color}}{${2:ruleheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"xrfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xrfill{${1:ruleheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"xrfill\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"xrfill{${1:ruleheight%l}}[${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"xrfill\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"xrfill[${2:raise%l}]{${1:ruleheight%l}}[${3:color}]\"\n      }\n    },\n    {\n      \"name\": \"xhrectanglefill\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xhrectanglefill{${1:height}}{${2:linewidth%l}}\"\n      }\n    },\n    {\n      \"name\": \"xdotfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xdotfill{${1:dotheight%l}}\"\n      }\n    },\n    {\n      \"name\": \"xdotfill\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"xdotfill{${1:dotheight%l}}[${2:color}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xifthen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"calc\"\n    },\n    {\n      \"name\": \"ifmtarg\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"isnamedefined\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isnamedefined{${1:command name}}\"\n      }\n    },\n    {\n      \"name\": \"isempty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"isempty{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"isequivalentto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isequivalentto{${1:command1}}{${2:command2}}\"\n      }\n    },\n    {\n      \"name\": \"isin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"isin{${1:substring}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"endswith\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"endswith{${1:string}}{${2:substring}}\"\n      }\n    },\n    {\n      \"name\": \"cnttest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"cnttest{${1:counter-expr1}}{${2:comparison}}{${3:counter-expr2}}\"\n      }\n    },\n    {\n      \"name\": \"dimtest\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"dimtest{${1:dimen-expr1}}{${2:comparison}}{${3:dimen-expr2}}\"\n      }\n    },\n    {\n      \"name\": \"newtest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newtest{${1:command}}{${2:test-expr}}\"\n      }\n    },\n    {\n      \"name\": \"newtest\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"newtest{${1:command}}[${3:args}]{${2:test-expr}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xindex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"makeidx\"\n    },\n    {\n      \"name\": \"imakeidx\",\n      \"if\": \"imakeidx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"writeidx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"writeidx{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"braceLeft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"braceRight\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xindex#c\": [\n      \"imakeidx\",\n      \"xindy\",\n      \"texindy\",\n      \"truexindy\",\n      \"makeindex\",\n      \"noautomatic\",\n      \"nonewpage\",\n      \"splitindex\",\n      \"original\",\n      \"quiet\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xindex#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xint.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintcore\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintiLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiLen{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintReverseDigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintReverseDigits{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecSplit\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDecSplit{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecSplitL\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDecSplitL{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecSplitR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDecSplitR{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiE{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSH\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDSH{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSHr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDSHr{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDSx{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiEq{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiNotEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiNotEq{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiGeq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiGeq{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiGt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiGt{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiLt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiLt{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiGtorEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiGtorEq{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiLtorEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiLtorEq{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiIsZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiIsZero{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiIsNotZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiIsNotZero{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiIsOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiIsOne{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiOdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiOdd{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiEven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiEven{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMON\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiMON{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMMON\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiMMON{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifSgn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintiiifSgn{${1:integer}}{${2:neg-code}}{${3:zero-code}}{${4:pos-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifZero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintiiifZero{${1:integer}}{${2:zero-code}}{${3:not-zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifNotZero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintiiifNotZero{${1:integer}}{${2:not-zero-code}}{${3:zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifOne\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintiiifOne{${1:integer}}{${2:one-code}}{${3:not-one-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifCmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xintiiifCmp{${1:integer1}}{${2:integer2}}{${3:less-code}}{${4:equals-code}}{${5:greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifEq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintiiifEq{${1:integer1}}{${2:integer2}}{${3:equals-code}}{${4:not-equals-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifGt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintiiifGt{${1:integer1}}{${2:integer2}}{${3:greater-code}}{${4:not-greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifLt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintiiifLt{${1:integer1}}{${2:integer2}}{${3:less-code}}{${4:not-less-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiifOdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintiiifOdd{${1:integer}}{${2:odd-code}}{${3:even-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSum{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiPrd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiPrd{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSquareRoot\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSquareRoot{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSqrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSqrt{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSqrtR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSqrtR{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiBinomial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiBinomial{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiPFactorial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiPFactorial{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiMax{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiMin{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMaxof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiMaxof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMinof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiMinof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintifTrueAelseB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifTrueAelseB{${1:integer}}{${2:not-zero-code}}{${3:zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifFalseAelseB\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifFalseAelseB{${1:integer}}{${2:zero-code}}{${3:not-zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintNOT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintNOT{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintAND\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintAND{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintOR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintOR{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintXOR\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintXOR{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintANDof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintANDof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintORof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintORof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintXORof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintXORof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiGCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiGCD{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiLCM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiLCM{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiGCDof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiGCDof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiLCMof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiLCMof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLen{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintRandomDigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRandomDigits{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintXRandomDigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintXRandomDigits{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiRandRange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiRandRange{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiRandRangeAtoB\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiRandRangeAtoB{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiLogTen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiLogTen{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintSgnFork\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSgnFork{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintBool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintBool{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintToggle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintToggle{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintEightRandomDigits\"\n    },\n    {\n      \"name\": \"xintRandBit\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintbinhex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintkernel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintDecToHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDecToHex{${1:decimal integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecToBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDecToBin{${1:decimal integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintHexToDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintHexToDec{${1:hex integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintBinToDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintBinToDec{${1:hex integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintBinToHex\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintBinToHex{${1:binary integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintHexToBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintHexToBin{${1:binary integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintCHexToBin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCHexToBin{${1:hex integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintcfrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintfrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintCFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCFrac{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintCFrac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintCFrac[${2:pos%keyvals}]{${1:A/B}}\",\n        \"keys\": [\n          \"\\\\xintCFrac,\\\\xintGCFrac,\\\\xintGGCFrac\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xintGCFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGCFrac{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCFrac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintGCFrac[${2:pos%keyvals}]{${1:expr}}\",\n        \"keys\": [\n          \"\\\\xintCFrac,\\\\xintGCFrac,\\\\xintGGCFrac\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xintGGCFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGGCFrac{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintGGCFrac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintGGCFrac[${2:pos%keyvals}]{${1:expr}}\",\n        \"keys\": [\n          \"\\\\xintCFrac,\\\\xintGCFrac,\\\\xintGGCFrac\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xintGCtoGCx\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintGCtoGCx{${1:sep1}}{${2:sep2}}{${3:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoC{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoCs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoCs{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoCx\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFtoCx{${1:sep}}{${2:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoGC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoGC{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintFGtoC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFGtoC{${1:A1/B1}}{${2:A2/B2}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoCC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoCC{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintCstoF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCstoF{${1:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCtoF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGCtoF{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintCstoCv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCstoCv{${1:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCtoCv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGCtoCv{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoCv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoCv{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintFtoCCv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFtoCCv{${1:A/B}}\"\n      }\n    },\n    {\n      \"name\": \"xintCntoF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintCntoF{${1:integer}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCntoF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintGCntoF{${1:integer}}{${2:macro1}}{${3:macro2}}\"\n      }\n    },\n    {\n      \"name\": \"xintCntoCs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintCntoCs{${1:integer}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintCntoGC\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintCntoGC{${1:integer}}{${2:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCntoGC\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintGCntoGC{${1:integer}}{${2:macro1}}{${3:macro2}}\"\n      }\n    },\n    {\n      \"name\": \"xintCstoGC\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCstoGC{${1:num1,num2,...}}\"\n      }\n    },\n    {\n      \"name\": \"xintiCstoF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiCstoF{${1:integer1,integer2,...}}\"\n      }\n    },\n    {\n      \"name\": \"xintiGCtoF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiGCtoF{${1:integer expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintiCstoCv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiCstoCv{${1:integer1,integer2,...}}\"\n      }\n    },\n    {\n      \"name\": \"xintiGCtoCv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiGCtoCv{${1:integer expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCtoGC\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGCtoGC{${1:expr}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\xintCFrac,\\\\xintGCFrac,\\\\xintGGCFrac\": [\n      \"l\",\n      \"r\",\n      \"c\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintcore.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintkernel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintiNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiNum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDouble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDouble{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintHalf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintHalf{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintInc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintInc{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDec\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDec{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSL\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDSL{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSR\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDSR{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintDSRr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDSRr{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintFDg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFDg{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintLDg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLDg{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSgn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSgn{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiOpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiOpp{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiAbs{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiAdd{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiCmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiCmp{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiSub{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiMul{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiSqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiSqr{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiPow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiPow{${1:base}}{${2:power}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiFac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiiFac{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiDivision\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiDivision{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiQuo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiQuo{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiRem\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiRem{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiDivRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiDivRound{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiDivTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiDivTrunc{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiModTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiModTrunc{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiDivMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiDivMod{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiDivFloor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiDivFloor{${1:quotient}}{${2:remainder}}\"\n      }\n    },\n    {\n      \"name\": \"xintiiMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiiMod{${1:integer}}{${2:modulus}}\"\n      }\n    },\n    {\n      \"name\": \"xintNum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintNum{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintexpr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintfrac\"\n    },\n    {\n      \"name\": \"xinttools\"\n    },\n    {\n      \"name\": \"xinttrig\"\n    },\n    {\n      \"name\": \"xintlog\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintthe\"\n    },\n    {\n      \"name\": \"xintthealign\"\n    },\n    {\n      \"name\": \"xintexprSafeCatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexprRestoreCatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiexpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintfloatexpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiiexpro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintDigits*\"\n    },\n    {\n      \"name\": \"xintSetDigits*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSetDigits*{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintfracSetDigits\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintfracSetDigits{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xinteval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xinteval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintieval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintieval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintieval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintieval[${2:digits}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintiieval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiieval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintfloateval\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintfloateval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintfloateval\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintfloateval[${2:digits}]{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintthecoords\"\n    },\n    {\n      \"name\": \"xintthespaceseparated\"\n    },\n    {\n      \"name\": \"xintifboolexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifboolexpr{${1:expr}}{${2:yes-code}}{${3:no-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifboolfloatexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifboolfloatexpr{${1:expr}}{${2:yes-code}}{${3:no-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifbooliiexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifbooliiexpr{${1:expr}}{${2:yes-code}}{${3:no-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifsgnexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifsgnexpr{${1:expr}}{${2:less-code}}{${3:zero-code}}{${4:greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifsgnfloatexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifsgnfloatexpr{${1:expr}}{${2:less-code}}{${3:zero-code}}{${4:greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifsgniiexpr\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifsgniiexpr{${1:expr}}{${2:less-code}}{${3:zero-code}}{${4:greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewExpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewExpr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewExpr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewExpr{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewIIExpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewIIExpr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewIIExpr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewIIExpr{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewFloatExpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewFloatExpr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewFloatExpr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewFloatExpr{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewIExpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewIExpr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewIExpr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewIExpr{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewBoolExpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewBoolExpr{${1:cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewBoolExpr\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewBoolExpr{${1:cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintunassignvar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintunassignvar{${1:variable}}\"\n      }\n    },\n    {\n      \"name\": \"xintnewdummy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintnewdummy{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"xintensuredummy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintensuredummy{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"xintrestorevariable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintrestorevariable{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"xintrestorevariablesilently\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintrestorevariablesilently{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"xintunassignexprfunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintunassignexprfunc{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xintunassigniiexprfunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintunassigniiexprfunc{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xintunassignfloatexprfunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintunassignfloatexprfunc{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewFunction\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNewFunction{${1:name}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"xintNewFunction\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xintNewFunction{${1:name}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"XINTfstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintreloadscilibs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTdigitsormax\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignbegin\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignend\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignlinesep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignleftbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignrightbracket\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignleftsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpralignrightsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintexpraligninnersep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTexprprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTiexprprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTiiexprprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTflexprprint\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbareeval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbarefloateval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbareiieval\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintthebareeval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintthebareeval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintthebarefloateval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintthebarefloateval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintthebareiieval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintthebareiieval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintthebareroundedfloateval\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintthebareroundedfloateval{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"XINTusenoargfunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTusenoargfunc{${1:func}}\"\n      }\n    },\n    {\n      \"name\": \"XINTusefunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTusefunc{${1:func}}\"\n      }\n    },\n    {\n      \"name\": \"XINTuseufunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTuseufunc{${1:func}}\"\n      }\n    },\n    {\n      \"name\": \"XINTusemacrofunc\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XINTusemacrofunc{${1:arg1}}{${2:arg2}}{${3:arg3}}\"\n      }\n    },\n    {\n      \"name\": \"xintNEprinthook\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintfrac.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xint\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintTeXFromSci\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTeXFromSci{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTeXFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTeXFrac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTeXsignedFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTeXsignedFrac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTeXOver\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTeXOver{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTeXFromScifracmacro\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTeXFromScifracmacro{${1:num}}{${2:den}}\"\n      }\n    },\n    {\n      \"name\": \"xintTeXsignedOver\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTeXsignedOver{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintLen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLen{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintNum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintNum{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintRaw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRaw{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintRawBraced\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRawBraced{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintiLogTen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiLogTen{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintNumerator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintNumerator{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDenominator\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDenominator{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintRawWithZeros\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRawWithZeros{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintREZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintREZ{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintIrr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintIrr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPIrr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintPIrr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintJrr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintJrr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPRaw\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintPRaw{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintSPRaw\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSPRaw{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFracToSci\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFracToSci{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFracToDecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFracToDecimal{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecToStringREZ\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDecToStringREZ{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDecToString\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintDecToString{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTrunc{${1:integer}}{${2:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintXTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintXTrunc{${1:integer}}{${2:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTFrac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTFrac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintRound{${1:integer}}{${2:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloor{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintCeil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCeil{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintiTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiTrunc{${1:integer}}{${2:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintTTrunc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintTTrunc{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintiRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintiRound{${1:integer}}{${2:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintiFloor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiFloor{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintiCeil\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintiCeil{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintE\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintE{${1:A/B[${3:n}]}}{${2:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintCmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintCmp{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintEq{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintNotEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNotEq{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintGeq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintGeq{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintGt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintGt{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintLt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintLt{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintGtorEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintGtorEq{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintLtorEq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintLtorEq{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintIsZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintIsZero{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintIsNotZero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintIsNotZero{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintIsOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintIsOne{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintOdd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintOdd{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintEven\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintEven{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintifSgn\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifSgn{${1:A/B[${5:n}]}}{${2:neg-code}}{${3:zero-code}}{${4:pos-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifZero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifZero{${1:A/B[${4:n}]}}{${2:zero-code}}{${3:not-zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifNotZero\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifNotZero{${1:A/B[${4:n}]}}{${2:not-zero-code}}{${3:zero-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifOne\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifOne{${1:A/B[${4:n}]}}{${2:one-code}}{${3:not-one-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifOdd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifOdd{${1:A/B[${4:n}]}}{${2:odd-code}}{${3:even-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifCmp\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xintifCmp{${1:A1/B1[${6:n1}]}}{${2:A2/B2[${7:n2}]}}{${3:less-code}}{${4:equal-code}}{${5:greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifEq\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifEq{${1:A1/B1[${5:n1}]}}{${2:A2/B2[${6:n2}]}}{${3:equals-code}}{${4:not-equals-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifGt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifGt{${1:A1/B1[${5:n1}]}}{${2:A2/B2[${6:n2}]}}{${3:greater-code}}{${4:not-greater-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifLt\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintifLt{${1:A1/B1[${5:n1}]}}{${2:A2/B2[${6:n2}]}}{${3:less-code}}{${4:not-less-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintifInt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifInt{${1:A/B[${4:n}]}}{${2:integer-code}}{${3:not-integer-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintIsInt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintIsInt{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintSgn\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSgn{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintSignBit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSignBit{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintOpp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintOpp{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintInv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintInv{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintAbs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintAbs{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintAdd{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintSub{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintMul{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDiv{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDivFloor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDivFloor{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintMod{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDivMod\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDivMod{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDivTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDivTrunc{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintModTrunc\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintModTrunc{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintDivRound\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintDivRound{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintSqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSqr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintPow{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintBinomial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintBinomial{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPFactorial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintPFactorial{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintMax\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintMax{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintMin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintMin{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintMaxof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintMaxof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintMinof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintMinof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintSum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSum{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintPrd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintPrd{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCD\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintGCD{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintLCM\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintLCM{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintGCDof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGCDof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLCMof\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLCMof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintDigits\"\n    },\n    {\n      \"name\": \"xinttheDigits\"\n    },\n    {\n      \"name\": \"xinttheGuardDigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintSetDigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSetDigits{${1:expr}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloat{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloat[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatBraced\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatBraced{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatBraced\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatBraced[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatZero\"\n    },\n    {\n      \"name\": \"xintFloatE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatE{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatE\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatE[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSciExp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatSciExp{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSciExp\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatSciExp[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSignificand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatSignificand{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSignificand\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatSignificand[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPFloat\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintPFloat{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPFloat\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintPFloat[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintPFloatZero\"\n    },\n    {\n      \"name\": \"xintPFloatE\"\n    },\n    {\n      \"name\": \"xintPFloatNoSciEmax\"\n    },\n    {\n      \"name\": \"xintPFloatNoSciEmin\"\n    },\n    {\n      \"name\": \"xintPFloatIntSuffix\"\n    },\n    {\n      \"name\": \"xintPFloatLengthOneSuffix\"\n    },\n    {\n      \"name\": \"xintPFloatMinTrimmed\"\n    },\n    {\n      \"name\": \"xintFloatToDecimal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatToDecimal{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatToDecimal\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatToDecimal[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatAdd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatAdd{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatAdd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatAdd[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatSub{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatSub[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatMul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatMul{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatMul\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatMul[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSqr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatSqr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSqr\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatSqr[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatDiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatDiv{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatDiv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatDiv[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPow\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatPow{${1:A/B[${3:n}]}}{${2:power}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPow\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatPow[${3:digits}]{${1:A/B[${4:n}]}}{${2:power}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPower\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatPower{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPower\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatPower[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSqrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatSqrt{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatSqrt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatSqrt[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatFac\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatFac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatFac\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xintFloatFac[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatBinomial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatBinomial{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatBinomial\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatBinomial[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPFactorial\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintFloatPFactorial{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPFactorial\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintFloatPFactorial[${3:digits}]{${1:A1/B1[${4:n1}]}}{${2:A2/B2[${5:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintifFloatInt\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintifFloatInt{${1:A/B[${4:n}]}}{${2:integer-code}}{${3:not-integer-code}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatIsInt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatIsInt{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatIntType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFloatIntType{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloat\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"XINTinFloat[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"XINTinFloatS[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatFrac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatFrac{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatAdd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatAdd{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSub\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatSub{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatMul\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatMul{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSqr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatSqr{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatInv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatInv{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatDiv\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatDiv{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatPow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatPow{${1:A1/B1[${3:n1}]}}{${2:power}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatPower\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatPower{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatFac\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"XINTinFloatFac[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatPFactorial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatPFactorial{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatBinomial\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatBinomial{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSqrt\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"XINTinFloatSqrt[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatE\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatE{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatMod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatMod{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatDivFloor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatDivFloor{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatDivMod\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatDivMod{${1:A1/B1[${3:n1}]}}{${2:A2/B2[${4:n2}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinRandomFloatS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"XINTinRandomFloatS[${1:digits}]\"\n      }\n    },\n    {\n      \"name\": \"XINTinRandomFloatSixteen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTFloatiLogTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"XINTFloatiLogTen[${2:digits}]{${1:A/B[${3:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatMaxof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatMaxof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatMinof\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatMinof{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSum\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatSum{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatPrd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatPrd{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTinFloatSdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTFloatiLogTendigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTinRandomFloatSdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTinFloatFacdigits\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTinFloatSqrtdigits\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintgcd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xint\"\n    },\n    {\n      \"name\": \"xinttools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintBezout\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintBezout{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintEuclideAlgorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintEuclideAlgorithm{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintBezoutAlgorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintBezoutAlgorithm{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintTypesetEuclideAlgorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTypesetEuclideAlgorithm{${1:integer1}}{${2:integer2}}\"\n      }\n    },\n    {\n      \"name\": \"xintTypesetBezoutAlgorithm\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTypesetBezoutAlgorithm{${1:integer1}}{${2:integer2}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintkernel.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"XINTrestorecatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTrestorecatcodesendinput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTsetcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTsetupcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintdothis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintorthat\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintodef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintoodef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintfdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"odef\"\n    },\n    {\n      \"name\": \"oodef\"\n    },\n    {\n      \"name\": \"fdef\"\n    },\n    {\n      \"name\": \"xintReverseOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintReverseOrder{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLength\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLength{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintFirstItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFirstItem{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLastItem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLastItem{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintFirstOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintFirstOne{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLastOne\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintLastOne{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintLengthUpTo\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintLengthUpTo{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintReplicate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintReplicate{${1:integer}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"xintreplicate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintreplicate{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintGobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintGobble{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintgobble\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintgobble{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintUniformDeviate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintUniformDeviate{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintMessage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintMessage{${1:package}}{${2:label%plain}}{${3:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"ifxintverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintverbosetrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintverbosefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifxintglobaldefs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintglobaldefstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintglobaldefsfalse\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintlog.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"poormanlog\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"PoorManExp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoorManExp{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"PoorManLogBaseTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoorManLogBaseTen{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"PoorManLog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoorManLog{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"PoorManPowerOfTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PoorManPowerOfTen{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatExp\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatExp{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatLog\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatLog{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatLogTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatLogTen{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatPowTen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatPowTen{${1:float}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSciPow\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XINTinFloatSciPow{${1:base}}{${2:exponent}}\"\n      }\n    },\n    {\n      \"name\": \"xintreloadxintlog\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"XINTinfloatexp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinfloatexp{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinfloatlog\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinfloatlog{${1:A/B[${2:n}]}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xintseries.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintfrac\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintSeries{${1:start-index}}{${2:end-index}}{${3:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintiSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xintiSeries{${1:start-index}}{${2:end-index}}{${3:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintRationalSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintRationalSeries{${1:start-index}}{${2:end-index}}{${3:frac}}{${4:macro}}\"\n      }\n    },\n    {\n      \"name\": \"xintRationalSeriesX\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xintRationalSeriesX{${1:start-index}}{${2:end-index}}{${3:init-macro}}{${4:macro}}{${5:init-input}}\"\n      }\n    },\n    {\n      \"name\": \"xintPowerSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintPowerSeries{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    },\n    {\n      \"name\": \"xintPowerSeriesX\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintPowerSeriesX{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    },\n    {\n      \"name\": \"xintFxPtPowerSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xintFxPtPowerSeries{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}{${5:digits}}\"\n      }\n    },\n    {\n      \"name\": \"xintFxPtPowerSeriesX\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"xintFxPtPowerSeriesX{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}{${5:digits}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPowerSeries\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintFloatPowerSeries{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPowerSeries\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xintFloatPowerSeries[${5:digits}]{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPowerSeriesX\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xintFloatPowerSeriesX{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    },\n    {\n      \"name\": \"xintFloatPowerSeriesX\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"xintFloatPowerSeriesX[${5:digits}]{${1:start-index}}{${2:end-index}}{${3:macro}}{${4:base}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xinttools.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xintkernel\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xintgodef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintgoodef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintgfdef\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintRevWithBraces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRevWithBraces{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintRevWithBracesNoExpand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintRevWithBracesNoExpand{${1:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintZapFirstSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintZapFirstSpaces{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"xintZapLastSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintZapLastSpaces{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"xintZapSpaces\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintZapSpaces{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"xintZapSpacesB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintZapSpacesB{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"xintCSVtoList\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCSVtoList{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"xintCSVtoListNoExpand\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCSVtoListNoExpand{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"xintCSVtoListNonStripped\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCSVtoListNonStripped{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"xintCSVtoListNonStrippedNoExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCSVtoListNonStrippedNoExpand{${1:csv list}}\"\n      }\n    },\n    {\n      \"name\": \"xintNthElt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNthElt{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintNthEltNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNthEltNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintNthOnePy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNthOnePy{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintNthOnePyNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintNthOnePyNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintKeep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintKeep{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintKeepNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintKeepNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintKeepUnbraced\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintKeepUnbraced{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintKeepUnbracedNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintKeepUnbracedNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintTrim\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTrim{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintTrimNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTrimNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintTrimUnbraced\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTrimUnbraced{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintTrimUnbracedNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintTrimUnbracedNoExpand{${1:integer}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintListWithSep\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintListWithSep{${1:sep}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintListWithSepNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintListWithSepNoExpand{${1:sep}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintApply\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintApply{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintApplyNoExpand\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintApplyNoExpand{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintApplyUnbraced\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintApplyUnbraced{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintApplyUnbracedNoExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintApplyUnbracedNoExpand{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintSeq\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintSeq{${1:start-integer}}{${2:stop-integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintSeq\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xintSeq[${3:step}]{${1:start-integer}}{${2:stop-integer}}\"\n      }\n    },\n    {\n      \"name\": \"xintloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbreakloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbreakloopanddo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintloopskiptonext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiloopindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbracediloopindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintouteriloopindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbracedouteriloopindex\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbreakiloop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintbreakiloopanddo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiloopskiptonext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintiloopskipandredo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintApplyInline\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintApplyInline{${1:macro}}{${2:list}}\"\n      }\n    },\n    {\n      \"name\": \"xintifForFirst\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintifForFirst{${1:YES branch}}{${2:NO branch}}\"\n      }\n    },\n    {\n      \"name\": \"xintifForLast\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xintifForLast{${1:YES branch}}{${2:NO branch}}\"\n      }\n    },\n    {\n      \"name\": \"xintBreakFor\"\n    },\n    {\n      \"name\": \"xintBreakForAndDo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintBreakForAndDo{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"xintegers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintintegers\"\n    },\n    {\n      \"name\": \"xintdimensions\"\n    },\n    {\n      \"name\": \"xintrationals\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\xintAssign\": [\n      \"g\",\n      \"e\",\n      \"x\",\n      \"o\",\n      \"go\",\n      \"oo\",\n      \"goo\",\n      \"f\",\n      \"gf\"\n    ],\n    \"\\\\xintAssignArray,\\\\xintDigitsOf\": [\n      \"o\",\n      \"oo\",\n      \"f\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xinttrig.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xintCosd\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintCosd{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"XINTinFloatSdigitsormax\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XINTinFloatSdigitsormax{${1:A/B[${2:n}]}}\"\n      }\n    },\n    {\n      \"name\": \"xintreloadxinttrig\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xintSind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xintSind{${1:A/B[${2:n}]}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xistercian.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgf\"\n    },\n    {\n      \"name\": \"expkv-opt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"cistercian\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cistercian{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"cisterciannum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cisterciannum{${1:integer}}\"\n      }\n    },\n    {\n      \"name\": \"cisterciannumE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cisterciannumE{${1:integer expression}}\"\n      }\n    },\n    {\n      \"name\": \"cisterciansetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cisterciansetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*,\\\\usepackage/xistercian#c\",\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cistercianredraw\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cistercianredrawlazy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"cistercianstyle\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cistercianstyle{${1:keyname%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*,\\\\usepackage/xistercian#c\",\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"cistercianstyle*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cistercianstyle*{${1:keyname%specialDef}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*,\\\\usepackage/xistercian#c\",\n          \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*,\\\\usepackage/xistercian#c\": [\n      \"width=\",\n      \"wd=\",\n      \"height=\",\n      \"ht=\",\n      \"bound-x=${1:factor}\",\n      \"bx=${1:factor}\",\n      \"bound-y=${1:factor}\",\n      \"by=${1:factor}\",\n      \"baseline=${1:factor}\",\n      \"bs=${1:factor}\",\n      \"stroke-v=\",\n      \"sv=\",\n      \"stroke-h=\",\n      \"sh=\",\n      \"stroke-du=\",\n      \"sdu=\",\n      \"stroke-dd=\",\n      \"sdd=\",\n      \"strokes=\",\n      \"s=\",\n      \"fraction=${1:fraction}\",\n      \"fr=${1:fraction}\",\n      \"orientation=${1|horizontal,h,vertical,v|}\",\n      \"o=${1|horizontal,h,vertical,v|}\",\n      \"horizontal\",\n      \"vertical\",\n      \"alternate-5=${1:choice}\",\n      \"5=${1:choice}\",\n      \"alternate-6=${1:choice}\",\n      \"6=${1:choice}\",\n      \"alternate-9=${1:choice}\",\n      \"9=${1:choice}\",\n      \"font={${1:font setup}}\",\n      \"f={${1:font setup}}\",\n      \"%cisterciankey\"\n    ],\n    \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*\": [\n      \"redraw={${1:feature list}}\",\n      \"redraw +={${1:feature list}}\",\n      \"redraw\",\n      \"redraw!\",\n      \"r={${1:feature list}}\",\n      \"r +={${1:feature list}}\",\n      \"r\",\n      \"r!\"\n    ],\n    \"\\\\usepackage/xistercian#c\": [\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\cisterciansetup,\\\\cistercianstyle,\\\\cistercianstyle*,\\\\usepackage/xistercian#c\",\n    \"\\\\usepackage/xistercian#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xkcdcolors.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xkeymask.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"appendmask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"appendmask[${2:prefix}]{${1:key%plain}}[${3:values}]\"\n      }\n    },\n    {\n      \"name\": \"ifinmask\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}{}\",\n        \"snippet\": \"ifinmask[${4:prefix}]{${1:key%plain}}[${5:values}]{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"clearmask\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xkeymask#c\": [\n      \"prefix=${1:prefix}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xkeymask#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xkeyval.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"setkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys{${1:families}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"setkeys[${3:prefix}]{${1:families}}[${4:ignored keys}]{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkeys*{${1:families}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]{}\",\n        \"snippet\": \"setkeys*[${3:prefix}]{${1:families}}[${4:ignored keys}]{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setrmkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrmkeys{${1:families}}\"\n      }\n    },\n    {\n      \"name\": \"setrmkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setrmkeys[${2:prefix}]{${1:families}}[${3:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"setrmkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setrmkeys*{${1:families}}\"\n      }\n    },\n    {\n      \"name\": \"setrmkeys*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"setrmkeys*[${2:prefix}]{${1:families}}[${3:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"savevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"savevalue{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"gsavevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gsavevalue{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"savekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"savekeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"savekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"savekeys[${3:prefix}]{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gsavekeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gsavekeys[${3:prefix}]{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"delsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"delsavekeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"delsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"delsavekeys[${3:prefix}]{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gdelsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"gdelsavekeys{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"gdelsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"gdelsavekeys[${3:prefix}]{${1:family}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"unsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unsavekeys{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"unsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unsavekeys[${2:prefix}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"gunsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gunsavekeys{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"gunsavekeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gunsavekeys[${2:prefix}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"global\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"global{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"usevalue\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"usevalue{${1:key%plain}}\"\n      }\n    },\n    {\n      \"name\": \"presetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"presetkeys{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"presetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"presetkeys[${4:prefix}]{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"gpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gpresetkeys{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"gpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"gpresetkeys[${4:prefix}]{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"delpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"delpresetkeys{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"delpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"delpresetkeys[${4:prefix}]{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"gdelpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"gdelpresetkeys{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"gdelpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"gdelpresetkeys[${4:prefix}]{${1:family}}{${2:head keys}}{${3:tail keys}}\"\n      }\n    },\n    {\n      \"name\": \"unpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"unpresetkeys{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"unpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"unpresetkeys[${2:prefix}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"gunpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"gunpresetkeys{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"gunpresetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"gunpresetkeys[${2:prefix}]{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareOptionX{${1:key%plain}}{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>{}[]{}\",\n        \"snippet\": \"DeclareOptionX[${3:prefix}]<${5:family}>{${1:key%plain}}[${4:default}]{${2:function}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareOptionX*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareOptionX*{${1:function}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteOptionsX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExecuteOptionsX{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ExecuteOptionsX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]{}\",\n        \"snippet\": \"ExecuteOptionsX[${2:prefix}]<${4:families}>[${3:ignored keys}]{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"ProcessOptionsX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessOptionsX\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]\",\n        \"snippet\": \"ProcessOptionsX[${1:prefix}]<${3:families}>[${2:ignored keys}]\"\n      }\n    },\n    {\n      \"name\": \"ProcessOptionsX*\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ProcessOptionsX*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]<>[]\",\n        \"snippet\": \"ProcessOptionsX*[${1:prefix}]<${3:families}>[${2:ignored keys}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xkvview.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"longtable\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xkvview\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xkvview{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xkvview\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\xkvview\": [\n      \"prefix=\",\n      \"family=\",\n      \"type=\",\n      \"default=\",\n      \"columns=\",\n      \"vlabels\",\n      \"file=\",\n      \"wcolsep=\",\n      \"weol=\",\n      \"wlabels\",\n      \"view\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xlop.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"opset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opadd#c,\\\\opset#c\",\n          \"\\\\opmanyadd#c,\\\\opset#c\",\n          \"\\\\opsub#c,\\\\opset#c\",\n          \"\\\\opmul#c,\\\\opset#c\",\n          \"\\\\opdiv#c,\\\\opidiv#c,\\\\opset#c\",\n          \"\\\\opdiv*#c,\\\\opexpr#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opadd\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opadd{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"opadd\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opadd[${3:options%keyvals}]{${1:num1}}{${2:num2}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opadd#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opsub\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opsub{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"opsub\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opsub[${3:options%keyvals}]{${1:num1}}{${2:num2}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opsub#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opmul\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opmul{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"opmul\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opmul[${3:options%keyvals}]{${1:num1}}{${2:num2}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opmul#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opdiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opdiv{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"opdiv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opdiv[${3:options%keyvals}]{${1:num1}}{${2:num2}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opdiv#c,\\\\opidiv#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opidiv\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opidiv{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"opidiv\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opidiv[${3:options%keyvals}]{${1:num1}}{${2:num2}}\",\n        \"keys\": [\n          \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\",\n          \"\\\\opdiv#c,\\\\opidiv#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opcolumnwidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oplineheight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"opadd*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opadd*{${1:num1}}{${2:num2}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsub*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opsub*{${1:num1}}{${2:num2}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opmul*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opmul*{${1:num1}}{${2:num2}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opdiv*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"opdiv*{${1:num1}}{${2:num2}}{${3:quotient var}}{${4:remainder var}}\"\n      }\n    },\n    {\n      \"name\": \"opdiv*\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"opdiv*[${5:options%keyvals}]{${1:num1}}{${2:num2}}{${3:quotient var}}{${4:remainder var}}\",\n        \"keys\": [\n          \"\\\\opdiv*#c,\\\\opexpr#c,\\\\opset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opidiv*\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"opidiv*{${1:num1}}{${2:num2}}{${3:quotient var}}{${4:remainder var}}\"\n      }\n    },\n    {\n      \"name\": \"opcopy\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opcopy{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opprint{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"opdisplay\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opdisplay{${1:style%keyvals}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"opdisplay\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opdisplay[${3:specs}]{${1:style}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"oplput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"oplput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"oprput\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"oprput(${2:x},${3:y}){${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"ophline\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"ophline(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"opvline\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"opvline(${2:x},${3:y}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"opexport\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opexport{${1:number}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"opwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opwidth{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opintegerwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opintegerwidth{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opdecimalwidth\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opdecimalwidth{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opunzero\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opunzero{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"opinteger\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opinteger{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opdecimal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opdecimal{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opgetdigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opgetdigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsetdigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opsetdigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opgetintegerdigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opgetintegerdigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsetintegerdigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opsetintegerdigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opgetdecimaldigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opgetdecimaldigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsetdecimaldigit\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opsetdecimaldigit{${1:number}}{${2:index}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opcmp\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opcmp{${1:num1}}{${2:num2}}\"\n      }\n    },\n    {\n      \"name\": \"ifopgt\"\n    },\n    {\n      \"name\": \"ifopge\"\n    },\n    {\n      \"name\": \"ifople\"\n    },\n    {\n      \"name\": \"ifoplt\"\n    },\n    {\n      \"name\": \"ifopeq\"\n    },\n    {\n      \"name\": \"ifopneq\"\n    },\n    {\n      \"name\": \"opgcd\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opgcd{${1:num1}}{${2:num2}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opdivperiod\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opdivperiod{${1:num1}}{${2:num2}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opcastingoutnines\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opcastingoutnines{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opcastingoutelevens\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opcastingoutelevens{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"oppower\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"oppower{${1:number}}{${2:power}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opfloor\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opfloor{${1:number}}{${2:approx rank}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opceil\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opceil{${1:number}}{${2:approx rank}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opround\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"opround{${1:number}}{${2:approx rank}}{${3:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsqrt\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opsqrt{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opsqrt\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opsqrt[${3:options%keyvals}]{${1:number}}{${2:variable}}\",\n        \"keys\": [\n          \"\\\\opsqrt#c,\\\\opgfsqrt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opgfsqrt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opgfsqrt{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"opgfsqrt\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"opgfsqrt[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\opsqrt#c,\\\\opgfsqrt#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"opexpr\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opexpr{${1:expression}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opexpr\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"opexpr[${3:options%keyvals}]{${1:expression}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opabs\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opabs{${1:number}}{${2:variable}}\"\n      }\n    },\n    {\n      \"name\": \"opneg\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"opneg{${1:number}}{${2:variable}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\opset#c,\\\\opadd#c,\\\\opmanyadd#c,\\\\opsub#c,\\\\opmul#c,\\\\opdiv#c,\\\\opidiv#c\": [\n      \"afterperiodsymbol=${1:symbol}\",\n      \"equalsymbol=${1:symbol}\",\n      \"approxsymbol=${1:symbol}\",\n      \"decimalsepsymbol=${1:symbol}\",\n      \"addsymbol=${1:symbol}\",\n      \"subsymbol=${1:symbol}\",\n      \"mulsymbol=${1:symbol}\",\n      \"divsymbol=${1:symbol}\",\n      \"voperation=${1|top,center,bottom|}\",\n      \"voperator=${1|top,center,bottom|}\",\n      \"deletezero\",\n      \"style=${1|display,text|}\",\n      \"parenthesisnegative=${1|none,all,last|}\",\n      \"lineheight=\",\n      \"columnwidth=\",\n      \"decimalsepwidth=\",\n      \"hrulewidth=\",\n      \"vrulewidth=\",\n      \"decimalsepoffset=\",\n      \"operandstyle=${1:style cmds}\",\n      \"operandstyle.${1:num}=${2:style cmds}\",\n      \"resultstyle=${1:style cmds}\",\n      \"resultstyle.${1:num}=${2:style cmds}\",\n      \"remainderstyle=${1:style cmds}\",\n      \"remainderstyle.${1:num}=${2:style cmds}\",\n      \"intermediarystyle=${1:style cmds}\",\n      \"intermediarystyle.${1:num}=${2:style cmds}\",\n      \"carrystyle=${1:style cmds}\",\n      \"carrystyle.${1:num}=${2:style cmds}\"\n    ],\n    \"\\\\opadd#c,\\\\opset#c\": [\n      \"carryadd\",\n      \"lastcarry\"\n    ],\n    \"\\\\opmanyadd#c,\\\\opset#c\": [\n      \"vmanyoperator=${1|top,center,bottom,Top,Center,Bottom|}\"\n    ],\n    \"\\\\opsub#c,\\\\opset#c\": [\n      \"carrysub\",\n      \"lastcarry\",\n      \"offsetcarry=\",\n      \"behaviorsub=${1|silent,warning,error|}\"\n    ],\n    \"\\\\opmul#c,\\\\opset#c\": [\n      \"displayshiftintermediary=${1|shift,all,none|}\",\n      \"shiftintermediarysymbol=\",\n      \"displayintermediary=${1|none,all,nonzero,None|}\",\n      \"hfactor=${1|right,decimal|}\"\n    ],\n    \"\\\\opdiv#c,\\\\opidiv#c,\\\\opset#c\": [\n      \"maxdivstep=${1:integer}\",\n      \"safedivstep=${1:integer}\",\n      \"period\",\n      \"vruleperiod=\",\n      \"displayintermediary=${1|none,all,nonzero,None|}\",\n      \"dividendbridge\",\n      \"shiftdecimalsep=${1|both,divisor,none|}\",\n      \"strikedecimalsepsymbol=\"\n    ],\n    \"\\\\opdiv*#c,\\\\opexpr#c,\\\\opset#c\": [\n      \"maxdivstep=${1:integer}\",\n      \"safedivstep=${1:integer}\",\n      \"period\"\n    ],\n    \"\\\\opsqrt#c,\\\\opgfsqrt#c\": [\n      \"maxdivstep=${1:integer}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xltabular.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"ltablex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"endfirstfoot\"\n    },\n    {\n      \"name\": \"endlastfoot\"\n    },\n    {\n      \"name\": \"endfirsthead\"\n    },\n    {\n      \"name\": \"endfoot\"\n    },\n    {\n      \"name\": \"endhead\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xltabular\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:width}}{${2:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xltabular\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"[${3:hPos}]{${1:width}}{${2:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xltxtra.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"realscripts\"\n    },\n    {\n      \"name\": \"metalogo\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"textsuperscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperscript*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsubscript*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsubscript*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"realsubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"realsuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"realsuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fakesubscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesubscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fakesuperscript\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fakesuperscript{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"vfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"vfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"namedglyph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"namedglyph{${1:glyphname}}\"\n      }\n    },\n    {\n      \"name\": \"showhyphens\"\n    },\n    {\n      \"name\": \"XeTeX\"\n    },\n    {\n      \"name\": \"XeLaTeX\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xltxtra#c\": [\n      \"no-sscript\",\n      \"no-logos\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xltxtra#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xmpincl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"ifthen\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"includexmp\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"includexmp{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xmpmulti.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"multiinclude\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"multiinclude[${2:<default overlay specification>}][${3:options%keyvals}]{${1:base file name%file}}\",\n        \"keys\": [\n          \"\\\\multiinclude\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"multiinclude\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"multiinclude[${2:<default overlay specification>}]{${1:base file name%file}}\"\n      }\n    },\n    {\n      \"name\": \"multiinclude\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"multiinclude{${1:base file name%file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\multiinclude\": [\n      \"pause=${1:command}\",\n      \"graphics=${1:graphicx options}\",\n      \"format=${1:extension}\",\n      \"start=${1:number}\",\n      \"end=${1:number}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xob-dotemph.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"circemph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circemph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useremph{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremph\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"useremph[${2:raise%l}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremph\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"useremph[${2:raise%l}][${3:char}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"useremphraisedim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useremphchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useremphstarblack\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"useremphstarwhite\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xob-font.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"kotex\"\n    },\n    {\n      \"name\": \"ob-unfontsdefault\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setkomainfont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setkomainfont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkomainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setkomainfont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkomainfont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setkomainfont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setkomainfont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setkomainfont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkomainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setkomainfont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkomainfont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setkomainfont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setkosansfont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setkosansfont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setkosansfont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setkosansfont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setkosansfont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkosansfont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setkosansfont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setkomonofont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setkomonofont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setkomonofont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setkomonofont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setkomonofont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setkomonofont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setkomonofont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setobmainfont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setobmainfont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setobmainfont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setobmainfont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setobmainfont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobmainfont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setobmainfont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setobsansfont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setobsansfont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setobsansfont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setobsansfont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setobsansfont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobsansfont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setobsansfont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"setobmonofont(${1:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"setobmonofont(${1:Regular})(${2:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"setobmonofont(${1:Regular})(${2:Bold})(${3:Italic})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"arg\": {\n        \"format\": \"[]()\",\n        \"snippet\": \"setobmonofont[${1:basename}](${2:Regular})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"setobmonofont[${1:basename}](${2:Regular})(${3:Bold})\"\n      }\n    },\n    {\n      \"name\": \"setobmonofont\",\n      \"arg\": {\n        \"format\": \"[]()()()\",\n        \"snippet\": \"setobmonofont[${1:basename}](${2:Regular})(${3:Bold})(${4:Italic})\"\n      }\n    },\n    {\n      \"name\": \"compressbnms\"\n    },\n    {\n      \"name\": \"setmonoscale\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setmonoscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"setkorfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setkorfont{${1:arg1}}{${2:arg2}}\"\n      }\n    },\n    {\n      \"name\": \"setkorfontxob\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setkorfontxob{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"setxoblatinfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setxoblatinfont{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xob-font#c\": [\n      \"oldhangul\",\n      \"gremph\",\n      \"itemph\",\n      \"nanum\",\n      \"nanumx\",\n      \"hcr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xob-font#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xparse.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xpatch.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"patch-common\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xpiano.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"keyboard\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyboard{${1:notes}}\"\n      }\n    },\n    {\n      \"name\": \"keyboard\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"keyboard[${2:options%keyvals}]{${1:notes}}\",\n        \"keys\": [\n          \"\\\\keyboard,\\\\keyboardsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"keyboardsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"keyboardsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\keyboard,\\\\keyboardsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\keyboard,\\\\keyboardsetup\": [\n      \"color=\",\n      \"single\",\n      \"ext\",\n      \"size=\",\n      \"height=${1:number}\",\n      \"ratio=${1:number}\",\n      \"numbers\",\n      \"font=${1:font commands}\",\n      \"numbercolor=\",\n      \"10=${1:code}\",\n      \"11=${1:code}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xpicture.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"curve2e\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"calculus\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"pictcolor\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pictcolor{${1:color}}\"\n      }\n    },\n    {\n      \"name\": \"referencesystem\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"referencesystem(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"changereferencesystem\",\n      \"arg\": {\n        \"format\": \"()()()\",\n        \"snippet\": \"changereferencesystem(${1:x0},${2:y0})(${3:x1},${4:y1})(${5:x2},${6:y2})\"\n      }\n    },\n    {\n      \"name\": \"translateorigin\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"translateorigin(${1:x0},${2:y0})\"\n      }\n    },\n    {\n      \"name\": \"rotateaxes\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"rotateaxes{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"symmetrize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"symmetrize{${1:angle}}\"\n      }\n    },\n    {\n      \"name\": \"standardreferencesystem\"\n    },\n    {\n      \"name\": \"radiansangles\"\n    },\n    {\n      \"name\": \"degreesangles\"\n    },\n    {\n      \"name\": \"cartesianreference\"\n    },\n    {\n      \"name\": \"polarreference\"\n    },\n    {\n      \"name\": \"draftPictures\"\n    },\n    {\n      \"name\": \"cartesianaxes\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"cartesianaxes(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"axescolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axesthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xunitdivisions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yunitdivisions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"internalaxes\"\n    },\n    {\n      \"name\": \"externalaxes\"\n    },\n    {\n      \"name\": \"axeslabelcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axeslabelsize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axeslabelmathversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axeslabelmathalphabet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"axislabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xlabelpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xlabelpos{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"ylabelpos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ylabelpos{${1:position}}\"\n      }\n    },\n    {\n      \"name\": \"ticssize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundaryticssize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticsthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticscolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"maketics\"\n    },\n    {\n      \"name\": \"makenotics\"\n    },\n    {\n      \"name\": \"makelabels\"\n    },\n    {\n      \"name\": \"makenolabels\"\n    },\n    {\n      \"name\": \"plotxtic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotxtic{${1:x-coor}}\"\n      }\n    },\n    {\n      \"name\": \"plotytic\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"plotytic{${1:y-coor}}\"\n      }\n    },\n    {\n      \"name\": \"printxlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printxlabel{${1:x-coor}}{${2:label%formula}}\"\n      }\n    },\n    {\n      \"name\": \"printylabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printylabel{${1:y-coor}}{${2:label%formula}}\"\n      }\n    },\n    {\n      \"name\": \"printxticlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printxticlabel{${1:x-coor}}{${2:label%formula}}\"\n      }\n    },\n    {\n      \"name\": \"printyticlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printyticlabel{${1:y-coor}}{${2:label%formula}}\"\n      }\n    },\n    {\n      \"name\": \"plotxtics\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plotxtics{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"plotytics\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"plotytics{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printxlabels\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printxlabels{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printxlabels\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printxlabels[${4:digits}]{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printylabels\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printylabels{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printylabels\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printylabels[${4:digits}]{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printxticslabels\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printxticslabels{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printxticslabels\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printxticslabels[${4:digits}]{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printyticslabels\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"printyticslabels{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"printyticslabels\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"printyticslabels[${4:digits}]{${1:firstcoor}}{${2:incr}}{${3:bound}}\"\n      }\n    },\n    {\n      \"name\": \"cartesiangrid\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"cartesiangrid(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"gridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundarygridcolor\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundarygridthickness\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polargrid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"polargrid{${1:radius}}{${2:circle divs}}\"\n      }\n    },\n    {\n      \"name\": \"runitdivisions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degreespolarlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"radianspolarlabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rlabelpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Put(${2:x},${3:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"Put\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Put[${2:position}](${3:x},${4:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"Put*(${2:x},${3:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"Put*\",\n      \"arg\": {\n        \"format\": \"[](){}\",\n        \"snippet\": \"Put*[${2:position}](${3:x},${4:y}){${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"cPut\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"cPut{${1:position}}(${3:x},${4:y}){${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"rPut\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rPut{${1:position}}(${3:x},${4:y}){${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"rPut*\",\n      \"arg\": {\n        \"format\": \"{}(){}\",\n        \"snippet\": \"rPut*{${1:position}}(${3:x},${4:y}){${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"Pictlabelsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultPut\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"defaultPut{${1:c|r}}\"\n      }\n    },\n    {\n      \"name\": \"highestlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"highestlabel{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"multiPut\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multiPut(${3:x0},${4:y0})(${5:∆x},${6:∆y}){${1:n}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"multiPut\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multiPut[${3:position}](${4:x0},${5:y0})(${6:∆x},${7:∆y}){${1:n}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"multiPut*\",\n      \"arg\": {\n        \"format\": \"()(){}{}\",\n        \"snippet\": \"multiPut*(${3:x0},${4:y0})(${5:∆x},${6:∆y}){${1:n}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"multiPut*\",\n      \"arg\": {\n        \"format\": \"[]()(){}{}\",\n        \"snippet\": \"multiPut*[${3:position}](${4:x0},${5:y0})(${6:∆x},${7:∆y}){${1:n}}{${2:object}}\"\n      }\n    },\n    {\n      \"name\": \"multicPut\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multicPut{${1:position}}(${4:x0},${5:y0})(${6:∆x},${7:∆y}){${2:n}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"multirPut\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirPut{${1:position}}(${4:x0},${5:y0})(${6:∆x},${7:∆y}){${2:n}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"multirPut*\",\n      \"arg\": {\n        \"format\": \"{}()(){}{}\",\n        \"snippet\": \"multirPut*{${1:position}}(${4:x0},${5:y0})(${6:∆x},${7:∆y}){${2:n}}{${3:object}}\"\n      }\n    },\n    {\n      \"name\": \"xLINE\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"xLINE(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"xVECTOR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"xVECTOR(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"xtrivVECTOR\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"xtrivVECTOR(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"arrowsize\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"arrowsize{${1:xlen}}{${2:ylen}}\"\n      }\n    },\n    {\n      \"name\": \"xline\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xline(${2:x},${3:y}){${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"xvector\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xvector(${2:x},${3:y}){${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"xtrivvector\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xtrivvector(${2:x},${3:y}){${1:size}}\"\n      }\n    },\n    {\n      \"name\": \"zerovector\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"zerovector(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"zerotrivvector\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"zerotrivvector(${1:x},${2:y})\"\n      }\n    },\n    {\n      \"name\": \"regularPolygon\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"regularPolygon{${1:radius}}{${2:sides}}\"\n      }\n    },\n    {\n      \"name\": \"regularPolygon\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"regularPolygon[${3:initial angle}]{${1:radius}}{${2:sides}}\"\n      }\n    },\n    {\n      \"name\": \"Circle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Circle{${1:r}}\"\n      }\n    },\n    {\n      \"name\": \"Ellipse\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"Ellipse{${1:a}}{${2:b}}\"\n      }\n    },\n    {\n      \"name\": \"Hyperbola\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"Hyperbola{${1:a}}{${2:b}}{${3:xmax}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"lHyperbola\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lHyperbola{${1:a}}{${2:b}}{${3:xmax}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"rHyperbola\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rHyperbola{${1:a}}{${2:b}}{${3:xmax}}{${4:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"Parabola\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"Parabola{${1:a}}{${2:xmax}}{${3:ymax}}\"\n      }\n    },\n    {\n      \"name\": \"defaultplotdivs\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"xArc{${1:r}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"circularArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"circularArc{${1:r}}{${2:angle1}}{${3:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"ellipticArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ellipticArc{${1:a}}{${2:b}}{${3:angle1}}{${4:angle2}}\"\n      }\n    },\n    {\n      \"name\": \"rhyperbolicArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"rhyperbolicArc{${1:a}}{${2:b}}{${3:y1}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"lhyperbolicArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"lhyperbolicArc{${1:a}}{${2:b}}{${3:y1}}{${4:y2}}\"\n      }\n    },\n    {\n      \"name\": \"parabolicArc\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"parabolicArc{${1:a}}{${2:y1}}{${3:y2}}\"\n      }\n    },\n    {\n      \"name\": \"PlotFunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PlotFunction{${1:\\\\functionname}}{${2:t0}}{${3:t1}}\"\n      }\n    },\n    {\n      \"name\": \"PlotFunction\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PlotFunction[${4:n}]{${1:\\\\functionname}}{${2:t0}}{${3:t1}}\"\n      }\n    },\n    {\n      \"name\": \"PlotPointsOfFunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"PlotPointsOfFunction{${1:n}}{${2:\\\\functionname}}{${3:t0}}{${4:t1}}\"\n      }\n    },\n    {\n      \"name\": \"PlotParametricFunction\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"PlotParametricFunction{${1:\\\\functionname}}{${2:t0}}{${3:t1}}\"\n      }\n    },\n    {\n      \"name\": \"PlotParametricFunction\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"PlotParametricFunction[${4:n}]{${1:\\\\functionname}}{${2:t0}}{${3:t1}}\"\n      }\n    },\n    {\n      \"name\": \"pointmarkdiam\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pointmark\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qCurve\",\n      \"arg\": {\n        \"format\": \"()()()()\",\n        \"snippet\": \"qCurve(${1:x0},${2:y0})(${3:u0},${4:v0})(${5:x1},${6:y1})(${7:u1},${8:v1})\"\n      }\n    },\n    {\n      \"name\": \"bgfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bgtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degreesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degreestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"draftfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"drafttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifbg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdegrees\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifdraft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifinzeroaxes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iflabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifpolar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifrputstar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iftics\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifticslabelsgrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inzeroaxesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inzeroaxestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makegrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makenogrid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polarcoor\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"polarcoor(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"polarfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"polartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"qCOS\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qCOS{${1:angle}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"qSIN\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"qSIN{${1:angle}}{${2:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"qUNITVECTOR\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"qUNITVECTOR(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsysPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsysPoint(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsyspPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsyspPoint(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsyspVector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsyspVector(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsysVector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsysVector(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsysxyPoint\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsysxyPoint(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"refsysxyVector\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"refsysxyVector(${1:a},${2:b})(${3:c},${4:d})\"\n      }\n    },\n    {\n      \"name\": \"rputstarfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"rputstartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"strline\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"strline(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"themultiput\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticsfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticslabelsgridfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticslabelsgridtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ticstrue\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"Picture\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"Picture\",\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:color}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    },\n    {\n      \"name\": \"xpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"(${1:x0},${2:y0})(${3:x1},${4:y1})\"\n      }\n    },\n    {\n      \"name\": \"xpicture\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]()()\",\n        \"snippet\": \"[${1:color}](${2:x0},${3:y0})(${4:x1},${5:y1})\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xpicture#c\": [\n      \"draft\",\n      \"dvips\",\n      \"xdvi\",\n      \"dvipdf\",\n      \"dvipdfm\",\n      \"dvipdfmx\",\n      \"pdftex\",\n      \"luatex\",\n      \"xetex\",\n      \"dvipsone\",\n      \"dviwindo\",\n      \"oztex\",\n      \"textures\",\n      \"pctexps\",\n      \"pctex32\",\n      \"vtex\",\n      \"ltxarrows\",\n      \"pstarrows\",\n      \"debug\",\n      \"emtex\",\n      \"dviwin\",\n      \"pctexwin\",\n      \"pctexhp\",\n      \"truetex\",\n      \"tcidvi\",\n      \"dvisvgm\",\n      \"natural\",\n      \"rgb\",\n      \"cmy\",\n      \"cmyk\",\n      \"hsb\",\n      \"gray\",\n      \"RGB\",\n      \"HTML\",\n      \"HSB\",\n      \"Gray\",\n      \"monochrome\",\n      \"dvipsnames\",\n      \"dvipsnames*\",\n      \"svgnames\",\n      \"svgnames*\",\n      \"x11names\",\n      \"x11names*\",\n      \"table\",\n      \"fixpdftex\",\n      \"hyperref\",\n      \"prologue\",\n      \"kernelfbox\",\n      \"xcdraw\",\n      \"noxcdraw\",\n      \"fixinclude\",\n      \"showerrors\",\n      \"hideerrors\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xpicture#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xpinyin.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"CJKutf8\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xpinyin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xpinyin{${1:character}}{${2:pinyin}}\"\n      }\n    },\n    {\n      \"name\": \"xpinyin\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"xpinyin[${3:options%keyvals}]{${1:character}}{${2:pinyin}}\",\n        \"keys\": [\n          \"\\\\begin{pinyinscope},\\\\xpinyin,\\\\pinyin,\\\\xpinyinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xpinyin*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpinyin*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xpinyin*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xpinyin*[${2:options%keyvals}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"pinyin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pinyin{${1:pinyin}}\"\n      }\n    },\n    {\n      \"name\": \"pinyin\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pinyin[${2:options%keyvals}]{${1:pinyin}}\",\n        \"keys\": [\n          \"\\\\begin{pinyinscope},\\\\xpinyin,\\\\pinyin,\\\\xpinyinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setpinyin\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setpinyin{${1:characters}}{${2:pinyin}}\"\n      }\n    },\n    {\n      \"name\": \"xpinyinsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xpinyinsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{pinyinscope},\\\\xpinyin,\\\\pinyin,\\\\xpinyinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"disablepinyin\"\n    },\n    {\n      \"name\": \"enablepinyin\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"pinyinscope\"\n    },\n    {\n      \"name\": \"pinyinscope\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{pinyinscope},\\\\xpinyin,\\\\pinyin,\\\\xpinyinsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\begin{pinyinscope},\\\\xpinyin,\\\\pinyin,\\\\xpinyinsetup\": [\n      \"ratio=${1:number}\",\n      \"vsep=\",\n      \"hsep=\",\n      \"pysep=${1:glue}\",\n      \"font=${1:font}\",\n      \"format=${1:format}\",\n      \"multiple=${1:format}\",\n      \"footnote\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xprintlen.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fp\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"printlen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlen{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"printlen\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printlen[${2:digits}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"printlen\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"printlen[${2:digits}][${3:unit}]{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"CMarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CMspace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CMunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CMres\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultsignificant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"defaultunit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlenFirstParameter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"printlenCalculate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printlenCalculate{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"printlenCalculate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printlenCalculate[${2:unit}]{${1:dimen}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xpunctuate.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xperiod\"\n    },\n    {\n      \"name\": \"xcomma\"\n    },\n    {\n      \"name\": \"xperiodcomma\"\n    },\n    {\n      \"name\": \"xspaceafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xspaceafter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xperiodafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xperiodafter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xcommaafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xcommaafter{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xperiodcommaafter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xperiodcommaafter{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xr-hyper.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xr.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"externaldocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"externaldocument{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"externaldocument\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"externaldocument[${2:prefix}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"externaldocument\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"externaldocument[${2:prefix}][${3:nocite}]{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"externaldocument\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"externaldocument{${1:file}}[${2:URL}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xsavebox.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pdfbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xsbox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xsbox{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xsavebox{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xsavebox{${1:name}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"xsavebox{${1:name}}[${3:width}][${4:position}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xsavebox*{${1:name}}{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox*\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"xsavebox*{${1:name}}[${3:width}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xsavebox*\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"xsavebox*{${1:name}}[${3:width}][${4:position}]{${2:content%text}}\"\n      }\n    },\n    {\n      \"name\": \"xusebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xusebox{${1:name}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xlrbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"xlrbox*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:name}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xsavebox#c\": [\n      \"margin=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xsavebox#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xsim.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"xsimverb\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"translations\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xsimsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsimsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xsimsetup#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseType\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExerciseType{${1:type}}{${2:parameters%keyvals}}\",\n        \"keys\": [\n          \"\\\\DeclareExerciseType#c\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"numberofexercises\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DeclareExerciseParameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseParameter{${1:parameter%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseParameter*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseParameter*{${1:parameter%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"SetExerciseParameter\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"SetExerciseParameter{${1:type}}{${2:parameter}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetExerciseParameters\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExerciseParameters{${1:type}}{${2:parameters}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseProperty{${1:property%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseProperty*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseProperty*{${1:property%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExercisePropertyAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExercisePropertyAlias{${1:property1%specialDef}}{${2:property2}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseGoal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseGoal{${1:goal%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseTypeGoal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TotalExerciseTypeGoal{${1:type}}{${2:goal}}{${3:singular}}{${4:plural}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseTypeGoals\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TotalExerciseTypeGoals{${1:type}}{${2:list of goals}}{${3:singular}}{${4:plural}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseGoal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TotalExerciseGoal{${1:goal}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseGoals\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TotalExerciseGoals{${1:list of goals}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoExerciseTypeGoal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AddtoExerciseTypeGoal{${1:type}}{${2:goal}}{${3:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoExerciseTypeGoalPrint\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"AddtoExerciseTypeGoalPrint{${1:type}}{${2:goal}}{${3:value}}{${4:singular}}{${5:plural}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoExerciseGoal\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"AddtoExerciseGoal{${1:goal}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"AddtoExerciseGoalPrint\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"AddtoExerciseGoalPrint{${1:goal}}{${2:value}}{${3:singular}}{${4:plural}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseGoalValuePrint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExerciseGoalValuePrint{${1:value}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"printgoal\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printgoal{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"printpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printpoints{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"printtotalpoints\"\n    },\n    {\n      \"name\": \"addpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpoints{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"addpoints*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addpoints*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"points\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"points{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"printbonus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printbonus{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"printtotalbonus\"\n    },\n    {\n      \"name\": \"addbonus\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbonus{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"addbonus*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"addbonus*{${1:value}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseTagging\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseTagging{${1:tag%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideExerciseTagging\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ProvideExerciseTagging{${1:tag%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"printexercise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printexercise{${1:type}}{${2:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"xprintexercise\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xprintexercise{${1:type}}{${2:list of ids}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseCollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeclareExerciseCollection{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseCollection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"DeclareExerciseCollection[${2:tag values}]{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"activatecollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"activatecollection{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"deactivatecollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"deactivatecollection{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"collectexercises\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectexercises{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"collectexercisesstop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"collectexercisesstop{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"printcollection\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printcollection{${1:collection name}}\"\n      }\n    },\n    {\n      \"name\": \"printcollection\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printcollection[${2:options%keyvals}]{${1:collection name}}\",\n        \"keys\": [\n          \"\\\\printcollection#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printrandomexercises\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printrandomexercises{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"printrandomexercises\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printrandomexercises[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\printrandomexercises#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsolutionstype\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printsolutionstype{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"printsolutionstype\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printsolutionstype[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsolutionstype*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"printsolutionstype*{${1:type}}\"\n      }\n    },\n    {\n      \"name\": \"printsolutionstype*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"printsolutionstype*[${2:options%keyvals}]{${1:type}}\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsolutions\"\n    },\n    {\n      \"name\": \"printsolutions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsolutions[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsolutions*\"\n    },\n    {\n      \"name\": \"printsolutions*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsolutions*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printallsolutions\"\n    },\n    {\n      \"name\": \"printallsolutions\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printallsolutions[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printallsolutions*\"\n    },\n    {\n      \"name\": \"printallsolutions*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printallsolutions*[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printsolution\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"printsolution{${1:type}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"printsolution\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"printsolution[${3:options%keyvals}]{${1:type}}{${2:id}}\",\n        \"keys\": [\n          \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xprintsolution\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xprintsolution{${1:type}}{${2:id}}\"\n      }\n    },\n    {\n      \"name\": \"gradingtable\"\n    },\n    {\n      \"name\": \"gradingtable\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"gradingtable[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\gradingtable#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExerciseGoalTF{${1:goal}}{${2:relation and value}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseGoalT{${1:goal}}{${2:relation and value}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseGoalF{${1:goal}}{${2:relation and value}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalSingularTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseGoalSingularTF{${1:goal}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalSingularT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseGoalSingularT{${1:goal}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalSingularF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseGoalSingularF{${1:goal}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTypeGoalsSumTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfExerciseTypeGoalsSumTF{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTypeGoalsSumT\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExerciseTypeGoalsSumT{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTypeGoalsSumF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExerciseTypeGoalsSumF{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalsSumTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfExerciseGoalsSumTF{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalsSumT\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExerciseGoalsSumT{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseGoalsSumF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfExerciseGoalsSumF{${1:type}}{${2:list of goals}}{${3:relation and value}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseTypeGoal\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"TotalExerciseTypeGoal{${1:goal}}{${2:type}}{${3:singular}}{${4:plural}}\"\n      }\n    },\n    {\n      \"name\": \"TotalExerciseGoal\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"TotalExerciseGoal{${1:goal}}{${2:singular}}{${3:plural}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertyExistTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExercisePropertyExistTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertyExistT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExercisePropertyExistT{${1:property}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertyExistF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExercisePropertyExistF{${1:property}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertySetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExercisePropertySetTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertySetT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExercisePropertySetT{${1:property}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExercisePropertySetF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExercisePropertySetF{${1:property}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExerciseProperty{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"GetExercisePropertyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GetExercisePropertyTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExercisePropertyT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExercisePropertyT{${1:property}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"GetExercisePropertyF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExercisePropertyF{${1:property}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseBody\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExerciseBody{${1:exercise|solution}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseIdForProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExerciseIdForProperty{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseTypeForProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExerciseTypeForProperty{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExerciseProperty{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"SetExpandedExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SetExpandedExerciseProperty{${1:property}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseSetProperty\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExerciseSetProperty{${1:type}}{${2:id}}{${3:property}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseSetExpandedProperty\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExerciseSetExpandedProperty{${1:type}}{${2:id}}{${3:property}}{${4:value}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseBooleanPropertyTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseBooleanPropertyTF{${1:property}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseBooleanPropertyT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseBooleanPropertyT{${1:property}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseBooleanPropertyF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseBooleanPropertyF{${1:property}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseAliasProperty\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExerciseAliasProperty{${1:property}}\"\n      }\n    },\n    {\n      \"name\": \"SaveExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SaveExerciseProperty{${1:property}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GlobalSaveExerciseProperty\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GlobalSaveExerciseProperty{${1:property}}{${2:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyIfSetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"ExercisePropertyIfSetTF{${1:type}}{${2:id}}{${3:property}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyIfSetT\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExercisePropertyIfSetT{${1:type}}{${2:id}}{${3:property}}{${4:true}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyIfSetF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExercisePropertyIfSetF{${1:type}}{${2:id}}{${3:property}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyGet\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExercisePropertyGet{${1:type}}{${2:id}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyGetAlias\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExercisePropertyGetAlias{${1:type}}{${2:id}}{${3:property}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertySave\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExercisePropertySave{${1:type}}{${2:id}}{${3:property}}{${4:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"ExercisePropertyGlobalSave\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExercisePropertyGlobalSave{${1:type}}{${2:id}}{${3:property}}{${4:macro%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseParameter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExerciseParameter{${1:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseParameterTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"GetExerciseParameterTF{${1:parameter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseParameterT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExerciseParameterT{${1:parameter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseParameterF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"GetExerciseParameterF{${1:parameter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"GetExerciseName\"\n    },\n    {\n      \"name\": \"GetExerciseHeadingF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetExerciseHeadingF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseParameterGet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ExerciseParameterGet{${1:type}}{${2:parameter}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseParameterSetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseParameterSetTF{${1:parameter}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseParameterSetT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseParameterSetT{${1:parameter}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseParameterSetF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseParameterSetF{${1:parameter}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseParameterIfSetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"ExerciseParameterIfSetTF{${1:type}}{${2:parameter}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseParameterIfSetT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExerciseParameterIfSetT{${1:type}}{${2:parameter}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseParameterIfSetF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ExerciseParameterIfSetF{${1:type}}{${2:parameter}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachExerciseTag\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ForEachExerciseTag{${1:type}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ListExerciseTags\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ListExerciseTags{${1:type}}{${2:between}}\"\n      }\n    },\n    {\n      \"name\": \"UseExerciseTags\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"UseExerciseTags{${1:type}}{${2:between two}}{${3:between}}{${4:between last two}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTagSetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseTagSetTF{${1:value}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTagSetT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseTagSetT{${1:value}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTagSetF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseTagSetF{${1:value}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTopicSetTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfExerciseTopicSetTF{${1:value}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTopicSetT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseTopicSetT{${1:value}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExerciseTopicSetF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExerciseTopicSetF{${1:value}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"UseExerciseTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseExerciseTemplate{${1:type}}{${2:name}}\"\n      }\n    },\n    {\n      \"name\": \"ExerciseType\"\n    },\n    {\n      \"name\": \"ExerciseID\"\n    },\n    {\n      \"name\": \"ExerciseText\"\n    },\n    {\n      \"name\": \"ExerciseCollection\"\n    },\n    {\n      \"name\": \"numberofusedexercises\"\n    },\n    {\n      \"name\": \"ExerciseTableType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ExerciseTableType{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"IfInsideSolutionTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfInsideSolutionTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInsideSolutionT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfInsideSolutionT{${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfInsideSolutionF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfInsideSolutionF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSolutionPrintTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfSolutionPrintTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSolutionPrintT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSolutionPrintT{${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfSolutionPrintF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfSolutionPrintF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistSolutionTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"IfExistSolutionTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistSolutionT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfExistSolutionT{${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"IfExistSolutionF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"IfExistSolutionF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachPrintedExerciseByType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachPrintedExerciseByType{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachUsedExerciseByType\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachUsedExerciseByType{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachUsedExerciseByOrder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachUsedExerciseByOrder{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachPrintedExerciseByID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachPrintedExerciseByID{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachUsedExerciseByID\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachUsedExerciseByID{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMprint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XSIMprint{${1:exercise|solution}}{${2:type}}{${3:id}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMxprint\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XSIMxprint{${1:exercise|solution}}{${2:type}}{${3:id}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMtranslate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMtranslate{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMexpandcode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMexpandcode{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifchapterTF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XSIMifchapterTF{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifchapterT\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMifchapterT{${1:true}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifchapterF\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMifchapterF{${1:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMmixedcase\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMmixedcase{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifeqTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"XSIMifeqTF{${1:code1}}{${2:code2}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifeqT\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XSIMifeqT{${1:code1}}{${2:code2}}{${3:true}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifeqF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XSIMifeqF{${1:code1}}{${2:code2}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifblankTF\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"XSIMifblankTF{${1:code}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifblankT\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XSIMifblankT{${1:code}}{${2:true}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMifblankF\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"XSIMifblankF{${1:code}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMatbegindocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMatbegindocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMatenddocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMatenddocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseEnvironmentTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExerciseEnvironmentTemplate{${1:name}}{${2:begin code}}{${3:end code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseHeadingTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExerciseHeadingTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseTableTemplate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExerciseTableTemplate{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"xsimstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsimstyle{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"xsimstyle*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xsimstyle*{${1:style name}}\"\n      }\n    },\n    {\n      \"name\": \"loadxsimstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"loadxsimstyle{${1:list of style names}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseTranslation\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareExerciseTranslation{${1:language}}{${2:keyword}}{${3:translation}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareExerciseTranslations\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareExerciseTranslations{${1:keyword}}{${2:translations}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMtranslate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMtranslate{${1:keyword}}\"\n      }\n    },\n    {\n      \"name\": \"ForEachExerciseTranslation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ForEachExerciseTranslation{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"blank\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blank{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blank\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blank[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\blank#c,\\\\blank*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"blank*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"blank*{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blank*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"blank*[${2:options%keyvals}]{${1:text}}\",\n        \"keys\": [\n          \"\\\\blank#c,\\\\blank*#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ExerciseTableCode\"\n    },\n    {\n      \"name\": \"numberofcolumns\"\n    },\n    {\n      \"name\": \"theexercise\"\n    },\n    {\n      \"name\": \"ParameterValue\"\n    },\n    {\n      \"name\": \"PropertyValue\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"exercise\"\n    },\n    {\n      \"name\": \"exercise\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:properties%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{exercise}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"solution\"\n    },\n    {\n      \"name\": \"solution\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{solution}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xsim#c\": [\n      \"verbose\",\n      \"final\",\n      \"clear-aux\",\n      \"no-files\",\n      \"use-files\",\n      \"use-aux\",\n      \"blank\"\n    ],\n    \"\\\\xsimsetup#c\": [\n      \"path=${1:file path}\",\n      \"file-extension=${1:extension}\",\n      \"split-aux-lists=${1:string}\",\n      \"goal-print={${1:code}}\",\n      \"tags={${1:tag1,tag2,...}}\",\n      \"topics={${1:topic1,topic2,...}}\",\n      \"tags/ignore-untagged\",\n      \"topics/ignore-untagged\",\n      \"tags/use-unmatched\",\n      \"topics/use-untagged\",\n      \"exercise/print\",\n      \"exercise/use\",\n      \"exercise/collect\",\n      \"exercise/within=${1:counter}\",\n      \"exercise/the-counter={${1:code}}\",\n      \"exercise/template=${1:template}\",\n      \"solution/template=${1:template}\",\n      \"exercise/name=${1:name}\",\n      \"solution/name=${1:name}\",\n      \"exercise/heading=${1:heading command}\",\n      \"solution/heading=${1:heading command}\",\n      \"exercise/pre-hook={${1:code}}\",\n      \"exercise/begin-hook={${1:code}}\",\n      \"exercise/end-hook={${1:code}}\",\n      \"exercise/post-hook={${1:code}}\",\n      \"solution/print\",\n      \"solution/pre-hook={${1:code}}\",\n      \"solution/begin-hook={${1:code}}\",\n      \"solution/end-hook={${1:code}}\",\n      \"solution/post-hook={${1:code}}\",\n      \"collection/${1:name}/match-all\",\n      \"collection/${1:name}/match-any\",\n      \"collect\",\n      \"print-collection/headings\",\n      \"print-collection/headings-template=${1:template}\",\n      \"print-collection/print=${1|exercises,solutions,both|}\",\n      \"random/sort\",\n      \"random/collection=${1:collection}\",\n      \"random/exclude={${1:list of ids}}\",\n      \"random/print=${1|exercises,solutions,both|}\",\n      \"print-solutions/headings\",\n      \"print-solutions/headings-template=${1:template}\",\n      \"print-solutions/section=${2|true,false,${1:integer}|}\",\n      \"print-solutions/chapter=${2|true,false,${1:integer}|}\",\n      \"print-solutions/collection=${2|false,${1:collection}|}\",\n      \"grading-table/template=${1:template}\",\n      \"grading-table/type=${1:type}\",\n      \"load-style={${1:list of styles}}\",\n      \"blank/blank-style={${1:code}}\",\n      \"blank/filled-style={${1:code}}\",\n      \"blank/style={${1:code}}\",\n      \"blank/scale=${1:factor}\",\n      \"blank/width=\",\n      \"blank/linespread=${1:factor}\",\n      \"blank/line-increment=\",\n      \"blank/line-minimum-length=\",\n      \"blank/fill\",\n      \"%xsimexertag\"\n    ],\n    \"\\\\begin{exercise}#c\": [\n      \"ID=${1:text}\",\n      \"counter-value=${1:integer}\",\n      \"subtitle=${1:text}\",\n      \"points=${1:number}\",\n      \"bonus-points=${1:number}\",\n      \"print\",\n      \"print!\",\n      \"use\",\n      \"use!\",\n      \"used\",\n      \"solution\",\n      \"tags={${1:tag1,tag2,...}}\",\n      \"topics={${1:topic1,topic2,...}}\",\n      \"page=${1:text}\",\n      \"page-value=${1:integer}\",\n      \"section=${1:text}\",\n      \"section-value=${1:integer}\",\n      \"chapter=${1:text}\",\n      \"chapter-value=${1:integer}\",\n      \"sectioning={${1:section numbers}}\",\n      \"exercise-body={${1:code}}\",\n      \"solution-body={${1:code}}\",\n      \"%xsimexerprop\",\n      \"%xsimexertag\"\n    ],\n    \"\\\\begin{solution}#c\": [\n      \"template=${1:template}\",\n      \"name=${1:name}\",\n      \"heading=${1:heading command}\",\n      \"print\",\n      \"pre-hook={${1:code}}\",\n      \"begin-hook={${1:code}}\",\n      \"end-hook={${1:code}}\",\n      \"post-hook={${1:code}}\"\n    ],\n    \"\\\\DeclareExerciseType#c\": [\n      \"exercise-env=${1:envname}\",\n      \"solution-env=${1:envname}\",\n      \"exercise-name=${1:name}\",\n      \"exercises-name=${1:name}\",\n      \"solution-name=${1:name}\",\n      \"solutions-name=${1:name}\",\n      \"exercise-template=${1:template}\",\n      \"solution-template=${1:template}\",\n      \"counter=${1:counter}\",\n      \"within=${1:counter}\",\n      \"the-counter=${1:code}\",\n      \"solution-counter=${1:counter}\",\n      \"number=${1:integer}\",\n      \"exercise-heading=${1:heading command}\",\n      \"solution-heading=${1:heading command}\",\n      \"%xsimexerparam\"\n    ],\n    \"\\\\printcollection#c\": [\n      \"headings\",\n      \"headings-template=${1:template}\",\n      \"print=${1|exercises,solutions,both|}\"\n    ],\n    \"\\\\printrandomexercises#c\": [\n      \"sort\",\n      \"collection=${1:collection}\",\n      \"exclude={${1:list of ids}}\",\n      \"print=${1|exercises,solutions,both|}\"\n    ],\n    \"\\\\printsolutionstype#c,\\\\printsolutionstype*#c,\\\\printsolutions#c,\\\\printsolutions*#c,\\\\printallsolutions#c,\\\\printallsolutions*#c,\\\\printsolution#c\": [\n      \"headings\",\n      \"headings-template=${1:template}\",\n      \"section=${2|true,false,${1:integer}|}\",\n      \"chapter=${2|true,false,${1:integer}|}\",\n      \"collection=${2|false,${1:collection}|}\",\n      \"%xsimexertag\"\n    ],\n    \"\\\\gradingtable#c\": [\n      \"template=${1:template}\",\n      \"type=${1:type}\"\n    ],\n    \"\\\\blank#c,\\\\blank*#c\": [\n      \"blank-style={${1:code}}\",\n      \"filled-style={${1:code}}\",\n      \"style={${1:code}}\",\n      \"scale=${1:factor}\",\n      \"width=\",\n      \"linespread=${1:factor}\",\n      \"line-increment=\",\n      \"line-minimum-length=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xsim#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xsimverb.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"XSIMfilewritestart\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMfilewritestart{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMfilewritestart*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMfilewritestart*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMfilewritestop\"\n    },\n    {\n      \"name\": \"XSIMsetfilebegin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMsetfilebegin{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMsetfilebeginX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMsetfilebeginX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMsetfileend\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMsetfileend{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMsetfileendX\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMsetfileendX{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"XSIMgobblechars\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"XSIMgobblechars{${1:integer}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xskak.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"skak\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"chessboard\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"newchessgame\"\n    },\n    {\n      \"name\": \"newchessgame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"newchessgame[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newchessgame,\\\\resumechessgame,\\\\xskakset,\\\\chessboard\",\n          \"\\\\newchessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"resumechessgame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"resumechessgame[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\newchessgame,\\\\resumechessgame,\\\\xskakset,\\\\chessboard\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskaknewpgninfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskaknewpgninfo{${1:keyname%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"xskaknewpgninfo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xskaknewpgninfo[${2:default}]{${1:keyname%specialDef}}\"\n      }\n    },\n    {\n      \"name\": \"xskakgetgame\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakgetgame{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\xskakgetgame#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskakget\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakget{${1:type%keyvals}}\",\n        \"keys\": [\n          \"\\\\xskakget#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskakcomment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakcomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xskakexportgames\"\n    },\n    {\n      \"name\": \"xskakexportgames\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"xskakexportgames[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\xskakexportgames\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskakendgamedata\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xskakcurrentgameid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xskakset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\xskakset\",\n          \"\\\\mainline,\\\\variation,\\\\xskakset,\\\\printchessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskaktestmoveid\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xskaktestmoveid{${1:movenr}}{${2:player}}\"\n      }\n    },\n    {\n      \"name\": \"xskakloop\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakloop{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"xskakloop\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xskakloop[${2:options%keyvals}]{${1:code}}\",\n        \"keys\": [\n          \"\\\\xskakloop\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskakenpassanttext\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"mainline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"mainline[${2:option%keyvals}]{${1:moves}}\",\n        \"keys\": [\n          \"\\\\mainline,\\\\variation,\\\\xskakset,\\\\printchessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"variation\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"variation[${2:option%keyvals}]{${1:moves}}\",\n        \"keys\": [\n          \"\\\\mainline,\\\\variation,\\\\xskakset,\\\\printchessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskaknewstyleitem\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskaknewstyleitem{${1:item}}\"\n      }\n    },\n    {\n      \"name\": \"xskaknewstyleitem\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xskaknewstyleitem[${2:options%keyvals}]{${1:item}}\",\n        \"keys\": [\n          \"\\\\xskaknewstyleitem\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskaknewstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskaknewstyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xskaknewstyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xskaknewstyle[${2:options%keyvals}]{${1:style}}\",\n        \"keys\": [\n          \"\\\\xskaknewstyle,\\\\xskakaddtostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xskakaddtostyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xskakaddtostyle{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xskakaddtostyle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xskakaddtostyle[${2:options%keyvals}]{${1:style}}\",\n        \"keys\": [\n          \"\\\\xskaknewstyle,\\\\xskakaddtostyle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"printchessgame\"\n    },\n    {\n      \"name\": \"printchessgame\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printchessgame[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\printchessgame\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chessdiagramname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xskakaddtoid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"variationmovemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xskakmovehyphen\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xskak#c\": [\n      \"nopdfmatch\"\n    ],\n    \"\\\\newchessgame,\\\\resumechessgame,\\\\xskakset,\\\\chessboard\": [\n      \"id\",\n      \"id=${1:GameID}\",\n      \"movenr=${1:number}\",\n      \"player=${1|w,b|}\",\n      \"moveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"newvar=${1:GameID}\",\n      \"refid=${1:tag}\",\n      \"refpastmoveid=${1:tag}\",\n      \"refpastmovenr=${1:tag}\",\n      \"refpastplayer=${1:tag}\",\n      \"refnextmoveid=${1:tag}\",\n      \"refnextmovenr=${1:tag}\",\n      \"refnextplayer=${1:tag}\",\n      \"refpast=${1:tag}\",\n      \"refnext=${1:tag}\",\n      \"reffen=${1:tag}\",\n      \"reftag=${1:tag}\",\n      \"%xskakkey\"\n    ],\n    \"\\\\newchessgame\": [\n      \"result=${1:result}\",\n      \"white=${1:name}\",\n      \"black=${1:name}\",\n      \"whiteelo=${1:rating}\",\n      \"blackelo=${1:rating}\",\n      \"site=${1:site}\",\n      \"date=${1:date}\",\n      \"event=${1:event name}\",\n      \"round=${1:round}\"\n    ],\n    \"\\\\chessboard\": [\n      \"stepmoveid=${1:number}\",\n      \"lastmoveid\",\n      \"lastmoveid=${1:GameID}\"\n    ],\n    \"\\\\xskakgetgame#c\": [\n      \"initfen\",\n      \"initplayer\",\n      \"initmovenr\",\n      \"initmoveid\",\n      \"lastfen\",\n      \"lastplayer\",\n      \"lastmovenr\",\n      \"lastmoveid\",\n      \"nextplayer\",\n      \"nextmovenr\",\n      \"nextmoveid\",\n      \"diagramlist\",\n      \"gameid\",\n      \"parentid\",\n      \"result\",\n      \"white\",\n      \"black\",\n      \"whiteelo\",\n      \"blackelo\",\n      \"site\",\n      \"event\",\n      \"date\",\n      \"round\",\n      \"%xskakkey\"\n    ],\n    \"\\\\xskakget#c\": [\n      \"pgnpiece\",\n      \"piecechar\",\n      \"piece\",\n      \"pgnlostpiece\",\n      \"lostpiecechar\",\n      \"lostpiece\",\n      \"movefrom\",\n      \"pgnmovefrom\",\n      \"moveto\",\n      \"enpassant\",\n      \"enpassantsquare\",\n      \"castling\",\n      \"longcastling\",\n      \"capture\",\n      \"promotion\",\n      \"promotionpiece\",\n      \"promotionpiecechar\",\n      \"addpieces\",\n      \"clearfields\",\n      \"nextfen\",\n      \"pastfen\",\n      \"san\",\n      \"lan\",\n      \"opennr\",\n      \"comments\",\n      \"movenr\",\n      \"player\",\n      \"moveid\",\n      \"refid\",\n      \"refpastmoveid\",\n      \"refnextmoveid\",\n      \"refpastmovenr\",\n      \"refnextmovenr\",\n      \"refpastplayer\",\n      \"refnextplayer\",\n      \"check\",\n      \"mate\",\n      \"move\",\n      \"nag\"\n    ],\n    \"\\\\xskakexportgames\": [\n      \"file=\",\n      \"games={${1:list of games}}\"\n    ],\n    \"\\\\xskakset\": [\n      \"stepmoveid=${1:number}\",\n      \"lastmoveid=${1:GameID}\",\n      \"tag=${1:name}\",\n      \"defaultid=${1:GameID}\",\n      \"defaultresult=${1:result}\",\n      \"defaultwhite=${1:name}\",\n      \"defaultblack=${1:name}\",\n      \"defaultwhiteelo=${1:rating}\",\n      \"defaultblackelo=${1:rating}\",\n      \"defaultsite=${1:site}\",\n      \"defaultdate=${1:date}\",\n      \"defaultevent=${1:event name}\",\n      \"defaultround=${1:round}\",\n      \"defaultmovenr=${1:number}\",\n      \"defaultplayer=${1|w,b|}\",\n      \"defaultmoveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"defaultfen=${1:FEN}\"\n    ],\n    \"\\\\xskakloop\": [\n      \"id=${1:GameID}\",\n      \"initmovenr=${1:number}\",\n      \"initplayer=${1|w,b|}\",\n      \"initmoveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"stopmovenr=${1:number}\",\n      \"stopplayer=${1|w,b|}\",\n      \"stopmoveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"step=${1:number}\",\n      \"showlast\"\n    ],\n    \"\\\\mainline,\\\\variation,\\\\xskakset,\\\\printchessgame\": [\n      \"style=${1:style name}\",\n      \"gstyle=${1:style name}\",\n      \"level=${1:number}\",\n      \"glevel=${1:number}\",\n      \"invar\",\n      \"ginvar\",\n      \"outvar\",\n      \"goutvar\"\n    ],\n    \"\\\\xskaknewstyleitem\": [\n      \"opencommands=${1:cmds}\",\n      \"closecommands=${1:cmds}\",\n      \"beforenumber=${1:cmds}\",\n      \"whiteopen=${1:cmds}\",\n      \"blackopen=${1:cmds}\",\n      \"beforewhite=${1:cmds}\",\n      \"beforeblack=${1:cmds}\",\n      \"afterwhite=${1:cmds}\",\n      \"afterblack=${1:cmds}\",\n      \"beforeNAG=${1:cmds}\",\n      \"beforecomment=${1:cmds}\",\n      \"template=${1:item}\"\n    ],\n    \"\\\\xskaknewstyle,\\\\xskakaddtostyle\": [\n      \"level=${1:number}\",\n      \"styleitem=${1:item}\",\n      \"font=${1:cmds}\",\n      \"xfont=${1:cmds}\"\n    ],\n    \"\\\\printchessgame\": [\n      \"id=${1:GameID}\",\n      \"refid=${1:tag}\",\n      \"initmovenr=${1:number}\",\n      \"initplayer=${1|w,b|}\",\n      \"initmoveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"stopmovenr=${1:number}\",\n      \"stopplayer=${1|w,b|}\",\n      \"stopmoveid=${1:⟨number⟩⟨w or b⟩}\",\n      \"reftag=${1:tag}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xskak#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xspace.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xspace\"\n    },\n    {\n      \"name\": \"xspaceaddexceptions\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xspaceaddexceptions{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"xspaceremoveexception\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xspaceremoveexception{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xstring.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"IfSubStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSubStr{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStr\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfSubStr[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStr*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfSubStr*{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStr*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfSubStr*[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBefore{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBefore[${6:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBefore*{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBefore*[${6:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBehind{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBehind[${6:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBehind*{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfSubStrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}{}\",\n        \"snippet\": \"IfSubStrBehind*[${6:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}{${4:true}}{${5:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfBeginWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfBeginWith{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfBeginWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfBeginWith[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfBeginWith*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfBeginWith*{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfBeginWith*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfBeginWith*[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfEndWith{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndWith\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfEndWith[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndWith*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfEndWith*{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEndWith*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"IfEndWith*[${5:number}]{${1:string}}{${2:stringA}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfInteger\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfInteger{${1:number}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfDecimal\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"IfDecimal{${1:number}}{${2:true}}{${3:false}}\"\n      }\n    },\n    {\n      \"name\": \"integerpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"decimalpart\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterinteger\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterdecimal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"IfStrEq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfStrEq{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfStrEq*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfStrEq*{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"IfEq\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"IfEq{${1:stringA}}{${2:stringB}}{${3:true}}{${4:false}}\"\n      }\n    },\n    {\n      \"name\": \"StrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrBefore{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrBefore[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrBefore{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBefore\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrBefore[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrBefore*{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrBefore*[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrBefore*{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBefore*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrBefore*[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrBehind{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrBehind[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrBehind{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBehind\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrBehind[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrBehind*{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrBehind*[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrBehind*{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBehind*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrBehind*[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrCut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StrCut{${1:string}}{${2:stringA}}{${3:macroA%cmd}}{${4:macroB%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StrCut\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"StrCut[${5:number}]{${1:string}}{${2:stringA}}{${3:macroA%cmd}}{${4:macroB%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StrCut*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StrCut*{${1:string}}{${2:stringA}}{${3:macroA%cmd}}{${4:macroB%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StrCut*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"StrCut*[${5:number}]{${1:string}}{${2:stringA}}{${3:macroA%cmd}}{${4:macroB%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StrBetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StrBetween{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrBetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StrBetween[${4:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrBetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"StrBetween{${1:string}}{${2:stringA}}{${3:stringB}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBetween\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"StrBetween[${4:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}[${5:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StrBetween*{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrBetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StrBetween*[${4:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrBetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"StrBetween*{${1:string}}{${2:stringA}}{${3:stringB}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrBetween*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"StrBetween*[${4:num1,num2}]{${1:string}}{${2:stringA}}{${3:stringB}}[${5:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StrSubstitute{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StrSubstitute[${4:number}]{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"StrSubstitute{${1:string}}{${2:stringA}}{${3:stringB}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"StrSubstitute[${4:number}]{${1:string}}{${2:stringA}}{${3:stringB}}[${5:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StrSubstitute*{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"StrSubstitute*[${4:number}]{${1:string}}{${2:stringA}}{${3:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"StrSubstitute*{${1:string}}{${2:stringA}}{${3:stringB}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrSubstitute*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}[]\",\n        \"snippet\": \"StrSubstitute*[${4:number}]{${1:string}}{${2:stringA}}{${3:stringB}}[${5:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrDel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrDel{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrDel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrDel[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrDel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrDel{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrDel\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrDel[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrDel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrDel*{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrDel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrDel*[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrDel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrDel*{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrDel*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrDel*[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrGobbleLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrGobbleLeft{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrGobbleLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrGobbleLeft{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrLeft{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrLeft\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrLeft{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrGobbleRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrGobbleRight{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrGobbleRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrGobbleRight{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrRight{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrRight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrRight{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrChar{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrChar\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrChar{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrChar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrChar*{${1:string}}{${2:number}}\"\n      }\n    },\n    {\n      \"name\": \"StrChar*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrChar*{${1:string}}{${2:number}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrMid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"StrMid{${1:string}}{${2:numberA}}{${3:numberB}}\"\n      }\n    },\n    {\n      \"name\": \"StrMid\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}[]\",\n        \"snippet\": \"StrMid{${1:string}}{${2:numberA}}{${3:numberB}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrLen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrLen{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"StrLen\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"StrLen{${1:string}}[${2:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrCount{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrCount\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrCount{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrPosition{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrPosition[${3:number}]{${1:string}}{${2:stringA}}\"\n      }\n    },\n    {\n      \"name\": \"StrPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrPosition{${1:string}}{${2:stringA}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrPosition\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"StrPosition[${3:number}]{${1:string}}{${2:stringA}}[${4:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrCompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrCompare{${1:stringA}}{${2:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrCompare\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrCompare{${1:stringA}}{${2:stringB}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"StrCompare*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrCompare*{${1:stringA}}{${2:stringB}}\"\n      }\n    },\n    {\n      \"name\": \"StrCompare*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrCompare*{${1:stringA}}{${2:stringB}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"comparenormal\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"comparestrict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"savecomparemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restorecomparemode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fullexpandarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexpandarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"normalexpandarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandarg\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveexpandmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreexpandmode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noexploregroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exploregroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"saveexploremode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restoreexploremode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StrFindGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrFindGroup{${1:arg}}{${2:identifier}}\"\n      }\n    },\n    {\n      \"name\": \"StrFindGroup\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"StrFindGroup{${1:arg}}{${2:identifier}}[${3:name%cmd}]\"\n      }\n    },\n    {\n      \"name\": \"groupID\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StrSplit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"StrSplit{${1:string}}{${2:number}}{${3:macroA%cmd}}{${4:macroB%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"verbtocs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}||\",\n        \"snippet\": \"verbtocs{${1:name}}|${2:characters}|\"\n      }\n    },\n    {\n      \"name\": \"setverbdelim\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setverbdelim{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"tokenize\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"tokenize{${1:name%cmd}}{${2:control sequences}}\"\n      }\n    },\n    {\n      \"name\": \"StrExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"StrExpand{${1:string}}{${2:name%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"StrExpand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"StrExpand[${3:number}]{${1:string}}{${2:name%cmd}}\"\n      }\n    },\n    {\n      \"name\": \"noexpandingroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"expandingroups\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"scancs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"scancs{${1:name%cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"scancs\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"scancs[${3:number}]{${1:name%cmd}}{${2:string}}\"\n      }\n    },\n    {\n      \"name\": \"StrRemoveBraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StrRemoveBraces{${1:string}}\"\n      }\n    },\n    {\n      \"name\": \"StrRemoveBraces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"StrRemoveBraces{${1:string}}[${2:name%cmd}]\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xt_capts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DeclareCaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"DeclareCaption{${1:caption%cmd}}{${2:language}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaption\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"DeclareCaption{${1:caption%cmd}}{${2:language}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaption\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"DeclareCaption{${1:caption%cmd}}{${2:language}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaption\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ProvideCaption{${1:caption%cmd}}{${2:language}}{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaption\",\n      \"arg\": {\n        \"format\": \"{}{}[]{}\",\n        \"snippet\": \"ProvideCaption{${1:caption%cmd}}{${2:language}}[${4:args}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaption\",\n      \"arg\": {\n        \"format\": \"{}{}[][]{}\",\n        \"snippet\": \"ProvideCaption{${1:caption%cmd}}{${2:language}}[${4:args}][${5:default}]{${3:definition}}\"\n      }\n    },\n    {\n      \"name\": \"UseCaption\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"UseCaption{${1:language}}{${2:caption}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DeclareCaptionDefault{${1:caption%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"DeclareCaptionDefault{${1:caption%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"DeclareCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"DeclareCaptionDefault{${1:caption%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ProvideCaptionDefault{${1:caption%cmd}}{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"ProvideCaptionDefault{${1:caption%cmd}}[${3:args}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"ProvideCaptionDefault\",\n      \"arg\": {\n        \"format\": \"{}[][]{}\",\n        \"snippet\": \"ProvideCaptionDefault{${1:caption%cmd}}[${3:args}][${4:default}]{${2:definition}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeAtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeAtBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"AfterAtBeginDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AfterAtBeginDocument{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"BeforeAtEndDocument\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"BeforeAtEndDocument{${1:code}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xtab.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"bottomcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bottomcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bottomcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"notablelasthead\"\n    },\n    {\n      \"name\": \"shrinkheight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"shrinkheight{${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"tablecaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablecaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablecaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablefirsthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablefirsthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablehead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablehead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasthead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasthead{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tablelasttail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tablelasttail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"tabletail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"tabletail{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"topcaption[${2:short}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"topcaption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"topcaption{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xentrystretch\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xentrystretch{${1:decimal-fraction}}\"\n      }\n    },\n    {\n      \"name\": \"PWSTcapht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlastpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTcurpage\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTpenultimate\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTtempc\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSThead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTlasthead\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"iffirstcall\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcalltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstcallfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sttraceoff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setSTheight\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setSTheight{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"PWSTcalchtlines\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTcalnextpageht\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTinit\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSToplastpagenum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PWSTsethead\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"mpxtabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"mpxtabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:preamble}}\"\n      }\n    },\n    {\n      \"name\": \"xtabular*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:pos}]{${1:preamble}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xtab#c\": [\n      \"errorshow\",\n      \"pageshow\",\n      \"debugshow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xtab#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xtemplate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xucuri.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"xucr\"\n    },\n    {\n      \"name\": \"fxucr\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pxucr\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xucr\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xurl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useOriginalUrlSetting\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xurl#c\": [\n      \"nobiblatex\",\n      \"obeyspaces\",\n      \"hyphens\",\n      \"spaces\",\n      \"lowtilde\",\n      \"allowmove\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xurl#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xxcolor.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"colorcurrentmixin\"\n    },\n    {\n      \"name\": \"newcolormixin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"newcolormixin{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"applycolormixins\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"applycolormixins{${1:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"colormixin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:mix-in specification}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xy.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"xyoption\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyoption{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyrequire\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyrequire{${1:option%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xywithoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xywithoption{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyeverywithoption\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xyeverywithoption{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"xyeveryrequest\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xyeveryrequest{${1:option%keyvals}}{${2:code}}\",\n        \"keys\": [\n          \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"afterPATH\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterPATH{${1:decor}}\"\n      }\n    },\n    {\n      \"name\": \"afterPOS\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"afterPOS{${1:decor}}\"\n      }\n    },\n    {\n      \"name\": \"AliasPattern\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"AliasPattern{${1:alias}}{${2:name}}{${3:file}}\"\n      }\n    },\n    {\n      \"name\": \"ar\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ar[${1:hop}]\"\n      }\n    },\n    {\n      \"name\": \"arrowobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"arrowobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"cir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cir{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"cir<radius>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cir<radius>{${1:spec}}\"\n      }\n    },\n    {\n      \"name\": \"circleEdge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Col\"\n    },\n    {\n      \"name\": \"CompileFixPoint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CompileFixPoint{${1:id}}\"\n      }\n    },\n    {\n      \"name\": \"CompileMatrices\"\n    },\n    {\n      \"name\": \"CompilePrefix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CompilePrefix{${1:prefix}}\"\n      }\n    },\n    {\n      \"name\": \"composite\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"composite{${1:objects}}\"\n      }\n    },\n    {\n      \"name\": \"connect\"\n    },\n    {\n      \"name\": \"croplattice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}{}{}\",\n        \"snippet\": \"croplattice{${1:pt1}}{${2:pt2}}{${3:pt3}}{${4:pt4}}{${5:pt5}}{${6:pt6}}{${7:pt7}}{${8:pt8}}\"\n      }\n    },\n    {\n      \"name\": \"crv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crv{${1:poslist}}\"\n      }\n    },\n    {\n      \"name\": \"crvs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"crvs{${1:dir}}\"\n      }\n    },\n    {\n      \"name\": \"curve\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curve{${1:poslist}}\"\n      }\n    },\n    {\n      \"name\": \"curveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"curveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"ddtwocell\"\n    },\n    {\n      \"name\": \"defaultlatticebody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dir\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dir{${1:dir}}\"\n      }\n    },\n    {\n      \"name\": \"Direction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dltwocell\"\n    },\n    {\n      \"name\": \"drop\"\n    },\n    {\n      \"name\": \"drtwocell\"\n    },\n    {\n      \"name\": \"dtwocell\"\n    },\n    {\n      \"name\": \"dumpPSdict\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dumpPSdict{${1:filename}}\"\n      }\n    },\n    {\n      \"name\": \"dutwocell\"\n    },\n    {\n      \"name\": \"ellipse\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ellipse{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"ellipse<dimen>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ellipse<dimen>{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"endxy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frm\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frm{${1:frame}}\"\n      }\n    },\n    {\n      \"name\": \"halfrootthree\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"halfroottwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"knotstyle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knotstyle{${1:char}}\"\n      }\n    },\n    {\n      \"name\": \"knotSTYLE\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"knotSTYLE{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"knotstyles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"knotstyles{${1:char1}}{${2:char2}}\"\n      }\n    },\n    {\n      \"name\": \"labelbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelmargin\"\n    },\n    {\n      \"name\": \"labelstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeA\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticebody\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"latticeY\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ldtwocell\"\n    },\n    {\n      \"name\": \"lltwocell\"\n    },\n    {\n      \"name\": \"LoadAllPatterns\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"LoadAllPatterns{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"LoadPattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"LoadPattern{${1:name}}{${2:file}}\"\n      }\n    },\n    {\n      \"name\": \"lowercurveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lowercurveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"lrtwocell\"\n    },\n    {\n      \"name\": \"ltwocell\"\n    },\n    {\n      \"name\": \"lutwocell\"\n    },\n    {\n      \"name\": \"MakeOutlines\"\n    },\n    {\n      \"name\": \"maxTPICpoints\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"maxTPICpoints{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"modmapobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"modmapobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"MovieSetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MovieSetup{${1:width=width,height=height}}\"\n      }\n    },\n    {\n      \"name\": \"MultipleDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newdir\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newdir{${1:directional}}{${2:composite}}\"\n      }\n    },\n    {\n      \"name\": \"newgraphescape\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newgraphescape{${1:letter}}{${2:graph%formula}}\"\n      }\n    },\n    {\n      \"name\": \"newxycolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newxycolor{${1:name}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"newxypattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newxypattern{${1:name}}{${2:data}}\"\n      }\n    },\n    {\n      \"name\": \"NoCompileMatrices\"\n    },\n    {\n      \"name\": \"NoEMspecials\"\n    },\n    {\n      \"name\": \"NoOutlines\"\n    },\n    {\n      \"name\": \"NoPScolor\"\n    },\n    {\n      \"name\": \"NoPSframes\"\n    },\n    {\n      \"name\": \"NoPSlines\"\n    },\n    {\n      \"name\": \"NoPSrotate\"\n    },\n    {\n      \"name\": \"NoPSspecials\"\n    },\n    {\n      \"name\": \"NoPStiles\"\n    },\n    {\n      \"name\": \"NoResizing\"\n    },\n    {\n      \"name\": \"NoRules\"\n    },\n    {\n      \"name\": \"NoTips\"\n    },\n    {\n      \"name\": \"NoTPICframes\"\n    },\n    {\n      \"name\": \"NoTPICspecials\"\n    },\n    {\n      \"name\": \"object\"\n    },\n    {\n      \"name\": \"objectbox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"objectbox{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"objectheight\"\n    },\n    {\n      \"name\": \"objectmargin\"\n    },\n    {\n      \"name\": \"objectstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"objectwidth\"\n    },\n    {\n      \"name\": \"OnlyOutlines\"\n    },\n    {\n      \"name\": \"partroottwo\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PATH\"\n    },\n    {\n      \"name\": \"PATHafterPOS\"\n    },\n    {\n      \"name\": \"POS\"\n    },\n    {\n      \"name\": \"qspline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qspline{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"rdtwocell\"\n    },\n    {\n      \"name\": \"rectangleEdge\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"restore\"\n    },\n    {\n      \"name\": \"rltwocell\"\n    },\n    {\n      \"name\": \"Row\"\n    },\n    {\n      \"name\": \"rrtwocell\"\n    },\n    {\n      \"name\": \"rtwocell\"\n    },\n    {\n      \"name\": \"rutwocell\"\n    },\n    {\n      \"name\": \"save\"\n    },\n    {\n      \"name\": \"scene\"\n    },\n    {\n      \"name\": \"SelectTips\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"SelectTips{${1:family}}{${2:size}}\"\n      }\n    },\n    {\n      \"name\": \"ShowOutlines\"\n    },\n    {\n      \"name\": \"SilentMatrices\"\n    },\n    {\n      \"name\": \"SloppyCurves\"\n    },\n    {\n      \"name\": \"splinetolerance\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"splinetolerance{${1:dimen%l}}\"\n      }\n    },\n    {\n      \"name\": \"turnradius\"\n    },\n    {\n      \"name\": \"twocell\"\n    },\n    {\n      \"name\": \"twocellhead\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocellhead{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"twocellstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"twocelltail\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"twocelltail{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"txt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"txt<width>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"txt<width>{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"udtwocell\"\n    },\n    {\n      \"name\": \"ultwocell\"\n    },\n    {\n      \"name\": \"uppercurveobject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"uppercurveobject{${1:object}}\"\n      }\n    },\n    {\n      \"name\": \"urtwocell\"\n    },\n    {\n      \"name\": \"UseAllTwocells\"\n    },\n    {\n      \"name\": \"UseCompositeMaps\"\n    },\n    {\n      \"name\": \"UseCrayolaColors\"\n    },\n    {\n      \"name\": \"UseCurvedFrames\"\n    },\n    {\n      \"name\": \"UseEMspecials\"\n    },\n    {\n      \"name\": \"UseFontFrames\"\n    },\n    {\n      \"name\": \"UseHalfTwocells\"\n    },\n    {\n      \"name\": \"UsePatternFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePatternFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UsePScolor\"\n    },\n    {\n      \"name\": \"UsePSframes\"\n    },\n    {\n      \"name\": \"UsePSheader\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePSheader{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"UsePSlines\"\n    },\n    {\n      \"name\": \"UsePSrotate\"\n    },\n    {\n      \"name\": \"UsePSspecials\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"UsePSspecials{${1:driver}}\"\n      }\n    },\n    {\n      \"name\": \"UsePStiles\"\n    },\n    {\n      \"name\": \"UseResizing\"\n    },\n    {\n      \"name\": \"UseRules\"\n    },\n    {\n      \"name\": \"UseSingleDriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"UseTips\"\n    },\n    {\n      \"name\": \"UseTPICframes\"\n    },\n    {\n      \"name\": \"UseTPICspecials\"\n    },\n    {\n      \"name\": \"UseTwocells\"\n    },\n    {\n      \"name\": \"utwocell\"\n    },\n    {\n      \"name\": \"uutwocell\"\n    },\n    {\n      \"name\": \"xtwocell\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"xtwocell[${2:hop}]{${1:displace}}\"\n      }\n    },\n    {\n      \"name\": \"xtwocell\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xtwocell{${1:displace}}\"\n      }\n    },\n    {\n      \"name\": \"Xy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xy\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyatipfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xybox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xybox{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xybsqlfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xybtipfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xycircfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xycircle\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xycircle(${2:x},${3:y}){${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xycircle<radius>\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xycircle<radius>{${1:style}}\"\n      }\n    },\n    {\n      \"name\": \"xycompile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xycompile{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xycompileto\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xycompileto{${1:name}}{${2:<pos><${3:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xydashfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyecho\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xygraph\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xygraph{${1:graph%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xyignore\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xyignore{${1:<pos><${2:decor}>}}\"\n      }\n    },\n    {\n      \"name\": \"xyimport\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"xyimport(${2:width},${3:height})(${4:xoffset},${5:yoffset}){${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"xyimport\",\n      \"arg\": {\n        \"format\": \"(){}\",\n        \"snippet\": \"xyimport(${2:width},${3:height}){${1:graphics code}}\"\n      }\n    },\n    {\n      \"name\": \"xylattice\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"xylattice{${1:pt1}}{${2:pt2}}{${3:pt3}}{${4:pt4}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrix\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrix{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixcolsep\"\n    },\n    {\n      \"name\": \"xymatrixcompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrixcompile{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixnocompile\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xymatrixnocompile{${1:xy code%formula}}\"\n      }\n    },\n    {\n      \"name\": \"xymatrixrowsep\"\n    },\n    {\n      \"name\": \"xypolygon\"\n    },\n    {\n      \"name\": \"xypolyline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"xypolyline{${1:toks}}\"\n      }\n    },\n    {\n      \"name\": \"xypolyname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xypolynode\"\n    },\n    {\n      \"name\": \"xypolynum\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyprovide\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}{}{}\",\n        \"snippet\": \"xyprovide{${1:option}}{${2:name}}{${3:version}}{${4:author}}{${5:email}}{${6:address}}\"\n      }\n    },\n    {\n      \"name\": \"xyPSdefaultdict\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyquiet\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyReloadDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyresetcatcodes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyShowDrivers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xytracing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"xyverbose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zeroDivideLimit\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zeroDivideLimit{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"xy\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\": [\n      \"curve\",\n      \"frame\",\n      \"tips\",\n      \"line\",\n      \"rotate\",\n      \"color\",\n      \"tile\",\n      \"import\",\n      \"movie\",\n      \"ps\",\n      \"tpic\",\n      \"emtex\",\n      \"necula\",\n      \"picture\",\n      \"all\",\n      \"dummy\",\n      \"arrow\",\n      \"2cell\",\n      \"matrix\",\n      \"graph\",\n      \"poly\",\n      \"web\",\n      \"arc\",\n      \"knot\",\n      \"smart\",\n      \"barr\",\n      \"dvidrv\",\n      \"dvips\",\n      \"dvitops\",\n      \"oztex\",\n      \"17oztex\",\n      \"textures\",\n      \"16textures\",\n      \"xdvi\",\n      \"pdf\",\n      \"v2\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xy#c,\\\\xyoption#c,\\\\xyrequire#c,\\\\xywithoption#c,\\\\xyeverywithoption#c,\\\\xyeveryrequest#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xymtex.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epic\"\n    },\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"carom\"\n    },\n    {\n      \"name\": \"hetarom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    },\n    {\n      \"name\": \"lowcycle\"\n    },\n    {\n      \"name\": \"ccycle\"\n    },\n    {\n      \"name\": \"hcycle\"\n    },\n    {\n      \"name\": \"aliphat\"\n    },\n    {\n      \"name\": \"locant\"\n    },\n    {\n      \"name\": \"polymers\"\n    },\n    {\n      \"name\": \"methylen\"\n    },\n    {\n      \"name\": \"fusering\"\n    },\n    {\n      \"name\": \"sizeredc\"\n    },\n    {\n      \"name\": \"steroid\"\n    },\n    {\n      \"name\": \"lewisstruc\"\n    },\n    {\n      \"name\": \"bondcolor\"\n    },\n    {\n      \"name\": \"assurelatexmode\"\n    },\n    {\n      \"name\": \"chemist\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/xymtexpdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"epic\"\n    },\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"carom\"\n    },\n    {\n      \"name\": \"hetarom\"\n    },\n    {\n      \"name\": \"hetaromh\"\n    },\n    {\n      \"name\": \"lowcycle\"\n    },\n    {\n      \"name\": \"ccycle\"\n    },\n    {\n      \"name\": \"hcycle\"\n    },\n    {\n      \"name\": \"aliphat\"\n    },\n    {\n      \"name\": \"locant\"\n    },\n    {\n      \"name\": \"polymers\"\n    },\n    {\n      \"name\": \"methylen\"\n    },\n    {\n      \"name\": \"fusering\"\n    },\n    {\n      \"name\": \"sizeredc\"\n    },\n    {\n      \"name\": \"steroid\"\n    },\n    {\n      \"name\": \"lewisstruc\"\n    },\n    {\n      \"name\": \"bondcolor\"\n    },\n    {\n      \"name\": \"assurelatexmode\"\n    },\n    {\n      \"name\": \"xymtx-pdf\"\n    },\n    {\n      \"name\": \"chmst-pdf\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/xymtexpdf#c\": [\n      \"pdf\",\n      \"dvipdfm\",\n      \"pdftex\",\n      \"ps\",\n      \"dvips\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/xymtexpdf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/xymtx-pdf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"chemstr\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"pgfcore\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    },\n    {\n      \"name\": \"tikzlibrarybackgrounds\"\n    },\n    {\n      \"name\": \"tikzlibraryfit\"\n    },\n    {\n      \"name\": \"tikzlibrarycalc\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"black\"\n    },\n    {\n      \"name\": \"blue\"\n    },\n    {\n      \"name\": \"cyan\"\n    },\n    {\n      \"name\": \"dashhasheddash\"\n    },\n    {\n      \"name\": \"green\"\n    },\n    {\n      \"name\": \"HashWedgeAsSubst\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"HashWedgeAsSubst(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"HashWedgeAsSubstPDF(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"HashWedgeAsSubstX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"HashWedgeAsSubstX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstXPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"HashWedgeAsSubstXPDF(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"HashWedgeAsSubstXPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"HashWedgeAsSubstXPDF(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"ifsizereduction\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"magenta\"\n    },\n    {\n      \"name\": \"PutBondLine\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutBondLine(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"PutDashedBond\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"PutDashedBond(${2:xstart},${3:ystart})(${4:xend},${5:yend}){${1:thickness}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrow\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"putRoundArrow[${2:arrowhead}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrow\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putRoundArrow{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrowPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"putRoundArrowPDF[${2:arrowhead}]{${1:(${3:x1},${4:y1})(${5:x2},${6:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"putRoundArrowPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"putRoundArrowPDF{${1:(${2:x1},${3:y1})(${4:x2},${5:y2})...}}\"\n      }\n    },\n    {\n      \"name\": \"red\"\n    },\n    {\n      \"name\": \"setxymtxpdf\"\n    },\n    {\n      \"name\": \"setxymtxpdf\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"setxymtxpdf[${1:unit length}]\"\n      }\n    },\n    {\n      \"name\": \"sizereductionfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sizereductiontrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thickLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thinLineWidth\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"WavyAsSubst\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WavyAsSubst(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WavyAsSubstPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WavyAsSubstPDF(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WavyAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WavyAsSubstX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WavyAsSubstXPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WavyAsSubstXPDF(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubst\",\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WedgeAsSubst(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()(){}\",\n        \"snippet\": \"WedgeAsSubstPDF(${2:xstart},${3:ystart})(${4:xslope},${5:yslope}){${1:length}}\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WedgeAsSubstX(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstX\",\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"WedgeAsSubstX(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstXPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()\",\n        \"snippet\": \"WedgeAsSubstXPDF(${1:xstart},${2:ystart})(${3:xend},${4:yend})\"\n      }\n    },\n    {\n      \"name\": \"WedgeAsSubstXPDF\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"()()[]\",\n        \"snippet\": \"WedgeAsSubstXPDF(${2:xstart},${3:ystart})(${4:xend},${5:yend})[${1:thickness}]\"\n      }\n    },\n    {\n      \"name\": \"wedgehasheddash\"\n    },\n    {\n      \"name\": \"wedgehashedwedge\"\n    },\n    {\n      \"name\": \"white\"\n    },\n    {\n      \"name\": \"xymcolor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"xymcolor{${1:color}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yellow\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/yagusylo.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"suffix\"\n    },\n    {\n      \"name\": \"xargs\"\n    },\n    {\n      \"name\": \"xcolor\",\n      \"if\": \"color=true\"\n    },\n    {\n      \"name\": \"colortbl\",\n      \"if\": \"XcolorOptions=table\"\n    },\n    {\n      \"name\": \"pdfcolmk\",\n      \"if\": \"XcolorOptions=fixpdftex\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setyagusylokeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyagusylokeys{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagding\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagding{${1:char-num}}\"\n      }\n    },\n    {\n      \"name\": \"yagding\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"yagding{${1:char-num}}[${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"yagding\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yagding[${2:symfam%keyvals}]{${1:char-num}}\",\n        \"keys\": [\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagding\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"yagding[${2:symfam%keyvals}]{${1:char-num}}[${3:color}]\",\n        \"keys\": [\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"defdingname{${1:char-num}}{${2:ding-name}}\"\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"defdingname{${1:char-num}}{${2:ding-name}}[${3:color}]\"\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"defdingname[${3:symfam%keyvals}]{${1:char-num}}{${2:ding-name}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"[]{}{}[]\",\n        \"snippet\": \"defdingname[${3:symfam%keyvals}]{${1:char-num}}{${2:ding-name}}[${4:color}]\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"[][]{}{}\",\n        \"snippet\": \"defdingname[${3:symfam%keyvals}][${4:defext}]{${1:char-num}}{${2:ding-name}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"defdingname\",\n      \"arg\": {\n        \"format\": \"[][]{}{}[]\",\n        \"snippet\": \"defdingname[${3:symfam%keyvals}][${4:defext}]{${1:char-num}}{${2:ding-name}}[${5:color}]\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagding*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagding*{${1:ding-name}}\"\n      }\n    },\n    {\n      \"name\": \"yagfill\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagfill{${1:char-num}}\"\n      }\n    },\n    {\n      \"name\": \"yagfill\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yagfill[${2:options%keyvals}]{${1:char-num}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagfill*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagfill*{${1:ding-name}}\"\n      }\n    },\n    {\n      \"name\": \"yagfill*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yagfill*[${2:options%keyvals}]{${1:ding-name}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setyagline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyagline{${1:head-value}}\"\n      }\n    },\n    {\n      \"name\": \"setyagline\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setyagline{${1:head-value}}[${2:tail-value}]\"\n      }\n    },\n    {\n      \"name\": \"yagline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagline{${1:char-num}}\"\n      }\n    },\n    {\n      \"name\": \"yagline\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yagline[${2:options%keyvals}]{${1:char-num}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagline*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yagline*{${1:ding-name}}\"\n      }\n    },\n    {\n      \"name\": \"yagline*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yagline*[${2:options%keyvals}]{${1:ding-name}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setyagitemize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyagitemize{${1:symfam1, number1, color1. symfam2, number2, color2. ...}}\"\n      }\n    },\n    {\n      \"name\": \"setyagitemize*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyagitemize*{${1:dingname1. dingname2. ...}}\"\n      }\n    },\n    {\n      \"name\": \"newenumpattern\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newenumpattern{${1:name}}{${2:keyvals}}\",\n        \"keys\": [\n          \"\\\\newenumpattern,\\\\begin{yagenumerate},\\\\setyagenumeratekeys\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"setyagenumeratekeys\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setyagenumeratekeys{${1:keyvals}}\",\n        \"keys\": [\n          \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\",\n          \"\\\\newenumpattern,\\\\begin{yagenumerate},\\\\setyagenumeratekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagnumber\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"yagnumber{${1:symfam}}{${2:counter}}{${3:color}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"yagitemize\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:char-num}}\"\n      }\n    },\n    {\n      \"name\": \"yagitemize\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"{${1:char-num}}[${2:color}]\"\n      }\n    },\n    {\n      \"name\": \"yagitemize\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"[${2:symfam%keyvals}]{${1:char-num}}\",\n        \"keys\": [\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagitemize\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"[${2:symfam%keyvals}]{${1:char-num}}[${3:color}]\",\n        \"keys\": [\n          \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yagitemize*\"\n    },\n    {\n      \"name\": \"yagitemize*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:ding-name}]\"\n      }\n    },\n    {\n      \"name\": \"yagenumerate\"\n    },\n    {\n      \"name\": \"yagenumerate\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:keyvals}]\",\n        \"keys\": [\n          \"\\\\newenumpattern,\\\\begin{yagenumerate},\\\\setyagenumeratekeys\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"notyagenum\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/yagusylo#c\": [\n      \"info=${1|mute,normal,verbose|}\",\n      \"onerror=${1|nice,tough|}\",\n      \"color\",\n      \"XcolorOptions={${1:xcolor options}}\",\n      \"configfile\"\n    ],\n    \"\\\\setyagusylokeys,\\\\defdingname,\\\\setyagenumeratekeys\": [\n      \"*\"\n    ],\n    \"\\\\setyagusylokeys,\\\\yagfill,\\\\yagfill*,\\\\yagfill+,\\\\yagline,\\\\yagline*,\\\\yagline+\": [\n      \"symfam=${1|marvosym,fourier,wasysym,bbding,dingbat,ark,ifsym,ifsymgeo,ifsymgeonarrow,ifsymgeowide,ifsymclock,ifsymweather,pifont|}\",\n      \"symcolor=\",\n      \"leadtype=${1|l,c,x|}\",\n      \"symplace=${1|c,r,l,a,n|}\",\n      \"sympos=${1:integer 0-1000}\",\n      \"boxwidth=\",\n      \"before=\",\n      \"after=\",\n      \"head=\",\n      \"tail=\"\n    ],\n    \"\\\\yagding,\\\\defdingname,\\\\begin{yagitemize}\": [\n      \"marvosym\",\n      \"fourier\",\n      \"wasysym\",\n      \"bbding\",\n      \"dingbat\",\n      \"ark\",\n      \"ifsym\",\n      \"ifsymgeo\",\n      \"ifsymgeonarrow\",\n      \"ifsymgeowide\",\n      \"ifsymclock\",\n      \"ifsymweather\",\n      \"pifont\"\n    ],\n    \"\\\\newenumpattern,\\\\begin{yagenumerate},\\\\setyagenumeratekeys\": [\n      \"symfam=${1|marvosym,fourier,wasysym,bbding,dingbat,ark,ifsym,ifsymgeo,ifsymgeonarrow,ifsymgeowide,ifsymclock,ifsymweather,pifont|}\",\n      \"symcolor=\",\n      \"firstitemnum=${1:integer 0-255}\",\n      \"enumlength=${1:integer}\",\n      \"enumpattern=${1:name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/yagusylo#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yamlvars.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"luacode\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"luakeys\"\n    },\n    {\n      \"name\": \"penlightplus\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yv\",\n      \"if\": \"useyv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yv{${1:var}}\"\n      }\n    },\n    {\n      \"name\": \"declareYAMLvarsFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"declareYAMLvarsFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"parseYAMLvarsFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parseYAMLvarsFile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"resetYAMLvarsspec\"\n    },\n    {\n      \"name\": \"AllowUndeclaredYV\"\n    },\n    {\n      \"name\": \"ForbidUndeclaredYV\"\n    },\n    {\n      \"name\": \"lowercasevarYVon\"\n    },\n    {\n      \"name\": \"lowercasevarYVoff\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"declareYAMLvars\"\n    },\n    {\n      \"name\": \"parseYAMLvars\"\n    },\n    {\n      \"name\": \"parseYAMLpdfdata\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/YAMLvars#c\": [\n      \"useyv\",\n      \"parseCLI\",\n      \"allowundeclared\",\n      \"overwritedefs\",\n      \"debug\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/YAMLvars#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yathesis.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"class-book\"\n    },\n    {\n      \"name\": \"adjustbox\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"babel\"\n    },\n    {\n      \"name\": \"biblatex\"\n    },\n    {\n      \"name\": \"bookmark\"\n    },\n    {\n      \"name\": \"colophon\"\n    },\n    {\n      \"name\": \"csquotes\"\n    },\n    {\n      \"name\": \"datatool\"\n    },\n    {\n      \"name\": \"datetime2\"\n    },\n    {\n      \"name\": \"draftwatermark\"\n    },\n    {\n      \"name\": \"environ\"\n    },\n    {\n      \"name\": \"epigraph\"\n    },\n    {\n      \"name\": \"etoc\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"fncychap\"\n    },\n    {\n      \"name\": \"geometry\"\n    },\n    {\n      \"name\": \"graphicx\"\n    },\n    {\n      \"name\": \"hypcap\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"iflang\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"letltxmacro\"\n    },\n    {\n      \"name\": \"marvosym\"\n    },\n    {\n      \"name\": \"morewrites\"\n    },\n    {\n      \"name\": \"nonumonpart\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"setspace\"\n    },\n    {\n      \"name\": \"tabularx\"\n    },\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"textcase\"\n    },\n    {\n      \"name\": \"titlesec\"\n    },\n    {\n      \"name\": \"tocbibind\"\n    },\n    {\n      \"name\": \"translator\"\n    },\n    {\n      \"name\": \"twoopt\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"xifthen\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"xpatch\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"tcolorboxlibraryskins\"\n    },\n    {\n      \"name\": \"titleps\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yadsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yadsetup{${1:⟨options⟩%keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"author{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"author\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"author[${3:⟨email⟩}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"title\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"title[${2:⟨titre dans la langue secondaire⟩%text}]{${1:⟨titre dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subtitle[${2:⟨sous-titre dans la langue secondaire⟩%text}]{${1:⟨sous-titre dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"academicfield\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"academicfield[${2:⟨discipline dans la langue secondaire⟩%text}]{${1:⟨discipline dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"speciality\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"speciality[${2:⟨spécialité dans la langue secondaire⟩%text}]{${1:⟨spécialité dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subject[${2:⟨sujet dans la langue secondaire⟩%text}]{${1:⟨sujet dans la langue principale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subtitle{${1:⟨sous-titre⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"academicfield\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"academicfield{${1:⟨discipline⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"speciality\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"speciality{${1:⟨spécialité⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"subject\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"subject{${1:⟨sujet⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"date\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"date{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n      }\n    },\n    {\n      \"name\": \"submissiondate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"submissiondate{${1:⟨jour⟩}}{${2:⟨mois⟩}}{${3:⟨année⟩}}\"\n      }\n    },\n    {\n      \"name\": \"pres\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pres{${1:⟨nom du PRES⟩}}\"\n      }\n    },\n    {\n      \"name\": \"comue\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comue{${1:⟨nom de la ComUE⟩}}\"\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"institute{${1:⟨nom de l'institut⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"coinstitute\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"coinstitute{${1:⟨nom de l'institut de cotutelle⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"company{${1:⟨nom de l'entreprise⟩}}\"\n      }\n    },\n    {\n      \"name\": \"doctoralschool\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"doctoralschool{${1:⟨nom de l'école doctorale⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"laboratory\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"laboratory{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\"\n      }\n    },\n    {\n      \"name\": \"pres\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"pres[${2:⟨précisions⟩%keyvals}]{${1:⟨nom du PRES⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comue\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"comue[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de la ComUE⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"institute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"institute[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'institut⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"coinstitute\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"coinstitute[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'institut de cotutelle⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"company\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"company[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'entreprise⟩}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"doctoralschool\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"doctoralschool[${2:⟨précisions⟩%keyvals}]{${1:⟨nom de l'école doctorale⟩%text}}\",\n        \"keys\": [\n          \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"laboratory\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"laboratory[${3:⟨précisions⟩%keyvals}]{${1:⟨nom du laboratoire⟩}}{${2:⟨adresse du laboratoire⟩}}\",\n        \"keys\": [\n          \"\\\\laboratory\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"supervisor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"cosupervisor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"comonitor\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"comonitor[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"referee[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"examiner[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"committeepresident\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"committeepresident[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"guest\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"guest[${3:⟨précisions⟩%keyvals}]{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\",\n        \"keys\": [\n          \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"supervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"supervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"cosupervisor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"cosupervisor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"comonitor\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"comonitor{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"referee\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"referee{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"examiner\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"examiner{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"committeepresident\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"committeepresident{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"guest\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"guest{${1:⟨prénom⟩}}{${2:⟨nom⟩}}\"\n      }\n    },\n    {\n      \"name\": \"ordernumber\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"ordernumber[${1:⟨numéro d'ordre⟩}]\"\n      }\n    },\n    {\n      \"name\": \"ordernumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keywords\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"keywords{${1:⟨mots clés dans la langue principale⟩%text}}{${2:⟨mots clés dans la langue secondaire⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"maketitle\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"maketitle[${1:⟨options⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\maketitle\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"colophontext\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"colophontext{${1:⟨texte⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"disclaimertext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"disclaimertext{${1:⟨clause⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"makedisclaimer\"\n    },\n    {\n      \"name\": \"makedisclaimer*\"\n    },\n    {\n      \"name\": \"makekeywords\"\n    },\n    {\n      \"name\": \"makekeywords*\"\n    },\n    {\n      \"name\": \"makelaboratory\"\n    },\n    {\n      \"name\": \"makelaboratory*\"\n    },\n    {\n      \"name\": \"dedication\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"dedication{${1:⟨dédicace⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"makededications\"\n    },\n    {\n      \"name\": \"makededications*\"\n    },\n    {\n      \"name\": \"frontepigraph\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"frontepigraph{${1:⟨épigraphe⟩%text}}{${2:⟨auteur⟩}}\"\n      }\n    },\n    {\n      \"name\": \"frontepigraph\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"frontepigraph[${3:⟨langue⟩}]{${1:⟨épigraphe⟩%text}}{${2:⟨auteur⟩}}\"\n      }\n    },\n    {\n      \"name\": \"makefrontepigraphs\"\n    },\n    {\n      \"name\": \"makefrontepigraphs*\"\n    },\n    {\n      \"name\": \"makeabstract\"\n    },\n    {\n      \"name\": \"newglssymbol\",\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"newglssymbol{${1:⟨label⟩%labeldef}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"newglssymbol\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"newglssymbol[${5:⟨classement⟩}]{${1:⟨label⟩%labeldef}}{${2:⟨symbole⟩}}{${3:⟨nom⟩}}{${4:⟨description⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"tableofcontents\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"tableofcontents[${1:⟨précisions⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\tableofcontents\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"chapter*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"chapter*[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"section*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"section*\",\n      \"arg\": {\n        \"format\": \"[][]{}\",\n        \"snippet\": \"section*[${2:⟨titre alt. pour TdM⟩%short title}][${3:⟨titre alt. pour entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"subsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsection*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"subsubsection*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"subsubsection*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"paragraph*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"paragraph*[${2:⟨titre alt. pour TdM et entête⟩%short title}]{${1:⟨titre⟩%title}}\"\n      }\n    },\n    {\n      \"name\": \"makebackcover\"\n    },\n    {\n      \"name\": \"startlocaltocs\"\n    },\n    {\n      \"name\": \"stoplocaltocs\"\n    },\n    {\n      \"name\": \"nextwithlocaltoc\"\n    },\n    {\n      \"name\": \"nextwithoutlocaltoc\"\n    },\n    {\n      \"name\": \"leadchapter\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"leadchapter{${1:⟨texte⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"printsymbols\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"printsymbols[${1:⟨options⟩%keyvals}]\",\n        \"keys\": [\n          \"\\\\printsymbols\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"expression\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"expression{${1:⟨label⟩%labeldef}}{${2:⟨valeur en français⟩%text}}{${3:⟨valeur en anglais⟩%text}}\"\n      }\n    },\n    {\n      \"name\": \"frenchsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frenchsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\frenchsetup,\\\\frenchbsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"AddThinSpaceBeforeFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"alsoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"at\"\n    },\n    {\n      \"name\": \"bibname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"boi\"\n    },\n    {\n      \"name\": \"bname\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bname{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"bsc\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bsc{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CaptionSeparator\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"captionsfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ccname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"chaptername\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"circonflexe\"\n    },\n    {\n      \"name\": \"dateacadian\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"datefrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DecimalMathComma\"\n    },\n    {\n      \"name\": \"degre\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"degres\"\n    },\n    {\n      \"name\": \"descindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"dotFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"enclname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBcolonspace\"\n    },\n    {\n      \"name\": \"FBdatebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBdatespace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBeverylineguill\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfigtabshape\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBfnindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotesfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchFootnotestrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBFrenchSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBGlobalLayoutFrenchtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBgspchar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBguillspace\"\n    },\n    {\n      \"name\": \"FBInnerGuillSinglefalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBInnerGuillSingletrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsParfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBListItemsAsPartrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBLowercaseSuperscriptstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBmedkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBPartNameFulltrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}{}\",\n        \"snippet\": \"FBsetspaces[${5:language}]{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBsetspaces\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}{}\",\n        \"snippet\": \"FBsetspaces{${1:type}}{${2:width}}{${3:stretch}}{${4:shrink}}\"\n      }\n    },\n    {\n      \"name\": \"FBSmallCapsFigTabCaptionstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardEnumerateEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemizeEnvtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardItemLabelstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardLayouttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListSpacingtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBStandardListstrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupR\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBsupS\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBtextellipsis\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthickkern\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBthinspace\"\n    },\n    {\n      \"name\": \"FBthousandsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FBWarning\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FBWarning{${1:message%text}}\"\n      }\n    },\n    {\n      \"name\": \"fg\"\n    },\n    {\n      \"name\": \"fgi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fgii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fprimo)\"\n    },\n    {\n      \"name\": \"frenchdate\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"frenchdate{${1:day}}{${2:month}}{${3:year}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"FrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchLabelItem\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frenchpartsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"FrenchPopularEnumerate\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"FrenchPopularEnumerate{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"frenchtoday\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Frlabelitemiv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"frquote\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frquote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"glossaryname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"headtoname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ieme\"\n    },\n    {\n      \"name\": \"iemes\"\n    },\n    {\n      \"name\": \"ier\"\n    },\n    {\n      \"name\": \"iere\"\n    },\n    {\n      \"name\": \"ieres\"\n    },\n    {\n      \"name\": \"iers\"\n    },\n    {\n      \"name\": \"ifFBAutoSpaceFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCompactItemize\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBCustomiseFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBFrenchSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBGlobalLayoutFrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBIndentFirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBINGuillSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListItemsAsPar\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBListOldLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLowercaseSuperscripts\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBLuaTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOldFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBOriginalTypewriter\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBPartNameFull\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBReduceListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBShowOptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSmallCapsFigTabCaptions\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardEnumerateEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemizeEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardItemLabels\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLayout\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardLists\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBStandardListSpacing\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBSuppressWarning\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinColonSpace\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBThinSpaceInFrenchNumbers\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBunicode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifFBXeTeX\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifLaTeXe\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"kernFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"labelwidthFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"leftmarginFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listfigurename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"listindentFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"No\"\n    },\n    {\n      \"name\": \"no\"\n    },\n    {\n      \"name\": \"NoAutoSpaceBeforeFDP\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"NoAutoSpacing\"\n    },\n    {\n      \"name\": \"NoEveryParQuote\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"noextrasfrench\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nombre\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"nombre{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"nos\"\n    },\n    {\n      \"name\": \"Nos\"\n    },\n    {\n      \"name\": \"og\"\n    },\n    {\n      \"name\": \"ogi\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ogii\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"parindentFFN\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partfirst\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partnameord\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"partsecond\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"prefacename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"primo\"\n    },\n    {\n      \"name\": \"proofname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"quarto\"\n    },\n    {\n      \"name\": \"rmfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"secundo\"\n    },\n    {\n      \"name\": \"seename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sffamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardFootnotes\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"StandardMathComma\"\n    },\n    {\n      \"name\": \"tertio\"\n    },\n    {\n      \"name\": \"tild\"\n    },\n    {\n      \"name\": \"ttfamilyFB\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"up\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"up{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"abstract\"\n    },\n    {\n      \"name\": \"abstract\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:⟨titre alternatif⟩%text}]\"\n      }\n    },\n    {\n      \"name\": \"descriptionFB\"\n    },\n    {\n      \"name\": \"enumerateFB\"\n    },\n    {\n      \"name\": \"itemizeFB\"\n    },\n    {\n      \"name\": \"listFB\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    },\n    {\n      \"name\": \"listORI\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:symbol}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\documentclass/yathesis\": [\n      \"mainlanguage=${1|french,english|}\",\n      \"secnumdepth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"space=${1|single,onehalf,double|}\",\n      \"chap-style=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n      \"fncychap=${1|Sonny,Lenny,Glenn,Conny,Rejne,Bjarne,PetersLenny,Bjornstrup,none|}\",\n      \"nofrontcover\",\n      \"sepcorpaffilfrench=\",\n      \"sepcorpaffilenglish=\",\n      \"version=${1|inprogress,inprogress*,submitted,submitted*,final,draft|}\",\n      \"output=${1|screen,paper,paper*|}\",\n      \"colophon-location=${1|verso-frontcover,recto-backcover,nowhere|}\",\n      \"hdr\",\n      \"numlaboratories=${1:⟨nombre de laboratoires affichés⟩}\",\n      \"localtocs\",\n      \"localtocs/depth=${1|section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"localbibs\",\n      \"localbibs*\",\n      \"10pt\",\n      \"11pt\",\n      \"12pt\",\n      \"leqno\",\n      \"fleqn\",\n      \"oneside\",\n      \"noerror\",\n      \"noauthor\",\n      \"notitle\",\n      \"noacademicfield\",\n      \"nodate\",\n      \"noinstitute\",\n      \"nodoctoralschool\",\n      \"nolaboratory\",\n      \"nolaboratoryaddress\",\n      \"nosupervisor\",\n      \"nomaketitle\",\n      \"nokeywords\",\n      \"noabstract\",\n      \"nomakeabstract\",\n      \"notableofcontents\",\n      \"noprintbibliography\",\n      \"graphicx={${1:⟨options du package graphicx⟩}}\",\n      \"adjustbox={${1:⟨options du package adjustbox⟩}}\",\n      \"setspace={${1:⟨options du package setspace⟩}}\",\n      \"xcolor={${1:⟨options du package xcolor⟩}}\",\n      \"datatool={${1:⟨options du package datatool⟩}}\",\n      \"titlesec={${1:⟨options du package titlesec⟩}}\",\n      \"draftwatermark={${1:⟨options du package draftwatermark⟩}}\",\n      \"babel={${1:⟨options du package babel⟩}}\",\n      \"datetime2={${1:⟨options du package datetime2⟩}}\",\n      \"corps=${1:⟨corporation⟩}\",\n      \"role=${1:⟨role⟩}\"\n    ],\n    \"\\\\pres,\\\\comue,\\\\doctoralschool,\\\\institute,\\\\coinstitute,\\\\company\": [\n      \"logo=${1:⟨fichier image⟩}\",\n      \"logoheight=${1:⟨hauteur⟩}\",\n      \"url=${1:⟨URL⟩}\",\n      \"nologo\"\n    ],\n    \"\\\\laboratory\": [\n      \"logo=${1:⟨fichier image⟩}\",\n      \"logoheight=${1:⟨hauteur⟩}\",\n      \"url=${1:⟨URL⟩}\",\n      \"telephone=${1:⟨numéro de téléphone⟩}\",\n      \"fax=${1:⟨numéro de fax⟩}\",\n      \"email=${1:⟨courriel⟩}\",\n      \"nonamelink\"\n    ],\n    \"\\\\supervisor,\\\\cosupervisor,\\\\comonitor,\\\\referee,\\\\examiner,\\\\committeepresident,\\\\guest\": [\n      \"affiliation=${1:⟨affiliation⟩}\",\n      \"professor\",\n      \"seniorresearcher\",\n      \"mcf\",\n      \"mcf*\",\n      \"associateprofessor\",\n      \"associateprofessor*\",\n      \"juniorresearcher\",\n      \"juniorresearcher*\",\n      \"male\",\n      \"female\"\n    ],\n    \"\\\\maketitle\": [\n      \"nofrontcover\",\n      \"noaim\",\n      \"frametitle=${1|shadowbox,ovalbox,none,fbox,{⟨autre⟩}|}\"\n    ],\n    \"\\\\tableofcontents\": [\n      \"depth=${1|part,chapter,section,subsection,subsubsection,paragraph,subparagraph|}\",\n      \"name=${1:⟨nom de la table des matières⟩}\"\n    ],\n    \"\\\\printsymbols\": [\n      \"style=${1|yadsymbolstyle,⟨autre⟩|}\"\n    ],\n    \"\\\\frenchsetup,\\\\frenchbsetup\": [\n      \"ShowOptions\",\n      \"StandardLayout\",\n      \"GlobalLayoutFrench\",\n      \"IndentFirst\",\n      \"PartNameFull\",\n      \"ListItemsAsPar\",\n      \"StandardListSpacing\",\n      \"StandardItemizeEnv\",\n      \"StandardEnumerateEnv\",\n      \"StandardItemLabels\",\n      \"ItemLabels=\",\n      \"ItemLabeli=\",\n      \"ItemLabelii=\",\n      \"ItemLabeliii=\",\n      \"ItemLabeliv=\",\n      \"StandardLists\",\n      \"ListOldLayout\",\n      \"FrenchFootnotes\",\n      \"AutoSpaceFootnotes\",\n      \"AutoSpacePunctuation\",\n      \"ThinColonSpace\",\n      \"OriginalTypewriter\",\n      \"UnicodeNoBreakSpaces\",\n      \"og=\",\n      \"fg=\",\n      \"INGuillSpace\",\n      \"EveryParGuill=${1|open,close,none|}\",\n      \"EveryLineGuill=${1|open,close,none|}\",\n      \"InnerGuillSingle\",\n      \"ThinSpaceInFrenchNumbers\",\n      \"SmallCapsFigTabCaptions\",\n      \"CustomiseFigTabCaptions\",\n      \"OldFigTabCaptions\",\n      \"FrenchSuperscripts\",\n      \"LowercaseSuperscripts\",\n      \"SuppressWarning\"\n    ]\n  },\n  \"args\": [\n    \"\\\\documentclass/yathesis\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yax.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"texapi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"yaxversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setparameterlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setparameterlist{${1:parameters}}{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"setparameterlist\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setparameterlist{${1:parameters}}[${3:optional macro}]{${2:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"endval\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ydoc-code.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"ydocwrite\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydocfname\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"newlinemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"spacemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bslashmacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastlinemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"firstlinemacro\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"thelinenumber\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"linenumberbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintMacroCode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"themacrocode\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydoclistingssettings\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintMacroImpl\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMacroImpl{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMacroImplName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMacroImplName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEnvImplName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintEnvImplName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"PrintStyleImplName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintStyleImplName{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"implstyle\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"macrocode\"\n    },\n    {\n      \"name\": \"macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"environment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"style\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:stylename}}\"\n      }\n    },\n    {\n      \"name\": \"key\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"{${1:keyname}}{${2:value}}\"\n      }\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ydoc-desc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"needspace\"\n    },\n    {\n      \"name\": \"shortvrb\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"hyperref\"\n    },\n    {\n      \"name\": \"xspace\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"meta\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"meta{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"marg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"marg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"oarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"oarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"parg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"parg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"aarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"aarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"sarg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"sarg{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"pkg\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkg{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"cls\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cls{${1:class}}\"\n      }\n    },\n    {\n      \"name\": \"lib\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lib{${1:library}}\"\n      }\n    },\n    {\n      \"name\": \"env\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"env{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"opt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"opt{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"optpar\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optpar{${1:option}}\"\n      }\n    },\n    {\n      \"name\": \"file\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"file{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"pkgstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"clsstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clsstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"libstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"libstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"envstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"envstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"optstyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"optstyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"filestyle\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"filestyle{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"cs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cs{${1:csname}}\"\n      }\n    },\n    {\n      \"name\": \"cmd\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"cmd{${1:cmd}}\"\n      }\n    },\n    {\n      \"name\": \"Key\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Key{${1:keyname}}\"\n      }\n    },\n    {\n      \"name\": \"macrodescstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"keydescstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"macroargsstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"envcodestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"verbstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"metastyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"margstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Optional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optional\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionalstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionalon\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"optionaloff\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"oargstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pargstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"aargstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"sargstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descindent\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"beforedescskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"afterdescskip\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"descsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"AlsoMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"AlsoMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeMacro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeScript\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeScript{${1:script}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeKey\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeKey{${1:keyname}}\"\n      }\n    },\n    {\n      \"name\": \"MakeShortMacroArgs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MakeShortMacroArgs{${1:\\\\char}}\"\n      }\n    },\n    {\n      \"name\": \"DeleteShortMacroArgs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DeleteShortMacroArgs{${1:\\\\char}}\"\n      }\n    },\n    {\n      \"name\": \"Macro\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Macro{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"MacroArgs\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"MacroArgs{${1:args}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeMacrosTabcolsep\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"DescribeLength\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"DescribeLength{${1:length macro}}{${2:default value}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DescribeEnv{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"descbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintMacroName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintMacroName{${1:macro}}\"\n      }\n    },\n    {\n      \"name\": \"PrintKeyName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintKeyName{${1:keyname}}\"\n      }\n    },\n    {\n      \"name\": \"PrintLengthName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"PrintLengthName{${1:length macro}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEnvName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrintEnvName{${1:\\\\begin}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PrintEnvName\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"PrintEnvName{${1:\\\\end}}{${2:envname}}\"\n      }\n    },\n    {\n      \"name\": \"PrintMacros\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintLength\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"PrintSubEnv\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"bslash\"\n    },\n    {\n      \"name\": \"percent\",\n      \"detail\": \"%\",\n      \"doc\": \"Percent sign\"\n    },\n    {\n      \"name\": \"braceleft\"\n    },\n    {\n      \"name\": \"braceright\"\n    },\n    {\n      \"name\": \"codeline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"codeline{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"codelinebefore\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"codelineafter\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"DescribeMacros\"\n    },\n    {\n      \"name\": \"DescribeKeys\"\n    },\n    {\n      \"name\": \"DescribeMacrosTab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:cols}}\"\n      }\n    },\n    {\n      \"name\": \"DescribeEnv\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"codequote\"\n    },\n    {\n      \"name\": \"macroquote\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ydoc-doc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"shortvrb\"\n    },\n    {\n      \"name\": \"url\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"CheckSum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CheckSum{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"AlsoImplementation\"\n    },\n    {\n      \"name\": \"OnlyDescription\"\n    },\n    {\n      \"name\": \"StopEventually\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"StopEventually{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"Finale\"\n    },\n    {\n      \"name\": \"MakePercentComment\"\n    },\n    {\n      \"name\": \"MakePercentIgnore\"\n    },\n    {\n      \"name\": \"DocInput\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DocInput{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"CharacterTable\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CharacterTable{${1:contents}}\"\n      }\n    },\n    {\n      \"name\": \"CharTableChanges\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"GetFileInfo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"GetFileInfo{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"package\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"package{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"bundle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bundle{${1:name}}\"\n      }\n    },\n    {\n      \"name\": \"ctanlocation\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ctanlocation{${1:path}}\"\n      }\n    },\n    {\n      \"name\": \"repository\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"repository{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"homepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"homepage{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"email\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"email{${1:address%URL}}\"\n      }\n    },\n    {\n      \"name\": \"github\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"github{${1:URL}}\"\n      }\n    },\n    {\n      \"name\": \"pkgtitle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"pkgtitle{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ydoc-expl.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"float\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"examplecodebox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"exampleresultbox\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"BoxExample\"\n    },\n    {\n      \"name\": \"PrintExample\"\n    },\n    {\n      \"name\": \"examplename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ydocinclversion\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"subFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"outFile\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifContinue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"makeOther\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"makeOther{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"inLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lastLine\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"includefiles\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"includefiles{${1:in file%file}}{${2:out file}}\"\n      }\n    },\n    {\n      \"name\": \"copyline\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"percentcharnum\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"examplecode\"\n    },\n    {\n      \"name\": \"exampletable\"\n    },\n    {\n      \"name\": \"example\"\n    }\n  ],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/ydoc.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ydoc-code\"\n    },\n    {\n      \"name\": \"ydoc-expl\"\n    },\n    {\n      \"name\": \"ydoc-desc\"\n    },\n    {\n      \"name\": \"ydoc-doc\"\n    },\n    {\n      \"name\": \"newverbs\"\n    },\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"fourier\"\n    },\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"array\"\n    },\n    {\n      \"name\": \"booktabs\"\n    },\n    {\n      \"name\": \"multicol\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"listings\"\n    },\n    {\n      \"name\": \"hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/yfonts-otf.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"frakfamily\"\n    },\n    {\n      \"name\": \"gothfamily\"\n    },\n    {\n      \"name\": \"swabfamily\"\n    },\n    {\n      \"name\": \"textgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"Jvar\"\n    },\n    {\n      \"name\": \"longs\"\n    },\n    {\n      \"name\": \"shorts\"\n    },\n    {\n      \"name\": \"ZWNJ\"\n    },\n    {\n      \"name\": \"ZWS\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/oldgerm-otf#c\": [\n      \"oldumlaut\",\n      \"varumlaut\",\n      \"gothvarlongs\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/oldgerm-otf#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yfonts.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"gothfamily\"\n    },\n    {\n      \"name\": \"swabfamily\"\n    },\n    {\n      \"name\": \"frakfamily\"\n    },\n    {\n      \"name\": \"initfamily\"\n    },\n    {\n      \"name\": \"textgoth\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textgoth{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textswab\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textswab{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrak\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textfrak{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinit{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"frakdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"gothdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"swabdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"initdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"etc\"\n    },\n    {\n      \"name\": \"fraklines\"\n    },\n    {\n      \"name\": \"yinipar\"\n    },\n    {\n      \"name\": \"yinitpar\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/yfonts#c\": [\n      \"varumlaut\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/yfonts#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yhmath.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ring{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"adots\",\n      \"detail\": \"⋰ (\\\"mathdots\\\" command)\",\n      \"doc\": \"\\\\adots (yhmath), three dots, ascending\"\n    },\n    {\n      \"name\": \"wideparen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"wideparen{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widetriangle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widetriangle{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"widering\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"widering{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"amatrix\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/yhmath#c\": [\n      \"minimal\",\n      \"full\",\n      \"nowidering\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/yhmath#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/youngtab.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"Yvcentermath\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yvcentermath{0|1}\"\n      }\n    },\n    {\n      \"name\": \"Yautoscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yautoscale{0|1}\"\n      }\n    },\n    {\n      \"name\": \"Yboxdim\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yboxdim{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Ylinethick\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ylinethick{${1:dimen}}\"\n      }\n    },\n    {\n      \"name\": \"Yinterspace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Yinterspace{${1:skip}}\"\n      }\n    },\n    {\n      \"name\": \"yng\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"yng(${1:r1},${2:r2},${3:...})\"\n      }\n    },\n    {\n      \"name\": \"young\",\n      \"arg\": {\n        \"format\": \"()\",\n        \"snippet\": \"young(${1:r11r12...},${2:r21r22...},${3:...%formula})\"\n      }\n    },\n    {\n      \"name\": \"Ystdtext\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ystdtext{0|1}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/youngtab#c\": [\n      \"noautoscale\",\n      \"vcentermath\",\n      \"stdtext\",\n      \"enableskew\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/youngtab#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/yquant.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"trimspaces\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathreplacing\"\n    },\n    {\n      \"name\": \"tikzlibrarydecorations.pathmorphing\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"useyquantlanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"useyquantlanguage{${1:language%keyvals}}\",\n        \"keys\": [\n          \"\\\\useyquantlanguage#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"clippathhorz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clippathhorz{${1:path code}}\"\n      }\n    },\n    {\n      \"name\": \"clippathvert\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clippathvert{${1:path code}}\"\n      }\n    },\n    {\n      \"name\": \"clippath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"clippath{${1:path code}}\"\n      }\n    },\n    {\n      \"name\": \"inheritclippath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"inheritclippath[${1:from=shape}]\"\n      }\n    },\n    {\n      \"name\": \"pgfshapeclippath\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"pgfshapeclippath{${1:shape}}{${2:options}}\"\n      }\n    },\n    {\n      \"name\": \"pgfreferencednodename\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeclippathresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeclippathhorzresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"pgfshapeclippathvertresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifhorz\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifhorz{${1:true}}{${2:false}}\"\n      }\n    },\n    {\n      \"name\": \"pgfdecorationsegmentfromto\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifyquanthorz\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ifyquanthorz{${1:if horz}}{${2:if vert}}\"\n      }\n    },\n    {\n      \"name\": \"len\"\n    },\n    {\n      \"name\": \"reg\"\n    },\n    {\n      \"name\": \"idx\"\n    },\n    {\n      \"name\": \"regidx\"\n    },\n    {\n      \"name\": \"ifinmulti\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifallowmain\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"registers\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"registers{${1:registers}}\"\n      }\n    },\n    {\n      \"name\": \"ifyquantmeasuring\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yquantmeasuringtrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yquantmeasuringfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yquantset\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantset{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\",\n          \"\\\\yquantset#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\",\n          \"\\\\yquantset#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yquantsecondpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantsecondpass{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"yquantesecondpass\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantesecondpass{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"yquantescape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantescape{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"yquanteescape\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquanteescape{${1:code}}\"\n      }\n    },\n    {\n      \"name\": \"yquantimportcommand\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantimportcommand{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"yquantimportpath\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yquantimport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantimport{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"yquantimport\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yquantimport[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yquantimport*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"yquantimport*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"yquantimport*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"yquantimport*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"ifvalid\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wirexpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wirexprevpos\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wiretype\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wirelast\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"Ifnum\"\n    },\n    {\n      \"name\": \"Ifcase\"\n    },\n    {\n      \"name\": \"Or\"\n    },\n    {\n      \"name\": \"Else\"\n    },\n    {\n      \"name\": \"Fi\"\n    },\n    {\n      \"name\": \"Unless\"\n    },\n    {\n      \"name\": \"The\"\n    },\n    {\n      \"name\": \"nonaffectedpgfshapeclippathhorzresult\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wirestyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"wireclipping\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"yquantdefinegate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantdefinegate{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantdefinegate\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantdefinegate{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinegate\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantredefinegate{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinegate\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantredefinegate{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantdefinebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantdefinebox{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantdefinebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantdefinebox{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantdefinemultibox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantdefinemultibox{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantdefinemultibox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantdefinemultibox{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinebox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantredefinebox{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinebox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantredefinebox{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinemultibox\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"yquantredefinemultibox{${1:name}}{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"yquantredefinemultibox\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"yquantredefinemultibox{${1:name}}[${3:style}]{${2:content}}\"\n      }\n    },\n    {\n      \"name\": \"circuit\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"circuit{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"circuit\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"circuit[${2:style}]{${1:content}}\"\n      }\n    },\n    {\n      \"name\": \"equals\"\n    },\n    {\n      \"name\": \"equals\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"equals[${1:content}]\"\n      }\n    },\n    {\n      \"name\": \"equals*\"\n    },\n    {\n      \"name\": \"equals*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"equals*[${1:content}]\"\n      }\n    },\n    {\n      \"name\": \"shiftright\"\n    },\n    {\n      \"name\": \"shiftright\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shiftright[${1:where}]\"\n      }\n    },\n    {\n      \"name\": \"shiftright*\"\n    },\n    {\n      \"name\": \"shiftright*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"shiftright*[${1:where}]\"\n      }\n    },\n    {\n      \"name\": \"m\"\n    },\n    {\n      \"name\": \"txt\"\n    },\n    {\n      \"name\": \"meter\"\n    },\n    {\n      \"name\": \"dmeter\"\n    },\n    {\n      \"name\": \"dmeterwide\"\n    },\n    {\n      \"name\": \"qasmimport\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qasmimport{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"qasmname\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"qasmname{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"yquant\"\n    },\n    {\n      \"name\": \"yquant\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yquant*\"\n    },\n    {\n      \"name\": \"yquant*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yquantgroup\"\n    },\n    {\n      \"name\": \"yquantgroup\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\yquantset#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\",\n          \"\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"yquantgroup*\"\n    },\n    {\n      \"name\": \"yquantgroup*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\yquantset#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\",\n          \"\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"qasm\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/yquant#c\": [\n      \"compat=${1|newest,0.3,0.4,0.6|}\"\n    ],\n    \"\\\\useyquantlanguage#c\": [\n      \"groups\",\n      \"qasm\"\n    ],\n    \"\\\\begin{yquant}#c,\\\\begin{yquant*}#c,\\\\yquantset#c,\\\\yquantimport#c,\\\\yquantimport*#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\": [\n      \"register/minimum height=\",\n      \"register/minimum depth=\",\n      \"register/minimum left=\",\n      \"register/minimum right=\",\n      \"register/minimum before=\",\n      \"register/minimum after=\",\n      \"register/separation=\",\n      \"operator/minimum width=\",\n      \"operator/minimum extent=\",\n      \"operator/separation=\",\n      \"operator/multi warning\",\n      \"drawing mode=${1|quality,size|}\",\n      \"default background\",\n      \"default fill\",\n      \"register/default name=${1:name}\",\n      \"register/default lazy name=${1:name}\",\n      \"every label/.style={${1:TikZ keys}}\",\n      \"every label/.append style={${1:TikZ keys}}\",\n      \"every initial label/.style={${1:TikZ keys}}\",\n      \"every qubit label/.style={${1:TikZ keys}}\",\n      \"every cbit label/.style={${1:TikZ keys}}\",\n      \"every qubits label/.style={${1:TikZ keys}}\",\n      \"every multi label/.style={${1:TikZ keys}}\",\n      \"every input label/.style={${1:TikZ keys}}\",\n      \"every output/.append style={${1:TikZ keys}}\",\n      \"every qubit output/.append style={${1:TikZ keys}}\",\n      \"every cbit output/.append style={${1:TikZ keys}}\",\n      \"every qubits output/.append style={${1:TikZ keys}}\",\n      \"every multi output/.append style={${1:TikZ keys}}\",\n      \"every circuit/.style={${1:TikZ keys}}\",\n      \"every wire/.style={${1:TikZ keys}}\",\n      \"every qubit wire/.style={${1:TikZ keys}}\",\n      \"every cbit wire /.style={${1:TikZ keys}}\",\n      \"every qubits wire/.style={${1:TikZ keys}}\",\n      \"every control line/.style={${1:TikZ keys}}\",\n      \"every control/.append style={${1:TikZ keys}}\",\n      \"every positive control/.append style={${1:TikZ keys}}\",\n      \"every negative control/.append style={${1:TikZ keys}}\",\n      \"every operator/.prefix style={${1:TikZ keys}}\",\n      \"every multi line/.style={${1:TikZ keys}}\",\n      \"this operator/.style={${1:TikZ keys}}\",\n      \"this control/.style={${1:TikZ keys}}\",\n      \"operator style={${1:TikZ keys}}\",\n      \"control style={${1:TikZ keys}}\",\n      \"style={${1:TikZ keys}}\",\n      \"operator/multi as single/.style={${1:TikZ keys}}\",\n      \"operator/if multi={${1:TikZ keys}}\",\n      \"circuit/seamless\",\n      \"circuit/orientation=${1|horizontal,vertical|}\",\n      \"horizontal\",\n      \"vertical\",\n      \"vertical=${1:degrees}\",\n      \"every post measurement control=${1|indirect,direct|}\",\n      \"operators/every barrier/.style={${1:TikZ keys}}\",\n      \"operators/every barrier/.append style={${1:TikZ keys}}\",\n      \"operators/every box/.append style={${1:TikZ keys}}\",\n      \"operators/every custom gate/.append style={${1:TikZ keys}}\",\n      \"operators/every dmeter/.append style={${1:TikZ keys}}\",\n      \"operators/every h/.append style={${1:TikZ keys}}\",\n      \"operators/every inspect/.append style={${1:TikZ keys}}\",\n      \"operators/every iswap/.style={${1:TikZ keys}}\",\n      \"operators/every measure/.append style={${1:TikZ keys}}\",\n      \"operators/every measure meter/.append style={${1:TikZ keys}}\",\n      \"operators/every not/.append style={${1:TikZ keys}}\",\n      \"operators/every pauli/.append style={${1:TikZ keys}}\",\n      \"operators/every phase/.append style={${1:TikZ keys}}\",\n      \"operators/every rectangular box/.append style={${1:TikZ keys}}\",\n      \"operators/every slash/.append style={${1:TikZ keys}}\",\n      \"operators/every subcircuit/.append style={${1:TikZ keys}}\",\n      \"operators/every subcircuit box/.append style={${1:TikZ keys}}\",\n      \"subcircuit box style={${1:TikZ keys}}\",\n      \"operators/this subcircuit box\",\n      \"this subcircuit box style={${1:TikZ keys}}\",\n      \"operators/subcircuit/frameless\",\n      \"operators/subcircuit/name mangling=${1|prefix or discard,prefix or transparent,transparent,discard|}\",\n      \"operators/subcircuit/name mangling reset\",\n      \"operators/subcircuit/seamless\",\n      \"operators/every swap/.style={${1:TikZ keys}}\",\n      \"operators/every text/.style={${1:TikZ keys}}\",\n      \"operators/every wave/.style={${1:TikZ keys}}\",\n      \"operators/every x/.style={${1:TikZ keys}}\",\n      \"operators/every xx/.style={${1:TikZ keys}}\",\n      \"operators/every y/.style={${1:TikZ keys}}\",\n      \"operators/every z/.style={${1:TikZ keys}}\",\n      \"operators/every zz/.style={${1:TikZ keys}}\",\n      \"every nobit output/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\yquantset#c,\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\": [\n      \"group/every group/.style={${1:TikZ keys}}\",\n      \"group/line separation=\",\n      \"group/aligned\",\n      \"operators/every group circuit/.style={${1:TikZ keys}}\",\n      \"operators/every group equals/.style={${1:TikZ keys}}\"\n    ],\n    \"\\\\begin{yquantgroup}#c,\\\\begin{yquantgroup*}#c\": [\n      \"preamble={${1:TikZ keys}}\"\n    ],\n    \"\\\\yquantset#c\": [\n      \"operators/every s/.style={${1:TikZ keys}}\",\n      \"operators/every t/.style={${1:TikZ keys}}\",\n      \"operators/every utwo/.style={${1:TikZ keys}}\",\n      \"zero=${1:code}\",\n      \"register/default qubit name=${1:code}\",\n      \"register/default qubit name value=${1:code}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/yquant#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ysabeau.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"fontenc\"\n    },\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xstring\"\n    },\n    {\n      \"name\": \"ifthen\"\n    },\n    {\n      \"name\": \"scalefnt\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"fontaxes\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"black\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"black{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"blackfont\"\n    },\n    {\n      \"name\": \"bold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"bold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"boldfont\"\n    },\n    {\n      \"name\": \"defigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"denfigures\"\n    },\n    {\n      \"name\": \"denstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"extrabold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extrabold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extraboldfont\"\n    },\n    {\n      \"name\": \"extralight\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"extralight{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"extralightfont\"\n    },\n    {\n      \"name\": \"hairline\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"hairline{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"hairlinefont\"\n    },\n    {\n      \"name\": \"inffigures\"\n    },\n    {\n      \"name\": \"infigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"infstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"lfstyle\"\n    },\n    {\n      \"name\": \"light\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"light{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lightfont\"\n    },\n    {\n      \"name\": \"mediumfont\"\n    },\n    {\n      \"name\": \"nufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"numfigures\"\n    },\n    {\n      \"name\": \"numstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"onehalf\"\n    },\n    {\n      \"name\": \"onequarter\"\n    },\n    {\n      \"name\": \"osfstyle\"\n    },\n    {\n      \"name\": \"regularfont\"\n    },\n    {\n      \"name\": \"semibold\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"semibold{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"semiboldfont\"\n    },\n    {\n      \"name\": \"sufigures\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"supfigures\"\n    },\n    {\n      \"name\": \"supstyle\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"textde\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textde{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textden\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textden{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textdenominators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textdenominators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"textfrac[${3:whole part}]{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textfrac\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"textfrac{${1:numerator}}{${2:denominator}}\"\n      }\n    },\n    {\n      \"name\": \"textin\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textinferior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textinferior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnum{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textnumerators\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textnumerators{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsu\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsu{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsup{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textsuperior\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textsuperior{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttlf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttlf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"texttosf\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"texttosf{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thin\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"thin{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"thinfont\"\n    },\n    {\n      \"name\": \"threequarters\"\n    },\n    {\n      \"name\": \"tlfstyle\"\n    },\n    {\n      \"name\": \"tosfstyle\"\n    },\n    {\n      \"name\": \"DH\"\n    },\n    {\n      \"name\": \"dh\"\n    },\n    {\n      \"name\": \"dj\"\n    },\n    {\n      \"name\": \"DJ\"\n    },\n    {\n      \"name\": \"guillemetleft\"\n    },\n    {\n      \"name\": \"guillemetright\"\n    },\n    {\n      \"name\": \"guillemotleft\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guillemotright\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"guilsinglleft\"\n    },\n    {\n      \"name\": \"guilsinglright\"\n    },\n    {\n      \"name\": \"Hwithstroke\"\n    },\n    {\n      \"name\": \"hwithstroke\"\n    },\n    {\n      \"name\": \"k\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"k{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"NG\"\n    },\n    {\n      \"name\": \"ng\"\n    },\n    {\n      \"name\": \"quotedblbase\"\n    },\n    {\n      \"name\": \"quotesinglbase\"\n    },\n    {\n      \"name\": \"textogonekcentered\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textogonekcentered{${1:arg}}\"\n      }\n    },\n    {\n      \"name\": \"textquotedbl\"\n    },\n    {\n      \"name\": \"th\"\n    },\n    {\n      \"name\": \"TH\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/ysabeau#c\": [\n      \"scale=${1:factor}\",\n      \"lining\",\n      \"oldstyle\",\n      \"tabular\",\n      \"proportional\",\n      \"scosf\",\n      \"mainfont\",\n      \"black\",\n      \"extrabold\",\n      \"bold\",\n      \"semibold\",\n      \"medium\",\n      \"regular\",\n      \"light\",\n      \"extralight\",\n      \"thin\",\n      \"hairline\",\n      \"foresolidus=\",\n      \"aftsolidus=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ysabeau#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ytableau.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"pgfkeys\"\n    },\n    {\n      \"name\": \"pgfopts\"\n    },\n    {\n      \"name\": \"xcolor\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ytableausetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytableausetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\usepackage/ytableau#c,\\\\ytableausetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"none\"\n    },\n    {\n      \"name\": \"ytableaushort\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytableaushort{${1:line1,line2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ytableaushort\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ytableaushort[${2:formatting%formula}]{${1:line1,line2,...%formula}}\"\n      }\n    },\n    {\n      \"name\": \"ytableaushort\",\n      \"if\": \"textmode\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ytableaushort{${1:line1,line2,...%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ytableaushort\",\n      \"if\": \"textmode\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"ytableaushort[${2:formatting%plain}]{${1:line1,line2,...%plain}}\"\n      }\n    },\n    {\n      \"name\": \"ydiagram\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ydiagram{${1:offset+num1,num2,...}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ytableau\"\n    },\n    {\n      \"name\": \"ytableau\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:formatting%formula}]\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/ytableau#c,\\\\ytableausetup\": [\n      \"boxsize=\",\n      \"boxframe=\",\n      \"smalltableaux\",\n      \"nosmalltableaux\",\n      \"aligntableaux=${1|top,center,bottom|}\",\n      \"centertableaux\",\n      \"nocentertableaux\",\n      \"textmode\",\n      \"mathmode\",\n      \"baseline\",\n      \"nobaseline\",\n      \"centerboxes\",\n      \"tabloids\",\n      \"notabloids\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/ytableau#c,\\\\ytableausetup\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zahl2string.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"numstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Numstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"ordstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"Ordstring\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordstring{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"numstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"numstr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Numstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Numstr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"ordstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ordstr{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"Ordstr\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"Ordstr{${1:number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zb-basics.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"amsmath\"\n    },\n    {\n      \"name\": \"amsfonts\"\n    },\n    {\n      \"name\": \"amssymb\"\n    },\n    {\n      \"name\": \"mathtools\"\n    },\n    {\n      \"name\": \"stmaryrd\"\n    },\n    {\n      \"name\": \"mathrsfs\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"gensymb\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"Aut\"\n    },\n    {\n      \"name\": \"Hom\"\n    },\n    {\n      \"name\": \"ran\"\n    },\n    {\n      \"name\": \"1\"\n    },\n    {\n      \"name\": \"fintsymbol\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"fint\",\n      \"detail\": \"⨏ (\\\"esint wrisym\\\" command)\",\n      \"doc\": \"Integral average with slash\"\n    },\n    {\n      \"name\": \"Sha\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zebra-goodies.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"microtype\"\n    },\n    {\n      \"name\": \"xcolor\"\n    },\n    {\n      \"name\": \"tikzpagenodes\"\n    },\n    {\n      \"name\": \"marginnote\"\n    },\n    {\n      \"name\": \"manfnt\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"todo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"todo\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"todo[${2:name}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"note{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"note\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"note[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"comment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"comment\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"comment[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fixed\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"fixed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"fixed\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"fixed[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholder\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"placeholder{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"placeholder\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"placeholder[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebratodo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zebratodo{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"zebratodo\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zebratodo[${2:name}]{${1:text%todo}}\"\n      }\n    },\n    {\n      \"name\": \"zebranote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zebranote{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebranote\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zebranote[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebracomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zebracomment{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebracomment\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zebracomment[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebrafixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zebrafixed{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebrafixed\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zebrafixed[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebraplaceholder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zebraplaceholder{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebraplaceholder\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zebraplaceholder[${2:name}]{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"zebranewnote\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zebranewnote{${1:note name}}{${2:color}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zebra-goodies#c\": [\n      \"draft\",\n      \"final\",\n      \"microtype\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zebra-goodies#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zennote.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tcolorbox\"\n    },\n    {\n      \"name\": \"tcolorboxlibrarymost\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"titlebox\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"titlebox{${1:settings%keyvals}}\",\n        \"keys\": [\n          \"\\\\titlebox\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"thenotenumber\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"noteframe\"\n    },\n    {\n      \"name\": \"noteframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\begin{noteframe}\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\titlebox\": [\n      \"top-left={${1:text}}\",\n      \"top-right={${1:text}}\",\n      \"bottom-left={${1:text}}\",\n      \"bottom-right={${1:text}}\",\n      \"notenumber=${1:integer}\",\n      \"topic={${1:text}}\",\n      \"type={${1:text}}\"\n    ],\n    \"\\\\begin{noteframe}\": [\n      \"color=\",\n      \"style=${1|zero,one,two|}\",\n      \"title={${1:text}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zhlineskip.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"xintexpr\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    },\n    {\n      \"name\": \"mathtools\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetMathEnvironmentSinglespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetMathEnvironmentSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreMathEnvironmentLeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreMathEnvironmentLeading{${1:envname}}\"\n      }\n    },\n    {\n      \"name\": \"SetTextEnvironmentSinglespace\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetTextEnvironmentSinglespace{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"RestoreTextEnvironmentLeading\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"RestoreTextEnvironmentLeading{${1:envname}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zhlineskip#c\": [\n      \"bodytextleadingratio=${1:number}\",\n      \"footnoteleadingratio=${1:number}\",\n      \"restoremathleading\",\n      \"UseMSWordMultipleLineSpacing\",\n      \"MSWordLineSpacingMultiple=${1:number}\",\n      \"MSWordSinglespaceRatio=${1:number}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zhlineskip#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zhlipsum.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3keys2e\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zhlipsum\"\n    },\n    {\n      \"name\": \"zhlipsum\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zhlipsum[${1:paragraph}]\"\n      }\n    },\n    {\n      \"name\": \"zhlipsum\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zhlipsum[${1:paragraph}][${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\zhlipsum,\\\\zhlipsum*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"zhlipsum*\"\n    },\n    {\n      \"name\": \"zhlipsum*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zhlipsum*[${1:paragraph}]\"\n      }\n    },\n    {\n      \"name\": \"zhlipsum*\",\n      \"arg\": {\n        \"format\": \"[][]\",\n        \"snippet\": \"zhlipsum*[${1:paragraph}][${2:keyvals}]\",\n        \"keys\": [\n          \"\\\\zhlipsum,\\\\zhlipsum*\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"newzhlipsum\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"newzhlipsum{${1:name}}{${2:paragraphs list%text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zhlipsum#c\": [\n      \"encoding=${1|utf8,gbk,big5|}\"\n    ],\n    \"\\\\zhlipsum,\\\\zhlipsum*\": [\n      \"name=${1|simp,trad,nanshanjing,xiangyu,zhufu,aspirin|}\",\n      \"before=${1:content}\",\n      \"after=${1:content}\",\n      \"inter=${1:content}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zhlipsum#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zhmCJK.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifpdf\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"CJK\"\n    },\n    {\n      \"name\": \"CJKutf8\"\n    },\n    {\n      \"name\": \"CJKspace\"\n    },\n    {\n      \"name\": \"CJKpunct\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmainfont{${1:字体文件名}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmainfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmainfont{${1:字体文件名}}[${2:选项}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKromanfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKromanfont{${1:字体文件名}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKromanfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKromanfont{${1:字体文件名}}[${2:选项}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKsansfont{${1:字体文件名}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKsansfont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKsansfont{${1:字体文件名}}[${2:选项}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKmonofont{${1:字体文件名}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKmonofont\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setCJKmonofont{${1:字体文件名}}[${2:选项}]\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setCJKfamilyfont{${1:族}}{${2:字体文件名}}\"\n      }\n    },\n    {\n      \"name\": \"setCJKfamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setCJKfamilyfont{${1:族}}{${2:字体文件名}}[${3:选项}]\"\n      }\n    },\n    {\n      \"name\": \"CJKrmdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKsfdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKttdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKfamilydefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKslant\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"CJKboldslant\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zhmCJK#c\": [\n      \"encoding=${1:编码}\",\n      \"pdffakebold\",\n      \"AutoFakeBold=${1:数字}\",\n      \"AutoFakeSlant=${1:数字}\",\n      \"cmap=${1:CMap 值}\",\n      \"embed\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zhmCJK#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zhnumber.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"zhnumber\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumber{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumber\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnumber[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdigits\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdigits{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdigits\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdigits[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdigits*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdigits*{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdigits*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdigits*[${2:options%keyvals}]{${1:number}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhnum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnum{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"zhnum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnum[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhdig\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdig{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"zhdig\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhdig[${2:options%keyvals}]{${1:counter}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhweekday\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhweekday{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhdate\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdate{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhdate*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdate*{${1:yyyy/mm/dd}}\"\n      }\n    },\n    {\n      \"name\": \"zhtoday\"\n    },\n    {\n      \"name\": \"zhtime\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhtime{${1:hh:mm}}\"\n      }\n    },\n    {\n      \"name\": \"zhcurrtime\"\n    },\n    {\n      \"name\": \"zhtiangan\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhtiangan{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhdizhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhdizhi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhganzhi\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhganzhi{${1:number}}\"\n      }\n    },\n    {\n      \"name\": \"zhganzhinian\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhganzhinian{${1:year}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumExtendScaleMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumExtendScaleMap{${1:character1, character2, ..., charactern}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumExtendScaleMap\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zhnumExtendScaleMap[${2:character}]{${1:character1, character2, ..., charactern}}\"\n      }\n    },\n    {\n      \"name\": \"zhnumsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zhnumsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zhnumClearWrapper\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhnumResetWrapper\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zhnumsetup,\\\\zhnumber,\\\\zhdigits,\\\\zhdigits*,\\\\zhnum,\\\\zhdig\": [\n      \"encoding=${1|GBK,Big5,UTF8|}\",\n      \"time=${1|Arabic,Chinese|}\",\n      \"arabicsep={${1:separator}}\",\n      \"style=${1|Simplified,Traditional,Normal,Financial,Ancient|}\",\n      \"null\",\n      \"ganzhi-cyclic\",\n      \"reset\",\n      \"activechar\",\n      \"-=\",\n      \"-0=\",\n      \"0=\",\n      \"1=\",\n      \"2=\",\n      \"3=\",\n      \"4=\",\n      \"5=\",\n      \"6=\",\n      \"7=\",\n      \"8=\",\n      \"9=\",\n      \"10=\",\n      \"20=\",\n      \"30=\",\n      \"40=\",\n      \"100=\",\n      \"200=\",\n      \"1000=\",\n      \"E2=\",\n      \"E3=\",\n      \"E4=\",\n      \"E8=\",\n      \"E12=\",\n      \"E16=\",\n      \"E20=\",\n      \"E24=\",\n      \"E28=\",\n      \"E32=\",\n      \"E36=\",\n      \"E40=\",\n      \"E44=\",\n      \"F0=\",\n      \"F1=\",\n      \"F2=\",\n      \"F3=\",\n      \"F4=\",\n      \"F5=\",\n      \"F6=\",\n      \"F7=\",\n      \"F8=\",\n      \"F9=\",\n      \"F10=\",\n      \"F100=\",\n      \"F1000=\",\n      \"FE2=\",\n      \"FE3=\",\n      \"dot=\",\n      \"and=\",\n      \"parts=\",\n      \"year=\",\n      \"month=\",\n      \"day=\",\n      \"hour=\",\n      \"minute=\",\n      \"weekday=\",\n      \"mon=\",\n      \"tue=\",\n      \"wed=\",\n      \"thu=\",\n      \"fri=\",\n      \"sat=\",\n      \"sun=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zhspacing.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zhsusefulmacros\"\n    },\n    {\n      \"name\": \"zhsmyclass\"\n    },\n    {\n      \"name\": \"fontspec\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zhspacing\"\n    },\n    {\n      \"name\": \"zhfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhpunctfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhcjkextafont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zhcjkextbfont\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipenzh\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhinteropen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhlinestartopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhinterclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhlineendclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhhalfstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhinterhalfstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhlineendhalfstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhfullstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhinterfullstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipzhlineendfullstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipnegzhlinestartopen\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipnegzhlineendclose\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipnegzhlineendhalfstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"skipnegzhlineendfullstop\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"simsunskipscheme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"emptyskipscheme\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"haltskipscheme\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zhspacing\": [\n      \"ambiwide\",\n      \"ambinarrow\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zhspacing\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zi4.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xkeyval\"\n    },\n    {\n      \"name\": \"upquote\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"altzero\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zi4#c\": [\n      \"scaled=${1:factor}\",\n      \"hyphenate\",\n      \"mono\",\n      \"nott\",\n      \"noupquote\",\n      \"var0\",\n      \"var1\",\n      \"varqu\",\n      \"narrow\",\n      \"spacing=\",\n      \"stretch=\",\n      \"shrink=\",\n      \"extrasp=\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zi4#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/ziffer.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"ZifferAn\"\n    },\n    {\n      \"name\": \"ZifferAus\"\n    },\n    {\n      \"name\": \"ZifferPunktAn\"\n    },\n    {\n      \"name\": \"ZifferPunktAus\"\n    },\n    {\n      \"name\": \"ZifferStrichAn\"\n    },\n    {\n      \"name\": \"ZifferStrichAus\"\n    },\n    {\n      \"name\": \"ZifferLeer\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZifferStrich\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zitie.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"l3draw\"\n    },\n    {\n      \"name\": \"l3keys2e\"\n    },\n    {\n      \"name\": \"zhlipsum\",\n      \"if\": \"enable-zhlipsum\"\n    },\n    {\n      \"name\": \"zhlipsum\",\n      \"if\": \"enable-zhlipsum=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zitienewfont*\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"zitienewfont*{${1:font family}}{${2:font name}}{${3:font features}}\"\n      }\n    },\n    {\n      \"name\": \"zitieCJKfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zitieCJKfamily{${1:font family}}\"\n      }\n    },\n    {\n      \"name\": \"framesingle\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framesingle{${1:character}}\"\n      }\n    },\n    {\n      \"name\": \"framesingle\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framesingle[${2:options%keyvals}]{${1:character}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezi\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezi{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"framezi\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezi[${2:options%keyvals}]{${1:characters}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezi*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezi*{${1:characters}}\"\n      }\n    },\n    {\n      \"name\": \"framezi*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezi*[${2:options%keyvals}]{${1:characters}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framerange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framerange{${1:hex range}}\"\n      }\n    },\n    {\n      \"name\": \"framerange\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framerange[${2:options%keyvals}]{${1:hex range}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezifile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezifile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"framezifile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezifile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezifile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezifile*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"framezifile*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezifile*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"frametallrange\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"frametallrange{${1:hex range}}\"\n      }\n    },\n    {\n      \"name\": \"frametallrange\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"frametallrange[${2:options%keyvals}]{${1:hex range}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezitallfile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezitallfile{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"framezitallfile\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezitallfile[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezitallfile*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezitallfile*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"framezitallfile*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezitallfile*[${2:options%keyvals}]{${1:file}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zitiesetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zitiesetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zitiestrokechars\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zitiestrokechars{${1:pdf literal}}{${2:typeset material}}\"\n      }\n    },\n    {\n      \"name\": \"zitiecolorlet\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zitiecolorlet{${1:name%specialDef}}{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"zitiecolorlet\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"zitiecolorlet{${1:name%specialDef}}[${3:model}]{${2:value}}\"\n      }\n    },\n    {\n      \"name\": \"zitienewprocessorrule\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"zitienewprocessorrule{${1:processor}}{${2:rule}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"zitienewprocessorrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"zitienewprocessorrule[${4:arg nums}]{${1:processor}}{${2:rule}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"zitienewrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"zitienewrule{${1:processor}}{${2:rule}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"zitienewrule\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}{}{}\",\n        \"snippet\": \"zitienewrule[${4:arg nums}]{${1:processor}}{${2:rule}}{${3:replace}}\"\n      }\n    },\n    {\n      \"name\": \"zitieuseprocessorrule\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zitieuseprocessorrule{${1:processor}}{${2:rule}}\"\n      }\n    },\n    {\n      \"name\": \"zitieuseprocessorrule\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zitieuseprocessorrule[${3:arg nums}]{${1:processor}}{${2:rule}}\"\n      }\n    },\n    {\n      \"name\": \"zitiebasechar\"\n    },\n    {\n      \"name\": \"zitiebasecharwidth\"\n    },\n    {\n      \"name\": \"zitiebasecharheight\"\n    },\n    {\n      \"name\": \"zitiewidth\"\n    },\n    {\n      \"name\": \"zitieheight\"\n    },\n    {\n      \"name\": \"zitieboxwd\"\n    },\n    {\n      \"name\": \"zitieboxht\"\n    },\n    {\n      \"name\": \"zitieboxdp\"\n    },\n    {\n      \"name\": \"zitiefontname\"\n    },\n    {\n      \"name\": \"zitiexscaleratio\"\n    },\n    {\n      \"name\": \"zitieyscaleratio\"\n    },\n    {\n      \"name\": \"zitiebackground\"\n    },\n    {\n      \"name\": \"zitiebackground\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"zitiebackground[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\zitiebackground\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"framezhlipsum\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"framezhlipsum{${1:paragraph list}}\"\n      }\n    },\n    {\n      \"name\": \"framezhlipsum\",\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"framezhlipsum{${1:paragraph list}}[${2:name}]\"\n      }\n    },\n    {\n      \"name\": \"framezhlipsum\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"framezhlipsum[${2:options%keyvals}]{${1:paragraph list}}\"\n      }\n    },\n    {\n      \"name\": \"framezhlipsum\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"framezhlipsum[${2:options%keyvals}]{${1:paragraph list}}[${3:name}]\"\n      }\n    },\n    {\n      \"name\": \"zitierawCJKfamily\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zitierawCJKfamily{${1:font family}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"zitieframe\"\n    },\n    {\n      \"name\": \"zitieframe\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"[${1:options%keyvals}]\",\n        \"keys\": [\n          \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/zitie#c\": [\n      \"enable-zhlipsum\",\n      \"enable-background\"\n    ],\n    \"\\\\framesingle,\\\\framezi,\\\\framezi*,\\\\framerange,\\\\framezifile,\\\\framezifile*,\\\\begin{zitieframe},\\\\frametallrange,\\\\framezitallfile,\\\\framezitallfile*,\\\\zitiesetup,\\\\framezhlipsum\": [\n      \"basechar=${1:character}\",\n      \"fontsize=${1:fontsize command}\",\n      \"zihao=${1:字号}\",\n      \"position=\",\n      \"position*={${1:replace}}\",\n      \"anchor=${1|east,southeast,south,southwest,west,northwest,north,northeast,center|}\",\n      \"punctuation=${1|ignore,leave,onlast,scale|}\",\n      \"punctuation*={${1:replace}}\",\n      \"frametype=${1|none,口,十,田,×,米,咪|}\",\n      \"resize=${1|none,real,base,square|}\",\n      \"xscale=${1:scale ratio}\",\n      \"yscale=${1:scale ratio}\",\n      \"scale=${1:scale ratio}\",\n      \"width=\",\n      \"height=\",\n      \"holdbasecharheight\",\n      \"holdbasecharwidth\",\n      \"holdbasechar\",\n      \"linewidth=\",\n      \"dashpattern={${1:dim1,dim2,...}}\",\n      \"framearc=\",\n      \"framearc*={${1:dim1}}{${2:dim2}}\",\n      \"framecolor=\",\n      \"framecolor*={${1:models}}{${2:values}}\",\n      \"charcolor=\",\n      \"charcolor*={${1:models}}{${2:values}}\",\n      \"fillcolor=\",\n      \"fillcolor*={${1:models}}{${2:values}}\",\n      \"charstroke=${1|none,solid,dashed,whitesolid,whitedashed,thicksolid,thickdashed,thickwhitesolid,thickwhitedashed,invisible|}\",\n      \"charstrokespecial=${1:pdf literal}\",\n      \"font=${1:font family}\",\n      \"savefontname\",\n      \"fallback\",\n      \"fallbackfont={${1:fallback font list}}\",\n      \"fallbackfont+={${1:fallback font list}}\",\n      \"filepath={${1:filepath1,filepath2,...}}\",\n      \"filepath+={${1:filepath1,filepath2,...}}\",\n      \"repeat=${1:integer}\",\n      \"break=${1|default,allowbreak|}\",\n      \"tolerance=\",\n      \"tallheight=${1:integer}\",\n      \"validateglyph\"\n    ],\n    \"\\\\zitiebackground\": [\n      \"true\",\n      \"on\",\n      \"false\",\n      \"off\",\n      \"next\",\n      \"colboxes=${1:integer}\",\n      \"rowboxes=${1:integer}\",\n      \"framewidth=\",\n      \"frameheight=\",\n      \"boxwidth=\",\n      \"boxheight=\",\n      \"onpaper\",\n      \"ontext\",\n      \"frametype=${1|none,口,十,田,×,米,咪,二|}\",\n      \"linewidth=\",\n      \"framecolor=\",\n      \"framecolor*={${1:models}}{${2:values}}\",\n      \"fillcolor=\",\n      \"fillcolor*={${1:models}}{${2:values}}\",\n      \"dashpattern={${1:dim1,dim2,...}}\",\n      \"xrange={${1:left,right}}\",\n      \"yrange={${1:top,bottom}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zitie#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zlmtt.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"mweights\"\n    },\n    {\n      \"name\": \"xkeyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"monott\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"monott{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"proptt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"proptt{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"lctt\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"lctt{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zlmtt#c\": [\n      \"light\",\n      \"l\",\n      \"lightcondensed\",\n      \"lc\",\n      \"med\",\n      \"m\",\n      \"proportional\",\n      \"p\",\n      \"scale=${1:factor}\",\n      \"scaled=${1:factor}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zlmtt#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zref-abspage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"theabspage\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"abspage\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-abspos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"zref-pagelayout\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-base.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ltxcmds\"\n    },\n    {\n      \"name\": \"infwarerr\"\n    },\n    {\n      \"name\": \"kvsetkeys\"\n    },\n    {\n      \"name\": \"kvdefinekeys\"\n    },\n    {\n      \"name\": \"pdftexcmds\"\n    },\n    {\n      \"name\": \"etexcmds\"\n    },\n    {\n      \"name\": \"auxhook\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zifrefundefined\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"zifrefundefined{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-check.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"zref-hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zcheck\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcheck{${1:labellist}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zcheck\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zcheck[${3:checks%keyvals}]{${1:labellist}}{${2:text}}\",\n        \"keys\": [\n          \"\\\\zcheck\",\n          \"\\\\zcheck,\\\\zrefchecksetup,\\\\usepackage/zref-check#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zctarget\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zctarget{${1:label}}{${2:text}}\"\n      }\n    },\n    {\n      \"name\": \"zrefchecksetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zrefchecksetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zcheck,\\\\zrefchecksetup,\\\\usepackage/zref-check#c\",\n          \"\\\\zrefchecksetup,\\\\usepackage/zref-check#c\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"zcregion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"{${1:label}}\"\n      }\n    }\n  ],\n  \"keys\": {\n    \"\\\\zcheck\": [\n      \"thispage\",\n      \"prevpage\",\n      \"nextpage\",\n      \"otherpage\",\n      \"pagegap\",\n      \"facing\",\n      \"above\",\n      \"below\",\n      \"pagesbefore\",\n      \"ppbefore\",\n      \"pagesafter\",\n      \"ppafter\",\n      \"before\",\n      \"after\",\n      \"thischap\",\n      \"prevchap\",\n      \"nextchap\",\n      \"chapsbefore\",\n      \"chapsafter\",\n      \"thissec\",\n      \"prevsec\",\n      \"nextsec\",\n      \"secsbefore\",\n      \"secsafter\",\n      \"close\",\n      \"far\",\n      \"manual\",\n      \"ignore\",\n      \"ok\"\n    ],\n    \"\\\\zcheck,\\\\zrefchecksetup,\\\\usepackage/zref-check#c\": [\n      \"msglevel=${1|warn,info,none,infoifdraft,warniffinal|}\",\n      \"onpage=${1|labelseq,msg,labelseqifdraft,msgiffinal|}\"\n    ],\n    \"\\\\zrefchecksetup,\\\\usepackage/zref-check#c\": [\n      \"hyperref=${1|auto,true,false|}\",\n      \"closerange=${1:integer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\zcheck,\\\\zrefchecksetup,\\\\usepackage/zref-check#c\",\n    \"\\\\zrefchecksetup,\\\\usepackage/zref-check#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zref-clever.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-user\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"ifdraft\"\n    },\n    {\n      \"name\": \"zref-hyperref\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zcref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"zcref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zcref[${2:options%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"zcref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zcref*[${2:options%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcpageref{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"zcpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zcpageref[${2:options%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcpageref*{${1:labellist}}\"\n      }\n    },\n    {\n      \"name\": \"zcpageref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zcpageref*[${2:options%keyvals}]{${1:labellist}}\",\n        \"keys\": [\n          \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\",\n          \"\\\\zcsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcRefTypeSetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcRefTypeSetup{${1:type}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zcRefTypeSetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"zcDeclareLanguage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zcDeclareLanguage{${1:language}}\"\n      }\n    },\n    {\n      \"name\": \"zcDeclareLanguage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zcDeclareLanguage[${2:options%keyvals}]{${1:language}}\",\n        \"keys\": [\n          \"\\\\zcDeclareLanguage\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zcDeclareLanguageAlias\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcDeclareLanguageAlias{${1:language alias}}{${2:aliased language}}\"\n      }\n    },\n    {\n      \"name\": \"zcLanguageSetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zcLanguageSetup{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zcLanguageSetup\"\n        ],\n        \"keyPos\": 1\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zcref,\\\\zcref*,\\\\zcpageref,\\\\zcpageref*,\\\\zcsetup\": [\n      \"ref=${1|default,page,thecounter,title|}\",\n      \"page\",\n      \"typeset=${1|ref,name,both|}\",\n      \"noname\",\n      \"noref\",\n      \"sort\",\n      \"nosort\",\n      \"typesort={${1:type list}}\",\n      \"notypesort\",\n      \"comp\",\n      \"nocomp\",\n      \"endrange=${1|ref,stripprefix,pagecomp,pagecomp2|}\",\n      \"range\",\n      \"rangetopair\",\n      \"cap\",\n      \"nocap\",\n      \"capfirst\",\n      \"abbrev\",\n      \"noabbrev\",\n      \"noabbrevfirst\",\n      \"S\",\n      \"hyperref=${1|auto,true,false|}\",\n      \"nameinlink=${1|true,false,single,tsingle|}\",\n      \"lang=${1:language}\",\n      \"d=${1:declension case}\",\n      \"nudge=${1|true,false,ifdraft,iffinal|}\",\n      \"nudgeif=${1|multitype,comptosing,gender,all|}\",\n      \"nonudge\",\n      \"sg\",\n      \"g=\",\n      \"font=${1:font commands}\",\n      \"note=${1:text}\",\n      \"check={${1:checks}}\",\n      \"countertype={${1:<counter>} = ${2:<type> list}}\",\n      \"reftype=${1:type}\",\n      \"counterresetters={${1:counter list}}\",\n      \"counterresetby={${1:<counter=encl counter> list}}\",\n      \"currentcounter=${1:counter}\",\n      \"labelhook\",\n      \"tpairsep={${1:separator}}\",\n      \"tlistsep={${1:separator}}\",\n      \"tlastsep={${1:separator}}\",\n      \"notesep={${1:separator}}\",\n      \"namesep={${1:separator}}\",\n      \"pairsep={${1:separator}}\",\n      \"listsep={${1:separator}}\",\n      \"lastsep={${1:separator}}\",\n      \"rangesep={${1:separator}}\",\n      \"refbounds={${1:preref*,preref,postref,postref*}}\",\n      \"namefont=${1:name}\",\n      \"reffont=${1:name}\"\n    ],\n    \"\\\\zcsetup\": [\n      \"nocompat\",\n      \"nocompat={${1:module list}}\"\n    ],\n    \"\\\\zcRefTypeSetup\": [\n      \"namesep={${1:separator}}\",\n      \"pairsep={${1:separator}}\",\n      \"listsep={${1:separator}}\",\n      \"lastsep={${1:separator}}\",\n      \"rangesep={${1:separator}}\",\n      \"refbounds={${1:preref*,preref,postref,postref*}}\",\n      \"Name-sg=${1:name}\",\n      \"name-sg=${1:name}\",\n      \"Name-pl=${1:name}\",\n      \"name-pl=${1:name}\",\n      \"Name-sg-ab=${1:name}\",\n      \"name-sg-ab=${1:name}\",\n      \"Name-pl-ab=${1:name}\",\n      \"name-pl-ab=${1:name}\",\n      \"namefont=${1:font commands}\",\n      \"reffont=${1:font commands}\",\n      \"cap\",\n      \"abbrev\",\n      \"endrange=${1|ref,stripprefix,pagecomp,pagecomp2|}\",\n      \"rangetopair\"\n    ],\n    \"\\\\zcDeclareLanguage\": [\n      \"declension={${1:cases list}}\",\n      \"gender={${1:gender list}}\",\n      \"allcaps\"\n    ],\n    \"\\\\zcLanguageSetup\": [\n      \"tpairsep={${1:separator}}\",\n      \"tlistsep={${1:separator}}\",\n      \"tlastsep={${1:separator}}\",\n      \"notesep={${1:separator}}\",\n      \"namesep={${1:separator}}\",\n      \"pairsep={${1:separator}}\",\n      \"listsep={${1:separator}}\",\n      \"lastsep={${1:separator}}\",\n      \"rangesep={${1:separator}}\",\n      \"refbounds={${1:preref*,preref,postref,postref*}}\",\n      \"Name-sg=${1:name}\",\n      \"name-sg=${1:name}\",\n      \"Name-pl=${1:name}\",\n      \"name-pl=${1:name}\",\n      \"Name-sg-ab=${1:name}\",\n      \"name-sg-ab=${1:name}\",\n      \"Name-pl-ab=${1:name}\",\n      \"name-pl-ab=${1:name}\",\n      \"namefont=${1:font commands}\",\n      \"reffont=${1:font commands}\",\n      \"cap\",\n      \"abbrev\",\n      \"endrange=${1|ref,stripprefix,pagecomp,pagecomp2|}\",\n      \"rangetopair\",\n      \"type=${1:type}\",\n      \"case=${1|N,A,D,G|}\",\n      \"gender={${1:gender list}}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-counter.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"counter\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-dotfill.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-savepos\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zdotfill\"\n    },\n    {\n      \"name\": \"zdotfillsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zdotfillsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zdotfillsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zdotfillsetup\": [\n      \"min=${1:integer}\",\n      \"unit=\",\n      \"dot=${1:symbol}\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-env.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"envname\",\n      \"envline\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-hyperref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"anchor\",\n      \"url\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-lastpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ziflastpage\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"ziflastpage{${1:label}}{${2:true}}{${3:false}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-marks.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-nextpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"zref-thepage\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    },\n    {\n      \"name\": \"uniquecounter\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"znextpage\"\n    },\n    {\n      \"name\": \"zunknownnextpagename\"\n    },\n    {\n      \"name\": \"znonextpagename\"\n    },\n    {\n      \"name\": \"znextpagesetup\",\n      \"arg\": {\n        \"format\": \"{}{}{}\",\n        \"snippet\": \"znextpagesetup{${1:unknown}}{${2:no next}}{${3:next}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-pageattr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"zref-thepage\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"pdfpageattr\",\n      \"pdfpagesattr\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-pagelayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-thepage\"\n    },\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"atveryend\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zlistpagelayout\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"mag\",\n      \"paperwidth\",\n      \"paperheight\",\n      \"stockwidth\",\n      \"stockheight\",\n      \"pdfpagewidth\",\n      \"pdfpageheight\",\n      \"pdfhorigin\",\n      \"pdfvorigin\",\n      \"hoffset\",\n      \"voffset\",\n      \"topmargin\",\n      \"oddsidemargin\",\n      \"evensidemargin\",\n      \"textwidth\",\n      \"textheight\",\n      \"headheight\",\n      \"headsep\",\n      \"footskip\",\n      \"marginparwidth\",\n      \"marginparsep\",\n      \"columnwidth\",\n      \"columnsep\",\n      \"outputboxwd\",\n      \"outputboxht\",\n      \"outputboxdp\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-perpage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zmakeperpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zmakeperpage{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"zmakeperpage\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zmakeperpage[${2:reset}]{${1:counter}}\"\n      }\n    },\n    {\n      \"name\": \"thezpage\"\n    },\n    {\n      \"name\": \"zunmakeperpage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zunmakeperpage{${1:counter}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"abspage\",\n      \"pagevalue\",\n      \"page\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-runs.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"zruns\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-savepos.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zsavepos\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zsavepos{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zsaveposx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zsaveposx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zsaveposy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zsaveposy{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zposx\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zposx{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zposy\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zposy{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"posx\",\n      \"posy\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-thepage.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"atbegshi\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zthepage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zthepage{${1:page number}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zref#c\": [\n      \"pagevalue\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-titleref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"gettitlestring\"\n    },\n    {\n      \"name\": \"keyval\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ztitleref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ztitleref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"ztitlerefsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"ztitlerefsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\ztitlerefsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\ztitlerefsetup\": [\n      \"title=\",\n      \"stripperiod\",\n      \"expand\",\n      \"cleanup={${1:code}}\"\n    ],\n    \"\\\\zref#c\": [\n      \"title\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-totpages.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-abspage\"\n    },\n    {\n      \"name\": \"zref-lastpage\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ztotpages\"\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-user.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zlabel\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zlabel{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zkvlabel\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zkvlabel{${1:keyvals}}{${2:label}}\",\n        \"keys\": [\n          \"\\\\zkvlabel\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zref[${2:propname%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zref#c\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zrefused\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zrefused{${1:label}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zkvlabel\": [\n      \"prop=\",\n      \"list=\",\n      \"delprop=\",\n      \"immediate\",\n      \"values=\"\n    ],\n    \"\\\\zref#c\": [\n      \"default\",\n      \"page\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-vario.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"varioref\"\n    },\n    {\n      \"name\": \"zref-clever\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zvsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zvsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zvref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zvref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zvref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zvref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvpageref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvpageref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zvpageref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zvpageref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvpageref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvpageref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zvpageref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zvpageref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvrefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zvrefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"zvrefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zvrefrange[${3:options%keyvals}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvrefrange*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zvrefrange*{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"zvrefrange*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zvrefrange*[${3:options%keyvals}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvpagerefrange\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zvpagerefrange{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"zvpagerefrange\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zvpagerefrange[${3:options%keyvals}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvpagerefrange*\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zvpagerefrange*{${1:fromlabel%ref}}{${2:tolabel%ref}}\"\n      }\n    },\n    {\n      \"name\": \"zvpagerefrange*\",\n      \"arg\": {\n        \"format\": \"[]{}{}\",\n        \"snippet\": \"zvpagerefrange*[${3:options%keyvals}]{${1:fromlabel%ref}}{${2:tolabel%ref}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\",\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zfullref\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zfullref{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zfullref\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zfullref[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zfullref*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zfullref*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zfullref*\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zfullref*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zreftextfaraway\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zreftextfaraway{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zreftextfaraway\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zreftextfaraway[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zreftextfaraway*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zreftextfaraway*{${1:label}}\"\n      }\n    },\n    {\n      \"name\": \"zreftextfaraway*\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"zreftextfaraway*[${2:options%keyvals}]{${1:label}}\",\n        \"keys\": [\n          \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"zvLanguageSetup\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"zvLanguageSetup{${1:language}}{${2:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zvLanguageSetup\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"zvhyperlink\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zvhyperlink{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zvsetup\": [\n      \"pageprop=${1:property}\"\n    ],\n    \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*,\\\\zfullref,\\\\zfullref*,\\\\zreftextfaraway,\\\\zreftextfaraway*\": [\n      \"ref=${1|default,page,thecounter,title|}\",\n      \"page\",\n      \"typeset=${1|ref,name,both|}\",\n      \"noname\",\n      \"noref\",\n      \"sort\",\n      \"nosort\",\n      \"typesort={${1:type list}}\",\n      \"notypesort\",\n      \"comp\",\n      \"nocomp\",\n      \"endrange=${1|ref,stripprefix,pagecomp,pagecomp2|}\",\n      \"range\",\n      \"rangetopair\",\n      \"cap\",\n      \"nocap\",\n      \"capfirst\",\n      \"abbrev\",\n      \"noabbrev\",\n      \"noabbrevfirst\",\n      \"S\",\n      \"hyperref=${1|auto,true,false|}\",\n      \"nameinlink=${1|true,false,single,tsingle|}\",\n      \"lang=${1:language}\",\n      \"d=${1:declension case}\",\n      \"nudge=${1|true,false,ifdraft,iffinal|}\",\n      \"nudgeif=${1|multitype,comptosing,gender,all|}\",\n      \"nonudge\",\n      \"sg\",\n      \"g=\",\n      \"font=${1:font commands}\",\n      \"note=${1:text}\",\n      \"check={${1:checks}}\",\n      \"vcheck={${1:checks}}\",\n      \"countertype={${1:<counter>} = ${2:<type> list}}\",\n      \"counterresetters={${1:counter list}}\",\n      \"counterresetby={${1:<counter=encl counter> list}}\",\n      \"currentcounter=${1:counter}\",\n      \"tpairsep={${1:separator}}\",\n      \"tlistsep={${1:separator}}\",\n      \"tlastsep={${1:separator}}\",\n      \"notesep={${1:separator}}\",\n      \"namesep={${1:separator}}\",\n      \"pairsep={${1:separator}}\",\n      \"listsep={${1:separator}}\",\n      \"lastsep={${1:separator}}\",\n      \"rangesep={${1:separator}}\",\n      \"refbounds={${1:preref*,preref,postref,postref*}}\",\n      \"namefont=${1:name}\",\n      \"reffont=${1:name}\"\n    ],\n    \"\\\\zvref,\\\\zvref*,\\\\zvpageref,\\\\zvpageref*,\\\\zvrefrange,\\\\zvrefrange*,\\\\zvpagerefrange,\\\\zvpagerefrange*\": [\n      \"vcurrent\",\n      \"vother\"\n    ],\n    \"\\\\zvLanguageSetup\": [\n      \"reftextfaceafter=\",\n      \"reftextfacebefore=\",\n      \"reftextafter=\",\n      \"reftextbefore=\",\n      \"reftextcurrent=\",\n      \"reftextfaraway=\",\n      \"reftextpagerange=\",\n      \"reftextlabelrange=\",\n      \"vrefformat=\",\n      \"vrefrangeformat=\",\n      \"fullrefformat=\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref-xr.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zexternaldocument\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zexternaldocument{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"zexternaldocument\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"zexternaldocument[${2:prefix}]{${1:file}}[${3:url}]\"\n      }\n    },\n    {\n      \"name\": \"zexternaldocument*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zexternaldocument*{${1:file}}\"\n      }\n    },\n    {\n      \"name\": \"zexternaldocument*\",\n      \"arg\": {\n        \"format\": \"[]{}[]\",\n        \"snippet\": \"zexternaldocument*[${2:prefix}]{${1:file}}[${3:url}]\"\n      }\n    },\n    {\n      \"name\": \"zxrsetup\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxrsetup{${1:options%keyvals}}\",\n        \"keys\": [\n          \"\\\\zxrsetup\"\n        ],\n        \"keyPos\": 0\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\zxrsetup\": [\n      \"ext=${1:extension}\",\n      \"tozreflabel\",\n      \"urluse\",\n      \"verbose\"\n    ],\n    \"\\\\zref#c\": [\n      \"url\",\n      \"urluse\",\n      \"externaldocument\",\n      \"anchor\",\n      \"theotype\",\n      \"title\"\n    ]\n  },\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zref.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"zref-base\"\n    },\n    {\n      \"name\": \"zref-abspage\",\n      \"if\": \"abspage\"\n    },\n    {\n      \"name\": \"zref-counter\",\n      \"if\": \"counter\"\n    },\n    {\n      \"name\": \"zref-dotfill\",\n      \"if\": \"dotfill\"\n    },\n    {\n      \"name\": \"zref-hyperref\",\n      \"if\": \"hyperref\"\n    },\n    {\n      \"name\": \"zref-lastpage\",\n      \"if\": \"lastpage\"\n    },\n    {\n      \"name\": \"zref-marks\",\n      \"if\": \"marks\"\n    },\n    {\n      \"name\": \"zref-nextpage\",\n      \"if\": \"nextpage\"\n    },\n    {\n      \"name\": \"zref-pageattr\",\n      \"if\": \"pageattr\"\n    },\n    {\n      \"name\": \"zref-pagelayout\",\n      \"if\": \"pagelayout\"\n    },\n    {\n      \"name\": \"zref-perpage\",\n      \"if\": \"perpage\"\n    },\n    {\n      \"name\": \"zref-runs\",\n      \"if\": \"runs\"\n    },\n    {\n      \"name\": \"zref-savepos\",\n      \"if\": \"savepos\"\n    },\n    {\n      \"name\": \"zref-thepage\",\n      \"if\": \"thepage\"\n    },\n    {\n      \"name\": \"zref-titleref\",\n      \"if\": \"titleref\"\n    },\n    {\n      \"name\": \"zref-totpages\",\n      \"if\": \"totpages\"\n    },\n    {\n      \"name\": \"zref-user\",\n      \"if\": \"user\"\n    },\n    {\n      \"name\": \"zref-xr\",\n      \"if\": \"xr\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zref#c\": [\n      \"abspage\",\n      \"counter\",\n      \"dotfill\",\n      \"hyperref\",\n      \"lastpage\",\n      \"marks\",\n      \"nextpage\",\n      \"pageattr\",\n      \"pagelayout\",\n      \"perpage\",\n      \"runs\",\n      \"savepos\",\n      \"thepage\",\n      \"titleref\",\n      \"totpages\",\n      \"user\",\n      \"xr\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zref#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zugferd.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"siunitx\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"SetZUGFeRDData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetZUGFeRDData{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"SetZUGFeRDData*\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetZUGFeRDData*{${1:keyvals}}\"\n      }\n    },\n    {\n      \"name\": \"InsertZUGFeRDData\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"InsertZUGFeRDData{${1:data-selection}}\"\n      }\n    },\n    {\n      \"name\": \"InsertZUGFeRDData\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"InsertZUGFeRDData[${2:special mode option}]{${1:data-selection}}\"\n      }\n    },\n    {\n      \"name\": \"startWritingZUGFeRDxml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"stopWritingZUGFeRDxml\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"setupZUGFeRDStrings\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setupZUGFeRDStrings{${1:property}}{${2:settings}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"ZUGFeRD\",\n      \"unusual\": true\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/zugferd#c\": [\n      \"format=${1|xrechnung,xrechnung3.0,xrechnung2.3,basic|}\",\n      \"zugferd\",\n      \"write-xml\",\n      \"xml-file=${1:filename}\",\n      \"auto-exemption\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zugferd#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zwgetfdate.json",
    "content": "{\n  \"deps\": [],\n  \"macros\": [\n    {\n      \"name\": \"DateOfPackage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DateOfPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"DateOfFile\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"DateOfFile{${1:file}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zwpagelayout.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"iftex\"\n    },\n    {\n      \"name\": \"kvoptions\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"color\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"color=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"redefineblack\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"redefineblack=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"redefinetocmyk\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"redefinetocmyk=true\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"overprint\"\n    },\n    {\n      \"name\": \"color\",\n      \"if\": \"overprint=true\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"noBboxes\"\n    },\n    {\n      \"name\": \"OverprintXeTeXExtGState\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"SetOverprint\"\n    },\n    {\n      \"name\": \"SetKnockout\"\n    },\n    {\n      \"name\": \"textoverprint\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textoverprint{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textknockout\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textknockout{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"SetPDFminorversion\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetPDFminorversion{${1:version}}\"\n      }\n    },\n    {\n      \"name\": \"Vcorr\"\n    },\n    {\n      \"name\": \"vb\"\n    },\n    {\n      \"name\": \"vb\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"vb[${1:number}]\"\n      }\n    },\n    {\n      \"name\": \"NewOddPage\"\n    },\n    {\n      \"name\": \"NewOddPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewOddPage[${1:style}]\"\n      }\n    },\n    {\n      \"name\": \"NewOddPage*\"\n    },\n    {\n      \"name\": \"NewOddPage*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewOddPage*[${1:style}]\"\n      }\n    },\n    {\n      \"name\": \"SetOddPageMessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetOddPageMessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"NewEvenPage\"\n    },\n    {\n      \"name\": \"NewEvenPage\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewEvenPage[${1:style}]\"\n      }\n    },\n    {\n      \"name\": \"NewEvenPage*\"\n    },\n    {\n      \"name\": \"NewEvenPage*\",\n      \"arg\": {\n        \"format\": \"[]\",\n        \"snippet\": \"NewEvenPage*[${1:style}]\"\n      }\n    },\n    {\n      \"name\": \"SetEvenPageMessage\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"SetEvenPageMessage{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"CropFlap\"\n    },\n    {\n      \"name\": \"CropSpine\"\n    },\n    {\n      \"name\": \"CropXSpine\"\n    },\n    {\n      \"name\": \"CropXtrim\"\n    },\n    {\n      \"name\": \"CropYtrim\"\n    },\n    {\n      \"name\": \"UserWidth\"\n    },\n    {\n      \"name\": \"UserLeftMargin\"\n    },\n    {\n      \"name\": \"UserRightMargin\"\n    },\n    {\n      \"name\": \"UserBotMargin\"\n    },\n    {\n      \"name\": \"UserTopMargin\"\n    },\n    {\n      \"name\": \"thePageNumber\"\n    },\n    {\n      \"name\": \"ifcaseZWdriver\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ZWifdriver\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZWifdriver{${1:driver}}{${2:code}}\"\n      }\n    },\n    {\n      \"name\": \"ZWsetkeys\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"ZWsetkeys{${1:family}}{${2:keyvals}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zwpagelayout#c\": [\n      \"driver=${1|unknown,pdftex,xetex,dvips,other,dvipdfm,xdvipdfmx|}\",\n      \"AllowWidthHeightSwitching\",\n      \"papersize={${1:width,height}}\",\n      \"a0\",\n      \"a1\",\n      \"a2\",\n      \"a3\",\n      \"a4\",\n      \"a5\",\n      \"a6\",\n      \"a7\",\n      \"a8\",\n      \"a9\",\n      \"a10\",\n      \"b0\",\n      \"b1\",\n      \"b2\",\n      \"b3\",\n      \"b4\",\n      \"b5\",\n      \"b6\",\n      \"b7\",\n      \"b8\",\n      \"b9\",\n      \"b10\",\n      \"c0\",\n      \"c1\",\n      \"c2\",\n      \"c3\",\n      \"c4\",\n      \"c5\",\n      \"c6\",\n      \"c7\",\n      \"c8\",\n      \"c9\",\n      \"c10\",\n      \"executive\",\n      \"legal\",\n      \"letter\",\n      \"Portrait\",\n      \"Landscape\",\n      \"noBboxes\",\n      \"margins=\",\n      \"topmargin=\",\n      \"botmargin=\",\n      \"leftmargin=\",\n      \"rightmargin=\",\n      \"textwidth=\",\n      \"textheight=\",\n      \"headheight=\",\n      \"headsep=\",\n      \"footskip=\",\n      \"topskip=\",\n      \"strictheight\",\n      \"adjustfootskip\",\n      \"adjustheadsep\",\n      \"ReflectHorizontally\",\n      \"ReflectVertically\",\n      \"onlycropmarks\",\n      \"cropmarks\",\n      \"nocropmarks\",\n      \"croplength=\",\n      \"cropgap=\",\n      \"cropframe\",\n      \"nocropframe\",\n      \"cropstyle=${1|default,leaflet|}\",\n      \"croptitle=${1:text}\",\n      \"cropseparator=${1:macro}\",\n      \"pagenumberfirst\",\n      \"pagenumberlast\",\n      \"usepagenumbers\",\n      \"nopagenumbers\",\n      \"nobleedclip\",\n      \"spine=\",\n      \"xspine=\",\n      \"flap=\",\n      \"trim=\",\n      \"xtrim=\",\n      \"ytrim=\",\n      \"leafcount=${1:integer}\",\n      \"foldcorr=\",\n      \"fold=${1|2,3left,3right,Z,4|}\",\n      \"color\",\n      \"colormodel=${1:model}\",\n      \"cropcolor=${1:color spec}\",\n      \"colors={{${1:name1:spec1}}${2:,...}}\",\n      \"overprint\",\n      \"redefineblack\",\n      \"redefinetocmyk\",\n      \"title=${1:text}\",\n      \"author=${1:author}\",\n      \"subject=${1:subject}\",\n      \"keywords=${1:keywords}\",\n      \"nopdfinfo\",\n      \"pdfminorversion=${1:version}\",\n      \"pdfx\",\n      \"OutputCondition=\",\n      \"OutputConditionIdentifier=\",\n      \"ICCfile=${1:file name}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zwpagelayout#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zx-calculus.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"tikz\"\n    },\n    {\n      \"name\": \"tikz-cd\"\n    },\n    {\n      \"name\": \"tikzlibraryzx-calculus\"\n    }\n  ],\n  \"macros\": [],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zxbase.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"bxbase\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zxSpecFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxRMFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxSFFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxTTFamily\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxBDHookGenFamFlag\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxBDHookForgepTeXDir\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ifzxPPInUTFEight\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxPPInUTFEighttrue\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxPPInUTFEightfalse\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxRequirepLaTeXPackage\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"zxRequirepLaTeXPackage{${1:package}}\"\n      }\n    },\n    {\n      \"name\": \"platexpackagesinunicode\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zxjafbfont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xeCJK\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"setCJKfallbackfamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setCJKfallbackfamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"unsetCJKfallbackfamily\"\n    },\n    {\n      \"name\": \"CJKsymbol\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"CJKsymbol{${1:arg}}\"\n      }\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {},\n  \"args\": []\n}"
  },
  {
    "path": "dev/packages/zxjafont.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"xetex\"\n    },\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"fontspec\"\n    },\n    {\n      \"name\": \"keyval\"\n    },\n    {\n      \"name\": \"etoolbox\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"ebdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ebseries\"\n    },\n    {\n      \"name\": \"ltdefault\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"ltseries\"\n    },\n    {\n      \"name\": \"useeasyjapanesesettings\",\n      \"unusual\": true\n    }\n  ],\n  \"envs\": [],\n  \"keys\": {\n    \"\\\\usepackage/zxjafont#c\": [\n      \"ms\",\n      \"ipa\",\n      \"ipaex\",\n      \"ms-hg\",\n      \"ipa-hg\",\n      \"ipaex-hg\",\n      \"moga\",\n      \"moga-90\",\n      \"mogaN-90\",\n      \"ume\",\n      \"kozuka-pro\",\n      \"kozuka-pr6\",\n      \"kozuka-pr6n\",\n      \"hiragino-pro\",\n      \"hiragino-pron\",\n      \"morisawa-pro\",\n      \"morisawa-pr6n\",\n      \"yu-win\",\n      \"yu-win10\",\n      \"yu-osx\",\n      \"sourcehan\",\n      \"sourcehan-jp\",\n      \"noto\",\n      \"noto-jp\",\n      \"haranoaji\",\n      \"nopreset\",\n      \"kozuka\",\n      \"morisawa\",\n      \"moga-mobo\",\n      \"moga-mobo-ex\",\n      \"noto-otf\",\n      \"hiragino\",\n      \"hg\",\n      \"hiraginomg\",\n      \"mobo\",\n      \"mobo-90\",\n      \"maruberi\",\n      \"prop\",\n      \"noprop\",\n      \"oneweight\",\n      \"nooneweight\",\n      \"nodeluxe\",\n      \"deluxe\",\n      \"threeweight\",\n      \"nothreeweight\",\n      \"bold\",\n      \"nobold\",\n      \"jis90\",\n      \"90jis\",\n      \"jis2004\",\n      \"2004jis\",\n      \"nojisshape\",\n      \"ignorejatype\",\n      \"noignorejatype\",\n      \"expert\",\n      \"noexpert\",\n      \"scale=${1:factor}\",\n      \"feature={${1:fontspec features}}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zxjafont#c\"\n  ]\n}"
  },
  {
    "path": "dev/packages/zxjatype.json",
    "content": "{\n  \"deps\": [\n    {\n      \"name\": \"ifxetex\"\n    },\n    {\n      \"name\": \"xeCJK\"\n    }\n  ],\n  \"macros\": [\n    {\n      \"name\": \"zxJaFamilyFontHook\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"zxJaFamilyName\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"inhibitglue\"\n    },\n    {\n      \"name\": \"setjamainfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjamainfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setjamainfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setjamainfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setjamainfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setjamainfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setjamainfont,\\\\setjasansfont,\\\\setjamonofont,\\\\setjafamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setjasansfont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjasansfont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setjasansfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setjasansfont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setjasansfont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setjasansfont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setjamainfont,\\\\setjasansfont,\\\\setjamonofont,\\\\setjafamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setjamonofont\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjamonofont{${1:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setjamonofont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}[]\",\n        \"snippet\": \"setjamonofont{${1:font name}}[${2:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setjamonofont\",\n      \"arg\": {\n        \"format\": \"[]{}\",\n        \"snippet\": \"setjamonofont[${2:font features%keyvals}]{${1:font name}}\",\n        \"keys\": [\n          \"\\\\setjamainfont,\\\\setjasansfont,\\\\setjamonofont,\\\\setjafamilyfont\"\n        ],\n        \"keyPos\": 0\n      }\n    },\n    {\n      \"name\": \"setjafamilyfont\",\n      \"arg\": {\n        \"format\": \"{}{}\",\n        \"snippet\": \"setjafamilyfont{${1:family}}{${2:font name}}\"\n      }\n    },\n    {\n      \"name\": \"setjafamilyfont\",\n      \"unusual\": true,\n      \"arg\": {\n        \"format\": \"{}{}[]\",\n        \"snippet\": \"setjafamilyfont{${1:family}}{${2:font name}}[${3:font features}]\"\n      }\n    },\n    {\n      \"name\": \"setjafamilyfont\",\n      \"arg\": {\n        \"format\": \"{}[]{}\",\n        \"snippet\": \"setjafamilyfont{${1:family}}[${3:font features%keyvals}]{${2:font name}}\",\n        \"keys\": [\n          \"\\\\setjamainfont,\\\\setjasansfont,\\\\setjamonofont,\\\\setjafamilyfont\"\n        ],\n        \"keyPos\": 1\n      }\n    },\n    {\n      \"name\": \"jafamily\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"jafamily{${1:family}}\"\n      }\n    },\n    {\n      \"name\": \"zxjapanesestyle\"\n    },\n    {\n      \"name\": \"zxusejapaneseparameters\"\n    },\n    {\n      \"name\": \"zxuseoriginalparameters\"\n    },\n    {\n      \"name\": \"setjafontscale\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"setjafontscale{${1:factor}}\"\n      }\n    },\n    {\n      \"name\": \"jafamilyinverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \"nojafamilyinverbatim\",\n      \"unusual\": true\n    },\n    {\n      \"name\": \">\"\n    },\n    {\n      \"name\": \"<\"\n    },\n    {\n      \"name\": \"textrawja\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrawja{${1:text}}\"\n      }\n    },\n    {\n      \"name\": \"textrawen\",\n      \"arg\": {\n        \"format\": \"{}\",\n        \"snippet\": \"textrawen{${1:text}}\"\n      }\n    }\n  ],\n  \"envs\": [\n    {\n      \"name\": \"rawjatext\"\n    },\n    {\n      \"name\": \"rawentext\"\n    }\n  ],\n  \"keys\": {\n    \"\\\\usepackage/zxjatype#c\": [\n      \"default\",\n      \"nodefault\",\n      \"CJKchecksingle\",\n      \"noCJKchecksingle\",\n      \"LocalConfig=${2|true,false,${1:name}|}\",\n      \"xeCJKactive\",\n      \"CJKspace\",\n      \"CJKmath\",\n      \"CJKglue=${1:glue}\",\n      \"CJKecglue=${1:glue}\",\n      \"xCJKecglue=${1:glue}\",\n      \"CheckSingle\",\n      \"WindowPenalty=${1:integer}\",\n      \"PlainEquation\",\n      \"NewLineCS={${1:commands}}\",\n      \"NewLineCS+={${1:commands}}\",\n      \"NewLineCS-={${1:commands}}\",\n      \"EnvCS={${1:commands}}\",\n      \"EnvCS+={${1:commands}}\",\n      \"EnvCS-={${1:commands}}\",\n      \"InlineEnv={${1:env1,env2,...}}\",\n      \"InlineEnv+={${1:env1,env2,...}}\",\n      \"InlineEnv-={${1:env1,env2,...}}\",\n      \"AutoFallback\",\n      \"AutoFakeBold=${1:true,false,or <number>}\",\n      \"AutoFakeSlant=${1:true,false,or <number>}\",\n      \"EmboldenFactor=${1:factor}\",\n      \"SlantFactor=${1:factor}\",\n      \"PunctStyle=${1|quanjiao,banjiao,kaiming,hangmobanjiao,CCT,plain|}\",\n      \"PunctFamily=${1:false or <family>}\",\n      \"KaiMingPunct={${1:punctuation}}\",\n      \"KaiMingPunct+={${1:punctuation}}\",\n      \"KaiMingPunct-={${1:punctuation}}\",\n      \"LongPunct={${1:punctuation}}\",\n      \"LongPunct+={${1:punctuation}}\",\n      \"LongPunct-={${1:punctuation}}\",\n      \"MiddlePunct={${1:punctuation}}\",\n      \"MiddlePunct+={${1:punctuation}}\",\n      \"MiddlePunct-={${1:punctuation}}\",\n      \"PunctWidth=\",\n      \"PunctBoundWidth=\",\n      \"AllowBreakBetweenPuncts\",\n      \"RubberPunctSkip=${1|true,false,plus,minus|}\",\n      \"CheckFullRight\",\n      \"NoBreakCS={${1:commands}}\",\n      \"NoBreakCS+={${1:commands}}\",\n      \"NoBreakCS-={${1:commands}}\",\n      \"Verb=${1|true,false,env,env+|}\",\n      \"LoadFandol\"\n    ],\n    \"\\\\setjamainfont,\\\\setjasansfont,\\\\setjamonofont,\\\\setjafamilyfont\": [\n      \"Alternate=${1:feature}\",\n      \"Annotation=\",\n      \"AutoFakeBold\",\n      \"AutoFakeBold=${1:number}\",\n      \"AutoFakeSlant\",\n      \"AutoFakeSlant=${1:number}\",\n      \"BoldFeatures={${1:features}}\",\n      \"BoldFont=${1:font name}\",\n      \"BoldItalicFeatures={${1:features}}\",\n      \"BoldItalicFont=${1:font name}\",\n      \"BoldSlantedFeatures={${1:features}}\",\n      \"BoldSlantedFont=${1:font name}\",\n      \"BoldSwashFeatures={${1:features}}\",\n      \"BoldSwashFont=${1:font name}\",\n      \"CJKShape=${1|Traditional,Simplified,JIS1978,JIS1983,JIS1990,Expert,NLC|}\",\n      \"CharacterVariant={${1:glyph num list}:${2:variety num}}\",\n      \"CharacterWidth=${1|Proportional,Full,Half,Thurd,Quarter,AlternateProportional,AlternateHalf,ResetAll|}\",\n      \"Color=\",\n      \"Colour=\",\n      \"Contextuals=${1|Swash,Alternate,WordInitial,WordFinal,LineFinal,Inner,ResetAll|}\",\n      \"Diacritics=${1|MarkToBase,MarkToMark,AboveBase,BelowBase,ResetAll|}\",\n      \"Extension=${1:extension}\",\n      \"FakeBold=${1:number}\",\n      \"FakeSlant=${1:number}\",\n      \"FakeStretch=${1:number}\",\n      \"FallBack\",\n      \"FallBack=${1:font name}\",\n      \"Font=${1:font name}\",\n      \"FontFace={${1:series}}{${2:shape}}{${3:font name}}\",\n      \"Fractions=${1|On,Off,Reset,Alternate,ResetAll|}\",\n      \"HyphenChar=${1:character}\",\n      \"IgnoreFontspecFile\",\n      \"ItalicFeatures={${1:features}}\",\n      \"ItalicFont=${1:font name}\",\n      \"Kerning=${1|On,Off,Reset,Uppercase,ResetAll|}\",\n      \"Language=${1:language}\",\n      \"LetterSpace=${1:number}\",\n      \"Letters=${1|SmallCaps,PetiteCaps,UppercaseSmallCaps,UppercasePetiteCaps,Unicase,ResetAll|}\",\n      \"Ligatures=${1|Required,Common,Contextual,Rare,Discretionary,Historic,TeX|}\",\n      \"LocalForms=${1|On,Off,Reset|}\",\n      \"Mapping=${1|fullwidth-stop,full-stop,han-trad,han-simp|}\",\n      \"NFSSFamily=${1:font family}\",\n      \"Numbers=${1|Uppercase,UppercaseOff,Lowercase,LowercaseOff,Lining,LiningOff,OldStyle,OldStyleOff,Proportional,ProportionalOff,Monospaced,MonospacedOff,SlashedZero,SlashedZeroOff,Arabic,ArabicOff,ResetAll|}\",\n      \"OpticalSize=${1:size}\",\n      \"Ornament=\",\n      \"Path=${1:file path}\",\n      \"PunctuationSpace=${1:number}\",\n      \"RawFeature=${1:feature tag}\",\n      \"Scale=${1:number}\",\n      \"ScaleAgain=${1:number}\",\n      \"Script=${1:name}\",\n      \"Size=${1:number}\",\n      \"SizeFeatures={${1:features}}\",\n      \"SlantedFeatures={${1:features}}\",\n      \"SlantedFont=${1:font name}\",\n      \"SmallCapsFeatures={${1:features}}\",\n      \"SmallCapsFont=${1:font name}\",\n      \"Style=${1|Alternate,Italic,Ruby,Swash,Cursive,Historic,Titling,HorizontalKana,VerticalKana,ResetAll|}\",\n      \"StylisticAlternates=${1:feature}\",\n      \"StylisticSet=${1:set number}\",\n      \"SwashFeatures={${1:features}}\",\n      \"SwashFont=${1:font name}\",\n      \"UprightFeatures={${1:features}}\",\n      \"UprightFont=${1:font name}\",\n      \"Variant=${1:integer}\",\n      \"Vertical=${1|RotatedGlyphs,AlternatesForRotation,Alternates,KanaAlternates,Kerning,AlternateMetrics,HalfMetrics,ProportionalMetrics,ResetAll|}\",\n      \"VerticalPosition=${1|Superior,Inferior,Numerator,Denominator,ScientificInferior,Ordinal,ResetAll|}\",\n      \"WordSpace=${1:number}\",\n      \"Mapping=${1:xetex-only feature}\",\n      \"Renderer=${1:renderer}\"\n    ]\n  },\n  \"args\": [\n    \"\\\\usepackage/zxjatype#c\"\n  ]\n}"
  },
  {
    "path": "dev/parse-cwl.ts",
    "content": "// https://texstudio-org.github.io/background.html#description-of-the-cwl-format\nimport * as fs from 'fs'\nimport type { DependencyRaw, EnvironmentRaw, MacroRaw, PackageRaw } from '../src/types'\n\nlet _defaultMacros: string[] = []\n/**\n * Checks if a given macro is a default macro.\n * @param macro - The macro to check.\n * @param defaults - Optional. The list of default macros. If not provided, it\n * will be loaded from '../data/macros.json'.\n * @returns A boolean indicating whether the macro is a default macro.\n */\nfunction isDefaultMacro(macro: string, defaults?: string[]): boolean {\n    if (defaults === undefined && _defaultMacros.length === 0) {\n        _defaultMacros = (JSON.parse(fs.readFileSync('../data/macros.json').toString()) as MacroRaw[]).map(\n            (m) => m.name + (m.arg?.format ?? '')\n        )\n    }\n    defaults = defaults ?? _defaultMacros\n    return defaults.includes(macro)\n}\n\nlet _unimathSymbols: { [key: string]: { command: string, detail: string, documentation: string } } = {}\n/**\n * Retrieves the symbol information for a given macro from the unimathSymbols\n * data. If the unimathSymbols data is not provided, it will be loaded from\n * '../data/unimathsymbols.json'.\n * @param macro - The macro for which to retrieve the symbol information.\n * @param defaults - Optional. The default unimathSymbols data to use if not\n * provided.\n * @returns The symbol information for the given macro.\n */\nfunction getUnimathSymbol(macro: string, defaults?: typeof _unimathSymbols) {\n    if (defaults === undefined && Object.keys(_unimathSymbols).length === 0) {\n        _unimathSymbols = JSON.parse(fs.readFileSync('../data/unimathsymbols.json').toString()) as {\n            [key: string]: { command: string, detail: string, documentation: string }\n        }\n    }\n    defaults = defaults ?? _unimathSymbols\n    return defaults[macro]\n}\n\n/**\n * Checks if a line should be skipped.\n *\n * @param line - The line to check.\n * @returns `true` if the line should be skipped, `false` otherwise.\n */\nfunction isSkipLine(line: string): boolean {\n    if (line === '') {\n        return true\n    }\n    if (\n        line.startsWith('#') &&\n        !line.startsWith('#include') &&\n        // !line.startsWith('#repl') &&\n        !line.startsWith('#keyvals') &&\n        !line.startsWith('#ifOption')\n    ) {\n        return true\n    }\n    return false\n}\n\n/**\n * Parses an array of lines and performs specific actions based on the content of each line.\n *\n * @param pkg - The package object objbe modifiedo be modified.\n * @param lines - The array of lines to be be padrsed.\n * @param ifCond - An optional condition to be be evaludated.\n */\nfunction parseLines(pkg: PackageRaw, lines: string[], ifCond?: string): void {\n    for (let index = 0; index < lines.length; index++) {\n        const line = lines[index].trim()\n        if (isSkipLine(line)) {\n            continue\n        }\n        if (line.startsWith('#include')) {\n            parseInclude(pkg, line, ifCond)\n        } else if (line.startsWith('#keyvals')) {\n            let endIndex = lines.slice(index).findIndex((l) => l.startsWith('#endkeyvals')) + index\n            if (endIndex < index) {\n                endIndex = Number.MAX_SAFE_INTEGER\n            }\n            const tag = line.slice(9).trim()\n            parseKeys(pkg, lines.slice(index + 1, endIndex), tag)\n            assignKeys(pkg, tag)\n            index = endIndex\n        } else if (line.startsWith('#ifOption')) {\n            let endIndex = lines.slice(index).findIndex((l) => l.startsWith('#endif')) + index\n            if (endIndex < index) {\n                endIndex = Number.MAX_SAFE_INTEGER\n            }\n            parseLines(pkg, lines.slice(index + 1, endIndex), line.slice(10).trim())\n            index = endIndex\n        } else if (line.startsWith('\\\\begin{')) {\n            parseEnv(pkg, line, ifCond)\n        } else if (line.startsWith('\\\\end{')) {\n            continue\n        } else if (line.startsWith('\\\\')) {\n            parseMacro(pkg, line, ifCond)\n        } else {\n            console.warn('Unknown line: ' + line)\n        }\n    }\n}\n\n/**\n * Parses an include statement and adds the dependency to the package.\n *\n * @param pkg - The package to add the dependency to.\n * @param line - The include statement.\n * @param ifCond - Optional condition for the dependency.\n */\nfunction parseInclude(pkg: PackageRaw, line: string, ifCond?: string): void {\n    const dep: DependencyRaw = { name: line.slice(9).trim() }\n    if (ifCond) {\n        dep.if = ifCond\n    }\n    pkg.deps.push(dep)\n}\n\n/**\n * Parses the key-val keys from the given lines.\n *\n * @param pkg - The package object to add the keys to.\n * @param lines - The lines to parse the keys from.\n * @param tag - The tag to add the keys to in the package.\n */\nfunction parseKeys(pkg: PackageRaw, lines: string[], tag: string): void {\n    const keys: string[] = []\n    for (const line of lines) {\n        if (isSkipLine(line)) {\n            continue\n        }\n        let snippet = line.trim()\n        // cachedir=%<directory%> => cachedir=${1:directory}\n        let index = 1\n        while (true) {\n            const match = /%<([^%]*?)%>/.exec(snippet)\n            if (match === null) {\n                break\n            }\n            snippet = snippet.replace(/%<([^%]*?)%>/, `$$\\{${index}:${match[1]}}`)\n            index++\n        }\n        const match = /^([^#]*?)(=)?#([^%#]+)$/.exec(snippet)\n        if (match) {\n            // cache=#true,false => cache=${1|true,false|}\n            snippet = match[1] + (match[2] === '=' ? `=$\\{${index}|${match[3]}|}` : '')\n        } else {\n            // numbersep=##L => numbersep=\n            snippet = snippet.split('#')[0]\n        }\n        keys.push(snippet)\n    }\n    pkg.keys[tag] = [...(pkg.keys[tag] ?? []), ...keys]\n}\n\n/**\n * Assigns keys to the specified package, macros, and environments with the\n * given tag.\n *\n * @param pkg - The package to assign keys to.\n * @param tag - The tag used to assign keys.\n */\nfunction assignKeys(pkg: PackageRaw, tag: string) {\n    for (let context of tag.split(',')) {\n        if (context.startsWith('\\\\documentclass') || context.startsWith('\\\\usepackage')) {\n            if (!pkg.args.includes(tag)) {\n                pkg.args.push(tag)\n            }\n            continue\n        }\n        // \\includepdf,includepdfmerge,\\includepdfset => \\includepdf,\\includepdfmerge,\\includepdfset\n        if (!context.startsWith('\\\\')) {\n            context = '\\\\' + context\n        }\n        context = context.split('#')[0]\n        const isEnv = context.startsWith('\\\\begin')\n        const name = context.startsWith('\\\\begin') ? context.slice(7, -1) : context.slice(1)\n        for (const candidate of isEnv ? pkg.envs : pkg.macros) {\n            if (candidate.name === name && candidate.arg) {\n                const keyPos = findKeyPos(candidate.arg.snippet)\n                if (keyPos > -1) {\n                    candidate.arg.keys = candidate.arg.keys ?? []\n                    if (!candidate.arg.keys.includes(tag)) {\n                        candidate.arg.keys.push(tag)\n                    }\n                    candidate.arg.keyPos = keyPos\n                }\n            }\n        }\n    }\n}\n\n/**\n * Finds the position of a key in a given snippet.\n *\n * @param snippet - The snippet to search for the key position.\n * @returns The position of the key in the snippet, or -1 if not found.\n */\nfunction findKeyPos(snippet: string): number {\n    const matches = snippet.matchAll(/\\{\\$\\{([^{}]*)\\}\\}|\\[\\$([^[\\]]*)\\]|<\\$([^<>]*)>|\\|\\$([^<>]*)\\|/g)\n    let index = 0\n    for (const match of matches) {\n        const context = (match[1] ?? match[2] ?? match[3] ?? match[4]).replace(/[{}0-9:]+/g, '')\n        if (\n            context.startsWith('keys') ||\n            context.startsWith('keyvals') ||\n            context.startsWith('options') ||\n            context.endsWith('%keyvals')\n        ) {\n            return index\n        }\n        index++\n    }\n    return -1\n}\n\n/**\n * Parses an environment line and constructs an EnvironmentRaw object.\n *\n * @param pkg - The PackageRaw object to add the environment to.\n * @param line - The environment line to parse.\n * @param ifCond - Optional condition for the environment.\n * @returns void\n *\n * @remarks\n * This function takes a line of code representing an environment and parses it\n * to construct an EnvironmentRaw object. The line should be in the format\n * `\\begin{environmentName}[options%keyvals]{language}#M`. If the line does not\n * match this format, an error will be logged and the function will return. If\n * the line includes the option `S`, the function will return without adding the\n * environment to the package. Otherwise, the function will construct an\n * EnvironmentRaw object using the `constructMacroEnv` function and add it to\n * the `envs` array of the provided `pkg` object.\n */\nfunction parseEnv(pkg: PackageRaw, line: string, ifCond?: string): void {\n    // \\begin{minted}[options%keyvals]#S\n    // \\begin{minted}{language}#MV\n    // \\begin{minted}[options%keyvals]{language}#M\n    const match = /\\\\begin{(.*?)}([^#]*)(?:#(.*))?$/.exec(line)\n    if (match === null) {\n        console.error('Unknown env line: ' + line)\n        return\n    }\n    if (match.length === 4 && match[3] && match[3].includes('S')) {\n        return\n    }\n    const env: EnvironmentRaw | undefined = constructMacroEnv({ name: match[1] }, match, false, ifCond)\n    if (env) {\n        pkg.envs.push(env)\n    }\n}\n\n/**\n * Parses a macro in a LaTeX document.\n *\n * @param pkg - The package object to store the parsed macro.\n * @param line - The line of code containing the macro.\n * @param ifCond - Optional condition for the macro.\n * @returns void\n *\n * @remarks\n * This function is responsible for parsing a macro in a LaTeX document. It\n * takes the package object, the line of code containing the macro, and an\n * optional condition for the macro. The parsed macro is then stored in the\n * package object.\n *\n * The function handles special cases in the LaTeX document, such as macros\n * starting with \"\\\\left\" and containing \"\\\\right\", or macros starting with\n * \"\\\\bigg\". It also handles macros of the form\n * \"\\\\mint[keys]{language}{verbatimSymbol}#S\" and\n * \"\\\\mintinline[keys]{language}{verbatimSymbol}#S\".\n *\n * If the parsed macro is not a default macro, it checks if there is a\n * corresponding Unicode math symbol for the macro. If a Unicode math symbol is\n * found, the macro's detail and documentation are updated accordingly.\n */\nfunction parseMacro(pkg: PackageRaw, line: string, ifCond?: string): void {\n    // Special cases in latex-document\n    if (/(?:\\\\left|\\\\right)[^a-zA-Z]/.test(line)) {\n        return\n    }\n    // Special cases in latex-document and tex, e.g., \\Bigg(%|\\Bigg)#mM\n    if (line.toLowerCase().split('\\\\big').length === 3) {\n        return handleBigMacros(pkg, line)\n    }\n    // \\mint[keys]{language}{verbatimSymbol}#S\n    // \\mint{%<language%>}|%<code%>|#M\n    // \\mint[%<options%>]{%<language%>}|%<code%>|#M\n    // \\mintinline[keys]{language}{verbatimSymbol}#S\n    // \\mintinline{%<language%>}|%<code%>|#M\n    const match = /\\\\([^[{\\n]*?)((?:\\{|\\[|\\(|\\|)[^#\\n]*)?(?:#(.*))?$/.exec(line)\n    if (match === null) {\n        console.error('Unknown macro line: ' + line)\n        return\n    }\n    if (match.length === 4 && match[3] && match[3].includes('S')) {\n        return\n    }\n    const macro: MacroRaw | undefined = constructMacroEnv({ name: match[1] }, match, true, ifCond)\n\n    if (macro && !isDefaultMacro(macro.name + (macro.arg?.format ?? ''))) {\n        const unimath = getUnimathSymbol(macro.name)\n        if (unimath?.detail) {\n            macro.detail = unimath.detail\n        }\n        if (unimath?.documentation) {\n            macro.doc = unimath.documentation\n        }\n        pkg.macros.push(macro)\n    }\n}\n\nfunction handleBigMacros(pkg: PackageRaw, line: string): void {\n    let snippet = line.slice(1, line.lastIndexOf('#')) // Remove leading backslash and type indicator\n    snippet = snippet\n        .replaceAll('%|', '${1}') // Replace %| with cursor position\n        .replaceAll('%<..%>', '${1}') // Remove %<..%> with cursor position\n        .replaceAll('\\\\}', '\\\\\\\\}') // Right curly brace needs double escape\n    const macro: MacroRaw = {\n        name: line.slice(1, line.indexOf('%')),\n        arg: {\n            format: '',\n            snippet,\n        },\n    }\n    pkg.macros.push(macro)\n    return\n}\n\n/**\n * Constructs a macro environment based on the provided context, match, and\n * ifCond parameters.\n *\n * @param context - The context object representing a MacroRaw or\n * EnvironmentRaw.\n * @param match - The RegExpExecArray containing the matched values.\n * @param ifCond - Optional. The if condition for the context.\n * @returns The constructed macro environment or undefined if the name or\n * argument format contains invalid characters.\n */\nfunction constructMacroEnv(\n    context: MacroRaw | EnvironmentRaw,\n    match: RegExpExecArray,\n    isMacro: boolean,\n    ifCond?: string\n): typeof context | undefined {\n    if (ifCond) {\n        context.if = ifCond\n    }\n    if (match.length === 4 && match[3] && match[3].includes('*')) {\n        context.unusual = true\n    }\n    if (match[2]) {\n        const arg = match[2]\n            .replace(/\\{[^{}]*\\}/g, '{}')\n            .replace(/\\[[^[\\]]*\\]/g, '[]')\n            .replace(/(?<![{\\s:[])(<)([a-zA-Z\\s]*)(>)/g, '<>')\n            .replace(/\\|[^|]*\\|/g, '||')\n            .replace(/\\([^()]*\\)/g, '()')\n        if (arg !== '') {\n            context.arg = { format: arg, snippet: (isMacro ? match[1] : '') + createSnippet(match[2]) }\n        }\n    }\n    if (/[^A-Za-z0-9{}[\\]<>|()*_^:,\\s]/.test(context.name + context.arg?.format)) {\n        return\n    }\n    return context\n}\n\n/**\n * Creates a snippet based on the given argument.\n *\n * @param arg - The argument to create the snippet from.\n * @returns The generated snippet.\n */\nfunction createSnippet(arg: string): string {\n    let index = 1\n    // {} [] <> ||\n    for (const regexp of [\n        /(\\{)(?![$0-9])([^{}]*)(\\})/,\n        /(\\[)(?!\\$)([^[\\]]*)(\\])/,\n        /(?<![{\\s:[])(<)(?!\\$)([a-zA-Z\\s]*)(>)/,\n        /(\\|)(?!\\$)([^|]*)(\\|)/,\n    ]) {\n        while (true) {\n            const newArg = findArg(arg, regexp, index)\n            if (newArg === false) {\n                break\n            }\n            arg = newArg\n            index++\n        }\n    }\n    // (x1,x2,x3) => (${1:x1},${2:x2},${3:x3})\n    while (true) {\n        const match = arg.match(/\\(([^()$]+)\\)/)\n        if (match === null || match[1] === '') {\n            break\n        }\n        arg = arg.replace(\n            /\\(([^()$]+)\\)/,\n            '(' +\n                match[1]\n                    .split(',')\n                    .map((val) => `$$\\{${index++}:${val}}`)\n                    .join(',') +\n                ')'\n        )\n    }\n    // [${1:plain}]%| => [${1:plain}]${2}\n    while (true) {\n        const tabPos = arg.indexOf('%|')\n        if (tabPos === -1) {\n            break\n        }\n        arg = arg.replace('%|', `$$\\{${index++}}`)\n    }\n    return arg\n}\n\n/**\n * Finds and replaces a specific argument in a string using a regular\n * expression.\n *\n * @param arg - The string containing the argument to be replaced.\n * @param regexp - The regular expression used to match the argument.\n * @param index - The index used in the replacement string.\n * @returns The modified string with the argument replaced, or `false` if the\n * argument was not found.\n *\n * @remarks\n * This function searches for a specific argument in the given string using the\n * provided regular expression. If the argument is found, it replaces it with a\n * modified version based on the provided index. The modified string is then\n * returned. If the argument is not found, the function returns `false`.\n */\nfunction findArg(arg: string, regexp: RegExp, index: number): string | false {\n    const match = arg.match(regexp)\n    if (match === null || match[2] === undefined) {\n        return false\n    }\n    return arg.replace(\n        regexp,\n        `${match[1]}$$\\{${index}:${match[2].replaceAll('%<', '').replaceAll('%>', '')}}${match[3]}`\n    )\n}\n\n/**\n * Parses a package with the given package name.\n *\n * @param pkgName - The name of the package to parse.\n * @returns The parsed package object.\n */\nfunction parsePkg(pkgName: string): PackageRaw {\n    let content = fs.readFileSync(`cwl/${pkgName}.cwl`).toString()\n    content = handleKomaClasses(pkgName, content)\n    const pkg: PackageRaw = { deps: [], macros: [], envs: [], keys: {}, args: [] }\n    parseLines(pkg, content.split('\\n'))\n    return pkg\n}\n\nfunction handleKomaClasses(pkgName: string, content: string): string {\n    if (!['class-scrartcl', 'class-scrbook', 'class-scrreprt', 'class-scrartcl,scrreprt,scrbook'].includes(pkgName)) {\n        return content\n    }\n    if (pkgName === 'class-scrartcl,scrreprt,scrbook') {\n        return ''\n    }\n    const baseContent = fs.readFileSync('cwl/class-scrartcl,scrreprt,scrbook.cwl').toString()\n    return baseContent + '\\n' + content\n}\n\n/**\n * Parses an array of file paths and converts CWL files to JSON format.\n *\n * @param files - An array of file paths to be parsed.\n * @param folder - The folder where the JSON files will be saved.\n */\nfunction parseFiles(files: string[], folder: string) {\n    for (const file of files) {\n        console.log(file)\n        if (!file.endsWith('.cwl') || file === 'expl3.cwl') {\n            continue\n        }\n        const pkgName = file.replace('.cwl', '')\n        const pkg = parsePkg(pkgName)\n        fs.writeFileSync(`${folder}/${pkgName}.json`, JSON.stringify(pkg, null, 2))\n    }\n}\n\n/**\n * Parses the expl3.cwl file and generates a JSON representation of the package.\n *\n * @remarks\n * This function reads the content of the 'expl3.cwl' file, parses it line by\n * line, and generates a JSON object representing the package. The generated\n * package object includes dependencies, macros, environments, keys, and\n * arguments. Additionally, it adds a macro named 'ExplSyntaxOn' to the\n * package's macros array.\n *\n * @returns void\n */\nfunction parseExpl3() {\n    const content = fs.readFileSync('expl3.cwl').toString()\n    const pkg: PackageRaw = { deps: [], macros: [], envs: [], keys: {}, args: [] }\n    parseLines(pkg, content.split('\\n'))\n    pkg.macros.push({\n        name: 'ExplSyntaxOn',\n        arg: { format: '', snippet: 'ExplSyntaxOn\\n\\t$0\\n\\\\ExplSyntaxOff' },\n        doc: 'Insert an \\\\ExplSyntax block',\n    })\n    fs.writeFileSync('../data/packages/expl3.json', JSON.stringify(pkg, null, 2))\n}\n\n/**\n * Parses the essential package files.\n */\nfunction parseEssential() {\n    const files = fs.readFileSync('cwl.list').toString().split('\\n')\n    parseFiles(files, '../data/packages')\n    parseExpl3()\n}\n\n/**\n * Parses all package files.\n */\nfunction parseAll() {\n    const files = fs.readdirSync('cwl')\n    parseFiles(files, 'packages')\n}\n\nswitch (process.argv[2]) {\n    case 'both':\n        parseEssential()\n        parseAll()\n        break\n    case 'all':\n        parseAll()\n        break\n    case 'ess':\n    case 'essential':\n        parseEssential()\n        break\n    default:\n        if (process.argv[2].endsWith('.cwl')) {\n            parseFiles([process.argv[2]], 'packages')\n        } else {\n            console.warn('ts-node parse-cwl.ts both|all|ess|essential|*.cwl')\n        }\n        break\n}\n"
  },
  {
    "path": "dev/pkgcommand.py",
    "content": "# python pkgcommand.py -a -o ../dev/packages\n# python pkgcommand.py -o ../data/packages\n\nimport json\nimport argparse\nimport sys\nimport dataclasses\nfrom pathlib import Path\nfrom typing import List\nfrom pyintel import CwlIntel\n\nFILES_TO_IGNORE = ['diagxy.cwl', 'calculator.cwl', 'calculus.cwl', 'expl3.cwl']\nFILES_TO_REMOVE_SPACES_IN = ['chemformula.cwl', 'context-document.cwl', 'class-beamer.cwl', 'csquotes.cwl', 'datatool.cwl', 'newclude.cwl', 'pgfplots.cwl', 'tabu.cwl', 'tikz.cwl']\n\nCWD = Path(__file__).expanduser().resolve().parent\nUNIMATHSYMBOLS = CWD.joinpath('unimathsymbols.txt').resolve()\nCOMMANDS_FILE = CWD.joinpath('../data/commands.json').resolve()\nENVS_FILE = CWD.joinpath('../data/environments.json').resolve()\nOUT_DIR = CWD.joinpath('../data/packages').resolve()\nINFILES = None\n\nparser = argparse.ArgumentParser()\nparser.add_argument('-o', '--outdir', help=f'Directory where to write the JSON files. Default is {OUT_DIR}', type=str)\nparser.add_argument('-i', '--infile', help='Files to process. Default is the content from cwl.list and cwl/ folder', type=str, nargs='+')\nparser.add_argument('-a', '--all', help='Process all .cwl files in cwl/ folder', action='store_true')\nargs = parser.parse_args()\n\nif args.outdir:\n    OUT_DIR = Path(args.outdir).expanduser().resolve()\n    if not OUT_DIR.is_dir():\n        print(f'The path passed to --outdir is not a directory: {args.outdir}')\n        sys.exit(0)\nif args.infile:\n    INFILES = args.infile\nif args.all:\n    INFILES = [f for f in CWD.joinpath('cwl').iterdir() if f.suffix == '.cwl']\n\n\ndef get_cwl_files() -> List[Path]:\n    \"\"\" Get the list of cwl files from github if not already available on disk.\"\"\"\n    files = []\n    with open('cwl.list', mode='r', encoding='utf8') as l:\n        candidates = l.read().splitlines()\n    for f in CWD.joinpath('cwl').iterdir():\n        if f.suffix == '.cwl' and f.name in candidates:\n            files.append(f)\n    return files\n\ndef dump_dict(dictionary, out_json):\n    if dictionary != {}:\n        json.dump(dictionary, open(out_json, 'w', encoding='utf8'), indent=2, ensure_ascii=False)\n\n\ndef parse_cwl_files(cwl_files):\n    cwlIntel = CwlIntel(COMMANDS_FILE, ENVS_FILE, UNIMATHSYMBOLS)\n    for cwl_file in cwl_files:\n        # Skip some files\n        print(cwl_file)\n        if cwl_file.name in FILES_TO_IGNORE:\n            continue\n        remove_spaces = False\n        if cwl_file.name in FILES_TO_REMOVE_SPACES_IN:\n            remove_spaces = True\n        pkg = cwlIntel.parse_cwl_file(cwl_file, remove_spaces)\n        with open(OUT_DIR.joinpath(change_json_name(cwl_file.stem) + '.json'), 'w', encoding='utf8') as fp:\n            json.dump(dataclasses.asdict(pkg, dict_factory=lambda x: {k: v for (k, v) in x if v is not None}), fp, indent=2, ensure_ascii=False)\n\ndef change_json_name(file_stem):\n    if (file_stem in ['yathesis']):\n        return 'class-' + file_stem\n    return file_stem\n\nif __name__ == '__main__':\n    if INFILES is None:\n        cwl_files = get_cwl_files()\n    else:\n        # Convert to an array of Path objects\n        cwl_files = [Path(f) for f in INFILES]\n\n    parse_cwl_files(cwl_files)\n"
  },
  {
    "path": "dev/pyintel/__init__.py",
    "content": "from .uni import generate_unimathsymbols_intel\nfrom .ctanpkg import CtanPkg\nfrom .pkgcommand import CwlIntel\n"
  },
  {
    "path": "dev/pyintel/ctanpkg.py",
    "content": "'''\nFetch the latest list of packages and their descriptions\nfrom CTAN at https://ctan.org/pkg and save the result as a json file.\n\nThe result is used to generate usepackage and documentclass\nintellisense for LaTeX Workshop.\n'''\n\nfrom pathlib import Path\nimport json\nimport requests\n\n# The file parse_tlpdb.py comes TeX Live Utility, which is a Mac OS X graphical interface for TeX Live Manager. https://github.com/amaxwell/tlutility/blob/master/parse_tlpdb.py\nfrom . import parse_tlpdb\n\nclass CtanPkg:\n    \"\"\"\n    :ctan_source: The url to retrieve the list of packages from CTAN.\n    :ctan_dict: A dictionnary indexed by package names. Each entry contains the following\n    dictionnary entries: `command`, `documentation`, `detail`.\n    :tl_packages: The array of all packages available in TeXLive. Every element is a `TLPackage` object\n    :tl_packages_index_map: The dictionnary of all packages listed in `tl_packages` giving their index in the array\n    :tl_all_files: The array of all `.sty` and `.cls` files listed as runfiles in `tl_packages`\n    :extra_packages:  A dictionnary of extra packages to include.\n    \"\"\"\n\n    def __init__(self, extra_packages_file=None, ctan_source='https://ctan.org/json/2.0/packages',tlpdb_url='https://mirrors.ircam.fr/pub/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb'):\n        \"\"\"\n        :param extra_packages_file: The full path to the JSON file containing some extra entries in the same format as `ctan_dict`\n        \"\"\"\n\n        self.ctan_dict = {}\n        self.tl_packages = []\n        self.tl_packages_index_map = {}\n        self.extra_packages = {}\n        self.tl_all_files = []\n        self._load_extra_packages(extra_packages_file)\n        self._build_ctan_dict(ctan_source)\n        self._read_tlpdb(tlpdb_url)\n\n\n    def _load_extra_packages(self, extra_packages_file):\n        if extra_packages_file is not None:\n            try:\n                self.extra_packages = json.load(open(extra_packages_file))\n            except:\n                print('Cannot read {}'.format(extra_packages_file))\n\n\n    def _build_ctan_dict(self, ctan_source):\n        try:\n            print('Dowloading CTAN package list...')\n            ctan_list = requests.get(ctan_source).json()\n        except:\n            print('Cannot get package list from {}'.format(ctan_source))\n            return\n        for x in ctan_list:\n            self.ctan_dict[x['key']] = {}\n            self.ctan_dict[x['key']]['command'] = x['key']\n            self.ctan_dict[x['key']]['documentation'] = 'https://ctan.org/pkg/' + x['key']\n            self.ctan_dict[x['key']]['detail'] = x['caption']\n\n\n    def _read_tlpdb(self, tlpdb_url):\n        try:\n            print('Downloading TL Package DB...')\n            r = requests.get(tlpdb_url)\n            r.encoding = 'utf-8' # No encoding is present in the response as it is ASCII, we have to enforce it to get strings and not bytes.\n            self.tl_packages, self.tl_packages_index_map = parse_tlpdb.packages_from_tlpdb(r.iter_lines(decode_unicode=True))\n        except:\n            print('Cannot retrieve the tlpdb file from {}'.format(tlpdb_url))\n            return\n        self.tl_all_files = [Path(f).name for pkg in self.tl_packages for f in pkg.runfiles if Path(f).suffix in ['.sty', '.def', '.cls'] ]\n\n\n    def package2sty(self, pkgname):\n        \"\"\"\n        Find the main .sty file for a given package\n\n        :return a filename without the .sty extension or None\n        \"\"\"\n        styname = pkgname + '.sty'\n        if styname in self.tl_all_files:\n            return pkgname\n        if pkgname in self.tl_packages_index_map:\n            files = [Path(f) for f in self.tl_packages[self.tl_packages_index_map[pkgname]].runfiles]\n            if pkgname + '.sty' in files:\n                return pkgname\n            else:\n                for f in files:\n                    if f.name.lower() == pkgname + '.sty':\n                        return f.stem\n        return None\n\n\n    def pkg_exists(self, pkgname, suffix):\n        \"\"\"\n        Check if a file pkgname + suffix exists in `tl_all_files`\n\n        :param pkgname: The name of a package\n        :param suffix: The suffix to add to get a real file name\n        \"\"\"\n        if pkgname in self.tl_packages_index_map:\n            files = [Path(f).name for f in self.tl_packages[self.tl_packages_index_map[pkgname]].runfiles]\n            if pkgname + suffix in files:\n                return True\n        return False\n\n\n    def get_classes(self):\n        \"\"\"\n        Get all the .cls files in `tl_all_files` and extract the corresponding details from `ctan_dict` if the entry exists\n        \"\"\"\n        class_data = {}\n        for c in self.tl_all_files:\n            if not c.endswith('.cls'):\n                continue\n            base = Path(c).stem\n            detail = ''\n            documentation = ''\n            if base in self.ctan_dict:\n                detail = self.ctan_dict[base]['detail']\n                documentation = self.ctan_dict[base]['documentation']\n            class_data[base] = {}\n            class_data[base]['command'] = base\n            class_data[base]['detail'] = detail\n            class_data[base]['documentation'] = documentation\n        return class_data\n\n\n    def get_packages(self):\n        \"\"\"\n        Get the packages for which a .sty file exists and the extra_packages\n        \"\"\"\n        packages = {}\n        for pkg in self.ctan_dict:\n            basefile = self.package2sty(pkg)\n            if basefile is not None:\n                packages[pkg] = self.ctan_dict[pkg].copy()\n                packages[pkg]['command'] = basefile\n        for pkg in self.extra_packages:\n            if pkg not in packages.keys():\n                packages[pkg] = self.extra_packages[pkg].copy()\n        return packages\n"
  },
  {
    "path": "dev/pyintel/parse_tlpdb.py",
    "content": "#!/usr/bin/env python\n\n#\n# This software is Copyright (c) 2010-2016\n# Adam Maxwell. All rights reserved.\n# \n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions\n# are met:\n# \n# - Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n# \n# - Redistributions in binary form must reproduce the above copyright\n# notice, this list of conditions and the following disclaimer in\n# the documentation and/or other materials provided with the\n# distribution.\n# \n# - Neither the name of Adam Maxwell nor the names of any\n# contributors may be used to endorse or promote products derived\n# from this software without specific prior written permission.\n# \n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n#\n    \n# Python 2.x and 3.x handle strings differently.  In python 3.x, all strings are unicode instances.  That means they\n# don't have the decode() method.  As a hack, I'm testing the version number and using decode() only if the python\n# version number is less than 3.\nimport sys\npython_major_version = sys.version_info[0]\n\n# Changed exception handlers to use 'except Exception as e'\n# which breaks compatibility with python 2.5.x and earlier. According to\n# some rando, Snow Leopard shipped with 2.6 as default, so this should be okay.\n    \n# sys.stdout has been changed between python 2 and 3.  The result is that when you write to sys.stdout, it accepts bytes\n# rather than strings now.  This trips up plistlib.PlistWriter, which expects to be writing strings.  As a hack around\n# that, I'm writing to a StringIO object, and then writing that to sys.stdout.  Not the best way of doing things, but\n# until I know of something better, this is it.\nimport io\n    \nclass TLPackage(object):\n    \"\"\"TeX Live Package\n    \n    Conceptually this is nothing more than a dictionary.  It's able to\n    convert itself to an sqlite3 row and a dictionary value.\n    \n    \"\"\"\n    mirror = None\n    \n    def __init__(self):\n        super(TLPackage, self).__init__()\n        self.name = None\n        self.category = None\n        self.shortdesc = None\n        self.longdesc = None\n        self.catalogue = None\n        self.relocated = 0\n        \n        self.runfiles = []\n        self.runsize = None\n        \n        self.srcfiles = []\n        self.srcsize = None\n        \n        self.docfiles = []\n        self.docsize = None\n        \n        # maps keys (doc filenames) to maps of attributes (details, language)\n        self.docfiledata = {}\n        \n        self.executes = []\n        self.postactions = []\n        \n        # maps keys (arch name) to lists of files\n        self.binfiles = {}\n        # maps keys (arch name) to integer size\n        self.binsize = {}\n        \n        self.depends = []\n        self.revision = None\n        \n        self.cataloguedata = {}\n        \n        self.extradata = {}\n        \n    def add_pair(self, key, value):\n        \"\"\"For data that I don't care about at the moment\"\"\"\n        self.extradata[key] = value\n        \n    def __str__(self):\n        return repr(self)\n        \n    def __repr__(self):\n        s = \"%s: %s\\n  srcsize=%s\\n  srcfiles=%s\" % (self.name, self.shortdesc, self.srcsize, self.srcfiles)\n        s += \"\\n  binsize = %s\\n  binfiles = %s\" % (self.binsize, self.binfiles)\n        s += \"\\n  docsize = %s\\n  docfiles = %s\\n  docfiledata = %s\" % (self.docsize, self.docfiles, self.docfiledata)\n        s += \"\\n  runsize = %s\\n  runfiles = %s\" % (self.runsize, self.runfiles)\n        s += \"\\n  depends = %s\" % (self.depends)\n        s += \"\\n  longdesc = %s\" % (self.longdesc)\n        s += \"\\n  cataloguedata = %s\" % (self.cataloguedata)\n        for k in self.extradata:\n            s += \"\\n  %s = %s\" % (k, self.extradata[k])\n        return s\n        \n    def dictionary_value(self):\n        \"\"\"Returns a dictionary with name as key and attributes as key-value pairs.\n        \n        NOTE: not all attributes are saved, because I don't need all of them.  So if\n        you don't see one in the plist, it may just need to be added as a line here.\n        \n        \"\"\"\n        kv = {}\n        kv[\"name\"] = self.name\n        if self.category: kv[\"category\"] = self.category\n        if self.revision: kv[\"revision\"] = self.revision\n        if self.shortdesc: kv[\"shortDescription\"] = self.shortdesc\n        if self.longdesc: kv[\"longDescription\"] = self.longdesc\n        if self.catalogue: kv[\"catalogue\"] = self.catalogue\n        if self.runfiles: kv[\"runFiles\"] = self.runfiles\n        if self.srcfiles: kv[\"sourceFiles\"] = self.srcfiles\n        if self.binfiles: kv[\"binFiles\"] = self.binfiles\n        if self.cataloguedata: kv[\"catalogueData\"] = self.cataloguedata\n        if self.depends: kv[\"depends\"] = self.depends\n        if self.docfiles: kv[\"docFiles\"] = self.docfiles\n        if self.extradata: kv[\"extradata\"] = self.extradata\n        if self.docfiledata: kv[\"docFileData\"] = self.docfiledata\n        return kv\n        \n    def insert_in_packages(self, conn):\n        \"\"\"Inserts in an open SQLite3 database.  Limited support.\"\"\"\n        # c.execute(\"\"\"CREATE table packages (name text, category text, revision real, shortdesc text, longdesc text, srcfiles blob, binfiles blob, docfiles blob)\"\"\")\n        c = conn.cursor()\n        c.execute(\"\"\"INSERT into packages values (?,?,?,?,?,?,?,?)\"\"\", (self.name, self.category, self.revision, self.shortdesc, self.longdesc, self.runfiles, self.srcfiles, self.docfiles))\n        conn.commit()\n\ndef _attributes_from_line(line):\n    \"\"\"Parse an attribute line.\n    \n    Arguments:\n    line -- a single line from the tlpdb\n    \n    Returns:\n    A dictionary of attributes\n    \n    Example input lines:\n    \n        arch=x86_64-darwin size=1\n        details=\"Package introduction\" language=\"de\"\n        RELOC/doc/platex/pxbase/README details=\"Readme\" language=\"ja\"\n    \n    \"\"\"\n    \n    key = None\n    value = None\n    chars = []\n    quote_count = 0\n    attrs = {}\n    for c in line:\n\n        if c == \"=\":\n            \n            if key == None:\n                assert quote_count == 0, \"possibly quoted key in line %s\" % (line)\n                key = \"\".join(chars)\n                chars = []\n            else:\n                chars.append(c)\n        \n        elif c == \"\\\"\":\n            \n            quote_count += 1\n            \n        elif c == \" \":\n            \n            # if quotes are matched, we've reached the end of a key-value pair\n            if quote_count % 2 == 0:\n                assert key != None, \"no key found for %s\" % (line)\n                assert key not in attrs, \"key already assigned for line %s\" % (line)\n                attrs[key] = \"\".join(chars)\n                \n                # reset parser state\n                chars = []\n                key = None\n                quote_count = 0\n            else:\n                chars.append(c)\n                \n        else:\n            chars.append(c)\n    \n    assert key != None, \"no key found for %s\" % (line)\n    assert len(chars), \"no values found for line %s\" % (line)\n    attrs[key] = \"\".join(chars)\n    return attrs\n\ndef packages_from_tlpdb(flat_tlpdb, allow_partial=False):\n    \"\"\"Creates a list of TLPackage objects from the given file-like object.\n    \n    Arguments:\n    flat_tlpdb -- A file or file-like object, open for reading\n    allow_partial -- Pass True if you want to return partial data after an error;\n    useful in case of a partial tlpdb download. Default is to raise an exception.\n    \n    Returns:\n    A list of TLPackage objects\n    \n    \"\"\"            \n    \n    package = None\n    package_index = 0\n    all_packages = []\n    index_map = {}\n    last_key = None\n    last_arch = None\n\n    for line_idx, line in enumerate(flat_tlpdb):\n    \n        # seems to be absent in TL 2020 (not in stderr?)\n        if line_idx == 0 and line.startswith(\"location-url\\t\"):\n            TLPackage.mirror = line[len(\"location-url\\t\"):].strip()\n            continue\n            \n        # comment lines; supported, but not currently used\n        if line.startswith(\"#\"):\n            continue\n                \n        line = line.strip(\"\\r\\n\")\n    \n        if len(line) == 0:\n            all_packages.append(package)\n            index_map[package.name] = package_index\n            \n            package_index += 1\n            package = None\n            last_key = None\n            last_arch = None\n        else:\n            \n            try:\n                # the first space token is a delimiter\n                key, ignored, value = line.partition(\" \")\n                            \n                if package == None:\n                    assert key == \"name\", \"first line must be a name\"\n                    package = TLPackage()\n        \n                line_has_key = True\n                if len(key) == 0:\n                    key = last_key\n                    line_has_key = False\n                        \n                if key == \"name\":\n                    package.name = value\n                elif key == \"category\":\n                    package.category = value\n                elif key == \"revision\":\n                    package.revision = int(value)\n                elif key == \"relocated\":\n                    package.relocated = int(value)\n                elif key == \"shortdesc\":\n                    if python_major_version < 3:\n                        package.shortdesc = value.decode(\"utf-8\")\n                    else:\n                        package.shortdesc = value\n                elif key == \"longdesc\":\n                    oldvalue = \"\" if package.longdesc == None else package.longdesc\n                    if python_major_version < 3:\n                        package.longdesc = oldvalue + \" \" + value.decode(\"utf-8\")\n                    else:\n                        package.longdesc = oldvalue + \" \" + value\n                elif key == \"depend\":\n                    package.depends.append(value)\n                elif key == \"catalogue\":\n                    package.catalogue = value\n                elif key.startswith(\"catalogue-\"):\n                    catkey = key[len(\"catalogue-\"):]\n                    package.cataloguedata[catkey] = value\n                elif key == \"srcfiles\":\n                    if line_has_key:\n                        attrs = _attributes_from_line(value)\n                        assert \"size\" in attrs, \"missing size for %s : %s\" % (package.name, key)\n                        package.srcsize = int(attrs[\"size\"])\n                    else:\n                        package.srcfiles.append(value)\n                elif key == \"binfiles\":\n                    if line_has_key:\n                        attrs = _attributes_from_line(value)\n                        assert \"arch\" in attrs, \"missing arch for %s : %s\" % (package.name, key)\n                        last_arch = attrs[\"arch\"]\n                        assert \"size\" in attrs, \"missing size for %s : %s\" % (package.name, key)\n                        package.binsize[last_arch] = int(attrs[\"size\"])\n                    else:\n                        oldvalue = package.binfiles[last_arch] if last_arch in package.binfiles else []\n                        oldvalue.append(value)\n                        package.binfiles[last_arch] = oldvalue\n                elif key == \"docfiles\":\n                    # There's an exception handler here because a TL update introduced this abomination:\n                    #   texmf-dist/doc/latex/pythontex/pythontex_quickstart.pdf details=\"\"Quick start\" documentation\"\n                    # due to a bug in the TeX Catalogue. TLPOBJ.pm uses a gruesome special case to handle this, but\n                    # I'm just going to ignore it unless/until it happens again, since it's supposed to be fixed in\n                    # the tlpdb at some point.\n                    try:\n                        if line_has_key:\n                            attrs = _attributes_from_line(value)\n                            assert \"size\" in attrs, \"missing size for %s : %s\" % (package.name, key)\n                            package.docsize = int(attrs[\"size\"])\n                        else:\n                            values = value.split(\" \")\n                            if len(values) > 1:\n                                package.docfiledata[values[0]] = _attributes_from_line(\" \".join(values[1:]))\n                            package.docfiles.append(values[0])\n                    except Exception as e:\n                        sys.stderr.write(\"skipping bad docfile line %d in package %s: %s\\n\" % (line_idx, package.name, line))\n                elif key == \"runfiles\":\n                    if line_has_key:\n                        attrs = _attributes_from_line(value)\n                        assert \"size\" in attrs, \"missing size for %s : %s\" % (package.name, key)\n                        package.runsize = int(attrs[\"size\"])\n                    else:\n                        package.runfiles.append(value)\n                elif key == \"postaction\":\n                    package.postactions.append(value)\n                elif key == \"execute\":\n                    package.executes.append(value)\n                else:\n                    package.add_pair(key, value)\n                    #assert False, \"unhandled line %s\" % (line)\n                \n                last_key = key\n            except Exception as e:\n                if allow_partial:\n                    sys.stderr.write(\"parsed up to junk line \\\"%s\\\"\\n\" % (line))\n                    break\n                else:\n                    raise e\n\n    return all_packages, index_map\n    \ndef _save_as_sqlite(packages, absolute_path):\n    \"\"\"Save a list of packages as an SQLite3 binary file.\n    \n    Arguments:\n    packages -- a list of TLPackage objects\n    absolute_path -- output path for the database\n    \n    An existing file at this path will be removed before writing, to ensure that\n    you end up with a consistent database.  This is mainly for symmetry with the\n    plist writing method.\n    \n    Not all values are saved to sqlite.  Notably runfiles and other dictionary\n    types are not written at present, since they should probably be in a separate\n    table.\n    \n    \"\"\"\n    import sqlite3\n    import os\n    import errno\n    \n    def _adapt_list(lst):\n        if lst is None or len(lst) == 0:\n            return None\n        return buffer(\"\\0\".join(lst).encode(\"utf-8\"))\n\n    sqlite3.register_adapter(list, _adapt_list)\n    sqlite3.register_adapter(tuple, _adapt_list)\n    \n    # plistlib will overwrite the previous file, so do the same with sqlite\n    # instead of adding rows\n    try:\n        os.remove(absolute_path)\n    except OSError as e:\n        if e.errno != errno.ENOENT:\n            raise e\n            \n    assert os.path.exists(absolute_path) == False, \"File exists: %s\" % (absolute_path)\n    conn = sqlite3.connect(absolute_path, detect_types=sqlite3.PARSE_DECLTYPES)\n    c = conn.cursor()\n    c.execute(\"\"\"CREATE table packages (name text, category text, revision real, shortdesc text, longdesc text, runfiles blob, srcfiles blob, docfiles blob)\"\"\")\n    for pkg in all_packages:\n        pkg.insert_in_packages(conn)\n    \n    conn.close()\n    \ndef _save_as_plist(packages, path_or_file):\n    \"\"\"Save a list of packages as a Mac OS X property list.\n    \n    Arguments:\n    packages -- a list of TLPackage objects\n    path_or_file -- output file (path or a file-like object) for the database\n    \n    The root object of the output property list is a dictionary.  Keys at\n    present are \"mirror\" (may not exist) and \"packages\", which is a list\n    of TLPackage dictionary values.\n    \n    \"\"\"\n    import plistlib\n    plist = {}\n    # only for remote tlpdb\n    if TLPackage.mirror:\n        plist[\"mirror\"] = TLPackage.mirror\n    plist[\"packages\"] = []\n    for pkg in all_packages:\n        plist[\"packages\"].append(pkg.dictionary_value())\n    \n    if python_major_version < 3:\n        plistlib.writePlist(plist, path_or_file)\n    else:\n        # Apparently writePlistToBytes() was removed in Python 3.9, but its\n        # replacement of dumps() is only available in 3.4 and later. This is\n        # some silly bullshit. Try the new method first, and fall back to the\n        # old one, I guess.\n        try:\n            bytes_output = plistlib.dumps(plist)\n        except Exception as exc:\n            bytes_output = plistlib.writePlistToBytes(plist)\n            \n        str_output = bytes_output.decode(\"UTF-8\")\n        if path_or_file == sys.stdout:\n            sys.stdout.write(str_output)\n        else:\n            output_file = open(path_or_file, 'w')\n            output_file.write(str_output)\n    \nif __name__ == '__main__':\n    \n    from optparse import OptionParser\n    import sys\n        \n    usage = \"usage: %prog [options] [tlpdb_path or stdin]\"\n    parser = OptionParser()\n    parser.set_usage(usage)\n    parser.add_option(\"-o\", \"--output\", dest=\"output_path\", help=\"write tlpdb to FILE\", metavar=\"FILE\", action=\"store\", type=\"string\")\n    parser.add_option(\"-f\", \"--format\", dest=\"output_format\", help=\"[sqlite3 | plist] (default is to guess from output file extension)\", metavar=\"FORMAT\", action=\"store\", type=\"string\")\n    parser.add_option(\"-p\", \"--partial\", dest=\"allow_partial\", help=\"read file contents until an error occurs and return partial data\", action=\"store_true\", default=False)\n    \n    (options, args) = parser.parse_args(sys.argv[1:])    \n    \n    # can't write sqlite3 to stdout (at least, not easily)\n    if not options.output_path:\n        if options.output_format == \"sqlite3\":\n            sys.stderr.write(\"Must supply an output path for SQLite3\\n\")\n            parser.print_help(file=sys.stderr)\n            exit(1) \n        else:\n            # either no format given or no output path given; in either case, this requires a plist format\n            options.output_format = \"plist\"\n            options.output_path = sys.stdout\n\n    if not options.output_format:\n        dot_idx = options.output_path.rfind(\".\") + 1\n        if dot_idx != -1:\n            options.output_format = options.output_path[dot_idx:]\n            if options.output_format not in (\"sqlite3\", \"plist\"):\n                sys.stderr.write(\"Unable to guess output format from extension .%s\\n\" % (options.output_format))\n                parser.print_help(file=sys.stderr)\n                exit(1)\n        else:\n            sys.stderr.write(\"Must supply an output format or known output path extension\\n\")\n            parser.print_help(file=sys.stderr)\n            exit(1)\n\n    # \"/usr/local/texlive/2011/tlpkg/texlive.tlpdb\"\n    flat_tlpdb = open(args[0], \"r\") if len(args) else sys.stdin\n    all_packages, index_map = packages_from_tlpdb(flat_tlpdb, options.allow_partial)\n\n    if len(all_packages) == 0:\n        sys.stderr.write(\"Did not find any packages in TeX Live Database\\n\")\n        exit(1)\n\n    if options.output_format == \"sqlite3\":\n        _save_as_sqlite(all_packages, options.output_path)\n    elif options.output_format == \"plist\":\n        _save_as_plist(all_packages, options.output_path)\n        \n    # pkg = all_packages[index_map[\"00texlive.installation\"]]\n    # for dep in pkg.depends:\n    #     if dep.startswith(\"opt_\"):\n    #         key, ignored, value = dep[4:].partition(\":\")\n    #         print \"%s = %s\" % (key, value)\n    # \n\n    \n"
  },
  {
    "path": "dev/pyintel/pkgcommand.py",
    "content": "import json\nimport urllib.request\nimport re\nfrom pathlib import Path\nfrom dataclasses import dataclass\nfrom typing import List, Dict, Union\n\nPKGS_IGNORE_KEYVALS = []\n\n@dataclass\nclass KeyVal:\n    key: str\n    snippet: str\n\n@dataclass\nclass Cmd:\n    snippet: Union[str, None]\n    option: Union[str, None]\n    keyvalindex: Union[int, None]\n    keyvalpos: Union[int, None]\n    detail: Union[str, None]\n    documentation: Union[str, None]\n\n@dataclass\nclass Env:\n    name: Union[str, None]\n    snippet: Union[str, None]\n    option: Union[str, None]\n    keyvalindex: Union[int, None]\n    keyvalpos: Union[int, None]\n\n@dataclass\nclass Pkg:\n    includes: Dict[str, List[str]]\n    macros: Dict[str, Cmd]\n    envs: Dict[str, Env]\n    options: List[str]\n    keyvals: List[List[str]]\n\ndef create_snippet(line: str) -> str:\n    \"\"\"\n    Create a placeholder for every argument [], {}\n    \"\"\"\n    snippet = line\n    p = PlaceHolder()\n    if ('%<..%>' in snippet or '%|' in snippet): # \\left%<..%>\\right#mM or \\Bigg(%|\\Bigg)#mM\n        p.usePlaceHolders = False\n        snippet = re.sub(r'()(%<\\.\\.%>)()', p.sub, snippet).replace('%<..%>', '')\n        snippet = re.sub(r'()(%\\|)()', p.sub, snippet).replace('%|', '')\n        p.usePlaceHolders = True\n    else:\n        curly_index = line.find('{')\n        square_index = line.find('[')\n        if square_index < curly_index:\n            # If all the optional args are before {}, we number the {} first\n            snippet = re.sub(r'(\\{)([^\\{\\$]*)(\\})', p.sub, snippet)\n            snippet = re.sub(r'(\\[)([^\\[\\$]*)(\\])', p.sub, snippet)\n        else:\n            snippet = re.sub(r'(\\{|\\[)([^\\{\\[\\$]*)(\\}|\\])', p.sub, snippet)\n\n    snippet = re.sub(r'(?<![\\{\\s:\\[])(\\<)([a-zA-Z\\s]*)(\\>)', p.sub, snippet)\n\n    # (x0,y0,z0)(x1,y1)\n    # snippet = re.sub(r'(\\()([^\\{\\}\\[\\]\\(\\)]*)(\\))', p.sub, snippet)\n    snippet = re.sub(r'(?<=\\(|,)()([^,()]+)()(?=,|\\))', p.sub, snippet)\n    p.setKeepDelimiters(False)\n    snippet = re.sub(r'(?<![\\{:\\[=-])(%\\<)([a-zA-Z\\s]*)(%\\>)(?!})', p.sub, snippet)\n\n    t = TabStop()\n    snippet = re.sub(r'(?<![\\. ])\\.\\.(?![\\. ])', t.sub, snippet)\n\n    snippet = re.sub(r'%keyvals', '', snippet)\n    snippet = re.sub(r'%<([^%]*?)%:.*?%>', r'\\1', snippet)\n    snippet = re.sub(r'%<([^%]*?)%>', r'\\1', snippet)\n    snippet = re.sub(r'\\$\\{(\\d+:.*?)%.*?\\}', r'${\\1}', snippet)\n    \n    return snippet\n\n\nclass TabStop:\n    \"\"\"\n    Count tab stops inside a regex and make the appropriate substitution\n\n    :count: The number of tabstops that have already been replaced.\n    \"\"\"\n\n\n    def __init__(self):\n        self.count = 0\n\n    def sub(self, _matchObject) -> str:\n        self.count += 1\n        return '${' + str(self.count) + '}'\n\n\nclass PlaceHolder:\n    \"\"\"\n    Count placeholders and make the proper substitutions\n\n    :count: The number of tabstops that have already been replaced.\n    :usePlaceHolders: When True, keep the placeholder name in the snippet\n    :keepDelimiters: When True, keep the delimiters (usually {} or []) surrounding every placeholder\n    \"\"\"\n\n    def __init__(self):\n        self.count = 0\n        self.usePlaceHolders = True\n        self.keepDelimiters = True\n\n    def setUsePlaceHolders(self, trueOrFalse: bool):\n        self.usePlaceHolders = trueOrFalse\n\n    def setKeepDelimiters(self, trueOrFalse: bool):\n        self.keepDelimiters = trueOrFalse\n\n    def isToSkip(self, delimiters: str, string: str):\n        if delimiters == '()' and string in ['s', 'en anglais', 'en français']:\n            return True\n        else:\n            return False\n\n    def sub(self, matchObject) -> str:\n        if self.isToSkip(matchObject.group(1) + matchObject.group(3), matchObject.group(2)):\n            return matchObject.group(1) + matchObject.group(2) + matchObject.group(3)\n\n        self.count += 1\n        name = ''\n        if self.usePlaceHolders:\n            name = ':' + matchObject.group(2)\n        if self.keepDelimiters:\n            return matchObject.group(1) + '${' + str(self.count) + name + '}' + matchObject.group(3)\n        else:\n            return '${' + str(self.count) + name + '}'\n\ndef apply_caption_tweaks(content: List[str]) -> List[str]:\n    return [re.sub(r'#([0-9])', r'arg\\1', line, flags=re.A) for line in content]\n\ndef parse_keyvals(line: str):\n    i = 0\n    for i in range(len(re.findall(r'%<([^%]*?)%>', line))):\n        line = re.sub(r'%<([^%]*?)%>', '${' + str(i + 1) + r':\\1}', line, count=1)\n    match = re.match(r'^([^#\\n]*)', line)\n    if match is None:\n        return None\n    snippet = match[1]\n    match = re.search(r'=#([^%#]+)$', line, flags=re.M)\n    if match is not None:\n        snippet += '${' + str(i + 1) + '|' + match[1] + '|}'\n    return snippet\n\nclass CwlIntel:\n    \"\"\"\n    Parse a CWL file to generate intellisense data in JSON format\n\n    :unimath_dict: Dictionary of unimathsymbols\n    \"\"\"\n\n    def __init__(self, commands_file: Union[Path, str], envs_file: Union[Path, str], unimathsymbols: Union[Path, str]):\n        \"\"\"\n        :param commands_file: Path to the JSON file containing the default commands\n        :param envs_file: Path to the JSON file containing the default environments\n        :param unimathsymbols: Path to unimathsymbols.txt. If the file exists, it\n        is read from this location. If not, it is retrieved from\n        http://milde.users.sourceforge.net/LUCR/Math/data/ and written to this location.\n        \"\"\"\n        self.unimath_dict: Dict[str, Dict[str, str]] = {}\n        self.unimathsymbols = Path(unimathsymbols)\n        try:\n            self.commands = json.load(open(commands_file, encoding='utf8'))\n        except (OSError, json.JSONDecodeError):\n            print(f'Cannot read JSON file {commands_file}')\n            self.commands = []\n        try:\n            self.envs = json.load(open(envs_file, encoding='utf8'))\n        except (OSError, json.JSONDecodeError):\n            print(f'Cannot read JSON file {envs_file}')\n            self.envs = []\n        self.compute_unimathsymbols()\n\n\n    def compute_unimathsymbols(self) -> Dict[str, Dict[str, str]]:\n        \"\"\"\n        Create a dictionary of unmimathsymbols\n        \"\"\"\n        if not self.unimathsymbols.exists():\n            urllib.request.urlretrieve('http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt', self.unimathsymbols)\n        with self.unimathsymbols.open(encoding='utf8') as f:\n            lines = f.readlines()\n        for line in lines:\n            macros: List[str] = []\n            if line[0] == '#':\n                continue\n            line = line.strip()\n            arry = line.split('^')\n            macros.append(re.sub(r'^\\\\', '', arry[2]))\n            macros.append(re.sub(r'^\\\\', '', arry[3]))\n            for m in re.finditer(r'= \\\\(\\w+)[ ,]', arry[-1]):\n                macros.append(m.group(1))\n            doc = re.sub(r'\\s*[=#xt]\\s*\\\\\\w+(\\{.*?\\})?\\s*(\\(.*?\\))?\\s*,', '', arry[-1])\n            doc = re.sub(r'\\s*[=#xt]\\s*\\S+\\s*,', '', doc)\n            doc = doc.strip()\n            for c in macros:\n                if c == '' or re.search('{', c):\n                    continue\n                self.unimath_dict[c] = {'detail': arry[1], 'documentation': doc}\n\n\n\n    def parse_cwl_file(self, file_path: Union[Path, str], remove_spaces: bool = False) -> Pkg:\n        \"\"\"\n        Parse a CWL file to extract the provided commands and environments\n\n        :param file_path: Path to the .cwl file to parse\n        :param remove_spaces: If true, spaces are removed to compute the name of the snippet\n        \"\"\"\n        if isinstance(file_path, str):\n            file_path = Path(file_path)\n        if not file_path.exists():\n            print(f'File {file_path.as_posix} does not exist')\n            return ({}, {})\n        with file_path.open(encoding='utf8') as f:\n            lines = f.readlines()\n        pkg = Pkg(includes={}, macros={}, envs={}, options=[], keyvals=[])\n        if file_path.name == 'caption.cwl':\n            lines = apply_caption_tweaks(lines)\n        \n        cwl_keyval = None\n        cwl_option = None\n        for line in lines:\n            line = line.rstrip()\n            if len(line) == 0:                      # empty line\n                continue\n            elif line.startswith('#include:'):      # '#include:keyval'\n                if (line[9:] not in pkg.includes):  # 'keyval'\n                    pkg.includes[line[9:]] = []\n                if (cwl_option is not None):\n                    pkg.includes[line[9:]].append(cwl_option)\n            elif line.startswith('#ifOption:'):     # '#ifOption:newfloat=true'\n                cwl_option = line[10:]              # 'newfloat=true'\n            elif line.startswith('#endif'):         # '#endif'\n                cwl_option = None\n            elif line.startswith('#keyvals:\\\\usepackage/'): # '#keyvals:\\usepackage/color#c'\n                cwl_keyval = 'PACKAGE_OPTIONS'\n            elif line.startswith('#keyvals:\\\\documentclass/'): # '#keyvals:\\usepackage/color#c'\n                cwl_keyval = 'PACKAGE_OPTIONS'\n            elif line.startswith('#keyvals:'):      # '#keyvals:\\begin{minted},\\mint,\\inputminted'\n                cwl_keyval = line[9:]               # '\\begin{minted},\\mint,\\inputminted'\n            elif line.startswith('#endkeyvals'):    # '#endkeyvals'\n                cwl_keyval = None\n            elif line.startswith('#'):\n                continue\n            elif line.startswith('\\\\begin{'):       # '\\begin{minted}[options%keyvals]#S'\n                match = re.match(r'\\\\begin{(.*?)}([^#\\n]*)#?(.*)$', line)\n                if match is None:\n                    continue\n                if len(match.groups()) >= 2 and match[2]:\n                    name = match[1] + re.sub(r'(\\{|\\[)[^\\{\\[\\$]*(\\}|\\])', r'\\1\\2', match[2])\n                else:\n                    name = match[1]\n                name = re.sub(r'\\<[a-zA-Z\\s]*\\>', '<>', name)\n                if remove_spaces:\n                    name = name.replace(' ', '')\n                else:\n                    name = name.strip()\n                # The name field can only contain letters, `{`, `}`, `[`, `]` and `*`.\n                # https://github.com/James-Yu/LaTeX-Workshop/issues/3264#issuecomment-1138733921\n                # Also include `(`, `)`, and `,`\n                # https://github.com/James-Yu/LaTeX-Workshop/issues/4313#issuecomment-2214209089\n                if re.search(r'[^A-Za-z0-9\\[\\]\\{\\}\\<\\>\\*_^:\\(\\),\\s]', name) is not None or '%' in name:\n                    continue\n                snippet = create_snippet(match[2] if len(match.groups()) >= 2 and match[2] else '')\n                pkg.envs[name] = Env(\n                    name=None if name == match[1] else match[1],\n                    snippet=None if snippet == '' else snippet,\n                    option=cwl_option,\n                    keyvalindex=None,\n                    keyvalpos=None)\n            elif line.startswith('\\\\end{'):         # '\\end{minted}'\n                continue\n            elif line.startswith('\\\\'):             # '\\inputminted[options%keyvals]{language}{file}#i'\n                if ((re.match(r'\\\\left[^a-zA-Z]', line) is not None and '\\\\right' not in line) or\n                    (re.match(r'\\\\right[^a-zA-Z]', line))): # Special cases in latex-document\n                    continue\n                match = re.match(r'\\\\([^[\\{\\n]*?)((?:\\{|\\[)[^#\\n]*)?(#.*)?$', line)\n                if match is None:\n                    continue\n                if len(match.groups()) >= 2 and match[2]:\n                    name = match[1] + re.sub(r'(\\{|\\[)[^\\{\\[\\$]*(\\}|\\])', r'\\1\\2', match[2])\n                else:\n                    name = match[1]\n                name = re.sub(r'\\([^\\{\\}\\[\\]\\(\\)]*\\)', r'()', name)\n                name = re.sub(r'\\<[a-zA-Z\\s]*\\>', '<>', name)\n                name = re.sub(r'\\|.*?\\|', '', name) # Remove |%<code%>| from '\\mintinline[%<options%>]{%<language%>}|%<code%>|#M'\n                if remove_spaces:\n                    name = name.replace(' ', '')\n                else:\n                    name = name.strip()\n                # The name field can only contain letters, `{`, `}`, `[`, `]` and `*`.\n                # https://github.com/James-Yu/LaTeX-Workshop/issues/3264#issuecomment-1138733921\n                # Also include `(`, `)`, and `,`\n                # https://github.com/James-Yu/LaTeX-Workshop/issues/4313#issuecomment-2214209089\n                if re.search(r'[^A-Za-z\\[\\]\\{\\}\\<\\>\\*_^:\\(\\),\\s]', name) is not None:\n                    continue\n                if name in self.commands:\n                    continue\n                snippet = create_snippet(match[1] + (match[2] if len(match.groups()) >= 2 and match[2] else ''))\n                detail = self.unimath_dict[name]['detail'] if self.unimath_dict.get(name) else None\n                documentation = self.unimath_dict[name]['documentation'] if self.unimath_dict.get(name) else None\n\n                if (('left' in name.lower() and 'right' not in name.lower() and 'right' in line.lower()) or\n                    (name.lower().count('big') == 1 and line.lower().count('big') == 2)):\n                    if (name[-1] in [')', ']', '}']):\n                        name = name[:-1]\n\n                pkg.macros[name] = Cmd(\n                    snippet=None if name == snippet else snippet,\n                    option=cwl_option,\n                    keyvalindex=None,\n                    keyvalpos=None,\n                    detail=detail,\n                    documentation=documentation)\n            elif cwl_keyval == 'PACKAGE_OPTIONS':\n                # for i in range(len(re.findall(r'%<([^%]*?)%>', line))):\n                #     line = re.sub(r'%<([^%]*?)%>', '${' + str(i + 1) + r':\\1}', line, 1)\n                # match = re.match(r'^([^#%\\n]*)', line)\n                # if match is None:\n                #     continue\n                keyval = parse_keyvals(line)\n                if keyval is None:\n                    continue\n                pkg.options.append(keyval)\n            elif cwl_keyval is not None and file_path.stem not in PKGS_IGNORE_KEYVALS:\n                keyval = parse_keyvals(line)\n                if keyval is None:\n                    continue\n                for envcmd in cwl_keyval.split(','):\n                    if envcmd.startswith('\\\\begin{'):\n                        env = re.match(r'\\\\begin{(.*?)}', envcmd)[1]\n                        for pkgenv in pkg.envs:\n                            if (pkg.envs[pkgenv].name != env):\n                                continue\n                            haskeyvals = re.search(r':keys|:keyvals|:options|:library', pkg.envs[pkgenv].snippet)\n                            if (haskeyvals is None):\n                                continue\n                            if (pkg.envs[pkgenv].keyvalpos is None):\n                                pkg.envs[pkgenv].keyvalpos = len(re.findall(r'\\[\\]|\\(\\)|<>|{}', re.sub(r'\\${.*?}', '', pkg.envs[pkgenv].snippet[:haskeyvals.start()])))\n                            pkg.envs[pkgenv].keyvalindex = pkg.envs[pkgenv].keyvalindex or []\n                            pkg.envs[pkgenv].keyvalindex.append(keyval)\n                    elif envcmd.startswith('\\\\usepackage/'):\n                        pkg.options.append(keyval)\n                    else:\n                        cmd = re.match(r'\\\\?([^{\\[#]*)', envcmd)[1]\n                        for pkgcmd in pkg.macros:\n                            if (re.sub(r'\\[\\]|\\(\\)|<>|{}', '', pkgcmd) != cmd):\n                                continue\n                            haskeyvals = re.search(r':keys|:keyvals|:options|:library', pkg.macros[pkgcmd].snippet or pkgcmd)\n                            if (haskeyvals is None):\n                                continue\n                            if (pkg.macros[pkgcmd].keyvalpos is None):\n                                pkg.macros[pkgcmd].keyvalpos = len(re.findall(r'\\[\\]|\\(\\)|<>|{}', re.sub(r'\\${.*?}', '', pkg.macros[pkgcmd].snippet[:haskeyvals.start()])))\n                            pkg.macros[pkgcmd].keyvalindex = pkg.macros[pkgcmd].keyvalindex or []\n                            pkg.macros[pkgcmd].keyvalindex.append(keyval)\n        \n        for pkgcmd in pkg.macros:\n            if pkg.macros[pkgcmd].keyvalindex is None:\n                continue\n            keyvalset = set(pkg.macros[pkgcmd].keyvalindex)\n            found = False\n            for idx, cand in enumerate(pkg.keyvals):\n                candset = set(cand)\n                if (keyvalset == candset):\n                    found = True\n                    pkg.macros[pkgcmd].keyvalindex = idx\n                    break\n            if not found:\n                pkg.keyvals.append(pkg.macros[pkgcmd].keyvalindex)\n                pkg.macros[pkgcmd].keyvalindex = len(pkg.keyvals) - 1\n        \n        for pkgenv in pkg.envs:\n            if pkg.envs[pkgenv].keyvalindex is None:\n                continue\n            keyvalset = set(pkg.envs[pkgenv].keyvalindex)\n            found = False\n            for idx, cand in enumerate(pkg.keyvals):\n                candset = set(cand)\n                if (keyvalset == candset):\n                    found = True\n                    pkg.envs[pkgenv].keyvalindex = idx\n                    break\n            if not found:\n                pkg.keyvals.append(pkg.envs[pkgenv].keyvalindex)\n                pkg.envs[pkgenv].keyvalindex = len(pkg.keyvals) - 1\n\n        return pkg\n"
  },
  {
    "path": "dev/pyintel/uni.py",
    "content": "'''\nThis script parses uni-math symbols from\nhttp://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt\nand save the result as a json file.\nThe result is used to generate command intellisense for LaTeX Workshop.\n'''\n\nimport json\n\ndef remove_relation_character(description):\n    \"\"\"\n    From unimathsymbols.txt\n    8. descriptive _`comments`\n\n        The descriptive comments provide more information about the\n        character, or its specific appearance or use.\n\n        Some descriptions contain references to related commands,\n        marked by a character describing the relation\n\n        :=:  equals  (alias commands),\n        :#:  approx  (compat mapping, different character with same glyph),\n        :x:  → cross reference/see also (related, false friends, and name clashes),\n        :t:  text    (text mode command),\n\n        followed by requirements in parantheses, and\n        delimited by commas.\n    \"\"\"\n    tokens = description.split(',')\n    sanitized_description_items = []\n    for tok in tokens:\n        t = tok.strip()\n        if t[0] in ('x', '#', '=', 't') and t[1] == ' ':\n            t = t[2:]\n        sanitized_description_items.append(t)\n    return ', '.join(sanitized_description_items)\n\n\ndef generate_unimathsymbols_intel(infile, json_out):\n    \"\"\"\n    Generate intellisense data in json format for the unicode math symbols\n\n    :param infile: unimathsymbols.txt\n    :param json_out: the path to the unimathsymbols.json file\n    \"\"\"\n    data = {}\n\n    with open(infile, encoding='utf-8') as f:\n        for line in f:\n            if line[0] == '#':\n                continue\n            segments = line.split('^')\n            if segments[3] == '':\n                continue\n            if segments[3][0] == '\\\\':\n                segments[3] = segments[3][1:]\n            data[segments[3]] = {\n                'command': segments[3],\n                'detail': segments[1],\n                # 'documentation': segments[7].strip().capitalize()\n                'documentation': remove_relation_character(segments[7]).capitalize()\n            }\n            if segments[6] != '' and segments[6][0] != '-':\n                data[segments[3]]['detail'] += f' (\"{segments[6]}\" command)'\n\n    json.dump(data, open(json_out, 'w', encoding='utf-8'),\n            indent=2, separators=(',', ': '), sort_keys=True, ensure_ascii=False)\n"
  },
  {
    "path": "dev/spaces.py",
    "content": "from pathlib import Path\nimport json\nimport sys\n\ncwd = Path(sys.argv[0]).parent\ncmd_files = cwd.joinpath('../data/packages').glob('*.json')\nall_cmds = {}\nfor f in cmd_files:\n    f_cmds = json.load(open(f, encoding='utf8'))\n    all_cmds.update(f_cmds.cmds)\n\ncmds_with_spaces = {}\nfor key in all_cmds:\n    if key.find(' ') >= 0:\n        cmds_with_spaces[key] = all_cmds[key]\n\nfor entry in [(k, cmds_with_spaces[k]['package']) for k in cmds_with_spaces.keys()]:\n    print(f'{entry[1]}: {entry[0]}')\n"
  },
  {
    "path": "dev/unified.ts",
    "content": "// Run npx esbuild unified.ts --bundle --outfile=../resources/unified.js\n// Then change the `var unified2 = {` near EOF to `module.exports = {`\n\nimport { getParser } from '@unified-latex/unified-latex-util-parse'\nimport { attachMacroArgs } from '@unified-latex/unified-latex-util-arguments'\nimport { toString } from '@unified-latex/unified-latex-util-to-string'\n\nexport const unified = {\n    getParser,\n    attachMacroArgs,\n    toString\n}\n"
  },
  {
    "path": "dev/unimathsymbols.py",
    "content": "import requests\nfrom pyintel import generate_unimathsymbols_intel\n\n\nSYMBOLS_URL = 'http://milde.users.sourceforge.net/LUCR/Math/data/unimathsymbols.txt'\ntry:\n    r = requests.get(SYMBOLS_URL)\n    with open('unimathsymbols.txt', 'wb') as f:\n        f.write(r.content)\n    generate_unimathsymbols_intel('unimathsymbols.txt', '../data/unimathsymbols.json')\nexcept Exception:\n    print('Cannot retrieve unimathsymbols.txt')\n"
  },
  {
    "path": "dev/update-grammar.mjs",
    "content": "/* global console */\n\nimport fs from 'fs'\nimport path from 'path'\nimport {download, getCommitSha, expandConfigurationFile} from'vscode-extend-language'\n\nconst syntaxDir = './syntax'\n\n/**\n * Download a file from a specific branch on a repo\n * @param {string} repo\n * @param {string} file\n * @param {string} version git branch to pull\n */\nasync function downloadFile(repo, file, version='main') {\n    const url = 'https://raw.githubusercontent.com/' + repo + '/' + version + '/' + file\n    var content = await download(url)\n    if (!content) {\n        console.log('Cannot retrieve ', url)\n        return\n    }\n    const syntaxFilePath = path.join(syntaxDir, path.basename(file))\n    fs.writeFileSync(syntaxFilePath, content)\n    console.log('Updating', syntaxFilePath)\n}\n\nasync function updateGrammars() {\n    const latexBasicsRepo = 'jlelong/vscode-latex-basics'\n    const grammarFiles = [\n        'BibTeX-style.tmLanguage.json',\n        'Bibtex.tmLanguage.json',\n        'DocTeX.tmLanguage.json',\n        'JLweave.tmLanguage.json',\n        'LaTeX.tmLanguage.json',\n        'Pweave.tmLanguage.json',\n        'RSweave.tmLanguage.json',\n        'TeX.tmLanguage.json',\n        'cpp-grammar-bailout.tmLanguage.json',\n        'markdown-latex-combined.tmLanguage.json'\n    ]\n\n    const sha = await getCommitSha(latexBasicsRepo)\n    if (sha) {\n        console.log(`Update grammar files to ${latexBasicsRepo}@${sha}`)\n    } else {\n        console.log('Cannot read last commit information')\n    }\n    for (const file of grammarFiles) {\n        await downloadFile(latexBasicsRepo, 'syntaxes/' + file)\n    }\n\n}\n\nasync function main() {\n\n    await updateGrammars()\n    // The order of the files matters!\n    const languageFiles = [\n        'latex-language-configuration.json',\n        'latex-cpp-embedded-language-configuration.json',\n        'markdown-latex-combined-language-configuration.json',\n        'latex3-language-configuration.json',\n        'bibtex-language-configuration.json',\n        'bibtex-style-language-configuration.json',\n        'doctex-language-configuration.json'\n    ]\n    for (const file of languageFiles) {\n        console.log('Expanding', path.join(syntaxDir, file))\n        await expandConfigurationFile(path.join(syntaxDir, 'src', file), path.join(syntaxDir, file))\n    }\n}\n\nawait main()\n"
  },
  {
    "path": "dev/viewer/viewer.html.diff",
    "content": "diff --git a/../../web/viewer.html b/../viewer/viewer.html\nindex 9b98237c..56ef6876 100644\n--- a/../../web/viewer.html\n+++ b/../viewer/viewer.html\n@@ -25,15 +25,17 @@ See https://github.com/adobe-type-tools/cmap-resources\n     <meta charset=\"utf-8\">\n     <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n     <meta name=\"google\" content=\"notranslate\">\n+    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self'; base-uri 'none'; connect-src 'self' ws://127.0.0.1:*; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;\">\n     <title>PDF.js viewer</title>\n \n <!-- This snippet is used in production (included from viewer.html) -->\n <link rel=\"resource\" type=\"application/l10n\" href=\"locale/locale.json\">\n-<script src=\"../build/pdf.mjs\" type=\"module\"></script>\n+<script src=\"build/pdf.mjs\" type=\"module\"></script>\n \n     <link rel=\"stylesheet\" href=\"viewer.css\">\n+    <link rel=\"stylesheet\" href=\"latexworkshop.css\">\n \n-  <script src=\"viewer.mjs\" type=\"module\"></script>\n+  <script src=\"out/viewer/latexworkshop.js\" type=\"module\"></script>\n   </head>\n \n   <body tabindex=\"0\">\n@@ -83,14 +85,14 @@ See https://github.com/adobe-type-tools/cmap-resources\n       </div>  <!-- sidebarContainer -->\n \n       <div id=\"mainContainer\">\n-        <div class=\"toolbar\">\n+        <div class=\"toolbar hide\">\n           <div id=\"toolbarContainer\">\n             <div id=\"toolbarViewer\" class=\"toolbarHorizontalGroup\">\n               <div id=\"toolbarViewerLeft\" class=\"toolbarHorizontalGroup\">\n                 <button id=\"sidebarToggleButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-toggle-sidebar-button\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"sidebarContainer\">\n                   <span data-l10n-id=\"pdfjs-toggle-sidebar-button-label\"></span>\n                 </button>\n-                <div class=\"toolbarButtonSpacer\"></div>\n+                <!-- <div class=\"toolbarButtonSpacer\"></div> -->\n                 <div class=\"toolbarButtonWithContainer\">\n                   <button id=\"viewFindButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-findbar-button\" aria-expanded=\"false\" aria-controls=\"findbar\">\n                     <span data-l10n-id=\"pdfjs-findbar-button-label\"></span>\n"
  },
  {
    "path": "dev/viewer/viewer.mjs.diff",
    "content": "diff --git a/../../web/viewer.mjs b/../viewer/viewer.mjs\nindex ab2fe1fe..f5290dbb 100644\n--- a/../../web/viewer.mjs\n+++ b/../viewer/viewer.mjs\n@@ -873,7 +873,7 @@ const defaultOptions = {\n     kind: OptionKind.API\n   },\n   cMapUrl: {\n-    value: \"../web/cmaps/\",\n+    value: \"../cmaps/\",\n     kind: OptionKind.API\n   },\n   disableAutoFetch: {\n@@ -909,7 +909,7 @@ const defaultOptions = {\n     kind: OptionKind.API\n   },\n   iccUrl: {\n-    value: \"../web/iccs/\",\n+    value: \"../iccs/\",\n     kind: OptionKind.API\n   },\n   isEvalSupported: {\n@@ -929,7 +929,7 @@ const defaultOptions = {\n     kind: OptionKind.API\n   },\n   standardFontDataUrl: {\n-    value: \"../web/standard_fonts/\",\n+    value: \"../standard_fonts/\",\n     kind: OptionKind.API\n   },\n   useSystemFonts: {\n@@ -942,7 +942,7 @@ const defaultOptions = {\n     kind: OptionKind.API\n   },\n   wasmUrl: {\n-    value: \"../web/wasm/\",\n+    value: \"../wasm/\",\n     kind: OptionKind.API\n   },\n   workerPort: {\n@@ -950,7 +950,7 @@ const defaultOptions = {\n     kind: OptionKind.WORKER\n   },\n   workerSrc: {\n-    value: \"../build/pdf.worker.mjs\",\n+    value: \"./build/pdf.worker.mjs\",\n     kind: OptionKind.WORKER\n   }\n };\n@@ -960,7 +960,7 @@ const defaultOptions = {\n     kind: OptionKind.VIEWER\n   };\n   defaultOptions.sandboxBundleSrc = {\n-    value: \"../build/pdf.sandbox.mjs\",\n+    value: \"./build/pdf.sandbox.mjs\",\n     kind: OptionKind.VIEWER\n   };\n   defaultOptions.enableFakeMLManager = {\n@@ -2711,7 +2711,7 @@ class Localization {\n       if (typeof console !== \"undefined\") {\n         const locale = bundle.locales[0];\n         const ids = Array.from(missingIds).join(\", \");\n-        console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);\n+        // console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);\n       }\n     }\n     if (!hasAtLeastOneBundle && typeof console !== \"undefined\") {\n@@ -3285,11 +3285,11 @@ class SignatureStorage {\n function initCom(app) {}\n class Preferences extends BasePreferences {\n   async _writeToStorage(prefObj) {\n-    localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));\n+    // localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));\n   }\n   async _readFromStorage(prefObj) {\n     return {\n-      prefs: JSON.parse(localStorage.getItem(\"pdfjs.preferences\"))\n+      prefs: undefined // JSON.parse(localStorage.getItem(\"pdfjs.preferences\"))\n     };\n   }\n }\n@@ -6438,7 +6438,7 @@ const FindState = {\n   PENDING: 3\n };\n const FIND_TIMEOUT = 250;\n-const MATCH_SCROLL_OFFSET_TOP = -50;\n+const MATCH_SCROLL_OFFSET_TOP = -100;\n const CHARACTERS_TO_NORMALIZE = {\n   \"\\u2010\": \"-\",\n   \"\\u2018\": \"'\",\n@@ -8865,6 +8865,9 @@ function renderProgress(index, total) {\n }\n window.addEventListener(\"keydown\", function (event) {\n   if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {\n+    if (window.parent !== window) {\n+      return;\n+    }\n     window.print();\n     event.preventDefault();\n     event.stopImmediatePropagation();\n@@ -9459,7 +9462,7 @@ class PDFSidebar {\n       this.#dispatchEvent();\n       return;\n     }\n-    this.switchView(view, true);\n+    this.switchView(view, false);\n     if (!this.isInitialEventDispatched) {\n       this.#dispatchEvent();\n     }\n@@ -12921,7 +12924,7 @@ class PDFViewer {\n     this.#enableNewAltTextWhenAddingImage = options.enableNewAltTextWhenAddingImage === true;\n     this.imageResourcesPath = options.imageResourcesPath || \"\";\n     this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n-    this.removePageBorders = options.removePageBorders || false;\n+    this.removePageBorders = options.removePageBorders || true;\n     this.maxCanvasPixels = options.maxCanvasPixels;\n     this.maxCanvasDim = options.maxCanvasDim;\n     this.capCanvasAreaFactor = options.capCanvasAreaFactor;\n@@ -13700,12 +13703,12 @@ class PDFViewer {\n           hPadding *= 2;\n         }\n       } else if (this.removePageBorders) {\n-        hPadding = vPadding = 0;\n+        if (this._scrollMode === ScrollMode.HORIZONTAL || this._spreadMode === SpreadMode.NONE) { hPadding = vPadding = 0; } else { hPadding = 10; vPadding = 0; }\n       } else if (this._scrollMode === ScrollMode.HORIZONTAL) {\n         [hPadding, vPadding] = [vPadding, hPadding];\n       }\n-      const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor;\n-      const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;\n+      const pageWidthScale = (this.container.clientWidth - hPadding) / Math.max(...this._pages.map(p => p.width)) * currentPage.scale / this.#pageWidthScaleFactor * (1 / (1 - (viewerTrim ?? 0) / 100));\n+      const pageHeightScale = (this.container.clientHeight - vPadding) / Math.max(...this._pages.map(p => p.height)) * currentPage.scale * (1 / (1 - (viewerTrim ?? 0) / 100));\n       switch (value) {\n         case \"page-actual\":\n           scale = 1;\n@@ -13817,7 +13820,7 @@ class PDFViewer {\n         let hPadding = SCROLLBAR_PADDING,\n           vPadding = VERTICAL_PADDING;\n         if (this.removePageBorders) {\n-          hPadding = vPadding = 0;\n+          if (this._scrollMode === ScrollMode.HORIZONTAL || this._spreadMode === SpreadMode.NONE) { hPadding = vPadding = 0; } else { hPadding = 10; vPadding = 0; }\n         }\n         widthScale = (this.container.clientWidth - hPadding) / width / PixelsPerInch.PDF_TO_CSS_UNITS;\n         heightScale = (this.container.clientHeight - vPadding) / height / PixelsPerInch.PDF_TO_CSS_UNITS;\n@@ -16016,10 +16019,10 @@ class ViewHistory {\n   }\n   async _writeToStorage() {\n     const databaseStr = JSON.stringify(this.database);\n-    localStorage.setItem(\"pdfjs.history\", databaseStr);\n+    // localStorage.setItem(\"pdfjs.history\", databaseStr);\n   }\n   async _readFromStorage() {\n-    return localStorage.getItem(\"pdfjs.history\");\n+    return // localStorage.getItem(\"pdfjs.history\");\n   }\n   async set(name, val) {\n     await this._initializedPromise;\n@@ -16683,7 +16686,7 @@ const PDFViewerApplication = {\n         title = decodeURIComponent(getFilenameFromUrl(url));\n       } catch {}\n     }\n-    this.setTitle(title || url);\n+    // this.setTitle(title || url);\n   },\n   setTitle(title = this._title) {\n     this._title = title;\n@@ -17127,7 +17130,7 @@ const PDFViewerApplication = {\n     this.metadata = metadata;\n     this._contentDispositionFilename ??= contentDispositionFilename;\n     this._contentLength ??= contentLength;\n-    console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(metadata?.get(\"pdf:producer\") || info.Producer || \"-\").trim()} / ` + `${(metadata?.get(\"xmp:creatortool\") || info.Creator || \"-\").trim()}` + `] (PDF.js: ${version || \"?\"} [${build || \"?\"}])`);\n+    // console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(metadata?.get(\"pdf:producer\") || info.Producer || \"-\").trim()} / ` + `${(metadata?.get(\"xmp:creatortool\") || info.Creator || \"-\").trim()}` + `] (PDF.js: ${version || \"?\"} [${build || \"?\"}])`);\n     const pdfTitle = this._docTitle;\n     if (pdfTitle) {\n       this.setTitle(`${pdfTitle} - ${this._contentDispositionFilename || this._title}`);\n@@ -17252,9 +17255,9 @@ const PDFViewerApplication = {\n     this.pdfSidebar?.setInitialView(sidebarView);\n     setViewerModes(scrollMode, spreadMode);\n     if (this.initialBookmark) {\n-      setRotation(this.initialRotation);\n+      // setRotation(this.initialRotation);\n       delete this.initialRotation;\n-      this.pdfLinkService.setHash(this.initialBookmark);\n+      // this.pdfLinkService.setHash(this.initialBookmark);\n       this.initialBookmark = null;\n     } else if (storedHash) {\n       setRotation(rotation);\n@@ -17371,8 +17374,8 @@ const PDFViewerApplication = {\n     eventBus._on(\"presentationmodechanged\", evt => pdfViewer.presentationModeState = evt.state, opts);\n     eventBus._on(\"presentationmode\", this.requestPresentationMode.bind(this), opts);\n     eventBus._on(\"switchannotationeditormode\", evt => pdfViewer.annotationEditorMode = evt, opts);\n-    eventBus._on(\"print\", this.triggerPrinting.bind(this), opts);\n-    eventBus._on(\"download\", this.downloadOrSave.bind(this), opts);\n+    // eventBus._on(\"print\", this.triggerPrinting.bind(this), opts);\n+    // eventBus._on(\"download\", this.downloadOrSave.bind(this), opts);\n     eventBus._on(\"firstpage\", () => this.page = 1, opts);\n     eventBus._on(\"lastpage\", () => this.page = this.pagesCount, opts);\n     eventBus._on(\"nextpage\", () => pdfViewer.nextPage(), opts);\n@@ -17395,7 +17398,7 @@ const PDFViewerApplication = {\n     eventBus._on(\"updatefindmatchescount\", onUpdateFindMatchesCount.bind(this), opts);\n     eventBus._on(\"updatefindcontrolstate\", onUpdateFindControlState.bind(this), opts);\n     eventBus._on(\"fileinputchange\", onFileInputChange.bind(this), opts);\n-    eventBus._on(\"openfile\", onOpenFile.bind(this), opts);\n+    // eventBus._on(\"openfile\", onOpenFile.bind(this), opts);\n   },\n   bindWindowEvents() {\n     if (this._windowAbortController) {\n@@ -18403,7 +18406,7 @@ function webViewerLoad() {\n   try {\n     parent.document.dispatchEvent(event);\n   } catch (ex) {\n-    console.error(\"webviewerloaded:\", ex);\n+    // console.error(\"webviewerloaded:\", ex);\n     document.dispatchEvent(event);\n   }\n   PDFViewerApplication.run(config);\n@@ -18417,4 +18420,3 @@ if (document.readyState === \"interactive\" || document.readyState === \"complete\")\n \n export { PDFViewerApplication, AppConstants as PDFViewerApplicationConstants, AppOptions as PDFViewerApplicationOptions };\n \n-//# sourceMappingURL=viewer.mjs.map\n\\ No newline at end of file\n"
  },
  {
    "path": "eslint.config.mjs",
    "content": "import globals from \"globals\";\nimport tsParser from \"@typescript-eslint/parser\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport js from \"@eslint/js\";\nimport { FlatCompat } from \"@eslint/eslintrc\";\nimport stylistic from \"@stylistic/eslint-plugin\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst compat = new FlatCompat({\n    baseDirectory: __dirname,\n    recommendedConfig: js.configs.recommended,\n    allConfig: js.configs.all\n});\n\nexport default [{\n    ignores: [\n        \"dev/*.js\",\n        \"types/**/*.ts\",\n        \"resources/**/*.js\",\n        \"**/out\",\n        \"**/node_modules\",\n        \"viewer/viewer.mjs\",\n        \"viewer/wasm/*.js\",\n        \"**/.idea/\",\n        \"**/__pycache__/\",\n        \"**/.mypy_cache/\",\n        \"**/.pytest_cache/\",\n        \"**/.venv/\",\n        \".vscode/\",\n        \".vscode-test/\",\n        \"**/vscode.proposed.d.ts\",\n    ],\n}, ...compat.extends(\"eslint:recommended\", \"plugin:@typescript-eslint/recommended\"), {\n    files: [\"**/*.ts\", \"**/*.js\"],\n\n    plugins: {\n        '@stylistic': stylistic,\n    },\n\n    languageOptions: {\n        globals: {\n            ...globals.node,\n            Atomics: \"readonly\",\n            SharedArrayBuffer: \"readonly\",\n        },\n\n        parser: tsParser,\n        ecmaVersion: 2018,\n        sourceType: \"commonjs\",\n\n        parserOptions: {\n            project: \"./tsconfig.eslint.json\",\n        },\n    },\n\n    rules: {\n        \"@stylistic/member-delimiter-style\": [\"error\", {\n            multiline: {\n                delimiter: \"comma\",\n                requireLast: false,\n            },\n\n            singleline: {\n                delimiter: \"comma\",\n                requireLast: false,\n            },\n        }],\n\n        \"@stylistic/semi\": [\"error\", \"never\", {\n            beforeStatementContinuationChars: \"always\",\n        }],\n\n        \"@stylistic/type-annotation-spacing\": \"error\",\n\n        \"@typescript-eslint/explicit-module-boundary-types\": \"off\",\n        \"@typescript-eslint/no-explicit-any\": \"off\",\n        \"@typescript-eslint/no-empty-function\": \"off\",\n        \"@typescript-eslint/no-inferrable-types\": \"off\",\n        \"@typescript-eslint/no-parameter-properties\": \"off\",\n        \"@typescript-eslint/no-use-before-define\": \"off\",\n        \"@typescript-eslint/prefer-interface\": \"off\",\n\n        \"@typescript-eslint/naming-convention\": [\"error\", {\n            selector: \"default\",\n            format: [\"camelCase\", \"PascalCase\", \"UPPER_CASE\"],\n            leadingUnderscore: \"allow\",\n        }, {\n            selector: \"method\",\n            format: [\"camelCase\"],\n        }, {\n            selector: \"function\",\n            format: [\"camelCase\"],\n        }, {\n            selector: \"typeLike\",\n            format: [\"PascalCase\"],\n        }, {\n            selector: \"objectLiteralProperty\",\n            format: null,\n        }],\n\n        \"@typescript-eslint/consistent-type-assertions\": [\"error\", {\n            assertionStyle: \"as\",\n            objectLiteralTypeAssertions: \"never\",\n        }],\n\n        \"@typescript-eslint/no-empty-interface\": [\"error\", {\n            allowSingleExtends: true,\n        }],\n\n        \"@typescript-eslint/no-floating-promises\": \"error\",\n        \"@typescript-eslint/no-invalid-this\": \"error\",\n        \"@typescript-eslint/no-invalid-void-type\": \"error\",\n\n        \"@typescript-eslint/no-misused-promises\": [\"error\", {\n            checksVoidReturn: {\n                arguments: false,\n            },\n        }],\n\n        \"no-shadow\": \"off\",\n        \"@typescript-eslint/no-shadow\": \"error\",\n        \"@typescript-eslint/no-unsafe-argument\": \"error\",\n        \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n        \"@typescript-eslint/no-unsafe-call\": \"error\",\n        \"@typescript-eslint/no-unsafe-return\": \"error\",\n        \"no-unused-expressions\": \"off\",\n        \"@typescript-eslint/no-unused-expressions\": \"error\",\n        \"no-unused-vars\": \"off\",\n\n        \"@typescript-eslint/no-unused-vars\": [\"error\", {\n            args: \"all\",\n            argsIgnorePattern: \"^_\",\n            caughtErrorsIgnorePattern: \"^_\"\n        }],\n\n        \"@typescript-eslint/no-require-imports\": \"error\",\n        \"@typescript-eslint/prefer-includes\": \"error\",\n        \"@typescript-eslint/prefer-readonly\": \"error\",\n        \"no-return-await\": \"off\",\n        \"@typescript-eslint/return-await\": \"error\",\n        \"require-await\": \"off\",\n        \"@typescript-eslint/require-await\": \"error\",\n        \"@typescript-eslint/unbound-method\": \"error\",\n        curly: \"error\",\n        \"default-case\": \"error\",\n        \"eol-last\": \"error\",\n        eqeqeq: [\"error\", \"always\"],\n        \"func-call-spacing\": [\"error\", \"never\"],\n        \"no-caller\": \"error\",\n\n        \"no-constant-condition\": [\"error\", {\n            checkLoops: false,\n        }],\n\n        \"no-eval\": \"error\",\n        \"no-multiple-empty-lines\": \"error\",\n\n        \"no-multi-spaces\": [\"error\", {\n            ignoreEOLComments: true,\n        }],\n\n        \"no-new-wrappers\": \"error\",\n        \"no-trailing-spaces\": \"error\",\n\n        \"no-empty\": [\"error\", {\n            allowEmptyCatch: true,\n        }],\n\n        \"object-shorthand\": \"error\",\n\n        \"one-var\": [\"error\", {\n            initialized: \"never\",\n            uninitialized: \"never\",\n        }],\n\n        \"prefer-arrow-callback\": [\"error\"],\n\n        quotes: [\"error\", \"single\", {\n            avoidEscape: true,\n        }],\n\n        \"space-before-function-paren\": [\"error\", {\n            anonymous: \"always\",\n            named: \"never\",\n            asyncArrow: \"always\",\n        }],\n    },\n}, {\n    files: [\"viewer/**/*.ts\"],\n\n    languageOptions: {\n        ecmaVersion: 2018,\n        sourceType: \"script\",\n\n        parserOptions: {\n            project: \"./tsconfig.eslint.viewer.json\",\n        },\n    },\n\n    rules: {\n        \"@typescript-eslint/naming-convention\": [\"error\", {\n            selector: \"interface\",\n            prefix: [\"I\"],\n            format: [\"PascalCase\"],\n        }],\n\n        \"@typescript-eslint/no-unnecessary-type-assertion\": \"off\",\n        \"@typescript-eslint/ban-ts-comment\": \"off\",\n    },\n}];"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"latex-workshop\",\n  \"displayName\": \"LaTeX Workshop\",\n  \"description\": \"Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more.\",\n  \"icon\": \"icons/icon.png\",\n  \"version\": \"10.13.1\",\n  \"publisher\": \"James-Yu\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/James-Yu/LaTeX-Workshop\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/James-Yu/LaTeX-Workshop.git\"\n  },\n  \"engines\": {\n    \"vscode\": \"^1.96.0\"\n  },\n  \"categories\": [\n    \"Programming Languages\",\n    \"Snippets\",\n    \"Linters\",\n    \"Formatters\"\n  ],\n  \"keywords\": [\n    \"latex\",\n    \"tex\",\n    \"compile\",\n    \"preview\",\n    \"hint\"\n  ],\n  \"activationEvents\": [\n    \"onCommand:latex-workshop.activate\",\n    \"onWebviewPanel:latex-workshop-pdf\"\n  ],\n  \"main\": \"./out/src/main.js\",\n  \"capabilities\": {\n    \"virtualWorkspaces\": {\n      \"supported\": \"limited\",\n      \"description\": \"Only a few features are supported.\"\n    },\n    \"untrustedWorkspaces\": {\n      \"supported\": false\n    }\n  },\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"tex\",\n        \"aliases\": [\n          \"TeX\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"latex\",\n        \"aliases\": [\n          \"LaTeX\"\n        ],\n        \"extensions\": [\n          \".tex\",\n          \".ltx\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"latex-class\",\n        \"aliases\": [\n          \"LaTeX class\"\n        ],\n        \"extensions\": [\n          \".cls\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"latex-package\",\n        \"aliases\": [\n          \"LaTeX package\"\n        ],\n        \"extensions\": [\n          \".sty\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"latex-expl3\",\n        \"aliases\": [\n          \"LaTeX expl3\"\n        ],\n        \"configuration\": \"./syntax/latex3-language-configuration.json\"\n      },\n      {\n        \"id\": \"context\",\n        \"aliases\": [\n          \"ConTeXt\"\n        ],\n        \"extensions\": [\n          \".ctx\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"doctex\",\n        \"aliases\": [\n          \"DocTeX\"\n        ],\n        \"extensions\": [\n          \".dtx\"\n        ],\n        \"configuration\": \"./syntax/doctex-language-configuration.json\"\n      },\n      {\n        \"id\": \"doctex-installer\",\n        \"aliases\": [\n          \"DocTeX installer\"\n        ],\n        \"extensions\": [\n          \".ins\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"bibtex\",\n        \"aliases\": [\n          \"BibTeX\"\n        ],\n        \"extensions\": [\n          \".bib\"\n        ],\n        \"configuration\": \"./syntax/bibtex-language-configuration.json\"\n      },\n      {\n        \"id\": \"bibtex-style\",\n        \"aliases\": [\n          \"BibTeX style\"\n        ],\n        \"extensions\": [\n          \".bst\"\n        ],\n        \"configuration\": \"./syntax/bibtex-style-language-configuration.json\"\n      },\n      {\n        \"id\": \"biblatex\",\n        \"aliases\": [\n          \"BibLaTeX\"\n        ],\n        \"extensions\": [\n          \".bbx\",\n          \".cbx\",\n          \".lbx\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"pweave\",\n        \"aliases\": [\n          \"Pweave\"\n        ],\n        \"extensions\": [\n          \".pnw\",\n          \".ptexw\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"jlweave\",\n        \"aliases\": [\n          \"Weave.jl\"\n        ],\n        \"extensions\": [\n          \".jnw\",\n          \".jtexw\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"rsweave\",\n        \"aliases\": [\n          \"Sweave\"\n        ],\n        \"extensions\": [\n          \".rnw\",\n          \".rtex\",\n          \".snw\"\n        ],\n        \"configuration\": \"./syntax/latex-language-configuration.json\"\n      },\n      {\n        \"id\": \"cpp_embedded_latex\",\n        \"aliases\": [\n          \"C++ embedded in LaTeX\"\n        ],\n        \"configuration\": \"./syntax/latex-cpp-embedded-language-configuration.json\"\n      },\n      {\n        \"id\": \"markdown_latex_combined\",\n        \"aliases\": [\n          \"Combined Markdown/LaTeX\"\n        ],\n        \"configuration\": \"./syntax/markdown-latex-combined-language-configuration.json\"\n      },\n      {\n        \"id\": \"latex_workshop_log\",\n        \"aliases\": [\n          \"LaTeX Workshop log\"\n        ],\n        \"configuration\": \"./syntax/latex-workshop-log-language-configuration.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"tex\",\n        \"scopeName\": \"text.tex\",\n        \"path\": \"./syntax/TeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ]\n      },\n      {\n        \"language\": \"latex\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"latex-class\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"latex-package\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"latex-expl3\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"context\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"doctex\",\n        \"scopeName\": \"text.tex.doctex\",\n        \"path\": \"./syntax/DocTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ]\n      },\n      {\n        \"language\": \"doctex-installer\",\n        \"scopeName\": \"text.tex.latex\",\n        \"path\": \"./syntax/LaTeX.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.asymptote\": \"asymptote\",\n          \"source.cpp\": \"cpp_embedded_latex\",\n          \"source.css\": \"css\",\n          \"source.dot\": \"dot\",\n          \"source.gnuplot\": \"gnuplot\",\n          \"text.html\": \"html\",\n          \"source.java\": \"java\",\n          \"source.js\": \"javascript\",\n          \"source.julia\": \"julia\",\n          \"source.lua\": \"lua\",\n          \"source.python\": \"python\",\n          \"source.ruby\": \"ruby\",\n          \"source.scala\": \"scala\",\n          \"source.ts\": \"typescript\",\n          \"text.xml\": \"xml\",\n          \"source.yaml\": \"yaml\",\n          \"meta.embedded.markdown_latex_combined\": \"markdown_latex_combined\"\n        }\n      },\n      {\n        \"language\": \"bibtex\",\n        \"scopeName\": \"text.bibtex\",\n        \"path\": \"./syntax/Bibtex.tmLanguage.json\"\n      },\n      {\n        \"language\": \"bibtex-style\",\n        \"scopeName\": \"source.bst\",\n        \"path\": \"./syntax/BibTeX-style.tmLanguage.json\"\n      },\n      {\n        \"language\": \"pweave\",\n        \"scopeName\": \"text.tex.latex.pweave\",\n        \"path\": \"./syntax/Pweave.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.python\": \"python\"\n        }\n      },\n      {\n        \"language\": \"jlweave\",\n        \"scopeName\": \"text.tex.latex.jlweave\",\n        \"path\": \"./syntax/JLweave.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.julia\": \"julia\"\n        }\n      },\n      {\n        \"language\": \"rsweave\",\n        \"scopeName\": \"text.tex.latex.rsweave\",\n        \"path\": \"./syntax/RSweave.tmLanguage.json\",\n        \"unbalancedBracketScopes\": [\n          \"keyword.control.ifnextchar.tex\",\n          \"punctuation.math.operator.tex\"\n        ],\n        \"embeddedLanguages\": {\n          \"source.r\": \"r\"\n        }\n      },\n      {\n        \"language\": \"cpp_embedded_latex\",\n        \"scopeName\": \"source.cpp.embedded.latex\",\n        \"path\": \"./syntax/cpp-grammar-bailout.tmLanguage.json\",\n        \"embeddedLanguages\": {\n          \"meta.embedded.assembly.cpp\": \"asm\"\n        }\n      },\n      {\n        \"language\": \"markdown_latex_combined\",\n        \"scopeName\": \"text.tex.markdown_latex_combined\",\n        \"path\": \"./syntax/markdown-latex-combined.tmLanguage.json\"\n      },\n      {\n        \"language\": \"latex_workshop_log\",\n        \"scopeName\": \"text.latex_workshop.log\",\n        \"path\": \"./syntax/LaTeX-Workshop-Log.tmLanguage.json\"\n      }\n    ],\n    \"snippets\": [\n      {\n        \"language\": \"tex\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"latex\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"latex-expl3\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"context\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"pweave\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"jlweave\",\n        \"path\": \"./data/latex-snippet.json\"\n      },\n      {\n        \"language\": \"rsweave\",\n        \"path\": \"./data/latex-snippet.json\"\n      }\n    ],\n    \"commands\": [\n      {\n        \"command\": \"latex-workshop.hostPort\",\n        \"title\": \"%command.hostPort%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.navigate-envpair\",\n        \"title\": \"%command.navigate-envpair%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.select-envname\",\n        \"title\": \"%command.select-envname%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.select-envcontent\",\n        \"title\": \"%command.select-envcontent%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.select-env\",\n        \"title\": \"%command.select-env%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.multicursor-envname\",\n        \"title\": \"%command.multicursor-envname%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.wrap-env\",\n        \"title\": \"%command.wrap-env%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.surround\",\n        \"title\": \"%command.surround%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.close-env\",\n        \"title\": \"%command.close-env%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.toggle-equation-envname\",\n        \"title\": \"%command.toggle-equation-envname%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.revealOutputDir\",\n        \"title\": \"%command.revealoutput%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.saveWithoutBuilding\",\n        \"title\": \"%command.saveWithoutBuilding%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.build\",\n        \"title\": \"%command.build%\",\n        \"category\": \"LaTeX Workshop\",\n        \"icon\": \"$(debug-start)\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.recipes\",\n        \"title\": \"%command.recipes%\",\n        \"category\": \"LaTeX Workshop\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.view\",\n        \"title\": \"%command.view%\",\n        \"category\": \"LaTeX Workshop\",\n        \"icon\": \"$(open-preview)\"\n      },\n      {\n        \"command\": \"latex-workshop.tab\",\n        \"title\": \"%command.tab%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.viewInBrowser\",\n        \"title\": \"%command.viewInBrowser%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.viewExternal\",\n        \"title\": \"%command.viewExternal%\",\n        \"category\": \"LaTeX Workshop\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.refresh-viewer\",\n        \"title\": \"%command.refresh-viewer%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.kill\",\n        \"title\": \"%command.kill%\",\n        \"category\": \"LaTeX Workshop\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.synctex\",\n        \"title\": \"%command.synctex%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.clean\",\n        \"title\": \"%command.clean%\",\n        \"category\": \"LaTeX Workshop\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.citation\",\n        \"title\": \"%command.citation%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.addtexroot\",\n        \"title\": \"%command.addtexroot%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.wordcount\",\n        \"title\": \"%command.wordcount%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.changeHostName\",\n        \"title\": \"%command.changeHostName%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.resetHostName\",\n        \"title\": \"%command.resetHostName%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.compilerlog\",\n        \"title\": \"%command.compilerlog%\",\n        \"category\": \"LaTeX Workshop\",\n        \"enablement\": \"!virtualWorkspace\"\n      },\n      {\n        \"command\": \"latex-workshop.log\",\n        \"title\": \"%command.log%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.actions\",\n        \"title\": \"%command.actions%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop-dev.parselog\",\n        \"title\": \"%command-dev.parselog%\",\n        \"category\": \"LaTeX Workshop DevTools\"\n      },\n      {\n        \"command\": \"latex-workshop-dev.parsetex\",\n        \"title\": \"%command-dev.parsetex%\",\n        \"category\": \"LaTeX Workshop DevTools\"\n      },\n      {\n        \"command\": \"latex-workshop-dev.parsebib\",\n        \"title\": \"%command-dev.parsebib%\",\n        \"category\": \"LaTeX Workshop DevTools\"\n      },\n      {\n        \"command\": \"latex-workshop-dev.striptext\",\n        \"title\": \"%command-dev.striptext%\",\n        \"category\": \"LaTeX Workshop DevTools\"\n      },\n      {\n        \"command\": \"latex-workshop.texdoc\",\n        \"title\": \"%command.texdoc%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.texdocUsepackages\",\n        \"title\": \"%command.texdocUsepackages%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.promote-sectioning\",\n        \"title\": \"%command.promote-sectioning%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.demote-sectioning\",\n        \"title\": \"%command.demote-sectioning%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.select-section\",\n        \"title\": \"%command.select-section%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.bibsort\",\n        \"title\": \"%command.bibsort%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.bibalign\",\n        \"title\": \"%command.bibalign%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.bibalignsort\",\n        \"title\": \"%command.bibalignsort%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.checkcitations\",\n        \"title\": \"%command.checkcitations%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.openMathPreviewPanel\",\n        \"title\": \"%command.openMathPreviewPanel%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.closeMathPreviewPanel\",\n        \"title\": \"%command.closeMathPreviewPanel%\",\n        \"category\": \"LaTeX Workshop\"\n      },\n      {\n        \"command\": \"latex-workshop.toggleMathPreviewPanel\",\n        \"title\": \"%command.toggleMathPreviewPanel%\",\n        \"category\": \"LaTeX Workshop\"\n      }\n    ],\n    \"keybindings\": [\n      {\n        \"key\": \"ctrl+l alt+m\",\n        \"mac\": \"cmd+l alt+m\",\n        \"command\": \"latex-workshop.toggleMathPreviewPanel\",\n        \"when\": \"editorLangId =~ /^latex$|^latex-expl3$|^context$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+l alt+b\",\n        \"mac\": \"cmd+l alt+b\",\n        \"command\": \"latex-workshop.build\",\n        \"when\": \"editorLangId =~ /^bibtex$|^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && config.latex-workshop.bind.altKeymap.enabled && !virtualWorkspace\"\n      },\n      {\n        \"key\": \"ctrl+l alt+c\",\n        \"mac\": \"cmd+l alt+c\",\n        \"command\": \"latex-workshop.clean\",\n        \"when\": \"editorLangId =~ /^bibtex$|^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && config.latex-workshop.bind.altKeymap.enabled && !virtualWorkspace\"\n      },\n      {\n        \"key\": \"ctrl+l alt+v\",\n        \"mac\": \"cmd+l alt+v\",\n        \"command\": \"latex-workshop.view\",\n        \"when\": \"editorLangId =~ /^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+l alt+j\",\n        \"mac\": \"cmd+l alt+j\",\n        \"command\": \"latex-workshop.synctex\",\n        \"when\": \"editorTextFocus && editorLangId =~ /^latex$|^latex-expl3$|^doctex$/ && config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+l alt+x\",\n        \"mac\": \"cmd+l alt+x\",\n        \"command\": \"workbench.view.extension.latex-workshop-activitybar\",\n        \"when\": \"config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+alt+m\",\n        \"mac\": \"cmd+alt+m\",\n        \"command\": \"latex-workshop.toggleMathPreviewPanel\",\n        \"when\": \"editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+alt+b\",\n        \"mac\": \"cmd+alt+b\",\n        \"command\": \"latex-workshop.build\",\n        \"when\": \"editorLangId =~ /^build$|^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !config.latex-workshop.bind.altKeymap.enabled && !virtualWorkspace\"\n      },\n      {\n        \"key\": \"ctrl+alt+c\",\n        \"mac\": \"cmd+alt+c\",\n        \"command\": \"latex-workshop.clean\",\n        \"when\": \"editorLangId =~ /^build$|^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !config.latex-workshop.bind.altKeymap.enabled && !virtualWorkspace\"\n      },\n      {\n        \"key\": \"ctrl+alt+v\",\n        \"mac\": \"cmd+alt+v\",\n        \"command\": \"latex-workshop.view\",\n        \"when\": \"editorLangId =~ /^latex$|^latex-class$|^latex-package$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+alt+j\",\n        \"mac\": \"cmd+alt+j\",\n        \"command\": \"latex-workshop.synctex\",\n        \"when\": \"editorTextFocus && editorLangId =~ /^latex$|^latex-expl3$|^doctex$/ && !config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+alt+x\",\n        \"mac\": \"cmd+alt+x\",\n        \"command\": \"workbench.view.extension.latex-workshop-activitybar\",\n        \"when\": \"!config.latex-workshop.bind.altKeymap.enabled\"\n      },\n      {\n        \"key\": \"ctrl+l [\",\n        \"mac\": \"cmd+l [\",\n        \"when\": \"config.latex-workshop.bind.altKeymap.enabled && editorTextFocus && !editorReadonly && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.promote-sectioning\"\n      },\n      {\n        \"key\": \"ctrl+l ]\",\n        \"mac\": \"cmd+l ]\",\n        \"when\": \"config.latex-workshop.bind.altKeymap.enabled && editorTextFocus && !editorReadonly && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.demote-sectioning\"\n      },\n      {\n        \"key\": \"ctrl+alt+[\",\n        \"mac\": \"cmd+alt+[\",\n        \"when\": \"!config.latex-workshop.bind.altKeymap.enabled && editorTextFocus && !editorReadonly && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.promote-sectioning\"\n      },\n      {\n        \"key\": \"ctrl+alt+]\",\n        \"mac\": \"cmd+alt+]\",\n        \"when\": \"!config.latex-workshop.bind.altKeymap.enabled && editorTextFocus && !editorReadonly && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.demote-sectioning\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+enter\",\n        \"mac\": \"cmd+l cmd+enter\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.item\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+b\",\n        \"mac\": \"cmd+l cmd+b\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textbf\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+i\",\n        \"mac\": \"cmd+l cmd+i\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textit\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+u\",\n        \"mac\": \"cmd+l cmd+u\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.underline\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+e\",\n        \"mac\": \"cmd+l cmd+e\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.emph\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+r\",\n        \"mac\": \"cmd+l cmd+r\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textrm\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+t\",\n        \"mac\": \"cmd+l cmd+t\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.texttt\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+s\",\n        \"mac\": \"cmd+l cmd+s\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textsl\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+c\",\n        \"mac\": \"cmd+l cmd+c\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textsc\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+n\",\n        \"mac\": \"cmd+l cmd+n\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textnormal\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+6\",\n        \"mac\": \"cmd+l cmd+6\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textsuperscript\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+oem_minus\",\n        \"mac\": \"cmd+l cmd+oem_minus\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.textsubscript\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+b\",\n        \"mac\": \"ctrl+shift+m cmd+b\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathbf\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+i\",\n        \"mac\": \"ctrl+shift+m cmd+i\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathit\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+r\",\n        \"mac\": \"ctrl+shift+m cmd+r\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathrm\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+t\",\n        \"mac\": \"ctrl+shift+m cmd+t\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathtt\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+s\",\n        \"mac\": \"ctrl+shift+m cmd+s\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathsf\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+shift+b\",\n        \"mac\": \"ctrl+shift+m cmd+shift+b\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathbb\"\n      },\n      {\n        \"key\": \"ctrl+m ctrl+c\",\n        \"mac\": \"ctrl+shift+m cmd+c\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorLangId =~ /^bibtex$|^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.shortcut.mathcal\"\n      },\n      {\n        \"command\": \"expandLineSelection\",\n        \"key\": \"ctrl+l ctrl+l\",\n        \"mac\": \"cmd+l cmd+l\",\n        \"when\": \"textInputFocus && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\"\n      },\n      {\n        \"command\": \"editor.action.toggleTabFocusMode\",\n        \"key\": \"ctrl+l ctrl+m\",\n        \"mac\": \"cmd+l ctrl+shift+m\",\n        \"when\": \"textInputFocus && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\"\n      },\n      {\n        \"key\": \"ctrl+l ctrl+w\",\n        \"mac\": \"cmd+l cmd+w\",\n        \"when\": \"editorTextFocus && !editorReadonly && editorHasSelection && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n        \"command\": \"latex-workshop.surround\"\n      },\n      {\n        \"command\": \"latex-workshop.onEnterKey\",\n        \"key\": \"enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && acceptSuggestionOnEnter && !suggestWidgetVisible && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && vim.active && vim.mode == 'Insert'\"\n      },\n      {\n        \"command\": \"latex-workshop.onEnterKey\",\n        \"key\": \"enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && !acceptSuggestionOnEnter && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && vim.active && vim.mode == 'Insert'\"\n      },\n      {\n        \"command\": \"latex-workshop.onEnterKey\",\n        \"key\": \"enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && acceptSuggestionOnEnter && !suggestWidgetVisible && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !vim.active\"\n      },\n      {\n        \"command\": \"latex-workshop.onEnterKey\",\n        \"key\": \"enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && !acceptSuggestionOnEnter && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !vim.active\"\n      },\n      {\n        \"command\": \"latex-workshop.onAltEnterKey\",\n        \"key\": \"alt+enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && acceptSuggestionOnEnter && !suggestWidgetVisible && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\"\n      },\n      {\n        \"command\": \"latex-workshop.onAltEnterKey\",\n        \"key\": \"alt+enter\",\n        \"when\": \"config.latex-workshop.bind.enter.key && editorTextFocus && !acceptSuggestionOnEnter && !editorReadonly && editorLangId =~ /^latex$|^context$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\"\n      }\n    ],\n    \"configurationDefaults\": {\n      \"[latex]\": {\n        \"editor.formatOnPaste\": false,\n        \"editor.suggestSelection\": \"recentlyUsedByPrefix\"\n      }\n    },\n    \"configuration\": {\n      \"type\": \"object\",\n      \"title\": \"LaTeX\",\n      \"properties\": {\n        \"latex-workshop.latex.recipes\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"name\": {\n                \"type\": \"string\"\n              },\n              \"tools\": {\n                \"type\": \"array\",\n                \"items\": {\n                  \"type\": \"string\"\n                }\n              }\n            },\n            \"required\": [\n              \"name\",\n              \"tools\"\n            ],\n            \"additionalProperties\": false\n          },\n          \"default\": [\n            {\n              \"name\": \"latexmk\",\n              \"tools\": [\n                \"latexmk\"\n              ]\n            },\n            {\n              \"name\": \"latexmk (latexmkrc)\",\n              \"tools\": [\n                \"latexmk_rconly\"\n              ]\n            },\n            {\n              \"name\": \"latexmk (lualatex)\",\n              \"tools\": [\n                \"lualatexmk\"\n              ]\n            },\n            {\n              \"name\": \"latexmk (xelatex)\",\n              \"tools\": [\n                \"xelatexmk\"\n              ]\n            },\n            {\n              \"name\": \"pdflatex -> bibtex -> pdflatex * 2\",\n              \"tools\": [\n                \"pdflatex\",\n                \"bibtex\",\n                \"pdflatex\",\n                \"pdflatex\"\n              ]\n            },\n            {\n              \"name\": \"Compile Rnw files\",\n              \"tools\": [\n                \"rnw2tex\",\n                \"latexmk\"\n              ]\n            },\n            {\n              \"name\": \"Compile Jnw files\",\n              \"tools\": [\n                \"jnw2tex\",\n                \"latexmk\"\n              ]\n            },\n            {\n              \"name\": \"Compile Pnw files\",\n              \"tools\": [\n                \"pnw2tex\",\n                \"latexmk\"\n              ]\n            },\n            {\n              \"name\": \"tectonic\",\n              \"tools\": [\n                \"tectonic\"\n              ]\n            }\n          ],\n          \"markdownDescription\": \"Define LaTeX compiling recipes. Each recipe in the list is an object containing its name and the names of tools to be used sequentially, which are defined in `#latex-workshop.latex.tools#`. By default, the first recipe is used to compile the project. For details, please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#latex-recipes.\"\n        },\n        \"latex-workshop.latex.recipe.default\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"first\",\n          \"markdownDescription\": \"Define which recipe is used by `#latex-workshop.build#`. It also applies to auto build. Recipes are referred to by their names as defined in `#latex-workshop.latex.recipes#`. Note there are two particular values: \\n- `first` means to use the first recipe in `#latex-workshop.latex.recipes#`;\\n- `lastUsed` means to use the last run recipe.\"\n        },\n        \"latex-workshop.latex.tools\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"name\": {\n                \"type\": \"string\"\n              },\n              \"command\": {\n                \"type\": \"string\"\n              },\n              \"args\": {\n                \"type\": \"array\",\n                \"items\": {\n                  \"type\": \"string\"\n                }\n              },\n              \"env\": {\n                \"type\": \"object\"\n              }\n            },\n            \"required\": [\n              \"name\",\n              \"command\"\n            ],\n            \"additionalProperties\": false\n          },\n          \"default\": [\n            {\n              \"name\": \"latexmk\",\n              \"command\": \"latexmk\",\n              \"args\": [\n                \"-synctex=1\",\n                \"-interaction=nonstopmode\",\n                \"-file-line-error\",\n                \"-pdf\",\n                \"-outdir=%OUTDIR%\",\n                \"-auxdir=%AUXDIR%\",\n                \"%DOC%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"lualatexmk\",\n              \"command\": \"latexmk\",\n              \"args\": [\n                \"-synctex=1\",\n                \"-interaction=nonstopmode\",\n                \"-file-line-error\",\n                \"-lualatex\",\n                \"-outdir=%OUTDIR%\",\n                \"-auxdir=%AUXDIR%\",\n                \"%DOC%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"xelatexmk\",\n              \"command\": \"latexmk\",\n              \"args\": [\n                \"-synctex=1\",\n                \"-interaction=nonstopmode\",\n                \"-file-line-error\",\n                \"-xelatex\",\n                \"-outdir=%OUTDIR%\",\n                \"-auxdir=%AUXDIR%\",\n                \"%DOC%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"latexmk_rconly\",\n              \"command\": \"latexmk\",\n              \"args\": [\n                \"%DOC%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"pdflatex\",\n              \"command\": \"pdflatex\",\n              \"args\": [\n                \"-synctex=1\",\n                \"-interaction=nonstopmode\",\n                \"-file-line-error\",\n                \"%DOC%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"bibtex\",\n              \"command\": \"bibtex\",\n              \"args\": [\n                \"%DOCFILE%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"rnw2tex\",\n              \"command\": \"Rscript\",\n              \"args\": [\n                \"-e\",\n                \"knitr::opts_knit$set(concordance = TRUE); knitr::knit('%DOCFILE_EXT%')\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"jnw2tex\",\n              \"command\": \"julia\",\n              \"args\": [\n                \"-e\",\n                \"using Weave; weave(\\\"%DOC_EXT%\\\", doctype=\\\"tex\\\")\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"jnw2texminted\",\n              \"command\": \"julia\",\n              \"args\": [\n                \"-e\",\n                \"using Weave; weave(\\\"%DOC_EXT%\\\", doctype=\\\"texminted\\\")\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"pnw2tex\",\n              \"command\": \"pweave\",\n              \"args\": [\n                \"-f\",\n                \"tex\",\n                \"%DOC_EXT%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"pnw2texminted\",\n              \"command\": \"pweave\",\n              \"args\": [\n                \"-f\",\n                \"texminted\",\n                \"%DOC_EXT%\"\n              ],\n              \"env\": {}\n            },\n            {\n              \"name\": \"tectonic\",\n              \"command\": \"tectonic\",\n              \"args\": [\n                \"--synctex\",\n                \"--keep-logs\",\n                \"--print\",\n                \"%DOC%.tex\"\n              ],\n              \"env\": {}\n            }\n          ],\n          \"markdownDescription\": \"Define LaTeX compiling tools to be used in recipes. Each tool is labeled by its `name`. When invoked, `command` is spawned with arguments defined in `args` and environment variables defined in `env`. Typically no spaces should appear in each argument unless in paths. List of available placeholders: `%DOC%`, `%DOC_W32%, %DOC_EXT%`, `%DOC_EXT_W32%`, `%DOCFILE%`, `%DOCFILE_EXT%`, `%DIR%`, `%DIR_W32%`, `%TMPDIR%`, `%AUXDIR%` and `%OUTDIR%`, `%OUTDIR_W32%`. Please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders for a complete list of all placeholders.\"\n        },\n        \"latex-workshop.latex.magic.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"-synctex=1\",\n            \"-interaction=nonstopmode\",\n            \"-file-line-error\",\n            \"%DOC%\"\n          ],\n          \"markdownDescription\": \"Define the arguments to be input to magic command executable. This can be overridden by using \\\"% !TeX options\\\".\"\n        },\n        \"latex-workshop.latex.magic.bib.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"%DOCFILE%\"\n          ],\n          \"markdownDescription\": \"Define the arguments to be input to BIB magic command executable. This can be overridden by using \\\"% !BIB options\\\".\"\n        },\n        \"latex-workshop.latex.external.build.command\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The external command to execute when calling latex-workshop.build. This is useful when compiling relies on a Makefile or a bespoke script. When defined, it completely bypasses the recipes and root file detection mechanism.\"\n        },\n        \"latex-workshop.latex.external.build.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"The arguments of `#latex-workshop.latex.external.build.command#` when calling latex-workshop.build.\"\n        },\n        \"latex-workshop.latex.build.forceRecipeUsage\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Force the use the recipe mechanism even if some magic comments are present.\",\n          \"deprecationMessage\": \"Use `#latex-workshop.latex.build.enableMagicComments` instead.\"\n        },\n        \"latex-workshop.latex.build.enableMagicComments\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable magic comments if present.\"\n        },\n        \"latex-workshop.latex.build.fromWorkspaceFolder\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Run the recipe from the workspace folder. If false, the recipe is run from the directory containing the root file. The setting has no effect on external commands `#latex-workshop.latex.external.build.command`.\"\n        },\n        \"latex-workshop.latex.outDir\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"%DIR%\",\n          \"markdownDescription\": \"The directory where the extension tries to find project files (e.g., PDF and SyncTeX files). Both relative and absolute paths are supported. Relative path start from the root file location, so beware if it is located in sub-directory. The path must not contain a trailing slash. The LaTeX toolchain should output files to this path. For a list of supported placeholders, please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders. Note that if this config is set to `%DIR%` (default value) or `%DIR_W32%`, the extension will try to parse the last LaTeX tools used and look for `-out-directory=` and `-outdir=`, and automatically determine the output directory. This means that you can safely ignore this config if you use `latexmk` and do not manually `mv` the output files in your recipe.\"\n        },\n        \"latex-workshop.latex.auxDir\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"%OUTDIR%\",\n          \"markdownDescription\": \"The directory where the extension tries to find auxiliary project files (e.g., aux, fls). Both relative and absolute paths are supported. Relative path start from the root file location, so beware if it is located in sub-directory. The path must not contain a trailing slash. The LaTeX toolchain should output auxiliary files to this path. For a list of supported placeholders, please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders. Note that if this config is set to `%OUTDIR%` (default value), the extension will try to parse the last LaTeX tools used and look for `-aux-directory=` and `-auxdir=`, and automatically determine the auxiliary directory.\"\n        },\n        \"latex-workshop.latex.extraExts\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"The list of extra file extensions to be considered as LaTeX files. The extension will parse these files for references and to provide intellisense. The file extensions must contain the leading dot.\"\n        },\n        \"latex-workshop.latex.jobname\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The jobname argument of the compiling tool, which is used by the extension to find project files (e.g., PDF and SyncTeX files). This config should be set identical to the value provided to the `-jobname=` argument, and should not have placeholders. Leave the config empty to ignore jobname and keep the default behavior.\"\n        },\n        \"latex-workshop.latex.build.rootfileInStatus\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Whether to include the name of the root file being built in the status bar. You can use only 2 placeholders: `%WORKSPACE_FOLDER%`, `%RELATIVE_DIR%`. Please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders for their definitions.\"\n        },\n        \"latex-workshop.latex.texDirs\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"List of directories where to look for extra input `.tex` files. \\nAbsolute paths are required. You may also need to set the environment variable `TEXINPUTS` properly for the LaTeX compiler to find the `.tex` files, see the `env` parameter of [recipes](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#latex-recipes).\"\n        },\n        \"latex-workshop.latex.verbatimEnvs\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"verbatim\",\n            \"lstlisting\",\n            \"minted\"\n          ],\n          \"markdownDescription\": \"List environments with verbatim-like content. These environments are stripped off the `.tex` files before any parsing occurs. The environment names are not case sensitive and their star `*` versions are automatically added. Note that this variable has no effect on syntax highlighting.\"\n        },\n        \"latex-workshop.kpsewhich.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"kpsewhich\",\n          \"markdownDescription\": \"Define the location of the kpsewhich executable file.\"\n        },\n        \"latex-workshop.kpsewhich.class.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Use kpsewhich as defined by `#latex-workshop.kpsewhich.path#` to resolve latex class paths for intellisense parsing.\"\n        },\n        \"latex-workshop.kpsewhich.bibtex.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Use kpsewhich as defined by `#latex-workshop.kpsewhich.path#` to resolve bibliography file paths for intellisense parsing.\"\n        },\n        \"latex-workshop.latex.bibDirs\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"List of directories where to look for `.bib` files. Absolute paths are required. This setting is only used by the intellisense feature, you may also need to set the environment variable `BIBINPUTS` properly for the LaTeX compiler to find the `.bib` files.\"\n        },\n        \"latex-workshop.latex.search.rootFiles.include\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"**/*.tex\",\n            \"**/*.rnw\",\n            \"**/*.Rnw\"\n          ],\n          \"markdownDescription\": \"Patterns of files to consider for the root detection mechanism. Relative paths are computed from the workspace folder. To detect the root file and the tex file tree, we parse all the `.tex` listed here. If you want to specify all `.tex` files inside directory, say `foo`, and all its subdirectories recursively, you need to use `**/foo/**/*.tex`. If you only want to match `.tex` files at the top level of the workspace, use `*.tex`. For more details, see https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#multi-file-projects\"\n        },\n        \"latex-workshop.latex.search.rootFiles.exclude\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"Patterns of files to exclude from the root detection mechanism. See also `#latex-workshop.latex.search.rootFiles.include#`. For more details, see the https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#multi-file-projects.\"\n        },\n        \"latex-workshop.latex.rootFile.useSubFile\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"When the `subfile` package is used, either the main file or any subfile containing `\\\\documentclass[main.tex]{subfile}` can be LaTeXing. When `true`, the extension uses the subfile as the rootFile for the `autobuild`, `clean` and `synctex` commands.\"\n        },\n        \"latex-workshop.latex.rootFile.doNotPrompt\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"When the `subfile` package is used, either the main file or any subfile containing `\\\\documentclass[main.tex]{subfile}` can be LaTeXing. When `false`, the `build` and `view` commands  ask the user's choice first. When `true`, the subfile is used when `#latex-workshop.latex.rootFile.useSubFile#` is also `true`, otherwise the rootFile is used.\"\n        },\n        \"latex-workshop.latex.rootFile.indicator\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"\\\\documentclass[]{}\",\n          \"enum\": [\n            \"\\\\documentclass[]{}\",\n            \"\\\\begin{document}\",\n            \"\\\\starttext\",\n            \"\\\\startTEXpage\"\n          ],\n          \"markdownDescription\": \"Determine if the root file is detected based on the presence of `\\\\documentclass[]{}` or `\\\\begin{document}` for LaTeX documents, or `\\\\starttext` or `\\\\startTEXpage` for ConTeXt documents.\"\n        },\n        \"latex-workshop.latex.watch.delay\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 250,\n          \"markdownDescription\": \"Defines the time delay before confirming a non-binary file is indeed deleted. Increase this value if your toolchain involves external file changes with a delete-then-create pattern. LaTeX Workshop internally monitors file change events and initiates auto-builds, intellisense parsing, latex importing, and/or PDF viewing refresh. We use this config to control the file polling delay before confirming that the file deletion is not a delete-then-create.\"\n        },\n        \"latex-workshop.latex.watch.pdf.delay\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 250,\n          \"markdownDescription\": \"Defines the time delay before confirming a PDF-like binary file is fully changed. Increase this value if you encounter repeated viewer refreshes and/or loss of PDF scrolling position. LaTeX Workshop internally monitors file change events and initiates auto-builds and/or PDF viewing refresh. When LaTeX is changing large files (particularly binary files like PDFs), multiple consecutive file change events may be emitted, potentially causing file corruption issues. We use this config to control the file polling delay before confirming that the file change has been stabilized. Note that non-binary files such as `.tex`, `.bib`, and `.cls` are not affected.\"\n        },\n        \"latex-workshop.latex.watch.files.ignore\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"**/*.aux\",\n            \"**/*.bbx\",\n            \"**/*.bbl\",\n            \"**/*.cbx\",\n            \"**/*.cfg\",\n            \"**/*.clo\",\n            \"**/*.cnf\",\n            \"**/*.def\",\n            \"**/*.dfu\",\n            \"**/*.enc\",\n            \"**/*.fd\",\n            \"**/*.fmt\",\n            \"**/*.gls\",\n            \"**/*.lbx\",\n            \"**/*.map\",\n            \"**/*.mkii\",\n            \"**/*.out\",\n            \"**/*.pfb\",\n            \"**/*.tfm\",\n            \"**/*.vf\",\n            \"**/*.code.tex\",\n            \"**/*.sty\",\n            \"**/texmf-{dist,var}/**\",\n            \"**/Local/MiKTeX/**\",\n            \"**/Local/Programs/MiKTeX/**\",\n            \"**/Roaming/MiKTeX/**\",\n            \"**/Program*/MiKTeX*/**\",\n            \"**/.miktex/texmfs/**\",\n            \"/var/cache/miktex-texmf/**\",\n            \"/usr/local/share/miktex-texmf/**\",\n            \"**/Library/Application Support/MiKTeX/texmfs/**\",\n            \"/dev/null\"\n          ],\n          \"markdownDescription\": \"Files to ignore from the watching mechanism, i.e., no intellisense or build-on-file-change. However, document structure/outline and build-on-save won't be affected (For build-on-save configuration, see #latex-workshop.autoBuild.onSave.files.ignore#). This property must be an array of glob patterns. The patterns are matched against the absolute file path. To ignore everything inside the `texmf` tree, `**/texmf/**` can be used. \"\n        },\n        \"latex-workshop.latex.autoBuild.run\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"never\",\n            \"onSave\",\n            \"onFileChange\"\n          ],\n          \"enumDescriptions\": [\n            \"Never run auto build\",\n            \"Auto build whenever a file is saved\",\n            \"Auto build whenever a dependency file changes on disk\"\n          ],\n          \"default\": \"onFileChange\",\n          \"markdownDescription\": \"When the extension shall auto build LaTeX project using the default (first) recipe. \\n- `onSave` builds the project upon saving a `tex` file in vscode.\\n- `onFileChange` builds the project upon detecting a file change in any of the dependencies, even modified by other applications.\\n\\n Note that `onSave` is more restrictive than `onFileChange` \"\n        },\n        \"latex-workshop.latex.autoBuild.interval\": {\n          \"scope\": \"resource\",\n          \"type\": \"integer\",\n          \"default\": 1000,\n          \"markdownDescription\": \"The minimal time interval in milliseconds for an auto build to trigger after the previous (manual and auto) build. This value is recommended to be greater than ~500.\"\n        },\n        \"latex-workshop.latex.autoBuild.cleanAndRetry.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Delete LaTeX auxiliary files when errors occur during build and retry. This property defines whether LaTeX Workshop will try to clean and build the project once again after errors happen in the build toolchain.\"\n        },\n        \"latex-workshop.latex.autoBuild.onSave.files.ignore\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"**/*.sty\",\n            \"**/*.cls\"\n          ],\n          \"markdownDescription\": \"Files to ignore from the auto-build on save mechanism, This property must be an array of glob patterns. The patterns are matched against the absolute file path.\"\n        },\n        \"latex-workshop.latex.build.clearLog.everyRecipeStep.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Clear the LaTeX Compiler logs before every step of a recipe. Set this property to false to keep the logs of all tools in a recipe.\"\n        },\n        \"latex-workshop.latex.autoClean.run\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"never\",\n            \"onFailed\",\n            \"onSucceeded\",\n            \"onBuilt\"\n          ],\n          \"enumDescriptions\": [\n            \"Never clean the project\",\n            \"Clean compilation fails\",\n            \"Clean compilation successes\",\n            \"Clean after build, be it successful or not\"\n          ],\n          \"default\": \"never\",\n          \"markdownDescription\": \"When LaTeX auxiliary files should be deleted. The folder to be cleaned is defined in `#latex-workshop.latex.outDir#`.\\n- `onFailed` cleans the project when compilation fails.\\n- `onBuilt` cleans the project when compilation is done, whether successful or failed.\"\n        },\n        \"latex-workshop.latex.clean.subfolder.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Delete LaTeX auxiliary files recursively in sub-folders of `#latex-workshop.latex.outDir#` and `#latex-workshop.latex.auxDir#`. Note that sub-folders are not removed.\"\n        },\n        \"latex-workshop.latex.clean.fileTypes\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"%DOCFILE%.aux\",\n            \"%DOCFILE%.bbl\",\n            \"%DOCFILE%.blg\",\n            \"%DOCFILE%.idx\",\n            \"%DOCFILE%.ind\",\n            \"%DOCFILE%.lof\",\n            \"%DOCFILE%.lot\",\n            \"%DOCFILE%.out\",\n            \"%DOCFILE%.toc\",\n            \"%DOCFILE%.acn\",\n            \"%DOCFILE%.acr\",\n            \"%DOCFILE%.alg\",\n            \"%DOCFILE%.glg\",\n            \"%DOCFILE%.glo\",\n            \"%DOCFILE%.gls\",\n            \"%DOCFILE%.fls\",\n            \"%DOCFILE%.log\",\n            \"%DOCFILE%.fdb_latexmk\",\n            \"%DOCFILE%.snm\",\n            \"%DOCFILE%.synctex(busy)\",\n            \"%DOCFILE%.synctex.gz(busy)\",\n            \"%DOCFILE%.nav\",\n            \"%DOCFILE%.vrb\"\n          ],\n          \"markdownDescription\": \"Files to clean when `#latex-workshop.latex.clean.method#` is set to `glob`. This property must be an array of strings. Placeholders listed in https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders can be used to populate the glob strings. File globs such as `*.removeme`, `something?.aux` can be used. Users can also specify glob patterns like `emptyfolder*/` to remove empty folders. Non-empty folders will be ignored. The folder globs must end with a slash and the last path component must not contain the globstar `**`, otherwise the folders will not be removed. The following globs patterns are correct `['abc/', 'abc*/', '**/abc*/', 'abc/**/def/']` but these are not ['**', '**/', 'abc/**', 'abc/**/', 'abc/def**/', 'abc/d**ef/']`.\"\n        },\n        \"latex-workshop.latex.clean.command\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"latexmk\",\n          \"markdownDescription\": \"The command to be used to remove temporary files when `#latex-workshop.latex.clean.method#` is set to `command`.\"\n        },\n        \"latex-workshop.latex.clean.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"-outdir=%OUTDIR%\",\n            \"-auxdir=%AUXDIR%\",\n            \"-c\",\n            \"%TEX%\"\n          ],\n          \"markdownDescription\": \"The arguments of `#latex-workshop.latex.clean.command#`. Placeholders listed in https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders can be used to populate the argument strings. Besides, an additional `%TEX%` placeholder refers to the full path of the tex file from which the clean command is called.\"\n        },\n        \"latex-workshop.latex.clean.method\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"command\",\n          \"enum\": [\n            \"glob\",\n            \"command\"\n          ],\n          \"markdownEnumDescriptions\": [\n            \"Clean all the files located in `#latex-workshop.latex.outDir#` and `#latex-workshop.latex.auxDir#` and matching the glob patterns listed in `#latex-workshop.latex.clean.fileTypes#`.\",\n            \"Run `#latex-workshop.latex.clean.command#` to clean temporary files.\"\n          ],\n          \"markdownDescription\": \"Define how temporary files will be cleaned.\"\n        },\n        \"latex-workshop.latex.option.maxPrintLine.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Add `--max-print-line` option to LaTeX build commands. This flag tells some MikTeX compilers to produce non hard wrapped log messages. Non hard wrapped log messages are required for the _Problem_ Pane to properly display messages.\"\n        },\n        \"latex-workshop.view.outline.sections\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"part\",\n            \"chapter\",\n            \"section\",\n            \"subsection\",\n            \"subsubsection\"\n          ],\n          \"markdownDescription\": \"The section names of LaTeX outline hierarchy. It is also used by the folding mechanism. This property is an array of case-sensitive strings in the order of document structure hierarchy. For multiple tags in the same level, separate the tags with `|` as delimiters, e.g., `section|alternative`.\"\n        },\n        \"latex-workshop.view.outline.commands\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"label\"\n          ],\n          \"markdownDescription\": \"The names of the commands to be shown in the outline/structure views. The commands must be called in the form `\\\\commandname{arg}`.\"\n        },\n        \"latex-workshop.view.outline.follow.editor\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Whether scrolling the editor will also reveal corresponding structure items.\"\n        },\n        \"latex-workshop.view.outline.sync.viewer\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Whether clicking on structure items will also call synctex to scroll the PDF viewer to the corresponding location.\"\n        },\n        \"latex-workshop.view.outline.floats.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Show the floating objects (figures and tables) in the outline/structure views.\"\n        },\n        \"latex-workshop.view.outline.floats.number.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Show the float number in the outline/structure views.\"\n        },\n        \"latex-workshop.view.outline.floats.caption.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Show the float caption in the outline/structure views.\"\n        },\n        \"latex-workshop.view.outline.numbers.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Show the sectioning numbers in the outline/structure views.\"\n        },\n        \"latex-workshop.view.autoFocus.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Auto focus the LaTeX view when switching from non-tex to tex files. This will cause the view to appear consistently upon activating the extension.\"\n        },\n        \"latex-workshop.view.pdf.viewer\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"tab\",\n          \"enum\": [\n            \"browser\",\n            \"tab\",\n            \"external\",\n            \"legacy\",\n            \"singleton\"\n          ],\n          \"markdownDescription\": \"The default PDF viewer.\",\n          \"enumDescriptions\": [\n            \"Open PDF with the default web browser.\",\n            \"Open PDF with the built-in tab viewer.\",\n            \"[Experimental] Open PDF with the external viewer set in \\\"View > Pdf > External: command\\\".\",\n            \"[Legacy] Open PDF with the built-in tab viewer with vscode WebView API.\",\n            \"[Legacy] Open PDF with the built-in tab viewer with vscode WebView API, reveal existing one if possible.\"\n          ]\n        },\n        \"latex-workshop.view.pdf.tab.editorGroup\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"right\",\n          \"enum\": [\n            \"current\",\n            \"left\",\n            \"right\",\n            \"above\",\n            \"below\"\n          ],\n          \"markdownDescription\": \"The editor group in which to open the tab viewer.\",\n          \"enumDescriptions\": [\n            \"Use the current editor group\",\n            \"Put the viewer tab in a new group on the left of the current one\",\n            \"Put the viewer tab in a new group on the right of the current one\",\n            \"Put the viewer tab in a new group above the current one\",\n            \"Put the viewer tab in a new group below the current one\"\n          ]\n        },\n        \"latex-workshop.view.pdf.ref.viewer\": {\n          \"type\": \"string\",\n          \"default\": \"auto\",\n          \"enum\": [\n            \"auto\",\n            \"tabOrBrowser\",\n            \"external\"\n          ],\n          \"markdownDescription\": \"PDF viewer used for [View on PDF] link on \\\\ref.\"\n        },\n        \"latex-workshop.view.pdf.internal.port\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"Define the port to listen on for communicating with the internal viewer. The default value \\\"0\\\" means the port is chosen randomly by the application. If this config is set, only one Visual Studio Code instance with this extension active can be opened. Otherwise, a port conflict may happen.\"\n        },\n        \"latex-workshop.view.pdf.internal.synctex.keybinding\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"ctrl-click\",\n          \"enum\": [\n            \"ctrl-click\",\n            \"double-click\"\n          ],\n          \"markdownDescription\": \"Which keybinding to use for the internal viewer for reverse synctex. `ctrl`/`cmd` + click (default) or double click.\"\n        },\n        \"latex-workshop.view.pdf.internal.keyboardEvent\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"auto\",\n          \"enum\": [\n            \"auto\",\n            \"force\",\n            \"never\"\n          ],\n          \"markdownDescription\": \"Rebroadcasting KeyboardEvent on the internal viewers. If keyboard shortcuts on the internal viewer do not work well, change this setting.\"\n        },\n        \"latex-workshop.view.pdf.external.viewer.command\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The command to execute when using external viewer. This function is not officially supported.\"\n        },\n        \"latex-workshop.view.pdf.external.viewer.args\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"%PDF%\"\n          ],\n          \"markdownDescription\": \"The arguments for `#latex-workshop.view.pdf.external.viewer.command#` when using external viewer. This function is not officially supported. %PDF% is the placeholder for the absolute path to the generated PDF file.\"\n        },\n        \"latex-workshop.view.pdf.external.synctex.command\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The command to execute when forward synctex to external viewer. This function is not officially supported.\"\n        },\n        \"latex-workshop.view.pdf.external.synctex.args\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"%LINE%\",\n            \"%PDF%\",\n            \"%TEX%\"\n          ],\n          \"markdownDescription\": \"The arguments for `#latex-workshop.view.pdf.external.synctex.args#` when forward synctex to external viewer. %LINE% is the line number, %PDF% is the placeholder for the absolute path to the generated PDF file, and %TEX% is the source LaTeX file path with `.tex` extension from which syncTeX is fired.\"\n        },\n        \"latex-workshop.view.pdf.zoom\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"auto\",\n          \"markdownDescription\": \"The default zoom level of the PDF viewer. This default value will be passed to the viewer upon opening. Possible values are `auto`, `page-actual`, `page-fit`, `page-width`, and one-based scale values (e.g., 0.5 for 50%, 2.0 for 200%).\"\n        },\n        \"latex-workshop.view.pdf.trim\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"The default trim percentage of the PDF viewer. This should be an integer between 0 and 99, indicating the portion of PDF to be trimmed. For example, setting the value to `10` means that 10% of the height and width of PDF pages are trimmed off.\"\n        },\n        \"latex-workshop.view.pdf.sidebar.open\": {\n          \"scope\": \"window\",\n          \"type\": \"enum\",\n          \"enum\": [\n            \"off\",\n            \"on\",\n            \"persist\"\n          ],\n          \"default\": \"off\",\n          \"markdownDescription\": \"The default state of the PDF viewer sidebar.\",\n          \"enumDescriptions\": [\n            \"The sidebar is closed\",\n            \"The sidebar is opened\",\n            \"The on/off state is remembered across PDF viewer sessions\"\n          ]\n        },\n        \"latex-workshop.view.pdf.sidebar.view\": {\n          \"scope\": \"window\",\n          \"type\": \"enum\",\n          \"enum\": [\n            \"thumbnails\",\n            \"outline\",\n            \"attachments\",\n            \"layers\",\n            \"persist\"\n          ],\n          \"default\": \"thumbnails\",\n          \"markdownDescription\": \"The default view of the PDF viewer sidebar. Possible values are `thumbnails`, `outline`, `attachments`, `layers`, and `persist` (the last used view is remembered across PDF viewer sessions).\"\n        },\n        \"latex-workshop.view.pdf.toolbar.hide.timeout\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 1,\n          \"markdownDescription\": \"The timeout delay in second to hide the toolbar. Setting this value to zero will disable toolbar hiding.\"\n        },\n        \"latex-workshop.view.pdf.scrollMode\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"The default scroll mode of the PDF viewer. This default value will be passed to the viewer upon opening. Possible values are `0` (vertical), `1`(horizontal), `2` (wrapped), `3` (page).\"\n        },\n        \"latex-workshop.view.pdf.spreadMode\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"The default spread mode of the PDF viewer. This default value will be passed to the viewer upon opening. Possible values are `0` (none), `1` (odd) and `2` (even).\"\n        },\n        \"latex-workshop.view.pdf.hand\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Define if the hand tool is enabled by default in the PDF viewer.\"\n        },\n        \"latex-workshop.view.pdf.invert\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"Define the CSS invert filter level of the PDF viewer. This config can invert the color of PDF. Possible values are from 0 to 1.\"\n        },\n        \"latex-workshop.view.pdf.invertMode.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"auto\",\n            \"always\",\n            \"compat\",\n            \"never\"\n          ],\n          \"default\": \"compat\",\n          \"markdownDescription\": \"Enable the CSS invert filter.\",\n          \"enumDescriptions\": [\n            \"Enable the invert filter when using a dark theme.\",\n            \"Always enable invert filter.\",\n            \"Enable the invert filter only if `invert > 0`.\",\n            \"Disable the invert filter\"\n          ]\n        },\n        \"latex-workshop.view.pdf.invertMode.brightness\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 1,\n          \"markdownDescription\": \"Define the CSS brightness filter level of the PDF viewer when the invert mode is enabled. Possible values are from 0 to 2.\"\n        },\n        \"latex-workshop.view.pdf.invertMode.grayscale\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0.6,\n          \"markdownDescription\": \"Define the CSS grayscale filter level of the PDF viewer when the invert mode is enabled. Possible values are from 0 to 1.\"\n        },\n        \"latex-workshop.view.pdf.invertMode.hueRotate\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 180,\n          \"markdownDescription\": \"Define the CSS hue-rotate filter angle of the PDF viewer when the invert mode is enabled. Possible values are from 0 to 360.\"\n        },\n        \"latex-workshop.view.pdf.invertMode.sepia\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 0,\n          \"markdownDescription\": \"Define the CSS sepia filter level of the PDF viewer when the invert mode is enabled. Possible values are from 0 to 1.\"\n        },\n        \"latex-workshop.view.pdf.color.light.pageColorsForeground\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The foreground color of the PDF document 1) in tab viewer when the vscode color theme is light, and 2) in browser when the OS theme is light. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.light.pageColorsBackground\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The background color of the PDF document 1) in tab viewer when the vscode color theme is light, and 2) in browser when the OS theme is light. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.light.backgroundColor\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"#ffffff\",\n          \"markdownDescription\": \"The background color of the viewer 1) in tab viewer when the vscode color theme is light, and 2) in browser when the OS theme is light. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.light.pageBorderColor\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"lightgrey\",\n          \"markdownDescription\": \"The border color of the PDF pages 1) in tab viewer when the vscode color theme is light, and 2) in browser when the OS theme is light. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.dark.pageColorsForeground\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The foreground color of the PDF document 1) in tab viewer when the vscode color theme is dark, and 2) in browser when the OS theme is dark. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.dark.pageColorsBackground\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"The background color of the PDF document 1) in tab viewer when the vscode color theme is dark, and 2) in browser when the OS theme is dark. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.dark.backgroundColor\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"#ffffff\",\n          \"markdownDescription\": \"The background color of the viewer 1) in tab viewer when the vscode color theme is dark, and 2) in browser when the OS theme is dark. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.color.dark.pageBorderColor\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"lightgrey\",\n          \"markdownDescription\": \"The border color of the PDF pages 1) in tab viewer when the vscode color theme is dark, and 2) in browser when the OS theme is dark. The string must represent a color in HTML.\"\n        },\n        \"latex-workshop.view.pdf.reload.transition\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"none\",\n            \"fade\"\n          ],\n          \"default\": \"fade\",\n          \"markdownDescription\": \"The transition animation between PDF page reloads.\",\n          \"enumDescriptions\": [\n            \"No transition animation\",\n            \"Fading transition animation\"\n          ]\n        },\n        \"latex-workshop.synctex.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"synctex\",\n          \"markdownDescription\": \"Define the location of SyncTeX executive file. Additional arguments, e.g., synctex modes and position of click, will be appended to this command.\"\n        },\n        \"latex-workshop.synctex.indicator\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"none\",\n            \"circle\",\n            \"rectangle\"\n          ],\n          \"enumDescriptions\": [\n            \"Hide the indicator.\",\n            \"Indicates a possible location with a red circular SyncTeX indicator.\",\n            \"Indicates the whole line selected in the TeX file with a red rectangular SyncTeX indicator. Only valid when SyncTeX binary is executable.\"\n          ],\n          \"default\": \"rectangle\",\n          \"markdownDescription\": \"Define the visibility and style of SyncTeX indicator after a forward SyncTeX in the PDF viewer.\"\n        },\n        \"latex-workshop.synctex.afterBuild.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Execute forward synctex at cursor position after compiling LaTeX project.\"\n        },\n        \"latex-workshop.linting.chktex.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable linting LaTeX with `chktex`. Check `#latex-workshop.linting.run#` to control when `chktex` is executed if this config is set to `true.\"\n        },\n        \"latex-workshop.linting.lacheck.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable linting LaTeX with `lacheck`. Check `#latex-workshop.linting.run#` to control when `lacheck` is executed if this config is set to `true.\"\n        },\n        \"latex-workshop.linting.run\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"onSave\",\n            \"onType\"\n          ],\n          \"enumDescriptions\": [\n            \"Lint the whole LaTeX project upon saving\",\n            \"Lint the active document when input is stopped\"\n          ],\n          \"default\": \"onSave\",\n          \"markdownDescription\": \"When LaTeX should be linted.\\n- `onSave`: the whole LaTeX project will be linted upon saving.\\n- `onType`: the active document will be linted when input is stopped for a period of time defined in `#latex-workshop.linting.delay#`. It also implies `onSave`.\"\n        },\n        \"latex-workshop.linting.chktex.exec.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"chktex\",\n          \"markdownDescription\": \"Define the location of ChkTeX executive file. This command will be joint with `#latex-workshop.linting.chktex.exec.args#` and required arguments to form a complete command of ChkTeX.\"\n        },\n        \"latex-workshop.linting.chktex.exec.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"-wall\",\n            \"-n22\",\n            \"-n30\",\n            \"-e16\",\n            \"-q\"\n          ],\n          \"markdownDescription\": \"Linter arguments to check LaTeX syntax of the current file state in real time with ChkTeX. Arguments must be in separate strings in the array. Additional arguments, i.e., `-I0 -f%f:%l:%c:%d:%k:%n:%m\\\\n` will be appended when constructing the command. Current file contents will be piped to the command through stdin.\"\n        },\n        \"latex-workshop.linting.chktex.convertOutput.column.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable converting ChkTeX outputs' column numbers for non-ASCII characters.\"\n        },\n        \"latex-workshop.linting.chktex.convertOutput.column.chktexrcTabSize\": {\n          \"scope\": \"resource\",\n          \"type\": \"number\",\n          \"default\": -1,\n          \"markdownDescription\": \"Write the `TabSize` number from `.chktexrc`. The default value \\\"-1\\\" means that LaTeX Workshop will try to find `.chktexrc` and to read the value from it.\"\n        },\n        \"latex-workshop.linting.delay\": {\n          \"scope\": \"resource\",\n          \"type\": \"number\",\n          \"default\": 500,\n          \"markdownDescription\": \"Defines the delay in milliseconds for linter to wait after stopped typing. This config only matters when `#latex-workshop.linting.run#` is set to `onType`.\"\n        },\n        \"latex-workshop.linting.lacheck.exec.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"lacheck\",\n          \"markdownDescription\": \"Define the location of LaCheck executive file.\"\n        },\n        \"latex-workshop.check.duplicatedLabels.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable checking for duplicated labels. A new check is triggered every time the intellisense data is updated, see `#latex-workshop.intellisense.update.aggressive.enabled#`.\"\n        },\n        \"latex-workshop.texcount.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"texcount\",\n          \"markdownDescription\": \"Define the location of TeXCount executive file/script. This command will be joint with `#latex-workshop.texcount.args#` and required arguments to form a complete command of TeXCount.\"\n        },\n        \"latex-workshop.texcount.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"TeXCount arguments to count words in the LaTeX documents of the entire project from the root file, or the current document. Arguments must be in separate strings in the array. Additional arguments, i.e., `-merge %DOC%` for the project and the current document path for counting current file will be appended when constructing the command.\"\n        },\n        \"latex-workshop.texcount.autorun\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"onSave\",\n            \"never\"\n          ],\n          \"enumDescriptions\": [\n            \"Count words in the current document\",\n            \"Never automatically call texcount\"\n          ],\n          \"default\": \"never\",\n          \"markdownDescription\": \"When to call `texcount`. Default is never.\"\n        },\n        \"latex-workshop.texcount.interval\": {\n          \"scope\": \"resource\",\n          \"type\": \"number\",\n          \"default\": 1000,\n          \"markdownDescription\": \"The minimal time interval between two consecutive runs of `texcount` in milliseconds when `#latex-workshop.texcount.autorun#` is set to `onSave`.\"\n        },\n        \"latex-workshop.intellisense.update.aggressive.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Defines whether the extension aggressively parses the changed content after stopped typing. Disable this config will let the extension only update intellisense after saving changed files.\"\n        },\n        \"latex-workshop.intellisense.update.delay\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 1000,\n          \"markdownDescription\": \"Defines the delay in milliseconds for the extension to update current active file content for intellisense after stopped typing. This config works only when `intellisense.update.aggressive.enabled` is enabled. Lower this value to let the extension know newly defined commands/references/environments more quickly, at the cost of more frequent content parsing: more computational burden.\"\n        },\n        \"latex-workshop.intellisense.atSuggestion.user\": {\n          \"scope\": \"window\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          },\n          \"default\": {},\n          \"markdownDescription\": \"Dictionary of `\\\"@prefix\\\": \\\"snippet command\\\"` to add to, replace, or remove the default suggestions in `data/at-suggestions.json`. The key of the dictionary is the triggering string, which **must** starts with `@` regardless of `#latex-workshop.intellisense.atSuggestion.trigger.latex#`. The value of the dictionary is the snippet to be inserted. If the key is identical to a default snippet defined in `data/at-suggestions.json`, the new value in the dictionary is used for suggestion. If the value is an empty string, the snippet is removed from suggestion. For example, `{ \\\"@.\\\": \\\"\\\\cdot\\\", \\\"@6\\\": \\\"\\\" }`.\"\n        },\n        \"latex-workshop.intellisense.command.user\": {\n          \"scope\": \"window\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          },\n          \"default\": {},\n          \"markdownDescription\": \"Dictionary of `\\\"command name\\\": \\\"command snippet\\\"` to add to, replace, or remove the default ones in `data/commands.json`. The key of the dictionary is the command name with optional braces indicating the command arguments. The value of the dictionary is the snippet to be inserted. If the key is identical to a default command suggestion defined in `data/commands.json`, the new value in the dictionary is used for suggestion. If the value is an empty string, the command is removed from suggestion. Leading backslashes will be added to both the name and snippet by the extension, so don't include them in this config. For example, `{\\\"mycommand[]{}\\\": \\\"notsamecommand[${2:option}]{$TM_SELECTED_TEXT$1}\\\", \\\"parbox{}{}\\\": \\\"parbox{${2:width}}{$TM_SELECTED_TEXT$1}\\\", \\\"overline{}\\\": \\\"\\\"}` adds a new command with name `mycommand[]{} that inserts `\\\\notsamecommand[]{}`, replaces the default snippet of `\\\\parbox{}{}` to make it include current selected text, and removes `\\\\overline{}` from suggestion.\"\n        },\n        \"latex-workshop.intellisense.citation.type\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"inline\",\n            \"browser\"\n          ],\n          \"default\": \"inline\",\n          \"markdownDescription\": \"Defines which type of hint to show when intellisense provides citation suggestions.\",\n          \"enumDescriptions\": [\n            \"Use the inline intellisense to provide citation completion items.\",\n            \"Use a dropdown menu to provide citation completion items.\"\n          ]\n        },\n        \"latex-workshop.intellisense.citation.label\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"bibtex key\",\n            \"title\",\n            \"authors\"\n          ],\n          \"default\": \"bibtex key\",\n          \"markdownDescription\": \"Defines what to show as suggestion labels when intellisense provides citation suggestions in inline mode.\",\n          \"enumDescriptions\": [\n            \"Show bibtex keys in the inline mode.\",\n            \"Show publication titles in the inline mode.\",\n            \"Show publication authors in the inline mode.\"\n          ]\n        },\n        \"latex-workshop.intellisense.citation.filterText\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"bibtex key\",\n              \"title\",\n              \"other fields\"\n            ],\n            \"enumDescriptions\": [\n              \"BibTeX keys.\",\n              \"Publication titles.\",\n              \"Other BibTeX fields except for title, order preserved as defined in BibTeX.\"\n            ]\n          },\n          \"default\": [\n            \"bibtex key\",\n            \"title\",\n            \"other fields\"\n          ],\n          \"markdownDescription\": \"Defines what contents are used to filter citation entries when user types characters in inline mode. Sorting is somewhat controlled by the order of contents defined by this config.\"\n        },\n        \"latex-workshop.intellisense.citation.format\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"author\",\n            \"title\",\n            \"journal\",\n            \"publisher\",\n            \"booktitle\",\n            \"year\"\n          ],\n          \"markdownDescription\": \"List of fields to display for citation preview and intellisense. This list is also used as the filter text to narrow down the intellisense suggestions.\"\n        },\n        \"latex-workshop.intellisense.triggers.latex\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"\\\\\",\n            \",\",\n            \"{\",\n            \"}\"\n          ],\n          \"markdownDescription\": \"Trigger characters for intellisense of LaTeX documents.\"\n        },\n        \"latex-workshop.intellisense.atSuggestion.trigger.latex\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"@\",\n          \"markdownDescription\": \"Character to trigger snippet suggestions as part of intellisense. Set this variable to `''` to deactivate these suggestions.\"\n        },\n        \"latex-workshop.intellisense.file.exclude\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"**/*.aux\",\n            \"**/*.bbl\",\n            \"**/*.bcf\",\n            \"**/*.blg\",\n            \"**/*.idx\",\n            \"**/*.ind\",\n            \"**/*.lof\",\n            \"**/*.lot\",\n            \"**/*.out\",\n            \"**/*.toc\",\n            \"**/*.acn\",\n            \"**/*.acr\",\n            \"**/*.alg\",\n            \"**/*.glg\",\n            \"**/*.glo\",\n            \"**/*.gls\",\n            \"**/*.ist\",\n            \"**/*.fls\",\n            \"**/*.log\",\n            \"**/*.nav\",\n            \"**/*.snm\",\n            \"**/*.fdb_latexmk\",\n            \"**/*.synctex.gz\",\n            \"**/*.run.xml\"\n          ],\n          \"markdownDescription\": \"Patterns to ignore in file completion\"\n        },\n        \"latex-workshop.intellisense.file.base\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"root relative\",\n            \"file relative\",\n            \"both\"\n          ],\n          \"default\": \"root relative\",\n          \"markdownDescription\": \"Specify the base directory for file completion\",\n          \"enumDescriptions\": [\n            \"Completion from the root file directory\",\n            \"Completion from the current file directory\",\n            \"both\"\n          ]\n        },\n        \"latex-workshop.intellisense.label.command\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"label\",\n            \"linelabel\"\n          ],\n          \"markdownDescription\": \"The name of LaTeX commands that indicates a label definition. The command must accept one mandatory argument of the label reference string, e.g, \\\\linelabel{ref-str}.\"\n        },\n        \"latex-workshop.intellisense.unimathsymbols.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"When `\\\\` is typed, show unimath symbols in the dropdown selector.\"\n        },\n        \"latex-workshop.intellisense.subsuperscript.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Auto-complete sub- and super-scripts from the current project.\"\n        },\n        \"latex-workshop.intellisense.package.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Auto-complete commands and environments from used packages.\"\n        },\n        \"latex-workshop.intellisense.package.unusual\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Auto-complete less used commands and environments from used packages. This config is only effective when `#latex-workshop.intellisense.package.enabled#` is set to `true`.\"\n        },\n        \"latex-workshop.intellisense.package.extra\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"List of extra packages to always add to the auto-completion mechanism. When `#latex-workshop.intellisense.package.enabled#` is set to `true`, the commands and environments defined in these extra packages will be added to the intellisense suggestions.\"\n        },\n        \"latex-workshop.intellisense.package.exclude\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"List of packages to exclude from the auto-completion mechanism. When `#latex-workshop.intellisense.package.enabled#` is set to `true`, the commands and environments defined in these packages will not be added to the intellisense suggestions. This setting has a higher priority over `#latex-workshop.intellisense.package.extra#`. You may include the string \\\"lw-default\\\" in the list to remove all default commands and environments.\"\n        },\n        \"latex-workshop.intellisense.package.env.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"If true, every environment provided by an included package is available by a snippet `\\\\envname`. Only applies when `#latex-workshop.intellisense.package.enabled#` is true.\"\n        },\n        \"latex-workshop.intellisense.package.dirs\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"List of extra directories to look for package completion files in addition to those provided by the extension. Files found in these directories have a higher priority over the default ones. LaTeX-Workshop bundles a limited number of package macro/env suggestions. Additional ones can be downloaded from https://download-directory.github.io/?url=https%3A%2F%2Fgithub.com%2FJames-Yu%2FLaTeX-Workshop%2Ftree%2Fmaster%2Fdev%2Fpackages . For custom packages, please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#commands-starting-with- to learn how to generate these files. This setting is only relevant when `#latex-workshop.intellisense.package.env.enabled#` is true. You can use only 2 placeholders: `%WORKSPACE_FOLDER%`, `%RELATIVE_DIR%`. Please visit https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders for their definitions.\"\n        },\n        \"latex-workshop.intellisense.includegraphics.preview.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable preview for `\\\\includegraphics` completion.\"\n        },\n        \"latex-workshop.message.badbox.show\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"both\",\n            \"overfull\",\n            \"underfull\",\n            \"none\"\n          ],\n          \"default\": \"both\",\n          \"markdownDescription\": \"Show badbox information in the problems panel.\"\n        },\n        \"latex-workshop.message.biberlog.exclude\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"Exclude biber log messages matching the given regexp from the problems panel.\"\n        },\n        \"latex-workshop.message.bibtexlog.exclude\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"Exclude bibtex log messages matching the given regexp from the problems panel.\"\n        },\n        \"latex-workshop.message.latexlog.exclude\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"Exclude latex log messages matching the given regexp from the problems panel.\"\n        },\n        \"latex-workshop.message.information.show\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Display information messages in popup notifications.\"\n        },\n        \"latex-workshop.message.warning.show\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Display warning messages in popup notifications.\"\n        },\n        \"latex-workshop.message.error.show\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Display error messages in popup notifications.\"\n        },\n        \"latex-workshop.message.log.show\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Display LaTeX Workshop debug log in output panel. This property defines whether LaTeX Workshop will output its debug log to the log panel.\"\n        },\n        \"latex-workshop.message.convertFilenameEncoding\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Convert the encoding of filenames if necessary when displaying them in the problems panel.\"\n        },\n        \"latex-workshop.latexindent.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"latexindent\",\n          \"markdownDeprecationMessage\": \"This config is renamed to `#latex-workshop.formatting.latexindent.path#`.\"\n        },\n        \"latex-workshop.latexindent.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"-c\",\n            \"%DIR%/\",\n            \"%TMPFILE%\",\n            \"-y=defaultIndent: '%INDENT%'\"\n          ],\n          \"markdownDeprecationMessage\": \"This config is renamed to `#latex-workshop.formatting.latexindent.args#`.\"\n        },\n        \"latex-workshop.formatting.latex\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"none\",\n            \"latexindent\",\n            \"tex-fmt\"\n          ],\n          \"enumDescriptions\": [\n            \"Do not use any formatter.\",\n            \"Use `latexindent` to format the LaTeX document.\",\n            \"Use `tex-fmt` to format the LaTeX document.\"\n          ],\n          \"default\": \"none\",\n          \"markdownDescription\": \"Define the program to format the LaTeX document.\"\n        },\n        \"latex-workshop.formatting.latexindent.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"latexindent\",\n          \"markdownDescription\": \"Define the location of the latexindent executable file.\"\n        },\n        \"latex-workshop.formatting.latexindent.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"-c\",\n            \"%DIR%/\",\n            \"%TMPFILE%\",\n            \"-y=defaultIndent: '%INDENT%'\"\n          ],\n          \"markdownDescription\": \"Define the command line arguments for latexindent. In the addition to the placeholders defined at https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders, the following placeholders are accepted\\n- %TMPFILE%: The full path of the raw TeX file to be formatted. At this moment you need to use it as an input file of `latexindent`.\\n- %INDENT%: The indent character of the file, typically `\\t`, `' '`, `' '`.\\n\\nNote that the option `-c` requires a trailing slash.\"\n        },\n        \"latex-workshop.formatting.tex-fmt.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"tex-fmt\",\n          \"markdownDescription\": \"Define the location of the tex-fmt executable file.\"\n        },\n        \"latex-workshop.formatting.tex-fmt.doNotWrap\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDeprecationMessage\": \"This configuration has been extended to `#latex-workshop.formatting.tex-fmt.args#` and has no effect.\"\n        },\n        \"latex-workshop.formatting.tex-fmt.args\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"--nowrap\"\n          ],\n          \"markdownDescription\": \"Define the command line arguments for tex-fmt. Refer to https://github.com/WGUNDERWOOD/tex-fmt?tab=readme-ov-file#command-line-options for more information about the arguments. Note that `--stdin` is added by the extension, so no need to add it again. For key-value arguments, separate the key and value in two strings, e.g., [\\\"--tabsize\\\", \\\"4\\\"].\"\n        },\n        \"latex-workshop.format.fixQuotes.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable automatic conversion of `\\\"...\\\"` to ` ``...''` during formatting.\"\n        },\n        \"latex-workshop.format.fixMath.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable automatic conversion of `$...$` to `\\\\(...\\\\)` and `$$...$$` to `\\\\[...\\\\]` during formatting.\"\n        },\n        \"latex-workshop.docker.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable docker-based LaTeX distribution support. Do not set this item to `true` unless you are aware of what it means. This extension will use the images defined in `#latex-workshop.docker.image.latex#` to execute `latexmk`, `synctex`, `texcount`, and `latexindent`.\"\n        },\n        \"latex-workshop.docker.image.latex\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"Define the image for `latexmk`, `synctex`, `texcount`, and `latexindent`.\"\n        },\n        \"latex-workshop.docker.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"docker\",\n          \"markdownDescription\": \"Docker (or Podman) executable name or path.\"\n        },\n        \"latex-workshop.showContextMenu\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Enable the LaTeX contextual menu. This menu is deactivated as it is available through the new LaTeX badge. Just set this variable to `true` to recover the menu.\"\n        },\n        \"latex-workshop.bind.enter.key\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable the automatic insertion of `\\\\item` on a newline when pressing `Enter` in a line starting in `\\\\item`.\"\n        },\n        \"latex-workshop.bind.altKeymap.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Use alternative keymap combo, i.e., `ctrl`+`l` `alt`+`key`, to replace the default `ctrl`/`cmd`+`alt` shortcuts.\"\n        },\n        \"latex-workshop.hover.ref.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable Hover on References.\"\n        },\n        \"latex-workshop.hover.ref.number.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Show number assigned to the reference in the previous compilation.\"\n        },\n        \"latex-workshop.hover.citation.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable Hover on Citations.\"\n        },\n        \"latex-workshop.hover.command.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable Hover on Commands to show the possible signatures.\"\n        },\n        \"latex-workshop.hover.preview.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable Hover Preview.\"\n        },\n        \"latex-workshop.hover.preview.maxLines\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 20,\n          \"markdownDescription\": \"Maximum number of lines between the beginning of the math environment and the cursor position to allow preview.\"\n        },\n        \"latex-workshop.hover.preview.scale\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 1,\n          \"markdownDescription\": \"Scaling of Hover Preview.\"\n        },\n        \"latex-workshop.hover.preview.newcommand.parseTeXFile.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable newcommands defined in the current TeX file to be included in Hover Preview.\"\n        },\n        \"latex-workshop.hover.preview.newcommand.newcommandFile\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"markdownDescription\": \"Set the path of a file containing newcommands to be used in Hover Preview. If the path is relative, it is joined with the root dir.\"\n        },\n        \"latex-workshop.hover.preview.cursor.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Render cursor in Hover Preview at the current position.\"\n        },\n        \"latex-workshop.hover.preview.cursor.symbol\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"\\\\!|\\\\!\",\n          \"markdownDescription\": \"Cursor symbol in Hover Preview.\"\n        },\n        \"latex-workshop.hover.preview.cursor.color\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"auto\",\n          \"enum\": [\n            \"auto\",\n            \"black\",\n            \"blue\",\n            \"brown\",\n            \"cyan\",\n            \"darkgray\",\n            \"gray\",\n            \"green\",\n            \"lightgray\",\n            \"lime\",\n            \"magenta\",\n            \"olive\",\n            \"orange\",\n            \"pink\",\n            \"purple\",\n            \"red\",\n            \"teal\",\n            \"violet\",\n            \"white\",\n            \"yellow\"\n          ],\n          \"markdownDescription\": \"The color of cursor in Hover Preview.\"\n        },\n        \"latex-workshop.hover.preview.mathjax.extensions\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"default\": [],\n          \"markdownDescription\": \"MathJax extensions to load for Hover Preview. See [the list](https://docs.mathjax.org/en/latest/input/tex/extensions/index.html). Note that the following extensions are loaded by default: `ams`, `color`, `newcommand`, `noerrors`, and `noundefined`. They cannot be disabled.\",\n          \"items\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"amscd\",\n              \"bbox\",\n              \"boldsymbol\",\n              \"braket\",\n              \"bussproofs\",\n              \"cancel\",\n              \"cases\",\n              \"centernot\",\n              \"colortbl\",\n              \"empheq\",\n              \"enclose\",\n              \"extpfeil\",\n              \"gensymb\",\n              \"html\",\n              \"mathtools\",\n              \"mhchem\",\n              \"physics\",\n              \"textcomp\",\n              \"textmacros\",\n              \"unicode\",\n              \"upgreek\",\n              \"verb\"\n            ]\n          },\n          \"uniqueItems\": true\n        },\n        \"latex-workshop.intellisense.optionalArgsEntries.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Some LaTeX commands can have several forms, each with different arguments. If set to True, the intellisense completion list will have one entry for each form of a given command. Default is true.\"\n        },\n        \"latex-workshop.intellisense.argumentHint.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Many snippets use text hints of the form `${\\\\d:some_tex}` for their argument. You may prefer to hide instead by setting this configuration to `false`.\"\n        },\n        \"latex-workshop.intellisense.citation.backend\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"bibtex\",\n            \"biblatex\"\n          ],\n          \"default\": \"bibtex\",\n          \"markdownDescription\": \"Backend to use for citation intellisense.\"\n        },\n        \"latex-workshop.intellisense.bibtexJSON.replace\": {\n          \"scope\": \"resource\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          },\n          \"default\": {},\n          \"markdownDescription\": \"Dictionary of `\\\"entry name\\\": [\\\"array\\\", \\\"of\\\", \\\"fields\\\"]` to replace the default fields used in `data/bibtex-entries.json`. See `data/bibtex-entries.json` for the list of fields for each entry. This variable is used when `#latex-workshop.intellisense.citation.backend#` is set to `bibtex`.\"\n        },\n        \"latex-workshop.intellisense.biblatexJSON.replace\": {\n          \"scope\": \"resource\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          },\n          \"default\": {},\n          \"markdownDescription\": \"Dictionary of `\\\"entry name\\\": [\\\"array\\\", \\\"of\\\", \\\"fields\\\"]` to replace the default fields used in `data/biblatex-entries.json`. See `data/biblatex-entries.json` for the list of fields for each entry. This variable is used when `#latex-workshop.intellisense.citation.backend#` is set to `biblatex`.\"\n        },\n        \"latex-workshop.texdoc.path\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"texdoc\",\n          \"markdownDescription\": \"Define the location of the `texdoc` executable. This command is used to show a package documentation.\"\n        },\n        \"latex-workshop.texdoc.args\": {\n          \"scope\": \"window\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"--view\"\n          ],\n          \"markdownDescription\": \"Texdoc arguments to see a package documentation. Arguments must be in separate strings in the array. The package name is automatically appended to the arguments.\"\n        },\n        \"latex-workshop.bibtex.maxFileSize\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 5,\n          \"markdownDescription\": \"Defines the maximum bibtex file size for the extension to parse in MB.\"\n        },\n        \"latex-workshop.bibtex-format.tab\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"default\": \"2 spaces\",\n          \"markdownDescription\": \"Indentation for each field. The string can be `\\\"tab\\\"` or of the form `\\\"X spaces\\\"` or simply `\\\"X\\\"` where `X` is a number.\"\n        },\n        \"latex-workshop.bibtex-format.surround\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"Curly braces\",\n            \"Quotation marks\"\n          ],\n          \"default\": \"Curly braces\",\n          \"description\": \"Surround each field value with either {Curly braces} or \\\"Quotation marks\\\".\"\n        },\n        \"latex-workshop.bibtex-format.case.field\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"UPPERCASE\",\n            \"lowercase\"\n          ],\n          \"default\": \"lowercase\",\n          \"description\": \"Determines if field names should be formatted like 'AUTHOR' or 'author'.\"\n        },\n        \"latex-workshop.bibtex-format.case.type\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"UPPERCASE\",\n            \"lowercase\"\n          ],\n          \"default\": \"lowercase\",\n          \"description\": \"Determines if entry types should be formatted like 'ARTICLE' or 'article'.\"\n        },\n        \"latex-workshop.bibtex-format.trailingComma\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"description\": \"Keep the trailing comma of the last field item.\"\n        },\n        \"latex-workshop.bibtex-format.sortby\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"markdownDescription\": \"An array of strings to sort by. Either a bibtex field name (title, author, year, etc.), or `\\\"year-desc\\\"` to sort by year in descending order, or `\\\"key\\\"` for the entry key, or `\\\"type\\\"` for the entry type (article, book, misc, etc.). E.g. `[\\\"author\\\", \\\"year-desc\\\", \\\"title\\\"]`.\",\n          \"default\": [\n            \"key\"\n          ]\n        },\n        \"latex-workshop.bibtex-format.handleDuplicates\": {\n          \"scope\": \"resource\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"Ignore Duplicates\",\n            \"Highlight Duplicates\",\n            \"Comment Duplicates\"\n          ],\n          \"default\": \"Highlight Duplicates\",\n          \"markdownDescription\": \"How to handle duplicates found by the bibtex sorting functions. Duplicates are decided according to the `bibtex-format.sortby` config.\"\n        },\n        \"latex-workshop.bibtex-format.sort.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Sort content when calling VSCode format on a .bib file.\"\n        },\n        \"latex-workshop.bibtex-format.align-equal.enabled\": {\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Align equal signs when calling VSCode format on a .bib file.\"\n        },\n        \"latex-workshop.bibtex-entries.first\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [\n            \"string\",\n            \"xdata\"\n          ],\n          \"markdownDescription\": \"When `#latex-workshop.bibtex-fields.sort.enabled#` is true, these fields are put at the top, in the order defined by the array.\"\n        },\n        \"latex-workshop.bibtex-fields.sort.enabled\": {\n          \"scope\": \"resource\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"Sort fields inside every entry. The sorting order is defined by `#latex-workshop.bibtex-fields.order#`. This variable only has effect when formatting bibtex aligns fields. It is not possible to sort entries without aligning them.\"\n        },\n        \"latex-workshop.bibtex-fields.order\": {\n          \"scope\": \"resource\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"default\": [],\n          \"markdownDescription\": \"When `#latex-workshop.bibtex-fields.sort.enabled#` is true, sort fields according the order defined here and then alphabetically for non listed fields.\"\n        },\n        \"latex-workshop.mathpreviewpanel.cursor.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"markdownDescription\": \"[Experimental] Render a cursor on the math preview panel. **This feature is experimental. If you report an issue to us on this feature, we will not fix it. We will not accept any pull requests.**\"\n        },\n        \"latex-workshop.mathpreviewpanel.editorGroup\": {\n          \"scope\": \"window\",\n          \"type\": \"string\",\n          \"default\": \"below\",\n          \"enum\": [\n            \"current\",\n            \"left\",\n            \"right\",\n            \"above\",\n            \"below\"\n          ],\n          \"markdownDescription\": \"The editor group in which to open the math preview panel.\",\n          \"enumDescriptions\": [\n            \"Use the current editor group\",\n            \"Put the math preview panel in a new group on the left of the current one\",\n            \"Put the math preview panel in a new group on the right of the current one\",\n            \"Put the math preview panel in a new group above the current one\",\n            \"Put the math preview panel in a new group below the current one\"\n          ]\n        },\n        \"latex-workshop.selection.smart.latex.enabled\": {\n          \"scope\": \"window\",\n          \"type\": \"boolean\",\n          \"default\": true,\n          \"markdownDescription\": \"Enable AST based smart selection. Command ids are `editor.action.smartSelect.expand` and `editor.action.smartSelect.shrink`.\"\n        },\n        \"latex-workshop.codespaces.portforwarding.openDelay\": {\n          \"scope\": \"window\",\n          \"type\": \"number\",\n          \"default\": 20000,\n          \"markdownDescription\": \"Delay to wait for GitHub Codespaces Authentication of port forwarding to be resolved, in milliseconds.\"\n        }\n      }\n    },\n    \"menus\": {\n      \"editor/context\": [\n        {\n          \"when\": \"config.latex-workshop.showContextMenu && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !virtualWorkspace\",\n          \"command\": \"latex-workshop.build\",\n          \"group\": \"navigation@100\"\n        },\n        {\n          \"when\": \"config.latex-workshop.showContextMenu && editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !virtualWorkspace\",\n          \"command\": \"latex-workshop.synctex\",\n          \"group\": \"navigation@101\"\n        }\n      ],\n      \"editor/title\": [\n        {\n          \"when\": \"editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/\",\n          \"command\": \"latex-workshop.view\",\n          \"group\": \"navigation@2\"\n        },\n        {\n          \"when\": \"editorLangId =~ /^latex$|^latex-expl3$|^doctex$|^rsweave$|^jlweave$|^pweave$/ && !virtualWorkspace\",\n          \"command\": \"latex-workshop.build\",\n          \"group\": \"navigation@1\"\n        }\n      ]\n    },\n    \"viewsContainers\": {\n      \"activitybar\": [\n        {\n          \"id\": \"latex-workshop-activitybar\",\n          \"title\": \"LaTeX\",\n          \"icon\": \"./icons/activity-bar.svg\"\n        }\n      ]\n    },\n    \"views\": {\n      \"latex-workshop-activitybar\": [\n        {\n          \"id\": \"latex-workshop-commands\",\n          \"name\": \"%activity.commands%\",\n          \"when\": \"latex-workshop:enabled\"\n        },\n        {\n          \"id\": \"latex-workshop-structure\",\n          \"name\": \"%activity.structure%\",\n          \"when\": \"latex-workshop:enabled\"\n        },\n        {\n          \"id\": \"latex-workshop-math-symbols\",\n          \"name\": \"%activity.mathsymbols%\",\n          \"when\": \"latex-workshop:enabled\",\n          \"type\": \"webview\"\n        }\n      ]\n    },\n    \"customEditors\": [\n      {\n        \"viewType\": \"latex-workshop-pdf-hook\",\n        \"displayName\": \"LaTeX Workshop Internal PDF Viewer\",\n        \"selector\": [\n          {\n            \"filenamePattern\": \"*.pdf\"\n          },\n          {\n            \"filenamePattern\": \"*.PDF\"\n          }\n        ],\n        \"priority\": \"default\"\n      }\n    ]\n  },\n  \"scripts\": {\n    \"clean\": \"rimraf out/ .eslintcache\",\n    \"compile\": \"tsc -p tsconfig.json && tsc -p viewer/tsconfig.json\",\n    \"coverage\": \"c8 --check-coverage npm run test --src out/src/\",\n    \"lint\": \"eslint --cache .\",\n    \"lint:fix\": \"eslint --fix --cache .\",\n    \"release\": \"npm run clean && npm run lint && npm run compile && vsce package\",\n    \"test\": \"node ./out/test/runTest.js\",\n    \"watch-src\": \"tsc -watch -p tsconfig.json\",\n    \"watch-viewer\": \"tsc -watch -p viewer/tsconfig.json\",\n    \"update-grammar\": \"node ./dev/update-grammar.mjs\"\n  },\n  \"dependencies\": {\n    \"cross-spawn\": \"^7.0.6\",\n    \"glob\": \"^11.1.0\",\n    \"iconv-lite\": \"^0.6.3\",\n    \"latex-utensils\": \"^6.2.0\",\n    \"mathjax-full\": \"^3.2.2\",\n    \"micromatch\": \"^4.0.8\",\n    \"pdfjs-dist\": \"5.4.394\",\n    \"tmp\": \"^0.2.4\",\n    \"vsls\": \"^1.0.4753\",\n    \"workerpool\": \"^9.2.0\",\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@stylistic/eslint-plugin\": \"^2.12.1\",\n    \"@types/cross-spawn\": \"^6.0.6\",\n    \"@types/glob\": \"^8.1.0\",\n    \"@types/micromatch\": \"^4.0.9\",\n    \"@types/mocha\": \"^10.0.10\",\n    \"@types/node\": \"^20.17.11\",\n    \"@types/node-fetch\": \"^2.6.12\",\n    \"@types/sinon\": \"^17.0.3\",\n    \"@types/tmp\": \"^0.2.6\",\n    \"@types/vscode\": \"^1.96.0\",\n    \"@types/ws\": \"^8.5.13\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.19.0\",\n    \"@typescript-eslint/parser\": \"^8.19.0\",\n    \"@unified-latex/unified-latex-types\": \"1.8.0\",\n    \"@unified-latex/unified-latex-util-arguments\": \"1.8.1\",\n    \"@unified-latex/unified-latex-util-parse\": \"1.8.1\",\n    \"@unified-latex/unified-latex-util-to-string\": \"1.8.1\",\n    \"@vscode/test-electron\": \"^2.4.1\",\n    \"@vscode/vsce\": \"^3.7.1\",\n    \"c8\": \"^10.1.3\",\n    \"esbuild\": \"^0.25.0\",\n    \"eslint\": \"^9.17.0\",\n    \"mocha\": \"^11.0.1\",\n    \"node-fetch\": \"^2.7.0\",\n    \"rimraf\": \"^6.0.1\",\n    \"sinon\": \"^19.0.2\",\n    \"textmate-bailout\": \"^1.1.0\",\n    \"typescript\": \"^5.7.2\",\n    \"vscode-extend-language\": \"0.3.0\"\n  }\n}\n"
  },
  {
    "path": "package.nls.bg.json",
    "content": "{\n  \"command.hostPort\": \"Споделяне (на хоста) / Придобиване (на госта) на порт за споделяне на живо на хоста\",\n  \"command.navigate-envpair\": \"Навигирай до съвпадение на \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Избери името на текущото среда\",\n  \"command.select-envcontent\": \"Избери съдържанието на текущото среда\",\n  \"command.select-env\": \"Избери текущата среда\",\n  \"command.multicursor-envname\": \"Добави мултикурсор към името на текущото среда\",\n  \"command.wrap-env\": \"Завийте избора с \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Завийте избора с LaTeX команда\",\n  \"command.close-env\": \"Затвори текущата среда\",\n  \"command.toggle-equation-envname\": \"Превключи между \\\\[...\\\\] и \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Покажи изходната папка в ОС\",\n  \"command.saveWithoutBuilding\": \"Запази без компилация\",\n  \"command.build\": \"Компилирай LaTeX проекта\",\n  \"command.recipes\": \"Компилирай с рецепта\",\n  \"command.view\": \"Прегледай LaTeX PDF файл\",\n  \"command.tab\": \"Прегледай LaTeX PDF файл във VSCode таб\",\n  \"command.viewInBrowser\": \"Прегледай LaTeX PDF файл в уеб браузър\",\n  \"command.viewExternal\": \"Прегледай LaTeX PDF файл във външен прегледач\",\n  \"command.refresh-viewer\": \"Опресни всички LaTeX PDF прегледачи\",\n  \"command.kill\": \"Затвори процеса на LaTeX компилатора\",\n  \"command.synctex\": \"Синхронизирайте от курсора с SyncTeX\",\n  \"command.clean\": \"Почистете вспомогателните файлове\",\n  \"command.citation\": \"Отвори браузър за цитати\",\n  \"command.addtexroot\": \"Вмъкнете магически коментар !TeX root\",\n  \"command.wordcount\": \"Пребройте думите в LaTeX документа\",\n  \"command.changeHostName\": \"Промяна на името на сървърния хост за слушане\",\n  \"command.resetHostName\": \"Нулиране на името на сървърния хост за слушане до 127.0.0.1\",\n  \"command.compilerlog\": \"Преглед на логовете на LaTeX компилатора\",\n  \"command.log\": \"Преглед на съобщенията на LaTeX Workshop\",\n  \"command.actions\": \"Действия в LaTeX\",\n  \"command-dev.parselog\": \"Анализирайте текущия документ като LaTeX логове\",\n  \"command-dev.parsetex\": \"Анализирайте текущия файл като LaTeX AST\",\n  \"command-dev.parsebib\": \"Анализирайте текущия файл като BibTeX AST\",\n  \"command-dev.striptext\": \"Изтрийте текста и коментарите от LaTeX.\",\n  \"command.texdoc\": \"Покажете документацията на пакета\",\n  \"command.texdocUsepackages\": \"Покажете документацията на използваните фактически пакети\",\n  \"command.promote-sectioning\": \"Повишете всички използвани нива на разделите в избора\",\n  \"command.demote-sectioning\": \"Понижаване на всички използвани нива на разделите в избора\",\n  \"command.select-section\": \"Изберете текущия раздел\",\n  \"command.bibsort\": \"Сортирайте BibTeX файл\",\n  \"command.bibalign\": \"Подравняване на BibTeX файл\",\n  \"command.bibalignsort\": \"Сортиране и подравняване на BibTeX файл\",\n  \"command.checkcitations\": \"Проверете за неползвани цитати с \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Отваряне на панел за математическо прегледане\",\n  \"command.closeMathPreviewPanel\": \"Затваряне на панела за математическо прегледане\",\n  \"command.toggleMathPreviewPanel\": \"Превключване на панела за математическо прегледане\",\n  \"activity.commands\": \"Команди\",\n  \"activity.structure\": \"Структура\",\n  \"activity.mathsymbols\": \"Математически символи\",\n  \"activity.recipe\": \"Рецепта\",\n  \"activity.view\": \"Преглед на LaTeX PDF\",\n  \"activity.viewintab\": \"Преглед във VSCode таб\",\n  \"activity.viewinweb\": \"Преглед в уеб браузър\",\n  \"activity.viewinexternal\": \"Преглед във външен прегледач\",\n  \"activity.log\": \"Преглед на съобщенията\",\n  \"activity.navigate\": \"Навигация, избор и редактиране\",\n  \"activity.misc\": \"Разни\",\n  \"activity.bibtex\": \"Действия с BibTeX\",\n  \"mathsymbols.search\": \"Търсене\"\n}\n"
  },
  {
    "path": "package.nls.cs.json",
    "content": "{\n  \"command.hostPort\": \"Sdílet (na hostiteli) / Získat (na hostu) port pro Live Share hostitele\",\n  \"command.navigate-envpair\": \"Přejít k odpovídajícímu \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Vybrat název aktuálního prostředí\",\n  \"command.select-envcontent\": \"Vybrat obsah aktuálního prostředí\",\n  \"command.select-env\": \"Vybrat aktuální prostředí\",\n  \"command.multicursor-envname\": \"Přidat kurzor k názvu aktuálního prostředí\",\n  \"command.wrap-env\": \"Obklopit výběr \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Obklopit výběr LaTeX příkazem\",\n  \"command.close-env\": \"Zavřít aktuální prostředí\",\n  \"command.toggle-equation-envname\": \"Přepnout mezi \\\\[...\\\\] a \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Zobrazit výstupní složku v OS\",\n  \"command.saveWithoutBuilding\": \"Uložit bez sestavení\",\n  \"command.build\": \"Sestavit LaTeX projekt\",\n  \"command.recipes\": \"Sestavit s receptem\",\n  \"command.view\": \"Zobrazit LaTeX PDF soubor\",\n  \"command.tab\": \"Zobrazit LaTeX PDF soubor v záložce VSCode\",\n  \"command.viewInBrowser\": \"Zobrazit LaTeX PDF soubor ve webovém prohlížeči\",\n  \"command.viewExternal\": \"Zobrazit LaTeX PDF soubor v externím prohlížeči\",\n  \"command.refresh-viewer\": \"Obnovit všechny LaTeX PDF prohlížeče\",\n  \"command.kill\": \"Ukončit proces kompilátoru LaTeX\",\n  \"command.synctex\": \"SyncTeX z kurzoru\",\n  \"command.clean\": \"Vyčistit pomocné soubory\",\n  \"command.citation\": \"Otevřít prohlížeč citací\",\n  \"command.addtexroot\": \"Vložit magický komentář !TeX root\",\n  \"command.wordcount\": \"Počítat slova v LaTeX dokumentu\",\n  \"command.changeHostName\": \"Změnit název hostitele naslouchání serveru\",\n  \"command.resetHostName\": \"Obnovit název hostitele naslouchání serveru na 127.0.0.1\",\n  \"command.compilerlog\": \"Zobrazit protokoly kompilátoru LaTeX\",\n  \"command.log\": \"Zobrazit zprávy LaTeX Workshop\",\n  \"command.actions\": \"LaTeX akce\",\n  \"command-dev.parselog\": \"Analyzovat aktuální dokument jako LaTeX protokoly\",\n  \"command-dev.parsetex\": \"Analyzovat aktuální soubor jako LaTeX AST\",\n  \"command-dev.parsebib\": \"Analyzovat aktuální soubor jako BibTeX AST\",\n  \"command-dev.striptext\": \"Odstranit text a komentáře z LaTeXu.\",\n  \"command.texdoc\": \"Zobrazit dokumentaci balíčku\",\n  \"command.texdocUsepackages\": \"Zobrazit dokumentaci balíčků skutečně použitých\",\n  \"command.promote-sectioning\": \"Povýšit všechny úrovně sekcí použité ve výběru\",\n  \"command.demote-sectioning\": \"Snížit všechny úrovně sekcí použité ve výběru\",\n  \"command.select-section\": \"Vybrat aktuální sekci\",\n  \"command.bibsort\": \"Seřadit soubor BibTeX\",\n  \"command.bibalign\": \"Zarovnat soubor BibTeX\",\n  \"command.bibalignsort\": \"Seřadit a zarovnat soubor BibTeX\",\n  \"command.checkcitations\": \"Hledat nepoužité citace s \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Otevřít panel s náhledem matematiky\",\n  \"command.closeMathPreviewPanel\": \"Zavřít panel s náhledem matematiky\",\n  \"command.toggleMathPreviewPanel\": \"Přepnout panel s náhledem matematiky\",\n  \"activity.commands\": \"Příkazy\",\n  \"activity.structure\": \"Struktura\",\n  \"activity.mathsymbols\": \"Matematické symboly\",\n  \"activity.recipe\": \"Recept\",\n  \"activity.view\": \"Zobrazit LaTeX PDF\",\n  \"activity.viewintab\": \"Zobrazit v záložce VSCode\",\n  \"activity.viewinweb\": \"Zobrazit na webové stránce\",\n  \"activity.viewinexternal\": \"Zobrazit v externím prohlížeči\",\n  \"activity.log\": \"Zobrazit zprávy o logu\",\n  \"activity.navigate\": \"Navigace, výběr a úpravy\",\n  \"activity.misc\": \"Různé\",\n  \"activity.bibtex\": \"Akce BibTeXu\",\n  \"mathsymbols.search\": \"Hledání\"\n}\n"
  },
  {
    "path": "package.nls.de.json",
    "content": "{\n  \"command.hostPort\": \"Teilen (auf Host) / Erwerben (auf Gast) Live Share Host-Port\",\n  \"command.navigate-envpair\": \"Zu passendem \\\\begin{}/\\\\end{} navigieren\",\n  \"command.select-envname\": \"Aktuellen Umgebungsnamen auswählen\",\n  \"command.select-envcontent\": \"Aktuellen Umgebungsinhalt auswählen\",\n  \"command.select-env\": \"Aktuelle Umgebung auswählen\",\n  \"command.multicursor-envname\": \"Mehrere Cursor zum aktuellen Umgebungsnamen hinzufügen\",\n  \"command.wrap-env\": \"Auswahl mit \\\\begin{}...\\\\end{} umgeben\",\n  \"command.surround\": \"Auswahl mit LaTeX-Befehl umgeben\",\n  \"command.close-env\": \"Aktuelle Umgebung schließen\",\n  \"command.toggle-equation-envname\": \"Zwischen \\\\[...\\\\] und \\\\begin{}...\\\\end{} umschalten\",\n  \"command.revealoutput\": \"Ausgabeordner im Betriebssystem anzeigen\",\n  \"command.saveWithoutBuilding\": \"Speichern ohne zu kompilieren\",\n  \"command.build\": \"LaTeX-Projekt kompilieren\",\n  \"command.recipes\": \"Mit Rezept kompilieren\",\n  \"command.view\": \"LaTeX PDF-Datei anzeigen\",\n  \"command.tab\": \"LaTeX PDF-Datei in VSCode-Registerkarte anzeigen\",\n  \"command.viewInBrowser\": \"LaTeX PDF-Datei im Webbrowser anzeigen\",\n  \"command.viewExternal\": \"LaTeX PDF-Datei im externen Betrachter anzeigen\",\n  \"command.refresh-viewer\": \"Alle LaTeX PDF-Betrachter aktualisieren\",\n  \"command.kill\": \"LaTeX-Kompilierungsprozess beenden\",\n  \"command.synctex\": \"SyncTeX vom Cursor aus synchronisieren\",\n  \"command.clean\": \"Hilfsdateien aufräumen\",\n  \"command.citation\": \"Zitationsbrowser öffnen\",\n  \"command.addtexroot\": \"!TeX root-Magie-Kommentar einfügen\",\n  \"command.wordcount\": \"Wörter im LaTeX-Dokument zählen\",\n  \"command.changeHostName\": \"Serverhörnamen ändern\",\n  \"command.resetHostName\": \"Serverhörnamen auf 127.0.0.1 zurücksetzen\",\n  \"command.compilerlog\": \"LaTeX-Kompilierungsprotokolle anzeigen\",\n  \"command.log\": \"LaTeX Workshop-Nachrichten anzeigen\",\n  \"command.actions\": \"LaTeX-Aktionen\",\n  \"command-dev.parselog\": \"Aktuelles Dokument als LaTeX-Protokolle analysieren\",\n  \"command-dev.parsetex\": \"Aktuelle Datei als LaTeX-AST analysieren\",\n  \"command-dev.parsebib\": \"Aktuelle Datei als BibTeX-AST analysieren\",\n  \"command-dev.striptext\": \"Text und Kommentare aus LaTeX entfernen.\",\n  \"command.texdoc\": \"Paketdokumentation anzeigen\",\n  \"command.texdocUsepackages\": \"Tatsächlich verwendete Paketdokumentation anzeigen\",\n  \"command.promote-sectioning\": \"Alle in der Auswahl verwendeten Abschnittsebenen erhöhen\",\n  \"command.demote-sectioning\": \"Alle in der Auswahl verwendeten Abschnittsebenen verringern\",\n  \"command.select-section\": \"Aktuellen Abschnitt auswählen\",\n  \"command.bibsort\": \"BibTeX-Datei sortieren\",\n  \"command.bibalign\": \"BibTeX-Datei ausrichten\",\n  \"command.bibalignsort\": \"BibTeX-Datei sortieren und ausrichten\",\n  \"command.checkcitations\": \"Mit \\\"checkcites\\\" nach ungenutzten Zitaten suchen\",\n  \"command.openMathPreviewPanel\": \"Mathematisches Vorschaufenster öffnen\",\n  \"command.closeMathPreviewPanel\": \"Mathematisches Vorschaufenster schließen\",\n  \"command.toggleMathPreviewPanel\": \"Mathematisches Vorschaufenster umschalten\",\n  \"activity.commands\": \"Befehle\",\n  \"activity.structure\": \"Struktur\",\n  \"activity.mathsymbols\": \"Mathematische Symbole\",\n  \"activity.recipe\": \"Rezept\",\n  \"activity.view\": \"LaTeX PDF anzeigen\",\n  \"activity.viewintab\": \"In VSCode-Registerkarte anzeigen\",\n  \"activity.viewinweb\": \"Im Webbrowser anzeigen\",\n  \"activity.viewinexternal\": \"Im externen Betrachter anzeigen\",\n  \"activity.log\": \"Protokollmeldungen anzeigen\",\n  \"activity.navigate\": \"Navigieren, auswählen und bearbeiten\",\n  \"activity.misc\": \"Verschiedenes\",\n  \"activity.bibtex\": \"BibTeX-Aktionen\",\n  \"snippetview.symbol\": \"Symbole\",\n  \"mathsymbols.search\": \"Suche\"\n}\n"
  },
  {
    "path": "package.nls.es.json",
    "content": "{\n  \"command.hostPort\": \"Compartir (en anfitrión) / Adquirir (en invitado) puerto de anfitrión de Live Share\",\n  \"command.navigate-envpair\": \"Navegar al \\\\begin{}/\\\\end{} correspondiente\",\n  \"command.select-envname\": \"Seleccionar el nombre del entorno actual\",\n  \"command.select-envcontent\": \"Seleccionar el contenido del entorno actual\",\n  \"command.select-env\": \"Seleccionar el entorno actual\",\n  \"command.multicursor-envname\": \"Agregar un multicusor al nombre del entorno actual\",\n  \"command.wrap-env\": \"Rodear la selección con \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Rodear la selección con comando LaTeX\",\n  \"command.close-env\": \"Cerrar el entorno actual\",\n  \"command.toggle-equation-envname\": \"Alternar entre \\\\[...\\\\] y \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Mostrar la carpeta de salida en el sistema operativo\",\n  \"command.saveWithoutBuilding\": \"Guardar sin compilar\",\n  \"command.build\": \"Compilar el proyecto LaTeX\",\n  \"command.recipes\": \"Compilar con receta\",\n  \"command.view\": \"Ver archivo PDF de LaTeX\",\n  \"command.tab\": \"Ver archivo PDF de LaTeX en pestaña de VSCode\",\n  \"command.viewInBrowser\": \"Ver archivo PDF de LaTeX en navegador web\",\n  \"command.viewExternal\": \"Ver archivo PDF de LaTeX en visor externo\",\n  \"command.refresh-viewer\": \"Actualizar todos los visores PDF de LaTeX\",\n  \"command.kill\": \"Finalizar el proceso del compilador LaTeX\",\n  \"command.synctex\": \"Sincronizar SyncTeX desde el cursor\",\n  \"command.clean\": \"Limpiar archivos auxiliares\",\n  \"command.citation\": \"Abrir navegador de citas\",\n  \"command.addtexroot\": \"Insertar comentario mágico !TeX root\",\n  \"command.wordcount\": \"Contar palabras en el documento LaTeX\",\n  \"command.changeHostName\": \"Cambiar el nombre de host del servidor de escucha\",\n  \"command.resetHostName\": \"Restablecer el nombre de host del servidor de escucha a 127.0.0.1\",\n  \"command.compilerlog\": \"Ver registros del compilador LaTeX\",\n  \"command.log\": \"Ver mensajes de LaTeX Workshop\",\n  \"command.actions\": \"Acciones de LaTeX\",\n  \"command-dev.parselog\": \"Analizar el documento actual como registros LaTeX\",\n  \"command-dev.parsetex\": \"Analizar el archivo actual como AST LaTeX\",\n  \"command-dev.parsebib\": \"Analizar el archivo actual como AST BibTeX\",\n  \"command-dev.striptext\": \"Eliminar texto y comentarios de LaTeX.\",\n  \"command.texdoc\": \"Mostrar documentación del paquete\",\n  \"command.texdocUsepackages\": \"Mostrar documentación del paquete utilizado realmente\",\n  \"command.promote-sectioning\": \"Promover todos los niveles de sección utilizados en la selección\",\n  \"command.demote-sectioning\": \"Degradar todos los niveles de sección utilizados en la selección\",\n  \"command.select-section\": \"Seleccionar la sección actual\",\n  \"command.bibsort\": \"Ordenar archivo BibTeX\",\n  \"command.bibalign\": \"Alinear archivo BibTeX\",\n  \"command.bibalignsort\": \"Ordenar y alinear archivo BibTeX\",\n  \"command.checkcitations\": \"Buscar citas no utilizadas con \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Abrir panel de vista previa matemática\",\n  \"command.closeMathPreviewPanel\": \"Cerrar panel de vista previa matemática\",\n  \"command.toggleMathPreviewPanel\": \"Alternar panel de vista previa matemática\",\n  \"activity.commands\": \"Comandos\",\n  \"activity.structure\": \"Estructura\",\n  \"activity.mathsymbols\": \"Símbolos matemáticos\",\n  \"activity.recipe\": \"Receta\",\n  \"activity.view\": \"Ver PDF de LaTeX\",\n  \"activity.viewintab\": \"Ver en pestaña de VSCode\",\n  \"activity.viewinweb\": \"Ver en navegador web\",\n  \"activity.viewinexternal\": \"Ver en visor externo\",\n  \"activity.log\": \"Ver mensajes de registro\",\n  \"activity.navigate\": \"Navegar, seleccionar y editar\",\n  \"activity.misc\": \"Miscelánea\",\n  \"activity.bibtex\": \"Acciones BibTeX\",\n  \"mathsymbols.search\": \"Buscar\"\n}\n"
  },
  {
    "path": "package.nls.fr.json",
    "content": "{\n  \"command.hostPort\": \"Partager (sur l'hôte) / Acquérir (sur l'invité) le port de l'hôte Live Share\",\n  \"command.navigate-envpair\": \"Naviguer vers \\\\begin{}/\\\\end{} correspondant\",\n  \"command.select-envname\": \"Sélectionner le nom de l'environnement actuel\",\n  \"command.select-envcontent\": \"Sélectionner le contenu de l'environnement actuel\",\n  \"command.select-env\": \"Sélectionner l'environnement actuel\",\n  \"command.multicursor-envname\": \"Ajouter un curseur multiple au nom de l'environnement actuel\",\n  \"command.wrap-env\": \"Entourer la sélection avec \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Entourer la sélection avec une commande LaTeX\",\n  \"command.close-env\": \"Fermer l'environnement actuel\",\n  \"command.toggle-equation-envname\": \"Basculer entre \\\\[...\\\\] et \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Révéler le dossier de sortie dans le système d'exploitation\",\n  \"command.saveWithoutBuilding\": \"Enregistrer sans compiler\",\n  \"command.build\": \"Compiler le projet LaTeX\",\n  \"command.recipes\": \"Compiler avec une recette\",\n  \"command.view\": \"Voir le fichier PDF LaTeX\",\n  \"command.tab\": \"Voir le fichier PDF LaTeX dans l'onglet VSCode\",\n  \"command.viewInBrowser\": \"Voir le fichier PDF LaTeX dans le navigateur web\",\n  \"command.viewExternal\": \"Voir le fichier PDF LaTeX dans le visualiseur externe\",\n  \"command.refresh-viewer\": \"Actualiser tous les visualiseurs PDF LaTeX\",\n  \"command.kill\": \"Arrêter le processus de compilation LaTeX\",\n  \"command.synctex\": \"SyncTeX depuis le curseur\",\n  \"command.clean\": \"Nettoyer les fichiers auxiliaires\",\n  \"command.citation\": \"Ouvrir le navigateur de citations\",\n  \"command.addtexroot\": \"Insérer le commentaire magique !TeX root\",\n  \"command.wordcount\": \"Compter les mots dans le document LaTeX\",\n  \"command.changeHostName\": \"Changer le nom d'hôte d'écoute du serveur\",\n  \"command.resetHostName\": \"Réinitialiser le nom d'hôte d'écoute du serveur à 127.0.0.1\",\n  \"command.compilerlog\": \"Voir les journaux du compilateur LaTeX\",\n  \"command.log\": \"Voir les messages de LaTeX Workshop\",\n  \"command.actions\": \"Actions LaTeX\",\n  \"command-dev.parselog\": \"Analyser le document actuel comme des journaux LaTeX\",\n  \"command-dev.parsetex\": \"Analyser le fichier actuel comme un AST LaTeX\",\n  \"command-dev.parsebib\": \"Analyser le fichier actuel comme un AST BibTeX\",\n  \"command-dev.striptext\": \"Supprimer le texte et les commentaires de LaTeX.\",\n  \"command.texdoc\": \"Afficher la documentation du package\",\n  \"command.texdocUsepackages\": \"Afficher la documentation des packages réellement utilisés\",\n  \"command.promote-sectioning\": \"Promouvoir tous les niveaux de section utilisés dans la sélection\",\n  \"command.demote-sectioning\": \"Rétrograder tous les niveaux de section utilisés dans la sélection\",\n  \"command.select-section\": \"Sélectionner la section actuelle\",\n  \"command.bibsort\": \"Trier le fichier BibTeX\",\n  \"command.bibalign\": \"Aligner le fichier BibTeX\",\n  \"command.bibalignsort\": \"Trier et aligner le fichier BibTeX\",\n  \"command.checkcitations\": \"Rechercher les citations inutilisées avec \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Ouvrir le panneau d'aperçu mathématique\",\n  \"command.closeMathPreviewPanel\": \"Fermer le panneau d'aperçu mathématique\",\n  \"command.toggleMathPreviewPanel\": \"Basculer le panneau d'aperçu mathématique\",\n  \"activity.commands\": \"Commandes\",\n  \"activity.structure\": \"Structure\",\n  \"activity.mathsymbols\": \"Symboles mathématiques\",\n  \"activity.recipe\": \"Recette\",\n  \"activity.view\": \"Voir le PDF LaTeX\",\n  \"activity.viewintab\": \"Voir dans l'onglet VSCode\",\n  \"activity.viewinweb\": \"Voir dans le navigateur web\",\n  \"activity.viewinexternal\": \"Voir dans le visualiseur externe\",\n  \"activity.log\": \"Voir les messages de journal\",\n  \"activity.navigate\": \"Naviguer, sélectionner et éditer\",\n  \"activity.misc\": \"Divers\",\n  \"activity.bibtex\": \"Actions BibTeX\",\n  \"mathsymbols.search\": \"Recherche\"\n}\n"
  },
  {
    "path": "package.nls.hu.json",
    "content": "{\n  \"command.hostPort\": \"Megosztás (a gazdagépen) / Megszerzés (a vendégen) Live Share gazdagép port\",\n  \"command.navigate-envpair\": \"\\\\begin{}/\\\\end{} párok közötti navigáció\",\n  \"command.select-envname\": \"Jelenlegi környezet nevének kijelölése\",\n  \"command.select-envcontent\": \"Jelenlegi környezet tartalmának kijelölése\",\n  \"command.select-env\": \"Jelenlegi környezet kijelölése\",\n  \"command.multicursor-envname\": \"Több kurzor hozzáadása a jelenlegi környezet nevéhez\",\n  \"command.wrap-env\": \"Kijelölt szöveg körülvétele \\\\begin{}...\\\\end{}-vel\",\n  \"command.surround\": \"Kijelölt szöveg körülvétele LaTeX parancsokkal\",\n  \"command.close-env\": \"Jelenlegi környezet bezárása\",\n  \"command.toggle-equation-envname\": \"\\\\[...\\\\] és \\\\begin{}...\\\\end{} közötti váltás\",\n  \"command.revealoutput\": \"Kimeneti mappa megjelenítése a rendszerben\",\n  \"command.saveWithoutBuilding\": \"Mentés építés nélkül\",\n  \"command.build\": \"LaTeX projekt építése\",\n  \"command.recipes\": \"Recept alapján építés\",\n  \"command.view\": \"LaTeX PDF fájl megtekintése\",\n  \"command.tab\": \"LaTeX PDF fájl megtekintése VSCode lapban\",\n  \"command.viewInBrowser\": \"LaTeX PDF fájl megtekintése böngészőben\",\n  \"command.viewExternal\": \"LaTeX PDF fájl megtekintése külső nézőben\",\n  \"command.refresh-viewer\": \"Összes LaTeX PDF néző frissítése\",\n  \"command.kill\": \"LaTeX fordító folyamat leállítása\",\n  \"command.synctex\": \"SyncTeX használata kurzorral\",\n  \"command.clean\": \"Segédállományok törlése\",\n  \"command.citation\": \"Hivatkozás böngészése\",\n  \"command.addtexroot\": \"!TeX root mágikus kommentár beszúrása\",\n  \"command.wordcount\": \"Szavak számolása a LaTeX dokumentumban\",\n  \"command.changeHostName\": \"Szerver hallgatózó hosztnevének módosítása\",\n  \"command.resetHostName\": \"Szerver hallgatózó hosztnevének visszaállítása 127.0.0.1-re\",\n  \"command.compilerlog\": \"LaTeX fordító naplóinak megtekintése\",\n  \"command.log\": \"LaTeX Workshop üzenetek megtekintése\",\n  \"command.actions\": \"LaTeX műveletek\",\n  \"command-dev.parselog\": \"Aktuális dokumentum LaTeX naplóként való feldolgozása\",\n  \"command-dev.parsetex\": \"Aktuális fájl LaTeX AST-ként való feldolgozása\",\n  \"command-dev.parsebib\": \"Aktuális fájl BibTeX AST-ként való feldolgozása\",\n  \"command-dev.striptext\": \"Szöveg és megjegyzések eltávolítása LaTeX-ből.\",\n  \"command.texdoc\": \"Csomag dokumentáció megjelenítése\",\n  \"command.texdocUsepackages\": \"Ténylegesen használt csomag dokumentációjának megjelenítése\",\n  \"command.promote-sectioning\": \"Az összes szakaszszint előléptetése a kijelölt területen\",\n  \"command.demote-sectioning\": \"Az összes szakaszszint visszaléptetése a kijelölt területen\",\n  \"command.select-section\": \"Jelenlegi szakasz kijelölése\",\n  \"command.bibsort\": \"BibTeX fájl rendezése\",\n  \"command.bibalign\": \"BibTeX fájl igazítása\",\n  \"command.bibalignsort\": \"BibTeX fájl rendezése és igazítása\",\n  \"command.checkcitations\": \"Nem használt hivatkozások keresése a \\\"checkcites\\\" segítségével\",\n  \"command.openMathPreviewPanel\": \"Matematikai előnézeti panel megnyitása\",\n  \"command.closeMathPreviewPanel\": \"Matematikai előnézeti panel bezárása\",\n  \"command.toggleMathPreviewPanel\": \"Matematikai előnézeti panel váltása\",\n  \"activity.commands\": \"Parancsok\",\n  \"activity.structure\": \"Szerkezet\",\n  \"activity.mathsymbols\": \"Matematikai szimbólumok\",\n  \"activity.recipe\": \"Recept\",\n  \"activity.view\": \"LaTeX PDF megtekintése\",\n  \"activity.viewintab\": \"Megtekintés VSCode lapon\",\n  \"activity.viewinweb\": \"Megtekintés böngészőben\",\n  \"activity.viewinexternal\": \"Megtekintés külső nézőben\",\n  \"activity.log\": \"Napló üzenetek megtekintése\",\n  \"activity.navigate\": \"Navigálás, kijelölés és szerkesztés\",\n  \"activity.misc\": \"Egyéb\",\n  \"activity.bibtex\": \"BibTeX műveletek\",\n  \"mathsymbols.search\": \"Keresés\"\n}\n"
  },
  {
    "path": "package.nls.it.json",
    "content": "{\n  \"command.hostPort\": \"Condividi (su host) / Acquisisci (su guest) porta dell'host Live Share\",\n  \"command.navigate-envpair\": \"Vai alla coppia corrispondente \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Seleziona il nome dell'ambiente corrente\",\n  \"command.select-envcontent\": \"Seleziona il contenuto dell'ambiente corrente\",\n  \"command.select-env\": \"Seleziona l'ambiente corrente\",\n  \"command.multicursor-envname\": \"Aggiungi un cursore multiplo al nome dell'ambiente corrente\",\n  \"command.wrap-env\": \"Racchiudi la selezione con \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Racchiudi la selezione con il comando LaTeX\",\n  \"command.close-env\": \"Chiudi l'ambiente corrente\",\n  \"command.toggle-equation-envname\": \"Alterna tra \\\\[...\\\\] e \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Mostra la cartella di output nel sistema operativo\",\n  \"command.saveWithoutBuilding\": \"Salva senza compilare\",\n  \"command.build\": \"Compila il progetto LaTeX\",\n  \"command.recipes\": \"Compila con ricetta\",\n  \"command.view\": \"Visualizza il file PDF LaTeX\",\n  \"command.tab\": \"Visualizza il file PDF LaTeX nella scheda di VSCode\",\n  \"command.viewInBrowser\": \"Visualizza il file PDF LaTeX nel browser web\",\n  \"command.viewExternal\": \"Visualizza il file PDF LaTeX in un visualizzatore esterno\",\n  \"command.refresh-viewer\": \"Aggiorna tutti i visualizzatori PDF LaTeX\",\n  \"command.kill\": \"Interrompi il processo di compilazione LaTeX\",\n  \"command.synctex\": \"SyncTeX dalla posizione del cursore\",\n  \"command.clean\": \"Pulisci i file ausiliari\",\n  \"command.citation\": \"Apri il browser delle citazioni\",\n  \"command.addtexroot\": \"Inserisci il commento magico !TeX root\",\n  \"command.wordcount\": \"Conta le parole nel documento LaTeX\",\n  \"command.changeHostName\": \"Modifica il nome host del server\",\n  \"command.resetHostName\": \"Reimposta il nome host del server su 127.0.0.1\",\n  \"command.compilerlog\": \"Visualizza i log del compilatore LaTeX\",\n  \"command.log\": \"Visualizza i messaggi di LaTeX Workshop\",\n  \"command.actions\": \"Azioni LaTeX\",\n  \"command-dev.parselog\": \"Analizza il documento corrente come log LaTeX\",\n  \"command-dev.parsetex\": \"Analizza il file corrente come AST LaTeX\",\n  \"command-dev.parsebib\": \"Analizza il file corrente come AST BibTeX\",\n  \"command-dev.striptext\": \"Rimuovi testo e commenti da LaTeX.\",\n  \"command.texdoc\": \"Mostra la documentazione del pacchetto\",\n  \"command.texdocUsepackages\": \"Mostra la documentazione del pacchetto effettivamente usato\",\n  \"command.promote-sectioning\": \"Promuovi tutti i livelli di sezione utilizzati nella selezione\",\n  \"command.demote-sectioning\": \"Degrada tutti i livelli di sezione utilizzati nella selezione\",\n  \"command.select-section\": \"Seleziona la sezione corrente\",\n  \"command.bibsort\": \"Ordina il file BibTeX\",\n  \"command.bibalign\": \"Allinea il file BibTeX\",\n  \"command.bibalignsort\": \"Ordina e allinea il file BibTeX\",\n  \"command.checkcitations\": \"Controlla le citazioni non utilizzate con \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Apri il pannello di anteprima matematica\",\n  \"command.closeMathPreviewPanel\": \"Chiudi il pannello di anteprima matematica\",\n  \"command.toggleMathPreviewPanel\": \"Attiva/Disattiva il pannello di anteprima matematica\",\n  \"activity.commands\": \"Comandi\",\n  \"activity.structure\": \"Struttura\",\n  \"activity.mathsymbols\": \"Simboli matematici\",\n  \"activity.recipe\": \"Ricetta\",\n  \"activity.view\": \"Visualizza PDF LaTeX\",\n  \"activity.viewintab\": \"Visualizza nella scheda di VSCode\",\n  \"activity.viewinweb\": \"Visualizza nel browser web\",\n  \"activity.viewinexternal\": \"Visualizza nel visualizzatore esterno\",\n  \"activity.log\": \"Visualizza i messaggi di log\",\n  \"activity.navigate\": \"Naviga, seleziona e modifica\",\n  \"activity.misc\": \"Varie\",\n  \"activity.bibtex\": \"Azioni BibTeX\",\n  \"mathsymbols.search\": \"Cerca\"\n}\n"
  },
  {
    "path": "package.nls.ja.json",
    "content": "{\n  \"command.hostPort\": \"共有 (ホスト側) / 取得 (ゲスト側) Live Share ホストポート\",\n  \"command.navigate-envpair\": \"\\\\begin{}/\\\\end{}に移動\",\n  \"command.select-envname\": \"現在の環境名を選択\",\n  \"command.select-envcontent\": \"現在の環境内容を選択\",\n  \"command.select-env\": \"現在の環境を選択\",\n  \"command.multicursor-envname\": \"現在の環境名にマルチカーソルを追加\",\n  \"command.wrap-env\": \"選択範囲を\\\\begin{}...\\\\end{}で囲む\",\n  \"command.surround\": \"選択範囲をLaTeXコマンドで囲む\",\n  \"command.close-env\": \"現在の環境を閉じる\",\n  \"command.toggle-equation-envname\": \"\\\\[...\\\\]と\\\\begin{}...\\\\end{}を切り替える\",\n  \"command.revealoutput\": \"OSで出力フォルダを表示\",\n  \"command.saveWithoutBuilding\": \"ビルドせずに保存\",\n  \"command.build\": \"LaTeXプロジェクトをビルド\",\n  \"command.recipes\": \"レシピでビルド\",\n  \"command.view\": \"LaTeX PDFファイルを表示\",\n  \"command.tab\": \"VSCodeタブでLaTeX PDFファイルを表示\",\n  \"command.viewInBrowser\": \"WebブラウザでLaTeX PDFファイルを表示\",\n  \"command.viewExternal\": \"外部ビューアでLaTeX PDFファイルを表示\",\n  \"command.refresh-viewer\": \"すべてのLaTeX PDFビューアを更新\",\n  \"command.kill\": \"LaTeXコンパイラプロセスを終了\",\n  \"command.synctex\": \"カーソルからSyncTeXを同期\",\n  \"command.clean\": \"補助ファイルをクリア\",\n  \"command.citation\": \"引用ブラウザを開く\",\n  \"command.addtexroot\": \"!TeXルートマジックコメントを挿入\",\n  \"command.wordcount\": \"LaTeXドキュメントの単語数をカウント\",\n  \"command.changeHostName\": \"サーバーのリスニングホスト名を変更\",\n  \"command.resetHostName\": \"サーバーのリスニングホスト名を127.0.0.1にリセット\",\n  \"command.compilerlog\": \"LaTeXコンパイラログを表示\",\n  \"command.log\": \"LaTeXワークショップメッセージを表示\",\n  \"command.actions\": \"LaTeXアクション\",\n  \"command-dev.parselog\": \"現在の文書をLaTeXログとして解析\",\n  \"command-dev.parsetex\": \"現在のファイルをLaTeX ASTとして解析\",\n  \"command-dev.parsebib\": \"現在のファイルをBibTeX ASTとして解析\",\n  \"command-dev.striptext\": \"LaTeXからテキストとコメントを削除\",\n  \"command.texdoc\": \"パッケージのドキュメントを表示\",\n  \"command.texdocUsepackages\": \"実際に使用されているパッケージのドキュメントを表示\",\n  \"command.promote-sectioning\": \"選択されたセクションレベルを昇格\",\n  \"command.demote-sectioning\": \"選択されたセクションレベルを降格\",\n  \"command.select-section\": \"現在のセクションを選択\",\n  \"command.bibsort\": \"BibTeXファイルをソート\",\n  \"command.bibalign\": \"BibTeXファイルを整列\",\n  \"command.bibalignsort\": \"BibTeXファイルをソートして整列\",\n  \"command.checkcitations\": \"\\\"checkcites\\\"で未使用の引用を検索\",\n  \"command.openMathPreviewPanel\": \"数式プレビューパネルを開く\",\n  \"command.closeMathPreviewPanel\": \"数式プレビューパネルを閉じる\",\n  \"command.toggleMathPreviewPanel\": \"数式プレビューパネルの切り替え\",\n  \"activity.commands\": \"コマンド\",\n  \"activity.structure\": \"構造\",\n  \"activity.mathsymbols\": \"数学記号\",\n  \"activity.recipe\": \"レシピ\",\n  \"activity.view\": \"LaTeX PDFを表示\",\n  \"activity.viewintab\": \"VSCodeタブで表示\",\n  \"activity.viewinweb\": \"Webブラウザで表示\",\n  \"activity.viewinexternal\": \"外部ビューアで表示\",\n  \"activity.log\": \"ログメッセージを表示\",\n  \"activity.navigate\": \"ナビゲート、選択、編集\",\n  \"activity.misc\": \"その他\",\n  \"activity.bibtex\": \"BibTeXアクション\",\n  \"mathsymbols.search\": \"検索\"\n}\n"
  },
  {
    "path": "package.nls.json",
    "content": "{\n  \"command.hostPort\": \"Share (on host) / Acquire (on guest) Live Share host port\",\n  \"command.navigate-envpair\": \"Navigate to matching \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Select the current environment name\",\n  \"command.select-envcontent\": \"Select the current environment content\",\n  \"command.select-env\": \"Select the current environment\",\n  \"command.multicursor-envname\": \"Add a multicursor to the current environment name\",\n  \"command.wrap-env\": \"Surround selection with \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Surround selection with LaTeX command\",\n  \"command.close-env\": \"Close current environment\",\n  \"command.toggle-equation-envname\": \"Toggle between \\\\[...\\\\] and \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Reveal output folder in OS\",\n  \"command.saveWithoutBuilding\": \"Save without Building\",\n  \"command.build\": \"Build LaTeX project\",\n  \"command.recipes\": \"Build with recipe\",\n  \"command.view\": \"View LaTeX PDF file\",\n  \"command.tab\": \"View LaTeX PDF file in VSCode tab\",\n  \"command.viewInBrowser\": \"View LaTeX PDF file in web browser\",\n  \"command.viewExternal\": \"View LaTeX PDF file in external viewer\",\n  \"command.refresh-viewer\": \"Refresh all LaTeX PDF viewers\",\n  \"command.kill\": \"Kill LaTeX compiler process\",\n  \"command.synctex\": \"SyncTeX from cursor\",\n  \"command.clean\": \"Clean up auxiliary files\",\n  \"command.citation\": \"Open citation browser\",\n  \"command.addtexroot\": \"Insert !TeX root magic comment\",\n  \"command.wordcount\": \"Count words in LaTeX document\",\n  \"command.changeHostName\": \"Change server listening hostname\",\n  \"command.resetHostName\": \"Reset server listening hostname to 127.0.0.1\",\n  \"command.compilerlog\": \"View LaTeX compiler logs\",\n  \"command.log\": \"View LaTeX Workshop messages\",\n  \"command.actions\": \"LaTeX actions\",\n  \"command-dev.parselog\": \"Parse current document as LaTeX logs\",\n  \"command-dev.parsetex\": \"Parse current file as LaTeX AST\",\n  \"command-dev.parsebib\": \"Parse current file as BibTeX AST\",\n  \"command-dev.striptext\": \"Strip text and comments from LaTeX.\",\n  \"command.texdoc\": \"Show package documentation\",\n  \"command.texdocUsepackages\": \"Show package documentation actually used\",\n  \"command.promote-sectioning\": \"Promote all the section levels used in the selection\",\n  \"command.demote-sectioning\": \"Demote all the section levels used in the selection\",\n  \"command.select-section\": \"Select the current section\",\n  \"command.bibsort\": \"Sort BibTeX file\",\n  \"command.bibalign\": \"Align BibTeX file\",\n  \"command.bibalignsort\": \"Sort and align BibTeX file\",\n  \"command.checkcitations\": \"Check for unused citations with \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Open Math Preview Panel\",\n  \"command.closeMathPreviewPanel\": \"Close Math Preview Panel\",\n  \"command.toggleMathPreviewPanel\": \"Toggle Math Preview Panel\",\n  \"activity.commands\": \"Commands\",\n  \"activity.structure\": \"Structure\",\n  \"activity.mathsymbols\": \"Math Symbols\",\n  \"activity.recipe\": \"Recipe\",\n  \"activity.view\": \"View LaTeX PDF\",\n  \"activity.viewintab\": \"View in VSCode tab\",\n  \"activity.viewinweb\": \"View in web browser\",\n  \"activity.viewinexternal\": \"View in external viewer\",\n  \"activity.log\": \"View log messages\",\n  \"activity.navigate\": \"Navigate, select, and edit\",\n  \"activity.misc\": \"Miscellaneous\",\n  \"activity.bibtex\": \"BibTeX actions\",\n  \"mathsymbols.search\": \"Search\",\n  \"DOC\": \"%DOC%\",\n  \"DOCFILE\": \"%DOCFILE%\",\n  \"DOC_EXT\": \"%DOC_EXT%\",\n  \"DIR\": \"%DIR%\",\n  \"OUTDIR\": \"%OUTDIR%\",\n  \"TEX\": \"%TEX%\",\n  \"PDF\": \"%PDF%\",\n  \"LINE\": \"%LINE%\",\n  \"TMPFILE\": \"%TMPFILE%\"\n}\n"
  },
  {
    "path": "package.nls.ko.json",
    "content": "{\n  \"command.hostPort\": \"공유 (호스트) / 획득 (게스트) Live Share 호스트 포트\",\n  \"command.navigate-envpair\": \"\\\\begin{}/\\\\end{}와 일치하는 곳으로 이동\",\n  \"command.select-envname\": \"현재 환경 이름 선택\",\n  \"command.select-envcontent\": \"현재 환경 내용 선택\",\n  \"command.select-env\": \"현재 환경 선택\",\n  \"command.multicursor-envname\": \"현재 환경 이름에 다중 커서 추가\",\n  \"command.wrap-env\": \"선택한 부분을 \\\\begin{}...\\\\end{}로 둘러싸기\",\n  \"command.surround\": \"선택한 부분을 LaTeX 명령어로 둘러싸기\",\n  \"command.close-env\": \"현재 환경 닫기\",\n  \"command.toggle-equation-envname\": \"\\\\[...\\\\]와 \\\\begin{}...\\\\end{} 사이 전환\",\n  \"command.revealoutput\": \"출력 폴더 OS에서 열기\",\n  \"command.saveWithoutBuilding\": \"빌드 없이 저장\",\n  \"command.build\": \"LaTeX 프로젝트 빌드\",\n  \"command.recipes\": \"레시피로 빌드\",\n  \"command.view\": \"LaTeX PDF 파일 보기\",\n  \"command.tab\": \"VSCode 탭에서 LaTeX PDF 파일 보기\",\n  \"command.viewInBrowser\": \"웹 브라우저에서 LaTeX PDF 파일 보기\",\n  \"command.viewExternal\": \"외부 뷰어에서 LaTeX PDF 파일 보기\",\n  \"command.refresh-viewer\": \"모든 LaTeX PDF 뷰어 새로고침\",\n  \"command.kill\": \"LaTeX 컴파일러 프로세스 종료\",\n  \"command.synctex\": \"커서에서 SyncTeX 동기화\",\n  \"command.clean\": \"보조 파일 정리\",\n  \"command.citation\": \"인용 브라우저 열기\",\n  \"command.addtexroot\": \"!TeX root 매직 코멘트 삽입\",\n  \"command.wordcount\": \"LaTeX 문서 단어 수 세기\",\n  \"command.changeHostName\": \"서버 수신 호스트 이름 변경\",\n  \"command.resetHostName\": \"서버 수신 호스트 이름을 127.0.0.1로 재설정\",\n  \"command.compilerlog\": \"LaTeX 컴파일러 로그 보기\",\n  \"command.log\": \"LaTeX Workshop 메시지 보기\",\n  \"command.actions\": \"LaTeX 작업\",\n  \"command-dev.parselog\": \"현재 문서를 LaTeX 로그로 구문 분석\",\n  \"command-dev.parsetex\": \"현재 파일을 LaTeX AST로 구문 분석\",\n  \"command-dev.parsebib\": \"현재 파일을 BibTeX AST로 구문 분석\",\n  \"command-dev.striptext\": \"LaTeX에서 텍스트와 주석 제거\",\n  \"command.texdoc\": \"패키지 문서 표시\",\n  \"command.texdocUsepackages\": \"실제로 사용된 패키지 문서 표시\",\n  \"command.promote-sectioning\": \"선택한 섹션 수준 모두 승격\",\n  \"command.demote-sectioning\": \"선택한 섹션 수준 모두 강등\",\n  \"command.select-section\": \"현재 섹션 선택\",\n  \"command.bibsort\": \"BibTeX 파일 정렬\",\n  \"command.bibalign\": \"BibTeX 파일 정렬\",\n  \"command.bibalignsort\": \"BibTeX 파일 정렬 및 정렬\",\n  \"command.checkcitations\": \"\\\"checkcites\\\"로 사용되지 않는 인용 검색\",\n  \"command.openMathPreviewPanel\": \"수학 미리보기 패널 열기\",\n  \"command.closeMathPreviewPanel\": \"수학 미리보기 패널 닫기\",\n  \"command.toggleMathPreviewPanel\": \"수학 미리보기 패널 전환\",\n  \"activity.commands\": \"명령\",\n  \"activity.structure\": \"구조\",\n  \"activity.mathsymbols\": \"수학 기호\",\n  \"activity.recipe\": \"레시피\",\n  \"activity.view\": \"LaTeX PDF 보기\",\n  \"activity.viewintab\": \"VSCode 탭에서 보기\",\n  \"activity.viewinweb\": \"웹 브라우저에서 보기\",\n  \"activity.viewinexternal\": \"외부 뷰어에서 보기\",\n  \"activity.log\": \"로그 메시지 보기\",\n  \"activity.navigate\": \"탐색, 선택 및 편집\",\n  \"activity.misc\": \"기타\",\n  \"activity.bibtex\": \"BibTeX 작업\",\n  \"mathsymbols.search\": \"검색\"\n}\n"
  },
  {
    "path": "package.nls.pl.json",
    "content": "{\n  \"command.hostPort\": \"Udostępnij (na hoście) / Uzyskaj (na gościu) port hosta Live Share\",\n  \"command.navigate-envpair\": \"Przejdź do pasującego \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Wybierz nazwę bieżącego środowiska\",\n  \"command.select-envcontent\": \"Wybierz zawartość bieżącego środowiska\",\n  \"command.select-env\": \"Wybierz bieżące środowisko\",\n  \"command.multicursor-envname\": \"Dodaj wielokursor do nazwy bieżącego środowiska\",\n  \"command.wrap-env\": \"Otocz zaznaczenie \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Otocz zaznaczenie poleceniem LaTeX\",\n  \"command.close-env\": \"Zamknij bieżące środowisko\",\n  \"command.toggle-equation-envname\": \"Przełącz między \\\\[...\\\\] a \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Pokaż folder wynikowy w systemie operacyjnym\",\n  \"command.saveWithoutBuilding\": \"Zapisz bez budowania\",\n  \"command.build\": \"Buduj projekt LaTeX\",\n  \"command.recipes\": \"Buduj z przepisem\",\n  \"command.view\": \"Pokaż plik PDF LaTeX\",\n  \"command.tab\": \"Pokaż plik PDF LaTeX w zakładce VSCode\",\n  \"command.viewInBrowser\": \"Pokaż plik PDF LaTeX w przeglądarce internetowej\",\n  \"command.viewExternal\": \"Pokaż plik PDF LaTeX w zewnętrznym przeglądarce\",\n  \"command.refresh-viewer\": \"Odśwież wszystkie przeglądarki PDF LaTeX\",\n  \"command.kill\": \"Zabij proces kompilatora LaTeX\",\n  \"command.synctex\": \"SyncTeX od kursora\",\n  \"command.clean\": \"Wyczyść pliki pomocnicze\",\n  \"command.citation\": \"Otwórz przeglądarkę cytowań\",\n  \"command.addtexroot\": \"Wstaw magiczny komentarz !TeX root\",\n  \"command.wordcount\": \"Policz słowa w dokumencie LaTeX\",\n  \"command.changeHostName\": \"Zmień nazwę hosta nasłuchującego serwera\",\n  \"command.resetHostName\": \"Zresetuj nazwę hosta nasłuchującego serwera na 127.0.0.1\",\n  \"command.compilerlog\": \"Pokaż dzienniki kompilatora LaTeX\",\n  \"command.log\": \"Pokaż wiadomości z warsztatu LaTeX\",\n  \"command.actions\": \"Akcje LaTeX\",\n  \"command-dev.parselog\": \"Analizuj bieżący dokument jako dzienniki LaTeX\",\n  \"command-dev.parsetex\": \"Analizuj bieżący plik jako AST LaTeX\",\n  \"command-dev.parsebib\": \"Analizuj bieżący plik jako AST BibTeX\",\n  \"command-dev.striptext\": \"Usuń tekst i komentarze z LaTeX.\",\n  \"command.texdoc\": \"Pokaż dokumentację pakietu\",\n  \"command.texdocUsepackages\": \"Pokaż rzeczywiście używaną dokumentację pakietu\",\n  \"command.promote-sectioning\": \"Podnieś wszystkie poziomy sekcji używane w zaznaczeniu\",\n  \"command.demote-sectioning\": \"Obniż wszystkie poziomy sekcji używane w zaznaczeniu\",\n  \"command.select-section\": \"Wybierz bieżącą sekcję\",\n  \"command.bibsort\": \"Sortuj plik BibTeX\",\n  \"command.bibalign\": \"Wyrównaj plik BibTeX\",\n  \"command.bibalignsort\": \"Sortuj i wyrównuj plik BibTeX\",\n  \"command.checkcitations\": \"Wyszukaj nieużywane cytaty z \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Otwórz panel podglądu matematycznego\",\n  \"command.closeMathPreviewPanel\": \"Zamknij panel podglądu matematycznego\",\n  \"command.toggleMathPreviewPanel\": \"Przełącz panel podglądu matematycznego\",\n  \"activity.commands\": \"Komendy\",\n  \"activity.structure\": \"Struktura\",\n  \"activity.mathsymbols\": \"Symbole matematyczne\",\n  \"activity.recipe\": \"Przepis\",\n  \"activity.view\": \"Pokaż PDF LaTeX\",\n  \"activity.viewintab\": \"Pokaż w zakładce VSCode\",\n  \"activity.viewinweb\": \"Pokaż w przeglądarce internetowej\",\n  \"activity.viewinexternal\": \"Pokaż w zewnętrznej przeglądarce\",\n  \"activity.log\": \"Pokaż komunikaty dziennika\",\n  \"activity.navigate\": \"Nawigacja, wybór i edycja\",\n  \"activity.misc\": \"Różne\",\n  \"activity.bibtex\": \"Akcje BibTeX\",\n  \"mathsymbols.search\": \"Szukaj\"\n}\n"
  },
  {
    "path": "package.nls.pt-br.json",
    "content": "{\n  \"command.hostPort\": \"Compartilhar (no host) / Adquirir (no guest) porta do host do Live Share\",\n  \"command.navigate-envpair\": \"Navegar para correspondência \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Selecionar o nome do ambiente atual\",\n  \"command.select-envcontent\": \"Selecionar o conteúdo do ambiente atual\",\n  \"command.select-env\": \"Selecionar o ambiente atual\",\n  \"command.multicursor-envname\": \"Adicionar um multicursor ao nome do ambiente atual\",\n  \"command.wrap-env\": \"Envolver a seleção com \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Envolver a seleção com comando LaTeX\",\n  \"command.close-env\": \"Fechar o ambiente atual\",\n  \"command.toggle-equation-envname\": \"Alternar entre \\\\[...\\\\] e \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Revelar pasta de saída no sistema operacional\",\n  \"command.saveWithoutBuilding\": \"Salvar sem compilar\",\n  \"command.build\": \"Compilar projeto LaTeX\",\n  \"command.recipes\": \"Compilar com receita\",\n  \"command.view\": \"Visualizar arquivo PDF LaTeX\",\n  \"command.tab\": \"Visualizar arquivo PDF LaTeX na aba do VSCode\",\n  \"command.viewInBrowser\": \"Visualizar arquivo PDF LaTeX no navegador web\",\n  \"command.viewExternal\": \"Visualizar arquivo PDF LaTeX em visualizador externo\",\n  \"command.refresh-viewer\": \"Atualizar todos os visualizadores PDF LaTeX\",\n  \"command.kill\": \"Encerrar processo do compilador LaTeX\",\n  \"command.synctex\": \"SyncTeX a partir do cursor\",\n  \"command.clean\": \"Limpar arquivos auxiliares\",\n  \"command.citation\": \"Abrir navegador de citações\",\n  \"command.addtexroot\": \"Inserir comentário mágico !TeX root\",\n  \"command.wordcount\": \"Contar palavras no documento LaTeX\",\n  \"command.changeHostName\": \"Alterar nome do host de escuta do servidor\",\n  \"command.resetHostName\": \"Redefinir nome do host de escuta do servidor para 127.0.0.1\",\n  \"command.compilerlog\": \"Visualizar registros do compilador LaTeX\",\n  \"command.log\": \"Visualizar mensagens do LaTeX Workshop\",\n  \"command.actions\": \"Ações LaTeX\",\n  \"command-dev.parselog\": \"Analisar documento atual como registros LaTeX\",\n  \"command-dev.parsetex\": \"Analisar arquivo atual como AST LaTeX\",\n  \"command-dev.parsebib\": \"Analisar arquivo atual como AST BibTeX\",\n  \"command-dev.striptext\": \"Remover texto e comentários do LaTeX\",\n  \"command.texdoc\": \"Mostrar documentação do pacote\",\n  \"command.texdocUsepackages\": \"Mostrar documentação do pacote realmente utilizado\",\n  \"command.promote-sectioning\": \"Promover todos os níveis de seção usados na seleção\",\n  \"command.demote-sectioning\": \"Rebaixar todos os níveis de seção usados na seleção\",\n  \"command.select-section\": \"Selecionar a seção atual\",\n  \"command.bibsort\": \"Ordenar arquivo BibTeX\",\n  \"command.bibalign\": \"Alinhar arquivo BibTeX\",\n  \"command.bibalignsort\": \"Ordenar e alinhar arquivo BibTeX\",\n  \"command.checkcitations\": \"Procurar por citações não utilizadas com \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Abrir Painel de Visualização de Matemática\",\n  \"command.closeMathPreviewPanel\": \"Fechar Painel de Visualização de Matemática\",\n  \"command.toggleMathPreviewPanel\": \"Alternar Painel de Visualização de Matemática\",\n  \"activity.commands\": \"Comandos\",\n  \"activity.structure\": \"Estrutura\",\n  \"activity.mathsymbols\": \"Símbolos matemáticos\",\n  \"activity.recipe\": \"Receita\",\n  \"activity.view\": \"Visualizar PDF LaTeX\",\n  \"activity.viewintab\": \"Visualizar na aba do VSCode\",\n  \"activity.viewinweb\": \"Visualizar no navegador web\",\n  \"activity.viewinexternal\": \"Visualizar no visualizador externo\",\n  \"activity.log\": \"Visualizar mensagens de log\",\n  \"activity.navigate\": \"Navegar, selecionar e editar\",\n  \"activity.misc\": \"Diversos\",\n  \"activity.bibtex\": \"Ações BibTeX\",\n  \"mathsymbols.search\": \"Buscar\"\n}\n"
  },
  {
    "path": "package.nls.ru.json",
    "content": "{\n  \"command.hostPort\": \"Поделиться (на хосте) / Получить (на госте) порт хоста Live Share\",\n  \"command.navigate-envpair\": \"Перейти к соответствующему \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"Выбрать имя текущего окружения\",\n  \"command.select-envcontent\": \"Выбрать содержимое текущего окружения\",\n  \"command.select-env\": \"Выбрать текущее окружение\",\n  \"command.multicursor-envname\": \"Добавить мультикурсор к имени текущего окружения\",\n  \"command.wrap-env\": \"Окружить выделение \\\\begin{}...\\\\end{}\",\n  \"command.surround\": \"Окружить выделение командой LaTeX\",\n  \"command.close-env\": \"Закрыть текущее окружение\",\n  \"command.toggle-equation-envname\": \"Переключить между \\\\[...\\\\] и \\\\begin{}...\\\\end{}\",\n  \"command.revealoutput\": \"Показать папку с выводом в ОС\",\n  \"command.saveWithoutBuilding\": \"Сохранить без компиляции\",\n  \"command.build\": \"Скомпилировать проект LaTeX\",\n  \"command.recipes\": \"Скомпилировать с помощью рецепта\",\n  \"command.view\": \"Просмотреть файл LaTeX PDF\",\n  \"command.tab\": \"Просмотреть файл LaTeX PDF во вкладке VSCode\",\n  \"command.viewInBrowser\": \"Просмотреть файл LaTeX PDF в веб-браузере\",\n  \"command.viewExternal\": \"Просмотреть файл LaTeX PDF во внешнем просмотрщике\",\n  \"command.refresh-viewer\": \"Обновить все просмотрщики LaTeX PDF\",\n  \"command.kill\": \"Остановить процесс компилятора LaTeX\",\n  \"command.synctex\": \"SyncTeX от курсора\",\n  \"command.clean\": \"Очистить вспомогательные файлы\",\n  \"command.citation\": \"Открыть браузер цитат\",\n  \"command.addtexroot\": \"Вставить магический комментарий !TeX root\",\n  \"command.wordcount\": \"Подсчитать слова в документе LaTeX\",\n  \"command.changeHostName\": \"Изменить имя сервера\",\n  \"command.resetHostName\": \"Сбросить имя сервера на 127.0.0.1\",\n  \"command.compilerlog\": \"Просмотреть журнал компилятора LaTeX\",\n  \"command.log\": \"Просмотреть сообщения LaTeX Workshop\",\n  \"command.actions\": \"Действия LaTeX\",\n  \"command-dev.parselog\": \"Разобрать текущий документ как журналы LaTeX\",\n  \"command-dev.parsetex\": \"Разобрать текущий файл как AST LaTeX\",\n  \"command-dev.parsebib\": \"Разобрать текущий файл как AST BibTeX\",\n  \"command-dev.striptext\": \"Удалить текст и комментарии из LaTeX.\",\n  \"command.texdoc\": \"Показать документацию пакета\",\n  \"command.texdocUsepackages\": \"Показать фактически использованную документацию пакета\",\n  \"command.promote-sectioning\": \"Повысить все уровни разделов, используемые в выделении\",\n  \"command.demote-sectioning\": \"Понизить все уровни разделов, используемые в выделении\",\n  \"command.select-section\": \"Выбрать текущий раздел\",\n  \"command.bibsort\": \"Сортировать файл BibTeX\",\n  \"command.bibalign\": \"Выровнять файл BibTeX\",\n  \"command.bibalignsort\": \"Сортировать и выровнять файл BibTeX\",\n  \"command.checkcitations\": \"Проверить на неиспользуемые цитаты с \\\"checkcites\\\"\",\n  \"command.openMathPreviewPanel\": \"Открыть панель предварительного просмотра математики\",\n  \"command.closeMathPreviewPanel\": \"Закрыть панель предварительного просмотра математики\",\n  \"command.toggleMathPreviewPanel\": \"Переключить панель предварительного просмотра математики\",\n  \"activity.commands\": \"Команды\",\n  \"activity.structure\": \"Структура\",\n  \"activity.mathsymbols\": \"Математические символы\",\n  \"activity.recipe\": \"Рецепт\",\n  \"activity.view\": \"Просмотр LaTeX PDF\",\n  \"activity.viewintab\": \"Просмотр во вкладке VSCode\",\n  \"activity.viewinweb\": \"Просмотр в веб-браузере\",\n  \"activity.viewinexternal\": \"Просмотр во внешнем просмотрщике\",\n  \"activity.log\": \"Просмотр сообщений журнала\",\n  \"activity.navigate\": \"Навигация, выбор и редактирование\",\n  \"activity.misc\": \"Разное\",\n  \"activity.bibtex\": \"Действия BibTeX\",\n  \"mathsymbols.search\": \"Поиск\"\n}\n"
  },
  {
    "path": "package.nls.tr.json",
    "content": "{\n  \"command.hostPort\": \"Paylaş (ev sahibinde) / Al (misafirde) Live Share ev sahibi portu\",\n  \"command.navigate-envpair\": \"\\\\begin{}/\\\\end{} eşleşmesine git\",\n  \"command.select-envname\": \"Geçerli ortam adını seç\",\n  \"command.select-envcontent\": \"Geçerli ortam içeriğini seç\",\n  \"command.select-env\": \"Geçerli ortamı seç\",\n  \"command.multicursor-envname\": \"Geçerli ortam adına çoklu imleç ekle\",\n  \"command.wrap-env\": \"Seçimi \\\\begin{}...\\\\end{} ile sar\",\n  \"command.surround\": \"Seçimi LaTeX komutu ile çevrele\",\n  \"command.close-env\": \"Geçerli ortamı kapat\",\n  \"command.toggle-equation-envname\": \"\\\\[...\\\\] ve \\\\begin{}...\\\\end{} arasında geçiş yap\",\n  \"command.revealoutput\": \"Çıktı klasörünü işletim sistemimde göster\",\n  \"command.saveWithoutBuilding\": \"Derleme yapmadan kaydet\",\n  \"command.build\": \"LaTeX projesini derle\",\n  \"command.recipes\": \"Tarifle derle\",\n  \"command.view\": \"LaTeX PDF dosyasını görüntüle\",\n  \"command.tab\": \"LaTeX PDF dosyasını VSCode sekmesinde görüntüle\",\n  \"command.viewInBrowser\": \"LaTeX PDF dosyasını web tarayıcısında görüntüle\",\n  \"command.viewExternal\": \"LaTeX PDF dosyasını harici görüntüleyicide görüntüle\",\n  \"command.refresh-viewer\": \"Tüm LaTeX PDF görüntüleyicilerini yenile\",\n  \"command.kill\": \"LaTeX derleyici işlemi sonlandır\",\n  \"command.synctex\": \"İmleçten SyncTeX senkronizasyonu\",\n  \"command.clean\": \"Yardımcı dosyaları temizle\",\n  \"command.citation\": \"Alıntı tarayıcısını aç\",\n  \"command.addtexroot\": \"!TeX kök sihirli yorumunu ekle\",\n  \"command.wordcount\": \"LaTeX belgesindeki kelime sayısını say\",\n  \"command.changeHostName\": \"Sunucu dinleme ana bilgisayar adını değiştir\",\n  \"command.resetHostName\": \"Sunucu dinleme ana bilgisayar adını 127.0.0.1'e sıfırla\",\n  \"command.compilerlog\": \"LaTeX derleyici günlüklerini görüntüle\",\n  \"command.log\": \"LaTeX Atölyesi iletilerini görüntüle\",\n  \"command.actions\": \"LaTeX eylemleri\",\n  \"command-dev.parselog\": \"Geçerli belgeyi LaTeX günlükleri olarak ayrıştır\",\n  \"command-dev.parsetex\": \"Geçerli dosyayı LaTeX AST olarak ayrıştır\",\n  \"command-dev.parsebib\": \"Geçerli dosyayı BibTeX AST olarak ayrıştır\",\n  \"command-dev.striptext\": \"LaTeX'ten metin ve yorumları çıkar\",\n  \"command.texdoc\": \"Paket belgelerini göster\",\n  \"command.texdocUsepackages\": \"Gerçekte kullanılan paket belgelerini göster\",\n  \"command.promote-sectioning\": \"Seçimde kullanılan tüm bölüm düzeylerini yükselt\",\n  \"command.demote-sectioning\": \"Seçimde kullanılan tüm bölüm düzeylerini alçalt\",\n  \"command.select-section\": \"Geçerli bölümü seç\",\n  \"command.bibsort\": \"BibTeX dosyasını sırala\",\n  \"command.bibalign\": \"BibTeX dosyasını hizala\",\n  \"command.bibalignsort\": \"BibTeX dosyasını sırala ve hizala\",\n  \"command.checkcitations\": \"\\\"checkcites\\\" ile kullanılmayan alıntıları kontrol et\",\n  \"command.openMathPreviewPanel\": \"Matematik Önizleme Panelini aç\",\n  \"command.closeMathPreviewPanel\": \"Matematik Önizleme Panelini kapat\",\n  \"command.toggleMathPreviewPanel\": \"Matematik Önizleme Panelini aç/kapat\",\n  \"activity.commands\": \"Komutlar\",\n  \"activity.structure\": \"Yapı\",\n  \"activity.mathsymbols\": \"Matematik Sembolleri\",\n  \"activity.recipe\": \"Tarif\",\n  \"activity.view\": \"LaTeX PDF Görünümü\",\n  \"activity.viewintab\": \"VSCode sekmesinde görüntüle\",\n  \"activity.viewinweb\": \"Web tarayıcısında görüntüle\",\n  \"activity.viewinexternal\": \"Harici görüntüleyicide görüntüle\",\n  \"activity.log\": \"Günlük iletileri görüntüle\",\n  \"activity.navigate\": \"Gezinme, seçme ve düzenleme\",\n  \"activity.misc\": \"Çeşitli\",\n  \"activity.bibtex\": \"BibTeX eylemleri\",\n  \"mathsymbols.search\": \"Ara\"\n}\n"
  },
  {
    "path": "package.nls.zh-cn.json",
    "content": "{\n  \"command.hostPort\": \"共享（在主机上）/ 获取（在客户端）Live Share 主机端口\",\n  \"command.navigate-envpair\": \"导航到匹配的 \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"选择当前环境名称\",\n  \"command.select-envcontent\": \"选择当前环境内容\",\n  \"command.select-env\": \"选择当前环境\",\n  \"command.multicursor-envname\": \"在当前环境名称上添加多光标\",\n  \"command.wrap-env\": \"用 \\\\begin{}...\\\\end{} 包围选择\",\n  \"command.surround\": \"用 LaTeX 命令包围选择\",\n  \"command.close-env\": \"关闭当前环境\",\n  \"command.toggle-equation-envname\": \"在 \\\\[...\\\\] 和 \\\\begin{}...\\\\end{} 之间切换\",\n  \"command.revealoutput\": \"在操作系统中显示输出文件夹\",\n  \"command.saveWithoutBuilding\": \"保存但不构建\",\n  \"command.build\": \"构建 LaTeX 项目\",\n  \"command.recipes\": \"使用配方构建\",\n  \"command.view\": \"查看 LaTeX PDF 文件\",\n  \"command.tab\": \"在 VSCode 标签中查看 LaTeX PDF 文件\",\n  \"command.viewInBrowser\": \"在网络浏览器中查看 LaTeX PDF 文件\",\n  \"command.viewExternal\": \"在外部查看器中查看 LaTeX PDF 文件\",\n  \"command.refresh-viewer\": \"刷新所有 LaTeX PDF 查看器\",\n  \"command.kill\": \"终止 LaTeX 编译器进程\",\n  \"command.synctex\": \"从光标同步 SyncTeX\",\n  \"command.clean\": \"清理辅助文件\",\n  \"command.citation\": \"打开引用浏览器\",\n  \"command.addtexroot\": \"插入 !TeX 根魔术注释\",\n  \"command.wordcount\": \"统计 LaTeX 文档中的词数\",\n  \"command.changeHostName\": \"更改服务器监听主机名\",\n  \"command.resetHostName\": \"将服务器监听主机名重置为 127.0.0.1\",\n  \"command.compilerlog\": \"查看 LaTeX 编译日志\",\n  \"command.log\": \"查看 LaTeX Workshop 消息\",\n  \"command.actions\": \"LaTeX 操作\",\n  \"command-dev.parselog\": \"解析当前文档作为 LaTeX 日志\",\n  \"command-dev.parsetex\": \"解析当前文件作为 LaTeX AST\",\n  \"command-dev.parsebib\": \"解析当前文件作为 BibTeX AST\",\n  \"command-dev.striptext\": \"从 LaTeX 中删除文本和注释\",\n  \"command.texdoc\": \"显示包文档\",\n  \"command.texdocUsepackages\": \"显示实际使用的包文档\",\n  \"command.promote-sectioning\": \"提升所选内容中使用的所有章节级别\",\n  \"command.demote-sectioning\": \"降低所选内容中使用的所有章节级别\",\n  \"command.select-section\": \"选择当前章节\",\n  \"command.bibsort\": \"排序 BibTeX 文件\",\n  \"command.bibalign\": \"对齐 BibTeX 文件\",\n  \"command.bibalignsort\": \"排序和对齐 BibTeX 文件\",\n  \"command.checkcitations\": \"使用 \\\"checkcites\\\" 查找未使用的引用\",\n  \"command.openMathPreviewPanel\": \"打开数学预览面板\",\n  \"command.closeMathPreviewPanel\": \"关闭数学预览面板\",\n  \"command.toggleMathPreviewPanel\": \"切换数学预览面板\",\n  \"activity.commands\": \"命令\",\n  \"activity.structure\": \"结构\",\n  \"activity.mathsymbols\": \"数学符号\",\n  \"activity.recipe\": \"配方\",\n  \"activity.view\": \"查看 LaTeX PDF\",\n  \"activity.viewintab\": \"在 VSCode 标签中查看\",\n  \"activity.viewinweb\": \"在网络浏览器中查看\",\n  \"activity.viewinexternal\": \"在外部查看器中查看\",\n  \"activity.log\": \"查看日志消息\",\n  \"activity.navigate\": \"导航、选择和编辑\",\n  \"activity.misc\": \"杂项\",\n  \"activity.bibtex\": \"BibTeX 操作\",\n  \"mathsymbols.search\": \"搜索\"\n}\n"
  },
  {
    "path": "package.nls.zh-tw.json",
    "content": "{\n  \"command.hostPort\": \"共享（在主機上）/ 獲取（在客戶端）Live Share 主機端口\",\n  \"command.navigate-envpair\": \"導航至匹配的 \\\\begin{}/\\\\end{}\",\n  \"command.select-envname\": \"選擇當前環境名稱\",\n  \"command.select-envcontent\": \"選擇當前環境內容\",\n  \"command.select-env\": \"選擇當前環境\",\n  \"command.multicursor-envname\": \"對當前環境名稱添加多游標\",\n  \"command.wrap-env\": \"用 \\\\begin{}...\\\\end{} 包裹選擇\",\n  \"command.surround\": \"用 LaTeX 命令包裹選擇\",\n  \"command.close-env\": \"關閉當前環境\",\n  \"command.toggle-equation-envname\": \"在 \\\\[...\\\\] 和 \\\\begin{}...\\\\end{} 之間切換\",\n  \"command.revealoutput\": \"在操作系統中顯示輸出文件夾\",\n  \"command.saveWithoutBuilding\": \"保存而不進行編譯\",\n  \"command.build\": \"編譯 LaTeX 項目\",\n  \"command.recipes\": \"使用配方進行編譯\",\n  \"command.view\": \"查看 LaTeX PDF 文件\",\n  \"command.tab\": \"在 VSCode 標籤中查看 LaTeX PDF 文件\",\n  \"command.viewInBrowser\": \"在網頁瀏覽器中查看 LaTeX PDF 文件\",\n  \"command.viewExternal\": \"在外部查看器中查看 LaTeX PDF 文件\",\n  \"command.refresh-viewer\": \"刷新所有 LaTeX PDF 查看器\",\n  \"command.kill\": \"終止 LaTeX 編譯器進程\",\n  \"command.synctex\": \"從游標同步 SyncTeX\",\n  \"command.clean\": \"清理輔助文件\",\n  \"command.citation\": \"打開引用瀏覽器\",\n  \"command.addtexroot\": \"插入 !TeX root 魔術注釋\",\n  \"command.wordcount\": \"計算 LaTeX 文檔中的詞數\",\n  \"command.changeHostName\": \"更改服務器監聽主機名\",\n  \"command.resetHostName\": \"將服務器監聽主機名重置為 127.0.0.1\",\n  \"command.compilerlog\": \"查看 LaTeX 編譯器日誌\",\n  \"command.log\": \"查看 LaTeX 工作室消息\",\n  \"command.actions\": \"LaTeX 操作\",\n  \"command-dev.parselog\": \"解析當前文檔為 LaTeX 日誌\",\n  \"command-dev.parsetex\": \"解析當前文件為 LaTeX AST\",\n  \"command-dev.parsebib\": \"解析當前文件為 BibTeX AST\",\n  \"command-dev.striptext\": \"從 LaTeX 中刪除文本和注釋。\",\n  \"command.texdoc\": \"顯示套件文檔\",\n  \"command.texdocUsepackages\": \"顯示實際使用的套件文檔\",\n  \"command.promote-sectioning\": \"提升選擇範圍內的所有章節級別\",\n  \"command.demote-sectioning\": \"降低選擇範圍內的所有章節級別\",\n  \"command.select-section\": \"選擇當前章節\",\n  \"command.bibsort\": \"排序 BibTeX 文件\",\n  \"command.bibalign\": \"對齊 BibTeX 文件\",\n  \"command.bibalignsort\": \"排序並對齊 BibTeX 文件\",\n  \"command.checkcitations\": \"使用 \\\"checkcites\\\" 查找未使用的引用\",\n  \"command.openMathPreviewPanel\": \"打開數學預覽面板\",\n  \"command.closeMathPreviewPanel\": \"關閉數學預覽面板\",\n  \"command.toggleMathPreviewPanel\": \"切換數學預覽面板\",\n  \"activity.commands\": \"命令\",\n  \"activity.structure\": \"結構\",\n  \"activity.mathsymbols\": \"數學符號\",\n  \"activity.recipe\": \"配方\",\n  \"activity.view\": \"查看 LaTeX PDF\",\n  \"activity.viewintab\": \"在 VSCode 標籤中查看\",\n  \"activity.viewinweb\": \"在網頁中查看\",\n  \"activity.viewinexternal\": \"在外部查看器中查看\",\n  \"activity.log\": \"查看日誌消息\",\n  \"activity.navigate\": \"導航、選擇和編輯\",\n  \"activity.misc\": \"其他\",\n  \"activity.bibtex\": \"BibTeX 操作\",\n  \"mathsymbols.search\": \"搜索\"\n}\n"
  },
  {
    "path": "resources/mathpreviewpanel/mathpreview.js",
    "content": "const vscode = acquireVsCodeApi();\nconst img = document.getElementById('math');\nwindow.addEventListener('message', event => {\n  const message = event.data;\n  switch (message.type) {\n    case \"mathImage\": {\n      img.src = message.src;\n      break;\n    }\n    default: {\n      break;\n    }\n  }\n});\nvscode.postMessage({type: 'initialized'});\n"
  },
  {
    "path": "resources/snippetview/README.md",
    "content": "# Overview\n\n`snippetpanel.json` is generated by `dev/createSymbolSvgs.ts`. The file includes all the SVG texts to display on the snippet view. It is loaded by the WebView View with `fetch`.\n\n## PDF.js\n\nWe load PDF.js inside the WebView of the Snippet View to render the thumbnails of PDF files for hovers.\n"
  },
  {
    "path": "resources/snippetview/pdfrenderer.js",
    "content": "window.addEventListener('message', async (event) => {\n    const message = event.data;\n    if (message.type !== 'pdf') {\n        return\n    }\n    try {\n        const canvas = await renderPdfFile(message.uri, message.opts);\n        vscodeApi.postMessage({\n            type: 'png',\n            uri: message.uri,\n            data: canvas.toDataURL()\n        })\n    } catch (e) {\n        vscodeApi.postMessage({\n            type: 'png',\n            uri: message.uri,\n            data: undefined\n        })\n        throw(e)\n    }\n})\n\n// https://github.com/microsoft/vscode/issues/87282#issuecomment-919464403\nasync function createPdfWorker() {\n    const result = await fetch(pdfjsDistUri + '/build/pdf.worker.mjs');\n    const blob = await result.blob();\n    const blobUrl = URL.createObjectURL(blob);\n    pdfjsLib.GlobalWorkerOptions.workerPort = new Worker(blobUrl, { type: 'module' });\n}\n\nasync function renderPdfFile(url, opts) {\n    const loadingTask = pdfjsLib.getDocument({\n        url,\n        cMapUrl: pdfjsDistUri + '/cmaps/',\n        cMapPacked: true\n    });\n    const pdf = await loadingTask.promise;\n    const page = await pdf.getPage(opts.pageNumber);\n    let scale = 1;\n    let viewport = page.getViewport({ scale });\n\n    const height = Math.floor(viewport.height);\n    const width = Math.floor(viewport.width);\n    scale = Math.min(opts.height/height, opts.width/width);\n    viewport = page.getViewport({ scale });\n\n    //\n    // Prepare canvas using PDF page dimensions\n    //\n    const canvas = document.createElement('canvas');\n    const context = canvas.getContext('2d');\n    canvas.width = Math.floor(viewport.width);\n    canvas.height = Math.floor(viewport.height);\n\n    //\n    // Render PDF page into canvas context\n    //\n    const renderContext = {\n        canvasContext: context,\n        viewport: viewport,\n        intent: 'print'\n    };\n    const renderTask = page.render(renderContext);\n    setTimeout(() => renderTask.cancel(), 5000);\n    await renderTask.promise;\n    return canvas;\n}\n\ncreatePdfWorker()\n"
  },
  {
    "path": "resources/snippetview/snippetpanel.json",
    "content": "{\n    \"mathSymbols\": {\n        \"-Greek/Hebrew Letters\": [\n            {\n                \"name\": \"alpha\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\alpha\",\n                \"snippet\": \"\\\\alpha\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.488ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 640.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ALPHA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B1\\\" d=\\\"M34 156Q34 270 120 356T309 442Q379 442 421 402T478 304Q484 275 485 237V208Q534 282 560 374Q564 388 566 390T582 393Q603 393 603 385Q603 376 594 346T558 261T497 161L486 147L487 123Q489 67 495 47T514 26Q528 28 540 37T557 60Q559 67 562 68T577 70Q597 70 597 62Q597 56 591 43Q579 19 556 5T512 -10H505Q438 -10 414 62L411 69L400 61Q390 53 370 41T325 18T267 -2T203 -11Q124 -11 79 39T34 156ZM208 26Q257 26 306 47T379 90L403 112Q401 255 396 290Q382 405 304 405Q235 405 183 332Q156 292 139 224T121 120Q121 71 146 49T208 26Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"beta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\beta\",\n                \"snippet\": \"\\\\beta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.332ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 573.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B2\\\" d=\\\"M29 -194Q23 -188 23 -186Q23 -183 102 134T186 465Q208 533 243 584T309 658Q365 705 429 705H431Q493 705 533 667T573 570Q573 465 469 396L482 383Q533 332 533 252Q533 139 448 65T257 -10Q227 -10 203 -2T165 17T143 40T131 59T126 65L62 -188Q60 -194 42 -194H29ZM353 431Q392 431 427 419L432 422Q436 426 439 429T449 439T461 453T472 471T484 495T493 524T501 560Q503 569 503 593Q503 611 502 616Q487 667 426 667Q384 667 347 643T286 582T247 514T224 455Q219 439 186 308T152 168Q151 163 151 147Q151 99 173 68Q204 26 260 26Q302 26 349 51T425 137Q441 171 449 214T457 279Q457 337 422 372Q380 358 347 358H337Q258 358 258 389Q258 396 261 403Q275 431 353 431Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gamma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\gamma\",\n                \"snippet\": \"\\\\gamma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.262ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 543.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GAMMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B3\\\" d=\\\"M31 249Q11 249 11 258Q11 275 26 304T66 365T129 418T206 441Q233 441 239 440Q287 429 318 386T371 255Q385 195 385 170Q385 166 386 166L398 193Q418 244 443 300T486 391T508 430Q510 431 524 431H537Q543 425 543 422Q543 418 522 378T463 251T391 71Q385 55 378 6T357 -100Q341 -165 330 -190T303 -216Q286 -216 286 -188Q286 -138 340 32L346 51L347 69Q348 79 348 100Q348 257 291 317Q251 355 196 355Q148 355 108 329T51 260Q49 251 47 251Q45 249 31 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"delta\",\n                \"keywords\": \"greek kronecker\",\n                \"source\": \"\\\\delta\",\n                \"snippet\": \"\\\\delta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.049ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 451.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DELTA. Keywords: greek kronecker</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B4\\\" d=\\\"M195 609Q195 656 227 686T302 717Q319 716 351 709T407 697T433 690Q451 682 451 662Q451 644 438 628T403 612Q382 612 348 641T288 671T249 657T235 628Q235 584 334 463Q401 379 401 292Q401 169 340 80T205 -10H198Q127 -10 83 36T36 153Q36 286 151 382Q191 413 252 434Q252 435 245 449T230 481T214 521T201 566T195 609ZM112 130Q112 83 136 55T204 27Q233 27 256 51T291 111T309 178T316 232Q316 267 309 298T295 344T269 400L259 396Q215 381 183 342T137 256T118 179T112 130Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"epsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\epsilon\",\n                \"snippet\": \"\\\\epsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.944ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 406.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3F5\\\" d=\\\"M227 -11Q149 -11 95 41T40 174Q40 262 87 322Q121 367 173 396T287 430Q289 431 329 431H367Q382 426 382 411Q382 385 341 385H325H312Q191 385 154 277L150 265H327Q340 256 340 246Q340 228 320 219H138V217Q128 187 128 143Q128 77 160 52T231 26Q258 26 284 36T326 57T343 68Q350 68 354 58T358 39Q358 36 357 35Q354 31 337 21T289 0T227 -11Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3F5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varepsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varepsilon\",\n                \"snippet\": \"\\\\varepsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.083ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 466.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VAREPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B5\\\" d=\\\"M190 -22Q124 -22 76 11T27 107Q27 174 97 232L107 239L99 248Q76 273 76 304Q76 364 144 408T290 452H302Q360 452 405 421Q428 405 428 392Q428 381 417 369T391 356Q382 356 371 365T338 383T283 392Q217 392 167 368T116 308Q116 289 133 272Q142 263 145 262T157 264Q188 278 238 278H243Q308 278 308 247Q308 206 223 206Q177 206 142 219L132 212Q68 169 68 112Q68 39 201 39Q253 39 286 49T328 72T345 94T362 105Q376 103 376 88Q376 79 365 62T334 26T275 -8T190 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"zeta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\zeta\",\n                \"snippet\": \"\\\\zeta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.095ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 471.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ZETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B6\\\" d=\\\"M296 643Q298 704 324 704Q342 704 342 687Q342 682 339 664T336 633Q336 623 337 618T338 611Q339 612 341 612Q343 614 354 616T374 618L384 619H394Q471 619 471 586Q467 548 386 546H372Q338 546 320 564L311 558Q235 506 175 398T114 190Q114 171 116 155T125 127T137 104T153 86T171 72T192 61T213 53T235 46T256 39L322 16Q389 -10 389 -80Q389 -119 364 -154T300 -202Q292 -204 274 -204Q247 -204 225 -196Q210 -192 193 -182T172 -167Q167 -159 173 -148Q180 -139 191 -139Q195 -139 221 -153T283 -168Q298 -166 310 -152T322 -117Q322 -91 302 -75T250 -51T183 -29T116 4T65 62T44 160Q44 287 121 410T293 590L302 595Q296 613 296 643Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"eta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\eta\",\n                \"snippet\": \"\\\\eta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.169ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 503.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B7\\\" d=\\\"M21 287Q22 290 23 295T28 317T38 348T53 381T73 411T99 433T132 442Q156 442 175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336V326Q503 302 439 53Q381 -182 377 -189Q364 -216 332 -216Q319 -216 310 -208T299 -186Q299 -177 358 57L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 114 189T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"theta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\theta\",\n                \"snippet\": \"\\\\theta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.09ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 469.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">THETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B8\\\" d=\\\"M35 200Q35 302 74 415T180 610T319 704Q320 704 327 704T339 705Q393 701 423 656Q462 596 462 495Q462 380 417 261T302 66T168 -10H161Q125 -10 99 10T60 63T41 130T35 200ZM383 566Q383 668 330 668Q294 668 260 623T204 521T170 421T157 371Q206 370 254 370L351 371Q352 372 359 404T375 484T383 566ZM113 132Q113 26 166 26Q181 26 198 36T239 74T287 161T335 307L340 324H145Q145 321 136 286T120 208T113 132Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vartheta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\vartheta\",\n                \"snippet\": \"\\\\vartheta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.374ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 591.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARTHETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3D1\\\" d=\\\"M537 500Q537 474 533 439T524 383L521 362Q558 355 561 351Q563 349 563 345Q563 321 552 318Q542 318 521 323L510 326Q496 261 459 187T362 51T241 -11Q100 -11 100 105Q100 139 127 242T154 366Q154 405 128 405Q107 405 92 377T68 316T57 280Q55 278 41 278H27Q21 284 21 287Q21 291 27 313T47 368T79 418Q103 442 134 442Q169 442 201 419T233 344Q232 330 206 228T180 98Q180 26 247 26Q292 26 332 90T404 260L427 349Q422 349 398 359T339 392T289 440Q265 476 265 520Q265 590 312 647T417 705Q463 705 491 670T528 592T537 500ZM464 564Q464 668 413 668Q373 668 339 622T304 522Q304 494 317 470T349 431T388 406T421 391T435 387H436L443 415Q450 443 457 485T464 564Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3D1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"iota\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\iota\",\n                \"snippet\": \"\\\\iota\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.823ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 354.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IOTA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3B9\\\" d=\\\"M139 -10Q111 -10 92 0T64 25T52 52T48 74Q48 89 55 109T85 199T135 375L137 384Q139 394 140 397T145 409T151 422T160 431T173 439T190 442Q202 442 213 435T225 410Q225 404 214 358T181 238T137 107Q126 74 126 54Q126 43 126 39T130 31T142 27H147Q206 27 255 78Q272 98 281 114T290 138T295 149T313 153Q321 153 324 153T329 152T332 149T332 143Q332 106 276 48T145 -10H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3B9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"kappa\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\kappa\",\n                \"snippet\": \"\\\\kappa\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.339ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 576.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">KAPPA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3BA\\\" d=\\\"M83 -11Q70 -11 62 -4T51 8T49 17Q49 30 96 217T147 414Q160 442 193 442Q205 441 213 435T223 422T225 412Q225 401 208 337L192 270Q193 269 208 277T235 292Q252 304 306 349T396 412T467 431Q489 431 500 420T512 391Q512 366 494 347T449 327Q430 327 418 338T405 368Q405 370 407 380L397 375Q368 360 315 315L253 266L240 257H245Q262 257 300 251T366 230Q422 203 422 150Q422 140 417 114T411 67Q411 26 437 26Q484 26 513 137Q516 149 519 151T535 153Q554 153 554 144Q554 121 527 64T457 -7Q447 -10 431 -10Q386 -10 360 17T333 90Q333 108 336 122T339 146Q339 170 320 186T271 209T222 218T185 221H180L155 122Q129 22 126 16Q113 -11 83 -11Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3BA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lambda\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\lambda\",\n                \"snippet\": \"\\\\lambda\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.355ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 583.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LAMBDA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3BB\\\" d=\\\"M166 673Q166 685 183 694H202Q292 691 316 644Q322 629 373 486T474 207T524 67Q531 47 537 34T546 15T551 6T555 2T556 -2T550 -11H482Q457 3 450 18T399 152L354 277L340 262Q327 246 293 207T236 141Q211 112 174 69Q123 9 111 -1T83 -12Q47 -12 47 20Q47 37 61 52T199 187Q229 216 266 252T321 306L338 322Q338 323 288 462T234 612Q214 657 183 657Q166 657 166 673Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3BB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"mu\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\mu\",\n                \"snippet\": \"\\\\mu\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.402ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 603.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3BC\\\" d=\\\"M58 -216Q44 -216 34 -208T23 -186Q23 -176 96 116T173 414Q186 442 219 442Q231 441 239 435T249 423T251 413Q251 401 220 279T187 142Q185 131 185 107V99Q185 26 252 26Q261 26 270 27T287 31T302 38T315 45T327 55T338 65T348 77T356 88T365 100L372 110L408 253Q444 395 448 404Q461 431 491 431Q504 431 512 424T523 412T525 402L449 84Q448 79 448 68Q448 43 455 35T476 26Q485 27 496 35Q517 55 537 131Q543 151 547 152Q549 153 557 153H561Q580 153 580 144Q580 138 575 117T555 63T523 13Q510 0 491 -8Q483 -10 467 -10Q446 -10 429 -4T402 11T385 29T376 44T374 51L368 45Q362 39 350 30T324 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3BC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nu\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\nu\",\n                \"snippet\": \"\\\\nu\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.232ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 530.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3BD\\\" d=\\\"M74 431Q75 431 146 436T219 442Q231 442 231 434Q231 428 185 241L137 51H140L150 55Q161 59 177 67T214 86T261 119T312 165Q410 264 445 394Q458 442 496 442Q509 442 519 434T530 411Q530 390 516 352T469 262T388 162T267 70T106 5Q81 -2 71 -2Q66 -2 59 -1T51 1Q45 5 45 11Q45 13 88 188L132 364Q133 377 125 380T86 385H65Q59 391 59 393T61 412Q65 431 74 431Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3BD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"xi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\xi\",\n                \"snippet\": \"\\\\xi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.03ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 443.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">XI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3BE\\\" d=\\\"M268 632Q268 704 296 704Q314 704 314 687Q314 682 311 664T308 635T309 620V616H315Q342 619 360 619Q443 619 443 586Q439 548 358 546H344Q326 546 317 549T290 566Q257 550 226 505T195 405Q195 381 201 364T211 342T218 337Q266 347 298 347Q375 347 375 314Q374 297 359 288T327 277T280 275Q234 275 208 283L195 286Q149 260 119 214T88 130Q88 116 90 108Q101 79 129 63T229 20Q238 17 243 15Q337 -21 354 -33Q383 -53 383 -94Q383 -137 351 -171T273 -205Q240 -205 202 -190T158 -167Q156 -163 156 -159Q156 -151 161 -146T176 -140Q182 -140 189 -143Q232 -168 274 -168Q286 -168 292 -165Q313 -151 313 -129Q313 -112 301 -104T232 -75Q214 -68 204 -64Q198 -62 171 -52T136 -38T107 -24T78 -8T56 12T36 37T26 66T21 103Q21 149 55 206T145 301L154 307L148 313Q141 319 136 323T124 338T111 358T103 382T99 413Q99 471 143 524T259 602L271 607Q268 618 268 632Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3BE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"o\",\n                \"keywords\": \"greek\",\n                \"source\": \"o\",\n                \"snippet\": \"o\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.128ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 485.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">O. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6F\\\" d=\\\"M201 -11Q126 -11 80 38T34 156Q34 221 64 279T146 380Q222 441 301 441Q333 441 341 440Q354 437 367 433T402 417T438 387T464 338T476 268Q476 161 390 75T201 -11ZM121 120Q121 70 147 48T206 26Q250 26 289 58T351 142Q360 163 374 216T388 308Q388 352 370 375Q346 405 306 405Q243 405 195 347Q158 303 140 230T121 120Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-6F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"pi\",\n                \"keywords\": \"greek Archimedes' constant\",\n                \"source\": \"\\\\pi\",\n                \"snippet\": \"\\\\pi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.332ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 573.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PI. Keywords: greek Archimedes' constant</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C0\\\" d=\\\"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varpi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varpi\",\n                \"snippet\": \"\\\\varpi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.924ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 828.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3D6\\\" d=\\\"M206 -10Q158 -10 136 24T114 110Q114 233 199 349L205 358H184Q144 358 121 347Q108 340 95 330T75 312T61 295T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 532 431Q799 431 803 430Q823 423 823 402Q823 377 801 364Q790 358 766 358Q748 358 748 357Q748 355 749 348T752 327T754 297Q754 258 738 207T693 107T618 24T520 -10Q488 -10 466 2T432 36T416 77T411 120Q411 128 410 128T404 122Q373 71 323 31T206 -10ZM714 296Q714 316 707 358H251Q250 357 244 348T230 328T212 301T193 267T176 229T164 187T159 144Q159 62 222 62Q290 62 349 127T432 285Q433 286 434 288T435 291T437 293T440 294T444 294T452 294H466Q472 288 472 286Q472 285 464 244T456 170Q456 62 534 62Q604 62 659 139T714 296Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3D6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rho\",\n                \"keywords\": \"greek probability cordd\",\n                \"source\": \"\\\\rho\",\n                \"snippet\": \"\\\\rho\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.202ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 517.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RHO. Keywords: greek probability cordd</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C1\\\" d=\\\"M58 -216Q25 -216 23 -186Q23 -176 73 26T127 234Q143 289 182 341Q252 427 341 441Q343 441 349 441T359 442Q432 442 471 394T510 276Q510 219 486 165T425 74T345 13T266 -10H255H248Q197 -10 165 35L160 41L133 -71Q108 -168 104 -181T92 -202Q76 -216 58 -216ZM424 322Q424 359 407 382T357 405Q322 405 287 376T231 300Q217 269 193 170L176 102Q193 26 260 26Q298 26 334 62Q367 92 389 158T418 266T424 322Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varrho\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varrho\",\n                \"snippet\": \"\\\\varrho\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.202ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 517.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARRHO. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3F1\\\" d=\\\"M205 -174Q136 -174 102 -153T67 -76Q67 -25 91 85T127 234Q143 289 182 341Q252 427 341 441Q343 441 349 441T359 442Q432 442 471 394T510 276Q510 169 431 80T253 -10Q226 -10 204 -2T169 19T146 44T132 64L128 73Q128 72 124 53T116 5T112 -44Q112 -68 117 -78T150 -95T236 -102Q327 -102 356 -111T386 -154Q386 -166 384 -178Q381 -190 378 -192T361 -194H348Q342 -188 342 -179Q342 -169 315 -169Q294 -169 264 -171T205 -174ZM424 322Q424 359 407 382T357 405Q322 405 287 376T231 300Q221 276 204 217Q188 152 188 116Q188 68 210 47T259 26Q297 26 334 62Q367 92 389 158T418 266T424 322Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3F1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"sigma\",\n                \"keywords\": \"greek standard deviation covarience\",\n                \"source\": \"\\\\sigma\",\n                \"snippet\": \"\\\\sigma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.33ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 572.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SIGMA. Keywords: greek standard deviation covarience</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C3\\\" d=\\\"M184 -11Q116 -11 74 34T31 147Q31 247 104 333T274 430Q275 431 414 431H552Q553 430 555 429T559 427T562 425T565 422T567 420T569 416T570 412T571 407T572 401Q572 357 507 357Q500 357 490 357T476 358H416L421 348Q439 310 439 263Q439 153 359 71T184 -11ZM361 278Q361 358 276 358Q152 358 115 184Q114 180 114 178Q106 141 106 117Q106 67 131 47T188 26Q242 26 287 73Q316 103 334 153T356 233T361 278Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varsigma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varsigma\",\n                \"snippet\": \"\\\\varsigma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.942ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -576.1 405.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSIGMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C2\\\" d=\\\"M31 207Q31 306 115 374T302 442Q341 442 373 430T405 400Q405 392 399 383T379 374Q373 375 348 390T296 405Q222 405 160 357T98 249Q98 232 103 218T112 195T132 175T154 159T186 141T219 122Q234 114 255 102T286 85T299 78L302 74Q306 71 308 69T315 61T322 51T328 40T332 25T334 8Q334 -31 305 -69T224 -107Q194 -107 163 -92Q156 -88 156 -80Q156 -73 162 -67T178 -61Q186 -61 190 -63Q209 -71 224 -71Q244 -71 253 -59T263 -30Q263 -25 263 -21T260 -12T255 -4T248 3T239 9T227 17T213 25T195 34T174 46Q170 48 150 58T122 74T97 90T70 112T51 137T36 169T31 207Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"tau\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\tau\",\n                \"snippet\": \"\\\\tau\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.202ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 517.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TAU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C4\\\" d=\\\"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\upsilon\",\n                \"snippet\": \"\\\\upsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.255ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 540.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C5\\\" d=\\\"M413 384Q413 406 432 424T473 443Q492 443 507 425T523 367Q523 334 508 270T468 153Q424 63 373 27T282 -10H268Q220 -10 186 2T135 36T111 78T104 121Q104 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Q21 299 34 333T82 404T161 441Q200 441 225 419T250 355Q248 336 247 334Q247 331 232 291T201 199T185 118Q185 68 211 47T275 26Q317 26 355 57T416 132T452 216T465 277Q465 301 457 318T439 343T421 361T413 384Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"phi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\phi\",\n                \"snippet\": \"\\\\phi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.385ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 596.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PHI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3D5\\\" d=\\\"M409 688Q413 694 421 694H429H442Q448 688 448 686Q448 679 418 563Q411 535 404 504T392 458L388 442Q388 441 397 441T429 435T477 418Q521 397 550 357T579 260T548 151T471 65T374 11T279 -10H275L251 -105Q245 -128 238 -160Q230 -192 227 -198T215 -205H209Q189 -205 189 -198Q189 -193 211 -103L234 -11Q234 -10 226 -10Q221 -10 206 -8T161 6T107 36T62 89T43 171Q43 231 76 284T157 370T254 422T342 441Q347 441 348 445L378 567Q409 686 409 688ZM122 150Q122 116 134 91T167 53T203 35T237 27H244L337 404Q333 404 326 403T297 395T255 379T211 350T170 304Q152 276 137 237Q122 191 122 150ZM500 282Q500 320 484 347T444 385T405 400T381 404H378L332 217L284 29Q284 27 285 27Q293 27 317 33T357 47Q400 66 431 100T475 170T494 234T500 282Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3D5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varphi\",\n                \"keywords\": \"greek golden ratio\",\n                \"source\": \"\\\\varphi\",\n                \"snippet\": \"\\\\varphi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.52ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 654.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPHI. Keywords: greek golden ratio</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C6\\\" d=\\\"M92 210Q92 176 106 149T142 108T185 85T220 72L235 70L237 71L250 112Q268 170 283 211T322 299T370 375T429 423T502 442Q547 442 582 410T618 302Q618 224 575 152T457 35T299 -10Q273 -10 273 -12L266 -48Q260 -83 252 -125T241 -179Q236 -203 215 -212Q204 -218 190 -218Q159 -215 159 -185Q159 -175 214 -2L209 0Q204 2 195 5T173 14T147 28T120 46T94 71T71 103T56 142T50 190Q50 238 76 311T149 431H162Q183 431 183 423Q183 417 175 409Q134 361 114 300T92 210ZM574 278Q574 320 550 344T486 369Q437 369 394 329T323 218Q309 184 295 109L286 64Q304 62 306 62Q423 62 498 131T574 278Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"chi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\chi\",\n                \"snippet\": \"\\\\chi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.455ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 626.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CHI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C7\\\" d=\\\"M576 -125Q576 -147 547 -175T487 -204H476Q394 -204 363 -157Q334 -114 293 26L284 59Q283 58 248 19T170 -66T92 -151T53 -191Q49 -194 43 -194Q36 -194 31 -189T25 -177T38 -154T151 -30L272 102L265 131Q189 405 135 405Q104 405 87 358Q86 351 68 351Q48 351 48 361Q48 369 56 386T89 423T148 442Q224 442 258 400Q276 375 297 320T330 222L341 180Q344 180 455 303T573 429Q579 431 582 431Q600 431 600 414Q600 407 587 392T477 270Q356 138 353 134L362 102Q392 -10 428 -89T490 -168Q504 -168 517 -156T536 -126Q539 -116 543 -115T557 -114T571 -115Q576 -118 576 -125Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"psi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\psi\",\n                \"snippet\": \"\\\\psi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.513ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 651.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PSI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C8\\\" d=\\\"M161 441Q202 441 226 417T250 358Q250 338 218 252T187 127Q190 85 214 61Q235 43 257 37Q275 29 288 29H289L371 360Q455 691 456 692Q459 694 472 694Q492 694 492 687Q492 678 411 356Q329 28 329 27T335 26Q421 26 498 114T576 278Q576 302 568 319T550 343T532 361T524 384Q524 405 541 424T583 443Q602 443 618 425T634 366Q634 337 623 288T605 220Q573 125 492 57T329 -11H319L296 -104Q272 -198 272 -199Q270 -205 252 -205H239Q233 -199 233 -197Q233 -192 256 -102T279 -9Q272 -8 265 -8Q106 14 106 139Q106 174 139 264T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Q21 299 34 333T82 404T161 441Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"omega\",\n                \"keywords\": \"greek asymptotic big o dominates\",\n                \"source\": \"\\\\omega\",\n                \"snippet\": \"\\\\omega\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.446ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 622.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OMEGA. Keywords: greek asymptotic big o dominates</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3C9\\\" d=\\\"M495 384Q495 406 514 424T555 443Q574 443 589 425T604 364Q604 334 592 278T555 155T483 38T377 -11Q297 -11 267 66Q266 68 260 61Q201 -11 125 -11Q15 -11 15 139Q15 230 56 325T123 434Q135 441 147 436Q160 429 160 418Q160 406 140 379T94 306T62 208Q61 202 61 187Q61 124 85 100T143 76Q201 76 245 129L253 137V156Q258 297 317 297Q348 297 348 261Q348 243 338 213T318 158L308 135Q309 133 310 129T318 115T334 97T358 83T393 76Q456 76 501 148T546 274Q546 305 533 325T508 357T495 384Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3C9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Alpha\",\n                \"keywords\": \"greek\",\n                \"source\": \"A\",\n                \"snippet\": \"A\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.743ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 750.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ALPHA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-41\\\" d=\\\"M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Beta\",\n                \"keywords\": \"greek\",\n                \"source\": \"B\",\n                \"snippet\": \"B\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.764ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 759.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-42\\\" d=\\\"M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Gamma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Gamma\",\n                \"snippet\": \"\\\\Gamma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.453ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 625.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GAMMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-393\\\" d=\\\"M128 619Q121 626 117 628T101 631T58 634H25V680H554V676Q556 670 568 560T582 444V440H542V444Q542 445 538 478T523 545T492 598Q454 634 349 634H334Q264 634 249 633T233 621Q232 618 232 339L233 61Q240 54 245 52T270 48T333 46H360V0H348Q324 3 182 3Q51 3 36 0H25V46H58Q100 47 109 49T128 61V619Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-393\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varGamma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varGamma\",\n                \"snippet\": \"\\\\varGamma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.676ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.171ex;\\\" viewBox=\\\"0 -791.3 721.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARGAMMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-393\\\" d=\\\"M49 1Q31 1 31 10Q31 12 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 661Q197 674 203 680H714Q721 676 721 669Q721 664 708 557T694 447Q692 440 674 440H662Q655 445 655 454Q655 455 658 480T661 534Q661 572 652 592Q638 619 603 626T501 634H471Q398 633 393 630Q389 628 386 622Q385 619 315 341T245 60Q245 46 333 46H345Q366 46 366 35Q366 33 363 21T358 6Q356 1 339 1Q334 1 292 1T187 2Q122 2 88 2T49 1Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-393\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Delta\",\n                \"keywords\": \"greek laplace operator\",\n                \"source\": \"\\\\Delta\",\n                \"snippet\": \"\\\\Delta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 833.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DELTA. Keywords: greek laplace operator</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-394\\\" d=\\\"M51 0Q46 4 46 7Q46 9 215 357T388 709Q391 716 416 716Q439 716 444 709Q447 705 616 357T786 7Q786 4 781 0H51ZM507 344L384 596L137 92L383 91H630Q630 93 507 344Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-394\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varDelta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varDelta\",\n                \"snippet\": \"\\\\varDelta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.901ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 818.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARDELTA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINI-394\\\" d=\\\"M409 0H145Q117 0 103 0T81 1T72 3T70 6Q70 9 310 354T557 707Q559 711 565 713Q570 716 587 716Q608 716 613 710Q616 704 683 358Q752 9 750 6Q750 2 747 2Q745 0 409 0ZM581 342L531 597Q530 597 352 342T174 85T403 84T632 86Q632 87 581 342Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINI-394\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Epsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"E\",\n                \"snippet\": \"E\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.776ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 764.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-45\\\" d=\\\"M492 213Q472 213 472 226Q472 230 477 250T482 285Q482 316 461 323T364 330H312Q311 328 277 192T243 52Q243 48 254 48T334 46Q428 46 458 48T518 61Q567 77 599 117T670 248Q680 270 683 272Q690 274 698 274Q718 274 718 261Q613 7 608 2Q605 0 322 0H133Q31 0 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 659Q197 676 203 680H757Q764 676 764 669Q764 664 751 557T737 447Q735 440 717 440H705Q698 445 698 453L701 476Q704 500 704 528Q704 558 697 578T678 609T643 625T596 632T532 634H485Q397 633 392 631Q388 629 386 622Q385 619 355 499T324 377Q347 376 372 376H398Q464 376 489 391T534 472Q538 488 540 490T557 493Q562 493 565 493T570 492T572 491T574 487T577 483L544 351Q511 218 508 216Q505 213 492 213Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Zeta\",\n                \"keywords\": \"greek\",\n                \"source\": \"Z\",\n                \"snippet\": \"Z\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.68ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 723.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ZETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-5A\\\" d=\\\"M58 8Q58 23 64 35Q64 36 329 334T596 635L586 637Q575 637 512 637H500H476Q442 637 420 635T365 624T311 598T266 548T228 469Q227 466 226 463T224 458T223 453T222 450L221 448Q218 443 202 443Q185 443 182 453L214 561Q228 606 241 651Q249 679 253 681Q256 683 487 683H718Q723 678 723 675Q723 673 717 649Q189 54 188 52L185 49H274Q369 50 377 51Q452 60 500 100T579 247Q587 272 590 277T603 282H607Q628 282 628 271Q547 5 541 2Q538 0 300 0H124Q58 0 58 8Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Eta\",\n                \"keywords\": \"greek\",\n                \"source\": \"H\",\n                \"snippet\": \"H\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.064ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 888.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-48\\\" d=\\\"M228 637Q194 637 192 641Q191 643 191 649Q191 673 202 682Q204 683 219 683Q260 681 355 681Q389 681 418 681T463 682T483 682Q499 682 499 672Q499 670 497 658Q492 641 487 638H485Q483 638 480 638T473 638T464 637T455 637Q416 636 405 634T387 623Q384 619 355 500Q348 474 340 442T328 395L324 380Q324 378 469 378H614L615 381Q615 384 646 504Q674 619 674 627T617 637Q594 637 587 639T580 648Q580 650 582 660Q586 677 588 679T604 682Q609 682 646 681T740 680Q802 680 835 681T871 682Q888 682 888 672Q888 645 876 638H874Q872 638 869 638T862 638T853 637T844 637Q805 636 794 634T776 623Q773 618 704 340T634 58Q634 51 638 51Q646 48 692 46H723Q729 38 729 37T726 19Q722 6 716 0H701Q664 2 567 2Q533 2 504 2T458 2T437 1Q420 1 420 10Q420 15 423 24Q428 43 433 45Q437 46 448 46H454Q481 46 514 49Q520 50 522 50T528 55T534 64T540 82T547 110T558 153Q565 181 569 198Q602 330 602 331T457 332H312L279 197Q245 63 245 58Q245 51 253 49T303 46H334Q340 38 340 37T337 19Q333 6 327 0H312Q275 2 178 2Q144 2 115 2T69 2T48 1Q31 1 31 10Q31 12 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Q285 635 228 637Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Theta\",\n                \"keywords\": \"greek asymptotic big o bounded above and below\",\n                \"source\": \"\\\\Theta\",\n                \"snippet\": \"\\\\Theta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">THETA. Keywords: greek asymptotic big o bounded above and below</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-398\\\" d=\\\"M56 340Q56 423 86 494T164 610T270 680T388 705Q521 705 621 601T722 341Q722 260 693 191T617 75T510 4T388 -22T267 3T160 74T85 189T56 340ZM610 339Q610 428 590 495T535 598T463 651T384 668Q332 668 289 638T221 566Q168 485 168 339Q168 274 176 235Q189 158 228 105T324 28Q356 16 388 16Q415 16 442 24T501 54T555 111T594 205T610 339ZM223 263V422H263V388H514V422H554V263H514V297H263V263H223Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-398\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varTheta\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varTheta\",\n                \"snippet\": \"\\\\varTheta\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.773ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 763.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARTHETA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-398\\\" d=\\\"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM640 466Q640 523 625 565T583 628T532 658T479 668Q370 668 273 559T151 255Q150 245 150 213Q150 156 165 116T207 55T259 26T313 17Q385 17 451 63T561 184Q590 234 615 312T640 466ZM510 276Q510 278 512 288L515 298Q515 299 384 299H253L250 285Q246 271 244 268T231 265H227Q216 265 214 266T207 274Q207 278 223 345T244 416Q247 419 260 419H263Q280 419 280 408Q280 406 278 396L275 386Q275 385 406 385H537L540 399Q544 413 546 416T559 419H563Q574 419 576 418T583 410Q583 403 566 339Q549 271 544 267Q542 265 538 265H530H527Q510 265 510 276Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-398\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Iota\",\n                \"keywords\": \"greek\",\n                \"source\": \"I\",\n                \"snippet\": \"I\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.172ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 504.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IOTA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-49\\\" d=\\\"M43 1Q26 1 26 10Q26 12 29 24Q34 43 39 45Q42 46 54 46H60Q120 46 136 53Q137 53 138 54Q143 56 149 77T198 273Q210 318 216 344Q286 624 286 626Q284 630 284 631Q274 637 213 637H193Q184 643 189 662Q193 677 195 680T209 683H213Q285 681 359 681Q481 681 487 683H497Q504 676 504 672T501 655T494 639Q491 637 471 637Q440 637 407 634Q393 631 388 623Q381 609 337 432Q326 385 315 341Q245 65 245 59Q245 52 255 50T307 46H339Q345 38 345 37T342 19Q338 6 332 0H316Q279 2 179 2Q143 2 113 2T65 2T43 1Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Kappa\",\n                \"keywords\": \"greek\",\n                \"source\": \"K\",\n                \"snippet\": \"K\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 889.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">KAPPA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-4B\\\" d=\\\"M285 628Q285 635 228 637Q205 637 198 638T191 647Q191 649 193 661Q199 681 203 682Q205 683 214 683H219Q260 681 355 681Q389 681 418 681T463 682T483 682Q500 682 500 674Q500 669 497 660Q496 658 496 654T495 648T493 644T490 641T486 639T479 638T470 637T456 637Q416 636 405 634T387 623L306 305Q307 305 490 449T678 597Q692 611 692 620Q692 635 667 637Q651 637 651 648Q651 650 654 662T659 677Q662 682 676 682Q680 682 711 681T791 680Q814 680 839 681T869 682Q889 682 889 672Q889 650 881 642Q878 637 862 637Q787 632 726 586Q710 576 656 534T556 455L509 418L518 396Q527 374 546 329T581 244Q656 67 661 61Q663 59 666 57Q680 47 717 46H738Q744 38 744 37T741 19Q737 6 731 0H720Q680 3 625 3Q503 3 488 0H478Q472 6 472 9T474 27Q478 40 480 43T491 46H494Q544 46 544 71Q544 75 517 141T485 216L427 354L359 301L291 248L268 155Q245 63 245 58Q245 51 253 49T303 46H334Q340 37 340 35Q340 19 333 5Q328 0 317 0Q314 0 280 1T180 2Q118 2 85 2T49 1Q31 1 31 11Q31 13 34 25Q38 41 42 43T65 46Q92 46 125 49Q139 52 144 61Q147 65 216 339T285 628Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Lambda\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Lambda\",\n                \"snippet\": \"\\\\Lambda\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.613ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 694.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LAMBDA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-39B\\\" d=\\\"M320 708Q326 716 340 716H348H355Q367 716 372 708Q374 706 423 547T523 226T575 62Q581 52 591 50T634 46H661V0H653Q644 3 532 3Q411 3 390 0H379V46H392Q464 46 464 65Q463 70 390 305T316 539L246 316Q177 95 177 84Q177 72 198 59T248 46H253V0H245Q230 3 130 3Q47 3 38 0H32V46H45Q112 51 127 91Q128 92 224 399T320 708Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-39B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Lambda\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varLambda\",\n                \"snippet\": \"\\\\varLambda\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.613ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 694.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LAMBDA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-39B\\\" d=\\\"M135 2Q114 2 90 2T60 1Q35 1 35 11Q35 28 42 40Q45 46 55 46Q119 46 151 94Q153 97 325 402T498 709Q505 716 526 716Q543 716 549 710Q550 709 560 548T580 224T591 57Q594 52 595 52Q603 47 638 46H663Q670 39 670 35Q669 12 657 0H644Q613 2 530 2Q497 2 469 2T424 2T405 1Q388 1 388 10Q388 15 391 24Q392 27 393 32T395 38T397 41T401 44T406 45T415 46Q473 46 487 64L472 306Q468 365 465 426T459 518L457 550Q456 550 328 322T198 88Q196 80 196 77Q196 49 243 46Q261 46 261 35Q261 34 259 22Q256 7 254 4T240 0Q237 0 211 1T135 2Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-39B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Mu\",\n                \"keywords\": \"greek\",\n                \"source\": \"M\",\n                \"snippet\": \"M\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.442ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1051.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-4D\\\" d=\\\"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Nu\",\n                \"keywords\": \"greek\",\n                \"source\": \"N\",\n                \"snippet\": \"N\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.064ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 888.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-4E\\\" d=\\\"M234 637Q231 637 226 637Q201 637 196 638T191 649Q191 676 202 682Q204 683 299 683Q376 683 387 683T401 677Q612 181 616 168L670 381Q723 592 723 606Q723 633 659 637Q635 637 635 648Q635 650 637 660Q641 676 643 679T653 683Q656 683 684 682T767 680Q817 680 843 681T873 682Q888 682 888 672Q888 650 880 642Q878 637 858 637Q787 633 769 597L620 7Q618 0 599 0Q585 0 582 2Q579 5 453 305L326 604L261 344Q196 88 196 79Q201 46 268 46H278Q284 41 284 38T282 19Q278 6 272 0H259Q228 2 151 2Q123 2 100 2T63 2T46 1Q31 1 31 10Q31 14 34 26T39 40Q41 46 62 46Q130 49 150 85Q154 91 221 362L289 634Q287 635 234 637Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Xi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Xi\",\n                \"snippet\": \"\\\\Xi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">XI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-39E\\\" d=\\\"M47 509L55 676Q55 677 333 677T611 676L619 509Q619 508 599 508T579 510Q579 529 575 557T564 589Q550 594 333 594T102 589Q95 586 91 558T87 510Q87 508 67 508T47 509ZM139 260V445H179V394H487V445H527V260H487V311H179V260H139ZM50 0L42 180H62Q82 180 82 178Q82 133 89 105Q92 93 95 90T108 86Q137 83 333 83Q530 83 558 86Q568 87 571 90T577 105Q584 133 584 178Q584 180 604 180H624L616 0H50Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-39E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Xi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varXi\",\n                \"snippet\": \"\\\\varXi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.806ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 777.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">XI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-39E\\\" d=\\\"M222 668Q222 670 229 677H654Q677 677 705 677T740 678Q764 678 770 676T777 667Q777 662 764 594Q761 579 757 559T751 528L749 519Q747 512 729 512H717Q710 519 710 525Q712 532 715 559T719 591Q718 595 711 595Q682 598 486 598Q252 598 246 592Q239 587 228 552L216 517Q214 512 197 512H185Q178 517 178 522Q178 524 198 591T222 668ZM227 262Q218 262 215 262T209 266L207 270L227 356Q247 435 250 439Q253 443 260 443H267H280Q287 438 287 433Q287 430 285 420T280 402L278 393Q278 392 431 392H585L590 415Q595 436 598 439T612 443H628Q635 438 635 433Q635 431 615 351T594 268Q592 262 575 262H572Q556 262 556 272Q556 280 560 293L565 313H258L252 292Q248 271 245 267T230 262H227ZM60 0Q53 4 53 11Q53 14 68 89T84 169Q88 176 98 176H104H116Q123 169 123 163Q122 160 117 127T112 88Q112 80 243 80H351H454Q554 80 574 81T597 88V89Q603 100 610 121T622 157T630 174Q633 176 646 176H658Q665 171 665 166Q665 164 643 89T618 7Q616 2 607 1T548 0H335H60Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-39E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"O\",\n                \"keywords\": \"greek\",\n                \"source\": \"O\",\n                \"snippet\": \"O\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.773ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 763.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">O. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-4F\\\" d=\\\"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Pi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Pi\",\n                \"snippet\": \"\\\\Pi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.743ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 750.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A0\\\" d=\\\"M128 619Q121 626 117 628T101 631T58 634H25V680H724V634H691Q651 633 640 631T622 619V61Q628 51 639 49T691 46H724V0H713Q692 3 569 3Q434 3 425 0H414V46H447Q489 47 498 49T517 61V634H232V348L233 61Q239 51 250 49T302 46H335V0H324Q303 3 180 3Q45 3 36 0H25V46H58Q100 47 109 49T128 61V619Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varPi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varPi\",\n                \"snippet\": \"\\\\varPi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.061ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 887.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A0\\\" d=\\\"M48 1Q31 1 31 10Q31 12 34 24Q39 43 44 45Q48 46 59 46H65Q92 46 125 49Q139 52 144 61Q146 66 215 342T285 622Q285 629 281 629Q273 632 228 634H197Q191 640 191 642T193 661Q197 674 203 680H541Q621 680 709 680T812 681Q841 681 855 681T877 679T886 676T887 670Q887 663 885 656Q880 637 875 635Q871 634 860 634H854Q827 634 794 631Q780 628 775 619Q773 614 704 338T634 58Q634 51 638 51Q646 48 692 46H723Q729 38 729 37T726 19Q722 6 716 0H701Q664 2 567 2Q533 2 504 2T458 2T437 1Q420 1 420 10Q420 15 423 24Q428 43 433 45Q437 46 448 46H454Q481 46 514 49Q528 52 533 61Q536 67 572 209T642 491T678 632Q678 634 533 634H388Q387 631 316 347T245 59Q245 55 246 54T253 50T270 48T303 46H334Q340 38 340 37T337 19Q333 6 327 0H312Q275 2 178 2Q144 2 115 2T69 2T48 1Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Rho\",\n                \"keywords\": \"greek\",\n                \"source\": \"P\",\n                \"snippet\": \"P\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.745ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 751.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RHO. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-50\\\" d=\\\"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sigma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Sigma\",\n                \"snippet\": \"\\\\Sigma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SIGMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A3\\\" d=\\\"M666 247Q664 244 652 126T638 4V0H351Q131 0 95 0T57 5V6Q54 12 57 17L73 36Q89 54 121 90T182 159L305 299L56 644L55 658Q55 677 60 681Q63 683 351 683H638V679Q640 674 652 564T666 447V443H626V447Q618 505 604 543T559 605Q529 626 478 631T333 637H294H189L293 494Q314 465 345 422Q400 346 400 340Q400 338 399 337L154 57Q407 57 428 58Q476 60 508 68T551 83T575 103Q595 125 608 162T624 225L626 251H666V247Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varSigma\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varSigma\",\n                \"snippet\": \"\\\\varSigma\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.873ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 806.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSIGMA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A3\\\" d=\\\"M65 0Q58 4 58 11Q58 16 114 67Q173 119 222 164L377 304Q378 305 340 386T261 552T218 644Q217 648 219 660Q224 678 228 681Q231 683 515 683H799Q804 678 806 674Q806 667 793 559T778 448Q774 443 759 443Q747 443 743 445T739 456Q739 458 741 477T743 516Q743 552 734 574T710 609T663 627T596 635T502 637Q480 637 469 637H339Q344 627 411 486T478 341V339Q477 337 477 336L457 318Q437 300 398 265T322 196L168 57Q167 56 188 56T258 56H359Q426 56 463 58T537 69T596 97T639 146T680 225Q686 243 689 246T702 250H705Q726 250 726 239Q726 238 683 123T639 5Q637 1 610 1Q577 0 348 0H65Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Tau\",\n                \"keywords\": \"greek\",\n                \"source\": \"T\",\n                \"snippet\": \"T\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.636ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 704.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TAU. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-54\\\" d=\\\"M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Upsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Upsilon\",\n                \"snippet\": \"\\\\Upsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A5\\\" d=\\\"M55 551Q55 604 91 654T194 705Q240 705 277 681T334 624T367 556T385 498L389 474L392 488Q394 501 400 521T414 566T438 615T473 659T521 692T584 705Q620 705 648 689T691 647T714 597T722 551Q722 540 719 538T699 536Q680 536 677 541Q677 542 677 544T676 548Q676 576 650 596T588 616H582Q538 616 505 582Q466 543 454 477T441 318Q441 301 441 269T442 222V61Q448 55 452 53T478 48T542 46H569V0H557Q533 3 389 3T221 0H209V46H236Q256 46 270 46T295 47T311 48T322 51T328 54T332 57T337 61V209Q337 383 333 415Q313 616 189 616Q154 616 128 597T101 548Q101 540 97 538T78 536Q63 536 59 538T55 551Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varUpsilon\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varUpsilon\",\n                \"snippet\": \"\\\\varUpsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.627ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 700.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARUPSILON. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A5\\\" d=\\\"M45 535Q34 535 31 536T28 544Q28 554 39 578T70 631T126 683T206 705Q230 705 251 698T295 671T330 612T344 514Q344 477 342 473V472Q343 472 347 480T361 509T380 547Q471 704 596 704Q615 704 625 702Q659 692 679 663T700 595Q700 565 696 552T687 537T670 535Q656 535 653 536T649 543Q649 544 649 550T650 562Q650 589 629 605T575 621Q502 621 448 547T365 361Q290 70 290 60Q290 46 379 46H404Q410 40 410 39T408 19Q404 6 398 0H381Q340 2 225 2Q184 2 149 2T94 2T69 1Q61 1 58 1T53 4T51 10Q51 11 53 23Q54 25 55 30T56 36T58 40T60 43T62 44T67 46T73 46T82 46H89Q144 46 163 49T190 62L198 93Q206 124 217 169T241 262T262 350T274 404Q281 445 281 486V494Q281 621 185 621Q147 621 116 601T74 550Q71 539 66 537T45 535Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Phi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Phi\",\n                \"snippet\": \"\\\\Phi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PHI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A6\\\" d=\\\"M312 622Q310 623 307 625T303 629T297 631T286 634T270 635T246 636T211 637H184V683H196Q220 680 361 680T526 683H538V637H511Q468 637 447 635T422 631T411 622V533L425 531Q525 519 595 466T665 342Q665 301 642 267T583 209T506 172T425 152L411 150V61Q417 55 421 53T447 48T511 46H538V0H526Q502 3 361 3T196 0H184V46H211Q231 46 245 46T270 47T286 48T297 51T303 54T307 57T312 61V150H310Q309 151 289 153T232 166T160 195Q149 201 136 210T103 238T69 284T56 342Q56 414 128 467T294 530Q309 532 310 533H312V622ZM170 342Q170 207 307 188H312V495H309Q301 495 282 491T231 469T186 423Q170 389 170 342ZM415 188Q487 199 519 236T551 342Q551 384 539 414T507 459T470 481T434 491T415 495H410V188H415Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varPhi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varPhi\",\n                \"snippet\": \"\\\\varPhi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPHI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A6\\\" d=\\\"M356 624Q356 637 267 637H243Q237 642 237 645T239 664Q243 677 249 683H264Q342 681 429 681Q565 681 571 683H583Q589 677 589 674T587 656Q582 641 578 637H540Q516 637 504 637T479 633T463 630T454 623T448 613T443 597T438 576Q436 566 434 556T430 539L428 533Q442 533 472 526T543 502T613 451T642 373Q642 301 567 241T386 158L336 150Q332 150 331 146Q310 66 310 60Q310 46 399 46H424Q430 40 430 39T428 19Q424 6 418 0H401Q360 2 247 2Q207 2 173 2T119 2T95 1Q87 1 84 1T79 4T77 10Q77 11 79 23Q80 25 81 30T82 36T84 40T86 43T88 44T93 46T99 46T108 46H115Q170 46 189 49T216 62Q220 74 228 107L239 150L223 152Q139 164 82 205T24 311Q24 396 125 462Q207 517 335 533L346 578Q356 619 356 624ZM130 291Q130 203 241 188H249Q249 190 287 342L325 495H324Q313 495 291 491T229 466T168 414Q130 357 130 291ZM536 393Q536 440 507 463T418 496L341 187L351 189Q443 201 487 255Q536 314 536 393Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Chi\",\n                \"keywords\": \"greek\",\n                \"source\": \"X\",\n                \"snippet\": \"X\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.98ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 852.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CHI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-58\\\" d=\\\"M42 0H40Q26 0 26 11Q26 15 29 27Q33 41 36 43T55 46Q141 49 190 98Q200 108 306 224T411 342Q302 620 297 625Q288 636 234 637H206Q200 643 200 645T202 664Q206 677 212 683H226Q260 681 347 681Q380 681 408 681T453 682T473 682Q490 682 490 671Q490 670 488 658Q484 643 481 640T465 637Q434 634 411 620L488 426L541 485Q646 598 646 610Q646 628 622 635Q617 635 609 637Q594 637 594 648Q594 650 596 664Q600 677 606 683H618Q619 683 643 683T697 681T738 680Q828 680 837 683H845Q852 676 852 672Q850 647 840 637H824Q790 636 763 628T722 611T698 593L687 584Q687 585 592 480L505 384Q505 383 536 304T601 142T638 56Q648 47 699 46Q734 46 734 37Q734 35 732 23Q728 7 725 4T711 1Q708 1 678 1T589 2Q528 2 496 2T461 1Q444 1 444 10Q444 11 446 25Q448 35 450 39T455 44T464 46T480 47T506 54Q523 62 523 64Q522 64 476 181L429 299Q241 95 236 84Q232 76 232 72Q232 53 261 47Q262 47 267 47T273 46Q276 46 277 46T280 45T283 42T284 35Q284 26 282 19Q279 6 276 4T261 1Q258 1 243 1T201 2T142 2Q64 2 42 0Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Psi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\Psi\",\n                \"snippet\": \"\\\\Psi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PSI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A8\\\" d=\\\"M340 622Q338 623 335 625T331 629T325 631T314 634T298 635T274 636T239 637H212V683H224Q248 680 389 680T554 683H566V637H539Q479 637 464 635T439 622L438 407Q438 192 439 192Q443 193 449 195T474 207T507 232T536 276T557 344Q560 365 562 417T573 493Q587 536 620 544Q627 546 671 546H715L722 540V515Q714 509 708 509Q680 505 671 476T658 392T644 307Q599 177 451 153L438 151V106L439 61Q446 54 451 52T476 48T539 46H566V0H554Q530 3 389 3T224 0H212V46H239Q259 46 273 46T298 47T314 48T325 51T331 54T335 57T340 61V151Q126 178 117 406Q115 503 69 509Q55 509 55 526Q55 541 59 543T86 546H107H120Q150 546 161 543T184 528Q198 514 204 493Q212 472 213 420T226 316T272 230Q287 216 303 207T330 194L339 192Q340 192 340 407V622Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varPsi\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varPsi\",\n                \"snippet\": \"\\\\varPsi\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.608ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 692.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPSI. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A8\\\" d=\\\"M216 151Q48 174 48 329Q48 361 56 403T65 458Q65 482 58 494T43 507T28 510T21 520Q21 528 23 534T29 544L32 546H72H94Q110 546 119 544T139 536T154 514T159 476V465Q159 445 149 399T138 314Q142 229 197 201Q223 187 226 190L233 218Q240 246 253 300T280 407Q333 619 333 625Q333 637 244 637H220Q214 642 214 645T216 664Q220 677 226 683H241Q321 681 405 681Q543 681 549 683H560Q566 677 566 674T564 656Q559 641 555 637H517Q448 636 436 628Q429 623 423 600T373 404L320 192Q370 201 419 248Q451 281 469 317T500 400T518 457Q529 486 542 505T569 532T594 543T621 546H644H669Q692 546 692 536Q691 509 676 509Q623 509 593 399Q587 377 579 355T552 301T509 244T446 195T359 159Q324 151 314 151Q311 151 310 150T298 106T287 60Q287 46 376 46H401Q407 40 407 39T405 19Q401 6 395 0H378Q337 2 224 2Q184 2 150 2T96 2T72 1Q64 1 61 1T56 4T54 10Q54 11 56 23Q57 25 58 30T59 36T61 40T63 43T65 44T70 46T76 46T85 46H92Q147 46 166 49T193 62L204 106Q216 149 216 151Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Omega\",\n                \"keywords\": \"greek asymptotic big o bounded below\",\n                \"source\": \"\\\\Omega\",\n                \"snippet\": \"\\\\Omega\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OMEGA. Keywords: greek asymptotic big o bounded below</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3A9\\\" d=\\\"M55 454Q55 503 75 546T127 617T197 665T272 695T337 704H352Q396 704 404 703Q527 687 596 615T666 454Q666 392 635 330T559 200T499 83V80H543Q589 81 600 83T617 93Q622 102 629 135T636 172L637 177H677V175L660 89Q645 3 644 2V0H552H488Q461 0 456 3T451 20Q451 89 499 235T548 455Q548 512 530 555T483 622T424 656T361 668Q332 668 303 658T243 626T193 560T174 456Q174 380 222 233T270 20Q270 7 263 0H77V2Q76 3 61 89L44 175V177H84L85 172Q85 171 88 155T96 119T104 93Q109 86 120 84T178 80H222V83Q206 132 162 199T87 329T55 454Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-3A9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varOmega\",\n                \"keywords\": \"greek\",\n                \"source\": \"\\\\varOmega\",\n                \"snippet\": \"\\\\varOmega\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.827ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 786.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VAROMEGA. Keywords: greek</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-3A9\\\" d=\\\"M125 84Q127 78 194 76H243V78Q243 122 208 215T165 350Q164 359 162 389Q162 522 272 610Q328 656 396 680T525 704Q628 704 698 661Q734 637 755 601T781 544T786 504Q786 439 747 374T635 226T537 109Q518 81 518 77Q537 76 557 76Q608 76 620 78T640 92Q646 100 656 119T673 155T683 172Q690 173 698 173Q718 173 718 162Q718 161 681 82T642 2Q639 0 550 0H461Q455 5 455 9T458 28Q472 78 510 149T584 276T648 402T677 525Q677 594 636 631T530 668Q476 668 423 641T335 568Q284 499 271 400Q270 388 270 348Q270 298 277 228T285 115Q285 82 280 49T271 6Q269 1 258 1T175 0H87Q83 3 80 7V18Q80 22 82 98Q84 156 85 163T91 172Q94 173 104 173T119 172Q124 169 124 126Q125 104 125 84Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-3A9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"aleph\",\n                \"keywords\": \"hebrew infinite cardinality\",\n                \"source\": \"\\\\aleph\",\n                \"snippet\": \"\\\\aleph\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ALEPH. Keywords: hebrew infinite cardinality</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2135\\\" d=\\\"M55 613Q55 643 61 663T74 688T85 694Q94 694 94 681Q98 632 134 588L412 285Q416 311 430 397T447 509V519L438 526Q407 554 398 571T388 617T394 664T407 688T418 694Q425 694 427 684Q429 675 454 635T488 586Q490 584 496 579T513 563T537 540Q555 516 555 487Q555 460 549 441T537 416T528 409Q519 409 517 415T513 435T503 463Q492 481 490 481Q454 264 454 246Q454 237 479 212T529 152T555 79Q555 32 538 9Q531 1 524 1Q516 1 516 13Q512 62 476 106Q468 115 337 258T195 412L193 406Q191 401 189 394T183 377T176 352T171 322T167 284T165 240Q165 224 166 220Q171 199 211 152T252 70Q252 45 235 29T203 8T175 1Q170 0 115 0H79Q60 0 58 3T55 20Q55 31 58 34Q60 37 76 37Q112 39 126 46T140 70Q140 96 112 148T83 236Q83 281 102 334T140 419T159 452Q55 556 55 613Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2135\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"beth\",\n                \"keywords\": \"hebrew\",\n                \"source\": \"\\\\beth\",\n                \"snippet\": \"\\\\beth\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.647ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.05ex;\\\" viewBox=\\\"-21.5 -863.1 709 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BETH. Keywords: hebrew</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2136\\\" d=\\\"M56 706V726Q56 763 76 763Q83 763 87 759T98 741Q108 726 116 721L127 717L340 715Q547 712 564 709Q575 705 587 692Q599 680 605 663L609 650V137H676Q687 124 687 115Q687 110 678 100T622 43L558 -21H-9Q-22 -6 -22 -1T-13 14T42 72L107 137H569V339Q569 541 567 546Q558 555 554 557L545 563H329Q118 566 101 569Q90 573 78 586Q54 610 54 661Q54 670 56 706Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2136\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"daleth\",\n                \"keywords\": \"hebrew\",\n                \"source\": \"\\\\daleth\",\n                \"snippet\": \"\\\\daleth\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 667.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DALETH. Keywords: hebrew</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2138\\\" d=\\\"M62 757Q69 764 75 764Q87 764 97 741Q102 731 105 728T117 721L129 715H349Q569 715 580 710Q618 701 635 670Q640 661 640 639Q640 609 622 590Q617 583 604 575T580 566H573V553Q575 547 576 531T582 469T600 353Q624 205 624 104Q624 46 617 17T591 -32Q581 -43 573 -43Q550 -43 540 44Q535 73 533 319V564H322Q117 566 100 570Q90 573 77 586Q54 609 54 663Q54 689 55 706Q55 738 56 745T62 757Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2138\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gimel\",\n                \"keywords\": \"hebrew\",\n                \"source\": \"\\\\gimel\",\n                \"snippet\": \"\\\\gimel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.082ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.05ex;\\\" viewBox=\\\"-21.5 -863.1 466 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GIMEL. Keywords: hebrew</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2137\\\" d=\\\"M56 750Q68 764 76 764Q88 764 97 743T125 717Q131 715 240 715T358 713Q421 691 421 640Q421 608 399 588T358 566Q353 566 352 565T351 557L356 526Q356 488 379 346T402 97Q400 21 385 -12Q366 -43 351 -43Q335 -43 329 -10Q316 40 316 64Q316 67 315 67Q313 67 269 26L222 -21H-9Q-22 -7 -22 -1Q-22 4 -14 14T42 73L107 137H311V564H211H164Q115 564 93 573T60 615Q56 630 56 690V750Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2137\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Delimiters\": [\n            {\n                \"name\": \"vertical bar\",\n                \"source\": \"|\",\n                \"snippet\": \"|\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 278.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VERTICAL BAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7C\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vertical bar\",\n                \"keywords\": \"cardinality restriction\",\n                \"source\": \"\\\\vert\",\n                \"snippet\": \"\\\\vert\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 278.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VERTICAL BAR. Keywords: cardinality restriction</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7C\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"double vertical bar\",\n                \"source\": \"\\\\|\",\n                \"snippet\": \"\\\\|\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOUBLE VERTICAL BAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-2225\\\" d=\\\"M133 736Q138 750 153 750Q164 750 170 739Q172 735 172 250T170 -239Q164 -250 152 -250Q144 -250 138 -244L137 -243Q133 -241 133 -179T132 250Q132 731 133 736ZM329 739Q334 750 346 750Q353 750 361 744L362 743Q366 741 366 679T367 250T367 -178T362 -243L361 -244Q355 -250 347 -250Q335 -250 329 -239Q327 -235 327 250T329 739Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJMAIN-2225\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"double vertical bar\",\n                \"source\": \"\\\\Vert\",\n                \"snippet\": \"\\\\Vert\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOUBLE VERTICAL BAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2225\\\" d=\\\"M133 736Q138 750 153 750Q164 750 170 739Q172 735 172 250T170 -239Q164 -250 152 -250Q144 -250 138 -244L137 -243Q133 -241 133 -179T132 250Q132 731 133 736ZM329 739Q334 750 346 750Q353 750 361 744L362 743Q366 741 366 679T367 250T367 -178T362 -243L361 -244Q355 -250 347 -250Q335 -250 329 -239Q327 -235 327 250T329 739Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2225\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left parenthesis\",\n                \"keywords\": \"interval\",\n                \"source\": \"(\",\n                \"snippet\": \"(\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT PARENTHESIS. Keywords: interval</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-28\\\" d=\\\"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-28\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right parenthesis\",\n                \"keywords\": \"interval\",\n                \"source\": \")\",\n                \"snippet\": \")\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT PARENTHESIS. Keywords: interval</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-29\\\" d=\\\"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-29\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left bracket\",\n                \"keywords\": \"interval\",\n                \"source\": \"[\",\n                \"snippet\": \"[\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 278.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT BRACKET. Keywords: interval</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5B\\\" d=\\\"M118 -250V750H255V710H158V-210H255V-250H118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-5B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right bracket\",\n                \"keywords\": \"interval\",\n                \"source\": \"]\",\n                \"snippet\": \"]\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 278.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT BRACKET. Keywords: interval</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5D\\\" d=\\\"M22 710V750H159V-250H22V-210H119V710H22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-5D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left curly bracket\",\n                \"source\": \"\\\\{\",\n                \"snippet\": \"\\\\{\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT CURLY BRACKET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7B\\\" d=\\\"M434 -231Q434 -244 428 -250H410Q281 -250 230 -184Q225 -177 222 -172T217 -161T213 -148T211 -133T210 -111T209 -84T209 -47T209 0Q209 21 209 53Q208 142 204 153Q203 154 203 155Q189 191 153 211T82 231Q71 231 68 234T65 250T68 266T82 269Q116 269 152 289T203 345Q208 356 208 377T209 529V579Q209 634 215 656T244 698Q270 724 324 740Q361 748 377 749Q379 749 390 749T408 750H428Q434 744 434 732Q434 719 431 716Q429 713 415 713Q362 710 332 689T296 647Q291 634 291 499V417Q291 370 288 353T271 314Q240 271 184 255L170 250L184 245Q202 239 220 230T262 196T290 137Q291 131 291 1Q291 -134 296 -147Q306 -174 339 -192T415 -213Q429 -213 431 -216Q434 -219 434 -231Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right curly bracket\",\n                \"source\": \"\\\\}\",\n                \"snippet\": \"\\\\\\\\}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT CURLY BRACKET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7D\\\" d=\\\"M65 731Q65 745 68 747T88 750Q171 750 216 725T279 670Q288 649 289 635T291 501Q292 362 293 357Q306 312 345 291T417 269Q428 269 431 266T434 250T431 234T417 231Q380 231 345 210T298 157Q293 143 292 121T291 -28V-79Q291 -134 285 -156T256 -198Q202 -250 89 -250Q71 -250 68 -247T65 -230Q65 -224 65 -223T66 -218T69 -214T77 -213Q91 -213 108 -210T146 -200T183 -177T207 -139Q208 -134 209 3L210 139Q223 196 280 230Q315 247 330 250Q305 257 280 270Q225 304 212 352L210 362L209 498Q208 635 207 640Q195 680 154 696T77 713Q68 713 67 716T65 731Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left angle bracket\",\n                \"source\": \"\\\\langle\",\n                \"snippet\": \"\\\\langle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT ANGLE BRACKET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27E8\\\" d=\\\"M333 -232Q332 -239 327 -244T313 -250Q303 -250 296 -240Q293 -233 202 6T110 250T201 494T296 740Q299 745 306 749L309 750Q312 750 313 750Q331 750 333 732Q333 727 243 489Q152 252 152 250T243 11Q333 -227 333 -232Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27E8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right angle bracket\",\n                \"source\": \"\\\\rangle\",\n                \"snippet\": \"\\\\rangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT ANGLE BRACKET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27E9\\\" d=\\\"M55 732Q56 739 61 744T75 750Q85 750 92 740Q95 733 186 494T278 250T187 6T92 -240Q85 -250 75 -250Q67 -250 62 -245T55 -232Q55 -227 145 11Q236 248 236 250T145 489Q55 727 55 732Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27E9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left floor\",\n                \"source\": \"\\\\lfloor\",\n                \"snippet\": \"\\\\lfloor\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 444.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT FLOOR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-230A\\\" d=\\\"M174 734Q174 735 175 737T177 740T180 744T184 747T189 749T196 750Q206 748 214 735V-210H310H373Q401 -210 411 -213T422 -230T411 -247T369 -251Q362 -251 338 -251T298 -250H190Q178 -246 174 -234V734Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-230A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right floor\",\n                \"source\": \"\\\\rfloor\",\n                \"snippet\": \"\\\\rfloor\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 444.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT FLOOR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-230B\\\" d=\\\"M229 734Q229 735 230 737T232 740T235 744T239 747T244 749T251 750Q262 748 269 735V-235Q266 -240 256 -249L147 -250H77Q43 -250 32 -247T21 -230T32 -213T72 -209Q79 -209 99 -209T133 -210H229V734Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-230B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left ceil\",\n                \"source\": \"\\\\lceil\",\n                \"snippet\": \"\\\\lceil\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 444.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT CEIL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2308\\\" d=\\\"M174 734Q178 746 190 750H298H369Q400 750 411 747T422 730T411 713T372 709Q365 709 345 709T310 710H214V-235Q206 -248 196 -250Q192 -250 189 -249T184 -247T180 -244T178 -241T176 -237T174 -234V734Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2308\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right ceil\",\n                \"source\": \"\\\\rceil\",\n                \"snippet\": \"\\\\rceil\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 444.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT CEIL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2309\\\" d=\\\"M21 717T21 730T32 746T75 750H147H256Q266 742 269 735V-235Q262 -248 251 -250Q247 -250 244 -249T239 -247T235 -244T233 -241T231 -237T229 -234V710H133Q119 710 99 710T71 709Q43 709 32 713Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2309\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"forwards slash\",\n                \"source\": \"/\",\n                \"snippet\": \"/\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FORWARDS SLASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2F\\\" d=\\\"M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"backslash\",\n                \"source\": \"\\\\backslash\",\n                \"snippet\": \"\\\\backslash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BACKSLASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2216\\\" d=\\\"M56 731Q56 740 62 745T75 750Q85 750 92 740Q96 733 270 255T444 -231Q444 -239 438 -244T424 -250Q414 -250 407 -240Q404 -236 230 242T56 731Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2216\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Uparrow\",\n                \"source\": \"\\\\Uparrow\",\n                \"snippet\": \"\\\\Uparrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 611.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D1\\\" d=\\\"M228 -179Q227 -180 226 -182T223 -186T221 -189T218 -192T214 -193T208 -194Q196 -194 189 -181L188 125V430L176 419Q122 369 59 338Q46 330 40 330Q38 330 31 337V350Q31 362 33 365T46 374Q60 381 77 390T128 426T190 484T247 567T292 677Q295 688 298 692Q302 694 305 694Q313 694 318 677Q334 619 363 568T420 485T481 427T532 391T564 374Q575 368 577 365T579 350V337Q572 330 570 330Q564 330 551 338Q487 370 435 419L423 430L422 125V-181Q409 -194 401 -194Q397 -194 394 -193T388 -189T385 -184T382 -180V-177V475L373 487Q331 541 305 602Q304 601 300 591T290 571T278 548T260 519T238 488L229 476L228 148V-179Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"uparrow\",\n                \"keywords\": \"function tends to limit approach from below\",\n                \"source\": \"\\\\uparrow\",\n                \"snippet\": \"\\\\uparrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPARROW. Keywords: function tends to limit approach from below</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2191\\\" d=\\\"M27 414Q17 414 17 433Q17 437 17 439T17 444T19 447T20 450T22 452T26 453T30 454T36 456Q80 467 120 494T180 549Q227 607 238 678Q240 694 251 694Q259 694 261 684Q261 677 265 659T284 608T320 549Q340 525 363 507T405 479T440 463T467 455T479 451Q483 447 483 433Q483 413 472 413Q467 413 458 416Q342 448 277 545L270 555V-179Q262 -193 252 -193H250H248Q236 -193 230 -179V555L223 545Q192 499 146 467T70 424T27 414Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2191\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Downarrow\",\n                \"source\": \"\\\\Downarrow\",\n                \"snippet\": \"\\\\Downarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 611.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D3\\\" d=\\\"M401 694Q412 694 422 681V375L423 70L435 81Q487 130 551 162Q564 170 570 170Q572 170 579 163V150Q579 138 577 135T564 126Q541 114 518 99T453 48T374 -46T318 -177Q313 -194 305 -194T293 -178T272 -119T225 -31Q158 70 46 126Q35 132 33 135T31 150V163Q38 170 40 170Q46 170 59 162Q122 131 176 81L188 70V375L189 681Q199 694 208 694Q219 694 228 680V352L229 25L238 12Q279 -42 305 -102Q344 -23 373 13L382 25V678Q387 692 401 694Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"downarrow\",\n                \"keywords\": \"function tends to limit approach from above\",\n                \"source\": \"\\\\downarrow\",\n                \"snippet\": \"\\\\downarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNARROW. Keywords: function tends to limit approach from above</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2193\\\" d=\\\"M473 86Q483 86 483 67Q483 63 483 61T483 56T481 53T480 50T478 48T474 47T470 46T464 44Q428 35 391 14T316 -55T264 -168Q264 -170 263 -173T262 -180T261 -184Q259 -194 251 -194Q242 -194 238 -176T221 -121T180 -49Q169 -34 155 -21T125 2T95 20T67 33T44 42T27 47L21 49Q17 53 17 67Q17 87 28 87Q33 87 42 84Q158 52 223 -45L230 -55V312Q230 391 230 482T229 591Q229 662 231 676T243 693Q244 694 251 694Q264 692 270 679V-55L277 -45Q307 1 353 33T430 76T473 86Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2193\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lower left corner\",\n                \"source\": \"\\\\llcorner\",\n                \"snippet\": \"\\\\llcorner\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -504.3 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOWER LEFT CORNER.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJAMS-2514\\\" d=\\\"M55 172V287Q55 341 58 353T76 366Q88 366 95 351V18H261Q428 18 432 16Q444 9 444 -2Q444 -11 432 -20Q428 -22 250 -22H120Q67 -22 61 -16Q56 -11 56 10T55 172Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJAMS-2514\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lower right corner\",\n                \"source\": \"\\\\lrcorner\",\n                \"snippet\": \"\\\\lrcorner\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -504.3 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOWER RIGHT CORNER.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2518\\\" d=\\\"M404 351Q410 366 424 366Q437 366 440 353T444 288V172V72Q444 8 443 -4T432 -20Q428 -22 250 -22Q71 -22 68 -20Q55 -14 55 -2T68 16Q71 18 238 18H404V351Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2518\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upper left corner\",\n                \"source\": \"\\\\ulcorner\",\n                \"snippet\": \"\\\\ulcorner\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: 0.708ex; margin-bottom: -0.88ex;\\\" viewBox=\\\"0 -791.3 500.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPPER LEFT CORNER.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-250C\\\" d=\\\"M76 306Q62 306 59 319T55 386V500V596Q55 664 57 676T68 692Q71 694 250 694Q428 694 432 692Q444 685 444 674Q444 665 432 656Q428 654 261 654H95V487Q95 355 95 336T90 312Q84 306 76 306Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-250C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upper right corner\",\n                \"source\": \"\\\\urcorner\",\n                \"snippet\": \"\\\\urcorner\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: 0.708ex; margin-bottom: -0.88ex;\\\" viewBox=\\\"0 -791.3 500.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPPER RIGHT CORNER.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2510\\\" d=\\\"M424 306Q418 306 413 310T406 318L404 321V654H238Q71 654 68 656Q55 662 55 674T68 692Q71 694 250 694H379Q432 694 438 688Q443 683 443 662T444 500T444 338T438 312Q432 306 424 306Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2510\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"parenthesis\",\n                \"keywords\": \"sequence vector dot product triple algebraic field extension\",\n                \"source\": \"(abc)\",\n                \"snippet\": \"\\\\left(${1:${TM_SELECTED_TEXT}}\\\\right)\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.044ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2171.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PARENTHESIS. Keywords: sequence vector dot product triple algebraic field extension</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-28\\\" d=\\\"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-29\\\" d=\\\"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-28\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"389\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"919\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1348\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-29\\\" x=\\\"1782\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"brackets\",\n                \"keywords\": \"geometry line segment vector cross product dd equivalence class group commuter of elements polynomial ring\",\n                \"source\": \"[abc]\",\n                \"snippet\": \"\\\\left[${1:${TM_SELECTED_TEXT}}\\\\right]\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.528ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 1949.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BRACKETS. Keywords: geometry line segment vector cross product dd equivalence class group commuter of elements polynomial ring</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5B\\\" d=\\\"M118 -250V750H255V710H158V-210H255V-250H118Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5D\\\" d=\\\"M22 710V750H159V-250H22V-210H119V710H22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-5B\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"808\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1237\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-5D\\\" x=\\\"1671\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curly brackets\",\n                \"source\": \"\\\\{abc\\\\}\",\n                \"snippet\": \"\\\\left\\\\{${1:${TM_SELECTED_TEXT}}\\\\right\\\\\\\\}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.559ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2393.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURLY BRACKETS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7B\\\" d=\\\"M434 -231Q434 -244 428 -250H410Q281 -250 230 -184Q225 -177 222 -172T217 -161T213 -148T211 -133T210 -111T209 -84T209 -47T209 0Q209 21 209 53Q208 142 204 153Q203 154 203 155Q189 191 153 211T82 231Q71 231 68 234T65 250T68 266T82 269Q116 269 152 289T203 345Q208 356 208 377T209 529V579Q209 634 215 656T244 698Q270 724 324 740Q361 748 377 749Q379 749 390 749T408 750H428Q434 744 434 732Q434 719 431 716Q429 713 415 713Q362 710 332 689T296 647Q291 634 291 499V417Q291 370 288 353T271 314Q240 271 184 255L170 250L184 245Q202 239 220 230T262 196T290 137Q291 131 291 1Q291 -134 296 -147Q306 -174 339 -192T415 -213Q429 -213 431 -216Q434 -219 434 -231Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7D\\\" d=\\\"M65 731Q65 745 68 747T88 750Q171 750 216 725T279 670Q288 649 289 635T291 501Q292 362 293 357Q306 312 345 291T417 269Q428 269 431 266T434 250T431 234T417 231Q380 231 345 210T298 157Q293 143 292 121T291 -28V-79Q291 -134 285 -156T256 -198Q202 -250 89 -250Q71 -250 68 -247T65 -230Q65 -224 65 -223T66 -218T69 -214T77 -213Q91 -213 108 -210T146 -200T183 -177T207 -139Q208 -134 209 3L210 139Q223 196 280 230Q315 247 330 250Q305 257 280 270Q225 304 212 352L210 362L209 498Q208 635 207 640Q195 680 154 696T77 713Q68 713 67 716T65 731Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7B\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"1030\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1459\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-7D\\\" x=\\\"1893\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"angle brackets\",\n                \"keywords\": \"vector dot product function inner linear hull subgroup generated by set average\",\n                \"source\": \"\\\\langle abc\\\\rangle\",\n                \"snippet\": \"\\\\left\\\\langle ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rangle\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.044ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2171.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ANGLE BRACKETS. Keywords: vector dot product function inner linear hull subgroup generated by set average</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27E8\\\" d=\\\"M333 -232Q332 -239 327 -244T313 -250Q303 -250 296 -240Q293 -233 202 6T110 250T201 494T296 740Q299 745 306 749L309 750Q312 750 313 750Q331 750 333 732Q333 727 243 489Q152 252 152 250T243 11Q333 -227 333 -232Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27E9\\\" d=\\\"M55 732Q56 739 61 744T75 750Q85 750 92 740Q95 733 186 494T278 250T187 6T92 -240Q85 -250 75 -250Q67 -250 62 -245T55 -232Q55 -227 145 11Q236 248 236 250T145 489Q55 727 55 732Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27E8\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"389\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"919\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1348\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-27E9\\\" x=\\\"1782\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"absolute value\",\n                \"keywords\": \"set cardinality geometry length of line segment vector length matrix determinant\",\n                \"source\": \"\\\\lvert abc\\\\rvert\",\n                \"snippet\": \"\\\\left\\\\lvert ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rvert\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.528ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 1949.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ABSOLUTE VALUE. Keywords: set cardinality geometry length of line segment vector length matrix determinant</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7C\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-7C\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"808\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1237\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-7C\\\" x=\\\"1671\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"normed\",\n                \"keywords\": \"vector matrix\",\n                \"source\": \"\\\\lVert abc\\\\rVert\",\n                \"snippet\": \"\\\\left\\\\lVert ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rVert\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.559ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2393.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NORMED. Keywords: vector matrix</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2225\\\" d=\\\"M133 736Q138 750 153 750Q164 750 170 739Q172 735 172 250T170 -239Q164 -250 152 -250Q144 -250 138 -244L137 -243Q133 -241 133 -179T132 250Q132 731 133 736ZM329 739Q334 750 346 750Q353 750 361 744L362 743Q366 741 366 679T367 250T367 -178T362 -243L361 -244Q355 -250 347 -250Q335 -250 329 -239Q327 -235 327 250T329 739Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2225\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"1030\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1459\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2225\\\" x=\\\"1893\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"floored round down\",\n                \"source\": \"\\\\lfloor abc\\\\rfloor\",\n                \"snippet\": \"\\\\left\\\\lfloor ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rfloor\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.299ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2281.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FLOORED ROUND DOWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-230A\\\" d=\\\"M174 734Q174 735 175 737T177 740T180 744T184 747T189 749T196 750Q206 748 214 735V-210H310H373Q401 -210 411 -213T422 -230T411 -247T369 -251Q362 -251 338 -251T298 -250H190Q178 -246 174 -234V734Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-230B\\\" d=\\\"M229 734Q229 735 230 737T232 740T235 744T239 747T244 749T251 750Q262 748 269 735V-235Q266 -240 256 -249L147 -250H77Q43 -250 32 -247T21 -230T32 -213T72 -209Q79 -209 99 -209T133 -210H229V734Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-230A\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"974\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1403\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-230B\\\" x=\\\"1837\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ceiled round up\",\n                \"source\": \"\\\\lceil abc\\\\rceil\",\n                \"snippet\": \"\\\\left\\\\lceil ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rceil\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.299ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2281.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CEILED ROUND UP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2308\\\" d=\\\"M174 734Q178 746 190 750H298H369Q400 750 411 747T422 730T411 713T372 709Q365 709 345 709T310 710H214V-235Q206 -248 196 -250Q192 -250 189 -249T184 -247T180 -244T178 -241T176 -237T174 -234V734Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2309\\\" d=\\\"M21 717T21 730T32 746T75 750H147H256Q266 742 269 735V-235Q262 -248 251 -250Q247 -250 244 -249T239 -247T235 -244T233 -241T231 -237T229 -234V710H133Q119 710 99 710T71 709Q43 709 32 713Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2308\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"974\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1403\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2309\\\" x=\\\"1837\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"round\",\n                \"source\": \"\\\\lfloor abc\\\\rceil\",\n                \"snippet\": \"\\\\left\\\\lfloor ${1:${TM_SELECTED_TEXT}}\\\\right\\\\rceil\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.299ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 2281.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ROUND.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-230A\\\" d=\\\"M174 734Q174 735 175 737T177 740T180 744T184 747T189 749T196 750Q206 748 214 735V-210H310H373Q401 -210 411 -213T422 -230T411 -247T369 -251Q362 -251 338 -251T298 -250H190Q178 -246 174 -234V734Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2309\\\" d=\\\"M21 717T21 730T32 746T75 750H147H256Q266 742 269 735V-235Q262 -248 251 -250Q247 -250 244 -249T239 -247T235 -244T233 -241T231 -237T229 -234V710H133Q119 710 99 710T71 709Q43 709 32 713Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-230A\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"974\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"1403\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2309\\\" x=\\\"1837\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Maths Constructs\": [\n            {\n                \"name\": \"fraction\",\n                \"keywords\": \"divide\",\n                \"source\": \"\\\\frac{abc}{xyz}\",\n                \"snippet\": \"\\\\frac{${1:${TM_SELECTED_TEXT}}}{$2}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.409ex\\\" height=\\\"5.843ex\\\" style=\\\"vertical-align: -2.338ex;\\\" viewBox=\\\"0 -1508.9 1898.5 2515.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRACTION. Keywords: divide</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-78\\\" d=\\\"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-79\\\" d=\\\"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-7A\\\" d=\\\"M347 338Q337 338 294 349T231 360Q211 360 197 356T174 346T162 335T155 324L153 320Q150 317 138 317Q117 317 117 325Q117 330 120 339Q133 378 163 406T229 440Q241 442 246 442Q271 442 291 425T329 392T367 375Q389 375 411 408T434 441Q435 442 449 442H462Q468 436 468 434Q468 430 463 420T449 399T432 377T418 358L411 349Q368 298 275 214T160 106L148 94L163 93Q185 93 227 82T290 71Q328 71 360 90T402 140Q406 149 409 151T424 153Q443 153 443 143Q443 138 442 134Q425 72 376 31T278 -11Q252 -11 232 6T193 40T155 57Q111 57 76 -3Q70 -11 59 -11H54H41Q35 -5 35 -2Q35 13 93 84Q132 129 225 214T340 322Q352 338 347 338Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(120,0)\\\"><rect stroke=\\\"none\\\" width=\\\"1658\\\" height=\\\"60\\\" x=\\\"0\\\" y=\\\"220\\\"></rect><g transform=\\\"translate(133,676)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(60,-686)\\\"><use href=\\\"#E1-MJMATHI-78\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-79\\\" x=\\\"572\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-7A\\\" x=\\\"1070\\\" y=\\\"0\\\"></use></g></g></g></svg>\"\n            },\n            {\n                \"name\": \"derivative\",\n                \"source\": \"\\\\frac{d^n y}{d x^n}\",\n                \"snippet\": \"\\\\frac{d^${1:${TM_SELECTED_TEXT}} y}{d x^${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.6ex\\\" height=\\\"5.509ex\\\" style=\\\"vertical-align: -2.005ex;\\\" viewBox=\\\"0 -1508.9 1980.6 2372\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DERIVATIVE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-64\\\" d=\\\"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6E\\\" d=\\\"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-79\\\" d=\\\"M21 287Q21 301 36 335T84 406T158 442Q199 442 224 419T250 355Q248 336 247 334Q247 331 231 288T198 191T182 105Q182 62 196 45T238 27Q261 27 281 38T312 61T339 94Q339 95 344 114T358 173T377 247Q415 397 419 404Q432 431 462 431Q475 431 483 424T494 412T496 403Q496 390 447 193T391 -23Q363 -106 294 -155T156 -205Q111 -205 77 -183T43 -117Q43 -95 50 -80T69 -58T89 -48T106 -45Q150 -45 150 -87Q150 -107 138 -122T115 -142T102 -147L99 -148Q101 -153 118 -160T152 -167H160Q177 -167 186 -165Q219 -156 247 -127T290 -65T313 -9T321 21L315 17Q309 13 296 6T270 -6Q250 -11 231 -11Q185 -11 150 11T104 82Q103 89 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-78\\\" d=\\\"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(120,0)\\\"><rect stroke=\\\"none\\\" width=\\\"1740\\\" height=\\\"60\\\" x=\\\"0\\\" y=\\\"220\\\"></rect><g transform=\\\"translate(97,725)\\\"><use href=\\\"#E1-MJMATHI-64\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMATHI-6E\\\" x=\\\"741\\\" y=\\\"513\\\"></use><use href=\\\"#E1-MJMATHI-79\\\" x=\\\"1049\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(60,-715)\\\"><use href=\\\"#E1-MJMATHI-64\\\" x=\\\"0\\\" y=\\\"0\\\"></use><g transform=\\\"translate(523,0)\\\"><use href=\\\"#E1-MJMATHI-78\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMATHI-6E\\\" x=\\\"809\\\" y=\\\"408\\\"></use></g></g></g></g></svg>\"\n            },\n            {\n                \"name\": \"integral\",\n                \"source\": \"\\\\int_a^b\\\\ \\\\,dx\",\n                \"snippet\": \"\\\\int_{$2}^{$3} ${1:${TM_SELECTED_TEXT}} \\\\,d${4:x}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"7.302ex\\\" height=\\\"6.343ex\\\" style=\\\"vertical-align: -2.338ex;\\\" viewBox=\\\"0 -1724.2 3144 2730.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INTEGRAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-222B\\\" d=\\\"M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-64\\\" d=\\\"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-78\\\" d=\\\"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-222B\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMATHI-62\\\" x=\\\"1500\\\" y=\\\"1540\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMATHI-61\\\" x=\\\"787\\\" y=\\\"-1270\\\"></use><use href=\\\"#E1-MJMATHI-64\\\" x=\\\"2047\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-78\\\" x=\\\"2571\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"limit\",\n                \"source\": \"\\\\lim_{x \\\\to \\\\infty}\",\n                \"snippet\": \"\\\\lim_{${2:x} \\\\to ${3:\\\\infty}} ${1:${TM_SELECTED_TEXT}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.227ex\\\" height=\\\"3.676ex\\\" style=\\\"vertical-align: -1.838ex;\\\" viewBox=\\\"0 -791.3 1819.7 1582.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LIMIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMATHI-78\\\" d=\\\"M52 289Q59 331 106 386T222 442Q257 442 286 424T329 379Q371 442 430 442Q467 442 494 420T522 361Q522 332 508 314T481 292T458 288Q439 288 427 299T415 328Q415 374 465 391Q454 404 425 404Q412 404 406 402Q368 386 350 336Q290 115 290 78Q290 50 306 38T341 26Q378 26 414 59T463 140Q466 150 469 151T485 153H489Q504 153 504 145Q504 144 502 134Q486 77 440 33T333 -11Q263 -11 227 52Q186 -10 133 -10H127Q78 -10 57 16T35 71Q35 103 54 123T99 143Q142 143 142 101Q142 81 130 66T107 46T94 41L91 40Q91 39 97 36T113 29T132 26Q168 26 194 71Q203 87 217 139T245 247T261 313Q266 340 266 352Q266 380 251 392T217 404Q177 404 142 372T93 290Q91 281 88 280T72 278H58Q52 284 52 289Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-2192\\\" d=\\\"M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-221E\\\" d=\\\"M55 217Q55 305 111 373T254 442Q342 442 419 381Q457 350 493 303L507 284L514 294Q618 442 747 442Q833 442 888 374T944 214Q944 128 889 59T743 -11Q657 -11 580 50Q542 81 506 128L492 147L485 137Q381 -11 252 -11Q166 -11 111 57T55 217ZM907 217Q907 285 869 341T761 397Q740 397 720 392T682 378T648 359T619 335T594 310T574 285T559 263T548 246L543 238L574 198Q605 158 622 138T664 94T714 61T765 51Q827 51 867 100T907 217ZM92 214Q92 145 131 89T239 33Q357 33 456 193L425 233Q364 312 334 337Q285 380 233 380Q171 380 132 331T92 214Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(214,0)\\\"><use href=\\\"#E2-MJMAIN-6C\\\"></use><use href=\\\"#E2-MJMAIN-69\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E2-MJMAIN-6D\\\" x=\\\"557\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,-601)\\\"><use transform=\\\"scale(0.707)\\\" href=\\\"#E2-MJMATHI-78\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E2-MJMAIN-2192\\\" x=\\\"572\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E2-MJMAIN-221E\\\" x=\\\"1573\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"sum\",\n                \"source\": \"\\\\sum_{n=1}^{\\\\infty}\",\n                \"snippet\": \"\\\\sum_{${2:n = 1}}^{${3:\\\\infty}} ${1:${TM_SELECTED_TEXT}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.355ex\\\" height=\\\"6.843ex\\\" style=\\\"vertical-align: -3.005ex;\\\" viewBox=\\\"0 -1652.5 1444.5 2946.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2211\\\" d=\\\"M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6E\\\" d=\\\"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-3D\\\" d=\\\"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-31\\\" d=\\\"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221E\\\" d=\\\"M55 217Q55 305 111 373T254 442Q342 442 419 381Q457 350 493 303L507 284L514 294Q618 442 747 442Q833 442 888 374T944 214Q944 128 889 59T743 -11Q657 -11 580 50Q542 81 506 128L492 147L485 137Q381 -11 252 -11Q166 -11 111 57T55 217ZM907 217Q907 285 869 341T761 397Q740 397 720 392T682 378T648 359T619 335T594 310T574 285T559 263T548 246L543 238L574 198Q605 158 622 138T664 94T714 61T765 51Q827 51 867 100T907 217ZM92 214Q92 145 131 89T239 33Q357 33 456 193L425 233Q364 312 334 337Q285 380 233 380Q171 380 132 331T92 214Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2211\\\" x=\\\"0\\\" y=\\\"0\\\"></use><g transform=\\\"translate(57,-1090)\\\"><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMATHI-6E\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-3D\\\" x=\\\"600\\\" y=\\\"0\\\"></use><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-31\\\" x=\\\"1379\\\" y=\\\"0\\\"></use></g><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-221E\\\" x=\\\"521\\\" y=\\\"1627\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square root\",\n                \"source\": \"\\\\sqrt{abc}\",\n                \"snippet\": \"\\\\sqrt{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.17ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -1006.6 2226 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE ROOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221A\\\" d=\\\"M95 178Q89 178 81 186T72 200T103 230T169 280T207 309Q209 311 212 311H213Q219 311 227 294T281 177Q300 134 312 108L397 -77Q398 -77 501 136T707 565T814 786Q820 800 834 800Q841 800 846 794T853 782V776L620 293L385 -193Q381 -200 366 -200Q357 -200 354 -197Q352 -195 256 15L160 225L144 214Q129 202 113 190T95 178Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-221A\\\" x=\\\"0\\\" y=\\\"17\\\"></use><rect stroke=\\\"none\\\" width=\\\"1392\\\" height=\\\"60\\\" x=\\\"833\\\" y=\\\"758\\\"></rect><g transform=\\\"translate(833,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"nth root\",\n                \"source\": \"\\\\sqrt[n]{abc}\",\n                \"snippet\": \"\\\\sqrt[${2:n}]{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.17ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -1006.6 2226 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NTH ROOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221A\\\" d=\\\"M95 178Q89 178 81 186T72 200T103 230T169 280T207 309Q209 311 212 311H213Q219 311 227 294T281 177Q300 134 312 108L397 -77Q398 -77 501 136T707 565T814 786Q820 800 834 800Q841 800 846 794T853 782V776L620 293L385 -193Q381 -200 366 -200Q357 -200 354 -197Q352 -195 256 15L160 225L144 214Q129 202 113 190T95 178Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6E\\\" d=\\\"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use transform=\\\"scale(0.574)\\\" href=\\\"#E1-MJMATHI-6E\\\" x=\\\"363\\\" y=\\\"804\\\"></use><use href=\\\"#E1-MJMAIN-221A\\\" x=\\\"0\\\" y=\\\"17\\\"></use><rect stroke=\\\"none\\\" width=\\\"1392\\\" height=\\\"60\\\" x=\\\"833\\\" y=\\\"758\\\"></rect><g transform=\\\"translate(833,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"overline\",\n                \"keywords\": \"set complement topology closure of set algebraic field closure rising factorial\",\n                \"source\": \"\\\\overline{abc}\",\n                \"snippet\": \"\\\\overline{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.349ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -1150.1 1442 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OVERLINE. Keywords: set complement topology closure of set algebraic field closure rising factorial</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-AF\\\" d=\\\"M69 544V590H430V544H69Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(24,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,511)\\\"><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-AF\\\" x=\\\"-70\\\" y=\\\"0\\\"></use><g transform=\\\"translate(85.46821053787212,0) scale(3.455103561231398,1)\\\"><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-AF\\\"></use></g><use transform=\\\"scale(0.707)\\\" href=\\\"#E1-MJMAIN-AF\\\" x=\\\"1538\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"underline\",\n                \"keywords\": \"falling factorial\",\n                \"source\": \"\\\\underline{abc}\",\n                \"snippet\": \"\\\\underline{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.237ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -0.539ex; margin-bottom: -0.799ex;\\\" viewBox=\\\"0 -791.3 1393.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UNDERLINE. Keywords: falling factorial</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5F\\\" d=\\\"M0 -62V-25H499V-62H0Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2013\\\" d=\\\"M0 248V285H499V248H0Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use><g transform=\\\"translate(0,-479)\\\"><use href=\\\"#E1-MJMAIN-2013\\\"></use><g transform=\\\"translate(498.6047094188377,0) scale(0.7905811623246493,1)\\\"><use href=\\\"#E1-MJMAIN-2013\\\"></use></g><use href=\\\"#E1-MJMAIN-2013\\\" x=\\\"893\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"widehat\",\n                \"keywords\": \"corresponds to\",\n                \"source\": \"\\\\widehat{abc}\",\n                \"snippet\": \"\\\\widehat{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.37ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.008ex; margin-right: -0.007ex;\\\" viewBox=\\\"-3.5 -1150.1 1451 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">WIDEHAT. Keywords: corresponds to</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5E\\\" d=\\\"M112 560L249 694L257 686Q387 562 387 560L361 531Q359 532 303 581L250 627L195 580Q182 569 169 557T148 538L140 532Q138 530 125 546L112 560Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ3-2C6\\\" d=\\\"M1439 564Q1434 564 1080 631T722 698Q719 698 362 631Q7 564 4 564L0 583Q-4 602 -4 603L720 772L1083 688Q1446 603 1447 603Q1447 602 1443 583L1439 564Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(26,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><use href=\\\"#E1-MJSZ3-2C6\\\" x=\\\"0\\\" y=\\\"239\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"widetilde\",\n                \"source\": \"\\\\widetilde{abc}\",\n                \"snippet\": \"\\\\widetilde{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.355ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -1078.4 1444.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">WIDETILDE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7E\\\" d=\\\"M179 251Q164 251 151 245T131 234T111 215L97 227L83 238Q83 239 95 253T121 283T142 304Q165 318 187 318T253 300T320 282Q335 282 348 288T368 299T388 318L402 306L416 295Q375 236 344 222Q330 215 313 215Q292 215 248 233T179 251Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ3-2DC\\\" d=\\\"M1 643Q1 646 76 671T271 722T476 749Q555 749 626 736T742 706T856 676T999 662Q1088 662 1192 684T1363 727T1432 749Q1432 745 1437 731T1442 716Q1442 714 1381 693T1212 645T1012 611Q1000 610 955 610Q851 610 701 653T444 697Q355 697 251 676T80 632T11 610Q11 614 6 628T1 643Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(26,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><use href=\\\"#E1-MJSZ3-2DC\\\" x=\\\"0\\\" y=\\\"194\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"overrightarrow\",\n                \"source\": \"\\\\overrightarrow{abc}\",\n                \"snippet\": \"\\\\overrightarrow{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.364ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -0.338ex; margin-top: -0.423ex;\\\" viewBox=\\\"0 -1508.9 1448.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OVERRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2192\\\" d=\\\"M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2212\\\" d=\\\"M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(28,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,814)\\\"><use href=\\\"#E1-MJMAIN-2212\\\" x=\\\"-85\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2192\\\" x=\\\"448\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"overleftarrow\",\n                \"source\": \"\\\\overleftarrow{abc}\",\n                \"snippet\": \"\\\\overleftarrow{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.429ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -0.338ex; margin-top: -0.423ex;\\\" viewBox=\\\"0 -1508.9 1476.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OVERLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2190\\\" d=\\\"M944 261T944 250T929 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q121 283 158 314T215 375T247 434T264 480L267 497Q269 503 270 505T275 509T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270H929Q944 261 944 250Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2212\\\" d=\\\"M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(42,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,814)\\\"><use href=\\\"#E1-MJMAIN-2190\\\" x=\\\"-56\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2212\\\" x=\\\"698\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"overbrace\",\n                \"source\": \"\\\\overbrace{abc}\",\n                \"snippet\": \"\\\\overbrace{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.907ex\\\" height=\\\"3.676ex\\\" style=\\\"vertical-align: -0.338ex; margin-right: -0.056ex;\\\" viewBox=\\\"0 -1437.2 1682.1 1582.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OVERBRACE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E150\\\" d=\\\"M-18 -213L-24 -207V-172L-16 -158Q75 2 260 84Q334 113 415 119Q418 119 427 119T440 120Q454 120 457 117T460 98V60V25Q460 7 457 4T441 0Q308 0 193 -55T25 -205Q21 -211 18 -212T-1 -213H-18Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E151\\\" d=\\\"M-10 60Q-10 104 -10 111T-5 118Q-1 120 10 120Q96 120 190 84Q375 2 466 -158L474 -172V-207L468 -213H451H447Q437 -213 434 -213T428 -209T423 -202T414 -187T396 -163Q331 -82 224 -41T9 0Q-4 0 -7 3T-10 25V60Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E153\\\" d=\\\"M-10 60V95Q-10 113 -7 116T9 120Q151 120 250 171T396 284Q404 293 412 305T424 324T431 331Q433 333 451 333H468L474 327V292L466 278Q375 118 190 36Q95 0 8 0Q-5 0 -7 3T-10 24V60Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E152\\\" d=\\\"M-24 327L-18 333H-1Q11 333 15 333T22 329T27 322T35 308T54 284Q115 203 225 162T441 120Q454 120 457 117T460 95V60V28Q460 8 457 4T442 0Q355 0 260 36Q75 118 -16 278L-24 292V327Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(132,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,1016)\\\"><use href=\\\"#E1-MJSZ4-E150\\\" x=\\\"23\\\" y=\\\"0\\\"></use><g transform=\\\"translate(390,0)\\\"><use href=\\\"#E1-MJSZ4-E153\\\"></use><use href=\\\"#E1-MJSZ4-E152\\\" x=\\\"450\\\" y=\\\"0\\\"></use></g><use href=\\\"#E1-MJSZ4-E151\\\" x=\\\"1207\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"underbrace\",\n                \"source\": \"\\\\underbrace{abc}\",\n                \"snippet\": \"\\\\underbrace{${1:${TM_SELECTED_TEXT}}}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.907ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -2.005ex; margin-right: -0.056ex;\\\" viewBox=\\\"0 -791.3 1682.1 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UNDERBRACE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-62\\\" d=\\\"M73 647Q73 657 77 670T89 683Q90 683 161 688T234 694Q246 694 246 685T212 542Q204 508 195 472T180 418L176 399Q176 396 182 402Q231 442 283 442Q345 442 383 396T422 280Q422 169 343 79T173 -11Q123 -11 82 27T40 150V159Q40 180 48 217T97 414Q147 611 147 623T109 637Q104 637 101 637H96Q86 637 83 637T76 640T73 647ZM336 325V331Q336 405 275 405Q258 405 240 397T207 376T181 352T163 330L157 322L136 236Q114 150 114 114Q114 66 138 42Q154 26 178 26Q211 26 245 58Q270 81 285 114T318 219Q336 291 336 325Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-63\\\" d=\\\"M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E152\\\" d=\\\"M-24 327L-18 333H-1Q11 333 15 333T22 329T27 322T35 308T54 284Q115 203 225 162T441 120Q454 120 457 117T460 95V60V28Q460 8 457 4T442 0Q355 0 260 36Q75 118 -16 278L-24 292V327Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E153\\\" d=\\\"M-10 60V95Q-10 113 -7 116T9 120Q151 120 250 171T396 284Q404 293 412 305T424 324T431 331Q433 333 451 333H468L474 327V292L466 278Q375 118 190 36Q95 0 8 0Q-5 0 -7 3T-10 24V60Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E151\\\" d=\\\"M-10 60Q-10 104 -10 111T-5 118Q-1 120 10 120Q96 120 190 84Q375 2 466 -158L474 -172V-207L468 -213H451H447Q437 -213 434 -213T428 -209T423 -202T414 -187T396 -163Q331 -82 224 -41T9 0Q-4 0 -7 3T-10 25V60Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ4-E150\\\" d=\\\"M-18 -213L-24 -207V-172L-16 -158Q75 2 260 84Q334 113 415 119Q418 119 427 119T440 120Q454 120 457 117T460 98V60V25Q460 7 457 4T441 0Q308 0 193 -55T25 -205Q21 -211 18 -212T-1 -213H-18Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><g transform=\\\"translate(132,0)\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-62\\\" x=\\\"529\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMATHI-63\\\" x=\\\"959\\\" y=\\\"0\\\"></use></g><g transform=\\\"translate(0,-527)\\\"><use href=\\\"#E1-MJSZ4-E152\\\" x=\\\"23\\\" y=\\\"0\\\"></use><g transform=\\\"translate(390,0)\\\"><use href=\\\"#E1-MJSZ4-E151\\\"></use><use href=\\\"#E1-MJSZ4-E150\\\" x=\\\"450\\\" y=\\\"0\\\"></use></g><use href=\\\"#E1-MJSZ4-E153\\\" x=\\\"1207\\\" y=\\\"0\\\"></use></g></g></svg>\"\n            },\n            {\n                \"name\": \"binomial\",\n                \"keywords\": \"combinatorics permutations\",\n                \"source\": \"\\\\binom{n}{k}\",\n                \"snippet\": \"\\\\binom{${1:${TM_SELECTED_TEXT}}}{$2}\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.816ex\\\" height=\\\"6.176ex\\\" style=\\\"vertical-align: -2.505ex;\\\" viewBox=\\\"0 -1580.7 2073.5 2659.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BINOMIAL. Keywords: combinatorics permutations</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-28\\\" d=\\\"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ3-28\\\" d=\\\"M701 -940Q701 -943 695 -949H664Q662 -947 636 -922T591 -879T537 -818T475 -737T412 -636T350 -511T295 -362T250 -186T221 17T209 251Q209 962 573 1361Q596 1386 616 1405T649 1437T664 1450H695Q701 1444 701 1441Q701 1436 681 1415T629 1356T557 1261T476 1118T400 927T340 675T308 359Q306 321 306 250Q306 -139 400 -430T690 -924Q701 -936 701 -940Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6E\\\" d=\\\"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-6B\\\" d=\\\"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-29\\\" d=\\\"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ3-29\\\" d=\\\"M34 1438Q34 1446 37 1448T50 1450H56H71Q73 1448 99 1423T144 1380T198 1319T260 1238T323 1137T385 1013T440 864T485 688T514 485T526 251Q526 134 519 53Q472 -519 162 -860Q139 -885 119 -904T86 -936T71 -949H56Q43 -949 39 -947T34 -937Q88 -883 140 -813Q428 -430 428 251Q428 453 402 628T338 922T245 1146T145 1309T46 1425Q44 1427 42 1429T39 1433T36 1436L34 1438Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ3-28\\\" x=\\\"0\\\" y=\\\"-1\\\"></use><g transform=\\\"translate(736,0)\\\"><use href=\\\"#E1-MJMATHI-6E\\\" x=\\\"0\\\" y=\\\"676\\\"></use><use href=\\\"#E1-MJMATHI-6B\\\" x=\\\"39\\\" y=\\\"-686\\\"></use></g><use href=\\\"#E1-MJSZ3-29\\\" x=\\\"1337\\\" y=\\\"-1\\\"></use></g></svg>\"\n            }\n        ],\n        \"Variable-sized symbols\": [\n            {\n                \"name\": \"sum\",\n                \"source\": \"\\\\sum\",\n                \"snippet\": \"\\\\sum\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.355ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1444.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2211\\\" d=\\\"M60 948Q63 950 665 950H1267L1325 815Q1384 677 1388 669H1348L1341 683Q1320 724 1285 761Q1235 809 1174 838T1033 881T882 898T699 902H574H543H251L259 891Q722 258 724 252Q725 250 724 246Q721 243 460 -56L196 -356Q196 -357 407 -357Q459 -357 548 -357T676 -358Q812 -358 896 -353T1063 -332T1204 -283T1307 -196Q1328 -170 1348 -124H1388Q1388 -125 1381 -145T1356 -210T1325 -294L1267 -449L666 -450Q64 -450 61 -448Q55 -446 55 -439Q55 -437 57 -433L590 177Q590 178 557 222T452 366T322 544L56 909L55 924Q55 945 60 948Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2211\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"product\",\n                \"keywords\": \"sequence series\",\n                \"source\": \"\\\\prod\",\n                \"snippet\": \"\\\\prod\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.969ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1278.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRODUCT. Keywords: sequence series</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-220F\\\" d=\\\"M220 812Q220 813 218 819T214 829T208 840T199 853T185 866T166 878T140 887T107 893T66 896H56V950H1221V896H1211Q1080 896 1058 812V-311Q1076 -396 1211 -396H1221V-450H725V-396H735Q864 -396 888 -314Q889 -312 889 -311V896H388V292L389 -311Q405 -396 542 -396H552V-450H56V-396H66Q195 -396 219 -314Q220 -312 220 -311V812Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-220F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"coproduct\",\n                \"keywords\": \"sequence series\",\n                \"source\": \"\\\\coprod\",\n                \"snippet\": \"\\\\coprod\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.969ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1278.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">COPRODUCT. Keywords: sequence series</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2210\\\" d=\\\"M220 812Q220 813 218 819T214 829T208 840T199 853T185 866T166 878T140 887T107 893T66 896H56V950H552V896H542Q411 896 389 812L388 208V-396H889V812Q889 813 887 819T883 829T877 840T868 853T854 866T835 878T809 887T776 893T735 896H725V950H1221V896H1211Q1080 896 1058 812V-311Q1076 -396 1211 -396H1221V-450H56V-396H66Q195 -396 219 -314Q220 -312 220 -311V812Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2210\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"int\",\n                \"source\": \"\\\\int\",\n                \"snippet\": \"\\\\int\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.194ex\\\" height=\\\"5.676ex\\\" style=\\\"vertical-align: -2.338ex;\\\" viewBox=\\\"0 -1437.2 944.5 2443.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-222B\\\" d=\\\"M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-222B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curve integral\",\n                \"source\": \"\\\\oint\",\n                \"snippet\": \"\\\\oint\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.194ex\\\" height=\\\"5.676ex\\\" style=\\\"vertical-align: -2.338ex;\\\" viewBox=\\\"0 -1437.2 944.5 2443.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURVE INTEGRAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-222E\\\" d=\\\"M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q382 -52 390 2Q314 40 276 99Q230 167 230 249Q230 363 305 436T484 519H494L503 563Q587 939 632 1087T727 1298Q774 1360 828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q766 1323 688 929Q662 811 610 496Q770 416 770 249Q770 147 701 68T516 -21H506L497 -65Q407 -464 357 -623T237 -837Q203 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798ZM480 478Q460 478 435 470T380 444T327 401T287 335T271 249Q271 124 375 56L397 43L431 223L485 478H480ZM519 20Q545 20 578 33T647 72T706 144T730 249Q730 383 603 455Q603 454 597 421T582 343T569 276Q516 22 515 20H519Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-222E\\\" x=\\\"0\\\" y=\\\"1\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"surface integral\",\n                \"source\": \"\\\\iint\",\n                \"snippet\": \"\\\\iint\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.42ex\\\" height=\\\"5.676ex\\\" style=\\\"vertical-align: -2.338ex;\\\" viewBox=\\\"0 -1437.2 1472.5 2443.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SURFACE INTEGRAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJSZ2-222C\\\" d=\\\"M114 -798Q132 -824 165 -824H167Q195 -824 223 -764T275 -600T320 -391T362 -164Q365 -143 367 -133Q439 292 523 655T645 1127Q651 1145 655 1157T672 1201T699 1257T733 1306T777 1346T828 1360Q884 1360 912 1325T944 1245Q944 1220 932 1205T909 1186T887 1183Q866 1183 849 1198T832 1239Q832 1287 885 1296L882 1300Q879 1303 874 1307T866 1313Q851 1323 833 1323Q819 1323 807 1311T775 1255T736 1139T689 936T633 628Q574 293 510 -5T410 -437T355 -629Q278 -862 165 -862Q125 -862 92 -831T55 -746Q55 -711 74 -698T112 -685Q133 -685 150 -700T167 -741Q167 -789 114 -798ZM642 -798Q660 -824 693 -824H695Q723 -824 751 -764T803 -600T848 -391T890 -164Q893 -143 895 -133Q967 292 1051 655T1173 1127Q1179 1145 1183 1157T1200 1201T1227 1257T1261 1306T1305 1346T1356 1360Q1412 1360 1440 1325T1472 1245Q1472 1220 1460 1205T1437 1186T1415 1183Q1394 1183 1377 1198T1360 1239Q1360 1287 1413 1296L1410 1300Q1407 1303 1402 1307T1394 1313Q1379 1323 1361 1323Q1347 1323 1335 1311T1303 1255T1264 1139T1217 936T1161 628Q1102 293 1038 -5T938 -437T883 -629Q806 -862 693 -862Q653 -862 620 -831T583 -746Q583 -711 602 -698T640 -685Q661 -685 678 -700T695 -741Q695 -789 642 -798Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJSZ2-222C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"biguplus\",\n                \"source\": \"\\\\biguplus\",\n                \"snippet\": \"\\\\biguplus\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGUPLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2A04\\\" d=\\\"M56 911Q58 926 71 938T103 950Q120 950 134 939T152 911Q153 907 153 463Q153 16 154 6Q165 -143 279 -247T556 -352Q716 -352 830 -248T956 6Q957 16 957 463Q957 907 958 911Q962 928 975 939T1006 950T1037 939T1054 911Q1055 906 1055 451Q1054 -5 1053 -16Q1029 -207 889 -328T555 -449Q363 -449 226 -331T62 -45Q57 -16 57 25T55 451Q55 906 56 911ZM507 554Q511 570 523 581T554 593Q571 593 585 582T603 554Q604 551 604 443V338H709Q817 338 820 337Q835 334 847 321T859 290Q859 254 819 241Q816 240 709 240H604V134Q604 48 604 34T598 11Q583 -15 555 -15Q526 -15 512 11Q507 20 507 34T506 134V240H401H344Q292 240 278 246Q251 259 251 290Q251 309 264 321T290 337Q293 338 401 338H506V443Q506 551 507 554Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2A04\\\" x=\\\"0\\\" y=\\\"-1\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigcap\",\n                \"source\": \"\\\\bigcap\",\n                \"snippet\": \"\\\\bigcap\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGCAP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-22C2\\\" d=\\\"M57 516Q68 602 104 675T190 797T301 882T423 933T542 949Q594 949 606 948Q780 928 901 815T1048 545Q1053 516 1053 475T1055 49Q1055 -406 1054 -410Q1051 -427 1037 -438T1006 -450T976 -439T958 -411Q957 -407 957 37Q957 484 956 494Q945 643 831 747T554 852Q481 852 411 826Q301 786 232 696T154 494Q153 484 153 37Q153 -407 152 -411Q148 -428 135 -439T104 -450T73 -439T56 -410Q55 -406 55 49Q56 505 57 516Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-22C2\\\" x=\\\"0\\\" y=\\\"1\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigcup\",\n                \"source\": \"\\\\bigcup\",\n                \"snippet\": \"\\\\bigcup\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGCUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-22C3\\\" d=\\\"M56 911Q58 926 71 938T103 950Q120 950 134 939T152 911Q153 907 153 463Q153 16 154 6Q165 -143 279 -247T556 -352Q716 -352 830 -248T956 6Q957 16 957 463Q957 907 958 911Q962 928 975 939T1006 950T1037 939T1054 911Q1055 906 1055 451Q1054 -5 1053 -16Q1029 -207 889 -328T555 -449Q363 -449 226 -331T62 -45Q57 -16 57 25T55 451Q55 906 56 911Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-22C3\\\" x=\\\"0\\\" y=\\\"-1\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigoplus\",\n                \"source\": \"\\\\bigoplus\",\n                \"snippet\": \"\\\\bigoplus\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.511ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1511.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGOPLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2A01\\\" d=\\\"M668 944Q697 949 744 949Q803 949 814 948Q916 937 1006 902T1154 826T1262 730T1336 638T1380 563Q1454 415 1454 250Q1454 113 1402 -14T1258 -238T1036 -391T755 -449Q608 -449 477 -392T255 -240T110 -16T56 250Q56 387 105 510T239 723T434 871T668 944ZM706 299V850H704Q519 832 386 725T198 476Q181 433 169 379T156 300Q156 299 431 299H706ZM1116 732Q1054 778 982 807T871 842T810 849L804 850V299H1079Q1354 299 1354 300Q1354 311 1352 329T1336 402T1299 506T1228 620T1116 732ZM706 -350V201H431Q156 201 156 200Q156 189 158 171T174 98T211 -6T282 -120T395 -232Q428 -257 464 -277T527 -308T587 -328T636 -339T678 -346T706 -350ZM1354 200Q1354 201 1079 201H804V-350Q808 -349 838 -345T887 -338T940 -323T1010 -295Q1038 -282 1067 -265T1144 -208T1229 -121T1301 0T1349 158Q1354 188 1354 200Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2A01\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigotimes\",\n                \"source\": \"\\\\bigotimes\",\n                \"snippet\": \"\\\\bigotimes\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.511ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1511.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGOTIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2A02\\\" d=\\\"M668 944Q697 949 744 949Q803 949 814 948Q916 937 1006 902T1154 826T1262 730T1336 638T1380 563Q1454 415 1454 250Q1454 113 1402 -14T1258 -238T1036 -391T755 -449Q608 -449 477 -392T255 -240T110 -16T56 250Q56 387 105 510T239 723T434 871T668 944ZM1143 709Q1138 714 1129 722T1086 752T1017 791T925 826T809 850Q798 851 747 851H728Q659 851 571 823T408 741Q367 713 367 709L755 320L1143 709ZM297 639Q296 639 282 622T247 570T205 491T169 382T154 250T168 118T204 9T247 -70T282 -122L297 -139L685 250L297 639ZM1213 -139Q1214 -139 1228 -122T1263 -70T1305 9T1341 118T1356 250T1342 382T1306 491T1263 570T1228 622L1213 639L825 250L1213 -139ZM367 -209Q373 -215 384 -224T434 -258T514 -302T622 -336T755 -352T887 -338T996 -302T1075 -259T1126 -224L1143 -209L755 180Q754 180 561 -14T367 -209Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2A02\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigodot\",\n                \"source\": \"\\\\bigodot\",\n                \"snippet\": \"\\\\bigodot\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.511ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1511.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGODOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2A00\\\" d=\\\"M668 944Q697 949 744 949Q803 949 814 948Q916 937 1006 902T1154 826T1262 730T1336 638T1380 563Q1454 415 1454 250Q1454 113 1402 -14T1258 -238T1036 -391T755 -449Q608 -449 477 -392T255 -240T110 -16T56 250Q56 387 105 510T239 723T434 871T668 944ZM755 -352Q922 -352 1061 -269T1278 -48T1356 250Q1356 479 1202 652T809 850Q798 851 747 851Q634 851 527 806T337 682T204 491T154 251Q154 128 201 17T329 -176T521 -304T755 -352ZM665 250Q665 290 692 315T758 341Q792 339 818 315T845 250Q845 211 819 186T755 160Q716 160 691 186T665 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2A00\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigvee\",\n                \"keywords\": \"least upper bound supremum join quantifier existential logic\",\n                \"source\": \"\\\\bigvee\",\n                \"snippet\": \"\\\\bigvee\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGVEE. Keywords: least upper bound supremum join quantifier existential logic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-22C1\\\" d=\\\"M55 900Q55 919 69 934T103 950Q134 950 147 924Q152 913 353 333L555 -250L757 333Q958 913 963 924Q978 950 1007 950Q1028 950 1041 935T1055 901Q1055 894 1054 891Q1052 884 826 231T597 -426Q583 -450 556 -450Q527 -450 512 -424Q510 -421 285 229T56 890Q55 893 55 900Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-22C1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigwedge\",\n                \"keywords\": \"quantifier universal logic\",\n                \"source\": \"\\\\bigwedge\",\n                \"snippet\": \"\\\\bigwedge\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGWEDGE. Keywords: quantifier universal logic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-22C0\\\" d=\\\"M1055 -401Q1055 -419 1042 -434T1007 -450Q977 -450 963 -423Q959 -417 757 167L555 750L353 167Q151 -417 147 -423Q134 -450 104 -450Q84 -450 70 -436T55 -401Q55 -394 56 -390Q59 -381 284 270T512 925Q525 950 555 950Q583 950 597 926Q599 923 825 270T1054 -391Q1055 -394 1055 -401Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-22C0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigsqcup\",\n                \"source\": \"\\\\bigsqcup\",\n                \"snippet\": \"\\\\bigsqcup\",\n                \"shrink\": true,\n                \"svg\": \"<svg class=\\\"shrink\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 1111.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGSQCUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSZ2-2A06\\\" d=\\\"M56 911Q60 927 72 938T103 950Q120 950 134 939T152 911Q153 907 153 277V-352H957V277Q957 907 958 911Q962 928 975 939T1006 950T1036 939T1054 911V891Q1054 871 1054 836T1054 754T1054 647T1055 525T1055 390T1055 250T1055 111T1055 -24T1055 -147T1054 -253T1054 -335T1054 -391V-411Q1047 -442 1016 -449Q1011 -450 552 -450L94 -449Q63 -439 56 -411V-391Q56 -371 56 -336T56 -254T56 -147T55 -25T55 110T55 250T55 389T55 524T55 647T56 753T56 835T56 891V911Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSZ2-2A06\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Standard Functions\": [\n            {\n                \"name\": \"arc cosine\",\n                \"source\": \"\\\\arccos\",\n                \"snippet\": \"\\\\arccos\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"6.218ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 2677 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ARC COSINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-61\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"893\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"1337\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"1782\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"2282\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"cosine\",\n                \"source\": \"\\\\cos\",\n                \"snippet\": \"\\\\cos\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.111ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1339.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">COSINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-63\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"945\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"cosecant\",\n                \"source\": \"\\\\csc\",\n                \"snippet\": \"\\\\csc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.981ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1283.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">COSECANT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-63\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"839\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"exponent\",\n                \"source\": \"\\\\exp\",\n                \"snippet\": \"\\\\exp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.552ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 1529.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EXPONENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-65\\\" d=\\\"M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-78\\\" d=\\\"M201 0Q189 3 102 3Q26 3 17 0H11V46H25Q48 47 67 52T96 61T121 78T139 96T160 122T180 150L226 210L168 288Q159 301 149 315T133 336T122 351T113 363T107 370T100 376T94 379T88 381T80 383Q74 383 44 385H16V431H23Q59 429 126 429Q219 429 229 431H237V385Q201 381 201 369Q201 367 211 353T239 315T268 274L272 270L297 304Q329 345 329 358Q329 364 327 369T322 376T317 380T310 384L307 385H302V431H309Q324 428 408 428Q487 428 493 431H499V385H492Q443 385 411 368Q394 360 377 341T312 257L296 236L358 151Q424 61 429 57T446 50Q464 46 499 46H516V0H510H502Q494 1 482 1T457 2T432 2T414 3Q403 3 377 3T327 1L304 0H295V46H298Q309 46 320 51T331 63Q331 65 291 120L250 175Q249 174 219 133T185 88Q181 83 181 74Q181 63 188 55T206 46Q208 46 208 23V0H201Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-70\\\" d=\\\"M36 -148H50Q89 -148 97 -134V-126Q97 -119 97 -107T97 -77T98 -38T98 6T98 55T98 106Q98 140 98 177T98 243T98 296T97 335T97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 61 434T98 436Q115 437 135 438T165 441T176 442H179V416L180 390L188 397Q247 441 326 441Q407 441 464 377T522 216Q522 115 457 52T310 -11Q242 -11 190 33L182 40V-45V-101Q182 -128 184 -134T195 -145Q216 -148 244 -148H260V-194H252L228 -193Q205 -192 178 -192T140 -191Q37 -191 28 -194H20V-148H36ZM424 218Q424 292 390 347T305 402Q234 402 182 337V98Q222 26 294 26Q345 26 384 80T424 218Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-65\\\"></use><use href=\\\"#E1-MJMAIN-78\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-70\\\" x=\\\"973\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"kernel\",\n                \"source\": \"\\\\ker\",\n                \"snippet\": \"\\\\ker\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.171ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1365.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">KERNEL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6B\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T97 124T98 167T98 217T98 272T98 329Q98 366 98 407T98 482T98 542T97 586T97 603Q94 622 83 628T38 637H20V660Q20 683 22 683L32 684Q42 685 61 686T98 688Q115 689 135 690T165 693T176 694H179V463L180 233L240 287Q300 341 304 347Q310 356 310 364Q310 383 289 385H284V431H293Q308 428 412 428Q475 428 484 431H489V385H476Q407 380 360 341Q286 278 286 274Q286 273 349 181T420 79Q434 60 451 53T500 46H511V0H505Q496 3 418 3Q322 3 307 0H299V46H306Q330 48 330 65Q330 72 326 79Q323 84 276 153T228 222L176 176V120V84Q176 65 178 59T189 49Q210 46 238 46H254V0H246Q231 3 137 3T28 0H20V46H36Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-65\\\" d=\\\"M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6B\\\"></use><use href=\\\"#E1-MJMAIN-65\\\" x=\\\"528\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"973\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"limit supremum\",\n                \"source\": \"\\\\limsup\",\n                \"snippet\": \"\\\\limsup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"7.119ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 3065 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LIMIT SUPREMUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-75\\\" d=\\\"M383 58Q327 -10 256 -10H249Q124 -10 105 89Q104 96 103 226Q102 335 102 348T96 369Q86 385 36 385H25V408Q25 431 27 431L38 432Q48 433 67 434T105 436Q122 437 142 438T172 441T184 442H187V261Q188 77 190 64Q193 49 204 40Q224 26 264 26Q290 26 311 35T343 58T363 90T375 120T379 144Q379 145 379 161T380 201T380 248V315Q380 361 370 372T320 385H302V431Q304 431 378 436T457 442H464V264Q464 84 465 81Q468 61 479 55T524 46H542V0Q540 0 467 -5T390 -11H383V58Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-70\\\" d=\\\"M36 -148H50Q89 -148 97 -134V-126Q97 -119 97 -107T97 -77T98 -38T98 6T98 55T98 106Q98 140 98 177T98 243T98 296T97 335T97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 61 434T98 436Q115 437 135 438T165 441T176 442H179V416L180 390L188 397Q247 441 326 441Q407 441 464 377T522 216Q522 115 457 52T310 -11Q242 -11 190 33L182 40V-45V-101Q182 -128 184 -134T195 -145Q216 -148 244 -148H260V-194H252L228 -193Q205 -192 178 -192T140 -191Q37 -191 28 -194H20V-148H36ZM424 218Q424 292 390 347T305 402Q234 402 182 337V98Q222 26 294 26Q345 26 384 80T424 218Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6D\\\" x=\\\"557\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"1557\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-75\\\" x=\\\"1952\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-70\\\" x=\\\"2508\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"minimum\",\n                \"source\": \"\\\\min\",\n                \"snippet\": \"\\\\min\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.875ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1668.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MINIMUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6D\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"833\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"1112\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hyperbolic sine\",\n                \"source\": \"\\\\sinh\",\n                \"snippet\": \"\\\\sinh\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.148ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1786 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HYPERBOLIC SINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-68\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-73\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"394\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"673\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-68\\\" x=\\\"1229\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"arc sine\",\n                \"source\": \"\\\\arcsin\",\n                \"snippet\": \"\\\\arcsin\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.962ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 2567 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ARC SINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-61\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"893\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"1337\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"1732\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"2010\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hyperbolic cosine\",\n                \"source\": \"\\\\cosh\",\n                \"snippet\": \"\\\\cosh\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.404ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1896 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HYPERBOLIC COSINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-68\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-63\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-73\\\" x=\\\"945\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-68\\\" x=\\\"1339\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"degree\",\n                \"source\": \"\\\\deg\",\n                \"snippet\": \"\\\\deg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.487ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 1501.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DEGREE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-64\\\" d=\\\"M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-65\\\" d=\\\"M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-67\\\" d=\\\"M329 409Q373 453 429 453Q459 453 472 434T485 396Q485 382 476 371T449 360Q416 360 412 390Q410 404 415 411Q415 412 416 414V415Q388 412 363 393Q355 388 355 386Q355 385 359 381T368 369T379 351T388 325T392 292Q392 230 343 187T222 143Q172 143 123 171Q112 153 112 133Q112 98 138 81Q147 75 155 75T227 73Q311 72 335 67Q396 58 431 26Q470 -13 470 -72Q470 -139 392 -175Q332 -206 250 -206Q167 -206 107 -175Q29 -140 29 -75Q29 -39 50 -15T92 18L103 24Q67 55 67 108Q67 155 96 193Q52 237 52 292Q52 355 102 398T223 442Q274 442 318 416L329 409ZM299 343Q294 371 273 387T221 404Q192 404 171 388T145 343Q142 326 142 292Q142 248 149 227T179 192Q196 182 222 182Q244 182 260 189T283 207T294 227T299 242Q302 258 302 292T299 343ZM403 -75Q403 -50 389 -34T348 -11T299 -2T245 0H218Q151 0 138 -6Q118 -15 107 -34T95 -74Q95 -84 101 -97T122 -127T170 -155T250 -167Q319 -167 361 -139T403 -75Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-64\\\"></use><use href=\\\"#E1-MJMAIN-65\\\" x=\\\"556\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-67\\\" x=\\\"1001\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"greatest common denominator\",\n                \"source\": \"\\\\gcd\",\n                \"snippet\": \"\\\\gcd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.487ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 1501.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GREATEST COMMON DENOMINATOR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-67\\\" d=\\\"M329 409Q373 453 429 453Q459 453 472 434T485 396Q485 382 476 371T449 360Q416 360 412 390Q410 404 415 411Q415 412 416 414V415Q388 412 363 393Q355 388 355 386Q355 385 359 381T368 369T379 351T388 325T392 292Q392 230 343 187T222 143Q172 143 123 171Q112 153 112 133Q112 98 138 81Q147 75 155 75T227 73Q311 72 335 67Q396 58 431 26Q470 -13 470 -72Q470 -139 392 -175Q332 -206 250 -206Q167 -206 107 -175Q29 -140 29 -75Q29 -39 50 -15T92 18L103 24Q67 55 67 108Q67 155 96 193Q52 237 52 292Q52 355 102 398T223 442Q274 442 318 416L329 409ZM299 343Q294 371 273 387T221 404Q192 404 171 388T145 343Q142 326 142 292Q142 248 149 227T179 192Q196 182 222 182Q244 182 260 189T283 207T294 227T299 242Q302 258 302 292T299 343ZM403 -75Q403 -50 389 -34T348 -11T299 -2T245 0H218Q151 0 138 -6Q118 -15 107 -34T95 -74Q95 -84 101 -97T122 -127T170 -155T250 -167Q319 -167 361 -139T403 -75Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-64\\\" d=\\\"M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-67\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-64\\\" x=\\\"945\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"logarithm\",\n                \"source\": \"\\\\lg\",\n                \"snippet\": \"\\\\lg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.809ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 779 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOGARITHM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-67\\\" d=\\\"M329 409Q373 453 429 453Q459 453 472 434T485 396Q485 382 476 371T449 360Q416 360 412 390Q410 404 415 411Q415 412 416 414V415Q388 412 363 393Q355 388 355 386Q355 385 359 381T368 369T379 351T388 325T392 292Q392 230 343 187T222 143Q172 143 123 171Q112 153 112 133Q112 98 138 81Q147 75 155 75T227 73Q311 72 335 67Q396 58 431 26Q470 -13 470 -72Q470 -139 392 -175Q332 -206 250 -206Q167 -206 107 -175Q29 -140 29 -75Q29 -39 50 -15T92 18L103 24Q67 55 67 108Q67 155 96 193Q52 237 52 292Q52 355 102 398T223 442Q274 442 318 416L329 409ZM299 343Q294 371 273 387T221 404Q192 404 171 388T145 343Q142 326 142 292Q142 248 149 227T179 192Q196 182 222 182Q244 182 260 189T283 207T294 227T299 242Q302 258 302 292T299 343ZM403 -75Q403 -50 389 -34T348 -11T299 -2T245 0H218Q151 0 138 -6Q118 -15 107 -34T95 -74Q95 -84 101 -97T122 -127T170 -155T250 -167Q319 -167 361 -139T403 -75Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-67\\\" x=\\\"278\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"natural logarithm\",\n                \"source\": \"\\\\ln\",\n                \"snippet\": \"\\\\ln\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.939ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 835 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NATURAL LOGARITHM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"278\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"probability\",\n                \"source\": \"\\\\Pr\",\n                \"snippet\": \"\\\\Pr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.494ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1074 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROBABILITY.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-50\\\" d=\\\"M130 622Q123 629 119 631T103 634T60 637H27V683H214Q237 683 276 683T331 684Q419 684 471 671T567 616Q624 563 624 489Q624 421 573 372T451 307Q429 302 328 301H234V181Q234 62 237 58Q245 47 304 46H337V0H326Q305 3 182 3Q47 3 38 0H27V46H60Q102 47 111 49T130 61V622ZM507 488Q507 514 506 528T500 564T483 597T450 620T397 635Q385 637 307 637H286Q237 637 234 628Q231 624 231 483V342H302H339Q390 342 423 349T481 382Q507 411 507 488Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-50\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"681\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"supremum\",\n                \"source\": \"\\\\sup\",\n                \"snippet\": \"\\\\sup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.501ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 1507.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUPREMUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-75\\\" d=\\\"M383 58Q327 -10 256 -10H249Q124 -10 105 89Q104 96 103 226Q102 335 102 348T96 369Q86 385 36 385H25V408Q25 431 27 431L38 432Q48 433 67 434T105 436Q122 437 142 438T172 441T184 442H187V261Q188 77 190 64Q193 49 204 40Q224 26 264 26Q290 26 311 35T343 58T363 90T375 120T379 144Q379 145 379 161T380 201T380 248V315Q380 361 370 372T320 385H302V431Q304 431 378 436T457 442H464V264Q464 84 465 81Q468 61 479 55T524 46H542V0Q540 0 467 -5T390 -11H383V58Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-70\\\" d=\\\"M36 -148H50Q89 -148 97 -134V-126Q97 -119 97 -107T97 -77T98 -38T98 6T98 55T98 106Q98 140 98 177T98 243T98 296T97 335T97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 61 434T98 436Q115 437 135 438T165 441T176 442H179V416L180 390L188 397Q247 441 326 441Q407 441 464 377T522 216Q522 115 457 52T310 -11Q242 -11 190 33L182 40V-45V-101Q182 -128 184 -134T195 -145Q216 -148 244 -148H260V-194H252L228 -193Q205 -192 178 -192T140 -191Q37 -191 28 -194H20V-148H36ZM424 218Q424 292 390 347T305 402Q234 402 182 337V98Q222 26 294 26Q345 26 384 80T424 218Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-73\\\"></use><use href=\\\"#E1-MJMAIN-75\\\" x=\\\"394\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-70\\\" x=\\\"951\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"arc tangent\",\n                \"source\": \"\\\\arctan\",\n                \"snippet\": \"\\\\arctan\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"6.466ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 2784 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ARC TANGENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-61\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"893\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-74\\\" x=\\\"1337\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-61\\\" x=\\\"1727\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"2227\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"cotangent\",\n                \"source\": \"\\\\cot\",\n                \"snippet\": \"\\\\cot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.099ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 1334.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">COTANGENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-63\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-74\\\" x=\\\"945\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"determinant\",\n                \"source\": \"\\\\det\",\n                \"snippet\": \"\\\\det\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1390.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DETERMINANT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-64\\\" d=\\\"M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-65\\\" d=\\\"M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-64\\\"></use><use href=\\\"#E1-MJMAIN-65\\\" x=\\\"556\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-74\\\" x=\\\"1001\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hom functor\",\n                \"source\": \"\\\\hom\",\n                \"snippet\": \"\\\\hom\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.391ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1890.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HOM FUNCTOR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-68\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-68\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"556\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6D\\\" x=\\\"1057\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"limit\",\n                \"source\": \"\\\\lim\",\n                \"snippet\": \"\\\\lim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1390.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LIMIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6D\\\" x=\\\"557\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"logarithm\",\n                \"source\": \"\\\\log\",\n                \"snippet\": \"\\\\log\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.972ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 1279.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOGARITHM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-67\\\" d=\\\"M329 409Q373 453 429 453Q459 453 472 434T485 396Q485 382 476 371T449 360Q416 360 412 390Q410 404 415 411Q415 412 416 414V415Q388 412 363 393Q355 388 355 386Q355 385 359 381T368 369T379 351T388 325T392 292Q392 230 343 187T222 143Q172 143 123 171Q112 153 112 133Q112 98 138 81Q147 75 155 75T227 73Q311 72 335 67Q396 58 431 26Q470 -13 470 -72Q470 -139 392 -175Q332 -206 250 -206Q167 -206 107 -175Q29 -140 29 -75Q29 -39 50 -15T92 18L103 24Q67 55 67 108Q67 155 96 193Q52 237 52 292Q52 355 102 398T223 442Q274 442 318 416L329 409ZM299 343Q294 371 273 387T221 404Q192 404 171 388T145 343Q142 326 142 292Q142 248 149 227T179 192Q196 182 222 182Q244 182 260 189T283 207T294 227T299 242Q302 258 302 292T299 343ZM403 -75Q403 -50 389 -34T348 -11T299 -2T245 0H218Q151 0 138 -6Q118 -15 107 -34T95 -74Q95 -84 101 -97T122 -127T170 -155T250 -167Q319 -167 361 -139T403 -75Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-67\\\" x=\\\"779\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"secant\",\n                \"source\": \"\\\\sec\",\n                \"snippet\": \"\\\\sec\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.981ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1283.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SECANT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-65\\\" d=\\\"M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-73\\\"></use><use href=\\\"#E1-MJMAIN-65\\\" x=\\\"394\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-63\\\" x=\\\"839\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"tangent\",\n                \"source\": \"\\\\tan\",\n                \"snippet\": \"\\\\tan\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.36ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 1446.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TANGENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-74\\\"></use><use href=\\\"#E1-MJMAIN-61\\\" x=\\\"389\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"890\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"argument\",\n                \"keywords\": \"complex number\",\n                \"source\": \"\\\\arg\",\n                \"snippet\": \"\\\\arg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.237ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 1393.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ARGUMENT. Keywords: complex number</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-72\\\" d=\\\"M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-67\\\" d=\\\"M329 409Q373 453 429 453Q459 453 472 434T485 396Q485 382 476 371T449 360Q416 360 412 390Q410 404 415 411Q415 412 416 414V415Q388 412 363 393Q355 388 355 386Q355 385 359 381T368 369T379 351T388 325T392 292Q392 230 343 187T222 143Q172 143 123 171Q112 153 112 133Q112 98 138 81Q147 75 155 75T227 73Q311 72 335 67Q396 58 431 26Q470 -13 470 -72Q470 -139 392 -175Q332 -206 250 -206Q167 -206 107 -175Q29 -140 29 -75Q29 -39 50 -15T92 18L103 24Q67 55 67 108Q67 155 96 193Q52 237 52 292Q52 355 102 398T223 442Q274 442 318 416L329 409ZM299 343Q294 371 273 387T221 404Q192 404 171 388T145 343Q142 326 142 292Q142 248 149 227T179 192Q196 182 222 182Q244 182 260 189T283 207T294 227T299 242Q302 258 302 292T299 343ZM403 -75Q403 -50 389 -34T348 -11T299 -2T245 0H218Q151 0 138 -6Q118 -15 107 -34T95 -74Q95 -84 101 -97T122 -127T170 -155T250 -167Q319 -167 361 -139T403 -75Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-61\\\"></use><use href=\\\"#E1-MJMAIN-72\\\" x=\\\"500\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-67\\\" x=\\\"893\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hyperbolic cotangent\",\n                \"source\": \"\\\\coth\",\n                \"snippet\": \"\\\\coth\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.392ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1891 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HYPERBOLIC COTANGENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-63\\\" d=\\\"M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6F\\\" d=\\\"M28 214Q28 309 93 378T250 448Q340 448 405 380T471 215Q471 120 407 55T250 -10Q153 -10 91 57T28 214ZM250 30Q372 30 372 193V225V250Q372 272 371 288T364 326T348 362T317 390T268 410Q263 411 252 411Q222 411 195 399Q152 377 139 338T126 246V226Q126 130 145 91Q177 30 250 30Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-68\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-63\\\"></use><use href=\\\"#E1-MJMAIN-6F\\\" x=\\\"444\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-74\\\" x=\\\"945\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-68\\\" x=\\\"1334\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dimension\",\n                \"source\": \"\\\\dim\",\n                \"snippet\": \"\\\\dim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.875ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1668.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIMENSION.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-64\\\" d=\\\"M376 495Q376 511 376 535T377 568Q377 613 367 624T316 637H298V660Q298 683 300 683L310 684Q320 685 339 686T376 688Q393 689 413 690T443 693T454 694H457V390Q457 84 458 81Q461 61 472 55T517 46H535V0Q533 0 459 -5T380 -11H373V44L365 37Q307 -11 235 -11Q158 -11 96 50T34 215Q34 315 97 378T244 442Q319 442 376 393V495ZM373 342Q328 405 260 405Q211 405 173 369Q146 341 139 305T131 211Q131 155 138 120T173 59Q203 26 251 26Q322 26 373 103V342Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-64\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"556\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6D\\\" x=\\\"835\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"infinum\",\n                \"source\": \"\\\\inf\",\n                \"snippet\": \"\\\\inf\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.805ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-right: -0.153ex;\\\" viewBox=\\\"0 -791.3 1207.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INFINUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-66\\\" d=\\\"M273 0Q255 3 146 3Q43 3 34 0H26V46H42Q70 46 91 49Q99 52 103 60Q104 62 104 224V385H33V431H104V497L105 564L107 574Q126 639 171 668T266 704Q267 704 275 704T289 705Q330 702 351 679T372 627Q372 604 358 590T321 576T284 590T270 627Q270 647 288 667H284Q280 668 273 668Q245 668 223 647T189 592Q183 572 182 497V431H293V385H185V225Q185 63 186 61T189 57T194 54T199 51T206 49T213 48T222 47T231 47T241 46T251 46H282V0H273Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-69\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-66\\\" x=\\\"835\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"infinum limit\",\n                \"source\": \"\\\\liminf\",\n                \"snippet\": \"\\\\liminf\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"6.422ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-right: -0.153ex;\\\" viewBox=\\\"0 -791.3 2765 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INFINUM LIMIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6C\\\" d=\\\"M42 46H56Q95 46 103 60V68Q103 77 103 91T103 124T104 167T104 217T104 272T104 329Q104 366 104 407T104 482T104 542T103 586T103 603Q100 622 89 628T44 637H26V660Q26 683 28 683L38 684Q48 685 67 686T104 688Q121 689 141 690T171 693T182 694H185V379Q185 62 186 60Q190 52 198 49Q219 46 247 46H263V0H255L232 1Q209 2 183 2T145 3T107 3T57 1L34 0H26V46H42Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-66\\\" d=\\\"M273 0Q255 3 146 3Q43 3 34 0H26V46H42Q70 46 91 49Q99 52 103 60Q104 62 104 224V385H33V431H104V497L105 564L107 574Q126 639 171 668T266 704Q267 704 275 704T289 705Q330 702 351 679T372 627Q372 604 358 590T321 576T284 590T270 627Q270 647 288 667H284Q280 668 273 668Q245 668 223 647T189 592Q183 572 182 497V431H293V385H185V225Q185 63 186 61T189 57T194 54T199 51T206 49T213 48T222 47T231 47T241 46T251 46H282V0H273Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6C\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"278\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6D\\\" x=\\\"557\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"1557\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"1836\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-66\\\" x=\\\"2392\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"maximum\",\n                \"source\": \"\\\\max\",\n                \"snippet\": \"\\\\max\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.326ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1862.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MAXIMUM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6D\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q351 442 364 440T387 434T406 426T421 417T432 406T441 395T448 384T452 374T455 366L457 361L460 365Q463 369 466 373T475 384T488 397T503 410T523 422T546 432T572 439T603 442Q729 442 740 329Q741 322 741 190V104Q741 66 743 59T754 49Q775 46 803 46H819V0H811L788 1Q764 2 737 2T699 3Q596 3 587 0H579V46H595Q656 46 656 62Q657 64 657 200Q656 335 655 343Q649 371 635 385T611 402T585 404Q540 404 506 370Q479 343 472 315T464 232V168V108Q464 78 465 68T468 55T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-78\\\" d=\\\"M201 0Q189 3 102 3Q26 3 17 0H11V46H25Q48 47 67 52T96 61T121 78T139 96T160 122T180 150L226 210L168 288Q159 301 149 315T133 336T122 351T113 363T107 370T100 376T94 379T88 381T80 383Q74 383 44 385H16V431H23Q59 429 126 429Q219 429 229 431H237V385Q201 381 201 369Q201 367 211 353T239 315T268 274L272 270L297 304Q329 345 329 358Q329 364 327 369T322 376T317 380T310 384L307 385H302V431H309Q324 428 408 428Q487 428 493 431H499V385H492Q443 385 411 368Q394 360 377 341T312 257L296 236L358 151Q424 61 429 57T446 50Q464 46 499 46H516V0H510H502Q494 1 482 1T457 2T432 2T414 3Q403 3 377 3T327 1L304 0H295V46H298Q309 46 320 51T331 63Q331 65 291 120L250 175Q249 174 219 133T185 88Q181 83 181 74Q181 63 188 55T206 46Q208 46 208 23V0H201Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-6D\\\"></use><use href=\\\"#E1-MJMAIN-61\\\" x=\\\"833\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-78\\\" x=\\\"1334\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"sine\",\n                \"source\": \"\\\\sin\",\n                \"snippet\": \"\\\\sin\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.856ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1229.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SINE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-73\\\" d=\\\"M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-69\\\" d=\\\"M69 609Q69 637 87 653T131 669Q154 667 171 652T188 609Q188 579 171 564T129 549Q104 549 87 564T69 609ZM247 0Q232 3 143 3Q132 3 106 3T56 1L34 0H26V46H42Q70 46 91 49Q100 53 102 60T104 102V205V293Q104 345 102 359T88 378Q74 385 41 385H30V408Q30 431 32 431L42 432Q52 433 70 434T106 436Q123 437 142 438T171 441T182 442H185V62Q190 52 197 50T232 46H255V0H247Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-73\\\"></use><use href=\\\"#E1-MJMAIN-69\\\" x=\\\"394\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"673\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hyperbolic tangent\",\n                \"source\": \"\\\\tanh\",\n                \"snippet\": \"\\\\tanh\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.652ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 2003 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HYPERBOLIC TANGENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-74\\\" d=\\\"M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-61\\\" d=\\\"M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-6E\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 122T103 161T103 203Q103 234 103 269T102 328V351Q99 370 88 376T43 385H25V408Q25 431 27 431L37 432Q47 433 65 434T102 436Q119 437 138 438T167 441T178 442H181V402Q181 364 182 364T187 369T199 384T218 402T247 421T285 437Q305 442 336 442Q450 438 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-68\\\" d=\\\"M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-74\\\"></use><use href=\\\"#E1-MJMAIN-61\\\" x=\\\"389\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-6E\\\" x=\\\"890\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-68\\\" x=\\\"1446\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"-Operators and Relations\": [\n            {\n                \"name\": \"asterix\",\n                \"keywords\": \"complex conjugate function convolution matrix transpose dual space operation of elements relation reflexive closure group units of ring\",\n                \"source\": \"\\\\ast\",\n                \"snippet\": \"\\\\ast\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.079ex; margin-bottom: -0.25ex;\\\" viewBox=\\\"0 -576.1 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ASTERIX. Keywords: complex conjugate function convolution matrix transpose dual space operation of elements relation reflexive closure group units of ring</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2217\\\" d=\\\"M229 286Q216 420 216 436Q216 454 240 464Q241 464 245 464T251 465Q263 464 273 456T283 436Q283 419 277 356T270 286L328 328Q384 369 389 372T399 375Q412 375 423 365T435 338Q435 325 425 315Q420 312 357 282T289 250L355 219L425 184Q434 175 434 161Q434 146 425 136T401 125Q393 125 383 131T328 171L270 213Q283 79 283 63Q283 53 276 44T250 35Q231 35 224 44T216 63Q216 80 222 143T229 213L171 171Q115 130 110 127Q106 124 100 124Q87 124 76 134T64 161Q64 166 64 169T67 175T72 181T81 188T94 195T113 204T138 215T170 230T210 250L74 315Q65 324 65 338Q65 353 74 363T98 374Q106 374 116 368T171 328L229 286Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2217\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"star\",\n                \"source\": \"\\\\star\",\n                \"snippet\": \"\\\\star\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.035ex; margin-bottom: -0.206ex;\\\" viewBox=\\\"0 -576.1 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">STAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22C6\\\" d=\\\"M210 282Q210 284 225 381T241 480Q241 484 245 484Q249 486 251 486Q258 486 260 477T272 406Q275 390 276 380Q290 286 290 282L388 299Q484 314 487 314H488Q497 314 497 302Q497 297 434 266Q416 257 404 251L315 206L361 118Q372 98 383 75T401 40L407 28Q407 16 395 16Q394 16 392 16L390 17L250 159L110 17L108 16Q106 16 105 16Q93 16 93 28L99 40Q105 52 116 75T139 118L185 206L96 251Q6 296 4 300Q3 301 3 302Q3 314 12 314H13Q16 314 112 299L210 282Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22C6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"center dot\",\n                \"keywords\": \"multiply product matrix\",\n                \"source\": \"\\\\cdot\",\n                \"snippet\": \"\\\\cdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"1.176ex\\\" style=\\\"vertical-align: 0.439ex; margin-bottom: -0.61ex;\\\" viewBox=\\\"0 -432.6 278.5 506.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CENTER DOT. Keywords: multiply product matrix</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22C5\\\" d=\\\"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22C5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bullet\",\n                \"keywords\": \"operation of elements\",\n                \"source\": \"\\\\bullet\",\n                \"snippet\": \"\\\\bullet\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.125ex; margin-bottom: -0.297ex;\\\" viewBox=\\\"0 -576.1 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BULLET. Keywords: operation of elements</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2219\\\" d=\\\"M55 251Q55 328 112 386T249 444T386 388T444 249Q444 171 388 113T250 55Q170 55 113 112T55 251Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2219\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circle\",\n                \"keywords\": \"function relation composition topology interior of set matrix Hadamard product shape\",\n                \"source\": \"\\\\circ\",\n                \"snippet\": \"\\\\circ\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.125ex; margin-bottom: -0.297ex;\\\" viewBox=\\\"0 -576.1 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLE. Keywords: function relation composition topology interior of set matrix Hadamard product shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2218\\\" d=\\\"M55 251Q55 328 112 386T249 444T386 388T444 249Q444 171 388 113T250 55Q170 55 113 112T55 251ZM245 403Q188 403 142 361T96 250Q96 183 141 140T250 96Q284 96 313 109T354 135T375 160Q403 197 403 250Q403 313 360 358T245 403Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2218\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"big circle\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\bigcirc\",\n                \"snippet\": \"\\\\bigcirc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 1000.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIG CIRCLE. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25EF\\\" d=\\\"M56 250Q56 353 95 442T196 589T335 681T491 715Q573 715 635 693Q694 673 747 635T846 543T917 412T944 250Q944 58 815 -78T500 -215Q457 -215 429 -210Q274 -183 165 -56T56 250ZM500 -176Q664 -176 784 -54T904 250Q904 418 799 536T543 674Q534 675 493 675Q425 675 357 647T229 567T133 432T96 250Q96 160 129 80T217 -56T346 -144T500 -176Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25EF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"diamond\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\diamond\",\n                \"snippet\": \"\\\\diamond\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.026ex; margin-bottom: -0.197ex;\\\" viewBox=\\\"0 -576.1 500.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIAMOND. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22C4\\\" d=\\\"M242 486Q245 488 250 488Q256 488 258 486Q262 484 373 373T486 258T488 250T486 242T373 127T258 14Q256 12 250 12Q245 12 242 14Q237 16 127 126T14 242Q12 245 12 250T14 258Q16 263 126 373T242 486ZM439 250L250 439L61 250L250 61L439 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22C4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"times\",\n                \"keywords\": \"multiply cartesian product vector direct group units of ring\",\n                \"source\": \"\\\\times\",\n                \"snippet\": \"\\\\times\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.019ex; margin-bottom: -0.19ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TIMES. Keywords: multiply cartesian product vector direct group units of ring</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-D7\\\" d=\\\"M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-D7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"division\",\n                \"source\": \"\\\\div\",\n                \"snippet\": \"\\\\div\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIVISION.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-F7\\\" d=\\\"M318 466Q318 500 339 518T386 537Q418 537 438 517T458 466Q458 438 440 417T388 396Q355 396 337 417T318 466ZM56 237T56 250T70 270H706Q721 262 721 250T706 230H70Q56 237 56 250ZM318 34Q318 68 339 86T386 105Q418 105 438 85T458 34Q458 6 440 -15T388 -36Q355 -36 337 -15T318 34Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-F7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"center dot\",\n                \"source\": \"\\\\centerdot\",\n                \"snippet\": \"\\\\centerdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"1.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -289 278.5 434.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CENTER DOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22C5\\\" d=\\\"M71 0Q59 4 55 16V96L56 176Q59 180 66 187L70 189H209Q219 181 222 174V15Q219 10 209 1L140 0H71Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22C5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled asterix\",\n                \"source\": \"\\\\circledast\",\n                \"snippet\": \"\\\\circledast\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED ASTERIX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-229B\\\" d=\\\"M57 250Q57 327 87 392T166 497T270 560T382 582H394Q512 582 610 500Q721 401 721 250Q721 112 626 15T389 -82Q251 -82 154 13T57 250ZM682 129T682 250T596 457T390 543Q269 543 183 457T96 250Q96 132 180 45T389 -43Q511 -43 596 43ZM204 339Q204 357 215 366T238 375Q247 375 283 348Q300 336 311 328L368 286Q369 286 366 323T359 398T355 437Q357 456 379 465Q380 465 384 465T391 466Q403 465 412 457T423 437Q423 436 420 398T413 323T410 286L467 328Q476 334 486 341T501 353T513 361T523 368T529 372T535 374T541 375Q554 375 564 365T575 339Q575 325 566 318T519 292Q504 285 496 281L430 250L496 219Q552 192 559 188T572 175Q575 168 575 161Q575 148 566 137T541 126H538Q530 126 499 149Q480 163 467 172L410 214Q409 214 412 177T419 102T423 63Q423 59 421 54T411 43T389 36T368 42T357 54T355 63Q355 64 358 102T365 177T368 214L311 172Q302 165 293 159T279 148T268 140T260 134T254 131T250 128T246 127T242 126T238 126Q223 126 214 135T204 161T213 183T282 219L348 250L282 281Q226 308 219 312T206 325Q204 330 204 339Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-229B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled circle\",\n                \"source\": \"\\\\circledcirc\",\n                \"snippet\": \"\\\\circledcirc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED CIRCLE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-229A\\\" d=\\\"M57 250Q57 327 87 392T166 497T270 560T382 582H394Q512 582 610 500Q721 401 721 250Q721 112 626 15T389 -82Q251 -82 154 13T57 250ZM682 129T682 250T596 457T390 543Q269 543 183 457T96 250Q96 132 180 45T389 -43Q511 -43 596 43ZM250 250Q250 316 295 352T384 388Q451 388 489 347T528 250Q528 192 487 152T389 112Q331 112 291 152T250 250ZM488 250Q488 290 460 319T389 349Q348 349 319 320T290 250Q290 208 320 180T389 151Q431 151 459 181T488 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-229A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled dash\",\n                \"source\": \"\\\\circleddash\",\n                \"snippet\": \"\\\\circleddash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED DASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-229D\\\" d=\\\"M57 250Q57 327 87 392T166 497T270 560T382 582H394Q512 582 610 500Q721 401 721 250Q721 112 626 15T389 -82Q251 -82 154 13T57 250ZM682 129T682 250T596 457T390 543Q269 543 183 457T96 250Q96 132 180 45T389 -43Q511 -43 596 43ZM223 250Q223 263 233 267T280 271Q289 271 325 271T389 270H490Q535 270 545 267T555 250Q555 241 549 235Q544 231 527 231T389 230Q239 230 235 232Q223 236 223 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-229D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dotplus\",\n                \"source\": \"\\\\dotplus\",\n                \"snippet\": \"\\\\dotplus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -863.1 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOTPLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2214\\\" d=\\\"M339 717Q339 739 354 752T388 766Q410 766 424 751T439 716T424 681T390 666Q369 666 354 681T339 717ZM57 237T57 250T71 270H369V425L370 581Q380 594 389 594Q402 594 409 579V270H707Q722 262 722 250T707 230H409V-79Q401 -93 391 -93H389H387Q375 -93 369 -79V230H71Q57 237 57 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2214\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"divideontimes\",\n                \"source\": \"\\\\divideontimes\",\n                \"snippet\": \"\\\\divideontimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIVIDEONTIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22C7\\\" d=\\\"M366 543Q374 545 382 545Q405 545 419 538Q429 534 443 521T462 496Q466 478 466 467Q466 438 444 412Q422 390 388 390Q352 390 331 412Q311 434 311 467Q311 499 331 518Q345 533 366 543ZM146 472Q146 479 153 485T166 492Q171 492 187 476T279 385L386 278L495 385Q600 492 608 492Q615 492 621 486T628 472Q628 467 614 452T531 367L435 270H706Q720 256 720 250Q720 241 706 230H435L531 132Q600 63 614 48T628 27Q628 20 622 14T608 7Q600 7 495 114L386 221L279 114Q204 39 188 23T166 7Q159 7 153 13T146 27Q146 32 160 47T244 132L339 230H68Q55 243 55 250Q55 255 68 270H339L244 367Q175 436 161 451T146 472ZM466 34Q466 4 447 -20T388 -44Q353 -44 331 -22Q311 1 311 34Q311 66 331 85Q347 101 366 110Q374 112 382 112Q405 112 419 105Q429 100 443 87T462 63Q466 45 466 34Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22C7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"plus minus\",\n                \"source\": \"\\\\pm\",\n                \"snippet\": \"\\\\pm\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PLUS MINUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-B1\\\" d=\\\"M56 320T56 333T70 353H369V502Q369 651 371 655Q376 666 388 666Q402 666 405 654T409 596V500V353H707Q722 345 722 333Q722 320 707 313H409V40H707Q722 32 722 20T707 0H70Q56 7 56 20T70 40H369V313H70Q56 320 56 333Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-B1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"minus plus\",\n                \"source\": \"\\\\mp\",\n                \"snippet\": \"\\\\mp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 778.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MINUS PLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2213\\\" d=\\\"M56 467T56 480T70 500H707Q722 492 722 480T707 460H409V187H707Q722 179 722 167Q722 154 707 147H409V0V-93Q409 -144 406 -155T389 -166Q376 -166 372 -155T368 -105Q368 -96 368 -62T369 -2V147H70Q56 154 56 167T70 187H369V460H70Q56 467 56 480Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2213\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"amalg\",\n                \"source\": \"\\\\amalg\",\n                \"snippet\": \"\\\\amalg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.743ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 750.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">AMALG.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2A3F\\\" d=\\\"M28 660Q28 676 31 679T46 683H50Q87 681 182 681Q217 681 247 681T294 682T315 682Q321 682 323 682T328 679T331 673T332 660Q332 643 328 640T304 637Q239 637 231 626Q229 620 229 334V46H520V334Q520 620 518 626Q510 637 445 637Q426 637 422 640T417 660Q417 675 420 678T432 682H435Q437 682 467 682T569 681T671 681T703 682Q714 682 717 679T721 660Q721 643 717 640T693 637Q628 637 620 626Q619 623 619 342Q619 60 620 57Q628 46 693 46Q714 46 717 43T721 23Q721 5 715 1Q713 0 374 0Q36 0 34 1Q28 5 28 23Q28 40 31 43T56 46Q121 46 129 57Q131 63 131 342Q131 620 129 626Q121 637 56 637Q35 637 32 640T28 660Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2A3F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled dot\",\n                \"source\": \"\\\\odot\",\n                \"snippet\": \"\\\\odot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED DOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2299\\\" d=\\\"M56 250Q56 394 156 488T384 583Q530 583 626 485T722 250Q722 110 625 14T390 -83Q249 -83 153 14T56 250ZM682 250Q682 322 649 387T546 497T381 542Q272 542 184 459T95 250Q95 132 178 45T389 -42Q515 -42 598 45T682 250ZM311 250Q311 285 332 304T375 328Q376 328 382 328T392 329Q424 326 445 305T466 250Q466 217 445 195T389 172Q354 172 333 195T311 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2299\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled minus\",\n                \"source\": \"\\\\ominus\",\n                \"snippet\": \"\\\\ominus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED MINUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2296\\\" d=\\\"M56 250Q56 394 156 488T384 583Q530 583 626 485T722 250Q722 110 625 14T390 -83Q249 -83 153 14T56 250ZM681 278Q669 385 591 463T381 542Q283 542 196 471T96 278V270H681V278ZM275 -42T388 -42T585 32T681 222V230H96V222Q108 107 191 33Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2296\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled plus\",\n                \"keywords\": \"vector space sum logic xor exclusive or\",\n                \"source\": \"\\\\oplus\",\n                \"snippet\": \"\\\\oplus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED PLUS. Keywords: vector space sum logic xor exclusive or</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2295\\\" d=\\\"M56 250Q56 394 156 488T384 583Q530 583 626 485T722 250Q722 110 625 14T390 -83Q249 -83 153 14T56 250ZM364 542Q308 539 251 509T148 418T96 278V270H369V542H364ZM681 278Q675 338 650 386T592 462T522 509T458 535T412 542H409V270H681V278ZM96 222Q104 150 139 95T219 12T302 -29T366 -42H369V230H96V222ZM681 222V230H409V-42H412Q429 -42 456 -36T521 -10T590 37T649 113T681 222Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2295\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circled slash\",\n                \"keywords\": \"matrix Hadamard division\",\n                \"source\": \"\\\\oslash\",\n                \"snippet\": \"\\\\oslash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLED SLASH. Keywords: matrix Hadamard division</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2298\\\" d=\\\"M56 250Q56 394 156 488T384 583Q530 583 626 485T722 250Q722 110 625 14T390 -83Q249 -83 153 14T56 250ZM582 471Q581 472 571 480T556 491T539 502T517 514T491 525T460 534T424 539T381 542Q272 542 184 460T95 251Q95 198 113 150T149 80L167 58L582 471ZM388 -42Q513 -42 597 44T682 250Q682 363 610 442L196 29Q209 16 229 2T295 -27T388 -42Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2298\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circledtimes\",\n                \"keywords\": \"matrix Kronecker vector dyadic product tensor\",\n                \"source\": \"\\\\otimes\",\n                \"snippet\": \"\\\\otimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLEDTIMES. Keywords: matrix Kronecker vector dyadic product tensor</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2297\\\" d=\\\"M56 250Q56 394 156 488T384 583Q530 583 626 485T722 250Q722 110 625 14T390 -83Q249 -83 153 14T56 250ZM582 471Q531 510 496 523Q446 542 381 542Q324 542 272 519T196 471L389 278L485 375L582 471ZM167 442Q95 362 95 250Q95 137 167 58L359 250L167 442ZM610 58Q682 138 682 250Q682 363 610 442L418 250L610 58ZM196 29Q209 16 230 2T295 -27T388 -42Q409 -42 429 -40T465 -33T496 -23T522 -11T544 1T561 13T574 22T582 29L388 222L196 29Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2297\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"wreath product\",\n                \"source\": \"\\\\wr\",\n                \"snippet\": \"\\\\wr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 278.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">WREATH PRODUCT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2240\\\" d=\\\"M55 569Q55 583 83 583Q122 583 151 565T194 519T215 464T222 411Q222 360 194 304T139 193T111 89Q111 38 134 -7T195 -55Q222 -57 222 -69Q222 -83 189 -83Q130 -83 93 -33T55 90Q55 130 72 174T110 252T148 328T166 411Q166 462 144 507T83 555Q55 556 55 569Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2240\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Box\",\n                \"keywords\": \"QED end of proof\",\n                \"source\": \"\\\\Box\",\n                \"snippet\": \"\\\\Box\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOX. Keywords: QED end of proof</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25A1\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 40V649H95V40H682Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25A1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"boxed plus\",\n                \"source\": \"\\\\boxplus\",\n                \"snippet\": \"\\\\boxplus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOXED PLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-229E\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM369 365V649H95V365H369ZM682 365V649H409V365H682ZM369 40V325H95V40H369ZM682 40V325H409V40H682Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-229E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"boxed minus\",\n                \"source\": \"\\\\boxminus\",\n                \"snippet\": \"\\\\boxminus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOXED MINUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-229F\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 365V649H95V365H682ZM682 40V325H95V40H682Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-229F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"boxed times\",\n                \"source\": \"\\\\boxtimes\",\n                \"snippet\": \"\\\\boxtimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOXED TIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22A0\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H707Q714 686 722 676V13Q714 3 707 0H71ZM123 649Q147 625 214 555T335 430T389 374L654 649H123ZM95 70Q99 74 229 209T360 345L95 619V70ZM682 70V619L418 346Q417 344 549 207L682 70ZM654 41L400 304L388 315L123 41L256 40H522L654 41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22A0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"boxed dot\",\n                \"source\": \"\\\\boxdot\",\n                \"snippet\": \"\\\\boxdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOXED DOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22A1\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 40V649H95V40H682ZM330 345Q330 371 347 388T390 405Q412 405 430 389T448 345Q448 317 430 301T389 285T348 301T330 345Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22A1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square\",\n                \"keywords\": \"D'Alembert operator geometry quadrilateral prism shape\",\n                \"source\": \"\\\\square\",\n                \"snippet\": \"\\\\square\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE. Keywords: D'Alembert operator geometry quadrilateral prism shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25A1\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71ZM682 40V649H95V40H682Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25A1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Intersection\",\n                \"keywords\": \"sets\",\n                \"source\": \"\\\\cap\",\n                \"snippet\": \"\\\\cap\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INTERSECTION. Keywords: sets</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2229\\\" d=\\\"M88 -21T75 -21T55 -7V200Q55 231 55 280Q56 414 60 428Q61 430 61 431Q77 500 152 549T332 598Q443 598 522 544T610 405Q611 399 611 194V-7Q604 -22 591 -22Q582 -22 572 -9L570 405Q563 433 556 449T529 485Q498 519 445 538T334 558Q251 558 179 518T96 401Q95 396 95 193V-7Q88 -21 75 -21Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2229\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Union\",\n                \"keywords\": \"sets\",\n                \"source\": \"\\\\cup\",\n                \"snippet\": \"\\\\cup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UNION. Keywords: sets</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-222A\\\" d=\\\"M591 598H592Q604 598 611 583V376Q611 345 611 296Q610 162 606 148Q605 146 605 145Q586 68 507 23T333 -22Q268 -22 209 -1T106 66T56 173Q55 180 55 384L56 585Q66 598 75 598Q85 598 95 585V378L96 172L98 162Q112 95 181 57T332 18Q415 18 487 58T570 175Q571 180 571 383V583Q579 598 591 598Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-222A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"uplus\",\n                \"source\": \"\\\\uplus\",\n                \"snippet\": \"\\\\uplus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPLUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-228E\\\" d=\\\"M591 598H592Q604 598 611 583V376Q611 345 611 296Q610 162 606 148Q605 146 605 145Q586 68 507 23T333 -22Q268 -22 209 -1T106 66T56 173Q55 180 55 384L56 585Q66 598 75 598Q85 598 95 585V378L96 172L98 162Q112 95 181 57T332 18Q415 18 487 58T570 175Q571 180 571 383V583Q579 598 591 598ZM313 406Q313 417 313 435T312 459Q312 483 316 493T333 503T349 494T353 461V406V325H515Q516 325 519 323T527 316T531 305T527 294T520 287T515 285H353V204V152Q353 127 350 117T333 107T316 117T312 152Q312 158 312 175T313 204V285H151Q150 285 147 287T139 294T135 305T139 316T146 323T151 325H313V406Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-228E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square cap\",\n                \"keywords\": \"greatest common divisor gcd\",\n                \"source\": \"\\\\sqcap\",\n                \"snippet\": \"\\\\sqcap\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE CAP. Keywords: greatest common divisor gcd</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2293\\\" d=\\\"M83 0Q79 0 76 1T71 3T67 6T65 9T63 13T61 16V301L62 585Q70 595 76 598H592Q602 590 605 583V15Q598 2 587 0Q583 0 580 1T575 3T571 6T569 9T567 13T565 16V558H101V15Q94 2 83 0Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2293\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square cup\",\n                \"keywords\": \"set disjoint union least common multiple\",\n                \"source\": \"\\\\sqcup\",\n                \"snippet\": \"\\\\sqcup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE CUP. Keywords: set disjoint union least common multiple</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2294\\\" d=\\\"M77 0Q65 4 61 16V301L62 585Q72 598 81 598Q94 598 101 583V40H565V583Q573 598 585 598Q598 598 605 583V15Q602 10 592 1L335 0H77Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2294\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"wedge\",\n                \"keywords\": \"logical and greatest common divisor gcd vector wedge product\",\n                \"source\": \"\\\\wedge\",\n                \"snippet\": \"\\\\wedge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">WEDGE. Keywords: logical and greatest common divisor gcd vector wedge product</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2227\\\" d=\\\"M318 591Q325 598 333 598Q344 598 348 591Q349 590 414 445T545 151T611 -4Q609 -22 591 -22Q588 -22 586 -21T581 -20T577 -17T575 -13T572 -9T570 -4L333 528L96 -4Q87 -20 80 -21Q78 -22 75 -22Q57 -22 55 -4Q55 2 120 150T251 444T318 591Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2227\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vee\",\n                \"keywords\": \"logical or least common multiple\",\n                \"source\": \"\\\\vee\",\n                \"snippet\": \"\\\\vee\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VEE. Keywords: logical or least common multiple</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2228\\\" d=\\\"M55 580Q56 587 61 592T75 598Q86 598 96 580L333 48L570 580Q579 596 586 597Q588 598 591 598Q609 598 611 580Q611 574 546 426T415 132T348 -15Q343 -22 333 -22T318 -15Q317 -14 252 131T121 425T55 580Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2228\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dagger\",\n                \"keywords\": \"matrix transpose\",\n                \"source\": \"\\\\dagger\",\n                \"snippet\": \"\\\\dagger\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 444.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DAGGER. Keywords: matrix transpose</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2020\\\" d=\\\"M182 675Q195 705 222 705Q234 705 243 700T253 691T263 675L262 655Q262 620 252 549T240 454V449Q250 451 288 461T346 472T377 461T389 431Q389 417 379 404T346 390Q327 390 288 401T243 412H240V405Q245 367 250 339T258 301T261 274T263 225Q263 124 255 -41T239 -213Q236 -216 222 -216H217Q206 -216 204 -212T200 -186Q199 -175 199 -168Q181 38 181 225Q181 265 182 280T191 327T204 405V412H201Q196 412 157 401T98 390Q76 390 66 403T55 431T65 458T98 472Q116 472 155 462T205 449Q204 452 204 460T201 490T193 547Q182 619 182 655V675Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2020\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"double dagger\",\n                \"source\": \"\\\\ddagger\",\n                \"snippet\": \"\\\\ddagger\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.032ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 444.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOUBLE DAGGER.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2021\\\" d=\\\"M181 658Q181 705 222 705T263 658Q263 633 252 572T240 497Q240 496 241 496Q243 496 285 507T345 519Q365 519 376 508T388 478Q388 466 384 458T375 447T361 438H344Q318 438 282 448T241 459Q240 458 240 456Q240 449 251 384T263 297Q263 278 255 267T238 253T222 250T206 252T190 266T181 297Q181 323 192 383T204 458Q204 459 203 459Q198 459 162 449T101 438H84Q74 443 70 446T61 457T56 478Q56 497 67 508T99 519Q117 519 159 508T203 496Q204 496 204 499Q204 507 193 572T181 658ZM181 202Q181 249 222 249T263 202Q263 185 259 161T249 103T240 48V41H243Q248 41 287 52T346 63T377 52T389 22Q389 8 379 -5T346 -19Q327 -19 288 -8T243 3H240V-4Q243 -24 249 -58T259 -117T263 -158Q263 -177 255 -188T238 -202T222 -205T206 -203T190 -189T181 -158Q181 -141 185 -117T195 -59T204 -4V3H201Q196 3 157 -8T98 -19Q76 -19 66 -6T55 22T65 49T98 63Q117 63 156 52T201 41H204V48Q201 68 195 102T185 161T181 202Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2021\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"barwedge\",\n                \"source\": \"\\\\barwedge\",\n                \"snippet\": \"\\\\barwedge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BARWEDGE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22BC\\\" d=\\\"M55 698Q56 708 70 716H540Q554 708 555 698Q555 694 554 691T552 686T549 682T546 680T542 678T539 676H71Q70 676 68 677T65 679T61 682T58 686T56 691T55 698ZM555 18Q554 12 549 6T536 0H535Q525 0 515 17T459 132Q430 194 410 235L305 455L199 233Q176 185 147 125T105 36T90 7Q85 0 75 0Q63 0 58 11Q55 15 55 21Q58 31 170 266T285 507Q295 522 305 522T320 515Q322 513 439 268L555 24V18Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22BC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"veebar\",\n                \"keywords\": \"logic xor exclusive or\",\n                \"source\": \"\\\\veebar\",\n                \"snippet\": \"\\\\veebar\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VEEBAR. Keywords: logic xor exclusive or</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22BB\\\" d=\\\"M56 697Q56 706 62 711T75 716Q86 716 90 709Q91 708 104 680T147 592T199 483L305 261L411 483Q443 548 481 629Q512 694 518 705T535 716Q543 716 549 710T555 700Q555 693 501 577T388 340T325 210Q316 194 305 194Q292 194 285 210Q282 219 224 339T111 574T56 697ZM55 14T55 20T59 31T66 38T71 40H540Q555 32 555 20T540 0H71Q70 0 67 2T59 9Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22BB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curlywedge\",\n                \"source\": \"\\\\curlywedge\",\n                \"snippet\": \"\\\\curlywedge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.766ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 760.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURLYWEDGE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CF\\\" d=\\\"M104 -22Q95 -22 89 -16T83 -2Q83 11 98 16T135 23T192 46T256 103Q360 233 360 549Q360 554 360 557T361 563T362 567T364 569T367 572T371 576Q377 578 380 578Q401 578 401 547Q401 543 401 537T400 527Q409 53 648 19Q676 16 676 -2Q676 -10 670 -16T655 -22Q654 -22 642 -20Q556 -9 492 56T395 244Q381 294 381 303Q381 305 380 305T374 275T352 201T310 110T234 27T117 -20Q105 -22 104 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curlyvee\",\n                \"source\": \"\\\\curlyvee\",\n                \"snippet\": \"\\\\curlyvee\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.766ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 760.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURLYVEE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CE\\\" d=\\\"M83 558Q83 566 89 572T104 578Q108 578 116 577T146 570T190 555T239 526T286 480Q308 453 325 420T351 358T367 304T376 265T380 251T381 253Q381 262 395 312Q428 434 492 499T642 576Q654 578 655 578Q664 578 670 572T676 558Q676 543 657 540T599 524T525 476Q406 362 400 29V8Q400 -21 380 -21Q369 -21 362 -11Q360 -7 360 12Q360 115 348 200T308 360T231 480T111 537Q83 540 83 558Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Cap\",\n                \"source\": \"\\\\Cap\",\n                \"snippet\": \"\\\\Cap\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CAP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D2\\\" d=\\\"M88 -21T75 -21T55 -7V200Q55 231 55 280Q56 414 60 428Q61 430 61 431Q77 500 152 549T332 598Q443 598 522 544T610 405Q611 399 611 194V-7Q604 -22 591 -22Q582 -22 572 -9L570 405Q563 433 556 449T529 485Q498 519 445 538T334 558Q251 558 179 518T96 401Q95 396 95 193V-7Q88 -21 75 -21ZM229 -21H227Q215 -21 209 -7V166Q209 304 209 327T215 363Q226 398 259 421T333 444Q380 444 414 416T455 347Q457 339 457 166V-7Q449 -21 439 -21H437H435Q423 -21 417 -7V164Q417 303 417 325T411 358Q387 403 333 403T255 358Q250 347 250 325T249 164V-7Q241 -21 231 -21H229Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Cup\",\n                \"source\": \"\\\\Cup\",\n                \"snippet\": \"\\\\Cup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D3\\\" d=\\\"M591 598H592Q604 598 611 583V376Q611 345 611 296Q610 162 606 148Q605 146 605 145Q586 68 507 23T333 -22Q268 -22 209 -1T106 66T56 173Q55 180 55 384L56 585Q66 598 75 598Q85 598 95 585V378L96 172L98 162Q112 95 181 57T332 18Q415 18 487 58T570 175Q571 180 571 383V583Q579 598 591 598ZM437 598Q450 598 457 583V410Q457 237 455 229Q448 189 414 161T333 132Q291 132 255 157T211 230Q209 237 209 412L210 585Q220 598 229 598Q242 598 249 583V412Q249 273 249 251T255 218Q279 173 333 173T411 218Q416 229 416 251T417 412V583Q425 598 437 598Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bot\",\n                \"keywords\": \"Proposition contradictory contradiction\",\n                \"source\": \"\\\\bot\",\n                \"snippet\": \"\\\\bot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOT. Keywords: Proposition contradictory contradiction</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A5\\\" d=\\\"M369 652Q369 653 370 655T372 658T375 662T379 665T384 667T391 668Q402 666 409 653V40H708Q723 32 723 20T708 0H71Q70 0 67 2T59 9T55 20T59 31T66 38T71 40H369V652Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"top\",\n                \"source\": \"\\\\top\",\n                \"snippet\": \"\\\\top\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TOP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A4\\\" d=\\\"M55 642T55 648T59 659T66 666T71 668H708Q723 660 723 648T708 628H409V15Q402 2 391 0Q387 0 384 1T379 3T375 6T373 9T371 13T369 16V628H71Q70 628 67 630T59 637Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"intercal\",\n                \"source\": \"\\\\intercal\",\n                \"snippet\": \"\\\\intercal\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -576.1 556.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INTERCAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22BA\\\" d=\\\"M318 -182Q302 -212 280 -212H278H275Q249 -212 239 -182L238 84V351H162L87 352Q57 362 57 391T84 429Q89 431 280 431H470L474 429Q477 427 479 426T484 423T490 417T495 410T499 402T500 391Q500 365 470 352L394 351H318V-182Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22BA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"doublebarwedge\",\n                \"source\": \"\\\\doublebarwedge\",\n                \"snippet\": \"\\\\doublebarwedge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -934.9 611.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOUBLEBARWEDGE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJAMS-2A5E\\\" d=\\\"M55 795Q56 806 70 813H540Q554 806 555 795Q555 791 554 788T552 783T549 779T546 777T542 775T539 773H71Q70 773 68 774T65 776T61 779T58 783T56 788T55 795ZM55 601Q56 612 70 619H540Q554 612 555 601Q555 597 554 594T552 589T549 585T546 583T542 581T539 579H71Q70 579 68 580T65 582T61 585T58 589T56 594T55 601ZM75 -97Q67 -97 61 -91T55 -81Q55 -71 169 166T285 410Q295 425 305 425Q311 425 316 422T323 414L325 410Q327 404 441 167T555 -81Q555 -85 549 -91T535 -97T520 -90Q519 -89 506 -61T463 27T411 136L305 358L199 136Q167 71 129 -10Q98 -75 92 -86T75 -97Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJAMS-2A5E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lhd\",\n                \"source\": \"\\\\lhd\",\n                \"snippet\": \"\\\\lhd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LHD.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B2\\\" d=\\\"M694 -26Q686 -40 676 -41H670L382 95Q92 232 90 234Q83 239 83 249Q83 262 96 267Q101 270 379 401T665 537Q671 539 674 539Q686 539 694 524V-26ZM654 11T654 249T653 487T402 369T151 249L275 190Q399 131 524 72T652 11Q654 11 654 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rhd\",\n                \"source\": \"\\\\rhd\",\n                \"snippet\": \"\\\\rhd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RHD.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B3\\\" d=\\\"M83 523Q83 524 85 527T92 535T103 539Q107 539 389 406T680 268Q694 260 694 249Q694 239 687 234Q685 232 395 95L107 -41H101Q90 -40 83 -26V523ZM376 368Q323 393 254 425T155 472L125 487Q123 487 123 249T125 11Q127 12 252 71T502 190L626 249L376 368Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"triangle left\",\n                \"source\": \"\\\\triangleleft\",\n                \"snippet\": \"\\\\triangleleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 500.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLE LEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25C3\\\" d=\\\"M473 10Q466 -5 454 -5Q451 -5 445 -3Q444 -3 343 56T140 173T35 234Q26 239 26 250T35 266Q40 269 240 384T445 503Q451 505 453 505Q466 505 473 490V10ZM433 50T433 250T432 450T259 351T87 250T258 150T432 50Q433 50 433 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25C3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"triangle right\",\n                \"source\": \"\\\\triangleright\",\n                \"snippet\": \"\\\\triangleright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 500.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLE RIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25B9\\\" d=\\\"M26 489Q33 505 43 505Q51 505 260 385Q464 266 471 259Q473 257 473 250Q473 242 469 239Q459 231 260 115Q51 -5 43 -5Q39 -5 35 -1T28 7L26 11V489ZM412 250L67 450Q66 450 66 250T67 50Q69 51 240 150T412 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25B9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"unlhd\",\n                \"source\": \"\\\\unlhd\",\n                \"snippet\": \"\\\\unlhd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UNLHD.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B4\\\" d=\\\"M694 71Q686 58 676 56H670L382 192Q92 329 90 331Q83 336 83 346Q83 359 96 364Q101 367 379 498T665 634Q671 636 674 636Q686 636 694 621V71ZM654 108T654 346T653 584T402 466T151 346L275 287Q399 228 524 169T652 108Q654 108 654 346ZM83 -120Q83 -116 84 -113T86 -108T89 -104T92 -102T96 -100T99 -98H678Q679 -98 681 -99T684 -101T688 -104T691 -108T693 -113T694 -120Q692 -130 679 -138H98Q84 -130 83 -120Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"unrhd\",\n                \"source\": \"\\\\unrhd\",\n                \"snippet\": \"\\\\unrhd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UNRHD.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B5\\\" d=\\\"M83 620Q83 621 85 624T92 632T103 636Q107 636 389 503T680 365Q694 357 694 346Q694 336 687 331Q685 329 395 192L107 56H101Q90 58 83 71V620ZM376 465Q323 490 254 522T155 570L125 584Q123 584 123 346T125 108Q127 109 252 168T502 287L626 346L376 465ZM83 -120Q83 -116 84 -113T86 -108T89 -104T92 -102T96 -100T99 -98H678Q679 -98 681 -99T684 -101T688 -104T691 -108T693 -113T694 -120Q692 -130 679 -138H98Q84 -130 83 -120Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigtriangledown\",\n                \"source\": \"\\\\bigtriangledown\",\n                \"snippet\": \"\\\\bigtriangledown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 889.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGTRIANGLEDOWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25BD\\\" d=\\\"M59 480Q59 485 61 489T66 495T72 498L75 500H814Q828 493 828 480V474L644 132Q458 -210 455 -212Q451 -215 444 -215T433 -212Q429 -210 342 -49T164 282T64 466Q59 478 59 480ZM775 460H113Q113 459 278 153T444 -153T610 153T775 460Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25BD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigtriangleup\",\n                \"source\": \"\\\\bigtriangleup\",\n                \"snippet\": \"\\\\bigtriangleup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 889.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGTRIANGLEUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25B3\\\" d=\\\"M75 0L72 2Q69 3 67 5T62 11T59 20Q59 24 62 30Q65 37 245 370T428 707Q428 708 430 710T436 714T444 716Q451 716 455 712Q459 710 644 368L828 27V20Q828 7 814 0H75ZM610 347L444 653Q443 653 278 347T113 40H775Q775 42 610 347Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"set minus\",\n                \"source\": \"\\\\setminus\",\n                \"snippet\": \"\\\\setminus\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SET MINUS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2216\\\" d=\\\"M56 731Q56 740 62 745T75 750Q85 750 92 740Q96 733 270 255T444 -231Q444 -239 438 -244T424 -250Q414 -250 407 -240Q404 -236 230 242T56 731Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2216\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightthreetimes\",\n                \"source\": \"\\\\rightthreetimes\",\n                \"snippet\": \"\\\\rightthreetimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTTHREETIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CC\\\" d=\\\"M84 -22T76 -22T62 -16T55 -2Q55 4 78 30T249 215Q321 293 367 342Q672 672 683 682Q695 694 702 694Q710 694 716 688T722 674Q722 668 710 653T619 555Q587 521 568 500L416 336L568 172Q715 15 720 5Q722 1 722 -2Q722 -9 716 -15T702 -22H700Q693 -22 671 1T537 146L389 306Q387 304 340 253T237 143T135 33L89 -17Q84 -22 76 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftthreetimes\",\n                \"source\": \"\\\\leftthreetimes\",\n                \"snippet\": \"\\\\leftthreetimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTTHREETIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CB\\\" d=\\\"M55 674Q55 682 62 688T76 694H77Q83 694 100 677T208 561Q320 440 410 342Q462 286 541 201Q677 55 699 30T722 -2Q722 -9 716 -15T701 -22T688 -17Q687 -15 542 141T394 301L388 306L240 146Q119 15 101 -3T75 -22T61 -16T55 -2Q55 4 67 19T158 117Q190 151 209 172L361 336L209 500Q62 657 57 667Q55 671 55 674Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"equivalent\",\n                \"keywords\": \"identical congruent modulo modular arithmetic\",\n                \"source\": \"\\\\equiv\",\n                \"snippet\": \"\\\\equiv\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.081ex; margin-bottom: -0.253ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EQUIVALENT. Keywords: identical congruent modulo modular arithmetic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2261\\\" d=\\\"M56 444Q56 457 70 464H707Q722 456 722 444Q722 430 706 424H72Q56 429 56 444ZM56 237T56 250T70 270H707Q722 262 722 250T707 230H70Q56 237 56 250ZM56 56Q56 71 72 76H706Q722 70 722 56Q722 44 707 36H70Q56 43 56 56Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2261\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"congruent\",\n                \"keywords\": \"groups isomorphic\",\n                \"source\": \"\\\\cong\",\n                \"snippet\": \"\\\\cong\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: 0.049ex; margin-bottom: -0.22ex;\\\" viewBox=\\\"0 -719.6 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CONGRUENT. Keywords: groups isomorphic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2245\\\" d=\\\"M55 388Q55 463 101 526T222 589Q260 589 296 571T362 526T421 474T484 430T554 411Q616 411 655 458T694 560Q694 572 698 580T708 589Q722 589 722 556Q722 482 677 419T562 356H554Q517 356 481 374T414 418T355 471T292 515T223 533Q179 533 145 508Q109 479 96 440T80 378T69 355Q55 355 55 388ZM56 236Q56 249 70 256H707Q722 248 722 236Q722 225 708 217L390 216H72Q56 221 56 236ZM56 42Q56 57 72 62H708Q722 52 722 42Q722 30 707 22H70Q56 29 56 42Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2245\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"not equal\",\n                \"source\": \"\\\\neq\",\n                \"snippet\": \"\\\\neq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NOT EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2260\\\" d=\\\"M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2260\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"similar\",\n                \"keywords\": \"asymptotically equal big o order of relation element equivalence probability distribution random variable\",\n                \"source\": \"\\\\sim\",\n                \"snippet\": \"\\\\sim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SIMILAR. Keywords: asymptotically equal big o order of relation element equivalence probability distribution random variable</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-223C\\\" d=\\\"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-223C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"similar or equal\",\n                \"keywords\": \"groups isomorphic\",\n                \"source\": \"\\\\simeq\",\n                \"snippet\": \"\\\\simeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.081ex; margin-bottom: -0.253ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SIMILAR OR EQUAL. Keywords: groups isomorphic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2243\\\" d=\\\"M55 283Q55 356 103 409T217 463Q262 463 297 447T395 382Q431 355 446 344T493 320T554 307H558Q613 307 652 344T694 433Q694 464 708 464T722 432Q722 356 673 304T564 251H554Q510 251 465 275T387 329T310 382T223 407H219Q164 407 122 367Q91 333 85 295T76 253T69 250Q55 250 55 283ZM56 56Q56 71 72 76H706Q722 70 722 56Q722 44 707 36H70Q56 43 56 56Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2243\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"approximately\",\n                \"keywords\": \"probability distribution random variable\",\n                \"source\": \"\\\\approx\",\n                \"snippet\": \"\\\\approx\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.125ex; margin-bottom: -0.297ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">APPROXIMATELY. Keywords: probability distribution random variable</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2248\\\" d=\\\"M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2248\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"asymptotically\",\n                \"source\": \"\\\\asymp\",\n                \"snippet\": \"\\\\asymp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.035ex; margin-bottom: -0.206ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ASYMPTOTICALLY.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-224D\\\" d=\\\"M55 464Q55 471 60 477T74 484Q80 484 108 464T172 420T268 376T389 356Q436 356 483 368T566 399T630 436T675 467T695 482Q701 484 703 484Q711 484 716 478T722 464Q722 454 707 442Q550 316 389 316Q338 316 286 329T195 362T124 402T76 437T57 456Q55 462 55 464ZM57 45Q66 58 109 88T230 151T381 183Q438 183 494 168T587 135T658 94T703 61T720 45Q722 39 722 36Q722 28 717 22T703 16Q697 16 669 36T606 80T510 124T389 144Q341 144 294 132T211 101T147 64T102 33T82 18Q76 16 74 16Q66 16 61 22T55 36Q55 39 57 45Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-224D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"doteq\",\n                \"source\": \"\\\\doteq\",\n                \"snippet\": \"\\\\doteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -791.3 778.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOTEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2250\\\" d=\\\"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153ZM329 610Q329 634 346 652T389 670Q413 670 431 654T450 611Q450 586 433 568T390 550T347 567T329 610Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2250\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"proportional to\",\n                \"source\": \"\\\\propto\",\n                \"snippet\": \"\\\\propto\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 778.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROPORTIONAL TO.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221D\\\" d=\\\"M56 124T56 216T107 375T238 442Q260 442 280 438T319 425T352 407T382 385T406 361T427 336T442 315T455 297T462 285L469 297Q555 442 679 442Q687 442 722 437V398H718Q710 400 694 400Q657 400 623 383T567 343T527 294T503 253T495 235Q495 231 520 192T554 143Q625 44 696 44Q717 44 719 46H722V-5Q695 -11 678 -11Q552 -11 457 141Q455 145 454 146L447 134Q362 -11 235 -11Q157 -11 107 56ZM93 213Q93 143 126 87T220 31Q258 31 292 48T349 88T389 137T413 178T421 196Q421 200 396 239T362 288Q322 345 288 366T213 387Q163 387 128 337T93 213Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-221D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"models\",\n                \"keywords\": \"inference proposition follows semantically logic tautology \",\n                \"source\": \"\\\\models\",\n                \"snippet\": \"\\\\models\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.015ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 867.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MODELS. Keywords: inference proposition follows semantically logic tautology </title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A8\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V367H796Q811 359 811 347Q811 336 797 328L479 327H161L159 328V172L161 173H797Q798 172 800 171T803 169T805 167T808 164T809 162T810 158T811 153Q811 140 796 133H159V-235Q151 -249 141 -249H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"less than or equal\",\n                \"keywords\": \"order relation of elements subgroup\",\n                \"source\": \"\\\\leq\",\n                \"snippet\": \"\\\\leq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESS THAN OR EQUAL. Keywords: order relation of elements subgroup</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2264\\\" d=\\\"M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2264\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"greater than or equal\",\n                \"source\": \"\\\\geq\",\n                \"snippet\": \"\\\\geq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GREATER THAN OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2265\\\" d=\\\"M83 616Q83 624 89 630T99 636Q107 636 253 568T543 431T687 361Q694 356 694 346T687 331Q685 329 395 192L107 56H101Q83 58 83 76Q83 77 83 79Q82 86 98 95Q117 105 248 167Q326 204 378 228L626 346L360 472Q291 505 200 548Q112 589 98 597T83 616ZM84 -118Q84 -108 99 -98H678Q694 -104 694 -118Q694 -130 679 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2265\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precedes\",\n                \"keywords\": \"relation element predecessor\",\n                \"source\": \"\\\\prec\",\n                \"snippet\": \"\\\\prec\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECEDES. Keywords: relation element predecessor</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-227A\\\" d=\\\"M84 249Q84 262 91 266T117 270Q120 270 126 270T137 269Q388 273 512 333T653 512Q657 539 676 539Q685 538 689 532T694 520V515Q689 469 672 431T626 366T569 320T500 286T435 265T373 249Q379 248 404 242T440 233T477 221T533 199Q681 124 694 -17Q694 -41 674 -41Q658 -41 653 -17Q646 41 613 84T533 154T418 197T284 220T137 229H114Q104 229 98 230T88 235T84 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-227A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succeeds\",\n                \"keywords\": \"relation element successor\",\n                \"source\": \"\\\\succ\",\n                \"snippet\": \"\\\\succ\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCEEDS. Keywords: relation element successor</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-227B\\\" d=\\\"M84 517Q84 539 102 539Q115 539 119 529T125 503T137 459T171 404Q277 275 640 269H661Q694 269 694 249T661 229H640Q526 227 439 214T283 173T173 98T124 -17Q118 -41 103 -41Q83 -41 83 -17Q88 29 105 67T151 132T208 178T277 212T342 233T404 249Q401 250 380 254T345 263T302 276T245 299Q125 358 92 468Q84 502 84 517Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-227B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precedes or equal\",\n                \"source\": \"\\\\preceq\",\n                \"snippet\": \"\\\\preceq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECEDES OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2AAF\\\" d=\\\"M84 346Q84 359 91 363T117 367Q120 367 126 367T137 366Q388 370 512 430T653 609Q657 636 676 636Q685 635 689 629T694 618V612Q689 566 672 528T626 463T569 417T500 383T435 362T373 346Q379 345 404 339T440 330T477 318T533 296Q592 266 630 223T681 145T694 78Q694 57 674 57Q662 57 657 67T652 92T640 135T606 191Q500 320 137 326H114Q104 326 98 327T88 332T84 346ZM84 -131T84 -118T98 -98H679Q694 -106 694 -118T679 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2AAF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succeeds or equal\",\n                \"source\": \"\\\\succeq\",\n                \"snippet\": \"\\\\succeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCEEDS OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2AB0\\\" d=\\\"M84 614Q84 636 102 636Q115 636 119 626T125 600T137 556T171 501Q277 372 640 366H661Q694 366 694 346T661 326H640Q578 325 526 321T415 307T309 280T222 237T156 172T124 83Q122 66 118 62T103 57Q100 57 98 57T95 58T93 59T90 62T85 67Q83 71 83 80Q88 126 105 164T151 229T208 275T277 309T342 330T404 346Q401 347 380 351T345 360T302 373T245 396Q125 455 92 565Q84 599 84 614ZM84 -131T84 -118T98 -98H679Q694 -106 694 -118T679 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2AB0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"much less than\",\n                \"keywords\": \"smaller\",\n                \"source\": \"\\\\ll\",\n                \"snippet\": \"\\\\ll\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MUCH LESS THAN. Keywords: smaller</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-226A\\\" d=\\\"M639 -48Q639 -54 634 -60T619 -67H618Q612 -67 536 -26Q430 33 329 88Q61 235 59 239Q56 243 56 250T59 261Q62 266 336 415T615 567L619 568Q622 567 625 567Q639 562 639 548Q639 540 633 534Q632 532 374 391L117 250L374 109Q632 -32 633 -34Q639 -40 639 -48ZM944 -48Q944 -54 939 -60T924 -67H923Q917 -67 841 -26Q735 33 634 88Q366 235 364 239Q361 243 361 250T364 261Q367 266 641 415T920 567L924 568Q927 567 930 567Q944 562 944 548Q944 540 938 534Q937 532 679 391L422 250L679 109Q937 -32 938 -34Q944 -40 944 -48Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-226A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"much greater than\",\n                \"keywords\": \"bigger\",\n                \"source\": \"\\\\gg\",\n                \"snippet\": \"\\\\gg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MUCH GREATER THAN. Keywords: bigger</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-226B\\\" d=\\\"M55 539T55 547T60 561T74 567Q81 567 207 498Q297 449 365 412Q633 265 636 261Q639 255 639 250Q639 241 626 232Q614 224 365 88Q83 -65 79 -66Q76 -67 73 -67Q65 -67 60 -61T55 -47Q55 -39 61 -33Q62 -33 95 -15T193 39T320 109L321 110H322L323 111H324L325 112L326 113H327L329 114H330L331 115H332L333 116L334 117H335L336 118H337L338 119H339L340 120L341 121H342L343 122H344L345 123H346L347 124L348 125H349L351 126H352L353 127H354L355 128L356 129H357L358 130H359L360 131H361L362 132L363 133H364L365 134H366L367 135H368L369 136H370L371 137L372 138H373L374 139H375L376 140L378 141L576 251Q63 530 62 533Q55 539 55 547ZM360 539T360 547T365 561T379 567Q386 567 512 498Q602 449 670 412Q938 265 941 261Q944 255 944 250Q944 241 931 232Q919 224 670 88Q388 -65 384 -66Q381 -67 378 -67Q370 -67 365 -61T360 -47Q360 -39 366 -33Q367 -33 400 -15T498 39T625 109L626 110H627L628 111H629L630 112L631 113H632L634 114H635L636 115H637L638 116L639 117H640L641 118H642L643 119H644L645 120L646 121H647L648 122H649L650 123H651L652 124L653 125H654L656 126H657L658 127H659L660 128L661 129H662L663 130H664L665 131H666L667 132L668 133H669L670 134H671L672 135H673L674 136H675L676 137L677 138H678L679 139H680L681 140L683 141L881 251Q368 530 367 533Q360 539 360 547Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-226B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"proper subset\",\n                \"source\": \"\\\\subset\",\n                \"snippet\": \"\\\\subset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROPER SUBSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2282\\\" d=\\\"M84 250Q84 372 166 450T360 539Q361 539 370 539T395 539T430 540T475 540T524 540H679Q694 532 694 520Q694 511 681 501L522 500H470H441Q366 500 338 496T266 472Q244 461 224 446T179 404T139 337T124 250V245Q124 157 185 89Q244 25 328 7Q348 2 366 2T522 0H681Q694 -10 694 -20Q694 -32 679 -40H526Q510 -40 480 -40T434 -41Q350 -41 289 -25T172 45Q84 127 84 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2282\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"proper superset\",\n                \"source\": \"\\\\supset\",\n                \"snippet\": \"\\\\supset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROPER SUPERSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2283\\\" d=\\\"M83 520Q83 532 98 540H251Q267 540 297 540T343 541Q427 541 488 525T605 455Q693 374 693 250Q693 165 650 99T545 0T415 -39Q407 -40 251 -40H98Q83 -32 83 -20Q83 -10 96 0H255H308H337Q412 0 439 4T512 28Q533 39 553 54T599 96T639 163T654 250Q654 341 592 411Q557 449 512 472Q468 491 439 495T335 500H306H255L96 501Q83 511 83 520Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2283\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"subset or equal\",\n                \"source\": \"\\\\subseteq\",\n                \"snippet\": \"\\\\subseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUBSET OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2286\\\" d=\\\"M84 346Q84 468 166 546T360 635Q361 635 370 635T395 635T430 636T475 636T524 636H679Q694 628 694 616Q694 607 681 597L522 596H470H441Q366 596 338 592T266 568Q244 557 224 542T179 500T139 433T124 346V341Q124 253 185 185Q244 121 328 103Q348 98 366 98T522 96H681Q694 86 694 76Q694 64 679 56H526Q510 56 480 56T434 55Q350 55 289 71T172 141Q84 223 84 346ZM104 -131T104 -118T118 -98H679Q694 -106 694 -118T679 -138H118Q104 -131 104 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2286\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"superset or equal\",\n                \"source\": \"\\\\supseteq\",\n                \"snippet\": \"\\\\supseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUPERSET OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2287\\\" d=\\\"M83 616Q83 628 98 636H251Q267 636 297 636T343 637Q427 637 488 621T605 551Q693 470 693 346Q693 261 650 195T545 96T415 57Q407 56 251 56H98Q83 64 83 76Q83 86 96 96H255H308H337Q412 96 439 100T512 124Q533 135 553 150T599 192T639 259T654 346Q654 437 592 507Q557 545 512 568Q468 587 439 591T335 596H306H255L96 597Q83 607 83 616ZM84 -131T84 -118T98 -98H659Q674 -106 674 -118T659 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2287\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square subset\",\n                \"source\": \"\\\\sqsubset\",\n                \"snippet\": \"\\\\sqsubset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE SUBSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-228F\\\" d=\\\"M83 523Q87 535 99 539H679Q694 531 694 519Q694 506 679 499H123V-1H678Q694 -7 694 -21Q694 -34 679 -41H98Q93 -38 84 -28L83 247V523Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-228F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square supset\",\n                \"source\": \"\\\\sqsupset\",\n                \"snippet\": \"\\\\sqsupset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE SUPSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2290\\\" d=\\\"M64 506T64 519T78 539H699Q706 536 714 526V-28Q706 -38 699 -41H78Q64 -34 64 -21Q64 -6 80 -1H674V499H78Q64 506 64 519Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2290\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square subset or equal\",\n                \"source\": \"\\\\sqsubseteq\",\n                \"snippet\": \"\\\\sqsubseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE SUBSET OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2291\\\" d=\\\"M94 620Q98 632 110 636H699Q714 628 714 616T699 596H134V96H698Q714 90 714 76Q714 64 699 56H109Q104 59 95 69L94 344V620ZM84 -118Q84 -103 100 -98H698Q714 -104 714 -118Q714 -130 699 -138H98Q84 -131 84 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2291\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"square supset or equal\",\n                \"source\": \"\\\\sqsupseteq\",\n                \"snippet\": \"\\\\sqsupseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SQUARE SUPSET OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2292\\\" d=\\\"M64 603T64 616T78 636H668Q675 633 683 623V69Q675 59 668 56H78Q64 63 64 76Q64 91 80 96H643V596H78Q64 603 64 616ZM64 -118Q64 -108 79 -98H678Q694 -104 694 -118Q694 -130 679 -138H78Q64 -131 64 -118Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2292\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dashv\",\n                \"source\": \"\\\\dashv\",\n                \"snippet\": \"\\\\dashv\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DASHV.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A3\\\" d=\\\"M515 678Q515 679 516 681T518 684T521 688T525 691T530 693T537 694Q548 692 555 679V15Q548 2 537 0Q533 0 530 1T525 3T521 6T519 9T517 13T515 16V327H71Q70 327 67 329T59 336T55 347T59 358T66 365T71 367H515V678Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vdash\",\n                \"keywords\": \"turnstile proposition can be syntactically derived\",\n                \"source\": \"\\\\vdash\",\n                \"snippet\": \"\\\\vdash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VDASH. Keywords: turnstile proposition can be syntactically derived</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A2\\\" d=\\\"M55 678Q55 679 56 681T58 684T61 688T65 691T70 693T77 694Q88 692 95 679V367H540Q555 359 555 347Q555 334 540 327H95V15Q88 2 77 0Q73 0 70 1T65 3T61 6T59 9T57 13T55 16V678Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"perpendicular\",\n                \"keywords\": \"relatively prime orthogonal complement of subspace probability independence\",\n                \"source\": \"\\\\perp\",\n                \"snippet\": \"\\\\perp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PERPENDICULAR. Keywords: relatively prime orthogonal complement of subspace probability independence</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A5\\\" d=\\\"M369 652Q369 653 370 655T372 658T375 662T379 665T384 667T391 668Q402 666 409 653V40H708Q723 32 723 20T708 0H71Q70 0 67 2T59 9T55 20T59 31T66 38T71 40H369V652Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"mid\",\n                \"keywords\": \"divides set that satisfy satisfies field extension conditional probability\",\n                \"source\": \"\\\\mid\",\n                \"snippet\": \"\\\\mid\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 278.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MID. Keywords: divides set that satisfy satisfies field extension conditional probability</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2223\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2223\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"parallel\",\n                \"keywords\": \"geometry\",\n                \"source\": \"\\\\parallel\",\n                \"snippet\": \"\\\\parallel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PARALLEL. Keywords: geometry</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2225\\\" d=\\\"M133 736Q138 750 153 750Q164 750 170 739Q172 735 172 250T170 -239Q164 -250 152 -250Q144 -250 138 -244L137 -243Q133 -241 133 -179T132 250Q132 731 133 736ZM329 739Q334 750 346 750Q353 750 361 744L362 743Q366 741 366 679T367 250T367 -178T362 -243L361 -244Q355 -250 347 -250Q335 -250 329 -239Q327 -235 327 250T329 739Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2225\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bowtie\",\n                \"source\": \"\\\\bowtie\",\n                \"snippet\": \"\\\\bowtie\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.091ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 900.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOWTIE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22C8\\\" d=\\\"M833 50T833 250T832 450T659 351T487 250T658 150T832 50Q833 50 833 250ZM873 10Q866 -5 854 -5Q851 -5 845 -3L449 226L260 115Q51 -5 43 -5Q39 -5 35 -1T28 7L26 11V489Q33 505 43 505Q51 505 260 385L449 274L845 503Q851 505 853 505Q866 505 873 490V10ZM412 250L67 450Q66 450 66 250T67 50Q69 51 240 150T412 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22C8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Join\",\n                \"source\": \"\\\\Join\",\n                \"snippet\": \"\\\\Join\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.091ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 900.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">JOIN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22C8\\\" d=\\\"M833 50T833 250T832 450T659 351T487 250T658 150T832 50Q833 50 833 250ZM873 10Q866 -5 854 -5Q851 -5 845 -3L449 226L260 115Q51 -5 43 -5Q39 -5 35 -1T28 7L26 11V489Q33 505 43 505Q51 505 260 385L449 274L845 503Q851 505 853 505Q866 505 873 490V10ZM412 250L67 450Q66 450 66 250T67 50Q69 51 240 150T412 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22C8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"left times\",\n                \"source\": \"\\\\ltimes\",\n                \"snippet\": \"\\\\ltimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.016ex; margin-bottom: -0.188ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFT TIMES.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22C9\\\" d=\\\"M146 479Q159 492 166 492Q171 492 189 475T279 386L386 279L495 386Q598 492 608 492Q615 492 621 486T628 472Q628 464 522 357L415 250L522 144Q628 37 628 28Q628 21 622 15T608 8Q599 8 495 115L386 221L279 115Q204 40 188 24T166 8Q162 8 160 9T153 15T146 21V479ZM186 77L359 250L186 424V77Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22C9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"right times\",\n                \"keywords\": \"groups semidirect product\",\n                \"source\": \"\\\\rtimes\",\n                \"snippet\": \"\\\\rtimes\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.016ex; margin-bottom: -0.188ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHT TIMES. Keywords: groups semidirect product</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CA\\\" d=\\\"M146 472Q146 479 152 485T166 492Q171 492 189 475T279 386L386 279L495 386Q598 492 608 492Q615 492 628 479V21Q615 8 608 8Q599 8 495 115L386 221L279 115Q204 40 188 24T166 8Q159 8 153 14T146 28Q146 37 253 144L359 250L253 357Q146 464 146 472ZM588 77V424L499 337L415 250L588 77Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"smile\",\n                \"source\": \"\\\\smile\",\n                \"snippet\": \"\\\\smile\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.309ex; margin-bottom: -0.48ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SMILE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2323\\\" d=\\\"M923 378Q944 378 944 358Q944 345 912 311T859 259Q710 134 500 134Q288 134 140 259Q55 336 55 358Q55 366 61 372T75 378Q78 378 84 376Q86 376 101 356T147 310T221 257T339 212T500 193Q628 193 734 236Q841 282 903 363Q914 378 923 378Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2323\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"frown\",\n                \"source\": \"\\\\frown\",\n                \"snippet\": \"\\\\frown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.281ex; margin-bottom: -0.452ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FROWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2322\\\" d=\\\"M55 141Q55 149 72 174T125 234T209 303T329 360T478 388H526Q649 383 765 319Q814 291 858 250T923 179T944 141Q944 133 938 128T924 122Q914 124 912 125T902 139Q766 328 500 328Q415 328 342 308T225 258T150 199T102 148T84 124Q81 122 75 122Q55 127 55 141Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2322\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"in\",\n                \"source\": \"\\\\in\",\n                \"snippet\": \"\\\\in\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 667.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2208\\\" d=\\\"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2208\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"owns\",\n                \"keywords\": \"in\",\n                \"source\": \"\\\\ni\",\n                \"snippet\": \"\\\\ni\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 667.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">OWNS. Keywords: in</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-220B\\\" d=\\\"M83 520Q83 532 98 540H195Q202 540 220 540T249 541Q404 541 494 455Q582 374 582 250Q582 165 539 99T434 0T304 -39Q297 -40 195 -40H98Q83 -32 83 -20Q83 -10 96 0H200Q311 1 337 6Q369 14 401 28Q422 39 445 55Q484 85 508 127T537 191T542 228V230H98Q84 237 84 250T98 270H542V272Q542 280 539 295T527 336T497 391T445 445Q422 461 401 472Q386 479 374 483T347 491T325 495T298 498T273 499T239 500T200 500L96 501Q83 511 83 520Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-220B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"not in\",\n                \"source\": \"\\\\notin\",\n                \"snippet\": \"\\\\notin\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 667.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NOT IN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2209\\\" d=\\\"M196 25Q84 109 84 250Q84 372 166 450T360 539Q361 539 375 539T413 540T460 540L547 707Q550 716 563 716Q570 716 575 712T581 703T583 696T505 540H568Q583 532 583 520Q583 511 570 501L484 500L366 270H568Q583 262 583 250T568 230H346L247 38Q284 16 328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 447 -40T419 -41Q304 -41 228 3Q117 -211 115 -212Q111 -215 104 -215T92 -212T86 -204T84 -197Q84 -190 89 -183L196 25ZM214 61L301 230H124V228Q124 196 147 147T214 61ZM321 270L440 500Q353 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H321Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2209\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"approxeq\",\n                \"source\": \"\\\\approxeq\",\n                \"snippet\": \"\\\\approxeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 778.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">APPROXEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-224A\\\" d=\\\"M220 523Q163 523 124 486T84 412Q81 383 69 383Q56 383 56 413Q56 441 67 470Q78 508 111 537T187 575Q203 579 219 579Q248 579 271 572Q304 565 393 508Q498 439 551 439Q620 439 662 486Q688 512 693 557Q693 565 697 572T707 579Q719 579 719 548Q719 483 673 434T550 384Q512 384 467 405T386 453T305 501T220 523ZM222 288Q164 288 124 251T84 177Q81 148 69 148Q56 148 56 178Q56 206 67 235Q78 274 111 302T187 339Q198 343 220 343Q244 343 259 341T308 322T393 272Q496 203 553 203Q612 203 651 241T691 312Q693 343 705 343Q719 343 719 313Q719 245 673 199Q626 148 552 148Q513 148 467 170T385 218T304 266T222 288ZM51 -19Q51 -6 62 -1H387Q713 -1 715 -3Q725 -10 725 -20Q725 -27 718 -34Q714 -38 672 -38T387 -39H62Q51 -25 51 -19Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-224A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"thicksim\",\n                \"source\": \"\\\\thicksim\",\n                \"snippet\": \"\\\\thicksim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.304ex; margin-bottom: -0.476ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">THICKSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-223C\\\" d=\\\"M73 132Q55 132 55 172Q55 220 79 272Q95 301 111 319Q148 353 195 363Q199 364 212 364Q262 364 294 350T408 272Q472 222 522 212Q537 208 555 208Q606 208 646 243Q671 268 680 296T691 342T702 365Q713 365 716 354T719 314Q714 236 664 179L660 176Q657 173 654 170T644 163T631 154T615 146T596 139T574 134T549 132Q510 132 465 156T386 211T307 265T223 290Q162 290 124 249T86 165Q86 155 82 144T73 132Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-223C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"backsim\",\n                \"source\": \"\\\\backsim\",\n                \"snippet\": \"\\\\backsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BACKSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-223D\\\" d=\\\"M222 133Q147 133 102 197T56 335Q56 362 66 365Q71 369 77 364Q83 356 84 335T90 298Q102 254 137 222T223 189Q258 189 292 206T355 250T413 301T477 346T550 367Q628 367 673 309T722 171Q722 133 708 133Q703 133 699 141T694 162Q694 220 655 265T555 311Q519 311 485 293T421 248T363 196T298 152T222 133Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-223D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"backsimeq\",\n                \"source\": \"\\\\backsimeq\",\n                \"snippet\": \"\\\\backsimeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.081ex; margin-bottom: -0.253ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BACKSIMEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22CD\\\" d=\\\"M56 433Q56 464 71 464Q74 464 77 461Q82 454 82 438T91 397T123 347Q166 307 222 307Q264 307 308 331T386 385T465 438T556 463Q631 463 676 408T722 283Q722 250 708 250Q704 250 699 257Q695 265 693 286T682 330Q670 350 655 367Q612 407 556 407Q514 407 470 383T393 329T314 276T222 251Q148 251 102 306T56 433ZM57 56Q57 71 73 76H706Q722 70 722 56Q722 44 707 36H71Q57 43 57 56Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22CD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"triangleq\",\n                \"source\": \"\\\\triangleq\",\n                \"snippet\": \"\\\\triangleq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -934.9 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-225C\\\" d=\\\"M192 482H190Q187 483 185 484T181 488T177 493T175 501Q175 506 178 512Q184 523 278 687T375 853Q379 857 383 857Q385 857 387 858T390 859Q397 859 403 853Q405 851 499 687T600 512Q603 506 603 501Q603 488 587 482H192ZM548 523L389 798Q388 798 309 661T230 523T389 522T548 523ZM56 347Q56 360 70 367H708Q723 359 723 347Q723 336 709 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H709Q723 163 723 153Q723 140 708 133H70Q56 140 56 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-225C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circeq\",\n                \"source\": \"\\\\circeq\",\n                \"snippet\": \"\\\\circeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -863.1 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2257\\\" d=\\\"M279 612Q279 656 310 688T388 721Q433 721 465 689T498 612Q498 573 470 538T389 503Q336 503 308 538T279 612ZM458 614Q458 637 452 651T433 672T411 679T383 680T352 675T333 664T324 647T321 629T320 611Q320 593 321 584T332 562T359 545Q366 543 389 543H391Q406 543 414 544T435 552T452 573T458 614ZM56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2257\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bumpeq\",\n                \"source\": \"\\\\bumpeq\",\n                \"snippet\": \"\\\\bumpeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BUMPEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-224F\\\" d=\\\"M245 367Q251 415 288 453T392 492Q445 492 485 456T532 367H707Q722 359 722 347Q722 334 711 331T665 327H608H509Q500 332 498 336Q496 338 493 363T472 411Q443 451 389 451H387Q335 451 305 411Q290 392 287 374T282 344T268 327H72Q56 332 56 347Q56 360 70 367H245ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-224F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bumpeq\",\n                \"source\": \"\\\\Bumpeq\",\n                \"snippet\": \"\\\\Bumpeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.016ex; margin-bottom: -0.188ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BUMPEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-224E\\\" d=\\\"M245 367Q251 415 288 453T392 492Q445 492 485 456T532 367H707Q722 359 722 347Q722 334 711 331T665 327H608H509Q500 332 498 336Q496 338 493 363T472 411Q443 451 389 451H387Q335 451 305 411Q290 392 287 374T282 344T268 327H72Q56 332 56 347Q56 360 70 367H245ZM56 153Q56 168 72 173H268Q277 168 279 164Q281 162 284 137T305 89Q334 49 389 49H391Q442 49 472 89Q487 108 490 126T495 156T509 173H608H666Q701 173 711 170T722 153T707 133H532Q526 81 486 45T389 8Q331 8 291 45T245 133H70Q56 140 56 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-224E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"doteqdot\",\n                \"source\": \"\\\\doteqdot\",\n                \"snippet\": \"\\\\doteqdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOTEQDOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2251\\\" d=\\\"M421 474T389 474T339 493T321 541Q321 566 337 587T391 609Q456 602 456 541Q456 512 439 493ZM56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153ZM421 -108T389 -108T339 -89T321 -41Q321 -16 337 5T391 27Q456 20 456 -41Q456 -70 439 -89Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2251\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"thickapprox\",\n                \"source\": \"\\\\thickapprox\",\n                \"snippet\": \"\\\\thickapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.111ex; margin-bottom: -0.283ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">THICKAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2248\\\" d=\\\"M55 326Q55 394 101 437T226 481Q268 479 313 460T392 419T469 379T555 361Q622 361 662 401Q686 423 688 450Q693 479 702 479H705Q719 479 719 442Q719 367 670 327T554 286Q512 286 466 304T386 345T307 385T220 404Q184 404 157 394T120 374L111 363Q86 339 86 317Q86 288 71 288Q55 288 55 326ZM55 90Q55 164 105 205T226 246Q269 243 314 224T392 183T470 144T558 126Q622 126 662 166Q686 187 688 214Q693 244 704 244Q716 244 719 210Q719 165 702 132T658 82T605 58T552 50T498 58T447 77T384 110Q322 146 302 152Q263 168 220 168Q179 168 144 152Q128 147 107 125T86 81Q86 52 71 52Q55 52 55 90Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2248\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"fallingdotseq\",\n                \"source\": \"\\\\fallingdotseq\",\n                \"snippet\": \"\\\\fallingdotseq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FALLINGDOTSEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2252\\\" d=\\\"M15 541Q15 569 33 585T75 601T117 585T135 541Q135 514 118 498T75 481T32 498T15 541ZM56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153ZM642 -41Q642 -17 658 0T702 18Q726 18 744 3T762 -41Q762 -67 745 -84T702 -101Q676 -101 659 -85T642 -41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2252\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"risingdotseq\",\n                \"source\": \"\\\\risingdotseq\",\n                \"snippet\": \"\\\\risingdotseq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RISINGDOTSEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2253\\\" d=\\\"M642 541Q642 569 660 585T702 601T744 585T762 541Q762 515 745 498T702 481Q676 481 659 497T642 541ZM56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153ZM14 -41Q14 -15 31 1T74 18Q101 18 118 0T135 -41Q135 -64 118 -83T75 -102Q51 -102 33 -85T14 -41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2253\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varpropto\",\n                \"source\": \"\\\\varpropto\",\n                \"snippet\": \"\\\\varpropto\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 778.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARPROPTO.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221D\\\" d=\\\"M56 124T56 216T107 375T238 442Q260 442 280 438T319 425T352 407T382 385T406 361T427 336T442 315T455 297T462 285L469 297Q555 442 679 442Q687 442 722 437V398H718Q710 400 694 400Q657 400 623 383T567 343T527 294T503 253T495 235Q495 231 520 192T554 143Q625 44 696 44Q717 44 719 46H722V-5Q695 -11 678 -11Q552 -11 457 141Q455 145 454 146L447 134Q362 -11 235 -11Q157 -11 107 56ZM93 213Q93 143 126 87T220 31Q258 31 292 48T349 88T389 137T413 178T421 196Q421 200 396 239T362 288Q322 345 288 366T213 387Q163 387 128 337T93 213Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-221D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"therefore\",\n                \"source\": \"\\\\therefore\",\n                \"snippet\": \"\\\\therefore\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -576.1 667.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">THEREFORE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2234\\\" d=\\\"M273 411Q273 437 291 454T334 471Q358 471 375 454T393 411T376 368T333 351Q307 351 290 368T273 411ZM84 38Q110 38 126 21T143 -22Q143 -46 127 -64T83 -82Q57 -82 41 -65T24 -22Q24 4 41 21T84 38ZM524 -22Q524 4 541 21T584 38Q608 38 625 21T643 -22Q643 -45 627 -63T583 -82Q557 -82 541 -65T524 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2234\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"because\",\n                \"source\": \"\\\\because\",\n                \"snippet\": \"\\\\because\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -576.1 667.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BECAUSE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2235\\\" d=\\\"M23 411Q23 437 41 454T84 471Q108 471 125 454T143 411T126 368T83 351Q57 351 40 368T23 411ZM523 411Q523 437 541 454T584 471Q608 471 625 454T643 411T626 368T583 351Q557 351 540 368T523 411ZM274 -22Q274 4 291 21T334 38Q356 38 374 22T392 -22T375 -65T333 -82Q307 -82 291 -65T274 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2235\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"eqcirc\",\n                \"source\": \"\\\\eqcirc\",\n                \"snippet\": \"\\\\eqcirc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.307ex; margin-bottom: -0.478ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EQCIRC.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2256\\\" d=\\\"M56 347Q56 360 70 367H707Q722 359 722 347Q722 334 711 331T658 327H586H465L472 318Q496 288 496 250T472 182L465 173H586H663Q700 173 711 170T722 153T707 133H70Q56 140 56 153Q56 168 72 173H312L305 182Q281 212 281 250T305 318L312 327H72Q56 332 56 347ZM473 250Q473 265 472 273T460 297T428 327H349Q328 313 318 298T306 273T304 250Q304 235 305 227T317 203T349 173H428Q449 187 459 202T471 227T473 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2256\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"neq\",\n                \"source\": \"\\\\neq\",\n                \"snippet\": \"\\\\neq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2260\\\" d=\\\"M166 -215T159 -215T147 -212T141 -204T139 -197Q139 -190 144 -183L306 133H70Q56 140 56 153Q56 168 72 173H327L406 327H72Q56 332 56 347Q56 360 70 367H426Q597 702 602 707Q605 716 618 716Q625 716 630 712T636 703T638 696Q638 692 471 367H707Q722 359 722 347Q722 336 708 328L451 327L371 173H708Q722 163 722 153Q722 140 707 133H351Q175 -210 170 -212Q166 -215 159 -215Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2260\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"less than or equal\",\n                \"source\": \"\\\\leqq\",\n                \"snippet\": \"\\\\leqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -863.1 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESS THAN OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2266\\\" d=\\\"M674 753Q682 753 688 747T694 732T687 718Q686 717 417 589L151 463L399 345Q687 209 691 204Q694 198 694 193Q694 175 676 173H670L382 309Q92 446 90 448Q83 453 83 465Q84 476 96 482Q104 486 382 617T665 751Q669 753 674 753ZM84 39Q84 49 99 59H678Q694 53 694 39Q694 26 679 19H98Q84 26 84 39ZM83 -157Q83 -153 84 -150T86 -145T89 -141T92 -139T96 -137T99 -135H678Q694 -146 694 -155Q694 -168 679 -175H98Q84 -168 83 -157Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2266\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"greater than or equal\",\n                \"source\": \"\\\\geqq\",\n                \"snippet\": \"\\\\geqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -863.1 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GREATER THAN OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2267\\\" d=\\\"M83 733Q83 741 89 747T99 753Q107 753 253 685T543 548T687 478Q694 473 694 463T687 448Q685 446 395 309L107 173H101Q83 175 83 193Q83 194 83 196Q82 203 98 212Q117 222 248 284Q326 321 378 345L626 463L360 589Q291 622 200 665Q112 706 98 714T83 733ZM84 39Q84 49 99 59H678Q694 53 694 39Q694 26 679 19H98Q84 26 84 39ZM83 -157Q83 -153 84 -150T86 -145T89 -141T92 -139T96 -137T99 -135H678Q694 -146 694 -155Q694 -168 679 -175H98Q84 -168 83 -157Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2267\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"less than or equal\",\n                \"source\": \"\\\\leqslant\",\n                \"snippet\": \"\\\\leqslant\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESS THAN OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A7D\\\" d=\\\"M674 636Q682 636 688 630T694 615T687 601Q686 600 417 472L151 346L399 228Q687 92 691 87Q694 81 694 76Q694 58 676 56H670L382 192Q92 329 90 331Q83 336 83 348Q84 359 96 365Q104 369 382 500T665 634Q669 636 674 636ZM94 170Q102 172 104 172Q110 171 254 103T535 -30T678 -98Q694 -106 694 -118Q694 -136 676 -138H670L382 -2Q92 135 90 137Q83 142 83 154Q84 164 94 170Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A7D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"greater than or equal\",\n                \"source\": \"\\\\geqslant\",\n                \"snippet\": \"\\\\geqslant\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GREATER THAN OR EQUAL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A7E\\\" d=\\\"M83 616Q83 624 89 630T99 636Q107 636 253 568T543 431T687 361Q694 356 694 346T687 331Q685 329 395 192L107 56H101Q83 58 83 76Q83 77 83 79Q82 86 98 95Q117 105 248 167Q326 204 378 228L626 346L360 472Q291 505 200 548Q112 589 98 597T83 616ZM674 172Q692 172 694 154Q694 142 687 137Q685 135 395 -2L107 -138H101Q83 -136 83 -118Q83 -106 96 -100Q100 -98 380 35T665 170T674 172Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A7E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"approximately less than\",\n                \"source\": \"\\\\lessapprox\",\n                \"snippet\": \"\\\\lessapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">APPROXIMATELY LESS THAN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A85\\\" d=\\\"M667 761Q669 762 673 762Q682 762 688 756T694 741Q694 731 687 727Q684 724 420 613L156 502L416 392Q476 367 544 338T647 295T682 280Q694 274 694 262Q694 244 676 242Q670 242 524 303T235 425T90 487Q83 493 83 501Q83 514 94 519Q97 520 378 639T667 761ZM55 -23Q55 43 103 90T223 138Q265 138 316 114Q342 100 393 68L443 36Q502 0 554 0Q609 0 650 32T694 109Q694 138 708 138Q710 138 713 136T719 127T722 108Q722 37 673 -9T557 -56Q514 -56 468 -35T387 13T308 60T223 82Q167 82 127 50T83 -27Q81 -56 69 -56Q55 -56 55 -23ZM55 -257Q55 -191 103 -144T223 -96Q265 -96 316 -120Q342 -134 393 -166L443 -198Q502 -234 554 -234Q609 -234 650 -202T694 -125Q694 -96 708 -96Q710 -96 713 -98T719 -107T722 -126Q722 -197 673 -243T557 -290Q514 -290 468 -269T387 -221T308 -174T223 -152Q167 -152 127 -184T83 -261Q80 -290 69 -290Q55 -290 55 -257Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A85\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"approximately greater than\",\n                \"source\": \"\\\\gtrapprox\",\n                \"snippet\": \"\\\\gtrapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">APPROXIMATELY GREATER THAN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A86\\\" d=\\\"M90 727Q83 734 83 743Q83 751 89 756T104 762Q111 760 396 641Q686 518 687 517Q694 512 694 502T687 487Q686 486 543 425T253 303T101 242Q83 244 83 262Q83 274 95 280Q96 280 130 294T232 338T361 392L621 502L357 613Q93 724 90 727ZM55 -23Q55 43 103 90T223 138Q265 138 316 114Q342 100 393 68L443 36Q502 0 554 0Q609 0 650 32T694 109Q694 138 708 138Q710 138 713 136T719 127T722 108Q722 37 673 -9T557 -56Q514 -56 468 -35T387 13T308 60T223 82Q167 82 127 50T83 -27Q81 -56 69 -56Q55 -56 55 -23ZM55 -257Q55 -191 103 -144T223 -96Q265 -96 316 -120Q342 -134 393 -166L443 -198Q502 -234 554 -234Q609 -234 650 -202T694 -125Q694 -96 708 -96Q710 -96 713 -98T719 -107T722 -126Q722 -197 673 -243T557 -290Q514 -290 468 -269T387 -221T308 -174T223 -152Q167 -152 127 -184T83 -261Q80 -290 69 -290Q55 -290 55 -257Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A86\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lll\",\n                \"keywords\": \"smaller\",\n                \"source\": \"\\\\lll\",\n                \"snippet\": \"\\\\lll\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.097ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1333.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LLL. Keywords: smaller</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D8\\\" d=\\\"M639 -48Q639 -54 634 -60T619 -67H618Q612 -67 536 -26Q430 33 329 88Q61 235 59 239Q56 243 56 250T59 261Q62 266 336 415T615 567L619 568Q622 567 625 567Q639 562 639 548Q639 540 633 534Q632 532 374 391L117 250L374 109Q632 -32 633 -34Q639 -40 639 -48ZM958 -48Q958 -54 953 -60T938 -67H937Q931 -67 855 -26Q749 33 648 88Q380 235 378 239Q375 243 375 250T378 261Q381 266 655 415T934 567L938 568Q941 567 944 567Q958 562 958 548Q958 540 952 534Q951 532 693 391L436 250L693 109Q951 -32 952 -34Q958 -40 958 -48ZM1277 -48Q1277 -54 1272 -60T1257 -67H1256Q1250 -67 1174 -26Q1068 33 967 88Q699 235 697 239Q694 243 694 250T697 261Q700 266 974 415T1253 567L1257 568Q1260 567 1263 567Q1277 562 1277 548Q1277 540 1271 534Q1270 532 1012 391L755 250L1012 109Q1270 -32 1271 -34Q1277 -40 1277 -48Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ggg\",\n                \"keywords\": \"bigger\",\n                \"source\": \"\\\\ggg\",\n                \"snippet\": \"\\\\ggg\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.097ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1333.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GGG. Keywords: bigger</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D9\\\" d=\\\"M75 -67Q65 -67 60 -61T55 -48Q55 -40 61 -34Q62 -32 329 109L595 250L329 391Q62 532 61 534Q55 540 55 548Q55 562 69 567H77Q81 567 222 493T506 342T653 264Q667 250 653 236Q649 234 504 157T220 7T77 -67H75ZM364 547Q364 563 381 567L384 568Q387 568 518 499T795 353T955 269Q967 261 967 250T955 231Q925 216 780 139T513 -3T383 -67Q373 -67 369 -60T364 -47Q364 -40 370 -34Q373 -31 639 109L904 250L639 391Q373 531 370 534Q364 540 364 547ZM674 538T674 548T681 562T693 567Q699 567 816 505Q915 453 993 412Q1050 382 1132 339Q1241 282 1259 271T1277 250Q1277 241 1263 232Q1246 221 985 84Q698 -67 692 -67Q674 -67 674 -47Q674 -38 680 -33Q683 -30 947 109L1213 250L947 391Q683 530 680 533Q674 538 674 548Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lessdot\",\n                \"source\": \"\\\\lessdot\",\n                \"snippet\": \"\\\\lessdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESSDOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D6\\\" d=\\\"M86 261Q92 267 381 404T673 541Q680 541 686 535T693 521T689 510Q684 504 418 379L151 250L418 121Q686 -4 689 -10Q693 -14 693 -21T687 -34T675 -41Q668 -41 380 96T86 239Q82 244 82 250Q82 257 86 261ZM610 250Q610 224 592 198T531 172Q498 172 475 195Q453 214 453 250Q453 308 513 328Q515 330 535 330Q569 328 589 304T610 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gtrdot\",\n                \"source\": \"\\\\gtrdot\",\n                \"snippet\": \"\\\\gtrdot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GTRDOT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D7\\\" d=\\\"M82 521Q82 529 89 535T100 541Q107 541 395 404T689 261Q693 257 693 250T689 239Q684 234 396 97T100 -41Q95 -41 89 -35T82 -21Q82 -12 96 -4Q118 9 358 121L624 250L358 379Q91 503 86 510Q82 514 82 521ZM165 250Q165 282 188 306T239 330Q262 330 275 323Q303 312 318 283Q322 272 322 250Q322 213 300 195Q277 172 246 172Q224 172 213 177Q165 200 165 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lesssim\",\n                \"source\": \"\\\\lesssim\",\n                \"snippet\": \"\\\\lesssim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESSSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2272\\\" d=\\\"M674 732Q682 732 688 726T694 711T687 697Q686 696 417 568L151 442L399 324Q687 188 691 183Q694 177 694 172Q694 154 676 152H670L382 288Q92 425 90 427Q83 432 83 444Q84 455 96 461Q104 465 382 596T665 730Q669 732 674 732ZM56 -194Q56 -107 106 -51T222 6Q260 6 296 -12T362 -56T420 -108T483 -153T554 -171Q616 -171 654 -128T694 -29Q696 6 708 6Q722 6 722 -26Q722 -102 676 -164T557 -227Q518 -227 481 -209T415 -165T358 -113T294 -69T223 -51Q163 -51 125 -93T83 -196Q81 -228 69 -228Q56 -228 56 -202V-194Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2272\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gtrsim\",\n                \"source\": \"\\\\gtrsim\",\n                \"snippet\": \"\\\\gtrsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GTRSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2273\\\" d=\\\"M90 697Q83 704 83 712T88 726T99 732Q107 732 253 664T543 527T687 457Q694 452 694 442T687 427Q685 425 395 288L107 152H101Q83 154 83 172Q83 173 83 175Q82 182 98 191Q117 201 248 263Q326 300 378 324L626 442L360 568Q91 696 90 697ZM56 -194Q56 -107 106 -51T222 6Q260 6 296 -12T362 -56T420 -108T483 -153T554 -171Q616 -171 654 -128T694 -29Q696 6 708 6Q722 6 722 -26Q722 -102 676 -164T557 -227Q518 -227 481 -209T415 -165T358 -113T294 -69T223 -51Q163 -51 125 -93T83 -196Q81 -228 69 -228Q56 -228 56 -202V-194Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2273\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"eqslantless\",\n                \"source\": \"\\\\eqslantless\",\n                \"snippet\": \"\\\\eqslantless\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EQSLANTLESS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A95\\\" d=\\\"M674 636Q682 636 688 631T694 616Q694 605 687 601Q685 599 395 462L107 326H101Q83 328 83 345Q83 358 96 365Q102 367 382 500T665 634Q671 636 674 636ZM674 442Q692 442 694 424Q694 412 687 407Q686 406 417 278L151 152L399 34Q687 -102 691 -107Q694 -113 694 -118Q694 -136 676 -138H670L382 -2Q92 135 90 137Q83 142 83 154Q84 165 96 171Q104 175 382 306T665 440Q669 442 674 442Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A95\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"eqslantgtr\",\n                \"source\": \"\\\\eqslantgtr\",\n                \"snippet\": \"\\\\eqslantgtr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EQSLANTGTR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A96\\\" d=\\\"M83 616Q83 624 89 630T99 636Q107 636 253 568T543 431T687 361Q694 354 694 346Q694 328 676 326H670L382 462Q317 493 226 535Q119 585 101 595T83 616ZM94 440Q102 442 104 442Q110 441 254 373T535 240T678 172Q679 172 680 171Q694 164 694 153T687 137Q685 135 395 -2L107 -138H101Q83 -136 83 -118Q83 -106 93 -101L128 -84Q163 -68 230 -36T361 26L626 152L360 278Q91 406 90 407Q83 412 83 424Q84 434 94 440Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A96\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precsim\",\n                \"source\": \"\\\\precsim\",\n                \"snippet\": \"\\\\precsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-227E\\\" d=\\\"M84 442Q84 455 91 459T117 463Q120 463 126 463T137 462Q388 466 512 526T653 705Q657 732 676 732Q685 731 689 725T694 714V708Q689 662 672 624T626 559T569 513T500 479T435 458T373 442Q379 441 404 435T440 426T477 414T533 392Q592 362 630 319T681 241T694 174Q694 153 674 153Q662 153 657 163T652 188T640 231T606 287Q500 416 137 422H114Q104 422 98 423T88 428T84 442ZM56 -194Q56 -107 106 -51T222 6Q260 6 296 -12T362 -56T420 -108T483 -153T554 -171Q616 -171 654 -128T694 -29Q696 6 708 6Q722 6 722 -26Q722 -102 676 -164T557 -227Q518 -227 481 -209T415 -165T358 -113T294 -69T223 -51Q163 -51 125 -93T83 -196Q81 -228 69 -228Q56 -228 56 -202V-194Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-227E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succsim\",\n                \"source\": \"\\\\succsim\",\n                \"snippet\": \"\\\\succsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-227F\\\" d=\\\"M84 710Q84 732 102 732Q115 732 119 722T125 696T137 652T171 597Q277 468 640 462H661Q694 462 694 442T661 422H640Q578 421 526 417T415 403T309 376T222 333T156 268T124 179Q122 162 118 158T103 153Q100 153 98 153T95 154T93 155T90 158T85 163Q83 167 83 176Q88 222 105 260T151 325T208 371T277 405T342 426T404 442Q401 443 380 447T345 456T302 469T245 492Q125 551 92 661Q84 695 84 710ZM56 -194Q56 -107 106 -51T222 6Q260 6 296 -12T362 -56T420 -108T483 -153T554 -171Q616 -171 654 -128T694 -29Q696 6 708 6Q722 6 722 -26Q722 -102 676 -164T557 -227Q518 -227 481 -209T415 -165T358 -113T294 -69T223 -51Q163 -51 125 -93T83 -196Q81 -228 69 -228Q56 -228 56 -202V-194Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-227F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precapprox\",\n                \"source\": \"\\\\precapprox\",\n                \"snippet\": \"\\\\precapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2AB7\\\" d=\\\"M82 494T82 501T95 521H171Q405 527 511 569Q630 618 651 732Q652 734 653 740T655 748T658 754T663 759T672 761L686 754Q693 747 693 734Q684 668 648 623Q627 591 573 557T442 507L417 501Q428 496 442 494Q520 478 573 444T648 378Q684 333 693 267Q693 254 686 247Q673 234 659 245Q657 247 651 269Q630 383 511 432Q406 474 171 481H95Q82 494 82 501ZM70 -59Q57 -59 57 -26Q57 30 90 73T177 132Q191 136 226 136Q228 136 239 136T253 135T267 132T287 125T311 113T346 95T391 67Q462 20 502 5Q519 1 553 1Q586 1 602 5Q641 18 664 45T691 107Q694 136 704 136Q717 136 717 115V105Q717 39 671 -9T554 -58Q518 -58 481 -43T382 14Q302 63 273 74Q255 78 222 78Q188 78 173 74Q90 46 84 -28Q82 -59 70 -59ZM71 -294Q57 -294 57 -262Q57 -205 90 -162T177 -104Q191 -99 226 -99Q266 -103 277 -106Q310 -119 391 -168Q455 -212 502 -231Q519 -235 553 -235Q586 -235 602 -231Q640 -218 661 -195T686 -151T693 -115T704 -99Q717 -99 717 -121V-131Q717 -198 671 -246T556 -294Q519 -294 482 -279T382 -222Q307 -175 273 -162Q255 -157 222 -157Q188 -157 173 -162Q133 -175 110 -201T84 -264Q82 -294 71 -294Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2AB7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succapprox\",\n                \"source\": \"\\\\succapprox\",\n                \"snippet\": \"\\\\succapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2AB8\\\" d=\\\"M693 501Q693 493 679 481H604Q369 474 264 432Q143 382 124 269Q116 246 115 245Q101 234 88 247Q82 254 82 267Q89 329 126 378Q147 410 201 444T333 494L357 501Q354 502 340 505T318 510T295 516T269 525T243 535T215 548T188 565Q142 599 126 623Q89 672 82 734Q82 761 102 761L115 756Q116 755 124 732Q143 619 264 569Q371 527 604 521H679Q693 507 693 501ZM70 -59Q57 -59 57 -26Q57 30 90 73T177 132Q191 136 226 136Q228 136 239 136T253 135T267 132T287 125T311 113T346 95T391 67Q462 20 502 5Q519 1 553 1Q586 1 602 5Q641 18 664 45T691 107Q694 136 704 136Q717 136 717 115V105Q717 39 671 -9T554 -58Q518 -58 481 -43T382 14Q302 63 273 74Q255 78 222 78Q188 78 173 74Q90 46 84 -28Q82 -59 70 -59ZM71 -294Q57 -294 57 -262Q57 -205 90 -162T177 -104Q191 -99 226 -99Q266 -103 277 -106Q310 -119 391 -168Q455 -212 502 -231Q519 -235 553 -235Q586 -235 602 -231Q640 -218 661 -195T686 -151T693 -115T704 -99Q717 -99 717 -121V-131Q717 -198 671 -246T556 -294Q519 -294 482 -279T382 -222Q307 -175 273 -162Q255 -157 222 -157Q188 -157 173 -162Q133 -175 110 -201T84 -264Q82 -294 71 -294Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2AB8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Subset\",\n                \"source\": \"\\\\Subset\",\n                \"snippet\": \"\\\\Subset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUBSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D0\\\" d=\\\"M84 250Q84 372 166 450T360 539Q361 539 370 539T395 539T430 540T475 540T524 540H679Q694 532 694 520Q694 511 681 501L522 500H470H441Q366 500 338 496T266 472Q244 461 224 446T179 404T139 337T124 250V245Q124 157 185 89Q244 25 328 7Q348 2 366 2T522 0H681Q694 -10 694 -20Q694 -32 679 -40H526Q510 -40 480 -40T434 -41Q350 -41 289 -25T172 45Q84 127 84 250ZM694 134Q694 123 679 114H425H384Q350 114 326 121T277 154Q238 193 238 251Q238 322 295 361Q318 378 339 382T412 387Q423 387 459 387T520 386H679Q694 377 694 366Q694 354 679 346H519Q493 346 458 346T411 347Q360 347 341 342T303 315Q278 287 278 250Q278 210 301 187T351 156Q358 154 519 154H679Q694 146 694 134Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Supset\",\n                \"source\": \"\\\\Supset\",\n                \"snippet\": \"\\\\Supset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUPSET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D1\\\" d=\\\"M83 520Q83 532 98 540H251Q267 540 297 540T343 541Q427 541 488 525T605 455Q693 374 693 250Q693 165 650 99T545 0T415 -39Q407 -40 251 -40H98Q83 -32 83 -20Q83 -10 96 0H255H308H337Q412 0 439 4T512 28Q533 39 553 54T599 96T639 163T654 250Q654 341 592 411Q557 449 512 472Q468 491 439 495T335 500H306H255L96 501Q83 511 83 520ZM83 366Q83 376 96 386H244Q280 386 317 386T378 386L402 387Q456 387 498 348T540 250Q540 203 512 168T446 120Q427 114 353 114H99Q84 120 84 134Q84 147 98 154H258Q284 154 319 154T366 153Q416 153 436 158T474 185Q500 214 500 250Q500 290 477 313T426 344Q419 346 258 346H98Q83 354 83 366Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"subseteqq\",\n                \"source\": \"\\\\subseteqq\",\n                \"snippet\": \"\\\\subseteqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUBSETEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2AC5\\\" d=\\\"M84 463Q84 585 166 663T360 752Q361 752 370 752T395 752T430 752T475 753T524 753H679Q694 746 694 733Q694 724 681 714L522 713H470H441Q366 713 338 709T266 685Q244 674 224 659T179 617T139 550T124 463V458Q124 370 185 302Q244 238 328 220Q348 215 366 215T522 213H681Q694 203 694 193Q694 180 679 173H526Q510 173 480 173T434 172Q350 172 289 188T172 258Q84 340 84 463ZM84 -14T84 -1T98 19H679Q694 11 694 -1Q694 -14 679 -21H98Q84 -14 84 -1ZM84 -208T84 -195T98 -175H679Q694 -183 694 -195Q694 -208 679 -215H98Q84 -208 84 -195Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2AC5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"supseteqq\",\n                \"source\": \"\\\\supseteqq\",\n                \"snippet\": \"\\\\supseteqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUPSETEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2AC6\\\" d=\\\"M83 733Q83 746 98 753H251Q267 753 297 753T343 754Q427 754 488 738T605 668Q693 587 693 463Q693 378 650 312T545 213T415 174Q407 173 251 173H98Q83 180 83 193Q83 203 96 213H255H308H337Q412 213 439 217T512 241Q533 252 553 267T599 309T639 376T654 463Q654 554 592 624Q557 662 512 685Q468 704 439 708T335 713H306H255L96 714Q83 724 83 733ZM84 -14T84 -1T98 19H679Q694 11 694 -1Q694 -14 679 -21H98Q84 -14 84 -1ZM84 -208T84 -195T98 -175H679Q694 -183 694 -195Q694 -208 679 -215H98Q84 -208 84 -195Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2AC6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"preccurlyeq\",\n                \"source\": \"\\\\preccurlyeq\",\n                \"snippet\": \"\\\\preccurlyeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -719.6 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECCURLYEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-227C\\\" d=\\\"M112 270Q83 270 83 290Q83 301 94 307Q98 310 118 310Q516 310 620 464Q635 486 642 510T651 548T657 571T675 580Q693 577 693 559V552Q684 472 628 410T465 314Q436 303 372 290Q373 290 388 287T425 278T465 266Q674 199 693 28L694 17Q688 5 683 3Q677 0 673 0Q656 0 653 24Q623 270 118 270H112ZM110 116Q83 116 83 136T110 156H113Q134 156 160 155T231 146T318 128T407 95T489 44T550 -30T583 -131Q583 -153 563 -153Q556 -153 553 -152T547 -145T542 -127Q531 -54 478 0Q425 53 333 83T123 116H110Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-227C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succcurlyeq\",\n                \"source\": \"\\\\succcurlyeq\",\n                \"snippet\": \"\\\\succcurlyeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -719.6 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCCURLYEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-227D\\\" d=\\\"M668 310Q694 310 694 290Q694 285 691 279Q684 271 664 270Q550 268 464 257T301 220T179 146T124 27Q119 0 103 0T83 16Q83 21 83 31T92 68T113 121T157 177T229 231Q295 268 405 290Q404 290 389 293T352 302T312 314Q138 371 96 500Q83 541 83 562Q83 568 89 574T103 580Q115 580 120 570T126 542T138 497T173 442Q289 310 659 310H668ZM194 -131Q201 -60 241 -6T343 82T477 133T628 155Q632 155 644 155T661 156Q685 155 690 147Q694 143 694 136Q694 132 693 129T689 124T685 120T681 117L656 116Q596 114 543 106T436 79T342 35T272 -33T235 -127Q231 -154 212 -154Q203 -153 199 -147T194 -136V-131Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-227D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curlyeqprec\",\n                \"source\": \"\\\\curlyeqprec\",\n                \"snippet\": \"\\\\curlyeqprec\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURLYEQPREC.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22DE\\\" d=\\\"M113 424Q83 424 83 444Q83 453 96 464H121Q181 466 234 474T341 501T435 545T505 613T542 707Q545 734 564 734Q583 731 583 714Q583 658 560 613T500 538T414 486T321 453T229 434T156 426T113 424ZM112 270Q83 270 83 290Q83 301 94 307Q98 310 118 310Q624 310 653 556Q657 580 675 580Q693 577 693 559V552Q684 472 628 410T465 314Q436 303 372 290Q373 290 388 287T425 278T465 266Q674 199 693 28L694 17L692 14Q691 11 689 8T683 3T673 0Q657 0 653 24Q623 270 118 270H112Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22DE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curlyeqsucc\",\n                \"source\": \"\\\\curlyeqsucc\",\n                \"snippet\": \"\\\\curlyeqsucc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURLYEQSUCC.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22DF\\\" d=\\\"M195 713Q195 725 201 729T214 734Q227 734 231 722T238 691T255 641T299 580Q405 474 656 464H681Q694 451 694 443Q694 424 670 424H664Q535 424 415 465T235 595Q195 657 195 713ZM668 310Q694 310 694 290Q694 285 691 279Q684 271 664 270Q550 268 464 257T301 220T179 146T124 27Q119 0 103 0T83 16Q83 21 83 31T92 68T113 121T157 177T229 231Q295 268 405 290Q404 290 389 293T352 302T312 314Q138 371 96 500Q83 541 83 562Q83 568 89 574T103 580Q115 580 120 570T126 542T138 497T173 442Q289 310 659 310H668Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22DF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacktriangleleft\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\blacktriangleleft\",\n                \"snippet\": \"\\\\blacktriangleleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKTRIANGLELEFT. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJAMS-25C0\\\" d=\\\"M694 -26Q686 -40 676 -41H670L382 95Q92 232 90 234Q83 239 83 249Q83 262 96 267Q101 270 379 401T665 537Q671 539 674 539Q686 539 694 524V-26Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJAMS-25C0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacktriangleright\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\blacktriangleright\",\n                \"snippet\": \"\\\\blacktriangleright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKTRIANGLERIGHT. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25B6\\\" d=\\\"M83 523Q83 524 85 527T92 535T103 539Q107 539 389 406T680 268Q694 260 694 249Q694 239 687 234Q685 232 395 95L107 -41H101Q90 -40 83 -26V523Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25B6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"trianglelefteq\",\n                \"source\": \"\\\\trianglelefteq\",\n                \"snippet\": \"\\\\trianglelefteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLELEFTEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B4\\\" d=\\\"M694 71Q686 58 676 56H670L382 192Q92 329 90 331Q83 336 83 346Q83 359 96 364Q101 367 379 498T665 634Q671 636 674 636Q686 636 694 621V71ZM654 108T654 346T653 584T402 466T151 346L275 287Q399 228 524 169T652 108Q654 108 654 346ZM83 -120Q83 -116 84 -113T86 -108T89 -104T92 -102T96 -100T99 -98H678Q679 -98 681 -99T684 -101T688 -104T691 -108T693 -113T694 -120Q692 -130 679 -138H98Q84 -130 83 -120Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"trianglerighteq\",\n                \"source\": \"\\\\trianglerighteq\",\n                \"snippet\": \"\\\\trianglerighteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLERIGHTEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B5\\\" d=\\\"M83 620Q83 621 85 624T92 632T103 636Q107 636 389 503T680 365Q694 357 694 346Q694 336 687 331Q685 329 395 192L107 56H101Q90 58 83 71V620ZM376 465Q323 490 254 522T155 570L125 584Q123 584 123 346T125 108Q127 109 252 168T502 287L626 346L376 465ZM83 -120Q83 -116 84 -113T86 -108T89 -104T92 -102T96 -100T99 -98H678Q679 -98 681 -99T684 -101T688 -104T691 -108T693 -113T694 -120Q692 -130 679 -138H98Q84 -130 83 -120Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vartriangleleft\",\n                \"keywords\": \"normal subgroup shape (uncommon) ideal of ring\",\n                \"source\": \"\\\\vartriangleleft\",\n                \"snippet\": \"\\\\vartriangleleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARTRIANGLELEFT. Keywords: normal subgroup shape (uncommon) ideal of ring</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B2\\\" d=\\\"M694 -26Q686 -40 676 -41H670L382 95Q92 232 90 234Q83 239 83 249Q83 262 96 267Q101 270 379 401T665 537Q671 539 674 539Q686 539 694 524V-26ZM654 11T654 249T653 487T402 369T151 249L275 190Q399 131 524 72T652 11Q654 11 654 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vartriangleright\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\vartriangleright\",\n                \"snippet\": \"\\\\vartriangleright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 778.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARTRIANGLERIGHT. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B3\\\" d=\\\"M83 523Q83 524 85 527T92 535T103 539Q107 539 389 406T680 268Q694 260 694 249Q694 239 687 234Q685 232 395 95L107 -41H101Q90 -40 83 -26V523ZM376 368Q323 393 254 425T155 472L125 487Q123 487 123 249T125 11Q127 12 252 71T502 190L626 249L376 368Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lessgtr\",\n                \"source\": \"\\\\lessgtr\",\n                \"snippet\": \"\\\\lessgtr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESSGTR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2276\\\" d=\\\"M734 181Q734 173 728 167T714 161Q711 161 386 280T54 404Q44 408 44 421Q44 432 52 437Q66 443 388 562T714 681Q721 681 727 675T734 661Q734 651 722 645Q711 639 462 546Q441 539 420 531L122 421L420 311L723 198Q734 192 734 181ZM44 247Q44 255 50 261T63 267Q66 267 391 148T723 24Q734 18 734 7T723 -10Q716 -14 391 -133T63 -253Q56 -253 50 -247T44 -233Q44 -223 55 -217Q67 -210 317 -118Q337 -110 357 -103L655 7L357 117L54 230Q44 236 44 247Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2276\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lesseqgtr\",\n                \"source\": \"\\\\lesseqgtr\",\n                \"snippet\": \"\\\\lesseqgtr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.509ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -1006.6 778.5 1510.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESSEQGTR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22DA\\\" d=\\\"M674 445Q674 438 669 432T655 425T369 531T90 640Q83 645 83 655Q83 668 95 673Q644 886 654 886Q662 886 668 880T674 866Q674 856 663 850Q649 843 411 751L160 655L407 560Q474 534 561 501Q646 469 660 462T674 445ZM84 250Q84 260 99 270H658Q674 264 674 250Q674 238 659 230H98Q84 237 84 250ZM83 55Q83 68 94 73Q98 76 104 76Q108 75 383 -30T664 -138Q674 -144 674 -155Q674 -165 667 -170Q664 -173 385 -279T104 -386Q85 -386 83 -368Q83 -354 92 -349Q93 -349 347 -251L597 -155L346 -59Q296 -40 223 -12Q118 28 101 36T83 55Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22DA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lesseqqgtr\",\n                \"source\": \"\\\\lesseqqgtr\",\n                \"snippet\": \"\\\\lesseqqgtr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 778.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LESSEQQGTR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A8B\\\" d=\\\"M674 1003Q681 1003 687 999T694 983Q694 973 683 967Q669 959 420 868L162 772L422 676Q683 579 685 577Q694 571 694 560Q694 550 687 546T673 541Q669 542 384 647T93 755Q83 760 83 772Q83 783 91 788Q98 791 383 897T674 1003ZM84 354T84 367T98 387H679Q694 379 694 367Q694 354 679 347H98Q84 354 84 367ZM84 160T84 173T98 193H679Q694 185 694 173Q694 160 679 153H98Q84 160 84 173ZM94 -3Q102 -1 104 -1Q107 -2 392 -107T684 -215Q694 -219 694 -232Q694 -241 687 -247Q686 -248 395 -357Q106 -463 101 -463Q83 -461 83 -443Q83 -431 94 -426Q97 -423 357 -328L615 -232L355 -136Q94 -39 92 -37Q83 -31 83 -21Q83 -9 94 -3Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A8B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gtreqqless\",\n                \"source\": \"\\\\gtreqqless\",\n                \"snippet\": \"\\\\gtreqqless\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.843ex\\\" style=\\\"vertical-align: -1.338ex;\\\" viewBox=\\\"0 -1078.4 778.5 1654.5\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GTREQQLESS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A8C\\\" d=\\\"M104 541Q98 541 91 545T83 560Q83 571 92 577Q94 579 355 676L615 772L357 868Q108 959 94 967Q83 973 83 983Q83 989 87 996T104 1003Q109 1002 396 896T687 787Q694 781 694 772Q694 759 684 755Q678 752 393 647T104 541ZM84 367Q84 380 98 387H679Q694 379 694 367Q694 356 680 348L390 347H100Q84 352 84 367ZM84 173Q84 188 100 193H680Q694 183 694 173Q694 160 679 153H98Q84 160 84 173ZM674 -1Q682 -1 688 -6T694 -20Q694 -31 685 -37Q683 -39 422 -136L162 -232L420 -328Q680 -423 683 -426Q694 -431 694 -443Q694 -461 676 -463Q671 -463 382 -357Q91 -248 90 -247Q83 -242 83 -232Q83 -220 93 -215Q667 -1 674 -1Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A8C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gtreqless\",\n                \"source\": \"\\\\gtreqless\",\n                \"snippet\": \"\\\\gtreqless\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.509ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -1006.6 778.5 1510.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GTREQLESS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22DB\\\" d=\\\"M111 425T102 425T88 431T83 445V446Q83 455 96 461Q111 469 203 504Q287 536 350 560L597 655L346 751Q94 848 92 850Q83 856 83 866Q83 873 88 879T104 886Q109 885 386 779T667 670Q674 665 674 655T667 640Q665 638 388 532ZM84 250Q84 260 99 270H658Q674 264 674 250Q674 238 659 230H98Q84 237 84 250ZM653 76Q656 76 660 75T669 68T674 56Q674 46 665 40Q663 38 411 -59L160 -155L410 -251Q664 -349 665 -349Q674 -354 674 -368Q672 -386 654 -386Q650 -386 371 -279T90 -170Q83 -165 83 -155Q83 -144 93 -138Q645 76 653 76Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22DB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gtrless\",\n                \"source\": \"\\\\gtrless\",\n                \"snippet\": \"\\\\gtrless\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GTRLESS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2277\\\" d=\\\"M83 661Q83 668 88 674T104 681Q111 679 396 560Q686 437 687 436Q694 431 694 421T687 406Q686 405 543 344T253 222T101 161Q83 163 83 180Q83 194 95 199Q96 199 130 213T232 257T361 311L621 421L357 532Q307 553 233 584Q121 631 102 640T83 661ZM673 267Q694 267 694 248Q694 237 687 232Q684 229 420 118L156 7L416 -103L683 -215Q694 -222 694 -233Q694 -251 676 -253Q670 -253 524 -192T235 -70T90 -8Q83 -1 83 7Q83 19 94 24Q97 25 378 144T667 266Q669 267 673 267Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2277\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"backepsilon\",\n                \"source\": \"\\\\backepsilon\",\n                \"snippet\": \"\\\\backepsilon\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.06ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex; margin-right: -0.063ex;\\\" viewBox=\\\"0 -576.1 456.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BACKEPSILON.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-220D\\\" d=\\\"M154 -1Q122 -1 112 3T102 26Q102 63 158 63H178Q192 64 206 65T228 66T240 68Q301 85 324 146L329 157H244Q158 157 153 161Q149 162 145 169T140 183Q140 201 158 215L167 221H256L344 223L349 237Q352 262 352 287Q352 308 351 315Q341 352 315 368T256 385Q231 385 206 376T166 356T149 346Q143 346 138 364T132 388Q132 396 147 406Q198 440 252 440Q291 440 318 435Q421 404 451 301Q456 288 456 248V234Q456 151 391 86Q330 25 240 3Q212 -1 154 -1Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-220D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"between\",\n                \"source\": \"\\\\between\",\n                \"snippet\": \"\\\\between\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BETWEEN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-226C\\\" d=\\\"M104 730Q104 749 123 749Q130 749 138 745Q186 717 237 671L250 659L261 670Q297 703 332 726T375 750T389 744T395 730Q395 721 390 717T364 699T322 668Q290 641 283 632Q280 628 281 627T293 612Q425 454 425 250Q425 144 388 51T293 -112Q282 -125 281 -126T283 -132Q306 -162 379 -209Q395 -219 395 -230Q395 -238 389 -244T375 -250T335 -228T262 -171L250 -159L238 -170Q202 -203 167 -226T124 -250T110 -244T104 -230Q104 -219 121 -209Q199 -156 216 -132Q219 -128 218 -127T206 -112Q74 46 74 250T206 612Q217 625 218 626T216 632Q199 656 121 709Q104 719 104 730ZM249 -94Q364 61 364 250Q364 430 265 574Q253 590 249 594L242 583Q134 439 134 250Q134 114 192 -1Q212 -44 242 -83L249 -94Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-226C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"pitchfork\",\n                \"source\": \"\\\\pitchfork\",\n                \"snippet\": \"\\\\pitchfork\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 667.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PITCHFORK.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22D4\\\" d=\\\"M76 -22Q64 -22 56 -7V176L57 360L59 370Q66 401 83 426T123 468T171 495T221 513T265 522T298 527L311 528H314V625L315 723Q325 736 334 736Q346 736 354 721V528H356L368 527Q380 526 399 523T441 515T490 498T537 472T578 433T606 379Q611 359 611 171V-7Q604 -21 591 -21T571 -7V170Q571 313 571 337T565 375Q555 408 526 432T461 467T402 482T365 487H354V-7Q347 -21 334 -21T314 -7V487H303Q251 484 207 467Q121 438 99 367L97 357L96 174V-9Q86 -22 76 -22Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22D4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"shortmid\",\n                \"source\": \"\\\\shortmid\",\n                \"snippet\": \"\\\\shortmid\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.517ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 222.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SHORTMID.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2223\\\" d=\\\"M91 417Q104 430 111 430T131 417V-10Q116 -23 111 -23T91 -10V417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2223\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"smallfrown\",\n                \"source\": \"\\\\smallfrown\",\n                \"snippet\": \"\\\\smallfrown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.281ex; margin-bottom: -0.452ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SMALLFROWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2322\\\" d=\\\"M77 122Q68 122 63 126T57 135T55 142Q55 151 68 176T111 235T177 302T271 356T388 378Q451 378 508 355T602 300T668 233T709 174T722 142Q722 124 704 122Q692 122 685 134T658 179T606 243Q511 338 390 338Q354 338 320 329Q251 312 193 263T97 141Q87 123 77 122Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2322\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"smallsmile\",\n                \"source\": \"\\\\smallsmile\",\n                \"snippet\": \"\\\\smallsmile\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.327ex; margin-bottom: -0.499ex;\\\" viewBox=\\\"0 -504.3 778.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SMALLSMILE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2323\\\" d=\\\"M389 143Q324 143 266 164T171 215T107 277T67 330T55 358T60 371T77 378Q85 377 92 367T116 331T158 280Q256 182 389 182Q475 182 552 227T675 351Q688 378 704 378Q722 376 722 358Q722 352 710 330T670 276T605 215T511 164T389 143Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2323\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Vdash\",\n                \"source\": \"\\\\Vdash\",\n                \"snippet\": \"\\\\Vdash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22A9\\\" d=\\\"M55 678Q55 679 56 681T58 684T61 688T65 691T70 693T77 694Q88 692 95 679V15Q88 2 77 0Q73 0 70 1T65 3T61 6T59 9T57 13T55 16V678ZM249 678Q249 679 250 681T252 684T255 688T259 691T264 693T271 694Q282 692 289 679V367H651Q666 359 666 347Q666 334 651 327H289V15Q282 2 271 0Q267 0 264 1T259 3T255 6T253 9T251 13T249 16V678Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22A9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vDash\",\n                \"source\": \"\\\\vDash\",\n                \"snippet\": \"\\\\vDash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.015ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 867.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22A8\\\" d=\\\"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V367H796Q811 359 811 347Q811 336 797 328L479 327H161L159 328V172L161 173H797Q798 172 800 171T803 169T805 167T808 164T809 162T810 158T811 153Q811 140 796 133H159V-235Q151 -249 141 -249H139Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22A8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Vvdash\",\n                \"source\": \"\\\\Vvdash\",\n                \"snippet\": \"\\\\Vvdash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 889.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VVDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22AA\\\" d=\\\"M55 678Q55 679 56 681T58 684T61 688T65 691T70 693T77 694Q88 692 95 679V15Q88 2 77 0Q73 0 70 1T65 3T61 6T59 9T57 13T55 16V678ZM237 678Q237 679 238 681T240 684T243 688T247 691T252 693T259 694Q270 692 277 679V15Q270 2 259 0Q255 0 252 1T247 3T243 6T241 9T239 13T237 16V678ZM419 678Q419 679 420 681T422 684T425 688T429 691T434 693T441 694Q452 692 459 679V367H818Q833 359 833 347Q833 334 818 327H459V15Q452 2 441 0Q437 0 434 1T429 3T425 6T423 9T421 13T419 16V678Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22AA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"shortparallel\",\n                \"source\": \"\\\\shortparallel\",\n                \"snippet\": \"\\\\shortparallel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 389.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SHORTPARALLEL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2225\\\" d=\\\"M55 417Q69 431 76 431T95 419V-12Q84 -23 76 -23Q72 -23 69 -22T62 -16T55 -10V417ZM293 419Q300 431 310 431L324 424L331 417V-10Q316 -23 309 -23L297 -19L293 -12V419Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2225\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nshortparallel\",\n                \"source\": \"\\\\nshortparallel\",\n                \"snippet\": \"\\\\nshortparallel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.992ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.045ex; margin-right: -0.042ex;\\\" viewBox=\\\"-19.5 -576.1 427 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSHORTPARALLEL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E007\\\" d=\\\"M56 417Q68 431 76 431L89 426L96 419V317L98 215L193 273L291 330V375L293 419Q301 431 311 431Q331 431 331 388L333 355L356 370Q381 384 388 384Q394 384 400 377T407 363Q407 354 367 328L331 308V-10Q316 -23 310 -23Q300 -23 293 -12L291 135V284L98 168L96 77V-12Q84 -24 76 -24L62 -19L58 -12L56 66V144L31 128Q5 114 -2 114Q-8 114 -14 121T-20 136Q-20 142 -14 147T20 170L56 190V417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E007\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ncong\",\n                \"source\": \"\\\\ncong\",\n                \"snippet\": \"\\\\ncong\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NCONG.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2246\\\" d=\\\"M55 417Q55 479 101 528T222 578Q259 578 294 564T393 507Q413 493 434 480T469 460T484 454L537 549Q587 639 595 647Q600 652 607 652Q615 652 621 647T628 634Q628 625 575 536Q524 446 524 443Q527 440 555 440Q603 440 644 469T691 547Q694 578 706 578T718 556Q718 555 718 551T717 545Q717 488 684 445T595 387Q582 384 558 384Q530 384 508 389L493 394L404 238L557 236H708Q720 224 720 217T706 196H379L291 43L499 41H708Q720 29 720 21T706 1H268L226 -71Q186 -143 179 -148Q173 -155 165 -155T152 -150T146 -137Q146 -133 184 -64L222 1H144L66 3L59 7Q54 14 54 20Q54 29 66 41H246L333 194Q333 196 202 196H68Q55 211 55 218T66 236H213L357 238L457 409L437 421Q432 423 393 450T307 500T222 523Q171 523 129 491T84 414Q82 383 70 383Q55 383 55 417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2246\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"does not divide\",\n                \"source\": \"\\\\nmid\",\n                \"snippet\": \"\\\\nmid\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.734ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex; margin-left: -0.045ex; margin-right: -0.042ex;\\\" viewBox=\\\"-19.5 -863.1 316 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOES NOT DIVIDE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2224\\\" d=\\\"M118 737Q131 750 138 750L151 746L158 739V579L160 421L213 470Q269 519 276 519Q284 519 290 513T296 499V498Q296 493 291 488T244 445Q225 428 213 417L158 368V-239Q143 -252 136 -252L124 -248L120 -241L118 44V328L62 279Q4 231 0 230Q-8 230 -14 236T-20 250Q-20 257 -11 265T62 332L118 384V737Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2224\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nparallel\",\n                \"keywords\": \"geometry\",\n                \"source\": \"\\\\nparallel\",\n                \"snippet\": \"\\\\nparallel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.25ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex; margin-left: -0.045ex; margin-right: -0.042ex;\\\" viewBox=\\\"-19.5 -863.1 538 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NPARALLEL. Keywords: geometry</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2226\\\" d=\\\"M131 737Q134 739 138 743T144 748T151 750T171 737V199L327 357V737Q340 750 347 750Q351 750 353 749T360 743T367 737V397L429 457Q493 518 498 519Q506 519 512 512T518 500Q518 489 442 417L367 339V-237Q352 -250 346 -250L333 -243L327 -237V301L171 143V-237Q156 -250 151 -250T131 -237V101L69 41Q24 -3 15 -12T0 -21Q-8 -21 -14 -14T-20 -2Q-20 5 -7 19T56 81L131 159V737Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2226\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nshortmid\",\n                \"source\": \"\\\\nshortmid\",\n                \"snippet\": \"\\\\nshortmid\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.604ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.045ex; margin-right: -0.042ex;\\\" viewBox=\\\"-19.5 -576.1 260 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSHORTMID.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E006\\\" d=\\\"M91 417Q104 430 111 430T131 417V301L171 341Q201 373 207 378T220 384Q227 384 233 377T240 366Q240 357 187 299L131 244V-10Q116 -23 111 -23T91 -10V201L49 157Q20 127 14 121T0 115Q-8 115 -14 121T-20 132Q-20 139 17 178Q29 191 36 199L91 257V417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E006\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nshortparallel\",\n                \"source\": \"\\\\nshortparallel\",\n                \"snippet\": \"\\\\nshortparallel\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.992ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.045ex; margin-right: -0.042ex;\\\" viewBox=\\\"-19.5 -576.1 427 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSHORTPARALLEL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E007\\\" d=\\\"M56 417Q68 431 76 431L89 426L96 419V317L98 215L193 273L291 330V375L293 419Q301 431 311 431Q331 431 331 388L333 355L356 370Q381 384 388 384Q394 384 400 377T407 363Q407 354 367 328L331 308V-10Q316 -23 310 -23Q300 -23 293 -12L291 135V284L98 168L96 77V-12Q84 -24 76 -24L62 -19L58 -12L56 66V144L31 128Q5 114 -2 114Q-8 114 -14 121T-20 136Q-20 142 -14 147T20 170L56 190V417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E007\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsim\",\n                \"source\": \"\\\\nsim\",\n                \"snippet\": \"\\\\nsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.072ex; margin-bottom: -0.243ex;\\\" viewBox=\\\"0 -576.1 778.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2241\\\" d=\\\"M220 366Q258 366 297 347T361 308T391 288Q394 288 464 370Q494 407 510 425T535 454T546 465T552 467H553Q560 467 566 461T573 448Q573 439 499 350Q424 266 424 261Q424 259 442 247T492 222T554 209Q607 209 646 243Q671 268 680 295T690 341T702 366Q719 366 719 314Q716 265 695 226Q682 199 664 179Q614 132 555 132Q517 132 477 151T412 190T383 210T347 172T278 89T233 37Q228 32 220 32Q210 32 206 38T201 48Q201 57 266 137Q272 144 275 148Q351 231 351 237Q351 239 333 251T283 276T221 289Q159 289 123 248T86 166Q86 156 82 145T73 132Q55 132 55 172Q55 220 79 272Q95 301 111 319Q161 366 220 366Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2241\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nVDash\",\n                \"source\": \"\\\\nVDash\",\n                \"snippet\": \"\\\\nVDash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.805ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.127ex;\\\" viewBox=\\\"-54.5 -791.3 777 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NVDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22AF\\\" d=\\\"M56 681Q70 695 77 695T96 683V428L98 175L252 323V681Q264 695 272 695Q278 695 292 681V466H401L503 563L621 679Q637 695 645 695Q652 695 658 688T665 673Q665 670 663 666Q663 665 651 652T611 612T561 563L458 468L556 466H654Q665 455 665 447T652 426H416L294 308L292 288V270H652Q665 255 665 250T652 230H292V12Q289 10 285 6T279 1T272 -1Q265 -1 252 12V139Q252 266 249 266L96 119V12Q80 -1 76 -1T70 0T63 6T56 12V79L29 55Q-26 -1 -35 -1Q-42 -1 -48 5T-55 19Q-55 25 -51 30T-15 66Q5 86 18 99L56 135V681ZM358 426H292V361L325 392L358 426Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22AF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nvDash\",\n                \"source\": \"\\\\nvDash\",\n                \"snippet\": \"\\\\nvDash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.547ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.127ex;\\\" viewBox=\\\"-54.5 -791.3 666 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NVDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22AD\\\" d=\\\"M56 681Q70 695 76 695T96 681V466H327L425 579Q522 692 527 692Q529 693 534 693Q542 693 547 688T553 674Q553 668 549 663Q549 662 538 650T504 611T463 563L381 468L461 466H543Q554 453 554 446T541 426H345L209 272L376 270H543Q554 257 554 251T541 230H174L96 141V12Q81 -1 75 -1Q65 -1 58 10L56 50V92L18 48Q7 37 -1 28T-13 14T-19 6T-23 1T-27 0T-33 -1Q-42 -1 -48 4T-55 19Q-55 24 -47 34T12 103L56 155V681ZM267 399L292 426H96V270H158L201 321Q256 382 267 399ZM118 228L119 229Q119 230 109 230H96V201L107 212Q118 227 118 228Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22AD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nvdash\",\n                \"source\": \"\\\\nvdash\",\n                \"snippet\": \"\\\\nvdash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.547ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.127ex;\\\" viewBox=\\\"-54.5 -791.3 666 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NVDASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22AC\\\" d=\\\"M56 681Q70 695 76 695T96 681V368H243L381 530Q521 692 525 692Q537 700 547 688Q554 682 554 674Q554 671 553 669T548 661T539 649T522 631T499 604T465 565T421 512Q296 373 296 368H416H476Q525 368 539 365T554 348Q554 334 543 328H261L96 141V12Q81 -1 75 -1Q65 -1 58 10L56 50V92L18 48Q7 37 -1 28T-13 14T-19 6T-23 1T-27 0T-33 -1Q-42 -1 -48 4T-55 19Q-55 24 -47 34T12 103L56 155V681ZM205 326Q205 328 152 328H96V263Q96 203 98 203Q99 203 123 231T174 290T205 326Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22AC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ntriangleleft\",\n                \"source\": \"\\\\ntriangleleft\",\n                \"snippet\": \"\\\\ntriangleleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NTRIANGLELEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22EA\\\" d=\\\"M693 -30Q686 -41 673 -41Q661 -41 506 34L346 110L280 -44Q228 -162 216 -185T193 -208Q177 -208 173 -192Q173 -186 242 -30T311 128Q271 145 184 186T86 236Q82 240 82 246Q82 251 86 259Q96 267 271 350L449 434L506 565Q537 635 551 664T571 700T582 706Q587 706 593 701T600 690Q600 679 553 572Q504 463 504 461L586 501Q672 539 673 539Q679 539 693 525V-30ZM653 10V488L566 445L480 405L422 276Q415 260 405 236T388 199T376 171T368 151T366 145Q368 143 510 77T653 10ZM422 374Q422 376 420 376T285 313T151 248Q315 168 326 163Q415 356 422 374Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22EA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ntrianglelefteq\",\n                \"source\": \"\\\\ntrianglelefteq\",\n                \"snippet\": \"\\\\ntrianglelefteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NTRIANGLELEFTEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22EC\\\" d=\\\"M82 -123Q82 -114 93 -103H166L238 -101L293 50Q349 200 349 204L220 266Q166 291 140 304T100 325T84 336T82 344Q82 353 94 360Q112 372 282 453L473 541L482 568Q487 578 529 693Q559 785 569 795Q573 802 581 802Q587 802 593 797T599 786Q599 775 564 675L526 570Q526 568 561 584T633 617T673 635Q679 635 693 621V66Q686 54 679 54Q665 54 526 119Q491 137 458 153T405 177T386 184Q385 182 334 42T282 -101T482 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L473 -143H266L238 -219Q217 -278 210 -290T193 -303Q178 -303 173 -287Q173 -279 198 -214L222 -145Q222 -143 158 -143L93 -141L86 -136Q82 -131 82 -123ZM653 106V584L506 513L453 370Q442 339 428 300T407 243T400 224Q403 222 527 164T653 106ZM453 486Q453 488 451 488T300 417T151 344L224 308Q247 298 285 279T331 257L364 241L453 486Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22EC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ntriangleright\",\n                \"source\": \"\\\\ntriangleright\",\n                \"snippet\": \"\\\\ntriangleright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NTRIANGLERIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22EB\\\" d=\\\"M82 525Q96 539 102 539Q103 539 122 530T186 501T266 463L426 388Q428 388 495 541Q564 694 569 699Q573 706 581 706Q587 706 593 702T600 691Q600 676 533 528Q515 486 506 465T485 418T470 381T466 370Q466 369 575 316Q676 269 689 259Q693 253 693 248Q693 242 689 236Q688 235 506 145Q328 63 324 59Q324 50 266 -70Q224 -169 214 -188T193 -208Q177 -208 173 -192Q173 -183 222 -77Q244 -29 257 2T269 34L186 -6Q108 -43 99 -43Q93 -43 82 -30V525ZM271 416Q129 485 126 485H125Q122 485 122 250Q122 10 124 10L211 50L295 92L411 350Q411 351 271 416ZM624 248L449 332L440 319Q434 297 393 214Q353 121 353 119Q355 119 489 182T624 248Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22EB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ntrianglerighteq\",\n                \"source\": \"\\\\ntrianglerighteq\",\n                \"snippet\": \"\\\\ntrianglerighteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NTRIANGLERIGHTEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22ED\\\" d=\\\"M82 621Q96 635 102 635T249 568L420 486L449 473L469 533Q563 789 569 797Q573 801 581 801Q598 801 600 786Q602 781 544 617L484 455Q531 435 584 408Q677 364 689 355Q693 351 693 344Q693 339 692 337T676 325T631 302T538 257Q504 241 465 223T406 195T386 186Q384 184 333 44T282 -101Q282 -103 482 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L473 -143H266L238 -219Q217 -278 210 -290T193 -303Q178 -303 173 -287Q173 -279 198 -214L222 -145Q222 -143 158 -143L93 -141L86 -136Q82 -131 82 -123Q82 -114 93 -103H166L238 -101L333 159Q326 159 220 106Q110 54 97 54Q89 54 82 66V621ZM298 501Q155 567 142 575L122 584V344Q122 106 124 106Q125 106 180 132T291 185T351 213Q355 217 393 326L433 435Q433 436 298 501ZM549 381Q472 417 471 417L406 241Q408 240 516 291T624 344L549 381Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22ED\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nleq\",\n                \"source\": \"\\\\nleq\",\n                \"snippet\": \"\\\\nleq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2270\\\" d=\\\"M82 -124Q82 -120 83 -117T89 -110T95 -103H220L284 50Q346 204 344 206L218 268Q153 297 123 313T87 333T82 344T86 355Q104 369 291 455Q491 552 491 553L542 673Q581 767 590 784T609 801Q616 801 622 795T629 781Q629 773 586 677Q546 581 546 577L609 606Q669 635 673 635Q680 635 686 629T693 615Q693 610 692 608T670 593T604 561L524 521L400 226L542 157Q617 123 649 107T687 85T694 72Q694 66 690 60T679 54Q664 54 526 121Q513 127 495 136T464 150T438 162T416 173T399 180T388 185L384 186Q383 186 322 41L262 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L464 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -282 174 -213T202 -143H146L93 -141Q82 -134 82 -124ZM418 370L466 495Q464 495 308 420T151 344T204 317T311 267T364 244Q364 247 418 370Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2270\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ngeq\",\n                \"source\": \"\\\\ngeq\",\n                \"snippet\": \"\\\\ngeq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NGEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2271\\\" d=\\\"M97 54Q82 54 82 72Q82 79 86 84Q95 91 222 153L351 215L398 324L442 433L258 519Q95 597 87 604Q82 608 82 615T88 628T102 635Q107 635 424 484L458 468L524 630Q593 789 597 795Q601 801 609 801Q616 801 622 795T629 781L562 615L493 450L589 406Q665 371 679 362T694 344Q694 339 693 337T677 326T631 302T538 257Q504 241 465 223T406 195T386 186Q384 185 322 39L262 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L464 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -282 174 -213T202 -143H146L93 -141Q82 -134 82 -124Q82 -120 83 -117T89 -110T95 -103H220L273 26Q326 156 326 157L218 106Q109 54 97 54ZM553 379Q480 412 480 415Q479 415 460 372T423 285T406 241Q408 240 516 291T624 344L553 379Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2271\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nleqq\",\n                \"source\": \"\\\\nleqq\",\n                \"snippet\": \"\\\\nleqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.509ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -1006.6 778.5 1510.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E011\\\" d=\\\"M82 34Q82 44 93 55H198L300 57L342 179Q351 207 362 238T378 286T384 303T238 377Q109 435 86 450Q82 454 82 460T86 472Q90 476 302 579L511 679Q512 679 553 795Q569 842 577 866T592 903T600 917T608 919Q615 919 622 912T629 901Q629 899 595 799Q589 777 581 753T569 717T564 703L618 728Q666 752 673 752T686 746T693 732Q693 723 683 717T615 683L546 650L491 488Q464 410 450 368T438 326Q493 297 562 266Q660 219 677 209T694 190Q694 183 690 177T678 171Q664 171 546 228L424 286Q422 286 382 172L342 57L513 55H682Q694 43 694 34Q694 28 689 21L682 17L506 15H329L322 -8Q320 -13 310 -41T295 -85L275 -141H680Q682 -143 684 -146T688 -151T691 -156T693 -162Q693 -172 682 -179L473 -181H262L220 -303Q192 -388 185 -404T166 -421Q160 -421 153 -415T146 -403Q146 -400 179 -302T220 -185Q220 -181 158 -181L93 -179L86 -174Q82 -169 82 -161Q82 -152 93 -141H164L233 -139L260 -63L286 15H189L93 17L86 21Q82 26 82 34ZM495 623Q495 626 493 626T321 544T151 461L398 343Q399 343 405 360T423 415T446 483Q457 513 469 551T488 606T495 623Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E011\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ngeqq\",\n                \"source\": \"\\\\ngeqq\",\n                \"snippet\": \"\\\\ngeqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.509ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -1006.6 778.5 1510.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NGEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E00E\\\" d=\\\"M97 172Q82 172 82 190Q82 197 86 201Q94 209 173 246T327 319T402 357Q405 360 434 448T462 539L278 628Q96 713 86 721Q82 725 82 732T88 745T102 752Q103 752 125 742T198 709T293 666Q342 642 385 622T453 590T478 579Q479 579 506 659T562 824T598 915Q602 919 609 919T622 913T629 901Q629 898 571 728Q546 656 531 608T518 559Q555 539 602 519Q664 488 679 479T694 461Q694 457 689 450Q680 443 616 413T494 356T435 326L389 190L342 57L513 55H682Q694 43 694 34Q694 28 689 21L682 17L506 15H329L322 -8Q320 -13 310 -41T295 -85L275 -141H680Q682 -143 684 -146T688 -151T691 -156T693 -162Q693 -172 682 -179L473 -181H262L220 -303Q192 -388 185 -404T166 -421Q160 -421 153 -415T146 -403Q146 -400 179 -302T220 -185Q220 -181 158 -181L93 -179L86 -174Q82 -169 82 -161Q82 -152 93 -141H164L233 -139L260 -63L286 15H189L93 17L86 21Q82 26 82 34Q82 44 93 55H198L300 57L342 179Q350 204 361 238T378 286T382 301L246 237Q111 172 97 172ZM624 461Q621 464 560 492Q512 518 503 518Q500 518 500 517Q499 513 488 479T465 413T453 379L624 461Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E00E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nleqslant\",\n                \"source\": \"\\\\nleqslant\",\n                \"snippet\": \"\\\\nleqslant\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEQSLANT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E010\\\" d=\\\"M102 168Q103 168 151 146T247 102T295 81Q299 85 322 144T344 206L218 268Q153 297 123 313T87 333T82 344T86 355Q104 369 291 455Q491 552 491 553L542 673Q581 767 590 784T609 801Q616 801 622 795T629 781Q629 773 586 677Q546 581 546 577L609 606Q669 635 673 635Q680 635 686 629T693 615Q693 610 692 608T670 593T604 561L524 521L400 226L542 157Q617 123 649 107T687 85T694 72Q694 66 690 60T679 54Q665 54 526 119Q394 186 386 186Q385 186 342 88L331 61L509 -23Q680 -105 688 -111Q693 -115 693 -122T688 -135T675 -141H673Q664 -141 491 -59Q320 21 316 21H315L249 -136Q183 -293 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -282 154 -261T181 -197T213 -119L280 41Q280 46 186 86Q157 101 121 119Q92 133 87 136T82 148Q82 155 88 161T102 168ZM418 370L466 495Q464 495 308 420T151 344T204 317T311 267T364 244Q364 247 418 370Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E010\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ngeqslant\",\n                \"source\": \"\\\\ngeqslant\",\n                \"snippet\": \"\\\\ngeqslant\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NGEQSLANT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E00F\\\" d=\\\"M97 54Q82 54 82 72Q82 79 86 84Q95 91 222 153L351 215L398 324L442 433L258 519Q95 597 87 604Q82 608 82 615T88 628T102 635Q107 635 424 484L458 468L524 630Q593 789 597 795Q601 801 609 801Q616 801 622 795T629 781L562 615L493 450L589 406Q665 371 679 362T694 344Q694 339 693 337T677 326T631 302T538 257Q504 241 465 223T406 195T386 186Q383 185 344 92T306 -3L486 81Q662 168 673 168Q680 168 686 162T693 148T689 137Q688 136 482 35L280 -59L233 -176Q184 -291 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -279 185 -186T224 -90Q225 -88 223 -88Q219 -88 193 -101Q109 -143 98 -143Q82 -138 82 -122Q82 -116 85 -113T108 -98T171 -67L249 -30L289 61Q297 81 307 107T321 144T326 157L218 106Q109 54 97 54ZM553 379Q480 412 480 415Q479 415 460 372T423 285T406 241Q408 240 516 291T624 344L553 379Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E00F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nless\",\n                \"source\": \"\\\\nless\",\n                \"snippet\": \"\\\\nless\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLESS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-226E\\\" d=\\\"M693 -14T693 -20T687 -33T675 -41Q667 -41 506 37L344 112Q342 112 262 -46Q184 -196 176 -205Q172 -209 168 -209T162 -208Q155 -208 151 -203T146 -190Q146 -178 171 -137Q193 -91 251 21L306 132L198 183Q142 208 118 220T88 238T82 249Q82 253 86 261Q92 267 278 357L464 443L529 572Q561 637 577 667T597 703T607 708Q615 708 622 702T629 688Q629 680 575 579L524 474Q524 473 545 482T598 508Q666 541 673 541T686 535T693 521Q693 512 679 504T589 459L493 414L360 150Q366 148 378 142T431 116T529 70Q686 -8 689 -10Q693 -14 693 -20ZM380 277L433 383Q432 385 292 319T151 250T237 209T324 170L380 277Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-226E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ngtr\",\n                \"source\": \"\\\\ngtr\",\n                \"snippet\": \"\\\\ngtr\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NGTR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-226F\\\" d=\\\"M82 514T82 520T89 533T100 541Q106 541 271 463Q434 386 435 386L515 543Q593 699 600 706Q604 708 607 708Q615 708 622 702T629 688T549 526Q509 445 491 407T473 368Q522 343 580 317Q636 291 660 278T688 261T693 250V249Q693 241 681 234T580 184Q533 161 502 146Q317 59 315 59Q312 56 246 -74Q197 -170 186 -189T168 -209Q164 -209 162 -208Q155 -208 151 -203T146 -190Q146 -187 200 -79L253 28L218 11Q182 -6 144 -23T100 -41Q95 -41 89 -35T82 -21Q82 -12 96 -4T186 41L284 88L349 217Q377 273 395 311T413 350Q413 351 253 428Q101 498 86 510Q82 514 82 520ZM624 250Q461 330 455 330Q454 331 453 329T448 321T441 308T430 287T416 259T398 223L342 114L624 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-226F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nprec\",\n                \"source\": \"\\\\nprec\",\n                \"snippet\": \"\\\\nprec\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NPREC.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2280\\\" d=\\\"M386 292Q388 292 439 393T543 598T598 703Q599 703 603 704T609 705Q616 705 622 699T629 685T533 494Q440 308 440 305Q451 310 462 312Q547 342 592 388T651 505Q654 525 658 532T673 539Q680 539 686 533T693 519Q693 495 678 450Q638 341 500 283Q433 259 418 259Q416 259 411 251T406 241T415 239Q482 224 544 190Q674 121 691 -10Q693 -28 691 -32Q684 -43 672 -43Q664 -43 658 -37Q656 -33 650 -6T634 47T589 109T500 168Q473 179 436 190T388 201H386L284 -1Q261 -45 232 -101T191 -181T178 -206Q176 -206 172 -207T166 -208Q160 -208 153 -202T146 -188Q146 -185 246 12Q344 206 344 210Q344 213 305 217T213 225T124 228H95Q82 241 82 248Q82 253 95 268H124Q172 268 236 273T343 283T386 292Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2280\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsucc\",\n                \"source\": \"\\\\nsucc\",\n                \"snippet\": \"\\\\nsucc\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUCC.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2281\\\" d=\\\"M103 -43Q96 -43 89 -39T82 -26L84 -10Q105 141 275 212Q342 236 355 236Q360 236 364 245L369 256H360Q284 280 275 283Q115 351 86 490Q82 507 82 517Q82 526 88 532T103 538Q110 538 115 534Q119 531 122 517T128 486T143 444T174 397T231 351T320 310Q371 292 389 292L491 496Q595 701 598 703Q599 703 603 704T609 705Q616 705 622 699T629 685Q629 684 531 485Q431 296 431 288Q431 278 520 273T651 268H680Q693 253 693 248Q693 241 680 228H651Q591 228 491 218T386 201L284 -1Q261 -45 232 -101T191 -181T178 -206Q176 -206 172 -207T166 -208Q160 -208 153 -202T146 -188Q146 -182 302 125L335 190L324 185Q313 185 289 172Q241 153 208 128T159 78T135 31T124 -11T118 -37Q112 -43 103 -43Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2281\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"npreceq\",\n                \"source\": \"\\\\npreceq\",\n                \"snippet\": \"\\\\npreceq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NPRECEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E0\\\" d=\\\"M82 344Q82 349 95 364H124Q266 364 398 390L429 397L509 595Q519 619 536 659Q581 766 590 783T609 801Q616 801 622 795T629 781Q629 776 553 595Q533 548 516 506T489 439T480 415Q482 415 505 426T538 444Q632 498 651 601Q654 621 658 628T673 635Q680 635 686 629T693 615Q693 591 678 546Q636 433 484 375L458 364L451 348Q443 332 443 329T455 324Q480 316 503 307T560 277T619 233T664 170T691 86Q693 68 691 64Q684 53 672 53Q664 53 658 59Q657 60 650 97T617 174T538 244Q515 257 476 273T428 289Q425 289 412 256Q381 179 344 90L262 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L464 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -282 174 -213T202 -143H95Q82 -128 82 -123T95 -103H220L302 97Q384 288 384 299Q384 302 341 308T235 319T124 324H95Q82 337 82 344ZM399 338Q403 338 406 346L409 353L375 344Q375 343 384 341T399 338Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsucceq\",\n                \"source\": \"\\\\nsucceq\",\n                \"snippet\": \"\\\\nsucceq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUCCEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E1\\\" d=\\\"M146 -283Q146 -282 174 -213T202 -143H95Q82 -127 82 -123T95 -103H220L300 93Q343 196 374 270Q385 294 386 299L373 295Q331 287 289 268Q241 249 208 224T159 174T135 127T124 85T118 59Q112 53 103 53Q91 53 84 64Q82 68 84 86Q96 185 174 248T375 337L400 344Q399 344 381 348T351 355T316 364T276 379T235 398T193 424T155 456T122 497T98 546Q82 587 82 615Q82 622 88 628T102 635Q112 635 116 628T124 601Q128 579 134 562T159 515T207 463T290 418T415 384L422 381L506 586Q571 744 584 772T609 801Q616 801 622 795T629 781T544 577Q525 529 504 478T473 402T462 375Q480 373 500 373Q579 364 651 364H680Q682 361 686 357T691 351T693 344Q693 337 680 324H651Q553 324 451 310L433 308L349 104L262 -101L473 -103H682Q694 -115 694 -123Q694 -133 682 -141L464 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precnapprox\",\n                \"source\": \"\\\\precnapprox\",\n                \"snippet\": \"\\\\precnapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECNAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2AB9\\\" d=\\\"M82 494T82 501T95 521H171Q256 523 317 528T441 548T543 584T613 644T651 732Q652 734 653 740T655 748T658 754T663 759T672 761L686 754Q693 747 693 734Q686 686 664 647T615 586T548 545T482 518T417 501Q419 500 451 493T517 471T590 434T657 367T693 267Q693 241 673 241Q664 241 659 245Q656 249 650 273T635 323T593 380T511 432Q406 474 171 481H95Q82 494 82 501ZM57 -26Q57 39 101 87T219 136Q254 136 277 130Q320 114 382 72Q419 50 424 45Q426 45 459 110Q496 178 497 179Q500 180 504 180Q509 180 517 175T526 161Q526 158 495 90L462 25Q462 21 502 5Q519 1 553 1Q586 1 602 5Q641 18 664 45T691 107Q694 136 706 136T718 115Q718 114 718 111T717 105Q717 39 671 -9T554 -58L459 -33Q450 -29 444 -27T437 -26L371 -155L391 -168Q485 -235 538 -235H553Q586 -235 602 -230Q683 -204 691 -128Q694 -99 706 -99T718 -120Q718 -121 718 -124T717 -130Q717 -199 670 -246T557 -294T393 -228Q353 -205 351 -201Q348 -201 315 -266Q294 -310 285 -323T268 -337Q259 -337 254 -331T248 -317Q248 -305 282 -246L313 -181Q313 -177 273 -161Q255 -157 222 -157Q188 -157 173 -161Q134 -174 113 -198T88 -242T82 -278T71 -294Q57 -294 57 -261Q57 -204 91 -161T179 -104Q195 -99 228 -99Q274 -102 315 -124Q337 -132 337 -130L404 -1L384 12Q319 58 273 74Q255 79 222 79Q188 79 173 74Q133 61 112 37T88 -7T82 -43T70 -59Q57 -59 57 -26Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2AB9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succnapprox\",\n                \"source\": \"\\\\succnapprox\",\n                \"snippet\": \"\\\\succnapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCNAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2ABA\\\" d=\\\"M693 501Q693 493 679 481H604Q548 479 509 477T418 469T331 454T257 429T194 392T150 340T124 270Q117 247 115 245Q101 236 88 247Q82 254 82 267Q89 330 126 379Q147 411 202 444T333 494L357 501Q239 531 188 565Q142 599 126 623Q89 672 82 734Q82 761 102 761L115 756Q116 755 124 732Q133 678 166 640T241 579T349 544T470 527T604 521H679Q693 507 693 501ZM57 -26Q57 39 101 87T219 136Q254 136 277 130Q320 114 382 72Q419 50 424 45Q426 45 459 110Q496 178 497 179Q500 180 504 180Q509 180 517 175T526 161Q526 158 495 90L462 25Q462 21 502 5Q519 1 553 1Q586 1 602 5Q641 18 664 45T691 107Q694 136 706 136T718 115Q718 114 718 111T717 105Q717 39 671 -9T554 -58L459 -33Q450 -29 444 -27T437 -26L371 -155L391 -168Q485 -235 538 -235H553Q586 -235 602 -230Q683 -204 691 -128Q694 -99 706 -99T718 -120Q718 -121 718 -124T717 -130Q717 -199 670 -246T557 -294T393 -228Q353 -205 351 -201Q348 -201 315 -266Q294 -310 285 -323T268 -337Q259 -337 254 -331T248 -317Q248 -305 282 -246L313 -181Q313 -177 273 -161Q255 -157 222 -157Q188 -157 173 -161Q134 -174 113 -198T88 -242T82 -278T71 -294Q57 -294 57 -261Q57 -204 91 -161T179 -104Q195 -99 228 -99Q274 -102 315 -124Q337 -132 337 -130L404 -1L384 12Q319 58 273 74Q255 79 222 79Q188 79 173 74Q133 61 112 37T88 -7T82 -43T70 -59Q57 -59 57 -26Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2ABA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"precnsim\",\n                \"source\": \"\\\\precnsim\",\n                \"snippet\": \"\\\\precnsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRECNSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E8\\\" d=\\\"M95 419Q81 433 81 439T95 459H124Q318 459 455 501Q515 521 556 550T615 607T641 659T652 702T659 725Q667 730 673 730Q680 730 686 724T693 710Q693 682 677 641Q668 616 654 594T622 554T586 522T545 497T504 477T464 462T428 452T397 444T375 439Q379 437 410 430T476 411T551 379T625 321T677 237Q693 196 693 168Q693 161 687 155T673 148Q662 148 658 154T651 181Q638 253 591 300T455 377Q318 419 124 419H95ZM55 -205Q55 -175 64 -142T92 -76T145 -22T222 -1Q288 -1 362 -66Q369 -72 372 -75T378 -79T382 -81T384 -79Q389 -74 439 21Q483 100 490 111T504 122Q510 122 518 118T526 103Q526 101 510 69T467 -12T419 -99L413 -112L433 -128Q498 -180 553 -180Q605 -180 646 -139Q672 -112 681 -77T693 -21T706 -1Q719 -1 719 -33Q719 -39 717 -57Q708 -141 655 -190Q625 -224 586 -232Q568 -237 551 -237Q487 -237 413 -172L391 -155Q391 -157 335 -255Q297 -325 286 -342T268 -359Q260 -359 254 -353T248 -339T304 -230L359 -126Q359 -124 337 -107T302 -81Q262 -57 221 -57Q170 -57 130 -93T84 -201Q82 -236 70 -236Q55 -236 55 -205Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"succnsim\",\n                \"source\": \"\\\\succnsim\",\n                \"snippet\": \"\\\\succnsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUCCNSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E9\\\" d=\\\"M679 459Q693 445 693 439Q693 430 679 419H651Q455 419 319 377Q231 347 184 300T124 181Q120 161 116 155T102 148Q95 148 89 154T82 168Q82 192 97 237Q111 275 137 306T188 355T249 391T307 414T361 429T399 439Q397 440 364 447T298 467T224 499T149 557T97 641Q82 686 82 710Q82 717 88 723T102 730L115 725Q118 722 124 697Q137 625 184 578T319 501Q456 459 651 459H679ZM55 -205Q55 -175 64 -142T92 -76T145 -22T222 -1Q288 -1 362 -66Q369 -72 372 -75T378 -79T382 -81T384 -79Q389 -74 439 21Q483 100 490 111T504 122Q510 122 518 118T526 103Q526 101 510 69T467 -12T419 -99L413 -112L433 -128Q498 -180 553 -180Q605 -180 646 -139Q672 -112 681 -77T693 -21T706 -1Q719 -1 719 -33Q719 -39 717 -57Q708 -141 655 -190Q625 -224 586 -232Q568 -237 551 -237Q487 -237 413 -172L391 -155Q391 -157 335 -255Q297 -325 286 -342T268 -359Q260 -359 254 -353T248 -339T304 -230L359 -126Q359 -124 337 -107T302 -81Q262 -57 221 -57Q170 -57 130 -93T84 -201Q82 -236 70 -236Q55 -236 55 -205Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lnapprox\",\n                \"source\": \"\\\\lnapprox\",\n                \"snippet\": \"\\\\lnapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LNAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A89\\\" d=\\\"M86 512Q93 518 381 639T673 761Q680 761 686 755T693 741Q693 733 688 730Q685 723 419 612L155 501L419 390Q685 277 688 272Q693 269 693 261Q693 254 687 248T675 241Q669 241 381 362T86 490Q74 500 86 512ZM70 -59Q57 -59 57 -24Q57 40 104 87Q116 102 146 118Q186 136 231 136Q232 136 242 135T258 133T276 128T302 118T334 101T377 74Q386 69 396 63T411 53T417 50Q435 87 453 134Q491 223 495 227Q498 230 505 230Q513 230 519 225T526 212Q526 203 491 118T453 30Q453 22 489 10T553 -3Q589 -3 622 14Q653 28 669 50T688 90T694 122T706 136Q718 136 718 114Q718 113 718 109T717 103Q717 31 668 -14T554 -60Q529 -60 499 -50T451 -32T433 -24Q431 -24 404 -90T375 -157Q375 -159 402 -178T473 -218T553 -239Q599 -239 641 -211T691 -130Q694 -99 706 -99T718 -122Q718 -123 718 -127T717 -133Q717 -204 668 -249T559 -295Q512 -295 470 -275T355 -206L322 -290Q313 -310 304 -332T289 -367T282 -382Q277 -387 270 -387Q262 -387 255 -382T248 -368Q248 -361 322 -186Q311 -177 280 -166T222 -155Q189 -155 153 -173Q122 -186 106 -208T87 -248T82 -280T71 -294Q57 -294 57 -259Q57 -195 104 -148Q122 -126 155 -113T220 -99Q245 -99 276 -109T324 -127T342 -135Q397 -2 397 1Q386 10 367 23T302 58T222 80Q175 80 132 52T84 -28Q82 -59 70 -59Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A89\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gnapprox\",\n                \"source\": \"\\\\gnapprox\",\n                \"snippet\": \"\\\\gnapprox\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GNAPPROX.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A8A\\\" d=\\\"M86 730Q81 734 81 740Q81 747 88 754T99 761Q103 761 392 640T688 512Q693 509 693 501T688 490Q682 484 394 363T99 241Q94 241 88 248T82 261Q82 268 86 272Q89 277 355 390L619 501L355 612Q89 723 86 730ZM70 -59Q57 -59 57 -24Q57 40 104 87Q116 102 146 118Q186 136 231 136Q232 136 242 135T258 133T276 128T302 118T334 101T377 74Q386 69 396 63T411 53T417 50Q435 87 453 134Q491 223 495 227Q498 230 505 230Q513 230 519 225T526 212Q526 203 491 118T453 30Q453 22 489 10T553 -3Q589 -3 622 14Q653 28 669 50T688 90T694 122T706 136Q718 136 718 114Q718 113 718 109T717 103Q717 31 668 -14T554 -60Q529 -60 499 -50T451 -32T433 -24Q431 -24 404 -90T375 -157Q375 -159 402 -178T473 -218T553 -239Q599 -239 641 -211T691 -130Q694 -99 706 -99T718 -122Q718 -123 718 -127T717 -133Q717 -204 668 -249T559 -295Q512 -295 470 -275T355 -206L322 -290Q313 -310 304 -332T289 -367T282 -382Q277 -387 270 -387Q262 -387 255 -382T248 -368Q248 -361 322 -186Q311 -177 280 -166T222 -155Q189 -155 153 -173Q122 -186 106 -208T87 -248T82 -280T71 -294Q57 -294 57 -259Q57 -195 104 -148Q122 -126 155 -113T220 -99Q245 -99 276 -109T324 -127T342 -135Q397 -2 397 1Q386 10 367 23T302 58T222 80Q175 80 132 52T84 -28Q82 -59 70 -59Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A8A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lneq\",\n                \"source\": \"\\\\lneq\",\n                \"snippet\": \"\\\\lneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LNEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A87\\\" d=\\\"M380 497Q445 528 522 564T636 618T673 635Q680 635 686 628T693 615T689 603Q686 599 418 472L151 343L418 215Q686 88 689 83Q693 79 693 72T687 59T675 52Q669 52 381 189T86 332Q82 337 82 344Q82 350 86 355Q91 359 380 497ZM82 -130T82 -124T95 -103H380L431 -54Q476 -6 486 -6Q491 -6 498 -12T505 -27Q505 -28 505 -29T504 -32Q503 -33 498 -38T485 -53T469 -70L438 -103H680Q682 -106 686 -110T691 -116T693 -123Q693 -130 680 -143H398L346 -192Q300 -241 291 -241Q271 -241 271 -221Q271 -209 306 -179L340 -143H95Q82 -130 82 -124Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A87\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gneq\",\n                \"source\": \"\\\\gneq\",\n                \"snippet\": \"\\\\gneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GNEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2A88\\\" d=\\\"M82 614Q82 620 86 625T94 632T100 635Q106 635 394 498T689 355Q693 349 693 343Q693 338 689 332Q683 327 395 190T100 52Q95 52 89 58T82 72Q82 80 95 88Q114 99 358 215L624 343L358 472Q89 599 86 603Q82 607 82 614ZM82 -130T82 -124T95 -103H380L431 -54Q476 -6 486 -6Q491 -6 498 -12T505 -27Q505 -28 505 -29T504 -32Q503 -33 498 -38T485 -53T469 -70L438 -103H680Q682 -106 686 -110T691 -116T693 -123Q693 -130 680 -143H398L346 -192Q300 -241 291 -241Q271 -241 271 -221Q271 -209 306 -179L340 -143H95Q82 -130 82 -124Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2A88\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lneqq\",\n                \"source\": \"\\\\lneqq\",\n                \"snippet\": \"\\\\lneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2268\\\" d=\\\"M86 472Q93 477 381 614T673 752Q680 752 686 746T693 732T689 721Q686 715 418 590L151 461L418 332Q684 207 689 201Q693 195 693 190Q693 183 687 177T675 170Q668 170 380 307T86 450Q82 454 82 461Q82 467 86 472ZM82 33Q82 37 83 40T89 47T95 54H473L520 105Q569 156 571 156Q573 157 578 157Q586 157 592 151T598 136Q598 130 562 92L526 56L604 54H682Q693 43 693 35Q693 31 692 28T686 21T680 14H489L342 -139L513 -142H682Q693 -148 693 -160Q693 -167 680 -182H304L258 -230Q248 -240 237 -251T221 -268T211 -278T203 -284T197 -286Q189 -286 184 -280T178 -264Q178 -257 213 -219L249 -182H171L93 -179L86 -175Q82 -170 82 -163Q82 -155 95 -142H289L360 -64L433 14H262L93 16Q82 23 82 33Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2268\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gneqq\",\n                \"source\": \"\\\\gneqq\",\n                \"snippet\": \"\\\\gneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2269\\\" d=\\\"M89 745Q95 752 100 752Q106 752 394 615T689 472Q693 468 693 461T689 450Q684 445 396 308T100 170Q95 170 89 176T82 190Q82 195 86 201Q91 208 358 332L624 461L358 590Q90 715 86 721Q82 725 82 731Q82 739 89 745ZM82 33Q82 37 83 40T89 47T95 54H473L520 105Q569 156 571 156Q573 157 578 157Q586 157 592 151T598 136Q598 130 562 92L526 56L604 54H682Q693 43 693 35Q693 31 692 28T686 21T680 14H489L342 -139L513 -142H682Q693 -148 693 -160Q693 -167 680 -182H304L258 -230Q248 -240 237 -251T221 -268T211 -278T203 -284T197 -286Q189 -286 184 -280T178 -264Q178 -257 213 -219L249 -182H171L93 -179L86 -175Q82 -170 82 -163Q82 -155 95 -142H289L360 -64L433 14H262L93 16Q82 23 82 33Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2269\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lnsim\",\n                \"source\": \"\\\\lnsim\",\n                \"snippet\": \"\\\\lnsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LNSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E6\\\" d=\\\"M86 450Q93 455 380 592T673 730Q680 730 686 724T693 710Q693 702 688 699Q686 693 417 568L151 439L417 310Q685 185 688 179Q693 176 693 168Q693 161 687 155T675 148Q668 148 380 285T86 428Q74 438 86 450ZM55 -205Q55 -175 64 -142T92 -76T145 -22T222 -1Q288 -1 362 -66Q369 -72 372 -75T378 -79T382 -81T384 -79Q389 -74 439 21Q483 100 490 111T504 122Q510 122 518 118T526 103Q526 101 510 69T467 -12T419 -99L413 -112L433 -128Q498 -180 553 -180Q605 -180 646 -139Q672 -112 681 -77T693 -21T706 -1Q719 -1 719 -33Q719 -39 717 -57Q708 -141 655 -190Q625 -224 586 -232Q568 -237 551 -237Q487 -237 413 -172L391 -155Q391 -157 335 -255Q297 -325 286 -342T268 -359Q260 -359 254 -353T248 -339T304 -230L359 -126Q359 -124 337 -107T302 -81Q262 -57 221 -57Q170 -57 130 -93T84 -201Q82 -236 70 -236Q55 -236 55 -205Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gnsim\",\n                \"source\": \"\\\\gnsim\",\n                \"snippet\": \"\\\\gnsim\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GNSIM.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22E7\\\" d=\\\"M88 723Q95 730 99 730Q106 730 394 593T688 450Q693 447 693 439T688 428Q683 423 395 286T99 148Q94 148 88 155T82 168Q82 175 86 179Q89 184 357 310L624 439L357 568Q88 694 86 699Q81 703 81 711T88 723ZM55 -205Q55 -175 64 -142T92 -76T145 -22T222 -1Q288 -1 362 -66Q369 -72 372 -75T378 -79T382 -81T384 -79Q389 -74 439 21Q483 100 490 111T504 122Q510 122 518 118T526 103Q526 101 510 69T467 -12T419 -99L413 -112L433 -128Q498 -180 553 -180Q605 -180 646 -139Q672 -112 681 -77T693 -21T706 -1Q719 -1 719 -33Q719 -39 717 -57Q708 -141 655 -190Q625 -224 586 -232Q568 -237 551 -237Q487 -237 413 -172L391 -155Q391 -157 335 -255Q297 -325 286 -342T268 -359Q260 -359 254 -353T248 -339T304 -230L359 -126Q359 -124 337 -107T302 -81Q262 -57 221 -57Q170 -57 130 -93T84 -201Q82 -236 70 -236Q55 -236 55 -205Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22E7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lvertneqq\",\n                \"source\": \"\\\\lvertneqq\",\n                \"snippet\": \"\\\\lvertneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LVERTNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E00C\\\" d=\\\"M86 472Q93 477 381 614T673 752Q680 752 686 746T693 732T689 721Q686 715 418 590L151 461L418 332Q684 207 689 201Q693 195 693 190Q693 183 687 177T675 170Q668 170 380 307T86 450Q82 454 82 461Q82 467 86 472ZM369 101V126Q369 156 382 156H384Q385 157 386 157Q409 157 409 115V98V54H680Q693 39 693 34T680 14H409V-142H680Q693 -155 693 -162Q693 -167 680 -182H409V-273Q396 -284 388 -284Q382 -284 369 -275V-182H95Q82 -167 82 -162Q82 -155 95 -142H369V14H95Q93 17 89 21T84 27T82 34T83 40T89 47T95 54H369V101Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E00C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"gvertneqq\",\n                \"source\": \"\\\\gvertneqq\",\n                \"snippet\": \"\\\\gvertneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 778.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GVERTNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E00D\\\" d=\\\"M89 745Q95 752 100 752Q106 752 394 615T689 472Q693 468 693 461T689 450Q684 445 396 308T100 170Q95 170 89 176T82 190Q82 195 86 201Q91 208 358 332L624 461L358 590Q90 715 86 721Q82 725 82 731Q82 739 89 745ZM369 101V126Q369 156 382 156H384Q385 157 386 157Q409 157 409 115V98V54H680Q693 39 693 34T680 14H409V-142H680Q693 -155 693 -162Q693 -167 680 -182H409V-273Q396 -284 388 -284Q382 -284 369 -275V-182H95Q82 -167 82 -162Q82 -155 95 -142H369V14H95Q93 17 89 21T84 27T82 34T83 40T89 47T95 54H369V101Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E00D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsubseteq\",\n                \"source\": \"\\\\nsubseteq\",\n                \"snippet\": \"\\\\nsubseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUBSETEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2288\\\" d=\\\"M146 -283Q146 -282 174 -213T202 -143H115Q102 -127 102 -123T115 -103H220L291 68L278 73Q203 101 153 157T86 288Q83 309 83 344Q83 380 86 399Q107 480 160 539Q222 601 298 621Q328 630 345 631T435 635L526 637L560 715Q587 778 593 789T609 801Q616 801 622 795T629 781Q629 780 625 771T614 742T600 706L571 637Q571 635 626 635H680Q693 620 693 613T689 601L682 597L618 595H553L449 346Q425 288 399 223T359 127T346 95H356Q365 95 381 95T417 94T463 93T515 93H682Q693 82 693 74T680 53H511Q420 55 335 55L329 57L262 -103H680Q682 -105 684 -108T688 -113T691 -118T693 -124Q693 -134 682 -141L464 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283ZM509 590Q509 595 438 595Q354 595 318 586Q246 567 195 516T126 395Q123 378 123 344T126 293Q141 229 184 181T291 110L306 104L406 346L509 590Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2288\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsupseteq\",\n                \"source\": \"\\\\nsupseteq\",\n                \"snippet\": \"\\\\nsupseteq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUPSETEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2289\\\" d=\\\"M82 606T82 613T95 635H251H348Q408 635 435 632T502 615L515 608L520 617Q520 619 558 708Q584 774 591 787T609 801Q616 801 622 795T629 781Q629 775 562 615L551 590L569 577Q646 527 678 437Q691 398 691 344T678 250Q653 182 597 132T469 64Q427 53 366 53H326L295 -25L262 -103H660Q673 -118 673 -124Q673 -129 669 -136L662 -141L453 -143H246L213 -219Q182 -292 178 -299Q172 -303 166 -303T153 -297T146 -283Q146 -282 174 -213T202 -143H95Q82 -128 82 -123T95 -103H220L251 -25L284 53H189L93 55L86 59Q82 64 82 71T95 93H302L400 333Q498 569 498 573L444 590Q431 593 260 595L93 597L86 601Q82 606 82 613ZM652 344V354Q652 451 575 521Q571 526 557 538T537 551Q534 551 533 548Q533 543 438 319L344 95L371 93H386Q487 93 557 150T649 293Q652 309 652 344Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2289\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsubseteqq\",\n                \"source\": \"\\\\nsubseteqq\",\n                \"snippet\": \"\\\\nsubseteqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUBSETEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E016\\\" d=\\\"M82 -6Q82 1 95 14H262L295 94Q331 171 331 174Q324 175 312 178T267 194T206 227T146 283T98 368Q84 406 84 461T98 554Q126 632 194 685T349 750Q360 752 480 752H591L604 783Q620 819 624 821Q631 828 640 828Q653 825 658 810Q658 808 646 781L635 754Q635 752 658 752Q680 752 686 746Q693 739 693 732Q693 728 692 726T686 719T680 712H615L506 466Q479 407 451 344T408 248T393 214Q393 210 535 210H680Q693 194 693 190T680 170H373L340 92L304 14H680Q693 1 693 -6Q693 -11 680 -26H286L253 -103L218 -179L451 -181H682Q694 -193 694 -201Q694 -212 682 -219L440 -221H200L178 -270Q160 -309 154 -319T139 -330Q122 -330 118 -312L155 -223Q155 -221 126 -221H95Q82 -206 82 -201T95 -181H175L206 -108Q237 -35 242 -30Q242 -26 169 -26H95Q82 -11 82 -6ZM571 710Q571 712 469 712Q443 712 416 712T371 711T351 710Q279 700 221 656T138 548Q124 508 124 461T138 374Q186 245 351 212L460 459Q571 709 571 710Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E016\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nsupseteqq\",\n                \"source\": \"\\\\nsupseteqq\",\n                \"snippet\": \"\\\\nsupseteqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -934.9 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NSUPSETEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E018\\\" d=\\\"M82 732Q82 739 95 752H251H348Q420 752 460 744T551 708Q566 697 566 701Q618 815 624 821Q631 828 640 828Q653 825 658 810L600 677Q600 671 615 656T653 605T689 517Q692 496 692 461T689 406Q668 325 615 266Q572 221 513 196T391 170H373L340 92L304 14H680Q693 1 693 -6Q693 -11 680 -26H286L253 -103L218 -179L451 -181H682Q694 -193 694 -201Q694 -212 682 -219L440 -221H200L178 -270Q160 -309 154 -319T139 -330Q122 -330 118 -312L155 -223Q155 -221 126 -221H95Q82 -206 82 -201T95 -181H175L206 -108Q237 -35 242 -30Q242 -26 169 -26H95Q82 -11 82 -6Q82 1 95 14H262L295 92L331 170H95Q93 172 91 175T87 180T84 185T82 191Q82 199 93 210H220L349 212L549 659Q507 692 462 702T338 712H249H95Q82 727 82 732ZM652 473Q652 513 636 552T603 611T582 632Q581 632 487 422T393 210Q424 210 460 220T535 253T605 316T649 410Q652 427 652 461V473Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E018\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"proper subset neq\",\n                \"source\": \"\\\\subsetneq\",\n                \"snippet\": \"\\\\subsetneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROPER SUBSET NEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-228A\\\" d=\\\"M693 72Q693 68 692 66T686 59T680 52H524Q398 52 367 53T309 63Q236 82 180 132T98 250Q84 288 84 343Q84 397 98 437Q126 515 193 568T346 632Q347 632 373 633T440 634T520 635H680Q693 620 693 615Q693 608 680 595H526Q364 595 353 592Q279 582 221 539T138 430Q124 392 124 343Q124 296 138 257Q163 192 221 149T353 95Q364 92 526 92H680Q693 79 693 72ZM102 -132T102 -125T115 -103H382L420 -68Q429 -60 438 -52T452 -39T463 -28T472 -20T478 -14T483 -10T487 -7T490 -6T493 -5T496 -5Q502 -5 508 -12T515 -28Q515 -34 513 -37Q512 -38 507 -42T492 -55T475 -70L440 -101L562 -103H682Q693 -114 693 -122T680 -143H395L355 -179Q289 -241 280 -241Q273 -241 267 -235T260 -221T265 -208T300 -174L335 -143H224L113 -141L106 -137Q102 -132 102 -125Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-228A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"proper superset neq\",\n                \"source\": \"\\\\supsetneq\",\n                \"snippet\": \"\\\\supsetneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PROPER SUPERSET NEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-228B\\\" d=\\\"M82 615Q82 620 95 635H251Q378 635 409 634T469 623Q540 605 596 555T678 437Q691 397 691 343T678 250Q649 172 581 119T426 55Q415 52 251 52H95Q93 55 89 59T84 65T82 72Q82 79 95 92H249Q411 92 422 95Q496 105 554 148T638 257Q651 296 651 343Q651 391 638 430Q613 495 555 538T422 592Q411 595 249 595H95Q82 608 82 615ZM82 -132T82 -125T95 -103H380L420 -57Q452 -21 460 -14T474 -6Q482 -6 488 -12T495 -25T451 -81L433 -101L549 -103H662Q673 -114 673 -122T660 -143H395L355 -190Q311 -239 309 -239Q305 -241 302 -241Q294 -241 287 -235T280 -221T324 -163L342 -143H218L93 -141L86 -137Q82 -132 82 -125Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-228B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"subsetneqq\",\n                \"source\": \"\\\\subsetneqq\",\n                \"snippet\": \"\\\\subsetneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUBSETNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2ACB\\\" d=\\\"M693 221Q693 214 680 201H524Q398 201 367 202T309 212Q236 230 180 280T98 398Q84 438 84 492T98 585Q126 663 193 716T346 781Q347 781 373 781T440 782T520 783H680Q682 780 686 776T691 770T693 763T680 743H526Q364 743 353 741Q279 730 221 687T138 578Q124 540 124 492T138 405Q163 340 221 297T353 243Q364 241 526 241H680Q682 238 686 234T691 228T693 221ZM82 -48T82 -41T95 -19H462L513 41L569 105Q574 110 582 110T596 104T602 90Q602 87 600 83Q600 77 555 30L515 -17L600 -19H682Q693 -30 693 -38T680 -59H480L415 -137L349 -213L515 -215H682Q693 -226 693 -233T680 -255H313L260 -317Q224 -360 212 -372T192 -385Q184 -385 179 -377T173 -362Q174 -361 218 -306L260 -255H178L93 -253L86 -248Q82 -243 82 -235Q82 -226 93 -215H195L295 -213L362 -137L426 -59H260L93 -57L86 -53Q82 -48 82 -41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2ACB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"supsetneqq\",\n                \"source\": \"\\\\supsetneqq\",\n                \"snippet\": \"\\\\supsetneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.176ex\\\" style=\\\"vertical-align: -1.171ex;\\\" viewBox=\\\"0 -863.1 778.5 1367.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SUPSETNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2ACC\\\" d=\\\"M82 759T82 763T83 769T89 776T95 783H251Q378 783 409 782T469 772Q540 753 596 703T678 585Q691 546 691 492T678 398Q649 320 581 267T426 203Q415 201 251 201H95Q82 214 82 221Q82 225 83 227T89 234T95 241H249Q411 241 422 243Q496 253 554 296T638 405Q651 444 651 492Q651 539 638 578Q613 643 555 686T422 741Q411 743 249 743H95Q82 759 82 763ZM82 -48T82 -41T95 -19H462L513 41L569 105Q574 110 582 110T596 104T602 90Q602 87 600 83Q600 77 555 30L515 -17L600 -19H682Q693 -30 693 -38T680 -59H480L415 -137L349 -213L515 -215H682Q693 -226 693 -233T680 -255H313L260 -317Q224 -360 212 -372T192 -385Q184 -385 179 -377T173 -362Q174 -361 218 -306L260 -255H178L93 -253L86 -248Q82 -243 82 -235Q82 -226 93 -215H195L295 -213L362 -137L426 -59H260L93 -57L86 -53Q82 -48 82 -41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2ACC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varsubsetneq\",\n                \"source\": \"\\\\varsubsetneq\",\n                \"snippet\": \"\\\\varsubsetneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSUBSETNEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E01A\\\" d=\\\"M693 -115T693 -122T680 -144H315L269 -199Q221 -255 213 -255H212Q203 -255 197 -248T193 -231Q195 -225 229 -184L262 -144H186L113 -142L106 -137Q102 -130 102 -125Q102 -119 115 -104H298L426 52H386Q342 54 309 63Q236 79 180 129T98 249Q84 289 84 343Q84 398 98 436Q126 514 193 567T346 632Q347 632 373 632T440 633T520 634H680Q682 631 686 627T691 621T693 614T680 594H526Q364 594 353 592Q268 581 207 528T126 394Q123 378 123 343T126 292Q141 231 181 185T280 114Q329 92 415 92H462L506 147Q554 203 562 203H563Q572 203 578 196T582 178Q579 173 546 132L513 94L598 92H682Q693 81 693 73T680 52H480L349 -102L515 -104H682Q693 -115 693 -122Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E01A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varsupsetneq\",\n                \"source\": \"\\\\varsupsetneq\",\n                \"snippet\": \"\\\\varsupsetneq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -719.6 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSUPSETNEQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E01B\\\" d=\\\"M82 610T82 614T83 620T89 627T95 634H251Q378 634 409 633T469 623Q540 604 596 554T678 436Q691 397 691 343T678 249Q653 181 597 131T469 63Q427 52 362 52H315L213 -102L438 -104H662Q673 -115 673 -123Q673 -129 660 -144H186L151 -197Q114 -250 109 -253Q106 -254 104 -254Q100 -254 98 -253Q91 -253 87 -248T82 -235Q82 -230 109 -186L138 -144H115Q82 -144 82 -125Q82 -119 95 -104H166L266 49Q266 52 182 52H95Q82 65 82 72Q82 76 83 78T89 85T95 92H295L329 143Q365 195 369 198Q372 203 380 203Q385 203 391 197T398 185Q398 184 398 184L399 182Q399 175 369 129L344 94Q344 92 376 92Q402 92 422 94Q496 104 554 147T638 256Q651 295 651 343Q651 390 638 429Q613 494 555 537T422 592Q411 594 249 594H95Q82 610 82 614Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E01B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varsubsetneqq\",\n                \"source\": \"\\\\varsubsetneqq\",\n                \"snippet\": \"\\\\varsubsetneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSUBSETNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E017\\\" d=\\\"M82 -14T82 -7T95 15H431L529 170H435Q341 170 333 175Q149 218 98 368Q84 406 84 461Q84 515 98 555Q126 633 193 686T346 750Q347 750 373 750T440 751T520 752H680Q693 739 693 732Q693 727 680 712H526Q364 712 353 710Q268 700 207 646T126 512Q123 496 123 461T126 410Q141 350 180 304T280 232Q312 217 344 214T464 210H555L589 261Q613 301 620 311T635 321Q644 321 650 315T657 301Q657 296 651 286T630 252T604 212Q604 210 642 210H680Q693 197 693 190Q693 186 692 184T686 177T680 170H578L526 92L478 17L580 15H682Q693 4 693 -4T680 -25H451L353 -179L518 -181H682Q694 -193 694 -201Q694 -211 682 -219L504 -221H326L293 -272Q257 -332 246 -332Q238 -332 232 -326T225 -313Q225 -310 226 -308Q226 -305 251 -265T278 -223Q278 -221 186 -221H95Q93 -218 89 -214T84 -208T82 -201T95 -181H306L404 -25H249L93 -23L86 -19Q82 -14 82 -7Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E017\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varsupsetneqq\",\n                \"source\": \"\\\\varsupsetneqq\",\n                \"snippet\": \"\\\\varsupsetneqq\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"3.009ex\\\" style=\\\"vertical-align: -1.005ex;\\\" viewBox=\\\"0 -863.1 778.5 1295.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARSUPSETNEQQ.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-E019\\\" d=\\\"M82 732Q82 739 95 752H251Q415 752 426 750Q539 736 615 657Q667 599 689 517Q692 496 692 461T689 406Q668 325 615 266Q522 170 382 170H355L326 95Q319 80 311 59T298 28T293 17Q293 15 486 15H680Q693 0 693 -6T680 -25H275L213 -179L449 -181H682Q693 -192 693 -199T680 -221H198L178 -270Q153 -333 139 -333Q132 -333 126 -327T119 -314T135 -266T153 -223Q153 -221 124 -221H95Q82 -207 82 -201T95 -181H171L233 -25H162L93 -23L86 -19Q82 -14 82 -7T95 15H251L313 170H202L93 172L86 177Q82 182 82 190Q82 199 93 210H211L329 212L349 261Q366 301 372 311T386 321Q392 321 399 315T407 302Q407 295 390 254T373 210Q374 209 377 209Q412 209 444 217Q512 231 564 273T638 377Q651 414 651 461Q651 509 638 548Q613 613 555 656T422 710Q411 712 249 712H95Q82 727 82 732Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-E019\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"logic and\",\n                \"source\": \"\\\\land\",\n                \"snippet\": \"\\\\land\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOGIC AND.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2227\\\" d=\\\"M318 591Q325 598 333 598Q344 598 348 591Q349 590 414 445T545 151T611 -4Q609 -22 591 -22Q588 -22 586 -21T581 -20T577 -17T575 -13T572 -9T570 -4L333 528L96 -4Q87 -20 80 -21Q78 -22 75 -22Q57 -22 55 -4Q55 2 120 150T251 444T318 591Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2227\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"logic or\",\n                \"source\": \"\\\\lor\",\n                \"snippet\": \"\\\\lor\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 667.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOGIC OR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2228\\\" d=\\\"M55 580Q56 587 61 592T75 598Q86 598 96 580L333 48L570 580Q579 596 586 597Q588 598 591 598Q609 598 611 580Q611 574 546 426T415 132T348 -15Q343 -22 333 -22T318 -15Q317 -14 252 131T121 425T55 580Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2228\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"logic negation\",\n                \"keywords\": \"not\",\n                \"source\": \"\\\\lnot\",\n                \"snippet\": \"\\\\lnot\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"1.176ex\\\" style=\\\"vertical-align: 0.204ex; margin-bottom: -0.376ex;\\\" viewBox=\\\"0 -432.6 667.5 506.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOGIC NEGATION. Keywords: not</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-AC\\\" d=\\\"M56 323T56 336T70 356H596Q603 353 611 343V102Q598 89 591 89Q587 89 584 90T579 94T575 98T572 102L571 209V316H70Q56 323 56 336Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-AC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Arrows\": [\n            {\n                \"name\": \"leftarrow\",\n                \"keywords\": \"logic converse implication\",\n                \"source\": \"\\\\leftarrow\",\n                \"snippet\": \"\\\\leftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTARROW. Keywords: logic converse implication</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2190\\\" d=\\\"M944 261T944 250T929 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q121 283 158 314T215 375T247 434T264 480L267 497Q269 503 270 505T275 509T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270H929Q944 261 944 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2190\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"longleftarrow\",\n                \"source\": \"\\\\longleftarrow\",\n                \"snippet\": \"\\\\longleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.738ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1609.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F5\\\" d=\\\"M165 270H1510Q1525 262 1525 250T1510 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q121 283 158 314T215 375T247 434T264 480L267 497Q269 503 270 505T275 509T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Leftarrow\",\n                \"source\": \"\\\\Leftarrow\",\n                \"snippet\": \"\\\\Leftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D0\\\" d=\\\"M944 153Q944 140 929 133H318L328 123Q379 69 414 0Q419 -13 419 -17Q419 -24 399 -24Q388 -24 385 -23T377 -12Q332 77 253 144T72 237Q62 240 59 242T56 250T59 257T70 262T89 268T119 278T160 296Q303 366 377 512Q382 522 385 523T401 525Q419 524 419 515Q419 510 414 500Q379 431 328 377L318 367H929Q944 359 944 347Q944 336 930 328L602 327H274L264 319Q225 289 147 250Q148 249 165 241T210 217T264 181L274 173H930Q931 172 933 171T936 169T938 167T941 164T942 162T943 158T944 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Longleftarrow\",\n                \"source\": \"\\\\Longleftarrow\",\n                \"snippet\": \"\\\\Longleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.738ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1609.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F8\\\" d=\\\"M274 173H1539Q1540 172 1542 171T1545 169T1547 167T1550 164T1551 162T1552 158T1553 153Q1553 140 1538 133H318L328 123Q379 69 414 0Q419 -13 419 -17Q419 -24 399 -24Q388 -24 385 -23T377 -12Q332 77 253 144T72 237Q62 240 59 242T56 250T59 257T70 262T89 268T119 278T160 296Q303 366 377 512Q382 522 385 523T401 525Q419 524 419 515Q419 510 414 500Q379 431 328 377L318 367H1538Q1553 359 1553 347Q1553 336 1539 328L1221 327H903L900 328L602 327H274L264 319Q225 289 147 250Q148 249 165 241T210 217T264 181L274 173Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightarrow\",\n                \"keywords\": \"logic concequence from proposition\",\n                \"source\": \"\\\\rightarrow\",\n                \"snippet\": \"\\\\rightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTARROW. Keywords: logic concequence from proposition</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2192\\\" d=\\\"M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2192\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"longrightarrow\",\n                \"source\": \"\\\\longrightarrow\",\n                \"snippet\": \"\\\\longrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.806ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1638.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F6\\\" d=\\\"M84 237T84 250T98 270H1444Q1328 357 1301 493Q1301 494 1301 496T1300 499Q1300 511 1317 511H1320Q1329 511 1332 510T1338 506T1341 497T1344 481T1352 456Q1374 389 1425 336T1544 261Q1553 258 1553 250Q1553 244 1548 241T1524 231T1486 212Q1445 186 1415 152T1370 85T1349 35T1341 4Q1339 -6 1336 -8T1320 -11Q1300 -11 1300 0Q1300 7 1305 25Q1337 151 1444 230H98Q84 237 84 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Rightarrow\",\n                \"keywords\": \"logic concequence from proposition\",\n                \"source\": \"\\\\Rightarrow\",\n                \"snippet\": \"\\\\Rightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTARROW. Keywords: logic concequence from proposition</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D2\\\" d=\\\"M580 514Q580 525 596 525Q601 525 604 525T609 525T613 524T615 523T617 520T619 517T622 512Q659 438 720 381T831 300T927 263Q944 258 944 250T935 239T898 228T840 204Q696 134 622 -12Q618 -21 615 -22T600 -24Q580 -24 580 -17Q580 -13 585 0Q620 69 671 123L681 133H70Q56 140 56 153Q56 168 72 173H725L735 181Q774 211 852 250Q851 251 834 259T789 283T735 319L725 327H72Q56 332 56 347Q56 360 70 367H681L671 377Q638 412 609 458T580 514Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Longrightarrow\",\n                \"source\": \"\\\\Longrightarrow\",\n                \"snippet\": \"\\\\Longrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.806ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1638.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F9\\\" d=\\\"M1218 514Q1218 525 1234 525Q1239 525 1242 525T1247 525T1251 524T1253 523T1255 520T1257 517T1260 512Q1297 438 1358 381T1469 300T1565 263Q1582 258 1582 250T1573 239T1536 228T1478 204Q1334 134 1260 -12Q1256 -21 1253 -22T1238 -24Q1218 -24 1218 -17Q1218 -13 1223 0Q1258 69 1309 123L1319 133H70Q56 140 56 153Q56 168 72 173H1363L1373 181Q1412 211 1490 250Q1489 251 1472 259T1427 283T1373 319L1363 327H710L707 328L390 327H72Q56 332 56 347Q56 360 70 367H1319L1309 377Q1276 412 1247 458T1218 514Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftrightarrow\",\n                \"keywords\": \"logic equivalence proposition follows\",\n                \"source\": \"\\\\leftrightarrow\",\n                \"snippet\": \"\\\\leftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTRIGHTARROW. Keywords: logic equivalence proposition follows</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2194\\\" d=\\\"M263 479Q267 501 271 506T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270H835Q729 349 696 475Q691 493 691 500Q691 511 711 511Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q144 292 194 349T263 479Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2194\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"longleftrightarrow\",\n                \"source\": \"\\\\longleftrightarrow\",\n                \"snippet\": \"\\\\longleftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.319ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1859.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGLEFTRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F7\\\" d=\\\"M165 270H1694Q1578 357 1551 493Q1551 494 1551 496T1550 499Q1550 511 1567 511H1570Q1579 511 1582 510T1588 506T1591 497T1594 481T1602 456Q1624 389 1675 336T1794 261Q1803 258 1803 250Q1803 244 1798 241T1774 231T1736 212Q1695 186 1665 152T1620 85T1599 35T1591 4Q1589 -6 1586 -8T1570 -11Q1550 -11 1550 0Q1550 7 1555 25Q1587 151 1694 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q121 283 158 314T215 375T247 434T264 480L267 497Q269 503 270 505T275 509T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Leftrightarrow\",\n                \"keywords\": \"logic equivalence proposition follows\",\n                \"source\": \"\\\\Leftrightarrow\",\n                \"snippet\": \"\\\\Leftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTRIGHTARROW. Keywords: logic equivalence proposition follows</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D4\\\" d=\\\"M308 524Q318 526 323 526Q340 526 340 514Q340 507 336 499Q326 476 314 454T292 417T274 391T260 374L255 368Q255 367 500 367Q744 367 744 368L739 374Q734 379 726 390T707 416T685 453T663 499Q658 511 658 515Q658 525 680 525Q687 524 690 523T695 519T701 507Q766 359 902 287Q921 276 939 269T961 259T966 250Q966 246 965 244T960 240T949 236T930 228T902 213Q763 137 701 -7Q697 -16 695 -19T690 -23T680 -25Q658 -25 658 -15Q658 -11 663 1Q673 24 685 46T707 83T725 109T739 126L744 132Q744 133 500 133Q255 133 255 132L260 126Q265 121 273 110T292 84T314 47T336 1Q341 -11 341 -15Q341 -25 319 -25Q312 -24 309 -23T304 -19T298 -7Q233 141 97 213Q83 221 70 227T51 235T41 239T35 243T34 250T35 256T40 261T51 265T70 273T97 287Q235 363 299 509Q305 522 308 524ZM792 319L783 327H216Q183 294 120 256L110 250L120 244Q173 212 207 181L216 173H783L792 181Q826 212 879 244L889 250L879 256Q826 288 792 319Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Longleftrightarrow\",\n                \"source\": \"\\\\Longleftrightarrow\",\n                \"snippet\": \"\\\\Longleftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"4.317ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1858.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGLEFTRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27FA\\\" d=\\\"M1438 514Q1438 525 1454 525Q1459 525 1462 525T1467 525T1471 524T1473 523T1475 520T1477 517T1480 512Q1517 438 1578 381T1689 300T1785 263Q1802 258 1802 250T1793 239T1756 228T1698 204Q1554 134 1480 -12Q1476 -21 1473 -22T1458 -24Q1438 -24 1438 -17Q1438 -13 1443 0Q1478 69 1529 123L1539 133H318L328 123Q379 69 414 0Q419 -13 419 -17Q419 -24 399 -24Q388 -24 385 -23T377 -12Q332 77 253 144T72 237Q62 240 59 242T56 250T59 257T70 262T89 268T119 278T160 296Q303 366 377 512Q382 522 385 523T401 525Q419 524 419 515Q419 510 414 500Q379 431 328 377L318 367H1539L1529 377Q1496 412 1467 458T1438 514ZM274 173H1583L1593 181Q1632 211 1710 250Q1709 251 1692 259T1647 283T1593 319L1583 327H930L927 328L602 327H274L264 319Q225 289 147 250Q148 249 165 241T210 217T264 181L274 173Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27FA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"uparrow\",\n                \"source\": \"\\\\uparrow\",\n                \"snippet\": \"\\\\uparrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2191\\\" d=\\\"M27 414Q17 414 17 433Q17 437 17 439T17 444T19 447T20 450T22 452T26 453T30 454T36 456Q80 467 120 494T180 549Q227 607 238 678Q240 694 251 694Q259 694 261 684Q261 677 265 659T284 608T320 549Q340 525 363 507T405 479T440 463T467 455T479 451Q483 447 483 433Q483 413 472 413Q467 413 458 416Q342 448 277 545L270 555V-179Q262 -193 252 -193H250H248Q236 -193 230 -179V555L223 545Q192 499 146 467T70 424T27 414Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2191\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Uparrow\",\n                \"source\": \"\\\\Uparrow\",\n                \"snippet\": \"\\\\Uparrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 611.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D1\\\" d=\\\"M228 -179Q227 -180 226 -182T223 -186T221 -189T218 -192T214 -193T208 -194Q196 -194 189 -181L188 125V430L176 419Q122 369 59 338Q46 330 40 330Q38 330 31 337V350Q31 362 33 365T46 374Q60 381 77 390T128 426T190 484T247 567T292 677Q295 688 298 692Q302 694 305 694Q313 694 318 677Q334 619 363 568T420 485T481 427T532 391T564 374Q575 368 577 365T579 350V337Q572 330 570 330Q564 330 551 338Q487 370 435 419L423 430L422 125V-181Q409 -194 401 -194Q397 -194 394 -193T388 -189T385 -184T382 -180V-177V475L373 487Q331 541 305 602Q304 601 300 591T290 571T278 548T260 519T238 488L229 476L228 148V-179Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"downarrow\",\n                \"source\": \"\\\\downarrow\",\n                \"snippet\": \"\\\\downarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2193\\\" d=\\\"M473 86Q483 86 483 67Q483 63 483 61T483 56T481 53T480 50T478 48T474 47T470 46T464 44Q428 35 391 14T316 -55T264 -168Q264 -170 263 -173T262 -180T261 -184Q259 -194 251 -194Q242 -194 238 -176T221 -121T180 -49Q169 -34 155 -21T125 2T95 20T67 33T44 42T27 47L21 49Q17 53 17 67Q17 87 28 87Q33 87 42 84Q158 52 223 -45L230 -55V312Q230 391 230 482T229 591Q229 662 231 676T243 693Q244 694 251 694Q264 692 270 679V-55L277 -45Q307 1 353 33T430 76T473 86Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2193\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Downarrow\",\n                \"source\": \"\\\\Downarrow\",\n                \"snippet\": \"\\\\Downarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 611.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D3\\\" d=\\\"M401 694Q412 694 422 681V375L423 70L435 81Q487 130 551 162Q564 170 570 170Q572 170 579 163V150Q579 138 577 135T564 126Q541 114 518 99T453 48T374 -46T318 -177Q313 -194 305 -194T293 -178T272 -119T225 -31Q158 70 46 126Q35 132 33 135T31 150V163Q38 170 40 170Q46 170 59 162Q122 131 176 81L188 70V375L189 681Q199 694 208 694Q219 694 228 680V352L229 25L238 12Q279 -42 305 -102Q344 -23 373 13L382 25V678Q387 692 401 694Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"updownarrow\",\n                \"source\": \"\\\\updownarrow\",\n                \"snippet\": \"\\\\updownarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 500.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPDOWNARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2195\\\" d=\\\"M27 492Q17 492 17 511Q17 515 17 517T17 522T19 525T20 528T22 530T26 531T30 532T36 534Q80 545 120 572T180 627Q210 664 223 701T238 755T250 772T261 762Q261 757 264 741T282 691T319 628Q352 589 390 566T454 536L479 529Q483 525 483 511Q483 491 472 491Q467 491 458 494Q342 526 277 623L270 633V-133L277 -123Q307 -77 353 -45T430 -2T473 8Q483 8 483 -11Q483 -15 483 -17T483 -22T481 -25T480 -28T478 -30T474 -31T470 -32T464 -34Q407 -49 364 -84T300 -157T270 -223T261 -262Q259 -272 250 -272Q242 -272 239 -255T223 -201T180 -127Q169 -112 155 -99T125 -76T95 -58T67 -45T44 -36T27 -31L21 -29Q17 -25 17 -11Q17 9 28 9Q33 9 42 6Q158 -26 223 -123L230 -133V633L223 623Q192 577 146 545T70 502T27 492Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2195\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Updownarrow\",\n                \"source\": \"\\\\Updownarrow\",\n                \"snippet\": \"\\\\Updownarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 611.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPDOWNARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21D5\\\" d=\\\"M290 755Q298 772 305 772T318 757T343 706T393 633Q431 588 473 558T545 515T579 497V484Q579 464 570 464Q564 464 550 470Q485 497 423 550L422 400V100L423 -50Q485 3 550 30Q565 36 570 36Q579 36 579 16V3Q575 -1 549 -12T480 -53T393 -132Q361 -172 342 -208T318 -258T305 -272T293 -258T268 -208T217 -132Q170 -80 128 -51T61 -12T31 3V16Q31 36 40 36Q46 36 61 30Q86 19 109 6T146 -18T173 -38T188 -50V550Q186 549 173 539T147 519T110 495T61 470Q46 464 40 464Q31 464 31 484V497Q34 500 63 513T135 557T217 633Q267 692 290 755ZM374 598Q363 610 351 625T332 651T316 676T305 695L294 676Q282 657 267 636T236 598L228 589V-89L236 -98Q247 -110 259 -125T278 -151T294 -176T305 -195L316 -176Q328 -157 343 -136T374 -98L382 -89V589L374 598Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21D5\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nleftarrow\",\n                \"source\": \"\\\\nleftarrow\",\n                \"snippet\": \"\\\\nleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.137ex; margin-bottom: -0.308ex;\\\" viewBox=\\\"0 -576.1 1000.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJAMS-219A\\\" d=\\\"M942 250Q942 244 928 230H511L457 148Q440 124 420 93Q404 68 400 64T389 60Q381 60 375 66T368 81Q368 88 415 159L462 230H175L188 214Q210 188 235 145T264 85Q264 75 260 74T231 72L206 74L191 103Q169 142 164 150Q130 195 64 239Q56 244 56 250T64 261Q115 294 142 323T191 397L206 428H231Q255 428 259 426T264 414Q260 397 235 355T188 288L175 272L331 270Q488 270 491 272Q491 275 542 352T597 432Q602 437 609 437Q617 437 622 432T628 417T582 341L537 272L735 270H931Q942 257 942 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJAMS-219A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nrightarrow\",\n                \"source\": \"\\\\nrightarrow\",\n                \"snippet\": \"\\\\nrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.137ex; margin-bottom: -0.308ex;\\\" viewBox=\\\"0 -576.1 1000.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-219B\\\" d=\\\"M54 250Q54 258 66 270H277L488 272L542 350Q596 431 602 435Q604 437 609 437Q617 437 622 432T628 417T582 341L537 272L608 270H751L822 272L808 288Q786 313 761 355T733 414Q733 424 737 426T766 428H793L806 397Q829 354 864 314Q896 284 928 263Q942 257 942 250T928 237Q887 208 864 185Q829 147 806 103L793 74L766 72Q742 72 738 73T733 85Q735 102 756 137T797 198L817 225L822 230H511L457 148Q440 124 420 93Q404 68 400 64T389 60Q381 60 375 66T368 81Q368 88 415 159L462 230H264L66 232Q54 239 54 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-219B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nLeftarrow\",\n                \"source\": \"\\\\nLeftarrow\",\n                \"snippet\": \"\\\\nLeftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CD\\\" d=\\\"M397 525Q410 525 414 524T418 516Q418 506 394 467T331 381L319 367H473L624 369L657 445Q674 487 684 507T699 531T709 534Q717 534 722 528T728 516Q728 510 695 434Q689 418 683 402T672 377T668 367H928Q942 355 942 347Q942 341 928 327H791Q651 327 651 325Q649 324 620 251T586 174Q586 172 757 172H928Q942 158 942 152Q942 143 928 132H568L537 54Q510 -9 503 -22T486 -35Q479 -35 473 -29T466 -17T495 61L526 132H319L331 118Q364 81 391 37T418 -17Q418 -23 415 -24T401 -26Q398 -26 397 -26L384 -24L377 -13Q344 49 301 97T218 170T143 210T84 233T55 245Q54 253 59 256T86 267Q281 327 377 512L384 525H397ZM606 325Q606 327 439 327H275Q258 312 179 265L148 249Q228 206 262 181L275 172H544L575 247L606 325Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nRightarrow\",\n                \"source\": \"\\\\nRightarrow\",\n                \"snippet\": \"\\\\nRightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CF\\\" d=\\\"M346 174Q348 176 378 249T411 325Q411 327 239 327H68Q55 342 55 347Q55 354 68 367H428L459 445Q487 509 494 521T510 534Q517 534 524 527T531 516Q531 515 502 438L471 367H677L666 381Q631 421 605 463T578 516Q578 522 582 523T599 525H615L619 512Q659 437 714 383T812 309T896 272T942 254Q943 246 938 243T911 232Q718 172 619 -13L615 -24L599 -26Q578 -26 578 -17Q578 -11 587 6T617 53T666 118L677 132H373L339 54Q323 12 313 -8T298 -32T288 -35Q280 -35 275 -29T269 -17Q269 -14 298 57T328 132H68Q55 145 55 152Q55 156 56 158T62 165T68 172H206Q346 172 346 174ZM848 249Q763 297 735 318L722 327H455L422 252L391 174Q391 172 557 172H722L735 181Q773 210 819 234L848 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nleftrightarrow\",\n                \"source\": \"\\\\nleftrightarrow\",\n                \"snippet\": \"\\\\nleftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.137ex; margin-bottom: -0.308ex;\\\" viewBox=\\\"0 -576.1 1000.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEFTRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21AE\\\" d=\\\"M491 272Q491 275 542 352T597 432Q602 437 609 437Q617 437 622 432T628 417T582 341L537 272L608 270H751L822 272L808 288Q786 313 761 355T733 414Q733 424 737 426T766 428H793L806 397Q829 354 864 314Q896 284 928 263Q942 257 942 250T928 237Q887 208 864 185Q829 147 806 103L793 74L766 72Q742 72 738 73T733 85Q735 102 756 137T797 198L817 225L822 230H511L457 148Q440 124 420 93Q404 68 400 64T389 60Q381 60 375 66T368 81Q368 88 415 159L462 230H175L188 214Q210 188 235 145T264 85Q264 75 260 74T231 72L206 74L191 103Q169 142 164 150Q130 195 64 239Q56 244 56 250T64 261Q115 294 142 323T191 397L206 428H231Q255 428 259 426T264 414Q260 397 235 355T188 288L175 272L331 270Q488 270 491 272Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21AE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nLeftrightarrow\",\n                \"source\": \"\\\\nLeftrightarrow\",\n                \"snippet\": \"\\\\nLeftrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NLEFTRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CE\\\" d=\\\"M395 -24T395 -19T417 57T440 132H255L266 116Q308 64 340 -6Q342 -17 337 -21Q335 -26 320 -26T302 -19Q302 -15 294 4T265 54T217 117T145 182T49 236Q30 243 33 254Q40 261 49 263Q98 283 142 315T214 379T263 442T293 493T302 519Q305 525 320 525T337 521Q342 516 340 505Q308 435 266 383L255 370L384 367H515Q561 522 569 530Q574 534 580 534Q587 534 594 528T602 516Q602 512 580 441T557 367H651L742 370L731 383Q689 435 657 505Q655 516 660 521Q662 525 677 525T695 519Q695 515 703 496T732 446T780 383T853 317T949 263Q967 258 964 245Q959 240 949 236Q897 215 852 182T779 116T731 52T703 3T695 -19Q692 -26 677 -26T660 -21Q655 -17 657 -6Q670 21 682 42T702 77T717 99T728 114T735 122T739 126T740 130T613 132H482L460 54Q440 -9 433 -23T415 -37Q408 -37 402 -31ZM502 325Q502 327 360 327H217L195 310Q173 291 120 256L111 250Q114 248 143 229T195 190L217 172H335L453 174L502 325ZM886 250Q885 251 865 263T831 286T802 310L780 327H544L535 299Q531 283 511 223L495 174L637 172H780L802 190Q843 225 877 243L886 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"to\",\n                \"keywords\": \"sequence tends to limit function map sets\",\n                \"source\": \"\\\\to\",\n                \"snippet\": \"\\\\to\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TO. Keywords: sequence tends to limit function map sets</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2192\\\" d=\\\"M56 237T56 250T70 270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H70Q56 237 56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2192\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"mapsto\",\n                \"keywords\": \"function map sets elements\",\n                \"source\": \"\\\\mapsto\",\n                \"snippet\": \"\\\\mapsto\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MAPSTO. Keywords: function map sets elements</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21A6\\\" d=\\\"M95 155V109Q95 83 92 73T75 63Q61 63 58 74T54 130Q54 140 54 180T55 250Q55 421 57 425Q61 437 75 437Q88 437 91 428T95 393V345V270H835Q719 357 692 493Q692 494 692 496T691 499Q691 511 708 511H711Q720 511 723 510T729 506T732 497T735 481T743 456Q765 389 816 336T935 261Q944 258 944 250Q944 244 939 241T915 231T877 212Q836 186 806 152T761 85T740 35T732 4Q730 -6 727 -8T711 -11Q691 -11 691 0Q691 7 696 25Q728 151 835 230H95V155Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21A6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"longmapsto\",\n                \"source\": \"\\\\longmapsto\",\n                \"snippet\": \"\\\\longmapsto\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.806ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1638.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LONGMAPSTO.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27FC\\\" d=\\\"M95 155V109Q95 83 92 73T75 63Q61 63 58 74T54 130Q54 140 54 180T55 250Q55 421 57 425Q61 437 75 437Q88 437 91 428T95 393V345V270H1444Q1328 357 1301 493Q1301 494 1301 496T1300 499Q1300 511 1317 511H1320Q1329 511 1332 510T1338 506T1341 497T1344 481T1352 456Q1374 389 1425 336T1544 261Q1553 258 1553 250Q1553 244 1548 241T1524 231T1486 212Q1445 186 1415 152T1370 85T1349 35T1341 4Q1339 -6 1336 -8T1320 -11Q1300 -11 1300 0Q1300 7 1305 25Q1337 151 1444 230H95V155Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27FC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"implies\",\n                \"keywords\": \"logic concequence from proposition\",\n                \"source\": \"\\\\implies\",\n                \"snippet\": \"\\\\implies\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"5.096ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 2194.1 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IMPLIES. Keywords: logic concequence from proposition</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-27F9\\\" d=\\\"M1218 514Q1218 525 1234 525Q1239 525 1242 525T1247 525T1251 524T1253 523T1255 520T1257 517T1260 512Q1297 438 1358 381T1469 300T1565 263Q1582 258 1582 250T1573 239T1536 228T1478 204Q1334 134 1260 -12Q1256 -21 1253 -22T1238 -24Q1218 -24 1218 -17Q1218 -13 1223 0Q1258 69 1309 123L1319 133H70Q56 140 56 153Q56 168 72 173H1363L1373 181Q1412 211 1490 250Q1489 251 1472 259T1427 283T1373 319L1363 327H710L707 328L390 327H72Q56 332 56 347Q56 360 70 367H1319L1309 377Q1276 412 1247 458T1218 514Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-27F9\\\" x=\\\"277\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hookleftarrow\",\n                \"source\": \"\\\\hookleftarrow\",\n                \"snippet\": \"\\\\hookleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.616ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1126.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HOOKLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21A9\\\" d=\\\"M903 424T903 444T929 464Q976 464 1023 434T1070 347Q1070 316 1055 292T1016 256T971 237T929 230H165Q167 228 182 216T211 189T244 152T277 96T303 25Q308 7 308 0Q308 -11 288 -11Q281 -11 278 -11T272 -7T267 2T263 21Q245 94 195 151T73 236Q58 242 55 247Q55 254 59 257T73 264Q121 283 158 314T215 375T247 434T264 480L267 497Q269 503 270 505T275 509T288 511Q308 511 308 500Q308 493 303 475Q293 438 278 406T246 352T215 315T185 287T165 270H926Q929 270 941 271T960 275T978 280T998 290T1015 307Q1030 325 1030 347Q1030 355 1027 364T1014 387T983 411T929 424H928Q903 424 903 444Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21A9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hookrightarrow\",\n                \"keywords\": \"embedding topological vector space\",\n                \"source\": \"\\\\hookrightarrow\",\n                \"snippet\": \"\\\\hookrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.616ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1126.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HOOKRIGHTARROW. Keywords: embedding topological vector space</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21AA\\\" d=\\\"M55 347Q55 380 72 404T113 441T159 458T197 464Q222 464 222 444Q222 429 204 426T157 417T110 387Q95 369 95 347Q95 339 98 330T111 307T142 283T196 270H961Q845 357 818 493Q818 494 818 496T817 499Q817 511 834 511H837Q846 511 849 510T855 506T858 497T861 481T869 456Q891 389 942 336T1061 261Q1070 258 1070 250Q1070 244 1065 241T1041 231T1003 212Q962 186 932 152T887 85T866 35T858 4Q856 -6 853 -8T837 -11Q817 -11 817 0Q817 7 822 25Q854 151 961 230H196Q149 230 102 260T55 347Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21AA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftharpoonup\",\n                \"source\": \"\\\\leftharpoonup\",\n                \"snippet\": \"\\\\leftharpoonup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: 0.532ex; margin-bottom: -0.703ex;\\\" viewBox=\\\"0 -647.8 1000.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTHARPOONUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21BC\\\" d=\\\"M62 230Q56 236 55 244Q55 252 57 255T69 265Q114 292 151 326T208 391T243 448T265 491T273 509Q276 511 288 511Q304 511 306 505Q309 501 303 484Q293 456 279 430T251 383T223 344T196 313T173 291T156 276L148 270H929Q944 261 944 250T929 230H62Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21BC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightharpoonup\",\n                \"source\": \"\\\\rightharpoonup\",\n                \"snippet\": \"\\\\rightharpoonup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: 0.532ex; margin-bottom: -0.703ex;\\\" viewBox=\\\"0 -647.8 1000.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTHARPOONUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21C0\\\" d=\\\"M691 500Q691 511 711 511Q720 511 723 510T730 504T735 490T746 464T768 425Q796 378 835 339T897 285T933 263Q941 258 942 256T944 245T937 230H70Q56 237 56 250T70 270H852Q802 308 762 364T707 455T691 500Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21C0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftharpoondown\",\n                \"source\": \"\\\\leftharpoondown\",\n                \"snippet\": \"\\\\leftharpoondown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -360.8 1000.5 506.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTHARPOONDOWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21BD\\\" d=\\\"M55 256Q56 264 62 270H929Q944 261 944 250T929 230H148Q149 229 165 215T196 185T231 145T270 87T303 16Q309 -1 306 -5Q304 -11 288 -11Q279 -11 276 -10T269 -4T264 10T253 36T231 75Q172 173 69 235Q59 242 57 245T55 256Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21BD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightharpoondown\",\n                \"source\": \"\\\\rightharpoondown\",\n                \"snippet\": \"\\\\rightharpoondown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -360.8 1000.5 506.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTHARPOONDOWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-21C1\\\" d=\\\"M56 237T56 250T70 270H937Q944 263 944 256Q944 251 944 250T943 246T940 242T933 238Q794 153 734 7Q729 -7 726 -9T711 -11Q695 -11 693 -5Q690 -1 696 16Q721 84 763 139T852 230H70Q56 237 56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-21C1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightleftharpoons\",\n                \"source\": \"\\\\rightleftharpoons\",\n                \"snippet\": \"\\\\rightleftharpoons\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTLEFTHARPOONS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CC\\\" d=\\\"M755 512Q755 514 778 514H801L804 503Q805 501 812 486T824 462T839 437T862 408T892 381T932 354L944 347V327H507Q70 327 67 329Q55 335 55 347T67 365Q70 367 454 367H837L828 376Q803 403 785 437T761 489T755 512ZM55 153V173H492Q928 173 932 171Q944 166 944 153T932 135Q928 133 545 133H162L171 124Q198 95 216 61T239 8L244 -12Q244 -14 221 -14H198L195 -4Q160 95 67 146L55 153Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftrightharpoons\",\n                \"source\": \"\\\\leftrightharpoons\",\n                \"snippet\": \"\\\\leftrightharpoons\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 1000.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTRIGHTHARPOONS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CB\\\" d=\\\"M195 504L198 514H221Q244 514 244 512Q244 508 239 490T215 437T171 376L162 367H545Q928 367 932 365Q944 360 944 347T932 329Q928 327 492 327H55V347L67 354Q113 379 146 420T195 504ZM67 171Q70 173 507 173H944V153L932 146Q839 95 804 -4L801 -14H778Q755 -14 755 -12Q768 59 828 124L837 133H454Q71 133 67 135Q55 140 55 153Q55 165 67 171Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upharpoonleft\",\n                \"source\": \"\\\\upharpoonleft\",\n                \"snippet\": \"\\\\upharpoonleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.97ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 417.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPHARPOONLEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21BF\\\" d=\\\"M41 551Q76 559 123 592T201 682L208 694H228V258Q228 -178 226 -182Q221 -194 208 -194T190 -182Q188 -178 188 205V587L179 578Q151 552 117 534T65 511T42 505Q41 505 41 528V551Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21BF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"downharpoonleft\",\n                \"source\": \"\\\\downharpoonleft\",\n                \"snippet\": \"\\\\downharpoonleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.97ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 417.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNHARPOONLEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C3\\\" d=\\\"M188 295V573Q188 657 189 672T200 692Q206 694 208 694Q221 694 226 683Q228 679 228 242V-194H208L201 -182Q170 -128 123 -94T41 -51V-28Q41 -5 42 -5Q47 -5 65 -10T117 -34T179 -78L188 -87V295Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upharpoonright\",\n                \"source\": \"\\\\upharpoonright\",\n                \"snippet\": \"\\\\upharpoonright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.97ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 417.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPHARPOONRIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21BE\\\" d=\\\"M188 258V694H208L215 682Q246 628 293 594T375 551V528Q375 505 374 505Q369 505 351 510T299 534T237 578L228 587V205Q228 -178 226 -182Q221 -194 208 -194T190 -182Q188 -178 188 258Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21BE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"downharpoonright\",\n                \"source\": \"\\\\downharpoonright\",\n                \"snippet\": \"\\\\downharpoonright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.97ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 417.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNHARPOONRIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C2\\\" d=\\\"M190 682Q195 694 208 694T226 683Q228 679 228 296V-87L237 -78Q265 -52 299 -34T351 -11T374 -5Q375 -5 375 -28V-51Q340 -60 293 -92T215 -182L208 -194H188V242Q188 678 190 682Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leadsto\",\n                \"source\": \"\\\\leadsto\",\n                \"snippet\": \"\\\\leadsto\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEADSTO.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21DD\\\" d=\\\"M76 230Q68 230 62 237T56 250Q56 257 63 264T91 291Q102 300 108 306L159 351Q168 356 177 351L218 316L303 239L353 195Q376 214 403 239L488 316L529 351Q538 356 546 351Q548 350 594 310L638 270H848L841 278Q813 309 792 344T763 396T755 416Q755 417 778 417H801Q817 367 856 323T943 250Q895 221 856 177T801 83H778Q755 83 755 84Q755 86 762 103T791 156T841 222L848 230H737Q625 230 622 232Q620 233 599 251T558 288L537 306Q537 305 451 228T362 149Q353 146 345 149Q341 150 255 227T169 306Q167 306 129 270Q123 265 115 257T102 245T93 237T84 232T76 230Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21DD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nearrow\",\n                \"keywords\": \"function tends to limit approach from below\",\n                \"source\": \"\\\\nearrow\",\n                \"snippet\": \"\\\\nearrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -863.1 1000.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NEARROW. Keywords: function tends to limit approach from below</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2197\\\" d=\\\"M582 697Q582 701 591 710T605 720Q607 720 630 706T697 677T795 662Q830 662 863 670T914 686T934 694Q942 694 944 685Q944 680 936 663T921 615T913 545Q913 490 927 446T956 379T970 355Q970 351 961 342T947 332Q940 332 929 349Q874 436 874 541Q874 590 878 598L832 553Q787 508 673 395T482 204Q87 -191 83 -193Q77 -195 75 -195Q67 -195 61 -189T55 -174Q55 -170 56 -168Q58 -164 453 232Q707 487 777 557T847 628Q824 623 787 623Q689 623 599 679Q582 690 582 697Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2197\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"searrow\",\n                \"keywords\": \"function tends to limit approach from above\",\n                \"source\": \"\\\\searrow\",\n                \"snippet\": \"\\\\searrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 1000.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SEARROW. Keywords: function tends to limit approach from above</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2198\\\" d=\\\"M55 675Q55 683 60 689T75 695Q77 695 83 693Q87 691 482 296Q532 246 605 174T717 62T799 -20T859 -80T878 -97Q874 -93 874 -41Q874 64 929 151Q940 168 947 168Q951 168 960 159T970 145Q970 143 956 121T928 54T913 -45Q913 -83 920 -114T936 -163T944 -185Q942 -194 934 -194Q932 -194 914 -186T864 -170T795 -162Q743 -162 698 -176T630 -205T605 -220Q601 -220 592 -211T582 -197Q582 -187 611 -170T691 -138T787 -123Q824 -123 847 -128Q848 -128 778 -57T453 268Q58 664 56 668Q55 670 55 675Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2198\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"swarrow\",\n                \"source\": \"\\\\swarrow\",\n                \"snippet\": \"\\\\swarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 1000.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SWARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2199\\\" d=\\\"M126 -41Q126 -92 121 -97Q121 -98 139 -80T200 -20T281 61T394 173T517 296Q909 690 916 693Q922 695 924 695Q932 695 938 689T944 674Q944 670 943 668Q942 664 546 268Q292 13 222 -57T153 -128Q176 -123 212 -123Q310 -123 400 -179Q417 -190 417 -197Q417 -201 408 -210T394 -220Q392 -220 369 -206T302 -177T204 -162Q131 -162 67 -194Q63 -195 59 -192T55 -183Q55 -180 62 -163T78 -115T86 -45Q86 10 72 54T44 120T29 145Q29 149 38 158T52 168Q59 168 70 151Q126 62 126 -41Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2199\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nwarrow\",\n                \"source\": \"\\\\nwarrow\",\n                \"snippet\": \"\\\\nwarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -863.1 1000.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NWARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2196\\\" d=\\\"M204 662Q257 662 301 676T369 705T394 720Q398 720 407 711T417 697Q417 688 389 671T310 639T212 623Q176 623 153 628Q151 628 221 557T546 232Q942 -164 943 -168Q944 -170 944 -174Q944 -182 938 -188T924 -195Q922 -195 916 -193Q912 -191 517 204Q440 281 326 394T166 553L121 598Q126 589 126 541Q126 438 70 349Q59 332 52 332Q48 332 39 341T29 355Q29 358 38 372T57 407T77 464T86 545Q86 583 78 614T63 663T55 683Q55 693 65 693Q73 693 82 688Q136 662 204 662Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2196\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dashrightarrow\",\n                \"source\": \"\\\\dashrightarrow\",\n                \"snippet\": \"\\\\dashrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.099ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.146ex; margin-bottom: -0.318ex;\\\" viewBox=\\\"0 -576.1 1334.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DASHRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21E2\\\" d=\\\"M84 237T84 250T98 270H402Q417 262 417 250T402 230H98Q84 237 84 250ZM501 237T501 250T515 270H819Q834 262 834 250T819 230H515Q501 237 501 250ZM1022 417Q1022 437 1055 437H1067Q1090 437 1097 434T1109 417Q1128 373 1161 333T1236 270Q1251 261 1251 250Q1251 241 1244 236T1216 217T1175 182Q1149 155 1133 128T1109 85T1097 66Q1093 64 1065 64H1053Q1031 64 1025 72T1027 100Q1036 124 1049 147T1073 185T1091 210T1101 223L1103 225H1008H950Q914 225 903 229T892 250T903 270T948 275H1008H1103L1101 277Q1100 280 1091 291T1067 325T1039 374Q1022 408 1022 417Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21E2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dashleftarrow\",\n                \"source\": \"\\\\dashleftarrow\",\n                \"snippet\": \"\\\\dashleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.099ex\\\" height=\\\"1.509ex\\\" style=\\\"vertical-align: 0.146ex; margin-bottom: -0.318ex;\\\" viewBox=\\\"0 -576.1 1334.5 649.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DASHLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21E0\\\" d=\\\"M292 419Q292 400 261 347T211 275H306H364Q400 275 411 271T422 250T411 230T366 225H306H211Q214 222 232 197T271 136T292 82Q292 71 285 68T262 64H250H241Q221 64 216 67T205 83Q186 127 153 167T78 230Q64 238 64 250Q64 258 69 263T82 272T106 288T139 318Q162 342 177 365T198 402T209 425T223 436Q224 437 252 437H258Q292 437 292 419ZM501 237T501 250T515 270H819Q834 262 834 250T819 230H515Q501 237 501 250ZM918 237T918 250T932 270H1236Q1251 262 1251 250T1236 230H932Q918 237 918 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21E0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftleftarrows\",\n                \"source\": \"\\\\leftleftarrows\",\n                \"snippet\": \"\\\\leftleftarrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTLEFTARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C7\\\" d=\\\"M930 437Q944 426 944 416T934 399Q930 397 540 397H150L159 387Q185 360 205 328T234 277T243 252Q243 237 217 191T159 113L150 103H540Q930 103 934 101Q944 94 944 84Q944 71 930 64L540 63H151Q180 34 203 -2T236 -61L244 -83H198Q178 -31 142 11T66 77L55 83L65 89Q157 145 197 246Q199 250 190 269Q150 359 65 411L55 417L66 423Q106 447 142 489T198 583H244Q202 488 151 437H930Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightrightarrows\",\n                \"source\": \"\\\\rightrightarrows\",\n                \"snippet\": \"\\\\rightrightarrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTRIGHTARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C9\\\" d=\\\"M55 416Q55 427 70 437H848Q819 466 796 502T764 561L755 583H801Q821 531 857 489T933 423L944 417L934 411Q843 355 802 254Q800 250 809 231Q849 141 934 89L944 83L933 77Q893 53 857 11T801 -83H755Q797 12 848 63H459L70 64Q55 70 55 84Q55 94 65 101Q69 103 459 103H849L840 113Q806 148 779 196T756 254Q756 255 760 264T770 286T786 315T809 351T840 387L849 397H459Q69 397 65 399Q55 406 55 416Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C9\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftrightarrows\",\n                \"source\": \"\\\\leftrightarrows\",\n                \"snippet\": \"\\\\leftrightarrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTRIGHTARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C6\\\" d=\\\"M56 500Q103 527 142 572T199 667H221Q244 667 244 666Q244 664 237 647T208 594T158 528L151 520H539Q928 520 932 518Q944 513 944 500T932 482Q928 480 539 480H151L158 472Q186 441 207 406T236 354T244 334Q244 333 221 333H199Q181 383 142 428T56 500ZM943 167Q835 101 801 0H778Q755 0 755 1T758 9T765 25T771 39Q800 94 839 137L848 147H458Q68 147 66 149Q55 154 55 167Q55 182 69 186Q71 187 460 187H848L838 198Q811 228 791 261T762 314L755 332Q755 333 778 333H801Q841 227 943 167Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightleftarrows\",\n                \"source\": \"\\\\rightleftarrows\",\n                \"snippet\": \"\\\\rightleftarrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTLEFTARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C4\\\" d=\\\"M943 500Q895 471 856 427T801 333H778Q755 333 755 334Q755 336 762 353T791 406T841 472L848 480H459Q70 480 67 482Q55 488 55 500T67 518Q70 520 459 520H848L841 528Q813 559 792 594T763 646T755 666Q755 667 778 667H801Q817 617 856 573T943 500ZM56 167Q102 194 141 238T198 333H221Q244 333 244 332Q221 265 161 198L151 187H539Q928 187 930 186Q944 182 944 167Q944 155 934 149Q930 147 541 147H151L160 137Q185 110 205 77T235 24T244 1Q244 0 221 0H199Q158 106 56 167Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C4\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"upuparrows\",\n                \"source\": \"\\\\upuparrows\",\n                \"snippet\": \"\\\\upuparrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 833.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">UPUPARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21C8\\\" d=\\\"M83 551Q190 590 250 694Q251 689 263 671T307 621T380 567Q409 551 416 551Q422 551 447 563T511 608T577 684L582 694Q642 591 749 551V528Q749 505 748 505Q745 505 724 515T669 546T612 590L602 599V-181Q595 -193 585 -193H582H581Q568 -193 565 -183L563 -179L562 209V598L552 589Q517 556 473 531T414 506H412Q411 506 393 514T361 530T324 553T280 589L270 598V-179Q255 -192 250 -193H247Q237 -193 230 -181V599L220 590Q197 567 164 546T110 515T84 505Q83 505 83 528V551Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21C8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"downdownarrows\",\n                \"source\": \"\\\\downdownarrows\",\n                \"snippet\": \"\\\\downdownarrows\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 833.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOWNDOWNARROWS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21CA\\\" d=\\\"M230 681Q240 694 251 694Q260 693 270 680V-98L280 -89Q297 -73 314 -60T348 -38T374 -24T397 -13T412 -6H414Q428 -6 473 -32T552 -89L562 -98V291L563 680Q570 693 582 693Q593 694 602 681V-99L612 -90Q635 -68 668 -47T723 -15T748 -5Q749 -5 749 -28V-51Q642 -91 582 -194L577 -184Q551 -141 512 -108T447 -63T416 -51T385 -63T321 -108T255 -184L250 -194Q189 -89 83 -51V-28Q83 -5 84 -5Q88 -5 109 -15T164 -46T220 -90L230 -99V681Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21CA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"twoheadleftarrow\",\n                \"source\": \"\\\\twoheadleftarrow\",\n                \"snippet\": \"\\\\twoheadleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TWOHEADLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-219E\\\" d=\\\"M56 250Q103 277 142 322T199 417H221Q244 417 244 416Q244 414 237 397T208 344T158 278L151 270H276L285 277Q322 306 349 345T388 417H434Q434 413 424 392T393 338T349 279L340 270H634Q933 270 937 266L938 265Q944 259 944 250T938 235L937 234Q933 230 634 230H340L349 221Q372 196 393 163T424 108T434 83H388Q377 116 350 155T285 223L276 230H151L158 222Q186 191 207 156T236 104T244 84Q244 83 221 83H199Q181 133 142 178T56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-219E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"twoheadrightarrow\",\n                \"source\": \"\\\\twoheadrightarrow\",\n                \"snippet\": \"\\\\twoheadrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TWOHEADRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21A0\\\" d=\\\"M943 250Q895 221 856 177T801 83H778Q755 83 755 84Q755 86 762 103T791 156T841 222L848 230H723L714 223Q677 194 650 155T611 83H565Q565 87 575 108T606 162T650 221L659 230H365Q66 230 62 234L61 235Q55 241 55 250T61 265L62 266Q66 270 365 270H659L650 279Q627 304 606 337T575 392T565 417H611Q622 384 649 345T714 277L723 270H848L841 278Q813 309 792 344T763 396T755 416Q755 417 778 417H801Q817 367 856 323T943 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21A0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftarrowtail\",\n                \"source\": \"\\\\leftarrowtail\",\n                \"snippet\": \"\\\\leftarrowtail\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1111.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTARROWTAIL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21A2\\\" d=\\\"M56 250Q103 277 142 322T199 417H221Q244 417 244 416Q244 414 237 397T208 344T158 278L151 270H873L882 277Q919 306 946 345T985 417H1031Q1031 413 1021 392T990 338T946 279L937 270V230L946 221Q969 196 990 163T1021 108T1031 83H985Q974 116 947 155T882 223L873 230H151L158 222Q186 191 207 156T236 104T244 84Q244 83 221 83H199Q181 133 142 178T56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21A2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightarrowtail\",\n                \"source\": \"\\\\rightarrowtail\",\n                \"snippet\": \"\\\\rightarrowtail\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1111.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTARROWTAIL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21A3\\\" d=\\\"M1054 250Q1006 221 967 177T912 83H889Q866 83 866 84Q866 86 873 103T902 156T952 222L959 230H237L228 223Q191 194 164 155T125 83H79Q79 87 89 108T120 162T164 221L173 230V270L164 279Q141 304 120 337T89 392T79 417H125Q136 384 163 345T228 277L237 270H959L952 278Q924 309 903 344T874 396T866 416Q866 417 889 417H912Q928 367 967 323T1054 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21A3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"rightsquigarrow\",\n                \"source\": \"\\\\rightsquigarrow\",\n                \"snippet\": \"\\\\rightsquigarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1000.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RIGHTSQUIGARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21DD\\\" d=\\\"M76 230Q68 230 62 237T56 250Q56 257 63 264T91 291Q102 300 108 306L159 351Q168 356 177 351L218 316L303 239L353 195Q376 214 403 239L488 316L529 351Q538 356 546 351Q548 350 594 310L638 270H848L841 278Q813 309 792 344T763 396T755 416Q755 417 778 417H801Q817 367 856 323T943 250Q895 221 856 177T801 83H778Q755 83 755 84Q755 86 762 103T791 156T841 222L848 230H737Q625 230 622 232Q620 233 599 251T558 288L537 306Q537 305 451 228T362 149Q353 146 345 149Q341 150 255 227T169 306Q167 306 129 270Q123 265 115 257T102 245T93 237T84 232T76 230Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21DD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"leftrightsquigarrow\",\n                \"source\": \"\\\\leftrightsquigarrow\",\n                \"snippet\": \"\\\\leftrightsquigarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"3.227ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.19ex; margin-bottom: -0.362ex;\\\" viewBox=\\\"0 -504.3 1389.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LEFTRIGHTSQUIGARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21AD\\\" d=\\\"M57 250Q159 311 200 417H246L242 407Q215 340 159 278L152 270H276L315 310Q354 349 358 351Q366 356 376 351Q378 350 455 273L530 196L606 273Q683 350 686 351Q694 354 703 351Q705 350 782 273L858 196L933 273Q1010 350 1012 351Q1022 356 1030 351Q1034 349 1073 310L1112 270H1236L1229 278Q1173 340 1146 407L1142 417H1188Q1233 306 1331 250Q1231 192 1188 83H1142L1146 93Q1173 160 1229 222L1236 230H1168Q1155 230 1139 230T1119 229Q1112 229 1108 229T1099 231T1092 233T1085 238T1078 245T1068 256T1056 269L1021 304L984 267Q948 230 910 191T867 149Q857 144 848 150Q844 151 770 227T694 304T618 228T540 150Q531 144 521 149Q517 152 479 191T404 267L367 304L332 269Q328 264 320 256T310 246T303 239T296 234T289 231T280 229T269 229Q265 229 249 229T220 230H152L159 222Q215 160 242 93L246 83H223L200 84L195 96Q152 190 57 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21AD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curvearrowleft\",\n                \"source\": \"\\\\curvearrowleft\",\n                \"snippet\": \"\\\\curvearrowleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1000.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURVEARROWLEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21B6\\\" d=\\\"M361 210Q373 210 373 182V177Q373 155 370 151T348 139Q303 118 267 84T216 28T201 1Q197 -1 196 -1Q189 -1 184 8Q166 39 143 64T99 104T61 129T32 144T19 150Q17 152 17 179Q17 203 21 208Q28 210 39 206Q106 178 157 135L175 119V126Q179 130 179 155Q182 173 193 201Q228 305 312 374T510 459Q532 461 551 461H567Q678 461 784 386Q835 344 861 301Q902 245 926 173T950 32Q950 15 944 8Q930 -6 917 8Q910 12 910 43Q901 208 801 314T561 421Q453 421 359 359Q300 319 263 258T217 126L216 125Q216 124 216 123T217 122Q219 122 229 131T260 156T301 181Q314 189 336 199T361 210Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21B6\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"curvearrowright\",\n                \"source\": \"\\\\curvearrowright\",\n                \"snippet\": \"\\\\curvearrowright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1000.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CURVEARROWRIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21B7\\\" d=\\\"M972 209Q980 209 981 204T982 179Q982 155 979 151T957 139Q915 121 878 86T815 8Q808 -1 803 -1Q801 -1 797 1Q797 6 783 28T732 84T650 139L628 150Q626 152 626 177Q626 201 630 206Q636 210 637 210Q650 210 697 181Q727 166 764 137L784 119L782 132Q767 239 689 318T499 417Q474 421 442 421Q343 421 261 369T130 219Q86 121 86 28Q86 15 79 8Q73 1 66 1T53 8Q46 15 46 30Q46 102 77 192T186 361Q274 443 386 459Q396 460 426 460Q515 460 588 431T703 361T773 271T812 187T822 132Q822 123 825 123Q936 209 972 209Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21B7\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circlearrowleft\",\n                \"source\": \"\\\\circlearrowleft\",\n                \"snippet\": \"\\\\circlearrowleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLEARROWLEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21BA\\\" d=\\\"M369 543T369 563T397 583Q408 583 440 579L454 577L464 581Q492 592 516 609T552 638T565 650Q604 638 607 637Q606 636 598 628T585 614T570 601T548 584T523 568L510 560L516 558Q522 555 527 553T541 546T559 536T580 523T603 506T626 485Q722 384 722 250Q722 106 622 12T387 -83Q253 -83 155 12T56 250Q56 357 110 433T235 545Q244 550 252 550Q270 550 270 531Q270 522 261 515T238 501T202 477T159 433Q95 352 95 250Q95 131 178 45T388 -42Q511 -42 596 43T682 250Q682 340 636 408T522 511Q495 526 488 526Q488 525 488 525T487 522T485 515L490 506Q505 481 516 451T531 404T535 384L532 385Q529 386 524 387T513 390L491 397L488 408Q472 483 413 542L399 543Q369 543 369 563Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21BA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circlearrowright\",\n                \"source\": \"\\\\circlearrowright\",\n                \"snippet\": \"\\\\circlearrowright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 778.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLEARROWRIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21BB\\\" d=\\\"M170 637L213 650Q270 597 313 581L323 577L337 579Q369 583 380 583Q408 583 408 563T380 543H378L364 542Q305 483 289 408L286 397L264 390Q259 389 254 388T245 385L242 384Q242 387 246 403T261 450T287 506L292 515Q291 519 291 521T290 524T289 526Q284 526 265 517T216 486T160 434T114 354T95 249Q95 132 178 45T388 -42Q513 -42 597 44T682 250Q682 337 638 404T532 506Q529 508 525 510T519 514T515 516T511 519T509 522T508 526T507 531Q507 550 525 550Q533 550 542 545Q569 532 596 511T653 454T702 366T721 250Q721 151 672 74T547 -43T388 -83Q254 -83 155 12T56 250Q56 385 151 485Q164 498 179 509T205 528T228 542T247 551T260 558L267 560L254 568Q215 590 170 637Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21BB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"looparrowleft\",\n                \"source\": \"\\\\looparrowleft\",\n                \"snippet\": \"\\\\looparrowleft\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 1000.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOOPARROWLEFT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21AB\\\" d=\\\"M56 250Q103 277 142 322T199 417H221Q244 417 244 416Q244 414 237 397T208 344T158 278L151 270H622V305Q622 356 624 388T635 460T661 521T709 559T785 575Q813 575 833 573T880 561T923 534T952 483T964 405Q964 374 959 350T942 307T918 276T884 255T847 242T804 235T760 231T713 230H662V-27Q654 -41 644 -41H642H640Q628 -41 622 -27V230H151L158 222Q186 191 207 156T236 104T244 84Q244 83 221 83H199Q181 133 142 178T56 250ZM924 403Q924 474 894 505T794 536Q758 536 734 526T696 500T675 453T665 395T662 319V270H699Q826 270 875 295T924 403Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21AB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"looparrowright\",\n                \"source\": \"\\\\looparrowright\",\n                \"snippet\": \"\\\\looparrowright\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 1000.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOOPARROWRIGHT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21AC\\\" d=\\\"M35 405Q35 454 48 489T86 542T137 567T195 575Q229 575 251 571T301 554T345 510T370 429Q377 384 377 305V270H848L841 278Q813 309 792 344T763 396T755 416Q755 417 778 417H801Q817 367 856 323T943 250Q896 221 857 177T801 83H778Q755 83 755 84Q755 86 762 103T791 156T841 222L848 230H377V-27Q369 -41 359 -41H357Q342 -41 337 -25V230H286Q247 231 225 232T169 238T115 255T75 284T45 333T35 405ZM75 406Q75 322 123 296T300 270H337V319Q335 432 317 477T240 534Q232 535 197 535Q140 535 108 507T75 406Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21AC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Lsh\",\n                \"source\": \"\\\\Lsh\",\n                \"snippet\": \"\\\\Lsh\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 500.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LSH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21B0\\\" d=\\\"M56 555Q74 567 79 570T107 592T141 625T170 667T198 722H221Q244 722 244 721Q244 718 236 699T207 647T161 587L151 576L291 575H292H293H294H296H297H298H299H300H301H302H304H305H306H307H308H309H310H311H312H314H315H316H317H318H319H320H321H322H323H324H325H327H328H329H330H331H332H333H334H335H336H337H338H339H340H341H342H343H345Q435 574 438 570L439 569L440 568Q444 564 444 287Q444 15 442 12Q436 0 424 0T406 12Q404 15 404 275V535H151L162 523Q187 495 207 462T236 410T244 389H198L193 402Q171 457 131 497T56 555Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21B0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Rsh\",\n                \"source\": \"\\\\Rsh\",\n                \"snippet\": \"\\\\Rsh\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 500.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RSH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21B1\\\" d=\\\"M301 722Q339 618 443 555L437 551Q431 547 422 541T401 526T377 504T352 477T327 443T306 402L301 389H255Q255 392 263 410T291 461T337 523L348 535H95V275Q95 15 93 12Q87 0 75 0T57 12Q55 15 55 287Q55 564 59 568L60 569Q64 573 76 573T208 575L348 576L338 587Q314 613 294 646T264 698T255 721Q255 722 278 722H301Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21B1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Lleftarrow\",\n                \"source\": \"\\\\Lleftarrow\",\n                \"snippet\": \"\\\\Lleftarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LLEFTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21DA\\\" d=\\\"M944 54Q942 44 929 36H372Q372 34 377 26T395 -4T422 -58Q442 -109 442 -110T408 -111H374L370 -100Q282 124 87 243L76 250L87 257Q284 377 370 600L374 611H408Q442 611 442 610Q423 550 381 480Q380 478 379 475T376 471T374 468T372 465V464H929Q942 456 944 446Q944 442 943 439T941 434T938 430T935 428T931 426T928 424H344L336 414Q277 336 200 277L191 270H560Q929 270 933 268Q944 262 944 250Q944 237 933 232Q929 230 560 230H191L200 223Q279 162 336 86L344 76H928Q929 76 931 75T934 73T938 70T941 66T943 61T944 54Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21DA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Rrightarrow\",\n                \"source\": \"\\\\Rrightarrow\",\n                \"snippet\": \"\\\\Rrightarrow\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -719.6 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RRIGHTARROW.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-21DB\\\" d=\\\"M56 250Q56 260 68 270H808L799 277Q720 338 663 414L655 424H363Q71 424 68 426Q55 432 55 444T68 462Q71 464 349 464H627Q627 466 622 474T604 504T577 558Q557 609 557 610T591 611H626L629 600Q717 376 912 257L923 250L912 243Q715 123 629 -100L626 -111H591Q557 -111 557 -110Q576 -50 618 20Q619 22 620 25T623 29T625 32T626 35L627 36H349Q71 36 68 38Q55 44 55 56T68 74Q71 76 363 76H655L663 86Q722 164 799 223L808 230H438L68 231Q56 236 56 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-21DB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"multimap\",\n                \"source\": \"\\\\multimap\",\n                \"snippet\": \"\\\\multimap\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.582ex\\\" height=\\\"1.343ex\\\" style=\\\"vertical-align: 0.211ex; margin-bottom: -0.383ex;\\\" viewBox=\\\"0 -504.3 1111.5 578.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MULTIMAP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-22B8\\\" d=\\\"M1055 250Q1055 190 1012 141T896 92Q858 92 828 106T781 140T755 180T741 214L738 228V230H405Q71 230 68 232Q55 238 55 250T68 268Q71 270 405 270H738V272L740 280Q742 287 745 297T754 321T771 348T796 374T832 396T881 408H891Q969 408 1012 360T1055 250ZM896 132Q948 132 981 166T1014 250Q1014 301 985 330T920 367Q914 368 891 368Q853 368 816 338T778 250Q778 198 812 165T896 132Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-22B8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Accents\": [\n            {\n                \"name\": \"hat accent\",\n                \"keywords\": \"math fourier transform completion of metric space normalised normalized vector statistics estimator\",\n                \"source\": \"\\\\hat{a}\",\n                \"snippet\": \"\\\\hat{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 529.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HAT ACCENT. Keywords: math fourier transform completion of metric space normalised normalized vector statistics estimator</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-5E\\\" d=\\\"M112 560L249 694L257 686Q387 562 387 560L361 531Q359 532 303 581L250 627L195 580Q182 569 169 557T148 538L140 532Q138 530 125 546L112 560Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-5E\\\" x=\\\"14\\\" y=\\\"19\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"dot accent\",\n                \"keywords\": \"math time derivative topology punctured neighbourhood of point\",\n                \"source\": \"\\\\dot{a}\",\n                \"snippet\": \"\\\\dot{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 529.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DOT ACCENT. Keywords: math time derivative topology punctured neighbourhood of point</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2D9\\\" d=\\\"M190 609Q190 637 208 653T252 669Q275 667 292 652T309 609Q309 579 292 564T250 549Q225 549 208 564T190 609Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2D9\\\" x=\\\"14\\\" y=\\\"1\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"check accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\check{a}\",\n                \"snippet\": \"\\\\check{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 529.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CHECK ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2C7\\\" d=\\\"M114 611L127 630L136 644Q138 644 193 612Q248 581 250 581L306 612Q361 644 363 644L385 611L318 562L249 513L114 611Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2C7\\\" x=\\\"14\\\" y=\\\"37\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ddot accent\",\n                \"keywords\": \"math time derivative\",\n                \"source\": \"\\\\ddot{a}\",\n                \"snippet\": \"\\\\ddot{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 529.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DDOT ACCENT. Keywords: math time derivative</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-A8\\\" d=\\\"M95 612Q95 633 112 651T153 669T193 652T210 612Q210 588 194 571T152 554L127 560Q95 577 95 612ZM289 611Q289 634 304 649T335 668Q336 668 340 668T346 669Q369 669 386 652T404 612T387 572T346 554Q323 554 306 570T289 611Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-A8\\\" x=\\\"14\\\" y=\\\"-4\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"tilde accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\tilde{a}\",\n                \"snippet\": \"\\\\tilde{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 529.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TILDE ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-7E\\\" d=\\\"M179 251Q164 251 151 245T131 234T111 215L97 227L83 238Q83 239 95 253T121 283T142 304Q165 318 187 318T253 300T320 282Q335 282 348 288T368 299T388 318L402 306L416 295Q375 236 344 222Q330 215 313 215Q292 215 248 233T179 251Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-7E\\\" x=\\\"14\\\" y=\\\"335\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"breve accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\breve{a}\",\n                \"snippet\": \"\\\\breve{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 529.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BREVE ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2D8\\\" d=\\\"M250 515Q179 515 138 565T92 683V694H129V689Q129 688 129 683T130 675Q137 631 169 599T248 567Q304 567 337 608T370 689V694H407V683Q403 617 361 566T250 515Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-2D8\\\" x=\\\"14\\\" y=\\\"35\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"acute accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\acute{a}\",\n                \"snippet\": \"\\\\acute{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 529.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ACUTE ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E2-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E2-MJMAIN-B4\\\" d=\\\"M349 699Q367 699 380 686T393 656Q393 651 392 647T387 637T380 627T367 616T351 602T330 585T303 563L232 505L217 519Q203 533 204 533Q204 534 229 567T282 636T313 678L316 681Q318 684 321 686T328 692T337 697T349 699Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E2-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E2-MJMAIN-B4\\\" x=\\\"14\\\" y=\\\"45\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bar accent\",\n                \"keywords\": \"math complex conjugate statistics average logic negation\",\n                \"source\": \"\\\\bar{a}\",\n                \"snippet\": \"\\\\bar{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 529.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BAR ACCENT. Keywords: math complex conjugate statistics average logic negation</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-AF\\\" d=\\\"M69 544V590H430V544H69Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-AF\\\" x=\\\"14\\\" y=\\\"6\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"grave accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\grave{a}\",\n                \"snippet\": \"\\\\grave{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 529.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GRAVE ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-60\\\" d=\\\"M106 655Q106 671 119 685T150 699Q166 699 177 688Q190 671 222 629T275 561T295 533T282 519L267 505L196 563Q119 626 113 634Q106 643 106 655Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-60\\\" x=\\\"14\\\" y=\\\"45\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vector accent\",\n                \"keywords\": \"math\",\n                \"source\": \"\\\\vec{a}\",\n                \"snippet\": \"\\\\vec{${1:${TM_SELECTED_TEXT}}}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.23ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 529.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VECTOR ACCENT. Keywords: math</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMATHI-61\\\" d=\\\"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-20D7\\\" d=\\\"M-123 694Q-123 702 -118 708T-103 714Q-93 714 -88 706T-80 687T-67 660T-40 633Q-29 626 -29 615Q-29 606 -36 600T-53 590T-83 571T-121 531Q-135 516 -143 516T-157 522T-163 536T-152 559T-129 584T-116 595H-287L-458 596Q-459 597 -461 599T-466 602T-469 607T-471 615Q-471 622 -458 635H-99Q-123 673 -123 694Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMATHI-61\\\" x=\\\"0\\\" y=\\\"0\\\"></use><use href=\\\"#E1-MJMAIN-20D7\\\" x=\\\"499\\\" y=\\\"34\\\"></use></g></svg>\"\n            }\n        ],\n        \"Miscellaneous\": [\n            {\n                \"name\": \"infty\",\n                \"source\": \"\\\\infty\",\n                \"snippet\": \"\\\\infty\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 1000.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">INFTY.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221E\\\" d=\\\"M55 217Q55 305 111 373T254 442Q342 442 419 381Q457 350 493 303L507 284L514 294Q618 442 747 442Q833 442 888 374T944 214Q944 128 889 59T743 -11Q657 -11 580 50Q542 81 506 128L492 147L485 137Q381 -11 252 -11Q166 -11 111 57T55 217ZM907 217Q907 285 869 341T761 397Q740 397 720 392T682 378T648 359T619 335T594 310T574 285T559 263T548 246L543 238L574 198Q605 158 622 138T664 94T714 61T765 51Q827 51 867 100T907 217ZM92 214Q92 145 131 89T239 33Q357 33 456 193L425 233Q364 312 334 337Q285 380 233 380Q171 380 132 331T92 214Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-221E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"nabla\",\n                \"keywords\": \"gradient divergence curl\",\n                \"source\": \"\\\\nabla\",\n                \"snippet\": \"\\\\nabla\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 833.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NABLA. Keywords: gradient divergence curl</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2207\\\" d=\\\"M46 676Q46 679 51 683H781Q786 679 786 676Q786 674 617 326T444 -26Q439 -33 416 -33T388 -26Q385 -22 216 326T46 676ZM697 596Q697 597 445 597T193 596Q195 591 319 336T445 80L697 596Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2207\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"partial\",\n                \"keywords\": \"derivative topology boundry of set\",\n                \"source\": \"\\\\partial\",\n                \"snippet\": \"\\\\partial\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.318ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 567.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PARTIAL. Keywords: derivative topology boundry of set</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2202\\\" d=\\\"M202 508Q179 508 169 520T158 547Q158 557 164 577T185 624T230 675T301 710L333 715H345Q378 715 384 714Q447 703 489 661T549 568T566 457Q566 362 519 240T402 53Q321 -22 223 -22Q123 -22 73 56Q42 102 42 148V159Q42 276 129 370T322 465Q383 465 414 434T455 367L458 378Q478 461 478 515Q478 603 437 639T344 676Q266 676 223 612Q264 606 264 572Q264 547 246 528T202 508ZM430 306Q430 372 401 400T333 428Q270 428 222 382Q197 354 183 323T150 221Q132 149 132 116Q132 21 232 21Q244 21 250 22Q327 35 374 112Q389 137 409 196T430 306Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2202\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"eth\",\n                \"source\": \"\\\\eth\",\n                \"snippet\": \"\\\\eth\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 556.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ETH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-F0\\\" d=\\\"M75 566V604Q75 624 79 629T102 635Q124 635 127 629T131 588L133 550L191 588L249 628L231 635Q176 654 124 657Q116 657 106 658L95 659Q94 661 94 687T95 715Q99 717 113 717Q195 717 282 679L309 668L331 681Q351 697 391 721Q428 748 435 748Q437 749 446 749Q470 749 473 746Q478 744 478 681V621Q466 615 456 615Q435 615 424 624L422 661V699L382 675L344 648Q353 639 366 630Q480 538 504 413Q509 393 509 333V313Q509 284 507 257T495 184T466 102T413 33T329 -16Q311 -21 275 -21Q226 -21 195 -10Q150 7 110 50T53 141Q42 179 42 227Q42 332 101 403T245 474Q282 474 314 461T359 436T380 415Q386 405 389 408Q389 426 378 475Q368 505 355 529T329 567T306 590T288 603L282 606L120 501Q116 500 102 500Q84 500 75 506V566ZM388 225Q388 376 309 410Q299 416 273 419Q216 419 191 390Q174 371 168 342T162 218Q162 112 184 79Q212 39 273 39Q312 39 342 62T380 121Q388 159 388 225Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-F0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"clubsuit\",\n                \"source\": \"\\\\clubsuit\",\n                \"snippet\": \"\\\\clubsuit\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -863.1 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CLUBSUIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2663\\\" d=\\\"M213 532Q213 615 265 670T389 726Q461 726 513 671T565 532Q565 511 562 492T553 458T541 432T526 409T512 393T498 379L490 371L511 326Q512 326 516 330T528 341T546 353T572 363T606 368Q664 368 707 315T750 174Q750 87 699 33T579 -22Q567 -22 553 -20T517 -10T479 16T459 63V70H409V62Q409 22 416 -17T430 -82T437 -112Q437 -131 407 -131Q403 -131 397 -131T389 -130T382 -130T372 -131Q341 -131 341 -111Q341 -107 348 -82T362 -18T369 62V70H319V63Q315 25 281 2T197 -22Q132 -22 80 32T28 174Q28 255 69 311T175 368Q192 368 207 364T232 353T250 341T262 331T267 326L288 371L280 378Q272 385 267 391T253 407T238 430T226 457T217 492T213 532Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2663\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"diamondsuit\",\n                \"source\": \"\\\\diamondsuit\",\n                \"snippet\": \"\\\\diamondsuit\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -863.1 778.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIAMONDSUIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2662\\\" d=\\\"M370 714Q370 717 375 722T388 727Q398 727 403 721T417 697Q420 692 421 689Q536 465 709 304Q723 291 723 282T709 260Q529 93 406 -153Q402 -162 390 -162H389Q379 -162 376 -158T357 -125Q247 89 89 241L64 265Q55 272 55 282Q55 287 57 290T64 300T77 312T98 331T127 361Q197 435 258 523T344 663L370 714ZM655 299Q568 384 508 470T389 662L376 638Q362 613 341 577T289 497T215 399T123 299L105 282L123 265Q210 180 270 94T389 -98L402 -74Q416 -49 437 -13T489 67T563 165T655 265L673 282L655 299Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2662\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"heartsuit\",\n                \"source\": \"\\\\heartsuit\",\n                \"snippet\": \"\\\\heartsuit\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HEARTSUIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2661\\\" d=\\\"M55 490Q55 557 71 604T114 674T167 706T222 716Q279 716 322 684T389 605Q391 610 395 617T414 643T447 677T494 704T555 716Q642 716 682 652T723 490Q723 455 718 426T684 342T602 227Q573 196 537 161T485 110T449 63T412 -8Q408 -22 404 -27T389 -33Q382 -33 379 -31T372 -23T366 -8T355 18T335 54Q319 81 298 104T239 163T176 227Q102 310 79 371T55 490ZM198 674Q143 664 119 613T95 491Q95 415 137 346Q174 282 265 194T384 48L389 39Q391 42 397 54T406 71T415 86T427 104T442 122T464 146T491 172Q571 249 613 303Q683 396 683 487Q683 581 649 631Q613 676 556 676Q495 676 457 634T410 538Q407 514 390 514Q386 514 380 517Q372 520 369 536T355 581T319 635Q277 675 223 675H217H208L204 674Q200 674 198 674Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2661\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"spadesuit\",\n                \"source\": \"\\\\spadesuit\",\n                \"snippet\": \"\\\\spadesuit\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -863.1 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SPADESUIT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2660\\\" d=\\\"M181 -21Q134 -21 96 27T55 193Q55 224 58 247T82 317T143 410Q172 443 234 498Q282 543 314 598T360 687T380 725Q386 727 389 727Q395 727 398 725T406 716T413 702T423 677T439 641Q481 556 544 498Q633 420 678 353T723 204Q723 142 711 94T669 12T590 -21Q520 -21 490 8T459 66V70H409V62Q409 22 416 -17T430 -82T437 -112Q437 -131 407 -131Q403 -131 397 -131T389 -130T382 -130T372 -131Q341 -131 341 -111Q341 -107 348 -82T362 -18T369 62V70H319V66Q319 57 314 44T297 16T257 -10T191 -21H181Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2660\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"cdots\",\n                \"source\": \"\\\\cdots\",\n                \"snippet\": \"\\\\cdots\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.723ex\\\" height=\\\"1.176ex\\\" style=\\\"vertical-align: 0.439ex; margin-bottom: -0.61ex;\\\" viewBox=\\\"0 -432.6 1172.5 506.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CDOTS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22EF\\\" d=\\\"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22EF\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vdots\",\n                \"source\": \"\\\\vdots\",\n                \"snippet\": \"\\\\vdots\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"3.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -1437.2 278.5 1582.7\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VDOTS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22EE\\\" d=\\\"M78 30Q78 54 95 72T138 90Q162 90 180 74T199 31Q199 6 182 -12T139 -30T96 -13T78 30ZM78 440Q78 464 95 482T138 500Q162 500 180 484T199 441Q199 416 182 398T139 380T96 397T78 440ZM78 840Q78 864 95 882T138 900Q162 900 180 884T199 841Q199 816 182 798T139 780T96 797T78 840Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22EE\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ldots\",\n                \"source\": \"\\\\ldots\",\n                \"snippet\": \"\\\\ldots\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.723ex\\\" height=\\\"0.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -217.3 1172.5 362.8\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LDOTS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2026\\\" d=\\\"M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60ZM525 60Q525 84 542 102T585 120Q609 120 627 104T646 61Q646 36 629 18T586 0T543 17T525 60ZM972 60Q972 84 989 102T1032 120Q1056 120 1074 104T1093 61Q1093 36 1076 18T1033 0T990 17T972 60Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2026\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ddots\",\n                \"source\": \"\\\\ddots\",\n                \"snippet\": \"\\\\ddots\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.979ex\\\" height=\\\"4.009ex\\\" style=\\\"vertical-align: 0.23ex; margin-bottom: -0.401ex;\\\" viewBox=\\\"0 -1652.5 1282.5 1726.2\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DDOTS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-22F1\\\" d=\\\"M133 760Q133 784 150 802T193 820Q217 820 235 804T254 761Q254 736 237 718T194 700T151 717T133 760ZM580 460Q580 484 597 502T640 520Q664 520 682 504T701 461Q701 436 684 418T641 400T598 417T580 460ZM1027 160Q1027 184 1044 202T1087 220Q1111 220 1129 204T1148 161Q1148 136 1131 118T1088 100T1045 117T1027 160Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-22F1\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Im\",\n                \"keywords\": \"imaginary part complex number\",\n                \"source\": \"\\\\Im\",\n                \"snippet\": \"\\\\Im\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.288ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 554.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IM. Keywords: imaginary part complex number</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-49\\\" d=\\\"M190 601Q161 601 137 587T97 553T71 512T55 477T48 463Q44 465 39 468L30 473L35 488Q73 594 106 636T199 685Q200 686 211 686Q250 686 326 652T417 617Q435 617 455 626T497 652T522 670Q532 660 532 654Q469 591 390 550L378 543L343 556Q223 601 190 601ZM378 208Q378 249 369 318T360 424Q360 430 360 439T361 451L362 462Q416 526 482 571L495 580L503 577L511 575L499 562Q442 502 442 465Q442 436 452 368T462 246Q462 169 442 128T385 56Q292 -26 195 -26Q150 -26 104 14L96 21L43 -16Q43 -15 43 -14T41 -10T38 0L48 13Q76 50 123 97L150 125Q154 131 159 131Q166 131 171 116T182 81T193 53Q199 43 216 33T261 22Q307 22 344 68Q378 113 378 208Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Re\",\n                \"keywords\": \"real part complex number\",\n                \"source\": \"\\\\Re\",\n                \"snippet\": \"\\\\Re\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.924ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 828.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">RE. Keywords: real part complex number</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-52\\\" d=\\\"M27 496Q31 569 102 627T234 685Q236 685 241 685T251 686Q287 686 318 672T367 638T399 598T418 564L423 550Q424 554 434 567T463 601T505 639T561 671T626 685Q672 685 688 659T710 572Q713 533 721 523T766 513Q781 513 787 514T794 516Q796 512 798 509T801 504T802 501T787 493Q702 461 624 401L607 389Q655 383 688 358L697 352V342Q699 330 699 297Q704 209 710 173T734 103Q751 69 765 69Q769 69 806 83L824 90V74Q823 73 759 24T693 -26Q692 -26 660 32L628 90L629 111Q631 159 631 177Q631 278 614 300Q584 340 523 340Q500 340 467 333T431 325Q429 325 429 322Q428 321 426 308T420 275T410 230T392 178T366 125L358 112L342 99Q306 70 269 38T213 -10T193 -26Q192 -26 163 0T116 26Q82 26 50 -8L42 -16L35 -8L27 0L35 10Q43 21 58 38T104 80T158 106Q179 106 218 65L235 48Q238 48 255 60T295 99T329 158Q352 231 352 359Q352 555 242 614Q210 628 187 628Q140 628 116 600T91 548Q91 522 138 464T185 382V376Q185 345 158 313T103 263L76 246Q74 244 64 253L54 260L65 267Q91 285 100 302Q111 318 111 337Q111 355 69 410T27 496ZM562 628Q504 628 443 507L435 491L436 479Q437 471 437 446Q437 396 432 351L529 389L602 426Q673 462 673 463H672Q644 470 637 483T622 553Q608 628 562 628Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"forall\",\n                \"keywords\": \"quantifier universal logic\",\n                \"source\": \"\\\\forall\",\n                \"snippet\": \"\\\\forall\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 556.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FORALL. Keywords: quantifier universal logic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2200\\\" d=\\\"M0 673Q0 684 7 689T20 694Q32 694 38 680T82 567L126 451H430L473 566Q483 593 494 622T512 668T519 685Q524 694 538 694Q556 692 556 674Q556 670 426 329T293 -15Q288 -22 278 -22T263 -15Q260 -11 131 328T0 673ZM414 410Q414 411 278 411T142 410L278 55L414 410Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2200\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"exists\",\n                \"keywords\": \"quantifier existential logic\",\n                \"source\": \"\\\\exists\",\n                \"snippet\": \"\\\\exists\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 556.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EXISTS. Keywords: quantifier existential logic</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2203\\\" d=\\\"M56 661T56 674T70 694H487Q497 686 500 679V15Q497 10 487 1L279 0H70Q56 7 56 20T70 40H460V327H84Q70 334 70 347T84 367H460V654H70Q56 661 56 674Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2203\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"no element exists\",\n                \"keywords\": \"quantifier existential logic not\",\n                \"source\": \"\\\\nexists\",\n                \"snippet\": \"\\\\nexists\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.484ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex; margin-left: -0.19ex;\\\" viewBox=\\\"-82 -791.3 639 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NO ELEMENT EXISTS. Keywords: quantifier existential logic not</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2203\\\" d=\\\"M56 661T56 674T70 694H487Q497 686 500 679V15Q497 10 487 1L279 0H70Q56 7 56 20T70 40H460V327H84Q70 334 70 347T84 367H460V654H70Q56 661 56 674Z\\\"></path><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-338\\\" d=\\\"M-612 -215T-619 -215T-631 -212T-637 -204T-639 -197Q-639 -190 -634 -183Q-621 -157 -400 274T-176 707Q-173 716 -160 716Q-153 716 -148 712T-142 703T-140 696Q-140 691 -372 241T-608 -212Q-612 -215 -619 -215Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2203\\\"></use><use href=\\\"#E1-MJMAIN-338\\\" x=\\\"556\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"empty set\",\n                \"source\": \"\\\\emptyset\",\n                \"snippet\": \"\\\\emptyset\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -863.1 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">EMPTY SET.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2205\\\" d=\\\"M331 696Q335 708 339 722T345 744T350 759T357 769T367 772Q374 772 381 767T388 754Q388 746 377 712L366 673L378 661Q460 575 460 344Q460 281 456 234T432 126T373 27Q319 -22 250 -22Q214 -22 180 -7Q168 -3 168 -4L159 -33Q148 -71 142 -75Q138 -78 132 -78Q124 -78 118 -72T111 -60Q111 -52 122 -18L133 21L125 29Q39 111 39 344Q39 596 137 675Q187 716 251 716Q265 716 278 714T296 710T315 703T331 696ZM276 676Q264 679 246 679Q196 679 159 631Q134 597 128 536T121 356Q121 234 127 174T151 80L234 366Q253 430 275 506T308 618L318 654Q318 656 294 669L276 676ZM181 42Q207 16 250 16Q291 16 324 47Q354 78 366 136T378 356Q378 470 372 528T349 616L348 613Q348 611 264 326L181 42Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2205\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"varnothing\",\n                \"keywords\": \"empty set\",\n                \"source\": \"\\\\varnothing\",\n                \"snippet\": \"\\\\varnothing\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 778.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARNOTHING. Keywords: empty set</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2205\\\" d=\\\"M624 470Q624 468 639 446T668 382T683 291Q683 181 612 99T437 -1Q425 -2 387 -2T337 -1Q245 18 193 70L179 81L131 39Q96 8 89 3T75 -3Q55 -3 55 17Q55 24 61 30T111 73Q154 113 151 113Q151 114 140 130T115 177T95 241Q94 253 94 291T95 341Q112 431 173 495Q265 587 385 587Q410 587 437 581Q522 571 582 513L595 501L642 541Q689 586 695 586Q696 586 697 586T699 587Q706 587 713 583T720 568Q720 560 711 551T664 510Q651 499 642 490T628 475T624 470ZM564 477Q517 522 448 539Q428 546 375 546Q290 546 229 492T144 370Q133 332 133 279Q136 228 151 195Q157 179 168 160T184 141Q186 141 375 307T564 477ZM642 290Q642 318 637 343T625 386T611 416T598 436T593 444Q590 444 402 277T213 108Q213 104 231 89T293 55T392 37Q495 37 568 111T642 290Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2205\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"imath\",\n                \"source\": \"\\\\imath\",\n                \"snippet\": \"\\\\imath\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.793ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -576.1 341.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">IMATH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINI-131\\\" d=\\\"M75 287Q75 292 82 313T103 362T142 413T196 441H214Q248 441 270 419T293 357Q292 338 289 330T245 208Q193 72 193 46Q193 26 209 26Q228 26 247 43Q273 71 292 136Q295 148 297 150T311 153H317Q327 153 330 153T337 150T340 143Q340 133 330 105T292 41T228 -8Q220 -10 204 -10Q160 -10 141 15T122 71Q122 98 171 227T221 384Q221 396 218 400T203 405Q175 403 156 374T128 312T116 279Q115 278 97 278H81Q75 284 75 287Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINI-131\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"jmath\",\n                \"source\": \"\\\\jmath\",\n                \"snippet\": \"\\\\jmath\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.845ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.671ex; margin-left: -0.073ex;\\\" viewBox=\\\"-31.5 -576.1 364 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">JMATH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINI-237\\\" d=\\\"M75 284T75 287T81 305T101 343T133 389T180 426T240 442Q273 440 300 420T327 350V332L278 134Q267 92 253 37T233 -45T225 -73Q208 -123 162 -163T54 -204Q8 -204 -15 -181Q-32 -164 -32 -140Q-32 -112 -14 -96T27 -79Q48 -79 57 -91T67 -114Q67 -146 39 -166L44 -167H59H60Q112 -167 145 -74Q148 -65 198 134T251 347Q252 353 252 370Q252 382 251 388T245 399T230 405Q204 405 175 378Q157 360 145 337T126 298T117 280T98 278H81Q75 284 75 287Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINI-237\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"ell\",\n                \"source\": \"\\\\ell\",\n                \"snippet\": \"\\\\ell\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.97ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 417.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ELL.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2113\\\" d=\\\"M345 104T349 104T361 95T369 80T352 59Q268 -20 206 -20Q170 -20 146 3T113 53T99 104L94 129Q94 130 79 116T48 86T28 70Q22 70 15 79T7 94Q7 98 12 103T58 147L91 179V185Q91 186 91 191T92 200Q92 282 128 400T223 612T336 705Q397 705 397 636V627Q397 453 194 233Q185 223 180 218T174 211T171 208T165 201L163 186Q159 142 159 123Q159 17 208 17Q228 17 253 30T293 56T335 94Q345 104 349 104ZM360 634Q360 655 354 661T336 668Q328 668 322 666T302 645T272 592Q252 547 229 467T192 330L179 273Q179 272 186 280T204 300T221 322Q327 453 355 590Q360 612 360 634Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2113\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"sharp\",\n                \"keywords\": \"music\",\n                \"source\": \"\\\\sharp\",\n                \"snippet\": \"\\\\sharp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SHARP. Keywords: music</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-266F\\\" d=\\\"M101 -223Q94 -223 93 -217T91 -188V-151Q91 -88 90 -88Q87 -88 80 -92T68 -96Q62 -96 56 -90L55 -50V-22Q55 -8 58 -4T78 5L91 10V177Q91 343 90 343Q87 343 80 339T68 335Q62 335 56 341L55 381V409Q55 423 58 427T78 436L91 441V543V616Q91 643 93 648T106 656Q119 662 126 659Q130 657 130 645T131 554V456L257 503V607L258 710L260 712Q261 715 272 719T286 723Q293 723 295 715T297 671V617Q297 519 298 519Q301 519 307 522T319 526Q327 526 333 521V437L330 435Q328 432 312 427L297 421V254Q297 88 298 88Q301 88 307 91T319 95Q327 95 333 90V6L330 4Q328 1 312 -4L297 -10V-78V-122Q297 -145 295 -149T282 -156Q274 -160 268 -160Q257 -160 257 -130V-89V-25L131 -72V-210Q123 -215 116 -218T104 -222L101 -223ZM257 72V406L131 359V25L257 72Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-266F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"flat\",\n                \"keywords\": \"music\",\n                \"source\": \"\\\\flat\",\n                \"snippet\": \"\\\\flat\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 389.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FLAT. Keywords: music</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-266D\\\" d=\\\"M200 467Q254 467 293 428T332 321Q332 147 104 -11L88 -22H75Q62 -22 56 -16L55 362V647Q55 743 60 748Q63 750 76 750H83Q87 750 95 744V434L104 440Q144 467 200 467ZM237 322Q237 360 225 388T183 417Q158 417 134 407T101 378Q96 370 96 349T95 197V34Q152 91 194 167T237 322Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-266D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"natural\",\n                \"keywords\": \"music\",\n                \"source\": \"\\\\natural\",\n                \"snippet\": \"\\\\natural\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -863.1 389.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">NATURAL. Keywords: music</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-266E\\\" d=\\\"M65 721Q78 734 94 734Q100 734 104 727V444L116 449Q129 454 157 465T208 486Q313 527 314 527Q318 527 324 521V-210Q306 -223 294 -223Q289 -223 284 -216V-13L270 -18Q257 -24 231 -34T180 -54Q77 -96 74 -96T65 -90V721ZM104 13Q282 84 283 85Q284 85 284 252Q284 418 283 418L230 396L140 360L104 346V13Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-266E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"bigstar\",\n                \"source\": \"\\\\bigstar\",\n                \"snippet\": \"\\\\bigstar\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.194ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 944.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BIGSTAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2605\\\" d=\\\"M367 395Q374 416 398 492T442 627T463 688Q463 692 467 692Q471 694 472 694Q478 694 484 680T523 562Q553 469 576 400L577 395H731H819Q872 395 883 394T895 384Q895 380 891 376T832 333Q794 305 767 285Q643 195 643 194L690 47Q737 -96 737 -103Q737 -111 727 -111Q721 -111 594 -18L472 71L350 -18Q223 -111 217 -111Q207 -111 207 -103Q207 -96 254 47L301 194Q301 195 241 239T118 328T51 378Q49 382 49 384Q49 392 58 393T110 395H213H367Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2605\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"diagdown\",\n                \"source\": \"\\\\diagdown\",\n                \"snippet\": \"\\\\diagdown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 889.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIAGDOWN.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2572\\\" d=\\\"M0 675Q0 681 6 687T19 694Q27 694 44 678L460 247Q759 -62 809 -115T860 -175Q860 -183 852 -189T840 -195Q835 -195 822 -184L18 649Q0 667 0 675Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2572\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"diagup\",\n                \"source\": \"\\\\diagup\",\n                \"snippet\": \"\\\\diagup\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 889.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIAGUP.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2571\\\" d=\\\"M19 -195Q13 -195 7 -188T0 -176Q0 -169 18 -151L822 683Q835 694 840 694T852 688T860 674Q860 667 810 614T460 252Q57 -167 44 -179Q27 -195 19 -195Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2571\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Diamond\",\n                \"source\": \"\\\\Diamond\",\n                \"snippet\": \"\\\\Diamond\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 667.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">DIAMOND.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25CA\\\" d=\\\"M318 709Q325 716 332 716Q340 716 344 713T474 511Q611 298 611 292Q611 285 526 152Q494 103 474 72Q347 -128 344 -130Q340 -132 333 -132T322 -130Q319 -128 257 -31T131 169T60 278Q56 285 56 292Q56 298 60 305Q73 326 194 516T318 709ZM567 290T567 291T451 475T333 658L100 293Q100 288 215 108L333 -74Q334 -74 450 108Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25CA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Finv\",\n                \"source\": \"\\\\Finv\",\n                \"snippet\": \"\\\\Finv\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 556.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FINV.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2132\\\" d=\\\"M457 681Q471 695 477 695Q485 695 497 681V12L484 -1H68Q55 14 55 19T68 39H457V328H215L211 335Q198 346 211 359L217 368H457V681Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2132\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Game\",\n                \"source\": \"\\\\Game\",\n                \"snippet\": \"\\\\Game\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.485ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 639.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">GAME.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2141\\\" d=\\\"M239 665Q194 665 154 653T90 629T66 617Q59 617 53 623T46 637Q46 652 66 659Q129 695 197 701Q218 705 248 705Q293 705 335 693Q371 684 435 644Q543 562 573 417Q577 393 577 341Q577 290 573 266Q531 83 384 10Q346 -9 315 -16T234 -23H206Q202 -23 183 -23T152 -21T120 -18T88 -10T63 3T44 24L37 35V297L50 310H235Q248 297 248 290Q248 285 235 270H77V103Q77 88 77 80T77 63T78 50T80 43T82 38T85 35T89 32T95 30Q126 20 206 17Q289 17 330 30Q407 55 460 120T533 275Q538 305 538 342Q538 486 452 575T239 665Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2141\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hbar\",\n                \"source\": \"\\\\hbar\",\n                \"snippet\": \"\\\\hbar\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.306ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 562.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HBAR.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-210F\\\" d=\\\"M182 599Q182 611 174 615T133 619Q118 619 114 621T109 630Q109 636 114 656T122 681Q125 685 202 688Q272 695 286 695Q304 695 304 684Q304 682 295 644T282 597Q282 592 360 592H399Q430 592 445 587T460 563Q460 552 451 541L442 535H266L251 468Q247 453 243 436T236 409T233 399Q233 395 244 404Q295 441 357 441Q405 441 445 417T485 333Q485 284 449 178T412 58T426 44Q447 44 466 68Q485 87 500 130L509 152H531H543Q562 152 562 144Q562 128 546 93T494 23T415 -13Q385 -13 359 3T322 44Q318 52 318 77Q318 99 352 196T386 337Q386 386 346 386Q318 386 286 370Q267 361 245 338T211 292Q207 287 193 235T162 113T138 21Q128 7 122 4Q105 -12 83 -12Q66 -12 54 -2T42 26L166 530Q166 534 161 534T129 535Q127 535 122 535T112 534Q74 534 74 562Q74 570 77 576T84 585T96 589T109 591T124 592T138 592L182 595V599Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-210F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"hslash\",\n                \"source\": \"\\\\hslash\",\n                \"snippet\": \"\\\\hslash\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.306ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 562.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">HSLASH.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINI-210F\\\" d=\\\"M150 475Q147 475 118 466T82 457Q73 457 64 467T54 487Q54 490 55 492Q63 506 64 506Q67 512 118 526Q162 541 169 546Q173 559 175 575Q181 596 181 604Q181 613 166 617Q164 617 153 618T135 619Q119 619 114 621T109 630Q109 636 114 656T122 681Q125 685 202 688Q272 695 286 695Q304 695 304 684Q304 682 291 628L278 577L386 612Q466 635 476 635T492 627T499 607Q499 593 489 586Q485 583 373 546L262 512Q262 511 248 455T233 397T236 397T244 404Q295 441 357 441Q405 441 445 417T485 333Q485 284 449 178T412 58T426 44Q447 44 466 68Q485 87 500 130L509 152H531H543Q562 152 562 144Q562 128 546 93T494 23T415 -13Q385 -13 359 3T322 44Q318 52 318 77Q318 99 352 196T386 337Q386 386 346 386Q318 386 286 370Q267 361 245 338T211 292Q207 287 193 235T162 113T138 21Q128 7 122 4Q105 -12 83 -12Q66 -12 54 -2T42 26Q42 45 98 257L151 475H150Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINI-210F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"lozenge\",\n                \"source\": \"\\\\lozenge\",\n                \"snippet\": \"\\\\lozenge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 667.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">LOZENGE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25CA\\\" d=\\\"M318 709Q325 716 332 716Q340 716 344 713T474 511Q611 298 611 292Q611 285 526 152Q494 103 474 72Q347 -128 344 -130Q340 -132 333 -132T322 -130Q319 -128 257 -31T131 169T60 278Q56 285 56 292Q56 298 60 305Q73 326 194 516T318 709ZM567 290T567 291T451 475T333 658L100 293Q100 288 215 108L333 -74Q334 -74 450 108Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25CA\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"mho\",\n                \"source\": \"\\\\mho\",\n                \"snippet\": \"\\\\mho\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MHO.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2127\\\" d=\\\"M126 584Q119 584 110 539T97 493Q95 490 73 490Q44 490 44 501Q44 515 62 590Q75 672 82 679Q84 684 177 684Q193 684 214 684T241 685Q265 685 271 682T277 664V648Q271 572 229 434T186 231Q186 173 203 132T247 70T302 42T360 33Q391 33 419 42T474 72T517 133T533 231Q533 297 491 437T442 648Q442 675 446 679Q448 684 542 684Q635 684 637 681Q640 678 657 594T675 501Q675 490 646 490Q624 490 622 493Q620 493 609 538T593 584Q591 585 585 585T569 586T551 588H513Q514 586 518 573T538 531T582 453Q647 340 660 277Q663 259 663 232Q663 194 657 177Q652 151 629 112T560 39Q495 -5 424 -19Q403 -22 360 -22Q318 -22 297 -19Q239 -8 193 18T120 74T80 131T62 177Q56 194 56 229Q56 281 74 328T137 453Q160 491 174 518T193 555T201 575T206 588H168Q160 587 150 587T134 586T126 584Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2127\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"prime\",\n                \"keywords\": \"derivative topological duel space bidual normed vector\",\n                \"source\": \"\\\\prime\",\n                \"snippet\": \"\\\\prime\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.64ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: 0.098ex; margin-bottom: -0.269ex;\\\" viewBox=\\\"0 -647.8 275.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">PRIME. Keywords: derivative topological duel space bidual normed vector</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2032\\\" d=\\\"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2032\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"backprime\",\n                \"source\": \"\\\\backprime\",\n                \"snippet\": \"\\\\backprime\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.64ex\\\" height=\\\"1.676ex\\\" style=\\\"vertical-align: 0.098ex; margin-bottom: -0.269ex;\\\" viewBox=\\\"0 -647.8 275.5 721.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BACKPRIME.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2035\\\" d=\\\"M12 501Q12 527 31 542T63 558Q73 560 77 560Q114 560 128 528Q133 518 188 293T244 61Q244 56 223 50T195 43Q192 43 190 45T102 263T14 486Q12 496 12 501Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2035\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"surd\",\n                \"source\": \"\\\\surd\",\n                \"snippet\": \"\\\\surd\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.982ex\\\" height=\\\"2.843ex\\\" style=\\\"vertical-align: -0.671ex; margin-right: -0.046ex;\\\" viewBox=\\\"0 -934.9 853.5 1223.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SURD.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-221A\\\" d=\\\"M95 178Q89 178 81 186T72 200T103 230T169 280T207 309Q209 311 212 311H213Q219 311 227 294T281 177Q300 134 312 108L397 -77Q398 -77 501 136T707 565T814 786Q820 800 834 800Q841 800 846 794T853 782V776L620 293L385 -193Q381 -200 366 -200Q357 -200 354 -197Q352 -195 256 15L160 225L144 214Q129 202 113 190T95 178Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-221A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Weierstrass p\",\n                \"keywords\": \"power set\",\n                \"source\": \"\\\\wp\",\n                \"snippet\": \"\\\\wp\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.478ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -576.1 636.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">WEIERSTRASS P. Keywords: power set</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2118\\\" d=\\\"M300 74Q300 133 338 133Q350 133 356 126T363 109Q363 88 340 76Q340 71 342 62T358 39T393 26Q435 26 474 67T532 182T551 290Q551 325 535 349T484 373Q430 373 378 348T291 289T228 218T187 157T174 130Q254 30 265 10Q276 -15 276 -41Q276 -101 235 -158T142 -216Q112 -216 90 -195T67 -118Q67 -40 104 64L110 81Q81 118 81 174Q81 268 134 360T247 453Q252 453 255 451T258 447L259 445Q259 432 253 420Q251 416 242 416Q209 411 176 341T142 203Q142 193 143 184T146 170T149 165L158 180Q215 280 303 345T485 410Q548 410 586 368T625 255Q625 157 553 74T389 -10H383Q349 -10 325 14Q302 37 300 74ZM105 -123Q105 -134 106 -141T110 -158T122 -173T145 -178Q155 -178 160 -176Q184 -163 199 -132T214 -73Q214 -69 214 -66T213 -59T212 -53T209 -47T205 -41T199 -33T193 -25T184 -14T174 -1L165 10Q156 22 148 32L139 43Q138 43 130 15T113 -54T105 -123Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2118\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"angle\",\n                \"keywords\": \"geometry\",\n                \"source\": \"\\\\angle\",\n                \"snippet\": \"\\\\angle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">ANGLE. Keywords: geometry</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-2220\\\" d=\\\"M71 0L68 2Q65 3 63 5T58 11T55 20Q55 22 57 28Q67 43 346 361Q397 420 474 508Q595 648 616 671T647 694T661 688T666 674Q666 668 663 663Q662 662 627 622T524 503T390 350L120 41L386 40H653Q666 30 666 20Q666 8 651 0H71Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-2220\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"measuredangle\",\n                \"source\": \"\\\\measuredangle\",\n                \"snippet\": \"\\\\measuredangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">MEASUREDANGLE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2221\\\" d=\\\"M71 0L68 2Q65 3 63 5T58 11T55 20Q55 22 57 28Q64 38 348 373T638 712Q644 714 646 714Q653 714 659 709T666 694V693Q666 687 633 647Q619 631 576 580Q528 524 495 485Q336 296 329 289Q328 288 348 264T395 182T433 54L434 40H651Q666 32 666 20T651 0H436Q431 -20 416 -20Q400 -20 396 -4V0H71ZM394 40Q394 51 389 76T366 149T319 234L302 256L119 41L256 40H394Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2221\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"sphericalangle\",\n                \"source\": \"\\\\sphericalangle\",\n                \"snippet\": \"\\\\sphericalangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"1.843ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -647.8 722.5 793.3\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SPHERICALANGLE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2222\\\" d=\\\"M666 -32Q666 -51 646 -51Q639 -51 365 85L75 228Q55 238 55 250Q55 257 59 262T68 268L72 270L611 536Q642 551 647 551T659 547T666 532Q666 521 657 515L525 449Q525 448 535 424T556 352T566 250T556 148T536 77T525 51L657 -15Q666 -21 666 -32ZM526 250Q526 297 517 342T499 409T488 431Q487 431 304 341T121 250T304 159T488 69Q526 143 526 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2222\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"complement\",\n                \"source\": \"\\\\complement\",\n                \"snippet\": \"\\\\complement\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -934.9 500.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">COMPLEMENT.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-2201\\\" d=\\\"M404 269Q412 269 418 267T428 261T435 253T441 245L444 240V172Q444 103 443 96Q440 81 431 65T403 27T344 -7T250 -21T156 -8T97 27T69 65T58 96Q56 103 56 413Q56 722 58 729Q74 822 215 845Q221 846 229 846H243Q282 846 290 845Q422 826 443 729Q444 722 444 653V586L442 583Q441 580 440 578T436 573T430 567T423 562T415 558T404 556Q377 556 367 583Q364 590 364 654V719Q363 721 360 726T355 733Q326 766 250 766H249Q235 766 219 765T174 752T137 719V107Q145 83 178 71T251 58H254Q340 58 364 107V172Q364 176 364 187T363 204Q363 269 404 269Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-2201\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"triangledown\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\triangledown\",\n                \"snippet\": \"\\\\triangledown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 722.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLEDOWN. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25BD\\\" d=\\\"M84 556Q84 567 99 576H622Q637 567 637 556Q637 551 572 409T441 127T375 -14Q368 -19 360 -19H358Q349 -19 342 -7T296 92Q249 193 211 275Q84 550 84 556ZM586 534Q586 536 361 536Q135 536 135 535L358 52L361 47L473 290Q584 532 586 534Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25BD\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"triangle\",\n                \"keywords\": \"set symmetric difference geometry shape\",\n                \"source\": \"\\\\triangle\",\n                \"snippet\": \"\\\\triangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.066ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 889.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">TRIANGLE. Keywords: set symmetric difference geometry shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAIN-25B3\\\" d=\\\"M75 0L72 2Q69 3 67 5T62 11T59 20Q59 24 62 30Q65 37 245 370T428 707Q428 708 430 710T436 714T444 716Q451 716 455 712Q459 710 644 368L828 27V20Q828 7 814 0H75ZM610 347L444 653Q443 653 278 347T113 40H775Q775 42 610 347Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAIN-25B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"vartriangle\",\n                \"source\": \"\\\\vartriangle\",\n                \"snippet\": \"\\\\vartriangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 722.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">VARTRIANGLE.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25B3\\\" d=\\\"M99 -20Q84 -11 84 0Q84 5 148 145T278 424L342 563Q347 575 360 575Q368 575 375 570Q376 569 441 430T571 148T637 0Q637 -11 622 -20H99ZM476 260L360 509L248 266Q137 24 135 22Q135 20 360 20Q586 20 586 21L476 260Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25B3\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacklozenge\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\blacklozenge\",\n                \"snippet\": \"\\\\blacklozenge\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 667.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKLOZENGE. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-29EB\\\" d=\\\"M318 709Q325 716 332 716Q340 716 344 713T474 511Q611 298 611 292Q611 285 526 152Q494 103 474 72Q347 -128 344 -130Q340 -132 333 -132T322 -130Q319 -128 257 -31T131 169T60 278Q56 285 56 292Q56 298 60 305Q73 326 194 516T318 709Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-29EB\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacksquare\",\n                \"keywords\": \"QED end of proof shape\",\n                \"source\": \"\\\\blacksquare\",\n                \"snippet\": \"\\\\blacksquare\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKSQUARE. Keywords: QED end of proof shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25A0\\\" d=\\\"M71 0Q59 4 55 16V346L56 676Q64 686 70 689H709Q719 681 722 674V15Q719 10 709 1L390 0H71Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25A0\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacktriangle\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\blacktriangle\",\n                \"snippet\": \"\\\\blacktriangle\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 722.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKTRIANGLE. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25B2\\\" d=\\\"M99 -20Q84 -11 84 0Q84 5 148 145T278 424L342 563Q347 575 360 575Q368 575 375 570Q376 569 441 430T571 148T637 0Q637 -11 622 -20H99Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25B2\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"blacktriangledown\",\n                \"keywords\": \"shape\",\n                \"source\": \"\\\\blacktriangledown\",\n                \"snippet\": \"\\\\blacktriangledown\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.009ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -719.6 722.5 865.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKTRIANGLEDOWN. Keywords: shape</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-25BC\\\" d=\\\"M84 556Q84 567 99 576H622Q637 567 637 556Q637 551 572 409T441 127T375 -14Q368 -19 360 -19H358Q349 -19 342 -7T296 92Q249 193 211 275Q84 550 84 556Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-25BC\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"circledS\",\n                \"source\": \"\\\\circledS\",\n                \"snippet\": \"\\\\circledS\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.096ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 902.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CIRCLEDS.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-24C8\\\" d=\\\"M451 -175Q328 -175 226 -115T66 47T8 267Q8 303 15 342T39 431T94 531T186 622Q239 663 307 686T424 709H440Q604 709 716 622Q757 592 788 555T838 482T869 414T886 350T892 301T894 267Q894 147 835 45T674 -116T451 -175ZM854 268Q854 375 802 467T657 614T450 670Q283 670 166 552T49 267Q49 99 167 -18T453 -136Q617 -136 735 -18T854 268ZM273 378Q273 430 309 474T409 527Q411 527 417 527T428 528Q498 528 549 484L567 505Q583 528 590 528H594Q600 528 606 522V350L600 344H586Q577 344 574 344T569 347T566 357Q542 491 432 491Q389 491 365 465T340 407Q340 391 344 378T358 356T377 340T400 328T421 321T443 316T459 313Q499 305 517 300T559 279T601 238Q629 195 629 148Q629 80 583 33T471 -14Q392 -14 330 30Q312 6 293 -13Q292 -14 285 -14Q279 -14 273 -8V77V138Q273 160 275 165T286 170H294H307Q313 164 313 158Q313 108 350 67T471 26Q512 26 537 54T562 119Q562 137 558 151T544 176T527 193T504 205T483 212T459 218T441 222Q391 232 368 241T318 273Q273 316 273 378Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-24C8\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ],\n        \"Letter Styles\": [\n            {\n                \"name\": \"Caligraphic A\",\n                \"source\": \"\\\\mathcal{A}\",\n                \"snippet\": \"\\\\mathcal{A}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.903ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 819.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC A.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-41\\\" d=\\\"M576 668Q576 688 606 708T660 728Q676 728 675 712V571Q675 409 688 252Q696 122 720 57Q722 53 723 50T728 46T732 43T737 41T743 39L754 45Q788 61 803 61Q819 61 819 47Q818 43 814 35Q799 15 755 -7T675 -30Q659 -30 648 -25T630 -8T621 11T614 34Q603 77 599 106T594 146T591 160V163H460L329 164L316 145Q241 35 196 -7T119 -50T59 -24T30 43Q30 75 46 100T74 125Q81 125 83 120T88 104T96 84Q118 57 151 57Q189 57 277 182Q432 400 542 625L559 659H567Q574 659 575 660T576 668ZM584 249Q579 333 577 386T575 473T574 520V581L563 560Q497 426 412 290L372 228L370 224H371L383 228L393 232H586L584 249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic B\",\n                \"source\": \"\\\\mathcal{B}\",\n                \"snippet\": \"\\\\mathcal{B}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.543ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 664.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC B.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-42\\\" d=\\\"M304 342Q292 342 292 353Q292 372 323 391Q331 396 417 428T533 487Q563 512 563 555V562Q563 575 557 589T530 618T475 636Q429 636 396 613T330 539Q263 446 210 238Q196 183 173 120Q135 31 121 16Q108 1 85 -10T47 -22T32 -10Q32 -5 44 18T77 93T112 206Q135 296 154 395T182 550T191 615Q191 616 190 616Q188 616 179 611T157 601T131 594Q113 594 113 605Q113 623 144 644Q154 650 205 676T267 703Q277 705 279 705Q295 705 295 693Q295 686 288 635T278 575Q278 572 287 582Q336 635 402 669T540 704Q603 704 633 673T664 599Q664 559 638 523T580 462Q553 440 504 413L491 407L504 402Q566 381 596 338T627 244Q627 172 575 110T444 13T284 -22Q208 -22 158 28Q144 42 146 50Q150 67 178 85T230 103Q236 103 246 95T267 75T302 56T357 47Q436 47 486 93Q526 136 526 198V210Q526 228 518 249T491 292T436 330T350 345Q335 345 321 344T304 342Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic C\",\n                \"source\": \"\\\\mathcal{C}\",\n                \"snippet\": \"\\\\mathcal{C}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.239ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 533.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC C.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-43\\\" d=\\\"M201 -25Q167 -25 136 -14T75 23T29 94T12 202Q12 290 50 394T161 574Q227 642 303 673T433 704Q435 705 457 705Q533 701 533 640Q533 606 507 548T464 474Q431 444 396 444Q381 444 381 453Q381 459 388 473T407 513T428 563Q433 580 433 594Q433 636 381 636Q314 636 260 594T175 489T128 363T112 247Q112 157 153 101T273 44Q347 44 398 121Q413 144 437 157T481 171Q496 171 496 160Q496 150 476 123Q426 56 350 16T201 -25Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-43\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic D\",\n                \"source\": \"\\\\mathcal{D}\",\n                \"snippet\": \"\\\\mathcal{D}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.792ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 771.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC D.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-44\\\" d=\\\"M37 475Q19 475 19 487Q19 536 103 604T327 682H356Q386 683 408 683H419Q475 683 506 681T582 668T667 633Q766 571 766 450Q766 365 723 287T611 152T455 57T279 6Q248 1 160 0Q148 0 131 0T108 -1Q72 -1 72 11Q72 24 90 40T133 64L144 68L152 88Q247 328 272 587Q275 613 272 613Q272 613 269 613Q225 610 195 602T149 579T129 556T119 532Q118 530 116 525T113 518Q102 502 80 490T37 475ZM665 407Q665 596 412 613Q403 614 383 614Q370 614 370 612Q370 598 363 542T323 357T242 103L228 69H265Q391 73 481 119Q536 148 575 188T633 268T658 338T665 392V407Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-44\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic E\",\n                \"source\": \"\\\\mathcal{E}\",\n                \"snippet\": \"\\\\mathcal{E}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.311ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 564.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC E.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-45\\\" d=\\\"M144 470Q144 556 240 630T451 705Q564 705 564 637Q564 611 540 573Q529 559 505 547T464 534Q448 534 448 545Q448 552 455 562Q463 577 463 591Q463 600 462 604T456 616T436 627T400 635Q396 635 390 635T380 636Q291 636 258 568Q245 544 245 516Q245 463 290 438T391 410Q415 410 415 398Q415 392 407 380T376 356T326 341Q288 340 260 327Q218 311 187 276T143 208T130 151Q130 113 156 88T211 55T268 47Q349 47 403 125Q415 144 439 157T483 171Q499 171 499 160Q499 148 475 120T413 59T315 3T197 -22Q124 -22 77 14T30 105Q30 126 39 154T66 216T122 288T209 354L223 362Q144 400 144 470Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic F\",\n                \"source\": \"\\\\mathcal{F}\",\n                \"snippet\": \"\\\\mathcal{F}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.927ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 829.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC F.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-46\\\" d=\\\"M199 579Q181 579 181 590Q181 598 188 611T212 639T260 666T335 682Q336 682 349 682T383 682T431 682T493 683T561 683Q776 682 784 681Q826 673 829 647Q829 620 797 600T744 580Q728 580 728 595Q729 607 713 610Q698 613 598 614H500L499 610Q499 598 467 486T428 367Q428 365 551 365H674Q683 360 684 355Q687 346 677 329Q666 312 642 299T598 285Q586 285 582 296H402L394 277Q386 258 373 229T346 167T315 102T286 51Q265 22 225 -5T133 -32Q108 -32 87 -25T54 -7T33 15T21 35T18 47Q18 60 44 80T98 103Q108 103 111 101T119 88Q130 66 150 54T179 39T195 37Q199 37 203 43Q217 67 245 125T318 300T391 532Q393 543 398 564T406 598T409 613T339 614H269Q229 579 199 579Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-46\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic G\",\n                \"source\": \"\\\\mathcal{G}\",\n                \"snippet\": \"\\\\mathcal{G}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.392ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 599.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC G.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-47\\\" d=\\\"M216 68Q155 68 115 100T59 177T44 273Q44 299 50 333T73 421T133 533T239 632Q346 704 466 704Q508 704 515 703Q555 696 577 681T599 635Q599 605 570 560T523 496Q490 466 455 466Q440 466 440 475T469 526T499 589Q499 605 489 617Q460 636 403 636Q343 636 295 611T220 548T174 464T150 382T144 318Q144 241 180 189T287 137Q325 137 359 160Q428 205 466 322Q472 342 501 359T551 376Q557 376 560 373T564 368L565 365Q560 341 551 302T512 173T451 31Q359 -119 204 -119Q163 -118 127 -109T74 -91T53 -77Q52 -75 52 -71Q52 -54 79 -35T132 -14H140L151 -19Q210 -49 281 -49H289Q312 -49 329 -31Q351 -7 372 36T405 109T416 142L408 136Q401 131 392 125T369 111T338 96T303 82T261 72T216 68Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-47\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic H\",\n                \"source\": \"\\\\mathcal{H}\",\n                \"snippet\": \"\\\\mathcal{H}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.964ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 845.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC H.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-48\\\" d=\\\"M18 487Q18 496 29 517T67 566T127 621T216 665T330 683Q359 683 376 669T397 643T400 622Q400 584 382 488T348 343Q348 342 467 342H587L594 366Q615 440 648 534T690 641Q701 656 723 669T764 683Q783 683 783 672L750 578Q716 485 677 346T625 101Q624 92 623 82T622 65T621 56Q621 20 658 20Q666 20 701 25Q709 52 736 69T785 87Q803 87 803 75T791 44T754 3T685 -33T588 -48Q568 -48 562 -46Q522 -31 522 13V23Q531 129 562 250L569 281L565 280Q561 278 556 277T549 274L438 273H328L321 249Q307 202 275 107T232 0Q219 -16 196 -28T155 -41Q149 -41 145 -39T140 -34T139 -29Q139 -24 148 -3T181 86T233 247Q240 270 240 272Q240 273 194 273H169Q139 273 139 285Q139 295 153 308T187 332Q206 341 236 342L260 343L264 359Q278 414 289 482T300 578Q300 613 260 613H254Q198 613 169 592Q148 578 127 544T104 508Q72 478 37 475Q18 475 18 487Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic I\",\n                \"source\": \"\\\\mathcal{I}\",\n                \"snippet\": \"\\\\mathcal{I}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.561ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.069ex;\\\" viewBox=\\\"-29.5 -791.3 672 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC I.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-49\\\" d=\\\"M174 0H31Q-13 0 -21 2T-30 12Q-30 23 -17 36Q9 60 42 68L155 70Q187 102 214 179T257 333T302 491T366 610L369 614H305Q221 611 188 607T145 596T128 569Q119 543 94 529T47 512Q28 512 28 524Q28 527 32 539Q56 614 159 654Q218 678 312 682Q314 682 339 682T404 682T481 683H632Q642 678 642 671Q642 657 621 641T577 617Q570 615 507 614H444Q427 592 406 542Q382 478 355 366T310 209Q280 123 238 78L230 69H330Q442 70 442 74Q443 74 443 77T447 87T460 105Q490 134 527 137Q545 137 545 125Q545 120 542 112Q531 78 491 49T399 7Q379 2 360 2T174 0Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic J\",\n                \"source\": \"\\\\mathcal{J}\",\n                \"snippet\": \"\\\\mathcal{J}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.95ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 839.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC J.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4A\\\" d=\\\"M148 78Q148 16 189 -17T286 -50Q319 -50 348 -33T396 10T426 59T444 101L471 204Q498 306 521 372Q575 532 649 605L659 614H591Q517 613 494 607Q433 591 400 550T360 477Q353 454 325 437T275 419Q256 419 260 435Q280 523 376 597T583 681Q603 683 713 683H830Q839 674 839 671Q839 654 810 634T754 614Q735 614 721 601Q688 571 654 495T600 351T561 209T541 132Q507 29 412 -45T213 -119Q141 -119 94 -77T47 33Q47 55 50 69T58 90T71 103Q105 131 135 131Q152 131 152 120Q152 119 151 114T149 99T148 78Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic K\",\n                \"source\": \"\\\\mathcal{K}\",\n                \"snippet\": \"\\\\mathcal{K}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.771ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 762.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC K.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4B\\\" d=\\\"M194 618Q193 618 182 613T156 601T131 594Q113 594 113 605Q113 623 144 644Q154 650 205 676T267 703Q277 705 279 705Q295 705 295 691Q295 569 250 397Q225 306 197 217T151 81T128 25Q120 8 94 -7T47 -22Q32 -22 32 -10L64 76Q95 163 133 295T185 530Q198 611 194 618ZM331 429Q331 383 364 290T449 117T542 36Q574 36 607 51T652 103Q660 124 677 133T709 143Q727 143 727 128Q727 119 723 111Q704 56 639 17T497 -22H493Q463 -22 425 16Q401 40 382 71Q335 138 296 243T256 399Q256 434 288 473Q342 540 471 622T670 705Q691 704 703 696Q732 678 732 644Q732 613 714 600T677 586Q671 586 667 587T660 592T657 604V619Q657 647 629 647Q623 647 620 646Q576 635 495 583T365 482Q331 448 331 429Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic L\",\n                \"source\": \"\\\\mathcal{L}\",\n                \"snippet\": \"\\\\mathcal{L}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.604ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 690.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC L.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4C\\\" d=\\\"M62 -22T47 -22T32 -11Q32 -1 56 24T83 55Q113 96 138 172T180 320T234 473T323 609Q364 649 419 677T531 705Q559 705 578 696T604 671T615 645T618 623V611Q618 582 615 571T598 548Q581 531 558 520T518 509Q503 509 503 520Q503 523 505 536T507 560Q507 590 494 610T452 630Q423 630 410 617Q367 578 333 492T271 301T233 170Q211 123 204 112L198 103L224 102Q281 102 369 79T509 52H523Q535 64 544 87T579 128Q616 152 641 152Q656 152 656 142Q656 101 588 40T433 -22Q381 -22 289 1T156 28L141 29L131 20Q111 0 87 -11Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic M\",\n                \"source\": \"\\\\mathcal{M}\",\n                \"snippet\": \"\\\\mathcal{M}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.791ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1201.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC M.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4D\\\" d=\\\"M28 9Q28 37 43 63T73 90Q77 90 83 84T103 70T141 57H146Q162 57 178 79T222 167Q266 279 295 371T334 513T349 598T358 651T371 677Q397 705 432 705Q442 705 445 699T452 666Q453 661 453 659Q475 538 509 405T568 207L574 192Q581 178 587 164T594 150Q596 150 635 189T693 248Q765 324 863 438T1024 626T1089 701Q1093 705 1100 705Q1111 705 1111 682Q1111 675 1108 660T1099 611T1086 540Q1041 277 1041 144Q1041 98 1044 75T1050 48T1059 42Q1064 41 1075 46Q1102 61 1121 61Q1137 61 1137 50Q1137 28 1087 0T1000 -29Q983 -29 972 -23T955 -9T945 16T942 45T941 83V96Q941 158 952 256T974 422L985 489Q984 489 939 436T821 300T698 164Q665 128 620 85T568 37Q564 34 558 34Q550 34 546 37T535 54Q512 91 496 127T450 259T389 498L384 518Q349 367 294 223T198 15Q155 -50 117 -50Q87 -50 61 -35T30 -6Q28 2 28 9Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic N\",\n                \"source\": \"\\\\mathcal{N}\",\n                \"snippet\": \"\\\\mathcal{N}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.337ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.062ex;\\\" viewBox=\\\"-26.5 -934.9 1006 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC N.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4E\\\" d=\\\"M343 705Q358 705 358 698Q360 696 370 658T411 524T484 319Q536 174 590 82L595 73L615 152Q646 274 683 407Q729 571 752 637T799 727Q852 780 937 788Q939 788 947 788T958 789H962Q979 789 979 765Q979 722 951 692Q942 683 924 683Q888 681 859 672T818 654T803 639Q784 608 708 322T631 15Q631 14 630 15Q630 17 629 15Q628 14 628 12Q621 -4 601 -17T560 -31Q550 -31 546 -28T530 -7Q484 67 458 123T398 272Q352 392 314 514L306 535V534Q306 533 296 488T272 379T234 239T185 100T127 -7T61 -50Q34 -50 4 -34T-27 8Q-27 33 -12 61T18 90Q21 90 36 77T87 57H92Q109 57 123 78T162 173Q206 299 232 417T265 599T276 667Q284 681 304 693T343 705Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic O\",\n                \"keywords\": \"asymptotic big o bounded by\",\n                \"source\": \"\\\\mathcal{O}\",\n                \"snippet\": \"\\\\mathcal{O}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.85ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 796.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC O. Keywords: asymptotic big o bounded by</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-4F\\\" d=\\\"M308 428Q289 428 289 438Q289 457 318 508T378 593Q417 638 475 671T599 705Q688 705 732 643T777 483Q777 380 733 285T620 123T464 18T293 -22Q188 -22 123 51T58 245Q58 327 87 403T159 533T249 626T333 685T388 705Q404 705 404 693Q404 674 363 649Q333 632 304 606T239 537T181 429T158 290Q158 179 214 114T364 48Q489 48 583 165T677 438Q677 473 670 505T648 568T601 617T528 636Q518 636 513 635Q486 629 460 600T419 544T392 490Q383 470 372 459Q341 430 308 428Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic P\",\n                \"keywords\": \"power set\",\n                \"source\": \"\\\\mathcal{P}\",\n                \"snippet\": \"\\\\mathcal{P}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.704ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 733.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC P. Keywords: power set</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-50\\\" d=\\\"M37 475Q19 475 19 487Q19 536 103 604T327 682Q329 682 344 682T380 682T421 683H463Q625 683 695 615Q718 591 726 564Q733 547 733 525Q733 412 607 312T321 205H312Q293 205 293 217Q293 224 302 236T333 260T385 274Q558 287 614 407Q633 445 633 477Q633 515 612 543T556 585T481 607T399 614H370L368 603Q352 463 312 312T242 82T202 -13Q190 -33 164 -45T121 -57Q108 -57 108 -45Q108 -40 120 -10T151 73T192 190T233 349T266 539Q267 546 269 565T272 598T274 613H270Q209 613 163 588Q131 572 113 518Q102 502 80 490T37 475Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic Q\",\n                \"source\": \"\\\\mathcal{Q}\",\n                \"snippet\": \"\\\\mathcal{Q}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.899ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 817.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC Q.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-51\\\" d=\\\"M114 286Q114 358 151 433T249 569T392 667T558 705Q653 705 713 641T774 460Q774 389 750 322T687 206T600 114T504 46T412 4L399 -2Q542 -62 636 -62Q660 -62 670 -54T686 -27T700 0Q734 34 770 34Q787 34 787 23Q787 -18 720 -74T563 -131Q485 -131 350 -83T145 -34Q127 -34 127 -22Q127 -12 144 5T190 31L200 34L237 35Q386 38 467 79Q550 120 612 210T675 416Q675 510 625 573T484 636Q410 636 346 587T248 469T214 333Q214 306 221 281T243 229T288 188T360 172Q403 172 441 188T490 205Q510 205 510 192Q505 162 432 132T287 102Q206 102 160 155T114 286Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-51\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic R\",\n                \"source\": \"\\\\mathcal{R}\",\n                \"snippet\": \"\\\\mathcal{R}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.971ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 848.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC R.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-52\\\" d=\\\"M37 475Q19 475 19 487Q19 503 35 530T83 589T180 647T327 682H374Q387 682 417 682T464 683Q519 683 559 679T642 663T708 625T731 557Q731 481 668 411T504 300Q506 296 512 286T528 257T553 202Q594 105 611 82Q635 47 665 47Q708 47 742 93Q758 113 786 128Q804 136 819 137Q837 137 837 125Q837 115 818 92T767 43T687 -2T589 -22Q549 -22 517 22T467 120T422 221T362 273Q346 273 346 287Q348 301 373 320T436 342Q437 342 446 343T462 345T481 348T504 353T527 362T553 375T577 393Q598 412 614 443T630 511Q630 545 613 566T541 600T393 614Q370 614 370 613L366 584Q349 446 311 307T243 96L213 25Q205 8 179 -7T132 -22Q125 -22 120 -18T117 -8Q117 -5 130 26T163 113T205 239T246 408T274 606V614Q273 614 259 613T231 609T198 602T163 588Q131 572 113 518Q102 502 80 490T37 475Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic S\",\n                \"source\": \"\\\\mathcal{S}\",\n                \"snippet\": \"\\\\mathcal{S}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.492ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 642.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC S.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-53\\\" d=\\\"M554 512Q536 512 536 522Q536 525 539 539T542 564Q542 588 528 604Q515 616 482 625T410 635Q374 635 349 624T312 594T295 561T290 532Q290 505 303 482T342 442T378 419T409 404Q435 391 451 383T494 357T535 323T562 282T574 231Q574 133 464 56T220 -22Q138 -22 78 21T18 123Q18 184 61 227T156 274Q178 274 178 263Q178 260 177 258Q172 247 164 239T151 227T136 218L127 213L124 202Q118 186 118 163Q120 124 165 86T292 48Q374 48 423 86T473 186V193Q473 267 347 327Q268 364 239 389Q191 431 191 486Q191 547 242 600T356 679T470 705Q472 705 478 705T489 704Q551 704 596 682T642 610Q642 566 621 545Q592 516 554 512Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-53\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic T\",\n                \"source\": \"\\\\mathcal{T}\",\n                \"snippet\": \"\\\\mathcal{T}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 833.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC T.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-54\\\" d=\\\"M49 475Q34 475 34 490Q34 552 106 611T261 681Q272 683 507 683H742Q790 717 816 717Q833 717 833 708Q833 682 795 653T714 615Q691 610 588 609Q490 609 490 607L483 580Q476 554 462 496T435 392Q410 289 395 231T363 116T335 34T309 -15T279 -47T242 -64Q231 -68 218 -68Q203 -68 203 -57Q203 -52 211 -38Q224 -7 234 20T251 66T268 123T283 179T304 261T328 360Q342 415 360 488Q380 567 384 582T397 605Q400 607 401 609H302H244Q200 609 188 607T167 596Q145 572 145 541Q145 520 109 498T49 475Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic U\",\n                \"source\": \"\\\\mathcal{U}\",\n                \"snippet\": \"\\\\mathcal{U}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.635ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.038ex;\\\" viewBox=\\\"-16.5 -791.3 704 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC U.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-55\\\" d=\\\"M8 592Q8 616 70 649T193 683Q246 683 246 631Q246 587 205 492T124 297T83 143Q83 101 100 75T154 48Q202 48 287 135T450 342T560 553Q589 635 593 640Q603 656 626 668T669 683H670Q687 683 687 672T670 616T617 463T547 220Q525 137 521 68Q521 54 522 50T533 42L543 47Q573 61 588 61Q604 61 604 47Q599 16 506 -22Q486 -28 468 -28T436 -18T421 18Q421 92 468 258Q468 259 467 257T459 248Q426 206 391 167T303 81T194 6T83 -22Q66 -22 58 -20Q25 -11 4 19T-17 99Q-17 146 8 220T64 358T120 488T146 586Q146 604 141 608T123 613H120Q99 613 72 597T25 580Q8 580 8 592Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-55\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic V\",\n                \"source\": \"\\\\mathcal{V}\",\n                \"snippet\": \"\\\\mathcal{V}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.529ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 658.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC V.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-56\\\" d=\\\"M25 633Q25 647 47 665T100 683Q291 683 291 306Q291 264 288 213T282 132L279 102Q281 102 308 126T378 191T464 279T545 381T596 479Q600 490 600 502Q600 527 581 550T523 577Q505 577 505 601Q505 622 516 647T542 681Q546 683 558 683Q605 679 631 645T658 559Q658 423 487 215Q409 126 308 37T190 -52Q177 -52 177 -28Q177 -26 183 15T196 127T203 270Q203 356 192 421T165 523T126 583T83 613T41 620Q25 620 25 633Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-56\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic W\",\n                \"source\": \"\\\\mathcal{W}\",\n                \"snippet\": \"\\\\mathcal{W}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.405ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1035.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC W.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-57\\\" d=\\\"M25 633Q25 647 46 665T103 683Q168 683 207 632Q228 608 243 568Q269 485 269 374Q269 324 265 271T256 184L251 150L252 152Q254 153 257 157T264 167T274 180T286 197Q359 293 424 398T519 558T549 616Q549 618 547 624T545 638Q550 654 572 668T615 683Q626 683 632 672T657 595Q726 370 741 128L742 110Q752 122 767 142T823 217T894 321T950 424T976 511Q976 544 958 560T918 577Q906 577 906 602Q906 629 918 651T942 681Q948 683 954 683Q983 683 1008 658T1034 569T999 421T915 257T813 109T724 -3T681 -49Q666 -59 660 -45Q659 -41 657 35T639 233T591 477Q573 551 570 551Q569 551 554 523T507 439T433 315T323 155T182 -25Q160 -52 151 -53Q137 -53 137 -30Q137 -29 148 25T170 168T181 338Q181 424 168 483T131 571T87 609T40 620Q25 620 25 633Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-57\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic X\",\n                \"source\": \"\\\\mathcal{X}\",\n                \"snippet\": \"\\\\mathcal{X}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.875ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 807.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC X.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-58\\\" d=\\\"M324 614Q291 576 250 573Q231 573 231 584Q231 589 232 592Q235 601 244 614T271 643T324 671T400 683H403Q462 683 481 610Q485 594 490 545T498 454L501 413Q504 413 551 442T648 509T705 561Q707 565 707 578Q707 610 682 614Q667 614 667 626Q667 641 695 662T755 683Q765 683 775 680T796 662T807 623Q807 596 792 572T713 499T530 376L505 361V356Q508 346 511 278T524 148T557 75Q569 69 580 69Q585 69 593 77Q624 108 660 110Q667 110 670 110T676 106T678 94Q668 59 624 30T510 0Q487 0 471 9T445 32T430 71T422 117T417 173Q416 183 416 188Q413 214 411 244T407 286T405 299Q403 299 344 263T223 182T154 122Q152 118 152 105Q152 69 180 69Q183 69 187 66T191 60L192 58V56Q192 41 163 21T105 0Q94 0 84 3T63 21T52 60Q52 77 56 90T85 131T155 191Q197 223 259 263T362 327T402 352L391 489Q391 492 390 505T387 526T384 547T379 568T372 586T361 602T348 611Q346 612 341 613T333 614H324Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic Y\",\n                \"source\": \"\\\\mathcal{Y}\",\n                \"snippet\": \"\\\\mathcal{Y}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.659ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 714.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC Y.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-59\\\" d=\\\"M65 599Q65 618 107 650T204 683Q267 683 312 643T380 533T414 385T424 217Q424 186 423 160T422 123Q426 123 468 170T567 304T650 469Q661 503 661 519Q661 546 639 570Q615 591 583 591Q569 591 569 616Q569 640 582 661T613 683Q624 683 638 679T671 664T702 625T714 558Q714 472 639 329T426 45Q361 -21 282 -82T154 -143Q97 -143 64 -104T31 -20Q31 4 44 25T70 46Q78 46 81 39T87 16T97 -9Q127 -51 182 -51Q184 -51 187 -50H190Q233 -41 314 25Q330 36 330 40Q336 79 336 178Q336 508 223 594Q199 614 158 619L148 620L139 611Q111 586 83 586Q65 586 65 599Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-59\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Caligraphic Z\",\n                \"source\": \"\\\\mathcal{Z}\",\n                \"snippet\": \"\\\\mathcal{Z}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.783ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 767.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">CALIGRAPHIC Z.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJCAL-5A\\\" d=\\\"M694 220Q708 220 708 210Q708 195 695 167T658 105T593 42T502 3Q492 1 458 1Q400 1 293 11T150 22Q116 22 92 11T51 0Q37 0 37 10Q37 21 63 44T179 146T367 319L391 343H343L296 344Q285 350 285 358Q285 365 289 372T300 383T313 392T324 398L329 400H450L561 518Q597 558 607 571L621 587H596Q553 589 484 599T383 609Q342 609 326 596T301 555Q294 533 263 514T208 492Q189 492 189 503Q189 510 197 528T215 559Q249 607 318 645T466 683Q504 683 573 673T669 662L690 661Q734 682 748 683Q767 683 767 673Q767 666 746 640Q655 531 555 428L529 400Q529 399 543 399Q604 397 604 366Q604 350 587 337T551 322Q541 322 539 323Q529 328 529 334Q529 339 487 342L470 343L446 320Q272 153 200 96L235 95Q297 95 392 86T533 74H554Q586 116 597 159Q604 179 635 199T694 220Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJCAL-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold A\",\n                \"keywords\": \"algebraic numbers\",\n                \"source\": \"\\\\mathbb{A}\",\n                \"snippet\": \"\\\\mathbb{A}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD A. Keywords: algebraic numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-41\\\" d=\\\"M130 -1H63Q34 -1 26 2T17 17Q17 24 22 29T35 35Q49 35 64 44T88 66Q101 93 210 383Q331 693 335 697T346 701T357 697Q358 696 493 399Q621 104 633 83Q656 35 686 35Q693 35 698 30T703 17Q703 5 693 2T643 -1H541Q388 -1 386 1Q378 6 378 16Q378 24 383 29T397 35Q412 35 434 45T456 65Q456 93 428 170L419 197H197L195 179Q184 134 184 97Q184 82 186 71T190 55T198 45T205 39T214 36L219 35Q241 31 241 17Q241 5 233 2T196 -1H130ZM493 68Q493 51 481 35H619Q604 56 515 256Q486 321 468 361L348 637Q347 637 330 592T313 543Q313 538 358 436T448 219T493 68ZM404 235Q404 239 355 355T295 488L275 430Q241 348 208 232H306Q404 232 404 235ZM155 48Q151 55 148 88V117L135 86Q118 47 117 46L110 37L135 35H159Q157 41 155 48Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold B\",\n                \"source\": \"\\\\mathbb{B}\",\n                \"snippet\": \"\\\\mathbb{B}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD B.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-42\\\" d=\\\"M11 665Q11 672 22 683H213Q407 681 431 677Q582 649 582 515Q582 488 573 468Q554 413 484 372L474 366H475Q620 317 620 178Q620 115 568 69T420 6Q393 1 207 -1H22Q11 10 11 18Q11 35 51 35Q79 37 88 39T102 52Q107 70 107 341T102 630Q97 640 88 643T51 648H46Q11 648 11 665ZM142 341Q142 129 141 88T134 37Q133 36 133 35H240L233 48L229 61V623L233 635L240 648H133L138 639Q142 621 142 341ZM284 370Q365 378 391 411T417 508Q417 551 406 581T378 624T347 643T320 648Q298 648 278 635Q267 628 266 611T264 492V370H284ZM546 515Q546 551 531 577T494 617T454 635T422 641L411 643L420 630Q439 604 445 579T452 510V504Q452 481 451 467T441 430T415 383Q420 383 439 391T483 413T527 455T546 515ZM585 185Q585 221 570 249T534 294T490 320T453 334T436 337L435 336L440 330Q445 325 452 315T467 288T479 246T484 188Q484 145 474 110T454 62T442 48Q442 47 444 47Q450 47 470 54T517 75T564 119T585 185ZM449 184Q449 316 358 332Q355 332 335 333T302 335H264V199Q266 68 270 57Q275 50 289 43Q300 37 324 37Q449 37 449 184Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold C\",\n                \"keywords\": \"complex numbers\",\n                \"source\": \"\\\\mathbb{C}\",\n                \"snippet\": \"\\\\mathbb{C}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD C. Keywords: complex numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-43\\\" d=\\\"M684 131Q684 125 672 109T633 71T573 29T489 -5T386 -19Q330 -19 276 -3T174 46T91 134T44 261Q39 283 39 341T44 421Q66 538 143 611T341 699Q344 699 364 700T395 701Q449 698 503 677T585 655Q603 655 611 662T620 678T625 694T639 702Q650 702 657 690V481L653 474Q640 467 628 472Q624 476 618 496T595 541Q562 587 507 625T390 663H381Q337 663 299 625Q212 547 212 336Q212 249 233 179Q274 30 405 30Q533 30 641 130Q658 147 666 147Q671 147 677 143T684 131ZM250 625Q264 643 261 643Q238 635 214 620T161 579T110 510T79 414Q74 384 74 341T79 268Q89 213 113 169T164 101T217 61T260 39L277 34Q270 41 264 48Q199 111 181 254Q178 281 178 344T181 434Q200 559 250 625ZM621 565V625Q617 623 613 623Q603 619 590 619H575L588 605Q608 583 610 579L621 565Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-43\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold D\",\n                \"source\": \"\\\\mathbb{D}\",\n                \"snippet\": \"\\\\mathbb{D}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD D.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-44\\\" d=\\\"M16 666Q16 675 28 683H193Q329 683 364 682T430 672Q534 650 600 585T686 423Q688 406 688 352Q688 274 673 226Q641 130 565 72T381 1Q368 -1 195 -1H28Q16 5 16 16Q16 35 53 35Q68 36 75 37T87 42T95 52Q98 61 98 341T95 630Q91 640 83 643T53 648Q16 648 16 666ZM237 646Q237 648 184 648H128Q128 647 133 632Q136 620 136 341Q136 64 133 50L128 35H237L230 48L226 61V343Q228 620 231 633Q232 636 237 646ZM264 61Q278 40 310 35Q363 35 401 55T461 112T496 193T513 295Q515 333 515 349Q515 411 504 459Q481 598 373 641Q351 648 321 648Q304 648 292 643T277 635T264 621V61ZM461 628Q462 627 471 616T489 594T509 559T529 509T544 441T550 352Q550 165 479 75L468 59Q474 61 484 65T522 87T573 128T618 195T650 290Q654 322 654 354Q654 418 638 464T581 552Q559 576 529 595T480 621L461 628Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-44\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold E\",\n                \"source\": \"\\\\mathbb{E}\",\n                \"snippet\": \"\\\\mathbb{E}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD E.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-45\\\" d=\\\"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold F\",\n                \"keywords\": \"finite field\",\n                \"source\": \"\\\\mathbb{F}\",\n                \"snippet\": \"\\\\mathbb{F}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD F. Keywords: finite field</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-46\\\" d=\\\"M584 499Q569 490 566 490Q558 490 552 497T546 515Q546 535 533 559Q526 574 506 593T469 621Q415 648 326 648Q293 648 287 647T275 641Q264 630 263 617Q262 609 260 492V370L275 372Q323 376 350 392T393 441Q409 473 409 506Q409 529 427 529Q437 529 442 519Q444 511 444 362Q444 212 442 206Q436 197 426 197Q409 197 409 217Q409 265 375 299Q346 328 280 335H260V206Q260 70 262 63Q265 46 276 41T326 35Q362 35 366 28Q377 17 366 3L360 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666Q12 675 24 683H573Q576 678 584 670V499ZM137 341Q137 131 136 89T130 37Q129 36 129 35H182Q233 35 233 39Q226 54 225 92T224 346L226 623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM549 603V648H495L506 641Q531 621 533 619L549 603ZM409 317V395L400 386Q390 376 375 366L357 355L373 346Q394 331 397 328L409 317Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-46\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold G\",\n                \"source\": \"\\\\mathbb{G}\",\n                \"snippet\": \"\\\\mathbb{G}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD G.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-47\\\" d=\\\"M737 285Q749 277 749 268Q749 260 744 255T730 250Q695 250 677 217Q666 195 666 119Q666 52 664 50Q656 36 555 3Q483 -16 415 -19Q364 -19 348 -17Q226 -3 146 70T44 261Q39 283 39 341T44 421Q66 538 143 611T341 699Q344 699 364 700T395 701Q449 698 503 677T585 655Q603 655 611 662T620 678T625 694T639 702Q650 702 657 690V481L653 474Q640 467 628 472Q624 476 618 496T595 541Q562 587 507 625T390 663H381Q337 663 299 625Q213 547 213 337Q213 75 341 23Q357 19 397 19Q440 19 462 22T492 30T513 45V119Q513 184 506 203Q491 237 435 250Q421 250 415 257Q404 267 415 281L421 285H737ZM250 43Q250 45 243 55T225 87T203 139T185 224T177 343V361Q184 533 250 625Q264 643 261 643Q238 635 214 620T161 579T110 510T79 414Q74 384 74 341T79 268Q106 117 230 52L250 43ZM621 565V625Q617 623 613 623Q603 619 590 619H575L588 605Q608 583 610 579L621 565ZM655 250H517L524 241Q548 213 548 149V114V39Q549 39 562 44T592 55T615 63L630 70V134Q632 190 634 204T648 237Q655 245 655 250Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-47\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold H\",\n                \"keywords\": \"quaternions\",\n                \"source\": \"\\\\mathbb{H}\",\n                \"snippet\": \"\\\\mathbb{H}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD H. Keywords: quaternions</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-48\\\" d=\\\"M14 666Q14 675 26 683H344L351 679Q361 665 351 655Q344 648 317 648Q287 645 282 641Q270 637 269 623T266 497V370H511V497Q511 519 510 553Q509 615 507 626T496 641H495Q489 645 459 648Q420 648 420 665Q420 672 426 679L433 683H751Q762 676 762 666Q762 648 724 648Q684 645 677 632Q675 626 675 341Q675 57 677 52Q684 38 724 35Q762 35 762 16Q762 6 751 -1H433L426 3Q420 10 420 17Q420 35 459 35Q501 38 506 52Q511 64 511 190V323H266V190Q266 60 271 52Q276 38 317 35Q342 35 351 28Q360 17 351 3L344 -1H26Q14 5 14 16Q14 35 53 35Q94 38 99 52Q104 60 104 341T99 632Q93 645 53 648Q14 648 14 666ZM233 341V553Q233 635 239 648H131Q134 641 135 638T137 603T139 517T139 341Q139 131 138 89T132 37Q131 36 131 35H239Q233 47 233 129V341ZM639 341V489Q639 548 639 576T640 620T642 639T646 648H537L542 639Q546 625 546 341Q546 130 545 88T538 37Q537 36 537 35H646Q643 41 643 42T641 55T639 84T639 140V341Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold I\",\n                \"source\": \"\\\\mathbb{I}\",\n                \"snippet\": \"\\\\mathbb{I}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.905ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 389.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD I.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-49\\\" d=\\\"M20 666Q20 676 31 683H358Q369 676 369 666Q369 648 331 648Q288 645 282 632Q278 626 278 341Q278 57 282 50Q286 42 295 40T331 35Q369 35 369 16Q369 6 358 -1H31Q20 4 20 16Q20 35 58 35Q84 37 93 39T107 50Q113 60 113 341Q113 623 107 632Q101 645 58 648Q20 648 20 666ZM249 35Q246 40 246 41T244 54T242 83T242 139V341Q242 632 244 639L249 648H140Q146 634 147 596T149 341Q149 124 148 86T140 35H249Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold J\",\n                \"source\": \"\\\\mathbb{J}\",\n                \"snippet\": \"\\\\mathbb{J}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.162ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 500.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD J.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4A\\\" d=\\\"M79 103Q108 103 129 83T151 38Q151 9 130 -15Q116 -34 130 -37Q133 -39 157 -39Q208 -39 219 -8L226 3V305Q226 612 224 621Q220 636 211 641T166 647Q137 647 128 654Q119 665 128 679L135 683H466Q478 677 478 666Q478 647 439 647Q399 644 393 632Q388 620 388 347Q386 69 384 59Q364 -6 316 -39T184 -77H172Q102 -77 56 -48T6 30Q6 62 26 82T79 103ZM353 354Q353 556 354 596T361 645Q362 646 362 647H253Q257 639 258 628T261 547T262 312V-4L255 -17Q248 -29 250 -29Q253 -29 258 -28T277 -20T302 -5T327 22T348 65Q350 74 353 354ZM115 36Q115 47 105 57T79 67Q73 67 67 66T52 56T44 34Q44 9 62 -8Q66 -11 71 -15T81 -22T86 -24L90 -13Q100 3 102 5Q115 22 115 36Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold K\",\n                \"keywords\": \"field real complex numbers\",\n                \"source\": \"\\\\mathbb{K}\",\n                \"snippet\": \"\\\\mathbb{K}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD K. Keywords: field real complex numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4B\\\" d=\\\"M22 666Q22 676 33 683H351L358 679Q368 665 358 655Q351 648 324 648Q288 645 280 637Q275 631 274 605T273 477L275 343L382 446Q473 530 492 553T512 599Q512 617 502 631T475 648Q455 651 455 666Q455 677 465 680T510 683H593H720Q732 676 732 666Q732 659 727 654T713 648Q670 648 589 581Q567 562 490 489T413 415Q413 413 554 245T711 61Q737 35 751 35Q758 35 763 29T768 15Q768 6 758 -1H624Q491 -1 486 3Q480 10 480 17Q480 25 487 30T506 35Q518 36 520 38T520 48L400 195L302 310L286 297L273 283V170Q275 65 277 57Q280 41 300 38Q302 37 324 35Q349 35 358 28Q367 17 358 3L351 -1H33Q22 4 22 16Q22 35 60 35Q101 38 106 52Q111 60 111 341T106 632Q100 645 60 648Q22 648 22 666ZM240 341V553Q240 635 246 648H138Q141 641 142 638T144 603T146 517T146 341Q146 131 145 89T139 37Q138 36 138 35H246Q240 47 240 129V341ZM595 632L615 648H535L542 637Q542 636 544 625T549 610V595L562 606Q565 608 577 618T595 632ZM524 226L386 388Q386 389 378 382T358 361Q330 338 330 333Q330 332 330 332L331 330L533 90Q558 55 558 41V35H684L671 50Q667 54 524 226Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold L\",\n                \"source\": \"\\\\mathbb{L}\",\n                \"snippet\": \"\\\\mathbb{L}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD L.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4C\\\" d=\\\"M12 666Q12 675 24 683H333L340 679Q350 665 340 655Q333 648 309 648Q287 646 279 643T266 630Q264 623 264 346Q264 68 266 57Q274 40 284 35H340Q413 37 460 55Q514 78 553 117T602 197Q605 221 622 221Q629 221 634 215T640 201Q638 194 625 105T611 12Q611 6 600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H237Q235 41 233 48L229 61L226 339Q226 621 229 628Q230 630 231 636T233 643V648H129Q132 641 133 638T135 603T137 517T137 341ZM580 48Q580 59 583 74T586 97Q586 98 585 97T579 92T571 86Q549 64 513 43L500 35H577L580 48Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold M\",\n                \"source\": \"\\\\mathbb{M}\",\n                \"snippet\": \"\\\\mathbb{M}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.194ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 944.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD M.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4D\\\" d=\\\"M18 666Q18 677 27 680T73 683H146Q261 683 266 679L465 215Q469 215 566 443Q663 676 668 681Q673 683 790 683H908L915 679Q924 664 915 655Q912 648 897 648Q851 639 835 606L833 346Q833 86 835 79Q838 69 849 58T873 41Q877 40 887 38T901 35Q926 35 926 16Q926 6 915 -1H604L597 3Q588 19 597 28Q600 35 615 35Q660 42 673 68L679 79V339Q679 409 679 443T679 520T679 580T677 597Q646 521 584 375T473 117T424 3Q416 -1 410 -1T401 1Q399 3 273 301L148 599L146 343Q146 86 148 79Q152 69 163 58T186 41Q190 40 200 38T215 35Q226 35 235 28Q244 17 235 3L228 -1H28Q17 4 17 17Q17 35 39 35Q84 42 97 68L104 79V639L88 641Q72 644 53 648Q34 648 26 651T18 666ZM457 166Q451 169 449 171T435 198T404 268T344 412L244 648H157L166 637Q169 633 293 346L413 66Q424 88 435 117L457 166ZM817 646Q817 648 766 648H715V72L708 57Q701 45 697 41L695 37Q695 35 757 35H819L813 46Q802 61 800 76Q797 105 797 346L799 612L804 626Q812 638 815 641L817 646ZM124 42Q119 42 119 38Q119 35 128 35Q132 35 132 36Q125 42 124 42Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold N\",\n                \"keywords\": \"natural numbers\",\n                \"source\": \"\\\\mathbb{N}\",\n                \"snippet\": \"\\\\mathbb{N}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD N. Keywords: natural numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4E\\\" d=\\\"M20 664Q20 666 31 683H142Q256 683 258 681Q259 680 279 653T342 572T422 468L582 259V425Q582 451 582 490T583 541Q583 611 573 628T522 648Q500 648 493 654Q484 665 493 679L500 683H691Q702 676 702 666Q702 657 698 652Q688 648 680 648Q633 648 627 612Q624 601 624 294V-8Q616 -20 607 -20Q601 -20 596 -15Q593 -13 371 270L156 548L153 319Q153 284 153 234T152 167Q152 103 156 78T172 44T213 34Q236 34 242 28Q253 17 242 3L236 -1H36Q24 6 24 16Q24 34 56 34Q58 35 69 36T86 40T100 50T109 72Q111 83 111 345V603L96 619Q72 643 44 648Q20 648 20 664ZM413 419L240 648H120L136 628Q137 626 361 341T587 54L589 68Q589 78 589 121V192L413 419Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold O\",\n                \"source\": \"\\\\mathbb{O}\",\n                \"snippet\": \"\\\\mathbb{O}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 778.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD O.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-4F\\\" d=\\\"M131 601Q180 652 249 676T387 701Q485 701 562 661Q628 629 671 575T731 448Q742 410 742 341T731 234Q707 140 646 81Q549 -19 389 -19Q228 -19 131 81Q57 155 37 274Q34 292 34 341Q34 392 37 410Q58 528 131 601ZM568 341Q568 613 437 659Q406 664 395 665Q329 665 286 625Q232 571 213 439Q210 408 210 341Q210 275 213 245Q232 111 286 57Q309 37 342 23Q357 19 389 19Q420 19 437 23Q469 38 491 57Q568 132 568 341ZM174 341Q174 403 177 441T197 535T249 639Q246 639 224 627T193 608Q189 606 183 601T169 589T155 577Q69 488 69 344Q69 133 231 52Q244 45 246 45Q248 45 246 48Q231 69 222 85T200 141T177 239Q174 269 174 341ZM708 341Q708 415 684 475T635 563T582 610Q578 612 565 619T546 630Q533 637 531 637Q530 637 530 636V635L531 634Q562 591 577 543Q602 471 602 341V316Q602 264 599 230T580 144T531 48L530 47V46Q530 45 531 45Q533 45 547 52T583 75T622 105Q708 195 708 341Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold P\",\n                \"source\": \"\\\\mathbb{P}\",\n                \"snippet\": \"\\\\mathbb{P}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD P.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-50\\\" d=\\\"M16 666Q16 675 28 683H195Q334 683 370 682T437 672Q511 657 554 611T597 495Q597 343 404 309Q402 308 401 308Q381 303 319 303H261V181Q261 157 262 120Q262 60 267 50T304 36Q310 35 313 35Q352 35 352 17Q352 10 346 3L339 -1H28Q16 5 16 16Q16 35 53 35Q68 36 75 37T87 42T95 52Q98 61 98 341T95 630Q91 640 83 643T53 648Q16 648 16 666ZM235 35Q228 46 227 84Q226 129 226 337V621L230 635L237 648H128Q128 647 133 632Q136 620 136 341Q136 64 133 50L128 35H235ZM301 341H313Q339 341 354 344T389 362T417 410T426 498Q426 586 401 616T322 647Q301 647 293 643Q271 637 264 621Q261 617 261 479V341H301ZM429 350Q431 350 443 353T476 367T515 391T548 432T562 490Q562 550 524 592Q507 607 484 619Q481 621 448 635L433 639L439 621Q462 578 462 506Q462 448 454 413T437 366T428 350H429Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold Q\",\n                \"keywords\": \"rational numbers\",\n                \"source\": \"\\\\mathbb{Q}\",\n                \"snippet\": \"\\\\mathbb{Q}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.808ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 778.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD Q. Keywords: rational numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-51\\\" d=\\\"M480 -10Q480 -13 486 -24T507 -50T541 -80T588 -104T648 -114Q666 -114 688 -110T714 -106Q724 -106 728 -114T729 -130Q723 -145 663 -163T548 -181Q503 -181 463 -169T395 -139T343 -97T307 -56T284 -19L280 -3L262 1Q188 24 131 81Q57 155 37 275Q34 292 34 342T37 410Q58 528 131 601Q179 652 248 676T388 701Q485 701 562 661Q698 595 731 448Q742 410 742 341T731 235Q707 141 646 81Q616 50 575 27T493 -5L480 -10ZM568 342Q568 613 437 659L395 666Q329 666 286 626Q232 570 213 439Q210 408 210 342T213 246Q231 113 286 57Q309 37 342 23Q357 19 389 19Q420 19 437 23Q469 38 491 57Q568 134 568 342ZM174 341V354Q174 393 175 419T183 484T205 561T246 635L249 639Q246 639 224 627T193 608Q189 606 183 601T169 589T155 577Q69 491 69 344Q69 133 231 52Q247 42 247 46Q247 46 246 48Q231 69 222 85T200 141T177 239Q174 269 174 341ZM708 341Q708 410 689 467T640 556T588 606T546 630Q532 638 531 638Q530 638 531 635Q563 590 577 543Q602 472 602 341V316Q602 264 599 230T580 144T531 48Q529 44 532 45T546 52Q575 68 596 84T642 128T683 200T706 299Q708 327 708 341ZM391 -17H333Q329 -15 326 -15Q324 -15 324 -17Q324 -21 362 -68Q424 -130 506 -143Q518 -144 544 -144Q569 -144 577 -143L589 -141L575 -139Q544 -127 509 -101T453 -37L442 -19L391 -17Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-51\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold R\",\n                \"keywords\": \"real numbers\",\n                \"source\": \"\\\\mathbb{R}\",\n                \"snippet\": \"\\\\mathbb{R}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD R. Keywords: real numbers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-52\\\" d=\\\"M17 665Q17 672 28 683H221Q415 681 439 677Q461 673 481 667T516 654T544 639T566 623T584 607T597 592T607 578T614 565T618 554L621 548Q626 530 626 497Q626 447 613 419Q578 348 473 326L455 321Q462 310 473 292T517 226T578 141T637 72T686 35Q705 30 705 16Q705 7 693 -1H510Q503 6 404 159L306 310H268V183Q270 67 271 59Q274 42 291 38Q295 37 319 35Q344 35 353 28Q362 17 353 3L346 -1H28Q16 5 16 16Q16 35 55 35Q96 38 101 52Q106 60 106 341T101 632Q95 645 55 648Q17 648 17 665ZM241 35Q238 42 237 45T235 78T233 163T233 337V621L237 635L244 648H133Q136 641 137 638T139 603T141 517T141 341Q141 131 140 89T134 37Q133 36 133 35H241ZM457 496Q457 540 449 570T425 615T400 634T377 643Q374 643 339 648Q300 648 281 635Q271 628 270 610T268 481V346H284Q327 346 375 352Q421 364 439 392T457 496ZM492 537T492 496T488 427T478 389T469 371T464 361Q464 360 465 360Q469 360 497 370Q593 400 593 495Q593 592 477 630L457 637L461 626Q474 611 488 561Q492 537 492 496ZM464 243Q411 317 410 317Q404 317 401 315Q384 315 370 312H346L526 35H619L606 50Q553 109 464 243Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold S\",\n                \"source\": \"\\\\mathbb{S}\",\n                \"snippet\": \"\\\\mathbb{S}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 556.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD S.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-53\\\" d=\\\"M54 238Q72 238 72 212Q72 174 106 121Q113 110 132 90T166 59Q221 23 264 23Q315 23 348 41Q368 50 384 79Q393 102 393 129Q393 181 356 219T221 299Q120 343 74 390T28 501Q28 561 55 610Q98 682 212 699Q214 699 231 700T261 701Q309 698 340 687T408 675Q431 678 445 690T465 702Q474 702 481 690V497L477 490Q464 481 450 490Q446 500 446 501Q446 546 386 606T260 666Q215 666 182 639T148 565Q148 528 186 496T319 428Q352 414 370 405T418 379T468 338T506 284Q528 239 528 191Q528 102 456 46T266 -10Q211 -10 176 2T110 15Q86 9 73 -1T53 -12Q44 -12 37 -1V112V182Q37 214 40 226T54 238ZM446 619Q446 648 444 648Q439 646 435 644Q425 644 415 639H404L417 624Q435 606 439 601L446 592V619ZM124 619L128 635Q126 635 108 617Q64 576 64 502Q64 489 65 479T76 449T102 414T150 376T228 335Q335 291 381 245T427 128Q427 94 419 75L415 61Q421 61 448 88Q490 127 490 190Q490 233 475 264Q456 299 430 321Q402 349 369 367T287 404T204 441Q138 481 119 526Q113 544 113 565Q113 596 124 619ZM75 43Q76 43 90 46T110 50H119L106 64L74 101Q72 101 72 72T75 43Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-53\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold T\",\n                \"source\": \"\\\\mathbb{T}\",\n                \"snippet\": \"\\\\mathbb{T}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD T.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-54\\\" d=\\\"M33 672Q36 680 44 683H624Q632 680 635 672V490L631 483Q621 479 617 479Q611 479 606 485T600 499Q600 525 584 552Q577 567 558 588T524 617Q479 642 426 646L415 648V355Q415 62 422 52Q425 42 434 40T473 35Q500 35 509 28Q518 17 509 3L502 -1H166L160 3Q149 17 160 28Q167 35 195 35Q224 37 234 39T249 52Q253 66 253 355V648L242 646Q192 642 144 617Q129 609 110 588T84 552Q69 527 69 499Q69 490 64 484T50 478Q39 478 33 490V672ZM113 639L126 648H69V597L84 612Q93 623 113 639ZM389 35Q382 46 381 86Q380 134 380 350V648H289V350Q289 199 288 131T286 53T280 35H389ZM600 597V648H542L555 639Q575 623 584 612L600 597Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold U\",\n                \"source\": \"\\\\mathbb{U}\",\n                \"snippet\": \"\\\\mathbb{U}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD U.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-55\\\" d=\\\"M16 666Q16 677 28 683H341L348 679Q359 665 348 654Q342 648 315 648Q270 644 266 632Q262 627 262 598T261 399Q261 372 261 325T260 260Q260 149 274 99T339 30Q355 25 393 25Q430 25 457 33T494 49T519 72Q562 115 575 205Q576 219 576 379Q576 538 575 550Q568 597 550 622T506 648Q498 648 493 654T487 667T499 683H697Q709 675 709 667T704 654T690 648Q653 648 633 597Q624 573 622 546T619 377Q617 193 613 174Q596 95 544 41Q477 -19 355 -19H344Q275 -16 226 5T153 57T120 110T106 154Q101 172 99 399Q99 618 95 632Q88 644 53 648Q16 648 16 666ZM228 639L233 648H128Q128 647 133 632Q135 621 135 412Q135 197 137 185Q148 115 181 79Q209 51 235 41Q242 36 258 31T277 25Q276 27 268 38T254 59T241 92T228 145Q226 161 226 399Q226 632 228 639ZM604 621Q606 626 619 648H577L586 634Q587 632 591 625T595 614L597 608L604 621Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-55\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold V\",\n                \"source\": \"\\\\mathbb{V}\",\n                \"snippet\": \"\\\\mathbb{V}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD V.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-56\\\" d=\\\"M316 683Q327 676 327 666Q327 648 302 648Q272 642 258 628Q249 621 249 608Q252 589 263 556T289 485T322 406T357 325T388 256T411 205L420 185Q423 185 473 317Q547 497 547 590Q547 621 541 632T516 648Q501 648 498 654Q488 664 498 679L504 683H607H660Q695 683 707 680T719 667Q719 660 714 654T700 648Q678 648 658 628L642 614L513 301Q484 231 449 148T397 25T380 -15Q373 -20 368 -20Q361 -20 358 -15Q354 -13 287 135T149 438T67 610Q45 648 18 648Q11 648 6 653T0 666Q0 677 9 680T59 683H164H316ZM216 614Q216 620 216 622T216 628T216 633T217 635T218 638T219 640T221 644T224 648H84L96 632Q118 592 236 330L367 43L387 88L404 132L380 185Q250 468 222 568Q216 590 216 614ZM576 645Q584 628 584 597L587 568L598 597Q609 624 618 637L624 648H600Q576 648 576 645Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-56\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold W\",\n                \"source\": \"\\\\mathbb{W}\",\n                \"snippet\": \"\\\\mathbb{W}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.324ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1000.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD W.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-57\\\" d=\\\"M785 664Q785 670 795 683H982Q994 675 994 665Q994 650 975 648Q953 643 939 619Q931 593 823 292T710 -15Q706 -19 699 -19T688 -15Q682 -6 639 107T555 328T513 437Q513 438 500 409T462 325T413 212Q315 -14 310 -17Q308 -19 302 -19T288 -15L57 619Q45 643 24 648Q5 650 5 665Q5 677 17 683H146H200Q256 683 270 681T285 666Q285 659 280 654T268 648Q253 648 239 634Q230 630 230 619Q230 598 264 481L362 192Q363 193 428 341T493 492Q493 496 473 546T446 608Q426 648 399 648Q392 648 387 653T382 667Q382 678 393 683H679Q690 670 690 665Q690 662 685 655T673 648Q653 648 633 632L622 625V610Q626 576 657 479T719 300T751 218Q754 218 779 294Q847 492 847 581Q847 648 802 648Q796 648 791 652T785 664ZM194 623Q194 630 199 648H82L90 632Q99 616 199 332L302 50Q303 50 322 94T342 141Q342 142 305 245T231 467T194 623ZM585 620Q585 634 593 648H530Q466 648 466 645Q479 632 595 323L699 54Q701 56 718 103T735 154L702 245Q585 562 585 620ZM884 572L890 587Q896 602 903 620T915 645Q915 648 893 648H868L875 634Q883 598 883 576Q883 572 884 572Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-57\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold X\",\n                \"source\": \"\\\\mathbb{X}\",\n                \"snippet\": \"\\\\mathbb{X}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD X.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-58\\\" d=\\\"M22 666Q22 677 31 680T80 683H184H335Q346 675 346 667Q346 660 341 655Q335 648 315 648Q280 644 273 637Q273 630 300 583T356 492T386 448Q430 504 450 535T474 577T478 601Q478 620 469 634T444 648Q428 648 428 666Q428 678 436 680T488 683H559H630Q673 683 681 681T690 666Q690 648 673 648Q652 648 619 637Q571 615 517 550Q490 517 450 464T410 408Q415 399 501 273T617 106Q648 61 661 48T688 35Q705 35 705 16Q705 5 695 -1H539Q384 -1 379 3Q373 10 373 17Q373 27 380 31T408 35Q459 40 459 49Q459 59 418 129T335 259Q334 260 332 260Q328 260 273 197Q210 127 208 117Q199 104 199 82Q199 57 213 46T239 35Q247 35 252 29T257 15Q257 10 256 7T253 3T248 0L246 -1H28Q16 7 16 15T21 29T35 35Q61 35 117 88Q289 279 304 297Q307 303 255 377Q117 586 79 626Q60 648 39 648Q32 648 27 653T22 666ZM237 639V648H173Q113 647 113 646Q113 642 137 612Q186 546 302 373T453 139Q497 63 497 43Q497 39 495 35H559Q622 35 622 37Q622 38 583 94T486 233T373 399T277 552T237 639ZM553 637L566 648H504L508 637Q510 630 515 615V603L528 615Q529 616 539 625T553 637ZM170 46Q169 49 167 58T164 70V83L137 59L113 35H175Q175 38 170 46Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold Y\",\n                \"source\": \"\\\\mathbb{Y}\",\n                \"snippet\": \"\\\\mathbb{Y}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD Y.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-59\\\" d=\\\"M16 659T16 667T28 683H295Q306 676 306 666Q306 648 284 648Q258 648 255 641Q255 634 265 615T339 479Q418 339 421 339L455 394Q489 448 523 502L557 557Q560 566 560 582Q560 637 504 648Q489 648 486 655Q475 664 486 679L493 683H693Q704 675 704 667Q704 650 684 648Q672 645 653 623Q633 604 614 576T517 426L439 301V183Q442 62 444 59Q449 35 504 35Q521 35 528 30Q538 16 528 3L521 -1H195L188 3Q178 16 188 30Q195 35 213 35Q266 35 273 59Q274 61 277 163V261L75 621Q64 638 58 643T37 648Q28 648 22 653ZM219 637V648H101Q110 634 215 446L313 270V166Q310 59 306 48L301 35H415L410 48Q404 65 404 175V290L317 443Q230 601 226 612Q219 625 219 637ZM608 630L624 648H575Q584 632 588 623L595 610L608 630Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-59\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Blackboard Bold Z\",\n                \"keywords\": \"integers\",\n                \"source\": \"\\\\mathbb{Z}\",\n                \"snippet\": \"\\\\mathbb{Z}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BLACKBOARD BOLD Z. Keywords: integers</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJAMS-5A\\\" d=\\\"M39 -1Q29 9 29 12Q29 23 60 77T219 337L410 648H364Q261 648 210 628Q168 612 142 588T109 545T97 509T88 490Q85 489 80 489Q72 489 61 503L70 588Q72 607 75 628T79 662T81 675Q84 677 88 681Q90 683 341 683H592Q604 673 604 666Q604 662 412 348L221 37Q221 35 301 35Q406 35 446 48Q504 68 543 111T597 212Q602 239 617 239Q624 239 629 234T635 223Q635 215 621 113T604 8L597 1Q595 -1 317 -1H39ZM148 637L166 648H112V632Q111 629 110 622T108 612Q108 608 110 608T116 612T129 623T148 637ZM552 646Q552 648 504 648Q452 648 450 643Q448 639 266 343T77 37Q77 35 128 35H179L366 339L552 646ZM572 35Q581 89 581 97L561 77Q542 59 526 48L508 37L539 35H572Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJAMS-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur A\",\n                \"source\": \"\\\\mathfrak{A}\",\n                \"snippet\": \"\\\\mathfrak{A}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.669ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 718.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR A.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-41\\\" d=\\\"M22 505Q22 563 94 624T271 685H280Q416 685 443 560Q447 535 447 504Q444 414 405 330L399 319L229 155Q233 154 241 153T253 150T265 145T281 135T301 119T328 93L357 64L402 92Q438 116 473 137L500 154V339Q500 528 495 593V601L559 649Q621 696 624 696L638 686L629 677Q599 650 593 638Q582 614 581 504Q580 490 580 443Q580 314 584 238Q584 235 584 224T584 210T585 199T586 187T588 176T591 164T595 152T601 137T609 121Q630 77 640 77Q661 77 703 101Q704 95 706 90L707 86V84L636 29Q618 15 601 2T574 -19T564 -25L500 121Q499 121 399 48L299 -26Q298 -26 291 -15T272 11T245 42T209 69T165 80Q120 80 58 43L48 37L40 42L32 48L122 117Q196 173 241 211Q319 280 343 327T368 447Q368 535 317 582Q264 633 199 633Q155 633 122 605T86 542Q86 518 133 467T181 387Q181 348 140 309Q113 281 73 260L64 255L50 265L59 273Q112 307 112 345Q112 363 90 387T45 441T22 505Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur B\",\n                \"source\": \"\\\\mathfrak{B}\",\n                \"snippet\": \"\\\\mathfrak{B}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.054ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 884.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR B.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-42\\\" d=\\\"M48 506Q48 568 120 629T268 691Q362 691 425 594L431 585L441 594Q478 628 528 657T629 686Q665 686 687 670Q703 658 718 584T753 506Q756 505 763 505Q778 505 804 512L815 516L820 496Q820 494 808 490T774 476T732 454Q720 445 708 437L675 415L640 394L625 383Q626 382 635 382Q652 382 670 379T712 364T754 336T784 289T797 220Q797 172 776 122Q769 106 766 102T745 84Q654 11 619 -8T538 -27Q483 -27 387 10T249 47Q218 47 186 34T133 8T112 -5T104 7T97 21L196 82Q259 120 284 140Q333 181 351 214Q368 251 368 353Q368 588 228 620Q222 621 205 621Q160 621 139 596Q117 569 117 548Q117 526 162 470T208 387Q208 352 179 320T104 264Q88 256 86 256Q83 256 70 266L82 274Q134 309 134 343Q134 352 130 359Q118 377 100 401T72 439T56 470T48 506ZM453 528Q457 496 457 419L458 357L488 367Q554 390 622 425Q673 449 673 453L671 454Q669 456 665 460T657 473T648 498T639 541Q629 597 616 613Q599 633 567 633Q534 633 493 599Q471 577 457 540L453 528ZM713 176Q713 252 661 295T528 339Q512 339 494 336T466 330T455 325Q454 325 452 311T444 270T425 217L420 207L304 118L319 116Q381 111 475 74T602 37Q655 37 684 79T713 176Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur C\",\n                \"source\": \"\\\\mathfrak{C}\",\n                \"snippet\": \"\\\\mathfrak{C}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.425ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 613.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR C.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-43\\\" d=\\\"M299 585Q333 609 384 634T470 672L505 685Q506 685 513 662T531 613T548 580Q553 576 563 576Q575 576 605 585Q607 585 607 575V564Q537 532 496 527Q475 542 456 567T427 610T415 627Q410 627 398 618T382 603Q373 588 373 558T386 475T400 399Q400 337 366 303Q343 281 309 266T254 247T226 242L214 257Q214 258 223 260T251 272T287 299Q304 316 304 360Q304 396 289 451T274 532Q274 553 277 561V564H269Q205 558 172 501T139 358Q139 207 226 127T443 46Q448 46 457 46T470 47L485 48L601 106Q602 106 602 93V80Q551 48 517 25T474 -4T460 -13T443 -19Q409 -24 367 -24Q360 -24 351 -24T335 -23T326 -22Q190 -2 125 87T59 319V328Q62 412 96 487L101 500L118 512Q189 563 245 591L266 601L299 585Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-43\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur D\",\n                \"source\": \"\\\\mathfrak{D}\",\n                \"snippet\": \"\\\\mathfrak{D}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.934ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 832.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR D.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-44\\\" d=\\\"M346 611Q300 611 261 604T194 584T144 555T107 519T82 481T65 443T55 410T50 383T48 367L37 372L27 378V393Q33 524 115 603Q160 648 230 666T365 685Q423 685 434 684Q745 653 745 405Q745 281 694 151L687 133L657 103Q524 -27 470 -27Q456 -27 331 18T157 64Q122 64 84 28Q67 9 57 -6L50 -16L43 -8L35 0Q35 3 46 22T83 74T141 133H154Q208 136 253 161T299 230Q299 259 277 290T232 348T209 392Q209 434 254 479T358 556L368 561L382 550Q382 549 381 548T377 545T371 541Q353 527 326 496T298 444Q298 430 343 365T389 277Q389 240 353 202T267 136L252 127Q304 118 400 83T513 47Q548 47 582 79T635 145Q671 208 671 323Q671 390 651 441T599 524T523 576T436 603T346 611Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-44\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur E\",\n                \"source\": \"\\\\mathfrak{E}\",\n                \"snippet\": \"\\\\mathfrak{E}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.541ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 663.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR E.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-45\\\" d=\\\"M301 564Q240 564 203 507T165 361Q165 280 190 218T260 119T358 64T474 46Q491 46 499 47L511 48L628 106V80L499 -5Q498 -6 497 -7T494 -10T490 -12T485 -15T478 -17T468 -19T456 -21T439 -22T418 -23T392 -24Q252 -20 169 67T86 315Q86 409 124 491Q128 500 139 508Q211 560 272 591L293 601L325 585L338 594Q374 617 422 639T502 674L532 685Q533 685 540 663T557 614T574 581Q580 575 591 575Q600 575 616 580T634 585V564L623 559Q572 535 532 529L522 527Q491 547 442 627Q442 628 440 627T435 624T428 620Q410 610 405 597T399 559V553Q399 534 409 487Q419 431 427 369L476 400Q526 431 526 432Q531 426 537 420Q565 382 602 359Q611 353 610 352Q609 351 575 332T537 312Q536 312 505 335T463 358Q451 358 439 352T425 337Q394 243 263 223L251 221L243 229L235 236L245 239Q274 247 303 266Q320 277 325 290T330 336Q330 394 315 451T300 531Q300 549 303 561Q303 564 301 564Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur F\",\n                \"source\": \"\\\\mathfrak{F}\",\n                \"snippet\": \"\\\\mathfrak{F}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.423ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 612.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR F.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-46\\\" d=\\\"M198 617Q177 617 159 609T128 587T106 557T91 524T82 494T76 472L75 463Q74 463 67 468T59 474Q59 488 63 510T80 564T114 622T170 667T253 686Q272 686 295 680Q330 672 384 645T468 598Q498 580 524 580Q549 580 595 626L612 643V616L599 599Q522 500 482 500Q466 500 435 514L420 521Q388 516 349 486T309 415Q309 396 323 366T352 315T367 294Q367 293 375 301T398 322T429 352L490 410Q537 355 542 332Q542 330 531 315T510 286L499 273Q479 313 449 313Q437 313 419 303T390 282L378 271L394 250Q444 183 470 129Q484 96 484 71Q484 -19 402 -86T223 -153H220Q175 -153 137 -120Q103 -89 103 -8Q103 12 106 40T109 96Q109 132 103 146T72 161Q46 161 16 143L14 154L11 165Q88 219 143 219Q163 219 177 197T192 127Q192 102 186 65T179 4Q179 -60 210 -88T272 -117Q319 -117 362 -75T405 33Q405 72 363 139T278 271T235 368Q235 385 243 404T264 439T292 472T324 500T353 522T374 538L382 543Q382 544 351 562T274 598T198 617Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-46\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur G\",\n                \"source\": \"\\\\mathfrak{G}\",\n                \"snippet\": \"\\\\mathfrak{G}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.824ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 785.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR G.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-47\\\" d=\\\"M373 560Q373 543 378 509T388 448T394 421Q396 421 416 433T474 474T548 537L538 543Q481 570 452 628L487 659Q521 690 522 690L526 684Q529 677 535 667T551 646T575 625T607 608Q617 606 621 606Q644 606 660 622L664 600L497 455Q495 453 527 453H546Q628 453 665 407L666 406Q710 357 710 297Q710 196 631 109L621 98L577 69Q471 -7 452 -15Q413 -26 370 -26Q239 -26 155 59Q66 148 66 319Q66 442 113 505L191 552Q269 600 270 600H271Q273 600 280 596T293 589T299 586Q300 586 357 623Q413 659 415 659L426 649Q373 604 373 560ZM219 228Q305 262 305 329V343Q305 384 294 434T282 519Q282 562 287 567Q287 569 286 569Q222 556 191 520Q144 464 144 362Q144 213 228 128T420 42Q514 42 568 103T622 255V260Q622 320 578 357Q526 400 453 400Q434 400 410 396L399 394L400 378V372Q400 330 388 301T348 254T305 232T252 217Q245 215 242 214L234 213L226 220L219 228Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-47\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur H\",\n                \"source\": \"\\\\mathfrak{H}\",\n                \"snippet\": \"\\\\mathfrak{H}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.673ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 720.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR H.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-48\\\" d=\\\"M11 -16L1 0Q7 6 25 27T57 62T91 88T128 101Q159 99 195 66L203 59L211 67Q239 95 239 133Q239 158 210 213T152 330T123 430Q123 477 173 536T269 630T320 666Q376 610 440 606H443Q457 606 466 611T519 647L542 664Q543 664 543 654V643L522 622Q434 537 403 537Q388 537 366 543T329 555T293 570T270 580L261 585L253 574Q206 517 206 475Q206 452 218 416T242 356L255 331Q256 331 270 345T324 391T421 459L437 468H453Q545 463 608 421L618 415L623 392Q644 307 644 233Q644 97 612 9Q604 -10 601 -15T581 -35Q505 -104 467 -124Q446 -133 431 -133Q414 -132 399 -126T376 -115T368 -107Q368 -106 392 -75L415 -43Q432 -67 444 -73T472 -79H474Q479 -79 484 -78T501 -69T521 -50T538 -13T551 46Q558 97 558 180Q558 232 557 245Q553 277 547 300T528 349T488 389T424 404Q344 404 276 295Q272 288 273 285Q300 216 300 168Q300 161 300 156T298 145T297 137T293 129T289 123T283 116T277 107Q212 23 178 -13L166 -26L149 -9Q108 32 81 32Q63 32 21 -7L11 -16Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur I\",\n                \"source\": \"\\\\mathfrak{I}\",\n                \"snippet\": \"\\\\mathfrak{I}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.288ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 554.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR I.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-49\\\" d=\\\"M190 601Q161 601 137 587T97 553T71 512T55 477T48 463Q44 465 39 468L30 473L35 488Q73 594 106 636T199 685Q200 686 211 686Q250 686 326 652T417 617Q435 617 455 626T497 652T522 670Q532 660 532 654Q469 591 390 550L378 543L343 556Q223 601 190 601ZM378 208Q378 249 369 318T360 424Q360 430 360 439T361 451L362 462Q416 526 482 571L495 580L503 577L511 575L499 562Q442 502 442 465Q442 436 452 368T462 246Q462 169 442 128T385 56Q292 -26 195 -26Q150 -26 104 14L96 21L43 -16Q43 -15 43 -14T41 -10T38 0L48 13Q76 50 123 97L150 125Q154 131 159 131Q166 131 171 116T182 81T193 53Q199 43 216 33T261 22Q307 22 344 68Q378 113 378 208Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur J\",\n                \"source\": \"\\\\mathfrak{J}\",\n                \"snippet\": \"\\\\mathfrak{J}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.305ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex; margin-left: -0.022ex;\\\" viewBox=\\\"-9.5 -791.3 562 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR J.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4A\\\" d=\\\"M194 601Q175 601 155 590T121 564T95 533T76 506L69 495Q55 503 55 507Q55 509 60 521Q87 586 132 636T222 686Q251 686 289 660T363 607T422 580Q442 580 466 588T506 604L522 612V591L487 574Q371 517 359 517H357Q332 522 280 561T194 601ZM383 39Q383 96 356 203T329 361Q329 364 329 370T330 378L331 388L339 399Q362 429 394 462T446 513T469 531Q470 531 477 527T484 521L474 509Q411 434 411 379Q411 341 434 223T458 82Q458 1 390 -69T239 -139Q191 -139 162 -123T123 -83T108 -30T101 23T88 64T52 80Q27 80 -4 64L-10 80Q-5 85 13 98T63 128T118 144Q149 144 163 129T179 93T182 38T187 -19Q199 -96 278 -96Q294 -96 309 -91T343 -73T372 -31T383 39Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur K\",\n                \"source\": \"\\\\mathfrak{K}\",\n                \"snippet\": \"\\\\mathfrak{K}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.585ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 682.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR K.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4B\\\" d=\\\"M154 37Q219 41 219 142Q219 203 190 302T160 434Q160 445 172 472T209 534T269 602T354 657T460 680H472Q576 680 618 617V599Q618 578 615 555T608 517T602 501Q596 495 587 495Q586 495 586 499Q586 500 586 505T585 513Q567 628 415 628Q384 628 356 621T302 596T260 546T244 466Q244 416 258 377L261 367L276 382Q294 401 317 422T386 471T468 500Q500 500 518 477T544 422T554 386Q555 382 560 376T576 364T601 357Q612 357 623 361Q623 360 621 351T617 340L541 305L465 272Q469 271 476 270T488 266T502 260L512 255L519 242Q533 211 546 157T564 93Q584 53 617 53Q649 53 682 74V54L675 46Q646 17 612 -5T554 -27Q546 -27 538 -23T517 -9T494 28T478 91Q465 172 448 200T378 228Q337 228 289 207L288 196Q288 160 284 138Q283 125 262 98Q185 1 112 -24L102 -27L91 -25Q47 -13 17 31Q17 33 49 69L80 106Q111 37 154 37ZM421 434Q411 436 405 436Q370 436 336 407T275 337L267 325L271 313Q288 257 288 234Q289 234 395 276T502 319Q501 320 499 323T493 330T485 345T475 371Q473 378 468 388T449 416T421 434Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur L\",\n                \"source\": \"\\\\mathfrak{L}\",\n                \"snippet\": \"\\\\mathfrak{L}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.548ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 666.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR L.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4C\\\" d=\\\"M251 231Q251 254 206 341T160 468Q160 529 238 605Q313 677 425 685L432 686Q440 686 445 686Q520 686 545 657T571 576Q571 548 568 517T564 480Q564 466 572 460T608 452H623V431L619 430Q618 430 611 428T591 423T566 417L516 404Q497 415 491 419T480 433T475 461Q475 470 477 498T480 546Q480 561 480 569T474 592T459 615T429 631T379 638Q322 638 283 606T239 526Q237 480 280 394Q319 310 320 268V250Q308 235 244 169L203 128H210Q215 128 256 112T357 80T466 64Q526 64 564 88T625 186L629 196Q643 187 644 186Q618 70 604 41Q577 -15 513 -24Q496 -26 476 -26Q418 -26 344 -3T211 45T133 69Q115 69 97 50T65 7T49 -20L45 -16Q41 -11 37 -6T33 0Q33 8 66 69T111 134Q251 156 251 231Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur M\",\n                \"source\": \"\\\\mathfrak{M}\",\n                \"snippet\": \"\\\\mathfrak{M}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.44ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1050.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR M.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4D\\\" d=\\\"M687 578Q690 586 719 612T794 665T877 692Q909 692 926 670T953 614T973 570Q983 561 1000 560Q1023 560 1048 569V553L1034 546Q1003 528 972 504T933 466Q905 403 905 264Q905 205 909 172T920 126T940 91Q951 74 959 74T997 87L1027 100V79L956 27Q940 15 922 2T894 -19L885 -26Q883 -26 854 27L825 80V192Q826 314 830 341Q831 345 833 356Q840 398 844 404Q871 444 920 489L917 491Q914 493 911 495T903 501T898 508Q893 516 877 562T852 616Q840 628 818 628Q751 628 702 541L697 532L700 515Q708 467 708 419Q706 348 690 276T662 169T643 126L634 116Q626 105 611 87T581 51L522 -22L514 -15Q470 21 452 21Q431 21 394 -16L384 5L386 9L426 60Q449 87 460 95T486 104Q487 104 491 104T497 103Q514 99 541 81L559 69Q595 96 606 169T618 350Q618 486 598 543T517 601Q484 601 458 570T432 523Q432 516 434 492T436 443Q436 250 369 133L363 122L280 50Q207 -16 192 -27L182 -18Q136 26 106 26Q83 26 62 9T37 -16L27 0L33 10Q41 22 54 39T94 81T143 106Q178 106 225 62L235 53Q283 82 307 117Q352 190 352 359Q352 408 345 451T320 534T267 597T183 621Q159 621 147 617T120 598Q97 574 96 556Q96 528 143 469T191 377T161 311T102 262T70 245Q69 245 59 252T49 260L56 264Q63 268 73 275T94 291T111 312T118 338Q118 355 95 384T50 446T27 506Q31 567 101 626T255 686Q297 686 330 671T382 632T409 595T421 572V571L430 580Q454 610 496 634T588 659H590Q655 659 683 585L687 578Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur N\",\n                \"source\": \"\\\\mathfrak{N}\",\n                \"snippet\": \"\\\\mathfrak{N}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.934ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 832.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR N.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4E\\\" d=\\\"M112 334Q112 356 70 410T27 497Q27 553 94 619T229 685Q230 685 236 685T246 686Q303 686 349 654Q373 636 392 607T419 558L426 538L454 576Q474 604 486 618T520 651T569 678T633 686Q668 684 687 673T713 651T730 609Q730 608 732 600T736 588T741 578T747 568T754 561T765 555T779 553Q789 553 817 562Q819 557 819 555V547L790 526Q743 492 730 479T712 447Q697 369 697 281Q697 166 726 108Q741 76 755 68Q759 66 767 66Q789 66 825 93V82Q825 71 822 70Q821 69 763 27T701 -18L692 -25L668 15Q662 25 650 45T635 70L627 85V107Q627 122 626 162T624 285Q624 381 632 398Q638 409 651 425T675 454T696 477T707 489H696Q683 490 679 492T669 507T653 551Q642 588 627 608T584 628Q572 628 560 625T538 616T519 602T502 586T486 568T473 549T463 532T454 517T448 504L445 497Q437 480 437 474Q437 472 439 461T444 421T446 348Q446 205 405 124Q396 105 392 100T368 78Q312 32 278 9T235 -18T214 -22Q191 -22 170 -10T139 12T129 25T160 66T192 105Q193 102 194 98T200 83T213 64T233 49T261 42Q303 42 339 90Q373 134 373 268Q373 397 339 493T235 618Q215 628 191 628Q155 628 126 604T97 548Q97 524 120 493T168 431T192 381Q192 346 164 318T86 260L70 250L54 266L63 272Q112 300 112 334Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur O\",\n                \"source\": \"\\\\mathfrak{O}\",\n                \"snippet\": \"\\\\mathfrak{O}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.922ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 827.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR O.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-4F\\\" d=\\\"M428 596Q412 596 386 595T350 593Q289 593 270 625Q267 632 267 640Q267 656 280 672T312 705T336 729H343Q351 729 351 728Q342 710 342 703Q342 683 382 676T493 662T604 643Q648 627 677 599T720 535T739 466T744 392Q744 317 732 260T696 166T659 116T621 83Q617 80 615 78Q485 -27 377 -27Q320 -25 272 -9T187 21T122 36H116Q65 36 29 -13L27 -15L12 0Q12 1 32 26T76 78T109 109Q145 123 166 150T187 207Q187 244 134 318T80 412Q80 454 112 498T176 566T213 590Q216 590 224 585L234 580L225 573Q216 566 207 557T188 536T172 511T165 484Q165 448 213 368T261 259Q261 241 252 219T228 179T200 146T176 122L167 112Q170 111 174 111Q188 110 233 91T339 55T453 37Q508 37 556 68T626 152Q655 219 655 328Q655 543 532 582Q484 596 428 596Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur P\",\n                \"keywords\": \"power set\",\n                \"source\": \"\\\\mathfrak{P}\",\n                \"snippet\": \"\\\\mathfrak{P}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.924ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 828.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR P. Keywords: power set</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-50\\\" d=\\\"M112 339Q112 354 91 380T49 438T28 497Q28 565 95 628T242 692Q261 692 277 689T307 682T331 670T351 655T367 637T379 619T388 600T395 582T401 565T405 550Q409 554 422 570T453 603T500 641Q573 692 637 692Q656 692 670 686T692 672T705 647T713 618T718 584Q720 568 721 562T728 546T742 534T768 530Q776 531 782 532T791 535T796 536Q799 536 804 521Q801 519 789 513T764 499T738 480Q697 447 680 414Q677 407 677 396Q677 370 713 312T750 210Q750 125 686 57T560 -11Q540 -11 475 13L410 37V31Q410 -9 412 -50T417 -118T420 -150Q419 -150 373 -184T326 -218L305 -208Q305 -207 307 -196T314 -165T322 -116T328 -46T331 43V63L318 66Q270 80 250 80Q233 80 213 70Q183 57 138 -3L128 -16L118 5L125 20Q193 154 282 154Q309 154 331 146V287Q331 444 327 469Q321 522 301 560Q284 590 251 611T184 633Q146 633 119 607T92 550Q92 539 94 534Q100 516 143 460T186 386Q186 366 170 336T119 281Q102 264 70 250L49 260L56 266Q64 271 72 278T90 296T106 317T112 339ZM602 345Q602 357 608 371T622 397T642 421T661 441T678 456L686 462Q663 473 652 486T639 512T634 553Q631 594 624 608T593 631Q587 632 567 632Q539 632 497 600T416 497L410 484V122L467 103Q481 99 502 92T533 82T557 75T578 69T594 66T610 64Q647 64 672 87T697 144Q697 180 650 250T602 345Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur Q\",\n                \"source\": \"\\\\mathfrak{Q}\",\n                \"snippet\": \"\\\\mathfrak{Q}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.922ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -863.1 827.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR Q.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-51\\\" d=\\\"M428 596Q412 596 386 595T350 593Q313 593 291 605T268 638Q268 644 269 648T274 658T284 669T301 689T326 718L336 729H343Q351 729 351 728Q342 710 342 703Q342 683 382 676T493 662T604 643Q744 592 744 398Q744 299 708 213T646 104L603 68L614 55Q670 -5 710 -5Q726 -5 744 1T772 14L781 20Q782 20 782 7V-6L771 -13Q673 -69 665 -69L647 -63Q552 -30 514 8H512Q509 8 500 3T471 -9T428 -23Q405 -27 377 -27Q305 -24 228 6T124 36Q69 36 27 -16Q23 -13 19 -8L11 0L27 20Q93 102 109 109Q145 123 166 150T187 207Q187 244 134 318T80 412Q80 454 112 498T176 566T213 590Q216 590 224 585L234 580L225 573Q216 566 207 557T188 536T172 511T165 484Q165 448 213 368T261 259Q261 241 252 219T228 179T200 146T176 122L167 112Q170 111 174 111Q188 110 233 91T339 55T453 37Q508 37 556 68T626 152Q655 219 655 328Q655 543 532 582Q484 596 428 596Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-51\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur R\",\n                \"source\": \"\\\\mathfrak{R}\",\n                \"snippet\": \"\\\\mathfrak{R}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.924ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 828.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR R.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-52\\\" d=\\\"M27 496Q31 569 102 627T234 685Q236 685 241 685T251 686Q287 686 318 672T367 638T399 598T418 564L423 550Q424 554 434 567T463 601T505 639T561 671T626 685Q672 685 688 659T710 572Q713 533 721 523T766 513Q781 513 787 514T794 516Q796 512 798 509T801 504T802 501T787 493Q702 461 624 401L607 389Q655 383 688 358L697 352V342Q699 330 699 297Q704 209 710 173T734 103Q751 69 765 69Q769 69 806 83L824 90V74Q823 73 759 24T693 -26Q692 -26 660 32L628 90L629 111Q631 159 631 177Q631 278 614 300Q584 340 523 340Q500 340 467 333T431 325Q429 325 429 322Q428 321 426 308T420 275T410 230T392 178T366 125L358 112L342 99Q306 70 269 38T213 -10T193 -26Q192 -26 163 0T116 26Q82 26 50 -8L42 -16L35 -8L27 0L35 10Q43 21 58 38T104 80T158 106Q179 106 218 65L235 48Q238 48 255 60T295 99T329 158Q352 231 352 359Q352 555 242 614Q210 628 187 628Q140 628 116 600T91 548Q91 522 138 464T185 382V376Q185 345 158 313T103 263L76 246Q74 244 64 253L54 260L65 267Q91 285 100 302Q111 318 111 337Q111 355 69 410T27 496ZM562 628Q504 628 443 507L435 491L436 479Q437 471 437 446Q437 396 432 351L529 389L602 426Q673 462 673 463H672Q644 470 637 483T622 553Q608 628 562 628Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur S\",\n                \"source\": \"\\\\mathfrak{S}\",\n                \"snippet\": \"\\\\mathfrak{S}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.927ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 829.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR S.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-53\\\" d=\\\"M750 276Q750 141 645 57T378 -27Q224 -27 146 67Q66 163 66 307Q66 361 80 412T127 515T217 609T356 676L388 684L420 692L442 681Q545 625 586 608T654 591Q688 591 710 609T737 646L742 665Q742 665 756 654L752 642Q736 594 706 566T621 515L607 510Q580 513 528 542T421 599T335 627Q272 627 214 569Q139 500 139 373Q139 308 159 247T217 136T316 56T455 26Q520 26 566 43T634 90T666 148T676 207Q676 264 649 297T580 338Q574 339 552 339Q516 339 442 325T327 310H324Q303 310 290 312T259 328T232 369Q230 375 230 390Q230 426 259 461Q286 488 338 507Q351 498 351 495L346 492Q342 490 339 488T330 482T320 473T312 462T305 447T303 428Q303 368 366 368Q393 368 487 388T613 409Q656 409 696 385T748 306Q750 294 750 276Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-53\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur T\",\n                \"source\": \"\\\\mathfrak{T}\",\n                \"snippet\": \"\\\\mathfrak{T}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.571ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 676.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR T.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-54\\\" d=\\\"M289 686Q338 686 439 668T565 649Q606 649 641 672Q656 683 664 690T674 700L675 701Q676 698 676 692V681L641 636Q608 591 602 588Q577 575 528 575Q490 575 438 583L426 585L416 578Q335 520 335 465Q335 437 393 366T452 259Q452 226 406 171Q387 146 351 115L341 106L358 97Q438 58 475 58Q525 58 598 124L608 133Q617 119 617 118Q617 114 606 103Q513 0 448 -27L438 -25Q401 -19 337 14T234 48Q186 48 122 -3L112 -11L106 -3L101 5L110 15Q160 63 209 105L224 117H310Q384 163 384 210Q384 238 329 303T263 398Q262 400 262 404Q262 427 290 476T368 580Q383 596 381 596Q315 622 228 622Q159 622 118 593T76 516Q76 482 96 461T139 431L107 399L75 367Q34 403 34 472Q34 525 64 572T148 652Q207 686 289 686Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur U\",\n                \"source\": \"\\\\mathfrak{U}\",\n                \"snippet\": \"\\\\mathfrak{U}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.603ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex; margin-left: -0.057ex;\\\" viewBox=\\\"-24.5 -791.3 690 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR U.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-55\\\" d=\\\"M160 247Q160 291 110 382T59 505Q59 542 106 597T207 690L218 697L229 682Q229 680 216 669T187 644T158 604T144 552Q144 526 165 482T207 387T228 291Q228 277 228 267T224 247T219 232T210 217T199 202T184 184T166 163L118 107Q124 105 132 105T160 98T220 77Q298 47 317 47Q354 47 409 105Q444 142 451 161T458 244V277Q458 339 455 457T447 596L575 686L591 676L583 668Q550 632 541 587T532 449V372V298Q532 198 550 147Q572 79 605 79Q617 79 631 84T656 95L665 100V79L595 27Q578 15 560 2T532 -19L523 -26Q522 -26 490 42L458 111L397 50Q389 42 374 27T355 8T340 -5T325 -16T311 -22T294 -26T274 -27Q232 -25 152 6T35 37Q28 36 19 30T4 18T-8 4T-16 -5Q-25 10 -25 11T-20 18Q-5 34 15 57L54 101Q70 103 86 116Q94 121 113 140T137 166Q160 201 160 247Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-55\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur V\",\n                \"source\": \"\\\\mathfrak{V}\",\n                \"snippet\": \"\\\\mathfrak{V}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.931ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 831.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR V.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-56\\\" d=\\\"M54 266Q118 307 118 339Q118 360 74 413T27 493Q26 530 59 578T133 651Q187 686 256 686Q299 686 332 673T382 640T409 600T424 567T429 553Q431 553 463 586T542 653T624 686Q663 686 715 652T798 617Q812 617 825 622V606L815 599Q785 576 762 546Q724 495 724 432Q724 397 737 317T750 217Q750 148 711 96Q697 75 639 34T578 -10Q563 -21 555 -23T522 -26Q458 -26 363 29Q253 89 211 89Q192 89 173 83T139 67T114 49T96 34L90 27L80 43L95 59Q121 87 148 110T191 143T213 154Q261 154 300 195Q328 222 340 267T352 406Q352 562 255 611Q222 627 187 627H182Q143 627 115 598Q96 579 96 559Q96 528 144 470T192 381Q192 348 156 314T80 256L70 250L54 266ZM727 548Q701 550 650 583T567 617Q560 617 554 615Q532 610 501 580T445 501L437 485V465Q432 326 378 223L294 150Q321 143 421 87T560 31Q608 31 634 64Q660 102 660 198Q660 226 655 292T650 387Q650 418 658 452L660 462L735 548H727ZM264 150Q265 151 263 151H261Q261 150 264 150ZM280 150H276V149Q280 149 280 150Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-56\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur W\",\n                \"source\": \"\\\\mathfrak{W}\",\n                \"snippet\": \"\\\\mathfrak{W}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.449ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1054.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR W.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-57\\\" d=\\\"M32 501Q35 564 103 625T264 686Q326 686 365 652Q402 618 420 564L441 585Q486 630 539 670L559 686L572 672Q637 606 665 559L682 576Q787 686 845 686Q877 686 929 656T992 623Q999 621 1016 621Q1041 621 1054 628L1051 617L1047 606Q1042 602 1037 597Q983 557 969 522T954 434Q954 394 961 336T968 221Q968 201 966 184T963 155T956 131T948 113T936 96T923 82T906 66T887 50L816 -2Q815 -3 810 -6T801 -11T791 -16T777 -20T759 -23T735 -25Q691 -25 619 4T505 37H496L463 21Q420 0 389 -20L378 -27H362Q316 -27 275 -9T202 28T150 46H146Q114 46 59 -5L48 -16L41 -6Q40 -4 38 -2T34 2L33 4Q33 8 77 54Q111 87 142 112L154 122H166Q239 127 288 182Q346 244 346 406Q346 489 326 537T259 610Q227 628 195 628Q155 628 128 606T101 549Q101 517 146 465T192 382Q192 348 156 310T85 254L75 250L64 258L55 266Q56 267 74 276T105 301T118 339Q118 362 75 413T32 501ZM952 547Q927 555 877 586T796 617Q744 617 682 525L676 516L677 498Q678 486 678 425Q678 301 652 206Q649 195 613 151T577 102Q577 100 582 100Q618 100 720 51Q761 32 790 32H794Q843 32 869 83Q884 110 884 189Q884 233 879 294T873 400Q874 433 879 451T889 478T915 507T952 547ZM241 105Q249 98 263 88T317 60T393 42Q478 42 547 109Q607 171 607 358Q607 371 607 380T604 417T595 467T577 517T546 566T500 601L479 580Q449 550 433 526L426 516V503Q426 311 357 200L352 191L296 149Q241 107 241 105Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-57\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur X\",\n                \"source\": \"\\\\mathfrak{X}\",\n                \"snippet\": \"\\\\mathfrak{X}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.671ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 719.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR X.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-58\\\" d=\\\"M96 511L78 527L149 603Q207 666 227 686L237 685Q278 680 306 667T351 631T376 588T395 533L400 516L406 527Q439 600 523 653Q538 664 587 688Q589 688 596 672T613 635T629 606Q643 588 665 588Q677 588 693 596L709 603V585L607 526Q583 536 554 564T512 614Q461 571 435 507T405 381V367H581L563 347Q561 344 558 341T553 335T549 330T546 326L545 325H541Q537 325 488 329T411 334H405V325Q405 198 454 123Q497 54 568 54Q594 54 619 64T660 84L676 95V74L565 -16L553 -20Q528 -27 512 -27Q492 -27 475 -21T444 -5T418 19T398 47T382 77T371 105T363 128T358 145L357 151Q354 151 339 136T294 91T232 37Q152 -22 113 -22Q90 -22 69 -9T38 17T28 32Q28 33 58 68L86 101Q94 81 115 64T165 47Q206 47 249 84Q302 128 325 222Q334 263 336 312V334H312Q198 334 163 324H161Q162 326 182 348L198 367H336V398Q333 508 308 550Q295 570 274 585T227 601Q204 601 181 589T145 565T115 533T96 511Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur Y\",\n                \"source\": \"\\\\mathfrak{Y}\",\n                \"snippet\": \"\\\\mathfrak{Y}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.936ex\\\" height=\\\"2.676ex\\\" style=\\\"vertical-align: -0.838ex;\\\" viewBox=\\\"0 -791.3 833.5 1152.1\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR Y.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-59\\\" d=\\\"M123 345Q123 358 75 415T27 496Q27 533 63 578T121 639Q181 685 256 685Q305 685 332 676T384 635Q419 588 425 542Q468 585 526 628T618 686Q632 667 658 645T704 609T724 594Q740 512 740 385V375V361Q740 128 682 -3Q656 -64 554 -141T361 -218Q319 -218 287 -203T243 -173T230 -150Q230 -148 267 -109L304 -69Q311 -115 341 -142T411 -170Q474 -170 534 -119T624 11Q660 111 660 312Q660 447 633 528L612 549Q578 583 552 596L543 601L528 592Q501 574 483 558Q454 528 436 494L431 484V473Q431 330 376 230Q366 213 359 206T306 159L250 112Q278 105 327 82T399 58Q421 58 440 69T471 92T484 104H485L493 90L480 73Q453 39 429 13Q393 -22 372 -22Q342 -22 260 15T153 53Q97 53 48 -16L38 5Q46 22 74 54T128 108L143 122H155Q226 127 275 168Q352 236 352 399Q352 501 309 564T197 628Q156 628 129 607T102 553Q102 517 147 463T192 383Q192 323 75 250L59 266Q123 314 123 345Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-59\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Fraktur Z\",\n                \"source\": \"\\\\mathfrak{Z}\",\n                \"snippet\": \"\\\\mathfrak{Z}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.399ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -863.1 602.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">FRAKTUR Z.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJFRAK-5A\\\" d=\\\"M148 590Q95 592 91 627V633L160 729H176Q169 713 169 705Q169 670 244 670Q269 670 305 672T357 675Q405 675 432 661T468 609Q469 605 469 596Q469 572 460 540Q433 463 301 372Q325 378 359 378Q431 378 472 350T519 297Q532 249 532 198Q532 115 500 40T442 -57Q335 -139 202 -139Q165 -139 125 -131L112 -129V-100Q112 -49 106 -33T75 -17Q55 -17 31 -35L22 -42L11 -26L22 -18Q94 36 151 36H160Q171 36 178 33T188 27T194 13T196 -5T197 -32Q198 -79 206 -90Q217 -107 251 -107Q336 -107 389 -33T442 155Q442 240 407 274Q362 319 285 319Q236 319 192 298Q188 298 181 309L224 372Q227 373 234 374T246 376T257 379T271 384T285 391T302 402T321 417Q384 471 384 540Q384 562 366 581T306 600Q292 600 233 595T148 590Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJFRAK-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif A\",\n                \"source\": \"\\\\mathsf{A}\",\n                \"snippet\": \"\\\\mathsf{A}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF A.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-41\\\" d=\\\"M183 181Q183 179 152 91T118 0H28L154 346L280 693Q281 694 333 694H385L511 349Q636 4 638 2Q638 0 584 0H530L464 183H184L183 181ZM324 606Q319 578 292 492T238 332T210 256Q210 254 324 254T438 255L429 281L419 308Q409 336 395 378T365 465T339 551T324 611V606Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif B\",\n                \"source\": \"\\\\mathsf{B}\",\n                \"snippet\": \"\\\\mathsf{B}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF B.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-42\\\" d=\\\"M425 363Q438 363 465 353T526 324T585 270T610 192Q610 132 561 78T426 7Q404 2 387 2T240 0H90V694H227Q373 693 396 689Q484 673 533 623T583 517Q583 494 574 473T551 437T520 409T487 388T456 374T433 366L425 363ZM490 516Q490 527 485 539T467 568T423 599T347 621Q340 622 262 623H188V399H261H286Q432 399 478 475Q490 496 490 516ZM514 190Q514 245 462 280T343 322Q336 323 259 323H188V71H274Q365 72 388 77Q445 88 479 121T514 190Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif C\",\n                \"source\": \"\\\\mathsf{C}\",\n                \"snippet\": \"\\\\mathsf{C}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.485ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 639.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF C.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-43\\\" d=\\\"M59 347Q59 440 100 521T218 654T392 705Q473 705 550 680Q577 670 577 667Q576 666 572 642T564 595T559 571Q515 601 479 613T392 626Q300 626 232 549T164 347Q164 231 229 150T397 68Q453 68 489 80T568 120L581 129L582 110Q584 91 585 71T587 46Q580 40 566 31T502 5T396 -11Q296 -11 218 41T99 174T59 347Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-43\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif D\",\n                \"source\": \"\\\\mathsf{D}\",\n                \"snippet\": \"\\\\mathsf{D}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.678ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 722.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF D.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-44\\\" d=\\\"M88 0V694H237H258H316Q383 694 425 686T511 648Q578 604 622 525T666 343Q666 190 564 86Q494 18 400 3Q387 1 237 0H88ZM565 341Q565 409 546 463T495 550T429 600T359 621Q348 623 267 623H189V71H267Q272 71 286 71T310 70Q461 70 527 184Q565 251 565 341Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-44\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif E\",\n                \"source\": \"\\\\mathsf{E}\",\n                \"snippet\": \"\\\\mathsf{E}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.388ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 597.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF E.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-45\\\" d=\\\"M86 0V691H541V611H366L190 612V397H513V321H190V85H372L554 86V0H86Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif F\",\n                \"source\": \"\\\\mathsf{F}\",\n                \"snippet\": \"\\\\mathsf{F}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.323ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 569.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF F.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-46\\\" d=\\\"M86 0V691H526V611H358L190 612V384H485V308H190V0H86Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-46\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif G\",\n                \"source\": \"\\\\mathsf{G}\",\n                \"snippet\": \"\\\\mathsf{G}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF G.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-47\\\" d=\\\"M59 346Q59 499 157 601T384 704Q436 704 466 700T541 679Q551 674 560 670T575 664T583 660T588 658T590 656Q590 652 582 605T573 557L564 564Q489 626 392 626Q301 626 233 549T164 347T233 145T392 68Q441 68 506 84V223H388V299H599V38L588 33Q494 -11 393 -11Q296 -11 219 40T100 172T59 346Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-47\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif H\",\n                \"source\": \"\\\\mathsf{H}\",\n                \"snippet\": \"\\\\mathsf{H}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.646ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 708.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF H.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-48\\\" d=\\\"M86 0V694H190V399H517V694H621V0H517V323H190V0H86Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif I\",\n                \"source\": \"\\\\mathsf{I}\",\n                \"snippet\": \"\\\\mathsf{I}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"0.647ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 278.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF I.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-49\\\" d=\\\"M87 0V694H191V0H87Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif J\",\n                \"source\": \"\\\\mathsf{J}\",\n                \"snippet\": \"\\\\mathsf{J}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.097ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 472.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF J.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4A\\\" d=\\\"M181 53Q200 53 215 56T241 66T259 79T272 95T280 109T285 122L287 129V694H388V415V229Q388 135 385 112T369 63Q364 51 355 39T328 12T280 -12T212 -22Q172 -22 130 -12T66 8T43 20L46 42Q50 65 54 88L58 110Q58 111 65 104Q107 53 181 53Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif K\",\n                \"source\": \"\\\\mathsf{K}\",\n                \"snippet\": \"\\\\mathsf{K}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.613ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 694.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF K.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4B\\\" d=\\\"M88 0V694H188V519L189 343L525 694H638L375 419L651 0H541L309 351L188 225V0H88Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif L\",\n                \"source\": \"\\\\mathsf{L}\",\n                \"snippet\": \"\\\\mathsf{L}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.26ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 542.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF L.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4C\\\" d=\\\"M87 0V694H191V79L297 80H451L499 81V0H87Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif M\",\n                \"source\": \"\\\\mathsf{M}\",\n                \"snippet\": \"\\\\mathsf{M}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.033ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 875.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF M.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4D\\\" d=\\\"M92 0V694H228L233 680Q236 675 284 547T382 275T436 106Q446 149 497 292T594 558L640 680L645 694H782V0H689V305L688 606Q688 577 500 78L479 23H392L364 96Q364 97 342 156T296 280T246 418T203 544T186 609V588Q185 568 185 517T185 427T185 305V0H92Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif N\",\n                \"source\": \"\\\\mathsf{N}\",\n                \"snippet\": \"\\\\mathsf{N}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.646ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 708.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF N.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4E\\\" d=\\\"M88 0V694H235L252 659Q261 639 364 428T526 84V694H619V0H472L455 35Q453 39 330 294T185 601L181 611V0H88Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif O\",\n                \"source\": \"\\\\mathsf{O}\",\n                \"snippet\": \"\\\\mathsf{O}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.711ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 736.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF O.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-4F\\\" d=\\\"M55 345Q55 504 149 609T361 715Q386 715 406 713Q521 696 600 592T680 344Q680 193 590 86T368 -22Q239 -22 147 84T55 345ZM276 59T368 59T518 146T576 360Q576 473 525 545T401 634Q371 637 362 637Q284 637 222 562T159 360T217 147Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif P\",\n                \"source\": \"\\\\mathsf{P}\",\n                \"snippet\": \"\\\\mathsf{P}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.485ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 639.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF P.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-50\\\" d=\\\"M88 0V694H230Q347 693 370 692T410 686Q487 667 535 611T583 485Q583 409 527 348T379 276Q369 274 279 274H192V0H88ZM486 485Q486 523 471 551T432 593T391 612T357 621Q350 622 268 623H189V347H268Q350 348 357 349Q370 351 383 354T416 368T450 391T475 429T486 485Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif Q\",\n                \"source\": \"\\\\mathsf{Q}\",\n                \"snippet\": \"\\\\mathsf{Q}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.711ex\\\" height=\\\"2.343ex\\\" style=\\\"vertical-align: -0.505ex;\\\" viewBox=\\\"0 -791.3 736.5 1008.6\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF Q.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-51\\\" d=\\\"M55 345Q55 504 149 609T361 715Q386 715 406 713Q521 696 600 592T680 344Q680 284 665 231T629 143T587 85T551 48L536 35L648 -120L652 -125H531L452 -8L440 -12Q407 -22 369 -22Q239 -22 147 85T55 345ZM579 345Q579 473 517 555T369 637Q279 637 218 554T156 345Q156 223 215 141T368 58Q376 58 382 58T392 58T397 59T401 60T403 61H404Q404 63 360 128T315 194H421L453 150Q485 105 486 105Q490 108 496 113T517 138T545 182T567 247T579 334V345Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-51\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif R\",\n                \"source\": \"\\\\mathsf{R}\",\n                \"snippet\": \"\\\\mathsf{R}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.502ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 646.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF R.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-52\\\" d=\\\"M88 0V694H227H259H302Q365 694 399 689T474 663Q528 637 558 595T589 504Q589 482 584 462T569 426T547 396T522 372T495 353T470 338T449 328T434 322L429 320L440 300Q452 280 477 238T523 160L617 1L565 0Q513 0 512 1Q512 2 424 156L337 309H189V0H88ZM492 504Q492 600 367 620Q354 622 271 623H189V385H271Q363 386 388 392Q432 402 462 430T492 504Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif S\",\n                \"source\": \"\\\\mathsf{S}\",\n                \"snippet\": \"\\\\mathsf{S}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.293ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 556.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF S.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-53\\\" d=\\\"M55 514Q55 589 115 652T283 716Q315 716 345 711T396 699T432 685T457 672T467 667Q467 666 459 618T449 568Q383 634 282 634Q214 634 182 600T150 525Q150 507 155 492T172 465T194 446T222 432T247 423T272 416T289 412Q353 396 378 384Q432 358 466 307T500 194Q500 110 438 44T272 -22Q215 -22 159 -5T73 28T44 50Q45 51 49 75T57 122T62 146L65 143Q68 140 74 136T88 125T107 111T131 98T160 85T194 74T232 66T274 63H286Q327 63 366 96T406 182Q406 245 352 280Q329 296 265 310T173 339Q124 363 90 409T55 514Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-53\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif T\",\n                \"source\": \"\\\\mathsf{T}\",\n                \"snippet\": \"\\\\mathsf{T}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.583ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 681.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF T.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-54\\\" d=\\\"M36 608V688H644V608H518L392 609V0H288V609L162 608H36Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif U\",\n                \"source\": \"\\\\mathsf{U}\",\n                \"snippet\": \"\\\\mathsf{U}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.599ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 688.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF U.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-55\\\" d=\\\"M87 450V694H191V449Q192 203 193 194Q200 148 220 117T266 72T311 54T347 49Q404 49 446 84T501 178Q505 195 505 218T507 449V694H600V450Q600 414 600 356Q599 198 595 181Q594 178 594 177Q575 89 505 34T345 -22Q258 -22 184 34T89 196Q88 205 87 450Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-55\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif V\",\n                \"source\": \"\\\\mathsf{V}\",\n                \"snippet\": \"\\\\mathsf{V}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF V.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-56\\\" d=\\\"M14 692Q14 694 68 694H122L146 633Q325 165 339 90Q340 87 341 87Q341 124 530 619L558 694H605Q652 694 652 692Q650 690 523 354T390 10L387 0H279L276 10Q271 18 144 354T14 692Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-56\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif W\",\n                \"source\": \"\\\\mathsf{W}\",\n                \"snippet\": \"\\\\mathsf{W}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.194ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 944.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF W.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-57\\\" d=\\\"M115 694Q115 693 156 550T233 266T270 90L271 85Q272 86 272 92Q272 153 405 616L427 694H524L553 590Q672 174 681 95L682 84L684 95Q689 138 728 287T803 563T841 692Q841 694 885 694T929 693Q929 691 829 346L730 0H679L628 1L606 75Q478 524 470 600L469 611L467 600Q458 518 338 101L310 0H213L114 346Q14 691 14 693Q14 694 64 694H115Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-57\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif X\",\n                \"source\": \"\\\\mathsf{X}\",\n                \"snippet\": \"\\\\mathsf{X}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF X.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-58\\\" d=\\\"M14 0Q16 5 144 184T275 367L153 528Q121 571 88 615T42 674T28 694H150L228 584Q315 463 316 461L326 448L497 694H610L609 692Q606 689 492 528Q440 454 409 410T378 366Q378 365 515 182L652 0H531L326 292Q326 293 299 254T226 146L128 0H14Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif Y\",\n                \"source\": \"\\\\mathsf{Y}\",\n                \"snippet\": \"\\\\mathsf{Y}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.55ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 667.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF Y.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-59\\\" d=\\\"M4 693L64 694H125L174 621Q335 378 340 364L341 362Q361 398 395 450L558 694H663L383 277V0H282V278L143 485Q112 531 75 586T21 668L4 693Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-59\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Sans serif Z\",\n                \"source\": \"\\\\mathsf{Z}\",\n                \"snippet\": \"\\\\mathsf{Z}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.42ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 611.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">SANS SERIF Z.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJSS-5A\\\" d=\\\"M69 617V694H555V643L373 362Q190 81 190 79H234Q244 79 272 79T344 80T419 81H560V0H55V53L237 334Q420 615 420 617Q413 618 387 618Q380 618 334 618T245 617H69Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJSS-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold A\",\n                \"source\": \"\\\\mathbf{A}\",\n                \"snippet\": \"\\\\mathbf{A}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.019ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 869.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD A.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-41\\\" d=\\\"M296 0Q278 3 164 3Q58 3 49 0H40V62H92Q144 62 144 64Q388 682 397 689Q403 698 434 698Q463 698 471 689Q475 686 538 530T663 218L724 64Q724 62 776 62H828V0H817Q796 3 658 3Q509 3 485 0H472V62H517Q561 62 561 63L517 175H262L240 120Q218 65 217 64Q217 62 261 62H306V0H296ZM390 237L492 238L440 365Q390 491 388 491Q287 239 287 237H390Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-41\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold B\",\n                \"source\": \"\\\\mathbf{B}\",\n                \"snippet\": \"\\\\mathbf{B}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.901ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 818.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD B.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-42\\\" d=\\\"M720 510Q720 476 704 448T665 404T619 377T580 362L564 359L583 356Q602 353 632 342T690 312Q712 292 725 276Q752 235 752 189V183Q752 160 741 125Q698 18 547 2Q543 1 288 0H39V62H147V624H39V686H264H409Q502 686 542 681T624 655Q720 607 720 510ZM563 513Q563 553 548 578T518 611T486 622Q479 624 385 624H293V382H375Q458 383 467 385Q563 405 563 513ZM590 192Q590 307 505 329Q504 330 503 330L398 331H293V62H391H400H444Q496 62 528 75T580 131Q590 155 590 192Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-42\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold C\",\n                \"source\": \"\\\\mathbf{C}\",\n                \"snippet\": \"\\\\mathbf{C}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.931ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 831.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD C.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-43\\\" d=\\\"M64 343Q64 502 174 599T468 697Q502 697 533 691T586 674T623 655T647 639T657 632L694 663Q703 670 711 677T723 687T730 692T735 695T740 696T746 697Q759 697 762 692T766 668V627V489V449Q766 428 762 424T742 419H732H720Q699 419 697 436Q690 498 657 545Q611 618 532 632Q522 634 496 634Q356 634 286 553Q232 488 232 343T286 133Q355 52 497 52Q597 52 650 112T704 237Q704 248 709 251T729 254H735Q750 254 755 253T763 248T766 234Q766 136 680 63T469 -11Q285 -11 175 86T64 343Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-43\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold D\",\n                \"source\": \"\\\\mathbf{D}\",\n                \"snippet\": \"\\\\mathbf{D}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.05ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 882.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD D.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-44\\\" d=\\\"M39 624V686H270H310H408Q500 686 545 680T638 649Q768 584 805 438Q817 388 817 338Q817 171 702 75Q628 17 515 2Q504 1 270 0H39V62H147V624H39ZM655 337Q655 370 655 390T650 442T639 494T616 540T580 580T526 607T451 623Q443 624 368 624H298V62H377H387H407Q445 62 472 65T540 83T606 129Q629 156 640 195T653 262T655 337Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-44\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold E\",\n                \"source\": \"\\\\mathbf{E}\",\n                \"snippet\": \"\\\\mathbf{E}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.757ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 756.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD E.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-45\\\" d=\\\"M723 286Q721 284 700 145T677 3V0H39V62H147V618H39V680H660V676Q662 670 675 552T691 428V424H629V428Q629 429 627 448T618 494T601 541Q574 593 527 605T382 618H374H304V384H336Q338 384 347 384T361 384T376 386T392 390T407 397T421 407T432 423Q442 444 443 482V501H505V205H443V224Q442 258 435 278T411 307T380 318T336 322H304V62H375H394Q429 62 449 62T497 66T541 76T577 95T609 126T632 170T651 232Q661 287 661 289H723V286Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-45\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold F\",\n                \"source\": \"\\\\mathbf{F}\",\n                \"snippet\": \"\\\\mathbf{F}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.683ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 724.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD F.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-46\\\" d=\\\"M425 0L228 3Q63 3 51 0H39V62H147V618H39V680H644V676Q647 670 659 552T675 428V424H613Q613 433 605 477Q599 511 589 535T562 574T530 599T488 612T441 617T387 618H368H304V371H333Q389 373 411 390T437 468V488H499V192H437V212Q436 244 430 263T408 292T378 305T333 309H304V62H439V0H425Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-46\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold G\",\n                \"source\": \"\\\\mathbf{G}\",\n                \"snippet\": \"\\\\mathbf{G}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.101ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 904.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD G.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-47\\\" d=\\\"M465 -10Q281 -10 173 88T64 343Q64 413 85 471T143 568T217 631T298 670Q371 697 449 697Q452 697 459 697T470 696Q502 696 531 690T582 675T618 658T644 641T656 632L732 695Q734 697 745 697Q758 697 761 692T765 668V627V489V449Q765 428 761 424T741 419H731H724Q705 419 702 422T695 444Q683 520 631 577T495 635Q364 635 295 563Q261 528 247 477T232 343Q232 296 236 260T256 185T296 120T366 76T472 52Q481 51 498 51Q544 51 573 67T607 108Q608 111 608 164V214H464V276H479Q506 273 680 273Q816 273 834 276H845V214H765V113V51Q765 16 763 8T750 0Q742 2 709 16T658 40L648 46Q592 -10 465 -10Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-47\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold H\",\n                \"source\": \"\\\\mathbf{H}\",\n                \"snippet\": \"\\\\mathbf{H}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.091ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 900.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD H.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-48\\\" d=\\\"M400 0Q376 3 226 3Q75 3 51 0H39V62H147V624H39V686H51Q75 683 226 683Q376 683 400 686H412V624H304V388H595V624H487V686H499Q523 683 673 683Q824 683 848 686H860V624H752V62H860V0H848Q824 3 674 3Q523 3 499 0H487V62H595V326H304V62H412V0H400Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-48\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold I\",\n                \"source\": \"\\\\mathbf{I}\",\n                \"snippet\": \"\\\\mathbf{I}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.014ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 436.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD I.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-49\\\" d=\\\"M397 0Q370 3 218 3Q65 3 38 0H25V62H139V624H25V686H38Q65 683 218 683Q370 683 397 686H410V624H296V62H410V0H397Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-49\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold J\",\n                \"source\": \"\\\\mathbf{J}\",\n                \"snippet\": \"\\\\mathbf{J}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.381ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 594.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD J.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4A\\\" d=\\\"M174 114Q174 96 169 82T159 63T144 47L155 45Q183 40 203 40Q271 40 290 104Q294 118 294 150T295 380V624H154V686H169Q196 683 365 683Q499 683 517 686H527V624H446V379Q446 183 446 153T441 108Q413 32 315 2Q266 -11 208 -11Q160 -11 118 -2T42 37T8 114V122Q8 150 30 174T91 198T152 174T174 122V114Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold K\",\n                \"source\": \"\\\\mathbf{K}\",\n                \"snippet\": \"\\\\mathbf{K}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.094ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 901.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD K.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4B\\\" d=\\\"M400 0Q376 3 226 3Q75 3 51 0H39V62H147V624H39V686H51Q75 683 226 683Q376 683 400 686H412V624H304V338L472 483L634 624H565V686H576Q597 683 728 683Q814 683 829 686H836V624H730L614 524Q507 432 497 422Q496 422 498 418T514 395T553 342T627 241L759 63L805 62H852V0H842Q830 3 701 3Q550 3 526 0H513V62H549Q584 62 584 63Q583 65 486 196T388 328L304 256V62H412V0H400Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4B\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold L\",\n                \"source\": \"\\\\mathbf{L}\",\n                \"snippet\": \"\\\\mathbf{L}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.608ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 692.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD L.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4C\\\" d=\\\"M643 285Q641 280 629 148T612 4V0H39V62H147V624H39V686H51Q75 683 228 683Q415 685 425 686H439V624H304V62H352H378Q492 62 539 138Q551 156 558 178T569 214T576 255T581 289H643V285Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4C\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold M\",\n                \"source\": \"\\\\mathbf{M}\",\n                \"snippet\": \"\\\\mathbf{M}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.537ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1092.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD M.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4D\\\" d=\\\"M314 0Q296 3 181 3T48 0H39V62H147V624H39V686H305Q316 679 323 667Q330 653 434 414L546 157L658 414Q766 662 773 674Q778 681 788 686H1052V624H944V62H1052V0H1040Q1016 3 874 3T708 0H696V62H804V341L803 618L786 580Q770 543 735 462T671 315Q540 13 536 9Q528 1 507 1Q485 1 477 9Q472 14 408 162T281 457T217 603Q215 603 215 334V62H323V0H314Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4D\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold N\",\n                \"source\": \"\\\\mathbf{N}\",\n                \"snippet\": \"\\\\mathbf{N}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.091ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 900.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD N.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4E\\\" d=\\\"M314 0Q296 3 181 3T48 0H39V62H147V624H39V686H171H265Q288 686 297 686T309 684T315 679Q317 676 500 455T684 233V624H576V686H585Q603 683 718 683T851 686H860V624H752V319Q752 15 750 11Q747 4 742 2T718 0H712Q708 0 706 0T700 0T696 1T693 2T690 4T687 7T684 11T679 16T674 23Q671 27 437 311L215 579V62H323V0H314Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4E\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold O\",\n                \"source\": \"\\\\mathbf{O}\",\n                \"snippet\": \"\\\\mathbf{O}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.008ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 864.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD O.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-4F\\\" d=\\\"M64 339Q64 431 96 502T182 614T295 675T420 696Q469 696 481 695Q620 680 709 589T798 339Q798 173 697 82T432 -10Q262 -10 163 85T64 339ZM625 454Q618 502 600 538T562 593T515 624T469 639T431 642Q331 642 276 563Q232 493 232 353Q232 315 234 285T244 216T267 148T308 94T372 56Q405 46 432 46Q517 46 567 106T627 267Q631 299 631 353Q631 418 625 454Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-4F\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold P\",\n                \"source\": \"\\\\mathbf{P}\",\n                \"snippet\": \"\\\\mathbf{P}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.827ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 786.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD P.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-50\\\" d=\\\"M400 0Q376 3 226 3Q75 3 51 0H39V62H147V624H39V686H253Q435 686 470 685T536 678Q585 668 621 648T675 605T705 557T718 514T721 483T718 451T704 409T673 362T616 322T530 293Q500 288 399 287H304V62H412V0H400ZM553 475Q553 554 537 582T459 622Q451 623 373 624H298V343H372Q457 344 480 350Q527 362 540 390T553 475Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-50\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold Q\",\n                \"source\": \"\\\\mathbf{Q}\",\n                \"snippet\": \"\\\\mathbf{Q}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.008ex\\\" height=\\\"2.509ex\\\" style=\\\"vertical-align: -0.671ex;\\\" viewBox=\\\"0 -791.3 864.5 1080.4\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD Q.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-51\\\" d=\\\"M64 339Q64 431 96 502T182 614T295 675T420 696Q469 696 481 695Q620 680 709 589T798 339Q798 255 768 184Q720 77 611 26L600 21Q635 -26 682 -26H696Q769 -26 769 0Q769 7 774 12T787 18Q805 18 805 -7V-13Q803 -64 785 -106T737 -171Q720 -183 697 -191Q687 -193 668 -193Q636 -193 613 -182T575 -144T552 -94T532 -27Q531 -23 530 -16T528 -6T526 -3L512 -5Q499 -7 477 -8T431 -10Q393 -10 382 -9Q238 8 151 97T64 339ZM326 80Q326 113 356 138T430 163Q492 163 542 100L553 86Q554 85 561 91T578 108Q637 179 637 330Q637 430 619 498T548 604Q500 641 425 641Q408 641 390 637T347 623T299 590T259 535Q226 469 226 338Q226 244 246 180T318 79L325 74Q326 74 326 80ZM506 58Q480 112 433 112Q412 112 395 104T378 77Q378 44 431 44Q480 44 506 58Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-51\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold R\",\n                \"source\": \"\\\\mathbf{R}\",\n                \"snippet\": \"\\\\mathbf{R}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.003ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 862.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD R.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-52\\\" d=\\\"M394 0Q370 3 222 3Q75 3 51 0H39V62H147V624H39V686H234Q256 686 299 686T362 687Q479 687 554 669T681 593Q716 550 716 497Q716 390 568 338Q569 337 572 336T577 332Q605 317 623 300T650 258T662 218T668 172Q678 98 689 76Q707 40 748 40Q770 40 780 54T795 88T801 111Q805 117 827 117H831Q846 117 852 113T858 92Q857 78 852 63T834 30T797 1T739 -11Q630 -11 580 12T511 87Q506 104 506 168Q506 170 506 178T507 194Q507 289 438 313Q424 318 356 318H298V62H406V0H394ZM366 369Q459 370 490 381Q548 402 548 476V498V517Q548 578 513 600Q479 624 392 624H358H298V369H366Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-52\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold S\",\n                \"source\": \"\\\\mathbf{S}\",\n                \"snippet\": \"\\\\mathbf{S}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.485ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 639.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD S.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-53\\\" d=\\\"M64 493Q64 582 120 636T264 696H272Q280 697 285 697Q380 697 454 645L480 669Q484 672 488 676T495 683T500 688T504 691T508 693T511 695T514 696T517 697T522 697Q536 697 539 691T542 652V577Q542 557 542 532T543 500Q543 472 540 465T524 458H511H505Q489 458 485 461T479 478Q472 529 449 564T393 614T336 634T287 639Q228 639 203 610T177 544Q177 517 195 493T247 457Q253 454 343 436T475 391Q574 326 574 207V200Q574 163 559 120Q517 12 389 -9Q380 -10 346 -10Q308 -10 275 -5T221 7T184 22T160 35T151 40L126 17Q122 14 118 10T111 3T106 -2T102 -5T98 -7T95 -9T92 -10T89 -11T84 -11Q70 -11 67 -4T64 35V108Q64 128 64 153T63 185Q63 203 63 211T69 223T77 227T94 228H100Q118 228 122 225T126 205Q130 125 193 88T345 51Q408 51 434 82T460 157Q460 196 439 221T388 257Q384 259 305 276T221 295Q155 313 110 366T64 493Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-53\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold T\",\n                \"source\": \"\\\\mathbf{T}\",\n                \"snippet\": \"\\\\mathbf{T}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.859ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 800.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD T.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-54\\\" d=\\\"M41 425Q41 426 51 545T62 669V675H737V669Q738 665 748 546T758 425V419H696V425Q687 517 669 555T595 607Q578 612 522 613H478V62H631V0H615Q585 3 399 3Q214 3 184 0H168V62H321V613H277H263Q164 613 134 561Q113 527 103 425V419H41V425Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-54\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold U\",\n                \"source\": \"\\\\mathbf{U}\",\n                \"snippet\": \"\\\\mathbf{U}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.057ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 885.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD U.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-55\\\" d=\\\"M570 686Q588 683 703 683T836 686H845V624H737V420Q737 390 737 345T738 284Q738 205 729 164T689 83Q614 -11 465 -11Q321 -11 240 51T148 207Q147 214 147 421V624H39V686H51Q75 683 226 683Q376 683 400 686H412V624H304V405V370V268Q304 181 311 146T346 87Q387 52 466 52Q642 52 667 195Q668 204 669 415V624H561V686H570Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-55\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold V\",\n                \"source\": \"\\\\mathbf{V}\",\n                \"snippet\": \"\\\\mathbf{V}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.019ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 869.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD V.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-56\\\" d=\\\"M592 686H604Q615 685 631 685T666 684T700 684T724 683Q829 683 835 686H843V624H744L611 315Q584 254 546 165Q492 40 482 19T461 -6L460 -7H409Q398 -4 391 9Q385 20 257 315L124 624H25V686H36Q57 683 190 683Q340 683 364 686H377V624H289L384 403L480 185L492 212Q504 240 529 298T575 405L670 624H582V686H592Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-56\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold W\",\n                \"source\": \"\\\\mathbf{W}\",\n                \"snippet\": \"\\\\mathbf{W}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.763ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 1189.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD W.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-57\\\" d=\\\"M915 686L1052 683Q1142 683 1157 686H1164V624H1073L957 320Q930 249 900 170T855 52T839 10Q834 0 826 -5Q821 -7 799 -7H792Q777 -7 772 -5T759 10Q759 11 748 39T716 122T676 228L594 442L512 228Q486 159 455 78Q433 19 428 9T416 -5Q411 -7 389 -7H379Q356 -7 349 10Q349 12 334 51T288 170T231 320L116 624H24V686H35Q44 683 183 683Q331 683 355 686H368V624H323Q278 624 278 623L437 207L499 369L561 531L526 624H434V686H445Q454 683 593 683Q741 683 765 686H778V624H733Q688 624 688 623L847 207Q848 207 927 415T1006 624H905V686H915Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-57\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold X\",\n                \"source\": \"\\\\mathbf{X}\",\n                \"snippet\": \"\\\\mathbf{X}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.019ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 869.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD X.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-58\\\" d=\\\"M327 0Q306 3 174 3Q52 3 43 0H33V62H98L162 63L360 333L157 624H48V686H59Q80 683 217 683Q368 683 395 686H408V624H335L393 540L452 458L573 623Q573 624 528 624H483V686H494Q515 683 646 683Q769 683 778 686H787V624H658L575 511Q493 398 493 397L508 376Q522 356 553 312T611 229L727 62H835V0H824Q803 3 667 3Q516 3 489 0H476V62H513L549 63L401 274L247 63Q247 62 292 62H338V0H327Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-58\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold Y\",\n                \"source\": \"\\\\mathbf{Y}\",\n                \"snippet\": \"\\\\mathbf{Y}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"2.019ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 869.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD Y.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-59\\\" d=\\\"M605 0Q581 3 434 3Q286 3 262 0H250V62H358V275L126 624H19V686H30Q54 683 189 683Q361 685 370 686H383V624H308L319 608Q330 591 353 556T396 491L484 359L660 623Q660 624 623 624H585V686H595Q613 683 728 683Q832 683 841 686H849V624H742L509 274V62H618V0H605Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-59\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            },\n            {\n                \"name\": \"Bold Z\",\n                \"source\": \"\\\\mathbf{Z}\",\n                \"snippet\": \"\\\\mathbf{Z}\",\n                \"svg\": \"<svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" width=\\\"1.634ex\\\" height=\\\"2.176ex\\\" style=\\\"vertical-align: -0.338ex;\\\" viewBox=\\\"0 -791.3 703.5 936.9\\\" role=\\\"img\\\" focusable=\\\"false\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-labelledby=\\\"MathJax-SVG-1-Title\\\"><title id=\\\"MathJax-SVG-1-Title\\\">BOLD Z.</title><defs aria-hidden=\\\"true\\\"><path stroke-width=\\\"1\\\" id=\\\"E1-MJMAINB-5A\\\" d=\\\"M80 430L92 686H358Q624 686 628 684Q638 679 638 656Q638 640 637 639Q637 638 445 353Q401 288 351 214T277 103L253 67L256 66Q258 66 265 66T279 66T298 66H343Q380 66 406 68T464 81T518 110T557 164T579 250Q583 278 583 298Q583 299 614 299H645V291Q643 281 636 150T627 8V0H353Q79 0 75 2Q64 7 64 31Q64 48 66 52L259 340L451 623Q451 624 384 624Q294 623 259 612Q155 581 143 446Q142 440 142 432V430H80Z\\\"></path></defs><g stroke=\\\"currentColor\\\" fill=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\" aria-hidden=\\\"true\\\"><use href=\\\"#E1-MJMAINB-5A\\\" x=\\\"0\\\" y=\\\"0\\\"></use></g></svg>\"\n            }\n        ]\n    }\n}"
  },
  {
    "path": "resources/snippetview/snippetview.css",
    "content": "* {\n    box-sizing: border-box;\n}\nbody {\n    font-family: sans-serif;\n    color: var(--vscode-editor-foreground);\n    padding: 0;\n    font-size: 11px;\n}\n\n.tex,\n.latex {\n    line-height: 1;\n    margin-left: 0.02em;\n}\n.tex sub,\n.latex sub,\n.latex sup {\n    text-transform: uppercase;\n}\n.tex sub,\n.latex sub {\n    vertical-align: -0.28ex;\n    margin-left: -0.1667em;\n    margin-right: -0.1em;\n}\n.tex,\n.latex,\n.tex sub,\n.latex sub {\n    font-size: 1em;\n}\n.latex sup {\n    font-size: 0.85em;\n    vertical-align: 0.2em;\n    margin-left: -0.32em;\n    margin-right: -0.15em;\n}\n\nspan.tt {\n    font-family: monospace;\n}\nspan.rm {\n    font-family: serif;\n}\nspan.sf {\n    font-family: sans-serif;\n}\n\nsmall {\n    font-weight: 700;\n    opacity: 0.4;\n    line-height: 1.5;\n}\n\nselect {\n    height: 1.5rem;\n    padding: 0rem 0.4rem;\n    margin: 0.3rem 0.5rem 0.3rem 0.1rem;\n    font-size: 13px;\n    border: none;\n    background-color: var(--vscode-dropdown-background);\n    color: var(--vscode-dropdown-foreground);\n    outline: 1px solid var(--vscode-dropdown-border);\n}\n\ninput[type='text'] {\n    background-color: var(--vscode-input-background);\n    color: var(--vscode-input-foreground);\n    outline: 1px solid var(--vscode-input-border);\n    border: none;\n    height: 1.5rem;\n    padding: 0.2rem 0.4rem;\n    margin: 0.3rem 0.5rem 0.3rem 0.1rem;\n    font-size: 0.9rem;\n    line-height: 1rem;\n}\ninput[type='text']::placeholder {\n    color: var(--vscode-input-placeholderForeground);\n}\ninput[type='text']:active,\ninput[type='text']:hover,\ninput[type='text']:focus {\n    outline: 1px solid var(--vscode-inputOption-activeBorder);\n}\n\n#Symbols {\n    max-width: max(70%, 800px);\n}\n\n#Symbols .header {\n    display: block;\n}\n\n#Symbols .header input[type='text'] {\n    display: inline-block;\n}\n#Symbols .header select {\n    display: inline-block;\n}\n\n#Symbols .grid {\n    display: flex;\n    align-items: baseline;\n    flex-wrap: wrap;\n    justify-content: space-between;\n}\n\n#Symbols .grid div {\n    display: inline-block;\n    position: relative;\n    min-width: 2ex;\n    cursor: pointer;\n}\n\n#Symbols .grid div:last-child {\n    margin-right: auto;\n}\n\n#Symbols .grid div svg {\n    padding: 0.8px;\n    zoom: 2.3;\n    transition-property: transform color;\n    transition-duration: 0.2s;\n}\n\n#Symbols .grid div svg.shrink {\n    zoom: 1.6;\n}\n\n#Symbols .grid div:hover {\n    color: var(--vscode-list-warningForeground);\n    background-color: var(--vscode-list-hoverBackground);\n    transform: scale(1.15);\n}\n\n#Symbols .grid div:active {\n    transform: scale(1.05);\n}\n"
  },
  {
    "path": "resources/snippetview/snippetview.html",
    "content": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\" />\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n        <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; base-uri 'none'; connect-src %CSP%; script-src %CSP% 'unsafe-inline' blob:; style-src %CSP% 'unsafe-inline';\">\n        <script>\n            var mathSymbolsJsonUrl = '%SRC%/snippetview/snippetpanel.json';\n        </script>\n        <script src=\"%SRC%/snippetview/snippetview.js\" defer></script>\n        <script>\n            var pdfjsDistUri = '%SRC%';\n        </script>\n        <script src=\"%SRC%/build/pdf.mjs\" type=\"module\"></script>\n        <script src=\"%SRC%/snippetview/pdfrenderer.js\" defer></script>\n        <link rel=\"stylesheet\" href=\"%SRC%/snippetview/snippetview.css\">\n    </head>\n    <body>\n        <div id=\"Symbols\" class=\"tabcontent\">\n            <div class=\"header\">\n                <input type=\"text\" name=\"search\" id=\"symbolsearch\" placeholder=\"{%mathsymbols.search%}\" oninput=\"mathSymbolSearch()\" />\n                <select onchange=\"mathSymbolSearch()\"> </select>\n            </div>\n\n            <div class=\"grid\"></div>\n        </div>\n    </body>\n</html>\n"
  },
  {
    "path": "resources/snippetview/snippetview.js",
    "content": "const mathSymbols = [];\nconst mathSymbolCategories = ['All'];\nconst grid = document.querySelector('#Symbols .grid');\nvar vscodeApi;\n\n(function() {\n    vscodeApi = acquireVsCodeApi();\n})();\n\nasync function loadMathSymbols() {\n    const res = await fetch(mathSymbolsJsonUrl);\n    const mathSymbols = (await res.json()).mathSymbols;\n    for (const category in mathSymbols) {\n        for (const index in mathSymbols[category]) {\n            const symbol = mathSymbols[category][index];\n            processMathSymbol({category, ...symbol});\n        }\n    }\n}\nloadMathSymbols();\n\nfunction processMathSymbol(mathSymbol) {\n    mathSymbol.searchText = getSearchText(mathSymbol);\n    mathSymbol.category = mathSymbol.category.replace(/^-/, '');\n    mathSymbols.push(mathSymbol);\n\n    if (mathSymbolCategories.indexOf(mathSymbol.category) === -1) {\n        mathSymbolCategories.push(mathSymbol.category);\n        document.querySelector('#Symbols .header select').innerHTML = mathSymbolCategories\n            .map(category => `<option>${category}</option>`)\n            .join('\\n');\n    }\n\n    const symbolDiv = document.createElement('div');\n    symbolDiv.className = 'snippet';\n    symbolDiv.setAttribute('data-snippet', mathSymbol.snippet);\n    symbolDiv.innerHTML = mathSymbol.svg;\n    symbolDiv.addEventListener('click', _evt => {\n        vscodeApi.postMessage({\n            type: 'insertSnippet',\n            snippet: symbolDiv.getAttribute('data-snippet') + ' '\n        });\n    });\n\n    mathSymbol.div = symbolDiv;\n    grid.appendChild(symbolDiv);\n}\n\nlet lastSymbol;\nfunction mathSymbolSearch() {\n    const searchStr = document.querySelector('#Symbols .header input').value;\n    let category = document.querySelector('#Symbols .header select').value;\n    category = category === 'All' ? '' : category;\n\n    if (lastSymbol) {\n        lastSymbol.div.style = '';\n        lastSymbol = undefined;\n    }\n\n    mathSymbols.forEach(mathSymbol => {\n        if (category && mathSymbol.category !== category) {\n            mathSymbol.div.style.display = 'none';\n            return;\n        }\n        if (mathSymbol.searchText.toLowerCase().indexOf(searchStr.toLowerCase()) === -1) {\n            mathSymbol.div.style.display = 'none';\n        } else {\n            mathSymbol.div.style.display = '';\n            lastSymbol = mathSymbol;\n        }\n    });\n\n    if (lastSymbol) {\n        lastSymbol.div.style = 'margin-right: auto;';\n    }\n}\n\nfunction getSearchText(symbol) {\n    let searchText = symbol.name + symbol.keywords;\n    if (!symbol.category.match(/^-/)) {\n        searchText += symbol.category;\n    }\n    return searchText;\n}\n"
  },
  {
    "path": "resources/unified.js",
    "content": "\"use strict\";\n(() => {\n  var __create = Object.create;\n  var __defProp = Object.defineProperty;\n  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n  var __getOwnPropNames = Object.getOwnPropertyNames;\n  var __getProtoOf = Object.getPrototypeOf;\n  var __hasOwnProp = Object.prototype.hasOwnProperty;\n  var __commonJS = (cb, mod) => function __require() {\n    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n  };\n  var __copyProps = (to, from, except, desc) => {\n    if (from && typeof from === \"object\" || typeof from === \"function\") {\n      for (let key of __getOwnPropNames(from))\n        if (!__hasOwnProp.call(to, key) && key !== except)\n          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n    }\n    return to;\n  };\n  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n    // If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n    mod\n  ));\n\n  // ../node_modules/is-buffer/index.js\n  var require_is_buffer = __commonJS({\n    \"../node_modules/is-buffer/index.js\"(exports, module) {\n      module.exports = function isBuffer2(obj) {\n        return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === \"function\" && obj.constructor.isBuffer(obj);\n      };\n    }\n  });\n\n  // ../node_modules/extend/index.js\n  var require_extend = __commonJS({\n    \"../node_modules/extend/index.js\"(exports, module) {\n      \"use strict\";\n      var hasOwn = Object.prototype.hasOwnProperty;\n      var toStr = Object.prototype.toString;\n      var defineProperty = Object.defineProperty;\n      var gOPD = Object.getOwnPropertyDescriptor;\n      var isArray = function isArray2(arr) {\n        if (typeof Array.isArray === \"function\") {\n          return Array.isArray(arr);\n        }\n        return toStr.call(arr) === \"[object Array]\";\n      };\n      var isPlainObject2 = function isPlainObject3(obj) {\n        if (!obj || toStr.call(obj) !== \"[object Object]\") {\n          return false;\n        }\n        var hasOwnConstructor = hasOwn.call(obj, \"constructor\");\n        var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\");\n        if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n          return false;\n        }\n        var key;\n        for (key in obj) {\n        }\n        return typeof key === \"undefined\" || hasOwn.call(obj, key);\n      };\n      var setProperty = function setProperty2(target, options) {\n        if (defineProperty && options.name === \"__proto__\") {\n          defineProperty(target, options.name, {\n            enumerable: true,\n            configurable: true,\n            value: options.newValue,\n            writable: true\n          });\n        } else {\n          target[options.name] = options.newValue;\n        }\n      };\n      var getProperty = function getProperty2(obj, name) {\n        if (name === \"__proto__\") {\n          if (!hasOwn.call(obj, name)) {\n            return void 0;\n          } else if (gOPD) {\n            return gOPD(obj, name).value;\n          }\n        }\n        return obj[name];\n      };\n      module.exports = function extend2() {\n        var options, name, src, copy, copyIsArray, clone2;\n        var target = arguments[0];\n        var i = 1;\n        var length = arguments.length;\n        var deep = false;\n        if (typeof target === \"boolean\") {\n          deep = target;\n          target = arguments[1] || {};\n          i = 2;\n        }\n        if (target == null || typeof target !== \"object\" && typeof target !== \"function\") {\n          target = {};\n        }\n        for (; i < length; ++i) {\n          options = arguments[i];\n          if (options != null) {\n            for (name in options) {\n              src = getProperty(target, name);\n              copy = getProperty(options, name);\n              if (target !== copy) {\n                if (deep && copy && (isPlainObject2(copy) || (copyIsArray = isArray(copy)))) {\n                  if (copyIsArray) {\n                    copyIsArray = false;\n                    clone2 = src && isArray(src) ? src : [];\n                  } else {\n                    clone2 = src && isPlainObject2(src) ? src : {};\n                  }\n                  setProperty(target, { name, newValue: extend2(deep, clone2, copy) });\n                } else if (typeof copy !== \"undefined\") {\n                  setProperty(target, { name, newValue: copy });\n                }\n              }\n            }\n          }\n        }\n        return target;\n      };\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/config.js\n  var require_config = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/config.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = {\n        END_WORD: \"$\",\n        END_WORD_REPLACER: \"9a219a89-91cd-42e2-abd5-eb113af08ca8\",\n        PERMS_MIN_LEN: 2\n      };\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/append.js\n  var require_append = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/append.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = append;\n      var _config = require_config();\n      var _config2 = _interopRequireDefault(_config);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function append(trie, letter, index2, array) {\n        var isEndWordLetter = letter === _config2.default.END_WORD;\n        var isLastLetter = index2 === array.length - 1;\n        if (isEndWordLetter && !isLastLetter) {\n          trie[_config2.default.END_WORD] = 1;\n          trie[_config2.default.END_WORD_REPLACER] = {};\n          trie = trie[_config2.default.END_WORD_REPLACER];\n        } else {\n          trie[letter] = trie[letter] || {};\n          trie = trie[letter];\n        }\n        if (isLastLetter) {\n          trie[_config2.default.END_WORD] = 1;\n        }\n        return trie;\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/create.js\n  var require_create = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/create.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n        return typeof obj;\n      } : function(obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n      exports.default = create;\n      var _append = require_append();\n      var _append2 = _interopRequireDefault(_append);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function create(input) {\n        if (!Array.isArray(input)) {\n          throw \"Expected parameter Array, received \" + (typeof input === \"undefined\" ? \"undefined\" : _typeof(input));\n        }\n        var trie = input.reduce(function(accumulator, item) {\n          item.toLowerCase().split(\"\").reduce(_append2.default, accumulator);\n          return accumulator;\n        }, {});\n        return trie;\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/utils.js\n  var require_utils = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/utils.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = {\n        objectCopy: function objectCopy(obj) {\n          if (typeof obj === \"undefined\") {\n            return {};\n          }\n          return JSON.parse(JSON.stringify(obj));\n        },\n        stringify: function stringify(obj) {\n          var spacer = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2;\n          if (typeof obj === \"undefined\") {\n            return \"\";\n          }\n          return JSON.stringify(obj, null, spacer);\n        }\n      };\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/checkPrefix.js\n  var require_checkPrefix = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/checkPrefix.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = checkPrefix;\n      var _utils = require_utils();\n      var _utils2 = _interopRequireDefault(_utils);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function checkPrefix(prefixNode, prefix) {\n        var input = prefix.toLowerCase().split(\"\");\n        var prefixFound = input.every(function(letter, index2) {\n          if (!prefixNode[letter]) {\n            return false;\n          }\n          return prefixNode = prefixNode[letter];\n        });\n        return {\n          prefixFound,\n          prefixNode\n        };\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/recursePrefix.js\n  var require_recursePrefix = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/recursePrefix.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = recursePrefix;\n      var _config = require_config();\n      var _config2 = _interopRequireDefault(_config);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      var pushInOrder = function pushInOrder2(word, prefixes) {\n        var i = 0;\n        while (i < prefixes.length) {\n          if (word < prefixes[i]) {\n            break;\n          }\n          i += 1;\n        }\n        prefixes.splice(i, 0, word);\n        return prefixes;\n      };\n      function recursePrefix(node, prefix, sorted) {\n        var prefixes = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : [];\n        var word = prefix;\n        for (var branch in node) {\n          var currentLetter = branch;\n          if (branch === _config2.default.END_WORD && typeof node[branch] === \"number\") {\n            if (sorted) {\n              pushInOrder(word, prefixes);\n            } else {\n              prefixes.push(word);\n            }\n            word = \"\";\n          } else if (branch === _config2.default.END_WORD_REPLACER) {\n            currentLetter = _config2.default.END_WORD;\n          }\n          recursePrefix(node[branch], prefix + currentLetter, sorted, prefixes);\n        }\n        return prefixes;\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/recurseRandomWord.js\n  var require_recurseRandomWord = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/recurseRandomWord.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      exports.default = recurseRandomWord;\n      var _config = require_config();\n      var _config2 = _interopRequireDefault(_config);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function recurseRandomWord(node, prefix) {\n        var word = prefix;\n        var branches = Object.keys(node);\n        var branch = branches[Math.floor(Math.random() * branches.length)];\n        if (branch === _config2.default.END_WORD) {\n          return word;\n        }\n        return recurseRandomWord(node[branch], prefix + branch);\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/permutations.js\n  var require_permutations = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/permutations.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n        return typeof obj;\n      } : function(obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n      exports.default = permutations;\n      var _config = require_config();\n      var _config2 = _interopRequireDefault(_config);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function permutations(letters, trie) {\n        var opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {\n          type: \"anagram\"\n        };\n        if (typeof letters !== \"string\") {\n          throw \"Permutations expects string letters, received \" + (typeof letters === \"undefined\" ? \"undefined\" : _typeof(letters));\n        }\n        var words = [];\n        var permute = function permute2(word, node) {\n          var prefix = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"\";\n          var wordIsEmpty = word.length === 0;\n          var wordFound = words.indexOf(prefix) !== -1;\n          var endWordFound = node[_config2.default.END_WORD] === 1;\n          if (wordIsEmpty && endWordFound && !wordFound) {\n            words.push(prefix);\n          }\n          for (var i = 0, len = word.length; i < len; i++) {\n            var letter = word[i];\n            if (opts.type === \"sub-anagram\") {\n              if (endWordFound && !(words.indexOf(prefix) !== -1)) {\n                words.push(prefix);\n              }\n            }\n            if (node[letter]) {\n              var remaining = word.substring(0, i) + word.substring(i + 1, len);\n              permute2(remaining, node[letter], prefix + letter, words);\n            }\n          }\n          return words.sort();\n        };\n        return permute(letters, trie);\n      }\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/trie-prefix-tree/dist/index.js\n  var require_dist = __commonJS({\n    \"../node_modules/trie-prefix-tree/dist/index.js\"(exports, module) {\n      \"use strict\";\n      Object.defineProperty(exports, \"__esModule\", {\n        value: true\n      });\n      var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n        return typeof obj;\n      } : function(obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n      exports.default = function(input) {\n        if (!Array.isArray(input)) {\n          throw \"Expected parameter Array, received \" + (typeof input === \"undefined\" ? \"undefined\" : _typeof(input));\n        }\n        var trie = (0, _create2.default)([].concat(_toConsumableArray(input)));\n        return {\n          /**\n           * Get the generated raw trie object\n          */\n          tree: function tree() {\n            return trie;\n          },\n          /**\n           * Get a string representation of the trie\n          */\n          dump: function dump() {\n            var spacer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;\n            return _utils2.default.stringify(trie, spacer);\n          },\n          /**\n           * Add a new word to the trie\n           */\n          addWord: function addWord(word) {\n            if (typeof word !== \"string\" || word === \"\") {\n              throw \"Expected parameter string, received \" + (typeof word === \"undefined\" ? \"undefined\" : _typeof(word));\n            }\n            var reducer = function reducer2() {\n              return _append2.default.apply(void 0, arguments);\n            };\n            var input2 = word.toLowerCase().split(\"\");\n            input2.reduce(reducer, trie);\n            return this;\n          },\n          /**\n           * Remove an existing word from the trie\n           */\n          removeWord: function removeWord(word) {\n            if (typeof word !== \"string\" || word === \"\") {\n              throw \"Expected parameter string, received \" + (typeof word === \"undefined\" ? \"undefined\" : _typeof(word));\n            }\n            var _checkPrefix = (0, _checkPrefix6.default)(trie, word), prefixFound = _checkPrefix.prefixFound, prefixNode = _checkPrefix.prefixNode;\n            if (prefixFound) {\n              delete prefixNode[_config2.default.END_WORD];\n            }\n            return this;\n          },\n          /**\n           * Check a prefix is valid\n           * @returns Boolean\n          */\n          isPrefix: function isPrefix(prefix) {\n            if (typeof prefix !== \"string\") {\n              throw \"Expected string prefix, received \" + (typeof prefix === \"undefined\" ? \"undefined\" : _typeof(prefix));\n            }\n            var _checkPrefix2 = (0, _checkPrefix6.default)(trie, prefix), prefixFound = _checkPrefix2.prefixFound;\n            return prefixFound;\n          },\n          /**\n          * Get a list of all words in the trie with the given prefix\n          * @returns Array\n          */\n          getPrefix: function getPrefix(strPrefix) {\n            var sorted = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n            if (typeof strPrefix !== \"string\") {\n              throw \"Expected string prefix, received \" + (typeof strPrefix === \"undefined\" ? \"undefined\" : _typeof(strPrefix));\n            }\n            if (typeof sorted !== \"boolean\") {\n              throw \"Expected sort parameter as boolean, received \" + (typeof sorted === \"undefined\" ? \"undefined\" : _typeof(sorted));\n            }\n            if (!this.isPrefix(strPrefix)) {\n              return [];\n            }\n            var prefixNode = strPrefix.length ? (0, _checkPrefix6.default)(trie, strPrefix).prefixNode : trie;\n            return (0, _recursePrefix2.default)(prefixNode, strPrefix, sorted);\n          },\n          /**\n          * Get a random word in the trie with the given prefix\n          * @returns Array\n          */\n          getRandomWordWithPrefix: function getRandomWordWithPrefix(strPrefix) {\n            if (typeof strPrefix !== \"string\") {\n              throw \"Expected string prefix, received \" + (typeof strPrefix === \"undefined\" ? \"undefined\" : _typeof(strPrefix));\n            }\n            if (!this.isPrefix(strPrefix)) {\n              return \"\";\n            }\n            var _checkPrefix3 = (0, _checkPrefix6.default)(trie, strPrefix), prefixNode = _checkPrefix3.prefixNode;\n            return (0, _recurseRandomWord2.default)(prefixNode, strPrefix);\n          },\n          /**\n          * Count the number of words with the given prefixSearch\n          * @returns Number\n          */\n          countPrefix: function countPrefix(strPrefix) {\n            var prefixes = this.getPrefix(strPrefix);\n            return prefixes.length;\n          },\n          /**\n          * Get all words in the trie\n          * @returns Array\n          */\n          getWords: function getWords() {\n            var sorted = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n            return this.getPrefix(\"\", sorted);\n          },\n          /**\n          * Check the existence of a word in the trie\n          * @returns Boolean\n          */\n          hasWord: function hasWord(word) {\n            if (typeof word !== \"string\") {\n              throw \"Expected string word, received \" + (typeof word === \"undefined\" ? \"undefined\" : _typeof(word));\n            }\n            var _checkPrefix4 = (0, _checkPrefix6.default)(trie, word), prefixFound = _checkPrefix4.prefixFound, prefixNode = _checkPrefix4.prefixNode;\n            if (prefixFound) {\n              return prefixNode[_config2.default.END_WORD] === 1;\n            }\n            return false;\n          },\n          /**\n          * Get a list of valid anagrams that can be made from the given letters\n          * @returns Array\n          */\n          getAnagrams: function getAnagrams(letters) {\n            if (typeof letters !== \"string\") {\n              throw \"Anagrams expected string letters, received \" + (typeof letters === \"undefined\" ? \"undefined\" : _typeof(letters));\n            }\n            if (letters.length < PERMS_MIN_LEN) {\n              throw \"getAnagrams expects at least \" + PERMS_MIN_LEN + \" letters\";\n            }\n            return (0, _permutations2.default)(letters, trie, {\n              type: \"anagram\"\n            });\n          },\n          /**\n          * Get a list of all sub-anagrams that can be made from the given letters\n          * @returns Array\n          */\n          getSubAnagrams: function getSubAnagrams(letters) {\n            if (typeof letters !== \"string\") {\n              throw \"Expected string letters, received \" + (typeof letters === \"undefined\" ? \"undefined\" : _typeof(letters));\n            }\n            if (letters.length < PERMS_MIN_LEN) {\n              throw \"getSubAnagrams expects at least \" + PERMS_MIN_LEN + \" letters\";\n            }\n            return (0, _permutations2.default)(letters, trie, {\n              type: \"sub-anagram\"\n            });\n          }\n        };\n      };\n      var _create = require_create();\n      var _create2 = _interopRequireDefault(_create);\n      var _append = require_append();\n      var _append2 = _interopRequireDefault(_append);\n      var _checkPrefix5 = require_checkPrefix();\n      var _checkPrefix6 = _interopRequireDefault(_checkPrefix5);\n      var _recursePrefix = require_recursePrefix();\n      var _recursePrefix2 = _interopRequireDefault(_recursePrefix);\n      var _recurseRandomWord = require_recurseRandomWord();\n      var _recurseRandomWord2 = _interopRequireDefault(_recurseRandomWord);\n      var _utils = require_utils();\n      var _utils2 = _interopRequireDefault(_utils);\n      var _config = require_config();\n      var _config2 = _interopRequireDefault(_config);\n      var _permutations = require_permutations();\n      var _permutations2 = _interopRequireDefault(_permutations);\n      function _interopRequireDefault(obj) {\n        return obj && obj.__esModule ? obj : { default: obj };\n      }\n      function _toConsumableArray(arr) {\n        if (Array.isArray(arr)) {\n          for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n            arr2[i] = arr[i];\n          }\n          return arr2;\n        } else {\n          return Array.from(arr);\n        }\n      }\n      var PERMS_MIN_LEN = _config2.default.PERMS_MIN_LEN;\n      module.exports = exports[\"default\"];\n    }\n  });\n\n  // ../node_modules/color-name/index.js\n  var require_color_name = __commonJS({\n    \"../node_modules/color-name/index.js\"(exports, module) {\n      \"use strict\";\n      module.exports = {\n        \"aliceblue\": [240, 248, 255],\n        \"antiquewhite\": [250, 235, 215],\n        \"aqua\": [0, 255, 255],\n        \"aquamarine\": [127, 255, 212],\n        \"azure\": [240, 255, 255],\n        \"beige\": [245, 245, 220],\n        \"bisque\": [255, 228, 196],\n        \"black\": [0, 0, 0],\n        \"blanchedalmond\": [255, 235, 205],\n        \"blue\": [0, 0, 255],\n        \"blueviolet\": [138, 43, 226],\n        \"brown\": [165, 42, 42],\n        \"burlywood\": [222, 184, 135],\n        \"cadetblue\": [95, 158, 160],\n        \"chartreuse\": [127, 255, 0],\n        \"chocolate\": [210, 105, 30],\n        \"coral\": [255, 127, 80],\n        \"cornflowerblue\": [100, 149, 237],\n        \"cornsilk\": [255, 248, 220],\n        \"crimson\": [220, 20, 60],\n        \"cyan\": [0, 255, 255],\n        \"darkblue\": [0, 0, 139],\n        \"darkcyan\": [0, 139, 139],\n        \"darkgoldenrod\": [184, 134, 11],\n        \"darkgray\": [169, 169, 169],\n        \"darkgreen\": [0, 100, 0],\n        \"darkgrey\": [169, 169, 169],\n        \"darkkhaki\": [189, 183, 107],\n        \"darkmagenta\": [139, 0, 139],\n        \"darkolivegreen\": [85, 107, 47],\n        \"darkorange\": [255, 140, 0],\n        \"darkorchid\": [153, 50, 204],\n        \"darkred\": [139, 0, 0],\n        \"darksalmon\": [233, 150, 122],\n        \"darkseagreen\": [143, 188, 143],\n        \"darkslateblue\": [72, 61, 139],\n        \"darkslategray\": [47, 79, 79],\n        \"darkslategrey\": [47, 79, 79],\n        \"darkturquoise\": [0, 206, 209],\n        \"darkviolet\": [148, 0, 211],\n        \"deeppink\": [255, 20, 147],\n        \"deepskyblue\": [0, 191, 255],\n        \"dimgray\": [105, 105, 105],\n        \"dimgrey\": [105, 105, 105],\n        \"dodgerblue\": [30, 144, 255],\n        \"firebrick\": [178, 34, 34],\n        \"floralwhite\": [255, 250, 240],\n        \"forestgreen\": [34, 139, 34],\n        \"fuchsia\": [255, 0, 255],\n        \"gainsboro\": [220, 220, 220],\n        \"ghostwhite\": [248, 248, 255],\n        \"gold\": [255, 215, 0],\n        \"goldenrod\": [218, 165, 32],\n        \"gray\": [128, 128, 128],\n        \"green\": [0, 128, 0],\n        \"greenyellow\": [173, 255, 47],\n        \"grey\": [128, 128, 128],\n        \"honeydew\": [240, 255, 240],\n        \"hotpink\": [255, 105, 180],\n        \"indianred\": [205, 92, 92],\n        \"indigo\": [75, 0, 130],\n        \"ivory\": [255, 255, 240],\n        \"khaki\": [240, 230, 140],\n        \"lavender\": [230, 230, 250],\n        \"lavenderblush\": [255, 240, 245],\n        \"lawngreen\": [124, 252, 0],\n        \"lemonchiffon\": [255, 250, 205],\n        \"lightblue\": [173, 216, 230],\n        \"lightcoral\": [240, 128, 128],\n        \"lightcyan\": [224, 255, 255],\n        \"lightgoldenrodyellow\": [250, 250, 210],\n        \"lightgray\": [211, 211, 211],\n        \"lightgreen\": [144, 238, 144],\n        \"lightgrey\": [211, 211, 211],\n        \"lightpink\": [255, 182, 193],\n        \"lightsalmon\": [255, 160, 122],\n        \"lightseagreen\": [32, 178, 170],\n        \"lightskyblue\": [135, 206, 250],\n        \"lightslategray\": [119, 136, 153],\n        \"lightslategrey\": [119, 136, 153],\n        \"lightsteelblue\": [176, 196, 222],\n        \"lightyellow\": [255, 255, 224],\n        \"lime\": [0, 255, 0],\n        \"limegreen\": [50, 205, 50],\n        \"linen\": [250, 240, 230],\n        \"magenta\": [255, 0, 255],\n        \"maroon\": [128, 0, 0],\n        \"mediumaquamarine\": [102, 205, 170],\n        \"mediumblue\": [0, 0, 205],\n        \"mediumorchid\": [186, 85, 211],\n        \"mediumpurple\": [147, 112, 219],\n        \"mediumseagreen\": [60, 179, 113],\n        \"mediumslateblue\": [123, 104, 238],\n        \"mediumspringgreen\": [0, 250, 154],\n        \"mediumturquoise\": [72, 209, 204],\n        \"mediumvioletred\": [199, 21, 133],\n        \"midnightblue\": [25, 25, 112],\n        \"mintcream\": [245, 255, 250],\n        \"mistyrose\": [255, 228, 225],\n        \"moccasin\": [255, 228, 181],\n        \"navajowhite\": [255, 222, 173],\n        \"navy\": [0, 0, 128],\n        \"oldlace\": [253, 245, 230],\n        \"olive\": [128, 128, 0],\n        \"olivedrab\": [107, 142, 35],\n        \"orange\": [255, 165, 0],\n        \"orangered\": [255, 69, 0],\n        \"orchid\": [218, 112, 214],\n        \"palegoldenrod\": [238, 232, 170],\n        \"palegreen\": [152, 251, 152],\n        \"paleturquoise\": [175, 238, 238],\n        \"palevioletred\": [219, 112, 147],\n        \"papayawhip\": [255, 239, 213],\n        \"peachpuff\": [255, 218, 185],\n        \"peru\": [205, 133, 63],\n        \"pink\": [255, 192, 203],\n        \"plum\": [221, 160, 221],\n        \"powderblue\": [176, 224, 230],\n        \"purple\": [128, 0, 128],\n        \"rebeccapurple\": [102, 51, 153],\n        \"red\": [255, 0, 0],\n        \"rosybrown\": [188, 143, 143],\n        \"royalblue\": [65, 105, 225],\n        \"saddlebrown\": [139, 69, 19],\n        \"salmon\": [250, 128, 114],\n        \"sandybrown\": [244, 164, 96],\n        \"seagreen\": [46, 139, 87],\n        \"seashell\": [255, 245, 238],\n        \"sienna\": [160, 82, 45],\n        \"silver\": [192, 192, 192],\n        \"skyblue\": [135, 206, 235],\n        \"slateblue\": [106, 90, 205],\n        \"slategray\": [112, 128, 144],\n        \"slategrey\": [112, 128, 144],\n        \"snow\": [255, 250, 250],\n        \"springgreen\": [0, 255, 127],\n        \"steelblue\": [70, 130, 180],\n        \"tan\": [210, 180, 140],\n        \"teal\": [0, 128, 128],\n        \"thistle\": [216, 191, 216],\n        \"tomato\": [255, 99, 71],\n        \"turquoise\": [64, 224, 208],\n        \"violet\": [238, 130, 238],\n        \"wheat\": [245, 222, 179],\n        \"white\": [255, 255, 255],\n        \"whitesmoke\": [245, 245, 245],\n        \"yellow\": [255, 255, 0],\n        \"yellowgreen\": [154, 205, 50]\n      };\n    }\n  });\n\n  // ../node_modules/is-arrayish/index.js\n  var require_is_arrayish = __commonJS({\n    \"../node_modules/is-arrayish/index.js\"(exports, module) {\n      module.exports = function isArrayish(obj) {\n        if (!obj || typeof obj === \"string\") {\n          return false;\n        }\n        return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && (obj.splice instanceof Function || Object.getOwnPropertyDescriptor(obj, obj.length - 1) && obj.constructor.name !== \"String\");\n      };\n    }\n  });\n\n  // ../node_modules/simple-swizzle/index.js\n  var require_simple_swizzle = __commonJS({\n    \"../node_modules/simple-swizzle/index.js\"(exports, module) {\n      \"use strict\";\n      var isArrayish = require_is_arrayish();\n      var concat = Array.prototype.concat;\n      var slice = Array.prototype.slice;\n      var swizzle = module.exports = function swizzle2(args) {\n        var results = [];\n        for (var i = 0, len = args.length; i < len; i++) {\n          var arg2 = args[i];\n          if (isArrayish(arg2)) {\n            results = concat.call(results, slice.call(arg2));\n          } else {\n            results.push(arg2);\n          }\n        }\n        return results;\n      };\n      swizzle.wrap = function(fn) {\n        return function() {\n          return fn(swizzle(arguments));\n        };\n      };\n    }\n  });\n\n  // ../node_modules/color-string/index.js\n  var require_color_string = __commonJS({\n    \"../node_modules/color-string/index.js\"(exports, module) {\n      var colorNames = require_color_name();\n      var swizzle = require_simple_swizzle();\n      var hasOwnProperty = Object.hasOwnProperty;\n      var reverseNames = /* @__PURE__ */ Object.create(null);\n      for (name in colorNames) {\n        if (hasOwnProperty.call(colorNames, name)) {\n          reverseNames[colorNames[name]] = name;\n        }\n      }\n      var name;\n      var cs = module.exports = {\n        to: {},\n        get: {}\n      };\n      cs.get = function(string2) {\n        var prefix = string2.substring(0, 3).toLowerCase();\n        var val;\n        var model;\n        switch (prefix) {\n          case \"hsl\":\n            val = cs.get.hsl(string2);\n            model = \"hsl\";\n            break;\n          case \"hwb\":\n            val = cs.get.hwb(string2);\n            model = \"hwb\";\n            break;\n          default:\n            val = cs.get.rgb(string2);\n            model = \"rgb\";\n            break;\n        }\n        if (!val) {\n          return null;\n        }\n        return { model, value: val };\n      };\n      cs.get.rgb = function(string2) {\n        if (!string2) {\n          return null;\n        }\n        var abbr = /^#([a-f0-9]{3,4})$/i;\n        var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n        var rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n        var per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n        var keyword = /^(\\w+)$/;\n        var rgb = [0, 0, 0, 1];\n        var match2;\n        var i;\n        var hexAlpha;\n        if (match2 = string2.match(hex)) {\n          hexAlpha = match2[2];\n          match2 = match2[1];\n          for (i = 0; i < 3; i++) {\n            var i2 = i * 2;\n            rgb[i] = parseInt(match2.slice(i2, i2 + 2), 16);\n          }\n          if (hexAlpha) {\n            rgb[3] = parseInt(hexAlpha, 16) / 255;\n          }\n        } else if (match2 = string2.match(abbr)) {\n          match2 = match2[1];\n          hexAlpha = match2[3];\n          for (i = 0; i < 3; i++) {\n            rgb[i] = parseInt(match2[i] + match2[i], 16);\n          }\n          if (hexAlpha) {\n            rgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n          }\n        } else if (match2 = string2.match(rgba)) {\n          for (i = 0; i < 3; i++) {\n            rgb[i] = parseInt(match2[i + 1], 0);\n          }\n          if (match2[4]) {\n            if (match2[5]) {\n              rgb[3] = parseFloat(match2[4]) * 0.01;\n            } else {\n              rgb[3] = parseFloat(match2[4]);\n            }\n          }\n        } else if (match2 = string2.match(per)) {\n          for (i = 0; i < 3; i++) {\n            rgb[i] = Math.round(parseFloat(match2[i + 1]) * 2.55);\n          }\n          if (match2[4]) {\n            if (match2[5]) {\n              rgb[3] = parseFloat(match2[4]) * 0.01;\n            } else {\n              rgb[3] = parseFloat(match2[4]);\n            }\n          }\n        } else if (match2 = string2.match(keyword)) {\n          if (match2[1] === \"transparent\") {\n            return [0, 0, 0, 0];\n          }\n          if (!hasOwnProperty.call(colorNames, match2[1])) {\n            return null;\n          }\n          rgb = colorNames[match2[1]];\n          rgb[3] = 1;\n          return rgb;\n        } else {\n          return null;\n        }\n        for (i = 0; i < 3; i++) {\n          rgb[i] = clamp(rgb[i], 0, 255);\n        }\n        rgb[3] = clamp(rgb[3], 0, 1);\n        return rgb;\n      };\n      cs.get.hsl = function(string2) {\n        if (!string2) {\n          return null;\n        }\n        var hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n        var match2 = string2.match(hsl);\n        if (match2) {\n          var alpha = parseFloat(match2[4]);\n          var h = (parseFloat(match2[1]) % 360 + 360) % 360;\n          var s2 = clamp(parseFloat(match2[2]), 0, 100);\n          var l = clamp(parseFloat(match2[3]), 0, 100);\n          var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n          return [h, s2, l, a];\n        }\n        return null;\n      };\n      cs.get.hwb = function(string2) {\n        if (!string2) {\n          return null;\n        }\n        var hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n        var match2 = string2.match(hwb);\n        if (match2) {\n          var alpha = parseFloat(match2[4]);\n          var h = (parseFloat(match2[1]) % 360 + 360) % 360;\n          var w = clamp(parseFloat(match2[2]), 0, 100);\n          var b = clamp(parseFloat(match2[3]), 0, 100);\n          var a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n          return [h, w, b, a];\n        }\n        return null;\n      };\n      cs.to.hex = function() {\n        var rgba = swizzle(arguments);\n        return \"#\" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : \"\");\n      };\n      cs.to.rgb = function() {\n        var rgba = swizzle(arguments);\n        return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \")\" : \"rgba(\" + Math.round(rgba[0]) + \", \" + Math.round(rgba[1]) + \", \" + Math.round(rgba[2]) + \", \" + rgba[3] + \")\";\n      };\n      cs.to.rgb.percent = function() {\n        var rgba = swizzle(arguments);\n        var r = Math.round(rgba[0] / 255 * 100);\n        var g = Math.round(rgba[1] / 255 * 100);\n        var b = Math.round(rgba[2] / 255 * 100);\n        return rgba.length < 4 || rgba[3] === 1 ? \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\" : \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + rgba[3] + \")\";\n      };\n      cs.to.hsl = function() {\n        var hsla = swizzle(arguments);\n        return hsla.length < 4 || hsla[3] === 1 ? \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\" : \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \" + hsla[3] + \")\";\n      };\n      cs.to.hwb = function() {\n        var hwba = swizzle(arguments);\n        var a = \"\";\n        if (hwba.length >= 4 && hwba[3] !== 1) {\n          a = \", \" + hwba[3];\n        }\n        return \"hwb(\" + hwba[0] + \", \" + hwba[1] + \"%, \" + hwba[2] + \"%\" + a + \")\";\n      };\n      cs.to.keyword = function(rgb) {\n        return reverseNames[rgb.slice(0, 3)];\n      };\n      function clamp(num, min, max) {\n        return Math.min(Math.max(min, num), max);\n      }\n      function hexDouble(num) {\n        var str = Math.round(num).toString(16).toUpperCase();\n        return str.length < 2 ? \"0\" + str : str;\n      }\n    }\n  });\n\n  // ../node_modules/color/node_modules/color-name/index.js\n  var require_color_name2 = __commonJS({\n    \"../node_modules/color/node_modules/color-name/index.js\"(exports, module) {\n      \"use strict\";\n      module.exports = {\n        \"aliceblue\": [240, 248, 255],\n        \"antiquewhite\": [250, 235, 215],\n        \"aqua\": [0, 255, 255],\n        \"aquamarine\": [127, 255, 212],\n        \"azure\": [240, 255, 255],\n        \"beige\": [245, 245, 220],\n        \"bisque\": [255, 228, 196],\n        \"black\": [0, 0, 0],\n        \"blanchedalmond\": [255, 235, 205],\n        \"blue\": [0, 0, 255],\n        \"blueviolet\": [138, 43, 226],\n        \"brown\": [165, 42, 42],\n        \"burlywood\": [222, 184, 135],\n        \"cadetblue\": [95, 158, 160],\n        \"chartreuse\": [127, 255, 0],\n        \"chocolate\": [210, 105, 30],\n        \"coral\": [255, 127, 80],\n        \"cornflowerblue\": [100, 149, 237],\n        \"cornsilk\": [255, 248, 220],\n        \"crimson\": [220, 20, 60],\n        \"cyan\": [0, 255, 255],\n        \"darkblue\": [0, 0, 139],\n        \"darkcyan\": [0, 139, 139],\n        \"darkgoldenrod\": [184, 134, 11],\n        \"darkgray\": [169, 169, 169],\n        \"darkgreen\": [0, 100, 0],\n        \"darkgrey\": [169, 169, 169],\n        \"darkkhaki\": [189, 183, 107],\n        \"darkmagenta\": [139, 0, 139],\n        \"darkolivegreen\": [85, 107, 47],\n        \"darkorange\": [255, 140, 0],\n        \"darkorchid\": [153, 50, 204],\n        \"darkred\": [139, 0, 0],\n        \"darksalmon\": [233, 150, 122],\n        \"darkseagreen\": [143, 188, 143],\n        \"darkslateblue\": [72, 61, 139],\n        \"darkslategray\": [47, 79, 79],\n        \"darkslategrey\": [47, 79, 79],\n        \"darkturquoise\": [0, 206, 209],\n        \"darkviolet\": [148, 0, 211],\n        \"deeppink\": [255, 20, 147],\n        \"deepskyblue\": [0, 191, 255],\n        \"dimgray\": [105, 105, 105],\n        \"dimgrey\": [105, 105, 105],\n        \"dodgerblue\": [30, 144, 255],\n        \"firebrick\": [178, 34, 34],\n        \"floralwhite\": [255, 250, 240],\n        \"forestgreen\": [34, 139, 34],\n        \"fuchsia\": [255, 0, 255],\n        \"gainsboro\": [220, 220, 220],\n        \"ghostwhite\": [248, 248, 255],\n        \"gold\": [255, 215, 0],\n        \"goldenrod\": [218, 165, 32],\n        \"gray\": [128, 128, 128],\n        \"green\": [0, 128, 0],\n        \"greenyellow\": [173, 255, 47],\n        \"grey\": [128, 128, 128],\n        \"honeydew\": [240, 255, 240],\n        \"hotpink\": [255, 105, 180],\n        \"indianred\": [205, 92, 92],\n        \"indigo\": [75, 0, 130],\n        \"ivory\": [255, 255, 240],\n        \"khaki\": [240, 230, 140],\n        \"lavender\": [230, 230, 250],\n        \"lavenderblush\": [255, 240, 245],\n        \"lawngreen\": [124, 252, 0],\n        \"lemonchiffon\": [255, 250, 205],\n        \"lightblue\": [173, 216, 230],\n        \"lightcoral\": [240, 128, 128],\n        \"lightcyan\": [224, 255, 255],\n        \"lightgoldenrodyellow\": [250, 250, 210],\n        \"lightgray\": [211, 211, 211],\n        \"lightgreen\": [144, 238, 144],\n        \"lightgrey\": [211, 211, 211],\n        \"lightpink\": [255, 182, 193],\n        \"lightsalmon\": [255, 160, 122],\n        \"lightseagreen\": [32, 178, 170],\n        \"lightskyblue\": [135, 206, 250],\n        \"lightslategray\": [119, 136, 153],\n        \"lightslategrey\": [119, 136, 153],\n        \"lightsteelblue\": [176, 196, 222],\n        \"lightyellow\": [255, 255, 224],\n        \"lime\": [0, 255, 0],\n        \"limegreen\": [50, 205, 50],\n        \"linen\": [250, 240, 230],\n        \"magenta\": [255, 0, 255],\n        \"maroon\": [128, 0, 0],\n        \"mediumaquamarine\": [102, 205, 170],\n        \"mediumblue\": [0, 0, 205],\n        \"mediumorchid\": [186, 85, 211],\n        \"mediumpurple\": [147, 112, 219],\n        \"mediumseagreen\": [60, 179, 113],\n        \"mediumslateblue\": [123, 104, 238],\n        \"mediumspringgreen\": [0, 250, 154],\n        \"mediumturquoise\": [72, 209, 204],\n        \"mediumvioletred\": [199, 21, 133],\n        \"midnightblue\": [25, 25, 112],\n        \"mintcream\": [245, 255, 250],\n        \"mistyrose\": [255, 228, 225],\n        \"moccasin\": [255, 228, 181],\n        \"navajowhite\": [255, 222, 173],\n        \"navy\": [0, 0, 128],\n        \"oldlace\": [253, 245, 230],\n        \"olive\": [128, 128, 0],\n        \"olivedrab\": [107, 142, 35],\n        \"orange\": [255, 165, 0],\n        \"orangered\": [255, 69, 0],\n        \"orchid\": [218, 112, 214],\n        \"palegoldenrod\": [238, 232, 170],\n        \"palegreen\": [152, 251, 152],\n        \"paleturquoise\": [175, 238, 238],\n        \"palevioletred\": [219, 112, 147],\n        \"papayawhip\": [255, 239, 213],\n        \"peachpuff\": [255, 218, 185],\n        \"peru\": [205, 133, 63],\n        \"pink\": [255, 192, 203],\n        \"plum\": [221, 160, 221],\n        \"powderblue\": [176, 224, 230],\n        \"purple\": [128, 0, 128],\n        \"rebeccapurple\": [102, 51, 153],\n        \"red\": [255, 0, 0],\n        \"rosybrown\": [188, 143, 143],\n        \"royalblue\": [65, 105, 225],\n        \"saddlebrown\": [139, 69, 19],\n        \"salmon\": [250, 128, 114],\n        \"sandybrown\": [244, 164, 96],\n        \"seagreen\": [46, 139, 87],\n        \"seashell\": [255, 245, 238],\n        \"sienna\": [160, 82, 45],\n        \"silver\": [192, 192, 192],\n        \"skyblue\": [135, 206, 235],\n        \"slateblue\": [106, 90, 205],\n        \"slategray\": [112, 128, 144],\n        \"slategrey\": [112, 128, 144],\n        \"snow\": [255, 250, 250],\n        \"springgreen\": [0, 255, 127],\n        \"steelblue\": [70, 130, 180],\n        \"tan\": [210, 180, 140],\n        \"teal\": [0, 128, 128],\n        \"thistle\": [216, 191, 216],\n        \"tomato\": [255, 99, 71],\n        \"turquoise\": [64, 224, 208],\n        \"violet\": [238, 130, 238],\n        \"wheat\": [245, 222, 179],\n        \"white\": [255, 255, 255],\n        \"whitesmoke\": [245, 245, 245],\n        \"yellow\": [255, 255, 0],\n        \"yellowgreen\": [154, 205, 50]\n      };\n    }\n  });\n\n  // ../node_modules/color/node_modules/color-convert/conversions.js\n  var require_conversions = __commonJS({\n    \"../node_modules/color/node_modules/color-convert/conversions.js\"(exports, module) {\n      var cssKeywords = require_color_name2();\n      var reverseKeywords = {};\n      for (const key of Object.keys(cssKeywords)) {\n        reverseKeywords[cssKeywords[key]] = key;\n      }\n      var convert = {\n        rgb: { channels: 3, labels: \"rgb\" },\n        hsl: { channels: 3, labels: \"hsl\" },\n        hsv: { channels: 3, labels: \"hsv\" },\n        hwb: { channels: 3, labels: \"hwb\" },\n        cmyk: { channels: 4, labels: \"cmyk\" },\n        xyz: { channels: 3, labels: \"xyz\" },\n        lab: { channels: 3, labels: \"lab\" },\n        lch: { channels: 3, labels: \"lch\" },\n        hex: { channels: 1, labels: [\"hex\"] },\n        keyword: { channels: 1, labels: [\"keyword\"] },\n        ansi16: { channels: 1, labels: [\"ansi16\"] },\n        ansi256: { channels: 1, labels: [\"ansi256\"] },\n        hcg: { channels: 3, labels: [\"h\", \"c\", \"g\"] },\n        apple: { channels: 3, labels: [\"r16\", \"g16\", \"b16\"] },\n        gray: { channels: 1, labels: [\"gray\"] }\n      };\n      module.exports = convert;\n      for (const model of Object.keys(convert)) {\n        if (!(\"channels\" in convert[model])) {\n          throw new Error(\"missing channels property: \" + model);\n        }\n        if (!(\"labels\" in convert[model])) {\n          throw new Error(\"missing channel labels property: \" + model);\n        }\n        if (convert[model].labels.length !== convert[model].channels) {\n          throw new Error(\"channel and label counts mismatch: \" + model);\n        }\n        const { channels, labels } = convert[model];\n        delete convert[model].channels;\n        delete convert[model].labels;\n        Object.defineProperty(convert[model], \"channels\", { value: channels });\n        Object.defineProperty(convert[model], \"labels\", { value: labels });\n      }\n      convert.rgb.hsl = function(rgb) {\n        const r = rgb[0] / 255;\n        const g = rgb[1] / 255;\n        const b = rgb[2] / 255;\n        const min = Math.min(r, g, b);\n        const max = Math.max(r, g, b);\n        const delta = max - min;\n        let h;\n        let s2;\n        if (max === min) {\n          h = 0;\n        } else if (r === max) {\n          h = (g - b) / delta;\n        } else if (g === max) {\n          h = 2 + (b - r) / delta;\n        } else if (b === max) {\n          h = 4 + (r - g) / delta;\n        }\n        h = Math.min(h * 60, 360);\n        if (h < 0) {\n          h += 360;\n        }\n        const l = (min + max) / 2;\n        if (max === min) {\n          s2 = 0;\n        } else if (l <= 0.5) {\n          s2 = delta / (max + min);\n        } else {\n          s2 = delta / (2 - max - min);\n        }\n        return [h, s2 * 100, l * 100];\n      };\n      convert.rgb.hsv = function(rgb) {\n        let rdif;\n        let gdif;\n        let bdif;\n        let h;\n        let s2;\n        const r = rgb[0] / 255;\n        const g = rgb[1] / 255;\n        const b = rgb[2] / 255;\n        const v = Math.max(r, g, b);\n        const diff = v - Math.min(r, g, b);\n        const diffc = function(c) {\n          return (v - c) / 6 / diff + 1 / 2;\n        };\n        if (diff === 0) {\n          h = 0;\n          s2 = 0;\n        } else {\n          s2 = diff / v;\n          rdif = diffc(r);\n          gdif = diffc(g);\n          bdif = diffc(b);\n          if (r === v) {\n            h = bdif - gdif;\n          } else if (g === v) {\n            h = 1 / 3 + rdif - bdif;\n          } else if (b === v) {\n            h = 2 / 3 + gdif - rdif;\n          }\n          if (h < 0) {\n            h += 1;\n          } else if (h > 1) {\n            h -= 1;\n          }\n        }\n        return [\n          h * 360,\n          s2 * 100,\n          v * 100\n        ];\n      };\n      convert.rgb.hwb = function(rgb) {\n        const r = rgb[0];\n        const g = rgb[1];\n        let b = rgb[2];\n        const h = convert.rgb.hsl(rgb)[0];\n        const w = 1 / 255 * Math.min(r, Math.min(g, b));\n        b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n        return [h, w * 100, b * 100];\n      };\n      convert.rgb.cmyk = function(rgb) {\n        const r = rgb[0] / 255;\n        const g = rgb[1] / 255;\n        const b = rgb[2] / 255;\n        const k = Math.min(1 - r, 1 - g, 1 - b);\n        const c = (1 - r - k) / (1 - k) || 0;\n        const m = (1 - g - k) / (1 - k) || 0;\n        const y = (1 - b - k) / (1 - k) || 0;\n        return [c * 100, m * 100, y * 100, k * 100];\n      };\n      function comparativeDistance(x, y) {\n        return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;\n      }\n      convert.rgb.keyword = function(rgb) {\n        const reversed = reverseKeywords[rgb];\n        if (reversed) {\n          return reversed;\n        }\n        let currentClosestDistance = Infinity;\n        let currentClosestKeyword;\n        for (const keyword of Object.keys(cssKeywords)) {\n          const value = cssKeywords[keyword];\n          const distance = comparativeDistance(rgb, value);\n          if (distance < currentClosestDistance) {\n            currentClosestDistance = distance;\n            currentClosestKeyword = keyword;\n          }\n        }\n        return currentClosestKeyword;\n      };\n      convert.keyword.rgb = function(keyword) {\n        return cssKeywords[keyword];\n      };\n      convert.rgb.xyz = function(rgb) {\n        let r = rgb[0] / 255;\n        let g = rgb[1] / 255;\n        let b = rgb[2] / 255;\n        r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92;\n        g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92;\n        b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;\n        const x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n        const y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n        const z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n        return [x * 100, y * 100, z * 100];\n      };\n      convert.rgb.lab = function(rgb) {\n        const xyz = convert.rgb.xyz(rgb);\n        let x = xyz[0];\n        let y = xyz[1];\n        let z = xyz[2];\n        x /= 95.047;\n        y /= 100;\n        z /= 108.883;\n        x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n        y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n        z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n        const l = 116 * y - 16;\n        const a = 500 * (x - y);\n        const b = 200 * (y - z);\n        return [l, a, b];\n      };\n      convert.hsl.rgb = function(hsl) {\n        const h = hsl[0] / 360;\n        const s2 = hsl[1] / 100;\n        const l = hsl[2] / 100;\n        let t2;\n        let t3;\n        let val;\n        if (s2 === 0) {\n          val = l * 255;\n          return [val, val, val];\n        }\n        if (l < 0.5) {\n          t2 = l * (1 + s2);\n        } else {\n          t2 = l + s2 - l * s2;\n        }\n        const t1 = 2 * l - t2;\n        const rgb = [0, 0, 0];\n        for (let i = 0; i < 3; i++) {\n          t3 = h + 1 / 3 * -(i - 1);\n          if (t3 < 0) {\n            t3++;\n          }\n          if (t3 > 1) {\n            t3--;\n          }\n          if (6 * t3 < 1) {\n            val = t1 + (t2 - t1) * 6 * t3;\n          } else if (2 * t3 < 1) {\n            val = t2;\n          } else if (3 * t3 < 2) {\n            val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n          } else {\n            val = t1;\n          }\n          rgb[i] = val * 255;\n        }\n        return rgb;\n      };\n      convert.hsl.hsv = function(hsl) {\n        const h = hsl[0];\n        let s2 = hsl[1] / 100;\n        let l = hsl[2] / 100;\n        let smin = s2;\n        const lmin = Math.max(l, 0.01);\n        l *= 2;\n        s2 *= l <= 1 ? l : 2 - l;\n        smin *= lmin <= 1 ? lmin : 2 - lmin;\n        const v = (l + s2) / 2;\n        const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s2 / (l + s2);\n        return [h, sv * 100, v * 100];\n      };\n      convert.hsv.rgb = function(hsv) {\n        const h = hsv[0] / 60;\n        const s2 = hsv[1] / 100;\n        let v = hsv[2] / 100;\n        const hi = Math.floor(h) % 6;\n        const f = h - Math.floor(h);\n        const p = 255 * v * (1 - s2);\n        const q = 255 * v * (1 - s2 * f);\n        const t = 255 * v * (1 - s2 * (1 - f));\n        v *= 255;\n        switch (hi) {\n          case 0:\n            return [v, t, p];\n          case 1:\n            return [q, v, p];\n          case 2:\n            return [p, v, t];\n          case 3:\n            return [p, q, v];\n          case 4:\n            return [t, p, v];\n          case 5:\n            return [v, p, q];\n        }\n      };\n      convert.hsv.hsl = function(hsv) {\n        const h = hsv[0];\n        const s2 = hsv[1] / 100;\n        const v = hsv[2] / 100;\n        const vmin = Math.max(v, 0.01);\n        let sl;\n        let l;\n        l = (2 - s2) * v;\n        const lmin = (2 - s2) * vmin;\n        sl = s2 * vmin;\n        sl /= lmin <= 1 ? lmin : 2 - lmin;\n        sl = sl || 0;\n        l /= 2;\n        return [h, sl * 100, l * 100];\n      };\n      convert.hwb.rgb = function(hwb) {\n        const h = hwb[0] / 360;\n        let wh = hwb[1] / 100;\n        let bl = hwb[2] / 100;\n        const ratio = wh + bl;\n        let f;\n        if (ratio > 1) {\n          wh /= ratio;\n          bl /= ratio;\n        }\n        const i = Math.floor(6 * h);\n        const v = 1 - bl;\n        f = 6 * h - i;\n        if ((i & 1) !== 0) {\n          f = 1 - f;\n        }\n        const n = wh + f * (v - wh);\n        let r;\n        let g;\n        let b;\n        switch (i) {\n          default:\n          case 6:\n          case 0:\n            r = v;\n            g = n;\n            b = wh;\n            break;\n          case 1:\n            r = n;\n            g = v;\n            b = wh;\n            break;\n          case 2:\n            r = wh;\n            g = v;\n            b = n;\n            break;\n          case 3:\n            r = wh;\n            g = n;\n            b = v;\n            break;\n          case 4:\n            r = n;\n            g = wh;\n            b = v;\n            break;\n          case 5:\n            r = v;\n            g = wh;\n            b = n;\n            break;\n        }\n        return [r * 255, g * 255, b * 255];\n      };\n      convert.cmyk.rgb = function(cmyk) {\n        const c = cmyk[0] / 100;\n        const m = cmyk[1] / 100;\n        const y = cmyk[2] / 100;\n        const k = cmyk[3] / 100;\n        const r = 1 - Math.min(1, c * (1 - k) + k);\n        const g = 1 - Math.min(1, m * (1 - k) + k);\n        const b = 1 - Math.min(1, y * (1 - k) + k);\n        return [r * 255, g * 255, b * 255];\n      };\n      convert.xyz.rgb = function(xyz) {\n        const x = xyz[0] / 100;\n        const y = xyz[1] / 100;\n        const z = xyz[2] / 100;\n        let r;\n        let g;\n        let b;\n        r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n        g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n        b = x * 0.0557 + y * -0.204 + z * 1.057;\n        r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92;\n        g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92;\n        b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92;\n        r = Math.min(Math.max(0, r), 1);\n        g = Math.min(Math.max(0, g), 1);\n        b = Math.min(Math.max(0, b), 1);\n        return [r * 255, g * 255, b * 255];\n      };\n      convert.xyz.lab = function(xyz) {\n        let x = xyz[0];\n        let y = xyz[1];\n        let z = xyz[2];\n        x /= 95.047;\n        y /= 100;\n        z /= 108.883;\n        x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116;\n        y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116;\n        z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;\n        const l = 116 * y - 16;\n        const a = 500 * (x - y);\n        const b = 200 * (y - z);\n        return [l, a, b];\n      };\n      convert.lab.xyz = function(lab) {\n        const l = lab[0];\n        const a = lab[1];\n        const b = lab[2];\n        let x;\n        let y;\n        let z;\n        y = (l + 16) / 116;\n        x = a / 500 + y;\n        z = y - b / 200;\n        const y2 = y ** 3;\n        const x2 = x ** 3;\n        const z2 = z ** 3;\n        y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787;\n        x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787;\n        z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787;\n        x *= 95.047;\n        y *= 100;\n        z *= 108.883;\n        return [x, y, z];\n      };\n      convert.lab.lch = function(lab) {\n        const l = lab[0];\n        const a = lab[1];\n        const b = lab[2];\n        let h;\n        const hr = Math.atan2(b, a);\n        h = hr * 360 / 2 / Math.PI;\n        if (h < 0) {\n          h += 360;\n        }\n        const c = Math.sqrt(a * a + b * b);\n        return [l, c, h];\n      };\n      convert.lch.lab = function(lch) {\n        const l = lch[0];\n        const c = lch[1];\n        const h = lch[2];\n        const hr = h / 360 * 2 * Math.PI;\n        const a = c * Math.cos(hr);\n        const b = c * Math.sin(hr);\n        return [l, a, b];\n      };\n      convert.rgb.ansi16 = function(args, saturation = null) {\n        const [r, g, b] = args;\n        let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n        value = Math.round(value / 50);\n        if (value === 0) {\n          return 30;\n        }\n        let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n        if (value === 2) {\n          ansi += 60;\n        }\n        return ansi;\n      };\n      convert.hsv.ansi16 = function(args) {\n        return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n      };\n      convert.rgb.ansi256 = function(args) {\n        const r = args[0];\n        const g = args[1];\n        const b = args[2];\n        if (r === g && g === b) {\n          if (r < 8) {\n            return 16;\n          }\n          if (r > 248) {\n            return 231;\n          }\n          return Math.round((r - 8) / 247 * 24) + 232;\n        }\n        const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n        return ansi;\n      };\n      convert.ansi16.rgb = function(args) {\n        let color = args % 10;\n        if (color === 0 || color === 7) {\n          if (args > 50) {\n            color += 3.5;\n          }\n          color = color / 10.5 * 255;\n          return [color, color, color];\n        }\n        const mult = (~~(args > 50) + 1) * 0.5;\n        const r = (color & 1) * mult * 255;\n        const g = (color >> 1 & 1) * mult * 255;\n        const b = (color >> 2 & 1) * mult * 255;\n        return [r, g, b];\n      };\n      convert.ansi256.rgb = function(args) {\n        if (args >= 232) {\n          const c = (args - 232) * 10 + 8;\n          return [c, c, c];\n        }\n        args -= 16;\n        let rem;\n        const r = Math.floor(args / 36) / 5 * 255;\n        const g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n        const b = rem % 6 / 5 * 255;\n        return [r, g, b];\n      };\n      convert.rgb.hex = function(args) {\n        const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255);\n        const string2 = integer.toString(16).toUpperCase();\n        return \"000000\".substring(string2.length) + string2;\n      };\n      convert.hex.rgb = function(args) {\n        const match2 = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n        if (!match2) {\n          return [0, 0, 0];\n        }\n        let colorString = match2[0];\n        if (match2[0].length === 3) {\n          colorString = colorString.split(\"\").map((char) => {\n            return char + char;\n          }).join(\"\");\n        }\n        const integer = parseInt(colorString, 16);\n        const r = integer >> 16 & 255;\n        const g = integer >> 8 & 255;\n        const b = integer & 255;\n        return [r, g, b];\n      };\n      convert.rgb.hcg = function(rgb) {\n        const r = rgb[0] / 255;\n        const g = rgb[1] / 255;\n        const b = rgb[2] / 255;\n        const max = Math.max(Math.max(r, g), b);\n        const min = Math.min(Math.min(r, g), b);\n        const chroma = max - min;\n        let grayscale;\n        let hue;\n        if (chroma < 1) {\n          grayscale = min / (1 - chroma);\n        } else {\n          grayscale = 0;\n        }\n        if (chroma <= 0) {\n          hue = 0;\n        } else if (max === r) {\n          hue = (g - b) / chroma % 6;\n        } else if (max === g) {\n          hue = 2 + (b - r) / chroma;\n        } else {\n          hue = 4 + (r - g) / chroma;\n        }\n        hue /= 6;\n        hue %= 1;\n        return [hue * 360, chroma * 100, grayscale * 100];\n      };\n      convert.hsl.hcg = function(hsl) {\n        const s2 = hsl[1] / 100;\n        const l = hsl[2] / 100;\n        const c = l < 0.5 ? 2 * s2 * l : 2 * s2 * (1 - l);\n        let f = 0;\n        if (c < 1) {\n          f = (l - 0.5 * c) / (1 - c);\n        }\n        return [hsl[0], c * 100, f * 100];\n      };\n      convert.hsv.hcg = function(hsv) {\n        const s2 = hsv[1] / 100;\n        const v = hsv[2] / 100;\n        const c = s2 * v;\n        let f = 0;\n        if (c < 1) {\n          f = (v - c) / (1 - c);\n        }\n        return [hsv[0], c * 100, f * 100];\n      };\n      convert.hcg.rgb = function(hcg) {\n        const h = hcg[0] / 360;\n        const c = hcg[1] / 100;\n        const g = hcg[2] / 100;\n        if (c === 0) {\n          return [g * 255, g * 255, g * 255];\n        }\n        const pure = [0, 0, 0];\n        const hi = h % 1 * 6;\n        const v = hi % 1;\n        const w = 1 - v;\n        let mg = 0;\n        switch (Math.floor(hi)) {\n          case 0:\n            pure[0] = 1;\n            pure[1] = v;\n            pure[2] = 0;\n            break;\n          case 1:\n            pure[0] = w;\n            pure[1] = 1;\n            pure[2] = 0;\n            break;\n          case 2:\n            pure[0] = 0;\n            pure[1] = 1;\n            pure[2] = v;\n            break;\n          case 3:\n            pure[0] = 0;\n            pure[1] = w;\n            pure[2] = 1;\n            break;\n          case 4:\n            pure[0] = v;\n            pure[1] = 0;\n            pure[2] = 1;\n            break;\n          default:\n            pure[0] = 1;\n            pure[1] = 0;\n            pure[2] = w;\n        }\n        mg = (1 - c) * g;\n        return [\n          (c * pure[0] + mg) * 255,\n          (c * pure[1] + mg) * 255,\n          (c * pure[2] + mg) * 255\n        ];\n      };\n      convert.hcg.hsv = function(hcg) {\n        const c = hcg[1] / 100;\n        const g = hcg[2] / 100;\n        const v = c + g * (1 - c);\n        let f = 0;\n        if (v > 0) {\n          f = c / v;\n        }\n        return [hcg[0], f * 100, v * 100];\n      };\n      convert.hcg.hsl = function(hcg) {\n        const c = hcg[1] / 100;\n        const g = hcg[2] / 100;\n        const l = g * (1 - c) + 0.5 * c;\n        let s2 = 0;\n        if (l > 0 && l < 0.5) {\n          s2 = c / (2 * l);\n        } else if (l >= 0.5 && l < 1) {\n          s2 = c / (2 * (1 - l));\n        }\n        return [hcg[0], s2 * 100, l * 100];\n      };\n      convert.hcg.hwb = function(hcg) {\n        const c = hcg[1] / 100;\n        const g = hcg[2] / 100;\n        const v = c + g * (1 - c);\n        return [hcg[0], (v - c) * 100, (1 - v) * 100];\n      };\n      convert.hwb.hcg = function(hwb) {\n        const w = hwb[1] / 100;\n        const b = hwb[2] / 100;\n        const v = 1 - b;\n        const c = v - w;\n        let g = 0;\n        if (c < 1) {\n          g = (v - c) / (1 - c);\n        }\n        return [hwb[0], c * 100, g * 100];\n      };\n      convert.apple.rgb = function(apple) {\n        return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n      };\n      convert.rgb.apple = function(rgb) {\n        return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n      };\n      convert.gray.rgb = function(args) {\n        return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n      };\n      convert.gray.hsl = function(args) {\n        return [0, 0, args[0]];\n      };\n      convert.gray.hsv = convert.gray.hsl;\n      convert.gray.hwb = function(gray) {\n        return [0, 100, gray[0]];\n      };\n      convert.gray.cmyk = function(gray) {\n        return [0, 0, 0, gray[0]];\n      };\n      convert.gray.lab = function(gray) {\n        return [gray[0], 0, 0];\n      };\n      convert.gray.hex = function(gray) {\n        const val = Math.round(gray[0] / 100 * 255) & 255;\n        const integer = (val << 16) + (val << 8) + val;\n        const string2 = integer.toString(16).toUpperCase();\n        return \"000000\".substring(string2.length) + string2;\n      };\n      convert.rgb.gray = function(rgb) {\n        const val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n        return [val / 255 * 100];\n      };\n    }\n  });\n\n  // ../node_modules/color/node_modules/color-convert/route.js\n  var require_route = __commonJS({\n    \"../node_modules/color/node_modules/color-convert/route.js\"(exports, module) {\n      var conversions = require_conversions();\n      function buildGraph() {\n        const graph = {};\n        const models = Object.keys(conversions);\n        for (let len = models.length, i = 0; i < len; i++) {\n          graph[models[i]] = {\n            // http://jsperf.com/1-vs-infinity\n            // micro-opt, but this is simple.\n            distance: -1,\n            parent: null\n          };\n        }\n        return graph;\n      }\n      function deriveBFS(fromModel) {\n        const graph = buildGraph();\n        const queue = [fromModel];\n        graph[fromModel].distance = 0;\n        while (queue.length) {\n          const current = queue.pop();\n          const adjacents = Object.keys(conversions[current]);\n          for (let len = adjacents.length, i = 0; i < len; i++) {\n            const adjacent = adjacents[i];\n            const node = graph[adjacent];\n            if (node.distance === -1) {\n              node.distance = graph[current].distance + 1;\n              node.parent = current;\n              queue.unshift(adjacent);\n            }\n          }\n        }\n        return graph;\n      }\n      function link(from, to) {\n        return function(args) {\n          return to(from(args));\n        };\n      }\n      function wrapConversion(toModel, graph) {\n        const path2 = [graph[toModel].parent, toModel];\n        let fn = conversions[graph[toModel].parent][toModel];\n        let cur = graph[toModel].parent;\n        while (graph[cur].parent) {\n          path2.unshift(graph[cur].parent);\n          fn = link(conversions[graph[cur].parent][cur], fn);\n          cur = graph[cur].parent;\n        }\n        fn.conversion = path2;\n        return fn;\n      }\n      module.exports = function(fromModel) {\n        const graph = deriveBFS(fromModel);\n        const conversion = {};\n        const models = Object.keys(graph);\n        for (let len = models.length, i = 0; i < len; i++) {\n          const toModel = models[i];\n          const node = graph[toModel];\n          if (node.parent === null) {\n            continue;\n          }\n          conversion[toModel] = wrapConversion(toModel, graph);\n        }\n        return conversion;\n      };\n    }\n  });\n\n  // ../node_modules/color/node_modules/color-convert/index.js\n  var require_color_convert = __commonJS({\n    \"../node_modules/color/node_modules/color-convert/index.js\"(exports, module) {\n      var conversions = require_conversions();\n      var route = require_route();\n      var convert = {};\n      var models = Object.keys(conversions);\n      function wrapRaw(fn) {\n        const wrappedFn = function(...args) {\n          const arg0 = args[0];\n          if (arg0 === void 0 || arg0 === null) {\n            return arg0;\n          }\n          if (arg0.length > 1) {\n            args = arg0;\n          }\n          return fn(args);\n        };\n        if (\"conversion\" in fn) {\n          wrappedFn.conversion = fn.conversion;\n        }\n        return wrappedFn;\n      }\n      function wrapRounded(fn) {\n        const wrappedFn = function(...args) {\n          const arg0 = args[0];\n          if (arg0 === void 0 || arg0 === null) {\n            return arg0;\n          }\n          if (arg0.length > 1) {\n            args = arg0;\n          }\n          const result = fn(args);\n          if (typeof result === \"object\") {\n            for (let len = result.length, i = 0; i < len; i++) {\n              result[i] = Math.round(result[i]);\n            }\n          }\n          return result;\n        };\n        if (\"conversion\" in fn) {\n          wrappedFn.conversion = fn.conversion;\n        }\n        return wrappedFn;\n      }\n      models.forEach((fromModel) => {\n        convert[fromModel] = {};\n        Object.defineProperty(convert[fromModel], \"channels\", { value: conversions[fromModel].channels });\n        Object.defineProperty(convert[fromModel], \"labels\", { value: conversions[fromModel].labels });\n        const routes = route(fromModel);\n        const routeModels = Object.keys(routes);\n        routeModels.forEach((toModel) => {\n          const fn = routes[toModel];\n          convert[fromModel][toModel] = wrapRounded(fn);\n          convert[fromModel][toModel].raw = wrapRaw(fn);\n        });\n      });\n      module.exports = convert;\n    }\n  });\n\n  // ../node_modules/color/index.js\n  var require_color = __commonJS({\n    \"../node_modules/color/index.js\"(exports, module) {\n      var colorString = require_color_string();\n      var convert = require_color_convert();\n      var skippedModels = [\n        // To be honest, I don't really feel like keyword belongs in color convert, but eh.\n        \"keyword\",\n        // Gray conflicts with some method names, and has its own method defined.\n        \"gray\",\n        // Shouldn't really be in color-convert either...\n        \"hex\"\n      ];\n      var hashedModelKeys = {};\n      for (const model of Object.keys(convert)) {\n        hashedModelKeys[[...convert[model].labels].sort().join(\"\")] = model;\n      }\n      var limiters = {};\n      function Color2(object, model) {\n        if (!(this instanceof Color2)) {\n          return new Color2(object, model);\n        }\n        if (model && model in skippedModels) {\n          model = null;\n        }\n        if (model && !(model in convert)) {\n          throw new Error(\"Unknown model: \" + model);\n        }\n        let i;\n        let channels;\n        if (object == null) {\n          this.model = \"rgb\";\n          this.color = [0, 0, 0];\n          this.valpha = 1;\n        } else if (object instanceof Color2) {\n          this.model = object.model;\n          this.color = [...object.color];\n          this.valpha = object.valpha;\n        } else if (typeof object === \"string\") {\n          const result = colorString.get(object);\n          if (result === null) {\n            throw new Error(\"Unable to parse color from string: \" + object);\n          }\n          this.model = result.model;\n          channels = convert[this.model].channels;\n          this.color = result.value.slice(0, channels);\n          this.valpha = typeof result.value[channels] === \"number\" ? result.value[channels] : 1;\n        } else if (object.length > 0) {\n          this.model = model || \"rgb\";\n          channels = convert[this.model].channels;\n          const newArray = Array.prototype.slice.call(object, 0, channels);\n          this.color = zeroArray(newArray, channels);\n          this.valpha = typeof object[channels] === \"number\" ? object[channels] : 1;\n        } else if (typeof object === \"number\") {\n          this.model = \"rgb\";\n          this.color = [\n            object >> 16 & 255,\n            object >> 8 & 255,\n            object & 255\n          ];\n          this.valpha = 1;\n        } else {\n          this.valpha = 1;\n          const keys2 = Object.keys(object);\n          if (\"alpha\" in object) {\n            keys2.splice(keys2.indexOf(\"alpha\"), 1);\n            this.valpha = typeof object.alpha === \"number\" ? object.alpha : 0;\n          }\n          const hashedKeys = keys2.sort().join(\"\");\n          if (!(hashedKeys in hashedModelKeys)) {\n            throw new Error(\"Unable to parse color from object: \" + JSON.stringify(object));\n          }\n          this.model = hashedModelKeys[hashedKeys];\n          const { labels } = convert[this.model];\n          const color = [];\n          for (i = 0; i < labels.length; i++) {\n            color.push(object[labels[i]]);\n          }\n          this.color = zeroArray(color);\n        }\n        if (limiters[this.model]) {\n          channels = convert[this.model].channels;\n          for (i = 0; i < channels; i++) {\n            const limit = limiters[this.model][i];\n            if (limit) {\n              this.color[i] = limit(this.color[i]);\n            }\n          }\n        }\n        this.valpha = Math.max(0, Math.min(1, this.valpha));\n        if (Object.freeze) {\n          Object.freeze(this);\n        }\n      }\n      Color2.prototype = {\n        toString() {\n          return this.string();\n        },\n        toJSON() {\n          return this[this.model]();\n        },\n        string(places) {\n          let self2 = this.model in colorString.to ? this : this.rgb();\n          self2 = self2.round(typeof places === \"number\" ? places : 1);\n          const args = self2.valpha === 1 ? self2.color : [...self2.color, this.valpha];\n          return colorString.to[self2.model](args);\n        },\n        percentString(places) {\n          const self2 = this.rgb().round(typeof places === \"number\" ? places : 1);\n          const args = self2.valpha === 1 ? self2.color : [...self2.color, this.valpha];\n          return colorString.to.rgb.percent(args);\n        },\n        array() {\n          return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n        },\n        object() {\n          const result = {};\n          const { channels } = convert[this.model];\n          const { labels } = convert[this.model];\n          for (let i = 0; i < channels; i++) {\n            result[labels[i]] = this.color[i];\n          }\n          if (this.valpha !== 1) {\n            result.alpha = this.valpha;\n          }\n          return result;\n        },\n        unitArray() {\n          const rgb = this.rgb().color;\n          rgb[0] /= 255;\n          rgb[1] /= 255;\n          rgb[2] /= 255;\n          if (this.valpha !== 1) {\n            rgb.push(this.valpha);\n          }\n          return rgb;\n        },\n        unitObject() {\n          const rgb = this.rgb().object();\n          rgb.r /= 255;\n          rgb.g /= 255;\n          rgb.b /= 255;\n          if (this.valpha !== 1) {\n            rgb.alpha = this.valpha;\n          }\n          return rgb;\n        },\n        round(places) {\n          places = Math.max(places || 0, 0);\n          return new Color2([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n        },\n        alpha(value) {\n          if (value !== void 0) {\n            return new Color2([...this.color, Math.max(0, Math.min(1, value))], this.model);\n          }\n          return this.valpha;\n        },\n        // Rgb\n        red: getset(\"rgb\", 0, maxfn(255)),\n        green: getset(\"rgb\", 1, maxfn(255)),\n        blue: getset(\"rgb\", 2, maxfn(255)),\n        hue: getset([\"hsl\", \"hsv\", \"hsl\", \"hwb\", \"hcg\"], 0, (value) => (value % 360 + 360) % 360),\n        saturationl: getset(\"hsl\", 1, maxfn(100)),\n        lightness: getset(\"hsl\", 2, maxfn(100)),\n        saturationv: getset(\"hsv\", 1, maxfn(100)),\n        value: getset(\"hsv\", 2, maxfn(100)),\n        chroma: getset(\"hcg\", 1, maxfn(100)),\n        gray: getset(\"hcg\", 2, maxfn(100)),\n        white: getset(\"hwb\", 1, maxfn(100)),\n        wblack: getset(\"hwb\", 2, maxfn(100)),\n        cyan: getset(\"cmyk\", 0, maxfn(100)),\n        magenta: getset(\"cmyk\", 1, maxfn(100)),\n        yellow: getset(\"cmyk\", 2, maxfn(100)),\n        black: getset(\"cmyk\", 3, maxfn(100)),\n        x: getset(\"xyz\", 0, maxfn(95.047)),\n        y: getset(\"xyz\", 1, maxfn(100)),\n        z: getset(\"xyz\", 2, maxfn(108.833)),\n        l: getset(\"lab\", 0, maxfn(100)),\n        a: getset(\"lab\", 1),\n        b: getset(\"lab\", 2),\n        keyword(value) {\n          if (value !== void 0) {\n            return new Color2(value);\n          }\n          return convert[this.model].keyword(this.color);\n        },\n        hex(value) {\n          if (value !== void 0) {\n            return new Color2(value);\n          }\n          return colorString.to.hex(this.rgb().round().color);\n        },\n        hexa(value) {\n          if (value !== void 0) {\n            return new Color2(value);\n          }\n          const rgbArray = this.rgb().round().color;\n          let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n          if (alphaHex.length === 1) {\n            alphaHex = \"0\" + alphaHex;\n          }\n          return colorString.to.hex(rgbArray) + alphaHex;\n        },\n        rgbNumber() {\n          const rgb = this.rgb().color;\n          return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255;\n        },\n        luminosity() {\n          const rgb = this.rgb().color;\n          const lum = [];\n          for (const [i, element] of rgb.entries()) {\n            const chan = element / 255;\n            lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n          }\n          return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n        },\n        contrast(color2) {\n          const lum1 = this.luminosity();\n          const lum2 = color2.luminosity();\n          if (lum1 > lum2) {\n            return (lum1 + 0.05) / (lum2 + 0.05);\n          }\n          return (lum2 + 0.05) / (lum1 + 0.05);\n        },\n        level(color2) {\n          const contrastRatio = this.contrast(color2);\n          if (contrastRatio >= 7) {\n            return \"AAA\";\n          }\n          return contrastRatio >= 4.5 ? \"AA\" : \"\";\n        },\n        isDark() {\n          const rgb = this.rgb().color;\n          const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4;\n          return yiq < 128;\n        },\n        isLight() {\n          return !this.isDark();\n        },\n        negate() {\n          const rgb = this.rgb();\n          for (let i = 0; i < 3; i++) {\n            rgb.color[i] = 255 - rgb.color[i];\n          }\n          return rgb;\n        },\n        lighten(ratio) {\n          const hsl = this.hsl();\n          hsl.color[2] += hsl.color[2] * ratio;\n          return hsl;\n        },\n        darken(ratio) {\n          const hsl = this.hsl();\n          hsl.color[2] -= hsl.color[2] * ratio;\n          return hsl;\n        },\n        saturate(ratio) {\n          const hsl = this.hsl();\n          hsl.color[1] += hsl.color[1] * ratio;\n          return hsl;\n        },\n        desaturate(ratio) {\n          const hsl = this.hsl();\n          hsl.color[1] -= hsl.color[1] * ratio;\n          return hsl;\n        },\n        whiten(ratio) {\n          const hwb = this.hwb();\n          hwb.color[1] += hwb.color[1] * ratio;\n          return hwb;\n        },\n        blacken(ratio) {\n          const hwb = this.hwb();\n          hwb.color[2] += hwb.color[2] * ratio;\n          return hwb;\n        },\n        grayscale() {\n          const rgb = this.rgb().color;\n          const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n          return Color2.rgb(value, value, value);\n        },\n        fade(ratio) {\n          return this.alpha(this.valpha - this.valpha * ratio);\n        },\n        opaquer(ratio) {\n          return this.alpha(this.valpha + this.valpha * ratio);\n        },\n        rotate(degrees) {\n          const hsl = this.hsl();\n          let hue = hsl.color[0];\n          hue = (hue + degrees) % 360;\n          hue = hue < 0 ? 360 + hue : hue;\n          hsl.color[0] = hue;\n          return hsl;\n        },\n        mix(mixinColor, weight) {\n          if (!mixinColor || !mixinColor.rgb) {\n            throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n          }\n          const color1 = mixinColor.rgb();\n          const color2 = this.rgb();\n          const p = weight === void 0 ? 0.5 : weight;\n          const w = 2 * p - 1;\n          const a = color1.alpha() - color2.alpha();\n          const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2;\n          const w2 = 1 - w1;\n          return Color2.rgb(\n            w1 * color1.red() + w2 * color2.red(),\n            w1 * color1.green() + w2 * color2.green(),\n            w1 * color1.blue() + w2 * color2.blue(),\n            color1.alpha() * p + color2.alpha() * (1 - p)\n          );\n        }\n      };\n      for (const model of Object.keys(convert)) {\n        if (skippedModels.includes(model)) {\n          continue;\n        }\n        const { channels } = convert[model];\n        Color2.prototype[model] = function(...args) {\n          if (this.model === model) {\n            return new Color2(this);\n          }\n          if (args.length > 0) {\n            return new Color2(args, model);\n          }\n          return new Color2([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n        };\n        Color2[model] = function(...args) {\n          let color = args[0];\n          if (typeof color === \"number\") {\n            color = zeroArray(args, channels);\n          }\n          return new Color2(color, model);\n        };\n      }\n      function roundTo(number, places) {\n        return Number(number.toFixed(places));\n      }\n      function roundToPlace(places) {\n        return function(number) {\n          return roundTo(number, places);\n        };\n      }\n      function getset(model, channel, modifier) {\n        model = Array.isArray(model) ? model : [model];\n        for (const m of model) {\n          (limiters[m] || (limiters[m] = []))[channel] = modifier;\n        }\n        model = model[0];\n        return function(value) {\n          let result;\n          if (value !== void 0) {\n            if (modifier) {\n              value = modifier(value);\n            }\n            result = this[model]();\n            result.color[channel] = value;\n            return result;\n          }\n          result = this[model]().color[channel];\n          if (modifier) {\n            result = modifier(result);\n          }\n          return result;\n        };\n      }\n      function maxfn(max) {\n        return function(v) {\n          return Math.max(0, Math.min(max, v));\n        };\n      }\n      function assertArray(value) {\n        return Array.isArray(value) ? value : [value];\n      }\n      function zeroArray(array, length) {\n        for (let i = 0; i < length; i++) {\n          if (typeof array[i] !== \"number\") {\n            array[i] = 0;\n          }\n        }\n        return array;\n      }\n      module.exports = Color2;\n    }\n  });\n\n  // ../node_modules/prettier/standalone.js\n  var require_standalone = __commonJS({\n    \"../node_modules/prettier/standalone.js\"(exports, module) {\n      (function(e) {\n        if (typeof exports == \"object\" && typeof module == \"object\") module.exports = e();\n        else if (typeof define == \"function\" && define.amd) define(e);\n        else {\n          var f = typeof globalThis < \"u\" ? globalThis : typeof global < \"u\" ? global : typeof self < \"u\" ? self : this || {};\n          f.prettier = e();\n        }\n      })(function() {\n        \"use strict\";\n        var xe = (e, r) => () => (r || e((r = { exports: {} }).exports, r), r.exports);\n        var pt = xe((r0, pu) => {\n          var ir = function(e) {\n            return e && e.Math == Math && e;\n          };\n          pu.exports = ir(typeof globalThis == \"object\" && globalThis) || ir(typeof window == \"object\" && window) || ir(typeof self == \"object\" && self) || ir(typeof global == \"object\" && global) || /* @__PURE__ */ function() {\n            return this;\n          }() || Function(\"return this\")();\n        });\n        var Dt = xe((n0, fu) => {\n          fu.exports = function(e) {\n            try {\n              return !!e();\n            } catch {\n              return true;\n            }\n          };\n        });\n        var yt = xe((u0, Du) => {\n          var Mo = Dt();\n          Du.exports = !Mo(function() {\n            return Object.defineProperty({}, 1, { get: function() {\n              return 7;\n            } })[1] != 7;\n          });\n        });\n        var ar = xe((s0, mu) => {\n          var Ro = Dt();\n          mu.exports = !Ro(function() {\n            var e = function() {\n            }.bind();\n            return typeof e != \"function\" || e.hasOwnProperty(\"prototype\");\n          });\n        });\n        var At = xe((i0, du) => {\n          var $o = ar(), or = Function.prototype.call;\n          du.exports = $o ? or.bind(or) : function() {\n            return or.apply(or, arguments);\n          };\n        });\n        var vu = xe((hu) => {\n          \"use strict\";\n          var gu = {}.propertyIsEnumerable, yu = Object.getOwnPropertyDescriptor, Vo = yu && !gu.call({ 1: 2 }, 1);\n          hu.f = Vo ? function(r) {\n            var t = yu(this, r);\n            return !!t && t.enumerable;\n          } : gu;\n        });\n        var lr = xe((o0, Cu) => {\n          Cu.exports = function(e, r) {\n            return { enumerable: !(e & 1), configurable: !(e & 2), writable: !(e & 4), value: r };\n          };\n        });\n        var mt = xe((l0, Au) => {\n          var Eu = ar(), Fu = Function.prototype, Wr = Fu.call, Wo = Eu && Fu.bind.bind(Wr, Wr);\n          Au.exports = Eu ? Wo : function(e) {\n            return function() {\n              return Wr.apply(e, arguments);\n            };\n          };\n        });\n        var Vt = xe((c0, xu) => {\n          var Su = mt(), Ho = Su({}.toString), Go = Su(\"\".slice);\n          xu.exports = function(e) {\n            return Go(Ho(e), 8, -1);\n          };\n        });\n        var Tu = xe((p0, bu) => {\n          var Uo = mt(), Jo = Dt(), zo = Vt(), Hr = Object, Xo = Uo(\"\".split);\n          bu.exports = Jo(function() {\n            return !Hr(\"z\").propertyIsEnumerable(0);\n          }) ? function(e) {\n            return zo(e) == \"String\" ? Xo(e, \"\") : Hr(e);\n          } : Hr;\n        });\n        var cr = xe((f0, Bu) => {\n          Bu.exports = function(e) {\n            return e == null;\n          };\n        });\n        var Gr = xe((D0, Nu) => {\n          var Ko = cr(), Yo = TypeError;\n          Nu.exports = function(e) {\n            if (Ko(e)) throw Yo(\"Can't call method on \" + e);\n            return e;\n          };\n        });\n        var pr = xe((m0, wu) => {\n          var Qo = Tu(), Zo = Gr();\n          wu.exports = function(e) {\n            return Qo(Zo(e));\n          };\n        });\n        var Jr = xe((d0, _u) => {\n          var Ur = typeof document == \"object\" && document.all, el = typeof Ur > \"u\" && Ur !== void 0;\n          _u.exports = { all: Ur, IS_HTMLDDA: el };\n        });\n        var ot = xe((g0, Iu) => {\n          var Pu = Jr(), tl = Pu.all;\n          Iu.exports = Pu.IS_HTMLDDA ? function(e) {\n            return typeof e == \"function\" || e === tl;\n          } : function(e) {\n            return typeof e == \"function\";\n          };\n        });\n        var St = xe((y0, Ou) => {\n          var ku = ot(), Lu = Jr(), rl = Lu.all;\n          Ou.exports = Lu.IS_HTMLDDA ? function(e) {\n            return typeof e == \"object\" ? e !== null : ku(e) || e === rl;\n          } : function(e) {\n            return typeof e == \"object\" ? e !== null : ku(e);\n          };\n        });\n        var Wt = xe((h0, ju) => {\n          var zr = pt(), nl = ot(), ul = function(e) {\n            return nl(e) ? e : void 0;\n          };\n          ju.exports = function(e, r) {\n            return arguments.length < 2 ? ul(zr[e]) : zr[e] && zr[e][r];\n          };\n        });\n        var Xr = xe((v0, qu) => {\n          var sl = mt();\n          qu.exports = sl({}.isPrototypeOf);\n        });\n        var Ru = xe((C0, Mu) => {\n          var il = Wt();\n          Mu.exports = il(\"navigator\", \"userAgent\") || \"\";\n        });\n        var Ju = xe((E0, Uu) => {\n          var Gu = pt(), Kr = Ru(), $u = Gu.process, Vu = Gu.Deno, Wu = $u && $u.versions || Vu && Vu.version, Hu = Wu && Wu.v8, dt, fr;\n          Hu && (dt = Hu.split(\".\"), fr = dt[0] > 0 && dt[0] < 4 ? 1 : +(dt[0] + dt[1]));\n          !fr && Kr && (dt = Kr.match(/Edge\\/(\\d+)/), (!dt || dt[1] >= 74) && (dt = Kr.match(/Chrome\\/(\\d+)/), dt && (fr = +dt[1])));\n          Uu.exports = fr;\n        });\n        var Yr = xe((F0, Xu) => {\n          var zu = Ju(), al = Dt();\n          Xu.exports = !!Object.getOwnPropertySymbols && !al(function() {\n            var e = Symbol();\n            return !String(e) || !(Object(e) instanceof Symbol) || !Symbol.sham && zu && zu < 41;\n          });\n        });\n        var Qr = xe((A0, Ku) => {\n          var ol = Yr();\n          Ku.exports = ol && !Symbol.sham && typeof Symbol.iterator == \"symbol\";\n        });\n        var Zr = xe((S0, Yu) => {\n          var ll = Wt(), cl = ot(), pl = Xr(), fl = Qr(), Dl = Object;\n          Yu.exports = fl ? function(e) {\n            return typeof e == \"symbol\";\n          } : function(e) {\n            var r = ll(\"Symbol\");\n            return cl(r) && pl(r.prototype, Dl(e));\n          };\n        });\n        var Dr = xe((x0, Qu) => {\n          var ml = String;\n          Qu.exports = function(e) {\n            try {\n              return ml(e);\n            } catch {\n              return \"Object\";\n            }\n          };\n        });\n        var Ht = xe((b0, Zu) => {\n          var dl = ot(), gl = Dr(), yl = TypeError;\n          Zu.exports = function(e) {\n            if (dl(e)) return e;\n            throw yl(gl(e) + \" is not a function\");\n          };\n        });\n        var mr = xe((T0, es) => {\n          var hl = Ht(), vl = cr();\n          es.exports = function(e, r) {\n            var t = e[r];\n            return vl(t) ? void 0 : hl(t);\n          };\n        });\n        var rs = xe((B0, ts) => {\n          var en = At(), tn = ot(), rn = St(), Cl = TypeError;\n          ts.exports = function(e, r) {\n            var t, s2;\n            if (r === \"string\" && tn(t = e.toString) && !rn(s2 = en(t, e)) || tn(t = e.valueOf) && !rn(s2 = en(t, e)) || r !== \"string\" && tn(t = e.toString) && !rn(s2 = en(t, e))) return s2;\n            throw Cl(\"Can't convert object to primitive value\");\n          };\n        });\n        var us = xe((N0, ns) => {\n          ns.exports = false;\n        });\n        var dr = xe((w0, is) => {\n          var ss = pt(), El = Object.defineProperty;\n          is.exports = function(e, r) {\n            try {\n              El(ss, e, { value: r, configurable: true, writable: true });\n            } catch {\n              ss[e] = r;\n            }\n            return r;\n          };\n        });\n        var gr = xe((_0, os) => {\n          var Fl = pt(), Al = dr(), as = \"__core-js_shared__\", Sl = Fl[as] || Al(as, {});\n          os.exports = Sl;\n        });\n        var nn = xe((P0, cs) => {\n          var xl = us(), ls = gr();\n          (cs.exports = function(e, r) {\n            return ls[e] || (ls[e] = r !== void 0 ? r : {});\n          })(\"versions\", []).push({ version: \"3.26.1\", mode: xl ? \"pure\" : \"global\", copyright: \"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\", license: \"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE\", source: \"https://github.com/zloirock/core-js\" });\n        });\n        var yr = xe((I0, ps) => {\n          var bl = Gr(), Tl = Object;\n          ps.exports = function(e) {\n            return Tl(bl(e));\n          };\n        });\n        var Ct = xe((k0, fs) => {\n          var Bl = mt(), Nl = yr(), wl = Bl({}.hasOwnProperty);\n          fs.exports = Object.hasOwn || function(r, t) {\n            return wl(Nl(r), t);\n          };\n        });\n        var un = xe((L0, Ds) => {\n          var _l = mt(), Pl = 0, Il = Math.random(), kl = _l(1 .toString);\n          Ds.exports = function(e) {\n            return \"Symbol(\" + (e === void 0 ? \"\" : e) + \")_\" + kl(++Pl + Il, 36);\n          };\n        });\n        var bt = xe((O0, hs) => {\n          var Ll = pt(), Ol = nn(), ms = Ct(), jl = un(), ds = Yr(), ys = Qr(), It = Ol(\"wks\"), xt = Ll.Symbol, gs = xt && xt.for, ql = ys ? xt : xt && xt.withoutSetter || jl;\n          hs.exports = function(e) {\n            if (!ms(It, e) || !(ds || typeof It[e] == \"string\")) {\n              var r = \"Symbol.\" + e;\n              ds && ms(xt, e) ? It[e] = xt[e] : ys && gs ? It[e] = gs(r) : It[e] = ql(r);\n            }\n            return It[e];\n          };\n        });\n        var Fs = xe((j0, Es) => {\n          var Ml = At(), vs = St(), Cs = Zr(), Rl = mr(), $l = rs(), Vl = bt(), Wl = TypeError, Hl = Vl(\"toPrimitive\");\n          Es.exports = function(e, r) {\n            if (!vs(e) || Cs(e)) return e;\n            var t = Rl(e, Hl), s2;\n            if (t) {\n              if (r === void 0 && (r = \"default\"), s2 = Ml(t, e, r), !vs(s2) || Cs(s2)) return s2;\n              throw Wl(\"Can't convert object to primitive value\");\n            }\n            return r === void 0 && (r = \"number\"), $l(e, r);\n          };\n        });\n        var hr = xe((q0, As) => {\n          var Gl = Fs(), Ul = Zr();\n          As.exports = function(e) {\n            var r = Gl(e, \"string\");\n            return Ul(r) ? r : r + \"\";\n          };\n        });\n        var bs = xe((M0, xs) => {\n          var Jl = pt(), Ss = St(), sn = Jl.document, zl = Ss(sn) && Ss(sn.createElement);\n          xs.exports = function(e) {\n            return zl ? sn.createElement(e) : {};\n          };\n        });\n        var an = xe((R0, Ts) => {\n          var Xl = yt(), Kl = Dt(), Yl = bs();\n          Ts.exports = !Xl && !Kl(function() {\n            return Object.defineProperty(Yl(\"div\"), \"a\", { get: function() {\n              return 7;\n            } }).a != 7;\n          });\n        });\n        var on = xe((Ns) => {\n          var Ql = yt(), Zl = At(), ec = vu(), tc = lr(), rc = pr(), nc = hr(), uc = Ct(), sc = an(), Bs = Object.getOwnPropertyDescriptor;\n          Ns.f = Ql ? Bs : function(r, t) {\n            if (r = rc(r), t = nc(t), sc) try {\n              return Bs(r, t);\n            } catch {\n            }\n            if (uc(r, t)) return tc(!Zl(ec.f, r, t), r[t]);\n          };\n        });\n        var _s = xe((V0, ws) => {\n          var ic = yt(), ac = Dt();\n          ws.exports = ic && ac(function() {\n            return Object.defineProperty(function() {\n            }, \"prototype\", { value: 42, writable: false }).prototype != 42;\n          });\n        });\n        var Tt = xe((W0, Ps) => {\n          var oc = St(), lc = String, cc = TypeError;\n          Ps.exports = function(e) {\n            if (oc(e)) return e;\n            throw cc(lc(e) + \" is not an object\");\n          };\n        });\n        var kt = xe((ks) => {\n          var pc = yt(), fc = an(), Dc = _s(), vr = Tt(), Is = hr(), mc = TypeError, ln = Object.defineProperty, dc = Object.getOwnPropertyDescriptor, cn = \"enumerable\", pn = \"configurable\", fn = \"writable\";\n          ks.f = pc ? Dc ? function(r, t, s2) {\n            if (vr(r), t = Is(t), vr(s2), typeof r == \"function\" && t === \"prototype\" && \"value\" in s2 && fn in s2 && !s2[fn]) {\n              var a = dc(r, t);\n              a && a[fn] && (r[t] = s2.value, s2 = { configurable: pn in s2 ? s2[pn] : a[pn], enumerable: cn in s2 ? s2[cn] : a[cn], writable: false });\n            }\n            return ln(r, t, s2);\n          } : ln : function(r, t, s2) {\n            if (vr(r), t = Is(t), vr(s2), fc) try {\n              return ln(r, t, s2);\n            } catch {\n            }\n            if (\"get\" in s2 || \"set\" in s2) throw mc(\"Accessors not supported\");\n            return \"value\" in s2 && (r[t] = s2.value), r;\n          };\n        });\n        var Dn = xe((G0, Ls) => {\n          var gc = yt(), yc = kt(), hc = lr();\n          Ls.exports = gc ? function(e, r, t) {\n            return yc.f(e, r, hc(1, t));\n          } : function(e, r, t) {\n            return e[r] = t, e;\n          };\n        });\n        var qs = xe((U0, js) => {\n          var mn = yt(), vc = Ct(), Os = Function.prototype, Cc = mn && Object.getOwnPropertyDescriptor, dn = vc(Os, \"name\"), Ec = dn && function() {\n          }.name === \"something\", Fc = dn && (!mn || mn && Cc(Os, \"name\").configurable);\n          js.exports = { EXISTS: dn, PROPER: Ec, CONFIGURABLE: Fc };\n        });\n        var yn = xe((J0, Ms) => {\n          var Ac = mt(), Sc = ot(), gn = gr(), xc = Ac(Function.toString);\n          Sc(gn.inspectSource) || (gn.inspectSource = function(e) {\n            return xc(e);\n          });\n          Ms.exports = gn.inspectSource;\n        });\n        var Vs = xe((z0, $s) => {\n          var bc = pt(), Tc = ot(), Rs = bc.WeakMap;\n          $s.exports = Tc(Rs) && /native code/.test(String(Rs));\n        });\n        var Gs = xe((X0, Hs) => {\n          var Bc = nn(), Nc = un(), Ws = Bc(\"keys\");\n          Hs.exports = function(e) {\n            return Ws[e] || (Ws[e] = Nc(e));\n          };\n        });\n        var hn = xe((K0, Us) => {\n          Us.exports = {};\n        });\n        var Ks = xe((Y0, Xs) => {\n          var wc = Vs(), zs = pt(), _c = St(), Pc = Dn(), vn = Ct(), Cn = gr(), Ic = Gs(), kc = hn(), Js = \"Object already initialized\", En = zs.TypeError, Lc = zs.WeakMap, Cr, Gt, Er, Oc = function(e) {\n            return Er(e) ? Gt(e) : Cr(e, {});\n          }, jc = function(e) {\n            return function(r) {\n              var t;\n              if (!_c(r) || (t = Gt(r)).type !== e) throw En(\"Incompatible receiver, \" + e + \" required\");\n              return t;\n            };\n          };\n          wc || Cn.state ? (gt = Cn.state || (Cn.state = new Lc()), gt.get = gt.get, gt.has = gt.has, gt.set = gt.set, Cr = function(e, r) {\n            if (gt.has(e)) throw En(Js);\n            return r.facade = e, gt.set(e, r), r;\n          }, Gt = function(e) {\n            return gt.get(e) || {};\n          }, Er = function(e) {\n            return gt.has(e);\n          }) : (Bt = Ic(\"state\"), kc[Bt] = true, Cr = function(e, r) {\n            if (vn(e, Bt)) throw En(Js);\n            return r.facade = e, Pc(e, Bt, r), r;\n          }, Gt = function(e) {\n            return vn(e, Bt) ? e[Bt] : {};\n          }, Er = function(e) {\n            return vn(e, Bt);\n          });\n          var gt, Bt;\n          Xs.exports = { set: Cr, get: Gt, has: Er, enforce: Oc, getterFor: jc };\n        });\n        var An = xe((Q0, Qs) => {\n          var qc = Dt(), Mc = ot(), Fr = Ct(), Fn = yt(), Rc = qs().CONFIGURABLE, $c = yn(), Ys = Ks(), Vc = Ys.enforce, Wc = Ys.get, Ar = Object.defineProperty, Hc = Fn && !qc(function() {\n            return Ar(function() {\n            }, \"length\", { value: 8 }).length !== 8;\n          }), Gc = String(String).split(\"String\"), Uc = Qs.exports = function(e, r, t) {\n            String(r).slice(0, 7) === \"Symbol(\" && (r = \"[\" + String(r).replace(/^Symbol\\(([^)]*)\\)/, \"$1\") + \"]\"), t && t.getter && (r = \"get \" + r), t && t.setter && (r = \"set \" + r), (!Fr(e, \"name\") || Rc && e.name !== r) && (Fn ? Ar(e, \"name\", { value: r, configurable: true }) : e.name = r), Hc && t && Fr(t, \"arity\") && e.length !== t.arity && Ar(e, \"length\", { value: t.arity });\n            try {\n              t && Fr(t, \"constructor\") && t.constructor ? Fn && Ar(e, \"prototype\", { writable: false }) : e.prototype && (e.prototype = void 0);\n            } catch {\n            }\n            var s2 = Vc(e);\n            return Fr(s2, \"source\") || (s2.source = Gc.join(typeof r == \"string\" ? r : \"\")), e;\n          };\n          Function.prototype.toString = Uc(function() {\n            return Mc(this) && Wc(this).source || $c(this);\n          }, \"toString\");\n        });\n        var ei = xe((Z0, Zs) => {\n          var Jc = ot(), zc = kt(), Xc = An(), Kc = dr();\n          Zs.exports = function(e, r, t, s2) {\n            s2 || (s2 = {});\n            var a = s2.enumerable, n = s2.name !== void 0 ? s2.name : r;\n            if (Jc(t) && Xc(t, n, s2), s2.global) a ? e[r] = t : Kc(r, t);\n            else {\n              try {\n                s2.unsafe ? e[r] && (a = true) : delete e[r];\n              } catch {\n              }\n              a ? e[r] = t : zc.f(e, r, { value: t, enumerable: false, configurable: !s2.nonConfigurable, writable: !s2.nonWritable });\n            }\n            return e;\n          };\n        });\n        var ri = xe((ey, ti) => {\n          var Yc = Math.ceil, Qc = Math.floor;\n          ti.exports = Math.trunc || function(r) {\n            var t = +r;\n            return (t > 0 ? Qc : Yc)(t);\n          };\n        });\n        var Sr = xe((ty, ni) => {\n          var Zc = ri();\n          ni.exports = function(e) {\n            var r = +e;\n            return r !== r || r === 0 ? 0 : Zc(r);\n          };\n        });\n        var si = xe((ry, ui) => {\n          var ep = Sr(), tp = Math.max, rp = Math.min;\n          ui.exports = function(e, r) {\n            var t = ep(e);\n            return t < 0 ? tp(t + r, 0) : rp(t, r);\n          };\n        });\n        var ai = xe((ny, ii) => {\n          var np = Sr(), up = Math.min;\n          ii.exports = function(e) {\n            return e > 0 ? up(np(e), 9007199254740991) : 0;\n          };\n        });\n        var Lt = xe((uy, oi) => {\n          var sp = ai();\n          oi.exports = function(e) {\n            return sp(e.length);\n          };\n        });\n        var pi = xe((sy, ci) => {\n          var ip = pr(), ap = si(), op = Lt(), li = function(e) {\n            return function(r, t, s2) {\n              var a = ip(r), n = op(a), u = ap(s2, n), i;\n              if (e && t != t) {\n                for (; n > u; ) if (i = a[u++], i != i) return true;\n              } else for (; n > u; u++) if ((e || u in a) && a[u] === t) return e || u || 0;\n              return !e && -1;\n            };\n          };\n          ci.exports = { includes: li(true), indexOf: li(false) };\n        });\n        var mi = xe((iy, Di) => {\n          var lp = mt(), Sn = Ct(), cp = pr(), pp = pi().indexOf, fp = hn(), fi = lp([].push);\n          Di.exports = function(e, r) {\n            var t = cp(e), s2 = 0, a = [], n;\n            for (n in t) !Sn(fp, n) && Sn(t, n) && fi(a, n);\n            for (; r.length > s2; ) Sn(t, n = r[s2++]) && (~pp(a, n) || fi(a, n));\n            return a;\n          };\n        });\n        var gi = xe((ay, di) => {\n          di.exports = [\"constructor\", \"hasOwnProperty\", \"isPrototypeOf\", \"propertyIsEnumerable\", \"toLocaleString\", \"toString\", \"valueOf\"];\n        });\n        var hi = xe((yi) => {\n          var Dp = mi(), mp = gi(), dp = mp.concat(\"length\", \"prototype\");\n          yi.f = Object.getOwnPropertyNames || function(r) {\n            return Dp(r, dp);\n          };\n        });\n        var Ci = xe((vi) => {\n          vi.f = Object.getOwnPropertySymbols;\n        });\n        var Fi = xe((cy, Ei) => {\n          var gp = Wt(), yp = mt(), hp = hi(), vp = Ci(), Cp = Tt(), Ep = yp([].concat);\n          Ei.exports = gp(\"Reflect\", \"ownKeys\") || function(r) {\n            var t = hp.f(Cp(r)), s2 = vp.f;\n            return s2 ? Ep(t, s2(r)) : t;\n          };\n        });\n        var xi = xe((py, Si) => {\n          var Ai = Ct(), Fp = Fi(), Ap = on(), Sp = kt();\n          Si.exports = function(e, r, t) {\n            for (var s2 = Fp(r), a = Sp.f, n = Ap.f, u = 0; u < s2.length; u++) {\n              var i = s2[u];\n              !Ai(e, i) && !(t && Ai(t, i)) && a(e, i, n(r, i));\n            }\n          };\n        });\n        var Ti = xe((fy, bi) => {\n          var xp = Dt(), bp = ot(), Tp = /#|\\.prototype\\./, Ut = function(e, r) {\n            var t = Np[Bp(e)];\n            return t == _p ? true : t == wp ? false : bp(r) ? xp(r) : !!r;\n          }, Bp = Ut.normalize = function(e) {\n            return String(e).replace(Tp, \".\").toLowerCase();\n          }, Np = Ut.data = {}, wp = Ut.NATIVE = \"N\", _p = Ut.POLYFILL = \"P\";\n          bi.exports = Ut;\n        });\n        var Jt = xe((Dy, Bi) => {\n          var xn = pt(), Pp = on().f, Ip = Dn(), kp = ei(), Lp = dr(), Op = xi(), jp = Ti();\n          Bi.exports = function(e, r) {\n            var t = e.target, s2 = e.global, a = e.stat, n, u, i, l, p, y;\n            if (s2 ? u = xn : a ? u = xn[t] || Lp(t, {}) : u = (xn[t] || {}).prototype, u) for (i in r) {\n              if (p = r[i], e.dontCallGetSet ? (y = Pp(u, i), l = y && y.value) : l = u[i], n = jp(s2 ? i : t + (a ? \".\" : \"#\") + i, e.forced), !n && l !== void 0) {\n                if (typeof p == typeof l) continue;\n                Op(p, l);\n              }\n              (e.sham || l && l.sham) && Ip(p, \"sham\", true), kp(u, i, p, e);\n            }\n          };\n        });\n        var bn = xe((my, Ni) => {\n          var qp = Vt();\n          Ni.exports = Array.isArray || function(r) {\n            return qp(r) == \"Array\";\n          };\n        });\n        var _i = xe((dy, wi) => {\n          var Mp = TypeError, Rp = 9007199254740991;\n          wi.exports = function(e) {\n            if (e > Rp) throw Mp(\"Maximum allowed index exceeded\");\n            return e;\n          };\n        });\n        var Ii = xe((gy, Pi) => {\n          var $p = Vt(), Vp = mt();\n          Pi.exports = function(e) {\n            if ($p(e) === \"Function\") return Vp(e);\n          };\n        });\n        var Tn = xe((yy, Li) => {\n          var ki = Ii(), Wp = Ht(), Hp = ar(), Gp = ki(ki.bind);\n          Li.exports = function(e, r) {\n            return Wp(e), r === void 0 ? e : Hp ? Gp(e, r) : function() {\n              return e.apply(r, arguments);\n            };\n          };\n        });\n        var Bn = xe((hy, ji) => {\n          \"use strict\";\n          var Up = bn(), Jp = Lt(), zp = _i(), Xp = Tn(), Oi = function(e, r, t, s2, a, n, u, i) {\n            for (var l = a, p = 0, y = u ? Xp(u, i) : false, h, g; p < s2; ) p in t && (h = y ? y(t[p], p, r) : t[p], n > 0 && Up(h) ? (g = Jp(h), l = Oi(e, r, h, g, l, n - 1) - 1) : (zp(l + 1), e[l] = h), l++), p++;\n            return l;\n          };\n          ji.exports = Oi;\n        });\n        var Ri = xe((vy, Mi) => {\n          var Kp = bt(), Yp = Kp(\"toStringTag\"), qi = {};\n          qi[Yp] = \"z\";\n          Mi.exports = String(qi) === \"[object z]\";\n        });\n        var Nn = xe((Cy, $i) => {\n          var Qp = Ri(), Zp = ot(), xr = Vt(), ef = bt(), tf = ef(\"toStringTag\"), rf = Object, nf = xr(/* @__PURE__ */ function() {\n            return arguments;\n          }()) == \"Arguments\", uf = function(e, r) {\n            try {\n              return e[r];\n            } catch {\n            }\n          };\n          $i.exports = Qp ? xr : function(e) {\n            var r, t, s2;\n            return e === void 0 ? \"Undefined\" : e === null ? \"Null\" : typeof (t = uf(r = rf(e), tf)) == \"string\" ? t : nf ? xr(r) : (s2 = xr(r)) == \"Object\" && Zp(r.callee) ? \"Arguments\" : s2;\n          };\n        });\n        var Ji = xe((Ey, Ui) => {\n          var sf = mt(), af = Dt(), Vi = ot(), of = Nn(), lf = Wt(), cf = yn(), Wi = function() {\n          }, pf = [], Hi = lf(\"Reflect\", \"construct\"), wn = /^\\s*(?:class|function)\\b/, ff = sf(wn.exec), Df = !wn.exec(Wi), zt = function(r) {\n            if (!Vi(r)) return false;\n            try {\n              return Hi(Wi, pf, r), true;\n            } catch {\n              return false;\n            }\n          }, Gi = function(r) {\n            if (!Vi(r)) return false;\n            switch (of(r)) {\n              case \"AsyncFunction\":\n              case \"GeneratorFunction\":\n              case \"AsyncGeneratorFunction\":\n                return false;\n            }\n            try {\n              return Df || !!ff(wn, cf(r));\n            } catch {\n              return true;\n            }\n          };\n          Gi.sham = true;\n          Ui.exports = !Hi || af(function() {\n            var e;\n            return zt(zt.call) || !zt(Object) || !zt(function() {\n              e = true;\n            }) || e;\n          }) ? Gi : zt;\n        });\n        var Yi = xe((Fy, Ki) => {\n          var zi = bn(), mf = Ji(), df = St(), gf = bt(), yf = gf(\"species\"), Xi = Array;\n          Ki.exports = function(e) {\n            var r;\n            return zi(e) && (r = e.constructor, mf(r) && (r === Xi || zi(r.prototype)) ? r = void 0 : df(r) && (r = r[yf], r === null && (r = void 0))), r === void 0 ? Xi : r;\n          };\n        });\n        var _n = xe((Ay, Qi) => {\n          var hf = Yi();\n          Qi.exports = function(e, r) {\n            return new (hf(e))(r === 0 ? 0 : r);\n          };\n        });\n        var Zi = xe(() => {\n          \"use strict\";\n          var vf = Jt(), Cf = Bn(), Ef = Ht(), Ff = yr(), Af = Lt(), Sf = _n();\n          vf({ target: \"Array\", proto: true }, { flatMap: function(r) {\n            var t = Ff(this), s2 = Af(t), a;\n            return Ef(r), a = Sf(t, 0), a.length = Cf(a, t, t, s2, 0, 1, r, arguments.length > 1 ? arguments[1] : void 0), a;\n          } });\n        });\n        var Pn = xe((by, ea) => {\n          ea.exports = {};\n        });\n        var ra = xe((Ty, ta) => {\n          var xf = bt(), bf = Pn(), Tf = xf(\"iterator\"), Bf = Array.prototype;\n          ta.exports = function(e) {\n            return e !== void 0 && (bf.Array === e || Bf[Tf] === e);\n          };\n        });\n        var In = xe((By, ua) => {\n          var Nf = Nn(), na = mr(), wf = cr(), _f = Pn(), Pf = bt(), If = Pf(\"iterator\");\n          ua.exports = function(e) {\n            if (!wf(e)) return na(e, If) || na(e, \"@@iterator\") || _f[Nf(e)];\n          };\n        });\n        var ia = xe((Ny, sa) => {\n          var kf = At(), Lf = Ht(), Of = Tt(), jf = Dr(), qf = In(), Mf = TypeError;\n          sa.exports = function(e, r) {\n            var t = arguments.length < 2 ? qf(e) : r;\n            if (Lf(t)) return Of(kf(t, e));\n            throw Mf(jf(e) + \" is not iterable\");\n          };\n        });\n        var la = xe((wy, oa) => {\n          var Rf = At(), aa = Tt(), $f = mr();\n          oa.exports = function(e, r, t) {\n            var s2, a;\n            aa(e);\n            try {\n              if (s2 = $f(e, \"return\"), !s2) {\n                if (r === \"throw\") throw t;\n                return t;\n              }\n              s2 = Rf(s2, e);\n            } catch (n) {\n              a = true, s2 = n;\n            }\n            if (r === \"throw\") throw t;\n            if (a) throw s2;\n            return aa(s2), t;\n          };\n        });\n        var ma = xe((_y, Da) => {\n          var Vf = Tn(), Wf = At(), Hf = Tt(), Gf = Dr(), Uf = ra(), Jf = Lt(), ca = Xr(), zf = ia(), Xf = In(), pa = la(), Kf = TypeError, br = function(e, r) {\n            this.stopped = e, this.result = r;\n          }, fa = br.prototype;\n          Da.exports = function(e, r, t) {\n            var s2 = t && t.that, a = !!(t && t.AS_ENTRIES), n = !!(t && t.IS_RECORD), u = !!(t && t.IS_ITERATOR), i = !!(t && t.INTERRUPTED), l = Vf(r, s2), p, y, h, g, c, f, F, _ = function(E) {\n              return p && pa(p, \"normal\", E), new br(true, E);\n            }, w = function(E) {\n              return a ? (Hf(E), i ? l(E[0], E[1], _) : l(E[0], E[1])) : i ? l(E, _) : l(E);\n            };\n            if (n) p = e.iterator;\n            else if (u) p = e;\n            else {\n              if (y = Xf(e), !y) throw Kf(Gf(e) + \" is not iterable\");\n              if (Uf(y)) {\n                for (h = 0, g = Jf(e); g > h; h++) if (c = w(e[h]), c && ca(fa, c)) return c;\n                return new br(false);\n              }\n              p = zf(e, y);\n            }\n            for (f = n ? e.next : p.next; !(F = Wf(f, p)).done; ) {\n              try {\n                c = w(F.value);\n              } catch (E) {\n                pa(p, \"throw\", E);\n              }\n              if (typeof c == \"object\" && c && ca(fa, c)) return c;\n            }\n            return new br(false);\n          };\n        });\n        var ga = xe((Py, da) => {\n          \"use strict\";\n          var Yf = hr(), Qf = kt(), Zf = lr();\n          da.exports = function(e, r, t) {\n            var s2 = Yf(r);\n            s2 in e ? Qf.f(e, s2, Zf(0, t)) : e[s2] = t;\n          };\n        });\n        var ya = xe(() => {\n          var eD = Jt(), tD = ma(), rD = ga();\n          eD({ target: \"Object\", stat: true }, { fromEntries: function(r) {\n            var t = {};\n            return tD(r, function(s2, a) {\n              rD(t, s2, a);\n            }, { AS_ENTRIES: true }), t;\n          } });\n        });\n        var Ca = xe((Ly, va) => {\n          var ha = An(), nD = kt();\n          va.exports = function(e, r, t) {\n            return t.get && ha(t.get, r, { getter: true }), t.set && ha(t.set, r, { setter: true }), nD.f(e, r, t);\n          };\n        });\n        var Fa = xe((Oy, Ea) => {\n          \"use strict\";\n          var uD = Tt();\n          Ea.exports = function() {\n            var e = uD(this), r = \"\";\n            return e.hasIndices && (r += \"d\"), e.global && (r += \"g\"), e.ignoreCase && (r += \"i\"), e.multiline && (r += \"m\"), e.dotAll && (r += \"s\"), e.unicode && (r += \"u\"), e.unicodeSets && (r += \"v\"), e.sticky && (r += \"y\"), r;\n          };\n        });\n        var xa = xe(() => {\n          var sD = pt(), iD = yt(), aD = Ca(), oD = Fa(), lD = Dt(), Aa = sD.RegExp, Sa = Aa.prototype, cD = iD && lD(function() {\n            var e = true;\n            try {\n              Aa(\".\", \"d\");\n            } catch {\n              e = false;\n            }\n            var r = {}, t = \"\", s2 = e ? \"dgimsy\" : \"gimsy\", a = function(l, p) {\n              Object.defineProperty(r, l, { get: function() {\n                return t += p, true;\n              } });\n            }, n = { dotAll: \"s\", global: \"g\", ignoreCase: \"i\", multiline: \"m\", sticky: \"y\" };\n            e && (n.hasIndices = \"d\");\n            for (var u in n) a(u, n[u]);\n            var i = Object.getOwnPropertyDescriptor(Sa, \"flags\").get.call(r);\n            return i !== s2 || t !== s2;\n          });\n          cD && aD(Sa, \"flags\", { configurable: true, get: oD });\n        });\n        var ba = xe(() => {\n          var pD = Jt(), kn = pt();\n          pD({ global: true, forced: kn.globalThis !== kn }, { globalThis: kn });\n        });\n        var Ta = xe(() => {\n          ba();\n        });\n        var Ba = xe(() => {\n          \"use strict\";\n          var fD = Jt(), DD = Bn(), mD = yr(), dD = Lt(), gD = Sr(), yD = _n();\n          fD({ target: \"Array\", proto: true }, { flat: function() {\n            var r = arguments.length ? arguments[0] : void 0, t = mD(this), s2 = dD(t), a = yD(t, 0);\n            return a.length = DD(a, t, t, s2, 0, r === void 0 ? 1 : gD(r)), a;\n          } });\n        });\n        var e0 = xe((Uy, jo) => {\n          var hD = [\"cliName\", \"cliCategory\", \"cliDescription\"], vD = [\"_\"], CD = [\"languageId\"];\n          function Hn(e, r) {\n            if (e == null) return {};\n            var t = ED(e, r), s2, a;\n            if (Object.getOwnPropertySymbols) {\n              var n = Object.getOwnPropertySymbols(e);\n              for (a = 0; a < n.length; a++) s2 = n[a], !(r.indexOf(s2) >= 0) && Object.prototype.propertyIsEnumerable.call(e, s2) && (t[s2] = e[s2]);\n            }\n            return t;\n          }\n          function ED(e, r) {\n            if (e == null) return {};\n            var t = {}, s2 = Object.keys(e), a, n;\n            for (n = 0; n < s2.length; n++) a = s2[n], !(r.indexOf(a) >= 0) && (t[a] = e[a]);\n            return t;\n          }\n          Zi();\n          ya();\n          xa();\n          Ta();\n          Ba();\n          var FD = Object.create, _r = Object.defineProperty, AD = Object.getOwnPropertyDescriptor, Gn = Object.getOwnPropertyNames, SD = Object.getPrototypeOf, xD = Object.prototype.hasOwnProperty, ht = (e, r) => function() {\n            return e && (r = (0, e[Gn(e)[0]])(e = 0)), r;\n          }, te = (e, r) => function() {\n            return r || (0, e[Gn(e)[0]])((r = { exports: {} }).exports, r), r.exports;\n          }, Kt = (e, r) => {\n            for (var t in r) _r(e, t, { get: r[t], enumerable: true });\n          }, Pa = (e, r, t, s2) => {\n            if (r && typeof r == \"object\" || typeof r == \"function\") for (let a of Gn(r)) !xD.call(e, a) && a !== t && _r(e, a, { get: () => r[a], enumerable: !(s2 = AD(r, a)) || s2.enumerable });\n            return e;\n          }, bD = (e, r, t) => (t = e != null ? FD(SD(e)) : {}, Pa(r || !e || !e.__esModule ? _r(t, \"default\", { value: e, enumerable: true }) : t, e)), ft = (e) => Pa(_r({}, \"__esModule\", { value: true }), e), wt, ne = ht({ \"<define:process>\"() {\n            wt = { env: {}, argv: [] };\n          } }), Ia = te({ \"package.json\"(e, r) {\n            r.exports = { version: \"2.8.8\" };\n          } }), TD = te({ \"node_modules/diff/lib/diff/base.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.default = r;\n            function r() {\n            }\n            r.prototype = { diff: function(n, u) {\n              var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, l = i.callback;\n              typeof i == \"function\" && (l = i, i = {}), this.options = i;\n              var p = this;\n              function y(N) {\n                return l ? (setTimeout(function() {\n                  l(void 0, N);\n                }, 0), true) : N;\n              }\n              n = this.castInput(n), u = this.castInput(u), n = this.removeEmpty(this.tokenize(n)), u = this.removeEmpty(this.tokenize(u));\n              var h = u.length, g = n.length, c = 1, f = h + g, F = [{ newPos: -1, components: [] }], _ = this.extractCommon(F[0], u, n, 0);\n              if (F[0].newPos + 1 >= h && _ + 1 >= g) return y([{ value: this.join(u), count: u.length }]);\n              function w() {\n                for (var N = -1 * c; N <= c; N += 2) {\n                  var x = void 0, I = F[N - 1], P = F[N + 1], $ = (P ? P.newPos : 0) - N;\n                  I && (F[N - 1] = void 0);\n                  var D = I && I.newPos + 1 < h, T = P && 0 <= $ && $ < g;\n                  if (!D && !T) {\n                    F[N] = void 0;\n                    continue;\n                  }\n                  if (!D || T && I.newPos < P.newPos ? (x = s2(P), p.pushComponent(x.components, void 0, true)) : (x = I, x.newPos++, p.pushComponent(x.components, true, void 0)), $ = p.extractCommon(x, u, n, N), x.newPos + 1 >= h && $ + 1 >= g) return y(t(p, x.components, u, n, p.useLongestToken));\n                  F[N] = x;\n                }\n                c++;\n              }\n              if (l) (function N() {\n                setTimeout(function() {\n                  if (c > f) return l();\n                  w() || N();\n                }, 0);\n              })();\n              else for (; c <= f; ) {\n                var E = w();\n                if (E) return E;\n              }\n            }, pushComponent: function(n, u, i) {\n              var l = n[n.length - 1];\n              l && l.added === u && l.removed === i ? n[n.length - 1] = { count: l.count + 1, added: u, removed: i } : n.push({ count: 1, added: u, removed: i });\n            }, extractCommon: function(n, u, i, l) {\n              for (var p = u.length, y = i.length, h = n.newPos, g = h - l, c = 0; h + 1 < p && g + 1 < y && this.equals(u[h + 1], i[g + 1]); ) h++, g++, c++;\n              return c && n.components.push({ count: c }), n.newPos = h, g;\n            }, equals: function(n, u) {\n              return this.options.comparator ? this.options.comparator(n, u) : n === u || this.options.ignoreCase && n.toLowerCase() === u.toLowerCase();\n            }, removeEmpty: function(n) {\n              for (var u = [], i = 0; i < n.length; i++) n[i] && u.push(n[i]);\n              return u;\n            }, castInput: function(n) {\n              return n;\n            }, tokenize: function(n) {\n              return n.split(\"\");\n            }, join: function(n) {\n              return n.join(\"\");\n            } };\n            function t(a, n, u, i, l) {\n              for (var p = 0, y = n.length, h = 0, g = 0; p < y; p++) {\n                var c = n[p];\n                if (c.removed) {\n                  if (c.value = a.join(i.slice(g, g + c.count)), g += c.count, p && n[p - 1].added) {\n                    var F = n[p - 1];\n                    n[p - 1] = n[p], n[p] = F;\n                  }\n                } else {\n                  if (!c.added && l) {\n                    var f = u.slice(h, h + c.count);\n                    f = f.map(function(w, E) {\n                      var N = i[g + E];\n                      return N.length > w.length ? N : w;\n                    }), c.value = a.join(f);\n                  } else c.value = a.join(u.slice(h, h + c.count));\n                  h += c.count, c.added || (g += c.count);\n                }\n              }\n              var _ = n[y - 1];\n              return y > 1 && typeof _.value == \"string\" && (_.added || _.removed) && a.equals(\"\", _.value) && (n[y - 2].value += _.value, n.pop()), n;\n            }\n            function s2(a) {\n              return { newPos: a.newPos, components: a.components.slice(0) };\n            }\n          } }), BD = te({ \"node_modules/diff/lib/diff/array.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.diffArrays = a, e.arrayDiff = void 0;\n            var r = t(TD());\n            function t(n) {\n              return n && n.__esModule ? n : { default: n };\n            }\n            var s2 = new r.default();\n            e.arrayDiff = s2, s2.tokenize = function(n) {\n              return n.slice();\n            }, s2.join = s2.removeEmpty = function(n) {\n              return n;\n            };\n            function a(n, u, i) {\n              return s2.diff(n, u, i);\n            }\n          } }), Un = te({ \"src/document/doc-builders.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(C) {\n              return { type: \"concat\", parts: C };\n            }\n            function s2(C) {\n              return { type: \"indent\", contents: C };\n            }\n            function a(C, o) {\n              return { type: \"align\", contents: o, n: C };\n            }\n            function n(C) {\n              let o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n              return { type: \"group\", id: o.id, contents: C, break: Boolean(o.shouldBreak), expandedStates: o.expandedStates };\n            }\n            function u(C) {\n              return a(Number.NEGATIVE_INFINITY, C);\n            }\n            function i(C) {\n              return a({ type: \"root\" }, C);\n            }\n            function l(C) {\n              return a(-1, C);\n            }\n            function p(C, o) {\n              return n(C[0], Object.assign(Object.assign({}, o), {}, { expandedStates: C }));\n            }\n            function y(C) {\n              return { type: \"fill\", parts: C };\n            }\n            function h(C, o) {\n              let d = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n              return { type: \"if-break\", breakContents: C, flatContents: o, groupId: d.groupId };\n            }\n            function g(C, o) {\n              return { type: \"indent-if-break\", contents: C, groupId: o.groupId, negate: o.negate };\n            }\n            function c(C) {\n              return { type: \"line-suffix\", contents: C };\n            }\n            var f = { type: \"line-suffix-boundary\" }, F = { type: \"break-parent\" }, _ = { type: \"trim\" }, w = { type: \"line\", hard: true }, E = { type: \"line\", hard: true, literal: true }, N = { type: \"line\" }, x = { type: \"line\", soft: true }, I = t([w, F]), P = t([E, F]), $ = { type: \"cursor\", placeholder: Symbol(\"cursor\") };\n            function D(C, o) {\n              let d = [];\n              for (let v = 0; v < o.length; v++) v !== 0 && d.push(C), d.push(o[v]);\n              return t(d);\n            }\n            function T(C, o, d) {\n              let v = C;\n              if (o > 0) {\n                for (let S = 0; S < Math.floor(o / d); ++S) v = s2(v);\n                v = a(o % d, v), v = a(Number.NEGATIVE_INFINITY, v);\n              }\n              return v;\n            }\n            function m(C, o) {\n              return { type: \"label\", label: C, contents: o };\n            }\n            r.exports = { concat: t, join: D, line: N, softline: x, hardline: I, literalline: P, group: n, conditionalGroup: p, fill: y, lineSuffix: c, lineSuffixBoundary: f, cursor: $, breakParent: F, ifBreak: h, trim: _, indent: s2, indentIfBreak: g, align: a, addAlignmentToDoc: T, markAsRoot: i, dedentToRoot: u, dedent: l, hardlineWithoutBreakParent: w, literallineWithoutBreakParent: E, label: m };\n          } }), Jn = te({ \"src/common/end-of-line.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(u) {\n              let i = u.indexOf(\"\\r\");\n              return i >= 0 ? u.charAt(i + 1) === `\n` ? \"crlf\" : \"cr\" : \"lf\";\n            }\n            function s2(u) {\n              switch (u) {\n                case \"cr\":\n                  return \"\\r\";\n                case \"crlf\":\n                  return `\\r\n`;\n                default:\n                  return `\n`;\n              }\n            }\n            function a(u, i) {\n              let l;\n              switch (i) {\n                case `\n`:\n                  l = /\\n/g;\n                  break;\n                case \"\\r\":\n                  l = /\\r/g;\n                  break;\n                case `\\r\n`:\n                  l = /\\r\\n/g;\n                  break;\n                default:\n                  throw new Error(`Unexpected \"eol\" ${JSON.stringify(i)}.`);\n              }\n              let p = u.match(l);\n              return p ? p.length : 0;\n            }\n            function n(u) {\n              return u.replace(/\\r\\n?/g, `\n`);\n            }\n            r.exports = { guessEndOfLine: t, convertEndOfLineToChars: s2, countEndOfLineChars: a, normalizeEndOfLine: n };\n          } }), lt = te({ \"src/utils/get-last.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = (s2) => s2[s2.length - 1];\n            r.exports = t;\n          } });\n          function ND() {\n            let { onlyFirst: e = false } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, r = [\"[\\\\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(\"|\");\n            return new RegExp(r, e ? void 0 : \"g\");\n          }\n          var wD = ht({ \"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"() {\n            ne();\n          } });\n          function _D(e) {\n            if (typeof e != \"string\") throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n            return e.replace(ND(), \"\");\n          }\n          var PD = ht({ \"node_modules/strip-ansi/index.js\"() {\n            ne(), wD();\n          } });\n          function ID(e) {\n            return Number.isInteger(e) ? e >= 4352 && (e <= 4447 || e === 9001 || e === 9002 || 11904 <= e && e <= 12871 && e !== 12351 || 12880 <= e && e <= 19903 || 19968 <= e && e <= 42182 || 43360 <= e && e <= 43388 || 44032 <= e && e <= 55203 || 63744 <= e && e <= 64255 || 65040 <= e && e <= 65049 || 65072 <= e && e <= 65131 || 65281 <= e && e <= 65376 || 65504 <= e && e <= 65510 || 110592 <= e && e <= 110593 || 127488 <= e && e <= 127569 || 131072 <= e && e <= 262141) : false;\n          }\n          var kD = ht({ \"node_modules/is-fullwidth-code-point/index.js\"() {\n            ne();\n          } }), LD = te({ \"node_modules/emoji-regex/index.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = function() {\n              return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n            };\n          } }), ka = {};\n          Kt(ka, { default: () => OD });\n          function OD(e) {\n            if (typeof e != \"string\" || e.length === 0 || (e = _D(e), e.length === 0)) return 0;\n            e = e.replace((0, La.default)(), \"  \");\n            let r = 0;\n            for (let t = 0; t < e.length; t++) {\n              let s2 = e.codePointAt(t);\n              s2 <= 31 || s2 >= 127 && s2 <= 159 || s2 >= 768 && s2 <= 879 || (s2 > 65535 && t++, r += ID(s2) ? 2 : 1);\n            }\n            return r;\n          }\n          var La, jD = ht({ \"node_modules/string-width/index.js\"() {\n            ne(), PD(), kD(), La = bD(LD());\n          } }), Oa = te({ \"src/utils/get-string-width.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = (jD(), ft(ka)).default, s2 = /[^\\x20-\\x7F]/;\n            function a(n) {\n              return n ? s2.test(n) ? t(n) : n.length : 0;\n            }\n            r.exports = a;\n          } }), Yt = te({ \"src/document/doc-utils.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), { literalline: s2, join: a } = Un(), n = (o) => Array.isArray(o) || o && o.type === \"concat\", u = (o) => {\n              if (Array.isArray(o)) return o;\n              if (o.type !== \"concat\" && o.type !== \"fill\") throw new Error(\"Expect doc type to be `concat` or `fill`.\");\n              return o.parts;\n            }, i = {};\n            function l(o, d, v, S) {\n              let b = [o];\n              for (; b.length > 0; ) {\n                let B = b.pop();\n                if (B === i) {\n                  v(b.pop());\n                  continue;\n                }\n                if (v && b.push(B, i), !d || d(B) !== false) if (n(B) || B.type === \"fill\") {\n                  let k = u(B);\n                  for (let M = k.length, R = M - 1; R >= 0; --R) b.push(k[R]);\n                } else if (B.type === \"if-break\") B.flatContents && b.push(B.flatContents), B.breakContents && b.push(B.breakContents);\n                else if (B.type === \"group\" && B.expandedStates) if (S) for (let k = B.expandedStates.length, M = k - 1; M >= 0; --M) b.push(B.expandedStates[M]);\n                else b.push(B.contents);\n                else B.contents && b.push(B.contents);\n              }\n            }\n            function p(o, d) {\n              let v = /* @__PURE__ */ new Map();\n              return S(o);\n              function S(B) {\n                if (v.has(B)) return v.get(B);\n                let k = b(B);\n                return v.set(B, k), k;\n              }\n              function b(B) {\n                if (Array.isArray(B)) return d(B.map(S));\n                if (B.type === \"concat\" || B.type === \"fill\") {\n                  let k = B.parts.map(S);\n                  return d(Object.assign(Object.assign({}, B), {}, { parts: k }));\n                }\n                if (B.type === \"if-break\") {\n                  let k = B.breakContents && S(B.breakContents), M = B.flatContents && S(B.flatContents);\n                  return d(Object.assign(Object.assign({}, B), {}, { breakContents: k, flatContents: M }));\n                }\n                if (B.type === \"group\" && B.expandedStates) {\n                  let k = B.expandedStates.map(S), M = k[0];\n                  return d(Object.assign(Object.assign({}, B), {}, { contents: M, expandedStates: k }));\n                }\n                if (B.contents) {\n                  let k = S(B.contents);\n                  return d(Object.assign(Object.assign({}, B), {}, { contents: k }));\n                }\n                return d(B);\n              }\n            }\n            function y(o, d, v) {\n              let S = v, b = false;\n              function B(k) {\n                let M = d(k);\n                if (M !== void 0 && (b = true, S = M), b) return false;\n              }\n              return l(o, B), S;\n            }\n            function h(o) {\n              if (o.type === \"group\" && o.break || o.type === \"line\" && o.hard || o.type === \"break-parent\") return true;\n            }\n            function g(o) {\n              return y(o, h, false);\n            }\n            function c(o) {\n              if (o.length > 0) {\n                let d = t(o);\n                !d.expandedStates && !d.break && (d.break = \"propagated\");\n              }\n              return null;\n            }\n            function f(o) {\n              let d = /* @__PURE__ */ new Set(), v = [];\n              function S(B) {\n                if (B.type === \"break-parent\" && c(v), B.type === \"group\") {\n                  if (v.push(B), d.has(B)) return false;\n                  d.add(B);\n                }\n              }\n              function b(B) {\n                B.type === \"group\" && v.pop().break && c(v);\n              }\n              l(o, S, b, true);\n            }\n            function F(o) {\n              return o.type === \"line\" && !o.hard ? o.soft ? \"\" : \" \" : o.type === \"if-break\" ? o.flatContents || \"\" : o;\n            }\n            function _(o) {\n              return p(o, F);\n            }\n            var w = (o, d) => o && o.type === \"line\" && o.hard && d && d.type === \"break-parent\";\n            function E(o) {\n              if (!o) return o;\n              if (n(o) || o.type === \"fill\") {\n                let d = u(o);\n                for (; d.length > 1 && w(...d.slice(-2)); ) d.length -= 2;\n                if (d.length > 0) {\n                  let v = E(t(d));\n                  d[d.length - 1] = v;\n                }\n                return Array.isArray(o) ? d : Object.assign(Object.assign({}, o), {}, { parts: d });\n              }\n              switch (o.type) {\n                case \"align\":\n                case \"indent\":\n                case \"indent-if-break\":\n                case \"group\":\n                case \"line-suffix\":\n                case \"label\": {\n                  let d = E(o.contents);\n                  return Object.assign(Object.assign({}, o), {}, { contents: d });\n                }\n                case \"if-break\": {\n                  let d = E(o.breakContents), v = E(o.flatContents);\n                  return Object.assign(Object.assign({}, o), {}, { breakContents: d, flatContents: v });\n                }\n              }\n              return o;\n            }\n            function N(o) {\n              return E(I(o));\n            }\n            function x(o) {\n              switch (o.type) {\n                case \"fill\":\n                  if (o.parts.every((v) => v === \"\")) return \"\";\n                  break;\n                case \"group\":\n                  if (!o.contents && !o.id && !o.break && !o.expandedStates) return \"\";\n                  if (o.contents.type === \"group\" && o.contents.id === o.id && o.contents.break === o.break && o.contents.expandedStates === o.expandedStates) return o.contents;\n                  break;\n                case \"align\":\n                case \"indent\":\n                case \"indent-if-break\":\n                case \"line-suffix\":\n                  if (!o.contents) return \"\";\n                  break;\n                case \"if-break\":\n                  if (!o.flatContents && !o.breakContents) return \"\";\n                  break;\n              }\n              if (!n(o)) return o;\n              let d = [];\n              for (let v of u(o)) {\n                if (!v) continue;\n                let [S, ...b] = n(v) ? u(v) : [v];\n                typeof S == \"string\" && typeof t(d) == \"string\" ? d[d.length - 1] += S : d.push(S), d.push(...b);\n              }\n              return d.length === 0 ? \"\" : d.length === 1 ? d[0] : Array.isArray(o) ? d : Object.assign(Object.assign({}, o), {}, { parts: d });\n            }\n            function I(o) {\n              return p(o, (d) => x(d));\n            }\n            function P(o) {\n              let d = [], v = o.filter(Boolean);\n              for (; v.length > 0; ) {\n                let S = v.shift();\n                if (S) {\n                  if (n(S)) {\n                    v.unshift(...u(S));\n                    continue;\n                  }\n                  if (d.length > 0 && typeof t(d) == \"string\" && typeof S == \"string\") {\n                    d[d.length - 1] += S;\n                    continue;\n                  }\n                  d.push(S);\n                }\n              }\n              return d;\n            }\n            function $(o) {\n              return p(o, (d) => Array.isArray(d) ? P(d) : d.parts ? Object.assign(Object.assign({}, d), {}, { parts: P(d.parts) }) : d);\n            }\n            function D(o) {\n              return p(o, (d) => typeof d == \"string\" && d.includes(`\n`) ? T(d) : d);\n            }\n            function T(o) {\n              let d = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : s2;\n              return a(d, o.split(`\n`)).parts;\n            }\n            function m(o) {\n              if (o.type === \"line\") return true;\n            }\n            function C(o) {\n              return y(o, m, false);\n            }\n            r.exports = { isConcat: n, getDocParts: u, willBreak: g, traverseDoc: l, findInDoc: y, mapDoc: p, propagateBreaks: f, removeLines: _, stripTrailingHardline: N, normalizeParts: P, normalizeDoc: $, cleanDoc: I, replaceTextEndOfLine: T, replaceEndOfLine: D, canBreak: C };\n          } }), qD = te({ \"src/document/doc-printer.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { convertEndOfLineToChars: t } = Jn(), s2 = lt(), a = Oa(), { fill: n, cursor: u, indent: i } = Un(), { isConcat: l, getDocParts: p } = Yt(), y, h = 1, g = 2;\n            function c() {\n              return { value: \"\", length: 0, queue: [] };\n            }\n            function f(x, I) {\n              return _(x, { type: \"indent\" }, I);\n            }\n            function F(x, I, P) {\n              return I === Number.NEGATIVE_INFINITY ? x.root || c() : I < 0 ? _(x, { type: \"dedent\" }, P) : I ? I.type === \"root\" ? Object.assign(Object.assign({}, x), {}, { root: x }) : _(x, { type: typeof I == \"string\" ? \"stringAlign\" : \"numberAlign\", n: I }, P) : x;\n            }\n            function _(x, I, P) {\n              let $ = I.type === \"dedent\" ? x.queue.slice(0, -1) : [...x.queue, I], D = \"\", T = 0, m = 0, C = 0;\n              for (let k of $) switch (k.type) {\n                case \"indent\":\n                  v(), P.useTabs ? o(1) : d(P.tabWidth);\n                  break;\n                case \"stringAlign\":\n                  v(), D += k.n, T += k.n.length;\n                  break;\n                case \"numberAlign\":\n                  m += 1, C += k.n;\n                  break;\n                default:\n                  throw new Error(`Unexpected type '${k.type}'`);\n              }\n              return b(), Object.assign(Object.assign({}, x), {}, { value: D, length: T, queue: $ });\n              function o(k) {\n                D += \"\t\".repeat(k), T += P.tabWidth * k;\n              }\n              function d(k) {\n                D += \" \".repeat(k), T += k;\n              }\n              function v() {\n                P.useTabs ? S() : b();\n              }\n              function S() {\n                m > 0 && o(m), B();\n              }\n              function b() {\n                C > 0 && d(C), B();\n              }\n              function B() {\n                m = 0, C = 0;\n              }\n            }\n            function w(x) {\n              if (x.length === 0) return 0;\n              let I = 0;\n              for (; x.length > 0 && typeof s2(x) == \"string\" && /^[\\t ]*$/.test(s2(x)); ) I += x.pop().length;\n              if (x.length > 0 && typeof s2(x) == \"string\") {\n                let P = s2(x).replace(/[\\t ]*$/, \"\");\n                I += s2(x).length - P.length, x[x.length - 1] = P;\n              }\n              return I;\n            }\n            function E(x, I, P, $, D) {\n              let T = I.length, m = [x], C = [];\n              for (; P >= 0; ) {\n                if (m.length === 0) {\n                  if (T === 0) return true;\n                  m.push(I[--T]);\n                  continue;\n                }\n                let { mode: o, doc: d } = m.pop();\n                if (typeof d == \"string\") C.push(d), P -= a(d);\n                else if (l(d) || d.type === \"fill\") {\n                  let v = p(d);\n                  for (let S = v.length - 1; S >= 0; S--) m.push({ mode: o, doc: v[S] });\n                } else switch (d.type) {\n                  case \"indent\":\n                  case \"align\":\n                  case \"indent-if-break\":\n                  case \"label\":\n                    m.push({ mode: o, doc: d.contents });\n                    break;\n                  case \"trim\":\n                    P += w(C);\n                    break;\n                  case \"group\": {\n                    if (D && d.break) return false;\n                    let v = d.break ? h : o, S = d.expandedStates && v === h ? s2(d.expandedStates) : d.contents;\n                    m.push({ mode: v, doc: S });\n                    break;\n                  }\n                  case \"if-break\": {\n                    let S = (d.groupId ? y[d.groupId] || g : o) === h ? d.breakContents : d.flatContents;\n                    S && m.push({ mode: o, doc: S });\n                    break;\n                  }\n                  case \"line\":\n                    if (o === h || d.hard) return true;\n                    d.soft || (C.push(\" \"), P--);\n                    break;\n                  case \"line-suffix\":\n                    $ = true;\n                    break;\n                  case \"line-suffix-boundary\":\n                    if ($) return false;\n                    break;\n                }\n              }\n              return false;\n            }\n            function N(x, I) {\n              y = {};\n              let P = I.printWidth, $ = t(I.endOfLine), D = 0, T = [{ ind: c(), mode: h, doc: x }], m = [], C = false, o = [];\n              for (; T.length > 0; ) {\n                let { ind: v, mode: S, doc: b } = T.pop();\n                if (typeof b == \"string\") {\n                  let B = $ !== `\n` ? b.replace(/\\n/g, $) : b;\n                  m.push(B), D += a(B);\n                } else if (l(b)) {\n                  let B = p(b);\n                  for (let k = B.length - 1; k >= 0; k--) T.push({ ind: v, mode: S, doc: B[k] });\n                } else switch (b.type) {\n                  case \"cursor\":\n                    m.push(u.placeholder);\n                    break;\n                  case \"indent\":\n                    T.push({ ind: f(v, I), mode: S, doc: b.contents });\n                    break;\n                  case \"align\":\n                    T.push({ ind: F(v, b.n, I), mode: S, doc: b.contents });\n                    break;\n                  case \"trim\":\n                    D -= w(m);\n                    break;\n                  case \"group\":\n                    switch (S) {\n                      case g:\n                        if (!C) {\n                          T.push({ ind: v, mode: b.break ? h : g, doc: b.contents });\n                          break;\n                        }\n                      case h: {\n                        C = false;\n                        let B = { ind: v, mode: g, doc: b.contents }, k = P - D, M = o.length > 0;\n                        if (!b.break && E(B, T, k, M)) T.push(B);\n                        else if (b.expandedStates) {\n                          let R = s2(b.expandedStates);\n                          if (b.break) {\n                            T.push({ ind: v, mode: h, doc: R });\n                            break;\n                          } else for (let q = 1; q < b.expandedStates.length + 1; q++) if (q >= b.expandedStates.length) {\n                            T.push({ ind: v, mode: h, doc: R });\n                            break;\n                          } else {\n                            let J = b.expandedStates[q], L = { ind: v, mode: g, doc: J };\n                            if (E(L, T, k, M)) {\n                              T.push(L);\n                              break;\n                            }\n                          }\n                        } else T.push({ ind: v, mode: h, doc: b.contents });\n                        break;\n                      }\n                    }\n                    b.id && (y[b.id] = s2(T).mode);\n                    break;\n                  case \"fill\": {\n                    let B = P - D, { parts: k } = b;\n                    if (k.length === 0) break;\n                    let [M, R] = k, q = { ind: v, mode: g, doc: M }, J = { ind: v, mode: h, doc: M }, L = E(q, [], B, o.length > 0, true);\n                    if (k.length === 1) {\n                      L ? T.push(q) : T.push(J);\n                      break;\n                    }\n                    let Q = { ind: v, mode: g, doc: R }, V = { ind: v, mode: h, doc: R };\n                    if (k.length === 2) {\n                      L ? T.push(Q, q) : T.push(V, J);\n                      break;\n                    }\n                    k.splice(0, 2);\n                    let j = { ind: v, mode: S, doc: n(k) }, Y = k[0];\n                    E({ ind: v, mode: g, doc: [M, R, Y] }, [], B, o.length > 0, true) ? T.push(j, Q, q) : L ? T.push(j, V, q) : T.push(j, V, J);\n                    break;\n                  }\n                  case \"if-break\":\n                  case \"indent-if-break\": {\n                    let B = b.groupId ? y[b.groupId] : S;\n                    if (B === h) {\n                      let k = b.type === \"if-break\" ? b.breakContents : b.negate ? b.contents : i(b.contents);\n                      k && T.push({ ind: v, mode: S, doc: k });\n                    }\n                    if (B === g) {\n                      let k = b.type === \"if-break\" ? b.flatContents : b.negate ? i(b.contents) : b.contents;\n                      k && T.push({ ind: v, mode: S, doc: k });\n                    }\n                    break;\n                  }\n                  case \"line-suffix\":\n                    o.push({ ind: v, mode: S, doc: b.contents });\n                    break;\n                  case \"line-suffix-boundary\":\n                    o.length > 0 && T.push({ ind: v, mode: S, doc: { type: \"line\", hard: true } });\n                    break;\n                  case \"line\":\n                    switch (S) {\n                      case g:\n                        if (b.hard) C = true;\n                        else {\n                          b.soft || (m.push(\" \"), D += 1);\n                          break;\n                        }\n                      case h:\n                        if (o.length > 0) {\n                          T.push({ ind: v, mode: S, doc: b }, ...o.reverse()), o.length = 0;\n                          break;\n                        }\n                        b.literal ? v.root ? (m.push($, v.root.value), D = v.root.length) : (m.push($), D = 0) : (D -= w(m), m.push($ + v.value), D = v.length);\n                        break;\n                    }\n                    break;\n                  case \"label\":\n                    T.push({ ind: v, mode: S, doc: b.contents });\n                    break;\n                  default:\n                }\n                T.length === 0 && o.length > 0 && (T.push(...o.reverse()), o.length = 0);\n              }\n              let d = m.indexOf(u.placeholder);\n              if (d !== -1) {\n                let v = m.indexOf(u.placeholder, d + 1), S = m.slice(0, d).join(\"\"), b = m.slice(d + 1, v).join(\"\"), B = m.slice(v + 1).join(\"\");\n                return { formatted: S + b + B, cursorNodeStart: S.length, cursorNodeText: b };\n              }\n              return { formatted: m.join(\"\") };\n            }\n            r.exports = { printDocToString: N };\n          } }), MD = te({ \"src/document/doc-debug.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isConcat: t, getDocParts: s2 } = Yt();\n            function a(u) {\n              if (!u) return \"\";\n              if (t(u)) {\n                let i = [];\n                for (let l of s2(u)) if (t(l)) i.push(...a(l).parts);\n                else {\n                  let p = a(l);\n                  p !== \"\" && i.push(p);\n                }\n                return { type: \"concat\", parts: i };\n              }\n              return u.type === \"if-break\" ? Object.assign(Object.assign({}, u), {}, { breakContents: a(u.breakContents), flatContents: a(u.flatContents) }) : u.type === \"group\" ? Object.assign(Object.assign({}, u), {}, { contents: a(u.contents), expandedStates: u.expandedStates && u.expandedStates.map(a) }) : u.type === \"fill\" ? { type: \"fill\", parts: u.parts.map(a) } : u.contents ? Object.assign(Object.assign({}, u), {}, { contents: a(u.contents) }) : u;\n            }\n            function n(u) {\n              let i = /* @__PURE__ */ Object.create(null), l = /* @__PURE__ */ new Set();\n              return p(a(u));\n              function p(h, g, c) {\n                if (typeof h == \"string\") return JSON.stringify(h);\n                if (t(h)) {\n                  let f = s2(h).map(p).filter(Boolean);\n                  return f.length === 1 ? f[0] : `[${f.join(\", \")}]`;\n                }\n                if (h.type === \"line\") {\n                  let f = Array.isArray(c) && c[g + 1] && c[g + 1].type === \"break-parent\";\n                  return h.literal ? f ? \"literalline\" : \"literallineWithoutBreakParent\" : h.hard ? f ? \"hardline\" : \"hardlineWithoutBreakParent\" : h.soft ? \"softline\" : \"line\";\n                }\n                if (h.type === \"break-parent\") return Array.isArray(c) && c[g - 1] && c[g - 1].type === \"line\" && c[g - 1].hard ? void 0 : \"breakParent\";\n                if (h.type === \"trim\") return \"trim\";\n                if (h.type === \"indent\") return \"indent(\" + p(h.contents) + \")\";\n                if (h.type === \"align\") return h.n === Number.NEGATIVE_INFINITY ? \"dedentToRoot(\" + p(h.contents) + \")\" : h.n < 0 ? \"dedent(\" + p(h.contents) + \")\" : h.n.type === \"root\" ? \"markAsRoot(\" + p(h.contents) + \")\" : \"align(\" + JSON.stringify(h.n) + \", \" + p(h.contents) + \")\";\n                if (h.type === \"if-break\") return \"ifBreak(\" + p(h.breakContents) + (h.flatContents ? \", \" + p(h.flatContents) : \"\") + (h.groupId ? (h.flatContents ? \"\" : ', \"\"') + `, { groupId: ${y(h.groupId)} }` : \"\") + \")\";\n                if (h.type === \"indent-if-break\") {\n                  let f = [];\n                  h.negate && f.push(\"negate: true\"), h.groupId && f.push(`groupId: ${y(h.groupId)}`);\n                  let F = f.length > 0 ? `, { ${f.join(\", \")} }` : \"\";\n                  return `indentIfBreak(${p(h.contents)}${F})`;\n                }\n                if (h.type === \"group\") {\n                  let f = [];\n                  h.break && h.break !== \"propagated\" && f.push(\"shouldBreak: true\"), h.id && f.push(`id: ${y(h.id)}`);\n                  let F = f.length > 0 ? `, { ${f.join(\", \")} }` : \"\";\n                  return h.expandedStates ? `conditionalGroup([${h.expandedStates.map((_) => p(_)).join(\",\")}]${F})` : `group(${p(h.contents)}${F})`;\n                }\n                if (h.type === \"fill\") return `fill([${h.parts.map((f) => p(f)).join(\", \")}])`;\n                if (h.type === \"line-suffix\") return \"lineSuffix(\" + p(h.contents) + \")\";\n                if (h.type === \"line-suffix-boundary\") return \"lineSuffixBoundary\";\n                if (h.type === \"label\") return `label(${JSON.stringify(h.label)}, ${p(h.contents)})`;\n                throw new Error(\"Unknown doc type \" + h.type);\n              }\n              function y(h) {\n                if (typeof h != \"symbol\") return JSON.stringify(String(h));\n                if (h in i) return i[h];\n                let g = String(h).slice(7, -1) || \"symbol\";\n                for (let c = 0; ; c++) {\n                  let f = g + (c > 0 ? ` #${c}` : \"\");\n                  if (!l.has(f)) return l.add(f), i[h] = `Symbol.for(${JSON.stringify(f)})`;\n                }\n              }\n            }\n            r.exports = { printDocToDebug: n };\n          } }), qe = te({ \"src/document/index.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = { builders: Un(), printer: qD(), utils: Yt(), debug: MD() };\n          } }), ja = {};\n          Kt(ja, { default: () => RD });\n          function RD(e) {\n            if (typeof e != \"string\") throw new TypeError(\"Expected a string\");\n            return e.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n          }\n          var $D = ht({ \"node_modules/escape-string-regexp/index.js\"() {\n            ne();\n          } }), qa = te({ \"node_modules/semver/internal/debug.js\"(e, r) {\n            ne();\n            var t = typeof wt == \"object\" && wt.env && wt.env.NODE_DEBUG && /\\bsemver\\b/i.test(wt.env.NODE_DEBUG) ? function() {\n              for (var s2 = arguments.length, a = new Array(s2), n = 0; n < s2; n++) a[n] = arguments[n];\n              return console.error(\"SEMVER\", ...a);\n            } : () => {\n            };\n            r.exports = t;\n          } }), Ma = te({ \"node_modules/semver/internal/constants.js\"(e, r) {\n            ne();\n            var t = \"2.0.0\", s2 = 256, a = Number.MAX_SAFE_INTEGER || 9007199254740991, n = 16;\n            r.exports = { SEMVER_SPEC_VERSION: t, MAX_LENGTH: s2, MAX_SAFE_INTEGER: a, MAX_SAFE_COMPONENT_LENGTH: n };\n          } }), VD = te({ \"node_modules/semver/internal/re.js\"(e, r) {\n            ne();\n            var { MAX_SAFE_COMPONENT_LENGTH: t } = Ma(), s2 = qa();\n            e = r.exports = {};\n            var a = e.re = [], n = e.src = [], u = e.t = {}, i = 0, l = (p, y, h) => {\n              let g = i++;\n              s2(p, g, y), u[p] = g, n[g] = y, a[g] = new RegExp(y, h ? \"g\" : void 0);\n            };\n            l(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\"), l(\"NUMERICIDENTIFIERLOOSE\", \"[0-9]+\"), l(\"NONNUMERICIDENTIFIER\", \"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"), l(\"MAINVERSION\", `(${n[u.NUMERICIDENTIFIER]})\\\\.(${n[u.NUMERICIDENTIFIER]})\\\\.(${n[u.NUMERICIDENTIFIER]})`), l(\"MAINVERSIONLOOSE\", `(${n[u.NUMERICIDENTIFIERLOOSE]})\\\\.(${n[u.NUMERICIDENTIFIERLOOSE]})\\\\.(${n[u.NUMERICIDENTIFIERLOOSE]})`), l(\"PRERELEASEIDENTIFIER\", `(?:${n[u.NUMERICIDENTIFIER]}|${n[u.NONNUMERICIDENTIFIER]})`), l(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${n[u.NUMERICIDENTIFIERLOOSE]}|${n[u.NONNUMERICIDENTIFIER]})`), l(\"PRERELEASE\", `(?:-(${n[u.PRERELEASEIDENTIFIER]}(?:\\\\.${n[u.PRERELEASEIDENTIFIER]})*))`), l(\"PRERELEASELOOSE\", `(?:-?(${n[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${n[u.PRERELEASEIDENTIFIERLOOSE]})*))`), l(\"BUILDIDENTIFIER\", \"[0-9A-Za-z-]+\"), l(\"BUILD\", `(?:\\\\+(${n[u.BUILDIDENTIFIER]}(?:\\\\.${n[u.BUILDIDENTIFIER]})*))`), l(\"FULLPLAIN\", `v?${n[u.MAINVERSION]}${n[u.PRERELEASE]}?${n[u.BUILD]}?`), l(\"FULL\", `^${n[u.FULLPLAIN]}$`), l(\"LOOSEPLAIN\", `[v=\\\\s]*${n[u.MAINVERSIONLOOSE]}${n[u.PRERELEASELOOSE]}?${n[u.BUILD]}?`), l(\"LOOSE\", `^${n[u.LOOSEPLAIN]}$`), l(\"GTLT\", \"((?:<|>)?=?)\"), l(\"XRANGEIDENTIFIERLOOSE\", `${n[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`), l(\"XRANGEIDENTIFIER\", `${n[u.NUMERICIDENTIFIER]}|x|X|\\\\*`), l(\"XRANGEPLAIN\", `[v=\\\\s]*(${n[u.XRANGEIDENTIFIER]})(?:\\\\.(${n[u.XRANGEIDENTIFIER]})(?:\\\\.(${n[u.XRANGEIDENTIFIER]})(?:${n[u.PRERELEASE]})?${n[u.BUILD]}?)?)?`), l(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${n[u.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${n[u.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${n[u.XRANGEIDENTIFIERLOOSE]})(?:${n[u.PRERELEASELOOSE]})?${n[u.BUILD]}?)?)?`), l(\"XRANGE\", `^${n[u.GTLT]}\\\\s*${n[u.XRANGEPLAIN]}$`), l(\"XRANGELOOSE\", `^${n[u.GTLT]}\\\\s*${n[u.XRANGEPLAINLOOSE]}$`), l(\"COERCE\", `(^|[^\\\\d])(\\\\d{1,${t}})(?:\\\\.(\\\\d{1,${t}}))?(?:\\\\.(\\\\d{1,${t}}))?(?:$|[^\\\\d])`), l(\"COERCERTL\", n[u.COERCE], true), l(\"LONETILDE\", \"(?:~>?)\"), l(\"TILDETRIM\", `(\\\\s*)${n[u.LONETILDE]}\\\\s+`, true), e.tildeTrimReplace = \"$1~\", l(\"TILDE\", `^${n[u.LONETILDE]}${n[u.XRANGEPLAIN]}$`), l(\"TILDELOOSE\", `^${n[u.LONETILDE]}${n[u.XRANGEPLAINLOOSE]}$`), l(\"LONECARET\", \"(?:\\\\^)\"), l(\"CARETTRIM\", `(\\\\s*)${n[u.LONECARET]}\\\\s+`, true), e.caretTrimReplace = \"$1^\", l(\"CARET\", `^${n[u.LONECARET]}${n[u.XRANGEPLAIN]}$`), l(\"CARETLOOSE\", `^${n[u.LONECARET]}${n[u.XRANGEPLAINLOOSE]}$`), l(\"COMPARATORLOOSE\", `^${n[u.GTLT]}\\\\s*(${n[u.LOOSEPLAIN]})$|^$`), l(\"COMPARATOR\", `^${n[u.GTLT]}\\\\s*(${n[u.FULLPLAIN]})$|^$`), l(\"COMPARATORTRIM\", `(\\\\s*)${n[u.GTLT]}\\\\s*(${n[u.LOOSEPLAIN]}|${n[u.XRANGEPLAIN]})`, true), e.comparatorTrimReplace = \"$1$2$3\", l(\"HYPHENRANGE\", `^\\\\s*(${n[u.XRANGEPLAIN]})\\\\s+-\\\\s+(${n[u.XRANGEPLAIN]})\\\\s*$`), l(\"HYPHENRANGELOOSE\", `^\\\\s*(${n[u.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${n[u.XRANGEPLAINLOOSE]})\\\\s*$`), l(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\"), l(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"), l(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n          } }), WD = te({ \"node_modules/semver/internal/parse-options.js\"(e, r) {\n            ne();\n            var t = [\"includePrerelease\", \"loose\", \"rtl\"], s2 = (a) => a ? typeof a != \"object\" ? { loose: true } : t.filter((n) => a[n]).reduce((n, u) => (n[u] = true, n), {}) : {};\n            r.exports = s2;\n          } }), HD = te({ \"node_modules/semver/internal/identifiers.js\"(e, r) {\n            ne();\n            var t = /^[0-9]+$/, s2 = (n, u) => {\n              let i = t.test(n), l = t.test(u);\n              return i && l && (n = +n, u = +u), n === u ? 0 : i && !l ? -1 : l && !i ? 1 : n < u ? -1 : 1;\n            }, a = (n, u) => s2(u, n);\n            r.exports = { compareIdentifiers: s2, rcompareIdentifiers: a };\n          } }), GD = te({ \"node_modules/semver/classes/semver.js\"(e, r) {\n            ne();\n            var t = qa(), { MAX_LENGTH: s2, MAX_SAFE_INTEGER: a } = Ma(), { re: n, t: u } = VD(), i = WD(), { compareIdentifiers: l } = HD(), p = class {\n              constructor(y, h) {\n                if (h = i(h), y instanceof p) {\n                  if (y.loose === !!h.loose && y.includePrerelease === !!h.includePrerelease) return y;\n                  y = y.version;\n                } else if (typeof y != \"string\") throw new TypeError(`Invalid Version: ${y}`);\n                if (y.length > s2) throw new TypeError(`version is longer than ${s2} characters`);\n                t(\"SemVer\", y, h), this.options = h, this.loose = !!h.loose, this.includePrerelease = !!h.includePrerelease;\n                let g = y.trim().match(h.loose ? n[u.LOOSE] : n[u.FULL]);\n                if (!g) throw new TypeError(`Invalid Version: ${y}`);\n                if (this.raw = y, this.major = +g[1], this.minor = +g[2], this.patch = +g[3], this.major > a || this.major < 0) throw new TypeError(\"Invalid major version\");\n                if (this.minor > a || this.minor < 0) throw new TypeError(\"Invalid minor version\");\n                if (this.patch > a || this.patch < 0) throw new TypeError(\"Invalid patch version\");\n                g[4] ? this.prerelease = g[4].split(\".\").map((c) => {\n                  if (/^[0-9]+$/.test(c)) {\n                    let f = +c;\n                    if (f >= 0 && f < a) return f;\n                  }\n                  return c;\n                }) : this.prerelease = [], this.build = g[5] ? g[5].split(\".\") : [], this.format();\n              }\n              format() {\n                return this.version = `${this.major}.${this.minor}.${this.patch}`, this.prerelease.length && (this.version += `-${this.prerelease.join(\".\")}`), this.version;\n              }\n              toString() {\n                return this.version;\n              }\n              compare(y) {\n                if (t(\"SemVer.compare\", this.version, this.options, y), !(y instanceof p)) {\n                  if (typeof y == \"string\" && y === this.version) return 0;\n                  y = new p(y, this.options);\n                }\n                return y.version === this.version ? 0 : this.compareMain(y) || this.comparePre(y);\n              }\n              compareMain(y) {\n                return y instanceof p || (y = new p(y, this.options)), l(this.major, y.major) || l(this.minor, y.minor) || l(this.patch, y.patch);\n              }\n              comparePre(y) {\n                if (y instanceof p || (y = new p(y, this.options)), this.prerelease.length && !y.prerelease.length) return -1;\n                if (!this.prerelease.length && y.prerelease.length) return 1;\n                if (!this.prerelease.length && !y.prerelease.length) return 0;\n                let h = 0;\n                do {\n                  let g = this.prerelease[h], c = y.prerelease[h];\n                  if (t(\"prerelease compare\", h, g, c), g === void 0 && c === void 0) return 0;\n                  if (c === void 0) return 1;\n                  if (g === void 0) return -1;\n                  if (g === c) continue;\n                  return l(g, c);\n                } while (++h);\n              }\n              compareBuild(y) {\n                y instanceof p || (y = new p(y, this.options));\n                let h = 0;\n                do {\n                  let g = this.build[h], c = y.build[h];\n                  if (t(\"prerelease compare\", h, g, c), g === void 0 && c === void 0) return 0;\n                  if (c === void 0) return 1;\n                  if (g === void 0) return -1;\n                  if (g === c) continue;\n                  return l(g, c);\n                } while (++h);\n              }\n              inc(y, h) {\n                switch (y) {\n                  case \"premajor\":\n                    this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc(\"pre\", h);\n                    break;\n                  case \"preminor\":\n                    this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc(\"pre\", h);\n                    break;\n                  case \"prepatch\":\n                    this.prerelease.length = 0, this.inc(\"patch\", h), this.inc(\"pre\", h);\n                    break;\n                  case \"prerelease\":\n                    this.prerelease.length === 0 && this.inc(\"patch\", h), this.inc(\"pre\", h);\n                    break;\n                  case \"major\":\n                    (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];\n                    break;\n                  case \"minor\":\n                    (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];\n                    break;\n                  case \"patch\":\n                    this.prerelease.length === 0 && this.patch++, this.prerelease = [];\n                    break;\n                  case \"pre\":\n                    if (this.prerelease.length === 0) this.prerelease = [0];\n                    else {\n                      let g = this.prerelease.length;\n                      for (; --g >= 0; ) typeof this.prerelease[g] == \"number\" && (this.prerelease[g]++, g = -2);\n                      g === -1 && this.prerelease.push(0);\n                    }\n                    h && (l(this.prerelease[0], h) === 0 ? isNaN(this.prerelease[1]) && (this.prerelease = [h, 0]) : this.prerelease = [h, 0]);\n                    break;\n                  default:\n                    throw new Error(`invalid increment argument: ${y}`);\n                }\n                return this.format(), this.raw = this.version, this;\n              }\n            };\n            r.exports = p;\n          } }), zn = te({ \"node_modules/semver/functions/compare.js\"(e, r) {\n            ne();\n            var t = GD(), s2 = (a, n, u) => new t(a, u).compare(new t(n, u));\n            r.exports = s2;\n          } }), UD = te({ \"node_modules/semver/functions/lt.js\"(e, r) {\n            ne();\n            var t = zn(), s2 = (a, n, u) => t(a, n, u) < 0;\n            r.exports = s2;\n          } }), JD = te({ \"node_modules/semver/functions/gte.js\"(e, r) {\n            ne();\n            var t = zn(), s2 = (a, n, u) => t(a, n, u) >= 0;\n            r.exports = s2;\n          } }), zD = te({ \"src/utils/arrayify.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = (t, s2) => Object.entries(t).map((a) => {\n              let [n, u] = a;\n              return Object.assign({ [s2]: n }, u);\n            });\n          } }), XD = te({ \"node_modules/outdent/lib/index.js\"(e, r) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.outdent = void 0;\n            function t() {\n              for (var E = [], N = 0; N < arguments.length; N++) E[N] = arguments[N];\n            }\n            function s2() {\n              return typeof WeakMap < \"u\" ? /* @__PURE__ */ new WeakMap() : a();\n            }\n            function a() {\n              return { add: t, delete: t, get: t, set: t, has: function(E) {\n                return false;\n              } };\n            }\n            var n = Object.prototype.hasOwnProperty, u = function(E, N) {\n              return n.call(E, N);\n            };\n            function i(E, N) {\n              for (var x in N) u(N, x) && (E[x] = N[x]);\n              return E;\n            }\n            var l = /^[ \\t]*(?:\\r\\n|\\r|\\n)/, p = /(?:\\r\\n|\\r|\\n)[ \\t]*$/, y = /^(?:[\\r\\n]|$)/, h = /(?:\\r\\n|\\r|\\n)([ \\t]*)(?:[^ \\t\\r\\n]|$)/, g = /^[ \\t]*[\\r\\n][ \\t\\r\\n]*$/;\n            function c(E, N, x) {\n              var I = 0, P = E[0].match(h);\n              P && (I = P[1].length);\n              var $ = \"(\\\\r\\\\n|\\\\r|\\\\n).{0,\" + I + \"}\", D = new RegExp($, \"g\");\n              N && (E = E.slice(1));\n              var T = x.newline, m = x.trimLeadingNewline, C = x.trimTrailingNewline, o = typeof T == \"string\", d = E.length, v = E.map(function(S, b) {\n                return S = S.replace(D, \"$1\"), b === 0 && m && (S = S.replace(l, \"\")), b === d - 1 && C && (S = S.replace(p, \"\")), o && (S = S.replace(/\\r\\n|\\n|\\r/g, function(B) {\n                  return T;\n                })), S;\n              });\n              return v;\n            }\n            function f(E, N) {\n              for (var x = \"\", I = 0, P = E.length; I < P; I++) x += E[I], I < P - 1 && (x += N[I]);\n              return x;\n            }\n            function F(E) {\n              return u(E, \"raw\") && u(E, \"length\");\n            }\n            function _(E) {\n              var N = s2(), x = s2();\n              function I($) {\n                for (var D = [], T = 1; T < arguments.length; T++) D[T - 1] = arguments[T];\n                if (F($)) {\n                  var m = $, C = (D[0] === I || D[0] === w) && g.test(m[0]) && y.test(m[1]), o = C ? x : N, d = o.get(m);\n                  if (d || (d = c(m, C, E), o.set(m, d)), D.length === 0) return d[0];\n                  var v = f(d, C ? D.slice(1) : D);\n                  return v;\n                } else return _(i(i({}, E), $ || {}));\n              }\n              var P = i(I, { string: function($) {\n                return c([$], false, E)[0];\n              } });\n              return P;\n            }\n            var w = _({ trimLeadingNewline: true, trimTrailingNewline: true });\n            if (e.outdent = w, e.default = w, typeof r < \"u\") try {\n              r.exports = w, Object.defineProperty(w, \"__esModule\", { value: true }), w.default = w, w.outdent = w;\n            } catch {\n            }\n          } }), KD = te({ \"src/main/core-options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { outdent: t } = XD(), s2 = \"Config\", a = \"Editor\", n = \"Format\", u = \"Other\", i = \"Output\", l = \"Global\", p = \"Special\", y = { cursorOffset: { since: \"1.4.0\", category: p, type: \"int\", default: -1, range: { start: -1, end: Number.POSITIVE_INFINITY, step: 1 }, description: t`\n      Print (to stderr) where a cursor at the given position would move to after formatting.\n      This option cannot be used with --range-start and --range-end.\n    `, cliCategory: a }, endOfLine: { since: \"1.15.0\", category: l, type: \"choice\", default: [{ since: \"1.15.0\", value: \"auto\" }, { since: \"2.0.0\", value: \"lf\" }], description: \"Which end of line characters to apply.\", choices: [{ value: \"lf\", description: \"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\" }, { value: \"crlf\", description: \"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\" }, { value: \"cr\", description: \"Carriage Return character only (\\\\r), used very rarely\" }, { value: \"auto\", description: t`\n          Maintain existing\n          (mixed values within one file are normalised by looking at what's used after the first line)\n        ` }] }, filepath: { since: \"1.4.0\", category: p, type: \"path\", description: \"Specify the input filepath. This will be used to do parser inference.\", cliName: \"stdin-filepath\", cliCategory: u, cliDescription: \"Path to the file to pretend that stdin comes from.\" }, insertPragma: { since: \"1.8.0\", category: p, type: \"boolean\", default: false, description: \"Insert @format pragma into file's first docblock comment.\", cliCategory: u }, parser: { since: \"0.0.10\", category: l, type: \"choice\", default: [{ since: \"0.0.10\", value: \"babylon\" }, { since: \"1.13.0\", value: void 0 }], description: \"Which parser to use.\", exception: (h) => typeof h == \"string\" || typeof h == \"function\", choices: [{ value: \"flow\", description: \"Flow\" }, { value: \"babel\", since: \"1.16.0\", description: \"JavaScript\" }, { value: \"babel-flow\", since: \"1.16.0\", description: \"Flow\" }, { value: \"babel-ts\", since: \"2.0.0\", description: \"TypeScript\" }, { value: \"typescript\", since: \"1.4.0\", description: \"TypeScript\" }, { value: \"acorn\", since: \"2.6.0\", description: \"JavaScript\" }, { value: \"espree\", since: \"2.2.0\", description: \"JavaScript\" }, { value: \"meriyah\", since: \"2.2.0\", description: \"JavaScript\" }, { value: \"css\", since: \"1.7.1\", description: \"CSS\" }, { value: \"less\", since: \"1.7.1\", description: \"Less\" }, { value: \"scss\", since: \"1.7.1\", description: \"SCSS\" }, { value: \"json\", since: \"1.5.0\", description: \"JSON\" }, { value: \"json5\", since: \"1.13.0\", description: \"JSON5\" }, { value: \"json-stringify\", since: \"1.13.0\", description: \"JSON.stringify\" }, { value: \"graphql\", since: \"1.5.0\", description: \"GraphQL\" }, { value: \"markdown\", since: \"1.8.0\", description: \"Markdown\" }, { value: \"mdx\", since: \"1.15.0\", description: \"MDX\" }, { value: \"vue\", since: \"1.10.0\", description: \"Vue\" }, { value: \"yaml\", since: \"1.14.0\", description: \"YAML\" }, { value: \"glimmer\", since: \"2.3.0\", description: \"Ember / Handlebars\" }, { value: \"html\", since: \"1.15.0\", description: \"HTML\" }, { value: \"angular\", since: \"1.15.0\", description: \"Angular\" }, { value: \"lwc\", since: \"1.17.0\", description: \"Lightning Web Components\" }] }, plugins: { since: \"1.10.0\", type: \"path\", array: true, default: [{ value: [] }], category: l, description: \"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\", exception: (h) => typeof h == \"string\" || typeof h == \"object\", cliName: \"plugin\", cliCategory: s2 }, pluginSearchDirs: { since: \"1.13.0\", type: \"path\", array: true, default: [{ value: [] }], category: l, description: t`\n      Custom directory that contains prettier plugins in node_modules subdirectory.\n      Overrides default behavior when plugins are searched relatively to the location of Prettier.\n      Multiple values are accepted.\n    `, exception: (h) => typeof h == \"string\" || typeof h == \"object\", cliName: \"plugin-search-dir\", cliCategory: s2 }, printWidth: { since: \"0.0.0\", category: l, type: \"int\", default: 80, description: \"The line length where Prettier will try wrap.\", range: { start: 0, end: Number.POSITIVE_INFINITY, step: 1 } }, rangeEnd: { since: \"1.4.0\", category: p, type: \"int\", default: Number.POSITIVE_INFINITY, range: { start: 0, end: Number.POSITIVE_INFINITY, step: 1 }, description: t`\n      Format code ending at a given character offset (exclusive).\n      The range will extend forwards to the end of the selected statement.\n      This option cannot be used with --cursor-offset.\n    `, cliCategory: a }, rangeStart: { since: \"1.4.0\", category: p, type: \"int\", default: 0, range: { start: 0, end: Number.POSITIVE_INFINITY, step: 1 }, description: t`\n      Format code starting at a given character offset.\n      The range will extend backwards to the start of the first line containing the selected statement.\n      This option cannot be used with --cursor-offset.\n    `, cliCategory: a }, requirePragma: { since: \"1.7.0\", category: p, type: \"boolean\", default: false, description: t`\n      Require either '@prettier' or '@format' to be present in the file's first docblock comment\n      in order for it to be formatted.\n    `, cliCategory: u }, tabWidth: { type: \"int\", category: l, default: 2, description: \"Number of spaces per indentation level.\", range: { start: 0, end: Number.POSITIVE_INFINITY, step: 1 } }, useTabs: { since: \"1.0.0\", category: l, type: \"boolean\", default: false, description: \"Indent with tabs instead of spaces.\" }, embeddedLanguageFormatting: { since: \"2.1.0\", category: l, type: \"choice\", default: [{ since: \"2.1.0\", value: \"auto\" }], description: \"Control how Prettier formats quoted code embedded in the file.\", choices: [{ value: \"auto\", description: \"Format embedded code if Prettier can automatically identify it.\" }, { value: \"off\", description: \"Never automatically format embedded code.\" }] } };\n            r.exports = { CATEGORY_CONFIG: s2, CATEGORY_EDITOR: a, CATEGORY_FORMAT: n, CATEGORY_OTHER: u, CATEGORY_OUTPUT: i, CATEGORY_GLOBAL: l, CATEGORY_SPECIAL: p, options: y };\n          } }), Xn = te({ \"src/main/support.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = { compare: zn(), lt: UD(), gte: JD() }, s2 = zD(), a = Ia().version, n = KD().options;\n            function u() {\n              let { plugins: l = [], showUnreleased: p = false, showDeprecated: y = false, showInternal: h = false } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, g = a.split(\"-\", 1)[0], c = l.flatMap((E) => E.languages || []).filter(F), f = s2(Object.assign({}, ...l.map((E) => {\n                let { options: N } = E;\n                return N;\n              }), n), \"name\").filter((E) => F(E) && _(E)).sort((E, N) => E.name === N.name ? 0 : E.name < N.name ? -1 : 1).map(w).map((E) => {\n                E = Object.assign({}, E), Array.isArray(E.default) && (E.default = E.default.length === 1 ? E.default[0].value : E.default.filter(F).sort((x, I) => t.compare(I.since, x.since))[0].value), Array.isArray(E.choices) && (E.choices = E.choices.filter((x) => F(x) && _(x)), E.name === \"parser\" && i(E, c, l));\n                let N = Object.fromEntries(l.filter((x) => x.defaultOptions && x.defaultOptions[E.name] !== void 0).map((x) => [x.name, x.defaultOptions[E.name]]));\n                return Object.assign(Object.assign({}, E), {}, { pluginDefaults: N });\n              });\n              return { languages: c, options: f };\n              function F(E) {\n                return p || !(\"since\" in E) || E.since && t.gte(g, E.since);\n              }\n              function _(E) {\n                return y || !(\"deprecated\" in E) || E.deprecated && t.lt(g, E.deprecated);\n              }\n              function w(E) {\n                if (h) return E;\n                let { cliName: N, cliCategory: x, cliDescription: I } = E;\n                return Hn(E, hD);\n              }\n            }\n            function i(l, p, y) {\n              let h = new Set(l.choices.map((g) => g.value));\n              for (let g of p) if (g.parsers) {\n                for (let c of g.parsers) if (!h.has(c)) {\n                  h.add(c);\n                  let f = y.find((_) => _.parsers && _.parsers[c]), F = g.name;\n                  f && f.name && (F += ` (plugin: ${f.name})`), l.choices.push({ value: c, description: F });\n                }\n              }\n            }\n            r.exports = { getSupportInfo: u };\n          } }), Kn = te({ \"src/utils/is-non-empty-array.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2) {\n              return Array.isArray(s2) && s2.length > 0;\n            }\n            r.exports = t;\n          } }), Pr = te({ \"src/utils/text/skip.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(i) {\n              return (l, p, y) => {\n                let h = y && y.backwards;\n                if (p === false) return false;\n                let { length: g } = l, c = p;\n                for (; c >= 0 && c < g; ) {\n                  let f = l.charAt(c);\n                  if (i instanceof RegExp) {\n                    if (!i.test(f)) return c;\n                  } else if (!i.includes(f)) return c;\n                  h ? c-- : c++;\n                }\n                return c === -1 || c === g ? c : false;\n              };\n            }\n            var s2 = t(/\\s/), a = t(\" \t\"), n = t(\",; \t\"), u = t(/[^\\n\\r]/);\n            r.exports = { skipWhitespace: s2, skipSpaces: a, skipToLineEnd: n, skipEverythingButNewLine: u };\n          } }), Ra = te({ \"src/utils/text/skip-inline-comment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a) {\n              if (a === false) return false;\n              if (s2.charAt(a) === \"/\" && s2.charAt(a + 1) === \"*\") {\n                for (let n = a + 2; n < s2.length; ++n) if (s2.charAt(n) === \"*\" && s2.charAt(n + 1) === \"/\") return n + 2;\n              }\n              return a;\n            }\n            r.exports = t;\n          } }), $a = te({ \"src/utils/text/skip-trailing-comment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { skipEverythingButNewLine: t } = Pr();\n            function s2(a, n) {\n              return n === false ? false : a.charAt(n) === \"/\" && a.charAt(n + 1) === \"/\" ? t(a, n) : n;\n            }\n            r.exports = s2;\n          } }), Va = te({ \"src/utils/text/skip-newline.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a, n) {\n              let u = n && n.backwards;\n              if (a === false) return false;\n              let i = s2.charAt(a);\n              if (u) {\n                if (s2.charAt(a - 1) === \"\\r\" && i === `\n`) return a - 2;\n                if (i === `\n` || i === \"\\r\" || i === \"\\u2028\" || i === \"\\u2029\") return a - 1;\n              } else {\n                if (i === \"\\r\" && s2.charAt(a + 1) === `\n`) return a + 2;\n                if (i === `\n` || i === \"\\r\" || i === \"\\u2028\" || i === \"\\u2029\") return a + 1;\n              }\n              return a;\n            }\n            r.exports = t;\n          } }), YD = te({ \"src/utils/text/get-next-non-space-non-comment-character-index-with-start-index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Ra(), s2 = Va(), a = $a(), { skipSpaces: n } = Pr();\n            function u(i, l) {\n              let p = null, y = l;\n              for (; y !== p; ) p = y, y = n(i, y), y = t(i, y), y = a(i, y), y = s2(i, y);\n              return y;\n            }\n            r.exports = u;\n          } }), Ue = te({ \"src/common/util.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { default: t } = ($D(), ft(ja)), s2 = lt(), { getSupportInfo: a } = Xn(), n = Kn(), u = Oa(), { skipWhitespace: i, skipSpaces: l, skipToLineEnd: p, skipEverythingButNewLine: y } = Pr(), h = Ra(), g = $a(), c = Va(), f = YD(), F = (V) => V[V.length - 2];\n            function _(V) {\n              return (j, Y, ie) => {\n                let ee = ie && ie.backwards;\n                if (Y === false) return false;\n                let { length: ce } = j, W = Y;\n                for (; W >= 0 && W < ce; ) {\n                  let K = j.charAt(W);\n                  if (V instanceof RegExp) {\n                    if (!V.test(K)) return W;\n                  } else if (!V.includes(K)) return W;\n                  ee ? W-- : W++;\n                }\n                return W === -1 || W === ce ? W : false;\n              };\n            }\n            function w(V, j) {\n              let Y = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, ie = l(V, Y.backwards ? j - 1 : j, Y), ee = c(V, ie, Y);\n              return ie !== ee;\n            }\n            function E(V, j, Y) {\n              for (let ie = j; ie < Y; ++ie) if (V.charAt(ie) === `\n`) return true;\n              return false;\n            }\n            function N(V, j, Y) {\n              let ie = Y(j) - 1;\n              ie = l(V, ie, { backwards: true }), ie = c(V, ie, { backwards: true }), ie = l(V, ie, { backwards: true });\n              let ee = c(V, ie, { backwards: true });\n              return ie !== ee;\n            }\n            function x(V, j) {\n              let Y = null, ie = j;\n              for (; ie !== Y; ) Y = ie, ie = p(V, ie), ie = h(V, ie), ie = l(V, ie);\n              return ie = g(V, ie), ie = c(V, ie), ie !== false && w(V, ie);\n            }\n            function I(V, j, Y) {\n              return x(V, Y(j));\n            }\n            function P(V, j, Y) {\n              return f(V, Y(j));\n            }\n            function $(V, j, Y) {\n              return V.charAt(P(V, j, Y));\n            }\n            function D(V, j) {\n              let Y = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n              return l(V, Y.backwards ? j - 1 : j, Y) !== j;\n            }\n            function T(V, j) {\n              let Y = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, ie = 0;\n              for (let ee = Y; ee < V.length; ++ee) V[ee] === \"\t\" ? ie = ie + j - ie % j : ie++;\n              return ie;\n            }\n            function m(V, j) {\n              let Y = V.lastIndexOf(`\n`);\n              return Y === -1 ? 0 : T(V.slice(Y + 1).match(/^[\\t ]*/)[0], j);\n            }\n            function C(V, j) {\n              let Y = { quote: '\"', regex: /\"/g, escaped: \"&quot;\" }, ie = { quote: \"'\", regex: /'/g, escaped: \"&apos;\" }, ee = j === \"'\" ? ie : Y, ce = ee === ie ? Y : ie, W = ee;\n              if (V.includes(ee.quote) || V.includes(ce.quote)) {\n                let K = (V.match(ee.regex) || []).length, de = (V.match(ce.regex) || []).length;\n                W = K > de ? ce : ee;\n              }\n              return W;\n            }\n            function o(V, j) {\n              let Y = V.slice(1, -1), ie = j.parser === \"json\" || j.parser === \"json5\" && j.quoteProps === \"preserve\" && !j.singleQuote ? '\"' : j.__isInHtmlAttribute ? \"'\" : C(Y, j.singleQuote ? \"'\" : '\"').quote;\n              return d(Y, ie, !(j.parser === \"css\" || j.parser === \"less\" || j.parser === \"scss\" || j.__embeddedInHtml));\n            }\n            function d(V, j, Y) {\n              let ie = j === '\"' ? \"'\" : '\"', ee = /\\\\(.)|([\"'])/gs, ce = V.replace(ee, (W, K, de) => K === ie ? K : de === j ? \"\\\\\" + de : de || (Y && /^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(K) ? K : \"\\\\\" + K));\n              return j + ce + j;\n            }\n            function v(V) {\n              return V.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(\\d)/, \"$1$2$3\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/, \"$1\").replace(/^([+-])?\\./, \"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/, \"$1\").replace(/\\.(?=e|$)/, \"\");\n            }\n            function S(V, j) {\n              let Y = V.match(new RegExp(`(${t(j)})+`, \"g\"));\n              return Y === null ? 0 : Y.reduce((ie, ee) => Math.max(ie, ee.length / j.length), 0);\n            }\n            function b(V, j) {\n              let Y = V.match(new RegExp(`(${t(j)})+`, \"g\"));\n              if (Y === null) return 0;\n              let ie = /* @__PURE__ */ new Map(), ee = 0;\n              for (let ce of Y) {\n                let W = ce.length / j.length;\n                ie.set(W, true), W > ee && (ee = W);\n              }\n              for (let ce = 1; ce < ee; ce++) if (!ie.get(ce)) return ce;\n              return ee + 1;\n            }\n            function B(V, j) {\n              (V.comments || (V.comments = [])).push(j), j.printed = false, j.nodeDescription = Q(V);\n            }\n            function k(V, j) {\n              j.leading = true, j.trailing = false, B(V, j);\n            }\n            function M(V, j, Y) {\n              j.leading = false, j.trailing = false, Y && (j.marker = Y), B(V, j);\n            }\n            function R(V, j) {\n              j.leading = false, j.trailing = true, B(V, j);\n            }\n            function q(V, j) {\n              let { languages: Y } = a({ plugins: j.plugins }), ie = Y.find((ee) => {\n                let { name: ce } = ee;\n                return ce.toLowerCase() === V;\n              }) || Y.find((ee) => {\n                let { aliases: ce } = ee;\n                return Array.isArray(ce) && ce.includes(V);\n              }) || Y.find((ee) => {\n                let { extensions: ce } = ee;\n                return Array.isArray(ce) && ce.includes(`.${V}`);\n              });\n              return ie && ie.parsers[0];\n            }\n            function J(V) {\n              return V && V.type === \"front-matter\";\n            }\n            function L(V) {\n              let j = /* @__PURE__ */ new WeakMap();\n              return function(Y) {\n                return j.has(Y) || j.set(Y, Symbol(V)), j.get(Y);\n              };\n            }\n            function Q(V) {\n              let j = V.type || V.kind || \"(unknown type)\", Y = String(V.name || V.id && (typeof V.id == \"object\" ? V.id.name : V.id) || V.key && (typeof V.key == \"object\" ? V.key.name : V.key) || V.value && (typeof V.value == \"object\" ? \"\" : String(V.value)) || V.operator || \"\");\n              return Y.length > 20 && (Y = Y.slice(0, 19) + \"\\u2026\"), j + (Y ? \" \" + Y : \"\");\n            }\n            r.exports = { inferParserByLanguage: q, getStringWidth: u, getMaxContinuousCount: S, getMinNotPresentContinuousCount: b, getPenultimate: F, getLast: s2, getNextNonSpaceNonCommentCharacterIndexWithStartIndex: f, getNextNonSpaceNonCommentCharacterIndex: P, getNextNonSpaceNonCommentCharacter: $, skip: _, skipWhitespace: i, skipSpaces: l, skipToLineEnd: p, skipEverythingButNewLine: y, skipInlineComment: h, skipTrailingComment: g, skipNewline: c, isNextLineEmptyAfterIndex: x, isNextLineEmpty: I, isPreviousLineEmpty: N, hasNewline: w, hasNewlineInRange: E, hasSpaces: D, getAlignmentSize: T, getIndentSize: m, getPreferredQuote: C, printString: o, printNumber: v, makeString: d, addLeadingComment: k, addDanglingComment: M, addTrailingComment: R, isFrontMatterNode: J, isNonEmptyArray: n, createGroupIdMapper: L };\n          } }), Wa = {};\n          Kt(Wa, { basename: () => za, default: () => Ka, delimiter: () => Mn, dirname: () => Ja, extname: () => Xa, isAbsolute: () => Qn, join: () => Ga, normalize: () => Yn, relative: () => Ua, resolve: () => wr, sep: () => qn });\n          function Ha(e, r) {\n            for (var t = 0, s2 = e.length - 1; s2 >= 0; s2--) {\n              var a = e[s2];\n              a === \".\" ? e.splice(s2, 1) : a === \"..\" ? (e.splice(s2, 1), t++) : t && (e.splice(s2, 1), t--);\n            }\n            if (r) for (; t--; t) e.unshift(\"..\");\n            return e;\n          }\n          function wr() {\n            for (var e = \"\", r = false, t = arguments.length - 1; t >= -1 && !r; t--) {\n              var s2 = t >= 0 ? arguments[t] : \"/\";\n              if (typeof s2 != \"string\") throw new TypeError(\"Arguments to path.resolve must be strings\");\n              if (!s2) continue;\n              e = s2 + \"/\" + e, r = s2.charAt(0) === \"/\";\n            }\n            return e = Ha(Zn(e.split(\"/\"), function(a) {\n              return !!a;\n            }), !r).join(\"/\"), (r ? \"/\" : \"\") + e || \".\";\n          }\n          function Yn(e) {\n            var r = Qn(e), t = Ya(e, -1) === \"/\";\n            return e = Ha(Zn(e.split(\"/\"), function(s2) {\n              return !!s2;\n            }), !r).join(\"/\"), !e && !r && (e = \".\"), e && t && (e += \"/\"), (r ? \"/\" : \"\") + e;\n          }\n          function Qn(e) {\n            return e.charAt(0) === \"/\";\n          }\n          function Ga() {\n            var e = Array.prototype.slice.call(arguments, 0);\n            return Yn(Zn(e, function(r, t) {\n              if (typeof r != \"string\") throw new TypeError(\"Arguments to path.join must be strings\");\n              return r;\n            }).join(\"/\"));\n          }\n          function Ua(e, r) {\n            e = wr(e).substr(1), r = wr(r).substr(1);\n            function t(p) {\n              for (var y = 0; y < p.length && p[y] === \"\"; y++) ;\n              for (var h = p.length - 1; h >= 0 && p[h] === \"\"; h--) ;\n              return y > h ? [] : p.slice(y, h - y + 1);\n            }\n            for (var s2 = t(e.split(\"/\")), a = t(r.split(\"/\")), n = Math.min(s2.length, a.length), u = n, i = 0; i < n; i++) if (s2[i] !== a[i]) {\n              u = i;\n              break;\n            }\n            for (var l = [], i = u; i < s2.length; i++) l.push(\"..\");\n            return l = l.concat(a.slice(u)), l.join(\"/\");\n          }\n          function Ja(e) {\n            var r = Ir(e), t = r[0], s2 = r[1];\n            return !t && !s2 ? \".\" : (s2 && (s2 = s2.substr(0, s2.length - 1)), t + s2);\n          }\n          function za(e, r) {\n            var t = Ir(e)[2];\n            return r && t.substr(-1 * r.length) === r && (t = t.substr(0, t.length - r.length)), t;\n          }\n          function Xa(e) {\n            return Ir(e)[3];\n          }\n          function Zn(e, r) {\n            if (e.filter) return e.filter(r);\n            for (var t = [], s2 = 0; s2 < e.length; s2++) r(e[s2], s2, e) && t.push(e[s2]);\n            return t;\n          }\n          var Na, Ir, qn, Mn, Ka, Ya, QD = ht({ \"node-modules-polyfills:path\"() {\n            ne(), Na = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/, Ir = function(e) {\n              return Na.exec(e).slice(1);\n            }, qn = \"/\", Mn = \":\", Ka = { extname: Xa, basename: za, dirname: Ja, sep: qn, delimiter: Mn, relative: Ua, join: Ga, isAbsolute: Qn, normalize: Yn, resolve: wr }, Ya = \"ab\".substr(-1) === \"b\" ? function(e, r, t) {\n              return e.substr(r, t);\n            } : function(e, r, t) {\n              return r < 0 && (r = e.length + r), e.substr(r, t);\n            };\n          } }), ZD = te({ \"node-modules-polyfills-commonjs:path\"(e, r) {\n            ne();\n            var t = (QD(), ft(Wa));\n            if (t && t.default) {\n              r.exports = t.default;\n              for (let s2 in t) r.exports[s2] = t[s2];\n            } else t && (r.exports = t);\n          } }), Qt = te({ \"src/common/errors.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = class extends Error {\n            }, s2 = class extends Error {\n            }, a = class extends Error {\n            }, n = class extends Error {\n            };\n            r.exports = { ConfigError: t, DebugError: s2, UndefinedParserError: a, ArgExpansionBailout: n };\n          } }), vt = {};\n          Kt(vt, { __assign: () => Nr, __asyncDelegator: () => fm, __asyncGenerator: () => pm, __asyncValues: () => Dm, __await: () => Xt, __awaiter: () => sm, __classPrivateFieldGet: () => ym, __classPrivateFieldSet: () => hm, __createBinding: () => am, __decorate: () => rm, __exportStar: () => om, __extends: () => em, __generator: () => im, __importDefault: () => gm, __importStar: () => dm, __makeTemplateObject: () => mm, __metadata: () => um, __param: () => nm, __read: () => Qa, __rest: () => tm, __spread: () => lm, __spreadArrays: () => cm, __values: () => Rn });\n          function em(e, r) {\n            Br(e, r);\n            function t() {\n              this.constructor = e;\n            }\n            e.prototype = r === null ? Object.create(r) : (t.prototype = r.prototype, new t());\n          }\n          function tm(e, r) {\n            var t = {};\n            for (var s2 in e) Object.prototype.hasOwnProperty.call(e, s2) && r.indexOf(s2) < 0 && (t[s2] = e[s2]);\n            if (e != null && typeof Object.getOwnPropertySymbols == \"function\") for (var a = 0, s2 = Object.getOwnPropertySymbols(e); a < s2.length; a++) r.indexOf(s2[a]) < 0 && Object.prototype.propertyIsEnumerable.call(e, s2[a]) && (t[s2[a]] = e[s2[a]]);\n            return t;\n          }\n          function rm(e, r, t, s2) {\n            var a = arguments.length, n = a < 3 ? r : s2 === null ? s2 = Object.getOwnPropertyDescriptor(r, t) : s2, u;\n            if (typeof Reflect == \"object\" && typeof Reflect.decorate == \"function\") n = Reflect.decorate(e, r, t, s2);\n            else for (var i = e.length - 1; i >= 0; i--) (u = e[i]) && (n = (a < 3 ? u(n) : a > 3 ? u(r, t, n) : u(r, t)) || n);\n            return a > 3 && n && Object.defineProperty(r, t, n), n;\n          }\n          function nm(e, r) {\n            return function(t, s2) {\n              r(t, s2, e);\n            };\n          }\n          function um(e, r) {\n            if (typeof Reflect == \"object\" && typeof Reflect.metadata == \"function\") return Reflect.metadata(e, r);\n          }\n          function sm(e, r, t, s2) {\n            function a(n) {\n              return n instanceof t ? n : new t(function(u) {\n                u(n);\n              });\n            }\n            return new (t || (t = Promise))(function(n, u) {\n              function i(y) {\n                try {\n                  p(s2.next(y));\n                } catch (h) {\n                  u(h);\n                }\n              }\n              function l(y) {\n                try {\n                  p(s2.throw(y));\n                } catch (h) {\n                  u(h);\n                }\n              }\n              function p(y) {\n                y.done ? n(y.value) : a(y.value).then(i, l);\n              }\n              p((s2 = s2.apply(e, r || [])).next());\n            });\n          }\n          function im(e, r) {\n            var t = { label: 0, sent: function() {\n              if (n[0] & 1) throw n[1];\n              return n[1];\n            }, trys: [], ops: [] }, s2, a, n, u;\n            return u = { next: i(0), throw: i(1), return: i(2) }, typeof Symbol == \"function\" && (u[Symbol.iterator] = function() {\n              return this;\n            }), u;\n            function i(p) {\n              return function(y) {\n                return l([p, y]);\n              };\n            }\n            function l(p) {\n              if (s2) throw new TypeError(\"Generator is already executing.\");\n              for (; t; ) try {\n                if (s2 = 1, a && (n = p[0] & 2 ? a.return : p[0] ? a.throw || ((n = a.return) && n.call(a), 0) : a.next) && !(n = n.call(a, p[1])).done) return n;\n                switch (a = 0, n && (p = [p[0] & 2, n.value]), p[0]) {\n                  case 0:\n                  case 1:\n                    n = p;\n                    break;\n                  case 4:\n                    return t.label++, { value: p[1], done: false };\n                  case 5:\n                    t.label++, a = p[1], p = [0];\n                    continue;\n                  case 7:\n                    p = t.ops.pop(), t.trys.pop();\n                    continue;\n                  default:\n                    if (n = t.trys, !(n = n.length > 0 && n[n.length - 1]) && (p[0] === 6 || p[0] === 2)) {\n                      t = 0;\n                      continue;\n                    }\n                    if (p[0] === 3 && (!n || p[1] > n[0] && p[1] < n[3])) {\n                      t.label = p[1];\n                      break;\n                    }\n                    if (p[0] === 6 && t.label < n[1]) {\n                      t.label = n[1], n = p;\n                      break;\n                    }\n                    if (n && t.label < n[2]) {\n                      t.label = n[2], t.ops.push(p);\n                      break;\n                    }\n                    n[2] && t.ops.pop(), t.trys.pop();\n                    continue;\n                }\n                p = r.call(e, t);\n              } catch (y) {\n                p = [6, y], a = 0;\n              } finally {\n                s2 = n = 0;\n              }\n              if (p[0] & 5) throw p[1];\n              return { value: p[0] ? p[1] : void 0, done: true };\n            }\n          }\n          function am(e, r, t, s2) {\n            s2 === void 0 && (s2 = t), e[s2] = r[t];\n          }\n          function om(e, r) {\n            for (var t in e) t !== \"default\" && !r.hasOwnProperty(t) && (r[t] = e[t]);\n          }\n          function Rn(e) {\n            var r = typeof Symbol == \"function\" && Symbol.iterator, t = r && e[r], s2 = 0;\n            if (t) return t.call(e);\n            if (e && typeof e.length == \"number\") return { next: function() {\n              return e && s2 >= e.length && (e = void 0), { value: e && e[s2++], done: !e };\n            } };\n            throw new TypeError(r ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n          }\n          function Qa(e, r) {\n            var t = typeof Symbol == \"function\" && e[Symbol.iterator];\n            if (!t) return e;\n            var s2 = t.call(e), a, n = [], u;\n            try {\n              for (; (r === void 0 || r-- > 0) && !(a = s2.next()).done; ) n.push(a.value);\n            } catch (i) {\n              u = { error: i };\n            } finally {\n              try {\n                a && !a.done && (t = s2.return) && t.call(s2);\n              } finally {\n                if (u) throw u.error;\n              }\n            }\n            return n;\n          }\n          function lm() {\n            for (var e = [], r = 0; r < arguments.length; r++) e = e.concat(Qa(arguments[r]));\n            return e;\n          }\n          function cm() {\n            for (var e = 0, r = 0, t = arguments.length; r < t; r++) e += arguments[r].length;\n            for (var s2 = Array(e), a = 0, r = 0; r < t; r++) for (var n = arguments[r], u = 0, i = n.length; u < i; u++, a++) s2[a] = n[u];\n            return s2;\n          }\n          function Xt(e) {\n            return this instanceof Xt ? (this.v = e, this) : new Xt(e);\n          }\n          function pm(e, r, t) {\n            if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n            var s2 = t.apply(e, r || []), a, n = [];\n            return a = {}, u(\"next\"), u(\"throw\"), u(\"return\"), a[Symbol.asyncIterator] = function() {\n              return this;\n            }, a;\n            function u(g) {\n              s2[g] && (a[g] = function(c) {\n                return new Promise(function(f, F) {\n                  n.push([g, c, f, F]) > 1 || i(g, c);\n                });\n              });\n            }\n            function i(g, c) {\n              try {\n                l(s2[g](c));\n              } catch (f) {\n                h(n[0][3], f);\n              }\n            }\n            function l(g) {\n              g.value instanceof Xt ? Promise.resolve(g.value.v).then(p, y) : h(n[0][2], g);\n            }\n            function p(g) {\n              i(\"next\", g);\n            }\n            function y(g) {\n              i(\"throw\", g);\n            }\n            function h(g, c) {\n              g(c), n.shift(), n.length && i(n[0][0], n[0][1]);\n            }\n          }\n          function fm(e) {\n            var r, t;\n            return r = {}, s2(\"next\"), s2(\"throw\", function(a) {\n              throw a;\n            }), s2(\"return\"), r[Symbol.iterator] = function() {\n              return this;\n            }, r;\n            function s2(a, n) {\n              r[a] = e[a] ? function(u) {\n                return (t = !t) ? { value: Xt(e[a](u)), done: a === \"return\" } : n ? n(u) : u;\n              } : n;\n            }\n          }\n          function Dm(e) {\n            if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n            var r = e[Symbol.asyncIterator], t;\n            return r ? r.call(e) : (e = typeof Rn == \"function\" ? Rn(e) : e[Symbol.iterator](), t = {}, s2(\"next\"), s2(\"throw\"), s2(\"return\"), t[Symbol.asyncIterator] = function() {\n              return this;\n            }, t);\n            function s2(n) {\n              t[n] = e[n] && function(u) {\n                return new Promise(function(i, l) {\n                  u = e[n](u), a(i, l, u.done, u.value);\n                });\n              };\n            }\n            function a(n, u, i, l) {\n              Promise.resolve(l).then(function(p) {\n                n({ value: p, done: i });\n              }, u);\n            }\n          }\n          function mm(e, r) {\n            return Object.defineProperty ? Object.defineProperty(e, \"raw\", { value: r }) : e.raw = r, e;\n          }\n          function dm(e) {\n            if (e && e.__esModule) return e;\n            var r = {};\n            if (e != null) for (var t in e) Object.hasOwnProperty.call(e, t) && (r[t] = e[t]);\n            return r.default = e, r;\n          }\n          function gm(e) {\n            return e && e.__esModule ? e : { default: e };\n          }\n          function ym(e, r) {\n            if (!r.has(e)) throw new TypeError(\"attempted to get private field on non-instance\");\n            return r.get(e);\n          }\n          function hm(e, r, t) {\n            if (!r.has(e)) throw new TypeError(\"attempted to set private field on non-instance\");\n            return r.set(e, t), t;\n          }\n          var Br, Nr, Et = ht({ \"node_modules/tslib/tslib.es6.js\"() {\n            ne(), Br = function(e, r) {\n              return Br = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, s2) {\n                t.__proto__ = s2;\n              } || function(t, s2) {\n                for (var a in s2) s2.hasOwnProperty(a) && (t[a] = s2[a]);\n              }, Br(e, r);\n            }, Nr = function() {\n              return Nr = Object.assign || function(r) {\n                for (var t, s2 = 1, a = arguments.length; s2 < a; s2++) {\n                  t = arguments[s2];\n                  for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (r[n] = t[n]);\n                }\n                return r;\n              }, Nr.apply(this, arguments);\n            };\n          } }), Za = te({ \"node_modules/vnopts/lib/descriptors/api.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.apiDescriptor = { key: (r) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(r) ? r : JSON.stringify(r), value(r) {\n              if (r === null || typeof r != \"object\") return JSON.stringify(r);\n              if (Array.isArray(r)) return `[${r.map((s2) => e.apiDescriptor.value(s2)).join(\", \")}]`;\n              let t = Object.keys(r);\n              return t.length === 0 ? \"{}\" : `{ ${t.map((s2) => `${e.apiDescriptor.key(s2)}: ${e.apiDescriptor.value(r[s2])}`).join(\", \")} }`;\n            }, pair: (r) => {\n              let { key: t, value: s2 } = r;\n              return e.apiDescriptor.value({ [t]: s2 });\n            } };\n          } }), vm = te({ \"node_modules/vnopts/lib/descriptors/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(Za(), e);\n          } }), kr = te({ \"scripts/build/shims/chalk.cjs\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = (s2) => s2;\n            t.grey = t, t.red = t, t.bold = t, t.yellow = t, t.blue = t, t.default = t, r.exports = t;\n          } }), eo = te({ \"node_modules/vnopts/lib/handlers/deprecated/common.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = kr();\n            e.commonDeprecatedHandler = (t, s2, a) => {\n              let { descriptor: n } = a, u = [`${r.default.yellow(typeof t == \"string\" ? n.key(t) : n.pair(t))} is deprecated`];\n              return s2 && u.push(`we now treat it as ${r.default.blue(typeof s2 == \"string\" ? n.key(s2) : n.pair(s2))}`), u.join(\"; \") + \".\";\n            };\n          } }), Cm = te({ \"node_modules/vnopts/lib/handlers/deprecated/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(eo(), e);\n          } }), Em = te({ \"node_modules/vnopts/lib/handlers/invalid/common.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = kr();\n            e.commonInvalidHandler = (t, s2, a) => [`Invalid ${r.default.red(a.descriptor.key(t))} value.`, `Expected ${r.default.blue(a.schemas[t].expected(a))},`, `but received ${r.default.red(a.descriptor.value(s2))}.`].join(\" \");\n          } }), to = te({ \"node_modules/vnopts/lib/handlers/invalid/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(Em(), e);\n          } }), Fm = te({ \"node_modules/vnopts/node_modules/leven/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = [], s2 = [];\n            r.exports = function(a, n) {\n              if (a === n) return 0;\n              var u = a;\n              a.length > n.length && (a = n, n = u);\n              var i = a.length, l = n.length;\n              if (i === 0) return l;\n              if (l === 0) return i;\n              for (; i > 0 && a.charCodeAt(~-i) === n.charCodeAt(~-l); ) i--, l--;\n              if (i === 0) return l;\n              for (var p = 0; p < i && a.charCodeAt(p) === n.charCodeAt(p); ) p++;\n              if (i -= p, l -= p, i === 0) return l;\n              for (var y, h, g, c, f = 0, F = 0; f < i; ) s2[p + f] = a.charCodeAt(p + f), t[f] = ++f;\n              for (; F < l; ) for (y = n.charCodeAt(p + F), g = F++, h = F, f = 0; f < i; f++) c = y === s2[p + f] ? g : g + 1, g = t[f], h = t[f] = g > h ? c > h ? h + 1 : c : c > g ? g + 1 : c;\n              return h;\n            };\n          } }), ro = te({ \"node_modules/vnopts/lib/handlers/unknown/leven.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = kr(), t = Fm();\n            e.levenUnknownHandler = (s2, a, n) => {\n              let { descriptor: u, logger: i, schemas: l } = n, p = [`Ignored unknown option ${r.default.yellow(u.pair({ key: s2, value: a }))}.`], y = Object.keys(l).sort().find((h) => t(s2, h) < 3);\n              y && p.push(`Did you mean ${r.default.blue(u.key(y))}?`), i.warn(p.join(\" \"));\n            };\n          } }), Am = te({ \"node_modules/vnopts/lib/handlers/unknown/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(ro(), e);\n          } }), Sm = te({ \"node_modules/vnopts/lib/handlers/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(Cm(), e), r.__exportStar(to(), e), r.__exportStar(Am(), e);\n          } }), Ft = te({ \"node_modules/vnopts/lib/schema.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = [\"default\", \"expected\", \"validate\", \"deprecated\", \"forward\", \"redirect\", \"overlap\", \"preprocess\", \"postprocess\"];\n            function t(n, u) {\n              let i = new n(u), l = Object.create(i);\n              for (let p of r) p in u && (l[p] = a(u[p], i, s2.prototype[p].length));\n              return l;\n            }\n            e.createSchema = t;\n            var s2 = class {\n              constructor(n) {\n                this.name = n.name;\n              }\n              static create(n) {\n                return t(this, n);\n              }\n              default(n) {\n              }\n              expected(n) {\n                return \"nothing\";\n              }\n              validate(n, u) {\n                return false;\n              }\n              deprecated(n, u) {\n                return false;\n              }\n              forward(n, u) {\n              }\n              redirect(n, u) {\n              }\n              overlap(n, u, i) {\n                return n;\n              }\n              preprocess(n, u) {\n                return n;\n              }\n              postprocess(n, u) {\n                return n;\n              }\n            };\n            e.Schema = s2;\n            function a(n, u, i) {\n              return typeof n == \"function\" ? function() {\n                for (var l = arguments.length, p = new Array(l), y = 0; y < l; y++) p[y] = arguments[y];\n                return n(...p.slice(0, i - 1), u, ...p.slice(i - 1));\n              } : () => n;\n            }\n          } }), xm = te({ \"node_modules/vnopts/lib/schemas/alias.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = class extends r.Schema {\n              constructor(s2) {\n                super(s2), this._sourceName = s2.sourceName;\n              }\n              expected(s2) {\n                return s2.schemas[this._sourceName].expected(s2);\n              }\n              validate(s2, a) {\n                return a.schemas[this._sourceName].validate(s2, a);\n              }\n              redirect(s2, a) {\n                return this._sourceName;\n              }\n            };\n            e.AliasSchema = t;\n          } }), bm = te({ \"node_modules/vnopts/lib/schemas/any.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = class extends r.Schema {\n              expected() {\n                return \"anything\";\n              }\n              validate() {\n                return true;\n              }\n            };\n            e.AnySchema = t;\n          } }), Tm = te({ \"node_modules/vnopts/lib/schemas/array.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt)), t = Ft(), s2 = class extends t.Schema {\n              constructor(n) {\n                var { valueSchema: u, name: i = u.name } = n, l = r.__rest(n, [\"valueSchema\", \"name\"]);\n                super(Object.assign({}, l, { name: i })), this._valueSchema = u;\n              }\n              expected(n) {\n                return `an array of ${this._valueSchema.expected(n)}`;\n              }\n              validate(n, u) {\n                if (!Array.isArray(n)) return false;\n                let i = [];\n                for (let l of n) {\n                  let p = u.normalizeValidateResult(this._valueSchema.validate(l, u), l);\n                  p !== true && i.push(p.value);\n                }\n                return i.length === 0 ? true : { value: i };\n              }\n              deprecated(n, u) {\n                let i = [];\n                for (let l of n) {\n                  let p = u.normalizeDeprecatedResult(this._valueSchema.deprecated(l, u), l);\n                  p !== false && i.push(...p.map((y) => {\n                    let { value: h } = y;\n                    return { value: [h] };\n                  }));\n                }\n                return i;\n              }\n              forward(n, u) {\n                let i = [];\n                for (let l of n) {\n                  let p = u.normalizeForwardResult(this._valueSchema.forward(l, u), l);\n                  i.push(...p.map(a));\n                }\n                return i;\n              }\n              redirect(n, u) {\n                let i = [], l = [];\n                for (let p of n) {\n                  let y = u.normalizeRedirectResult(this._valueSchema.redirect(p, u), p);\n                  \"remain\" in y && i.push(y.remain), l.push(...y.redirect.map(a));\n                }\n                return i.length === 0 ? { redirect: l } : { redirect: l, remain: i };\n              }\n              overlap(n, u) {\n                return n.concat(u);\n              }\n            };\n            e.ArraySchema = s2;\n            function a(n) {\n              let { from: u, to: i } = n;\n              return { from: [u], to: i };\n            }\n          } }), Bm = te({ \"node_modules/vnopts/lib/schemas/boolean.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = class extends r.Schema {\n              expected() {\n                return \"true or false\";\n              }\n              validate(s2) {\n                return typeof s2 == \"boolean\";\n              }\n            };\n            e.BooleanSchema = t;\n          } }), eu = te({ \"node_modules/vnopts/lib/utils.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            function r(c, f) {\n              let F = /* @__PURE__ */ Object.create(null);\n              for (let _ of c) {\n                let w = _[f];\n                if (F[w]) throw new Error(`Duplicate ${f} ${JSON.stringify(w)}`);\n                F[w] = _;\n              }\n              return F;\n            }\n            e.recordFromArray = r;\n            function t(c, f) {\n              let F = /* @__PURE__ */ new Map();\n              for (let _ of c) {\n                let w = _[f];\n                if (F.has(w)) throw new Error(`Duplicate ${f} ${JSON.stringify(w)}`);\n                F.set(w, _);\n              }\n              return F;\n            }\n            e.mapFromArray = t;\n            function s2() {\n              let c = /* @__PURE__ */ Object.create(null);\n              return (f) => {\n                let F = JSON.stringify(f);\n                return c[F] ? true : (c[F] = true, false);\n              };\n            }\n            e.createAutoChecklist = s2;\n            function a(c, f) {\n              let F = [], _ = [];\n              for (let w of c) f(w) ? F.push(w) : _.push(w);\n              return [F, _];\n            }\n            e.partition = a;\n            function n(c) {\n              return c === Math.floor(c);\n            }\n            e.isInt = n;\n            function u(c, f) {\n              if (c === f) return 0;\n              let F = typeof c, _ = typeof f, w = [\"undefined\", \"object\", \"boolean\", \"number\", \"string\"];\n              return F !== _ ? w.indexOf(F) - w.indexOf(_) : F !== \"string\" ? Number(c) - Number(f) : c.localeCompare(f);\n            }\n            e.comparePrimitive = u;\n            function i(c) {\n              return c === void 0 ? {} : c;\n            }\n            e.normalizeDefaultResult = i;\n            function l(c, f) {\n              return c === true ? true : c === false ? { value: f } : c;\n            }\n            e.normalizeValidateResult = l;\n            function p(c, f) {\n              let F = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n              return c === false ? false : c === true ? F ? true : [{ value: f }] : \"value\" in c ? [c] : c.length === 0 ? false : c;\n            }\n            e.normalizeDeprecatedResult = p;\n            function y(c, f) {\n              return typeof c == \"string\" || \"key\" in c ? { from: f, to: c } : \"from\" in c ? { from: c.from, to: c.to } : { from: f, to: c.to };\n            }\n            e.normalizeTransferResult = y;\n            function h(c, f) {\n              return c === void 0 ? [] : Array.isArray(c) ? c.map((F) => y(F, f)) : [y(c, f)];\n            }\n            e.normalizeForwardResult = h;\n            function g(c, f) {\n              let F = h(typeof c == \"object\" && \"redirect\" in c ? c.redirect : c, f);\n              return F.length === 0 ? { remain: f, redirect: F } : typeof c == \"object\" && \"remain\" in c ? { remain: c.remain, redirect: F } : { redirect: F };\n            }\n            e.normalizeRedirectResult = g;\n          } }), Nm = te({ \"node_modules/vnopts/lib/schemas/choice.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = eu(), s2 = class extends r.Schema {\n              constructor(a) {\n                super(a), this._choices = t.mapFromArray(a.choices.map((n) => n && typeof n == \"object\" ? n : { value: n }), \"value\");\n              }\n              expected(a) {\n                let { descriptor: n } = a, u = Array.from(this._choices.keys()).map((p) => this._choices.get(p)).filter((p) => !p.deprecated).map((p) => p.value).sort(t.comparePrimitive).map(n.value), i = u.slice(0, -2), l = u.slice(-2);\n                return i.concat(l.join(\" or \")).join(\", \");\n              }\n              validate(a) {\n                return this._choices.has(a);\n              }\n              deprecated(a) {\n                let n = this._choices.get(a);\n                return n && n.deprecated ? { value: a } : false;\n              }\n              forward(a) {\n                let n = this._choices.get(a);\n                return n ? n.forward : void 0;\n              }\n              redirect(a) {\n                let n = this._choices.get(a);\n                return n ? n.redirect : void 0;\n              }\n            };\n            e.ChoiceSchema = s2;\n          } }), no = te({ \"node_modules/vnopts/lib/schemas/number.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = class extends r.Schema {\n              expected() {\n                return \"a number\";\n              }\n              validate(s2, a) {\n                return typeof s2 == \"number\";\n              }\n            };\n            e.NumberSchema = t;\n          } }), wm = te({ \"node_modules/vnopts/lib/schemas/integer.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = eu(), t = no(), s2 = class extends t.NumberSchema {\n              expected() {\n                return \"an integer\";\n              }\n              validate(a, n) {\n                return n.normalizeValidateResult(super.validate(a, n), a) === true && r.isInt(a);\n              }\n            };\n            e.IntegerSchema = s2;\n          } }), _m = te({ \"node_modules/vnopts/lib/schemas/string.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Ft(), t = class extends r.Schema {\n              expected() {\n                return \"a string\";\n              }\n              validate(s2) {\n                return typeof s2 == \"string\";\n              }\n            };\n            e.StringSchema = t;\n          } }), Pm = te({ \"node_modules/vnopts/lib/schemas/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(xm(), e), r.__exportStar(bm(), e), r.__exportStar(Tm(), e), r.__exportStar(Bm(), e), r.__exportStar(Nm(), e), r.__exportStar(wm(), e), r.__exportStar(no(), e), r.__exportStar(_m(), e);\n          } }), Im = te({ \"node_modules/vnopts/lib/defaults.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Za(), t = eo(), s2 = to(), a = ro();\n            e.defaultDescriptor = r.apiDescriptor, e.defaultUnknownHandler = a.levenUnknownHandler, e.defaultInvalidHandler = s2.commonInvalidHandler, e.defaultDeprecatedHandler = t.commonDeprecatedHandler;\n          } }), km = te({ \"node_modules/vnopts/lib/normalize.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Im(), t = eu();\n            e.normalize = (a, n, u) => new s2(n, u).normalize(a);\n            var s2 = class {\n              constructor(a, n) {\n                let { logger: u = console, descriptor: i = r.defaultDescriptor, unknown: l = r.defaultUnknownHandler, invalid: p = r.defaultInvalidHandler, deprecated: y = r.defaultDeprecatedHandler } = n || {};\n                this._utils = { descriptor: i, logger: u || { warn: () => {\n                } }, schemas: t.recordFromArray(a, \"name\"), normalizeDefaultResult: t.normalizeDefaultResult, normalizeDeprecatedResult: t.normalizeDeprecatedResult, normalizeForwardResult: t.normalizeForwardResult, normalizeRedirectResult: t.normalizeRedirectResult, normalizeValidateResult: t.normalizeValidateResult }, this._unknownHandler = l, this._invalidHandler = p, this._deprecatedHandler = y, this.cleanHistory();\n              }\n              cleanHistory() {\n                this._hasDeprecationWarned = t.createAutoChecklist();\n              }\n              normalize(a) {\n                let n = {}, u = [a], i = () => {\n                  for (; u.length !== 0; ) {\n                    let l = u.shift(), p = this._applyNormalization(l, n);\n                    u.push(...p);\n                  }\n                };\n                i();\n                for (let l of Object.keys(this._utils.schemas)) {\n                  let p = this._utils.schemas[l];\n                  if (!(l in n)) {\n                    let y = t.normalizeDefaultResult(p.default(this._utils));\n                    \"value\" in y && u.push({ [l]: y.value });\n                  }\n                }\n                i();\n                for (let l of Object.keys(this._utils.schemas)) {\n                  let p = this._utils.schemas[l];\n                  l in n && (n[l] = p.postprocess(n[l], this._utils));\n                }\n                return n;\n              }\n              _applyNormalization(a, n) {\n                let u = [], [i, l] = t.partition(Object.keys(a), (p) => p in this._utils.schemas);\n                for (let p of i) {\n                  let y = this._utils.schemas[p], h = y.preprocess(a[p], this._utils), g = t.normalizeValidateResult(y.validate(h, this._utils), h);\n                  if (g !== true) {\n                    let { value: w } = g, E = this._invalidHandler(p, w, this._utils);\n                    throw typeof E == \"string\" ? new Error(E) : E;\n                  }\n                  let c = (w) => {\n                    let { from: E, to: N } = w;\n                    u.push(typeof N == \"string\" ? { [N]: E } : { [N.key]: N.value });\n                  }, f = (w) => {\n                    let { value: E, redirectTo: N } = w, x = t.normalizeDeprecatedResult(y.deprecated(E, this._utils), h, true);\n                    if (x !== false) if (x === true) this._hasDeprecationWarned(p) || this._utils.logger.warn(this._deprecatedHandler(p, N, this._utils));\n                    else for (let { value: I } of x) {\n                      let P = { key: p, value: I };\n                      if (!this._hasDeprecationWarned(P)) {\n                        let $ = typeof N == \"string\" ? { key: N, value: I } : N;\n                        this._utils.logger.warn(this._deprecatedHandler(P, $, this._utils));\n                      }\n                    }\n                  };\n                  t.normalizeForwardResult(y.forward(h, this._utils), h).forEach(c);\n                  let _ = t.normalizeRedirectResult(y.redirect(h, this._utils), h);\n                  if (_.redirect.forEach(c), \"remain\" in _) {\n                    let w = _.remain;\n                    n[p] = p in n ? y.overlap(n[p], w, this._utils) : w, f({ value: w });\n                  }\n                  for (let { from: w, to: E } of _.redirect) f({ value: w, redirectTo: E });\n                }\n                for (let p of l) {\n                  let y = a[p], h = this._unknownHandler(p, y, this._utils);\n                  if (h) for (let g of Object.keys(h)) {\n                    let c = { [g]: h[g] };\n                    g in this._utils.schemas ? u.push(c) : Object.assign(n, c);\n                  }\n                }\n                return u;\n              }\n            };\n            e.Normalizer = s2;\n          } }), Lm = te({ \"node_modules/vnopts/lib/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = (Et(), ft(vt));\n            r.__exportStar(vm(), e), r.__exportStar(Sm(), e), r.__exportStar(Pm(), e), r.__exportStar(km(), e), r.__exportStar(Ft(), e);\n          } }), Om = te({ \"src/main/options-normalizer.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Lm(), s2 = lt(), a = { key: (g) => g.length === 1 ? `-${g}` : `--${g}`, value: (g) => t.apiDescriptor.value(g), pair: (g) => {\n              let { key: c, value: f } = g;\n              return f === false ? `--no-${c}` : f === true ? a.key(c) : f === \"\" ? `${a.key(c)} without an argument` : `${a.key(c)}=${f}`;\n            } }, n = (g) => {\n              let { colorsModule: c, levenshteinDistance: f } = g;\n              return class extends t.ChoiceSchema {\n                constructor(_) {\n                  let { name: w, flags: E } = _;\n                  super({ name: w, choices: E }), this._flags = [...E].sort();\n                }\n                preprocess(_, w) {\n                  if (typeof _ == \"string\" && _.length > 0 && !this._flags.includes(_)) {\n                    let E = this._flags.find((N) => f(N, _) < 3);\n                    if (E) return w.logger.warn([`Unknown flag ${c.yellow(w.descriptor.value(_))},`, `did you mean ${c.blue(w.descriptor.value(E))}?`].join(\" \")), E;\n                  }\n                  return _;\n                }\n                expected() {\n                  return \"a flag\";\n                }\n              };\n            }, u;\n            function i(g, c) {\n              let { logger: f = false, isCLI: F = false, passThrough: _ = false, colorsModule: w = null, levenshteinDistance: E = null } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, N = _ ? Array.isArray(_) ? (T, m) => _.includes(T) ? { [T]: m } : void 0 : (T, m) => ({ [T]: m }) : (T, m, C) => {\n                let o = C.schemas, { _: d } = o, v = Hn(o, vD);\n                return t.levenUnknownHandler(T, m, Object.assign(Object.assign({}, C), {}, { schemas: v }));\n              }, x = F ? a : t.apiDescriptor, I = l(c, { isCLI: F, colorsModule: w, levenshteinDistance: E }), P = new t.Normalizer(I, { logger: f, unknown: N, descriptor: x }), $ = f !== false;\n              $ && u && (P._hasDeprecationWarned = u);\n              let D = P.normalize(g);\n              return $ && (u = P._hasDeprecationWarned), F && D[\"plugin-search\"] === false && (D[\"plugin-search-dir\"] = false), D;\n            }\n            function l(g, c) {\n              let { isCLI: f, colorsModule: F, levenshteinDistance: _ } = c, w = [];\n              f && w.push(t.AnySchema.create({ name: \"_\" }));\n              for (let E of g) w.push(p(E, { isCLI: f, optionInfos: g, colorsModule: F, levenshteinDistance: _ })), E.alias && f && w.push(t.AliasSchema.create({ name: E.alias, sourceName: E.name }));\n              return w;\n            }\n            function p(g, c) {\n              let { isCLI: f, optionInfos: F, colorsModule: _, levenshteinDistance: w } = c, { name: E } = g;\n              if (E === \"plugin-search-dir\" || E === \"pluginSearchDirs\") return t.AnySchema.create({ name: E, preprocess(P) {\n                return P === false || (P = Array.isArray(P) ? P : [P]), P;\n              }, validate(P) {\n                return P === false ? true : P.every(($) => typeof $ == \"string\");\n              }, expected() {\n                return \"false or paths to plugin search dir\";\n              } });\n              let N = { name: E }, x, I = {};\n              switch (g.type) {\n                case \"int\":\n                  x = t.IntegerSchema, f && (N.preprocess = Number);\n                  break;\n                case \"string\":\n                  x = t.StringSchema;\n                  break;\n                case \"choice\":\n                  x = t.ChoiceSchema, N.choices = g.choices.map((P) => typeof P == \"object\" && P.redirect ? Object.assign(Object.assign({}, P), {}, { redirect: { to: { key: g.name, value: P.redirect } } }) : P);\n                  break;\n                case \"boolean\":\n                  x = t.BooleanSchema;\n                  break;\n                case \"flag\":\n                  x = n({ colorsModule: _, levenshteinDistance: w }), N.flags = F.flatMap((P) => [P.alias, P.description && P.name, P.oppositeDescription && `no-${P.name}`].filter(Boolean));\n                  break;\n                case \"path\":\n                  x = t.StringSchema;\n                  break;\n                default:\n                  throw new Error(`Unexpected type ${g.type}`);\n              }\n              if (g.exception ? N.validate = (P, $, D) => g.exception(P) || $.validate(P, D) : N.validate = (P, $, D) => P === void 0 || $.validate(P, D), g.redirect && (I.redirect = (P) => P ? { to: { key: g.redirect.option, value: g.redirect.value } } : void 0), g.deprecated && (I.deprecated = true), f && !g.array) {\n                let P = N.preprocess || (($) => $);\n                N.preprocess = ($, D, T) => D.preprocess(P(Array.isArray($) ? s2($) : $), T);\n              }\n              return g.array ? t.ArraySchema.create(Object.assign(Object.assign(Object.assign({}, f ? { preprocess: (P) => Array.isArray(P) ? P : [P] } : {}), I), {}, { valueSchema: x.create(N) })) : x.create(Object.assign(Object.assign({}, N), I));\n            }\n            function y(g, c, f) {\n              return i(g, c, f);\n            }\n            function h(g, c, f) {\n              return i(g, c, Object.assign({ isCLI: true }, f));\n            }\n            r.exports = { normalizeApiOptions: y, normalizeCliOptions: h };\n          } }), ut = te({ \"src/language-js/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Kn();\n            function s2(l) {\n              var p, y;\n              let h = l.range ? l.range[0] : l.start, g = (p = (y = l.declaration) === null || y === void 0 ? void 0 : y.decorators) !== null && p !== void 0 ? p : l.decorators;\n              return t(g) ? Math.min(s2(g[0]), h) : h;\n            }\n            function a(l) {\n              return l.range ? l.range[1] : l.end;\n            }\n            function n(l, p) {\n              let y = s2(l);\n              return Number.isInteger(y) && y === s2(p);\n            }\n            function u(l, p) {\n              let y = a(l);\n              return Number.isInteger(y) && y === a(p);\n            }\n            function i(l, p) {\n              return n(l, p) && u(l, p);\n            }\n            r.exports = { locStart: s2, locEnd: a, hasSameLocStart: n, hasSameLoc: i };\n          } }), jm = te({ \"src/main/load-parser.js\"(e, r) {\n            ne(), r.exports = () => {\n            };\n          } }), qm = te({ \"scripts/build/shims/babel-highlight.cjs\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = kr(), s2 = { shouldHighlight: () => false, getChalk: () => t };\n            r.exports = s2;\n          } }), Mm = te({ \"node_modules/@babel/code-frame/lib/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.codeFrameColumns = u, e.default = i;\n            var r = qm(), t = false;\n            function s2(l) {\n              return { gutter: l.grey, marker: l.red.bold, message: l.red.bold };\n            }\n            var a = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n            function n(l, p, y) {\n              let h = Object.assign({ column: 0, line: -1 }, l.start), g = Object.assign({}, h, l.end), { linesAbove: c = 2, linesBelow: f = 3 } = y || {}, F = h.line, _ = h.column, w = g.line, E = g.column, N = Math.max(F - (c + 1), 0), x = Math.min(p.length, w + f);\n              F === -1 && (N = 0), w === -1 && (x = p.length);\n              let I = w - F, P = {};\n              if (I) for (let $ = 0; $ <= I; $++) {\n                let D = $ + F;\n                if (!_) P[D] = true;\n                else if ($ === 0) {\n                  let T = p[D - 1].length;\n                  P[D] = [_, T - _ + 1];\n                } else if ($ === I) P[D] = [0, E];\n                else {\n                  let T = p[D - $].length;\n                  P[D] = [0, T];\n                }\n              }\n              else _ === E ? _ ? P[F] = [_, 0] : P[F] = true : P[F] = [_, E - _];\n              return { start: N, end: x, markerLines: P };\n            }\n            function u(l, p) {\n              let y = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, h = (y.highlightCode || y.forceColor) && (0, r.shouldHighlight)(y), g = (0, r.getChalk)(y), c = s2(g), f = ($, D) => h ? $(D) : D, F = l.split(a), { start: _, end: w, markerLines: E } = n(p, F, y), N = p.start && typeof p.start.column == \"number\", x = String(w).length, P = (h ? (0, r.default)(l, y) : l).split(a, w).slice(_, w).map(($, D) => {\n                let T = _ + 1 + D, C = ` ${` ${T}`.slice(-x)} |`, o = E[T], d = !E[T + 1];\n                if (o) {\n                  let v = \"\";\n                  if (Array.isArray(o)) {\n                    let S = $.slice(0, Math.max(o[0] - 1, 0)).replace(/[^\\t]/g, \" \"), b = o[1] || 1;\n                    v = [`\n `, f(c.gutter, C.replace(/\\d/g, \" \")), \" \", S, f(c.marker, \"^\").repeat(b)].join(\"\"), d && y.message && (v += \" \" + f(c.message, y.message));\n                  }\n                  return [f(c.marker, \">\"), f(c.gutter, C), $.length > 0 ? ` ${$}` : \"\", v].join(\"\");\n                } else return ` ${f(c.gutter, C)}${$.length > 0 ? ` ${$}` : \"\"}`;\n              }).join(`\n`);\n              return y.message && !N && (P = `${\" \".repeat(x + 1)}${y.message}\n${P}`), h ? g.reset(P) : P;\n            }\n            function i(l, p, y) {\n              let h = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};\n              if (!t) {\n                t = true;\n                let c = \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n                if (wt.emitWarning) wt.emitWarning(c, \"DeprecationWarning\");\n                else {\n                  let f = new Error(c);\n                  f.name = \"DeprecationWarning\", console.warn(new Error(c));\n                }\n              }\n              return y = Math.max(y, 0), u(l, { start: { column: y, line: p } }, h);\n            }\n          } }), tu = te({ \"src/main/parser.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { ConfigError: t } = Qt(), s2 = ut(), a = jm(), { locStart: n, locEnd: u } = s2, i = Object.getOwnPropertyNames, l = Object.getOwnPropertyDescriptor;\n            function p(g) {\n              let c = {};\n              for (let f of g.plugins) if (f.parsers) for (let F of i(f.parsers)) Object.defineProperty(c, F, l(f.parsers, F));\n              return c;\n            }\n            function y(g) {\n              let c = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : p(g);\n              if (typeof g.parser == \"function\") return { parse: g.parser, astFormat: \"estree\", locStart: n, locEnd: u };\n              if (typeof g.parser == \"string\") {\n                if (Object.prototype.hasOwnProperty.call(c, g.parser)) return c[g.parser];\n                throw new t(`Couldn't resolve parser \"${g.parser}\". Parsers must be explicitly added to the standalone bundle.`);\n              }\n            }\n            function h(g, c) {\n              let f = p(c), F = Object.defineProperties({}, Object.fromEntries(Object.keys(f).map((w) => [w, { enumerable: true, get() {\n                return f[w].parse;\n              } }]))), _ = y(c, f);\n              try {\n                return _.preprocess && (g = _.preprocess(g, c)), { text: g, ast: _.parse(g, F, c) };\n              } catch (w) {\n                let { loc: E } = w;\n                if (E) {\n                  let { codeFrameColumns: N } = Mm();\n                  throw w.codeFrame = N(g, E, { highlightCode: true }), w.message += `\n` + w.codeFrame, w;\n                }\n                throw w;\n              }\n            }\n            r.exports = { parse: h, resolveParser: y };\n          } }), uo = te({ \"src/main/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = ZD(), { UndefinedParserError: s2 } = Qt(), { getSupportInfo: a } = Xn(), n = Om(), { resolveParser: u } = tu(), i = { astFormat: \"estree\", printer: {}, originalText: void 0, locStart: null, locEnd: null };\n            function l(h) {\n              let g = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, c = Object.assign({}, h), f = a({ plugins: h.plugins, showUnreleased: true, showDeprecated: true }).options, F = Object.assign(Object.assign({}, i), Object.fromEntries(f.filter((x) => x.default !== void 0).map((x) => [x.name, x.default])));\n              if (!c.parser) {\n                if (!c.filepath) (g.logger || console).warn(\"No parser and no filepath given, using 'babel' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred.\"), c.parser = \"babel\";\n                else if (c.parser = y(c.filepath, c.plugins), !c.parser) throw new s2(`No parser could be inferred for file: ${c.filepath}`);\n              }\n              let _ = u(n.normalizeApiOptions(c, [f.find((x) => x.name === \"parser\")], { passThrough: true, logger: false }));\n              c.astFormat = _.astFormat, c.locEnd = _.locEnd, c.locStart = _.locStart;\n              let w = p(c);\n              c.printer = w.printers[c.astFormat];\n              let E = Object.fromEntries(f.filter((x) => x.pluginDefaults && x.pluginDefaults[w.name] !== void 0).map((x) => [x.name, x.pluginDefaults[w.name]])), N = Object.assign(Object.assign({}, F), E);\n              for (let [x, I] of Object.entries(N)) (c[x] === null || c[x] === void 0) && (c[x] = I);\n              return c.parser === \"json\" && (c.trailingComma = \"none\"), n.normalizeApiOptions(c, f, Object.assign({ passThrough: Object.keys(i) }, g));\n            }\n            function p(h) {\n              let { astFormat: g } = h;\n              if (!g) throw new Error(\"getPlugin() requires astFormat to be set\");\n              let c = h.plugins.find((f) => f.printers && f.printers[g]);\n              if (!c) throw new Error(`Couldn't find plugin for AST format \"${g}\"`);\n              return c;\n            }\n            function y(h, g) {\n              let c = t.basename(h).toLowerCase(), F = a({ plugins: g }).languages.filter((_) => _.since !== null).find((_) => _.extensions && _.extensions.some((w) => c.endsWith(w)) || _.filenames && _.filenames.some((w) => w.toLowerCase() === c));\n              return F && F.parsers[0];\n            }\n            r.exports = { normalize: l, hiddenDefaults: i, inferParser: y };\n          } }), Rm = te({ \"src/main/massage-ast.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a, n) {\n              if (Array.isArray(s2)) return s2.map((p) => t(p, a, n)).filter(Boolean);\n              if (!s2 || typeof s2 != \"object\") return s2;\n              let u = a.printer.massageAstNode, i;\n              u && u.ignoredProperties ? i = u.ignoredProperties : i = /* @__PURE__ */ new Set();\n              let l = {};\n              for (let [p, y] of Object.entries(s2)) !i.has(p) && typeof y != \"function\" && (l[p] = t(y, a, s2));\n              if (u) {\n                let p = u(s2, l, n);\n                if (p === null) return;\n                if (p) return p;\n              }\n              return l;\n            }\n            r.exports = t;\n          } }), Zt = te({ \"scripts/build/shims/assert.cjs\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = () => {\n            };\n            t.ok = t, t.strictEqual = t, r.exports = t;\n          } }), et = te({ \"src/main/comments.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Zt(), { builders: { line: s2, hardline: a, breakParent: n, indent: u, lineSuffix: i, join: l, cursor: p } } = qe(), { hasNewline: y, skipNewline: h, skipSpaces: g, isPreviousLineEmpty: c, addLeadingComment: f, addDanglingComment: F, addTrailingComment: _ } = Ue(), w = /* @__PURE__ */ new WeakMap();\n            function E(k, M, R) {\n              if (!k) return;\n              let { printer: q, locStart: J, locEnd: L } = M;\n              if (R) {\n                if (q.canAttachComment && q.canAttachComment(k)) {\n                  let V;\n                  for (V = R.length - 1; V >= 0 && !(J(R[V]) <= J(k) && L(R[V]) <= L(k)); --V) ;\n                  R.splice(V + 1, 0, k);\n                  return;\n                }\n              } else if (w.has(k)) return w.get(k);\n              let Q = q.getCommentChildNodes && q.getCommentChildNodes(k, M) || typeof k == \"object\" && Object.entries(k).filter((V) => {\n                let [j] = V;\n                return j !== \"enclosingNode\" && j !== \"precedingNode\" && j !== \"followingNode\" && j !== \"tokens\" && j !== \"comments\" && j !== \"parent\";\n              }).map((V) => {\n                let [, j] = V;\n                return j;\n              });\n              if (Q) {\n                R || (R = [], w.set(k, R));\n                for (let V of Q) E(V, M, R);\n                return R;\n              }\n            }\n            function N(k, M, R, q) {\n              let { locStart: J, locEnd: L } = R, Q = J(M), V = L(M), j = E(k, R), Y, ie, ee = 0, ce = j.length;\n              for (; ee < ce; ) {\n                let W = ee + ce >> 1, K = j[W], de = J(K), ue = L(K);\n                if (de <= Q && V <= ue) return N(K, M, R, K);\n                if (ue <= Q) {\n                  Y = K, ee = W + 1;\n                  continue;\n                }\n                if (V <= de) {\n                  ie = K, ce = W;\n                  continue;\n                }\n                throw new Error(\"Comment location overlaps with node location\");\n              }\n              if (q && q.type === \"TemplateLiteral\") {\n                let { quasis: W } = q, K = C(W, M, R);\n                Y && C(W, Y, R) !== K && (Y = null), ie && C(W, ie, R) !== K && (ie = null);\n              }\n              return { enclosingNode: q, precedingNode: Y, followingNode: ie };\n            }\n            var x = () => false;\n            function I(k, M, R, q) {\n              if (!Array.isArray(k)) return;\n              let J = [], { locStart: L, locEnd: Q, printer: { handleComments: V = {} } } = q, { avoidAstMutation: j, ownLine: Y = x, endOfLine: ie = x, remaining: ee = x } = V, ce = k.map((W, K) => Object.assign(Object.assign({}, N(M, W, q)), {}, { comment: W, text: R, options: q, ast: M, isLastComment: k.length - 1 === K }));\n              for (let [W, K] of ce.entries()) {\n                let { comment: de, precedingNode: ue, enclosingNode: Fe, followingNode: z, text: U, options: Z, ast: se, isLastComment: fe } = K;\n                if (Z.parser === \"json\" || Z.parser === \"json5\" || Z.parser === \"__js_expression\" || Z.parser === \"__vue_expression\" || Z.parser === \"__vue_ts_expression\") {\n                  if (L(de) - L(se) <= 0) {\n                    f(se, de);\n                    continue;\n                  }\n                  if (Q(de) - Q(se) >= 0) {\n                    _(se, de);\n                    continue;\n                  }\n                }\n                let ge;\n                if (j ? ge = [K] : (de.enclosingNode = Fe, de.precedingNode = ue, de.followingNode = z, ge = [de, U, Z, se, fe]), $(U, Z, ce, W)) de.placement = \"ownLine\", Y(...ge) || (z ? f(z, de) : ue ? _(ue, de) : F(Fe || se, de));\n                else if (D(U, Z, ce, W)) de.placement = \"endOfLine\", ie(...ge) || (ue ? _(ue, de) : z ? f(z, de) : F(Fe || se, de));\n                else if (de.placement = \"remaining\", !ee(...ge)) if (ue && z) {\n                  let he = J.length;\n                  he > 0 && J[he - 1].followingNode !== z && T(J, U, Z), J.push(K);\n                } else ue ? _(ue, de) : z ? f(z, de) : F(Fe || se, de);\n              }\n              if (T(J, R, q), !j) for (let W of k) delete W.precedingNode, delete W.enclosingNode, delete W.followingNode;\n            }\n            var P = (k) => !/[\\S\\n\\u2028\\u2029]/.test(k);\n            function $(k, M, R, q) {\n              let { comment: J, precedingNode: L } = R[q], { locStart: Q, locEnd: V } = M, j = Q(J);\n              if (L) for (let Y = q - 1; Y >= 0; Y--) {\n                let { comment: ie, precedingNode: ee } = R[Y];\n                if (ee !== L || !P(k.slice(V(ie), j))) break;\n                j = Q(ie);\n              }\n              return y(k, j, { backwards: true });\n            }\n            function D(k, M, R, q) {\n              let { comment: J, followingNode: L } = R[q], { locStart: Q, locEnd: V } = M, j = V(J);\n              if (L) for (let Y = q + 1; Y < R.length; Y++) {\n                let { comment: ie, followingNode: ee } = R[Y];\n                if (ee !== L || !P(k.slice(j, Q(ie)))) break;\n                j = V(ie);\n              }\n              return y(k, j);\n            }\n            function T(k, M, R) {\n              let q = k.length;\n              if (q === 0) return;\n              let { precedingNode: J, followingNode: L, enclosingNode: Q } = k[0], V = R.printer.getGapRegex && R.printer.getGapRegex(Q) || /^[\\s(]*$/, j = R.locStart(L), Y;\n              for (Y = q; Y > 0; --Y) {\n                let { comment: ie, precedingNode: ee, followingNode: ce } = k[Y - 1];\n                t.strictEqual(ee, J), t.strictEqual(ce, L);\n                let W = M.slice(R.locEnd(ie), j);\n                if (V.test(W)) j = R.locStart(ie);\n                else break;\n              }\n              for (let [ie, { comment: ee }] of k.entries()) ie < Y ? _(J, ee) : f(L, ee);\n              for (let ie of [J, L]) ie.comments && ie.comments.length > 1 && ie.comments.sort((ee, ce) => R.locStart(ee) - R.locStart(ce));\n              k.length = 0;\n            }\n            function m(k, M) {\n              let R = k.getValue();\n              return R.printed = true, M.printer.printComment(k, M);\n            }\n            function C(k, M, R) {\n              let q = R.locStart(M) - 1;\n              for (let J = 1; J < k.length; ++J) if (q < R.locStart(k[J])) return J - 1;\n              return 0;\n            }\n            function o(k, M) {\n              let R = k.getValue(), q = [m(k, M)], { printer: J, originalText: L, locStart: Q, locEnd: V } = M;\n              if (J.isBlockComment && J.isBlockComment(R)) {\n                let ie = y(L, V(R)) ? y(L, Q(R), { backwards: true }) ? a : s2 : \" \";\n                q.push(ie);\n              } else q.push(a);\n              let Y = h(L, g(L, V(R)));\n              return Y !== false && y(L, Y) && q.push(a), q;\n            }\n            function d(k, M) {\n              let R = k.getValue(), q = m(k, M), { printer: J, originalText: L, locStart: Q } = M, V = J.isBlockComment && J.isBlockComment(R);\n              if (y(L, Q(R), { backwards: true })) {\n                let Y = c(L, R, Q);\n                return i([a, Y ? a : \"\", q]);\n              }\n              let j = [\" \", q];\n              return V || (j = [i(j), n]), j;\n            }\n            function v(k, M, R, q) {\n              let J = [], L = k.getValue();\n              return !L || !L.comments || (k.each(() => {\n                let Q = k.getValue();\n                !Q.leading && !Q.trailing && (!q || q(Q)) && J.push(m(k, M));\n              }, \"comments\"), J.length === 0) ? \"\" : R ? l(a, J) : u([a, l(a, J)]);\n            }\n            function S(k, M, R) {\n              let q = k.getValue();\n              if (!q) return {};\n              let J = q.comments || [];\n              R && (J = J.filter((j) => !R.has(j)));\n              let L = q === M.cursorNode;\n              if (J.length === 0) {\n                let j = L ? p : \"\";\n                return { leading: j, trailing: j };\n              }\n              let Q = [], V = [];\n              return k.each(() => {\n                let j = k.getValue();\n                if (R && R.has(j)) return;\n                let { leading: Y, trailing: ie } = j;\n                Y ? Q.push(o(k, M)) : ie && V.push(d(k, M));\n              }, \"comments\"), L && (Q.unshift(p), V.push(p)), { leading: Q, trailing: V };\n            }\n            function b(k, M, R, q) {\n              let { leading: J, trailing: L } = S(k, R, q);\n              return !J && !L ? M : [J, M, L];\n            }\n            function B(k) {\n              if (k) for (let M of k) {\n                if (!M.printed) throw new Error('Comment \"' + M.value.trim() + '\" was not printed. Please report this error!');\n                delete M.printed;\n              }\n            }\n            r.exports = { attach: I, printComments: b, printCommentsSeparately: S, printDanglingComments: v, getSortedChildNodes: E, ensureAllCommentsPrinted: B };\n          } }), $m = te({ \"src/common/ast-path.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt();\n            function s2(u, i) {\n              let l = a(u.stack, i);\n              return l === -1 ? null : u.stack[l];\n            }\n            function a(u, i) {\n              for (let l = u.length - 1; l >= 0; l -= 2) {\n                let p = u[l];\n                if (p && !Array.isArray(p) && --i < 0) return l;\n              }\n              return -1;\n            }\n            var n = class {\n              constructor(u) {\n                this.stack = [u];\n              }\n              getName() {\n                let { stack: u } = this, { length: i } = u;\n                return i > 1 ? u[i - 2] : null;\n              }\n              getValue() {\n                return t(this.stack);\n              }\n              getNode() {\n                let u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;\n                return s2(this, u);\n              }\n              getParentNode() {\n                let u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;\n                return s2(this, u + 1);\n              }\n              call(u) {\n                let { stack: i } = this, { length: l } = i, p = t(i);\n                for (var y = arguments.length, h = new Array(y > 1 ? y - 1 : 0), g = 1; g < y; g++) h[g - 1] = arguments[g];\n                for (let f of h) p = p[f], i.push(f, p);\n                let c = u(this);\n                return i.length = l, c;\n              }\n              callParent(u) {\n                let i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, l = a(this.stack, i + 1), p = this.stack.splice(l + 1), y = u(this);\n                return this.stack.push(...p), y;\n              }\n              each(u) {\n                let { stack: i } = this, { length: l } = i, p = t(i);\n                for (var y = arguments.length, h = new Array(y > 1 ? y - 1 : 0), g = 1; g < y; g++) h[g - 1] = arguments[g];\n                for (let c of h) p = p[c], i.push(c, p);\n                for (let c = 0; c < p.length; ++c) i.push(c, p[c]), u(this, c, p), i.length -= 2;\n                i.length = l;\n              }\n              map(u) {\n                let i = [];\n                for (var l = arguments.length, p = new Array(l > 1 ? l - 1 : 0), y = 1; y < l; y++) p[y - 1] = arguments[y];\n                return this.each((h, g, c) => {\n                  i[g] = u(h, g, c);\n                }, ...p), i;\n              }\n              try(u) {\n                let { stack: i } = this, l = [...i];\n                try {\n                  return u();\n                } finally {\n                  i.length = 0, i.push(...l);\n                }\n              }\n              match() {\n                let u = this.stack.length - 1, i = null, l = this.stack[u--];\n                for (var p = arguments.length, y = new Array(p), h = 0; h < p; h++) y[h] = arguments[h];\n                for (let g of y) {\n                  if (l === void 0) return false;\n                  let c = null;\n                  if (typeof i == \"number\" && (c = i, i = this.stack[u--], l = this.stack[u--]), g && !g(l, i, c)) return false;\n                  i = this.stack[u--], l = this.stack[u--];\n                }\n                return true;\n              }\n              findAncestor(u) {\n                let i = this.stack.length - 1, l = null, p = this.stack[i--];\n                for (; p; ) {\n                  let y = null;\n                  if (typeof l == \"number\" && (y = l, l = this.stack[i--], p = this.stack[i--]), l !== null && u(p, l, y)) return p;\n                  l = this.stack[i--], p = this.stack[i--];\n                }\n              }\n            };\n            r.exports = n;\n          } }), Vm = te({ \"src/main/multiparser.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { utils: { stripTrailingHardline: t } } = qe(), { normalize: s2 } = uo(), a = et();\n            function n(i, l, p, y) {\n              if (p.printer.embed && p.embeddedLanguageFormatting === \"auto\") return p.printer.embed(i, l, (h, g, c) => u(h, g, p, y, c), p);\n            }\n            function u(i, l, p, y) {\n              let { stripTrailingHardline: h = false } = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {}, g = s2(Object.assign(Object.assign(Object.assign({}, p), l), {}, { parentParser: p.parser, originalText: i }), { passThrough: true }), c = tu().parse(i, g), { ast: f } = c;\n              i = c.text;\n              let F = f.comments;\n              delete f.comments, a.attach(F, f, i, g), g[Symbol.for(\"comments\")] = F || [], g[Symbol.for(\"tokens\")] = f.tokens || [];\n              let _ = y(f, g);\n              return a.ensureAllCommentsPrinted(F), h ? typeof _ == \"string\" ? _.replace(/(?:\\r?\\n)*$/, \"\") : t(_) : _;\n            }\n            r.exports = { printSubtree: n };\n          } }), Wm = te({ \"src/main/ast-to-doc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = $m(), { builders: { hardline: s2, addAlignmentToDoc: a }, utils: { propagateBreaks: n } } = qe(), { printComments: u } = et(), i = Vm();\n            function l(h, g) {\n              let c = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, { printer: f } = g;\n              f.preprocess && (h = f.preprocess(h, g));\n              let F = /* @__PURE__ */ new Map(), _ = new t(h), w = E();\n              return c > 0 && (w = a([s2, w], c, g.tabWidth)), n(w), w;\n              function E(x, I) {\n                return x === void 0 || x === _ ? N(I) : Array.isArray(x) ? _.call(() => N(I), ...x) : _.call(() => N(I), x);\n              }\n              function N(x) {\n                let I = _.getValue(), P = I && typeof I == \"object\" && x === void 0;\n                if (P && F.has(I)) return F.get(I);\n                let $ = y(_, g, E, x);\n                return P && F.set(I, $), $;\n              }\n            }\n            function p(h, g) {\n              let { originalText: c, [Symbol.for(\"comments\")]: f, locStart: F, locEnd: _ } = g, w = F(h), E = _(h), N = /* @__PURE__ */ new Set();\n              for (let x of f) F(x) >= w && _(x) <= E && (x.printed = true, N.add(x));\n              return { doc: c.slice(w, E), printedComments: N };\n            }\n            function y(h, g, c, f) {\n              let F = h.getValue(), { printer: _ } = g, w, E;\n              if (_.hasPrettierIgnore && _.hasPrettierIgnore(h)) ({ doc: w, printedComments: E } = p(F, g));\n              else {\n                if (F) try {\n                  w = i.printSubtree(h, c, g, l);\n                } catch (N) {\n                  if (globalThis.PRETTIER_DEBUG) throw N;\n                }\n                w || (w = _.print(h, g, c, f));\n              }\n              return (!_.willPrintOwnComments || !_.willPrintOwnComments(h, g)) && (w = u(h, w, g, E)), w;\n            }\n            r.exports = l;\n          } }), Hm = te({ \"src/main/range-util.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Zt(), s2 = et(), a = (f) => {\n              let { parser: F } = f;\n              return F === \"json\" || F === \"json5\" || F === \"json-stringify\";\n            };\n            function n(f, F) {\n              let _ = [f.node, ...f.parentNodes], w = /* @__PURE__ */ new Set([F.node, ...F.parentNodes]);\n              return _.find((E) => y.has(E.type) && w.has(E));\n            }\n            function u(f) {\n              let F = f.length - 1;\n              for (; ; ) {\n                let _ = f[F];\n                if (_ && (_.type === \"Program\" || _.type === \"File\")) F--;\n                else break;\n              }\n              return f.slice(0, F + 1);\n            }\n            function i(f, F, _) {\n              let { locStart: w, locEnd: E } = _, N = f.node, x = F.node;\n              if (N === x) return { startNode: N, endNode: x };\n              let I = w(f.node);\n              for (let $ of u(F.parentNodes)) if (w($) >= I) x = $;\n              else break;\n              let P = E(F.node);\n              for (let $ of u(f.parentNodes)) {\n                if (E($) <= P) N = $;\n                else break;\n                if (N === x) break;\n              }\n              return { startNode: N, endNode: x };\n            }\n            function l(f, F, _, w) {\n              let E = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : [], N = arguments.length > 5 ? arguments[5] : void 0, { locStart: x, locEnd: I } = _, P = x(f), $ = I(f);\n              if (!(F > $ || F < P || N === \"rangeEnd\" && F === P || N === \"rangeStart\" && F === $)) {\n                for (let D of s2.getSortedChildNodes(f, _)) {\n                  let T = l(D, F, _, w, [f, ...E], N);\n                  if (T) return T;\n                }\n                if (!w || w(f, E[0])) return { node: f, parentNodes: E };\n              }\n            }\n            function p(f, F) {\n              return F !== \"DeclareExportDeclaration\" && f !== \"TypeParameterDeclaration\" && (f === \"Directive\" || f === \"TypeAlias\" || f === \"TSExportAssignment\" || f.startsWith(\"Declare\") || f.startsWith(\"TSDeclare\") || f.endsWith(\"Statement\") || f.endsWith(\"Declaration\"));\n            }\n            var y = /* @__PURE__ */ new Set([\"ObjectExpression\", \"ArrayExpression\", \"StringLiteral\", \"NumericLiteral\", \"BooleanLiteral\", \"NullLiteral\", \"UnaryExpression\", \"TemplateLiteral\"]), h = /* @__PURE__ */ new Set([\"OperationDefinition\", \"FragmentDefinition\", \"VariableDefinition\", \"TypeExtensionDefinition\", \"ObjectTypeDefinition\", \"FieldDefinition\", \"DirectiveDefinition\", \"EnumTypeDefinition\", \"EnumValueDefinition\", \"InputValueDefinition\", \"InputObjectTypeDefinition\", \"SchemaDefinition\", \"OperationTypeDefinition\", \"InterfaceTypeDefinition\", \"UnionTypeDefinition\", \"ScalarTypeDefinition\"]);\n            function g(f, F, _) {\n              if (!F) return false;\n              switch (f.parser) {\n                case \"flow\":\n                case \"babel\":\n                case \"babel-flow\":\n                case \"babel-ts\":\n                case \"typescript\":\n                case \"acorn\":\n                case \"espree\":\n                case \"meriyah\":\n                case \"__babel_estree\":\n                  return p(F.type, _ && _.type);\n                case \"json\":\n                case \"json5\":\n                case \"json-stringify\":\n                  return y.has(F.type);\n                case \"graphql\":\n                  return h.has(F.kind);\n                case \"vue\":\n                  return F.tag !== \"root\";\n              }\n              return false;\n            }\n            function c(f, F, _) {\n              let { rangeStart: w, rangeEnd: E, locStart: N, locEnd: x } = F;\n              t.ok(E > w);\n              let I = f.slice(w, E).search(/\\S/), P = I === -1;\n              if (!P) for (w += I; E > w && !/\\S/.test(f[E - 1]); --E) ;\n              let $ = l(_, w, F, (C, o) => g(F, C, o), [], \"rangeStart\"), D = P ? $ : l(_, E, F, (C) => g(F, C), [], \"rangeEnd\");\n              if (!$ || !D) return { rangeStart: 0, rangeEnd: 0 };\n              let T, m;\n              if (a(F)) {\n                let C = n($, D);\n                T = C, m = C;\n              } else ({ startNode: T, endNode: m } = i($, D, F));\n              return { rangeStart: Math.min(N(T), N(m)), rangeEnd: Math.max(x(T), x(m)) };\n            }\n            r.exports = { calculateRange: c, findNodeAtOffset: l };\n          } }), Gm = te({ \"src/main/core.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { diffArrays: t } = BD(), { printer: { printDocToString: s2 }, debug: { printDocToDebug: a } } = qe(), { getAlignmentSize: n } = Ue(), { guessEndOfLine: u, convertEndOfLineToChars: i, countEndOfLineChars: l, normalizeEndOfLine: p } = Jn(), y = uo().normalize, h = Rm(), g = et(), c = tu(), f = Wm(), F = Hm(), _ = \"\\uFEFF\", w = Symbol(\"cursor\");\n            function E(m, C, o) {\n              let d = C.comments;\n              return d && (delete C.comments, g.attach(d, C, m, o)), o[Symbol.for(\"comments\")] = d || [], o[Symbol.for(\"tokens\")] = C.tokens || [], o.originalText = m, d;\n            }\n            function N(m, C) {\n              let o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;\n              if (!m || m.trim().length === 0) return { formatted: \"\", cursorOffset: -1, comments: [] };\n              let { ast: d, text: v } = c.parse(m, C);\n              if (C.cursorOffset >= 0) {\n                let k = F.findNodeAtOffset(d, C.cursorOffset, C);\n                k && k.node && (C.cursorNode = k.node);\n              }\n              let S = E(v, d, C), b = f(d, C, o), B = s2(b, C);\n              if (g.ensureAllCommentsPrinted(S), o > 0) {\n                let k = B.formatted.trim();\n                B.cursorNodeStart !== void 0 && (B.cursorNodeStart -= B.formatted.indexOf(k)), B.formatted = k + i(C.endOfLine);\n              }\n              if (C.cursorOffset >= 0) {\n                let k, M, R, q, J;\n                if (C.cursorNode && B.cursorNodeText ? (k = C.locStart(C.cursorNode), M = v.slice(k, C.locEnd(C.cursorNode)), R = C.cursorOffset - k, q = B.cursorNodeStart, J = B.cursorNodeText) : (k = 0, M = v, R = C.cursorOffset, q = 0, J = B.formatted), M === J) return { formatted: B.formatted, cursorOffset: q + R, comments: S };\n                let L = [...M];\n                L.splice(R, 0, w);\n                let Q = [...J], V = t(L, Q), j = q;\n                for (let Y of V) if (Y.removed) {\n                  if (Y.value.includes(w)) break;\n                } else j += Y.count;\n                return { formatted: B.formatted, cursorOffset: j, comments: S };\n              }\n              return { formatted: B.formatted, cursorOffset: -1, comments: S };\n            }\n            function x(m, C) {\n              let { ast: o, text: d } = c.parse(m, C), { rangeStart: v, rangeEnd: S } = F.calculateRange(d, C, o), b = d.slice(v, S), B = Math.min(v, d.lastIndexOf(`\n`, v) + 1), k = d.slice(B, v).match(/^\\s*/)[0], M = n(k, C.tabWidth), R = N(b, Object.assign(Object.assign({}, C), {}, { rangeStart: 0, rangeEnd: Number.POSITIVE_INFINITY, cursorOffset: C.cursorOffset > v && C.cursorOffset <= S ? C.cursorOffset - v : -1, endOfLine: \"lf\" }), M), q = R.formatted.trimEnd(), { cursorOffset: J } = C;\n              J > S ? J += q.length - b.length : R.cursorOffset >= 0 && (J = R.cursorOffset + v);\n              let L = d.slice(0, v) + q + d.slice(S);\n              if (C.endOfLine !== \"lf\") {\n                let Q = i(C.endOfLine);\n                J >= 0 && Q === `\\r\n` && (J += l(L.slice(0, J), `\n`)), L = L.replace(/\\n/g, Q);\n              }\n              return { formatted: L, cursorOffset: J, comments: R.comments };\n            }\n            function I(m, C, o) {\n              return typeof C != \"number\" || Number.isNaN(C) || C < 0 || C > m.length ? o : C;\n            }\n            function P(m, C) {\n              let { cursorOffset: o, rangeStart: d, rangeEnd: v } = C;\n              return o = I(m, o, -1), d = I(m, d, 0), v = I(m, v, m.length), Object.assign(Object.assign({}, C), {}, { cursorOffset: o, rangeStart: d, rangeEnd: v });\n            }\n            function $(m, C) {\n              let { cursorOffset: o, rangeStart: d, rangeEnd: v, endOfLine: S } = P(m, C), b = m.charAt(0) === _;\n              if (b && (m = m.slice(1), o--, d--, v--), S === \"auto\" && (S = u(m)), m.includes(\"\\r\")) {\n                let B = (k) => l(m.slice(0, Math.max(k, 0)), `\\r\n`);\n                o -= B(o), d -= B(d), v -= B(v), m = p(m);\n              }\n              return { hasBOM: b, text: m, options: P(m, Object.assign(Object.assign({}, C), {}, { cursorOffset: o, rangeStart: d, rangeEnd: v, endOfLine: S })) };\n            }\n            function D(m, C) {\n              let o = c.resolveParser(C);\n              return !o.hasPragma || o.hasPragma(m);\n            }\n            function T(m, C) {\n              let { hasBOM: o, text: d, options: v } = $(m, y(C));\n              if (v.rangeStart >= v.rangeEnd && d !== \"\" || v.requirePragma && !D(d, v)) return { formatted: m, cursorOffset: C.cursorOffset, comments: [] };\n              let S;\n              return v.rangeStart > 0 || v.rangeEnd < d.length ? S = x(d, v) : (!v.requirePragma && v.insertPragma && v.printer.insertPragma && !D(d, v) && (d = v.printer.insertPragma(d)), S = N(d, v)), o && (S.formatted = _ + S.formatted, S.cursorOffset >= 0 && S.cursorOffset++), S;\n            }\n            r.exports = { formatWithCursor: T, parse(m, C, o) {\n              let { text: d, options: v } = $(m, y(C)), S = c.parse(d, v);\n              return o && (S.ast = h(S.ast, v)), S;\n            }, formatAST(m, C) {\n              C = y(C);\n              let o = f(m, C);\n              return s2(o, C);\n            }, formatDoc(m, C) {\n              return T(a(m), Object.assign(Object.assign({}, C), {}, { parser: \"__js_expression\" })).formatted;\n            }, printToDoc(m, C) {\n              C = y(C);\n              let { ast: o, text: d } = c.parse(m, C);\n              return E(d, o, C), f(o, C);\n            }, printDocToString(m, C) {\n              return s2(m, y(C));\n            } };\n          } }), Um = te({ \"src/common/util-shared.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { getMaxContinuousCount: t, getStringWidth: s2, getAlignmentSize: a, getIndentSize: n, skip: u, skipWhitespace: i, skipSpaces: l, skipNewline: p, skipToLineEnd: y, skipEverythingButNewLine: h, skipInlineComment: g, skipTrailingComment: c, hasNewline: f, hasNewlineInRange: F, hasSpaces: _, isNextLineEmpty: w, isNextLineEmptyAfterIndex: E, isPreviousLineEmpty: N, getNextNonSpaceNonCommentCharacterIndex: x, makeString: I, addLeadingComment: P, addDanglingComment: $, addTrailingComment: D } = Ue();\n            r.exports = { getMaxContinuousCount: t, getStringWidth: s2, getAlignmentSize: a, getIndentSize: n, skip: u, skipWhitespace: i, skipSpaces: l, skipNewline: p, skipToLineEnd: y, skipEverythingButNewLine: h, skipInlineComment: g, skipTrailingComment: c, hasNewline: f, hasNewlineInRange: F, hasSpaces: _, isNextLineEmpty: w, isNextLineEmptyAfterIndex: E, isPreviousLineEmpty: N, getNextNonSpaceNonCommentCharacterIndex: x, makeString: I, addLeadingComment: P, addDanglingComment: $, addTrailingComment: D };\n          } }), _t = te({ \"src/utils/create-language.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = function(t, s2) {\n              let { languageId: a } = t, n = Hn(t, CD);\n              return Object.assign(Object.assign({ linguistLanguageId: a }, n), s2(t));\n            };\n          } }), Jm = te({ \"node_modules/esutils/lib/ast.js\"(e, r) {\n            ne(), function() {\n              \"use strict\";\n              function t(l) {\n                if (l == null) return false;\n                switch (l.type) {\n                  case \"ArrayExpression\":\n                  case \"AssignmentExpression\":\n                  case \"BinaryExpression\":\n                  case \"CallExpression\":\n                  case \"ConditionalExpression\":\n                  case \"FunctionExpression\":\n                  case \"Identifier\":\n                  case \"Literal\":\n                  case \"LogicalExpression\":\n                  case \"MemberExpression\":\n                  case \"NewExpression\":\n                  case \"ObjectExpression\":\n                  case \"SequenceExpression\":\n                  case \"ThisExpression\":\n                  case \"UnaryExpression\":\n                  case \"UpdateExpression\":\n                    return true;\n                }\n                return false;\n              }\n              function s2(l) {\n                if (l == null) return false;\n                switch (l.type) {\n                  case \"DoWhileStatement\":\n                  case \"ForInStatement\":\n                  case \"ForStatement\":\n                  case \"WhileStatement\":\n                    return true;\n                }\n                return false;\n              }\n              function a(l) {\n                if (l == null) return false;\n                switch (l.type) {\n                  case \"BlockStatement\":\n                  case \"BreakStatement\":\n                  case \"ContinueStatement\":\n                  case \"DebuggerStatement\":\n                  case \"DoWhileStatement\":\n                  case \"EmptyStatement\":\n                  case \"ExpressionStatement\":\n                  case \"ForInStatement\":\n                  case \"ForStatement\":\n                  case \"IfStatement\":\n                  case \"LabeledStatement\":\n                  case \"ReturnStatement\":\n                  case \"SwitchStatement\":\n                  case \"ThrowStatement\":\n                  case \"TryStatement\":\n                  case \"VariableDeclaration\":\n                  case \"WhileStatement\":\n                  case \"WithStatement\":\n                    return true;\n                }\n                return false;\n              }\n              function n(l) {\n                return a(l) || l != null && l.type === \"FunctionDeclaration\";\n              }\n              function u(l) {\n                switch (l.type) {\n                  case \"IfStatement\":\n                    return l.alternate != null ? l.alternate : l.consequent;\n                  case \"LabeledStatement\":\n                  case \"ForStatement\":\n                  case \"ForInStatement\":\n                  case \"WhileStatement\":\n                  case \"WithStatement\":\n                    return l.body;\n                }\n                return null;\n              }\n              function i(l) {\n                var p;\n                if (l.type !== \"IfStatement\" || l.alternate == null) return false;\n                p = l.consequent;\n                do {\n                  if (p.type === \"IfStatement\" && p.alternate == null) return true;\n                  p = u(p);\n                } while (p);\n                return false;\n              }\n              r.exports = { isExpression: t, isStatement: a, isIterationStatement: s2, isSourceElement: n, isProblematicIfStatement: i, trailingStatement: u };\n            }();\n          } }), so = te({ \"node_modules/esutils/lib/code.js\"(e, r) {\n            ne(), function() {\n              \"use strict\";\n              var t, s2, a, n, u, i;\n              s2 = { NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/, NonAsciiIdentifierPart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/ }, t = { NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/, NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/ };\n              function l(E) {\n                return 48 <= E && E <= 57;\n              }\n              function p(E) {\n                return 48 <= E && E <= 57 || 97 <= E && E <= 102 || 65 <= E && E <= 70;\n              }\n              function y(E) {\n                return E >= 48 && E <= 55;\n              }\n              a = [5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288, 65279];\n              function h(E) {\n                return E === 32 || E === 9 || E === 11 || E === 12 || E === 160 || E >= 5760 && a.indexOf(E) >= 0;\n              }\n              function g(E) {\n                return E === 10 || E === 13 || E === 8232 || E === 8233;\n              }\n              function c(E) {\n                if (E <= 65535) return String.fromCharCode(E);\n                var N = String.fromCharCode(Math.floor((E - 65536) / 1024) + 55296), x = String.fromCharCode((E - 65536) % 1024 + 56320);\n                return N + x;\n              }\n              for (n = new Array(128), i = 0; i < 128; ++i) n[i] = i >= 97 && i <= 122 || i >= 65 && i <= 90 || i === 36 || i === 95;\n              for (u = new Array(128), i = 0; i < 128; ++i) u[i] = i >= 97 && i <= 122 || i >= 65 && i <= 90 || i >= 48 && i <= 57 || i === 36 || i === 95;\n              function f(E) {\n                return E < 128 ? n[E] : s2.NonAsciiIdentifierStart.test(c(E));\n              }\n              function F(E) {\n                return E < 128 ? u[E] : s2.NonAsciiIdentifierPart.test(c(E));\n              }\n              function _(E) {\n                return E < 128 ? n[E] : t.NonAsciiIdentifierStart.test(c(E));\n              }\n              function w(E) {\n                return E < 128 ? u[E] : t.NonAsciiIdentifierPart.test(c(E));\n              }\n              r.exports = { isDecimalDigit: l, isHexDigit: p, isOctalDigit: y, isWhiteSpace: h, isLineTerminator: g, isIdentifierStartES5: f, isIdentifierPartES5: F, isIdentifierStartES6: _, isIdentifierPartES6: w };\n            }();\n          } }), zm = te({ \"node_modules/esutils/lib/keyword.js\"(e, r) {\n            ne(), function() {\n              \"use strict\";\n              var t = so();\n              function s2(f) {\n                switch (f) {\n                  case \"implements\":\n                  case \"interface\":\n                  case \"package\":\n                  case \"private\":\n                  case \"protected\":\n                  case \"public\":\n                  case \"static\":\n                  case \"let\":\n                    return true;\n                  default:\n                    return false;\n                }\n              }\n              function a(f, F) {\n                return !F && f === \"yield\" ? false : n(f, F);\n              }\n              function n(f, F) {\n                if (F && s2(f)) return true;\n                switch (f.length) {\n                  case 2:\n                    return f === \"if\" || f === \"in\" || f === \"do\";\n                  case 3:\n                    return f === \"var\" || f === \"for\" || f === \"new\" || f === \"try\";\n                  case 4:\n                    return f === \"this\" || f === \"else\" || f === \"case\" || f === \"void\" || f === \"with\" || f === \"enum\";\n                  case 5:\n                    return f === \"while\" || f === \"break\" || f === \"catch\" || f === \"throw\" || f === \"const\" || f === \"yield\" || f === \"class\" || f === \"super\";\n                  case 6:\n                    return f === \"return\" || f === \"typeof\" || f === \"delete\" || f === \"switch\" || f === \"export\" || f === \"import\";\n                  case 7:\n                    return f === \"default\" || f === \"finally\" || f === \"extends\";\n                  case 8:\n                    return f === \"function\" || f === \"continue\" || f === \"debugger\";\n                  case 10:\n                    return f === \"instanceof\";\n                  default:\n                    return false;\n                }\n              }\n              function u(f, F) {\n                return f === \"null\" || f === \"true\" || f === \"false\" || a(f, F);\n              }\n              function i(f, F) {\n                return f === \"null\" || f === \"true\" || f === \"false\" || n(f, F);\n              }\n              function l(f) {\n                return f === \"eval\" || f === \"arguments\";\n              }\n              function p(f) {\n                var F, _, w;\n                if (f.length === 0 || (w = f.charCodeAt(0), !t.isIdentifierStartES5(w))) return false;\n                for (F = 1, _ = f.length; F < _; ++F) if (w = f.charCodeAt(F), !t.isIdentifierPartES5(w)) return false;\n                return true;\n              }\n              function y(f, F) {\n                return (f - 55296) * 1024 + (F - 56320) + 65536;\n              }\n              function h(f) {\n                var F, _, w, E, N;\n                if (f.length === 0) return false;\n                for (N = t.isIdentifierStartES6, F = 0, _ = f.length; F < _; ++F) {\n                  if (w = f.charCodeAt(F), 55296 <= w && w <= 56319) {\n                    if (++F, F >= _ || (E = f.charCodeAt(F), !(56320 <= E && E <= 57343))) return false;\n                    w = y(w, E);\n                  }\n                  if (!N(w)) return false;\n                  N = t.isIdentifierPartES6;\n                }\n                return true;\n              }\n              function g(f, F) {\n                return p(f) && !u(f, F);\n              }\n              function c(f, F) {\n                return h(f) && !i(f, F);\n              }\n              r.exports = { isKeywordES5: a, isKeywordES6: n, isReservedWordES5: u, isReservedWordES6: i, isRestrictedWord: l, isIdentifierNameES5: p, isIdentifierNameES6: h, isIdentifierES5: g, isIdentifierES6: c };\n            }();\n          } }), Xm = te({ \"node_modules/esutils/lib/utils.js\"(e) {\n            ne(), function() {\n              \"use strict\";\n              e.ast = Jm(), e.code = so(), e.keyword = zm();\n            }();\n          } }), Pt = te({ \"src/language-js/utils/is-block-comment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = /* @__PURE__ */ new Set([\"Block\", \"CommentBlock\", \"MultiLine\"]), s2 = (a) => t.has(a == null ? void 0 : a.type);\n            r.exports = s2;\n          } }), Km = te({ \"src/language-js/utils/is-node-matches.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a, n) {\n              let u = n.split(\".\");\n              for (let i = u.length - 1; i >= 0; i--) {\n                let l = u[i];\n                if (i === 0) return a.type === \"Identifier\" && a.name === l;\n                if (a.type !== \"MemberExpression\" || a.optional || a.computed || a.property.type !== \"Identifier\" || a.property.name !== l) return false;\n                a = a.object;\n              }\n            }\n            function s2(a, n) {\n              return n.some((u) => t(a, u));\n            }\n            r.exports = s2;\n          } }), Ke = te({ \"src/language-js/utils/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Xm().keyword.isIdentifierNameES5, { getLast: s2, hasNewline: a, skipWhitespace: n, isNonEmptyArray: u, isNextLineEmptyAfterIndex: i, getStringWidth: l } = Ue(), { locStart: p, locEnd: y, hasSameLocStart: h } = ut(), g = Pt(), c = Km(), f = \"(?:(?=.)\\\\s)\", F = new RegExp(`^${f}*:`), _ = new RegExp(`^${f}*::`);\n            function w(O) {\n              var me, _e;\n              return ((me = O.extra) === null || me === void 0 ? void 0 : me.parenthesized) && g((_e = O.trailingComments) === null || _e === void 0 ? void 0 : _e[0]) && F.test(O.trailingComments[0].value);\n            }\n            function E(O) {\n              let me = O == null ? void 0 : O[0];\n              return g(me) && _.test(me.value);\n            }\n            function N(O, me) {\n              if (!O || typeof O != \"object\") return false;\n              if (Array.isArray(O)) return O.some((He) => N(He, me));\n              let _e = me(O);\n              return typeof _e == \"boolean\" ? _e : Object.values(O).some((He) => N(He, me));\n            }\n            function x(O) {\n              return O.type === \"AssignmentExpression\" || O.type === \"BinaryExpression\" || O.type === \"LogicalExpression\" || O.type === \"NGPipeExpression\" || O.type === \"ConditionalExpression\" || de(O) || ue(O) || O.type === \"SequenceExpression\" || O.type === \"TaggedTemplateExpression\" || O.type === \"BindExpression\" || O.type === \"UpdateExpression\" && !O.prefix || st(O) || O.type === \"TSNonNullExpression\";\n            }\n            function I(O) {\n              var me, _e, He, Ge, it, Qe;\n              return O.expressions ? O.expressions[0] : (me = (_e = (He = (Ge = (it = (Qe = O.left) !== null && Qe !== void 0 ? Qe : O.test) !== null && it !== void 0 ? it : O.callee) !== null && Ge !== void 0 ? Ge : O.object) !== null && He !== void 0 ? He : O.tag) !== null && _e !== void 0 ? _e : O.argument) !== null && me !== void 0 ? me : O.expression;\n            }\n            function P(O, me) {\n              if (me.expressions) return [\"expressions\", 0];\n              if (me.left) return [\"left\"];\n              if (me.test) return [\"test\"];\n              if (me.object) return [\"object\"];\n              if (me.callee) return [\"callee\"];\n              if (me.tag) return [\"tag\"];\n              if (me.argument) return [\"argument\"];\n              if (me.expression) return [\"expression\"];\n              throw new Error(\"Unexpected node has no left side.\");\n            }\n            function $(O) {\n              return O = new Set(O), (me) => O.has(me == null ? void 0 : me.type);\n            }\n            var D = $([\"Line\", \"CommentLine\", \"SingleLine\", \"HashbangComment\", \"HTMLOpen\", \"HTMLClose\"]), T = $([\"ExportDefaultDeclaration\", \"ExportDefaultSpecifier\", \"DeclareExportDeclaration\", \"ExportNamedDeclaration\", \"ExportAllDeclaration\"]);\n            function m(O) {\n              let me = O.getParentNode();\n              return O.getName() === \"declaration\" && T(me) ? me : null;\n            }\n            var C = $([\"BooleanLiteral\", \"DirectiveLiteral\", \"Literal\", \"NullLiteral\", \"NumericLiteral\", \"BigIntLiteral\", \"DecimalLiteral\", \"RegExpLiteral\", \"StringLiteral\", \"TemplateLiteral\", \"TSTypeLiteral\", \"JSXText\"]);\n            function o(O) {\n              return O.type === \"NumericLiteral\" || O.type === \"Literal\" && typeof O.value == \"number\";\n            }\n            function d(O) {\n              return O.type === \"UnaryExpression\" && (O.operator === \"+\" || O.operator === \"-\") && o(O.argument);\n            }\n            function v(O) {\n              return O.type === \"StringLiteral\" || O.type === \"Literal\" && typeof O.value == \"string\";\n            }\n            var S = $([\"ObjectTypeAnnotation\", \"TSTypeLiteral\", \"TSMappedType\"]), b = $([\"FunctionExpression\", \"ArrowFunctionExpression\"]);\n            function B(O) {\n              return O.type === \"FunctionExpression\" || O.type === \"ArrowFunctionExpression\" && O.body.type === \"BlockStatement\";\n            }\n            function k(O) {\n              return de(O) && O.callee.type === \"Identifier\" && [\"async\", \"inject\", \"fakeAsync\", \"waitForAsync\"].includes(O.callee.name);\n            }\n            var M = $([\"JSXElement\", \"JSXFragment\"]);\n            function R(O, me) {\n              if (O.parentParser !== \"markdown\" && O.parentParser !== \"mdx\") return false;\n              let _e = me.getNode();\n              if (!_e.expression || !M(_e.expression)) return false;\n              let He = me.getParentNode();\n              return He.type === \"Program\" && He.body.length === 1;\n            }\n            function q(O) {\n              return O.kind === \"get\" || O.kind === \"set\";\n            }\n            function J(O) {\n              return q(O) || h(O, O.value);\n            }\n            function L(O) {\n              return (O.type === \"ObjectTypeProperty\" || O.type === \"ObjectTypeInternalSlot\") && O.value.type === \"FunctionTypeAnnotation\" && !O.static && !J(O);\n            }\n            function Q(O) {\n              return (O.type === \"TypeAnnotation\" || O.type === \"TSTypeAnnotation\") && O.typeAnnotation.type === \"FunctionTypeAnnotation\" && !O.static && !h(O, O.typeAnnotation);\n            }\n            var V = $([\"BinaryExpression\", \"LogicalExpression\", \"NGPipeExpression\"]);\n            function j(O) {\n              return ue(O) || O.type === \"BindExpression\" && Boolean(O.object);\n            }\n            var Y = /* @__PURE__ */ new Set([\"AnyTypeAnnotation\", \"TSAnyKeyword\", \"NullLiteralTypeAnnotation\", \"TSNullKeyword\", \"ThisTypeAnnotation\", \"TSThisType\", \"NumberTypeAnnotation\", \"TSNumberKeyword\", \"VoidTypeAnnotation\", \"TSVoidKeyword\", \"BooleanTypeAnnotation\", \"TSBooleanKeyword\", \"BigIntTypeAnnotation\", \"TSBigIntKeyword\", \"SymbolTypeAnnotation\", \"TSSymbolKeyword\", \"StringTypeAnnotation\", \"TSStringKeyword\", \"BooleanLiteralTypeAnnotation\", \"StringLiteralTypeAnnotation\", \"BigIntLiteralTypeAnnotation\", \"NumberLiteralTypeAnnotation\", \"TSLiteralType\", \"TSTemplateLiteralType\", \"EmptyTypeAnnotation\", \"MixedTypeAnnotation\", \"TSNeverKeyword\", \"TSObjectKeyword\", \"TSUndefinedKeyword\", \"TSUnknownKeyword\"]);\n            function ie(O) {\n              return O ? !!((O.type === \"GenericTypeAnnotation\" || O.type === \"TSTypeReference\") && !O.typeParameters || Y.has(O.type)) : false;\n            }\n            function ee(O) {\n              let me = /^(?:before|after)(?:Each|All)$/;\n              return O.callee.type === \"Identifier\" && me.test(O.callee.name) && O.arguments.length === 1;\n            }\n            var ce = [\"it\", \"it.only\", \"it.skip\", \"describe\", \"describe.only\", \"describe.skip\", \"test\", \"test.only\", \"test.skip\", \"test.step\", \"test.describe\", \"test.describe.only\", \"test.describe.parallel\", \"test.describe.parallel.only\", \"test.describe.serial\", \"test.describe.serial.only\", \"skip\", \"xit\", \"xdescribe\", \"xtest\", \"fit\", \"fdescribe\", \"ftest\"];\n            function W(O) {\n              return c(O, ce);\n            }\n            function K(O, me) {\n              if (O.type !== \"CallExpression\") return false;\n              if (O.arguments.length === 1) {\n                if (k(O) && me && K(me)) return b(O.arguments[0]);\n                if (ee(O)) return k(O.arguments[0]);\n              } else if ((O.arguments.length === 2 || O.arguments.length === 3) && (O.arguments[0].type === \"TemplateLiteral\" || v(O.arguments[0])) && W(O.callee)) return O.arguments[2] && !o(O.arguments[2]) ? false : (O.arguments.length === 2 ? b(O.arguments[1]) : B(O.arguments[1]) && ve(O.arguments[1]).length <= 1) || k(O.arguments[1]);\n              return false;\n            }\n            var de = $([\"CallExpression\", \"OptionalCallExpression\"]), ue = $([\"MemberExpression\", \"OptionalMemberExpression\"]);\n            function Fe(O) {\n              let me = \"expressions\";\n              O.type === \"TSTemplateLiteralType\" && (me = \"types\");\n              let _e = O[me];\n              return _e.length === 0 ? false : _e.every((He) => {\n                if (Me(He)) return false;\n                if (He.type === \"Identifier\" || He.type === \"ThisExpression\") return true;\n                if (ue(He)) {\n                  let Ge = He;\n                  for (; ue(Ge); ) if (Ge.property.type !== \"Identifier\" && Ge.property.type !== \"Literal\" && Ge.property.type !== \"StringLiteral\" && Ge.property.type !== \"NumericLiteral\" || (Ge = Ge.object, Me(Ge))) return false;\n                  return Ge.type === \"Identifier\" || Ge.type === \"ThisExpression\";\n                }\n                return false;\n              });\n            }\n            function z(O, me) {\n              return O === \"+\" || O === \"-\" ? O + me : me;\n            }\n            function U(O, me) {\n              let _e = p(me), He = n(O, y(me));\n              return He !== false && O.slice(_e, _e + 2) === \"/*\" && O.slice(He, He + 2) === \"*/\";\n            }\n            function Z(O, me) {\n              return M(me) ? Oe(me) : Me(me, Te.Leading, (_e) => a(O, y(_e)));\n            }\n            function se(O, me) {\n              return me.parser !== \"json\" && v(O.key) && oe(O.key).slice(1, -1) === O.key.value && (t(O.key.value) && !(me.parser === \"babel-ts\" && O.type === \"ClassProperty\" || me.parser === \"typescript\" && O.type === \"PropertyDefinition\") || fe(O.key.value) && String(Number(O.key.value)) === O.key.value && (me.parser === \"babel\" || me.parser === \"acorn\" || me.parser === \"espree\" || me.parser === \"meriyah\" || me.parser === \"__babel_estree\"));\n            }\n            function fe(O) {\n              return /^(?:\\d+|\\d+\\.\\d+)$/.test(O);\n            }\n            function ge(O, me) {\n              let _e = /^[fx]?(?:describe|it|test)$/;\n              return me.type === \"TaggedTemplateExpression\" && me.quasi === O && me.tag.type === \"MemberExpression\" && me.tag.property.type === \"Identifier\" && me.tag.property.name === \"each\" && (me.tag.object.type === \"Identifier\" && _e.test(me.tag.object.name) || me.tag.object.type === \"MemberExpression\" && me.tag.object.property.type === \"Identifier\" && (me.tag.object.property.name === \"only\" || me.tag.object.property.name === \"skip\") && me.tag.object.object.type === \"Identifier\" && _e.test(me.tag.object.object.name));\n            }\n            function he(O) {\n              return O.quasis.some((me) => me.value.raw.includes(`\n`));\n            }\n            function we(O, me) {\n              return (O.type === \"TemplateLiteral\" && he(O) || O.type === \"TaggedTemplateExpression\" && he(O.quasi)) && !a(me, p(O), { backwards: true });\n            }\n            function ke(O) {\n              if (!Me(O)) return false;\n              let me = s2(ae(O, Te.Dangling));\n              return me && !g(me);\n            }\n            function Re(O) {\n              if (O.length <= 1) return false;\n              let me = 0;\n              for (let _e of O) if (b(_e)) {\n                if (me += 1, me > 1) return true;\n              } else if (de(_e)) {\n                for (let He of _e.arguments) if (b(He)) return true;\n              }\n              return false;\n            }\n            function Ne(O) {\n              let me = O.getValue(), _e = O.getParentNode();\n              return de(me) && de(_e) && _e.callee === me && me.arguments.length > _e.arguments.length && _e.arguments.length > 0;\n            }\n            function Pe(O, me) {\n              if (me >= 2) return false;\n              let _e = (Qe) => Pe(Qe, me + 1), He = O.type === \"Literal\" && \"regex\" in O && O.regex.pattern || O.type === \"RegExpLiteral\" && O.pattern;\n              if (He && l(He) > 5) return false;\n              if (O.type === \"Literal\" || O.type === \"BigIntLiteral\" || O.type === \"DecimalLiteral\" || O.type === \"BooleanLiteral\" || O.type === \"NullLiteral\" || O.type === \"NumericLiteral\" || O.type === \"RegExpLiteral\" || O.type === \"StringLiteral\" || O.type === \"Identifier\" || O.type === \"ThisExpression\" || O.type === \"Super\" || O.type === \"PrivateName\" || O.type === \"PrivateIdentifier\" || O.type === \"ArgumentPlaceholder\" || O.type === \"Import\") return true;\n              if (O.type === \"TemplateLiteral\") return O.quasis.every((Qe) => !Qe.value.raw.includes(`\n`)) && O.expressions.every(_e);\n              if (O.type === \"ObjectExpression\") return O.properties.every((Qe) => !Qe.computed && (Qe.shorthand || Qe.value && _e(Qe.value)));\n              if (O.type === \"ArrayExpression\") return O.elements.every((Qe) => Qe === null || _e(Qe));\n              if (tt(O)) return (O.type === \"ImportExpression\" || Pe(O.callee, me)) && Ye(O).every(_e);\n              if (ue(O)) return Pe(O.object, me) && Pe(O.property, me);\n              let Ge = { \"!\": true, \"-\": true, \"+\": true, \"~\": true };\n              if (O.type === \"UnaryExpression\" && Ge[O.operator]) return Pe(O.argument, me);\n              let it = { \"++\": true, \"--\": true };\n              return O.type === \"UpdateExpression\" && it[O.operator] ? Pe(O.argument, me) : O.type === \"TSNonNullExpression\" ? Pe(O.expression, me) : false;\n            }\n            function oe(O) {\n              var me, _e;\n              return (me = (_e = O.extra) === null || _e === void 0 ? void 0 : _e.raw) !== null && me !== void 0 ? me : O.raw;\n            }\n            function H(O) {\n              return O;\n            }\n            function pe(O) {\n              return O.filepath && /\\.tsx$/i.test(O.filepath);\n            }\n            function X(O) {\n              let me = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"es5\";\n              return O.trailingComma === \"es5\" && me === \"es5\" || O.trailingComma === \"all\" && (me === \"all\" || me === \"es5\");\n            }\n            function le(O, me) {\n              switch (O.type) {\n                case \"BinaryExpression\":\n                case \"LogicalExpression\":\n                case \"AssignmentExpression\":\n                case \"NGPipeExpression\":\n                  return le(O.left, me);\n                case \"MemberExpression\":\n                case \"OptionalMemberExpression\":\n                  return le(O.object, me);\n                case \"TaggedTemplateExpression\":\n                  return O.tag.type === \"FunctionExpression\" ? false : le(O.tag, me);\n                case \"CallExpression\":\n                case \"OptionalCallExpression\":\n                  return O.callee.type === \"FunctionExpression\" ? false : le(O.callee, me);\n                case \"ConditionalExpression\":\n                  return le(O.test, me);\n                case \"UpdateExpression\":\n                  return !O.prefix && le(O.argument, me);\n                case \"BindExpression\":\n                  return O.object && le(O.object, me);\n                case \"SequenceExpression\":\n                  return le(O.expressions[0], me);\n                case \"TSSatisfiesExpression\":\n                case \"TSAsExpression\":\n                case \"TSNonNullExpression\":\n                  return le(O.expression, me);\n                default:\n                  return me(O);\n              }\n            }\n            var Ae = { \"==\": true, \"!=\": true, \"===\": true, \"!==\": true }, Ee = { \"*\": true, \"/\": true, \"%\": true }, De = { \">>\": true, \">>>\": true, \"<<\": true };\n            function A(O, me) {\n              return !(re(me) !== re(O) || O === \"**\" || Ae[O] && Ae[me] || me === \"%\" && Ee[O] || O === \"%\" && Ee[me] || me !== O && Ee[me] && Ee[O] || De[O] && De[me]);\n            }\n            var G = new Map([[\"|>\"], [\"??\"], [\"||\"], [\"&&\"], [\"|\"], [\"^\"], [\"&\"], [\"==\", \"===\", \"!=\", \"!==\"], [\"<\", \">\", \"<=\", \">=\", \"in\", \"instanceof\"], [\">>\", \"<<\", \">>>\"], [\"+\", \"-\"], [\"*\", \"/\", \"%\"], [\"**\"]].flatMap((O, me) => O.map((_e) => [_e, me])));\n            function re(O) {\n              return G.get(O);\n            }\n            function ye(O) {\n              return Boolean(De[O]) || O === \"|\" || O === \"^\" || O === \"&\";\n            }\n            function Ce(O) {\n              var me;\n              if (O.rest) return true;\n              let _e = ve(O);\n              return ((me = s2(_e)) === null || me === void 0 ? void 0 : me.type) === \"RestElement\";\n            }\n            var Be = /* @__PURE__ */ new WeakMap();\n            function ve(O) {\n              if (Be.has(O)) return Be.get(O);\n              let me = [];\n              return O.this && me.push(O.this), Array.isArray(O.parameters) ? me.push(...O.parameters) : Array.isArray(O.params) && me.push(...O.params), O.rest && me.push(O.rest), Be.set(O, me), me;\n            }\n            function ze(O, me) {\n              let _e = O.getValue(), He = 0, Ge = (it) => me(it, He++);\n              _e.this && O.call(Ge, \"this\"), Array.isArray(_e.parameters) ? O.each(Ge, \"parameters\") : Array.isArray(_e.params) && O.each(Ge, \"params\"), _e.rest && O.call(Ge, \"rest\");\n            }\n            var be = /* @__PURE__ */ new WeakMap();\n            function Ye(O) {\n              if (be.has(O)) return be.get(O);\n              let me = O.arguments;\n              return O.type === \"ImportExpression\" && (me = [O.source], O.attributes && me.push(O.attributes)), be.set(O, me), me;\n            }\n            function Se(O, me) {\n              let _e = O.getValue();\n              _e.type === \"ImportExpression\" ? (O.call((He) => me(He, 0), \"source\"), _e.attributes && O.call((He) => me(He, 1), \"attributes\")) : O.each(me, \"arguments\");\n            }\n            function Ie(O) {\n              return O.value.trim() === \"prettier-ignore\" && !O.unignore;\n            }\n            function Oe(O) {\n              return O && (O.prettierIgnore || Me(O, Te.PrettierIgnore));\n            }\n            function Je(O) {\n              let me = O.getValue();\n              return Oe(me);\n            }\n            var Te = { Leading: 1 << 1, Trailing: 1 << 2, Dangling: 1 << 3, Block: 1 << 4, Line: 1 << 5, PrettierIgnore: 1 << 6, First: 1 << 7, Last: 1 << 8 }, je = (O, me) => {\n              if (typeof O == \"function\" && (me = O, O = 0), O || me) return (_e, He, Ge) => !(O & Te.Leading && !_e.leading || O & Te.Trailing && !_e.trailing || O & Te.Dangling && (_e.leading || _e.trailing) || O & Te.Block && !g(_e) || O & Te.Line && !D(_e) || O & Te.First && He !== 0 || O & Te.Last && He !== Ge.length - 1 || O & Te.PrettierIgnore && !Ie(_e) || me && !me(_e));\n            };\n            function Me(O, me, _e) {\n              if (!u(O == null ? void 0 : O.comments)) return false;\n              let He = je(me, _e);\n              return He ? O.comments.some(He) : true;\n            }\n            function ae(O, me, _e) {\n              if (!Array.isArray(O == null ? void 0 : O.comments)) return [];\n              let He = je(me, _e);\n              return He ? O.comments.filter(He) : O.comments;\n            }\n            var nt = (O, me) => {\n              let { originalText: _e } = me;\n              return i(_e, y(O));\n            };\n            function tt(O) {\n              return de(O) || O.type === \"NewExpression\" || O.type === \"ImportExpression\";\n            }\n            function Ve(O) {\n              return O && (O.type === \"ObjectProperty\" || O.type === \"Property\" && !O.method && O.kind === \"init\");\n            }\n            function We(O) {\n              return Boolean(O.__isUsingHackPipeline);\n            }\n            var Xe = Symbol(\"ifWithoutBlockAndSameLineComment\");\n            function st(O) {\n              return O.type === \"TSAsExpression\" || O.type === \"TSSatisfiesExpression\";\n            }\n            r.exports = { getFunctionParameters: ve, iterateFunctionParametersPath: ze, getCallArguments: Ye, iterateCallArgumentsPath: Se, hasRestParameter: Ce, getLeftSide: I, getLeftSidePathName: P, getParentExportDeclaration: m, getTypeScriptMappedTypeModifier: z, hasFlowAnnotationComment: E, hasFlowShorthandAnnotationComment: w, hasLeadingOwnLineComment: Z, hasNakedLeftSide: x, hasNode: N, hasIgnoreComment: Je, hasNodeIgnoreComment: Oe, identity: H, isBinaryish: V, isCallLikeExpression: tt, isEnabledHackPipeline: We, isLineComment: D, isPrettierIgnoreComment: Ie, isCallExpression: de, isMemberExpression: ue, isExportDeclaration: T, isFlowAnnotationComment: U, isFunctionCompositionArgs: Re, isFunctionNotation: J, isFunctionOrArrowExpression: b, isGetterOrSetter: q, isJestEachTemplateLiteral: ge, isJsxNode: M, isLiteral: C, isLongCurriedCallExpression: Ne, isSimpleCallArgument: Pe, isMemberish: j, isNumericLiteral: o, isSignedNumericLiteral: d, isObjectProperty: Ve, isObjectType: S, isObjectTypePropertyAFunction: L, isSimpleType: ie, isSimpleNumber: fe, isSimpleTemplateLiteral: Fe, isStringLiteral: v, isStringPropSafeToUnquote: se, isTemplateOnItsOwnLine: we, isTestCall: K, isTheOnlyJsxElementInMarkdown: R, isTSXFile: pe, isTypeAnnotationAFunction: Q, isNextLineEmpty: nt, needsHardlineAfterDanglingComment: ke, rawText: oe, shouldPrintComma: X, isBitwiseOperator: ye, shouldFlatten: A, startsWithNoLookaheadToken: le, getPrecedence: re, hasComment: Me, getComments: ae, CommentCheckFlags: Te, markerForIfWithoutBlockAndSameLineComment: Xe, isTSTypeExpression: st };\n          } }), jt = te({ \"src/language-js/print/template-literal.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), { getStringWidth: s2, getIndentSize: a } = Ue(), { builders: { join: n, hardline: u, softline: i, group: l, indent: p, align: y, lineSuffixBoundary: h, addAlignmentToDoc: g }, printer: { printDocToString: c }, utils: { mapDoc: f } } = qe(), { isBinaryish: F, isJestEachTemplateLiteral: _, isSimpleTemplateLiteral: w, hasComment: E, isMemberExpression: N, isTSTypeExpression: x } = Ke();\n            function I(C, o, d) {\n              let v = C.getValue();\n              if (v.type === \"TemplateLiteral\" && _(v, C.getParentNode())) {\n                let R = P(C, d, o);\n                if (R) return R;\n              }\n              let b = \"expressions\";\n              v.type === \"TSTemplateLiteralType\" && (b = \"types\");\n              let B = [], k = C.map(o, b), M = w(v);\n              return M && (k = k.map((R) => c(R, Object.assign(Object.assign({}, d), {}, { printWidth: Number.POSITIVE_INFINITY })).formatted)), B.push(h, \"`\"), C.each((R) => {\n                let q = R.getName();\n                if (B.push(o()), q < k.length) {\n                  let { tabWidth: J } = d, L = R.getValue(), Q = a(L.value.raw, J), V = k[q];\n                  if (!M) {\n                    let Y = v[b][q];\n                    (E(Y) || N(Y) || Y.type === \"ConditionalExpression\" || Y.type === \"SequenceExpression\" || x(Y) || F(Y)) && (V = [p([i, V]), i]);\n                  }\n                  let j = Q === 0 && L.value.raw.endsWith(`\n`) ? y(Number.NEGATIVE_INFINITY, V) : g(V, Q, J);\n                  B.push(l([\"${\", j, h, \"}\"]));\n                }\n              }, \"quasis\"), B.push(\"`\"), B;\n            }\n            function P(C, o, d) {\n              let v = C.getNode(), S = v.quasis[0].value.raw.trim().split(/\\s*\\|\\s*/);\n              if (S.length > 1 || S.some((b) => b.length > 0)) {\n                o.__inJestEach = true;\n                let b = C.map(d, \"expressions\");\n                o.__inJestEach = false;\n                let B = [], k = b.map((L) => \"${\" + c(L, Object.assign(Object.assign({}, o), {}, { printWidth: Number.POSITIVE_INFINITY, endOfLine: \"lf\" })).formatted + \"}\"), M = [{ hasLineBreak: false, cells: [] }];\n                for (let L = 1; L < v.quasis.length; L++) {\n                  let Q = t(M), V = k[L - 1];\n                  Q.cells.push(V), V.includes(`\n`) && (Q.hasLineBreak = true), v.quasis[L].value.raw.includes(`\n`) && M.push({ hasLineBreak: false, cells: [] });\n                }\n                let R = Math.max(S.length, ...M.map((L) => L.cells.length)), q = Array.from({ length: R }).fill(0), J = [{ cells: S }, ...M.filter((L) => L.cells.length > 0)];\n                for (let { cells: L } of J.filter((Q) => !Q.hasLineBreak)) for (let [Q, V] of L.entries()) q[Q] = Math.max(q[Q], s2(V));\n                return B.push(h, \"`\", p([u, n(u, J.map((L) => n(\" | \", L.cells.map((Q, V) => L.hasLineBreak ? Q : Q + \" \".repeat(q[V] - s2(Q))))))]), u, \"`\"), B;\n              }\n            }\n            function $(C, o) {\n              let d = C.getValue(), v = o();\n              return E(d) && (v = l([p([i, v]), i])), [\"${\", v, h, \"}\"];\n            }\n            function D(C, o) {\n              return C.map((d) => $(d, o), \"expressions\");\n            }\n            function T(C, o) {\n              return f(C, (d) => typeof d == \"string\" ? o ? d.replace(/(\\\\*)`/g, \"$1$1\\\\`\") : m(d) : d);\n            }\n            function m(C) {\n              return C.replace(/([\\\\`]|\\${)/g, \"\\\\$1\");\n            }\n            r.exports = { printTemplateLiteral: I, printTemplateExpressions: D, escapeTemplateCharacters: T, uncookTemplateElementValue: m };\n          } }), Ym = te({ \"src/language-js/embed/markdown.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { indent: t, softline: s2, literalline: a, dedentToRoot: n } } = qe(), { escapeTemplateCharacters: u } = jt();\n            function i(p, y, h) {\n              let c = p.getValue().quasis[0].value.raw.replace(/((?:\\\\\\\\)*)\\\\`/g, (w, E) => \"\\\\\".repeat(E.length / 2) + \"`\"), f = l(c), F = f !== \"\";\n              F && (c = c.replace(new RegExp(`^${f}`, \"gm\"), \"\"));\n              let _ = u(h(c, { parser: \"markdown\", __inJsTemplate: true }, { stripTrailingHardline: true }), true);\n              return [\"`\", F ? t([s2, _]) : [a, n(_)], s2, \"`\"];\n            }\n            function l(p) {\n              let y = p.match(/^([^\\S\\n]*)\\S/m);\n              return y === null ? \"\" : y[1];\n            }\n            r.exports = i;\n          } }), Qm = te({ \"src/language-js/embed/css.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t } = Ue(), { builders: { indent: s2, hardline: a, softline: n }, utils: { mapDoc: u, replaceEndOfLine: i, cleanDoc: l } } = qe(), { printTemplateExpressions: p } = jt();\n            function y(c, f, F) {\n              let _ = c.getValue(), w = _.quasis.map((P) => P.value.raw), E = 0, N = w.reduce((P, $, D) => D === 0 ? $ : P + \"@prettier-placeholder-\" + E++ + \"-id\" + $, \"\"), x = F(N, { parser: \"scss\" }, { stripTrailingHardline: true }), I = p(c, f);\n              return h(x, _, I);\n            }\n            function h(c, f, F) {\n              if (f.quasis.length === 1 && !f.quasis[0].value.raw.trim()) return \"``\";\n              let w = g(c, F);\n              if (!w) throw new Error(\"Couldn't insert all the expressions\");\n              return [\"`\", s2([a, w]), n, \"`\"];\n            }\n            function g(c, f) {\n              if (!t(f)) return c;\n              let F = 0, _ = u(l(c), (w) => typeof w != \"string\" || !w.includes(\"@prettier-placeholder\") ? w : w.split(/@prettier-placeholder-(\\d+)-id/).map((E, N) => N % 2 === 0 ? i(E) : (F++, f[E])));\n              return f.length === F ? _ : null;\n            }\n            r.exports = y;\n          } }), Zm = te({ \"src/language-js/embed/graphql.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { indent: t, join: s2, hardline: a } } = qe(), { escapeTemplateCharacters: n, printTemplateExpressions: u } = jt();\n            function i(p, y, h) {\n              let g = p.getValue(), c = g.quasis.length;\n              if (c === 1 && g.quasis[0].value.raw.trim() === \"\") return \"``\";\n              let f = u(p, y), F = [];\n              for (let _ = 0; _ < c; _++) {\n                let w = g.quasis[_], E = _ === 0, N = _ === c - 1, x = w.value.cooked, I = x.split(`\n`), P = I.length, $ = f[_], D = P > 2 && I[0].trim() === \"\" && I[1].trim() === \"\", T = P > 2 && I[P - 1].trim() === \"\" && I[P - 2].trim() === \"\", m = I.every((o) => /^\\s*(?:#[^\\n\\r]*)?$/.test(o));\n                if (!N && /#[^\\n\\r]*$/.test(I[P - 1])) return null;\n                let C = null;\n                m ? C = l(I) : C = h(x, { parser: \"graphql\" }, { stripTrailingHardline: true }), C ? (C = n(C, false), !E && D && F.push(\"\"), F.push(C), !N && T && F.push(\"\")) : !E && !N && D && F.push(\"\"), $ && F.push($);\n              }\n              return [\"`\", t([a, s2(a, F)]), a, \"`\"];\n            }\n            function l(p) {\n              let y = [], h = false, g = p.map((c) => c.trim());\n              for (let [c, f] of g.entries()) f !== \"\" && (g[c - 1] === \"\" && h ? y.push([a, f]) : y.push(f), h = true);\n              return y.length === 0 ? null : s2(a, y);\n            }\n            r.exports = i;\n          } }), ed = te({ \"src/language-js/embed/html.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { indent: t, line: s2, hardline: a, group: n }, utils: { mapDoc: u } } = qe(), { printTemplateExpressions: i, uncookTemplateElementValue: l } = jt(), p = 0;\n            function y(h, g, c, f, F) {\n              let { parser: _ } = F, w = h.getValue(), E = p;\n              p = p + 1 >>> 0;\n              let N = (d) => `PRETTIER_HTML_PLACEHOLDER_${d}_${E}_IN_JS`, x = w.quasis.map((d, v, S) => v === S.length - 1 ? d.value.cooked : d.value.cooked + N(v)).join(\"\"), I = i(h, g);\n              if (I.length === 0 && x.trim().length === 0) return \"``\";\n              let P = new RegExp(N(\"(\\\\d+)\"), \"g\"), $ = 0, D = c(x, { parser: _, __onHtmlRoot(d) {\n                $ = d.children.length;\n              } }, { stripTrailingHardline: true }), T = u(D, (d) => {\n                if (typeof d != \"string\") return d;\n                let v = [], S = d.split(P);\n                for (let b = 0; b < S.length; b++) {\n                  let B = S[b];\n                  if (b % 2 === 0) {\n                    B && (B = l(B), f.__embeddedInHtml && (B = B.replace(/<\\/(script)\\b/gi, \"<\\\\/$1\")), v.push(B));\n                    continue;\n                  }\n                  let k = Number(B);\n                  v.push(I[k]);\n                }\n                return v;\n              }), m = /^\\s/.test(x) ? \" \" : \"\", C = /\\s$/.test(x) ? \" \" : \"\", o = f.htmlWhitespaceSensitivity === \"ignore\" ? a : m && C ? s2 : null;\n              return n(o ? [\"`\", t([o, n(T)]), o, \"`\"] : [\"`\", m, $ > 1 ? t(n(T)) : n(T), C, \"`\"]);\n            }\n            r.exports = y;\n          } }), td = te({ \"src/language-js/embed.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { hasComment: t, CommentCheckFlags: s2, isObjectProperty: a } = Ke(), n = Ym(), u = Qm(), i = Zm(), l = ed();\n            function p(D) {\n              if (g(D) || _(D) || w(D) || c(D)) return \"css\";\n              if (x(D)) return \"graphql\";\n              if (P(D)) return \"html\";\n              if (f(D)) return \"angular\";\n              if (h(D)) return \"markdown\";\n            }\n            function y(D, T, m, C) {\n              let o = D.getValue();\n              if (o.type !== \"TemplateLiteral\" || $(o)) return;\n              let d = p(D);\n              if (d) {\n                if (d === \"markdown\") return n(D, T, m);\n                if (d === \"css\") return u(D, T, m);\n                if (d === \"graphql\") return i(D, T, m);\n                if (d === \"html\" || d === \"angular\") return l(D, T, m, C, { parser: d });\n              }\n            }\n            function h(D) {\n              let T = D.getValue(), m = D.getParentNode();\n              return m && m.type === \"TaggedTemplateExpression\" && T.quasis.length === 1 && m.tag.type === \"Identifier\" && (m.tag.name === \"md\" || m.tag.name === \"markdown\");\n            }\n            function g(D) {\n              let T = D.getValue(), m = D.getParentNode(), C = D.getParentNode(1);\n              return C && T.quasis && m.type === \"JSXExpressionContainer\" && C.type === \"JSXElement\" && C.openingElement.name.name === \"style\" && C.openingElement.attributes.some((o) => o.name.name === \"jsx\") || m && m.type === \"TaggedTemplateExpression\" && m.tag.type === \"Identifier\" && m.tag.name === \"css\" || m && m.type === \"TaggedTemplateExpression\" && m.tag.type === \"MemberExpression\" && m.tag.object.name === \"css\" && (m.tag.property.name === \"global\" || m.tag.property.name === \"resolve\");\n            }\n            function c(D) {\n              return D.match((T) => T.type === \"TemplateLiteral\", (T, m) => T.type === \"ArrayExpression\" && m === \"elements\", (T, m) => a(T) && T.key.type === \"Identifier\" && T.key.name === \"styles\" && m === \"value\", ...F);\n            }\n            function f(D) {\n              return D.match((T) => T.type === \"TemplateLiteral\", (T, m) => a(T) && T.key.type === \"Identifier\" && T.key.name === \"template\" && m === \"value\", ...F);\n            }\n            var F = [(D, T) => D.type === \"ObjectExpression\" && T === \"properties\", (D, T) => D.type === \"CallExpression\" && D.callee.type === \"Identifier\" && D.callee.name === \"Component\" && T === \"arguments\", (D, T) => D.type === \"Decorator\" && T === \"expression\"];\n            function _(D) {\n              let T = D.getParentNode();\n              if (!T || T.type !== \"TaggedTemplateExpression\") return false;\n              let m = T.tag.type === \"ParenthesizedExpression\" ? T.tag.expression : T.tag;\n              switch (m.type) {\n                case \"MemberExpression\":\n                  return E(m.object) || N(m);\n                case \"CallExpression\":\n                  return E(m.callee) || m.callee.type === \"MemberExpression\" && (m.callee.object.type === \"MemberExpression\" && (E(m.callee.object.object) || N(m.callee.object)) || m.callee.object.type === \"CallExpression\" && E(m.callee.object.callee));\n                case \"Identifier\":\n                  return m.name === \"css\";\n                default:\n                  return false;\n              }\n            }\n            function w(D) {\n              let T = D.getParentNode(), m = D.getParentNode(1);\n              return m && T.type === \"JSXExpressionContainer\" && m.type === \"JSXAttribute\" && m.name.type === \"JSXIdentifier\" && m.name.name === \"css\";\n            }\n            function E(D) {\n              return D.type === \"Identifier\" && D.name === \"styled\";\n            }\n            function N(D) {\n              return /^[A-Z]/.test(D.object.name) && D.property.name === \"extend\";\n            }\n            function x(D) {\n              let T = D.getValue(), m = D.getParentNode();\n              return I(T, \"GraphQL\") || m && (m.type === \"TaggedTemplateExpression\" && (m.tag.type === \"MemberExpression\" && m.tag.object.name === \"graphql\" && m.tag.property.name === \"experimental\" || m.tag.type === \"Identifier\" && (m.tag.name === \"gql\" || m.tag.name === \"graphql\")) || m.type === \"CallExpression\" && m.callee.type === \"Identifier\" && m.callee.name === \"graphql\");\n            }\n            function I(D, T) {\n              return t(D, s2.Block | s2.Leading, (m) => {\n                let { value: C } = m;\n                return C === ` ${T} `;\n              });\n            }\n            function P(D) {\n              return I(D.getValue(), \"HTML\") || D.match((T) => T.type === \"TemplateLiteral\", (T, m) => T.type === \"TaggedTemplateExpression\" && T.tag.type === \"Identifier\" && T.tag.name === \"html\" && m === \"quasi\");\n            }\n            function $(D) {\n              let { quasis: T } = D;\n              return T.some((m) => {\n                let { value: { cooked: C } } = m;\n                return C === null;\n              });\n            }\n            r.exports = y;\n          } }), rd = te({ \"src/language-js/clean.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Pt(), s2 = /* @__PURE__ */ new Set([\"range\", \"raw\", \"comments\", \"leadingComments\", \"trailingComments\", \"innerComments\", \"extra\", \"start\", \"end\", \"loc\", \"flags\", \"errors\", \"tokens\"]), a = (u) => {\n              for (let i of u.quasis) delete i.value;\n            };\n            function n(u, i, l) {\n              if (u.type === \"Program\" && delete i.sourceType, (u.type === \"BigIntLiteral\" || u.type === \"BigIntLiteralTypeAnnotation\") && i.value && (i.value = i.value.toLowerCase()), (u.type === \"BigIntLiteral\" || u.type === \"Literal\") && i.bigint && (i.bigint = i.bigint.toLowerCase()), u.type === \"DecimalLiteral\" && (i.value = Number(i.value)), u.type === \"Literal\" && i.decimal && (i.decimal = Number(i.decimal)), u.type === \"EmptyStatement\" || u.type === \"JSXText\" || u.type === \"JSXExpressionContainer\" && (u.expression.type === \"Literal\" || u.expression.type === \"StringLiteral\") && u.expression.value === \" \") return null;\n              if ((u.type === \"Property\" || u.type === \"ObjectProperty\" || u.type === \"MethodDefinition\" || u.type === \"ClassProperty\" || u.type === \"ClassMethod\" || u.type === \"PropertyDefinition\" || u.type === \"TSDeclareMethod\" || u.type === \"TSPropertySignature\" || u.type === \"ObjectTypeProperty\") && typeof u.key == \"object\" && u.key && (u.key.type === \"Literal\" || u.key.type === \"NumericLiteral\" || u.key.type === \"StringLiteral\" || u.key.type === \"Identifier\") && delete i.key, u.type === \"JSXElement\" && u.openingElement.name.name === \"style\" && u.openingElement.attributes.some((h) => h.name.name === \"jsx\")) for (let { type: h, expression: g } of i.children) h === \"JSXExpressionContainer\" && g.type === \"TemplateLiteral\" && a(g);\n              u.type === \"JSXAttribute\" && u.name.name === \"css\" && u.value.type === \"JSXExpressionContainer\" && u.value.expression.type === \"TemplateLiteral\" && a(i.value.expression), u.type === \"JSXAttribute\" && u.value && u.value.type === \"Literal\" && /[\"']|&quot;|&apos;/.test(u.value.value) && (i.value.value = i.value.value.replace(/[\"']|&quot;|&apos;/g, '\"'));\n              let p = u.expression || u.callee;\n              if (u.type === \"Decorator\" && p.type === \"CallExpression\" && p.callee.name === \"Component\" && p.arguments.length === 1) {\n                let h = u.expression.arguments[0].properties;\n                for (let [g, c] of i.expression.arguments[0].properties.entries()) switch (h[g].key.name) {\n                  case \"styles\":\n                    c.value.type === \"ArrayExpression\" && a(c.value.elements[0]);\n                    break;\n                  case \"template\":\n                    c.value.type === \"TemplateLiteral\" && a(c.value);\n                    break;\n                }\n              }\n              if (u.type === \"TaggedTemplateExpression\" && (u.tag.type === \"MemberExpression\" || u.tag.type === \"Identifier\" && (u.tag.name === \"gql\" || u.tag.name === \"graphql\" || u.tag.name === \"css\" || u.tag.name === \"md\" || u.tag.name === \"markdown\" || u.tag.name === \"html\") || u.tag.type === \"CallExpression\") && a(i.quasi), u.type === \"TemplateLiteral\") {\n                var y;\n                (((y = u.leadingComments) === null || y === void 0 ? void 0 : y.some((g) => t(g) && [\"GraphQL\", \"HTML\"].some((c) => g.value === ` ${c} `))) || l.type === \"CallExpression\" && l.callee.name === \"graphql\" || !u.leadingComments) && a(i);\n              }\n              if (u.type === \"InterpreterDirective\" && (i.value = i.value.trimEnd()), (u.type === \"TSIntersectionType\" || u.type === \"TSUnionType\") && u.types.length === 1) return i.types[0];\n            }\n            n.ignoredProperties = s2, r.exports = n;\n          } }), io = {};\n          Kt(io, { EOL: () => Wn, arch: () => nd, cpus: () => Do, default: () => vo, endianness: () => ao, freemem: () => po, getNetworkInterfaces: () => ho, hostname: () => oo, loadavg: () => lo, networkInterfaces: () => yo, platform: () => ud, release: () => go, tmpDir: () => $n, tmpdir: () => Vn, totalmem: () => fo, type: () => mo, uptime: () => co });\n          function ao() {\n            if (typeof Tr > \"u\") {\n              var e = new ArrayBuffer(2), r = new Uint8Array(e), t = new Uint16Array(e);\n              if (r[0] = 1, r[1] = 2, t[0] === 258) Tr = \"BE\";\n              else if (t[0] === 513) Tr = \"LE\";\n              else throw new Error(\"unable to figure out endianess\");\n            }\n            return Tr;\n          }\n          function oo() {\n            return typeof globalThis.location < \"u\" ? globalThis.location.hostname : \"\";\n          }\n          function lo() {\n            return [];\n          }\n          function co() {\n            return 0;\n          }\n          function po() {\n            return Number.MAX_VALUE;\n          }\n          function fo() {\n            return Number.MAX_VALUE;\n          }\n          function Do() {\n            return [];\n          }\n          function mo() {\n            return \"Browser\";\n          }\n          function go() {\n            return typeof globalThis.navigator < \"u\" ? globalThis.navigator.appVersion : \"\";\n          }\n          function yo() {\n          }\n          function ho() {\n          }\n          function nd() {\n            return \"javascript\";\n          }\n          function ud() {\n            return \"browser\";\n          }\n          function $n() {\n            return \"/tmp\";\n          }\n          var Tr, Vn, Wn, vo, sd = ht({ \"node-modules-polyfills:os\"() {\n            ne(), Vn = $n, Wn = `\n`, vo = { EOL: Wn, tmpdir: Vn, tmpDir: $n, networkInterfaces: yo, getNetworkInterfaces: ho, release: go, type: mo, cpus: Do, totalmem: fo, freemem: po, uptime: co, loadavg: lo, hostname: oo, endianness: ao };\n          } }), id = te({ \"node-modules-polyfills-commonjs:os\"(e, r) {\n            ne();\n            var t = (sd(), ft(io));\n            if (t && t.default) {\n              r.exports = t.default;\n              for (let s2 in t) r.exports[s2] = t[s2];\n            } else t && (r.exports = t);\n          } }), ad = te({ \"node_modules/detect-newline/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = (s2) => {\n              if (typeof s2 != \"string\") throw new TypeError(\"Expected a string\");\n              let a = s2.match(/(?:\\r?\\n)/g) || [];\n              if (a.length === 0) return;\n              let n = a.filter((i) => i === `\\r\n`).length, u = a.length - n;\n              return n > u ? `\\r\n` : `\n`;\n            };\n            r.exports = t, r.exports.graceful = (s2) => typeof s2 == \"string\" && t(s2) || `\n`;\n          } }), od = te({ \"node_modules/jest-docblock/build/index.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.extract = c, e.parse = F, e.parseWithComments = _, e.print = w, e.strip = f;\n            function r() {\n              let N = id();\n              return r = function() {\n                return N;\n              }, N;\n            }\n            function t() {\n              let N = s2(ad());\n              return t = function() {\n                return N;\n              }, N;\n            }\n            function s2(N) {\n              return N && N.__esModule ? N : { default: N };\n            }\n            var a = /\\*\\/$/, n = /^\\/\\*\\*?/, u = /^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/, i = /(^|\\s+)\\/\\/([^\\r\\n]*)/g, l = /^(\\r?\\n)+/, p = /(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g, y = /(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g, h = /(\\r?\\n|^) *\\* ?/g, g = [];\n            function c(N) {\n              let x = N.match(u);\n              return x ? x[0].trimLeft() : \"\";\n            }\n            function f(N) {\n              let x = N.match(u);\n              return x && x[0] ? N.substring(x[0].length) : N;\n            }\n            function F(N) {\n              return _(N).pragmas;\n            }\n            function _(N) {\n              let x = (0, t().default)(N) || r().EOL;\n              N = N.replace(n, \"\").replace(a, \"\").replace(h, \"$1\");\n              let I = \"\";\n              for (; I !== N; ) I = N, N = N.replace(p, `${x}$1 $2${x}`);\n              N = N.replace(l, \"\").trimRight();\n              let P = /* @__PURE__ */ Object.create(null), $ = N.replace(y, \"\").replace(l, \"\").trimRight(), D;\n              for (; D = y.exec(N); ) {\n                let T = D[2].replace(i, \"\");\n                typeof P[D[1]] == \"string\" || Array.isArray(P[D[1]]) ? P[D[1]] = g.concat(P[D[1]], T) : P[D[1]] = T;\n              }\n              return { comments: $, pragmas: P };\n            }\n            function w(N) {\n              let { comments: x = \"\", pragmas: I = {} } = N, P = (0, t().default)(x) || r().EOL, $ = \"/**\", D = \" *\", T = \" */\", m = Object.keys(I), C = m.map((d) => E(d, I[d])).reduce((d, v) => d.concat(v), []).map((d) => `${D} ${d}${P}`).join(\"\");\n              if (!x) {\n                if (m.length === 0) return \"\";\n                if (m.length === 1 && !Array.isArray(I[m[0]])) {\n                  let d = I[m[0]];\n                  return `${$} ${E(m[0], d)[0]}${T}`;\n                }\n              }\n              let o = x.split(P).map((d) => `${D} ${d}`).join(P) + P;\n              return $ + P + (x ? o : \"\") + (x && m.length ? D + P : \"\") + C + T;\n            }\n            function E(N, x) {\n              return g.concat(x).map((I) => `@${N} ${I}`.trim());\n            }\n          } }), ld = te({ \"src/language-js/utils/get-shebang.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2) {\n              if (!s2.startsWith(\"#!\")) return \"\";\n              let a = s2.indexOf(`\n`);\n              return a === -1 ? s2 : s2.slice(0, a);\n            }\n            r.exports = t;\n          } }), Co = te({ \"src/language-js/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { parseWithComments: t, strip: s2, extract: a, print: n } = od(), { normalizeEndOfLine: u } = Jn(), i = ld();\n            function l(h) {\n              let g = i(h);\n              g && (h = h.slice(g.length + 1));\n              let c = a(h), { pragmas: f, comments: F } = t(c);\n              return { shebang: g, text: h, pragmas: f, comments: F };\n            }\n            function p(h) {\n              let g = Object.keys(l(h).pragmas);\n              return g.includes(\"prettier\") || g.includes(\"format\");\n            }\n            function y(h) {\n              let { shebang: g, text: c, pragmas: f, comments: F } = l(h), _ = s2(c), w = n({ pragmas: Object.assign({ format: \"\" }, f), comments: F.trimStart() });\n              return (g ? `${g}\n` : \"\") + u(w) + (_.startsWith(`\n`) ? `\n` : `\n\n`) + _;\n            }\n            r.exports = { hasPragma: p, insertPragma: y };\n          } }), cd = te({ \"src/language-js/utils/is-type-cast-comment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Pt();\n            function s2(a) {\n              return t(a) && a.value[0] === \"*\" && /@(?:type|satisfies)\\b/.test(a.value);\n            }\n            r.exports = s2;\n          } }), Eo = te({ \"src/language-js/comments.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { getLast: t, hasNewline: s2, getNextNonSpaceNonCommentCharacterIndexWithStartIndex: a, getNextNonSpaceNonCommentCharacter: n, hasNewlineInRange: u, addLeadingComment: i, addTrailingComment: l, addDanglingComment: p, getNextNonSpaceNonCommentCharacterIndex: y, isNonEmptyArray: h } = Ue(), { getFunctionParameters: g, isPrettierIgnoreComment: c, isJsxNode: f, hasFlowShorthandAnnotationComment: F, hasFlowAnnotationComment: _, hasIgnoreComment: w, isCallLikeExpression: E, getCallArguments: N, isCallExpression: x, isMemberExpression: I, isObjectProperty: P, isLineComment: $, getComments: D, CommentCheckFlags: T, markerForIfWithoutBlockAndSameLineComment: m } = Ke(), { locStart: C, locEnd: o } = ut(), d = Pt(), v = cd();\n            function S(De) {\n              return [H, Fe, Q, q, J, L, ie, he, se, ge, we, ke, ce, z, U].some((A) => A(De));\n            }\n            function b(De) {\n              return [R, Fe, V, we, q, J, L, ie, z, Z, fe, ge, Pe, U, X].some((A) => A(De));\n            }\n            function B(De) {\n              return [H, q, J, j, ue, ce, ge, de, K, pe, U, oe].some((A) => A(De));\n            }\n            function k(De, A) {\n              let G = (De.body || De.properties).find((re) => {\n                let { type: ye } = re;\n                return ye !== \"EmptyStatement\";\n              });\n              G ? i(G, A) : p(De, A);\n            }\n            function M(De, A) {\n              De.type === \"BlockStatement\" ? k(De, A) : i(De, A);\n            }\n            function R(De) {\n              let { comment: A, followingNode: G } = De;\n              return G && v(A) ? (i(G, A), true) : false;\n            }\n            function q(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye, text: Ce } = De;\n              if ((re == null ? void 0 : re.type) !== \"IfStatement\" || !ye) return false;\n              if (n(Ce, A, o) === \")\") return l(G, A), true;\n              if (G === re.consequent && ye === re.alternate) {\n                if (G.type === \"BlockStatement\") l(G, A);\n                else {\n                  let ve = A.type === \"SingleLine\" || A.loc.start.line === A.loc.end.line, ze = A.loc.start.line === G.loc.start.line;\n                  ve && ze ? p(G, A, m) : p(re, A);\n                }\n                return true;\n              }\n              return ye.type === \"BlockStatement\" ? (k(ye, A), true) : ye.type === \"IfStatement\" ? (M(ye.consequent, A), true) : re.consequent === ye ? (i(ye, A), true) : false;\n            }\n            function J(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye, text: Ce } = De;\n              return (re == null ? void 0 : re.type) !== \"WhileStatement\" || !ye ? false : n(Ce, A, o) === \")\" ? (l(G, A), true) : ye.type === \"BlockStatement\" ? (k(ye, A), true) : re.body === ye ? (i(ye, A), true) : false;\n            }\n            function L(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye } = De;\n              return (re == null ? void 0 : re.type) !== \"TryStatement\" && (re == null ? void 0 : re.type) !== \"CatchClause\" || !ye ? false : re.type === \"CatchClause\" && G ? (l(G, A), true) : ye.type === \"BlockStatement\" ? (k(ye, A), true) : ye.type === \"TryStatement\" ? (M(ye.finalizer, A), true) : ye.type === \"CatchClause\" ? (M(ye.body, A), true) : false;\n            }\n            function Q(De) {\n              let { comment: A, enclosingNode: G, followingNode: re } = De;\n              return I(G) && (re == null ? void 0 : re.type) === \"Identifier\" ? (i(G, A), true) : false;\n            }\n            function V(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye, text: Ce } = De, Be = G && !u(Ce, o(G), C(A));\n              return (!G || !Be) && ((re == null ? void 0 : re.type) === \"ConditionalExpression\" || (re == null ? void 0 : re.type) === \"TSConditionalType\") && ye ? (i(ye, A), true) : false;\n            }\n            function j(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re } = De;\n              return P(re) && re.shorthand && re.key === G && re.value.type === \"AssignmentPattern\" ? (l(re.value.left, A), true) : false;\n            }\n            var Y = /* @__PURE__ */ new Set([\"ClassDeclaration\", \"ClassExpression\", \"DeclareClass\", \"DeclareInterface\", \"InterfaceDeclaration\", \"TSInterfaceDeclaration\"]);\n            function ie(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye } = De;\n              if (Y.has(re == null ? void 0 : re.type)) {\n                if (h(re.decorators) && !(ye && ye.type === \"Decorator\")) return l(t(re.decorators), A), true;\n                if (re.body && ye === re.body) return k(re.body, A), true;\n                if (ye) {\n                  if (re.superClass && ye === re.superClass && G && (G === re.id || G === re.typeParameters)) return l(G, A), true;\n                  for (let Ce of [\"implements\", \"extends\", \"mixins\"]) if (re[Ce] && ye === re[Ce][0]) return G && (G === re.id || G === re.typeParameters || G === re.superClass) ? l(G, A) : p(re, A, Ce), true;\n                }\n              }\n              return false;\n            }\n            var ee = /* @__PURE__ */ new Set([\"ClassMethod\", \"ClassProperty\", \"PropertyDefinition\", \"TSAbstractPropertyDefinition\", \"TSAbstractMethodDefinition\", \"TSDeclareMethod\", \"MethodDefinition\", \"ClassAccessorProperty\", \"AccessorProperty\", \"TSAbstractAccessorProperty\"]);\n            function ce(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, text: ye } = De;\n              return re && G && n(ye, A, o) === \"(\" && (re.type === \"Property\" || re.type === \"TSDeclareMethod\" || re.type === \"TSAbstractMethodDefinition\") && G.type === \"Identifier\" && re.key === G && n(ye, G, o) !== \":\" || (G == null ? void 0 : G.type) === \"Decorator\" && ee.has(re == null ? void 0 : re.type) ? (l(G, A), true) : false;\n            }\n            var W = /* @__PURE__ */ new Set([\"FunctionDeclaration\", \"FunctionExpression\", \"ClassMethod\", \"MethodDefinition\", \"ObjectMethod\"]);\n            function K(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, text: ye } = De;\n              return n(ye, A, o) !== \"(\" ? false : G && W.has(re == null ? void 0 : re.type) ? (l(G, A), true) : false;\n            }\n            function de(De) {\n              let { comment: A, enclosingNode: G, text: re } = De;\n              if ((G == null ? void 0 : G.type) !== \"ArrowFunctionExpression\") return false;\n              let ye = y(re, A, o);\n              return ye !== false && re.slice(ye, ye + 2) === \"=>\" ? (p(G, A), true) : false;\n            }\n            function ue(De) {\n              let { comment: A, enclosingNode: G, text: re } = De;\n              return n(re, A, o) !== \")\" ? false : G && (le(G) && g(G).length === 0 || E(G) && N(G).length === 0) ? (p(G, A), true) : ((G == null ? void 0 : G.type) === \"MethodDefinition\" || (G == null ? void 0 : G.type) === \"TSAbstractMethodDefinition\") && g(G.value).length === 0 ? (p(G.value, A), true) : false;\n            }\n            function Fe(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye, text: Ce } = De;\n              if ((G == null ? void 0 : G.type) === \"FunctionTypeParam\" && (re == null ? void 0 : re.type) === \"FunctionTypeAnnotation\" && (ye == null ? void 0 : ye.type) !== \"FunctionTypeParam\" || ((G == null ? void 0 : G.type) === \"Identifier\" || (G == null ? void 0 : G.type) === \"AssignmentPattern\") && re && le(re) && n(Ce, A, o) === \")\") return l(G, A), true;\n              if ((re == null ? void 0 : re.type) === \"FunctionDeclaration\" && (ye == null ? void 0 : ye.type) === \"BlockStatement\") {\n                let Be = (() => {\n                  let ve = g(re);\n                  if (ve.length > 0) return a(Ce, o(t(ve)));\n                  let ze = a(Ce, o(re.id));\n                  return ze !== false && a(Ce, ze + 1);\n                })();\n                if (C(A) > Be) return k(ye, A), true;\n              }\n              return false;\n            }\n            function z(De) {\n              let { comment: A, enclosingNode: G } = De;\n              return (G == null ? void 0 : G.type) === \"LabeledStatement\" ? (i(G, A), true) : false;\n            }\n            function U(De) {\n              let { comment: A, enclosingNode: G } = De;\n              return ((G == null ? void 0 : G.type) === \"ContinueStatement\" || (G == null ? void 0 : G.type) === \"BreakStatement\") && !G.label ? (l(G, A), true) : false;\n            }\n            function Z(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re } = De;\n              return x(re) && G && re.callee === G && re.arguments.length > 0 ? (i(re.arguments[0], A), true) : false;\n            }\n            function se(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye } = De;\n              return (re == null ? void 0 : re.type) === \"UnionTypeAnnotation\" || (re == null ? void 0 : re.type) === \"TSUnionType\" ? (c(A) && (ye.prettierIgnore = true, A.unignore = true), G ? (l(G, A), true) : false) : (((ye == null ? void 0 : ye.type) === \"UnionTypeAnnotation\" || (ye == null ? void 0 : ye.type) === \"TSUnionType\") && c(A) && (ye.types[0].prettierIgnore = true, A.unignore = true), false);\n            }\n            function fe(De) {\n              let { comment: A, enclosingNode: G } = De;\n              return P(G) ? (i(G, A), true) : false;\n            }\n            function ge(De) {\n              let { comment: A, enclosingNode: G, followingNode: re, ast: ye, isLastComment: Ce } = De;\n              return ye && ye.body && ye.body.length === 0 ? (Ce ? p(ye, A) : i(ye, A), true) : (G == null ? void 0 : G.type) === \"Program\" && (G == null ? void 0 : G.body.length) === 0 && !h(G.directives) ? (Ce ? p(G, A) : i(G, A), true) : (re == null ? void 0 : re.type) === \"Program\" && (re == null ? void 0 : re.body.length) === 0 && (G == null ? void 0 : G.type) === \"ModuleExpression\" ? (p(re, A), true) : false;\n            }\n            function he(De) {\n              let { comment: A, enclosingNode: G } = De;\n              return (G == null ? void 0 : G.type) === \"ForInStatement\" || (G == null ? void 0 : G.type) === \"ForOfStatement\" ? (i(G, A), true) : false;\n            }\n            function we(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, text: ye } = De;\n              if ((re == null ? void 0 : re.type) === \"ImportSpecifier\" || (re == null ? void 0 : re.type) === \"ExportSpecifier\") return i(re, A), true;\n              let Ce = (G == null ? void 0 : G.type) === \"ImportSpecifier\" && (re == null ? void 0 : re.type) === \"ImportDeclaration\", Be = (G == null ? void 0 : G.type) === \"ExportSpecifier\" && (re == null ? void 0 : re.type) === \"ExportNamedDeclaration\";\n              return (Ce || Be) && s2(ye, o(A)) ? (l(G, A), true) : false;\n            }\n            function ke(De) {\n              let { comment: A, enclosingNode: G } = De;\n              return (G == null ? void 0 : G.type) === \"AssignmentPattern\" ? (i(G, A), true) : false;\n            }\n            var Re = /* @__PURE__ */ new Set([\"VariableDeclarator\", \"AssignmentExpression\", \"TypeAlias\", \"TSTypeAliasDeclaration\"]), Ne = /* @__PURE__ */ new Set([\"ObjectExpression\", \"ArrayExpression\", \"TemplateLiteral\", \"TaggedTemplateExpression\", \"ObjectTypeAnnotation\", \"TSTypeLiteral\"]);\n            function Pe(De) {\n              let { comment: A, enclosingNode: G, followingNode: re } = De;\n              return Re.has(G == null ? void 0 : G.type) && re && (Ne.has(re.type) || d(A)) ? (i(re, A), true) : false;\n            }\n            function oe(De) {\n              let { comment: A, enclosingNode: G, followingNode: re, text: ye } = De;\n              return !re && ((G == null ? void 0 : G.type) === \"TSMethodSignature\" || (G == null ? void 0 : G.type) === \"TSDeclareFunction\" || (G == null ? void 0 : G.type) === \"TSAbstractMethodDefinition\") && n(ye, A, o) === \";\" ? (l(G, A), true) : false;\n            }\n            function H(De) {\n              let { comment: A, enclosingNode: G, followingNode: re } = De;\n              if (c(A) && (G == null ? void 0 : G.type) === \"TSMappedType\" && (re == null ? void 0 : re.type) === \"TSTypeParameter\" && re.constraint) return G.prettierIgnore = true, A.unignore = true, true;\n            }\n            function pe(De) {\n              let { comment: A, precedingNode: G, enclosingNode: re, followingNode: ye } = De;\n              return (re == null ? void 0 : re.type) !== \"TSMappedType\" ? false : (ye == null ? void 0 : ye.type) === \"TSTypeParameter\" && ye.name ? (i(ye.name, A), true) : (G == null ? void 0 : G.type) === \"TSTypeParameter\" && G.constraint ? (l(G.constraint, A), true) : false;\n            }\n            function X(De) {\n              let { comment: A, enclosingNode: G, followingNode: re } = De;\n              return !G || G.type !== \"SwitchCase\" || G.test || !re || re !== G.consequent[0] ? false : (re.type === \"BlockStatement\" && $(A) ? k(re, A) : p(G, A), true);\n            }\n            function le(De) {\n              return De.type === \"ArrowFunctionExpression\" || De.type === \"FunctionExpression\" || De.type === \"FunctionDeclaration\" || De.type === \"ObjectMethod\" || De.type === \"ClassMethod\" || De.type === \"TSDeclareFunction\" || De.type === \"TSCallSignatureDeclaration\" || De.type === \"TSConstructSignatureDeclaration\" || De.type === \"TSMethodSignature\" || De.type === \"TSConstructorType\" || De.type === \"TSFunctionType\" || De.type === \"TSDeclareMethod\";\n            }\n            function Ae(De, A) {\n              if ((A.parser === \"typescript\" || A.parser === \"flow\" || A.parser === \"acorn\" || A.parser === \"espree\" || A.parser === \"meriyah\" || A.parser === \"__babel_estree\") && De.type === \"MethodDefinition\" && De.value && De.value.type === \"FunctionExpression\" && g(De.value).length === 0 && !De.value.returnType && !h(De.value.typeParameters) && De.value.body) return [...De.decorators || [], De.key, De.value.body];\n            }\n            function Ee(De) {\n              let A = De.getValue(), G = De.getParentNode(), re = (ye) => _(D(ye, T.Leading)) || _(D(ye, T.Trailing));\n              return (A && (f(A) || F(A) || x(G) && re(A)) || G && (G.type === \"JSXSpreadAttribute\" || G.type === \"JSXSpreadChild\" || G.type === \"UnionTypeAnnotation\" || G.type === \"TSUnionType\" || (G.type === \"ClassDeclaration\" || G.type === \"ClassExpression\") && G.superClass === A)) && (!w(De) || G.type === \"UnionTypeAnnotation\" || G.type === \"TSUnionType\");\n            }\n            r.exports = { handleOwnLineComment: S, handleEndOfLineComment: b, handleRemainingComment: B, getCommentChildNodes: Ae, willPrintOwnComments: Ee };\n          } }), qt = te({ \"src/language-js/needs-parens.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), s2 = Kn(), { getFunctionParameters: a, getLeftSidePathName: n, hasFlowShorthandAnnotationComment: u, hasNakedLeftSide: i, hasNode: l, isBitwiseOperator: p, startsWithNoLookaheadToken: y, shouldFlatten: h, getPrecedence: g, isCallExpression: c, isMemberExpression: f, isObjectProperty: F, isTSTypeExpression: _ } = Ke();\n            function w(D, T) {\n              let m = D.getParentNode();\n              if (!m) return false;\n              let C = D.getName(), o = D.getNode();\n              if (T.__isInHtmlInterpolation && !T.bracketSpacing && I(o) && P(D)) return true;\n              if (E(o)) return false;\n              if (T.parser !== \"flow\" && u(D.getValue())) return true;\n              if (o.type === \"Identifier\") {\n                if (o.extra && o.extra.parenthesized && /^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/.test(o.name) || C === \"left\" && (o.name === \"async\" && !m.await || o.name === \"let\") && m.type === \"ForOfStatement\") return true;\n                if (o.name === \"let\") {\n                  var d;\n                  let S = (d = D.findAncestor((b) => b.type === \"ForOfStatement\")) === null || d === void 0 ? void 0 : d.left;\n                  if (S && y(S, (b) => b === o)) return true;\n                }\n                if (C === \"object\" && o.name === \"let\" && m.type === \"MemberExpression\" && m.computed && !m.optional) {\n                  let S = D.findAncestor((B) => B.type === \"ExpressionStatement\" || B.type === \"ForStatement\" || B.type === \"ForInStatement\"), b = S ? S.type === \"ExpressionStatement\" ? S.expression : S.type === \"ForStatement\" ? S.init : S.left : void 0;\n                  if (b && y(b, (B) => B === o)) return true;\n                }\n                return false;\n              }\n              if (o.type === \"ObjectExpression\" || o.type === \"FunctionExpression\" || o.type === \"ClassExpression\" || o.type === \"DoExpression\") {\n                var v;\n                let S = (v = D.findAncestor((b) => b.type === \"ExpressionStatement\")) === null || v === void 0 ? void 0 : v.expression;\n                if (S && y(S, (b) => b === o)) return true;\n              }\n              switch (m.type) {\n                case \"ParenthesizedExpression\":\n                  return false;\n                case \"ClassDeclaration\":\n                case \"ClassExpression\": {\n                  if (C === \"superClass\" && (o.type === \"ArrowFunctionExpression\" || o.type === \"AssignmentExpression\" || o.type === \"AwaitExpression\" || o.type === \"BinaryExpression\" || o.type === \"ConditionalExpression\" || o.type === \"LogicalExpression\" || o.type === \"NewExpression\" || o.type === \"ObjectExpression\" || o.type === \"SequenceExpression\" || o.type === \"TaggedTemplateExpression\" || o.type === \"UnaryExpression\" || o.type === \"UpdateExpression\" || o.type === \"YieldExpression\" || o.type === \"TSNonNullExpression\")) return true;\n                  break;\n                }\n                case \"ExportDefaultDeclaration\":\n                  return $(D, T) || o.type === \"SequenceExpression\";\n                case \"Decorator\": {\n                  if (C === \"expression\") {\n                    if (f(o) && o.computed) return true;\n                    let S = false, b = false, B = o;\n                    for (; B; ) switch (B.type) {\n                      case \"MemberExpression\":\n                        b = true, B = B.object;\n                        break;\n                      case \"CallExpression\":\n                        if (b || S) return T.parser !== \"typescript\";\n                        S = true, B = B.callee;\n                        break;\n                      case \"Identifier\":\n                        return false;\n                      case \"TaggedTemplateExpression\":\n                        return T.parser !== \"typescript\";\n                      default:\n                        return true;\n                    }\n                    return true;\n                  }\n                  break;\n                }\n                case \"ArrowFunctionExpression\": {\n                  if (C === \"body\" && o.type !== \"SequenceExpression\" && y(o, (S) => S.type === \"ObjectExpression\")) return true;\n                  break;\n                }\n              }\n              switch (o.type) {\n                case \"UpdateExpression\":\n                  if (m.type === \"UnaryExpression\") return o.prefix && (o.operator === \"++\" && m.operator === \"+\" || o.operator === \"--\" && m.operator === \"-\");\n                case \"UnaryExpression\":\n                  switch (m.type) {\n                    case \"UnaryExpression\":\n                      return o.operator === m.operator && (o.operator === \"+\" || o.operator === \"-\");\n                    case \"BindExpression\":\n                      return true;\n                    case \"MemberExpression\":\n                    case \"OptionalMemberExpression\":\n                      return C === \"object\";\n                    case \"TaggedTemplateExpression\":\n                      return true;\n                    case \"NewExpression\":\n                    case \"CallExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"BinaryExpression\":\n                      return C === \"left\" && m.operator === \"**\";\n                    case \"TSNonNullExpression\":\n                      return true;\n                    default:\n                      return false;\n                  }\n                case \"BinaryExpression\": {\n                  if (m.type === \"UpdateExpression\" || o.operator === \"in\" && N(D)) return true;\n                  if (o.operator === \"|>\" && o.extra && o.extra.parenthesized) {\n                    let S = D.getParentNode(1);\n                    if (S.type === \"BinaryExpression\" && S.operator === \"|>\") return true;\n                  }\n                }\n                case \"TSTypeAssertion\":\n                case \"TSAsExpression\":\n                case \"TSSatisfiesExpression\":\n                case \"LogicalExpression\":\n                  switch (m.type) {\n                    case \"TSSatisfiesExpression\":\n                    case \"TSAsExpression\":\n                      return !_(o);\n                    case \"ConditionalExpression\":\n                      return _(o);\n                    case \"CallExpression\":\n                    case \"NewExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"ClassExpression\":\n                    case \"ClassDeclaration\":\n                      return C === \"superClass\";\n                    case \"TSTypeAssertion\":\n                    case \"TaggedTemplateExpression\":\n                    case \"UnaryExpression\":\n                    case \"JSXSpreadAttribute\":\n                    case \"SpreadElement\":\n                    case \"SpreadProperty\":\n                    case \"BindExpression\":\n                    case \"AwaitExpression\":\n                    case \"TSNonNullExpression\":\n                    case \"UpdateExpression\":\n                      return true;\n                    case \"MemberExpression\":\n                    case \"OptionalMemberExpression\":\n                      return C === \"object\";\n                    case \"AssignmentExpression\":\n                    case \"AssignmentPattern\":\n                      return C === \"left\" && (o.type === \"TSTypeAssertion\" || _(o));\n                    case \"LogicalExpression\":\n                      if (o.type === \"LogicalExpression\") return m.operator !== o.operator;\n                    case \"BinaryExpression\": {\n                      let { operator: S, type: b } = o;\n                      if (!S && b !== \"TSTypeAssertion\") return true;\n                      let B = g(S), k = m.operator, M = g(k);\n                      return M > B || C === \"right\" && M === B || M === B && !h(k, S) ? true : M < B && S === \"%\" ? k === \"+\" || k === \"-\" : !!p(k);\n                    }\n                    default:\n                      return false;\n                  }\n                case \"SequenceExpression\":\n                  switch (m.type) {\n                    case \"ReturnStatement\":\n                      return false;\n                    case \"ForStatement\":\n                      return false;\n                    case \"ExpressionStatement\":\n                      return C !== \"expression\";\n                    case \"ArrowFunctionExpression\":\n                      return C !== \"body\";\n                    default:\n                      return true;\n                  }\n                case \"YieldExpression\":\n                  if (m.type === \"UnaryExpression\" || m.type === \"AwaitExpression\" || _(m) || m.type === \"TSNonNullExpression\") return true;\n                case \"AwaitExpression\":\n                  switch (m.type) {\n                    case \"TaggedTemplateExpression\":\n                    case \"UnaryExpression\":\n                    case \"LogicalExpression\":\n                    case \"SpreadElement\":\n                    case \"SpreadProperty\":\n                    case \"TSAsExpression\":\n                    case \"TSSatisfiesExpression\":\n                    case \"TSNonNullExpression\":\n                    case \"BindExpression\":\n                      return true;\n                    case \"MemberExpression\":\n                    case \"OptionalMemberExpression\":\n                      return C === \"object\";\n                    case \"NewExpression\":\n                    case \"CallExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"ConditionalExpression\":\n                      return C === \"test\";\n                    case \"BinaryExpression\":\n                      return !(!o.argument && m.operator === \"|>\");\n                    default:\n                      return false;\n                  }\n                case \"TSConditionalType\":\n                case \"TSFunctionType\":\n                case \"TSConstructorType\":\n                  if (C === \"extendsType\" && m.type === \"TSConditionalType\") {\n                    if (o.type === \"TSConditionalType\") return true;\n                    let { typeAnnotation: S } = o.returnType || o.typeAnnotation;\n                    if (S.type === \"TSTypePredicate\" && S.typeAnnotation && (S = S.typeAnnotation.typeAnnotation), S.type === \"TSInferType\" && S.typeParameter.constraint) return true;\n                  }\n                  if (C === \"checkType\" && m.type === \"TSConditionalType\") return true;\n                case \"TSUnionType\":\n                case \"TSIntersectionType\":\n                  if ((m.type === \"TSUnionType\" || m.type === \"TSIntersectionType\") && m.types.length > 1 && (!o.types || o.types.length > 1)) return true;\n                case \"TSInferType\":\n                  if (o.type === \"TSInferType\" && m.type === \"TSRestType\") return false;\n                case \"TSTypeOperator\":\n                  return m.type === \"TSArrayType\" || m.type === \"TSOptionalType\" || m.type === \"TSRestType\" || C === \"objectType\" && m.type === \"TSIndexedAccessType\" || m.type === \"TSTypeOperator\" || m.type === \"TSTypeAnnotation\" && D.getParentNode(1).type.startsWith(\"TSJSDoc\");\n                case \"TSTypeQuery\":\n                  return C === \"objectType\" && m.type === \"TSIndexedAccessType\" || C === \"elementType\" && m.type === \"TSArrayType\";\n                case \"TypeofTypeAnnotation\":\n                  return C === \"objectType\" && (m.type === \"IndexedAccessType\" || m.type === \"OptionalIndexedAccessType\") || C === \"elementType\" && m.type === \"ArrayTypeAnnotation\";\n                case \"ArrayTypeAnnotation\":\n                  return m.type === \"NullableTypeAnnotation\";\n                case \"IntersectionTypeAnnotation\":\n                case \"UnionTypeAnnotation\":\n                  return m.type === \"ArrayTypeAnnotation\" || m.type === \"NullableTypeAnnotation\" || m.type === \"IntersectionTypeAnnotation\" || m.type === \"UnionTypeAnnotation\" || C === \"objectType\" && (m.type === \"IndexedAccessType\" || m.type === \"OptionalIndexedAccessType\");\n                case \"NullableTypeAnnotation\":\n                  return m.type === \"ArrayTypeAnnotation\" || C === \"objectType\" && (m.type === \"IndexedAccessType\" || m.type === \"OptionalIndexedAccessType\");\n                case \"FunctionTypeAnnotation\": {\n                  let S = m.type === \"NullableTypeAnnotation\" ? D.getParentNode(1) : m;\n                  return S.type === \"UnionTypeAnnotation\" || S.type === \"IntersectionTypeAnnotation\" || S.type === \"ArrayTypeAnnotation\" || C === \"objectType\" && (S.type === \"IndexedAccessType\" || S.type === \"OptionalIndexedAccessType\") || S.type === \"NullableTypeAnnotation\" || m.type === \"FunctionTypeParam\" && m.name === null && a(o).some((b) => b.typeAnnotation && b.typeAnnotation.type === \"NullableTypeAnnotation\");\n                }\n                case \"OptionalIndexedAccessType\":\n                  return C === \"objectType\" && m.type === \"IndexedAccessType\";\n                case \"StringLiteral\":\n                case \"NumericLiteral\":\n                case \"Literal\":\n                  if (typeof o.value == \"string\" && m.type === \"ExpressionStatement\" && !m.directive) {\n                    let S = D.getParentNode(1);\n                    return S.type === \"Program\" || S.type === \"BlockStatement\";\n                  }\n                  return C === \"object\" && m.type === \"MemberExpression\" && typeof o.value == \"number\";\n                case \"AssignmentExpression\": {\n                  let S = D.getParentNode(1);\n                  return C === \"body\" && m.type === \"ArrowFunctionExpression\" ? true : C === \"key\" && (m.type === \"ClassProperty\" || m.type === \"PropertyDefinition\") && m.computed || (C === \"init\" || C === \"update\") && m.type === \"ForStatement\" ? false : m.type === \"ExpressionStatement\" ? o.left.type === \"ObjectPattern\" : !(C === \"key\" && m.type === \"TSPropertySignature\" || m.type === \"AssignmentExpression\" || m.type === \"SequenceExpression\" && S && S.type === \"ForStatement\" && (S.init === m || S.update === m) || C === \"value\" && m.type === \"Property\" && S && S.type === \"ObjectPattern\" && S.properties.includes(m) || m.type === \"NGChainedExpression\");\n                }\n                case \"ConditionalExpression\":\n                  switch (m.type) {\n                    case \"TaggedTemplateExpression\":\n                    case \"UnaryExpression\":\n                    case \"SpreadElement\":\n                    case \"SpreadProperty\":\n                    case \"BinaryExpression\":\n                    case \"LogicalExpression\":\n                    case \"NGPipeExpression\":\n                    case \"ExportDefaultDeclaration\":\n                    case \"AwaitExpression\":\n                    case \"JSXSpreadAttribute\":\n                    case \"TSTypeAssertion\":\n                    case \"TypeCastExpression\":\n                    case \"TSAsExpression\":\n                    case \"TSSatisfiesExpression\":\n                    case \"TSNonNullExpression\":\n                      return true;\n                    case \"NewExpression\":\n                    case \"CallExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"ConditionalExpression\":\n                      return C === \"test\";\n                    case \"MemberExpression\":\n                    case \"OptionalMemberExpression\":\n                      return C === \"object\";\n                    default:\n                      return false;\n                  }\n                case \"FunctionExpression\":\n                  switch (m.type) {\n                    case \"NewExpression\":\n                    case \"CallExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"TaggedTemplateExpression\":\n                      return true;\n                    default:\n                      return false;\n                  }\n                case \"ArrowFunctionExpression\":\n                  switch (m.type) {\n                    case \"BinaryExpression\":\n                      return m.operator !== \"|>\" || o.extra && o.extra.parenthesized;\n                    case \"NewExpression\":\n                    case \"CallExpression\":\n                    case \"OptionalCallExpression\":\n                      return C === \"callee\";\n                    case \"MemberExpression\":\n                    case \"OptionalMemberExpression\":\n                      return C === \"object\";\n                    case \"TSAsExpression\":\n                    case \"TSSatisfiesExpression\":\n                    case \"TSNonNullExpression\":\n                    case \"BindExpression\":\n                    case \"TaggedTemplateExpression\":\n                    case \"UnaryExpression\":\n                    case \"LogicalExpression\":\n                    case \"AwaitExpression\":\n                    case \"TSTypeAssertion\":\n                      return true;\n                    case \"ConditionalExpression\":\n                      return C === \"test\";\n                    default:\n                      return false;\n                  }\n                case \"ClassExpression\":\n                  if (s2(o.decorators)) return true;\n                  switch (m.type) {\n                    case \"NewExpression\":\n                      return C === \"callee\";\n                    default:\n                      return false;\n                  }\n                case \"OptionalMemberExpression\":\n                case \"OptionalCallExpression\": {\n                  let S = D.getParentNode(1);\n                  if (C === \"object\" && m.type === \"MemberExpression\" || C === \"callee\" && (m.type === \"CallExpression\" || m.type === \"NewExpression\") || m.type === \"TSNonNullExpression\" && S.type === \"MemberExpression\" && S.object === m) return true;\n                }\n                case \"CallExpression\":\n                case \"MemberExpression\":\n                case \"TaggedTemplateExpression\":\n                case \"TSNonNullExpression\":\n                  if (C === \"callee\" && (m.type === \"BindExpression\" || m.type === \"NewExpression\")) {\n                    let S = o;\n                    for (; S; ) switch (S.type) {\n                      case \"CallExpression\":\n                      case \"OptionalCallExpression\":\n                        return true;\n                      case \"MemberExpression\":\n                      case \"OptionalMemberExpression\":\n                      case \"BindExpression\":\n                        S = S.object;\n                        break;\n                      case \"TaggedTemplateExpression\":\n                        S = S.tag;\n                        break;\n                      case \"TSNonNullExpression\":\n                        S = S.expression;\n                        break;\n                      default:\n                        return false;\n                    }\n                  }\n                  return false;\n                case \"BindExpression\":\n                  return C === \"callee\" && (m.type === \"BindExpression\" || m.type === \"NewExpression\") || C === \"object\" && f(m);\n                case \"NGPipeExpression\":\n                  return !(m.type === \"NGRoot\" || m.type === \"NGMicrosyntaxExpression\" || m.type === \"ObjectProperty\" && !(o.extra && o.extra.parenthesized) || m.type === \"ArrayExpression\" || c(m) && m.arguments[C] === o || C === \"right\" && m.type === \"NGPipeExpression\" || C === \"property\" && m.type === \"MemberExpression\" || m.type === \"AssignmentExpression\");\n                case \"JSXFragment\":\n                case \"JSXElement\":\n                  return C === \"callee\" || C === \"left\" && m.type === \"BinaryExpression\" && m.operator === \"<\" || m.type !== \"ArrayExpression\" && m.type !== \"ArrowFunctionExpression\" && m.type !== \"AssignmentExpression\" && m.type !== \"AssignmentPattern\" && m.type !== \"BinaryExpression\" && m.type !== \"NewExpression\" && m.type !== \"ConditionalExpression\" && m.type !== \"ExpressionStatement\" && m.type !== \"JsExpressionRoot\" && m.type !== \"JSXAttribute\" && m.type !== \"JSXElement\" && m.type !== \"JSXExpressionContainer\" && m.type !== \"JSXFragment\" && m.type !== \"LogicalExpression\" && !c(m) && !F(m) && m.type !== \"ReturnStatement\" && m.type !== \"ThrowStatement\" && m.type !== \"TypeCastExpression\" && m.type !== \"VariableDeclarator\" && m.type !== \"YieldExpression\";\n                case \"TypeAnnotation\":\n                  return C === \"returnType\" && m.type === \"ArrowFunctionExpression\" && x(o);\n              }\n              return false;\n            }\n            function E(D) {\n              return D.type === \"BlockStatement\" || D.type === \"BreakStatement\" || D.type === \"ClassBody\" || D.type === \"ClassDeclaration\" || D.type === \"ClassMethod\" || D.type === \"ClassProperty\" || D.type === \"PropertyDefinition\" || D.type === \"ClassPrivateProperty\" || D.type === \"ContinueStatement\" || D.type === \"DebuggerStatement\" || D.type === \"DeclareClass\" || D.type === \"DeclareExportAllDeclaration\" || D.type === \"DeclareExportDeclaration\" || D.type === \"DeclareFunction\" || D.type === \"DeclareInterface\" || D.type === \"DeclareModule\" || D.type === \"DeclareModuleExports\" || D.type === \"DeclareVariable\" || D.type === \"DoWhileStatement\" || D.type === \"EnumDeclaration\" || D.type === \"ExportAllDeclaration\" || D.type === \"ExportDefaultDeclaration\" || D.type === \"ExportNamedDeclaration\" || D.type === \"ExpressionStatement\" || D.type === \"ForInStatement\" || D.type === \"ForOfStatement\" || D.type === \"ForStatement\" || D.type === \"FunctionDeclaration\" || D.type === \"IfStatement\" || D.type === \"ImportDeclaration\" || D.type === \"InterfaceDeclaration\" || D.type === \"LabeledStatement\" || D.type === \"MethodDefinition\" || D.type === \"ReturnStatement\" || D.type === \"SwitchStatement\" || D.type === \"ThrowStatement\" || D.type === \"TryStatement\" || D.type === \"TSDeclareFunction\" || D.type === \"TSEnumDeclaration\" || D.type === \"TSImportEqualsDeclaration\" || D.type === \"TSInterfaceDeclaration\" || D.type === \"TSModuleDeclaration\" || D.type === \"TSNamespaceExportDeclaration\" || D.type === \"TypeAlias\" || D.type === \"VariableDeclaration\" || D.type === \"WhileStatement\" || D.type === \"WithStatement\";\n            }\n            function N(D) {\n              let T = 0, m = D.getValue();\n              for (; m; ) {\n                let C = D.getParentNode(T++);\n                if (C && C.type === \"ForStatement\" && C.init === m) return true;\n                m = C;\n              }\n              return false;\n            }\n            function x(D) {\n              return l(D, (T) => T.type === \"ObjectTypeAnnotation\" && l(T, (m) => m.type === \"FunctionTypeAnnotation\" || void 0) || void 0);\n            }\n            function I(D) {\n              switch (D.type) {\n                case \"ObjectExpression\":\n                  return true;\n                default:\n                  return false;\n              }\n            }\n            function P(D) {\n              let T = D.getValue(), m = D.getParentNode(), C = D.getName();\n              switch (m.type) {\n                case \"NGPipeExpression\":\n                  if (typeof C == \"number\" && m.arguments[C] === T && m.arguments.length - 1 === C) return D.callParent(P);\n                  break;\n                case \"ObjectProperty\":\n                  if (C === \"value\") {\n                    let o = D.getParentNode(1);\n                    return t(o.properties) === m;\n                  }\n                  break;\n                case \"BinaryExpression\":\n                case \"LogicalExpression\":\n                  if (C === \"right\") return D.callParent(P);\n                  break;\n                case \"ConditionalExpression\":\n                  if (C === \"alternate\") return D.callParent(P);\n                  break;\n                case \"UnaryExpression\":\n                  if (m.prefix) return D.callParent(P);\n                  break;\n              }\n              return false;\n            }\n            function $(D, T) {\n              let m = D.getValue(), C = D.getParentNode();\n              return m.type === \"FunctionExpression\" || m.type === \"ClassExpression\" ? C.type === \"ExportDefaultDeclaration\" || !w(D, T) : !i(m) || C.type !== \"ExportDefaultDeclaration\" && w(D, T) ? false : D.call((o) => $(o, T), ...n(D, m));\n            }\n            r.exports = w;\n          } }), Fo = te({ \"src/language-js/print-preprocess.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a) {\n              switch (a.parser) {\n                case \"json\":\n                case \"json5\":\n                case \"json-stringify\":\n                case \"__js_expression\":\n                case \"__vue_expression\":\n                case \"__vue_ts_expression\":\n                  return Object.assign(Object.assign({}, s2), {}, { type: a.parser.startsWith(\"__\") ? \"JsExpressionRoot\" : \"JsonRoot\", node: s2, comments: [], rootMarker: a.rootMarker });\n                default:\n                  return s2;\n              }\n            }\n            r.exports = t;\n          } }), pd = te({ \"src/language-js/print/html-binding.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { join: t, line: s2, group: a, softline: n, indent: u } } = qe();\n            function i(p, y, h) {\n              let g = p.getValue();\n              if (y.__onHtmlBindingRoot && p.getName() === null && y.__onHtmlBindingRoot(g, y), g.type === \"File\") {\n                if (y.__isVueForBindingLeft) return p.call((c) => {\n                  let f = t([\",\", s2], c.map(h, \"params\")), { params: F } = c.getValue();\n                  return F.length === 1 ? f : [\"(\", u([n, a(f)]), n, \")\"];\n                }, \"program\", \"body\", 0);\n                if (y.__isVueBindings) return p.call((c) => t([\",\", s2], c.map(h, \"params\")), \"program\", \"body\", 0);\n              }\n            }\n            function l(p) {\n              switch (p.type) {\n                case \"MemberExpression\":\n                  switch (p.property.type) {\n                    case \"Identifier\":\n                    case \"NumericLiteral\":\n                    case \"StringLiteral\":\n                      return l(p.object);\n                  }\n                  return false;\n                case \"Identifier\":\n                  return true;\n                default:\n                  return false;\n              }\n            }\n            r.exports = { isVueEventBindingExpression: l, printHtmlBinding: i };\n          } }), ru = te({ \"src/language-js/print/binaryish.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printComments: t } = et(), { getLast: s2 } = Ue(), { builders: { join: a, line: n, softline: u, group: i, indent: l, align: p, indentIfBreak: y }, utils: { cleanDoc: h, getDocParts: g, isConcat: c } } = qe(), { hasLeadingOwnLineComment: f, isBinaryish: F, isJsxNode: _, shouldFlatten: w, hasComment: E, CommentCheckFlags: N, isCallExpression: x, isMemberExpression: I, isObjectProperty: P, isEnabledHackPipeline: $ } = Ke(), D = 0;\n            function T(o, d, v) {\n              let S = o.getValue(), b = o.getParentNode(), B = o.getParentNode(1), k = S !== b.body && (b.type === \"IfStatement\" || b.type === \"WhileStatement\" || b.type === \"SwitchStatement\" || b.type === \"DoWhileStatement\"), M = $(d) && S.operator === \"|>\", R = m(o, v, d, false, k);\n              if (k) return R;\n              if (M) return i(R);\n              if (x(b) && b.callee === S || b.type === \"UnaryExpression\" || I(b) && !b.computed) return i([l([u, ...R]), u]);\n              let q = b.type === \"ReturnStatement\" || b.type === \"ThrowStatement\" || b.type === \"JSXExpressionContainer\" && B.type === \"JSXAttribute\" || S.operator !== \"|\" && b.type === \"JsExpressionRoot\" || S.type !== \"NGPipeExpression\" && (b.type === \"NGRoot\" && d.parser === \"__ng_binding\" || b.type === \"NGMicrosyntaxExpression\" && B.type === \"NGMicrosyntax\" && B.body.length === 1) || S === b.body && b.type === \"ArrowFunctionExpression\" || S !== b.body && b.type === \"ForStatement\" || b.type === \"ConditionalExpression\" && B.type !== \"ReturnStatement\" && B.type !== \"ThrowStatement\" && !x(B) || b.type === \"TemplateLiteral\", J = b.type === \"AssignmentExpression\" || b.type === \"VariableDeclarator\" || b.type === \"ClassProperty\" || b.type === \"PropertyDefinition\" || b.type === \"TSAbstractPropertyDefinition\" || b.type === \"ClassPrivateProperty\" || P(b), L = F(S.left) && w(S.operator, S.left.operator);\n              if (q || C(S) && !L || !C(S) && J) return i(R);\n              if (R.length === 0) return \"\";\n              let Q = _(S.right), V = R.findIndex((W) => typeof W != \"string\" && !Array.isArray(W) && W.type === \"group\"), j = R.slice(0, V === -1 ? 1 : V + 1), Y = R.slice(j.length, Q ? -1 : void 0), ie = Symbol(\"logicalChain-\" + ++D), ee = i([...j, l(Y)], { id: ie });\n              if (!Q) return ee;\n              let ce = s2(R);\n              return i([ee, y(ce, { groupId: ie })]);\n            }\n            function m(o, d, v, S, b) {\n              let B = o.getValue();\n              if (!F(B)) return [i(d())];\n              let k = [];\n              w(B.operator, B.left.operator) ? k = o.call((Y) => m(Y, d, v, true, b), \"left\") : k.push(i(d(\"left\")));\n              let M = C(B), R = (B.operator === \"|>\" || B.type === \"NGPipeExpression\" || B.operator === \"|\" && v.parser === \"__vue_expression\") && !f(v.originalText, B.right), q = B.type === \"NGPipeExpression\" ? \"|\" : B.operator, J = B.type === \"NGPipeExpression\" && B.arguments.length > 0 ? i(l([n, \": \", a([n, \": \"], o.map(d, \"arguments\").map((Y) => p(2, i(Y))))])) : \"\", L;\n              if (M) L = [q, \" \", d(\"right\"), J];\n              else {\n                let ie = $(v) && q === \"|>\" ? o.call((ee) => m(ee, d, v, true, b), \"right\") : d(\"right\");\n                L = [R ? n : \"\", q, R ? \" \" : n, ie, J];\n              }\n              let Q = o.getParentNode(), V = E(B.left, N.Trailing | N.Line), j = V || !(b && B.type === \"LogicalExpression\") && Q.type !== B.type && B.left.type !== B.type && B.right.type !== B.type;\n              if (k.push(R ? \"\" : \" \", j ? i(L, { shouldBreak: V }) : L), S && E(B)) {\n                let Y = h(t(o, k, v));\n                return c(Y) || Y.type === \"fill\" ? g(Y) : [Y];\n              }\n              return k;\n            }\n            function C(o) {\n              return o.type !== \"LogicalExpression\" ? false : !!(o.right.type === \"ObjectExpression\" && o.right.properties.length > 0 || o.right.type === \"ArrayExpression\" && o.right.elements.length > 0 || _(o.right));\n            }\n            r.exports = { printBinaryishExpression: T, shouldInlineLogicalExpression: C };\n          } }), fd = te({ \"src/language-js/print/angular.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { join: t, line: s2, group: a } } = qe(), { hasNode: n, hasComment: u, getComments: i } = Ke(), { printBinaryishExpression: l } = ru();\n            function p(g, c, f) {\n              let F = g.getValue();\n              if (F.type.startsWith(\"NG\")) switch (F.type) {\n                case \"NGRoot\":\n                  return [f(\"node\"), u(F.node) ? \" //\" + i(F.node)[0].value.trimEnd() : \"\"];\n                case \"NGPipeExpression\":\n                  return l(g, c, f);\n                case \"NGChainedExpression\":\n                  return a(t([\";\", s2], g.map((_) => h(_) ? f() : [\"(\", f(), \")\"], \"expressions\")));\n                case \"NGEmptyExpression\":\n                  return \"\";\n                case \"NGQuotedExpression\":\n                  return [F.prefix, \": \", F.value.trim()];\n                case \"NGMicrosyntax\":\n                  return g.map((_, w) => [w === 0 ? \"\" : y(_.getValue(), w, F) ? \" \" : [\";\", s2], f()], \"body\");\n                case \"NGMicrosyntaxKey\":\n                  return /^[$_a-z][\\w$]*(?:-[$_a-z][\\w$])*$/i.test(F.name) ? F.name : JSON.stringify(F.name);\n                case \"NGMicrosyntaxExpression\":\n                  return [f(\"expression\"), F.alias === null ? \"\" : [\" as \", f(\"alias\")]];\n                case \"NGMicrosyntaxKeyedExpression\": {\n                  let _ = g.getName(), w = g.getParentNode(), E = y(F, _, w) || (_ === 1 && (F.key.name === \"then\" || F.key.name === \"else\") || _ === 2 && F.key.name === \"else\" && w.body[_ - 1].type === \"NGMicrosyntaxKeyedExpression\" && w.body[_ - 1].key.name === \"then\") && w.body[0].type === \"NGMicrosyntaxExpression\";\n                  return [f(\"key\"), E ? \" \" : \": \", f(\"expression\")];\n                }\n                case \"NGMicrosyntaxLet\":\n                  return [\"let \", f(\"key\"), F.value === null ? \"\" : [\" = \", f(\"value\")]];\n                case \"NGMicrosyntaxAs\":\n                  return [f(\"key\"), \" as \", f(\"alias\")];\n                default:\n                  throw new Error(`Unknown Angular node type: ${JSON.stringify(F.type)}.`);\n              }\n            }\n            function y(g, c, f) {\n              return g.type === \"NGMicrosyntaxKeyedExpression\" && g.key.name === \"of\" && c === 1 && f.body[0].type === \"NGMicrosyntaxLet\" && f.body[0].value === null;\n            }\n            function h(g) {\n              return n(g.getValue(), (c) => {\n                switch (c.type) {\n                  case void 0:\n                    return false;\n                  case \"CallExpression\":\n                  case \"OptionalCallExpression\":\n                  case \"AssignmentExpression\":\n                    return true;\n                }\n              });\n            }\n            r.exports = { printAngular: p };\n          } }), Dd = te({ \"src/language-js/print/jsx.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printComments: t, printDanglingComments: s2, printCommentsSeparately: a } = et(), { builders: { line: n, hardline: u, softline: i, group: l, indent: p, conditionalGroup: y, fill: h, ifBreak: g, lineSuffixBoundary: c, join: f }, utils: { willBreak: F } } = qe(), { getLast: _, getPreferredQuote: w } = Ue(), { isJsxNode: E, rawText: N, isCallExpression: x, isStringLiteral: I, isBinaryish: P, hasComment: $, CommentCheckFlags: D, hasNodeIgnoreComment: T } = Ke(), m = qt(), { willPrintOwnComments: C } = Eo(), o = (U) => U === \"\" || U === n || U === u || U === i;\n            function d(U, Z, se) {\n              let fe = U.getValue();\n              if (fe.type === \"JSXElement\" && de(fe)) return [se(\"openingElement\"), se(\"closingElement\")];\n              let ge = fe.type === \"JSXElement\" ? se(\"openingElement\") : se(\"openingFragment\"), he = fe.type === \"JSXElement\" ? se(\"closingElement\") : se(\"closingFragment\");\n              if (fe.children.length === 1 && fe.children[0].type === \"JSXExpressionContainer\" && (fe.children[0].expression.type === \"TemplateLiteral\" || fe.children[0].expression.type === \"TaggedTemplateExpression\")) return [ge, ...U.map(se, \"children\"), he];\n              fe.children = fe.children.map((A) => Fe(A) ? { type: \"JSXText\", value: \" \", raw: \" \" } : A);\n              let we = fe.children.some(E), ke = fe.children.filter((A) => A.type === \"JSXExpressionContainer\").length > 1, Re = fe.type === \"JSXElement\" && fe.openingElement.attributes.length > 1, Ne = F(ge) || we || Re || ke, Pe = U.getParentNode().rootMarker === \"mdx\", oe = Z.singleQuote ? \"{' '}\" : '{\" \"}', H = Pe ? \" \" : g([oe, i], \" \"), pe = fe.openingElement && fe.openingElement.name && fe.openingElement.name.name === \"fbt\", X = v(U, Z, se, H, pe), le = fe.children.some((A) => ue(A));\n              for (let A = X.length - 2; A >= 0; A--) {\n                let G = X[A] === \"\" && X[A + 1] === \"\", re = X[A] === u && X[A + 1] === \"\" && X[A + 2] === u, ye = (X[A] === i || X[A] === u) && X[A + 1] === \"\" && X[A + 2] === H, Ce = X[A] === H && X[A + 1] === \"\" && (X[A + 2] === i || X[A + 2] === u), Be = X[A] === H && X[A + 1] === \"\" && X[A + 2] === H, ve = X[A] === i && X[A + 1] === \"\" && X[A + 2] === u || X[A] === u && X[A + 1] === \"\" && X[A + 2] === i;\n                re && le || G || ye || Be || ve ? X.splice(A, 2) : Ce && X.splice(A + 1, 2);\n              }\n              for (; X.length > 0 && o(_(X)); ) X.pop();\n              for (; X.length > 1 && o(X[0]) && o(X[1]); ) X.shift(), X.shift();\n              let Ae = [];\n              for (let [A, G] of X.entries()) {\n                if (G === H) {\n                  if (A === 1 && X[A - 1] === \"\") {\n                    if (X.length === 2) {\n                      Ae.push(oe);\n                      continue;\n                    }\n                    Ae.push([oe, u]);\n                    continue;\n                  } else if (A === X.length - 1) {\n                    Ae.push(oe);\n                    continue;\n                  } else if (X[A - 1] === \"\" && X[A - 2] === u) {\n                    Ae.push(oe);\n                    continue;\n                  }\n                }\n                Ae.push(G), F(G) && (Ne = true);\n              }\n              let Ee = le ? h(Ae) : l(Ae, { shouldBreak: true });\n              if (Pe) return Ee;\n              let De = l([ge, p([u, Ee]), u, he]);\n              return Ne ? De : y([l([ge, ...X, he]), De]);\n            }\n            function v(U, Z, se, fe, ge) {\n              let he = [];\n              return U.each((we, ke, Re) => {\n                let Ne = we.getValue();\n                if (Ne.type === \"JSXText\") {\n                  let Pe = N(Ne);\n                  if (ue(Ne)) {\n                    let oe = Pe.split(ce);\n                    if (oe[0] === \"\") {\n                      if (he.push(\"\"), oe.shift(), /\\n/.test(oe[0])) {\n                        let pe = Re[ke + 1];\n                        he.push(b(ge, oe[1], Ne, pe));\n                      } else he.push(fe);\n                      oe.shift();\n                    }\n                    let H;\n                    if (_(oe) === \"\" && (oe.pop(), H = oe.pop()), oe.length === 0) return;\n                    for (let [pe, X] of oe.entries()) pe % 2 === 1 ? he.push(n) : he.push(X);\n                    if (H !== void 0) if (/\\n/.test(H)) {\n                      let pe = Re[ke + 1];\n                      he.push(b(ge, _(he), Ne, pe));\n                    } else he.push(fe);\n                    else {\n                      let pe = Re[ke + 1];\n                      he.push(S(ge, _(he), Ne, pe));\n                    }\n                  } else /\\n/.test(Pe) ? Pe.match(/\\n/g).length > 1 && he.push(\"\", u) : he.push(\"\", fe);\n                } else {\n                  let Pe = se();\n                  he.push(Pe);\n                  let oe = Re[ke + 1];\n                  if (oe && ue(oe)) {\n                    let pe = K(N(oe)).split(ce)[0];\n                    he.push(S(ge, pe, Ne, oe));\n                  } else he.push(u);\n                }\n              }, \"children\"), he;\n            }\n            function S(U, Z, se, fe) {\n              return U ? \"\" : se.type === \"JSXElement\" && !se.closingElement || fe && fe.type === \"JSXElement\" && !fe.closingElement ? Z.length === 1 ? i : u : i;\n            }\n            function b(U, Z, se, fe) {\n              return U ? u : Z.length === 1 ? se.type === \"JSXElement\" && !se.closingElement || fe && fe.type === \"JSXElement\" && !fe.closingElement ? u : i : u;\n            }\n            function B(U, Z, se) {\n              let fe = U.getParentNode();\n              if (!fe || { ArrayExpression: true, JSXAttribute: true, JSXElement: true, JSXExpressionContainer: true, JSXFragment: true, ExpressionStatement: true, CallExpression: true, OptionalCallExpression: true, ConditionalExpression: true, JsExpressionRoot: true }[fe.type]) return Z;\n              let he = U.match(void 0, (ke) => ke.type === \"ArrowFunctionExpression\", x, (ke) => ke.type === \"JSXExpressionContainer\"), we = m(U, se);\n              return l([we ? \"\" : g(\"(\"), p([i, Z]), i, we ? \"\" : g(\")\")], { shouldBreak: he });\n            }\n            function k(U, Z, se) {\n              let fe = U.getValue(), ge = [];\n              if (ge.push(se(\"name\")), fe.value) {\n                let he;\n                if (I(fe.value)) {\n                  let ke = N(fe.value).slice(1, -1).replace(/&apos;/g, \"'\").replace(/&quot;/g, '\"'), { escaped: Re, quote: Ne, regex: Pe } = w(ke, Z.jsxSingleQuote ? \"'\" : '\"');\n                  ke = ke.replace(Pe, Re);\n                  let { leading: oe, trailing: H } = U.call(() => a(U, Z), \"value\");\n                  he = [oe, Ne, ke, Ne, H];\n                } else he = se(\"value\");\n                ge.push(\"=\", he);\n              }\n              return ge;\n            }\n            function M(U, Z, se) {\n              let fe = U.getValue(), ge = (he, we) => he.type === \"JSXEmptyExpression\" || !$(he) && (he.type === \"ArrayExpression\" || he.type === \"ObjectExpression\" || he.type === \"ArrowFunctionExpression\" || he.type === \"AwaitExpression\" && (ge(he.argument, he) || he.argument.type === \"JSXElement\") || x(he) || he.type === \"FunctionExpression\" || he.type === \"TemplateLiteral\" || he.type === \"TaggedTemplateExpression\" || he.type === \"DoExpression\" || E(we) && (he.type === \"ConditionalExpression\" || P(he)));\n              return ge(fe.expression, U.getParentNode(0)) ? l([\"{\", se(\"expression\"), c, \"}\"]) : l([\"{\", p([i, se(\"expression\")]), i, c, \"}\"]);\n            }\n            function R(U, Z, se) {\n              let fe = U.getValue(), ge = fe.name && $(fe.name) || fe.typeParameters && $(fe.typeParameters);\n              if (fe.selfClosing && fe.attributes.length === 0 && !ge) return [\"<\", se(\"name\"), se(\"typeParameters\"), \" />\"];\n              if (fe.attributes && fe.attributes.length === 1 && fe.attributes[0].value && I(fe.attributes[0].value) && !fe.attributes[0].value.value.includes(`\n`) && !ge && !$(fe.attributes[0])) return l([\"<\", se(\"name\"), se(\"typeParameters\"), \" \", ...U.map(se, \"attributes\"), fe.selfClosing ? \" />\" : \">\"]);\n              let he = fe.attributes && fe.attributes.some((ke) => ke.value && I(ke.value) && ke.value.value.includes(`\n`)), we = Z.singleAttributePerLine && fe.attributes.length > 1 ? u : n;\n              return l([\"<\", se(\"name\"), se(\"typeParameters\"), p(U.map(() => [we, se()], \"attributes\")), ...q(fe, Z, ge)], { shouldBreak: he });\n            }\n            function q(U, Z, se) {\n              return U.selfClosing ? [n, \"/>\"] : J(U, Z, se) ? [\">\"] : [i, \">\"];\n            }\n            function J(U, Z, se) {\n              let fe = U.attributes.length > 0 && $(_(U.attributes), D.Trailing);\n              return U.attributes.length === 0 && !se || (Z.bracketSameLine || Z.jsxBracketSameLine) && (!se || U.attributes.length > 0) && !fe;\n            }\n            function L(U, Z, se) {\n              let fe = U.getValue(), ge = [];\n              ge.push(\"</\");\n              let he = se(\"name\");\n              return $(fe.name, D.Leading | D.Line) ? ge.push(p([u, he]), u) : $(fe.name, D.Leading | D.Block) ? ge.push(\" \", he) : ge.push(he), ge.push(\">\"), ge;\n            }\n            function Q(U, Z) {\n              let se = U.getValue(), fe = $(se), ge = $(se, D.Line), he = se.type === \"JSXOpeningFragment\";\n              return [he ? \"<\" : \"</\", p([ge ? u : fe && !he ? \" \" : \"\", s2(U, Z, true)]), ge ? u : \"\", \">\"];\n            }\n            function V(U, Z, se) {\n              let fe = t(U, d(U, Z, se), Z);\n              return B(U, fe, Z);\n            }\n            function j(U, Z) {\n              let se = U.getValue(), fe = $(se, D.Line);\n              return [s2(U, Z, !fe), fe ? u : \"\"];\n            }\n            function Y(U, Z, se) {\n              let fe = U.getValue();\n              return [\"{\", U.call((ge) => {\n                let he = [\"...\", se()], we = ge.getValue();\n                return !$(we) || !C(ge) ? he : [p([i, t(ge, he, Z)]), i];\n              }, fe.type === \"JSXSpreadAttribute\" ? \"argument\" : \"expression\"), \"}\"];\n            }\n            function ie(U, Z, se) {\n              let fe = U.getValue();\n              if (fe.type.startsWith(\"JSX\")) switch (fe.type) {\n                case \"JSXAttribute\":\n                  return k(U, Z, se);\n                case \"JSXIdentifier\":\n                  return String(fe.name);\n                case \"JSXNamespacedName\":\n                  return f(\":\", [se(\"namespace\"), se(\"name\")]);\n                case \"JSXMemberExpression\":\n                  return f(\".\", [se(\"object\"), se(\"property\")]);\n                case \"JSXSpreadAttribute\":\n                  return Y(U, Z, se);\n                case \"JSXSpreadChild\":\n                  return Y(U, Z, se);\n                case \"JSXExpressionContainer\":\n                  return M(U, Z, se);\n                case \"JSXFragment\":\n                case \"JSXElement\":\n                  return V(U, Z, se);\n                case \"JSXOpeningElement\":\n                  return R(U, Z, se);\n                case \"JSXClosingElement\":\n                  return L(U, Z, se);\n                case \"JSXOpeningFragment\":\n                case \"JSXClosingFragment\":\n                  return Q(U, Z);\n                case \"JSXEmptyExpression\":\n                  return j(U, Z);\n                case \"JSXText\":\n                  throw new Error(\"JSXText should be handled by JSXElement\");\n                default:\n                  throw new Error(`Unknown JSX node type: ${JSON.stringify(fe.type)}.`);\n              }\n            }\n            var ee = ` \n\\r\t`, ce = new RegExp(\"([\" + ee + \"]+)\"), W = new RegExp(\"[^\" + ee + \"]\"), K = (U) => U.replace(new RegExp(\"(?:^\" + ce.source + \"|\" + ce.source + \"$)\"), \"\");\n            function de(U) {\n              if (U.children.length === 0) return true;\n              if (U.children.length > 1) return false;\n              let Z = U.children[0];\n              return Z.type === \"JSXText\" && !ue(Z);\n            }\n            function ue(U) {\n              return U.type === \"JSXText\" && (W.test(N(U)) || !/\\n/.test(N(U)));\n            }\n            function Fe(U) {\n              return U.type === \"JSXExpressionContainer\" && I(U.expression) && U.expression.value === \" \" && !$(U.expression);\n            }\n            function z(U) {\n              let Z = U.getValue(), se = U.getParentNode();\n              if (!se || !Z || !E(Z) || !E(se)) return false;\n              let fe = se.children.indexOf(Z), ge = null;\n              for (let he = fe; he > 0; he--) {\n                let we = se.children[he - 1];\n                if (!(we.type === \"JSXText\" && !ue(we))) {\n                  ge = we;\n                  break;\n                }\n              }\n              return ge && ge.type === \"JSXExpressionContainer\" && ge.expression.type === \"JSXEmptyExpression\" && T(ge.expression);\n            }\n            r.exports = { hasJsxIgnoreComment: z, printJsx: ie };\n          } }), ct = te({ \"src/language-js/print/misc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t } = Ue(), { builders: { indent: s2, join: a, line: n } } = qe(), { isFlowAnnotationComment: u } = Ke();\n            function i(_) {\n              let w = _.getValue();\n              return !w.optional || w.type === \"Identifier\" && w === _.getParentNode().key ? \"\" : w.type === \"OptionalCallExpression\" || w.type === \"OptionalMemberExpression\" && w.computed ? \"?.\" : \"?\";\n            }\n            function l(_) {\n              return _.getValue().definite || _.match(void 0, (w, E) => E === \"id\" && w.type === \"VariableDeclarator\" && w.definite) ? \"!\" : \"\";\n            }\n            function p(_, w, E) {\n              let N = _.getValue();\n              return N.typeArguments ? E(\"typeArguments\") : N.typeParameters ? E(\"typeParameters\") : \"\";\n            }\n            function y(_, w, E) {\n              let N = _.getValue();\n              if (!N.typeAnnotation) return \"\";\n              let x = _.getParentNode(), I = x.type === \"DeclareFunction\" && x.id === N;\n              return u(w.originalText, N.typeAnnotation) ? [\" /*: \", E(\"typeAnnotation\"), \" */\"] : [I ? \"\" : \": \", E(\"typeAnnotation\")];\n            }\n            function h(_, w, E) {\n              return [\"::\", E(\"callee\")];\n            }\n            function g(_, w, E) {\n              let N = _.getValue();\n              return t(N.modifiers) ? [a(\" \", _.map(E, \"modifiers\")), \" \"] : \"\";\n            }\n            function c(_, w, E) {\n              return _.type === \"EmptyStatement\" ? \";\" : _.type === \"BlockStatement\" || E ? [\" \", w] : s2([n, w]);\n            }\n            function f(_, w, E) {\n              return [\"...\", E(\"argument\"), y(_, w, E)];\n            }\n            function F(_, w) {\n              let E = _.slice(1, -1);\n              if (E.includes('\"') || E.includes(\"'\")) return _;\n              let N = w.singleQuote ? \"'\" : '\"';\n              return N + E + N;\n            }\n            r.exports = { printOptionalToken: i, printDefiniteToken: l, printFunctionTypeParameters: p, printBindExpressionCallee: h, printTypeScriptModifiers: g, printTypeAnnotation: y, printRestSpread: f, adjustClause: c, printDirective: F };\n          } }), er = te({ \"src/language-js/print/array.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { builders: { line: s2, softline: a, hardline: n, group: u, indent: i, ifBreak: l, fill: p } } = qe(), { getLast: y, hasNewline: h } = Ue(), { shouldPrintComma: g, hasComment: c, CommentCheckFlags: f, isNextLineEmpty: F, isNumericLiteral: _, isSignedNumericLiteral: w } = Ke(), { locStart: E } = ut(), { printOptionalToken: N, printTypeAnnotation: x } = ct();\n            function I(T, m, C) {\n              let o = T.getValue(), d = [], v = o.type === \"TupleExpression\" ? \"#[\" : \"[\", S = \"]\";\n              if (o.elements.length === 0) c(o, f.Dangling) ? d.push(u([v, t(T, m), a, S])) : d.push(v, S);\n              else {\n                let b = y(o.elements), B = !(b && b.type === \"RestElement\"), k = b === null, M = Symbol(\"array\"), R = !m.__inJestEach && o.elements.length > 1 && o.elements.every((L, Q, V) => {\n                  let j = L && L.type;\n                  if (j !== \"ArrayExpression\" && j !== \"ObjectExpression\") return false;\n                  let Y = V[Q + 1];\n                  if (Y && j !== Y.type) return false;\n                  let ie = j === \"ArrayExpression\" ? \"elements\" : \"properties\";\n                  return L[ie] && L[ie].length > 1;\n                }), q = P(o, m), J = B ? k ? \",\" : g(m) ? q ? l(\",\", \"\", { groupId: M }) : l(\",\") : \"\" : \"\";\n                d.push(u([v, i([a, q ? D(T, m, C, J) : [$(T, m, \"elements\", C), J], t(T, m, true)]), a, S], { shouldBreak: R, id: M }));\n              }\n              return d.push(N(T), x(T, m, C)), d;\n            }\n            function P(T, m) {\n              return T.elements.length > 1 && T.elements.every((C) => C && (_(C) || w(C) && !c(C.argument)) && !c(C, f.Trailing | f.Line, (o) => !h(m.originalText, E(o), { backwards: true })));\n            }\n            function $(T, m, C, o) {\n              let d = [], v = [];\n              return T.each((S) => {\n                d.push(v, u(o())), v = [\",\", s2], S.getValue() && F(S.getValue(), m) && v.push(a);\n              }, C), d;\n            }\n            function D(T, m, C, o) {\n              let d = [];\n              return T.each((v, S, b) => {\n                let B = S === b.length - 1;\n                d.push([C(), B ? o : \",\"]), B || d.push(F(v.getValue(), m) ? [n, n] : c(b[S + 1], f.Leading | f.Line) ? n : s2);\n              }, \"elements\"), p(d);\n            }\n            r.exports = { printArray: I, printArrayItems: $, isConciselyPrintedArray: P };\n          } }), Ao = te({ \"src/language-js/print/call-arguments.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { getLast: s2, getPenultimate: a } = Ue(), { getFunctionParameters: n, hasComment: u, CommentCheckFlags: i, isFunctionCompositionArgs: l, isJsxNode: p, isLongCurriedCallExpression: y, shouldPrintComma: h, getCallArguments: g, iterateCallArgumentsPath: c, isNextLineEmpty: f, isCallExpression: F, isStringLiteral: _, isObjectProperty: w, isTSTypeExpression: E } = Ke(), { builders: { line: N, hardline: x, softline: I, group: P, indent: $, conditionalGroup: D, ifBreak: T, breakParent: m }, utils: { willBreak: C } } = qe(), { ArgExpansionBailout: o } = Qt(), { isConciselyPrintedArray: d } = er();\n            function v(q, J, L) {\n              let Q = q.getValue(), V = Q.type === \"ImportExpression\", j = g(Q);\n              if (j.length === 0) return [\"(\", t(q, J, true), \")\"];\n              if (k(j)) return [\"(\", L([\"arguments\", 0]), \", \", L([\"arguments\", 1]), \")\"];\n              let Y = false, ie = false, ee = j.length - 1, ce = [];\n              c(q, (z, U) => {\n                let Z = z.getNode(), se = [L()];\n                U === ee || (f(Z, J) ? (U === 0 && (ie = true), Y = true, se.push(\",\", x, x)) : se.push(\",\", N)), ce.push(se);\n              });\n              let W = !(V || Q.callee && Q.callee.type === \"Import\") && h(J, \"all\") ? \",\" : \"\";\n              function K() {\n                return P([\"(\", $([N, ...ce]), W, N, \")\"], { shouldBreak: true });\n              }\n              if (Y || q.getParentNode().type !== \"Decorator\" && l(j)) return K();\n              let de = B(j), ue = b(j, J);\n              if (de || ue) {\n                if (de ? ce.slice(1).some(C) : ce.slice(0, -1).some(C)) return K();\n                let z = [];\n                try {\n                  q.try(() => {\n                    c(q, (U, Z) => {\n                      de && Z === 0 && (z = [[L([], { expandFirstArg: true }), ce.length > 1 ? \",\" : \"\", ie ? x : N, ie ? x : \"\"], ...ce.slice(1)]), ue && Z === ee && (z = [...ce.slice(0, -1), L([], { expandLastArg: true })]);\n                    });\n                  });\n                } catch (U) {\n                  if (U instanceof o) return K();\n                  throw U;\n                }\n                return [ce.some(C) ? m : \"\", D([[\"(\", ...z, \")\"], de ? [\"(\", P(z[0], { shouldBreak: true }), ...z.slice(1), \")\"] : [\"(\", ...ce.slice(0, -1), P(s2(z), { shouldBreak: true }), \")\"], K()])];\n              }\n              let Fe = [\"(\", $([I, ...ce]), T(W), I, \")\"];\n              return y(q) ? Fe : P(Fe, { shouldBreak: ce.some(C) || Y });\n            }\n            function S(q) {\n              let J = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n              return q.type === \"ObjectExpression\" && (q.properties.length > 0 || u(q)) || q.type === \"ArrayExpression\" && (q.elements.length > 0 || u(q)) || q.type === \"TSTypeAssertion\" && S(q.expression) || E(q) && S(q.expression) || q.type === \"FunctionExpression\" || q.type === \"ArrowFunctionExpression\" && (!q.returnType || !q.returnType.typeAnnotation || q.returnType.typeAnnotation.type !== \"TSTypeReference\" || M(q.body)) && (q.body.type === \"BlockStatement\" || q.body.type === \"ArrowFunctionExpression\" && S(q.body, true) || q.body.type === \"ObjectExpression\" || q.body.type === \"ArrayExpression\" || !J && (F(q.body) || q.body.type === \"ConditionalExpression\") || p(q.body)) || q.type === \"DoExpression\" || q.type === \"ModuleExpression\";\n            }\n            function b(q, J) {\n              let L = s2(q), Q = a(q);\n              return !u(L, i.Leading) && !u(L, i.Trailing) && S(L) && (!Q || Q.type !== L.type) && (q.length !== 2 || Q.type !== \"ArrowFunctionExpression\" || L.type !== \"ArrayExpression\") && !(q.length > 1 && L.type === \"ArrayExpression\" && d(L, J));\n            }\n            function B(q) {\n              if (q.length !== 2) return false;\n              let [J, L] = q;\n              return J.type === \"ModuleExpression\" && R(L) ? true : !u(J) && (J.type === \"FunctionExpression\" || J.type === \"ArrowFunctionExpression\" && J.body.type === \"BlockStatement\") && L.type !== \"FunctionExpression\" && L.type !== \"ArrowFunctionExpression\" && L.type !== \"ConditionalExpression\" && !S(L);\n            }\n            function k(q) {\n              return q.length === 2 && q[0].type === \"ArrowFunctionExpression\" && n(q[0]).length === 0 && q[0].body.type === \"BlockStatement\" && q[1].type === \"ArrayExpression\" && !q.some((J) => u(J));\n            }\n            function M(q) {\n              return q.type === \"BlockStatement\" && (q.body.some((J) => J.type !== \"EmptyStatement\") || u(q, i.Dangling));\n            }\n            function R(q) {\n              return q.type === \"ObjectExpression\" && q.properties.length === 1 && w(q.properties[0]) && q.properties[0].key.type === \"Identifier\" && q.properties[0].key.name === \"type\" && _(q.properties[0].value) && q.properties[0].value.value === \"module\";\n            }\n            r.exports = v;\n          } }), So = te({ \"src/language-js/print/member.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { softline: t, group: s2, indent: a, label: n } } = qe(), { isNumericLiteral: u, isMemberExpression: i, isCallExpression: l } = Ke(), { printOptionalToken: p } = ct();\n            function y(g, c, f) {\n              let F = g.getValue(), _ = g.getParentNode(), w, E = 0;\n              do\n                w = g.getParentNode(E), E++;\n              while (w && (i(w) || w.type === \"TSNonNullExpression\"));\n              let N = f(\"object\"), x = h(g, c, f), I = w && (w.type === \"NewExpression\" || w.type === \"BindExpression\" || w.type === \"AssignmentExpression\" && w.left.type !== \"Identifier\") || F.computed || F.object.type === \"Identifier\" && F.property.type === \"Identifier\" && !i(_) || (_.type === \"AssignmentExpression\" || _.type === \"VariableDeclarator\") && (l(F.object) && F.object.arguments.length > 0 || F.object.type === \"TSNonNullExpression\" && l(F.object.expression) && F.object.expression.arguments.length > 0 || N.label === \"member-chain\");\n              return n(N.label === \"member-chain\" ? \"member-chain\" : \"member\", [N, I ? x : s2(a([t, x]))]);\n            }\n            function h(g, c, f) {\n              let F = f(\"property\"), _ = g.getValue(), w = p(g);\n              return _.computed ? !_.property || u(_.property) ? [w, \"[\", F, \"]\"] : s2([w, \"[\", a([t, F]), t, \"]\"]) : [w, \".\", F];\n            }\n            r.exports = { printMemberExpression: y, printMemberLookup: h };\n          } }), md = te({ \"src/language-js/print/member-chain.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printComments: t } = et(), { getLast: s2, isNextLineEmptyAfterIndex: a, getNextNonSpaceNonCommentCharacterIndex: n } = Ue(), u = qt(), { isCallExpression: i, isMemberExpression: l, isFunctionOrArrowExpression: p, isLongCurriedCallExpression: y, isMemberish: h, isNumericLiteral: g, isSimpleCallArgument: c, hasComment: f, CommentCheckFlags: F, isNextLineEmpty: _ } = Ke(), { locEnd: w } = ut(), { builders: { join: E, hardline: N, group: x, indent: I, conditionalGroup: P, breakParent: $, label: D }, utils: { willBreak: T } } = qe(), m = Ao(), { printMemberLookup: C } = So(), { printOptionalToken: o, printFunctionTypeParameters: d, printBindExpressionCallee: v } = ct();\n            function S(b, B, k) {\n              let M = b.getParentNode(), R = !M || M.type === \"ExpressionStatement\", q = [];\n              function J(Ne) {\n                let { originalText: Pe } = B, oe = n(Pe, Ne, w);\n                return Pe.charAt(oe) === \")\" ? oe !== false && a(Pe, oe + 1) : _(Ne, B);\n              }\n              function L(Ne) {\n                let Pe = Ne.getValue();\n                i(Pe) && (h(Pe.callee) || i(Pe.callee)) ? (q.unshift({ node: Pe, printed: [t(Ne, [o(Ne), d(Ne, B, k), m(Ne, B, k)], B), J(Pe) ? N : \"\"] }), Ne.call((oe) => L(oe), \"callee\")) : h(Pe) ? (q.unshift({ node: Pe, needsParens: u(Ne, B), printed: t(Ne, l(Pe) ? C(Ne, B, k) : v(Ne, B, k), B) }), Ne.call((oe) => L(oe), \"object\")) : Pe.type === \"TSNonNullExpression\" ? (q.unshift({ node: Pe, printed: t(Ne, \"!\", B) }), Ne.call((oe) => L(oe), \"expression\")) : q.unshift({ node: Pe, printed: k() });\n              }\n              let Q = b.getValue();\n              q.unshift({ node: Q, printed: [o(b), d(b, B, k), m(b, B, k)] }), Q.callee && b.call((Ne) => L(Ne), \"callee\");\n              let V = [], j = [q[0]], Y = 1;\n              for (; Y < q.length && (q[Y].node.type === \"TSNonNullExpression\" || i(q[Y].node) || l(q[Y].node) && q[Y].node.computed && g(q[Y].node.property)); ++Y) j.push(q[Y]);\n              if (!i(q[0].node)) for (; Y + 1 < q.length && (h(q[Y].node) && h(q[Y + 1].node)); ++Y) j.push(q[Y]);\n              V.push(j), j = [];\n              let ie = false;\n              for (; Y < q.length; ++Y) {\n                if (ie && h(q[Y].node)) {\n                  if (q[Y].node.computed && g(q[Y].node.property)) {\n                    j.push(q[Y]);\n                    continue;\n                  }\n                  V.push(j), j = [], ie = false;\n                }\n                (i(q[Y].node) || q[Y].node.type === \"ImportExpression\") && (ie = true), j.push(q[Y]), f(q[Y].node, F.Trailing) && (V.push(j), j = [], ie = false);\n              }\n              j.length > 0 && V.push(j);\n              function ee(Ne) {\n                return /^[A-Z]|^[$_]+$/.test(Ne);\n              }\n              function ce(Ne) {\n                return Ne.length <= B.tabWidth;\n              }\n              function W(Ne) {\n                let Pe = Ne[1].length > 0 && Ne[1][0].node.computed;\n                if (Ne[0].length === 1) {\n                  let H = Ne[0][0].node;\n                  return H.type === \"ThisExpression\" || H.type === \"Identifier\" && (ee(H.name) || R && ce(H.name) || Pe);\n                }\n                let oe = s2(Ne[0]).node;\n                return l(oe) && oe.property.type === \"Identifier\" && (ee(oe.property.name) || Pe);\n              }\n              let K = V.length >= 2 && !f(V[1][0].node) && W(V);\n              function de(Ne) {\n                let Pe = Ne.map((oe) => oe.printed);\n                return Ne.length > 0 && s2(Ne).needsParens ? [\"(\", ...Pe, \")\"] : Pe;\n              }\n              function ue(Ne) {\n                return Ne.length === 0 ? \"\" : I(x([N, E(N, Ne.map(de))]));\n              }\n              let Fe = V.map(de), z = Fe, U = K ? 3 : 2, Z = V.flat(), se = Z.slice(1, -1).some((Ne) => f(Ne.node, F.Leading)) || Z.slice(0, -1).some((Ne) => f(Ne.node, F.Trailing)) || V[U] && f(V[U][0].node, F.Leading);\n              if (V.length <= U && !se) return y(b) ? z : x(z);\n              let fe = s2(V[K ? 1 : 0]).node, ge = !i(fe) && J(fe), he = [de(V[0]), K ? V.slice(1, 2).map(de) : \"\", ge ? N : \"\", ue(V.slice(K ? 2 : 1))], we = q.map((Ne) => {\n                let { node: Pe } = Ne;\n                return Pe;\n              }).filter(i);\n              function ke() {\n                let Ne = s2(s2(V)).node, Pe = s2(Fe);\n                return i(Ne) && T(Pe) && we.slice(0, -1).some((oe) => oe.arguments.some(p));\n              }\n              let Re;\n              return se || we.length > 2 && we.some((Ne) => !Ne.arguments.every((Pe) => c(Pe, 0))) || Fe.slice(0, -1).some(T) || ke() ? Re = x(he) : Re = [T(z) || ge ? $ : \"\", P([z, he])], D(\"member-chain\", Re);\n            }\n            r.exports = S;\n          } }), xo = te({ \"src/language-js/print/call-expression.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { join: t, group: s2 } } = qe(), a = qt(), { getCallArguments: n, hasFlowAnnotationComment: u, isCallExpression: i, isMemberish: l, isStringLiteral: p, isTemplateOnItsOwnLine: y, isTestCall: h, iterateCallArgumentsPath: g } = Ke(), c = md(), f = Ao(), { printOptionalToken: F, printFunctionTypeParameters: _ } = ct();\n            function w(N, x, I) {\n              let P = N.getValue(), $ = N.getParentNode(), D = P.type === \"NewExpression\", T = P.type === \"ImportExpression\", m = F(N), C = n(P);\n              if (C.length > 0 && (!T && !D && E(P, $) || C.length === 1 && y(C[0], x.originalText) || !D && h(P, $))) {\n                let v = [];\n                return g(N, () => {\n                  v.push(I());\n                }), [D ? \"new \" : \"\", I(\"callee\"), m, _(N, x, I), \"(\", t(\", \", v), \")\"];\n              }\n              let o = (x.parser === \"babel\" || x.parser === \"babel-flow\") && P.callee && P.callee.type === \"Identifier\" && u(P.callee.trailingComments);\n              if (o && (P.callee.trailingComments[0].printed = true), !T && !D && l(P.callee) && !N.call((v) => a(v, x), \"callee\")) return c(N, x, I);\n              let d = [D ? \"new \" : \"\", T ? \"import\" : I(\"callee\"), m, o ? `/*:: ${P.callee.trailingComments[0].value.slice(2).trim()} */` : \"\", _(N, x, I), f(N, x, I)];\n              return T || i(P.callee) ? s2(d) : d;\n            }\n            function E(N, x) {\n              if (N.callee.type !== \"Identifier\") return false;\n              if (N.callee.name === \"require\") return true;\n              if (N.callee.name === \"define\") {\n                let I = n(N);\n                return x.type === \"ExpressionStatement\" && (I.length === 1 || I.length === 2 && I[0].type === \"ArrayExpression\" || I.length === 3 && p(I[0]) && I[1].type === \"ArrayExpression\");\n              }\n              return false;\n            }\n            r.exports = { printCallExpression: w };\n          } }), tr = te({ \"src/language-js/print/assignment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t, getStringWidth: s2 } = Ue(), { builders: { line: a, group: n, indent: u, indentIfBreak: i, lineSuffixBoundary: l }, utils: { cleanDoc: p, willBreak: y, canBreak: h } } = qe(), { hasLeadingOwnLineComment: g, isBinaryish: c, isStringLiteral: f, isLiteral: F, isNumericLiteral: _, isCallExpression: w, isMemberExpression: E, getCallArguments: N, rawText: x, hasComment: I, isSignedNumericLiteral: P, isObjectProperty: $ } = Ke(), { shouldInlineLogicalExpression: D } = ru(), { printCallExpression: T } = xo();\n            function m(W, K, de, ue, Fe, z) {\n              let U = d(W, K, de, ue, z), Z = de(z, { assignmentLayout: U });\n              switch (U) {\n                case \"break-after-operator\":\n                  return n([n(ue), Fe, n(u([a, Z]))]);\n                case \"never-break-after-operator\":\n                  return n([n(ue), Fe, \" \", Z]);\n                case \"fluid\": {\n                  let se = Symbol(\"assignment\");\n                  return n([n(ue), Fe, n(u(a), { id: se }), l, i(Z, { groupId: se })]);\n                }\n                case \"break-lhs\":\n                  return n([ue, Fe, \" \", n(Z)]);\n                case \"chain\":\n                  return [n(ue), Fe, a, Z];\n                case \"chain-tail\":\n                  return [n(ue), Fe, u([a, Z])];\n                case \"chain-tail-arrow-chain\":\n                  return [n(ue), Fe, Z];\n                case \"only-left\":\n                  return ue;\n              }\n            }\n            function C(W, K, de) {\n              let ue = W.getValue();\n              return m(W, K, de, de(\"left\"), [\" \", ue.operator], \"right\");\n            }\n            function o(W, K, de) {\n              return m(W, K, de, de(\"id\"), \" =\", \"init\");\n            }\n            function d(W, K, de, ue, Fe) {\n              let z = W.getValue(), U = z[Fe];\n              if (!U) return \"only-left\";\n              let Z = !b(U);\n              if (W.match(b, B, (he) => !Z || he.type !== \"ExpressionStatement\" && he.type !== \"VariableDeclaration\")) return Z ? U.type === \"ArrowFunctionExpression\" && U.body.type === \"ArrowFunctionExpression\" ? \"chain-tail-arrow-chain\" : \"chain-tail\" : \"chain\";\n              if (!Z && b(U.right) || g(K.originalText, U)) return \"break-after-operator\";\n              if (U.type === \"CallExpression\" && U.callee.name === \"require\" || K.parser === \"json5\" || K.parser === \"json\") return \"never-break-after-operator\";\n              if (S(z) || k(z) || q(z) || J(z) && h(ue)) return \"break-lhs\";\n              let ge = ie(z, ue, K);\n              return W.call(() => v(W, K, de, ge), Fe) ? \"break-after-operator\" : ge || U.type === \"TemplateLiteral\" || U.type === \"TaggedTemplateExpression\" || U.type === \"BooleanLiteral\" || _(U) || U.type === \"ClassExpression\" ? \"never-break-after-operator\" : \"fluid\";\n            }\n            function v(W, K, de, ue) {\n              let Fe = W.getValue();\n              if (c(Fe) && !D(Fe)) return true;\n              switch (Fe.type) {\n                case \"StringLiteralTypeAnnotation\":\n                case \"SequenceExpression\":\n                  return true;\n                case \"ConditionalExpression\": {\n                  let { test: Z } = Fe;\n                  return c(Z) && !D(Z);\n                }\n                case \"ClassExpression\":\n                  return t(Fe.decorators);\n              }\n              if (ue) return false;\n              let z = Fe, U = [];\n              for (; ; ) if (z.type === \"UnaryExpression\") z = z.argument, U.push(\"argument\");\n              else if (z.type === \"TSNonNullExpression\") z = z.expression, U.push(\"expression\");\n              else break;\n              return !!(f(z) || W.call(() => V(W, K, de), ...U));\n            }\n            function S(W) {\n              if (B(W)) {\n                let K = W.left || W.id;\n                return K.type === \"ObjectPattern\" && K.properties.length > 2 && K.properties.some((de) => $(de) && (!de.shorthand || de.value && de.value.type === \"AssignmentPattern\"));\n              }\n              return false;\n            }\n            function b(W) {\n              return W.type === \"AssignmentExpression\";\n            }\n            function B(W) {\n              return b(W) || W.type === \"VariableDeclarator\";\n            }\n            function k(W) {\n              let K = M(W);\n              if (t(K)) {\n                let de = W.type === \"TSTypeAliasDeclaration\" ? \"constraint\" : \"bound\";\n                if (K.length > 1 && K.some((ue) => ue[de] || ue.default)) return true;\n              }\n              return false;\n            }\n            function M(W) {\n              return R(W) && W.typeParameters && W.typeParameters.params ? W.typeParameters.params : null;\n            }\n            function R(W) {\n              return W.type === \"TSTypeAliasDeclaration\" || W.type === \"TypeAlias\";\n            }\n            function q(W) {\n              if (W.type !== \"VariableDeclarator\") return false;\n              let { typeAnnotation: K } = W.id;\n              if (!K || !K.typeAnnotation) return false;\n              let de = L(K.typeAnnotation);\n              return t(de) && de.length > 1 && de.some((ue) => t(L(ue)) || ue.type === \"TSConditionalType\");\n            }\n            function J(W) {\n              return W.type === \"VariableDeclarator\" && W.init && W.init.type === \"ArrowFunctionExpression\";\n            }\n            function L(W) {\n              return Q(W) && W.typeParameters && W.typeParameters.params ? W.typeParameters.params : null;\n            }\n            function Q(W) {\n              return W.type === \"TSTypeReference\" || W.type === \"GenericTypeAnnotation\";\n            }\n            function V(W, K, de) {\n              let ue = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, Fe = W.getValue(), z = () => V(W, K, de, true);\n              if (Fe.type === \"TSNonNullExpression\") return W.call(z, \"expression\");\n              if (w(Fe)) {\n                if (T(W, K, de).label === \"member-chain\") return false;\n                let Z = N(Fe);\n                return !(Z.length === 0 || Z.length === 1 && Y(Z[0], K)) || ee(Fe, de) ? false : W.call(z, \"callee\");\n              }\n              return E(Fe) ? W.call(z, \"object\") : ue && (Fe.type === \"Identifier\" || Fe.type === \"ThisExpression\");\n            }\n            var j = 0.25;\n            function Y(W, K) {\n              let { printWidth: de } = K;\n              if (I(W)) return false;\n              let ue = de * j;\n              if (W.type === \"ThisExpression\" || W.type === \"Identifier\" && W.name.length <= ue || P(W) && !I(W.argument)) return true;\n              let Fe = W.type === \"Literal\" && \"regex\" in W && W.regex.pattern || W.type === \"RegExpLiteral\" && W.pattern;\n              return Fe ? Fe.length <= ue : f(W) ? x(W).length <= ue : W.type === \"TemplateLiteral\" ? W.expressions.length === 0 && W.quasis[0].value.raw.length <= ue && !W.quasis[0].value.raw.includes(`\n`) : F(W);\n            }\n            function ie(W, K, de) {\n              if (!$(W)) return false;\n              K = p(K);\n              let ue = 3;\n              return typeof K == \"string\" && s2(K) < de.tabWidth + ue;\n            }\n            function ee(W, K) {\n              let de = ce(W);\n              if (t(de)) {\n                if (de.length > 1) return true;\n                if (de.length === 1) {\n                  let Fe = de[0];\n                  if (Fe.type === \"TSUnionType\" || Fe.type === \"UnionTypeAnnotation\" || Fe.type === \"TSIntersectionType\" || Fe.type === \"IntersectionTypeAnnotation\" || Fe.type === \"TSTypeLiteral\" || Fe.type === \"ObjectTypeAnnotation\") return true;\n                }\n                let ue = W.typeParameters ? \"typeParameters\" : \"typeArguments\";\n                if (y(K(ue))) return true;\n              }\n              return false;\n            }\n            function ce(W) {\n              return W.typeParameters && W.typeParameters.params || W.typeArguments && W.typeArguments.params;\n            }\n            r.exports = { printVariableDeclarator: o, printAssignmentExpression: C, printAssignment: m, isArrowFunctionVariableDeclarator: J };\n          } }), Lr = te({ \"src/language-js/print/function-parameters.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { getNextNonSpaceNonCommentCharacter: t } = Ue(), { printDanglingComments: s2 } = et(), { builders: { line: a, hardline: n, softline: u, group: i, indent: l, ifBreak: p }, utils: { removeLines: y, willBreak: h } } = qe(), { getFunctionParameters: g, iterateFunctionParametersPath: c, isSimpleType: f, isTestCall: F, isTypeAnnotationAFunction: _, isObjectType: w, isObjectTypePropertyAFunction: E, hasRestParameter: N, shouldPrintComma: x, hasComment: I, isNextLineEmpty: P } = Ke(), { locEnd: $ } = ut(), { ArgExpansionBailout: D } = Qt(), { printFunctionTypeParameters: T } = ct();\n            function m(v, S, b, B, k) {\n              let M = v.getValue(), R = g(M), q = k ? T(v, b, S) : \"\";\n              if (R.length === 0) return [q, \"(\", s2(v, b, true, (ie) => t(b.originalText, ie, $) === \")\"), \")\"];\n              let J = v.getParentNode(), L = F(J), Q = C(M), V = [];\n              if (c(v, (ie, ee) => {\n                let ce = ee === R.length - 1;\n                ce && M.rest && V.push(\"...\"), V.push(S()), !ce && (V.push(\",\"), L || Q ? V.push(\" \") : P(R[ee], b) ? V.push(n, n) : V.push(a));\n              }), B) {\n                if (h(q) || h(V)) throw new D();\n                return i([y(q), \"(\", y(V), \")\"]);\n              }\n              let j = R.every((ie) => !ie.decorators);\n              return Q && j ? [q, \"(\", ...V, \")\"] : L ? [q, \"(\", ...V, \")\"] : (E(J) || _(J) || J.type === \"TypeAlias\" || J.type === \"UnionTypeAnnotation\" || J.type === \"TSUnionType\" || J.type === \"IntersectionTypeAnnotation\" || J.type === \"FunctionTypeAnnotation\" && J.returnType === M) && R.length === 1 && R[0].name === null && M.this !== R[0] && R[0].typeAnnotation && M.typeParameters === null && f(R[0].typeAnnotation) && !M.rest ? b.arrowParens === \"always\" ? [\"(\", ...V, \")\"] : V : [q, \"(\", l([u, ...V]), p(!N(M) && x(b, \"all\") ? \",\" : \"\"), u, \")\"];\n            }\n            function C(v) {\n              if (!v) return false;\n              let S = g(v);\n              if (S.length !== 1) return false;\n              let [b] = S;\n              return !I(b) && (b.type === \"ObjectPattern\" || b.type === \"ArrayPattern\" || b.type === \"Identifier\" && b.typeAnnotation && (b.typeAnnotation.type === \"TypeAnnotation\" || b.typeAnnotation.type === \"TSTypeAnnotation\") && w(b.typeAnnotation.typeAnnotation) || b.type === \"FunctionTypeParam\" && w(b.typeAnnotation) || b.type === \"AssignmentPattern\" && (b.left.type === \"ObjectPattern\" || b.left.type === \"ArrayPattern\") && (b.right.type === \"Identifier\" || b.right.type === \"ObjectExpression\" && b.right.properties.length === 0 || b.right.type === \"ArrayExpression\" && b.right.elements.length === 0));\n            }\n            function o(v) {\n              let S;\n              return v.returnType ? (S = v.returnType, S.typeAnnotation && (S = S.typeAnnotation)) : v.typeAnnotation && (S = v.typeAnnotation), S;\n            }\n            function d(v, S) {\n              let b = o(v);\n              if (!b) return false;\n              let B = v.typeParameters && v.typeParameters.params;\n              if (B) {\n                if (B.length > 1) return false;\n                if (B.length === 1) {\n                  let k = B[0];\n                  if (k.constraint || k.default) return false;\n                }\n              }\n              return g(v).length === 1 && (w(b) || h(S));\n            }\n            r.exports = { printFunctionParameters: m, shouldHugFunctionParameters: C, shouldGroupFunctionParameters: d };\n          } }), Or = te({ \"src/language-js/print/type-annotation.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printComments: t, printDanglingComments: s2 } = et(), { isNonEmptyArray: a } = Ue(), { builders: { group: n, join: u, line: i, softline: l, indent: p, align: y, ifBreak: h } } = qe(), g = qt(), { locStart: c } = ut(), { isSimpleType: f, isObjectType: F, hasLeadingOwnLineComment: _, isObjectTypePropertyAFunction: w, shouldPrintComma: E } = Ke(), { printAssignment: N } = tr(), { printFunctionParameters: x, shouldGroupFunctionParameters: I } = Lr(), { printArrayItems: P } = er();\n            function $(b) {\n              if (f(b) || F(b)) return true;\n              if (b.type === \"UnionTypeAnnotation\" || b.type === \"TSUnionType\") {\n                let B = b.types.filter((M) => M.type === \"VoidTypeAnnotation\" || M.type === \"TSVoidKeyword\" || M.type === \"NullLiteralTypeAnnotation\" || M.type === \"TSNullKeyword\").length, k = b.types.some((M) => M.type === \"ObjectTypeAnnotation\" || M.type === \"TSTypeLiteral\" || M.type === \"GenericTypeAnnotation\" || M.type === \"TSTypeReference\");\n                if (b.types.length - 1 === B && k) return true;\n              }\n              return false;\n            }\n            function D(b, B, k) {\n              let M = B.semi ? \";\" : \"\", R = b.getValue(), q = [];\n              return q.push(\"opaque type \", k(\"id\"), k(\"typeParameters\")), R.supertype && q.push(\": \", k(\"supertype\")), R.impltype && q.push(\" = \", k(\"impltype\")), q.push(M), q;\n            }\n            function T(b, B, k) {\n              let M = B.semi ? \";\" : \"\", R = b.getValue(), q = [];\n              R.declare && q.push(\"declare \"), q.push(\"type \", k(\"id\"), k(\"typeParameters\"));\n              let J = R.type === \"TSTypeAliasDeclaration\" ? \"typeAnnotation\" : \"right\";\n              return [N(b, B, k, q, \" =\", J), M];\n            }\n            function m(b, B, k) {\n              let M = b.getValue(), R = b.map(k, \"types\"), q = [], J = false;\n              for (let L = 0; L < R.length; ++L) L === 0 ? q.push(R[L]) : F(M.types[L - 1]) && F(M.types[L]) ? q.push([\" & \", J ? p(R[L]) : R[L]]) : !F(M.types[L - 1]) && !F(M.types[L]) ? q.push(p([\" &\", i, R[L]])) : (L > 1 && (J = true), q.push(\" & \", L > 1 ? p(R[L]) : R[L]));\n              return n(q);\n            }\n            function C(b, B, k) {\n              let M = b.getValue(), R = b.getParentNode(), q = R.type !== \"TypeParameterInstantiation\" && R.type !== \"TSTypeParameterInstantiation\" && R.type !== \"GenericTypeAnnotation\" && R.type !== \"TSTypeReference\" && R.type !== \"TSTypeAssertion\" && R.type !== \"TupleTypeAnnotation\" && R.type !== \"TSTupleType\" && !(R.type === \"FunctionTypeParam\" && !R.name && b.getParentNode(1).this !== R) && !((R.type === \"TypeAlias\" || R.type === \"VariableDeclarator\" || R.type === \"TSTypeAliasDeclaration\") && _(B.originalText, M)), J = $(M), L = b.map((j) => {\n                let Y = k();\n                return J || (Y = y(2, Y)), t(j, Y, B);\n              }, \"types\");\n              if (J) return u(\" | \", L);\n              let Q = q && !_(B.originalText, M), V = [h([Q ? i : \"\", \"| \"]), u([i, \"| \"], L)];\n              return g(b, B) ? n([p(V), l]) : R.type === \"TupleTypeAnnotation\" && R.types.length > 1 || R.type === \"TSTupleType\" && R.elementTypes.length > 1 ? n([p([h([\"(\", l]), V]), l, h(\")\")]) : n(q ? p(V) : V);\n            }\n            function o(b, B, k) {\n              let M = b.getValue(), R = [], q = b.getParentNode(0), J = b.getParentNode(1), L = b.getParentNode(2), Q = M.type === \"TSFunctionType\" || !((q.type === \"ObjectTypeProperty\" || q.type === \"ObjectTypeInternalSlot\") && !q.variance && !q.optional && c(q) === c(M) || q.type === \"ObjectTypeCallProperty\" || L && L.type === \"DeclareFunction\"), V = Q && (q.type === \"TypeAnnotation\" || q.type === \"TSTypeAnnotation\"), j = V && Q && (q.type === \"TypeAnnotation\" || q.type === \"TSTypeAnnotation\") && J.type === \"ArrowFunctionExpression\";\n              w(q) && (Q = true, V = true), j && R.push(\"(\");\n              let Y = x(b, k, B, false, true), ie = M.returnType || M.predicate || M.typeAnnotation ? [Q ? \" => \" : \": \", k(\"returnType\"), k(\"predicate\"), k(\"typeAnnotation\")] : \"\", ee = I(M, ie);\n              return R.push(ee ? n(Y) : Y), ie && R.push(ie), j && R.push(\")\"), n(R);\n            }\n            function d(b, B, k) {\n              let M = b.getValue(), R = M.type === \"TSTupleType\" ? \"elementTypes\" : \"types\", q = M[R], J = a(q), L = J ? l : \"\";\n              return n([\"[\", p([L, P(b, B, R, k)]), h(J && E(B, \"all\") ? \",\" : \"\"), s2(b, B, true), L, \"]\"]);\n            }\n            function v(b, B, k) {\n              let M = b.getValue(), R = M.type === \"OptionalIndexedAccessType\" && M.optional ? \"?.[\" : \"[\";\n              return [k(\"objectType\"), R, k(\"indexType\"), \"]\"];\n            }\n            function S(b, B, k) {\n              let M = b.getValue();\n              return [M.postfix ? \"\" : k, B(\"typeAnnotation\"), M.postfix ? k : \"\"];\n            }\n            r.exports = { printOpaqueType: D, printTypeAlias: T, printIntersectionType: m, printUnionType: C, printFunctionType: o, printTupleType: d, printIndexedAccessType: v, shouldHugType: $, printJSDocType: S };\n          } }), jr = te({ \"src/language-js/print/type-parameters.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { builders: { join: s2, line: a, hardline: n, softline: u, group: i, indent: l, ifBreak: p } } = qe(), { isTestCall: y, hasComment: h, CommentCheckFlags: g, isTSXFile: c, shouldPrintComma: f, getFunctionParameters: F, isObjectType: _, getTypeScriptMappedTypeModifier: w } = Ke(), { createGroupIdMapper: E } = Ue(), { shouldHugType: N } = Or(), { isArrowFunctionVariableDeclarator: x } = tr(), I = E(\"typeParameters\");\n            function P(T, m, C, o) {\n              let d = T.getValue();\n              if (!d[o]) return \"\";\n              if (!Array.isArray(d[o])) return C(o);\n              let v = T.getNode(2), S = v && y(v), b = T.match((M) => !(M[o].length === 1 && _(M[o][0])), void 0, (M, R) => R === \"typeAnnotation\", (M) => M.type === \"Identifier\", x);\n              if (d[o].length === 0 || !b && (S || d[o].length === 1 && (d[o][0].type === \"NullableTypeAnnotation\" || N(d[o][0])))) return [\"<\", s2(\", \", T.map(C, o)), $(T, m), \">\"];\n              let k = d.type === \"TSTypeParameterInstantiation\" ? \"\" : F(d).length === 1 && c(m) && !d[o][0].constraint && T.getParentNode().type === \"ArrowFunctionExpression\" ? \",\" : f(m, \"all\") ? p(\",\") : \"\";\n              return i([\"<\", l([u, s2([\",\", a], T.map(C, o))]), k, u, \">\"], { id: I(d) });\n            }\n            function $(T, m) {\n              let C = T.getValue();\n              if (!h(C, g.Dangling)) return \"\";\n              let o = !h(C, g.Line), d = t(T, m, o);\n              return o ? d : [d, n];\n            }\n            function D(T, m, C) {\n              let o = T.getValue(), d = [o.type === \"TSTypeParameter\" && o.const ? \"const \" : \"\"], v = T.getParentNode();\n              return v.type === \"TSMappedType\" ? (v.readonly && d.push(w(v.readonly, \"readonly\"), \" \"), d.push(\"[\", C(\"name\")), o.constraint && d.push(\" in \", C(\"constraint\")), v.nameType && d.push(\" as \", T.callParent(() => C(\"nameType\"))), d.push(\"]\"), d) : (o.variance && d.push(C(\"variance\")), o.in && d.push(\"in \"), o.out && d.push(\"out \"), d.push(C(\"name\")), o.bound && d.push(\": \", C(\"bound\")), o.constraint && d.push(\" extends \", C(\"constraint\")), o.default && d.push(\" = \", C(\"default\")), d);\n            }\n            r.exports = { printTypeParameter: D, printTypeParameters: P, getTypeParametersGroupId: I };\n          } }), rr = te({ \"src/language-js/print/property.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printComments: t } = et(), { printString: s2, printNumber: a } = Ue(), { isNumericLiteral: n, isSimpleNumber: u, isStringLiteral: i, isStringPropSafeToUnquote: l, rawText: p } = Ke(), { printAssignment: y } = tr(), h = /* @__PURE__ */ new WeakMap();\n            function g(f, F, _) {\n              let w = f.getNode();\n              if (w.computed) return [\"[\", _(\"key\"), \"]\"];\n              let E = f.getParentNode(), { key: N } = w;\n              if (F.quoteProps === \"consistent\" && !h.has(E)) {\n                let x = (E.properties || E.body || E.members).some((I) => !I.computed && I.key && i(I.key) && !l(I, F));\n                h.set(E, x);\n              }\n              if ((N.type === \"Identifier\" || n(N) && u(a(p(N))) && String(N.value) === a(p(N)) && !(F.parser === \"typescript\" || F.parser === \"babel-ts\")) && (F.parser === \"json\" || F.quoteProps === \"consistent\" && h.get(E))) {\n                let x = s2(JSON.stringify(N.type === \"Identifier\" ? N.name : N.value.toString()), F);\n                return f.call((I) => t(I, x, F), \"key\");\n              }\n              return l(w, F) && (F.quoteProps === \"as-needed\" || F.quoteProps === \"consistent\" && !h.get(E)) ? f.call((x) => t(x, /^\\d/.test(N.value) ? a(N.value) : N.value, F), \"key\") : _(\"key\");\n            }\n            function c(f, F, _) {\n              return f.getValue().shorthand ? _(\"value\") : y(f, F, _, g(f, F, _), \":\", \"value\");\n            }\n            r.exports = { printProperty: c, printPropertyKey: g };\n          } }), qr = te({ \"src/language-js/print/function.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Zt(), { printDanglingComments: s2, printCommentsSeparately: a } = et(), n = lt(), { getNextNonSpaceNonCommentCharacterIndex: u } = Ue(), { builders: { line: i, softline: l, group: p, indent: y, ifBreak: h, hardline: g, join: c, indentIfBreak: f }, utils: { removeLines: F, willBreak: _ } } = qe(), { ArgExpansionBailout: w } = Qt(), { getFunctionParameters: E, hasLeadingOwnLineComment: N, isFlowAnnotationComment: x, isJsxNode: I, isTemplateOnItsOwnLine: P, shouldPrintComma: $, startsWithNoLookaheadToken: D, isBinaryish: T, isLineComment: m, hasComment: C, getComments: o, CommentCheckFlags: d, isCallLikeExpression: v, isCallExpression: S, getCallArguments: b, hasNakedLeftSide: B, getLeftSide: k } = Ke(), { locEnd: M } = ut(), { printFunctionParameters: R, shouldGroupFunctionParameters: q } = Lr(), { printPropertyKey: J } = rr(), { printFunctionTypeParameters: L } = ct();\n            function Q(U, Z, se, fe) {\n              let ge = U.getValue(), he = false;\n              if ((ge.type === \"FunctionDeclaration\" || ge.type === \"FunctionExpression\") && fe && fe.expandLastArg) {\n                let Pe = U.getParentNode();\n                S(Pe) && b(Pe).length > 1 && (he = true);\n              }\n              let we = [];\n              ge.type === \"TSDeclareFunction\" && ge.declare && we.push(\"declare \"), ge.async && we.push(\"async \"), ge.generator ? we.push(\"function* \") : we.push(\"function \"), ge.id && we.push(Z(\"id\"));\n              let ke = R(U, Z, se, he), Re = K(U, Z, se), Ne = q(ge, Re);\n              return we.push(L(U, se, Z), p([Ne ? p(ke) : ke, Re]), ge.body ? \" \" : \"\", Z(\"body\")), se.semi && (ge.declare || !ge.body) && we.push(\";\"), we;\n            }\n            function V(U, Z, se) {\n              let fe = U.getNode(), { kind: ge } = fe, he = fe.value || fe, we = [];\n              return !ge || ge === \"init\" || ge === \"method\" || ge === \"constructor\" ? he.async && we.push(\"async \") : (t.ok(ge === \"get\" || ge === \"set\"), we.push(ge, \" \")), he.generator && we.push(\"*\"), we.push(J(U, Z, se), fe.optional || fe.key.optional ? \"?\" : \"\"), fe === he ? we.push(j(U, Z, se)) : he.type === \"FunctionExpression\" ? we.push(U.call((ke) => j(ke, Z, se), \"value\")) : we.push(se(\"value\")), we;\n            }\n            function j(U, Z, se) {\n              let fe = U.getNode(), ge = R(U, se, Z), he = K(U, se, Z), we = q(fe, he), ke = [L(U, Z, se), p([we ? p(ge) : ge, he])];\n              return fe.body ? ke.push(\" \", se(\"body\")) : ke.push(Z.semi ? \";\" : \"\"), ke;\n            }\n            function Y(U, Z, se, fe) {\n              let ge = U.getValue(), he = [];\n              if (ge.async && he.push(\"async \"), W(U, Z)) he.push(se([\"params\", 0]));\n              else {\n                let ke = fe && (fe.expandLastArg || fe.expandFirstArg), Re = K(U, se, Z);\n                if (ke) {\n                  if (_(Re)) throw new w();\n                  Re = p(F(Re));\n                }\n                he.push(p([R(U, se, Z, ke, true), Re]));\n              }\n              let we = s2(U, Z, true, (ke) => {\n                let Re = u(Z.originalText, ke, M);\n                return Re !== false && Z.originalText.slice(Re, Re + 2) === \"=>\";\n              });\n              return we && he.push(\" \", we), he;\n            }\n            function ie(U, Z, se, fe, ge, he) {\n              let we = U.getName(), ke = U.getParentNode(), Re = v(ke) && we === \"callee\", Ne = Boolean(Z && Z.assignmentLayout), Pe = he.body.type !== \"BlockStatement\" && he.body.type !== \"ObjectExpression\" && he.body.type !== \"SequenceExpression\", oe = Re && Pe || Z && Z.assignmentLayout === \"chain-tail-arrow-chain\", H = Symbol(\"arrow-chain\");\n              return he.body.type === \"SequenceExpression\" && (ge = p([\"(\", y([l, ge]), l, \")\"])), p([p(y([Re || Ne ? l : \"\", p(c([\" =>\", i], se), { shouldBreak: fe })]), { id: H, shouldBreak: oe }), \" =>\", f(Pe ? y([i, ge]) : [\" \", ge], { groupId: H }), Re ? h(l, \"\", { groupId: H }) : \"\"]);\n            }\n            function ee(U, Z, se, fe) {\n              let ge = U.getValue(), he = [], we = [], ke = false;\n              if (function H() {\n                let pe = Y(U, Z, se, fe);\n                if (he.length === 0) he.push(pe);\n                else {\n                  let { leading: X, trailing: le } = a(U, Z);\n                  he.push([X, pe]), we.unshift(le);\n                }\n                ke = ke || ge.returnType && E(ge).length > 0 || ge.typeParameters || E(ge).some((X) => X.type !== \"Identifier\"), ge.body.type !== \"ArrowFunctionExpression\" || fe && fe.expandLastArg ? we.unshift(se(\"body\", fe)) : (ge = ge.body, U.call(H, \"body\"));\n              }(), he.length > 1) return ie(U, fe, he, ke, we, ge);\n              let Re = he;\n              if (Re.push(\" =>\"), !N(Z.originalText, ge.body) && (ge.body.type === \"ArrayExpression\" || ge.body.type === \"ObjectExpression\" || ge.body.type === \"BlockStatement\" || I(ge.body) || P(ge.body, Z.originalText) || ge.body.type === \"ArrowFunctionExpression\" || ge.body.type === \"DoExpression\")) return p([...Re, \" \", we]);\n              if (ge.body.type === \"SequenceExpression\") return p([...Re, p([\" (\", y([l, we]), l, \")\"])]);\n              let Ne = (fe && fe.expandLastArg || U.getParentNode().type === \"JSXExpressionContainer\") && !C(ge), Pe = fe && fe.expandLastArg && $(Z, \"all\"), oe = ge.body.type === \"ConditionalExpression\" && !D(ge.body, (H) => H.type === \"ObjectExpression\");\n              return p([...Re, p([y([i, oe ? h(\"\", \"(\") : \"\", we, oe ? h(\"\", \")\") : \"\"]), Ne ? [h(Pe ? \",\" : \"\"), l] : \"\"])]);\n            }\n            function ce(U) {\n              let Z = E(U);\n              return Z.length === 1 && !U.typeParameters && !C(U, d.Dangling) && Z[0].type === \"Identifier\" && !Z[0].typeAnnotation && !C(Z[0]) && !Z[0].optional && !U.predicate && !U.returnType;\n            }\n            function W(U, Z) {\n              if (Z.arrowParens === \"always\") return false;\n              if (Z.arrowParens === \"avoid\") {\n                let se = U.getValue();\n                return ce(se);\n              }\n              return false;\n            }\n            function K(U, Z, se) {\n              let fe = U.getValue(), ge = Z(\"returnType\");\n              if (fe.returnType && x(se.originalText, fe.returnType)) return [\" /*: \", ge, \" */\"];\n              let he = [ge];\n              return fe.returnType && fe.returnType.typeAnnotation && he.unshift(\": \"), fe.predicate && he.push(fe.returnType ? \" \" : \": \", Z(\"predicate\")), he;\n            }\n            function de(U, Z, se) {\n              let fe = U.getValue(), ge = Z.semi ? \";\" : \"\", he = [];\n              fe.argument && (z(Z, fe.argument) ? he.push([\" (\", y([g, se(\"argument\")]), g, \")\"]) : T(fe.argument) || fe.argument.type === \"SequenceExpression\" ? he.push(p([h(\" (\", \" \"), y([l, se(\"argument\")]), l, h(\")\")])) : he.push(\" \", se(\"argument\")));\n              let we = o(fe), ke = n(we), Re = ke && m(ke);\n              return Re && he.push(ge), C(fe, d.Dangling) && he.push(\" \", s2(U, Z, true)), Re || he.push(ge), he;\n            }\n            function ue(U, Z, se) {\n              return [\"return\", de(U, Z, se)];\n            }\n            function Fe(U, Z, se) {\n              return [\"throw\", de(U, Z, se)];\n            }\n            function z(U, Z) {\n              if (N(U.originalText, Z)) return true;\n              if (B(Z)) {\n                let se = Z, fe;\n                for (; fe = k(se); ) if (se = fe, N(U.originalText, se)) return true;\n              }\n              return false;\n            }\n            r.exports = { printFunction: Q, printArrowFunction: ee, printMethod: V, printReturnStatement: ue, printThrowStatement: Fe, printMethodInternal: j, shouldPrintParamsWithoutParens: W };\n          } }), nu = te({ \"src/language-js/print/decorators.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t, hasNewline: s2 } = Ue(), { builders: { line: a, hardline: n, join: u, breakParent: i, group: l } } = qe(), { locStart: p, locEnd: y } = ut(), { getParentExportDeclaration: h } = Ke();\n            function g(w, E, N) {\n              let x = w.getValue();\n              return l([u(a, w.map(N, \"decorators\")), F(x, E) ? n : a]);\n            }\n            function c(w, E, N) {\n              return [u(n, w.map(N, \"declaration\", \"decorators\")), n];\n            }\n            function f(w, E, N) {\n              let x = w.getValue(), { decorators: I } = x;\n              if (!t(I) || _(w.getParentNode())) return;\n              let P = x.type === \"ClassExpression\" || x.type === \"ClassDeclaration\" || F(x, E);\n              return [h(w) ? n : P ? i : \"\", u(a, w.map(N, \"decorators\")), a];\n            }\n            function F(w, E) {\n              return w.decorators.some((N) => s2(E.originalText, y(N)));\n            }\n            function _(w) {\n              if (w.type !== \"ExportDefaultDeclaration\" && w.type !== \"ExportNamedDeclaration\" && w.type !== \"DeclareExportDeclaration\") return false;\n              let E = w.declaration && w.declaration.decorators;\n              return t(E) && p(w) === p(E[0]);\n            }\n            r.exports = { printDecorators: f, printClassMemberDecorators: g, printDecoratorsBeforeExport: c, hasDecoratorsBeforeExport: _ };\n          } }), nr = te({ \"src/language-js/print/class.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t, createGroupIdMapper: s2 } = Ue(), { printComments: a, printDanglingComments: n } = et(), { builders: { join: u, line: i, hardline: l, softline: p, group: y, indent: h, ifBreak: g } } = qe(), { hasComment: c, CommentCheckFlags: f } = Ke(), { getTypeParametersGroupId: F } = jr(), { printMethod: _ } = qr(), { printOptionalToken: w, printTypeAnnotation: E, printDefiniteToken: N } = ct(), { printPropertyKey: x } = rr(), { printAssignment: I } = tr(), { printClassMemberDecorators: P } = nu();\n            function $(b, B, k) {\n              let M = b.getValue(), R = [];\n              M.declare && R.push(\"declare \"), M.abstract && R.push(\"abstract \"), R.push(\"class\");\n              let q = M.id && c(M.id, f.Trailing) || M.typeParameters && c(M.typeParameters, f.Trailing) || M.superClass && c(M.superClass) || t(M.extends) || t(M.mixins) || t(M.implements), J = [], L = [];\n              if (M.id && J.push(\" \", k(\"id\")), J.push(k(\"typeParameters\")), M.superClass) {\n                let Q = [d(b, B, k), k(\"superTypeParameters\")], V = b.call((j) => [\"extends \", a(j, Q, B)], \"superClass\");\n                q ? L.push(i, y(V)) : L.push(\" \", V);\n              } else L.push(o(b, B, k, \"extends\"));\n              if (L.push(o(b, B, k, \"mixins\"), o(b, B, k, \"implements\")), q) {\n                let Q;\n                C(M) ? Q = [...J, h(L)] : Q = h([...J, L]), R.push(y(Q, { id: D(M) }));\n              } else R.push(...J, ...L);\n              return R.push(\" \", k(\"body\")), R;\n            }\n            var D = s2(\"heritageGroup\");\n            function T(b) {\n              return g(l, \"\", { groupId: D(b) });\n            }\n            function m(b) {\n              return [\"superClass\", \"extends\", \"mixins\", \"implements\"].filter((B) => Boolean(b[B])).length > 1;\n            }\n            function C(b) {\n              return b.typeParameters && !c(b.typeParameters, f.Trailing | f.Line) && !m(b);\n            }\n            function o(b, B, k, M) {\n              let R = b.getValue();\n              if (!t(R[M])) return \"\";\n              let q = n(b, B, true, (J) => {\n                let { marker: L } = J;\n                return L === M;\n              });\n              return [C(R) ? g(\" \", i, { groupId: F(R.typeParameters) }) : i, q, q && l, M, y(h([i, u([\",\", i], b.map(k, M))]))];\n            }\n            function d(b, B, k) {\n              let M = k(\"superClass\");\n              return b.getParentNode().type === \"AssignmentExpression\" ? y(g([\"(\", h([p, M]), p, \")\"], M)) : M;\n            }\n            function v(b, B, k) {\n              let M = b.getValue(), R = [];\n              return t(M.decorators) && R.push(P(b, B, k)), M.accessibility && R.push(M.accessibility + \" \"), M.readonly && R.push(\"readonly \"), M.declare && R.push(\"declare \"), M.static && R.push(\"static \"), (M.type === \"TSAbstractMethodDefinition\" || M.abstract) && R.push(\"abstract \"), M.override && R.push(\"override \"), R.push(_(b, B, k)), R;\n            }\n            function S(b, B, k) {\n              let M = b.getValue(), R = [], q = B.semi ? \";\" : \"\";\n              return t(M.decorators) && R.push(P(b, B, k)), M.accessibility && R.push(M.accessibility + \" \"), M.declare && R.push(\"declare \"), M.static && R.push(\"static \"), (M.type === \"TSAbstractPropertyDefinition\" || M.type === \"TSAbstractAccessorProperty\" || M.abstract) && R.push(\"abstract \"), M.override && R.push(\"override \"), M.readonly && R.push(\"readonly \"), M.variance && R.push(k(\"variance\")), (M.type === \"ClassAccessorProperty\" || M.type === \"AccessorProperty\" || M.type === \"TSAbstractAccessorProperty\") && R.push(\"accessor \"), R.push(x(b, B, k), w(b), N(b), E(b, B, k)), [I(b, B, k, R, \" =\", \"value\"), q];\n            }\n            r.exports = { printClass: $, printClassMethod: v, printClassProperty: S, printHardlineAfterHeritage: T };\n          } }), bo = te({ \"src/language-js/print/interface.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t } = Ue(), { builders: { join: s2, line: a, group: n, indent: u, ifBreak: i } } = qe(), { hasComment: l, identity: p, CommentCheckFlags: y } = Ke(), { getTypeParametersGroupId: h } = jr(), { printTypeScriptModifiers: g } = ct();\n            function c(f, F, _) {\n              let w = f.getValue(), E = [];\n              w.declare && E.push(\"declare \"), w.type === \"TSInterfaceDeclaration\" && E.push(w.abstract ? \"abstract \" : \"\", g(f, F, _)), E.push(\"interface\");\n              let N = [], x = [];\n              w.type !== \"InterfaceTypeAnnotation\" && N.push(\" \", _(\"id\"), _(\"typeParameters\"));\n              let I = w.typeParameters && !l(w.typeParameters, y.Trailing | y.Line);\n              return t(w.extends) && x.push(I ? i(\" \", a, { groupId: h(w.typeParameters) }) : a, \"extends \", (w.extends.length === 1 ? p : u)(s2([\",\", a], f.map(_, \"extends\")))), w.id && l(w.id, y.Trailing) || t(w.extends) ? I ? E.push(n([...N, u(x)])) : E.push(n(u([...N, ...x]))) : E.push(...N, ...x), E.push(\" \", _(\"body\")), n(E);\n            }\n            r.exports = { printInterface: c };\n          } }), To = te({ \"src/language-js/print/module.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isNonEmptyArray: t } = Ue(), { builders: { softline: s2, group: a, indent: n, join: u, line: i, ifBreak: l, hardline: p } } = qe(), { printDanglingComments: y } = et(), { hasComment: h, CommentCheckFlags: g, shouldPrintComma: c, needsHardlineAfterDanglingComment: f, isStringLiteral: F, rawText: _ } = Ke(), { locStart: w, hasSameLoc: E } = ut(), { hasDecoratorsBeforeExport: N, printDecoratorsBeforeExport: x } = nu();\n            function I(S, b, B) {\n              let k = S.getValue(), M = b.semi ? \";\" : \"\", R = [], { importKind: q } = k;\n              return R.push(\"import\"), q && q !== \"value\" && R.push(\" \", q), R.push(m(S, b, B), T(S, b, B), o(S, b, B), M), R;\n            }\n            function P(S, b, B) {\n              let k = S.getValue(), M = [];\n              N(k) && M.push(x(S, b, B));\n              let { type: R, exportKind: q, declaration: J } = k;\n              return M.push(\"export\"), (k.default || R === \"ExportDefaultDeclaration\") && M.push(\" default\"), h(k, g.Dangling) && (M.push(\" \", y(S, b, true)), f(k) && M.push(p)), J ? M.push(\" \", B(\"declaration\")) : M.push(q === \"type\" ? \" type\" : \"\", m(S, b, B), T(S, b, B), o(S, b, B)), D(k, b) && M.push(\";\"), M;\n            }\n            function $(S, b, B) {\n              let k = S.getValue(), M = b.semi ? \";\" : \"\", R = [], { exportKind: q, exported: J } = k;\n              return R.push(\"export\"), q === \"type\" && R.push(\" type\"), R.push(\" *\"), J && R.push(\" as \", B(\"exported\")), R.push(T(S, b, B), o(S, b, B), M), R;\n            }\n            function D(S, b) {\n              if (!b.semi) return false;\n              let { type: B, declaration: k } = S, M = S.default || B === \"ExportDefaultDeclaration\";\n              if (!k) return true;\n              let { type: R } = k;\n              return !!(M && R !== \"ClassDeclaration\" && R !== \"FunctionDeclaration\" && R !== \"TSInterfaceDeclaration\" && R !== \"DeclareClass\" && R !== \"DeclareFunction\" && R !== \"TSDeclareFunction\" && R !== \"EnumDeclaration\");\n            }\n            function T(S, b, B) {\n              let k = S.getValue();\n              if (!k.source) return \"\";\n              let M = [];\n              return C(k, b) || M.push(\" from\"), M.push(\" \", B(\"source\")), M;\n            }\n            function m(S, b, B) {\n              let k = S.getValue();\n              if (C(k, b)) return \"\";\n              let M = [\" \"];\n              if (t(k.specifiers)) {\n                let R = [], q = [];\n                S.each(() => {\n                  let J = S.getValue().type;\n                  if (J === \"ExportNamespaceSpecifier\" || J === \"ExportDefaultSpecifier\" || J === \"ImportNamespaceSpecifier\" || J === \"ImportDefaultSpecifier\") R.push(B());\n                  else if (J === \"ExportSpecifier\" || J === \"ImportSpecifier\") q.push(B());\n                  else throw new Error(`Unknown specifier type ${JSON.stringify(J)}`);\n                }, \"specifiers\"), M.push(u(\", \", R)), q.length > 0 && (R.length > 0 && M.push(\", \"), q.length > 1 || R.length > 0 || k.specifiers.some((L) => h(L)) ? M.push(a([\"{\", n([b.bracketSpacing ? i : s2, u([\",\", i], q)]), l(c(b) ? \",\" : \"\"), b.bracketSpacing ? i : s2, \"}\"])) : M.push([\"{\", b.bracketSpacing ? \" \" : \"\", ...q, b.bracketSpacing ? \" \" : \"\", \"}\"]));\n              } else M.push(\"{}\");\n              return M;\n            }\n            function C(S, b) {\n              let { type: B, importKind: k, source: M, specifiers: R } = S;\n              return B !== \"ImportDeclaration\" || t(R) || k === \"type\" ? false : !/{\\s*}/.test(b.originalText.slice(w(S), w(M)));\n            }\n            function o(S, b, B) {\n              let k = S.getNode();\n              return t(k.assertions) ? [\" assert {\", b.bracketSpacing ? \" \" : \"\", u(\", \", S.map(B, \"assertions\")), b.bracketSpacing ? \" \" : \"\", \"}\"] : \"\";\n            }\n            function d(S, b, B) {\n              let k = S.getNode(), { type: M } = k, R = [], q = M === \"ImportSpecifier\" ? k.importKind : k.exportKind;\n              q && q !== \"value\" && R.push(q, \" \");\n              let J = M.startsWith(\"Import\"), L = J ? \"imported\" : \"local\", Q = J ? \"local\" : \"exported\", V = k[L], j = k[Q], Y = \"\", ie = \"\";\n              return M === \"ExportNamespaceSpecifier\" || M === \"ImportNamespaceSpecifier\" ? Y = \"*\" : V && (Y = B(L)), j && !v(k) && (ie = B(Q)), R.push(Y, Y && ie ? \" as \" : \"\", ie), R;\n            }\n            function v(S) {\n              if (S.type !== \"ImportSpecifier\" && S.type !== \"ExportSpecifier\") return false;\n              let { local: b, [S.type === \"ImportSpecifier\" ? \"imported\" : \"exported\"]: B } = S;\n              if (b.type !== B.type || !E(b, B)) return false;\n              if (F(b)) return b.value === B.value && _(b) === _(B);\n              switch (b.type) {\n                case \"Identifier\":\n                  return b.name === B.name;\n                default:\n                  return false;\n              }\n            }\n            r.exports = { printImportDeclaration: I, printExportDeclaration: P, printExportAllDeclaration: $, printModuleSpecifier: d };\n          } }), uu = te({ \"src/language-js/print/object.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { builders: { line: s2, softline: a, group: n, indent: u, ifBreak: i, hardline: l } } = qe(), { getLast: p, hasNewlineInRange: y, hasNewline: h, isNonEmptyArray: g } = Ue(), { shouldPrintComma: c, hasComment: f, getComments: F, CommentCheckFlags: _, isNextLineEmpty: w } = Ke(), { locStart: E, locEnd: N } = ut(), { printOptionalToken: x, printTypeAnnotation: I } = ct(), { shouldHugFunctionParameters: P } = Lr(), { shouldHugType: $ } = Or(), { printHardlineAfterHeritage: D } = nr();\n            function T(m, C, o) {\n              let d = C.semi ? \";\" : \"\", v = m.getValue(), S;\n              v.type === \"TSTypeLiteral\" ? S = \"members\" : v.type === \"TSInterfaceBody\" ? S = \"body\" : S = \"properties\";\n              let b = v.type === \"ObjectTypeAnnotation\", B = [S];\n              b && B.push(\"indexers\", \"callProperties\", \"internalSlots\");\n              let k = B.map((W) => v[W][0]).sort((W, K) => E(W) - E(K))[0], M = m.getParentNode(0), R = b && M && (M.type === \"InterfaceDeclaration\" || M.type === \"DeclareInterface\" || M.type === \"DeclareClass\") && m.getName() === \"body\", q = v.type === \"TSInterfaceBody\" || R || v.type === \"ObjectPattern\" && M.type !== \"FunctionDeclaration\" && M.type !== \"FunctionExpression\" && M.type !== \"ArrowFunctionExpression\" && M.type !== \"ObjectMethod\" && M.type !== \"ClassMethod\" && M.type !== \"ClassPrivateMethod\" && M.type !== \"AssignmentPattern\" && M.type !== \"CatchClause\" && v.properties.some((W) => W.value && (W.value.type === \"ObjectPattern\" || W.value.type === \"ArrayPattern\")) || v.type !== \"ObjectPattern\" && k && y(C.originalText, E(v), E(k)), J = R ? \";\" : v.type === \"TSInterfaceBody\" || v.type === \"TSTypeLiteral\" ? i(d, \";\") : \",\", L = v.type === \"RecordExpression\" ? \"#{\" : v.exact ? \"{|\" : \"{\", Q = v.exact ? \"|}\" : \"}\", V = [];\n              for (let W of B) m.each((K) => {\n                let de = K.getValue();\n                V.push({ node: de, printed: o(), loc: E(de) });\n              }, W);\n              B.length > 1 && V.sort((W, K) => W.loc - K.loc);\n              let j = [], Y = V.map((W) => {\n                let K = [...j, n(W.printed)];\n                return j = [J, s2], (W.node.type === \"TSPropertySignature\" || W.node.type === \"TSMethodSignature\" || W.node.type === \"TSConstructSignatureDeclaration\") && f(W.node, _.PrettierIgnore) && j.shift(), w(W.node, C) && j.push(l), K;\n              });\n              if (v.inexact) {\n                let W;\n                if (f(v, _.Dangling)) {\n                  let K = f(v, _.Line);\n                  W = [t(m, C, true), K || h(C.originalText, N(p(F(v)))) ? l : s2, \"...\"];\n                } else W = [\"...\"];\n                Y.push([...j, ...W]);\n              }\n              let ie = p(v[S]), ee = !(v.inexact || ie && ie.type === \"RestElement\" || ie && (ie.type === \"TSPropertySignature\" || ie.type === \"TSCallSignatureDeclaration\" || ie.type === \"TSMethodSignature\" || ie.type === \"TSConstructSignatureDeclaration\") && f(ie, _.PrettierIgnore)), ce;\n              if (Y.length === 0) {\n                if (!f(v, _.Dangling)) return [L, Q, I(m, C, o)];\n                ce = n([L, t(m, C), a, Q, x(m), I(m, C, o)]);\n              } else ce = [R && g(v.properties) ? D(M) : \"\", L, u([C.bracketSpacing ? s2 : a, ...Y]), i(ee && (J !== \",\" || c(C)) ? J : \"\"), C.bracketSpacing ? s2 : a, Q, x(m), I(m, C, o)];\n              return m.match((W) => W.type === \"ObjectPattern\" && !W.decorators, (W, K, de) => P(W) && (K === \"params\" || K === \"parameters\" || K === \"this\" || K === \"rest\") && de === 0) || m.match($, (W, K) => K === \"typeAnnotation\", (W, K) => K === \"typeAnnotation\", (W, K, de) => P(W) && (K === \"params\" || K === \"parameters\" || K === \"this\" || K === \"rest\") && de === 0) || !q && m.match((W) => W.type === \"ObjectPattern\", (W) => W.type === \"AssignmentExpression\" || W.type === \"VariableDeclarator\") ? ce : n(ce, { shouldBreak: q });\n            }\n            r.exports = { printObject: T };\n          } }), dd = te({ \"src/language-js/print/flow.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Zt(), { printDanglingComments: s2 } = et(), { printString: a, printNumber: n } = Ue(), { builders: { hardline: u, softline: i, group: l, indent: p } } = qe(), { getParentExportDeclaration: y, isFunctionNotation: h, isGetterOrSetter: g, rawText: c, shouldPrintComma: f } = Ke(), { locStart: F, locEnd: _ } = ut(), { replaceTextEndOfLine: w } = Yt(), { printClass: E } = nr(), { printOpaqueType: N, printTypeAlias: x, printIntersectionType: I, printUnionType: P, printFunctionType: $, printTupleType: D, printIndexedAccessType: T } = Or(), { printInterface: m } = bo(), { printTypeParameter: C, printTypeParameters: o } = jr(), { printExportDeclaration: d, printExportAllDeclaration: v } = To(), { printArrayItems: S } = er(), { printObject: b } = uu(), { printPropertyKey: B } = rr(), { printOptionalToken: k, printTypeAnnotation: M, printRestSpread: R } = ct();\n            function q(L, Q, V) {\n              let j = L.getValue(), Y = Q.semi ? \";\" : \"\", ie = [];\n              switch (j.type) {\n                case \"DeclareClass\":\n                  return J(L, E(L, Q, V));\n                case \"DeclareFunction\":\n                  return J(L, [\"function \", V(\"id\"), j.predicate ? \" \" : \"\", V(\"predicate\"), Y]);\n                case \"DeclareModule\":\n                  return J(L, [\"module \", V(\"id\"), \" \", V(\"body\")]);\n                case \"DeclareModuleExports\":\n                  return J(L, [\"module.exports\", \": \", V(\"typeAnnotation\"), Y]);\n                case \"DeclareVariable\":\n                  return J(L, [\"var \", V(\"id\"), Y]);\n                case \"DeclareOpaqueType\":\n                  return J(L, N(L, Q, V));\n                case \"DeclareInterface\":\n                  return J(L, m(L, Q, V));\n                case \"DeclareTypeAlias\":\n                  return J(L, x(L, Q, V));\n                case \"DeclareExportDeclaration\":\n                  return J(L, d(L, Q, V));\n                case \"DeclareExportAllDeclaration\":\n                  return J(L, v(L, Q, V));\n                case \"OpaqueType\":\n                  return N(L, Q, V);\n                case \"TypeAlias\":\n                  return x(L, Q, V);\n                case \"IntersectionTypeAnnotation\":\n                  return I(L, Q, V);\n                case \"UnionTypeAnnotation\":\n                  return P(L, Q, V);\n                case \"FunctionTypeAnnotation\":\n                  return $(L, Q, V);\n                case \"TupleTypeAnnotation\":\n                  return D(L, Q, V);\n                case \"GenericTypeAnnotation\":\n                  return [V(\"id\"), o(L, Q, V, \"typeParameters\")];\n                case \"IndexedAccessType\":\n                case \"OptionalIndexedAccessType\":\n                  return T(L, Q, V);\n                case \"TypeAnnotation\":\n                  return V(\"typeAnnotation\");\n                case \"TypeParameter\":\n                  return C(L, Q, V);\n                case \"TypeofTypeAnnotation\":\n                  return [\"typeof \", V(\"argument\")];\n                case \"ExistsTypeAnnotation\":\n                  return \"*\";\n                case \"EmptyTypeAnnotation\":\n                  return \"empty\";\n                case \"MixedTypeAnnotation\":\n                  return \"mixed\";\n                case \"ArrayTypeAnnotation\":\n                  return [V(\"elementType\"), \"[]\"];\n                case \"BooleanLiteralTypeAnnotation\":\n                  return String(j.value);\n                case \"EnumDeclaration\":\n                  return [\"enum \", V(\"id\"), \" \", V(\"body\")];\n                case \"EnumBooleanBody\":\n                case \"EnumNumberBody\":\n                case \"EnumStringBody\":\n                case \"EnumSymbolBody\": {\n                  if (j.type === \"EnumSymbolBody\" || j.explicitType) {\n                    let ee = null;\n                    switch (j.type) {\n                      case \"EnumBooleanBody\":\n                        ee = \"boolean\";\n                        break;\n                      case \"EnumNumberBody\":\n                        ee = \"number\";\n                        break;\n                      case \"EnumStringBody\":\n                        ee = \"string\";\n                        break;\n                      case \"EnumSymbolBody\":\n                        ee = \"symbol\";\n                        break;\n                    }\n                    ie.push(\"of \", ee, \" \");\n                  }\n                  if (j.members.length === 0 && !j.hasUnknownMembers) ie.push(l([\"{\", s2(L, Q), i, \"}\"]));\n                  else {\n                    let ee = j.members.length > 0 ? [u, S(L, Q, \"members\", V), j.hasUnknownMembers || f(Q) ? \",\" : \"\"] : [];\n                    ie.push(l([\"{\", p([...ee, ...j.hasUnknownMembers ? [u, \"...\"] : []]), s2(L, Q, true), u, \"}\"]));\n                  }\n                  return ie;\n                }\n                case \"EnumBooleanMember\":\n                case \"EnumNumberMember\":\n                case \"EnumStringMember\":\n                  return [V(\"id\"), \" = \", typeof j.init == \"object\" ? V(\"init\") : String(j.init)];\n                case \"EnumDefaultedMember\":\n                  return V(\"id\");\n                case \"FunctionTypeParam\": {\n                  let ee = j.name ? V(\"name\") : L.getParentNode().this === j ? \"this\" : \"\";\n                  return [ee, k(L), ee ? \": \" : \"\", V(\"typeAnnotation\")];\n                }\n                case \"InterfaceDeclaration\":\n                case \"InterfaceTypeAnnotation\":\n                  return m(L, Q, V);\n                case \"ClassImplements\":\n                case \"InterfaceExtends\":\n                  return [V(\"id\"), V(\"typeParameters\")];\n                case \"NullableTypeAnnotation\":\n                  return [\"?\", V(\"typeAnnotation\")];\n                case \"Variance\": {\n                  let { kind: ee } = j;\n                  return t.ok(ee === \"plus\" || ee === \"minus\"), ee === \"plus\" ? \"+\" : \"-\";\n                }\n                case \"ObjectTypeCallProperty\":\n                  return j.static && ie.push(\"static \"), ie.push(V(\"value\")), ie;\n                case \"ObjectTypeIndexer\":\n                  return [j.static ? \"static \" : \"\", j.variance ? V(\"variance\") : \"\", \"[\", V(\"id\"), j.id ? \": \" : \"\", V(\"key\"), \"]: \", V(\"value\")];\n                case \"ObjectTypeProperty\": {\n                  let ee = \"\";\n                  return j.proto ? ee = \"proto \" : j.static && (ee = \"static \"), [ee, g(j) ? j.kind + \" \" : \"\", j.variance ? V(\"variance\") : \"\", B(L, Q, V), k(L), h(j) ? \"\" : \": \", V(\"value\")];\n                }\n                case \"ObjectTypeAnnotation\":\n                  return b(L, Q, V);\n                case \"ObjectTypeInternalSlot\":\n                  return [j.static ? \"static \" : \"\", \"[[\", V(\"id\"), \"]]\", k(L), j.method ? \"\" : \": \", V(\"value\")];\n                case \"ObjectTypeSpreadProperty\":\n                  return R(L, Q, V);\n                case \"QualifiedTypeofIdentifier\":\n                case \"QualifiedTypeIdentifier\":\n                  return [V(\"qualification\"), \".\", V(\"id\")];\n                case \"StringLiteralTypeAnnotation\":\n                  return w(a(c(j), Q));\n                case \"NumberLiteralTypeAnnotation\":\n                  t.strictEqual(typeof j.value, \"number\");\n                case \"BigIntLiteralTypeAnnotation\":\n                  return j.extra ? n(j.extra.raw) : n(j.raw);\n                case \"TypeCastExpression\":\n                  return [\"(\", V(\"expression\"), M(L, Q, V), \")\"];\n                case \"TypeParameterDeclaration\":\n                case \"TypeParameterInstantiation\": {\n                  let ee = o(L, Q, V, \"params\");\n                  if (Q.parser === \"flow\") {\n                    let ce = F(j), W = _(j), K = Q.originalText.lastIndexOf(\"/*\", ce), de = Q.originalText.indexOf(\"*/\", W);\n                    if (K !== -1 && de !== -1) {\n                      let ue = Q.originalText.slice(K + 2, de).trim();\n                      if (ue.startsWith(\"::\") && !ue.includes(\"/*\") && !ue.includes(\"*/\")) return [\"/*:: \", ee, \" */\"];\n                    }\n                  }\n                  return ee;\n                }\n                case \"InferredPredicate\":\n                  return \"%checks\";\n                case \"DeclaredPredicate\":\n                  return [\"%checks(\", V(\"value\"), \")\"];\n                case \"AnyTypeAnnotation\":\n                  return \"any\";\n                case \"BooleanTypeAnnotation\":\n                  return \"boolean\";\n                case \"BigIntTypeAnnotation\":\n                  return \"bigint\";\n                case \"NullLiteralTypeAnnotation\":\n                  return \"null\";\n                case \"NumberTypeAnnotation\":\n                  return \"number\";\n                case \"SymbolTypeAnnotation\":\n                  return \"symbol\";\n                case \"StringTypeAnnotation\":\n                  return \"string\";\n                case \"VoidTypeAnnotation\":\n                  return \"void\";\n                case \"ThisTypeAnnotation\":\n                  return \"this\";\n                case \"Node\":\n                case \"Printable\":\n                case \"SourceLocation\":\n                case \"Position\":\n                case \"Statement\":\n                case \"Function\":\n                case \"Pattern\":\n                case \"Expression\":\n                case \"Declaration\":\n                case \"Specifier\":\n                case \"NamedSpecifier\":\n                case \"Comment\":\n                case \"MemberTypeAnnotation\":\n                case \"Type\":\n                  throw new Error(\"unprintable type: \" + JSON.stringify(j.type));\n              }\n            }\n            function J(L, Q) {\n              let V = y(L);\n              return V ? (t.strictEqual(V.type, \"DeclareExportDeclaration\"), Q) : [\"declare \", Q];\n            }\n            r.exports = { printFlow: q };\n          } }), gd = te({ \"src/language-js/utils/is-ts-keyword-type.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2) {\n              let { type: a } = s2;\n              return a.startsWith(\"TS\") && a.endsWith(\"Keyword\");\n            }\n            r.exports = t;\n          } }), Bo = te({ \"src/language-js/print/ternary.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { hasNewlineInRange: t } = Ue(), { isJsxNode: s2, getComments: a, isCallExpression: n, isMemberExpression: u, isTSTypeExpression: i } = Ke(), { locStart: l, locEnd: p } = ut(), y = Pt(), { builders: { line: h, softline: g, group: c, indent: f, align: F, ifBreak: _, dedent: w, breakParent: E } } = qe();\n            function N(D) {\n              let T = [D];\n              for (let m = 0; m < T.length; m++) {\n                let C = T[m];\n                for (let o of [\"test\", \"consequent\", \"alternate\"]) {\n                  let d = C[o];\n                  if (s2(d)) return true;\n                  d.type === \"ConditionalExpression\" && T.push(d);\n                }\n              }\n              return false;\n            }\n            function x(D, T, m) {\n              let C = D.getValue(), o = C.type === \"ConditionalExpression\", d = o ? \"alternate\" : \"falseType\", v = D.getParentNode(), S = o ? m(\"test\") : [m(\"checkType\"), \" \", \"extends\", \" \", m(\"extendsType\")];\n              return v.type === C.type && v[d] === C ? F(2, S) : S;\n            }\n            var I = /* @__PURE__ */ new Map([[\"AssignmentExpression\", \"right\"], [\"VariableDeclarator\", \"init\"], [\"ReturnStatement\", \"argument\"], [\"ThrowStatement\", \"argument\"], [\"UnaryExpression\", \"argument\"], [\"YieldExpression\", \"argument\"]]);\n            function P(D) {\n              let T = D.getValue();\n              if (T.type !== \"ConditionalExpression\") return false;\n              let m, C = T;\n              for (let o = 0; !m; o++) {\n                let d = D.getParentNode(o);\n                if (n(d) && d.callee === C || u(d) && d.object === C || d.type === \"TSNonNullExpression\" && d.expression === C) {\n                  C = d;\n                  continue;\n                }\n                d.type === \"NewExpression\" && d.callee === C || i(d) && d.expression === C ? (m = D.getParentNode(o + 1), C = d) : m = d;\n              }\n              return C === T ? false : m[I.get(m.type)] === C;\n            }\n            function $(D, T, m) {\n              let C = D.getValue(), o = C.type === \"ConditionalExpression\", d = o ? \"consequent\" : \"trueType\", v = o ? \"alternate\" : \"falseType\", S = o ? [\"test\"] : [\"checkType\", \"extendsType\"], b = C[d], B = C[v], k = [], M = false, R = D.getParentNode(), q = R.type === C.type && S.some((ue) => R[ue] === C), J = R.type === C.type && !q, L, Q, V = 0;\n              do\n                Q = L || C, L = D.getParentNode(V), V++;\n              while (L && L.type === C.type && S.every((ue) => L[ue] !== Q));\n              let j = L || R, Y = Q;\n              if (o && (s2(C[S[0]]) || s2(b) || s2(B) || N(Y))) {\n                M = true, J = true;\n                let ue = (z) => [_(\"(\"), f([g, z]), g, _(\")\")], Fe = (z) => z.type === \"NullLiteral\" || z.type === \"Literal\" && z.value === null || z.type === \"Identifier\" && z.name === \"undefined\";\n                k.push(\" ? \", Fe(b) ? m(d) : ue(m(d)), \" : \", B.type === C.type || Fe(B) ? m(v) : ue(m(v)));\n              } else {\n                let ue = [h, \"? \", b.type === C.type ? _(\"\", \"(\") : \"\", F(2, m(d)), b.type === C.type ? _(\"\", \")\") : \"\", h, \": \", B.type === C.type ? m(v) : F(2, m(v))];\n                k.push(R.type !== C.type || R[v] === C || q ? ue : T.useTabs ? w(f(ue)) : F(Math.max(0, T.tabWidth - 2), ue));\n              }\n              let ee = [...S.map((ue) => a(C[ue])), a(b), a(B)].flat().some((ue) => y(ue) && t(T.originalText, l(ue), p(ue))), ce = (ue) => R === j ? c(ue, { shouldBreak: ee }) : ee ? [ue, E] : ue, W = !M && (u(R) || R.type === \"NGPipeExpression\" && R.left === C) && !R.computed, K = P(D), de = ce([x(D, T, m), J ? k : f(k), o && W && !K ? g : \"\"]);\n              return q || K ? c([f([g, de]), g]) : de;\n            }\n            r.exports = { printTernary: $ };\n          } }), No = te({ \"src/language-js/print/statement.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { hardline: t } } = qe(), s2 = qt(), { getLeftSidePathName: a, hasNakedLeftSide: n, isJsxNode: u, isTheOnlyJsxElementInMarkdown: i, hasComment: l, CommentCheckFlags: p, isNextLineEmpty: y } = Ke(), { shouldPrintParamsWithoutParens: h } = qr();\n            function g(x, I, P, $) {\n              let D = x.getValue(), T = [], m = D.type === \"ClassBody\", C = c(D[$]);\n              return x.each((o, d, v) => {\n                let S = o.getValue();\n                if (S.type === \"EmptyStatement\") return;\n                let b = P();\n                !I.semi && !m && !i(I, o) && f(o, I) ? l(S, p.Leading) ? T.push(P([], { needsSemi: true })) : T.push(\";\", b) : T.push(b), !I.semi && m && E(S) && N(S, v[d + 1]) && T.push(\";\"), S !== C && (T.push(t), y(S, I) && T.push(t));\n              }, $), T;\n            }\n            function c(x) {\n              for (let I = x.length - 1; I >= 0; I--) {\n                let P = x[I];\n                if (P.type !== \"EmptyStatement\") return P;\n              }\n            }\n            function f(x, I) {\n              return x.getNode().type !== \"ExpressionStatement\" ? false : x.call(($) => F($, I), \"expression\");\n            }\n            function F(x, I) {\n              let P = x.getValue();\n              switch (P.type) {\n                case \"ParenthesizedExpression\":\n                case \"TypeCastExpression\":\n                case \"ArrayExpression\":\n                case \"ArrayPattern\":\n                case \"TemplateLiteral\":\n                case \"TemplateElement\":\n                case \"RegExpLiteral\":\n                  return true;\n                case \"ArrowFunctionExpression\": {\n                  if (!h(x, I)) return true;\n                  break;\n                }\n                case \"UnaryExpression\": {\n                  let { prefix: $, operator: D } = P;\n                  if ($ && (D === \"+\" || D === \"-\")) return true;\n                  break;\n                }\n                case \"BindExpression\": {\n                  if (!P.object) return true;\n                  break;\n                }\n                case \"Literal\": {\n                  if (P.regex) return true;\n                  break;\n                }\n                default:\n                  if (u(P)) return true;\n              }\n              return s2(x, I) ? true : n(P) ? x.call(($) => F($, I), ...a(x, P)) : false;\n            }\n            function _(x, I, P) {\n              return g(x, I, P, \"body\");\n            }\n            function w(x, I, P) {\n              return g(x, I, P, \"consequent\");\n            }\n            var E = (x) => {\n              let { type: I } = x;\n              return I === \"ClassProperty\" || I === \"PropertyDefinition\" || I === \"ClassPrivateProperty\" || I === \"ClassAccessorProperty\" || I === \"AccessorProperty\" || I === \"TSAbstractPropertyDefinition\" || I === \"TSAbstractAccessorProperty\";\n            };\n            function N(x, I) {\n              let { type: P, name: $ } = x.key;\n              if (!x.computed && P === \"Identifier\" && ($ === \"static\" || $ === \"get\" || $ === \"set\" || $ === \"accessor\") && !x.value && !x.typeAnnotation) return true;\n              if (!I || I.static || I.accessibility) return false;\n              if (!I.computed) {\n                let D = I.key && I.key.name;\n                if (D === \"in\" || D === \"instanceof\") return true;\n              }\n              if (E(I) && I.variance && !I.static && !I.declare) return true;\n              switch (I.type) {\n                case \"ClassProperty\":\n                case \"PropertyDefinition\":\n                case \"TSAbstractPropertyDefinition\":\n                  return I.computed;\n                case \"MethodDefinition\":\n                case \"TSAbstractMethodDefinition\":\n                case \"ClassMethod\":\n                case \"ClassPrivateMethod\": {\n                  if ((I.value ? I.value.async : I.async) || I.kind === \"get\" || I.kind === \"set\") return false;\n                  let T = I.value ? I.value.generator : I.generator;\n                  return !!(I.computed || T);\n                }\n                case \"TSIndexSignature\":\n                  return true;\n              }\n              return false;\n            }\n            r.exports = { printBody: _, printSwitchCaseConsequent: w };\n          } }), wo = te({ \"src/language-js/print/block.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { isNonEmptyArray: s2 } = Ue(), { builders: { hardline: a, indent: n } } = qe(), { hasComment: u, CommentCheckFlags: i, isNextLineEmpty: l } = Ke(), { printHardlineAfterHeritage: p } = nr(), { printBody: y } = No();\n            function h(c, f, F) {\n              let _ = c.getValue(), w = [];\n              if (_.type === \"StaticBlock\" && w.push(\"static \"), _.type === \"ClassBody\" && s2(_.body)) {\n                let N = c.getParentNode();\n                w.push(p(N));\n              }\n              w.push(\"{\");\n              let E = g(c, f, F);\n              if (E) w.push(n([a, E]), a);\n              else {\n                let N = c.getParentNode(), x = c.getParentNode(1);\n                N.type === \"ArrowFunctionExpression\" || N.type === \"FunctionExpression\" || N.type === \"FunctionDeclaration\" || N.type === \"ObjectMethod\" || N.type === \"ClassMethod\" || N.type === \"ClassPrivateMethod\" || N.type === \"ForStatement\" || N.type === \"WhileStatement\" || N.type === \"DoWhileStatement\" || N.type === \"DoExpression\" || N.type === \"CatchClause\" && !x.finalizer || N.type === \"TSModuleDeclaration\" || N.type === \"TSDeclareFunction\" || _.type === \"StaticBlock\" || _.type === \"ClassBody\" || w.push(a);\n              }\n              return w.push(\"}\"), w;\n            }\n            function g(c, f, F) {\n              let _ = c.getValue(), w = s2(_.directives), E = _.body.some((I) => I.type !== \"EmptyStatement\"), N = u(_, i.Dangling);\n              if (!w && !E && !N) return \"\";\n              let x = [];\n              if (w && c.each((I, P, $) => {\n                x.push(F()), (P < $.length - 1 || E || N) && (x.push(a), l(I.getValue(), f) && x.push(a));\n              }, \"directives\"), E && x.push(y(c, f, F)), N && x.push(t(c, f, true)), _.type === \"Program\") {\n                let I = c.getParentNode();\n                (!I || I.type !== \"ModuleExpression\") && x.push(a);\n              }\n              return x;\n            }\n            r.exports = { printBlock: h, printBlockBody: g };\n          } }), yd = te({ \"src/language-js/print/typescript.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { hasNewlineInRange: s2 } = Ue(), { builders: { join: a, line: n, hardline: u, softline: i, group: l, indent: p, conditionalGroup: y, ifBreak: h } } = qe(), { isStringLiteral: g, getTypeScriptMappedTypeModifier: c, shouldPrintComma: f, isCallExpression: F, isMemberExpression: _ } = Ke(), w = gd(), { locStart: E, locEnd: N } = ut(), { printOptionalToken: x, printTypeScriptModifiers: I } = ct(), { printTernary: P } = Bo(), { printFunctionParameters: $, shouldGroupFunctionParameters: D } = Lr(), { printTemplateLiteral: T } = jt(), { printArrayItems: m } = er(), { printObject: C } = uu(), { printClassProperty: o, printClassMethod: d } = nr(), { printTypeParameter: v, printTypeParameters: S } = jr(), { printPropertyKey: b } = rr(), { printFunction: B, printMethodInternal: k } = qr(), { printInterface: M } = bo(), { printBlock: R } = wo(), { printTypeAlias: q, printIntersectionType: J, printUnionType: L, printFunctionType: Q, printTupleType: V, printIndexedAccessType: j, printJSDocType: Y } = Or();\n            function ie(ee, ce, W) {\n              let K = ee.getValue();\n              if (!K.type.startsWith(\"TS\")) return;\n              if (w(K)) return K.type.slice(2, -7).toLowerCase();\n              let de = ce.semi ? \";\" : \"\", ue = [];\n              switch (K.type) {\n                case \"TSThisType\":\n                  return \"this\";\n                case \"TSTypeAssertion\": {\n                  let Fe = !(K.expression.type === \"ArrayExpression\" || K.expression.type === \"ObjectExpression\"), z = l([\"<\", p([i, W(\"typeAnnotation\")]), i, \">\"]), U = [h(\"(\"), p([i, W(\"expression\")]), i, h(\")\")];\n                  return Fe ? y([[z, W(\"expression\")], [z, l(U, { shouldBreak: true })], [z, W(\"expression\")]]) : l([z, W(\"expression\")]);\n                }\n                case \"TSDeclareFunction\":\n                  return B(ee, W, ce);\n                case \"TSExportAssignment\":\n                  return [\"export = \", W(\"expression\"), de];\n                case \"TSModuleBlock\":\n                  return R(ee, ce, W);\n                case \"TSInterfaceBody\":\n                case \"TSTypeLiteral\":\n                  return C(ee, ce, W);\n                case \"TSTypeAliasDeclaration\":\n                  return q(ee, ce, W);\n                case \"TSQualifiedName\":\n                  return a(\".\", [W(\"left\"), W(\"right\")]);\n                case \"TSAbstractMethodDefinition\":\n                case \"TSDeclareMethod\":\n                  return d(ee, ce, W);\n                case \"TSAbstractAccessorProperty\":\n                case \"TSAbstractPropertyDefinition\":\n                  return o(ee, ce, W);\n                case \"TSInterfaceHeritage\":\n                case \"TSExpressionWithTypeArguments\":\n                  return ue.push(W(\"expression\")), K.typeParameters && ue.push(W(\"typeParameters\")), ue;\n                case \"TSTemplateLiteralType\":\n                  return T(ee, W, ce);\n                case \"TSNamedTupleMember\":\n                  return [W(\"label\"), K.optional ? \"?\" : \"\", \": \", W(\"elementType\")];\n                case \"TSRestType\":\n                  return [\"...\", W(\"typeAnnotation\")];\n                case \"TSOptionalType\":\n                  return [W(\"typeAnnotation\"), \"?\"];\n                case \"TSInterfaceDeclaration\":\n                  return M(ee, ce, W);\n                case \"TSClassImplements\":\n                  return [W(\"expression\"), W(\"typeParameters\")];\n                case \"TSTypeParameterDeclaration\":\n                case \"TSTypeParameterInstantiation\":\n                  return S(ee, ce, W, \"params\");\n                case \"TSTypeParameter\":\n                  return v(ee, ce, W);\n                case \"TSSatisfiesExpression\":\n                case \"TSAsExpression\": {\n                  let Fe = K.type === \"TSAsExpression\" ? \"as\" : \"satisfies\";\n                  ue.push(W(\"expression\"), ` ${Fe} `, W(\"typeAnnotation\"));\n                  let z = ee.getParentNode();\n                  return F(z) && z.callee === K || _(z) && z.object === K ? l([p([i, ...ue]), i]) : ue;\n                }\n                case \"TSArrayType\":\n                  return [W(\"elementType\"), \"[]\"];\n                case \"TSPropertySignature\":\n                  return K.readonly && ue.push(\"readonly \"), ue.push(b(ee, ce, W), x(ee)), K.typeAnnotation && ue.push(\": \", W(\"typeAnnotation\")), K.initializer && ue.push(\" = \", W(\"initializer\")), ue;\n                case \"TSParameterProperty\":\n                  return K.accessibility && ue.push(K.accessibility + \" \"), K.export && ue.push(\"export \"), K.static && ue.push(\"static \"), K.override && ue.push(\"override \"), K.readonly && ue.push(\"readonly \"), ue.push(W(\"parameter\")), ue;\n                case \"TSTypeQuery\":\n                  return [\"typeof \", W(\"exprName\"), W(\"typeParameters\")];\n                case \"TSIndexSignature\": {\n                  let Fe = ee.getParentNode(), z = K.parameters.length > 1 ? h(f(ce) ? \",\" : \"\") : \"\", U = l([p([i, a([\", \", i], ee.map(W, \"parameters\"))]), z, i]);\n                  return [K.export ? \"export \" : \"\", K.accessibility ? [K.accessibility, \" \"] : \"\", K.static ? \"static \" : \"\", K.readonly ? \"readonly \" : \"\", K.declare ? \"declare \" : \"\", \"[\", K.parameters ? U : \"\", K.typeAnnotation ? \"]: \" : \"]\", K.typeAnnotation ? W(\"typeAnnotation\") : \"\", Fe.type === \"ClassBody\" ? de : \"\"];\n                }\n                case \"TSTypePredicate\":\n                  return [K.asserts ? \"asserts \" : \"\", W(\"parameterName\"), K.typeAnnotation ? [\" is \", W(\"typeAnnotation\")] : \"\"];\n                case \"TSNonNullExpression\":\n                  return [W(\"expression\"), \"!\"];\n                case \"TSImportType\":\n                  return [K.isTypeOf ? \"typeof \" : \"\", \"import(\", W(K.parameter ? \"parameter\" : \"argument\"), \")\", K.qualifier ? [\".\", W(\"qualifier\")] : \"\", S(ee, ce, W, \"typeParameters\")];\n                case \"TSLiteralType\":\n                  return W(\"literal\");\n                case \"TSIndexedAccessType\":\n                  return j(ee, ce, W);\n                case \"TSConstructSignatureDeclaration\":\n                case \"TSCallSignatureDeclaration\":\n                case \"TSConstructorType\": {\n                  if (K.type === \"TSConstructorType\" && K.abstract && ue.push(\"abstract \"), K.type !== \"TSCallSignatureDeclaration\" && ue.push(\"new \"), ue.push(l($(ee, W, ce, false, true))), K.returnType || K.typeAnnotation) {\n                    let Fe = K.type === \"TSConstructorType\";\n                    ue.push(Fe ? \" => \" : \": \", W(\"returnType\"), W(\"typeAnnotation\"));\n                  }\n                  return ue;\n                }\n                case \"TSTypeOperator\":\n                  return [K.operator, \" \", W(\"typeAnnotation\")];\n                case \"TSMappedType\": {\n                  let Fe = s2(ce.originalText, E(K), N(K));\n                  return l([\"{\", p([ce.bracketSpacing ? n : i, W(\"typeParameter\"), K.optional ? c(K.optional, \"?\") : \"\", K.typeAnnotation ? \": \" : \"\", W(\"typeAnnotation\"), h(de)]), t(ee, ce, true), ce.bracketSpacing ? n : i, \"}\"], { shouldBreak: Fe });\n                }\n                case \"TSMethodSignature\": {\n                  let Fe = K.kind && K.kind !== \"method\" ? `${K.kind} ` : \"\";\n                  ue.push(K.accessibility ? [K.accessibility, \" \"] : \"\", Fe, K.export ? \"export \" : \"\", K.static ? \"static \" : \"\", K.readonly ? \"readonly \" : \"\", K.abstract ? \"abstract \" : \"\", K.declare ? \"declare \" : \"\", K.computed ? \"[\" : \"\", W(\"key\"), K.computed ? \"]\" : \"\", x(ee));\n                  let z = $(ee, W, ce, false, true), U = K.returnType ? \"returnType\" : \"typeAnnotation\", Z = K[U], se = Z ? W(U) : \"\", fe = D(K, se);\n                  return ue.push(fe ? l(z) : z), Z && ue.push(\": \", l(se)), l(ue);\n                }\n                case \"TSNamespaceExportDeclaration\":\n                  return ue.push(\"export as namespace \", W(\"id\")), ce.semi && ue.push(\";\"), l(ue);\n                case \"TSEnumDeclaration\":\n                  return K.declare && ue.push(\"declare \"), K.modifiers && ue.push(I(ee, ce, W)), K.const && ue.push(\"const \"), ue.push(\"enum \", W(\"id\"), \" \"), K.members.length === 0 ? ue.push(l([\"{\", t(ee, ce), i, \"}\"])) : ue.push(l([\"{\", p([u, m(ee, ce, \"members\", W), f(ce, \"es5\") ? \",\" : \"\"]), t(ee, ce, true), u, \"}\"])), ue;\n                case \"TSEnumMember\":\n                  return K.computed ? ue.push(\"[\", W(\"id\"), \"]\") : ue.push(W(\"id\")), K.initializer && ue.push(\" = \", W(\"initializer\")), ue;\n                case \"TSImportEqualsDeclaration\":\n                  return K.isExport && ue.push(\"export \"), ue.push(\"import \"), K.importKind && K.importKind !== \"value\" && ue.push(K.importKind, \" \"), ue.push(W(\"id\"), \" = \", W(\"moduleReference\")), ce.semi && ue.push(\";\"), l(ue);\n                case \"TSExternalModuleReference\":\n                  return [\"require(\", W(\"expression\"), \")\"];\n                case \"TSModuleDeclaration\": {\n                  let Fe = ee.getParentNode(), z = g(K.id), U = Fe.type === \"TSModuleDeclaration\", Z = K.body && K.body.type === \"TSModuleDeclaration\";\n                  if (U) ue.push(\".\");\n                  else {\n                    K.declare && ue.push(\"declare \"), ue.push(I(ee, ce, W));\n                    let se = ce.originalText.slice(E(K), E(K.id));\n                    K.id.type === \"Identifier\" && K.id.name === \"global\" && !/namespace|module/.test(se) || ue.push(z || /(?:^|\\s)module(?:\\s|$)/.test(se) ? \"module \" : \"namespace \");\n                  }\n                  return ue.push(W(\"id\")), Z ? ue.push(W(\"body\")) : K.body ? ue.push(\" \", l(W(\"body\"))) : ue.push(de), ue;\n                }\n                case \"TSConditionalType\":\n                  return P(ee, ce, W);\n                case \"TSInferType\":\n                  return [\"infer\", \" \", W(\"typeParameter\")];\n                case \"TSIntersectionType\":\n                  return J(ee, ce, W);\n                case \"TSUnionType\":\n                  return L(ee, ce, W);\n                case \"TSFunctionType\":\n                  return Q(ee, ce, W);\n                case \"TSTupleType\":\n                  return V(ee, ce, W);\n                case \"TSTypeReference\":\n                  return [W(\"typeName\"), S(ee, ce, W, \"typeParameters\")];\n                case \"TSTypeAnnotation\":\n                  return W(\"typeAnnotation\");\n                case \"TSEmptyBodyFunctionExpression\":\n                  return k(ee, ce, W);\n                case \"TSJSDocAllType\":\n                  return \"*\";\n                case \"TSJSDocUnknownType\":\n                  return \"?\";\n                case \"TSJSDocNullableType\":\n                  return Y(ee, W, \"?\");\n                case \"TSJSDocNonNullableType\":\n                  return Y(ee, W, \"!\");\n                case \"TSInstantiationExpression\":\n                  return [W(\"expression\"), W(\"typeParameters\")];\n                default:\n                  throw new Error(`Unknown TypeScript node type: ${JSON.stringify(K.type)}.`);\n              }\n            }\n            r.exports = { printTypescript: ie };\n          } }), hd = te({ \"src/language-js/print/comment.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { hasNewline: t } = Ue(), { builders: { join: s2, hardline: a }, utils: { replaceTextEndOfLine: n } } = qe(), { isLineComment: u } = Ke(), { locStart: i, locEnd: l } = ut(), p = Pt();\n            function y(c, f) {\n              let F = c.getValue();\n              if (u(F)) return f.originalText.slice(i(F), l(F)).trimEnd();\n              if (p(F)) {\n                if (h(F)) {\n                  let E = g(F);\n                  return F.trailing && !t(f.originalText, i(F), { backwards: true }) ? [a, E] : E;\n                }\n                let _ = l(F), w = f.originalText.slice(_ - 3, _) === \"*-/\";\n                return [\"/*\", n(F.value), w ? \"*-/\" : \"*/\"];\n              }\n              throw new Error(\"Not a comment: \" + JSON.stringify(F));\n            }\n            function h(c) {\n              let f = `*${c.value}*`.split(`\n`);\n              return f.length > 1 && f.every((F) => F.trim()[0] === \"*\");\n            }\n            function g(c) {\n              let f = c.value.split(`\n`);\n              return [\"/*\", s2(a, f.map((F, _) => _ === 0 ? F.trimEnd() : \" \" + (_ < f.length - 1 ? F.trim() : F.trimStart()))), \"*/\"];\n            }\n            r.exports = { printComment: y };\n          } }), vd = te({ \"src/language-js/print/literal.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printString: t, printNumber: s2 } = Ue(), { replaceTextEndOfLine: a } = Yt(), { printDirective: n } = ct();\n            function u(y, h) {\n              let g = y.getNode();\n              switch (g.type) {\n                case \"RegExpLiteral\":\n                  return p(g);\n                case \"BigIntLiteral\":\n                  return l(g.bigint || g.extra.raw);\n                case \"NumericLiteral\":\n                  return s2(g.extra.raw);\n                case \"StringLiteral\":\n                  return a(t(g.extra.raw, h));\n                case \"NullLiteral\":\n                  return \"null\";\n                case \"BooleanLiteral\":\n                  return String(g.value);\n                case \"DecimalLiteral\":\n                  return s2(g.value) + \"m\";\n                case \"Literal\": {\n                  if (g.regex) return p(g.regex);\n                  if (g.bigint) return l(g.raw);\n                  if (g.decimal) return s2(g.decimal) + \"m\";\n                  let { value: c } = g;\n                  return typeof c == \"number\" ? s2(g.raw) : typeof c == \"string\" ? i(y) ? n(g.raw, h) : a(t(g.raw, h)) : String(c);\n                }\n              }\n            }\n            function i(y) {\n              if (y.getName() !== \"expression\") return;\n              let h = y.getParentNode();\n              return h.type === \"ExpressionStatement\" && h.directive;\n            }\n            function l(y) {\n              return y.toLowerCase();\n            }\n            function p(y) {\n              let { pattern: h, flags: g } = y;\n              return g = [...g].sort().join(\"\"), `/${h}/${g}`;\n            }\n            r.exports = { printLiteral: u };\n          } }), Cd = te({ \"src/language-js/printer-estree.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { printDanglingComments: t } = et(), { hasNewline: s2 } = Ue(), { builders: { join: a, line: n, hardline: u, softline: i, group: l, indent: p }, utils: { replaceTextEndOfLine: y } } = qe(), h = td(), g = rd(), { insertPragma: c } = Co(), f = Eo(), F = qt(), _ = Fo(), { hasFlowShorthandAnnotationComment: w, hasComment: E, CommentCheckFlags: N, isTheOnlyJsxElementInMarkdown: x, isLineComment: I, isNextLineEmpty: P, needsHardlineAfterDanglingComment: $, hasIgnoreComment: D, isCallExpression: T, isMemberExpression: m, markerForIfWithoutBlockAndSameLineComment: C } = Ke(), { locStart: o, locEnd: d } = ut(), v = Pt(), { printHtmlBinding: S, isVueEventBindingExpression: b } = pd(), { printAngular: B } = fd(), { printJsx: k, hasJsxIgnoreComment: M } = Dd(), { printFlow: R } = dd(), { printTypescript: q } = yd(), { printOptionalToken: J, printBindExpressionCallee: L, printTypeAnnotation: Q, adjustClause: V, printRestSpread: j, printDefiniteToken: Y, printDirective: ie } = ct(), { printImportDeclaration: ee, printExportDeclaration: ce, printExportAllDeclaration: W, printModuleSpecifier: K } = To(), { printTernary: de } = Bo(), { printTemplateLiteral: ue } = jt(), { printArray: Fe } = er(), { printObject: z } = uu(), { printClass: U, printClassMethod: Z, printClassProperty: se } = nr(), { printProperty: fe } = rr(), { printFunction: ge, printArrowFunction: he, printMethod: we, printReturnStatement: ke, printThrowStatement: Re } = qr(), { printCallExpression: Ne } = xo(), { printVariableDeclarator: Pe, printAssignmentExpression: oe } = tr(), { printBinaryishExpression: H } = ru(), { printSwitchCaseConsequent: pe } = No(), { printMemberExpression: X } = So(), { printBlock: le, printBlockBody: Ae } = wo(), { printComment: Ee } = hd(), { printLiteral: De } = vd(), { printDecorators: A } = nu();\n            function G(Ce, Be, ve, ze) {\n              let be = re(Ce, Be, ve, ze);\n              if (!be) return \"\";\n              let Ye = Ce.getValue(), { type: Se } = Ye;\n              if (Se === \"ClassMethod\" || Se === \"ClassPrivateMethod\" || Se === \"ClassProperty\" || Se === \"ClassAccessorProperty\" || Se === \"AccessorProperty\" || Se === \"TSAbstractAccessorProperty\" || Se === \"PropertyDefinition\" || Se === \"TSAbstractPropertyDefinition\" || Se === \"ClassPrivateProperty\" || Se === \"MethodDefinition\" || Se === \"TSAbstractMethodDefinition\" || Se === \"TSDeclareMethod\") return be;\n              let Ie = [be], Oe = A(Ce, Be, ve), Je = Ye.type === \"ClassExpression\" && Oe;\n              if (Oe && (Ie = [...Oe, be], !Je)) return l(Ie);\n              if (!F(Ce, Be)) return ze && ze.needsSemi && Ie.unshift(\";\"), Ie.length === 1 && Ie[0] === be ? be : Ie;\n              if (Je && (Ie = [p([n, ...Ie])]), Ie.unshift(\"(\"), ze && ze.needsSemi && Ie.unshift(\";\"), w(Ye)) {\n                let [je] = Ye.trailingComments;\n                Ie.push(\" /*\", je.value.trimStart(), \"*/\"), je.printed = true;\n              }\n              return Je && Ie.push(n), Ie.push(\")\"), Ie;\n            }\n            function re(Ce, Be, ve, ze) {\n              let be = Ce.getValue(), Ye = Be.semi ? \";\" : \"\";\n              if (!be) return \"\";\n              if (typeof be == \"string\") return be;\n              for (let Ie of [De, S, B, k, R, q]) {\n                let Oe = Ie(Ce, Be, ve);\n                if (typeof Oe < \"u\") return Oe;\n              }\n              let Se = [];\n              switch (be.type) {\n                case \"JsExpressionRoot\":\n                  return ve(\"node\");\n                case \"JsonRoot\":\n                  return [ve(\"node\"), u];\n                case \"File\":\n                  return be.program && be.program.interpreter && Se.push(ve([\"program\", \"interpreter\"])), Se.push(ve(\"program\")), Se;\n                case \"Program\":\n                  return Ae(Ce, Be, ve);\n                case \"EmptyStatement\":\n                  return \"\";\n                case \"ExpressionStatement\": {\n                  if (Be.parser === \"__vue_event_binding\" || Be.parser === \"__vue_ts_event_binding\") {\n                    let Oe = Ce.getParentNode();\n                    if (Oe.type === \"Program\" && Oe.body.length === 1 && Oe.body[0] === be) return [ve(\"expression\"), b(be.expression) ? \";\" : \"\"];\n                  }\n                  let Ie = t(Ce, Be, true, (Oe) => {\n                    let { marker: Je } = Oe;\n                    return Je === C;\n                  });\n                  return [ve(\"expression\"), x(Be, Ce) ? \"\" : Ye, Ie ? [\" \", Ie] : \"\"];\n                }\n                case \"ParenthesizedExpression\":\n                  return !E(be.expression) && (be.expression.type === \"ObjectExpression\" || be.expression.type === \"ArrayExpression\") ? [\"(\", ve(\"expression\"), \")\"] : l([\"(\", p([i, ve(\"expression\")]), i, \")\"]);\n                case \"AssignmentExpression\":\n                  return oe(Ce, Be, ve);\n                case \"VariableDeclarator\":\n                  return Pe(Ce, Be, ve);\n                case \"BinaryExpression\":\n                case \"LogicalExpression\":\n                  return H(Ce, Be, ve);\n                case \"AssignmentPattern\":\n                  return [ve(\"left\"), \" = \", ve(\"right\")];\n                case \"OptionalMemberExpression\":\n                case \"MemberExpression\":\n                  return X(Ce, Be, ve);\n                case \"MetaProperty\":\n                  return [ve(\"meta\"), \".\", ve(\"property\")];\n                case \"BindExpression\":\n                  return be.object && Se.push(ve(\"object\")), Se.push(l(p([i, L(Ce, Be, ve)]))), Se;\n                case \"Identifier\":\n                  return [be.name, J(Ce), Y(Ce), Q(Ce, Be, ve)];\n                case \"V8IntrinsicIdentifier\":\n                  return [\"%\", be.name];\n                case \"SpreadElement\":\n                case \"SpreadElementPattern\":\n                case \"SpreadProperty\":\n                case \"SpreadPropertyPattern\":\n                case \"RestElement\":\n                  return j(Ce, Be, ve);\n                case \"FunctionDeclaration\":\n                case \"FunctionExpression\":\n                  return ge(Ce, ve, Be, ze);\n                case \"ArrowFunctionExpression\":\n                  return he(Ce, Be, ve, ze);\n                case \"YieldExpression\":\n                  return Se.push(\"yield\"), be.delegate && Se.push(\"*\"), be.argument && Se.push(\" \", ve(\"argument\")), Se;\n                case \"AwaitExpression\": {\n                  if (Se.push(\"await\"), be.argument) {\n                    Se.push(\" \", ve(\"argument\"));\n                    let Ie = Ce.getParentNode();\n                    if (T(Ie) && Ie.callee === be || m(Ie) && Ie.object === be) {\n                      Se = [p([i, ...Se]), i];\n                      let Oe = Ce.findAncestor((Je) => Je.type === \"AwaitExpression\" || Je.type === \"BlockStatement\");\n                      if (!Oe || Oe.type !== \"AwaitExpression\") return l(Se);\n                    }\n                  }\n                  return Se;\n                }\n                case \"ExportDefaultDeclaration\":\n                case \"ExportNamedDeclaration\":\n                  return ce(Ce, Be, ve);\n                case \"ExportAllDeclaration\":\n                  return W(Ce, Be, ve);\n                case \"ImportDeclaration\":\n                  return ee(Ce, Be, ve);\n                case \"ImportSpecifier\":\n                case \"ExportSpecifier\":\n                case \"ImportNamespaceSpecifier\":\n                case \"ExportNamespaceSpecifier\":\n                case \"ImportDefaultSpecifier\":\n                case \"ExportDefaultSpecifier\":\n                  return K(Ce, Be, ve);\n                case \"ImportAttribute\":\n                  return [ve(\"key\"), \": \", ve(\"value\")];\n                case \"Import\":\n                  return \"import\";\n                case \"BlockStatement\":\n                case \"StaticBlock\":\n                case \"ClassBody\":\n                  return le(Ce, Be, ve);\n                case \"ThrowStatement\":\n                  return Re(Ce, Be, ve);\n                case \"ReturnStatement\":\n                  return ke(Ce, Be, ve);\n                case \"NewExpression\":\n                case \"ImportExpression\":\n                case \"OptionalCallExpression\":\n                case \"CallExpression\":\n                  return Ne(Ce, Be, ve);\n                case \"ObjectExpression\":\n                case \"ObjectPattern\":\n                case \"RecordExpression\":\n                  return z(Ce, Be, ve);\n                case \"ObjectProperty\":\n                case \"Property\":\n                  return be.method || be.kind === \"get\" || be.kind === \"set\" ? we(Ce, Be, ve) : fe(Ce, Be, ve);\n                case \"ObjectMethod\":\n                  return we(Ce, Be, ve);\n                case \"Decorator\":\n                  return [\"@\", ve(\"expression\")];\n                case \"ArrayExpression\":\n                case \"ArrayPattern\":\n                case \"TupleExpression\":\n                  return Fe(Ce, Be, ve);\n                case \"SequenceExpression\": {\n                  let Ie = Ce.getParentNode(0);\n                  if (Ie.type === \"ExpressionStatement\" || Ie.type === \"ForStatement\") {\n                    let Oe = [];\n                    return Ce.each((Je, Te) => {\n                      Te === 0 ? Oe.push(ve()) : Oe.push(\",\", p([n, ve()]));\n                    }, \"expressions\"), l(Oe);\n                  }\n                  return l(a([\",\", n], Ce.map(ve, \"expressions\")));\n                }\n                case \"ThisExpression\":\n                  return \"this\";\n                case \"Super\":\n                  return \"super\";\n                case \"Directive\":\n                  return [ve(\"value\"), Ye];\n                case \"DirectiveLiteral\":\n                  return ie(be.extra.raw, Be);\n                case \"UnaryExpression\":\n                  return Se.push(be.operator), /[a-z]$/.test(be.operator) && Se.push(\" \"), E(be.argument) ? Se.push(l([\"(\", p([i, ve(\"argument\")]), i, \")\"])) : Se.push(ve(\"argument\")), Se;\n                case \"UpdateExpression\":\n                  return Se.push(ve(\"argument\"), be.operator), be.prefix && Se.reverse(), Se;\n                case \"ConditionalExpression\":\n                  return de(Ce, Be, ve);\n                case \"VariableDeclaration\": {\n                  let Ie = Ce.map(ve, \"declarations\"), Oe = Ce.getParentNode(), Je = Oe.type === \"ForStatement\" || Oe.type === \"ForInStatement\" || Oe.type === \"ForOfStatement\", Te = be.declarations.some((Me) => Me.init), je;\n                  return Ie.length === 1 && !E(be.declarations[0]) ? je = Ie[0] : Ie.length > 0 && (je = p(Ie[0])), Se = [be.declare ? \"declare \" : \"\", be.kind, je ? [\" \", je] : \"\", p(Ie.slice(1).map((Me) => [\",\", Te && !Je ? u : n, Me]))], Je && Oe.body !== be || Se.push(Ye), l(Se);\n                }\n                case \"WithStatement\":\n                  return l([\"with (\", ve(\"object\"), \")\", V(be.body, ve(\"body\"))]);\n                case \"IfStatement\": {\n                  let Ie = V(be.consequent, ve(\"consequent\")), Oe = l([\"if (\", l([p([i, ve(\"test\")]), i]), \")\", Ie]);\n                  if (Se.push(Oe), be.alternate) {\n                    let Je = E(be.consequent, N.Trailing | N.Line) || $(be), Te = be.consequent.type === \"BlockStatement\" && !Je;\n                    Se.push(Te ? \" \" : u), E(be, N.Dangling) && Se.push(t(Ce, Be, true), Je ? u : \" \"), Se.push(\"else\", l(V(be.alternate, ve(\"alternate\"), be.alternate.type === \"IfStatement\")));\n                  }\n                  return Se;\n                }\n                case \"ForStatement\": {\n                  let Ie = V(be.body, ve(\"body\")), Oe = t(Ce, Be, true), Je = Oe ? [Oe, i] : \"\";\n                  return !be.init && !be.test && !be.update ? [Je, l([\"for (;;)\", Ie])] : [Je, l([\"for (\", l([p([i, ve(\"init\"), \";\", n, ve(\"test\"), \";\", n, ve(\"update\")]), i]), \")\", Ie])];\n                }\n                case \"WhileStatement\":\n                  return l([\"while (\", l([p([i, ve(\"test\")]), i]), \")\", V(be.body, ve(\"body\"))]);\n                case \"ForInStatement\":\n                  return l([\"for (\", ve(\"left\"), \" in \", ve(\"right\"), \")\", V(be.body, ve(\"body\"))]);\n                case \"ForOfStatement\":\n                  return l([\"for\", be.await ? \" await\" : \"\", \" (\", ve(\"left\"), \" of \", ve(\"right\"), \")\", V(be.body, ve(\"body\"))]);\n                case \"DoWhileStatement\": {\n                  let Ie = V(be.body, ve(\"body\"));\n                  return Se = [l([\"do\", Ie])], be.body.type === \"BlockStatement\" ? Se.push(\" \") : Se.push(u), Se.push(\"while (\", l([p([i, ve(\"test\")]), i]), \")\", Ye), Se;\n                }\n                case \"DoExpression\":\n                  return [be.async ? \"async \" : \"\", \"do \", ve(\"body\")];\n                case \"BreakStatement\":\n                  return Se.push(\"break\"), be.label && Se.push(\" \", ve(\"label\")), Se.push(Ye), Se;\n                case \"ContinueStatement\":\n                  return Se.push(\"continue\"), be.label && Se.push(\" \", ve(\"label\")), Se.push(Ye), Se;\n                case \"LabeledStatement\":\n                  return be.body.type === \"EmptyStatement\" ? [ve(\"label\"), \":;\"] : [ve(\"label\"), \": \", ve(\"body\")];\n                case \"TryStatement\":\n                  return [\"try \", ve(\"block\"), be.handler ? [\" \", ve(\"handler\")] : \"\", be.finalizer ? [\" finally \", ve(\"finalizer\")] : \"\"];\n                case \"CatchClause\":\n                  if (be.param) {\n                    let Ie = E(be.param, (Je) => !v(Je) || Je.leading && s2(Be.originalText, d(Je)) || Je.trailing && s2(Be.originalText, o(Je), { backwards: true })), Oe = ve(\"param\");\n                    return [\"catch \", Ie ? [\"(\", p([i, Oe]), i, \") \"] : [\"(\", Oe, \") \"], ve(\"body\")];\n                  }\n                  return [\"catch \", ve(\"body\")];\n                case \"SwitchStatement\":\n                  return [l([\"switch (\", p([i, ve(\"discriminant\")]), i, \")\"]), \" {\", be.cases.length > 0 ? p([u, a(u, Ce.map((Ie, Oe, Je) => {\n                    let Te = Ie.getValue();\n                    return [ve(), Oe !== Je.length - 1 && P(Te, Be) ? u : \"\"];\n                  }, \"cases\"))]) : \"\", u, \"}\"];\n                case \"SwitchCase\": {\n                  be.test ? Se.push(\"case \", ve(\"test\"), \":\") : Se.push(\"default:\"), E(be, N.Dangling) && Se.push(\" \", t(Ce, Be, true));\n                  let Ie = be.consequent.filter((Oe) => Oe.type !== \"EmptyStatement\");\n                  if (Ie.length > 0) {\n                    let Oe = pe(Ce, Be, ve);\n                    Se.push(Ie.length === 1 && Ie[0].type === \"BlockStatement\" ? [\" \", Oe] : p([u, Oe]));\n                  }\n                  return Se;\n                }\n                case \"DebuggerStatement\":\n                  return [\"debugger\", Ye];\n                case \"ClassDeclaration\":\n                case \"ClassExpression\":\n                  return U(Ce, Be, ve);\n                case \"ClassMethod\":\n                case \"ClassPrivateMethod\":\n                case \"MethodDefinition\":\n                  return Z(Ce, Be, ve);\n                case \"ClassProperty\":\n                case \"PropertyDefinition\":\n                case \"ClassPrivateProperty\":\n                case \"ClassAccessorProperty\":\n                case \"AccessorProperty\":\n                  return se(Ce, Be, ve);\n                case \"TemplateElement\":\n                  return y(be.value.raw);\n                case \"TemplateLiteral\":\n                  return ue(Ce, ve, Be);\n                case \"TaggedTemplateExpression\":\n                  return [ve(\"tag\"), ve(\"typeParameters\"), ve(\"quasi\")];\n                case \"PrivateIdentifier\":\n                  return [\"#\", ve(\"name\")];\n                case \"PrivateName\":\n                  return [\"#\", ve(\"id\")];\n                case \"InterpreterDirective\":\n                  return Se.push(\"#!\", be.value, u), P(be, Be) && Se.push(u), Se;\n                case \"TopicReference\":\n                  return \"%\";\n                case \"ArgumentPlaceholder\":\n                  return \"?\";\n                case \"ModuleExpression\": {\n                  Se.push(\"module {\");\n                  let Ie = ve(\"body\");\n                  return Ie && Se.push(p([u, Ie]), u), Se.push(\"}\"), Se;\n                }\n                default:\n                  throw new Error(\"unknown type: \" + JSON.stringify(be.type));\n              }\n            }\n            function ye(Ce) {\n              return Ce.type && !v(Ce) && !I(Ce) && Ce.type !== \"EmptyStatement\" && Ce.type !== \"TemplateElement\" && Ce.type !== \"Import\" && Ce.type !== \"TSEmptyBodyFunctionExpression\";\n            }\n            r.exports = { preprocess: _, print: G, embed: h, insertPragma: c, massageAstNode: g, hasPrettierIgnore(Ce) {\n              return D(Ce) || M(Ce);\n            }, willPrintOwnComments: f.willPrintOwnComments, canAttachComment: ye, printComment: Ee, isBlockComment: v, handleComments: { avoidAstMutation: true, ownLine: f.handleOwnLineComment, endOfLine: f.handleEndOfLineComment, remaining: f.handleRemainingComment }, getCommentChildNodes: f.getCommentChildNodes };\n          } }), Ed = te({ \"src/language-js/printer-estree-json.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { hardline: t, indent: s2, join: a } } = qe(), n = Fo();\n            function u(y, h, g) {\n              let c = y.getValue();\n              switch (c.type) {\n                case \"JsonRoot\":\n                  return [g(\"node\"), t];\n                case \"ArrayExpression\": {\n                  if (c.elements.length === 0) return \"[]\";\n                  let f = y.map(() => y.getValue() === null ? \"null\" : g(), \"elements\");\n                  return [\"[\", s2([t, a([\",\", t], f)]), t, \"]\"];\n                }\n                case \"ObjectExpression\":\n                  return c.properties.length === 0 ? \"{}\" : [\"{\", s2([t, a([\",\", t], y.map(g, \"properties\"))]), t, \"}\"];\n                case \"ObjectProperty\":\n                  return [g(\"key\"), \": \", g(\"value\")];\n                case \"UnaryExpression\":\n                  return [c.operator === \"+\" ? \"\" : c.operator, g(\"argument\")];\n                case \"NullLiteral\":\n                  return \"null\";\n                case \"BooleanLiteral\":\n                  return c.value ? \"true\" : \"false\";\n                case \"StringLiteral\":\n                  return JSON.stringify(c.value);\n                case \"NumericLiteral\":\n                  return i(y) ? JSON.stringify(String(c.value)) : JSON.stringify(c.value);\n                case \"Identifier\":\n                  return i(y) ? JSON.stringify(c.name) : c.name;\n                case \"TemplateLiteral\":\n                  return g([\"quasis\", 0]);\n                case \"TemplateElement\":\n                  return JSON.stringify(c.value.cooked);\n                default:\n                  throw new Error(\"unknown type: \" + JSON.stringify(c.type));\n              }\n            }\n            function i(y) {\n              return y.getName() === \"key\" && y.getParentNode().type === \"ObjectProperty\";\n            }\n            var l = /* @__PURE__ */ new Set([\"start\", \"end\", \"extra\", \"loc\", \"comments\", \"leadingComments\", \"trailingComments\", \"innerComments\", \"errors\", \"range\", \"tokens\"]);\n            function p(y, h) {\n              let { type: g } = y;\n              if (g === \"ObjectProperty\") {\n                let { key: c } = y;\n                c.type === \"Identifier\" ? h.key = { type: \"StringLiteral\", value: c.name } : c.type === \"NumericLiteral\" && (h.key = { type: \"StringLiteral\", value: String(c.value) });\n                return;\n              }\n              if (g === \"UnaryExpression\" && y.operator === \"+\") return h.argument;\n              if (g === \"ArrayExpression\") {\n                for (let [c, f] of y.elements.entries()) f === null && h.elements.splice(c, 0, { type: \"NullLiteral\" });\n                return;\n              }\n              if (g === \"TemplateLiteral\") return { type: \"StringLiteral\", value: y.quasis[0].value.cooked };\n            }\n            p.ignoredProperties = l, r.exports = { preprocess: n, print: u, massageAstNode: p };\n          } }), Mt = te({ \"src/common/common-options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = \"Common\";\n            r.exports = { bracketSpacing: { since: \"0.0.0\", category: t, type: \"boolean\", default: true, description: \"Print spaces between brackets.\", oppositeDescription: \"Do not print spaces between brackets.\" }, singleQuote: { since: \"0.0.0\", category: t, type: \"boolean\", default: false, description: \"Use single quotes instead of double quotes.\" }, proseWrap: { since: \"1.8.2\", category: t, type: \"choice\", default: [{ since: \"1.8.2\", value: true }, { since: \"1.9.0\", value: \"preserve\" }], description: \"How to wrap prose.\", choices: [{ since: \"1.9.0\", value: \"always\", description: \"Wrap prose if it exceeds the print width.\" }, { since: \"1.9.0\", value: \"never\", description: \"Do not wrap prose.\" }, { since: \"1.9.0\", value: \"preserve\", description: \"Wrap prose as-is.\" }] }, bracketSameLine: { since: \"2.4.0\", category: t, type: \"boolean\", default: false, description: \"Put > of opening tags on the last line instead of on a new line.\" }, singleAttributePerLine: { since: \"2.6.0\", category: t, type: \"boolean\", default: false, description: \"Enforce single attribute per line in HTML, Vue and JSX.\" } };\n          } }), Fd = te({ \"src/language-js/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt(), s2 = \"JavaScript\";\n            r.exports = { arrowParens: { since: \"1.9.0\", category: s2, type: \"choice\", default: [{ since: \"1.9.0\", value: \"avoid\" }, { since: \"2.0.0\", value: \"always\" }], description: \"Include parentheses around a sole arrow function parameter.\", choices: [{ value: \"always\", description: \"Always include parens. Example: `(x) => x`\" }, { value: \"avoid\", description: \"Omit parens when possible. Example: `x => x`\" }] }, bracketSameLine: t.bracketSameLine, bracketSpacing: t.bracketSpacing, jsxBracketSameLine: { since: \"0.17.0\", category: s2, type: \"boolean\", description: \"Put > on the last line instead of at a new line.\", deprecated: \"2.4.0\" }, semi: { since: \"1.0.0\", category: s2, type: \"boolean\", default: true, description: \"Print semicolons.\", oppositeDescription: \"Do not print semicolons, except at the beginning of lines which may need them.\" }, singleQuote: t.singleQuote, jsxSingleQuote: { since: \"1.15.0\", category: s2, type: \"boolean\", default: false, description: \"Use single quotes in JSX.\" }, quoteProps: { since: \"1.17.0\", category: s2, type: \"choice\", default: \"as-needed\", description: \"Change when properties in objects are quoted.\", choices: [{ value: \"as-needed\", description: \"Only add quotes around object properties where required.\" }, { value: \"consistent\", description: \"If at least one property in an object requires quotes, quote all properties.\" }, { value: \"preserve\", description: \"Respect the input use of quotes in object properties.\" }] }, trailingComma: { since: \"0.0.0\", category: s2, type: \"choice\", default: [{ since: \"0.0.0\", value: false }, { since: \"0.19.0\", value: \"none\" }, { since: \"2.0.0\", value: \"es5\" }], description: \"Print trailing commas wherever possible when multi-line.\", choices: [{ value: \"es5\", description: \"Trailing commas where valid in ES5 (objects, arrays, etc.)\" }, { value: \"none\", description: \"No trailing commas.\" }, { value: \"all\", description: \"Trailing commas wherever possible (including function arguments).\" }] }, singleAttributePerLine: t.singleAttributePerLine };\n          } }), Ad = te({ \"src/language-js/parse/parsers.js\"() {\n            ne();\n          } }), Ln = te({ \"node_modules/linguist-languages/data/JavaScript.json\"(e, r) {\n            r.exports = { name: \"JavaScript\", type: \"programming\", tmScope: \"source.js\", aceMode: \"javascript\", codemirrorMode: \"javascript\", codemirrorMimeType: \"text/javascript\", color: \"#f1e05a\", aliases: [\"js\", \"node\"], extensions: [\".js\", \"._js\", \".bones\", \".cjs\", \".es\", \".es6\", \".frag\", \".gs\", \".jake\", \".javascript\", \".jsb\", \".jscad\", \".jsfl\", \".jslib\", \".jsm\", \".jspre\", \".jss\", \".jsx\", \".mjs\", \".njs\", \".pac\", \".sjs\", \".ssjs\", \".xsjs\", \".xsjslib\"], filenames: [\"Jakefile\"], interpreters: [\"chakra\", \"d8\", \"gjs\", \"js\", \"node\", \"nodejs\", \"qjs\", \"rhino\", \"v8\", \"v8-shell\"], languageId: 183 };\n          } }), Sd = te({ \"node_modules/linguist-languages/data/TypeScript.json\"(e, r) {\n            r.exports = { name: \"TypeScript\", type: \"programming\", color: \"#3178c6\", aliases: [\"ts\"], interpreters: [\"deno\", \"ts-node\"], extensions: [\".ts\", \".cts\", \".mts\"], tmScope: \"source.ts\", aceMode: \"typescript\", codemirrorMode: \"javascript\", codemirrorMimeType: \"application/typescript\", languageId: 378 };\n          } }), xd = te({ \"node_modules/linguist-languages/data/TSX.json\"(e, r) {\n            r.exports = { name: \"TSX\", type: \"programming\", color: \"#3178c6\", group: \"TypeScript\", extensions: [\".tsx\"], tmScope: \"source.tsx\", aceMode: \"javascript\", codemirrorMode: \"jsx\", codemirrorMimeType: \"text/jsx\", languageId: 94901924 };\n          } }), wa = te({ \"node_modules/linguist-languages/data/JSON.json\"(e, r) {\n            r.exports = { name: \"JSON\", type: \"data\", color: \"#292929\", tmScope: \"source.json\", aceMode: \"json\", codemirrorMode: \"javascript\", codemirrorMimeType: \"application/json\", aliases: [\"geojson\", \"jsonl\", \"topojson\"], extensions: [\".json\", \".4DForm\", \".4DProject\", \".avsc\", \".geojson\", \".gltf\", \".har\", \".ice\", \".JSON-tmLanguage\", \".jsonl\", \".mcmeta\", \".tfstate\", \".tfstate.backup\", \".topojson\", \".webapp\", \".webmanifest\", \".yy\", \".yyp\"], filenames: [\".arcconfig\", \".auto-changelog\", \".c8rc\", \".htmlhintrc\", \".imgbotconfig\", \".nycrc\", \".tern-config\", \".tern-project\", \".watchmanconfig\", \"Pipfile.lock\", \"composer.lock\", \"mcmod.info\"], languageId: 174 };\n          } }), bd = te({ \"node_modules/linguist-languages/data/JSON with Comments.json\"(e, r) {\n            r.exports = { name: \"JSON with Comments\", type: \"data\", color: \"#292929\", group: \"JSON\", tmScope: \"source.js\", aceMode: \"javascript\", codemirrorMode: \"javascript\", codemirrorMimeType: \"text/javascript\", aliases: [\"jsonc\"], extensions: [\".jsonc\", \".code-snippets\", \".sublime-build\", \".sublime-commands\", \".sublime-completions\", \".sublime-keymap\", \".sublime-macro\", \".sublime-menu\", \".sublime-mousemap\", \".sublime-project\", \".sublime-settings\", \".sublime-theme\", \".sublime-workspace\", \".sublime_metrics\", \".sublime_session\"], filenames: [\".babelrc\", \".devcontainer.json\", \".eslintrc.json\", \".jscsrc\", \".jshintrc\", \".jslintrc\", \"api-extractor.json\", \"devcontainer.json\", \"jsconfig.json\", \"language-configuration.json\", \"tsconfig.json\", \"tslint.json\"], languageId: 423 };\n          } }), Td = te({ \"node_modules/linguist-languages/data/JSON5.json\"(e, r) {\n            r.exports = { name: \"JSON5\", type: \"data\", color: \"#267CB9\", extensions: [\".json5\"], tmScope: \"source.js\", aceMode: \"javascript\", codemirrorMode: \"javascript\", codemirrorMimeType: \"application/json\", languageId: 175 };\n          } }), Bd = te({ \"src/language-js/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = Cd(), a = Ed(), n = Fd(), u = Ad(), i = [t(Ln(), (p) => ({ since: \"0.0.0\", parsers: [\"babel\", \"acorn\", \"espree\", \"meriyah\", \"babel-flow\", \"babel-ts\", \"flow\", \"typescript\"], vscodeLanguageIds: [\"javascript\", \"mongo\"], interpreters: [...p.interpreters, \"zx\"], extensions: [...p.extensions.filter((y) => y !== \".jsx\"), \".wxs\"] })), t(Ln(), () => ({ name: \"Flow\", since: \"0.0.0\", parsers: [\"flow\", \"babel-flow\"], vscodeLanguageIds: [\"javascript\"], aliases: [], filenames: [], extensions: [\".js.flow\"] })), t(Ln(), () => ({ name: \"JSX\", since: \"0.0.0\", parsers: [\"babel\", \"babel-flow\", \"babel-ts\", \"flow\", \"typescript\", \"espree\", \"meriyah\"], vscodeLanguageIds: [\"javascriptreact\"], aliases: void 0, filenames: void 0, extensions: [\".jsx\"], group: \"JavaScript\", interpreters: void 0, tmScope: \"source.js.jsx\", aceMode: \"javascript\", codemirrorMode: \"jsx\", codemirrorMimeType: \"text/jsx\", color: void 0 })), t(Sd(), () => ({ since: \"1.4.0\", parsers: [\"typescript\", \"babel-ts\"], vscodeLanguageIds: [\"typescript\"] })), t(xd(), () => ({ since: \"1.4.0\", parsers: [\"typescript\", \"babel-ts\"], vscodeLanguageIds: [\"typescriptreact\"] })), t(wa(), () => ({ name: \"JSON.stringify\", since: \"1.13.0\", parsers: [\"json-stringify\"], vscodeLanguageIds: [\"json\"], extensions: [\".importmap\"], filenames: [\"package.json\", \"package-lock.json\", \"composer.json\"] })), t(wa(), (p) => ({ since: \"1.5.0\", parsers: [\"json\"], vscodeLanguageIds: [\"json\"], extensions: p.extensions.filter((y) => y !== \".jsonl\") })), t(bd(), (p) => ({ since: \"1.5.0\", parsers: [\"json\"], vscodeLanguageIds: [\"jsonc\"], filenames: [...p.filenames, \".eslintrc\", \".swcrc\"] })), t(Td(), () => ({ since: \"1.13.0\", parsers: [\"json5\"], vscodeLanguageIds: [\"json5\"] }))], l = { estree: s2, \"estree-json\": a };\n            r.exports = { languages: i, options: n, printers: l, parsers: u };\n          } }), Nd = te({ \"src/language-css/clean.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isFrontMatterNode: t } = Ue(), s2 = lt(), a = /* @__PURE__ */ new Set([\"raw\", \"raws\", \"sourceIndex\", \"source\", \"before\", \"after\", \"trailingComma\"]);\n            function n(i, l, p) {\n              if (t(i) && i.lang === \"yaml\" && delete l.value, i.type === \"css-comment\" && p.type === \"css-root\" && p.nodes.length > 0 && ((p.nodes[0] === i || t(p.nodes[0]) && p.nodes[1] === i) && (delete l.text, /^\\*\\s*@(?:format|prettier)\\s*$/.test(i.text)) || p.type === \"css-root\" && s2(p.nodes) === i)) return null;\n              if (i.type === \"value-root\" && delete l.text, (i.type === \"media-query\" || i.type === \"media-query-list\" || i.type === \"media-feature-expression\") && delete l.value, i.type === \"css-rule\" && delete l.params, i.type === \"selector-combinator\" && (l.value = l.value.replace(/\\s+/g, \" \")), i.type === \"media-feature\" && (l.value = l.value.replace(/ /g, \"\")), (i.type === \"value-word\" && (i.isColor && i.isHex || [\"initial\", \"inherit\", \"unset\", \"revert\"].includes(l.value.replace().toLowerCase())) || i.type === \"media-feature\" || i.type === \"selector-root-invalid\" || i.type === \"selector-pseudo\") && (l.value = l.value.toLowerCase()), i.type === \"css-decl\" && (l.prop = l.prop.toLowerCase()), (i.type === \"css-atrule\" || i.type === \"css-import\") && (l.name = l.name.toLowerCase()), i.type === \"value-number\" && (l.unit = l.unit.toLowerCase()), (i.type === \"media-feature\" || i.type === \"media-keyword\" || i.type === \"media-type\" || i.type === \"media-unknown\" || i.type === \"media-url\" || i.type === \"media-value\" || i.type === \"selector-attribute\" || i.type === \"selector-string\" || i.type === \"selector-class\" || i.type === \"selector-combinator\" || i.type === \"value-string\") && l.value && (l.value = u(l.value)), i.type === \"selector-attribute\" && (l.attribute = l.attribute.trim(), l.namespace && typeof l.namespace == \"string\" && (l.namespace = l.namespace.trim(), l.namespace.length === 0 && (l.namespace = true)), l.value && (l.value = l.value.trim().replace(/^[\"']|[\"']$/g, \"\"), delete l.quoted)), (i.type === \"media-value\" || i.type === \"media-type\" || i.type === \"value-number\" || i.type === \"selector-root-invalid\" || i.type === \"selector-class\" || i.type === \"selector-combinator\" || i.type === \"selector-tag\") && l.value && (l.value = l.value.replace(/([\\d+.Ee-]+)([A-Za-z]*)/g, (y, h, g) => {\n                let c = Number(h);\n                return Number.isNaN(c) ? y : c + g.toLowerCase();\n              })), i.type === \"selector-tag\") {\n                let y = i.value.toLowerCase();\n                [\"from\", \"to\"].includes(y) && (l.value = y);\n              }\n              if (i.type === \"css-atrule\" && i.name.toLowerCase() === \"supports\" && delete l.value, i.type === \"selector-unknown\" && delete l.value, i.type === \"value-comma_group\") {\n                let y = i.groups.findIndex((h) => h.type === \"value-number\" && h.unit === \"...\");\n                y !== -1 && (l.groups[y].unit = \"\", l.groups.splice(y + 1, 0, { type: \"value-word\", value: \"...\", isColor: false, isHex: false }));\n              }\n              if (i.type === \"value-comma_group\" && i.groups.some((y) => y.type === \"value-atword\" && y.value.endsWith(\"[\") || y.type === \"value-word\" && y.value.startsWith(\"]\"))) return { type: \"value-atword\", value: i.groups.map((y) => y.value).join(\"\"), group: { open: null, close: null, groups: [], type: \"value-paren_group\" } };\n            }\n            n.ignoredProperties = a;\n            function u(i) {\n              return i.replace(/'/g, '\"').replace(/\\\\([^\\dA-Fa-f])/g, \"$1\");\n            }\n            r.exports = n;\n          } }), su = te({ \"src/utils/front-matter/print.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { hardline: t, markAsRoot: s2 } } = qe();\n            function a(n, u) {\n              if (n.lang === \"yaml\") {\n                let i = n.value.trim(), l = i ? u(i, { parser: \"yaml\" }, { stripTrailingHardline: true }) : \"\";\n                return s2([n.startDelimiter, t, l, l ? t : \"\", n.endDelimiter]);\n              }\n            }\n            r.exports = a;\n          } }), wd = te({ \"src/language-css/embed.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { hardline: t } } = qe(), s2 = su();\n            function a(n, u, i) {\n              let l = n.getValue();\n              if (l.type === \"front-matter\") {\n                let p = s2(l, i);\n                return p ? [p, t] : \"\";\n              }\n            }\n            r.exports = a;\n          } }), _o = te({ \"src/utils/front-matter/parse.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = new RegExp(\"^(?<startDelimiter>-{3}|\\\\+{3})(?<language>[^\\\\n]*)\\\\n(?:|(?<value>.*?)\\\\n)(?<endDelimiter>\\\\k<startDelimiter>|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\", \"s\");\n            function s2(a) {\n              let n = a.match(t);\n              if (!n) return { content: a };\n              let { startDelimiter: u, language: i, value: l = \"\", endDelimiter: p } = n.groups, y = i.trim() || \"yaml\";\n              if (u === \"+++\" && (y = \"toml\"), y !== \"yaml\" && u !== p) return { content: a };\n              let [h] = n;\n              return { frontMatter: { type: \"front-matter\", lang: y, value: l, startDelimiter: u, endDelimiter: p, raw: h.replace(/\\n$/, \"\") }, content: h.replace(/[^\\n]/g, \" \") + a.slice(h.length) };\n            }\n            r.exports = s2;\n          } }), _d = te({ \"src/language-css/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Co(), s2 = _o();\n            function a(u) {\n              return t.hasPragma(s2(u).content);\n            }\n            function n(u) {\n              let { frontMatter: i, content: l } = s2(u);\n              return (i ? i.raw + `\n\n` : \"\") + t.insertPragma(l);\n            }\n            r.exports = { hasPragma: a, insertPragma: n };\n          } }), Pd = te({ \"src/language-css/utils/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = /* @__PURE__ */ new Set([\"red\", \"green\", \"blue\", \"alpha\", \"a\", \"rgb\", \"hue\", \"h\", \"saturation\", \"s\", \"lightness\", \"l\", \"whiteness\", \"w\", \"blackness\", \"b\", \"tint\", \"shade\", \"blend\", \"blenda\", \"contrast\", \"hsl\", \"hsla\", \"hwb\", \"hwba\"]);\n            function s2(z, U) {\n              let Z = Array.isArray(U) ? U : [U], se = -1, fe;\n              for (; fe = z.getParentNode(++se); ) if (Z.includes(fe.type)) return se;\n              return -1;\n            }\n            function a(z, U) {\n              let Z = s2(z, U);\n              return Z === -1 ? null : z.getParentNode(Z);\n            }\n            function n(z) {\n              var U;\n              let Z = a(z, \"css-decl\");\n              return Z == null || (U = Z.prop) === null || U === void 0 ? void 0 : U.toLowerCase();\n            }\n            var u = /* @__PURE__ */ new Set([\"initial\", \"inherit\", \"unset\", \"revert\"]);\n            function i(z) {\n              return u.has(z.toLowerCase());\n            }\n            function l(z, U) {\n              let Z = a(z, \"css-atrule\");\n              return (Z == null ? void 0 : Z.name) && Z.name.toLowerCase().endsWith(\"keyframes\") && [\"from\", \"to\"].includes(U.toLowerCase());\n            }\n            function p(z) {\n              return z.includes(\"$\") || z.includes(\"@\") || z.includes(\"#\") || z.startsWith(\"%\") || z.startsWith(\"--\") || z.startsWith(\":--\") || z.includes(\"(\") && z.includes(\")\") ? z : z.toLowerCase();\n            }\n            function y(z, U) {\n              var Z;\n              let se = a(z, \"value-func\");\n              return (se == null || (Z = se.value) === null || Z === void 0 ? void 0 : Z.toLowerCase()) === U;\n            }\n            function h(z) {\n              var U;\n              let Z = a(z, \"css-rule\"), se = Z == null || (U = Z.raws) === null || U === void 0 ? void 0 : U.selector;\n              return se && (se.startsWith(\":import\") || se.startsWith(\":export\"));\n            }\n            function g(z, U) {\n              let Z = Array.isArray(U) ? U : [U], se = a(z, \"css-atrule\");\n              return se && Z.includes(se.name.toLowerCase());\n            }\n            function c(z) {\n              let U = z.getValue(), Z = a(z, \"css-atrule\");\n              return (Z == null ? void 0 : Z.name) === \"import\" && U.groups[0].value === \"url\" && U.groups.length === 2;\n            }\n            function f(z) {\n              return z.type === \"value-func\" && z.value.toLowerCase() === \"url\";\n            }\n            function F(z, U) {\n              var Z;\n              let se = (Z = z.getParentNode()) === null || Z === void 0 ? void 0 : Z.nodes;\n              return se && se.indexOf(U) === se.length - 1;\n            }\n            function _(z) {\n              let { selector: U } = z;\n              return U ? typeof U == \"string\" && /^@.+:.*$/.test(U) || U.value && /^@.+:.*$/.test(U.value) : false;\n            }\n            function w(z) {\n              return z.type === \"value-word\" && [\"from\", \"through\", \"end\"].includes(z.value);\n            }\n            function E(z) {\n              return z.type === \"value-word\" && [\"and\", \"or\", \"not\"].includes(z.value);\n            }\n            function N(z) {\n              return z.type === \"value-word\" && z.value === \"in\";\n            }\n            function x(z) {\n              return z.type === \"value-operator\" && z.value === \"*\";\n            }\n            function I(z) {\n              return z.type === \"value-operator\" && z.value === \"/\";\n            }\n            function P(z) {\n              return z.type === \"value-operator\" && z.value === \"+\";\n            }\n            function $(z) {\n              return z.type === \"value-operator\" && z.value === \"-\";\n            }\n            function D(z) {\n              return z.type === \"value-operator\" && z.value === \"%\";\n            }\n            function T(z) {\n              return x(z) || I(z) || P(z) || $(z) || D(z);\n            }\n            function m(z) {\n              return z.type === \"value-word\" && [\"==\", \"!=\"].includes(z.value);\n            }\n            function C(z) {\n              return z.type === \"value-word\" && [\"<\", \">\", \"<=\", \">=\"].includes(z.value);\n            }\n            function o(z) {\n              return z.type === \"css-atrule\" && [\"if\", \"else\", \"for\", \"each\", \"while\"].includes(z.name);\n            }\n            function d(z) {\n              var U;\n              return ((U = z.raws) === null || U === void 0 ? void 0 : U.params) && /^\\(\\s*\\)$/.test(z.raws.params);\n            }\n            function v(z) {\n              return z.name.startsWith(\"prettier-placeholder\");\n            }\n            function S(z) {\n              return z.prop.startsWith(\"@prettier-placeholder\");\n            }\n            function b(z, U) {\n              return z.value === \"$$\" && z.type === \"value-func\" && (U == null ? void 0 : U.type) === \"value-word\" && !U.raws.before;\n            }\n            function B(z) {\n              var U, Z;\n              return ((U = z.value) === null || U === void 0 ? void 0 : U.type) === \"value-root\" && ((Z = z.value.group) === null || Z === void 0 ? void 0 : Z.type) === \"value-value\" && z.prop.toLowerCase() === \"composes\";\n            }\n            function k(z) {\n              var U, Z, se;\n              return ((U = z.value) === null || U === void 0 || (Z = U.group) === null || Z === void 0 || (se = Z.group) === null || se === void 0 ? void 0 : se.type) === \"value-paren_group\" && z.value.group.group.open !== null && z.value.group.group.close !== null;\n            }\n            function M(z) {\n              var U;\n              return ((U = z.raws) === null || U === void 0 ? void 0 : U.before) === \"\";\n            }\n            function R(z) {\n              var U, Z;\n              return z.type === \"value-comma_group\" && ((U = z.groups) === null || U === void 0 || (Z = U[1]) === null || Z === void 0 ? void 0 : Z.type) === \"value-colon\";\n            }\n            function q(z) {\n              var U;\n              return z.type === \"value-paren_group\" && ((U = z.groups) === null || U === void 0 ? void 0 : U[0]) && R(z.groups[0]);\n            }\n            function J(z) {\n              var U;\n              let Z = z.getValue();\n              if (Z.groups.length === 0) return false;\n              let se = z.getParentNode(1);\n              if (!q(Z) && !(se && q(se))) return false;\n              let fe = a(z, \"css-decl\");\n              return !!(fe != null && (U = fe.prop) !== null && U !== void 0 && U.startsWith(\"$\") || q(se) || se.type === \"value-func\");\n            }\n            function L(z) {\n              return z.type === \"value-comment\" && z.inline;\n            }\n            function Q(z) {\n              return z.type === \"value-word\" && z.value === \"#\";\n            }\n            function V(z) {\n              return z.type === \"value-word\" && z.value === \"{\";\n            }\n            function j(z) {\n              return z.type === \"value-word\" && z.value === \"}\";\n            }\n            function Y(z) {\n              return [\"value-word\", \"value-atword\"].includes(z.type);\n            }\n            function ie(z) {\n              return (z == null ? void 0 : z.type) === \"value-colon\";\n            }\n            function ee(z, U) {\n              if (!R(U)) return false;\n              let { groups: Z } = U, se = Z.indexOf(z);\n              return se === -1 ? false : ie(Z[se + 1]);\n            }\n            function ce(z) {\n              return z.value && [\"not\", \"and\", \"or\"].includes(z.value.toLowerCase());\n            }\n            function W(z) {\n              return z.type !== \"value-func\" ? false : t.has(z.value.toLowerCase());\n            }\n            function K(z) {\n              return /\\/\\//.test(z.split(/[\\n\\r]/).pop());\n            }\n            function de(z) {\n              return (z == null ? void 0 : z.type) === \"value-atword\" && z.value.startsWith(\"prettier-placeholder-\");\n            }\n            function ue(z, U) {\n              var Z, se;\n              if (((Z = z.open) === null || Z === void 0 ? void 0 : Z.value) !== \"(\" || ((se = z.close) === null || se === void 0 ? void 0 : se.value) !== \")\" || z.groups.some((fe) => fe.type !== \"value-comma_group\")) return false;\n              if (U.type === \"value-comma_group\") {\n                let fe = U.groups.indexOf(z) - 1, ge = U.groups[fe];\n                if ((ge == null ? void 0 : ge.type) === \"value-word\" && ge.value === \"with\") return true;\n              }\n              return false;\n            }\n            function Fe(z) {\n              var U, Z;\n              return z.type === \"value-paren_group\" && ((U = z.open) === null || U === void 0 ? void 0 : U.value) === \"(\" && ((Z = z.close) === null || Z === void 0 ? void 0 : Z.value) === \")\";\n            }\n            r.exports = { getAncestorCounter: s2, getAncestorNode: a, getPropOfDeclNode: n, maybeToLowerCase: p, insideValueFunctionNode: y, insideICSSRuleNode: h, insideAtRuleNode: g, insideURLFunctionInImportAtRuleNode: c, isKeyframeAtRuleKeywords: l, isWideKeywords: i, isLastNode: F, isSCSSControlDirectiveNode: o, isDetachedRulesetDeclarationNode: _, isRelationalOperatorNode: C, isEqualityOperatorNode: m, isMultiplicationNode: x, isDivisionNode: I, isAdditionNode: P, isSubtractionNode: $, isModuloNode: D, isMathOperatorNode: T, isEachKeywordNode: N, isForKeywordNode: w, isURLFunctionNode: f, isIfElseKeywordNode: E, hasComposesNode: B, hasParensAroundNode: k, hasEmptyRawBefore: M, isDetachedRulesetCallNode: d, isTemplatePlaceholderNode: v, isTemplatePropNode: S, isPostcssSimpleVarNode: b, isKeyValuePairNode: R, isKeyValuePairInParenGroupNode: q, isKeyInValuePairNode: ee, isSCSSMapItemNode: J, isInlineValueCommentNode: L, isHashNode: Q, isLeftCurlyBraceNode: V, isRightCurlyBraceNode: j, isWordNode: Y, isColonNode: ie, isMediaAndSupportsKeywords: ce, isColorAdjusterFuncNode: W, lastLineHasInlineComment: K, isAtWordPlaceholderNode: de, isConfigurationNode: ue, isParenGroupNode: Fe };\n          } }), Id = te({ \"src/utils/line-column-to-index.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = function(t, s2) {\n              let a = 0;\n              for (let n = 0; n < t.line - 1; ++n) a = s2.indexOf(`\n`, a) + 1;\n              return a + t.column;\n            };\n          } }), kd = te({ \"src/language-css/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { skipEverythingButNewLine: t } = Pr(), s2 = lt(), a = Id();\n            function n(c, f) {\n              return typeof c.sourceIndex == \"number\" ? c.sourceIndex : c.source ? a(c.source.start, f) - 1 : null;\n            }\n            function u(c, f) {\n              if (c.type === \"css-comment\" && c.inline) return t(f, c.source.startOffset);\n              let F = c.nodes && s2(c.nodes);\n              return F && c.source && !c.source.end && (c = F), c.source && c.source.end ? a(c.source.end, f) : null;\n            }\n            function i(c, f) {\n              c.source && (c.source.startOffset = n(c, f), c.source.endOffset = u(c, f));\n              for (let F in c) {\n                let _ = c[F];\n                F === \"source\" || !_ || typeof _ != \"object\" || (_.type === \"value-root\" || _.type === \"value-unknown\" ? l(_, p(c), _.text || _.value) : i(_, f));\n              }\n            }\n            function l(c, f, F) {\n              c.source && (c.source.startOffset = n(c, F) + f, c.source.endOffset = u(c, F) + f);\n              for (let _ in c) {\n                let w = c[_];\n                _ === \"source\" || !w || typeof w != \"object\" || l(w, f, F);\n              }\n            }\n            function p(c) {\n              let f = c.source.startOffset;\n              return typeof c.prop == \"string\" && (f += c.prop.length), c.type === \"css-atrule\" && typeof c.name == \"string\" && (f += 1 + c.name.length + c.raws.afterName.match(/^\\s*:?\\s*/)[0].length), c.type !== \"css-atrule\" && c.raws && typeof c.raws.between == \"string\" && (f += c.raws.between.length), f;\n            }\n            function y(c) {\n              let f = \"initial\", F = \"initial\", _, w = false, E = [];\n              for (let N = 0; N < c.length; N++) {\n                let x = c[N];\n                switch (f) {\n                  case \"initial\":\n                    if (x === \"'\") {\n                      f = \"single-quotes\";\n                      continue;\n                    }\n                    if (x === '\"') {\n                      f = \"double-quotes\";\n                      continue;\n                    }\n                    if ((x === \"u\" || x === \"U\") && c.slice(N, N + 4).toLowerCase() === \"url(\") {\n                      f = \"url\", N += 3;\n                      continue;\n                    }\n                    if (x === \"*\" && c[N - 1] === \"/\") {\n                      f = \"comment-block\";\n                      continue;\n                    }\n                    if (x === \"/\" && c[N - 1] === \"/\") {\n                      f = \"comment-inline\", _ = N - 1;\n                      continue;\n                    }\n                    continue;\n                  case \"single-quotes\":\n                    if (x === \"'\" && c[N - 1] !== \"\\\\\" && (f = F, F = \"initial\"), x === `\n` || x === \"\\r\") return c;\n                    continue;\n                  case \"double-quotes\":\n                    if (x === '\"' && c[N - 1] !== \"\\\\\" && (f = F, F = \"initial\"), x === `\n` || x === \"\\r\") return c;\n                    continue;\n                  case \"url\":\n                    if (x === \")\" && (f = \"initial\"), x === `\n` || x === \"\\r\") return c;\n                    if (x === \"'\") {\n                      f = \"single-quotes\", F = \"url\";\n                      continue;\n                    }\n                    if (x === '\"') {\n                      f = \"double-quotes\", F = \"url\";\n                      continue;\n                    }\n                    continue;\n                  case \"comment-block\":\n                    x === \"/\" && c[N - 1] === \"*\" && (f = \"initial\");\n                    continue;\n                  case \"comment-inline\":\n                    (x === '\"' || x === \"'\" || x === \"*\") && (w = true), (x === `\n` || x === \"\\r\") && (w && E.push([_, N]), f = \"initial\", w = false);\n                    continue;\n                }\n              }\n              for (let [N, x] of E) c = c.slice(0, N) + c.slice(N, x).replace(/[\"'*]/g, \" \") + c.slice(x);\n              return c;\n            }\n            function h(c) {\n              return c.source.startOffset;\n            }\n            function g(c) {\n              return c.source.endOffset;\n            }\n            r.exports = { locStart: h, locEnd: g, calculateLoc: i, replaceQuotesInInlineComments: y };\n          } }), Ld = te({ \"src/language-css/utils/is-less-parser.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2) {\n              return s2.parser === \"css\" || s2.parser === \"less\";\n            }\n            r.exports = t;\n          } }), Od = te({ \"src/language-css/utils/is-scss.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a) {\n              return s2 === \"less\" || s2 === \"scss\" ? s2 === \"scss\" : /(?:\\w\\s*:\\s*[^:}]+|#){|@import[^\\n]+(?:url|,)/.test(a);\n            }\n            r.exports = t;\n          } }), jd = te({ \"src/language-css/utils/css-units.evaluate.js\"(e, r) {\n            r.exports = { em: \"em\", rem: \"rem\", ex: \"ex\", rex: \"rex\", cap: \"cap\", rcap: \"rcap\", ch: \"ch\", rch: \"rch\", ic: \"ic\", ric: \"ric\", lh: \"lh\", rlh: \"rlh\", vw: \"vw\", svw: \"svw\", lvw: \"lvw\", dvw: \"dvw\", vh: \"vh\", svh: \"svh\", lvh: \"lvh\", dvh: \"dvh\", vi: \"vi\", svi: \"svi\", lvi: \"lvi\", dvi: \"dvi\", vb: \"vb\", svb: \"svb\", lvb: \"lvb\", dvb: \"dvb\", vmin: \"vmin\", svmin: \"svmin\", lvmin: \"lvmin\", dvmin: \"dvmin\", vmax: \"vmax\", svmax: \"svmax\", lvmax: \"lvmax\", dvmax: \"dvmax\", cm: \"cm\", mm: \"mm\", q: \"Q\", in: \"in\", pt: \"pt\", pc: \"pc\", px: \"px\", deg: \"deg\", grad: \"grad\", rad: \"rad\", turn: \"turn\", s: \"s\", ms: \"ms\", hz: \"Hz\", khz: \"kHz\", dpi: \"dpi\", dpcm: \"dpcm\", dppx: \"dppx\", x: \"x\" };\n          } }), qd = te({ \"src/language-css/utils/print-unit.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = jd();\n            function s2(a) {\n              let n = a.toLowerCase();\n              return Object.prototype.hasOwnProperty.call(t, n) ? t[n] : a;\n            }\n            r.exports = s2;\n          } }), Md = te({ \"src/language-css/printer-postcss.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), { printNumber: s2, printString: a, hasNewline: n, isFrontMatterNode: u, isNextLineEmpty: i, isNonEmptyArray: l } = Ue(), { builders: { join: p, line: y, hardline: h, softline: g, group: c, fill: f, indent: F, dedent: _, ifBreak: w, breakParent: E }, utils: { removeLines: N, getDocParts: x } } = qe(), I = Nd(), P = wd(), { insertPragma: $ } = _d(), { getAncestorNode: D, getPropOfDeclNode: T, maybeToLowerCase: m, insideValueFunctionNode: C, insideICSSRuleNode: o, insideAtRuleNode: d, insideURLFunctionInImportAtRuleNode: v, isKeyframeAtRuleKeywords: S, isWideKeywords: b, isLastNode: B, isSCSSControlDirectiveNode: k, isDetachedRulesetDeclarationNode: M, isRelationalOperatorNode: R, isEqualityOperatorNode: q, isMultiplicationNode: J, isDivisionNode: L, isAdditionNode: Q, isSubtractionNode: V, isMathOperatorNode: j, isEachKeywordNode: Y, isForKeywordNode: ie, isURLFunctionNode: ee, isIfElseKeywordNode: ce, hasComposesNode: W, hasParensAroundNode: K, hasEmptyRawBefore: de, isKeyValuePairNode: ue, isKeyInValuePairNode: Fe, isDetachedRulesetCallNode: z, isTemplatePlaceholderNode: U, isTemplatePropNode: Z, isPostcssSimpleVarNode: se, isSCSSMapItemNode: fe, isInlineValueCommentNode: ge, isHashNode: he, isLeftCurlyBraceNode: we, isRightCurlyBraceNode: ke, isWordNode: Re, isColonNode: Ne, isMediaAndSupportsKeywords: Pe, isColorAdjusterFuncNode: oe, lastLineHasInlineComment: H, isAtWordPlaceholderNode: pe, isConfigurationNode: X, isParenGroupNode: le } = Pd(), { locStart: Ae, locEnd: Ee } = kd(), De = Ld(), A = Od(), G = qd();\n            function re(Te) {\n              return Te.trailingComma === \"es5\" || Te.trailingComma === \"all\";\n            }\n            function ye(Te, je, Me) {\n              let ae = Te.getValue();\n              if (!ae) return \"\";\n              if (typeof ae == \"string\") return ae;\n              switch (ae.type) {\n                case \"front-matter\":\n                  return [ae.raw, h];\n                case \"css-root\": {\n                  let Ve = Ce(Te, je, Me), We = ae.raws.after.trim();\n                  return We.startsWith(\";\") && (We = We.slice(1).trim()), [Ve, We ? ` ${We}` : \"\", x(Ve).length > 0 ? h : \"\"];\n                }\n                case \"css-comment\": {\n                  let Ve = ae.inline || ae.raws.inline, We = je.originalText.slice(Ae(ae), Ee(ae));\n                  return Ve ? We.trimEnd() : We;\n                }\n                case \"css-rule\":\n                  return [Me(\"selector\"), ae.important ? \" !important\" : \"\", ae.nodes ? [ae.selector && ae.selector.type === \"selector-unknown\" && H(ae.selector.value) ? y : \" \", \"{\", ae.nodes.length > 0 ? F([h, Ce(Te, je, Me)]) : \"\", h, \"}\", M(ae) ? \";\" : \"\"] : \";\"];\n                case \"css-decl\": {\n                  let Ve = Te.getParentNode(), { between: We } = ae.raws, Xe = We.trim(), st = Xe === \":\", O = W(ae) ? N(Me(\"value\")) : Me(\"value\");\n                  return !st && H(Xe) && (O = F([h, _(O)])), [ae.raws.before.replace(/[\\s;]/g, \"\"), Ve.type === \"css-atrule\" && Ve.variable || o(Te) ? ae.prop : m(ae.prop), Xe.startsWith(\"//\") ? \" \" : \"\", Xe, ae.extend ? \"\" : \" \", De(je) && ae.extend && ae.selector ? [\"extend(\", Me(\"selector\"), \")\"] : \"\", O, ae.raws.important ? ae.raws.important.replace(/\\s*!\\s*important/i, \" !important\") : ae.important ? \" !important\" : \"\", ae.raws.scssDefault ? ae.raws.scssDefault.replace(/\\s*!default/i, \" !default\") : ae.scssDefault ? \" !default\" : \"\", ae.raws.scssGlobal ? ae.raws.scssGlobal.replace(/\\s*!global/i, \" !global\") : ae.scssGlobal ? \" !global\" : \"\", ae.nodes ? [\" {\", F([g, Ce(Te, je, Me)]), g, \"}\"] : Z(ae) && !Ve.raws.semicolon && je.originalText[Ee(ae) - 1] !== \";\" ? \"\" : je.__isHTMLStyleAttribute && B(Te, ae) ? w(\";\") : \";\"];\n                }\n                case \"css-atrule\": {\n                  let Ve = Te.getParentNode(), We = U(ae) && !Ve.raws.semicolon && je.originalText[Ee(ae) - 1] !== \";\";\n                  if (De(je)) {\n                    if (ae.mixin) return [Me(\"selector\"), ae.important ? \" !important\" : \"\", We ? \"\" : \";\"];\n                    if (ae.function) return [ae.name, Me(\"params\"), We ? \"\" : \";\"];\n                    if (ae.variable) return [\"@\", ae.name, \": \", ae.value ? Me(\"value\") : \"\", ae.raws.between.trim() ? ae.raws.between.trim() + \" \" : \"\", ae.nodes ? [\"{\", F([ae.nodes.length > 0 ? g : \"\", Ce(Te, je, Me)]), g, \"}\"] : \"\", We ? \"\" : \";\"];\n                  }\n                  return [\"@\", z(ae) || ae.name.endsWith(\":\") ? ae.name : m(ae.name), ae.params ? [z(ae) ? \"\" : U(ae) ? ae.raws.afterName === \"\" ? \"\" : ae.name.endsWith(\":\") ? \" \" : /^\\s*\\n\\s*\\n/.test(ae.raws.afterName) ? [h, h] : /^\\s*\\n/.test(ae.raws.afterName) ? h : \" \" : \" \", Me(\"params\")] : \"\", ae.selector ? F([\" \", Me(\"selector\")]) : \"\", ae.value ? c([\" \", Me(\"value\"), k(ae) ? K(ae) ? \" \" : y : \"\"]) : ae.name === \"else\" ? \" \" : \"\", ae.nodes ? [k(ae) ? \"\" : ae.selector && !ae.selector.nodes && typeof ae.selector.value == \"string\" && H(ae.selector.value) || !ae.selector && typeof ae.params == \"string\" && H(ae.params) ? y : \" \", \"{\", F([ae.nodes.length > 0 ? g : \"\", Ce(Te, je, Me)]), g, \"}\"] : We ? \"\" : \";\"];\n                }\n                case \"media-query-list\": {\n                  let Ve = [];\n                  return Te.each((We) => {\n                    let Xe = We.getValue();\n                    Xe.type === \"media-query\" && Xe.value === \"\" || Ve.push(Me());\n                  }, \"nodes\"), c(F(p(y, Ve)));\n                }\n                case \"media-query\":\n                  return [p(\" \", Te.map(Me, \"nodes\")), B(Te, ae) ? \"\" : \",\"];\n                case \"media-type\":\n                  return Oe(Se(ae.value, je));\n                case \"media-feature-expression\":\n                  return ae.nodes ? [\"(\", ...Te.map(Me, \"nodes\"), \")\"] : ae.value;\n                case \"media-feature\":\n                  return m(Se(ae.value.replace(/ +/g, \" \"), je));\n                case \"media-colon\":\n                  return [ae.value, \" \"];\n                case \"media-value\":\n                  return Oe(Se(ae.value, je));\n                case \"media-keyword\":\n                  return Se(ae.value, je);\n                case \"media-url\":\n                  return Se(ae.value.replace(/^url\\(\\s+/gi, \"url(\").replace(/\\s+\\)$/g, \")\"), je);\n                case \"media-unknown\":\n                  return ae.value;\n                case \"selector-root\":\n                  return c([d(Te, \"custom-selector\") ? [D(Te, \"css-atrule\").customSelector, y] : \"\", p([\",\", d(Te, [\"extend\", \"custom-selector\", \"nest\"]) ? y : h], Te.map(Me, \"nodes\"))]);\n                case \"selector-selector\":\n                  return c(F(Te.map(Me, \"nodes\")));\n                case \"selector-comment\":\n                  return ae.value;\n                case \"selector-string\":\n                  return Se(ae.value, je);\n                case \"selector-tag\": {\n                  let Ve = Te.getParentNode(), We = Ve && Ve.nodes.indexOf(ae), Xe = We && Ve.nodes[We - 1];\n                  return [ae.namespace ? [ae.namespace === true ? \"\" : ae.namespace.trim(), \"|\"] : \"\", Xe.type === \"selector-nesting\" ? ae.value : Oe(S(Te, ae.value) ? ae.value.toLowerCase() : ae.value)];\n                }\n                case \"selector-id\":\n                  return [\"#\", ae.value];\n                case \"selector-class\":\n                  return [\".\", Oe(Se(ae.value, je))];\n                case \"selector-attribute\": {\n                  var nt;\n                  return [\"[\", ae.namespace ? [ae.namespace === true ? \"\" : ae.namespace.trim(), \"|\"] : \"\", ae.attribute.trim(), (nt = ae.operator) !== null && nt !== void 0 ? nt : \"\", ae.value ? Ie(Se(ae.value.trim(), je), je) : \"\", ae.insensitive ? \" i\" : \"\", \"]\"];\n                }\n                case \"selector-combinator\": {\n                  if (ae.value === \"+\" || ae.value === \">\" || ae.value === \"~\" || ae.value === \">>>\") {\n                    let Xe = Te.getParentNode();\n                    return [Xe.type === \"selector-selector\" && Xe.nodes[0] === ae ? \"\" : y, ae.value, B(Te, ae) ? \"\" : \" \"];\n                  }\n                  let Ve = ae.value.trim().startsWith(\"(\") ? y : \"\", We = Oe(Se(ae.value.trim(), je)) || y;\n                  return [Ve, We];\n                }\n                case \"selector-universal\":\n                  return [ae.namespace ? [ae.namespace === true ? \"\" : ae.namespace.trim(), \"|\"] : \"\", ae.value];\n                case \"selector-pseudo\":\n                  return [m(ae.value), l(ae.nodes) ? c([\"(\", F([g, p([\",\", y], Te.map(Me, \"nodes\"))]), g, \")\"]) : \"\"];\n                case \"selector-nesting\":\n                  return ae.value;\n                case \"selector-unknown\": {\n                  let Ve = D(Te, \"css-rule\");\n                  if (Ve && Ve.isSCSSNesterProperty) return Oe(Se(m(ae.value), je));\n                  let We = Te.getParentNode();\n                  if (We.raws && We.raws.selector) {\n                    let st = Ae(We), O = st + We.raws.selector.length;\n                    return je.originalText.slice(st, O).trim();\n                  }\n                  let Xe = Te.getParentNode(1);\n                  if (We.type === \"value-paren_group\" && Xe && Xe.type === \"value-func\" && Xe.value === \"selector\") {\n                    let st = Ee(We.open) + 1, O = Ae(We.close), me = je.originalText.slice(st, O).trim();\n                    return H(me) ? [E, me] : me;\n                  }\n                  return ae.value;\n                }\n                case \"value-value\":\n                case \"value-root\":\n                  return Me(\"group\");\n                case \"value-comment\":\n                  return je.originalText.slice(Ae(ae), Ee(ae));\n                case \"value-comma_group\": {\n                  let Ve = Te.getParentNode(), We = Te.getParentNode(1), Xe = T(Te), st = Xe && Ve.type === \"value-value\" && (Xe === \"grid\" || Xe.startsWith(\"grid-template\")), O = D(Te, \"css-atrule\"), me = O && k(O), _e = ae.groups.some((at2) => ge(at2)), He = Te.map(Me, \"groups\"), Ge = [], it = C(Te, \"url\"), Qe = false, rt = false;\n                  for (let at2 = 0; at2 < ae.groups.length; ++at2) {\n                    var tt;\n                    Ge.push(He[at2]);\n                    let Ze = ae.groups[at2 - 1], Le = ae.groups[at2], $e = ae.groups[at2 + 1], sr = ae.groups[at2 + 2];\n                    if (it) {\n                      ($e && Q($e) || Q(Le)) && Ge.push(\" \");\n                      continue;\n                    }\n                    if (d(Te, \"forward\") && Le.type === \"value-word\" && Le.value && Ze !== void 0 && Ze.type === \"value-word\" && Ze.value === \"as\" && $e.type === \"value-operator\" && $e.value === \"*\" || !$e || Le.type === \"value-word\" && Le.value.endsWith(\"-\") && pe($e)) continue;\n                    if (Le.type === \"value-string\" && Le.quoted) {\n                      let $r = Le.value.lastIndexOf(\"#{\"), Vr = Le.value.lastIndexOf(\"}\");\n                      $r !== -1 && Vr !== -1 ? Qe = $r > Vr : $r !== -1 ? Qe = true : Vr !== -1 && (Qe = false);\n                    }\n                    if (Qe || Ne(Le) || Ne($e) || Le.type === \"value-atword\" && (Le.value === \"\" || Le.value.endsWith(\"[\")) || $e.type === \"value-word\" && $e.value.startsWith(\"]\") || Le.value === \"~\" || Le.value && Le.value.includes(\"\\\\\") && $e && $e.type !== \"value-comment\" || Ze && Ze.value && Ze.value.indexOf(\"\\\\\") === Ze.value.length - 1 && Le.type === \"value-operator\" && Le.value === \"/\" || Le.value === \"\\\\\" || se(Le, $e) || he(Le) || we(Le) || ke($e) || we($e) && de($e) || ke(Le) && de($e) || Le.value === \"--\" && he($e)) continue;\n                    let Rr = j(Le), ou = j($e);\n                    if ((Rr && he($e) || ou && ke(Le)) && de($e) || !Ze && L(Le) || C(Te, \"calc\") && (Q(Le) || Q($e) || V(Le) || V($e)) && de($e)) continue;\n                    let qo = (Q(Le) || V(Le)) && at2 === 0 && ($e.type === \"value-number\" || $e.isHex) && We && oe(We) && !de($e), lu = sr && sr.type === \"value-func\" || sr && Re(sr) || Le.type === \"value-func\" || Re(Le), cu = $e.type === \"value-func\" || Re($e) || Ze && Ze.type === \"value-func\" || Ze && Re(Ze);\n                    if (!(!(J($e) || J(Le)) && !C(Te, \"calc\") && !qo && (L($e) && !lu || L(Le) && !cu || Q($e) && !lu || Q(Le) && !cu || V($e) || V(Le)) && (de($e) || Rr && (!Ze || Ze && j(Ze)))) && !((je.parser === \"scss\" || je.parser === \"less\") && Rr && Le.value === \"-\" && le($e) && Ee(Le) === Ae($e.open) && $e.open.value === \"(\")) {\n                      if (ge(Le)) {\n                        if (Ve.type === \"value-paren_group\") {\n                          Ge.push(_(h));\n                          continue;\n                        }\n                        Ge.push(h);\n                        continue;\n                      }\n                      if (me && (q($e) || R($e) || ce($e) || Y(Le) || ie(Le))) {\n                        Ge.push(\" \");\n                        continue;\n                      }\n                      if (O && O.name.toLowerCase() === \"namespace\") {\n                        Ge.push(\" \");\n                        continue;\n                      }\n                      if (st) {\n                        Le.source && $e.source && Le.source.start.line !== $e.source.start.line ? (Ge.push(h), rt = true) : Ge.push(\" \");\n                        continue;\n                      }\n                      if (ou) {\n                        Ge.push(\" \");\n                        continue;\n                      }\n                      if (!($e && $e.value === \"...\") && !(pe(Le) && pe($e) && Ee(Le) === Ae($e))) {\n                        if (pe(Le) && le($e) && Ee(Le) === Ae($e.open)) {\n                          Ge.push(g);\n                          continue;\n                        }\n                        if (Le.value === \"with\" && le($e)) {\n                          Ge.push(\" \");\n                          continue;\n                        }\n                        (tt = Le.value) !== null && tt !== void 0 && tt.endsWith(\"#\") && $e.value === \"{\" && le($e.group) || Ge.push(y);\n                      }\n                    }\n                  }\n                  return _e && Ge.push(E), rt && Ge.unshift(h), me ? c(F(Ge)) : v(Te) ? c(f(Ge)) : c(F(f(Ge)));\n                }\n                case \"value-paren_group\": {\n                  let Ve = Te.getParentNode();\n                  if (Ve && ee(Ve) && (ae.groups.length === 1 || ae.groups.length > 0 && ae.groups[0].type === \"value-comma_group\" && ae.groups[0].groups.length > 0 && ae.groups[0].groups[0].type === \"value-word\" && ae.groups[0].groups[0].value.startsWith(\"data:\"))) return [ae.open ? Me(\"open\") : \"\", p(\",\", Te.map(Me, \"groups\")), ae.close ? Me(\"close\") : \"\"];\n                  if (!ae.open) {\n                    let it = Te.map(Me, \"groups\"), Qe = [];\n                    for (let rt = 0; rt < it.length; rt++) rt !== 0 && Qe.push([\",\", y]), Qe.push(it[rt]);\n                    return c(F(f(Qe)));\n                  }\n                  let We = fe(Te), Xe = t(ae.groups), st = Xe && Xe.type === \"value-comment\", O = Fe(ae, Ve), me = X(ae, Ve), _e = me || We && !O, He = me || O, Ge = c([ae.open ? Me(\"open\") : \"\", F([g, p([y], Te.map((it, Qe) => {\n                    let rt = it.getValue(), at2 = Qe === ae.groups.length - 1, Ze = [Me(), at2 ? \"\" : \",\"];\n                    if (ue(rt) && rt.type === \"value-comma_group\" && rt.groups && rt.groups[0].type !== \"value-paren_group\" && rt.groups[2] && rt.groups[2].type === \"value-paren_group\") {\n                      let Le = x(Ze[0].contents.contents);\n                      Le[1] = c(Le[1]), Ze = [c(_(Ze))];\n                    }\n                    if (!at2 && rt.type === \"value-comma_group\" && l(rt.groups)) {\n                      let Le = t(rt.groups);\n                      !Le.source && Le.close && (Le = Le.close), Le.source && i(je.originalText, Le, Ee) && Ze.push(h);\n                    }\n                    return Ze;\n                  }, \"groups\"))]), w(!st && A(je.parser, je.originalText) && We && re(je) ? \",\" : \"\"), g, ae.close ? Me(\"close\") : \"\"], { shouldBreak: _e });\n                  return He ? _(Ge) : Ge;\n                }\n                case \"value-func\":\n                  return [ae.value, d(Te, \"supports\") && Pe(ae) ? \" \" : \"\", Me(\"group\")];\n                case \"value-paren\":\n                  return ae.value;\n                case \"value-number\":\n                  return [Je(ae.value), G(ae.unit)];\n                case \"value-operator\":\n                  return ae.value;\n                case \"value-word\":\n                  return ae.isColor && ae.isHex || b(ae.value) ? ae.value.toLowerCase() : ae.value;\n                case \"value-colon\": {\n                  let Ve = Te.getParentNode(), We = Ve && Ve.groups.indexOf(ae), Xe = We && Ve.groups[We - 1];\n                  return [ae.value, Xe && typeof Xe.value == \"string\" && t(Xe.value) === \"\\\\\" || C(Te, \"url\") ? \"\" : y];\n                }\n                case \"value-comma\":\n                  return [ae.value, \" \"];\n                case \"value-string\":\n                  return a(ae.raws.quote + ae.value + ae.raws.quote, je);\n                case \"value-atword\":\n                  return [\"@\", ae.value];\n                case \"value-unicode-range\":\n                  return ae.value;\n                case \"value-unknown\":\n                  return ae.value;\n                default:\n                  throw new Error(`Unknown postcss type ${JSON.stringify(ae.type)}`);\n              }\n            }\n            function Ce(Te, je, Me) {\n              let ae = [];\n              return Te.each((nt, tt, Ve) => {\n                let We = Ve[tt - 1];\n                if (We && We.type === \"css-comment\" && We.text.trim() === \"prettier-ignore\") {\n                  let Xe = nt.getValue();\n                  ae.push(je.originalText.slice(Ae(Xe), Ee(Xe)));\n                } else ae.push(Me());\n                tt !== Ve.length - 1 && (Ve[tt + 1].type === \"css-comment\" && !n(je.originalText, Ae(Ve[tt + 1]), { backwards: true }) && !u(Ve[tt]) || Ve[tt + 1].type === \"css-atrule\" && Ve[tt + 1].name === \"else\" && Ve[tt].type !== \"css-comment\" ? ae.push(\" \") : (ae.push(je.__isHTMLStyleAttribute ? y : h), i(je.originalText, nt.getValue(), Ee) && !u(Ve[tt]) && ae.push(h)));\n              }, \"nodes\"), ae;\n            }\n            var Be = /([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/gs, ve = /(?:\\d*\\.\\d+|\\d+\\.?)(?:[Ee][+-]?\\d+)?/g, ze = /[A-Za-z]+/g, be = /[$@]?[A-Z_a-z\\u0080-\\uFFFF][\\w\\u0080-\\uFFFF-]*/g, Ye = new RegExp(Be.source + `|(${be.source})?(${ve.source})(${ze.source})?`, \"g\");\n            function Se(Te, je) {\n              return Te.replace(Be, (Me) => a(Me, je));\n            }\n            function Ie(Te, je) {\n              let Me = je.singleQuote ? \"'\" : '\"';\n              return Te.includes('\"') || Te.includes(\"'\") ? Te : Me + Te + Me;\n            }\n            function Oe(Te) {\n              return Te.replace(Ye, (je, Me, ae, nt, tt) => !ae && nt ? Je(nt) + m(tt || \"\") : je);\n            }\n            function Je(Te) {\n              return s2(Te).replace(/\\.0(?=$|e)/, \"\");\n            }\n            r.exports = { print: ye, embed: P, insertPragma: $, massageAstNode: I };\n          } }), Rd = te({ \"src/language-css/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt();\n            r.exports = { singleQuote: t.singleQuote };\n          } }), $d = te({ \"src/language-css/parsers.js\"() {\n            ne();\n          } }), Vd = te({ \"node_modules/linguist-languages/data/CSS.json\"(e, r) {\n            r.exports = { name: \"CSS\", type: \"markup\", tmScope: \"source.css\", aceMode: \"css\", codemirrorMode: \"css\", codemirrorMimeType: \"text/css\", color: \"#563d7c\", extensions: [\".css\"], languageId: 50 };\n          } }), Wd = te({ \"node_modules/linguist-languages/data/PostCSS.json\"(e, r) {\n            r.exports = { name: \"PostCSS\", type: \"markup\", color: \"#dc3a0c\", tmScope: \"source.postcss\", group: \"CSS\", extensions: [\".pcss\", \".postcss\"], aceMode: \"text\", languageId: 262764437 };\n          } }), Hd = te({ \"node_modules/linguist-languages/data/Less.json\"(e, r) {\n            r.exports = { name: \"Less\", type: \"markup\", color: \"#1d365d\", aliases: [\"less-css\"], extensions: [\".less\"], tmScope: \"source.css.less\", aceMode: \"less\", codemirrorMode: \"css\", codemirrorMimeType: \"text/css\", languageId: 198 };\n          } }), Gd = te({ \"node_modules/linguist-languages/data/SCSS.json\"(e, r) {\n            r.exports = { name: \"SCSS\", type: \"markup\", color: \"#c6538c\", tmScope: \"source.css.scss\", aceMode: \"scss\", codemirrorMode: \"css\", codemirrorMimeType: \"text/x-scss\", extensions: [\".scss\"], languageId: 329 };\n          } }), Ud = te({ \"src/language-css/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = Md(), a = Rd(), n = $d(), u = [t(Vd(), (l) => ({ since: \"1.4.0\", parsers: [\"css\"], vscodeLanguageIds: [\"css\"], extensions: [...l.extensions, \".wxss\"] })), t(Wd(), () => ({ since: \"1.4.0\", parsers: [\"css\"], vscodeLanguageIds: [\"postcss\"] })), t(Hd(), () => ({ since: \"1.4.0\", parsers: [\"less\"], vscodeLanguageIds: [\"less\"] })), t(Gd(), () => ({ since: \"1.4.0\", parsers: [\"scss\"], vscodeLanguageIds: [\"scss\"] }))], i = { postcss: s2 };\n            r.exports = { languages: u, options: a, printers: i, parsers: n };\n          } }), Jd = te({ \"src/language-handlebars/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return a.loc.start.offset;\n            }\n            function s2(a) {\n              return a.loc.end.offset;\n            }\n            r.exports = { locStart: t, locEnd: s2 };\n          } }), zd = te({ \"src/language-handlebars/clean.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a) {\n              if (s2.type === \"TextNode\") {\n                let n = s2.chars.trim();\n                if (!n) return null;\n                a.chars = n.replace(/[\\t\\n\\f\\r ]+/g, \" \");\n              }\n              s2.type === \"AttrNode\" && s2.name.toLowerCase() === \"class\" && delete a.value;\n            }\n            t.ignoredProperties = /* @__PURE__ */ new Set([\"loc\", \"selfClosing\"]), r.exports = t;\n          } }), Xd = te({ \"src/language-handlebars/html-void-elements.evaluate.js\"(e, r) {\n            r.exports = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\n          } }), Kd = te({ \"src/language-handlebars/utils.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), s2 = Xd();\n            function a(x) {\n              let I = x.getValue(), P = x.getParentNode(0);\n              return !!(g(x, [\"ElementNode\"]) && t(P.children) === I || g(x, [\"Block\"]) && t(P.body) === I);\n            }\n            function n(x) {\n              return x.toUpperCase() === x;\n            }\n            function u(x) {\n              return h(x, [\"ElementNode\"]) && typeof x.tag == \"string\" && !x.tag.startsWith(\":\") && (n(x.tag[0]) || x.tag.includes(\".\"));\n            }\n            var i = new Set(s2);\n            function l(x) {\n              return i.has(x.toLowerCase()) && !n(x[0]);\n            }\n            function p(x) {\n              return x.selfClosing === true || l(x.tag) || u(x) && x.children.every((I) => y(I));\n            }\n            function y(x) {\n              return h(x, [\"TextNode\"]) && !/\\S/.test(x.chars);\n            }\n            function h(x, I) {\n              return x && I.includes(x.type);\n            }\n            function g(x, I) {\n              let P = x.getParentNode(0);\n              return h(P, I);\n            }\n            function c(x, I) {\n              let P = _(x);\n              return h(P, I);\n            }\n            function f(x, I) {\n              let P = w(x);\n              return h(P, I);\n            }\n            function F(x, I) {\n              var P, $, D, T;\n              let m = x.getValue(), C = (P = x.getParentNode(0)) !== null && P !== void 0 ? P : {}, o = ($ = (D = (T = C.children) !== null && T !== void 0 ? T : C.body) !== null && D !== void 0 ? D : C.parts) !== null && $ !== void 0 ? $ : [], d = o.indexOf(m);\n              return d !== -1 && o[d + I];\n            }\n            function _(x) {\n              let I = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;\n              return F(x, -I);\n            }\n            function w(x) {\n              return F(x, 1);\n            }\n            function E(x) {\n              return h(x, [\"MustacheCommentStatement\"]) && typeof x.value == \"string\" && x.value.trim() === \"prettier-ignore\";\n            }\n            function N(x) {\n              let I = x.getValue(), P = _(x, 2);\n              return E(I) || E(P);\n            }\n            r.exports = { getNextNode: w, getPreviousNode: _, hasPrettierIgnore: N, isLastNodeOfSiblings: a, isNextNodeOfSomeType: f, isNodeOfSomeType: h, isParentOfSomeType: g, isPreviousNodeOfSomeType: c, isVoid: p, isWhitespaceNode: y };\n          } }), Yd = te({ \"src/language-handlebars/printer-glimmer.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { dedent: t, fill: s2, group: a, hardline: n, ifBreak: u, indent: i, join: l, line: p, softline: y }, utils: { getDocParts: h, replaceTextEndOfLine: g } } = qe(), { getPreferredQuote: c, isNonEmptyArray: f } = Ue(), { locStart: F, locEnd: _ } = Jd(), w = zd(), { getNextNode: E, getPreviousNode: N, hasPrettierIgnore: x, isLastNodeOfSiblings: I, isNextNodeOfSomeType: P, isNodeOfSomeType: $, isParentOfSomeType: D, isPreviousNodeOfSomeType: T, isVoid: m, isWhitespaceNode: C } = Kd(), o = 2;\n            function d(H, pe, X) {\n              let le = H.getValue();\n              if (!le) return \"\";\n              if (x(H)) return pe.originalText.slice(F(le), _(le));\n              let Ae = pe.singleQuote ? \"'\" : '\"';\n              switch (le.type) {\n                case \"Block\":\n                case \"Program\":\n                case \"Template\":\n                  return a(H.map(X, \"body\"));\n                case \"ElementNode\": {\n                  let Ee = a(S(H, X)), De = pe.htmlWhitespaceSensitivity === \"ignore\" && P(H, [\"ElementNode\"]) ? y : \"\";\n                  if (m(le)) return [Ee, De];\n                  let A = [\"</\", le.tag, \">\"];\n                  return le.children.length === 0 ? [Ee, i(A), De] : pe.htmlWhitespaceSensitivity === \"ignore\" ? [Ee, i(b(H, pe, X)), n, i(A), De] : [Ee, i(a(b(H, pe, X))), i(A), De];\n                }\n                case \"BlockStatement\": {\n                  let Ee = H.getParentNode(1);\n                  return Ee && Ee.inverse && Ee.inverse.body.length === 1 && Ee.inverse.body[0] === le && Ee.inverse.body[0].path.parts[0] === Ee.path.parts[0] ? [ie(H, X, Ee.inverse.body[0].path.parts[0]), de(H, X, pe), ue(H, X, pe)] : [j(H, X), a([de(H, X, pe), ue(H, X, pe), ee(H, X, pe)])];\n                }\n                case \"ElementModifierStatement\":\n                  return a([\"{{\", Re(H, X), \"}}\"]);\n                case \"MustacheStatement\":\n                  return a([k(le), Re(H, X), M(le)]);\n                case \"SubExpression\":\n                  return a([\"(\", ke(H, X), y, \")\"]);\n                case \"AttrNode\": {\n                  let Ee = le.value.type === \"TextNode\";\n                  if (Ee && le.value.chars === \"\" && F(le.value) === _(le.value)) return le.name;\n                  let A = Ee ? c(le.value.chars, Ae).quote : le.value.type === \"ConcatStatement\" ? c(le.value.parts.filter((re) => re.type === \"TextNode\").map((re) => re.chars).join(\"\"), Ae).quote : \"\", G = X(\"value\");\n                  return [le.name, \"=\", A, le.name === \"class\" && A ? a(i(G)) : G, A];\n                }\n                case \"ConcatStatement\":\n                  return H.map(X, \"parts\");\n                case \"Hash\":\n                  return l(p, H.map(X, \"pairs\"));\n                case \"HashPair\":\n                  return [le.key, \"=\", X(\"value\")];\n                case \"TextNode\": {\n                  let Ee = le.chars.replace(/{{/g, \"\\\\{{\"), De = U(H);\n                  if (De) {\n                    if (De === \"class\") {\n                      let Ye = Ee.trim().split(/\\s+/).join(\" \"), Se = false, Ie = false;\n                      return D(H, [\"ConcatStatement\"]) && (T(H, [\"MustacheStatement\"]) && /^\\s/.test(Ee) && (Se = true), P(H, [\"MustacheStatement\"]) && /\\s$/.test(Ee) && Ye !== \"\" && (Ie = true)), [Se ? p : \"\", Ye, Ie ? p : \"\"];\n                    }\n                    return g(Ee);\n                  }\n                  let G = /^[\\t\\n\\f\\r ]*$/.test(Ee), re = !N(H), ye = !E(H);\n                  if (pe.htmlWhitespaceSensitivity !== \"ignore\") {\n                    let Ye = /^[\\t\\n\\f\\r ]*/, Se = /[\\t\\n\\f\\r ]*$/, Ie = ye && D(H, [\"Template\"]), Oe = re && D(H, [\"Template\"]);\n                    if (G) {\n                      if (Oe || Ie) return \"\";\n                      let ae = [p], nt = Z(Ee);\n                      return nt && (ae = ge(nt)), I(H) && (ae = ae.map((tt) => t(tt))), ae;\n                    }\n                    let [Je] = Ee.match(Ye), [Te] = Ee.match(Se), je = [];\n                    if (Je) {\n                      je = [p];\n                      let ae = Z(Je);\n                      ae && (je = ge(ae)), Ee = Ee.replace(Ye, \"\");\n                    }\n                    let Me = [];\n                    if (Te) {\n                      if (!Ie) {\n                        Me = [p];\n                        let ae = Z(Te);\n                        ae && (Me = ge(ae)), I(H) && (Me = Me.map((nt) => t(nt)));\n                      }\n                      Ee = Ee.replace(Se, \"\");\n                    }\n                    return [...je, s2(Fe(Ee)), ...Me];\n                  }\n                  let Ce = Z(Ee), Be = se(Ee), ve = fe(Ee);\n                  if ((re || ye) && G && D(H, [\"Block\", \"ElementNode\", \"Template\"])) return \"\";\n                  G && Ce ? (Be = Math.min(Ce, o), ve = 0) : (P(H, [\"BlockStatement\", \"ElementNode\"]) && (ve = Math.max(ve, 1)), T(H, [\"BlockStatement\", \"ElementNode\"]) && (Be = Math.max(Be, 1)));\n                  let ze = \"\", be = \"\";\n                  return ve === 0 && P(H, [\"MustacheStatement\"]) && (be = \" \"), Be === 0 && T(H, [\"MustacheStatement\"]) && (ze = \" \"), re && (Be = 0, ze = \"\"), ye && (ve = 0, be = \"\"), Ee = Ee.replace(/^[\\t\\n\\f\\r ]+/g, ze).replace(/[\\t\\n\\f\\r ]+$/, be), [...ge(Be), s2(Fe(Ee)), ...ge(ve)];\n                }\n                case \"MustacheCommentStatement\": {\n                  let Ee = F(le), De = _(le), A = pe.originalText.charAt(Ee + 2) === \"~\", G = pe.originalText.charAt(De - 3) === \"~\", re = le.value.includes(\"}}\") ? \"--\" : \"\";\n                  return [\"{{\", A ? \"~\" : \"\", \"!\", re, le.value, re, G ? \"~\" : \"\", \"}}\"];\n                }\n                case \"PathExpression\":\n                  return le.original;\n                case \"BooleanLiteral\":\n                  return String(le.value);\n                case \"CommentStatement\":\n                  return [\"<!--\", le.value, \"-->\"];\n                case \"StringLiteral\": {\n                  if (we(H)) {\n                    let Ee = pe.singleQuote ? '\"' : \"'\";\n                    return he(le.value, Ee);\n                  }\n                  return he(le.value, Ae);\n                }\n                case \"NumberLiteral\":\n                  return String(le.value);\n                case \"UndefinedLiteral\":\n                  return \"undefined\";\n                case \"NullLiteral\":\n                  return \"null\";\n                default:\n                  throw new Error(\"unknown glimmer type: \" + JSON.stringify(le.type));\n              }\n            }\n            function v(H, pe) {\n              return F(H) - F(pe);\n            }\n            function S(H, pe) {\n              let X = H.getValue(), le = [\"attributes\", \"modifiers\", \"comments\"].filter((Ee) => f(X[Ee])), Ae = le.flatMap((Ee) => X[Ee]).sort(v);\n              for (let Ee of le) H.each((De) => {\n                let A = Ae.indexOf(De.getValue());\n                Ae.splice(A, 1, [p, pe()]);\n              }, Ee);\n              return f(X.blockParams) && Ae.push(p, oe(X)), [\"<\", X.tag, i(Ae), B(X)];\n            }\n            function b(H, pe, X) {\n              let Ae = H.getValue().children.every((Ee) => C(Ee));\n              return pe.htmlWhitespaceSensitivity === \"ignore\" && Ae ? \"\" : H.map((Ee, De) => {\n                let A = X();\n                return De === 0 && pe.htmlWhitespaceSensitivity === \"ignore\" ? [y, A] : A;\n              }, \"children\");\n            }\n            function B(H) {\n              return m(H) ? u([y, \"/>\"], [\" />\", y]) : u([y, \">\"], \">\");\n            }\n            function k(H) {\n              let pe = H.escaped === false ? \"{{{\" : \"{{\", X = H.strip && H.strip.open ? \"~\" : \"\";\n              return [pe, X];\n            }\n            function M(H) {\n              let pe = H.escaped === false ? \"}}}\" : \"}}\";\n              return [H.strip && H.strip.close ? \"~\" : \"\", pe];\n            }\n            function R(H) {\n              let pe = k(H), X = H.openStrip.open ? \"~\" : \"\";\n              return [pe, X, \"#\"];\n            }\n            function q(H) {\n              let pe = M(H);\n              return [H.openStrip.close ? \"~\" : \"\", pe];\n            }\n            function J(H) {\n              let pe = k(H), X = H.closeStrip.open ? \"~\" : \"\";\n              return [pe, X, \"/\"];\n            }\n            function L(H) {\n              let pe = M(H);\n              return [H.closeStrip.close ? \"~\" : \"\", pe];\n            }\n            function Q(H) {\n              let pe = k(H), X = H.inverseStrip.open ? \"~\" : \"\";\n              return [pe, X];\n            }\n            function V(H) {\n              let pe = M(H);\n              return [H.inverseStrip.close ? \"~\" : \"\", pe];\n            }\n            function j(H, pe) {\n              let X = H.getValue(), le = [], Ae = Pe(H, pe);\n              return Ae && le.push(a(Ae)), f(X.program.blockParams) && le.push(oe(X.program)), a([R(X), Ne(H, pe), le.length > 0 ? i([p, l(p, le)]) : \"\", y, q(X)]);\n            }\n            function Y(H, pe) {\n              return [pe.htmlWhitespaceSensitivity === \"ignore\" ? n : \"\", Q(H), \"else\", V(H)];\n            }\n            function ie(H, pe, X) {\n              let le = H.getValue(), Ae = H.getParentNode(1);\n              return a([Q(Ae), [\"else\", \" \", X], i([p, a(Pe(H, pe)), ...f(le.program.blockParams) ? [p, oe(le.program)] : []]), y, V(Ae)]);\n            }\n            function ee(H, pe, X) {\n              let le = H.getValue();\n              return X.htmlWhitespaceSensitivity === \"ignore\" ? [ce(le) ? y : n, J(le), pe(\"path\"), L(le)] : [J(le), pe(\"path\"), L(le)];\n            }\n            function ce(H) {\n              return $(H, [\"BlockStatement\"]) && H.program.body.every((pe) => C(pe));\n            }\n            function W(H) {\n              return K(H) && H.inverse.body.length === 1 && $(H.inverse.body[0], [\"BlockStatement\"]) && H.inverse.body[0].path.parts[0] === H.path.parts[0];\n            }\n            function K(H) {\n              return $(H, [\"BlockStatement\"]) && H.inverse;\n            }\n            function de(H, pe, X) {\n              let le = H.getValue();\n              if (ce(le)) return \"\";\n              let Ae = pe(\"program\");\n              return X.htmlWhitespaceSensitivity === \"ignore\" ? i([n, Ae]) : i(Ae);\n            }\n            function ue(H, pe, X) {\n              let le = H.getValue(), Ae = pe(\"inverse\"), Ee = X.htmlWhitespaceSensitivity === \"ignore\" ? [n, Ae] : Ae;\n              return W(le) ? Ee : K(le) ? [Y(le, X), i(Ee)] : \"\";\n            }\n            function Fe(H) {\n              return h(l(p, z(H)));\n            }\n            function z(H) {\n              return H.split(/[\\t\\n\\f\\r ]+/);\n            }\n            function U(H) {\n              for (let pe = 0; pe < 2; pe++) {\n                let X = H.getParentNode(pe);\n                if (X && X.type === \"AttrNode\") return X.name.toLowerCase();\n              }\n            }\n            function Z(H) {\n              return H = typeof H == \"string\" ? H : \"\", H.split(`\n`).length - 1;\n            }\n            function se(H) {\n              H = typeof H == \"string\" ? H : \"\";\n              let pe = (H.match(/^([^\\S\\n\\r]*[\\n\\r])+/g) || [])[0] || \"\";\n              return Z(pe);\n            }\n            function fe(H) {\n              H = typeof H == \"string\" ? H : \"\";\n              let pe = (H.match(/([\\n\\r][^\\S\\n\\r]*)+$/g) || [])[0] || \"\";\n              return Z(pe);\n            }\n            function ge() {\n              let H = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;\n              return Array.from({ length: Math.min(H, o) }).fill(n);\n            }\n            function he(H, pe) {\n              let { quote: X, regex: le } = c(H, pe);\n              return [X, H.replace(le, `\\\\${X}`), X];\n            }\n            function we(H) {\n              let pe = 0, X = H.getParentNode(pe);\n              for (; X && $(X, [\"SubExpression\"]); ) pe++, X = H.getParentNode(pe);\n              return !!(X && $(H.getParentNode(pe + 1), [\"ConcatStatement\"]) && $(H.getParentNode(pe + 2), [\"AttrNode\"]));\n            }\n            function ke(H, pe) {\n              let X = Ne(H, pe), le = Pe(H, pe);\n              return le ? i([X, p, a(le)]) : X;\n            }\n            function Re(H, pe) {\n              let X = Ne(H, pe), le = Pe(H, pe);\n              return le ? [i([X, p, le]), y] : X;\n            }\n            function Ne(H, pe) {\n              return pe(\"path\");\n            }\n            function Pe(H, pe) {\n              let X = H.getValue(), le = [];\n              if (X.params.length > 0) {\n                let Ae = H.map(pe, \"params\");\n                le.push(...Ae);\n              }\n              if (X.hash && X.hash.pairs.length > 0) {\n                let Ae = pe(\"hash\");\n                le.push(Ae);\n              }\n              return le.length === 0 ? \"\" : l(p, le);\n            }\n            function oe(H) {\n              return [\"as |\", H.blockParams.join(\" \"), \"|\"];\n            }\n            r.exports = { print: d, massageAstNode: w };\n          } }), Qd = te({ \"src/language-handlebars/parsers.js\"() {\n            ne();\n          } }), Zd = te({ \"node_modules/linguist-languages/data/Handlebars.json\"(e, r) {\n            r.exports = { name: \"Handlebars\", type: \"markup\", color: \"#f7931e\", aliases: [\"hbs\", \"htmlbars\"], extensions: [\".handlebars\", \".hbs\"], tmScope: \"text.html.handlebars\", aceMode: \"handlebars\", languageId: 155 };\n          } }), eg = te({ \"src/language-handlebars/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = Yd(), a = Qd(), n = [t(Zd(), () => ({ since: \"2.3.0\", parsers: [\"glimmer\"], vscodeLanguageIds: [\"handlebars\"] }))], u = { glimmer: s2 };\n            r.exports = { languages: n, printers: u, parsers: a };\n          } }), tg = te({ \"src/language-graphql/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return /^\\s*#[^\\S\\n]*@(?:format|prettier)\\s*(?:\\n|$)/.test(a);\n            }\n            function s2(a) {\n              return `# @format\n\n` + a;\n            }\n            r.exports = { hasPragma: t, insertPragma: s2 };\n          } }), rg = te({ \"src/language-graphql/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return typeof a.start == \"number\" ? a.start : a.loc && a.loc.start;\n            }\n            function s2(a) {\n              return typeof a.end == \"number\" ? a.end : a.loc && a.loc.end;\n            }\n            r.exports = { locStart: t, locEnd: s2 };\n          } }), ng = te({ \"src/language-graphql/printer-graphql.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { join: t, hardline: s2, line: a, softline: n, group: u, indent: i, ifBreak: l } } = qe(), { isNextLineEmpty: p, isNonEmptyArray: y } = Ue(), { insertPragma: h } = tg(), { locStart: g, locEnd: c } = rg();\n            function f(P, $, D) {\n              let T = P.getValue();\n              if (!T) return \"\";\n              if (typeof T == \"string\") return T;\n              switch (T.kind) {\n                case \"Document\": {\n                  let m = [];\n                  return P.each((C, o, d) => {\n                    m.push(D()), o !== d.length - 1 && (m.push(s2), p($.originalText, C.getValue(), c) && m.push(s2));\n                  }, \"definitions\"), [...m, s2];\n                }\n                case \"OperationDefinition\": {\n                  let m = $.originalText[g(T)] !== \"{\", C = Boolean(T.name);\n                  return [m ? T.operation : \"\", m && C ? [\" \", D(\"name\")] : \"\", m && !C && y(T.variableDefinitions) ? \" \" : \"\", y(T.variableDefinitions) ? u([\"(\", i([n, t([l(\"\", \", \"), n], P.map(D, \"variableDefinitions\"))]), n, \")\"]) : \"\", F(P, D, T), T.selectionSet ? !m && !C ? \"\" : \" \" : \"\", D(\"selectionSet\")];\n                }\n                case \"FragmentDefinition\":\n                  return [\"fragment \", D(\"name\"), y(T.variableDefinitions) ? u([\"(\", i([n, t([l(\"\", \", \"), n], P.map(D, \"variableDefinitions\"))]), n, \")\"]) : \"\", \" on \", D(\"typeCondition\"), F(P, D, T), \" \", D(\"selectionSet\")];\n                case \"SelectionSet\":\n                  return [\"{\", i([s2, t(s2, _(P, $, D, \"selections\"))]), s2, \"}\"];\n                case \"Field\":\n                  return u([T.alias ? [D(\"alias\"), \": \"] : \"\", D(\"name\"), T.arguments.length > 0 ? u([\"(\", i([n, t([l(\"\", \", \"), n], _(P, $, D, \"arguments\"))]), n, \")\"]) : \"\", F(P, D, T), T.selectionSet ? \" \" : \"\", D(\"selectionSet\")]);\n                case \"Name\":\n                  return T.value;\n                case \"StringValue\": {\n                  if (T.block) {\n                    let m = T.value.replace(/\"\"\"/g, \"\\\\$&\").split(`\n`);\n                    return m.length === 1 && (m[0] = m[0].trim()), m.every((C) => C === \"\") && (m.length = 0), t(s2, ['\"\"\"', ...m, '\"\"\"']);\n                  }\n                  return ['\"', T.value.replace(/[\"\\\\]/g, \"\\\\$&\").replace(/\\n/g, \"\\\\n\"), '\"'];\n                }\n                case \"IntValue\":\n                case \"FloatValue\":\n                case \"EnumValue\":\n                  return T.value;\n                case \"BooleanValue\":\n                  return T.value ? \"true\" : \"false\";\n                case \"NullValue\":\n                  return \"null\";\n                case \"Variable\":\n                  return [\"$\", D(\"name\")];\n                case \"ListValue\":\n                  return u([\"[\", i([n, t([l(\"\", \", \"), n], P.map(D, \"values\"))]), n, \"]\"]);\n                case \"ObjectValue\":\n                  return u([\"{\", $.bracketSpacing && T.fields.length > 0 ? \" \" : \"\", i([n, t([l(\"\", \", \"), n], P.map(D, \"fields\"))]), n, l(\"\", $.bracketSpacing && T.fields.length > 0 ? \" \" : \"\"), \"}\"]);\n                case \"ObjectField\":\n                case \"Argument\":\n                  return [D(\"name\"), \": \", D(\"value\")];\n                case \"Directive\":\n                  return [\"@\", D(\"name\"), T.arguments.length > 0 ? u([\"(\", i([n, t([l(\"\", \", \"), n], _(P, $, D, \"arguments\"))]), n, \")\"]) : \"\"];\n                case \"NamedType\":\n                  return D(\"name\");\n                case \"VariableDefinition\":\n                  return [D(\"variable\"), \": \", D(\"type\"), T.defaultValue ? [\" = \", D(\"defaultValue\")] : \"\", F(P, D, T)];\n                case \"ObjectTypeExtension\":\n                case \"ObjectTypeDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", T.kind === \"ObjectTypeExtension\" ? \"extend \" : \"\", \"type \", D(\"name\"), T.interfaces.length > 0 ? [\" implements \", ...N(P, $, D)] : \"\", F(P, D, T), T.fields.length > 0 ? [\" {\", i([s2, t(s2, _(P, $, D, \"fields\"))]), s2, \"}\"] : \"\"];\n                case \"FieldDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", D(\"name\"), T.arguments.length > 0 ? u([\"(\", i([n, t([l(\"\", \", \"), n], _(P, $, D, \"arguments\"))]), n, \")\"]) : \"\", \": \", D(\"type\"), F(P, D, T)];\n                case \"DirectiveDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", \"directive \", \"@\", D(\"name\"), T.arguments.length > 0 ? u([\"(\", i([n, t([l(\"\", \", \"), n], _(P, $, D, \"arguments\"))]), n, \")\"]) : \"\", T.repeatable ? \" repeatable\" : \"\", \" on \", t(\" | \", P.map(D, \"locations\"))];\n                case \"EnumTypeExtension\":\n                case \"EnumTypeDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", T.kind === \"EnumTypeExtension\" ? \"extend \" : \"\", \"enum \", D(\"name\"), F(P, D, T), T.values.length > 0 ? [\" {\", i([s2, t(s2, _(P, $, D, \"values\"))]), s2, \"}\"] : \"\"];\n                case \"EnumValueDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", D(\"name\"), F(P, D, T)];\n                case \"InputValueDefinition\":\n                  return [D(\"description\"), T.description ? T.description.block ? s2 : a : \"\", D(\"name\"), \": \", D(\"type\"), T.defaultValue ? [\" = \", D(\"defaultValue\")] : \"\", F(P, D, T)];\n                case \"InputObjectTypeExtension\":\n                case \"InputObjectTypeDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", T.kind === \"InputObjectTypeExtension\" ? \"extend \" : \"\", \"input \", D(\"name\"), F(P, D, T), T.fields.length > 0 ? [\" {\", i([s2, t(s2, _(P, $, D, \"fields\"))]), s2, \"}\"] : \"\"];\n                case \"SchemaExtension\":\n                  return [\"extend schema\", F(P, D, T), ...T.operationTypes.length > 0 ? [\" {\", i([s2, t(s2, _(P, $, D, \"operationTypes\"))]), s2, \"}\"] : []];\n                case \"SchemaDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", \"schema\", F(P, D, T), \" {\", T.operationTypes.length > 0 ? i([s2, t(s2, _(P, $, D, \"operationTypes\"))]) : \"\", s2, \"}\"];\n                case \"OperationTypeDefinition\":\n                  return [D(\"operation\"), \": \", D(\"type\")];\n                case \"InterfaceTypeExtension\":\n                case \"InterfaceTypeDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", T.kind === \"InterfaceTypeExtension\" ? \"extend \" : \"\", \"interface \", D(\"name\"), T.interfaces.length > 0 ? [\" implements \", ...N(P, $, D)] : \"\", F(P, D, T), T.fields.length > 0 ? [\" {\", i([s2, t(s2, _(P, $, D, \"fields\"))]), s2, \"}\"] : \"\"];\n                case \"FragmentSpread\":\n                  return [\"...\", D(\"name\"), F(P, D, T)];\n                case \"InlineFragment\":\n                  return [\"...\", T.typeCondition ? [\" on \", D(\"typeCondition\")] : \"\", F(P, D, T), \" \", D(\"selectionSet\")];\n                case \"UnionTypeExtension\":\n                case \"UnionTypeDefinition\":\n                  return u([D(\"description\"), T.description ? s2 : \"\", u([T.kind === \"UnionTypeExtension\" ? \"extend \" : \"\", \"union \", D(\"name\"), F(P, D, T), T.types.length > 0 ? [\" =\", l(\"\", \" \"), i([l([a, \"  \"]), t([a, \"| \"], P.map(D, \"types\"))])] : \"\"])]);\n                case \"ScalarTypeExtension\":\n                case \"ScalarTypeDefinition\":\n                  return [D(\"description\"), T.description ? s2 : \"\", T.kind === \"ScalarTypeExtension\" ? \"extend \" : \"\", \"scalar \", D(\"name\"), F(P, D, T)];\n                case \"NonNullType\":\n                  return [D(\"type\"), \"!\"];\n                case \"ListType\":\n                  return [\"[\", D(\"type\"), \"]\"];\n                default:\n                  throw new Error(\"unknown graphql type: \" + JSON.stringify(T.kind));\n              }\n            }\n            function F(P, $, D) {\n              if (D.directives.length === 0) return \"\";\n              let T = t(a, P.map($, \"directives\"));\n              return D.kind === \"FragmentDefinition\" || D.kind === \"OperationDefinition\" ? u([a, T]) : [\" \", u(i([n, T]))];\n            }\n            function _(P, $, D, T) {\n              return P.map((m, C, o) => {\n                let d = D();\n                return C < o.length - 1 && p($.originalText, m.getValue(), c) ? [d, s2] : d;\n              }, T);\n            }\n            function w(P) {\n              return P.kind && P.kind !== \"Comment\";\n            }\n            function E(P) {\n              let $ = P.getValue();\n              if ($.kind === \"Comment\") return \"#\" + $.value.trimEnd();\n              throw new Error(\"Not a comment: \" + JSON.stringify($));\n            }\n            function N(P, $, D) {\n              let T = P.getNode(), m = [], { interfaces: C } = T, o = P.map((d) => D(d), \"interfaces\");\n              for (let d = 0; d < C.length; d++) {\n                let v = C[d];\n                m.push(o[d]);\n                let S = C[d + 1];\n                if (S) {\n                  let b = $.originalText.slice(v.loc.end, S.loc.start), B = b.includes(\"#\"), k = b.replace(/#.*/g, \"\").trim();\n                  m.push(k === \",\" ? \",\" : \" &\", B ? a : \" \");\n                }\n              }\n              return m;\n            }\n            function x(P, $) {\n              P.kind === \"StringValue\" && P.block && !P.value.includes(`\n`) && ($.value = $.value.trim());\n            }\n            x.ignoredProperties = /* @__PURE__ */ new Set([\"loc\", \"comments\"]);\n            function I(P) {\n              var $;\n              let D = P.getValue();\n              return D == null || ($ = D.comments) === null || $ === void 0 ? void 0 : $.some((T) => T.value.trim() === \"prettier-ignore\");\n            }\n            r.exports = { print: f, massageAstNode: x, hasPrettierIgnore: I, insertPragma: h, printComment: E, canAttachComment: w };\n          } }), ug = te({ \"src/language-graphql/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt();\n            r.exports = { bracketSpacing: t.bracketSpacing };\n          } }), sg = te({ \"src/language-graphql/parsers.js\"() {\n            ne();\n          } }), ig = te({ \"node_modules/linguist-languages/data/GraphQL.json\"(e, r) {\n            r.exports = { name: \"GraphQL\", type: \"data\", color: \"#e10098\", extensions: [\".graphql\", \".gql\", \".graphqls\"], tmScope: \"source.graphql\", aceMode: \"text\", languageId: 139 };\n          } }), ag = te({ \"src/language-graphql/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = ng(), a = ug(), n = sg(), u = [t(ig(), () => ({ since: \"1.5.0\", parsers: [\"graphql\"], vscodeLanguageIds: [\"graphql\"] }))], i = { graphql: s2 };\n            r.exports = { languages: u, options: a, printers: i, parsers: n };\n          } }), Po = te({ \"node_modules/collapse-white-space/index.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = t;\n            function t(s2) {\n              return String(s2).replace(/\\s+/g, \" \");\n            }\n          } }), Io = te({ \"src/language-markdown/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return a.position.start.offset;\n            }\n            function s2(a) {\n              return a.position.end.offset;\n            }\n            r.exports = { locStart: t, locEnd: s2 };\n          } }), og = te({ \"src/language-markdown/constants.evaluate.js\"(e, r) {\n            r.exports = { cjkPattern: \"(?:[\\\\u02ea-\\\\u02eb\\\\u1100-\\\\u11ff\\\\u2e80-\\\\u2e99\\\\u2e9b-\\\\u2ef3\\\\u2f00-\\\\u2fd5\\\\u2ff0-\\\\u303f\\\\u3041-\\\\u3096\\\\u3099-\\\\u309f\\\\u30a1-\\\\u30fa\\\\u30fc-\\\\u30ff\\\\u3105-\\\\u312f\\\\u3131-\\\\u318e\\\\u3190-\\\\u3191\\\\u3196-\\\\u31ba\\\\u31c0-\\\\u31e3\\\\u31f0-\\\\u321e\\\\u322a-\\\\u3247\\\\u3260-\\\\u327e\\\\u328a-\\\\u32b0\\\\u32c0-\\\\u32cb\\\\u32d0-\\\\u3370\\\\u337b-\\\\u337f\\\\u33e0-\\\\u33fe\\\\u3400-\\\\u4db5\\\\u4e00-\\\\u9fef\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\uf900-\\\\ufa6d\\\\ufa70-\\\\ufad9\\\\ufe10-\\\\ufe1f\\\\ufe30-\\\\ufe6f\\\\uff00-\\\\uffef]|[\\\\ud840-\\\\ud868\\\\ud86a-\\\\ud86c\\\\ud86f-\\\\ud872\\\\ud874-\\\\ud879][\\\\udc00-\\\\udfff]|\\\\ud82c[\\\\udc00-\\\\udd1e\\\\udd50-\\\\udd52\\\\udd64-\\\\udd67]|\\\\ud83c[\\\\ude00\\\\ude50-\\\\ude51]|\\\\ud869[\\\\udc00-\\\\uded6\\\\udf00-\\\\udfff]|\\\\ud86d[\\\\udc00-\\\\udf34\\\\udf40-\\\\udfff]|\\\\ud86e[\\\\udc00-\\\\udc1d\\\\udc20-\\\\udfff]|\\\\ud873[\\\\udc00-\\\\udea1\\\\udeb0-\\\\udfff]|\\\\ud87a[\\\\udc00-\\\\udfe0]|\\\\ud87e[\\\\udc00-\\\\ude1d])(?:[\\\\ufe00-\\\\ufe0f]|\\\\udb40[\\\\udd00-\\\\uddef])?\", kPattern: \"[\\\\u1100-\\\\u11ff\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3013-\\\\u301f\\\\u302e-\\\\u3030\\\\u3037\\\\u30fb\\\\u3131-\\\\u318e\\\\u3200-\\\\u321e\\\\u3260-\\\\u327e\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\ufe45-\\\\ufe46\\\\uff61-\\\\uff65\\\\uffa0-\\\\uffbe\\\\uffc2-\\\\uffc7\\\\uffca-\\\\uffcf\\\\uffd2-\\\\uffd7\\\\uffda-\\\\uffdc]\", punctuationPattern: \"[\\\\u0021-\\\\u002f\\\\u003a-\\\\u0040\\\\u005b-\\\\u0060\\\\u007b-\\\\u007e\\\\u00a1\\\\u00a7\\\\u00ab\\\\u00b6-\\\\u00b7\\\\u00bb\\\\u00bf\\\\u037e\\\\u0387\\\\u055a-\\\\u055f\\\\u0589-\\\\u058a\\\\u05be\\\\u05c0\\\\u05c3\\\\u05c6\\\\u05f3-\\\\u05f4\\\\u0609-\\\\u060a\\\\u060c-\\\\u060d\\\\u061b\\\\u061e-\\\\u061f\\\\u066a-\\\\u066d\\\\u06d4\\\\u0700-\\\\u070d\\\\u07f7-\\\\u07f9\\\\u0830-\\\\u083e\\\\u085e\\\\u0964-\\\\u0965\\\\u0970\\\\u09fd\\\\u0a76\\\\u0af0\\\\u0c77\\\\u0c84\\\\u0df4\\\\u0e4f\\\\u0e5a-\\\\u0e5b\\\\u0f04-\\\\u0f12\\\\u0f14\\\\u0f3a-\\\\u0f3d\\\\u0f85\\\\u0fd0-\\\\u0fd4\\\\u0fd9-\\\\u0fda\\\\u104a-\\\\u104f\\\\u10fb\\\\u1360-\\\\u1368\\\\u1400\\\\u166e\\\\u169b-\\\\u169c\\\\u16eb-\\\\u16ed\\\\u1735-\\\\u1736\\\\u17d4-\\\\u17d6\\\\u17d8-\\\\u17da\\\\u1800-\\\\u180a\\\\u1944-\\\\u1945\\\\u1a1e-\\\\u1a1f\\\\u1aa0-\\\\u1aa6\\\\u1aa8-\\\\u1aad\\\\u1b5a-\\\\u1b60\\\\u1bfc-\\\\u1bff\\\\u1c3b-\\\\u1c3f\\\\u1c7e-\\\\u1c7f\\\\u1cc0-\\\\u1cc7\\\\u1cd3\\\\u2010-\\\\u2027\\\\u2030-\\\\u2043\\\\u2045-\\\\u2051\\\\u2053-\\\\u205e\\\\u207d-\\\\u207e\\\\u208d-\\\\u208e\\\\u2308-\\\\u230b\\\\u2329-\\\\u232a\\\\u2768-\\\\u2775\\\\u27c5-\\\\u27c6\\\\u27e6-\\\\u27ef\\\\u2983-\\\\u2998\\\\u29d8-\\\\u29db\\\\u29fc-\\\\u29fd\\\\u2cf9-\\\\u2cfc\\\\u2cfe-\\\\u2cff\\\\u2d70\\\\u2e00-\\\\u2e2e\\\\u2e30-\\\\u2e4f\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3014-\\\\u301f\\\\u3030\\\\u303d\\\\u30a0\\\\u30fb\\\\ua4fe-\\\\ua4ff\\\\ua60d-\\\\ua60f\\\\ua673\\\\ua67e\\\\ua6f2-\\\\ua6f7\\\\ua874-\\\\ua877\\\\ua8ce-\\\\ua8cf\\\\ua8f8-\\\\ua8fa\\\\ua8fc\\\\ua92e-\\\\ua92f\\\\ua95f\\\\ua9c1-\\\\ua9cd\\\\ua9de-\\\\ua9df\\\\uaa5c-\\\\uaa5f\\\\uaade-\\\\uaadf\\\\uaaf0-\\\\uaaf1\\\\uabeb\\\\ufd3e-\\\\ufd3f\\\\ufe10-\\\\ufe19\\\\ufe30-\\\\ufe52\\\\ufe54-\\\\ufe61\\\\ufe63\\\\ufe68\\\\ufe6a-\\\\ufe6b\\\\uff01-\\\\uff03\\\\uff05-\\\\uff0a\\\\uff0c-\\\\uff0f\\\\uff1a-\\\\uff1b\\\\uff1f-\\\\uff20\\\\uff3b-\\\\uff3d\\\\uff3f\\\\uff5b\\\\uff5d\\\\uff5f-\\\\uff65]|\\\\ud800[\\\\udd00-\\\\udd02\\\\udf9f\\\\udfd0]|\\\\ud801[\\\\udd6f]|\\\\ud802[\\\\udc57\\\\udd1f\\\\udd3f\\\\ude50-\\\\ude58\\\\ude7f\\\\udef0-\\\\udef6\\\\udf39-\\\\udf3f\\\\udf99-\\\\udf9c]|\\\\ud803[\\\\udf55-\\\\udf59]|\\\\ud804[\\\\udc47-\\\\udc4d\\\\udcbb-\\\\udcbc\\\\udcbe-\\\\udcc1\\\\udd40-\\\\udd43\\\\udd74-\\\\udd75\\\\uddc5-\\\\uddc8\\\\uddcd\\\\udddb\\\\udddd-\\\\udddf\\\\ude38-\\\\ude3d\\\\udea9]|\\\\ud805[\\\\udc4b-\\\\udc4f\\\\udc5b\\\\udc5d\\\\udcc6\\\\uddc1-\\\\uddd7\\\\ude41-\\\\ude43\\\\ude60-\\\\ude6c\\\\udf3c-\\\\udf3e]|\\\\ud806[\\\\udc3b\\\\udde2\\\\ude3f-\\\\ude46\\\\ude9a-\\\\ude9c\\\\ude9e-\\\\udea2]|\\\\ud807[\\\\udc41-\\\\udc45\\\\udc70-\\\\udc71\\\\udef7-\\\\udef8\\\\udfff]|\\\\ud809[\\\\udc70-\\\\udc74]|\\\\ud81a[\\\\ude6e-\\\\ude6f\\\\udef5\\\\udf37-\\\\udf3b\\\\udf44]|\\\\ud81b[\\\\ude97-\\\\ude9a\\\\udfe2]|\\\\ud82f[\\\\udc9f]|\\\\ud836[\\\\ude87-\\\\ude8b]|\\\\ud83a[\\\\udd5e-\\\\udd5f]\" };\n          } }), iu = te({ \"src/language-markdown/utils.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { getLast: t } = Ue(), { locStart: s2, locEnd: a } = Io(), { cjkPattern: n, kPattern: u, punctuationPattern: i } = og(), l = [\"liquidNode\", \"inlineCode\", \"emphasis\", \"esComment\", \"strong\", \"delete\", \"wikiLink\", \"link\", \"linkReference\", \"image\", \"imageReference\", \"footnote\", \"footnoteReference\", \"sentence\", \"whitespace\", \"word\", \"break\", \"inlineMath\"], p = [...l, \"tableCell\", \"paragraph\", \"heading\"], y = new RegExp(u), h = new RegExp(i);\n            function g(E, N) {\n              let x = \"non-cjk\", I = \"cj-letter\", P = \"k-letter\", $ = \"cjk-punctuation\", D = [], T = (N.proseWrap === \"preserve\" ? E : E.replace(new RegExp(`(${n})\n(${n})`, \"g\"), \"$1$2\")).split(/([\\t\\n ]+)/);\n              for (let [C, o] of T.entries()) {\n                if (C % 2 === 1) {\n                  D.push({ type: \"whitespace\", value: /\\n/.test(o) ? `\n` : \" \" });\n                  continue;\n                }\n                if ((C === 0 || C === T.length - 1) && o === \"\") continue;\n                let d = o.split(new RegExp(`(${n})`));\n                for (let [v, S] of d.entries()) if (!((v === 0 || v === d.length - 1) && S === \"\")) {\n                  if (v % 2 === 0) {\n                    S !== \"\" && m({ type: \"word\", value: S, kind: x, hasLeadingPunctuation: h.test(S[0]), hasTrailingPunctuation: h.test(t(S)) });\n                    continue;\n                  }\n                  m(h.test(S) ? { type: \"word\", value: S, kind: $, hasLeadingPunctuation: true, hasTrailingPunctuation: true } : { type: \"word\", value: S, kind: y.test(S) ? P : I, hasLeadingPunctuation: false, hasTrailingPunctuation: false });\n                }\n              }\n              return D;\n              function m(C) {\n                let o = t(D);\n                o && o.type === \"word\" && (o.kind === x && C.kind === I && !o.hasTrailingPunctuation || o.kind === I && C.kind === x && !C.hasLeadingPunctuation ? D.push({ type: \"whitespace\", value: \" \" }) : !d(x, $) && ![o.value, C.value].some((v) => /\\u3000/.test(v)) && D.push({ type: \"whitespace\", value: \"\" })), D.push(C);\n                function d(v, S) {\n                  return o.kind === v && C.kind === S || o.kind === S && C.kind === v;\n                }\n              }\n            }\n            function c(E, N) {\n              let [, x, I, P] = N.slice(E.position.start.offset, E.position.end.offset).match(/^\\s*(\\d+)(\\.|\\))(\\s*)/);\n              return { numberText: x, marker: I, leadingSpaces: P };\n            }\n            function f(E, N) {\n              if (!E.ordered || E.children.length < 2) return false;\n              let x = Number(c(E.children[0], N.originalText).numberText), I = Number(c(E.children[1], N.originalText).numberText);\n              if (x === 0 && E.children.length > 2) {\n                let P = Number(c(E.children[2], N.originalText).numberText);\n                return I === 1 && P === 1;\n              }\n              return I === 1;\n            }\n            function F(E, N) {\n              let { value: x } = E;\n              return E.position.end.offset === N.length && x.endsWith(`\n`) && N.endsWith(`\n`) ? x.slice(0, -1) : x;\n            }\n            function _(E, N) {\n              return function x(I, P, $) {\n                let D = Object.assign({}, N(I, P, $));\n                return D.children && (D.children = D.children.map((T, m) => x(T, m, [D, ...$]))), D;\n              }(E, null, []);\n            }\n            function w(E) {\n              if ((E == null ? void 0 : E.type) !== \"link\" || E.children.length !== 1) return false;\n              let [N] = E.children;\n              return s2(E) === s2(N) && a(E) === a(N);\n            }\n            r.exports = { mapAst: _, splitText: g, punctuationPattern: i, getFencedCodeBlockValue: F, getOrderedListItemInfo: c, hasGitDiffFriendlyOrderedList: f, INLINE_NODE_TYPES: l, INLINE_NODE_WRAPPER_TYPES: p, isAutolink: w };\n          } }), lg = te({ \"src/language-markdown/embed.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { inferParserByLanguage: t, getMaxContinuousCount: s2 } = Ue(), { builders: { hardline: a, markAsRoot: n }, utils: { replaceEndOfLine: u } } = qe(), i = su(), { getFencedCodeBlockValue: l } = iu();\n            function p(y, h, g, c) {\n              let f = y.getValue();\n              if (f.type === \"code\" && f.lang !== null) {\n                let F = t(f.lang, c);\n                if (F) {\n                  let _ = c.__inJsTemplate ? \"~\" : \"`\", w = _.repeat(Math.max(3, s2(f.value, _) + 1)), E = { parser: F };\n                  f.lang === \"tsx\" && (E.filepath = \"dummy.tsx\");\n                  let N = g(l(f, c.originalText), E, { stripTrailingHardline: true });\n                  return n([w, f.lang, f.meta ? \" \" + f.meta : \"\", a, u(N), a, w]);\n                }\n              }\n              switch (f.type) {\n                case \"front-matter\":\n                  return i(f, g);\n                case \"importExport\":\n                  return [g(f.value, { parser: \"babel\" }, { stripTrailingHardline: true }), a];\n                case \"jsx\":\n                  return g(`<$>${f.value}</$>`, { parser: \"__js_expression\", rootMarker: \"mdx\" }, { stripTrailingHardline: true });\n              }\n              return null;\n            }\n            r.exports = p;\n          } }), ko = te({ \"src/language-markdown/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _o(), s2 = [\"format\", \"prettier\"];\n            function a(n) {\n              let u = `@(${s2.join(\"|\")})`, i = new RegExp([`<!--\\\\s*${u}\\\\s*-->`, `{\\\\s*\\\\/\\\\*\\\\s*${u}\\\\s*\\\\*\\\\/\\\\s*}`, `<!--.*\\r?\n[\\\\s\\\\S]*(^|\n)[^\\\\S\n]*${u}[^\\\\S\n]*($|\n)[\\\\s\\\\S]*\n.*-->`].join(\"|\"), \"m\"), l = n.match(i);\n              return (l == null ? void 0 : l.index) === 0;\n            }\n            r.exports = { startWithPragma: a, hasPragma: (n) => a(t(n).content.trimStart()), insertPragma: (n) => {\n              let u = t(n), i = `<!-- @${s2[0]} -->`;\n              return u.frontMatter ? `${u.frontMatter.raw}\n\n${i}\n\n${u.content}` : `${i}\n\n${u.content}`;\n            } };\n          } }), cg = te({ \"src/language-markdown/print-preprocess.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = lt(), { getOrderedListItemInfo: s2, mapAst: a, splitText: n } = iu(), u = /^.$/su;\n            function i(w, E) {\n              return w = y(w, E), w = c(w), w = p(w, E), w = F(w, E), w = _(w, E), w = f(w, E), w = l(w), w = h(w), w;\n            }\n            function l(w) {\n              return a(w, (E) => E.type !== \"import\" && E.type !== \"export\" ? E : Object.assign(Object.assign({}, E), {}, { type: \"importExport\" }));\n            }\n            function p(w, E) {\n              return a(w, (N) => N.type !== \"inlineCode\" || E.proseWrap === \"preserve\" ? N : Object.assign(Object.assign({}, N), {}, { value: N.value.replace(/\\s+/g, \" \") }));\n            }\n            function y(w, E) {\n              return a(w, (N) => N.type !== \"text\" || N.value === \"*\" || N.value === \"_\" || !u.test(N.value) || N.position.end.offset - N.position.start.offset === N.value.length ? N : Object.assign(Object.assign({}, N), {}, { value: E.originalText.slice(N.position.start.offset, N.position.end.offset) }));\n            }\n            function h(w) {\n              return g(w, (E, N) => E.type === \"importExport\" && N.type === \"importExport\", (E, N) => ({ type: \"importExport\", value: E.value + `\n\n` + N.value, position: { start: E.position.start, end: N.position.end } }));\n            }\n            function g(w, E, N) {\n              return a(w, (x) => {\n                if (!x.children) return x;\n                let I = x.children.reduce((P, $) => {\n                  let D = t(P);\n                  return D && E(D, $) ? P.splice(-1, 1, N(D, $)) : P.push($), P;\n                }, []);\n                return Object.assign(Object.assign({}, x), {}, { children: I });\n              });\n            }\n            function c(w) {\n              return g(w, (E, N) => E.type === \"text\" && N.type === \"text\", (E, N) => ({ type: \"text\", value: E.value + N.value, position: { start: E.position.start, end: N.position.end } }));\n            }\n            function f(w, E) {\n              return a(w, (N, x, I) => {\n                let [P] = I;\n                if (N.type !== \"text\") return N;\n                let { value: $ } = N;\n                return P.type === \"paragraph\" && (x === 0 && ($ = $.trimStart()), x === P.children.length - 1 && ($ = $.trimEnd())), { type: \"sentence\", position: N.position, children: n($, E) };\n              });\n            }\n            function F(w, E) {\n              return a(w, (N, x, I) => {\n                if (N.type === \"code\") {\n                  let P = /^\\n?(?: {4,}|\\t)/.test(E.originalText.slice(N.position.start.offset, N.position.end.offset));\n                  if (N.isIndented = P, P) for (let $ = 0; $ < I.length; $++) {\n                    let D = I[$];\n                    if (D.hasIndentedCodeblock) break;\n                    D.type === \"list\" && (D.hasIndentedCodeblock = true);\n                  }\n                }\n                return N;\n              });\n            }\n            function _(w, E) {\n              return a(w, (I, P, $) => {\n                if (I.type === \"list\" && I.children.length > 0) {\n                  for (let D = 0; D < $.length; D++) {\n                    let T = $[D];\n                    if (T.type === \"list\" && !T.isAligned) return I.isAligned = false, I;\n                  }\n                  I.isAligned = x(I);\n                }\n                return I;\n              });\n              function N(I) {\n                return I.children.length === 0 ? -1 : I.children[0].position.start.column - 1;\n              }\n              function x(I) {\n                if (!I.ordered) return true;\n                let [P, $] = I.children;\n                if (s2(P, E.originalText).leadingSpaces.length > 1) return true;\n                let T = N(P);\n                if (T === -1) return false;\n                if (I.children.length === 1) return T % E.tabWidth === 0;\n                let m = N($);\n                return T !== m ? false : T % E.tabWidth === 0 ? true : s2($, E.originalText).leadingSpaces.length > 1;\n              }\n            }\n            r.exports = i;\n          } }), pg = te({ \"src/language-markdown/clean.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Po(), { isFrontMatterNode: s2 } = Ue(), { startWithPragma: a } = ko(), n = /* @__PURE__ */ new Set([\"position\", \"raw\"]);\n            function u(i, l, p) {\n              if ((i.type === \"front-matter\" || i.type === \"code\" || i.type === \"yaml\" || i.type === \"import\" || i.type === \"export\" || i.type === \"jsx\") && delete l.value, i.type === \"list\" && delete l.isAligned, (i.type === \"list\" || i.type === \"listItem\") && (delete l.spread, delete l.loose), i.type === \"text\" || (i.type === \"inlineCode\" && (l.value = i.value.replace(/[\\t\\n ]+/g, \" \")), i.type === \"wikiLink\" && (l.value = i.value.trim().replace(/[\\t\\n]+/g, \" \")), (i.type === \"definition\" || i.type === \"linkReference\" || i.type === \"imageReference\") && (l.label = t(i.label)), (i.type === \"definition\" || i.type === \"link\" || i.type === \"image\") && i.title && (l.title = i.title.replace(/\\\\([\"')])/g, \"$1\")), p && p.type === \"root\" && p.children.length > 0 && (p.children[0] === i || s2(p.children[0]) && p.children[1] === i) && i.type === \"html\" && a(i.value))) return null;\n            }\n            u.ignoredProperties = n, r.exports = u;\n          } }), fg = te({ \"src/language-markdown/printer-markdown.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Po(), { getLast: s2, getMinNotPresentContinuousCount: a, getMaxContinuousCount: n, getStringWidth: u, isNonEmptyArray: i } = Ue(), { builders: { breakParent: l, join: p, line: y, literalline: h, markAsRoot: g, hardline: c, softline: f, ifBreak: F, fill: _, align: w, indent: E, group: N, hardlineWithoutBreakParent: x }, utils: { normalizeDoc: I, replaceTextEndOfLine: P }, printer: { printDocToString: $ } } = qe(), D = lg(), { insertPragma: T } = ko(), { locStart: m, locEnd: C } = Io(), o = cg(), d = pg(), { getFencedCodeBlockValue: v, hasGitDiffFriendlyOrderedList: S, splitText: b, punctuationPattern: B, INLINE_NODE_TYPES: k, INLINE_NODE_WRAPPER_TYPES: M, isAutolink: R } = iu(), q = /* @__PURE__ */ new Set([\"importExport\"]), J = [\"heading\", \"tableCell\", \"link\", \"wikiLink\"], L = /* @__PURE__ */ new Set([\"listItem\", \"definition\", \"footnoteDefinition\"]);\n            function Q(oe, H, pe) {\n              let X = oe.getValue();\n              if (ge(oe)) return b(H.originalText.slice(X.position.start.offset, X.position.end.offset), H).map((le) => le.type === \"word\" ? le.value : le.value === \"\" ? \"\" : W(oe, le.value, H));\n              switch (X.type) {\n                case \"front-matter\":\n                  return H.originalText.slice(X.position.start.offset, X.position.end.offset);\n                case \"root\":\n                  return X.children.length === 0 ? \"\" : [I(de(oe, H, pe)), q.has(z(X).type) ? \"\" : c];\n                case \"paragraph\":\n                  return ue(oe, H, pe, { postprocessor: _ });\n                case \"sentence\":\n                  return ue(oe, H, pe);\n                case \"word\": {\n                  let le = X.value.replace(/\\*/g, \"\\\\$&\").replace(new RegExp([`(^|${B})(_+)`, `(_+)(${B}|$)`].join(\"|\"), \"g\"), (De, A, G, re, ye) => (G ? `${A}${G}` : `${re}${ye}`).replace(/_/g, \"\\\\_\")), Ae = (De, A, G) => De.type === \"sentence\" && G === 0, Ee = (De, A, G) => R(De.children[G - 1]);\n                  return le !== X.value && (oe.match(void 0, Ae, Ee) || oe.match(void 0, Ae, (De, A, G) => De.type === \"emphasis\" && G === 0, Ee)) && (le = le.replace(/^(\\\\?[*_])+/, (De) => De.replace(/\\\\/g, \"\"))), le;\n                }\n                case \"whitespace\": {\n                  let le = oe.getParentNode(), Ae = le.children.indexOf(X), Ee = le.children[Ae + 1], De = Ee && /^>|^(?:[*+-]|#{1,6}|\\d+[).])$/.test(Ee.value) ? \"never\" : H.proseWrap;\n                  return W(oe, X.value, { proseWrap: De });\n                }\n                case \"emphasis\": {\n                  let le;\n                  if (R(X.children[0])) le = H.originalText[X.position.start.offset];\n                  else {\n                    let Ae = oe.getParentNode(), Ee = Ae.children.indexOf(X), De = Ae.children[Ee - 1], A = Ae.children[Ee + 1];\n                    le = De && De.type === \"sentence\" && De.children.length > 0 && s2(De.children).type === \"word\" && !s2(De.children).hasTrailingPunctuation || A && A.type === \"sentence\" && A.children.length > 0 && A.children[0].type === \"word\" && !A.children[0].hasLeadingPunctuation || ce(oe, \"emphasis\") ? \"*\" : \"_\";\n                  }\n                  return [le, ue(oe, H, pe), le];\n                }\n                case \"strong\":\n                  return [\"**\", ue(oe, H, pe), \"**\"];\n                case \"delete\":\n                  return [\"~~\", ue(oe, H, pe), \"~~\"];\n                case \"inlineCode\": {\n                  let le = a(X.value, \"`\"), Ae = \"`\".repeat(le || 1), Ee = le && !/^\\s/.test(X.value) ? \" \" : \"\";\n                  return [Ae, Ee, X.value, Ee, Ae];\n                }\n                case \"wikiLink\": {\n                  let le = \"\";\n                  return H.proseWrap === \"preserve\" ? le = X.value : le = X.value.replace(/[\\t\\n]+/g, \" \"), [\"[[\", le, \"]]\"];\n                }\n                case \"link\":\n                  switch (H.originalText[X.position.start.offset]) {\n                    case \"<\": {\n                      let le = \"mailto:\";\n                      return [\"<\", X.url.startsWith(le) && H.originalText.slice(X.position.start.offset + 1, X.position.start.offset + 1 + le.length) !== le ? X.url.slice(le.length) : X.url, \">\"];\n                    }\n                    case \"[\":\n                      return [\"[\", ue(oe, H, pe), \"](\", he(X.url, \")\"), we(X.title, H), \")\"];\n                    default:\n                      return H.originalText.slice(X.position.start.offset, X.position.end.offset);\n                  }\n                case \"image\":\n                  return [\"![\", X.alt || \"\", \"](\", he(X.url, \")\"), we(X.title, H), \")\"];\n                case \"blockquote\":\n                  return [\"> \", w(\"> \", ue(oe, H, pe))];\n                case \"heading\":\n                  return [\"#\".repeat(X.depth) + \" \", ue(oe, H, pe)];\n                case \"code\": {\n                  if (X.isIndented) {\n                    let Ee = \" \".repeat(4);\n                    return w(Ee, [Ee, ...P(X.value, c)]);\n                  }\n                  let le = H.__inJsTemplate ? \"~\" : \"`\", Ae = le.repeat(Math.max(3, n(X.value, le) + 1));\n                  return [Ae, X.lang || \"\", X.meta ? \" \" + X.meta : \"\", c, ...P(v(X, H.originalText), c), c, Ae];\n                }\n                case \"html\": {\n                  let le = oe.getParentNode(), Ae = le.type === \"root\" && s2(le.children) === X ? X.value.trimEnd() : X.value, Ee = /^<!--.*-->$/s.test(Ae);\n                  return P(Ae, Ee ? c : g(h));\n                }\n                case \"list\": {\n                  let le = Y(X, oe.getParentNode()), Ae = S(X, H);\n                  return ue(oe, H, pe, { processor: (Ee, De) => {\n                    let A = re(), G = Ee.getValue();\n                    if (G.children.length === 2 && G.children[1].type === \"html\" && G.children[0].position.start.column !== G.children[1].position.start.column) return [A, V(Ee, H, pe, A)];\n                    return [A, w(\" \".repeat(A.length), V(Ee, H, pe, A))];\n                    function re() {\n                      let ye = X.ordered ? (De === 0 ? X.start : Ae ? 1 : X.start + De) + (le % 2 === 0 ? \". \" : \") \") : le % 2 === 0 ? \"- \" : \"* \";\n                      return X.isAligned || X.hasIndentedCodeblock ? j(ye, H) : ye;\n                    }\n                  } });\n                }\n                case \"thematicBreak\": {\n                  let le = ee(oe, \"list\");\n                  return le === -1 ? \"---\" : Y(oe.getParentNode(le), oe.getParentNode(le + 1)) % 2 === 0 ? \"***\" : \"---\";\n                }\n                case \"linkReference\":\n                  return [\"[\", ue(oe, H, pe), \"]\", X.referenceType === \"full\" ? Ne(X) : X.referenceType === \"collapsed\" ? \"[]\" : \"\"];\n                case \"imageReference\":\n                  switch (X.referenceType) {\n                    case \"full\":\n                      return [\"![\", X.alt || \"\", \"]\", Ne(X)];\n                    default:\n                      return [\"![\", X.alt, \"]\", X.referenceType === \"collapsed\" ? \"[]\" : \"\"];\n                  }\n                case \"definition\": {\n                  let le = H.proseWrap === \"always\" ? y : \" \";\n                  return N([Ne(X), \":\", E([le, he(X.url), X.title === null ? \"\" : [le, we(X.title, H, false)]])]);\n                }\n                case \"footnote\":\n                  return [\"[^\", ue(oe, H, pe), \"]\"];\n                case \"footnoteReference\":\n                  return Pe(X);\n                case \"footnoteDefinition\": {\n                  let le = oe.getParentNode().children[oe.getName() + 1], Ae = X.children.length === 1 && X.children[0].type === \"paragraph\" && (H.proseWrap === \"never\" || H.proseWrap === \"preserve\" && X.children[0].position.start.line === X.children[0].position.end.line);\n                  return [Pe(X), \": \", Ae ? ue(oe, H, pe) : N([w(\" \".repeat(4), ue(oe, H, pe, { processor: (Ee, De) => De === 0 ? N([f, pe()]) : pe() })), le && le.type === \"footnoteDefinition\" ? f : \"\"])];\n                }\n                case \"table\":\n                  return K(oe, H, pe);\n                case \"tableCell\":\n                  return ue(oe, H, pe);\n                case \"break\":\n                  return /\\s/.test(H.originalText[X.position.start.offset]) ? [\"  \", g(h)] : [\"\\\\\", c];\n                case \"liquidNode\":\n                  return P(X.value, c);\n                case \"importExport\":\n                  return [X.value, c];\n                case \"esComment\":\n                  return [\"{/* \", X.value, \" */}\"];\n                case \"jsx\":\n                  return X.value;\n                case \"math\":\n                  return [\"$$\", c, X.value ? [...P(X.value, c), c] : \"\", \"$$\"];\n                case \"inlineMath\":\n                  return H.originalText.slice(m(X), C(X));\n                case \"tableRow\":\n                case \"listItem\":\n                default:\n                  throw new Error(`Unknown markdown type ${JSON.stringify(X.type)}`);\n              }\n            }\n            function V(oe, H, pe, X) {\n              let le = oe.getValue(), Ae = le.checked === null ? \"\" : le.checked ? \"[x] \" : \"[ ] \";\n              return [Ae, ue(oe, H, pe, { processor: (Ee, De) => {\n                if (De === 0 && Ee.getValue().type !== \"list\") return w(\" \".repeat(Ae.length), pe());\n                let A = \" \".repeat(ke(H.tabWidth - X.length, 0, 3));\n                return [A, w(A, pe())];\n              } })];\n            }\n            function j(oe, H) {\n              let pe = X();\n              return oe + \" \".repeat(pe >= 4 ? 0 : pe);\n              function X() {\n                let le = oe.length % H.tabWidth;\n                return le === 0 ? 0 : H.tabWidth - le;\n              }\n            }\n            function Y(oe, H) {\n              return ie(oe, H, (pe) => pe.ordered === oe.ordered);\n            }\n            function ie(oe, H, pe) {\n              let X = -1;\n              for (let le of H.children) if (le.type === oe.type && pe(le) ? X++ : X = -1, le === oe) return X;\n            }\n            function ee(oe, H) {\n              let pe = Array.isArray(H) ? H : [H], X = -1, le;\n              for (; le = oe.getParentNode(++X); ) if (pe.includes(le.type)) return X;\n              return -1;\n            }\n            function ce(oe, H) {\n              let pe = ee(oe, H);\n              return pe === -1 ? null : oe.getParentNode(pe);\n            }\n            function W(oe, H, pe) {\n              if (pe.proseWrap === \"preserve\" && H === `\n`) return c;\n              let X = pe.proseWrap === \"always\" && !ce(oe, J);\n              return H !== \"\" ? X ? y : \" \" : X ? f : \"\";\n            }\n            function K(oe, H, pe) {\n              let X = oe.getValue(), le = [], Ae = oe.map((ye) => ye.map((Ce, Be) => {\n                let ve = $(pe(), H).formatted, ze = u(ve);\n                return le[Be] = Math.max(le[Be] || 3, ze), { text: ve, width: ze };\n              }, \"children\"), \"children\"), Ee = A(false);\n              if (H.proseWrap !== \"never\") return [l, Ee];\n              let De = A(true);\n              return [l, N(F(De, Ee))];\n              function A(ye) {\n                let Ce = [re(Ae[0], ye), G(ye)];\n                return Ae.length > 1 && Ce.push(p(x, Ae.slice(1).map((Be) => re(Be, ye)))), p(x, Ce);\n              }\n              function G(ye) {\n                return `| ${le.map((Be, ve) => {\n                  let ze = X.align[ve], be = ze === \"center\" || ze === \"left\" ? \":\" : \"-\", Ye = ze === \"center\" || ze === \"right\" ? \":\" : \"-\", Se = ye ? \"-\" : \"-\".repeat(Be - 2);\n                  return `${be}${Se}${Ye}`;\n                }).join(\" | \")} |`;\n              }\n              function re(ye, Ce) {\n                return `| ${ye.map((ve, ze) => {\n                  let { text: be, width: Ye } = ve;\n                  if (Ce) return be;\n                  let Se = le[ze] - Ye, Ie = X.align[ze], Oe = 0;\n                  Ie === \"right\" ? Oe = Se : Ie === \"center\" && (Oe = Math.floor(Se / 2));\n                  let Je = Se - Oe;\n                  return `${\" \".repeat(Oe)}${be}${\" \".repeat(Je)}`;\n                }).join(\" | \")} |`;\n              }\n            }\n            function de(oe, H, pe) {\n              let X = [], le = null, { children: Ae } = oe.getValue();\n              for (let [Ee, De] of Ae.entries()) switch (U(De)) {\n                case \"start\":\n                  le === null && (le = { index: Ee, offset: De.position.end.offset });\n                  break;\n                case \"end\":\n                  le !== null && (X.push({ start: le, end: { index: Ee, offset: De.position.start.offset } }), le = null);\n                  break;\n                default:\n                  break;\n              }\n              return ue(oe, H, pe, { processor: (Ee, De) => {\n                if (X.length > 0) {\n                  let A = X[0];\n                  if (De === A.start.index) return [Fe(Ae[A.start.index]), H.originalText.slice(A.start.offset, A.end.offset), Fe(Ae[A.end.index])];\n                  if (A.start.index < De && De < A.end.index) return false;\n                  if (De === A.end.index) return X.shift(), false;\n                }\n                return pe();\n              } });\n            }\n            function ue(oe, H, pe) {\n              let X = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, { postprocessor: le } = X, Ae = X.processor || (() => pe()), Ee = oe.getValue(), De = [], A;\n              return oe.each((G, re) => {\n                let ye = G.getValue(), Ce = Ae(G, re);\n                if (Ce !== false) {\n                  let Be = { parts: De, prevNode: A, parentNode: Ee, options: H };\n                  Z(ye, Be) && (De.push(c), A && q.has(A.type) || (se(ye, Be) || fe(ye, Be)) && De.push(c), fe(ye, Be) && De.push(c)), De.push(Ce), A = ye;\n                }\n              }, \"children\"), le ? le(De) : De;\n            }\n            function Fe(oe) {\n              if (oe.type === \"html\") return oe.value;\n              if (oe.type === \"paragraph\" && Array.isArray(oe.children) && oe.children.length === 1 && oe.children[0].type === \"esComment\") return [\"{/* \", oe.children[0].value, \" */}\"];\n            }\n            function z(oe) {\n              let H = oe;\n              for (; i(H.children); ) H = s2(H.children);\n              return H;\n            }\n            function U(oe) {\n              let H;\n              if (oe.type === \"html\") H = oe.value.match(/^<!--\\s*prettier-ignore(?:-(start|end))?\\s*-->$/);\n              else {\n                let pe;\n                oe.type === \"esComment\" ? pe = oe : oe.type === \"paragraph\" && oe.children.length === 1 && oe.children[0].type === \"esComment\" && (pe = oe.children[0]), pe && (H = pe.value.match(/^prettier-ignore(?:-(start|end))?$/));\n              }\n              return H ? H[1] || \"next\" : false;\n            }\n            function Z(oe, H) {\n              let pe = H.parts.length === 0, X = k.includes(oe.type), le = oe.type === \"html\" && M.includes(H.parentNode.type);\n              return !pe && !X && !le;\n            }\n            function se(oe, H) {\n              var pe, X, le;\n              let Ee = (H.prevNode && H.prevNode.type) === oe.type && L.has(oe.type), De = H.parentNode.type === \"listItem\" && !H.parentNode.loose, A = ((pe = H.prevNode) === null || pe === void 0 ? void 0 : pe.type) === \"listItem\" && H.prevNode.loose, G = U(H.prevNode) === \"next\", re = oe.type === \"html\" && ((X = H.prevNode) === null || X === void 0 ? void 0 : X.type) === \"html\" && H.prevNode.position.end.line + 1 === oe.position.start.line, ye = oe.type === \"html\" && H.parentNode.type === \"listItem\" && ((le = H.prevNode) === null || le === void 0 ? void 0 : le.type) === \"paragraph\" && H.prevNode.position.end.line + 1 === oe.position.start.line;\n              return A || !(Ee || De || G || re || ye);\n            }\n            function fe(oe, H) {\n              let pe = H.prevNode && H.prevNode.type === \"list\", X = oe.type === \"code\" && oe.isIndented;\n              return pe && X;\n            }\n            function ge(oe) {\n              let H = ce(oe, [\"linkReference\", \"imageReference\"]);\n              return H && (H.type !== \"linkReference\" || H.referenceType !== \"full\");\n            }\n            function he(oe) {\n              let H = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [], pe = [\" \", ...Array.isArray(H) ? H : [H]];\n              return new RegExp(pe.map((X) => `\\\\${X}`).join(\"|\")).test(oe) ? `<${oe}>` : oe;\n            }\n            function we(oe, H) {\n              let pe = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;\n              if (!oe) return \"\";\n              if (pe) return \" \" + we(oe, H, false);\n              if (oe = oe.replace(/\\\\([\"')])/g, \"$1\"), oe.includes('\"') && oe.includes(\"'\") && !oe.includes(\")\")) return `(${oe})`;\n              let X = oe.split(\"'\").length - 1, le = oe.split('\"').length - 1, Ae = X > le ? '\"' : le > X || H.singleQuote ? \"'\" : '\"';\n              return oe = oe.replace(/\\\\/, \"\\\\\\\\\"), oe = oe.replace(new RegExp(`(${Ae})`, \"g\"), \"\\\\$1\"), `${Ae}${oe}${Ae}`;\n            }\n            function ke(oe, H, pe) {\n              return oe < H ? H : oe > pe ? pe : oe;\n            }\n            function Re(oe) {\n              let H = Number(oe.getName());\n              if (H === 0) return false;\n              let pe = oe.getParentNode().children[H - 1];\n              return U(pe) === \"next\";\n            }\n            function Ne(oe) {\n              return `[${t(oe.label)}]`;\n            }\n            function Pe(oe) {\n              return `[^${oe.label}]`;\n            }\n            r.exports = { preprocess: o, print: Q, embed: D, massageAstNode: d, hasPrettierIgnore: Re, insertPragma: T };\n          } }), Dg = te({ \"src/language-markdown/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt();\n            r.exports = { proseWrap: t.proseWrap, singleQuote: t.singleQuote };\n          } }), mg = te({ \"src/language-markdown/parsers.js\"() {\n            ne();\n          } }), _a = te({ \"node_modules/linguist-languages/data/Markdown.json\"(e, r) {\n            r.exports = { name: \"Markdown\", type: \"prose\", color: \"#083fa1\", aliases: [\"pandoc\"], aceMode: \"markdown\", codemirrorMode: \"gfm\", codemirrorMimeType: \"text/x-gfm\", wrap: true, extensions: [\".md\", \".livemd\", \".markdown\", \".mdown\", \".mdwn\", \".mdx\", \".mkd\", \".mkdn\", \".mkdown\", \".ronn\", \".scd\", \".workbook\"], filenames: [\"contents.lr\"], tmScope: \"source.gfm\", languageId: 222 };\n          } }), dg = te({ \"src/language-markdown/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = fg(), a = Dg(), n = mg(), u = [t(_a(), (l) => ({ since: \"1.8.0\", parsers: [\"markdown\"], vscodeLanguageIds: [\"markdown\"], filenames: [...l.filenames, \"README\"], extensions: l.extensions.filter((p) => p !== \".mdx\") })), t(_a(), () => ({ name: \"MDX\", since: \"1.15.0\", parsers: [\"mdx\"], vscodeLanguageIds: [\"mdx\"], filenames: [], extensions: [\".mdx\"] }))], i = { mdast: s2 };\n            r.exports = { languages: u, options: a, printers: i, parsers: n };\n          } }), gg = te({ \"src/language-html/clean.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { isFrontMatterNode: t } = Ue(), s2 = /* @__PURE__ */ new Set([\"sourceSpan\", \"startSourceSpan\", \"endSourceSpan\", \"nameSpan\", \"valueSpan\"]);\n            function a(n, u) {\n              if (n.type === \"text\" || n.type === \"comment\" || t(n) || n.type === \"yaml\" || n.type === \"toml\") return null;\n              n.type === \"attribute\" && delete u.value, n.type === \"docType\" && delete u.value;\n            }\n            a.ignoredProperties = s2, r.exports = a;\n          } }), yg = te({ \"src/language-html/constants.evaluate.js\"(e, r) {\n            r.exports = { CSS_DISPLAY_TAGS: { area: \"none\", base: \"none\", basefont: \"none\", datalist: \"none\", head: \"none\", link: \"none\", meta: \"none\", noembed: \"none\", noframes: \"none\", param: \"block\", rp: \"none\", script: \"block\", source: \"block\", style: \"none\", template: \"inline\", track: \"block\", title: \"none\", html: \"block\", body: \"block\", address: \"block\", blockquote: \"block\", center: \"block\", div: \"block\", figure: \"block\", figcaption: \"block\", footer: \"block\", form: \"block\", header: \"block\", hr: \"block\", legend: \"block\", listing: \"block\", main: \"block\", p: \"block\", plaintext: \"block\", pre: \"block\", xmp: \"block\", slot: \"contents\", ruby: \"ruby\", rt: \"ruby-text\", article: \"block\", aside: \"block\", h1: \"block\", h2: \"block\", h3: \"block\", h4: \"block\", h5: \"block\", h6: \"block\", hgroup: \"block\", nav: \"block\", section: \"block\", dir: \"block\", dd: \"block\", dl: \"block\", dt: \"block\", ol: \"block\", ul: \"block\", li: \"list-item\", table: \"table\", caption: \"table-caption\", colgroup: \"table-column-group\", col: \"table-column\", thead: \"table-header-group\", tbody: \"table-row-group\", tfoot: \"table-footer-group\", tr: \"table-row\", td: \"table-cell\", th: \"table-cell\", fieldset: \"block\", button: \"inline-block\", details: \"block\", summary: \"block\", dialog: \"block\", meter: \"inline-block\", progress: \"inline-block\", object: \"inline-block\", video: \"inline-block\", audio: \"inline-block\", select: \"inline-block\", option: \"block\", optgroup: \"block\" }, CSS_DISPLAY_DEFAULT: \"inline\", CSS_WHITE_SPACE_TAGS: { listing: \"pre\", plaintext: \"pre\", pre: \"pre\", xmp: \"pre\", nobr: \"nowrap\", table: \"initial\", textarea: \"pre-wrap\" }, CSS_WHITE_SPACE_DEFAULT: \"normal\" };\n          } }), hg = te({ \"src/language-html/utils/is-unknown-namespace.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2) {\n              return s2.type === \"element\" && !s2.hasExplicitNamespace && ![\"html\", \"svg\"].includes(s2.namespace);\n            }\n            r.exports = t;\n          } }), Rt = te({ \"src/language-html/utils/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { inferParserByLanguage: t, isFrontMatterNode: s2 } = Ue(), { builders: { line: a, hardline: n, join: u }, utils: { getDocParts: i, replaceTextEndOfLine: l } } = qe(), { CSS_DISPLAY_TAGS: p, CSS_DISPLAY_DEFAULT: y, CSS_WHITE_SPACE_TAGS: h, CSS_WHITE_SPACE_DEFAULT: g } = yg(), c = hg(), f = /* @__PURE__ */ new Set([\"\t\", `\n`, \"\\f\", \"\\r\", \" \"]), F = (A) => A.replace(/^[\\t\\n\\f\\r ]+/, \"\"), _ = (A) => A.replace(/[\\t\\n\\f\\r ]+$/, \"\"), w = (A) => F(_(A)), E = (A) => A.replace(/^[\\t\\f\\r ]*\\n/g, \"\"), N = (A) => E(_(A)), x = (A) => A.split(/[\\t\\n\\f\\r ]+/), I = (A) => A.match(/^[\\t\\n\\f\\r ]*/)[0], P = (A) => {\n              let [, G, re, ye] = A.match(/^([\\t\\n\\f\\r ]*)(.*?)([\\t\\n\\f\\r ]*)$/s);\n              return { leadingWhitespace: G, trailingWhitespace: ye, text: re };\n            }, $ = (A) => /[\\t\\n\\f\\r ]/.test(A);\n            function D(A, G) {\n              return !!(A.type === \"ieConditionalComment\" && A.lastChild && !A.lastChild.isSelfClosing && !A.lastChild.endSourceSpan || A.type === \"ieConditionalComment\" && !A.complete || se(A) && A.children.some((re) => re.type !== \"text\" && re.type !== \"interpolation\") || X(A, G) && !o(A) && A.type !== \"interpolation\");\n            }\n            function T(A) {\n              return A.type === \"attribute\" || !A.parent || !A.prev ? false : m(A.prev);\n            }\n            function m(A) {\n              return A.type === \"comment\" && A.value.trim() === \"prettier-ignore\";\n            }\n            function C(A) {\n              return A.type === \"text\" || A.type === \"comment\";\n            }\n            function o(A) {\n              return A.type === \"element\" && (A.fullName === \"script\" || A.fullName === \"style\" || A.fullName === \"svg:style\" || c(A) && (A.name === \"script\" || A.name === \"style\"));\n            }\n            function d(A) {\n              return A.children && !o(A);\n            }\n            function v(A) {\n              return o(A) || A.type === \"interpolation\" || S(A);\n            }\n            function S(A) {\n              return we(A).startsWith(\"pre\");\n            }\n            function b(A, G) {\n              let re = ye();\n              if (re && !A.prev && A.parent && A.parent.tagDefinition && A.parent.tagDefinition.ignoreFirstLf) return A.type === \"interpolation\";\n              return re;\n              function ye() {\n                return s2(A) ? false : (A.type === \"text\" || A.type === \"interpolation\") && A.prev && (A.prev.type === \"text\" || A.prev.type === \"interpolation\") ? true : !A.parent || A.parent.cssDisplay === \"none\" ? false : se(A.parent) ? true : !(!A.prev && (A.parent.type === \"root\" || se(A) && A.parent || o(A.parent) || H(A.parent, G) || !ue(A.parent.cssDisplay)) || A.prev && !U(A.prev.cssDisplay));\n              }\n            }\n            function B(A, G) {\n              return s2(A) ? false : (A.type === \"text\" || A.type === \"interpolation\") && A.next && (A.next.type === \"text\" || A.next.type === \"interpolation\") ? true : !A.parent || A.parent.cssDisplay === \"none\" ? false : se(A.parent) ? true : !(!A.next && (A.parent.type === \"root\" || se(A) && A.parent || o(A.parent) || H(A.parent, G) || !Fe(A.parent.cssDisplay)) || A.next && !z(A.next.cssDisplay));\n            }\n            function k(A) {\n              return Z(A.cssDisplay) && !o(A);\n            }\n            function M(A) {\n              return s2(A) || A.next && A.sourceSpan.end && A.sourceSpan.end.line + 1 < A.next.sourceSpan.start.line;\n            }\n            function R(A) {\n              return q(A) || A.type === \"element\" && A.children.length > 0 && ([\"body\", \"script\", \"style\"].includes(A.name) || A.children.some((G) => ee(G))) || A.firstChild && A.firstChild === A.lastChild && A.firstChild.type !== \"text\" && V(A.firstChild) && (!A.lastChild.isTrailingSpaceSensitive || j(A.lastChild));\n            }\n            function q(A) {\n              return A.type === \"element\" && A.children.length > 0 && ([\"html\", \"head\", \"ul\", \"ol\", \"select\"].includes(A.name) || A.cssDisplay.startsWith(\"table\") && A.cssDisplay !== \"table-cell\");\n            }\n            function J(A) {\n              return Y(A) || A.prev && L(A.prev) || Q(A);\n            }\n            function L(A) {\n              return Y(A) || A.type === \"element\" && A.fullName === \"br\" || Q(A);\n            }\n            function Q(A) {\n              return V(A) && j(A);\n            }\n            function V(A) {\n              return A.hasLeadingSpaces && (A.prev ? A.prev.sourceSpan.end.line < A.sourceSpan.start.line : A.parent.type === \"root\" || A.parent.startSourceSpan.end.line < A.sourceSpan.start.line);\n            }\n            function j(A) {\n              return A.hasTrailingSpaces && (A.next ? A.next.sourceSpan.start.line > A.sourceSpan.end.line : A.parent.type === \"root\" || A.parent.endSourceSpan && A.parent.endSourceSpan.start.line > A.sourceSpan.end.line);\n            }\n            function Y(A) {\n              switch (A.type) {\n                case \"ieConditionalComment\":\n                case \"comment\":\n                case \"directive\":\n                  return true;\n                case \"element\":\n                  return [\"script\", \"select\"].includes(A.name);\n              }\n              return false;\n            }\n            function ie(A) {\n              return A.lastChild ? ie(A.lastChild) : A;\n            }\n            function ee(A) {\n              return A.children && A.children.some((G) => G.type !== \"text\");\n            }\n            function ce(A) {\n              let { type: G, lang: re } = A.attrMap;\n              if (G === \"module\" || G === \"text/javascript\" || G === \"text/babel\" || G === \"application/javascript\" || re === \"jsx\") return \"babel\";\n              if (G === \"application/x-typescript\" || re === \"ts\" || re === \"tsx\") return \"typescript\";\n              if (G === \"text/markdown\") return \"markdown\";\n              if (G === \"text/html\") return \"html\";\n              if (G && (G.endsWith(\"json\") || G.endsWith(\"importmap\")) || G === \"speculationrules\") return \"json\";\n              if (G === \"text/x-handlebars-template\") return \"glimmer\";\n            }\n            function W(A, G) {\n              let { lang: re } = A.attrMap;\n              if (!re || re === \"postcss\" || re === \"css\") return \"css\";\n              if (re === \"scss\") return \"scss\";\n              if (re === \"less\") return \"less\";\n              if (re === \"stylus\") return t(\"stylus\", G);\n            }\n            function K(A, G) {\n              if (A.name === \"script\" && !A.attrMap.src) return !A.attrMap.lang && !A.attrMap.type ? \"babel\" : ce(A);\n              if (A.name === \"style\") return W(A, G);\n              if (G && X(A, G)) return ce(A) || !(\"src\" in A.attrMap) && t(A.attrMap.lang, G);\n            }\n            function de(A) {\n              return A === \"block\" || A === \"list-item\" || A.startsWith(\"table\");\n            }\n            function ue(A) {\n              return !de(A) && A !== \"inline-block\";\n            }\n            function Fe(A) {\n              return !de(A) && A !== \"inline-block\";\n            }\n            function z(A) {\n              return !de(A);\n            }\n            function U(A) {\n              return !de(A);\n            }\n            function Z(A) {\n              return !de(A) && A !== \"inline-block\";\n            }\n            function se(A) {\n              return we(A).startsWith(\"pre\");\n            }\n            function fe(A, G) {\n              let re = 0;\n              for (let ye = A.stack.length - 1; ye >= 0; ye--) {\n                let Ce = A.stack[ye];\n                Ce && typeof Ce == \"object\" && !Array.isArray(Ce) && G(Ce) && re++;\n              }\n              return re;\n            }\n            function ge(A, G) {\n              let re = A;\n              for (; re; ) {\n                if (G(re)) return true;\n                re = re.parent;\n              }\n              return false;\n            }\n            function he(A, G) {\n              if (A.prev && A.prev.type === \"comment\") {\n                let ye = A.prev.value.match(/^\\s*display:\\s*([a-z]+)\\s*$/);\n                if (ye) return ye[1];\n              }\n              let re = false;\n              if (A.type === \"element\" && A.namespace === \"svg\") if (ge(A, (ye) => ye.fullName === \"svg:foreignObject\")) re = true;\n              else return A.name === \"svg\" ? \"inline-block\" : \"block\";\n              switch (G.htmlWhitespaceSensitivity) {\n                case \"strict\":\n                  return \"inline\";\n                case \"ignore\":\n                  return \"block\";\n                default:\n                  return G.parser === \"vue\" && A.parent && A.parent.type === \"root\" ? \"block\" : A.type === \"element\" && (!A.namespace || re || c(A)) && p[A.name] || y;\n              }\n            }\n            function we(A) {\n              return A.type === \"element\" && (!A.namespace || c(A)) && h[A.name] || g;\n            }\n            function ke(A) {\n              let G = Number.POSITIVE_INFINITY;\n              for (let re of A.split(`\n`)) {\n                if (re.length === 0) continue;\n                if (!f.has(re[0])) return 0;\n                let ye = I(re).length;\n                re.length !== ye && ye < G && (G = ye);\n              }\n              return G === Number.POSITIVE_INFINITY ? 0 : G;\n            }\n            function Re(A) {\n              let G = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ke(A);\n              return G === 0 ? A : A.split(`\n`).map((re) => re.slice(G)).join(`\n`);\n            }\n            function Ne(A, G) {\n              let re = 0;\n              for (let ye = 0; ye < A.length; ye++) A[ye] === G && re++;\n              return re;\n            }\n            function Pe(A) {\n              return A.replace(/&apos;/g, \"'\").replace(/&quot;/g, '\"');\n            }\n            var oe = /* @__PURE__ */ new Set([\"template\", \"style\", \"script\"]);\n            function H(A, G) {\n              return pe(A, G) && !oe.has(A.fullName);\n            }\n            function pe(A, G) {\n              return G.parser === \"vue\" && A.type === \"element\" && A.parent.type === \"root\" && A.fullName.toLowerCase() !== \"html\";\n            }\n            function X(A, G) {\n              return pe(A, G) && (H(A, G) || A.attrMap.lang && A.attrMap.lang !== \"html\");\n            }\n            function le(A) {\n              let G = A.fullName;\n              return G.charAt(0) === \"#\" || G === \"slot-scope\" || G === \"v-slot\" || G.startsWith(\"v-slot:\");\n            }\n            function Ae(A, G) {\n              let re = A.parent;\n              if (!pe(re, G)) return false;\n              let ye = re.fullName, Ce = A.fullName;\n              return ye === \"script\" && Ce === \"setup\" || ye === \"style\" && Ce === \"vars\";\n            }\n            function Ee(A) {\n              let G = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : A.value;\n              return A.parent.isWhitespaceSensitive ? A.parent.isIndentationSensitive ? l(G) : l(Re(N(G)), n) : i(u(a, x(G)));\n            }\n            function De(A, G) {\n              return pe(A, G) && A.name === \"script\";\n            }\n            r.exports = { htmlTrim: w, htmlTrimPreserveIndentation: N, hasHtmlWhitespace: $, getLeadingAndTrailingHtmlWhitespace: P, canHaveInterpolation: d, countChars: Ne, countParents: fe, dedentString: Re, forceBreakChildren: q, forceBreakContent: R, forceNextEmptyLine: M, getLastDescendant: ie, getNodeCssStyleDisplay: he, getNodeCssStyleWhiteSpace: we, hasPrettierIgnore: T, inferScriptParser: K, isVueCustomBlock: H, isVueNonHtmlBlock: X, isVueScriptTag: De, isVueSlotAttribute: le, isVueSfcBindingsAttribute: Ae, isVueSfcBlock: pe, isDanglingSpaceSensitiveNode: k, isIndentationSensitiveNode: S, isLeadingSpaceSensitiveNode: b, isPreLikeNode: se, isScriptLikeTag: o, isTextLikeNode: C, isTrailingSpaceSensitiveNode: B, isWhitespaceSensitiveNode: v, isUnknownNamespace: c, preferHardlineAsLeadingSpaces: J, preferHardlineAsTrailingSpaces: L, shouldPreserveContent: D, unescapeQuoteEntities: Pe, getTextValueParts: Ee };\n          } }), vg = te({ \"node_modules/angular-html-parser/lib/compiler/src/chars.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true }), e.$EOF = 0, e.$BSPACE = 8, e.$TAB = 9, e.$LF = 10, e.$VTAB = 11, e.$FF = 12, e.$CR = 13, e.$SPACE = 32, e.$BANG = 33, e.$DQ = 34, e.$HASH = 35, e.$$ = 36, e.$PERCENT = 37, e.$AMPERSAND = 38, e.$SQ = 39, e.$LPAREN = 40, e.$RPAREN = 41, e.$STAR = 42, e.$PLUS = 43, e.$COMMA = 44, e.$MINUS = 45, e.$PERIOD = 46, e.$SLASH = 47, e.$COLON = 58, e.$SEMICOLON = 59, e.$LT = 60, e.$EQ = 61, e.$GT = 62, e.$QUESTION = 63, e.$0 = 48, e.$7 = 55, e.$9 = 57, e.$A = 65, e.$E = 69, e.$F = 70, e.$X = 88, e.$Z = 90, e.$LBRACKET = 91, e.$BACKSLASH = 92, e.$RBRACKET = 93, e.$CARET = 94, e.$_ = 95, e.$a = 97, e.$b = 98, e.$e = 101, e.$f = 102, e.$n = 110, e.$r = 114, e.$t = 116, e.$u = 117, e.$v = 118, e.$x = 120, e.$z = 122, e.$LBRACE = 123, e.$BAR = 124, e.$RBRACE = 125, e.$NBSP = 160, e.$PIPE = 124, e.$TILDA = 126, e.$AT = 64, e.$BT = 96;\n            function r(i) {\n              return i >= e.$TAB && i <= e.$SPACE || i == e.$NBSP;\n            }\n            e.isWhitespace = r;\n            function t(i) {\n              return e.$0 <= i && i <= e.$9;\n            }\n            e.isDigit = t;\n            function s2(i) {\n              return i >= e.$a && i <= e.$z || i >= e.$A && i <= e.$Z;\n            }\n            e.isAsciiLetter = s2;\n            function a(i) {\n              return i >= e.$a && i <= e.$f || i >= e.$A && i <= e.$F || t(i);\n            }\n            e.isAsciiHexDigit = a;\n            function n(i) {\n              return i === e.$LF || i === e.$CR;\n            }\n            e.isNewLine = n;\n            function u(i) {\n              return e.$0 <= i && i <= e.$7;\n            }\n            e.isOctalDigit = u;\n          } }), Cg = te({ \"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = class {\n              constructor(s2, a, n) {\n                this.filePath = s2, this.name = a, this.members = n;\n              }\n              assertNoMembers() {\n                if (this.members.length) throw new Error(`Illegal state: symbol without members expected, but got ${JSON.stringify(this)}.`);\n              }\n            };\n            e.StaticSymbol = r;\n            var t = class {\n              constructor() {\n                this.cache = /* @__PURE__ */ new Map();\n              }\n              get(s2, a, n) {\n                n = n || [];\n                let u = n.length ? `.${n.join(\".\")}` : \"\", i = `\"${s2}\".${a}${u}`, l = this.cache.get(i);\n                return l || (l = new r(s2, a, n), this.cache.set(i, l)), l;\n              }\n            };\n            e.StaticSymbolCache = t;\n          } }), Eg = te({ \"node_modules/angular-html-parser/lib/compiler/src/util.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = /-+([a-z0-9])/g;\n            function t(o) {\n              return o.replace(r, function() {\n                for (var d = arguments.length, v = new Array(d), S = 0; S < d; S++) v[S] = arguments[S];\n                return v[1].toUpperCase();\n              });\n            }\n            e.dashCaseToCamelCase = t;\n            function s2(o, d) {\n              return n(o, \":\", d);\n            }\n            e.splitAtColon = s2;\n            function a(o, d) {\n              return n(o, \".\", d);\n            }\n            e.splitAtPeriod = a;\n            function n(o, d, v) {\n              let S = o.indexOf(d);\n              return S == -1 ? v : [o.slice(0, S).trim(), o.slice(S + 1).trim()];\n            }\n            function u(o, d, v) {\n              return Array.isArray(o) ? d.visitArray(o, v) : E(o) ? d.visitStringMap(o, v) : o == null || typeof o == \"string\" || typeof o == \"number\" || typeof o == \"boolean\" ? d.visitPrimitive(o, v) : d.visitOther(o, v);\n            }\n            e.visitValue = u;\n            function i(o) {\n              return o != null;\n            }\n            e.isDefined = i;\n            function l(o) {\n              return o === void 0 ? null : o;\n            }\n            e.noUndefined = l;\n            var p = class {\n              visitArray(o, d) {\n                return o.map((v) => u(v, this, d));\n              }\n              visitStringMap(o, d) {\n                let v = {};\n                return Object.keys(o).forEach((S) => {\n                  v[S] = u(o[S], this, d);\n                }), v;\n              }\n              visitPrimitive(o, d) {\n                return o;\n              }\n              visitOther(o, d) {\n                return o;\n              }\n            };\n            e.ValueTransformer = p, e.SyncAsync = { assertSync: (o) => {\n              if (P(o)) throw new Error(\"Illegal state: value cannot be a promise\");\n              return o;\n            }, then: (o, d) => P(o) ? o.then(d) : d(o), all: (o) => o.some(P) ? Promise.all(o) : o };\n            function y(o) {\n              throw new Error(`Internal Error: ${o}`);\n            }\n            e.error = y;\n            function h(o, d) {\n              let v = Error(o);\n              return v[g] = true, d && (v[c] = d), v;\n            }\n            e.syntaxError = h;\n            var g = \"ngSyntaxError\", c = \"ngParseErrors\";\n            function f(o) {\n              return o[g];\n            }\n            e.isSyntaxError = f;\n            function F(o) {\n              return o[c] || [];\n            }\n            e.getParseErrors = F;\n            function _(o) {\n              return o.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, \"\\\\$1\");\n            }\n            e.escapeRegExp = _;\n            var w = Object.getPrototypeOf({});\n            function E(o) {\n              return typeof o == \"object\" && o !== null && Object.getPrototypeOf(o) === w;\n            }\n            function N(o) {\n              let d = \"\";\n              for (let v = 0; v < o.length; v++) {\n                let S = o.charCodeAt(v);\n                if (S >= 55296 && S <= 56319 && o.length > v + 1) {\n                  let b = o.charCodeAt(v + 1);\n                  b >= 56320 && b <= 57343 && (v++, S = (S - 55296 << 10) + b - 56320 + 65536);\n                }\n                S <= 127 ? d += String.fromCharCode(S) : S <= 2047 ? d += String.fromCharCode(S >> 6 & 31 | 192, S & 63 | 128) : S <= 65535 ? d += String.fromCharCode(S >> 12 | 224, S >> 6 & 63 | 128, S & 63 | 128) : S <= 2097151 && (d += String.fromCharCode(S >> 18 & 7 | 240, S >> 12 & 63 | 128, S >> 6 & 63 | 128, S & 63 | 128));\n              }\n              return d;\n            }\n            e.utf8Encode = N;\n            function x(o) {\n              if (typeof o == \"string\") return o;\n              if (o instanceof Array) return \"[\" + o.map(x).join(\", \") + \"]\";\n              if (o == null) return \"\" + o;\n              if (o.overriddenName) return `${o.overriddenName}`;\n              if (o.name) return `${o.name}`;\n              if (!o.toString) return \"object\";\n              let d = o.toString();\n              if (d == null) return \"\" + d;\n              let v = d.indexOf(`\n`);\n              return v === -1 ? d : d.substring(0, v);\n            }\n            e.stringify = x;\n            function I(o) {\n              return typeof o == \"function\" && o.hasOwnProperty(\"__forward_ref__\") ? o() : o;\n            }\n            e.resolveForwardRef = I;\n            function P(o) {\n              return !!o && typeof o.then == \"function\";\n            }\n            e.isPromise = P;\n            var $ = class {\n              constructor(o) {\n                this.full = o;\n                let d = o.split(\".\");\n                this.major = d[0], this.minor = d[1], this.patch = d.slice(2).join(\".\");\n              }\n            };\n            e.Version = $;\n            var D = typeof window < \"u\" && window, T = typeof self < \"u\" && typeof WorkerGlobalScope < \"u\" && self instanceof WorkerGlobalScope && self, m = typeof globalThis < \"u\" && globalThis, C = m || D || T;\n            e.global = C;\n          } }), Fg = te({ \"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = Cg(), t = Eg(), s2 = /^(?:(?:\\[([^\\]]+)\\])|(?:\\(([^\\)]+)\\)))|(\\@[-\\w]+)$/;\n            function a(v) {\n              return v.replace(/\\W/g, \"_\");\n            }\n            e.sanitizeIdentifier = a;\n            var n = 0;\n            function u(v) {\n              if (!v || !v.reference) return null;\n              let S = v.reference;\n              if (S instanceof r.StaticSymbol) return S.name;\n              if (S.__anonymousType) return S.__anonymousType;\n              let b = t.stringify(S);\n              return b.indexOf(\"(\") >= 0 ? (b = `anonymous_${n++}`, S.__anonymousType = b) : b = a(b), b;\n            }\n            e.identifierName = u;\n            function i(v) {\n              let S = v.reference;\n              return S instanceof r.StaticSymbol ? S.filePath : `./${t.stringify(S)}`;\n            }\n            e.identifierModuleUrl = i;\n            function l(v, S) {\n              return `View_${u({ reference: v })}_${S}`;\n            }\n            e.viewClassName = l;\n            function p(v) {\n              return `RenderType_${u({ reference: v })}`;\n            }\n            e.rendererTypeName = p;\n            function y(v) {\n              return `HostView_${u({ reference: v })}`;\n            }\n            e.hostViewClassName = y;\n            function h(v) {\n              return `${u({ reference: v })}NgFactory`;\n            }\n            e.componentFactoryName = h;\n            var g;\n            (function(v) {\n              v[v.Pipe = 0] = \"Pipe\", v[v.Directive = 1] = \"Directive\", v[v.NgModule = 2] = \"NgModule\", v[v.Injectable = 3] = \"Injectable\";\n            })(g = e.CompileSummaryKind || (e.CompileSummaryKind = {}));\n            function c(v) {\n              return v.value != null ? a(v.value) : u(v.identifier);\n            }\n            e.tokenName = c;\n            function f(v) {\n              return v.identifier != null ? v.identifier.reference : v.value;\n            }\n            e.tokenReference = f;\n            var F = class {\n              constructor() {\n                let { moduleUrl: v, styles: S, styleUrls: b } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n                this.moduleUrl = v || null, this.styles = P(S), this.styleUrls = P(b);\n              }\n            };\n            e.CompileStylesheetMetadata = F;\n            var _ = class {\n              constructor(v) {\n                let { encapsulation: S, template: b, templateUrl: B, htmlAst: k, styles: M, styleUrls: R, externalStylesheets: q, animations: J, ngContentSelectors: L, interpolation: Q, isInline: V, preserveWhitespaces: j } = v;\n                if (this.encapsulation = S, this.template = b, this.templateUrl = B, this.htmlAst = k, this.styles = P(M), this.styleUrls = P(R), this.externalStylesheets = P(q), this.animations = J ? D(J) : [], this.ngContentSelectors = L || [], Q && Q.length != 2) throw new Error(\"'interpolation' should have a start and an end symbol.\");\n                this.interpolation = Q, this.isInline = V, this.preserveWhitespaces = j;\n              }\n              toSummary() {\n                return { ngContentSelectors: this.ngContentSelectors, encapsulation: this.encapsulation, styles: this.styles, animations: this.animations };\n              }\n            };\n            e.CompileTemplateMetadata = _;\n            var w = class {\n              static create(v) {\n                let { isHost: S, type: b, isComponent: B, selector: k, exportAs: M, changeDetection: R, inputs: q, outputs: J, host: L, providers: Q, viewProviders: V, queries: j, guards: Y, viewQueries: ie, entryComponents: ee, template: ce, componentViewType: W, rendererType: K, componentFactory: de } = v, ue = {}, Fe = {}, z = {};\n                L != null && Object.keys(L).forEach((se) => {\n                  let fe = L[se], ge = se.match(s2);\n                  ge === null ? z[se] = fe : ge[1] != null ? Fe[ge[1]] = fe : ge[2] != null && (ue[ge[2]] = fe);\n                });\n                let U = {};\n                q != null && q.forEach((se) => {\n                  let fe = t.splitAtColon(se, [se, se]);\n                  U[fe[0]] = fe[1];\n                });\n                let Z = {};\n                return J != null && J.forEach((se) => {\n                  let fe = t.splitAtColon(se, [se, se]);\n                  Z[fe[0]] = fe[1];\n                }), new w({ isHost: S, type: b, isComponent: !!B, selector: k, exportAs: M, changeDetection: R, inputs: U, outputs: Z, hostListeners: ue, hostProperties: Fe, hostAttributes: z, providers: Q, viewProviders: V, queries: j, guards: Y, viewQueries: ie, entryComponents: ee, template: ce, componentViewType: W, rendererType: K, componentFactory: de });\n              }\n              constructor(v) {\n                let { isHost: S, type: b, isComponent: B, selector: k, exportAs: M, changeDetection: R, inputs: q, outputs: J, hostListeners: L, hostProperties: Q, hostAttributes: V, providers: j, viewProviders: Y, queries: ie, guards: ee, viewQueries: ce, entryComponents: W, template: K, componentViewType: de, rendererType: ue, componentFactory: Fe } = v;\n                this.isHost = !!S, this.type = b, this.isComponent = B, this.selector = k, this.exportAs = M, this.changeDetection = R, this.inputs = q, this.outputs = J, this.hostListeners = L, this.hostProperties = Q, this.hostAttributes = V, this.providers = P(j), this.viewProviders = P(Y), this.queries = P(ie), this.guards = ee, this.viewQueries = P(ce), this.entryComponents = P(W), this.template = K, this.componentViewType = de, this.rendererType = ue, this.componentFactory = Fe;\n              }\n              toSummary() {\n                return { summaryKind: g.Directive, type: this.type, isComponent: this.isComponent, selector: this.selector, exportAs: this.exportAs, inputs: this.inputs, outputs: this.outputs, hostListeners: this.hostListeners, hostProperties: this.hostProperties, hostAttributes: this.hostAttributes, providers: this.providers, viewProviders: this.viewProviders, queries: this.queries, guards: this.guards, viewQueries: this.viewQueries, entryComponents: this.entryComponents, changeDetection: this.changeDetection, template: this.template && this.template.toSummary(), componentViewType: this.componentViewType, rendererType: this.rendererType, componentFactory: this.componentFactory };\n              }\n            };\n            e.CompileDirectiveMetadata = w;\n            var E = class {\n              constructor(v) {\n                let { type: S, name: b, pure: B } = v;\n                this.type = S, this.name = b, this.pure = !!B;\n              }\n              toSummary() {\n                return { summaryKind: g.Pipe, type: this.type, name: this.name, pure: this.pure };\n              }\n            };\n            e.CompilePipeMetadata = E;\n            var N = class {\n            };\n            e.CompileShallowModuleMetadata = N;\n            var x = class {\n              constructor(v) {\n                let { type: S, providers: b, declaredDirectives: B, exportedDirectives: k, declaredPipes: M, exportedPipes: R, entryComponents: q, bootstrapComponents: J, importedModules: L, exportedModules: Q, schemas: V, transitiveModule: j, id: Y } = v;\n                this.type = S || null, this.declaredDirectives = P(B), this.exportedDirectives = P(k), this.declaredPipes = P(M), this.exportedPipes = P(R), this.providers = P(b), this.entryComponents = P(q), this.bootstrapComponents = P(J), this.importedModules = P(L), this.exportedModules = P(Q), this.schemas = P(V), this.id = Y || null, this.transitiveModule = j || null;\n              }\n              toSummary() {\n                let v = this.transitiveModule;\n                return { summaryKind: g.NgModule, type: this.type, entryComponents: v.entryComponents, providers: v.providers, modules: v.modules, exportedDirectives: v.exportedDirectives, exportedPipes: v.exportedPipes };\n              }\n            };\n            e.CompileNgModuleMetadata = x;\n            var I = class {\n              constructor() {\n                this.directivesSet = /* @__PURE__ */ new Set(), this.directives = [], this.exportedDirectivesSet = /* @__PURE__ */ new Set(), this.exportedDirectives = [], this.pipesSet = /* @__PURE__ */ new Set(), this.pipes = [], this.exportedPipesSet = /* @__PURE__ */ new Set(), this.exportedPipes = [], this.modulesSet = /* @__PURE__ */ new Set(), this.modules = [], this.entryComponentsSet = /* @__PURE__ */ new Set(), this.entryComponents = [], this.providers = [];\n              }\n              addProvider(v, S) {\n                this.providers.push({ provider: v, module: S });\n              }\n              addDirective(v) {\n                this.directivesSet.has(v.reference) || (this.directivesSet.add(v.reference), this.directives.push(v));\n              }\n              addExportedDirective(v) {\n                this.exportedDirectivesSet.has(v.reference) || (this.exportedDirectivesSet.add(v.reference), this.exportedDirectives.push(v));\n              }\n              addPipe(v) {\n                this.pipesSet.has(v.reference) || (this.pipesSet.add(v.reference), this.pipes.push(v));\n              }\n              addExportedPipe(v) {\n                this.exportedPipesSet.has(v.reference) || (this.exportedPipesSet.add(v.reference), this.exportedPipes.push(v));\n              }\n              addModule(v) {\n                this.modulesSet.has(v.reference) || (this.modulesSet.add(v.reference), this.modules.push(v));\n              }\n              addEntryComponent(v) {\n                this.entryComponentsSet.has(v.componentType) || (this.entryComponentsSet.add(v.componentType), this.entryComponents.push(v));\n              }\n            };\n            e.TransitiveCompileNgModuleMetadata = I;\n            function P(v) {\n              return v || [];\n            }\n            var $ = class {\n              constructor(v, S) {\n                let { useClass: b, useValue: B, useExisting: k, useFactory: M, deps: R, multi: q } = S;\n                this.token = v, this.useClass = b || null, this.useValue = B, this.useExisting = k, this.useFactory = M || null, this.dependencies = R || null, this.multi = !!q;\n              }\n            };\n            e.ProviderMeta = $;\n            function D(v) {\n              return v.reduce((S, b) => {\n                let B = Array.isArray(b) ? D(b) : b;\n                return S.concat(B);\n              }, []);\n            }\n            e.flatten = D;\n            function T(v) {\n              return v.replace(/(\\w+:\\/\\/[\\w:-]+)?(\\/+)?/, \"ng:///\");\n            }\n            function m(v, S, b) {\n              let B;\n              return b.isInline ? S.type.reference instanceof r.StaticSymbol ? B = `${S.type.reference.filePath}.${S.type.reference.name}.html` : B = `${u(v)}/${u(S.type)}.html` : B = b.templateUrl, S.type.reference instanceof r.StaticSymbol ? B : T(B);\n            }\n            e.templateSourceUrl = m;\n            function C(v, S) {\n              let b = v.moduleUrl.split(/\\/\\\\/g), B = b[b.length - 1];\n              return T(`css/${S}${B}.ngstyle.js`);\n            }\n            e.sharedStylesheetJitUrl = C;\n            function o(v) {\n              return T(`${u(v.type)}/module.ngfactory.js`);\n            }\n            e.ngModuleJitUrl = o;\n            function d(v, S) {\n              return T(`${u(v)}/${u(S.type)}.ngfactory.js`);\n            }\n            e.templateJitUrl = d;\n          } }), Ag = te({ \"node_modules/angular-html-parser/lib/compiler/src/parse_util.js\"(e) {\n            \"use strict\";\n            ne(), Object.defineProperty(e, \"__esModule\", { value: true });\n            var r = vg(), t = Fg(), s2 = class {\n              constructor(y, h, g, c) {\n                this.file = y, this.offset = h, this.line = g, this.col = c;\n              }\n              toString() {\n                return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;\n              }\n              moveBy(y) {\n                let h = this.file.content, g = h.length, c = this.offset, f = this.line, F = this.col;\n                for (; c > 0 && y < 0; ) if (c--, y++, h.charCodeAt(c) == r.$LF) {\n                  f--;\n                  let w = h.substr(0, c - 1).lastIndexOf(String.fromCharCode(r.$LF));\n                  F = w > 0 ? c - w : c;\n                } else F--;\n                for (; c < g && y > 0; ) {\n                  let _ = h.charCodeAt(c);\n                  c++, y--, _ == r.$LF ? (f++, F = 0) : F++;\n                }\n                return new s2(this.file, c, f, F);\n              }\n              getContext(y, h) {\n                let g = this.file.content, c = this.offset;\n                if (c != null) {\n                  c > g.length - 1 && (c = g.length - 1);\n                  let f = c, F = 0, _ = 0;\n                  for (; F < y && c > 0 && (c--, F++, !(g[c] == `\n` && ++_ == h)); ) ;\n                  for (F = 0, _ = 0; F < y && f < g.length - 1 && (f++, F++, !(g[f] == `\n` && ++_ == h)); ) ;\n                  return { before: g.substring(c, this.offset), after: g.substring(this.offset, f + 1) };\n                }\n                return null;\n              }\n            };\n            e.ParseLocation = s2;\n            var a = class {\n              constructor(y, h) {\n                this.content = y, this.url = h;\n              }\n            };\n            e.ParseSourceFile = a;\n            var n = class {\n              constructor(y, h) {\n                let g = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;\n                this.start = y, this.end = h, this.details = g;\n              }\n              toString() {\n                return this.start.file.content.substring(this.start.offset, this.end.offset);\n              }\n            };\n            e.ParseSourceSpan = n, e.EMPTY_PARSE_LOCATION = new s2(new a(\"\", \"\"), 0, 0, 0), e.EMPTY_SOURCE_SPAN = new n(e.EMPTY_PARSE_LOCATION, e.EMPTY_PARSE_LOCATION);\n            var u;\n            (function(y) {\n              y[y.WARNING = 0] = \"WARNING\", y[y.ERROR = 1] = \"ERROR\";\n            })(u = e.ParseErrorLevel || (e.ParseErrorLevel = {}));\n            var i = class {\n              constructor(y, h) {\n                let g = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : u.ERROR;\n                this.span = y, this.msg = h, this.level = g;\n              }\n              contextualMessage() {\n                let y = this.span.start.getContext(100, 3);\n                return y ? `${this.msg} (\"${y.before}[${u[this.level]} ->]${y.after}\")` : this.msg;\n              }\n              toString() {\n                let y = this.span.details ? `, ${this.span.details}` : \"\";\n                return `${this.contextualMessage()}: ${this.span.start}${y}`;\n              }\n            };\n            e.ParseError = i;\n            function l(y, h) {\n              let g = t.identifierModuleUrl(h), c = g != null ? `in ${y} ${t.identifierName(h)} in ${g}` : `in ${y} ${t.identifierName(h)}`, f = new a(\"\", c);\n              return new n(new s2(f, -1, -1, -1), new s2(f, -1, -1, -1));\n            }\n            e.typeSourceSpan = l;\n            function p(y, h, g) {\n              let c = `in ${y} ${h} in ${g}`, f = new a(\"\", c);\n              return new n(new s2(f, -1, -1, -1), new s2(f, -1, -1, -1));\n            }\n            e.r3JitTypeSourceSpan = p;\n          } }), Sg = te({ \"src/language-html/print-preprocess.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { ParseSourceSpan: t } = Ag(), { htmlTrim: s2, getLeadingAndTrailingHtmlWhitespace: a, hasHtmlWhitespace: n, canHaveInterpolation: u, getNodeCssStyleDisplay: i, isDanglingSpaceSensitiveNode: l, isIndentationSensitiveNode: p, isLeadingSpaceSensitiveNode: y, isTrailingSpaceSensitiveNode: h, isWhitespaceSensitiveNode: g, isVueScriptTag: c } = Rt(), f = [_, w, N, I, P, T, $, D, m, x, C];\n            function F(o, d) {\n              for (let v of f) v(o, d);\n              return o;\n            }\n            function _(o) {\n              o.walk((d) => {\n                if (d.type === \"element\" && d.tagDefinition.ignoreFirstLf && d.children.length > 0 && d.children[0].type === \"text\" && d.children[0].value[0] === `\n`) {\n                  let v = d.children[0];\n                  v.value.length === 1 ? d.removeChild(v) : v.value = v.value.slice(1);\n                }\n              });\n            }\n            function w(o) {\n              let d = (v) => v.type === \"element\" && v.prev && v.prev.type === \"ieConditionalStartComment\" && v.prev.sourceSpan.end.offset === v.startSourceSpan.start.offset && v.firstChild && v.firstChild.type === \"ieConditionalEndComment\" && v.firstChild.sourceSpan.start.offset === v.startSourceSpan.end.offset;\n              o.walk((v) => {\n                if (v.children) for (let S = 0; S < v.children.length; S++) {\n                  let b = v.children[S];\n                  if (!d(b)) continue;\n                  let B = b.prev, k = b.firstChild;\n                  v.removeChild(B), S--;\n                  let M = new t(B.sourceSpan.start, k.sourceSpan.end), R = new t(M.start, b.sourceSpan.end);\n                  b.condition = B.condition, b.sourceSpan = R, b.startSourceSpan = M, b.removeChild(k);\n                }\n              });\n            }\n            function E(o, d, v) {\n              o.walk((S) => {\n                if (S.children) for (let b = 0; b < S.children.length; b++) {\n                  let B = S.children[b];\n                  if (B.type !== \"text\" && !d(B)) continue;\n                  B.type !== \"text\" && (B.type = \"text\", B.value = v(B));\n                  let k = B.prev;\n                  !k || k.type !== \"text\" || (k.value += B.value, k.sourceSpan = new t(k.sourceSpan.start, B.sourceSpan.end), S.removeChild(B), b--);\n                }\n              });\n            }\n            function N(o) {\n              return E(o, (d) => d.type === \"cdata\", (d) => `<![CDATA[${d.value}]]>`);\n            }\n            function x(o) {\n              let d = (v) => v.type === \"element\" && v.attrs.length === 0 && v.children.length === 1 && v.firstChild.type === \"text\" && !n(v.children[0].value) && !v.firstChild.hasLeadingSpaces && !v.firstChild.hasTrailingSpaces && v.isLeadingSpaceSensitive && !v.hasLeadingSpaces && v.isTrailingSpaceSensitive && !v.hasTrailingSpaces && v.prev && v.prev.type === \"text\" && v.next && v.next.type === \"text\";\n              o.walk((v) => {\n                if (v.children) for (let S = 0; S < v.children.length; S++) {\n                  let b = v.children[S];\n                  if (!d(b)) continue;\n                  let B = b.prev, k = b.next;\n                  B.value += `<${b.rawName}>` + b.firstChild.value + `</${b.rawName}>` + k.value, B.sourceSpan = new t(B.sourceSpan.start, k.sourceSpan.end), B.isTrailingSpaceSensitive = k.isTrailingSpaceSensitive, B.hasTrailingSpaces = k.hasTrailingSpaces, v.removeChild(b), S--, v.removeChild(k);\n                }\n              });\n            }\n            function I(o, d) {\n              if (d.parser === \"html\") return;\n              let v = /{{(.+?)}}/s;\n              o.walk((S) => {\n                if (u(S)) for (let b of S.children) {\n                  if (b.type !== \"text\") continue;\n                  let B = b.sourceSpan.start, k = null, M = b.value.split(v);\n                  for (let R = 0; R < M.length; R++, B = k) {\n                    let q = M[R];\n                    if (R % 2 === 0) {\n                      k = B.moveBy(q.length), q.length > 0 && S.insertChildBefore(b, { type: \"text\", value: q, sourceSpan: new t(B, k) });\n                      continue;\n                    }\n                    k = B.moveBy(q.length + 4), S.insertChildBefore(b, { type: \"interpolation\", sourceSpan: new t(B, k), children: q.length === 0 ? [] : [{ type: \"text\", value: q, sourceSpan: new t(B.moveBy(2), k.moveBy(-2)) }] });\n                  }\n                  S.removeChild(b);\n                }\n              });\n            }\n            function P(o) {\n              o.walk((d) => {\n                if (!d.children) return;\n                if (d.children.length === 0 || d.children.length === 1 && d.children[0].type === \"text\" && s2(d.children[0].value).length === 0) {\n                  d.hasDanglingSpaces = d.children.length > 0, d.children = [];\n                  return;\n                }\n                let v = g(d), S = p(d);\n                if (!v) for (let b = 0; b < d.children.length; b++) {\n                  let B = d.children[b];\n                  if (B.type !== \"text\") continue;\n                  let { leadingWhitespace: k, text: M, trailingWhitespace: R } = a(B.value), q = B.prev, J = B.next;\n                  M ? (B.value = M, B.sourceSpan = new t(B.sourceSpan.start.moveBy(k.length), B.sourceSpan.end.moveBy(-R.length)), k && (q && (q.hasTrailingSpaces = true), B.hasLeadingSpaces = true), R && (B.hasTrailingSpaces = true, J && (J.hasLeadingSpaces = true))) : (d.removeChild(B), b--, (k || R) && (q && (q.hasTrailingSpaces = true), J && (J.hasLeadingSpaces = true)));\n                }\n                d.isWhitespaceSensitive = v, d.isIndentationSensitive = S;\n              });\n            }\n            function $(o) {\n              o.walk((d) => {\n                d.isSelfClosing = !d.children || d.type === \"element\" && (d.tagDefinition.isVoid || d.startSourceSpan === d.endSourceSpan);\n              });\n            }\n            function D(o, d) {\n              o.walk((v) => {\n                v.type === \"element\" && (v.hasHtmComponentClosingTag = v.endSourceSpan && /^<\\s*\\/\\s*\\/\\s*>$/.test(d.originalText.slice(v.endSourceSpan.start.offset, v.endSourceSpan.end.offset)));\n              });\n            }\n            function T(o, d) {\n              o.walk((v) => {\n                v.cssDisplay = i(v, d);\n              });\n            }\n            function m(o, d) {\n              o.walk((v) => {\n                let { children: S } = v;\n                if (S) {\n                  if (S.length === 0) {\n                    v.isDanglingSpaceSensitive = l(v);\n                    return;\n                  }\n                  for (let b of S) b.isLeadingSpaceSensitive = y(b, d), b.isTrailingSpaceSensitive = h(b, d);\n                  for (let b = 0; b < S.length; b++) {\n                    let B = S[b];\n                    B.isLeadingSpaceSensitive = (b === 0 || B.prev.isTrailingSpaceSensitive) && B.isLeadingSpaceSensitive, B.isTrailingSpaceSensitive = (b === S.length - 1 || B.next.isLeadingSpaceSensitive) && B.isTrailingSpaceSensitive;\n                  }\n                }\n              });\n            }\n            function C(o, d) {\n              if (d.parser === \"vue\") {\n                let v = o.children.find((b) => c(b, d));\n                if (!v) return;\n                let { lang: S } = v.attrMap;\n                (S === \"ts\" || S === \"typescript\") && (d.__should_parse_vue_template_with_ts = true);\n              }\n            }\n            r.exports = F;\n          } }), xg = te({ \"src/language-html/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return /^\\s*<!--\\s*@(?:format|prettier)\\s*-->/.test(a);\n            }\n            function s2(a) {\n              return `<!-- @format -->\n\n` + a.replace(/^\\s*\\n/, \"\");\n            }\n            r.exports = { hasPragma: t, insertPragma: s2 };\n          } }), au = te({ \"src/language-html/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return a.sourceSpan.start.offset;\n            }\n            function s2(a) {\n              return a.sourceSpan.end.offset;\n            }\n            r.exports = { locStart: t, locEnd: s2 };\n          } }), ur = te({ \"src/language-html/print/tag.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Zt(), { isNonEmptyArray: s2 } = Ue(), { builders: { indent: a, join: n, line: u, softline: i, hardline: l }, utils: { replaceTextEndOfLine: p } } = qe(), { locStart: y, locEnd: h } = au(), { isTextLikeNode: g, getLastDescendant: c, isPreLikeNode: f, hasPrettierIgnore: F, shouldPreserveContent: _, isVueSfcBlock: w } = Rt();\n            function E(L, Q) {\n              return [L.isSelfClosing ? \"\" : N(L, Q), x(L, Q)];\n            }\n            function N(L, Q) {\n              return L.lastChild && o(L.lastChild) ? \"\" : [I(L, Q), $(L, Q)];\n            }\n            function x(L, Q) {\n              return (L.next ? m(L.next) : C(L.parent)) ? \"\" : [D(L, Q), P(L, Q)];\n            }\n            function I(L, Q) {\n              return C(L) ? D(L.lastChild, Q) : \"\";\n            }\n            function P(L, Q) {\n              return o(L) ? $(L.parent, Q) : d(L) ? q(L.next) : \"\";\n            }\n            function $(L, Q) {\n              if (t(!L.isSelfClosing), T(L, Q)) return \"\";\n              switch (L.type) {\n                case \"ieConditionalComment\":\n                  return \"<!\";\n                case \"element\":\n                  if (L.hasHtmComponentClosingTag) return \"<//\";\n                default:\n                  return `</${L.rawName}`;\n              }\n            }\n            function D(L, Q) {\n              if (T(L, Q)) return \"\";\n              switch (L.type) {\n                case \"ieConditionalComment\":\n                case \"ieConditionalEndComment\":\n                  return \"[endif]-->\";\n                case \"ieConditionalStartComment\":\n                  return \"]><!-->\";\n                case \"interpolation\":\n                  return \"}}\";\n                case \"element\":\n                  if (L.isSelfClosing) return \"/>\";\n                default:\n                  return \">\";\n              }\n            }\n            function T(L, Q) {\n              return !L.isSelfClosing && !L.endSourceSpan && (F(L) || _(L.parent, Q));\n            }\n            function m(L) {\n              return L.prev && L.prev.type !== \"docType\" && !g(L.prev) && L.isLeadingSpaceSensitive && !L.hasLeadingSpaces;\n            }\n            function C(L) {\n              return L.lastChild && L.lastChild.isTrailingSpaceSensitive && !L.lastChild.hasTrailingSpaces && !g(c(L.lastChild)) && !f(L);\n            }\n            function o(L) {\n              return !L.next && !L.hasTrailingSpaces && L.isTrailingSpaceSensitive && g(c(L));\n            }\n            function d(L) {\n              return L.next && !g(L.next) && g(L) && L.isTrailingSpaceSensitive && !L.hasTrailingSpaces;\n            }\n            function v(L) {\n              let Q = L.trim().match(/^prettier-ignore-attribute(?:\\s+(.+))?$/s);\n              return Q ? Q[1] ? Q[1].split(/\\s+/) : true : false;\n            }\n            function S(L) {\n              return !L.prev && L.isLeadingSpaceSensitive && !L.hasLeadingSpaces;\n            }\n            function b(L, Q, V) {\n              let j = L.getValue();\n              if (!s2(j.attrs)) return j.isSelfClosing ? \" \" : \"\";\n              let Y = j.prev && j.prev.type === \"comment\" && v(j.prev.value), ie = typeof Y == \"boolean\" ? () => Y : Array.isArray(Y) ? (ue) => Y.includes(ue.rawName) : () => false, ee = L.map((ue) => {\n                let Fe = ue.getValue();\n                return ie(Fe) ? p(Q.originalText.slice(y(Fe), h(Fe))) : V();\n              }, \"attrs\"), ce = j.type === \"element\" && j.fullName === \"script\" && j.attrs.length === 1 && j.attrs[0].fullName === \"src\" && j.children.length === 0, K = Q.singleAttributePerLine && j.attrs.length > 1 && !w(j, Q) ? l : u, de = [a([ce ? \" \" : u, n(K, ee)])];\n              return j.firstChild && S(j.firstChild) || j.isSelfClosing && C(j.parent) || ce ? de.push(j.isSelfClosing ? \" \" : \"\") : de.push(Q.bracketSameLine ? j.isSelfClosing ? \" \" : \"\" : j.isSelfClosing ? u : i), de;\n            }\n            function B(L) {\n              return L.firstChild && S(L.firstChild) ? \"\" : J(L);\n            }\n            function k(L, Q, V) {\n              let j = L.getValue();\n              return [M(j, Q), b(L, Q, V), j.isSelfClosing ? \"\" : B(j)];\n            }\n            function M(L, Q) {\n              return L.prev && d(L.prev) ? \"\" : [R(L, Q), q(L)];\n            }\n            function R(L, Q) {\n              return S(L) ? J(L.parent) : m(L) ? D(L.prev, Q) : \"\";\n            }\n            function q(L) {\n              switch (L.type) {\n                case \"ieConditionalComment\":\n                case \"ieConditionalStartComment\":\n                  return `<!--[if ${L.condition}`;\n                case \"ieConditionalEndComment\":\n                  return \"<!--<!\";\n                case \"interpolation\":\n                  return \"{{\";\n                case \"docType\":\n                  return \"<!DOCTYPE\";\n                case \"element\":\n                  if (L.condition) return `<!--[if ${L.condition}]><!--><${L.rawName}`;\n                default:\n                  return `<${L.rawName}`;\n              }\n            }\n            function J(L) {\n              switch (t(!L.isSelfClosing), L.type) {\n                case \"ieConditionalComment\":\n                  return \"]>\";\n                case \"element\":\n                  if (L.condition) return \"><!--<![endif]-->\";\n                default:\n                  return \">\";\n              }\n            }\n            r.exports = { printClosingTag: E, printClosingTagStart: N, printClosingTagStartMarker: $, printClosingTagEndMarker: D, printClosingTagSuffix: P, printClosingTagEnd: x, needsToBorrowLastChildClosingTagEndMarker: C, needsToBorrowParentClosingTagStartMarker: o, needsToBorrowPrevClosingTagEndMarker: m, printOpeningTag: k, printOpeningTagStart: M, printOpeningTagPrefix: R, printOpeningTagStartMarker: q, printOpeningTagEndMarker: J, needsToBorrowNextOpeningTagStartMarker: d, needsToBorrowParentOpeningTagEndMarker: S };\n          } }), bg = te({ \"node_modules/parse-srcset/src/parse-srcset.js\"(e, r) {\n            ne(), function(t, s2) {\n              typeof define == \"function\" && define.amd ? define([], s2) : typeof r == \"object\" && r.exports ? r.exports = s2() : t.parseSrcset = s2();\n            }(e, function() {\n              return function(t, s2) {\n                var a = s2 && s2.logger || console;\n                function n($) {\n                  return $ === \" \" || $ === \"\t\" || $ === `\n` || $ === \"\\f\" || $ === \"\\r\";\n                }\n                function u($) {\n                  var D, T = $.exec(t.substring(N));\n                  if (T) return D = T[0], N += D.length, D;\n                }\n                for (var i = t.length, l = /^[ \\t\\n\\r\\u000c]+/, p = /^[, \\t\\n\\r\\u000c]+/, y = /^[^ \\t\\n\\r\\u000c]+/, h = /[,]+$/, g = /^\\d+$/, c = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/, f, F, _, w, E, N = 0, x = []; ; ) {\n                  if (u(p), N >= i) return x;\n                  f = u(y), F = [], f.slice(-1) === \",\" ? (f = f.replace(h, \"\"), P()) : I();\n                }\n                function I() {\n                  for (u(l), _ = \"\", w = \"in descriptor\"; ; ) {\n                    if (E = t.charAt(N), w === \"in descriptor\") if (n(E)) _ && (F.push(_), _ = \"\", w = \"after descriptor\");\n                    else if (E === \",\") {\n                      N += 1, _ && F.push(_), P();\n                      return;\n                    } else if (E === \"(\") _ = _ + E, w = \"in parens\";\n                    else if (E === \"\") {\n                      _ && F.push(_), P();\n                      return;\n                    } else _ = _ + E;\n                    else if (w === \"in parens\") if (E === \")\") _ = _ + E, w = \"in descriptor\";\n                    else if (E === \"\") {\n                      F.push(_), P();\n                      return;\n                    } else _ = _ + E;\n                    else if (w === \"after descriptor\" && !n(E)) if (E === \"\") {\n                      P();\n                      return;\n                    } else w = \"in descriptor\", N -= 1;\n                    N += 1;\n                  }\n                }\n                function P() {\n                  var $ = false, D, T, m, C, o = {}, d, v, S, b, B;\n                  for (C = 0; C < F.length; C++) d = F[C], v = d[d.length - 1], S = d.substring(0, d.length - 1), b = parseInt(S, 10), B = parseFloat(S), g.test(S) && v === \"w\" ? ((D || T) && ($ = true), b === 0 ? $ = true : D = b) : c.test(S) && v === \"x\" ? ((D || T || m) && ($ = true), B < 0 ? $ = true : T = B) : g.test(S) && v === \"h\" ? ((m || T) && ($ = true), b === 0 ? $ = true : m = b) : $ = true;\n                  $ ? a && a.error && a.error(\"Invalid srcset descriptor found in '\" + t + \"' at '\" + d + \"'.\") : (o.url = f, D && (o.w = D), T && (o.d = T), m && (o.h = m), x.push(o));\n                }\n              };\n            });\n          } }), Tg = te({ \"src/language-html/syntax-attribute.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = bg(), { builders: { ifBreak: s2, join: a, line: n } } = qe();\n            function u(l) {\n              let p = t(l, { logger: { error(I) {\n                throw new Error(I);\n              } } }), y = p.some((I) => {\n                let { w: P } = I;\n                return P;\n              }), h = p.some((I) => {\n                let { h: P } = I;\n                return P;\n              }), g = p.some((I) => {\n                let { d: P } = I;\n                return P;\n              });\n              if (y + h + g > 1) throw new Error(\"Mixed descriptor in srcset is not supported\");\n              let c = y ? \"w\" : h ? \"h\" : \"d\", f = y ? \"w\" : h ? \"h\" : \"x\", F = (I) => Math.max(...I), _ = p.map((I) => I.url), w = F(_.map((I) => I.length)), E = p.map((I) => I[c]).map((I) => I ? I.toString() : \"\"), N = E.map((I) => {\n                let P = I.indexOf(\".\");\n                return P === -1 ? I.length : P;\n              }), x = F(N);\n              return a([\",\", n], _.map((I, P) => {\n                let $ = [I], D = E[P];\n                if (D) {\n                  let T = w - I.length + 1, m = x - N[P], C = \" \".repeat(T + m);\n                  $.push(s2(C, \" \"), D + f);\n                }\n                return $;\n              }));\n            }\n            function i(l) {\n              return l.trim().split(/\\s+/).join(\" \");\n            }\n            r.exports = { printImgSrcset: u, printClassNames: i };\n          } }), Bg = te({ \"src/language-html/syntax-vue.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { group: t } } = qe();\n            function s2(i, l) {\n              let { left: p, operator: y, right: h } = a(i);\n              return [t(l(`function _(${p}) {}`, { parser: \"babel\", __isVueForBindingLeft: true })), \" \", y, \" \", l(h, { parser: \"__js_expression\" }, { stripTrailingHardline: true })];\n            }\n            function a(i) {\n              let l = /(.*?)\\s+(in|of)\\s+(.*)/s, p = /,([^,\\]}]*)(?:,([^,\\]}]*))?$/, y = /^\\(|\\)$/g, h = i.match(l);\n              if (!h) return;\n              let g = {};\n              if (g.for = h[3].trim(), !g.for) return;\n              let c = h[1].trim().replace(y, \"\"), f = c.match(p);\n              f ? (g.alias = c.replace(p, \"\"), g.iterator1 = f[1].trim(), f[2] && (g.iterator2 = f[2].trim())) : g.alias = c;\n              let F = [g.alias, g.iterator1, g.iterator2];\n              if (!F.some((_, w) => !_ && (w === 0 || F.slice(w + 1).some(Boolean)))) return { left: F.filter(Boolean).join(\",\"), operator: h[2], right: g.for };\n            }\n            function n(i, l) {\n              return l(`function _(${i}) {}`, { parser: \"babel\", __isVueBindings: true });\n            }\n            function u(i) {\n              let l = /^(?:[\\w$]+|\\([^)]*\\))\\s*=>|^function\\s*\\(/, p = /^[$A-Z_a-z][\\w$]*(?:\\.[$A-Z_a-z][\\w$]*|\\['[^']*']|\\[\"[^\"]*\"]|\\[\\d+]|\\[[$A-Z_a-z][\\w$]*])*$/, y = i.trim();\n              return l.test(y) || p.test(y);\n            }\n            r.exports = { isVueEventBindingExpression: u, printVueFor: s2, printVueBindings: n };\n          } }), Lo = te({ \"src/language-html/get-node-content.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { needsToBorrowParentClosingTagStartMarker: t, printClosingTagStartMarker: s2, needsToBorrowLastChildClosingTagEndMarker: a, printClosingTagEndMarker: n, needsToBorrowParentOpeningTagEndMarker: u, printOpeningTagEndMarker: i } = ur();\n            function l(p, y) {\n              let h = p.startSourceSpan.end.offset;\n              p.firstChild && u(p.firstChild) && (h -= i(p).length);\n              let g = p.endSourceSpan.start.offset;\n              return p.lastChild && t(p.lastChild) ? g += s2(p, y).length : a(p) && (g -= n(p.lastChild, y).length), y.originalText.slice(h, g);\n            }\n            r.exports = l;\n          } }), Ng = te({ \"src/language-html/embed.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { breakParent: t, group: s2, hardline: a, indent: n, line: u, fill: i, softline: l }, utils: { mapDoc: p, replaceTextEndOfLine: y } } = qe(), h = su(), { printClosingTag: g, printClosingTagSuffix: c, needsToBorrowPrevClosingTagEndMarker: f, printOpeningTagPrefix: F, printOpeningTag: _ } = ur(), { printImgSrcset: w, printClassNames: E } = Tg(), { printVueFor: N, printVueBindings: x, isVueEventBindingExpression: I } = Bg(), { isScriptLikeTag: P, isVueNonHtmlBlock: $, inferScriptParser: D, htmlTrimPreserveIndentation: T, dedentString: m, unescapeQuoteEntities: C, isVueSlotAttribute: o, isVueSfcBindingsAttribute: d, getTextValueParts: v } = Rt(), S = Lo();\n            function b(k, M, R) {\n              let q = (ee) => new RegExp(ee.join(\"|\")).test(k.fullName), J = () => C(k.value), L = false, Q = (ee, ce) => {\n                let W = ee.type === \"NGRoot\" ? ee.node.type === \"NGMicrosyntax\" && ee.node.body.length === 1 && ee.node.body[0].type === \"NGMicrosyntaxExpression\" ? ee.node.body[0].expression : ee.node : ee.type === \"JsExpressionRoot\" ? ee.node : ee;\n                W && (W.type === \"ObjectExpression\" || W.type === \"ArrayExpression\" || ce.parser === \"__vue_expression\" && (W.type === \"TemplateLiteral\" || W.type === \"StringLiteral\")) && (L = true);\n              }, V = (ee) => s2(ee), j = function(ee) {\n                let ce = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n                return s2([n([l, ee]), ce ? l : \"\"]);\n              }, Y = (ee) => L ? V(ee) : j(ee), ie = (ee, ce) => M(ee, Object.assign({ __onHtmlBindingRoot: Q, __embeddedInHtml: true }, ce));\n              if (k.fullName === \"srcset\" && (k.parent.fullName === \"img\" || k.parent.fullName === \"source\")) return j(w(J()));\n              if (k.fullName === \"class\" && !R.parentParser) {\n                let ee = J();\n                if (!ee.includes(\"{{\")) return E(ee);\n              }\n              if (k.fullName === \"style\" && !R.parentParser) {\n                let ee = J();\n                if (!ee.includes(\"{{\")) return j(ie(ee, { parser: \"css\", __isHTMLStyleAttribute: true }));\n              }\n              if (R.parser === \"vue\") {\n                if (k.fullName === \"v-for\") return N(J(), ie);\n                if (o(k) || d(k, R)) return x(J(), ie);\n                let ee = [\"^@\", \"^v-on:\"], ce = [\"^:\", \"^v-bind:\"], W = [\"^v-\"];\n                if (q(ee)) {\n                  let K = J(), de = I(K) ? \"__js_expression\" : R.__should_parse_vue_template_with_ts ? \"__vue_ts_event_binding\" : \"__vue_event_binding\";\n                  return Y(ie(K, { parser: de }));\n                }\n                if (q(ce)) return Y(ie(J(), { parser: \"__vue_expression\" }));\n                if (q(W)) return Y(ie(J(), { parser: \"__js_expression\" }));\n              }\n              if (R.parser === \"angular\") {\n                let ee = (z, U) => ie(z, Object.assign(Object.assign({}, U), {}, { trailingComma: \"none\" })), ce = [\"^\\\\*\"], W = [\"^\\\\(.+\\\\)$\", \"^on-\"], K = [\"^\\\\[.+\\\\]$\", \"^bind(on)?-\", \"^ng-(if|show|hide|class|style)$\"], de = [\"^i18n(-.+)?$\"];\n                if (q(W)) return Y(ee(J(), { parser: \"__ng_action\" }));\n                if (q(K)) return Y(ee(J(), { parser: \"__ng_binding\" }));\n                if (q(de)) {\n                  let z = J().trim();\n                  return j(i(v(k, z)), !z.includes(\"@@\"));\n                }\n                if (q(ce)) return Y(ee(J(), { parser: \"__ng_directive\" }));\n                let ue = /{{(.+?)}}/s, Fe = J();\n                if (ue.test(Fe)) {\n                  let z = [];\n                  for (let [U, Z] of Fe.split(ue).entries()) if (U % 2 === 0) z.push(y(Z));\n                  else try {\n                    z.push(s2([\"{{\", n([u, ee(Z, { parser: \"__ng_interpolation\", __isInHtmlInterpolation: true })]), u, \"}}\"]));\n                  } catch {\n                    z.push(\"{{\", y(Z), \"}}\");\n                  }\n                  return s2(z);\n                }\n              }\n              return null;\n            }\n            function B(k, M, R, q) {\n              let J = k.getValue();\n              switch (J.type) {\n                case \"element\": {\n                  if (P(J) || J.type === \"interpolation\") return;\n                  if (!J.isSelfClosing && $(J, q)) {\n                    let L = D(J, q);\n                    if (!L) return;\n                    let Q = S(J, q), V = /^\\s*$/.test(Q), j = \"\";\n                    return V || (j = R(T(Q), { parser: L, __embeddedInHtml: true }, { stripTrailingHardline: true }), V = j === \"\"), [F(J, q), s2(_(k, q, M)), V ? \"\" : a, j, V ? \"\" : a, g(J, q), c(J, q)];\n                  }\n                  break;\n                }\n                case \"text\": {\n                  if (P(J.parent)) {\n                    let L = D(J.parent, q);\n                    if (L) {\n                      let Q = L === \"markdown\" ? m(J.value.replace(/^[^\\S\\n]*\\n/, \"\")) : J.value, V = { parser: L, __embeddedInHtml: true };\n                      if (q.parser === \"html\" && L === \"babel\") {\n                        let j = \"script\", { attrMap: Y } = J.parent;\n                        Y && (Y.type === \"module\" || Y.type === \"text/babel\" && Y[\"data-type\"] === \"module\") && (j = \"module\"), V.__babelSourceType = j;\n                      }\n                      return [t, F(J, q), R(Q, V, { stripTrailingHardline: true }), c(J, q)];\n                    }\n                  } else if (J.parent.type === \"interpolation\") {\n                    let L = { __isInHtmlInterpolation: true, __embeddedInHtml: true };\n                    return q.parser === \"angular\" ? (L.parser = \"__ng_interpolation\", L.trailingComma = \"none\") : q.parser === \"vue\" ? L.parser = q.__should_parse_vue_template_with_ts ? \"__vue_ts_expression\" : \"__vue_expression\" : L.parser = \"__js_expression\", [n([u, R(J.value, L, { stripTrailingHardline: true })]), J.parent.next && f(J.parent.next) ? \" \" : u];\n                  }\n                  break;\n                }\n                case \"attribute\": {\n                  if (!J.value) break;\n                  if (/^PRETTIER_HTML_PLACEHOLDER_\\d+_\\d+_IN_JS$/.test(q.originalText.slice(J.valueSpan.start.offset, J.valueSpan.end.offset))) return [J.rawName, \"=\", J.value];\n                  if (q.parser === \"lwc\" && /^{.*}$/s.test(q.originalText.slice(J.valueSpan.start.offset, J.valueSpan.end.offset))) return [J.rawName, \"=\", J.value];\n                  let L = b(J, (Q, V) => R(Q, Object.assign({ __isInHtmlAttribute: true, __embeddedInHtml: true }, V), { stripTrailingHardline: true }), q);\n                  if (L) return [J.rawName, '=\"', s2(p(L, (Q) => typeof Q == \"string\" ? Q.replace(/\"/g, \"&quot;\") : Q)), '\"'];\n                  break;\n                }\n                case \"front-matter\":\n                  return h(J, R);\n              }\n            }\n            r.exports = B;\n          } }), Oo = te({ \"src/language-html/print/children.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { breakParent: t, group: s2, ifBreak: a, line: n, softline: u, hardline: i }, utils: { replaceTextEndOfLine: l } } = qe(), { locStart: p, locEnd: y } = au(), { forceBreakChildren: h, forceNextEmptyLine: g, isTextLikeNode: c, hasPrettierIgnore: f, preferHardlineAsLeadingSpaces: F } = Rt(), { printOpeningTagPrefix: _, needsToBorrowNextOpeningTagStartMarker: w, printOpeningTagStartMarker: E, needsToBorrowPrevClosingTagEndMarker: N, printClosingTagEndMarker: x, printClosingTagSuffix: I, needsToBorrowParentClosingTagStartMarker: P } = ur();\n            function $(m, C, o) {\n              let d = m.getValue();\n              return f(d) ? [_(d, C), ...l(C.originalText.slice(p(d) + (d.prev && w(d.prev) ? E(d).length : 0), y(d) - (d.next && N(d.next) ? x(d, C).length : 0))), I(d, C)] : o();\n            }\n            function D(m, C) {\n              return c(m) && c(C) ? m.isTrailingSpaceSensitive ? m.hasTrailingSpaces ? F(C) ? i : n : \"\" : F(C) ? i : u : w(m) && (f(C) || C.firstChild || C.isSelfClosing || C.type === \"element\" && C.attrs.length > 0) || m.type === \"element\" && m.isSelfClosing && N(C) ? \"\" : !C.isLeadingSpaceSensitive || F(C) || N(C) && m.lastChild && P(m.lastChild) && m.lastChild.lastChild && P(m.lastChild.lastChild) ? i : C.hasLeadingSpaces ? n : u;\n            }\n            function T(m, C, o) {\n              let d = m.getValue();\n              if (h(d)) return [t, ...m.map((S) => {\n                let b = S.getValue(), B = b.prev ? D(b.prev, b) : \"\";\n                return [B ? [B, g(b.prev) ? i : \"\"] : \"\", $(S, C, o)];\n              }, \"children\")];\n              let v = d.children.map(() => Symbol(\"\"));\n              return m.map((S, b) => {\n                let B = S.getValue();\n                if (c(B)) {\n                  if (B.prev && c(B.prev)) {\n                    let Q = D(B.prev, B);\n                    if (Q) return g(B.prev) ? [i, i, $(S, C, o)] : [Q, $(S, C, o)];\n                  }\n                  return $(S, C, o);\n                }\n                let k = [], M = [], R = [], q = [], J = B.prev ? D(B.prev, B) : \"\", L = B.next ? D(B, B.next) : \"\";\n                return J && (g(B.prev) ? k.push(i, i) : J === i ? k.push(i) : c(B.prev) ? M.push(J) : M.push(a(\"\", u, { groupId: v[b - 1] }))), L && (g(B) ? c(B.next) && q.push(i, i) : L === i ? c(B.next) && q.push(i) : R.push(L)), [...k, s2([...M, s2([$(S, C, o), ...R], { id: v[b] })]), ...q];\n              }, \"children\");\n            }\n            r.exports = { printChildren: T };\n          } }), wg = te({ \"src/language-html/print/element.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { breakParent: t, dedentToRoot: s2, group: a, ifBreak: n, indentIfBreak: u, indent: i, line: l, softline: p }, utils: { replaceTextEndOfLine: y } } = qe(), h = Lo(), { shouldPreserveContent: g, isScriptLikeTag: c, isVueCustomBlock: f, countParents: F, forceBreakContent: _ } = Rt(), { printOpeningTagPrefix: w, printOpeningTag: E, printClosingTagSuffix: N, printClosingTag: x, needsToBorrowPrevClosingTagEndMarker: I, needsToBorrowLastChildClosingTagEndMarker: P } = ur(), { printChildren: $ } = Oo();\n            function D(T, m, C) {\n              let o = T.getValue();\n              if (g(o, m)) return [w(o, m), a(E(T, m, C)), ...y(h(o, m)), ...x(o, m), N(o, m)];\n              let d = o.children.length === 1 && o.firstChild.type === \"interpolation\" && o.firstChild.isLeadingSpaceSensitive && !o.firstChild.hasLeadingSpaces && o.lastChild.isTrailingSpaceSensitive && !o.lastChild.hasTrailingSpaces, v = Symbol(\"element-attr-group-id\"), S = (M) => a([a(E(T, m, C), { id: v }), M, x(o, m)]), b = (M) => d ? u(M, { groupId: v }) : (c(o) || f(o, m)) && o.parent.type === \"root\" && m.parser === \"vue\" && !m.vueIndentScriptAndStyle ? M : i(M), B = () => d ? n(p, \"\", { groupId: v }) : o.firstChild.hasLeadingSpaces && o.firstChild.isLeadingSpaceSensitive ? l : o.firstChild.type === \"text\" && o.isWhitespaceSensitive && o.isIndentationSensitive ? s2(p) : p, k = () => (o.next ? I(o.next) : P(o.parent)) ? o.lastChild.hasTrailingSpaces && o.lastChild.isTrailingSpaceSensitive ? \" \" : \"\" : d ? n(p, \"\", { groupId: v }) : o.lastChild.hasTrailingSpaces && o.lastChild.isTrailingSpaceSensitive ? l : (o.lastChild.type === \"comment\" || o.lastChild.type === \"text\" && o.isWhitespaceSensitive && o.isIndentationSensitive) && new RegExp(`\\\\n[\\\\t ]{${m.tabWidth * F(T, (R) => R.parent && R.parent.type !== \"root\")}}$`).test(o.lastChild.value) ? \"\" : p;\n              return o.children.length === 0 ? S(o.hasDanglingSpaces && o.isDanglingSpaceSensitive ? l : \"\") : S([_(o) ? t : \"\", b([B(), $(T, m, C)]), k()]);\n            }\n            r.exports = { printElement: D };\n          } }), _g = te({ \"src/language-html/printer-html.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { fill: t, group: s2, hardline: a, literalline: n }, utils: { cleanDoc: u, getDocParts: i, isConcat: l, replaceTextEndOfLine: p } } = qe(), y = gg(), { countChars: h, unescapeQuoteEntities: g, getTextValueParts: c } = Rt(), f = Sg(), { insertPragma: F } = xg(), { locStart: _, locEnd: w } = au(), E = Ng(), { printClosingTagSuffix: N, printClosingTagEnd: x, printOpeningTagPrefix: I, printOpeningTagStart: P } = ur(), { printElement: $ } = wg(), { printChildren: D } = Oo();\n            function T(m, C, o) {\n              let d = m.getValue();\n              switch (d.type) {\n                case \"front-matter\":\n                  return p(d.raw);\n                case \"root\":\n                  return C.__onHtmlRoot && C.__onHtmlRoot(d), [s2(D(m, C, o)), a];\n                case \"element\":\n                case \"ieConditionalComment\":\n                  return $(m, C, o);\n                case \"ieConditionalStartComment\":\n                case \"ieConditionalEndComment\":\n                  return [P(d), x(d)];\n                case \"interpolation\":\n                  return [P(d, C), ...m.map(o, \"children\"), x(d, C)];\n                case \"text\": {\n                  if (d.parent.type === \"interpolation\") {\n                    let S = /\\n[^\\S\\n]*$/, b = S.test(d.value), B = b ? d.value.replace(S, \"\") : d.value;\n                    return [...p(B), b ? a : \"\"];\n                  }\n                  let v = u([I(d, C), ...c(d), N(d, C)]);\n                  return l(v) || v.type === \"fill\" ? t(i(v)) : v;\n                }\n                case \"docType\":\n                  return [s2([P(d, C), \" \", d.value.replace(/^html\\b/i, \"html\").replace(/\\s+/g, \" \")]), x(d, C)];\n                case \"comment\":\n                  return [I(d, C), ...p(C.originalText.slice(_(d), w(d)), n), N(d, C)];\n                case \"attribute\": {\n                  if (d.value === null) return d.rawName;\n                  let v = g(d.value), S = h(v, \"'\"), b = h(v, '\"'), B = S < b ? \"'\" : '\"';\n                  return [d.rawName, \"=\", B, ...p(B === '\"' ? v.replace(/\"/g, \"&quot;\") : v.replace(/'/g, \"&apos;\")), B];\n                }\n                default:\n                  throw new Error(`Unexpected node type ${d.type}`);\n              }\n            }\n            r.exports = { preprocess: f, print: T, insertPragma: F, massageAstNode: y, embed: E };\n          } }), Pg = te({ \"src/language-html/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt(), s2 = \"HTML\";\n            r.exports = { bracketSameLine: t.bracketSameLine, htmlWhitespaceSensitivity: { since: \"1.15.0\", category: s2, type: \"choice\", default: \"css\", description: \"How to handle whitespaces in HTML.\", choices: [{ value: \"css\", description: \"Respect the default value of CSS display property.\" }, { value: \"strict\", description: \"Whitespaces are considered sensitive.\" }, { value: \"ignore\", description: \"Whitespaces are considered insensitive.\" }] }, singleAttributePerLine: t.singleAttributePerLine, vueIndentScriptAndStyle: { since: \"1.19.0\", category: s2, type: \"boolean\", default: false, description: \"Indent script and style tags in Vue files.\" } };\n          } }), Ig = te({ \"src/language-html/parsers.js\"() {\n            ne();\n          } }), On = te({ \"node_modules/linguist-languages/data/HTML.json\"(e, r) {\n            r.exports = { name: \"HTML\", type: \"markup\", tmScope: \"text.html.basic\", aceMode: \"html\", codemirrorMode: \"htmlmixed\", codemirrorMimeType: \"text/html\", color: \"#e34c26\", aliases: [\"xhtml\"], extensions: [\".html\", \".hta\", \".htm\", \".html.hl\", \".inc\", \".xht\", \".xhtml\"], languageId: 146 };\n          } }), kg = te({ \"node_modules/linguist-languages/data/Vue.json\"(e, r) {\n            r.exports = { name: \"Vue\", type: \"markup\", color: \"#41b883\", extensions: [\".vue\"], tmScope: \"text.html.vue\", aceMode: \"html\", languageId: 391 };\n          } }), Lg = te({ \"src/language-html/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = _g(), a = Pg(), n = Ig(), u = [t(On(), () => ({ name: \"Angular\", since: \"1.15.0\", parsers: [\"angular\"], vscodeLanguageIds: [\"html\"], extensions: [\".component.html\"], filenames: [] })), t(On(), (l) => ({ since: \"1.15.0\", parsers: [\"html\"], vscodeLanguageIds: [\"html\"], extensions: [...l.extensions, \".mjml\"] })), t(On(), () => ({ name: \"Lightning Web Components\", since: \"1.17.0\", parsers: [\"lwc\"], vscodeLanguageIds: [\"html\"], extensions: [], filenames: [] })), t(kg(), () => ({ since: \"1.10.0\", parsers: [\"vue\"], vscodeLanguageIds: [\"vue\"] }))], i = { html: s2 };\n            r.exports = { languages: u, printers: i, options: a, parsers: n };\n          } }), Og = te({ \"src/language-yaml/pragma.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(n) {\n              return /^\\s*@(?:prettier|format)\\s*$/.test(n);\n            }\n            function s2(n) {\n              return /^\\s*#[^\\S\\n]*@(?:prettier|format)\\s*?(?:\\n|$)/.test(n);\n            }\n            function a(n) {\n              return `# @format\n\n${n}`;\n            }\n            r.exports = { isPragma: t, hasPragma: s2, insertPragma: a };\n          } }), jg = te({ \"src/language-yaml/loc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(a) {\n              return a.position.start.offset;\n            }\n            function s2(a) {\n              return a.position.end.offset;\n            }\n            r.exports = { locStart: t, locEnd: s2 };\n          } }), qg = te({ \"src/language-yaml/embed.js\"(e, r) {\n            \"use strict\";\n            ne();\n            function t(s2, a, n, u) {\n              if (s2.getValue().type === \"root\" && u.filepath && /(?:[/\\\\]|^)\\.(?:prettier|stylelint|lintstaged)rc$/.test(u.filepath)) return n(u.originalText, Object.assign(Object.assign({}, u), {}, { parser: \"json\" }));\n            }\n            r.exports = t;\n          } }), $t = te({ \"src/language-yaml/utils.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { getLast: t, isNonEmptyArray: s2 } = Ue();\n            function a(D, T) {\n              let m = 0, C = D.stack.length - 1;\n              for (let o = 0; o < C; o++) {\n                let d = D.stack[o];\n                n(d) && T(d) && m++;\n              }\n              return m;\n            }\n            function n(D, T) {\n              return D && typeof D.type == \"string\" && (!T || T.includes(D.type));\n            }\n            function u(D, T, m) {\n              return T(\"children\" in D ? Object.assign(Object.assign({}, D), {}, { children: D.children.map((C) => u(C, T, D)) }) : D, m);\n            }\n            function i(D, T, m) {\n              Object.defineProperty(D, T, { get: m, enumerable: false });\n            }\n            function l(D, T) {\n              let m = 0, C = T.length;\n              for (let o = D.position.end.offset - 1; o < C; o++) {\n                let d = T[o];\n                if (d === `\n` && m++, m === 1 && /\\S/.test(d)) return false;\n                if (m === 2) return true;\n              }\n              return false;\n            }\n            function p(D) {\n              switch (D.getValue().type) {\n                case \"tag\":\n                case \"anchor\":\n                case \"comment\":\n                  return false;\n              }\n              let m = D.stack.length;\n              for (let C = 1; C < m; C++) {\n                let o = D.stack[C], d = D.stack[C - 1];\n                if (Array.isArray(d) && typeof o == \"number\" && o !== d.length - 1) return false;\n              }\n              return true;\n            }\n            function y(D) {\n              return s2(D.children) ? y(t(D.children)) : D;\n            }\n            function h(D) {\n              return D.value.trim() === \"prettier-ignore\";\n            }\n            function g(D) {\n              let T = D.getValue();\n              if (T.type === \"documentBody\") {\n                let m = D.getParentNode();\n                return N(m.head) && h(t(m.head.endComments));\n              }\n              return F(T) && h(t(T.leadingComments));\n            }\n            function c(D) {\n              return !s2(D.children) && !f(D);\n            }\n            function f(D) {\n              return F(D) || _(D) || w(D) || E(D) || N(D);\n            }\n            function F(D) {\n              return s2(D == null ? void 0 : D.leadingComments);\n            }\n            function _(D) {\n              return s2(D == null ? void 0 : D.middleComments);\n            }\n            function w(D) {\n              return D == null ? void 0 : D.indicatorComment;\n            }\n            function E(D) {\n              return D == null ? void 0 : D.trailingComment;\n            }\n            function N(D) {\n              return s2(D == null ? void 0 : D.endComments);\n            }\n            function x(D) {\n              let T = [], m;\n              for (let C of D.split(/( +)/)) C !== \" \" ? m === \" \" ? T.push(C) : T.push((T.pop() || \"\") + C) : m === void 0 && T.unshift(\"\"), m = C;\n              return m === \" \" && T.push((T.pop() || \"\") + \" \"), T[0] === \"\" && (T.shift(), T.unshift(\" \" + (T.shift() || \"\"))), T;\n            }\n            function I(D, T, m) {\n              let C = T.split(`\n`).map((o, d, v) => d === 0 && d === v.length - 1 ? o : d !== 0 && d !== v.length - 1 ? o.trim() : d === 0 ? o.trimEnd() : o.trimStart());\n              return m.proseWrap === \"preserve\" ? C.map((o) => o.length === 0 ? [] : [o]) : C.map((o) => o.length === 0 ? [] : x(o)).reduce((o, d, v) => v !== 0 && C[v - 1].length > 0 && d.length > 0 && !(D === \"quoteDouble\" && t(t(o)).endsWith(\"\\\\\")) ? [...o.slice(0, -1), [...t(o), ...d]] : [...o, d], []).map((o) => m.proseWrap === \"never\" ? [o.join(\" \")] : o);\n            }\n            function P(D, T) {\n              let { parentIndent: m, isLastDescendant: C, options: o } = T, d = D.position.start.line === D.position.end.line ? \"\" : o.originalText.slice(D.position.start.offset, D.position.end.offset).match(/^[^\\n]*\\n(.*)$/s)[1], v;\n              if (D.indent === null) {\n                let B = d.match(/^(?<leadingSpace> *)[^\\n\\r ]/m);\n                v = B ? B.groups.leadingSpace.length : Number.POSITIVE_INFINITY;\n              } else v = D.indent - 1 + m;\n              let S = d.split(`\n`).map((B) => B.slice(v));\n              if (o.proseWrap === \"preserve\" || D.type === \"blockLiteral\") return b(S.map((B) => B.length === 0 ? [] : [B]));\n              return b(S.map((B) => B.length === 0 ? [] : x(B)).reduce((B, k, M) => M !== 0 && S[M - 1].length > 0 && k.length > 0 && !/^\\s/.test(k[0]) && !/^\\s|\\s$/.test(t(B)) ? [...B.slice(0, -1), [...t(B), ...k]] : [...B, k], []).map((B) => B.reduce((k, M) => k.length > 0 && /\\s$/.test(t(k)) ? [...k.slice(0, -1), t(k) + \" \" + M] : [...k, M], [])).map((B) => o.proseWrap === \"never\" ? [B.join(\" \")] : B));\n              function b(B) {\n                if (D.chomping === \"keep\") return t(B).length === 0 ? B.slice(0, -1) : B;\n                let k = 0;\n                for (let M = B.length - 1; M >= 0 && B[M].length === 0; M--) k++;\n                return k === 0 ? B : k >= 2 && !C ? B.slice(0, -(k - 1)) : B.slice(0, -k);\n              }\n            }\n            function $(D) {\n              if (!D) return true;\n              switch (D.type) {\n                case \"plain\":\n                case \"quoteDouble\":\n                case \"quoteSingle\":\n                case \"alias\":\n                case \"flowMapping\":\n                case \"flowSequence\":\n                  return true;\n                default:\n                  return false;\n              }\n            }\n            r.exports = { getLast: t, getAncestorCount: a, isNode: n, isEmptyNode: c, isInlineNode: $, mapNode: u, defineShortcut: i, isNextLineEmpty: l, isLastDescendantNode: p, getBlockValueLineContents: P, getFlowScalarLineContents: I, getLastDescendantNode: y, hasPrettierIgnore: g, hasLeadingComments: F, hasMiddleComments: _, hasIndicatorComment: w, hasTrailingComment: E, hasEndComments: N };\n          } }), Mg = te({ \"src/language-yaml/print-preprocess.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { defineShortcut: t, mapNode: s2 } = $t();\n            function a(u) {\n              return s2(u, n);\n            }\n            function n(u) {\n              switch (u.type) {\n                case \"document\":\n                  t(u, \"head\", () => u.children[0]), t(u, \"body\", () => u.children[1]);\n                  break;\n                case \"documentBody\":\n                case \"sequenceItem\":\n                case \"flowSequenceItem\":\n                case \"mappingKey\":\n                case \"mappingValue\":\n                  t(u, \"content\", () => u.children[0]);\n                  break;\n                case \"mappingItem\":\n                case \"flowMappingItem\":\n                  t(u, \"key\", () => u.children[0]), t(u, \"value\", () => u.children[1]);\n                  break;\n              }\n              return u;\n            }\n            r.exports = a;\n          } }), Mr = te({ \"src/language-yaml/print/misc.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { softline: t, align: s2 } } = qe(), { hasEndComments: a, isNextLineEmpty: n, isNode: u } = $t(), i = /* @__PURE__ */ new WeakMap();\n            function l(h, g) {\n              let c = h.getValue(), f = h.stack[0], F;\n              return i.has(f) ? F = i.get(f) : (F = /* @__PURE__ */ new Set(), i.set(f, F)), !F.has(c.position.end.line) && (F.add(c.position.end.line), n(c, g) && !p(h.getParentNode())) ? t : \"\";\n            }\n            function p(h) {\n              return a(h) && !u(h, [\"documentHead\", \"documentBody\", \"flowMapping\", \"flowSequence\"]);\n            }\n            function y(h, g) {\n              return s2(\" \".repeat(h), g);\n            }\n            r.exports = { alignWithSpaces: y, shouldPrintEndComments: p, printNextEmptyLine: l };\n          } }), Rg = te({ \"src/language-yaml/print/flow-mapping-sequence.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { ifBreak: t, line: s2, softline: a, hardline: n, join: u } } = qe(), { isEmptyNode: i, getLast: l, hasEndComments: p } = $t(), { printNextEmptyLine: y, alignWithSpaces: h } = Mr();\n            function g(f, F, _) {\n              let w = f.getValue(), E = w.type === \"flowMapping\", N = E ? \"{\" : \"[\", x = E ? \"}\" : \"]\", I = a;\n              E && w.children.length > 0 && _.bracketSpacing && (I = s2);\n              let P = l(w.children), $ = P && P.type === \"flowMappingItem\" && i(P.key) && i(P.value);\n              return [N, h(_.tabWidth, [I, c(f, F, _), _.trailingComma === \"none\" ? \"\" : t(\",\"), p(w) ? [n, u(n, f.map(F, \"endComments\"))] : \"\"]), $ ? \"\" : I, x];\n            }\n            function c(f, F, _) {\n              let w = f.getValue();\n              return f.map((N, x) => [F(), x === w.children.length - 1 ? \"\" : [\",\", s2, w.children[x].position.start.line !== w.children[x + 1].position.start.line ? y(N, _.originalText) : \"\"]], \"children\");\n            }\n            r.exports = { printFlowMapping: g, printFlowSequence: g };\n          } }), $g = te({ \"src/language-yaml/print/mapping-item.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { conditionalGroup: t, group: s2, hardline: a, ifBreak: n, join: u, line: i } } = qe(), { hasLeadingComments: l, hasMiddleComments: p, hasTrailingComment: y, hasEndComments: h, isNode: g, isEmptyNode: c, isInlineNode: f } = $t(), { alignWithSpaces: F } = Mr();\n            function _(x, I, P, $, D) {\n              let { key: T, value: m } = x, C = c(T), o = c(m);\n              if (C && o) return \": \";\n              let d = $(\"key\"), v = E(x) ? \" \" : \"\";\n              if (o) return x.type === \"flowMappingItem\" && I.type === \"flowMapping\" ? d : x.type === \"mappingItem\" && w(T.content, D) && !y(T.content) && (!I.tag || I.tag.value !== \"tag:yaml.org,2002:set\") ? [d, v, \":\"] : [\"? \", F(2, d)];\n              let S = $(\"value\");\n              if (C) return [\": \", F(2, S)];\n              if (l(m) || !f(T.content)) return [\"? \", F(2, d), a, u(\"\", P.map($, \"value\", \"leadingComments\").map((q) => [q, a])), \": \", F(2, S)];\n              if (N(T.content) && !l(T.content) && !p(T.content) && !y(T.content) && !h(T) && !l(m.content) && !p(m.content) && !h(m) && w(m.content, D)) return [d, v, \": \", S];\n              let b = Symbol(\"mappingKey\"), B = s2([n(\"? \"), s2(F(2, d), { id: b })]), k = [a, \": \", F(2, S)], M = [v, \":\"];\n              l(m.content) || h(m) && m.content && !g(m.content, [\"mapping\", \"sequence\"]) || I.type === \"mapping\" && y(T.content) && f(m.content) || g(m.content, [\"mapping\", \"sequence\"]) && m.content.tag === null && m.content.anchor === null ? M.push(a) : m.content && M.push(i), M.push(S);\n              let R = F(D.tabWidth, M);\n              return w(T.content, D) && !l(T.content) && !p(T.content) && !h(T) ? t([[d, R]]) : t([[B, n(k, R, { groupId: b })]]);\n            }\n            function w(x, I) {\n              if (!x) return true;\n              switch (x.type) {\n                case \"plain\":\n                case \"quoteSingle\":\n                case \"quoteDouble\":\n                  break;\n                case \"alias\":\n                  return true;\n                default:\n                  return false;\n              }\n              if (I.proseWrap === \"preserve\") return x.position.start.line === x.position.end.line;\n              if (/\\\\$/m.test(I.originalText.slice(x.position.start.offset, x.position.end.offset))) return false;\n              switch (I.proseWrap) {\n                case \"never\":\n                  return !x.value.includes(`\n`);\n                case \"always\":\n                  return !/[\\n ]/.test(x.value);\n                default:\n                  return false;\n              }\n            }\n            function E(x) {\n              return x.key.content && x.key.content.type === \"alias\";\n            }\n            function N(x) {\n              if (!x) return true;\n              switch (x.type) {\n                case \"plain\":\n                case \"quoteDouble\":\n                case \"quoteSingle\":\n                  return x.position.start.line === x.position.end.line;\n                case \"alias\":\n                  return true;\n                default:\n                  return false;\n              }\n            }\n            r.exports = _;\n          } }), Vg = te({ \"src/language-yaml/print/block.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { dedent: t, dedentToRoot: s2, fill: a, hardline: n, join: u, line: i, literalline: l, markAsRoot: p }, utils: { getDocParts: y } } = qe(), { getAncestorCount: h, getBlockValueLineContents: g, hasIndicatorComment: c, isLastDescendantNode: f, isNode: F } = $t(), { alignWithSpaces: _ } = Mr();\n            function w(E, N, x) {\n              let I = E.getValue(), P = h(E, (C) => F(C, [\"sequence\", \"mapping\"])), $ = f(E), D = [I.type === \"blockFolded\" ? \">\" : \"|\"];\n              I.indent !== null && D.push(I.indent.toString()), I.chomping !== \"clip\" && D.push(I.chomping === \"keep\" ? \"+\" : \"-\"), c(I) && D.push(\" \", N(\"indicatorComment\"));\n              let T = g(I, { parentIndent: P, isLastDescendant: $, options: x }), m = [];\n              for (let [C, o] of T.entries()) C === 0 && m.push(n), m.push(a(y(u(i, o)))), C !== T.length - 1 ? m.push(o.length === 0 ? n : p(l)) : I.chomping === \"keep\" && $ && m.push(s2(o.length === 0 ? n : l));\n              return I.indent === null ? D.push(t(_(x.tabWidth, m))) : D.push(s2(_(I.indent - 1 + P, m))), D;\n            }\n            r.exports = w;\n          } }), Wg = te({ \"src/language-yaml/printer-yaml.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var { builders: { breakParent: t, fill: s2, group: a, hardline: n, join: u, line: i, lineSuffix: l, literalline: p }, utils: { getDocParts: y, replaceTextEndOfLine: h } } = qe(), { isPreviousLineEmpty: g } = Ue(), { insertPragma: c, isPragma: f } = Og(), { locStart: F } = jg(), _ = qg(), { getFlowScalarLineContents: w, getLastDescendantNode: E, hasLeadingComments: N, hasMiddleComments: x, hasTrailingComment: I, hasEndComments: P, hasPrettierIgnore: $, isLastDescendantNode: D, isNode: T, isInlineNode: m } = $t(), C = Mg(), { alignWithSpaces: o, printNextEmptyLine: d, shouldPrintEndComments: v } = Mr(), { printFlowMapping: S, printFlowSequence: b } = Rg(), B = $g(), k = Vg();\n            function M(j, Y, ie) {\n              let ee = j.getValue(), ce = [];\n              ee.type !== \"mappingValue\" && N(ee) && ce.push([u(n, j.map(ie, \"leadingComments\")), n]);\n              let { tag: W, anchor: K } = ee;\n              W && ce.push(ie(\"tag\")), W && K && ce.push(\" \"), K && ce.push(ie(\"anchor\"));\n              let de = \"\";\n              T(ee, [\"mapping\", \"sequence\", \"comment\", \"directive\", \"mappingItem\", \"sequenceItem\"]) && !D(j) && (de = d(j, Y.originalText)), (W || K) && (T(ee, [\"sequence\", \"mapping\"]) && !x(ee) ? ce.push(n) : ce.push(\" \")), x(ee) && ce.push([ee.middleComments.length === 1 ? \"\" : n, u(n, j.map(ie, \"middleComments\")), n]);\n              let ue = j.getParentNode();\n              return $(j) ? ce.push(h(Y.originalText.slice(ee.position.start.offset, ee.position.end.offset).trimEnd(), p)) : ce.push(a(R(ee, ue, j, Y, ie))), I(ee) && !T(ee, [\"document\", \"documentHead\"]) && ce.push(l([ee.type === \"mappingValue\" && !ee.content ? \"\" : \" \", ue.type === \"mappingKey\" && j.getParentNode(2).type === \"mapping\" && m(ee) ? \"\" : t, ie(\"trailingComment\")])), v(ee) && ce.push(o(ee.type === \"sequenceItem\" ? 2 : 0, [n, u(n, j.map((Fe) => [g(Y.originalText, Fe.getValue(), F) ? n : \"\", ie()], \"endComments\"))])), ce.push(de), ce;\n            }\n            function R(j, Y, ie, ee, ce) {\n              switch (j.type) {\n                case \"root\": {\n                  let { children: W } = j, K = [];\n                  ie.each((ue, Fe) => {\n                    let z = W[Fe], U = W[Fe + 1];\n                    Fe !== 0 && K.push(n), K.push(ce()), J(z, U) ? (K.push(n, \"...\"), I(z) && K.push(\" \", ce(\"trailingComment\"))) : U && !I(U.head) && K.push(n, \"---\");\n                  }, \"children\");\n                  let de = E(j);\n                  return (!T(de, [\"blockLiteral\", \"blockFolded\"]) || de.chomping !== \"keep\") && K.push(n), K;\n                }\n                case \"document\": {\n                  let W = Y.children[ie.getName() + 1], K = [];\n                  return L(j, W, Y, ee) === \"head\" && ((j.head.children.length > 0 || j.head.endComments.length > 0) && K.push(ce(\"head\")), I(j.head) ? K.push([\"---\", \" \", ce([\"head\", \"trailingComment\"])]) : K.push(\"---\")), q(j) && K.push(ce(\"body\")), u(n, K);\n                }\n                case \"documentHead\":\n                  return u(n, [...ie.map(ce, \"children\"), ...ie.map(ce, \"endComments\")]);\n                case \"documentBody\": {\n                  let { children: W, endComments: K } = j, de = \"\";\n                  if (W.length > 0 && K.length > 0) {\n                    let ue = E(j);\n                    T(ue, [\"blockFolded\", \"blockLiteral\"]) ? ue.chomping !== \"keep\" && (de = [n, n]) : de = n;\n                  }\n                  return [u(n, ie.map(ce, \"children\")), de, u(n, ie.map(ce, \"endComments\"))];\n                }\n                case \"directive\":\n                  return [\"%\", u(\" \", [j.name, ...j.parameters])];\n                case \"comment\":\n                  return [\"#\", j.value];\n                case \"alias\":\n                  return [\"*\", j.value];\n                case \"tag\":\n                  return ee.originalText.slice(j.position.start.offset, j.position.end.offset);\n                case \"anchor\":\n                  return [\"&\", j.value];\n                case \"plain\":\n                  return Q(j.type, ee.originalText.slice(j.position.start.offset, j.position.end.offset), ee);\n                case \"quoteDouble\":\n                case \"quoteSingle\": {\n                  let W = \"'\", K = '\"', de = ee.originalText.slice(j.position.start.offset + 1, j.position.end.offset - 1);\n                  if (j.type === \"quoteSingle\" && de.includes(\"\\\\\") || j.type === \"quoteDouble\" && /\\\\[^\"]/.test(de)) {\n                    let Fe = j.type === \"quoteDouble\" ? K : W;\n                    return [Fe, Q(j.type, de, ee), Fe];\n                  }\n                  if (de.includes(K)) return [W, Q(j.type, j.type === \"quoteDouble\" ? de.replace(/\\\\\"/g, K).replace(/'/g, W.repeat(2)) : de, ee), W];\n                  if (de.includes(W)) return [K, Q(j.type, j.type === \"quoteSingle\" ? de.replace(/''/g, W) : de, ee), K];\n                  let ue = ee.singleQuote ? W : K;\n                  return [ue, Q(j.type, de, ee), ue];\n                }\n                case \"blockFolded\":\n                case \"blockLiteral\":\n                  return k(ie, ce, ee);\n                case \"mapping\":\n                case \"sequence\":\n                  return u(n, ie.map(ce, \"children\"));\n                case \"sequenceItem\":\n                  return [\"- \", o(2, j.content ? ce(\"content\") : \"\")];\n                case \"mappingKey\":\n                case \"mappingValue\":\n                  return j.content ? ce(\"content\") : \"\";\n                case \"mappingItem\":\n                case \"flowMappingItem\":\n                  return B(j, Y, ie, ce, ee);\n                case \"flowMapping\":\n                  return S(ie, ce, ee);\n                case \"flowSequence\":\n                  return b(ie, ce, ee);\n                case \"flowSequenceItem\":\n                  return ce(\"content\");\n                default:\n                  throw new Error(`Unexpected node type ${j.type}`);\n              }\n            }\n            function q(j) {\n              return j.body.children.length > 0 || P(j.body);\n            }\n            function J(j, Y) {\n              return I(j) || Y && (Y.head.children.length > 0 || P(Y.head));\n            }\n            function L(j, Y, ie, ee) {\n              return ie.children[0] === j && /---(?:\\s|$)/.test(ee.originalText.slice(F(j), F(j) + 4)) || j.head.children.length > 0 || P(j.head) || I(j.head) ? \"head\" : J(j, Y) ? false : Y ? \"root\" : false;\n            }\n            function Q(j, Y, ie) {\n              let ee = w(j, Y, ie);\n              return u(n, ee.map((ce) => s2(y(u(i, ce)))));\n            }\n            function V(j, Y) {\n              if (T(Y)) switch (delete Y.position, Y.type) {\n                case \"comment\":\n                  if (f(Y.value)) return null;\n                  break;\n                case \"quoteDouble\":\n                case \"quoteSingle\":\n                  Y.type = \"quote\";\n                  break;\n              }\n            }\n            r.exports = { preprocess: C, embed: _, print: M, massageAstNode: V, insertPragma: c };\n          } }), Hg = te({ \"src/language-yaml/options.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = Mt();\n            r.exports = { bracketSpacing: t.bracketSpacing, singleQuote: t.singleQuote, proseWrap: t.proseWrap };\n          } }), Gg = te({ \"src/language-yaml/parsers.js\"() {\n            ne();\n          } }), Ug = te({ \"node_modules/linguist-languages/data/YAML.json\"(e, r) {\n            r.exports = { name: \"YAML\", type: \"data\", color: \"#cb171e\", tmScope: \"source.yaml\", aliases: [\"yml\"], extensions: [\".yml\", \".mir\", \".reek\", \".rviz\", \".sublime-syntax\", \".syntax\", \".yaml\", \".yaml-tmlanguage\", \".yaml.sed\", \".yml.mysql\"], filenames: [\".clang-format\", \".clang-tidy\", \".gemrc\", \"CITATION.cff\", \"glide.lock\", \"yarn.lock\"], aceMode: \"yaml\", codemirrorMode: \"yaml\", codemirrorMimeType: \"text/x-yaml\", languageId: 407 };\n          } }), Jg = te({ \"src/language-yaml/index.js\"(e, r) {\n            \"use strict\";\n            ne();\n            var t = _t(), s2 = Wg(), a = Hg(), n = Gg(), u = [t(Ug(), (i) => ({ since: \"1.14.0\", parsers: [\"yaml\"], vscodeLanguageIds: [\"yaml\", \"ansible\", \"home-assistant\"], filenames: [...i.filenames.filter((l) => l !== \"yarn.lock\"), \".prettierrc\", \".stylelintrc\", \".lintstagedrc\"] }))];\n            r.exports = { languages: u, printers: { yaml: s2 }, options: a, parsers: n };\n          } }), zg = te({ \"src/languages.js\"(e, r) {\n            \"use strict\";\n            ne(), r.exports = [Bd(), Ud(), eg(), ag(), dg(), Lg(), Jg()];\n          } });\n          ne();\n          var { version: Xg } = Ia(), Ot = Gm(), { getSupportInfo: Kg } = Xn(), Yg = Um(), Qg = zg(), Zg = qe();\n          function Nt(e) {\n            let r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;\n            return function() {\n              for (var t = arguments.length, s2 = new Array(t), a = 0; a < t; a++) s2[a] = arguments[a];\n              let n = s2[r] || {}, u = n.plugins || [];\n              return s2[r] = Object.assign(Object.assign({}, n), {}, { plugins: [...Qg, ...Array.isArray(u) ? u : Object.values(u)] }), e(...s2);\n            };\n          }\n          var jn = Nt(Ot.formatWithCursor);\n          jo.exports = { formatWithCursor: jn, format(e, r) {\n            return jn(e, r).formatted;\n          }, check(e, r) {\n            let { formatted: t } = jn(e, r);\n            return t === e;\n          }, doc: Zg, getSupportInfo: Nt(Kg, 0), version: Xg, util: Yg, __debug: { parse: Nt(Ot.parse), formatAST: Nt(Ot.formatAST), formatDoc: Nt(Ot.formatDoc), printToDoc: Nt(Ot.printToDoc), printDocToString: Nt(Ot.printDocToString) } };\n        });\n        return e0();\n      });\n    }\n  });\n\n  // ../node_modules/bail/index.js\n  function bail(error) {\n    if (error) {\n      throw error;\n    }\n  }\n\n  // ../node_modules/unified/lib/index.js\n  var import_is_buffer2 = __toESM(require_is_buffer(), 1);\n  var import_extend = __toESM(require_extend(), 1);\n\n  // ../node_modules/is-plain-obj/index.js\n  function isPlainObject(value) {\n    if (typeof value !== \"object\" || value === null) {\n      return false;\n    }\n    const prototype = Object.getPrototypeOf(value);\n    return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n  }\n\n  // ../node_modules/trough/index.js\n  function trough() {\n    const fns = [];\n    const pipeline = { run, use };\n    return pipeline;\n    function run(...values) {\n      let middlewareIndex = -1;\n      const callback = values.pop();\n      if (typeof callback !== \"function\") {\n        throw new TypeError(\"Expected function as last argument, not \" + callback);\n      }\n      next(null, ...values);\n      function next(error, ...output) {\n        const fn = fns[++middlewareIndex];\n        let index2 = -1;\n        if (error) {\n          callback(error);\n          return;\n        }\n        while (++index2 < values.length) {\n          if (output[index2] === null || output[index2] === void 0) {\n            output[index2] = values[index2];\n          }\n        }\n        values = output;\n        if (fn) {\n          wrap(fn, next)(...output);\n        } else {\n          callback(null, ...output);\n        }\n      }\n    }\n    function use(middelware) {\n      if (typeof middelware !== \"function\") {\n        throw new TypeError(\n          \"Expected `middelware` to be a function, not \" + middelware\n        );\n      }\n      fns.push(middelware);\n      return pipeline;\n    }\n  }\n  function wrap(middleware, callback) {\n    let called;\n    return wrapped;\n    function wrapped(...parameters) {\n      const fnExpectsCallback = middleware.length > parameters.length;\n      let result;\n      if (fnExpectsCallback) {\n        parameters.push(done);\n      }\n      try {\n        result = middleware.apply(this, parameters);\n      } catch (error) {\n        const exception = (\n          /** @type {Error} */\n          error\n        );\n        if (fnExpectsCallback && called) {\n          throw exception;\n        }\n        return done(exception);\n      }\n      if (!fnExpectsCallback) {\n        if (result instanceof Promise) {\n          result.then(then, done);\n        } else if (result instanceof Error) {\n          done(result);\n        } else {\n          then(result);\n        }\n      }\n    }\n    function done(error, ...output) {\n      if (!called) {\n        called = true;\n        callback(error, ...output);\n      }\n    }\n    function then(value) {\n      done(null, value);\n    }\n  }\n\n  // ../node_modules/vfile/lib/index.js\n  var import_is_buffer = __toESM(require_is_buffer(), 1);\n\n  // ../node_modules/unist-util-stringify-position/lib/index.js\n  function stringifyPosition(value) {\n    if (!value || typeof value !== \"object\") {\n      return \"\";\n    }\n    if (\"position\" in value || \"type\" in value) {\n      return position(value.position);\n    }\n    if (\"start\" in value || \"end\" in value) {\n      return position(value);\n    }\n    if (\"line\" in value || \"column\" in value) {\n      return point(value);\n    }\n    return \"\";\n  }\n  function point(point2) {\n    return index(point2 && point2.line) + \":\" + index(point2 && point2.column);\n  }\n  function position(pos) {\n    return point(pos && pos.start) + \"-\" + point(pos && pos.end);\n  }\n  function index(value) {\n    return value && typeof value === \"number\" ? value : 1;\n  }\n\n  // ../node_modules/vfile-message/lib/index.js\n  var VFileMessage = class extends Error {\n    /**\n     * Create a message for `reason` at `place` from `origin`.\n     *\n     * When an error is passed in as `reason`, the `stack` is copied.\n     *\n     * @param {string | Error | VFileMessage} reason\n     *   Reason for message, uses the stack and message of the error if given.\n     *\n     *   > 👉 **Note**: you should use markdown.\n     * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n     *   Place in file where the message occurred.\n     * @param {string | null | undefined} [origin]\n     *   Place in code where the message originates (example:\n     *   `'my-package:my-rule'` or `'my-rule'`).\n     * @returns\n     *   Instance of `VFileMessage`.\n     */\n    // To do: next major: expose `undefined` everywhere instead of `null`.\n    constructor(reason, place, origin) {\n      const parts = [null, null];\n      let position2 = {\n        // @ts-expect-error: we always follows the structure of `position`.\n        start: { line: null, column: null },\n        // @ts-expect-error: \"\n        end: { line: null, column: null }\n      };\n      super();\n      if (typeof place === \"string\") {\n        origin = place;\n        place = void 0;\n      }\n      if (typeof origin === \"string\") {\n        const index2 = origin.indexOf(\":\");\n        if (index2 === -1) {\n          parts[1] = origin;\n        } else {\n          parts[0] = origin.slice(0, index2);\n          parts[1] = origin.slice(index2 + 1);\n        }\n      }\n      if (place) {\n        if (\"type\" in place || \"position\" in place) {\n          if (place.position) {\n            position2 = place.position;\n          }\n        } else if (\"start\" in place || \"end\" in place) {\n          position2 = place;\n        } else if (\"line\" in place || \"column\" in place) {\n          position2.start = place;\n        }\n      }\n      this.name = stringifyPosition(place) || \"1:1\";\n      this.message = typeof reason === \"object\" ? reason.message : reason;\n      this.stack = \"\";\n      if (typeof reason === \"object\" && reason.stack) {\n        this.stack = reason.stack;\n      }\n      this.reason = this.message;\n      this.fatal;\n      this.line = position2.start.line;\n      this.column = position2.start.column;\n      this.position = position2;\n      this.source = parts[0];\n      this.ruleId = parts[1];\n      this.file;\n      this.actual;\n      this.expected;\n      this.url;\n      this.note;\n    }\n  };\n  VFileMessage.prototype.file = \"\";\n  VFileMessage.prototype.name = \"\";\n  VFileMessage.prototype.reason = \"\";\n  VFileMessage.prototype.message = \"\";\n  VFileMessage.prototype.stack = \"\";\n  VFileMessage.prototype.fatal = null;\n  VFileMessage.prototype.column = null;\n  VFileMessage.prototype.line = null;\n  VFileMessage.prototype.source = null;\n  VFileMessage.prototype.ruleId = null;\n  VFileMessage.prototype.position = null;\n\n  // ../node_modules/vfile/lib/minpath.browser.js\n  var path = { basename, dirname, extname, join, sep: \"/\" };\n  function basename(path2, ext) {\n    if (ext !== void 0 && typeof ext !== \"string\") {\n      throw new TypeError('\"ext\" argument must be a string');\n    }\n    assertPath(path2);\n    let start = 0;\n    let end = -1;\n    let index2 = path2.length;\n    let seenNonSlash;\n    if (ext === void 0 || ext.length === 0 || ext.length > path2.length) {\n      while (index2--) {\n        if (path2.charCodeAt(index2) === 47) {\n          if (seenNonSlash) {\n            start = index2 + 1;\n            break;\n          }\n        } else if (end < 0) {\n          seenNonSlash = true;\n          end = index2 + 1;\n        }\n      }\n      return end < 0 ? \"\" : path2.slice(start, end);\n    }\n    if (ext === path2) {\n      return \"\";\n    }\n    let firstNonSlashEnd = -1;\n    let extIndex = ext.length - 1;\n    while (index2--) {\n      if (path2.charCodeAt(index2) === 47) {\n        if (seenNonSlash) {\n          start = index2 + 1;\n          break;\n        }\n      } else {\n        if (firstNonSlashEnd < 0) {\n          seenNonSlash = true;\n          firstNonSlashEnd = index2 + 1;\n        }\n        if (extIndex > -1) {\n          if (path2.charCodeAt(index2) === ext.charCodeAt(extIndex--)) {\n            if (extIndex < 0) {\n              end = index2;\n            }\n          } else {\n            extIndex = -1;\n            end = firstNonSlashEnd;\n          }\n        }\n      }\n    }\n    if (start === end) {\n      end = firstNonSlashEnd;\n    } else if (end < 0) {\n      end = path2.length;\n    }\n    return path2.slice(start, end);\n  }\n  function dirname(path2) {\n    assertPath(path2);\n    if (path2.length === 0) {\n      return \".\";\n    }\n    let end = -1;\n    let index2 = path2.length;\n    let unmatchedSlash;\n    while (--index2) {\n      if (path2.charCodeAt(index2) === 47) {\n        if (unmatchedSlash) {\n          end = index2;\n          break;\n        }\n      } else if (!unmatchedSlash) {\n        unmatchedSlash = true;\n      }\n    }\n    return end < 0 ? path2.charCodeAt(0) === 47 ? \"/\" : \".\" : end === 1 && path2.charCodeAt(0) === 47 ? \"//\" : path2.slice(0, end);\n  }\n  function extname(path2) {\n    assertPath(path2);\n    let index2 = path2.length;\n    let end = -1;\n    let startPart = 0;\n    let startDot = -1;\n    let preDotState = 0;\n    let unmatchedSlash;\n    while (index2--) {\n      const code = path2.charCodeAt(index2);\n      if (code === 47) {\n        if (unmatchedSlash) {\n          startPart = index2 + 1;\n          break;\n        }\n        continue;\n      }\n      if (end < 0) {\n        unmatchedSlash = true;\n        end = index2 + 1;\n      }\n      if (code === 46) {\n        if (startDot < 0) {\n          startDot = index2;\n        } else if (preDotState !== 1) {\n          preDotState = 1;\n        }\n      } else if (startDot > -1) {\n        preDotState = -1;\n      }\n    }\n    if (startDot < 0 || end < 0 || // We saw a non-dot character immediately before the dot.\n    preDotState === 0 || // The (right-most) trimmed path component is exactly `..`.\n    preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n      return \"\";\n    }\n    return path2.slice(startDot, end);\n  }\n  function join(...segments) {\n    let index2 = -1;\n    let joined;\n    while (++index2 < segments.length) {\n      assertPath(segments[index2]);\n      if (segments[index2]) {\n        joined = joined === void 0 ? segments[index2] : joined + \"/\" + segments[index2];\n      }\n    }\n    return joined === void 0 ? \".\" : normalize(joined);\n  }\n  function normalize(path2) {\n    assertPath(path2);\n    const absolute = path2.charCodeAt(0) === 47;\n    let value = normalizeString(path2, !absolute);\n    if (value.length === 0 && !absolute) {\n      value = \".\";\n    }\n    if (value.length > 0 && path2.charCodeAt(path2.length - 1) === 47) {\n      value += \"/\";\n    }\n    return absolute ? \"/\" + value : value;\n  }\n  function normalizeString(path2, allowAboveRoot) {\n    let result = \"\";\n    let lastSegmentLength = 0;\n    let lastSlash = -1;\n    let dots = 0;\n    let index2 = -1;\n    let code;\n    let lastSlashIndex;\n    while (++index2 <= path2.length) {\n      if (index2 < path2.length) {\n        code = path2.charCodeAt(index2);\n      } else if (code === 47) {\n        break;\n      } else {\n        code = 47;\n      }\n      if (code === 47) {\n        if (lastSlash === index2 - 1 || dots === 1) {\n        } else if (lastSlash !== index2 - 1 && dots === 2) {\n          if (result.length < 2 || lastSegmentLength !== 2 || result.charCodeAt(result.length - 1) !== 46 || result.charCodeAt(result.length - 2) !== 46) {\n            if (result.length > 2) {\n              lastSlashIndex = result.lastIndexOf(\"/\");\n              if (lastSlashIndex !== result.length - 1) {\n                if (lastSlashIndex < 0) {\n                  result = \"\";\n                  lastSegmentLength = 0;\n                } else {\n                  result = result.slice(0, lastSlashIndex);\n                  lastSegmentLength = result.length - 1 - result.lastIndexOf(\"/\");\n                }\n                lastSlash = index2;\n                dots = 0;\n                continue;\n              }\n            } else if (result.length > 0) {\n              result = \"\";\n              lastSegmentLength = 0;\n              lastSlash = index2;\n              dots = 0;\n              continue;\n            }\n          }\n          if (allowAboveRoot) {\n            result = result.length > 0 ? result + \"/..\" : \"..\";\n            lastSegmentLength = 2;\n          }\n        } else {\n          if (result.length > 0) {\n            result += \"/\" + path2.slice(lastSlash + 1, index2);\n          } else {\n            result = path2.slice(lastSlash + 1, index2);\n          }\n          lastSegmentLength = index2 - lastSlash - 1;\n        }\n        lastSlash = index2;\n        dots = 0;\n      } else if (code === 46 && dots > -1) {\n        dots++;\n      } else {\n        dots = -1;\n      }\n    }\n    return result;\n  }\n  function assertPath(path2) {\n    if (typeof path2 !== \"string\") {\n      throw new TypeError(\n        \"Path must be a string. Received \" + JSON.stringify(path2)\n      );\n    }\n  }\n\n  // ../node_modules/vfile/lib/minproc.browser.js\n  var proc = { cwd };\n  function cwd() {\n    return \"/\";\n  }\n\n  // ../node_modules/vfile/lib/minurl.shared.js\n  function isUrl(fileUrlOrPath) {\n    return fileUrlOrPath !== null && typeof fileUrlOrPath === \"object\" && // @ts-expect-error: indexable.\n    fileUrlOrPath.href && // @ts-expect-error: indexable.\n    fileUrlOrPath.origin;\n  }\n\n  // ../node_modules/vfile/lib/minurl.browser.js\n  function urlToPath(path2) {\n    if (typeof path2 === \"string\") {\n      path2 = new URL(path2);\n    } else if (!isUrl(path2)) {\n      const error = new TypeError(\n        'The \"path\" argument must be of type string or an instance of URL. Received `' + path2 + \"`\"\n      );\n      error.code = \"ERR_INVALID_ARG_TYPE\";\n      throw error;\n    }\n    if (path2.protocol !== \"file:\") {\n      const error = new TypeError(\"The URL must be of scheme file\");\n      error.code = \"ERR_INVALID_URL_SCHEME\";\n      throw error;\n    }\n    return getPathFromURLPosix(path2);\n  }\n  function getPathFromURLPosix(url) {\n    if (url.hostname !== \"\") {\n      const error = new TypeError(\n        'File URL host must be \"localhost\" or empty on darwin'\n      );\n      error.code = \"ERR_INVALID_FILE_URL_HOST\";\n      throw error;\n    }\n    const pathname = url.pathname;\n    let index2 = -1;\n    while (++index2 < pathname.length) {\n      if (pathname.charCodeAt(index2) === 37 && pathname.charCodeAt(index2 + 1) === 50) {\n        const third = pathname.charCodeAt(index2 + 2);\n        if (third === 70 || third === 102) {\n          const error = new TypeError(\n            \"File URL path must not include encoded / characters\"\n          );\n          error.code = \"ERR_INVALID_FILE_URL_PATH\";\n          throw error;\n        }\n      }\n    }\n    return decodeURIComponent(pathname);\n  }\n\n  // ../node_modules/vfile/lib/index.js\n  var order = [\"history\", \"path\", \"basename\", \"stem\", \"extname\", \"dirname\"];\n  var VFile = class {\n    /**\n     * Create a new virtual file.\n     *\n     * `options` is treated as:\n     *\n     * *   `string` or `Buffer` — `{value: options}`\n     * *   `URL` — `{path: options}`\n     * *   `VFile` — shallow copies its data over to the new file\n     * *   `object` — all fields are shallow copied over to the new file\n     *\n     * Path related fields are set in the following order (least specific to\n     * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n     * `dirname`.\n     *\n     * You cannot set `dirname` or `extname` without setting either `history`,\n     * `path`, `basename`, or `stem` too.\n     *\n     * @param {Compatible | null | undefined} [value]\n     *   File value.\n     * @returns\n     *   New instance.\n     */\n    constructor(value) {\n      let options;\n      if (!value) {\n        options = {};\n      } else if (typeof value === \"string\" || buffer(value)) {\n        options = { value };\n      } else if (isUrl(value)) {\n        options = { path: value };\n      } else {\n        options = value;\n      }\n      this.data = {};\n      this.messages = [];\n      this.history = [];\n      this.cwd = proc.cwd();\n      this.value;\n      this.stored;\n      this.result;\n      this.map;\n      let index2 = -1;\n      while (++index2 < order.length) {\n        const prop2 = order[index2];\n        if (prop2 in options && options[prop2] !== void 0 && options[prop2] !== null) {\n          this[prop2] = prop2 === \"history\" ? [...options[prop2]] : options[prop2];\n        }\n      }\n      let prop;\n      for (prop in options) {\n        if (!order.includes(prop)) {\n          this[prop] = options[prop];\n        }\n      }\n    }\n    /**\n     * Get the full path (example: `'~/index.min.js'`).\n     *\n     * @returns {string}\n     */\n    get path() {\n      return this.history[this.history.length - 1];\n    }\n    /**\n     * Set the full path (example: `'~/index.min.js'`).\n     *\n     * Cannot be nullified.\n     * You can set a file URL (a `URL` object with a `file:` protocol) which will\n     * be turned into a path with `url.fileURLToPath`.\n     *\n     * @param {string | URL} path\n     */\n    set path(path2) {\n      if (isUrl(path2)) {\n        path2 = urlToPath(path2);\n      }\n      assertNonEmpty(path2, \"path\");\n      if (this.path !== path2) {\n        this.history.push(path2);\n      }\n    }\n    /**\n     * Get the parent path (example: `'~'`).\n     */\n    get dirname() {\n      return typeof this.path === \"string\" ? path.dirname(this.path) : void 0;\n    }\n    /**\n     * Set the parent path (example: `'~'`).\n     *\n     * Cannot be set if there’s no `path` yet.\n     */\n    set dirname(dirname2) {\n      assertPath2(this.basename, \"dirname\");\n      this.path = path.join(dirname2 || \"\", this.basename);\n    }\n    /**\n     * Get the basename (including extname) (example: `'index.min.js'`).\n     */\n    get basename() {\n      return typeof this.path === \"string\" ? path.basename(this.path) : void 0;\n    }\n    /**\n     * Set basename (including extname) (`'index.min.js'`).\n     *\n     * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n     * on windows).\n     * Cannot be nullified (use `file.path = file.dirname` instead).\n     */\n    set basename(basename2) {\n      assertNonEmpty(basename2, \"basename\");\n      assertPart(basename2, \"basename\");\n      this.path = path.join(this.dirname || \"\", basename2);\n    }\n    /**\n     * Get the extname (including dot) (example: `'.js'`).\n     */\n    get extname() {\n      return typeof this.path === \"string\" ? path.extname(this.path) : void 0;\n    }\n    /**\n     * Set the extname (including dot) (example: `'.js'`).\n     *\n     * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n     * on windows).\n     * Cannot be set if there’s no `path` yet.\n     */\n    set extname(extname2) {\n      assertPart(extname2, \"extname\");\n      assertPath2(this.dirname, \"extname\");\n      if (extname2) {\n        if (extname2.charCodeAt(0) !== 46) {\n          throw new Error(\"`extname` must start with `.`\");\n        }\n        if (extname2.includes(\".\", 1)) {\n          throw new Error(\"`extname` cannot contain multiple dots\");\n        }\n      }\n      this.path = path.join(this.dirname, this.stem + (extname2 || \"\"));\n    }\n    /**\n     * Get the stem (basename w/o extname) (example: `'index.min'`).\n     */\n    get stem() {\n      return typeof this.path === \"string\" ? path.basename(this.path, this.extname) : void 0;\n    }\n    /**\n     * Set the stem (basename w/o extname) (example: `'index.min'`).\n     *\n     * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n     * on windows).\n     * Cannot be nullified (use `file.path = file.dirname` instead).\n     */\n    set stem(stem) {\n      assertNonEmpty(stem, \"stem\");\n      assertPart(stem, \"stem\");\n      this.path = path.join(this.dirname || \"\", stem + (this.extname || \"\"));\n    }\n    /**\n     * Serialize the file.\n     *\n     * @param {BufferEncoding | null | undefined} [encoding='utf8']\n     *   Character encoding to understand `value` as when it’s a `Buffer`\n     *   (default: `'utf8'`).\n     * @returns {string}\n     *   Serialized file.\n     */\n    toString(encoding) {\n      return (this.value || \"\").toString(encoding || void 0);\n    }\n    /**\n     * Create a warning message associated with the file.\n     *\n     * Its `fatal` is set to `false` and `file` is set to the current file path.\n     * Its added to `file.messages`.\n     *\n     * @param {string | Error | VFileMessage} reason\n     *   Reason for message, uses the stack and message of the error if given.\n     * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n     *   Place in file where the message occurred.\n     * @param {string | null | undefined} [origin]\n     *   Place in code where the message originates (example:\n     *   `'my-package:my-rule'` or `'my-rule'`).\n     * @returns {VFileMessage}\n     *   Message.\n     */\n    message(reason, place, origin) {\n      const message = new VFileMessage(reason, place, origin);\n      if (this.path) {\n        message.name = this.path + \":\" + message.name;\n        message.file = this.path;\n      }\n      message.fatal = false;\n      this.messages.push(message);\n      return message;\n    }\n    /**\n     * Create an info message associated with the file.\n     *\n     * Its `fatal` is set to `null` and `file` is set to the current file path.\n     * Its added to `file.messages`.\n     *\n     * @param {string | Error | VFileMessage} reason\n     *   Reason for message, uses the stack and message of the error if given.\n     * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n     *   Place in file where the message occurred.\n     * @param {string | null | undefined} [origin]\n     *   Place in code where the message originates (example:\n     *   `'my-package:my-rule'` or `'my-rule'`).\n     * @returns {VFileMessage}\n     *   Message.\n     */\n    info(reason, place, origin) {\n      const message = this.message(reason, place, origin);\n      message.fatal = null;\n      return message;\n    }\n    /**\n     * Create a fatal error associated with the file.\n     *\n     * Its `fatal` is set to `true` and `file` is set to the current file path.\n     * Its added to `file.messages`.\n     *\n     * > 👉 **Note**: a fatal error means that a file is no longer processable.\n     *\n     * @param {string | Error | VFileMessage} reason\n     *   Reason for message, uses the stack and message of the error if given.\n     * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n     *   Place in file where the message occurred.\n     * @param {string | null | undefined} [origin]\n     *   Place in code where the message originates (example:\n     *   `'my-package:my-rule'` or `'my-rule'`).\n     * @returns {never}\n     *   Message.\n     * @throws {VFileMessage}\n     *   Message.\n     */\n    fail(reason, place, origin) {\n      const message = this.message(reason, place, origin);\n      message.fatal = true;\n      throw message;\n    }\n  };\n  function assertPart(part, name) {\n    if (part && part.includes(path.sep)) {\n      throw new Error(\n        \"`\" + name + \"` cannot be a path: did not expect `\" + path.sep + \"`\"\n      );\n    }\n  }\n  function assertNonEmpty(part, name) {\n    if (!part) {\n      throw new Error(\"`\" + name + \"` cannot be empty\");\n    }\n  }\n  function assertPath2(path2, name) {\n    if (!path2) {\n      throw new Error(\"Setting `\" + name + \"` requires `path` to be set too\");\n    }\n  }\n  function buffer(value) {\n    return (0, import_is_buffer.default)(value);\n  }\n\n  // ../node_modules/unified/lib/index.js\n  var unified = base().freeze();\n  var own = {}.hasOwnProperty;\n  function base() {\n    const transformers = trough();\n    const attachers = [];\n    let namespace = {};\n    let frozen;\n    let freezeIndex = -1;\n    processor2.data = data;\n    processor2.Parser = void 0;\n    processor2.Compiler = void 0;\n    processor2.freeze = freeze;\n    processor2.attachers = attachers;\n    processor2.use = use;\n    processor2.parse = parse4;\n    processor2.stringify = stringify;\n    processor2.run = run;\n    processor2.runSync = runSync;\n    processor2.process = process;\n    processor2.processSync = processSync;\n    return processor2;\n    function processor2() {\n      const destination = base();\n      let index2 = -1;\n      while (++index2 < attachers.length) {\n        destination.use(...attachers[index2]);\n      }\n      destination.data((0, import_extend.default)(true, {}, namespace));\n      return destination;\n    }\n    function data(key, value) {\n      if (typeof key === \"string\") {\n        if (arguments.length === 2) {\n          assertUnfrozen(\"data\", frozen);\n          namespace[key] = value;\n          return processor2;\n        }\n        return own.call(namespace, key) && namespace[key] || null;\n      }\n      if (key) {\n        assertUnfrozen(\"data\", frozen);\n        namespace = key;\n        return processor2;\n      }\n      return namespace;\n    }\n    function freeze() {\n      if (frozen) {\n        return processor2;\n      }\n      while (++freezeIndex < attachers.length) {\n        const [attacher, ...options] = attachers[freezeIndex];\n        if (options[0] === false) {\n          continue;\n        }\n        if (options[0] === true) {\n          options[0] = void 0;\n        }\n        const transformer = attacher.call(processor2, ...options);\n        if (typeof transformer === \"function\") {\n          transformers.use(transformer);\n        }\n      }\n      frozen = true;\n      freezeIndex = Number.POSITIVE_INFINITY;\n      return processor2;\n    }\n    function use(value, ...options) {\n      let settings;\n      assertUnfrozen(\"use\", frozen);\n      if (value === null || value === void 0) {\n      } else if (typeof value === \"function\") {\n        addPlugin(value, ...options);\n      } else if (typeof value === \"object\") {\n        if (Array.isArray(value)) {\n          addList(value);\n        } else {\n          addPreset(value);\n        }\n      } else {\n        throw new TypeError(\"Expected usable value, not `\" + value + \"`\");\n      }\n      if (settings) {\n        namespace.settings = Object.assign(namespace.settings || {}, settings);\n      }\n      return processor2;\n      function add(value2) {\n        if (typeof value2 === \"function\") {\n          addPlugin(value2);\n        } else if (typeof value2 === \"object\") {\n          if (Array.isArray(value2)) {\n            const [plugin, ...options2] = value2;\n            addPlugin(plugin, ...options2);\n          } else {\n            addPreset(value2);\n          }\n        } else {\n          throw new TypeError(\"Expected usable value, not `\" + value2 + \"`\");\n        }\n      }\n      function addPreset(result) {\n        addList(result.plugins);\n        if (result.settings) {\n          settings = Object.assign(settings || {}, result.settings);\n        }\n      }\n      function addList(plugins) {\n        let index2 = -1;\n        if (plugins === null || plugins === void 0) {\n        } else if (Array.isArray(plugins)) {\n          while (++index2 < plugins.length) {\n            const thing = plugins[index2];\n            add(thing);\n          }\n        } else {\n          throw new TypeError(\"Expected a list of plugins, not `\" + plugins + \"`\");\n        }\n      }\n      function addPlugin(plugin, value2) {\n        let index2 = -1;\n        let entry;\n        while (++index2 < attachers.length) {\n          if (attachers[index2][0] === plugin) {\n            entry = attachers[index2];\n            break;\n          }\n        }\n        if (entry) {\n          if (isPlainObject(entry[1]) && isPlainObject(value2)) {\n            value2 = (0, import_extend.default)(true, entry[1], value2);\n          }\n          entry[1] = value2;\n        } else {\n          attachers.push([...arguments]);\n        }\n      }\n    }\n    function parse4(doc) {\n      processor2.freeze();\n      const file = vfile(doc);\n      const Parser = processor2.Parser;\n      assertParser(\"parse\", Parser);\n      if (newable(Parser, \"parse\")) {\n        return new Parser(String(file), file).parse();\n      }\n      return Parser(String(file), file);\n    }\n    function stringify(node, doc) {\n      processor2.freeze();\n      const file = vfile(doc);\n      const Compiler = processor2.Compiler;\n      assertCompiler(\"stringify\", Compiler);\n      assertNode(node);\n      if (newable(Compiler, \"compile\")) {\n        return new Compiler(node, file).compile();\n      }\n      return Compiler(node, file);\n    }\n    function run(node, doc, callback) {\n      assertNode(node);\n      processor2.freeze();\n      if (!callback && typeof doc === \"function\") {\n        callback = doc;\n        doc = void 0;\n      }\n      if (!callback) {\n        return new Promise(executor);\n      }\n      executor(null, callback);\n      function executor(resolve, reject) {\n        transformers.run(node, vfile(doc), done);\n        function done(error, tree, file) {\n          tree = tree || node;\n          if (error) {\n            reject(error);\n          } else if (resolve) {\n            resolve(tree);\n          } else {\n            callback(null, tree, file);\n          }\n        }\n      }\n    }\n    function runSync(node, file) {\n      let result;\n      let complete;\n      processor2.run(node, file, done);\n      assertDone(\"runSync\", \"run\", complete);\n      return result;\n      function done(error, tree) {\n        bail(error);\n        result = tree;\n        complete = true;\n      }\n    }\n    function process(doc, callback) {\n      processor2.freeze();\n      assertParser(\"process\", processor2.Parser);\n      assertCompiler(\"process\", processor2.Compiler);\n      if (!callback) {\n        return new Promise(executor);\n      }\n      executor(null, callback);\n      function executor(resolve, reject) {\n        const file = vfile(doc);\n        processor2.run(processor2.parse(file), file, (error, tree, file2) => {\n          if (error || !tree || !file2) {\n            done(error);\n          } else {\n            const result = processor2.stringify(tree, file2);\n            if (result === void 0 || result === null) {\n            } else if (looksLikeAVFileValue(result)) {\n              file2.value = result;\n            } else {\n              file2.result = result;\n            }\n            done(error, file2);\n          }\n        });\n        function done(error, file2) {\n          if (error || !file2) {\n            reject(error);\n          } else if (resolve) {\n            resolve(file2);\n          } else {\n            callback(null, file2);\n          }\n        }\n      }\n    }\n    function processSync(doc) {\n      let complete;\n      processor2.freeze();\n      assertParser(\"processSync\", processor2.Parser);\n      assertCompiler(\"processSync\", processor2.Compiler);\n      const file = vfile(doc);\n      processor2.process(file, done);\n      assertDone(\"processSync\", \"process\", complete);\n      return file;\n      function done(error) {\n        complete = true;\n        bail(error);\n      }\n    }\n  }\n  function newable(value, name) {\n    return typeof value === \"function\" && // Prototypes do exist.\n    // type-coverage:ignore-next-line\n    value.prototype && // A function with keys in its prototype is probably a constructor.\n    // Classes’ prototype methods are not enumerable, so we check if some value\n    // exists in the prototype.\n    // type-coverage:ignore-next-line\n    (keys(value.prototype) || name in value.prototype);\n  }\n  function keys(value) {\n    let key;\n    for (key in value) {\n      if (own.call(value, key)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function assertParser(name, value) {\n    if (typeof value !== \"function\") {\n      throw new TypeError(\"Cannot `\" + name + \"` without `Parser`\");\n    }\n  }\n  function assertCompiler(name, value) {\n    if (typeof value !== \"function\") {\n      throw new TypeError(\"Cannot `\" + name + \"` without `Compiler`\");\n    }\n  }\n  function assertUnfrozen(name, frozen) {\n    if (frozen) {\n      throw new Error(\n        \"Cannot call `\" + name + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\"\n      );\n    }\n  }\n  function assertNode(node) {\n    if (!isPlainObject(node) || typeof node.type !== \"string\") {\n      throw new TypeError(\"Expected node, got `\" + node + \"`\");\n    }\n  }\n  function assertDone(name, asyncName, complete) {\n    if (!complete) {\n      throw new Error(\n        \"`\" + name + \"` finished async. Use `\" + asyncName + \"` instead\"\n      );\n    }\n  }\n  function vfile(value) {\n    return looksLikeAVFile(value) ? value : new VFile(value);\n  }\n  function looksLikeAVFile(value) {\n    return Boolean(\n      value && typeof value === \"object\" && \"message\" in value && \"messages\" in value\n    );\n  }\n  function looksLikeAVFileValue(value) {\n    return typeof value === \"string\" || (0, import_is_buffer2.default)(value);\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/amsart/index.js\n  var macros = {\n    author: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    address: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    curraddr: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    email: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    title: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    urladdr: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    }\n  };\n  var environments = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/cleveref/index.js\n  var macros2 = {\n    cref: { signature: \"s m\" },\n    Cref: { signature: \"s m\" },\n    crefrange: { signature: \"s m m\" },\n    Crefrange: { signature: \"s m m\" },\n    cpageref: { signature: \"s m\" },\n    Cpageref: { signature: \"s m\" },\n    ref: { signature: \"m\" },\n    pageref: { signature: \"m\" },\n    namecref: { signature: \"m\" },\n    nameCref: { signature: \"m\" },\n    lcnamecref: { signature: \"m\" },\n    namecrefs: { signature: \"m\" },\n    nameCrefs: { signature: \"m\" },\n    lcnamecrefs: { signature: \"m\" },\n    labelcref: { signature: \"m\" },\n    labelcpageref: { signature: \"m\" },\n    crefalias: { signature: \"m m\" },\n    crefname: { signature: \"m m m\" },\n    // XXX there are many more obscure commands to add here\n    // https://ctan.org/pkg/cleveref\n    crefdefaultlabelformat: { signature: \"m\" },\n    crefrangeconjunction: { signature: \"m\" }\n  };\n  var environments2 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-builder/index.js\n  var BRACES_MAP = {\n    \"*\": { openMark: \"\", closeMark: \"\" },\n    \"{\": { openMark: \"{\", closeMark: \"}\" },\n    \"[\": { openMark: \"[\", closeMark: \"]\" },\n    \"(\": { openMark: \"(\", closeMark: \")\" },\n    \"<\": { openMark: \"<\", closeMark: \">\" }\n  };\n  var CLOSE_BRACES = new Set(\n    Object.values(BRACES_MAP).map((x) => x.closeMark).filter((x) => x)\n  );\n  function bracesToOpenAndCloseMarks(braces) {\n    const ret = [];\n    for (const char of braces.split(\"\")) {\n      if (CLOSE_BRACES.has(char)) {\n        continue;\n      }\n      const braces2 = BRACES_MAP[char];\n      if (braces2 == null) {\n        throw new Error(`Unknown open/close mark type \"${char}\"`);\n      }\n      ret.push(braces2);\n    }\n    return ret;\n  }\n  function arg(args2, special) {\n    if (args2 == null) {\n      return { type: \"argument\", content: [], openMark: \"\", closeMark: \"\" };\n    }\n    if (typeof args2 === \"string\") {\n      args2 = s(args2);\n    }\n    if (!Array.isArray(args2) && args2.type === \"argument\") {\n      return args2;\n    }\n    let openMark = (special == null ? void 0 : special.openMark) ?? \"{\";\n    let closeMark = (special == null ? void 0 : special.closeMark) ?? \"}\";\n    if (special == null ? void 0 : special.braces) {\n      const braces = bracesToOpenAndCloseMarks(special.braces);\n      if (braces[0]) {\n        openMark = braces[0].openMark;\n        closeMark = braces[0].closeMark;\n      }\n    }\n    if (!Array.isArray(args2)) {\n      args2 = [args2];\n    }\n    return { type: \"argument\", content: args2, openMark, closeMark };\n  }\n  function s(value) {\n    if (typeof value === \"string\") {\n      return { type: \"string\", content: value };\n    }\n    return value;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-print-raw/index.js\n  var linebreak = Symbol(\"linebreak\");\n  var ESCAPE = \"\\\\\";\n  function _printRaw(node) {\n    if (typeof node === \"string\") {\n      return [node];\n    }\n    if (Array.isArray(node)) {\n      return [].concat(\n        ...node.map((n) => _printRaw(n))\n      );\n    }\n    let argsString, escape;\n    switch (node.type) {\n      case \"root\":\n        return _printRaw(node.content);\n      case \"argument\":\n        return [node.openMark, ..._printRaw(node.content), node.closeMark];\n      case \"comment\":\n        let suffix = node.suffixParbreak ? \"\" : linebreak;\n        let leadingWhitespace = \"\";\n        if (node.sameline && node.leadingWhitespace) {\n          leadingWhitespace = \" \";\n        }\n        if (node.sameline) {\n          return [\n            leadingWhitespace,\n            \"%\",\n            ..._printRaw(node.content),\n            suffix\n          ];\n        }\n        return [linebreak, \"%\", ..._printRaw(node.content), suffix];\n      case \"environment\":\n      case \"mathenv\":\n      case \"verbatim\":\n        let env = _printRaw(node.env);\n        let envStart = [ESCAPE + \"begin{\", ...env, \"}\"];\n        let envEnd = [ESCAPE + \"end{\", ...env, \"}\"];\n        argsString = node.args == null ? [] : _printRaw(node.args);\n        return [\n          ...envStart,\n          ...argsString,\n          ..._printRaw(node.content),\n          ...envEnd\n        ];\n      case \"displaymath\":\n        return [ESCAPE + \"[\", ..._printRaw(node.content), ESCAPE + \"]\"];\n      case \"group\":\n        return [\"{\", ..._printRaw(node.content), \"}\"];\n      case \"inlinemath\":\n        return [\"$\", ..._printRaw(node.content), \"$\"];\n      case \"macro\":\n        argsString = node.args == null ? [] : _printRaw(node.args);\n        escape = node.escapeToken == null ? ESCAPE : node.escapeToken;\n        return [escape, ..._printRaw(node.content), ...argsString];\n      case \"parbreak\":\n        return [linebreak, linebreak];\n      case \"string\":\n        return [node.content];\n      case \"verb\":\n        return [\n          ESCAPE,\n          node.env,\n          node.escape,\n          ..._printRaw(node.content),\n          node.escape\n        ];\n      case \"whitespace\":\n        return [\" \"];\n      default:\n        console.warn(\n          \"Cannot find render for node \",\n          node,\n          `(of type ${typeof node})`\n        );\n        return [\"\" + node];\n    }\n  }\n  function printRaw(node, options) {\n    const asArray = options != null ? options.asArray : false;\n    const printedTokens = _printRaw(node);\n    if (asArray) {\n      return printedTokens;\n    }\n    return printedTokens.map((x) => x === linebreak ? \"\\n\" : x).join(\"\");\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-match/index.js\n  function createMacroMatcher(macros18) {\n    const macrosHash = Array.isArray(macros18) ? macros18.length > 0 ? typeof macros18[0] === \"string\" ? Object.fromEntries(\n      macros18.map((macro2) => {\n        if (typeof macro2 !== \"string\") {\n          throw new Error(\"Wrong branch of map function\");\n        }\n        return [macro2, {}];\n      })\n    ) : Object.fromEntries(\n      macros18.map((macro2) => {\n        if (typeof macro2 === \"string\") {\n          throw new Error(\"Wrong branch of map function\");\n        }\n        if (macro2.escapeToken != null) {\n          return [\n            macro2.content,\n            { escapeToken: macro2.escapeToken }\n          ];\n        }\n        return [macro2.content, {}];\n      })\n    ) : {} : macros18;\n    return function matchAgainstMacros(node) {\n      if (node == null || node.type !== \"macro\") {\n        return false;\n      }\n      const spec = macrosHash[node.content];\n      if (!spec) {\n        return false;\n      }\n      if (typeof spec === \"object\" && \"escapeToken\" in spec) {\n        return spec.escapeToken == null || spec.escapeToken === node.escapeToken;\n      }\n      return true;\n    };\n  }\n  function createEnvironmentMatcher(macros18) {\n    const environmentsHash = Array.isArray(macros18) ? Object.fromEntries(\n      macros18.map((str) => {\n        return [str, {}];\n      })\n    ) : macros18;\n    return function matchAgainstEnvironments(node) {\n      if (!match.anyEnvironment(node)) {\n        return false;\n      }\n      const envName = printRaw(node.env);\n      const spec = environmentsHash[envName];\n      if (!spec) {\n        return false;\n      }\n      return true;\n    };\n  }\n  var match = {\n    macro(node, macroName) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"macro\" && (macroName == null || node.content === macroName);\n    },\n    anyMacro(node) {\n      return match.macro(node);\n    },\n    environment(node, envName) {\n      if (node == null) {\n        return false;\n      }\n      return (node.type === \"environment\" || node.type === \"mathenv\") && (envName == null || printRaw(node.env) === envName);\n    },\n    anyEnvironment(node) {\n      return match.environment(node);\n    },\n    comment(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"comment\";\n    },\n    parbreak(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"parbreak\";\n    },\n    whitespace(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"whitespace\";\n    },\n    /**\n     * Matches whitespace or a comment with leading whitespace.\n     */\n    whitespaceLike(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"whitespace\" || node.type === \"whitespace\" && node.leadingWhitespace === true;\n    },\n    string(node, value) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"string\" && (value == null || node.content === value);\n    },\n    anyString(node) {\n      return match.string(node);\n    },\n    group(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"group\";\n    },\n    argument(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"argument\";\n    },\n    blankArgument(node) {\n      if (!match.argument(node)) {\n        return false;\n      }\n      return node.openMark === \"\" && node.closeMark === \"\" && node.content.length === 0;\n    },\n    math(node) {\n      if (node == null) {\n        return false;\n      }\n      return node.type === \"displaymath\" || node.type === \"inlinemath\";\n    },\n    createMacroMatcher,\n    createEnvironmentMatcher\n  };\n  var {\n    anyEnvironment,\n    anyMacro,\n    anyString,\n    argument,\n    blankArgument,\n    comment,\n    environment,\n    group,\n    macro,\n    math,\n    parbreak,\n    string,\n    whitespace\n  } = match;\n\n  // ../node_modules/@unified-latex/unified-latex-util-visit/index.js\n  function listMathChildren(node) {\n    const NULL_RETURN = { enter: [], leave: [] };\n    if (Array.isArray(node)) {\n      return NULL_RETURN;\n    }\n    if (match.math(node)) {\n      return { enter: [\"content\"], leave: [] };\n    }\n    const renderInfo = node._renderInfo || {};\n    if (renderInfo.inMathMode == null) {\n      return NULL_RETURN;\n    }\n    if (match.macro(node)) {\n      if (renderInfo.inMathMode === true) {\n        return { enter: [\"args\"], leave: [] };\n      } else if (renderInfo.inMathMode === false) {\n        return { enter: [], leave: [\"args\"] };\n      }\n    }\n    if (match.environment(node)) {\n      if (renderInfo.inMathMode === true) {\n        return { enter: [\"content\"], leave: [] };\n      } else {\n        return { enter: [], leave: [\"content\"] };\n      }\n    }\n    return NULL_RETURN;\n  }\n  var CONTINUE = Symbol(\"continue\");\n  var SKIP = Symbol(\"skip\");\n  var EXIT = Symbol(\"exit\");\n  var DEFAULT_CONTEXT = {\n    inMathMode: false,\n    hasMathModeAncestor: false\n  };\n  function visit(tree, visitor, options) {\n    const {\n      startingContext = DEFAULT_CONTEXT,\n      test = () => true,\n      includeArrays = false\n    } = options || {};\n    let enter;\n    let leave;\n    if (typeof visitor === \"function\") {\n      enter = visitor;\n    } else if (visitor && typeof visitor === \"object\") {\n      enter = visitor.enter;\n      leave = visitor.leave;\n    }\n    walk(tree, {\n      key: void 0,\n      index: void 0,\n      parents: [],\n      containingArray: void 0,\n      context: { ...startingContext }\n    });\n    function walk(node, { key, index: index2, parents, context, containingArray }) {\n      const nodePassesTest = includeArrays ? test(node, { key, index: index2, parents, context, containingArray }) : !Array.isArray(node) && test(node, { key, index: index2, parents, context, containingArray });\n      const result = enter && nodePassesTest ? toResult(\n        enter(node, {\n          key,\n          index: index2,\n          parents,\n          context,\n          containingArray\n        })\n      ) : [CONTINUE];\n      if (result[0] === EXIT) {\n        return result;\n      }\n      if (result[0] === SKIP) {\n        return leave && nodePassesTest ? toResult(\n          leave(node, {\n            key,\n            index: index2,\n            parents,\n            context,\n            containingArray\n          })\n        ) : result;\n      }\n      if (Array.isArray(node)) {\n        for (let index22 = 0; index22 > -1 && index22 < node.length; index22++) {\n          const item = node[index22];\n          const result2 = walk(item, {\n            key,\n            index: index22,\n            parents,\n            context,\n            containingArray: node\n          });\n          if (result2[0] === EXIT) {\n            return result2;\n          }\n          if (typeof result2[1] === \"number\") {\n            index22 = result2[1] - 1;\n          }\n        }\n      } else {\n        let childProps = [\"content\", \"args\"];\n        switch (node.type) {\n          case \"macro\":\n            childProps = [\"args\"];\n            break;\n          case \"comment\":\n          case \"string\":\n          case \"verb\":\n          case \"verbatim\":\n            childProps = [];\n            break;\n        }\n        const mathModeProps = listMathChildren(node);\n        for (const key2 of childProps) {\n          const value = node[key2];\n          const grandparents = [node].concat(parents);\n          if (value == null) {\n            continue;\n          }\n          const newContext = { ...context };\n          if (mathModeProps.enter.includes(key2)) {\n            newContext.inMathMode = true;\n            newContext.hasMathModeAncestor = true;\n          } else if (mathModeProps.leave.includes(key2)) {\n            newContext.inMathMode = false;\n          }\n          const result2 = walk(value, {\n            key: key2,\n            index: void 0,\n            parents: grandparents,\n            context: newContext,\n            containingArray: void 0\n          });\n          if (result2[0] === EXIT) {\n            return result2;\n          }\n        }\n      }\n      return leave && nodePassesTest ? toResult(\n        leave(node, {\n          key,\n          index: index2,\n          parents,\n          context,\n          containingArray\n        })\n      ) : result;\n    }\n  }\n  function toResult(value) {\n    if (value == null) {\n      return [CONTINUE];\n    }\n    if (Array.isArray(value)) {\n      return value;\n    }\n    if (typeof value === \"number\") {\n      return [CONTINUE, value];\n    }\n    return [value];\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-render-info/index.js\n  function updateRenderInfo(node, renderInfo) {\n    if (renderInfo != null) {\n      node._renderInfo = { ...node._renderInfo || {}, ...renderInfo };\n    }\n    return node;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-trim/index.js\n  function trim(nodes) {\n    if (!Array.isArray(nodes)) {\n      console.warn(\"Trying to trim a non-array ast\", nodes);\n      return nodes;\n    }\n    const { trimmedStart } = trimStart(nodes);\n    const { trimmedEnd } = trimEnd(nodes);\n    return { trimmedStart, trimmedEnd };\n  }\n  function trimStart(nodes) {\n    const { start } = amountOfLeadingAndTrailingWhitespace(nodes);\n    nodes.splice(0, start);\n    for (const leadingToken of nodes) {\n      if (!match.comment(leadingToken)) {\n        break;\n      }\n      if (leadingToken.leadingWhitespace || leadingToken.sameline) {\n        leadingToken.leadingWhitespace = false;\n      }\n      if (start > 0 && leadingToken.sameline) {\n        leadingToken.sameline = false;\n      }\n    }\n    return { trimmedStart: start };\n  }\n  function trimEnd(nodes) {\n    const { end } = amountOfLeadingAndTrailingWhitespace(nodes);\n    nodes.splice(nodes.length - end, end);\n    for (let i = nodes.length - 1; i >= 0; i--) {\n      const trailingToken = nodes[i];\n      if (!match.comment(trailingToken)) {\n        break;\n      }\n      delete trailingToken.suffixParbreak;\n      if (match.comment(trailingToken) && trailingToken.leadingWhitespace && !trailingToken.sameline) {\n        trailingToken.leadingWhitespace = false;\n      }\n    }\n    return { trimmedEnd: end };\n  }\n  function amountOfLeadingAndTrailingWhitespace(ast) {\n    let start = 0;\n    let end = 0;\n    for (const node of ast) {\n      if (match.whitespace(node) || match.parbreak(node)) {\n        start++;\n      } else {\n        break;\n      }\n    }\n    if (start === ast.length) {\n      return { start, end: 0 };\n    }\n    for (let i = ast.length - 1; i >= 0; i--) {\n      const node = ast[i];\n      if (match.whitespace(node) || match.parbreak(node)) {\n        end++;\n      } else {\n        break;\n      }\n    }\n    return { start, end };\n  }\n  var unifiedLatexTrimEnvironmentContents = function unifiedLatexTrimEnvironmentContents2() {\n    return (tree) => {\n      visit(tree, (node) => {\n        if (!(match.math(node) || match.anyEnvironment(node))) {\n          return;\n        }\n        let firstNode = node.content[0];\n        if (match.comment(firstNode) && firstNode.sameline) {\n          firstNode.suffixParbreak = false;\n          trimEnd(node.content);\n          const { trimmedStart } = trimStart(node.content.slice(1));\n          node.content.splice(1, trimmedStart);\n        } else {\n          trim(node.content);\n        }\n      });\n    };\n  };\n  var unifiedLatexTrimRoot = function unifiedLatexTrimRoot2() {\n    return (tree) => {\n      trim(tree.content);\n    };\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-util-split/index.js\n  function splitOnCondition(nodes, splitFunc = () => false, options) {\n    if (!Array.isArray(nodes)) {\n      throw new Error(`Can only split an Array, not ${nodes}`);\n    }\n    const { onlySplitOnFirstOccurrence = false } = options || {};\n    const splitIndices = [];\n    for (let i = 0; i < nodes.length; i++) {\n      if (splitFunc(nodes[i])) {\n        splitIndices.push(i);\n        if (onlySplitOnFirstOccurrence) {\n          break;\n        }\n      }\n    }\n    if (splitIndices.length === 0) {\n      return { segments: [nodes], separators: [] };\n    }\n    let separators = splitIndices.map((i) => nodes[i]);\n    let segments = splitIndices.map((splitEnd, i) => {\n      const splitStart = i === 0 ? 0 : splitIndices[i - 1] + 1;\n      return nodes.slice(splitStart, splitEnd);\n    });\n    segments.push(\n      nodes.slice(splitIndices[splitIndices.length - 1] + 1, nodes.length)\n    );\n    return { segments, separators };\n  }\n  function splitOnMacro(ast, macroName) {\n    if (typeof macroName === \"string\") {\n      macroName = [macroName];\n    }\n    if (!Array.isArray(macroName)) {\n      throw new Error(\"Type coercion failed\");\n    }\n    const isSeparator = match.createMacroMatcher(macroName);\n    const { segments, separators } = splitOnCondition(ast, isSeparator);\n    return { segments, macros: separators };\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-replace/index.js\n  function lastSignificantNodeIndex(nodes, parbreaksAreInsignificant) {\n    for (let i = nodes.length - 1; i >= 0; i--) {\n      const node = nodes[i];\n      if (match.whitespace(node) || match.comment(node) || parbreaksAreInsignificant && match.parbreak(node)) {\n        continue;\n      }\n      return i;\n    }\n    return void 0;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/enumerate-wQeKG6-C.js\n  function cleanEnumerateBody(ast, itemName = \"item\") {\n    let { segments, macros: macros18 } = splitOnMacro(ast, itemName);\n    for (let i = 0; i < segments.length; i++) {\n      const segment = segments[i];\n      if (i === 0) {\n        trimEnd(segment);\n      } else {\n        trim(segment);\n      }\n      if (segment.length > 0 && i > 0) {\n        segment.unshift({ type: \"whitespace\" });\n      }\n    }\n    let insertParbreakBefore = /* @__PURE__ */ new WeakSet();\n    let body = macros18.flatMap((node, i) => {\n      var _a;\n      const segment = segments[i + 1];\n      const trailingComments = popTrailingComments(segment);\n      node.args = node.args || [];\n      node.args.push(arg(segment, { openMark: \"\", closeMark: \"\" }));\n      updateRenderInfo(node, { inParMode: true });\n      if (i > 0 || ((_a = segments[0]) == null ? void 0 : _a.length) > 0) {\n        insertParbreakBefore.add(node);\n      }\n      return [node, ...trailingComments];\n    });\n    body = body.flatMap(\n      (node) => insertParbreakBefore.has(node) ? [{ type: \"parbreak\" }, node] : node\n    );\n    body.unshift(...segments[0]);\n    for (let i = 0; i < body.length - 1; i++) {\n      const node = body[i];\n      const nextNode = body[i + 1];\n      if (!match.parbreak(nextNode)) {\n        continue;\n      }\n      if (match.comment(node)) {\n        node.suffixParbreak = true;\n      }\n      if (match.macro(node) && node.args && node.args[node.args.length - 1].closeMark === \"\") {\n        const args = node.args[node.args.length - 1].content;\n        const lastArg = args[args.length - 1];\n        if (match.comment(lastArg)) {\n          lastArg.suffixParbreak = true;\n        }\n      }\n    }\n    return body;\n  }\n  function popTrailingComments(nodes) {\n    let lastNodeIndex = lastSignificantNodeIndex(nodes, true);\n    if (lastNodeIndex === nodes.length - 1 || lastNodeIndex == null && nodes.length === 0) {\n      return [];\n    }\n    if (lastNodeIndex == null) {\n      lastNodeIndex = -1;\n    }\n    return nodes.splice(lastNodeIndex + 1);\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/provides-B-HiB8uu.js\n  var macros3 = {\n    answerline: { signature: \"o\" },\n    fillin: { signature: \"o o\" },\n    fullwidth: { signature: \"m\" },\n    fillwidthlines: { signature: \"m\" },\n    fillwidthdottedlines: { signature: \"m\" },\n    fillwidthgrid: { signature: \"m\" },\n    makeemptybox: { signature: \"m\" },\n    CorrectChoiceEmphasis: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    SolutionEmphasis: { signature: \"m\", renderInfo: { breakAround: true } },\n    uplevel: { signature: \"m\", renderInfo: { breakAround: true } },\n    checkboxchar: { signature: \"m\", renderInfo: { breakAround: true } },\n    checkedchar: { signature: \"m\", renderInfo: { breakAround: true } },\n    pointname: { signature: \"m\", renderInfo: { breakAround: true } },\n    marginpointname: { signature: \"m\", renderInfo: { breakAround: true } },\n    extrawidth: { signature: \"m\", renderInfo: { breakAround: true } },\n    pointformat: { signature: \"m\", renderInfo: { breakAround: true } },\n    bonuspointformat: { signature: \"m\", renderInfo: { breakAround: true } },\n    totalformat: { signature: \"m\", renderInfo: { breakAround: true } },\n    qformat: { signature: \"m\", renderInfo: { breakAround: true } },\n    titledquestion: { signature: \"m o\", renderInfo: { breakAround: true } },\n    pointpoints: { signature: \"m m\", renderInfo: { breakAround: true } },\n    bonuspointpoints: { signature: \"m m\", renderInfo: { breakAround: true } }\n  };\n  var environments3 = {\n    choices: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"choice\")\n    },\n    checkboxes: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"choice\")\n    },\n    oneparchoices: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"choice\")\n    },\n    oneparcheckboxes: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"choice\")\n    },\n    parts: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"part\")\n    },\n    subparts: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"subpart\")\n    },\n    subsubparts: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"subsubpart\")\n    },\n    questions: {\n      signature: \"o\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"question\")\n    }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/geometry/index.js\n  var macros4 = {\n    geometry: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    }\n  };\n  var environments4 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/hyperref/index.js\n  var macros5 = {\n    hypersetup: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    href: { signature: \"o m m\" },\n    url: { signature: \"m\" },\n    nolinkurl: { signature: \"m\" },\n    hyperbaseurl: { signature: \"m\" },\n    hyperimage: { signature: \"m m\" },\n    hyperdef: { signature: \"m m m\" },\n    hyperref: { signature: \"o m\" },\n    hyperlink: { signature: \"m m\" },\n    hypertarget: { signature: \"m m\" },\n    autoref: { signature: \"s m\" },\n    pageref: { signature: \"s m\" },\n    autopageref: { signature: \"s m\" },\n    pdfstringdef: { signature: \"m m\" },\n    pdfbookmark: { signature: \"o m m\" },\n    currentpdfbookmark: { signature: \"m m\" },\n    subpdfbookmark: { signature: \"m m\" },\n    belowpdfbookmark: { signature: \"m m\" },\n    texorpdfstring: { signature: \"m m\" },\n    thispdfpagelabel: { signature: \"m\" },\n    hypercalcbp: { signature: \"m\" }\n  };\n  var environments5 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/provides-BUHzyq9A.js\n  var macros6 = {\n    // Special\n    \"\\\\\": { signature: \"!s !o\", renderInfo: { breakAfter: true } },\n    _: { signature: \"m\", escapeToken: \"\" },\n    \"^\": { signature: \"m\", escapeToken: \"\" },\n    // \\newcommand arg signature from https://www.texdev.net/2020/08/19/the-good-the-bad-and-the-ugly-creating-document-commands\n    // List can be found in latex2e.pdf \"An unofficial reference manual\"\n    newcommand: {\n      signature: \"s +m o +o +m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", \"name\", \"numArgs\", \"default\", \"body\"]\n      }\n    },\n    renewcommand: {\n      signature: \"s +m o +o +m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", \"name\", \"numArgs\", \"default\", \"body\"]\n      }\n    },\n    providecommand: {\n      signature: \"s +m o +o +m\",\n      renderInfo: { breakAround: true }\n    },\n    // Counters\n    newcounter: {\n      signature: \"m o\",\n      renderInfo: { breakAround: true }\n    },\n    usecounter: {\n      signature: \"m\"\n    },\n    setcounter: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    addtocounter: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    stepcounter: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    refstepcounter: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    // Lengths\n    newlength: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    addtolength: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    settodepth: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    settoheight: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    settowidth: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    // Spaces\n    stretch: { signature: \"m\" },\n    hspace: { signature: \"s m\" },\n    vspace: { signature: \"s m\", renderInfo: { breakAround: true } },\n    vfill: { renderInfo: { breakAround: true } },\n    indent: { renderInfo: { breakAround: true } },\n    phantom: { signature: \"m\" },\n    vphantom: { signature: \"m\" },\n    hphantom: { signature: \"m\" },\n    noindent: { renderInfo: { breakAround: true } },\n    smallskip: { renderInfo: { breakAround: true } },\n    medskip: { renderInfo: { breakAround: true } },\n    bigskip: { renderInfo: { breakAround: true } },\n    smallbreak: { renderInfo: { breakAround: true } },\n    medbreak: { renderInfo: { breakAround: true } },\n    bigbreak: { renderInfo: { breakAround: true } },\n    newline: { renderInfo: { breakAround: true } },\n    linebreak: { signature: \"o\", renderInfo: { breakAround: true } },\n    nolinebreak: { signature: \"o\", renderInfo: { breakAround: true } },\n    clearpage: { renderInfo: { breakAround: true } },\n    cleardoublepage: { renderInfo: { breakAround: true } },\n    newpage: { renderInfo: { breakAround: true } },\n    enlargethispage: { signature: \"s\", renderInfo: { breakAround: true } },\n    pagebreak: { signature: \"o\", renderInfo: { breakAround: true } },\n    nopagebreak: { signature: \"o\", renderInfo: { breakAround: true } },\n    // Boxes\n    newsavebox: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    sbox: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    savebox: {\n      signature: \"m o o m\",\n      renderInfo: { breakAround: true }\n    },\n    mbox: { signature: \"m\" },\n    makebox: { signature: \"d() o o m\", renderInfo: { breakAround: true } },\n    fbox: { signature: \"m\" },\n    framebox: { signature: \"o o m\", renderInfo: { breakAround: true } },\n    frame: { signature: \"m\", renderInfo: { breakAround: true } },\n    parbox: { signature: \"o o o m m\", renderInfo: { breakAround: true } },\n    raisebox: { signature: \"m o o m\" },\n    marginpar: { signature: \"o m\", renderInfo: { breakAround: true } },\n    colorbox: { signature: \"o m m\", renderInfo: { breakAround: true } },\n    fcolorbox: { signature: \"o m m\", renderInfo: { breakAround: true } },\n    rotatebox: { signature: \"o m m\" },\n    scalebox: { signature: \"m o m\" },\n    reflectbox: { signature: \"m\" },\n    resizebox: { signature: \"s m m m\" },\n    // Define environments\n    newenvironment: {\n      signature: \"s m o o m m\",\n      renderInfo: { breakAround: true }\n    },\n    renewenvironment: {\n      signature: \"s m o o m m\",\n      renderInfo: { breakAround: true }\n    },\n    newtheorem: {\n      signature: \"s m o m o\",\n      renderInfo: { breakAround: true }\n    },\n    newfont: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    // Counters\n    alph: { signature: \"m\" },\n    Alph: { signature: \"m\" },\n    arabic: { signature: \"m\" },\n    roman: { signature: \"m\" },\n    Roman: { signature: \"m\" },\n    fnsymbol: { signature: \"m\" },\n    // Other\n    documentclass: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    usepackage: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    item: {\n      signature: \"o\",\n      renderInfo: { hangingIndent: true, namedArguments: [\"label\"] }\n    },\n    value: { signature: \"m\" },\n    centering: { renderInfo: { breakAround: true } },\n    input: { signature: \"m\", renderInfo: { breakAround: true } },\n    include: { signature: \"m\", renderInfo: { breakAround: true } },\n    includeonly: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    discretionary: { signature: \"m m m\" },\n    hyphenation: { signature: \"m\" },\n    footnote: { signature: \"o m\", renderInfo: { inParMode: true } },\n    footnotemark: { signature: \"o\" },\n    footnotetext: { signature: \"o m\", renderInfo: { inParMode: true } },\n    caption: {\n      signature: \"o m\",\n      renderInfo: { inParMode: true, breakAround: true }\n    },\n    // Math Commands\n    sqrt: { signature: \"o m\", renderInfo: { inMathMode: true } },\n    frac: { signature: \"m m\", renderInfo: { inMathMode: true } },\n    stackrel: { signature: \"m m\" },\n    ensuremath: { signature: \"m\", renderInfo: { inMathMode: true } },\n    // Layout commands\n    abstract: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    maketitle: { renderInfo: { breakAround: true } },\n    doublespacing: { renderInfo: { breakAround: true } },\n    singlespacing: { renderInfo: { breakAround: true } },\n    date: { signature: \"o m\", renderInfo: { breakAround: true } },\n    thanks: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, inParMode: true }\n    },\n    pagenumbering: { signature: \"m\", renderInfo: { breakAround: true } },\n    pagestyle: { signature: \"m\", renderInfo: { breakAround: true } },\n    thispagestyle: { signature: \"m\", renderInfo: { breakAround: true } },\n    // Colors\n    definecolor: { signature: \"m m m\", renderInfo: { breakAround: true } },\n    pagecolor: { signature: \"o m\", renderInfo: { breakAround: true } },\n    nopagecolor: { renderInfo: { breakAround: true } },\n    multicolumn: { signature: \"m m m\" },\n    // Graphics\n    includegraphics: {\n      signature: \"s o o m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    rule: { signature: \"o m m\" },\n    // Sectioning\n    part: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    chapter: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    section: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    subsection: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    subsubsection: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    paragraph: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    subparagraph: {\n      signature: \"s o m\",\n      renderInfo: {\n        breakAround: true,\n        inParMode: true,\n        namedArguments: [\"starred\", \"tocTitle\", \"title\"]\n      }\n    },\n    appendix: { renderInfo: { breakAround: true, inParMode: true } },\n    frontmatter: { renderInfo: { breakAround: true, inParMode: true } },\n    mainmatter: { renderInfo: { breakAround: true, inParMode: true } },\n    backmatter: { renderInfo: { breakAround: true, inParMode: true } },\n    // Citing and references\n    bibitem: { signature: \"o m\", renderInfo: { hangingIndent: true } },\n    cite: { signature: \"o m\" },\n    // Fonts\n    textrm: { signature: \"m\", renderInfo: { inParMode: true } },\n    textit: { signature: \"m\", renderInfo: { inParMode: true } },\n    textmd: { signature: \"m\", renderInfo: { inParMode: true } },\n    textbf: { signature: \"m\", renderInfo: { inParMode: true } },\n    textup: { signature: \"m\", renderInfo: { inParMode: true } },\n    textsl: { signature: \"m\", renderInfo: { inParMode: true } },\n    textsf: { signature: \"m\", renderInfo: { inParMode: true } },\n    textsc: { signature: \"m\", renderInfo: { inParMode: true } },\n    texttt: { signature: \"m\", renderInfo: { inParMode: true } },\n    underline: { signature: \"m\", renderInfo: { inParMode: true } },\n    emph: { signature: \"m\", renderInfo: { inParMode: true } },\n    textnormal: { signature: \"m\", renderInfo: { inParMode: true } },\n    uppercase: { signature: \"m\", renderInfo: { inParMode: true } },\n    mathbf: { signature: \"m\" },\n    mathsf: { signature: \"m\" },\n    mathtt: { signature: \"m\" },\n    mathit: { signature: \"m\" },\n    mathnormal: { signature: \"m\" },\n    mathcal: { signature: \"m\" },\n    mathrm: { signature: \"m\" },\n    // Other\n    setlength: { signature: \"m m\", renderInfo: { breakAround: true } },\n    ref: { signature: \"s m\" },\n    label: { signature: \"o m\" },\n    // cleveref changes \\label to have this signature\n    printbibliography: { renderInfo: { breakAround: true } },\n    addtocontents: { signature: \"m m\", renderInfo: { breakAround: true } },\n    addcontentsline: { signature: \"m m m\", renderInfo: { breakAround: true } },\n    contentsline: { signature: \"m m m\", renderInfo: { breakAround: true } },\n    bibliography: { signature: \"m\", renderInfo: { breakAround: true } },\n    bibliographystyle: { signature: \"m\", renderInfo: { breakAround: true } }\n  };\n  var environments6 = {\n    document: {\n      processContent: (nodes) => {\n        trim(nodes);\n        return nodes;\n      }\n    },\n    array: { signature: \"o m\", renderInfo: { alignContent: true } },\n    description: { signature: \"o\", processContent: cleanEnumerateBody },\n    enumerate: {\n      signature: \"o\",\n      processContent: cleanEnumerateBody,\n      renderInfo: { pgfkeysArgs: true }\n    },\n    itemize: { signature: \"o\", processContent: cleanEnumerateBody },\n    trivlist: { signature: \"o\", processContent: cleanEnumerateBody },\n    list: { signature: \"m m\", processContent: cleanEnumerateBody },\n    figure: { signature: \"o\" },\n    \"figure*\": { signature: \"o\" },\n    filecontents: { signature: \"o m\" },\n    \"filecontents*\": { signature: \"o m\" },\n    minipage: { signature: \"o o o m\" },\n    picture: { signature: \"r() d()\" },\n    tabbing: { renderInfo: { alignContent: true } },\n    table: { signature: \"o\" },\n    tabular: { signature: \"o m\", renderInfo: { alignContent: true } },\n    \"tabular*\": { signature: \"m o m\", renderInfo: { alignContent: true } },\n    thebibliography: {\n      signature: \"m\",\n      processContent: (nodes) => cleanEnumerateBody(nodes, \"bibitem\")\n    },\n    // Math\n    math: { renderInfo: { inMathMode: true } }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-util-pegjs/index.js\n  function decorateArrayForPegjs(array) {\n    array.charAt = function(i) {\n      return this[i];\n    };\n    array.charCodeAt = () => 0;\n    array.substring = function(i, j) {\n      return this.slice(i, j);\n    };\n    array.replace = function(a, b) {\n      const ret = JSON.stringify(this);\n      return ret.replace(a, b);\n    };\n    return array;\n  }\n  var _LatexPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { document: peg$parsedocument, math: peg$parsemath };\n        var peg$startRuleFunction = peg$parsedocument;\n        var peg$c0 = \"%\";\n        var peg$c1 = \".\";\n        var peg$c2 = \"verb*\";\n        var peg$c3 = \"verb\";\n        var peg$c4 = \"[\";\n        var peg$c5 = \"]\";\n        var peg$c6 = \"lstinline\";\n        var peg$c7 = \"mintinline\";\n        var peg$c8 = \"mint\";\n        var peg$c9 = \"minted\";\n        var peg$c10 = \"verbatim*\";\n        var peg$c11 = \"verbatim\";\n        var peg$c12 = \"filecontents*\";\n        var peg$c13 = \"filecontents\";\n        var peg$c14 = \"comment\";\n        var peg$c15 = \"lstlisting\";\n        var peg$c16 = \"(\";\n        var peg$c17 = \")\";\n        var peg$c18 = \"begin\";\n        var peg$c19 = \"end\";\n        var peg$c20 = \"equation*\";\n        var peg$c21 = \"equation\";\n        var peg$c22 = \"align*\";\n        var peg$c23 = \"align\";\n        var peg$c24 = \"alignat*\";\n        var peg$c25 = \"alignat\";\n        var peg$c26 = \"gather*\";\n        var peg$c27 = \"gather\";\n        var peg$c28 = \"multline*\";\n        var peg$c29 = \"multline\";\n        var peg$c30 = \"flalign*\";\n        var peg$c31 = \"flalign\";\n        var peg$c32 = \"split\";\n        var peg$c33 = \"math\";\n        var peg$c34 = \"displaymath\";\n        var peg$c35 = \"\\\\\";\n        var peg$c36 = \"{\";\n        var peg$c37 = \"}\";\n        var peg$c38 = \"$\";\n        var peg$c39 = \"&\";\n        var peg$c40 = \"\\r\";\n        var peg$c41 = \"\\n\";\n        var peg$c42 = \"\\r\\n\";\n        var peg$c43 = \"#\";\n        var peg$c44 = \"^\";\n        var peg$c45 = \"_\";\n        var peg$c46 = \"\\0\";\n        var peg$r0 = /^[^ \\t\\n\\r]/;\n        var peg$r1 = /^[ \\t]/;\n        var peg$r2 = /^[a-zA-Z]/;\n        var peg$r3 = /^[0-9]/;\n        var peg$r4 = /^[.,;:\\-*\\/()!?=+<>[\\]`'\"~]/;\n        var peg$e0 = peg$otherExpectation(\"document\");\n        var peg$e1 = peg$otherExpectation(\"math\");\n        var peg$e2 = peg$otherExpectation(\"token\");\n        var peg$e3 = peg$anyExpectation();\n        var peg$e4 = peg$otherExpectation(\"parbreak\");\n        var peg$e5 = peg$otherExpectation(\"math token\");\n        var peg$e6 = peg$otherExpectation(\"nonchar token\");\n        var peg$e7 = peg$literalExpectation(\"%\", false);\n        var peg$e8 = peg$otherExpectation(\"whitespace\");\n        var peg$e9 = peg$otherExpectation(\"number\");\n        var peg$e10 = peg$literalExpectation(\".\", false);\n        var peg$e11 = peg$otherExpectation(\"special macro\");\n        var peg$e12 = peg$literalExpectation(\"verb*\", false);\n        var peg$e13 = peg$literalExpectation(\"verb\", false);\n        var peg$e14 = peg$literalExpectation(\"[\", false);\n        var peg$e15 = peg$literalExpectation(\"]\", false);\n        var peg$e16 = peg$classExpectation([\" \", \"\t\", \"\\n\", \"\\r\"], true, false);\n        var peg$e17 = peg$otherExpectation(\"verbatim listings\");\n        var peg$e18 = peg$literalExpectation(\"lstinline\", false);\n        var peg$e19 = peg$otherExpectation(\"verbatim minted\");\n        var peg$e20 = peg$literalExpectation(\"mintinline\", false);\n        var peg$e21 = peg$literalExpectation(\"mint\", false);\n        var peg$e22 = peg$otherExpectation(\"verbatim minted environment\");\n        var peg$e23 = peg$literalExpectation(\"minted\", false);\n        var peg$e24 = peg$otherExpectation(\"verbatim environment\");\n        var peg$e25 = peg$literalExpectation(\"verbatim*\", false);\n        var peg$e26 = peg$literalExpectation(\"verbatim\", false);\n        var peg$e27 = peg$literalExpectation(\"filecontents*\", false);\n        var peg$e28 = peg$literalExpectation(\"filecontents\", false);\n        var peg$e29 = peg$literalExpectation(\"comment\", false);\n        var peg$e30 = peg$literalExpectation(\"lstlisting\", false);\n        var peg$e31 = peg$otherExpectation(\"macro\");\n        var peg$e32 = peg$otherExpectation(\"group\");\n        var peg$e33 = peg$otherExpectation(\"environment\");\n        var peg$e34 = peg$otherExpectation(\"math environment\");\n        var peg$e36 = peg$literalExpectation(\"(\", false);\n        var peg$e37 = peg$literalExpectation(\")\", false);\n        var peg$e38 = peg$literalExpectation(\"begin\", false);\n        var peg$e39 = peg$literalExpectation(\"end\", false);\n        var peg$e40 = peg$literalExpectation(\"equation*\", false);\n        var peg$e41 = peg$literalExpectation(\"equation\", false);\n        var peg$e42 = peg$literalExpectation(\"align*\", false);\n        var peg$e43 = peg$literalExpectation(\"align\", false);\n        var peg$e44 = peg$literalExpectation(\"alignat*\", false);\n        var peg$e45 = peg$literalExpectation(\"alignat\", false);\n        var peg$e46 = peg$literalExpectation(\"gather*\", false);\n        var peg$e47 = peg$literalExpectation(\"gather\", false);\n        var peg$e48 = peg$literalExpectation(\"multline*\", false);\n        var peg$e49 = peg$literalExpectation(\"multline\", false);\n        var peg$e50 = peg$literalExpectation(\"flalign*\", false);\n        var peg$e51 = peg$literalExpectation(\"flalign\", false);\n        var peg$e52 = peg$literalExpectation(\"split\", false);\n        var peg$e53 = peg$literalExpectation(\"math\", false);\n        var peg$e54 = peg$literalExpectation(\"displaymath\", false);\n        var peg$e55 = peg$otherExpectation(\"escape\");\n        var peg$e56 = peg$literalExpectation(\"\\\\\", false);\n        var peg$e57 = peg$literalExpectation(\"{\", false);\n        var peg$e58 = peg$literalExpectation(\"}\", false);\n        var peg$e59 = peg$literalExpectation(\"$\", false);\n        var peg$e60 = peg$literalExpectation(\"&\", false);\n        var peg$e61 = peg$otherExpectation(\"newline\");\n        var peg$e62 = peg$literalExpectation(\"\\r\", false);\n        var peg$e63 = peg$literalExpectation(\"\\n\", false);\n        var peg$e64 = peg$literalExpectation(\"\\r\\n\", false);\n        var peg$e65 = peg$literalExpectation(\"#\", false);\n        var peg$e66 = peg$literalExpectation(\"^\", false);\n        var peg$e67 = peg$literalExpectation(\"_\", false);\n        var peg$e68 = peg$literalExpectation(\"\\0\", false);\n        var peg$e69 = peg$classExpectation([\" \", \"\t\"], false, false);\n        var peg$e70 = peg$otherExpectation(\"letter\");\n        var peg$e71 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n        var peg$e72 = peg$otherExpectation(\"digit\");\n        var peg$e73 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n        var peg$e74 = peg$otherExpectation(\"punctuation\");\n        var peg$e75 = peg$classExpectation([\".\", \",\", \";\", \":\", \"-\", \"*\", \"/\", \"(\", \")\", \"!\", \"?\", \"=\", \"+\", \"<\", \">\", \"[\", \"]\", \"`\", \"'\", '\"', \"~\"], false, false);\n        var peg$e76 = peg$otherExpectation(\"full comment\");\n        var peg$e77 = peg$otherExpectation(\"comment\");\n        var peg$f0 = function(content) {\n          return createNode(\"root\", { content: content.flatMap((x) => x) });\n        };\n        var peg$f1 = function(t) {\n          return t;\n        };\n        var peg$f2 = function(eq) {\n          return createNode(\"inlinemath\", { content: eq.flatMap((x) => x) });\n        };\n        var peg$f3 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f4 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f5 = function() {\n          return createNode(\"parbreak\");\n        };\n        var peg$f6 = function(x) {\n          return x;\n        };\n        var peg$f7 = function(x) {\n          return x;\n        };\n        var peg$f8 = function() {\n          return createNode(\"macro\", { content: \"^\", escapeToken: \"\" });\n        };\n        var peg$f9 = function() {\n          return createNode(\"macro\", { content: \"_\", escapeToken: \"\" });\n        };\n        var peg$f10 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f11 = function() {\n          return createNode(\"whitespace\");\n        };\n        var peg$f12 = function(a, b) {\n          return a.join(\"\") + \".\" + b.join(\"\");\n        };\n        var peg$f13 = function(b) {\n          return \".\" + b.join(\"\");\n        };\n        var peg$f14 = function(a) {\n          return a.join(\"\") + \".\";\n        };\n        var peg$f15 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f16 = function(env, e, end) {\n          return end == e;\n        };\n        var peg$f17 = function(env, e, x) {\n          return x;\n        };\n        var peg$f18 = function(env, e, x, end) {\n          return end == e;\n        };\n        var peg$f19 = function(env, e, x) {\n          return createNode(\"verb\", {\n            env,\n            escape: e,\n            content: x.join(\"\")\n          });\n        };\n        var peg$f20 = function(x) {\n          return x;\n        };\n        var peg$f21 = function(x) {\n          return createNode(\"displaymath\", { content: x.flatMap((x2) => x2) });\n        };\n        var peg$f22 = function(x) {\n          return x;\n        };\n        var peg$f23 = function(x) {\n          return createNode(\"inlinemath\", { content: x.flatMap((x2) => x2) });\n        };\n        var peg$f24 = function(x) {\n          return x;\n        };\n        var peg$f25 = function(x) {\n          return createNode(\"displaymath\", { content: x.flatMap((x2) => x2) });\n        };\n        var peg$f26 = function(end) {\n          return end.type === \"string\" && end.content === \"]\";\n        };\n        var peg$f27 = function(x) {\n          return x;\n        };\n        var peg$f28 = function(o) {\n          return [\n            createNode(\"string\", { content: \"[\" }),\n            ...o,\n            createNode(\"string\", { content: \"]\" })\n          ];\n        };\n        var peg$f29 = function(x) {\n          return x;\n        };\n        var peg$f30 = function(v) {\n          return createNode(\"group\", {\n            content: createNode(\"string\", { content: v.join(\"\") })\n          });\n        };\n        var peg$f31 = function(d, end) {\n          return end == d;\n        };\n        var peg$f32 = function(d, x) {\n          return x;\n        };\n        var peg$f33 = function(d, v, end) {\n          return end == d;\n        };\n        var peg$f34 = function(d, v) {\n          return [\n            createNode(\"string\", { content: d }),\n            createNode(\"string\", { content: v.join(\"\") }),\n            createNode(\"string\", { content: d })\n          ];\n        };\n        var peg$f35 = function(macro2, option, verbatim) {\n          return [\n            createNode(\"macro\", { content: macro2 }),\n            ...option || [],\n            ...[].concat(verbatim)\n          ];\n        };\n        var peg$f36 = function(macro2, option, language, verbatim) {\n          return [\n            createNode(\"macro\", { content: macro2 }),\n            ...option || [],\n            language,\n            ...[].concat(verbatim)\n          ];\n        };\n        var peg$f37 = function(env, option, language, end_env) {\n          return compare_env({ content: [env] }, end_env);\n        };\n        var peg$f38 = function(env, option, language, body) {\n          const content = [\n            ...option || [],\n            language,\n            { type: \"string\", content: body }\n          ];\n          return createNode(\"environment\", {\n            env,\n            content\n          });\n        };\n        var peg$f39 = function(env, end_env) {\n          return compare_env({ content: [env] }, end_env);\n        };\n        var peg$f40 = function(env, x) {\n          return x;\n        };\n        var peg$f41 = function(env, body) {\n          return createNode(\"verbatim\", {\n            env,\n            content: body\n          });\n        };\n        var peg$f42 = function(n) {\n          return n.join(\"\");\n        };\n        var peg$f43 = function(n) {\n          return n;\n        };\n        var peg$f44 = function(m) {\n          return createNode(\"macro\", { content: m });\n        };\n        var peg$f45 = function(c) {\n          return c;\n        };\n        var peg$f46 = function(x) {\n          return createNode(\"group\", { content: x.flatMap((x2) => x2) });\n        };\n        var peg$f47 = function(g) {\n          return text().slice(1, -1);\n        };\n        var peg$f48 = function(env, env_comment, end_env) {\n          return compare_env(env, end_env);\n        };\n        var peg$f49 = function(env, env_comment, x) {\n          return x;\n        };\n        var peg$f50 = function(env, env_comment, body) {\n          body = body.flatMap((x) => x);\n          return createNode(\"environment\", {\n            env,\n            content: env_comment ? [env_comment, ...body] : body\n          });\n        };\n        var peg$f51 = function(env, env_comment, end_env) {\n          return compare_env({ content: [env] }, end_env);\n        };\n        var peg$f52 = function(env, env_comment, x) {\n          return x;\n        };\n        var peg$f53 = function(env, env_comment, body) {\n          body = body.flatMap((x) => x);\n          return createNode(\"mathenv\", {\n            env,\n            content: env_comment ? [env_comment, ...body] : body\n          });\n        };\n        var peg$f56 = function(e) {\n          return createNode(\"string\", { content: e });\n        };\n        var peg$f57 = function() {\n          return createNode(\"string\", { content: \"\\\\\" });\n        };\n        var peg$f58 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f59 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f60 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f61 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f62 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f63 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f64 = function(s2) {\n          return createNode(\"string\", { content: s2 });\n        };\n        var peg$f65 = function() {\n          return \" \";\n        };\n        var peg$f66 = function(p) {\n          return createNode(\"string\", { content: p });\n        };\n        var peg$f67 = function(leading_sp, comment2) {\n          return createNode(\"comment\", {\n            ...comment2,\n            sameline: false,\n            leadingWhitespace: leading_sp.length > 0\n          });\n        };\n        var peg$f68 = function(spaces, x) {\n          return createNode(\"comment\", {\n            ...x,\n            sameline: true,\n            leadingWhitespace: spaces.length > 0\n          });\n        };\n        var peg$f69 = function(c) {\n          return c;\n        };\n        var peg$f70 = function(c) {\n          return { content: c.join(\"\"), suffixParbreak: true };\n        };\n        var peg$f71 = function(c) {\n          return c;\n        };\n        var peg$f72 = function(c) {\n          return { content: c.join(\"\") };\n        };\n        var peg$f73 = function() {\n          var loc = location();\n          return loc.start.column === 1;\n        };\n        var peg$currPos = 0;\n        var peg$savedPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$resultsCache = {};\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function text() {\n          return input.substring(peg$savedPos, peg$currPos);\n        }\n        function location() {\n          return peg$computeLocation(peg$savedPos, peg$currPos);\n        }\n        function peg$literalExpectation(text2, ignoreCase) {\n          return { type: \"literal\", text: text2, ignoreCase };\n        }\n        function peg$classExpectation(parts, inverted, ignoreCase) {\n          return { type: \"class\", parts, inverted, ignoreCase };\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsedocument() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 0;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsetoken();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsetoken();\n          }\n          peg$savedPos = s0;\n          s1 = peg$f0(s1);\n          s0 = s1;\n          peg$silentFails--;\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e0);\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemath() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 1;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = [];\n          s1 = peg$parsemath_token();\n          while (s1 !== peg$FAILED) {\n            s0.push(s1);\n            s1 = peg$parsemath_token();\n          }\n          peg$silentFails--;\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e1);\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsetoken() {\n          var s0, s1, s2, s3, s4, s5;\n          var key = peg$currPos * 52 + 2;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$parsespecial_macro();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsemacro();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsefull_comment();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parsegroup();\n                if (s0 === peg$FAILED) {\n                  s0 = peg$currPos;\n                  s1 = peg$parsemath_shift();\n                  if (s1 !== peg$FAILED) {\n                    s2 = [];\n                    s3 = peg$currPos;\n                    s4 = peg$currPos;\n                    peg$silentFails++;\n                    s5 = peg$parsemath_shift();\n                    peg$silentFails--;\n                    if (s5 === peg$FAILED) {\n                      s4 = void 0;\n                    } else {\n                      peg$currPos = s4;\n                      s4 = peg$FAILED;\n                    }\n                    if (s4 !== peg$FAILED) {\n                      s5 = peg$parsemath_token();\n                      if (s5 !== peg$FAILED) {\n                        peg$savedPos = s3;\n                        s3 = peg$f1(s5);\n                      } else {\n                        peg$currPos = s3;\n                        s3 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s3;\n                      s3 = peg$FAILED;\n                    }\n                    if (s3 !== peg$FAILED) {\n                      while (s3 !== peg$FAILED) {\n                        s2.push(s3);\n                        s3 = peg$currPos;\n                        s4 = peg$currPos;\n                        peg$silentFails++;\n                        s5 = peg$parsemath_shift();\n                        peg$silentFails--;\n                        if (s5 === peg$FAILED) {\n                          s4 = void 0;\n                        } else {\n                          peg$currPos = s4;\n                          s4 = peg$FAILED;\n                        }\n                        if (s4 !== peg$FAILED) {\n                          s5 = peg$parsemath_token();\n                          if (s5 !== peg$FAILED) {\n                            peg$savedPos = s3;\n                            s3 = peg$f1(s5);\n                          } else {\n                            peg$currPos = s3;\n                            s3 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s3;\n                          s3 = peg$FAILED;\n                        }\n                      }\n                    } else {\n                      s2 = peg$FAILED;\n                    }\n                    if (s2 !== peg$FAILED) {\n                      s3 = peg$parsemath_shift();\n                      if (s3 !== peg$FAILED) {\n                        peg$savedPos = s0;\n                        s0 = peg$f2(s2);\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$parsealignment_tab();\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$parseparbreak();\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$parsemacro_parameter();\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parseignore();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parsenumber();\n                            if (s0 === peg$FAILED) {\n                              s0 = peg$parsewhitespace();\n                              if (s0 === peg$FAILED) {\n                                s0 = peg$parsepunctuation();\n                                if (s0 === peg$FAILED) {\n                                  s0 = peg$currPos;\n                                  s1 = peg$currPos;\n                                  s2 = [];\n                                  s3 = peg$currPos;\n                                  s4 = peg$currPos;\n                                  peg$silentFails++;\n                                  s5 = peg$parsenonchar_token();\n                                  peg$silentFails--;\n                                  if (s5 === peg$FAILED) {\n                                    s4 = void 0;\n                                  } else {\n                                    peg$currPos = s4;\n                                    s4 = peg$FAILED;\n                                  }\n                                  if (s4 !== peg$FAILED) {\n                                    if (input.length > peg$currPos) {\n                                      s5 = input.charAt(peg$currPos);\n                                      peg$currPos++;\n                                    } else {\n                                      s5 = peg$FAILED;\n                                      if (peg$silentFails === 0) {\n                                        peg$fail(peg$e3);\n                                      }\n                                    }\n                                    if (s5 !== peg$FAILED) {\n                                      s4 = [s4, s5];\n                                      s3 = s4;\n                                    } else {\n                                      peg$currPos = s3;\n                                      s3 = peg$FAILED;\n                                    }\n                                  } else {\n                                    peg$currPos = s3;\n                                    s3 = peg$FAILED;\n                                  }\n                                  if (s3 !== peg$FAILED) {\n                                    while (s3 !== peg$FAILED) {\n                                      s2.push(s3);\n                                      s3 = peg$currPos;\n                                      s4 = peg$currPos;\n                                      peg$silentFails++;\n                                      s5 = peg$parsenonchar_token();\n                                      peg$silentFails--;\n                                      if (s5 === peg$FAILED) {\n                                        s4 = void 0;\n                                      } else {\n                                        peg$currPos = s4;\n                                        s4 = peg$FAILED;\n                                      }\n                                      if (s4 !== peg$FAILED) {\n                                        if (input.length > peg$currPos) {\n                                          s5 = input.charAt(peg$currPos);\n                                          peg$currPos++;\n                                        } else {\n                                          s5 = peg$FAILED;\n                                          if (peg$silentFails === 0) {\n                                            peg$fail(peg$e3);\n                                          }\n                                        }\n                                        if (s5 !== peg$FAILED) {\n                                          s4 = [s4, s5];\n                                          s3 = s4;\n                                        } else {\n                                          peg$currPos = s3;\n                                          s3 = peg$FAILED;\n                                        }\n                                      } else {\n                                        peg$currPos = s3;\n                                        s3 = peg$FAILED;\n                                      }\n                                    }\n                                  } else {\n                                    s2 = peg$FAILED;\n                                  }\n                                  if (s2 !== peg$FAILED) {\n                                    s1 = input.substring(s1, peg$currPos);\n                                  } else {\n                                    s1 = s2;\n                                  }\n                                  if (s1 !== peg$FAILED) {\n                                    peg$savedPos = s0;\n                                    s1 = peg$f3(s1);\n                                  }\n                                  s0 = s1;\n                                  if (s0 === peg$FAILED) {\n                                    s0 = peg$parsebegin_group();\n                                    if (s0 === peg$FAILED) {\n                                      s0 = peg$parseend_group();\n                                      if (s0 === peg$FAILED) {\n                                        s0 = peg$parsemath_shift();\n                                        if (s0 === peg$FAILED) {\n                                          s0 = peg$currPos;\n                                          if (input.length > peg$currPos) {\n                                            s1 = input.charAt(peg$currPos);\n                                            peg$currPos++;\n                                          } else {\n                                            s1 = peg$FAILED;\n                                            if (peg$silentFails === 0) {\n                                              peg$fail(peg$e3);\n                                            }\n                                          }\n                                          if (s1 !== peg$FAILED) {\n                                            peg$savedPos = s0;\n                                            s1 = peg$f4(s1);\n                                          }\n                                          s0 = s1;\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseparbreak() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          var key = peg$currPos * 52 + 3;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = [];\n          s3 = peg$parsesp();\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parsesp();\n          }\n          s3 = peg$parsenl();\n          if (s3 !== peg$FAILED) {\n            s4 = [];\n            s5 = peg$currPos;\n            s6 = [];\n            s7 = peg$parsesp();\n            while (s7 !== peg$FAILED) {\n              s6.push(s7);\n              s7 = peg$parsesp();\n            }\n            s7 = peg$parsenl();\n            if (s7 !== peg$FAILED) {\n              s6 = [s6, s7];\n              s5 = s6;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            if (s5 !== peg$FAILED) {\n              while (s5 !== peg$FAILED) {\n                s4.push(s5);\n                s5 = peg$currPos;\n                s6 = [];\n                s7 = peg$parsesp();\n                while (s7 !== peg$FAILED) {\n                  s6.push(s7);\n                  s7 = peg$parsesp();\n                }\n                s7 = peg$parsenl();\n                if (s7 !== peg$FAILED) {\n                  s6 = [s6, s7];\n                  s5 = s6;\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              }\n            } else {\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = [];\n              s6 = peg$parsesp();\n              while (s6 !== peg$FAILED) {\n                s5.push(s6);\n                s6 = peg$parsesp();\n              }\n              s6 = peg$currPos;\n              peg$silentFails++;\n              s7 = peg$parsecomment_start();\n              peg$silentFails--;\n              if (s7 === peg$FAILED) {\n                s6 = void 0;\n              } else {\n                peg$currPos = s6;\n                s6 = peg$FAILED;\n              }\n              if (s6 !== peg$FAILED) {\n                s2 = [s2, s3, s4, s5, s6];\n                s1 = s2;\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = peg$currPos;\n            s2 = [];\n            s3 = peg$parsesp();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsesp();\n            }\n            s3 = peg$parsenl();\n            if (s3 !== peg$FAILED) {\n              s4 = [];\n              s5 = peg$currPos;\n              s6 = [];\n              s7 = peg$parsesp();\n              while (s7 !== peg$FAILED) {\n                s6.push(s7);\n                s7 = peg$parsesp();\n              }\n              s7 = peg$parsenl();\n              if (s7 !== peg$FAILED) {\n                s6 = [s6, s7];\n                s5 = s6;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                while (s5 !== peg$FAILED) {\n                  s4.push(s5);\n                  s5 = peg$currPos;\n                  s6 = [];\n                  s7 = peg$parsesp();\n                  while (s7 !== peg$FAILED) {\n                    s6.push(s7);\n                    s7 = peg$parsesp();\n                  }\n                  s7 = peg$parsenl();\n                  if (s7 !== peg$FAILED) {\n                    s6 = [s6, s7];\n                    s5 = s6;\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                }\n              } else {\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s2 = [s2, s3, s4];\n                s1 = s2;\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f5();\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e4);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemath_token() {\n          var s0, s1, s2, s3, s4;\n          var key = peg$currPos * 52 + 4;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$parsespecial_macro();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsemacro();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsefull_comment();\n              if (s0 === peg$FAILED) {\n                s0 = peg$currPos;\n                s1 = [];\n                s2 = peg$parsewhitespace();\n                while (s2 !== peg$FAILED) {\n                  s1.push(s2);\n                  s2 = peg$parsewhitespace();\n                }\n                s2 = peg$parsegroup();\n                if (s2 !== peg$FAILED) {\n                  s3 = [];\n                  s4 = peg$parsewhitespace();\n                  while (s4 !== peg$FAILED) {\n                    s3.push(s4);\n                    s4 = peg$parsewhitespace();\n                  }\n                  peg$savedPos = s0;\n                  s0 = peg$f6(s2);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n                if (s0 === peg$FAILED) {\n                  s0 = peg$currPos;\n                  s1 = [];\n                  s2 = peg$parsewhitespace();\n                  while (s2 !== peg$FAILED) {\n                    s1.push(s2);\n                    s2 = peg$parsewhitespace();\n                  }\n                  s2 = peg$parsealignment_tab();\n                  if (s2 !== peg$FAILED) {\n                    s3 = [];\n                    s4 = peg$parsewhitespace();\n                    while (s4 !== peg$FAILED) {\n                      s3.push(s4);\n                      s4 = peg$parsewhitespace();\n                    }\n                    peg$savedPos = s0;\n                    s0 = peg$f7(s2);\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$parsemacro_parameter();\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$currPos;\n                      s1 = [];\n                      s2 = peg$parsewhitespace();\n                      while (s2 !== peg$FAILED) {\n                        s1.push(s2);\n                        s2 = peg$parsewhitespace();\n                      }\n                      s2 = peg$parsesuperscript();\n                      if (s2 !== peg$FAILED) {\n                        s3 = [];\n                        s4 = peg$parsewhitespace();\n                        while (s4 !== peg$FAILED) {\n                          s3.push(s4);\n                          s4 = peg$parsewhitespace();\n                        }\n                        peg$savedPos = s0;\n                        s0 = peg$f8();\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$currPos;\n                        s1 = [];\n                        s2 = peg$parsewhitespace();\n                        while (s2 !== peg$FAILED) {\n                          s1.push(s2);\n                          s2 = peg$parsewhitespace();\n                        }\n                        s2 = peg$parsesubscript();\n                        if (s2 !== peg$FAILED) {\n                          s3 = [];\n                          s4 = peg$parsewhitespace();\n                          while (s4 !== peg$FAILED) {\n                            s3.push(s4);\n                            s4 = peg$parsewhitespace();\n                          }\n                          peg$savedPos = s0;\n                          s0 = peg$f9();\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parseignore();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parsewhitespace();\n                            if (s0 === peg$FAILED) {\n                              s0 = peg$currPos;\n                              if (input.length > peg$currPos) {\n                                s1 = input.charAt(peg$currPos);\n                                peg$currPos++;\n                              } else {\n                                s1 = peg$FAILED;\n                                if (peg$silentFails === 0) {\n                                  peg$fail(peg$e3);\n                                }\n                              }\n                              if (s1 !== peg$FAILED) {\n                                peg$savedPos = s0;\n                                s1 = peg$f10(s1);\n                              }\n                              s0 = s1;\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e5);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsenonchar_token() {\n          var s0;\n          var key = peg$currPos * 52 + 5;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$parseescape();\n          if (s0 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 37) {\n              s0 = peg$c0;\n              peg$currPos++;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e7);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsebegin_group();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parseend_group();\n                if (s0 === peg$FAILED) {\n                  s0 = peg$parsemath_shift();\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$parsealignment_tab();\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$parsenl();\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$parsemacro_parameter();\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parseignore();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parsesp();\n                            if (s0 === peg$FAILED) {\n                              s0 = peg$parsepunctuation();\n                              if (s0 === peg$FAILED) {\n                                s0 = peg$parseEOF();\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e6);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsewhitespace() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          var key = peg$currPos * 52 + 6;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$parsenl();\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parsesp();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parsesp();\n            }\n            s2 = [s2, s3];\n            s1 = s2;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = peg$currPos;\n            s2 = [];\n            s3 = peg$parsesp();\n            if (s3 !== peg$FAILED) {\n              while (s3 !== peg$FAILED) {\n                s2.push(s3);\n                s3 = peg$parsesp();\n              }\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsenl();\n              if (s3 !== peg$FAILED) {\n                s4 = peg$currPos;\n                peg$silentFails++;\n                s5 = peg$parsecomment_start();\n                peg$silentFails--;\n                if (s5 === peg$FAILED) {\n                  s4 = void 0;\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n                if (s4 !== peg$FAILED) {\n                  s5 = [];\n                  s6 = peg$parsesp();\n                  while (s6 !== peg$FAILED) {\n                    s5.push(s6);\n                    s6 = peg$parsesp();\n                  }\n                  s6 = peg$currPos;\n                  peg$silentFails++;\n                  s7 = peg$parsenl();\n                  peg$silentFails--;\n                  if (s7 === peg$FAILED) {\n                    s6 = void 0;\n                  } else {\n                    peg$currPos = s6;\n                    s6 = peg$FAILED;\n                  }\n                  if (s6 !== peg$FAILED) {\n                    s2 = [s2, s3, s4, s5, s6];\n                    s1 = s2;\n                  } else {\n                    peg$currPos = s1;\n                    s1 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s1;\n                  s1 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n            if (s1 === peg$FAILED) {\n              s1 = [];\n              s2 = peg$parsesp();\n              if (s2 !== peg$FAILED) {\n                while (s2 !== peg$FAILED) {\n                  s1.push(s2);\n                  s2 = peg$parsesp();\n                }\n              } else {\n                s1 = peg$FAILED;\n              }\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f11();\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsenumber() {\n          var s0, s1, s2, s3, s4, s5;\n          var key = peg$currPos * 52 + 7;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = [];\n          s3 = peg$parsenum();\n          if (s3 !== peg$FAILED) {\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsenum();\n            }\n          } else {\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s3 = peg$c1;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e10);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s4 = [];\n              s5 = peg$parsenum();\n              if (s5 !== peg$FAILED) {\n                while (s5 !== peg$FAILED) {\n                  s4.push(s5);\n                  s5 = peg$parsenum();\n                }\n              } else {\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                peg$savedPos = s1;\n                s1 = peg$f12(s2, s4);\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s2 = peg$c1;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e10);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = [];\n              s4 = peg$parsenum();\n              if (s4 !== peg$FAILED) {\n                while (s4 !== peg$FAILED) {\n                  s3.push(s4);\n                  s4 = peg$parsenum();\n                }\n              } else {\n                s3 = peg$FAILED;\n              }\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s1;\n                s1 = peg$f13(s3);\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n            if (s1 === peg$FAILED) {\n              s1 = peg$currPos;\n              s2 = [];\n              s3 = peg$parsenum();\n              if (s3 !== peg$FAILED) {\n                while (s3 !== peg$FAILED) {\n                  s2.push(s3);\n                  s3 = peg$parsenum();\n                }\n              } else {\n                s2 = peg$FAILED;\n              }\n              if (s2 !== peg$FAILED) {\n                if (input.charCodeAt(peg$currPos) === 46) {\n                  s3 = peg$c1;\n                  peg$currPos++;\n                } else {\n                  s3 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e10);\n                  }\n                }\n                if (s3 !== peg$FAILED) {\n                  peg$savedPos = s1;\n                  s1 = peg$f14(s2);\n                } else {\n                  peg$currPos = s1;\n                  s1 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f15(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e9);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsespecial_macro() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n          var key = peg$currPos * 52 + 8;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 5) === peg$c2) {\n              s2 = peg$c2;\n              peg$currPos += 5;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e12);\n              }\n            }\n            if (s2 === peg$FAILED) {\n              if (input.substr(peg$currPos, 4) === peg$c3) {\n                s2 = peg$c3;\n                peg$currPos += 4;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e13);\n                }\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s3 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s4 = [];\n                s5 = peg$currPos;\n                s6 = peg$currPos;\n                peg$silentFails++;\n                s7 = peg$currPos;\n                if (input.length > peg$currPos) {\n                  s8 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s8 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s8 !== peg$FAILED) {\n                  peg$savedPos = peg$currPos;\n                  s9 = peg$f16(s2, s3, s8);\n                  if (s9) {\n                    s9 = void 0;\n                  } else {\n                    s9 = peg$FAILED;\n                  }\n                  if (s9 !== peg$FAILED) {\n                    s8 = [s8, s9];\n                    s7 = s8;\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s7;\n                  s7 = peg$FAILED;\n                }\n                peg$silentFails--;\n                if (s7 === peg$FAILED) {\n                  s6 = void 0;\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n                if (s6 !== peg$FAILED) {\n                  if (input.length > peg$currPos) {\n                    s7 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s7 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e3);\n                    }\n                  }\n                  if (s7 !== peg$FAILED) {\n                    peg$savedPos = s5;\n                    s5 = peg$f17(s2, s3, s7);\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n                while (s5 !== peg$FAILED) {\n                  s4.push(s5);\n                  s5 = peg$currPos;\n                  s6 = peg$currPos;\n                  peg$silentFails++;\n                  s7 = peg$currPos;\n                  if (input.length > peg$currPos) {\n                    s8 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s8 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e3);\n                    }\n                  }\n                  if (s8 !== peg$FAILED) {\n                    peg$savedPos = peg$currPos;\n                    s9 = peg$f16(s2, s3, s8);\n                    if (s9) {\n                      s9 = void 0;\n                    } else {\n                      s9 = peg$FAILED;\n                    }\n                    if (s9 !== peg$FAILED) {\n                      s8 = [s8, s9];\n                      s7 = s8;\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                  peg$silentFails--;\n                  if (s7 === peg$FAILED) {\n                    s6 = void 0;\n                  } else {\n                    peg$currPos = s6;\n                    s6 = peg$FAILED;\n                  }\n                  if (s6 !== peg$FAILED) {\n                    if (input.length > peg$currPos) {\n                      s7 = input.charAt(peg$currPos);\n                      peg$currPos++;\n                    } else {\n                      s7 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e3);\n                      }\n                    }\n                    if (s7 !== peg$FAILED) {\n                      peg$savedPos = s5;\n                      s5 = peg$f17(s2, s3, s7);\n                    } else {\n                      peg$currPos = s5;\n                      s5 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                }\n                s5 = peg$currPos;\n                if (input.length > peg$currPos) {\n                  s6 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s6 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s6 !== peg$FAILED) {\n                  peg$savedPos = peg$currPos;\n                  s7 = peg$f18(s2, s3, s4, s6);\n                  if (s7) {\n                    s7 = void 0;\n                  } else {\n                    s7 = peg$FAILED;\n                  }\n                  if (s7 !== peg$FAILED) {\n                    s6 = [s6, s7];\n                    s5 = s6;\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s0 = peg$f19(s2, s3, s4);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$parseverbatim_listings();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parseverbatim_minted();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parseverbatim_minted_environment();\n                if (s0 === peg$FAILED) {\n                  s0 = peg$parseverbatim_environment();\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$currPos;\n                    s1 = peg$parsebegin_display_math();\n                    if (s1 !== peg$FAILED) {\n                      s2 = [];\n                      s3 = peg$currPos;\n                      s4 = peg$currPos;\n                      peg$silentFails++;\n                      s5 = peg$parseend_display_math();\n                      peg$silentFails--;\n                      if (s5 === peg$FAILED) {\n                        s4 = void 0;\n                      } else {\n                        peg$currPos = s4;\n                        s4 = peg$FAILED;\n                      }\n                      if (s4 !== peg$FAILED) {\n                        s5 = peg$parsemath_token();\n                        if (s5 !== peg$FAILED) {\n                          peg$savedPos = s3;\n                          s3 = peg$f20(s5);\n                        } else {\n                          peg$currPos = s3;\n                          s3 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s3;\n                        s3 = peg$FAILED;\n                      }\n                      while (s3 !== peg$FAILED) {\n                        s2.push(s3);\n                        s3 = peg$currPos;\n                        s4 = peg$currPos;\n                        peg$silentFails++;\n                        s5 = peg$parseend_display_math();\n                        peg$silentFails--;\n                        if (s5 === peg$FAILED) {\n                          s4 = void 0;\n                        } else {\n                          peg$currPos = s4;\n                          s4 = peg$FAILED;\n                        }\n                        if (s4 !== peg$FAILED) {\n                          s5 = peg$parsemath_token();\n                          if (s5 !== peg$FAILED) {\n                            peg$savedPos = s3;\n                            s3 = peg$f20(s5);\n                          } else {\n                            peg$currPos = s3;\n                            s3 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s3;\n                          s3 = peg$FAILED;\n                        }\n                      }\n                      s3 = peg$parseend_display_math();\n                      if (s3 !== peg$FAILED) {\n                        peg$savedPos = s0;\n                        s0 = peg$f21(s2);\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$currPos;\n                      s1 = peg$parsebegin_inline_math();\n                      if (s1 !== peg$FAILED) {\n                        s2 = [];\n                        s3 = peg$currPos;\n                        s4 = peg$currPos;\n                        peg$silentFails++;\n                        s5 = peg$parseend_inline_math();\n                        peg$silentFails--;\n                        if (s5 === peg$FAILED) {\n                          s4 = void 0;\n                        } else {\n                          peg$currPos = s4;\n                          s4 = peg$FAILED;\n                        }\n                        if (s4 !== peg$FAILED) {\n                          s5 = peg$parsemath_token();\n                          if (s5 !== peg$FAILED) {\n                            peg$savedPos = s3;\n                            s3 = peg$f22(s5);\n                          } else {\n                            peg$currPos = s3;\n                            s3 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s3;\n                          s3 = peg$FAILED;\n                        }\n                        while (s3 !== peg$FAILED) {\n                          s2.push(s3);\n                          s3 = peg$currPos;\n                          s4 = peg$currPos;\n                          peg$silentFails++;\n                          s5 = peg$parseend_inline_math();\n                          peg$silentFails--;\n                          if (s5 === peg$FAILED) {\n                            s4 = void 0;\n                          } else {\n                            peg$currPos = s4;\n                            s4 = peg$FAILED;\n                          }\n                          if (s4 !== peg$FAILED) {\n                            s5 = peg$parsemath_token();\n                            if (s5 !== peg$FAILED) {\n                              peg$savedPos = s3;\n                              s3 = peg$f22(s5);\n                            } else {\n                              peg$currPos = s3;\n                              s3 = peg$FAILED;\n                            }\n                          } else {\n                            peg$currPos = s3;\n                            s3 = peg$FAILED;\n                          }\n                        }\n                        s3 = peg$parseend_inline_math();\n                        if (s3 !== peg$FAILED) {\n                          peg$savedPos = s0;\n                          s0 = peg$f23(s2);\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$currPos;\n                        s1 = peg$parsemath_shift();\n                        if (s1 !== peg$FAILED) {\n                          s2 = peg$parsemath_shift();\n                          if (s2 !== peg$FAILED) {\n                            s3 = [];\n                            s4 = peg$currPos;\n                            s5 = peg$currPos;\n                            peg$silentFails++;\n                            s6 = peg$currPos;\n                            s7 = peg$parsemath_shift();\n                            if (s7 !== peg$FAILED) {\n                              s8 = peg$parsemath_shift();\n                              if (s8 !== peg$FAILED) {\n                                s7 = [s7, s8];\n                                s6 = s7;\n                              } else {\n                                peg$currPos = s6;\n                                s6 = peg$FAILED;\n                              }\n                            } else {\n                              peg$currPos = s6;\n                              s6 = peg$FAILED;\n                            }\n                            peg$silentFails--;\n                            if (s6 === peg$FAILED) {\n                              s5 = void 0;\n                            } else {\n                              peg$currPos = s5;\n                              s5 = peg$FAILED;\n                            }\n                            if (s5 !== peg$FAILED) {\n                              s6 = peg$parsemath_token();\n                              if (s6 !== peg$FAILED) {\n                                peg$savedPos = s4;\n                                s4 = peg$f24(s6);\n                              } else {\n                                peg$currPos = s4;\n                                s4 = peg$FAILED;\n                              }\n                            } else {\n                              peg$currPos = s4;\n                              s4 = peg$FAILED;\n                            }\n                            while (s4 !== peg$FAILED) {\n                              s3.push(s4);\n                              s4 = peg$currPos;\n                              s5 = peg$currPos;\n                              peg$silentFails++;\n                              s6 = peg$currPos;\n                              s7 = peg$parsemath_shift();\n                              if (s7 !== peg$FAILED) {\n                                s8 = peg$parsemath_shift();\n                                if (s8 !== peg$FAILED) {\n                                  s7 = [s7, s8];\n                                  s6 = s7;\n                                } else {\n                                  peg$currPos = s6;\n                                  s6 = peg$FAILED;\n                                }\n                              } else {\n                                peg$currPos = s6;\n                                s6 = peg$FAILED;\n                              }\n                              peg$silentFails--;\n                              if (s6 === peg$FAILED) {\n                                s5 = void 0;\n                              } else {\n                                peg$currPos = s5;\n                                s5 = peg$FAILED;\n                              }\n                              if (s5 !== peg$FAILED) {\n                                s6 = peg$parsemath_token();\n                                if (s6 !== peg$FAILED) {\n                                  peg$savedPos = s4;\n                                  s4 = peg$f24(s6);\n                                } else {\n                                  peg$currPos = s4;\n                                  s4 = peg$FAILED;\n                                }\n                              } else {\n                                peg$currPos = s4;\n                                s4 = peg$FAILED;\n                              }\n                            }\n                            s4 = peg$parsemath_shift();\n                            if (s4 !== peg$FAILED) {\n                              s5 = peg$parsemath_shift();\n                              if (s5 !== peg$FAILED) {\n                                peg$savedPos = s0;\n                                s0 = peg$f25(s3);\n                              } else {\n                                peg$currPos = s0;\n                                s0 = peg$FAILED;\n                              }\n                            } else {\n                              peg$currPos = s0;\n                              s0 = peg$FAILED;\n                            }\n                          } else {\n                            peg$currPos = s0;\n                            s0 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parsemath_environment();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parseenvironment();\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e11);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsesquare_bracket_argument() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          var key = peg$currPos * 52 + 9;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 91) {\n            s1 = peg$c4;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e14);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            peg$silentFails++;\n            s5 = peg$currPos;\n            s6 = peg$parsetoken();\n            if (s6 !== peg$FAILED) {\n              peg$savedPos = peg$currPos;\n              s7 = peg$f26(s6);\n              if (s7) {\n                s7 = void 0;\n              } else {\n                s7 = peg$FAILED;\n              }\n              if (s7 !== peg$FAILED) {\n                s6 = [s6, s7];\n                s5 = s6;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            peg$silentFails--;\n            if (s5 === peg$FAILED) {\n              s4 = void 0;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsetoken();\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s3 = peg$f27(s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$currPos;\n              s6 = peg$parsetoken();\n              if (s6 !== peg$FAILED) {\n                peg$savedPos = peg$currPos;\n                s7 = peg$f26(s6);\n                if (s7) {\n                  s7 = void 0;\n                } else {\n                  s7 = peg$FAILED;\n                }\n                if (s7 !== peg$FAILED) {\n                  s6 = [s6, s7];\n                  s5 = s6;\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsetoken();\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f27(s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            if (input.charCodeAt(peg$currPos) === 93) {\n              s3 = peg$c5;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e15);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f28(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_group() {\n          var s0, s1, s2, s3, s4, s5;\n          var key = peg$currPos * 52 + 10;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_group();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            peg$silentFails++;\n            s5 = peg$parseend_group();\n            peg$silentFails--;\n            if (s5 === peg$FAILED) {\n              s4 = void 0;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s3 = peg$f29(s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$parseend_group();\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f29(s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s3 = peg$parseend_group();\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f30(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_delimited_by_char() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          var key = peg$currPos * 52 + 11;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (peg$r0.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e16);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            peg$silentFails++;\n            s5 = peg$currPos;\n            if (input.length > peg$currPos) {\n              s6 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s6 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e3);\n              }\n            }\n            if (s6 !== peg$FAILED) {\n              peg$savedPos = peg$currPos;\n              s7 = peg$f31(s1, s6);\n              if (s7) {\n                s7 = void 0;\n              } else {\n                s7 = peg$FAILED;\n              }\n              if (s7 !== peg$FAILED) {\n                s6 = [s6, s7];\n                s5 = s6;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            peg$silentFails--;\n            if (s5 === peg$FAILED) {\n              s4 = void 0;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s3 = peg$f32(s1, s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$currPos;\n              if (input.length > peg$currPos) {\n                s6 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s6 !== peg$FAILED) {\n                peg$savedPos = peg$currPos;\n                s7 = peg$f31(s1, s6);\n                if (s7) {\n                  s7 = void 0;\n                } else {\n                  s7 = peg$FAILED;\n                }\n                if (s7 !== peg$FAILED) {\n                  s6 = [s6, s7];\n                  s5 = s6;\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f32(s1, s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s3 = peg$currPos;\n            if (input.length > peg$currPos) {\n              s4 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e3);\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              peg$savedPos = peg$currPos;\n              s5 = peg$f33(s1, s2, s4);\n              if (s5) {\n                s5 = void 0;\n              } else {\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                s4 = [s4, s5];\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f34(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_listings() {\n          var s0, s1, s2, s3, s4;\n          var key = peg$currPos * 52 + 12;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 9) === peg$c6) {\n              s2 = peg$c6;\n              peg$currPos += 9;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e18);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsesquare_bracket_argument();\n              if (s3 === peg$FAILED) {\n                s3 = null;\n              }\n              s4 = peg$parseverbatim_group();\n              if (s4 === peg$FAILED) {\n                s4 = peg$parseverbatim_delimited_by_char();\n              }\n              if (s4 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s0 = peg$f35(s2, s3, s4);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e17);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_minted() {\n          var s0, s1, s2, s3, s4, s5;\n          var key = peg$currPos * 52 + 13;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 10) === peg$c7) {\n              s2 = peg$c7;\n              peg$currPos += 10;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e20);\n              }\n            }\n            if (s2 === peg$FAILED) {\n              if (input.substr(peg$currPos, 4) === peg$c8) {\n                s2 = peg$c8;\n                peg$currPos += 4;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e21);\n                }\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsesquare_bracket_argument();\n              if (s3 === peg$FAILED) {\n                s3 = null;\n              }\n              s4 = peg$parsegroup();\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parseverbatim_group();\n                if (s5 === peg$FAILED) {\n                  s5 = peg$parseverbatim_delimited_by_char();\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s0 = peg$f36(s2, s3, s4, s5);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e19);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_minted_environment() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;\n          var key = peg$currPos * 52 + 14;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_env();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsebegin_group();\n            if (s2 !== peg$FAILED) {\n              if (input.substr(peg$currPos, 6) === peg$c9) {\n                s3 = peg$c9;\n                peg$currPos += 6;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e23);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parseend_group();\n                if (s4 !== peg$FAILED) {\n                  s5 = peg$parsesquare_bracket_argument();\n                  if (s5 === peg$FAILED) {\n                    s5 = null;\n                  }\n                  s6 = peg$parsegroup();\n                  if (s6 !== peg$FAILED) {\n                    s7 = peg$currPos;\n                    s8 = [];\n                    s9 = peg$currPos;\n                    s10 = peg$currPos;\n                    peg$silentFails++;\n                    s11 = peg$currPos;\n                    s12 = peg$parseend_env();\n                    if (s12 !== peg$FAILED) {\n                      s13 = peg$parsegroup();\n                      if (s13 !== peg$FAILED) {\n                        peg$savedPos = peg$currPos;\n                        s14 = peg$f37(s3, s5, s6, s13);\n                        if (s14) {\n                          s14 = void 0;\n                        } else {\n                          s14 = peg$FAILED;\n                        }\n                        if (s14 !== peg$FAILED) {\n                          s12 = [s12, s13, s14];\n                          s11 = s12;\n                        } else {\n                          peg$currPos = s11;\n                          s11 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s11;\n                        s11 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s11;\n                      s11 = peg$FAILED;\n                    }\n                    peg$silentFails--;\n                    if (s11 === peg$FAILED) {\n                      s10 = void 0;\n                    } else {\n                      peg$currPos = s10;\n                      s10 = peg$FAILED;\n                    }\n                    if (s10 !== peg$FAILED) {\n                      if (input.length > peg$currPos) {\n                        s11 = input.charAt(peg$currPos);\n                        peg$currPos++;\n                      } else {\n                        s11 = peg$FAILED;\n                        if (peg$silentFails === 0) {\n                          peg$fail(peg$e3);\n                        }\n                      }\n                      if (s11 !== peg$FAILED) {\n                        s10 = [s10, s11];\n                        s9 = s10;\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s9;\n                      s9 = peg$FAILED;\n                    }\n                    while (s9 !== peg$FAILED) {\n                      s8.push(s9);\n                      s9 = peg$currPos;\n                      s10 = peg$currPos;\n                      peg$silentFails++;\n                      s11 = peg$currPos;\n                      s12 = peg$parseend_env();\n                      if (s12 !== peg$FAILED) {\n                        s13 = peg$parsegroup();\n                        if (s13 !== peg$FAILED) {\n                          peg$savedPos = peg$currPos;\n                          s14 = peg$f37(s3, s5, s6, s13);\n                          if (s14) {\n                            s14 = void 0;\n                          } else {\n                            s14 = peg$FAILED;\n                          }\n                          if (s14 !== peg$FAILED) {\n                            s12 = [s12, s13, s14];\n                            s11 = s12;\n                          } else {\n                            peg$currPos = s11;\n                            s11 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s11;\n                          s11 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s11;\n                        s11 = peg$FAILED;\n                      }\n                      peg$silentFails--;\n                      if (s11 === peg$FAILED) {\n                        s10 = void 0;\n                      } else {\n                        peg$currPos = s10;\n                        s10 = peg$FAILED;\n                      }\n                      if (s10 !== peg$FAILED) {\n                        if (input.length > peg$currPos) {\n                          s11 = input.charAt(peg$currPos);\n                          peg$currPos++;\n                        } else {\n                          s11 = peg$FAILED;\n                          if (peg$silentFails === 0) {\n                            peg$fail(peg$e3);\n                          }\n                        }\n                        if (s11 !== peg$FAILED) {\n                          s10 = [s10, s11];\n                          s9 = s10;\n                        } else {\n                          peg$currPos = s9;\n                          s9 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    }\n                    s7 = input.substring(s7, peg$currPos);\n                    s8 = peg$parseend_env();\n                    if (s8 !== peg$FAILED) {\n                      s9 = peg$parsebegin_group();\n                      if (s9 !== peg$FAILED) {\n                        if (input.substr(peg$currPos, 6) === peg$c9) {\n                          s10 = peg$c9;\n                          peg$currPos += 6;\n                        } else {\n                          s10 = peg$FAILED;\n                          if (peg$silentFails === 0) {\n                            peg$fail(peg$e23);\n                          }\n                        }\n                        if (s10 !== peg$FAILED) {\n                          s11 = peg$parseend_group();\n                          if (s11 !== peg$FAILED) {\n                            peg$savedPos = s0;\n                            s0 = peg$f38(s3, s5, s6, s7);\n                          } else {\n                            peg$currPos = s0;\n                            s0 = peg$FAILED;\n                          }\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e22);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_environment() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n          var key = peg$currPos * 52 + 15;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_env();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsebegin_group();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parseverbatim_env_name();\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parseend_group();\n                if (s4 !== peg$FAILED) {\n                  s5 = peg$currPos;\n                  s6 = [];\n                  s7 = peg$currPos;\n                  s8 = peg$currPos;\n                  peg$silentFails++;\n                  s9 = peg$currPos;\n                  s10 = peg$parseend_env();\n                  if (s10 !== peg$FAILED) {\n                    s11 = peg$parsegroup();\n                    if (s11 !== peg$FAILED) {\n                      peg$savedPos = peg$currPos;\n                      s12 = peg$f39(s3, s11);\n                      if (s12) {\n                        s12 = void 0;\n                      } else {\n                        s12 = peg$FAILED;\n                      }\n                      if (s12 !== peg$FAILED) {\n                        s10 = [s10, s11, s12];\n                        s9 = s10;\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s9;\n                      s9 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s9;\n                    s9 = peg$FAILED;\n                  }\n                  peg$silentFails--;\n                  if (s9 === peg$FAILED) {\n                    s8 = void 0;\n                  } else {\n                    peg$currPos = s8;\n                    s8 = peg$FAILED;\n                  }\n                  if (s8 !== peg$FAILED) {\n                    if (input.length > peg$currPos) {\n                      s9 = input.charAt(peg$currPos);\n                      peg$currPos++;\n                    } else {\n                      s9 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e3);\n                      }\n                    }\n                    if (s9 !== peg$FAILED) {\n                      peg$savedPos = s7;\n                      s7 = peg$f40(s3, s9);\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                  while (s7 !== peg$FAILED) {\n                    s6.push(s7);\n                    s7 = peg$currPos;\n                    s8 = peg$currPos;\n                    peg$silentFails++;\n                    s9 = peg$currPos;\n                    s10 = peg$parseend_env();\n                    if (s10 !== peg$FAILED) {\n                      s11 = peg$parsegroup();\n                      if (s11 !== peg$FAILED) {\n                        peg$savedPos = peg$currPos;\n                        s12 = peg$f39(s3, s11);\n                        if (s12) {\n                          s12 = void 0;\n                        } else {\n                          s12 = peg$FAILED;\n                        }\n                        if (s12 !== peg$FAILED) {\n                          s10 = [s10, s11, s12];\n                          s9 = s10;\n                        } else {\n                          peg$currPos = s9;\n                          s9 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s9;\n                      s9 = peg$FAILED;\n                    }\n                    peg$silentFails--;\n                    if (s9 === peg$FAILED) {\n                      s8 = void 0;\n                    } else {\n                      peg$currPos = s8;\n                      s8 = peg$FAILED;\n                    }\n                    if (s8 !== peg$FAILED) {\n                      if (input.length > peg$currPos) {\n                        s9 = input.charAt(peg$currPos);\n                        peg$currPos++;\n                      } else {\n                        s9 = peg$FAILED;\n                        if (peg$silentFails === 0) {\n                          peg$fail(peg$e3);\n                        }\n                      }\n                      if (s9 !== peg$FAILED) {\n                        peg$savedPos = s7;\n                        s7 = peg$f40(s3, s9);\n                      } else {\n                        peg$currPos = s7;\n                        s7 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  }\n                  s5 = input.substring(s5, peg$currPos);\n                  s6 = peg$parseend_env();\n                  if (s6 !== peg$FAILED) {\n                    s7 = peg$parsebegin_group();\n                    if (s7 !== peg$FAILED) {\n                      s8 = peg$parseverbatim_env_name();\n                      if (s8 !== peg$FAILED) {\n                        s9 = peg$parseend_group();\n                        if (s9 !== peg$FAILED) {\n                          peg$savedPos = s0;\n                          s0 = peg$f41(s3, s5);\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e24);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseverbatim_env_name() {\n          var s0;\n          var key = peg$currPos * 52 + 16;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          if (input.substr(peg$currPos, 9) === peg$c10) {\n            s0 = peg$c10;\n            peg$currPos += 9;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e25);\n            }\n          }\n          if (s0 === peg$FAILED) {\n            if (input.substr(peg$currPos, 8) === peg$c11) {\n              s0 = peg$c11;\n              peg$currPos += 8;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e26);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              if (input.substr(peg$currPos, 13) === peg$c12) {\n                s0 = peg$c12;\n                peg$currPos += 13;\n              } else {\n                s0 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e27);\n                }\n              }\n              if (s0 === peg$FAILED) {\n                if (input.substr(peg$currPos, 12) === peg$c13) {\n                  s0 = peg$c13;\n                  peg$currPos += 12;\n                } else {\n                  s0 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e28);\n                  }\n                }\n                if (s0 === peg$FAILED) {\n                  if (input.substr(peg$currPos, 7) === peg$c14) {\n                    s0 = peg$c14;\n                    peg$currPos += 7;\n                  } else {\n                    s0 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e29);\n                    }\n                  }\n                  if (s0 === peg$FAILED) {\n                    if (input.substr(peg$currPos, 10) === peg$c15) {\n                      s0 = peg$c15;\n                      peg$currPos += 10;\n                    } else {\n                      s0 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e30);\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemacro() {\n          var s0, s1, s2, s3, s4;\n          var key = peg$currPos * 52 + 17;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$parseescape();\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parsechar();\n            if (s4 !== peg$FAILED) {\n              while (s4 !== peg$FAILED) {\n                s3.push(s4);\n                s4 = peg$parsechar();\n              }\n            } else {\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s1;\n              s1 = peg$f42(s3);\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = peg$currPos;\n            s2 = peg$parseescape();\n            if (s2 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s3 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s1;\n                s1 = peg$f43(s3);\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f44(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e31);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsegroup() {\n          var s0, s1, s2, s3, s4, s5;\n          var key = peg$currPos * 52 + 18;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_group();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            peg$silentFails++;\n            s5 = peg$parseend_group();\n            peg$silentFails--;\n            if (s5 === peg$FAILED) {\n              s4 = void 0;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsetoken();\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s3 = peg$f45(s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$parseend_group();\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsetoken();\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f45(s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s3 = peg$parseend_group();\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f46(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e32);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsegroup_contents_as_string() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 19;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parsegroup();\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f47();\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseenvironment() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n          var key = peg$currPos * 52 + 20;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_env();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsegroup_contents_as_string();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsesameline_comment();\n              if (s3 === peg$FAILED) {\n                s3 = null;\n              }\n              s4 = [];\n              s5 = peg$currPos;\n              s6 = peg$currPos;\n              peg$silentFails++;\n              s7 = peg$currPos;\n              s8 = peg$parseend_env();\n              if (s8 !== peg$FAILED) {\n                s9 = peg$parsegroup_contents_as_string();\n                if (s9 !== peg$FAILED) {\n                  peg$savedPos = peg$currPos;\n                  s10 = peg$f48(s2, s3, s9);\n                  if (s10) {\n                    s10 = void 0;\n                  } else {\n                    s10 = peg$FAILED;\n                  }\n                  if (s10 !== peg$FAILED) {\n                    s8 = [s8, s9, s10];\n                    s7 = s8;\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s7;\n                  s7 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s7;\n                s7 = peg$FAILED;\n              }\n              peg$silentFails--;\n              if (s7 === peg$FAILED) {\n                s6 = void 0;\n              } else {\n                peg$currPos = s6;\n                s6 = peg$FAILED;\n              }\n              if (s6 !== peg$FAILED) {\n                s7 = peg$parsetoken();\n                if (s7 !== peg$FAILED) {\n                  peg$savedPos = s5;\n                  s5 = peg$f49(s2, s3, s7);\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              while (s5 !== peg$FAILED) {\n                s4.push(s5);\n                s5 = peg$currPos;\n                s6 = peg$currPos;\n                peg$silentFails++;\n                s7 = peg$currPos;\n                s8 = peg$parseend_env();\n                if (s8 !== peg$FAILED) {\n                  s9 = peg$parsegroup_contents_as_string();\n                  if (s9 !== peg$FAILED) {\n                    peg$savedPos = peg$currPos;\n                    s10 = peg$f48(s2, s3, s9);\n                    if (s10) {\n                      s10 = void 0;\n                    } else {\n                      s10 = peg$FAILED;\n                    }\n                    if (s10 !== peg$FAILED) {\n                      s8 = [s8, s9, s10];\n                      s7 = s8;\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s7;\n                  s7 = peg$FAILED;\n                }\n                peg$silentFails--;\n                if (s7 === peg$FAILED) {\n                  s6 = void 0;\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n                if (s6 !== peg$FAILED) {\n                  s7 = peg$parsetoken();\n                  if (s7 !== peg$FAILED) {\n                    peg$savedPos = s5;\n                    s5 = peg$f49(s2, s3, s7);\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              }\n              s5 = peg$parseend_env();\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parsegroup_contents_as_string();\n                if (s6 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s0 = peg$f50(s2, s3, s4);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e33);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemath_environment() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n          var key = peg$currPos * 52 + 21;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsebegin_env();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsebegin_group();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsemath_env_name();\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parseend_group();\n                if (s4 !== peg$FAILED) {\n                  s5 = peg$parsesameline_comment();\n                  if (s5 === peg$FAILED) {\n                    s5 = null;\n                  }\n                  s6 = [];\n                  s7 = peg$currPos;\n                  s8 = peg$currPos;\n                  peg$silentFails++;\n                  s9 = peg$currPos;\n                  s10 = peg$parseend_env();\n                  if (s10 !== peg$FAILED) {\n                    s11 = peg$parsegroup();\n                    if (s11 !== peg$FAILED) {\n                      peg$savedPos = peg$currPos;\n                      s12 = peg$f51(s3, s5, s11);\n                      if (s12) {\n                        s12 = void 0;\n                      } else {\n                        s12 = peg$FAILED;\n                      }\n                      if (s12 !== peg$FAILED) {\n                        s10 = [s10, s11, s12];\n                        s9 = s10;\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s9;\n                      s9 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s9;\n                    s9 = peg$FAILED;\n                  }\n                  peg$silentFails--;\n                  if (s9 === peg$FAILED) {\n                    s8 = void 0;\n                  } else {\n                    peg$currPos = s8;\n                    s8 = peg$FAILED;\n                  }\n                  if (s8 !== peg$FAILED) {\n                    s9 = peg$parsemath_token();\n                    if (s9 !== peg$FAILED) {\n                      peg$savedPos = s7;\n                      s7 = peg$f52(s3, s5, s9);\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                  while (s7 !== peg$FAILED) {\n                    s6.push(s7);\n                    s7 = peg$currPos;\n                    s8 = peg$currPos;\n                    peg$silentFails++;\n                    s9 = peg$currPos;\n                    s10 = peg$parseend_env();\n                    if (s10 !== peg$FAILED) {\n                      s11 = peg$parsegroup();\n                      if (s11 !== peg$FAILED) {\n                        peg$savedPos = peg$currPos;\n                        s12 = peg$f51(s3, s5, s11);\n                        if (s12) {\n                          s12 = void 0;\n                        } else {\n                          s12 = peg$FAILED;\n                        }\n                        if (s12 !== peg$FAILED) {\n                          s10 = [s10, s11, s12];\n                          s9 = s10;\n                        } else {\n                          peg$currPos = s9;\n                          s9 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s9;\n                        s9 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s9;\n                      s9 = peg$FAILED;\n                    }\n                    peg$silentFails--;\n                    if (s9 === peg$FAILED) {\n                      s8 = void 0;\n                    } else {\n                      peg$currPos = s8;\n                      s8 = peg$FAILED;\n                    }\n                    if (s8 !== peg$FAILED) {\n                      s9 = peg$parsemath_token();\n                      if (s9 !== peg$FAILED) {\n                        peg$savedPos = s7;\n                        s7 = peg$f52(s3, s5, s9);\n                      } else {\n                        peg$currPos = s7;\n                        s7 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s7;\n                      s7 = peg$FAILED;\n                    }\n                  }\n                  s7 = peg$parseend_env();\n                  if (s7 !== peg$FAILED) {\n                    s8 = peg$parsebegin_group();\n                    if (s8 !== peg$FAILED) {\n                      s9 = peg$parsemath_env_name();\n                      if (s9 !== peg$FAILED) {\n                        s10 = peg$parseend_group();\n                        if (s10 !== peg$FAILED) {\n                          peg$savedPos = s0;\n                          s0 = peg$f53(s3, s5, s6);\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e34);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsebegin_display_math() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 23;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 91) {\n              s2 = peg$c4;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e14);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseend_display_math() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 24;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 93) {\n              s2 = peg$c5;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e15);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsebegin_inline_math() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 25;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 40) {\n              s2 = peg$c16;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e36);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseend_inline_math() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 26;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 41) {\n              s2 = peg$c17;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e37);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsebegin_env() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 27;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 5) === peg$c18) {\n              s2 = peg$c18;\n              peg$currPos += 5;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e38);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseend_env() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 28;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$parseescape();\n          if (s1 !== peg$FAILED) {\n            if (input.substr(peg$currPos, 3) === peg$c19) {\n              s2 = peg$c19;\n              peg$currPos += 3;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e39);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemath_env_name() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 29;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.substr(peg$currPos, 9) === peg$c20) {\n            s1 = peg$c20;\n            peg$currPos += 9;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e40);\n            }\n          }\n          if (s1 === peg$FAILED) {\n            if (input.substr(peg$currPos, 8) === peg$c21) {\n              s1 = peg$c21;\n              peg$currPos += 8;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e41);\n              }\n            }\n            if (s1 === peg$FAILED) {\n              if (input.substr(peg$currPos, 6) === peg$c22) {\n                s1 = peg$c22;\n                peg$currPos += 6;\n              } else {\n                s1 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e42);\n                }\n              }\n              if (s1 === peg$FAILED) {\n                if (input.substr(peg$currPos, 5) === peg$c23) {\n                  s1 = peg$c23;\n                  peg$currPos += 5;\n                } else {\n                  s1 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e43);\n                  }\n                }\n                if (s1 === peg$FAILED) {\n                  if (input.substr(peg$currPos, 8) === peg$c24) {\n                    s1 = peg$c24;\n                    peg$currPos += 8;\n                  } else {\n                    s1 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e44);\n                    }\n                  }\n                  if (s1 === peg$FAILED) {\n                    if (input.substr(peg$currPos, 7) === peg$c25) {\n                      s1 = peg$c25;\n                      peg$currPos += 7;\n                    } else {\n                      s1 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e45);\n                      }\n                    }\n                    if (s1 === peg$FAILED) {\n                      if (input.substr(peg$currPos, 7) === peg$c26) {\n                        s1 = peg$c26;\n                        peg$currPos += 7;\n                      } else {\n                        s1 = peg$FAILED;\n                        if (peg$silentFails === 0) {\n                          peg$fail(peg$e46);\n                        }\n                      }\n                      if (s1 === peg$FAILED) {\n                        if (input.substr(peg$currPos, 6) === peg$c27) {\n                          s1 = peg$c27;\n                          peg$currPos += 6;\n                        } else {\n                          s1 = peg$FAILED;\n                          if (peg$silentFails === 0) {\n                            peg$fail(peg$e47);\n                          }\n                        }\n                        if (s1 === peg$FAILED) {\n                          if (input.substr(peg$currPos, 9) === peg$c28) {\n                            s1 = peg$c28;\n                            peg$currPos += 9;\n                          } else {\n                            s1 = peg$FAILED;\n                            if (peg$silentFails === 0) {\n                              peg$fail(peg$e48);\n                            }\n                          }\n                          if (s1 === peg$FAILED) {\n                            if (input.substr(peg$currPos, 8) === peg$c29) {\n                              s1 = peg$c29;\n                              peg$currPos += 8;\n                            } else {\n                              s1 = peg$FAILED;\n                              if (peg$silentFails === 0) {\n                                peg$fail(peg$e49);\n                              }\n                            }\n                            if (s1 === peg$FAILED) {\n                              if (input.substr(peg$currPos, 8) === peg$c30) {\n                                s1 = peg$c30;\n                                peg$currPos += 8;\n                              } else {\n                                s1 = peg$FAILED;\n                                if (peg$silentFails === 0) {\n                                  peg$fail(peg$e50);\n                                }\n                              }\n                              if (s1 === peg$FAILED) {\n                                if (input.substr(peg$currPos, 7) === peg$c31) {\n                                  s1 = peg$c31;\n                                  peg$currPos += 7;\n                                } else {\n                                  s1 = peg$FAILED;\n                                  if (peg$silentFails === 0) {\n                                    peg$fail(peg$e51);\n                                  }\n                                }\n                                if (s1 === peg$FAILED) {\n                                  if (input.substr(peg$currPos, 5) === peg$c32) {\n                                    s1 = peg$c32;\n                                    peg$currPos += 5;\n                                  } else {\n                                    s1 = peg$FAILED;\n                                    if (peg$silentFails === 0) {\n                                      peg$fail(peg$e52);\n                                    }\n                                  }\n                                  if (s1 === peg$FAILED) {\n                                    if (input.substr(peg$currPos, 4) === peg$c33) {\n                                      s1 = peg$c33;\n                                      peg$currPos += 4;\n                                    } else {\n                                      s1 = peg$FAILED;\n                                      if (peg$silentFails === 0) {\n                                        peg$fail(peg$e53);\n                                      }\n                                    }\n                                    if (s1 === peg$FAILED) {\n                                      if (input.substr(peg$currPos, 11) === peg$c34) {\n                                        s1 = peg$c34;\n                                        peg$currPos += 11;\n                                      } else {\n                                        s1 = peg$FAILED;\n                                        if (peg$silentFails === 0) {\n                                          peg$fail(peg$e54);\n                                        }\n                                      }\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f56(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseescape() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 30;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s1 = peg$c35;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e56);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f57();\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e55);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsebegin_group() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 31;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 123) {\n            s1 = peg$c36;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e57);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f58(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseend_group() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 32;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 125) {\n            s1 = peg$c37;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e58);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f59(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemath_shift() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 33;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 36) {\n            s1 = peg$c38;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e59);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f60(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsealignment_tab() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 34;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 38) {\n            s1 = peg$c39;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e60);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f61(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsenl() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 35;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          if (input.charCodeAt(peg$currPos) === 13) {\n            s2 = peg$c40;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e62);\n            }\n          }\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 10) {\n              s2 = peg$c41;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e63);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 13) {\n              s0 = peg$c40;\n              peg$currPos++;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e62);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              if (input.substr(peg$currPos, 2) === peg$c42) {\n                s0 = peg$c42;\n                peg$currPos += 2;\n              } else {\n                s0 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e64);\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e61);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsemacro_parameter() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 36;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 35) {\n            s1 = peg$c43;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e65);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f62(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsesuperscript() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 37;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 94) {\n            s1 = peg$c44;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e66);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f63(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsesubscript() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 38;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 95) {\n            s1 = peg$c45;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e67);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f64(s1);\n          }\n          s0 = s1;\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseignore() {\n          var s0;\n          var key = peg$currPos * 52 + 39;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          if (input.charCodeAt(peg$currPos) === 0) {\n            s0 = peg$c46;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e68);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsesp() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 40;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          if (peg$r1.test(input.charAt(peg$currPos))) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e69);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s2 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e69);\n                }\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f65();\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsechar() {\n          var s0;\n          var key = peg$currPos * 52 + 41;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          if (peg$r2.test(input.charAt(peg$currPos))) {\n            s0 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e71);\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e70);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsenum() {\n          var s0;\n          var key = peg$currPos * 52 + 42;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          if (peg$r3.test(input.charAt(peg$currPos))) {\n            s0 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e73);\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e72);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsepunctuation() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 43;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (peg$r4.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e75);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f66(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e74);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsecomment_start() {\n          var s0;\n          var key = peg$currPos * 52 + 44;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          if (input.charCodeAt(peg$currPos) === 37) {\n            s0 = peg$c0;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e7);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsefull_comment() {\n          var s0;\n          var key = peg$currPos * 52 + 45;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$parseownline_comment();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsesameline_comment();\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e76);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseownline_comment() {\n          var s0, s1, s2, s3;\n          var key = peg$currPos * 52 + 46;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = [];\n          s3 = peg$parsesp();\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parsesp();\n          }\n          s3 = peg$parsenl();\n          if (s3 !== peg$FAILED) {\n            s2 = [s2, s3];\n            s1 = s2;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = null;\n          }\n          s2 = peg$parseleading_sp();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parsecomment();\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f67(s2, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsesameline_comment() {\n          var s0, s1, s2;\n          var key = peg$currPos * 52 + 47;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsesp();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsesp();\n          }\n          s2 = peg$parsecomment();\n          if (s2 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s0 = peg$f68(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsecomment() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          var key = peg$currPos * 52 + 48;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsecomment_start();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            peg$silentFails++;\n            s5 = peg$parsenl();\n            peg$silentFails--;\n            if (s5 === peg$FAILED) {\n              s4 = void 0;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e3);\n                }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s3 = peg$f69(s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$parsenl();\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f69(s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s3 = peg$currPos;\n            peg$silentFails++;\n            s4 = peg$parseparbreak();\n            peg$silentFails--;\n            if (s4 !== peg$FAILED) {\n              peg$currPos = s3;\n              s3 = void 0;\n            } else {\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f70(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsecomment_start();\n            if (s1 !== peg$FAILED) {\n              s2 = [];\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              peg$silentFails++;\n              s5 = peg$parsenl();\n              peg$silentFails--;\n              if (s5 === peg$FAILED) {\n                s4 = void 0;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e3);\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s3 = peg$f71(s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n              while (s3 !== peg$FAILED) {\n                s2.push(s3);\n                s3 = peg$currPos;\n                s4 = peg$currPos;\n                peg$silentFails++;\n                s5 = peg$parsenl();\n                peg$silentFails--;\n                if (s5 === peg$FAILED) {\n                  s4 = void 0;\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n                if (s4 !== peg$FAILED) {\n                  if (input.length > peg$currPos) {\n                    s5 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s5 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e3);\n                    }\n                  }\n                  if (s5 !== peg$FAILED) {\n                    peg$savedPos = s3;\n                    s3 = peg$f71(s5);\n                  } else {\n                    peg$currPos = s3;\n                    s3 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              }\n              s3 = peg$currPos;\n              s4 = peg$parsenl();\n              if (s4 !== peg$FAILED) {\n                s5 = [];\n                s6 = peg$parsesp();\n                while (s6 !== peg$FAILED) {\n                  s5.push(s6);\n                  s6 = peg$parsesp();\n                }\n                s6 = peg$currPos;\n                peg$silentFails++;\n                s7 = peg$parsecomment_start();\n                peg$silentFails--;\n                if (s7 === peg$FAILED) {\n                  s6 = void 0;\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n                if (s6 !== peg$FAILED) {\n                  s4 = [s4, s5, s6];\n                  s3 = s4;\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n              if (s3 === peg$FAILED) {\n                s3 = peg$parsenl();\n                if (s3 === peg$FAILED) {\n                  s3 = peg$parseEOF();\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s0 = peg$f72(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e77);\n            }\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseleading_sp() {\n          var s0, s1, s2, s3, s4;\n          var key = peg$currPos * 52 + 49;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$parsestart_of_line();\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parsesp();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parsesp();\n            }\n            s2 = [s2, s3];\n            s1 = s2;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parsestart_of_line() {\n          var s0;\n          var key = peg$currPos * 52 + 50;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          peg$savedPos = peg$currPos;\n          s0 = peg$f73();\n          if (s0) {\n            s0 = void 0;\n          } else {\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function peg$parseEOF() {\n          var s0, s1;\n          var key = peg$currPos * 52 + 51;\n          var cached = peg$resultsCache[key];\n          if (cached) {\n            peg$currPos = cached.nextPos;\n            return cached.result;\n          }\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n          return s0;\n        }\n        function toString2(e) {\n          if (typeof e === \"string\") {\n            return e;\n          }\n          if (typeof e.content === \"string\") {\n            return e.content;\n          }\n          if (e && e.type === \"whitespace\") {\n            return \" \";\n          }\n          return e;\n        }\n        function compare_env(g1, g2) {\n          const g1Name = typeof g1 === \"string\" ? g1 : g1.content.map(toString2).join(\"\");\n          const g2Name = typeof g2 === \"string\" ? g2 : g2.content.map(toString2).join(\"\");\n          return g1Name === g2Name;\n        }\n        function createNode(type, extra = {}) {\n          return { type, ...extra, position: location() };\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _AlignEnvironmentPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e0 = peg$anyExpectation();\n        var peg$f0 = function() {\n          return [];\n        };\n        var peg$f1 = function(x) {\n          return { cells: [], colSeps: [], ...x };\n        };\n        var peg$f2 = function(rowItems, rowSep, trailingComment) {\n          return { ...rowItems, rowSep, trailingComment };\n        };\n        var peg$f3 = function(rowItems, trailingComment) {\n          return { ...rowItems, rowSep: null, trailingComment };\n        };\n        var peg$f4 = function(x) {\n          return x;\n        };\n        var peg$f5 = function(x) {\n          return {\n            cells: [],\n            colSeps: [],\n            rowSep: null,\n            trailingComment: x\n          };\n        };\n        var peg$f6 = function(x) {\n          return x;\n        };\n        var peg$f7 = function(colSep, cell) {\n          return { colSep, cell };\n        };\n        var peg$f8 = function(colSep) {\n          return { colSep };\n        };\n        var peg$f9 = function(a, b) {\n          return processRow(a, b);\n        };\n        var peg$f10 = function(b) {\n          return processRow(null, b);\n        };\n        var peg$f11 = function(tok) {\n          return options.isSameLineComment(tok);\n        };\n        var peg$f12 = function(tok) {\n          return tok;\n        };\n        var peg$f13 = function(tok) {\n          return options.isOwnLineComment(tok);\n        };\n        var peg$f14 = function(tok) {\n          return tok;\n        };\n        var peg$f15 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$f16 = function(tok) {\n          return tok;\n        };\n        var peg$f17 = function(tok) {\n          return options.isRowSep(tok);\n        };\n        var peg$f18 = function(tok) {\n          return tok;\n        };\n        var peg$f19 = function(tok) {\n          return options.isColSep(tok);\n        };\n        var peg$f20 = function(tok) {\n          return tok;\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1;\n          s0 = [];\n          s1 = peg$parsecomment_only_line();\n          if (s1 === peg$FAILED) {\n            s1 = peg$parserow_with_end();\n            if (s1 === peg$FAILED) {\n              s1 = peg$parserow_without_end();\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            while (s1 !== peg$FAILED) {\n              s0.push(s1);\n              s1 = peg$parsecomment_only_line();\n              if (s1 === peg$FAILED) {\n                s1 = peg$parserow_with_end();\n                if (s1 === peg$FAILED) {\n                  s1 = peg$parserow_without_end();\n                }\n              }\n            }\n          } else {\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseEOL();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f0();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parserow_with_end() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$parserow_items();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s2 = peg$f1(s2);\n          s1 = s2;\n          s2 = peg$parserow_sep();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parsetrailing_comment();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s0 = peg$f2(s1, s2, s3);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parserow_without_end() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parserow_items();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsetrailing_comment();\n            if (s2 === peg$FAILED) {\n              s2 = null;\n            }\n            s0 = peg$f3(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsetrailing_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace();\n          }\n          s2 = peg$parsesame_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f4(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecomment_only_line() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace();\n          }\n          s2 = peg$parseown_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f5(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsetoken() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          s2 = peg$parserow_sep();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsecol_sep();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parsetrailing_comment();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parseown_line_comment();\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f6(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecell() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsetoken();\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parsetoken();\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parseseparated_cell() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsecol_sep();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsecell();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f7(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsecol_sep();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f8(s1);\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parserow_items() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parsecell();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parseseparated_cell();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parseseparated_cell();\n            }\n            s0 = peg$f9(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            s2 = peg$parseseparated_cell();\n            if (s2 !== peg$FAILED) {\n              while (s2 !== peg$FAILED) {\n                s1.push(s2);\n                s2 = peg$parseseparated_cell();\n              }\n            } else {\n              s1 = peg$FAILED;\n            }\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f10(s1);\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsesame_line_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f11(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f12(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseown_line_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f13(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f14(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsewhitespace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f15(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f16(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parserow_sep() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f17(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f18(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecol_sep() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f19(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f20(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function processRow(leadCell, otherCells) {\n          const cells = [leadCell || []];\n          const seps = [];\n          for (const x of otherCells) {\n            cells.push(x.cell || []);\n            seps.push(x.colSep);\n          }\n          return { cells, colSeps: seps };\n        }\n        if (!options.isWhitespace) {\n          try {\n            Object.assign(\n              options,\n              createMatchers([\"\\\\\", \"hline\", \"cr\"], [\"&\"])\n            );\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _ArgSpecPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { args_spec_list: peg$parseargs_spec_list };\n        var peg$startRuleFunction = peg$parseargs_spec_list;\n        var peg$c1 = \"v\";\n        var peg$c2 = \"b\";\n        var peg$c3 = \"!\";\n        var peg$c4 = \"D\";\n        var peg$c5 = \"d\";\n        var peg$c6 = \"s\";\n        var peg$c7 = \"O\";\n        var peg$c8 = \"o\";\n        var peg$c9 = \"e\";\n        var peg$c10 = \"E\";\n        var peg$c11 = \"t\";\n        var peg$c12 = \"R\";\n        var peg$c13 = \"r\";\n        var peg$c14 = \"u\";\n        var peg$c15 = \"m\";\n        var peg$c16 = \"{\";\n        var peg$c17 = \"}\";\n        var peg$c18 = \" \";\n        var peg$c19 = \"\\n\";\n        var peg$c20 = \"\\r\";\n        var peg$c21 = \"\\\\\";\n        var peg$r0 = /^[{ ]/;\n        var peg$r1 = /^[a-zA-Z]/;\n        var peg$r2 = /^[{}]/;\n        var peg$e0 = peg$literalExpectation(\"+\", false);\n        var peg$e1 = peg$literalExpectation(\"v\", false);\n        var peg$e2 = peg$anyExpectation();\n        var peg$e3 = peg$literalExpectation(\"b\", false);\n        var peg$e4 = peg$literalExpectation(\"!\", false);\n        var peg$e5 = peg$literalExpectation(\"D\", false);\n        var peg$e6 = peg$literalExpectation(\"d\", false);\n        var peg$e7 = peg$literalExpectation(\"s\", false);\n        var peg$e8 = peg$literalExpectation(\"O\", false);\n        var peg$e9 = peg$literalExpectation(\"o\", false);\n        var peg$e10 = peg$literalExpectation(\"e\", false);\n        var peg$e11 = peg$literalExpectation(\"E\", false);\n        var peg$e12 = peg$literalExpectation(\"t\", false);\n        var peg$e13 = peg$literalExpectation(\"R\", false);\n        var peg$e14 = peg$literalExpectation(\"r\", false);\n        var peg$e15 = peg$literalExpectation(\"u\", false);\n        var peg$e16 = peg$classExpectation([\"{\", \" \"], false, false);\n        var peg$e17 = peg$literalExpectation(\"m\", false);\n        var peg$e18 = peg$literalExpectation(\"{\", false);\n        var peg$e19 = peg$literalExpectation(\"}\", false);\n        var peg$e20 = peg$literalExpectation(\" \", false);\n        var peg$e21 = peg$literalExpectation(\"\\n\", false);\n        var peg$e22 = peg$literalExpectation(\"\\r\", false);\n        var peg$e23 = peg$literalExpectation(\"\\\\\", false);\n        var peg$e24 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n        var peg$e25 = peg$classExpectation([\"{\", \"}\"], false, false);\n        var peg$f0 = function(x) {\n          return x;\n        };\n        var peg$f1 = function(spec) {\n          return spec;\n        };\n        var peg$f2 = function(spec) {\n          return spec;\n        };\n        var peg$f3 = function(openBrace) {\n          return createNode(\"verbatim\", { openBrace, closeBrace: openBrace });\n        };\n        var peg$f4 = function() {\n          return createNode(\"body\");\n        };\n        var peg$f5 = function(leading_bang, spec) {\n          return leading_bang ? { ...spec, noLeadingWhitespace: true } : spec;\n        };\n        var peg$f6 = function(braceSpec, defaultArg) {\n          return createNode(\"optional\", { ...braceSpec, defaultArg });\n        };\n        var peg$f7 = function(braceSpec) {\n          return createNode(\"optional\", braceSpec);\n        };\n        var peg$f8 = function() {\n          return createNode(\"optionalStar\");\n        };\n        var peg$f9 = function(g) {\n          return createNode(\"optional\", { defaultArg: g });\n        };\n        var peg$f10 = function() {\n          return createNode(\"optional\");\n        };\n        var peg$f11 = function(args) {\n          return createNode(\"embellishment\", {\n            embellishmentTokens: args\n          });\n        };\n        var peg$f12 = function(args, g) {\n          return createNode(\"embellishment\", {\n            embellishmentTokens: args,\n            defaultArg: g\n          });\n        };\n        var peg$f13 = function(tok) {\n          return createNode(\"optionalToken\", { token: tok });\n        };\n        var peg$f14 = function(braceSpec, defaultArg) {\n          return createNode(\"mandatory\", { ...braceSpec, defaultArg });\n        };\n        var peg$f15 = function(braceSpec) {\n          return createNode(\"mandatory\", braceSpec);\n        };\n        var peg$f16 = function(stopTokens) {\n          return createNode(\"until\", { stopTokens });\n        };\n        var peg$f17 = function(x) {\n          return [x];\n        };\n        var peg$f18 = function(g) {\n          return g.content;\n        };\n        var peg$f19 = function() {\n          return createNode(\"mandatory\");\n        };\n        var peg$f20 = function(openBrace, closeBrace) {\n          return { openBrace, closeBrace };\n        };\n        var peg$f21 = function(g) {\n          return g.content.map(groupToStr).join(\"\");\n        };\n        var peg$f22 = function(t) {\n          return [t];\n        };\n        var peg$f23 = function(args) {\n          return args.filter((a) => !a.match(/^\\s*$/));\n        };\n        var peg$f24 = function(content) {\n          return { type: \"group\", content };\n        };\n        var peg$f25 = function() {\n          return \"\";\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$literalExpectation(text2, ignoreCase) {\n          return { type: \"literal\", text: text2, ignoreCase };\n        }\n        function peg$classExpectation(parts, inverted, ignoreCase) {\n          return { type: \"class\", parts, inverted, ignoreCase };\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parseargs_spec_list() {\n          var s0, s1, s2, s4;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$currPos;\n          peg$parsewhitespace();\n          s4 = peg$parsearg_spec();\n          if (s4 !== peg$FAILED) {\n            s2 = peg$f0(s4);\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$currPos;\n            peg$parsewhitespace();\n            s4 = peg$parsearg_spec();\n            if (s4 !== peg$FAILED) {\n              s2 = peg$f0(s4);\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n          }\n          s2 = peg$parsewhitespace();\n          s0 = peg$f1(s1);\n          return s0;\n        }\n        function peg$parsearg_spec() {\n          var s0, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 43) {\n            peg$currPos++;\n          } else {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          s2 = peg$parseoptional();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsemandatory();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseverbatim();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parserequired();\n                if (s2 === peg$FAILED) {\n                  s2 = peg$parsebody();\n                  if (s2 === peg$FAILED) {\n                    s2 = peg$parseuntil();\n                  }\n                }\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f2(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseverbatim() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 118) {\n            s1 = peg$c1;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e1);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f3(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsebody() {\n          var s0, s1;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 98) {\n            s1 = peg$c2;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f4();\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parseoptional() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 33) {\n            s1 = peg$c3;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e4);\n            }\n          }\n          if (s1 === peg$FAILED) {\n            s1 = null;\n          }\n          s2 = peg$parseoptional_star();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseoptional_standard();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseoptional_delimited();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parseoptional_embellishment();\n                if (s2 === peg$FAILED) {\n                  s2 = peg$parseoptional_token();\n                }\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f5(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseoptional_delimited() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 68) {\n            s1 = peg$c4;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e5);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsebrace_spec();\n            s3 = peg$parsearg();\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f6(s2, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 100) {\n              s1 = peg$c5;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e6);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parsebrace_spec();\n              s0 = peg$f7(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parseoptional_star() {\n          var s0, s1;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 115) {\n            s1 = peg$c6;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e7);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f8();\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parseoptional_standard() {\n          var s0, s1, s3;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 79) {\n            s1 = peg$c7;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$parsewhitespace();\n            s3 = peg$parsearg();\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f9(s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 111) {\n              s1 = peg$c8;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e9);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f10();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parseoptional_embellishment() {\n          var s0, s1, s3, s5;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 101) {\n            s1 = peg$c9;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e10);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$parsewhitespace();\n            s3 = peg$parseargs();\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f11(s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 69) {\n              s1 = peg$c10;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e11);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              peg$parsewhitespace();\n              s3 = peg$parseargs();\n              if (s3 !== peg$FAILED) {\n                peg$parsewhitespace();\n                s5 = peg$parseargs();\n                if (s5 !== peg$FAILED) {\n                  s0 = peg$f12(s3, s5);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parseoptional_token() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 116) {\n            s1 = peg$c11;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e12);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f13(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parserequired() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 82) {\n            s1 = peg$c12;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e13);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsebrace_spec();\n            s3 = peg$parsearg();\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f14(s2, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 114) {\n              s1 = peg$c13;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e14);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parsebrace_spec();\n              s0 = peg$f15(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parseuntil() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 117) {\n            s1 = peg$c14;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e15);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseuntil_stop_token();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f16(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseuntil_stop_token() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          if (peg$r0.test(input.charAt(peg$currPos))) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e16);\n            }\n          }\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f17(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsebraced_group();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f18(s1);\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsemandatory() {\n          var s0, s1;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 109) {\n            s1 = peg$c15;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e17);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f19();\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parsebrace_spec() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          s3 = peg$currPos;\n          peg$silentFails++;\n          s4 = peg$parsewhitespace_token();\n          peg$silentFails--;\n          if (s4 === peg$FAILED) {\n            s3 = void 0;\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parsemacro();\n            if (s4 === peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e2);\n                }\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              s3 = [s3, s4];\n              s2 = s3;\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s1 = input.substring(s1, peg$currPos);\n          s2 = peg$currPos;\n          s3 = peg$currPos;\n          s4 = peg$currPos;\n          peg$silentFails++;\n          s5 = peg$parsewhitespace_token();\n          peg$silentFails--;\n          if (s5 === peg$FAILED) {\n            s4 = void 0;\n          } else {\n            peg$currPos = s4;\n            s4 = peg$FAILED;\n          }\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parsemacro();\n            if (s5 === peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e2);\n                }\n              }\n            }\n            if (s5 !== peg$FAILED) {\n              s4 = [s4, s5];\n              s3 = s4;\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n          if (s3 === peg$FAILED) {\n            s3 = null;\n          }\n          s2 = input.substring(s2, peg$currPos);\n          s0 = peg$f20(s1, s2);\n          return s0;\n        }\n        function peg$parsearg() {\n          var s0, s1;\n          s0 = peg$parsetoken();\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsebraced_group();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f21(s1);\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parseargs() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parsetoken();\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f22(s1);\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 123) {\n              s1 = peg$c16;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e18);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = [];\n              s3 = peg$parsearg();\n              if (s3 === peg$FAILED) {\n                s3 = peg$parsewhitespace_token();\n              }\n              while (s3 !== peg$FAILED) {\n                s2.push(s3);\n                s3 = peg$parsearg();\n                if (s3 === peg$FAILED) {\n                  s3 = peg$parsewhitespace_token();\n                }\n              }\n              if (input.charCodeAt(peg$currPos) === 125) {\n                s3 = peg$c17;\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e19);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s0 = peg$f23(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parsebraced_group() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 123) {\n            s1 = peg$c16;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e18);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            s4 = peg$currPos;\n            s5 = peg$currPos;\n            peg$silentFails++;\n            if (input.charCodeAt(peg$currPos) === 125) {\n              s6 = peg$c17;\n              peg$currPos++;\n            } else {\n              s6 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e19);\n              }\n            }\n            peg$silentFails--;\n            if (s6 === peg$FAILED) {\n              s5 = void 0;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$currPos;\n              peg$silentFails++;\n              s7 = peg$parsebraced_group();\n              peg$silentFails--;\n              if (s7 === peg$FAILED) {\n                s6 = void 0;\n              } else {\n                peg$currPos = s6;\n                s6 = peg$FAILED;\n              }\n              if (s6 !== peg$FAILED) {\n                s7 = peg$parsetoken();\n                if (s7 === peg$FAILED) {\n                  s7 = peg$parsewhitespace_token();\n                }\n                if (s7 !== peg$FAILED) {\n                  s5 = [s5, s6, s7];\n                  s4 = s5;\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              s3 = input.substring(s3, peg$currPos);\n            } else {\n              s3 = s4;\n            }\n            if (s3 === peg$FAILED) {\n              s3 = peg$parsebraced_group();\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              s4 = peg$currPos;\n              s5 = peg$currPos;\n              peg$silentFails++;\n              if (input.charCodeAt(peg$currPos) === 125) {\n                s6 = peg$c17;\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e19);\n                }\n              }\n              peg$silentFails--;\n              if (s6 === peg$FAILED) {\n                s5 = void 0;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                s6 = peg$currPos;\n                peg$silentFails++;\n                s7 = peg$parsebraced_group();\n                peg$silentFails--;\n                if (s7 === peg$FAILED) {\n                  s6 = void 0;\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n                if (s6 !== peg$FAILED) {\n                  s7 = peg$parsetoken();\n                  if (s7 === peg$FAILED) {\n                    s7 = peg$parsewhitespace_token();\n                  }\n                  if (s7 !== peg$FAILED) {\n                    s5 = [s5, s6, s7];\n                    s4 = s5;\n                  } else {\n                    peg$currPos = s4;\n                    s4 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s3 = input.substring(s3, peg$currPos);\n              } else {\n                s3 = s4;\n              }\n              if (s3 === peg$FAILED) {\n                s3 = peg$parsebraced_group();\n              }\n            }\n            if (input.charCodeAt(peg$currPos) === 125) {\n              s3 = peg$c17;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e19);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f24(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsewhitespace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace_token();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace_token();\n          }\n          s1 = peg$f25();\n          s0 = s1;\n          return s0;\n        }\n        function peg$parsewhitespace_token() {\n          var s0;\n          if (input.charCodeAt(peg$currPos) === 32) {\n            s0 = peg$c18;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e20);\n            }\n          }\n          if (s0 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 10) {\n              s0 = peg$c19;\n              peg$currPos++;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e21);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 13) {\n                s0 = peg$c20;\n                peg$currPos++;\n              } else {\n                s0 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e22);\n                }\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsemacro() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s2 = peg$c21;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e23);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            if (peg$r1.test(input.charAt(peg$currPos))) {\n              s4 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e24);\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              while (s4 !== peg$FAILED) {\n                s3.push(s4);\n                if (peg$r1.test(input.charAt(peg$currPos))) {\n                  s4 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s4 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e24);\n                  }\n                }\n              }\n            } else {\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              s2 = [s2, s3];\n              s1 = s2;\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 92) {\n              s2 = peg$c21;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e23);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$currPos;\n              peg$silentFails++;\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e24);\n                }\n              }\n              peg$silentFails--;\n              if (s4 === peg$FAILED) {\n                s3 = void 0;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n              if (s3 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s4 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s4 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e2);\n                  }\n                }\n                if (s4 !== peg$FAILED) {\n                  s2 = [s2, s3, s4];\n                  s1 = s2;\n                } else {\n                  peg$currPos = s1;\n                  s1 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n            if (s1 !== peg$FAILED) {\n              s0 = input.substring(s0, peg$currPos);\n            } else {\n              s0 = s1;\n            }\n          }\n          return s0;\n        }\n        function peg$parsetoken() {\n          var s0, s1, s2, s3;\n          s0 = peg$parsemacro();\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$currPos;\n            peg$silentFails++;\n            if (peg$r2.test(input.charAt(peg$currPos))) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e25);\n              }\n            }\n            peg$silentFails--;\n            if (s2 === peg$FAILED) {\n              s1 = void 0;\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$currPos;\n              peg$silentFails++;\n              s3 = peg$parsewhitespace_token();\n              peg$silentFails--;\n              if (s3 === peg$FAILED) {\n                s2 = void 0;\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n              if (s2 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s3 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s3 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e2);\n                  }\n                }\n                if (s3 !== peg$FAILED) {\n                  s0 = s3;\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        const DEFAULT_OPTIONS = {\n          optional: { openBrace: \"[\", closeBrace: \"]\" },\n          mandatory: { openBrace: \"{\", closeBrace: \"}\" }\n        };\n        function createNode(type, options2) {\n          const computedOptions = DEFAULT_OPTIONS[type] || {};\n          return { type, ...computedOptions, ...options2 };\n        }\n        function groupToStr(node) {\n          if (typeof node !== \"object\" || !node) {\n            return node;\n          }\n          if (node.type === \"group\") {\n            return `{${node.content.map(groupToStr).join(\"\")}}`;\n          }\n          return node;\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _PgfkeysPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e0 = peg$anyExpectation();\n        var peg$f0 = function() {\n          return [];\n        };\n        var peg$f1 = function(rowItems, trailingComment) {\n          return {\n            itemParts: [],\n            ...rowItems,\n            trailingComment,\n            trailingComma: true\n          };\n        };\n        var peg$f2 = function(rowItems, trailingComment) {\n          return { ...rowItems, trailingComment };\n        };\n        var peg$f3 = function(a, b) {\n          return processItem(a, b);\n        };\n        var peg$f4 = function(b) {\n          return processItem(null, b);\n        };\n        var peg$f5 = function(cell) {\n          return { cell };\n        };\n        var peg$f6 = function() {\n          return {};\n        };\n        var peg$f7 = function(part) {\n          return part;\n        };\n        var peg$f8 = function(x) {\n          return x;\n        };\n        var peg$f9 = function(space, x) {\n          return {\n            trailingComment: x,\n            leadingParbreak: space.parbreak > 0\n          };\n        };\n        var peg$f10 = function(list) {\n          return {\n            whitespace: list.filter((x) => options.isWhitespace(x)).length,\n            parbreak: list.filter((x) => options.isParbreak(x)).length\n          };\n        };\n        var peg$f11 = function() {\n          return !options.allowParenGroups;\n        };\n        var peg$f12 = function(tok) {\n          return options.isSameLineComment(tok);\n        };\n        var peg$f13 = function(tok) {\n          return tok;\n        };\n        var peg$f14 = function(tok) {\n          return options.isOwnLineComment(tok);\n        };\n        var peg$f15 = function(tok) {\n          return tok;\n        };\n        var peg$f16 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$f17 = function(tok) {\n          return tok;\n        };\n        var peg$f18 = function(tok) {\n          return options.isParbreak(tok);\n        };\n        var peg$f19 = function(tok) {\n          return tok;\n        };\n        var peg$f20 = function(tok) {\n          return options.isComma(tok);\n        };\n        var peg$f21 = function(tok) {\n          return tok;\n        };\n        var peg$f22 = function(tok) {\n          return options.isEquals(tok);\n        };\n        var peg$f23 = function(tok) {\n          return tok;\n        };\n        var peg$f24 = function(tok) {\n          return options.isChar(tok, \"(\");\n        };\n        var peg$f25 = function(tok) {\n          return tok;\n        };\n        var peg$f26 = function(tok) {\n          return options.isChar(tok, \")\");\n        };\n        var peg$f27 = function(tok) {\n          return tok;\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1, s2;\n          s0 = [];\n          s1 = peg$parsecomment_only_line();\n          if (s1 === peg$FAILED) {\n            s1 = peg$parseitem_with_end();\n            if (s1 === peg$FAILED) {\n              s1 = peg$parseitem_without_end();\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            while (s1 !== peg$FAILED) {\n              s0.push(s1);\n              s1 = peg$parsecomment_only_line();\n              if (s1 === peg$FAILED) {\n                s1 = peg$parseitem_with_end();\n                if (s1 === peg$FAILED) {\n                  s1 = peg$parseitem_without_end();\n                }\n              }\n            }\n          } else {\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            s2 = peg$parsewhitespace();\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parsewhitespace();\n            }\n            s2 = peg$parseEOL();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f0();\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parseitem_with_end() {\n          var s0, s2, s4, s5, s6, s7, s8;\n          s0 = peg$currPos;\n          peg$parsewhitespace_or_parbreaks();\n          s2 = peg$parserow_items();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          peg$parsewhitespace_or_parbreaks();\n          s4 = peg$parseitem_sep();\n          if (s4 !== peg$FAILED) {\n            s5 = [];\n            s6 = peg$parsewhitespace();\n            while (s6 !== peg$FAILED) {\n              s5.push(s6);\n              s6 = peg$parsewhitespace();\n            }\n            s6 = peg$parsetrailing_comment();\n            if (s6 === peg$FAILED) {\n              s6 = null;\n            }\n            s7 = [];\n            s8 = peg$parsewhitespace();\n            while (s8 !== peg$FAILED) {\n              s7.push(s8);\n              s8 = peg$parsewhitespace();\n            }\n            s0 = peg$f1(s2, s6);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseitem_without_end() {\n          var s0, s2, s3;\n          s0 = peg$currPos;\n          peg$parsewhitespace_or_parbreaks();\n          s2 = peg$parserow_items();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parsetrailing_comment();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s0 = peg$f2(s2, s3);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parserow_items() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parseitem_part();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parseseparated_part();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parseseparated_part();\n            }\n            s0 = peg$f3(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            s2 = peg$parseseparated_part();\n            if (s2 !== peg$FAILED) {\n              while (s2 !== peg$FAILED) {\n                s1.push(s2);\n                s2 = peg$parseseparated_part();\n              }\n            } else {\n              s1 = peg$FAILED;\n            }\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f4(s1);\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parseseparated_part() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parseparbreak();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parseparbreak();\n          }\n          s2 = peg$parseequals();\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parseparbreak();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parseparbreak();\n            }\n            s4 = peg$parseitem_part();\n            if (s4 !== peg$FAILED) {\n              s0 = peg$f5(s4);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            s2 = peg$parseparbreak();\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parseparbreak();\n            }\n            s2 = peg$parseequals();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f6();\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          return s0;\n        }\n        function peg$parseitem_part() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace();\n          }\n          s2 = peg$currPos;\n          s3 = [];\n          s4 = peg$parsenon_whitespace_non_parbreak_token();\n          if (s4 === peg$FAILED) {\n            s4 = peg$currPos;\n            s5 = peg$parsewhitespace();\n            if (s5 === peg$FAILED) {\n              s5 = peg$parseparbreak();\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$currPos;\n              peg$silentFails++;\n              s7 = peg$currPos;\n              s8 = [];\n              s9 = peg$parsewhitespace();\n              if (s9 === peg$FAILED) {\n                s9 = peg$parseparbreak();\n              }\n              while (s9 !== peg$FAILED) {\n                s8.push(s9);\n                s9 = peg$parsewhitespace();\n                if (s9 === peg$FAILED) {\n                  s9 = peg$parseparbreak();\n                }\n              }\n              s9 = peg$parsenon_whitespace_non_parbreak_token();\n              if (s9 !== peg$FAILED) {\n                s8 = [s8, s9];\n                s7 = s8;\n              } else {\n                peg$currPos = s7;\n                s7 = peg$FAILED;\n              }\n              peg$silentFails--;\n              if (s7 !== peg$FAILED) {\n                peg$currPos = s6;\n                s6 = void 0;\n              } else {\n                s6 = peg$FAILED;\n              }\n              if (s6 !== peg$FAILED) {\n                s5 = [s5, s6];\n                s4 = s5;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parsenon_whitespace_non_parbreak_token();\n              if (s4 === peg$FAILED) {\n                s4 = peg$currPos;\n                s5 = peg$parsewhitespace();\n                if (s5 === peg$FAILED) {\n                  s5 = peg$parseparbreak();\n                }\n                if (s5 !== peg$FAILED) {\n                  s6 = peg$currPos;\n                  peg$silentFails++;\n                  s7 = peg$currPos;\n                  s8 = [];\n                  s9 = peg$parsewhitespace();\n                  if (s9 === peg$FAILED) {\n                    s9 = peg$parseparbreak();\n                  }\n                  while (s9 !== peg$FAILED) {\n                    s8.push(s9);\n                    s9 = peg$parsewhitespace();\n                    if (s9 === peg$FAILED) {\n                      s9 = peg$parseparbreak();\n                    }\n                  }\n                  s9 = peg$parsenon_whitespace_non_parbreak_token();\n                  if (s9 !== peg$FAILED) {\n                    s8 = [s8, s9];\n                    s7 = s8;\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                  peg$silentFails--;\n                  if (s7 !== peg$FAILED) {\n                    peg$currPos = s6;\n                    s6 = void 0;\n                  } else {\n                    s6 = peg$FAILED;\n                  }\n                  if (s6 !== peg$FAILED) {\n                    s5 = [s5, s6];\n                    s4 = s5;\n                  } else {\n                    peg$currPos = s4;\n                    s4 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s2 = input.substring(s2, peg$currPos);\n          } else {\n            s2 = s3;\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parsewhitespace();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parsewhitespace();\n            }\n            s0 = peg$f7(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsetrailing_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace();\n          }\n          s2 = peg$parsesame_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f8(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecomment_only_line() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsewhitespace_or_parbreaks();\n          s2 = peg$parseown_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f9(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsetoken() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          peg$silentFails++;\n          s3 = peg$parsenon_token();\n          peg$silentFails--;\n          if (s3 === peg$FAILED) {\n            s2 = void 0;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s2 = [s2, s3];\n              s1 = s2;\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsenon_whitespace_non_parbreak_token() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          peg$silentFails++;\n          s3 = peg$parsewhitespace();\n          if (s3 === peg$FAILED) {\n            s3 = peg$parseparbreak();\n          }\n          peg$silentFails--;\n          if (s3 === peg$FAILED) {\n            s2 = void 0;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parseparen_block();\n            if (s3 === peg$FAILED) {\n              s3 = peg$parsetoken();\n            }\n            if (s3 !== peg$FAILED) {\n              s2 = [s2, s3];\n              s1 = s2;\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsenon_token() {\n          var s0;\n          s0 = peg$parseitem_sep();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parseequals();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsetrailing_comment();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parseown_line_comment();\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsewhitespace_or_parbreaks() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsewhitespace();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseparbreak();\n          }\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsewhitespace();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseparbreak();\n            }\n          }\n          s1 = peg$f10(s1);\n          s0 = s1;\n          return s0;\n        }\n        function peg$parseparen_block() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n          s0 = peg$currPos;\n          s1 = peg$f11();\n          if (s1) {\n            s1 = peg$FAILED;\n          } else {\n            s1 = void 0;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$currPos;\n            s3 = peg$currPos;\n            s4 = peg$parseopen_paren();\n            if (s4 !== peg$FAILED) {\n              s5 = [];\n              s6 = peg$currPos;\n              s7 = peg$currPos;\n              peg$silentFails++;\n              s8 = peg$parseclose_paren();\n              peg$silentFails--;\n              if (s8 === peg$FAILED) {\n                s7 = void 0;\n              } else {\n                peg$currPos = s7;\n                s7 = peg$FAILED;\n              }\n              if (s7 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s8 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s8 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e0);\n                  }\n                }\n                if (s8 !== peg$FAILED) {\n                  s7 = [s7, s8];\n                  s6 = s7;\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s6;\n                s6 = peg$FAILED;\n              }\n              while (s6 !== peg$FAILED) {\n                s5.push(s6);\n                s6 = peg$currPos;\n                s7 = peg$currPos;\n                peg$silentFails++;\n                s8 = peg$parseclose_paren();\n                peg$silentFails--;\n                if (s8 === peg$FAILED) {\n                  s7 = void 0;\n                } else {\n                  peg$currPos = s7;\n                  s7 = peg$FAILED;\n                }\n                if (s7 !== peg$FAILED) {\n                  if (input.length > peg$currPos) {\n                    s8 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s8 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e0);\n                    }\n                  }\n                  if (s8 !== peg$FAILED) {\n                    s7 = [s7, s8];\n                    s6 = s7;\n                  } else {\n                    peg$currPos = s6;\n                    s6 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s6;\n                  s6 = peg$FAILED;\n                }\n              }\n              s6 = peg$parseclose_paren();\n              if (s6 !== peg$FAILED) {\n                s4 = [s4, s5, s6];\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              s2 = input.substring(s2, peg$currPos);\n            } else {\n              s2 = s3;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesame_line_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f12(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f13(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseown_line_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f14(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f15(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsewhitespace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f16(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f17(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseparbreak() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f18(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f19(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseitem_sep() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f20(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f21(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseequals() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f22(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f23(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseopen_paren() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f24(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f25(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseclose_paren() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f26(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f27(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function processItem(leadCell, otherCells) {\n          const cells = [leadCell || []];\n          for (const x of otherCells) {\n            cells.push(x.cell || []);\n          }\n          return { itemParts: cells };\n        }\n        if (!options.isWhitespace) {\n          try {\n            Object.assign(options, {\n              isChar: (node, char) => node.type === \"string\" && node.content === char,\n              isComma(node) {\n                return node.type === \"string\" && node.content === \",\";\n              },\n              isEquals(node) {\n                return node.type === \"string\" && node.content === \"=\";\n              },\n              isParbreak(node) {\n                return node.type === \"parbreak\";\n              },\n              isWhitespace(node) {\n                return node.type === \"whitespace\";\n              },\n              isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n              isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline,\n              isComment: (node) => node.type === \"comment\",\n              allowParenGroups: true\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _MacroSubstitutionPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e0 = peg$anyExpectation();\n        var peg$f0 = function(e) {\n          return [].concat(...e).filter((n) => !!n);\n        };\n        var peg$f1 = function() {\n          return [];\n        };\n        var peg$f2 = function(tok) {\n          return options.isHash(tok);\n        };\n        var peg$f3 = function(tok) {\n          return tok;\n        };\n        var peg$f4 = function(tok) {\n          return options.isNumber(tok);\n        };\n        var peg$f5 = function(tok) {\n          return tok;\n        };\n        var peg$f6 = function() {\n          return { type: \"string\", content: \"#\" };\n        };\n        var peg$f7 = function(num) {\n          const split = options.splitNumber(num);\n          return [{ type: \"hash_number\", number: split.number }, split.rest];\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsedouble_hash();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsehash_number();\n            if (s2 === peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s2 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parsedouble_hash();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parsehash_number();\n                if (s2 === peg$FAILED) {\n                  if (input.length > peg$currPos) {\n                    s2 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s2 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e0);\n                    }\n                  }\n                }\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f0(s1);\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseEOL();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f1();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsehash() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f2(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f3(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsenumber() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f4(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f5(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedouble_hash() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsehash();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsehash();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f6();\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsehash_number() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsehash();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsenumber();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f7(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        if (!options.isHash) {\n          try {\n            Object.assign(options, {\n              isHash: (node) => node.type === \"string\" && node.content === \"#\",\n              isNumber: (node) => node.type === \"string\" && 0 < +node.content.charAt(0),\n              splitNumber: (node) => {\n                const number = +node.content.charAt(0);\n                if (node.content.length > 1) {\n                  return {\n                    number,\n                    rest: {\n                      type: \"string\",\n                      content: node.content.slice(1)\n                    }\n                  };\n                }\n                return { number };\n              }\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _LigaturesPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e0 = peg$anyExpectation();\n        var peg$f0 = function(e) {\n          return [].concat(...e).filter((n) => !!n);\n        };\n        var peg$f1 = function() {\n          return [];\n        };\n        var peg$f2 = function(toks) {\n          return options.isRecognized(toks);\n        };\n        var peg$f3 = function(toks) {\n          return options.isRecognized(toks);\n        };\n        var peg$f4 = function(tok1, tok2) {\n          const split = options.split(tok2);\n          return options.isRecognized([tok1, split[0]]);\n        };\n        var peg$f5 = function(tok1, tok2) {\n          const split = options.split(tok2);\n          return [options.isRecognized([tok1, split[0]]), split[1]];\n        };\n        var peg$f6 = function(tok1, tok2) {\n          return options.isRecognized([tok1, tok2]);\n        };\n        var peg$f7 = function(tok1, tok2) {\n          return options.isRecognized([tok1, tok2]);\n        };\n        var peg$f8 = function(toks) {\n          return options.isRecognized(toks);\n        };\n        var peg$f9 = function(toks) {\n          return options.isRecognized(toks);\n        };\n        var peg$f10 = function(tok) {\n          return options.isRecognized([tok]);\n        };\n        var peg$f11 = function(tok) {\n          return options.isRecognized([tok]);\n        };\n        var peg$f12 = function(tok) {\n          return options.isMacro(tok);\n        };\n        var peg$f13 = function(tok) {\n          return tok;\n        };\n        var peg$f14 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$f15 = function(tok) {\n          return tok;\n        };\n        var peg$f16 = function(tok) {\n          return options.isSplitable(tok);\n        };\n        var peg$f17 = function(tok) {\n          return tok;\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsetriple_ligature();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsedouble_ligature();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parsemono_ligature();\n              if (s2 === peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s2 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s2 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e0);\n                  }\n                }\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$parsetriple_ligature();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parsedouble_ligature();\n                if (s2 === peg$FAILED) {\n                  s2 = peg$parsemono_ligature();\n                  if (s2 === peg$FAILED) {\n                    if (input.length > peg$currPos) {\n                      s2 = input.charAt(peg$currPos);\n                      peg$currPos++;\n                    } else {\n                      s2 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e0);\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f0(s1);\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseEOL();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f1();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsetriple_ligature() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n              if (s4 !== peg$FAILED) {\n                s2 = [s2, s3, s4];\n                s1 = s2;\n              } else {\n                peg$currPos = s1;\n                s1 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f2(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f3(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedouble_ligature() {\n          var s0;\n          s0 = peg$parsedouble_macro_ligature();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsedouble_macro_ligature_extracted();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsedouble_char_ligature();\n            }\n          }\n          return s0;\n        }\n        function peg$parsedouble_macro_ligature_extracted() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = peg$parsemacro();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parsewhitespace();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsewhitespace();\n            }\n            s3 = peg$parsesplitable();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$f4(s1, s3);\n              if (s4) {\n                s4 = void 0;\n              } else {\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s0 = peg$f5(s1, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedouble_macro_ligature() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = peg$parsemacro();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parsewhitespace();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsewhitespace();\n            }\n            if (input.length > peg$currPos) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s4 = peg$f6(s1, s3);\n              if (s4) {\n                s4 = void 0;\n              } else {\n                s4 = peg$FAILED;\n              }\n              if (s4 !== peg$FAILED) {\n                s0 = peg$f7(s1, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedouble_char_ligature() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s2 = [s2, s3];\n              s1 = s2;\n            } else {\n              peg$currPos = s1;\n              s1 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f8(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f9(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemono_ligature() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f10(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f11(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemacro() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f12(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f13(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsewhitespace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f14(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f15(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesplitable() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f16(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f17(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        if (!options.isWhitespace) {\n          try {\n            Object.assign(options, {\n              isMacro: (node) => node.type === \"macro\",\n              isWhitespace: (node) => node.type === \"whitespace\",\n              isRecognized: (nodes) => {\n                if (nodes.length == 2 && nodes[0].content === \"^\" && nodes[1].content === \"o\") {\n                  return { type: \"string\", content: \"\\xF4\" };\n                }\n                return null;\n              },\n              isSplitable: (node) => node.type === \"string\" && node.content.length > 1,\n              split: (node) => [\n                { type: \"string\", content: node.content.charAt(0) },\n                { type: \"string\", content: node.content.slice(1) }\n              ]\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _XColorPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { start: peg$parsestart };\n        var peg$startRuleFunction = peg$parsestart;\n        var peg$c0 = \";\";\n        var peg$c1 = \",\";\n        var peg$c2 = \":\";\n        var peg$c3 = \"/\";\n        var peg$c4 = \">\";\n        var peg$c5 = \"!\";\n        var peg$c6 = \".\";\n        var peg$c7 = \"!![\";\n        var peg$c8 = \"]\";\n        var peg$c9 = \"!!\";\n        var peg$c10 = \"+\";\n        var peg$c11 = \"-\";\n        var peg$r0 = /^[a-zA-Z0-9]/;\n        var peg$r1 = /^[0-9]/;\n        var peg$r2 = /^[ \\t\\n\\r]/;\n        var peg$r3 = /^[0-9a-fA-F]/;\n        var peg$e0 = peg$anyExpectation();\n        var peg$e1 = peg$literalExpectation(\";\", false);\n        var peg$e2 = peg$literalExpectation(\",\", false);\n        var peg$e3 = peg$otherExpectation(\"model list\");\n        var peg$e4 = peg$literalExpectation(\":\", false);\n        var peg$e5 = peg$literalExpectation(\"/\", false);\n        var peg$e6 = peg$otherExpectation(\"model\");\n        var peg$e7 = peg$otherExpectation(\"color spec list\");\n        var peg$e8 = peg$otherExpectation(\"color spec\");\n        var peg$e9 = peg$otherExpectation(\"color\");\n        var peg$e10 = peg$otherExpectation(\"function expression\");\n        var peg$e11 = peg$literalExpectation(\">\", false);\n        var peg$e12 = peg$otherExpectation(\"function\");\n        var peg$e13 = peg$otherExpectation(\"extended expression\");\n        var peg$e14 = peg$otherExpectation(\"core model\");\n        var peg$e15 = peg$otherExpectation(\"expr\");\n        var peg$e16 = peg$literalExpectation(\"!\", false);\n        var peg$e17 = peg$otherExpectation(\"mix expr\");\n        var peg$e18 = peg$otherExpectation(\"name\");\n        var peg$e19 = peg$literalExpectation(\".\", false);\n        var peg$e20 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], [\"0\", \"9\"]], false, false);\n        var peg$e21 = peg$otherExpectation(\"postfix\");\n        var peg$e22 = peg$literalExpectation(\"!![\", false);\n        var peg$e23 = peg$literalExpectation(\"]\", false);\n        var peg$e24 = peg$literalExpectation(\"!!\", false);\n        var peg$e25 = peg$otherExpectation(\"prefix\");\n        var peg$e26 = peg$otherExpectation(\"plus\");\n        var peg$e27 = peg$literalExpectation(\"+\", false);\n        var peg$e28 = peg$otherExpectation(\"minus\");\n        var peg$e29 = peg$literalExpectation(\"-\", false);\n        var peg$e30 = peg$otherExpectation(\"num\");\n        var peg$e31 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n        var peg$e32 = peg$otherExpectation(\"positive float\");\n        var peg$e33 = peg$otherExpectation(\"divisor\");\n        var peg$e34 = peg$otherExpectation(\"int\");\n        var peg$e36 = peg$classExpectation([\" \", \"\t\", \"\\n\", \"\\r\"], false, false);\n        var peg$e37 = peg$classExpectation([[\"0\", \"9\"], [\"a\", \"f\"], [\"A\", \"F\"]], false, false);\n        var peg$f0 = function(m) {\n          return m;\n        };\n        var peg$f1 = function(m) {\n          return m;\n        };\n        var peg$f2 = function(m) {\n          return m;\n        };\n        var peg$f3 = function(m) {\n          return m;\n        };\n        var peg$f4 = function(m) {\n          return m;\n        };\n        var peg$f5 = function(a) {\n          return { type: \"invalid_spec\", content: a };\n        };\n        var peg$f6 = function(f, c) {\n          return c;\n        };\n        var peg$f7 = function(f, r) {\n          return { type: \"color_set\", content: [f].concat(r) };\n        };\n        var peg$f8 = function(n, s2) {\n          return { type: \"color_set_item\", name: n, spec_list: s2 };\n        };\n        var peg$f9 = function(c, m) {\n          return { type: \"model_list\", contents: m, core_model: c };\n        };\n        var peg$f10 = function(m) {\n          return { type: \"model_list\", contents: m, core_model: null };\n        };\n        var peg$f11 = function(m, a) {\n          return a;\n        };\n        var peg$f12 = function(m, r) {\n          return [m].concat(r);\n        };\n        var peg$f13 = function(s2, a) {\n          return a;\n        };\n        var peg$f14 = function(s2, r) {\n          return { type: \"spec_list\", content: [s2].concat(r) };\n        };\n        var peg$f15 = function(c) {\n          return { type: \"hex_spec\", content: [c] };\n        };\n        var peg$f16 = function(c, d) {\n          return d;\n        };\n        var peg$f17 = function(c, d) {\n          return d;\n        };\n        var peg$f18 = function(c, r) {\n          return { type: \"num_spec\", content: r ? [c].concat(r) : [c] };\n        };\n        var peg$f19 = function(c, fs) {\n          return { type: \"color\", color: c, functions: fs };\n        };\n        var peg$f20 = function(f, n) {\n          return n;\n        };\n        var peg$f21 = function(f, args) {\n          return { type: \"function\", name: f, args };\n        };\n        var peg$f22 = function(core, d, e, es) {\n          return {\n            type: \"extended_expr\",\n            core_model: core,\n            div: d,\n            expressions: [e].concat(es)\n          };\n        };\n        var peg$f23 = function(core, e, es) {\n          return {\n            type: \"extended_expr\",\n            core_model: core,\n            div: null,\n            expressions: [e].concat(es)\n          };\n        };\n        var peg$f24 = function(e, d) {\n          return { type: \"weighted_expr\", color: e, weight: d };\n        };\n        var peg$f25 = function(e) {\n          return e;\n        };\n        var peg$f26 = function(p, n, e, po) {\n          return {\n            type: \"expr\",\n            prefix: p,\n            name: n,\n            mix_expr: e,\n            postfix: po\n          };\n        };\n        var peg$f27 = function(p, n) {\n          return { type: \"complete_mix\", mix_percent: p, name: n };\n        };\n        var peg$f28 = function(p) {\n          return { type: \"partial_mix\", mix_percent: p };\n        };\n        var peg$f29 = function(c, p) {\n          return c.concat(p || []);\n        };\n        var peg$f30 = function(n) {\n          return { type: \"postfix\", num: n };\n        };\n        var peg$f31 = function(p) {\n          return { type: \"postfix\", plusses: p };\n        };\n        var peg$f32 = function(n) {\n          return parseInt(n, 10);\n        };\n        var peg$f33 = function(n) {\n          return parseFloat(n);\n        };\n        var peg$f34 = function(n) {\n          return n;\n        };\n        var peg$f35 = function(n) {\n          return -n;\n        };\n        var peg$f36 = function(m, n) {\n          return m ? -n : n;\n        };\n        var peg$f37 = function(h) {\n          return h.toUpperCase();\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$literalExpectation(text2, ignoreCase) {\n          return { type: \"literal\", text: text2, ignoreCase };\n        }\n        function peg$classExpectation(parts, inverted, ignoreCase) {\n          return { type: \"class\", parts, inverted, ignoreCase };\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsestart() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parsespec();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseEOL();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f0(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsespec_list();\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parseEOL();\n              if (s2 !== peg$FAILED) {\n                s0 = peg$f1(s1);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              s1 = peg$parsecolor();\n              if (s1 !== peg$FAILED) {\n                s2 = peg$parseEOL();\n                if (s2 !== peg$FAILED) {\n                  s0 = peg$f2(s1);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n              if (s0 === peg$FAILED) {\n                s0 = peg$currPos;\n                s1 = peg$parsemodel_list();\n                if (s1 !== peg$FAILED) {\n                  s2 = peg$parseEOL();\n                  if (s2 !== peg$FAILED) {\n                    s0 = peg$f3(s1);\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n                if (s0 === peg$FAILED) {\n                  s0 = peg$currPos;\n                  s1 = peg$parsecolor_set_spec();\n                  if (s1 !== peg$FAILED) {\n                    s2 = peg$parseEOL();\n                    if (s2 !== peg$FAILED) {\n                      s0 = peg$f4(s1);\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$currPos;\n                    s1 = peg$currPos;\n                    s2 = [];\n                    if (input.length > peg$currPos) {\n                      s3 = input.charAt(peg$currPos);\n                      peg$currPos++;\n                    } else {\n                      s3 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e0);\n                      }\n                    }\n                    while (s3 !== peg$FAILED) {\n                      s2.push(s3);\n                      if (input.length > peg$currPos) {\n                        s3 = input.charAt(peg$currPos);\n                        peg$currPos++;\n                      } else {\n                        s3 = peg$FAILED;\n                        if (peg$silentFails === 0) {\n                          peg$fail(peg$e0);\n                        }\n                      }\n                    }\n                    s1 = input.substring(s1, peg$currPos);\n                    s1 = peg$f5(s1);\n                    s0 = s1;\n                  }\n                }\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsecolor_set_spec() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = peg$parsecolor_set_item();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 59) {\n              s4 = peg$c0;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e1);\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsecolor_set_item();\n              if (s5 !== peg$FAILED) {\n                s3 = peg$f6(s1, s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 59) {\n                s4 = peg$c0;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e1);\n                }\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsecolor_set_item();\n                if (s5 !== peg$FAILED) {\n                  s3 = peg$f6(s1, s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s0 = peg$f7(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecolor_set_item() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parsename();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 44) {\n              s2 = peg$c1;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsespec_list();\n              if (s3 !== peg$FAILED) {\n                s0 = peg$f8(s1, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemodel_list() {\n          var s0, s1, s2, s3;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsecore_model();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 58) {\n              s2 = peg$c2;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e4);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsemodel_list_tail();\n              if (s3 !== peg$FAILED) {\n                s0 = peg$f9(s1, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsemodel_list_tail();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f10(s1);\n            }\n            s0 = s1;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          return s0;\n        }\n        function peg$parsemodel_list_tail() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = peg$parsemodel();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 47) {\n              s4 = peg$c3;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e5);\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsemodel();\n              if (s5 !== peg$FAILED) {\n                s3 = peg$f11(s1, s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 47) {\n                s4 = peg$c3;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e5);\n                }\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsemodel();\n                if (s5 !== peg$FAILED) {\n                  s3 = peg$f11(s1, s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s0 = peg$f12(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemodel() {\n          var s0;\n          peg$silentFails++;\n          s0 = peg$parsecore_model();\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e6);\n            }\n          }\n          return s0;\n        }\n        function peg$parsespec_list() {\n          var s0, s1, s2, s3, s4, s5;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsespec();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 47) {\n              s4 = peg$c3;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e5);\n              }\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsespec();\n              if (s5 !== peg$FAILED) {\n                s3 = peg$f13(s1, s5);\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 47) {\n                s4 = peg$c3;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e5);\n                }\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsespec();\n                if (s5 !== peg$FAILED) {\n                  s3 = peg$f13(s1, s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n            s0 = peg$f14(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e7);\n            }\n          }\n          return s0;\n        }\n        function peg$parsespec() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          s3 = peg$parsehex();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parsehex();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsehex();\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parsehex();\n                if (s6 !== peg$FAILED) {\n                  s7 = peg$parsehex();\n                  if (s7 !== peg$FAILED) {\n                    s8 = peg$parsehex();\n                    if (s8 !== peg$FAILED) {\n                      s3 = [s3, s4, s5, s6, s7, s8];\n                      s2 = s3;\n                    } else {\n                      peg$currPos = s2;\n                      s2 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s2;\n                    s2 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s2;\n                  s2 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            s1 = input.substring(s1, peg$currPos);\n          } else {\n            s1 = s2;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f15(s1);\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsedec();\n            if (s1 !== peg$FAILED) {\n              s2 = [];\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 44) {\n                s4 = peg$c1;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e2);\n                }\n              }\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsedec();\n                if (s5 !== peg$FAILED) {\n                  s3 = peg$f16(s1, s5);\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n              if (s3 !== peg$FAILED) {\n                while (s3 !== peg$FAILED) {\n                  s2.push(s3);\n                  s3 = peg$currPos;\n                  if (input.charCodeAt(peg$currPos) === 44) {\n                    s4 = peg$c1;\n                    peg$currPos++;\n                  } else {\n                    s4 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e2);\n                    }\n                  }\n                  if (s4 !== peg$FAILED) {\n                    s5 = peg$parsedec();\n                    if (s5 !== peg$FAILED) {\n                      s3 = peg$f16(s1, s5);\n                    } else {\n                      peg$currPos = s3;\n                      s3 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s3;\n                    s3 = peg$FAILED;\n                  }\n                }\n              } else {\n                s2 = peg$FAILED;\n              }\n              if (s2 === peg$FAILED) {\n                s2 = [];\n                s3 = peg$currPos;\n                s4 = peg$parsesp();\n                if (s4 !== peg$FAILED) {\n                  s5 = peg$parsedec();\n                  if (s5 !== peg$FAILED) {\n                    s3 = peg$f17(s1, s5);\n                  } else {\n                    peg$currPos = s3;\n                    s3 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n                if (s3 !== peg$FAILED) {\n                  while (s3 !== peg$FAILED) {\n                    s2.push(s3);\n                    s3 = peg$currPos;\n                    s4 = peg$parsesp();\n                    if (s4 !== peg$FAILED) {\n                      s5 = peg$parsedec();\n                      if (s5 !== peg$FAILED) {\n                        s3 = peg$f17(s1, s5);\n                      } else {\n                        peg$currPos = s3;\n                        s3 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s3;\n                      s3 = peg$FAILED;\n                    }\n                  }\n                } else {\n                  s2 = peg$FAILED;\n                }\n              }\n              if (s2 === peg$FAILED) {\n                s2 = null;\n              }\n              s0 = peg$f18(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          return s0;\n        }\n        function peg$parsecolor() {\n          var s0, s1, s2, s3;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsecolor_expr();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parsefunc_expr();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsefunc_expr();\n            }\n            s0 = peg$f19(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e9);\n            }\n          }\n          return s0;\n        }\n        function peg$parsecolor_expr() {\n          var s0;\n          s0 = peg$parseext_expr();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parseexpr();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsename();\n            }\n          }\n          return s0;\n        }\n        function peg$parsefunc_expr() {\n          var s0, s1, s2, s3, s4, s5, s6;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 62) {\n            s1 = peg$c4;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e11);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsefunction();\n            if (s2 !== peg$FAILED) {\n              s3 = [];\n              s4 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 44) {\n                s5 = peg$c1;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e2);\n                }\n              }\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parseint();\n                if (s6 !== peg$FAILED) {\n                  s4 = peg$f20(s2, s6);\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n              while (s4 !== peg$FAILED) {\n                s3.push(s4);\n                s4 = peg$currPos;\n                if (input.charCodeAt(peg$currPos) === 44) {\n                  s5 = peg$c1;\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e2);\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  s6 = peg$parseint();\n                  if (s6 !== peg$FAILED) {\n                    s4 = peg$f20(s2, s6);\n                  } else {\n                    peg$currPos = s4;\n                    s4 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              }\n              s0 = peg$f21(s2, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e10);\n            }\n          }\n          return s0;\n        }\n        function peg$parsefunction() {\n          var s0;\n          peg$silentFails++;\n          s0 = peg$parsename();\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e12);\n            }\n          }\n          return s0;\n        }\n        function peg$parseext_expr() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsecore_model();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 44) {\n              s2 = peg$c1;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsediv();\n              if (s3 !== peg$FAILED) {\n                if (input.charCodeAt(peg$currPos) === 58) {\n                  s4 = peg$c2;\n                  peg$currPos++;\n                } else {\n                  s4 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e4);\n                  }\n                }\n                if (s4 !== peg$FAILED) {\n                  s5 = peg$parseweighted_expr();\n                  if (s5 !== peg$FAILED) {\n                    s6 = [];\n                    s7 = peg$parseadditional_weighted_expr();\n                    while (s7 !== peg$FAILED) {\n                      s6.push(s7);\n                      s7 = peg$parseadditional_weighted_expr();\n                    }\n                    s0 = peg$f22(s1, s3, s5, s6);\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsecore_model();\n            if (s1 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 58) {\n                s2 = peg$c2;\n                peg$currPos++;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e4);\n                }\n              }\n              if (s2 !== peg$FAILED) {\n                s3 = peg$parseweighted_expr();\n                if (s3 !== peg$FAILED) {\n                  s4 = [];\n                  s5 = peg$parseadditional_weighted_expr();\n                  while (s5 !== peg$FAILED) {\n                    s4.push(s5);\n                    s5 = peg$parseadditional_weighted_expr();\n                  }\n                  s0 = peg$f23(s1, s3, s4);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e13);\n            }\n          }\n          return s0;\n        }\n        function peg$parseweighted_expr() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parseexpr();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 44) {\n              s2 = peg$c1;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsedec();\n              if (s3 !== peg$FAILED) {\n                s0 = peg$f24(s1, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseadditional_weighted_expr() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 59) {\n            s1 = peg$c0;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e1);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseweighted_expr();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f25(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecore_model() {\n          var s0;\n          peg$silentFails++;\n          s0 = peg$parsename();\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e14);\n            }\n          }\n          return s0;\n        }\n        function peg$parseexpr() {\n          var s0, s1, s2, s3, s4;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseprefix();\n          s2 = peg$parsename();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parsemix_expr();\n            s4 = peg$parsepostfix();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            s0 = peg$f26(s1, s2, s3, s4);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e15);\n            }\n          }\n          return s0;\n        }\n        function peg$parsecomplete_mix() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 33) {\n            s1 = peg$c5;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e16);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsepct();\n            if (s2 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 33) {\n                s3 = peg$c5;\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e16);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parsename();\n                if (s4 !== peg$FAILED) {\n                  s0 = peg$f27(s2, s4);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsepartial_mix() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 33) {\n            s1 = peg$c5;\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e16);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsepct();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f28(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemix_expr() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsecomplete_mix();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsecomplete_mix();\n          }\n          s2 = peg$parsepartial_mix();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s0 = peg$f29(s1, s2);\n          peg$silentFails--;\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e17);\n          }\n          return s0;\n        }\n        function peg$parsename() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          if (input.charCodeAt(peg$currPos) === 46) {\n            s0 = peg$c6;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e19);\n            }\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = [];\n            if (peg$r0.test(input.charAt(peg$currPos))) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e20);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              while (s2 !== peg$FAILED) {\n                s1.push(s2);\n                if (peg$r0.test(input.charAt(peg$currPos))) {\n                  s2 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s2 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e20);\n                  }\n                }\n              }\n            } else {\n              s1 = peg$FAILED;\n            }\n            if (s1 !== peg$FAILED) {\n              s0 = input.substring(s0, peg$currPos);\n            } else {\n              s0 = s1;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e18);\n            }\n          }\n          return s0;\n        }\n        function peg$parsepostfix() {\n          var s0, s1, s2, s3, s4;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.substr(peg$currPos, 3) === peg$c7) {\n            s1 = peg$c7;\n            peg$currPos += 3;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e22);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsenum();\n            if (s2 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 93) {\n                s3 = peg$c8;\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e23);\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s0 = peg$f30(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.substr(peg$currPos, 2) === peg$c9) {\n              s1 = peg$c9;\n              peg$currPos += 2;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e24);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$currPos;\n              s3 = [];\n              s4 = peg$parseplus();\n              if (s4 !== peg$FAILED) {\n                while (s4 !== peg$FAILED) {\n                  s3.push(s4);\n                  s4 = peg$parseplus();\n                }\n              } else {\n                s3 = peg$FAILED;\n              }\n              if (s3 !== peg$FAILED) {\n                s2 = input.substring(s2, peg$currPos);\n              } else {\n                s2 = s3;\n              }\n              if (s2 !== peg$FAILED) {\n                s0 = peg$f31(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e21);\n            }\n          }\n          return s0;\n        }\n        function peg$parseprefix() {\n          var s0;\n          peg$silentFails++;\n          s0 = peg$parseminus();\n          if (s0 === peg$FAILED) {\n            s0 = null;\n          }\n          peg$silentFails--;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e25);\n          }\n          return s0;\n        }\n        function peg$parseplus() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          if (input.charCodeAt(peg$currPos) === 43) {\n            s2 = peg$c10;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e27);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              if (input.charCodeAt(peg$currPos) === 43) {\n                s2 = peg$c10;\n                peg$currPos++;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e27);\n                }\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e26);\n            }\n          }\n          return s0;\n        }\n        function peg$parseminus() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          if (input.charCodeAt(peg$currPos) === 45) {\n            s2 = peg$c11;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e29);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              if (input.charCodeAt(peg$currPos) === 45) {\n                s2 = peg$c11;\n                peg$currPos++;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e29);\n                }\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s0 = input.substring(s0, peg$currPos);\n          } else {\n            s0 = s1;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e28);\n            }\n          }\n          return s0;\n        }\n        function peg$parsenum() {\n          var s0, s1, s2, s3;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = [];\n          if (peg$r1.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e31);\n            }\n          }\n          if (s3 !== peg$FAILED) {\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s3 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e31);\n                }\n              }\n            }\n          } else {\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            s1 = input.substring(s1, peg$currPos);\n          } else {\n            s1 = s2;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f32(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e30);\n            }\n          }\n          return s0;\n        }\n        function peg$parsepct() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          s3 = peg$currPos;\n          s4 = [];\n          if (peg$r1.test(input.charAt(peg$currPos))) {\n            s5 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e31);\n            }\n          }\n          if (s5 !== peg$FAILED) {\n            while (s5 !== peg$FAILED) {\n              s4.push(s5);\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e31);\n                }\n              }\n            }\n          } else {\n            s4 = peg$FAILED;\n          }\n          if (s4 !== peg$FAILED) {\n            s3 = input.substring(s3, peg$currPos);\n          } else {\n            s3 = s4;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$currPos;\n            s5 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s6 = peg$c6;\n              peg$currPos++;\n            } else {\n              s6 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e19);\n              }\n            }\n            if (s6 !== peg$FAILED) {\n              s7 = peg$currPos;\n              s8 = [];\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s9 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s9 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e31);\n                }\n              }\n              while (s9 !== peg$FAILED) {\n                s8.push(s9);\n                if (peg$r1.test(input.charAt(peg$currPos))) {\n                  s9 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s9 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e31);\n                  }\n                }\n              }\n              s7 = input.substring(s7, peg$currPos);\n              s6 = [s6, s7];\n              s5 = s6;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            if (s5 === peg$FAILED) {\n              s5 = null;\n            }\n            s4 = input.substring(s4, peg$currPos);\n            s3 = [s3, s4];\n            s2 = s3;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            s1 = input.substring(s1, peg$currPos);\n          } else {\n            s1 = s2;\n          }\n          if (s1 === peg$FAILED) {\n            s1 = peg$currPos;\n            s2 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s3 = peg$c6;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e19);\n              }\n            }\n            if (s3 !== peg$FAILED) {\n              s4 = peg$currPos;\n              s5 = [];\n              if (peg$r1.test(input.charAt(peg$currPos))) {\n                s6 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e31);\n                }\n              }\n              if (s6 !== peg$FAILED) {\n                while (s6 !== peg$FAILED) {\n                  s5.push(s6);\n                  if (peg$r1.test(input.charAt(peg$currPos))) {\n                    s6 = input.charAt(peg$currPos);\n                    peg$currPos++;\n                  } else {\n                    s6 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e31);\n                    }\n                  }\n                }\n              } else {\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                s4 = input.substring(s4, peg$currPos);\n              } else {\n                s4 = s5;\n              }\n              if (s4 !== peg$FAILED) {\n                s3 = [s3, s4];\n                s2 = s3;\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = input.substring(s1, peg$currPos);\n            } else {\n              s1 = s2;\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f33(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e32);\n            }\n          }\n          return s0;\n        }\n        function peg$parsediv() {\n          var s0;\n          peg$silentFails++;\n          s0 = peg$parsepct();\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e33);\n            }\n          }\n          return s0;\n        }\n        function peg$parsedec() {\n          var s0, s1, s2;\n          s0 = peg$parsepct();\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 43) {\n              s1 = peg$c10;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e27);\n              }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parsepct();\n              if (s2 !== peg$FAILED) {\n                s0 = peg$f34(s2);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 45) {\n                s1 = peg$c11;\n                peg$currPos++;\n              } else {\n                s1 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e29);\n                }\n              }\n              if (s1 !== peg$FAILED) {\n                s2 = peg$parsepct();\n                if (s2 !== peg$FAILED) {\n                  s0 = peg$f35(s2);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parseint() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseminus();\n          if (s1 === peg$FAILED) {\n            s1 = null;\n          }\n          s2 = peg$parsenum();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f36(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e34);\n            }\n          }\n          return s0;\n        }\n        function peg$parsesp() {\n          var s0, s1;\n          s0 = [];\n          if (peg$r2.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e36);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            while (s1 !== peg$FAILED) {\n              s0.push(s1);\n              if (peg$r2.test(input.charAt(peg$currPos))) {\n                s1 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s1 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e36);\n                }\n              }\n            }\n          } else {\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsehex() {\n          var s0, s1;\n          s0 = peg$currPos;\n          if (peg$r3.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e37);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f37(s1);\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _TabularPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e0 = peg$otherExpectation(\"decl_start\");\n        var peg$e1 = peg$otherExpectation(\"decl_end\");\n        var peg$e2 = peg$otherExpectation(\"vert\");\n        var peg$e3 = peg$anyExpectation();\n        var peg$e4 = peg$otherExpectation(\"l\");\n        var peg$e5 = peg$otherExpectation(\"r\");\n        var peg$e6 = peg$otherExpectation(\"c\");\n        var peg$e7 = peg$otherExpectation(\"p\");\n        var peg$e8 = peg$otherExpectation(\"m\");\n        var peg$e9 = peg$otherExpectation(\"b\");\n        var peg$e10 = peg$otherExpectation(\"w\");\n        var peg$e11 = peg$otherExpectation(\"W\");\n        var peg$e12 = peg$otherExpectation(\"X\");\n        var peg$e13 = peg$otherExpectation(\"!\");\n        var peg$e14 = peg$otherExpectation(\"@\");\n        var peg$e15 = peg$otherExpectation(\"<\");\n        var peg$e16 = peg$otherExpectation(\">\");\n        var peg$e17 = peg$otherExpectation(\"group\");\n        var peg$e18 = peg$otherExpectation(\"whitespace\");\n        var peg$f0 = function(c) {\n          return c;\n        };\n        var peg$f1 = function(cols) {\n          return cols;\n        };\n        var peg$f2 = function() {\n          return [];\n        };\n        var peg$f3 = function(divs1, start, a, end, divs2) {\n          return {\n            type: \"column\",\n            pre_dividers: divs1,\n            post_dividers: divs2,\n            before_start_code: start,\n            before_end_code: end,\n            alignment: a\n          };\n        };\n        var peg$f4 = function() {\n          return {\n            type: \"vert_divider\"\n          };\n        };\n        var peg$f5 = function(b, g) {\n          return {\n            type: \"bang_divider\",\n            content: g[0].content\n          };\n        };\n        var peg$f6 = function(g) {\n          return {\n            type: \"at_divider\",\n            content: g[0].content\n          };\n        };\n        var peg$f7 = function(div) {\n          return div;\n        };\n        var peg$f8 = function(g) {\n          return { type: \"decl_code\", code: g[0].content };\n        };\n        var peg$f9 = function(g) {\n          return { type: \"decl_code\", code: g[0].content };\n        };\n        var peg$f10 = function() {\n          return { type: \"alignment\", alignment: \"left\" };\n        };\n        var peg$f11 = function() {\n          return { type: \"alignment\", alignment: \"center\" };\n        };\n        var peg$f12 = function() {\n          return { type: \"alignment\", alignment: \"right\" };\n        };\n        var peg$f13 = function() {\n          return { type: \"alignment\", alignment: \"X\" };\n        };\n        var peg$f14 = function() {\n          return \"top\";\n        };\n        var peg$f15 = function() {\n          return \"default\";\n        };\n        var peg$f16 = function() {\n          return \"bottom\";\n        };\n        var peg$f17 = function(a, g) {\n          return {\n            type: \"alignment\",\n            alignment: \"parbox\",\n            baseline: a,\n            size: g[0].content\n          };\n        };\n        var peg$f18 = function(g1, g2) {\n          return {\n            type: \"alignment\",\n            alignment: \"parbox\",\n            baseline: g1[0].content,\n            size: g2[0].content\n          };\n        };\n        var peg$f19 = function(tok) {\n          return options.matchChar(tok, \"|\");\n        };\n        var peg$f20 = function(tok) {\n          return options.matchChar(tok, \"l\");\n        };\n        var peg$f21 = function(tok) {\n          return options.matchChar(tok, \"r\");\n        };\n        var peg$f22 = function(tok) {\n          return options.matchChar(tok, \"c\");\n        };\n        var peg$f23 = function(tok) {\n          return options.matchChar(tok, \"p\");\n        };\n        var peg$f24 = function(tok) {\n          return options.matchChar(tok, \"m\");\n        };\n        var peg$f25 = function(tok) {\n          return options.matchChar(tok, \"b\");\n        };\n        var peg$f26 = function(tok) {\n          return options.matchChar(tok, \"w\");\n        };\n        var peg$f27 = function(tok) {\n          return options.matchChar(tok, \"W\");\n        };\n        var peg$f28 = function(tok) {\n          return options.matchChar(tok, \"X\");\n        };\n        var peg$f29 = function(tok) {\n          return options.matchChar(tok, \"!\");\n        };\n        var peg$f30 = function(tok) {\n          return options.matchChar(tok, \"@\");\n        };\n        var peg$f31 = function(tok) {\n          return options.matchChar(tok, \"<\");\n        };\n        var peg$f32 = function(tok) {\n          return options.matchChar(tok, \">\");\n        };\n        var peg$f33 = function(tok) {\n          return options.isGroup(tok);\n        };\n        var peg$f34 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$currPos;\n          s3 = peg$parsecolumn();\n          if (s3 !== peg$FAILED) {\n            s4 = [];\n            s5 = peg$parse_();\n            while (s5 !== peg$FAILED) {\n              s4.push(s5);\n              s5 = peg$parse_();\n            }\n            s2 = peg$f0(s3);\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$currPos;\n              s3 = peg$parsecolumn();\n              if (s3 !== peg$FAILED) {\n                s4 = [];\n                s5 = peg$parse_();\n                while (s5 !== peg$FAILED) {\n                  s4.push(s5);\n                  s5 = peg$parse_();\n                }\n                s2 = peg$f0(s3);\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f1(s1);\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseEOL();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f2();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parsecolumn() {\n          var s0, s1, s2, s3, s4, s5, s6;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsecolumn_divider();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsecolumn_divider();\n          }\n          s2 = peg$parsedecl_start();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s3 = peg$parsealignment();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parsedecl_end();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            s5 = [];\n            s6 = peg$parsecolumn_divider();\n            while (s6 !== peg$FAILED) {\n              s5.push(s6);\n              s6 = peg$parsecolumn_divider();\n            }\n            s0 = peg$f3(s1, s2, s3, s4, s5);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecolumn_divider() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parse_();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parse_();\n          }\n          s2 = peg$currPos;\n          s3 = peg$parsevert();\n          if (s3 !== peg$FAILED) {\n            s3 = peg$f4();\n          }\n          s2 = s3;\n          if (s2 === peg$FAILED) {\n            s2 = peg$currPos;\n            s3 = peg$parsebang();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parsegroup();\n              if (s4 !== peg$FAILED) {\n                s2 = peg$f5(s3, s4);\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n            if (s2 === peg$FAILED) {\n              s2 = peg$currPos;\n              s3 = peg$parseat();\n              if (s3 !== peg$FAILED) {\n                s4 = peg$parsegroup();\n                if (s4 !== peg$FAILED) {\n                  s2 = peg$f6(s4);\n                } else {\n                  peg$currPos = s2;\n                  s2 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parse_();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parse_();\n            }\n            s0 = peg$f7(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedecl_start() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parsegreater();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsegroup();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f8(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          return s0;\n        }\n        function peg$parsedecl_end() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseless();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsegroup();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f9(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e1);\n            }\n          }\n          return s0;\n        }\n        function peg$parsealignment() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = peg$parsel();\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f10();\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parsec();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f11();\n            }\n            s0 = s1;\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              s1 = peg$parser();\n              if (s1 !== peg$FAILED) {\n                s1 = peg$f12();\n              }\n              s0 = s1;\n              if (s0 === peg$FAILED) {\n                s0 = peg$currPos;\n                s1 = peg$parseX();\n                if (s1 !== peg$FAILED) {\n                  s1 = peg$f13();\n                }\n                s0 = s1;\n                if (s0 === peg$FAILED) {\n                  s0 = peg$currPos;\n                  s1 = peg$currPos;\n                  s2 = peg$parsep();\n                  if (s2 !== peg$FAILED) {\n                    s2 = peg$f14();\n                  }\n                  s1 = s2;\n                  if (s1 === peg$FAILED) {\n                    s1 = peg$currPos;\n                    s2 = peg$parsem();\n                    if (s2 !== peg$FAILED) {\n                      s2 = peg$f15();\n                    }\n                    s1 = s2;\n                    if (s1 === peg$FAILED) {\n                      s1 = peg$currPos;\n                      s2 = peg$parseb();\n                      if (s2 !== peg$FAILED) {\n                        s2 = peg$f16();\n                      }\n                      s1 = s2;\n                    }\n                  }\n                  if (s1 !== peg$FAILED) {\n                    s2 = [];\n                    s3 = peg$parse_();\n                    while (s3 !== peg$FAILED) {\n                      s2.push(s3);\n                      s3 = peg$parse_();\n                    }\n                    s3 = peg$parsegroup();\n                    if (s3 !== peg$FAILED) {\n                      s0 = peg$f17(s1, s3);\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$currPos;\n                    s1 = peg$parsew();\n                    if (s1 === peg$FAILED) {\n                      s1 = peg$parseW();\n                    }\n                    if (s1 !== peg$FAILED) {\n                      s2 = [];\n                      s3 = peg$parse_();\n                      while (s3 !== peg$FAILED) {\n                        s2.push(s3);\n                        s3 = peg$parse_();\n                      }\n                      s3 = peg$parsegroup();\n                      if (s3 !== peg$FAILED) {\n                        s4 = [];\n                        s5 = peg$parse_();\n                        while (s5 !== peg$FAILED) {\n                          s4.push(s5);\n                          s5 = peg$parse_();\n                        }\n                        s5 = peg$parsegroup();\n                        if (s5 !== peg$FAILED) {\n                          s0 = peg$f18(s3, s5);\n                        } else {\n                          peg$currPos = s0;\n                          s0 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s0;\n                        s0 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  }\n                }\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsevert() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f19(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          return s0;\n        }\n        function peg$parsel() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f20(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e4);\n            }\n          }\n          return s0;\n        }\n        function peg$parser() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f21(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e5);\n            }\n          }\n          return s0;\n        }\n        function peg$parsec() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f22(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e6);\n            }\n          }\n          return s0;\n        }\n        function peg$parsep() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f23(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e7);\n            }\n          }\n          return s0;\n        }\n        function peg$parsem() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f24(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          return s0;\n        }\n        function peg$parseb() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f25(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e9);\n            }\n          }\n          return s0;\n        }\n        function peg$parsew() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f26(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e10);\n            }\n          }\n          return s0;\n        }\n        function peg$parseW() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f27(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e11);\n            }\n          }\n          return s0;\n        }\n        function peg$parseX() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f28(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e12);\n            }\n          }\n          return s0;\n        }\n        function peg$parsebang() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f29(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e13);\n            }\n          }\n          return s0;\n        }\n        function peg$parseat() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f30(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e14);\n            }\n          }\n          return s0;\n        }\n        function peg$parseless() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f31(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e15);\n            }\n          }\n          return s0;\n        }\n        function peg$parsegreater() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f32(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e16);\n            }\n          }\n          return s0;\n        }\n        function peg$parsegroup() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f33(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e17);\n            }\n          }\n          return s0;\n        }\n        function peg$parse_() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f34(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e18);\n            }\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        if (!options.isHash) {\n          try {\n            Object.assign(options, {\n              matchChar: (node, char) => node.type === \"string\" && node.content === char,\n              isGroup: (node) => node.type === \"group\",\n              isWhitespace: (node) => node.type === \"whitespace\"\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _SystemePegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { body: peg$parsebody };\n        var peg$startRuleFunction = peg$parsebody;\n        var peg$e1 = peg$otherExpectation(\"item\");\n        var peg$e2 = peg$anyExpectation();\n        var peg$e3 = peg$otherExpectation(\"equation\");\n        var peg$e4 = peg$otherExpectation(\"trailing comment\");\n        var peg$e5 = peg$otherExpectation(\"comment only line\");\n        var peg$e6 = peg$otherExpectation(\"non-var token\");\n        var peg$e7 = peg$otherExpectation(\"token\");\n        var peg$e8 = peg$otherExpectation(\"same line comment\");\n        var peg$e9 = peg$otherExpectation(\"own line comment\");\n        var peg$e10 = peg$otherExpectation(\",\");\n        var peg$e11 = peg$otherExpectation(\"@\");\n        var peg$e12 = peg$otherExpectation(\"variable token\");\n        var peg$e13 = peg$otherExpectation(\"+/-\");\n        var peg$e14 = peg$otherExpectation(\"=\");\n        var peg$f0 = function(a, b) {\n          return a.concat(b ? b : []);\n        };\n        var peg$f1 = function() {\n          return [];\n        };\n        var peg$f3 = function(op, a, b, c) {\n          return { type: \"item\", op, variable: b, content: a.concat(b, c) };\n        };\n        var peg$f4 = function(op, a) {\n          return { type: \"item\", op, variable: null, content: a };\n        };\n        var peg$f5 = function(line3, sep, comment2) {\n          return { ...line3, sep: [].concat(sep), trailingComment: comment2 };\n        };\n        var peg$f6 = function(line3, comment2) {\n          return { ...line3, trailingComment: comment2 };\n        };\n        var peg$f7 = function(eq, ann) {\n          return {\n            type: \"line\",\n            equation: eq,\n            annotation: ann,\n            sep: null\n          };\n        };\n        var peg$f8 = function(at2, ann) {\n          return at2 ? { type: \"annotation\", marker: at2, content: ann } : null;\n        };\n        var peg$f9 = function(left, eq, right) {\n          return { type: \"equation\", left, right, equals: eq };\n        };\n        var peg$f10 = function(x) {\n          return x;\n        };\n        var peg$f11 = function(x) {\n          return {\n            type: \"line\",\n            trailingComment: x\n          };\n        };\n        var peg$f12 = function(v, s2) {\n          return [v].concat(s2 ? s2 : []);\n        };\n        var peg$f13 = function(t) {\n          return t;\n        };\n        var peg$f14 = function(x) {\n          return x;\n        };\n        var peg$f15 = function(x) {\n          return x;\n        };\n        var peg$f16 = function(tok) {\n          return options.isSameLineComment(tok);\n        };\n        var peg$f17 = function(tok) {\n          return tok;\n        };\n        var peg$f18 = function(tok) {\n          return options.isOwnLineComment(tok);\n        };\n        var peg$f19 = function(tok) {\n          return tok;\n        };\n        var peg$f20 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$f21 = function(tok) {\n          return tok;\n        };\n        var peg$f22 = function(tok) {\n          return options.isSep(tok);\n        };\n        var peg$f23 = function(tok) {\n          return tok;\n        };\n        var peg$f24 = function(tok) {\n          return options.isAt(tok);\n        };\n        var peg$f25 = function(tok) {\n          return tok;\n        };\n        var peg$f26 = function(tok) {\n          return options.isVar(tok);\n        };\n        var peg$f27 = function(tok) {\n          return tok;\n        };\n        var peg$f28 = function(tok) {\n          return options.isOperation(tok);\n        };\n        var peg$f29 = function(tok) {\n          return tok;\n        };\n        var peg$f30 = function(tok) {\n          return options.isEquals(tok);\n        };\n        var peg$f31 = function(tok) {\n          return tok;\n        };\n        var peg$f32 = function(tok) {\n          return options.isSubscript(tok);\n        };\n        var peg$f33 = function(tok) {\n          return tok;\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsebody() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parsecomment_only_line();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseline_with_sep();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parsepartial_line_with_comment();\n            }\n          }\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parsecomment_only_line();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseline_with_sep();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parsepartial_line_with_comment();\n              }\n            }\n          }\n          s2 = peg$parseline_without_sep();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseEOL();\n          }\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f0(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseEOL();\n            if (s1 !== peg$FAILED) {\n              s1 = peg$f1();\n            }\n            s0 = s1;\n          }\n          return s0;\n        }\n        function peg$parseitem() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$parseoperation();\n          if (s1 === peg$FAILED) {\n            s1 = null;\n          }\n          s2 = [];\n          s3 = peg$parse_();\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parse_();\n          }\n          s3 = [];\n          s4 = peg$parsenon_var_token();\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$parsenon_var_token();\n          }\n          s4 = [];\n          s5 = peg$parse_();\n          while (s5 !== peg$FAILED) {\n            s4.push(s5);\n            s5 = peg$parse_();\n          }\n          s5 = peg$parsevar();\n          if (s5 !== peg$FAILED) {\n            s6 = [];\n            s7 = peg$parse_();\n            while (s7 !== peg$FAILED) {\n              s6.push(s7);\n              s7 = peg$parse_();\n            }\n            s7 = [];\n            s8 = peg$parsetoken();\n            while (s8 !== peg$FAILED) {\n              s7.push(s8);\n              s8 = peg$parsetoken();\n            }\n            s8 = [];\n            s9 = peg$parse_();\n            while (s9 !== peg$FAILED) {\n              s8.push(s9);\n              s9 = peg$parse_();\n            }\n            s0 = peg$f3(s1, s3, s5, s7);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseoperation();\n            if (s1 === peg$FAILED) {\n              s1 = null;\n            }\n            s2 = [];\n            s3 = peg$parse_();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parse_();\n            }\n            s3 = [];\n            s4 = peg$parsenon_var_token();\n            if (s4 !== peg$FAILED) {\n              while (s4 !== peg$FAILED) {\n                s3.push(s4);\n                s4 = peg$parsenon_var_token();\n              }\n            } else {\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              s4 = [];\n              s5 = peg$parse_();\n              while (s5 !== peg$FAILED) {\n                s4.push(s5);\n                s5 = peg$parse_();\n              }\n              s0 = peg$f4(s1, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e1);\n            }\n          }\n          return s0;\n        }\n        function peg$parseline_with_sep() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parseline_without_sep();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsesep();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parsetrailing_comment();\n              if (s3 === peg$FAILED) {\n                s3 = null;\n              }\n              s0 = peg$f5(s1, s2, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsepartial_line_with_comment() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parseline_without_sep();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsetrailing_comment();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f6(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseline_without_sep() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          peg$silentFails--;\n          if (s2 !== peg$FAILED) {\n            peg$currPos = s1;\n            s1 = void 0;\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseequation();\n            s3 = peg$parseannotation();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s0 = peg$f7(s2, s3);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseannotation() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parseat();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parsenon_sep_token();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parsenon_sep_token();\n            }\n            s0 = peg$f8(s1, s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseequation() {\n          var s0, s1, s2, s3, s4;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parseitem();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parseitem();\n          }\n          s2 = peg$parseequals();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s3 = [];\n          s4 = peg$parsetoken();\n          if (s4 === peg$FAILED) {\n            s4 = peg$parseoperation();\n          }\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$parsetoken();\n            if (s4 === peg$FAILED) {\n              s4 = peg$parseoperation();\n            }\n          }\n          s0 = peg$f9(s1, s2, s3);\n          peg$silentFails--;\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e3);\n          }\n          return s0;\n        }\n        function peg$parsetrailing_comment() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parse_();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parse_();\n          }\n          s2 = peg$parsesame_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f10(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e4);\n            }\n          }\n          return s0;\n        }\n        function peg$parsecomment_only_line() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parse_();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parse_();\n          }\n          s2 = peg$parseown_line_comment();\n          if (s2 !== peg$FAILED) {\n            s0 = peg$f11(s2);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e5);\n            }\n          }\n          return s0;\n        }\n        function peg$parsevar() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          s1 = peg$parsevar_token();\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            s3 = peg$parse_();\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              s3 = peg$parse_();\n            }\n            s3 = peg$parsesubscript();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s0 = peg$f12(s1, s3);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsenon_var_token() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          s2 = peg$parsevar();\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsetoken();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f13(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e6);\n            }\n          }\n          return s0;\n        }\n        function peg$parsenon_sep_token() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          s2 = peg$parsesep();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parsetrailing_comment();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseown_line_comment();\n            }\n          }\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f14(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsetoken() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          peg$silentFails++;\n          s2 = peg$parsesep();\n          if (s2 === peg$FAILED) {\n            s2 = peg$parseat();\n            if (s2 === peg$FAILED) {\n              s2 = peg$parseoperation();\n              if (s2 === peg$FAILED) {\n                s2 = peg$parseequals();\n                if (s2 === peg$FAILED) {\n                  s2 = peg$parsetrailing_comment();\n                  if (s2 === peg$FAILED) {\n                    s2 = peg$parseown_line_comment();\n                  }\n                }\n              }\n            }\n          }\n          peg$silentFails--;\n          if (s2 === peg$FAILED) {\n            s1 = void 0;\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e2);\n              }\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f15(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e7);\n            }\n          }\n          return s0;\n        }\n        function peg$parsesame_line_comment() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f16(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f17(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e8);\n            }\n          }\n          return s0;\n        }\n        function peg$parseown_line_comment() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f18(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f19(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e9);\n            }\n          }\n          return s0;\n        }\n        function peg$parse_() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f20(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f21(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesep() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f22(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f23(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e10);\n            }\n          }\n          return s0;\n        }\n        function peg$parseat() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f24(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f25(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e11);\n            }\n          }\n          return s0;\n        }\n        function peg$parsevar_token() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f26(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f27(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e12);\n            }\n          }\n          return s0;\n        }\n        function peg$parseoperation() {\n          var s0, s1, s2, s3, s4;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parse_();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parse_();\n          }\n          if (input.length > peg$currPos) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = [];\n            s4 = peg$parse_();\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parse_();\n            }\n            s4 = peg$f28(s2);\n            if (s4) {\n              s4 = void 0;\n            } else {\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              s0 = peg$f29(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e13);\n            }\n          }\n          return s0;\n        }\n        function peg$parseequals() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f30(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f31(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e14);\n            }\n          }\n          return s0;\n        }\n        function peg$parsesubscript() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f32(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f33(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseEOL() {\n          var s0, s1;\n          s0 = peg$currPos;\n          peg$silentFails++;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          peg$silentFails--;\n          if (s1 === peg$FAILED) {\n            s0 = void 0;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        if (!options.isWhitespace) {\n          try {\n            Object.assign(options, {\n              isSep: (node) => node.type === \"string\" && node.content === \",\",\n              isVar: (node) => node.type === \"string\" && node.content.match(/[a-zA-Z]/),\n              isOperation: (node) => node.type === \"string\" && node.content.match(/[+-]/),\n              isEquals: (node) => node.type === \"string\" && node.content === \"=\",\n              isAt: (node) => node.type === \"string\" && node.content === \"@\",\n              isSubscript: (node) => node.content === \"_\",\n              isWhitespace: (node) => node.type === \"whitespace\",\n              isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n              isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _GluePegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { root: peg$parseroot };\n        var peg$startRuleFunction = peg$parseroot;\n        var peg$c0 = \"plus\";\n        var peg$c1 = \"minus\";\n        var peg$c2 = \"pt\";\n        var peg$c3 = \"mm\";\n        var peg$c4 = \"cm\";\n        var peg$c5 = \"in\";\n        var peg$c6 = \"ex\";\n        var peg$c7 = \"em\";\n        var peg$c8 = \"bp\";\n        var peg$c9 = \"pc\";\n        var peg$c10 = \"dd\";\n        var peg$c11 = \"cc\";\n        var peg$c12 = \"nd\";\n        var peg$c13 = \"nc\";\n        var peg$c14 = \"sp\";\n        var peg$c15 = \"filll\";\n        var peg$c16 = \"fill\";\n        var peg$c17 = \"fil\";\n        var peg$c18 = \".\";\n        var peg$c19 = \"+\";\n        var peg$c20 = \"-\";\n        var peg$r0 = /^[0-9]/;\n        var peg$e0 = peg$anyExpectation();\n        var peg$e1 = peg$literalExpectation(\"plus\", false);\n        var peg$e2 = peg$literalExpectation(\"minus\", false);\n        var peg$e3 = peg$literalExpectation(\"pt\", false);\n        var peg$e4 = peg$literalExpectation(\"mm\", false);\n        var peg$e5 = peg$literalExpectation(\"cm\", false);\n        var peg$e6 = peg$literalExpectation(\"in\", false);\n        var peg$e7 = peg$literalExpectation(\"ex\", false);\n        var peg$e8 = peg$literalExpectation(\"em\", false);\n        var peg$e9 = peg$literalExpectation(\"bp\", false);\n        var peg$e10 = peg$literalExpectation(\"pc\", false);\n        var peg$e11 = peg$literalExpectation(\"dd\", false);\n        var peg$e12 = peg$literalExpectation(\"cc\", false);\n        var peg$e13 = peg$literalExpectation(\"nd\", false);\n        var peg$e14 = peg$literalExpectation(\"nc\", false);\n        var peg$e15 = peg$literalExpectation(\"sp\", false);\n        var peg$e16 = peg$literalExpectation(\"filll\", false);\n        var peg$e17 = peg$literalExpectation(\"fill\", false);\n        var peg$e18 = peg$literalExpectation(\"fil\", false);\n        var peg$e19 = peg$otherExpectation(\"number\");\n        var peg$e20 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n        var peg$e21 = peg$literalExpectation(\".\", false);\n        var peg$e22 = peg$literalExpectation(\"+\", false);\n        var peg$e23 = peg$literalExpectation(\"-\", false);\n        var peg$f0 = function(b, st, sh) {\n          return {\n            type: \"glue\",\n            fixed: b,\n            stretchable: st,\n            shrinkable: sh,\n            position: location()\n          };\n        };\n        var peg$f1 = function(glue) {\n          return glue;\n        };\n        var peg$f2 = function(n, u) {\n          return { type: \"dim\", value: n, unit: u };\n        };\n        var peg$f3 = function(n, u) {\n          return { type: \"dim\", value: n, unit: u };\n        };\n        var peg$f4 = function(n, u) {\n          return { type: \"dim\", value: n, unit: u };\n        };\n        var peg$f5 = function(n) {\n          return parseFloat(n);\n        };\n        var peg$currPos = 0;\n        var peg$savedPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function location() {\n          return peg$computeLocation(peg$savedPos, peg$currPos);\n        }\n        function peg$literalExpectation(text2, ignoreCase) {\n          return { type: \"literal\", text: text2, ignoreCase };\n        }\n        function peg$classExpectation(parts, inverted, ignoreCase) {\n          return { type: \"class\", parts, inverted, ignoreCase };\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parseroot() {\n          var s0, s1, s2, s3, s4;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$parsebase();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parsestretchable();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s4 = peg$parseshrinkable();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            peg$savedPos = s1;\n            s1 = peg$f0(s2, s3, s4);\n          } else {\n            peg$currPos = s1;\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = [];\n            if (input.length > peg$currPos) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            while (s3 !== peg$FAILED) {\n              s2.push(s3);\n              if (input.length > peg$currPos) {\n                s3 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s3 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n            }\n            peg$savedPos = s0;\n            s0 = peg$f1(s1);\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsebase() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsenumber();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseunit();\n            if (s2 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s0 = peg$f2(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsestretchable() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          if (input.substr(peg$currPos, 4) === peg$c0) {\n            s1 = peg$c0;\n            peg$currPos += 4;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e1);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsenumber();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parserubber_unit();\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s0 = peg$f3(s2, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseshrinkable() {\n          var s0, s1, s2, s3;\n          s0 = peg$currPos;\n          if (input.substr(peg$currPos, 5) === peg$c1) {\n            s1 = peg$c1;\n            peg$currPos += 5;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e2);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsenumber();\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parserubber_unit();\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s0 = peg$f4(s2, s3);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseunit() {\n          var s0;\n          if (input.substr(peg$currPos, 2) === peg$c2) {\n            s0 = peg$c2;\n            peg$currPos += 2;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          if (s0 === peg$FAILED) {\n            if (input.substr(peg$currPos, 2) === peg$c3) {\n              s0 = peg$c3;\n              peg$currPos += 2;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e4);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              if (input.substr(peg$currPos, 2) === peg$c4) {\n                s0 = peg$c4;\n                peg$currPos += 2;\n              } else {\n                s0 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e5);\n                }\n              }\n              if (s0 === peg$FAILED) {\n                if (input.substr(peg$currPos, 2) === peg$c5) {\n                  s0 = peg$c5;\n                  peg$currPos += 2;\n                } else {\n                  s0 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e6);\n                  }\n                }\n                if (s0 === peg$FAILED) {\n                  if (input.substr(peg$currPos, 2) === peg$c6) {\n                    s0 = peg$c6;\n                    peg$currPos += 2;\n                  } else {\n                    s0 = peg$FAILED;\n                    if (peg$silentFails === 0) {\n                      peg$fail(peg$e7);\n                    }\n                  }\n                  if (s0 === peg$FAILED) {\n                    if (input.substr(peg$currPos, 2) === peg$c7) {\n                      s0 = peg$c7;\n                      peg$currPos += 2;\n                    } else {\n                      s0 = peg$FAILED;\n                      if (peg$silentFails === 0) {\n                        peg$fail(peg$e8);\n                      }\n                    }\n                    if (s0 === peg$FAILED) {\n                      if (input.substr(peg$currPos, 2) === peg$c8) {\n                        s0 = peg$c8;\n                        peg$currPos += 2;\n                      } else {\n                        s0 = peg$FAILED;\n                        if (peg$silentFails === 0) {\n                          peg$fail(peg$e9);\n                        }\n                      }\n                      if (s0 === peg$FAILED) {\n                        if (input.substr(peg$currPos, 2) === peg$c9) {\n                          s0 = peg$c9;\n                          peg$currPos += 2;\n                        } else {\n                          s0 = peg$FAILED;\n                          if (peg$silentFails === 0) {\n                            peg$fail(peg$e10);\n                          }\n                        }\n                        if (s0 === peg$FAILED) {\n                          if (input.substr(peg$currPos, 2) === peg$c10) {\n                            s0 = peg$c10;\n                            peg$currPos += 2;\n                          } else {\n                            s0 = peg$FAILED;\n                            if (peg$silentFails === 0) {\n                              peg$fail(peg$e11);\n                            }\n                          }\n                          if (s0 === peg$FAILED) {\n                            if (input.substr(peg$currPos, 2) === peg$c11) {\n                              s0 = peg$c11;\n                              peg$currPos += 2;\n                            } else {\n                              s0 = peg$FAILED;\n                              if (peg$silentFails === 0) {\n                                peg$fail(peg$e12);\n                              }\n                            }\n                            if (s0 === peg$FAILED) {\n                              if (input.substr(peg$currPos, 2) === peg$c12) {\n                                s0 = peg$c12;\n                                peg$currPos += 2;\n                              } else {\n                                s0 = peg$FAILED;\n                                if (peg$silentFails === 0) {\n                                  peg$fail(peg$e13);\n                                }\n                              }\n                              if (s0 === peg$FAILED) {\n                                if (input.substr(peg$currPos, 2) === peg$c13) {\n                                  s0 = peg$c13;\n                                  peg$currPos += 2;\n                                } else {\n                                  s0 = peg$FAILED;\n                                  if (peg$silentFails === 0) {\n                                    peg$fail(peg$e14);\n                                  }\n                                }\n                                if (s0 === peg$FAILED) {\n                                  if (input.substr(peg$currPos, 2) === peg$c14) {\n                                    s0 = peg$c14;\n                                    peg$currPos += 2;\n                                  } else {\n                                    s0 = peg$FAILED;\n                                    if (peg$silentFails === 0) {\n                                      peg$fail(peg$e15);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parserubber_unit() {\n          var s0;\n          s0 = peg$parseunit();\n          if (s0 === peg$FAILED) {\n            if (input.substr(peg$currPos, 5) === peg$c15) {\n              s0 = peg$c15;\n              peg$currPos += 5;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e16);\n              }\n            }\n            if (s0 === peg$FAILED) {\n              if (input.substr(peg$currPos, 4) === peg$c16) {\n                s0 = peg$c16;\n                peg$currPos += 4;\n              } else {\n                s0 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e17);\n                }\n              }\n              if (s0 === peg$FAILED) {\n                if (input.substr(peg$currPos, 3) === peg$c17) {\n                  s0 = peg$c17;\n                  peg$currPos += 3;\n                } else {\n                  s0 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e18);\n                  }\n                }\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsenumber() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          s3 = peg$parsesign();\n          if (s3 === peg$FAILED) {\n            s3 = null;\n          }\n          s4 = peg$currPos;\n          s5 = [];\n          if (peg$r0.test(input.charAt(peg$currPos))) {\n            s6 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s6 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e20);\n            }\n          }\n          while (s6 !== peg$FAILED) {\n            s5.push(s6);\n            if (peg$r0.test(input.charAt(peg$currPos))) {\n              s6 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s6 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e20);\n              }\n            }\n          }\n          if (input.charCodeAt(peg$currPos) === 46) {\n            s6 = peg$c18;\n            peg$currPos++;\n          } else {\n            s6 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e21);\n            }\n          }\n          if (s6 !== peg$FAILED) {\n            s7 = [];\n            if (peg$r0.test(input.charAt(peg$currPos))) {\n              s8 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s8 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e20);\n              }\n            }\n            if (s8 !== peg$FAILED) {\n              while (s8 !== peg$FAILED) {\n                s7.push(s8);\n                if (peg$r0.test(input.charAt(peg$currPos))) {\n                  s8 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s8 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e20);\n                  }\n                }\n              }\n            } else {\n              s7 = peg$FAILED;\n            }\n            if (s7 !== peg$FAILED) {\n              s5 = [s5, s6, s7];\n              s4 = s5;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s4;\n            s4 = peg$FAILED;\n          }\n          if (s4 === peg$FAILED) {\n            s4 = [];\n            if (peg$r0.test(input.charAt(peg$currPos))) {\n              s5 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e20);\n              }\n            }\n            if (s5 !== peg$FAILED) {\n              while (s5 !== peg$FAILED) {\n                s4.push(s5);\n                if (peg$r0.test(input.charAt(peg$currPos))) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e20);\n                  }\n                }\n              }\n            } else {\n              s4 = peg$FAILED;\n            }\n          }\n          if (s4 !== peg$FAILED) {\n            s3 = [s3, s4];\n            s2 = s3;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            s1 = input.substring(s1, peg$currPos);\n          } else {\n            s1 = s2;\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$f5(s1);\n          }\n          s0 = s1;\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e19);\n            }\n          }\n          return s0;\n        }\n        function peg$parsesign() {\n          var s0;\n          if (input.charCodeAt(peg$currPos) === 43) {\n            s0 = peg$c19;\n            peg$currPos++;\n          } else {\n            s0 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e22);\n            }\n          }\n          if (s0 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 45) {\n              s0 = peg$c20;\n              peg$currPos++;\n            } else {\n              s0 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e23);\n              }\n            }\n          }\n          return s0;\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var _TikzPegParser = (\n    // Generated by Peggy 3.0.2.\n    //\n    // https://peggyjs.org/\n    function() {\n      function peg$subclass(child, parent) {\n        function C() {\n          this.constructor = child;\n        }\n        C.prototype = parent.prototype;\n        child.prototype = new C();\n      }\n      function peg$SyntaxError(message, expected, found, location) {\n        var self2 = Error.call(this, message);\n        if (Object.setPrototypeOf) {\n          Object.setPrototypeOf(self2, peg$SyntaxError.prototype);\n        }\n        self2.expected = expected;\n        self2.found = found;\n        self2.location = location;\n        self2.name = \"SyntaxError\";\n        return self2;\n      }\n      peg$subclass(peg$SyntaxError, Error);\n      function peg$padEnd(str, targetLength, padString) {\n        padString = padString || \" \";\n        if (str.length > targetLength) {\n          return str;\n        }\n        targetLength -= str.length;\n        padString += padString.repeat(targetLength);\n        return str + padString.slice(0, targetLength);\n      }\n      peg$SyntaxError.prototype.format = function(sources) {\n        var str = \"Error: \" + this.message;\n        if (this.location) {\n          var src = null;\n          var k;\n          for (k = 0; k < sources.length; k++) {\n            if (sources[k].source === this.location.source) {\n              src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n              break;\n            }\n          }\n          var s2 = this.location.start;\n          var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s2) : s2;\n          var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n          if (src) {\n            var e = this.location.end;\n            var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n            var line3 = src[s2.line - 1];\n            var last = s2.line === e.line ? e.column : line3.length + 1;\n            var hatLen = last - s2.column || 1;\n            str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line3 + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s2.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n          } else {\n            str += \"\\n at \" + loc;\n          }\n        }\n        return str;\n      };\n      peg$SyntaxError.buildMessage = function(expected, found) {\n        var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return '\"' + literalEscape(expectation.text) + '\"';\n          },\n          class: function(expectation) {\n            var escapedParts = expectation.parts.map(function(part) {\n              return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n            });\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n          },\n          any: function() {\n            return \"any character\";\n          },\n          end: function() {\n            return \"end of input\";\n          },\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n        function hex(ch) {\n          return ch.charCodeAt(0).toString(16).toUpperCase();\n        }\n        function literalEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function classEscape(s2) {\n          return s2.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n            return \"\\\\x0\" + hex(ch);\n          }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n            return \"\\\\x\" + hex(ch);\n          });\n        }\n        function describeExpectation(expectation) {\n          return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n        }\n        function describeExpected(expected2) {\n          var descriptions = expected2.map(describeExpectation);\n          var i, j;\n          descriptions.sort();\n          if (descriptions.length > 0) {\n            for (i = 1, j = 1; i < descriptions.length; i++) {\n              if (descriptions[i - 1] !== descriptions[i]) {\n                descriptions[j] = descriptions[i];\n                j++;\n              }\n            }\n            descriptions.length = j;\n          }\n          switch (descriptions.length) {\n            case 1:\n              return descriptions[0];\n            case 2:\n              return descriptions[0] + \" or \" + descriptions[1];\n            default:\n              return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n          }\n        }\n        function describeFound(found2) {\n          return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n        }\n        return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n      };\n      function peg$parse(input, options) {\n        options = options !== void 0 ? options : {};\n        var peg$FAILED = {};\n        var peg$source = options.grammarSource;\n        var peg$startRuleFunctions = { path_spec: peg$parsepath_spec, foreach_body: peg$parseforeach_body };\n        var peg$startRuleFunction = peg$parsepath_spec;\n        var peg$e0 = peg$anyExpectation();\n        var peg$e3 = peg$otherExpectation(\"comment\");\n        var peg$e4 = peg$otherExpectation(\"floating comment\");\n        var peg$e5 = peg$otherExpectation(\"operation\");\n        var peg$e6 = peg$otherExpectation(\"=\");\n        var peg$f0 = function(v) {\n          return v;\n        };\n        var peg$f1 = function(ops) {\n          return { type: \"path_spec\", content: ops };\n        };\n        var peg$f2 = function(c1, op, comment2) {\n          return { op, comment: comment2 };\n        };\n        var peg$f3 = function(c1, ops, c2, body) {\n          const comments = [c1, ...ops.map((x) => x.comment), c2].filter(\n            (x) => x\n          );\n          const attribute = ops.map((x) => x.op.content.content).join(\" \");\n          return {\n            type: \"animation\",\n            comments,\n            attribute,\n            content: body.content\n          };\n        };\n        var peg$f4 = function(start, b) {\n          return { ...b, start, type: \"foreach\" };\n        };\n        var peg$f5 = function(c1, variables, options2, c2, c3, list, c4, command) {\n          const comments = [c1, c2, c3, c4].filter((x) => x);\n          return {\n            type: \"foreach_body\",\n            variables,\n            options: options2 && options2.content,\n            list,\n            command,\n            comments\n          };\n        };\n        var peg$f6 = function(c1, options2, c2, body) {\n          const comments = [c1, c2].filter((x) => x);\n          return {\n            type: \"svg_operation\",\n            options: options2 && options2.content,\n            content: body,\n            comments\n          };\n        };\n        var peg$f7 = function(c1, c2, coord, c3, c4, x) {\n          return { coord: x, comment: c4 };\n        };\n        var peg$f8 = function(c1, c2, coord, c3, a, c5) {\n          const comments = [c1, c2, c3, a && a.comment, c5].filter((x) => x);\n          return {\n            type: \"curve_to\",\n            controls: a ? [coord, a.coord] : [coord],\n            comments\n          };\n        };\n        var peg$f9 = function() {\n          return { type: \"line_to\", command: \"|-\" };\n        };\n        var peg$f10 = function() {\n          return { type: \"line_to\", command: \"-|\" };\n        };\n        var peg$f11 = function() {\n          return { type: \"line_to\", command: \"--\" };\n        };\n        var peg$f12 = function(prefix, content) {\n          return { type: \"coordinate\", content, prefix };\n        };\n        var peg$f13 = function(content) {\n          return { type: \"square_brace_group\", content };\n        };\n        var peg$f14 = function(v) {\n          return { type: \"unknown\", content: v };\n        };\n        var peg$f19 = function(tok) {\n          return options.isComment(tok);\n        };\n        var peg$f20 = function(tok) {\n          return tok;\n        };\n        var peg$f21 = function(tok) {\n          return options.isWhitespace(tok);\n        };\n        var peg$f22 = function(tok) {\n          return tok;\n        };\n        var peg$f23 = function(c) {\n          return c;\n        };\n        var peg$f24 = function(tok) {\n          return options.isOperation(tok);\n        };\n        var peg$f25 = function(tok) {\n          return { type: \"operation\", content: tok };\n        };\n        var peg$f26 = function(tok) {\n          return options.isChar(tok, \"=\");\n        };\n        var peg$f27 = function(tok) {\n          return tok;\n        };\n        var peg$f28 = function(tok) {\n          return options.isChar(tok, \"[\");\n        };\n        var peg$f29 = function(tok) {\n          return tok;\n        };\n        var peg$f30 = function(tok) {\n          return options.isChar(tok, \"]\");\n        };\n        var peg$f31 = function(tok) {\n          return tok;\n        };\n        var peg$f32 = function(tok) {\n          return options.isChar(tok, \"(\");\n        };\n        var peg$f33 = function(tok) {\n          return tok;\n        };\n        var peg$f34 = function(tok) {\n          return options.isChar(tok, \")\");\n        };\n        var peg$f35 = function(tok) {\n          return tok;\n        };\n        var peg$f36 = function(tok) {\n          return options.isChar(tok, \"+\");\n        };\n        var peg$f37 = function(tok) {\n          return tok;\n        };\n        var peg$f38 = function(tok) {\n          return options.isChar(tok, \"-\");\n        };\n        var peg$f39 = function(tok) {\n          return tok;\n        };\n        var peg$f40 = function(tok) {\n          return options.isChar(tok, \"|\");\n        };\n        var peg$f41 = function(tok) {\n          return tok;\n        };\n        var peg$f42 = function(tok) {\n          return options.isChar(tok, \".\");\n        };\n        var peg$f43 = function(tok) {\n          return tok;\n        };\n        var peg$f44 = function(tok) {\n          return options.isChar(tok, \"controls\");\n        };\n        var peg$f45 = function(tok) {\n          return tok;\n        };\n        var peg$f46 = function(tok) {\n          return options.isChar(tok, \"and\");\n        };\n        var peg$f47 = function(tok) {\n          return tok;\n        };\n        var peg$f48 = function(tok) {\n          return options.isChar(tok, \"svg\");\n        };\n        var peg$f49 = function(tok) {\n          return tok;\n        };\n        var peg$f50 = function(tok) {\n          return options.isGroup(tok);\n        };\n        var peg$f51 = function(tok) {\n          return tok;\n        };\n        var peg$f52 = function(tok) {\n          return options.isAnyMacro(tok);\n        };\n        var peg$f53 = function(tok) {\n          return tok;\n        };\n        var peg$f54 = function(tok) {\n          return options.isChar(tok, \"foreach\");\n        };\n        var peg$f55 = function(tok) {\n          return tok;\n        };\n        var peg$f56 = function(tok) {\n          return options.isMacro(tok, \"foreach\");\n        };\n        var peg$f57 = function(tok) {\n          return tok;\n        };\n        var peg$f58 = function(tok) {\n          return options.isChar(tok, \"in\");\n        };\n        var peg$f59 = function(tok) {\n          return tok;\n        };\n        var peg$f60 = function(tok) {\n          return options.isChar(tok, \":\");\n        };\n        var peg$f61 = function(tok) {\n          return tok;\n        };\n        var peg$currPos = 0;\n        var peg$posDetailsCache = [{ line: 1, column: 1 }];\n        var peg$maxFailPos = 0;\n        var peg$maxFailExpected = [];\n        var peg$silentFails = 0;\n        var peg$result;\n        if (\"startRule\" in options) {\n          if (!(options.startRule in peg$startRuleFunctions)) {\n            throw new Error(`Can't start parsing from rule \"` + options.startRule + '\".');\n          }\n          peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n        }\n        function peg$anyExpectation() {\n          return { type: \"any\" };\n        }\n        function peg$endExpectation() {\n          return { type: \"end\" };\n        }\n        function peg$otherExpectation(description) {\n          return { type: \"other\", description };\n        }\n        function peg$computePosDetails(pos) {\n          var details = peg$posDetailsCache[pos];\n          var p;\n          if (details) {\n            return details;\n          } else {\n            p = pos - 1;\n            while (!peg$posDetailsCache[p]) {\n              p--;\n            }\n            details = peg$posDetailsCache[p];\n            details = {\n              line: details.line,\n              column: details.column\n            };\n            while (p < pos) {\n              if (input.charCodeAt(p) === 10) {\n                details.line++;\n                details.column = 1;\n              } else {\n                details.column++;\n              }\n              p++;\n            }\n            peg$posDetailsCache[pos] = details;\n            return details;\n          }\n        }\n        function peg$computeLocation(startPos, endPos, offset2) {\n          var startPosDetails = peg$computePosDetails(startPos);\n          var endPosDetails = peg$computePosDetails(endPos);\n          var res = {\n            source: peg$source,\n            start: {\n              offset: startPos,\n              line: startPosDetails.line,\n              column: startPosDetails.column\n            },\n            end: {\n              offset: endPos,\n              line: endPosDetails.line,\n              column: endPosDetails.column\n            }\n          };\n          return res;\n        }\n        function peg$fail(expected2) {\n          if (peg$currPos < peg$maxFailPos) {\n            return;\n          }\n          if (peg$currPos > peg$maxFailPos) {\n            peg$maxFailPos = peg$currPos;\n            peg$maxFailExpected = [];\n          }\n          peg$maxFailExpected.push(expected2);\n        }\n        function peg$buildStructuredError(expected2, found, location2) {\n          return new peg$SyntaxError(\n            peg$SyntaxError.buildMessage(expected2, found),\n            expected2,\n            found,\n            location2\n          );\n        }\n        function peg$parsepath_spec() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$currPos;\n          s3 = peg$parsesquare_brace_group();\n          if (s3 === peg$FAILED) {\n            s3 = peg$parsecoordinate();\n            if (s3 === peg$FAILED) {\n              s3 = peg$parsecurve_to();\n              if (s3 === peg$FAILED) {\n                s3 = peg$parseline_to();\n                if (s3 === peg$FAILED) {\n                  s3 = peg$parsesvg();\n                  if (s3 === peg$FAILED) {\n                    s3 = peg$parseforeach();\n                    if (s3 === peg$FAILED) {\n                      s3 = peg$parseoperation();\n                      if (s3 === peg$FAILED) {\n                        s3 = peg$parsecomment();\n                        if (s3 === peg$FAILED) {\n                          s3 = peg$parseanimation();\n                          if (s3 === peg$FAILED) {\n                            s3 = peg$parseunknown();\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = [];\n            s5 = peg$parse_();\n            while (s5 !== peg$FAILED) {\n              s4.push(s5);\n              s5 = peg$parse_();\n            }\n            s2 = peg$f0(s3);\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 !== peg$FAILED) {\n            while (s2 !== peg$FAILED) {\n              s1.push(s2);\n              s2 = peg$currPos;\n              s3 = peg$parsesquare_brace_group();\n              if (s3 === peg$FAILED) {\n                s3 = peg$parsecoordinate();\n                if (s3 === peg$FAILED) {\n                  s3 = peg$parsecurve_to();\n                  if (s3 === peg$FAILED) {\n                    s3 = peg$parseline_to();\n                    if (s3 === peg$FAILED) {\n                      s3 = peg$parsesvg();\n                      if (s3 === peg$FAILED) {\n                        s3 = peg$parseforeach();\n                        if (s3 === peg$FAILED) {\n                          s3 = peg$parseoperation();\n                          if (s3 === peg$FAILED) {\n                            s3 = peg$parsecomment();\n                            if (s3 === peg$FAILED) {\n                              s3 = peg$parseanimation();\n                              if (s3 === peg$FAILED) {\n                                s3 = peg$parseunknown();\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n              if (s3 !== peg$FAILED) {\n                s4 = [];\n                s5 = peg$parse_();\n                while (s5 !== peg$FAILED) {\n                  s4.push(s5);\n                  s5 = peg$parse_();\n                }\n                s2 = peg$f0(s3);\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            }\n          } else {\n            s1 = peg$FAILED;\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f1(s1);\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parseanimation() {\n          var s0, s1, s2, s3, s4, s5, s6;\n          s0 = peg$currPos;\n          s1 = peg$parsecolon();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parse_comment_();\n            s3 = [];\n            s4 = peg$currPos;\n            s5 = peg$parseoperation();\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parse_comment_();\n              s4 = peg$f2(s2, s5, s6);\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            if (s4 !== peg$FAILED) {\n              while (s4 !== peg$FAILED) {\n                s3.push(s4);\n                s4 = peg$currPos;\n                s5 = peg$parseoperation();\n                if (s5 !== peg$FAILED) {\n                  s6 = peg$parse_comment_();\n                  s4 = peg$f2(s2, s5, s6);\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              }\n            } else {\n              s3 = peg$FAILED;\n            }\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parseequals();\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parse_comment_();\n                s6 = peg$parsegroup();\n                if (s6 !== peg$FAILED) {\n                  s0 = peg$f3(s2, s3, s5, s6);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseforeach() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parseforeach_keyword();\n          if (s1 === peg$FAILED) {\n            s1 = peg$parseforeach_macro();\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseforeach_body();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f4(s1, s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseforeach_body() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n          s0 = peg$currPos;\n          s1 = peg$parse_comment_();\n          s2 = peg$currPos;\n          s3 = [];\n          s4 = peg$currPos;\n          s5 = peg$currPos;\n          peg$silentFails++;\n          s6 = peg$parsein_keyword();\n          if (s6 === peg$FAILED) {\n            s6 = peg$parsesquare_brace_group();\n          }\n          peg$silentFails--;\n          if (s6 === peg$FAILED) {\n            s5 = void 0;\n          } else {\n            peg$currPos = s5;\n            s5 = peg$FAILED;\n          }\n          if (s5 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s6 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s6 = peg$FAILED;\n              if (peg$silentFails === 0) {\n                peg$fail(peg$e0);\n              }\n            }\n            if (s6 !== peg$FAILED) {\n              s5 = [s5, s6];\n              s4 = s5;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s4;\n            s4 = peg$FAILED;\n          }\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$currPos;\n            s5 = peg$currPos;\n            peg$silentFails++;\n            s6 = peg$parsein_keyword();\n            if (s6 === peg$FAILED) {\n              s6 = peg$parsesquare_brace_group();\n            }\n            peg$silentFails--;\n            if (s6 === peg$FAILED) {\n              s5 = void 0;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            if (s5 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s6 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n              if (s6 !== peg$FAILED) {\n                s5 = [s5, s6];\n                s4 = s5;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          }\n          s2 = input.substring(s2, peg$currPos);\n          s3 = peg$parsesquare_brace_group();\n          if (s3 === peg$FAILED) {\n            s3 = null;\n          }\n          s4 = peg$parse_comment_();\n          s5 = peg$parsein_keyword();\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parse_comment_();\n            s7 = peg$parsegroup();\n            if (s7 === peg$FAILED) {\n              s7 = peg$parsemacro();\n            }\n            if (s7 !== peg$FAILED) {\n              s8 = peg$parse_comment_();\n              s9 = peg$parseforeach();\n              if (s9 === peg$FAILED) {\n                s9 = peg$parsegroup();\n                if (s9 === peg$FAILED) {\n                  s9 = peg$parsemacro();\n                }\n              }\n              if (s9 !== peg$FAILED) {\n                s0 = peg$f5(s1, s2, s3, s4, s6, s7, s8, s9);\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesvg() {\n          var s0, s1, s2, s3, s4, s5;\n          s0 = peg$currPos;\n          s1 = peg$parsesvg_keyword();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parse_comment_();\n            s3 = peg$parsesquare_brace_group();\n            if (s3 === peg$FAILED) {\n              s3 = null;\n            }\n            s4 = peg$parse_comment_();\n            s5 = peg$parsegroup();\n            if (s5 !== peg$FAILED) {\n              s0 = peg$f6(s2, s3, s4, s5);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecurve_to() {\n          var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n          s0 = peg$currPos;\n          s1 = peg$parsedotdot();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parse_comment_();\n            s3 = peg$parsecontrols_keyword();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parse_comment_();\n              s5 = peg$parsecoordinate();\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parse_comment_();\n                s7 = peg$currPos;\n                s8 = peg$parseand_keyword();\n                if (s8 !== peg$FAILED) {\n                  s9 = peg$parse_comment_();\n                  s10 = peg$parsecoordinate();\n                  if (s10 !== peg$FAILED) {\n                    s7 = peg$f7(s2, s4, s5, s6, s9, s10);\n                  } else {\n                    peg$currPos = s7;\n                    s7 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s7;\n                  s7 = peg$FAILED;\n                }\n                if (s7 === peg$FAILED) {\n                  s7 = null;\n                }\n                s8 = peg$parse_comment_();\n                s9 = peg$parsedotdot();\n                if (s9 !== peg$FAILED) {\n                  s0 = peg$f8(s2, s4, s5, s6, s7, s8);\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseline_to() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsepipe();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parseminus();\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f9();\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            s1 = peg$parseminus();\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parsepipe();\n              if (s2 !== peg$FAILED) {\n                s0 = peg$f10();\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              s1 = peg$parseminus();\n              if (s1 !== peg$FAILED) {\n                s2 = peg$parseminus();\n                if (s2 !== peg$FAILED) {\n                  s0 = peg$f11();\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            }\n          }\n          return s0;\n        }\n        function peg$parsecoordinate() {\n          var s0, s1, s2, s3, s4, s5, s6, s7;\n          s0 = peg$currPos;\n          s1 = peg$currPos;\n          s2 = peg$currPos;\n          s3 = peg$parseplus();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseplus();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            s3 = [s3, s4];\n            s2 = s3;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s1 = input.substring(s1, peg$currPos);\n          s2 = peg$parseopen_paren();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$currPos;\n            s4 = [];\n            s5 = peg$currPos;\n            s6 = peg$currPos;\n            peg$silentFails++;\n            s7 = peg$parseclose_paren();\n            peg$silentFails--;\n            if (s7 === peg$FAILED) {\n              s6 = void 0;\n            } else {\n              peg$currPos = s6;\n              s6 = peg$FAILED;\n            }\n            if (s6 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s7 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s7 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n              if (s7 !== peg$FAILED) {\n                s6 = [s6, s7];\n                s5 = s6;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            while (s5 !== peg$FAILED) {\n              s4.push(s5);\n              s5 = peg$currPos;\n              s6 = peg$currPos;\n              peg$silentFails++;\n              s7 = peg$parseclose_paren();\n              peg$silentFails--;\n              if (s7 === peg$FAILED) {\n                s6 = void 0;\n              } else {\n                peg$currPos = s6;\n                s6 = peg$FAILED;\n              }\n              if (s6 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s7 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s7 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e0);\n                  }\n                }\n                if (s7 !== peg$FAILED) {\n                  s6 = [s6, s7];\n                  s5 = s6;\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n            }\n            s3 = input.substring(s3, peg$currPos);\n            s4 = peg$parseclose_paren();\n            if (s4 !== peg$FAILED) {\n              s0 = peg$f12(s1, s3);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesquare_brace_group() {\n          var s0, s1, s2, s3, s4, s5, s6;\n          s0 = peg$currPos;\n          s1 = peg$parseopen_square_brace();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$currPos;\n            s3 = [];\n            s4 = peg$currPos;\n            s5 = peg$currPos;\n            peg$silentFails++;\n            s6 = peg$parseclose_square_brace();\n            peg$silentFails--;\n            if (s6 === peg$FAILED) {\n              s5 = void 0;\n            } else {\n              peg$currPos = s5;\n              s5 = peg$FAILED;\n            }\n            if (s5 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s6 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) {\n                  peg$fail(peg$e0);\n                }\n              }\n              if (s6 !== peg$FAILED) {\n                s5 = [s5, s6];\n                s4 = s5;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$currPos;\n              s5 = peg$currPos;\n              peg$silentFails++;\n              s6 = peg$parseclose_square_brace();\n              peg$silentFails--;\n              if (s6 === peg$FAILED) {\n                s5 = void 0;\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s6 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s6 = peg$FAILED;\n                  if (peg$silentFails === 0) {\n                    peg$fail(peg$e0);\n                  }\n                }\n                if (s6 !== peg$FAILED) {\n                  s5 = [s5, s6];\n                  s4 = s5;\n                } else {\n                  peg$currPos = s4;\n                  s4 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            }\n            s2 = input.substring(s2, peg$currPos);\n            s3 = peg$parseclose_square_brace();\n            if (s3 !== peg$FAILED) {\n              s0 = peg$f13(s2);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedotdot() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          s1 = peg$parsedot();\n          if (s1 !== peg$FAILED) {\n            s2 = peg$parsedot();\n            if (s2 !== peg$FAILED) {\n              s1 = [s1, s2];\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseunknown() {\n          var s0, s1;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s1 = peg$f14(s1);\n          }\n          s0 = s1;\n          return s0;\n        }\n        function peg$parsecomment() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f19(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f20(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e3);\n            }\n          }\n          return s0;\n        }\n        function peg$parse_() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f21(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f22(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parse_comment_() {\n          var s0, s1, s2, s3, s4;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          s1 = [];\n          s2 = peg$parse_();\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            s2 = peg$parse_();\n          }\n          s2 = peg$parsecomment();\n          if (s2 === peg$FAILED) {\n            s2 = null;\n          }\n          s3 = [];\n          s4 = peg$parse_();\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$parse_();\n          }\n          s0 = peg$f23(s2);\n          peg$silentFails--;\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) {\n            peg$fail(peg$e4);\n          }\n          return s0;\n        }\n        function peg$parseoperation() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f24(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f25(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e5);\n            }\n          }\n          return s0;\n        }\n        function peg$parseequals() {\n          var s0, s1, s2;\n          peg$silentFails++;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f26(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f27(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          peg$silentFails--;\n          if (s0 === peg$FAILED) {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e6);\n            }\n          }\n          return s0;\n        }\n        function peg$parseopen_square_brace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f28(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f29(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseclose_square_brace() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f30(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f31(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseopen_paren() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f32(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f33(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseclose_paren() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f34(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f35(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseplus() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f36(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f37(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseminus() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f38(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f39(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsepipe() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f40(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f41(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsedot() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f42(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f43(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecontrols_keyword() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f44(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f45(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseand_keyword() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f46(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f47(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsesvg_keyword() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f48(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f49(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsegroup() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f50(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f51(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsemacro() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f52(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f53(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseforeach_keyword() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f54(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f55(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parseforeach_macro() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f56(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f57(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsein_keyword() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f58(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f59(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        function peg$parsecolon() {\n          var s0, s1, s2;\n          s0 = peg$currPos;\n          if (input.length > peg$currPos) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) {\n              peg$fail(peg$e0);\n            }\n          }\n          if (s1 !== peg$FAILED) {\n            s2 = peg$f60(s1);\n            if (s2) {\n              s2 = void 0;\n            } else {\n              s2 = peg$FAILED;\n            }\n            if (s2 !== peg$FAILED) {\n              s0 = peg$f61(s1);\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          return s0;\n        }\n        if (!options.isWhitespace) {\n          try {\n            Object.assign(options, {\n              isChar: (node, char) => node.type === \"string\" && node.content === char,\n              isOperation: (node) => node.type === \"string\" && node.content.match(/[a-zA-Z]/),\n              isWhitespace: (node) => node.type === \"whitespace\" || node.type === \"parbreak\",\n              isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n              isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline,\n              isComment: (node) => node.type === \"comment\",\n              isGroup: (node) => node.type === \"group\",\n              isMacro: (node, name) => node.type === \"macro\" && node.content === name,\n              isAnyMacro: (node) => node.type === \"macro\"\n            });\n          } catch (e) {\n            console.warn(\"Error when initializing parser\", e);\n          }\n        }\n        peg$result = peg$startRuleFunction();\n        if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n          return peg$result;\n        } else {\n          if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n            peg$fail(peg$endExpectation());\n          }\n          throw peg$buildStructuredError(\n            peg$maxFailExpected,\n            peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n            peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n          );\n        }\n      }\n      return {\n        SyntaxError: peg$SyntaxError,\n        parse: peg$parse\n      };\n    }()\n  );\n  var LatexPegParser = _LatexPegParser;\n  var AlignEnvironmentPegParser = _AlignEnvironmentPegParser;\n  var ArgSpecPegParser = _ArgSpecPegParser;\n  var PgfkeysPegParser = _PgfkeysPegParser;\n  var TikzPegParser = _TikzPegParser;\n\n  // ../node_modules/@unified-latex/unified-latex-util-argspec/index.js\n  var parseCache = {};\n  function parse(str = \"\") {\n    parseCache[str] = parseCache[str] || ArgSpecPegParser.parse(str);\n    return parseCache[str];\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-scan/index.js\n  var import_trie_prefix_tree = __toESM(require_dist(), 1);\n  var import_trie_prefix_tree2 = __toESM(require_dist(), 1);\n  function scan(nodes, token, options) {\n    const { startIndex, onlySkipWhitespaceAndComments, allowSubstringMatches } = options || {};\n    if (typeof token === \"string\") {\n      token = { type: \"string\", content: token };\n    }\n    for (let i = startIndex || 0; i < nodes.length; i++) {\n      const node = nodes[i];\n      if (node.type === token.type) {\n        switch (node.type) {\n          case \"comment\":\n          case \"displaymath\":\n          case \"inlinemath\":\n          case \"root\":\n          case \"parbreak\":\n          case \"whitespace\":\n          case \"verb\":\n          case \"verbatim\":\n          case \"group\":\n            return i;\n          case \"macro\":\n            if (node.content === token.content) {\n              return i;\n            }\n            break;\n          case \"environment\":\n          case \"mathenv\":\n            if (printRaw(node.env) === printRaw(token.env)) {\n              return i;\n            }\n            break;\n          case \"string\":\n            if (node.content === token.content) {\n              return i;\n            }\n            if (allowSubstringMatches && node.content.indexOf(token.content) >= 0) {\n              return i;\n            }\n            break;\n        }\n      }\n      if (onlySkipWhitespaceAndComments && !match.whitespace(node) && !match.comment(node)) {\n        return null;\n      }\n    }\n    return null;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-arguments/index.js\n  function gobbleSingleArgument(nodes, argSpec, startPos = 0) {\n    if (typeof argSpec === \"string\" || !argSpec.type) {\n      throw new Error(\n        `argSpec must be an already-parsed argument specification, not \"${JSON.stringify(\n          argSpec\n        )}\"`\n      );\n    }\n    let argument2 = null;\n    let currPos = startPos;\n    const gobbleWhitespace = argSpec.noLeadingWhitespace ? () => {\n    } : () => {\n      while (currPos < nodes.length) {\n        if (!match.whitespace(nodes[currPos])) {\n          break;\n        }\n        currPos++;\n      }\n    };\n    const openMark = argSpec.openBrace || \"\";\n    const closeMark = argSpec.closeBrace || \"\";\n    const acceptGroup = (argSpec.type === \"mandatory\" || argSpec.type === \"optional\") && openMark === \"{\" && closeMark === \"}\";\n    gobbleWhitespace();\n    const currNode = nodes[currPos];\n    if (currNode == null || match.comment(currNode) || match.parbreak(currNode)) {\n      const ret = {\n        argument: argument2,\n        nodesRemoved: 0\n      };\n      return ret;\n    }\n    switch (argSpec.type) {\n      case \"mandatory\":\n        if (acceptGroup) {\n          let content = [currNode];\n          if (match.group(currNode)) {\n            content = currNode.content;\n          }\n          argument2 = arg(content, {\n            openMark,\n            closeMark\n          });\n          currPos++;\n          break;\n        } else {\n          const bracePos2 = findBracePositions(\n            nodes,\n            currPos,\n            openMark,\n            closeMark\n          );\n          if (bracePos2) {\n            argument2 = arg(nodes.slice(bracePos2[0] + 1, bracePos2[1]), {\n              openMark,\n              closeMark\n            });\n            currPos = bracePos2[1] + 1;\n            break;\n          }\n        }\n      case \"optional\":\n        if (acceptGroup && match.group(currNode)) {\n          argument2 = arg(currNode.content, {\n            openMark,\n            closeMark\n          });\n          currPos++;\n          break;\n        }\n        const bracePos = findBracePositions(\n          nodes,\n          currPos,\n          openMark,\n          closeMark\n        );\n        if (bracePos) {\n          argument2 = arg(nodes.slice(bracePos[0] + 1, bracePos[1]), {\n            openMark,\n            closeMark\n          });\n          currPos = bracePos[1] + 1;\n          break;\n        }\n        break;\n      case \"optionalStar\":\n      case \"optionalToken\": {\n        const bracePos2 = findBracePositions(\n          nodes,\n          currPos,\n          argSpec.type === \"optionalStar\" ? \"*\" : argSpec.token\n        );\n        if (bracePos2) {\n          argument2 = arg(currNode, { openMark: \"\", closeMark: \"\" });\n          currPos = bracePos2[0] + 1;\n        }\n        break;\n      }\n      case \"until\": {\n        if (argSpec.stopTokens.length > 1) {\n          console.warn(\n            `\"until\" matches with multi-token stop conditions are not yet implemented`\n          );\n          break;\n        }\n        const rawToken = argSpec.stopTokens[0];\n        const stopToken = rawToken === \" \" ? { type: \"whitespace\" } : rawToken;\n        let bracePos2 = findBracePositions(\n          nodes,\n          startPos,\n          void 0,\n          stopToken\n        );\n        if (!bracePos2) {\n          break;\n        }\n        argument2 = arg(nodes.slice(startPos, bracePos2[1]), {\n          openMark: \"\",\n          closeMark: rawToken\n        });\n        currPos = bracePos2[1];\n        if (currPos < nodes.length) {\n          currPos++;\n        }\n        break;\n      }\n      case \"embellishment\": {\n        for (const token of argSpec.embellishmentTokens) {\n          const bracePos2 = findBracePositions(nodes, currPos, token);\n          if (!bracePos2) {\n            continue;\n          }\n          let argNode = nodes[bracePos2[0] + 1];\n          argument2 = arg(\n            match.group(argNode) ? argNode.content : argNode,\n            {\n              openMark: token,\n              closeMark: \"\"\n            }\n          );\n          currPos = bracePos2[1] + 1;\n          break;\n        }\n        break;\n      }\n      default:\n        console.warn(\n          `Don't know how to find an argument of argspec type \"${argSpec.type}\"`\n        );\n    }\n    const nodesRemoved = argument2 ? currPos - startPos : 0;\n    nodes.splice(startPos, nodesRemoved);\n    return { argument: argument2, nodesRemoved };\n  }\n  function cloneStringNode(node, content) {\n    return Object.assign({}, node, { content });\n  }\n  function findBracePositions(nodes, startPos, openMark, closeMark) {\n    const currNode = nodes[startPos];\n    let openMarkPos = startPos;\n    let closeMarkPos = startPos;\n    if (openMark) {\n      if (!match.anyString(currNode)) {\n        return;\n      }\n      const nodeContent = currNode.content;\n      if (!nodeContent.startsWith(openMark)) {\n        return;\n      }\n      openMarkPos = startPos;\n      if (currNode.content.length > openMark.length) {\n        const nodeContent2 = currNode.content;\n        currNode.content = openMark;\n        nodes.splice(\n          openMarkPos + 1,\n          0,\n          cloneStringNode(currNode, nodeContent2.slice(openMark.length))\n        );\n      }\n      closeMarkPos = openMarkPos + 1;\n    }\n    if (!closeMark) {\n      const argNode = nodes[closeMarkPos];\n      if (!argNode) {\n        return;\n      }\n      if (match.anyString(argNode) && argNode.content.length > 1) {\n        const argContent = argNode.content;\n        argNode.content = argContent[0];\n        nodes.splice(\n          closeMarkPos + 1,\n          0,\n          cloneStringNode(argNode, argContent.slice(1))\n        );\n      }\n      return [openMarkPos, closeMarkPos];\n    }\n    closeMarkPos = scan(nodes, closeMark, {\n      startIndex: closeMarkPos,\n      allowSubstringMatches: true\n    });\n    if (closeMarkPos === null) {\n      return;\n    }\n    const closingNode = nodes[closeMarkPos];\n    if (match.anyString(closingNode) && typeof closeMark === \"string\") {\n      const closingNodeContent = closingNode.content;\n      let closeMarkIndex = closingNodeContent.indexOf(closeMark);\n      if (closingNodeContent.length > closeMark.length) {\n        closingNode.content = closeMark;\n        const prev = closingNodeContent.slice(0, closeMarkIndex);\n        const next = closingNodeContent.slice(\n          closeMarkIndex + closeMark.length\n        );\n        if (prev) {\n          nodes.splice(\n            closeMarkPos,\n            0,\n            cloneStringNode(closingNode, prev)\n          );\n          closeMarkPos++;\n        }\n        if (next) {\n          nodes.splice(\n            closeMarkPos + 1,\n            0,\n            cloneStringNode(closingNode, next)\n          );\n        }\n      }\n    }\n    return [openMarkPos, closeMarkPos];\n  }\n  function gobbleArguments(nodes, argSpec, startPos = 0) {\n    if (typeof argSpec === \"function\") {\n      return argSpec(nodes, startPos);\n    }\n    if (typeof argSpec === \"string\") {\n      argSpec = parse(argSpec);\n    }\n    const args = [];\n    let nodesRemoved = 0;\n    for (const spec of argSpec) {\n      if (spec.type === \"embellishment\") {\n        const remainingTokens = new Set(spec.embellishmentTokens);\n        const argForToken = Object.fromEntries(\n          spec.embellishmentTokens.map((t, i) => {\n            var _a;\n            const defaultArg = \"defaultArg\" in spec ? (_a = spec.defaultArg) == null ? void 0 : _a[i] : void 0;\n            return [t, emptyArg(defaultArg)];\n          })\n        );\n        let { argument: argument2, nodesRemoved: removed } = gobbleSingleArgument(\n          nodes,\n          embellishmentSpec(remainingTokens),\n          startPos\n        );\n        while (argument2) {\n          const token = argument2.openMark;\n          remainingTokens.delete(token);\n          argForToken[token] = argument2;\n          nodesRemoved += removed;\n          const newSpec = embellishmentSpec(remainingTokens);\n          ({ argument: argument2, nodesRemoved: removed } = gobbleSingleArgument(\n            nodes,\n            newSpec,\n            startPos\n          ));\n        }\n        args.push(...spec.embellishmentTokens.map((t) => argForToken[t]));\n      } else {\n        const { argument: argument2, nodesRemoved: removed } = gobbleSingleArgument(\n          nodes,\n          spec,\n          startPos\n        );\n        const defaultArg = \"defaultArg\" in spec ? spec.defaultArg : void 0;\n        args.push(argument2 || emptyArg(defaultArg));\n        nodesRemoved += removed;\n      }\n    }\n    return { args, nodesRemoved };\n  }\n  function embellishmentSpec(tokens) {\n    return {\n      type: \"embellishment\",\n      embellishmentTokens: [...tokens]\n    };\n  }\n  function emptyArg(defaultArg) {\n    const ret = arg([], { openMark: \"\", closeMark: \"\" });\n    if (defaultArg != null) {\n      updateRenderInfo(ret, { defaultArg });\n    }\n    return ret;\n  }\n  function attachMacroArgsInArray(nodes, macros18) {\n    let currIndex;\n    const isRelevantMacro = match.createMacroMatcher(macros18);\n    function gobbleUntilMacro() {\n      while (currIndex >= 0 && !isRelevantMacro(nodes[currIndex])) {\n        currIndex--;\n      }\n    }\n    currIndex = nodes.length - 1;\n    while (currIndex >= 0) {\n      gobbleUntilMacro();\n      if (currIndex < 0) {\n        return;\n      }\n      const macroIndex = currIndex;\n      const macro2 = nodes[macroIndex];\n      const macroName = macro2.content;\n      const macroInfo2 = macros18[macroName];\n      updateRenderInfo(macro2, macroInfo2.renderInfo);\n      const signatureOrParser = macroInfo2.argumentParser || macroInfo2.signature;\n      if (signatureOrParser == null) {\n        currIndex--;\n        continue;\n      }\n      if (macro2.args != null) {\n        currIndex = macroIndex - 1;\n        continue;\n      }\n      currIndex++;\n      const { args } = gobbleArguments(nodes, signatureOrParser, currIndex);\n      macro2.args = args;\n      currIndex = macroIndex - 1;\n    }\n  }\n  function attachMacroArgs(tree, macros18) {\n    visit(\n      tree,\n      (nodes) => {\n        attachMacroArgsInArray(nodes, macros18);\n      },\n      { includeArrays: true, test: Array.isArray }\n    );\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/provides-Ch0mvkO_.js\n  var argSpecM = parse(\"m\")[0];\n  var argSpecO = parse(\"o\")[0];\n  var argSpecRDelim = {};\n  var argumentParser = (nodes, startPos) => {\n    const { argument: optionalArg, nodesRemoved: optionalArgNodesRemoved } = gobbleSingleArgument(nodes, argSpecO, startPos);\n    let codeArg = null;\n    let codeArgNodesRemoved = 0;\n    const nextNode = nodes[startPos];\n    if (match.group(nextNode)) {\n      const mandatoryArg = gobbleSingleArgument(nodes, argSpecM, startPos);\n      codeArg = mandatoryArg.argument;\n      codeArgNodesRemoved = mandatoryArg.nodesRemoved;\n    } else if (match.string(nextNode) && nextNode.content.length === 1) {\n      const delim = nextNode.content;\n      argSpecRDelim[delim] = argSpecRDelim[delim] || parse(`r${delim}${delim}`)[0];\n      const delimArg = gobbleSingleArgument(\n        nodes,\n        argSpecRDelim[delim],\n        startPos\n      );\n      codeArg = delimArg.argument;\n      codeArgNodesRemoved = delimArg.nodesRemoved;\n    }\n    return {\n      args: [optionalArg || arg(null), codeArg || arg(null)],\n      nodesRemoved: optionalArgNodesRemoved + codeArgNodesRemoved\n    };\n  };\n  var macros7 = {\n    lstset: { signature: \"m\" },\n    lstinline: { argumentParser },\n    lstinputlisting: { signature: \"o m\" },\n    lstdefinestyle: { signature: \"m m\" },\n    lstnewenvironment: { signature: \"m o o m m\" },\n    lstMakeShortInline: { signature: \"o m\" },\n    lstDeleteShortInline: { signature: \"m\" },\n    lstdefineformat: { signature: \"m m\" },\n    lstdefinelanguage: { signature: \"o m o m o\" },\n    lstalias: { signature: \"o m o m\" },\n    lstloadlanguages: { signature: \"m\" }\n  };\n  var environments7 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/makeidx/index.js\n  var macros8 = {\n    see: { signature: \"m m\" },\n    seealso: { signature: \"m m\" },\n    seename: { signature: \"m\" },\n    alsoname: { signature: \"m\" },\n    index: { signature: \"m\" }\n  };\n  var environments8 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/mathtools/index.js\n  var macros9 = {\n    mathtoolsset: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    mathllap: {\n      signature: \"o m\"\n    },\n    mathrlap: {\n      signature: \"o m\"\n    },\n    mathclap: {\n      signature: \"o m\"\n    },\n    clap: {\n      signature: \"m\"\n    },\n    mathmbox: {\n      signature: \"m\"\n    },\n    mathmakebox: {\n      signature: \"o o m\"\n    },\n    cramped: {\n      signature: \"o m\"\n    },\n    crampedllap: {\n      signature: \"o m\"\n    },\n    crampedrlap: {\n      signature: \"o m\"\n    },\n    crampedclap: {\n      signature: \"o m\"\n    },\n    crampedsubstack: {\n      signature: \"o m\"\n    },\n    smashoperator: {\n      signature: \"o m\"\n    },\n    newtagform: {\n      signature: \"m o m m\"\n    },\n    renewtagform: {\n      signature: \"m o m m\"\n    },\n    usetagform: {\n      signature: \"m\"\n    },\n    xleftrightarrow: { signature: \"o m\" },\n    xLeftarrow: { signature: \"o m\" },\n    xhookleftarrow: { signature: \"o m\" },\n    xmapsto: { signature: \"o m\" },\n    xRightarrow: { signature: \"o m\" },\n    xLeftrightarrow: { signature: \"o m\" },\n    xhookrightarrow: { signature: \"o m\" },\n    underbracket: { signature: \"o o m\" },\n    overbracket: { signature: \"o o m\" },\n    underbrace: { signature: \"m\" },\n    overbrace: { signature: \"m\" },\n    shoveleft: { signature: \"o m\" },\n    shoveright: { signature: \"o m\" },\n    ArrowBetweenLines: { signature: \"s o\" },\n    vdotswithin: { signature: \"m\" },\n    shortdotswithin: { signature: \"s m\" },\n    DeclarePairedDelimiter: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DeclarePairedDelimiterX: {\n      signature: \"m o m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DeclarePairedDelimiterXPP: {\n      signature: \"m o m m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    prescript: { signature: \"m m m\" },\n    DeclareMathSizes: { signature: \"m m m m\" },\n    newgathered: { signature: \"m m m m\" },\n    renewgathered: { signature: \"m m m m\" },\n    splitfrac: { signature: \"m m\" },\n    splitdfrac: { signature: \"m m\" },\n    xmathstrut: { signature: \"o m\" },\n    // amsthm\n    newtheorem: { signature: \"s m o m o\", renderInfo: { breakAround: true } },\n    theoremstyle: { signature: \"m\", renderInfo: { breakAround: true } },\n    newtheoremstyle: {\n      signature: \"m m m m m m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    // amsmath\n    text: { signature: \"m\", renderInfo: { inMathMode: false } },\n    // amsfonts\n    mathbb: { signature: \"m\" },\n    mathscr: { signature: \"m\" },\n    mathfrak: { signature: \"m\" },\n    frak: { signature: \"m\" },\n    Bdd: { signature: \"m\" },\n    bold: { signature: \"m\" },\n    // amsopn\n    operatorname: { signature: \"s m\" },\n    DeclareMathOperator: {\n      signature: \"s m m\",\n      renderInfo: { breakAround: true }\n    }\n  };\n  var environments9 = {\n    crampedsubarray: {\n      signature: \"m\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    matrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    bmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    pmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    vmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    Bmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    Vmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    smallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    psmallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    vsmallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    bsmallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    Bsmallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    Vsmallmatrix: { renderInfo: { alignContent: true, inMathMode: true } },\n    \"matrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"bmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"pmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"vmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"Bmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"Vmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"smallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"psmallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"bsmallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"vsmallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"Bsmallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    \"Vsmallmatrix*\": {\n      signature: \"o\",\n      renderInfo: { alignContent: true, inMathMode: true }\n    },\n    multilined: { signature: \"o o\", renderInfo: { inMathMode: true } },\n    cases: { renderInfo: { alignContent: true, inMathMode: true } },\n    \"cases*\": { renderInfo: { alignContent: true, inMathMode: true } },\n    dcases: { renderInfo: { alignContent: true, inMathMode: true } },\n    \"dcases*\": { renderInfo: { alignContent: true, inMathMode: true } },\n    rcases: { renderInfo: { alignContent: true, inMathMode: true } },\n    \"rcases*\": { renderInfo: { alignContent: true, inMathMode: true } },\n    drcases: { renderInfo: { alignContent: true, inMathMode: true } },\n    \"drcases*\": { renderInfo: { alignContent: true, inMathMode: true } },\n    spreadlines: { signature: \"m\", renderInfo: { inMathMode: true } },\n    lgathered: { signature: \"o\", renderInfo: { inMathMode: true } },\n    rgathered: { signature: \"o\", renderInfo: { inMathMode: true } },\n    // amsmath\n    \"align*\": { renderInfo: { inMathMode: true, alignContent: true } },\n    align: { renderInfo: { inMathMode: true, alignContent: true } },\n    aligned: { renderInfo: { inMathMode: true, alignContent: true } },\n    \"alignat*\": { renderInfo: { inMathMode: true, alignContent: true } },\n    alignat: { renderInfo: { inMathMode: true, alignContent: true } },\n    \"equation*\": { renderInfo: { inMathMode: true } },\n    equation: { renderInfo: { inMathMode: true } },\n    \"gather*\": { renderInfo: { inMathMode: true } },\n    gather: { renderInfo: { inMathMode: true } },\n    \"multline*\": { renderInfo: { inMathMode: true } },\n    multline: { renderInfo: { inMathMode: true } },\n    \"flalign*\": { renderInfo: { inMathMode: true, alignContent: true } },\n    flalign: { renderInfo: { inMathMode: true, alignContent: true } },\n    split: { renderInfo: { inMathMode: true } },\n    // Math environments\n    displaymath: { renderInfo: { inMathMode: true } },\n    // Typical amsthm environments\n    theorem: { signature: \"o\" },\n    lemma: { signature: \"o\" },\n    definition: { signature: \"o\" },\n    proposition: { signature: \"o\" },\n    corollary: { signature: \"o\" },\n    remark: { signature: \"!o\" },\n    example: { signature: \"!o\" },\n    proof: { signature: \"o\" }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/provides-sdqk_ZBm.js\n  var argSpecM2 = parse(\"m\")[0];\n  var argSpecO2 = parse(\"o\")[0];\n  var argSpecRDelim2 = {};\n  var argumentParser2 = (nodes, startPos) => {\n    const { argument: optionalArg, nodesRemoved: optionalArgNodesRemoved } = gobbleSingleArgument(nodes, argSpecO2, startPos);\n    const { argument: languageArg, nodesRemoved: languageArgNodesRemoved } = gobbleSingleArgument(nodes, argSpecM2, startPos);\n    let codeArg = null;\n    let codeArgNodesRemoved = 0;\n    const nextNode = nodes[startPos];\n    if (match.group(nextNode)) {\n      const mandatoryArg = gobbleSingleArgument(nodes, argSpecM2, startPos);\n      codeArg = mandatoryArg.argument;\n      codeArgNodesRemoved = mandatoryArg.nodesRemoved;\n    } else if (match.string(nextNode) && nextNode.content.length === 1) {\n      const delim = nextNode.content;\n      argSpecRDelim2[delim] = argSpecRDelim2[delim] || parse(`r${delim}${delim}`)[0];\n      const delimArg = gobbleSingleArgument(\n        nodes,\n        argSpecRDelim2[delim],\n        startPos\n      );\n      codeArg = delimArg.argument;\n      codeArgNodesRemoved = delimArg.nodesRemoved;\n    }\n    return {\n      args: [\n        optionalArg || arg(null),\n        languageArg || arg(null),\n        codeArg || arg(null)\n      ],\n      nodesRemoved: optionalArgNodesRemoved + languageArgNodesRemoved + codeArgNodesRemoved\n    };\n  };\n  var macros10 = {\n    mint: { argumentParser: argumentParser2 },\n    mintinline: { argumentParser: argumentParser2 },\n    inputminted: { argumentParser: argumentParser2 },\n    usemintedstyle: { signature: \"m\" },\n    setminted: { signature: \"o m\" },\n    setmintedinline: { signature: \"o m\" },\n    newmint: { signature: \"o m m\" },\n    newminted: { signature: \"o m m\" },\n    newmintinline: { signature: \"o m m\" },\n    newmintedfile: { signature: \"o m m\" }\n  };\n  var environments10 = {\n    minted: { signature: \"o m\" }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/nicematrix/index.js\n  var macros11 = {\n    NiceMatrixOptions: {\n      signature: \"m\",\n      renderInfo: { pgfkeysArgs: true, breakAround: true }\n    }\n  };\n  var environments11 = {\n    NiceTabular: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    NiceMatrixBlock: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    NiceArrayWithDelims: {\n      signature: \"m m o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    NiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    pNiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    bNiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    BNiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    vNiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    VNiceArray: {\n      signature: \"o m !o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    NiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    pNiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    bNiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    BNiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    vNiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    },\n    VNiceMatrix: {\n      signature: \"!o\",\n      renderInfo: { pgfkeysArgs: true, alignContent: true }\n    }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/provides-yGf6-zdY.js\n  var macros12 = {\n    systeme: {\n      signature: \"s o o m\",\n      renderInfo: { inMathMode: true }\n    },\n    sysdelim: {\n      signature: \"m m\"\n    },\n    syseqsep: { signature: \"m\" },\n    sysalign: { signature: \"m\" },\n    syssignspace: { signature: \"m\" },\n    syseqspace: { signature: \"m\" },\n    syslineskipcoeff: { signature: \"m\" },\n    syseqivsign: { signature: \"m\" },\n    sysaddeqsign: { signature: \"m\" },\n    sysremoveeqsign: { signature: \"m\" },\n    sysextracolonsign: { signature: \"m\" },\n    syscodeextracol: { signature: \"m\" },\n    sysautonum: { signature: \"m\" },\n    syssubstitute: { signature: \"m\" }\n  };\n  var environments12 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/index-NHd3tQDq.js\n  (function() {\n    if (typeof globalThis === \"object\") {\n      return;\n    }\n    Object.defineProperty(Object.prototype, \"__magic__\", {\n      get: function() {\n        return this;\n      },\n      configurable: true\n      // This makes it possible to `delete` the getter later.\n    });\n    __magic__.globalThis = __magic__;\n    delete Object.prototype.__magic__;\n  })();\n  var clone = typeof globalThis.structuredClone === \"function\" ? globalThis.structuredClone : (obj) => JSON.parse(JSON.stringify(obj));\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/parser-BBXMi7mQ.js\n  var OPTIONAL_ARGUMENT_ARG_SPEC = parse(\"o\")[0];\n  function blankArg() {\n    return arg([], { openMark: \"\", closeMark: \"\" });\n  }\n  var tikzCommandArgumentParser = (nodes, startPos) => {\n    const origStartPos = startPos;\n    let pos = startPos;\n    let nodesRemoved = 0;\n    const cursorPosAfterAnimations = eatAllAnimationSpecs(nodes, pos);\n    let animationArg = blankArg();\n    if (cursorPosAfterAnimations !== pos) {\n      const argContent = nodes.splice(pos, cursorPosAfterAnimations - pos);\n      trim(argContent);\n      animationArg = arg(argContent, {\n        openMark: \" \",\n        closeMark: \" \"\n      });\n    }\n    nodesRemoved += cursorPosAfterAnimations - pos;\n    const {\n      argument: _optionalArgument,\n      nodesRemoved: optionalArgumentNodesRemoved\n    } = gobbleSingleArgument(nodes, OPTIONAL_ARGUMENT_ARG_SPEC, pos);\n    nodesRemoved += optionalArgumentNodesRemoved;\n    const optionalArg = _optionalArgument || blankArg();\n    while (match.whitespace(nodes[pos])) {\n      pos++;\n    }\n    const firstNode = nodes[pos];\n    if (!firstNode) {\n      return {\n        args: [animationArg, optionalArg, blankArg()],\n        nodesRemoved: 0\n      };\n    }\n    if (match.group(firstNode)) {\n      const args = [animationArg, optionalArg, arg(firstNode.content)];\n      nodes.splice(origStartPos, pos - origStartPos + 1);\n      return { args, nodesRemoved: pos - origStartPos + 1 + nodesRemoved };\n    }\n    const semicolonPosition = scan(nodes, \";\", { startIndex: pos });\n    if (semicolonPosition != null) {\n      const argNodes = nodes.splice(\n        origStartPos,\n        semicolonPosition - origStartPos + 1\n      );\n      trim(argNodes);\n      const args = [animationArg, optionalArg, arg(argNodes)];\n      return {\n        args,\n        nodesRemoved: origStartPos - semicolonPosition + 1 + nodesRemoved\n      };\n    }\n    return {\n      args: [animationArg, optionalArg, blankArg()],\n      nodesRemoved: 0\n    };\n  };\n  function eatAllAnimationSpecs(nodes, startPos) {\n    const colonPos = scan(nodes, \":\", {\n      startIndex: startPos,\n      allowSubstringMatches: true,\n      onlySkipWhitespaceAndComments: true\n    });\n    if (!colonPos) {\n      return startPos;\n    }\n    let lastMatchPos = startPos;\n    let i = colonPos + 1;\n    for (; i < nodes.length; i++) {\n      const node = nodes[i];\n      if (match.string(node, \"[\")) {\n        break;\n      }\n      if (match.string(node, \"=\")) {\n        i++;\n        while (match.whitespace(nodes[i]) || match.comment(nodes[i])) {\n          i++;\n        }\n        if (!match.group(nodes[i])) {\n          break;\n        }\n        lastMatchPos = i + 1;\n        const colonPos2 = scan(nodes, \":\", {\n          startIndex: lastMatchPos,\n          allowSubstringMatches: true,\n          onlySkipWhitespaceAndComments: true\n        });\n        if (colonPos2 == null) {\n          break;\n        }\n        i = colonPos2 + 1;\n      }\n    }\n    return lastMatchPos;\n  }\n  var macros13 = {\n    pgfkeys: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    tikzoption: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    tikzstyle: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    usetikzlibrary: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    usepgfmodule: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n    usepgflibrary: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n    pgfplotsset: {\n      signature: \"m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    pgfplotstabletypeset: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    tikz: {\n      signature: \"o o m\",\n      argumentParser: tikzCommandArgumentParser,\n      renderInfo: { namedArguments: [\"animation\", \"options\", \"command\"] }\n    }\n  };\n  var environments13 = {\n    tikzpicture: {\n      signature: \"o\",\n      renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    axis: {\n      signature: \"o\",\n      renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    scope: {\n      signature: \"o\",\n      renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    pgfonlayer: {\n      signature: \"m\",\n      renderInfo: { tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    pgflowlevelscope: {\n      signature: \"m\",\n      renderInfo: { tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    pgfviewboxscope: {\n      signature: \"m m m m m\",\n      renderInfo: { tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    pgftransparencygroup: {\n      signature: \"o\",\n      renderInfo: { pgfkeysArgs: true, tikzEnvironment: true },\n      processContent: processTikzEnvironmentContent\n    },\n    behindforegroundpath: {\n      signature: \"m\",\n      processContent: processTikzEnvironmentContent\n    },\n    pgfmetadecoration: {\n      signature: \"m\",\n      processContent: processTikzEnvironmentContent\n    },\n    colormixin: { signature: \"m\", renderInfo: { pgfkeysArgs: true } }\n  };\n  function processTikzEnvironmentContent(nodes) {\n    attachMacroArgsInArray(nodes, conditionalMacros);\n    return nodes;\n  }\n  var conditionalMacros = {\n    pgfextra: { signature: \"m\" },\n    beginpgfgraphicnamed: { signature: \"m\" },\n    pgfrealjobname: { signature: \"m\" },\n    pgfplotstreampoint: { signature: \"m\" },\n    pgfplotstreampointoutlier: { signature: \"m\" },\n    pgfplotstreamspecial: { signature: \"m\" },\n    pgfplotxyfile: { signature: \"m\" },\n    pgfplotxyzfile: { signature: \"m\" },\n    pgfplotfunction: { signature: \"mmm\" },\n    pgfplotgnuplot: { signature: \"o m\" },\n    pgfplothandlerrecord: { signature: \"m\" },\n    pgfdeclareplothandler: { signature: \"m m m\" },\n    pgfdeclarelayer: { signature: \"m\" },\n    pgfsetlayers: { signature: \"m\", renderInfo: { pgfkeysArgs: true } },\n    pgfonlayer: { signature: \"m\" },\n    startpgfonlayer: { signature: \"m\" },\n    pgfdeclarehorizontalshading: { signature: \"o m m m \" },\n    pgfdeclareradialshading: { signature: \"o m m m\" },\n    pgfdeclarefunctionalshading: { signature: \"o m m m m m\" },\n    pgfshadecolortorgb: { signature: \"m m\" },\n    pgfshadecolortocmyk: { signature: \"m m\" },\n    pgfshadecolortogray: { signature: \"m m\" },\n    pgfuseshading: { signature: \"m\" },\n    pgfshadepath: { signature: \"m m\" },\n    pgfsetadditionalshadetransform: { signature: \"m\" },\n    pgfsetstrokeopacity: { signature: \"m\" },\n    pgfsetfillopacity: { signature: \"m\" },\n    pgfsetblendmode: { signature: \"m\" },\n    pgfdeclarefading: { signature: \"m m\" },\n    pgfsetfading: { signature: \"m m\" },\n    pgfsetfadingforcurrentpath: { signature: \"m m\" },\n    pgfsetfadingforcurrentpathstroked: { signature: \"m m\" },\n    pgfanimateattribute: { signature: \"m m\" },\n    pgfsnapshot: { signature: \"m\" },\n    pgfqpoint: { signature: \"m m\" },\n    pgfqpointxy: { signature: \"m m\" },\n    pgfqpointxyz: { signature: \"m m m\" },\n    pgfqpointscale: { signature: \"m m\" },\n    pgfpathqmoveto: { signature: \"m m\" },\n    pgfpathqlineto: { signature: \"m m\" },\n    pgfpathqcurveto: { signature: \"m m m m m m\" },\n    pgfpathqcircle: { signature: \"m\" },\n    pgfqbox: { signature: \"m\" },\n    pgfqboxsynced: { signature: \"m\" },\n    pgfaliasimage: { signature: \"m m\" },\n    pgfuseimage: { signature: \"m\" },\n    pgfimage: { signature: \"o m\", renderInfo: { pgfkeysArgs: true } },\n    pgfdeclaremask: { signature: \"o m m\", renderInfo: { pgfkeysArgs: true } },\n    pgfdeclarepatternformonly: { signature: \"o m m m m m\" },\n    pgfdeclarepatterninherentlycolored: { signature: \"o m m m m m\" },\n    pgfsetfillpattern: { signature: \"m m\" },\n    // Coordinate canvas and nonlinear transformations\n    pgftransformshift: { signature: \"m\" },\n    pgftransformxshift: { signature: \"m\" },\n    pgftransformyshift: { signature: \"m\" },\n    pgftransformscale: { signature: \"m\" },\n    pgftransformxscale: { signature: \"m\" },\n    pgftransformyscale: { signature: \"m\" },\n    pgftransformxslant: { signature: \"m\" },\n    pgftransformyslant: { signature: \"m\" },\n    pgftransformrotate: { signature: \"m\" },\n    pgftransformtriangle: { signature: \"m m m\" },\n    pgftransformcm: { signature: \"m m m m m\" },\n    pgftransformarrow: { signature: \"m m\" },\n    pgftransformlineattime: { signature: \"m m m\" },\n    pgftransformcurveattime: { signature: \"m m m m m\" },\n    pgftransformarcaxesattime: { signature: \"m m m m m m\" },\n    pgfgettransform: { signature: \"m\" },\n    pgfsettransform: { signature: \"m\" },\n    pgfgettransformentries: { signature: \"m m m m m m\" },\n    pgfsettransformentries: { signature: \"m m m m m m\" },\n    pgfpointtransformed: { signature: \"m\" },\n    pgflowlevel: { signature: \"m\" },\n    pgflowlevelobj: { signature: \"m m\" },\n    pgflowlevelscope: { signature: \"m\" },\n    startpgflowlevelscope: { signature: \"m\" },\n    pgfviewboxscope: { signature: \"m m m m m\" },\n    startpgfviewboxscope: { signature: \"m m m m m\" },\n    pgftransformnonlinear: { signature: \"m\" },\n    pgfpointtransformednonlinear: { signature: \"m\" },\n    pgfsetcurvilinearbeziercurve: { signature: \"m m m m\" },\n    pgfcurvilineardistancetotime: { signature: \"m\" },\n    pgfpointcurvilinearbezierorthogonal: { signature: \"m m\" },\n    pgfpointcurvilinearbezierpolar: { signature: \"m m\" },\n    // Matrices\n    pgfmatrix: { signature: \"m m m m m m m\" },\n    pgfsetmatrixcolumnsep: { signature: \"m\" },\n    pgfmatrixnextcell: { signature: \"o\" },\n    pgfsetmatrixrowsep: { signature: \"m\" },\n    pgfmatrixendrow: { signature: \"o\" },\n    // Nodes and shapes\n    pgfnode: { signature: \"m m m m m\" },\n    pgfmultipartnode: { signature: \"m m m m\" },\n    pgfcoordinate: { signature: \"m m\" },\n    pgfnodealias: { signature: \"m m\" },\n    pgfnoderename: { signature: \"m m\" },\n    pgfpositionnodelater: { signature: \"m\" },\n    pgfpositionnodenow: { signature: \"m\" },\n    pgfnodepostsetupcode: { signature: \"m m\" },\n    pgfpointanchor: { signature: \"m m\" },\n    pgfpointshapeborder: { signature: \"m m\" },\n    pgfdeclareshape: { signature: \"m m\" },\n    saveddimen: { signature: \"m m\" },\n    savedmacro: { signature: \" m\" },\n    anchor: { signature: \"m m\" },\n    deferredanchor: { signature: \"m m\" },\n    anchorborder: { signature: \"m\" },\n    backgroundpath: { signature: \"m\" },\n    foregroundpath: { signature: \"m\" },\n    behindbackgroundpath: { signature: \"m\" },\n    beforebackgroundpath: { signature: \"m\" },\n    beforeforegroundpath: { signature: \"m\" },\n    behindforegroundpath: { signature: \"m\" },\n    // Arrows\n    pgfdeclarearrow: { signature: \"m\" },\n    pgfarrowssettipend: { signature: \"m\" },\n    pgfarrowssetbackend: { signature: \"m\" },\n    pgfarrowssetlineend: { signature: \"m\" },\n    pgfarrowssetvisualbackend: { signature: \"m\" },\n    pgfarrowssetvisualtipend: { signature: \"m\" },\n    pgfarrowshullpoint: { signature: \"m m\" },\n    pgfarrowsupperhullpoint: { signature: \"m m\" },\n    pgfarrowssave: { signature: \"m\" },\n    pgfarrowssavethe: { signature: \"m\" },\n    pgfarrowsaddtooptions: { signature: \"m\" },\n    pgfarrowsaddtolateoptions: { signature: \"m\" },\n    pgfarrowsaddtolengthscalelist: { signature: \"m\" },\n    pgfarrowsaddtowidthscalelist: { signature: \"m\" },\n    pgfarrowsthreeparameters: { signature: \"m\" },\n    pgfarrowslinewidthdependent: { signature: \"m m m\" },\n    pgfarrowslengthdependent: { signature: \"m\" },\n    // Path\n    pgfusepath: { signature: \"m\" },\n    pgfsetlinewidth: { signature: \"m\" },\n    pgfsetmiterlimit: { signature: \"m\" },\n    pgfsetdash: { signature: \"m m\" },\n    pgfsetstrokecolor: { signature: \"m\" },\n    pgfsetcolor: { signature: \"m\" },\n    pgfsetinnerlinewidth: { signature: \"m\" },\n    pgfsetinnerstrokecolor: { signature: \"m\" },\n    pgfsetarrowsstart: { signature: \"m\" },\n    pgfsetarrowsend: { signature: \"m\" },\n    pgfsetarrows: { signature: \"m\" },\n    pgfsetshortenstart: { signature: \"m\" },\n    pgfsetshortenend: { signature: \"m\" },\n    pgfsetfillcolor: { signature: \"m\" },\n    // Decorations\n    pgfdeclaredecoration: { signature: \"m m m\" },\n    state: { signature: \"m o m\" },\n    pgfdecoratepath: { signature: \"m m\" },\n    startpgfdecoration: { signature: \"m\" },\n    pgfdecoration: { signature: \"m\" },\n    pgfdecoratecurrentpath: { signature: \"m\" },\n    pgfsetdecorationsegmenttransformation: { signature: \"m\" },\n    pgfdeclaremetadecorate: { signature: \"m m m\" },\n    pgfmetadecoration: { signature: \"m\" },\n    startpgfmetadecoration: { signature: \"m\" },\n    // Constructing paths\n    pgfpathmoveto: { signature: \"m\" },\n    pgfpathlineto: { signature: \"m\" },\n    pgfpathcurveto: { signature: \"m m m\" },\n    pgfpathquadraticcurveto: { signature: \"m m\" },\n    pgfpathcurvebetweentime: { signature: \"m m m m m m\" },\n    pgfpathcurvebetweentimecontinue: { signature: \"m m m m m m\" },\n    pgfpatharc: { signature: \"m m m\" },\n    pgfpatharcaxes: { signature: \"m m m m\" },\n    pgfpatharcto: { signature: \"m m m m m m\" },\n    pgfpatharctoprecomputed: { signature: \"m m m m m m m m\" },\n    pgfpathellipse: { signature: \"m m m\" },\n    pgfpathcircle: { signature: \"m m\" },\n    pgfpathrectangle: { signature: \"m m\" },\n    pgfpathrectanglecorners: { signature: \"m m\" },\n    pgfpathgrid: { signature: \" o m m\" },\n    pgfpathparabola: { signature: \"m m\" },\n    pgfpathsine: { signature: \"m\" },\n    pgfpathcosine: { signature: \"m\" },\n    pgfsetcornersarced: { signature: \"m\" },\n    \"pgf@protocolsizes\": { signature: \"m m\" },\n    // Specifying coordinates\n    pgfpoint: { signature: \"m m\" },\n    pgfpointpolar: { signature: \"m m m\" },\n    pgfpointxy: { signature: \"m m\" },\n    pgfsetxvec: { signature: \"m\" },\n    pgfsetyvec: { signature: \"m\" },\n    pgfpointpolarxy: { signature: \"m m\" },\n    pgfpointxyz: { signature: \"m m m\" },\n    pgfsetzvec: { signature: \"m\" },\n    pgfpointcylindrical: { signature: \"m m m\" },\n    pgfpointspherical: { signature: \"m m m\" },\n    pgfpointadd: { signature: \"m m\" },\n    pgfpointscale: { signature: \"m m\" },\n    pgfpointdiff: { signature: \"m m\" },\n    pgfpointnormalised: { signature: \"m\" },\n    pgfpointlineattime: { signature: \"m m m\" },\n    pgfpointlineatdistance: { signature: \"m m m\" },\n    pgfpointarcaxesattime: { signature: \"m m m m m m\" },\n    pgfpointcurveattime: { signature: \"m m m m m\" },\n    pgfpointborderrectangle: { signature: \"m m\" },\n    pgfpointborderellipse: { signature: \"m m\" },\n    pgfpointintersectionoflines: { signature: \"m m m m\" },\n    pgfpointintersectionofcircles: { signature: \"m m m m m\" },\n    pgfintersectionofpaths: { signature: \"m m\" },\n    pgfpointintersectionsolution: { signature: \"m\" },\n    pgfextractx: { signature: \"m m\" },\n    pgfextracty: { signature: \"m m\" },\n    pgfgetlastxy: { signature: \"m m\" },\n    \"pgf@process\": { signature: \"m\" },\n    // Heirarchical structres ...\n    pgfsetbaseline: { signature: \"m\" },\n    pgfsetbaselinepointnow: { signature: \"m\" },\n    pgfsetbaselinepointlater: { signature: \"m\" },\n    pgftext: { signature: \"o m\", renderInfo: { pgfkeysArgs: true } },\n    pgfuseid: { signature: \"m\" },\n    pgfusetype: { signature: \"m\" },\n    pgfidrefnextuse: { signature: \"m m\" },\n    pgfidrefprevuse: { signature: \"m m\" },\n    pgfaliasid: { signature: \"m m\" },\n    pgfgaliasid: { signature: \"m m\" },\n    pgfifidreferenced: { signature: \"m m m\" },\n    pgfrdfabout: { signature: \"m\" },\n    pgfrdfcontent: { signature: \"m\" },\n    pgfrdfdatatype: { signature: \"m\" },\n    pgfrdfhref: { signature: \"m\" },\n    pgfrdfprefix: { signature: \"m\" },\n    pgfrdfproperty: { signature: \"m\" },\n    pgfrdfrel: { signature: \"m\" },\n    pgfrdfresource: { signature: \"m\" },\n    pgfrdfrev: { signature: \"m\" },\n    pgfrdfsrc: { signature: \"m\" },\n    pgfrdftypeof: { signature: \"m\" },\n    pgfrdfvocab: { signature: \"m\" },\n    pgferror: { signature: \"m\" },\n    pgfwarning: { signature: \"m\" },\n    path: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    draw: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    fill: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    filldraw: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    pattern: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    shade: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    clip: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    useasboundingbox: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    node: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    coordinate: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    graph: {\n      signature: \"u;\",\n      renderInfo: { breakAround: true, tikzPathCommand: true }\n    },\n    scoped: {\n      signature: \"o o m\",\n      argumentParser: tikzCommandArgumentParser,\n      renderInfo: {\n        namedArguments: [\"animation\", \"options\", \"command\"],\n        breakAround: true\n      }\n    }\n  };\n  function createMatchers2() {\n    return {\n      isChar: match.string,\n      isTerminal: (node) => match.string(node, \";\"),\n      isOperation: (node) => match.anyString(node) && node.content.match(/[a-zA-Z]/),\n      isWhitespace: (node) => match.whitespace(node) || match.parbreak(node),\n      isComment: match.comment,\n      isGroup: match.group,\n      isMacro: match.macro,\n      isAnyMacro: match.anyMacro\n    };\n  }\n  var matchers = createMatchers2();\n  function parse2(ast, options) {\n    const { startRule = \"path_spec\" } = options || {};\n    if (!Array.isArray(ast)) {\n      throw new Error(\"You must pass an array of nodes\");\n    }\n    ast = decorateArrayForPegjs([...ast]);\n    return TikzPegParser.parse(ast, {\n      ...matchers,\n      startRule\n    });\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/xcolor-CIejE3rZ.js\n  var import_color = __toESM(require_color(), 1);\n  var macros14 = {\n    substitutecolormodel: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true }\n    },\n    selectcolormodel: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    definecolor: {\n      signature: \"o m m m\",\n      renderInfo: { breakAround: true }\n    },\n    providecolor: {\n      signature: \"o m m m\",\n      renderInfo: { breakAround: true }\n    },\n    colorlet: {\n      signature: \"o m o m\",\n      renderInfo: { breakAround: true }\n    },\n    definecolorset: {\n      signature: \"o m m m\",\n      renderInfo: { breakAround: true }\n    },\n    providecolorset: {\n      signature: \"o m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    preparecolor: {\n      signature: \"o m m m\",\n      renderInfo: { breakAround: true }\n    },\n    preparecolorset: {\n      signature: \"o m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DefineNamedColor: {\n      signature: \"m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    definecolors: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    providecolors: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    color: { signature: \"o m\", renderInfo: { breakAround: true } },\n    textcolor: { signature: \"o m m\", renderInfo: { inParMode: true } },\n    pagecolor: { signature: \"o m\" },\n    colorbox: { signature: \"o m m\" },\n    fcolorbox: { signature: \"o m o m m\" },\n    boxframe: { signature: \"o m\" },\n    testcolor: { signature: \"o m\" },\n    blendcolors: { signature: \"s m\" },\n    maskcolors: { signature: \"o m\" },\n    definecolorseries: {\n      signature: \"m m m o m o m\",\n      renderInfo: { breakAround: true }\n    },\n    resetcolorseries: {\n      signature: \"o m\",\n      renderInfo: { breakAround: true }\n    },\n    rowcolors: { signature: \"s o m m m\" },\n    extractcolorspec: { signature: \"m m\" },\n    extractcolorspecs: { signature: \"m m m\" },\n    convertcolorspec: { signature: \"m m m m\" }\n  };\n  var environments14 = {\n    testcolors: { signature: \"o\", renderInfo: { pgfkeysArgs: true } }\n  };\n  var fromRgb = ([r, g, b]) => (0, import_color.default)([r * 255, g * 255, b * 255], \"rgb\");\n  var DVI_PS_NAMES = {\n    Apricot: (0, import_color.default)(\"#FBB982\"),\n    Aquamarine: (0, import_color.default)(\"#00B5BE\"),\n    Bittersweet: (0, import_color.default)(\"#C04F17\"),\n    Black: (0, import_color.default)(\"#221E1F\"),\n    Blue: (0, import_color.default)(\"#2D2F92\"),\n    BlueGreen: (0, import_color.default)(\"#00B3B8\"),\n    BlueViolet: (0, import_color.default)(\"#473992\"),\n    BrickRed: (0, import_color.default)(\"#B6321C\"),\n    Brown: (0, import_color.default)(\"#792500\"),\n    BurntOrange: (0, import_color.default)(\"#F7921D\"),\n    CadetBlue: (0, import_color.default)(\"#74729A\"),\n    CarnationPink: (0, import_color.default)(\"#F282B4\"),\n    Cerulean: (0, import_color.default)(\"#00A2E3\"),\n    CornflowerBlue: (0, import_color.default)(\"#41B0E4\"),\n    Cyan: (0, import_color.default)(\"#00AEEF\"),\n    Dandelion: (0, import_color.default)(\"#FDBC42\"),\n    DarkOrchid: (0, import_color.default)(\"#A4538A\"),\n    Emerald: (0, import_color.default)(\"#00A99D\"),\n    ForestGreen: (0, import_color.default)(\"#009B55\"),\n    Fuchsia: (0, import_color.default)(\"#8C368C\"),\n    Goldenrod: (0, import_color.default)(\"#FFDF42\"),\n    Gray: (0, import_color.default)(\"#949698\"),\n    Green: (0, import_color.default)(\"#00A64F\"),\n    GreenYellow: (0, import_color.default)(\"#DFE674\"),\n    JungleGreen: (0, import_color.default)(\"#00A99A\"),\n    Lavender: (0, import_color.default)(\"#F49EC4\"),\n    LimeGreen: (0, import_color.default)(\"#8DC73E\"),\n    Magenta: (0, import_color.default)(\"#EC008C\"),\n    Mahogany: (0, import_color.default)(\"#A9341F\"),\n    Maroon: (0, import_color.default)(\"#AF3235\"),\n    Melon: (0, import_color.default)(\"#F89E7B\"),\n    MidnightBlue: (0, import_color.default)(\"#006795\"),\n    Mulberry: (0, import_color.default)(\"#A93C93\"),\n    NavyBlue: (0, import_color.default)(\"#006EB8\"),\n    OliveGreen: (0, import_color.default)(\"#3C8031\"),\n    Orange: (0, import_color.default)(\"#F58137\"),\n    OrangeRed: (0, import_color.default)(\"#ED135A\"),\n    Orchid: (0, import_color.default)(\"#AF72B0\"),\n    Peach: (0, import_color.default)(\"#F7965A\"),\n    Periwinkle: (0, import_color.default)(\"#7977B8\"),\n    PineGreen: (0, import_color.default)(\"#008B72\"),\n    Plum: (0, import_color.default)(\"#92268F\"),\n    ProcessBlue: (0, import_color.default)(\"#00B0F0\"),\n    Purple: (0, import_color.default)(\"#99479B\"),\n    RawSienna: (0, import_color.default)(\"#974006\"),\n    Red: (0, import_color.default)(\"#ED1B23\"),\n    RedOrange: (0, import_color.default)(\"#F26035\"),\n    RedViolet: (0, import_color.default)(\"#A1246B\"),\n    Rhodamine: (0, import_color.default)(\"#EF559F\"),\n    RoyalBlue: (0, import_color.default)(\"#0071BC\"),\n    RoyalPurple: (0, import_color.default)(\"#613F99\"),\n    RubineRed: (0, import_color.default)(\"#ED017D\"),\n    Salmon: (0, import_color.default)(\"#F69289\"),\n    SeaGreen: (0, import_color.default)(\"#3FBC9D\"),\n    Sepia: (0, import_color.default)(\"#671800\"),\n    SkyBlue: (0, import_color.default)(\"#46C5DD\"),\n    SpringGreen: (0, import_color.default)(\"#C6DC67\"),\n    Tan: (0, import_color.default)(\"#DA9D76\"),\n    TealBlue: (0, import_color.default)(\"#00AEB3\"),\n    Thistle: (0, import_color.default)(\"#D883B7\"),\n    Turquoise: (0, import_color.default)(\"#00B4CE\"),\n    Violet: (0, import_color.default)(\"#58429B\"),\n    VioletRed: (0, import_color.default)(\"#EF58A0\"),\n    White: (0, import_color.default)(\"#FFFFFF\"),\n    WildStrawberry: (0, import_color.default)(\"#EE2967\"),\n    Yellow: (0, import_color.default)(\"#FFF200\"),\n    YellowGreen: (0, import_color.default)(\"#98CC70\"),\n    YellowOrange: (0, import_color.default)(\"#FAA21A\")\n  };\n  var SVG_NAMES = {\n    AliceBlue: fromRgb([0.94, 0.972, 1]),\n    AntiqueWhite: fromRgb([0.98, 0.92, 0.844]),\n    Aqua: fromRgb([0, 1, 1]),\n    Aquamarine: fromRgb([0.498, 1, 0.83]),\n    Azure: fromRgb([0.94, 1, 1]),\n    Beige: fromRgb([0.96, 0.96, 0.864]),\n    Bisque: fromRgb([1, 0.894, 0.77]),\n    Black: fromRgb([0, 0, 0]),\n    BlanchedAlmond: fromRgb([1, 0.92, 0.804]),\n    Blue: fromRgb([0, 0, 1]),\n    BlueViolet: fromRgb([0.54, 0.17, 0.888]),\n    Brown: fromRgb([0.648, 0.165, 0.165]),\n    BurlyWood: fromRgb([0.87, 0.72, 0.53]),\n    CadetBlue: fromRgb([0.372, 0.62, 0.628]),\n    Chartreuse: fromRgb([0.498, 1, 0]),\n    Chocolate: fromRgb([0.824, 0.41, 0.116]),\n    Coral: fromRgb([1, 0.498, 0.312]),\n    CornflowerBlue: fromRgb([0.392, 0.585, 0.93]),\n    Cornsilk: fromRgb([1, 0.972, 0.864]),\n    Crimson: fromRgb([0.864, 0.08, 0.235]),\n    Cyan: fromRgb([0, 1, 1]),\n    DarkBlue: fromRgb([0, 0, 0.545]),\n    DarkCyan: fromRgb([0, 0.545, 0.545]),\n    DarkGoldenrod: fromRgb([0.72, 0.525, 0.044]),\n    DarkGray: fromRgb([0.664, 0.664, 0.664]),\n    DarkGreen: fromRgb([0, 0.392, 0]),\n    DarkGrey: fromRgb([0.664, 0.664, 0.664]),\n    DarkKhaki: fromRgb([0.74, 0.716, 0.42]),\n    DarkMagenta: fromRgb([0.545, 0, 0.545]),\n    DarkOliveGreen: fromRgb([0.332, 0.42, 0.185]),\n    DarkOrange: fromRgb([1, 0.55, 0]),\n    DarkOrchid: fromRgb([0.6, 0.196, 0.8]),\n    DarkRed: fromRgb([0.545, 0, 0]),\n    DarkSalmon: fromRgb([0.912, 0.59, 0.48]),\n    DarkSeaGreen: fromRgb([0.56, 0.736, 0.56]),\n    DarkSlateBlue: fromRgb([0.284, 0.24, 0.545]),\n    DarkSlateGray: fromRgb([0.185, 0.31, 0.31]),\n    DarkSlateGrey: fromRgb([0.185, 0.31, 0.31]),\n    DarkTurquoise: fromRgb([0, 0.808, 0.82]),\n    DarkViolet: fromRgb([0.58, 0, 0.828]),\n    DeepPink: fromRgb([1, 0.08, 0.576]),\n    DeepSkyBlue: fromRgb([0, 0.75, 1]),\n    DimGray: fromRgb([0.41, 0.41, 0.41]),\n    DimGrey: fromRgb([0.41, 0.41, 0.41]),\n    DodgerBlue: fromRgb([0.116, 0.565, 1]),\n    FireBrick: fromRgb([0.698, 0.132, 0.132]),\n    FloralWhite: fromRgb([1, 0.98, 0.94]),\n    ForestGreen: fromRgb([0.132, 0.545, 0.132]),\n    Fuchsia: fromRgb([1, 0, 1]),\n    Gainsboro: fromRgb([0.864, 0.864, 0.864]),\n    GhostWhite: fromRgb([0.972, 0.972, 1]),\n    Gold: fromRgb([1, 0.844, 0]),\n    Goldenrod: fromRgb([0.855, 0.648, 0.125]),\n    Gray: fromRgb([0.5, 0.5, 0.5]),\n    Green: fromRgb([0, 0.5, 0]),\n    GreenYellow: fromRgb([0.68, 1, 0.185]),\n    Grey: fromRgb([0.5, 0.5, 0.5]),\n    Honeydew: fromRgb([0.94, 1, 0.94]),\n    HotPink: fromRgb([1, 0.41, 0.705]),\n    IndianRed: fromRgb([0.804, 0.36, 0.36]),\n    Indigo: fromRgb([0.294, 0, 0.51]),\n    Ivory: fromRgb([1, 1, 0.94]),\n    Khaki: fromRgb([0.94, 0.9, 0.55]),\n    Lavender: fromRgb([0.9, 0.9, 0.98]),\n    LavenderBlush: fromRgb([1, 0.94, 0.96]),\n    LawnGreen: fromRgb([0.488, 0.99, 0]),\n    LemonChiffon: fromRgb([1, 0.98, 0.804]),\n    LightBlue: fromRgb([0.68, 0.848, 0.9]),\n    LightCoral: fromRgb([0.94, 0.5, 0.5]),\n    LightCyan: fromRgb([0.88, 1, 1]),\n    LightGoldenrod: fromRgb([0.933, 0.867, 0.51]),\n    LightGoldenrodYellow: fromRgb([0.98, 0.98, 0.824]),\n    LightGray: fromRgb([0.828, 0.828, 0.828]),\n    LightGreen: fromRgb([0.565, 0.932, 0.565]),\n    LightGrey: fromRgb([0.828, 0.828, 0.828]),\n    LightPink: fromRgb([1, 0.712, 0.756]),\n    LightSalmon: fromRgb([1, 0.628, 0.48]),\n    LightSeaGreen: fromRgb([0.125, 0.698, 0.668]),\n    LightSkyBlue: fromRgb([0.53, 0.808, 0.98]),\n    LightSlateBlue: fromRgb([0.518, 0.44, 1]),\n    LightSlateGray: fromRgb([0.468, 0.532, 0.6]),\n    LightSlateGrey: fromRgb([0.468, 0.532, 0.6]),\n    LightSteelBlue: fromRgb([0.69, 0.77, 0.87]),\n    LightYellow: fromRgb([1, 1, 0.88]),\n    Lime: fromRgb([0, 1, 0]),\n    LimeGreen: fromRgb([0.196, 0.804, 0.196]),\n    Linen: fromRgb([0.98, 0.94, 0.9]),\n    Magenta: fromRgb([1, 0, 1]),\n    Maroon: fromRgb([0.5, 0, 0]),\n    MediumAquamarine: fromRgb([0.4, 0.804, 0.668]),\n    MediumBlue: fromRgb([0, 0, 0.804]),\n    MediumOrchid: fromRgb([0.73, 0.332, 0.828]),\n    MediumPurple: fromRgb([0.576, 0.44, 0.86]),\n    MediumSeaGreen: fromRgb([0.235, 0.7, 0.444]),\n    MediumSlateBlue: fromRgb([0.484, 0.408, 0.932]),\n    MediumSpringGreen: fromRgb([0, 0.98, 0.604]),\n    MediumTurquoise: fromRgb([0.284, 0.82, 0.8]),\n    MediumVioletRed: fromRgb([0.78, 0.084, 0.52]),\n    MidnightBlue: fromRgb([0.098, 0.098, 0.44]),\n    MintCream: fromRgb([0.96, 1, 0.98]),\n    MistyRose: fromRgb([1, 0.894, 0.884]),\n    Moccasin: fromRgb([1, 0.894, 0.71]),\n    NavajoWhite: fromRgb([1, 0.87, 0.68]),\n    Navy: fromRgb([0, 0, 0.5]),\n    NavyBlue: fromRgb([0, 0, 0.5]),\n    OldLace: fromRgb([0.992, 0.96, 0.9]),\n    Olive: fromRgb([0.5, 0.5, 0]),\n    OliveDrab: fromRgb([0.42, 0.556, 0.136]),\n    Orange: fromRgb([1, 0.648, 0]),\n    OrangeRed: fromRgb([1, 0.27, 0]),\n    Orchid: fromRgb([0.855, 0.44, 0.84]),\n    PaleGoldenrod: fromRgb([0.932, 0.91, 0.668]),\n    PaleGreen: fromRgb([0.596, 0.985, 0.596]),\n    PaleTurquoise: fromRgb([0.688, 0.932, 0.932]),\n    PaleVioletRed: fromRgb([0.86, 0.44, 0.576]),\n    PapayaWhip: fromRgb([1, 0.936, 0.835]),\n    PeachPuff: fromRgb([1, 0.855, 0.725]),\n    Peru: fromRgb([0.804, 0.52, 0.248]),\n    Pink: fromRgb([1, 0.752, 0.796]),\n    Plum: fromRgb([0.868, 0.628, 0.868]),\n    PowderBlue: fromRgb([0.69, 0.88, 0.9]),\n    Purple: fromRgb([0.5, 0, 0.5]),\n    Red: fromRgb([1, 0, 0]),\n    RosyBrown: fromRgb([0.736, 0.56, 0.56]),\n    RoyalBlue: fromRgb([0.255, 0.41, 0.884]),\n    SaddleBrown: fromRgb([0.545, 0.27, 0.075]),\n    Salmon: fromRgb([0.98, 0.5, 0.448]),\n    SandyBrown: fromRgb([0.956, 0.644, 0.376]),\n    SeaGreen: fromRgb([0.18, 0.545, 0.34]),\n    Seashell: fromRgb([1, 0.96, 0.932]),\n    Sienna: fromRgb([0.628, 0.32, 0.176]),\n    Silver: fromRgb([0.752, 0.752, 0.752]),\n    SkyBlue: fromRgb([0.53, 0.808, 0.92]),\n    SlateBlue: fromRgb([0.415, 0.352, 0.804]),\n    SlateGray: fromRgb([0.44, 0.5, 0.565]),\n    SlateGrey: fromRgb([0.44, 0.5, 0.565]),\n    Snow: fromRgb([1, 0.98, 0.98]),\n    SpringGreen: fromRgb([0, 1, 0.498]),\n    SteelBlue: fromRgb([0.275, 0.51, 0.705]),\n    Tan: fromRgb([0.824, 0.705, 0.55]),\n    Teal: fromRgb([0, 0.5, 0.5]),\n    Thistle: fromRgb([0.848, 0.75, 0.848]),\n    Tomato: fromRgb([1, 0.39, 0.28]),\n    Turquoise: fromRgb([0.25, 0.88, 0.815]),\n    Violet: fromRgb([0.932, 0.51, 0.932]),\n    VioletRed: fromRgb([0.816, 0.125, 0.565]),\n    Wheat: fromRgb([0.96, 0.87, 0.7]),\n    White: fromRgb([1, 1, 1]),\n    WhiteSmoke: fromRgb([0.96, 0.96, 0.96]),\n    Yellow: fromRgb([1, 1, 0]),\n    YellowGreen: fromRgb([0.604, 0.804, 0.196])\n  };\n  var X11_NAMES = {\n    AntiqueWhite1: fromRgb([1, 0.936, 0.86]),\n    AntiqueWhite2: fromRgb([0.932, 0.875, 0.8]),\n    AntiqueWhite3: fromRgb([0.804, 0.752, 0.69]),\n    AntiqueWhite4: fromRgb([0.545, 0.512, 0.47]),\n    Aquamarine1: fromRgb([0.498, 1, 0.83]),\n    Aquamarine2: fromRgb([0.464, 0.932, 0.776]),\n    Aquamarine3: fromRgb([0.4, 0.804, 0.668]),\n    Aquamarine4: fromRgb([0.27, 0.545, 0.455]),\n    Azure1: fromRgb([0.94, 1, 1]),\n    Azure2: fromRgb([0.88, 0.932, 0.932]),\n    Azure3: fromRgb([0.756, 0.804, 0.804]),\n    Azure4: fromRgb([0.512, 0.545, 0.545]),\n    Bisque1: fromRgb([1, 0.894, 0.77]),\n    Bisque2: fromRgb([0.932, 0.835, 0.716]),\n    Bisque3: fromRgb([0.804, 0.716, 0.62]),\n    Bisque4: fromRgb([0.545, 0.49, 0.42]),\n    Blue1: fromRgb([0, 0, 1]),\n    Blue2: fromRgb([0, 0, 0.932]),\n    Blue3: fromRgb([0, 0, 0.804]),\n    Blue4: fromRgb([0, 0, 0.545]),\n    Brown1: fromRgb([1, 0.25, 0.25]),\n    Brown2: fromRgb([0.932, 0.23, 0.23]),\n    Brown3: fromRgb([0.804, 0.2, 0.2]),\n    Brown4: fromRgb([0.545, 0.136, 0.136]),\n    Burlywood1: fromRgb([1, 0.828, 0.608]),\n    Burlywood2: fromRgb([0.932, 0.772, 0.57]),\n    Burlywood3: fromRgb([0.804, 0.668, 0.49]),\n    Burlywood4: fromRgb([0.545, 0.45, 0.332]),\n    CadetBlue1: fromRgb([0.596, 0.96, 1]),\n    CadetBlue2: fromRgb([0.556, 0.898, 0.932]),\n    CadetBlue3: fromRgb([0.48, 0.772, 0.804]),\n    CadetBlue4: fromRgb([0.325, 0.525, 0.545]),\n    Chartreuse1: fromRgb([0.498, 1, 0]),\n    Chartreuse2: fromRgb([0.464, 0.932, 0]),\n    Chartreuse3: fromRgb([0.4, 0.804, 0]),\n    Chartreuse4: fromRgb([0.27, 0.545, 0]),\n    Chocolate1: fromRgb([1, 0.498, 0.14]),\n    Chocolate2: fromRgb([0.932, 0.464, 0.13]),\n    Chocolate3: fromRgb([0.804, 0.4, 0.112]),\n    Chocolate4: fromRgb([0.545, 0.27, 0.075]),\n    Coral1: fromRgb([1, 0.448, 0.336]),\n    Coral2: fromRgb([0.932, 0.415, 0.312]),\n    Coral3: fromRgb([0.804, 0.356, 0.27]),\n    Coral4: fromRgb([0.545, 0.244, 0.185]),\n    Cornsilk1: fromRgb([1, 0.972, 0.864]),\n    Cornsilk2: fromRgb([0.932, 0.91, 0.804]),\n    Cornsilk3: fromRgb([0.804, 0.785, 0.694]),\n    Cornsilk4: fromRgb([0.545, 0.532, 0.47]),\n    Cyan1: fromRgb([0, 1, 1]),\n    Cyan2: fromRgb([0, 0.932, 0.932]),\n    Cyan3: fromRgb([0, 0.804, 0.804]),\n    Cyan4: fromRgb([0, 0.545, 0.545]),\n    DarkGoldenrod1: fromRgb([1, 0.725, 0.06]),\n    DarkGoldenrod2: fromRgb([0.932, 0.68, 0.055]),\n    DarkGoldenrod3: fromRgb([0.804, 0.585, 0.048]),\n    DarkGoldenrod4: fromRgb([0.545, 0.396, 0.03]),\n    DarkOliveGreen1: fromRgb([0.792, 1, 0.44]),\n    DarkOliveGreen2: fromRgb([0.736, 0.932, 0.408]),\n    DarkOliveGreen3: fromRgb([0.635, 0.804, 0.352]),\n    DarkOliveGreen4: fromRgb([0.43, 0.545, 0.24]),\n    DarkOrange1: fromRgb([1, 0.498, 0]),\n    DarkOrange2: fromRgb([0.932, 0.464, 0]),\n    DarkOrange3: fromRgb([0.804, 0.4, 0]),\n    DarkOrange4: fromRgb([0.545, 0.27, 0]),\n    DarkOrchid1: fromRgb([0.75, 0.244, 1]),\n    DarkOrchid2: fromRgb([0.698, 0.228, 0.932]),\n    DarkOrchid3: fromRgb([0.604, 0.196, 0.804]),\n    DarkOrchid4: fromRgb([0.408, 0.132, 0.545]),\n    DarkSeaGreen1: fromRgb([0.756, 1, 0.756]),\n    DarkSeaGreen2: fromRgb([0.705, 0.932, 0.705]),\n    DarkSeaGreen3: fromRgb([0.608, 0.804, 0.608]),\n    DarkSeaGreen4: fromRgb([0.41, 0.545, 0.41]),\n    DarkSlateGray1: fromRgb([0.592, 1, 1]),\n    DarkSlateGray2: fromRgb([0.552, 0.932, 0.932]),\n    DarkSlateGray3: fromRgb([0.475, 0.804, 0.804]),\n    DarkSlateGray4: fromRgb([0.32, 0.545, 0.545]),\n    DeepPink1: fromRgb([1, 0.08, 0.576]),\n    DeepPink2: fromRgb([0.932, 0.07, 0.536]),\n    DeepPink3: fromRgb([0.804, 0.064, 0.464]),\n    DeepPink4: fromRgb([0.545, 0.04, 0.312]),\n    DeepSkyBlue1: fromRgb([0, 0.75, 1]),\n    DeepSkyBlue2: fromRgb([0, 0.698, 0.932]),\n    DeepSkyBlue3: fromRgb([0, 0.604, 0.804]),\n    DeepSkyBlue4: fromRgb([0, 0.408, 0.545]),\n    DodgerBlue1: fromRgb([0.116, 0.565, 1]),\n    DodgerBlue2: fromRgb([0.11, 0.525, 0.932]),\n    DodgerBlue3: fromRgb([0.094, 0.455, 0.804]),\n    DodgerBlue4: fromRgb([0.064, 0.305, 0.545]),\n    Firebrick1: fromRgb([1, 0.19, 0.19]),\n    Firebrick2: fromRgb([0.932, 0.172, 0.172]),\n    Firebrick3: fromRgb([0.804, 0.15, 0.15]),\n    Firebrick4: fromRgb([0.545, 0.1, 0.1]),\n    Gold1: fromRgb([1, 0.844, 0]),\n    Gold2: fromRgb([0.932, 0.79, 0]),\n    Gold3: fromRgb([0.804, 0.68, 0]),\n    Gold4: fromRgb([0.545, 0.46, 0]),\n    Goldenrod1: fromRgb([1, 0.756, 0.145]),\n    Goldenrod2: fromRgb([0.932, 0.705, 0.132]),\n    Goldenrod3: fromRgb([0.804, 0.608, 0.112]),\n    Goldenrod4: fromRgb([0.545, 0.41, 0.08]),\n    Green1: fromRgb([0, 1, 0]),\n    Green2: fromRgb([0, 0.932, 0]),\n    Green3: fromRgb([0, 0.804, 0]),\n    Green4: fromRgb([0, 0.545, 0]),\n    Honeydew1: fromRgb([0.94, 1, 0.94]),\n    Honeydew2: fromRgb([0.88, 0.932, 0.88]),\n    Honeydew3: fromRgb([0.756, 0.804, 0.756]),\n    Honeydew4: fromRgb([0.512, 0.545, 0.512]),\n    HotPink1: fromRgb([1, 0.43, 0.705]),\n    HotPink2: fromRgb([0.932, 0.415, 0.655]),\n    HotPink3: fromRgb([0.804, 0.376, 0.565]),\n    HotPink4: fromRgb([0.545, 0.228, 0.385]),\n    IndianRed1: fromRgb([1, 0.415, 0.415]),\n    IndianRed2: fromRgb([0.932, 0.39, 0.39]),\n    IndianRed3: fromRgb([0.804, 0.332, 0.332]),\n    IndianRed4: fromRgb([0.545, 0.228, 0.228]),\n    Ivory1: fromRgb([1, 1, 0.94]),\n    Ivory2: fromRgb([0.932, 0.932, 0.88]),\n    Ivory3: fromRgb([0.804, 0.804, 0.756]),\n    Ivory4: fromRgb([0.545, 0.545, 0.512]),\n    Khaki1: fromRgb([1, 0.965, 0.56]),\n    Khaki2: fromRgb([0.932, 0.9, 0.52]),\n    Khaki3: fromRgb([0.804, 0.776, 0.45]),\n    Khaki4: fromRgb([0.545, 0.525, 0.305]),\n    LavenderBlush1: fromRgb([1, 0.94, 0.96]),\n    LavenderBlush2: fromRgb([0.932, 0.88, 0.898]),\n    LavenderBlush3: fromRgb([0.804, 0.756, 0.772]),\n    LavenderBlush4: fromRgb([0.545, 0.512, 0.525]),\n    LemonChiffon1: fromRgb([1, 0.98, 0.804]),\n    LemonChiffon2: fromRgb([0.932, 0.912, 0.75]),\n    LemonChiffon3: fromRgb([0.804, 0.79, 0.648]),\n    LemonChiffon4: fromRgb([0.545, 0.536, 0.44]),\n    LightBlue1: fromRgb([0.75, 0.936, 1]),\n    LightBlue2: fromRgb([0.698, 0.875, 0.932]),\n    LightBlue3: fromRgb([0.604, 0.752, 0.804]),\n    LightBlue4: fromRgb([0.408, 0.512, 0.545]),\n    LightCyan1: fromRgb([0.88, 1, 1]),\n    LightCyan2: fromRgb([0.82, 0.932, 0.932]),\n    LightCyan3: fromRgb([0.705, 0.804, 0.804]),\n    LightCyan4: fromRgb([0.48, 0.545, 0.545]),\n    LightGoldenrod1: fromRgb([1, 0.925, 0.545]),\n    LightGoldenrod2: fromRgb([0.932, 0.864, 0.51]),\n    LightGoldenrod3: fromRgb([0.804, 0.745, 0.44]),\n    LightGoldenrod4: fromRgb([0.545, 0.505, 0.298]),\n    LightPink1: fromRgb([1, 0.684, 0.725]),\n    LightPink2: fromRgb([0.932, 0.635, 0.68]),\n    LightPink3: fromRgb([0.804, 0.55, 0.585]),\n    LightPink4: fromRgb([0.545, 0.372, 0.396]),\n    LightSalmon1: fromRgb([1, 0.628, 0.48]),\n    LightSalmon2: fromRgb([0.932, 0.585, 0.448]),\n    LightSalmon3: fromRgb([0.804, 0.505, 0.385]),\n    LightSalmon4: fromRgb([0.545, 0.34, 0.26]),\n    LightSkyBlue1: fromRgb([0.69, 0.888, 1]),\n    LightSkyBlue2: fromRgb([0.644, 0.828, 0.932]),\n    LightSkyBlue3: fromRgb([0.552, 0.712, 0.804]),\n    LightSkyBlue4: fromRgb([0.376, 0.484, 0.545]),\n    LightSteelBlue1: fromRgb([0.792, 0.884, 1]),\n    LightSteelBlue2: fromRgb([0.736, 0.824, 0.932]),\n    LightSteelBlue3: fromRgb([0.635, 0.71, 0.804]),\n    LightSteelBlue4: fromRgb([0.43, 0.484, 0.545]),\n    LightYellow1: fromRgb([1, 1, 0.88]),\n    LightYellow2: fromRgb([0.932, 0.932, 0.82]),\n    LightYellow3: fromRgb([0.804, 0.804, 0.705]),\n    LightYellow4: fromRgb([0.545, 0.545, 0.48]),\n    Magenta1: fromRgb([1, 0, 1]),\n    Magenta2: fromRgb([0.932, 0, 0.932]),\n    Magenta3: fromRgb([0.804, 0, 0.804]),\n    Magenta4: fromRgb([0.545, 0, 0.545]),\n    Maroon1: fromRgb([1, 0.204, 0.7]),\n    Maroon2: fromRgb([0.932, 0.19, 0.655]),\n    Maroon3: fromRgb([0.804, 0.16, 0.565]),\n    Maroon4: fromRgb([0.545, 0.11, 0.385]),\n    MediumOrchid1: fromRgb([0.88, 0.4, 1]),\n    MediumOrchid2: fromRgb([0.82, 0.372, 0.932]),\n    MediumOrchid3: fromRgb([0.705, 0.32, 0.804]),\n    MediumOrchid4: fromRgb([0.48, 0.215, 0.545]),\n    MediumPurple1: fromRgb([0.67, 0.51, 1]),\n    MediumPurple2: fromRgb([0.624, 0.475, 0.932]),\n    MediumPurple3: fromRgb([0.536, 0.408, 0.804]),\n    MediumPurple4: fromRgb([0.365, 0.28, 0.545]),\n    MistyRose1: fromRgb([1, 0.894, 0.884]),\n    MistyRose2: fromRgb([0.932, 0.835, 0.824]),\n    MistyRose3: fromRgb([0.804, 0.716, 0.71]),\n    MistyRose4: fromRgb([0.545, 0.49, 0.484]),\n    NavajoWhite1: fromRgb([1, 0.87, 0.68]),\n    NavajoWhite2: fromRgb([0.932, 0.81, 0.63]),\n    NavajoWhite3: fromRgb([0.804, 0.7, 0.545]),\n    NavajoWhite4: fromRgb([0.545, 0.475, 0.37]),\n    OliveDrab1: fromRgb([0.752, 1, 0.244]),\n    OliveDrab2: fromRgb([0.7, 0.932, 0.228]),\n    OliveDrab3: fromRgb([0.604, 0.804, 0.196]),\n    OliveDrab4: fromRgb([0.41, 0.545, 0.132]),\n    Orange1: fromRgb([1, 0.648, 0]),\n    Orange2: fromRgb([0.932, 0.604, 0]),\n    Orange3: fromRgb([0.804, 0.52, 0]),\n    Orange4: fromRgb([0.545, 0.352, 0]),\n    OrangeRed1: fromRgb([1, 0.27, 0]),\n    OrangeRed2: fromRgb([0.932, 0.25, 0]),\n    OrangeRed3: fromRgb([0.804, 0.215, 0]),\n    OrangeRed4: fromRgb([0.545, 0.145, 0]),\n    Orchid1: fromRgb([1, 0.512, 0.98]),\n    Orchid2: fromRgb([0.932, 0.48, 0.912]),\n    Orchid3: fromRgb([0.804, 0.41, 0.79]),\n    Orchid4: fromRgb([0.545, 0.28, 0.536]),\n    PaleGreen1: fromRgb([0.604, 1, 0.604]),\n    PaleGreen2: fromRgb([0.565, 0.932, 0.565]),\n    PaleGreen3: fromRgb([0.488, 0.804, 0.488]),\n    PaleGreen4: fromRgb([0.33, 0.545, 0.33]),\n    PaleTurquoise1: fromRgb([0.732, 1, 1]),\n    PaleTurquoise2: fromRgb([0.684, 0.932, 0.932]),\n    PaleTurquoise3: fromRgb([0.59, 0.804, 0.804]),\n    PaleTurquoise4: fromRgb([0.4, 0.545, 0.545]),\n    PaleVioletRed1: fromRgb([1, 0.51, 0.67]),\n    PaleVioletRed2: fromRgb([0.932, 0.475, 0.624]),\n    PaleVioletRed3: fromRgb([0.804, 0.408, 0.536]),\n    PaleVioletRed4: fromRgb([0.545, 0.28, 0.365]),\n    PeachPuff1: fromRgb([1, 0.855, 0.725]),\n    PeachPuff2: fromRgb([0.932, 0.796, 0.68]),\n    PeachPuff3: fromRgb([0.804, 0.688, 0.585]),\n    PeachPuff4: fromRgb([0.545, 0.468, 0.396]),\n    Pink1: fromRgb([1, 0.71, 0.772]),\n    Pink2: fromRgb([0.932, 0.664, 0.72]),\n    Pink3: fromRgb([0.804, 0.57, 0.62]),\n    Pink4: fromRgb([0.545, 0.39, 0.424]),\n    Plum1: fromRgb([1, 0.732, 1]),\n    Plum2: fromRgb([0.932, 0.684, 0.932]),\n    Plum3: fromRgb([0.804, 0.59, 0.804]),\n    Plum4: fromRgb([0.545, 0.4, 0.545]),\n    Purple1: fromRgb([0.608, 0.19, 1]),\n    Purple2: fromRgb([0.57, 0.172, 0.932]),\n    Purple3: fromRgb([0.49, 0.15, 0.804]),\n    Purple4: fromRgb([0.332, 0.1, 0.545]),\n    Red1: fromRgb([1, 0, 0]),\n    Red2: fromRgb([0.932, 0, 0]),\n    Red3: fromRgb([0.804, 0, 0]),\n    Red4: fromRgb([0.545, 0, 0]),\n    RosyBrown1: fromRgb([1, 0.756, 0.756]),\n    RosyBrown2: fromRgb([0.932, 0.705, 0.705]),\n    RosyBrown3: fromRgb([0.804, 0.608, 0.608]),\n    RosyBrown4: fromRgb([0.545, 0.41, 0.41]),\n    RoyalBlue1: fromRgb([0.284, 0.464, 1]),\n    RoyalBlue2: fromRgb([0.264, 0.43, 0.932]),\n    RoyalBlue3: fromRgb([0.228, 0.372, 0.804]),\n    RoyalBlue4: fromRgb([0.152, 0.25, 0.545]),\n    Salmon1: fromRgb([1, 0.55, 0.41]),\n    Salmon2: fromRgb([0.932, 0.51, 0.385]),\n    Salmon3: fromRgb([0.804, 0.44, 0.33]),\n    Salmon4: fromRgb([0.545, 0.298, 0.224]),\n    SeaGreen1: fromRgb([0.33, 1, 0.624]),\n    SeaGreen2: fromRgb([0.305, 0.932, 0.58]),\n    SeaGreen3: fromRgb([0.264, 0.804, 0.5]),\n    SeaGreen4: fromRgb([0.18, 0.545, 0.34]),\n    Seashell1: fromRgb([1, 0.96, 0.932]),\n    Seashell2: fromRgb([0.932, 0.898, 0.87]),\n    Seashell3: fromRgb([0.804, 0.772, 0.75]),\n    Seashell4: fromRgb([0.545, 0.525, 0.51]),\n    Sienna1: fromRgb([1, 0.51, 0.28]),\n    Sienna2: fromRgb([0.932, 0.475, 0.26]),\n    Sienna3: fromRgb([0.804, 0.408, 0.224]),\n    Sienna4: fromRgb([0.545, 0.28, 0.15]),\n    SkyBlue1: fromRgb([0.53, 0.808, 1]),\n    SkyBlue2: fromRgb([0.494, 0.752, 0.932]),\n    SkyBlue3: fromRgb([0.424, 0.65, 0.804]),\n    SkyBlue4: fromRgb([0.29, 0.44, 0.545]),\n    SlateBlue1: fromRgb([0.512, 0.435, 1]),\n    SlateBlue2: fromRgb([0.48, 0.404, 0.932]),\n    SlateBlue3: fromRgb([0.41, 0.35, 0.804]),\n    SlateBlue4: fromRgb([0.28, 0.235, 0.545]),\n    SlateGray1: fromRgb([0.776, 0.888, 1]),\n    SlateGray2: fromRgb([0.725, 0.828, 0.932]),\n    SlateGray3: fromRgb([0.624, 0.712, 0.804]),\n    SlateGray4: fromRgb([0.424, 0.484, 0.545]),\n    Snow1: fromRgb([1, 0.98, 0.98]),\n    Snow2: fromRgb([0.932, 0.912, 0.912]),\n    Snow3: fromRgb([0.804, 0.79, 0.79]),\n    Snow4: fromRgb([0.545, 0.536, 0.536]),\n    SpringGreen1: fromRgb([0, 1, 0.498]),\n    SpringGreen2: fromRgb([0, 0.932, 0.464]),\n    SpringGreen3: fromRgb([0, 0.804, 0.4]),\n    SpringGreen4: fromRgb([0, 0.545, 0.27]),\n    SteelBlue1: fromRgb([0.39, 0.72, 1]),\n    SteelBlue2: fromRgb([0.36, 0.675, 0.932]),\n    SteelBlue3: fromRgb([0.31, 0.58, 0.804]),\n    SteelBlue4: fromRgb([0.21, 0.392, 0.545]),\n    Tan1: fromRgb([1, 0.648, 0.31]),\n    Tan2: fromRgb([0.932, 0.604, 0.288]),\n    Tan3: fromRgb([0.804, 0.52, 0.248]),\n    Tan4: fromRgb([0.545, 0.352, 0.17]),\n    Thistle1: fromRgb([1, 0.884, 1]),\n    Thistle2: fromRgb([0.932, 0.824, 0.932]),\n    Thistle3: fromRgb([0.804, 0.71, 0.804]),\n    Thistle4: fromRgb([0.545, 0.484, 0.545]),\n    Tomato1: fromRgb([1, 0.39, 0.28]),\n    Tomato2: fromRgb([0.932, 0.36, 0.26]),\n    Tomato3: fromRgb([0.804, 0.31, 0.224]),\n    Tomato4: fromRgb([0.545, 0.21, 0.15]),\n    Turquoise1: fromRgb([0, 0.96, 1]),\n    Turquoise2: fromRgb([0, 0.898, 0.932]),\n    Turquoise3: fromRgb([0, 0.772, 0.804]),\n    Turquoise4: fromRgb([0, 0.525, 0.545]),\n    VioletRed1: fromRgb([1, 0.244, 0.59]),\n    VioletRed2: fromRgb([0.932, 0.228, 0.55]),\n    VioletRed3: fromRgb([0.804, 0.196, 0.47]),\n    VioletRed4: fromRgb([0.545, 0.132, 0.32]),\n    Wheat1: fromRgb([1, 0.905, 0.73]),\n    Wheat2: fromRgb([0.932, 0.848, 0.684]),\n    Wheat3: fromRgb([0.804, 0.73, 0.59]),\n    Wheat4: fromRgb([0.545, 0.494, 0.4]),\n    Yellow1: fromRgb([1, 1, 0]),\n    Yellow2: fromRgb([0.932, 0.932, 0]),\n    Yellow3: fromRgb([0.804, 0.804, 0]),\n    Yellow4: fromRgb([0.545, 0.545, 0]),\n    Gray0: fromRgb([0.745, 0.745, 0.745]),\n    Green0: fromRgb([0, 1, 0]),\n    Grey0: fromRgb([0.745, 0.745, 0.745]),\n    Maroon0: fromRgb([0.69, 0.19, 0.376]),\n    Purple0: fromRgb([0.628, 0.125, 0.94])\n  };\n  var XColorCoreModelToColor = {\n    rgb: ([r, g, b]) => (0, import_color.default)([r * 255, g * 255, b * 255], \"rgb\"),\n    cmy: ([c, m, y]) => XColorCoreModelToColor.rgb([1 - c, 1 - m, 1 - y]),\n    cmyk: ([c, m, y, k]) => (0, import_color.default)([c * 255, m * 255, y * 255, k * 100], \"cmyk\"),\n    hsb: ([h, s2, b]) => (0, import_color.default)([h * 360, s2 * 100, b * 100], \"hsv\"),\n    gray: ([v]) => (0, import_color.default)([v * 255, v * 255, v * 255], \"rgb\")\n  };\n  var XColorModelToColor = {\n    wave: ([lambda]) => {\n      const gamma = 0.8;\n      let baseRgb = [0, 0, 0];\n      if (380 <= lambda && lambda < 440) {\n        baseRgb = [(440 - lambda) / (440 - 380), 0, 1];\n      }\n      if (440 <= lambda && lambda < 490) {\n        baseRgb = [0, (lambda - 440) / (490 - 440), 1];\n      }\n      if (490 <= lambda && lambda < 510) {\n        baseRgb = [0, 1, (510 - lambda) / (510 - 490)];\n      }\n      if (510 <= lambda && lambda < 580) {\n        baseRgb = [(lambda - 510) / (580 - 510), 1, 0];\n      }\n      if (580 <= lambda && lambda < 6450) {\n        baseRgb = [1, (645 - lambda) / (645 - 580), 0];\n      }\n      if (645 <= lambda && lambda <= 780) {\n        baseRgb = [1, 0, 0];\n      }\n      let f = 1;\n      if (380 <= lambda && 420 < lambda) {\n        f = 0.3 + 0.7 * (lambda - 380) / (420 - 380);\n      }\n      if (700 < lambda && lambda <= 780) {\n        f = 0.3 + 0.7 * (780 - lambda) / (780 - 700);\n      }\n      const rgb = [\n        Math.pow(baseRgb[0] * f, gamma),\n        Math.pow(baseRgb[1] * f, gamma),\n        Math.pow(baseRgb[2] * f, gamma)\n      ];\n      return (0, import_color.default)([rgb[0] * 255, rgb[1] * 255, rgb[2] * 255], \"rgb\");\n    },\n    Hsb: ([h, s2, b]) => XColorCoreModelToColor.hsb([h / 360, s2, b]),\n    HSB: ([h, s2, b]) => XColorCoreModelToColor.hsb([h / 240, s2 / 240, b / 240]),\n    HTML: ([v]) => v.startsWith(\"#\") ? (0, import_color.default)(v) : (0, import_color.default)(`#${v}`),\n    RGB: ([r, g, b]) => (0, import_color.default)([r, g, b], \"rgb\"),\n    Gray: ([v]) => XColorCoreModelToColor.gray([v / 15]),\n    ...XColorCoreModelToColor\n  };\n  var PREDEFINED_XCOLOR_COLORS = {\n    // Core colors\n    red: XColorCoreModelToColor.rgb([1, 0, 0]),\n    green: XColorCoreModelToColor.rgb([0, 1, 0]),\n    blue: XColorCoreModelToColor.rgb([0, 0, 1]),\n    brown: XColorCoreModelToColor.rgb([0.75, 0.5, 0.25]),\n    lime: XColorCoreModelToColor.rgb([0.75, 1, 0]),\n    orange: XColorCoreModelToColor.rgb([1, 0.5, 0]),\n    pink: XColorCoreModelToColor.rgb([1, 0.75, 0.75]),\n    purple: XColorCoreModelToColor.rgb([0.75, 0, 0.25]),\n    teal: XColorCoreModelToColor.rgb([0, 0.5, 0.5]),\n    violet: XColorCoreModelToColor.rgb([0.5, 0, 0.5]),\n    cyan: XColorCoreModelToColor.rgb([0, 1, 1]),\n    magenta: XColorCoreModelToColor.rgb([1, 0, 1]),\n    yellow: XColorCoreModelToColor.rgb([1, 1, 0]),\n    olive: XColorCoreModelToColor.rgb([0.5, 0.5, 0]),\n    black: XColorCoreModelToColor.rgb([0, 0, 0]),\n    darkgray: XColorCoreModelToColor.rgb([0.25, 0.25, 0.25]),\n    gray: XColorCoreModelToColor.rgb([0.5, 0.5, 0.5]),\n    lightgray: XColorCoreModelToColor.rgb([0.75, 0.75, 0.75]),\n    white: XColorCoreModelToColor.rgb([1, 1, 1]),\n    ...DVI_PS_NAMES,\n    ...SVG_NAMES,\n    ...X11_NAMES\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/xparse/index.js\n  var macros15 = {\n    NewDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    RenewDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    ProvideDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DeclareDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    NewDocumentEnvironment: {\n      signature: \"m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    RenewDocumentEnvironment: {\n      signature: \"m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    ProvideDocumentEnvironment: {\n      signature: \"m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DeclareDocumentEnvironment: {\n      signature: \"m m m m\",\n      renderInfo: { breakAround: true }\n    },\n    NewExpandableDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    RenewExpandableDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    ProvideExpandableDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    DeclareExpandableDocumentCommand: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    RequirePackage: {\n      signature: \"o m\",\n      renderInfo: { pgfkeysArgs: true, breakAround: true }\n    },\n    DeclareOption: { signature: \"m m\", renderInfo: { breakAround: true } }\n  };\n  var environments15 = {};\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/beamer/index.js\n  var macros16 = {\n    mode: { signature: \"s d<> d{}\", renderInfo: { breakAround: true } },\n    insertnavigation: { signature: \"m\", renderInfo: { breakAround: true } },\n    insertsectionnavigation: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    insertsectionnavigationhorizontal: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    insertauthor: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertshortauthor: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertshortdate: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertshortinstitute: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertshortpart: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertshorttitle: { signature: \"o\", renderInfo: { breakAround: true } },\n    insertsubsectionnavigation: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    insertsubsectionnavigationhorizontal: {\n      signature: \"m m m\",\n      renderInfo: { breakAround: true }\n    },\n    insertverticalnavigation: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    usebeamercolor: { signature: \"s m\", renderInfo: { breakAround: true } },\n    usebeamertemplate: { signature: \"s m\", renderInfo: { breakAround: true } },\n    setbeamercolor: {\n      signature: \"m m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    setbeamersize: {\n      signature: \"m o o\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    setbeamertemplate: {\n      signature: \"m o o d{}\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    newcommand: {\n      signature: \"s d<> +m o +o +m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\n          \"starred\",\n          null,\n          \"name\",\n          \"numArgs\",\n          \"default\",\n          \"body\"\n        ]\n      }\n    },\n    renewcommand: {\n      signature: \"s d<> +m o +o +m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\n          \"starred\",\n          null,\n          \"name\",\n          \"numArgs\",\n          \"default\",\n          \"body\"\n        ]\n      }\n    },\n    newenvironment: {\n      signature: \"s d<> m o o m m\",\n      renderInfo: { breakAround: true }\n    },\n    renewenvironment: {\n      signature: \"s d<> m o o m m\",\n      renderInfo: { breakAround: true }\n    },\n    resetcounteronoverlays: {\n      signature: \"m\",\n      renderInfo: { breakAround: true }\n    },\n    resetcountonoverlays: { signature: \"m\", renderInfo: { breakAround: true } },\n    logo: { signature: \"m\", renderInfo: { breakAround: true } },\n    frametitle: { signature: \"d<> o m\", renderInfo: { breakAround: true } },\n    framesubtitle: { signature: \"d<> m\", renderInfo: { breakAround: true } },\n    pause: { signature: \"o\" },\n    onslide: { signature: \"t+ t* d<> d{}\" },\n    only: { signature: \"d<> m d<>\" },\n    uncover: { signature: \"d<> m\" },\n    visible: { signature: \"d<> m\" },\n    invisible: { signature: \"d<> m\" },\n    alt: { signature: \"d<> m m d<>\" },\n    temporal: { signature: \"r<> m m m\" },\n    item: {\n      signature: \"d<> o d<>\",\n      renderInfo: {\n        hangingIndent: true,\n        namedArguments: [null, \"label\", null]\n      }\n    },\n    label: { signature: \"d<> o m\" },\n    // cleveref adds an optional argument to label; this gives maximum compatibility.\n    action: { signature: \"d<> m\" },\n    beamerdefaultoverlayspecification: { signature: \"m\" },\n    titlegraphic: { signature: \"m\", renderInfo: { breakAround: true } },\n    subject: { signature: \"m\", renderInfo: { breakAround: true } },\n    keywords: { signature: \"m\", renderInfo: { breakAround: true } },\n    lecture: { signature: \"o m m\", renderInfo: { breakAround: true } },\n    partpage: { renderInfo: { breakAround: true } },\n    sectionpage: { renderInfo: { breakAround: true } },\n    subsectionpage: { renderInfo: { breakAround: true } },\n    AtBeginLecture: { signature: \"m\", renderInfo: { breakAround: true } },\n    AtBeginPart: { signature: \"m\", renderInfo: { breakAround: true } },\n    tableofcontents: {\n      signature: \"o\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    againframe: { signature: \"d<> o o m\", renderInfo: { breakAround: true } },\n    framezoom: {\n      signature: \"r<> r<> o r() r()\",\n      renderInfo: { breakAround: true }\n    },\n    column: { signature: \"d<> o m\", renderInfo: { breakAround: true } },\n    animate: { signature: \"r<>\", renderInfo: { breakAround: true } },\n    animatevalue: { signature: \"r<> m m m\", renderInfo: { breakAround: true } },\n    sound: {\n      signature: \"o m m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    hyperlinksound: {\n      signature: \"o m m\",\n      renderInfo: { breakAround: true, pgfkeysArgs: true }\n    },\n    hyperlinkmute: { signature: \"m\", renderInfo: { breakAround: true } },\n    // These signatures conflict with the default signatures.\n    // Care must be taken when processing an AST.\n    section: {\n      signature: \"s d<> o m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", null, \"tocTitle\", \"title\"]\n      }\n    },\n    subsection: {\n      signature: \"s d<> o m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", null, \"tocTitle\", \"title\"]\n      }\n    },\n    subsubsection: {\n      signature: \"s d<> o m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", null, \"tocTitle\", \"title\"]\n      }\n    },\n    part: {\n      signature: \"s d<> o m\",\n      renderInfo: {\n        breakAround: true,\n        namedArguments: [\"starred\", null, \"tocTitle\", \"title\"]\n      }\n    },\n    bibitem: {\n      signature: \"s d<> o m\",\n      renderInfo: {\n        hangingIndent: true,\n        namedArguments: [\"starred\", null, \"tocTitle\", \"title\"]\n      }\n    }\n  };\n  var environments16 = {\n    frame: {\n      signature: \"!d<> !o !o !d{} !d{}\"\n    },\n    block: {\n      signature: \"!d<> !d{} !d<>\"\n    },\n    alertblock: {\n      signature: \"!d<> !d{} !d<>\"\n    },\n    exampleblock: {\n      signature: \"!d<> !d{} !d<>\"\n    },\n    onlyenv: {\n      signature: \"!d<>\"\n    },\n    altenv: {\n      signature: \"!d<> m m m m !d<>\"\n    },\n    overlayarea: { signature: \"m m\" },\n    overprint: { signature: \"o\" },\n    actionenv: { signature: \"!d<>\" },\n    columns: { signature: \"d<> o\" },\n    column: { signature: \"d<> o m\" }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/package/multicol/index.js\n  var macros17 = {\n    columnbreak: { renderInfo: { breakAround: true } }\n  };\n  var environments17 = {\n    multicols: {\n      signature: \"m o o\"\n    },\n    \"multicols*\": {\n      signature: \"m o o\"\n    }\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-ctan/index.js\n  var macroInfo = {\n    amsart: macros,\n    cleveref: macros2,\n    exam: macros3,\n    geometry: macros4,\n    hyperref: macros5,\n    latex2e: macros6,\n    listings: macros7,\n    makeidx: macros8,\n    mathtools: macros9,\n    minted: macros10,\n    nicematrix: macros11,\n    systeme: macros12,\n    tikz: macros13,\n    xcolor: macros14,\n    xparse: macros15,\n    beamer: macros16,\n    multicol: macros17\n  };\n  var environmentInfo = {\n    amsart: environments,\n    cleveref: environments2,\n    exam: environments3,\n    geometry: environments4,\n    hyperref: environments5,\n    latex2e: environments6,\n    listings: environments7,\n    makeidx: environments8,\n    mathtools: environments9,\n    minted: environments10,\n    nicematrix: environments11,\n    systeme: environments12,\n    tikz: environments13,\n    xcolor: environments14,\n    xparse: environments15,\n    beamer: environments16,\n    multicol: environments17\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-util-environments/index.js\n  function processEnvironment(envNode, envInfo) {\n    if (envInfo.signature && envNode.args == null) {\n      const { args } = gobbleArguments(envNode.content, envInfo.signature);\n      envNode.args = args;\n    }\n    updateRenderInfo(envNode, envInfo.renderInfo);\n    if (typeof envInfo.processContent === \"function\") {\n      envNode.content = envInfo.processContent(envNode.content);\n    }\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-catcode/index.js\n  function findRegionInArray(tree, start, end) {\n    const ret = [];\n    let currRegion = { start: void 0, end: tree.length };\n    for (let i = 0; i < tree.length; i++) {\n      const node = tree[i];\n      if (start(node)) {\n        currRegion.start = i;\n      }\n      if (end(node)) {\n        currRegion.end = i + 1;\n        ret.push(currRegion);\n        currRegion = { start: void 0, end: tree.length };\n      }\n    }\n    if (currRegion.start != null) {\n      ret.push(currRegion);\n    }\n    return ret;\n  }\n  function refineRegions(regions) {\n    const _regions = [...regions];\n    _regions.sort((a, b) => a.start - b.start);\n    const cutPointsSet = new Set(_regions.flatMap((r) => [r.start, r.end]));\n    const cutPoints = Array.from(cutPointsSet);\n    cutPoints.sort((a, b) => a - b);\n    const retRegions = [];\n    const retRegionsContainedIn = [];\n    let seekIndex = 0;\n    for (let i = 0; i < cutPoints.length - 1; i++) {\n      const start = cutPoints[i];\n      const end = cutPoints[i + 1];\n      const region = { start, end };\n      const regionContainedIn = /* @__PURE__ */ new Set();\n      let encounteredEndPastStart = false;\n      for (let j = seekIndex; j < _regions.length; j++) {\n        const superRegion = _regions[j];\n        if (superRegion.end >= region.start) {\n          encounteredEndPastStart = true;\n        }\n        if (!encounteredEndPastStart && superRegion.end < region.start) {\n          seekIndex = j + 1;\n          continue;\n        }\n        if (superRegion.start > end) {\n          break;\n        }\n        if (superRegion.start <= region.start && superRegion.end >= region.end) {\n          encounteredEndPastStart = true;\n          regionContainedIn.add(superRegion);\n        }\n      }\n      if (regionContainedIn.size > 0) {\n        retRegions.push(region);\n        retRegionsContainedIn.push(regionContainedIn);\n      }\n    }\n    return { regions: retRegions, regionsContainedIn: retRegionsContainedIn };\n  }\n  function splitByRegions(array, regionsRecord) {\n    const ret = [];\n    const indices = [0, array.length];\n    const reverseMap = {};\n    for (const [key, records] of Object.entries(regionsRecord)) {\n      indices.push(\n        ...records.flatMap((r) => {\n          reverseMap[\"\" + [r.start, r.end]] = key;\n          return [r.start, r.end];\n        })\n      );\n    }\n    indices.sort((a, b) => a - b);\n    for (let i = 0; i < indices.length - 1; i++) {\n      const start = indices[i];\n      const end = indices[i + 1];\n      if (start === end) {\n        continue;\n      }\n      const regionKey = reverseMap[\"\" + [start, end]];\n      ret.push([regionKey || null, array.slice(start, end)]);\n    }\n    return ret;\n  }\n  function escapeRegExp(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n  }\n  function buildWordRegex(allowedSet) {\n    const regexpStr = `^(${[\"\\\\p{L}\"].concat(Array.from(allowedSet).map(escapeRegExp)).join(\"|\")})*`;\n    return new RegExp(regexpStr, \"u\");\n  }\n  function hasReparsableMacroNamesInArray(tree, allowedTokens) {\n    for (let i = 0; i < tree.length; i++) {\n      const macro2 = tree[i];\n      const string2 = tree[i + 1];\n      if (match.anyMacro(macro2) && match.anyString(string2)) {\n        if (allowedTokens.has(\n          macro2.content.charAt(macro2.content.length - 1)\n        ) || allowedTokens.has(string2.content.charAt(0))) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function hasReparsableMacroNames(tree, allowedTokens) {\n    if (typeof allowedTokens === \"string\") {\n      allowedTokens = new Set(allowedTokens.split(\"\"));\n    }\n    const _allowedTokens = allowedTokens;\n    for (const v of _allowedTokens) {\n      if (v.length > 1) {\n        throw new Error(\n          `Only single characters are allowed as \\`allowedTokens\\` when reparsing macro names, not \\`${v}\\`.`\n        );\n      }\n    }\n    let ret = false;\n    visit(\n      tree,\n      (nodes) => {\n        if (hasReparsableMacroNamesInArray(nodes, _allowedTokens)) {\n          ret = true;\n          return EXIT;\n        }\n      },\n      { includeArrays: true, test: Array.isArray }\n    );\n    return ret;\n  }\n  function reparseMacroNamesInArray(tree, allowedTokens) {\n    var _a, _b, _c;\n    const regex = buildWordRegex(allowedTokens);\n    let i = 0;\n    while (i < tree.length) {\n      const macro2 = tree[i];\n      const string2 = tree[i + 1];\n      if (match.anyMacro(macro2) && // The _^ macros in math mode should not be extended no-matter what;\n      // So we check to make sure that the macro we're dealing with has the default escape token.\n      (macro2.escapeToken == null || macro2.escapeToken === \"\\\\\") && match.anyString(string2) && // There are two options. Either the macro ends with the special character,\n      // e.g. `\\@foo` or the special character starts the next string, e.g. `\\foo@`.\n      (allowedTokens.has(\n        macro2.content.charAt(macro2.content.length - 1)\n      ) || allowedTokens.has(string2.content.charAt(0)))) {\n        const match2 = string2.content.match(regex);\n        const takeable = match2 ? match2[0] : \"\";\n        if (takeable.length > 0) {\n          if (takeable.length === string2.content.length) {\n            macro2.content += string2.content;\n            tree.splice(i + 1, 1);\n            if (macro2.position && ((_a = string2.position) == null ? void 0 : _a.end)) {\n              macro2.position.end = string2.position.end;\n            }\n          } else {\n            macro2.content += takeable;\n            string2.content = string2.content.slice(takeable.length);\n            if ((_b = macro2.position) == null ? void 0 : _b.end) {\n              macro2.position.end.offset += takeable.length;\n              macro2.position.end.column += takeable.length;\n            }\n            if ((_c = string2.position) == null ? void 0 : _c.start) {\n              string2.position.start.offset += takeable.length;\n              string2.position.start.column += takeable.length;\n            }\n          }\n        } else {\n          i++;\n        }\n      } else {\n        ++i;\n      }\n    }\n  }\n  function reparseMacroNames(tree, allowedTokens) {\n    if (typeof allowedTokens === \"string\") {\n      allowedTokens = new Set(allowedTokens.split(\"\"));\n    }\n    const _allowedTokens = allowedTokens;\n    for (const v of _allowedTokens) {\n      if (v.length > 1) {\n        throw new Error(\n          `Only single characters are allowed as \\`allowedTokens\\` when reparsing macro names, not \\`${v}\\`.`\n        );\n      }\n    }\n    visit(\n      tree,\n      (nodes) => {\n        reparseMacroNamesInArray(nodes, _allowedTokens);\n      },\n      { includeArrays: true, test: Array.isArray }\n    );\n  }\n  var expl3Find = {\n    start: match.createMacroMatcher([\"ExplSyntaxOn\"]),\n    end: match.createMacroMatcher([\"ExplSyntaxOff\"])\n  };\n  var atLetterFind = {\n    start: match.createMacroMatcher([\"makeatletter\"]),\n    end: match.createMacroMatcher([\"makeatother\"])\n  };\n  function findExpl3AndAtLetterRegionsInArray(tree) {\n    const expl3 = findRegionInArray(tree, expl3Find.start, expl3Find.end);\n    const atLetter = findRegionInArray(\n      tree,\n      atLetterFind.start,\n      atLetterFind.end\n    );\n    const regionMap = new Map([\n      ...expl3.map((x) => [x, \"expl\"]),\n      ...atLetter.map((x) => [x, \"atLetter\"])\n    ]);\n    const all = refineRegions([...expl3, ...atLetter]);\n    const ret = {\n      explOnly: [],\n      atLetterOnly: [],\n      both: []\n    };\n    for (let i = 0; i < all.regions.length; i++) {\n      const region = all.regions[i];\n      const containedIn = all.regionsContainedIn[i];\n      if (containedIn.size === 2) {\n        ret.both.push(region);\n        continue;\n      }\n      for (const v of containedIn.values()) {\n        if (regionMap.get(v) === \"expl\") {\n          ret.explOnly.push(region);\n        }\n        if (regionMap.get(v) === \"atLetter\") {\n          ret.atLetterOnly.push(region);\n        }\n      }\n    }\n    ret.explOnly = ret.explOnly.filter((r) => r.end - r.start > 1);\n    ret.atLetterOnly = ret.atLetterOnly.filter((r) => r.end - r.start > 1);\n    ret.both = ret.both.filter((r) => r.end - r.start > 1);\n    return ret;\n  }\n  var atLetterSet = /* @__PURE__ */ new Set([\"@\"]);\n  var explSet = /* @__PURE__ */ new Set([\"_\", \":\"]);\n  var bothSet = /* @__PURE__ */ new Set([\"_\", \":\", \"@\"]);\n  function reparseExpl3AndAtLetterRegions(tree) {\n    visit(\n      tree,\n      {\n        leave: (nodes) => {\n          const regions = findExpl3AndAtLetterRegionsInArray(nodes);\n          const totalNumRegions = regions.both.length + regions.atLetterOnly.length + regions.explOnly.length;\n          if (totalNumRegions === 0) {\n            return;\n          }\n          const splits = splitByRegions(nodes, regions);\n          const processed = [];\n          for (const [key, slice] of splits) {\n            switch (key) {\n              case null:\n                processed.push(...slice);\n                continue;\n              case \"atLetterOnly\":\n                reparseMacroNames(slice, atLetterSet);\n                processed.push(...slice);\n                continue;\n              case \"explOnly\":\n                reparseMacroNames(slice, explSet);\n                processed.push(...slice);\n                continue;\n              case \"both\":\n                reparseMacroNames(slice, bothSet);\n                processed.push(...slice);\n                continue;\n              default:\n                throw new Error(\n                  `Unexpected case when splitting ${key}`\n                );\n            }\n          }\n          nodes.length = 0;\n          nodes.push(...processed);\n          return SKIP;\n        }\n      },\n      { includeArrays: true, test: Array.isArray }\n    );\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-parse/index.js\n  var unifiedLatexAstComplier = function unifiedLatexAstComplier2() {\n    Object.assign(this, { Compiler: (x) => x });\n  };\n  function parseMinimal(str) {\n    return LatexPegParser.parse(str);\n  }\n  function parseMathMinimal(str) {\n    return LatexPegParser.parse(str, { startRule: \"math\" });\n  }\n  var unifiedLatexFromStringMinimal = function unifiedLatexFromStringMinimal2(options) {\n    const parser2 = (str) => {\n      if ((options == null ? void 0 : options.mode) === \"math\") {\n        return {\n          type: \"root\",\n          content: parseMathMinimal(str),\n          _renderInfo: { inMathMode: true }\n        };\n      }\n      return parseMinimal(str);\n    };\n    Object.assign(this, { Parser: parser2 });\n  };\n  function unifiedLatexReparseMathConstructPlugin({\n    mathEnvs,\n    mathMacros\n  }) {\n    const isMathEnvironment = match.createEnvironmentMatcher(mathEnvs);\n    const isMathMacro = match.createMacroMatcher(mathMacros);\n    return (tree) => {\n      visit(\n        tree,\n        (node) => {\n          if (match.anyMacro(node)) {\n            for (const arg2 of node.args || []) {\n              if (arg2.content.length > 0 && !wasParsedInMathMode(arg2.content)) {\n                arg2.content = parseMathMinimal(\n                  printRaw(arg2.content)\n                );\n              }\n            }\n          }\n          if (match.anyEnvironment(node)) {\n            if (!wasParsedInMathMode(node.content)) {\n              node.content = parseMathMinimal(printRaw(node.content));\n            }\n          }\n        },\n        {\n          test: (node) => isMathEnvironment(node) || isMathMacro(node)\n        }\n      );\n    };\n  }\n  function wasParsedInMathMode(nodes) {\n    return !nodes.some(\n      (node) => (\n        // If there are multi-char strings or ^ and _ have been parsed as strings, we know\n        // that we were not parsed in math mode.\n        match.anyString(node) && node.content.length > 1 || match.string(node, \"^\") || match.string(node, \"_\")\n      )\n    );\n  }\n  var unifiedLatexProcessMacrosAndEnvironmentsWithMathReparse = function unifiedLatexProcessMacrosAndEnvironmentsWithMathReparse2(options) {\n    const { environments: environments18 = {}, macros: macros18 = {} } = options || {};\n    const mathMacros = Object.fromEntries(\n      Object.entries(macros18).filter(\n        ([_, info]) => {\n          var _a;\n          return ((_a = info.renderInfo) == null ? void 0 : _a.inMathMode) === true;\n        }\n      )\n    );\n    const mathEnvs = Object.fromEntries(\n      Object.entries(environments18).filter(\n        ([_, info]) => {\n          var _a;\n          return ((_a = info.renderInfo) == null ? void 0 : _a.inMathMode) === true;\n        }\n      )\n    );\n    const mathReparser = unifiedLatexReparseMathConstructPlugin({\n      mathEnvs: Object.keys(mathEnvs),\n      mathMacros: Object.keys(mathMacros)\n    });\n    const isRelevantEnvironment = match.createEnvironmentMatcher(environments18);\n    const isRelevantMathEnvironment = match.createEnvironmentMatcher(mathEnvs);\n    return (tree) => {\n      visit(\n        tree,\n        {\n          enter: (nodes) => {\n            if (!Array.isArray(nodes)) {\n              return;\n            }\n            attachMacroArgsInArray(nodes, mathMacros);\n          },\n          leave: (node) => {\n            if (!isRelevantMathEnvironment(node)) {\n              return;\n            }\n            const envName = printRaw(node.env);\n            const envInfo = environments18[envName];\n            if (!envInfo) {\n              throw new Error(\n                `Could not find environment info for environment \"${envName}\"`\n              );\n            }\n            processEnvironment(node, envInfo);\n          }\n        },\n        { includeArrays: true }\n      );\n      mathReparser(tree);\n      visit(\n        tree,\n        {\n          enter: (nodes) => {\n            if (!Array.isArray(nodes)) {\n              return;\n            }\n            attachMacroArgsInArray(nodes, macros18);\n          },\n          leave: (node) => {\n            if (!isRelevantEnvironment(node)) {\n              return;\n            }\n            const envName = printRaw(node.env);\n            const envInfo = environments18[envName];\n            if (!envInfo) {\n              throw new Error(\n                `Could not find environment info for environment \"${envName}\"`\n              );\n            }\n            processEnvironment(node, envInfo);\n          }\n        },\n        { includeArrays: true }\n      );\n    };\n  };\n  var unifiedLatexProcessAtLetterAndExplMacros = function unifiedLatexProcessAtLetterAndExplMacros2(options) {\n    let {\n      atLetter = false,\n      expl3 = false,\n      autodetectExpl3AndAtLetter = false\n    } = options || {};\n    return (tree) => {\n      reparseExpl3AndAtLetterRegions(tree);\n      if (atLetter || expl3) {\n        autodetectExpl3AndAtLetter = false;\n      }\n      if (autodetectExpl3AndAtLetter) {\n        atLetter = hasReparsableMacroNames(tree, \"@\");\n        expl3 = hasReparsableMacroNames(tree, \"_\");\n      }\n      const charSet = /* @__PURE__ */ new Set();\n      if (atLetter) {\n        charSet.add(\"@\");\n      }\n      if (expl3) {\n        charSet.add(\":\");\n        charSet.add(\"_\");\n      }\n      if (charSet.size > 0) {\n        reparseMacroNames(tree, charSet);\n      }\n    };\n  };\n  var unifiedLatexFromString = function unifiedLatexFromString2(options) {\n    const {\n      mode = \"regular\",\n      macros: macros18 = {},\n      environments: environments18 = {},\n      flags: {\n        atLetter = false,\n        expl3 = false,\n        autodetectExpl3AndAtLetter = false\n      } = {}\n    } = options || {};\n    const allMacroInfo = Object.assign(\n      {},\n      ...Object.values(macroInfo),\n      macros18\n    );\n    const allEnvInfo = Object.assign(\n      {},\n      ...Object.values(environmentInfo),\n      environments18\n    );\n    const fullParser = unified().use(unifiedLatexFromStringMinimal, { mode }).use(unifiedLatexProcessAtLetterAndExplMacros, {\n      atLetter,\n      expl3,\n      autodetectExpl3AndAtLetter\n    }).use(unifiedLatexProcessMacrosAndEnvironmentsWithMathReparse, {\n      macros: allMacroInfo,\n      environments: allEnvInfo\n    }).use(unifiedLatexTrimEnvironmentContents).use(unifiedLatexTrimRoot).use(unifiedLatexAstComplier);\n    const parser2 = (str) => {\n      const file = fullParser.processSync({ value: str });\n      return file.result;\n    };\n    Object.assign(this, { Parser: parser2 });\n  };\n  var parser = unified().use(unifiedLatexFromString).freeze();\n  function getParser(options) {\n    return options ? unified().use(unifiedLatexFromString, options).freeze() : parser;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-to-string/index.js\n  var import_standalone = __toESM(require_standalone(), 1);\n\n  // ../node_modules/@unified-latex/unified-latex-prettier/node_modules/prettier/doc.mjs\n  var __defProp2 = Object.defineProperty;\n  var __export = (target, all) => {\n    for (var name in all)\n      __defProp2(target, name, { get: all[name], enumerable: true });\n  };\n  var public_exports = {};\n  __export(public_exports, {\n    builders: () => builders,\n    printer: () => printer,\n    utils: () => utils\n  });\n  var DOC_TYPE_STRING = \"string\";\n  var DOC_TYPE_ARRAY = \"array\";\n  var DOC_TYPE_CURSOR = \"cursor\";\n  var DOC_TYPE_INDENT = \"indent\";\n  var DOC_TYPE_ALIGN = \"align\";\n  var DOC_TYPE_TRIM = \"trim\";\n  var DOC_TYPE_GROUP = \"group\";\n  var DOC_TYPE_FILL = \"fill\";\n  var DOC_TYPE_IF_BREAK = \"if-break\";\n  var DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\n  var DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\n  var DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\n  var DOC_TYPE_LINE = \"line\";\n  var DOC_TYPE_LABEL = \"label\";\n  var DOC_TYPE_BREAK_PARENT = \"break-parent\";\n  var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n    DOC_TYPE_CURSOR,\n    DOC_TYPE_INDENT,\n    DOC_TYPE_ALIGN,\n    DOC_TYPE_TRIM,\n    DOC_TYPE_GROUP,\n    DOC_TYPE_FILL,\n    DOC_TYPE_IF_BREAK,\n    DOC_TYPE_INDENT_IF_BREAK,\n    DOC_TYPE_LINE_SUFFIX,\n    DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n    DOC_TYPE_LINE,\n    DOC_TYPE_LABEL,\n    DOC_TYPE_BREAK_PARENT\n  ]);\n  function getDocType(doc) {\n    if (typeof doc === \"string\") {\n      return DOC_TYPE_STRING;\n    }\n    if (Array.isArray(doc)) {\n      return DOC_TYPE_ARRAY;\n    }\n    if (!doc) {\n      return;\n    }\n    const { type } = doc;\n    if (VALID_OBJECT_DOC_TYPES.has(type)) {\n      return type;\n    }\n  }\n  var get_doc_type_default = getDocType;\n  var disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\n  function getDocErrorMessage(doc) {\n    const type = doc === null ? \"null\" : typeof doc;\n    if (type !== \"string\" && type !== \"object\") {\n      return `Unexpected doc '${type}', \nExpected it to be 'string' or 'object'.`;\n    }\n    if (get_doc_type_default(doc)) {\n      throw new Error(\"doc is valid.\");\n    }\n    const objectType = Object.prototype.toString.call(doc);\n    if (objectType !== \"[object Object]\") {\n      return `Unexpected doc '${objectType}'.`;\n    }\n    const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n      [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)\n    );\n    return `Unexpected doc.type '${doc.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n  }\n  var InvalidDocError = class extends Error {\n    name = \"InvalidDocError\";\n    constructor(doc) {\n      super(getDocErrorMessage(doc));\n      this.doc = doc;\n    }\n  };\n  var invalid_doc_error_default = InvalidDocError;\n  var traverseDocOnExitStackMarker = {};\n  function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n    const docsStack = [doc];\n    while (docsStack.length > 0) {\n      const doc2 = docsStack.pop();\n      if (doc2 === traverseDocOnExitStackMarker) {\n        onExit(docsStack.pop());\n        continue;\n      }\n      if (onExit) {\n        docsStack.push(doc2, traverseDocOnExitStackMarker);\n      }\n      const docType = get_doc_type_default(doc2);\n      if (!docType) {\n        throw new invalid_doc_error_default(doc2);\n      }\n      if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {\n        continue;\n      }\n      switch (docType) {\n        case DOC_TYPE_ARRAY:\n        case DOC_TYPE_FILL: {\n          const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n          for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n            docsStack.push(parts[i]);\n          }\n          break;\n        }\n        case DOC_TYPE_IF_BREAK:\n          docsStack.push(doc2.flatContents, doc2.breakContents);\n          break;\n        case DOC_TYPE_GROUP:\n          if (shouldTraverseConditionalGroups && doc2.expandedStates) {\n            for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n              docsStack.push(doc2.expandedStates[i]);\n            }\n          } else {\n            docsStack.push(doc2.contents);\n          }\n          break;\n        case DOC_TYPE_ALIGN:\n        case DOC_TYPE_INDENT:\n        case DOC_TYPE_INDENT_IF_BREAK:\n        case DOC_TYPE_LABEL:\n        case DOC_TYPE_LINE_SUFFIX:\n          docsStack.push(doc2.contents);\n          break;\n        case DOC_TYPE_STRING:\n        case DOC_TYPE_CURSOR:\n        case DOC_TYPE_TRIM:\n        case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n        case DOC_TYPE_LINE:\n        case DOC_TYPE_BREAK_PARENT:\n          break;\n        default:\n          throw new invalid_doc_error_default(doc2);\n      }\n    }\n  }\n  var traverse_doc_default = traverseDoc;\n  var noop = () => {\n  };\n  var assertDoc = true ? noop : function(doc) {\n    traverse_doc_default(doc, (doc2) => {\n      if (checked.has(doc2)) {\n        return false;\n      }\n      if (typeof doc2 !== \"string\") {\n        checked.add(doc2);\n      }\n    });\n  };\n  var assertDocArray = true ? noop : function(docs, optional = false) {\n    if (optional && !docs) {\n      return;\n    }\n    if (!Array.isArray(docs)) {\n      throw new TypeError(\"Unexpected doc array.\");\n    }\n    for (const doc of docs) {\n      assertDoc(doc);\n    }\n  };\n  function indent(contents) {\n    assertDoc(contents);\n    return { type: DOC_TYPE_INDENT, contents };\n  }\n  function align(widthOrString, contents) {\n    assertDoc(contents);\n    return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n  }\n  function group2(contents, opts = {}) {\n    assertDoc(contents);\n    assertDocArray(\n      opts.expandedStates,\n      /* optional */\n      true\n    );\n    return {\n      type: DOC_TYPE_GROUP,\n      id: opts.id,\n      contents,\n      break: Boolean(opts.shouldBreak),\n      expandedStates: opts.expandedStates\n    };\n  }\n  function dedentToRoot(contents) {\n    return align(Number.NEGATIVE_INFINITY, contents);\n  }\n  function markAsRoot(contents) {\n    return align({ type: \"root\" }, contents);\n  }\n  function dedent(contents) {\n    return align(-1, contents);\n  }\n  function conditionalGroup(states, opts) {\n    return group2(states[0], { ...opts, expandedStates: states });\n  }\n  function fill(parts) {\n    assertDocArray(parts);\n    return { type: DOC_TYPE_FILL, parts };\n  }\n  function ifBreak(breakContents, flatContents = \"\", opts = {}) {\n    assertDoc(breakContents);\n    if (flatContents !== \"\") {\n      assertDoc(flatContents);\n    }\n    return {\n      type: DOC_TYPE_IF_BREAK,\n      breakContents,\n      flatContents,\n      groupId: opts.groupId\n    };\n  }\n  function indentIfBreak(contents, opts) {\n    assertDoc(contents);\n    return {\n      type: DOC_TYPE_INDENT_IF_BREAK,\n      contents,\n      groupId: opts.groupId,\n      negate: opts.negate\n    };\n  }\n  function lineSuffix(contents) {\n    assertDoc(contents);\n    return { type: DOC_TYPE_LINE_SUFFIX, contents };\n  }\n  var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\n  var breakParent = { type: DOC_TYPE_BREAK_PARENT };\n  var trim2 = { type: DOC_TYPE_TRIM };\n  var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\n  var literallineWithoutBreakParent = {\n    type: DOC_TYPE_LINE,\n    hard: true,\n    literal: true\n  };\n  var line = { type: DOC_TYPE_LINE };\n  var softline = { type: DOC_TYPE_LINE, soft: true };\n  var hardline = [hardlineWithoutBreakParent, breakParent];\n  var literalline = [literallineWithoutBreakParent, breakParent];\n  var cursor = { type: DOC_TYPE_CURSOR };\n  function join2(separator, docs) {\n    assertDoc(separator);\n    assertDocArray(docs);\n    const parts = [];\n    for (let i = 0; i < docs.length; i++) {\n      if (i !== 0) {\n        parts.push(separator);\n      }\n      parts.push(docs[i]);\n    }\n    return parts;\n  }\n  function addAlignmentToDoc(doc, size, tabWidth) {\n    assertDoc(doc);\n    let aligned = doc;\n    if (size > 0) {\n      for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n        aligned = indent(aligned);\n      }\n      aligned = align(size % tabWidth, aligned);\n      aligned = align(Number.NEGATIVE_INFINITY, aligned);\n    }\n    return aligned;\n  }\n  function label(label2, contents) {\n    assertDoc(contents);\n    return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n  }\n  var at = (isOptionalObject, object, index2) => {\n    if (isOptionalObject && (object === void 0 || object === null)) {\n      return;\n    }\n    if (Array.isArray(object) || typeof object === \"string\") {\n      return object[index2 < 0 ? object.length + index2 : index2];\n    }\n    return object.at(index2);\n  };\n  var at_default = at;\n  var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n    if (isOptionalObject && (original === void 0 || original === null)) {\n      return;\n    }\n    if (original.replaceAll) {\n      return original.replaceAll(pattern, replacement);\n    }\n    if (pattern.global) {\n      return original.replace(pattern, replacement);\n    }\n    return original.split(pattern).join(replacement);\n  };\n  var string_replace_all_default = stringReplaceAll;\n  function convertEndOfLineToChars(value) {\n    switch (value) {\n      case \"cr\":\n        return \"\\r\";\n      case \"crlf\":\n        return \"\\r\\n\";\n      default:\n        return \"\\n\";\n    }\n  }\n  var emoji_regex_default = () => {\n    return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n  };\n  function isFullWidth(x) {\n    return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n  }\n  function isWide(x) {\n    return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 19968 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101632 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129672 || x >= 129680 && x <= 129725 || x >= 129727 && x <= 129733 || x >= 129742 && x <= 129755 || x >= 129760 && x <= 129768 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n  }\n  var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n  var notAsciiRegex = /[^\\x20-\\x7F]/u;\n  function getStringWidth(text) {\n    if (!text) {\n      return 0;\n    }\n    if (!notAsciiRegex.test(text)) {\n      return text.length;\n    }\n    text = text.replace(emoji_regex_default(), \"  \");\n    let width = 0;\n    for (const character of text) {\n      const codePoint = character.codePointAt(0);\n      if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n        continue;\n      }\n      if (codePoint >= 768 && codePoint <= 879) {\n        continue;\n      }\n      width += _isNarrowWidth(codePoint) ? 1 : 2;\n    }\n    return width;\n  }\n  var get_string_width_default = getStringWidth;\n  function mapDoc(doc, cb) {\n    if (typeof doc === \"string\") {\n      return cb(doc);\n    }\n    const mapped = /* @__PURE__ */ new Map();\n    return rec(doc);\n    function rec(doc2) {\n      if (mapped.has(doc2)) {\n        return mapped.get(doc2);\n      }\n      const result = process2(doc2);\n      mapped.set(doc2, result);\n      return result;\n    }\n    function process2(doc2) {\n      switch (get_doc_type_default(doc2)) {\n        case DOC_TYPE_ARRAY:\n          return cb(doc2.map(rec));\n        case DOC_TYPE_FILL:\n          return cb({\n            ...doc2,\n            parts: doc2.parts.map(rec)\n          });\n        case DOC_TYPE_IF_BREAK:\n          return cb({\n            ...doc2,\n            breakContents: rec(doc2.breakContents),\n            flatContents: rec(doc2.flatContents)\n          });\n        case DOC_TYPE_GROUP: {\n          let {\n            expandedStates,\n            contents\n          } = doc2;\n          if (expandedStates) {\n            expandedStates = expandedStates.map(rec);\n            contents = expandedStates[0];\n          } else {\n            contents = rec(contents);\n          }\n          return cb({\n            ...doc2,\n            contents,\n            expandedStates\n          });\n        }\n        case DOC_TYPE_ALIGN:\n        case DOC_TYPE_INDENT:\n        case DOC_TYPE_INDENT_IF_BREAK:\n        case DOC_TYPE_LABEL:\n        case DOC_TYPE_LINE_SUFFIX:\n          return cb({\n            ...doc2,\n            contents: rec(doc2.contents)\n          });\n        case DOC_TYPE_STRING:\n        case DOC_TYPE_CURSOR:\n        case DOC_TYPE_TRIM:\n        case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n        case DOC_TYPE_LINE:\n        case DOC_TYPE_BREAK_PARENT:\n          return cb(doc2);\n        default:\n          throw new invalid_doc_error_default(doc2);\n      }\n    }\n  }\n  function findInDoc(doc, fn, defaultValue) {\n    let result = defaultValue;\n    let shouldSkipFurtherProcessing = false;\n    function findInDocOnEnterFn(doc2) {\n      if (shouldSkipFurtherProcessing) {\n        return false;\n      }\n      const maybeResult = fn(doc2);\n      if (maybeResult !== void 0) {\n        shouldSkipFurtherProcessing = true;\n        result = maybeResult;\n      }\n    }\n    traverse_doc_default(doc, findInDocOnEnterFn);\n    return result;\n  }\n  function willBreakFn(doc) {\n    if (doc.type === DOC_TYPE_GROUP && doc.break) {\n      return true;\n    }\n    if (doc.type === DOC_TYPE_LINE && doc.hard) {\n      return true;\n    }\n    if (doc.type === DOC_TYPE_BREAK_PARENT) {\n      return true;\n    }\n  }\n  function willBreak(doc) {\n    return findInDoc(doc, willBreakFn, false);\n  }\n  function breakParentGroup(groupStack) {\n    if (groupStack.length > 0) {\n      const parentGroup = at_default(\n        /* isOptionalObject */\n        false,\n        groupStack,\n        -1\n      );\n      if (!parentGroup.expandedStates && !parentGroup.break) {\n        parentGroup.break = \"propagated\";\n      }\n    }\n    return null;\n  }\n  function propagateBreaks(doc) {\n    const alreadyVisitedSet = /* @__PURE__ */ new Set();\n    const groupStack = [];\n    function propagateBreaksOnEnterFn(doc2) {\n      if (doc2.type === DOC_TYPE_BREAK_PARENT) {\n        breakParentGroup(groupStack);\n      }\n      if (doc2.type === DOC_TYPE_GROUP) {\n        groupStack.push(doc2);\n        if (alreadyVisitedSet.has(doc2)) {\n          return false;\n        }\n        alreadyVisitedSet.add(doc2);\n      }\n    }\n    function propagateBreaksOnExitFn(doc2) {\n      if (doc2.type === DOC_TYPE_GROUP) {\n        const group22 = groupStack.pop();\n        if (group22.break) {\n          breakParentGroup(groupStack);\n        }\n      }\n    }\n    traverse_doc_default(\n      doc,\n      propagateBreaksOnEnterFn,\n      propagateBreaksOnExitFn,\n      /* shouldTraverseConditionalGroups */\n      true\n    );\n  }\n  function removeLinesFn(doc) {\n    if (doc.type === DOC_TYPE_LINE && !doc.hard) {\n      return doc.soft ? \"\" : \" \";\n    }\n    if (doc.type === DOC_TYPE_IF_BREAK) {\n      return doc.flatContents;\n    }\n    return doc;\n  }\n  function removeLines(doc) {\n    return mapDoc(doc, removeLinesFn);\n  }\n  function stripTrailingHardlineFromParts(parts) {\n    parts = [...parts];\n    while (parts.length >= 2 && at_default(\n      /* isOptionalObject */\n      false,\n      parts,\n      -2\n    ).type === DOC_TYPE_LINE && at_default(\n      /* isOptionalObject */\n      false,\n      parts,\n      -1\n    ).type === DOC_TYPE_BREAK_PARENT) {\n      parts.length -= 2;\n    }\n    if (parts.length > 0) {\n      const lastPart = stripTrailingHardlineFromDoc(at_default(\n        /* isOptionalObject */\n        false,\n        parts,\n        -1\n      ));\n      parts[parts.length - 1] = lastPart;\n    }\n    return parts;\n  }\n  function stripTrailingHardlineFromDoc(doc) {\n    switch (get_doc_type_default(doc)) {\n      case DOC_TYPE_INDENT:\n      case DOC_TYPE_INDENT_IF_BREAK:\n      case DOC_TYPE_GROUP:\n      case DOC_TYPE_LINE_SUFFIX:\n      case DOC_TYPE_LABEL: {\n        const contents = stripTrailingHardlineFromDoc(doc.contents);\n        return {\n          ...doc,\n          contents\n        };\n      }\n      case DOC_TYPE_IF_BREAK:\n        return {\n          ...doc,\n          breakContents: stripTrailingHardlineFromDoc(doc.breakContents),\n          flatContents: stripTrailingHardlineFromDoc(doc.flatContents)\n        };\n      case DOC_TYPE_FILL:\n        return {\n          ...doc,\n          parts: stripTrailingHardlineFromParts(doc.parts)\n        };\n      case DOC_TYPE_ARRAY:\n        return stripTrailingHardlineFromParts(doc);\n      case DOC_TYPE_STRING:\n        return doc.replace(/[\\n\\r]*$/u, \"\");\n      case DOC_TYPE_ALIGN:\n      case DOC_TYPE_CURSOR:\n      case DOC_TYPE_TRIM:\n      case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n      case DOC_TYPE_LINE:\n      case DOC_TYPE_BREAK_PARENT:\n        break;\n      default:\n        throw new invalid_doc_error_default(doc);\n    }\n    return doc;\n  }\n  function stripTrailingHardline(doc) {\n    return stripTrailingHardlineFromDoc(cleanDoc(doc));\n  }\n  function cleanDocFn(doc) {\n    switch (get_doc_type_default(doc)) {\n      case DOC_TYPE_FILL:\n        if (doc.parts.every((part) => part === \"\")) {\n          return \"\";\n        }\n        break;\n      case DOC_TYPE_GROUP:\n        if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n          return \"\";\n        }\n        if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n          return doc.contents;\n        }\n        break;\n      case DOC_TYPE_ALIGN:\n      case DOC_TYPE_INDENT:\n      case DOC_TYPE_INDENT_IF_BREAK:\n      case DOC_TYPE_LINE_SUFFIX:\n        if (!doc.contents) {\n          return \"\";\n        }\n        break;\n      case DOC_TYPE_IF_BREAK:\n        if (!doc.flatContents && !doc.breakContents) {\n          return \"\";\n        }\n        break;\n      case DOC_TYPE_ARRAY: {\n        const parts = [];\n        for (const part of doc) {\n          if (!part) {\n            continue;\n          }\n          const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n          if (typeof currentPart === \"string\" && typeof at_default(\n            /* isOptionalObject */\n            false,\n            parts,\n            -1\n          ) === \"string\") {\n            parts[parts.length - 1] += currentPart;\n          } else {\n            parts.push(currentPart);\n          }\n          parts.push(...restParts);\n        }\n        if (parts.length === 0) {\n          return \"\";\n        }\n        if (parts.length === 1) {\n          return parts[0];\n        }\n        return parts;\n      }\n      case DOC_TYPE_STRING:\n      case DOC_TYPE_CURSOR:\n      case DOC_TYPE_TRIM:\n      case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n      case DOC_TYPE_LINE:\n      case DOC_TYPE_LABEL:\n      case DOC_TYPE_BREAK_PARENT:\n        break;\n      default:\n        throw new invalid_doc_error_default(doc);\n    }\n    return doc;\n  }\n  function cleanDoc(doc) {\n    return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n  }\n  function replaceEndOfLine(doc, replacement = literalline) {\n    return mapDoc(doc, (currentDoc) => typeof currentDoc === \"string\" ? join2(replacement, currentDoc.split(\"\\n\")) : currentDoc);\n  }\n  function canBreakFn(doc) {\n    if (doc.type === DOC_TYPE_LINE) {\n      return true;\n    }\n  }\n  function canBreak(doc) {\n    return findInDoc(doc, canBreakFn, false);\n  }\n  var MODE_BREAK = Symbol(\"MODE_BREAK\");\n  var MODE_FLAT = Symbol(\"MODE_FLAT\");\n  var CURSOR_PLACEHOLDER = Symbol(\"cursor\");\n  function rootIndent() {\n    return {\n      value: \"\",\n      length: 0,\n      queue: []\n    };\n  }\n  function makeIndent(ind, options) {\n    return generateInd(ind, {\n      type: \"indent\"\n    }, options);\n  }\n  function makeAlign(indent22, widthOrDoc, options) {\n    if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n      return indent22.root || rootIndent();\n    }\n    if (widthOrDoc < 0) {\n      return generateInd(indent22, {\n        type: \"dedent\"\n      }, options);\n    }\n    if (!widthOrDoc) {\n      return indent22;\n    }\n    if (widthOrDoc.type === \"root\") {\n      return {\n        ...indent22,\n        root: indent22\n      };\n    }\n    const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n    return generateInd(indent22, {\n      type: alignType,\n      n: widthOrDoc\n    }, options);\n  }\n  function generateInd(ind, newPart, options) {\n    const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n    let value = \"\";\n    let length = 0;\n    let lastTabs = 0;\n    let lastSpaces = 0;\n    for (const part of queue) {\n      switch (part.type) {\n        case \"indent\":\n          flush();\n          if (options.useTabs) {\n            addTabs(1);\n          } else {\n            addSpaces(options.tabWidth);\n          }\n          break;\n        case \"stringAlign\":\n          flush();\n          value += part.n;\n          length += part.n.length;\n          break;\n        case \"numberAlign\":\n          lastTabs += 1;\n          lastSpaces += part.n;\n          break;\n        default:\n          throw new Error(`Unexpected type '${part.type}'`);\n      }\n    }\n    flushSpaces();\n    return {\n      ...ind,\n      value,\n      length,\n      queue\n    };\n    function addTabs(count) {\n      value += \"\t\".repeat(count);\n      length += options.tabWidth * count;\n    }\n    function addSpaces(count) {\n      value += \" \".repeat(count);\n      length += count;\n    }\n    function flush() {\n      if (options.useTabs) {\n        flushTabs();\n      } else {\n        flushSpaces();\n      }\n    }\n    function flushTabs() {\n      if (lastTabs > 0) {\n        addTabs(lastTabs);\n      }\n      resetLast();\n    }\n    function flushSpaces() {\n      if (lastSpaces > 0) {\n        addSpaces(lastSpaces);\n      }\n      resetLast();\n    }\n    function resetLast() {\n      lastTabs = 0;\n      lastSpaces = 0;\n    }\n  }\n  function trim22(out) {\n    let trimCount = 0;\n    let cursorCount = 0;\n    let outIndex = out.length;\n    outer: while (outIndex--) {\n      const last = out[outIndex];\n      if (last === CURSOR_PLACEHOLDER) {\n        cursorCount++;\n        continue;\n      }\n      if (false) {\n        throw new Error(`Unexpected value in trim: '${typeof last}'`);\n      }\n      for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n        const char = last[charIndex];\n        if (char === \" \" || char === \"\t\") {\n          trimCount++;\n        } else {\n          out[outIndex] = last.slice(0, charIndex + 1);\n          break outer;\n        }\n      }\n    }\n    if (trimCount > 0 || cursorCount > 0) {\n      out.length = outIndex + 1;\n      while (cursorCount-- > 0) {\n        out.push(CURSOR_PLACEHOLDER);\n      }\n    }\n    return trimCount;\n  }\n  function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n    if (width === Number.POSITIVE_INFINITY) {\n      return true;\n    }\n    let restIdx = restCommands.length;\n    const cmds = [next];\n    const out = [];\n    while (width >= 0) {\n      if (cmds.length === 0) {\n        if (restIdx === 0) {\n          return true;\n        }\n        cmds.push(restCommands[--restIdx]);\n        continue;\n      }\n      const {\n        mode,\n        doc\n      } = cmds.pop();\n      const docType = get_doc_type_default(doc);\n      switch (docType) {\n        case DOC_TYPE_STRING:\n          out.push(doc);\n          width -= get_string_width_default(doc);\n          break;\n        case DOC_TYPE_ARRAY:\n        case DOC_TYPE_FILL: {\n          const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;\n          for (let i = parts.length - 1; i >= 0; i--) {\n            cmds.push({\n              mode,\n              doc: parts[i]\n            });\n          }\n          break;\n        }\n        case DOC_TYPE_INDENT:\n        case DOC_TYPE_ALIGN:\n        case DOC_TYPE_INDENT_IF_BREAK:\n        case DOC_TYPE_LABEL:\n          cmds.push({\n            mode,\n            doc: doc.contents\n          });\n          break;\n        case DOC_TYPE_TRIM:\n          width += trim22(out);\n          break;\n        case DOC_TYPE_GROUP: {\n          if (mustBeFlat && doc.break) {\n            return false;\n          }\n          const groupMode = doc.break ? MODE_BREAK : mode;\n          const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(\n            /* isOptionalObject */\n            false,\n            doc.expandedStates,\n            -1\n          ) : doc.contents;\n          cmds.push({\n            mode: groupMode,\n            doc: contents\n          });\n          break;\n        }\n        case DOC_TYPE_IF_BREAK: {\n          const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;\n          const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;\n          if (contents) {\n            cmds.push({\n              mode,\n              doc: contents\n            });\n          }\n          break;\n        }\n        case DOC_TYPE_LINE:\n          if (mode === MODE_BREAK || doc.hard) {\n            return true;\n          }\n          if (!doc.soft) {\n            out.push(\" \");\n            width--;\n          }\n          break;\n        case DOC_TYPE_LINE_SUFFIX:\n          hasLineSuffix = true;\n          break;\n        case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n          if (hasLineSuffix) {\n            return false;\n          }\n          break;\n      }\n    }\n    return false;\n  }\n  function printDocToString(doc, options) {\n    const groupModeMap = {};\n    const width = options.printWidth;\n    const newLine = convertEndOfLineToChars(options.endOfLine);\n    let pos = 0;\n    const cmds = [{\n      ind: rootIndent(),\n      mode: MODE_BREAK,\n      doc\n    }];\n    const out = [];\n    let shouldRemeasure = false;\n    const lineSuffix22 = [];\n    let printedCursorCount = 0;\n    propagateBreaks(doc);\n    while (cmds.length > 0) {\n      const {\n        ind,\n        mode,\n        doc: doc2\n      } = cmds.pop();\n      switch (get_doc_type_default(doc2)) {\n        case DOC_TYPE_STRING: {\n          const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n            /* isOptionalObject */\n            false,\n            doc2,\n            \"\\n\",\n            newLine\n          ) : doc2;\n          out.push(formatted);\n          if (cmds.length > 0) {\n            pos += get_string_width_default(formatted);\n          }\n          break;\n        }\n        case DOC_TYPE_ARRAY:\n          for (let i = doc2.length - 1; i >= 0; i--) {\n            cmds.push({\n              ind,\n              mode,\n              doc: doc2[i]\n            });\n          }\n          break;\n        case DOC_TYPE_CURSOR:\n          if (printedCursorCount >= 2) {\n            throw new Error(\"There are too many 'cursor' in doc.\");\n          }\n          out.push(CURSOR_PLACEHOLDER);\n          printedCursorCount++;\n          break;\n        case DOC_TYPE_INDENT:\n          cmds.push({\n            ind: makeIndent(ind, options),\n            mode,\n            doc: doc2.contents\n          });\n          break;\n        case DOC_TYPE_ALIGN:\n          cmds.push({\n            ind: makeAlign(ind, doc2.n, options),\n            mode,\n            doc: doc2.contents\n          });\n          break;\n        case DOC_TYPE_TRIM:\n          pos -= trim22(out);\n          break;\n        case DOC_TYPE_GROUP:\n          switch (mode) {\n            case MODE_FLAT:\n              if (!shouldRemeasure) {\n                cmds.push({\n                  ind,\n                  mode: doc2.break ? MODE_BREAK : MODE_FLAT,\n                  doc: doc2.contents\n                });\n                break;\n              }\n            case MODE_BREAK: {\n              shouldRemeasure = false;\n              const next = {\n                ind,\n                mode: MODE_FLAT,\n                doc: doc2.contents\n              };\n              const rem = width - pos;\n              const hasLineSuffix = lineSuffix22.length > 0;\n              if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n                cmds.push(next);\n              } else {\n                if (doc2.expandedStates) {\n                  const mostExpanded = at_default(\n                    /* isOptionalObject */\n                    false,\n                    doc2.expandedStates,\n                    -1\n                  );\n                  if (doc2.break) {\n                    cmds.push({\n                      ind,\n                      mode: MODE_BREAK,\n                      doc: mostExpanded\n                    });\n                    break;\n                  } else {\n                    for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n                      if (i >= doc2.expandedStates.length) {\n                        cmds.push({\n                          ind,\n                          mode: MODE_BREAK,\n                          doc: mostExpanded\n                        });\n                        break;\n                      } else {\n                        const state = doc2.expandedStates[i];\n                        const cmd = {\n                          ind,\n                          mode: MODE_FLAT,\n                          doc: state\n                        };\n                        if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n                          cmds.push(cmd);\n                          break;\n                        }\n                      }\n                    }\n                  }\n                } else {\n                  cmds.push({\n                    ind,\n                    mode: MODE_BREAK,\n                    doc: doc2.contents\n                  });\n                }\n              }\n              break;\n            }\n          }\n          if (doc2.id) {\n            groupModeMap[doc2.id] = at_default(\n              /* isOptionalObject */\n              false,\n              cmds,\n              -1\n            ).mode;\n          }\n          break;\n        case DOC_TYPE_FILL: {\n          const rem = width - pos;\n          const {\n            parts\n          } = doc2;\n          if (parts.length === 0) {\n            break;\n          }\n          const [content, whitespace2] = parts;\n          const contentFlatCmd = {\n            ind,\n            mode: MODE_FLAT,\n            doc: content\n          };\n          const contentBreakCmd = {\n            ind,\n            mode: MODE_BREAK,\n            doc: content\n          };\n          const contentFits = fits(contentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true);\n          if (parts.length === 1) {\n            if (contentFits) {\n              cmds.push(contentFlatCmd);\n            } else {\n              cmds.push(contentBreakCmd);\n            }\n            break;\n          }\n          const whitespaceFlatCmd = {\n            ind,\n            mode: MODE_FLAT,\n            doc: whitespace2\n          };\n          const whitespaceBreakCmd = {\n            ind,\n            mode: MODE_BREAK,\n            doc: whitespace2\n          };\n          if (parts.length === 2) {\n            if (contentFits) {\n              cmds.push(whitespaceFlatCmd, contentFlatCmd);\n            } else {\n              cmds.push(whitespaceBreakCmd, contentBreakCmd);\n            }\n            break;\n          }\n          parts.splice(0, 2);\n          const remainingCmd = {\n            ind,\n            mode,\n            doc: fill(parts)\n          };\n          const secondContent = parts[0];\n          const firstAndSecondContentFlatCmd = {\n            ind,\n            mode: MODE_FLAT,\n            doc: [content, whitespace2, secondContent]\n          };\n          const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true);\n          if (firstAndSecondContentFits) {\n            cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n          } else if (contentFits) {\n            cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n          } else {\n            cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n          }\n          break;\n        }\n        case DOC_TYPE_IF_BREAK:\n        case DOC_TYPE_INDENT_IF_BREAK: {\n          const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n          if (groupMode === MODE_BREAK) {\n            const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n            if (breakContents) {\n              cmds.push({\n                ind,\n                mode,\n                doc: breakContents\n              });\n            }\n          }\n          if (groupMode === MODE_FLAT) {\n            const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n            if (flatContents) {\n              cmds.push({\n                ind,\n                mode,\n                doc: flatContents\n              });\n            }\n          }\n          break;\n        }\n        case DOC_TYPE_LINE_SUFFIX:\n          lineSuffix22.push({\n            ind,\n            mode,\n            doc: doc2.contents\n          });\n          break;\n        case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n          if (lineSuffix22.length > 0) {\n            cmds.push({\n              ind,\n              mode,\n              doc: hardlineWithoutBreakParent\n            });\n          }\n          break;\n        case DOC_TYPE_LINE:\n          switch (mode) {\n            case MODE_FLAT:\n              if (!doc2.hard) {\n                if (!doc2.soft) {\n                  out.push(\" \");\n                  pos += 1;\n                }\n                break;\n              } else {\n                shouldRemeasure = true;\n              }\n            case MODE_BREAK:\n              if (lineSuffix22.length > 0) {\n                cmds.push({\n                  ind,\n                  mode,\n                  doc: doc2\n                }, ...lineSuffix22.reverse());\n                lineSuffix22.length = 0;\n                break;\n              }\n              if (doc2.literal) {\n                if (ind.root) {\n                  out.push(newLine, ind.root.value);\n                  pos = ind.root.length;\n                } else {\n                  out.push(newLine);\n                  pos = 0;\n                }\n              } else {\n                pos -= trim22(out);\n                out.push(newLine + ind.value);\n                pos = ind.length;\n              }\n              break;\n          }\n          break;\n        case DOC_TYPE_LABEL:\n          cmds.push({\n            ind,\n            mode,\n            doc: doc2.contents\n          });\n          break;\n        case DOC_TYPE_BREAK_PARENT:\n          break;\n        default:\n          throw new invalid_doc_error_default(doc2);\n      }\n      if (cmds.length === 0 && lineSuffix22.length > 0) {\n        cmds.push(...lineSuffix22.reverse());\n        lineSuffix22.length = 0;\n      }\n    }\n    const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n    if (cursorPlaceholderIndex !== -1) {\n      const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);\n      const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n      const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n      const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n      return {\n        formatted: beforeCursor + aroundCursor + afterCursor,\n        cursorNodeStart: beforeCursor.length,\n        cursorNodeText: aroundCursor\n      };\n    }\n    return {\n      formatted: out.join(\"\")\n    };\n  }\n  var builders = {\n    join: join2,\n    line,\n    softline,\n    hardline,\n    literalline,\n    group: group2,\n    conditionalGroup,\n    fill,\n    lineSuffix,\n    lineSuffixBoundary,\n    cursor,\n    breakParent,\n    ifBreak,\n    trim: trim2,\n    indent,\n    indentIfBreak,\n    align,\n    addAlignmentToDoc,\n    markAsRoot,\n    dedentToRoot,\n    dedent,\n    hardlineWithoutBreakParent,\n    literallineWithoutBreakParent,\n    label,\n    // TODO: Remove this in v4\n    concat: (parts) => parts\n  };\n  var printer = { printDocToString };\n  var utils = {\n    willBreak,\n    traverseDoc: traverse_doc_default,\n    findInDoc,\n    mapDoc,\n    removeLines,\n    stripTrailingHardline,\n    replaceEndOfLine,\n    canBreak\n  };\n\n  // ../node_modules/@unified-latex/unified-latex-util-pgfkeys/index.js\n  function createMatchers3() {\n    return {\n      isChar: (node, char) => match.string(node, char),\n      isComma: (node) => match.string(node, \",\"),\n      isEquals: (node) => match.string(node, \"=\"),\n      isWhitespace: (node) => match.whitespace(node),\n      isParbreak: (node) => match.parbreak(node),\n      isSameLineComment: (node) => match.comment(node) && node.sameline,\n      isOwnLineComment: (node) => match.comment(node) && !node.sameline\n    };\n  }\n  function parsePgfkeys(ast, options) {\n    if (!Array.isArray(ast)) {\n      throw new Error(\"You must pass an array of nodes\");\n    }\n    const { allowParenGroups = false } = options || {};\n    ast = decorateArrayForPegjs([...ast]);\n    return PgfkeysPegParser.parse(ast, {\n      ...createMatchers3(),\n      allowParenGroups\n    });\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-align/index.js\n  function createMatchers4(rowSepMacros, colSep) {\n    const isRowSep = match.createMacroMatcher(rowSepMacros);\n    return {\n      isRowSep,\n      isColSep: (node) => colSep.some((sep) => match.string(node, sep)),\n      isWhitespace: (node) => match.whitespace(node),\n      isSameLineComment: (node) => match.comment(node) && node.sameline,\n      isOwnLineComment: (node) => match.comment(node) && !node.sameline\n    };\n  }\n  function parseAlignEnvironment(ast, colSep = [\"&\"], rowSepMacros = [\"\\\\\", \"hline\", \"cr\"]) {\n    if (!Array.isArray(ast)) {\n      throw new Error(\"You must pass an array of nodes\");\n    }\n    ast = decorateArrayForPegjs([...ast]);\n    return AlignEnvironmentPegParser.parse(\n      ast,\n      createMatchers4(rowSepMacros, colSep)\n    );\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-prettier/index.js\n  var __typeError = (msg) => {\n    throw TypeError(msg);\n  };\n  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\n  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\n  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\n  var _path;\n  var _print;\n  function formatEnvSurround(node) {\n    const env = printRaw(node.env);\n    return {\n      envName: env,\n      start: ESCAPE2 + \"begin{\" + env + \"}\",\n      end: ESCAPE2 + \"end{\" + env + \"}\"\n    };\n  }\n  function isLineType(elm) {\n    if (elm == null || typeof elm === \"string\") {\n      return false;\n    }\n    if (Array.isArray(elm)) {\n      return isLineType(elm[0]);\n    }\n    if (elm.type === \"concat\") {\n      return isLineType(elm.parts);\n    }\n    return elm.type === \"line\";\n  }\n  function joinWithSoftline(arr) {\n    if (arr.length === 0 || arr.length === 1) {\n      return arr;\n    }\n    const ret = [arr[0]];\n    for (let i = 1; i < arr.length; i++) {\n      const prevNode = arr[i - 1];\n      const nextNode = arr[i];\n      if (!isLineType(prevNode) && !isLineType(nextNode)) {\n        ret.push(softline2);\n      }\n      ret.push(nextNode);\n    }\n    return ret;\n  }\n  function getNodeInfo(node, options) {\n    if (!node) {\n      return { renderInfo: {} };\n    }\n    const renderInfo = node._renderInfo || {};\n    const previousNode = options.referenceMap && options.referenceMap.getPreviousNode(node);\n    const nextNode = options.referenceMap && options.referenceMap.getNextNode(node);\n    const renderCache = options.referenceMap && options.referenceMap.getRenderCache(node);\n    return {\n      renderInfo,\n      renderCache,\n      previousNode,\n      nextNode,\n      referenceMap: options.referenceMap\n    };\n  }\n  var ESCAPE2 = \"\\\\\";\n  var {\n    group: group3,\n    fill: fill2,\n    ifBreak: ifBreak2,\n    line: line2,\n    softline: softline2,\n    hardline: hardline2,\n    lineSuffix: lineSuffix2,\n    lineSuffixBoundary: lineSuffixBoundary2,\n    breakParent: breakParent2,\n    indent: indent2,\n    markAsRoot: markAsRoot2,\n    join: join3\n  } = builders;\n  function formatDocArray(nodes, docArray, options) {\n    const ret = [];\n    for (let i = 0; i < nodes.length; i++) {\n      const rawNode = nodes[i];\n      const printedNode = docArray[i];\n      const { renderInfo, referenceMap, previousNode, nextNode } = getNodeInfo(rawNode, options);\n      const renderCache = referenceMap && referenceMap.getRenderCache(rawNode);\n      switch (rawNode.type) {\n        case \"comment\":\n          if (!rawNode.sameline && previousNode && !match.comment(previousNode) && !match.parbreak(previousNode)) {\n            ret.push(hardline2);\n          }\n          ret.push(printedNode);\n          if (nextNode && !rawNode.suffixParbreak) {\n            ret.push(hardline2);\n          }\n          break;\n        case \"environment\":\n        case \"displaymath\":\n        case \"mathenv\":\n          if (previousNode && (previousNode == null ? void 0 : previousNode.type) !== \"parbreak\") {\n            if (ret[ret.length - 1] === line2) {\n              ret.pop();\n            }\n            if (ret[ret.length - 1] !== hardline2) {\n              ret.push(hardline2);\n            }\n          }\n          ret.push(printedNode);\n          if ((nextNode == null ? void 0 : nextNode.type) === \"whitespace\") {\n            ret.push(hardline2);\n            i++;\n          }\n          break;\n        case \"macro\":\n          if (renderInfo.breakBefore || renderInfo.breakAround) {\n            if (previousNode) {\n              if (ret[ret.length - 1] === line2 || ret[ret.length - 1] === hardline2) {\n                ret.pop();\n                ret.push(hardline2);\n              } else if (!match.comment(previousNode) && !match.parbreak(previousNode)) {\n                ret.push(hardline2);\n              }\n            }\n          }\n          if (renderInfo.inParMode && !renderInfo.hangingIndent && renderCache) {\n            ret.push(\n              renderCache.content,\n              ...renderCache.rawArgs || []\n            );\n          } else {\n            ret.push(printedNode);\n          }\n          if (renderInfo.breakAfter || renderInfo.breakAround) {\n            if (nextNode) {\n              if (match.whitespace(nextNode)) {\n                ret.push(hardline2);\n                i++;\n              } else if (match.parbreak(nextNode)) ;\n              else if (!match.comment(nextNode)) {\n                ret.push(hardline2);\n              }\n            }\n          }\n          break;\n        case \"parbreak\":\n          ret.push(hardline2, hardline2);\n          break;\n        default:\n          ret.push(printedNode);\n          break;\n      }\n    }\n    return ret;\n  }\n  function zip(array1, array2) {\n    const ret = [];\n    const len = Math.min(array1.length, array2.length);\n    for (let i = 0; i < len; i++) {\n      ret.push([array1[i], array2[i]]);\n    }\n    return ret;\n  }\n  function printMacro(path2, print, options) {\n    const node = path2.getNode();\n    const { renderInfo, previousNode, nextNode, referenceMap } = getNodeInfo(\n      node,\n      options\n    );\n    const content = (node.escapeToken != null ? node.escapeToken : ESCAPE2) + node.content;\n    const args = node.args ? path2.map(print, \"args\") : [];\n    const rawArgs = [];\n    for (const [arg2, printedArg] of zip(node.args || [], args)) {\n      const renderCache = referenceMap && referenceMap.getRenderCache(arg2);\n      if (renderInfo.inParMode && renderCache) {\n        rawArgs.push(...renderCache);\n      } else {\n        rawArgs.push(printedArg);\n      }\n    }\n    if (referenceMap) {\n      referenceMap.setRenderCache(node, { rawArgs, content });\n    }\n    if (renderInfo.hangingIndent) {\n      return indent2(fill2([content, ...rawArgs]));\n    }\n    return group3([content, ...rawArgs]);\n  }\n  function printArgumentPgfkeys(nodes, options) {\n    const { allowParenGroups = false } = options;\n    const parsed = parsePgfkeys(nodes, { allowParenGroups });\n    const content = [];\n    for (const part of parsed) {\n      const isLastItem = part === parsed[parsed.length - 1];\n      if (part.itemParts) {\n        const parts = part.itemParts.map(\n          (node) => printRaw(node, { asArray: true }).map(\n            (token) => token === linebreak ? hardline2 : token\n          )\n        );\n        const row = join3(\"=\", parts);\n        content.push(row);\n        if (part.trailingComma) {\n          content.push(\",\");\n        }\n      }\n      if (part.trailingComment) {\n        const leadingContent = part.itemParts ? [\" \"] : [];\n        if (part.leadingParbreak) {\n          leadingContent.push(hardline2);\n        }\n        content.push(\n          ...leadingContent,\n          // We're carefully and manually controlling the newlines,\n          // so print the comment directly without any newlines\n          \"%\",\n          part.trailingComment.content,\n          breakParent2\n        );\n      }\n      if (!isLastItem) {\n        content.push(line2);\n      }\n    }\n    let leadingComment = [\"\"];\n    if (options.leadingComment) {\n      if (options.leadingComment.leadingWhitespace) {\n        leadingComment.push(\" \");\n      }\n      leadingComment.push(\"%\" + options.leadingComment.content, breakParent2);\n    }\n    return group3([\n      options.openMark,\n      ...leadingComment,\n      // If there is no content, we don't want to push an extra `softline`.\n      // This matters because the braces group could still be broken by `leadingComment`\n      content.length > 0 ? indent2([softline2, ...content]) : \"\",\n      softline2,\n      options.closeMark\n    ]);\n  }\n  function printTikzArgument(path2, print, options) {\n    const node = path2.getNode();\n    getNodeInfo(\n      node,\n      options\n    );\n    const content = [];\n    const nodes = [...node.content];\n    trim(nodes);\n    try {\n      const tikzAst = parse2(nodes);\n      if (tikzAst.content.length === 0) {\n        content.push(\";\");\n        return content;\n      }\n      const printer2 = new TikzArgumentPrinter(tikzAst, path2, print);\n      return printer2.toDoc();\n    } catch (e) {\n      console.warn(\"Encountered error when trying to parse tikz argument\", e);\n    }\n    content.push(\";\");\n    return content;\n  }\n  function printFragment(fragment, path2, print) {\n    const tmpKey = Symbol();\n    const currNode = path2.getNode();\n    if (!currNode) {\n      throw new Error(\n        \"tried to print a fragment, but the current node is `null`\"\n      );\n    }\n    currNode[tmpKey] = fragment;\n    const ret = print(tmpKey);\n    delete currNode[tmpKey];\n    return ret;\n  }\n  function printTikzPathSpecNode(node, path2, print) {\n    switch (node.type) {\n      case \"comment\":\n        return printFragment(node, path2, print);\n      case \"unknown\":\n        return printFragment(node.content, path2, print);\n      case \"coordinate\":\n        return [printRaw(node.prefix), \"(\", printRaw(node.content), \")\"];\n      case \"line_to\":\n        return node.command;\n      case \"square_brace_group\":\n        return printOptionalArgs(node.content);\n      case \"operation\":\n        return node.content.content;\n      case \"svg_operation\": {\n        const comments = node.comments.map(\n          (n) => printTikzPathSpecNode(n, path2, print)\n        );\n        const options = node.options ? printOptionalArgs(node.options) : [];\n        const rest = node.options ? [group3(indent2([line2, printRaw(node.content)]))] : [\" \", printRaw(node.content)];\n        return [...comments, \"svg\", options, ...rest];\n      }\n      case \"curve_to\": {\n        const comments = node.comments.map(\n          (n) => printTikzPathSpecNode(n, path2, print)\n        );\n        const printedControls = node.controls.length > 1 ? [\n          printTikzPathSpecNode(node.controls[0], path2, print),\n          \" \",\n          \"and\",\n          line2,\n          printTikzPathSpecNode(node.controls[1], path2, print)\n        ] : [printTikzPathSpecNode(node.controls[0], path2, print)];\n        return [\n          ...comments,\n          \"..\",\n          \" \",\n          group3(\n            indent2([\"controls\", line2, ...printedControls, \" \", \"..\"])\n          )\n        ];\n      }\n      case \"animation\": {\n        const comments = node.comments.map(\n          (n) => printTikzPathSpecNode(n, path2, print)\n        );\n        return [\n          ...comments,\n          \":\",\n          node.attribute,\n          \" \",\n          \"=\",\n          \" \",\n          group3(\n            indent2([\n              printArgumentPgfkeys(node.content, {\n                openMark: \"{\",\n                closeMark: \"}\"\n              })\n            ])\n          )\n        ];\n      }\n      case \"foreach\": {\n        const comments = node.comments.map(\n          (n) => printTikzPathSpecNode(n, path2, print)\n        );\n        const variables = [...node.variables];\n        trim(variables);\n        const list = node.list.type === \"macro\" ? printFragment(node.list, path2, print) : printArgumentPgfkeys(node.list.content, {\n          openMark: \"{\",\n          closeMark: \"}\",\n          allowParenGroups: true\n        });\n        const doc = [\n          ...comments,\n          printRaw(node.start),\n          \" \",\n          printRaw(variables)\n        ];\n        if (node.options) {\n          doc.push(\" \", indent2(printOptionalArgs(node.options)));\n        }\n        doc.push(\" \", \"in\", \" \", group3(indent2(list)));\n        const commandType = node.command.type;\n        switch (commandType) {\n          case \"foreach\":\n            doc.push(\n              indent2([\n                line2,\n                printTikzPathSpecNode(node.command, path2, print)\n              ])\n            );\n            break;\n          case \"macro\":\n            doc.push(\n              indent2([line2, printFragment(node.command, path2, print)])\n            );\n            break;\n          case \"group\": {\n            const groupContent = [...node.command.content];\n            trim(groupContent);\n            doc.push(\n              \" \",\n              indent2(\n                group3([\n                  \"{\",\n                  indent2([\n                    softline2,\n                    ...groupContent.map(\n                      (n) => printFragment(n, path2, print)\n                    )\n                  ]),\n                  softline2,\n                  \"}\"\n                ])\n              )\n            );\n            break;\n          }\n          default:\n            const invalidType = commandType;\n            console.warn(\n              `Unhandled command type when printing \"foreach\": ${invalidType}`\n            );\n        }\n        return indent2(doc);\n      }\n    }\n    console.warn(\n      `Encountered unknown type when trying to print tikz PathSpec: \"${node.type}\"`\n    );\n    return [];\n  }\n  function printOptionalArgs(nodes) {\n    return printArgumentPgfkeys(nodes, {\n      openMark: \"[\",\n      closeMark: \"]\"\n    });\n  }\n  var TikzArgumentPrinter = class {\n    constructor(spec, path2, print) {\n      __privateAdd(this, _path);\n      __privateAdd(this, _print);\n      __privateSet(this, _path, path2);\n      __privateSet(this, _print, print);\n      this.nodes = [...spec.content];\n    }\n    nodeToDoc(node) {\n      return printTikzPathSpecNode(node, __privateGet(this, _path), __privateGet(this, _print));\n    }\n    toDoc() {\n      const doc = [];\n      const startArg = this.eatOptionalArg();\n      if (startArg.optionalArg) {\n        doc.push(\n          ...startArg.comments.map(\n            (c) => printFragment(c, __privateGet(this, _path), __privateGet(this, _print))\n          )\n        );\n        doc.push(printOptionalArgs(startArg.optionalArg.content));\n      }\n      const innerDoc = [];\n      doc.push(group3([indent2(innerDoc), \";\"]));\n      let cycle = -1;\n      while (this.nodes.length > 0) {\n        cycle++;\n        const firstSep = cycle === 0 && !startArg.optionalArg ? \" \" : line2;\n        const comingUp = this.peek();\n        switch (comingUp) {\n          case \"short_path\": {\n            const [n0, n1, n2] = this.nodes.splice(0, 3);\n            innerDoc.push(\n              firstSep,\n              this.nodeToDoc(n0),\n              \" \",\n              this.nodeToDoc(n1),\n              \" \",\n              this.nodeToDoc(n2)\n            );\n            continue;\n          }\n          case \"long_path\": {\n            const [n0, n1] = this.nodes.splice(0, 2);\n            if (n1.type === \"operation\") {\n              this.nodes.unshift(n1);\n              innerDoc.push(\n                firstSep,\n                this.nodeToDoc(n0),\n                \" \",\n                this.eatOperation()\n              );\n            } else {\n              innerDoc.push(\n                firstSep,\n                this.nodeToDoc(n0),\n                \" \",\n                this.nodeToDoc(n1)\n              );\n            }\n            continue;\n          }\n          case \"node\":\n            {\n              const eatenNode = this.eatNode();\n              if (eatenNode) {\n                innerDoc.push(line2, ...eatenNode);\n                continue;\n              }\n              console.warn(\n                \"Expected to print a tikz `node` PathSpec but couldn't find the text `node`\"\n              );\n            }\n            continue;\n          case \"operation\":\n            innerDoc.push(firstSep, this.eatOperation());\n            continue;\n          case \"unknown\": {\n            const node = this.nodes.shift();\n            innerDoc.push(firstSep, this.nodeToDoc(node));\n            continue;\n          }\n        }\n        this.nodes.shift();\n      }\n      return doc;\n    }\n    /**\n     * Look at the current node and the nodes that follow. Return what\n     * \"type\" is recognized.\n     */\n    peek() {\n      const [n0, n1, n2, n3] = [\n        this.nodes[0],\n        this.nodes[1],\n        this.nodes[2],\n        this.nodes[3]\n      ];\n      if ((n0 == null ? void 0 : n0.type) === \"coordinate\" && isPathJoinOperation(n1)) {\n        if ((n2 == null ? void 0 : n2.type) === \"coordinate\" && !((n3 == null ? void 0 : n3.type) === \"coordinate\" || isPathJoinOperation(n3))) {\n          return \"short_path\";\n        }\n        return \"long_path\";\n      }\n      if ((n0 == null ? void 0 : n0.type) === \"operation\") {\n        if (n0.content.content === \"node\") {\n          return \"node\";\n        }\n        return \"operation\";\n      }\n      return \"unknown\";\n    }\n    /**\n     * Eat comments and an optional arg if present. If no optional\n     * arg is present, do nothing.\n     */\n    eatOptionalArg() {\n      let i = 0;\n      const comments = [];\n      let optionalArg = null;\n      for (; i < this.nodes.length; i++) {\n        const node = this.nodes[i];\n        if (node.type === \"square_brace_group\") {\n          optionalArg = node;\n          i++;\n          break;\n        }\n        if (node.type === \"comment\") {\n          comments.push(node);\n          continue;\n        }\n        break;\n      }\n      if (optionalArg) {\n        this.nodes.splice(0, i);\n      }\n      return { optionalArg, comments };\n    }\n    /**\n     * Eat a `type === \"operation\"` node whose contents is `\"node\"`. I.e.,\n     * the type of thing that shows up in `\\path node at (1,1) {foo};`\n     */\n    eatNode() {\n      const firstNode = this.nodes[0];\n      if ((firstNode == null ? void 0 : firstNode.type) === \"operation\" && firstNode.content.content === \"node\") {\n        this.nodes.shift();\n      } else {\n        return null;\n      }\n      const innerDoc = [];\n      const commentBlock = [];\n      const doc = [commentBlock, \"node\", group3(indent2(innerDoc))];\n      let hasNodeArgument = false;\n      let shouldBail = false;\n      let i = 0;\n      const comments = [];\n      const options = [];\n      const name = [];\n      const atLocations = [];\n      const animations = [];\n      let content = [];\n      for (; i < this.nodes.length && !shouldBail; i++) {\n        const node = this.nodes[i];\n        switch (node.type) {\n          case \"animation\":\n            animations.push(this.nodeToDoc(node));\n            continue;\n          case \"comment\": {\n            const comment2 = {\n              ...node,\n              leadingWhitespace: false\n            };\n            comments.push(this.nodeToDoc(comment2));\n            continue;\n          }\n          case \"square_brace_group\":\n            options.push(printOptionalArgs(node.content));\n            continue;\n          case \"coordinate\":\n            name.push(this.nodeToDoc(node));\n            continue;\n          case \"operation\": {\n            if (node.content.content === \"at\") {\n              const nextNode = this.nodes[i + 1];\n              if (!nextNode || !(nextNode.type === \"coordinate\" || nextNode.type === \"unknown\" && match.anyMacro(nextNode.content))) {\n                shouldBail = true;\n                continue;\n              }\n              atLocations.push([\"at\", \" \", this.nodeToDoc(nextNode)]);\n              i++;\n              continue;\n            }\n            shouldBail = true;\n            continue;\n          }\n          case \"unknown\": {\n            if (match.group(node.content)) {\n              hasNodeArgument = true;\n              content = this.nodeToDoc(node);\n            }\n          }\n        }\n        break;\n      }\n      if (!hasNodeArgument) {\n        return innerDoc;\n      }\n      this.nodes.splice(0, i + 1);\n      let isFirstElement = true;\n      let isNamed = !(Array.isArray(name) && name.length === 0);\n      for (const comment2 of comments) {\n        commentBlock.push(comment2, hardline2);\n      }\n      if (options.length > 0) {\n        innerDoc.push(join3(\" \", options));\n        isFirstElement = false;\n      }\n      if (animations.length > 0) {\n        innerDoc.push(isFirstElement ? \" \" : line2);\n        innerDoc.push(join3(line2, animations));\n        isFirstElement = false;\n      }\n      if (isNamed) {\n        innerDoc.push(isFirstElement ? \" \" : line2);\n        innerDoc.push(name);\n        isFirstElement = false;\n      }\n      if (atLocations.length > 0) {\n        innerDoc.push(isFirstElement || isNamed ? \" \" : line2);\n        innerDoc.push(join3(line2, atLocations));\n        isFirstElement = false;\n      }\n      innerDoc.push(line2, content);\n      return doc;\n    }\n    /**\n     * Eat a `type === \"operation\"` node, including its optional arguments.\n     */\n    eatOperation() {\n      const node = this.nodes[0];\n      if ((node == null ? void 0 : node.type) === \"operation\") {\n        this.nodes.shift();\n      } else {\n        return [];\n      }\n      const doc = [];\n      if ((node == null ? void 0 : node.type) !== \"operation\") {\n        throw new Error(\"Expecting `operation` node.\");\n      }\n      const options = this.eatOptionalArg();\n      doc.push(\n        ...options.comments.map(\n          (c) => printFragment(c, __privateGet(this, _path), __privateGet(this, _print))\n        ),\n        node.content.content\n      );\n      if (options.optionalArg) {\n        doc.push(indent2(printOptionalArgs(options.optionalArg.content)));\n      }\n      return doc;\n    }\n  };\n  _path = /* @__PURE__ */ new WeakMap();\n  _print = /* @__PURE__ */ new WeakMap();\n  var PATH_JOIN_OPERATIONS = /* @__PURE__ */ new Set([\"rectangle\", \"grid\", \"sin\", \"cos\", \"to\"]);\n  function isPathJoinOperation(node) {\n    if (!node) {\n      return false;\n    }\n    switch (node.type) {\n      case \"line_to\":\n      case \"curve_to\":\n        return true;\n      case \"operation\":\n        return PATH_JOIN_OPERATIONS.has(node.content.content);\n    }\n    return false;\n  }\n  function printArgument(path2, print, options) {\n    const node = path2.getNode();\n    const { renderInfo, previousNode, nextNode, referenceMap } = getNodeInfo(\n      node,\n      options\n    );\n    if (node.openMark === \"\" && node.closeMark === \"\" && node.content.length === 0) {\n      return [];\n    }\n    const parentNode = path2.getParentNode();\n    const { renderInfo: parentRenderInfo } = getNodeInfo(parentNode, options);\n    if (parentRenderInfo.pgfkeysArgs) {\n      const leadingComment = node.content.length > 0 && match.comment(node.content[0]) && node.content[0].sameline ? node.content[0] : null;\n      const content2 = leadingComment ? node.content.slice(1) : node.content;\n      trim(content2);\n      return printArgumentPgfkeys(content2, {\n        openMark: node.openMark,\n        closeMark: node.closeMark,\n        leadingComment\n      });\n    }\n    if (parentRenderInfo.tikzPathCommand) {\n      return printTikzArgument(path2, print, options);\n    }\n    const openMark = node.openMark;\n    const closeMark = node.closeMark;\n    let content = path2.map(print, \"content\");\n    content = formatDocArray(node.content, content, options);\n    if (match.comment(node.content[node.content.length - 1])) {\n      content.push(hardline2);\n    }\n    let rawRet = [openMark, fill2(content), closeMark];\n    if (renderInfo.inParMode) {\n      rawRet = [openMark, ...content, closeMark];\n    }\n    if (referenceMap) {\n      referenceMap.setRenderCache(node, rawRet);\n    }\n    return rawRet;\n  }\n  function hasPreambleCode(nodes) {\n    return nodes.some((node) => match.macro(node, \"documentclass\"));\n  }\n  function printRoot(path2, print, options) {\n    const node = path2.getNode();\n    getNodeInfo(\n      node,\n      options\n    );\n    const content = path2.map(print, \"content\");\n    const rawContent = formatDocArray(node.content, content, options);\n    const concatFunction = hasPreambleCode(node.content) ? (x) => x : fill2;\n    return concatFunction(rawContent);\n  }\n  function printComment(path2, _print2, _options) {\n    const node = path2.getNode();\n    let leadingWhitespace = \"\";\n    if (node.leadingWhitespace && node.sameline) {\n      leadingWhitespace = \" \";\n    }\n    const content = [leadingWhitespace, \"%\" + printRaw(node.content)];\n    return content;\n  }\n  function printInlineMath(path2, print, options) {\n    const node = path2.getNode();\n    if (node.content.length === 0) {\n      return [\"$\", \" \", \"$\"];\n    }\n    let content = path2.map(print, \"content\");\n    content = formatDocArray(node.content, content, options);\n    content = joinWithSoftline(content);\n    if (node.content[node.content.length - 1].type === \"comment\") {\n      content.push(hardline2);\n    }\n    return fill2([\"$\", ...content, \"$\"]);\n  }\n  function printDisplayMath(path2, print, options) {\n    const node = path2.getNode();\n    let content = path2.map(print, \"content\");\n    content = formatDocArray(node.content, content, options);\n    content = joinWithSoftline(content);\n    const bodyStartToken = [hardline2];\n    if (node.content.length === 0 || node.content[0].type === \"comment\" && node.content[0].sameline) {\n      bodyStartToken.pop();\n    }\n    return [\n      ESCAPE2 + \"[\",\n      indent2(fill2(bodyStartToken.concat(content))),\n      hardline2,\n      ESCAPE2 + \"]\"\n    ];\n  }\n  function printVerbatimEnvironment(path2, print, options) {\n    const node = path2.getNode();\n    const env = formatEnvSurround(node);\n    return [env.start, node.content, env.end];\n  }\n  function printEnvironment(path2, print, options) {\n    const node = path2.getNode();\n    const { renderInfo, previousNode, nextNode, referenceMap } = getNodeInfo(\n      node,\n      options\n    );\n    const args = node.args ? path2.map(print, \"args\") : [];\n    const env = formatEnvSurround(node);\n    let content = path2.map(print, \"content\");\n    content = formatDocArray(node.content, content, options);\n    if (renderInfo.inMathMode) {\n      content = joinWithSoftline(content);\n    }\n    let bodyStartToken = [hardline2];\n    if (node.content.length === 0 || node.content[0].type === \"comment\" && node.content[0].sameline) {\n      bodyStartToken.pop();\n    }\n    return [\n      env.start,\n      ...args,\n      indent2(fill2(bodyStartToken.concat(content))),\n      hardline2,\n      env.end\n    ];\n  }\n  function printAlignedEnvironment(path2, print, options) {\n    const node = path2.getNode();\n    getNodeInfo(\n      node,\n      options\n    );\n    const args = node.args ? path2.map(print, \"args\") : [];\n    const env = formatEnvSurround(node);\n    const leadingComment = node.content[0] && node.content[0].type === \"comment\" && node.content[0].sameline ? node.content[0] : null;\n    const { rows, rowSeps, trailingComments } = formatAlignedContent(\n      leadingComment ? node.content.slice(1) : node.content\n    );\n    const content = [];\n    for (let i = 0; i < rows.length; i++) {\n      const row = rows[i];\n      const rowSep = rowSeps[i];\n      const trailingComment = trailingComments[i];\n      content.push(row);\n      if (rowSep) {\n        content.push(printRaw(rowSep));\n      }\n      if (rowSep && trailingComment) {\n        content.push(\" \");\n      }\n      if (trailingComment) {\n        content.push([\"%\", printRaw(trailingComment.content)]);\n      }\n      if (rowSep || trailingComment) {\n        content.push(hardline2);\n      }\n    }\n    if (content[content.length - 1] === hardline2) {\n      content.pop();\n    }\n    if (leadingComment) {\n      content.unshift(\n        leadingComment.leadingWhitespace ? \" \" : \"\",\n        \"%\" + printRaw(leadingComment.content),\n        hardline2\n      );\n      return [env.start, ...args, indent2(content), hardline2, env.end];\n    }\n    return [\n      env.start,\n      ...args,\n      indent2([hardline2, ...content]),\n      hardline2,\n      env.end\n    ];\n  }\n  function formatAlignedContent(nodes) {\n    function getSpace(len = 1) {\n      return \" \".repeat(len);\n    }\n    const rows = parseAlignEnvironment(nodes);\n    const numCols = Math.max(...rows.map((r) => r.cells.length));\n    const rowSeps = rows.map(({ rowSep }) => printRaw(rowSep || []));\n    const trailingComments = rows.map(({ trailingComment }) => trailingComment);\n    const renderedRows = rows.map(({ cells, colSeps }) => ({\n      cells: cells.map((nodes2) => {\n        trim(nodes2);\n        return printRaw(nodes2);\n      }),\n      seps: colSeps.map((nodes2) => printRaw(nodes2))\n    }));\n    const colWidths = [];\n    for (let i = 0; i < numCols; i++) {\n      colWidths.push(\n        Math.max(\n          ...renderedRows.map(\n            ({ cells, seps }) => ((cells[i] || \"\") + (seps[i] || \"\")).length\n          )\n        )\n      );\n    }\n    const joinedRows = renderedRows.map(({ cells, seps }) => {\n      if (cells.length === 1 && cells[0] === \"\") {\n        return \"\";\n      }\n      let ret = \"\";\n      for (let i = 0; i < cells.length; i++) {\n        const width = colWidths[i] - (seps[i] || \"\").length;\n        ret += (i === 0 ? \"\" : \" \") + cells[i] + getSpace(width - cells[i].length + 1) + (seps[i] || \"\");\n      }\n      return ret;\n    });\n    return { rows: joinedRows, rowSeps, trailingComments };\n  }\n  var ReferenceMap = class {\n    constructor(ast) {\n      this.ast = ast;\n      this.map = /* @__PURE__ */ new Map();\n      visit(\n        this.ast,\n        (nodeList) => {\n          for (let i = 0; i < nodeList.length; i++) {\n            this.map.set(nodeList[i], {\n              previous: nodeList[i - 1],\n              next: nodeList[i + 1]\n            });\n          }\n        },\n        { includeArrays: true, test: Array.isArray }\n      );\n    }\n    /**\n     * Associate render-specific data with this node. This data\n     * will be overwritten if `setRenderCache` is called twice.\n     *\n     * @param {Ast.Ast} node\n     * @param {*} data\n     * @memberof ReferenceMap\n     */\n    setRenderCache(node, data) {\n      const currData = this.map.get(node) || {};\n      this.map.set(node, { ...currData, renderCache: data });\n    }\n    /**\n     * Retrieve data associated with `node` via `setRenderCache`\n     *\n     * @param {Ast.Ast} node\n     * @returns {(object | undefined)}\n     * @memberof ReferenceMap\n     */\n    getRenderCache(node) {\n      var _a;\n      return (_a = this.map.get(node)) == null ? void 0 : _a.renderCache;\n    }\n    getPreviousNode(node) {\n      return (this.map.get(node) || {}).previous;\n    }\n    getNextNode(node) {\n      return (this.map.get(node) || {}).next;\n    }\n  };\n  function printLatexAst(path2, options, print) {\n    const node = path2.getValue();\n    const { renderInfo } = getNodeInfo(node, options);\n    if (node == null) {\n      return node;\n    }\n    if (typeof node === \"string\") {\n      return node;\n    }\n    switch (node.type) {\n      case \"root\":\n        if (options.referenceMap) {\n          console.warn(\n            \"Processing root node, but ReferenceMap already exists. Are there multiple nodes of type 'root'?\"\n          );\n        }\n        options.referenceMap = new ReferenceMap(node);\n        return printRoot(path2, print, options);\n      case \"argument\":\n        return printArgument(path2, print, options);\n      case \"comment\":\n        return printComment(path2);\n      case \"environment\":\n      case \"mathenv\":\n        if (renderInfo.alignContent) {\n          return printAlignedEnvironment(path2, print, options);\n        }\n        return printEnvironment(path2, print, options);\n      case \"displaymath\":\n        return printDisplayMath(path2, print, options);\n      case \"group\":\n        const content = printRaw(node.content, {\n          asArray: true\n        }).map((token) => token === linebreak ? hardline2 : token);\n        return [\"{\", ...content, \"}\"];\n      case \"inlinemath\":\n        return printInlineMath(path2, print, options);\n      case \"macro\":\n        return printMacro(path2, print, options);\n      case \"parbreak\":\n        return [hardline2, hardline2];\n      case \"string\":\n        return node.content;\n      case \"verb\":\n        return [\n          ESCAPE2,\n          node.env,\n          node.escape,\n          printRaw(node.content),\n          node.escape\n        ];\n      case \"verbatim\":\n        return printVerbatimEnvironment(path2);\n      case \"whitespace\":\n        return line2;\n      default:\n        console.warn(`Printing unknown type ${readableType(node)}`, node);\n        return printRaw(node);\n    }\n  }\n  function readableType(obj) {\n    if (obj == null) {\n      return \"null\";\n    }\n    if (Array.isArray(obj)) {\n      return \"array\";\n    }\n    return typeof obj;\n  }\n\n  // ../node_modules/@unified-latex/unified-latex-util-to-string/index.js\n  var unifiedLatexStringCompiler = function unifiedLatexStringCompiler2(options) {\n    const {\n      pretty = false,\n      printWidth = 80,\n      useTabs = true,\n      forceNewlineEnding = false\n    } = options || {};\n    const prettyPrinter = (ast) => {\n      let formatted = import_standalone.default.format(\"_\", {\n        useTabs,\n        printWidth,\n        parser: \"latex-dummy-parser\",\n        plugins: [\n          {\n            languages: [\n              {\n                name: \"latex\",\n                extensions: [\".tex\"],\n                parsers: [\"latex-dummy-parser\"]\n              }\n            ],\n            parsers: {\n              \"latex-dummy-parser\": {\n                parse: () => ast,\n                astFormat: \"latex-ast\",\n                locStart: () => 0,\n                locEnd: () => 1\n              }\n            },\n            printers: {\n              \"latex-ast\": {\n                print: printLatexAst\n              }\n            }\n          }\n        ],\n        ...options || {}\n      });\n      if (forceNewlineEnding && !formatted.endsWith(\"\\n\")) {\n        formatted += \"\\n\";\n      }\n      return formatted;\n    };\n    Object.assign(this, {\n      Compiler: (ast) => {\n        if (!pretty) {\n          return printRaw(ast);\n        }\n        return prettyPrinter(ast);\n      }\n    });\n  };\n  var processor = unified().use(unifiedLatexStringCompiler, { pretty: true }).freeze();\n  function toString(ast) {\n    if (Array.isArray(ast)) {\n      ast = { type: \"root\", content: ast };\n    }\n    if (ast.type !== \"root\") {\n      ast = { type: \"root\", content: [ast] };\n    }\n    return processor.stringify(ast);\n  }\n\n  // unified.ts\n  module.exports = {\n    getParser,\n    attachMacroArgs,\n    toString\n  };\n})();\n/*! Bundled license information:\n\nis-buffer/index.js:\n  (*!\n   * Determine if an object is a Buffer\n   *\n   * @author   Feross Aboukhadijeh <https://feross.org>\n   * @license  MIT\n   *)\n*/\n"
  },
  {
    "path": "samples/docker/.devcontainer/Dockerfile",
    "content": "#-------------------------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft Corporation. All rights reserved.\n# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.\n#-------------------------------------------------------------------------------------------------------------\n\nFROM ubuntu:latest\n\nENV DEBIAN_FRONTEND=noninteractive\nRUN apt-get update \\\n    && apt-get -y install --no-install-recommends apt-utils 2>&1\n\n# Verify git and needed tools are installed\nRUN apt-get install --no-install-recommends -y git procps\n\n# Install Tex Live\nRUN apt-get update && apt-get -y upgrade \\\n    && apt-get -y install --no-install-recommends \\\n    texlive-latex-base \\\n    texlive-extra-utils \\\n    texlive-latex-extra \\\n    biber chktex latexmk make python3-pygments python3-pkg-resources \\\n    texlive-lang-chinese \\\n    texlive-lang-japanese\n\n# latexindent modules\nRUN apt-get install --no-install-recommends -y curl\nRUN curl -L http://cpanmin.us | perl - App::cpanminus \\\n    && cpanm Log::Dispatch::File \\\n    && cpanm YAML::Tiny \\\n    && cpanm File::HomeDir \\\n    && cpanm Unicode::GCString\n\n# Clean up\nRUN apt-get autoremove -y \\\n    && apt-get clean -y \\\n    && rm -rf /var/lib/apt/lists/*\nENV DEBIAN_FRONTEND=dialog \\\n    LANG=C.UTF-8 \\\n    LC_ALL=C.UTF-8\n"
  },
  {
    "path": "samples/docker/.devcontainer/devcontainer.json",
    "content": "{\n    \"name\": \"TeX Live base\",\n    \"dockerFile\": \"Dockerfile\",\n    \"customizations\": {\n        \"vscode\": {\n            \"extensions\": [\"james-yu.latex-workshop\"]\n        }\n    }\n}\n"
  },
  {
    "path": "samples/docker/README.md",
    "content": "\n# VS Code Remote - Containers Sample\n\n## Steps\n1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop)\n1. Install [VS Code Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)\n1. Open this directory.\n1. Execute `Remote-Containers: Reopen in Container` in the VS Code Command Palette.\n"
  },
  {
    "path": "samples/docker/t.tex",
    "content": "\\documentclass[12pt]{article}\n\\begin{document}\n  abcd\n\\end{document}\n"
  },
  {
    "path": "samples/multi-root/README.md",
    "content": "# Multi-root Workspaces Sample\n\n- https://code.visualstudio.com/docs/editor/multi-root-workspaces\n- https://code.visualstudio.com/docs/editor/workspaces\n- https://github.com/Microsoft/vscode/wiki/Adopting-Multi-Root-Workspace-APIs\n\n## Steps\n\n1. Open `m.code-workspace`\n"
  },
  {
    "path": "samples/multi-root/a01/a01.tex",
    "content": "\\documentclass[12pt]{article}\n\\begin{document}\n  a01 abcd\n\\end{document}\n"
  },
  {
    "path": "samples/multi-root/b01/b01.tex",
    "content": "\\documentclass[12pt]{article}\n\\begin{document}\n  b01 abcd\n\\end{document}\n"
  },
  {
    "path": "samples/multi-root/m.code-workspace",
    "content": "{\n\t\"folders\": [\n\t\t{\n\t\t\t\"path\": \"a01\"\n\t\t},\n\t\t{\n\t\t\t\"path\": \"b01\"\n\t\t}\n\t],\n\t\"settings\": {}\n}\n"
  },
  {
    "path": "samples/sample/t.tex",
    "content": "\\documentclass[12pt]{article}\n\\begin{document}\n  abcd\n\\end{document}\n"
  },
  {
    "path": "scripts/latexindent",
    "content": "#!/bin/sh\n$LATEXWORKSHOP_DOCKER_PATH run -i --rm -w \"$(pwd)\" -v \"$(pwd):$(pwd)\" $LATEXWORKSHOP_DOCKER_LATEX latexindent \"$@\"\n"
  },
  {
    "path": "scripts/latexindent.bat",
    "content": "@%LATEXWORKSHOP_DOCKER_PATH% run -i --rm -w /data -v \"%cd%:/data\" %LATEXWORKSHOP_DOCKER_LATEX% latexindent %*\n"
  },
  {
    "path": "scripts/latexmk",
    "content": "#!/bin/sh\n$LATEXWORKSHOP_DOCKER_PATH run -i --rm -w \"$(pwd)\" -v \"$(pwd):$(pwd)\" $LATEXWORKSHOP_DOCKER_LATEX latexmk \"$@\"\n"
  },
  {
    "path": "scripts/latexmk.bat",
    "content": "@%LATEXWORKSHOP_DOCKER_PATH% run -i --rm -w /data -v \"%cd%:/data\" %LATEXWORKSHOP_DOCKER_LATEX% latexmk %*\n"
  },
  {
    "path": "scripts/synctex",
    "content": "#!/bin/sh\n$LATEXWORKSHOP_DOCKER_PATH run -i --rm -w \"$(pwd)\" -v \"$(pwd):$(pwd)\" $LATEXWORKSHOP_DOCKER_LATEX synctex \"$@\"\n"
  },
  {
    "path": "scripts/synctex.bat",
    "content": "@%LATEXWORKSHOP_DOCKER_PATH% run -i --rm -w /data -v \"%cd%:/data\" %LATEXWORKSHOP_DOCKER_LATEX% synctex %*\n"
  },
  {
    "path": "scripts/texcount",
    "content": "#!/bin/sh\n$LATEXWORKSHOP_DOCKER_PATH run -i --rm -w \"$(pwd)\" -v \"$(pwd):$(pwd)\" $LATEXWORKSHOP_DOCKER_LATEX texcount \"$@\"\n"
  },
  {
    "path": "scripts/texcount.bat",
    "content": "@%LATEXWORKSHOP_DOCKER_PATH% run -i --rm -w /data -v \"%cd%:/data\" %LATEXWORKSHOP_DOCKER_LATEX% texcount %*\n"
  },
  {
    "path": "src/README.md",
    "content": "# Overview\n\n[Providers](https://code.visualstudio.com/api/language-extensions/programmatic-language-features#language-features-listing) are defined under `providers/` and are registered in `main.ts`. All other components of the extension are defined under `components/` and are properties of the `Extension` class defined in `main.ts`, which can be accessed when needed. The `Extension` class is a kind of [service locator](https://martinfowler.com/articles/injection.html#UsingAServiceLocator).\n\n## Root file\n\nWhere LaTeX Workshop differs from other extensions of VS Code is in treating the root file. For other extensions of programming languages, generally, there is only one compilation target per workspace. However, LaTeX Workshop dynamically detects the root file and the target depending on the document being currently edited. See [wiki](https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#the-root-file) for the details. `Manager.findRoot()` does the job. We register `findRoot` with `onDidChangeActiveTextEditor` in `main.ts`. This works well with multi-root workspaces.\n\n## Application Log\n\nWhen something goes wrong, we always add to log messages what went wrong with `Logger.log()`. It is much beneficial for debugging.\n\n## VS Code filesystem and virtual workspaces\n\nSee [#2669](https://github.com/James-Yu/LaTeX-Workshop/pull/2669).\n\n## EventBus\n\nSee [#3193](https://github.com/James-Yu/LaTeX-Workshop/pull/3193).\n\n## workerpool\n\nTo avoid blocking the main loop of the extension host process, we execute some heavy tasks in child processes with [workerpool](https://github.com/josdejong/workerpool).\n\nSee:\n\n- https://github.com/James-Yu/LaTeX-Workshop/tree/master/src/components/parser\n- https://github.com/James-Yu/LaTeX-Workshop/tree/master/src/providers/preview\n\n\n## Architecture\n\n```mermaid\nflowchart LR\n  subgraph VSCode[\"VS Code\"]\n    PDFViewer[\"PDF viewer\\n viewer/latexworkshop.ts\"]\n    SnippetView[\"Snippet View\\n snippetview.js\"] --- PDFRenderer[\"PDF thumbnail renderer\\n pdfrenderer.js\"]\n    MathPreview[\"Math Preview Panel\\n mathpreview.js\"]\n  end\n  subgraph ExtensionHost[\"VS Code Extension Host\"]\n    LW[\"LaTeX Workshop\\n main.ts\"]\n    LW --- Server[\"Server for PDF viewer \\n(Files and WebSocket)\\n server.ts \"];\n    LW --- ParserPool[\"Parser pool\\n syntax.ts\"]\n    LW --- MathJaxPool[\"MathJax pool\\n mathjaxpool.ts\"]\n  end\n  PDFViewer <--> Server\n  Server <--> Browser\n  subgraph Browser\n    PDFViewerB[\"PDF viewer\\n viewer/latexworkshop.ts\"]\n  end\n  ParserPool --> ParserWorkers[\"parser workers\\n syntax_worker.ts\"]\n  MathJaxPool --> MathJaxWorkers[\"MathJax workers\\n mathjaxpool_worker.ts \"]\n  click PDFViewer \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/viewer/latexworkshop.ts\"\n  click PDFViewerB \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/viewer/latexworkshop.ts\"\n  click SnippetView \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/resources/snippetview/snippetview.js\"\n  click PDFRenderer \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/resources/snippetview/pdfrenderer.js\"\n  click MathPreview \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/resources/mathpreviewpanel/mathpreview.js\"\n  click LW \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/main.ts\"\n  click Server \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/components/server.ts\"\n  click ParserPool \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/components/parser/syntax.ts\"\n  click MathJaxPool \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/providers/preview/mathjaxpool.ts\"\n  click ParserWorkers \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/components/parser/syntax_worker.ts\"\n  click MathJaxWorkers \"https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/providers/preview/mathjaxpool_worker.ts\"\n```\n\n## flowchart\n\n```mermaid\nflowchart LR\n  ActivationEvents{{Activation Events}}\n  Activate[\"activate\"]\n  Ready((Ready))\n  FindRootFile[\"Find root file\"]\n  ActivationEvents --> Activate --> FindRootFile\n  ActiveDocumentOpened{{New document opened}}\n  Ready --> ActiveDocumentOpened\n  ActiveDocumentOpened --> FindRootFile\n  ActiveDocumentChanged{{The active tab changed}}\n  Ready --> ActiveDocumentChanged\n  ActiveDocumentChanged --> FindRootFile\n  FindRootFile --> Parse --> Ready\n  ActiveDocumentSaved{{The active document saved}}\n  Ready --> ActiveDocumentSaved\n  ActiveDocumentSaved --> Build\n  Build[\"Build the root file\"]\n  Parse[\"Parse files\"]\n  BuildCommand{{build command invoked}}\n  Ready --> BuildCommand\n  BuildCommand --> Build\n  Build --> Parse\n  ActiveTextChanged{{The active document edited}}\n  Ready --> ActiveTextChanged\n  ActiveTextChanged --> Parse\n```"
  },
  {
    "path": "src/compile/build.ts",
    "content": "import * as vscode from 'vscode'\nimport os from 'os'\nimport micromatch from 'micromatch'\nimport * as path from 'path'\nimport { pickRootPath } from '../utils/quick-pick'\nimport { lw } from '../lw'\nimport type { ProcessEnv, RecipeStep, Step } from '../types'\nimport { build as buildRecipe } from './recipe'\nimport { build as buildExternal } from './external'\nimport { queue } from './queue'\n\nconst logger = lw.log('Build')\n\nexport {\n    autoBuild,\n    build,\n    isFileExcludedFromBuildOnSave\n}\n\nlw.watcher.src.onChange(filePath => autoBuild(filePath.fsPath, 'onFileChange'))\nlw.watcher.bib.onChange(filePath => autoBuild(filePath.fsPath, 'onFileChange', true))\n\n/**\n * Triggers auto build based on file change or file save events. If the\n * configuration allows auto-build for the given event type, it initiates the\n * build process for the affected file.\n *\n * @param {string} file - The path of the file that triggered the auto build.\n * @param {'onFileChange' | 'onSave'} type - The type of event that triggered\n * the auto build.\n * @param {boolean} bibChanged - Indicates whether the bibliography file has\n * changed.\n */\nfunction autoBuild(file: string, type: 'onFileChange' | 'onSave', bibChanged: boolean = false) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(file))\n    if (configuration.get('latex.autoBuild.run') as string !== type) {\n        return\n    }\n    logger.log('Auto build started ' + (type === 'onFileChange' ? 'detecting the change of a file' : 'on saving file') + `: ${file} .`)\n    lw.event.fire(lw.event.AutoBuildInitiated, {type, file})\n    if (!canAutoBuild()) {\n        logger.log('Autobuild temporarily disabled.')\n        return\n    }\n    lw.compile.lastAutoBuildTime = Date.now()\n    if (!bibChanged && lw.root.subfiles.path && configuration.get('latex.rootFile.useSubFile')) {\n        return build(true, lw.root.subfiles.path, lw.root.subfiles.langId)\n    } else {\n        return build(true, lw.root.file.path, lw.root.file.langId)\n    }\n}\n\n/**\n * Determines whether an auto-build on save or on change can be triggered.\n * Two conditions are considered: the presence of `latex.autoBuild.interval`\n * configuration and avoiding unwanted auto-build triggered by `saveAll()`\n * during a previous building process.\n *\n * @returns {boolean} - True if auto-build can be triggered, false otherwise.\n */\nfunction canAutoBuild(): boolean {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.file.path ? lw.file.toUri(lw.root.file.path) : undefined)\n    return Date.now() - lw.compile.lastAutoBuildTime >= (configuration.get('latex.autoBuild.interval', 1000) as number)\n}\n\n/**\n * Checks if a file is excluded from the build-on-save process based on\n * the value of the `latex.autoBuild.onSave.files.ignore` configuration.\n *\n * @param filePath - The path of the file to check for exclusion from build-on-save.\n\n * @returns True if the file is excluded from build-on-save, false otherwise.\n */\nfunction isFileExcludedFromBuildOnSave(filePath: string): boolean {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(filePath))\n    const globsToIgnore = configuration.get('latex.autoBuild.onSave.files.ignore') as string[]\n    const format = (str: string): string => (os.platform() === 'win32' ? str.replace(/\\\\/g, '/') : str)\n    return micromatch.some(filePath, globsToIgnore, { format })\n}\n\nlet isBuilding = false\n/**\n * Initiates the build process for the LaTeX project. It can build the entire\n * project or a specific root file depending on the parameters.\n *\n * This function checks if the active editor is defined, and if not, logs an\n * error message and returns. It then determines the workspace and configuration\n * based on the provided or inferred root file. If an external build command is\n * configured, it spawns the external build process. If the root file is not\n * defined or the language ID is not defined, it logs an error and returns. If\n * the subfile package is used and the user has not chosen to skip the file\n * selection, it prompts the user to select a subfile. Finally, it logs\n * information about the build and initiates the build process using the\n * appropriate recipe.\n *\n * @param {boolean} skipSelection - Whether to skip the file selection prompt.\n * @param {string | undefined} rootFile - The path of the LaTeX root file.\n * @param {string | undefined} languageId - The language ID of the root file.\n * @param {string | undefined} recipe - The name of the recipe to use for the\n * build.\n */\nasync function build(skipSelection: boolean = false, rootFile: string | undefined = undefined, languageId: string | undefined = undefined, recipe: string | undefined = undefined) {\n    const activeEditor = vscode.window.activeTextEditor\n    if (!activeEditor) {\n        logger.log('Cannot start to build because the active editor is undefined.')\n        return\n    }\n\n    logger.log(`The document of the active editor: ${activeEditor.document.uri.toString(true)}`)\n    logger.log(`The languageId of the document: ${activeEditor.document.languageId}`)\n    const workspace = rootFile ? lw.file.toUri(rootFile) : activeEditor.document.uri\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', workspace)\n    const externalBuildCommand = configuration.get('latex.external.build.command') as string\n    const externalBuildArgs = configuration.get('latex.external.build.args') as string[]\n\n    if (rootFile === undefined && lw.file.hasLaTeXLangId(activeEditor.document.languageId)) {\n        await lw.root.find()\n        rootFile = lw.root.file.path\n        languageId = lw.root.file.langId\n    }\n    if (externalBuildCommand) {\n        // Check if a build is already in progress\n        if (isBuilding) {\n            void logger.showErrorMessageWithCompilerLogButton('Please wait for the current build to finish.')\n        } else {\n            const pwd = path.dirname(rootFile ? rootFile : activeEditor.document.fileName)\n            await buildExternal(externalBuildCommand, externalBuildArgs, pwd, buildLoop, rootFile)\n        }\n        return\n    }\n    if (rootFile === undefined || languageId === undefined) {\n        logger.log('Cannot find LaTeX root file. See https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#the-root-file')\n        return\n    }\n\n    let pickedRootFile: string | undefined = rootFile\n    if (!skipSelection && lw.root.subfiles.path) {\n        // We are using the subfile package\n        pickedRootFile = await pickRootPath(rootFile, lw.root.subfiles.path, 'compile')\n        if (! pickedRootFile) {\n            return\n        }\n    }\n\n    logger.log(`Building root file: ${pickedRootFile}`)\n    await buildRecipe(pickedRootFile, languageId, buildLoop, recipe)\n}\n\n/**\n * Checks if another build loop is already running. If not, it iterates through\n * the queue and executes each Tool one by one.\n *\n * This function first checks if a build is already in progress. If it is, it\n * returns early. Otherwise, it sets the `compiling` flag to true and the\n * `lastBuildTime` to the current timestamp. It then enters a loop where it\n * dequeues steps from the queue. For each step, it spawns the process and\n * monitors the process until completion. After each step, it checks if it's the\n * last step and performs cleanup if necessary. Finally, it sets the `compiling`\n * flag to false.\n */\nasync function buildLoop() {\n    if (isBuilding) {\n        logger.log('Another build loop is already running.')\n        return\n    }\n\n    // Clear all logs before starting\n    lw.parser.parse.clearLog()\n    isBuilding = true\n    lw.compile.compiledPDFWriting++\n    // Stop watching the PDF file to avoid reloading the PDF viewer twice.\n    // The builder will be responsible for refreshing the viewer.\n    let skipped = true\n    while (true) {\n        const step = queue.getStep()\n        if (step === undefined) {\n            break\n        }\n        const env = spawnProcess(step)\n        const success = await monitorProcess(step, env)\n        skipped = skipped && !step.isExternal && step.isSkipped\n        if (success && queue.isLastStep(step)) {\n            await afterSuccessfulBuilt(step, skipped)\n        }\n    }\n    isBuilding = false\n    setTimeout(() => lw.compile.compiledPDFWriting--, vscode.workspace.getConfiguration('latex-workshop').get('latex.watch.pdf.delay') as number * 2)\n}\n/** Normalizes a command-line argument that represents a file path to be\n * relative to the current working directory (`cwd`) if it is under the root\n * directory (`rootDir`). If the argument does not represent a path or is not\n * under the root directory, it is returned unchanged.\n *\n * @param {string} arg - The command-line argument to normalize.\n * @param {string} cwd - The current working directory.\n * @param {string} rootDir - The root directory of the LaTeX project.\n * @returns {string} - The normalized command-line argument.\n */\nfunction normalizeArgForCwd(arg: string, cwd: string, rootDir: string): string {\n    if (!arg) { return arg }\n    let abs: string\n    try {\n        abs = path.isAbsolute(arg) ? path.normalize(arg) : path.resolve(cwd, arg)\n    } catch {\n        logger.log(`Cannot resolve path for arg: ${arg} please check if it is a valid path.`)\n        return arg\n    }\n    const relToRoot = path.relative(rootDir, abs)\n    const isUnderRoot = relToRoot === '' || (!relToRoot.startsWith('..') && !path.isAbsolute(relToRoot))\n    if (!isUnderRoot) {\n        logger.log(`Argument path not under root dir, you can wiki how to set openout_any=a if you want to keep as-is: ${arg}`)\n        return arg\n    }\n    const rel = path.relative(cwd, abs).split(path.sep).join('/')\n    logger.log(`Argument path converted to relative: ${arg} -> ${rel}`)\n    return rel\n}\n\n\n/**\n * Spawns a child process for the specified step. The function creates the\n * environment variables needed for the step and spawns a process according to\n * the nature of the step: a magic command (tex or bib), a recipe tool, or an\n * external command.\n *\n * Based on the type of step, this function sets the current working directory\n * (`cwd`) for the spawn command. If the step represents a magic command (tex or\n * bib), it uses a shell to execute the command with optional arguments. If the\n * step is not external, it sets the `cwd` based on the compiled root file,\n * possibly a sub-file. If in such a case, the compile command is `latexmk`, the\n * `cwd` is re-set to the root dir instead of sub-file. If the step is external,\n * it sets the `cwd` based on the provided `cwd` property.\n *\n * @param {Step} step - The Step to be executed.\n * @returns {ProcessEnv} - The process environment passed to the spawned\n * process.\n */\nfunction spawnProcess(step: Step): ProcessEnv {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', step.rootFile ? lw.file.toUri(step.rootFile) : undefined)\n    if (step.index === 0 || configuration.get('latex.build.clearLog.everyRecipeStep.enabled') as boolean) {\n        logger.clearCompilerMessage()\n    }\n    let cwd = step.cwd\n\n    logger.refreshStatus('sync~spin', 'statusBar.foreground', undefined, undefined, ' ' + queue.getStepString(step))\n    logger.logCommand(`Recipe step ${step.index + 1}`, step.command, step.args)\n    logger.log(`env: ${JSON.stringify(step.env)}`)\n    logger.log(`root: ${step.rootFile}`)\n    logger.log(`cwd: ${cwd}`)\n\n    const env: ProcessEnv = { ...process.env, ...step.env }\n    env['max_print_line'] = lw.constant.MAX_PRINT_LINE\n\n    if (!step.isExternal &&\n        (step.name.startsWith(lw.constant.TEX_MAGIC_PROGRAM_NAME) ||\n            step.name.startsWith(lw.constant.BIB_MAGIC_PROGRAM_NAME))) {\n\n        const args = step.args\n        if (args && !step.name.endsWith(lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)) {\n            // All optional arguments are given as a unique string (% !TeX options) if any, so we use {shell: true}\n            lw.compile.process = lw.external.spawn(`${step.command} ${args[0]}`, [], {cwd, env, shell: true})\n        } else {\n            lw.compile.process = lw.external.spawn(step.command, args ?? [], {cwd, env})\n        }\n    } else if (!step.isExternal) {\n        if (step.command === 'latexmk' && step.rootFile === lw.root.subfiles.path && lw.root.dir.path && cwd === path.dirname(step.rootFile)) {\n            cwd = lw.root.dir.path\n        }\n        if (step.command === 'bibtex' && step.args && step.args.length > 0) {\n            step.args[step.args.length - 1] = normalizeArgForCwd(step.args[step.args.length - 1], cwd, cwd)\n        }\n        logger.log(`cwd: ${cwd}`)\n        lw.compile.process = lw.external.spawn(step.command, step.args ?? [], {cwd, env})\n    } else {\n        logger.log(`cwd: ${step.cwd}`)\n        lw.compile.process = lw.external.spawn(step.command, step.args ?? [], {cwd: step.cwd})\n    }\n    logger.log(`LaTeX build process spawned with PID ${lw.compile.process.pid}.`)\n    return env\n}\n\n/**\n * Monitors the output and termination of the tool process. This function\n * monitors the stdout and stderr channels to log and parse the output messages.\n * It also waits for the error or exit signal of the process. If the build is\n * unsuccessful, the function handles different cases and takes appropriate\n * actions.\n *\n * @param {Step} step - The Step of the process whose I/O is monitored.\n * @param {ProcessEnv} env - The process environment passed to the spawned\n * process.\n * @returns {Promise<boolean>} - A promise representing whether the step is\n * successfully executed.\n */\nasync function monitorProcess(step: Step, env: ProcessEnv): Promise<boolean> {\n    if (lw.compile.process === undefined) {\n        return false\n    }\n    let stdout = ''\n    lw.compile.process.stdout?.on('data', (msg: Buffer | string) => {\n        stdout += msg\n        logger.logCompiler(msg.toString())\n    })\n\n    let stderr = ''\n    lw.compile.process.stderr?.on('data', (msg: Buffer | string) => {\n        stderr += msg\n        logger.logCompiler(msg.toString())\n    })\n\n    const result: boolean = await new Promise(resolve => {\n        if (lw.compile.process === undefined) {\n            resolve(false)\n            return\n        }\n        lw.compile.process.on('error', err => {\n            handleProcessError(env, stderr, err)\n            resolve(false)\n        })\n\n        lw.compile.process.on('exit', (code, signal) => {\n            const isSkipped = lw.parser.parse.log(stdout, step.rootFile)\n            if (!step.isExternal) {\n                step.isSkipped = isSkipped\n            }\n\n            if (!step.isExternal && code === 0) {\n                logger.log(`Finished a step in recipe with PID ${lw.compile.process?.pid}.`)\n                lw.compile.process = undefined\n                resolve(true)\n                return\n            } else if (code === 0) {\n                logger.log(`Successfully built document with PID ${lw.compile.process?.pid}.`)\n                logger.refreshStatus('check', 'statusBar.foreground', 'Build succeeded.')\n                lw.compile.process = undefined\n                resolve(true)\n                return\n            }\n\n            handleExitCodeError(step, env, stderr, code, signal)\n            resolve(false)\n        })\n    })\n\n    return result\n}\n\n/**\n * Handles errors that occur during the execution of a tool process. This\n * function logs the error, refreshes the status, and shows an error message\n * to the user.\n *\n * @param {ProcessEnv} env - The process environment passed to the spawned\n * process.\n * @param {string} stderr - The stderr output of the process.\n * @param {Error} err - The error object representing the error.\n */\nfunction handleProcessError(env: ProcessEnv, stderr: string, err: Error) {\n    logger.logError(`LaTeX fatal error on PID ${lw.compile.process?.pid}.`, err)\n    logger.log(`Does the executable exist? $PATH: ${env['PATH']}, $Path: ${env['Path']}, $SHELL: ${process.env.SHELL}`)\n    logger.log(`${stderr}`)\n    logger.refreshStatus('x', 'errorForeground', undefined, 'error')\n    void logger.showErrorMessageWithExtensionLogButton(`Recipe terminated with fatal error: ${err.message}.`)\n    lw.compile.process = undefined\n    queue.clear()\n}\n\n/**\n * Handles errors that occur when a tool process exits with a non-zero code or\n * signal. The function takes different actions based on the type of error,\n * such as handling retries, cleaning, and showing error messages to the user.\n *\n * @param {Step} step - The Step of the process that exited with an error.\n * @param {ProcessEnv} env - The process environment passed to the spawned\n * process.\n * @param {string} stderr - The stderr output of the process.\n * @param {number | null} code - The exit code of the process.\n * @param {NodeJS.Signals | null} signal - The exit signal of the process.\n */\nfunction handleExitCodeError(step: Step, env: ProcessEnv, stderr: string, code: number | null, signal: NodeJS.Signals | null) {\n    if (!step.isExternal) {\n        logger.log(`Recipe returns with error code ${code}/${signal} on PID ${lw.compile.process?.pid}.`)\n        logger.log(`Does the executable exist? $PATH: ${env['PATH']}, $Path: ${env['Path']}, $SHELL: ${process.env.SHELL}`)\n        logger.log(`${stderr}`)\n        lw.parser.parse.log(stderr)\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', step.rootFile ? lw.file.toUri(step.rootFile) : undefined)\n    if (!step.isExternal && signal !== 'SIGTERM' && !step.isRetry && configuration.get('latex.autoBuild.cleanAndRetry.enabled')) {\n        handleRetryError(step)\n    } else if (!step.isExternal && signal !== 'SIGTERM') {\n        handleNoRetryError(configuration, step)\n    } else if (step.isExternal) {\n        handleExternalCommandError()\n    } else {\n        handleUserTermination()\n    }\n\n    lw.compile.process = undefined\n}\n\n/**\n * Handles the case where a tool process encounters an error and retries the\n * build process by creating a new Tool and adding it to the BuildToolQueue.\n *\n * @param {RecipeStep} step - The Step representing the tool process.\n */\nfunction handleRetryError(step: RecipeStep) {\n    step.isRetry = true\n    logger.refreshStatus('x', 'errorForeground', 'Recipe terminated with error. Retry building the project.', 'warning')\n    logger.log('Cleaning auxiliary files and retrying build after toolchain error.')\n\n    queue.prepend(step)\n    void lw.extra.clean(step.rootFile).then(() => lw.event.fire(lw.event.AutoCleaned))\n}\n\n/**\n * Handles the case where a tool process exits with an error and no retries are\n * allowed. It performs cleanup operations, shows error messages to the user,\n * and clears the BuildToolQueue.\n *\n * @param {vscode.WorkspaceConfiguration} configuration - The configuration for\n * the LaTeX project.\n * @param {RecipeStep} step - The Step representing the tool process.\n */\nfunction handleNoRetryError(configuration: vscode.WorkspaceConfiguration, step: RecipeStep) {\n    logger.refreshStatus('x', 'errorForeground')\n    if (['onFailed', 'onBuilt'].includes(configuration.get('latex.autoClean.run') as string)) {\n        void lw.extra.clean(step.rootFile).then(() => lw.event.fire(lw.event.AutoCleaned))\n    }\n    void logger.showErrorMessageWithCompilerLogButton('Recipe terminated with error.')\n    queue.clear()\n}\n\n/**\n * Handles the case where an external command process exits with an error. It\n * shows an error message to the user and clears the BuildToolQueue.\n */\nfunction handleExternalCommandError() {\n    logger.log(`Build with external command returns error on PID ${lw.compile.process?.pid}.`)\n    logger.refreshStatus('x', 'errorForeground', undefined, 'warning')\n    void logger.showErrorMessageWithCompilerLogButton('Build terminated with error.')\n    queue.clear()\n}\n\n/**\n * Handles the case where a tool process is terminated by the user. It refreshes\n * the status and clears the BuildToolQueue.\n */\nfunction handleUserTermination() {\n    logger.refreshStatus('x', 'errorForeground')\n    queue.clear()\n}\n\n/**\n * Performs follow-up operations after successfully finishing a recipe. This\n * includes refreshing the PDF viewer, cleaning files, and handling SyncTeX if\n * configured.\n *\n * @param {Step} lastStep - The last Step in the recipe.\n * @param {boolean} skipped - Whether the whole building process is skipped by\n * latexmk.\n */\nasync function afterSuccessfulBuilt(lastStep: Step, skipped: boolean) {\n    if (lastStep.rootFile === undefined) {\n        // This only happens when the step is an external command.\n        lw.viewer.refresh()\n        return\n    }\n    logger.log(`Successfully built ${lastStep.rootFile} .`)\n    logger.refreshStatus('check', 'statusBar.foreground', 'Recipe succeeded.')\n    lw.event.fire(lw.event.BuildDone)\n    if (!lastStep.isExternal && skipped) {\n        return\n    }\n    lw.viewer.refresh(lw.file.toUri(lw.file.getPdfPath(lastStep.rootFile)))\n    lw.completion.reference.setNumbersFromAuxFile(lastStep.rootFile)\n    await lw.cache.loadFlsFile(lastStep.rootFile ?? '')\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(lastStep.rootFile))\n    // If the PDF viewer is internal, we call SyncTeX in src/components/viewer.ts.\n    if (configuration.get('view.pdf.viewer') === 'external' && configuration.get('synctex.afterBuild.enabled')) {\n        const pdfUri = lw.file.toUri(lw.file.getPdfPath(lastStep.rootFile))\n        logger.log('SyncTex after build invoked.')\n        lw.locate.synctex.toPDF(pdfUri)\n    }\n    if (['onSucceeded', 'onBuilt'].includes(configuration.get('latex.autoClean.run') as string)) {\n        logger.log('Auto Clean invoked.')\n        await lw.extra.clean(lastStep.rootFile)\n        lw.event.fire(lw.event.AutoCleaned)\n    }\n}\n"
  },
  {
    "path": "src/compile/external.ts",
    "content": "import vscode from 'vscode'\nimport { replaceArgumentPlaceholders } from '../utils/utils'\n\nimport { lw } from '../lw'\nimport type { Tool } from '../types'\nimport { queue } from './queue'\n\n/**\n * Build LaTeX project using external command. This function creates a\n * {@link Tool} containing the external command info and adds it to the\n * queue. After that, this function tries to initiate a {@link buildLoop} if\n * there is no one running.\n *\n * @param {string} command - The command to execute for building the project.\n * @param {string[]} args - The arguments to pass to the build command.\n * @param {string} pwd - The current working directory for the build.\n * @param {() => Promise<void>} buildLoop - A function that represents the build loop.\n * @param {string} [rootFile] - Optional. The root file for the build.\n */\nexport async function build(command: string, args: string[], pwd: string, buildLoop: () => Promise<void>, rootFile?: string) {\n    // Save all open files in the workspace\n    await vscode.workspace.saveAll()\n\n    // Determine the current working directory for the build\n    const workspaceFolder = vscode.workspace.workspaceFolders?.[0]\n    const cwd = workspaceFolder?.uri.fsPath || pwd\n\n    // Replace argument placeholders if a root file is provided\n    if (rootFile !== undefined) {\n        const replaceFn = replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)\n        args = args.map(replaceFn)\n    }\n\n    // Create a Tool object representing the build command and arguments\n    const tool: Tool = { name: command, command, args }\n\n    // Add the build tool to the queue for execution\n    queue.add(tool, rootFile, 'External', Date.now(), true, cwd)\n\n    lw.compile.compiledPDFPath = rootFile ? lw.file.getPdfPath(rootFile) : ''\n    // Execute the build loop\n    await buildLoop()\n}\n"
  },
  {
    "path": "src/compile/index.ts",
    "content": "import type { ChildProcess } from 'child_process'\nimport { build, autoBuild, isFileExcludedFromBuildOnSave } from './build'\nimport { terminate } from './terminate'\n\nexport const compile = {\n    build,\n    autoBuild,\n    isFileExcludedFromBuildOnSave,\n    terminate,\n    lastAutoBuildTime: 0,\n    compiledPDFPath: '',\n    compiledPDFWriting: 0,\n    process: undefined as ChildProcess | undefined\n}\n"
  },
  {
    "path": "src/compile/queue.ts",
    "content": "import vscode from 'vscode'\nimport { lw } from '../lw'\n\nimport type { ExternalStep, RecipeStep, Step, StepQueue, Tool } from '../types'\n\nconst stepQueue: StepQueue = { steps: [], nextSteps: [] }\n\n/**\n * Add a Tool to the queue, either as a RecipeStep or ExternalStep, based on\n * isExternal flag. If the tool belongs to the same recipe (determined by\n * timestamp), it is added to the current steps; otherwise, it is added to the\n * next steps for later execution.\n *\n * @param {Tool} tool - The Tool to be added to the queue.\n * @param {string | undefined} rootFile - Path to the root LaTeX file.\n * @param {string} recipeName - The name of the recipe to which the tool\n * belongs.\n * @param {number} timestamp - The timestamp when the recipe is called.\n * @param {boolean} isExternal - Whether the tool is an external command.\n * @param {string} [cwd] - The current working directory.\n */\nfunction add(tool: Tool, rootFile: string | undefined, recipeName: string, timestamp: number, isExternal: boolean, cwd: string) {\n    // Wrap the tool as a RecipeStep or ExternalStep\n    let step: Step\n    if (!isExternal && rootFile !== undefined) {\n        step = tool as RecipeStep\n        step.rootFile = rootFile\n        step.recipeName = recipeName\n        step.timestamp = timestamp\n        step.isRetry = false\n        step.isExternal = false\n        step.isSkipped = false\n        step.cwd = cwd\n    } else {\n        step = tool as ExternalStep\n        step.recipeName = 'External'\n        step.timestamp = timestamp\n        step.isExternal = true\n        step.cwd = cwd\n    }\n\n    // Add the step to the appropriate queue (steps or nextSteps)\n    if (stepQueue.steps.length === 0 || step.timestamp === stepQueue.steps[0].timestamp) {\n        step.index = (stepQueue.steps[stepQueue.steps.length - 1]?.index ?? -1) + 1\n        stepQueue.steps.push(step)\n    } else if (stepQueue.nextSteps.length === 0 || step.timestamp === stepQueue.nextSteps[0].timestamp){\n        step.index = (stepQueue.nextSteps[stepQueue.nextSteps.length - 1]?.index ?? -1) + 1\n        stepQueue.nextSteps.push(step)\n    } else {\n        step.index = 0\n        stepQueue.nextSteps = [ step ]\n    }\n}\n\n/**\n * Add a step to the beginning of the current steps queue.\n *\n * @param {Step} step - The Step to be added to the front of the current steps\n * queue.\n */\nfunction prepend(step: Step) {\n    stepQueue.steps.unshift(step)\n}\n\n/**\n * Clear both the current steps and next steps queues.\n */\nfunction clear() {\n    stepQueue.nextSteps.length = 0\n    stepQueue.steps.length = 0\n}\n\n/**\n * Check if the given step is the last one in the current steps queue.\n *\n * @param {Step} step - The Step to check.\n * @returns {boolean} - True if the step is the last one; otherwise, false.\n */\nfunction isLastStep(step: Step): boolean {\n    return stepQueue.steps.length === 0 || stepQueue.steps[0].timestamp !== step.timestamp\n}\n\n/**\n * Get a formatted string representation of the given step.\n *\n * @param {Step} step - The Step to get the string representation for.\n * @returns {string} - The formatted string representation of the step.\n */\nfunction getStepString(step: Step): string {\n    let stepString: string\n\n    // Determine the format of the stepString based on timestamp and index\n    if (step.timestamp !== stepQueue.steps[0]?.timestamp && step.index === 0) {\n        stepString = step.recipeName\n    } else if (step.timestamp === stepQueue.steps[0]?.timestamp) {\n        stepString = `${step.recipeName}: ${step.index + 1}/${stepQueue.steps[stepQueue.steps.length - 1].index + 1} (${step.name})`\n    } else {\n        stepString = `${step.recipeName}: ${step.index + 1}/${step.index + 1} (${step.name})`\n    }\n\n    // Determine the format of the stepString based on timestamp and index\n    if(step.rootFile) {\n        const rootFileUri = lw.file.toUri(step.rootFile)\n        const configuration = vscode.workspace.getConfiguration('latex-workshop', rootFileUri)\n        const showFilename = configuration.get<boolean>('latex.build.rootfileInStatus', false)\n        if(showFilename) {\n            const relPath = vscode.workspace.asRelativePath(step.rootFile)\n            stepString = `${relPath}: ${stepString}`\n        }\n    }\n    return stepString\n}\n\n/**\n * Get the next step from the queue, either from the current steps or next\n * steps.\n *\n * @returns {Step | undefined} - The next step from the queue, or undefined if\n * the queue is empty.\n */\nfunction getStep(): Step | undefined {\n    let step: Step | undefined\n    if (stepQueue.steps.length > 0) {\n        step = stepQueue.steps.shift()\n    } else if (stepQueue.nextSteps.length > 0) {\n        stepQueue.steps = stepQueue.nextSteps\n        stepQueue.nextSteps = []\n        step = stepQueue.steps.shift()\n    }\n    return step\n}\n\nexport const queue = {\n    add,\n    prepend,\n    clear,\n    isLastStep,\n    getStep,\n    getStepString\n}\n"
  },
  {
    "path": "src/compile/recipe.ts",
    "content": "import vscode from 'vscode'\nimport path from 'path'\nimport { replaceArgumentPlaceholders } from '../utils/utils'\n\nimport { lw } from '../lw'\nimport type { Recipe, Tool } from '../types'\nimport { queue } from './queue'\n\nconst logger = lw.log('Build', 'Recipe')\n\nlet state: {\n    prevRecipe: Recipe | undefined,\n    prevLangId: string,\n    isMikTeX: boolean | undefined\n}\n\ninitialize()\nexport function initialize() {\n    state = {\n        prevRecipe: undefined,\n        prevLangId: '',\n        isMikTeX: undefined\n    }\n}\n\nsetDockerImage()\nlw.onConfigChange('docker.image.latex', setDockerImage)\nfunction setDockerImage() {\n    const dockerImageName: string = vscode.workspace.getConfiguration('latex-workshop').get('docker.image.latex', '')\n    logger.log(`Set $LATEXWORKSHOP_DOCKER_LATEX: ${JSON.stringify(dockerImageName)}`)\n    process.env['LATEXWORKSHOP_DOCKER_LATEX'] = dockerImageName\n}\n\nsetDockerPath()\nlw.onConfigChange('docker.path', setDockerPath)\nfunction setDockerPath() {\n    const dockerPath: string = vscode.workspace.getConfiguration('latex-workshop').get('docker.path', '')\n    logger.log(`Set $LATEXWORKSHOP_DOCKER_PATH: ${JSON.stringify(dockerPath)}`)\n    process.env['LATEXWORKSHOP_DOCKER_PATH'] = dockerPath\n}\n\n/**\n * Build LaTeX project using the recipe system. Creates Tools containing the\n * tool info and adds them to the queue. Initiates a buildLoop if there is no\n * running one.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @param {string} langId - The language ID of the root file. Used to determine\n * whether the previous recipe can be applied.\n * @param {Function} buildLoop - A function that represents the build loop.\n * @param {string} [recipeName] - Optional. The name of the recipe to be used.\n * If undefined, the builder tries to determine on its own.\n */\nexport async function build(rootFile: string, langId: string, buildLoop: () => Promise<void>, recipeName?: string) {\n    logger.log(`Build root file ${rootFile}`)\n    let cwd: string = path.dirname(lw.file.toUri(rootFile).fsPath)\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (configuration.get('latex.build.fromWorkspaceFolder')) {\n        const workspaceFolder = vscode.workspace.getWorkspaceFolder(lw.file.toUri(rootFile))\n        if (workspaceFolder) {\n            cwd = workspaceFolder.uri.fsPath\n        }\n    }\n\n    // Save all open files in the workspace\n    await vscode.workspace.saveAll()\n\n    // Create build tools based on the recipe system\n    const tools = await createBuildTools(rootFile, langId, recipeName)\n\n    // Create output subdirectories for included files\n    if (tools?.map(tool => tool.command).includes('latexmk') && rootFile === lw.root.subfiles.path && lw.root.file.path) {\n        await createAuxSubFolders(lw.root.file.path)\n    } else {\n        await createAuxSubFolders(rootFile)\n    }\n\n    // Check for invalid toolchain\n    if (tools === undefined) {\n        logger.log('Invalid toolchain.')\n        return\n    }\n\n    // Add tools to the queue with timestamp\n    const timestamp = Date.now()\n    tools.forEach(tool => queue.add(tool, rootFile, recipeName || 'Build', timestamp, false, cwd))\n\n    // #4513 If the recipe contains a forced latexmk compilation, don't set the\n    // compiledPDFPath so that PDF refresh is handled by file watcher.\n    if (!tools.some(tool => tool.command === 'latexmk' &&\n                            tool.args?.includes('-interaction=nonstopmode') &&\n                            tool.args?.includes('-f'))) {\n        lw.compile.compiledPDFPath = lw.file.getPdfPath(rootFile)\n    }\n    // Execute the build loop\n    await buildLoop()\n}\n\n/**\n * Create subdirectories of the output directory. This is necessary as some\n * LaTeX macros do not create the output directory themselves.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n */\nasync function createAuxSubFolders(rootFile: string) {\n    const rootDir = path.dirname(rootFile)\n    let auxDir = lw.file.getAuxDir(rootFile)\n    if (!path.isAbsolute(auxDir)) {\n        auxDir = path.resolve(rootDir, auxDir)\n    }\n    logger.log(`RootFile auxDir: ${auxDir} .`)\n    for (const file of lw.cache.getIncludedTeX(rootFile)) {\n        const relativePath = path.dirname(file.replace(rootDir, '.'))\n        const fullAuxDir = path.resolve(auxDir, relativePath)\n        // To avoid issues when fullAuxDir is the root dir\n        // Using fs.mkdir() on the root directory even with recursion will result in an error\n        try {\n            const fileStat = await lw.file.exists(fullAuxDir)\n            if (\n                !fileStat ||\n                ![vscode.FileType.Directory, vscode.FileType.Directory | vscode.FileType.SymbolicLink].includes(\n                    fileStat.type\n                )\n            ) {\n                logger.log(`Create auxDir: ${fullAuxDir} .`)\n                lw.external.mkdirSync(fullAuxDir, { recursive: true })\n            }\n        } catch (e) {\n            if (e instanceof Error) {\n                // #4048\n                logger.log(`Unexpected Error: ${e.name}: ${e.message} .`)\n            } else {\n                logger.log('Unexpected Error: please see the console log of the Developer Tools of VS Code.')\n                logger.refreshStatus('x', 'errorForeground')\n                throw(e)\n            }\n        }\n    }\n}\n\n\n/**\n * Given an optional recipe, create the corresponding {@link Tool}s.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @param {string} langId - The language ID of the root file.\n * @param {string} [recipeName] - Optional. The name of the recipe to be used.\n * @returns {Tool[] | undefined} - An array of Tool objects representing the\n * build tools.\n */\nasync function createBuildTools(rootFile: string, langId: string, recipeName?: string): Promise<Tool[] | undefined> {\n    let buildTools: Tool[] = []\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const magic = await findMagicComments(rootFile)\n\n    if (configuration.get('latex.build.enableMagicComments') && !recipeName && magic.tex) {\n        buildTools = createBuildMagic(rootFile, magic.tex, magic.bib)\n    } else {\n        if (configuration.get('latex.build.enableMagicComments') && !recipeName && magic.recipe) {\n            recipeName = magic.recipe\n        }\n        const recipe = findRecipe(rootFile, langId, recipeName)\n        if (recipe === undefined) {\n            return\n        }\n        logger.log(`Preparing to run recipe: ${recipe.name}.`)\n        state.prevRecipe = recipe\n        state.prevLangId = langId\n        const tools = configuration.get('latex.tools') as Tool[]\n        recipe.tools.forEach(tool => {\n            if (typeof tool === 'string') {\n                const candidates = tools.filter(candidate => candidate.name === tool)\n                if (candidates.length < 1) {\n                    logger.log(`Skipping undefined tool ${tool} in recipe ${recipe.name}.`)\n                    void logger.showErrorMessage(`Skipping undefined tool \"${tool}\" in recipe \"${recipe.name}.\"`)\n                } else {\n                    buildTools.push(candidates[0])\n                }\n            } else {\n                buildTools.push(tool)\n            }\n        })\n        logger.log(`Prepared ${buildTools.length} tools.`)\n    }\n    if (buildTools.length < 1) {\n        return\n    }\n\n    // Use JSON.parse and JSON.stringify for a deep copy.\n    buildTools = JSON.parse(JSON.stringify(buildTools)) as Tool[]\n\n    populateTools(rootFile, buildTools)\n\n    return buildTools\n}\n\n/**\n * Find magic comments in the root file, including TeX and BibTeX programs, and\n * the LW recipe name.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @returns {{tex?: Tool, bib?: Tool, recipe?: string}} - An object containing\n * the TeX and BibTeX tools and the LW recipe name.\n */\nasync function findMagicComments(rootFile: string): Promise<{tex?: Tool, bib?: Tool, recipe?: string}> {\n    const regexTex = /^(?:%\\s*!\\s*T[Ee]X\\s(?:TS-)?program\\s*=\\s*([^\\s]*)$)/m\n    const regexBib = /^(?:%\\s*!\\s*BIB\\s(?:TS-)?program\\s*=\\s*([^\\s]*)$)/m\n    const regexTexOptions = /^(?:%\\s*!\\s*T[Ee]X\\s(?:TS-)?options\\s*=\\s*(.*)$)/m\n    const regexBibOptions = /^(?:%\\s*!\\s*BIB\\s(?:TS-)?options\\s*=\\s*(.*)$)/m\n    const regexRecipe = /^(?:%\\s*!\\s*LW\\srecipe\\s*=\\s*(.*)$)/m\n    let content = ''\n    for (const line of (await lw.file.read(rootFile))?.split('\\n') || []) {\n        if (line.startsWith('%') || line.trim().length === 0) {\n            content += line + '\\n'\n        } else {\n            break\n        }\n    }\n\n    const tex = content.match(regexTex)\n    let texCommand: Tool | undefined = undefined\n    if (tex) {\n        texCommand = {\n            name: lw.constant.TEX_MAGIC_PROGRAM_NAME,\n            command: tex[1]\n        }\n        logger.log(`Found TeX program by magic comment: ${texCommand.command}.`)\n        const res = content.match(regexTexOptions)\n        if (res) {\n            texCommand.args = [res[1]]\n            logger.log(`Found TeX options by magic comment: ${texCommand.args}.`)\n        }\n    }\n\n    const bib = content.match(regexBib)\n    let bibCommand: Tool | undefined = undefined\n    if (bib) {\n        bibCommand = {\n            name: lw.constant.BIB_MAGIC_PROGRAM_NAME,\n            command: bib[1]\n        }\n        logger.log(`Found BIB program by magic comment: ${bibCommand.command}.`)\n        const res = content.match(regexBibOptions)\n        if (res) {\n            bibCommand.args = [res[1]]\n            logger.log(`Found BIB options by magic comment: ${bibCommand.args}.`)\n        }\n    }\n\n    const recipe = content.match(regexRecipe)\n    if (recipe && recipe[1]) {\n        logger.log(`Found LW recipe '${recipe[1]}' by magic comment: ${recipe}.`)\n    }\n\n    return {tex: texCommand, bib: bibCommand, recipe: recipe?.[1]}\n}\n\n/**\n * Create build tools based on magic comments in the root file.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @param {Tool} magicTex - Tool object representing the TeX command from magic\n * comments.\n * @param {Tool} [magicBib] - Optional. Tool object representing the BibTeX\n * command from magic comments.\n * @returns {Tool[]} - An array of Tool objects representing the build tools.\n */\nfunction createBuildMagic(rootFile: string, magicTex: Tool, magicBib?: Tool): Tool[] {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n\n    if (!magicTex.args) {\n        magicTex.args = configuration.get('latex.magic.args') as string[]\n        magicTex.name = lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX\n    }\n    if (magicBib) {\n        if (!magicBib.args) {\n            magicBib.args = configuration.get('latex.magic.bib.args') as string[]\n            magicBib.name = lw.constant.BIB_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX\n        }\n        return [magicTex, magicBib, magicTex, magicTex]\n    } else {\n        return [magicTex]\n    }\n}\n\n\n/**\n * Find a recipe based on the provided recipe name, language ID, and root file.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @param {string} langId - The language ID of the root file.\n * @param {string} [recipeName] - Optional. The name of the recipe to be used.\n * @returns {Recipe | undefined} - The Recipe object corresponding to the\n * provided parameters.\n */\nfunction findRecipe(rootFile: string, langId: string, recipeName?: string): Recipe | undefined {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n\n    const recipes = configuration.get('latex.recipes') as Recipe[]\n    const defaultRecipeName = configuration.get('latex.recipe.default') as string\n\n    if (recipes.length < 1) {\n        logger.log('No recipes defined.')\n        void logger.showErrorMessage('[Builder] No recipes defined.')\n        return\n    }\n    if (state.prevLangId !== langId) {\n        state.prevRecipe = undefined\n    }\n    let recipe: Recipe | undefined\n    // Find recipe according to the given name\n    if (recipeName === undefined && !['first', 'lastUsed'].includes(defaultRecipeName)) {\n        recipeName = defaultRecipeName\n    }\n    if (recipeName) {\n        recipe = recipes.find(candidate => candidate.name === recipeName)\n        if (recipe === undefined) {\n            logger.log(`Failed to resolve build recipe: ${recipeName}.`)\n            void logger.showErrorMessage(`[Builder] Failed to resolve build recipe: ${recipeName}.`)\n        }\n    }\n    // Find default recipe of last used\n    if (recipe === undefined && defaultRecipeName === 'lastUsed') {\n        recipe = recipes.find(candidate => candidate.name === state.prevRecipe?.name)\n    }\n    // If still not found, fallback to 'first'\n    if (recipe === undefined) {\n        let candidates: Recipe[] = recipes\n        if (langId === 'rsweave') {\n            candidates = recipes.filter(candidate => candidate.name.toLowerCase().match('rnw|rsweave'))\n        } else if (langId === 'jlweave') {\n            candidates = recipes.filter(candidate => candidate.name.toLowerCase().match('jnw|jlweave|weave.jl'))\n        } else if (langId === 'pweave') {\n            candidates = recipes.filter(candidate => candidate.name.toLowerCase().match('pnw|pweave'))\n        }\n        if (candidates.length < 1) {\n            logger.log(`Cannot find any recipe for langID \\`${langId}\\`.`)\n            void logger.showErrorMessage(`[Builder] Cannot find any recipe for langID \\`${langId}\\`: ${recipeName}.`)\n        }\n        recipe = candidates[0]\n    }\n    return recipe\n}\n\n/**\n * Expand the bare {@link Tool} with Docker and argument placeholder strings.\n *\n * @param {string} rootFile - Path to the root LaTeX file.\n * @param {Tool[]} buildTools - An array of Tool objects to be populated.\n * @returns {Tool[]} - An array of Tool objects with expanded values.\n */\nfunction populateTools(rootFile: string, buildTools: Tool[]): Tool[] {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const docker = configuration.get('docker.enabled')\n\n    buildTools.forEach(tool => {\n        if (docker) {\n            switch (tool.command) {\n                case 'latexmk':\n                    logger.log('Use Docker to invoke the command.')\n                    if (process.platform === 'win32') {\n                        tool.command = path.resolve(lw.extensionRoot, './scripts/latexmk.bat')\n                    } else {\n                        tool.command = path.resolve(lw.extensionRoot, './scripts/latexmk')\n                        lw.external.chmodSync(tool.command, 0o755)\n                    }\n                    break\n                default:\n                    logger.log(`Do not use Docker to invoke the command: ${tool.command}.`)\n                    break\n            }\n        }\n        tool.args = tool.args?.map(replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath))\n        lw.file.setTeXDirs(\n            rootFile,\n            tool.args?.filter(arg => arg.startsWith('-out-directory') || arg.startsWith('-outdir'))[0]?.replace(/^-out-directory=|^-outdir=/, ''),\n            tool.args?.filter(arg => arg.startsWith('-aux-directory') || arg.startsWith('-auxdir'))[0]?.replace(/^-aux-directory=|^-auxdir=/, '')\n        )\n        const env = tool.env ?? {}\n        Object.entries(env).forEach(([key, value]) => {\n            env[key] = value && replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(value)\n        })\n        if (configuration.get('latex.option.maxPrintLine.enabled')) {\n            tool.args = tool.args ?? []\n            const isLaTeXmk =\n                tool.command === 'latexmk' &&\n                !(\n                    tool.args.includes('-lualatex') ||\n                    tool.args.includes('-pdflua') ||\n                    tool.args.includes('-pdflualatex') ||\n                    tool.args.includes('--lualatex') ||\n                    tool.args.includes('--pdflua') ||\n                    tool.args.includes('--pdflualatex')\n                )\n            if ((isLaTeXmk || tool.command === 'pdflatex') && isMikTeX()) {\n                if (tool.name === lw.constant.TEX_MAGIC_PROGRAM_NAME) {\n                    // %!TeX options is present. All args are provided in a string and { shell: true }\n                    tool.args = [ `--max-print-line=${lw.constant.MAX_PRINT_LINE} ${tool.args.join(' ')}` ]\n                } else {\n                    tool.args.unshift('--max-print-line=' + lw.constant.MAX_PRINT_LINE)\n                }\n            }\n        }\n    })\n    return buildTools\n}\n\n/**\n * Check whether the LaTeX toolchain compilers are provided by MikTeX.\n *\n * @returns {boolean} - True if the LaTeX toolchain is provided by MikTeX;\n * otherwise, false.\n */\nfunction isMikTeX(): boolean {\n    if (state.isMikTeX === undefined) {\n        try {\n            const log = lw.external.sync('pdflatex', ['--version']).stdout.toString()\n            if (log.includes('MiKTeX')) {\n                state.isMikTeX = true\n                logger.log('`pdflatex` is provided by MiKTeX.')\n            } else {\n                state.isMikTeX = false\n            }\n        } catch (err) {\n            logger.logError('Cannot run `pdflatex` to determine if we are using MiKTeX.', err)\n            state.isMikTeX = false\n        }\n    }\n    return state.isMikTeX\n}\n"
  },
  {
    "path": "src/compile/terminate.ts",
    "content": "import * as cp from 'child_process'\nimport { lw } from '../lw'\nimport { queue } from './queue'\n\nconst logger = lw.log('Build', 'Terminate')\n\n/**\n * Terminate the current process of LaTeX building. This OS-specific function\n * uses a kill command (pkill for Linux and macOS, taskkill for Windows) with\n * the process PID. Regardless of success, `kill()` from the `child_process`\n * module is later called for a \"double kill.\" Subsequent tools in the queue,\n * including those from the current recipe and (if available) those from the\n * cached recipe to be executed, are cleared.\n */\nexport function terminate() {\n    if (lw.compile.process === undefined) {\n        logger.log('LaTeX build process to kill is not found.')\n        return\n    }\n    const pid = lw.compile.process.pid\n    try {\n        logger.log(`Kill child processes of the current process with PID ${pid}.`)\n        if (process.platform === 'linux' || process.platform === 'darwin') {\n            // Use pkill to kill child processes\n            cp.execSync(`pkill -P ${pid}`, { timeout: 1000 })\n        } else if (process.platform === 'win32') {\n            // Use taskkill on Windows to forcefully terminate child processes\n            cp.execSync(`taskkill /F /T /PID ${pid}`, { timeout: 1000 })\n        }\n    } catch (e) {\n        logger.logError('Failed killing child processes of the current process.', e)\n    } finally {\n        // Clear all subsequent tools in the queue\n        queue.clear()\n\n        // Perform a \"double kill\" using kill() from child_process\n        lw.compile.process.kill()\n        logger.log(`Killed the current process with PID ${pid}`)\n    }\n}\n"
  },
  {
    "path": "src/completion/bibtex.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport { lw } from '../lw'\nimport { getBibtexFormatConfig } from '../lint/bibtex-formatter/utils'\nimport { getLongestBalancedString } from '../utils/utils'\n\nconst logger = lw.log('Intelli', 'Bib')\n\ntype DataBibtexJsonType = typeof import('../../data/bibtex-entries.json')\ntype DataBibtexOptionalJsonType = typeof import('../../data/bibtex-optional-entries.json')\n\nexport class BibProvider implements vscode.CompletionItemProvider {\n    private scope: vscode.ConfigurationScope | undefined = undefined\n    private readonly entryItems: vscode.CompletionItem[] = []\n    private readonly optFieldItems = Object.create(null) as { [key: string]: vscode.CompletionItem[] }\n    private bibtexFormatConfig: ReturnType<typeof getBibtexFormatConfig>\n\n    constructor() {\n        if (vscode.window.activeTextEditor) {\n            this.scope = vscode.workspace.getWorkspaceFolder(vscode.window.activeTextEditor.document.uri)\n        } else {\n            this.scope = vscode.workspace.workspaceFolders?.[0]\n        }\n        this.bibtexFormatConfig = getBibtexFormatConfig(this.scope)\n        this.initialize()\n        lw.onConfigChange(['bibtex-format', 'bibtex-entries', 'bibtex-fields', 'intellisense'], () => {\n            this.bibtexFormatConfig = getBibtexFormatConfig(this.scope)\n            this.initialize()\n        }, this.scope)\n        vscode.window.onDidChangeActiveTextEditor((e: vscode.TextEditor | undefined) => {\n            if (e && lw.file.hasBibLangId(e.document.languageId)) {\n                const wsFolder = vscode.workspace.getWorkspaceFolder(e.document.uri)\n                if (wsFolder !== this.scope) {\n                    this.scope = wsFolder\n                    this.bibtexFormatConfig = getBibtexFormatConfig(this.scope)\n                    this.initialize()\n                }\n            }\n        })\n    }\n\n    private initialize() {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop', this.scope)\n        const citationBackend = configuration.get('intellisense.citation.backend')\n        let entriesFile: string = ''\n        let optEntriesFile: string = ''\n        let entriesReplacements: {[key: string]: string[]} = {}\n        switch (citationBackend) {\n            case 'bibtex':\n                entriesFile = `${lw.extensionRoot}/data/bibtex-entries.json`\n                optEntriesFile = `${lw.extensionRoot}/data/bibtex-optional-entries.json`\n                entriesReplacements = configuration.get('intellisense.bibtexJSON.replace') as {[key: string]: string[]}\n                break\n            case 'biblatex':\n                entriesFile = `${lw.extensionRoot}/data/biblatex-entries.json`\n                optEntriesFile = `${lw.extensionRoot}/data/biblatex-optional-entries.json`\n                entriesReplacements = configuration.get('intellisense.biblatexJSON.replace') as {[key: string]: string[]}\n                break\n            default:\n                logger.log(`Unknown citation backend: ${citationBackend}`)\n                return\n        }\n        try {\n            this.loadDefaultItems(entriesFile, optEntriesFile, entriesReplacements)\n        } catch (err) {\n            logger.log(`Error reading data: ${err}.`)\n        }\n    }\n\n    private loadDefaultItems(entriesFile: string, optEntriesFile: string, entriesReplacements: {[key: string]: string[]}) {\n        const entries: { [key: string]: string[] } = JSON.parse(fs.readFileSync(entriesFile, {encoding: 'utf8'})) as DataBibtexJsonType\n        const optFields: { [key: string]: string[] } = JSON.parse(fs.readFileSync(optEntriesFile, {encoding: 'utf8'})) as DataBibtexOptionalJsonType\n\n        // const maxLengths: {[key: string]: number} = this.computeMaxLengths(entries, optFields)\n        const entriesList: string[] = []\n        this.entryItems.length = 0\n        Object.keys(entries).forEach(entry => {\n            if (entry in entriesList) {\n                return\n            }\n            if (entry in entriesReplacements) {\n                this.entryItems.push(this.entryToCompletion(entry, entriesReplacements[entry], this.bibtexFormatConfig))\n            } else {\n                this.entryItems.push(this.entryToCompletion(entry, entries[entry], this.bibtexFormatConfig))\n            }\n            entriesList.push(entry)\n        })\n        Object.entries(optFields).forEach(([field, item]) => {\n            this.optFieldItems[field] = this.fieldsToCompletion(item, this.bibtexFormatConfig)\n        })\n    }\n\n    // private computeMaxLengths(entries: {[key: string]: string[]}, optFields: {[key: string]: string[]}): {[key: string]: number} {\n    //     const maxLengths = Object.create(null) as { [key: string]: number }\n    //     Object.keys(entries).forEach(key => {\n    //         let maxFieldLength = 0\n    //         entries[key].forEach(field => {\n    //             maxFieldLength = Math.max(maxFieldLength, field.length)\n    //         })\n    //         if (key in optFields) {\n    //             optFields[key].forEach(field => {\n    //                 maxFieldLength = Math.max(maxFieldLength, field.length)\n    //             })\n    //         }\n    //         maxLengths[key] = maxFieldLength\n    //     })\n    //     return maxLengths\n    // }\n\n    private entryToCompletion(itemName: string, itemFields: string[], config: ReturnType<typeof getBibtexFormatConfig>): vscode.CompletionItem {\n        const suggestion: vscode.CompletionItem = new vscode.CompletionItem(itemName, vscode.CompletionItemKind.Snippet)\n        suggestion.detail = itemName\n        suggestion.documentation = `Add a @${itemName} entry`\n        let count: number = 1\n\n        // The following code is copied from BibtexUtils.bibtexFormat\n        // Find the longest field name in entry\n        let s: string = itemName + '{${0:key}'\n        itemFields.forEach(field => {\n            s += ',\\n' + config.tab + (config.case.field === 'lowercase' ? field.toLowerCase() : field.toUpperCase())\n            s += ' = '\n            s += config.left + `$${count}` + config.right\n            count++\n        })\n        s += '\\n}'\n        suggestion.insertText = new vscode.SnippetString(s)\n        return suggestion\n    }\n\n    private fieldsToCompletion(fields: string[], config: ReturnType<typeof getBibtexFormatConfig>): vscode.CompletionItem[] {\n        const suggestions: vscode.CompletionItem[] = []\n        fields.forEach(field => {\n            const suggestion: vscode.CompletionItem = new vscode.CompletionItem(field, vscode.CompletionItemKind.Snippet)\n            suggestion.detail = field\n            suggestion.documentation = `Add ${field} = ${config.left}${config.right}`\n            suggestion.insertText = new vscode.SnippetString(`${field} = ${config.left}$1${config.right},`)\n            suggestions.push(suggestion)\n        })\n        return suggestions\n    }\n\n    provideCompletionItems(document: vscode.TextDocument, position: vscode.Position): vscode.CompletionItem[] | undefined {\n        const currentLine = document.lineAt(position.line).text\n        if (currentLine.match(/@[a-zA-Z]*$/)) {\n            // Complete an entry name\n            return this.entryItems\n        } else if (currentLine.match(/^\\s*[a-zA-Z]*$/)) {\n            let offset = 0\n            while (offset < 100) {\n                const prevLine = position.line - offset > 0 ? document.lineAt(position.line - offset - 1).text : ''\n                if (prevLine.match(/(?:@[a-zA-Z]{)|(?:[\"}0-9],\\s*$)/)) {\n                    // Add optional fields\n                    const optFields = this.provideOptFields(document, position)\n                    return optFields\n                }\n                offset += 1\n            }\n            return\n        }\n        const result = currentLine.substring(0, position.character).match(/^\\s*([a-zA-Z]*)\\s*=\\s*([{|\"]?)$/)\n        // If not found, or right before the starting { / \"\n        if (!result || result[2] === '' && ['{', '\"'].includes(currentLine.substring(position.character)[0])) {\n            return\n        }\n        // Exclude the current editing field from searched\n        const lines = document.getText().split('\\n')\n        lines[position.line] = lines[position.line].replace(RegExp(`${result[1]}\\\\s*=\\\\s*`, 'g'), '')\n        return findFieldValues(result[1], lines.join('\\n'))\n            .reduce((unique, value) => {\n                if (!unique.includes(value)) {\n                    unique.push(value)\n                }\n                return unique\n            }, [] as string[])\n            .map(entry => new vscode.CompletionItem(entry, vscode.CompletionItemKind.Text))\n    }\n\n    private provideOptFields(document: vscode.TextDocument, position: vscode.Position): vscode.CompletionItem[] {\n        const pattern = /^\\s*@([a-zA-Z]+)\\{(?:[^,]*,)?\\s$/m\n        const content = document.getText(new vscode.Range(new vscode.Position(0, 0), position))\n        const reversedContent = content.replace(/(\\r\\n)|\\r/g, '\\n').split('\\n').reverse().join('\\n')\n        const match = reversedContent.match(pattern)\n        if (match) {\n            const entryType = match[1].toLowerCase()\n            if (entryType in this.optFieldItems) {\n                return this.optFieldItems[entryType]\n            }\n        }\n        return []\n    }\n}\n\nfunction findFieldValues(field: string, text: string) {\n    const re = RegExp(`(${field}\\\\s*=\\\\s*)`, 'g')\n    const candidates: string[] = []\n    while (true) {\n        const match = re.exec(text)\n        if (!match) {\n            break\n        }\n        const startPos = match.index + match[1].length\n        if (text[startPos] === '{') {\n            const candidate = getLongestBalancedString(text.slice(startPos))\n            if (candidate !== undefined) {\n                candidates.push(candidate)\n            }\n        } else if (text[startPos] === '\"') {\n            const quoteRe = /(?<!\\\\)\"/g\n            const quoteMatch = quoteRe.exec(text.slice(startPos + 1))\n            if (quoteMatch) {\n                candidates.push(text.slice(startPos + 1, startPos + quoteMatch.index + 1))\n            }\n        } else {\n            const commaRe = /,/g\n            const commaMatch = commaRe.exec(text.slice(startPos + 1))\n            if (commaMatch) {\n                candidates.push(text.slice(startPos, startPos + commaMatch.index + 1))\n            }\n        }\n    }\n    return candidates\n}\n"
  },
  {
    "path": "src/completion/completer/argument.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport { EnvSnippetType } from '../../types'\nimport type { CompletionArgs, CompletionProvider } from '../../types'\nimport { CmdEnvSuggestion, filterArgumentHint } from './completerutils'\n\nexport const provider: CompletionProvider = { from }\n\nfunction from(result: RegExpMatchArray, args: CompletionArgs) {\n    if (result[1] === 'usepackage') {\n        return providePackageOptions(args.line)\n    }\n    if (result[1] === 'documentclass') {\n        return provideClassOptions(args.line)\n    }\n    const index = getArgumentIndex(result[2])\n    const packages = lw.completion.usepackage.getAll(args.langId)\n    let candidate: CmdEnvSuggestion | undefined\n    let environment: string | undefined\n    if (result[1] === 'begin') {\n        environment = result[2].match(/{(.*?)}/)?.[1]\n    }\n    for (const packageName of Object.keys(packages)) {\n        lw.completion.usepackage.load(packageName)\n        if (environment) {\n            const environments = lw.completion.environment.getEnvFromPkg(packageName, EnvSnippetType.AsMacro) || []\n            for (const env of environments) {\n                if (environment !== env.signature.name) {\n                    continue\n                }\n                if (index !== env.keyPos + 1) { // Start from one.\n                    continue\n                }\n                candidate = env\n            }\n        } else {\n            const macros = lw.completion.macro.getPackageCmds(packageName)\n            for (const macro of macros) {\n                if (result[1] !== macro.signature.name) {\n                    continue\n                }\n                if (index !== macro.keyPos) {\n                    continue\n                }\n                candidate = macro\n                break\n            }\n        }\n        if (candidate !== undefined) {\n            break\n        }\n    }\n\n    if (candidate === undefined) {\n        return []\n    }\n\n    const keys = (candidate?.keys || []).map(key => lw.completion.usepackage.getKeys(candidate?.packageName, key)).flat()\n    const suggestions = keys.map(key => {\n        const item = new vscode.CompletionItem(key, vscode.CompletionItemKind.Constant)\n        item.insertText = new vscode.SnippetString(key)\n        return item\n    }) || []\n\n    filterArgumentHint(suggestions)\n\n    return suggestions\n}\n\nfunction providePackageOptions(line: string): vscode.CompletionItem[] {\n    const regex = /\\\\usepackage.*{(.*?)}/\n    const match = line.match(regex)\n    if (!match) {\n        return []\n    }\n    lw.completion.usepackage.load(match[1])\n    const suggestions = lw.completion.usepackage.getArgs(match[1])\n        .map(option => {\n            const item = new vscode.CompletionItem(option, vscode.CompletionItemKind.Constant)\n            item.insertText = new vscode.SnippetString(option)\n            return item\n        })\n\n    filterArgumentHint(suggestions)\n\n    return suggestions\n}\n\nfunction provideClassOptions(line: string): vscode.CompletionItem[] {\n    const regex = /\\\\documentclass.*{(.*?)}/s\n    const match = line.match(regex)\n    if (!match) {\n        return []\n    }\n    const isDefaultClass = ['article', 'report', 'book'].includes(match[1])\n    lw.completion.usepackage.load(isDefaultClass ? 'latex-document' : `class-${match[1]}`)\n    const suggestions = lw.completion.usepackage.getArgs(isDefaultClass ? 'latex-document' : `class-${match[1]}`)\n        .map(option => {\n            const item = new vscode.CompletionItem(option, vscode.CompletionItemKind.Constant)\n            item.insertText = new vscode.SnippetString(option)\n            return item\n        })\n\n    filterArgumentHint(suggestions)\n\n    return suggestions\n}\n\nfunction getArgumentIndex(argstr: string) {\n    let argumentIndex = 0\n    let curlyLevel = argstr[0] === '{' ? 1 : 0\n    let squareLevel = argstr[0] === '[' ? 1 : 0\n    for (let index = 1; index < argstr.length; index++) {\n        if (argstr[index-1] === '\\\\') {\n            continue\n        }\n        switch (argstr[index]) {\n            case '{':\n                curlyLevel++\n                break\n            case '[':\n                squareLevel++\n                break\n            case '}':\n                curlyLevel--\n                if (curlyLevel === 0 && squareLevel === 0) {\n                    argumentIndex++\n                }\n                break\n            case ']':\n                squareLevel--\n                if (curlyLevel === 0 && squareLevel === 0) {\n                    argumentIndex++\n                }\n                break\n            default:\n                break\n        }\n    }\n    return argumentIndex\n}\n"
  },
  {
    "path": "src/completion/completer/atsuggestion.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport { lw } from '../../lw'\nimport type { CompletionProvider, CompletionArgs } from '../../types'\nimport { escapeRegExp } from '../../utils/utils'\n\nexport const provider: CompletionProvider = { from }\nexport const atSuggestion = {\n    initialize\n}\n\nconst data = {\n    triggerCharacter: '',\n    escapedTriggerCharacter: '',\n    suggestions: [] as vscode.CompletionItem[]\n}\n\ninterface AtSuggestionItemEntry {\n    prefix: string,\n    body: string,\n    description: string\n}\n\nlw.onConfigChange(['intellisense.atSuggestion.user'], initialize)\n// AtSuggestion is not initialized here, but in AtSuggestionCompleter\nfunction initialize(triggerCharacter?: string) {\n    if (triggerCharacter) {\n        data.triggerCharacter = triggerCharacter\n        data.escapedTriggerCharacter = escapeRegExp(data.triggerCharacter)\n    }\n    const userSnippets = vscode.workspace.getConfiguration('latex-workshop').get('intellisense.atSuggestion.user') as {[key: string]: string}\n    data.suggestions.length = 0\n    Object.entries(userSnippets).forEach(([prefix, body]) => {\n        if (body === '') {\n            return\n        }\n        const completionItem = new vscode.CompletionItem(prefix.replace('@', data.triggerCharacter), vscode.CompletionItemKind.Function)\n        completionItem.insertText = new vscode.SnippetString(body)\n        completionItem.documentation = 'User defined @suggestion'\n        completionItem.detail = 'User defined @suggestion'\n        data.suggestions.push(completionItem)\n    })\n\n    const suggestions: {[key: string]: AtSuggestionItemEntry} = JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/at-suggestions.json`).toString()) as typeof import('../../../data/at-suggestions.json')\n    Object.values(suggestions).forEach(item => {\n        if (item.prefix in userSnippets) {\n            return\n        }\n        const completionItem = new vscode.CompletionItem(item.prefix.replace('@', data.triggerCharacter), vscode.CompletionItemKind.Function)\n        completionItem.insertText = new vscode.SnippetString(item.body)\n        completionItem.documentation = new vscode.MarkdownString(item.description)\n        completionItem.detail = item.description\n        data.suggestions.push(completionItem)\n    })\n}\n\nfunction from(result: RegExpMatchArray, args: CompletionArgs) {\n    const suggestions = provide(args.line, args.position)\n    // Manually filter suggestions when there are several consecutive trigger characters\n    const reg = new RegExp(data.escapedTriggerCharacter + '{2,}$')\n    if (result[0].match(reg)) {\n        const filteredSuggestions = suggestions.filter(item => item.label === result[0])\n        if (filteredSuggestions.length > 0) {\n            return filteredSuggestions.map(item => {\n                item.range = new vscode.Range(args.position.translate(undefined, -item.label.toString().length), args.position)\n                return item\n            })\n        }\n    }\n    return suggestions\n}\n\nfunction provide(line: string, position: vscode.Position): vscode.CompletionItem[] {\n    let range: vscode.Range | undefined = undefined\n    const startPos = line.lastIndexOf(data.triggerCharacter, position.character - 1)\n    if (startPos >= 0) {\n        range = new vscode.Range(position.line, startPos, position.line, position.character)\n    }\n    data.suggestions.forEach(suggestion => {suggestion.range = range})\n    return data.suggestions\n}\n"
  },
  {
    "path": "src/completion/completer/citation.ts",
    "content": "import * as vscode from 'vscode'\nimport { bibtexParser } from 'latex-utensils'\nimport { lw } from '../../lw'\nimport type { CitationField, CitationItem, CompletionArgs, CompletionItem, CompletionProvider } from '../../types'\nimport type { FileCache } from '../../types'\n\nimport { trimMultiLineString } from '../../utils/utils'\nimport { computeFilteringRange } from './completerutils'\n\nconst logger = lw.log('Intelli', 'Citation')\n\nexport const provider: CompletionProvider = { from }\nexport const citation = {\n    parse,\n    browser,\n    getItem,\n    parseBibFile\n}\n\nconst data = {\n    bibEntries: new Map<string, CitationItem[]>()\n}\n\nlw.watcher.bib.onCreate(uri => parseBibFile(uri.fsPath))\nlw.watcher.bib.onChange(uri => parseBibFile(uri.fsPath))\nlw.watcher.bib.onDelete(uri => removeEntriesInFile(uri.fsPath))\n\n/**\n * Read the value `intellisense.citation.format`\n * @param configuration workspace configuration\n * @param excludedField A field to exclude from the list of citation fields. Primary usage is to not include `citation.label` twice.\n */\nfunction readCitationFormat(configuration: vscode.WorkspaceConfiguration, excludedField?: string): string[] {\n    const fields = (configuration.get('intellisense.citation.format') as string[]).map(f => { return f.toLowerCase() })\n    if (excludedField) {\n        return fields.filter(f => f !== excludedField.toLowerCase())\n    }\n    return fields\n}\n\nexport const bibTools = {\n    expandField,\n    deParenthesis,\n    parseAbbrevations\n}\n\nfunction expandField(abbreviations: {[key: string]: string}, value: bibtexParser.FieldValue | undefined): string {\n    if (value === undefined) {\n        return ''\n    }\n    if (value.kind === 'concat') {\n        const args = value.content as bibtexParser.FieldValue[]\n        return args.map(arg => expandField(abbreviations, arg)).join(' ')\n    }\n    if (bibtexParser.isAbbreviationValue(value)) {\n        if (value.content in abbreviations) {\n            return abbreviations[value.content]\n        }\n        return ''\n    }\n    return value.content\n}\n\nfunction deParenthesis(str: string): string {\n    // Remove wrapping { }\n    // Extract the content of \\url{}\n    return str.replace(/\\\\url{([^\\\\{}]+)}/g, '$1').replace(/{+([^\\\\{}]+)}+/g, '$1')\n}\n\nfunction parseAbbrevations(ast: bibtexParser.BibtexAst) {\n    const abbreviations: {[key: string]: string} = {}\n    ast.content.filter(bibtexParser.isStringEntry).forEach((entry: bibtexParser.StringEntry) => {\n        // @string{string1 = \"Proceedings of the \"}\n        // @string{string2 = string1 # \"Foo\"}\n        if (typeof entry.value.content === 'string') {\n            abbreviations[entry.abbreviation] = entry.value.content\n        } else {\n            abbreviations[entry.abbreviation] =\n                (entry.value.content as (bibtexParser.AbbreviationValue | bibtexParser.TextStringValue)[]).map(subEntry => {\n                    if (bibtexParser.isAbbreviationValue(subEntry)) {\n                        return abbreviations[subEntry.content] ?? `undefined @string \"${subEntry.content}\"`\n                    } else {\n                        return subEntry.content\n                    }\n                }).join('')\n        }\n    })\n\n    return abbreviations\n}\n\n\nfunction from(_result: RegExpMatchArray, args: CompletionArgs) {\n    return provide(args.uri, args.line, args.position)\n}\n\nfunction provide(uri: vscode.Uri, line: string, position: vscode.Position): CompletionItem[] {\n    // Compile the suggestion array to vscode completion array\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', uri)\n    const label = configuration.get('intellisense.citation.label') as string\n    const fields = readCitationFormat(configuration)\n    const range: vscode.Range | undefined = computeFilteringRange(line, position)\n\n    const items = updateAll(lw.cache.getIncludedBib(lw.root.file.path))\n    const alts: CitationItem[] = []\n    items.forEach(item => {\n        if (item.fields.has('ids')) {\n            const ids = item.fields.get('ids')?.split(',').map(id => id.trim())\n            if (ids === undefined || ids.length === 0) {\n                return\n            }\n            for (const id of ids) {\n                const alt = Object.assign({}, item)\n                alt.key = id\n                alts.push(alt)\n            }\n        }\n    })\n    // Retrieve the list of fields to filter the completion items\n    const filterContents = configuration.get('intellisense.citation.filterText') as ('bibtex key' | 'title' | 'other fields')[]\n    // Construct the filter text for each item\n    const getFilterText = (item: CitationItem): string => {\n        const filterText = filterContents\n            .map(filterContent => ({\n                    'bibtex key': item.key,\n                    'title': item.fields.title || '',\n                    'other fields': item.fields.join(fields.filter(field => field !== 'title'), false)\n                }[filterContent] || ''))\n            .filter(text => text !== '')\n            .join(' ')\n\n        if (filterText === '') {\n            return `${item.key} ${item.fields.title || ''} ${item.fields.join(fields.filter(field => field !== 'title'), false)}`\n        }\n\n        return filterText\n    }\n    return [...items, ...alts].map(item => {\n        // Compile the completion item label\n        switch(label) {\n            case 'bibtex key':\n            default:\n                item.label = item.key\n                break\n            case 'title':\n                if (item.fields.title) {\n                    item.label = item.fields.title\n                }\n                break\n            case 'authors':\n                if (item.fields.author) {\n                    item.label = item.fields.author\n                }\n                break\n        }\n        item.filterText = getFilterText(item)\n        item.insertText = item.key\n        item.range = range\n        // We need two spaces to ensure md newline\n        item.documentation = new vscode.MarkdownString( '\\n' + item.fields.join(fields, true, '  \\n') + '\\n\\n')\n        return item\n    })\n}\n\nfunction browser(args?: CompletionArgs) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', args?.uri)\n    const label = configuration.get('intellisense.citation.label') as string\n    const fields = readCitationFormat(configuration, label)\n    void vscode.window.showQuickPick(updateAll(lw.cache.getIncludedBib(lw.root.file.path)).map(item => {\n        return {\n            label: item.fields.title ? trimMultiLineString(item.fields.title) : '',\n            description: item.key,\n            detail: item.fields.join(fields, true, ', ')\n        }\n    }), {\n        placeHolder: 'Press ENTER to insert citation key at cursor',\n        matchOnDetail: true,\n        matchOnDescription: true,\n        ignoreFocusOut: true\n    }).then(selected => {\n        if (!selected) {\n            return\n        }\n        if (vscode.window.activeTextEditor) {\n            const editor = vscode.window.activeTextEditor\n            const content = editor.document.getText(new vscode.Range(new vscode.Position(0, 0), editor.selection.start))\n            let start = editor.selection.start\n            if (content.lastIndexOf('\\\\cite') > content.lastIndexOf('}')) {\n                const curlyStart = content.lastIndexOf('{') + 1\n                const commaStart = content.lastIndexOf(',') + 1\n                start = editor.document.positionAt(curlyStart > commaStart ? curlyStart : commaStart)\n            }\n            void editor.edit(edit => edit.replace(new vscode.Range(start, editor.selection.end), selected.description || ''))\n                        .then(() => editor.selection = new vscode.Selection(editor.selection.end, editor.selection.end))\n        }\n    })\n}\n\nfunction getRawItem(key: string): CitationItem | undefined {\n    const suggestions = updateAll()\n    const entry = suggestions.find((elm) => elm.key === key)\n    return entry\n}\n\nfunction getItem(key: string, configurationScope?: vscode.ConfigurationScope): CitationItem | undefined {\n    const entry = getRawItem(key)\n    if (entry && !(entry.detail || entry.documentation)) {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop', configurationScope)\n        const fields = readCitationFormat(configuration)\n        // We need two spaces to ensure md newline\n        entry.documentation = new vscode.MarkdownString( '\\n' + entry.fields.join(fields, true, '  \\n') + '\\n\\n')\n    }\n    return entry\n}\n\n/**\n * Returns aggregated bib entries from `.bib` files and bibitems defined on LaTeX files included in the root file.\n *\n * @param bibFiles The array of the paths of `.bib` files. If `undefined`, the keys of `bibEntries` are used.\n */\nfunction updateAll(bibFiles?: string[]): CitationItem[] {\n    let suggestions: CitationItem[] = []\n    // From bib files\n    if (bibFiles === undefined) {\n        bibFiles = Array.from(data.bibEntries.keys())\n    }\n    bibFiles.forEach(file => {\n        const entry = data.bibEntries.get(file)\n        if (entry) {\n            suggestions = suggestions.concat(entry)\n        }\n    })\n    // From caches\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        const cachedBibs = lw.cache.get(cachedFile)?.elements.bibitem\n        if (cachedBibs === undefined) {\n            return\n        }\n        suggestions = suggestions.concat(cachedBibs)\n    })\n    return suggestions\n}\n\n/**\n * Parses `.bib` file. The results are stored in this instance.\n *\n * @param fileName The path of `.bib` file.\n */\nasync function parseBibFile(fileName: string) {\n    logger.log(`Parsing .bib entries from ${fileName}`)\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(fileName))\n    if ((await lw.external.stat(lw.file.toUri(fileName))).size >= (configuration.get('bibtex.maxFileSize') as number) * 1024 * 1024) {\n        logger.log(`Bib file is too large, ignoring it: ${fileName}`)\n        data.bibEntries.delete(fileName)\n        return\n    }\n    const newEntry: CitationItem[] = []\n    const bibtex = await lw.file.read(fileName)\n    logger.log(`Parse BibTeX AST from ${fileName} .`)\n    const ast = await lw.parser.parse.bib(lw.file.toUri(fileName), bibtex ?? '')\n    if (ast === undefined) {\n        logger.log(`Parsed 0 bib entries from ${fileName}.`)\n        lw.event.fire(lw.event.FileParsed, fileName)\n        return\n    }\n    const abbreviations = parseAbbrevations(ast)\n    ast.content\n        .filter(bibtexParser.isEntry)\n        .forEach((entry: bibtexParser.Entry) => {\n            if (entry.internalKey === undefined) {\n                return\n            }\n            const item: CitationItem = {\n                key: entry.internalKey,\n                label: entry.internalKey,\n                file: fileName,\n                position: new vscode.Position(entry.location.start.line - 1, entry.location.start.column - 1),\n                kind: vscode.CompletionItemKind.Reference,\n                fields: new Fields()\n            }\n            entry.content.forEach(field => {\n                const value = deParenthesis(expandField(abbreviations, field.value))\n                item.fields.set(field.name, value)\n            })\n            newEntry.push(item)\n        })\n    data.bibEntries.set(fileName, newEntry)\n    logger.log(`Parsed ${newEntry.length} bib entries from ${fileName} .`)\n    void lw.outline.reconstruct()\n    lw.event.fire(lw.event.FileParsed, fileName)\n}\n\nfunction removeEntriesInFile(file: string) {\n    logger.log(`Remove parsed bib entries for ${file}`)\n    data.bibEntries.delete(file)\n}\n\n/**\n * Updates the Manager cache for bibitems with Cache.\n * Cache `content` is parsed with regular expressions,\n * and the result is used to update the cache bibitem element.\n */\nfunction parse(cache: FileCache) {\n    cache.elements.bibitem = parseContent(cache.filePath, cache.content)\n}\n\nfunction parseContent(file: string, content: string): CitationItem[] {\n    const itemReg = /^(?!%).*\\\\bibitem(?:\\[[^[\\]{}]*\\])?{([^}]*)}/gm\n    const items: CitationItem[] = []\n    while (true) {\n        const result = itemReg.exec(content)\n        if (result === null) {\n            break\n        }\n        const postContent = content.substring(result.index + result[0].length, content.indexOf('\\n', result.index)).trim()\n        const positionContent = content.substring(0, result.index).split('\\n')\n        items.push({\n            key: result[1],\n            label: result[1],\n            file,\n            kind: vscode.CompletionItemKind.Reference,\n            detail: `${postContent}\\n...`,\n            fields: new Fields(),\n            position: new vscode.Position(positionContent.length - 1, positionContent[positionContent.length - 1].length)\n        })\n    }\n    return items\n}\n\nclass Fields extends Map<string, string> implements CitationField {\n    get author() { return this.get('author') }\n    get journal() { return this.get('journal') }\n    get journaltitle() { return this.get('journaltitle') }\n    get title() { return this.get('title') }\n    get publisher() { return this.get('publisher') }\n\n    /**\n     * Concatenate the values of the fields listed in `selectedFields`\n     * @param selectedFields an array of field names\n     * @param prefixWithKeys if true, every field is prefixed by 'Fieldname: '\n     * @param joinString the string to use for joining the fields\n     * @returns a string\n     */\n    join(selectedFields: string[], prefixWithKeys: boolean, joinString: string = ' '): string {\n        const s: string[] = []\n        for (const key of this.keys()) {\n            if (selectedFields.includes(key)) {\n                const value = this.get(key) as string\n                if (prefixWithKeys) {\n                    s.push(key.charAt(0).toUpperCase() + key.slice(1) + ': ' + value)\n                } else {\n                    s.push(value)\n                }\n            }\n        }\n        return s.join(joinString)\n    }\n}\n"
  },
  {
    "path": "src/completion/completer/class.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport { lw } from '../../lw'\nimport type { CompletionProvider } from '../../types'\n\nexport const provider: CompletionProvider = { from }\n\nconst data = {\n    suggestions: [] as vscode.CompletionItem[]\n}\n\ntype ClassItemEntry = {\n    command: string,\n    detail: string,\n    documentation: string\n}\n\nfunction initialize(classes: {[key: string]: ClassItemEntry}) {\n    Object.values(classes).forEach(item => {\n        const cl = new vscode.CompletionItem(item.command, vscode.CompletionItemKind.Module)\n        cl.detail = item.detail\n        cl.documentation = new vscode.MarkdownString(`[${item.documentation}](${item.documentation})`)\n        data.suggestions.push(cl)\n    })\n}\n\nfunction from(): vscode.CompletionItem[] {\n    if (data.suggestions.length === 0) {\n        const allClasses: {[key: string]: ClassItemEntry} = JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/classnames.json`).toString()) as typeof import('../../../data/classnames.json')\n        initialize(allClasses)\n    }\n    return data.suggestions\n}\n"
  },
  {
    "path": "src/completion/completer/closeenv.ts",
    "content": "import * as vscode from 'vscode'\nimport type { CompletionArgs, CompletionProvider } from '../../types'\n\nexport const provider: CompletionProvider = { from }\n\nfunction from(result: RegExpMatchArray, _args: CompletionArgs): vscode.CompletionItem[] {\n    if (result[1] === '') {\n        return []\n    }\n    const suggestion = new vscode.CompletionItem(`\\\\end{${result[1]}}`, vscode.CompletionItemKind.Module)\n    suggestion.insertText = new vscode.SnippetString('\\n${0}' + `\\n\\\\end{${result[1]}}`)\n    return [ suggestion ]\n}\n"
  },
  {
    "path": "src/completion/completer/completerutils.ts",
    "content": "import * as vscode from 'vscode'\nimport type { CompletionItem } from '../../types'\n\ninterface CmdSignature {\n    /** name without leading `\\` */\n    readonly name: string,\n    /** {} for mandatory args and [] for optional args */\n    readonly args: string\n}\n\n/**\n * Return {name, args} from a signature string `name` + `args`\n */\n export function splitSignatureString(signature: string): CmdSignature {\n    const i = signature.search(/[[{]/)\n    if (i > -1) {\n        return {\n            name: signature.substring(0, i),\n            args: signature.substring(i, undefined)\n        }\n    } else {\n        return {\n            name: signature,\n            args: ''\n        }\n    }\n}\n\nexport class CmdEnvSuggestion extends vscode.CompletionItem implements CompletionItem {\n    constructor(public label: string, public packageName: string, public keys: string[], public keyPos: number, public signature: CmdSignature, kind: vscode.CompletionItemKind, public ifCond?: string, public unusual?: boolean) {\n        super(label, kind)\n    }\n\n    /**\n     * Return the signature, ie the name + {} for mandatory arguments + [] for optional arguments.\n     * The leading backward slash is not part of the signature\n     */\n    signatureAsString(): string {\n        return this.signature.name + this.signature.args\n    }\n\n    /**\n     * Return the name without the arguments\n     * The leading backward slash is not part of the signature\n     */\n    name(): string {\n        return this.signature.name\n    }\n\n    hasOptionalArgs(): boolean {\n        return this.signature.args.includes('[')\n    }\n}\n\nexport function filterNonLetterSuggestions(suggestions: CompletionItem[], typedText: string, pos: vscode.Position): CompletionItem[] {\n    if (typedText.match(/[^a-zA-Z]/)) {\n        const exactSuggestion = suggestions.filter(entry => entry.label.startsWith(typedText))\n        if (exactSuggestion.length > 0) {\n            return exactSuggestion.map(item => {\n                item.range = new vscode.Range(pos.translate(undefined, -typedText.length), pos)\n                return item\n            })\n        }\n    }\n    return suggestions\n}\n\nexport function computeFilteringRange(line: string, position: vscode.Position): vscode.Range | undefined {\n    const curlyStart = line.lastIndexOf('{', position.character)\n    const commaStart = line.lastIndexOf(',', position.character)\n    const startPos = Math.max(curlyStart, commaStart)\n    if (startPos >= 0) {\n        return new vscode.Range(position.line, startPos + 1, position.line, position.character)\n    }\n    return\n}\n\nexport function filterArgumentHint(suggestions: vscode.CompletionItem[]) {\n    if (!vscode.workspace.getConfiguration('latex-workshop').get('intellisense.argumentHint.enabled')) {\n        suggestions.forEach(item => {\n            if (!item.insertText) {\n                return\n            }\n            if (typeof item.insertText === 'string') {\n                item.insertText = item.insertText.replace(/\\$\\{(\\d+):[^$}]*\\}/g, '$${$1}')\n            } else {\n                item.insertText = new vscode.SnippetString(item.insertText.value.replace(/\\$\\{(\\d+):[^$}]*\\}/g, '$${$1}'))\n            }\n        })\n    }\n}\n"
  },
  {
    "path": "src/completion/completer/environment.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport { EnvSnippetType } from '../../types'\nimport type {\n    CompletionArgs,\n    CompletionItem,\n    CompletionProvider,\n    EnvironmentInfo,\n    EnvironmentRaw,\n    FileCache,\n} from '../../types'\nimport { CmdEnvSuggestion, filterNonLetterSuggestions, filterArgumentHint } from './completerutils'\n\nexport const provider: CompletionProvider = { from }\nexport const environment = {\n    parse,\n    getDefaultEnvs,\n    setPackageEnvs,\n    getEnvFromPkg,\n    provideEnvsAsMacroInPkg,\n}\n\nconst data = {\n    defaultEnvsAsName: [] as CmdEnvSuggestion[],\n    defaultEnvsAsMacro: [] as CmdEnvSuggestion[],\n    defaultEnvsForBegin: [] as CmdEnvSuggestion[],\n    packageEnvs: new Map<string, EnvironmentInfo[]>(),\n    packageEnvsAsName: new Map<string, CmdEnvSuggestion[]>(),\n    packageEnvsAsMacro: new Map<string, CmdEnvSuggestion[]>(),\n    packageEnvsForBegin: new Map<string, CmdEnvSuggestion[]>(),\n}\n\nlw.onConfigChange('intellisense.package.exclude', initialize)\ninitialize()\nfunction initialize() {\n    const excludeDefault = (\n        vscode.workspace.getConfiguration('latex-workshop').get('intellisense.package.exclude') as string[]\n    ).includes('lw-default')\n    const envs = excludeDefault\n        ? []\n        : (\n              JSON.parse(\n                  fs.readFileSync(`${lw.extensionRoot}/data/environments.json`, { encoding: 'utf8' })\n              ) as EnvironmentRaw[]\n          ).map((env) => envRawToInfo('latex', env))\n    data.defaultEnvsAsMacro = []\n    data.defaultEnvsForBegin = []\n    data.defaultEnvsAsName = []\n    envs.forEach((env) => {\n        data.defaultEnvsAsMacro.push(entryEnvToCompletion(env, EnvSnippetType.AsMacro))\n        data.defaultEnvsForBegin.push(entryEnvToCompletion(env, EnvSnippetType.ForBegin))\n        data.defaultEnvsAsName.push(entryEnvToCompletion(env, EnvSnippetType.AsName))\n    })\n\n    return data\n}\n\n/**\n * This function is called by Macro.initialize with type=EnvSnippetType.AsMacro\n * to build a `\\envname` macro for every default environment.\n */\nfunction getDefaultEnvs(type: EnvSnippetType): CmdEnvSuggestion[] {\n    switch (type) {\n        case EnvSnippetType.AsName:\n            return data.defaultEnvsAsName\n            break\n        case EnvSnippetType.AsMacro:\n            return data.defaultEnvsAsMacro\n            break\n        case EnvSnippetType.ForBegin:\n            return data.defaultEnvsForBegin\n            break\n        default:\n            return []\n    }\n}\n\nfunction getPackageEnvs(type?: EnvSnippetType): Map<string, CmdEnvSuggestion[]> {\n    switch (type) {\n        case EnvSnippetType.AsName:\n            return data.packageEnvsAsName\n        case EnvSnippetType.AsMacro:\n            return data.packageEnvsAsMacro\n        case EnvSnippetType.ForBegin:\n            return data.packageEnvsForBegin\n        default:\n            return new Map<string, CmdEnvSuggestion[]>()\n    }\n}\n\nfunction from(result: RegExpMatchArray, args: CompletionArgs) {\n    const suggestions = provide(args.langId, args.line, args.position)\n    // Macros starting with a non letter character are not filtered properly because of wordPattern definition.\n    return filterNonLetterSuggestions(suggestions, result[1], args.position)\n}\n\nfunction provide(langId: string, line: string, position: vscode.Position): CompletionItem[] {\n    let snippetType: EnvSnippetType = EnvSnippetType.AsName\n    if (\n        vscode.window.activeTextEditor &&\n        vscode.window.activeTextEditor.selections.length === 1 &&\n        line.indexOf('\\\\begin') > line.indexOf('\\\\end') &&\n        line.slice(position.character).match(/[a-zA-Z*]*}/) === null\n    ) {\n        snippetType = EnvSnippetType.ForBegin\n    }\n\n    // Extract cached envs and add to default ones\n    const suggestions: CmdEnvSuggestion[] = Array.from(getDefaultEnvs(snippetType))\n    const envList: string[] = getDefaultEnvs(snippetType).map((env) => env.label)\n\n    // Insert package environments\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (configuration.get('intellisense.package.enabled')) {\n        const unusual = configuration.get('intellisense.package.unusual') as boolean\n        const packages = lw.completion.usepackage.getAll(langId)\n        Object.entries(packages).forEach(([packageName, options]) => {\n            getEnvFromPkg(packageName, snippetType).forEach((env) => {\n                if (env.ifCond && !options.includes(env.ifCond)) {\n                    return\n                }\n                if (env.unusual && !unusual) {\n                    return\n                }\n                if (!envList.includes(env.label)) {\n                    suggestions.push(env)\n                    envList.push(env.label)\n                }\n            })\n        })\n    }\n\n    // Insert environments defined in tex\n    lw.cache.getIncludedTeX().forEach((cachedFile) => {\n        const cachedEnvs = lw.cache.get(cachedFile)?.elements.environment\n        if (cachedEnvs !== undefined) {\n            cachedEnvs.forEach((env) => {\n                if (!envList.includes(env.label)) {\n                    if (snippetType === EnvSnippetType.ForBegin) {\n                        env.insertText = new vscode.SnippetString(`${env.label}}\\n\\t$0\\n\\\\end{${env.label}}`)\n                    } else {\n                        env.insertText = env.label\n                    }\n                    suggestions.push(env)\n                    envList.push(env.label)\n                }\n            })\n        }\n    })\n\n    filterArgumentHint(suggestions)\n\n    return suggestions\n}\n\n/**\n * Environments can be inserted using `\\envname`.\n * This function is called by Macro.provide to compute these macros for every package in use.\n */\nfunction provideEnvsAsMacroInPkg(\n    packageName: string,\n    options: string[],\n    suggestions: CmdEnvSuggestion[],\n    defined?: Set<string>\n) {\n    defined = defined ?? new Set<string>()\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const useOptionalArgsEntries = configuration.get('intellisense.optionalArgsEntries.enabled')\n\n    if (!configuration.get('intellisense.package.env.enabled')) {\n        return\n    }\n\n    // Load environments from the package if not already done\n    const envs = getEnvFromPkg(packageName, EnvSnippetType.AsMacro)\n    // No environment defined in package\n    if (!envs || envs.length === 0) {\n        return\n    }\n\n    const unusual = configuration.get('intellisense.package.unusual') as boolean\n    // Insert env snippets\n    envs.forEach((env) => {\n        if (!useOptionalArgsEntries && env.hasOptionalArgs()) {\n            return\n        }\n        if (!defined.has(env.signatureAsString())) {\n            if (env.ifCond && !options.includes(env.ifCond)) {\n                return\n            }\n            if (env.unusual && !unusual) {\n                return\n            }\n            suggestions.push(env)\n            defined.add(env.signatureAsString())\n        }\n    })\n}\n\nfunction parse(cache: FileCache) {\n    if (cache.ast !== undefined) {\n        cache.elements.environment = parseAst(cache.ast)\n    } else {\n        cache.elements.environment = parseContent(cache.contentTrimmed)\n    }\n}\n\nfunction parseAst(node: Ast.Node): CmdEnvSuggestion[] {\n    let envs: CmdEnvSuggestion[] = []\n    if (node.type === 'environment' || node.type === 'mathenv') {\n        const content = typeof node.env === 'string' ? node.env : (node.env as unknown as { content: string }).content\n        const env = new CmdEnvSuggestion(\n            `${content}`,\n            '',\n            [],\n            -1,\n            { name: content, args: '' },\n            vscode.CompletionItemKind.Module\n        )\n        env.documentation = '`' + content + '`'\n        env.filterText = content\n        envs.push(env)\n    }\n\n    const parseNodeContent = (content: Ast.Node[]) => {\n        for (const subNode of content) {\n            envs = [...envs, ...parseAst(subNode)]\n        }\n    }\n    if (node.type === 'macro' && node.args) {\n        for (const arg of node.args) {\n            parseNodeContent(arg.content)\n        }\n    } else if ('content' in node && typeof node.content !== 'string') {\n        parseNodeContent(node.content)\n    }\n\n    return envs\n}\n\nfunction parseContent(content: string): CmdEnvSuggestion[] {\n    const envReg = /\\\\begin\\s?{([^{}]*)}/g\n    const envs: CmdEnvSuggestion[] = []\n    const envList: string[] = []\n    while (true) {\n        const result = envReg.exec(content)\n        if (result === null) {\n            break\n        }\n        if (envList.includes(result[1])) {\n            continue\n        }\n        const env = new CmdEnvSuggestion(\n            `${result[1]}`,\n            '',\n            [],\n            -1,\n            { name: result[1], args: '' },\n            vscode.CompletionItemKind.Module\n        )\n        env.documentation = '`' + result[1] + '`'\n        env.filterText = result[1]\n\n        envs.push(env)\n        envList.push(result[1])\n    }\n    return envs\n}\n\nfunction getEnvFromPkg(packageName: string, type: EnvSnippetType): CmdEnvSuggestion[] {\n    const packageEnvs = getPackageEnvs(type)\n    const entry = packageEnvs.get(packageName)\n    if (entry !== undefined) {\n        return entry\n    }\n\n    lw.completion.usepackage.load(packageName)\n    // No package macro defined\n    const pkgEnvs = data.packageEnvs.get(packageName)\n    if (!pkgEnvs || pkgEnvs.length === 0) {\n        return []\n    }\n\n    const newEntry: CmdEnvSuggestion[] = []\n    pkgEnvs.forEach((env) => {\n        // \\array{} : detail=array{}, name=array.\n        newEntry.push(entryEnvToCompletion(env, type))\n    })\n    packageEnvs.set(packageName, newEntry)\n    return newEntry\n}\n\nfunction envRawToInfo(packageName: string, env: EnvironmentRaw): EnvironmentInfo {\n    const envInfo: EnvironmentInfo = {\n        ...env,\n        package: packageName,\n        detail: env.name,\n    }\n    return envInfo\n}\n\nfunction setPackageEnvs(packageName: string, envs: EnvironmentRaw[]) {\n    data.packageEnvs.set(\n        packageName,\n        envs.map((env) => envRawToInfo(packageName, env))\n    )\n}\n\nfunction entryEnvToCompletion(item: EnvironmentInfo, type: EnvSnippetType): CmdEnvSuggestion {\n    const label = item.detail ? item.detail : item.name\n    const suggestion = new CmdEnvSuggestion(\n        item.name + (item.arg?.format ?? ''),\n        item.package || 'latex',\n        item.arg?.keys ?? [],\n        item.arg?.keyPos ?? -1,\n        { name: item.name, args: item.arg?.format ?? '' },\n        vscode.CompletionItemKind.Module,\n        item.if,\n        item.unusual\n    )\n    suggestion.detail = `\\\\begin{${item.name}}${\n        item.arg?.snippet.replace(/\\$\\{\\d+:([^$}]*)\\}/g, '$1') ?? ''\n    }\\n...\\n\\\\end{${item.name}}`\n    suggestion.documentation = `Environment ${item.name} .`\n    if (item.package) {\n        suggestion.documentation += ` From package: ${item.package}.`\n    }\n    suggestion.sortText = label.replace(/([a-z])/g, '$10').toLowerCase()\n\n    if (type === EnvSnippetType.AsName) {\n        return suggestion\n    } else {\n        if (type === EnvSnippetType.AsMacro) {\n            suggestion.kind = vscode.CompletionItemKind.Snippet\n        }\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const useTabStops = configuration.get('intellisense.useTabStops.enabled')\n        const prefix = type === EnvSnippetType.ForBegin ? '' : 'begin{'\n        let snippet: string = item.arg?.snippet ?? ''\n        if (item.arg?.snippet && useTabStops) {\n            snippet = item.arg.snippet.replace(/\\$\\{(\\d+):[^}]*\\}/g, '$${$1}')\n        }\n        if (snippet.match(/\\$\\{?0\\}?/)) {\n            snippet = snippet.replace(/\\$\\{?0\\}?/, '$${0:$${TM_SELECTED_TEXT}}')\n            snippet += '\\n'\n        } else {\n            snippet += '\\n\\t${0:${TM_SELECTED_TEXT}}\\n'\n        }\n        if (item.detail) {\n            suggestion.label = item.detail\n        }\n        suggestion.filterText = item.detail\n        suggestion.insertText = new vscode.SnippetString(`${prefix}${item.name}}${snippet}\\\\end{${item.name}}`)\n        return suggestion\n    }\n}\n"
  },
  {
    "path": "src/completion/completer/glossary.ts",
    "content": "import * as vscode from 'vscode'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { bibtexParser } from 'latex-utensils'\nimport { lw } from '../../lw'\nimport { GlossaryType } from '../../types'\nimport type { CompletionProvider, FileCache, GlossaryItem } from '../../types'\nimport { argContentToStr } from '../../utils/parser'\nimport { getLongestBalancedString } from '../../utils/utils'\nimport { bibTools } from './citation'\n\nconst logger = lw.log('Intelli', 'Glossary')\nexport const provider: CompletionProvider = { from }\nexport const glossary = {\n    parse,\n    getItem,\n    parseBibFile\n}\n\nconst data = {\n    // The keys are the labels of the glossary items.\n    glossaries: new Map<string, GlossaryItem>(),\n    acronyms: new Map<string, GlossaryItem>(),\n    // The keys are the paths of the `.bib` files.\n    bibEntries: new Map<string, GlossaryItem[]>()\n}\n\nlw.watcher.glossary.onCreate(uri => parseBibFile(uri.fsPath))\nlw.watcher.glossary.onChange(uri => parseBibFile(uri.fsPath))\nlw.watcher.glossary.onDelete(uri => removeEntriesInFile(uri.fsPath))\n\nfunction from(result: RegExpMatchArray): vscode.CompletionItem[] {\n    updateAll(lw.cache.getIncludedGlossaryBib(lw.root.file.path))\n    let suggestions: Map<string, GlossaryItem>\n\n    if (result[1] && result[1].match(/^ac/i)) {\n        suggestions = data.acronyms\n    } else {\n        suggestions = new Map( [...data.acronyms, ...data.glossaries] )\n    }\n\n    // Compile the suggestion object to array\n    const items = Array.from(suggestions.values())\n    return items\n}\n\nfunction getItem(token: string): GlossaryItem | undefined {\n    updateAll(lw.cache.getIncludedGlossaryBib(lw.root.file.path))\n    return data.glossaries.get(token) || data.acronyms.get(token)\n}\n\n\n/**\n * Returns aggregated glossary entries from `.bib` files and glossary items defined on LaTeX files included in the root file.\n *\n * @param bibFiles The array of the paths of `.bib` files. If `undefined`, the keys of `bibEntries` are used.\n */\nfunction updateAll(bibFiles: string[]) {\n    // Extract cached references\n    const glossaryList: string[] = []\n\n    // From bib files\n    bibFiles.forEach(file => {\n        const entries = data.bibEntries.get(file)\n        entries?.forEach(entry => {\n            if (entry.type === GlossaryType.glossary) {\n                data.glossaries.set(entry.label, entry)\n            } else {\n                data.acronyms.set(entry.label, entry)\n            }\n            glossaryList.push(entry.label)\n        })\n    })\n\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        const cachedGlossaries = lw.cache.get(cachedFile)?.elements.glossary\n        if (cachedGlossaries === undefined) {\n            return\n        }\n        cachedGlossaries.forEach(ref => {\n            if (ref.type === GlossaryType.glossary) {\n                data.glossaries.set(ref.label, ref)\n            } else {\n                data.acronyms.set(ref.label, ref)\n            }\n            glossaryList.push(ref.label)\n        })\n    })\n\n    // Remove references that have been deleted\n    data.glossaries.forEach((_, key) => {\n        if (!glossaryList.includes(key)) {\n            data.glossaries.delete(key)\n        }\n    })\n    data.acronyms.forEach((_, key) => {\n        if (!glossaryList.includes(key)) {\n            data.acronyms.delete(key)\n        }\n    })\n}\n\n/**\n * Parse a glossary `.bib` file. The results are stored in this instance.\n *\n * @param fileName The path of `.bib` file.\n */\nasync function parseBibFile(fileName: string) {\n    logger.log(`Parsing glossary .bib entries from ${fileName}`)\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(fileName))\n    if ((await lw.external.stat(lw.file.toUri(fileName))).size >= (configuration.get('bibtex.maxFileSize') as number) * 1024 * 1024) {\n        logger.log(`Bib file is too large, ignoring it: ${fileName}`)\n        data.bibEntries.delete(fileName)\n        return\n    }\n    const newEntry: GlossaryItem[] = []\n    const bibtex = await lw.file.read(fileName)\n    logger.log(`Parse BibTeX AST from ${fileName} .`)\n    const ast = await lw.parser.parse.bib(lw.file.toUri(fileName), bibtex ?? '')\n    if (ast === undefined) {\n        logger.log(`Parsed 0 bib entries from ${fileName}.`)\n        lw.event.fire(lw.event.FileParsed, fileName)\n        return\n    }\n    const abbreviations = bibTools.parseAbbrevations(ast)\n    ast.content\n        .filter(bibtexParser.isEntry)\n        .forEach((entry: bibtexParser.Entry) => {\n            if (entry.internalKey === undefined) {\n                return\n            }\n            let type: GlossaryType\n            if ( ['entry'].includes(entry.entryType) ) {\n                type = GlossaryType.glossary\n            } else {\n                type = GlossaryType.acronym\n            }\n            const name = bibTools.expandField(abbreviations, entry.content.find(field => field.name === 'name')?.value)\n            const description = bibTools.expandField(abbreviations, entry.content.find(field => field.name === 'description')?.value)\n            const item: GlossaryItem = {\n                type,\n                label: entry.internalKey,\n                filePath: fileName,\n                position: new vscode.Position(entry.location.start.line - 1, entry.location.start.column - 1),\n                kind: vscode.CompletionItemKind.Reference,\n                detail: name + ': ' + description\n            }\n            newEntry.push(item)\n        })\n    data.bibEntries.set(fileName, newEntry)\n    logger.log(`Parsed ${newEntry.length} glossary bib entries from ${fileName} .`)\n    void lw.outline.reconstruct()\n    lw.event.fire(lw.event.FileParsed, fileName)\n}\n\nfunction removeEntriesInFile(file: string) {\n    logger.log(`Remove parsed bib entries for ${file}`)\n    data.bibEntries.delete(file)\n}\n\nfunction parse(cache: FileCache) {\n    if (cache.ast !== undefined) {\n        cache.elements.glossary = parseAst(cache.ast, cache.filePath)\n    } else {\n        cache.elements.glossary = parseContent(cache.contentTrimmed, cache.filePath)\n    }\n}\n\nfunction parseAst(node: Ast.Node, filePath: string): GlossaryItem[] {\n    let glos: GlossaryItem[] = []\n    let label: string = ''\n    let description: string = ''\n    let type: GlossaryType | undefined\n\n    if (node.type === 'macro' && ['newglossaryentry', 'provideglossaryentry'].includes(node.content)) {\n        type = GlossaryType.glossary\n        description = argContentToStr(node.args?.[1]?.content || [], true)\n        const index = description.indexOf('description=')\n        if (index >= 0) {\n            description = description.slice(index + 12)\n            if (description.charAt(0) === '{') {\n                description = getLongestBalancedString(description) ?? ''\n            } else {\n                description = description.split(',')[0] ?? ''\n            }\n        } else {\n            description = ''\n        }\n        label = argContentToStr(node.args?.[0]?.content || [])\n    } else if (node.type === 'macro' && ['longnewglossaryentry', 'longprovideglossaryentry', 'newacronym', 'newabbreviation', 'newabbr'].includes(node.content)) {\n        if (['longnewglossaryentry', 'longprovideglossaryentry'].includes(node.content)) {\n            type = GlossaryType.glossary\n        } else {\n            type = GlossaryType.acronym\n        }\n        label = argContentToStr(node.args?.[1]?.content || [])\n        description = argContentToStr(node.args?.[3]?.content || [])\n    }\n    if (type !== undefined && label && description && node.position !== undefined) {\n        glos.push({\n            type,\n            filePath,\n            position: new vscode.Position(node.position.start.line - 1, node.position.start.column - 1),\n            label,\n            detail: description,\n            kind: vscode.CompletionItemKind.Reference\n        })\n    }\n\n    const parseContentNodes = (content: Ast.Node[]) => {\n        for (const subNode of content) {\n            glos = [...glos, ...parseAst(subNode, filePath)]\n        }\n    }\n    if (node.type === 'macro' && node.args) {\n        for (const arg of node.args) {\n            parseContentNodes(arg.content)\n        }\n    } else if ('content' in node && typeof node.content !== 'string') {\n        parseContentNodes(node.content)\n    }\n\n    return glos\n}\n\nfunction parseContent(content: string, filePath: string): GlossaryItem[] {\n    const glossaries: GlossaryItem[] = []\n    const glossaryList: string[] = []\n\n    // We assume that the label is always result[1] and use getDescription(result) for the description\n    const regexes: {\n        [key: string]: {\n            regex: RegExp,\n            type: GlossaryType,\n            getDescription: (result: RegExpMatchArray) => string\n        }\n    } = {\n        'glossary': {\n            regex: /\\\\(?:provide|new)glossaryentry{([^{}]*)}\\s*{(?:(?!description).)*description=(?:([^{},]*)|{([^{}]*))[,}]/gms,\n            type: GlossaryType.glossary,\n            getDescription: (result) => { return result[2] ? result[2] : result[3] }\n        },\n        'longGlossary': {\n            regex: /\\\\long(?:provide|new)glossaryentry{([^{}]*)}\\s*{[^{}]*}\\s*{([^{}]*)}/gms,\n            type: GlossaryType.glossary,\n            getDescription: (result) => { return result[2] }\n        },\n        'acronym': {\n            regex: /\\\\newacronym(?:\\[[^[\\]]*\\])?{([^{}]*)}{[^{}]*}{([^{}]*)}/gm,\n            type: GlossaryType.acronym,\n            getDescription: (result) => { return result[2] }\n        }\n    }\n\n    for(const key in regexes){\n        while(true) {\n            const result = regexes[key].regex.exec(content)\n            if (result === null) {\n                break\n            }\n            const positionContent = content.substring(0, result.index).split('\\n')\n            if (glossaryList.includes(result[1])) {\n                continue\n            }\n            glossaries.push({\n                type: regexes[key].type,\n                filePath,\n                position: new vscode.Position(positionContent.length - 1, positionContent[positionContent.length - 1].length),\n                label: result[1],\n                detail: regexes[key].getDescription(result),\n                kind: vscode.CompletionItemKind.Reference\n            })\n        }\n    }\n\n    return glossaries\n}\n"
  },
  {
    "path": "src/completion/completer/input.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as micromatch from 'micromatch'\nimport { lw } from '../../lw'\nimport type { CompletionProvider, CompletionArgs, FileCache } from '../../types'\n\nconst logger = lw.log('Intelli', 'Input')\n\nconst ignoreFiles = ['**/.vscode', '**/.vscodeignore', '**/.gitignore']\n\nabstract class InputAbstract implements CompletionProvider {\n\n    /**\n     * Compute the base directory for file completion\n     *\n     * @param currentFile current file path\n     * @param importFromDir `From` argument of the import macro\n     * @param macro The macro which triggered the completion\n     */\n    abstract getBaseDir(currentFile: string, importFromDir: string, macro: string): string[]\n\n    /**\n     * Do we only list directories?\n     *\n     * @param importFromDir `From` argument of the import macro\n     */\n    abstract provideDirOnly(importFromDir: string): boolean\n\n\n    /**\n     * Filter a list of completion paths\n     *\n     * @param document The textDocumt from which the filtering was launch\n     * @param files The list of files to filter\n     * @param baseDir The base directory to resolve paths from\n     */\n    private filterIgnoredFiles(uri: vscode.Uri, files: string[], baseDir: string): string[] {\n        const excludeGlob = (Object.keys(vscode.workspace.getConfiguration('files', null).get('exclude') || {})).concat(vscode.workspace.getConfiguration('latex-workshop', uri).get('intellisense.file.exclude') || [] ).concat(ignoreFiles)\n        return files.filter(file => {\n            const filePath = path.resolve(baseDir, file)\n            return !micromatch.isMatch(filePath, excludeGlob, {basename: true})\n        })\n    }\n\n    from(result: RegExpMatchArray, args: CompletionArgs) {\n        const macro = result[1]\n        const payload = [...result.slice(2).reverse()]\n        return this.provide(args.uri, args.line, args.position, macro, payload)\n    }\n\n    /**\n     * Provide file name intellisense\n     *\n     * @param payload an array of string\n     *      payload[0]: The already typed path\n     *      payload[1]: The path from which completion is triggered, may be empty\n     */\n    private provide(uri: vscode.Uri, line: string, position: vscode.Position, macro: string, payload: string[]): vscode.CompletionItem[] {\n        const currentFile = uri.fsPath\n        const typedFolder = payload[0]\n        const importFromDir = payload[1]\n        const startPos = Math.max(line.lastIndexOf('{', position.character), line.lastIndexOf('/', position.character))\n        const range: vscode.Range | undefined = startPos >= 0 ? new vscode.Range(position.line, startPos + 1, position.line, position.character) : undefined\n        const baseDir: string[] = this.getBaseDir(currentFile, importFromDir, macro)\n        const provideDirOnly: boolean = this.provideDirOnly(importFromDir)\n\n        const suggestions: vscode.CompletionItem[] = []\n        baseDir.forEach(dir => {\n            if (typedFolder !== '') {\n                let currentFolder = typedFolder\n                if (! typedFolder.endsWith('/')) {\n                    currentFolder = path.dirname(typedFolder)\n                }\n                dir = path.resolve(dir, currentFolder)\n            }\n            try {\n                let files = fs.readdirSync(dir)\n                files = this.filterIgnoredFiles(uri, files, dir)\n\n                files.forEach(file => {\n                    const filePath = path.resolve(dir, file)\n                    if (dir === '/') {\n                        // Keep the leading '/' to have an absolute path\n                        file = '/' + file\n                    }\n\n                    if (fs.lstatSync(filePath).isDirectory()) {\n                        const item = new vscode.CompletionItem(`${file}/`, vscode.CompletionItemKind.Folder)\n                        item.range = range\n                        item.command = { title: 'Post-Action', command: 'editor.action.triggerSuggest' }\n                        item.detail = dir\n                        suggestions.push(item)\n                    } else if (! provideDirOnly) {\n                        const item = new vscode.CompletionItem(file, vscode.CompletionItemKind.File)\n                        const preview = vscode.workspace.getConfiguration('latex-workshop').get('intellisense.includegraphics.preview.enabled') as boolean\n                        if (preview && ['includegraphics', 'includesvg'].includes(macro)) {\n                            item.documentation = filePath\n                        }\n                        item.range = range\n                        item.detail = dir\n                        if (['include', 'includeonly', 'excludeonly'].includes(macro)) {\n                            item.insertText = path.parse(file).name\n                        }\n                        suggestions.push(item)\n                    }\n                })\n            } catch (err) {\n                logger.logError(`Error reading directory ${dir} .` ,err)\n            }\n        })\n        return suggestions\n    }\n}\n\nclass Input extends InputAbstract {\n    graphicsPath: Set<string> = new Set()\n\n    /**\n     * Set the graphics path\n     */\n    parseGraphicsPath(cache: FileCache) {\n        const regex = /\\\\graphicspath{[\\s\\n]*((?:{[^{}]*}[\\s\\n]*)*)}/g\n        let result: string[] | null\n        while (true) {\n            result = regex.exec(cache.contentTrimmed)\n            if (result === null) {\n                break\n            }\n            result[1].split(/\\{|\\}/).filter(s => s.replace(/^\\s*$/, '')).forEach(dir => this.graphicsPath.add(dir))\n        }\n    }\n\n    reset() {\n        this.graphicsPath.clear()\n    }\n\n    provideDirOnly(_importFromDir: string): boolean {\n        return false\n    }\n\n    getBaseDir(currentFile: string, _importFromDir: string, macro: string): string[] {\n        let baseDir: string[] = []\n        if (lw.root.dir.path === undefined) {\n            logger.log(`No root dir can be found. The current root file should be undefined, is ${lw.root.file.path}. How did you get here?`)\n            return []\n        }\n        // If there is no root, 'root relative' and 'both' should fall back to 'file relative'\n        const rootDir = lw.root.dir.path\n        if (['includegraphics', 'includesvg'].includes(macro) && this.graphicsPath.size > 0) {\n            baseDir = Array.from(this.graphicsPath).map(dir => path.join(rootDir, dir))\n        } else {\n            const baseConfig = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(currentFile)).get('intellisense.file.base')\n            const baseDirCurrentFile = path.dirname(currentFile)\n            switch (baseConfig) {\n                case 'root relative':\n                    baseDir = [rootDir]\n                    break\n                case 'file relative':\n                    baseDir = [baseDirCurrentFile]\n                    break\n                case 'both':\n                    if (baseDirCurrentFile !== rootDir) {\n                        baseDir = [baseDirCurrentFile, rootDir]\n                    } else {\n                        baseDir = [rootDir]\n                    }\n                    break\n                default:\n            }\n        }\n        return baseDir\n    }\n}\n\nclass Import extends InputAbstract {\n    provideDirOnly(importFromDir: string): boolean {\n        return (!importFromDir)\n    }\n\n    getBaseDir(_currentFile: string, importFromDir: string, _macro: string): string[] {\n        if (importFromDir) {\n            return [importFromDir]\n        } else {\n            return ['/']\n        }\n    }\n}\n\n\nclass SubImport extends InputAbstract {\n    provideDirOnly(importFromDir: string): boolean {\n        return (!importFromDir)\n    }\n\n\n    getBaseDir(currentFile: string, importFromDir: string, _macro: string): string[] {\n        if (importFromDir) {\n            return [path.join(path.dirname(currentFile), importFromDir)]\n        } else {\n            return [path.dirname(currentFile)]\n        }\n    }\n}\n\nexport const input = new Input()\nexport const inputProvider: CompletionProvider = input\n\nconst importMacro = new Import()\nconst subimportMacro = new SubImport()\nexport const importProvider: CompletionProvider = importMacro\nexport const subimportProvider: CompletionProvider = subimportMacro\n"
  },
  {
    "path": "src/completion/completer/macro.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport { EnvSnippetType } from '../../types'\nimport type { CompletionArgs, CompletionItem, CompletionProvider, FileCache, MacroRaw, PackageRaw } from '../../types'\nimport { environment } from './environment'\n\nimport { CmdEnvSuggestion, filterNonLetterSuggestions, filterArgumentHint } from './completerutils'\n\nexport const provider: CompletionProvider = { from }\nexport const macro = {\n    parse,\n    surround,\n    getPackageCmds,\n    setPackageCmds,\n    provideCmdInPkg,\n    getData\n}\n\nfunction getData() { return data }\nconst data = {\n    definedCmds: new Map<string, {filePath: string, location: vscode.Location}>(),\n    defaultCmds: [] as CmdEnvSuggestion[],\n    defaultSymbols: [] as CmdEnvSuggestion[],\n    packageCmds: new Map<string, CmdEnvSuggestion[]>()\n}\nObject.values(JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/unimathsymbols.json`).toString()) as typeof import('../../../data/unimathsymbols.json'))\n    .forEach(symbol => data.defaultSymbols.push(entryCmdToCompletion({ name: symbol.command, doc: symbol.documentation, detail: symbol.detail }, 'latex')))\n\nlw.onConfigChange(['intellisense.command.user', 'intellisense.package.exclude'], initialize)\ninitialize()\nfunction initialize() {\n    const excludeDefault = (vscode.workspace.getConfiguration('latex-workshop').get('intellisense.package.exclude') as string[]).includes('lw-default')\n    const macros = excludeDefault ? [] : JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/macros.json`, {encoding: 'utf8'})) as (MacroRaw & { action?: string })[]\n    const mathMacros = excludeDefault ? [] : (JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/packages/tex.json`, {encoding: 'utf8'})) as PackageRaw).macros\n    let all: (MacroRaw & { package: string, action?: string })[] = [...macros, ...mathMacros].map(m => {\n        const macroInfo = {\n            ...m,\n            package: 'latex',\n        }\n        return macroInfo\n    })\n\n    const defaultEnvs = environment.getDefaultEnvs(EnvSnippetType.AsMacro)\n\n    const userCmds = vscode.workspace.getConfiguration('latex-workshop').get('intellisense.command.user') as {[key: string]: string}\n    Object.entries(userCmds).forEach(([key, snippet]) => {\n        const candidate = all.find(m => m.name + (m.arg?.format ?? '') === key)\n        if (candidate && snippet !== '') {\n            candidate.name = ''\n            candidate.arg = { format: snippet, snippet }\n            candidate.package = 'user'\n        } else if (candidate && snippet === '') {\n            all = all.filter(m => m !== candidate)\n        } else {\n            all.push({ name: key, package: 'user', arg: { format: '', snippet } })\n        }\n    })\n\n    data.defaultCmds = []\n\n    // Initialize default macros and the ones in `tex.json`\n    all.forEach(m => data.defaultCmds.push(entryCmdToCompletion(m, m.package, m.action)))\n\n    // Initialize default env begin-end pairs\n    defaultEnvs.forEach(cmd => {\n        data.defaultCmds.push(cmd)\n    })\n}\n\nexport function isTriggerSuggestNeeded(name: string): boolean {\n    const reg = /^(?:[a-z]*(cite|ref|input)[a-z]*|begin|bibitem|(sub)?(import|includefrom|inputfrom)|gls(?:pl|text|first|plural|firstplural|name|symbol|desc|user(?:i|ii|iii|iv|v|vi))?|Acr(?:long|full|short)?(?:pl)?|ac[slf]?p?)/i\n    return reg.test(name)\n}\n\nfunction from(result: RegExpMatchArray, args: CompletionArgs) {\n    const suggestions = provide(args.langId, args.line, args.position)\n    // Macros ending with (, { or [ are not filtered properly by vscode intellisense. So we do it by hand.\n    if (result[0].match(/[({[]$/)) {\n        const exactSuggestion = suggestions.filter(entry => entry.label === result[0])\n        if (exactSuggestion.length > 0) {\n            return exactSuggestion\n        }\n    }\n    // Macros starting with a non letter character are not filtered properly because of wordPattern definition.\n    return filterNonLetterSuggestions(suggestions, result[1], args.position)\n}\n\nfunction provide(langId: string, line?: string, position?: vscode.Position): CompletionItem[] {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const useOptionalArgsEntries = configuration.get('intellisense.optionalArgsEntries.enabled')\n    let range: vscode.Range | undefined = undefined\n    if (line && position) {\n        const startPos = line.lastIndexOf('\\\\', position.character - 1)\n        if (startPos >= 0) {\n            range = new vscode.Range(position.line, startPos + 1, position.line, position.character)\n        }\n    }\n    const suggestions: CmdEnvSuggestion[] = []\n    let defined = new Set<string>()\n    // Insert default macros\n    data.defaultCmds.forEach(cmd => {\n        if (!useOptionalArgsEntries && cmd.hasOptionalArgs()) {\n            return\n        }\n        cmd.range = range\n        suggestions.push(cmd)\n        defined.add(cmd.signatureAsString())\n    })\n\n    // Insert unimathsymbols\n    if (configuration.get('intellisense.unimathsymbols.enabled')) {\n        data.defaultSymbols.forEach(symbol => {\n            suggestions.push(symbol)\n            defined.add(symbol.signatureAsString())\n        })\n    }\n\n    // Insert macros from packages\n    if ((configuration.get('intellisense.package.enabled'))) {\n        const packages = lw.completion.usepackage.getAll(langId)\n        Object.entries(packages).forEach(([packageName, options]) => {\n            provideCmdInPkg(packageName, options, suggestions)\n            environment.provideEnvsAsMacroInPkg(packageName, options, suggestions, defined)\n        })\n    }\n\n    // Start working on macros in tex. To avoid over populating suggestions, we do not include\n    // user defined macros, whose name matches a default macro or one provided by a package\n    defined = new Set<string>(suggestions.map(s => s.signatureAsString()))\n    lw.cache.getIncludedTeX().forEach(tex => {\n        const cmds = lw.cache.get(tex)?.elements.macro\n        if (cmds !== undefined) {\n            cmds.forEach(cmd => {\n                if (!defined.has(cmd.signatureAsString())) {\n                    cmd.range = range\n                    suggestions.push(cmd)\n                    defined.add(cmd.signatureAsString())\n                }\n            })\n        }\n    })\n\n    filterArgumentHint(suggestions)\n\n    return suggestions\n}\n\n/**\n * Surrounds `content` with a macro picked in QuickPick.\n *\n * @param content A string to be surrounded. If not provided, then we loop over all the selections and surround each of them.\n */\nfunction surround(cmdItems?: CompletionItem[]) {\n    const editor = vscode.window.activeTextEditor\n    if (!editor) {\n        return\n    }\n    cmdItems = cmdItems ?? provide(editor.document.languageId)\n\n    const candidate: { macro: string, detail: string, label: string }[] = []\n    cmdItems.forEach(item => {\n        if (item.insertText === undefined) {\n            return\n        }\n        if (item.label === '\\\\begin') { // Causing a lot of trouble\n            return\n        }\n        let macroStr = (typeof item.insertText !== 'string') ? item.insertText.value : item.insertText\n        if (macroStr.match(/(.*)(\\${\\d.*?})/)) {\n            macroStr = macroStr.replace('\\\\\\\\', '\\\\').replace(/:\\${TM_SELECTED_TEXT:?(.*?)}/g, '$1')\n            candidate.push({\n                macro: macroStr,\n                detail: '\\\\' + macroStr.replace(/[\\n\\t]/g, '').replace(/\\$\\{(\\d+)\\}/g, '$$$1'),\n                label: item.label\n            })\n        }\n    })\n    void vscode.window.showQuickPick(candidate, {\n        placeHolder: 'Press ENTER to surround previous selection with selected macro',\n        matchOnDetail: false,\n        matchOnDescription: false\n    }).then(selected => {\n        if (selected === undefined) {\n            return\n        }\n        void editor.edit( editBuilder => {\n            for (const selection of editor.selections) {\n                const selectedContent = editor.document.getText(selection).replaceAll('$', '$$$$')\n                const selectedMacro = '\\\\' + selected.macro\n                editBuilder.replace(new vscode.Range(selection.start, selection.end),\n                    selectedMacro.replace(/\\$\\d/g, '')                                // Remove $2 etc\n                                 .replace(/(.*)(\\${\\d.*?})/g, `$1${selectedContent}`) // Replace text\n                                 .replace(/\\${\\d:?(.*?)}/g, '$1'))                   // Remove snippet placeholders\n            }\n        })\n    })\n    return\n}\n\nfunction parse(cache: FileCache) {\n    // Remove newcommand macros, because they will be re-insert in the next step\n    data.definedCmds.forEach((entry,cmd) => {\n        if (entry.filePath === cache.filePath) {\n            data.definedCmds.delete(cmd)\n        }\n    })\n    if (cache.ast !== undefined) {\n        cache.elements.macro = parseAst(cache.ast, cache.filePath)\n    } else {\n        cache.elements.macro = parseContent(cache.contentTrimmed, cache.filePath)\n    }\n}\n\nfunction parseAst(node: Ast.Node, filePath: string, defined?: Set<string>): CmdEnvSuggestion[] {\n    defined = defined ?? new Set<string>()\n    let cmds: CmdEnvSuggestion[] = []\n    let found = false\n    let name = ''\n    let args = ''\n    if (node.type === 'macro' &&\n        ['renewcommand', 'newcommand', 'newrobustcmd', 'renewrobustcmd'].includes(node.content) &&\n        node.args?.[2]?.content?.[0]?.type === 'macro') {\n        // \\newcommand{\\fix}[3][]{\\chdeleted{#2}\\chadded[comment={#1}]{#3}}\n        // \\newcommand\\WARNING{\\textcolor{red}{WARNING}}\n        found = true\n        name = node.args[2].content[0].content\n        if (node.args?.[3].content?.[0]?.type === 'string' &&\n            parseInt(node.args?.[3].content?.[0].content) > 0) {\n            args = (node.args?.[4].openMark === '[' ? '[]' : '{}') + '{}'.repeat(parseInt(node.args?.[3].content?.[0].content) - 1)\n        }\n    } else if (node.type === 'macro' &&\n        ['DeclarePairedDelimiter', 'DeclarePairedDelimiterX', 'DeclarePairedDelimiterXPP'].includes(node.content) &&\n        node.args?.[0]?.content?.[0]?.type === 'macro') {\n        // \\DeclarePairedDelimiterX\\braketzw[2]{\\langle}{\\rangle}{#1\\,\\delimsize\\vert\\,\\mathopen{}#2}\n        found = true\n        name = node.args[0].content[0].content\n        if (['DeclarePairedDelimiterX', 'DeclarePairedDelimiterXPP'].includes(node.content) &&\n            node.args?.[1].content?.[0]?.type === 'string' &&\n            parseInt(node.args?.[1].content?.[0].content) > 0) {\n            args = (node.args?.[2].openMark === '[' ? '[]' : '{}') + '{}'.repeat(parseInt(node.args?.[1].content?.[0].content) - 1)\n        }\n    } else if (node.type === 'macro' &&\n        ['providecommand', 'providerobustcmd', 'DeclareMathOperator', 'DeclareRobustCommand'].includes(node.content) &&\n        node.args?.[1]?.content?.[0]?.type === 'macro') {\n        found = true\n        name = node.args[1].content[0].content\n        if (node.args?.[2].content?.[0]?.type === 'string' &&\n            parseInt(node.args?.[2].content?.[0].content) > 0) {\n            args = (node.args?.[3].openMark === '[' ? '[]' : '{}') + '{}'.repeat(parseInt(node.args?.[2].content?.[0].content) - 1)\n        }\n    } else if (node.type === 'macro' &&\n        ['ReNewDocumentCommand', 'NewDocumentCommand', 'ProvideDocumentCommand', 'DeclareDocumentCommand'].includes(node.content) &&\n        node.args?.length === 3 && node.args[0]?.content?.[0]?.type === 'macro') {\n        found = true\n        name = node.args[0].content[0].content\n        node.args[1].content.forEach((entry: Ast.Node) => {\n            if (entry.type === 'string') {\n                if (entry.content === 'm') {\n                    args += '{}'\n                } else if (entry.content === 'o' || entry.content === 'O') {\n                    args += '[]'\n                }\n            }\n        })\n    }\n\n    if (found && !defined.has(`${name}${args}`)) {\n        const cmd = new CmdEnvSuggestion(`\\\\${name}${args}`, 'user-defined', [], -1, {name, args}, vscode.CompletionItemKind.Function)\n        cmd.documentation = '`' + name + '`'\n        let argTabs = args\n        let index = 0\n        while (argTabs.includes('[]')) {\n            argTabs = argTabs.replace('[]', '[${' + (index + 1) + '}]')\n            index++\n        }\n        while (argTabs.includes('{}')) {\n            argTabs = argTabs.replace('{}', '{${' + (index + 1) + '}}')\n            index++\n        }\n        cmd.insertText = new vscode.SnippetString(name + argTabs)\n        cmd.filterText = name\n        if (isTriggerSuggestNeeded(name)) {\n            cmd.command = { title: 'Post-Action', command: 'editor.action.triggerSuggest' }\n        }\n        cmds.push(cmd)\n        data.definedCmds.set(cmd.signatureAsString(), {\n            filePath,\n            location: new vscode.Location(\n                lw.file.toUri(filePath),\n                new vscode.Position(\n                    (node.position?.start.line ?? 1) - 1,\n                    (node.position?.start.column ?? 1) - 1))\n        })\n        defined.add(cmd.signatureAsString())\n    }\n\n    if ('content' in node && typeof node.content !== 'string') {\n        for (const subNode of node.content) {\n            cmds = [...cmds, ...parseAst(subNode, filePath, defined)]\n        }\n    }\n\n    return cmds\n}\n\nfunction parseContent(content: string, filePath: string): CmdEnvSuggestion[] {\n    const cmdInPkg: CmdEnvSuggestion[] = []\n    const packages = lw.completion.usepackage.getAll('latex-expl3')\n    Object.entries(packages).forEach(([packageName, options]) => {\n        provideCmdInPkg(packageName, options, cmdInPkg)\n    })\n    const cmdReg = /\\\\([a-zA-Z@_]+(?::[a-zA-Z]*)?\\*?)({[^{}]*})?({[^{}]*})?({[^{}]*})?/g\n    const cmds: CmdEnvSuggestion[] = []\n    const defined = new Set<string>()\n    let explSyntaxOn: boolean = false\n    while (true) {\n        const result = cmdReg.exec(content)\n        if (result === null) {\n            break\n        }\n        if (result[1] === 'ExplSyntaxOn') {\n            explSyntaxOn = true\n            continue\n        } else if (result[1] === 'ExplSyntaxOff') {\n            explSyntaxOn = false\n            continue\n        }\n\n\n        if (!explSyntaxOn) {\n            const len = result[1].search(/[_:]/)\n            if (len > -1) {\n                result[1] = result[1].slice(0, len)\n            }\n        }\n        const args = '{}'.repeat(result.length - 1)\n        const cmd = new CmdEnvSuggestion(\n            `\\\\${result[1]}${args}`,\n            cmdInPkg.find(candidate => candidate.signatureAsString() === result[1] + args)?.packageName ?? '',\n            [],\n            -1,\n            { name: result[1], args },\n            vscode.CompletionItemKind.Function\n        )\n        cmd.documentation = '`' + result[1] + '`'\n        cmd.insertText = new vscode.SnippetString(\n            result[1] + (result[2] ? '{${1}}' : '') + (result[3] ? '{${2}}' : '') + (result[4] ? '{${3}}' : ''))\n        cmd.filterText = result[1]\n        if (isTriggerSuggestNeeded(result[1])) {\n            cmd.command = { title: 'Post-Action', command: 'editor.action.triggerSuggest' }\n        }\n        if (!defined.has(cmd.signatureAsString())) {\n            cmds.push(cmd)\n            defined.add(cmd.signatureAsString())\n        }\n    }\n\n    const newCommandReg = /\\\\(?:(?:(?:re|provide)?(?:new)?command)|(?:DeclarePairedDelimiter(?:X|XPP)?)|DeclareMathOperator)\\*?{?\\\\(\\w+)}?(?:\\[([1-9])\\])?/g\n    while (true) {\n        const result = newCommandReg.exec(content)\n        if (result === null) {\n            break\n        }\n\n        let tabStops = ''\n        let args = ''\n        if (result[2]) {\n            const numArgs = parseInt(result[2])\n            for (let i = 1; i <= numArgs; ++i) {\n                tabStops += '{${' + i + '}}'\n                args += '{}'\n            }\n        }\n\n        const cmd = new CmdEnvSuggestion(`\\\\${result[1]}${args}`, 'user-defined', [], -1, {name: result[1], args}, vscode.CompletionItemKind.Function)\n        cmd.documentation = '`' + result[1] + '`'\n        cmd.insertText = new vscode.SnippetString(result[1] + tabStops)\n        cmd.filterText = result[1]\n        if (!defined.has(cmd.signatureAsString())) {\n            cmds.push(cmd)\n            defined.add(cmd.signatureAsString())\n        }\n\n        data.definedCmds.set(result[1], {\n            filePath,\n            location: new vscode.Location(\n                lw.file.toUri(filePath),\n                new vscode.Position(content.substring(0, result.index).split('\\n').length - 1, 0))\n        })\n    }\n\n    return cmds\n}\n\nfunction entryCmdToCompletion(item: MacroRaw, packageName?: string, postAction?: string): CmdEnvSuggestion {\n    const suggestion = new CmdEnvSuggestion(\n        `\\\\${item.name}${item.arg?.format ?? ''}`,\n        packageName || 'latex',\n        item.arg?.keys ?? [],\n        item.arg?.keyPos ?? -1,\n        { name: item.name, args: item.arg?.format ?? '' },\n        vscode.CompletionItemKind.Function,\n        item.if,\n        item.unusual)\n\n    if (item.arg?.snippet) {\n        // Wrap the selected text when there is a single placeholder\n        if (! (item.arg.snippet.match(/\\$\\{?2/) || (item.arg.snippet.match(/\\$\\{?0/) && item.arg.snippet.match(/\\$\\{?1/)))) {\n            item.arg.snippet = item.arg.snippet.replace(/\\$1|\\$\\{1\\}/, '$${1:$${TM_SELECTED_TEXT}}').replace(/\\$\\{1:([^$}]+)\\}/, '$${1:$${TM_SELECTED_TEXT:$1}}')\n        }\n        item.arg.snippet = item.arg.snippet\n            // Remove the %:translatable component\n            .replace(/%:translatable/g, '')\n            // Remove the %randomword component\n            .replace(/%\\w+/g, '')\n        suggestion.insertText = new vscode.SnippetString(item.arg.snippet)\n    } else {\n        suggestion.insertText = item.name\n    }\n    suggestion.filterText = item.name + (item.arg?.format ?? '') + (item.detail ?? '')\n    suggestion.detail = item.detail ?? (item.arg?.snippet ? `\\\\${item.arg?.snippet?.replace(/\\$\\{\\d+:([^$}]*)\\}/g, '$1')}` : `\\\\${item.name}`)\n    suggestion.documentation = item.doc ?? `Macro \\\\${item.name}${item.arg?.format ?? ''}.`\n    if (packageName) {\n        suggestion.documentation += ` From package: ${packageName}.`\n    }\n    suggestion.sortText = (item.name + (item.arg?.format ?? ''))\n        .replace(/([a-z])/g, '$10').toLowerCase()\n        .replaceAll('{', '0')\n        .replaceAll('[', '1')\n        .replace(/^(.+?)\\(/g, '$12') // Skip \\(\n        .replaceAll('|', '3')\n        .replaceAll('*', '9')\n    if (postAction) {\n        suggestion.command = { title: 'Post-Action', command: postAction }\n    } else if (isTriggerSuggestNeeded(item.name)) {\n        // Automatically trigger completion if the macro is for citation, filename, reference or glossary\n        suggestion.command = { title: 'Post-Action', command: 'editor.action.triggerSuggest' }\n    }\n    return suggestion\n}\n\nfunction setPackageCmds(packageName: string, macros: MacroRaw[]) {\n    data.packageCmds.set(packageName, macros.map(m => entryCmdToCompletion(m, packageName)))\n}\n\nfunction getPackageCmds(packageName: string) {\n    return data.packageCmds.get(packageName) || []\n}\n\nfunction provideCmdInPkg(packageName: string, options: string[], suggestions: CmdEnvSuggestion[]) {\n    const defined = new Set<string>()\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const useOptionalArgsEntries = configuration.get('intellisense.optionalArgsEntries.enabled')\n    // Load macro in pkg\n    lw.completion.usepackage.load(packageName)\n\n    // No package macro defined\n    const macros = data.packageCmds.get(packageName)\n    if (!macros || macros.length === 0) {\n        return\n    }\n\n    const unusual = configuration.get('intellisense.package.unusual') as boolean\n    // Insert macros\n    macros.forEach(mac => {\n        if (!useOptionalArgsEntries && mac.hasOptionalArgs()) {\n            return\n        }\n        if (!defined.has(mac.signatureAsString())) {\n            if (mac.ifCond && !options.includes(mac.ifCond)) {\n                return\n            }\n            if (mac.unusual && !unusual) {\n                return\n            }\n            suggestions.push(mac)\n            defined.add(mac.signatureAsString())\n        }\n    })\n}\n"
  },
  {
    "path": "src/completion/completer/package.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport type { CompletionProvider, DependencyRaw, FileCache, PackageObsolete, PackageRaw } from '../../types'\nimport { argContentToStr } from '../../utils/parser'\nimport { replaceArgumentPlaceholders } from '../../utils/utils'\n\nconst logger = lw.log('Intelli', 'Package')\n\nexport const provider: CompletionProvider = { from }\nexport const usepackage = {\n    parse,\n    load,\n    getAll,\n    getArgs,\n    getKeys\n}\n\nconst data = {\n    loaded: [] as string[],\n    suggestions: [] as vscode.CompletionItem[],\n    packageDeps: Object.create(null) as { [packageName: string]: DependencyRaw[] },\n    packageArgs: Object.create(null) as { [packageName: string]: string[] },\n    packageKeys: Object.create(null) as { [packageName: string]: { [key: string]: string[] } }\n}\n\ntype PackageItemEntry = {\n    command: string,\n    detail: string,\n    documentation: string\n}\n\nlet _obsoletePackageFileWarned = false\nfunction load(packageName: string) {\n    if (data.loaded.includes(packageName)) {\n        return\n    }\n\n    const filePath: string | undefined = resolvePackageFile(packageName)\n    if (filePath === undefined) {\n        data.loaded.push(packageName)\n        return\n    }\n\n    try {\n        const packageData = JSON.parse(fs.readFileSync(filePath).toString()) as PackageRaw | PackageObsolete\n        if ('includes' in packageData) {\n            if (!_obsoletePackageFileWarned) {\n                logger.showErrorMessage(`The intellisense file ${filePath} is obsolete. Please update it to the new format: https://github.com/James-Yu/LaTeX-Workshop/wiki/Intellisense#commands-starting-with-`)\n                _obsoletePackageFileWarned = true\n            }\n            logger.log(`The intellisense file ${filePath} is obsolete.`)\n            return\n        }\n        // populatePackageData(packageData)\n\n        data.packageDeps[packageName] = packageData.deps\n        data.packageArgs[packageName] = packageData.args\n        data.packageKeys[packageName] = packageData.keys\n\n        lw.completion.environment.setPackageEnvs(packageName, packageData.envs)\n        lw.completion.macro.setPackageCmds(packageName, packageData.macros)\n\n        data.loaded.push(packageName)\n    } catch (err) {\n        logger.logError(`Cannot parse intellisense file: ${filePath}`, err)\n    }\n}\n\nfunction resolvePackageFile(packageName: string): string | undefined {\n    const defaultDir = `${lw.extensionRoot}/data/packages/`\n    const rawDirs = vscode.workspace.getConfiguration('latex-workshop').get('intellisense.package.dirs') as string[]\n    const dirs = rawDirs.map((dir) => {return replaceArgumentPlaceholders('', '')(dir)})\n\n    dirs.push(defaultDir)\n    for (const dir of dirs) {\n        const filePath = path.resolve(dir, `${packageName}.json`)\n        if (fs.existsSync(filePath)) {\n            return filePath\n        }\n    }\n    // Many package with names like toppackage-config.sty are just wrappers around\n    // the general package toppacke.sty and do not define macros on their own.\n    const indexDash = packageName.lastIndexOf('-')\n    if (indexDash > - 1) {\n        const generalPkg = packageName.substring(0, indexDash)\n        const filePath = path.resolve(defaultDir, `${generalPkg}.json`)\n        if (fs.existsSync(filePath)) {\n            return filePath\n        }\n    }\n    return\n}\n\n// function populatePackageData(packageData: PackageRaw): { macros: MacroObsolete[], envs: EnvObsolete[] } {\n//     Object.entries(packageData.macros).forEach(([key, cmd]) => {\n//         cmd.macro = key\n//         cmd.snippet = cmd.snippet || key\n//         cmd.keyvals = packageData.keyvals[cmd.keyvalindex ?? -1]\n//     })\n//     Object.entries(packageData.envs).forEach(([key, env]) => {\n//         env.detail = key\n//         env.name = env.name || key\n//         env.snippet = env.snippet || ''\n//         env.keyvals = packageData.keyvals[env.keyvalindex ?? -1]\n//     })\n// }\n\nfunction initialize(defaultPackages: {[key: string]: PackageItemEntry}) {\n    Object.values(defaultPackages).forEach(item => {\n        const pack = new vscode.CompletionItem(item.command, vscode.CompletionItemKind.Module)\n        pack.detail = item.detail\n        pack.documentation = new vscode.MarkdownString(`[${item.documentation}](${item.documentation})`)\n        data.suggestions.push(pack)\n    })\n}\n\nfunction from(): vscode.CompletionItem[] {\n    if (data.suggestions.length === 0) {\n        const pkgs: {[key: string]: PackageItemEntry} = JSON.parse(fs.readFileSync(`${lw.extensionRoot}/data/packagenames.json`).toString()) as typeof import('../../../data/packagenames.json')\n        initialize(pkgs)\n    }\n    return data.suggestions\n}\n\nfunction getArgs(packageName: string) {\n    return data.packageArgs[packageName].map(key => data.packageKeys[packageName]?.[key] ?? []).flat()\n}\n\nfunction getDeps(packageName: string): DependencyRaw[] {\n    return data.packageDeps[packageName] ?? []\n}\n\nfunction getKeys(packageName: string, key: string) {\n    return data.packageKeys[packageName]?.[key] ?? []\n}\n\nfunction getAll(languageId: string): {[packageName: string]: string[]} {\n    const packages: {[packageName: string]: string[]} = {}\n    const config = vscode.workspace.getConfiguration('latex-workshop')\n    const excluded = config.get('intellisense.package.exclude') as string[]\n    if (!excluded.includes('lw-default')) {\n        if (['latex', 'latex-expl3'].includes(languageId)) {\n            packages['latex-document'] = []\n        }\n        if (languageId === 'latex-expl3') {\n            packages['expl3'] = []\n        }\n    }\n\n    (config.get('intellisense.package.extra') as string[])\n        .filter(packageName => !excluded.includes(packageName))\n        .forEach(packageName => packages[packageName] = [])\n\n    lw.cache.getIncludedTeX().forEach(tex => {\n        const included = lw.cache.get(tex)?.elements.package\n        if (included === undefined) {\n            return\n        }\n        Object.entries(included)\n            .filter(([packageName, ]) => !excluded.includes(packageName))\n            .forEach(([packageName, options]) => packages[packageName] = options)\n    })\n\n    while (true) {\n        let newPackageInserted = false\n        Object.entries(packages).forEach(([packageName, options]) => getDeps(packageName)\n            .filter(dep => !excluded.includes(dep.name))\n            .forEach(dep => {\n                const hasOption = dep.if === undefined || options.includes(dep.if)\n                if (packages[dep.name] === undefined && hasOption) {\n                    packages[dep.name] = []\n                    newPackageInserted = true\n                }\n            }\n        ))\n        if (!newPackageInserted) {\n            break\n        }\n    }\n\n    return packages\n}\n\nfunction parse(cache: FileCache) {\n    if (cache.ast !== undefined) {\n        cache.elements.package = parseAst(cache.ast)\n    } else {\n        cache.elements.package = parseContent(cache.content)\n    }\n}\n\nfunction parseAst(node: Ast.Node): {[pkgName: string]: string[]} {\n    const packages = {}\n    if (node.type === 'macro' && ['usepackage', 'documentclass'].includes(node.content)) {\n        const options: string[] = argContentToStr(node.args?.[0]?.content || [])\n            .split(',')\n            .map(arg => arg.trim())\n        const optionsNoTrue = options\n            .filter(option => option.includes('=true'))\n            .map(option => option.replace('=true', ''))\n\n        argContentToStr(node.args?.[1]?.content || [])\n            .split(',')\n            .map(packageName => toPackageObj(packageName.trim(), [...options, ...optionsNoTrue], node))\n            .forEach(packageObj => Object.assign(packages, packageObj))\n    } else if ('content' in node && typeof node.content !== 'string') {\n        for (const subNode of node.content) {\n            Object.assign(packages, parseAst(subNode))\n        }\n    }\n    return packages\n}\n\nfunction parseContent(content: string): {[pkgName: string]: string[]} {\n    const packages = {}\n    const pkgReg = /\\\\(?:usepackage|RequirePackage)(\\[[^[\\]{}]*\\])?{(.*?)}/gs\n    while (true) {\n        const result = pkgReg.exec(content)\n        if (result === null) {\n            break\n        }\n        const packageNames = result[2].split(',').map(packageName => packageName.trim())\n        const options = (result[1] || '[]').slice(1,-1).replace(/\\s*=\\s*/g,'=').split(',').map(option => option.trim())\n        const optionsNoTrue = options.filter(option => option.includes('=true')).map(option => option.replace('=true', ''))\n        packageNames\n            .map(packageName => toPackageObj(packageName, [...options, ...optionsNoTrue]))\n            .forEach(packageObj => Object.assign(packages, packageObj))\n    }\n    return packages\n}\n\nfunction toPackageObj(packageName: string, options: string[], node?: Ast.Node): {[pkgName: string]: string[]} {\n    packageName = packageName.trim()\n    if (packageName === '') {\n        return {}\n    }\n    let pkgObj: {[pkgName: string]: string[]} = {}\n    if (node?.type === 'macro' && node.content === 'documentclass') {\n        if (vscode.workspace.getConfiguration('latex-workshop').get('kpsewhich.class.enabled') as boolean) {\n            const clsPath = lw.file.kpsewhich(`${packageName}.cls`)\n            if (clsPath && fs.existsSync(clsPath)) {\n                pkgObj = parseContent(fs.readFileSync(clsPath).toString())\n            }\n        }\n        packageName = 'class-' + packageName\n    }\n    pkgObj[packageName] = options\n    return pkgObj\n}\n"
  },
  {
    "path": "src/completion/completer/reference.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport type { CompletionArgs, CompletionProvider, FileCache, ReferenceItem, TeXMathEnv } from '../../types'\nimport { getLongestBalancedString } from '../../utils/utils'\nimport { computeFilteringRange } from './completerutils'\nimport { argContentToStr } from '../../utils/parser'\n\nexport const provider: CompletionProvider = { from }\nexport const reference = {\n    parse,\n    getItem,\n    setNumbersFromAuxFile\n}\n\nlw.onConfigChange(['intellisense.label.command'], lw.parser.parse.reset)\n\nconst data = {\n    suggestions: new Map<string, ReferenceItem>(),\n    prevIndexObj: new Map<string, {refNumber: string, pageNumber: string}>()\n}\n\nfunction from(_result: RegExpMatchArray, args: CompletionArgs) {\n    return provide(args.line, args.position)\n}\n\nfunction provide(line: string, position: vscode.Position): vscode.CompletionItem[] {\n    // Compile the suggestion object to array\n    updateAll(line, position)\n    let keys = [...data.suggestions.keys(), ...data.prevIndexObj.keys()]\n    keys = Array.from(new Set(keys))\n    const items: vscode.CompletionItem[] = []\n    for (const key of keys) {\n        items.push(data.suggestions.get(key) ?? {label: key})\n    }\n    return items\n}\n\nfunction getItem(token: string): ReferenceItem | undefined {\n    updateAll()\n    return data.suggestions.get(token)\n}\n\nfunction updateAll(line?: string, position?: vscode.Position) {\n    if (!lw.root.file.path) {\n        data.suggestions.clear()\n        return\n    }\n\n    const included: Set<string> = new Set([lw.root.file.path])\n    // Included files may originate from \\input or `xr`. If the latter, a\n    // prefix may be used to ref to the file. The following obj holds them.\n    const prefixes: {[filePath: string]: string} = {}\n    while (true) {\n        // The process adds newly included file recursively, only stops when\n        // all have been found, i.e., no new ones\n        const startSize = included.size\n        included.forEach(cachedFile => {\n            lw.cache.getIncludedTeX(cachedFile).forEach(includedTeX => {\n                if (includedTeX === cachedFile) {\n                    return\n                }\n                included.add(includedTeX)\n                // If the file is indeed included by \\input, but was\n                // previously included by `xr`, the possible prefix is\n                // removed as it can be directly referenced without.\n                delete prefixes[includedTeX]\n            })\n            const cache = lw.cache.get(cachedFile)\n            if (!cache) {\n                return\n            }\n            Object.keys(cache.external).forEach(external => {\n                // Don't repeatedly add, no matter previously by \\input or\n                // `xr`\n                if (included.has(external)) {\n                    return\n                }\n                // If the file is included by `xr`, both file path and\n                // prefix is recorded.\n                included.add(external)\n                prefixes[external] = cache.external[external]\n            })\n        })\n        if (included.size === startSize) {\n            break\n        }\n    }\n\n    // Extract cached references\n    const refList: string[] = []\n    let range: vscode.Range | undefined = undefined\n    if (line && position) {\n        range = computeFilteringRange(line, position)\n    }\n\n    included.forEach(cachedFile => {\n        const cachedRefs = lw.cache.get(cachedFile)?.elements.reference\n        if (cachedRefs === undefined) {\n            return\n        }\n        cachedRefs.forEach(ref => {\n            if (ref.range === undefined) {\n                return\n            }\n            const label = (cachedFile in prefixes ? prefixes[cachedFile] : '') + ref.label\n            data.suggestions.set(label, {...ref,\n                label,\n                range,\n                prevIndex: data.prevIndexObj.get(label)\n            })\n            refList.push(label)\n        })\n    })\n    // Remove references that have been deleted\n    data.suggestions.forEach((_, key) => {\n        if (!refList.includes(key)) {\n            data.suggestions.delete(key)\n        }\n    })\n}\n\nfunction parse(cache: FileCache) {\n    if (cache.ast !== undefined) {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const labelMacros = configuration.get('intellisense.label.command') as string[]\n        cache.elements.reference = parseAst(cache.ast, [], cache.filePath, cache.contentTrimmed.split('\\n'), labelMacros)\n    } else {\n        cache.elements.reference = parseContent(cache.contentTrimmed, cache.filePath)\n    }\n}\n\nfunction parseAst(node: Ast.Node, nodeStack: Ast.Node[], filePath: string, lines: string[], labelMacros: string[]): ReferenceItem[] {\n    let refs: ReferenceItem[] = []\n    if (node.type === 'macro' &&\n        ['renewcommand', 'newcommand', 'providecommand', 'DeclareMathOperator', 'renewenvironment', 'newenvironment',\n         'NewDocumentCommand', 'RenewDocumentCommand', 'ProvideDocumentCommand', 'DeclareDocumentCommand',\n         'NewDocumentEnvironment', 'RenewDocumentEnvironment', 'ProvideDocumentEnvironment', 'DeclareDocumentEnvironment',\n         'NewExpandableDocumentCommand', 'RenewExpandableDocumentCommand', 'ProvideExpandableDocumentCommand', 'DeclareExpandableDocumentCommand',\n         'newrobustcmd', 'renewrobustcmd', 'providerobustcmd'\n        ].includes(node.content)) {\n        // Do not scan labels inside \\newcommand, \\newenvironment & co\n        return []\n    }\n    if (node.type === 'environment' && ['tikzpicture'].includes(node.env)) {\n        return []\n    }\n\n    let label = ''\n    if (node.type === 'macro' && labelMacros.includes(node.content)) {\n        label = argContentToStr(node.args?.[2]?.content || [])\n    } else if (node.type === 'environment' && !['enumerate', 'itemize'].includes(node.env)) {\n        // #4630 We are looking for \\begin{env}{some args}[label= ] or \\begin{env}[label= ]\n        // #4642 But \\begin{enumerate}[label={(\\arabic*)}] from `enumitem` should not be considered\n        // #4687 But \\begin{itemize}[label=$\\star$] from `enumitem` should not be considered\n        label = argContentToStr(node.args?.[1]?.content || node.args?.[0]?.content || [])\n        const index = label.indexOf('label=')\n        if (index >= 0) {\n            label = label.slice(index + 6)\n            if (label.charAt(0) === '{') {\n                label = getLongestBalancedString(label) ?? ''\n            } else {\n                label = label.split(',')[0] ?? ''\n            }\n        } else {\n            label = ''\n        }\n    }\n\n    if (label !== '' && node.position !== undefined) {\n        const ref: ReferenceItem = {\n            label,\n            kind: vscode.CompletionItemKind.Reference,\n            // One row before, four rows after\n            documentation: lines.slice(node.position.start.line - 2, node.position.end.line + 4).join('\\n'),\n            // Here we abuse the definition of range to store the location of the reference definition\n            range: new vscode.Range(node.position.start.line - 1, node.position.start.column - 1,\n                                    node.position.end.line - 1, node.position.end.column - 1),\n            file: filePath,\n            position: new vscode.Position(node.position.start.line - 1, node.position.start.column - 1),\n            math: findMath(nodeStack)\n        }\n        refs.push(ref)\n    }\n\n    const parseContentNodes = (content: Ast.Node[]) => {\n        for (const subNode of content) {\n            refs = [...refs, ...parseAst(subNode, [...nodeStack, node], filePath, lines, labelMacros)]\n        }\n    }\n    if (node.type === 'macro' && node.args) {\n        for (const arg of node.args) {\n            parseContentNodes(arg.content)\n        }\n    } else if ('content' in node && typeof node.content !== 'string') {\n        parseContentNodes(node.content)\n    }\n\n    return refs\n}\n\nfunction findMath(nodeStack: Ast.Node[]): TeXMathEnv | undefined {\n    const node = nodeStack[nodeStack.length - 1]\n    if (node.type !== 'environment' && node.type !== 'mathenv') {\n        return\n    }\n    const env = (typeof node.env === 'string') ? node.env : (node.env as unknown as {content: string}).content\n    if (![\n        'align', 'align\\\\*', 'alignat', 'alignat\\\\*', 'aligned', 'alignedat', 'array', 'Bmatrix', 'bmatrix', 'cases', 'CD', 'eqnarray', 'eqnarray\\\\*', 'equation', 'equation\\\\*', 'flalign', 'flalign\\\\*', 'gather', 'gather\\\\*', 'gathered', 'matrix', 'multline', 'multline\\\\*', 'pmatrix', 'smallmatrix', 'split', 'subarray', 'subeqnarray', 'subeqnarray\\\\*', 'Vmatrix', 'vmatrix'\n    ].includes(env)) {\n        return\n    }\n    const math = lw.parser.parse.stringify(node)\n    return {\n        envname: env,\n        range: new vscode.Range((node.position?.start.line ?? 1) - 1, (node.position?.start.column ?? 1) - 1,\n                                (node.position?.end.line ?? 1) - 1, (node.position?.end.column ?? 1) - 1),\n        texString: math\n    }\n}\n\nfunction parseContent(content: string, filePath: string): ReferenceItem[] {\n    const refReg = /(?:\\\\label(?:\\[[^[\\]{}]*\\])?|(?:^|[,\\s])label=){([^#\\\\}]*)}/gm\n    const refs: ReferenceItem[] = []\n    const refList: string[] = []\n    while (true) {\n        const result = refReg.exec(content)\n        if (result === null) {\n            break\n        }\n        if (refList.includes(result[1])) {\n            continue\n        }\n        const prevContent = content.substring(0, content.substring(0, result.index).lastIndexOf('\\n') - 1)\n        const followLength = content.substring(result.index, content.length).split('\\n', 4).join('\\n').length\n        const positionContent = content.substring(0, result.index).split('\\n')\n\n        refs.push({\n            label: result[1],\n            kind: vscode.CompletionItemKind.Reference,\n            // One row before, four rows after\n            documentation: content.substring(prevContent.lastIndexOf('\\n') + 1, result.index + followLength),\n            // Here we abuse the definition of range to store the location of the reference definition\n            range: new vscode.Range(positionContent.length - 1, positionContent[positionContent.length - 1].length,\n                                    positionContent.length - 1, positionContent[positionContent.length - 1].length),\n            file: filePath,\n            position: new vscode.Position(positionContent.length - 1, positionContent[positionContent.length - 1].length)\n        })\n        refList.push(result[1])\n    }\n    return refs\n}\n\nfunction setNumbersFromAuxFile(rootFile: string) {\n    const auxDir = lw.file.getAuxDir(rootFile)\n    const rootDir = path.dirname(rootFile)\n    const auxFile = path.resolve(rootDir, path.join(auxDir, path.basename(rootFile, '.tex') + '.aux'))\n    data.suggestions.forEach((entry) => {\n        entry.prevIndex = undefined\n    })\n    data.prevIndexObj = new Map<string, {refNumber: string, pageNumber: string}>()\n    if (!fs.existsSync(auxFile)) {\n        return\n    }\n    const newLabelReg = /^\\\\newlabel\\{(.*?)\\}\\{\\{(.*?)\\}\\{(.*?)\\}/gm\n    const auxContent = fs.readFileSync(auxFile, {encoding: 'utf8'})\n    while (true) {\n        const result = newLabelReg.exec(auxContent)\n        if (result === null) {\n            break\n        }\n        if ( result[1].endsWith('@cref') && data.prevIndexObj.has(result[1].replace('@cref', '')) ) {\n            // Drop extra \\newlabel entries added by cleveref\n            continue\n        }\n        data.prevIndexObj.set(result[1], {refNumber: result[2], pageNumber: result[3]})\n        const ent = data.suggestions.get(result[1])\n        if (ent) {\n            ent.prevIndex = {refNumber: result[2], pageNumber: result[3]}\n        }\n    }\n}\n"
  },
  {
    "path": "src/completion/completer/subsuperscript.ts",
    "content": "import * as vscode from 'vscode'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport type { CompletionArgs, CompletionItem, CompletionProvider, FileCache } from '../../types'\n\nimport { argContentToStr } from '../../utils/parser'\n\nexport const provider: CompletionProvider = { from }\nexport const subsuperscript = {\n    parse,\n}\n\nfunction from(result: RegExpMatchArray, _: CompletionArgs): CompletionItem[] {\n    if (false === vscode.workspace.getConfiguration('latex-workshop').get('intellisense.subsuperscript.enabled') as boolean) {\n        return []\n    }\n    const isSub = result[0].startsWith('_')\n    let suggestions: CompletionItem[] = []\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        suggestions = [...suggestions, ...((isSub ? lw.cache.get(cachedFile)?.elements.subscripts : lw.cache.get(cachedFile)?.elements.superscripts) ?? [])]\n    })\n    return suggestions\n}\n\n\nfunction parse(cache: FileCache) {\n    if (cache.ast !== undefined) {\n        const scripts = parseAst(cache.ast, cache.contentTrimmed.split('\\n'), {sub: [], super: []})\n        cache.elements.subscripts = scripts.sub\n        cache.elements.superscripts = scripts.super\n    }\n}\n\nfunction parseAst(node: Ast.Node, lines: string[], scripts: {sub: CompletionItem[], super: CompletionItem[]}): {sub: CompletionItem[], super: CompletionItem[]} {\n    const entries = {sub: scripts.sub.map(entry => entry.label), super: scripts.super.map(entry => entry.label)}\n    if (node.type === 'macro' && ['^', '_'].includes(node.content)) {\n        const content = argContentToStr(node.args?.[0]?.content || [])\n\n        if (content !== '' && node.position !== undefined &&\n            !(node.content === '^' ? entries.super : entries.sub).includes(content)) {\n\n            (node.content === '^' ? entries.super : entries.sub).push(content)\n\n            ;(node.content === '^' ? scripts.super : scripts.sub).push({\n                label: content,\n                kind: vscode.CompletionItemKind.Constant,\n                // One row before, four rows after\n                documentation: lines.slice(node.position.start.line - 2, node.position.end.line + 4).join('\\n')\n            })\n        }\n    }\n\n    if ('content' in node && typeof node.content !== 'string') {\n        for (const subNode of node.content) {\n            parseAst(subNode, lines, scripts)\n        }\n    }\n\n    return scripts\n}\n"
  },
  {
    "path": "src/completion/index.ts",
    "content": "import { citation } from './completer/citation'\nimport { environment } from './completer/environment'\nimport { macro } from './completer/macro'\nimport { subsuperscript } from './completer/subsuperscript'\nimport { reference } from './completer/reference'\nimport { usepackage } from './completer/package'\nimport { input } from './completer/input'\nimport { glossary } from './completer/glossary'\n\nimport { Provider, AtProvider } from './latex'\nimport { BibProvider } from './bibtex'\n\nexport const completion = {\n    citation,\n    environment,\n    macro,\n    subsuperscript,\n    reference,\n    usepackage,\n    input,\n    glossary,\n    provider: new Provider(),\n    atProvider: new AtProvider(),\n    bibProvider: new BibProvider()\n}\n"
  },
  {
    "path": "src/completion/latex.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport type { CompletionArgs, CompletionProvider, ReferenceItem } from '../types'\nimport { citation, provider as citationProvider } from './completer/citation'\nimport { provider as environmentProvider } from './completer/environment'\nimport { provider as macroProvider } from './completer/macro'\nimport { provider as subsuperProvider } from './completer/subsuperscript'\nimport { provider as argumentProvider } from './completer/argument'\nimport { provider as classProvider } from './completer/class'\nimport { provider as referenceProvider } from './completer/reference'\nimport { provider as packageProvider } from './completer/package'\nimport { inputProvider, importProvider, subimportProvider } from './completer/input'\nimport { provider as glossaryProvider } from './completer/glossary'\nimport { provider as closeenvProvider } from './completer/closeenv'\nimport { atSuggestion, provider as atProvider } from './completer/atsuggestion'\n\nimport { escapeRegExp } from '../utils/utils'\n\nconst logger = lw.log('Intelli')\n\nexport class Provider implements vscode.CompletionItemProvider {\n    provideCompletionItems(\n        document: vscode.TextDocument,\n        position: vscode.Position\n    ): vscode.CompletionItem[] | undefined {\n        const currentLine = document.lineAt(position.line).text\n        if (position.character > 1 && currentLine[position.character - 1] === '\\\\' && currentLine[position.character - 2] === '\\\\') {\n            return\n        }\n        return this.provide({\n            uri: document.uri,\n            langId: document.languageId,\n            line: document.lineAt(position).text,\n            position\n        })\n    }\n\n    provide(args: CompletionArgs): vscode.CompletionItem[] {\n        // Note that the order of the following array affects the result.\n        // 'macro' must be at the last because it matches any macros.\n        for (const type of ['citation', 'reference', 'environment', 'package', 'documentclass', 'input', 'subimport', 'import', 'includeonly', 'glossary', 'argument', 'macro', 'subsuper', 'closeenv']) {\n            const suggestions = this.completion(type, args)\n            if (suggestions.length > 0) {\n                if (type === 'citation') {\n                    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n                    if (configuration.get('intellisense.citation.type') as string === 'browser') {\n                        setTimeout(() => citation.browser(args), 10)\n                        return []\n                    }\n                }\n                return suggestions\n            }\n        }\n        return []\n    }\n\n    async resolveCompletionItem(item: vscode.CompletionItem, ctoken: vscode.CancellationToken): Promise<vscode.CompletionItem> {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        if (item.kind === vscode.CompletionItemKind.Reference) {\n            if (!('file' in item) || !configuration.get('hover.ref.enabled')) {\n                return item\n            }\n            const refItem = item as ReferenceItem\n            if (!refItem.math) {\n                return item\n            }\n            const svgDataUrl = await lw.preview.mathjax.ref2svg(refItem, ctoken)\n            item.documentation = new vscode.MarkdownString(`![equation](${svgDataUrl})`)\n            return item\n        } else if (item.kind === vscode.CompletionItemKind.File) {\n            const preview = configuration.get('intellisense.includegraphics.preview.enabled') as boolean\n            if (!preview) {\n                return item\n            }\n            const filePath = item.documentation\n            if (typeof filePath !== 'string') {\n                return item\n            }\n            const md = await lw.preview.graph2md(filePath, { height: 190, width: 300 })\n            if (md === undefined) {\n                return item\n            }\n            const ret = new vscode.CompletionItem(item.label, vscode.CompletionItemKind.File)\n            ret.documentation = md\n            return ret\n        } else {\n            return item\n        }\n    }\n\n    completion(type: string, args: CompletionArgs): vscode.CompletionItem[] {\n        let reg: RegExp | undefined\n        let provider: CompletionProvider | undefined\n        switch (type) {\n            case 'citation':\n                reg = /(?:\\\\[a-zA-Z]*[Cc]ite[a-zA-Z]*\\*?(?:\\([^[)]*\\)){0,2}(?:<[^<>]*>|\\[[^[\\]]*\\]|{[^{}]*})*{([^}]*)$)|(?:\\\\[a-zA-Z]*cquote*\\*?(?:\\[[^[\\]]*\\]){0,2}{([^}]*)$)|(?:\\\\bibentry{([^}]*)$)/\n                provider = citationProvider\n                break\n            case 'reference':\n                reg = /(?:\\\\hyperref\\[([^\\]]*)(?!\\])$)|(?:(?:\\\\(?!hyper)[a-zA-Z]*ref[a-zA-Z]*\\*?(?:\\[[^[\\]]*\\])?){([^}]*)$)|(?:\\\\[Cc][a-z]*refrange\\*?{[^{}]*}{([^}]*)$)/\n                provider = referenceProvider\n                break\n            case 'environment':\n                reg = /(?:\\\\begin|\\\\end){([^}]*)$/\n                provider = environmentProvider\n                break\n            case 'macro':\n                reg = args.langId === 'latex-expl3' ? /\\\\([a-zA-Z_@]*(?::[a-zA-Z]*)?)$/ : /\\\\(\\+?[a-zA-Z]*|(?:left|[Bb]ig{1,2}l)?[({[]?)$/\n                provider = macroProvider\n                break\n            case 'argument':\n                reg = args.langId === 'latex-expl3' ? /\\\\([a-zA-Z_@]*(?::[a-zA-Z]*)?)((?:\\[[^[\\]{}]*?\\]|{[^[\\]{}]*?})*)[[{][^[\\]{}]*$/ : /\\\\(\\+?[a-zA-Z]*)((?:\\[[^[\\]{}]*?\\]|{[^[\\]{}]*?})*)[[{][^[\\]{}]*$/\n                provider = argumentProvider\n                break\n            case 'package':\n                reg = /(?:\\\\usepackage|\\\\RequirePackage|\\\\RequirePackageWithOptions)(?:\\[[^[\\]]*\\])*{([^}]*)$/\n                provider = packageProvider\n                break\n            case 'documentclass':\n                reg = /(?:\\\\documentclass(?:\\[[^[\\]]*\\])*){([^}]*)$/\n                provider = classProvider\n                break\n            case 'input':\n                reg = /\\\\(input|include|subfile|subfileinclude|(?:adj)?includegraphics|includesvg|lstinputlisting|adjustimage|(?:fg|bg)?imagebox|verbatiminput|loadglsentries|markdownInput)\\*?(?:\\[[^[\\]]*\\])*{([^}]*)$/\n                provider = inputProvider\n                break\n            case 'includeonly':\n                reg = /\\\\(includeonly|excludeonly){(?:{[^}]*},)*(?:[^,]*,)*{?([^},]*)$/\n                provider = inputProvider\n                break\n            case 'import':\n                reg = /\\\\(import|includefrom|inputfrom)\\*?(?:{([^}]*)})?{([^}]*)$/\n                provider = importProvider\n                break\n            case 'subimport':\n                reg = /\\\\(sub(?:import|includefrom|inputfrom))\\*?(?:{([^}]*)})?{([^}]*)$/\n                provider = subimportProvider\n                break\n            case 'glossary':\n                reg = /\\\\(gls(?:str)?(?:pl|text|first|fmt(?:text|short|long)|plural|firstplural|name|symbol|desc|disp|user(?:i|ii|iii|iv|v|vi))?|Acr(?:long|full|short)?(?:pl)?|ac[slf]?p?)(?:\\[[^[\\]]*\\])?{([^}]*)$/i\n                provider = glossaryProvider\n                break\n            case 'subsuper':\n                reg = /(?:\\^|_){([^}]*)$/\n                provider = subsuperProvider\n                break\n            case 'closeenv':\n                reg = /(?:\\\\begin){([^}]*)}$/\n                provider = closeenvProvider\n                break\n            default:\n                // This shouldn't be possible, so mark as error case in log.\n                logger.log(`Error - trying to complete unknown type ${type}`)\n                return []\n        }\n        let lineToPos = args.line.substring(0, args.position.character)\n        if (type === 'argument' && (lineToPos.includes('\\\\documentclass') || lineToPos.includes('\\\\usepackage'))) {\n            // Remove braced values from documentclass and usepackage\n            // This is to allow argument regexp to match the following type of lines:\n            // \\documentclass[aspectratio=169,t,fontset=none,xcolor={x11names},|]{ctexbeamer}\n            lineToPos = lineToPos.replace(/{[^[\\]{}]*}/g, '').replace(/\\[[^[\\]{}]*\\]/g, '')\n        }\n        const result = lineToPos.match(reg)\n        let suggestions: vscode.CompletionItem[] = []\n        if (result) {\n            suggestions = provider.from(result, args)\n        }\n        return suggestions\n    }\n}\n\nexport class AtProvider implements vscode.CompletionItemProvider {\n    private reg: RegExp = new RegExp('@[^\\\\\\\\s]*$')\n\n    constructor() {\n        this.updateTrigger()\n    }\n\n    updateTrigger() {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const triggerCharacter = configuration.get('intellisense.atSuggestion.trigger.latex') as string\n        atSuggestion.initialize(triggerCharacter)\n        this.reg = new RegExp(escapeRegExp(triggerCharacter) + '[^\\\\\\\\s]*$')\n    }\n\n    provideCompletionItems(\n        document: vscode.TextDocument,\n        position: vscode.Position\n    ): vscode.CompletionItem[] | undefined {\n        return this.provide({\n            uri: document.uri,\n            langId: document.languageId,\n            line: document.lineAt(position).text,\n            position\n        })\n    }\n\n    provide(args: CompletionArgs): vscode.CompletionItem[] {\n        const result = args.line.substring(0, args.position.character).match(this.reg)\n        let suggestions: vscode.CompletionItem[] = []\n        if (result) {\n            suggestions = atProvider.from(result, args)\n        }\n        return suggestions\n    }\n}\n"
  },
  {
    "path": "src/core/cache.ts",
    "content": "import * as vscode from 'vscode'\nimport os from 'os'\nimport * as path from 'path'\nimport micromatch from 'micromatch'\nimport { performance } from 'perf_hooks'\n\nimport { lw } from '../lw'\nimport type { FileCache } from '../types'\n\nimport * as utils from '../utils/utils'\nimport { InputFileRegExp } from '../utils/inputfilepath'\n\nconst logger = lw.log('Cacher')\n\n/**\n * A map to store cached file data.\n *\n * This map holds `FileCache` objects indexed by their file paths. It is used to\n * quickly retrieve cached data for files during various operations.\n */\nconst caches: Map<string, FileCache> = new Map()\n\n/**\n * A map to store promises related to file caching operations.\n *\n * This map holds promises that resolve when file caching operations are\n * complete, indexed by their file paths. It is used to keep track of ongoing\n * caching processes.\n */\nconst promises: Map<string, Promise<void>> = new Map()\n\nexport const cache = {\n    add,\n    get,\n    paths,\n    promises,\n    getIncludedTeX,\n    getIncludedBib,\n    getIncludedGlossaryBib,\n    getFlsChildren,\n    wait,\n    reset,\n    refreshCache,\n    refreshCacheAggressive,\n    loadFlsFile\n}\n\n// Listener for file changes: refreshes the cache if the file can be cached.\nlw.watcher.src.onChange(uri => {\n    if (canCache(uri.fsPath)) {\n        void refreshCache(uri.fsPath)\n    }\n})\n\n// Listener for file deletions: removes the file from the cache if it exists.\nlw.watcher.src.onDelete(uri => {\n    if (get(uri.fsPath) !== undefined) {\n        caches.delete(uri.fsPath)\n        logger.log(`Removed ${uri.fsPath} .`)\n    }\n})\n\n// Dispose handler: resets the state when the application is disposed of.\nlw.onDispose({ dispose: () => reset() })\n\n/**\n * Determines if a file can be cached based on its extension and specific\n * exclusions.\n *\n * This function checks if a given file path has a TeX file extension with\n * lw.file.hasTeXExt and does not include the string 'expl3-code.tex'.\n *\n * @param {string} filePath - The path to the file to be checked for cache\n * eligibility.\n * @returns {boolean} - Returns `true` if the file can be cached, otherwise\n * `false`.\n */\nfunction canCache(filePath: string): boolean {\n    return lw.file.hasTeXExt(path.extname(filePath)) && !filePath.includes('expl3-code.tex')\n}\n\n/**\n * Determines if a file path should be excluded based on ignore patterns.\n *\n * This function checks if a given file path matches any of the ignore patterns\n * specified in the workspace configuration. It retrieves the list of patterns\n * to ignore from the 'latex.watch.files.ignore' configuration and uses the\n * `micromatch` library to check if the file path matches any of these patterns.\n * The file path format is adjusted based on the operating system to ensure\n * compatibility.\n *\n * @param {string} filePath - The path to the file to be checked for exclusion.\n * @returns {boolean} - Returns `true` if the file path matches any ignore\n * patterns, otherwise `false`.\n */\nfunction isExcluded(filePath: string): boolean {\n    const globsToIgnore = vscode.workspace.getConfiguration('latex-workshop').get('latex.watch.files.ignore') as string[]\n    const format = (str: string): string => (os.platform() === 'win32' ? str.replace(/\\\\/g, '/') : str)\n    return micromatch.some(filePath, globsToIgnore, { format })\n}\n\n/**\n * Adds a file to the watcher if it is not excluded and not already being\n * watched.\n *\n * This function checks if a given file path should be excluded from the\n * watcher. If the file is not excluded and is not already in the watcher, it\n * logs the addition and adds the file path to the source watcher. This function\n * will not automatically invoke `refreshCache` in the chain.\n *\n * @param {string} filePath - The path to the file to be added to the watcher.\n */\nfunction add(filePath: string) {\n    if (isExcluded(filePath)) {\n        logger.log(`Ignored ${filePath} .`)\n        return\n    }\n    const uri = lw.file.toUri(filePath)\n    if (!lw.watcher.src.has(uri)) {\n        logger.log(`Adding ${filePath} .`)\n        lw.watcher.src.add(uri)\n    }\n}\n\n/**\n * Retrieves the cache data for a specified file path.\n *\n * This function looks up the cache for a given file path and returns the\n * corresponding `FileCache` object if it exists. If the file path is not found\n * in the cache, it returns `undefined`.\n *\n * @param {string} filePath - The path to the file whose cache data is to be\n * retrieved.\n * @returns {FileCache | undefined} - The `FileCache` object associated with the\n * file path, or `undefined` if not found.\n */\nfunction get(filePath: string): FileCache | undefined {\n    return caches.get(filePath)\n}\n\n/**\n * Retrieves a list of all cached file paths.\n *\n * This function returns an array containing all the file paths currently stored\n * in the cache. It does this by converting the keys of the `caches` map, which\n * holds the cached file data, into an array.\n *\n * @returns {string[]} - An array of strings representing the file paths of all\n * cached files.\n */\nfunction paths(): string[] {\n    return Array.from(caches.keys())\n}\n\n/**\n * Waits for a file to be cached, with a specified timeout.\n *\n * This function monitors the caching status of a specified file path. It\n * continuously checks if the file has been cached by looking up its promise and\n * cache entries. If the file is not found in the cache within the default or\n * provided timeout duration, it forces the cache to refresh for the file. The\n * function waits in increments of 100 milliseconds, and if the total wait time\n * exceeds the specified timeout (default is 2 seconds), it logs an error\n * message and invokes the `refreshCache` function to cache the file forcibly.\n *\n * @param {string} filePath - The path to the file to wait for caching.\n * @param {number} [seconds=2] - The number of seconds to wait before forcing\n * the cache refresh.\n * @returns {Promise<void> | undefined} - A promise that resolves when the file\n * is cached, or undefined if the cache is not refreshed.\n */\nasync function wait(filePath: string, seconds: number = 2): Promise<Promise<void> | undefined> {\n    let waited = 0\n    while (promises.get(filePath) === undefined && get(filePath) === undefined) {\n        // Just open vscode, has not cached, wait for a bit?\n        await new Promise(resolve => setTimeout(resolve, 100))\n        waited++\n        if (waited >= seconds * 10) {\n            // Waited for two seconds before starting cache. Really?\n            logger.log(`Error loading cache: ${filePath} . Forcing.`)\n            await refreshCache(filePath)\n            break\n        }\n    }\n    return promises.get(filePath)\n}\n\n/**\n * Resets the state of various watchers and clears the file cache.\n *\n * This function resets the source and bibliography watchers to their initial\n * states, ensuring that any ongoing file watching activities are terminated and\n * prepared for a fresh start. It iterates through all cached files and removes\n * them from the cache, effectively clearing all stored file data.\n */\nfunction reset() {\n    lw.watcher.src.reset()\n    lw.watcher.bib.reset()\n    lw.watcher.glossary.reset()\n    // lw.watcher.pdf.reset()\n    paths().forEach(filePath => caches.delete(filePath))\n}\n\n/**\n * A counter to keep track of the number of files currently being cached.\n *\n * This variable is incremented each time a file starts the caching process and\n * decremented upon completion. It helps manage the state of caching and ensures\n * that the system knows when all files have been cached.\n */\nlet cachingFilesCount: number = 0\n/**\n * Refreshes the cache for a given file, optionally considering a root path.\n *\n * This function is responsible for updating the cache of a file specified by\n * its path. It first checks if the file should be excluded or can be cached\n * based on predefined conditions. If the file is valid for caching, it logs the\n * caching action, increases the count of files being cached, and reads the\n * content of the file. The content is then processed to remove comments and\n * verbatim sections, and a `FileCache` object is created to store this\n * processed content along with other metadata. The function then updates the\n * children elements of the file cache and initiates the AST update. Once the\n * AST is updated, the elements of the file cache are also updated. Finally, it\n * performs lint checks, decreases the caching file count, removes the promise\n * from the active promises, fires a file parsed event, and reconstructs the\n * outline if no other files are being cached.\n *\n * @param {string} filePath - The path to the file to be cached.\n * @param {string} [rootPath] - The optional root path to be considered for\n * updating children elements.\n * @returns {Promise<void> | undefined} - A promise that resolves when the cache\n * is refreshed, or undefined if the file is excluded or cannot be cached.\n */\nasync function refreshCache(filePath: string, rootPath?: string): Promise<Promise<void> | undefined> {\n    if (isExcluded(filePath)) {\n        logger.log(`File is excluded from caching: ${filePath} .`)\n        return\n    }\n    if (!canCache(filePath)) {\n        logger.log(`File cannot be cached: ${filePath} .`)\n        return\n    }\n    logger.log(`Caching ${filePath} .`)\n    cachingFilesCount++\n    const openEditor: vscode.TextDocument | undefined = vscode.workspace.textDocuments.find(\n        document => document.fileName === path.normalize(filePath))\n    const content = openEditor?.isDirty ? openEditor.getText() : (await lw.file.read(filePath) ?? '')\n    const fileCache: FileCache = {\n        filePath,\n        content,\n        contentTrimmed: utils.stripCommentsAndVerbatim(content),\n        elements: {},\n        children: [],\n        bibfiles: new Set(),\n        glossarybibfiles: new Set(),\n        external: {}}\n    caches.set(filePath, fileCache)\n    rootPath = rootPath || lw.root.file.path\n    await updateChildren(fileCache, rootPath)\n\n    promises.set(\n        filePath,\n        updateAST(fileCache)\n        .then(() => updateElements(fileCache))\n        .finally(() => {\n            lw.lint.label.check()\n            cachingFilesCount--\n            promises.delete(filePath)\n            lw.event.fire(lw.event.FileParsed, filePath)\n\n            if (cachingFilesCount === 0) {\n                void lw.outline.reconstruct()\n            }\n        })\n    )\n\n    return promises.get(filePath)\n}\n\n/**\n * A timeout identifier used for scheduling the aggressive cache refresh\n * operation.\n */\nlet updateCompleter: NodeJS.Timeout\n/**\n * Refreshes the cache for a file aggressively based on the user's configuration\n * settings.\n *\n * This function checks if the specified file path has an existing cache entry.\n * If it does, and if the aggressive update setting\n * 'intellisense.update.aggressive.enabled' is enabled in the workspace\n * configuration, it schedules a cache refresh operation. If there is an\n * existing scheduled operation, it is cleared to prevent multiple refreshes\n * from overlapping. The refresh operation is then scheduled to run after a\n * delay specified in the configuration 'intellisense.update.delay'. During the\n * refresh, it also attempts to load the FLS file associated with the root path\n * or the file path.\n *\n * @param {string} filePath - The path to the file for which to refresh the\n * cache aggressively.\n */\nfunction refreshCacheAggressive(filePath: string) {\n    if (get(filePath) === undefined) {\n        return\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (configuration.get('intellisense.update.aggressive.enabled')) {\n        if (updateCompleter) {\n            clearTimeout(updateCompleter)\n        }\n        updateCompleter = setTimeout(async () => {\n            await refreshCache(filePath, lw.root.file.path)\n            // After refreshing the cache, children from .fls file only is\n            // discarded. We need to re-parse the .fls file to build the\n            // complete children dependency.\n            await loadFlsFile(lw.root.file.path || filePath)\n        }, configuration.get('intellisense.update.delay', 1000))\n    }\n}\n\n/**\n * Updates the Abstract Syntax Tree (AST) for a given file cache.\n *\n * This function is responsible for parsing the content of a file stored in the\n * file cache and updating its AST. It logs the start of the parsing process,\n * measures the time taken to parse the content, and logs the elapsed time once\n * the parsing is complete. The parsed AST is then stored in the `ast` property\n * of the `fileCache` object.\n *\n * @param {FileCache} fileCache - The file cache object containing the content\n * to be parsed.\n * @returns {Promise<void>} - A promise that resolves when the AST is updated.\n */\nasync function updateAST(fileCache: FileCache): Promise<void> {\n    logger.log(`Parse LaTeX AST: ${fileCache.filePath} .`)\n    const start = performance.now()\n    fileCache.ast = await lw.parser.parse.tex(fileCache.contentTrimmed)\n    const elapsed = performance.now() - start\n    logger.log(`Parsed LaTeX AST in ${elapsed.toFixed(2)} ms: ${fileCache.filePath} .`)\n}\n\n/**\n * Updates the children elements of a file cache, considering a root path.\n *\n * This function updates the children of a given file cache by processing input\n * and cross-references. It first sets the root path to either the provided root\n * path or the file path from the file cache. It then calls\n * `updateChildrenInput` to handle the input elements and `updateChildrenXr` to\n * manage cross-references within the file cache.\n *\n * @param {FileCache} fileCache - The file cache object to be updated.\n * @param {string | undefined} rootPath - The root path to be used for updating\n * children elements.\n */\nasync function updateChildren(fileCache: FileCache, rootPath: string | undefined): Promise<void> {\n    rootPath = rootPath || fileCache.filePath\n    await updateChildrenInput(fileCache, rootPath)\n    await updateChildrenXr(fileCache, rootPath)\n    logger.log(`Updated inputs of ${fileCache.filePath} .`)\n}\n\n/**\n * Updates the children of a file cache by parsing input file references.\n *\n * This function iterates over the trimmed content of a given file cache to\n * identify and process input file references. It uses a regular expression to\n * find these references and checks if the referenced files exist and are not\n * the same as the root path. Valid input files are added to the children array\n * of the file cache, and a log message is generated for each identified input\n * file. If the input file is not already being watched, it is added to the\n * watcher and its cache is refreshed.\n *\n * @param {FileCache} fileCache - The file cache object containing the content\n * and metadata of the file being processed.\n * @param {string} rootPath - The root path used for resolving relative input\n * file paths.\n */\nasync function updateChildrenInput(fileCache: FileCache, rootPath: string) {\n    const inputFileRegExp = new InputFileRegExp()\n    while (true) {\n        const result = await inputFileRegExp.exec(fileCache.contentTrimmed, fileCache.filePath, rootPath)\n        if (!result) {\n            break\n        }\n\n        if (!await lw.file.exists(result.path) || path.relative(result.path, rootPath) === '') {\n            continue\n        }\n\n        if (fileCache.children.some(child => child.filePath === result.path)) {\n            continue\n        }\n\n        fileCache.children.push({\n            index: result.match.index,\n            filePath: result.path\n        })\n        logger.log(`Input ${result.path} from ${fileCache.filePath} .`)\n\n        if (lw.watcher.src.has(lw.file.toUri(result.path))) {\n            continue\n        }\n        add(result.path)\n        void refreshCache(result.path, rootPath)\n    }\n}\n\n/**\n * Updates the children references in the file cache based on \\externaldocument\n * macros.\n *\n * This function parses the trimmed content of a file to find any\n * `\\externaldocument` macros, which reference external documents. It then\n * resolves the paths of these external documents relative to the current file\n * path, root path, and additional LaTeX directories configured in the\n * workspace. If an external document path is resolved and exists, it updates\n * the root cache with the external document reference and logs the action. If\n * the external document is already being watched, it continues; otherwise, it\n * adds the document to the watcher and refreshes its cache.\n *\n * @param {FileCache} fileCache - The cache object of the file being processed.\n * @param {string} rootPath - The root path to be used for resolving external\n * document paths.\n */\nasync function updateChildrenXr(fileCache: FileCache, rootPath: string) {\n    const externalDocRegExp = /\\\\externaldocument(?:\\[(.*?)\\])?\\{(.*?)\\}/g\n    while (true) {\n        const result = externalDocRegExp.exec(fileCache.contentTrimmed)\n        if (!result) {\n            break\n        }\n\n        const texDirs = vscode.workspace.getConfiguration('latex-workshop').get('latex.texDirs') as string[]\n        const externalPath = await utils.resolveFile([path.dirname(fileCache.filePath), path.dirname(rootPath), ...texDirs], result[2])\n        if (!externalPath || !await lw.file.exists(externalPath) || path.relative(externalPath, rootPath) === '') {\n            logger.log(`Failed resolving external ${result[2]} . Tried ${externalPath} ` +\n                (externalPath && path.relative(externalPath, rootPath) === '' ? ', which is root.' : '.'))\n            continue\n        }\n\n        const rootCache = get(rootPath)\n        if (rootCache !== undefined) {\n            rootCache.external[externalPath] = result[1] || ''\n            logger.log(`External document ${externalPath} from ${fileCache.filePath} .` + (result[1] ? ` Prefix is ${result[1]}`: ''))\n        }\n\n        if (lw.watcher.src.has(lw.file.toUri(externalPath))) {\n            continue\n        }\n        add(externalPath)\n        void refreshCache(externalPath, externalPath)\n    }\n}\n\n/**\n * Updates various elements in the file cache, parsing different components.\n *\n * This function updates the elements of a file cache by parsing various\n * components, namely, citations, packages, references, glossaries,\n * environments, macros, subscripts, superscripts, and graphics paths. It\n * records the time taken to perform these updates and logs the elapsed time\n * along with the file path. Each parsing step is performed in a specific order\n * to ensure dependencies are resolved correctly.\n *\n * @param {FileCache} fileCache - The cache object containing the file data and\n * metadata to be updated.\n */\nasync function updateElements(fileCache: FileCache): Promise<void> {\n    const start = performance.now()\n    lw.completion.citation.parse(fileCache)\n    // Package parsing must be before command and environment.\n    lw.completion.usepackage.parse(fileCache)\n    lw.completion.reference.parse(fileCache)\n    lw.completion.glossary.parse(fileCache)\n    lw.completion.environment.parse(fileCache)\n    lw.completion.macro.parse(fileCache)\n    lw.completion.subsuperscript.parse(fileCache)\n    lw.completion.input.parseGraphicsPath(fileCache)\n    await updateBibfiles(fileCache)\n    await updateGlossaryBibFiles(fileCache)\n    const elapsed = performance.now() - start\n    logger.log(`Updated elements in ${elapsed.toFixed(2)} ms: ${fileCache.filePath} .`)\n}\n\n/**\n * Updates the bibliography files associated with a given file cache.\n *\n * This function parses the content of a file cache to find bibliography macros\n * (such as `\\bibliography`, `\\addbibresource`, and `\\putbib`) using a regular\n * expression. It extracts the bibliography file paths specified in these\n * macros, resolves their full paths, and adds them to the set of bibliography\n * files in the file cache. If a bibliography file is not excluded, it logs the\n * action, adds the file to the cache, and ensures that it is being watched for\n * changes.\n *\n * @param {FileCache} fileCache - The file cache object to update with\n * bibliography files.\n */\nasync function updateBibfiles(fileCache: FileCache) {\n    const bibReg = /(?:\\\\(?:bibliography|addbibresource)(?:\\[[^[\\]{}]*\\])?){(?:\\\\subfix{)?([\\s\\S]+?)(?:\\})?}|(?:\\\\putbib)\\[(?:\\\\subfix{)?([\\s\\S]+?)(?:\\})?\\]/gm\n\n    let result: RegExpExecArray | null\n    while ((result = bibReg.exec(fileCache.contentTrimmed)) !== null) {\n        const bibs = (result[1] ? result[1] : result[2]).split(',').map(bib => bib.trim())\n\n        for (const bib of bibs) {\n            const bibPaths = await lw.file.getBibPath(bib, path.dirname(fileCache.filePath))\n            for (const bibPath of bibPaths) {\n                if (isExcluded(bibPath)) {\n                    continue\n                }\n                fileCache.bibfiles.add(bibPath)\n                logger.log(`Bib ${bibPath} from ${fileCache.filePath} .`)\n                const bibUri = lw.file.toUri(bibPath)\n                if (!lw.watcher.bib.has(bibUri)) {\n                    lw.watcher.bib.add(bibUri)\n                }\n            }\n        }\n    }\n}\n\n/**\n * Updates the glossary files associated with a given file cache.\n *\n * This function parses the content of a file cache to find `\\GlsXtrLoadResources` and `\\glsbibdata`\n * using a regular expression. It extracts the  file paths specified in these\n * macros, resolves their full paths, and adds them to the set of glossary\n * files in the file cache. If a glossary file is not excluded, it logs the\n * action, adds the file to the cache, and ensures that it is being watched for\n * changes.\n *\n * @param {FileCache} fileCache - The file cache object to update with\n * bibliography files.\n */\nasync function updateGlossaryBibFiles(fileCache: FileCache) {\n    const glossaryReg = /(?:\\\\GlsXtrLoadResources\\s*\\[.*?src=\\{([^}]+)\\}.*?\\])|(?:\\\\glsbibdata(?:\\[[^\\]]*\\])?\\{([^}]*)\\})/gs\n\n    let result: RegExpExecArray | null\n    while ((result = glossaryReg.exec(fileCache.contentTrimmed)) !== null) {\n        const bibs = (result[1] ? result[1] : result[2]).split(',').map(bib => bib.trim())\n\n        for (const bib of bibs) {\n            const bibPaths = await lw.file.getBibPath(bib, path.dirname(fileCache.filePath))\n            for (const bibPath of bibPaths) {\n                if (!bibPath || isExcluded(bibPath)) {\n                    continue\n                }\n                fileCache.glossarybibfiles.add(bibPath)\n                logger.log(`Glossary bib ${bibPath} from ${fileCache.filePath} .`)\n                const bibUri = lw.file.toUri(bibPath)\n                if (!lw.watcher.glossary.has(bibUri)) {\n                    lw.watcher.glossary.add(bibUri)\n                }\n            }\n        }\n    }\n}\n\n/**\n * Loads and processes a .fls file related to a specified file path.\n *\n * This function handles the parsing and processing of a .fls file, which\n * contains information about input and output files involved in the compilation\n * of a LaTeX document. It retrieves the path to the .fls file associated with\n * the given file path, reads its content, and parses it to extract input and\n * output file paths. For each input file, it performs various checks to\n * determine whether the file should be cached, watched, or ignored. For .tex\n * files, it ensures they are added as children to the cache of the main file\n * and refreshes their cache. Non-.tex files are watched unless they are\n * auto-generated files like .aux or .out. Additionally, if any output files are\n * .aux files, they are parsed accordingly.\n *\n * @param {string} filePath - The path to the main file whose .fls file is to be\n * loaded and processed.\n * @returns {Promise<void>} - A promise that resolves when the .fls file is\n * processed.\n */\nasync function loadFlsFile(filePath: string): Promise<void> {\n    const flsPath = await lw.file.getFlsPath(filePath)\n    if (flsPath === undefined) {\n        return\n    }\n    logger.log(`Parsing .fls ${flsPath} .`)\n    const rootDir = path.dirname(filePath)\n    const auxDir = lw.file.getAuxDir(filePath)\n    const ioFiles = parseFlsContent(await lw.file.read(flsPath) ?? '', rootDir)\n\n    for (const inputFile of ioFiles.input) {\n        const inputUri = lw.file.toUri(inputFile)\n        // Drop files that are also listed as OUTPUT or should be ignored\n        if (ioFiles.output.includes(inputFile) ||\n            isExcluded(inputFile) ||\n            !await lw.file.exists(inputFile)) {\n            continue\n        }\n        if (inputFile === filePath || lw.watcher.src.has(inputUri)) {\n            // Drop the current rootFile often listed as INPUT\n            // Drop any file that is already watched as it is handled by\n            // onWatchedFileChange.\n            continue\n        }\n        const inputExt = path.extname(inputFile)\n        if (inputExt === '.tex') {\n            if (get(filePath) === undefined) {\n                logger.log(`Cache not finished on ${filePath} when parsing fls, try re-cache.`)\n                await refreshCache(filePath)\n            }\n            // It might be possible that `filePath` is excluded from caching.\n            const fileCache = get(filePath)\n            if (fileCache !== undefined) {\n                // Parse tex files as imported subfiles.\n                fileCache.children.push({\n                    index: Number.MAX_VALUE,\n                    filePath: inputFile\n                })\n                add(inputFile)\n                logger.log(`Found ${inputFile} from .fls ${flsPath} , caching.`)\n                void refreshCache(inputFile, filePath)\n            } else {\n                logger.log(`Cache not finished on ${filePath} when parsing fls.`)\n            }\n        } else {\n            add(inputFile)\n        }\n    }\n\n    for (const outputFile of ioFiles.output) {\n        if (path.extname(outputFile) === '.aux' && await lw.file.exists(outputFile)) {\n            logger.log(`Found .aux ${outputFile} from .fls ${flsPath} , parsing.`)\n            await parseAuxFile(outputFile, path.dirname(outputFile).replace(auxDir, rootDir))\n            logger.log(`Parsed .aux ${outputFile} .`)\n        }\n    }\n    logger.log(`Parsed .fls ${flsPath} .`)\n}\n\n/**\n * Parses the content of a .fls file to extract input and output file paths.\n *\n * This function processes the content of a .fls file, identifying and\n * extracting file paths associated with INPUT and OUTPUT entries. It utilizes a\n * regular expression to match lines indicating input and output files, then\n * resolves these paths relative to a given root directory. The function\n * collects unique input and output file paths using sets and returns them as\n * arrays.\n *\n * @param {string} content - The content of the .fls file to be parsed.\n * @param {string} rootDir - The root directory used to resolve relative file\n * paths.\n * @returns {{input: string[], output: string[]}} - An object containing arrays\n * of input and output file paths.\n */\nfunction parseFlsContent(content: string, rootDir: string): {input: string[], output: string[]} {\n    const inputFiles: Set<string> = new Set()\n    const outputFiles: Set<string> = new Set()\n    const regex = /^(?:(INPUT)\\s*(.*))|(?:(OUTPUT)\\s*(.*))$/gm\n    // regex groups\n    // #1: an INPUT entry --> #2 input file path\n    // #3: an OUTPUT entry --> #4: output file path\n    while (true) {\n        const result = regex.exec(content)\n        if (!result) {\n            break\n        }\n        if (result[1]) {\n            const inputFilePath = path.resolve(rootDir, result[2])\n            if (inputFilePath) {\n                inputFiles.add(inputFilePath)\n            }\n        } else if (result[3]) {\n            const outputFilePath = path.resolve(rootDir, result[4])\n            if (outputFilePath) {\n                outputFiles.add(outputFilePath)\n            }\n        }\n    }\n\n    return {input: Array.from(inputFiles), output: Array.from(outputFiles)}\n}\n\n/**\n * Parses an auxiliary (.aux) file to extract bibliography data and update the\n * cache.\n *\n * This function reads the content of a specified .aux file and uses a regular\n * expression to find `\\bibdata` entries. It extracts the bibliography file\n * names, splits them into an array, and trims any whitespace. For each\n * bibliography file name, it determines the corresponding file paths and checks\n * if these paths are excluded from caching. If not excluded, it adds the\n * bibliography paths to the root file's bibliography set and logs the\n * discovery. It also ensures that the bibliography paths are being watched for\n * changes by adding them to the watcher.\n *\n * @param {string} filePath - The path to the .aux file to be parsed.\n * @param {string} srcDir - The source directory used to resolve bibliography\n * file paths.\n */\nasync function parseAuxFile(filePath: string, srcDir: string) {\n    const content = await lw.file.read(filePath) ?? ''\n    const regex = /^\\\\bibdata\\{([^}]*)\\}/gm\n    let result: RegExpExecArray | null\n    while ((result = regex.exec(content)) !== null) {\n        const bibs = (result[1] ?? '').split(',').map(b => b.trim()).filter(b => b.length > 0)\n        if (bibs.length === 0) {\n            logger.log(`Empty \\\\bibdata in .aux ${filePath} , skip.`)\n            continue\n        }\n        for (const bib of bibs) {\n            const bibPaths = await lw.file.getBibPath(bib, srcDir)\n            for (const bibPath of bibPaths) {\n                if (isExcluded(bibPath)) {\n                    continue\n                }\n                if (lw.root.file.path && !get(lw.root.file.path)?.bibfiles.has(bibPath)) {\n                    get(lw.root.file.path)?.bibfiles.add(bibPath)\n                    logger.log(`Found .bib ${bibPath} from .aux ${filePath} .`)\n                }\n                const bibUri = lw.file.toUri(bibPath)\n                if (!lw.watcher.bib.has(bibUri)) {\n                    lw.watcher.bib.add(bibUri)\n                }\n            }\n        }\n    }\n}\n\n/**\n * Retrieves a list of included bib files for a given file, ensuring\n * uniqueness.\n *\n * This function processes a specified file path to extract and return all\n * associated bib files. It starts with the provided file path (or the\n * root file path if not specified) and checks its cache entry. If the cache\n * entry exists, the function collects the bib files associated with\n * the file and its children. The function ensures that the same file is not\n * processed multiple times by keeping track of checked files. The result is an\n * array of unique bib file paths.\n *\n * @param {string} [bibType] - The type of .bib file to search for.\n * @param {string} [filePath] - The path to the file to check for included\n * bib files. Defaults to the root file path if not provided.\n * @param {string[]} [includedBib=[]] - An array to accumulate the bib\n * files found.\n * @param {string[]} [checkedTeX=[]] - An array to store the paths of TeX files\n * already checked.\n * @returns {string[]} - An array of unique bib file paths included in\n * the specified file and its children.\n */\nfunction getIncludedBibGeneric(bibType: 'bibtex' | 'glossary', filePath?: string, includedBib: string[] = [], checkedTeX: string[] = []): string[] {\n    filePath = filePath ?? lw.root.file.path\n    if (filePath === undefined) {\n        return []\n    }\n    const fileCache = get(filePath)\n    if (fileCache === undefined) {\n        return []\n    }\n    checkedTeX.push(filePath)\n    if (bibType === 'bibtex') {\n        includedBib.push(...fileCache.bibfiles)\n    } else if (bibType === 'glossary') {\n        includedBib.push(...fileCache.glossarybibfiles)\n    }\n    for (const child of fileCache.children) {\n        if (checkedTeX.includes(child.filePath)) {\n            // Already parsed\n            continue\n        }\n        getIncludedBibGeneric(bibType, child.filePath, includedBib, checkedTeX)\n    }\n    // Make sure to return an array with unique entries\n    return Array.from(new Set(includedBib))\n}\n\n/**\n * Retrieves a list of included bibliography files for a given file, ensuring\n * uniqueness.\n *\n * @param {string} [filePath] - The path to the file to check for included\n * bibliography files.\n * @returns {string[]} - An array of unique bibliography file paths included in\n * the specified file and its children.\n */\nfunction getIncludedBib(filePath?: string): string[] {\n    return getIncludedBibGeneric('bibtex', filePath)\n}\n\n/**\n * Retrieves a list of included glossary bib files for a given file, ensuring\n * uniqueness.\n *\n * @param {string} [filePath] - The path to the file to check for included\n * bibliography files.\n * @returns {string[]} - An array of unique glossary bib file paths included in\n * the specified file and its children.\n */\nfunction getIncludedGlossaryBib(filePath?: string): string[] {\n    return getIncludedBibGeneric('glossary', filePath)\n}\n\n/**\n * Retrieves a list of included TeX files, starting from a given file path.\n *\n * This function recursively gathers all TeX files included in a specified file,\n * starting from the provided file path or the root file path if none is\n * specified. It uses a depth-first search approach to traverse the file\n * dependencies and caches the results to avoid redundant processing.\n *\n * @param {string} [filePath] - The path to the starting file. Defaults to the\n * root file path.\n * @returns {string[]} - An array of paths to included TeX files.\n */\nfunction getIncludedTeX(filePath?: string): Set<string> {\n    const includedTeX = new Set<string>()\n    filePath = filePath ?? lw.root.file.path\n    if (filePath === undefined) {\n        return new Set()\n    }\n    const fileCache = get(filePath)\n    if (fileCache === undefined) {\n        return includedTeX\n    }\n    includedTeX.add(filePath)\n    for (const child of fileCache.children) {\n        if (includedTeX.has(child.filePath)) {\n            // Already included\n            continue\n        }\n        getIncludedTeX(child.filePath).forEach(texFile => includedTeX.add(texFile))\n    }\n    return includedTeX\n}\n\n/**\n * Retrieves the input file dependencies for a given TeX file from its FLS file.\n *\n * This function determines the path to the FLS file corresponding to a given\n * TeX file. If the FLS file path is found, it reads the content of the FLS file\n * and parses it to extract the list of input files. The function then returns\n * this list of input files, which represent the dependencies of the TeX file.\n *\n * @param {string} texFile - The path to the TeX file whose input file\n * dependencies are to be retrieved.\n * @returns {Promise<string[]>} - An array of strings representing the input\n * file dependencies of the TeX file.\n */\nasync function getFlsChildren(texFile: string): Promise<string[]> {\n    const flsPath = await lw.file.getFlsPath(texFile)\n    if (flsPath === undefined) {\n        return []\n    }\n    const rootDir = path.dirname(texFile)\n    const ioFiles = parseFlsContent(await lw.file.read(flsPath) ?? '', rootDir)\n    return ioFiles.input\n}\n"
  },
  {
    "path": "src/core/commands.ts",
    "content": "import * as path from 'path'\nimport * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport { getSurroundingMacroRange, stripText } from '../utils/utils'\n\nconst logger = lw.log('Commander')\n\nexport async function hostPort() {\n    logger.log('HOSTPORT command invoked.')\n    if (lw.extra.liveshare.isGuest()) {\n        await lw.extra.liveshare.getHostServerPort(true)\n    }\n    else {\n        await lw.extra.liveshare.shareServer()\n    }\n}\n\nexport async function build(skipSelection: boolean = false, rootFile: string | undefined = undefined, languageId: string | undefined = undefined, recipe: string | undefined = undefined) {\n    let recipeStr = ''\n    if (recipe) {\n        recipeStr = ` with recipe ${recipe}`\n    }\n    logger.log(`BUILD command invoked${recipeStr}.`)\n    await lw.compile.build(skipSelection, rootFile, languageId, recipe)\n}\n\nexport async function revealOutputDir() {\n    let outDir = lw.file.getOutDir()\n    if (!path.isAbsolute(outDir)) {\n        const workspaceFolder = vscode.workspace.workspaceFolders?.[0]\n        const rootDir = lw.root.dir.path || workspaceFolder?.uri.fsPath\n        if (rootDir === undefined) {\n            logger.log(`Cannot reveal ${lw.file.toUri(outDir)}: no root dir can be identified.`)\n            return\n        }\n        outDir = path.resolve(rootDir, outDir)\n    }\n    logger.log(`Reveal ${lw.file.toUri(outDir)}`)\n    await vscode.commands.executeCommand('revealFileInOS', lw.file.toUri(outDir))\n}\n\nexport function recipes(recipe?: string) {\n    logger.log('RECIPES command invoked.')\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.getWorkspace())\n    const candidates = configuration.get('latex.recipes') as {name: string}[]\n    if (!candidates) {\n        return\n    }\n    if (recipe) {\n        return build(false, undefined, undefined, recipe)\n    }\n    return vscode.window.showQuickPick(candidates.map(candidate => candidate.name), {\n        placeHolder: 'Please Select a LaTeX Recipe'\n    }).then(selected => {\n        if (!selected) {\n            return\n        }\n        return build(false, undefined, undefined, selected)\n    })\n}\n\nexport async function view(mode?: 'tab' | 'browser' | 'external' | vscode.Uri) {\n    if (mode) {\n        logger.log(`VIEW command invoked with mode: ${mode}.`)\n    } else {\n        logger.log('VIEW command invoked.')\n    }\n    if (!vscode.window.activeTextEditor) {\n        logger.log('Cannot find active TextEditor.')\n        return\n    }\n    if (!lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Active document is not a TeX file.')\n        return\n    }\n    await lw.root.find()\n    const rootFile = lw.root.file.path\n    if (rootFile === undefined) {\n        logger.log('Cannot find LaTeX root PDF to view.')\n        return\n    }\n    let pickedRootFile: string | undefined = rootFile\n    if (lw.root.subfiles.path) {\n        // We are using the subfile package\n        pickedRootFile = await quickPickRootFile(rootFile, lw.root.subfiles.path, 'view')\n    }\n    if (!pickedRootFile) {\n        return\n    }\n    return lw.viewer.view(lw.file.toUri(lw.file.getPdfPath(pickedRootFile)), typeof mode === 'string' ? mode : undefined)\n}\n\nexport function refresh() {\n    logger.log('REFRESH command invoked.')\n    lw.viewer.refresh()\n}\n\nexport function kill() {\n    logger.log('KILL command invoked.')\n    lw.compile.terminate()\n}\n\nexport function synctex() {\n    logger.log('SYNCTEX command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot start SyncTeX. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.getWorkspace())\n\n    if (lw.extra.liveshare.handle.command.syncTeX()) {\n        return\n    }\n    let pdfUri: vscode.Uri | undefined = undefined\n    if (lw.root.subfiles.path && configuration.get('latex.rootFile.useSubFile')) {\n        pdfUri = lw.file.toUri(lw.file.getPdfPath(lw.root.subfiles.path))\n    } else if (lw.root.file.path !== undefined) {\n        pdfUri = lw.file.toUri(lw.file.getPdfPath(lw.root.file.path))\n    }\n    lw.locate.synctex.toPDF(pdfUri)\n}\n\nexport function synctexonref(line: number, filePath: string) {\n    logger.log('SYNCTEX command invoked on a reference.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot start SyncTeX. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    lw.locate.synctex.toPDFFromRef({line, filePath})\n}\n\nexport async function clean(): Promise<void> {\n    logger.log('CLEAN command invoked.')\n    await lw.root.find()\n    const rootFile = lw.root.file.path\n    if (rootFile === undefined) {\n        logger.log('Cannot find LaTeX root file to clean.')\n        return\n    }\n    let pickedRootFile: string | undefined = rootFile\n    if (lw.root.subfiles.path) {\n        // We are using the subfile package\n        pickedRootFile = await quickPickRootFile(rootFile, lw.root.subfiles.path, 'clean')\n        if (! pickedRootFile) {\n            return\n        }\n    }\n    return lw.extra.clean(pickedRootFile)\n}\n\nexport function addTexRoot() {\n    logger.log('ADDTEXROOT command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId) || !lw.file.hasLaTeXClassPackageLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot add tex root. The active editor is undefined, or the document is not related to a LaTeX document.')\n        return\n    }\n    lw.extra.texroot()\n}\n\nexport function citation() {\n    logger.log('CITATION command invoked.')\n    lw.completion.citation.browser()\n}\n\nexport function wordcount() {\n    logger.log('WORDCOUNT command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId) ||\n        lw.root.file.path === vscode.window.activeTextEditor.document.fileName) {\n        if (lw.root.file.path) {\n            lw.extra.count(lw.root.file.path, true, true)\n        } else {\n            logger.log('WORDCOUNT: No rootFile defined.')\n        }\n    } else {\n        lw.extra.count(vscode.window.activeTextEditor.document.fileName, false, true)\n    }\n}\n\nexport function showLog(compiler?: string) {\n    logger.log(`SHOWLOG command invoked: ${compiler || 'default'}`)\n    if (compiler) {\n        logger.showCompilerLog()\n    } else {\n        logger.showLog()\n    }\n}\n\nexport async function gotoSection(filePath: string, lineNumber: number) {\n    logger.log(`GOTOSECTION command invoked. Target ${filePath}, line ${lineNumber}`)\n\n    const doc = await vscode.workspace.openTextDocument(filePath)\n    await vscode.window.showTextDocument(doc)\n    // input lineNumber is one-based, while editor position is zero-based.\n    await vscode.commands.executeCommand('revealLine', { lineNumber, at: 'center' })\n    if (vscode.window.activeTextEditor) {\n        vscode.window.activeTextEditor.selection = new vscode.Selection(new vscode.Position(lineNumber, 0), new vscode.Position(lineNumber, 0))\n        if (vscode.workspace.getConfiguration('latex-workshop').get('view.outline.sync.viewer') as boolean) {\n            lw.locate.synctex.toPDF(undefined, { line: lineNumber, filePath: doc.fileName })\n        }\n    }\n}\n\nexport function navigateToEnvPair() {\n    logger.log('JumpToEnvPair command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run navigateToEnvPair. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.goto()\n}\n\nexport function selectEnvContent(mode: 'content' | 'whole') {\n    logger.log('SelectEnv command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run selectEnvContent. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.select(mode)\n}\n\nexport function selectEnvName() {\n    logger.log('SelectEnvName command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run selectEnvName. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.name('selection')\n}\n\nexport function multiCursorEnvName() {\n    logger.log('MutliCursorEnvName command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run multiCursorEnvName. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.name('cursor')\n}\n\nexport function toggleEquationEnv() {\n    logger.log('toggleEquationEnv command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run toggleEquationEnv. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.name('equationToggle')\n}\n\nexport function closeEnv() {\n    logger.log('CloseEnv command invoked.')\n    if (!vscode.window.activeTextEditor || !lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log('Cannot run closeEnv. The active editor is undefined, or the document is not a LaTeX document.')\n        return\n    }\n    void lw.locate.pair.close()\n}\n\nexport async function changeHostName() {\n    logger.log('CHANGEHOSTNAME command invoked.')\n    const proceed = (await vscode.window.showInputBox({\n        prompt: 'Changing LaTeX Workshop server hostname can expose your computer to the public and is under severe security risk. CORS is also disabled. Do you want to continue?',\n        placeHolder: 'Type CONFIRM then [Enter] to continue. Press [ESC] to keep you safe.'\n    }))?.toLowerCase() === 'confirm'\n    if (!proceed) {\n        return\n    }\n    const hostname = await vscode.window.showInputBox({\n        prompt: 'Please input the new hostname that LaTeX Workshop server will listen to. This change will be reset on closing VSCode.',\n        placeHolder: '127.0.0.1'\n    })\n    if (!hostname) {\n        return\n    }\n    lw.server.initialize(hostname)\n}\n\nexport function resetHostName() {\n    logger.log('RESETHOSTNAME command invoked.')\n    lw.server.initialize('127.0.0.1')\n    void vscode.window.showInformationMessage('LaTeX Workshop server listening to 127.0.0.1 with CORS. You are safe now.')\n}\n\nexport async function actions() {\n    logger.log('ACTIONS command invoked.')\n    return vscode.commands.executeCommand('workbench.view.extension.latex-workshop-activitybar').then(() => vscode.commands.executeCommand('workbench.action.focusActiveEditorGroup'))\n}\n\n/**\n * Insert the snippet with name name.\n * @param name  the name of a snippet contained in latex.json\n */\nexport async function insertSnippet(name: 'wrapEnv' | 'item') {\n    const editor = vscode.window.activeTextEditor\n    if (!editor) {\n        return\n    }\n    switch (name) {\n        case 'wrapEnv':\n            await editor.insertSnippet(new vscode.SnippetString('\\n\\\\begin{$1}\\n\\t${0:${TM_SELECTED_TEXT}}\\n\\\\end{$1}'))\n            return\n        case 'item':\n            await editor.insertSnippet(new vscode.SnippetString('\\n\\\\item '))\n            return\n        default:\n            return\n    }\n}\n\n/**\n * If the current line starts with \\item or \\item[], do the same for\n * the new line when hitting enter.\n * Note that hitting enter on a line containing only \\item or \\item[]\n * actually deletes the content of the line.\n */\nexport function onEnterKey(modifiers?: string) {\n    const editor = vscode.window.activeTextEditor\n    if (!editor) {\n        return\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (!configuration.get('bind.enter.key')) {\n        return vscode.commands.executeCommand('type', { source: 'keyboard', text: '\\n' })\n    }\n    if (modifiers === 'alt') {\n        return vscode.commands.executeCommand('editor.action.insertLineAfter')\n    }\n\n    // Test if every cursor is at the end of a line starting with \\item\n    const allCursorsOnItem = editor.selections.every((selection: vscode.Selection) => {\n            const cursorPos = selection.active\n            const line = editor.document.lineAt(cursorPos.line)\n            return /^\\s*\\\\item/.test(line.text) && (line.text.substring(cursorPos.character).trim().length === 0)\n    })\n    if (!allCursorsOnItem) {\n        return vscode.commands.executeCommand('type', { source: 'keyboard', text: '\\n' })\n    }\n\n    return editor.edit(editBuilder => {\n        // If we arrive here, all the cursors are at the end of a line starting with `\\s*\\\\item`.\n        // Yet, we keep the conditions for the sake of maintenance.\n        for (const selection of editor.selections) {\n            const cursorPos = selection.active\n            const line = editor.document.lineAt(cursorPos.line)\n            const indentation = line.text.substring(0, line.firstNonWhitespaceCharacterIndex)\n\n            if (/^\\s*\\\\item(\\[\\s*\\])?\\s*$/.test(line.text)) {\n                // The line is an empty \\item or \\item[]\n                const rangeToDelete = line.range.with(cursorPos.with(line.lineNumber, line.firstNonWhitespaceCharacterIndex), line.range.end)\n                editBuilder.delete(rangeToDelete)\n            } else if(/^\\s*\\\\item\\[[^[\\]]*\\]/.test(line.text)) {\n                // The line starts with \\item[blabla] or \\item[] blabla\n                const itemString = `\\n${indentation}\\\\item[] `\n                editBuilder.insert(cursorPos, itemString)\n            } else if(/^\\s*\\\\item\\s*[^\\s]+.*$/.test(line.text)) {\n                // The line starts with \\item blabla\n                const itemString = `\\n${indentation}\\\\item `\n                editBuilder.insert(cursorPos, itemString)\n            } else {\n                // If we do not know what to do, insert a newline and indent using the current indentation\n                editBuilder.insert(cursorPos, `\\n${indentation}`)\n            }\n        }\n    })\n}\n\n/**\n* Toggle a keyword. This function works with multi-cursors or multi-selections\n*\n* If the selection is empty, a snippet is added.\n*\n* If the selection is not empty and matches `\\keyword{...}`, it is replaced by\n* the argument of `keyword`. If the selection does not start with `\\keyword`, it is surrounded by `\\keyword{...}`.\n*\n*  @param keyword the keyword to toggle without backslash eg. textbf or underline\n*/\nexport async function toggleSelectedKeyword(keyword: string) {\n    const editor = vscode.window.activeTextEditor\n    if (editor === undefined) {\n        return\n    }\n\n    const editActions: {range: vscode.Range, text: string}[] = []\n    const snippetActions: vscode.Position[] = []\n\n    for (const selection of editor.selections) {\n        // If the selection is empty, determine if a snippet should be inserted or the cursor is inside \\keyword{...}\n        if (selection.isEmpty) {\n            const surroundingCommandRange = getSurroundingMacroRange(keyword, selection.anchor, editor.document)\n            if (surroundingCommandRange) {\n                editActions.push({range: surroundingCommandRange.range, text: surroundingCommandRange.arg})\n            } else {\n                snippetActions.push(selection.anchor)\n            }\n            continue\n        }\n\n        // When the selection is not empty, decide if \\keyword must be inserted or removed\n        const text = editor.document.getText(selection)\n        if (text.startsWith(`\\\\${keyword}{`) || text.startsWith(`${keyword}{`)) {\n            const start = text.indexOf('{') + 1\n            const insideText = text.slice(start).slice(0, -1)\n            editActions.push({range: selection, text: insideText})\n        } else {\n            editActions.push({range: selection, text: `\\\\${keyword}{${text}}`})\n        }\n    }\n\n    if (editActions.length === 0 && snippetActions.length > 0) {\n        const snippet = new vscode.SnippetString(`\\\\\\\\${keyword}{$1}`)\n        await editor.insertSnippet(snippet, snippetActions)\n    } else if (editActions.length > 0 && snippetActions.length === 0) {\n        await editor.edit((editBuilder) => {\n            editActions.forEach(action => {\n                editBuilder.replace(action.range, action.text)\n            })\n        })\n    } else {\n        logger.log('toggleSelectedKeyword: cannot handle mixed edit and snippet actions')\n    }\n}\n\n/**\n * Shift the level sectioning in the selection by one (up or down)\n * @param change\n */\nexport function shiftSectioningLevel(change: 'promote' | 'demote') {\n    lw.extra.section(change)\n}\n\nexport function selectSection() {\n    lw.extra.section('select')\n}\n\nexport function devParseLog() {\n    if (vscode.window.activeTextEditor === undefined) {\n        return\n    }\n    lw.parser.parse.log(vscode.window.activeTextEditor.document.getText())\n}\n\nexport async function devParseTeX() {\n    if (vscode.window.activeTextEditor === undefined) {\n        return\n    }\n    const ast = await lw.parser.parse.tex(vscode.window.activeTextEditor.document.getText())\n    return vscode.workspace.openTextDocument({content: JSON.stringify(ast, null, 2), language: 'json'}).then(doc => vscode.window.showTextDocument(doc))\n}\n\nexport async function devParseBib() {\n    if (vscode.window.activeTextEditor === undefined) {\n        return\n    }\n    const ast = await lw.parser.parse.bib(\n        vscode.window.activeTextEditor.document.uri,\n        vscode.window.activeTextEditor.document.getText()\n    )\n    return vscode.workspace.openTextDocument({content: JSON.stringify(ast, null, 2), language: 'json'}).then(doc => vscode.window.showTextDocument(doc))\n}\n\nexport async function checkCitations() {\n    const unused = lw.extra.checkCitations()\n    if (unused.length === 0){\n        return\n    }\n    const selected = await vscode.window.showQuickPick(unused, {title: 'Unused citations'})\n    if (!selected){\n        return\n    }\n\n    const bibFiles = lw.cache.getIncludedBib(lw.root.file.path)\n    for(const bibFile of bibFiles){\n        const content = await lw.file.read(bibFile)\n        if (content && content.includes(selected)){\n            const doc = await vscode.workspace.openTextDocument(bibFile)\n\n            const {line, index} = content\n                .split(doc.eol === vscode.EndOfLine.LF ? '\\n' : '\\r\\n')\n                .map((l, i) => ({line: l, index: i}))\n                .find(({line: l}) => l.includes(selected))!\n\n            const start = new vscode.Position(index, line.indexOf(selected))\n            const end = new vscode.Position(index, line.indexOf(selected) + selected.length)\n\n            await vscode.window.showTextDocument(doc, {\n                selection: new vscode.Range(start, end),\n            })\n            return\n        }\n    }\n}\n\nexport async function devStripText() {\n    if (vscode.window.activeTextEditor === undefined) {\n        return\n    }\n    const content = stripText(vscode.window.activeTextEditor.document.getText())\n    return vscode.workspace.openTextDocument({content}).then(doc => vscode.window.showTextDocument(doc))\n}\n\nexport function texdoc(packageName?: string) {\n    lw.extra.texdoc(packageName)\n}\n\nexport function texdocUsepackages() {\n    lw.extra.texdoc(undefined, true)\n}\n\nexport async function saveActive() {\n    lw.compile.lastAutoBuildTime = Date.now()\n    await vscode.window.activeTextEditor?.document.save()\n}\n\nexport function openMathPreviewPanel() {\n    lw.preview.mathpreview.toggle('open')\n}\n\nexport function closeMathPreviewPanel() {\n    lw.preview.mathpreview.toggle('close')\n}\n\nexport function toggleMathPreviewPanel() {\n    lw.preview.mathpreview.toggle()\n}\n\nasync function quickPickRootFile(rootFile: string, localRootFile: string, verb: string): Promise<string | undefined> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const doNotPrompt = configuration.get('latex.rootFile.doNotPrompt') as boolean\n    if (doNotPrompt) {\n        if (configuration.get('latex.rootFile.useSubFile')) {\n            return localRootFile\n        } else {\n            return rootFile\n        }\n    }\n    const pickedRootFile = await vscode.window.showQuickPick([{\n        label: 'Default root file',\n        description: `Path: ${rootFile}`\n    }, {\n        label: 'Subfiles package root file',\n        description: `Path: ${localRootFile}`\n    }], {\n        placeHolder: `Subfiles package detected. Which file to ${verb}?`,\n        matchOnDescription: true\n    }).then( selected => {\n        if (!selected) {\n            return\n        }\n        switch (selected.label) {\n            case 'Default root file':\n                return rootFile\n            case 'Subfiles package root file':\n                return localRootFile\n            default:\n                return\n        }\n    })\n    return pickedRootFile\n}\n"
  },
  {
    "path": "src/core/event.ts",
    "content": "import { EventEmitter } from 'events'\nimport type { PdfViewerState } from '../../types/latex-workshop-protocol-types/index'\nimport type { Disposable } from 'vscode'\n\nimport { lw } from '../lw'\n\nconst logger = lw.log('Event')\n\nexport enum Events {\n    BuildDone = 'BUILD_DONE',\n    AutoBuildInitiated = 'AUTO_BUILD_INITIATED',\n    RootFileChanged = 'ROOT_FILE_CHANGED',\n    RootFileSearched = 'ROOT_FILE_SEARCHED',\n    FileParsed = 'FILE_PARSED',\n    ViewerPageLoaded = 'VIEWER_PAGE_LOADED',\n    ViewerStatusChanged = 'VIEWER_STATUS_CHANGED',\n    FileWatched = 'FILE_WATCHED',\n    FileChanged = 'FILE_CHANGED',\n    FileRemoved = 'FILE_REMOVED',\n    DocumentChanged = 'DOCUMENT_CHANGED',\n    StructureUpdated = 'STRUCTURE_UPDATED',\n    AutoCleaned = 'AUTO_CLEANED'\n}\n\nexport const event = {\n    ...Events,\n    on,\n    fire,\n    dispose\n}\n\nexport type EventArgs = {\n    [Events.AutoBuildInitiated]: {type: 'onFileChange' | 'onSave', file: string},\n    [Events.RootFileChanged]: string,\n    [Events.FileParsed]: string,\n    [Events.ViewerStatusChanged]: PdfViewerState,\n    [Events.FileWatched]: string,\n    [Events.FileChanged]: string,\n    [Events.FileRemoved]: string\n}\n\nconst eventEmitter = new EventEmitter()\n\nfunction dispose() {\n    eventEmitter.removeAllListeners()\n}\n\n\nfunction fire<T extends keyof EventArgs>(eventName: T, arg: EventArgs[T]): void\nfunction fire(eventName: Events): void\nfunction fire(eventName: Events, arg?: any): void {\n    if (![Events.DocumentChanged, Events.ViewerStatusChanged].includes(eventName)) {\n        logger.log(eventName + (arg ? `: ${JSON.stringify(arg)}` : ''))\n    }\n    eventEmitter.emit(eventName, arg)\n}\n\nfunction on(eventName: Events, cb: (arg?: any) => void): Disposable {\n    eventEmitter.on(eventName, cb)\n    const disposable = {\n        dispose: () => { eventEmitter.removeListener(eventName, cb) }\n    }\n    return disposable\n}\n"
  },
  {
    "path": "src/core/file.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as path from 'path'\nimport * as tmp from 'tmp'\nimport * as utils from '../utils/utils'\nimport { lw } from '../lw'\n\nconst logger = lw.log('File')\n\nlet extraTeXExts: string[]\nexport const file = {\n    tmpDirPath: '',\n    getAuxDir,\n    getOutDir,\n    getLangId,\n    getJobname,\n    getBibPath,\n    getPdfPath,\n    getFlsPath,\n    hasBinaryExt,\n    hasTeXExt,\n    hasAlwaysRootExt,\n    hasLaTeXLangId,\n    hasLaTeXClassPackageLangId,\n    hasTeXLangId,\n    hasBibLangId,\n    hasDtxLangId,\n    hasLaTeXWorkshopLangId,\n    setTeXDirs,\n    exists,\n    read,\n    kpsewhich,\n    toUri\n}\n\ninitialize()\nexport function initialize() {\n    file.tmpDirPath = createTmpDir()\n}\n\nsetExtraTeXExts()\nlw.onConfigChange('latex.extraExts', setExtraTeXExts)\nfunction setExtraTeXExts() {\n    extraTeXExts = vscode.workspace.getConfiguration('latex-workshop').get('latex.extraExts', []) as string[]\n}\n\n/**\n * Creates a temporary directory and returns its path as a string.\n *\n * This function utilizes the `tmp` library to create a temporary directory. The\n * `unsafeCleanup` option is enabled, ensuring that the directory and its\n * contents are removed even if there are open file handles. The function then\n * normalizes the directory path by replacing the system-specific path\n * separators with forward slashes, making it compatible across different\n * operating systems. In the event of an error, it captures the exception,\n * handles it using a custom error handler `handleTmpDirError`, and then\n * rethrows the error to be handled by the calling function.\n *\n * @returns {string} The normalized path of the created temporary directory.\n * @throws Will throw an error if the temporary directory creation fails.\n */\nfunction createTmpDir(): string {\n    try {\n        return tmp.dirSync({ unsafeCleanup: true }).name.split(path.sep).join('/')\n    } catch (error) {\n        if (error instanceof Error) {\n            handleTmpDirError(error)\n        }\n        throw error\n    }\n}\n\n/**\n * Handles errors related to the temporary directory.\n *\n * This function is responsible for dealing with errors that occur in the\n * process of creating or accessing the temporary directory used for building\n * TeX files. It checks if the temporary directory path contains single or\n * double quotes, which are not allowed. If such quotes are present, it logs an\n * error message and displays it to the user. Otherwise, it logs a generic error\n * message suggesting to check environment variables related to the temporary\n * directory paths.\n *\n * @param {Error} error - The error object encountered during the operation.\n */\nfunction handleTmpDirError(error: Error) {\n    if (/['\"]/.exec(os.tmpdir())) {\n        const msg = `The path of tmpdir cannot include single quotes and double quotes: ${os.tmpdir()}`\n        void vscode.window.showErrorMessage(msg)\n        logger.log(msg)\n    } else {\n        void vscode.window.showErrorMessage(`Error during making tmpdir to build TeX files: ${error.message}. Please check the environment variables, TEMP, TMP, and TMPDIR on your system.`)\n        logger.log(`TEMP, TMP, and TMPDIR: ${JSON.stringify([process.env.TEMP, process.env.TMP, process.env.TMPDIR])}`)\n    }\n}\n\n/**\n * Checks if the given file extension is associated with TeX-related extensions.\n *\n * This function verifies whether a provided file extension string matches any\n * of the TeX-related extensions defined in several constant arrays. It\n * consolidates these arrays into a single collection and checks if the given\n * extension exists within this collection. The arrays include TeX extensions\n * (including those defined by the user ), R Sweave extensions, Julia Weave extensions,\n * and Python Weave extensions.\n *\n * @param {string} extname - The file extension to be checked including the dot\n * (e.g., '.tex').\n * @returns {boolean} - Returns true if the extension is one of the TeX-related\n * extensions; otherwise, false.\n */\nfunction hasTeXExt(extname: string): boolean {\n    return [\n        ...extraTeXExts,\n        ...lw.constant.TEX_EXT,\n        ...lw.constant.RSWEAVE_EXT,\n        ...lw.constant.JLWEAVE_EXT,\n        ...lw.constant.PWEAVE_EXT\n    ].includes(extname)\n}\n\n/**\n * Determines if the provided file extension is not one of the TeX source\n * extensions.\n *\n * This function evaluates the given file extension and checks it against a\n * predefined list of TeX source extensions such as `.tex`, `.ltx`, `.sty`,\n * `.cls`, `.fd`, `.aux`, `.bbl`, `.blg`, `.brf`, `.log`, `.out`, and R Sweave\n * extensions, Julia Weave extensions, Python Weave extensions and user defined\n * tex extensions. It returns `true` if the extension is not found in this list,\n * and `false` otherwise. This is useful for filtering out non-TeX files from a\n * collection of files.\n *\n * @param {string} extname - The file extension to be checked including the dot\n * (e.g., '.tex').\n * @returns {boolean} - Returns `true` if the extension is not one of the TeX\n * source extensions, `false` if it is.\n */\nfunction hasBinaryExt(extname: string): boolean {\n    return ![\n        ...extraTeXExts,\n        ...lw.constant.TEX_EXT,\n        ...lw.constant.TEX_NOCACHE_EXT,\n        ...lw.constant.RSWEAVE_EXT,\n        ...lw.constant.JLWEAVE_EXT,\n        ...lw.constant.PWEAVE_EXT\n    ].includes(extname)\n}\n\n/**\n * Determine if the given extension corresponds to a file that should always be considered as a root file if active.\n *\n * @param {string} extname - The file extension to be checked including the dot\n * (e.g., '.tex').\n */\nfunction hasAlwaysRootExt(extname: string) {\n    return lw.constant.ACTIVE_ROOTFILE_EXT.includes(extname)\n}\n\n/**\n * Determines if the given language ID corresponds to a LaTeX-related language.\n *\n * @param {string} langId - The language identifier to check.\n * @returns {boolean} Returns `true` if `langId` is one of the LaTeX-related\n * language identifiers, otherwise `false`.\n */\nfunction hasLaTeXLangId(langId: string): boolean {\n    return ['latex', 'context', 'latex-expl3', 'pweave', 'jlweave', 'rsweave', 'doctex'].includes(langId)\n}\n\n/**\n * Determines if the given language ID corresponds to a LaTeX class or package.\n *\n * @param {string} langId - The language identifier to check.\n * @returns {boolean} Returns `true` if `langId` is one of the LaTeX class or package\n * language identifiers, otherwise `false`.\n */\nfunction hasLaTeXClassPackageLangId(langId: string): boolean {\n    return ['latex-class', 'latex-package'].includes(langId)\n}\n\n/**\n * Determines if the given language ID corresponds to a TeX-related language.\n *\n * @param {string} langId - The language identifier to check.\n * @returns {boolean} Returns `true` if `langId` is one of the TeX-related\n * language identifiers, otherwise `false`.\n */\nfunction hasTeXLangId(langId: string): boolean {\n    return ['tex', 'doctex-installer'].includes(langId)\n}\n\n/**\n * Returns `true` if the language ID is 'bibtex'.\n *\n * @param {string} langId - The language identifier.\n * @returns {boolean} - Indicates whether the language is BibTeX.\n */\nfunction hasBibLangId(langId: string): boolean {\n    return langId === 'bibtex'\n}\n\n/**\n * Returns `true` if the language ID is 'doctex'.\n *\n * @param {string} langId - The language identifier.\n * @returns {boolean} - Indicates whether the language is Doctex.\n */\nfunction hasDtxLangId(langId: string): boolean {\n    return langId === 'doctex'\n}\n\nfunction hasLaTeXWorkshopLangId(langId: string): boolean {\n    return hasLaTeXLangId(langId) || hasLaTeXClassPackageLangId(langId) || hasTeXLangId(langId) || hasBibLangId(langId) || hasDtxLangId(langId)\n}\n/**\n * An object that stores the output and auxiliary directories for TeX files.\n *\n * The `texDirs` object is a dictionary where each key is a string representing\n * the path to a TeX file, and the value is an object containing optional paths\n * for the output directory (`out`) and auxiliary directory (`aux`). This\n * structure allows for easy management and retrieval of directory paths\n * associated with each TeX file. This is particularly useful in scenarios where\n * multiple TeX files are being compiled, and each needs to have specific\n * directories for its output and auxiliary files.\n *\n * @type {Object.<string, {out?: string, aux?: string}>}\n */\nconst texDirs: { [tex: string]: { out?: string, aux?: string } } = {}\n/**\n * Sets the output and auxiliary files directory for a root TeX file.\n *\n * This function takes the path to a root TeX file and optional paths for the\n * output and auxiliary directories. If the provided TeX file path does not end\n * with the '.tex' extension, the function appends it. It then stores the output\n * and auxiliary directory paths in a global `texDirs` object, using the TeX\n * file path as the key.\n *\n * The function ensures that each TeX file has an associated output and\n * auxiliary directory, which can be useful for tracing the various files\n * generated during the TeX compilation process.\n *\n * @param {string} tex - The path to a root TeX file. If it doesn't end with\n * '.tex', the extension is appended.\n * @param {string} [out] - The corresponding output directory path. Optional.\n * @param {string} [aux] - The corresponding auxiliary directory path. Optional.\n */\nfunction setTeXDirs(tex: string, out?: string, aux?: string) {\n    if (!tex.endsWith('.tex')) {\n        tex += '.tex'\n    }\n    texDirs[tex] = { out, aux }\n}\n\n/**\n * Determines the output directory for a given LaTeX file path.\n *\n * This function calculates the output directory where LaTeX compilation\n * artifacts will be stored. If a specific LaTeX file path is provided, the\n * function uses it to determine the output directory. Otherwise, it defaults to\n * using the root file path. The function handles various scenarios, such as\n * undefined paths and placeholder replacements, ensuring the output directory\n * is appropriately formatted and normalized.\n *\n * The process begins by checking if the provided LaTeX file path (`texPath`) is\n * defined; if not, it defaults to the root file path of the LaTeX workshop. If\n * both are undefined, it returns the current directory (`./`). The function\n * retrieves the configuration for the LaTeX workshop and extracts the output\n * directory setting. If the setting is not specified, it defaults to the\n * current directory (`./`). It then replaces placeholders within the output\n * directory path with appropriate values using a utility function.\n *\n * The function further checks if the output directory is specified as `%DIR%`\n * or `%DIR_W32%` and attempts to retrieve a custom output directory from a\n * cached directory mapping. If none is found, it normalizes and formats the\n * output directory path, ensuring it uses forward slashes and trims any\n * trailing slashes.\n *\n * @param {string} [texPath] - The path to the LaTeX file. If not provided, the\n * root file path is used.\n * @returns {string} The resolved output directory path.\n */\nfunction getOutDir(texPath?: string): string {\n    texPath = texPath ?? lw.root.file.path\n    // rootFile is also undefined\n    if (texPath === undefined) {\n        return './'\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(texPath))\n    const outDir = configuration.get('latex.outDir') as string || './'\n    const out = utils.replaceArgumentPlaceholders(texPath, file.tmpDirPath)(outDir)\n    let result = undefined\n    if (outDir === '%DIR%' || outDir === '%DIR_W32%') {\n        result = texDirs[texPath]?.out\n    }\n    result = result ?? path.normalize(out).replaceAll(path.sep, '/')\n    if (result !== './' && result.endsWith('/')) {\n        result = result.slice(0, -1)\n    }\n    return result\n}\n\n\n/**\n * Determines the auxiliary directory for a given LaTeX file path.\n *\n * This function calculates the output directory where LaTeX compilation\n * auxiliary files will be stored. If a specific LaTeX file path is provided, the\n * function uses it to determine the output directory. Otherwise, it defaults to\n * using the root file path. The function handles various scenarios, such as\n * undefined paths and placeholder replacements, ensuring the output directory\n * is appropriately formatted and normalized.\n *\n * @param {string} [texPath] - The path to the LaTeX file. If not provided, the\n * root file path is used.\n * @returns {string} The resolved auxiliary directory path.\n */\nfunction getAuxDir(texPath?: string): string {\n    texPath = texPath ?? lw.root.file.path\n    // rootFile is also undefined\n    if (texPath === undefined) {\n        return './'\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(texPath))\n    const auxDir = configuration.get('latex.auxDir') as string || './'\n    let result = undefined\n    if (auxDir === '%OUTDIR%') {\n        result = texDirs[texPath]?.aux\n        if (!result) {\n            result = getOutDir(texPath)\n        }\n    }\n    const aux = utils.replaceArgumentPlaceholders(texPath, file.tmpDirPath)(auxDir)\n    result = result ?? path.normalize(aux).replaceAll(path.sep, '/')\n    if (result !== './' && result.endsWith('/')) {\n        result = result.slice(0, -1)\n    }\n    return result\n}\n\n/**\n * Returns the language identifier based on the file extension.\n *\n * This function takes a filename as an input and examines its extension to\n * determine the appropriate language identifier string. If the extension does\n * not match any of the predefined types, the function returns undefined.\n *\n * @param {string} filename - The name of the file.\n * @returns {string | undefined} - The language identifier.\n */\nfunction getLangId(filename: string): string | undefined {\n    const ext = path.extname(filename).toLocaleLowerCase()\n    if (lw.constant.TEX_EXT.includes(ext) || extraTeXExts.includes(ext)) {\n        return 'latex'\n    } else if (lw.constant.PWEAVE_EXT.includes(ext)) {\n        return 'pweave'\n    } else if (lw.constant.JLWEAVE_EXT.includes(ext)) {\n        return 'jlweave'\n    } else if (lw.constant.RSWEAVE_EXT.includes(ext)) {\n        return 'rsweave'\n    } else if (ext === '.dtx') {\n        return 'doctex'\n    } else {\n        return\n    }\n}\n\n/**\n * Retrieves the job name for a LaTeX file based on the provided file path.\n *\n * If a job name is found in the configuration 'latex.jobname', it is returned;\n * otherwise, the function derives the job name from the base name of the\n * provided file path (excluding the directory and file extension).\n *\n * @param {string} texPath - The file path of the LaTeX document.\n * @returns {string} - The job name for the LaTeX document, either from the\n * configuration or derived from the file name.\n */\nfunction getJobname(texPath: string): string {\n    const jobname = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(texPath)).get('latex.jobname') as string\n    return jobname || path.parse(texPath).name\n}\n\n/**\n * Constructs the absolute path to the PDF file corresponding to a given TeX\n * file.\n *\n * This function takes the path to a TeX file and generates the path to the\n * resulting PDF file. It first determines the directory of the TeX file and\n * combines it with the output directory, which is retrieved using the\n * `getOutDir` function. Finally, it appends the base name of the job (derived\n * from the TeX file) with a `.pdf` extension.\n *\n * @param {string} texPath - The path to the TeX file.\n * @returns {string} - The absolute path to the corresponding PDF file.\n */\nfunction getPdfPath(texPath: string): string {\n    return path.resolve(path.dirname(texPath), getOutDir(texPath), path.basename(`${getJobname(texPath)}.pdf`))\n}\n\n/**\n * Retrieves the .fls file path associated with a given .tex file.\n *\n * This function determines the file system path to the .fls file generated\n * during the compilation of a LaTeX document.\n * If no .fls file is found in the aux directory, the function returns\n * `undefined`.\n *\n * @param {string} texPath - The file path to the .tex file for which the .fls\n * file path is to be determined.\n * @returns {Promise<string | undefined>} - The path to the .fls file if it exists, or\n * `undefined` if it does not.\n */\nasync function getFlsPath(texPath: string): Promise<string | undefined> {\n    const rootDir = path.dirname(texPath)\n    const outDir = getOutDir(texPath)\n    const fileName = path.parse(getJobname(texPath)).name + '.fls'\n    let flsFile = path.resolve(rootDir, path.join(outDir, fileName))\n    if (await exists(flsFile)) {\n        return flsFile\n    }\n    const auxDir = getAuxDir(texPath)\n    flsFile = path.resolve(rootDir, path.join(auxDir, fileName))\n    return await exists(flsFile) ? flsFile : undefined\n}\n\n/**\n * A cache object for storing resolved paths of LaTeX targets.\n *\n * This object stores the results of `kpsewhich` command executions, where each\n * key is a query string constructed from the target and its format, and the\n * corresponding value is the resolved path to the target. The cache helps in\n * avoiding redundant executions of the `kpsewhich` command by returning\n * previously computed results quickly.\n */\nconst kpsecache: { [query: string]: string } = {}\n/**\n * Resolves the path to a given LaTeX target using the `kpsewhich` command.\n *\n * This function uses `kpsewhich` to find the path to a specified LaTeX target,\n * such as a .bib file. It first constructs the query string based on the target\n * and whether it is a bibliography file. If the result for this query is\n * already cached, it returns the cached value immediately. Otherwise, it\n * constructs the `kpsewhich` command and attempts to run it. If the command\n * executes successfully and returns a valid path, it caches this result and\n * returns the path. If the command fails or returns an error code, it logs the\n * error and returns `undefined`.\n *\n * @param {string} target - The LaTeX target to resolve, such as a file name.\n * @param {boolean} [isBib=false] - Indicates whether the target is a\n * bibliography file, default is false.\n * @returns {string | undefined} The resolved path to the target, or `undefined`\n * if resolution fails.\n */\nfunction kpsewhich(target: string, isBib: boolean = false): string | undefined {\n    const query = (isBib ? '-format=.bib ' : '') + target\n    if (kpsecache[query]) {\n        logger.log(`kpsewhich cache hit on ${query}: ${kpsecache[query]} .`)\n        return kpsecache[query]\n    }\n    const command = vscode.workspace.getConfiguration('latex-workshop').get('kpsewhich.path') as string\n    logger.log(`Calling ${command} to resolve ${query} .`)\n\n    try {\n        const args = isBib ? ['-format=.bib', target] : [target]\n        const cwd = lw.root.dir.path || vscode.workspace.workspaceFolders?.[0].uri.path\n        const kpsewhichReturn = lw.external.sync(command, args, { cwd })\n        if (kpsewhichReturn.status === 0) {\n            let output = kpsewhichReturn.stdout.toString().replace(/\\r?\\n/, '')\n            logger.log(`kpsewhich returned with '${output}'.`)\n            if (output !== '') {\n                if (!path.isAbsolute(output) && cwd) {\n                    output = path.resolve(cwd, output)\n                    logger.log(`kpsewhich resolved to '${output}'.`)\n                }\n                kpsecache[query] = output\n            }\n            return output\n        }\n        logger.log(`kpsewhich returned with non-zero code ${kpsewhichReturn.status}.`)\n        return undefined\n    } catch (e) {\n        logger.logError(`Calling ${command} on ${query} failed.`, e)\n        return undefined\n    }\n}\n\n/**\n * Resolves the file paths for a given bibliography file based on the base\n * directory and configuration settings.\n *\n * This function first retrieves the configuration 'latex.bibDirs' to obtain\n * directories specified for bibliography files. It combines these directories\n * with the provided base directory to form a list of directories to search for\n * the bibliography file. Additionally, if the root directory of the LaTeX\n * project is available, it is prepended to the search list. Depending on\n * whether the bibliography file name includes wildcards, the function either\n * resolves it using a file glob or directly searches for the file. If the file\n * cannot be resolved, the function optionally attempts to locate it using the\n * `kpsewhich` tool if enabled in the configuration 'kpsewhich.bibtex.enabled'.\n * Finally, the resolved bibliography file path(s) are returned.\n *\n * @param {string} bib - The name of the bibliography file to resolve.\n * @param {string} baseDir - The base directory to start the search from.\n * @returns {string[]} An array containing the resolved file path(s) for the\n * bibliography file, or an empty array if the file could not be resolved.\n */\nasync function getBibPath(bib: string, baseDir: string): Promise<string[]> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const bibDirs = configuration.get('latex.bibDirs') as string[]\n    let searchDirs: string[] = [baseDir, ...bibDirs]\n    // chapterbib requires to load the .bib file in every chapter using\n    // the path relative to the rootDir\n    if (lw.root.dir.path) {\n        searchDirs = [lw.root.dir.path, ...searchDirs]\n    }\n    const bibPath = bib.includes('*') ? utils.resolveFileGlob(searchDirs, bib, '.bib') : await utils.resolveFile(searchDirs, bib, '.bib')\n\n    if (bibPath === undefined || bibPath.length === 0) {\n        if (configuration.get('kpsewhich.bibtex.enabled')) {\n            const kpsePath = kpsewhich(bib, true)\n            return kpsePath ? [kpsePath] : []\n        } else {\n            logger.log(`Cannot resolve bib path: ${bib} .`)\n            return []\n        }\n    }\n\n    if (os.platform() === 'win32') {\n        // Normalize drive letters on Windows.\n        return [bibPath].flat().map(p => p.replace(/^([a-zA-Z]):/, (_, p1: string) => p1.toLowerCase() + ':'))\n    } else {\n        return [bibPath].flat()\n    }\n}\n\n/**\n * Reads the content of a file at the specified file path.\n *\n * This function attempts to read the contents of a file located at the given\n * file path using the VS Code workspace file system API. If the file read\n * operation is successful, the function returns the file content as a string.\n * In the event of an error during the read operation, the function handles the\n * error based on the `raise` parameter.\n *\n * If the `raise` parameter is set to `false` (the default), the function will\n * catch the error and return `undefined`, allowing the calling code to handle\n * the absence of the file content gracefully. If `raise` is set to `true`, the\n * function will rethrow the caught error, making the calling code responsible\n * for handling the exception.\n *\n * @param {string | vscode.Uri} filePath - The path / Uri to the file to be\n * read.\n * @param {boolean} [raise=false] - A flag indicating whether to rethrow an\n * error if the file read operation fails.\n * @returns {Promise<string | undefined>} - A promise that resolves to the file\n * content as a string, or `undefined` if the file read operation fails and\n * `raise` is `false`.\n * @throws Will throw an error if the file read operation fails and `raise` is\n * `true`.\n */\nasync function read(fileUri: vscode.Uri, raise?: boolean): Promise<string | undefined>\nasync function read(filePath: string, raise?: boolean): Promise<string | undefined>\nasync function read(filePathOrUri: string | vscode.Uri, raise?: boolean): Promise<string | undefined> {\n    try {\n        if (filePathOrUri instanceof vscode.Uri) {\n            return (await vscode.workspace.fs.readFile(filePathOrUri)).toString()\n        } else {\n            return (await vscode.workspace.fs.readFile(lw.file.toUri(filePathOrUri))).toString()\n        }\n    } catch (err) {\n        if (raise === undefined || raise === false) {\n            return undefined\n        }\n        throw err\n    }\n}\n\n/**\n * Checks if a file or directory exists at the given URI or path.\n *\n * This function accepts a URI object or a string representing a file path. If\n * the input is a string, it is converted to a file URI using\n * `lw.file.toUri()`. The function then attempts to retrieve the status of the\n * file or directory at the given URI using `stat()` of VS Code workspace file\n * system API. If the status retrieval is successful, the function returns the\n * file stat, which can also be used to indicate that the file or directory\n * exists. If an error occurs (e.g., the file or directory does not exist), the\n * function catches the error and returns `false`.\n *\n * @param {vscode.Uri | string} uri - The URI or file path to check for\n * existence.\n * @returns {Promise<boolean>} - A promise that resolves to `true` if the file\n * or directory exists, and `false` otherwise.\n */\nasync function exists(uri: vscode.Uri | string): Promise<vscode.FileStat | false> {\n    if (typeof (uri) === 'string') {\n        uri = lw.file.toUri(uri)\n    }\n    try {\n        return await lw.external.stat(uri)\n    } catch {\n        return false\n    }\n}\n\n/**\n * Converts a file path to a VS Code URI.\n *\n * @param {string} filePath - The file path to be converted.\n * @returns {vscode.Uri} - The corresponding VS Code URI.\n */\nfunction toUri(filePath: string): vscode.Uri {\n    const scheme = vscode.workspace.workspaceFolders?.filter(\n        folder => filePath?.startsWith(folder.uri.path)\n    )[0]?.uri.scheme ?? (lw.extra.liveshare.isGuest() ? 'vsls' : 'file')\n    // LiveShare guest sessions use the native path API, even though vsls uses POSIX paths\n    // this is a workaround that removes the drive letter from the path\n    if (scheme === 'vsls' && lw.extra.liveshare.isGuest() && os.platform() === 'win32') {\n        filePath = filePath.replace(/^\\w:\\\\/, '\\\\')\n    }\n    return vscode.Uri.file(filePath).with({ scheme })\n}\n"
  },
  {
    "path": "src/core/root.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as fs from 'fs'\n\nimport { lw } from '../lw'\nimport * as utils from '../utils/utils'\n\nconst logger = lw.log('Root')\n\nexport const root = {\n    file: {\n        path: undefined as string | undefined,\n        langId: undefined as string | undefined,\n    },\n    dir: {\n        path: undefined as string | undefined,\n    },\n    subfiles: {\n        path: undefined as string | undefined,\n        langId: undefined as string | undefined,\n    },\n    find,\n    getWorkspace\n}\n\nlw.watcher.src.onDelete(uri => {\n    if (uri.fsPath !== root.file.path) {\n        return\n    }\n    root.file = { path: undefined, langId: undefined }\n    void find()\n})\n\n/**\n * Finds the LaTeX project's root file.\n *\n * This function employs multiple strategies to find the root file for the LaTeX\n * project. It first checks for a magic comment in the active editor, then looks\n * for the root file based on the active editor's content and the entire\n * workspace according to configuration settings. The identified root file\n * triggers relevant events, and dependencies are refreshed accordingly.\n */\nasync function find(): Promise<undefined> {\n    const wsfolders = vscode.workspace.workspaceFolders?.map(e => e.uri.toString(true))\n    logger.log(`Current workspace folders: ${JSON.stringify(wsfolders)}`)\n    root.subfiles = { path: undefined, langId: undefined }\n    const findMethods = [\n        () => findFromMagic(),\n        () => findFromActive(),\n        () => findFromRoot(),\n        () => findInWorkspace()\n    ]\n    for (const method of findMethods) {\n        const rootFilePath = await method()\n        if (rootFilePath === undefined) {\n            continue\n        }\n        if (rootFilePath === root.file.path) {\n            logger.log(`Keep using the same root file: ${root.file.path}`)\n            void lw.outline.refresh()\n        } else {\n            root.file.path = rootFilePath\n            root.file.langId = lw.file.getLangId(rootFilePath)\n            root.dir.path = path.dirname(rootFilePath)\n            logger.log(`Root file changed: from ${root.file.path} to ${rootFilePath}, langID ${root.file.langId} . Refresh dependencies`)\n            lw.event.fire(lw.event.RootFileChanged, rootFilePath)\n\n            // We also clean the completions from the old project\n            lw.completion.input.reset()\n            lw.lint.label.reset()\n            lw.cache.reset()\n            lw.cache.add(rootFilePath)\n            void lw.cache.refreshCache(rootFilePath).then(async () => {\n                // We need to parse the fls to discover file dependencies when defined by TeX macro\n                // It happens a lot with subfiles, https://tex.stackexchange.com/questions/289450/path-of-figures-in-different-directories-with-subfile-latex\n                await lw.cache.loadFlsFile(rootFilePath)\n            })\n        }\n        lw.event.fire(lw.event.RootFileSearched)\n        return\n    }\n    logger.log('No root file found.')\n    void lw.outline.refresh()\n    lw.event.fire(lw.event.RootFileSearched)\n    return\n}\n\n/**\n * Gets the indicator regex based on the LaTeX configuration.\n *\n * This function retrieves the indicator regex based on the LaTeX configuration.\n * The indicator is used to identify the root file in the content of the active\n * editor.\n *\n * @returns {RegExp} The indicator regex.\n */\nfunction getIndicator(): RegExp {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const indicator = configuration.get('latex.rootFile.indicator')\n    switch (indicator) {\n        case '\\\\documentclass[]{}':\n            return /\\\\documentclass(?:\\s*\\[.*\\])?\\s*\\{.*\\}/ms\n        case '\\\\begin{document}':\n            return /\\\\begin\\s*{document}/m\n        case '\\\\starttext':\n            return /\\\\starttext/m\n        case '\\\\startTEXpage':\n            return /\\\\startTEXpage/m\n        default:\n            logger.logError('Unknown rootFile.indicator', indicator)\n            return /\\\\documentclass(?:\\s*\\[.*\\])?\\s*\\{.*\\}/ms\n    }\n}\n\n/**\n * Gets the workspace URI for a given file path or the active editor's\n * workspace.\n *\n * This function determines the workspace URI for a given file path or the\n * active editor's workspace. If no workspace is opened, it returns undefined.\n * If provided with a file path, it checks its workspace. If the active text\n * editor is not available, it makes an educated guess based on the first\n * workspace.\n *\n * @param {string} [filePath] - The file path for which to get the workspace\n * URI.\n * @returns {vscode.Uri | undefined} The workspace URI.\n */\nfunction getWorkspace(filePath?: string): vscode.Uri | undefined {\n    const firstWorkspace = vscode.workspace.workspaceFolders?.[0]\n    // If no workspace is opened.\n    if (!firstWorkspace) {\n        return\n    }\n    // If provided with a filePath, check its workspace\n    if (filePath !== undefined) {\n        return (vscode.workspace.getWorkspaceFolder(lw.file.toUri(filePath)) ?? firstWorkspace).uri\n    }\n    // If we don't have an active text editor, we can only make a guess.\n    // Let's guess the first one.\n    if (!vscode.window.activeTextEditor) {\n        return firstWorkspace.uri\n    }\n    // Get the workspace folder which contains the active document.\n    return (vscode.workspace.getWorkspaceFolder(vscode.window.activeTextEditor.document.uri) ?? firstWorkspace).uri\n}\n\n/**\n * Finds the root file based on a magic comment in the active editor.\n *\n * This function looks for a magic comment in the content of the active editor\n * to determine the root file. It follows the chain of magic comments until a\n * loop is detected or the root file is found.\n *\n * @returns {string | undefined} The root file path, or undefined if not found.\n */\nasync function findFromMagic(): Promise<string | undefined> {\n    if (!vscode.window.activeTextEditor) {\n        return\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(vscode.window.activeTextEditor.document.fileName))\n    if (!configuration.get('latex.build.enableMagicComments')) {\n        logger.log('Skip finding root from magic comment.')\n        return\n    }\n    logger.log('Try finding root from magic comment.')\n    const regex = /^(?:%\\s*!\\s*T[Ee]X\\sroot\\s*=\\s*(.*\\.(?:tex|[jrsRS]nw|[rR]tex|jtexw))$)/m\n    const fileStack: string[] = []\n    let content: string | undefined = vscode.window.activeTextEditor.document.getText()\n    let filePath = vscode.window.activeTextEditor.document.fileName\n    let result = content.match(regex)\n\n    while (result) {\n        filePath = path.resolve(path.dirname(filePath), result[1])\n\n        if (fileStack.includes(filePath)) {\n            logger.log(`Found looped magic root ${filePath} .`)\n            return filePath\n        }\n        fileStack.push(filePath)\n        logger.log(`Found magic root ${filePath}`)\n\n        content = await lw.file.read(filePath)\n        if (content === undefined) {\n            logger.log(`Non-existent magic root ${filePath} .`)\n            return\n        }\n\n        result = content.match(regex)\n    }\n    if (fileStack.length > 0) {\n        const finalFilePath = fileStack[fileStack.length - 1]\n        logger.log(`Finalized magic root ${finalFilePath} .`)\n        return finalFilePath\n    }\n\n    return\n}\n\n/**\n * Finds the root file based on the active editor's file.\n *\n * This function verifies if the active editor's file is already in the cache of\n * included TeX files. If so, the current root file remains to be the root.\n *\n * @returns {string | undefined} The root file path, or undefined if not found.\n */\nfunction findFromRoot(): string | undefined {\n    if (!vscode.window.activeTextEditor || root.file.path === undefined) {\n        return\n    }\n    if (!lw.constant.FILE_URI_SCHEMES.includes(vscode.window.activeTextEditor.document.uri.scheme)) {\n        logger.log(`The active document cannot be used as the root file: ${vscode.window.activeTextEditor.document.uri.toString(true)}`)\n        return\n    }\n    logger.log('Try finding root from current root.')\n    const langId = vscode.window.activeTextEditor.document.languageId\n    if (langId && (lw.file.hasLaTeXLangId(langId) || lw.file.hasLaTeXClassPackageLangId(langId))\n        && lw.cache.getIncludedTeX().has(vscode.window.activeTextEditor.document.fileName)) {\n        logger.log(`Current root file is still valid: ${root.file.path}`)\n        return root.file.path\n    }\n    return\n}\n\n/**\n * Finds the root file based on the active editor's content.\n *\n * This function identifies the root file by searching for an indicator RegExp\n * in the content of the active editor. It also handles the case where the root\n * file is a subfile, triggering relevant events.\n *\n * @returns {string | undefined} The root file path, or undefined if not found.\n */\nasync function findFromActive(): Promise<string | undefined> {\n    if (!vscode.window.activeTextEditor) {\n        return\n    }\n    if (!lw.constant.FILE_URI_SCHEMES.includes(vscode.window.activeTextEditor.document.uri.scheme)) {\n        logger.log(`The active document cannot be used as the root file: ${vscode.window.activeTextEditor.document.uri.toString(true)}`)\n        return\n    }\n    logger.log('Try finding root from active editor.')\n    const activeFilePath = vscode.window.activeTextEditor.document.fileName\n    if (lw.file.hasAlwaysRootExt(path.extname(activeFilePath))) {\n        logger.log(`Found root file from active editor: ${activeFilePath}`)\n        return activeFilePath\n    }\n    const content = utils.stripCommentsAndVerbatim(vscode.window.activeTextEditor.document.getText())\n    const result = content.match(getIndicator())\n    if (result) {\n        const rootFilePath = await findSubfiles(content)\n        if (rootFilePath) {\n            root.subfiles.path = activeFilePath\n            root.subfiles.langId = lw.file.getLangId(activeFilePath)\n            return rootFilePath\n        } else {\n            logger.log(`Found root file from active editor: ${activeFilePath}`)\n            return activeFilePath\n        }\n    }\n    return\n}\n\n/**\n * Finds the root file for subfiles in the active editor's content.\n *\n * This function identifies the root file for subfiles in the content of the\n * active editor by searching for a specific pattern.\n *\n * @param {string} content - The content of the active editor.\n * @returns {string | undefined} The root file path for subfiles, or undefined\n * if not found.\n */\nasync function findSubfiles(content: string): Promise<string | undefined> {\n    const regex = /(?:\\\\documentclass\\[(.*)\\]{subfiles})/s\n    const result = content.match(regex)\n    if (!result) {\n        return\n    }\n    const filePath = await utils.resolveFile([path.dirname(vscode.window.activeTextEditor!.document.fileName)], result[1])\n    if (filePath) {\n        logger.log(`Found subfile root ${filePath} from active.`)\n    }\n    return filePath\n}\n\n/**\n * Finds the root file in the entire workspace based on configuration settings.\n *\n * This function scans the entire workspace based on configuration settings to\n * find potential root files. It considers patterns for inclusion and exclusion\n * and validates candidates based on TeX file indicators. The identified root\n * file triggers relevant events, and dependencies are refreshed accordingly.\n *\n * @returns {Promise<string | undefined>} A promise that resolves to the root\n * file path, or undefined if not found.\n */\nasync function findInWorkspace(): Promise<string | undefined> {\n    const workspace = getWorkspace()\n    logger.log(`Try finding root from current workspaceRootDir: ${workspace ? workspace.toString(true) : ''} .`)\n\n    if (!workspace) {\n        return\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', workspace)\n    const rootFilesIncludePatterns = configuration.get('latex.search.rootFiles.include') as string[]\n    const rootFilesIncludeGlob = '{' + rootFilesIncludePatterns.join(',') + '}'\n    const rootFilesExcludePatterns = configuration.get('latex.search.rootFiles.exclude') as string[]\n    const rootFilesExcludeGlob = rootFilesExcludePatterns.length > 0 ? '{' + rootFilesExcludePatterns.join(',') + '}' : undefined\n    try {\n        const fileUris = await vscode.workspace.findFiles(rootFilesIncludeGlob, rootFilesExcludeGlob)\n        const candidates: string[] = []\n        for (const fileUri of fileUris) {\n            if (!lw.constant.FILE_URI_SCHEMES.includes(fileUri.scheme)) {\n                logger.log(`Skip the file: ${fileUri.toString(true)}`)\n                continue\n            }\n            const flsChildren = await lw.cache.getFlsChildren(fileUri.fsPath)\n            if (vscode.window.activeTextEditor && flsChildren.includes(vscode.window.activeTextEditor.document.fileName)) {\n                logger.log(`Found root file from '.fls': ${fileUri.fsPath}`)\n                return fileUri.fsPath\n            }\n            const content = utils.stripCommentsAndVerbatim(fs.readFileSync(fileUri.fsPath).toString())\n            const result = content.match(getIndicator())\n            if (result) {\n                // Can be a root\n                const activeFilePath = vscode.window.activeTextEditor?.document.fileName ?? ''\n                if (vscode.window.activeTextEditor\n                    && fileUri.fsPath !== activeFilePath\n                    && lw.cache.getIncludedTeX(fileUri.fsPath).has(activeFilePath)) {\n                    logger.log(`Found root file from active editor by parent: ${fileUri.fsPath}`)\n                    candidates.unshift(fileUri.fsPath)\n                }\n                // Not including the active file, yet can still be a root candidate\n                candidates.push(fileUri.fsPath)\n            }\n        }\n        if (root.file.path && candidates.includes(root.file.path)) {\n            logger.log(`Found files that might be root including the current root: ${candidates} .`)\n            return root.file.path\n        } else if (candidates.length > 0) {\n            logger.log(`Found files that might be root, choose the first one: ${candidates} .`)\n            return candidates[0]\n        }\n    } catch (err) {\n        logger.logError('Error finding root file in workspace', err)\n    }\n    return\n}\n"
  },
  {
    "path": "src/core/watcher.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nconst logger = lw.log('Cacher', 'Watcher')\n\nclass Watcher {\n    /**\n     * Map of folder paths to watcher information. Each folder has its own\n     * watcher to save resources.\n     */\n    private get watchers() {\n        return this._watchers\n    }\n    private readonly _watchers: {[folder: string]: {watcher: vscode.FileSystemWatcher, files: Set<string>}} = {}\n\n    /**\n     * Set of handlers to be called when a file is created.\n     */\n    private get onCreateHandlers() {\n        return this._onCreateHandlers\n    }\n    private readonly _onCreateHandlers: Set<(uri: vscode.Uri) => void> = new Set()\n    /**\n     * Set of handlers to be called when a file is changed.\n     */\n    private get onChangeHandlers() {\n        return this._onChangeHandlers\n    }\n    private readonly _onChangeHandlers: Set<(uri: vscode.Uri) => void> = new Set()\n    /**\n     * Set of handlers to be called when a file is deleted.\n     */\n    private get onDeleteHandlers() {\n        return this._onDeleteHandlers\n    }\n    private readonly _onDeleteHandlers: Set<(uri: vscode.Uri) => void> = new Set()\n    /**\n     * Map of file paths to polling information. This may be of particular use\n     * when large binary files are progressively write to disk, and multiple\n     * 'change' events are therefore emitted in a short period of time.\n     */\n    private readonly polling: {[uriString: string]: {time: number, size: number}} = {}\n\n    /**\n     * Creates a new Watcher instance.\n     *\n     * @param {'.*' | '.bib' | '.pdf'} [fileExt='.*'] - The file extension to watch.\n     */\n    constructor(readonly fileExt: '.*' | '.bib' | '.pdf' = '.*') {}\n\n    /**\n     * Adds a handler for file creation events.\n     *\n     * @param {(uri: vscode.Uri) => void} handler - The handler function.\n     */\n    onCreate(handler: (uri: vscode.Uri) => void) {\n        this.onCreateHandlers.add(handler)\n    }\n\n    /**\n     * Adds a handler for file change events.\n     *\n     * @param {(uri: vscode.Uri) => void} handler - The handler function.\n     */\n    onChange(handler: (uri: vscode.Uri) => void) {\n        this.onChangeHandlers.add(handler)\n    }\n\n    /**\n     * Adds a handler for file deletion events.\n     *\n     * @param {(uri: vscode.Uri) => void} handler - The handler function.\n     */\n    onDelete(handler: (uri: vscode.Uri) => void) {\n        this.onDeleteHandlers.add(handler)\n    }\n\n    /**\n     * Creates a new file system watcher based on the provided glob pattern.\n     *\n     * @param {vscode.GlobPattern} globPattern - The glob pattern for the\n     * watcher.\n     * @returns {vscode.FileSystemWatcher} - The created file system watcher.\n     */\n    private createWatcher(globPattern: vscode.GlobPattern): vscode.FileSystemWatcher {\n        const watcher = vscode.workspace.createFileSystemWatcher(globPattern)\n        watcher.onDidCreate((uri: vscode.Uri) => this.onDidChange('create', uri))\n        watcher.onDidChange((uri: vscode.Uri) => this.onDidChange('change', uri))\n        watcher.onDidDelete((uri: vscode.Uri) => this.onDidDelete(uri))\n        return watcher\n    }\n\n    /**\n     * Handles file change events.\n     *\n     * @param {'create' | 'change'} event - The type of event.\n     * @param {vscode.Uri} uri - The URI of the changed file.\n     */\n    private async onDidChange(event: 'create' | 'change', uri: vscode.Uri): Promise<void> {\n        const folder = path.dirname(uri.fsPath)\n        const fileName = path.basename(uri.fsPath)\n        const watcherInfo = this.watchers[folder]\n\n        if (!watcherInfo?.files.has(fileName)) {\n            return\n        }\n\n        if (!lw.file.hasBinaryExt(path.extname(uri.fsPath))) {\n            this.handleNonBinaryFileChange(event, uri)\n        } else if (!this.polling[uri.toString(true)]) {\n            await this.initiatePolling(uri)\n        }\n    }\n\n    /**\n     * Handles non-binary file (e.g., TeX and Bib) change events.\n     *\n     * @param {'create' | 'change'} event - The type of event.\n     * @param {vscode.Uri} uri - The URI of the changed file.\n     */\n    private handleNonBinaryFileChange(event: string, uri: vscode.Uri): void {\n        const uriString = uri.toString(true)\n        logger.log(`\"${event}\" emitted on ${uriString}.`)\n        this.onChangeHandlers.forEach(handler => handler(uri))\n        lw.event.fire(lw.event.FileChanged, uriString)\n    }\n\n    /**\n     * Initiates polling for a binary file.\n     *\n     * This function is triggered when a non-binary file is changed, and polling\n     * is required to accurately detect the change. It sets up an interval to\n     * periodically check for changes in the file's size. When a change is\n     * detected, the `handlePolling` function is called to further validate the\n     * change and trigger the appropriate handlers.\n     *\n     * @param {vscode.Uri} uri - The URI of the changed file.\n     */\n    private async initiatePolling(uri: vscode.Uri): Promise<void> {\n        const uriString = uri.toString(true)\n        const firstChangeTime = Date.now()\n        const size = (await lw.external.stat(uri)).size\n\n        this.polling[uriString] = { size, time: firstChangeTime }\n\n        const pollingInterval = setInterval(() => {\n            void this.handlePolling(uri, firstChangeTime, pollingInterval)\n        }, vscode.workspace.getConfiguration('latex-workshop').get('latex.watch.pdf.delay') as number)\n    }\n\n    /**\n     * Handles polling.\n     *\n     * This function is responsible for polling a file to accurately detect\n     * changes when the file is non-binary and other events have initiated\n     * polling. It compares the current size of the file with the recorded size\n     * during the initiation of polling. If the size remains unchanged for a\n     * specified time (200 milliseconds), it is considered a valid change, and\n     * the appropriate handlers are triggered.\n     *\n     * @param {vscode.Uri} uri - The uri of the changed file.\n     * @param {number} firstChangeTime - The timestamp of the first change.\n     * @param {NodeJS.Timeout} interval - The polling interval.\n     */\n    private async handlePolling(uri: vscode.Uri, firstChangeTime: number, interval: NodeJS.Timeout): Promise<void> {\n        const uriString = uri.toString(true)\n        if (!await lw.file.exists(uri)) {\n            clearInterval(interval)\n            delete this.polling[uriString]\n            return\n        }\n\n        // Resume vscode may cause accidental \"change\", do nothing\n        if (!(uriString in this.polling)) {\n            clearInterval(interval)\n            return\n        }\n\n        const currentSize = (await lw.external.stat(uri)).size\n\n        if (currentSize !== this.polling[uriString].size) {\n            this.polling[uriString].size = currentSize\n            this.polling[uriString].time = Date.now()\n            return\n        }\n\n        if (Date.now() - this.polling[uriString].time >= 200) {\n            logger.log(`\"change\" emitted on ${uriString} after polling for ${Date.now() - firstChangeTime} ms.`)\n            clearInterval(interval)\n            delete this.polling[uriString]\n            this.onChangeHandlers.forEach(handler => handler(uri))\n            lw.event.fire(lw.event.FileChanged, uriString)\n        }\n    }\n\n    /**\n     * Handles file deletion events.\n     *\n     * @param {vscode.Uri} uri - The URI of the deleted file.\n     */\n    private async onDidDelete(uri: vscode.Uri): Promise<void> {\n        const folder = path.dirname(uri.fsPath)\n        const fileName = path.basename(uri.fsPath)\n        const watcherInfo = this.watchers[folder]\n\n        if (!watcherInfo?.files.has(fileName)) {\n            return\n        }\n\n        const uriString = uri.toString(true)\n        logger.log(`\"delete\" emitted on ${uriString}.`)\n        return new Promise(resolve => {\n            setTimeout(async () => {\n                if (await lw.file.exists(uri)) {\n                    logger.log(`File deleted and re-created: ${uriString} .`)\n                    resolve()\n                    return\n                }\n                logger.log(`File deletion confirmed: ${uriString} .`)\n                this.onDeleteHandlers.forEach(handler => handler(uri))\n                watcherInfo.files.delete(fileName)\n\n                if (watcherInfo.files.size === 0) {\n                    this.disposeWatcher(folder)\n                }\n\n                lw.event.fire(lw.event.FileRemoved, uriString)\n                resolve()\n            }, vscode.workspace.getConfiguration('latex-workshop').get('latex.watch.delay') as number)\n        })\n    }\n\n    /**\n     * Disposes of a watcher for a specific folder.\n     *\n     * @param {string} folder - The path of the folder.\n     */\n    private disposeWatcher(folder: string): void {\n        const watcherInfo = this.watchers[folder]\n        watcherInfo.watcher.dispose()\n        delete this.watchers[folder]\n        logger.log(`Unwatched folder ${folder}.`)\n    }\n\n    /**\n     * Adds a file to be watched.\n     *\n     * This function is responsible for adding a file to the list of watched\n     * files. It checks whether a watcher for the file's folder already exists.\n     * If not, a new watcher is created for the folder, and the file is added to\n     * the set of files being watched. If a watcher already exists, the file is\n     * simply added to the set of files being watched by the existing watcher.\n     *\n     * @param {vscode.Uri} uri - The uri of the file to watch.\n     */\n    add(uri: vscode.Uri) {\n        const fileName = path.basename(uri.fsPath)\n        const folder = path.dirname(uri.fsPath)\n        if (!this.watchers[folder]) {\n            this.watchers[folder] = {\n                watcher: this.createWatcher(new vscode.RelativePattern(folder, `*${this.fileExt}`)),\n                files: new Set([fileName])\n            }\n            this.onCreateHandlers.forEach(handler => handler(uri))\n            logger.log(`Watched ${uri.toString(true)} with a new ${this.fileExt} watcher on ${folder} .`)\n        } else {\n            this.watchers[folder].files.add(fileName)\n            this.onCreateHandlers.forEach(handler => handler(uri))\n            logger.log(`Watched ${uri.toString(true)} by the ${this.fileExt} watcher.`)\n        }\n        lw.event.fire(lw.event.FileWatched, uri.toString(true))\n    }\n\n    /**\n     * Removes a file from being watched.\n     *\n     * @param {vscode.Uri} uri - The uri of the file to stop watching.\n     */\n    remove(uri: vscode.Uri) {\n        this.watchers[path.dirname(uri.fsPath)]?.files.delete(path.basename(uri.fsPath))\n    }\n\n    /**\n     * Checks if a file is currently being watched.\n     *\n     * @param {vscode.Uri} uri - The uri of the file to check.\n     * @returns {boolean} - Indicates whether the file is being watched.\n     */\n    has(uri: vscode.Uri): boolean {\n        return this.watchers[path.dirname(uri.fsPath)]?.files.has(path.basename(uri.fsPath))\n    }\n\n    /**\n     * Resets all watchers.\n     */\n    reset() {\n        Object.entries(this.watchers).forEach(([folder, watcher]) => {\n            watcher.watcher.dispose()\n            delete this.watchers[folder]\n        })\n        logger.log('Reset.')\n    }\n}\n\nexport const watcher = {\n    src: new Watcher(),\n    pdf: new Watcher('.pdf'),\n    bib: new Watcher('.bib'),\n    glossary: new Watcher('.bib')\n}\n"
  },
  {
    "path": "src/extras/activity-bar.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\n\nlw.onConfigChange('latex.recipes', update)\n\nfunction buildNode(parent: LaTeXCommand, children: LaTeXCommand[]) {\n    if (children.length > 0) {\n        parent.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed\n        parent.children = children\n        children.forEach((c) => c.parent = parent)\n    }\n    return parent\n}\n\nasync function buildCommandTree(): Promise<LaTeXCommand[]> {\n    const commands: LaTeXCommand[] = []\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.getWorkspace())\n\n    const buildCommand = new LaTeXCommand(await lw.language.getLocaleString('command.build'), {command: 'latex-workshop.build'}, 'debug-start')\n    const recipes = configuration.get('latex.recipes', []) as {name: string}[]\n    const recipeCommands = await Promise.all(\n        recipes.map(async recipe =>\n            new LaTeXCommand(await lw.language.getLocaleString('activity.recipe') + `: ${recipe.name}`, {command: 'latex-workshop.recipes', arguments: [recipe.name]}, 'debug-start')))\n    let node: LaTeXCommand\n    node = buildNode(buildCommand, [\n        new LaTeXCommand(await lw.language.getLocaleString('command.clean'), {command: 'latex-workshop.clean'}, 'clear-all'),\n        new LaTeXCommand(await lw.language.getLocaleString('command.kill'), {command: 'latex-workshop.kill'}, 'debug-stop'),\n        ...recipeCommands\n    ])\n    commands.push(node)\n\n    const viewCommand = new LaTeXCommand(await lw.language.getLocaleString('activity.view'), {command: 'latex-workshop.view'}, 'open-preview')\n    node = buildNode(viewCommand, [\n        new LaTeXCommand(await lw.language.getLocaleString('activity.viewintab'), {command: 'latex-workshop.view', arguments: ['tab']}, 'open-preview'),\n        new LaTeXCommand(await lw.language.getLocaleString('activity.viewinweb'), {command: 'latex-workshop.view', arguments: ['browser']}, 'browser'),\n        new LaTeXCommand(await lw.language.getLocaleString('activity.viewinexternal'), {command: 'latex-workshop.view', arguments: ['external']}, 'preview'),\n        new LaTeXCommand(await lw.language.getLocaleString('command.refresh-viewer'), {command: 'latex-workshop.refresh-viewer'}, 'refresh')\n    ])\n    commands.push(node)\n\n    const logCommand = new LaTeXCommand(await lw.language.getLocaleString('activity.log'), {command: 'latex-workshop.log'}, 'output')\n    const compilerLog = new LaTeXCommand(await lw.language.getLocaleString('command.compilerlog'), {command: 'latex-workshop.compilerlog'}, 'output')\n    const latexWorkshopLog = new LaTeXCommand(await lw.language.getLocaleString('command.log'), {command: 'latex-workshop.log'}, 'output')\n    node = buildNode(logCommand, [\n        latexWorkshopLog,\n        compilerLog\n    ])\n    commands.push(node)\n\n    const navCommand = new LaTeXCommand(await lw.language.getLocaleString('activity.navigate'), undefined, 'edit')\n    node= buildNode(navCommand, [\n        new LaTeXCommand(await lw.language.getLocaleString('command.synctex'), {command: 'latex-workshop.synctex'}, 'go-to-file'),\n        new LaTeXCommand(await lw.language.getLocaleString('command.navigate-envpair'), {command: 'latex-workshop.navigate-envpair'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.select-envcontent'), {command: 'latex-workshop.select-envcontent'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.select-envname'), {command: 'latex-workshop.select-envname'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.close-env'), {command: 'latex-workshop.close-env'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.wrap-env'), {command: 'latex-workshop.wrap-env'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.addtexroot'), {command: 'latex-workshop.addtexroot'})\n    ])\n    commands.push(node)\n\n    const miscCommand = new LaTeXCommand(await lw.language.getLocaleString('activity.misc'), undefined, 'menu')\n    node = buildNode(miscCommand, [\n        new LaTeXCommand(await lw.language.getLocaleString('command.citation'), {command: 'latex-workshop.citation'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.wordcount'), {command: 'latex-workshop.wordcount'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.revealoutput'), {command: 'latex-workshop.revealOutputDir'}, 'folder-opened')\n    ])\n    commands.push(node)\n\n    const bibtexCommand = new LaTeXCommand(await lw.language.getLocaleString('activity.bibtex'), undefined, 'references')\n    node = buildNode(bibtexCommand, [\n        new LaTeXCommand(await lw.language.getLocaleString('command.bibalign'), {command: 'latex-workshop.bibalign'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.bibsort'), {command: 'latex-workshop.bibsort'}, 'sort-precedence'),\n        new LaTeXCommand(await lw.language.getLocaleString('command.bibalignsort'), {command: 'latex-workshop.bibalignsort'}),\n        new LaTeXCommand(await lw.language.getLocaleString('command.checkcitations'), {command: 'latex-workshop.checkcitations'})\n    ])\n    commands.push(node)\n    return commands\n}\n\n\nasync function update() {\n    state.commands = await buildCommandTree()\n    state.treeDataProvider._onDidChangeTreeData.fire(undefined)\n}\n\nclass CommandProvider implements vscode.TreeDataProvider<LaTeXCommand> {\n    readonly _onDidChangeTreeData: vscode.EventEmitter<LaTeXCommand | undefined> = new vscode.EventEmitter<LaTeXCommand | undefined>()\n    readonly onDidChangeTreeData: vscode.Event<LaTeXCommand | undefined> = this._onDidChangeTreeData.event\n\n    getTreeItem(element: LaTeXCommand): vscode.TreeItem {\n        const treeItem: vscode.TreeItem = new vscode.TreeItem(element.label, element.collapsibleState)\n        treeItem.command = element.command\n        treeItem.iconPath = element.codicon && new vscode.ThemeIcon(element.codicon)\n        return treeItem\n    }\n\n    async getChildren(element?: LaTeXCommand): Promise<LaTeXCommand[]> {\n        if (element) {\n            return element.children\n        }\n        if (state.commands.length > 0) {\n            return state.commands\n        }\n        state.commands = await buildCommandTree()\n        return state.commands\n    }\n\n    getParent(element: LaTeXCommand) {\n        return element.parent\n    }\n}\n\nclass LaTeXCommand {\n    public children: LaTeXCommand[] = []\n    public readonly command: vscode.Command | undefined\n    public collapsibleState = vscode.TreeItemCollapsibleState.None\n    public parent: LaTeXCommand | undefined\n\n    constructor(\n        public readonly label: string,\n        command?: {command: string, arguments?: string[]},\n        public readonly codicon?: string\n    ) {\n        if (command) {\n            this.command = {...command, title: ''}\n        }\n    }\n}\n\nconst treeDataProvider = new CommandProvider()\nconst state = {\n    commands: [] as LaTeXCommand[],\n    view: vscode.window.createTreeView('latex-workshop-commands', { treeDataProvider, showCollapseAll: true }),\n    treeDataProvider\n}\n"
  },
  {
    "path": "src/extras/checkcites.ts",
    "content": "import * as vscode from 'vscode'\nimport { EOL } from 'os'\nimport { lw } from '../lw'\nimport * as path from 'path'\n\nconst logger = lw.log('Citations', 'Linter')\n\nexport function checkCitations() {\n  logger.log('Checking citations.')\n  const rootPath = lw.root.file.path\n  const scope = rootPath ? lw.file.toUri(rootPath) : undefined\n  const configuration = vscode.workspace.getConfiguration('latex-workshop', scope)\n  const aux = lw.root.file.path?.replace(/\\.tex$/, '.aux')\n  const auxDir = path.join(path.dirname(aux || ''),path.normalize(configuration.get('latex.outDir') as string))\n  const auxBaseName = aux ? path.basename(aux) : ''\n  const auxFile = aux ? path.join(auxDir, auxBaseName) : undefined\n  if (!auxFile) {\n    logger.log('No aux file found.')\n    return []\n  }\n\n  const {stdout, error} = lw.external.sync('checkcites', ['-u', auxFile], {\n    cwd: lw.root.dir.path,\n  })\n  if (error) {\n    logger.logError('Error checking citations.', error)\n    return []\n  }\n\n  const result = stdout\n    .toString()\n    .split(EOL)\n    .filter(l => l.startsWith('=>'))\n    .map(l => l.slice(2).trim())\n\n  logger.log(`Found ${result.length} unused citation(s).`)\n  return result\n}\n"
  },
  {
    "path": "src/extras/cleaner.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { glob } from 'glob'\nimport * as cs from 'cross-spawn'\nimport { lw } from '../lw'\nimport { replaceArgumentPlaceholders } from '../utils/utils'\n\nconst logger = lw.log('Cleaner')\n\nexport {\n    clean\n}\n\n/**\n * Removes the duplicate elements. Note that the order of the sequence will not be preserved.\n */\nfunction unique(sequence: string[]): string[] {\n    return Array.from(new Set(sequence))\n}\n\n/**\n * Globs all given patterns into absolute paths. The result will be sorted in\n * reverse order and all tailing slashes will be stripped.\n *\n * The result is sorted in descending dictionary order, make sure the children are sorted before the parents.\n * For example: [..., 'out/folder1/folder2/', 'out/folder1/', ...] ('out/folder1/folder2/' > 'out/folder1/' in directory order)\n */\nfunction globAll(globs: string[], cwd: string): string[] {\n    return unique(\n        globs.map(g => glob.sync(g, { cwd }))\n             .flat()\n             .map((globedPath: string): string => path.resolve(cwd, globedPath))\n    ).sort((a, b) => b.localeCompare(a))\n}\n\nfunction globAllMultipleCwds(globs: string[], cwds: string[]): string[] {\n    return unique(\n        cwds.map(cwd => globAll(globs, cwd)).flat()\n    ).sort((a, b) => b.localeCompare(a))\n}\n\n\nasync function clean(rootFile?: string): Promise<void> {\n    if (!rootFile) {\n        if (lw.root.file.path !== undefined) {\n            await lw.root.find()\n        }\n        rootFile = lw.root.file.path\n        if (!rootFile) {\n            logger.log('Cannot determine the root file to be cleaned.')\n            return\n        }\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const cleanMethod = configuration.get('latex.clean.method') as string\n    switch (cleanMethod) {\n        case 'glob':\n            return cleanGlob(rootFile)\n        case 'cleanCommand':\n            await configuration.update('latex.clean.method', 'command')\n            void vscode.window.showInformationMessage('The cleaning method `cleanCommand` has been renamed to `command`. Your config is auto-updated.')\n            return cleanCommand(rootFile)\n        case 'command':\n            return cleanCommand(rootFile)\n        default:\n            logger.log(`Unknown cleaning method ${cleanMethod} .`)\n            return\n    }\n}\n\n/**\n * Splits the given glob patterns into three distinct groups (duplicates will be ignored)\n *   1. file or folder globs (not end with tailing slashes)\n *   2. globs explicitly for folders\n *   3. folder globs with globstar (`**`)\n *\n * We will remove the <1.> type paths if they are files, remove the <2.> type\n * paths if they are empty folders, and ignore the <3.> type paths.\n *\n * @param globs a list of glob patterns\n * @returns three distinct groups of glob patterns\n */\nfunction splitGlobs(globs: string[]): { fileOrFolderGlobs: string[], folderGlobsExplicit: string[], folderGlobsWithGlobstar: string[] } {\n    const fileOrFolderGlobs: string[] = []\n    const folderGlobsWithGlobstar: string[] = []\n    const folderGlobsExplicit: string[] = []\n\n    for (const pattern of unique(globs)) {\n        if (pattern.endsWith(path.sep)) {\n            if (path.basename(pattern).includes('**')) {\n                folderGlobsWithGlobstar.push(pattern)\n            } else {\n                folderGlobsExplicit.push(pattern)\n            }\n        } else {\n            fileOrFolderGlobs.push(pattern)\n        }\n    }\n\n    return { fileOrFolderGlobs, folderGlobsExplicit, folderGlobsWithGlobstar }\n}\n\n/**\n * Removes files in `outDir` and `auxDir` matching the glob patterns.\n *\n * Also removes empty folders explicitly specified by the glob pattern. We\n * only remove folders that are empty and the folder glob pattern is added\n * intentionally by the user. Otherwise, the folders will be ignored.\n */\nasync function cleanGlob(rootFile: string): Promise<void> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const globPrefix = (configuration.get('latex.clean.subfolder.enabled') as boolean) ? './**/' : ''\n    const globs = (configuration.get('latex.clean.fileTypes') as string[])\n        .map(globType => globPrefix + replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(globType))\n    const outdir = path.resolve(path.dirname(rootFile), lw.file.getOutDir(rootFile))\n    logger.log(`Clean glob matched files ${JSON.stringify({globs, outdir})} .`)\n    const auxdir = path.resolve(path.dirname(rootFile), lw.file.getAuxDir(rootFile))\n    logger.log(`Clean glob matched files ${JSON.stringify({globs, auxdir})} .`)\n\n    const { fileOrFolderGlobs, folderGlobsExplicit, folderGlobsWithGlobstar } = splitGlobs(globs)\n    logger.log(`Ignore folder glob patterns with globstar: ${folderGlobsWithGlobstar} .`)\n\n    const explicitFolders: string[] = globAllMultipleCwds(folderGlobsExplicit, [auxdir,outdir])\n    const explicitFoldersSet: Set<string> = new Set(explicitFolders)\n    const filesOrFolders: string[] = globAllMultipleCwds(fileOrFolderGlobs, [auxdir, outdir]).filter(file => !explicitFoldersSet.has(file))\n\n    // Remove files first\n    for (const realPath of filesOrFolders) {\n        try {\n            const stats: fs.Stats = fs.statSync(realPath)\n            if (stats.isFile()) {\n                await fs.promises.unlink(realPath)\n                logger.log(`Cleaning file ${realPath} .`)\n            } else if (stats.isDirectory()) {\n                logger.log(`Not removing folder that is not explicitly specified ${realPath} .`)\n            } else {\n                logger.log(`Not removing non-file ${realPath} .`)\n            }\n        } catch (err) {\n            logger.logError(`Failed cleaning path ${realPath} .`, err)\n            logger.refreshStatus('x', 'errorForeground', `Cleaning failed: ${err}`, 'error')\n        }\n    }\n\n    // Then remove empty folders EXPLICITLY specified by the user\n    for (const folderRealPath of explicitFolders) {\n        try {\n            if (fs.readdirSync(folderRealPath).length === 0) {\n                await fs.promises.rmdir(folderRealPath)\n                logger.log(`Removing empty folder: ${folderRealPath} .`)\n            } else {\n                logger.log(`Not removing non-empty folder: ${folderRealPath} .`)\n            }\n        } catch (err) {\n            logger.logError(`Failed cleaning folder ${folderRealPath} .`, err)\n        }\n    }\n}\n\nfunction cleanCommand(rootFile: string): Promise<void> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n    const command = configuration.get('latex.clean.command') as string\n    const args = (configuration.get('latex.clean.args') as string[])\n        .map(arg => { return replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(arg)\n            // cleaner.ts specific tokens\n            .replace(/%TEX%/g, rootFile)\n        })\n    logger.logCommand('Clean temporary files command', command, args)\n    return new Promise((resolve, _reject) => {\n        // issue #3679 #3687: spawning with `detached: true` causes latexmk from MiKTeX to fail on Windows when \"install on-the-fly\" is enabled\n        const proc = cs.spawn(command, args, {cwd: path.dirname(rootFile)})\n        let stderr = ''\n        proc.stderr.on('data', newStderr => {\n            stderr += newStderr\n        })\n        proc.on('error', err => {\n            logger.logError(`Failed running cleaning command ${command} .`, err, stderr)\n            resolve()\n        })\n        proc.on('exit', exitCode => {\n            if (exitCode !== 0) {\n                logger.logError('The clean command failed.', exitCode, stderr)\n                logger.refreshStatus('x', 'errorForeground', `Cleaning failed: ${stderr}`, 'error')\n            }\n            resolve()\n        })\n    })\n}\n"
  },
  {
    "path": "src/extras/counter.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as cs from 'cross-spawn'\nimport { lw } from '../lw'\n\nconst logger = lw.log('Counter')\n\nexport {\n    count\n}\n\nconst state = {\n    useDocker: false,\n    disableCountAfterSave: false,\n    autoRunEnabled: false,\n    autoRunInterval: 0,\n    commandArgs: [] as string[],\n    commandPath: '',\n    texCountMessage: '',\n    wordCount: '',\n    // gotoLine status item has priority 100.5 and selectIndentation item has priority 100.4\n    statusBar: vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100.45)\n}\nloadConfigs()\n\nlw.onConfigChange(['texcount', 'docker.enabled'], loadConfigs)\nlw.onDispose(vscode.window.onDidChangeActiveTextEditor((e: vscode.TextEditor | undefined) => {\n    if (e && lw.file.hasLaTeXLangId(e.document.languageId)) {\n        loadConfigs(e.document.uri)\n    } else {\n        state.statusBar.hide()\n    }\n}))\n\nfunction loadConfigs(scope?: vscode.ConfigurationScope | undefined) {\n    scope = scope ?? vscode.window.activeTextEditor?.document.uri ?? lw.root.getWorkspace()\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', scope)\n    state.autoRunEnabled = (configuration.get('texcount.autorun') as string === 'onSave')\n    state.autoRunInterval = configuration.get('texcount.interval') as number\n    state.commandArgs = configuration.get('texcount.args') as string[]\n    state.commandPath = configuration.get('texcount.path') as string\n    state.useDocker = configuration.get('docker.enabled') as boolean\n    if (state.autoRunEnabled) {\n        updateWordCount()\n        state.statusBar.show()\n    } else {\n        state.statusBar.hide()\n    }\n}\n\nfunction updateWordCount() {\n    if (state.wordCount === '') {\n        state.statusBar.text = ''\n        state.statusBar.tooltip = ''\n    } else {\n        state.statusBar.text = state.wordCount + ' words'\n        state.statusBar.tooltip = state.texCountMessage\n    }\n}\n\nfunction count(file: string, merge: boolean = true, manual: boolean = false) {\n    if (!manual) {\n        if (!state.autoRunEnabled) {\n            return\n        }\n        if (state.disableCountAfterSave) {\n            logger.log('Auto texcount is temporarily disabled in favor of `texcount.interval`.')\n            return\n        }\n        logger.log(`Auto texcount started on saving file ${file} .`)\n        state.disableCountAfterSave = true\n        setTimeout(() => state.disableCountAfterSave = false, state.autoRunInterval)\n        void runTeXCount(file).then(() => {\n            updateWordCount()\n        })\n    } else {\n        void runTeXCount(file, merge).then( () => {\n            void vscode.window.showInformationMessage(state.texCountMessage)\n        })\n    }\n}\n\nfunction runTeXCount(file: string, merge: boolean = true): Promise<boolean> {\n    let command = state.commandPath\n    if (state.useDocker) {\n        logger.log('Use Docker to invoke the command.')\n        if (process.platform === 'win32') {\n            command = path.resolve(lw.extensionRoot, './scripts/texcount.bat')\n        } else {\n            command = path.resolve(lw.extensionRoot, './scripts/texcount')\n            fs.chmodSync(command, 0o755)\n        }\n    }\n    const args = Array.from(state.commandArgs)\n    if (merge && !args.includes('-merge')) {\n        args.push('-merge')\n    }\n    args.push(path.basename(file))\n    logger.logCommand('Count words using command.', command, args)\n    const proc = cs.spawn(command, args, {cwd: path.dirname(file)})\n    proc.stdout.setEncoding('utf8')\n    proc.stderr.setEncoding('utf8')\n\n    let stdout = ''\n    proc.stdout.on('data', newStdout => {\n        stdout += newStdout\n    })\n\n    let stderr = ''\n    proc.stderr.on('data', newStderr => {\n        stderr += newStderr\n    })\n\n    proc.on('error', err => {\n        logger.logError('Cannot count words.', err, stderr)\n        void logger.showErrorMessage('TeXCount failed. Please refer to LaTeX Workshop Output for details.')\n    })\n\n    return new Promise( resolve => {\n        proc.on('exit', exitCode => {\n            if (exitCode !== 0) {\n                logger.logError('Cannot count words', exitCode, stderr)\n                void logger.showErrorMessage('TeXCount failed. Please refer to LaTeX Workshop Output for details.')\n            } else {\n                const words = /Words in text: ([0-9]*)/g.exec(stdout)\n                const floats = /Number of floats\\/tables\\/figures: ([0-9]*)/g.exec(stdout)\n                if (words) {\n                    let floatMsg = ''\n                    if (floats && parseInt(floats[1]) > 0) {\n                        floatMsg = `and ${floats[1]} float${parseInt(floats[1]) > 1 ? 's' : ''} (tables, figures, etc.) `\n                    }\n                    state.wordCount = words[1]\n                    state.texCountMessage = `There are ${words[1]} words ${floatMsg}in the ${merge ? 'LaTeX project' : 'opened LaTeX file'}.`\n                    resolve(true)\n                }\n            }\n        })\n    })\n}\n"
  },
  {
    "path": "src/extras/index.ts",
    "content": "import * as commands from './activity-bar'\nimport { checkCitations } from './checkcites'\nimport { clean } from './cleaner'\nimport { count } from './counter'\nimport { section } from './section'\nimport * as snippet from './snippet-view'\nimport { texdoc } from './texdoc'\nimport { texroot } from './texroot'\nimport * as liveshare from './liveshare'\n\nexport const extra = {\n    checkCitations,\n    clean,\n    count,\n    texdoc,\n    texroot,\n    section,\n    commands,\n    snippet,\n    liveshare\n}\n"
  },
  {
    "path": "src/extras/liveshare.ts",
    "content": "import * as vsls from 'vsls/vscode'\nimport * as vscode from 'vscode'\nimport * as url from 'url'\nimport http from 'http'\nimport ws from 'ws'\nimport { lw } from '../lw'\nimport type { ClientRequest, ServerResponse } from '../../types/latex-workshop-protocol-types'\nimport type { Client } from '../preview/viewer/client'\nimport { getClients } from '../preview/viewer/pdfviewermanager'\n\nconst logger = lw.log('LiveShare')\n\nexport {\n    getApi,\n    getHostServerPort,\n    isGuest,\n    isHost,\n    handle,\n    register,\n    shareServer\n}\n\n/**\n * This module exports the Live Share API and handles the connection to the host server.\n * Since LiveShare allows sharing the server, in order to support features like PDF sync,\n * Synctex, and reverse Synctex, we provide LiveShare guests with the ability to connect\n * to the host Workshop server.\n * Unfortunately, the LiveShare extensions seems to be abandoned by Microsoft, with\n * long standing issues like the lack of binary file support:\n * https://github.com/microsoft/live-share/issues/1895\n *\n * The URIs must then be carefully handled to follow the `vsls` scheme, not `file` on guests.\n * Fot the server to be shared, the host must Allow for port sharing when prompted or execute\n * the HOSTPORT command. Already connected guests need to execute that command as well\n * to update the port.\n * Another limitation is that the host must already have the viewer and compiler running.\n */\n\nconst handle = {\n    command: {\n        syncTeX: handleCommandSyncTeX\n    },\n    viewer: {\n        refresh: handleViewerRefresh,\n        reverseSyncTeX: handleViewerReverseSyncTeX,\n        syncTeX: handleViewerSyncTeX\n    },\n    server: {\n        request: handleServerRequest\n    }\n}\n\nconst state: {\n    initialized: Promise<void>,\n    liveshare: vsls.LiveShare | undefined,\n    role: vsls.Role,\n    hostServerPort: number | undefined,\n    shareServerDisposable: vscode.Disposable | undefined,\n    connected: boolean,\n    ws: ws.WebSocket | undefined\n} = {\n    initialized: new Promise<void>(resolve =>\n        vsls.getApi().then(api => {\n            if (api === null) {\n                resolve()\n                return\n            }\n            setRole(api.session.role)\n            state.liveshare = api\n            state.liveshare.onDidChangeSession(e => setRole(e.session.role))\n            resolve()\n        })\n    ),\n    liveshare: undefined,\n    role: vsls.Role.None,\n    hostServerPort: undefined,\n    shareServerDisposable: undefined,\n    connected: false,\n    ws: undefined\n}\n\nfunction isGuest() {\n    return state.role === vsls.Role.Guest\n}\n\nfunction isHost() {\n    return state.role === vsls.Role.Host\n}\n\nfunction getApi() {\n    return state.liveshare\n}\n\n/**\n * Runs init logic for the host or guest, depending on the assigned role.\n * @param role The role of the user in the Live Share session.\n */\nfunction setRole(role: vsls.Role) {\n    state.role = role\n    state.hostServerPort = undefined\n    state.shareServerDisposable?.dispose()\n    resetConnection()\n    if (role === vsls.Role.Guest) {\n        void initGuest()\n    } else if (role === vsls.Role.Host) {\n        void initHost()\n    }\n}\n\nasync function initGuest() {\n    await getHostServerPort()\n    await connectHost()\n}\n\nasync function initHost() {\n    await shareServer()\n}\n\n/**\n * Returns the saved host server port or checks the shared servers for a new port.\n * @param reset If true, the host server port is reset and a new one is acquired.\n * @returns Promise that resolves to the host server port.\n */\nasync function getHostServerPort(reset: boolean = false): Promise<number> {\n    if (!reset && state.hostServerPort !== undefined) {\n        return state.hostServerPort\n    }\n    const savedClipboard = await vscode.env.clipboard.readText()\n    void vscode.commands.executeCommand('liveshare.listServers')\n    // delay here instead of doing await vscode.commands.executeCommand acquires the port more reliably because await vscode.commands.executeCommand does not return until the user closes the info box of the command or clicks copy again.\n    await sleep(500)\n    const hostUrl = await vscode.env.clipboard.readText()\n    const hostServerPort = Number(url.parse(hostUrl).port)\n    state.hostServerPort = hostServerPort\n    await vscode.env.clipboard.writeText(savedClipboard)\n    return hostServerPort\n}\n\n/**\n * Shares the server using the Live Share API.\n * @returns Promise that resolves when the server is shared.\n */\nasync function shareServer() {\n    if (state.role !== vsls.Role.Host) {\n        return\n    }\n    state.shareServerDisposable?.dispose()\n    await state.initialized\n    state.shareServerDisposable = await state.liveshare?.shareServer({ port: lw.server.getPort(), displayName: 'latex-workshop-server' })\n}\n\n/**\n * Connects to the WebSocket server of the host.\n */\nasync function connectHost() {\n    logger.log('Connecting to host')\n    if (state.role !== vsls.Role.Guest) {\n        resetConnection()\n        return\n    }\n\n    if (state.connected) {\n        logger.log('Already connected to host.')\n        return\n    }\n\n    const server = await vscode.env.asExternalUri(vscode.Uri.parse(`http://127.0.0.1:${await getHostServerPort()}`, true))\n\n    await new Promise<void>(resolve => {\n        const websocket = new ws.WebSocket(server.toString(true))\n        websocket.addEventListener('open', () => {\n            logger.log('Connected to host')\n            state.ws = websocket\n            state.connected = true\n            resolve()\n        })\n    })\n    state.ws?.addEventListener('message', event => {\n        if (event.type === 'message') {\n            connectionHandler(event.data as string)\n        }\n    })\n    state.ws?.addEventListener('close', async () => {\n        logger.log('Connection to host disconnected')\n        state.connected = false\n        await reconnect()\n    })\n    state.ws?.addEventListener('error', err => logger.logError(`Failed to connect to ${server}`, err))\n\n    const id = setInterval(() => {\n        try {\n            sendToHost({ type: 'ping' })\n        }\n        catch {\n            clearInterval(id)\n        }\n    }, 30000)\n}\n\nfunction resetConnection() {\n    logger.log('Reset connection to host')\n    state.connected = false\n    state.ws = undefined\n}\n\nfunction connectionHandler(msg: string): void {\n    const data = JSON.parse(msg) as ServerResponse\n    logger.log(`Handle data type: ${data.type}`)\n\n    switch (data.type) {\n        case 'refresh': {\n            lw.viewer.refresh(vscode.Uri.parse(data.pdfFileUri))\n            break\n        }\n        case 'reverse_synctex_result': {\n            void lw.locate.synctex.components.openTeX(vscode.Uri.parse(data.input).fsPath, data.line, data.column, data.textBeforeSelection, data.textAfterSelection)\n            break\n        }\n        case 'synctex_result': {\n            void lw.viewer.locate(vscode.Uri.parse(data.pdfFile, true), data.synctexData)\n            break\n        }\n        default: {\n            break\n        }\n    }\n}\n\nasync function reconnect() {\n    // Since WebSockets are disconnected when PC resumes from sleep,\n    // we have to reconnect. https://github.com/James-Yu/LaTeX-Workshop/pull/1812\n    await sleep(3000)\n\n    let tries = 1\n    while (tries <= 10) {\n        try {\n            await connectHost()\n            register()\n            if (state.ws?.readyState !== 1) {\n                throw new Error('Connection to host is not open.')\n            }\n            return\n        } catch (_e) {\n        }\n\n        await sleep(1000 * (tries + 2))\n        tries++\n    }\n}\n\nfunction register(client?: Client) {\n    if (client) {\n        sendToHost({ type: 'open', pdfFileUri: client.pdfFileUri })\n    }\n\n    getClients()?.forEach(guestClient => {\n        sendToHost({ type: 'open', pdfFileUri: guestClient.pdfFileUri })\n    })\n}\n\nfunction sendToHost(message: ClientRequest) {\n    logger.log(`Sends message ${JSON.stringify(message)} to host`)\n    if (state.role !== vsls.Role.Guest) {\n        return\n    }\n\n    if (state.ws?.readyState === 1) {\n        state.ws.send(JSON.stringify(message))\n    }\n}\n\nfunction handleCommandSyncTeX(): boolean {\n    if (!isGuest()) {\n        return false\n    }\n    const coords = lw.locate.synctex.components.getCurrentEditorCoordinates()\n\n    if (lw.root.file.path === undefined || coords === undefined) {\n        logger.log('Cannot find LaTeX root PDF to perform synctex.')\n        return true\n    }\n\n    const pdfFileUri = lw.file.toUri(lw.file.getPdfPath(lw.root.file.path))\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.getWorkspace())\n    const indicator = configuration.get('synctex.indicator') as 'none' | 'circle' | 'rectangle'\n    sendToHost({ type: 'synctex', line: coords.line, column: coords.column, filePath: coords.inputFileUri.toString(true), targetPdfFile: pdfFileUri.toString(true), indicator })\n    return true\n}\n\nfunction handleViewerRefresh(pdfFile?: string, clientSet?: Set<Client>) {\n    if (isHost() && state.liveshare && pdfFile !== undefined) {\n        const sharedUri = state.liveshare.convertLocalUriToShared(lw.file.toUri(pdfFile))\n        const guestClients = getClients(sharedUri)\n        if (guestClients) {\n            clientSet?.forEach(client => guestClients.add(client))\n            return guestClients\n        }\n    }\n    return clientSet\n}\n\nfunction handleViewerReverseSyncTeX(websocket: ws, uri: vscode.Uri, data: Extract<ClientRequest, { type: 'reverse_synctex' }>): boolean {\n    if (isGuest()) {\n        state.ws?.send(JSON.stringify(data)) // forward the request to host\n        return true\n    } else if (isHost() && uri.scheme === 'vsls' && state.liveshare) { // reply to guest if request comes from guest\n        const localUri = state.liveshare.convertSharedUriToLocal(uri) ?? uri\n        void lw.locate.synctex.components.computeToTeX(data, localUri).then(record => {\n            if (record && state.liveshare) {\n                const response: ServerResponse = {\n                    type: 'reverse_synctex_result',\n                    input: state.liveshare.convertLocalUriToShared(vscode.Uri.file(record.input)).toString(true),\n                    line: record.line,\n                    column: record.column,\n                    textBeforeSelection: data.textAfterSelection,\n                    textAfterSelection: data.textAfterSelection\n                }\n                websocket.send(JSON.stringify(response))\n            }\n        })\n        return true\n    }\n    return false\n}\n\nfunction handleViewerSyncTeX(websocket: ws, data: ClientRequest): boolean {\n    if (data.type !== 'synctex') {\n        return false\n    }\n    if (!isHost() || !state.liveshare) {\n        return true\n    }\n\n    const filePath = state.liveshare.convertSharedUriToLocal(vscode.Uri.parse(data.filePath, true)).fsPath\n    const targetPdfFile = state.liveshare.convertSharedUriToLocal(vscode.Uri.parse(data.targetPdfFile, true))\n    void lw.locate.synctex.components.synctexToPDFCombined(data.line, data.column, filePath, targetPdfFile, data.indicator).then(record => {\n        if (!record) {\n            logger.log(`Failed to locate synctex for ${filePath}. This was requested from a guest.`)\n            return\n        }\n\n        const response: ServerResponse = {\n            type: 'synctex_result',\n            pdfFile: data.targetPdfFile,\n            synctexData: record\n        }\n\n        websocket.send(JSON.stringify(response))\n    })\n    return true\n}\n\nasync function handleServerRequest(request: http.IncomingMessage, response: http.ServerResponse): Promise<boolean> {\n    if (!isGuest()) {\n        return false\n    }\n\n    if (!request.url) {\n        return true\n    }\n\n    const requestUrl = url.parse(request.url)\n\n    const options = {\n        host: requestUrl.hostname,\n        port: await getHostServerPort(),\n        path: requestUrl.path,\n        method: request.method,\n        headers: request.headers,\n    }\n\n    const backendReq = http.request(options, (backendRes) => {\n        if (!backendRes.statusCode) {\n            response.end()\n            return\n        }\n        response.writeHead(backendRes.statusCode, backendRes.headers)\n\n        backendRes.on('data', (chunk) => {\n            response.write(chunk)\n        })\n\n        backendRes.on('end', () => {\n            response.end()\n        })\n    })\n\n    request.on('data', (chunk) => {\n        backendReq.write(chunk)\n    })\n\n    request.on('end', () => {\n        backendReq.end()\n    })\n\n    return true\n}\n\nasync function sleep(timeout: number) {\n    await new Promise((resolve) => setTimeout(resolve, timeout))\n}\n"
  },
  {
    "path": "src/extras/math-fixer.ts",
    "content": "import * as vscode from 'vscode'\nimport { stripCommentsAndVerbatim } from '../utils/utils'\n\n/**\n * Represent the type of math environment we are currently in.\n */\nenum MathMode {\n    Inline, // $ ... $\n    Display, // $$ ... $$\n}\n\n/**\n * Transform inline math delimiters $ ... $ into \\( ... \\) and\n * display math delimiters $$ ... $$ into \\[ ... \\].\n */\nexport class MathFixer {\n    // Regex to find tokens: escaped char, display math, or inline math.\n    // Group 1: Escaped char (e.g. \\$)\n    // Group 2: Display math ($$)\n    // Group 3: Inline math ($)\n    private readonly tokenPattern = /(\\\\.)|(\\$\\$)|(\\$)/g\n\n    /**\n     * Generate a list of TextEdits to transform math delimiters.\n     *\n     * @param text - The content to process.\n     * @returns An array of TextEdits.\n     */\n    public getEdits(text: string): vscode.TextEdit[] {\n        const stripped = stripCommentsAndVerbatim(text)\n        const strippedLines = stripped.split('\\n')\n\n        const mathStack: MathMode[] = []\n        const edits: vscode.TextEdit[] = []\n\n        for (let i = 0; i < strippedLines.length; i++) {\n            const sLine = strippedLines[i]\n\n            if (!sLine || sLine.trim() === '') {\n                continue\n            }\n\n            let match: RegExpExecArray | null\n            this.tokenPattern.lastIndex = 0\n            while ((match = this.tokenPattern.exec(sLine)) !== null) {\n                const index = match.index\n                const fullMatch = match[0]\n                const escaped = match[1]\n                const displayMath = match[2]\n                const inlineMath = match[3]\n\n                if (escaped) {\n                    // Ignore escaped character\n                    continue\n                } else if (displayMath) {\n                    // Special case: consecutive $$ with no content between should be treated as\n                    // two inline math delimiters (empty inline math expression)\n                    // Check if this is opening display math and there's no closing $$ on this line\n                    const isOpening = mathStack.length === 0 || mathStack[mathStack.length - 1] !== MathMode.Display\n\n                    if (isOpening) {\n                        // Look for closing $$ on the same line\n                        const restOfLine = sLine.substring(index + 2)\n                        const closingIndex = restOfLine.indexOf('$$')\n\n                        // If no closing $$ or closing is immediate (empty content), treat as two inline $\n                        if (closingIndex === -1 || closingIndex === 0) {\n                            // Treat as two separate inline math delimiters\n                            // First $: opening\n                            const range1 = new vscode.Range(i, index, i, index + 1)\n                            mathStack.push(MathMode.Inline)\n                            edits.push(vscode.TextEdit.replace(range1, '\\\\('))\n\n                            // Second $: closing\n                            const range2 = new vscode.Range(i, index + 1, i, index + 2)\n                            mathStack.pop()\n                            edits.push(vscode.TextEdit.replace(range2, '\\\\)'))\n                            continue\n                        }\n                    }\n\n                    // Normal display math handling\n                    const range = new vscode.Range(i, index, i, index + fullMatch.length)\n                    if (mathStack.length > 0 && mathStack[mathStack.length - 1] === MathMode.Display) {\n                        mathStack.pop()\n                        edits.push(vscode.TextEdit.replace(range, '\\\\]'))\n                    } else {\n                        mathStack.push(MathMode.Display)\n                        edits.push(vscode.TextEdit.replace(range, '\\\\['))\n                    }\n                } else if (inlineMath) {\n                    const range = new vscode.Range(i, index, i, index + fullMatch.length)\n                    if (mathStack.length > 0 && mathStack[mathStack.length - 1] === MathMode.Inline) {\n                        mathStack.pop()\n                        edits.push(vscode.TextEdit.replace(range, '\\\\)'))\n                    } else {\n                        mathStack.push(MathMode.Inline)\n                        edits.push(vscode.TextEdit.replace(range, '\\\\('))\n                    }\n                }\n            }\n        }\n\n        return edits\n    }\n}\n\n/**\n * Apply maths normalization based on the user configuration.\n *\n * @param document The document being edited.\n * @param range The range covered by the edit, or `undefined` to process the entire document.\n * @returns A list of TextEdit.\n */\nexport function fixMath(document: vscode.TextDocument, range: vscode.Range | undefined): vscode.TextEdit[] {\n    const config = vscode.workspace.getConfiguration('latex-workshop', document.uri)\n    const enabled = config.get('format.fixMath.enabled', false)\n    if (!enabled) {\n        return []\n    }\n\n    const mathFixer = new MathFixer()\n    const targetRange = range ?? new vscode.Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE)\n    const text = document.getText() // Get full text to ensure correct line numbers\n    return mathFixer.getEdits(text).filter(e => targetRange.contains(e.range))\n}\n"
  },
  {
    "path": "src/extras/quote-fixer.ts",
    "content": "import * as vscode from 'vscode'\nimport { stripCommentsAndVerbatim } from '../utils/utils'\n\n/**\n * Regular expression that captures straight double-quoted substrings for replacement.\n */\nconst QUOTE_PATTERN = /\"([^\"]*)\"/g\n\n/**\n * Transform straight double quotes into LaTeX-style quotes\n */\nexport class QuoteFixer {\n    /**\n     * Generate a list of TextEdits to replace straight quotes with LaTeX-style quotes,\n     * supporting both standard (\"...\") and German („...“) quotes.\n     *\n     * @param text The content to process.\n     * @returns An array of TextEdits.\n     */\n    public getEdits(text: string): vscode.TextEdit[] {\n        // 1. Strip comments and verbatim content\n        const stripped = stripCommentsAndVerbatim(text)\n        const strippedLines = stripped.split('\\n')\n\n        const edits: vscode.TextEdit[] = []\n\n        for (let i = 0; i < strippedLines.length; i++) {\n            const sLine = strippedLines[i]\n\n            if (!sLine || sLine.trim() === '') {\n                continue\n            }\n\n            let match: RegExpExecArray | null\n\n            // Handle German quotes „...“\n            // Regex for German quotes: „ followed by anything until “\n            const germanQuotePattern = /„([^“]*)“/g\n            while ((match = germanQuotePattern.exec(sLine)) !== null) {\n                const index = match.index\n                const fullMatch = match[0]\n                const content = match[1]\n\n                // Replace opening quote „\n                const startRange = new vscode.Range(i, index, i, index + 1)\n                edits.push(vscode.TextEdit.replace(startRange, '``'))\n\n                // Replace closing quote “\n                const endRange = new vscode.Range(i, index + 1 + content.length, i, index + fullMatch.length)\n                edits.push(vscode.TextEdit.replace(endRange, \"''\"))\n            }\n\n            // Handle standard quotes \"...\"\n            QUOTE_PATTERN.lastIndex = 0\n            while ((match = QUOTE_PATTERN.exec(sLine)) !== null) {\n                const index = match.index\n                const fullMatch = match[0]\n                const content = match[1]\n\n                // Replace opening quote \"\n                const startRange = new vscode.Range(i, index, i, index + 1)\n                edits.push(vscode.TextEdit.replace(startRange, '``'))\n\n                // Replace closing quote \"\n                const endRange = new vscode.Range(i, index + 1 + content.length, i, index + fullMatch.length)\n                edits.push(vscode.TextEdit.replace(endRange, \"''\"))\n            }\n        }\n\n        return edits\n    }\n}\n\n/**\n * Apply LaTeX quote normalization based on the user configuration.\n *\n * @param document The document being edited.\n * @param range The range covered by the edit, or `undefined` to process the entire document.\n * @returns A list of TextEdits.\n */\nexport function fixQuotes(document: vscode.TextDocument, range: vscode.Range | undefined): vscode.TextEdit[] {\n    const config = vscode.workspace.getConfiguration('latex-workshop', document.uri)\n    const enabled = config.get('format.fixQuotes.enabled', false)\n    if (!enabled) {\n        return []\n    }\n\n    const quoteFixer = new QuoteFixer()\n    const targetRange = range ?? new vscode.Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE)\n    const text = document.getText() // Get full text to ensure correct line numbers\n    return quoteFixer.getEdits(text).filter(e => targetRange.contains(e.range))\n}\n"
  },
  {
    "path": "src/extras/section.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport { stripCommentsAndVerbatim } from '../utils/utils'\n\nconst logger = lw.log('Section')\n\nexport {\n    section\n}\n\ninterface MatchSection {\n    level: string,\n    pos: vscode.Position\n}\n\nconst levels: string[] = ['part', 'chapter', 'section', 'subsection', 'subsubsection', 'paragraph', 'subparagraph']\nconst upperLevels = Object.create(null) as {[key: string]: string}\nconst lowerLevels = Object.create(null) as {[key: string]: string}\n\nfor (let i = 0; i < levels.length; i++) {\n    const current = levels[i]\n    const upper = levels[Math.max(i - 1, 0)]\n    const lower = levels[Math.min(i + 1, levels.length - 1)]\n    upperLevels[current] = upper\n    lowerLevels[current] = lower\n}\n\nfunction section(action: 'promote' | 'demote' | 'select') {\n    if (action === 'select') {\n        selectSection()\n    } else {\n        shiftSection(action)\n    }\n}\n\n/**\n * Shift the level sectioning in the selection by one (up or down)\n * @param change 'promote' or 'demote'\n */\nfunction shiftSection(change: 'promote' | 'demote') {\n    logger.log(`Calling shiftSectioningLevel with parameter: ${change}`)\n    if (change !== 'promote' && change !== 'demote') {\n        throw TypeError(\n        `Invalid value of function parameter 'change' (=${change})`\n        )\n    }\n\n    const editor = vscode.window.activeTextEditor\n    if (editor === undefined) {\n        return\n    }\n\n    const replacer = (\n        _match: string,\n        sectionName: string,\n        asterisk: string | undefined,\n        options: string | undefined,\n        contents: string\n    ) => {\n        if (change === 'promote') {\n            return '\\\\' + upperLevels[sectionName] + (asterisk ?? '') + (options ?? '') + contents\n        } else {\n            // if (change === 'demote')\n            return '\\\\' + lowerLevels[sectionName] + (asterisk ?? '') + (options ?? '') + contents\n        }\n    }\n\n    // when supported, negative lookbehind at start would be nice --- (?<!\\\\)\n    const pattern = '\\\\\\\\(' + levels.join('|') + ')(\\\\*)?(\\\\[.+?\\\\])?(\\\\{.*?\\\\})'\n    const regex = new RegExp(pattern, 'g')\n\n    function getLastLineLength(someText: string) {\n        const lines = someText.split(/\\n/)\n        return lines.slice(lines.length - 1, lines.length)[0].length\n    }\n\n    const document = editor.document\n    const selections = editor.selections\n    const newSelections: vscode.Selection[] = []\n\n    const edit = new vscode.WorkspaceEdit()\n\n    for (let selection of selections) {\n        let mode: 'selection' | 'cursor' = 'selection'\n        let oldSelection: vscode.Selection | null = null\n        if (selection.isEmpty) {\n            mode = 'cursor'\n            oldSelection = selection\n            const line = document.lineAt(selection.anchor)\n            selection = new vscode.Selection(line.range.start, line.range.end)\n        }\n\n        const selectionText = document.getText(selection)\n        const newText = selectionText.replace(regex, replacer)\n        edit.replace(document.uri, selection, newText)\n\n        const changeInEndCharacterPosition = getLastLineLength(newText) - getLastLineLength(selectionText)\n        if (mode === 'selection') {\n            newSelections.push(\n                new vscode.Selection(selection.start,\n                    new vscode.Position(selection.end.line,\n                        selection.end.character + changeInEndCharacterPosition\n                    )\n                )\n            )\n        } else if (oldSelection) { // mode === 'cursor'\n            const anchorPosition = oldSelection.anchor.character + changeInEndCharacterPosition\n            const activePosition = oldSelection.active.character + changeInEndCharacterPosition\n            newSelections.push(\n                new vscode.Selection(\n                    new vscode.Position(oldSelection.anchor.line, anchorPosition < 0 ? 0 : anchorPosition),\n                    new vscode.Position(oldSelection.active.line, activePosition < 0 ? 0 : activePosition)\n                )\n            )\n        }\n    }\n\n    void vscode.workspace.applyEdit(edit).then(success => {\n        if (success) {\n            editor.selections = newSelections\n        }\n    })\n}\n\n/**\n * Find the first sectioning macro above the current position\n *\n * @param pos the current position in the document\n * @param doc the text document\n */\nfunction searchLevelUp(pos: vscode.Position, doc: vscode.TextDocument): MatchSection | undefined {\n    const range = new vscode.Range(new vscode.Position(0, 0), pos.with(undefined, doc.lineAt(pos.line).range.end.character))\n    const content = stripCommentsAndVerbatim(doc.getText(range)).split('\\n')\n    const pattern = '\\\\\\\\(' + levels.join('|') + ')\\\\*?(?:\\\\[.+?\\\\])?\\\\{.*?\\\\}'\n    const regex = new RegExp(pattern)\n    for (let i = pos.line; i >= 0; i -= 1) {\n        const res = content[i].match(regex)\n        if (res) {\n            return {level: res[1], pos: new vscode.Position(i, 0)}\n        }\n    }\n    return\n}\n\n\n/**\n * Find the first sectioning macro below the current position.\n * Stop at \\appendix or \\end{document}\n *\n * @param levels the list of sectioning macros\n * @param pos the current position in the document\n * @param doc the text document\n */\nfunction searchLevelDown(remainlevels: string[], pos: vscode.Position, doc: vscode.TextDocument): vscode.Position {\n    const range = new vscode.Range(pos, new vscode.Position(doc.lineCount, 0))\n    const content = stripCommentsAndVerbatim(doc.getText(range)).split('\\n')\n    const pattern = '\\\\\\\\(?:(' + remainlevels.join('|') + ')\\\\*?(?:\\\\[.+?\\\\])?\\\\{.*?\\\\})|appendix|\\\\\\\\end{document}'\n    const regex = new RegExp(pattern)\n    for (let i = 0; i < content.length; i += 1) {\n        const res = content[i].match(regex)\n        if (res) {\n            return new vscode.Position(i + pos.line - 1, Math.max(content[i-1].length - 1, 0))\n        }\n    }\n    // Return the end of file position\n    return new vscode.Position(doc.lineCount - 1, doc.lineAt(doc.lineCount - 1).text.length - 1)\n}\n\nfunction selectSection() {\n    logger.log('Calling selectSection.')\n\n    const editor = vscode.window.activeTextEditor\n    if (editor === undefined) {\n        return\n    }\n    const beginLevel = searchLevelUp(editor.selection.anchor, editor.document)\n    if (!beginLevel) {\n        logger.log('Cannot find any section macro above current line.')\n        return\n    }\n    const levelIndex = levels.indexOf(beginLevel.level)\n    const endPosition = searchLevelDown(levels.slice(0, levelIndex + 1), editor.selection.end, editor.document)\n    editor.selection = new vscode.Selection(beginLevel.pos, endPosition)\n}\n"
  },
  {
    "path": "src/extras/snippet-view.ts",
    "content": "import * as vscode from 'vscode'\nimport { readFileSync } from 'fs'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nexport {\n    state,\n    render,\n    provider\n}\n\ntype SnippetViewResult = RenderResult | {\n    type: 'insertSnippet',\n    snippet: string\n}\n\ntype RenderResult = {\n    type: 'png',\n    uri: string,\n    data: string | undefined\n}\n\nasync function render(pdfFileUri: vscode.Uri, opts: { height: number, width: number, pageNumber: number }): Promise<string | undefined> {\n    if (!state.view?.webview) {\n        return\n    }\n    const uri = state.view.webview.asWebviewUri(pdfFileUri).toString()\n    const promise = new Promise<RenderResult | undefined>((resolve) => {\n        const rendered = (e: SnippetViewResult) => {\n            if (e.type !== 'png') {\n                return\n            }\n            if (e.uri === uri) {\n                resolve(e)\n            }\n        }\n        state.callbacks.add(rendered)\n        setTimeout(() => {\n            state.callbacks.delete(rendered)\n            resolve(undefined)\n        }, 3000)\n        void state.view?.webview.postMessage({\n            type: 'pdf',\n            uri,\n            opts\n        })\n    })\n    try {\n        const renderResult = await promise\n        return renderResult?.data\n    } catch (_) { }\n    return\n}\n\nfunction receive(message: SnippetViewResult) {\n    if (message.type === 'insertSnippet') {\n        vscode.window.activeTextEditor?.insertSnippet(\n            new vscode.SnippetString(message.snippet.replace(/\\\\\\n/g, '\\\\n')))\n                .then(() => {}, err => {\n                    void vscode.window.showWarningMessage(`Unable to insert symbol, ${err}`)\n                }\n        )\n    }\n}\n\nclass SnippetViewProvider implements vscode.WebviewViewProvider {\n    private serverHandlerInserted = false\n\n    public async resolveWebviewView(webviewView: vscode.WebviewView) {\n        if (this.serverHandlerInserted === false) {\n            lw.server.setHandler((url: string) => {\n                if (url.startsWith('/snippetview/')) {\n                    return path.resolve(lw.extensionRoot, 'resources')\n                }\n                return undefined\n            })\n            this.serverHandlerInserted = true\n        }\n\n        state.view = webviewView\n\n        webviewView.webview.options = {\n            enableScripts: true\n        }\n\n        webviewView.onDidDispose(() => {\n            state.view = undefined\n        })\n\n        const webviewSourcePath = path.join(lw.extensionRoot, 'resources', 'snippetview', 'snippetview.html')\n\n        const htmlContent = readFileSync(webviewSourcePath, { encoding: 'utf8' })\n            .replaceAll('%SRC%', (await lw.server.getUrl()).url)\n            .replaceAll('%CSP%', webviewView.webview.cspSource + ' http://127.0.0.1:*')\n        const replacements = await Promise.all(Array.from(htmlContent.matchAll(/\\{%(.*?)%\\}/g), match => lw.language.getLocaleString(match[1])))\n        let index = 0\n        webviewView.webview.html = htmlContent.replace(/\\{%(.*?)%\\}/g, () => replacements[index++])\n\n        webviewView.webview.onDidReceiveMessage((e: SnippetViewResult) => {\n            state.callbacks.forEach((cb) => void cb(e))\n            receive(e)\n        })\n    }\n}\n\nconst provider = new SnippetViewProvider()\nconst state = {\n    view: undefined as vscode.WebviewView | undefined,\n    callbacks: new Set<(e: SnippetViewResult) => void>()\n}\n"
  },
  {
    "path": "src/extras/texdoc.ts",
    "content": "import * as vscode from 'vscode'\nimport * as cs from 'cross-spawn'\nimport { lw } from '../lw'\n\nconst logger = lw.log('TeXDoc')\n\nexport {\n    texdoc\n}\n\nfunction runTexdoc(packageName: string) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const texdocPath = configuration.get('texdoc.path') as string\n    const texdocArgs = Array.from(configuration.get('texdoc.args') as string[])\n    texdocArgs.push(packageName)\n    logger.logCommand('Run texdoc command', texdocPath, texdocArgs)\n    const proc = cs.spawn(texdocPath, texdocArgs)\n\n    let stdout = ''\n    proc.stdout.on('data', newStdout => {\n        stdout += newStdout\n    })\n\n    let stderr = ''\n    proc.stderr.on('data', newStderr => {\n        stderr += newStderr\n    })\n\n    proc.on('error', err => {\n        logger.log(`Cannot run texdoc: ${err.message}, ${stderr}`)\n        void logger.showErrorMessage('Texdoc failed. Please refer to LaTeX Workshop Output for details.')\n    })\n\n    proc.on('exit', exitCode => {\n        if (exitCode !== 0) {\n            logger.logError(`Cannot find documentation for ${packageName}.`, exitCode)\n            void logger.showErrorMessage('Texdoc failed. Please refer to LaTeX Workshop Output for details.')\n        } else {\n            const regex = new RegExp(`(no documentation found)|(Documentation for ${packageName} could not be found)`)\n            if (stdout.match(regex) || stderr.match(regex)) {\n                logger.log(`Cannot find documentation for ${packageName}.`)\n                void logger.showErrorMessage(`Cannot find documentation for ${packageName}.`)\n            } else {\n                logger.log(`Opening documentation for ${packageName}.`)\n            }\n        }\n        logger.log(`texdoc stdout: ${stdout}`)\n        logger.log(`texdoc stderr: ${stderr}`)\n    })\n}\n\nfunction texdoc(packageName?: string, useonly = false) {\n    if (packageName) {\n        runTexdoc(packageName)\n        return\n    }\n    if (useonly) {\n        const names: Set<string> = new Set()\n        for (const tex of lw.cache.getIncludedTeX()) {\n            const content = lw.cache.get(tex)\n            const pkgs = content && content.elements.package\n            if (!pkgs) {\n                continue\n            }\n            Object.keys(pkgs).forEach(pkg => names.add(pkg))\n        }\n        const packageNames = Array.from(new Set(names))\n        const items: vscode.QuickPickItem[] = packageNames.map(pkg => ({ label: pkg }))\n        void vscode.window.showQuickPick(items).then(selectedPkg => {\n            if (!selectedPkg) {\n                return\n            }\n            runTexdoc(selectedPkg.label)\n        })\n    } else {\n        void vscode.window.showInputBox({value: '', prompt: 'Package name'}).then(selectedPkg => {\n            if (!selectedPkg) {\n                return\n            }\n            runTexdoc(selectedPkg)\n        })\n    }\n}\n"
  },
  {
    "path": "src/extras/texroot.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as path from 'path'\n\nexport {\n    texroot\n}\n\nfunction getFileName(file: string): string {\n    const segments = file.replace(/\\\\/g, '/').match(/([^/]+$)/)\n    if (segments) {\n        return segments[0]\n    }\n    return ''\n}\n\nfunction texroot() {\n    // taken from here: https://github.com/DonJayamanne/listFilesVSCode/blob/master/src/extension.ts (MIT licensed, should be fine)\n    void vscode.workspace.findFiles('**/*.{tex}').then(files => {\n        const displayFiles = files.map(file => {\n            return { description: file.fsPath, label: getFileName(file.fsPath), filePath: file.fsPath }\n        })\n        void vscode.window.showQuickPick(displayFiles).then(val => {\n            const editor = vscode.window.activeTextEditor\n            if (!(val && editor)) {\n                return\n            }\n            const relativePath = path.relative(path.dirname(editor.document.fileName), val.filePath)\n            const magicComment = `% !TeX root = ${relativePath}`\n            const line0 = editor.document.lineAt(0).text\n            const edits = [(line0.match(/^\\s*%\\s*!TeX root/gmi)) ?\n                vscode.TextEdit.replace(new vscode.Range(0, 0, 0, line0.length), magicComment)\n            :\n                vscode.TextEdit.insert(new vscode.Position(0, 0), magicComment + os.EOL)\n            ]\n            // Insert the text\n            const uri = editor.document.uri\n            const edit = new vscode.WorkspaceEdit()\n            edit.set(uri, edits)\n            void vscode.workspace.applyEdit(edit)\n        })\n    })\n}\n"
  },
  {
    "path": "src/language/definition.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport { lw } from '../lw'\nimport { tokenizer } from '../utils/tokenizer'\nimport * as utils from '../utils/utils'\nimport { sanitizeInputFilePath } from '../utils/inputfilepath'\n\nexport class DefinitionProvider implements vscode.DefinitionProvider {\n    private async onAFilename(document: vscode.TextDocument, position: vscode.Position, token: string): Promise<string | undefined> {\n        const line = document.lineAt(position.line).text\n        const escapedToken = utils.escapeRegExp(token)\n        const regexInput = new RegExp(`\\\\\\\\(?:include|input|subfile|subfileinclude)\\\\{${escapedToken}\\\\}`)\n        const regexImport = new RegExp(`\\\\\\\\(?:sub)?(?:import|includefrom|inputfrom)\\\\*?\\\\{([^\\\\}]*)\\\\}\\\\{${escapedToken}\\\\}`)\n        const regexDocumentclass = new RegExp(`\\\\\\\\(?:documentclass)(?:\\\\[[^[]]*\\\\])?\\\\{${escapedToken}\\\\}`)\n\n        if (! vscode.window.activeTextEditor) {\n            return\n        }\n\n        if (line.match(regexDocumentclass)) {\n            return utils.resolveFile([path.dirname(vscode.window.activeTextEditor.document.fileName)], sanitizeInputFilePath(token), '.cls')\n        }\n\n        let dirs: string[] = []\n        if (line.match(regexInput)) {\n            dirs = [path.dirname(vscode.window.activeTextEditor.document.fileName)]\n            if (lw.root.dir.path !== undefined) {\n                dirs.push(lw.root.dir.path)\n            }\n        }\n\n        const result = line.match(regexImport)\n        if (result) {\n            dirs = [path.resolve(path.dirname(vscode.window.activeTextEditor.document.fileName), sanitizeInputFilePath(result[1]))]\n        }\n\n        if (dirs.length > 0) {\n            return utils.resolveFile(dirs, sanitizeInputFilePath(token), '.tex')\n        }\n        return\n    }\n\n    /**\n     * VSCode hook to provide definitions of the symbol at `position`.\n     * In LW these can be custom commands, labels, citations, glossary entries, and file names.\n     *\n     * Also provides the exact range of the found symbol (`originSelectionRange`),\n     * as different symbol types support different characters in LaTeX (esp. regarding `[:-]`)\n     *\n     * @param document The document to be scanned.\n     * @param position The position to be scanned at.\n     *\n     * @returns {DefinitionLink[]} linking `originSelectionRange` to `targetUri`/`targetRange`\n     */\n    async provideDefinition(document: vscode.TextDocument, position: vscode.Position): Promise<vscode.DefinitionLink[]> {\n        if (!lw.constant.FILE_URI_SCHEMES.includes(document.uri.scheme)) {\n            return []\n        }\n        const tokenRange = tokenizer(document, position)\n        if (tokenRange === undefined) {\n            return []\n        }\n        const token = document.getText(tokenRange)\n\n        if (token.startsWith('\\\\')) {\n            const macro = lw.completion.macro.getData().definedCmds.get(token.slice(1))\n            if (macro) {\n                return [{\n                    targetUri: macro.location.uri,\n                    targetRange: macro.location.range,\n                    originSelectionRange: tokenRange\n                }]\n            }\n            return []\n        }\n        const ref = lw.completion.reference.getItem(token)\n        if (ref) {\n            return [{\n                targetUri: lw.file.toUri(ref.file),\n                targetRange: new vscode.Range(ref.position, ref.position),\n                originSelectionRange: tokenRange\n            }]\n        }\n        const cite = lw.completion.citation.getItem(token)\n        if (cite) {\n            return [{\n                targetUri: lw.file.toUri(cite.file),\n                targetRange: new vscode.Range(cite.position, cite.position),\n                originSelectionRange: tokenRange\n            }]\n        }\n        const glossary = lw.completion.glossary.getItem(token)\n        if (glossary) {\n            return [{\n                targetUri: lw.file.toUri(glossary.filePath),\n                targetRange: new vscode.Range(glossary.position, glossary.position),\n                originSelectionRange: tokenRange\n            }]\n        }\n        if (vscode.window.activeTextEditor && token.includes('.')) {\n            // We skip graphics files\n            const graphicsExtensions = ['.pdf', '.eps', '.jpg', '.jpeg', '.JPG', '.JPEG', '.gif', '.png']\n            const ext = path.extname(token)\n            if (graphicsExtensions.includes(ext)) {\n                return []\n            }\n            const absolutePath = path.resolve(path.dirname(vscode.window.activeTextEditor.document.fileName), token)\n            if (fs.existsSync(absolutePath)) {\n                return [{\n                    targetUri: lw.file.toUri(absolutePath),\n                    targetRange: new vscode.Range(0, 0, 0, 0),\n                    originSelectionRange: tokenRange\n                }]\n            }\n        }\n\n        const filename = await this.onAFilename(document, position, token)\n        if (filename) {\n            return [{\n                targetUri: lw.file.toUri(filename),\n                targetRange: new vscode.Range(0, 0, 0, 0),\n                originSelectionRange: tokenRange\n            }]\n        }\n        return []\n    }\n\n}\n"
  },
  {
    "path": "src/language/folding.ts",
    "content": "import * as vscode from 'vscode'\n\nexport class FoldingProvider implements vscode.FoldingRangeProvider {\n    private readonly sectionRegex: RegExp[] = []\n\n    constructor() {\n        const sections = vscode.workspace.getConfiguration('latex-workshop').get('view.outline.sections') as string[]\n        this.sectionRegex = this.buildSectionRegex(sections)\n    }\n\n    public provideFoldingRanges(\n        document: vscode.TextDocument,\n        _context: vscode.FoldingContext,\n        _token: vscode.CancellationToken\n    ): vscode.ProviderResult<vscode.FoldingRange[]> {\n        return [...this.getSectionFoldingRanges(document), ...this.getEnvironmentFoldingRanges(document)]\n    }\n\n    protected buildSectionRegex(sections: string[]) {\n        return sections.map(section => RegExp(`\\\\\\\\(?:${section})(?:\\\\*)?(?:\\\\[[^\\\\[\\\\]\\\\{\\\\}]*\\\\])?{(.*)}`, 'm'))\n    }\n\n    protected getSectionFoldingRanges(document: vscode.TextDocument) {\n        const startingIndices: number[] = this.sectionRegex.map(_ => -1)\n        const lines = document.getText().split(/\\r?\\n/g)\n        let documentClassLine = -1\n\n        const sections: {level: number, from: number, to: number}[] = []\n        let index = -1\n        let lastNonemptyLineIndex = -1\n        for (const line of lines) {\n            index++\n            for (const regex of this.sectionRegex) {\n                const result = regex.exec(line)\n                if (!result) {\n                    continue\n                }\n                const regIndex = this.sectionRegex.indexOf(regex)\n                const originalIndex = startingIndices[regIndex]\n                if (originalIndex === -1) {\n                    startingIndices[regIndex] = index\n                    continue\n                }\n                let i = regIndex\n                while (i < this.sectionRegex.length) {\n                    sections.push({\n                        level: i,\n                        from: startingIndices[i],\n                        to: lastNonemptyLineIndex\n                    })\n                    startingIndices[i] = regIndex === i ? index : -1\n                    ++i\n                }\n            }\n            if (/\\\\documentclass/.exec(line)) {\n                documentClassLine = index\n            }\n            if (/\\\\begin{document}/.exec(line) && documentClassLine > -1) {\n                sections.push({\n                    level: 0,\n                    from: documentClassLine,\n                    to: lastNonemptyLineIndex\n                })\n            }\n            if (/\\\\end{document}/.exec(line) || index === lines.length - 1) {\n                for (let i = 0; i < startingIndices.length; ++i) {\n                    if (startingIndices[i] === -1) {\n                        continue\n                    }\n                    sections.push({\n                        level: i,\n                        from: startingIndices[i],\n                        to: lastNonemptyLineIndex\n                    })\n                }\n            }\n            if (! line.match(/^\\s*$/)) {\n                lastNonemptyLineIndex = index\n            }\n        }\n\n        return sections.map(section => new vscode.FoldingRange(section.from, section.to))\n    }\n\n    protected getEnvironmentFoldingRanges(document: vscode.TextDocument) {\n        const ranges: vscode.FoldingRange[] = []\n        const opStack: { keyword: string, index: number }[] = []\n        const text: string = document.getText()\n        const envRegex = /\\\\(begin){(.*?)}|\\\\(begingroup)[%\\s\\\\]|\\\\(end){(.*?)}|\\\\(endgroup)[%\\s\\\\]|^%\\s*#?([rR]egion)|^%\\s*#?([eE]ndregion)/gm //to match one 'begin' OR 'end'\n\n        while (true) {\n            const match = envRegex.exec(text)\n            if (match === null) {\n                //TODO: if opStack still not empty\n                return ranges\n            }\n            //for 'begin': match[1] contains 'begin', match[2] contains keyword\n            //for 'end':   match[4] contains 'end',   match[5] contains keyword\n            //for 'begingroup': match[3] contains 'begingroup', keyword is 'group'\n            //for 'endgroup': match[6] contains 'endgroup', keyword is 'group'\n            //for '% region': match[7] contains 'region', keyword is 'region'\n            //for '% endregion': match[8] contains 'endregion', keyword is 'region'\n            let keyword: string = ''\n            if (match[1]) {\n                keyword = match[2]\n            } else if (match[4]) {\n                keyword = match[5]\n            } else if (match[3] || match[6]) {\n                keyword = 'group'\n            } else if (match[7] || match[8]) {\n                keyword = 'region'\n            }\n\n            const item = {\n                keyword,\n                index: match.index\n            }\n            const lastItem = opStack[opStack.length - 1]\n\n            if ((match[4] || match[6] || match[8]) && lastItem && lastItem.keyword === item.keyword) { // match 'end' with its 'begin'\n                opStack.pop()\n                ranges.push(new vscode.FoldingRange(\n                    document.positionAt(lastItem.index).line,\n                    document.positionAt(item.index).line - 1\n                ))\n            } else {\n                opStack.push(item)\n            }\n        }\n    }\n}\n\nexport class DoctexFoldingProvider extends FoldingProvider {\n\n    protected buildSectionRegex(sections: string[]) {\n        return sections.map(section => RegExp(`%\\\\s*\\\\\\\\(?:${section})(?:\\\\*)?(?:\\\\[[^\\\\[\\\\]\\\\{\\\\}]*\\\\])?{(.*)}`, 'm'))\n    }\n\n    protected getEnvironmentFoldingRanges(document: vscode.TextDocument) {\n        const ranges: vscode.FoldingRange[] = []\n        const opStack: { keyword: string, index: number }[] = []\n        const text: string = document.getText()\n        const envRegex = /\\\\(begin){(.*?)}|\\\\(begingroup)[%\\s\\\\]|\\\\(end){(.*?)}|\\\\(endgroup)[%\\s\\\\]|^%\\s*#?([rR]egion)|^%\\s*#?([eE]ndregion)|^%\\s*<\\*([|,&!()_\\-a-zA-Z0-9]+)>|^%\\s*<\\/([|,&!()_\\-a-zA-Z0-9]+)>|^%\\s*\\\\iffalse\\s*(meta-comment)|^%\\s*\\\\(fi)/gm //to match one 'begin' OR 'end'\n\n        while (true) {\n            const match = envRegex.exec(text)\n            if (match === null) {\n                //TODO: if opStack still not empty\n                return ranges\n            }\n            //for 'begin': match[1] contains 'begin', match[2] contains keyword\n            //for 'end':   match[4] contains 'end',   match[5] contains keyword\n            //for 'begingroup': match[3] contains 'begingroup', keyword is 'group'\n            //for 'endgroup': match[6] contains 'endgroup', keyword is 'group'\n            //for '% region': match[7] contains 'region', keyword is 'region'\n            //for '% endregion': match[8] contains 'endregion', keyword is 'region'\n            //DocTeX folding support\n            //for '%<*abc>': match[9] contains '%<*abc>', keyword is '%<abc>'\n            //for '%</abc>': match[10] contains '%</abc>', keyword is '%<abc>'\n            //for '% \\iffalse meta-comment': match[11] contains '% \\iffalse meta-comment', keyword is '%\\\\iffalse meta-comment'\n            //for '% \\fi': match[12] contains '% \\fi', keyword is '%\\\\iffalse meta-comment'\n            let keyword: string = ''\n            if (match[1]) {\n                keyword = match[2]\n            } else if (match[4]) {\n                keyword = match[5]\n            } else if (match[3] || match[6]) {\n                keyword = 'group'\n            } else if (match[7] || match[8]) {\n                keyword = 'region'\n            } else if (match[9]) {\n                keyword = '%<' + match[9] + '>'\n            } else if (match[10]) {\n                keyword = '%<' + match[10] + '>'\n            } else if (match[11] || match[12]) {\n                keyword = '%\\\\iffalse meta-comment'\n            }\n\n            const item = {\n                keyword,\n                index: match.index\n            }\n\n            if (match[4] || match[6] || match[8] || match[10] || match[12]) {\n                // We have found a closing item\n                for (let openingIndex = opStack.length - 1; openingIndex >= 0; openingIndex--) {\n                    const openingItem = opStack[openingIndex]\n                    if (openingItem && openingItem.keyword === item.keyword) { // match 'end' with its 'begin'\n                        const lastLineTune: number = match[10] || match[12] ? 0 : -1\n                        ranges.push(new vscode.FoldingRange(\n                            document.positionAt(openingItem.index).line,\n                            document.positionAt(item.index).line + lastLineTune\n                        ))\n                        opStack.splice(openingIndex, 1)\n                        break\n                    }\n                }\n            } else {\n                opStack.push(item)\n            }\n        }\n    }\n}\n\n\nexport class WeaveFoldingProvider implements vscode.FoldingRangeProvider {\n    public provideFoldingRanges(\n        document: vscode.TextDocument,\n        _context: vscode.FoldingContext,\n        _token: vscode.CancellationToken\n    ): vscode.ProviderResult<vscode.FoldingRange[]> {\n        const ranges: vscode.FoldingRange[] = []\n        const opStack: { keyword: string, index: number }[] = []\n        const text: string = document.getText()\n        const envRegex = /^([\\t ]*<<.*>>=)\\s*$|[\\t ]*(@)\\s*$/gm\n        while (true) {\n            const match = envRegex.exec(text)\n            if (match === null) {\n                return ranges\n            }\n            let keyword: string = ''\n            if (match[1]) {\n                keyword = 'begin'\n            } else if (match[2]) {\n                keyword = 'end'\n            }\n            const item = {\n                keyword,\n                index: match.index\n            }\n            const lastItem = opStack[opStack.length - 1]\n\n            if (keyword === 'end' && lastItem && lastItem.keyword === 'begin') { // match 'end' with its 'begin'\n                opStack.pop()\n                ranges.push(new vscode.FoldingRange(\n                    document.positionAt(lastItem.index).line,\n                    document.positionAt(item.index).line - 1\n                ))\n            } else {\n                opStack.push(item)\n            }\n        }\n     }\n}\n"
  },
  {
    "path": "src/language/index.ts",
    "content": "import { DocSymbolProvider } from './symbol-document'\nimport { ProjectSymbolProvider } from './symbol-project'\nimport { DefinitionProvider } from './definition'\nimport { FoldingProvider, DoctexFoldingProvider, WeaveFoldingProvider } from './folding'\nimport { SelectionRangeProvider } from './selection'\nimport { getLocaleString } from './l10n'\n\nexport const language = {\n    docSymbol: new DocSymbolProvider(),\n    projectSymbol: new ProjectSymbolProvider(),\n    definition: new DefinitionProvider(),\n    folding: new FoldingProvider(),\n    doctexFolding: new DoctexFoldingProvider(),\n    weaveFolding: new WeaveFoldingProvider(),\n    selectionRage: new SelectionRangeProvider(),\n    getLocaleString\n}\n"
  },
  {
    "path": "src/language/l10n.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nlet localeStrings: {[key: string]: string} | undefined\nlet defaultStrings: {[key: string]: string} | undefined\nasync function retrieveLangString() {\n    const langPath = path.resolve(lw.extensionRoot, `package.nls.${vscode.env.language}.json`)\n    if (await lw.file.exists(langPath)) {\n        localeStrings = JSON.parse(await lw.file.read(langPath) ?? '{}') as {[key: string]: string}\n    }\n    const engPath = path.resolve(lw.extensionRoot, 'package.nls.json')\n    defaultStrings = JSON.parse(await lw.file.read(engPath) ?? '{}') as {[key: string]: string}\n}\n\nexport async function getLocaleString(key: string): Promise<string> {\n    if (defaultStrings === undefined) {\n        await retrieveLangString()\n    }\n    return localeStrings?.[key] ?? defaultStrings?.[key] ?? key\n}\n"
  },
  {
    "path": "src/language/selection.ts",
    "content": "import * as vscode from 'vscode'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../lw'\n\n\nconst logger = lw.log('Selection')\n\nfunction inNode(position: vscode.Position, node: Ast.Node) {\n    if (node.position === undefined) {\n        return false\n    }\n    if (node.position.start.line > position.line + 1 ||\n        node.position.end.line < position.line + 1) {\n        return false\n    }\n    if (node.position.start.line === position.line + 1 &&\n        node.position.start.column > position.character + 1) {\n        return false\n    }\n    if (node.position.end.line === position.line + 1 &&\n        node.position.end.column < position.character + 1) {\n        return false\n    }\n    return true\n}\n\nfunction findArg(position: vscode.Position, node: Ast.Node, stack: Ast.Node[]) {\n    if (!('args' in node) || node.args === undefined) {\n        return\n    }\n    for (const arg of node.args) {\n        for (const child of arg.content) {\n            if (!inNode(position, child)) {\n                continue\n            }\n            stack.push(child)\n            findNode(position, child, stack)\n            break\n        }\n    }\n}\n\nexport function findNode(position: vscode.Position, node: Ast.Node, stack: Ast.Node[] = [ node ]): Ast.Node[] {\n    if ('content' in node && typeof node.content !== 'string') {\n        for (const child of node.content) {\n            if (inNode(position, child)) {\n                stack.push(child)\n                findNode(position, child, stack)\n                break\n            } else {\n                findArg(position, child, stack)\n            }\n        }\n    }\n    findArg(position, node, stack)\n\n    return stack\n}\n\nfunction nodeStackToSelectionRange(stack: Ast.Node[]): vscode.SelectionRange {\n    const last = stack[stack.length - 1]\n    const parent: Ast.Node | undefined = stack[stack.length - 2]\n    return new vscode.SelectionRange(\n        new vscode.Range(\n            (last.position?.start.line || 1) - 1, (last.position?.start.column || 1) - 1,\n            (last.position?.end.line || 1) - 1, (last.position?.end.column || 1) - 1\n        ), parent ? nodeStackToSelectionRange(stack.slice(0, -1)) : undefined)\n}\n\nexport class SelectionRangeProvider implements vscode.SelectionRangeProvider {\n    async provideSelectionRanges(document: vscode.TextDocument, positions: vscode.Position[]) {\n        await lw.cache.wait(document.fileName)\n        const content = lw.cache.get(document.fileName)?.content\n        const ast = lw.cache.get(document.fileName)?.ast\n        if (!content || !ast) {\n            logger.log(`Error loading ${content ? 'AST' : 'content'} during structuring: ${document.fileName} .`)\n            return []\n        }\n\n        const ret: vscode.SelectionRange[] = []\n        positions.forEach(position => {\n            const nodeStack = findNode(position, ast)\n            const selectionRange = nodeStackToSelectionRange(nodeStack)\n            ret.push(selectionRange)\n        })\n        return ret\n    }\n}\n"
  },
  {
    "path": "src/language/symbol-document.ts",
    "content": "import * as vscode from 'vscode'\nimport { type TeXElement, TeXElementType } from '../types'\nimport { buildBibTeX } from '../outline/structure/bibtex'\nimport { construct as constructLaTeX } from '../outline/structure/latex'\nimport { construct } from '../outline/structure/doctex'\nimport { lw } from '../lw'\n\nexport class DocSymbolProvider implements vscode.DocumentSymbolProvider {\n\n    async provideDocumentSymbols(document: vscode.TextDocument): Promise<vscode.DocumentSymbol[]> {\n        if (document.languageId === 'bibtex') {\n            return buildBibTeX(document).then((sections: TeXElement[]) => this.sectionToSymbols(sections))\n        } else if (document.languageId === 'doctex') {\n            return construct(document).then((sections: TeXElement[]) => this.sectionToSymbols(sections))\n        }\n        if (!lw.constant.FILE_URI_SCHEMES.includes(document.uri.scheme)) {\n            return []\n        }\n        const sections = await constructLaTeX(document.fileName, false)\n        return this.sectionToSymbols(sections)\n    }\n\n    private sectionToKind(section: TeXElement): vscode.SymbolKind {\n        if (section.type === TeXElementType.Section || section.type === TeXElementType.SectionAst) {\n            return vscode.SymbolKind.Struct\n        }\n        if (section.type === TeXElementType.Environment) {\n            return vscode.SymbolKind.Package\n        }\n        if (section.type === TeXElementType.Macro) {\n            return vscode.SymbolKind.Number\n        }\n        if (section.type === TeXElementType.SubFile) {\n            return vscode.SymbolKind.File\n        }\n        if (section.type === TeXElementType.BibItem) {\n            return vscode.SymbolKind.Class\n        }\n        if (section.type === TeXElementType.BibField) {\n            return vscode.SymbolKind.Constant\n        }\n        return vscode.SymbolKind.String\n    }\n\n    private sectionToSymbols(sections: TeXElement[]): vscode.DocumentSymbol[] {\n        const symbols: vscode.DocumentSymbol[] = []\n\n        sections.forEach(section => {\n            const range = new vscode.Range(section.lineFr, 0, section.lineTo, 65535)\n            const symbol = new vscode.DocumentSymbol(\n                section.label || 'empty', '',\n                this.sectionToKind(section),\n                range, range)\n            symbols.push(symbol)\n            if (section.children.length > 0) {\n                symbol.children = this.sectionToSymbols(section.children)\n            }\n        })\n\n        return symbols\n    }\n\n}\n"
  },
  {
    "path": "src/language/symbol-project.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport type { TeXElement } from '../types'\nimport { construct } from '../outline/structure/latex'\n\nexport class ProjectSymbolProvider implements vscode.WorkspaceSymbolProvider {\n\n    async provideWorkspaceSymbols(): Promise<vscode.SymbolInformation[]> {\n        if (lw.root.file.path === undefined) {\n            return []\n        }\n        const sections = await construct()\n        return this.sectionToSymbols(sections)\n    }\n\n    private sectionToSymbols(sections: TeXElement[], containerName: string = 'Document'): vscode.SymbolInformation[] {\n        let symbols: vscode.SymbolInformation[] = []\n        sections.forEach(section => {\n            const location = new vscode.Location(lw.file.toUri(section.filePath), new vscode.Range(section.lineFr, 0, section.lineTo, 65535))\n            symbols.push(new vscode.SymbolInformation(section.label, vscode.SymbolKind.String, containerName, location))\n            if (section.children.length > 0) {\n                symbols = [...symbols, ...this.sectionToSymbols(section.children, section.label)]\n            }\n        })\n        return symbols\n    }\n}\n"
  },
  {
    "path": "src/lint/bibtex-formatter/utils.ts",
    "content": "import * as vscode from 'vscode'\nimport { bibtexParser } from 'latex-utensils'\nimport { lw } from '../../lw'\n\n\nconst logger = lw.log('Format', 'Bib')\n\nexport declare type BibtexEntry = bibtexParser.Entry | bibtexParser.StringEntry\n\n/**\n * Read the indentation from vscode configuration\n *\n * @param tab VSCode configuration for bibtex-format.tab\n * @return the indentation as a string or undefined if the configuration variable is not correct\n */\nfunction getBibtexFormatTab(tab: string): string | undefined {\n    if (tab === 'tab') {\n        return '\\t'\n    } else {\n        const res = /^(\\d+)( spaces)?$/.exec(tab)\n        if (res) {\n            const nSpaces = parseInt(res[1], 10)\n            return ' '.repeat(nSpaces)\n        } else {\n            return\n        }\n    }\n}\n\ntype BibtexFormatConfig = {\n    tab: string,\n    left: string,\n    right: string,\n    case: {\n        field: 'UPPERCASE' | 'lowercase',\n        type: 'UPPERCASE' | 'lowercase'\n    },\n    trailingComma: boolean,\n    sort: string[],\n    alignOnEqual: boolean,\n    sortFields: boolean,\n    fieldsOrder: string[],\n    firstEntries: string[]\n}\n\nexport function getBibtexFormatConfig(scope: vscode.ConfigurationScope | undefined): BibtexFormatConfig {\n    const config = vscode.workspace.getConfiguration('latex-workshop', scope)\n    const leftright = config.get('bibtex-format.surround') === 'Curly braces' ? [ '{', '}' ] : [ '\"', '\"']\n    let tabs: string | undefined = getBibtexFormatTab(config.get('bibtex-format.tab') as string)\n    if (tabs === undefined) {\n        logger.log(`Wrong value for bibtex-format.tab: ${config.get('bibtex-format.tab')}`)\n        logger.log('Setting bibtex-format.tab to \\'2 spaces\\'')\n        tabs = '  '\n    }\n    const formatConfig: BibtexFormatConfig = {\n        tab: tabs,\n        case: {\n            field: config.get('bibtex-format.case.field') as ('UPPERCASE' | 'lowercase'),\n            type: config.get('bibtex-format.case.type') as ('UPPERCASE' | 'lowercase')\n        },\n        left: leftright[0],\n        right: leftright[1],\n        trailingComma: config.get('bibtex-format.trailingComma') as boolean,\n        sort :config.get('bibtex-format.sortby') as string[],\n        alignOnEqual: config.get('bibtex-format.align-equal.enabled') as boolean,\n        sortFields: config.get('bibtex-fields.sort.enabled') as boolean,\n        fieldsOrder: config.get('bibtex-fields.order') as string[],\n        firstEntries: config.get('bibtex-entries.first') as string[]\n    }\n    logger.log(`Bibtex format config: ${JSON.stringify(formatConfig)}`)\n    return formatConfig\n}\n\n/**\n * Sorting function for bibtex entries\n * @param keys Array of sorting keys\n */\nexport function bibtexSort(duplicates: Set<bibtexParser.Entry>, config: BibtexFormatConfig): (a: BibtexEntry, b: BibtexEntry) => number {\n    return (a, b) => bibtexSortSwitch(a, b, duplicates, config)\n}\n\nfunction bibtexSortSwitch(a: BibtexEntry, b: BibtexEntry, duplicates: Set<bibtexParser.Entry>, config: BibtexFormatConfig): number {\n    const firstEntryCompare = bibtexSortFirstEntries(config.firstEntries, a, b)\n    if (firstEntryCompare !== 0) {\n        return firstEntryCompare\n    }\n    const keys = config.sort\n    let r = 0\n    for (const key of keys) {\n        // Select the appropriate sort function\n        switch (key) {\n            case 'key':\n                r = bibtexSortByKey(a, b)\n                break\n            case 'year-desc':\n                r = -bibtexSortByField('year', a, b, config)\n                break\n            case 'type':\n                r = bibtexSortByType(a, b)\n                break\n            case 'month':\n                r = bibtexSortByMonth(a, b, config)\n                break\n            default:\n                r = bibtexSortByField(key, a, b, config)\n        }\n        // Compare until different\n        if (r !== 0) {\n            break\n        }\n    }\n    if (r === 0 && bibtexParser.isEntry(a)) {\n        // It seems that items earlier in the list appear as the variable b here, rather than a\n        duplicates.add(a)\n    }\n    return r\n}\n\n/**\n * If one of the entries `a` or `b` is in `firstEntries` or `stickyEntries`, return an order.\n * Otherwise, return undefined\n */\nfunction bibtexSortFirstEntries(firstEntries: string[], a: BibtexEntry, b: BibtexEntry): number {\n    const aFirst = firstEntries.includes(a.entryType)\n    const bFirst = firstEntries.includes(b.entryType)\n    if (aFirst && !bFirst) {\n        return -1\n    } else if (!aFirst && bFirst) {\n        return 1\n    } else if (aFirst && bFirst) {\n        const aIndex = firstEntries.indexOf(a.entryType)\n        const bIndex = firstEntries.indexOf(b.entryType)\n        if (aIndex < bIndex) {\n            return -1\n        } else if (aIndex > bIndex) {\n            return 1\n        } else {\n            return 0\n        }\n    }\n    return 0\n}\n\n/**\n * Handles all sorting keys that are some bibtex field name\n * @param fieldName which field name to sort by\n */\nfunction bibtexSortByField(fieldName: string, a: BibtexEntry, b: BibtexEntry, config: BibtexFormatConfig): number {\n    const fieldA = getFieldString(a, fieldName, config).replace(/{|}/g, '')\n    const fieldB = getFieldString(b, fieldName, config).replace(/{|}/g, '')\n\n    return fieldA.localeCompare(fieldB)\n}\n\nfunction bibtexSortByKey(a: BibtexEntry, b: BibtexEntry): number {\n    let aKey: string | undefined = undefined\n    let bKey: string | undefined = undefined\n    if (bibtexParser.isEntry(a)) {\n        aKey = a.internalKey\n    }\n    if (bibtexParser.isEntry(b)) {\n        bKey = b.internalKey\n    }\n    if (!aKey && !bKey) {\n        return 0\n    } else if (!aKey) {\n        return -1 // sort undefined keys first\n    } else if (!bKey) {\n        return 1\n    } else {\n        return aKey.localeCompare(bKey)\n    }\n}\n\nfunction bibtexSortByType(a: BibtexEntry, b: BibtexEntry): number {\n    return a.entryType.localeCompare(b.entryType)\n}\n\nfunction bibtexSortByMonth(a: BibtexEntry, b: BibtexEntry, config: BibtexFormatConfig): number {\n    const monthOrder = [ 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec' ]\n    return monthOrder.indexOf(getFieldString(a, 'month', config).toLowerCase()) - monthOrder.indexOf(getFieldString(b, 'month', config).toLowerCase())\n}\n\n/**\n * Creates an aligned string from a bibtexParser.Entry\n * @param entry the bibtexParser.Entry\n */\nexport function bibtexFormat(entry: bibtexParser.Entry, config: BibtexFormatConfig): string {\n    let s = ''\n\n    s += '@' + (config.case.type === 'lowercase' ? entry.entryType.toLowerCase() : entry.entryType.toUpperCase()) + '{' + (entry.internalKey ?? '')\n\n    // Find the longest field name in entry\n    let maxFieldLength = 0\n    if (config.alignOnEqual) {\n        entry.content.forEach(field => {\n            maxFieldLength = Math.max(maxFieldLength, field.name.length)\n        })\n    }\n\n    let fields: bibtexParser.Field[] = entry.content\n    if (config.sortFields) {\n        fields = entry.content.sort(bibtexSortFields(config.fieldsOrder))\n    }\n\n    const convertCase = config.case.field === 'lowercase' ? (str: string) => str.toLowerCase() : (str: string) => str.toUpperCase()\n    fields.forEach(field => {\n        s += ',\\n' + config.tab + convertCase(field.name)\n        let indent = config.tab + ' '.repeat(field.name.length)\n        if (config.alignOnEqual) {\n            const adjustedLength = ' '.repeat(maxFieldLength - field.name.length)\n            s += adjustedLength\n            indent += adjustedLength\n        }\n        s += ' = '\n        indent += ' '.repeat(' = '.length + config.left.length)\n        s += fieldToString(field.value, indent, config)\n    })\n\n    if (config.trailingComma) {\n        s += ','\n    }\n\n    s += '\\n}'\n\n    return s\n}\n\n/**\n * Return the string value of a named field for an entry, or empty string if not present.\n */\nfunction getFieldString(entry: BibtexEntry, fieldName: string, config: BibtexFormatConfig): string {\n    if (bibtexParser.isEntry(entry)) {\n        for (let i = 0; i < entry.content.length; i++) {\n            if (entry.content[i].name === fieldName) {\n                return fieldToString(entry.content[i].value, '', config)\n            }\n        }\n    }\n    return ''\n}\n\n/**\n * Convert a bibtexParser.FieldValue to a string\n * @param field the bibtexParser.FieldValue to parse\n * @param prefix what to add to every but the first line of a multiline field.\n */\nfunction fieldToString(field: bibtexParser.FieldValue, prefix: string, config: BibtexFormatConfig): string {\n    const left = config.left\n    const right = config.right\n    switch(field.kind) {\n        case 'abbreviation':\n        case 'number':\n            return field.content\n        case 'text_string': {\n            if (prefix !== '') {\n                const lines = field.content.split(/\\r\\n|\\r|\\n/g)\n                for (let i = 1; i < lines.length; i++) {\n                    lines[i] = prefix + lines[i].trimStart()\n                }\n                return left + lines.join('\\n') + right\n            } else {\n                return left + field.content + right\n            }\n        }\n        case 'concat':\n            return field.content.map(value => fieldToString(value, prefix, config)).reduce((acc, cur) => {return acc + ' # ' + cur})\n        default:\n            return ''\n    }\n}\n\n/**\n * Sorting function for bibtex entries\n * @param keys Array of sorting keys\n */\nfunction bibtexSortFields(keys: string[]): (a: bibtexParser.Field, b: bibtexParser.Field) => number {\n    return function (a, b) {\n        const indexA = keys.indexOf(a.name)\n        const indexB = keys.indexOf(b.name)\n\n        if (indexA === -1 && indexB === -1) {\n            return a.name.localeCompare(b.name)\n        } else if (indexA === -1) {\n        return 1\n        } else if (indexB === -1) {\n        return -1\n        } else {\n            return indexA - indexB\n        }\n    }\n}\n"
  },
  {
    "path": "src/lint/bibtex-formatter.ts",
    "content": "import * as vscode from 'vscode'\nimport { bibtexParser } from 'latex-utensils'\nimport { performance } from 'perf_hooks'\nimport { lw } from '../lw'\nimport { bibtexFormat, bibtexSort, getBibtexFormatConfig } from './bibtex-formatter/utils'\nimport type { BibtexEntry } from './bibtex-formatter/utils'\n\nconst logger = lw.log('Format', 'Bib')\n\nexport {\n    format,\n    formattingProvider as formatter\n}\n\nconst duplicatesDiagnostics: vscode.DiagnosticCollection = vscode.languages.createDiagnosticCollection('BibTeX')\nconst diags: vscode.Diagnostic[] = []\n\nasync function format(sort: boolean, align: boolean) {\n    if (!vscode.window.activeTextEditor) {\n        logger.log('Exit formatting. The active textEditor is undefined.')\n        return\n    }\n    if (vscode.window.activeTextEditor.document.languageId !== 'bibtex') {\n        logger.log('Exit formatting. The active textEditor is not of bibtex type.')\n        return\n    }\n    const doc = vscode.window.activeTextEditor.document\n    const t0 = performance.now() // Measure performance\n    duplicatesDiagnostics.clear()\n    logger.log('Start bibtex formatting on user request.')\n    const edits = await formatDocument(doc, sort, align)\n    if (edits.length === 0) {\n        return\n    }\n    const edit = new vscode.WorkspaceEdit()\n    edits.forEach(e => {\n        edit.replace(doc.uri, e.range, e.newText)\n    })\n\n    void vscode.workspace.applyEdit(edit).then(success => {\n        if (success) {\n            duplicatesDiagnostics.set(doc.uri, diags)\n            const t1 = performance.now()\n            logger.log(`BibTeX action successful. Took ${t1 - t0} ms.`)\n        } else {\n            void logger.showErrorMessage('Something went wrong while processing the bibliography.')\n        }\n    })\n\n}\n\nasync function formatDocument(document: vscode.TextDocument, sort: boolean, align: boolean, range?: vscode.Range): Promise<vscode.TextEdit[]> {\n    // Get configuration\n    const formatConfig = getBibtexFormatConfig(document.uri)\n    const config = vscode.workspace.getConfiguration('latex-workshop', document)\n    const handleDuplicates = config.get('bibtex-format.handleDuplicates') as 'Ignore Duplicates' | 'Highlight Duplicates' | 'Comment Duplicates'\n    const lineOffset = range ? range.start.line : 0\n    const columnOffset = range ? range.start.character : 0\n\n    logger.log('Parse active BibTeX document for AST.')\n    const ast = await lw.parser.parse.bib(document.uri, document.getText(range))\n    if (ast === undefined) {\n        return []\n    }\n    logger.log(`Parsed ${ast.content.length} AST items.`)\n    // Create an array of entries and of their starting locations\n    const entries: BibtexEntry[] = []\n    const entryLocations: vscode.Range[] = []\n    ast.content.forEach(item => {\n        if (bibtexParser.isEntry(item) || bibtexParser.isStringEntry(item)) {\n            entries.push(item)\n            // latex-utilities uses 1-based locations whereas VSCode uses 0-based\n            entryLocations.push(new vscode.Range(\n                item.location.start.line - 1,\n                item.location.start.column - 1,\n                item.location.end.line - 1,\n                item.location.end.column - 1))\n        }\n    })\n\n    // Get the sorted locations\n    let sortedEntryLocations: vscode.Range[] = []\n    const duplicates = new Set<bibtexParser.Entry>()\n    if (sort) {\n        entries.sort(bibtexSort(duplicates, formatConfig)).forEach(entry => {\n            sortedEntryLocations.push((new vscode.Range(\n                entry.location.start.line - 1,\n                entry.location.start.column - 1,\n                entry.location.end.line - 1,\n                entry.location.end.column - 1)))\n        })\n    } else {\n        sortedEntryLocations = entryLocations\n    }\n\n    // Successively replace the text in the current location from the sorted location\n    duplicatesDiagnostics.clear()\n    const edits: vscode.TextEdit[] = []\n    diags.length = 0\n    let lineDelta = 0\n    let text: string\n    let isDuplicate: boolean\n    for (let i = 0; i < entries.length; i++) {\n        if (align && bibtexParser.isEntry(entries[i])) {\n            const entry: bibtexParser.Entry = entries[i] as bibtexParser.Entry\n            text = bibtexFormat(entry, formatConfig)\n        } else {\n            text = document.getText(sortedEntryLocations[i])\n        }\n\n        if (bibtexParser.isEntry(entries[i])) {\n            const entry = entries[i] as bibtexParser.Entry\n            isDuplicate = duplicates.has(entry)\n            if (isDuplicate && handleDuplicates !== 'Ignore Duplicates') {\n                if (handleDuplicates === 'Highlight Duplicates') {\n                    const highlightRange: vscode.Range = new vscode.Range(\n                        entryLocations[i].start.line + lineDelta + lineOffset,\n                        entryLocations[i].start.character + columnOffset,\n                        entryLocations[i].start.line + lineDelta + (sortedEntryLocations[i].end.line - sortedEntryLocations[i].start.line) + lineOffset,\n                        entryLocations[i].end.character\n                    )\n                    diags.push(new vscode.Diagnostic(\n                        highlightRange,\n                        `Duplicate entry \"${entry.internalKey}\".`,\n                        vscode.DiagnosticSeverity.Warning\n                    ))\n                } else { // 'Comment Duplicates'\n                    // Log duplicate entry since we aren't highlighting it\n                    logger.log(\n                        `BibTeX-format: Duplicate entry \"${entry.internalKey}\" at line ${entryLocations[i].start.line + lineDelta + 1 + lineOffset}.`)\n                    text = text.replace(/@/,'')\n                }\n            }\n        }\n\n        // Put text from entry[i] into (sorted)location[i]\n        edits.push(new vscode.TextEdit(new vscode.Range(entryLocations[i].start.translate(range?.start.line, range?.start.character), entryLocations[i].end.translate(range?.start.line)), text))\n\n        // We need to figure out the line changes in order to highlight properly\n        lineDelta += (sortedEntryLocations[i].end.line - sortedEntryLocations[i].start.line) - (entryLocations[i].end.line - entryLocations[i].start.line)\n    }\n    logger.log('Formatted ' + document.fileName)\n    return edits\n}\n\nclass FormattingProvider implements vscode.DocumentFormattingEditProvider, vscode.DocumentRangeFormattingEditProvider {\n    public provideDocumentFormattingEdits(document: vscode.TextDocument, _options: vscode.FormattingOptions, _token: vscode.CancellationToken): vscode.ProviderResult<vscode.TextEdit[]> {\n        const sort = vscode.workspace.getConfiguration('latex-workshop', document).get('bibtex-format.sort.enabled') as boolean\n        logger.log('Start bibtex formatting on behalf of VSCode\\'s formatter.')\n        return formatDocument(document, sort, true)\n    }\n\n    public provideDocumentRangeFormattingEdits(document: vscode.TextDocument, range: vscode.Range, _options: vscode.FormattingOptions, _token: vscode.CancellationToken): vscode.ProviderResult<vscode.TextEdit[]> {\n        const sort = vscode.workspace.getConfiguration('latex-workshop', document).get('bibtex-format.sort.enabled') as boolean\n        logger.log('Start bibtex selection formatting on behalf of VSCode\\'s formatter.')\n        return formatDocument(document, sort, true, range)\n    }\n}\n\nconst formattingProvider = new FormattingProvider()\n"
  },
  {
    "path": "src/lint/duplicate-label.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nconst duplicatedLabelsDiagnostics = vscode.languages.createDiagnosticCollection('Duplicate Labels')\n\nexport const dupLabelDetector = {\n    check,\n    reset\n}\n\n/**\n * Compute the dictionary of labels\n */\nfunction computeDuplicates(): string[] {\n    const labelsCount = new Map<string, number>()\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        const cachedRefs = lw.cache.get(cachedFile)?.elements.reference\n        if (cachedRefs === undefined) {\n            return\n        }\n        cachedRefs.forEach(ref => {\n            if (ref.range === undefined) {\n                return\n            }\n            let count = labelsCount.get(ref.label)\n            if (count === undefined) {\n                count = 0\n            }\n            count += 1\n            labelsCount.set(ref.label, count)\n        })\n    })\n    const duplicates = []\n    for (const [label, count] of labelsCount) {\n        if (count > 1) {\n            duplicates.push(label)\n        }\n    }\n    return duplicates\n}\n\nfunction check() {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (!configuration.get('check.duplicatedLabels.enabled')) {\n        return\n    }\n    const duplicates = computeDuplicates()\n    showDiagnostics(duplicates)\n}\n\nfunction showDiagnostics(duplicates: string[]) {\n    duplicatedLabelsDiagnostics.clear()\n    if (duplicates.length === 0) {\n        return\n    }\n    const diagsCollection = Object.create(null) as { [key: string]: vscode.Diagnostic[] }\n\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        const cachedRefs = lw.cache.get(cachedFile)?.elements.reference\n        if (cachedRefs === undefined) {\n            return\n        }\n        cachedRefs.forEach(ref => {\n            if (ref.range === undefined) {\n                return\n            }\n            if (duplicates.includes(ref.label)) {\n                if (! (cachedFile in diagsCollection)) {\n                    diagsCollection[cachedFile] = []\n                }\n                const range = ref.range instanceof vscode.Range ? ref.range : ref.range.inserting\n                const diag = new vscode.Diagnostic(range, `Duplicate label ${ref.label}`, vscode.DiagnosticSeverity.Warning)\n                diag.source = 'DuplicateLabels'\n                diagsCollection[cachedFile].push(diag)\n            }\n        })\n    })\n\n    for (const file in diagsCollection) {\n        if (path.extname(file) === '.tex') {\n            duplicatedLabelsDiagnostics.set(lw.file.toUri(file), diagsCollection[file])\n        }\n    }\n}\n\nfunction reset() {\n    duplicatedLabelsDiagnostics.clear()\n}\n"
  },
  {
    "path": "src/lint/index.ts",
    "content": "import { lint as latexLinter } from './latex-linter'\nimport { formatter as latexFormatter } from './latex-formatter'\nimport { provider as latexActionProvider, action as latexAction } from './latex-code-actions'\nimport { format as bibtexFormat, formatter as bibtexFormatter } from './bibtex-formatter'\nimport { dupLabelDetector } from './duplicate-label'\n\nexport const lint = {\n    latex: {\n        formatter: latexFormatter,\n        actionprovider: latexActionProvider,\n        action: latexAction,\n        ...latexLinter\n    },\n    bibtex: {\n        format: bibtexFormat,\n        formatter: bibtexFormatter\n    },\n    label: dupLabelDetector\n}\n"
  },
  {
    "path": "src/lint/latex-code-actions.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\n\nexport {\n    provider,\n    action\n}\n\n/**\n * Each number corresponds to the warning number of ChkTeX.\n */\nconst CODE_TO_ACTION_STRING: {[key: number]: string} = {\n    1: 'Terminate command with empty statement',\n    2: 'Convert to non-breaking space (~)',\n    4: 'Remove italic correction \\\\/ (not in italic buffer)',\n    5: 'Remove extraneous italic correction(s)',\n    6: 'Add italic correction (\\\\/)',\n    11: 'Fix ellipsis',\n    12: 'Add interword space (\\\\ )',\n    13: 'Add intersentence space (\\\\@)',\n    18: \"Replace with ` or '\",\n    32: 'Replace with `',\n    33: \"Replace with '\",\n    24: 'Remove extraneous space',\n    28: 'Remove incorrect \\\\/',\n    26: 'Remove extraneous space',\n    34: \"Replace with ` or '\",\n    35: 'Use suggested alternative',\n    39: 'Remove extraneous space',\n    42: 'Remove extraneous space',\n    45: 'Use \\\\[ ... \\\\] instead of $$ ... $$',\n    46: 'Use \\\\( ... \\\\) instead of $ ... $'\n}\n\nfunction characterBeforeRange(document: vscode.TextDocument, range: vscode.Range) {\n    return document.getText(range.with(range.start.translate(0, -1)))[0]\n}\n\nfunction isOpeningQuote(document: vscode.TextDocument, range: vscode.Range) {\n    return range.start.character === 0 || characterBeforeRange(document, range) === ' '\n}\n\nclass CodeActionProvider implements vscode.CodeActionProvider {\n    // Leading underscore to avoid tslint complaint\n    provideCodeActions(document: vscode.TextDocument, _range: vscode.Range, context: vscode.CodeActionContext, _token: vscode.CancellationToken): vscode.Command[] {\n        const actions: vscode.Command[] = []\n        context.diagnostics.filter(d => d.source === 'ChkTeX').forEach(d => {\n            let code = typeof d.code === 'object' ? d.code.value : d.code\n            if (!code) {\n                return\n            }\n            if (typeof code === 'string') {\n                code = parseInt(code)\n            }\n            const label = CODE_TO_ACTION_STRING[code]\n            if (label !== undefined) {\n                actions.push({\n                    title: label,\n                    command: 'latex-workshop.code-action',\n                    arguments: [document, d.range, d.code, d.message]\n                })\n            }\n        })\n\n        return actions\n    }\n}\n\nconst provider = new CodeActionProvider()\n\nfunction action(document: vscode.TextDocument, range: vscode.Range, code: number, message: string) {\n    let fixString: string | undefined\n    let regexResult: RegExpExecArray | null\n    switch (code) {\n        case 24:\n        case 26:\n        case 39:\n        case 42:\n            // In all these cases remove all proceeding whitespace.\n            void replaceWhitespaceOnLineBefore(document, range.end, '')\n            break\n        case 4:\n        case 5:\n        case 28:\n            // In all these cases just clear what ChkTeX highlighted.\n            void replaceRangeWithString(document, range, '')\n            break\n        case 1:\n            void replaceWhitespaceOnLineBefore(document, range.end.translate(0, -1), '{}')\n            break\n        case 2:\n            void replaceWhitespaceOnLineBefore(document, range.end, '~')\n            break\n        case 6:\n            void replaceWhitespaceOnLineBefore(document, range.end.translate(0, -1), '\\\\/')\n            break\n        case 11:\n            // add a space after so we don't accidentally join with the following word.\n            regexResult = /\\\\[cl]?dots/.exec(message)\n            if (!regexResult) {\n                break\n            }\n            fixString = regexResult[0] + ' '\n            void replaceRangeWithString(document, range, fixString)\n            break\n        case 12:\n            void replaceRangeWithString(document, range, '\\\\ ')\n            break\n        case 13:\n            void replaceWhitespaceOnLineBefore(document, range.end.translate(0, -1), '\\\\@')\n            break\n        case 18:\n            if (isOpeningQuote(document, range)) {\n                void replaceRangeWithRepeatedString(document, range, '``')\n            } else {\n                void replaceRangeWithRepeatedString(document, range, \"''\")\n            }\n            break\n        case 32:\n            void replaceRangeWithRepeatedString(document, range, '`')\n            break\n        case 33:\n            void replaceRangeWithRepeatedString(document, range, \"'\")\n            break\n        case 34:\n            if (isOpeningQuote(document, range)) {\n                void replaceRangeWithRepeatedString(document, range, '`')\n            } else {\n                void replaceRangeWithRepeatedString(document, range, \"'\")\n            }\n            break\n        case 35:\n            regexResult = /`(.+)'/.exec(message)\n            if (!regexResult) {\n                break\n            }\n            fixString = regexResult[1]\n            void replaceRangeWithString(document, range, fixString)\n            break\n        case 45:\n            void replaceMathDelimitersInRange(document, range, '$$', '\\\\[', '\\\\]')\n            break\n        case 46:\n            void replaceMathDelimitersInRange(document, range, '$', '\\\\(', '\\\\)')\n            break\n        default:\n            break\n    }\n}\n\nfunction replaceWhitespaceOnLineBefore(document: vscode.TextDocument, position: vscode.Position, replaceWith: string) {\n    const beforePosRange = new vscode.Range(new vscode.Position(position.line, 0), position)\n    const text = document.getText(beforePosRange)\n    const regexResult = /\\s*$/.exec(text)\n    if (!regexResult) {\n        return vscode.workspace.applyEdit(new vscode.WorkspaceEdit())\n    }\n    const charactersToRemove = regexResult[0].length\n    const wsRange = new vscode.Range(new vscode.Position(position.line, position.character - charactersToRemove), position)\n    const edit = new vscode.WorkspaceEdit()\n    edit.replace(document.uri, wsRange, replaceWith)\n    return vscode.workspace.applyEdit(edit)\n}\n\nfunction replaceRangeWithString(document: vscode.TextDocument, range: vscode.Range, replacementString: string) {\n    const edit = new vscode.WorkspaceEdit()\n    edit.replace(document.uri, range, replacementString)\n    return vscode.workspace.applyEdit(edit)\n}\n\nfunction replaceRangeWithRepeatedString(document: vscode.TextDocument, range: vscode.Range, replacementString: string) {\n    return replaceRangeWithString(document, range, replacementString.repeat(range.end.character - range.start.character))\n}\n\nfunction replaceMathDelimitersInRange(document: vscode.TextDocument, range: vscode.Range, oldDelim: '$' | '$$', startDelim: string, endDelim: string) {\n    const oldDelimLength = oldDelim.length\n    let endRange = range.with(range.end.translate(0, - oldDelimLength), range.end)\n    const text = document.getText(endRange)\n    // Check if the end position really contains the end delimiter.\n    // This is not the case when the opening and closing delimiters are on different lines\n    if (text !== oldDelim) {\n        if (oldDelim === '$$') {\n            const pat = /(?<!\\\\)\\$\\$/\n            const endPos = lw.parser.find.endPair(document, pat, endRange.start)\n            if (!endPos) {\n                return\n            }\n            endRange = new vscode.Range(endPos.translate(0, - oldDelimLength), endPos)\n        } else {\n            return\n        }\n    }\n    const edit = new vscode.WorkspaceEdit()\n    edit.replace(document.uri, endRange, endDelim)\n    const startRange = range.with(range.start, range.start.translate(0, oldDelimLength))\n    edit.replace(document.uri, startRange, startDelim)\n    return vscode.workspace.applyEdit(edit)\n}\n"
  },
  {
    "path": "src/lint/latex-formatter/latexindent.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as cs from 'cross-spawn'\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { lw } from '../../lw'\nimport { replaceArgumentPlaceholders } from '../../utils/utils'\nimport type { LaTeXFormatter } from '../../types'\n\nconst logger = lw.log('Format', 'latexindent')\n\nexport const latexindent: LaTeXFormatter = {\n    formatDocument\n}\n\nconst currentOs = [\n    { name: 'win32', fileExt: '.exe', checker: 'where' },\n    { name: 'linux', fileExt: '.pl', checker: 'which' },\n    { name: 'darwin', fileExt: '.pl', checker: 'which' }\n].find(system => system.name === os.platform())\n\nlet formatter: string = ''\nlet formatterArgs: string[] = []\nlet formatting: boolean = false\n\nlw.onConfigChange('formatting.latexindent.path', () => formatter = '')\n\nasync function formatDocument(document: vscode.TextDocument, range?: vscode.Range): Promise<vscode.TextEdit | undefined> {\n    if (formatting) {\n        logger.log('Formatting in progress. Aborted.')\n    }\n    formatting = true\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', document.uri)\n    const pathMeta = configuration.get('formatting.latexindent.path') as string\n    formatterArgs = configuration.get('formatting.latexindent.args') as string[]\n    logger.log('Start formatting with latexindent.')\n    try {\n        if (formatter === '') {\n            formatter = pathMeta\n            const latexindentPresent = await checkPath()\n            if (!latexindentPresent) {\n                formatter = ''\n                logger.log(`Can not find ${formatter} in PATH: ${process.env.PATH}`)\n                void logger.showErrorMessage('Can not find latexindent in PATH.')\n                return undefined\n            }\n        }\n        const edit = await format(document, range)\n        return edit\n    } finally {\n        formatting = false\n    }\n}\n\n\nfunction checkPath(): Thenable<boolean> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const useDocker = configuration.get('docker.enabled') as boolean\n    if (useDocker) {\n        logger.log('Use Docker to invoke the command.')\n        if (process.platform === 'win32') {\n            formatter = path.resolve(lw.extensionRoot, './scripts/latexindent.bat')\n        } else {\n            formatter = path.resolve(lw.extensionRoot, './scripts/latexindent')\n            fs.chmodSync(formatter, 0o755)\n        }\n        return Promise.resolve(true)\n    }\n\n    if (path.isAbsolute(formatter)) {\n        if (fs.existsSync(formatter)) {\n            return Promise.resolve(true)\n        } else {\n            logger.log(`The path of latexindent is absolute and not found: ${formatter}`)\n            return Promise.resolve(false)\n        }\n    }\n\n    if (!currentOs) {\n        logger.log('The current platform is undefined.')\n        return Promise.resolve(false)\n    }\n    const checker = currentOs.checker\n    const fileExt = currentOs.fileExt\n\n    const checkFormatter = (resolve: (value: boolean) => void, isFirstTry: boolean = true) => {\n        const check = cs.spawn(checker, [formatter])\n        let stdout: string = ''\n        let stderr: string = ''\n        check.stdout.setEncoding('utf8')\n        check.stderr.setEncoding('utf8')\n        check.stdout.on('data', d => { stdout += d})\n        check.stderr.on('data', d => { stderr += d})\n        check.on('close', code => {\n            if (code && isFirstTry) {\n                logger.log(`Error when checking latexindent: ${stderr}`)\n                formatter += fileExt\n                logger.log(`Checking latexindent: ${checker} ${formatter}`)\n                checkFormatter(resolve, false)\n            } else if (code) {\n                logger.log(`Error when checking latexindent: ${stderr}`)\n                resolve(false)\n            } else {\n                logger.log(`Checking latexindent is ok: ${stdout.trim()}`)\n                resolve(true)\n            }\n        })\n    }\n\n    return new Promise((resolve, _) => {\n        logger.log(`Checking latexindent: ${checker} ${formatter}`)\n        checkFormatter(resolve)\n    })\n}\n\nfunction format(document: vscode.TextDocument, range?: vscode.Range): Thenable<vscode.TextEdit | undefined> {\n    return new Promise((resolve, _reject) => {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const useDocker = configuration.get('docker.enabled') as boolean\n\n        if (!vscode.window.activeTextEditor) {\n            logger.log('Exit formatting. The active textEditor is undefined.')\n            return\n        }\n        const options = vscode.window.activeTextEditor.options\n        const tabSize = options.tabSize ? +options.tabSize : 4\n        const useSpaces = options.insertSpaces\n\n        const indent = useSpaces ? ' '.repeat(tabSize): '\\\\t'\n\n        const documentDirectory = path.dirname(document.fileName)\n\n        // The version of latexindent shipped with current latex distributions doesn't support piping in the data using stdin, support was\n        // only added on 2018-01-13 with version 3.4 so we have to create a temporary file\n        const textToFormat = document.getText(range)\n        const temporaryFile = documentDirectory + path.sep + '__latexindent_temp_' + path.basename(document.fileName)\n        fs.writeFileSync(temporaryFile, textToFormat)\n\n        const removeTemporaryFiles = () => {\n            try {\n                fs.unlinkSync(temporaryFile)\n                fs.unlinkSync(documentDirectory + path.sep + 'indent.log')\n            } catch (err) {\n                logger.logError('Error when removing temporary file', err)\n            }\n        }\n\n        // generate command line arguments\n        const rootFile = lw.root.file.path || document.fileName\n        const args = formatterArgs.map(arg => { return replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(arg)\n            // ts specific tokens\n            .replace(/%TMPFILE%/g, useDocker ? path.basename(temporaryFile) : temporaryFile.split(path.sep).join('/'))\n            .replace(/%INDENT%/g, indent)\n        })\n\n        logger.logCommand('Formatting LaTeX.', formatter, args)\n        const worker = cs.spawn(formatter, args, { stdio: 'pipe', cwd: documentDirectory })\n        // handle stdout/stderr\n        const stdoutBuffer: Buffer[] = []\n        const stderrBuffer: Buffer[] = []\n        worker.stdout.on('data', (chunk: Buffer | string) => {\n            stdoutBuffer.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))\n        })\n        worker.stderr.on('data', (chunk: Buffer | string) => {\n            stderrBuffer.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))\n        })\n        worker.on('error', err => {\n            removeTemporaryFiles()\n            void logger.showErrorMessage('Formatting failed. Please refer to LaTeX Workshop Output for details.')\n            logger.log(`Formatting failed: ${err.message}`)\n            logger.log(`stderr: ${Buffer.concat(stderrBuffer).toString()}`)\n            resolve(undefined)\n        })\n        worker.on('close', code => {\n            removeTemporaryFiles()\n            if (code !== 0) {\n                void logger.showErrorMessage('Formatting failed. Please refer to LaTeX Workshop Output for details.')\n                logger.log(`Formatting failed with exit code ${code}`)\n                logger.log(`stderr: ${Buffer.concat(stderrBuffer).toString()}`)\n                return resolve(undefined)\n            }\n            const stdout = Buffer.concat(stdoutBuffer).toString()\n            if (stdout !== '') {\n                const edit = vscode.TextEdit.replace(range ?? document.validateRange(new vscode.Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE)), stdout)\n                logger.log(`Formatted using ${formatter} ${document.fileName}.`)\n                return resolve(edit)\n            }\n\n            return resolve(undefined)\n        })\n    })\n}\n"
  },
  {
    "path": "src/lint/latex-formatter/tex-fmt.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from '../../lw'\nimport { LaTeXFormatter } from '../../types'\nimport { replaceArgumentPlaceholders } from '../../utils/utils'\n\n\nconst logger = lw.log('Format', 'tex-fmt')\n\nexport const texfmt: LaTeXFormatter = {\n    formatDocument\n}\n\nasync function formatDocument(document: vscode.TextDocument, range?: vscode.Range): Promise<vscode.TextEdit | undefined> {\n    const config = vscode.workspace.getConfiguration('latex-workshop')\n    const program = config.get('formatting.tex-fmt.path') as string\n    const rootFile = lw.root.file.path || document.fileName\n    const args = (config.get('formatting.tex-fmt.args') as string[]).map(arg => replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(arg))\n    args.push('--stdin')\n    logger.logCommand('Formatting LaTeX.', program, args)\n    const process = lw.external.spawn(program, args, { cwd: path.dirname(document.uri.fsPath) })\n\n    let stdout: Buffer = Buffer.alloc(0)\n    process.stdout?.on('data', (msg: Buffer | string) => {\n        stdout = Buffer.concat([stdout, Buffer.isBuffer(msg) ? msg : Buffer.from(msg)])\n    })\n\n    let stderr: Buffer = Buffer.alloc(0)\n    process.stderr?.on('data', (msg: Buffer | string) => {\n        stderr = Buffer.concat([stderr, Buffer.isBuffer(msg) ? msg : Buffer.from(msg)])\n    })\n\n    const promise = new Promise<vscode.TextEdit | undefined>(resolve => {\n        process.on('error', err => {\n            logger.logError(`Failed to run ${program}`, err)\n            logger.showErrorMessage(`Failed to run ${program}. See extension log for more information.`)\n            resolve(undefined)\n        })\n\n        process.on('exit', code => {\n            if (code !== 0) {\n                logger.log(`${program} returned ${code} .`)\n                if (stderr.length > 0) {\n                    logger.log(stderr.toString())\n                }\n                if (stdout.length > 0) {\n                    logger.log(stdout.toString())\n                }\n                logger.showErrorMessage(`${program} returned ${code} . Be cautious on the edits.`)\n                resolve(undefined)\n                return\n            }\n            let stdoutStr = stdout.toString()\n            // tex-fmt adds an extra newline at the end\n            if (stdoutStr.endsWith('\\n\\n')) {\n                stdoutStr = stdoutStr.slice(0, -1)\n            }\n            logger.log(`Formatted using ${program} ${document.fileName}.`)\n            resolve(vscode.TextEdit.replace(range ?? document.validateRange(new vscode.Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE)), stdoutStr))\n        })\n    })\n\n    // 2024-12-4, for tex-fmt 0.4.7, when using `--stdin`, it requires a newline at the end of the input; Therefore, we need to add a newline at the end of the input if it doesn't exist, and remove it from the output if it exists.\n    const text = document.getText(range)\n    const endsWithNewline = text.endsWith('\\n')\n    process.stdin?.write(endsWithNewline ? text : text + '\\n')\n    process.stdin?.end()\n    const edits = await promise\n    if (edits) {\n        edits.newText = endsWithNewline ? edits.newText : edits.newText.replace(/\\n$/, '')\n    }\n    return edits\n}\n"
  },
  {
    "path": "src/lint/latex-formatter.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport { LaTeXFormatter } from '../types'\nimport { latexindent } from './latex-formatter/latexindent'\nimport { texfmt } from './latex-formatter/tex-fmt'\nimport { fixQuotes } from '../extras/quote-fixer'\nimport { fixMath } from '../extras/math-fixer'\n\nconst logger = lw.log('Format', 'LaTeX')\n\nexport {\n    formattingProvider as formatter\n}\n\nclass FormattingProvider implements vscode.DocumentFormattingEditProvider, vscode.DocumentRangeFormattingEditProvider {\n    private get formatter(): LaTeXFormatter | undefined {\n        const config = vscode.workspace.getConfiguration('latex-workshop')\n        const program = config.get('formatting.latex') as string\n        let errorMsg: string\n        if (program === 'latexindent') {\n            return latexindent\n        } else if (program === 'tex-fmt') {\n            return texfmt\n        } else if (program === 'none') {\n            errorMsg = 'Please set your LaTeX formatter in `latex-workshop.formatting.latex`.'\n        } else {\n            errorMsg = `Unknown LaTeX formatter by \\`formatting.latex\\`: ${program} .`\n        }\n        logger.log(errorMsg)\n        void logger.showErrorMessage(errorMsg)\n        return undefined\n    }\n\n    public async provideDocumentFormattingEdits(document: vscode.TextDocument, _options: vscode.FormattingOptions, _token: vscode.CancellationToken): Promise<vscode.TextEdit[]> {\n        const edits: vscode.TextEdit[] = []\n        const formatEdit = await this.formatter?.formatDocument(document)\n        if (formatEdit) {\n            edits.push(formatEdit)\n        }\n        const quoteEdits = fixQuotes(document, undefined)\n        edits.push(...quoteEdits)\n        const mathEdits = fixMath(document, undefined)\n        edits.push(...mathEdits)\n        return edits\n    }\n\n    public async provideDocumentRangeFormattingEdits(document: vscode.TextDocument, range: vscode.Range, _options: vscode.FormattingOptions, _token: vscode.CancellationToken): Promise<vscode.TextEdit[]> {\n        const edits: vscode.TextEdit[] = []\n        const formatEdit = await this.formatter?.formatDocument(document, range)\n        if (formatEdit) {\n            const useSpaces = vscode.window.activeTextEditor?.options.insertSpaces ?? true\n            const firstLine = document.lineAt(range.start.line)\n            // Replace all new line characters with new line and spaces, so that\n            // the indentations are added from the second line.\n            formatEdit.newText = formatEdit.newText.replaceAll('\\n', '\\n' + (useSpaces ? ' ' : '\\t').repeat(firstLine.firstNonWhitespaceCharacterIndex))\n            if (firstLine.firstNonWhitespaceCharacterIndex > range.start.character) {\n                // \\s\\s\\s|\\sf(x)=ax+b\n                // In this case, the first line need some leading whitespaces.\n                formatEdit.newText = ' '.repeat(firstLine.firstNonWhitespaceCharacterIndex - range.start.character) + formatEdit.newText\n            }\n            edits.push(formatEdit)\n        }\n\n        const quoteEdits = fixQuotes(document, range)\n        edits.push(...quoteEdits)\n        const mathEdits = fixMath(document, range)\n        edits.push(...mathEdits)\n        return edits\n    }\n}\n\nconst formattingProvider = new FormattingProvider()\n"
  },
  {
    "path": "src/lint/latex-linter/chktex.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport * as os from 'os'\nimport { ChildProcessWithoutNullStreams, spawn } from 'child_process'\nimport { lw } from '../../lw'\nimport type { LaTeXLinter } from '../../types'\nimport { processWrapper } from './utils'\nimport { convertFilenameEncoding } from '../../utils/convertfilename'\n\nconst logger = lw.log('Linter', 'ChkTeX')\n\nconst getName = () => 'ChkTeX'\nexport const chkTeX: LaTeXLinter = {\n    linterDiagnostics: vscode.languages.createDiagnosticCollection(getName()),\n    getName,\n    lintFile,\n    lintRootFile,\n    parseLog\n}\n\nlet linterProcess: ChildProcessWithoutNullStreams | undefined\n\nasync function lintRootFile(rootPath: string) {\n    const requiredArgs = ['-f%f:%l:%c:%d:%k:%n:%m\\n', rootPath]\n\n    const stdout = await chktexWrapper('root', lw.file.toUri(rootPath), rootPath, requiredArgs, undefined)\n    if (stdout === undefined) { // It's possible to have empty string as output\n        return\n    }\n\n    const tabSize = getChktexrcTabSize(rootPath)\n    parseLog(stdout, undefined, tabSize)\n}\n\nasync function lintFile(document: vscode.TextDocument) {\n    const filePath = document.fileName\n    const content = document.getText()\n    const requiredArgs = ['-I0', '-f%f:%l:%c:%d:%k:%n:%m\\n']\n    const stdout = await chktexWrapper('active', document, filePath, requiredArgs, content)\n    if (stdout === undefined) { // It's possible to have empty string as output\n        return\n    }\n    // provide the original path to the active file as the second argument, so\n    // we report this second path in the diagnostics instead of the temporary one.\n    const tabSize = getChktexrcTabSize(document.fileName)\n    parseLog(stdout, filePath, tabSize)\n}\n\nasync function chktexWrapper(linterid: string, configScope: vscode.ConfigurationScope, filePath: string, requiredArgs: string[], content?: string): Promise<string | undefined> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', configScope)\n    const command = configuration.get('linting.chktex.exec.path') as string\n    const args = [...(configuration.get('linting.chktex.exec.args') as string[])]\n    if (!args.includes('-l')) {\n        const rcPath = getRcPath()\n        if (rcPath) {\n            args.push('-l', rcPath)\n        }\n    }\n\n    let stdout: string\n    try {\n        linterProcess?.kill()\n        logger.logCommand(`Linter for ${getName()} command`, command, args.concat(requiredArgs).filter(arg => arg !== ''))\n        linterProcess = spawn(command, args.concat(requiredArgs).filter(arg => arg !== ''), { cwd: path.dirname(filePath) })\n        stdout = await processWrapper(linterid, linterProcess, content)\n    } catch (err: any) {\n        if ('stdout' in err) {\n            stdout = err.stdout as string\n        } else {\n            return\n        }\n    }\n\n    return stdout\n}\n\nfunction getRcPath() {\n    let rcPath: string\n    // 0. root file folder\n    const root = lw.root.file.path\n    if (root) {\n        rcPath = path.resolve(path.dirname(root), './.chktexrc')\n    } else {\n        return\n    }\n    if (fs.existsSync(rcPath)) {\n        return rcPath\n    }\n\n    // 1. project root folder\n    const workspaceFolder = vscode.workspace.workspaceFolders?.[0]\n    if (workspaceFolder) {\n        rcPath = path.resolve(workspaceFolder.uri.fsPath, './.chktexrc')\n    }\n    if (fs.existsSync(rcPath)) {\n        return rcPath\n    }\n    return\n}\n\nfunction globalRcPath(): string | undefined {\n    const rcPathArray: string[] = []\n    if (os.platform() === 'win32') {\n        if (process.env.CHKTEXRC) {\n            rcPathArray.push(path.join(process.env.CHKTEXRC, 'chktexrc'))\n        }\n        if (process.env.CHKTEX_HOME) {\n            rcPathArray.push(path.join(process.env.CHKTEX_HOME, 'chktexrc'))\n        }\n        if (process.env.EMTEXDIR) {\n            rcPathArray.push(path.join(process.env.EMTEXDIR, 'data', 'chktexrc'))\n        }\n    } else {\n        if (process.env.HOME) {\n            rcPathArray.push(path.join(process.env.HOME, '.chktexrc'))\n        }\n        if (process.env.LOGDIR) {\n            rcPathArray.push(path.join(process.env.LOGDIR, '.chktexrc'))\n        }\n        if (process.env.CHKTEXRC) {\n            rcPathArray.push(path.join(process.env.CHKTEXRC, '.chktexrc'))\n        }\n    }\n    for (const rcPath of rcPathArray) {\n        if (fs.existsSync(rcPath)) {\n            return rcPath\n        }\n    }\n    return\n}\n\nfunction getChktexrcTabSize(file: string): number | undefined {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(file))\n    const args = configuration.get('linting.chktex.exec.args') as string[]\n    let filePath: string | undefined\n    if (args.includes('-l')) {\n        const idx = args.indexOf('-l')\n        if (idx >= 0) {\n            const rcpath = args[idx+1]\n            if (fs.existsSync(rcpath)) {\n                filePath = rcpath\n            }\n        }\n    } else {\n        const rcPath = getRcPath()\n        if (rcPath) {\n            filePath = rcPath\n        } else {\n            filePath = globalRcPath()\n        }\n    }\n    if (!filePath) {\n        logger.log('No .chktexrc file is found to determine TabSize.')\n        return\n    }\n    const rcFile = fs.readFileSync(filePath).toString()\n    const reg = /^\\s*TabSize\\s*=\\s*(\\d+)\\s*$/m\n    const match = reg.exec(rcFile)\n    if (match) {\n        const ret = Number(match[1])\n        logger.log(`TabSize ${ret} defined in .chktexrc ${filePath} .`)\n        return ret\n    }\n    logger.log(`No TabSize is found in .chktexrc ${filePath} .`)\n    return\n}\n\nfunction parseLog(log: string, singleFileOriginalPath?: string, tabSizeArg?: number) {\n    const re = /^(.*?):(\\d+):(\\d+):(\\d+):(.*?):(\\d+):(.*?)$/gm\n    const linterLog: ChkTeXLogEntry[] = []\n    let match = re.exec(log)\n    while (match) {\n        // This log may be for a single file in memory, in which case we override the\n        // path with what is provided\n        let filePath = singleFileOriginalPath ? singleFileOriginalPath : match[1]\n        if (!path.isAbsolute(filePath) && lw.root.dir.path !== undefined) {\n            filePath = path.resolve(lw.root.dir.path, filePath)\n        }\n        const line = parseInt(match[2])\n        const column = callConvertColumn(parseInt(match[3]), filePath, line, tabSizeArg)\n        linterLog.push({\n            file: filePath,\n            line,\n            column,\n            length: parseInt(match[4]),\n            type: match[5].toLowerCase(),\n            code: parseInt(match[6]),\n            text: `${match[6]}: ${match[7]}`\n        })\n        match = re.exec(log)\n    }\n    logger.log(`Logged ${linterLog.length} messages.`)\n    if (singleFileOriginalPath === undefined) {\n        // A full lint of the project has taken place - clear all previous results.\n        chkTeX.linterDiagnostics.clear()\n    } else if (linterLog.length === 0) {\n        // We are linting a single file and the new log is empty for it -\n        // clean existing records.\n        chkTeX.linterDiagnostics.set(lw.file.toUri(singleFileOriginalPath), [])\n    }\n    showLinterDiagnostics(linterLog)\n}\n\nfunction callConvertColumn(column: number, filePathArg: string, line: number, tabSizeArg?: number): number {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.root.getWorkspace())\n    if (!configuration.get('linting.chktex.convertOutput.column.enabled', true)) {\n        return column\n    }\n    const filePath = convertFilenameEncoding(filePathArg)\n    if (!filePath){\n        logger.log(`Column number not converted on non-existent ${filePathArg} .`)\n        return column\n    }\n    const lineString = fs.readFileSync(filePath).toString().split('\\n')[line-1]\n    let tabSize: number | undefined\n    const tabSizeConfig = configuration.get('linting.chktex.convertOutput.column.chktexrcTabSize', -1)\n    if (tabSizeConfig >= 0) {\n        tabSize = tabSizeConfig\n    } else {\n        tabSize = tabSizeArg\n    }\n    if (lineString === undefined) {\n        logger.log(`Column number not converted by invalid line ${line} of ${filePathArg}.`)\n        return column\n    }\n    return convertColumn(column, lineString, tabSize)\n}\n\n/**\n * @param colArg One-based value.\n * @param tabSize The default value used by chktex is 8.\n * @returns One-based value.\n */\nfunction convertColumn(colArg: number, lineString: string, tabSize = 8): number {\n    const col = colArg - 1\n    const charByteArray = lineString.split('').map((c) => Buffer.byteLength(c))\n    let i = 0\n    let pos = 0\n    while (i < charByteArray.length) {\n        if (col <= pos) {\n            break\n        }\n        if (lineString[i] === '\\t') {\n            pos += tabSize\n        } else {\n            pos += charByteArray[i]\n        }\n        i += 1\n    }\n    return i + 1\n}\n\nfunction showLinterDiagnostics(linterLog: ChkTeXLogEntry[]) {\n    const diagsCollection = Object.create(null) as { [key: string]: vscode.Diagnostic[] }\n    for (const item of linterLog) {\n        const range = new vscode.Range(\n            new vscode.Position(item.line - 1, item.column - 1),\n            new vscode.Position(item.line - 1, item.column - 1 + item.length)\n        )\n        const diag = new vscode.Diagnostic(range, item.text, DIAGNOSTIC_SEVERITY[item.type])\n        diag.code = item.code\n        diag.source = getName()\n        if (diagsCollection[item.file] === undefined) {\n            diagsCollection[item.file] = []\n        }\n        diagsCollection[item.file].push(diag)\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const convEnc = configuration.get('message.convertFilenameEncoding') as boolean\n    for (const file in diagsCollection) {\n        let file1 = file\n        if (['.tex', '.bbx', '.cbx', '.dtx'].includes(path.extname(file))) {\n            // Only report ChkTeX errors on TeX files. This is done to avoid\n            // reporting errors in .sty files, which are irrelevant for most users.\n            if (!fs.existsSync(file1) && convEnc) {\n                const f = convertFilenameEncoding(file1)\n                if (f !== undefined) {\n                    file1 = f\n                }\n            }\n            chkTeX.linterDiagnostics.set(lw.file.toUri(file1), diagsCollection[file])\n        }\n    }\n}\n\ninterface ChkTeXLogEntry {\n    file: string,\n    line: number,\n    column: number,\n    length: number,\n    type: string,\n    code: number,\n    text: string\n}\n\nconst DIAGNOSTIC_SEVERITY: { [key: string]: vscode.DiagnosticSeverity } = {\n    'typesetting': vscode.DiagnosticSeverity.Information,\n    'warning': vscode.DiagnosticSeverity.Warning,\n    'error': vscode.DiagnosticSeverity.Error,\n}\n"
  },
  {
    "path": "src/lint/latex-linter/lacheck.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { ChildProcessWithoutNullStreams, spawn } from 'child_process'\nimport { lw } from '../../lw'\nimport type { LaTeXLinter } from '../../types'\nimport { processWrapper } from './utils'\nimport { convertFilenameEncoding } from '../../utils/convertfilename'\n\nconst logger = lw.log('Linter', 'LaCheck')\n\nconst getName = () => 'LaCheck'\nexport const laCheck: LaTeXLinter = {\n    linterDiagnostics: vscode.languages.createDiagnosticCollection(getName()),\n    getName,\n    lintFile,\n    lintRootFile,\n    parseLog\n}\n\nlet linterProcess: ChildProcessWithoutNullStreams | undefined\n\nasync function lintRootFile(rootPath: string) {\n    const stdout = await lacheckWrapper('root', lw.file.toUri(rootPath), rootPath, undefined)\n    if (stdout === undefined) { // It's possible to have empty string as output\n        return\n    }\n\n    parseLog(stdout)\n}\n\nasync function lintFile(document: vscode.TextDocument) {\n    const filePath = document.fileName\n    const content = document.getText()\n\n    const stdout = await lacheckWrapper('active', document, filePath, content)\n    if (stdout === undefined) { // It's possible to have empty string as output\n        return\n    }\n\n    parseLog(stdout, document.fileName)\n}\n\nasync function lacheckWrapper(linterid: string, configScope: vscode.ConfigurationScope, filePath: string, content?: string): Promise<string | undefined> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', configScope)\n    const command = configuration.get('linting.lacheck.exec.path') as string\n\n    let stdout: string\n    try {\n        linterProcess?.kill()\n        logger.logCommand(`Linter for ${getName()} command`, command, [ filePath ])\n        linterProcess = spawn(command, [ filePath ], { cwd: path.dirname(filePath) })\n        stdout = await processWrapper(linterid, linterProcess, content)\n    } catch (err: any) {\n        if ('stdout' in err) {\n            stdout = err.stdout as string\n        } else {\n            return\n        }\n    }\n\n    return stdout\n}\n\nfunction parseLog(log: string, filePath?: string) {\n    const linterLog: LaCheckLogEntry[] = []\n    const lines = log.split('\\n')\n    const baseDir = path.dirname(filePath || lw.root.file.path || '.')\n    for (let index = 0; index < lines.length; index++) {\n        const logLine = lines[index]\n        const re = /\"(.*?)\",\\sline\\s(\\d+):\\s(<-\\s)?(.*)/g\n        const match = re.exec(logLine)\n        if (!match) {\n            continue\n        }\n        if (match[3] === '<- ') {\n            const nextLineRe = /.*line\\s(\\d+).*->\\s(.*)/g\n            const nextLineMatch = nextLineRe.exec(lines[index+1])\n            if (nextLineMatch) {\n                linterLog.push({\n                    file: path.resolve(baseDir, match[1]),\n                    line: parseInt(match[2]),\n                    text: `${match[4]} -> ${nextLineMatch[2]} at Line ${nextLineMatch[1]}`\n                })\n                index++\n            } else {\n                linterLog.push({\n                    file: path.resolve(baseDir, match[1]),\n                    line: parseInt(match[2]),\n                    text: match[4]\n                })\n            }\n        } else {\n            linterLog.push({\n                file: path.resolve(baseDir, match[1]),\n                line: parseInt(match[2]),\n                text: match[4]\n            })\n        }\n    }\n    logger.log(`Logged ${linterLog.length} messages.`)\n    laCheck.linterDiagnostics.clear()\n    showLinterDiagnostics(linterLog)\n}\n\nfunction showLinterDiagnostics(linterLog: LaCheckLogEntry[]) {\n    const diagsCollection = Object.create(null) as { [key: string]: vscode.Diagnostic[] }\n    for (const item of linterLog) {\n        const range = new vscode.Range(\n            new vscode.Position(item.line - 1, 0),\n            new vscode.Position(item.line - 1, 65535)\n        )\n        const diag = new vscode.Diagnostic(range, item.text, vscode.DiagnosticSeverity.Warning)\n        diag.source = getName()\n        if (diagsCollection[item.file] === undefined) {\n            diagsCollection[item.file] = []\n        }\n        diagsCollection[item.file].push(diag)\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const convEnc = configuration.get('message.convertFilenameEncoding') as boolean\n    for (const file in diagsCollection) {\n        let file1 = file\n        if (['.tex', '.bbx', '.cbx', '.dtx'].includes(path.extname(file))) {\n            // Only report LaCheck errors on TeX files. This is done to avoid\n            // reporting errors in .sty files, which are irrelevant for most users.\n            if (!fs.existsSync(file1) && convEnc) {\n                const f = convertFilenameEncoding(file1)\n                if (f !== undefined) {\n                    file1 = f\n                }\n            }\n            laCheck.linterDiagnostics.set(lw.file.toUri(file1), diagsCollection[file])\n        }\n    }\n}\n\ninterface LaCheckLogEntry {\n    file: string,\n    line: number,\n    text: string\n}\n"
  },
  {
    "path": "src/lint/latex-linter/utils.ts",
    "content": "import * as os from 'os'\nimport type { ChildProcessWithoutNullStreams } from 'child_process'\nimport { lw } from '../../lw'\n\nconst logger = lw.log('Linter')\n\nexport function processWrapper(linterId: string, proc: ChildProcessWithoutNullStreams, stdin?: string): Promise<string> {\n    return new Promise((resolve, reject) => {\n        const startTime = process.hrtime()\n\n        proc.stdout.setEncoding('binary')\n        proc.stderr.setEncoding('binary')\n\n        let stdout = ''\n        proc.stdout.on('data', newStdout => {\n            stdout += newStdout\n        })\n\n        let stderr = ''\n        proc.stderr.on('data', newStderr => {\n            stderr += newStderr\n        })\n\n        proc.on('error', err => {\n            logger.log(`Linter for ${linterId} failed to spawn command, encountering error: ${err.message}`)\n            return reject(err)\n        })\n\n        proc.on('exit', exitCode => {\n            if (exitCode !== 0) {\n                let msg: string\n                if (stderr === '') {\n                    msg = stderr\n                } else {\n                    msg = '\\n' + stderr\n                }\n                logger.log(`Linter for ${linterId} failed with exit code ${exitCode} and error:${msg}`)\n                return reject({ exitCode, stdout, stderr})\n            } else {\n                const [s, ms] = process.hrtime(startTime)\n                logger.log(`Linter for ${linterId} successfully finished in ${s}s ${Math.round(ms / 1000000)}ms`)\n                return resolve(stdout)\n            }\n        })\n\n        if (stdin !== undefined) {\n            proc.stdin.write(stdin)\n            if (!stdin.endsWith(os.EOL)) {\n                // Always ensure we end with EOL otherwise ChkTeX will report line numbers as off by 1.\n                proc.stdin.write(os.EOL)\n            }\n            proc.stdin.end()\n        }\n    })\n}\n"
  },
  {
    "path": "src/lint/latex-linter.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport type { LaTeXLinter } from '../types'\nimport { chkTeX } from './latex-linter/chktex'\nimport { laCheck } from './latex-linter/lacheck'\n\nconst logger = lw.log('Linter')\n\nexport const lint = {\n    on,\n    root\n}\n\nlet linterTimeout: NodeJS.Timeout | undefined\n\nfunction getLinters(scope?: vscode.ConfigurationScope): LaTeXLinter[] {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', scope)\n    const linters: LaTeXLinter[] = []\n    if (configuration.get('linting.chktex.enabled')) {\n        linters.push(chkTeX)\n    } else {\n        chkTeX.linterDiagnostics.clear()\n    }\n    if (configuration.get('linting.lacheck.enabled')) {\n        linters.push(laCheck)\n    } else {\n        laCheck.linterDiagnostics.clear()\n    }\n    return linters\n}\n\nfunction root() {\n    const linters = getLinters(lw.root.getWorkspace())\n    linters.forEach(linter => {\n        if (lw.root.file.path === undefined) {\n            logger.log(`No root file found for ${linter.getName()}.`)\n            return\n        }\n        logger.log(`${linter.getName()} lints root ${lw.root.file.path} .`)\n        void linter.lintRootFile(lw.root.file.path)\n    })\n}\n\nfunction on(document: vscode.TextDocument) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', document.uri)\n    const linters = getLinters(document.uri)\n    if (linters.length > 0\n        && (configuration.get('linting.run') as string) === 'onType') {\n        const interval = configuration.get('linting.delay') as number\n        if (linterTimeout) {\n            clearTimeout(linterTimeout)\n        }\n        linterTimeout = setTimeout(() => linters.forEach(linter => {\n            logger.log(`${linter.getName()} lints ${document.fileName} .`)\n            void linter.lintFile(document)\n        }), interval)\n    }\n}\n"
  },
  {
    "path": "src/locate/index.ts",
    "content": "import { synctex } from './synctex'\nimport { pair } from './pair'\n\nexport const locate = {\n    synctex,\n    pair\n}\n"
  },
  {
    "path": "src/locate/pair.ts",
    "content": "import * as vscode from 'vscode'\n\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../lw'\nimport { argContentToStr } from '../utils/parser'\n\nconst logger = lw.log('EnvPair')\n\nexport const pair = {\n    goto,\n    select,\n    name,\n    close,\n    build\n}\n\nenum PairType { ENVIRONMENT, DISPLAYMATH, INLINEMATH, MACRO}\n\nconst delimiters = [\n    {type: PairType.ENVIRONMENT, start: /\\\\begin\\{([\\w\\d]+\\*?)\\}/, end: /\\\\end\\{([\\w\\d]+\\*?)/},\n    {type: PairType.INLINEMATH, start: /\\\\\\(/, end: /\\\\\\)/},\n    {type: PairType.INLINEMATH, start: /\\$/, end: /\\$/},\n    {type: PairType.DISPLAYMATH, start: /\\\\\\[/, end: /\\\\\\]/},\n    {type: PairType.DISPLAYMATH, start: /\\$\\$/, end: /\\$\\$/},\n    {type: PairType.MACRO, start: /\\\\if\\w*/, end: /\\\\fi/},\n    {type: PairType.MACRO, start: /\\\\if\\w*/, end: /\\\\else/},\n    {type: PairType.MACRO, start: /\\\\else/, end: /\\\\fi/}\n]\n\nclass MacroPair {\n    /** The list of contained pairs */\n    public children: MacroPair[] = []\n    /** The parent of top-level pairs must be undefined */\n    public parent: MacroPair | undefined = undefined\n\n    constructor(\n        public type: PairType,\n        /** The opening string. It contains the leading slash */\n        public start: string,\n        /** The starting position of `start` */\n        public startPosition: vscode.Position,\n        /** The closing string. It contains the leading slash */\n        public end?: string,\n        /** The ending position of `end` */\n        public endPosition?: vscode.Position,\n    ) {}\n\n    /**\n     * Does the start statement contain `pos`\n     */\n    startContains(pos: vscode.Position): boolean {\n        const startRange = new vscode.Range(this.startPosition, this.startPosition.translate(0, this.start.length))\n        return startRange.contains(pos)\n    }\n\n    /**\n     * Does the end statement contain `pos`\n     */\n    endContains(pos: vscode.Position): boolean {\n        if (this.end && this.endPosition) {\n            const endRange = new vscode.Range(this.endPosition, this.endPosition.translate(0, -this.end.length))\n            return endRange.contains(pos)\n        }\n        return false\n    }\n}\n\n/**\n * Builds a tree structure of LaTeX macros and environments in the given\n * document.\n *\n * Parses the LaTeX content in the document and constructs a tree structure of\n * MacroPair objects, representing the macros and environments in the\n * document. The tree is built by iterating through the abstract syntax tree\n * (AST) of the LaTeX content.\n *\n * @param document - The vscode.TextDocument object representing the LaTeX\n * document.\n * @returns Promise<MacroPair[]> - A Promise resolving to an array of\n * MacroPair objects representing the macros and environments in the\n * document.\n */\nasync function build(document: vscode.TextDocument): Promise<MacroPair[]> {\n    const ast = await lw.parser.parse.tex(document.getText())\n    if (!ast) {\n        logger.log('Error parsing current document as AST.')\n        return []\n    }\n\n    const macroPairs: MacroPair[] = []\n    let parentPair: MacroPair | undefined = undefined\n    for (let index = 0; index < ast.content.length; index++) {\n        const node = ast.content[index]\n        const next = index === ast.content.length - 1 ? undefined : ast.content[index + 1]\n        parentPair = buildMacroPairTreeFromNode(document, node, next, parentPair, macroPairs)\n    }\n    return macroPairs\n}\n\n/**\n * Builds a MacroPair object tree from a given AST node.\n *\n * Recursively constructs a MacroPair tree from the provided AST node. It\n * identifies different types of LaTeX elements (environments, display math,\n * inline math, macros) and creates MacroPair objects accordingly.\n *\n * @param doc - The vscode.TextDocument object representing the LaTeX document.\n * @param node - The AST node to process.\n * @param next - The next AST node after the current one.\n * @param parentMacroPair - The parent MacroPair for the current node.\n * @param macros - An array to store the generated MacroPair objects.\n * @returns MacroPair | undefined - The parent MacroPair for the next\n * iteration.\n */\nfunction buildMacroPairTreeFromNode(doc: vscode.TextDocument, node: Ast.Node, next: Ast.Node | undefined, parentMacroPair: MacroPair | undefined, macros: MacroPair[]): MacroPair | undefined {\n    if (node.position === undefined) {\n        return parentMacroPair\n    }\n    if (node.type === 'environment' || node.type === 'mathenv') {\n        // The following is necessary as node.env may be Ast.String, bug in upstream (16.06.23)\n        const envName = argContentToStr([node.env as unknown as Ast.Node]) || node.env\n        let currentMacroPair: MacroPair | undefined\n        // If we encounter `\\begin{document}`, clear macro pairs\n        if (envName === 'document') {\n            macros.length = 0\n            currentMacroPair = undefined\n            parentMacroPair = undefined\n        } else {\n            const beginName = `\\\\begin{${envName}}`\n            const endName = `\\\\end{${envName}}`\n            const beginPos = new vscode.Position(node.position.start.line - 1, node.position.start.column - 1)\n            const endPos = new vscode.Position(node.position.end.line - 1, node.position.end.column - 1)\n            currentMacroPair = new MacroPair(PairType.ENVIRONMENT, beginName, beginPos, endName, endPos)\n            if (parentMacroPair) {\n                currentMacroPair.parent = parentMacroPair\n                parentMacroPair.children.push(currentMacroPair)\n            } else {\n                macros.push(currentMacroPair)\n            }\n            parentMacroPair = currentMacroPair\n        }\n        for (let index = 0; index < node.content.length; index++) {\n            const subnode = node.content[index]\n            const subnext = index === node.content.length - 1 ? undefined : node.content[index + 1]\n            parentMacroPair = buildMacroPairTreeFromNode(doc, subnode, subnext, parentMacroPair, macros)\n        }\n        parentMacroPair = currentMacroPair?.parent\n    } else if (node.type === 'displaymath') {\n        const beginPos = new vscode.Position(node.position.start.line - 1, node.position.start.column - 1)\n        const endPos = new vscode.Position(node.position.end.line - 1, node.position.end.column - 1)\n        if (doc.getText(new vscode.Range(beginPos, beginPos.translate(0, 2))) === '$$') {\n            const currentMacroPair = new MacroPair(PairType.DISPLAYMATH, '$$', beginPos, '$$', endPos)\n            macros.push(currentMacroPair)\n        } else {\n            const currentMacroPair = new MacroPair(PairType.DISPLAYMATH, '\\\\[', beginPos, '\\\\]', endPos)\n            macros.push(currentMacroPair)\n        }\n    } else if (node.type === 'inlinemath') {\n        const beginPos = new vscode.Position(node.position.start.line - 1, node.position.start.column - 1)\n        const endPos = new vscode.Position(node.position.end.line - 1, node.position.end.column - 1)\n        if (doc.getText(new vscode.Range(beginPos, beginPos.translate(0, 1))) === '$') {\n            const currentMacroPair = new MacroPair(PairType.INLINEMATH, '$', beginPos, '$', endPos)\n            macros.push(currentMacroPair)\n        } else {\n            const currentMacroPair = new MacroPair(PairType.INLINEMATH, '\\\\(', beginPos, '\\\\)', endPos)\n            macros.push(currentMacroPair)\n        }\n    } else if (node.type === 'macro') {\n        if (node.content === 'begin' && next?.type === 'group' && next.content[0]?.type === 'string') {\n            // This is an unbalanced environment\n            const beginPos = new vscode.Position(node.position.start.line - 1, node.position.start.column - 1)\n            const envName = next.content[0].content\n            const envTeX = `\\\\begin{${envName}}`\n            const currentMacroPair = new MacroPair(PairType.ENVIRONMENT, envTeX, beginPos)\n            if (parentMacroPair) {\n                currentMacroPair.parent = parentMacroPair\n                parentMacroPair.children.push(currentMacroPair)\n            } else {\n                macros.push(currentMacroPair)\n            }\n            // currentMacroPair becomes the new parent\n            return currentMacroPair\n        }\n        const macroName = '\\\\' + node.content\n        for (const macroPair of delimiters) {\n            if (macroPair.type === PairType.MACRO && macroName.match(macroPair.end) && parentMacroPair && parentMacroPair.start.match(macroPair.start)) {\n                parentMacroPair.end = macroName\n                parentMacroPair.endPosition = new vscode.Position(node.position.end.line - 1, node.position.end.column - 1)\n                parentMacroPair = parentMacroPair.parent\n                // Do not return after finding an 'end' token as it can also be the start of an other pair.\n            }\n        }\n        for (const macroPair of delimiters) {\n            if (macroPair.type === PairType.MACRO && macroName.match(macroPair.start)) {\n                const beginPos = new vscode.Position(node.position.start.line - 1, node.position.start.column - 1)\n                const currentMacroPair = new MacroPair(PairType.MACRO, macroName, beginPos)\n                if (parentMacroPair) {\n                    currentMacroPair.parent = parentMacroPair\n                    parentMacroPair.children.push(currentMacroPair)\n                } else {\n                    macros.push(currentMacroPair)\n                }\n                // currentMacroPair becomes the new parent\n                return currentMacroPair\n            }\n        }\n        // #4063\n        if (node.content === 'item' && node.args) {\n            for (let argIndex = 0; argIndex < node.args.length; argIndex++) {\n                for (let index = 0; index < node.args[argIndex].content.length; index++) {\n                    const subnode = node.args[argIndex].content[index]\n                    const subnext = index === node.args[argIndex].content.length - 1 ? undefined : node.args[argIndex].content[index + 1]\n                    parentMacroPair = buildMacroPairTreeFromNode(doc, subnode, subnext, parentMacroPair, macros)\n                }\n            }\n        }\n    } else if (node.type === 'group') {\n        for (let index = 0; index < node.content.length; index++) {\n            const subnode = node.content[index]\n            const subnext = index === node.content.length - 1 ? undefined : node.content[index + 1]\n            parentMacroPair = buildMacroPairTreeFromNode(doc, subnode, subnext, parentMacroPair, macros)\n        }\n    }\n    return parentMacroPair\n}\n\n\n/**\n * Locates all pairs surrounding the given position in the document.\n *\n * Builds the macro pair tree for the document and then walks through it to\n * find all macro pairs that contain the specified position. Returns an array\n * of MacroPair objects.\n *\n * @param pos - The starting position (e.g., cursor position).\n * @param doc - The document in which the search is performed.\n * @returns Promise<MacroPair[]> - A Promise resolving to an array of\n * MacroPair objects surrounding the specified position.\n */\nasync function locateSurroundingPair(pos: vscode.Position, doc: vscode.TextDocument): Promise<MacroPair[]> {\n    return walkThruForSurroundingPairs(pos, await build(doc))\n}\n\n/**\n * Walks through the macro pair tree to find all pairs surrounding the current\n * position.\n *\n * Recursively walks through the macro pair tree to find all MacroPair\n * objects that contain the specified position. Returns an array of MacroPair\n * objects.\n *\n * @param pos - The current cursor position.\n * @param macroPairTree - The array of MacroPair objects representing the\n * entire tree.\n * @returns MacroPair[] - An array of MacroPair objects surrounding the\n * specified position.\n */\nfunction walkThruForSurroundingPairs(pos: vscode.Position, macroPairTree: MacroPair[]): MacroPair[] {\n    const surroundingPairs: MacroPair[] = []\n    for (const macroPair of macroPairTree) {\n        if (macroPair.startPosition.isBeforeOrEqual(pos)) {\n            if (!macroPair.endPosition || macroPair.endPosition.isAfter(pos)) {\n                surroundingPairs.push(macroPair)\n                if (macroPair.children) {\n                    surroundingPairs.push(...walkThruForSurroundingPairs(pos, macroPair.children))\n                }\n            }\n        }\n    }\n    return surroundingPairs\n}\n\n/**\n * Walks through the macro pair tree to find all pairs at the same depth as\n * the pair containing the specified position.\n *\n * Builds the macro pair tree for the document and then walks through it to\n * find all macro pairs that share the same depth as the pair containing the\n * specified position. Returns an array of MacroPair objects.\n *\n * @param pos - The current cursor position.\n * @param doc - The current document.\n * @returns Promise<MacroPair[]> - A Promise resolving to an array of\n * MacroPair objects at the same depth as the pair containing the specified\n * position.\n */\nasync function locatePairsAtDepth(pos: vscode.Position, doc: vscode.TextDocument): Promise<MacroPair[]> {\n    return walkThruForPairsNextToPosition(pos, await build(doc))\n}\n\n/**\n * Walks through the macro pair tree to find all pairs at the same depth as\n * the pair containing the specified position.\n *\n * Recursively walks through the macro pair tree to find all MacroPair\n * objects at the same depth as the pair containing the specified position.\n * Returns an array of MacroPair objects.\n *\n * @param pos - The current cursor position.\n * @param macroPairTree - The array of MacroPair objects representing the\n * entire tree.\n * @returns MacroPair[] - An array of MacroPair objects at the same depth as\n * the specified position.\n */\nfunction walkThruForPairsNextToPosition(pos: vscode.Position, macroPairTree: MacroPair[]): MacroPair[] {\n    const pairsAtPosition: MacroPair[] = []\n    if (macroPairTree.some((macroPair: MacroPair) => macroPair.startContains(pos) || macroPair.endContains(pos))) {\n        return macroPairTree\n    }\n\n    for (const macroPair of macroPairTree) {\n        if (macroPair.startPosition.isBefore(pos)) {\n            if (!macroPair.endPosition || macroPair.endPosition.isAfter(pos)) {\n                if (macroPair.children) {\n                    pairsAtPosition.push(...walkThruForPairsNextToPosition(pos, macroPair.children))\n                }\n            }\n        }\n    }\n    return pairsAtPosition\n}\n\n/**\n *  Navigates to the matching end statement or the opening statement of the\n * first pair in a contiguous chain.\n *\n * If the cursor is on an opening statement, it moves to the matching end\n * statement. If the cursor is on an end statement, it moves to the opening\n * statement of the first pair making a contiguous chain of pairs up to the\n * current position.\n *\n * Consider the following LaTeX content\n *\n *  \\ifpoo\n *      ....\n *  \\else\n *      ...\n *  \\fi\n *\n * Calling this function yields the following move \\ifpoo -> \\else \\else -> \\fi\n *  \\fi -> \\ifpoo\n */\nasync function goto() {\n    const editor = vscode.window.activeTextEditor\n    if (!editor || editor.document.languageId !== 'latex') {\n        return\n    }\n    const curPos = editor.selection.active\n    const document = editor.document\n\n    const macroPairs = (await locatePairsAtDepth(curPos, document))\n    // First, test if we are an opening statement.\n    for (const macroPair of macroPairs) {\n        if (macroPair.startContains(curPos) && macroPair.endPosition && macroPair.end) {\n            const endStartPosition = macroPair.endPosition.translate(0, -macroPair.end.length)\n            editor.selection = new vscode.Selection(endStartPosition, endStartPosition)\n            return\n        }\n    }\n\n    // Second, if we are not on an opening statement, test if we are on a closing one.\n    for (const [index, macroPair] of macroPairs.entries()) {\n        if (macroPair.endContains(curPos)) {\n            editor.selection = new vscode.Selection(macroPair.startPosition, macroPair.startPosition)\n            const contiguousPairs = [macroPair]\n            let currentPos: vscode.Position = macroPair.startPosition\n            // Locate the chain of contiguous pairs up to here\n            for (const previousPair of macroPairs.slice(undefined, index).reverse()) {\n                if (previousPair.endContains(currentPos)) {\n                    currentPos = previousPair.startPosition\n                    contiguousPairs.push(previousPair)\n                } else {\n                    break\n                }\n            }\n            const firstPair = contiguousPairs.pop() as MacroPair\n            editor.selection = new vscode.Selection(firstPair.startPosition, firstPair.startPosition )\n            return\n        }\n    }\n}\n\n/**\n * Selects or adds a multi-cursor to an environment name.\n *\n * Toggles between `\\[...\\]` and `\\begin{$text}...\\end{$text}`, where `$text` is\n * `''` if `action = cursor` and `'equation*'` otherwise.\n * - If `action = 'selection'`, the environment name is selected in both the\n *   begin and end parts.\n * - If `action = 'cursor'`, a multi-cursor is added at the beginning of the\n *   environment name in both the begin and end parts.\n * - If `action = 'equationToggle'`, it toggles between `\\[...\\]` and\n *   `\\begin{}...\\end{}` without moving the selection.\n */\nasync function name(action: 'selection'|'cursor'|'equationToggle') {\n    const editor = vscode.window.activeTextEditor\n    if (!editor || editor.document.languageId !== 'latex') {\n        return\n    }\n    let startingPos = editor.selection.active\n    const document = editor.document\n\n    // Only keep display math and environments\n    const matchedPairs = (await locateSurroundingPair(startingPos, document)).filter((macroPair: MacroPair) => {\n        return macroPair.end && macroPair.endPosition && [PairType.DISPLAYMATH, PairType.ENVIRONMENT].includes(macroPair.type)\n    })\n    const matchedPair = matchedPairs.at(-1)\n    if (!matchedPair?.end || !matchedPair?.endPosition) {\n        logger.log('No matched macro pair found in envNameAction')\n        return\n    }\n\n    const beginEnvStartPos = matchedPair.startPosition.translate(0, '\\\\begin{'.length)\n    let endEnvStartPos = matchedPair.endPosition.translate(0, -matchedPair.end.length + '\\\\end{'.length)\n\n    const edit = new vscode.WorkspaceEdit()\n    let envNameLength: number\n    if (matchedPair.type === PairType.DISPLAYMATH) {\n        const eqText = action === 'cursor' ? '' : 'equation*'\n        const beginRange = new vscode.Range(matchedPair.startPosition, matchedPair.startPosition.translate(0, 2)) // 2 = '\\\\['.length\n        const endRange = new vscode.Range(matchedPair.endPosition.translate(0, -2), matchedPair.endPosition) // 2 = '\\\\]'.length\n        envNameLength = eqText.length\n        edit.replace(document.uri, endRange, `\\\\end{${eqText}}`)\n        edit.replace(document.uri, beginRange, `\\\\begin{${eqText}}`)\n        const diff = 'begin{}'.length + envNameLength - '['.length\n        if (startingPos.line === matchedPair.startPosition.line) {\n            startingPos = startingPos.translate(0, diff)\n        }\n        if (matchedPair.startPosition.line === matchedPair.endPosition.line) {\n            endEnvStartPos = endEnvStartPos.translate(0, diff)\n        }\n    } else if (matchedPair.type === PairType.ENVIRONMENT) {\n        if (action === 'equationToggle') {\n            const beginRange = new vscode.Range(matchedPair.startPosition, matchedPair.startPosition.translate(0, matchedPair.start.length))\n            const endRange = new vscode.Range(matchedPair.endPosition.translate(0, -matchedPair.end.length), matchedPair.endPosition)\n            edit.replace(document.uri, endRange, '\\\\]')\n            edit.replace(document.uri, beginRange, '\\\\[')\n            if (startingPos.line === matchedPair.startPosition.line) {\n                const diff = Math.max('['.length - matchedPair.start.length, -startingPos.character)\n                startingPos = startingPos.translate(0, diff)\n            }\n        } else {\n            envNameLength = matchedPair.start.length - '\\\\begin{}'.length\n        }\n    } else {\n        // Bad match\n        return\n    }\n\n    void vscode.workspace.applyEdit(edit).then(success => {\n        if (success || edit.size === 0) {\n            switch (action) {\n                case 'cursor':\n                    editor.selections = [new vscode.Selection(beginEnvStartPos, beginEnvStartPos), new vscode.Selection(endEnvStartPos, endEnvStartPos)]\n                    break\n                case 'selection': {\n                    const beginEnvStopPos = beginEnvStartPos.translate(0, envNameLength)\n                    const endEnvStopPos = endEnvStartPos.translate(0, envNameLength)\n                    editor.selections = [new vscode.Selection(beginEnvStartPos, beginEnvStopPos), new vscode.Selection(endEnvStartPos, endEnvStopPos)]\n                    break\n                }\n                case 'equationToggle':\n                    editor.selection = new vscode.Selection(startingPos, startingPos)\n                    break\n                default:\n                    logger.log('Error while selecting environment name')\n            }\n        }\n    })\n}\n\n/**\n * Selects the content or the whole of the current environment.\n *\n * Depending on the `mode` parameter, selects either the content or the whole\n * current environment.\n * - If `mode = 'content'`, selects the content of the environment.\n * - If `mode = 'whole'`, selects the whole environment.\n */\nasync function select(mode: 'content' | 'whole') {\n    const editor = vscode.window.activeTextEditor\n    if (!editor || editor.document.languageId !== 'latex') {\n        return\n    }\n    const startingPos = editor.selection.active\n    const document = editor.document\n\n    const matchedMacroPairs = await locateSurroundingPair(startingPos, document)\n    for (const macroPair of matchedMacroPairs.reverse()) {\n        if (macroPair.endPosition && macroPair.end) {\n            let startEnvPos: vscode.Position\n            let endEnvPos: vscode.Position\n            if (mode === 'content') {\n                startEnvPos = macroPair.startPosition.translate(0, macroPair.start.length)\n                endEnvPos = macroPair.endPosition.translate(0, -macroPair.end.length)\n            } else if (mode === 'whole') {\n                startEnvPos = macroPair.startPosition\n                endEnvPos = macroPair.endPosition\n            } else {\n                return\n            }\n            editor.selections = [new vscode.Selection(startEnvPos, endEnvPos)]\n            if (editor.selections[0].contains(startingPos)) {\n                return\n            }\n        }\n    }\n}\n\n/**\n * Closes the current environment by inserting the corresponding end statement.\n *\n * Inserts the corresponding end statement at the cursor position. If both the\n * `\\begin` and the current position are preceded by whitespace only in their\n * respective lines, it mimics the exact kind of indentation of `\\begin` when\n * inserting `\\end`.\n */\nasync function close() {\n    const editor = vscode.window.activeTextEditor\n    if (!editor || editor.document.languageId !== 'latex') {\n        return\n    }\n    const cursorPos = editor.selection.active\n    const document = editor.document\n\n    const matchedPairs = (await locateSurroundingPair(cursorPos, document)).filter((macroPair: MacroPair) => { return !macroPair.endPosition})\n\n    const matchedPair = matchedPairs.at(-1)\n    if (!matchedPair) {\n        logger.log('No matched macro pair found in envNameAction')\n        return\n    }\n\n    const beginStartOfLine = matchedPair.startPosition.with(undefined, 0)\n    const beginIndentRange = new vscode.Range(beginStartOfLine, matchedPair.startPosition)\n    const beginIndent = editor.document.getText(beginIndentRange)\n    const endStartOfLine = cursorPos.with(undefined, 0)\n    const endIndentRange = new vscode.Range(endStartOfLine, cursorPos)\n    const endIndent = editor.document.getText(endIndentRange)\n    // If both \\begin and the current position are preceded by\n    // whitespace only in their respective lines, we mimic the exact\n    // kind of indentation of \\begin when inserting \\end.\n    const endEnv = matchedPair.start.replace('\\\\begin', '\\\\end')\n    if (/^\\s*$/.test(beginIndent) && /^\\s*$/.test(endIndent)) {\n        return editor.edit(editBuilder => {\n            editBuilder.replace(new vscode.Range(endStartOfLine, cursorPos), beginIndent + endEnv)\n        })\n    } else {\n        return editor.edit(editBuilder => { editBuilder.insert(cursorPos, endEnv) })\n    }\n}\n"
  },
  {
    "path": "src/locate/synctex/synctexjs.ts",
    "content": "/*\n\nMIT License\n\nCopyright (c) 2018 Thomas Durieux\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nhttps://github.com/tdurieux/synctex-js\n\nhttps://durieux.me/synctex-js/\n\n*/\n\nexport type Block = {\n  type: string,\n  parent: Block | Page,\n  fileNumber: number,\n  file: InputFile,\n  line: number,\n  left: number,\n  bottom: number,\n  width: number | undefined,\n  height: number,\n  depth?: number,\n  blocks?: Block[],\n  elements?: Block[],\n  page: number\n}\n\nfunction isBlock(b: Block | Page): b is Block {\n  return (b as Block).parent !== undefined\n}\n\ntype InputFile = {\n  path: string\n}\n\ntype InputFiles = { [fileNumber: string]: InputFile }\n\ntype Page = {\n  page: number,\n  blocks: Block[],\n  type: string\n}\n\ntype Pages = { [pageNum: string]: Page }\n\ntype BlockNumberLine = {\n  [inputFileFullPath: string]: {\n    [inputLineNum: number]: {\n      [pageNum: number]: Block[]\n    }\n  }\n}\n\nexport type PdfSyncObject = {\n  offset: {\n      x: number,\n      y: number\n  },\n  version: string,\n  files: InputFiles,\n  pages: Pages,\n  blockNumberLine: BlockNumberLine,\n  hBlocks: Block[],\n  numberPages: number\n}\n\nexport function parseSyncTex(pdfsyncBody: string): PdfSyncObject | undefined {\n  const unit = 65781.76\n  let numberPages = 0\n  let currentPage: Page | undefined\n  let currentElement: Block | Page | undefined\n\n  const blockNumberLine = Object.create(null) as BlockNumberLine\n  const hBlocks: Block[] = []\n\n  const files = Object.create(null) as InputFiles\n  const pages = Object.create(null) as Pages\n  const pdfsyncObject: PdfSyncObject = {\n    offset: {\n      x: 0,\n      y: 0\n    },\n    version: '',\n    files: Object.create(null) as InputFiles,\n    pages: Object.create(null) as Pages,\n    blockNumberLine: Object.create(null) as BlockNumberLine,\n    hBlocks: [],\n    numberPages: 0\n  }\n\n  if (pdfsyncBody === undefined) {\n    return pdfsyncObject\n  }\n  const lineArray = pdfsyncBody.split('\\n')\n\n  pdfsyncObject.version = lineArray[0].replace('SyncTeX Version:', '')\n\n  const inputPattern = /Input:([0-9]+):(.+)/\n  const offsetPattern = /(X|Y) Offset:([0-9]+)/\n  const openPagePattern = /\\{([0-9]+)$/\n  const closePagePattern = /\\}([0-9]+)$/\n  const verticalBlockPattern = /\\[([0-9]+),([0-9]+):(-?[0-9]+),(-?[0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)/\n  const closeverticalBlockPattern = /\\]$/\n  const horizontalBlockPattern = /\\(([0-9]+),([0-9]+):(-?[0-9]+),(-?[0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)/\n  const closehorizontalBlockPattern = /\\)$/\n  const elementBlockPattern = /(.)([0-9]+),([0-9]+):(-?[0-9]+),(-?[0-9]+)(:?(-?[0-9]+))?/\n\n  for (let i = 1; i < lineArray.length; i++) {\n    const line = lineArray[i]\n\n    //input files\n    let match = line.match(inputPattern)\n    if (match) {\n      files[match[1]] = {\n        path: match[2],\n      }\n      continue\n    }\n\n    //offset\n    match = line.match(offsetPattern)\n    if (match) {\n      if (match[1].toLowerCase() === 'x') {\n        pdfsyncObject.offset.x = parseInt(match[2]) / unit\n      } else if (match[1].toLowerCase() === 'y') {\n        pdfsyncObject.offset.y = parseInt(match[2]) / unit\n      } else {\n        // Never occur. match[1] is equal to 'X' or 'Y'.\n        return undefined\n      }\n      continue\n    }\n\n    //new page\n    match = line.match(openPagePattern)\n    if (match) {\n      currentPage = {\n        page: parseInt(match[1]),\n        blocks: [],\n        type: 'page'\n      }\n      if (currentPage.page > numberPages) {\n        numberPages = currentPage.page\n      }\n      currentElement = currentPage\n      continue\n    }\n\n    // close page\n    match = line.match(closePagePattern)\n    if (match && currentPage !== undefined) {\n      pages[match[1]] = currentPage\n      currentPage = undefined\n      continue\n    }\n\n    // new V block\n    match = line.match(verticalBlockPattern)\n    if (match) {\n      if (currentPage === undefined || currentElement === undefined) {\n        console.log(`Error: parse error at line ${i}. Any new V block is not allowed here.`)\n        continue\n      }\n      const s1 = [Number(match[3]) / unit, Number(match[4]) / unit]\n      const s2 = [Number(match[5]) / unit, Number(match[6]) / unit]\n      const block: Block = {\n        type: 'vertical',\n        parent: currentElement,\n        fileNumber: parseInt(match[1]),\n        file: files[match[1]],\n        line: parseInt(match[2]),\n        left: s1[0],\n        bottom: s1[1],\n        width: s2[0],\n        height: s2[1],\n        depth: parseInt(match[7]),\n        blocks: [],\n        elements: [],\n        page: currentPage.page\n      }\n      currentElement = block\n      continue\n    }\n\n    // close V block\n    match = line.match(closeverticalBlockPattern)\n    if (match) {\n      if (currentElement !== undefined && isBlock(currentElement) && isBlock(currentElement.parent) && currentElement.parent.blocks !== undefined) {\n        currentElement.parent.blocks.push(currentElement)\n        currentElement = currentElement.parent\n      }\n      continue\n    }\n\n    // new H block\n    match = line.match(horizontalBlockPattern)\n    if (match) {\n      if (currentPage === undefined || currentElement === undefined) {\n        console.log(`Error: parse error at line ${i}. Any new H block is not allowed here.`)\n        continue\n      }\n      const s1 = [Number(match[3]) / unit, Number(match[4]) / unit]\n      const s2 = [Number(match[5]) / unit, Number(match[6]) / unit]\n      const block: Block = {\n        type: 'horizontal',\n        parent: currentElement,\n        fileNumber: parseInt(match[1]),\n        file: files[match[1]],\n        line: parseInt(match[2]),\n        left: s1[0],\n        bottom: s1[1],\n        width: s2[0],\n        height: s2[1],\n        blocks: [],\n        elements: [],\n        page: currentPage.page\n      }\n      hBlocks.push(block)\n      currentElement = block\n      continue\n    }\n\n    // close H block\n    match = line.match(closehorizontalBlockPattern)\n    if (match) {\n      if (currentElement !== undefined && isBlock(currentElement) && isBlock(currentElement.parent) && currentElement.parent.blocks !== undefined) {\n        currentElement.parent.blocks.push(currentElement)\n        currentElement = currentElement.parent\n      }\n      continue\n    }\n\n    // new element\n    match = line.match(elementBlockPattern)\n    if (match) {\n      if (currentPage === undefined || currentElement === undefined || !isBlock(currentElement)) {\n        console.log(`Error: parse error at line ${i}. Any new element is not allowed here.`)\n        continue\n      }\n      const type = match[1]\n      const fileNumber = parseInt(match[2])\n      const lineNumber = parseInt(match[3])\n      const left = Number(match[4]) / unit\n      const bottom = Number(match[5]) / unit\n      const width = (match[7]) ? Number(match[7]) / unit : undefined\n\n      const elem: Block = {\n        type,\n        parent: currentElement,\n        fileNumber,\n        file: files[fileNumber],\n        line: lineNumber,\n        left,\n        bottom,\n        height: currentElement.height,\n        width,\n        page: currentPage.page\n      }\n      if (elem.file === undefined) {\n        continue\n      }\n      if (blockNumberLine[elem.file.path] === undefined) {\n        blockNumberLine[elem.file.path] = Object.create(null) as { [inputLineNum: number]: { [pageNum: number]: Block[] } }\n      }\n      if (blockNumberLine[elem.file.path][lineNumber] === undefined) {\n        blockNumberLine[elem.file.path][lineNumber] = Object.create(null) as { [pageNum: number]: Block[] }\n      }\n      if (blockNumberLine[elem.file.path][lineNumber][elem.page] === undefined) {\n        blockNumberLine[elem.file.path][lineNumber][elem.page] = []\n      }\n      blockNumberLine[elem.file.path][lineNumber][elem.page].push(elem)\n      if (currentElement.elements !== undefined) {\n        currentElement.elements.push(elem)\n      }\n      continue\n    }\n  }\n  pdfsyncObject.files = files\n  pdfsyncObject.pages = pages\n  pdfsyncObject.blockNumberLine = blockNumberLine\n  pdfsyncObject.hBlocks = hBlocks\n  pdfsyncObject.numberPages = numberPages\n  return pdfsyncObject\n}\n"
  },
  {
    "path": "src/locate/synctex/worker.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as iconv from 'iconv-lite'\nimport * as path from 'path'\nimport * as zlib from 'zlib'\nimport { lw } from '../../lw'\nimport type { SyncTeXRecordToPDF, SyncTeXRecordToTeX } from '../../types'\nimport { PdfSyncObject, parseSyncTex, Block } from './synctexjs'\nimport { iconvLiteSupportedEncodings } from '../../utils/convertfilename'\nimport { isSameRealPath } from '../../utils/pathnormalize'\n\nconst logger = lw.log('SyncTeX')\n\nexport {\n    syncTeXToPDF,\n    syncTeXToTeX\n}\n\nclass Rectangle {\n    readonly top: number\n    readonly bottom: number\n    readonly left: number\n    readonly right: number\n\n    constructor( {top, bottom, left, right}: { top: number, bottom: number, left: number, right: number} ) {\n        this.top = top\n        this.bottom = bottom\n        this.left = left\n        this.right = right\n    }\n\n    include(rect: Rectangle): boolean {\n        return this.left <= rect.left && this.right >= rect.right && this.bottom >= rect.bottom && this.top <= rect.top\n    }\n\n    distanceY(y: number): number {\n        return Math.min( Math.abs(this.bottom - y), Math.abs(this.top - y) )\n    }\n\n    distanceXY(x: number, y: number): number {\n        return Math.sqrt(Math.pow(Math.min( Math.abs(this.bottom - y), Math.abs(this.top - y) ), 2) + Math.pow(Math.min( Math.abs(this.left - x), Math.abs(this.right - x) ), 2))\n    }\n\n    distanceFromCenter(x: number, y: number): number {\n        return Math.sqrt(Math.pow((this.left + this.right) / 2 - x, 2) + Math.pow((this.bottom + this.top) / 2 - y, 2))\n    }\n}\n\nfunction getBlocks(linePageBlocks: { [inputLineNum: number]: { [pageNum: number]: Block[] } }, lineNum: number ): Block[] {\n    const pageBlocks = linePageBlocks[lineNum]\n    const pageNums = Object.keys(pageBlocks)\n    if (pageNums.length === 0) {\n        logger.log('No page number found.')\n        return []\n    }\n    const page = pageNums[0]\n    return pageBlocks[Number(page)]\n}\n\nfunction toRect(blocks: Block): Rectangle\nfunction toRect(blocks: Block[]): Rectangle\nfunction toRect(blocks: any): Rectangle {\n    if (!Array.isArray(blocks)) {\n        const block = blocks as Block\n        const top = block.bottom - block.height\n        const bottom = block.bottom\n        const left = block.left\n        const right = block.width ? block.left + block.width : block.left\n        return new Rectangle({top, bottom, left, right})\n    } else {\n        let cTop = 2e16\n        let cBottom = 0\n        let cLeft = 2e16\n        let cRight = 0\n\n        for (const b of blocks as Block[]) {\n            // Skip a block if they have boxes inside, or their type is kern or rule.\n            // See also https://github.com/jlaurens/synctex/blob/2017/synctex_parser.c#L4655 for types.\n            if (b.elements !== undefined || b.type === 'k' || b.type === 'r') {\n                continue\n            }\n            cBottom = Math.max(b.bottom, cBottom)\n            const top = b.bottom - b.height\n            cTop = Math.min(top, cTop)\n            cLeft = Math.min(b.left, cLeft)\n            if (b.width !== undefined) {\n                const right = b.left + b.width\n                cRight = Math.max(right, cRight)\n            }\n        }\n        return new Rectangle({ top: cTop, bottom: cBottom, left: cLeft, right: cRight })\n    }\n}\n\nasync function parseSyncTexForPdf(pdfUri: vscode.Uri): Promise<PdfSyncObject | undefined> {\n    const synctexPath = pdfUri.path.slice(0, -path.extname(pdfUri.path).length) + '.synctex'\n    const synctexUri = pdfUri.with({ path: synctexPath })\n    const synctexUriGz = synctexUri.with({ path: synctexUri.path + '.gz' })\n\n    if (await lw.file.exists(synctexUri)) {\n        await vscode.workspace.fs.stat(synctexUri)\n        try {\n            logger.log(`Parsing .synctex ${synctexUri.toString(true)} .`)\n            const s = await lw.file.read(synctexUri)\n            return parseSyncTex(s ?? '')\n        } catch (e: unknown) {\n            logger.logError(`Failed parsing .synctex ${synctexUri.toString(true)}:`, e)\n        }\n    } else if (await lw.file.exists(synctexUriGz)) {\n        try {\n            logger.log(`Parsing .synctex.gz ${synctexUriGz.toString(true)} .`)\n            const data = await vscode.workspace.fs.readFile(synctexUriGz)\n            const b = zlib.gunzipSync(data)\n            const s = b.toString('binary')\n            return parseSyncTex(s)\n        } catch (e: unknown) {\n            logger.logError(`Failed parsing .synctex.gz ${synctexUriGz.toString(true)}:`, e)\n        }\n    }\n    logger.log(`${synctexUri.toString(true)}, ${synctexUriGz.toString(true)} not found.`)\n    return undefined\n}\n\nfunction findInputFilePathForward(filePath: string, pdfSyncObject: PdfSyncObject): string | undefined {\n    for (const inputFilePath in pdfSyncObject.blockNumberLine) {\n        try {\n            if (isSameRealPath(inputFilePath, filePath)) {\n                return inputFilePath\n            }\n        } catch { }\n    }\n    for (const inputFilePath in pdfSyncObject.blockNumberLine) {\n        for (const enc of iconvLiteSupportedEncodings) {\n            let convertedInputFilePath = ''\n            try {\n                convertedInputFilePath = iconv.decode(Buffer.from(inputFilePath, 'binary'), enc)\n                if (isSameRealPath(convertedInputFilePath, filePath)) {\n                    return inputFilePath\n                }\n            } catch { }\n        }\n    }\n    return\n}\n\nasync function syncTeXToPDF(line: number, filePath: string, pdfUri: vscode.Uri): Promise<SyncTeXRecordToPDF | undefined> {\n    const pdfSyncObject = await parseSyncTexForPdf(pdfUri)\n    if (!pdfSyncObject) {\n        return undefined\n    }\n    const inputFilePath = findInputFilePathForward(filePath, pdfSyncObject)\n    if (inputFilePath === undefined) {\n        logger.log('No relevant entries found.')\n        return undefined\n    }\n\n    const linePageBlocks = pdfSyncObject.blockNumberLine[inputFilePath]\n    const lineNums = Object.keys(linePageBlocks).map(x => Number(x)).sort( (a, b) => { return (a - b) } )\n    const i = lineNums.findIndex( x => x >= line )\n    if (i === 0 || lineNums[i] === line) {\n        const l = lineNums[i]\n        const blocks = getBlocks(linePageBlocks, l)\n        const c = toRect(blocks)\n        return { page: blocks[0].page, x: c.left + pdfSyncObject.offset.x, y: c.bottom + pdfSyncObject.offset.y, indicator: true }\n    }\n    const line0 = lineNums[i - 1]\n    const blocks0 = getBlocks(linePageBlocks, line0)\n    const c0 = toRect(blocks0)\n    const line1 = lineNums[i]\n    const blocks1 = getBlocks(linePageBlocks, line1)\n    const c1 = toRect(blocks1)\n    let bottom: number\n    if (c0.bottom < c1.bottom) {\n        bottom = c0.bottom * (line1 - line) / (line1 - line0) + c1.bottom * (line - line0) / (line1 - line0)\n    } else {\n        bottom = c1.bottom\n    }\n    return { page: blocks1[0].page, x: c1.left + pdfSyncObject.offset.x, y: bottom + pdfSyncObject.offset.y, indicator: true }\n}\n\nasync function syncTeXToTeX(page: number, x: number, y: number, pdfUri: vscode.Uri): Promise<SyncTeXRecordToTeX | undefined> {\n    const pdfSyncObject = await parseSyncTexForPdf(pdfUri)\n    if (!pdfSyncObject) {\n        return undefined\n    }\n    const y0 = y - pdfSyncObject.offset.y\n    const x0 = x - pdfSyncObject.offset.x\n    const fileNames = Object.keys(pdfSyncObject.blockNumberLine)\n\n    if (fileNames.length === 0) {\n        logger.log('No relevant entries found.')\n        return undefined\n    }\n\n    const record = {\n        input: '',\n        line: 0,\n        distanceXY: 2e16,\n        distanceFromCenter: 2e16,\n        rect: new Rectangle({top: 0, bottom: 2e16, left: 0, right: 2e16})\n    }\n\n    for (const fileName of fileNames) {\n        const linePageBlocks = pdfSyncObject.blockNumberLine[fileName]\n        for (const lineNum in linePageBlocks) {\n            const pageBlocks = linePageBlocks[Number(lineNum)]\n            for (const pageNum in pageBlocks) {\n                if (page !== Number(pageNum)) {\n                    continue\n                }\n                const blocks = pageBlocks[Number(pageNum)]\n                for (const block of blocks) {\n                    // Skip a block if they have boxes inside, or their type is kern or rule.\n                    // See also https://github.com/jlaurens/synctex/blob/c11fe00dbdc6423a0e54d4e531563be645f78679/synctex_parser.c#L4706-L4727 for types.\n                    if (block.elements !== undefined || block.type === 'k' || block.type === 'r') {\n                        continue\n                    }\n                    const rect = toRect(block)\n                    const distFromCenter = rect.distanceFromCenter(x0, y0)\n                    if ( record.rect.include(rect) || (distFromCenter < record.distanceFromCenter && !rect.include(record.rect)) ) {\n                        record.input = fileName\n                        record.line = Number(lineNum)\n                        record.distanceFromCenter = distFromCenter\n                        record.rect = rect\n                    }\n                }\n            }\n        }\n    }\n\n    if (record.input === '') {\n        logger.log('Cannot find any line to jump to.')\n        return undefined\n    }\n\n    const input = convInputFilePath(record.input)\n    return input ? { input, line: record.line, column: 0 } : undefined\n}\n\nfunction convInputFilePath(inputFilePath: string): string | undefined {\n    if (fs.existsSync(inputFilePath)) {\n        return inputFilePath\n    }\n    for (const enc of iconvLiteSupportedEncodings) {\n        try {\n            const s = iconv.decode(Buffer.from(inputFilePath, 'binary'), enc)\n            if (fs.existsSync(s)) {\n                return s\n            }\n        } catch {}\n    }\n\n    logger.log(`Non-existent file to jump to ${inputFilePath} .`)\n    return undefined\n}\n"
  },
  {
    "path": "src/locate/synctex.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as cs from 'cross-spawn'\nimport { lw } from '../lw'\nimport type { SyncTeXRecordToPDF, SyncTeXRecordToPDFAll, SyncTeXRecordToTeX } from '../types'\nimport { syncTeXToPDF, syncTeXToTeX } from './synctex/worker'\nimport { replaceArgumentPlaceholders } from '../utils/utils'\nimport { isSameRealPath } from '../utils/pathnormalize'\nimport type { ClientRequest } from '../../types/latex-workshop-protocol-types'\n\nconst logger = lw.log('Locator')\n\nexport const synctex = {\n    toPDF,\n    toPDFFromRef,\n    toTeX,\n    components: {\n        synctexToPDFCombined,\n        computeToTeX,\n        openTeX,\n        getCurrentEditorCoordinates\n    }\n}\n\n/**\n * Parse the result of SyncTeX forward to PDF.\n *\n * This function takes the result of SyncTeX forward to PDF as a string and\n * parses it to extract page number, x-coordinate, y-coordinate, and whether the\n * red indicator should be shown in the viewer.\n *\n * @param result - The result string of SyncTeX forward to PDF.\n * @returns A SyncTeXRecordToPDF object containing page number, x-coordinate,\n * y-coordinate, and an indicator.\n * @throws Error if there is a parsing error.\n */\nfunction parseToPDF(result: string): SyncTeXRecordToPDF {\n    const record = Object.create(null) as { page?: number, x?: number, y?: number }\n    let started = false\n    for (const line of result.split('\\n')) {\n        if (line.includes('SyncTeX result begin')) {\n            started = true\n            continue\n        }\n        if (line.includes('SyncTeX result end')) {\n            break\n        }\n        if (!started) {\n            continue\n        }\n        const pos = line.indexOf(':')\n        if (pos < 0) {\n            continue\n        }\n        const key = line.substring(0, pos).toLowerCase()\n        if (key !== 'page' && key !== 'x' && key !== 'y' ) {\n            continue\n        }\n        const value = line.substring(pos + 1)\n        record[key] = Number(value)\n    }\n    if (record.page !== undefined && record.x !== undefined && record.y !== undefined) {\n        return { page: record.page, x: record.x, y: record.y, indicator: true }\n    } else {\n        throw(new Error('parse error when parsing the result of synctex forward.'))\n    }\n}\n\n/**\n * Parse the result of SyncTeX forward to PDF with a list.\n *\n * This function takes the result of SyncTeX forward to PDF as a string and\n * parses it to extract page number, x-coordinate, y-coordinate, box-based\n * coordinates (h, v, H, W), and whether the red indicator should be shown in\n * the viewer.\n *\n * @param result - The result string of SyncTeX forward to PDF.\n * @returns A SyncTeXRecordToPDFAllList object containing a list of records,\n * with each record containing page number, x-coordinate, y-coordinate,\n * h-coordinate, v-coordinate, H-coordinate, W-coordinate, and an indicator.\n * @throws Error if there is a parsing error.\n */\nfunction parseToPDFList(result: string): SyncTeXRecordToPDFAll[] {\n    const records: SyncTeXRecordToPDFAll[] = []\n    let started = false\n    let recordIndex = -1\n\n    for (const line of result.split('\\n')) {\n        if (line.includes('SyncTeX result begin')) {\n            started = true\n            continue\n        }\n\n        if (line.includes('SyncTeX result end')) {\n            break\n        }\n\n        if (!started) {\n            continue\n        }\n\n        const pos = line.indexOf(':')\n        if (pos < 0) {\n            continue\n        }\n\n        const key = line.substring(0, pos)\n        const value = line.substring(pos + 1).trim()\n\n        if (key === 'Output') {\n            recordIndex += 1\n            const record: SyncTeXRecordToPDFAll = { page: 0, x: 0, y: 0, h: 0, v: 0, W: 0, H: 0, indicator: true }\n            records[recordIndex] = record\n        }\n\n        if (key === 'Page' || key === 'h' || key === 'v' || key === 'W' || key === 'H' || key === 'x' || key === 'y') {\n            const record = records[recordIndex]\n            if (record) {\n                if (key === 'Page') {\n                    record['page'] = Number(value)\n                } else {\n                    record[key] = Number(value)\n                }\n            }\n        }\n    }\n\n    if (recordIndex !== -1) {\n        return records\n    } else {\n        throw(new Error('parse error when parsing the result of synctex forward.'))\n    }\n}\n\n/**\n * Parse the result of SyncTeX backward to TeX.\n *\n * This function takes the result of SyncTeX backward to TeX as a string and\n * parses it to extract input file, line number, and column number.\n *\n * @param result - The result string of SyncTeX backward to TeX.\n * @returns A SyncTeXRecordToTeX object containing input file, line number, and\n * column number.\n * @throws Error if there is a parsing error.\n */\n// function parseToTeX(result: string): SyncTeXRecordToTeX {\n//     const record = Object.create(null) as { input?: string, line?: number, column?: number }\n//     let started = false\n//     for (const line of result.split('\\n')) {\n//         if (line.includes('SyncTeX result begin')) {\n//             started = true\n//             continue\n//         }\n//         if (line.includes('SyncTeX result end')) {\n//             break\n//         }\n//         if (!started) {\n//             continue\n//         }\n//         const pos = line.indexOf(':')\n//         if (pos < 0) {\n//             continue\n//         }\n//         const key = line.substring(0, pos).toLowerCase()\n//         if (key !== 'input' && key !== 'line' && key !== 'column' ) {\n//             continue\n//         }\n//         const value = line.substring(pos + 1)\n//         if (key === 'line' || key === 'column') {\n//             record[key] = Number(value)\n//             continue\n//         }\n//         record[key] = value\n//     }\n//     if (record.input !== undefined && record.line !== undefined && record.column !== undefined) {\n//         return { input: record.input, line: record.line, column: record.column }\n//     } else {\n//         throw(new Error('parse error when parsing the result of synctex backward.'))\n//     }\n// }\n\n/**\n * Locates the current cursor position in the TeX file editor.\n * @returns The current editor coordinates including line, column, and input file URI.\n */\nfunction getCurrentEditorCoordinates(): {line: number, column: number, inputFileUri: vscode.Uri} | undefined {\n    if (!vscode.window.activeTextEditor) {\n        logger.log('No active editor found.')\n        return\n    }\n\n    const inputFileUri = vscode.window.activeTextEditor.document.uri\n    if (!lw.file.hasLaTeXLangId(vscode.window.activeTextEditor.document.languageId)) {\n        logger.log(`${inputFileUri} is not valid LaTeX.`)\n        return\n    }\n    const position = vscode.window.activeTextEditor.selection.active\n    if (!position) {\n        logger.log(`No cursor position from ${position}`)\n        return\n    }\n\n    let line = position.line + 1\n    const column = position.character\n\n    if (vscode.window.activeTextEditor.document.lineCount === line &&\n        vscode.window.activeTextEditor.document.lineAt(line - 1).text === '') {\n            line -= 1\n    }\n\n    return {line, column, inputFileUri}\n}\n\n/**\n * Tries calling forward SyncTeX (from Tex to PDF) using the native SyncTeX binary,\n * and if it fails, falls back to using the JavaScript implementation.\n * @param line\n * @param col\n * @param filePath - path to the TeX file.\n * @param targetPdfFile - path to the target PDF file.\n * @param indicator - highlight indicator type.\n * @returns an object indicating the PDF file location and whether to show the indicator.\n */\nasync function synctexToPDFCombined(line: number, col: number, filePath: string, targetPdfFile: vscode.Uri, indicator: 'none' | 'circle' | 'rectangle'): Promise<SyncTeXRecordToPDF> {\n    try {\n        return await callSyncTeXToPDF(line, col, filePath, targetPdfFile, indicator)\n    } catch {\n        logger.log(`Compute with synctex.js from ${filePath} to ${targetPdfFile} on line ${line}.`)\n        const record = await syncTeXToPDF(line, filePath, targetPdfFile)\n        if (!record) {\n            throw new Error('Failed to compute the SyncTeX record.')\n        }\n        return record\n    }\n}\n\n/**\n * Execute forward SyncTeX with respect to the provided arguments.\n *\n * This function performs a forward SyncTeX operation based on the provided\n * arguments. If arguments are not provided, it uses the active text editor's\n * document and cursor position. The forward SyncTeX can be executed with a\n * specific PDF viewer, and the PDF file can be specified.\n *\n * @param pdfUri - The path of a PDF File compiled from the filePath of args.\n * If undefined, it is automatically detected.\n * @param args - The arguments of forward SyncTeX. If undefined, the document\n * and cursor position of activeTextEditor are used.\n * @param forcedViewer - Indicates a PDF viewer with which SyncTeX is executed\n * ('auto', 'tabOrBrowser', or 'external').\n */\nfunction toPDF(pdfUri?: vscode.Uri, args?: {line: number, filePath: string}, forcedViewer: 'auto' | 'tabOrBrowser' | 'external' = 'auto') {\n    let line: number\n    let filePath: string\n    let column = 0\n    const active = vscode.window.activeTextEditor ?? lw.previousActive\n    if (!active) {\n        logger.log('No active LaTeX editor found or previous one recorded.')\n        return\n    }\n\n    if (lw.root.file.path === undefined) {\n        return\n    }\n\n    if (args === undefined) {\n        const currentEditorCoordinates = getCurrentEditorCoordinates()\n        if (currentEditorCoordinates === undefined) {\n            return\n        }\n        line = currentEditorCoordinates.line\n        column = currentEditorCoordinates.column\n        filePath = currentEditorCoordinates.inputFileUri.fsPath\n    } else {\n        line = args.line\n        filePath = args.filePath\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const rootFile = lw.root.file.path\n    if (rootFile === undefined) {\n        logger.log('No root file found.')\n        return\n    }\n    const targetPdfFile = pdfUri ?? lw.file.toUri(lw.file.getPdfPath(rootFile))\n    if (active.document.lineCount === line &&\n        active.document.lineAt(line - 1).text === '') {\n            line -= 1\n    }\n    if (forcedViewer === 'external' || (forcedViewer === 'auto' && configuration.get('view.pdf.viewer') === 'external') ) {\n        syncTeXExternal(line, targetPdfFile, rootFile)\n        return\n    }\n\n    void synctexToPDFCombined(line, column, filePath, targetPdfFile, configuration.get('synctex.indicator') as 'none' | 'circle' | 'rectangle').then(async (record) => {\n        await lw.viewer.locate(targetPdfFile, record)\n    }).catch(e =>\n        logger.logError('Forward SyncTeX failed.', e)\n    )\n}\n\n/**\n * Call SyncTeX to PDF for a specific line and character position. If SyncTeX\n * call failed, raise an exception.\n *\n * This function calls the SyncTeX binary to retrieve PDF information for a\n * given line and character position in a TeX file. It returns a promise\n * resolving to a SyncTeXRecordToPDF object.\n *\n * @param line - The line number in the TeX file.\n * @param col - The character position (column) in the line.\n * @param filePath - The path of the TeX file.\n * @param pdfUri - The path of the PDF file.\n * @param indicator - The type of the SyncTex indicator.\n * @returns A promise resolving to a SyncTeXRecordToPDF object or a\n * SyncTeXRecordToPDF[] object.\n */\nfunction callSyncTeXToPDF(line: number, col: number, filePath: string, pdfUri: vscode.Uri, indicator: 'none' | 'circle' | 'rectangle'): Promise<SyncTeXRecordToPDF>\nfunction callSyncTeXToPDF(line: number, col: number, filePath: string, pdfUri: vscode.Uri, indicator: 'none' | 'circle' | 'rectangle'): Promise<SyncTeXRecordToPDFAll[]>\nfunction callSyncTeXToPDF(line: number, col: number, filePath: string, pdfUri: vscode.Uri, indicator: 'none' | 'circle' | 'rectangle'): Promise<SyncTeXRecordToPDF> | Promise<SyncTeXRecordToPDFAll[]> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const docker = configuration.get('docker.enabled')\n\n    const args = ['view', '-i'].concat([\n        `${line}${indicator === 'rectangle' ? ':0' : `:${col + 1}`}:${docker ? path.basename(filePath) : filePath}`,\n        '-o',\n        docker ? path.basename(pdfUri.fsPath) : pdfUri.fsPath\n    ])\n\n    let command = configuration.get('synctex.path') as string\n    if (docker) {\n        if (process.platform === 'win32') {\n            command = path.resolve(lw.extensionRoot, './scripts/synctex.bat')\n        } else {\n            command = path.resolve(lw.extensionRoot, './scripts/synctex')\n            fs.chmodSync(command, 0o755)\n        }\n    }\n    const logTag = docker ? 'Docker' : 'SyncTeX'\n    logger.log(`Forward from ${filePath} to ${pdfUri.toString(true)} on line ${line}.`)\n    const proc = cs.spawn(command, args, {cwd: path.dirname(pdfUri.fsPath)})\n    proc.stdout.setEncoding('utf8')\n    proc.stderr.setEncoding('utf8')\n\n    let stdout = ''\n    proc.stdout.on('data', newStdout => {\n        stdout += newStdout\n    })\n\n    let stderr = ''\n    proc.stderr.on('data', newStderr => {\n        stderr += newStderr\n    })\n\n    return new Promise<SyncTeXRecordToPDF | SyncTeXRecordToPDFAll[]>( (resolve, reject) => {\n        proc.on('error', err => {\n            logger.logError(`(${logTag}) Forward SyncTeX failed, fallback to synctex.js.`, err, stderr)\n            reject()\n        })\n\n        proc.on('exit', exitCode => {\n            if (exitCode !== 0) {\n                logger.logError(`(${logTag}) Forward SyncTeX failed, fallback to synctex.js.`, exitCode, stderr)\n                reject()\n            } else {\n                const record = indicator === 'rectangle' ? parseToPDFList(stdout) : parseToPDF(stdout)\n                if (!Array.isArray(record)) {\n                    record.indicator = indicator !== 'none'\n                }\n                resolve(record)\n            }\n        })\n    }) as Promise<SyncTeXRecordToPDF> | Promise<SyncTeXRecordToPDFAll[]>\n}\n\n/**\n * Execute forward SyncTeX based on the provided arguments and viewer\n * preference.\n *\n * This function is a wrapper for `toPDF`, specifically designed to be called\n * from reference commands. It adjusts the line number and invokes `toPDF` with\n * the specified viewer preference.\n *\n * @param args - The arguments of forward SyncTeX, including line number and\n * file path.\n */\nfunction toPDFFromRef(args: {line: number, filePath: string}) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const viewer = configuration.get('view.pdf.ref.viewer') as 'auto' | 'tabOrBrowser' | 'external'\n    args.line += 1\n    if (viewer) {\n        toPDF(undefined, args, viewer)\n    } else {\n        toPDF(undefined, args)\n    }\n}\n\n/**\n * Call SyncTeX to TeX for a specific page and coordinates.\n *\n * This function calls the SyncTeX binary to retrieve TeX information for a\n * given page and coordinates in a PDF. It returns a promise resolving to a\n * SyncTeXRecordToTeX object.\n *\n * @param page - The page number in the PDF.\n * @param x - The x-coordinate on the page.\n * @param y - The y-coordinate on the page.\n * @param pdfPath - The path of the PDF file.\n * @returns A promise resolving to a SyncTeXRecordToTeX object.\n */\n// function callSyncTeXToTeX(page: number, x: number, y: number, pdfPath: string): Thenable<SyncTeXRecordToTeX> {\n//     const configuration = vscode.workspace.getConfiguration('latex-workshop')\n\n//     const docker = configuration.get('docker.enabled')\n//     const args = ['edit', '-o', `${page}:${x}:${y}:${docker ? path.basename(pdfPath): pdfPath}`]\n\n//     let command = configuration.get('synctex.path') as string\n//     if (docker) {\n//         logger.log('Use Docker to invoke the command.')\n//         if (process.platform === 'win32') {\n//             command = path.resolve(lw.extensionRoot, './scripts/synctex.bat')\n//         } else {\n//             command = path.resolve(lw.extensionRoot, './scripts/synctex')\n//             fs.chmodSync(command, 0o755)\n//         }\n//     }\n\n//     const logTag = docker ? 'Docker' : 'Legacy'\n//     logger.log(`Backward from ${pdfPath} at x=${x}, y=${y} on page ${page}.`)\n\n//     const proc = cs.spawn(command, args, {cwd: path.dirname(pdfPath)})\n//     proc.stdout.setEncoding('utf8')\n//     proc.stderr.setEncoding('utf8')\n\n//     let stdout = ''\n//     proc.stdout.on('data', newStdout => {\n//         stdout += newStdout\n//     })\n\n//     let stderr = ''\n//     proc.stderr.on('data', newStderr => {\n//         stderr += newStderr\n//     })\n\n\n//     return new Promise( (resolve, reject) => {\n//         proc.on('error', err => {\n//             logger.logError(`(${logTag}) Backward SyncTeX failed.`, err, stderr)\n//             reject()\n//         })\n//         proc.on('exit', exitCode => {\n//             if (exitCode !== 0) {\n//                 logger.logError(`(${logTag}) Backward SyncTeX failed.`, exitCode, stderr)\n//                 reject()\n//             } else {\n//                 const record = parseToTeX(stdout)\n//                 resolve(record)\n//             }\n//         })\n//     })\n// }\n\n/**\n * Execute backward SyncTeX to locate TeX source.\n *\n * This function performs a backward SyncTeX operation to locate the TeX source\n * corresponding to a position in a PDF file. It opens the TeX source file and\n * scrolls to the specified position.\n *\n * @param data - ClientRequest data containing the type ('reverse_synctex') and\n * position information.\n * @param pdfUri - The path of the PDF file.\n */\nasync function toTeX(data: Extract<ClientRequest, {type: 'reverse_synctex'}>, pdfUri: vscode.Uri) {\n    const record = await computeToTeX(data, pdfUri)\n    if (record) {\n        await openTeX(record.input, record.line, record.column, data.textBeforeSelection, data.textAfterSelection)\n    }\n}\n\n/**\n * Computes the SyncTeX record to TeX from the given data and PDF URI.\n * @param data - the client request with relevant reverse SyncTeX data.\n * @param pdfUri - the URI of the PDF file.\n * @returns the SyncTeX record to TeX or undefined if not found.\n */\nasync function computeToTeX(data: Extract<ClientRequest, {type: 'reverse_synctex'}>, pdfUri: vscode.Uri): Promise<SyncTeXRecordToTeX | undefined> {\n    let record: SyncTeXRecordToTeX\n\n    // We only use synctex.js for backward sync as the binary cannot handle CJK encodings #4239.\n    //\n    // const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    // const docker = configuration.get('docker.enabled')\n    // try {\n    //     record = await callSyncTeXToTeX(data.page, data.pos[0], data.pos[1], pdfUri)\n    //     if (docker && process.platform === 'win32') {\n    //         record.input = path.join(path.dirname(pdfUri), record.input.replace('/data/', ''))\n    //     }\n    // } catch {\n    // }\n    try {\n        logger.log(`Backward from ${pdfUri.toString(true)} at x=${data.pos[0]}, y=${data.pos[1]} on page ${data.page}.`)\n        const temp = await syncTeXToTeX(data.page, data.pos[0], data.pos[1], pdfUri)\n        if (!temp) {\n            return\n        }\n        record = temp\n    } catch (e) {\n        logger.logError('Backward SyncTeX failed.', e)\n        return\n    }\n    record.input = record.input.replace(/(\\r\\n|\\n|\\r)/gm, '')\n\n    // kpathsea/SyncTeX follow symlinks.\n    // see http://tex.stackexchange.com/questions/25578/why-is-synctex-in-tl-2011-so-fussy-about-filenames.\n    // We compare the return of symlink with the files list in the texFileTree and try to pickup the correct one.\n    for (const ed of lw.cache.paths()) {\n        try {\n            if (isSameRealPath(record.input, ed)) {\n                record.input = ed\n                break\n            }\n        } catch(e) {\n            logger.logError(`Backward SyncTeX failed on isSameRealPath() with ${record.input} and ${ed} .`, e)\n        }\n    }\n\n    record.input = path.resolve(record.input)\n    return record\n}\n\n/**\n * Highlights the specified position in the TeX source file.\n * @param input - TeX source file path.\n * @param line\n * @param column\n * @param textBeforeSelection\n * @param textAfterSelection\n */\nasync function openTeX(input: string, line: number, column: number, textBeforeSelection: string, textAfterSelection: string) {\n    const filePath = path.resolve(input)\n    const uri = lw.file.toUri(input)\n    try {\n        await vscode.workspace.fs.stat(uri)\n    } catch (_e) {\n        logger.log(`Backward SyncTeX failed on non-existent ${filePath} .`)\n        return\n    }\n    logger.log(`Backward SyncTeX to ${filePath} .`)\n    try {\n        const doc = await vscode.workspace.openTextDocument(uri)\n        let row = line - 1\n        let col = column < 0 ? 0 : column\n        // columns are typically not supplied by SyncTex, this could change in the future for some engines though\n        if (col === 0) {\n            [row, col] = getRowAndColumn(doc, row, textBeforeSelection, textAfterSelection)\n        }\n        const pos = new vscode.Position(row, col)\n\n        const tab = findTab(doc)\n        const viewColumn = tab?.group.viewColumn ?? getViewColumnOfVisibleTextEditor() ?? vscode.ViewColumn.Beside\n        const editor = await vscode.window.showTextDocument(doc, viewColumn)\n        editor.selection = new vscode.Selection(pos, pos)\n        await vscode.commands.executeCommand('revealLine', {lineNumber: row, at: 'center'})\n        animateToNotify(editor, pos)\n    } catch(e: unknown) {\n        logger.logError('Backward SyncTeX failed.', e)\n    }\n}\n\n/**\n * Find the first tab containing the specified document.\n *\n * This function searches for the first tab containing the specified document\n * URI. If the document is not found in active tabs, it returns undefined.\n *\n * @param doc - The TextDocument for which to find the tab.\n * @returns The first tab containing the document or undefined if not found.\n */\nfunction findTab(doc: vscode.TextDocument): vscode.Tab | undefined {\n    let notActive: vscode.Tab[] = []\n    const docUriString = doc.uri.toString()\n    for (const tabGroup of vscode.window.tabGroups.all) {\n        for (const tab of tabGroup.tabs) {\n            const tabInput = tab.input\n            if (tabInput instanceof vscode.TabInputText) {\n                if (docUriString === tabInput.uri.toString()) {\n                    if (tab.isActive) {\n                        return tab\n                    } else {\n                        notActive.push(tab)\n                    }\n                }\n            }\n        }\n    }\n    notActive = notActive.sort((a, b) => Math.max(a.group.viewColumn, 0) - Math.max(b.group.viewColumn, 0) )\n    return notActive[0] || undefined\n}\n\n/**\n * Get the view column of the first visible text editor.\n *\n * This function returns the view column of the first visible text editor if\n * any. If no visible text editors are found, it returns undefined.\n *\n * @returns The view column of the first visible text editor or undefined.\n */\nfunction getViewColumnOfVisibleTextEditor(): vscode.ViewColumn | undefined {\n    const viewColumnArray = vscode.window.visibleTextEditors\n                            .map((editor) => editor.viewColumn)\n                            .filter((column): column is vscode.ViewColumn => column !== undefined)\n                            .sort()\n    return viewColumnArray[0]\n}\n\n/**\n * Get the row and column based on surrounding text.\n *\n * This function calculates the row and column based on the surrounding text in\n * the specified document, considering the text before and after the selection.\n *\n * @param doc - The TextDocument in which to search for the position.\n * @param row - The initial row for the search.\n * @param textBeforeSelectionFull - The full text before the selection.\n * @param textAfterSelectionFull - The full text after the selection.\n * @returns An array containing the row and column.\n */\nfunction getRowAndColumn(doc: vscode.TextDocument, row: number, textBeforeSelectionFull: string, textAfterSelectionFull: string) {\n    let tempCol = getColumnBySurroundingText(doc.lineAt(row).text, textBeforeSelectionFull, textAfterSelectionFull)\n    if (tempCol !== null) {\n        return [row, tempCol]\n    }\n\n    if (row - 1 >= 0) {\n        tempCol = getColumnBySurroundingText(doc.lineAt(row - 1).text, textBeforeSelectionFull, textAfterSelectionFull)\n        if (tempCol !== null) {\n            return [row - 1, tempCol]\n        }\n    }\n\n    if (row + 1 < doc.lineCount) {\n        tempCol = getColumnBySurroundingText(doc.lineAt(row + 1).text, textBeforeSelectionFull, textAfterSelectionFull)\n        if (tempCol !== null) {\n            return [row + 1, tempCol]\n        }\n    }\n\n    return [row, 0]\n}\n\n/**\n * Get the column based on surrounding text.\n *\n * This function calculates the column based on the surrounding text in the\n * specified line, considering the text before and after the selection.\n *\n * @param line - The line of text in which to search for the column.\n * @param textBeforeSelectionFull - The full text before the selection.\n * @param textAfterSelectionFull - The full text after the selection.\n * @returns The calculated column.\n */\nfunction getColumnBySurroundingText(line: string, textBeforeSelectionFull: string, textAfterSelectionFull: string) {\n    let previousColumnMatches = Object.create(null) as { [k: string]: number }\n\n    for (let length = 5; length <= Math.max(textBeforeSelectionFull.length, textAfterSelectionFull.length); length++) {\n        const columns: number[] = []\n        const textBeforeSelection = textBeforeSelectionFull.substring(textBeforeSelectionFull.length - length, textBeforeSelectionFull.length)\n        const textAfterSelection = textAfterSelectionFull.substring(0, length)\n\n        // Get all indexes for the before and after text\n        if (textBeforeSelection !== '') {\n            columns.push(...indexes(line, textBeforeSelection).map(index => index + textBeforeSelection.length))\n        }\n        if (textAfterSelection !== '') {\n            columns.push(...indexes(line, textAfterSelection))\n        }\n\n        // Get number or occurrences for each column\n        const columnMatches = Object.create(null) as { [k: string]: number }\n        columns.forEach(column => columnMatches[column] = (columnMatches[column] || 0) + 1)\n        const values = Object.values(columnMatches).sort()\n\n        // At least two matches with equal fit\n        if (values.length > 1 && values[0] === values[1]) {\n            previousColumnMatches = columnMatches\n            continue\n        }\n        // Only one match or one best match\n        if (values.length >= 1) {\n            return parseInt(Object.keys(columnMatches).reduce((a, b) => columnMatches[a] > columnMatches[b] ? a : b))\n        }\n        // No match in current iteration, return first best match from previous run or 0\n        if (Object.keys(previousColumnMatches).length > 0) {\n            return parseInt(Object.keys(previousColumnMatches).reduce((a, b) => previousColumnMatches[a] > previousColumnMatches[b] ? a : b))\n        } else {\n            return null\n        }\n    }\n    // Should never be reached\n    return null\n}\n\n/**\n * Find all indexes of a substring in a source string.\n *\n * This function returns an array containing all indexes of the specified\n * substring in the source string.\n *\n * @param source - The source string in which to find the indexes.\n * @param find - The substring to search for.\n * @returns An array of indexes.\n */\nfunction indexes(source: string, find: string) {\n    const result: number[] = []\n    for (let i = 0; i < source.length; ++i) {\n        if (source.substring(i, i + find.length) === find) {\n            result.push(i)\n        }\n    }\n    return result\n}\n\n/**\n * Animate to notify the user about a specific position.\n *\n * This function animates to notify the user about a specific position by\n * highlighting the line. It creates a temporary decoration with a border around\n * the line and disposes it after 500 milliseconds.\n *\n * @param editor - The TextEditor in which to animate.\n * @param position - The Position to animate.\n */\nfunction animateToNotify(editor: vscode.TextEditor, position: vscode.Position) {\n    const decoConfig = {\n        borderWidth: '1px',\n        borderStyle: 'solid',\n        light: {\n            borderColor: 'red'\n        },\n        dark: {\n            borderColor: 'white'\n        }\n    }\n    const range = new vscode.Range(position.line, 0, position.line, 65535)\n    const deco = vscode.window.createTextEditorDecorationType(decoConfig)\n    editor.setDecorations(deco, [range])\n    setTimeout(() => { deco.dispose() }, 500)\n}\n\n/**\n * Execute external SyncTeX with a specified PDF viewer.\n *\n * This function executes an external SyncTeX operation using a specified PDF\n * viewer. It constructs the command and arguments based on user configuration.\n *\n * @param line - The line number in the PDF.\n * @param pdfUri - The path of the PDF file.\n * @param rootFile - The path of the root TeX file.\n */\nfunction syncTeXExternal(line: number, pdfUri: vscode.Uri, rootFile: string) {\n    if (!vscode.window.activeTextEditor) {\n        return\n    }\n    const texFile = vscode.window.activeTextEditor.document.uri.fsPath\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const command = configuration.get('view.pdf.external.synctex.command') as string\n    let args = configuration.get('view.pdf.external.synctex.args') as string[]\n    if (command === '') {\n        logger.log('The external SyncTeX command is empty.')\n        return\n    }\n    if (args) {\n        args = args.map(arg => {\n            return replaceArgumentPlaceholders(rootFile, lw.file.tmpDirPath)(arg)\n                    .replace(/%PDF%/g, pdfUri.fsPath)\n                    .replace(/%LINE%/g, line.toString())\n                    .replace(/%TEX%/g, texFile)\n        })\n    }\n    logger.logCommand(`Opening external viewer for SyncTeX from ${pdfUri.toString(true)} .`, command, args)\n    const proc = cs.spawn(command, args)\n    let stdout = ''\n    proc.stdout.on('data', newStdout => {\n        stdout += newStdout\n    })\n    let stderr = ''\n    proc.stderr.on('data', newStderr => {\n        stderr += newStderr\n    })\n    const cb = () => {\n        void logger.log(`STDOUT: ${stdout}`)\n        void logger.log(`STDERR: ${stderr}`)\n    }\n    proc.on('error', cb)\n    proc.on('exit', cb)\n}\n"
  },
  {
    "path": "src/lw.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as cs from 'cross-spawn'\nimport type { log } from './utils/logger'\nimport type { event } from './core/event'\nimport type { file } from './core/file'\nimport type { watcher } from './core/watcher'\nimport type { cache } from './core/cache'\nimport type { root } from './core/root'\nimport type { compile } from './compile'\nimport type { preview, server, viewer } from './preview'\nimport type { locate } from './locate'\nimport type { completion } from './completion'\nimport type { language } from './language'\nimport type { lint } from './lint'\nimport type { outline } from './outline'\nimport type { parser } from './parse'\nimport type { extra } from './extras'\n\nimport type * as commands from './core/commands'\n\nconst wrapper = <T extends Array<any>, U>(fn: (...args: T) => U) => {\n    return (...args: T): U => fn(...args)\n}\n\n/* eslint-disable */\nexport const lw = {\n    extensionRoot: '',\n    previousActive: undefined as vscode.TextEditor | undefined,\n    constant: {} as typeof constant,\n    log: {} as typeof log.getLogger,\n    event: {} as typeof event,\n    file: {} as typeof file,\n    watcher: {} as typeof watcher,\n    cache: {} as typeof cache,\n    root: {} as typeof root,\n    parser: {} as typeof parser,\n    compile: {} as typeof compile,\n    viewer: {} as typeof viewer,\n    server: {} as typeof server,\n    preview: {} as typeof preview,\n    locate: {} as typeof locate,\n    completion: {} as typeof completion,\n    language: {} as typeof language,\n    lint: {} as typeof lint,\n    outline: {} as typeof outline,\n    extra: {} as typeof extra,\n    commands: Object.create(null) as typeof commands,\n    external: {\n        spawn: wrapper(cs.spawn),\n        sync: wrapper(cs.sync),\n        stat: wrapper(vscode.workspace.fs.stat.bind(vscode.workspace.fs)),\n        mkdirSync: wrapper(fs.mkdirSync),\n        chmodSync: wrapper(fs.chmodSync)\n    },\n    onConfigChange,\n    onDispose\n}\n/* eslint-enable */\n\nconst constant = {\n    ACTIVE_ROOTFILE_EXT: ['.dtx', '.ltx'],\n    TEX_EXT: ['.tex', '.bib', '.ltx'],\n    TEX_NOCACHE_EXT: ['.cls', '.sty', '.bst', '.bbx', '.cbx', '.def', '.cfg'],\n    RSWEAVE_EXT: ['.rnw', '.Rnw', '.rtex', '.Rtex', '.snw', '.Snw'],\n    JLWEAVE_EXT: ['.jnw', '.jtexw'],\n    PWEAVE_EXT: ['.pnw', '.ptexw'],\n    TEX_MAGIC_PROGRAM_NAME: 'TEX_MAGIC_PROGRAM_NAME',\n    BIB_MAGIC_PROGRAM_NAME: 'BIB_MAGIC_PROGRAM_NAME',\n    MAGIC_PROGRAM_ARGS_SUFFIX: '_WITH_ARGS',\n    MAX_PRINT_LINE: '10000',\n    /**\n     * Prefix that server.ts uses to distinguish requests on pdf files from\n     * others. We use '.' because it is not converted by encodeURIComponent and\n     * other functions.\n     * See https://stackoverflow.com/questions/695438/safe-characters-for-friendly-url\n     * See https://tools.ietf.org/html/rfc3986#section-2.3\n     */\n    PDF_PREFIX: 'pdf..',\n    MATHJAX_EXT: [\n        'amscd', 'bbox', 'boldsymbol', 'braket', 'bussproofs', 'cancel',\n        'cases', 'centernot', 'colortbl', 'empheq', 'enclose', 'extpfeil',\n        'gensymb', 'html', 'mathtools', 'mhchem', 'physics', 'textcomp',\n        'textmacros', 'unicode', 'upgreek', 'verb'\n    ],\n    FILE_URI_SCHEMES: ['file', 'vsls']\n}\nlw.constant = constant\n\nlet disposables: vscode.Disposable[] | undefined = undefined\nconst tempDisposables: vscode.Disposable[] = []\n/**\n * Handle configuration changes and invoke the specified callback function when\n * relevant configurations are updated.\n *\n * @param {string | string[]} [configs] - Optional. A string or an array of\n * configuration keys to monitor for changes. The leading `latex-workshop.`\n * should be omitted. A '*' can also be passed here for wildcard.\n * @param {Function} [callback] - Optional. The callback function to be executed\n * when relevant configurations change.\n * @param {vscode.ConfigurationScope} [scope] - Optional. The configuration\n * scope to consider when checking for changes.\n */\nfunction onConfigChange(configs?: string | string[], callback?: () => void, scope?: vscode.ConfigurationScope) {\n    const disposable = vscode.workspace.onDidChangeConfiguration((e: vscode.ConfigurationChangeEvent) => {\n        if (configs && callback &&\n            ([ configs ].flat().some(config => e.affectsConfiguration(`latex-workshop.${config}`, scope))\n             || configs === '*')) {\n            callback()\n        }\n    })\n    if (disposables === undefined) {\n        tempDisposables.push(disposable)\n    } else {\n        disposables.push(...tempDisposables, disposable)\n        tempDisposables.length = 0\n    }\n}\n\n/**\n * @param {vscode.Disposable[]} [extensionDisposables] - Optional. An array of\n *   disposables associated with the extension. If provided, the function sets\n *   the global disposables array to extensionDisposables and adds\n *   tempDisposables to it. If not provided, the function creates a disposable\n *   to listen for configuration changes and adds it to tempDisposables.\n */\nfunction onDispose(disposable?: vscode.Disposable, extensionDisposables?: vscode.Disposable[]) {\n    if (extensionDisposables && disposable === undefined) {\n        disposables = extensionDisposables\n        disposables.push(...tempDisposables)\n        tempDisposables.length = 0\n        return\n    }\n    if (disposable === undefined) {\n        return\n    }\n    if (disposables === undefined) {\n        tempDisposables.push(disposable)\n    } else {\n        disposables.push(...tempDisposables, disposable)\n        tempDisposables.length = 0\n    }\n}\n"
  },
  {
    "path": "src/main.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from './lw'\nlw.extensionRoot = path.resolve(`${__dirname}/../../`)\nimport { log } from './utils/logger'\nlw.log = log.getLogger\nconst logger = lw.log('Extension')\nlogger.log('Initializing LaTeX Workshop.')\nimport { event } from './core/event'\nlw.event = event\nimport { file } from './core/file'\nlw.file = file\nimport { watcher } from './core/watcher'\nlw.watcher = watcher\nimport { cache } from './core/cache'\nlw.cache = cache\nimport { root } from './core/root'\nlw.root = root\nimport { parser } from './parse'\nvoid parser.parse.reset()\nlw.parser = parser\nimport { compile } from './compile'\nlw.compile = compile\nimport { preview, server, viewer } from './preview'\nlw.server = server\nlw.viewer = viewer\nlw.preview = preview\nimport { locate } from './locate'\nlw.locate = locate\nimport { completion } from './completion'\nlw.completion = completion\nimport { language } from './language'\nlw.language = language\nimport { lint } from './lint'\nlw.lint = lint\nimport { outline } from './outline'\nlw.outline = outline\nimport { extra } from './extras'\nlw.extra = extra\nimport * as commander from './core/commands'\nlw.commands = commander\n\nlog.initStatusBarItem()\n\nexport function activate(extensionContext: vscode.ExtensionContext) {\n    void vscode.commands.executeCommand('setContext', 'latex-workshop:enabled', true)\n\n    logger.log(`Extension root: ${lw.extensionRoot}`)\n    logger.log(`$PATH: ${process.env.PATH}`)\n    logger.log(`$SHELL: ${process.env.SHELL}`)\n    logger.log(`$LANG: ${process.env.LANG}`)\n    logger.log(`$LC_ALL: ${process.env.LC_ALL}`)\n    logger.log(`process.platform: ${process.platform}`)\n    logger.log(`process.arch: ${process.arch}`)\n    logger.log(`vscode.env.appName: ${vscode.env.appName}`)\n    logger.log(`vscode.env.remoteName: ${vscode.env.remoteName}`)\n    logger.log(`vscode.env.uiKind: ${vscode.env.uiKind}`)\n    log.logConfig()\n    log.logDeprecatedConfig()\n\n    lw.onDispose(undefined, extensionContext.subscriptions)\n\n    registerLatexWorkshopCommands(extensionContext)\n\n    extensionContext.subscriptions.push(vscode.workspace.onDidChangeConfiguration((ev) => {\n        log.logConfigChange(ev)\n    }))\n\n    extensionContext.subscriptions.push(vscode.workspace.onDidSaveTextDocument( (e: vscode.TextDocument) => {\n        if (!lw.constant.FILE_URI_SCHEMES.includes(e.uri.scheme)){\n            return\n        }\n        if (lw.file.hasLaTeXLangId(e.languageId) || lw.file.hasLaTeXClassPackageLangId(e.languageId) ||\n            lw.cache.getIncludedTeX(lw.root.file.path).has(e.fileName) ||\n            lw.cache.getIncludedBib().includes(e.fileName)) {\n            logger.log(`onDidSaveTextDocument triggered: ${e.uri.toString(true)}`)\n            lw.lint.latex.root()\n            if (lw.compile.isFileExcludedFromBuildOnSave(e.fileName)) {\n                logger.log(`File ${e.fileName} is excluded from build-on-save due to configuration.`)\n            } else {\n                void lw.compile.autoBuild(e.fileName, 'onSave')\n            }\n        }\n        if (lw.file.hasLaTeXLangId(e.languageId)) {\n            lw.extra.count(e.fileName)\n        }\n        // We don't check LaTeX ID as the reconstruct is handled by the Cacher.\n        // We don't check BibTeX ID as the reconstruct is handled by the citation completer.\n        if (lw.file.hasDtxLangId(e.languageId)) {\n            void lw.outline.reconstruct()\n        }\n    }))\n\n    let isLaTeXActive = false\n    extensionContext.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(async (e: vscode.TextEditor | undefined) => {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n\n        if (vscode.window.visibleTextEditors.filter(editor => lw.file.hasLaTeXWorkshopLangId(editor.document.languageId)).length > 0) {\n            logger.showStatus()\n            if (configuration.get('view.autoFocus.enabled') && !isLaTeXActive) {\n                void vscode.commands.executeCommand('workbench.view.lw.latex-workshop-activitybar').then(() => vscode.commands.executeCommand('workbench.action.focusActiveEditorGroup'))\n            }\n            isLaTeXActive = true\n        } else if (vscode.window.activeTextEditor && vscode.window.activeTextEditor.document.languageId.toLowerCase() === 'log') {\n            logger.showStatus()\n        }\n\n        if (e && !lw.constant.FILE_URI_SCHEMES.includes(e.document.uri.scheme)) {\n            return\n        }\n\n        if (e && (\n            lw.file.hasLaTeXLangId(e.document.languageId)\n            || lw.file.hasBibLangId(e.document.languageId)\n            || lw.file.hasLaTeXClassPackageLangId(e.document.languageId) )) {\n            if (!lw.file.hasBibLangId(e.document.languageId) && (e.document.fileName !== lw.previousActive?.document.fileName)) {\n                await lw.root.find()\n                lw.lint.latex.root()\n            }\n            lw.previousActive = e\n        } else {\n            isLaTeXActive = false\n            return\n        }\n\n        if ( lw.file.hasLaTeXLangId(e.document.languageId)\n            || lw.file.hasBibLangId(e.document.languageId)\n            || lw.file.hasDtxLangId(e.document.languageId)) {\n            void lw.outline.refresh()\n        }\n    }))\n\n    extensionContext.subscriptions.push(vscode.workspace.onDidChangeTextDocument((e: vscode.TextDocumentChangeEvent) => {\n        if (!lw.constant.FILE_URI_SCHEMES.includes(e.document.uri.scheme)){\n            return\n        }\n        if (!lw.file.hasLaTeXWorkshopLangId(e.document.languageId)) {\n            return\n        }\n        lw.event.fire(lw.event.DocumentChanged)\n        lw.lint.latex.on(e.document)\n        lw.cache.refreshCacheAggressive(e.document.fileName)\n    }))\n\n    extensionContext.subscriptions.push(vscode.window.onDidChangeTextEditorSelection((e: vscode.TextEditorSelectionChangeEvent) => {\n        if (lw.file.hasLaTeXLangId(e.textEditor.document.languageId) ||\n            lw.file.hasBibLangId(e.textEditor.document.languageId) ||\n            lw.file.hasDtxLangId(e.textEditor.document.languageId)) {\n            return lw.outline.reveal(e)\n        }\n        return\n    }))\n\n    registerProviders(extensionContext)\n\n    void lw.root.find().then(() => {\n        lw.lint.latex.root()\n        if (lw.file.hasLaTeXLangId(vscode.window.activeTextEditor?.document.languageId ?? '')) {\n            lw.previousActive = vscode.window.activeTextEditor\n        }\n    })\n    conflictCheck()\n\n    logger.log('LaTeX Workshop initialized.')\n}\n\nfunction registerLatexWorkshopCommands(extensionContext: vscode.ExtensionContext) {\n    extensionContext.subscriptions.push(\n        vscode.commands.registerCommand('latex-workshop.hostPort', () => lw.commands.hostPort()),\n        vscode.commands.registerCommand('latex-workshop.saveWithoutBuilding', () => lw.commands.saveActive()),\n        vscode.commands.registerCommand('latex-workshop.build', () => lw.commands.build()),\n        vscode.commands.registerCommand('latex-workshop.recipes', (recipe: string | undefined) => lw.commands.recipes(recipe)),\n        vscode.commands.registerCommand('latex-workshop.view', (uri: vscode.Uri) => lw.commands.view(uri)),\n        vscode.commands.registerCommand('latex-workshop.refresh-viewer', () => lw.commands.refresh()),\n        vscode.commands.registerCommand('latex-workshop.tab', () => lw.commands.view('tab')),\n        vscode.commands.registerCommand('latex-workshop.viewInBrowser', () => lw.commands.view('browser')),\n        vscode.commands.registerCommand('latex-workshop.viewExternal', () => lw.commands.view('external')),\n        vscode.commands.registerCommand('latex-workshop.kill', () => lw.commands.kill()),\n        vscode.commands.registerCommand('latex-workshop.synctex', () => lw.commands.synctex()),\n        vscode.commands.registerCommand('latex-workshop.texdoc', (packageName: string | undefined) => lw.commands.texdoc(packageName)),\n        vscode.commands.registerCommand('latex-workshop.texdocUsepackages', () => lw.commands.texdocUsepackages()),\n        vscode.commands.registerCommand('latex-workshop.synctexto', (line: number, filePath: string) => lw.commands.synctexonref(line, filePath)),\n        vscode.commands.registerCommand('latex-workshop.clean', () => lw.commands.clean()),\n        vscode.commands.registerCommand('latex-workshop.actions', () => lw.commands.actions()),\n        vscode.commands.registerCommand('latex-workshop.activate', () => undefined),\n        vscode.commands.registerCommand('latex-workshop.citation', () => lw.commands.citation()),\n        vscode.commands.registerCommand('latex-workshop.addtexroot', () => lw.commands.addTexRoot()),\n        vscode.commands.registerCommand('latex-workshop.wordcount', () => lw.commands.wordcount()),\n        vscode.commands.registerCommand('latex-workshop.log', () => lw.commands.showLog()),\n        vscode.commands.registerCommand('latex-workshop.compilerlog', () => lw.commands.showLog('compiler')),\n        vscode.commands.registerCommand('latex-workshop.code-action', (d: vscode.TextDocument, r: vscode.Range, c: number, m: string) => lw.lint.latex.action(d, r, c, m)),\n        vscode.commands.registerCommand('latex-workshop.goto-section', (filePath: string, lineNumber: number) => lw.commands.gotoSection(filePath, lineNumber)),\n        vscode.commands.registerCommand('latex-workshop.navigate-envpair', () => lw.commands.navigateToEnvPair()),\n        vscode.commands.registerCommand('latex-workshop.select-envcontent', () => lw.commands.selectEnvContent('content')),\n        vscode.commands.registerCommand('latex-workshop.select-env', () => lw.commands.selectEnvContent('whole')),\n        vscode.commands.registerCommand('latex-workshop.select-envname', () => lw.commands.selectEnvName()),\n        vscode.commands.registerCommand('latex-workshop.multicursor-envname', () => lw.commands.multiCursorEnvName()),\n        vscode.commands.registerCommand('latex-workshop.toggle-equation-envname', () => lw.commands.toggleEquationEnv()),\n        vscode.commands.registerCommand('latex-workshop.close-env', () => lw.commands.closeEnv()),\n        vscode.commands.registerCommand('latex-workshop.wrap-env', () => lw.commands.insertSnippet('wrapEnv')),\n        vscode.commands.registerCommand('latex-workshop.onEnterKey', () => lw.commands.onEnterKey()),\n        vscode.commands.registerCommand('latex-workshop.onAltEnterKey', () => lw.commands.onEnterKey('alt')),\n        vscode.commands.registerCommand('latex-workshop.revealOutputDir', () => lw.commands.revealOutputDir()),\n        vscode.commands.registerCommand('latex-workshop.changeHostName', () => lw.commands.changeHostName()),\n        vscode.commands.registerCommand('latex-workshop.resetHostName', () => lw.commands.resetHostName()),\n        vscode.commands.registerCommand('latex-workshop-dev.parselog', () => lw.commands.devParseLog()),\n        vscode.commands.registerCommand('latex-workshop-dev.parsetex', () => lw.commands.devParseTeX()),\n        vscode.commands.registerCommand('latex-workshop-dev.parsebib', () => lw.commands.devParseBib()),\n        vscode.commands.registerCommand('latex-workshop-dev.striptext', () => lw.commands.devStripText()),\n\n        vscode.commands.registerCommand('latex-workshop.shortcut.item', () => lw.commands.insertSnippet('item')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.emph', () => lw.commands.toggleSelectedKeyword('emph')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textbf', () => lw.commands.toggleSelectedKeyword('textbf')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textit', () => lw.commands.toggleSelectedKeyword('textit')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.underline', () => lw.commands.toggleSelectedKeyword('underline')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textrm', () => lw.commands.toggleSelectedKeyword('textrm')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.texttt', () => lw.commands.toggleSelectedKeyword('texttt')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textsl', () => lw.commands.toggleSelectedKeyword('textsl')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textsc', () => lw.commands.toggleSelectedKeyword('textsc')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textnormal', () => lw.commands.toggleSelectedKeyword('textnormal')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textsuperscript', () => lw.commands.toggleSelectedKeyword('textsuperscript')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.textsubscript', () => lw.commands.toggleSelectedKeyword('textsubscript')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathbf', () => lw.commands.toggleSelectedKeyword('mathbf')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathit', () => lw.commands.toggleSelectedKeyword('mathit')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathrm', () => lw.commands.toggleSelectedKeyword('mathrm')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathtt', () => lw.commands.toggleSelectedKeyword('mathtt')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathsf', () => lw.commands.toggleSelectedKeyword('mathsf')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathbb', () => lw.commands.toggleSelectedKeyword('mathbb')),\n        vscode.commands.registerCommand('latex-workshop.shortcut.mathcal', () => lw.commands.toggleSelectedKeyword('mathcal')),\n        vscode.commands.registerCommand('latex-workshop.surround', () => lw.completion.macro.surround()),\n\n        vscode.commands.registerCommand('latex-workshop.promote-sectioning', () => lw.commands.shiftSectioningLevel('promote')),\n        vscode.commands.registerCommand('latex-workshop.demote-sectioning', () => lw.commands.shiftSectioningLevel('demote')),\n        vscode.commands.registerCommand('latex-workshop.select-section', () => lw.commands.selectSection()),\n\n        vscode.commands.registerCommand('latex-workshop.bibsort', () => lw.lint.bibtex.format(true, false)),\n        vscode.commands.registerCommand('latex-workshop.bibalign', () => lw.lint.bibtex.format(false, true)),\n        vscode.commands.registerCommand('latex-workshop.bibalignsort', () => lw.lint.bibtex.format(true, true)),\n        vscode.commands.registerCommand('latex-workshop.checkcitations', () => lw.commands.checkCitations()),\n\n        vscode.commands.registerCommand('latex-workshop.openMathPreviewPanel', () => lw.commands.openMathPreviewPanel()),\n        vscode.commands.registerCommand('latex-workshop.closeMathPreviewPanel', () => lw.commands.closeMathPreviewPanel()),\n        vscode.commands.registerCommand('latex-workshop.toggleMathPreviewPanel', () => lw.commands.toggleMathPreviewPanel())\n    )\n}\n\nfunction registerProviders(extensionContext: vscode.ExtensionContext) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n\n    // According to cmhughes/latexindent.pl, it aims to beautify .tex, .sty and .cls files.\n    const latexindentSelector = selectDocumentsWithId(['tex', 'latex', 'latex-expl3', 'latex-class', 'latex-package'])\n    const latexSymbolSelector = selectDocumentsWithId(['latex', 'latex-expl3', 'pweave', 'jlweave', 'rsweave', 'context'])\n    const weaveSelector = selectDocumentsWithId(['pweave', 'jlweave', 'rsweave'])\n    const latexDoctexSelector = selectDocumentsWithId(['latex', 'latex-expl3', 'pweave', 'jlweave', 'rsweave', 'latex-class', 'latex-package', 'biblatex', 'context', 'doctex', 'doctex-installer'])\n    const bibtexSelector = selectDocumentsWithId(['bibtex'])\n\n    extensionContext.subscriptions.push(\n        vscode.languages.registerDocumentFormattingEditProvider(latexindentSelector, lw.lint.latex.formatter),\n        vscode.languages.registerDocumentFormattingEditProvider(bibtexSelector, lw.lint.bibtex.formatter),\n        vscode.languages.registerDocumentRangeFormattingEditProvider(latexindentSelector, lw.lint.latex.formatter),\n        vscode.languages.registerDocumentRangeFormattingEditProvider(bibtexSelector, lw.lint.bibtex.formatter)\n    )\n\n    extensionContext.subscriptions.push(\n        vscode.window.registerWebviewPanelSerializer('latex-workshop-pdf', lw.viewer.serializer),\n        vscode.window.registerCustomEditorProvider('latex-workshop-pdf-hook', lw.viewer.hook, {supportsMultipleEditorsPerDocument: true, webviewOptions: {retainContextWhenHidden: true}}),\n        vscode.window.registerWebviewPanelSerializer('latex-workshop-mathpreview', lw.preview.mathpreview.serializer)\n    )\n\n    extensionContext.subscriptions.push(\n        vscode.languages.registerHoverProvider(latexSymbolSelector, lw.preview.provider),\n        vscode.languages.registerDefinitionProvider(latexSymbolSelector, lw.language.definition),\n        vscode.languages.registerDocumentSymbolProvider(latexSymbolSelector, lw.language.docSymbol),\n        vscode.languages.registerDocumentSymbolProvider(bibtexSelector, lw.language.docSymbol),\n        vscode.languages.registerDocumentSymbolProvider(selectDocumentsWithId(['doctex']), lw.language.docSymbol),\n        vscode.languages.registerWorkspaceSymbolProvider(lw.language.projectSymbol)\n    )\n\n    extensionContext.subscriptions.push(\n        vscode.languages.registerCompletionItemProvider({ scheme: 'file', language: 'tex'}, lw.completion.provider, '\\\\', '{'),\n        vscode.languages.registerCompletionItemProvider({ scheme: 'vsls', language: 'tex'}, lw.completion.provider, '\\\\', '{'),\n        vscode.languages.registerCompletionItemProvider(bibtexSelector, lw.completion.bibProvider, '@')\n    )\n\n    let triggerDisposable: vscode.Disposable | undefined\n    const registerTrigger = () => {\n        const triggers = configuration.get('intellisense.triggers.latex') as string[]\n        logger.log(`Trigger characters for intellisense of LaTeX documents: ${JSON.stringify(triggers)}`)\n\n        triggerDisposable = vscode.languages.registerCompletionItemProvider(latexDoctexSelector, lw.completion.provider, ...triggers)\n        extensionContext.subscriptions.push(triggerDisposable)\n    }\n    registerTrigger()\n    lw.onConfigChange('intellisense.triggers.latex', () => {\n        if (triggerDisposable) {\n            triggerDisposable.dispose()\n            triggerDisposable = undefined\n        }\n        registerTrigger()\n    })\n\n    let atSuggestionDisposable: vscode.Disposable | undefined\n    const registerAtSuggestion = () => {\n        const atSuggestionLatexTrigger = vscode.workspace.getConfiguration('latex-workshop').get('intellisense.atSuggestion.trigger.latex') as string\n        if (atSuggestionLatexTrigger !== '') {\n            lw.completion.atProvider.updateTrigger()\n            atSuggestionDisposable = vscode.languages.registerCompletionItemProvider(latexDoctexSelector, lw.completion.atProvider, atSuggestionLatexTrigger)\n            extensionContext.subscriptions.push(atSuggestionDisposable)\n        }\n    }\n    registerAtSuggestion()\n    lw.onConfigChange('intellisense.atSuggestion.trigger.latex', () => {\n        if (atSuggestionDisposable) {\n            atSuggestionDisposable.dispose()\n            atSuggestionDisposable = undefined\n        }\n        registerAtSuggestion()\n    })\n\n    extensionContext.subscriptions.push(\n        vscode.languages.registerCodeActionsProvider(latexSymbolSelector, lw.lint.latex.actionprovider),\n        vscode.languages.registerFoldingRangeProvider(latexSymbolSelector, lw.language.folding),\n        vscode.languages.registerFoldingRangeProvider(weaveSelector, lw.language.weaveFolding),\n        vscode.languages.registerFoldingRangeProvider(latexDoctexSelector, lw.language.doctexFolding)\n    )\n\n    const selectionLatex = configuration.get('selection.smart.latex.enabled', true)\n    if (selectionLatex) {\n        extensionContext.subscriptions.push(vscode.languages.registerSelectionRangeProvider({language: 'latex'}, lw.language.selectionRage))\n    }\n\n    extensionContext.subscriptions.push(\n        vscode.window.registerWebviewViewProvider(\n            'latex-workshop-math-symbols',\n            lw.extra.snippet.provider,\n            { webviewOptions: { retainContextWhenHidden: true } }\n        )\n    )\n}\n\nfunction conflictCheck() {\n    function check(ID: string, name: string, suggestion: string) {\n        if (vscode.extensions.getExtension(ID) !== undefined) {\n            void vscode.window.showWarningMessage(`LaTeX Workshop is incompatible with  \"${name}\". ${suggestion}`)\n        }\n    }\n    check('tomoki1207.pdf', 'vscode-pdf', 'We compete when opening a PDF file from the sidebar. Please consider disabling either extension.')\n}\n\nfunction selectDocumentsWithId(ids: string[]): vscode.DocumentSelector {\n   const selector = ids.map( (id) => {\n       return { scheme: lw.file.toUri('').scheme, language: id }\n   })\n   return selector\n}\n"
  },
  {
    "path": "src/outline/index.ts",
    "content": "export { outline } from './structure'\n"
  },
  {
    "path": "src/outline/structure/bibtex.ts",
    "content": "import * as vscode from 'vscode'\nimport { bibtexParser } from 'latex-utensils'\nimport { lw } from '../../lw'\nimport { type TeXElement, TeXElementType } from '../../types'\n\nimport { bibTools } from '../../completion/completer/citation'\n\nconst logger = lw.log('Structure', 'BibTeX')\n\n/**\n* Convert a bibtexParser.FieldValue to a string\n* @param field the bibtexParser.FieldValue to parse\n*/\nexport function fieldValueToString(field: bibtexParser.FieldValue, abbreviations: {[abbr: string]: string}): string {\n    if (field.kind === 'concat') {\n        return field.content.map(value => fieldValueToString(value, abbreviations)).reduce((acc, cur) => {return acc + ' # ' + cur})\n    } else if (field.kind === 'abbreviation') {\n        return abbreviations[field.content] ?? `undefined @string \"${field.content}\"`\n    } else {\n        return field.content\n    }\n}\n\nexport async function buildBibTeX(document: vscode.TextDocument): Promise<TeXElement[]> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(document.fileName))\n    if (document.getText().length >= (configuration.get('bibtex.maxFileSize') as number) * 1024 * 1024) {\n        logger.log(`Bib file is too large, ignoring it: ${document.fileName}`)\n        return []\n    }\n    logger.log('Parse active BibTeX document for AST.')\n    const ast = await lw.parser.parse.bib(document.uri, document.getText())\n    if (ast === undefined) {\n        return []\n    }\n    logger.log(`Parsed ${ast.content.length} AST items.`)\n    const abbreviations = bibTools.parseAbbrevations(ast)\n    const ds: TeXElement[] = []\n    ast.content.filter(bibtexParser.isEntry)\n        .forEach(entry => {\n            const bibitem: TeXElement = {\n                type: TeXElementType.BibItem,\n                name: entry.entryType,\n                label: `${entry.entryType}: ${entry.internalKey}`,\n                lineFr: entry.location.start.line - 1, // ast line numbers start at 1\n                lineTo: entry.location.end.line - 1,\n                filePath: document.fileName,\n                children: []\n            }\n            entry.content.forEach(field => {\n                const content = fieldValueToString(field.value, abbreviations)\n                const fielditem: TeXElement = {\n                    type: TeXElementType.BibField,\n                    name: field.name,\n                    label: `${field.name}: ${content}`,\n                    lineFr: field.location.start.line - 1,\n                    lineTo: field.location.end.line - 1,\n                    filePath: document.fileName,\n                    children: []\n                }\n                fielditem.parent = bibitem\n                bibitem.children.push(fielditem)\n            })\n            ds.push(bibitem)\n        })\n    return ds\n}\n"
  },
  {
    "path": "src/outline/structure/doctex.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport type { TeXElement } from '../../types'\nimport { outline } from './latex'\n\n\nconst logger = lw.log('Structure', 'DocTeX')\n\nexport async function construct(document: vscode.TextDocument): Promise<TeXElement[]> {\n    const content = document.getText()\n    if (!content) {\n        return []\n    }\n\n    const docContent = getDoc(content)\n    const sections = await getToC(document, docContent)\n\n    return sections\n}\n\nfunction getDoc(content: string) {\n    const mode: ('NORMAL' | 'COMMENT' | 'MACROCODE' | 'EXAMPLE')[] = ['NORMAL']\n    const comment = /(^|[^\\\\]|(?:(?<!\\\\)(?:\\\\\\\\)+))\\^\\^A.*$/gm\n    return content.split('\\n').map(line => {\n        if (line.match(/%\\s*\\^\\^A/)) {\n            return ''\n        } else if (line.match(/%\\s*\\\\iffalse/)) {\n            mode.push('COMMENT')\n        } else if (line.match(/%\\s*\\\\fi/) && mode[mode.length - 1] === 'COMMENT') {\n            mode.pop()\n        } else if (mode[mode.length - 1] === 'COMMENT') {\n            return ''\n        } else if (line.startsWith('%%')) {\n            return ''\n        } else if (line.startsWith('%    \\\\begin{macrocode}')) {\n            mode.push('MACROCODE')\n        } else if (line.startsWith('%    \\\\end{macrocode}') && mode[mode.length - 1] === 'MACROCODE') {\n            mode.pop()\n        } else if (mode[mode.length - 1] === 'MACROCODE') {\n            return ''\n        } else if (line.startsWith('%')) {\n            return line.slice(1).replace(comment, '$1').replaceAll('\\\\verb', '')\n        }\n        return ''\n    }).join('\\n')\n}\n\nasync function getToC(document: vscode.TextDocument, docContent: string) {\n    const ast = await lw.parser.parse.tex(docContent)\n    if (ast === undefined) {\n        logger.log('Failed parsing LaTeX AST.')\n        return []\n    }\n\n    const config = outline.refreshLaTeXModelConfig(false, ['macro', 'environment'])\n\n    const root: { children: TeXElement[] } = { children: [] }\n    let inAppendix = false\n    for (const node of ast.content) {\n        if (await outline.parseNode(node, [], root, document.fileName, config, {}, inAppendix)) {\n            inAppendix = true\n        }\n    }\n    let struct = root.children\n    struct = outline.nestNonSection(struct)\n    struct = outline.nestSection(struct, config)\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (configuration.get('view.outline.floats.number.enabled') as boolean) {\n        struct = outline.addFloatNumber(struct)\n    }\n    if (configuration.get('view.outline.numbers.enabled') as boolean) {\n        struct = outline.addSectionNumber(struct, config)\n    }\n\n    return struct\n}\n"
  },
  {
    "path": "src/outline/structure/latex.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport { type TeXElement, TeXElementType } from '../../types'\nimport { resolveFile } from '../../utils/utils'\nimport { InputFileRegExp, sanitizeInputFilePath } from '../../utils/inputfilepath'\n\n\nimport { argContentToStr } from '../../utils/parser'\n\nconst logger = lw.log('Structure', 'LaTeX')\n\ntype StructureConfig = {\n    // The LaTeX macros to be extracted.\n    macros: {cmds: string[], envs: string[], secs: string[]},\n    // The correspondance of section types and depths. Start from zero is\n    // the top-most section (e.g., chapter).\n    readonly secIndex: {[cmd: string]: number},\n    readonly texDirs: string[],\n    subFile: boolean,\n    // view.outline.floats.caption.enabled\n    caption: boolean\n}\ntype FileStructureCache = {\n    [filePath: string]: TeXElement[]\n}\n\n\nexport async function construct(filePath: string | undefined = undefined, subFile: boolean = true): Promise<TeXElement[]> {\n    filePath = filePath ?? lw.root.file.path\n    if (filePath === undefined) {\n        return []\n    }\n\n    const config = refreshLaTeXModelConfig(subFile)\n    const structs: FileStructureCache = {}\n    await constructFile(filePath, config, structs)\n    // In rare cases, the following struct may be undefined. Typically in tests\n    // where roots are changed rapidly.\n    let struct = subFile ? insertSubFile(structs) : structs[filePath] ?? []\n    struct = nestNonSection(struct)\n    struct = nestSection(struct, config)\n    fixSectionToLine(struct, config, Number.MAX_SAFE_INTEGER)\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (subFile && configuration.get('view.outline.floats.number.enabled') as boolean) {\n        struct = addFloatNumber(struct)\n    }\n    if (subFile && configuration.get('view.outline.numbers.enabled') as boolean) {\n        struct = addSectionNumber(struct, config)\n    }\n    return struct\n}\n\nasync function constructFile(filePath: string, config: StructureConfig, structs: FileStructureCache): Promise<void> {\n    if (structs[filePath] !== undefined) {\n        return\n    }\n    await lw.cache.wait(filePath)\n    const content = lw.cache.get(filePath)?.content\n    const ast = lw.cache.get(filePath)?.ast\n    if (!content || !ast) {\n        logger.log(`Error loading ${content ? 'AST' : 'content'} during structuring: ${filePath} .`)\n        return\n    }\n    // Get a list of rnw child chunks\n    const rnwSub = await parseRnwChildMacro(content, filePath, lw.root.file.path || '')\n\n    // Parse each base-level node. If the node has contents, that function\n    // will be called recursively.\n    const rootElement = { children: [] }\n    structs[filePath] = rootElement.children\n\n    let inAppendix = false\n    for (const node of ast.content) {\n        if (['string', 'parbreak', 'whitespace'].includes(node.type)) {\n            continue\n        }\n        // Appendix is a one-way journey. Once in it, always in it.\n        if (await parseNode(node, rnwSub, rootElement, filePath, config, structs, inAppendix)) {\n            inAppendix = true\n        }\n    }\n}\n\nfunction chooseCaption(...args: (Ast.Argument | undefined)[]): string {\n    for (const arg of args) {\n        if ((arg?.content?.length ?? 0) > 0) {\n            return argContentToStr(arg?.content ?? [])\n        }\n    }\n    return ''\n}\n\nasync function parseNode(\n        node: Ast.Node,\n        rnwSub: Awaited<ReturnType<typeof parseRnwChildMacro>>,\n        root: { children: TeXElement[] },\n        filePath: string,\n        config: StructureConfig,\n        structs: FileStructureCache,\n        inAppendix: boolean): Promise<boolean> {\n    const attributes = {\n        lineFr: (node.position?.start.line ?? 1) - 1,\n        lineTo: (node.position?.end.line ?? 1) - 1,\n        filePath, children: []\n    }\n    let element: TeXElement | undefined\n    if (node.type === 'macro' && config.macros.secs.includes(node.content) && node.args?.[2].openMark === '{') {\n        // To use a macro as an outline item, the macro must have an explicit\n        // mandatory argument e.g. \\section{} instead of \\section. This is to\n        // ignore cases like \\titleformat{\\section} when \\titleformat is not\n        // globbing arguments in unified-latex.\n        element = {\n            type: node.args?.[0]?.content[0] ? TeXElementType.SectionAst : TeXElementType.Section,\n            name: node.content,\n            label: chooseCaption(node.args?.[1], node.args?.[2]),\n            appendix: inAppendix,\n            ...attributes\n        }\n    } else if (node.type === 'macro' && config.macros.cmds.includes(node.content)) {\n        const argStr = argContentToStr(node.args?.[2]?.content || [])\n        element = {\n            type: TeXElementType.Macro,\n            name: node.content,\n            label: `#${node.content}` + (argStr ? `: ${argStr}` : ''),\n            ...attributes\n        }\n    } else if (node.type === 'macro' && node.content === 'appendix') {\n        inAppendix = true\n    } else if ((node.type === 'environment') && node.env === 'frame') {\n        const frameTitleMacro: Ast.Macro | undefined = node.content.find(sub => sub.type === 'macro' && sub.content === 'frametitle') as Ast.Macro | undefined\n        const caption = chooseCaption(node.args?.[3], frameTitleMacro?.args?.[2])\n        element = {\n            type: TeXElementType.Environment,\n            name: node.env,\n            label: `${node.env.charAt(0).toUpperCase()}${node.env.slice(1)}` + (config.caption && caption ? `: ${caption}` : ''),\n            ...attributes\n        }\n    } else if ((node.type === 'environment') && (\n                (node.env === 'figure' || node.env === 'figure*') && config.macros.envs.includes('figure') ||\n                (node.env === 'table' || node.env === 'table*') && config.macros.envs.includes('table'))) {\n        const captionMacro: Ast.Macro | undefined = node.content.find(sub => sub.type === 'macro' && sub.content === 'caption') as Ast.Macro | undefined\n        const caption = chooseCaption(captionMacro?.args?.[0], captionMacro?.args?.[1])\n        if (node.env.endsWith('*')) {\n            node.env = node.env.slice(0, -1)\n        }\n        element = {\n            type: TeXElementType.Environment,\n            name: node.env,\n            label: `${node.env.charAt(0).toUpperCase()}${node.env.slice(1)}` + (config.caption && caption ? `: ${caption}` : ''),\n            ...attributes\n        }\n    } else if ((node.type === 'environment') && (node.env === 'macro' || node.env === 'environment')) {\n        // DocTeX: \\begin{macro}{<macro>}\n        const caption = (node.content[0] as Ast.Group | undefined)?.content[0] as Ast.String | undefined\n        element = {\n            type: TeXElementType.Environment,\n            name: node.env,\n            label: `${node.env.charAt(0).toUpperCase()}${node.env.slice(1)}` + (config.caption && caption ? `: ${caption.content}` : ''),\n            ...attributes\n        }\n    } else if ((node.type === 'environment' || node.type === 'mathenv') && config.macros.envs.includes(node.env)) {\n        element = {\n            type: TeXElementType.Environment,\n            name: node.env,\n            label: `${node.env.charAt(0).toUpperCase()}${node.env.slice(1)}`,\n            ...attributes\n        }\n    } else if (node.type === 'macro' && ['input', 'InputIfFileExists', 'include', 'SweaveInput', 'subfile', 'subfileinclude', 'loadglsentries', 'markdownInput'].includes(node.content)) {\n        const arg0 = sanitizeInputFilePath(argContentToStr(node.args?.[0]?.content || []))\n        const subFile = await resolveFile([ path.dirname(filePath), path.dirname(lw.root.file.path || ''), ...config.texDirs ], arg0)\n        if (subFile) {\n            element = {\n                type: TeXElementType.SubFile,\n                name: node.content,\n                label: config.subFile ? subFile : arg0,\n                ...attributes\n            }\n            if (config.subFile) {\n                await constructFile(subFile, config, structs)\n            }\n        }\n    } else if (node.type === 'macro' && ['import', 'inputfrom', 'includefrom'].includes(node.content)) {\n        const arg0 = sanitizeInputFilePath(argContentToStr(node.args?.[0]?.content || []))\n        const arg1 = sanitizeInputFilePath(argContentToStr(node.args?.[1]?.content || []))\n        const subFile = await resolveFile([ arg0, path.join(path.dirname(lw.root.file.path || ''), arg0 )], arg1)\n        if (subFile) {\n            element = {\n                type: TeXElementType.SubFile,\n                name: node.content,\n                label: config.subFile ? subFile : arg1,\n                ...attributes\n            }\n            if (config.subFile) {\n                await constructFile(subFile, config, structs)\n            }\n        }\n    } else if (node.type === 'macro' && ['subimport', 'subinputfrom', 'subincludefrom'].includes(node.content)) {\n        const arg0 = sanitizeInputFilePath(argContentToStr(node.args?.[0]?.content || []))\n        const arg1 = sanitizeInputFilePath(argContentToStr(node.args?.[1]?.content || []))\n        const subFile = await resolveFile([ path.dirname(filePath) ], path.join(arg0, arg1))\n        if (subFile) {\n            element = {\n                type: TeXElementType.SubFile,\n                name: node.content,\n                label: config.subFile ? subFile : arg1,\n                ...attributes\n            }\n            if (config.subFile) {\n                await constructFile(subFile, config, structs)\n            }\n        }\n    }\n    if (rnwSub.length > 0 && rnwSub[rnwSub.length - 1].line >= attributes.lineFr) {\n        const rnw = rnwSub.pop()\n        if (rnw !== undefined) {\n            root.children.push({\n                type: TeXElementType.SubFile,\n                name: 'RnwChild',\n                label: config.subFile ? rnw.subFile : rnw.path,\n                lineFr: attributes.lineFr,\n                lineTo: attributes.lineTo,\n                filePath, children: []\n            })\n            if (config.subFile) {\n                await constructFile(rnw.subFile, config, structs)\n            }\n        }\n    }\n    if (element !== undefined) {\n        root.children.push(element)\n        root = element\n    }\n    if ('content' in node && typeof node.content !== 'string') {\n        for (const sub of node.content) {\n            if (['string', 'parbreak', 'whitespace'].includes(sub.type)) {\n                continue\n            }\n            inAppendix = await parseNode(sub, rnwSub, root, filePath, config, structs, inAppendix)\n        }\n    }\n\n    return inAppendix\n}\n\nfunction insertSubFile(structs: FileStructureCache, struct?: TeXElement[], traversed?: string[]): TeXElement[] {\n    if (lw.root.file.path === undefined) {\n        return []\n    }\n    struct = JSON.parse(JSON.stringify(struct ?? structs[lw.root.file.path] ?? [])) as TeXElement[]\n    traversed = traversed ?? [lw.root.file.path]\n    let elements: TeXElement[] = []\n    for (const element of struct) {\n        if (element.type === TeXElementType.SubFile\n            && structs[element.label]\n            && !traversed.includes(element.label)) {\n            elements = [...elements, ...insertSubFile(structs, structs[element.label], [...traversed, element.label])]\n            continue\n        }\n        if (element.children.length > 0) {\n            element.children = insertSubFile(structs, element.children)\n        }\n        elements.push(element)\n    }\n    return elements\n}\n\nfunction nestNonSection(struct: TeXElement[]): TeXElement[] {\n    const elements: TeXElement[] = []\n    let currentSection: TeXElement | undefined\n    for (const element of struct) {\n        if (element.type === TeXElementType.Section || element.type === TeXElementType.SectionAst) {\n            elements.push(element)\n            currentSection = element\n        } else if (currentSection === undefined) {\n            elements.push(element)\n        } else {\n            currentSection.children.push(element)\n        }\n        if (element.children.length > 0) {\n            element.children = nestNonSection(element.children)\n        }\n    }\n    return elements\n}\n\nfunction nestSection(struct: TeXElement[], config: StructureConfig): TeXElement[] {\n    const stack: TeXElement[] = []\n    const elements: TeXElement[] = []\n    for (const element of struct) {\n        if (element.type !== TeXElementType.Section && element.type !== TeXElementType.SectionAst) {\n            elements.push(element)\n        } else if (stack.length === 0) {\n            stack.push(element)\n            elements.push(element)\n        } else if (config.secIndex[element.name] <= config.secIndex[stack[0].name]) {\n            stack.length = 0\n            stack.push(element)\n            elements.push(element)\n        } else if (config.secIndex[element.name] > config.secIndex[stack[stack.length - 1].name]) {\n            stack[stack.length - 1].children.push(element)\n            stack.push(element)\n        } else {\n            while(config.secIndex[element.name] <= config.secIndex[stack[stack.length - 1].name]) {\n                stack.pop()\n            }\n            stack[stack.length - 1].children.push(element)\n            stack.push(element)\n        }\n    }\n    return elements\n}\n\nfunction fixSectionToLine(structure: TeXElement[], config: StructureConfig, lastLine: number) {\n    const sections = structure.filter(section => config.secIndex[section.name] !== undefined)\n    sections.forEach(section => {\n        const sameFileSections = sections.filter(candidate =>\n            (candidate.filePath === section.filePath) &&\n            (candidate.lineFr >= section.lineFr) &&\n            (candidate !== section))\n        if (sameFileSections.length > 0 && sameFileSections[0].lineFr === section.lineFr) {\n            // On the same line, e.g., \\section{one}\\section{two}\n            return\n        } else if (sameFileSections.length > 0) {\n            section.lineTo = sameFileSections[0].lineFr - 1\n        } else {\n            section.lineTo = lastLine\n        }\n        if (section.children.length > 0) {\n            fixSectionToLine(section.children, config, section.lineTo)\n        }\n    })\n}\n\nfunction addFloatNumber(struct: TeXElement[], counter: {[env: string]: number} = {}): TeXElement[] {\n    for (const element of struct) {\n        if (element.type === TeXElementType.Environment && element.name !== 'macro' && element.name !== 'environment') {\n            counter[element.name] = (counter[element.name] ?? 0) + 1\n            const parts = element.label.split(':')\n            parts[0] += ` ${(counter[element.name] ?? 0).toString()}`\n            element.label = parts.join(':')\n        }\n        if (element.children.length > 0) {\n            addFloatNumber(element.children, counter)\n        }\n    }\n    return struct\n}\n\nfunction addSectionNumber(struct: TeXElement[], config: StructureConfig, tag?: string, lowest?: number): TeXElement[] {\n    tag = tag ?? ''\n    lowest = lowest ?? Math.min(...struct\n        .filter(element => config.secIndex[element.name] !== undefined)\n        .map(element => config.secIndex[element.name]))\n    let counter: {[level: number]: number} = {}\n    let inAppendix = false\n    for (const element of struct) {\n        if (element.appendix && !inAppendix) {\n            inAppendix = true\n            counter = {}\n        }\n        if (config.secIndex[element.name] === undefined) {\n            continue\n        }\n        if (element.type === TeXElementType.Section) {\n            counter[config.secIndex[element.name]] = (counter[config.secIndex[element.name]] ?? 0) + 1\n        }\n        let sectionNumber = tag +\n            '0.'.repeat(config.secIndex[element.name] - lowest) +\n            (counter[config.secIndex[element.name]] ?? 0).toString()\n        if (inAppendix) {\n            const segments = sectionNumber.split('.')\n            segments[0] = String.fromCharCode(parseInt(sectionNumber.split('.')[0]) + 64)\n            sectionNumber = segments.join('.')\n        }\n        element.label = `${element.type === TeXElementType.Section ? sectionNumber : '*'} ${element.label}`\n        if (element.children.length > 0) {\n            addSectionNumber(element.children, config, sectionNumber + '.', config.secIndex[element.name] + 1)\n        }\n    }\n    return struct\n}\n\nasync function parseRnwChildMacro(content: string, file: string, rootFile: string): Promise<{subFile: string, path: string, line: number}[]> {\n    const children: {subFile: string, path: string, line: number}[] = []\n    const childRegExp = new InputFileRegExp()\n    while(true) {\n        const result = await childRegExp.execChild(content, file, rootFile)\n        if (!result) {\n            break\n        }\n        const line = (content.slice(0, result.match.index).match(/\\n/g) || []).length\n        children.push({subFile: result.path, path: result.match.path, line})\n    }\n    return children\n}\n\nfunction refreshLaTeXModelConfig(subFile: boolean = true, defaultFloats = ['frame']): StructureConfig {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n\n    const structConfig: StructureConfig = {\n        macros: {\n            cmds: configuration.get('view.outline.commands') as string[],\n            envs: configuration.get('view.outline.floats.enabled') as boolean ? ['figure', 'table', ...defaultFloats] : defaultFloats,\n            secs: []\n        },\n        secIndex: {},\n        texDirs: configuration.get('latex.texDirs') as string[],\n        subFile,\n        caption: configuration.get('view.outline.floats.caption.enabled') as boolean\n    }\n\n    const hierarchy = configuration.get('view.outline.sections') as string[]\n    hierarchy.forEach((sec, index) => {\n        sec.split('|').forEach(cmd => {\n            structConfig.secIndex[cmd] = index\n        })\n    })\n\n    structConfig.macros.secs = hierarchy.map(sec => sec.split('|')).flat()\n\n    return structConfig\n}\n\nexport const outline = {\n    refreshLaTeXModelConfig,\n    parseNode,\n    nestNonSection,\n    nestSection,\n    addFloatNumber,\n    addSectionNumber\n}\n"
  },
  {
    "path": "src/outline/structure.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport type { TeXElement } from '../types'\nimport { construct as constructLaTeX } from './structure/latex'\nimport { buildBibTeX } from './structure/bibtex'\nimport { construct as constructDocTeX } from './structure/doctex'\n\nconst logger = lw.log('Structure')\n\nexport const outline = {\n    reconstruct,\n    refresh,\n    reveal\n}\n\nlw.onConfigChange(['view.outline.sections', 'view.outline.commands'], async () => {\n    await lw.parser.parse.reset()\n    lw.cache.paths().forEach(async filePath => {\n        const ast = lw.cache.get(filePath)?.ast\n        if (ast) {\n            await lw.parser.parse.args(ast)\n        }\n    })\n    void reconstruct()\n})\n\nasync function reconstruct() {\n    state.structure = await build(true)\n    state.treeDataProvider.structureChanged.fire(undefined)\n    lw.event.fire(lw.event.StructureUpdated)\n    return state.structure\n}\n\nasync function refresh(fireChangedEvent: boolean = true) {\n    state.structure = await build(false)\n    if (fireChangedEvent) {\n        state.treeDataProvider.structureChanged.fire(undefined)\n        lw.event.fire(lw.event.StructureUpdated)\n    }\n    return state.structure\n}\n\nfunction reveal(e: vscode.TextEditorSelectionChangeEvent) {\n    if (!(vscode.workspace.getConfiguration('latex-workshop').get('view.outline.follow.editor') as boolean) || !state.view.visible) {\n        return\n    }\n    const line = e.selections[0].active.line\n    const f = e.textEditor.document.fileName\n    const currentNode = traverseSectionTree(state.structure, f, line)\n    return currentNode ? state.view.reveal(currentNode, {select: true}) : undefined\n}\n\n/**\n * Return the latex or bibtex structure\n *\n * @param force If `false` and some cached data exists for the corresponding file, use it. If `true`, always recompute the structure from disk\n */\nasync function build(force: boolean): Promise<TeXElement[]> {\n    const document = vscode.window.activeTextEditor?.document\n    if (document?.languageId === 'doctex') {\n        if (force || !state.cachedDTX || getCachedDataRootFileName(state.cachedDTX) !== document.fileName) {\n            state.cachedDTX = undefined\n            state.cachedDTX = await constructDocTeX(document)\n            logger.log(`Structure ${force ? 'force ' : ''}updated with ${state.structure.length} entries for ${document.uri.fsPath} .`)\n        }\n        state.structure = state.cachedDTX\n    } else if (document?.languageId === 'bibtex') {\n        if (force || !state.cachedBib || getCachedDataRootFileName(state.cachedBib) !== document.fileName) {\n            state.cachedBib = undefined\n            state.cachedBib = await buildBibTeX(document)\n            logger.log(`Structure ${force ? 'force ' : ''}updated with ${state.structure.length} entries for ${document.uri.fsPath} .`)\n        }\n        state.structure = state.cachedBib\n    } else if (lw.root.file.path) {\n        if (force || !state.cachedTeX) {\n            state.cachedTeX = undefined\n            state.cachedTeX = await constructLaTeX()\n            logger.log(`Structure ${force ? 'force ' : ''}updated with ${state.structure.length} root sections for ${lw.root.file.path} .`)\n        }\n        state.structure = state.cachedTeX\n    } else {\n        state.structure = []\n        logger.log('Structure cleared on undefined root.')\n    }\n    return state.structure\n}\n\nfunction getCachedDataRootFileName(sections: TeXElement[]): string | undefined {\n    return sections[0]?.filePath\n}\n\nfunction getChildPaths(section: TeXElement, paths: Set<string> = new Set()) {\n    section.children.forEach(child => {\n        paths.add(child.filePath)\n        getChildPaths(child, paths)\n    })\n    return paths\n}\n\nfunction traverseSectionTree(sections: TeXElement[], filePath: string, lineNo: number): TeXElement | undefined {\n    for (const node of sections) {\n        if ((node.filePath === filePath &&\n                node.lineFr <= lineNo && node.lineTo >= lineNo) ||\n            (node.filePath !== filePath && getChildPaths(node).has(filePath))) {\n            // Look for a more precise surrounding section\n            return traverseSectionTree(node.children, filePath, lineNo) ?? node\n        }\n    }\n    return undefined\n}\n\nclass StructureProvider implements vscode.TreeDataProvider<TeXElement> {\n    readonly structureChanged: vscode.EventEmitter<TeXElement | undefined | null> = new vscode.EventEmitter<TeXElement | undefined | null>()\n    readonly onDidChangeTreeData: vscode.Event<TeXElement | undefined | null> = this.structureChanged.event\n\n    getTreeItem(element: TeXElement): vscode.TreeItem {\n        const treeItem: vscode.TreeItem = new vscode.TreeItem(\n            element.label,\n            element.children.length > 0 ? vscode.TreeItemCollapsibleState.Expanded :\n                                          vscode.TreeItemCollapsibleState.None)\n\n        treeItem.command = {\n            command: 'latex-workshop.goto-section',\n            title: '',\n            arguments: [element.filePath, element.lineFr]\n        }\n        treeItem.tooltip = `Line ${element.lineFr + 1} at ${element.filePath}`\n\n        return treeItem\n    }\n\n    getChildren(element?: TeXElement): vscode.ProviderResult<TeXElement[]> {\n        if (lw.root.file.path === undefined) {\n            return []\n        }\n        return element?.children ?? refresh(false)\n    }\n\n    getParent(element?: TeXElement): TeXElement | undefined {\n        if (lw.root.file.path === undefined || !element) {\n            return\n        }\n        return element.parent\n    }\n}\n\nconst treeDataProvider = new StructureProvider()\nconst state = {\n    structure: [] as TeXElement[],\n    cachedTeX: undefined as TeXElement[] | undefined,\n    cachedBib: undefined as TeXElement[] | undefined,\n    cachedDTX: undefined as TeXElement[] | undefined,\n    view: vscode.window.createTreeView('latex-workshop-structure', { treeDataProvider, showCollapseAll: true }),\n    treeDataProvider\n}\n"
  },
  {
    "path": "src/parse/find.ts",
    "content": "import * as vscode from 'vscode'\nimport { escapeRegExp, stripCommentsAndVerbatim } from '../utils/utils'\nimport type { TeXMathEnv } from '../types'\n\nconst ENV_NAMES = [\n    'align', 'align\\\\*', 'alignat', 'alignat\\\\*', 'aligned', 'alignedat', 'array', 'Bmatrix', 'bmatrix', 'cases', 'CD', 'eqnarray', 'eqnarray\\\\*', 'equation', 'equation\\\\*', 'flalign', 'flalign\\\\*', 'gather', 'gather\\\\*', 'gathered', 'matrix', 'multline', 'multline\\\\*', 'pmatrix', 'smallmatrix', 'split', 'subarray', 'subeqnarray', 'subeqnarray\\\\*', 'Vmatrix', 'vmatrix'\n]\n\nexport function findTeX(document: vscode.TextDocument, position: vscode.Position): TeXMathEnv | undefined {\n    const envBeginPat = new RegExp(`\\\\\\\\begin\\\\{(${ENV_NAMES.join('|')})\\\\}`)\n    let r = document.getWordRangeAtPosition(position, envBeginPat)\n    if (r) {\n        const envname = getFirstRememberedSubstring(document.getText(r), envBeginPat)\n        return findHoverOnEnv(document, envname, r.start)\n    }\n    const parenBeginPat = /(\\\\\\[|\\\\\\(|\\$\\$)/\n    r = document.getWordRangeAtPosition(position, parenBeginPat)\n    if (r) {\n        const paren = getFirstRememberedSubstring(document.getText(r), parenBeginPat)\n        return findHoverOnParen(document, paren, r.start)\n    }\n    return findHoverOnInline(document, position)\n}\n\n//  \\begin{...}                \\end{...}\n//  ^\n//  startPos\nfunction findHoverOnEnv(document: vscode.TextDocument, envname: string, startPos: vscode.Position): TeXMathEnv | undefined {\n    const pattern = new RegExp('\\\\\\\\end\\\\{' + escapeRegExp(envname) + '\\\\}')\n    const startPos1 = new vscode.Position(startPos.line, startPos.character + envname.length + '\\\\begin{}'.length)\n    const endPos = findEndPair(document, pattern, startPos1)\n    if ( endPos ) {\n        const range = new vscode.Range(startPos, endPos)\n        return {texString: document.getText(range), range, envname}\n    }\n    return\n}\n\n//  \\[                \\]\n//  ^\n//  startPos\nfunction findHoverOnParen(document: vscode.TextDocument, envname: string, startPos: vscode.Position): TeXMathEnv | undefined {\n    const pattern = envname === '\\\\[' ? /\\\\\\]/ : envname === '\\\\(' ? /\\\\\\)/ : /\\$\\$/\n    const startPos1 = new vscode.Position(startPos.line, startPos.character + envname.length)\n    const endPos = findEndPair(document, pattern, startPos1)\n    if ( endPos ) {\n        const range = new vscode.Range(startPos, endPos)\n        return {texString: document.getText(range), range, envname}\n    }\n    return\n}\n\nfunction findHoverOnInline(document: vscode.TextDocument, position: vscode.Position): TeXMathEnv | undefined {\n    const currentLine = document.lineAt(position.line).text\n    const regex = /(?<!\\$|\\\\)\\$(?!\\$)(?:\\\\.|[^\\\\])+?\\$|\\\\\\(.+?\\\\\\)/\n    let s = currentLine\n    let base = 0\n    let m: RegExpMatchArray | null = s.match(regex)\n    while (m) {\n        if (m.index !== undefined) {\n            const matchStart = base + m.index\n            const matchEnd = base + m.index + m[0].length\n            if ( matchStart <= position.character && position.character <= matchEnd ) {\n                const range = new vscode.Range(position.line, matchStart, position.line, matchEnd)\n                return {texString: document.getText(range), range, envname: '$'}\n            } else {\n                base = matchEnd\n                s = currentLine.substring(base)\n            }\n        } else {\n            break\n        }\n        m = s.match(regex)\n    }\n    return\n}\n\n//  \\begin{...}                \\end{...}\n//             ^\n//             startPos1\nexport function findEndPair(document: vscode.TextDocument, endPat: RegExp, startPos1: vscode.Position): vscode.Position | undefined {\n    const currentLine = document.lineAt(startPos1).text.substring(startPos1.character)\n    const l = stripCommentsAndVerbatim(currentLine)\n    let m = l.match(endPat)\n    if (m && m.index !== undefined) {\n        return new vscode.Position(startPos1.line, startPos1.character + m.index + m[0].length)\n    }\n\n    let lineNum = startPos1.line + 1\n    while (lineNum <= document.lineCount) {\n        m = stripCommentsAndVerbatim(document.lineAt(lineNum).text).match(endPat)\n        if (m && m.index !== undefined) {\n            return new vscode.Position(lineNum, m.index + m[0].length)\n        }\n        lineNum += 1\n    }\n    return\n}\n\nfunction getFirstRememberedSubstring(s: string, pat: RegExp): string {\n    const m = s.match(pat)\n    if (m && m[1]) {\n        return m[1]\n    }\n    return 'never return here'\n}\n\nconst MATH_ENV_NAMES = [\n    'align', 'align\\\\*', 'alignat', 'alignat\\\\*', 'eqnarray', 'eqnarray\\\\*', 'equation', 'equation\\\\*', 'flalign', 'flalign\\\\*', 'gather', 'gather\\\\*', 'multline', 'multline\\\\*', 'subeqnarray', 'subeqnarray\\\\*',\n]\n\nexport function findMath(document: vscode.TextDocument, position: vscode.Position): TeXMathEnv | undefined {\n    const limit = vscode.workspace.getConfiguration('latex-workshop').get('hover.preview.maxLines') as number\n    const envNamePatMathMode = new RegExp(`(${MATH_ENV_NAMES.join('|')})`)\n    const envBeginPatMathMode = new RegExp(`\\\\\\\\\\\\[|\\\\\\\\\\\\(|\\\\\\\\begin\\\\{(${MATH_ENV_NAMES.join('|')})\\\\}`)\n    //: /\\\\\\[|\\\\\\(|\\\\begin\\{(align|align\\*|alignat|alignat\\*|eqnarray|eqnarray\\*|equation|equation\\*|flalign|flalign\\*|gather|gather\\*)\\}/\n    let texMath = findTeX(document, position)\n    if (texMath && (texMath.envname === '$' || texMath.envname.match(envNamePatMathMode))) {\n        return texMath\n    }\n    const beginPos = findBeginPair(document, envBeginPatMathMode, position, limit)\n    if (beginPos) {\n        texMath = findTeX(document, beginPos)\n        if (texMath) {\n            const beginEndRange = texMath.range\n            if (beginEndRange.contains(position)) {\n                return texMath\n            }\n        }\n    }\n    return\n}\n\n//  \\begin{...}                \\end{...}\n//  ^                          ^\n//  return pos                 endPos1\nfunction findBeginPair(document: vscode.TextDocument, beginPat: RegExp, endPos1: vscode.Position, limit: number): vscode.Position | undefined {\n    const currentLine = document.lineAt(endPos1).text.substring(0, endPos1.character)\n    let l = stripCommentsAndVerbatim(currentLine)\n    let m = l.match(beginPat)\n    if (m && m.index !== undefined) {\n        return new vscode.Position(endPos1.line, m.index)\n    }\n    let lineNum = endPos1.line - 1\n    let i = 0\n    while (lineNum >= 0 && i < limit) {\n        l = document.lineAt(lineNum).text\n        l = stripCommentsAndVerbatim(l)\n        m = l.match(beginPat)\n        if (m && m.index !== undefined) {\n            return new vscode.Position(lineNum, m.index)\n        }\n        lineNum -= 1\n        i += 1\n    }\n    return\n}\n"
  },
  {
    "path": "src/parse/index.ts",
    "content": "import { parser as parse } from './parser'\nimport { findTeX, findMath, findEndPair } from './find'\nimport { findMacros } from './newcommandfinder'\n\nexport const parser = {\n    parse,\n    find: {\n        tex: findTeX,\n        math: findMath,\n        macro: findMacros,\n        endPair: findEndPair\n    }\n}\n"
  },
  {
    "path": "src/parse/newcommandfinder.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../lw'\n\nconst logger = lw.log('Parse', 'Macro')\n\nexport async function findMacros(ctoken?: vscode.CancellationToken): Promise<string> {\n    let macros = ''\n    const filepaths = []\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const macroDefPath = await resolveMacroDefFile(configuration.get('hover.preview.newcommand.newcommandFile') as string)\n    if (macroDefPath !== undefined) {\n        filepaths.push(macroDefPath)\n        if (lw.cache.get(macroDefPath) === undefined) {\n            lw.cache.add(macroDefPath)\n        }\n    }\n    if (configuration.get('hover.preview.newcommand.parseTeXFile.enabled') as boolean) {\n        lw.cache.getIncludedTeX().forEach(filepath => filepaths.push(filepath))\n    }\n    for (const filepath of filepaths) {\n        if (ctoken?.isCancellationRequested) {\n            return ''\n        }\n        await lw.cache.wait(filepath)\n        const content = lw.cache.get(filepath)?.content\n        const ast = lw.cache.get(filepath)?.ast\n        if (content === undefined || ast === undefined) {\n            logger.log(`Cannot parse the AST of ${filepath} .`)\n        } else {\n            macros += parseAst(content, ast).join('\\n') + '\\n'\n        }\n    }\n\n    return macros\n}\n\nfunction parseAst(content: string, node: Ast.Node): string[] {\n    let macros = []\n    // \\newcommand{\\fix}[3][]{\\chdeleted{#2}\\chadded[comment={#1}]{#3}}\n    // \\newcommand\\WARNING{\\textcolor{red}{WARNING}}\n    const isNewCommand = node.type === 'macro' &&\n        ['newcommand', 'renewcommand', 'newrobustcmd', 'renewrobustcmd'].includes(node.content) &&\n        node.args?.[2]?.content?.[0]?.type === 'macro'\n    // \\DeclarePairedDelimiterX\\braketzw[2]{\\langle}{\\rangle}{#1\\,\\delimsize\\vert\\,\\mathopen{}#2}\n    const isDeclarePairedDelimiter = node.type === 'macro' &&\n        ['DeclarePairedDelimiter', 'DeclarePairedDelimiterX', 'DeclarePairedDelimiterXPP'].includes(node.content) &&\n        node.args?.[0]?.content?.[0]?.type === 'macro'\n    const isProvideCommand = node.type === 'macro' &&\n        ['providecommand', 'providerobustcmd', 'DeclareMathOperator', 'DeclareRobustCommand'].includes(node.content) &&\n        node.args?.[1]?.content?.[0]?.type === 'macro'\n    if (isNewCommand || isDeclarePairedDelimiter || isProvideCommand) {\n        macros.push(\n            lw.parser.parse.stringify(node)\n                // Change DeclareRobustCommand to newcommand\n                .replaceAll(/^\\\\DeclareRobustCommand([^a-zA-Z])/g, '\\\\newcommand$1')\n                // Change providecommand to newcommand\n                .replaceAll(/^\\\\providecommand([^a-zA-Z])/g, '\\\\newcommand$1')\n                // Remove the star as MathJax does not support #4127\n                .replaceAll(/^\\\\([a-zA-Z]+)\\*/g, '\\\\$1')\n        )\n    }\n\n    if ('content' in node && typeof node.content !== 'string') {\n        for (const subNode of node.content) {\n            macros = [...macros, ...parseAst(content, subNode)]\n        }\n    }\n    return macros\n}\n\nasync function resolveMacroDefFile(filepath: string): Promise<string | undefined> {\n    if (filepath === '') {\n        return undefined\n    }\n    let filepathAbs: string\n    if (path.isAbsolute(filepath)) {\n        filepathAbs = filepath\n    } else {\n        if (lw.root.file.path === undefined) {\n            await lw.root.find()\n        }\n        const rootDir = lw.root.dir.path\n        if (rootDir === undefined) {\n            logger.log(`Cannot identify the absolute path of macro definition file ${filepath} without root file.`)\n            return undefined\n        }\n        filepathAbs = path.join(rootDir, filepath)\n    }\n    if (await lw.file.exists(filepathAbs)) {\n        return filepathAbs\n    }\n    return undefined\n}\n"
  },
  {
    "path": "src/parse/parser/biberlog.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport { type IParser, type LogEntry, showCompilerDiagnostics } from './parserutils'\n\n\nconst logger = lw.log('Parser', 'BiberLog')\n\nconst bibFileInfo = /^INFO - Found BibTeX data source '(.*)'$/\nconst lineError = /^ERROR - BibTeX subsystem.*, line (\\d+), (.*)$/\nconst missingEntryWarning = /^WARN - (I didn't find a database entry for '.*'.*)$/\nconst lineWarning = /^WARN - (.* entry '(.*)' .*)$/\n\nconst biberDiagnostics = vscode.languages.createDiagnosticCollection('Biber')\n\nconst buildLog: LogEntry[] = []\n\nexport const biberLogParser: IParser = {\n    clearLog,\n    showLog,\n    parse\n}\n\nfunction clearLog() {\n    biberDiagnostics.clear()\n}\n\nfunction showLog() {\n    showCompilerDiagnostics(biberDiagnostics, buildLog)\n}\n\nfunction parse(log: string, rootFile?: string) {\n    if (rootFile === undefined) {\n        rootFile = lw.root.file.path\n    }\n    if (rootFile === undefined) {\n        logger.log('How can you reach this point?')\n        return []\n    }\n    const bibFileStack = [ rootFile ]\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    let excludeRegexp: RegExp[]\n    try {\n        excludeRegexp = (configuration.get('message.biberlog.exclude') as string[]).map(regexp => RegExp(regexp))\n    } catch (e) {\n        logger.logError('Invalid message.biberlog.exclude config.', e)\n        return []\n    }\n    const lines = log.split('\\n')\n    buildLog.length = 0\n\n    for(const line of lines) {\n        parseLine(line, bibFileStack, excludeRegexp)\n    }\n\n    logger.log(`Logged ${buildLog.length} messages.`)\n    return buildLog\n}\n\nfunction parseLine(line: string, bibFileStack: string[], excludeRegexp: RegExp[]) {\n    let result: RegExpMatchArray | null = null\n\n    result = line.match(bibFileInfo)\n    if (result) {\n        const filename = resolveBibFile(result[1], bibFileStack[0])\n        bibFileStack.push(filename)\n        logger.log(`Found BibTeX file ${filename}`)\n    }\n\n    result = line.match(lineError)\n    if (result) {\n        const lineNumber = parseInt(result[1], 10)\n        const filename = bibFileStack.at(-1) || bibFileStack[0]\n        pushLog('error', filename, result[2], lineNumber, excludeRegexp)\n        return\n    }\n\n    result = line.match(missingEntryWarning)\n    if (result) {\n        const lineNumber = 1\n        const filename = bibFileStack.at(-1) || bibFileStack[0]\n        pushLog('warning', filename, result[1], lineNumber, excludeRegexp)\n    }\n\n    result = line.match(lineWarning)\n    if (result) {\n        const keyLocation = findKeyLocation(result[2])\n        if (keyLocation) {\n            pushLog('warning', keyLocation.file, result[1], keyLocation.line, excludeRegexp)\n        }\n    }\n}\n\nfunction pushLog(type: string, file: string, message: string, line: number, excludeRegexp: RegExp[]) {\n    for (const regexp of excludeRegexp) {\n        if (message.match(regexp)) {\n            return\n        }\n    }\n    buildLog.push({ type, file, text: message, line})\n}\n\nfunction resolveBibFile(filename: string, rootFile: string): string {\n    if (!lw.cache.get(rootFile)) {\n        return filename\n    }\n    const bibFiles = lw.cache.getIncludedBib(rootFile)\n    for (const bib of bibFiles) {\n        if (bib.endsWith(filename)) {\n            return bib\n        }\n    }\n    logger.log(`Cannot resolve file ${filename} .`)\n    return filename\n}\n\nfunction findKeyLocation(key: string): {file: string, line: number} | undefined {\n    const entry = lw.completion.citation.getItem(key)\n    if (entry) {\n        const file = entry.file\n        const line = entry.position.line + 1\n        return {file, line}\n    } else {\n        logger.log(`Cannot find key ${key}`)\n        return\n    }\n}\n"
  },
  {
    "path": "src/parse/parser/bibtexlog.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport { type IParser, type LogEntry, showCompilerDiagnostics } from './parserutils'\n\n\nconst logger = lw.log('Parser', 'BibTeXLog')\n\nconst multiLineWarning = /^Warning--(.+)\\n--line (\\d+) of file (.+)$/gm\nconst singleLineWarning = /^Warning--(.+) in ([^\\s]+)\\s*$/gm\nconst multiLineError = /^(.*)---line (\\d+) of file (.*)\\n([^]+?)\\nI'm skipping whatever remains of this entry$/gm\nconst badCrossReference = /^(A bad cross reference---entry \".+?\"\\nrefers to entry.+?, which doesn't exist)$/gm\nconst multiLineMacroError = /^(.*)\\n?---line (\\d+) of file (.*)\\n([^]+?)\\nI'm skipping whatever remains of this command$/gm\nconst errorAuxFile = /^(.*)---while reading file (.*)$/gm\n\nconst bibDiagnostics = vscode.languages.createDiagnosticCollection('BibTeX')\n\nconst buildLog: LogEntry[] = []\n\nexport const bibtexLogParser: IParser = {\n    clearLog,\n    showLog,\n    parse\n}\n\nfunction clearLog() {\n    bibDiagnostics.clear()\n}\n\nfunction showLog() {\n    showCompilerDiagnostics(bibDiagnostics, buildLog)\n}\n\nfunction parse(log: string, rootFile?: string) {\n    if (rootFile === undefined) {\n        rootFile = lw.root.file.path\n    }\n    if (rootFile === undefined) {\n        logger.log('How can you reach this point?')\n        return []\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    let excludeRegexp: RegExp[]\n    try {\n        excludeRegexp = (configuration.get('message.bibtexlog.exclude') as string[]).map(regexp => RegExp(regexp))\n    } catch (e) {\n        logger.logError('Invalid message.bibtexlog.exclude config.', e)\n        return []\n    }\n    buildLog.length = 0\n\n    let result: RegExpExecArray | null\n    while ((result = singleLineWarning.exec(log))) {\n        const location = findKeyLocation(result[2])\n        if (location) {\n            pushLog('warning', location.file, result[1],location.line, excludeRegexp )\n        }\n    }\n    while ((result = multiLineWarning.exec(log))) {\n        const filename = resolveBibFile(result[3], rootFile)\n        pushLog('warning', filename, result[1], parseInt(result[2], 10), excludeRegexp)\n    }\n    while ((result = multiLineError.exec(log))) {\n        const filename = resolveBibFile(result[3], rootFile)\n        pushLog('error', filename, result[1], parseInt(result[2], 10), excludeRegexp)\n    }\n    while ((result = multiLineMacroError.exec(log))) {\n        const filename = resolveBibFile(result[3], rootFile)\n        pushLog('error', filename, result[1], parseInt(result[2], 10), excludeRegexp)\n    }\n    while ((result = badCrossReference.exec(log))) {\n        pushLog('error', rootFile, result[1], 1, excludeRegexp)\n    }\n    while ((result = errorAuxFile.exec(log))) {\n        const filename = resolveAuxFile(result[2], rootFile)\n        pushLog('error', filename, result[1], 1, excludeRegexp)\n    }\n\n    logger.log(`Logged ${buildLog.length} messages.`)\n    return buildLog\n}\n\nfunction pushLog(type: string, file: string, message: string, line: number, excludeRegexp: RegExp[]) {\n    for (const regexp of excludeRegexp) {\n        if (message.match(regexp)) {\n            return\n        }\n    }\n    buildLog.push({ type, file, text: message, line})\n}\n\nfunction resolveAuxFile(filename: string, rootFile: string): string {\n    filename = filename.replace(/\\.aux$/, '.tex')\n    if (!lw.cache.get(rootFile)) {\n        return filename\n    }\n    const texFiles = lw.cache.getIncludedTeX(rootFile)\n    for (const tex of texFiles) {\n        if (tex.endsWith(filename)) {\n            return tex\n        }\n    }\n    logger.log(`Cannot resolve file ${filename} .`)\n    return filename\n}\n\nfunction resolveBibFile(filename: string, rootFile: string): string {\n    if (!lw.cache.get(rootFile)) {\n        return filename\n    }\n    const bibFiles = lw.cache.getIncludedBib(rootFile)\n    for (const bib of bibFiles) {\n        if (bib.endsWith(filename)) {\n            return bib\n        }\n    }\n    logger.log(`Cannot resolve file ${filename} .`)\n    return filename\n}\n\nfunction findKeyLocation(key: string): {file: string, line: number} | undefined {\n    const entry = lw.completion.citation.getItem(key)\n    if (entry) {\n        const file = entry.file\n        const line = entry.position.line + 1\n        return {file, line}\n    } else {\n        logger.log(`Cannot find key ${key}`)\n        return\n    }\n}\n"
  },
  {
    "path": "src/parse/parser/latexlog.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { lw } from '../../lw'\nimport { type IParser, type LogEntry, showCompilerDiagnostics } from './parserutils'\n\n\nconst logger = lw.log('Parser', 'TexLog')\n\nconst latexError = /^(?:(.*):(\\d+):|!)(?:\\s?(.+) [Ee]rror:)? (.+?)$/\nconst latexOverfullBox = /^(Overfull \\\\[vh]box \\([^)]*\\)) in paragraph at lines (\\d+)--(\\d+)$/\nconst latexOverfullBoxAlt = /^(Overfull \\\\[vh]box \\([^)]*\\)) detected at line (\\d+)$/\nconst latexOverfullBoxOutput = /^(Overfull \\\\[vh]box \\([^)]*\\)) has occurred while \\\\output is active(?: \\[(\\d+)\\])?/\nconst latexUnderfullBox = /^(Underfull \\\\[vh]box \\([^)]*\\)) in paragraph at lines (\\d+)--(\\d+)$/\nconst latexUnderfullBoxAlt = /^(Underfull \\\\[vh]box \\([^)]*\\)) detected at line (\\d+)$/\nconst latexUnderfullBoxOutput = /^(Underfull \\\\[vh]box \\([^)]*\\)) has occurred while \\\\output is active(?: \\[(\\d+)\\])?/\nconst latexWarn = /^((?:(?:Class|Package|Module) \\S*)|LaTeX(?: \\S*)?|LaTeX3) (Warning|Info):\\s+(.*?)(?: on(?: input)? line (\\d+))?(\\.|\\?|)$/\nconst latexPackageWarningExtraLines = /^\\((.*)\\)\\s+(.*?)(?: +on input line (\\d+))?(\\.)?$/\nconst latexMissChar = /^\\s*(Missing character:.*?!)/\nconst latexNoPageOutput = /^No pages of output\\.$/\nconst bibEmpty = /^Empty `thebibliography' environment/\nconst biberWarn = /^Biber warning:.*WARN - I didn't find a database entry for '([^']+)'/\n\n// LaTeX Warning: Reference `non-exist' on page 1 undefined on input line 10.\n// LaTeX Warning: Citation `also-nothing' on page 1 undefined on input line 12.\nconst UNDEFINED_REFERENCE = /^LaTeX Warning: (Reference|Citation) `(.*?)' on page (?:\\d+) undefined on input line (\\d+).$/\n\n// const truncatedLine = /(.{77}[^\\.](\\w|\\s|-|\\\\|\\/))(\\r\\n|\\n)/g\n// A line with an error message will start with an 'l' character followed by a line number and then a space.\n// After that it shows the line with the error but only up to the position of the error.\n// If the error comes very late in the line, the error output will start with 3 dots.\n// The regular expression is set up to include the 3 dots as an optional element, such that the capture group $2\n// always contains actual text that appears in the line.\nconst messageLine = /^l\\.\\d+\\s(\\.\\.\\.)?(.*)$/\n\nconst texDiagnostics = vscode.languages.createDiagnosticCollection('LaTeX')\n\nconst buildLog: LogEntry[] = []\n\nexport const latexLogParser: IParser = {\n    clearLog,\n    showLog,\n    parse\n}\n\nfunction clearLog() {\n    texDiagnostics.clear()\n}\n\nfunction showLog() {\n    showCompilerDiagnostics(texDiagnostics, buildLog)\n}\n\ntype ParserState = {\n    searchEmptyLine: boolean,\n    insideBoxWarn: boolean,\n    insideError: boolean,\n    currentResult: LogEntry,\n    nested: number,\n    rootFile: string,\n    fileStack: string[]\n}\n\nfunction initParserState(rootFile: string): ParserState {\n    return {\n        searchEmptyLine: false,\n        insideBoxWarn: false,\n        insideError: false,\n        currentResult: { type: '', file: '', text: '', line: 1 },\n        nested: 0,\n        rootFile,\n        fileStack: [ rootFile ]\n    }\n}\n\nfunction parse(log: string, rootFile?: string) {\n    if (rootFile === undefined) {\n        rootFile = lw.root.file.path\n    }\n    if (rootFile === undefined) {\n        logger.log('How can you reach this point?')\n        return []\n    }\n\n    const lines = log.split('\\n')\n    buildLog.length = 0\n\n    const state = initParserState(rootFile)\n    for(const line of lines) {\n        parseLine(line, state)\n    }\n\n    // Push the final result\n    if (state.currentResult.type !== '' && !state.currentResult.text.match(bibEmpty)) {\n        buildLog.push(state.currentResult)\n    }\n    logger.log(`Logged ${buildLog.length} messages.`)\n    return buildLog\n}\n\nfunction parseLine(line: string, state: ParserState) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    let excludeRegexp: RegExp[]\n    try {\n        excludeRegexp = (configuration.get('message.latexlog.exclude') as string[]).map(regexp => RegExp(regexp))\n    } catch (e) {\n        logger.logError('Invalid message.latexlog.exclude config.', e)\n        return\n    }\n    // Compose the current file\n    const filename = path.resolve(path.dirname(state.rootFile), state.fileStack[state.fileStack.length - 1])\n    // Skip the first line after a box warning, this is just garbage\n    if (state.insideBoxWarn) {\n        state.insideBoxWarn = false\n        return\n    }\n    // Append the read line, since we have a corresponding result in the matching\n    if (state.searchEmptyLine) {\n        if (line.trim() === '' || (state.insideError && line.match(/^\\s/))) {\n            state.currentResult.text = state.currentResult.text + '\\n'\n            state.searchEmptyLine = false\n            state.insideError = false\n        } else {\n            const packageExtraLineResult = line.match(latexPackageWarningExtraLines)\n            if (packageExtraLineResult) {\n                state.currentResult.text += '\\n(' + packageExtraLineResult[1] + ')\\t' + packageExtraLineResult[2] + (packageExtraLineResult[4] ? '.' : '')\n                state.currentResult.line = packageExtraLineResult[3] ? parseInt(packageExtraLineResult[3], 10) : 1\n            } else if (state.insideError) {\n                const match = messageLine.exec(line)\n                if (match && match.length >= 2) {\n                    const subLine = match[2]\n                    // remember the text where the error message occurred:\n                    state.currentResult.errorPosText = subLine\n                    // skip rest of error message (usually not useful)\n                    state.searchEmptyLine = false\n                    state.insideError = false\n                } else {\n                    state.currentResult.text = state.currentResult.text + '\\n' + line\n                }\n            } else {\n                state.currentResult.text = state.currentResult.text + '\\n' + line\n            }\n        }\n        return\n    }\n    for (const regexp of excludeRegexp) {\n        if (line.match(regexp)) {\n            return\n        }\n    }\n    if (parseUndefinedReference(line, filename, state)) {\n        return\n    }\n    if (parseBadBox(line, filename, state, configuration.get('message.badbox.show'))) {\n        return\n    }\n    let result = line.match(latexNoPageOutput)\n    if (result) {\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        state.currentResult = {\n            type: 'error',\n            file: filename,\n            line: 1,\n            text: result[1]\n        }\n        state.searchEmptyLine = true\n        state.insideError = true\n        return\n    }\n    result = line.match(latexMissChar)\n    if (result) {\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        state.currentResult = {\n            type: 'warning',\n            file: filename,\n            line: 1,\n            text: result[1]\n        }\n        state.searchEmptyLine = false\n        return\n    }\n    result = line.match(latexWarn)\n    if (result) {\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        state.currentResult = {\n            type: 'warning',\n            file: filename,\n            line: result[4] ? parseInt(result[4], 10) : 1,\n            text: result[1] + ': ' + result[3] + result[5]\n        }\n        state.searchEmptyLine = true\n        return\n    }\n    result = line.match(biberWarn)\n    if (result) {\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        state.currentResult = {\n            type: 'warning',\n            file: '',\n            line: 1,\n            text: `No bib entry found for '${result[1]}'`\n        }\n        state.searchEmptyLine = false\n        parseLine(line.substring(result[0].length), state)\n        return\n    }\n\n    result = line.match(latexError)\n    if (result) {\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        state.currentResult = {\n            type: 'error',\n            text: (result[3] && result[3] !== 'LaTeX') ? `${result[3]}: ${result[4]}` : result[4],\n            file: result[1] ? path.resolve(path.dirname(state.rootFile), result[1]) : filename,\n            line: result[2] ? parseInt(result[2], 10) : 1\n        }\n        state.searchEmptyLine = true\n        state.insideError = true\n        return\n    }\n    state.nested = parseLaTeXFileStack(line, state.fileStack, state.nested)\n    if (state.fileStack.length === 0) {\n        state.fileStack.push(state.rootFile)\n    }\n}\n\nfunction parseUndefinedReference(line: string, filename: string, state: ParserState): boolean {\n    if (line === 'LaTeX Warning: There were undefined references.') {\n        return true\n    }\n    const match = line.match(UNDEFINED_REFERENCE)\n    if (match === null) {\n        return false\n    }\n\n    if (state.currentResult.type !== '') {\n        buildLog.push(state.currentResult)\n    }\n    state.currentResult = {\n        type: 'warning',\n        file: filename,\n        line: match[3] ? parseInt(match[3], 10) : 1,\n        text: `Cannot find ${match[1].toLowerCase()} \\`${match[2]}\\`.`,\n        errorPosText: match[2]\n    }\n    state.searchEmptyLine = false\n\n    return true\n}\n\nfunction parseBadBox(line: string, filename: string, state: ParserState, type?: 'both' | 'overfull' | 'underfull' | 'none'): boolean {\n    if (type === undefined || type === 'none') {\n        return false\n    }\n    const regexs = []\n    if (['both', 'overfull'].includes(type)) {\n        regexs.push(latexOverfullBox, latexOverfullBoxAlt, latexOverfullBoxOutput)\n    }\n    if (['both', 'underfull'].includes(type)) {\n        regexs.push(latexUnderfullBox, latexUnderfullBoxAlt, latexUnderfullBoxOutput)\n    }\n    for (const regex of regexs) {\n        const result = line.match(regex)\n        if (result === null) {\n            continue\n        }\n        if (state.currentResult.type !== '') {\n            buildLog.push(state.currentResult)\n        }\n        if ([latexOverfullBoxOutput, latexUnderfullBoxOutput].includes(regex)) {\n            state.currentResult = {\n                type: 'typesetting',\n                file: filename,\n                line: 1,\n                text: result[2] ? `${result[1]} in page ${result[2]}` : result[1]\n            }\n            parseLine(line.substring(result[0].length), state)\n        } else {\n            state.currentResult = {\n                type: 'typesetting',\n                file: filename,\n                line: parseInt(result[2], 10),\n                text: result[1]\n            }\n            state.insideBoxWarn = true\n            state.searchEmptyLine = false\n        }\n        return true\n    }\n    return false\n}\n\nfunction parseLaTeXFileStack(line: string, fileStack: string[], nested: number): number {\n    const result = line.match(/(\\(|\\))/)\n    if (result && result.index !== undefined && result.index > -1) {\n        line = line.substring(result.index + 1)\n        if (result[1] === '(') {\n            const pathResult = line.match(/^\"?((?:(?:[a-zA-Z]:|\\.|\\/)?(?:\\/|\\\\\\\\?))[^\"()[\\]]*)/)\n            const mikTeXPathResult = line.match(/^\"?([^\"()[\\]]*\\.[a-z]{3,})/)\n            if (pathResult) {\n                fileStack.push(pathResult[1].trim())\n            } else if (mikTeXPathResult) {\n                fileStack.push(`./${mikTeXPathResult[1].trim()}`)\n            } else {\n                nested += 1\n            }\n        } else {\n            if (nested > 0) {\n                nested -= 1\n            } else {\n                fileStack.pop()\n            }\n        }\n        nested = parseLaTeXFileStack(line, fileStack, nested)\n    }\n    return nested\n}\n"
  },
  {
    "path": "src/parse/parser/parserutils.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport { lw } from '../../lw'\nimport { convertFilenameEncoding } from '../../utils/convertfilename'\n\nexport interface IParser {\n    clearLog(): void,\n    showLog(): void,\n    parse(log: string, rootFile?: string): LogEntry[]\n}\n\nexport type LogEntry = { type: string, file: string, text: string, line: number, errorPosText?: string }\n\nfunction getErrorPosition(item: LogEntry): {start: number, end: number} | undefined {\n    if (!item.errorPosText) {\n        return\n    }\n    const content = lw.cache.get(item.file)?.content\n    if (!content) {\n        return\n    }\n    // Try to find the errorPosText in the respective line of the document\n    const lines = content.split('\\n')\n    if (lines.length >= item.line) {\n        const line = lines[item.line-1]\n        let pos = line.indexOf(item.errorPosText)\n        if (pos >= 0) {\n            pos += item.errorPosText.length\n            // Find the length of the last word in the error.\n            // This is the length of the error-range\n            const len = item.errorPosText.length - item.errorPosText.lastIndexOf(' ') - 1\n            if (len > 0) {\n                return {start: pos - len, end: pos}\n            }\n        }\n    }\n    return\n}\n\nconst DIAGNOSTIC_SEVERITY: { [key: string]: vscode.DiagnosticSeverity } = {\n    'typesetting': vscode.DiagnosticSeverity.Information,\n    'warning': vscode.DiagnosticSeverity.Warning,\n    'error': vscode.DiagnosticSeverity.Error,\n}\n\nexport function showCompilerDiagnostics(diagnostics: vscode.DiagnosticCollection, buildLog: LogEntry[]) {\n    diagnostics.clear()\n    const diagsCollection = Object.create(null) as { [key: string]: vscode.Diagnostic[] }\n    for (const item of buildLog) {\n        let startChar = 0\n        let endChar = 65535\n        // Try to compute a more precise position\n        const preciseErrorPos = getErrorPosition(item)\n        if (preciseErrorPos) {\n            startChar = preciseErrorPos.start\n            endChar = preciseErrorPos.end\n        }\n\n        const range = new vscode.Range(new vscode.Position(item.line - 1, startChar), new vscode.Position(item.line - 1, endChar))\n        const diag = new vscode.Diagnostic(range, item.text.trimEnd(), DIAGNOSTIC_SEVERITY[item.type])\n        diag.source = diagnostics.name\n        if (diagsCollection[item.file] === undefined) {\n            diagsCollection[item.file] = []\n        }\n        diagsCollection[item.file].push(diag)\n    }\n\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const convEnc = configuration.get('message.convertFilenameEncoding') as boolean\n    for (const file in diagsCollection) {\n        let file1 = file\n        if (!fs.existsSync(file1) && convEnc) {\n            const f = convertFilenameEncoding(file1)\n            if (f !== undefined) {\n                file1 = f\n            }\n        }\n        diagnostics.set(lw.file.toUri(file1), diagsCollection[file])\n    }\n}\n"
  },
  {
    "path": "src/parse/parser/unified-defs.ts",
    "content": "import * as vscode from 'vscode'\nimport type { MacroInfoRecord, EnvInfoRecord } from '@unified-latex/unified-latex-types'\n\nconst MACROS: MacroInfoRecord = {\n    // \\input{some-file}\n    InputIfFileExists: { signature: 'm' },\n    SweaveInput: { signature: 'm' },\n    subfile: { signature: 'm' },\n    subfileinclude: { signature: 'm' },\n    loadglsentries: { signature: 'm' },\n    markdownInput: { signature: 'm' },\n    // \\import{sections/}{some-file}\n    import: { signature: 'm m' },\n    inputfrom: { signature: 'm m' },\n    includefrom: { signature: 'm m' },\n    subimport: { signature: 'm m' },\n    subinputfrom: { signature: 'm m' },\n    subincludefrom: { signature: 'm m' },\n    // \\label{some-label}\n    linelabel: { signature: 'd<> o m' },\n    // \\newglossaryentry{vscode}{name=VSCode, description=Editor}\n    newglossaryentry: { signature: 'm m' },\n    provideglossaryentry: { signature: 'm m' },\n    // \\newacronym[optional parameters]{lw}{LW}{LaTeX Workshop}\n    longnewglossaryentry: { signature: 'o m m m' },\n    longprovideglossaryentry: { signature: 'o m m m' },\n    newacronym: { signature: 'o m m m' },\n    newabbreviation: { signature: 'o m m m' },\n    newabbr: { signature: 'o m m m' },\n    newrobustcmd: { signature: 's d<> +m o +o +m' },\n    renewrobustcmd: { signature: 's d<> +m o +o +m' },\n    providerobustcmd: { signature: 's +m o +o +m' },\n    DeclareRobustCommand: { signature: 's +m o +o +m' },\n    DeclareMathOperator: { signature: 's m m' },\n    DeclarePairedDelimiter: { signature: 'm m m' },\n    DeclarePairedDelimiterX: { signature: 'm o m m m' },\n    DeclarePairedDelimiterXPP: { signature: 'm o m m m m m' },\n}\n\nconst ENVS: EnvInfoRecord = {}\n\nexport function getMacroDefs(): MacroInfoRecord {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const cmds = [... new Set([\n        ...configuration.get('view.outline.commands') as string[],\n        ...configuration.get('intellisense.label.command') as string[]\n    ])]\n    const secs = (configuration.get('view.outline.sections') as string[]).map(level => level.split('|')).flat()\n\n    const macroDefs = Object.assign({}, MACROS)\n    cmds.forEach(cmd => macroDefs[cmd] = { signature: 'd<> o m' })\n    secs.forEach(sec => macroDefs[sec] = { signature: 's o m' })\n\n    return macroDefs\n}\n\nexport function getEnvDefs(): EnvInfoRecord {\n    return ENVS\n}\n"
  },
  {
    "path": "src/parse/parser/unified.ts",
    "content": "import * as workerpool from 'workerpool'\nimport type * as Ast from '@unified-latex/unified-latex-types'\n// import { getParser } from '@unified-latex/unified-latex-util-parse'\n// import { attachMacroArgs } from '@unified-latex/unified-latex-util-arguments'\nimport { bibtexParser } from 'latex-utensils'\n\n// @ts-expect-error Load unified.js from /out/src/...\nimport { getParser, attachMacroArgs } from '../../../../resources/unified.js'\n\ntype UnifiedParser = { parse: (content: string) => Ast.Root }\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\nlet unifiedParser: UnifiedParser = getParser({ flags: { autodetectExpl3AndAtLetter: true } })\n\nfunction parseLaTeX(content: string): Ast.Root {\n    return unifiedParser.parse(content)\n}\n\nfunction parseArgs(ast: Ast.Root, macros: Ast.MacroInfoRecord) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n    attachMacroArgs(ast, macros)\n}\n\nfunction reset(macros: Ast.MacroInfoRecord, environments: Ast.EnvInfoRecord) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\n    unifiedParser = getParser({ macros, environments, flags: { autodetectExpl3AndAtLetter: true } })\n}\n\nfunction parseBibTeX(s: string): bibtexParser.BibtexAst | string | undefined {\n    try {\n        return bibtexParser.parse(s)\n    } catch (err) {\n        if (bibtexParser.isSyntaxError(err)) {\n            return JSON.stringify(err)\n        }\n        return undefined\n    }\n}\n\nconst worker = {\n    parseLaTeX,\n    parseArgs,\n    reset,\n    parseBibTeX\n}\n\nworkerpool.worker(worker)\n\nexport type Worker = typeof worker\n"
  },
  {
    "path": "src/parse/parser.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as workerpool from 'workerpool'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport type { bibtexParser } from 'latex-utensils'\nimport { lw } from '../lw'\nimport type { Worker } from './parser/unified'\nimport { getEnvDefs, getMacroDefs } from './parser/unified-defs'\nimport { bibtexLogParser } from './parser/bibtexlog'\nimport { biberLogParser } from './parser/biberlog'\nimport { latexLogParser } from './parser/latexlog'\n// @ts-expect-error Load unified.js from /out/src/...\nimport { toString } from '../../../resources/unified.js'\n\nconst logger = lw.log('Parser')\nconst bibDiagnostics = vscode.languages.createDiagnosticCollection('BibTeX')\n\nexport const parser = {\n    bib,\n    clearLog,\n    log,\n    tex,\n    args,\n    stringify,\n    reset\n}\n\nconst pool = workerpool.pool(\n    path.join(__dirname, 'parser', 'unified.js'),\n    { minWorkers: 1, maxWorkers: 1, workerType: 'thread' }\n)\nconst proxy = pool.proxy<Worker>()\n\nlw.onDispose({ dispose: async () => { await pool.terminate(true) } })\n\nasync function tex(content: string): Promise<Ast.Root> {\n    return (await proxy).parseLaTeX(content)\n}\n\nasync function args(ast: Ast.Root): Promise<void> {\n    return (await proxy).parseArgs(ast, getMacroDefs())\n}\n\nasync function reset() {\n    return (await proxy).reset(getMacroDefs(), getEnvDefs())\n}\n\nasync function bib(uri: vscode.Uri, s: string): Promise<bibtexParser.BibtexAst | undefined> {\n    const ast = await (await proxy).parseBibTeX(s)\n    if (typeof ast === 'string') {\n        const err = JSON.parse(ast) as bibtexParser.SyntaxError\n        logger.log(`Error when parsing bib file: found ${err.found} from ${err.location.start.line}:${err.location.start.column} to ${err.location.end.line}:${err.location.end.column}.`)\n        bibDiagnostics.set(uri, [new vscode.Diagnostic(\n            new vscode.Range(\n                new vscode.Position(err.location.start.line - 1, err.location.start.column - 1),\n                new vscode.Position(err.location.end.line - 1, err.location.end.column - 1)\n            ),\n            `A BibTeX parsing error occurred. \"${err.found}\" is unexpected here. No BibTeX entries will be available.`,\n            vscode.DiagnosticSeverity.Warning\n        )])\n        return undefined\n    } else {\n        bibDiagnostics.set(uri, [])\n        return ast\n    }\n}\n\nfunction stringify(ast: Ast.Ast): string {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return\n    return toString(ast)\n}\n\n\n// Notice that 'Output written on filename.pdf' isn't output in draft mode.\n// https://github.com/James-Yu/LaTeX-Workshop/issues/2893#issuecomment-936312853\nconst latexPattern = /^Output\\swritten\\son\\s(.*)\\s\\(.*\\)\\.$/gm\nconst latexFatalPattern = /Fatal error occurred, no output PDF file produced!/gm\nconst latexIntErrPattern = /^! Internal error: /gm\nconst latexXeNoOutputPattern = /^No pages of output.$/gm\n\nconst latexmkPattern = /^Latexmk:\\sapplying\\srule/gm\nconst latexmkLog = /^Latexmk:\\sapplying\\srule/\nconst latexmkLogLatex = /^Latexmk:\\sapplying\\srule\\s'(pdf|lua|xe)?latex'/\nconst latexmkUpToDate = /^Latexmk: All targets \\(.*\\) are up-to-date/m\n\nconst texifyPattern = /^running\\s(pdf|lua|xe)?latex/gm\nconst texifyLog = /^running\\s((pdf|lua|xe)?latex|miktex-bibtex)/\nconst texifyLogLatex = /^running\\s(pdf|lua|xe)?latex/\n\nconst bibtexPattern = /^This is BibTeX, Version.*$/m\nconst biberPattern = /^INFO - This is Biber .*$/m\nconst bibtexPatternAlt = /^The top-level auxiliary file: .*$/m // #4197\n\n/**\n * @param msg The log message to parse.\n * @param rootFile The current root file.\n * @returns whether the current compilation is indeed a skipped one in latexmk.\n */\nfunction log(msg: string, rootFile?: string): boolean {\n    let isLaTeXmkSkipped = false\n    // Canonicalize line-endings\n    msg = msg.replace(/(\\r\\n)|\\r/g, '\\n')\n\n    if (msg.match(bibtexPattern)) {\n        bibtexLogParser.parse(msg.match(latexmkPattern) ? trimLaTeXmkBibTeX(msg) : msg, rootFile)\n        bibtexLogParser.showLog()\n    } else if (msg.match(biberPattern)) {\n        biberLogParser.parse(msg.match(latexmkPattern) ? trimLaTeXmkBiber(msg) : msg, rootFile)\n        biberLogParser.showLog()\n    } else if (msg.match(bibtexPatternAlt)) {\n        bibtexLogParser.parse(msg.match(latexmkPattern) ? trimLaTeXmkBibTeX(msg) : msg, rootFile)\n        bibtexLogParser.showLog()\n    }\n\n    if (msg.match(latexmkPattern)) {\n        msg = trimLaTeXmk(msg)\n    } else if (msg.match(texifyPattern)) {\n        msg = trimTexify(msg)\n    }\n    if (msg.match(latexPattern) || msg.match(latexFatalPattern) || msg.match(latexIntErrPattern) || msg.match(latexXeNoOutputPattern)) {\n        latexLogParser.parse(msg, rootFile)\n        latexLogParser.showLog()\n    } else if (latexmkSkipped(msg)) {\n        isLaTeXmkSkipped = true\n    }\n\n    return isLaTeXmkSkipped\n}\n\nfunction trimLaTeXmk(msg: string): string {\n    return trimPattern(msg, latexmkLogLatex, latexmkLog)\n}\n\nfunction trimLaTeXmkBibTeX(msg: string): string {\n    return trimPattern(msg, bibtexPattern, latexmkLogLatex)\n}\n\nfunction trimLaTeXmkBiber(msg: string): string {\n    return trimPattern(msg, biberPattern, latexmkLogLatex)\n}\n\nfunction trimTexify(msg: string): string {\n    return trimPattern(msg, texifyLogLatex, texifyLog)\n}\n\n\n/**\n * Return the lines between the last occurrences of `beginPattern` and `endPattern`.\n * If `endPattern` is not found, the lines from the last occurrence of\n * `beginPattern` up to the end is returned.\n */\nfunction trimPattern(msg: string, beginPattern: RegExp, endPattern: RegExp): string {\n    const lines = msg.split('\\n')\n    let startLine = -1\n    let finalLine = -1\n    for (let index = 0; index < lines.length; index++) {\n        const line = lines[index]\n        let result = line.match(beginPattern)\n        if (result) {\n            startLine = index\n        }\n        result = line.match(endPattern)\n        if (result) {\n            finalLine = index\n        }\n    }\n    if (finalLine <= startLine) {\n        return lines.slice(startLine).join('\\n')\n    } else {\n        return lines.slice(startLine, finalLine).join('\\n')\n    }\n}\n\n\nfunction latexmkSkipped(msg: string): boolean {\n    if (msg.match(latexmkUpToDate) && !msg.match(latexmkPattern)) {\n        latexLogParser.showLog()\n        bibtexLogParser.showLog()\n        biberLogParser.showLog()\n        return true\n    }\n    return false\n}\n\nfunction clearLog() {\n    // Clear all diagnostics messages\n    biberLogParser.clearLog()\n    bibtexLogParser.clearLog()\n    latexLogParser.clearLog()\n}\n"
  },
  {
    "path": "src/preview/hover/cursor.ts",
    "content": "import * as vscode from 'vscode'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport { lw } from '../../lw'\nimport type { TeXMathEnv } from '../../types'\nimport { findNode } from '../../language/selection'\n\nconst logger = lw.log('Preview', 'Math', 'Cursor')\n\nconst cache: {\n    texString?: string,\n    ast?: Ast.Root\n} = {}\n\n// Test whether cursor is in tex macro strings\n// like \\begin{...} \\end{...} \\xxxx{ \\[ \\] \\( \\) or \\\\\nfunction isCursorInTeXMacro(document: vscode.TextDocument): boolean {\n    const editor = vscode.window.activeTextEditor\n    if (!editor) {\n        return false\n    }\n    const cursor = editor.selection.active\n    const r = document.getWordRangeAtPosition(cursor, /\\\\(?:begin|end|label)\\{.*?\\}|\\\\[a-zA-Z]+\\{?|\\\\[()[\\]]|\\\\\\\\/)\n    if (r && r.start.isBefore(cursor) && r.end.isAfter(cursor) ) {\n        return true\n    }\n    return false\n}\n\nfunction findCursorPosInSnippet(texMath: TeXMathEnv, cursorPos: vscode.Position): vscode.Position {\n    const line = cursorPos.line - texMath.range.start.line\n    const character = line === 0 ? cursorPos.character - texMath.range.start.character : cursorPos.character\n    return new vscode.Position(line, character)\n}\n\nasync function insertCursor(texMath: TeXMathEnv, cursorPos: vscode.Position, cursor: string): Promise<string> {\n    const { result, cursorPosInSnippet } = await findNodeAt(texMath, cursorPos)\n    if (result === undefined || cursorPosInSnippet === undefined || cache.ast === undefined) {\n        return texMath.texString\n    }\n    if (result.find(node => node.type === 'macro' && node.content === 'text')) {\n        return texMath.texString\n    }\n    const cursorNode = result[result.length - 1]\n    if (cursorNode?.type === 'macro') {\n        return texMath.texString\n    }\n    const texLines = texMath.texString.split('\\n')\n    texLines[cursorPosInSnippet.line] = texLines[cursorPosInSnippet.line].slice(0, cursorPosInSnippet.character) + cursor + texLines[cursorPosInSnippet.line].slice(cursorPosInSnippet.character)\n    return texLines.join('\\n')\n}\n\nasync function findNodeAt(texMath: TeXMathEnv, cursorPos: vscode.Position) {\n    let ast: Ast.Root | undefined\n    if (texMath.texString === cache.texString && cache.ast) {\n        logger.log(`Use previous AST of ${texMath.texString} .`)\n        ast = cache.ast\n    } else {\n        logger.log(`Parse LaTeX AST from ${texMath.texString} .`)\n        ast = await lw.parser.parse.tex(texMath.texString)\n        cache.ast = ast\n        cache.texString = texMath.texString\n    }\n    if (!ast) {\n        logger.log('Failed parsing LaTeX AST.')\n        return { result: undefined, cursorPosInSnippet: undefined }\n    }\n    const cursorPosInSnippet = findCursorPosInSnippet(texMath, cursorPos)\n    const result = findNode(cursorPosInSnippet, ast)\n    return { result, cursorPosInSnippet }\n}\n\nexport async function renderCursor(document: vscode.TextDocument, texMath: TeXMathEnv, thisColor: string): Promise<string> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const cursorEnabled = configuration.get('hover.preview.cursor.enabled') as boolean\n    if (!cursorEnabled) {\n        return texMath.texString\n    }\n    const texMathRange = texMath.range\n    const cursorPos = vscode.window.activeTextEditor?.selection.active\n    if (!cursorPos) {\n        return texMath.texString\n    }\n    if (!isCursorInsideTexMath(texMathRange, cursorPos)) {\n        return texMath.texString\n    }\n    if (isCursorInTeXMacro(document)) {\n        return texMath.texString\n    }\n    const symbol = configuration.get('hover.preview.cursor.symbol') as string\n    const color = configuration.get('hover.preview.cursor.color') as string\n    const cursorString = color === 'auto' ? `{\\\\color{${thisColor}}${symbol}}` : `{\\\\color{${color}}${symbol}}`\n    return insertCursor(texMath, cursorPos, cursorString)\n}\n\nfunction isCursorInsideTexMath(texMathRange: vscode.Range, cursorPos: vscode.Position): boolean {\n    return texMathRange.contains(cursorPos) && !texMathRange.start.isEqual(cursorPos) && !texMathRange.end.isEqual(cursorPos)\n}\n\nexport const testTools = {\n    insertCursor,\n    isCursorInsideTexMath,\n}\n"
  },
  {
    "path": "src/preview/hover/ongraphics.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport { lw } from '../../lw'\n\nconst logger = lw.log('Preview', 'Graphics')\n\nexport async function onGraphics(document: vscode.TextDocument, position: vscode.Position): Promise<vscode.Hover | undefined> {\n    const pat = /\\\\includegraphics\\s*(?:\\[(.*?)\\])?\\s*\\{(.*?)\\}/\n    const range = document.getWordRangeAtPosition(position, pat)\n    if (!range) {\n        return\n    }\n    const cmdString = document.getText(range)\n    const execArray = pat.exec(cmdString)\n    const relPath = execArray && execArray[2]\n    const includeGraphicsArgs = execArray && execArray[1]\n    if (!execArray || !relPath) {\n        return\n    }\n    const filePath = findFilePath(relPath, document)\n    if (filePath === undefined) {\n        return\n    }\n    let pageNumber = 1\n    if (includeGraphicsArgs) {\n        const m = /page\\s*=\\s*(\\d+)/.exec(includeGraphicsArgs)\n        if (m && m[1]) {\n            pageNumber = Number(m[1])\n        }\n    }\n    const md = await graph2md(filePath, { height: 230, width: 500, pageNumber })\n    if (md !== undefined) {\n        return new vscode.Hover(md, range)\n    }\n    return\n}\n\nexport async function graph2md(filePath: string, opts: { height: number, width: number, pageNumber?: number }): Promise<vscode.MarkdownString | undefined> {\n    const filePathUriString = lw.file.toUri(filePath).toString()\n    if (/\\.(bmp|jpg|jpeg|gif|png)$/i.exec(filePath)) {\n        // Workaround for https://github.com/microsoft/vscode/issues/137632\n        if (vscode.env.remoteName) {\n            const md = new vscode.MarkdownString(`![img](${filePathUriString})`)\n            return md\n        }\n        const md = new vscode.MarkdownString(`<img src=\"${filePathUriString}\" height=\"${opts.height}\">`)\n        md.supportHtml = true\n        return md\n    }\n    if (/\\.pdf$/i.exec(filePath)) {\n        const pdfOpts = { height: opts.height, width: opts.width, pageNumber: opts.pageNumber || 1 }\n        const dataUrl = await renderPdfFileAsDataUrl(filePath, pdfOpts)\n        if (dataUrl !== undefined) {\n            const md = new vscode.MarkdownString(`<img src=\"${dataUrl}\" height=\"${opts.height}\">`)\n            md.supportHtml = true\n            return md\n        } else {\n            let msg = '$(error) Failed to render.'\n            if (!vscode.workspace.getWorkspaceFolder(lw.file.toUri(filePath))) {\n                msg = '$(warning) Cannot render a PDF file not in workspaces.'\n            } else if (lw.extra.snippet.state.view?.webview === undefined) {\n                msg = '$(info) Please activate the LaTeX Workshop activity bar item to render PDF thumbnails.'\n            }\n            return new vscode.MarkdownString(msg, true)\n        }\n    }\n    return\n}\n\nasync function renderPdfFileAsDataUrl(pdfFilePath: string, opts: { height: number, width: number, pageNumber: number }): Promise<string | undefined> {\n    try {\n        const maxDataUrlLength = 99980\n        let scale = 1.5\n        let newOpts = { height: opts.height * scale , width: opts.width * scale, pageNumber: opts.pageNumber }\n        let dataUrl = await lw.extra.snippet.render(lw.file.toUri(pdfFilePath), newOpts)\n        if (!dataUrl || dataUrl.length < maxDataUrlLength) {\n            return dataUrl\n        }\n        scale = 1\n        newOpts = { height: opts.height * scale , width: opts.width * scale, pageNumber: opts.pageNumber }\n        dataUrl = await lw.extra.snippet.render(lw.file.toUri(pdfFilePath), newOpts)\n        if (!dataUrl || dataUrl.length < maxDataUrlLength) {\n            return dataUrl\n        }\n        scale = Math.sqrt(maxDataUrlLength/dataUrl.length) / 1.2\n        newOpts = { height: opts.height * scale , width: opts.width * scale, pageNumber: opts.pageNumber }\n        dataUrl = await lw.extra.snippet.render(lw.file.toUri(pdfFilePath), newOpts)\n        if (dataUrl && dataUrl.length >= maxDataUrlLength) {\n            logger.log(`Data URL still too large: ${pdfFilePath}`)\n            return\n        }\n        return dataUrl\n    } catch (e: unknown) {\n        logger.logError(`Failed rendering graphics as data url with ${pdfFilePath}`, e)\n        return\n    }\n}\n\nfunction findFilePath(relPath: string, document: vscode.TextDocument): string | undefined {\n    if (path.isAbsolute(relPath)) {\n        if (fs.existsSync(relPath)) {\n            return relPath\n        } else {\n            return\n        }\n    }\n\n    const activeDir = path.dirname(document.uri.fsPath)\n    for (const dirPath of lw.completion.input.graphicsPath) {\n        const filePath = path.resolve(activeDir, dirPath, relPath)\n        if (fs.existsSync(filePath)) {\n            return filePath\n        }\n    }\n\n    const fPath = path.resolve(activeDir, relPath)\n    if (fs.existsSync(fPath)) {\n        return fPath\n    }\n\n    const rootDir = lw.root.dir.path\n    if (rootDir === undefined) {\n        return\n    }\n    const frPath = path.resolve(rootDir, relPath)\n    if (fs.existsSync(frPath)) {\n        return frPath\n    }\n    return\n}\n"
  },
  {
    "path": "src/preview/hover/onmath.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport type { TeXMathEnv } from '../../types'\nimport { renderCursor } from './cursor'\nimport { addDummyCodeBlock, getColor, mathjaxify, stripTeX, svg2DataUrl } from './utils'\n\nconst logger = lw.log('Preview', 'Math')\n\nexport async function onMath(document: vscode.TextDocument, tex: TeXMathEnv, macros: string): Promise<vscode.Hover> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const scale = configuration.get('hover.preview.scale') as number\n    let s = await renderCursor(document, tex, getColor())\n    s = mathjaxify(s, tex.envname)\n    const typesetArg = macros + stripTeX(s, macros)\n    const typesetOpts = { scale, color: getColor() }\n    try {\n        const markdown = svg2DataUrl(await lw.preview.mathjax.typeset(typesetArg, typesetOpts))\n        return new vscode.Hover(new vscode.MarkdownString(addDummyCodeBlock(`![equation](${markdown})`)), tex.range )\n    } catch(e) {\n        if (macros !== '') {\n            logger.log(`Failed rendering MathJax ${typesetArg} . Try removing macro definitions.`)\n            return onMath(document, tex, '')\n        } else {\n            logger.logError(`Failed rendering MathJax ${typesetArg} .`, e)\n            throw e\n        }\n    }\n}\n"
  },
  {
    "path": "src/preview/hover/onref.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport type { ReferenceItem, TeXMathEnv } from '../../types'\nimport { addDummyCodeBlock, getColor, mathjaxify, stripTeX, svg2DataUrl } from './utils'\nimport { parser } from '../../parse'\n\nconst logger = lw.log('Preview', 'Ref')\n\nexport async function onRef(\n    document: vscode.TextDocument,\n    position: vscode.Position,\n    refData: ReferenceItem,\n    ctoken: vscode.CancellationToken\n): Promise<vscode.Hover> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const line = refData.position.line\n    const link = vscode.Uri.parse('command:latex-workshop.synctexto').with({ query: JSON.stringify([line, refData.file]) })\n    const mdLink = new vscode.MarkdownString(`[View on pdf](${link})`)\n    mdLink.isTrusted = true\n    if (configuration.get('hover.ref.enabled') as boolean && refData.math) {\n        return onRefMathJax(refData, ctoken)\n    }\n    const md = '```latex\\n' + refData.documentation + '\\n```\\n'\n    const refRange = document.getWordRangeAtPosition(position, /\\{.*?\\}/)\n    const refMessage = refNumberMessage(refData)\n    if (refMessage !== undefined && configuration.get('hover.ref.number.enabled') as boolean) {\n        return new vscode.Hover([md, refMessage, mdLink], refRange)\n    }\n    return new vscode.Hover([md, mdLink], refRange)\n}\n\nasync function onRefMathJax(refData: ReferenceItem, ctoken?: vscode.CancellationToken): Promise<vscode.Hover> {\n    const md = await ref2svg(refData, ctoken)\n    const line = refData.position.line\n    const link = vscode.Uri.parse('command:latex-workshop.synctexto').with({ query: JSON.stringify([line, refData.file]) })\n    const mdLink = new vscode.MarkdownString(`[View on pdf](${link})`)\n    mdLink.isTrusted = true\n    return new vscode.Hover( [addDummyCodeBlock(`![equation](${md})`), mdLink], refData.math?.range )\n}\n\nfunction refNumberMessage(refData: Pick<ReferenceItem, 'prevIndex'>): string | undefined {\n    if (refData.prevIndex) {\n        const refNum = refData.prevIndex.refNumber\n        const refMessage = `numbered ${refNum} at last compilation`\n        return refMessage\n    }\n    return\n}\nexport async function ref2svg(refData: ReferenceItem, ctoken?: vscode.CancellationToken) {\n    if (refData.math === undefined) {\n        return ''\n    }\n    const texMath = refData.math\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n\n    const macros = await parser.find.macro(ctoken)\n\n    let texStr: string | undefined = undefined\n    if (refData.prevIndex !== undefined && configuration.get('hover.ref.number.enabled') as boolean) {\n        const tag = refData.prevIndex.refNumber\n        const texString = replaceLabelWithTag(texMath.texString, refData.label, tag)\n        texStr = mathjaxify(texString, texMath.envname, {stripLabel: false})\n    }\n    const svg = await tex2svg(texMath, macros, texStr)\n    return svg.svgDataUrl\n}\n\nfunction replaceLabelWithTag(tex: string, refLabel?: string, tag?: string): string {\n    const texWithoutTag = tex.replace(/\\\\tag\\{(\\{[^{}]*?\\}|.)*?\\}/g, '')\n    let newTex = texWithoutTag.replace(/\\\\label\\{(.*?)\\}/g, (_matchString, matchLabel, _offset, _s) => {\n        if (refLabel) {\n            if (refLabel === matchLabel) {\n                if (tag) {\n                    return `\\\\tag{${tag}}`\n                } else {\n                    return `\\\\tag{${matchLabel}}`\n                }\n            }\n            return '\\\\notag'\n        } else {\n            return `\\\\tag{${matchLabel}}`\n        }\n    })\n    // To work around a bug of \\tag with multi-line environments,\n    // we have to put \\tag after the environments.\n    // See https://github.com/mathjax/MathJax/issues/1020\n    newTex = newTex.replace(/(\\\\tag\\{.*?\\})([\\r\\n\\s]*)(\\\\begin\\{(aligned|alignedat|gathered|split)\\}[^]*?\\\\end\\{\\4\\})/gm, '$3$2$1')\n    newTex = newTex.replace(/^\\\\begin\\{(\\w+?)\\}/, '\\\\begin{$1*}')\n    newTex = newTex.replace(/\\\\end\\{(\\w+?)\\}$/, '\\\\end{$1*}')\n    return newTex\n}\n\nexport async function tex2svg(tex: TeXMathEnv, macros?: string, texStr?: string) {\n    macros = macros ?? await parser.find.macro()\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const scale = configuration.get('hover.preview.scale') as number\n    texStr = texStr ?? mathjaxify(tex.texString, tex.envname)\n    const strippedTeX = macros + stripTeX(texStr, macros)\n    try {\n        const data = svg2DataUrl(await lw.preview.mathjax.typeset(strippedTeX, {scale, color: getColor()}))\n        return { svgDataUrl: data, macros }\n    } catch(e) {\n        if (macros !== '') {\n            logger.log(`Failed rendering MathJax ${strippedTeX} . Try removing macro definitions.`)\n            const data = svg2DataUrl(await lw.preview.mathjax.typeset(texStr, {scale, color: getColor()}))\n            return { svgDataUrl: data, macros }\n        } else {\n            logger.logError(`Failed rendering MathJax ${texStr} .`, e)\n            throw e\n        }\n    }\n}\n"
  },
  {
    "path": "src/preview/hover/utils.ts",
    "content": "import * as vscode from 'vscode'\nimport { stripComments } from '../../utils/utils'\n\nexport function getColor() {\n    return vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Light ? '#000000' : '#ffffff'\n}\n\nexport function mathjaxify(tex: string, envname: string, opt = { stripLabel: true }): string {\n    // remove TeX comments\n    let s = stripComments(tex)\n    // remove \\label{...}\n    if (opt.stripLabel) {\n        s = s.replace(/\\\\label\\{.*?\\}/g, '')\n    }\n    if (envname.match(/^(aligned|alignedat|array|Bmatrix|bmatrix|cases|CD|gathered|matrix|pmatrix|smallmatrix|split|subarray|Vmatrix|vmatrix)$/)) {\n        s = '\\\\begin{equation}' + s + '\\\\end{equation}'\n    }\n    if (envname.match(/^subeqnarray\\*?$/)) {\n        s = s.replace(/\\\\(begin|end){subeqnarray\\*?}/g, '\\\\$1{eqnarray}')\n    }\n    // #4528\n    s = s.replace(/\\\\llbracket(?!\\w)/g, '\\\\left[\\\\!\\\\left[')\n         .replace(/\\\\rrbracket(?!\\w)/g, '\\\\right]\\\\!\\\\right]')\n    return s\n}\n\nexport function stripTeX(tex: string, macros: string): string {\n    // First remove math env declaration\n    if (tex.startsWith('$$') && tex.endsWith('$$')) {\n        tex = tex.slice(2, tex.length - 2)\n    } else if (tex.startsWith('$') && tex.endsWith('$')) {\n        tex = tex.slice(1, tex.length - 1)\n    } else if (tex.startsWith('\\\\(') && tex.endsWith('\\\\)')) {\n        tex = tex.slice(2, tex.length - 2)\n    } else if (tex.startsWith('\\\\[') && tex.endsWith('\\\\]')) {\n        tex = tex.slice(2, tex.length - 2)\n    }\n    // Then remove the star variant of new macros\n    [...macros.matchAll(/\\\\newcommand\\{(.*?)\\}/g)].forEach(match => {\n        tex = tex.replaceAll(match[1] + '*', match[1])\n    })\n    return tex\n}\n\nexport function addDummyCodeBlock(md: string): string {\n    // We need a dummy code block in hover to make the width of hover larger.\n    const dummyCodeBlock = '```\\n```'\n    return dummyCodeBlock + '\\n' + md + '\\n' + dummyCodeBlock\n}\n\nexport function svg2DataUrl(xml: string): string {\n    // We have to call encodeURIComponent and unescape because SVG can includes non-ASCII characters.\n    // We have to encode them before converting them to base64.\n    const svg64 = Buffer.from(unescape(encodeURIComponent(xml)), 'binary').toString('base64')\n    const b64Start = 'data:image/svg+xml;base64,'\n    return b64Start + svg64\n}\n"
  },
  {
    "path": "src/preview/hover.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\nimport type { CmdEnvSuggestion } from '../completion/completer/completerutils'\nimport { tokenizer, onAPackage } from '../utils/tokenizer'\nimport { onMath } from './hover/onmath'\nimport { onRef, ref2svg, tex2svg } from './hover/onref'\nimport { graph2md, onGraphics } from './hover/ongraphics'\n\nexport {\n    provider,\n    graph2md,\n    ref2svg,\n    tex2svg\n}\n\nclass HoverProvider implements vscode.HoverProvider {\n    public async provideHover(document: vscode.TextDocument, position: vscode.Position, ctoken: vscode.CancellationToken): Promise<vscode.Hover | undefined> {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const hov = configuration.get('hover.preview.enabled') as boolean\n        const hovReference = configuration.get('hover.ref.enabled') as boolean\n        const hovCitation = configuration.get('hover.citation.enabled') as boolean\n        const hovCommand = configuration.get('hover.command.enabled') as boolean\n        if (hov) {\n            const tex = lw.parser.find.tex(document, position)\n            // Hovered over equations\n            if (tex) {\n                const hover = await onMath(document, tex, await lw.parser.find.macro(ctoken))\n                return hover\n            }\n            // Hovered over graphics\n            const graphicsHover = await onGraphics(document, position)\n            if (graphicsHover) {\n                return graphicsHover\n            }\n        }\n        const token = document.getText(tokenizer(document, position)).trim()\n        if (!token) {\n            return\n        }\n        // Test if we are on a macro\n        if (token.startsWith('\\\\')) {\n            if (!hovCommand) {\n                return\n            }\n            return provideHoverOnMacro(token)\n        }\n        if (onAPackage(document, position, token)) {\n            const packageName = encodeURIComponent(JSON.stringify(token))\n            const md = `Package **${token}** \\n\\n`\n            const mdLink = new vscode.MarkdownString(`[View documentation](command:latex-workshop.texdoc?${packageName})`)\n            mdLink.isTrusted = true\n            const ctanUrl = `https://ctan.org/pkg/${token}`\n            const ctanLink = new vscode.MarkdownString(`[${ctanUrl}](${ctanUrl})`)\n            return new vscode.Hover([md, mdLink, ctanLink])\n        }\n        const refData = lw.completion.reference.getItem(token)\n        if (hovReference && refData) {\n            const hover = await onRef(document, position, refData, ctoken)\n            return hover\n        }\n        const cite = lw.completion.citation.getItem(token, document.uri)\n        if (hovCitation && cite) {\n            const range = document.getWordRangeAtPosition(position, /\\{.*?\\}/)\n            const md = cite.documentation || cite.detail\n            if (md) {\n                return new vscode.Hover(md, range)\n            }\n        }\n        return\n    }\n}\n\nfunction provideHoverOnMacro(token: string): vscode.Hover | undefined {\n    const signatures: string[] = []\n    const packageNames: string[] = []\n    const tokenWithoutSlash = token.substring(1)\n\n    const packageCmds: CmdEnvSuggestion[] = []\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if ((configuration.get('intellisense.package.enabled'))) {\n        const packages = lw.completion.usepackage.getAll('latex-expl3')\n        Object.entries(packages).forEach(([packageName, options]) => {\n            lw.completion.macro.provideCmdInPkg(packageName, options, packageCmds)\n            lw.completion.environment.provideEnvsAsMacroInPkg(packageName, options, packageCmds)\n        })\n    }\n\n    const checkCmd = (cmd: CmdEnvSuggestion) => {\n        const cmdName = cmd.name()\n        if (cmdName.startsWith(tokenWithoutSlash) && (cmdName.length === tokenWithoutSlash.length)) {\n            if (typeof cmd.documentation !== 'string') {\n                return\n            }\n            const doc = cmd.documentation\n            const packageName = cmd.packageName\n            if (packageName && packageName !== 'user-defined' && (!packageNames.includes(packageName))) {\n                packageNames.push(packageName)\n            }\n            signatures.push(doc)\n        }\n    }\n\n    packageCmds.forEach(checkCmd)\n\n    lw.cache.getIncludedTeX().forEach(cachedFile => {\n        lw.cache.get(cachedFile)?.elements.macro?.forEach(checkCmd)\n    })\n\n    let pkgLink = ''\n    if (packageNames.length > 0) {\n        pkgLink = '\\n\\nView documentation for package(s) '\n        packageNames.forEach(p => {\n            const packageName = encodeURIComponent(JSON.stringify(p))\n            pkgLink += `[${p}](command:latex-workshop.texdoc?${packageName}),`\n        })\n        pkgLink = pkgLink.substring(0, pkgLink.lastIndexOf(',')) + '.'\n    }\n    if (signatures.length > 0) {\n        const mdLink = new vscode.MarkdownString(signatures.join('  \\n')) // We need two spaces to ensure md newline\n        mdLink.appendMarkdown(pkgLink)\n        mdLink.isTrusted = true\n        return new vscode.Hover(mdLink)\n    }\n    return\n}\n\nconst provider = new HoverProvider()\n"
  },
  {
    "path": "src/preview/index.ts",
    "content": "import { graph2md, provider, ref2svg, tex2svg } from './hover'\nimport { mathjax } from './mathjax'\nimport * as mathpreview from './math-preview-panel'\n\nexport * as viewer from './viewer'\nexport * as server from './server'\n\nexport const preview = {\n    graph2md,\n    provider,\n    mathjax: {\n        ref2svg,\n        tex2svg,\n        typeset: mathjax.typeset\n    },\n    mathpreview\n}\n"
  },
  {
    "path": "src/preview/math-preview-panel.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { moveWebviewPanel } from '../utils/webview'\nimport { lw } from '../lw'\nimport { getColor } from './hover/utils'\nimport { tex2svg } from './hover'\nimport { renderCursor } from './hover/cursor'\n\nconst logger = lw.log('Preview', 'Math')\n\nexport {\n    serializer,\n    toggle\n}\n\ntype UpdateEvent = {\n    type: 'edit',\n    event: vscode.TextDocumentChangeEvent\n} | {\n    type: 'selection',\n    event: vscode.TextEditorSelectionChangeEvent\n}\n\nfunction resourcesFolder(extensionRoot: string) {\n    const folder = path.join(extensionRoot, 'resources', 'mathpreviewpanel')\n    return lw.file.toUri(folder)\n}\n\nclass MathPreviewPanelSerializer implements vscode.WebviewPanelSerializer {\n    deserializeWebviewPanel(panel: vscode.WebviewPanel) {\n        initializePanel(panel)\n        panel.webview.options = {\n            enableScripts: true,\n            localResourceRoots: [resourcesFolder(lw.extensionRoot)]\n        }\n        panel.webview.html = getHtml()\n        logger.log('Math preview panel: restored')\n        return Promise.resolve()\n    }\n}\nconst serializer = new MathPreviewPanelSerializer()\n\nconst state = {\n    panel: undefined as vscode.WebviewPanel | undefined,\n    prevEditTime: 0,\n    prevDocumentUri: undefined as string | undefined,\n    prevCursorPosition: undefined as vscode.Position | undefined,\n    prevMacros: undefined as string | undefined,\n}\n\nfunction open() {\n    const activeDocument = vscode.window.activeTextEditor?.document\n    if (state.panel) {\n        if (!state.panel.visible) {\n            state.panel.reveal(undefined, true)\n        }\n        return\n    }\n    const panel = vscode.window.createWebviewPanel(\n        'latex-workshop-mathpreview',\n        'Math Preview',\n        { viewColumn: vscode.ViewColumn.Active, preserveFocus: true },\n        {\n            enableScripts: true,\n            localResourceRoots: [resourcesFolder(lw.extensionRoot)],\n            retainContextWhenHidden: true\n        }\n    )\n    initializePanel(panel)\n    panel.webview.html = getHtml()\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const editorGroup = configuration.get('mathpreviewpanel.editorGroup') as string\n    if (activeDocument) {\n        void moveWebviewPanel(panel, editorGroup)\n    }\n    logger.log('Math preview panel: opened')\n}\n\nfunction initializePanel(panel: vscode.WebviewPanel) {\n    const disposable = vscode.Disposable.from(\n        vscode.workspace.onDidChangeTextDocument( (event) => {\n            void update({type: 'edit', event})\n        }),\n        vscode.window.onDidChangeTextEditorSelection( (event) => {\n            void update({type: 'selection', event})\n        })\n    )\n    state.panel = panel\n    panel.onDidDispose(() => {\n        disposable.dispose()\n        clearCache()\n        state.panel = undefined\n        logger.log('Math preview panel: disposed')\n    })\n    panel.onDidChangeViewState((ev) => {\n        if (ev.webviewPanel.visible) {\n            void update()\n        }\n    })\n    panel.webview.onDidReceiveMessage(() => {\n        logger.log('Math preview panel: initialized')\n        void update()\n    })\n}\n\nfunction close() {\n    state.panel?.dispose()\n    state.panel = undefined\n    clearCache()\n    logger.log('Math preview panel: closed')\n}\n\nfunction toggle(action?: 'open' | 'close') {\n    if (action) {\n        if (action === 'open') {\n            open()\n        } else {\n            close()\n        }\n    } else if (state.panel) {\n        close()\n    } else {\n        open()\n    }\n}\n\nfunction clearCache() {\n    state.prevEditTime = 0\n    state.prevDocumentUri = undefined\n    state.prevCursorPosition = undefined\n    state.prevMacros = undefined\n}\n\nlet serverHandlerInserted = false\nfunction getHtml() {\n    if (serverHandlerInserted === false) {\n        lw.server.setHandler((url: string) => {\n            if (url.startsWith('/mathpreviewpanel/')) {\n                return path.resolve(lw.extensionRoot, 'resources')\n            }\n            return undefined\n        })\n        serverHandlerInserted = true\n    }\n    return `<!DOCTYPE html>\n    <html lang=\"en\">\n    <head>\n        <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; base-uri 'none'; script-src 'self' http://127.0.0.1:*; img-src data:; style-src 'unsafe-inline';\">\n        <meta charset=\"UTF-8\">\n        <style>\n            body {\n                padding: 0;\n                margin: 0;\n            }\n            #math {\n                padding-top: 35px;\n                padding-left: 50px;\n            }\n        </style>\n        <script src='http://127.0.0.1:${lw.server.getPort().toString()}/mathpreviewpanel/mathpreview.js' defer></script>\n    </head>\n    <body>\n        <div id=\"mathBlock\"><img src=\"\" id=\"math\" /></div>\n    </body>\n    </html>`\n}\n\nasync function update(ev?: UpdateEvent) {\n    if (!state.panel || !state.panel.visible) {\n        return\n    }\n    if (!vscode.workspace.getConfiguration('latex-workshop').get('mathpreviewpanel.cursor.enabled', false)) {\n        if (ev?.type === 'edit') {\n            state.prevEditTime = Date.now()\n        } else if (ev?.type === 'selection') {\n            if (Date.now() - state.prevEditTime < 100) {\n                return\n            }\n        }\n    }\n    const editor = vscode.window.activeTextEditor\n    const document = editor?.document\n    if (!editor || !document?.languageId || !lw.file.hasLaTeXLangId(document.languageId)) {\n        clearCache()\n        return\n    }\n    const documentUri = document.uri.toString()\n    if (ev?.type === 'edit' && documentUri !== ev.event.document.uri.toString()) {\n        return\n    }\n    const position = editor.selection.active\n    const texMath = getTexMath(document, position)\n    if (!texMath) {\n        clearCache()\n        return state.panel.webview.postMessage({type: 'mathImage', src: '' })\n    }\n    let cachedMacros: string | undefined\n    if ( position.line === state.prevCursorPosition?.line && documentUri === state.prevDocumentUri ) {\n        cachedMacros = state.prevMacros\n    }\n    if (vscode.workspace.getConfiguration('latex-workshop').get('mathpreviewpanel.cursor.enabled', false)) {\n        texMath.texString = await renderCursor(document, texMath, getColor())\n    }\n    const result = await tex2svg(texMath, cachedMacros).catch(() => undefined)\n    if (!result) {\n        return\n    }\n    state.prevDocumentUri = documentUri\n    state.prevMacros = result.macros\n    state.prevCursorPosition = position\n    return state.panel.webview.postMessage({type: 'mathImage', src: result.svgDataUrl })\n}\n\nfunction getTexMath(document: vscode.TextDocument, position: vscode.Position) {\n    const texMath = lw.parser.find.math(document, position)\n    if (texMath) {\n        if (texMath.envname !== '$') {\n            return texMath\n        }\n        if (texMath.range.start.character !== position.character && texMath.range.end.character !== position.character) {\n            return texMath\n        }\n    }\n    return\n}\n"
  },
  {
    "path": "src/preview/mathjax/mathjax.ts",
    "content": "import * as workerpool from 'workerpool'\nimport type {ConvertOption, MacrosOption, SupportedExtension, SvgOption, TexOption} from 'mathjax-full'\nimport { mathjax } from 'mathjax-full/js/mathjax.js'\nimport { TeX } from 'mathjax-full/js/input/tex.js'\nimport { SVG } from 'mathjax-full/js/output/svg.js'\nimport { liteAdaptor } from 'mathjax-full/js/adaptors/liteAdaptor.js'\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html.js'\nimport type { LiteElement } from 'mathjax-full/js/adaptors/lite/Element.js'\nimport type { MathDocument } from 'mathjax-full/js/core/MathDocument.js'\nimport type { LiteDocument } from 'mathjax-full/js/adaptors/lite/Document.js'\nimport type { LiteText } from 'mathjax-full/js/adaptors/lite/Text.js'\nimport 'mathjax-full/js/input/tex/AllPackages.js'\n\n\nconst adaptor = liteAdaptor()\nRegisterHTMLHandler(adaptor)\n\nconst baseExtensions: SupportedExtension[] = ['ams', 'base', 'boldsymbol', 'color', 'configmacros', 'mathtools', 'newcommand', 'noerrors', 'noundefined']\n\nfunction createHtmlConverter(extensions: SupportedExtension[]) {\n    // https://github.com/mathjax/MathJax/issues/1219\n    const macrosOption: MacrosOption = {\n        bm: ['\\\\boldsymbol{#1}', 1],\n    }\n    const baseTexOption: TexOption = {\n        packages: extensions,\n        macros: macrosOption,\n        formatError: (_jax, error) => { throw new Error(error.message) }\n    }\n    const texInput = new TeX<LiteElement, LiteText, LiteDocument>(baseTexOption)\n    const svgOption: SvgOption = {fontCache: 'local'}\n    const svgOutput = new SVG<LiteElement, LiteText, LiteDocument>(svgOption)\n    return mathjax.document('', {InputJax: texInput, OutputJax: svgOutput}) as MathDocument<LiteElement, LiteText, LiteDocument>\n}\n\nlet html = createHtmlConverter(baseExtensions)\n\nfunction loadExtensions(extensions: SupportedExtension[]) {\n    const extensionsToLoad = baseExtensions.concat(extensions)\n    html = createHtmlConverter(extensionsToLoad)\n}\n\nfunction typeset(arg: string, opts: { scale: number, color: string }): string {\n    const convertOption: ConvertOption = {\n        display: true,\n        em: 18,\n        ex: 9,\n        containerWidth: 80*18\n    }\n    const node = html.convert(arg, convertOption) as LiteElement\n\n    const css = `svg {font-size: ${100 * opts.scale}%;} * { color: ${opts.color} }`\n    let svgHtml = adaptor.innerHTML(node)\n    svgHtml = svgHtml.replace(/<defs>/, `<defs><style>${css}</style>`)\n    return svgHtml\n}\n\nconst workers = {loadExtensions, typeset}\n\n// workerpool passes the resolved value of Promise, not Promise.\nexport type IMathJaxWorker = {\n    loadExtensions: (...args: Parameters<typeof loadExtensions>) => void,\n    typeset: (...args: Parameters<typeof typeset>) => string\n}\n\nworkerpool.worker(workers)\n"
  },
  {
    "path": "src/preview/mathjax.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as workerpool from 'workerpool'\nimport type { SupportedExtension } from 'mathjax-full'\nimport type { IMathJaxWorker } from './mathjax/mathjax'\nimport { lw } from '../lw'\n\nexport const mathjax = {\n    typeset\n}\n\nconst pool: workerpool.Pool = workerpool.pool(\n    path.join(__dirname, 'mathjax', 'mathjax.js'),\n    { minWorkers: 1, maxWorkers: 1, workerType: 'process' }\n)\nconst proxy = pool.proxy<IMathJaxWorker>()\n\nlw.onConfigChange('hover.preview.mathjax.extensions', initialize)\nlw.onDispose({ dispose: async () => { await pool.terminate(true) } })\n\nvoid initialize()\nasync function initialize() {\n    const extensions = vscode.workspace.getConfiguration('latex-workshop').get('hover.preview.mathjax.extensions', []) as SupportedExtension[]\n    const extensionsToLoad = extensions.filter((ex) => lw.constant.MATHJAX_EXT.includes(ex))\n    void (await proxy).loadExtensions(extensionsToLoad)\n}\n\nasync function typeset(arg: string, opts: { scale: number, color: string }): Promise<string> {\n    return (await proxy).typeset(arg, opts).timeout(3000)\n}\n"
  },
  {
    "path": "src/preview/server.ts",
    "content": "import * as vscode from 'vscode'\nimport * as http from 'http'\nimport type { AddressInfo } from 'net'\nimport ws from 'ws'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nconst logger = lw.log('Server')\n\nexport {\n    getPort,\n    getUrl,\n    setHandler,\n    initialize,\n    // initialized\n}\n\nclass WsServer extends ws.Server {\n    private readonly validOrigin: string\n\n    constructor(server: http.Server, validOrigin: string) {\n        super({server})\n        this.validOrigin = validOrigin\n    }\n\n    //\n    // Check Origin header during WebSocket handshake.\n    // - https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#client_handshake_request\n    // - https://github.com/websockets/ws/blob/master/doc/ws.md#servershouldhandlerequest\n    //\n    shouldHandle(req: http.IncomingMessage): boolean {\n        const reqOrigin = req.headers['origin']\n        if (!this.validOrigin.includes('127.0.0.1') || reqOrigin?.includes('127.0.0.1')) {\n            return true\n        }\n        if (reqOrigin !== undefined && reqOrigin !== this.validOrigin) {\n            logger.log(`Origin in WebSocket upgrade request is invalid: ${JSON.stringify(req.headers)}`)\n            logger.log(`Valid origin: ${this.validOrigin}`)\n            return false\n        } else {\n            return true\n        }\n    }\n\n}\n\nlogger.log('Creating LaTeX Workshop http and websocket server.')\n// let initializeResolve: ((value: unknown) => void) | undefined = undefined\n// const initialized = new Promise((resolve) => initializeResolve = resolve)\nconst state: {\n    // initialized: Promise<unknown>,\n    httpServer: http.Server,\n    wsServer?: WsServer,\n    address?: AddressInfo,\n    validOriginUri?: vscode.Uri,\n    handlers: ((url: string) => string | undefined)[]\n} = {\n    httpServer: initialize(),\n    handlers: []\n    // initialized\n}\n\nlw.onDispose({ dispose: () => state.httpServer.close() })\n\nfunction getPort(): number {\n    const portNum = state.address?.port\n    if (portNum === undefined) {\n        logger.log('Server port number is undefined.')\n        throw new Error('Server port number is undefined.')\n    }\n    return portNum\n}\n\nasync function getUrl(pdfUri?: vscode.Uri): Promise<{url: string, uri: vscode.Uri}> {\n    // viewer/viewer.js automatically requests the file to server.ts, and server.ts decodes the encoded path of PDF file.\n    const origUrl = await vscode.env.asExternalUri(vscode.Uri.parse(`http://127.0.0.1:${getPort()}`, true))\n    const url =\n        (origUrl.toString().endsWith('/') ? origUrl.toString().slice(0, -1) : origUrl.toString()) +\n        (pdfUri ? ('/viewer.html?file=' + encodePathWithPrefix(pdfUri)) : '')\n    return { url, uri: vscode.Uri.parse(url, true) }\n}\n\nfunction setHandler(newHandler: (url: string) => string | undefined) {\n    state.handlers.push(newHandler)\n}\n\nfunction getValidOrigin(): string {\n    if (state.validOriginUri) {\n        return `${state.validOriginUri.scheme}://${state.validOriginUri.authority}`\n    } else {\n        throw new Error('[Server] validOrigin is undefined')\n    }\n}\n\nfunction initialize(hostname?: string): http.Server {\n    if (hostname) { // We must have created one.\n        state.httpServer.close()\n        state.address = undefined\n    }\n    const httpServer = http.createServer((request, response) => handler(request, response))\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const viewerPort = configuration.get('view.pdf.internal.port') as number\n    httpServer.listen(viewerPort, hostname ?? '127.0.0.1', undefined, async () => {\n        // Double set state to ensure the server is set\n        state.httpServer = httpServer\n        const address = state.httpServer.address()\n        if (address && typeof address !== 'string') {\n            state.address = address\n            logger.log(`Server successfully started: ${JSON.stringify(address)} .`)\n            if (hostname) {\n                logger.log(`BE AWARE: YOU ARE PUBLIC TO ${hostname} !`)\n            }\n            state.validOriginUri = await obtainValidOrigin(address.port, hostname ?? '127.0.0.1')\n            logger.log(`validOrigin is ${getValidOrigin()}`)\n            initializeWsServer(httpServer, getValidOrigin())\n            // if (initializeResolve) {\n            //     initializeResolve(undefined)\n            // }\n        } else {\n            logger.log(`Server failed to start. Address is invalid: ${JSON.stringify(address)}`)\n        }\n    })\n    httpServer.on('error', (err) => {\n        logger.log(`Error creating LaTeX Workshop http server: ${JSON.stringify(err)} .`)\n    })\n    return httpServer\n}\n\nasync function obtainValidOrigin(serverPort: number, hostname: string): Promise<vscode.Uri> {\n    const origUrl = `http://${hostname}:${serverPort}/`\n    const uri = await vscode.env.asExternalUri(vscode.Uri.parse(origUrl, true))\n    return uri\n}\n\nfunction initializeWsServer(httpServer: http.Server, validOrigin: string) {\n    if (state.wsServer) {\n        state.wsServer.close()\n    }\n    state.wsServer = new WsServer(httpServer, validOrigin)\n    state.wsServer.on('connection', (websocket) => {\n        websocket.on('message', (msg: string) => lw.viewer.handler(websocket, msg))\n        websocket.on('error', (err) => logger.log(`Error on WebSocket connection. ${JSON.stringify(err)}`))\n    })\n}\n\n//\n// We reject cross-origin requests. The specification says \"In case a server does not wish to participate in the CORS protocol,\n// ... The server is encouraged to use the 403 status in such HTTP responses.\"\n// - https://fetch.spec.whatwg.org/#http-requests\n// - https://fetch.spec.whatwg.org/#http-responses\n//\nfunction checkHttpOrigin(req: http.IncomingMessage, response: http.ServerResponse): boolean {\n    const validOrigin = getValidOrigin()\n    if (!validOrigin.includes('127.0.0.1') || req.headers['origin']?.includes('127.0.0.1')) {\n        return true\n    }\n    const reqOrigin = req.headers['origin']\n    if (reqOrigin !== undefined && !reqOrigin.startsWith('vscode-webview:') && reqOrigin !== validOrigin) {\n        logger.log(`Origin in http request is invalid: ${JSON.stringify(req.headers)}`)\n        logger.log(`Valid origin: ${validOrigin}`)\n        response.writeHead(403)\n        response.end()\n        return false\n    } else {\n        return true\n    }\n}\n\nfunction sendOkResponse(response: http.ServerResponse, content: Buffer, contentType: string, cors: boolean = true) {\n    //\n    // Headers to enable site isolation.\n    // - https://fetch.spec.whatwg.org/#cross-origin-resource-policy-header\n    // - https://www.w3.org/TR/post-spectre-webdev/#documents-isolated\n    //\n    const sameOriginPolicyHeaders = {\n        'Cross-Origin-Resource-Policy': 'same-origin',\n        'Cross-Origin-Embedder-Policy': 'require-corp',\n        'Cross-Origin-Opener-Policy': 'same-origin',\n        'X-Content-Type-Options': 'nosniff'\n    }\n    response.writeHead(200, {\n        'Content-Type': contentType,\n        'Content-Length': content.length,\n        ...(cors ? sameOriginPolicyHeaders : {'Access-Control-Allow-Origin': '*'})\n    })\n    response.end(content)\n}\n\nasync function handler(request: http.IncomingMessage, response: http.ServerResponse) {\n    if (await lw.extra.liveshare.handle.server.request(request, response)) {\n        return\n    }\n\n    if (!request.url) {\n        return\n    }\n    const isValidOrigin = checkHttpOrigin(request, response)\n    if (!isValidOrigin) {\n        return\n    }\n    if (hasPrefix(request.url) && !request.url.includes('viewer.html')) {\n        const s = request.url.replace('/', '')\n        let fileUri = decodePathWithPrefix(s)\n        const isVsls = (fileUri.scheme === 'vsls') && (lw.extra.liveshare.isHost())\n        if (isVsls) {\n            fileUri = lw.extra.liveshare.getApi()?.convertSharedUriToLocal(fileUri) ?? fileUri\n        }\n        if (!lw.viewer.isViewing(fileUri) && !isVsls) {\n            logger.log(`Invalid PDF request: ${fileUri.toString(true)}`)\n            response.writeHead(404)\n            response.end()\n            return\n        }\n        try {\n            const content = await vscode.workspace.fs.readFile(fileUri)\n            sendOkResponse(response, Buffer.from(content), 'application/pdf')\n            logger.log(`Preview PDF file: ${fileUri.toString(true)}`)\n        } catch (e) {\n            logger.logError(`Error reading PDF ${fileUri.toString(true)}`, e)\n            response.writeHead(404)\n            response.end()\n        }\n        return\n    }\n    if (request.url.endsWith('/config.json')) {\n        const params = lw.viewer.getParams()\n        sendOkResponse(response, Buffer.from(JSON.stringify(params)), 'application/json')\n        return\n    }\n    let root: string\n    if (request.url.startsWith('/build/') || request.url.startsWith('/cmaps/') || request.url.startsWith('/standard_fonts/') || request.url.startsWith('/wasm/')) {\n        root = path.resolve(lw.extensionRoot, 'node_modules', 'pdfjs-dist')\n    } else if (request.url.startsWith('/out/viewer/') || request.url.startsWith('/viewer/')) {\n        // For requests to /out/viewer/*.js and requests to /viewer/*.ts.\n        // The latter is for debugging with sourcemap.\n        root = path.resolve(lw.extensionRoot)\n    } else {\n        root = path.resolve(lw.extensionRoot, 'viewer')\n    }\n    for (const overrideHandler of state.handlers) {\n        const overrideRoot = overrideHandler(request.url)\n        if (overrideRoot !== undefined) {\n            root = overrideRoot\n            break\n        }\n    }\n    //\n    // Prevent directory traversal attack.\n    // - https://en.wikipedia.org/wiki/Directory_traversal_attack\n    //\n    const reqFileName = path.posix.resolve('/', request.url.split('?')[0])\n    const fileName = path.resolve(root, '.' + reqFileName)\n    let contentType: string\n    switch (path.extname(fileName)) {\n        case '.html': {\n            contentType = 'text/html'\n            break\n        }\n        case '.mjs':\n        case '.js': {\n            contentType = 'text/javascript'\n            break\n        }\n        case '.css': {\n            contentType = 'text/css'\n            break\n        }\n        case '.json': {\n            contentType = 'application/json'\n            break\n        }\n        case '.png': {\n            contentType = 'image/png'\n            break\n        }\n        case '.jpg': {\n            contentType = 'image/jpg'\n            break\n        }\n        case '.gif': {\n            contentType = 'image/gif'\n            break\n        }\n        case '.svg': {\n            contentType = 'image/svg+xml'\n            break\n        }\n        case '.ico': {\n            contentType = 'image/x-icon'\n            break\n        }\n        default: {\n            contentType = 'application/octet-stream'\n            break\n        }\n    }\n    try {\n        const content = await vscode.workspace.fs.readFile(lw.file.toUri(fileName))\n        sendOkResponse(response, Buffer.from(content), contentType, false)\n    } catch (err) {\n        if (typeof (err as any).code === 'string' && (err as any).code === 'FileNotFound') {\n            response.writeHead(404)\n        } else {\n            response.writeHead(500)\n        }\n        response.end()\n    }\n}\n\n/**\n * We encode the path with base64url after calling encodeURIComponent.\n * The reason not using base64url directly is that we are not sure that\n * encodeURIComponent, unescape, and btoa trick is valid on node.js.\n * - https://en.wikipedia.org/wiki/Base64#URL_applications\n * - https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/btoa#Unicode_strings\n */\nfunction encodePath(url: string) {\n    const s = encodeURIComponent(url)\n    const b64 = Buffer.from(s).toString('base64')\n    const b64url = b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n    return b64url\n}\n\nfunction decodePath(b64url: string) {\n    const tmp = b64url + '='.repeat((4 - b64url.length % 4) % 4)\n    const b64 = tmp.replace(/-/g, '+').replace(/_/g, '/')\n    const s = Buffer.from(b64, 'base64').toString()\n    return decodeURIComponent(s)\n}\n\nfunction hasPrefix(url: string) {\n    return url.includes(lw.constant.PDF_PREFIX)\n}\n\nfunction encodePathWithPrefix(pdfFilePath: vscode.Uri) {\n    return lw.constant.PDF_PREFIX + encodePath(pdfFilePath.toString(true))\n}\n\nfunction decodePathWithPrefix(b64urlWithPrefix: string): vscode.Uri {\n    const s = b64urlWithPrefix.replace(lw.constant.PDF_PREFIX, '')\n    const uriString = decodePath(s)\n    return vscode.Uri.parse(uriString, true)\n}\n"
  },
  {
    "path": "src/preview/viewer/client.ts",
    "content": "import * as vscode from 'vscode'\nimport type ws from 'ws'\nimport type { ServerResponse } from '../../../types/latex-workshop-protocol-types/index'\n\nexport class Client {\n    readonly websocket: ws\n    readonly pdfFileUri: string\n    private readonly disposables = new Set<vscode.Disposable>()\n\n    constructor(websocket: ws, pdfFileUri: string) {\n        this.websocket = websocket\n        this.websocket.on('close', () => {\n            this.disposeDisposables()\n        })\n        this.pdfFileUri = pdfFileUri\n    }\n\n    private disposeDisposables() {\n        vscode.Disposable.from(...this.disposables).dispose()\n        this.disposables.clear()\n    }\n\n    onDidDispose(cb: () => unknown) {\n        this.disposables.add( { dispose: cb } )\n    }\n\n    send(message: ServerResponse) {\n        this.websocket.send(JSON.stringify(message))\n    }\n}\n"
  },
  {
    "path": "src/preview/viewer/pdfviewerhook.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport type { ViewerMode } from '../../types'\nimport { insert } from './pdfviewermanager'\nimport { populate } from './pdfviewerpanel'\n\nexport {\n    hook\n}\n\nclass PdfViewerHookProvider implements vscode.CustomReadonlyEditorProvider {\n    openCustomDocument(uri: vscode.Uri) {\n        return {\n            uri,\n            dispose: () => {}\n        }\n    }\n\n    async resolveCustomEditor(document: vscode.CustomDocument, webviewPanel: vscode.WebviewPanel) {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const viewerLocation = configuration.get<ViewerMode>('view.pdf.viewer', 'tab')\n        if (viewerLocation === 'tab') {\n            webviewPanel.webview.options = {\n                ...webviewPanel.webview.options,\n                enableScripts: true\n            }\n            const pdfPanel = await populate(document.uri, webviewPanel)\n            void insert(pdfPanel)\n        } else {\n            webviewPanel.onDidChangeViewState(e => { e.webviewPanel.dispose() })\n            if (document.uri === undefined || !document.uri.fsPath.toLocaleLowerCase().endsWith('.pdf')) {\n                return\n            }\n            void lw.viewer.viewInWebviewPanel(document.uri, 'current', false)\n        }\n    }\n}\n\nconst hook = new PdfViewerHookProvider()\n"
  },
  {
    "path": "src/preview/viewer/pdfviewermanager.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport { Client } from './client'\nimport type { PdfViewerPanel } from './pdfviewerpanel'\n\nexport {\n    create,\n    getClients,\n    getPanels,\n    insert\n}\n\nconst webviewPanelMap = new Map<string, Set<PdfViewerPanel>>()\nconst clientMap = new Map<string, Set<Client>>()\n\nfunction toKey(pdfUri: vscode.Uri): string {\n    return pdfUri.toString(true).toLocaleUpperCase()\n}\n\nfunction create(pdfUri: vscode.Uri): void {\n    const key = toKey(pdfUri)\n    if (!clientMap.has(key)) {\n        clientMap.set(key, new Set())\n    }\n    if (!webviewPanelMap.has(key)) {\n        webviewPanelMap.set(key, new Set())\n    }\n}\n\n/**\n * Returns the set of client instances of a PDF file.\n * Returns `undefined` if the viewer have not recieved any request for the PDF file.\n *\n * @param pdfUri The path of a PDF file.\n */\nfunction getClients(pdfUri?: vscode.Uri): Set<Client> | undefined {\n    if (pdfUri) {\n        return clientMap.get(toKey(pdfUri))\n    } else {\n        const clients = new Set<Client>()\n        clientMap.forEach(clientSet => clientSet.forEach(client => clients.add(client)))\n        return clients\n    }\n}\n\nfunction getPanels(pdfUri: vscode.Uri): Set<PdfViewerPanel> | undefined {\n    return webviewPanelMap.get(toKey(pdfUri))\n}\n\nfunction insert(pdfPanel: PdfViewerPanel): PdfViewerPanel | undefined {\n    const pdfUri = pdfPanel.pdfUri\n    lw.watcher.pdf.add(pdfUri)\n    create(pdfUri)\n    const panelSet = getPanels(pdfUri)\n    if (!panelSet) {\n        return\n    }\n    panelSet.add(pdfPanel)\n    pdfPanel.webviewPanel.onDidDispose(() => {\n        panelSet.delete(pdfPanel)\n    })\n    return pdfPanel\n}\n"
  },
  {
    "path": "src/preview/viewer/pdfviewerpanel.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../../lw'\nimport * as manager from './pdfviewermanager'\nimport type { PanelRequest, PdfViewerState } from '../../../types/latex-workshop-protocol-types/index'\nimport { escapeHtml, sleep } from '../../utils/utils'\n\nconst logger = lw.log('Viewer', 'Panel')\n\nexport {\n    type PdfViewerPanel,\n    serializer,\n    populate\n}\n\nclass PdfViewerPanel {\n    readonly webviewPanel: vscode.WebviewPanel\n    readonly pdfUri: vscode.Uri\n    private viewerState: PdfViewerState | undefined\n\n    constructor(pdfFileUri: vscode.Uri, panel: vscode.WebviewPanel) {\n        this.pdfUri = pdfFileUri\n        this.webviewPanel = panel\n        panel.webview.onDidReceiveMessage((msg: PanelRequest) => {\n            switch(msg.type) {\n                case 'state': {\n                    this.viewerState = msg.state\n                    lw.event.fire(lw.event.ViewerStatusChanged, msg.state)\n                    break\n                }\n                default: {\n                    break\n                }\n            }\n        })\n    }\n\n    get state() {\n        return this.viewerState\n    }\n\n}\n\nclass PdfViewerPanelSerializer implements vscode.WebviewPanelSerializer {\n    async deserializeWebviewPanel(panel: vscode.WebviewPanel, argState: {state: PdfViewerState}): Promise<void> {\n        // await lw.server.initialized\n        logger.log(`Restoring at column ${panel.viewColumn} with state ${JSON.stringify(argState.state)}.`)\n        const state = argState.state\n        let pdfFileUri: vscode.Uri | undefined\n        if (state.path) {\n            pdfFileUri = lw.file.toUri(state.path)\n        } else if (state.pdfFileUri) {\n            pdfFileUri = vscode.Uri.parse(state.pdfFileUri, true)\n        }\n        if (!pdfFileUri) {\n            logger.log('Failed restoring viewer with undefined PDF path.')\n            panel.webview.html = '<!DOCTYPE html> <html lang=\"en\"><meta charset=\"utf-8\"/><br>The path of PDF file is undefined.</html>'\n            return\n        }\n        if (! await lw.file.exists(pdfFileUri)) {\n            const s = escapeHtml(pdfFileUri.toString())\n            logger.log(`Failed restoring viewer with non-existent PDF ${pdfFileUri.toString(true)} .`)\n            panel.webview.html = `<!DOCTYPE html> <html lang=\"en\"><meta charset=\"utf-8\"/><br>File not found: ${s}</html>`\n            return\n        }\n        panel.webview.html = await getPDFViewerContent(pdfFileUri)\n        const pdfPanel = new PdfViewerPanel(pdfFileUri, panel)\n        manager.insert(pdfPanel)\n        return\n    }\n}\n\nconst serializer = new PdfViewerPanelSerializer()\n\nlet codespacesPatched = false\nasync function patchCodespaces(url: vscode.Uri) {\n    if (codespacesPatched) {\n        return\n    }\n    if (vscode.env.remoteName === 'codespaces' && vscode.env.uiKind === vscode.UIKind.Web) {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop')\n        const delay = configuration.get('codespaces.portforwarding.openDelay', 20000)\n        // We have to open the url in a browser tab for the authentication of port forwarding through githubpreview.dev.\n        await vscode.env.openExternal(url)\n        await sleep(delay)\n    }\n    codespacesPatched = true\n}\n\n// Create a PdfViewerPanel inside an existing vscode.WebviewPanel\nasync function populate(pdfUri: vscode.Uri, panel: vscode.WebviewPanel): Promise<PdfViewerPanel>{\n    // await lw.server.initialized\n    const htmlContent = await getPDFViewerContent(pdfUri)\n    panel.webview.html = htmlContent\n    const pdfPanel = new PdfViewerPanel(pdfUri, panel)\n    return pdfPanel\n}\n\nfunction getKeyboardEventConfig(): boolean {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const setting: 'auto' | 'force' | 'never' = configuration.get('view.pdf.internal.keyboardEvent', 'auto')\n    if (setting === 'auto') {\n        return true\n    } else if (setting === 'force') {\n        return true\n    } else {\n        return false\n    }\n}\n\n/**\n * Returns the HTML content of the internal PDF viewer.\n *\n * @param pdfUri The path of a PDF file to be opened.\n */\nasync function getPDFViewerContent(pdfUri: vscode.Uri): Promise<string> {\n    const uri = (await lw.server.getUrl(pdfUri)).uri\n    const iframeSrcOrigin = `${uri.scheme}://${uri.authority}`\n    const iframeSrcUrl = uri.toString(true)\n    await patchCodespaces(uri)\n    logger.log(`Internal PDF viewer at ${iframeSrcUrl} .`)\n    const rebroadcast: boolean = getKeyboardEventConfig()\n    return `\n    <!DOCTYPE html><html><head><meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'none'; base-uri 'none'; frame-src *; script-src 'unsafe-inline'; style-src 'unsafe-inline';\"></head>\n    <body><iframe id=\"preview-panel\" class=\"preview-panel\" src=\"${iframeSrcUrl}\" style=\"position:absolute; border: none; left: 0; top: 0; width: 100%; height: 100%;\">\n    </iframe>\n    <script>\n    // When the tab gets focus again later, move the\n    // the focus to the iframe so that keyboard navigation works in the pdf.\n    const iframe = document.getElementById('preview-panel');\n    window.onfocus = function() {\n        setTimeout(function() { // doesn't work immediately\n            iframe.contentWindow.focus();\n        }, 100);\n    }\n\n    // Prevent the whole iframe selected.\n    // See https://github.com/James-Yu/LaTeX-Workshop/issues/3408\n    window.addEventListener('selectstart', (e) => {\n        e.preventDefault();\n    });\n\n    const vsStore = acquireVsCodeApi();\n    // To enable keyboard shortcuts of VS Code when the iframe is focused,\n    // we have to dispatch keyboard events in the parent window.\n    // See https://github.com/microsoft/vscode/issues/65452#issuecomment-586036474\n    window.addEventListener('message', (e) => {\n        if (e.origin !== '${iframeSrcOrigin}') {\n            return;\n        }\n        switch (e.data.type) {\n            case 'initialized': {\n                const state = vsStore.getState();\n                if (state) {\n                    state.type = 'restore_state';\n                    iframe.contentWindow.postMessage(state, '${iframeSrcOrigin}');\n                } else {\n                    iframe.contentWindow.postMessage({type: 'restore_state', state: {kind: 'not_stored'} }, '${iframeSrcOrigin}');\n                }\n                break;\n            }\n            case 'keyboard_event': {\n                if (${rebroadcast}) {\n                    window.dispatchEvent(new KeyboardEvent('keydown', e.data.event));\n                }\n                break;\n            }\n            case 'state': {\n                vsStore.setState(e.data);\n                break;\n            }\n            default:\n            break;\n        }\n        vsStore.postMessage(e.data)\n    });\n    </script>\n    </body></html>\n    `\n}\n"
  },
  {
    "path": "src/preview/viewer.ts",
    "content": "import * as vscode from 'vscode'\nimport ws from 'ws'\nimport * as path from 'path'\nimport * as os from 'os'\nimport * as cs from 'cross-spawn'\nimport { lw } from '../lw'\nimport type { SyncTeXRecordToPDF, SyncTeXRecordToPDFAll, ViewerMode } from '../types'\nimport * as manager from './viewer/pdfviewermanager'\nimport { populate } from './viewer/pdfviewerpanel'\n\nimport type { ClientRequest, PdfViewerParams, PdfViewerState } from '../../types/latex-workshop-protocol-types/index'\nimport { Client } from './viewer/client'\n\nimport { moveActiveEditor } from '../utils/webview'\n\nconst logger = lw.log('Viewer')\n\nexport {\n    getParams,\n    getViewerState,\n    handler,\n    isViewing,\n    locate,\n    viewInWebviewPanel,\n    refresh,\n    view\n}\nexport { serializer } from './viewer/pdfviewerpanel'\nexport { hook } from './viewer/pdfviewerhook'\n\nlw.watcher.pdf.onChange(pdfUri => {\n    if (lw.compile.compiledPDFWriting === 0 || path.relative(lw.compile.compiledPDFPath, pdfUri.fsPath) !== '') {\n        refresh(pdfUri)\n    }\n})\nlw.onConfigChange(['view.pdf.toolbar.hide.timeout', 'view.pdf.invert', 'view.pdf.invertMode', 'view.pdf.color', 'view.pdf.internal', 'view.pdf.reload.transition'], () => {\n    reload()\n})\n\nconst isViewing = (fileUri: vscode.Uri) => manager.getClients(fileUri) !== undefined\n\nfunction reload(): void {\n    manager.getClients()?.forEach(client => {\n        client.send({type: 'reload'})\n    })\n}\n\n/**\n * Refreshes PDF viewers of `pdfFile`.\n *\n * @param pdfFile The path of a PDF file. If `pdfFile` is `undefined`,\n * refreshes all the PDF viewers.\n */\nfunction refresh(pdfUri?: vscode.Uri): void {\n    logger.log(`Call refreshExistingViewer: ${pdfUri ?? 'undefined'} .`)\n    if (pdfUri === undefined) {\n        manager.getClients()?.forEach(client => {\n            client.send({type: 'refresh', pdfFileUri: client.pdfFileUri})\n        })\n        return\n    }\n    let clientSet = manager.getClients(pdfUri)\n    clientSet = lw.extra.liveshare.handle.viewer.refresh(pdfUri.fsPath, clientSet)\n    if (!clientSet) {\n        logger.log(`Not found PDF viewers to refresh: ${pdfUri}`)\n        return\n    }\n    logger.log(`Refresh PDF viewer: ${pdfUri}`)\n    clientSet.forEach(client => {\n        client.send({type: 'refresh', pdfFileUri: client.pdfFileUri})\n    })\n}\n\nasync function getUrl(pdfUri: vscode.Uri): Promise<string | undefined> {\n    if (!await lw.file.exists(pdfUri)) {\n        logger.log(`Cannot find PDF file ${pdfUri}`)\n        logger.refreshStatus('check', 'statusBar.foreground', `Cannot view file PDF file. File not found: ${pdfUri}`, 'warning')\n        return\n    }\n    return (await lw.server.getUrl(pdfUri)).url\n}\n\nasync function view(pdfUri: vscode.Uri, mode?: 'tab' | 'browser' | 'external'): Promise<void> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const tabEditorGroup = configuration.get('view.pdf.tab.editorGroup') as string\n    let viewerMode: ViewerMode = mode ?? configuration.get<ViewerMode>('view.pdf.viewer', 'tab')\n    if (mode === 'tab' && configuration.get<ViewerMode>('view.pdf.viewer', 'tab') === 'legacy') {\n        viewerMode = 'legacy'\n    }\n    if (viewerMode === 'browser') {\n        return viewInBrowser(pdfUri)\n    } else if (viewerMode === 'tab') {\n        return viewInCustomEditor(pdfUri)\n    } else if (viewerMode === 'legacy' || viewerMode === 'singleton') {\n        return viewInWebviewPanel(pdfUri, tabEditorGroup, true)\n    } else if (viewerMode === 'external') {\n        return viewInExternal(pdfUri)\n    } else {\n        return viewInCustomEditor(pdfUri)\n    }\n}\n\n/**\n * Opens the PDF uri in the browser.\n *\n * @param pdfUri The path of a PDF file.\n */\nasync function viewInBrowser(pdfUri: vscode.Uri): Promise<void> {\n    const url = await getUrl(pdfUri)\n    if (!url) {\n        return\n    }\n    manager.create(pdfUri)\n    lw.watcher.pdf.add(pdfUri)\n    try {\n        logger.log(`Serving PDF file at ${url}`)\n        await vscode.env.openExternal(vscode.Uri.parse(url, true))\n        logger.log(`Open PDF viewer for ${pdfUri.toString(true)}`)\n    } catch (e: unknown) {\n        void vscode.window.showInputBox({\n            prompt: 'Unable to open browser. Please copy and visit this link.',\n            value: url\n        })\n        logger.logError(`Failed opening PDF viewer for ${pdfUri.toString(true)}`, e)\n    }\n}\n\nasync function viewInCustomEditor(pdfUri: vscode.Uri): Promise<void> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const editorGroup = configuration.get('view.pdf.tab.editorGroup') as string\n    const showOptions: vscode.TextDocumentShowOptions = {\n        viewColumn: vscode.ViewColumn.Active,\n        preserveFocus: true\n    }\n    if (editorGroup === 'left') {\n        const currentColumn = vscode.window.activeTextEditor?.viewColumn\n        if (currentColumn && currentColumn > 1) {\n            showOptions.viewColumn = currentColumn - 1\n            await vscode.commands.executeCommand('vscode.openWith', pdfUri, 'latex-workshop-pdf-hook', showOptions)\n            await vscode.commands.executeCommand('workbench.action.focusRightGroup')\n        } else {\n            await vscode.commands.executeCommand('vscode.openWith', pdfUri, 'latex-workshop-pdf-hook', showOptions)\n            await moveActiveEditor('left', true)\n        }\n    } else if (editorGroup === 'right') {\n        const currentColumn = vscode.window.activeTextEditor?.viewColumn\n        showOptions.viewColumn = (currentColumn ?? 0) + 1\n        await vscode.commands.executeCommand('vscode.openWith', pdfUri, 'latex-workshop-pdf-hook', showOptions)\n        await vscode.commands.executeCommand('workbench.action.focusLeftGroup')\n    } else {\n        await vscode.commands.executeCommand('vscode.openWith', pdfUri, 'latex-workshop-pdf-hook', showOptions)\n        await moveActiveEditor(editorGroup, true)\n    }\n    logger.log(`Open PDF tab for ${pdfUri.toString(true)}`)\n}\n\nasync function viewInWebviewPanel(pdfUri: vscode.Uri, tabEditorGroup: string, preserveFocus: boolean): Promise<void> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const singleton = configuration.get<ViewerMode>('view.pdf.viewer', 'tab') === 'singleton'\n    if (singleton) {\n        const panels = manager.getPanels(pdfUri)\n        if (panels && panels.size > 0) {\n            panels.forEach(panel => panel.webviewPanel.reveal(undefined, true))\n            logger.log(`Reveal the existing PDF tab for ${pdfUri.toString(true)}`)\n            return\n        }\n    }\n    const activeDocument = vscode.window.activeTextEditor?.document\n    const webviewPanel = vscode.window.createWebviewPanel('latex-workshop-pdf', path.basename(pdfUri.path), {\n        viewColumn: vscode.ViewColumn.Active,\n        preserveFocus: tabEditorGroup === 'current'\n    }, {\n        enableScripts: true,\n        retainContextWhenHidden: true\n    })\n    const viewerPanel = await populate(pdfUri, webviewPanel)\n    manager.insert(viewerPanel)\n    if (!viewerPanel) {\n        return\n    }\n    if (tabEditorGroup !== 'current' && activeDocument) {\n        await moveActiveEditor(tabEditorGroup, preserveFocus)\n    }\n    logger.log(`Open PDF tab for ${pdfUri.toString(true)}`)\n}\n\n/**\n * Opens the PDF file of in the external PDF viewer.\n *\n * @param pdfUri The path of a PDF file.\n */\nfunction viewInExternal(pdfUri: vscode.Uri): void {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    let command = configuration.get('view.pdf.external.viewer.command') as string\n    let args = configuration.get('view.pdf.external.viewer.args') as string[]\n    if (!command) {\n        switch (process.platform) {\n            case 'win32':\n                command = 'SumatraPDF.exe'\n                args = ['%PDF%']\n                break\n            case 'linux':\n                command = 'xdg-open'\n                args = ['%PDF%']\n                break\n            case 'darwin':\n                command = 'open'\n                args = ['%PDF%']\n                break\n            default:\n                break\n        }\n    }\n    if (args) {\n        args = args.map(arg => arg.replace('%PDF%', pdfUri.fsPath))\n    }\n    logger.log(`Open external viewer for ${pdfUri.toString(true)}`)\n    logger.logCommand('Execute the external PDF viewer command', command, args)\n    const proc = cs.spawn(command, args, {cwd: path.dirname(pdfUri.fsPath), detached: true})\n    let stdout = ''\n    proc.stdout.on('data', newStdout => {\n        stdout += newStdout\n    })\n    let stderr = ''\n    proc.stderr.on('data', newStderr => {\n        stderr += newStderr\n    })\n    const cb = () => {\n        void logger.log(`The external PDF viewer stdout: ${stdout}`)\n        void logger.log(`The external PDF viewer stderr: ${stderr}`)\n    }\n    proc.on('error', cb)\n    proc.on('exit', cb)\n}\n\n/**\n * Handles the request from the internal PDF viewer.\n *\n * @param websocket The WebSocket connecting with the viewer.\n * @param msg A message from the viewer in JSON fromat.\n */\nfunction handler(websocket: ws, msg: string): void {\n    const data = JSON.parse(msg) as ClientRequest\n    if (data.type !== 'ping') {\n        logger.log(`Handle data type: ${data.type}`)\n    }\n    switch (data.type) {\n        case 'open': {\n            const pdfUri = vscode.Uri.parse(data.pdfFileUri, true)\n            if (pdfUri.scheme === 'vsls' && lw.extra.liveshare.isHost()) {\n                manager.create(pdfUri)\n            }\n            const clientSet = manager.getClients(pdfUri)\n            if (clientSet === undefined) {\n                break\n            }\n            const client = new Client(websocket, pdfUri.toString(true))\n            lw.extra.liveshare.register(client)\n            clientSet.add(client)\n            client.onDidDispose(() => {\n                clientSet.delete(client)\n            })\n            break\n        }\n        case 'loaded': {\n            lw.event.fire(lw.event.ViewerPageLoaded)\n            const configuration = vscode.workspace.getConfiguration('latex-workshop')\n            if (configuration.get('synctex.afterBuild.enabled') as boolean) {\n                logger.log('SyncTex after build invoked.')\n                const uri = vscode.Uri.parse(data.pdfFileUri, true)\n                lw.locate.synctex.toPDF(uri)\n            }\n            break\n        }\n        case 'reverse_synctex': {\n            const uri = vscode.Uri.parse(data.pdfFileUri, true)\n            if (lw.extra.liveshare.handle.viewer.reverseSyncTeX(websocket, uri, data)) {\n                break\n            }\n            void lw.locate.synctex.toTeX(data, uri)\n            break\n        }\n        case 'external_link': {\n            const uri = vscode.Uri.parse(data.url)\n            if (['http', 'https'].includes(uri.scheme)) {\n                void vscode.env.openExternal(uri)\n            } else {\n                void vscode.window.showInputBox({\n                    prompt: 'For security reasons, please copy and visit this link manually.',\n                    value: data.url\n                })\n            }\n            break\n        }\n        case 'ping': {\n            // nothing to do\n            break\n        }\n        case 'add_log': {\n            logger.log(`${data.message}`)\n            break\n        }\n        case 'copy': {\n            if ((data.isMetaKey && os.platform() === 'darwin') ||\n                (!data.isMetaKey && os.platform() !== 'darwin')) {\n                void vscode.env.clipboard.writeText(data.content as string)\n            }\n            break\n        }\n        default: {\n            if (lw.extra.liveshare.handle.viewer.syncTeX(websocket, data)) {\n                break\n            }\n            logger.log(`Unknown websocket message: ${msg}`)\n            break\n        }\n    }\n}\n\nfunction getParams(): PdfViewerParams {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const invertType = configuration.get('view.pdf.invertMode.enabled') as string\n    const invertEnabled =\n        (invertType === 'auto' && vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Dark) ||\n        invertType === 'always' ||\n        (invertType === 'compat' && (configuration.get('view.pdf.invert') as number) > 0)\n    const pack: PdfViewerParams = {\n        toolbar: configuration.get('view.pdf.toolbar.hide.timeout') as number,\n        sidebar: {\n            open: configuration.get('view.pdf.sidebar.open') as 'off' | 'on' | 'persist',\n            view: configuration.get('view.pdf.sidebar.view') as 'thumbnails' | 'outline' | 'attachments' | 'layers' | 'persist',\n        },\n        scale: configuration.get('view.pdf.zoom') as string,\n        trim: configuration.get('view.pdf.trim') as number,\n        scrollMode: configuration.get('view.pdf.scrollMode') as number,\n        spreadMode: configuration.get('view.pdf.spreadMode') as number,\n        hand: configuration.get('view.pdf.hand') as boolean,\n        invertMode: {\n            enabled: invertEnabled,\n            brightness: configuration.get('view.pdf.invertMode.brightness') as number,\n            grayscale: configuration.get('view.pdf.invertMode.grayscale') as number,\n            hueRotate: configuration.get('view.pdf.invertMode.hueRotate') as number,\n            invert: configuration.get('view.pdf.invert') as number,\n            sepia: configuration.get('view.pdf.invertMode.sepia') as number,\n        },\n        color: {\n            light: {\n                pageColorsForeground: configuration.get('view.pdf.color.light.pageColorsForeground') || '',\n                pageColorsBackground: configuration.get('view.pdf.color.light.pageColorsBackground') || '',\n                backgroundColor: configuration.get('view.pdf.color.light.backgroundColor', '#ffffff'),\n                pageBorderColor: configuration.get('view.pdf.color.light.pageBorderColor', 'lightgrey'),\n            },\n            dark: {\n                pageColorsForeground: configuration.get('view.pdf.color.dark.pageColorsForeground') || '',\n                pageColorsBackground: configuration.get('view.pdf.color.dark.pageColorsBackground') || '',\n                backgroundColor: configuration.get('view.pdf.color.dark.backgroundColor', '#ffffff'),\n                pageBorderColor: configuration.get('view.pdf.color.dark.pageBorderColor', 'lightgrey'),\n            },\n        },\n        codeColorTheme: vscode.window.activeColorTheme.kind === vscode.ColorThemeKind.Light ? 'light' : 'dark',\n        keybindings: {\n            synctex: configuration.get('view.pdf.internal.synctex.keybinding') as 'ctrl-click' | 'double-click',\n        },\n        reloadTransition: configuration.get('view.pdf.reload.transition') as 'none' | 'fade',\n    }\n    return pack\n}\n\n/**\n * Reveals the position of `record` on the internal PDF viewers.\n *\n * @param pdfUri The path of a PDF file.\n * @param record The position to be revealed.\n */\nasync function locate(pdfUri: vscode.Uri, record: SyncTeXRecordToPDF | SyncTeXRecordToPDFAll[]): Promise<void> {\n    let clientSet = manager.getClients(pdfUri)\n    if (clientSet === undefined || clientSet.size === 0) {\n        logger.log(`PDF is not opened: ${pdfUri.toString(true)} , try opening.`)\n        await view(pdfUri)\n        clientSet = manager.getClients(pdfUri)\n    }\n    if (clientSet === undefined || clientSet.size === 0) {\n        logger.log(`PDF cannot be opened: ${pdfUri.toString(true)} .`)\n        return\n    }\n    const needDelay = showInvisibleWebviewPanel(pdfUri)\n    for (const client of clientSet) {\n        setTimeout(() => {\n            client.send({type: 'synctex', data: record})\n        }, needDelay ? 200 : 0)\n        logger.log(`Try to synctex ${pdfUri.toString(true)}`)\n    }\n}\n\n/**\n * Reveals the internal PDF viewer of `pdfUri`.\n * The first one is revealed.\n *\n * @param pdfUri The path of a PDF file.\n * @returns Returns `true` if `WebviewPanel.reveal` called.\n */\nfunction showInvisibleWebviewPanel(pdfUri: vscode.Uri): boolean {\n    const panelSet = manager.getPanels(pdfUri)\n    if (!panelSet) {\n        return false\n    }\n    const activeViewColumn = vscode.window.activeTextEditor?.viewColumn\n    for (const panel of panelSet) {\n        const isSyntexOn = !panel.state || panel.state.synctexEnabled\n        if (panel.webviewPanel.viewColumn !== activeViewColumn\n            && !panel.webviewPanel.visible\n            && isSyntexOn) {\n            panel.webviewPanel.reveal(panel.webviewPanel.viewColumn, true)\n            return true\n        }\n        if (panel.webviewPanel.visible && isSyntexOn) {\n            return false\n        }\n        if (panel.webviewPanel.viewColumn !== activeViewColumn) {\n            return false\n        }\n    }\n    return false\n}\n\n/**\n * !! Test only\n * Returns the state of the internal PDF viewer of `pdfFilePath`.\n *\n * @param pdfUri The path of a PDF file.\n */\nfunction getViewerState(pdfUri: vscode.Uri): (PdfViewerState | undefined)[] {\n    const panelSet = manager.getPanels(pdfUri)\n    if (!panelSet) {\n        return []\n    }\n    return Array.from(panelSet).map( e => e.state )\n}\n"
  },
  {
    "path": "src/types.ts",
    "content": "import type * as vscode from 'vscode'\nimport type * as Ast from '@unified-latex/unified-latex-types'\nimport type { CmdEnvSuggestion } from './completion/completer/completerutils'\n\nexport type FileCache = {\n    /** The raw file path of this Cache. */\n    filePath: string,\n    /** Cached content of file. Dirty if opened in vscode, disk otherwise */\n    content: string,\n    /** Cached trimmed content of `content`. */\n    contentTrimmed: string,\n    /** Completion items */\n    elements: {\n        /** \\ref{} items */\n        reference?: ReferenceItem[],\n        /** \\gls items */\n        glossary?: GlossaryItem[],\n        /** \\begin{} items */\n        environment?: CmdEnvSuggestion[],\n        /** \\cite{} items from \\bibitem definition */\n        bibitem?: CitationItem[],\n        /** macro items */\n        macro?: CmdEnvSuggestion[],\n        /** \\usepackage{}, a dictionary whose key is package name and value is the options */\n        package?: {[packageName: string]: string[]},\n        /** _{} */\n        subscripts?: CompletionItem[],\n        /** ^{} */\n        superscripts?: CompletionItem[]\n    },\n    /** The sub-files of the LaTeX file. They should be tex or plain files */\n    children: {\n        /** The index of character sub-content is inserted */\n        index: number,\n        /** The path of the sub-file */\n        filePath: string\n    }[],\n    /** The array of the paths of `.bib` files referenced from the LaTeX file */\n    bibfiles: Set<string>,\n    /** The array of the paths of `.bib` files listed by `\\GlsXtrLoadResources` and `\\glsbibdata` to provide glossary entries */\n    glossarybibfiles: Set<string>,\n    /** A dictionary of external documents provided by `\\externaldocument` of\n     * `xr` package. The value is its prefix `\\externaldocument[prefix]{*}` */\n    external: {[filePath: string]: string},\n    /** The AST of this file, generated by unified-latex */\n    ast?: Ast.Root\n}\n\nexport type StepQueue = {\n    /**\n     * The {@link Step}s in the current recipe.\n     */\n    steps: Step[],\n    /**\n     * The {@link Step}s in the next recipe to be executed after the current\n     * ones.\n     */\n    nextSteps: Step[]\n}\n\nexport type ProcessEnv = {\n    [key: string]: string | undefined\n}\n\nexport type Tool = {\n    name: string,\n    command: string,\n    args?: string[],\n    env?: ProcessEnv\n}\n\nexport type Recipe = {\n    name: string,\n    tools: (string | Tool)[]\n}\n\nexport type RecipeStep = Tool & {\n    rootFile: string,\n    recipeName: string,\n    timestamp: number,\n    index: number,\n    isExternal: false,\n    isRetry: boolean,\n    isSkipped: boolean,\n     cwd: string\n}\n\nexport type ExternalStep = Tool & {\n    rootFile?: string,\n    recipeName: 'External',\n    timestamp: number,\n    index: number,\n    isExternal: true,\n    cwd: string\n}\n\nexport type Step = RecipeStep | ExternalStep\n\nexport type ViewerMode = 'browser' | 'tab' | 'external' | 'legacy' | 'singleton'\n\nexport type SyncTeXRecordToPDF = {\n    page: number,\n    x: number,\n    y: number,\n    indicator: boolean\n}\n\nexport type SyncTeXRecordToTeX = {\n    input: string,\n    line: number,\n    column: number\n}\n\nexport type SyncTeXRecordToPDFAll = SyncTeXRecordToPDF & {\n    h: number,\n    v: number,\n    W: number,\n    H: number\n}\n\nexport interface LaTeXLinter {\n    readonly linterDiagnostics: vscode.DiagnosticCollection,\n    getName(): string,\n    lintRootFile(rootPath: string): Promise<void>,\n    lintFile(document: vscode.TextDocument): Promise<void>,\n    parseLog(log: string, filePath?: string): void\n}\n\nexport interface LaTeXFormatter {\n    formatDocument(document: vscode.TextDocument, range?: vscode.Range): Promise<vscode.TextEdit | undefined>\n}\n\nexport enum TeXElementType { Environment, Macro, Section, SectionAst, SubFile, BibItem, BibField }\n\nexport type TeXElement = {\n    readonly type: TeXElementType,\n    readonly name: string,\n    label: string,\n    readonly lineFr: number,\n    lineTo: number,\n    readonly filePath: string,\n    children: TeXElement[],\n    parent?: TeXElement,\n    appendix?: boolean\n}\n\nexport type TeXMathEnv = {\n    texString: string,\n    range: vscode.Range,\n    envname: string\n}\n\nexport type PackageRaw = {\n    deps: DependencyRaw[],\n    macros: MacroRaw[],\n    envs: EnvironmentRaw[],\n    keys: { [key: string]: string[] },\n    args: string[]\n}\n\nexport type DependencyRaw = {\n    name: string,\n    if?: string\n}\n\nexport type EnvironmentRaw = {\n    name: string,\n    arg?: { format: string, snippet: string, keys?: string[], keyPos?: number },\n    if?: string,\n    unusual?: boolean\n}\n\nexport type MacroRaw = {\n    name: string,\n    arg?: { format: string, snippet: string, keys?: string[], keyPos?: number },\n    if?: string,\n    unusual?: boolean,\n    detail?: string,\n    doc?: string\n}\n\nexport type EnvironmentInfo = EnvironmentRaw & {\n    package: string,\n    detail: string\n}\n\nexport type MacroInfo = MacroRaw & {\n    package: string\n}\n\nexport type PackageObsolete = {\n    includes: {[key: string]: string[]},\n    macros: {[key: string]: any},\n    envs: {[key: string]: any},\n    options: string[],\n    keyvals: string[][]\n}\n\nexport type CompletionArgs = {\n    uri: vscode.Uri,\n    langId: string,\n    line: string,\n    position: vscode.Position\n}\n\nexport interface CompletionProvider {\n    from(result: RegExpMatchArray, args: CompletionArgs): vscode.CompletionItem[]\n}\n\nexport interface CompletionItem extends vscode.CompletionItem {\n    label: string\n}\n\nexport interface CitationField extends Map<string, string> {\n    author?: string,\n    journal?: string,\n    journaltitle?: string,\n    title?: string,\n    publisher?: string,\n    join(selectedFields: string[], prefixWithKeys: boolean, joinString?: string): string\n}\n\nexport interface CitationItem extends CompletionItem {\n    key: string,\n    fields: CitationField,\n    file: string,\n    position: vscode.Position\n}\n\nexport enum EnvSnippetType { AsName, AsMacro, ForBegin }\n\nexport interface ReferenceItem extends CompletionItem {\n    /** The file that defines the ref. */\n    file: string,\n    /** The position that defines the ref. */\n    position: vscode.Position,\n    /** Math macros */\n    math?: TeXMathEnv,\n    /**  Stores the ref number. */\n    prevIndex?: {refNumber: string, pageNumber: string}\n}\n\nexport enum GlossaryType {\n    glossary,\n    acronym\n}\n\nexport interface GlossaryItem extends CompletionItem {\n    type: GlossaryType,\n    filePath: string,\n    position: vscode.Position\n}\n"
  },
  {
    "path": "src/utils/convertfilename.ts",
    "content": "import * as fs from 'fs'\nimport * as iconv from 'iconv-lite'\n\n// https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings\nexport const iconvLiteSupportedEncodings = [\n    'utf8', 'utf16le', 'UTF-16BE', 'UTF-16',\n    'Shift_JIS', 'Windows-31j', 'Windows932', 'EUC-JP',\n    'GB2312', 'GBK', 'GB18030', 'Windows936', 'EUC-CN',\n    'KS_C_5601', 'Windows949', 'EUC-KR',\n    'Big5', 'Big5-HKSCS', 'Windows950',\n    'windows-874', 'windows-1250', 'windows-1251', 'windows-1252',\n    'windows-1253', 'windows-1254', 'windows-1255', 'windows-1256',\n    'windows-1257', 'windows-1258',\n    'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5',\n    'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10',\n    'ISO-8859-11', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',\n    'CP437', 'CP737', 'CP775',\n    'CP850', 'CP852', 'CP855', 'CP856', 'CP857', 'CP858',\n    'CP860', 'CP861', 'CP862', 'CP863', 'CP864', 'CP865', 'CP866', 'CP869',\n    'CP922', 'CP1046', 'CP1124', 'CP1125', 'CP1129', 'CP1133', 'CP1161', 'CP1162', 'CP1163',\n    'koi8-r', 'koi8-u', 'koi8-ru', 'koi8-t'\n]\n\nexport function convertFilenameEncoding(filePath: string): string | undefined {\n    for (const enc of iconvLiteSupportedEncodings) {\n        try {\n            const fpath = iconv.decode(Buffer.from(filePath, 'binary'), enc)\n            if (fs.existsSync(fpath)) {\n                return fpath\n            }\n        } catch (_) {}\n    }\n    return\n}\n"
  },
  {
    "path": "src/utils/inputfilepath.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { resolveFile } from './utils'\nimport { replaceArgumentPlaceholders } from '../utils/utils'\n\nenum MatchType {\n    Input,\n    Child\n}\n\ninterface MatchPath {\n    type: MatchType,\n    path: string,\n    directory?: string,\n    matchedString: string,\n    index: number\n}\n\nexport class InputFileRegExp {\n    private readonly inputReg = /\\\\(?:input|InputIfFileExists|include|SweaveInput|subfile|subfileinclude|loadglsentries|markdownInput|(?:(?:sub)?(?:import|inputfrom|includefrom)\\*?{([^}]*)}))(?:\\[[^[\\]{}]*\\])?{([^}]*)}/g\n    private readonly childReg = /<<(?:[^,]*,)*\\s*child='([^']*)'\\s*(?:,[^,]*)*>>=/g\n\n    /**\n     * Return the matched input path. If there is no match, return undefined\n     *\n     * @param content the string to match the regex on\n     * @param currentFile is the name of file in which the regex is executed\n     * @param rootFile\n     */\n    async execInput(content: string, currentFile: string, rootFile: string): Promise<{path: string, match: MatchPath} | undefined> {\n        const result = this.inputReg.exec(content)\n        if (result) {\n            const match = {\n                type: MatchType.Input,\n                path: result[2],\n                directory: result[1],\n                matchedString: result[0],\n                index: result.index\n            }\n            const filePath = await InputFileRegExp.parseInputFilePath(match, currentFile, rootFile)\n            return filePath ? {path: filePath, match} : undefined\n        }\n        return\n    }\n\n    /**\n     * Return the matched child path. If there is no match, return undefined\n     *\n     * @param content the string to match the regex on\n     * @param currentFile is the name of file in which the regex is executed\n     * @param rootFile\n     */\n    async execChild(content: string, currentFile: string, rootFile: string): Promise<{path: string, match: MatchPath} | undefined> {\n        const result = this.childReg.exec(content)\n        if (result) {\n            const match = {\n                type: MatchType.Child,\n                path: result[1],\n                directory: '',\n                matchedString: result[0],\n                index: result.index\n            }\n            const filePath = await InputFileRegExp.parseInputFilePath(match, currentFile, rootFile)\n            return filePath ? {path: filePath, match} : undefined\n        }\n        return\n    }\n\n    /**\n     * Return the matched input or child path. If there is no match, return\n     * undefined\n     *\n     * @param content the string to match the regex on\n     * @param currentFile is the name of file in which the regex is executed\n     * @param rootFile\n     */\n    async exec(content: string, currentFile: string, rootFile: string): Promise<{path: string, match: MatchPath} | undefined> {\n        return await this.execInput(content, currentFile, rootFile)\n               || await this.execChild(content, currentFile, rootFile)\n    }\n\n    /**\n     * Compute the resolved file path from matches of this.inputReg or this.childReg\n     *\n     * @param match is the the result of this.inputReg.exec() or this.childReg.exec()\n     * @param currentFile is the name of file in which the match has been obtained\n     * @param rootFile\n     */\n    static async parseInputFilePath(match: MatchPath, currentFile: string, rootFile: string): Promise<string | undefined> {\n        const rawTexDirs = vscode.workspace.getConfiguration('latex-workshop').get('latex.texDirs') as string[]\n        const texDirs = rawTexDirs.map((texDir) => {return replaceArgumentPlaceholders('', '')(texDir)})\n\n        const matchedDir = sanitizeInputFilePath(match.directory ?? '')\n        const matchedPath = sanitizeInputFilePath(match.path ?? '')\n        /* match of this.childReg */\n        if (match.type === MatchType.Child) {\n            return resolveFile([path.dirname(currentFile), path.dirname(rootFile), ...texDirs], matchedPath)\n        }\n\n        /* match of this.inputReg */\n        if (match.type === MatchType.Input) {\n            if (match.matchedString.startsWith('\\\\subimport') || match.matchedString.startsWith('\\\\subinputfrom') || match.matchedString.startsWith('\\\\subincludefrom')) {\n                return resolveFile([path.dirname(currentFile)], path.join(matchedDir, matchedPath))\n            } else if (match.matchedString.startsWith('\\\\import') || match.matchedString.startsWith('\\\\inputfrom') || match.matchedString.startsWith('\\\\includefrom')) {\n                return resolveFile([matchedDir, path.join(path.dirname(rootFile), matchedDir)], matchedPath)\n            } else {\n                return resolveFile([path.dirname(currentFile), path.dirname(rootFile), ...texDirs], matchedPath)\n            }\n        }\n        return\n    }\n}\n\nexport function sanitizeInputFilePath(filePath: string): string {\n    if (filePath.startsWith('\"') && filePath.endsWith('\"')) {\n        return filePath.slice(1, -1)\n    }\n    return filePath\n}\n"
  },
  {
    "path": "src/utils/logger.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport { lw } from '../lw'\n\nconst LOG_PANEL = vscode.window.createOutputChannel('LaTeX Workshop', 'latex_workshop_log')\nconst COMPILER_PANEL = vscode.window.createOutputChannel('LaTeX Compiler')\nconst STATUS_ITEM = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, -10000)\nconst PLACEHOLDERS: {[placeholder: string]: string} = {}\n\nCOMPILER_PANEL.append('Ready')\nlet CACHED_EXTLOG: string[] = []\nlet CACHED_COMPILER: string[] = []\n\nexport const log = {\n    getLogger,\n    getCachedLog,\n    resetCachedLog,\n    initStatusBarItem,\n    logConfig,\n    logConfigChange,\n    logDeprecatedConfig,\n    applyPlaceholders\n}\n\nfunction resetCachedLog() {\n    CACHED_EXTLOG = []\n    CACHED_COMPILER = []\n}\n\nfunction getCachedLog() {\n    return {CACHED_EXTLOG, CACHED_COMPILER}\n}\n\nfunction getLogger(...tags: string[]) {\n    const tagString = tags.map(tag => `[${tag}]`).join('')\n    return {\n        log(message: string) {\n            logTagless(`${tagString} ${message}`)\n        },\n        logCommand(message: string, command: string, args: string[] = []) {\n            logCommand(`${tagString} ${message}`, command, args)\n        },\n        logError(message: string, error: unknown, stderr?: string) {\n            logError(`${tagString} ${message}`, error, stderr)\n        },\n        logUtensilsError(message: string, error: Error) {\n            logUtensilsError(`${tagString} ${message}`, error)\n        },\n        logCompiler,\n        clearCompilerMessage,\n        showLog,\n        showCompilerLog,\n        showStatus,\n        refreshStatus,\n        showErrorMessage,\n        showErrorMessageWithCompilerLogButton,\n        showErrorMessageWithExtensionLogButton\n    }\n}\n\nfunction logTagless(message: string) {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (!configuration.get('message.log.show')) {\n        return\n    }\n    const date = new Date()\n    const timestamp = `${date.toLocaleTimeString('en-US', { hour12: false })}.${date.getMilliseconds().toString().padStart(3, '0')}`\n    vscode.workspace.workspaceFolders?.forEach(folder => {\n        if (folder.uri.fsPath in PLACEHOLDERS) {\n            return\n        }\n        const placeholder = `%WS${Object.keys(PLACEHOLDERS).length + 1}%`\n        PLACEHOLDERS[folder.uri.fsPath] = placeholder\n        const logMsg = `[${timestamp}][Logger] New log placeholder ${placeholder} registered for ${folder.uri.fsPath} .`\n        LOG_PANEL.appendLine(logMsg)\n        CACHED_EXTLOG.push(logMsg)\n    })\n    const logMsg = `[${timestamp}]${applyPlaceholders(message)}`\n    LOG_PANEL.appendLine(logMsg)\n    CACHED_EXTLOG.push(logMsg)\n}\n\nfunction applyPlaceholders(message: string) {\n    Object.entries(PLACEHOLDERS).forEach(([realPath, placeholder]) => message = message.replaceAll(realPath, placeholder))\n    return message\n}\n\nfunction logCommand(message: string, command: string, args: string[] = []) {\n    logTagless(`${message} The command is ${command}:${JSON.stringify(args)}.`)\n}\n\nfunction logUtensilsError(message: string, error: Error) {\n    let msg = `${message}: ${error.message}`\n    if ('location' in error) {\n        msg += ` Location context: ${JSON.stringify(error.location)} .`\n    }\n    logTagless(msg)\n}\n\nfunction logError(message: string, error: unknown, stderr?: string) {\n    if (error instanceof Error) {\n        logTagless(`${message} ${error.name}: ${error.message}`)\n        if (error.stack) {\n            logTagless(error.stack)\n        }\n    } else if (error instanceof Number) {\n        logTagless(`${message} Exit code ${error}`)\n    } else {\n        logTagless(`${message} Context: ${String(error)}.`)\n    }\n    if (stderr) {\n        logTagless(`[STDERR] ${stderr}`)\n    }\n}\n\nfunction logCompiler(message: string) {\n    COMPILER_PANEL.append(message)\n    CACHED_COMPILER.push(message)\n}\n\nfunction initStatusBarItem() {\n    STATUS_ITEM.command = 'latex-workshop.actions'\n    STATUS_ITEM.show()\n    refreshStatus('check', 'statusBar.foreground')\n}\n\nfunction clearCompilerMessage() {\n    COMPILER_PANEL.clear()\n    CACHED_COMPILER.length = 0\n}\n\nfunction showLog() {\n    LOG_PANEL.show()\n}\n\nfunction showCompilerLog() {\n    COMPILER_PANEL.show()\n}\n\nfunction showStatus() {\n    STATUS_ITEM.show()\n}\n\nfunction refreshStatus(\n    icon: string,\n    color: string,\n    message: string | undefined = undefined,\n    severity: 'info' | 'warning' | 'error' = 'info',\n    build: string = ''\n) {\n    STATUS_ITEM.text = `$(${icon})${build}`\n    STATUS_ITEM.tooltip = message\n    STATUS_ITEM.color = new vscode.ThemeColor(color)\n    if (message === undefined) {\n        return\n    }\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    switch (severity) {\n        case 'info':\n            if (configuration.get('message.information.show')) {\n                void vscode.window.showInformationMessage(message)\n            }\n            break\n        case 'warning':\n            if (configuration.get('message.warning.show')) {\n                void vscode.window.showWarningMessage(message)\n            }\n            break\n        case 'error':\n        default:\n            if (configuration.get('message.error.show')) {\n                void vscode.window.showErrorMessage(message)\n            }\n            break\n    }\n}\n\nfunction showErrorMessage(message: string, ...args: string[]): Thenable<string | undefined> | undefined {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    if (configuration.get('message.error.show')) {\n        return vscode.window.showErrorMessage(message, ...args)\n    }\n    return\n}\n\nfunction showErrorMessageWithCompilerLogButton(message: string) {\n    const res = showErrorMessage(message, 'Open compiler log')\n    if (res) {\n        return res.then(option => {\n            switch (option) {\n                case 'Open compiler log': {\n                    showCompilerLog()\n                    break\n                }\n                default: {\n                    break\n                }\n            }\n        })\n    }\n    return\n}\n\nfunction showErrorMessageWithExtensionLogButton(message: string) {\n    const res = showErrorMessage(message, 'Open LaTeX Workshop log')\n    if (res) {\n        return res.then(option => {\n            switch (option) {\n                case 'Open LaTeX Workshop log': {\n                    showLog()\n                    break\n                }\n                default: {\n                    break\n                }\n            }\n        })\n    }\n    return\n}\n\n\ntype Configs = {\n    [config: string]: {\n        default: any,\n        deprecationMessage?: string\n    }\n}\n\ntype PackageJSON = {\n    contributes: {\n        configuration: {\n            properties: Configs\n        }\n    }\n}\n\nconst relatedConf = [\n    'editor.acceptSuggestionOnEnter',\n]\n\nlet defaultConfig: Configs | undefined = undefined\nfunction getDefaultConfig() {\n    if (defaultConfig === undefined) {\n        defaultConfig = (JSON.parse(fs.readFileSync(path.resolve(lw.extensionRoot, 'package.json')).toString()) as PackageJSON).contributes.configuration.properties\n    }\n    return defaultConfig\n}\n\nfunction logConfig() {\n    const logConfigs = [...Object.keys(getDefaultConfig()), ...relatedConf]\n    const workspaceFolders = vscode.workspace.workspaceFolders || [undefined]\n    for (const workspace of workspaceFolders) {\n        const configuration = vscode.workspace.getConfiguration(undefined, workspace)\n        logConfigs.forEach(config => {\n            const defaultValue = configuration.inspect(config)?.defaultValue\n            const configValue = configuration.get(config)\n            if (JSON.stringify(defaultValue) !== JSON.stringify(configValue)) {\n                logTagless(`[Config] ${config}: ${JSON.stringify(configValue)} .`)\n            }\n        })\n    }\n}\n\nfunction logDeprecatedConfig() {\n    const deprecatedConfigs = Object.entries(getDefaultConfig())\n        .filter(([_, value]) => value.deprecationMessage)\n        .map(([config, _]) => config.split('.').slice(1).join('.'))\n    const workspaceFolders = vscode.workspace.workspaceFolders || [undefined]\n    for (const workspace of workspaceFolders) {\n        const configuration = vscode.workspace.getConfiguration(undefined, workspace)\n        deprecatedConfigs.forEach(config => {\n            const defaultValue = configuration.inspect(config)?.defaultValue\n            const configValue = configuration.get(config)\n            if (JSON.stringify(defaultValue) !== JSON.stringify(configValue)) {\n                logTagless(`[Config] Deprecated config ${config} with default value ${JSON.stringify(defaultValue)} is set to ${JSON.stringify(configValue)} at ${workspace?.uri.toString(true)} .`)\n                void vscode.window.showWarningMessage(`Config \"${config}\" is deprecated. ${getDefaultConfig()[config].deprecationMessage}`)\n            }\n        })\n    }\n}\n\nfunction logConfigChange(ev: vscode.ConfigurationChangeEvent) {\n    const logConfigs = [...Object.keys(getDefaultConfig()), ...relatedConf]\n    const workspaceFolders = vscode.workspace.workspaceFolders || [undefined]\n    for (const workspace of workspaceFolders) {\n        logConfigs.forEach(config => {\n            if (ev.affectsConfiguration(config, workspace)) {\n                const configuration = vscode.workspace.getConfiguration(undefined, workspace)\n                const value = configuration.get(config)\n                logTagless(`[Config] Configuration changed to { ${config}: ${JSON.stringify(value)} } at ${workspace?.uri.toString(true)} .`)\n            }\n        })\n    }\n}\n"
  },
  {
    "path": "src/utils/parser.ts",
    "content": "import type * as Ast from '@unified-latex/unified-latex-types'\n\nfunction macroToStr(macro: Ast.Macro): string {\n    if (macro.content === 'texorpdfstring') {\n        return (macro.args?.[1].content[0] as Ast.String | undefined)?.content || ''\n    }\n    return `\\\\${macro.content}` + (macro.args?.map(arg => `${arg.openMark}${argContentToStr(arg.content)}${arg.closeMark}`).join('') ?? '')\n}\n\nfunction envToStr(env: Ast.Environment | Ast.VerbatimEnvironment): string {\n    return `\\\\environment{${env.env}}`\n}\n\nexport function argContentToStr(argContent: Ast.Node[], preserveCurlyBrace: boolean = false): string {\n    return argContent.map(node => {\n        // Verb\n        switch (node.type) {\n            case 'string':\n                return node.content\n            case 'whitespace':\n            case 'parbreak':\n            case 'comment':\n                return ' '\n            case 'macro':\n                return macroToStr(node)\n            case 'environment':\n            case 'verbatim':\n            case 'mathenv':\n                return envToStr(node)\n            case 'inlinemath':\n                return `$${argContentToStr(node.content)}$`\n            case 'displaymath':\n                return `\\\\[${argContentToStr(node.content)}\\\\]`\n            case 'group':\n                return preserveCurlyBrace ? `{${argContentToStr(node.content)}}` : argContentToStr(node.content)\n            case 'verb':\n                return node.content\n            default:\n                return ''\n        }\n    }).join('')\n}\n"
  },
  {
    "path": "src/utils/pathnormalize.ts",
    "content": "import * as fs from 'fs'\nimport * as os from 'os'\nimport * as path from 'path'\n\nfunction normalize(filePath: string) {\n    let normPath = path.normalize(filePath)\n    if (os.platform() === 'win32') {\n        // Normalize drive letters on Windows.\n        normPath = normPath.replace(/^([a-zA-Z]):/, (_m, p1: string) => p1.toLowerCase() + ':')\n    }\n    return normPath\n}\n\nexport function isSameRealPath(filePathA: string, filePathB: string): boolean {\n    const a = normalize(fs.realpathSync(path.normalize(filePathA)))\n    const b = normalize(fs.realpathSync(path.normalize(filePathB)))\n    return a === b\n}\n"
  },
  {
    "path": "src/utils/quick-pick.ts",
    "content": "import * as vscode from 'vscode'\nimport { lw } from '../lw'\n\nexport async function pickRootPath(rootPath: string, subRootPath: string, verb: string): Promise<string | undefined> {\n    const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootPath))\n    const doNotPrompt = configuration.get('latex.rootFile.doNotPrompt') as boolean\n    if (doNotPrompt) {\n        if (configuration.get('latex.rootFile.useSubFile')) {\n            return subRootPath\n        } else {\n            return rootPath\n        }\n    }\n    const pickedRootFile = await vscode.window.showQuickPick([{\n        label: 'Default root file',\n        description: `Path: ${rootPath}`\n    }, {\n        label: 'Subfiles package root file',\n        description: `Path: ${subRootPath}`\n    }], {\n        placeHolder: `Subfiles package detected. Which file to ${verb}?`,\n        matchOnDescription: true\n    }).then( selected => {\n        if (!selected) {\n            return\n        }\n        switch (selected.label) {\n            case 'Default root file':\n                return rootPath\n            case 'Subfiles package root file':\n                return subRootPath\n            default:\n                return\n        }\n    })\n    return pickedRootFile\n}\n"
  },
  {
    "path": "src/utils/tokenizer.ts",
    "content": "import * as vscode from 'vscode'\nimport * as utils from './utils'\n\n/**\n * If the string at `position` is a latex command, e.g., `\\macro`, `\\macro{` or `\\macro[`,\n * return the range of the command string (`\\macro`).\n *\n * @param document The document to be scanned.\n * @param position The position to be scanned at.\n */\nfunction macroTokenizer(document: vscode.TextDocument, position: vscode.Position): vscode.Range | undefined {\n    let startRegex: RegExp\n    if (document.languageId === 'latex-expl3') {\n        startRegex = /\\\\(?=[^\\\\{},[\\]]*$)/\n    } else {\n        startRegex = /\\\\(?=[a-zA-Z]*$)/\n    }\n    const startResult = document.getText(new vscode.Range(new vscode.Position(position.line, 0), position)).match(startRegex)\n    if (startResult === null || startResult.index === undefined || startResult.index < 0) {\n        return\n    }\n    const firstBracket = document.getText(new vscode.Range(position, new vscode.Position(position.line, 65535))).match(/[[{]/)\n    if (firstBracket && firstBracket.index !== undefined && firstBracket.index > 0) {\n        return new vscode.Range(\n                new vscode.Position(position.line, startResult.index),\n                new vscode.Position(position.line, position.character + firstBracket.index)\n            )\n    }\n    const wordRange = document.getWordRangeAtPosition(position)\n    if (wordRange) {\n        return wordRange.with(new vscode.Position(position.line, startResult.index))\n    }\n    return\n}\n\n/**\n * If the string at `position` is surround by `{...}` or `[...]`,\n * return the range for the argument at `position` inside the brackets.\n *\n * @param document The document to be scanned.\n * @param position The position to be scanned at.\n */\nfunction argTokenizer(document: vscode.TextDocument, position: vscode.Position): vscode.Range | undefined {\n    const startResult = document.getText(new vscode.Range(new vscode.Position(position.line, 0), position)).match(/[{,[](?=[^{},[\\]]*$)/)\n    if (startResult === null || startResult.index === undefined || startResult.index < 0) {\n        return\n    }\n    const endResult = document.getText(new vscode.Range(position, new vscode.Position(position.line, 65535))).match(/[}\\],]/)\n    if (endResult === null || endResult.index === undefined || endResult.index < 0) {\n        return\n    }\n    return new vscode.Range(\n        new vscode.Position(position.line, startResult.index + 1),\n        new vscode.Position(position.line, position.character + endResult.index)\n    )\n}\n\n\n/**\n * If the string at `position` is like `\\macro{` or `\\macro[`, then\n * returns the range for `\\macro`. If it is like `{...}` or `[...]`, then\n * returns the range the argument inside brackets.\n *\n * @param document The document to be scanned.\n * @param position The position to be scanned at.\n */\nexport function tokenizer(document: vscode.TextDocument, position: vscode.Position): vscode.Range | undefined {\n    // \\macro case\n    const macroToken = macroTokenizer(document, position)\n    if (macroToken) {\n        return macroToken\n    }\n\n    // Inside {...} or [...]\n    const argToken = argTokenizer(document, position)\n    if (argToken) {\n        return argToken\n    }\n    return\n}\n\n/**\n * Return `true` if the `position` of the `document` is on a macro `\\usepackage{...}` including\n * `token`\n * @param document The document to be scanned.\n * @param position The position to be scanned at.\n * @param token The name of package.\n */\nexport function onAPackage(document: vscode.TextDocument, position: vscode.Position, token: string): boolean {\n    const line = document.lineAt(position.line).text\n    // First, test if the cursor is on a list of words.\n    if (!token.match(/^[\\w,\\s]*$/)) {\n        return false\n    }\n    const escapedToken = utils.escapeRegExp(token)\n    const regex = new RegExp(`\\\\\\\\(?:usepackage|RequirePackage)(?:\\\\[[^\\\\[\\\\]\\\\{\\\\}]*\\\\])?\\\\{[\\\\w,\\\\s]*${escapedToken}[\\\\w,\\\\s]*\\\\}`)\n    if (line.match(regex)) {\n        return true\n    }\n    return false\n}\n"
  },
  {
    "path": "src/utils/utils.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport { glob } from 'glob'\nimport { lw } from '../lw'\n\nexport function sleep(ms: number) {\n    return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport function escapeHtml(s: string): string {\n    return s.replace(/&/g, '&amp;')\n            .replace(/\"/g, '&quot;')\n            .replace(/</g, '&lt;')\n            .replace(/>/g, '&gt;')\n}\n\nexport function escapeRegExp(str: string) {\n    return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&')\n}\n\n/**\n * Strip text and comments from LaTeX, leaving only macros and environments.\n *\n * @param raw The raw LaTeX content as a string\n * @returns The stripped LaTeX macro barebone\n */\nexport function stripText(raw: string): string {\n    const text = stripComments(raw)\n    // We first create an array of empty strings, each of which corresponds to\n    // one line in the original document.\n    const result = Array(text.split('\\n').length).fill('')\n    // The following regex defines a LaTeX macro.\n    // We also consider a special case of verbatim \"label={something}\"\n    const macroReg = /(\\\\(?:[^a-zA-Z@]|[a-zA-Z@]+[*=']?)\\s*)|(label={[^{}]+})/gm\n    let match\n    while ((match = macroReg.exec(text)) !== null) {\n        // Stores the complete macro, including arguments.\n        let matchedText = match[0]\n        // match[1]: macro, null on \"label={something}\"\n        // There is an (optional) argument after the macro. They can be many.\n        while (['{', '['].includes(text[macroReg.lastIndex])) {\n            const isCurly = text[macroReg.lastIndex] === '{'\n            const balanceStr = getLongestBalancedString(text.substring(macroReg.lastIndex), isCurly ? undefined : 'square')\n            if (balanceStr === undefined) { // \\in[1, 2]\n                break\n            }\n            matchedText += isCurly ? `{${balanceStr}}` : `[${balanceStr}]`\n            macroReg.lastIndex += balanceStr.length + 2\n            // It's possible to have spaces between arguments. If so, skip them.\n            while (text[macroReg.lastIndex] === ' ' || text[macroReg.lastIndex] === '\\t') {\n                macroReg.lastIndex++\n            }\n        }\n        const line = text.substring(0, match.index).split('\\n').length - 1\n        // Append each line in the macro to the array.\n        matchedText.split('\\n').forEach((content, index) => result[line+index] += content)\n    }\n    return result.join('\\n')\n}\n\n/**\n * Remove comments\n *\n * @param text A string in which comments get removed.\n * @return the input text with comments removed.\n * Note the number lines of the output matches the input\n */\nexport function stripComments(text: string): string {\n    const reg = /(^|[^\\\\]|(?:(?<!\\\\)(?:\\\\\\\\)+))%(?![2-9A-F][0-9A-F]).*$/gm\n    return text.replace(reg, '$1')\n}\n\n/**\n * Remove some verbatim-like environments.\n * Note the number of lines of the output matches the input.\n * Verbatim content is replaced by empty lines.\n *\n * @param text A string representing the content of a TeX file\n * @param envs An array of environments to be removed\n */\nexport function stripEnvironments(text: string, envs: string[]): string {\n    if (envs.length === 0) {\n        return text\n    }\n\n    // Build alternation of environment names, each with optional star\n    const envPatterns = envs.map(env => `${env}\\\\*?`).join('|')\n    const pattern = `\\\\\\\\begin{(${envPatterns})}.*?\\\\\\\\end{\\\\1}`\n    const reg = new RegExp(pattern, 'gmsi')\n\n    return text.replace(reg, (match, ..._args) => {\n        const len = Math.max(match.split('\\n').length, 1)\n        return '\\n'.repeat(len - 1)\n    })\n}\n\n/**\n * Remove comments and verbatim content.\n * Note that the positions are preserved between the input and the output:\n *  - verbatim environments are replaced by as many empty lines\n *  - inline verbatim content is replaced by as many white spaces\n *\n * @param text A multiline string to be stripped\n * @return the input text with comments and verbatim content removed.\n */\nexport function stripCommentsAndVerbatim(text: string): string {\n    let content = stripComments(text)\n    content = content.replace(/\\\\verb\\*?([^a-zA-Z0-9]).*?\\1/g, m => ' '.repeat(m.length))\n    const configuration = vscode.workspace.getConfiguration('latex-workshop')\n    const verbatimEnvs = configuration.get('latex.verbatimEnvs') as string[]\n    return stripEnvironments(content, verbatimEnvs)\n}\n\n/**\n * Trim leading and ending spaces on every line\n * See https://blog.stevenlevithan.com/archives/faster-trim-javascript for\n * possible ways of implementing trimming\n *\n * @param text a multiline string\n */\nexport function trimMultiLineString(text: string): string {\n    return text.replace(/^\\s\\s*/gm, '').replace(/\\s\\s*$/gm, '')\n}\n\n/**\n * Find the longest substring containing balanced curly braces {...}\n * The string `s` can either start on the opening `{` or at the next character\n *\n * @param s A string to be searched.\n */\nexport function getLongestBalancedString(s: string, bracket: 'curly' | 'square'='curly'): string | undefined {\n    const bracketStack: ('{' | '[' | '(')[] = []\n\n    const opener = bracket === 'curly' ? '{' : '['\n    if (s[0] !== opener) {\n        bracketStack.push(opener)\n    }\n\n    for (let i = 0; i < s.length; ++i) {\n        const char = s[i]\n        if (char === '{' || char === '[' || char === '(') {\n            bracketStack.push(char)\n        } else if (char === '}') {\n            const openPos = bracketStack.lastIndexOf('{')\n            if (openPos > -1) {\n                bracketStack.splice(openPos, 1)\n            }\n        } else if (char === ']') {\n            const openPos = bracketStack.lastIndexOf('[')\n            if (openPos > -1) {\n                bracketStack.splice(openPos, 1)\n            }\n        } else if (char === ')') {\n            const lastBracket = bracketStack[bracketStack.length - 1]\n            if (lastBracket === '(' || lastBracket === '[') {\n                bracketStack.pop()\n            }\n        }\n\n        if (bracketStack.lastIndexOf(opener) < 0) {\n            return s.substring(s[0] === opener ? 1 : 0, i)\n        }\n    }\n    return undefined\n}\n\n/**\n * If the current position is inside macro{...}, return the range of macro{...} and its argument. Otherwise return undefined\n *\n * @param macro the macro name, with or without the leading '\\\\'\n * @param position the current position in the document\n * @param document a TextDocument\n */\nexport function getSurroundingMacroRange(macro: string, position: vscode.Position, document: vscode.TextDocument): {range: vscode.Range, arg: string} | undefined {\n    if (!macro.startsWith('\\\\')) {\n        macro = '\\\\' + macro\n    }\n    const line = document.lineAt(position.line).text\n    const regex = new RegExp('\\\\' + macro + '{', 'g')\n    while (true) {\n        const match = regex.exec(line)\n        if (!match) {\n            break\n        }\n        const matchPos = match.index\n        const openingBracePos = matchPos + macro.length + 1\n        const arg = getLongestBalancedString(line.slice(openingBracePos))\n        if (arg !== undefined && position.character >= openingBracePos && position.character <= openingBracePos + arg.length + 1) {\n            const start = new vscode.Position(position.line, matchPos)\n            const end = new vscode.Position(position.line, openingBracePos + arg.length + 1)\n            return {range: new vscode.Range(start, end), arg}\n        }\n    }\n    return\n}\n\n\n// export type MacroArgument = {\n//     arg: string, // The argument we are looking for\n//     index: number // the starting position of the argument\n// }\n\n/**\n * @param text a string starting with a macro call\n * @param nth the index of the argument to return\n */\n// export function getNthArgument(text: string, nth: number): MacroArgument | undefined {\n//     let arg: string = ''\n//     let index: number = 0 // start of the nth argument\n//     let offset: number = 0 // current offset of the new text to consider\n//     for (let i=0; i<nth; i++) {\n//         text = text.slice(offset)\n//         index += offset\n//         const start = text.indexOf('{')\n//         if (start === -1) {\n//             return\n//         }\n//         text = text.slice(start)\n//         index += start\n//         arg = getLongestBalancedString(text)\n//         offset = arg.length + 2 // 2 counts '{' and '}'\n//     }\n//     return {arg, index}\n// }\n\n/**\n * Resolve a relative file path to an absolute path using the prefixes `dirs`.\n *\n * @param dirs An array of the paths of directories. They are used as prefixes for `inputFile`.\n * @param inputFile The path of a input file to be resolved.\n * @param suffix The suffix of the input file\n * @return an absolute path or undefined if the file does not exist\n */\nexport async function resolveFile(dirs: string[], inputFile: string, suffix: string = '.tex'): Promise<string | undefined> {\n    if (inputFile.startsWith('/')) {\n        dirs.unshift('')\n    }\n    for (const d of dirs) {\n        let inputFilePath = path.resolve(d, inputFile)\n        if (path.extname(inputFilePath) === '') {\n            inputFilePath += suffix\n        }\n        if (!await lw.file.exists(inputFilePath) && await lw.file.exists(inputFilePath + suffix)) {\n            inputFilePath += suffix\n        }\n        if (await lw.file.exists(inputFilePath)) {\n            return inputFilePath\n        }\n    }\n    return\n}\n\nexport function resolveFileGlob(dirs: string[], inputGlob: string, suffix: string = '.tex'): string[] {\n    if (inputGlob.startsWith('/')) {\n        dirs.unshift('')\n    }\n    for (const d of dirs) {\n        let inputFileGlob = path.resolve(d, inputGlob)\n        if (path.extname(inputFileGlob) === '') {\n            inputFileGlob += suffix\n        }\n        const paths = glob.sync(inputFileGlob.replaceAll(path.sep, '/'))\n        if (paths.length > 0) {\n            return paths\n        }\n    }\n    return []\n}\n\n/**\n * Return a function replacing placeholders of LaTeX recipes.\n *\n * @param rootFile The path of the root file.\n * @param tmpDir The path of a temporary directory.\n * @returns A function replacing placeholders.\n */\nexport function replaceArgumentPlaceholders(rootFile: string, tmpDir: string): (arg: string) => string {\n    return (arg: string) => {\n        const configuration = vscode.workspace.getConfiguration('latex-workshop', lw.file.toUri(rootFile))\n        const docker = configuration.get('docker.enabled')\n\n        const workspaceFolder = vscode.workspace.workspaceFolders?.[0]\n        const workspaceDir = workspaceFolder?.uri.fsPath.split(path.sep).join('/') || ''\n        const rootFileParsed = path.parse(rootFile)\n        const docfile = rootFileParsed.name\n        const docfileExt = rootFileParsed.base\n        const dirW32 = path.normalize(rootFileParsed.dir)\n        const dir = dirW32.split(path.sep).join('/')\n        const docW32 = path.join(dirW32, docfile)\n        const doc = docW32.split(path.sep).join('/')\n        const docExtW32 = path.join(dirW32, docfileExt)\n        const docExt = docExtW32.split(path.sep).join('/')\n        const relativeDir = path.relative(workspaceDir, dir).split(path.sep).join('/')\n        const relativeDoc = path.relative(workspaceDir, doc).split(path.sep).join('/')\n\n        const expandPlaceHolders = (a: string): string => {\n            return a.replace(/%DOC%/g, docker ? docfile : doc)\n                    .replace(/%DOC_W32%/g, docker ? docfile : docW32)\n                    .replace(/%DOC_EXT%/g, docker ? docfileExt : docExt)\n                    .replace(/%DOC_EXT_W32%/g, docker ? docfileExt : docExtW32)\n                    .replace(/%DOCFILE_EXT%/g, docfileExt)\n                    .replace(/%DOCFILE%/g, docfile)\n                    .replace(/%DIR%/g, docker ? './' : dir)\n                    .replace(/%DIR_W32%/g, docker ? './' : dirW32)\n                    .replace(/%TMPDIR%/g, tmpDir)\n                    .replace(/%WORKSPACE_FOLDER%/g, docker ? './' : workspaceDir)\n                    .replace(/%RELATIVE_DIR%/, docker ? './' : relativeDir)\n                    .replace(/%RELATIVE_DOC%/, docker ? docfile : relativeDoc)\n\n        }\n        const outDirW32 = path.normalize(expandPlaceHolders(configuration.get('latex.outDir') as string))\n        const outDir = outDirW32.split(path.sep).join('/')\n        const auxDir = path.normalize(expandPlaceHolders(configuration.get('latex.auxDir') as string)).split(path.sep).join('/')\n        // Replace %AUXDIR% first as its defaut value is %OUTDIR%\n        return expandPlaceHolders(arg).replace(/%AUXDIR%/g, auxDir).replace(/%OUTDIR%/g, outDir).replace(/%OUTDIR_W32%/g, outDirW32)\n    }\n}\n"
  },
  {
    "path": "src/utils/webview.ts",
    "content": "import * as vscode from 'vscode'\n\nfunction getMoveCommands(tabEditorGroup: string) {\n    if (tabEditorGroup === 'left') {\n        return {\n            moveAction: 'workbench.action.moveEditorToLeftGroup',\n            focusAction: 'workbench.action.focusRightGroup'\n        }\n    }\n    if (tabEditorGroup === 'right') {\n        return {\n            moveAction: 'workbench.action.moveEditorToRightGroup',\n            focusAction: 'workbench.action.focusLeftGroup'\n        }\n    }\n    if (tabEditorGroup === 'above') {\n        return {\n            moveAction: 'workbench.action.moveEditorToAboveGroup',\n            focusAction: 'workbench.action.focusBelowGroup'\n        }\n    }\n    if (tabEditorGroup === 'below') {\n        return {\n            moveAction: 'workbench.action.moveEditorToBelowGroup',\n            focusAction: 'workbench.action.focusAboveGroup'\n        }\n    }\n    return\n}\n\nexport async function moveWebviewPanel(panel: vscode.WebviewPanel, tabEditorGroup: string) {\n    panel.reveal(undefined, false)\n    await moveActiveEditor(tabEditorGroup, true)\n}\n\nexport async function moveActiveEditor(tabEditorGroup: string, preserveFocus: boolean) {\n    const actions = getMoveCommands(tabEditorGroup)\n    if (!actions) {\n        return\n    }\n    await vscode.commands.executeCommand(actions.moveAction)\n    if (preserveFocus){\n        await vscode.commands.executeCommand(actions.focusAction)\n    }\n}\n"
  },
  {
    "path": "syntax/BibTeX-style.tmLanguage.json",
    "content": "{\n    \"name\": \"BibTeX Style\",\n    \"patterns\": [\n        {\n            \"include\": \"#comments\"\n        },\n        {\n            \"include\": \"#function-declaration\"\n        },\n        {\n            \"include\": \"#command-keywords\"\n        },\n        {\n            \"include\": \"#operators\"\n        },\n        {\n            \"include\": \"#builtin-objects\"\n        },\n        {\n            \"include\": \"#string\"\n        },\n        {\n            \"include\": \"#number\"\n        }\n    ],\n    \"repository\": {\n        \"builtin-objects\": {\n            \"patterns\": [\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(if\\\\$|while\\\\$)(?!(\\\\w|\\\\.))\",\n                    \"name\": \"keyword.control.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(add\\\\.period\\\\$|call\\\\.type\\\\$|change\\\\.case\\\\$|chr\\\\.to\\\\.int\\\\$|cite\\\\$|duplicate\\\\$|empty\\\\$|format\\\\.name\\\\$|int\\\\.to\\\\.chr\\\\$|int\\\\.to\\\\.chr\\\\$|int\\\\.to\\\\.str\\\\$|missing\\\\$|newline\\\\$|num\\\\.names\\\\$|pop\\\\$|preamble\\\\$|purify\\\\$|quote\\\\$|skip\\\\$|stack\\\\$|substring\\\\$|swap\\\\$|text\\\\.length\\\\$|text\\\\.prefix\\\\$|top\\\\$|type\\\\$|warning\\\\$|width\\\\$|write\\\\$)(?!(\\\\w|\\\\.))\",\n                    \"name\": \"support.function.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(entry\\\\.max\\\\$|global\\\\.max\\\\$)(?!(\\\\w|\\\\.))\",\n                    \"name\": \"support.constant.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)sort\\\\.key\\\\$(?!(\\\\w|\\\\.))\",\n                    \"name\": \"support.variable.bst\"\n                }\n            ]\n        },\n        \"command-keywords\": {\n            \"patterns\": [\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)INTEGERS\\\\b(?!\\\\.)\",\n                    \"name\": \"storage.type.int.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(ENTRY|MACRO|STRINGS)\\\\b(?!\\\\.)\",\n                    \"name\": \"storage.type.var.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(READ|EXECUTE|ITERATE|REVERSE|SORT)\\\\b(?!\\\\.)\",\n                    \"name\": \"support.function.bst\"\n                }\n            ]\n        },\n        \"comments\": {\n            \"begin\": \"%\",\n            \"end\": \"$\",\n            \"name\": \"comment.line.percentage.bst\"\n        },\n        \"function-declaration\": {\n            \"begin\": \"\\\\b(FUNCTION)\\\\s*\\\\{\\\\s*([[:alpha:]_.\\\\$]*\\\\$?)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"storage.type.function.bst\"\n                },\n                \"2\": {\n                    \"name\": \"entity.name.function.bst\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"name\": \"meta.function.bst\"\n        },\n        \"number\": {\n            \"match\": \"#-?\\\\d+\\\\b\",\n            \"name\": \"constant.numeric.bst\"\n        },\n        \"operators\": {\n            \"patterns\": [\n                {\n                    \"match\": \"<|>\",\n                    \"name\": \"keyword.operator.relational.bst\"\n                },\n                {\n                    \"match\": \"\\\\=\",\n                    \"name\": \"keyword.operator.comparison.bst\"\n                },\n                {\n                    \"match\": \"\\\\+|-|\\\\*\",\n                    \"name\": \"keyword.operator.arithmetic.bst\"\n                },\n                {\n                    \"match\": \":\\\\=\",\n                    \"name\": \"keyword.operator.assignment.bst\"\n                },\n                {\n                    \"match\": \"\\\\b(?<!\\\\.)(and|or|not)(?!(\\\\w|\\\\.))\",\n                    \"name\": \"keyword.operator.logic.bst\"\n                }\n            ]\n        },\n        \"string\": {\n            \"begin\": \"\\\"\",\n            \"end\": \"\\\"\",\n            \"name\": \"string.quoted.double.bst\"\n        }\n    },\n    \"scopeName\": \"source.bst\"\n}"
  },
  {
    "path": "syntax/Bibtex.tmLanguage.json",
    "content": "{\n    \"comment\": \"Grammar based on description from https://github.com/aclements/biblib\",\n    \"name\": \"BibTeX\",\n    \"patterns\": [\n        {\n            \"match\": \"@(?i:comment)(?=[\\\\s{(])\",\n            \"captures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.comment.bibtex\"\n                }\n            },\n            \"name\": \"comment.block.at-sign.bibtex\"\n        },\n        {\n            \"include\": \"#preamble\"\n        },\n        {\n            \"include\": \"#string\"\n        },\n        {\n            \"include\": \"#entry\"\n        },\n        {\n            \"begin\": \"[^@\\\\n]\",\n            \"end\": \"(?=@)\",\n            \"name\": \"comment.block.bibtex\"\n        }\n    ],\n    \"repository\": {\n        \"preamble\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((@)(?i:preamble))\\\\s*(\\\\{)\\\\s*\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.preamble.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.preamble.begin.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.preamble.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.preamble.braces.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#field_value\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((@)(?i:preamble))\\\\s*(\\\\()\\\\s*\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.preamble.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.preamble.begin.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\)\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.preamble.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.preamble.parenthesis.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#field_value\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"string\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((@)(?i:string))\\\\s*(\\\\{)\\\\s*([a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.string-constant.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.string-constant.begin.bibtex\"\n                        },\n                        \"4\": {\n                            \"name\": \"variable.other.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.string-constant.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.string-constant.braces.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#field_value\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((@)(?i:string))\\\\s*(\\\\()\\\\s*([a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.string-constant.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.string-constant.begin.bibtex\"\n                        },\n                        \"4\": {\n                            \"name\": \"variable.other.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\)\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.string-constant.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.string-constant.parenthesis.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#field_value\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"entry\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((@)[a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\\\\s*(\\\\{)\\\\s*([^\\\\s,}]*)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.entry-type.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.entry.begin.bibtex\"\n                        },\n                        \"4\": {\n                            \"name\": \"entity.name.type.entry-key.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.entry.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.entry.braces.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"([a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\\\\s*(\\\\=)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"support.function.key.bibtex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"punctuation.separator.key-value.bibtex\"\n                                }\n                            },\n                            \"end\": \"(?=[,}])\",\n                            \"name\": \"meta.key-assignment.bibtex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#field_value\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((@)[a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\\\\s*(\\\\()\\\\s*([^\\\\s,]*)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.other.entry-type.bibtex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.bibtex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.entry.begin.bibtex\"\n                        },\n                        \"4\": {\n                            \"name\": \"entity.name.type.entry-key.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\)\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.section.entry.end.bibtex\"\n                        }\n                    },\n                    \"name\": \"meta.entry.parenthesis.bibtex\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"([a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*)\\\\s*(\\\\=)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"support.function.key.bibtex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"punctuation.separator.key-value.bibtex\"\n                                }\n                            },\n                            \"end\": \"(?=[,)])\",\n                            \"name\": \"meta.key-assignment.bibtex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#field_value\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        \"field_value\": {\n            \"patterns\": [\n                {\n                    \"include\": \"#string_content\"\n                },\n                {\n                    \"include\": \"#integer\"\n                },\n                {\n                    \"include\": \"#string_var\"\n                },\n                {\n                    \"match\": \"#\",\n                    \"name\": \"keyword.operator.bibtex\"\n                }\n            ]\n        },\n        \"integer\": {\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"constant.numeric.bibtex\"\n                }\n            },\n            \"match\": \"\\\\s*(\\\\d+)\\\\s*\"\n        },\n        \"nested_braces\": {\n            \"begin\": \"\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.group.begin.bibtex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.group.end.bibtex\"\n                }\n            },\n            \"patterns\": [\n                {\n                    \"include\": \"#nested_braces\"\n                }\n            ]\n        },\n        \"string_content\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\{\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.bibtex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#nested_braces\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\"\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.bibtex\"\n                        }\n                    },\n                    \"end\": \"\\\"\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.bibtex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#nested_braces\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"string_var\": {\n            \"captures\": {\n                \"0\": {\n                    \"name\": \"support.variable.bibtex\"\n                }\n            },\n            \"match\": \"[a-zA-Z!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\\\-./:;<>?@\\\\[\\\\\\\\\\\\]^_`|~]*\"\n        }\n    },\n    \"scopeName\": \"text.bibtex\"\n}"
  },
  {
    "path": "syntax/DocTeX.tmLanguage.json",
    "content": "{\n    \"name\": \"DocTeX\",\n    \"patterns\": [\n        {\n            \"include\": \"#verb\"\n        },\n        {\n            \"include\": \"#macrocode\"\n        },\n        {\n            \"include\": \"#guards\"\n        },\n        {\n            \"include\": \"#comments\"\n        },\n        {\n            \"include\": \"#latexSource\"\n        }\n    ],\n    \"repository\": {\n        \"guards\": {\n            \"match\": \"^%(\\\\<[^\\\\>]*\\\\>)\",\n            \"name\": \"entity.name.function.filename.latex\"\n        },\n        \"verb\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(?!\\\\\\\\)(\\\\|)([^\\\\|]*)(\\\\|)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"(?!\\\\\\\\)(\\\")([^\\\"]*)(\\\")\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                }\n            ]\n        },\n        \"macrocode\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"^(%)    (\\\\\\\\begin\\\\{macrocode\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"comment.line.percentage.doctex\"\n                        },\n                        \"2\": {\n                            \"name\": \"entity.name.tag.macrocode.doctex\"\n                        }\n                    },\n                    \"end\": \"^(%)    (\\\\\\\\end\\\\{macrocode\\\\})\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#guards\"\n                        },\n                        {\n                            \"include\": \"text.tex.latex\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"comments\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(^[ \\\\t]*)%?%\",\n                    \"name\": \"comment.line.percentage.doctex\"\n                },\n                {\n                    \"match\": \"\\\\^\\\\^A.*$\\\\n?\",\n                    \"name\": \"comment.line.percentage.tex\"\n                },\n                {\n                    \"match\": \"(?<=[^%\\\\\\\\])%\",\n                    \"name\": \"invalid\"\n                }\n            ]\n        },\n        \"latexSource\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(?<=\\\\\\\\[\\\\w@]|\\\\\\\\[\\\\w@]{2}|\\\\\\\\[\\\\w@]{3}|\\\\\\\\[\\\\w@]{4}|\\\\\\\\[\\\\w@]{5}|\\\\\\\\[\\\\w@]{6})\\\\s\",\n                    \"comment\": \"This scope identifies partially typed commands such as `\\\\tab`. We use this to trigger “Command Completion” only when it makes sense.\",\n                    \"name\": \"meta.space-after-command.latex\"\n                },\n                {\n                    \"include\": \"#songs-env\"\n                },\n                {\n                    \"include\": \"#embedded-code-env\"\n                },\n                {\n                    \"include\": \"#verbatim-env\"\n                },\n                {\n                    \"include\": \"#document-env\"\n                },\n                {\n                    \"include\": \"#all-balanced-env\"\n                },\n                {\n                    \"include\": \"#documentclass-usepackage-macro\"\n                },\n                {\n                    \"include\": \"#input-macro\"\n                },\n                {\n                    \"include\": \"#sections-macro\"\n                },\n                {\n                    \"include\": \"#hyperref-macro\"\n                },\n                {\n                    \"include\": \"#newcommand-macro\"\n                },\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#verb-macro\"\n                },\n                {\n                    \"include\": \"#inline-code-macro\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"#display-math\"\n                },\n                {\n                    \"include\": \"#inline-math\"\n                },\n                {\n                    \"include\": \"#column-specials\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                }\n            ]\n        },\n        \"documentclass-usepackage-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:usepackage|documentclass))\\\\b(?=\\\\[|\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.preamble.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                }\n            },\n            \"end\": \"(?<=\\\\})\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.preamble.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#multiline-optional-arg\"\n                },\n                {\n                    \"begin\": \"((?:\\\\G|(?<=\\\\]))\\\\{)\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"support.class.latex\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"document-env\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\begin\\\\{document\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"comment\": \"These two patterns match the \\\\begin{document} and \\\\end{document} commands, so that the environment matching pattern following them will ignore those commands.\",\n                    \"name\": \"meta.function.begin-document.latex\"\n                },\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\end\\\\{document\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"name\": \"meta.function.end-document.latex\"\n                }\n            ]\n        },\n        \"input-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:include|input))(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.include.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.include.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"sections-macro\": {\n            \"begin\": \"((\\\\\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\\\*)?)((?:\\\\[[^\\\\[]*?\\\\]){0,2})(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"support.function.section.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"4\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket\"\n                        }\n                    ]\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"comment\": \"this works OK with all kinds of crazy stuff as long as section is one line\",\n            \"contentName\": \"entity.name.section.latex\",\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.function.section.$3.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"text-font-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)emph)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.emph.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.emph.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.italic.emph.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.emph.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.emph.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)textit)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.textit.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.textit.begin.latex\"\n                        }\n                    },\n                    \"comment\": \"We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\\\textit{...}.\\n\\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions\",\n                    \"contentName\": \"markup.italic.textit.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.textit.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.textit.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)textbf)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.textbf.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.textbf.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.bold.textbf.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.textbf.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.textbf.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)texttt)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.texttt.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.texttt.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.raw.texttt.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.texttt.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.texttt.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"songs-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{songs\\\\}\\\\{.*\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.data.environment.songs.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{songs\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.songs.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#songs-chords\"\n                        }\n                    ]\n                },\n                {\n                    \"comment\": \"This scope applies songs-environment coloring between \\\\\\\\beginsong and \\\\\\\\endsong. Useful in separate files without \\\\\\\\begin{songs}.\",\n                    \"begin\": \"\\\\s*((\\\\\\\\)beginsong)(?=\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"end\": \"((\\\\\\\\)endsong)(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.function.environment.song.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-arg-no-highlight\"\n                        },\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]|\\\\}))\\\\s*\",\n                            \"end\": \"\\\\s*(?=\\\\\\\\endsong)\",\n                            \"contentName\": \"meta.data.environment.song.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex.latex#songs-chords\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        \"embedded-code-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:^\\\\s*)?\\\\\\\\begin\\\\{(lstlisting|minted|pyglist)\\\\}(?=\\\\[|\\\\{)\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:asy|asymptote))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.asy\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asy\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:bash))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.shell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.shell\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:c|cpp))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:css))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.css\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.css\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:gnuplot))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:hs|haskell))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:html))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"text.html\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.html.basic\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:java))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:jl|julia))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:js|javascript))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.js\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.js\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:lua))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:py|python|sage))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:rb|ruby))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.ruby\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ruby\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:rust))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.rust\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.rust\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:ts|typescript))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.ts\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ts\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:xml))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"text.xml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.xml\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:yaml))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.yaml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.yaml\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([a-zA-Z]*)(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.function.embedded.latex\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:lstlisting|minted|pyglist)\\\\})\",\n                            \"name\": \"meta.embedded.block.generic.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:asy|asycode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:asy|asycode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:asy|asycode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.asymptote\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asymptote\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:cppcode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:cppcode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:cppcode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:dot2tex|dotcode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:dot2tex|dotcode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:dot2tex|dotcode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.dot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.dot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:gnuplot)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:gnuplot)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:gnuplot)\\\\*?\\\\})\",\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:hscode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:hscode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:hscode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:luacode|luadraw)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:luacode|luadraw)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:luacode|luadraw)\\\\*?\\\\})\",\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:scalacode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:scalacode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:scalacode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.scala\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.scala\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{((?:[a-zA-Z]*code|lstlisting|minted|pyglist)\\\\*?)\\\\}(?:\\\\[.*\\\\])?(?:\\\\{.*\\\\})?\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.function.embedded.latex\",\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.embedded.block.generic.latex\"\n                },\n                {\n                    \"begin\": \"((?:^\\\\s*)?\\\\\\\\begin\\\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?))\\\\})(?:\\\\[[^\\\\]]*\\\\]){,2}(?=\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:asy|asymptote)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.asy\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.asy\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:bash)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.shell\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.shell\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:c|cpp)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.cpp.embedded.latex\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.cpp.embedded.latex\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:css)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.css\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.css\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:gnuplot)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.gnuplot\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.gnuplot\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:hs|haskell)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.haskell\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.haskell\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:html)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.html\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.html.basic\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:java)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.java\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.java\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:jl|julia)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.julia\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.julia\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:js|javascript)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.js\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.js\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:lua)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.lua\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.lua\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:py|python|sage)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.python\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.python\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:rb|ruby)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.ruby\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.ruby\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:rust)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.rust\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.rust\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:ts|typescript)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.ts\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.ts\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:xml)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.xml\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.xml\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:yaml)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.yaml\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.yaml\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:tikz|tikzpicture)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.tex.latex\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex.latex\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"contentName\": \"meta.function.embedded.latex\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"name\": \"meta.embedded.block.generic.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(?:^\\\\s*)?\\\\\\\\begin\\\\{(terminal\\\\*?)\\\\}(?=\\\\[|\\\\{)\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([a-zA-Z]*)(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.function.embedded.latex\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{terminal\\\\*?\\\\})\",\n                            \"name\": \"meta.embedded.block.generic.latex\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"verbatim-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{((?:fboxv|boxedv|V|v|spv)erbatim\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{VerbatimOut\\\\}\\\\{[^\\\\}]*\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\VerbatimOut\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{alltt\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{alltt\\\\})\",\n                    \"name\": \"meta.function.alltt.latex\",\n                    \"patterns\": [\n                        {\n                            \"captures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.function.latex\"\n                                }\n                            },\n                            \"match\": \"(\\\\\\\\)[A-Za-z]+\",\n                            \"name\": \"support.function.general.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{([Cc]omment)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"comment.line.percentage.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                }\n            ]\n        },\n        \"hyperref-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:\\\\s*)((\\\\\\\\)(?:href|hyperref|hyperimage))(?=\\\\[|\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.url.latex\"\n                        }\n                    },\n                    \"comment\": \"Captures \\\\command[option]{url}{optional category}{optional name}{text}\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.hyperlink.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([^}]*)(\\\\})(?:\\\\{[^}]*\\\\}){2}?(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"markup.underline.link.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                },\n                                \"4\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.variable.parameter.function.latex\",\n                            \"end\": \"(?=\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"$self\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(?:(\\\\{)[^}]*(\\\\}))?(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.variable.parameter.function.latex\",\n                            \"end\": \"(?=\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"$self\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"(?:\\\\s*)((\\\\\\\\)(?:url|path))(\\\\{)([^}]*)(\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.url.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"markup.underline.link.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.link.url.latex\"\n                }\n            ]\n        },\n        \"inline-code-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)addplot)(?:\\\\+?)((?:\\\\[[^\\\\[]*\\\\]))*\\\\s*(gnuplot)\\\\s*((?:\\\\[[^\\\\[]*\\\\]))*\\\\s*(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"5\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\s*(\\\\};)\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"%\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.comment.latex\"\n                                }\n                            },\n                            \"end\": \"$\\\\n?\",\n                            \"name\": \"comment.line.percentage.latex\"\n                        },\n                        {\n                            \"include\": \"source.gnuplot\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:mint|mintinline))((?:\\\\[[^\\\\[]*?\\\\])?)(\\\\{)[a-zA-Z]*(\\\\})(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\6))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"10\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"11\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)[a-z]+inline)((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{\\\\}\\\\[\\\\](),;\\\\s])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:jl|julia)[cv]?)((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)(?:directlua|luadirect|luaexec))(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"contentName\": \"source.lua\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.lua\"\n                        },\n                        {\n                            \"include\": \"text.tex#braces\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:asy|asymptote)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.asy\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asy\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:bash)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.shell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.shell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:c|cpp)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:css)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.css\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.css\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:gnuplot)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:hs|haskell)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:html)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.html\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.html.basic\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:java)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:jl|julia)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:js|javascript)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.js\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.js\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:lua)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:py|python|sage)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:rb|ruby)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.ruby\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ruby\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:rust)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.rust\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.rust\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:ts|typescript)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.ts\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ts\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:xml)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.xml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.xml\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:yaml)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.yaml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.yaml\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:tikz|tikzpicture)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.tex.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.embedded.block.generic.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex#braces\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        \"citation-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:[aA]uto|foot|full|footfull|no|ref|short|[tT]ext|[pP]aren|[sS]mart|[fFpP]vol|vol)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title|url|date)?[ANP]*\\\\*?)((?:(?:\\\\([^\\\\)]*\\\\)){0,2}(?:\\\\[[^\\\\]]*\\\\]){0,2}\\\\{[\\\\p{Alphabetic}\\\\p{Number}_:.-]*\\\\})*)(<[^\\\\]<>]*>)?((?:\\\\[[^\\\\]]*\\\\])*)(\\\\{)\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.cite.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.latex\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#autocites-arg\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-angle-no-highlight\"\n                        }\n                    ]\n                },\n                \"5\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket-no-highlight\"\n                        }\n                    ]\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.citation.latex\",\n            \"patterns\": [\n                {\n                    \"match\": \"((%).*)$\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"comment.line.percentage.tex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.comment.tex\"\n                        }\n                    }\n                },\n                {\n                    \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}:.-]+\",\n                    \"name\": \"constant.other.reference.citation.latex\"\n                }\n            ]\n        },\n        \"references-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)(?:\\\\w*[rR]ef\\\\*?))(?:\\\\[[^\\\\]]*\\\\])?(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.ref.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.reference.label.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+\",\n                            \"name\": \"constant.other.reference.label.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:\\\\w*[rR]efrange\\\\*?))(?:\\\\[[^\\\\]]*\\\\])?(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+)(\\\\})(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+)(\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.ref.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"constant.other.reference.label.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"constant.other.reference.label.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    }\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)bibentry)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.cite.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.citation.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}:.]+\",\n                            \"name\": \"constant.other.reference.citation.latex\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"display-math\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\[\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\\\\\\\\\]\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\$\\\\$\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\$\\\\$\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"\\\\\\\\\\\\$\",\n                            \"name\": \"constant.character.escape.latex\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"inline-math\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\(\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\\\\\\\\\)\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\$(?!\\\\$)\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.tex\"\n                        }\n                    },\n                    \"end\": \"(?<!\\\\$)\\\\$\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.tex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.tex support.class.math.block.tex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"\\\\\\\\\\\\$\",\n                            \"name\": \"constant.character.escape.latex\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"verb-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)(?:verb|Verb|spverb)\\\\*?)\\\\s*((\\\\\\\\)scantokens)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verb.latex\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:verb|Verb|spverb)\\\\*?)\\\\s*((?<=\\\\s)\\\\S|[^a-zA-Z])(.*?)(\\\\3|$)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                }\n            ]\n        },\n        \"unbalanced-env\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\(?:begin|end)\\\\{(\\\\p{Alphabetic}+\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"name\": \"meta.function.environment.general.latex\"\n                }\n            ]\n        },\n        \"all-balanced-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:\\\\s*)((\\\\\\\\)begin)(\\\\{)((?:\\\\+?array|equation|(?:IEEE|sub)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|(?:\\\\+|d|r|dr)?cases|(?:display)?math|\\\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\\\*|!)?)(\\\\})(\\\\s*\\\\n)?\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"contentName\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"end\": \"(?:\\\\s*)((\\\\\\\\)end)(\\\\{)(\\\\4)(\\\\})(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.function.environment.math.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.equation.align.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.equation.newline.latex\"\n                        },\n                        {\n                            \"include\": \"#label-macro\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(?:\\\\s*)(\\\\\\\\begin\\\\{empheq\\\\}(?:\\\\[.*\\\\])?)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"end\": \"(?:\\\\s*)(\\\\\\\\end\\\\{empheq\\\\})\",\n                    \"name\": \"meta.function.environment.math.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.equation.align.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.equation.newline.latex\"\n                        },\n                        {\n                            \"include\": \"#label-macro\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\\\}(\\\\s*\\\\n)?)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.data.environment.tabular.latex\",\n                    \"end\": \"(\\\\s*\\\\\\\\end\\\\{(\\\\2)\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.tabular.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.table.cell.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.table.newline.latex\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(itemize|enumerate|description|list)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.list.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{tikzpicture\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{tikzpicture\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.latex.tikz\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{frame\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{frame\\\\})\",\n                    \"name\": \"meta.function.environment.frame.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(mpost\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.latex.mpost\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{markdown\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.embedded.markdown_latex_combined\",\n                    \"end\": \"(\\\\\\\\end\\\\{markdown\\\\})\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.markdown_latex_combined\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(\\\\p{Alphabetic}+\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.general.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"newcommand-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand)\\\\*?)(\\\\{)((\\\\\\\\)\\\\p{Alphabetic}+\\\\*?)(\\\\})(?:(\\\\[)[^\\\\]]*(\\\\])){0,2}(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"storage.type.function.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.begin.latex\"\n                },\n                \"4\": {\n                    \"name\": \"support.function.general.latex\"\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.end.latex\"\n                },\n                \"7\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                },\n                \"8\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                },\n                \"9\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.newcommand.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#documentclass-usepackage-macro\"\n                },\n                {\n                    \"include\": \"#unbalanced-env\"\n                },\n                {\n                    \"include\": \"#input-macro\"\n                },\n                {\n                    \"include\": \"#sections-macro\"\n                },\n                {\n                    \"include\": \"#hyperref-macro\"\n                },\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#verb-macro\"\n                },\n                {\n                    \"include\": \"#inline-code-macro\"\n                },\n                {\n                    \"include\": \"#macro-with-args-tokenizer\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"#display-math\"\n                },\n                {\n                    \"include\": \"#inline-math\"\n                },\n                {\n                    \"include\": \"#column-specials\"\n                },\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                }\n            ]\n        },\n        \"braces\": {\n            \"begin\": \"(?<!\\\\\\\\)\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.begin.latex\"\n                }\n            },\n            \"end\": \"(?<!\\\\\\\\)\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.end.latex\"\n                }\n            },\n            \"name\": \"meta.group.braces.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#macro-with-args-tokenizer\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                },\n                {\n                    \"include\": \"#braces\"\n                }\n            ]\n        },\n        \"label-macro\": {\n            \"begin\": \"((\\\\\\\\)z?label)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.label.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.latex\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.definition.label.latex\",\n            \"patterns\": [\n                {\n                    \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+\",\n                    \"name\": \"variable.parameter.definition.label.latex\"\n                }\n            ]\n        },\n        \"all-other-macro\": {\n            \"patterns\": [\n                {\n                    \"match\": \"\\\\\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\\\b)\",\n                    \"name\": \"keyword.control.layout.latex\"\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)marginpar)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.marginpar.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.marginpar.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"meta.paragraph.margin.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.marginpar.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)footnote)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.footnote.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.footnote.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"entity.name.footnote.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.footnote.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"(\\\\\\\\)item\\\\b\",\n                    \"captures\": {\n                        \"0\": {\n                            \"name\": \"keyword.other.item.latex\"\n                        },\n                        \"1\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        }\n                    },\n                    \"name\": \"meta.scope.item.latex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\\\b\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.latex\"\n                        }\n                    },\n                    \"name\": \"constant.character.latex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(?:[cgl]_+[_\\\\p{Alphabetic}@]+_[a-z]+|[qs]_[_\\\\p{Alphabetic}@]+[\\\\p{Alphabetic}@])\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.variable.latex\"\n                        }\n                    },\n                    \"name\": \"variable.other.latex3.latex\"\n                }\n            ]\n        },\n        \"column-specials\": {\n            \"match\": \"(?:<|>)(\\\\{)\\\\$(\\\\})\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"punctuation.definition.column-specials.begin.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.column-specials.end.latex\"\n                }\n            },\n            \"name\": \"meta.column-specials.latex\"\n        },\n        \"autocites-arg\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-parenthesis-no-highlight\"\n                                }\n                            ]\n                        },\n                        \"2\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket-no-highlight\"\n                                }\n                            ]\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"constant.other.reference.citation.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#autocites-arg\"\n                                }\n                            ]\n                        }\n                    },\n                    \"match\": \"((?:\\\\([^\\\\)]*\\\\)){0,2})((?:\\\\[[^\\\\]]*\\\\]){0,2})(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}_:.-]+)(\\\\})(.*)\"\n                }\n            ]\n        },\n        \"macro-with-args-tokenizer\": {\n            \"match\": \"\\\\s*((\\\\\\\\)(?:\\\\p{Alphabetic}+))(\\\\{)(\\\\\\\\?\\\\p{Alphabetic}+\\\\*?)(\\\\})(?:(\\\\[)([^\\\\]]*)(\\\\])){,2}(?:(\\\\{)([^{}]*)(\\\\}))?\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"support.function.be.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                },\n                \"4\": {\n                    \"name\": \"variable.parameter.function.latex\"\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                },\n                \"7\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                \"8\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                },\n                \"9\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                },\n                \"10\": {\n                    \"name\": \"variable.parameter.function.latex\"\n                },\n                \"11\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            }\n        },\n        \"multiline-optional-arg\": {\n            \"begin\": \"\\\\G\\\\[\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                }\n            },\n            \"contentName\": \"variable.parameter.function.latex\",\n            \"end\": \"\\\\]\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.optional.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"multiline-optional-arg-no-highlight\": {\n            \"begin\": \"(?:\\\\G|(?<=\\\\}))\\\\s*\\\\[\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\]\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.optional.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"multiline-arg-no-highlight\": {\n            \"begin\": \"\\\\G\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.latex\",\n            \"comment\": \"Do not look for balanced expressions, ie environments, inside a command argument\",\n            \"patterns\": [\n                {\n                    \"include\": \"#documentclass-usepackage-macro\"\n                },\n                {\n                    \"include\": \"#input-macro\"\n                },\n                {\n                    \"include\": \"#sections-macro\"\n                },\n                {\n                    \"include\": \"#hyperref-macro\"\n                },\n                {\n                    \"include\": \"#newcommand-macro\"\n                },\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#verb-macro\"\n                },\n                {\n                    \"include\": \"#inline-code-macro\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"#display-math\"\n                },\n                {\n                    \"include\": \"#inline-math\"\n                },\n                {\n                    \"include\": \"#column-specials\"\n                },\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                }\n            ]\n        },\n        \"optional-arg-bracket\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\[)([^\\\\[]*?)(\\\\])\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-parenthesis\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\()([^\\\\(]*?)(\\\\))\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-bracket-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\[)[^\\\\[]*?(\\\\])\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-angle-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(<)[^<]*?(>)\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-parenthesis-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\()[^\\\\(]*?(\\\\))\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"songs-chords\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\[\",\n                    \"end\": \"\\\\]\",\n                    \"name\": \"meta.chord.block.latex support.class.chord.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"\\\\^\",\n                    \"name\": \"meta.chord.block.latex support.class.chord.block.environment.latex\"\n                },\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        }\n    },\n    \"scopeName\": \"text.tex.doctex\"\n}"
  },
  {
    "path": "syntax/JLweave.tmLanguage.json",
    "content": "{\n    \"name\": \"jlweave\",\n    \"patterns\": [\n        {\n            \"include\": \"text.tex.latex\"\n        },\n        {\n            \"begin\": \"^(\\\\s*?)(<<)(.*?)(>>=)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"beginCaptures\": {\n                \"2\": {\n                    \"name\": \"meta.tag.jlweave\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.julia\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"name\": \"meta.tag.jlweave\"\n                },\n                \"5\": {\n                    \"name\": \"invalid.illegal.jlweave\"\n                }\n            },\n            \"contentName\": \"source.julia\",\n            \"end\": \"^\\\\1(@)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"endCaptures\": {\n                \"1\": {\n                    \"name\": \"meta.tag.jlweave\"\n                },\n                \"2\": {\n                    \"name\": \"invalid.illegal.jlweave\"\n                }\n            },\n            \"name\": \"text.tex.latex.jlweave.codeblock\",\n            \"patterns\": [\n                {\n                    \"include\": \"source.julia\"\n                }\n            ]\n        }\n    ],\n    \"scopeName\": \"text.tex.latex.jlweave\"\n}"
  },
  {
    "path": "syntax/LaTeX-Workshop-Log.tmLanguage.json",
    "content": "{\n    \"name\": \"LaTeX Workshop log\",\n    \"patterns\": [\n        {\n            \"begin\": \"^\\\\[([0-9\\\\.:]*)\\\\]\\\\[(\\\\w*)\\\\](?:\\\\[(\\\\w*)\\\\])?\\\\s?\",\n            \"end\":\"$\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"constant.numeric.timestamp.latex_workshop.log\"\n                },\n                \"2\": {\n                    \"name\": \"constant.language.latex_workshop.log\"\n                },\n                \"3\": {\n                    \"name\": \"constant.language.latex_workshop.log\"\n                }\n            },\n            \"patterns\": [\n                {\n                    \"include\": \"#events\"\n                },\n                {\n                    \"include\": \"#variables\"\n                },\n                {\n                    \"include\": \"#message_with_brace_arguments\"\n                },\n                {\n                    \"include\": \"#message_with_bracket_arguments\"\n                }\n            ]\n        }\n    ],\n    \"repository\": {\n        \"events\": {\n            \"match\": \"\\\\G(BUILD_DONE|AUTO_BUILD_INITIATED|ROOT_FILE_CHANGED|ROOT_FILE_SEARCHED|FILE_PARSED|VIEWER_PAGE_LOADED|VIEWER_STATUS_CHANGED|FILE_WATCHED|FILE_CHANGED|FILE_REMOVED|DOCUMENT_CHANGED|STRUCTURE_UPDATED|AUTO_CLEANED)(?::\\\\s(.*))?\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"support.function.latex_workshop.log\"\n                },\n                \"2\": {\n                    \"name\": \"string.latex_workshop.log\"\n                }\n            },\n            \"name\": \"meta.event.latex_workshop.log\"\n        },\n         \"variables\": {\n            \"match\": \"\\\\G(?:Set\\\\s)?(\\\\$?[\\\\w\\\\.-]+):\\\\s?(.*(?=\\\\s?\\\\.$)|.*(?=$))\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"support.variable.latex_workshop.log\"\n                },\n                \"2\": {\n                    \"name\": \"string.latex_workshop.log\"\n                }\n            },\n            \"name\": \"meta.variable.latex_workshop.log\"\n        },\n        \"message_with_bracket_arguments\": {\n            \"match\": \"\\\\G([\\\\w\\\\s]+):\\\\s?\\\\[(.*)\\\\]\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"entity.message.latex_workshop.log\"\n                },\n                \"2\": {\n                    \"name\": \"string.latex_workshop.log\"\n                }\n            },\n            \"name\": \"meta.message.latex_workshop.log\"\n        },\n        \"message_with_brace_arguments\": {\n            \"match\": \"\\\\G([\\\\w\\\\s]+):\\\\s?\\\\{(.*)\\\\}\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"entity.message.latex_workshop.log\"\n                },\n                \"2\": {\n                    \"name\": \"string.latex_workshop.log\"\n                }\n            },\n            \"name\": \"meta.message.latex_workshop.log\"\n        }\n    },\n    \"scopeName\": \"text.latex_workshop.log\"\n}\n"
  },
  {
    "path": "syntax/LaTeX.tmLanguage.json",
    "content": "{\n    \"name\": \"LaTeX\",\n    \"patterns\": [\n        {\n            \"match\": \"(?<=\\\\\\\\[\\\\w@]|\\\\\\\\[\\\\w@]{2}|\\\\\\\\[\\\\w@]{3}|\\\\\\\\[\\\\w@]{4}|\\\\\\\\[\\\\w@]{5}|\\\\\\\\[\\\\w@]{6})\\\\s\",\n            \"comment\": \"This scope identifies partially typed commands such as `\\\\tab`. We use this to trigger “Command Completion” only when it makes sense.\",\n            \"name\": \"meta.space-after-command.latex\"\n        },\n        {\n            \"include\": \"#songs-env\"\n        },\n        {\n            \"include\": \"#embedded-code-env\"\n        },\n        {\n            \"include\": \"#verbatim-env\"\n        },\n        {\n            \"include\": \"#document-env\"\n        },\n        {\n            \"include\": \"#all-balanced-env\"\n        },\n        {\n            \"include\": \"#documentclass-usepackage-macro\"\n        },\n        {\n            \"include\": \"#input-macro\"\n        },\n        {\n            \"include\": \"#sections-macro\"\n        },\n        {\n            \"include\": \"#hyperref-macro\"\n        },\n        {\n            \"include\": \"#newcommand-macro\"\n        },\n        {\n            \"include\": \"#text-font-macro\"\n        },\n        {\n            \"include\": \"#citation-macro\"\n        },\n        {\n            \"include\": \"#references-macro\"\n        },\n        {\n            \"include\": \"#label-macro\"\n        },\n        {\n            \"include\": \"#verb-macro\"\n        },\n        {\n            \"include\": \"#inline-code-macro\"\n        },\n        {\n            \"include\": \"#all-other-macro\"\n        },\n        {\n            \"include\": \"#display-math\"\n        },\n        {\n            \"include\": \"#inline-math\"\n        },\n        {\n            \"include\": \"#column-specials\"\n        },\n        {\n            \"include\": \"text.tex\"\n        }\n    ],\n    \"repository\": {\n        \"documentclass-usepackage-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:usepackage|documentclass))\\\\b(?=\\\\[|\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.preamble.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                }\n            },\n            \"end\": \"(?<=\\\\})\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.preamble.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#multiline-optional-arg\"\n                },\n                {\n                    \"begin\": \"((?:\\\\G|(?<=\\\\]))\\\\{)\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"support.class.latex\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"document-env\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\begin\\\\{document\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"comment\": \"These two patterns match the \\\\begin{document} and \\\\end{document} commands, so that the environment matching pattern following them will ignore those commands.\",\n                    \"name\": \"meta.function.begin-document.latex\"\n                },\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\end\\\\{document\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"name\": \"meta.function.end-document.latex\"\n                }\n            ]\n        },\n        \"input-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:include|input))(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.include.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.include.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"sections-macro\": {\n            \"begin\": \"((\\\\\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\\\*)?)((?:\\\\[[^\\\\[]*?\\\\]){0,2})(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"support.function.section.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"4\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket\"\n                        }\n                    ]\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"comment\": \"this works OK with all kinds of crazy stuff as long as section is one line\",\n            \"contentName\": \"entity.name.section.latex\",\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.function.section.$3.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"text-font-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)emph)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.emph.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.emph.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.italic.emph.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.emph.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.emph.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)textit)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.textit.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.textit.begin.latex\"\n                        }\n                    },\n                    \"comment\": \"We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\\\textit{...}.\\n\\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions\",\n                    \"contentName\": \"markup.italic.textit.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.textit.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.textit.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)textbf)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.textbf.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.textbf.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.bold.textbf.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.textbf.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.textbf.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)texttt)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.texttt.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.texttt.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.raw.texttt.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.texttt.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.texttt.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"songs-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{songs\\\\}\\\\{.*\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.data.environment.songs.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{songs\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.songs.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#songs-chords\"\n                        }\n                    ]\n                },\n                {\n                    \"comment\": \"This scope applies songs-environment coloring between \\\\\\\\beginsong and \\\\\\\\endsong. Useful in separate files without \\\\\\\\begin{songs}.\",\n                    \"begin\": \"\\\\s*((\\\\\\\\)beginsong)(?=\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"end\": \"((\\\\\\\\)endsong)(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.function.environment.song.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-arg-no-highlight\"\n                        },\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]|\\\\}))\\\\s*\",\n                            \"end\": \"\\\\s*(?=\\\\\\\\endsong)\",\n                            \"contentName\": \"meta.data.environment.song.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex.latex#songs-chords\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        \"embedded-code-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:^\\\\s*)?\\\\\\\\begin\\\\{(lstlisting|minted|pyglist)\\\\}(?=\\\\[|\\\\{)\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:asy|asymptote))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.asy\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asy\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:bash))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.shell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.shell\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:c|cpp))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:css))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.css\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.css\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:gnuplot))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:hs|haskell))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:html))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"text.html\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.html.basic\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:java))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:jl|julia))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:js|javascript))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.js\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.js\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:lua))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:py|python|sage))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:rb|ruby))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.ruby\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ruby\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:rust))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.rust\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.rust\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:ts|typescript))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.ts\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ts\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:xml))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"text.xml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.xml\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)((?:yaml))(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:minted|lstlisting|pyglist)\\\\})\",\n                            \"contentName\": \"source.yaml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.yaml\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([a-zA-Z]*)(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.function.embedded.latex\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:lstlisting|minted|pyglist)\\\\})\",\n                            \"name\": \"meta.embedded.block.generic.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:asy|asycode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:asy|asycode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:asy|asycode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.asymptote\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asymptote\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:cppcode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:cppcode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:cppcode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:dot2tex|dotcode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:dot2tex|dotcode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:dot2tex|dotcode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.dot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.dot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:gnuplot)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:gnuplot)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:gnuplot)\\\\*?\\\\})\",\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:hscode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:hscode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:hscode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:luacode|luadraw)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:luacode|luadraw)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:luacode|luadraw)\\\\*?\\\\})\",\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:scalacode)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:scalacode)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:scalacode)\\\\*?\\\\})\",\n                            \"contentName\": \"source.scala\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.scala\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\}(?:\\\\[[a-zA-Z0-9_-]*\\\\])?(?=\\\\[|\\\\{|\\\\s*$)\",\n                    \"end\": \"\\\\s*\\\\\\\\end\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\}\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(\\\\})\",\n                            \"endCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"variable.parameter.function.latex\"\n                        },\n                        {\n                            \"begin\": \"^(?=\\\\s*)\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\\\*?\\\\})\",\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\s*\\\\\\\\begin\\\\{((?:[a-zA-Z]*code|lstlisting|minted|pyglist)\\\\*?)\\\\}(?:\\\\[.*\\\\])?(?:\\\\{.*\\\\})?\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.function.embedded.latex\",\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.embedded.block.generic.latex\"\n                },\n                {\n                    \"begin\": \"((?:^\\\\s*)?\\\\\\\\begin\\\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?))\\\\})(?:\\\\[[^\\\\]]*\\\\]){,2}(?=\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:asy|asymptote)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.asy\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.asy\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:bash)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.shell\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.shell\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:c|cpp)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.cpp.embedded.latex\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.cpp.embedded.latex\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:css)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.css\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.css\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:gnuplot)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.gnuplot\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.gnuplot\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:hs|haskell)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.haskell\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.haskell\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:html)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.html\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.html.basic\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:java)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.java\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.java\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:jl|julia)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.julia\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.julia\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:js|javascript)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.js\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.js\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:lua)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.lua\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.lua\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:py|python|sage)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.python\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.python\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:rb|ruby)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.ruby\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.ruby\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:rust)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.rust\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.rust\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:ts|typescript)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.ts\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.ts\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:xml)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.xml\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.xml\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:yaml)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"source.yaml\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"source.yaml\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)(?:__|[a-z\\\\s]*)(?i:tikz|tikzpicture)\",\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"contentName\": \"text.tex.latex\",\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex.latex\"\n                                        }\n                                    ]\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"\\\\G(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"end\": \"(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"begin\": \"\\\\G\",\n                                    \"end\": \"(\\\\})\\\\s*$\",\n                                    \"endCaptures\": {\n                                        \"1\": {\n                                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                                        }\n                                    },\n                                    \"patterns\": [\n                                        {\n                                            \"include\": \"text.tex#braces\"\n                                        },\n                                        {\n                                            \"include\": \"$self\"\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"begin\": \"^(\\\\s*)\",\n                                    \"contentName\": \"meta.function.embedded.latex\",\n                                    \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\\\*?|PlaceholderFromCode\\\\*?|SetPlaceholderCode\\\\*?)\\\\})\",\n                                    \"name\": \"meta.embedded.block.generic.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(?:^\\\\s*)?\\\\\\\\begin\\\\{(terminal\\\\*?)\\\\}(?=\\\\[|\\\\{)\",\n                    \"captures\": {\n                        \"0\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"\\\\\\\\end\\\\{\\\\1\\\\}\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([a-zA-Z]*)(\\\\})\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"variable.parameter.function.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.function.embedded.latex\",\n                            \"end\": \"^\\\\s*(?=\\\\\\\\end\\\\{terminal\\\\*?\\\\})\",\n                            \"name\": \"meta.embedded.block.generic.latex\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"verbatim-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{((?:fboxv|boxedv|V|v|spv)erbatim\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{VerbatimOut\\\\}\\\\{[^\\\\}]*\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\VerbatimOut\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{alltt\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verbatim.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{alltt\\\\})\",\n                    \"name\": \"meta.function.alltt.latex\",\n                    \"patterns\": [\n                        {\n                            \"captures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.function.latex\"\n                                }\n                            },\n                            \"match\": \"(\\\\\\\\)[A-Za-z]+\",\n                            \"name\": \"support.function.general.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{([Cc]omment)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"comment.line.percentage.latex\",\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\})\",\n                    \"name\": \"meta.function.verbatim.latex\"\n                }\n            ]\n        },\n        \"hyperref-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:\\\\s*)((\\\\\\\\)(?:href|hyperref|hyperimage))(?=\\\\[|\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.url.latex\"\n                        }\n                    },\n                    \"comment\": \"Captures \\\\command[option]{url}{optional category}{optional name}{text}\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.hyperlink.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(\\\\{)([^}]*)(\\\\})(?:\\\\{[^}]*\\\\}){2}?(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"markup.underline.link.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                },\n                                \"4\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.variable.parameter.function.latex\",\n                            \"end\": \"(?=\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"$self\"\n                                }\n                            ]\n                        },\n                        {\n                            \"begin\": \"(?:\\\\G|(?<=\\\\]))(?:(\\\\{)[^}]*(\\\\}))?(\\\\{)\",\n                            \"beginCaptures\": {\n                                \"1\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                },\n                                \"2\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                },\n                                \"3\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.variable.parameter.function.latex\",\n                            \"end\": \"(?=\\\\})\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"$self\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"(?:\\\\s*)((\\\\\\\\)(?:url|path))(\\\\{)([^}]*)(\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.url.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"markup.underline.link.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.link.url.latex\"\n                }\n            ]\n        },\n        \"inline-code-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)addplot)(?:\\\\+?)((?:\\\\[[^\\\\[]*\\\\]))*\\\\s*(gnuplot)\\\\s*((?:\\\\[[^\\\\[]*\\\\]))*\\\\s*(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"5\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\s*(\\\\};)\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"%\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.comment.latex\"\n                                }\n                            },\n                            \"end\": \"$\\\\n?\",\n                            \"name\": \"comment.line.percentage.latex\"\n                        },\n                        {\n                            \"include\": \"source.gnuplot\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:mint|mintinline))((?:\\\\[[^\\\\[]*?\\\\])?)(\\\\{)[a-zA-Z]*(\\\\})(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\6))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"10\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"11\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)[a-z]+inline)((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{\\\\}\\\\[\\\\](),;\\\\s])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:jl|julia)[cv]?)((?:\\\\[[^\\\\[]*?\\\\])?)(?:(?:([^a-zA-Z\\\\{])(.*?)(\\\\4))|(?:(\\\\{)(.*?)(\\\\})))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        },\n                        \"9\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)(?:directlua|luadirect|luaexec))(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"contentName\": \"source.lua\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.lua\"\n                        },\n                        {\n                            \"include\": \"text.tex#braces\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:asy|asymptote)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.asy\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.asy\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:bash)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.shell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.shell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:c|cpp)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.cpp.embedded.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.cpp.embedded.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:css)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.css\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.css\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:gnuplot)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.gnuplot\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.gnuplot\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:hs|haskell)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.haskell\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.haskell\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:html)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.html\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.html.basic\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:java)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.java\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.java\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:jl|julia)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.julia\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.julia\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:js|javascript)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.js\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.js\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:lua)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.lua\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.lua\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:py|python|sage)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.python\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.python\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:rb|ruby)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.ruby\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ruby\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:rust)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.rust\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.rust\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:ts|typescript)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.ts\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.ts\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:xml)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.xml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.xml\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:yaml)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"source.yaml\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.yaml\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[(?i:tikz|tikzpicture)\\\\b|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"text.tex.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex.latex\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)cacheMeCode)(?=\\\\[|\\\\{)\",\n                    \"end\": \"(?<=\\\\})\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.latex#multiline-optional-arg-no-highlight\"\n                        },\n                        {\n                            \"begin\": \"(?<=\\\\])(\\\\{)\",\n                            \"end\": \"\\\\}\",\n                            \"beginCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                                }\n                            },\n                            \"endCaptures\": {\n                                \"0\": {\n                                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                                }\n                            },\n                            \"contentName\": \"meta.embedded.block.generic.latex\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"text.tex#braces\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        },\n        \"citation-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:[aA]uto|foot|full|footfull|no|ref|short|[tT]ext|[pP]aren|[sS]mart|[fFpP]vol|vol)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title|url|date)?[ANP]*\\\\*?)((?:(?:\\\\([^\\\\)]*\\\\)){0,2}(?:\\\\[[^\\\\]]*\\\\]){0,2}\\\\{[\\\\p{Alphabetic}\\\\p{Number}_:.-]*\\\\})*)(<[^\\\\]<>]*>)?((?:\\\\[[^\\\\]]*\\\\])*)(\\\\{)\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.cite.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.latex\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#autocites-arg\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-angle-no-highlight\"\n                        }\n                    ]\n                },\n                \"5\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket-no-highlight\"\n                        }\n                    ]\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.citation.latex\",\n            \"patterns\": [\n                {\n                    \"match\": \"((%).*)$\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"comment.line.percentage.tex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.comment.tex\"\n                        }\n                    }\n                },\n                {\n                    \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}:.-]+\",\n                    \"name\": \"constant.other.reference.citation.latex\"\n                }\n            ]\n        },\n        \"references-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)(?:\\\\w*[rR]ef\\\\*?))(?:\\\\[[^\\\\]]*\\\\])?(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.ref.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.reference.label.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+\",\n                            \"name\": \"constant.other.reference.label.latex\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:\\\\w*[rR]efrange\\\\*?))(?:\\\\[[^\\\\]]*\\\\])?(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+)(\\\\})(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+)(\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.ref.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"constant.other.reference.label.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"7\": {\n                            \"name\": \"constant.other.reference.label.latex\"\n                        },\n                        \"8\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    }\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)bibentry)(\\\\{)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"keyword.control.cite.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.citation.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}:.]+\",\n                            \"name\": \"constant.other.reference.citation.latex\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"display-math\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\[\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\\\\\\\\\]\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\$\\\\$\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\$\\\\$\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"\\\\\\\\\\\\$\",\n                            \"name\": \"constant.character.escape.latex\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"inline-math\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\(\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.latex\"\n                        }\n                    },\n                    \"end\": \"\\\\\\\\\\\\)\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"\\\\$(?!\\\\$)\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.begin.tex\"\n                        }\n                    },\n                    \"end\": \"(?<!\\\\$)\\\\$\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.string.end.tex\"\n                        }\n                    },\n                    \"name\": \"meta.math.block.tex support.class.math.block.tex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"\\\\\\\\\\\\$\",\n                            \"name\": \"constant.character.escape.latex\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"verb-macro\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)(?:verb|Verb|spverb)\\\\*?)\\\\s*((\\\\\\\\)scantokens)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"markup.raw.verb.latex\",\n                    \"end\": \"(\\\\})\",\n                    \"endCaptures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.end.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"((\\\\\\\\)(?:verb|Verb|spverb)\\\\*?)\\\\s*((?<=\\\\s)\\\\S|[^a-zA-Z])(.*?)(\\\\3|$)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.verb.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"markup.raw.verb.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.verb.latex\"\n                        }\n                    },\n                    \"name\": \"meta.function.verb.latex\"\n                }\n            ]\n        },\n        \"unbalanced-env\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(\\\\s*\\\\\\\\(?:begin|end)\\\\{(\\\\p{Alphabetic}+\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"name\": \"meta.function.environment.general.latex\"\n                }\n            ]\n        },\n        \"all-balanced-env\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"(?:\\\\s*)((\\\\\\\\)begin)(\\\\{)((?:\\\\+?array|equation|(?:IEEE|sub)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|(?:\\\\+|d|r|dr)?cases|(?:display)?math|\\\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\\\*|!)?)(\\\\})(\\\\s*\\\\n)?\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"support.function.be.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        }\n                    },\n                    \"contentName\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"end\": \"(?:\\\\s*)((\\\\\\\\)end)(\\\\{)(\\\\4)(\\\\})(?:\\\\s*\\\\n)?\",\n                    \"name\": \"meta.function.environment.math.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.equation.align.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.equation.newline.latex\"\n                        },\n                        {\n                            \"include\": \"#label-macro\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(?:\\\\s*)(\\\\\\\\begin\\\\{empheq\\\\}(?:\\\\[.*\\\\])?)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.math.block.latex support.class.math.block.environment.latex\",\n                    \"end\": \"(?:\\\\s*)(\\\\\\\\end\\\\{empheq\\\\})\",\n                    \"name\": \"meta.function.environment.math.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.equation.align.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.equation.newline.latex\"\n                        },\n                        {\n                            \"include\": \"#label-macro\"\n                        },\n                        {\n                            \"include\": \"text.tex#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\\\}(\\\\s*\\\\n)?)\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.data.environment.tabular.latex\",\n                    \"end\": \"(\\\\s*\\\\\\\\end\\\\{(\\\\2)\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.tabular.latex\",\n                    \"patterns\": [\n                        {\n                            \"match\": \"(?<!\\\\\\\\)&\",\n                            \"name\": \"keyword.control.table.cell.latex\"\n                        },\n                        {\n                            \"match\": \"\\\\\\\\\\\\\\\\\",\n                            \"name\": \"keyword.control.table.newline.latex\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(itemize|enumerate|description|list)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.list.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{tikzpicture\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{tikzpicture\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.latex.tikz\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{frame\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{frame\\\\})\",\n                    \"name\": \"meta.function.environment.frame.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(mpost\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.latex.mpost\"\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{markdown\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"contentName\": \"meta.embedded.markdown_latex_combined\",\n                    \"end\": \"(\\\\\\\\end\\\\{markdown\\\\})\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"text.tex.markdown_latex_combined\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"(\\\\s*\\\\\\\\begin\\\\{(\\\\p{Alphabetic}+\\\\*?)\\\\})\",\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#macro-with-args-tokenizer\"\n                                }\n                            ]\n                        }\n                    },\n                    \"end\": \"(\\\\\\\\end\\\\{\\\\2\\\\}(?:\\\\s*\\\\n)?)\",\n                    \"name\": \"meta.function.environment.general.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"newcommand-macro\": {\n            \"begin\": \"((\\\\\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand)\\\\*?)(\\\\{)((\\\\\\\\)\\\\p{Alphabetic}+\\\\*?)(\\\\})(?:(\\\\[)[^\\\\]]*(\\\\])){0,2}(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"storage.type.function.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.begin.latex\"\n                },\n                \"4\": {\n                    \"name\": \"support.function.general.latex\"\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.end.latex\"\n                },\n                \"7\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                },\n                \"8\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                },\n                \"9\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.newcommand.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#documentclass-usepackage-macro\"\n                },\n                {\n                    \"include\": \"#unbalanced-env\"\n                },\n                {\n                    \"include\": \"#input-macro\"\n                },\n                {\n                    \"include\": \"#sections-macro\"\n                },\n                {\n                    \"include\": \"#hyperref-macro\"\n                },\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#verb-macro\"\n                },\n                {\n                    \"include\": \"#inline-code-macro\"\n                },\n                {\n                    \"include\": \"#macro-with-args-tokenizer\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"#display-math\"\n                },\n                {\n                    \"include\": \"#inline-math\"\n                },\n                {\n                    \"include\": \"#column-specials\"\n                },\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                }\n            ]\n        },\n        \"braces\": {\n            \"begin\": \"(?<!\\\\\\\\)\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.begin.latex\"\n                }\n            },\n            \"end\": \"(?<!\\\\\\\\)\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.end.latex\"\n                }\n            },\n            \"name\": \"meta.group.braces.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#macro-with-args-tokenizer\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                },\n                {\n                    \"include\": \"#braces\"\n                }\n            ]\n        },\n        \"label-macro\": {\n            \"begin\": \"((\\\\\\\\)z?label)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.label.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.latex\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"#optional-arg-bracket\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.definition.label.latex\",\n            \"patterns\": [\n                {\n                    \"match\": \"[\\\\p{Alphabetic}\\\\p{Number}\\\\.,:/*!^_-]+\",\n                    \"name\": \"variable.parameter.definition.label.latex\"\n                }\n            ]\n        },\n        \"all-other-macro\": {\n            \"patterns\": [\n                {\n                    \"match\": \"\\\\\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\\\b)\",\n                    \"name\": \"keyword.control.layout.latex\"\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)marginpar)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.marginpar.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.marginpar.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"meta.paragraph.margin.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.marginpar.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)footnote)((?:\\\\[[^\\\\[]*?\\\\])*)(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.footnote.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.latex\"\n                        },\n                        \"3\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket\"\n                                }\n                            ]\n                        },\n                        \"4\": {\n                            \"name\": \"punctuation.definition.footnote.begin.latex\"\n                        }\n                    },\n                    \"contentName\": \"entity.name.footnote.latex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.footnote.end.latex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#braces\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"(\\\\\\\\)item\\\\b\",\n                    \"captures\": {\n                        \"0\": {\n                            \"name\": \"keyword.other.item.latex\"\n                        },\n                        \"1\": {\n                            \"name\": \"punctuation.definition.keyword.latex\"\n                        }\n                    },\n                    \"name\": \"meta.scope.item.latex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\\\b\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.latex\"\n                        }\n                    },\n                    \"name\": \"constant.character.latex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(?:[cgl]_+[_\\\\p{Alphabetic}@]+_[a-z]+|[qs]_[_\\\\p{Alphabetic}@]+[\\\\p{Alphabetic}@])\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.variable.latex\"\n                        }\n                    },\n                    \"name\": \"variable.other.latex3.latex\"\n                }\n            ]\n        },\n        \"column-specials\": {\n            \"match\": \"(?:<|>)(\\\\{)\\\\$(\\\\})\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"punctuation.definition.column-specials.begin.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.column-specials.end.latex\"\n                }\n            },\n            \"name\": \"meta.column-specials.latex\"\n        },\n        \"autocites-arg\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-parenthesis-no-highlight\"\n                                }\n                            ]\n                        },\n                        \"2\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#optional-arg-bracket-no-highlight\"\n                                }\n                            ]\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.latex\"\n                        },\n                        \"4\": {\n                            \"name\": \"constant.other.reference.citation.latex\"\n                        },\n                        \"5\": {\n                            \"name\": \"punctuation.definition.arguments.end.latex\"\n                        },\n                        \"6\": {\n                            \"patterns\": [\n                                {\n                                    \"include\": \"#autocites-arg\"\n                                }\n                            ]\n                        }\n                    },\n                    \"match\": \"((?:\\\\([^\\\\)]*\\\\)){0,2})((?:\\\\[[^\\\\]]*\\\\]){0,2})(\\\\{)([\\\\p{Alphabetic}\\\\p{Number}_:.-]+)(\\\\})(.*)\"\n                }\n            ]\n        },\n        \"macro-with-args-tokenizer\": {\n            \"match\": \"\\\\s*((\\\\\\\\)(?:\\\\p{Alphabetic}+))(\\\\{)(\\\\\\\\?\\\\p{Alphabetic}+\\\\*?)(\\\\})(?:(\\\\[)([^\\\\]]*)(\\\\])){,2}(?:(\\\\{)([^{}]*)(\\\\}))?\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"support.function.be.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                },\n                \"4\": {\n                    \"name\": \"variable.parameter.function.latex\"\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                },\n                \"6\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                },\n                \"7\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                \"8\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                },\n                \"9\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                },\n                \"10\": {\n                    \"name\": \"variable.parameter.function.latex\"\n                },\n                \"11\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            }\n        },\n        \"multiline-optional-arg\": {\n            \"begin\": \"\\\\G\\\\[\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                }\n            },\n            \"contentName\": \"variable.parameter.function.latex\",\n            \"end\": \"\\\\]\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.optional.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"multiline-optional-arg-no-highlight\": {\n            \"begin\": \"(?:\\\\G|(?<=\\\\}))\\\\s*\\\\[\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\]\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.optional.latex\",\n            \"patterns\": [\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"multiline-arg-no-highlight\": {\n            \"begin\": \"\\\\G\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                }\n            },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"name\": \"meta.parameter.latex\",\n            \"comment\": \"Do not look for balanced expressions, ie environments, inside a command argument\",\n            \"patterns\": [\n                {\n                    \"include\": \"#documentclass-usepackage-macro\"\n                },\n                {\n                    \"include\": \"#input-macro\"\n                },\n                {\n                    \"include\": \"#sections-macro\"\n                },\n                {\n                    \"include\": \"#hyperref-macro\"\n                },\n                {\n                    \"include\": \"#newcommand-macro\"\n                },\n                {\n                    \"include\": \"#text-font-macro\"\n                },\n                {\n                    \"include\": \"#citation-macro\"\n                },\n                {\n                    \"include\": \"#references-macro\"\n                },\n                {\n                    \"include\": \"#label-macro\"\n                },\n                {\n                    \"include\": \"#verb-macro\"\n                },\n                {\n                    \"include\": \"#inline-code-macro\"\n                },\n                {\n                    \"include\": \"#all-other-macro\"\n                },\n                {\n                    \"include\": \"#display-math\"\n                },\n                {\n                    \"include\": \"#inline-math\"\n                },\n                {\n                    \"include\": \"#column-specials\"\n                },\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"text.tex\"\n                }\n            ]\n        },\n        \"optional-arg-bracket\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\[)([^\\\\[]*?)(\\\\])\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-parenthesis\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"variable.parameter.function.latex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\()([^\\\\(]*?)(\\\\))\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-bracket-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\[)[^\\\\[]*?(\\\\])\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-angle-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(<)[^<]*?(>)\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"optional-arg-parenthesis-no-highlight\": {\n            \"patterns\": [\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.arguments.optional.begin.latex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.arguments.optional.end.latex\"\n                        }\n                    },\n                    \"match\": \"(\\\\()[^\\\\(]*?(\\\\))\",\n                    \"name\": \"meta.parameter.optional.latex\"\n                }\n            ]\n        },\n        \"songs-chords\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"\\\\\\\\\\\\[\",\n                    \"end\": \"\\\\]\",\n                    \"name\": \"meta.chord.block.latex support.class.chord.block.environment.latex\",\n                    \"patterns\": [\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"\\\\^\",\n                    \"name\": \"meta.chord.block.latex support.class.chord.block.environment.latex\"\n                },\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        }\n    },\n    \"scopeName\": \"text.tex.latex\"\n}"
  },
  {
    "path": "syntax/Pweave.tmLanguage.json",
    "content": "{\n    \"name\": \"pweave\",\n    \"patterns\": [\n        {\n            \"include\": \"text.tex.latex\"\n        },\n        {\n            \"begin\": \"^(\\\\s*?)(<<)(.*?)(>>=)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"beginCaptures\": {\n                \"2\": {\n                    \"name\": \"meta.tag.pweave\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.python\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"name\": \"meta.tag.pweave\"\n                },\n                \"5\": {\n                    \"name\": \"invalid.illegal.pweave\"\n                }\n            },\n            \"contentName\": \"source.python\",\n            \"end\": \"^\\\\1(@)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"endCaptures\": {\n                \"1\": {\n                    \"name\": \"meta.tag.pweave\"\n                },\n                \"2\": {\n                    \"name\": \"invalid.illegal.pweave\"\n                }\n            },\n            \"name\": \"text.tex.latex.pweave.codeblock\",\n            \"patterns\": [\n                {\n                    \"include\": \"source.python\"\n                }\n            ]\n        },\n        {\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"meta.tag.pweave\"\n                },\n                \"2\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.python\"\n                        }\n                    ]\n                },\n                \"3\": {\n                    \"name\": \"meta.tag.pweave\"\n                }\n            },\n            \"match\": \"(<%=?)\\\\s*(.*?)\\\\s*(%>)\",\n            \"name\": \"text.tex.latex.pweave.inlinecode\"\n        }\n    ],\n    \"scopeName\": \"text.tex.latex.pweave\"\n}"
  },
  {
    "path": "syntax/README.md",
    "content": "# Grammars and language configuration Files\n\nAll the `tmLanguage.json` files of this directory are retrieved from https://github.com/jlelong/vscode-latex-basics by running `npm run update-grammar`\n\nThe language configuration files are built from the files in `src/` by running `npm run update-grammar`\n"
  },
  {
    "path": "syntax/RSweave.tmLanguage.json",
    "content": "{\n    \"fileTypes\": [\n        \"rnw\",\n        \"Rnw\",\n        \"rtex\",\n        \"Rtex\",\n        \"snw\",\n        \"Snw\"\n    ],\n    \"name\": \"RSweave\",\n    \"patterns\": [\n        {\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"support.function.verb.latex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.function.latex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.definition.arguments.begin.latex\"\n                },\n                \"4\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.r\"\n                        }\n                    ]\n                },\n                \"5\": {\n                    \"name\": \"punctuation.definition.arguments.end.latex\"\n                }\n            },\n            \"match\": \"((\\\\\\\\)Sexpr)(\\\\{)([^\\\\{\\\\}]*)(\\\\})\",\n            \"name\": \"meta.function.verb.latex\"\n        },\n        {\n            \"include\": \"text.tex.latex\"\n        },\n        {\n            \"begin\": \"^(\\\\s*?)(<<)(.*?)(>>=)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"beginCaptures\": {\n                \"2\": {\n                    \"name\": \"meta.tag.rsweave\"\n                },\n                \"3\": {\n                    \"patterns\": [\n                        {\n                            \"include\": \"source.r#function-parameters\"\n                        }\n                    ]\n                },\n                \"4\": {\n                    \"name\": \"meta.tag.rsweave\"\n                },\n                \"5\": {\n                    \"name\": \"invalid.illegal.rsweave\"\n                }\n            },\n            \"contentName\": \"source.r\",\n            \"end\": \"^\\\\1(@)\\\\s*(.+)?\\\\s*\\\\n\",\n            \"endCaptures\": {\n                \"1\": {\n                    \"name\": \"meta.tag.rsweave\"\n                },\n                \"2\": {\n                    \"name\": \"invalid.illegal.rsweave\"\n                }\n            },\n            \"name\": \"text.tex.latex.rsweave.codeblock\",\n            \"patterns\": [\n                {\n                    \"include\": \"source.r\"\n                }\n            ]\n        }\n    ],\n    \"scopeName\": \"text.tex.latex.rsweave\"\n}"
  },
  {
    "path": "syntax/TeX.tmLanguage.json",
    "content": "{\n    \"name\": \"TeX\",\n    \"patterns\": [\n        {\n            \"include\": \"#iffalse-block\"\n        },\n        {\n            \"include\": \"#macro-control\"\n        },\n        {\n            \"include\": \"#catcode\"\n        },\n        {\n            \"include\": \"#comment\"\n        },\n        {\n            \"match\": \"[\\\\[\\\\]]\",\n            \"name\": \"punctuation.definition.brackets.tex\"\n        },\n        {\n            \"include\": \"#dollar-math\"\n        },\n        {\n            \"match\": \"\\\\\\\\\\\\\\\\\",\n            \"name\": \"keyword.control.newline.tex\"\n        },\n        {\n            \"include\": \"#ifnextchar\"\n        },\n        {\n            \"include\": \"#macro-general\"\n        }\n    ],\n    \"repository\": {\n        \"catcode\": {\n            \"match\": \"((\\\\\\\\)catcode)`(?:\\\\\\\\)?.(=)(\\\\d+)\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.catcode.tex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.tex\"\n                },\n                \"3\": {\n                    \"name\": \"punctuation.separator.key-value.tex\"\n                },\n                \"4\": {\n                    \"name\": \"constant.numeric.category.tex\"\n                }\n            },\n            \"name\": \"meta.catcode.tex\"\n        },\n        \"iffalse-block\": {\n            \"begin\": \"(?<=^\\\\s*)((\\\\\\\\)iffalse)(?!\\\\s*[{}]\\\\s*\\\\\\\\fi\\\\b)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.tex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.tex\"\n                }\n            },\n            \"contentName\": \"comment.line.percentage.tex\",\n            \"end\": \"((\\\\\\\\)(?:else|fi)\\\\b)\",\n            \"endCaptures\": {\n                \"1\": {\n                    \"name\": \"keyword.control.tex\"\n                },\n                \"2\": {\n                    \"name\": \"punctuation.definition.keyword.tex\"\n                }\n            },\n            \"patterns\": [\n                {\n                    \"include\": \"#comment\"\n                },\n                {\n                    \"include\": \"#braces\"\n                },\n                {\n                    \"include\": \"#conditionals\"\n                }\n            ]\n        },\n        \"ifnextchar\": {\n            \"match\": \"\\\\\\\\@ifnextchar[({\\\\[]\",\n            \"name\": \"keyword.control.ifnextchar.tex\"\n        },\n        \"macro-control\": {\n            \"match\": \"(\\\\\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])\",\n            \"captures\": {\n                \"1\": {\n                    \"name\": \"punctuation.definition.keyword.tex\"\n                }\n            },\n            \"name\": \"keyword.control.tex\"\n        },\n        \"braces\": {\n            \"begin\": \"(?<!\\\\\\\\)\\\\{\",\n            \"beginCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.begin.tex\"\n                }\n            },\n            \"end\": \"(?<!\\\\\\\\)\\\\}\",\n            \"endCaptures\": {\n                \"0\": {\n                    \"name\": \"punctuation.group.end.tex\"\n                }\n            },\n            \"name\": \"meta.group.braces.tex\",\n            \"patterns\": [\n                {\n                    \"include\": \"#braces\"\n                }\n            ]\n        },\n        \"comment\": {\n            \"begin\": \"(^[ \\\\t]+)?(?=%)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"punctuation.whitespace.comment.leading.tex\"\n                }\n            },\n            \"end\": \"(?!\\\\G)\",\n            \"patterns\": [\n                {\n                    \"begin\": \"%:?\",\n                    \"beginCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.comment.tex\"\n                        }\n                    },\n                    \"end\": \"$\\\\n?\",\n                    \"name\": \"comment.line.percentage.tex\"\n                },\n                {\n                    \"begin\": \"^(%!TEX) (\\\\S*) =\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.comment.tex\"\n                        }\n                    },\n                    \"end\": \"$\\\\n?\",\n                    \"name\": \"comment.line.percentage.directive.tex\"\n                }\n            ]\n        },\n        \"conditionals\": {\n            \"begin\": \"(?<=^\\\\s*)\\\\\\\\if(?!f\\\\b)[a-z]*\",\n            \"end\": \"(?<=^\\\\s*)\\\\\\\\fi\",\n            \"patterns\": [\n                {\n                    \"include\": \"#comment\"\n                },\n                {\n                    \"include\": \"#conditionals\"\n                }\n            ]\n        },\n        \"dollar-math\": {\n            \"begin\": \"(\\\\$\\\\$|\\\\$)\",\n            \"beginCaptures\": {\n                \"1\": {\n                    \"name\": \"punctuation.definition.string.begin.tex\"\n                }\n            },\n            \"end\": \"(\\\\1)\",\n            \"endCaptures\": {\n                \"1\": {\n                    \"name\": \"punctuation.definition.string.end.tex\"\n                }\n            },\n            \"name\": \"meta.math.block.tex support.class.math.block.tex\",\n            \"patterns\": [\n                {\n                    \"match\": \"\\\\\\\\\\\\$\",\n                    \"name\": \"constant.character.escape.tex\"\n                },\n                {\n                    \"include\": \"#math-content\"\n                },\n                {\n                    \"include\": \"$self\"\n                }\n            ]\n        },\n        \"math-content\": {\n            \"patterns\": [\n                {\n                    \"begin\": \"((\\\\\\\\)(?:text|mbox))(\\\\{)\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"constant.other.math.tex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.tex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.definition.arguments.begin.tex meta.text.normal.tex\"\n                        }\n                    },\n                    \"contentName\": \"meta.text.normal.tex\",\n                    \"end\": \"\\\\}\",\n                    \"endCaptures\": {\n                        \"0\": {\n                            \"name\": \"punctuation.definition.arguments.end.tex meta.text.normal.tex\"\n                        }\n                    },\n                    \"patterns\": [\n                        {\n                            \"include\": \"#math-content\"\n                        },\n                        {\n                            \"include\": \"$self\"\n                        }\n                    ]\n                },\n                {\n                    \"match\": \"\\\\\\\\{|\\\\\\\\}\",\n                    \"name\": \"punctuation.math.bracket.pair.tex\"\n                },\n                {\n                    \"match\": \"\\\\\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\\\(\\\\[\\\\<\\\\>\\\\]\\\\)\\\\.\\\\|]|\\\\\\\\[{}|]|\\\\\\\\[lr]?[Vv]ert|\\\\\\\\[lr]angle)\",\n                    \"name\": \"punctuation.math.bracket.pair.big.tex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|ge|le|Arrownot)(?![a-zA-Z@])\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.math.tex\"\n                        }\n                    },\n                    \"name\": \"constant.character.math.tex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\\\b\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.math.tex\"\n                        }\n                    },\n                    \"name\": \"constant.character.math.tex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\\\b\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.math.tex\"\n                        }\n                    },\n                    \"name\": \"constant.other.math.tex\"\n                },\n                {\n                    \"begin\": \"((\\\\\\\\)Sexpr(\\\\{))\",\n                    \"beginCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.sexpr.math.tex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.definition.function.math.tex\"\n                        },\n                        \"3\": {\n                            \"name\": \"punctuation.section.embedded.begin.math.tex\"\n                        }\n                    },\n                    \"contentName\": \"support.function.sexpr.math.tex\",\n                    \"end\": \"(((\\\\})))\",\n                    \"endCaptures\": {\n                        \"1\": {\n                            \"name\": \"support.function.sexpr.math.tex\"\n                        },\n                        \"2\": {\n                            \"name\": \"punctuation.section.embedded.end.math.tex\"\n                        },\n                        \"3\": {\n                            \"name\": \"source.r\"\n                        }\n                    },\n                    \"name\": \"meta.embedded.line.r\",\n                    \"patterns\": [\n                        {\n                            \"begin\": \"\\\\G(?!\\\\})\",\n                            \"end\": \"(?=\\\\})\",\n                            \"name\": \"source.r\",\n                            \"patterns\": [\n                                {\n                                    \"include\": \"source.r\"\n                                }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.constant.math.tex\"\n                        }\n                    },\n                    \"match\": \"(\\\\\\\\)(?!begin\\\\{|verb)([A-Za-z]+)\",\n                    \"name\": \"constant.other.general.math.tex\"\n                },\n                {\n                    \"match\": \"(?<!\\\\\\\\)\\\\{\",\n                    \"name\": \"punctuation.math.begin.bracket.curly.tex\"\n                },\n                {\n                    \"match\": \"(?<!\\\\\\\\)\\\\}\",\n                    \"name\": \"punctuation.math.end.bracket.curly.tex\"\n                },\n                {\n                    \"match\": \"(?<!\\\\\\\\)\\\\(\",\n                    \"name\": \"punctuation.math.begin.bracket.round.tex\"\n                },\n                {\n                    \"match\": \"(?<!\\\\\\\\)\\\\)\",\n                    \"name\": \"punctuation.math.end.bracket.round.tex\"\n                },\n                {\n                    \"match\": \"(([0-9]*[\\\\.][0-9]+)|[0-9]+)\",\n                    \"name\": \"constant.numeric.math.tex\"\n                },\n                {\n                    \"match\": \"[\\\\+\\\\*/-]|(?:(?<!\\\\^)\\\\^(?!\\\\^))|(?:(?<!\\\\_)\\\\_(?!\\\\_))\",\n                    \"name\": \"punctuation.math.operator.tex\"\n                }\n            ]\n        },\n        \"macro-general\": {\n            \"patterns\": [\n                {\n                    \"match\": \"(\\\\\\\\)_*[\\\\p{Alphabetic}@]+(?:_[\\\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.function.tex\"\n                        }\n                    },\n                    \"name\": \"support.class.general.latex3.tex\"\n                },\n                {\n                    \"match\": \"(\\\\.)[\\\\p{Alphabetic}@]+(?:_[\\\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.function.tex\"\n                        }\n                    },\n                    \"name\": \"support.class.general.latex3.tex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)(?:[,;]|(?:[\\\\p{Alphabetic}@]+))\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.function.tex\"\n                        }\n                    },\n                    \"name\": \"support.function.general.tex\"\n                },\n                {\n                    \"match\": \"(\\\\\\\\)[^a-zA-Z@]\",\n                    \"captures\": {\n                        \"1\": {\n                            \"name\": \"punctuation.definition.keyword.tex\"\n                        }\n                    },\n                    \"name\": \"constant.character.escape.tex\"\n                }\n            ]\n        }\n    },\n    \"scopeName\": \"text.tex\"\n}"
  },
  {
    "path": "syntax/bibtex-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"%\"\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"`\", \"'\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"`\", \"'\"],\n\t\t[\"$\", \"$\"]\n\t],\n\t\"folding\": {\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*%?\\\\s*region\\\\b\",\n\t\t\t\"end\": \"^\\\\s*%?\\\\s*endregion\\\\b\"\n\t\t}\n\t},\n\t\"wordPattern\": {\n\t\t\"pattern\": \"(__)|(\\\\*\\\\*)|(\\\\.\\\\.\\\\.)|(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n\t\t\"flags\": \"u\"\n\t}\n}\n"
  },
  {
    "path": "syntax/bibtex-style-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"%\"\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"\\\"\", \"\\\"\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"\\\"\", \"\\\"\"]\n\t],\n\t\"wordPattern\": \"(#-?\\\\d+|[A-Za-z_.][0-9A-Za-z_.]*\\\\$?)\",\n\t\"indentationRules\": {\n\t\t\"increaseIndentPattern\": \"^((?!%).)*(\\\\{[^}\\\"]*)$\",\n\t\t\"decreaseIndentPattern\": \"^\\\\s*(\\\\}|if\\\\$|while\\\\$)\"\n\t}\n}\n"
  },
  {
    "path": "syntax/cpp-bailout-license.txt",
    "content": "MIT License\n\nCopyright (c) 2019 Jeff Hykin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "syntax/cpp-grammar-bailout.tmLanguage.json",
    "content": "{\"information_for_contributors\":[\"This code was auto generated by a much-more-readable ruby file\",\"This file essentially an updated/improved fork of the atom syntax\",\"see https://github.com/jeff-hykin/better-cpp-syntax/blob/master\"],\"version\":\"\",\"name\":\"C++\",\"scopeName\":\"source.cpp.embedded.latex\",\"fileTypes\":[\"cc\",\"cpp\",\"cp\",\"cxx\",\"c++\",\"C\",\"h\",\"hh\",\"hpp\",\"h++\"],\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#constructor_root\"},{\"include\":\"#destructor_root\"},{\"include\":\"#function_definition\"},{\"include\":\"#simple_array_assignment\"},{\"include\":\"#operator_overload\"},{\"include\":\"#using_namespace\"},{\"include\":\"#type_alias\"},{\"include\":\"#using_name\"},{\"include\":\"#namespace_alias\"},{\"include\":\"#namespace_block\"},{\"include\":\"#extern_block\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"#misc_keywords\"},{\"include\":\"#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"#template_isolated_definition\"},{\"include\":\"#template_definition\"},{\"include\":\"#template_explicit_instantiation\"},{\"include\":\"#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#evaluation_context\"}],\"repository\":{\"access_control_keywords\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(((?:protected|private|public))(?:\\\\s+)?(:))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"storage.type.modifier.access.control.$4.cpp\"},\"4\":{},\"5\":{\"name\":\"punctuation.separator.colon.access.control.cpp\"}}},\"alignas_attribute\":{\"begin\":\"alignas\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"match\":\"(using)\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}}},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"alignas_operator\":{\"begin\":\"((?<!\\\\w)alignas(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"alignof_operator\":{\"begin\":\"((?<!\\\\w)alignof(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"assembly\":{\"begin\":\"(\\\\b(?:__asm__|asm)\\\\b)(?:\\\\s+)?((?:volatile)?)\",\"end\":\"(?!\\\\G)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.asm.cpp\"},\"2\":{\"name\":\"storage.modifier.cpp\"}},\"endCaptures\":{},\"name\":\"meta.asm.cpp\",\"patterns\":[{\"match\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\n|$)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#comments\"},{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.cpp\"}},\"patterns\":[{\"begin\":\"(R?)(\\\")\",\"end\":\"\\\"|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.encoding.cpp\"},\"2\":{\"name\":\"punctuation.definition.string.begin.assembly.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.assembly.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"contentName\":\"meta.embedded.assembly\",\"patterns\":[{\"include\":\"source.asm\"},{\"include\":\"source.x86\"},{\"include\":\"source.x86_64\"},{\"include\":\"source.arm\"},{\"include\":\"#backslash_escapes\"},{\"include\":\"#string_escaped_char\"}]},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.assembly.inner.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.assembly.inner.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"\\\\[((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.other.asm.label.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\":\",\"name\":\"punctuation.separator.delimiter.colon.assembly.cpp\"},{\"include\":\"#comments\"}]}]},\"assignment_operator\":{\"match\":\"\\\\=\",\"name\":\"keyword.operator.assignment.cpp\"},\"attributes_context\":{\"patterns\":[{\"include\":\"#cpp_attributes\"},{\"include\":\"#gcc_attributes\"},{\"include\":\"#ms_attributes\"},{\"include\":\"#alignas_attribute\"}]},\"backslash_escapes\":{\"match\":\"(?x)\\\\\\\\ (\\n\\\\\\\\\\t\\t\\t |\\n[abefnprtv'\\\"?]   |\\n[0-3][0-7]{,2}\\t |\\n[4-7]\\\\d?\\t\\t|\\nx[a-fA-F0-9]{,2} |\\nu[a-fA-F0-9]{,4} |\\nU[a-fA-F0-9]{,8} )\",\"name\":\"constant.character.escape\"},\"block\":{\"begin\":\"{\",\"end\":\"}|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.cpp\"}},\"name\":\"meta.block.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},\"block_comment\":{\"begin\":\"\\\\s*+(\\\\/\\\\*)\",\"end\":\"\\\\*\\\\/|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cpp\"}},\"name\":\"comment.block.cpp\",\"patterns\":[{\"match\":\"[^\\\\*]*\\\\n\"}],\"applyEndPatternLast\":1},\"builtin_storage_type_initilizer\":{\"begin\":\"\\\\s*+(?<!\\\\w)(?:(?:(?:((?:unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int))|((?:uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|id_t|uint)))|((?:pthread_rwlockattr_t|pthread_mutexattr_t|pthread_condattr_t|pthread_rwlock_t|pthread_mutex_t|pthread_cond_t|pthread_attr_t|pthread_once_t|pthread_key_t|pthread_t)))|([a-zA-Z_]\\\\w*_t))(?!\\\\w)\\\\s*+(?<!\\\\w)(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"2\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"3\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"4\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"5\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.initializer.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"case_statement\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)case(?!\\\\w))\",\"end\":\":|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.case.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"class_block\":{\"begin\":\"((?<!\\\\w)class(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"class_declare\":{\"match\":\"((?<!\\\\w)class(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.class.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.class.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"comma\":{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"comma_in_template_argument\":{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.template.argument.cpp\"},\"comments\":{\"patterns\":[{\"begin\":\"^(?:\\\\s+)?+(\\\\/\\\\/[!\\\\/]+)\",\"end\":\"(?<=\\\\n)(?<!\\\\\\\\\\\\n)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.documentation.cpp\"}},\"endCaptures\":{},\"name\":\"comment.line.double-slash.documentation.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\$|f\\\\[|f\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\$|\\\\#|<|>|%|\\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]param)(?:\\\\s*\\\\[((?:,?(?:\\\\s+)?(?:in|out)(?:\\\\s+)?)+)\\\\])?(\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:(,)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))*)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"match\":\"(\\\\/\\\\*[!*]+(?=\\\\s))(.+)([!*]*\\\\*\\\\/)\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"},\"2\":{\"patterns\":[{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\$|f\\\\[|f\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\$|\\\\#|<|>|%|\\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]param)(?:\\\\s*\\\\[((?:,?(?:\\\\s+)?(?:in|out)(?:\\\\s+)?)+)\\\\])?(\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:(,)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))*)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"name\":\"comment.block.documentation.cpp\"},{\"begin\":\"(?:\\\\s+)?+\\\\/\\\\*[!*]+(?:(?:\\\\n|$)|(?=\\\\s))\",\"end\":\"[!*]*\\\\*\\\\/|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.documentation.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.documentation.cpp\"}},\"name\":\"comment.block.documentation.cpp\",\"patterns\":[{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:callergraph|callgraph|else|endif|f\\\\$|f\\\\[|f\\\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\\\$|\\\\#|<|>|%|\\\"|\\\\.|=|::|\\\\||\\\\-\\\\-|\\\\-\\\\-\\\\-)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|em|e))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.italic.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]b)\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.bold.doxygen.cpp\"}}},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:c|p))\\\\s+(\\\\S+)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"name\":\"markup.inline.raw.string.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"((?<=[\\\\s*!\\\\/])[\\\\\\\\@]param)(?:\\\\s*\\\\[((?:,?(?:\\\\s+)?(?:in|out)(?:\\\\s+)?)+)\\\\])?(\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:(,)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))*)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.doxygen.cpp\"},\"2\":{\"patterns\":[{\"match\":\"in|out\",\"name\":\"keyword.other.parameter.direction.$0.cpp\"}]},\"3\":{\"patterns\":[{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"variable.parameter.cpp\"},{\"match\":\",\",\"name\":\"punctuation.cpp\"}]},\"4\":{\"name\":\"variable.parameter.cpp\"},\"5\":{\"name\":\"punctuation.cpp\"},\"6\":{\"name\":\"variable.parameter.cpp\"}}},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?<=[\\\\s*!\\\\/])[\\\\\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\\\b(?:\\\\{[^}]*\\\\})?\",\"name\":\"storage.type.class.doxygen.cpp\"},{\"match\":\"(?:\\\\b[A-Z]+:|@[a-z_]+:)\",\"name\":\"storage.type.class.gtkdoc.cpp\"}]},{\"include\":\"#emacs_file_banner\"},{\"include\":\"#block_comment\"},{\"include\":\"#line_comment\"},{\"include\":\"#invalid_comment_end\"}]},\"constructor_bracket_call\":{\"match\":\"(?!class|struct|union|enum|explicit|new|delete|operator|template|throw|decltype|typename|override|final)\\\\b(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\{)\",\"captures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"15\":{\"name\":\"variable.lower-case.cpp variable.other.object.construction.cpp\"},\"16\":{\"name\":\"variable.snake-case.cpp variable.other.object.construction.cpp\"},\"17\":{\"name\":\"variable.camel-case.cpp variable.other.object.construction.cpp\"},\"18\":{\"name\":\"variable.upper-case.cpp variable.other.object.construction.cpp\"},\"19\":{\"name\":\"variable.other.unknown.$19.cpp\"},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"constructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=\\\\())\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#functional_specifiers_pre_parameters\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}}},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"end\":\"(?=\\\\{)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(\\\\{)\",\"end\":\"\\\\}|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"constructor_root\":{\"begin\":\"\\\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<8>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))::((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\10)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\())\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.constructor.cpp\"},\"1\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.constructor.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"7\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"8\":{},\"9\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.constructor.cpp\"},{\"match\":\"(?<=:)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.constructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp\"}]},\"10\":{},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.special.constructor.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.head.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp\"}}},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"begin\":\":\",\"end\":\"(?=\\\\{)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.separator.initializers.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"3\":{},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(\\\\{)\",\"end\":\"\\\\}|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.call.initializer.cpp\"},\"2\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp\"}},\"contentName\":\"meta.parameter.initialization\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.cpp\"},{\"include\":\"#comments\"}]},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.constructor.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.constructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.constructor\",\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp\"}},\"name\":\"meta.body.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.constructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"control_flow_keywords\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:co_return|co_yield|co_await|continue|default|switch|return|catch|while|throw|break|case|goto|else|for|try|if|do)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.control.$3.cpp\"}}},\"cpp_attributes\":{\"begin\":\"\\\\[\\\\[\",\"end\":\"\\\\]\\\\]|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"match\":\"(using)\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}}},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"curly_initializer\":{\"begin\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\{)\",\"end\":\"\\\\}|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"name\":\"punctuation.section.arguments.begin.bracket.curly.initializer.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.curly.initializer.cpp\"}},\"name\":\"meta.initialization.cpp\",\"patterns\":[{\"begin\":\"(\\\\.)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\",\"end\":\"(?:(,)|(?=\\\\}))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.accessor.initializer.cpp variable.parameter.initializer.cpp\"},\"2\":{\"name\":\"variable.parameter.initializer.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.initialization.parameter.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"include\":\"#evaluation_context\"},{\"include\":\"#comma\"}]},\"d9bc4796b0b_module_import\":{\"match\":\"^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((import))(?:\\\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/)))|((\\\\\\\")[^\\\\\\\"]*(\\\\\\\"?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/))))|(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;)))))|((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;))))(?:\\\\s+)?(;?)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.control.directive.import.cpp\"},\"5\":{\"name\":\"string.quoted.other.lt-gt.include.cpp\"},\"6\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"7\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"name\":\"string.quoted.double.include.cpp\"},\"11\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"12\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"15\":{\"name\":\"entity.name.other.preprocessor.macro.include.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"22\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.preprocessor.import.cpp\"},\"decltype\":{\"begin\":\"((?<!\\\\w)decltype(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"decltype_specifier\":{\"begin\":\"((?<!\\\\w)decltype(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.decltype.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.decltype.cpp\"}},\"contentName\":\"meta.arguments.decltype\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"default_statement\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)default(?!\\\\w))\",\"end\":\":|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.default.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.separator.colon.case.default.cpp\"}},\"name\":\"meta.conditional.case.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"destructor_inline\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*)(~(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=\\\\())\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#functional_specifiers_pre_parameters\"}]},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}}},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"patterns\":[]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"destructor_root\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(((?>(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))::((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))~(?:\\\\14)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\())\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.member.destructor.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.destructor.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"11\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?=:)\",\"name\":\"entity.name.type.destructor.cpp\"},{\"match\":\"(?<=:)~(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.function.definition.special.member.destructor.cpp\"},{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp\"}]},\"14\":{},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"24\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"25\":{\"name\":\"comment.block.cpp\"},\"26\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.head.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp\"}}},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.member.destructor\",\"patterns\":[]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp\"}},\"name\":\"meta.body.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.member.destructor.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"diagnostic\":{\"begin\":\"(^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?((?:error|warning)))\\\\b(?:\\\\s+)?\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.diagnostic.$7.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{}},\"endCaptures\":{},\"name\":\"meta.preprocessor.diagnostic.$reference(directive).cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"\\\"\",\"end\":\"(?:(\\\")|(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$)))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"'\",\"end\":\"(?:(')|(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$)))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"[^'\\\"]\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"string.unquoted.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"},{\"include\":\"#comments\"}]}]},\"emacs_file_banner\":{\"match\":\"(?:(^(?:\\\\s+)?((\\\\/\\\\/)(?:\\\\s+)?((?:[#;\\\\/=*C~]+)++(?![#;\\\\/=*C~]))(?:\\\\s+)?.+(?:\\\\s+)?(?:\\\\4)(?:\\\\s+)?(?:\\\\n|$)))|(^(?:\\\\s+)?((\\\\/\\\\*)(?:\\\\s+)?((?:[#;\\\\/=*C~]+)++(?![#;\\\\/=*C~]))(?:\\\\s+)?.+(?:\\\\s+)?(?:\\\\8)(?:\\\\s+)?\\\\*\\\\/)))\",\"captures\":{\"1\":{\"name\":\"meta.toc-list.banner.double-slash.cpp\"},\"2\":{\"name\":\"comment.line.double-slash.cpp\"},\"3\":{\"name\":\"punctuation.definition.comment.cpp\"},\"4\":{\"name\":\"meta.banner.character.cpp\"},\"5\":{\"name\":\"meta.toc-list.banner.block.cpp\"},\"6\":{\"name\":\"comment.line.banner.cpp\"},\"7\":{\"name\":\"punctuation.definition.comment.cpp\"},\"8\":{\"name\":\"meta.banner.character.cpp\"}}},\"empty_square_brackets\":{\"name\":\"storage.modifier.array.bracket.square\",\"match\":\"(?<!delete)\\\\[(?:\\\\s+)?\\\\]\"},\"enum_block\":{\"begin\":\"((?<!\\\\w)enum(?!\\\\w))(?:\\\\s+(class|struct))?(?:(?:\\\\s+|((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\))))|(?={))(?:\\\\s+)?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)(?:(?:\\\\s+)?(:)(?:\\\\s+)?(?:((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::))?(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))?\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.enum.cpp\"},\"1\":{\"name\":\"storage.type.enum.cpp\"},\"2\":{\"name\":\"storage.type.enum.enum-key.$2.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"name\":\"punctuation.separator.colon.type-specifier.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"7\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"name\":\"entity.name.scope-resolution.cpp\"},\"11\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"12\":{},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"17\":{\"name\":\"storage.type.integral.$17.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.enum.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.enum.cpp\"}},\"name\":\"meta.head.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.enum.cpp\"}},\"name\":\"meta.body.enum.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#enumerator_list\"},{\"include\":\"#comments\"},{\"include\":\"#comma\"},{\"include\":\"#semicolon\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.enum.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"enum_declare\":{\"match\":\"((?<!\\\\w)enum(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.enum.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"enumerator_list\":{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:\\\\s+)?((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?(?:\\\\s+)?(?:(\\\\=)(?:\\\\s+)?(.+?)(?:\\\\s+)?)?(?:(?:((?:[,;](?!')|\\\\n))|(?=\\\\}[^']))|(?=(?:\\\\/\\\\/|\\\\/\\\\*)))\",\"captures\":{\"1\":{\"name\":\"variable.other.enummember.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"5\":{\"patterns\":[{\"include\":\"#comma\"},{\"include\":\"#semicolon\"}]}},\"name\":\"meta.enum.definition.cpp\"},\"evaluation_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"#memory_operators\"},{\"include\":\"#wordlike_operators\"},{\"include\":\"#type_casting_operators\"},{\"include\":\"#control_flow_keywords\"},{\"include\":\"#exception_keywords\"},{\"include\":\"#the_this_keyword\"},{\"include\":\"#language_constants\"},{\"include\":\"#constructor_bracket_call\"},{\"include\":\"#simple_constructor_call\"},{\"include\":\"#simple_array_assignment\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"#semicolon\"},{\"include\":\"#comma\"},{\"include\":\"#unknown_variable\"}]},\"ever_present_context\":{\"patterns\":[{\"include\":\"#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"#macro\"},{\"include\":\"#preprocessor_conditional_standalone\"},{\"include\":\"#macro_argument\"},{\"include\":\"#comments\"},{\"include\":\"#line_continuation_character\"}]},\"exception_keywords\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:throw|catch|try)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.control.exception.$3.cpp\"}}},\"extern_block\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(extern)(?=\\\\s*\\\\\\\")\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.extern.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.type.extern.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.extern.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.extern.cpp\"}},\"name\":\"meta.head.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.extern.cpp\"}},\"name\":\"meta.body.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.extern.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"include\":\"$self\"}]},\"function_body_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#simple_array_assignment\"},{\"include\":\"#using_namespace\"},{\"include\":\"#type_alias\"},{\"include\":\"#using_name\"},{\"include\":\"#namespace_alias\"},{\"include\":\"#typedef_class\"},{\"include\":\"#typedef_struct\"},{\"include\":\"#typedef_union\"},{\"include\":\"#misc_keywords\"},{\"include\":\"#standard_declares\"},{\"include\":\"#class_block\"},{\"include\":\"#struct_block\"},{\"include\":\"#union_block\"},{\"include\":\"#enum_block\"},{\"include\":\"#access_control_keywords\"},{\"include\":\"#block\"},{\"include\":\"#static_assert\"},{\"include\":\"#assembly\"},{\"include\":\"#function_pointer\"},{\"include\":\"#over_qualified_types\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#switch_statement\"},{\"include\":\"#goto_statement\"},{\"include\":\"#evaluation_context\"},{\"include\":\"#label\"}]},\"function_call\":{\"patterns\":[{\"begin\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)([A-Z][A-Z_0-9]*)\\\\b(?<!\\\\Wreinterpret_cast|^reinterpret_cast|\\\\Watomic_noexcept|^atomic_noexcept|\\\\Wuint_least16_t|^uint_least16_t|\\\\Wuint_least32_t|^uint_least32_t|\\\\Wuint_least64_t|^uint_least64_t|\\\\Watomic_cancel|^atomic_cancel|\\\\Watomic_commit|^atomic_commit|\\\\Wuint_least8_t|^uint_least8_t|\\\\Wuint_fast16_t|^uint_fast16_t|\\\\Wuint_fast32_t|^uint_fast32_t|\\\\Wint_least16_t|^int_least16_t|\\\\Wint_least32_t|^int_least32_t|\\\\Wint_least64_t|^int_least64_t|\\\\Wuint_fast64_t|^uint_fast64_t|\\\\Wthread_local|^thread_local|\\\\Wint_fast16_t|^int_fast16_t|\\\\Wint_fast32_t|^int_fast32_t|\\\\Wint_fast64_t|^int_fast64_t|\\\\Wsynchronized|^synchronized|\\\\Wuint_fast8_t|^uint_fast8_t|\\\\Wdynamic_cast|^dynamic_cast|\\\\Wint_least8_t|^int_least8_t|\\\\Wint_fast8_t|^int_fast8_t|\\\\Wstatic_cast|^static_cast|\\\\Wsuseconds_t|^suseconds_t|\\\\Wconst_cast|^const_cast|\\\\Wuseconds_t|^useconds_t|\\\\Wconstinit|^constinit|\\\\Wco_return|^co_return|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wconstexpr|^constexpr|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wprotected|^protected|\\\\Wnamespace|^namespace|\\\\Wblksize_t|^blksize_t|\\\\Wco_return|^co_return|\\\\Win_addr_t|^in_addr_t|\\\\Win_port_t|^in_port_t|\\\\Wuintptr_t|^uintptr_t|\\\\Wtemplate|^template|\\\\Wnoexcept|^noexcept|\\\\Wnoexcept|^noexcept|\\\\Wcontinue|^continue|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wunsigned|^unsigned|\\\\Wu_quad_t|^u_quad_t|\\\\Wblkcnt_t|^blkcnt_t|\\\\Wuint16_t|^uint16_t|\\\\Wuint32_t|^uint32_t|\\\\Wuint64_t|^uint64_t|\\\\Wintptr_t|^intptr_t|\\\\Wintmax_t|^intmax_t|\\\\Wintmax_t|^intmax_t|\\\\Wvolatile|^volatile|\\\\Wregister|^register|\\\\Wrestrict|^restrict|\\\\Wexplicit|^explicit|\\\\Wvolatile|^volatile|\\\\Wnoexcept|^noexcept|\\\\Woperator|^operator|\\\\Wdecltype|^decltype|\\\\Wtypename|^typename|\\\\Wrequires|^requires|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wreflexpr|^reflexpr|\\\\Wswblk_t|^swblk_t|\\\\Wvirtual|^virtual|\\\\Wssize_t|^ssize_t|\\\\Wconcept|^concept|\\\\Wmutable|^mutable|\\\\Wfixpt_t|^fixpt_t|\\\\Wint16_t|^int16_t|\\\\Wint32_t|^int32_t|\\\\Wint64_t|^int64_t|\\\\Wuint8_t|^uint8_t|\\\\Wtypedef|^typedef|\\\\Wdaddr_t|^daddr_t|\\\\Wcaddr_t|^caddr_t|\\\\Wqaddr_t|^qaddr_t|\\\\Wdefault|^default|\\\\Wnlink_t|^nlink_t|\\\\Wsegsz_t|^segsz_t|\\\\Wu_short|^u_short|\\\\Wwchar_t|^wchar_t|\\\\Wprivate|^private|\\\\W__asm__|^__asm__|\\\\Walignas|^alignas|\\\\Walignof|^alignof|\\\\Wmutable|^mutable|\\\\Wnullptr|^nullptr|\\\\Wclock_t|^clock_t|\\\\Wmode_t|^mode_t|\\\\Wpublic|^public|\\\\Wsize_t|^size_t|\\\\Wdouble|^double|\\\\Wquad_t|^quad_t|\\\\Wstatic|^static|\\\\Wtime_t|^time_t|\\\\Wmodule|^module|\\\\Wimport|^import|\\\\Wexport|^export|\\\\Wextern|^extern|\\\\Winline|^inline|\\\\Wxor_eq|^xor_eq|\\\\Wand_eq|^and_eq|\\\\Wreturn|^return|\\\\Wfriend|^friend|\\\\Wnot_eq|^not_eq|\\\\Wsigned|^signed|\\\\Wstruct|^struct|\\\\Wint8_t|^int8_t|\\\\Wushort|^ushort|\\\\Wswitch|^switch|\\\\Wu_long|^u_long|\\\\Wtypeid|^typeid|\\\\Wu_char|^u_char|\\\\Wsizeof|^sizeof|\\\\Wbitand|^bitand|\\\\Wdelete|^delete|\\\\Wino_t|^ino_t|\\\\Wkey_t|^key_t|\\\\Wpid_t|^pid_t|\\\\Woff_t|^off_t|\\\\Wuid_t|^uid_t|\\\\Wshort|^short|\\\\Wbreak|^break|\\\\Wcatch|^catch|\\\\Wcompl|^compl|\\\\Wwhile|^while|\\\\Wfalse|^false|\\\\Wclass|^class|\\\\Wunion|^union|\\\\Wconst|^const|\\\\Wor_eq|^or_eq|\\\\Wconst|^const|\\\\Wthrow|^throw|\\\\Wbitor|^bitor|\\\\Wu_int|^u_int|\\\\Wusing|^using|\\\\Wdiv_t|^div_t|\\\\Wdev_t|^dev_t|\\\\Wgid_t|^gid_t|\\\\Wfloat|^float|\\\\Wlong|^long|\\\\Wgoto|^goto|\\\\Wuint|^uint|\\\\Wid_t|^id_t|\\\\Wcase|^case|\\\\Wauto|^auto|\\\\Wvoid|^void|\\\\Wenum|^enum|\\\\Wtrue|^true|\\\\Wchar|^char|\\\\Wid_t|^id_t|\\\\WNULL|^NULL|\\\\Wthis|^this|\\\\Wbool|^bool|\\\\Welse|^else|\\\\Wfor|^for|\\\\Wnew|^new|\\\\Wnot|^not|\\\\Wxor|^xor|\\\\Wand|^and|\\\\Wasm|^asm|\\\\Wint|^int|\\\\Wtry|^try|\\\\Wdo|^do|\\\\Wif|^if|\\\\Wor|^or)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.function.call.upper-case.cpp entity.name.function.call.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"11\":{},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.cpp punctuation.section.arguments.begin.bracket.round.function.call.upper-case.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.cpp punctuation.section.arguments.begin.bracket.round.function.call.upper-case.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?<!\\\\Wreinterpret_cast|^reinterpret_cast|\\\\Watomic_noexcept|^atomic_noexcept|\\\\Wuint_least16_t|^uint_least16_t|\\\\Wuint_least32_t|^uint_least32_t|\\\\Wuint_least64_t|^uint_least64_t|\\\\Watomic_cancel|^atomic_cancel|\\\\Watomic_commit|^atomic_commit|\\\\Wuint_least8_t|^uint_least8_t|\\\\Wuint_fast16_t|^uint_fast16_t|\\\\Wuint_fast32_t|^uint_fast32_t|\\\\Wint_least16_t|^int_least16_t|\\\\Wint_least32_t|^int_least32_t|\\\\Wint_least64_t|^int_least64_t|\\\\Wuint_fast64_t|^uint_fast64_t|\\\\Wthread_local|^thread_local|\\\\Wint_fast16_t|^int_fast16_t|\\\\Wint_fast32_t|^int_fast32_t|\\\\Wint_fast64_t|^int_fast64_t|\\\\Wsynchronized|^synchronized|\\\\Wuint_fast8_t|^uint_fast8_t|\\\\Wdynamic_cast|^dynamic_cast|\\\\Wint_least8_t|^int_least8_t|\\\\Wint_fast8_t|^int_fast8_t|\\\\Wstatic_cast|^static_cast|\\\\Wsuseconds_t|^suseconds_t|\\\\Wconst_cast|^const_cast|\\\\Wuseconds_t|^useconds_t|\\\\Wconstinit|^constinit|\\\\Wco_return|^co_return|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wconstexpr|^constexpr|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wprotected|^protected|\\\\Wnamespace|^namespace|\\\\Wblksize_t|^blksize_t|\\\\Wco_return|^co_return|\\\\Win_addr_t|^in_addr_t|\\\\Win_port_t|^in_port_t|\\\\Wuintptr_t|^uintptr_t|\\\\Wtemplate|^template|\\\\Wnoexcept|^noexcept|\\\\Wnoexcept|^noexcept|\\\\Wcontinue|^continue|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wunsigned|^unsigned|\\\\Wu_quad_t|^u_quad_t|\\\\Wblkcnt_t|^blkcnt_t|\\\\Wuint16_t|^uint16_t|\\\\Wuint32_t|^uint32_t|\\\\Wuint64_t|^uint64_t|\\\\Wintptr_t|^intptr_t|\\\\Wintmax_t|^intmax_t|\\\\Wintmax_t|^intmax_t|\\\\Wvolatile|^volatile|\\\\Wregister|^register|\\\\Wrestrict|^restrict|\\\\Wexplicit|^explicit|\\\\Wvolatile|^volatile|\\\\Wnoexcept|^noexcept|\\\\Woperator|^operator|\\\\Wdecltype|^decltype|\\\\Wtypename|^typename|\\\\Wrequires|^requires|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wreflexpr|^reflexpr|\\\\Wswblk_t|^swblk_t|\\\\Wvirtual|^virtual|\\\\Wssize_t|^ssize_t|\\\\Wconcept|^concept|\\\\Wmutable|^mutable|\\\\Wfixpt_t|^fixpt_t|\\\\Wint16_t|^int16_t|\\\\Wint32_t|^int32_t|\\\\Wint64_t|^int64_t|\\\\Wuint8_t|^uint8_t|\\\\Wtypedef|^typedef|\\\\Wdaddr_t|^daddr_t|\\\\Wcaddr_t|^caddr_t|\\\\Wqaddr_t|^qaddr_t|\\\\Wdefault|^default|\\\\Wnlink_t|^nlink_t|\\\\Wsegsz_t|^segsz_t|\\\\Wu_short|^u_short|\\\\Wwchar_t|^wchar_t|\\\\Wprivate|^private|\\\\W__asm__|^__asm__|\\\\Walignas|^alignas|\\\\Walignof|^alignof|\\\\Wmutable|^mutable|\\\\Wnullptr|^nullptr|\\\\Wclock_t|^clock_t|\\\\Wmode_t|^mode_t|\\\\Wpublic|^public|\\\\Wsize_t|^size_t|\\\\Wdouble|^double|\\\\Wquad_t|^quad_t|\\\\Wstatic|^static|\\\\Wtime_t|^time_t|\\\\Wmodule|^module|\\\\Wimport|^import|\\\\Wexport|^export|\\\\Wextern|^extern|\\\\Winline|^inline|\\\\Wxor_eq|^xor_eq|\\\\Wand_eq|^and_eq|\\\\Wreturn|^return|\\\\Wfriend|^friend|\\\\Wnot_eq|^not_eq|\\\\Wsigned|^signed|\\\\Wstruct|^struct|\\\\Wint8_t|^int8_t|\\\\Wushort|^ushort|\\\\Wswitch|^switch|\\\\Wu_long|^u_long|\\\\Wtypeid|^typeid|\\\\Wu_char|^u_char|\\\\Wsizeof|^sizeof|\\\\Wbitand|^bitand|\\\\Wdelete|^delete|\\\\Wino_t|^ino_t|\\\\Wkey_t|^key_t|\\\\Wpid_t|^pid_t|\\\\Woff_t|^off_t|\\\\Wuid_t|^uid_t|\\\\Wshort|^short|\\\\Wbreak|^break|\\\\Wcatch|^catch|\\\\Wcompl|^compl|\\\\Wwhile|^while|\\\\Wfalse|^false|\\\\Wclass|^class|\\\\Wunion|^union|\\\\Wconst|^const|\\\\Wor_eq|^or_eq|\\\\Wconst|^const|\\\\Wthrow|^throw|\\\\Wbitor|^bitor|\\\\Wu_int|^u_int|\\\\Wusing|^using|\\\\Wdiv_t|^div_t|\\\\Wdev_t|^dev_t|\\\\Wgid_t|^gid_t|\\\\Wfloat|^float|\\\\Wlong|^long|\\\\Wgoto|^goto|\\\\Wuint|^uint|\\\\Wid_t|^id_t|\\\\Wcase|^case|\\\\Wauto|^auto|\\\\Wvoid|^void|\\\\Wenum|^enum|\\\\Wtrue|^true|\\\\Wchar|^char|\\\\Wid_t|^id_t|\\\\WNULL|^NULL|\\\\Wthis|^this|\\\\Wbool|^bool|\\\\Welse|^else|\\\\Wfor|^for|\\\\Wnew|^new|\\\\Wnot|^not|\\\\Wxor|^xor|\\\\Wand|^and|\\\\Wasm|^asm|\\\\Wint|^int|\\\\Wtry|^try|\\\\Wdo|^do|\\\\Wif|^if|\\\\Wor|^or)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.function.call.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"11\":{},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.call.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.call.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]}]},\"function_definition\":{\"begin\":\"(?:(?:^|\\\\G|(?<=;|\\\\}))|(?<=>|\\\\*\\\\/))\\\\s*+(?:((?<!\\\\w)template(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?<!\\\\w)(?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)|(?:thread_local|volatile|register|restrict|static|extern|const))(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*)(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<52>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<52>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<52>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\b(?<!\\\\Wreinterpret_cast|^reinterpret_cast|\\\\Watomic_noexcept|^atomic_noexcept|\\\\Wuint_least16_t|^uint_least16_t|\\\\Wuint_least32_t|^uint_least32_t|\\\\Wuint_least64_t|^uint_least64_t|\\\\Watomic_cancel|^atomic_cancel|\\\\Watomic_commit|^atomic_commit|\\\\Wuint_least8_t|^uint_least8_t|\\\\Wuint_fast16_t|^uint_fast16_t|\\\\Wuint_fast32_t|^uint_fast32_t|\\\\Wint_least16_t|^int_least16_t|\\\\Wint_least32_t|^int_least32_t|\\\\Wint_least64_t|^int_least64_t|\\\\Wuint_fast64_t|^uint_fast64_t|\\\\Wthread_local|^thread_local|\\\\Wint_fast16_t|^int_fast16_t|\\\\Wint_fast32_t|^int_fast32_t|\\\\Wint_fast64_t|^int_fast64_t|\\\\Wsynchronized|^synchronized|\\\\Wuint_fast8_t|^uint_fast8_t|\\\\Wdynamic_cast|^dynamic_cast|\\\\Wint_least8_t|^int_least8_t|\\\\Wint_fast8_t|^int_fast8_t|\\\\Wstatic_cast|^static_cast|\\\\Wsuseconds_t|^suseconds_t|\\\\Wconst_cast|^const_cast|\\\\Wuseconds_t|^useconds_t|\\\\Wconstinit|^constinit|\\\\Wco_return|^co_return|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wuintmax_t|^uintmax_t|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wconstexpr|^constexpr|\\\\Wconstexpr|^constexpr|\\\\Wconsteval|^consteval|\\\\Wprotected|^protected|\\\\Wnamespace|^namespace|\\\\Wblksize_t|^blksize_t|\\\\Wco_return|^co_return|\\\\Win_addr_t|^in_addr_t|\\\\Win_port_t|^in_port_t|\\\\Wuintptr_t|^uintptr_t|\\\\Wtemplate|^template|\\\\Wnoexcept|^noexcept|\\\\Wnoexcept|^noexcept|\\\\Wcontinue|^continue|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wunsigned|^unsigned|\\\\Wu_quad_t|^u_quad_t|\\\\Wblkcnt_t|^blkcnt_t|\\\\Wuint16_t|^uint16_t|\\\\Wuint32_t|^uint32_t|\\\\Wuint64_t|^uint64_t|\\\\Wintptr_t|^intptr_t|\\\\Wintmax_t|^intmax_t|\\\\Wintmax_t|^intmax_t|\\\\Wvolatile|^volatile|\\\\Wregister|^register|\\\\Wrestrict|^restrict|\\\\Wexplicit|^explicit|\\\\Wvolatile|^volatile|\\\\Wnoexcept|^noexcept|\\\\Woperator|^operator|\\\\Wdecltype|^decltype|\\\\Wtypename|^typename|\\\\Wrequires|^requires|\\\\Wco_await|^co_await|\\\\Wco_yield|^co_yield|\\\\Wreflexpr|^reflexpr|\\\\Wswblk_t|^swblk_t|\\\\Wvirtual|^virtual|\\\\Wssize_t|^ssize_t|\\\\Wconcept|^concept|\\\\Wmutable|^mutable|\\\\Wfixpt_t|^fixpt_t|\\\\Wint16_t|^int16_t|\\\\Wint32_t|^int32_t|\\\\Wint64_t|^int64_t|\\\\Wuint8_t|^uint8_t|\\\\Wtypedef|^typedef|\\\\Wdaddr_t|^daddr_t|\\\\Wcaddr_t|^caddr_t|\\\\Wqaddr_t|^qaddr_t|\\\\Wdefault|^default|\\\\Wnlink_t|^nlink_t|\\\\Wsegsz_t|^segsz_t|\\\\Wu_short|^u_short|\\\\Wwchar_t|^wchar_t|\\\\Wprivate|^private|\\\\W__asm__|^__asm__|\\\\Walignas|^alignas|\\\\Walignof|^alignof|\\\\Wmutable|^mutable|\\\\Wnullptr|^nullptr|\\\\Wclock_t|^clock_t|\\\\Wmode_t|^mode_t|\\\\Wpublic|^public|\\\\Wsize_t|^size_t|\\\\Wdouble|^double|\\\\Wquad_t|^quad_t|\\\\Wstatic|^static|\\\\Wtime_t|^time_t|\\\\Wmodule|^module|\\\\Wimport|^import|\\\\Wexport|^export|\\\\Wextern|^extern|\\\\Winline|^inline|\\\\Wxor_eq|^xor_eq|\\\\Wand_eq|^and_eq|\\\\Wreturn|^return|\\\\Wfriend|^friend|\\\\Wnot_eq|^not_eq|\\\\Wsigned|^signed|\\\\Wstruct|^struct|\\\\Wint8_t|^int8_t|\\\\Wushort|^ushort|\\\\Wswitch|^switch|\\\\Wu_long|^u_long|\\\\Wtypeid|^typeid|\\\\Wu_char|^u_char|\\\\Wsizeof|^sizeof|\\\\Wbitand|^bitand|\\\\Wdelete|^delete|\\\\Wino_t|^ino_t|\\\\Wkey_t|^key_t|\\\\Wpid_t|^pid_t|\\\\Woff_t|^off_t|\\\\Wuid_t|^uid_t|\\\\Wshort|^short|\\\\Wbreak|^break|\\\\Wcatch|^catch|\\\\Wcompl|^compl|\\\\Wwhile|^while|\\\\Wfalse|^false|\\\\Wclass|^class|\\\\Wunion|^union|\\\\Wconst|^const|\\\\Wor_eq|^or_eq|\\\\Wconst|^const|\\\\Wthrow|^throw|\\\\Wbitor|^bitor|\\\\Wu_int|^u_int|\\\\Wusing|^using|\\\\Wdiv_t|^div_t|\\\\Wdev_t|^dev_t|\\\\Wgid_t|^gid_t|\\\\Wfloat|^float|\\\\Wlong|^long|\\\\Wgoto|^goto|\\\\Wuint|^uint|\\\\Wid_t|^id_t|\\\\Wcase|^case|\\\\Wauto|^auto|\\\\Wvoid|^void|\\\\Wenum|^enum|\\\\Wtrue|^true|\\\\Wchar|^char|\\\\Wid_t|^id_t|\\\\WNULL|^NULL|\\\\Wthis|^this|\\\\Wbool|^bool|\\\\Welse|^else|\\\\Wfor|^for|\\\\Wnew|^new|\\\\Wnot|^not|\\\\Wxor|^xor|\\\\Wand|^and|\\\\Wasm|^asm|\\\\Wint|^int|\\\\Wtry|^try|\\\\Wdo|^do|\\\\Wif|^if|\\\\Wor|^or)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\()\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.cpp\"},\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"match\":\"((?<!\\\\w)(?:(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)|(?:thread_local|volatile|register|restrict|static|extern|const))(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.modifier.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"name\":\"storage.modifier.$8.cpp\"},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"11\":{\"name\":\"comment.block.cpp\"},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"13\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"17\":{\"name\":\"comment.block.cpp\"},\"18\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"24\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"25\":{},\"26\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"28\":{\"name\":\"comment.block.cpp\"},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"30\":{},\"31\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"32\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"37\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"38\":{\"name\":\"comment.block.cpp\"},\"39\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"40\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"41\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"42\":{\"name\":\"comment.block.cpp\"},\"43\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"44\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"45\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"46\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"47\":{\"name\":\"comment.block.cpp\"},\"48\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"49\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"50\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"51\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"52\":{},\"53\":{\"name\":\"entity.name.function.definition.cpp\"},\"54\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"55\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"56\":{\"name\":\"comment.block.cpp\"},\"57\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.head.function.definition.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.cpp\"}},\"contentName\":\"meta.function.definition.parameters\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter_or_maybe_value\"},{\"include\":\"#comma\"},{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?<=^|\\\\))(?:\\\\s+)?(->)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<23>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<23>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.function.return-type.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"7\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"10\":{\"name\":\"comment.block.cpp\"},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"17\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"18\":{},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"21\":{\"name\":\"comment.block.cpp\"},\"22\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"23\":{}}},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.cpp\"}},\"name\":\"meta.body.function.definition.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"function_parameter_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#parameter\"},{\"include\":\"#comma\"}]},\"function_pointer\":{\"begin\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()\",\"end\":\"(\\\\))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w)))+(?=\\\\s*(?:\\\\{|;|\\\\n|\\\\r|=))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=[{=,);>]|\\\\n)(?!\\\\()|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.other.definition.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$10.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"function_pointer_parameter\":{\"begin\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()\",\"end\":\"(\\\\))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w)))+(?=\\\\s*(?:\\\\{|;|\\\\n|\\\\r|=))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=[{=,);>]|\\\\n)(?!\\\\()|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"variable.parameter.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$10.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]},\"functional_specifiers_pre_parameters\":{\"match\":\"(?<!\\\\w)(?:constexpr|consteval|explicit|mutable|virtual|inline|friend)(?!\\\\w)\",\"name\":\"storage.modifier.specifier.functional.pre-parameters.$0.cpp\"},\"gcc_attributes\":{\"begin\":\"__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(\",\"end\":\"\\\\)\\\\s*\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"match\":\"(using)\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}}},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"goto_statement\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)goto(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.control.goto.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"6\":{\"name\":\"entity.name.label.call.cpp\"}}},\"identifier\":{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\"},\"include\":{\"match\":\"^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((#)(?:\\\\s+)?((?:include|include_next))\\\\b)(?:\\\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/)))|((\\\\\\\")[^\\\\\\\"]*(\\\\\\\"?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=\\\\/\\\\/))))|(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\.(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;)))))|((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:\\\\n|$)|(?=(?:\\\\/\\\\/|;))))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.control.directive.$5.cpp\"},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"6\":{\"name\":\"string.quoted.other.lt-gt.include.cpp\"},\"7\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"8\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"11\":{\"name\":\"string.quoted.double.include.cpp\"},\"12\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"13\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"16\":{\"name\":\"entity.name.other.preprocessor.macro.include.cpp\"},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"21\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"22\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}},\"name\":\"meta.preprocessor.include.cpp\"},\"inheritance_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"match\":\",\",\"name\":\"punctuation.separator.delimiter.comma.inheritance.cpp\"},{\"match\":\"(?<!\\\\w)(?:protected|private|public)(?!\\\\w)\",\"name\":\"storage.type.modifier.access.$0.cpp\"},{\"match\":\"(?<!\\\\w)virtual(?!\\\\w)\",\"name\":\"storage.type.modifier.virtual.cpp\"},{\"match\":\"(?<=protected|virtual|private|public|,|:)(?:\\\\s+)?(?!(?:(?:protected|private|public)|virtual))(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))\",\"captures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{}}}]},\"inline_builtin_storage_type\":{\"match\":\"\\\\s*+(?<!\\\\w)(?:(?:(?:((?:unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int))|((?:uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|id_t|uint)))|((?:pthread_rwlockattr_t|pthread_mutexattr_t|pthread_condattr_t|pthread_rwlock_t|pthread_mutex_t|pthread_cond_t|pthread_attr_t|pthread_once_t|pthread_key_t|pthread_t)))|([a-zA-Z_]\\\\w*_t))(?!\\\\w)\",\"captures\":{\"1\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"2\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"3\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"4\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"}}},\"inline_comment\":{\"match\":\"(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},\"invalid_comment_end\":{\"match\":\"\\\\*\\\\/\",\"name\":\"invalid.illegal.unexpected.punctuation.definition.comment.end.cpp\"},\"label\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\b(?<!case|default)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:)(?!:)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"entity.name.label.cpp\"},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"6\":{\"name\":\"punctuation.separator.label.cpp\"}}},\"lambdas\":{\"begin\":\"(?:(?<=[^\\\\s]|^)(?<![\\\\w\\\\]\\\\)\\\\[\\\\*&\\\">])|(?<=\\\\Wreturn|^return))(?:\\\\s+)?(\\\\[(?!\\\\[| *+\\\"| *+\\\\d))((?:[^\\\\[\\\\]]|((?<!\\\\[)\\\\[(?!\\\\[)(?:[^\\\\[\\\\]]*+\\\\g<3>?)++\\\\]))*+)(\\\\](?!((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))[\\\\[\\\\];=]))\",\"end\":\"(?<=[;}])|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.capture.begin.lambda.cpp\"},\"2\":{\"name\":\"meta.lambda.capture.cpp\",\"patterns\":[{\"include\":\"#the_this_keyword\"},{\"match\":\"((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?=\\\\]|\\\\z|$)|(,))|(\\\\=))\",\"captures\":{\"1\":{\"name\":\"variable.parameter.capture.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"7\":{\"name\":\"keyword.operator.assignment.cpp\"}}},{\"include\":\"#evaluation_context\"}]},\"3\":{},\"4\":{\"name\":\"punctuation.definition.capture.end.lambda.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.begin.lambda.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.parameters.end.lambda.cpp\"}},\"name\":\"meta.function.definition.parameters.lambda.cpp\",\"patterns\":[{\"include\":\"#function_parameter_context\"}]},{\"match\":\"(?<!\\\\w)(?:constexpr|consteval|mutable)(?!\\\\w)\",\"name\":\"storage.modifier.lambda.$0.cpp\"},{\"begin\":\"->\",\"end\":\"(?=\\\\{)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.lambda.return-type.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\S+\",\"name\":\"storage.type.return-type.lambda.cpp\"}]},{\"begin\":\"\\\\{\",\"end\":\"\\\\}|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.lambda.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.lambda.cpp\"}},\"name\":\"meta.function.definition.body.lambda.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]}]},\"language_constants\":{\"match\":\"(?<!\\\\w)(?:nullptr|false|NULL|true)(?!\\\\w)\",\"name\":\"constant.language.$0.cpp\"},\"line\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?line\\\\b\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.line.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"endCaptures\":{},\"name\":\"meta.preprocessor.line.cpp\",\"patterns\":[{\"include\":\"#string_context\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"#line_continuation_character\"}]},\"line_comment\":{\"begin\":\"\\\\s*+(\\\\/\\\\/)\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.comment.cpp\"}},\"endCaptures\":{},\"name\":\"comment.line.double-slash.cpp\",\"patterns\":[{\"include\":\"#line_continuation_character\"}]},\"line_continuation_character\":{\"match\":\"\\\\\\\\\\\\n\",\"name\":\"constant.character.escape.line-continuation.cpp\"},\"macro\":{\"begin\":\"(^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?define\\\\b)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.define.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.definition.directive.cpp\"},\"7\":{\"name\":\"entity.name.function.preprocessor.cpp\"}},\"endCaptures\":{},\"name\":\"meta.preprocessor.macro.cpp\",\"patterns\":[{\"match\":\"\\\\G(?:\\\\s+)?(\\\\()([^\\\\(]*)(\\\\))\",\"captures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.preprocessor.cpp\"},\"2\":{\"name\":\"meta.function.preprocessor.parameters.cpp\",\"patterns\":[{\"match\":\"(?<=[(,])(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?\",\"captures\":{\"1\":{\"name\":\"variable.parameter.preprocessor.cpp\"}}},{\"match\":\",\",\"name\":\"punctuation.separator.parameters.cpp\"},{\"match\":\"\\\\.\\\\.\\\\.\",\"name\":\"punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp\"}]},\"3\":{\"name\":\"punctuation.definition.parameters.end.preprocessor.cpp\"}}},{\"include\":\"#macro_context\"},{\"include\":\"#macro_argument\"}]},\"macro_argument\":{\"match\":\"##?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"variable.other.macro.argument.cpp\"},\"macro_context\":{\"patterns\":[{\"include\":\"source.cpp.embedded.macro\"}]},\"macro_name\":{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.function.preprocessor.cpp\"},\"member_access\":{\"match\":\"(?:((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\s+)?(?:(?:\\\\.\\\\*|\\\\.)|(?:->\\\\*|->))(?:\\\\s+)?)*)(?:\\\\s+)?(\\\\b(?!uint_least32_t[^\\\\w]|uint_least16_t[^\\\\w]|uint_least64_t[^\\\\w]|int_least32_t[^\\\\w]|int_least64_t[^\\\\w]|uint_fast32_t[^\\\\w]|uint_fast64_t[^\\\\w]|uint_least8_t[^\\\\w]|uint_fast16_t[^\\\\w]|int_least16_t[^\\\\w]|int_fast16_t[^\\\\w]|int_least8_t[^\\\\w]|uint_fast8_t[^\\\\w]|int_fast64_t[^\\\\w]|int_fast32_t[^\\\\w]|int_fast8_t[^\\\\w]|suseconds_t[^\\\\w]|useconds_t[^\\\\w]|in_addr_t[^\\\\w]|uintmax_t[^\\\\w]|uintmax_t[^\\\\w]|uintmax_t[^\\\\w]|in_port_t[^\\\\w]|uintptr_t[^\\\\w]|blksize_t[^\\\\w]|uint32_t[^\\\\w]|uint64_t[^\\\\w]|u_quad_t[^\\\\w]|intmax_t[^\\\\w]|intmax_t[^\\\\w]|unsigned[^\\\\w]|blkcnt_t[^\\\\w]|uint16_t[^\\\\w]|intptr_t[^\\\\w]|swblk_t[^\\\\w]|wchar_t[^\\\\w]|u_short[^\\\\w]|qaddr_t[^\\\\w]|caddr_t[^\\\\w]|daddr_t[^\\\\w]|fixpt_t[^\\\\w]|nlink_t[^\\\\w]|segsz_t[^\\\\w]|clock_t[^\\\\w]|ssize_t[^\\\\w]|int16_t[^\\\\w]|int32_t[^\\\\w]|int64_t[^\\\\w]|uint8_t[^\\\\w]|int8_t[^\\\\w]|mode_t[^\\\\w]|quad_t[^\\\\w]|ushort[^\\\\w]|u_long[^\\\\w]|u_char[^\\\\w]|double[^\\\\w]|signed[^\\\\w]|time_t[^\\\\w]|size_t[^\\\\w]|key_t[^\\\\w]|div_t[^\\\\w]|ino_t[^\\\\w]|uid_t[^\\\\w]|gid_t[^\\\\w]|off_t[^\\\\w]|pid_t[^\\\\w]|float[^\\\\w]|dev_t[^\\\\w]|u_int[^\\\\w]|short[^\\\\w]|bool[^\\\\w]|id_t[^\\\\w]|uint[^\\\\w]|long[^\\\\w]|char[^\\\\w]|void[^\\\\w]|auto[^\\\\w]|id_t[^\\\\w]|int[^\\\\w])(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b(?!\\\\())\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"variable.language.this.cpp\"},\"4\":{\"name\":\"variable.lower-case.cpp variable.other.object.access.$4.cpp\"},\"5\":{\"name\":\"variable.snake-case.cpp variable.other.object.access.$5.cpp\"},\"6\":{\"name\":\"variable.camel-case.cpp variable.other.object.access.$6.cpp\"},\"7\":{\"name\":\"variable.upper-case.cpp variable.other.object.access.$7.cpp\"},\"8\":{\"name\":\"variable.other.unknown.$8.cpp\"},\"9\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"10\":{\"name\":\"punctuation.separator.pointer-access.cpp\"},\"11\":{\"patterns\":[{\"match\":\"(?<=(?:\\\\.\\\\*|\\\\.|->|->\\\\*))(?:\\\\s+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.lower-case.cpp variable.other.object.property.cpp\"},\"7\":{\"name\":\"variable.snake-case.cpp variable.other.object.property.cpp\"},\"8\":{\"name\":\"variable.camel-case.cpp variable.other.object.property.cpp\"},\"9\":{\"name\":\"variable.upper-case.cpp variable.other.object.property.cpp\"},\"10\":{\"name\":\"variable.other.unknown.$10.cpp\"},\"11\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"12\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}}},{\"match\":\"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.lower-case.cpp variable.other.object.access.$6.cpp\"},\"7\":{\"name\":\"variable.snake-case.cpp variable.other.object.access.$7.cpp\"},\"8\":{\"name\":\"variable.camel-case.cpp variable.other.object.access.$8.cpp\"},\"9\":{\"name\":\"variable.upper-case.cpp variable.other.object.access.$9.cpp\"},\"10\":{\"name\":\"variable.other.unknown.$10.cpp\"},\"11\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"12\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}}},{\"include\":\"#member_access\"},{\"include\":\"#method_access\"}]},\"12\":{\"name\":\"variable.other.property.cpp\"}}},\"memory_operators\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:(delete)(?:\\\\s+)?(\\\\[\\\\])|(delete))|(new))(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.operator.wordlike.cpp\"},\"4\":{\"name\":\"keyword.operator.delete.array.cpp\"},\"5\":{\"name\":\"keyword.operator.delete.array.bracket.cpp\"},\"6\":{\"name\":\"keyword.operator.delete.cpp\"},\"7\":{\"name\":\"keyword.operator.new.cpp\"}}},\"method_access\":{\"begin\":\"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?:\\\\s+)?(?:(?:\\\\.\\\\*|\\\\.)|(?:->\\\\*|->))(?:\\\\s+)?)*)(?:\\\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.lower-case.cpp variable.other.object.access.$6.cpp\"},\"7\":{\"name\":\"variable.snake-case.cpp variable.other.object.access.$7.cpp\"},\"8\":{\"name\":\"variable.camel-case.cpp variable.other.object.access.$8.cpp\"},\"9\":{\"name\":\"variable.upper-case.cpp variable.other.object.access.$9.cpp\"},\"10\":{\"name\":\"variable.other.unknown.$10.cpp\"},\"11\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"12\":{\"name\":\"punctuation.separator.pointer-access.cpp\"},\"13\":{\"patterns\":[{\"match\":\"(?<=(?:\\\\.\\\\*|\\\\.|->|->\\\\*))(?:\\\\s+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.lower-case.cpp variable.other.object.property.cpp\"},\"7\":{\"name\":\"variable.snake-case.cpp variable.other.object.property.cpp\"},\"8\":{\"name\":\"variable.camel-case.cpp variable.other.object.property.cpp\"},\"9\":{\"name\":\"variable.upper-case.cpp variable.other.object.property.cpp\"},\"10\":{\"name\":\"variable.other.unknown.$10.cpp\"},\"11\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"12\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}}},{\"match\":\"(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))|(?:(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))|(?<=\\\\]|\\\\)))(?:\\\\s+)?)(?:((?:\\\\.\\\\*|\\\\.))|((?:->\\\\*|->)))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.language.this.cpp\"},\"6\":{\"name\":\"variable.lower-case.cpp variable.other.object.access.$6.cpp\"},\"7\":{\"name\":\"variable.snake-case.cpp variable.other.object.access.$7.cpp\"},\"8\":{\"name\":\"variable.camel-case.cpp variable.other.object.access.$8.cpp\"},\"9\":{\"name\":\"variable.upper-case.cpp variable.other.object.access.$9.cpp\"},\"10\":{\"name\":\"variable.other.unknown.$10.cpp\"},\"11\":{\"name\":\"punctuation.separator.dot-access.cpp\"},\"12\":{\"name\":\"punctuation.separator.pointer-access.cpp\"}}},{\"include\":\"#member_access\"},{\"include\":\"#method_access\"}]},\"14\":{\"name\":\"entity.name.function.member.cpp\"},\"15\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.function.member.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.function.member.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"misc_keywords\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:constinit|typedef|concept|export|module)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.other.$3.cpp\"}}},\"ms_attributes\":{\"begin\":\"__declspec\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.begin.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.attribute.end.cpp\"}},\"name\":\"support.other.attribute.cpp\",\"patterns\":[{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#string_context\"},{\"include\":\"#ever_present_context\"}]},{\"match\":\"(using)\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.namespace.cpp\"}}},{\"match\":\",\",\"name\":\"punctuation.separator.attribute.cpp\"},{\"match\":\":\",\"name\":\"punctuation.accessor.attribute.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=::)\",\"name\":\"entity.name.namespace.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.other.attribute.$0.cpp\"},{\"include\":\"#number_literal\"},{\"include\":\"#ever_present_context\"}]},\"namespace_alias\":{\"match\":\"(?<!\\\\w)(namespace)\\\\s+((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:\\\\s+)?(\\\\=)(?:\\\\s+)?(((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<8>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:\\\\s+)?(?:(;)|\\\\n))\",\"captures\":{\"1\":{\"name\":\"keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp\"},\"2\":{\"name\":\"entity.name.namespace.alias.cpp\"},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"},\"4\":{\"name\":\"meta.declaration.namespace.alias.value.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"6\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{\"name\":\"entity.name.namespace.cpp\"},\"10\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.declaration.namespace.alias.cpp\"},\"namespace_block\":{\"begin\":\"((?<!\\\\w)namespace(?!\\\\w))\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.namespace.cpp\"},\"1\":{\"name\":\"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp\"}},\"endCaptures\":{},\"name\":\"meta.block.namespace.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.namespace.cpp\"}},\"name\":\"meta.head.namespace.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#attributes_context\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"#normal_variable_declaration\"},{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<4>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)(?:\\\\s+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?:\\\\s+)?(?:(::)(?:\\\\s+)?(inline))?\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.namespace.cpp\"},\"6\":{\"name\":\"punctuation.separator.scope-resolution.namespace.block.cpp\"},\"7\":{\"name\":\"storage.modifier.inline.cpp\"}}}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.namespace.cpp\"}},\"name\":\"meta.body.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.namespace.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"noexcept_operator\":{\"begin\":\"((?<!\\\\w)noexcept(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"normal_variable_assignment\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:((?:(?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<31>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<31>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?:%=|\\\\+=|-=|\\\\*=|(?<!\\\\()\\\\/=))|((?:&=|\\\\^=|<<=|>>=|\\\\|=))|(\\\\=)))\",\"end\":\"(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"meta.assignment.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"15\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"25\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"26\":{},\"27\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"28\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"29\":{\"name\":\"comment.block.cpp\"},\"30\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"31\":{},\"32\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"33\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"34\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"35\":{\"name\":\"comment.block.cpp\"},\"36\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"42\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"43\":{\"name\":\"comment.block.cpp\"},\"44\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"45\":{\"name\":\"variable.lower-case.cpp variable.other.assignment.cpp\"},\"46\":{\"name\":\"variable.snake-case.cpp variable.other.assignment.cpp\"},\"47\":{\"name\":\"variable.camel-case.cpp variable.other.assignment.cpp\"},\"48\":{\"name\":\"variable.upper-case.cpp variable.other.assignment.cpp\"},\"49\":{\"name\":\"variable.other.unknown.$49.cpp\"},\"50\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"51\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"52\":{\"name\":\"comment.block.cpp\"},\"53\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"54\":{\"name\":\"keyword.operator.assignment.compound.cpp\"},\"55\":{\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},\"56\":{\"name\":\"keyword.operator.assignment.cpp\"}},\"endCaptures\":{},\"name\":\"meta.assignment.cpp\",\"patterns\":[{\"include\":\"#normal_variable_assignment\"},{\"include\":\"#variable_assignment\"},{\"include\":\"$self\"}]},\"normal_variable_declaration\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:((?:(?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<31>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<31>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=;|,|\\\\[)(?![^=]++=))\",\"end\":\"(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"meta.declaration.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"15\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"25\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"26\":{},\"27\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"28\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"29\":{\"name\":\"comment.block.cpp\"},\"30\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"31\":{},\"32\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"33\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"34\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"35\":{\"name\":\"comment.block.cpp\"},\"36\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"42\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"43\":{\"name\":\"comment.block.cpp\"},\"44\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"45\":{\"name\":\"variable.lower-case.cpp variable.other.declare.cpp\"},\"46\":{\"name\":\"variable.snake-case.cpp variable.other.declare.cpp\"},\"47\":{\"name\":\"variable.camel-case.cpp variable.other.declare.cpp\"},\"48\":{\"name\":\"variable.upper-case.cpp variable.other.declare.cpp\"},\"49\":{\"name\":\"variable.other.unknown.$49.cpp\"},\"50\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"51\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"52\":{\"name\":\"comment.block.cpp\"},\"53\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"name\":\"meta.declaration.cpp\",\"patterns\":[{\"include\":\"#normal_variable_assignment\"},{\"include\":\"#variable_assignment\"},{\"include\":\"$self\"}]},\"number_literal\":{\"match\":\"(?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])*\",\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"12\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\.|\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"9\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}}},\"operator_overload\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<60>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<60>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<60>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(operator)(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)const(?!\\\\w)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<60>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)(?:(?:((?:delete\\\\[\\\\]|delete|new\\\\[\\\\]|<=>|<<=|new|>>=|\\\\->\\\\*|\\\\/=|%=|&=|>=|\\\\|=|\\\\+\\\\+|\\\\-\\\\-|\\\\(\\\\)|\\\\[\\\\]|\\\\->|\\\\+\\\\+|<<|>>|\\\\-\\\\-|<=|\\\\^=|==|!=|&&|\\\\|\\\\||\\\\+=|\\\\-=|\\\\*=|,|\\\\+|\\\\-|!|~|\\\\*|&|\\\\*|\\\\/|%|\\\\+|\\\\-|<|>|&|\\\\^|\\\\||=))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:\\\\[\\\\])?)))|(\\\"\\\")((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=;|\\\\<|\\\\()\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.function.definition.special.operator-overload.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"15\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"16\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"17\":{},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"20\":{\"name\":\"comment.block.cpp\"},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"22\":{},\"23\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"33\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"34\":{\"name\":\"comment.block.cpp\"},\"35\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"36\":{\"name\":\"storage.type.modifier.calling-convention.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"42\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"43\":{\"name\":\"comment.block.cpp\"},\"44\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"45\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.operator.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"46\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"47\":{},\"48\":{\"name\":\"keyword.other.operator.overload.cpp\"},\"49\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"50\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"51\":{\"name\":\"comment.block.cpp\"},\"52\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"53\":{\"name\":\"storage.modifier.const.cpp\"},\"54\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"55\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"56\":{\"name\":\"comment.block.cpp\"},\"57\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"58\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.operator-overload.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"59\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"60\":{},\"61\":{\"name\":\"entity.name.operator.cpp\"},\"62\":{\"name\":\"entity.name.operator.type.cpp\"},\"63\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"entity.name.operator.type.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"entity.name.operator.type.reference.cpp\"}]},\"64\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"65\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"66\":{\"name\":\"comment.block.cpp\"},\"67\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"68\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"69\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"70\":{\"name\":\"comment.block.cpp\"},\"71\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"72\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"73\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"74\":{\"name\":\"comment.block.cpp\"},\"75\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"76\":{\"name\":\"entity.name.operator.type.array.cpp\"},\"77\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"78\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"79\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"80\":{\"name\":\"comment.block.cpp\"},\"81\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"82\":{\"name\":\"entity.name.operator.custom-literal.cpp\"},\"83\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"84\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"85\":{\"name\":\"comment.block.cpp\"},\"86\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{},\"name\":\"meta.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.head.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range_helper\"},{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp\"}},\"contentName\":\"meta.function.definition.parameters.special.operator-overload\",\"patterns\":[{\"include\":\"#function_parameter_context\"},{\"include\":\"#evaluation_context\"}]},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"match\":\"(\\\\=)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(default)|(delete))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"keyword.other.default.function.cpp\"},\"7\":{\"name\":\"keyword.other.delete.function.cpp\"}}},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp\"}},\"name\":\"meta.body.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"#function_body_context\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.function.definition.special.operator-overload.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"operators\":{\"patterns\":[{\"begin\":\"((?<!\\\\w)sizeof(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)alignof(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignof.cpp\"}},\"contentName\":\"meta.arguments.operator.alignof\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)alignas(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.alignas.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.alignas.cpp\"}},\"contentName\":\"meta.arguments.operator.alignas\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)typeid(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"((?<!\\\\w)noexcept(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp\"}},\"contentName\":\"meta.arguments.operator.noexcept\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"begin\":\"(\\\\bsizeof\\\\.\\\\.\\\\.)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.cpp\"},{\"match\":\"\\\\+\\\\+\",\"name\":\"keyword.operator.increment.cpp\"},{\"match\":\"(?:<<|>>)\",\"name\":\"keyword.operator.bitwise.shift.cpp\"},{\"match\":\"(?:!=|<=|>=|==|<|>)\",\"name\":\"keyword.operator.comparison.cpp\"},{\"match\":\"(?:&&|!|\\\\|\\\\|)\",\"name\":\"keyword.operator.logical.cpp\"},{\"match\":\"(?:&|\\\\||\\\\^|~)\",\"name\":\"keyword.operator.bitwise.cpp\"},{\"match\":\"(?:((?:%=|\\\\+=|-=|\\\\*=|(?<!\\\\()\\\\/=))|((?:&=|\\\\^=|<<=|>>=|\\\\|=))|(\\\\=))\",\"captures\":{\"1\":{\"name\":\"keyword.operator.assignment.compound.cpp\"},\"2\":{\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"}}},{\"match\":\"(?:%|\\\\*|\\\\/|-|\\\\+)\",\"name\":\"keyword.operator.arithmetic.cpp\"},{\"include\":\"#ternary_operator\"}]},\"over_qualified_types\":{\"patterns\":[{\"match\":\"(\\\\bstruct)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.struct.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.struct.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"(\\\\benum)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.enum.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.enum.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"(\\\\bunion)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.union.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.union.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"(\\\\bclass)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.class.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}}]},\"parameter\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\w)\",\"end\":\"(?:(?=\\\\))|(,))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"#decltype\"},{\"include\":\"#vararg_ellipses\"},{\"match\":\"((?:((?:thread_local|volatile|register|restrict|static|extern|const))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\s*+(?<!\\\\w)(?:(?:(?:((?:unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int))|((?:uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|id_t|uint)))|((?:pthread_rwlockattr_t|pthread_mutexattr_t|pthread_condattr_t|pthread_rwlock_t|pthread_mutex_t|pthread_cond_t|pthread_attr_t|pthread_once_t|pthread_key_t|pthread_t)))|([a-zA-Z_]\\\\w*_t))(?!\\\\w)|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\b\\\\b(?<!\\\\Wthread_local|^thread_local|\\\\Wvolatile|^volatile|\\\\Wregister|^register|\\\\Wrestrict|^restrict|\\\\Wstatic|^static|\\\\Wextern|^extern|\\\\Wconst|^const)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=,|\\\\)|=)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#storage_types\"},{\"include\":\"#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"end\":\"(?:(?=\\\\))|(,))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"\\\\=\",\"name\":\"keyword.operator.assignment.cpp\"},{\"match\":\"(?<!\\\\s|\\\\(|,|:)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\)|,|\\\\[|=|\\\\n)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\[\",\"end\":\"\\\\]|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b(?<!\\\\Wstruct|^struct|\\\\Wclass|^class|\\\\Wunion|^union|\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*)\",\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#ever_present_context\"}]},\"parameter_class\":{\"match\":\"(\\\\bclass)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.class.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.class.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"parameter_enum\":{\"match\":\"(\\\\benum)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.enum.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.enum.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"parameter_or_maybe_value\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\w)\",\"end\":\"(?:(?=\\\\))|(,))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"name\":\"meta.parameter.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#function_pointer_parameter\"},{\"include\":\"#memory_operators\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#curly_initializer\"},{\"include\":\"#decltype\"},{\"include\":\"#vararg_ellipses\"},{\"match\":\"((?:((?:thread_local|volatile|register|restrict|static|extern|const))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\s*+(?<!\\\\w)(?:(?:(?:((?:unsigned|wchar_t|double|signed|short|float|auto|void|long|char|bool|int))|((?:uint_least32_t|uint_least64_t|uint_least16_t|uint_fast64_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|uint_fast16_t|uint_fast32_t|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|int_fast8_t|suseconds_t|useconds_t|uintmax_t|uintmax_t|in_port_t|uintmax_t|in_addr_t|blksize_t|uintptr_t|intmax_t|intptr_t|blkcnt_t|intmax_t|u_quad_t|uint16_t|uint32_t|uint64_t|ssize_t|fixpt_t|qaddr_t|u_short|int16_t|int32_t|int64_t|uint8_t|daddr_t|caddr_t|swblk_t|clock_t|segsz_t|nlink_t|time_t|u_long|ushort|quad_t|mode_t|size_t|u_char|int8_t|u_int|uid_t|off_t|pid_t|gid_t|dev_t|div_t|key_t|ino_t|id_t|id_t|uint)))|((?:pthread_rwlockattr_t|pthread_mutexattr_t|pthread_condattr_t|pthread_rwlock_t|pthread_mutex_t|pthread_cond_t|pthread_attr_t|pthread_once_t|pthread_key_t|pthread_t)))|([a-zA-Z_]\\\\w*_t))(?!\\\\w)|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\b\\\\b(?<!\\\\Wthread_local|^thread_local|\\\\Wvolatile|^volatile|\\\\Wregister|^register|\\\\Wrestrict|^restrict|\\\\Wstatic|^static|\\\\Wextern|^extern|\\\\Wconst|^const)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=,|\\\\)|=)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_types\"}]},\"2\":{\"name\":\"storage.modifier.specifier.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"storage.type.primitive.cpp storage.type.built-in.primitive.cpp\"},\"12\":{\"name\":\"storage.type.cpp storage.type.built-in.cpp\"},\"13\":{\"name\":\"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp\"},\"14\":{\"name\":\"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp\"},\"15\":{\"name\":\"entity.name.type.parameter.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#storage_types\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_parameter_inner_generated\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"begin\":\"(?<==)\",\"end\":\"(?:(?=\\\\))|(,))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?<!\\\\s|\\\\(|,|:)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=(?:\\\\)|,|\\\\[|=|\\\\/\\\\/|(?:\\\\n|$)))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"variable.parameter.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#attributes_context\"},{\"begin\":\"\\\\[\",\"end\":\"\\\\]|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"}},\"name\":\"meta.bracket.square.array.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b(?<!\\\\Wstruct|^struct|\\\\Wclass|^class|\\\\Wunion|^union|\\\\Wenum|^enum)\",\"name\":\"entity.name.type.parameter.cpp\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*)\",\"captures\":{\"0\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"7\":{\"name\":\"comment.block.cpp\"},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"include\":\"#evaluation_context\"},{\"include\":\"#ever_present_context\"}]},\"parameter_struct\":{\"match\":\"(\\\\bstruct)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.struct.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.struct.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"parameter_union\":{\"match\":\"(\\\\bunion)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))?)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:\\\\[((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\]((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=,|\\\\)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"storage.type.union.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.union.parameter.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"name\":\"variable.other.object.declare.cpp\"},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"19\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"20\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"parentheses\":{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.cpp\",\"patterns\":[{\"include\":\"#range_for_inner\"},{\"include\":\"#over_qualified_types\"},{\"match\":\"(?<!:):(?!:)\",\"name\":\"punctuation.separator.colon.range-based.cpp\"},{\"include\":\"#evaluation_context\"}]},\"pragma\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?pragma\\\\b\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.pragma.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"endCaptures\":{},\"name\":\"meta.preprocessor.pragma.cpp\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#string_context\"},{\"match\":\"[a-zA-Z_$][\\\\w\\\\-$]*\",\"name\":\"entity.other.attribute-name.pragma.preprocessor.cpp\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"#line_continuation_character\"}]},\"pragma_mark\":{\"match\":\"(^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?pragma\\\\s+mark)\\\\s+(.*)\",\"captures\":{\"1\":{\"name\":\"keyword.control.directive.pragma.pragma-mark.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"5\":{\"name\":\"entity.name.tag.pragma-mark.cpp\"}},\"name\":\"meta.preprocessor.pragma.cpp\"},\"predefined_macros\":{\"patterns\":[{\"match\":\"\\\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\\\b\",\"captures\":{\"1\":{\"name\":\"entity.name.other.preprocessor.macro.predefined.$1.cpp\"}}},{\"match\":\"\\\\b__([A-Z_]+)__\\\\b\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$1.cpp\"}]},\"preprocessor_conditional_context\":{\"patterns\":[{\"include\":\"#preprocessor_conditional_defined\"},{\"include\":\"#comments\"},{\"include\":\"#language_constants\"},{\"include\":\"#string_context\"},{\"include\":\"#preprocessor_number_literal\"},{\"include\":\"#operators\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#macro_name\"},{\"include\":\"#line_continuation_character\"}]},\"preprocessor_conditional_defined\":{\"begin\":\"((?<!\\\\w)defined(?!\\\\w))(\\\\()\",\"end\":\"(?:\\\\)|(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$)))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.directive.conditional.defined.cpp\"},\"2\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.control.defined.cpp\"}},\"patterns\":[{\"include\":\"#macro_name\"}]},\"preprocessor_conditional_parentheses\":{\"begin\":\"\\\\(\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.begin.bracket.round.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.cpp\"}},\"name\":\"meta.parens.preprocessor.conditional.cpp\"},\"preprocessor_conditional_range\":{\"begin\":\"^((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?((?:(?:ifndef|ifdef)|if))\",\"end\":\"(?<!\\\\\\\\)(?:(?=\\\\n)|(?<=^\\\\n|[^\\\\\\\\]\\\\n)(?=$))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.control.directive.conditional.$6.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.definition.directive.cpp\"},\"6\":{}},\"endCaptures\":{},\"contentName\":\"meta.preprocessor.conditional\",\"patterns\":[{\"include\":\"#preprocessor_conditional_context\"}]},\"preprocessor_conditional_standalone\":{\"match\":\"^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?((?<!\\\\w)(?:endif|else|elif|elifdef|elifndef)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"punctuation.definition.directive.cpp\"}},\"name\":\"keyword.control.directive.$4.cpp\"},\"preprocessor_context\":{\"patterns\":[{\"include\":\"#pragma_mark\"},{\"include\":\"#pragma\"},{\"include\":\"#include\"},{\"include\":\"#line\"},{\"include\":\"#diagnostic\"},{\"include\":\"#undef\"},{\"include\":\"#preprocessor_conditional_range\"},{\"include\":\"#macro\"},{\"include\":\"#preprocessor_conditional_standalone\"},{\"include\":\"#macro_argument\"}]},\"preprocessor_number_literal\":{\"match\":\"(?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])*\",\"captures\":{\"0\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\.|\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"}}},{\"match\":\"(\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}}},{\"match\":\"(\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}}},{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?$\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"}}},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]}}},\"qualified_type\":{\"match\":\"\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<11>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.])\",\"captures\":{\"0\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"1\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"6\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"7\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}},\"name\":\"meta.qualified-type.cpp\"},\"qualifiers_and_specifiers_post_parameters\":{\"patterns\":[{\"begin\":\"((?<!\\\\w)requires(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.functionlike.cpp keyword.other.requires.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.requires.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.requires.cpp\"}},\"contentName\":\"meta.arguments.requires\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},{\"match\":\"((?:(?:(?:(?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w))+)(?=\\\\s*(?:\\\\{|;|\\\\n|\\\\r|=))\",\"captures\":{\"1\":{\"patterns\":[{\"match\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$5.cpp\"}}}]}}}]},\"qualifiers_and_specifiers_post_parameters_inline\":{\"match\":\"((?:(?:(?:(?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w))+)(?=\\\\s*(?:\\\\{|;|\\\\n|\\\\r|=))\",\"captures\":{\"1\":{\"patterns\":[{\"match\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$5.cpp\"}}}]}}},\"range_for_inner\":{\"begin\":\"(?<=\\\\Wfor \\\\(|^for \\\\(|\\\\Wfor\\\\(|^for\\\\()\",\"end\":\"(?=\\\\))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.parens.control.for.cpp\",\"patterns\":[{\"match\":\"((?:((?:(?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<27>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<27>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:)(?!:)\",\"captures\":{\"1\":{\"name\":\"meta.type.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"11\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"21\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"22\":{},\"23\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"24\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"25\":{\"name\":\"comment.block.cpp\"},\"26\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"27\":{},\"28\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"29\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"30\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"31\":{\"name\":\"comment.block.cpp\"},\"32\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"33\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"34\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"35\":{\"name\":\"comment.block.cpp\"},\"36\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"name\":\"variable.other.object.declare.for.cpp\"},\"42\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"43\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"44\":{\"name\":\"comment.block.cpp\"},\"45\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"46\":{\"name\":\"punctuation.separator.colon.range-based.cpp\"}}},{\"match\":\"((?:((?:(?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<27>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<27>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\[)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(,)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))*((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\])((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:)(?!:)\",\"captures\":{\"1\":{\"name\":\"meta.type.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"11\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"21\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"23\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"24\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"25\":{\"name\":\"comment.block.cpp\"},\"26\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"29\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"30\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"31\":{\"name\":\"comment.block.cpp\"},\"32\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"33\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"34\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"35\":{\"name\":\"comment.block.cpp\"},\"36\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"37\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"38\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"39\":{\"name\":\"comment.block.cpp\"},\"40\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"41\":{\"name\":\"punctuation.definition.begin.bracket.square.binding.cpp\"},\"42\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"43\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"44\":{\"name\":\"comment.block.cpp\"},\"45\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"46\":{\"name\":\"variable.other.for.cpp\"},\"47\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"48\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"49\":{\"name\":\"comment.block.cpp\"},\"50\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"51\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"},\"52\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"53\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"54\":{\"name\":\"comment.block.cpp\"},\"55\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"56\":{\"name\":\"variable.other.for.cpp\"},\"57\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"58\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"59\":{\"name\":\"comment.block.cpp\"},\"60\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"61\":{\"name\":\"punctuation.definition.end.bracket.square.binding.cpp\"},\"62\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"63\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"64\":{\"name\":\"comment.block.cpp\"},\"65\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"66\":{\"name\":\"punctuation.separator.colon.range-based.cpp\"}},\"name\":\"meta.binding.cpp\"},{\"include\":\"#evaluation_context\"}]},\"requires_keyword\":{\"begin\":\"((?<!\\\\w)requires(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.functionlike.cpp keyword.other.requires.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.requires.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.requires.cpp\"}},\"contentName\":\"meta.arguments.requires\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"scope_resolution\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_function_call\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_function_call_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.call.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp\"}}},\"scope_resolution_function_definition\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_function_definition_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.definition.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp\"}}},\"scope_resolution_function_definition_operator_overload\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_operator_overload_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_function_definition_operator_overload_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_function_definition_operator_overload_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.function.definition.operator-overload.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp\"}}},\"scope_resolution_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"}}},\"scope_resolution_namespace_alias\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_namespace_alias_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_alias_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.alias.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp\"}}},\"scope_resolution_namespace_block\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_namespace_block_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_block_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.block.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp\"}}},\"scope_resolution_namespace_using\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_namespace_using_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.namespace.using.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"}}},\"scope_resolution_parameter\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_parameter_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_parameter_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_parameter_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.parameter.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp\"}}},\"scope_resolution_template_call\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_template_call_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_template_call_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_template_call_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.template.call.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp\"}}},\"scope_resolution_template_definition\":{\"match\":\"(::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<3>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"}]},\"1\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]}}},\"scope_resolution_template_definition_inner_generated\":{\"match\":\"((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)((?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\\\\s*+(((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<7>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?(::)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"}]},\"2\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"4\":{},\"5\":{\"name\":\"entity.name.scope-resolution.template.definition.cpp\"},\"6\":{\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"7\":{},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp\"}}},\"semicolon\":{\"match\":\";\",\"name\":\"punctuation.terminator.statement.cpp\"},\"simple_array_assignment\":{\"match\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))(\\\\[) *(\\\\])((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?:%=|\\\\+=|-=|\\\\*=|(?<!\\\\()\\\\/=))|((?:&=|\\\\^=|<<=|>>=|\\\\|=))|(\\\\=))\",\"captures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"20\":{\"name\":\"variable.lower-case.cpp variable.other.assignment.cpp\"},\"21\":{\"name\":\"variable.snake-case.cpp variable.other.assignment.cpp\"},\"22\":{\"name\":\"variable.camel-case.cpp variable.other.assignment.cpp\"},\"23\":{\"name\":\"variable.upper-case.cpp variable.other.assignment.cpp\"},\"24\":{\"name\":\"variable.other.unknown.$24.cpp\"},\"25\":{\"name\":\"punctuation.definition.begin.bracket.square.array.type.cpp\"},\"26\":{\"name\":\"punctuation.definition.end.bracket.square.array.type.cpp\"},\"27\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"28\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"29\":{\"name\":\"keyword.operator.assignment.compound.cpp\"},\"30\":{\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},\"31\":{\"name\":\"keyword.operator.assignment.cpp\"}}},\"simple_constructor_call\":{\"match\":\"(?!class|struct|union|enum|explicit|new|delete|operator|template|throw|decltype|typename|override|final)\\\\b(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(?=((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)(?=((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=(?:\\\\{|\\\\()))))\",\"captures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"simple_type\":{\"match\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<12>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?\",\"captures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"8\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"9\":{},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{},\"13\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"sizeof_operator\":{\"begin\":\"((?<!\\\\w)sizeof(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"sizeof_variadic_operator\":{\"begin\":\"(\\\\bsizeof\\\\.\\\\.\\\\.)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp\"}},\"contentName\":\"meta.arguments.operator.sizeof.variadic\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"square_brackets\":{\"name\":\"meta.bracket.square.access\",\"begin\":\"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\\\]\\\\)]))?(\\\\[)(?!\\\\])\",\"beginCaptures\":{\"1\":{\"name\":\"variable.other.object\"},\"2\":{\"name\":\"punctuation.definition.begin.bracket.square\"}},\"end\":\"\\\\]|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.end.bracket.square\"}},\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"standard_declares\":{\"patterns\":[{\"match\":\"((?<!\\\\w)struct(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.struct.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.struct.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"((?<!\\\\w)union(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.union.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.union.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"((?<!\\\\w)enum(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.enum.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.enum.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},{\"match\":\"((?<!\\\\w)class(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.class.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.class.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}}]},\"static_assert\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)static_assert|_Static_assert(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.other.static-assert.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.static-assert.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.static-assert.cpp\"}},\"patterns\":[{\"begin\":\"(,)(?:\\\\s+)?(?=(?:L|u8|u|U(?:\\\\s+)?\\\\\\\")?)\",\"end\":\"(?=\\\\))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.separator.delimiter.comma.cpp\"}},\"endCaptures\":{},\"name\":\"meta.static-assert.message.cpp\",\"patterns\":[{\"include\":\"#string_context\"}]},{\"include\":\"#evaluation_context\"}]},\"std_space\":{\"match\":\"(?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"1\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"storage_specifiers\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"storage.modifier.specifier.$3.cpp\"}}},\"storage_types\":{\"patterns\":[{\"include\":\"#storage_specifiers\"},{\"include\":\"#inline_builtin_storage_type\"},{\"include\":\"#decltype\"},{\"include\":\"#typename\"}]},\"string_context\":{\"patterns\":[{\"begin\":\"((?:u|u8|U|L)?)\\\"\",\"end\":\"(\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.cpp\",\"patterns\":[{\"match\":\"(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8})\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\['\\\"?\\\\\\\\abfnrtv]\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"\\\\\\\\[0-7]{1,3}\",\"name\":\"constant.character.escape.cpp\"},{\"match\":\"(?:(\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\x)))\",\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}}},{\"include\":\"#string_escapes_context_c\"}]},{\"begin\":\"(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'\",\"end\":\"(')(?:((?:[a-zA-Z]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.end.cpp\"},\"2\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.character.cpp\"},\"3\":{\"name\":\"keyword.other.suffix.literal.user-defined.character.cpp\"}},\"name\":\"string.quoted.single.cpp\",\"patterns\":[{\"match\":\"(?:(\\\\\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\\\\\x[0-9a-fA-F]*|\\\\\\\\x)))\",\"captures\":{\"1\":{\"name\":\"constant.character.escape.cpp\"},\"2\":{\"name\":\"invalid.illegal.unknown-escape.cpp\"}}},{\"include\":\"#string_escapes_context_c\"},{\"include\":\"#line_continuation_character\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\"(?:(?:_r|re)|regex)\\\\(\",\"end\":\"\\\\)(?:(?:_r|re)|regex)\\\\\\\"|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.raw.regex.cpp\",\"patterns\":[{\"include\":\"source.regexp.python\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\"(?:glsl|GLSL)\\\\(\",\"end\":\"\\\\)(?:glsl|GLSL)\\\\\\\"|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"meta.string.quoted.double.raw.glsl.cpp\",\"patterns\":[{\"include\":\"source.glsl\"}]},{\"begin\":\"((?:[uUL]8?)?R)\\\\\\\"\\\\(\",\"end\":\"\\\\)\\\\\\\"|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.cpp\"},\"1\":{\"name\":\"meta.encoding.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.cpp\"}},\"name\":\"string.quoted.double.raw.cpp\",\"patterns\":[{}]},{\"begin\":\"((?:u|u8|U|L)?R)\\\"(?:([^ ()\\\\\\\\\\\\t]{0,16})|([^ ()\\\\\\\\\\\\t]*))\\\\(\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.$2.begin\"},\"1\":{\"name\":\"meta.encoding\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long\"}},\"end\":\"(\\\\)(\\\\2)(\\\\3)\\\")(?:((?:[a-zA-Z]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))?|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.$2.end\"},\"3\":{\"name\":\"invalid.illegal.delimiter-too-long\"},\"4\":{\"name\":\"keyword.other.suffix.literal.user-defined.reserved.string.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.string.cpp\"}},\"name\":\"string.quoted.double.raw.$2\"}]},\"string_escaped_char\":{\"match\":\"(?x)\\\\\\\\ (\\n\\\\\\\\\\t\\t\\t |\\n[abefnprtv'\\\"?]   |\\n[0-3][0-7]{,2}\\t |\\n[4-7]\\\\d?\\t\\t|\\nx[a-fA-F0-9]{,2} |\\nu[a-fA-F0-9]{,4} |\\nU[a-fA-F0-9]{,8} )\",\"name\":\"constant.character.escape\"},\"string_escapes_context_c\":{\"patterns\":[{\"match\":\"(?x)\\\\\\\\ (\\n\\\\\\\\\\t\\t\\t |\\n[abefnprtv'\\\"?]   |\\n[0-3][0-7]{,2}\\t |\\n[4-7]\\\\d?\\t\\t|\\nx[a-fA-F0-9]{,2} |\\nu[a-fA-F0-9]{,4} |\\nU[a-fA-F0-9]{,8} )\",\"name\":\"constant.character.escape\"},{\"match\":\"\\\\\\\\.\",\"name\":\"invalid.illegal.unknown-escape\"},{\"match\":\"(?x) (?!%')(?!%\\\")%\\n(\\\\d+\\\\$)?\\t\\t\\t\\t\\t\\t   # field (argument #)\\n[#0\\\\- +']*\\t\\t\\t\\t\\t\\t  # flags\\n[,;:_]?\\t\\t\\t\\t\\t\\t\\t  # separator character (AltiVec)\\n((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?\\t\\t  # minimum field width\\n(\\\\.((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?)?\\t# precision\\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\\n[diouxXDOUeEfFgGaACcSspn%]\\t\\t   # conversion type\",\"name\":\"constant.other.placeholder\"}]},\"struct_block\":{\"begin\":\"((?<!\\\\w)struct(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"struct_declare\":{\"match\":\"((?<!\\\\w)struct(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.struct.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.struct.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"switch_conditional_parentheses\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"punctuation.section.parens.begin.bracket.round.conditional.switch.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.parens.end.bracket.round.conditional.switch.cpp\"}},\"name\":\"meta.conditional.switch.cpp\",\"patterns\":[{\"include\":\"#range_for_inner\"},{\"include\":\"#evaluation_context\"}]},\"switch_statement\":{\"begin\":\"((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)switch(?!\\\\w))\",\"end\":\"(?:(?<=\\\\}|%>|\\\\?\\\\?>)|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.switch.cpp\"},\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"5\":{\"name\":\"keyword.control.switch.cpp\"}},\"endCaptures\":{},\"name\":\"meta.block.switch.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.switch.cpp\"}},\"name\":\"meta.head.switch.cpp\",\"patterns\":[{\"include\":\"#switch_conditional_parentheses\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.switch.cpp\"}},\"name\":\"meta.body.switch.cpp\",\"patterns\":[{\"include\":\"#default_statement\"},{\"include\":\"#case_statement\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.switch.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"template_argument_defaulted\":{\"match\":\"(?<=<|,)(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)\\\\s+((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(\\\\=)\",\"captures\":{\"1\":{\"name\":\"storage.type.template.argument.$1.cpp\"},\"2\":{\"name\":\"entity.name.type.template.cpp\"},\"3\":{\"name\":\"keyword.operator.assignment.cpp\"}}},\"template_call_context\":{\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#template_call_range_helper\"},{\"include\":\"#storage_types\"},{\"include\":\"#language_constants\"},{\"include\":\"#scope_resolution_template_call_inner_generated\"},{\"include\":\"#operators\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma_in_template_argument\"},{\"include\":\"#qualified_type\"}]},\"template_call_innards\":{\"match\":\"((?<!<)<(?!<)(?:(?:(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/)))|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<1>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+\",\"captures\":{\"0\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"meta.template.call.cpp\"},\"template_call_range\":{\"begin\":\"<\",\"end\":\">|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"name\":\"meta.template.call.cpp\",\"patterns\":[{\"include\":\"#template_call_context\"}]},\"template_call_range_helper\":{\"patterns\":[{\"match\":\"\\\\b((?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(<<)\",\"captures\":{\"1\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"12\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\.|\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"9\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"keyword.operator.bitwise.shift.cpp\"}}},{\"match\":\"\\\\b((?<!\\\\w)\\\\.?\\\\d(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(<)\",\"captures\":{\"1\":{\"patterns\":[{\"begin\":\"(?=.)\",\"end\":\"$|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"patterns\":[{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\\\.|\\\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"constant.numeric.hexadecimal.cpp\"},\"5\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"6\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"7\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"8\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"9\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"10\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"11\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"12\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\\\.|\\\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"constant.numeric.decimal.point.cpp\"},\"4\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"5\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"6\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"7\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"8\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"9\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"10\":{\"name\":\"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp\"},\"11\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.binary.cpp\"},\"2\":{\"name\":\"constant.numeric.binary.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.octal.cpp\"},\"2\":{\"name\":\"constant.numeric.octal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"5\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(\\\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9a-fA-FpP])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"keyword.other.unit.hexadecimal.cpp\"},\"2\":{\"name\":\"constant.numeric.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"3\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"4\":{\"name\":\"keyword.other.unit.exponent.hexadecimal.cpp\"},\"5\":{\"name\":\"keyword.operator.plus.exponent.hexadecimal.cpp\"},\"6\":{\"name\":\"keyword.operator.minus.exponent.hexadecimal.cpp\"},\"7\":{\"name\":\"constant.numeric.exponent.hexadecimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"8\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"9\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"\\\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\\\+?)(\\\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\\\w))?((?:\\\\w(?<![0-9eE])\\\\w*)?$)\",\"captures\":{\"1\":{\"name\":\"constant.numeric.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"2\":{\"name\":\"punctuation.separator.constant.numeric.cpp\"},\"3\":{\"name\":\"keyword.other.unit.exponent.decimal.cpp\"},\"4\":{\"name\":\"keyword.operator.plus.exponent.decimal.cpp\"},\"5\":{\"name\":\"keyword.operator.minus.exponent.decimal.cpp\"},\"6\":{\"name\":\"constant.numeric.exponent.decimal.cpp\",\"patterns\":[{\"match\":\"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])\",\"name\":\"punctuation.separator.constant.numeric.cpp\"}]},\"7\":{\"name\":\"keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp\"},\"8\":{\"name\":\"keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp\"}}},{\"match\":\"(?:(?:[0-9a-zA-Z_\\\\.]|')|(?<=[eEpP])[+-])+\",\"name\":\"invalid.illegal.constant.numeric.cpp\"}]}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"keyword.operator.comparison.cpp\"}}},{\"include\":\"#template_call_range\"}]},\"template_definition\":{\"begin\":\"(?<!\\\\w)(template)(?:\\\\s+)?(<)\",\"end\":\">|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"}},\"name\":\"meta.template.definition.cpp\",\"patterns\":[{\"begin\":\"(?<=\\\\w)(?:\\\\s+)?<\",\"end\":\">|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.begin.template.call.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.angle-brackets.end.template.call.cpp\"}},\"patterns\":[{\"include\":\"#template_call_context\"}]},{\"include\":\"#template_definition_context\"}]},\"template_definition_argument\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\s+)+)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?(\\\\.\\\\.\\\\.)(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))|(?<!\\\\w)(template)(?:\\\\s+)?(<)(?:\\\\s+)?((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(>)(?:\\\\s+)?(class|typename)(?:\\\\s+((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*))?)(?:\\\\s+)?(?:(\\\\=)(?:\\\\s+)?(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"storage.type.template.argument.$3.cpp\"},\"4\":{\"patterns\":[{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"storage.type.template.argument.$0.cpp\"}]},\"5\":{\"name\":\"entity.name.type.template.cpp\"},\"6\":{\"name\":\"storage.type.template.argument.$6.cpp\"},\"7\":{\"name\":\"punctuation.vararg-ellipses.template.definition.cpp\"},\"8\":{\"name\":\"entity.name.type.template.cpp\"},\"9\":{\"name\":\"storage.type.template.cpp\"},\"10\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"},\"11\":{\"name\":\"storage.type.template.argument.$11.cpp\"},\"12\":{\"name\":\"entity.name.type.template.cpp\"},\"13\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"},\"14\":{\"name\":\"storage.type.template.argument.$14.cpp\"},\"15\":{\"name\":\"entity.name.type.template.cpp\"},\"16\":{\"name\":\"keyword.operator.assignment.cpp\"},\"17\":{\"name\":\"punctuation.separator.delimiter.comma.template.argument.cpp\"}}},\"template_definition_context\":{\"patterns\":[{\"include\":\"#scope_resolution_template_definition_inner_generated\"},{\"include\":\"#template_definition_argument\"},{\"include\":\"#template_argument_defaulted\"},{\"include\":\"#template_call_innards\"},{\"include\":\"#evaluation_context\"}]},\"template_explicit_instantiation\":{\"match\":\"(?<!\\\\w)(?:(extern)\\\\s+)?(template)\\\\s+\",\"captures\":{\"1\":{\"name\":\"storage.modifier.specifier.extern.cpp\"},\"2\":{\"name\":\"storage.type.template.cpp\"}},\"name\":\"meta.template.explicit-instantiation.cpp\"},\"template_isolated_definition\":{\"match\":\"(?<!\\\\w)(template)(?:\\\\s+)?(<)(.*)(>)(?:\\\\s+)?$\",\"captures\":{\"1\":{\"name\":\"storage.type.template.cpp\"},\"2\":{\"name\":\"punctuation.section.angle-brackets.begin.template.definition.cpp\"},\"3\":{\"name\":\"meta.template.definition.cpp\",\"patterns\":[{\"include\":\"#template_definition_context\"}]},\"4\":{\"name\":\"punctuation.section.angle-brackets.end.template.definition.cpp\"}}},\"ternary_operator\":{\"begin\":\"\\\\?\",\"end\":\":|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"keyword.operator.ternary.cpp\"}},\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#string_context\"},{\"include\":\"#number_literal\"},{\"include\":\"#method_access\"},{\"include\":\"#member_access\"},{\"include\":\"#predefined_macros\"},{\"include\":\"#operators\"},{\"include\":\"#memory_operators\"},{\"include\":\"#wordlike_operators\"},{\"include\":\"#type_casting_operators\"},{\"include\":\"#control_flow_keywords\"},{\"include\":\"#exception_keywords\"},{\"include\":\"#the_this_keyword\"},{\"include\":\"#language_constants\"},{\"include\":\"#constructor_bracket_call\"},{\"include\":\"#simple_constructor_call\"},{\"include\":\"#simple_array_assignment\"},{\"include\":\"#builtin_storage_type_initilizer\"},{\"include\":\"#qualifiers_and_specifiers_post_parameters\"},{\"include\":\"#functional_specifiers_pre_parameters\"},{\"include\":\"#storage_types\"},{\"include\":\"#lambdas\"},{\"include\":\"#attributes_context\"},{\"include\":\"#parentheses\"},{\"include\":\"#function_call\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#square_brackets\"},{\"include\":\"#semicolon\"},{\"include\":\"#comma\"},{\"include\":\"#unknown_variable\"}],\"applyEndPatternLast\":1},\"the_this_keyword\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)this(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"variable.language.this.cpp\"}}},\"type_alias\":{\"match\":\"(using)\\\\s+(?!namespace)((?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)(?:\\\\s+)?((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?(?:\\\\s+)?(\\\\=)(?:\\\\s+)?((?:typename)?)(?:\\\\s+)?((?:(?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)?(?:(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<19>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<19>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))|(.*(?<!;)))(?:(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)?(?:\\\\s+)?(?:(;)|\\\\n)\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"entity.name.type.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"4\":{\"name\":\"keyword.operator.assignment.cpp\"},\"5\":{\"name\":\"keyword.other.typename.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"9\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"14\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"15\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"17\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"18\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"20\":{\"name\":\"meta.declaration.type.alias.value.unknown.cpp\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"22\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"23\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"26\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"27\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"28\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"29\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"30\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"31\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.declaration.type.alias.cpp\"},\"type_casting_operators\":{\"match\":\"((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:reinterpret_cast|dynamic_cast|static_cast|const_cast)(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"name\":\"keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp\"}}},\"typedef_class\":{\"begin\":\"((?<!\\\\w)typedef(?!\\\\w))(?:\\\\s+)?(?=(?<!\\\\w)class(?!\\\\w))\",\"end\":\"(?<=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\w)class(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.class.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.class.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.class.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.class.cpp\"}},\"name\":\"meta.head.class.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.class.cpp\"}},\"name\":\"meta.body.class.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.class.cpp\",\"patterns\":[{\"match\":\"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}}},{\"match\":\",\"}]}]}]},\"typedef_function_pointer\":{\"begin\":\"((?<!\\\\w)typedef(?!\\\\w))(?:\\\\s+)?(?=.*\\\\(\\\\*\\\\s*(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\s*\\\\))\",\"end\":\"(?<=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<18>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()(\\\\*)(?:\\\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*)?)(?:\\\\s+)?(?:(\\\\[)(\\\\w*)(\\\\])(?:\\\\s+)?)*(\\\\))(?:\\\\s+)?(\\\\()\",\"end\":\"(\\\\))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:override|volatile|noexcept|final|const)(?!\\\\w)))+(?=\\\\s*(?:\\\\{|;|\\\\n|\\\\r|=))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=[{=,);>]|\\\\n)(?!\\\\()|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"5\":{\"name\":\"comment.block.cpp\"},\"6\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"13\":{},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"16\":{\"name\":\"comment.block.cpp\"},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"18\":{},\"19\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"22\":{\"name\":\"comment.block.cpp\"},\"23\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"24\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"25\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"26\":{\"name\":\"comment.block.cpp\"},\"27\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"28\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"29\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"30\":{\"name\":\"comment.block.cpp\"},\"31\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"32\":{\"name\":\"punctuation.section.parens.begin.bracket.round.function.pointer.cpp\"},\"33\":{\"name\":\"punctuation.definition.function.pointer.dereference.cpp\"},\"34\":{\"name\":\"entity.name.type.alias.cpp entity.name.type.pointer.function.cpp\"},\"35\":{\"name\":\"punctuation.definition.begin.bracket.square.cpp\"},\"36\":{\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"37\":{\"name\":\"punctuation.definition.end.bracket.square.cpp\"},\"38\":{\"name\":\"punctuation.section.parens.end.bracket.round.function.pointer.cpp\"},\"39\":{\"name\":\"punctuation.section.parameters.begin.bracket.round.function.pointer.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end.bracket.round.function.pointer.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"name\":\"storage.modifier.specifier.functional.post-parameters.$10.cpp\"},\"11\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"12\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"13\":{\"name\":\"comment.block.cpp\"},\"14\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"patterns\":[{\"include\":\"#function_parameter_context\"}]}]},\"typedef_struct\":{\"begin\":\"((?<!\\\\w)typedef(?!\\\\w))(?:\\\\s+)?(?=(?<!\\\\w)struct(?!\\\\w))\",\"end\":\"(?<=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\w)struct(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.struct.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.struct.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.struct.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.struct.cpp\"}},\"name\":\"meta.head.struct.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.struct.cpp\"}},\"name\":\"meta.body.struct.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.struct.cpp\",\"patterns\":[{\"match\":\"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}}},{\"match\":\",\"}]}]}]},\"typedef_union\":{\"begin\":\"((?<!\\\\w)typedef(?!\\\\w))(?:\\\\s+)?(?=(?<!\\\\w)union(?!\\\\w))\",\"end\":\"(?<=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.typedef.cpp\"}},\"endCaptures\":{},\"patterns\":[{\"begin\":\"((?<!\\\\w)union(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"match\":\"(((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"8\":{\"name\":\"comment.block.cpp\"},\"9\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"12\":{\"name\":\"comment.block.cpp\"},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"14\":{\"name\":\"entity.name.type.alias.cpp\"}}},{\"match\":\",\"}]}]}]},\"typeid_operator\":{\"begin\":\"((?<!\\\\w)typeid(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\()\",\"end\":\"\\\\)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.functionlike.cpp keyword.operator.typeid.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.arguments.end.bracket.round.operator.typeid.cpp\"}},\"contentName\":\"meta.arguments.operator.typeid\",\"patterns\":[{\"include\":\"#evaluation_context\"}]},\"typename\":{\"match\":\"(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?<!\\\\w)typename(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<17>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<17>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))\",\"captures\":{\"1\":{\"name\":\"storage.modifier.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"5\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"6\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"7\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"13\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"14\":{},\"15\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"16\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{}}},\"undef\":{\"match\":\"(^((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(#)(?:\\\\s+)?undef\\\\b)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))\",\"captures\":{\"1\":{\"name\":\"keyword.control.directive.undef.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"punctuation.definition.directive.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"6\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"7\":{\"name\":\"entity.name.function.preprocessor.cpp\"}},\"name\":\"meta.preprocessor.undef.cpp\"},\"union_block\":{\"begin\":\"((?<!\\\\w)union(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?={)|(?:((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?((?:(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*+)?(?:((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(:(?!:)))?)\",\"end\":\"(?:(?:(?<=\\\\}|%>|\\\\?\\\\?>)(?:\\\\s+)?(;)|(;))|(?=[;>\\\\[\\\\]=]))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"0\":{\"name\":\"meta.head.union.cpp\"},\"1\":{\"name\":\"storage.type.$1.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"11\":{\"patterns\":[{\"match\":\"((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\",\"captures\":{\"1\":{\"name\":\"storage.type.modifier.final.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?<!\\\\w)final(?!\\\\w))((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?=:|{|$)\",\"captures\":{\"1\":{\"name\":\"entity.name.type.union.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"4\":{\"name\":\"comment.block.cpp\"},\"5\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"6\":{\"name\":\"storage.type.modifier.final.cpp\"},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"9\":{\"name\":\"comment.block.cpp\"},\"10\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}},{\"match\":\"DLLEXPORT\",\"name\":\"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.other.preprocessor.macro.predefined.probably.$0.cpp\"}]},\"12\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"13\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"14\":{\"name\":\"comment.block.cpp\"},\"15\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"16\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"17\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"18\":{\"name\":\"comment.block.cpp\"},\"19\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"},\"20\":{\"name\":\"punctuation.separator.colon.inheritance.cpp\"}},\"endCaptures\":{\"1\":{\"name\":\"punctuation.terminator.statement.cpp\"},\"2\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.block.union.cpp\",\"patterns\":[{\"begin\":\"\\\\G ?\",\"end\":\"(?:\\\\{|<%|\\\\?\\\\?<|(?=;))|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.begin.bracket.curly.union.cpp\"}},\"name\":\"meta.head.union.cpp\",\"patterns\":[{\"include\":\"#ever_present_context\"},{\"include\":\"#inheritance_context\"},{\"include\":\"#template_call_range_helper\"}]},{\"begin\":\"(?<=\\\\{|<%|\\\\?\\\\?<)\",\"end\":\"\\\\}|%>|\\\\?\\\\?>|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.block.end.bracket.curly.union.cpp\"}},\"name\":\"meta.body.union.cpp\",\"patterns\":[{\"include\":\"#function_pointer\"},{\"include\":\"#static_assert\"},{\"include\":\"#constructor_inline\"},{\"include\":\"#destructor_inline\"},{\"include\":\"#operator_overload\"},{\"include\":\"#normal_variable_declaration\"},{\"include\":\"#normal_variable_assignment\"},{\"include\":\"$self\"}]},{\"begin\":\"(?<=\\\\}|%>|\\\\?\\\\?>)[\\\\s]*\",\"end\":\"[\\\\s]*(?=;)|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{},\"endCaptures\":{},\"name\":\"meta.tail.union.cpp\",\"patterns\":[{\"include\":\"$self\"}]}]},\"union_declare\":{\"match\":\"((?<!\\\\w)union(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))\\\\b(?!override\\\\W|override\\\\$|final\\\\W|final\\\\$)((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=\\\\S)(?![:{a-zA-Z])\",\"captures\":{\"1\":{\"name\":\"storage.type.union.declare.cpp\"},\"2\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"3\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"4\":{\"name\":\"entity.name.type.union.cpp\"},\"5\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"7\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"8\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"9\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"10\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"11\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"12\":{\"name\":\"variable.other.object.declare.cpp\"},\"13\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"14\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}}},\"unknown_variable\":{\"match\":\"(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))\",\"captures\":{\"1\":{\"name\":\"variable.lower-case.cpp variable.other.unknown.$1.cpp\"},\"2\":{\"name\":\"variable.snake-case.cpp variable.other.unknown.$2.cpp\"},\"3\":{\"name\":\"variable.camel-case.cpp variable.other.unknown.$3.cpp\"},\"4\":{\"name\":\"variable.upper-case.cpp variable.other.unknown.$4.cpp\"},\"5\":{\"name\":\"variable.other.unknown.$5.cpp\"}}},\"using_name\":{\"match\":\"(using)\\\\s+(?!namespace\\\\b)\",\"captures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"}}},\"using_namespace\":{\"begin\":\"(?<!\\\\w)(using)\\\\s+(namespace)\\\\s+((::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<6>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*\\\\s*+)?((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w))(?=;|\\\\n)\",\"end\":\";|(?=\\\\\\\\end\\\\{(?:minted|cppcode)\\\\})\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.other.using.directive.cpp\"},\"2\":{\"name\":\"keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp\"},\"3\":{\"patterns\":[{\"include\":\"#scope_resolution_namespace_using_inner_generated\"}]},\"4\":{\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp\"},\"5\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"6\":{},\"7\":{\"name\":\"entity.name.namespace.cpp\"}},\"endCaptures\":{\"0\":{\"name\":\"punctuation.terminator.statement.cpp\"}},\"name\":\"meta.using-namespace.cpp\"},\"vararg_ellipses\":{\"match\":\"(?<!\\\\.)\\\\.\\\\.\\\\.(?!\\\\.)\",\"name\":\"punctuation.vararg-ellipses.cpp\"},\"variable_assignment\":{\"match\":\"(?:((?:(?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<16>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<16>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:((?:%=|\\\\+=|-=|\\\\*=|(?<!\\\\()\\\\/=))|((?:&=|\\\\^=|<<=|>>=|\\\\|=))|(\\\\=))\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"22\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"23\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"24\":{\"name\":\"variable.lower-case.cpp variable.other.assignment.cpp\"},\"25\":{\"name\":\"variable.snake-case.cpp variable.other.assignment.cpp\"},\"26\":{\"name\":\"variable.camel-case.cpp variable.other.assignment.cpp\"},\"27\":{\"name\":\"variable.upper-case.cpp variable.other.assignment.cpp\"},\"28\":{\"name\":\"variable.other.unknown.$28.cpp\"},\"29\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"30\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"31\":{\"name\":\"keyword.operator.assignment.compound.cpp\"},\"32\":{\"name\":\"keyword.operator.assignment.compound.bitwise.cpp\"},\"33\":{\"name\":\"keyword.operator.assignment.cpp\"}},\"name\":\"meta.assignment.cpp\"},\"variable_declare\":{\"match\":\"(?:((?:(?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)(?<!\\\\w)(?:thread_local|volatile|register|restrict|static|extern|const)(?!\\\\w)\\\\s+)+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(\\\\s*+((?:(?:(?:\\\\[\\\\[.*?\\\\]\\\\]|__attribute(?:__)?\\\\s*\\\\(\\\\s*\\\\(.*?\\\\)\\\\s*\\\\))|__declspec\\\\(.*?\\\\))|alignas\\\\(.*?\\\\))(?!\\\\)))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:((?:::)?(?:(?!\\\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\\\b)(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\\\\s*+(((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<16>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)\\\\s*+)?::)*+)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\\\b)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\\\\b((?<!<)<(?!<)(?:(?:\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/)|(?:\\\"(?:[^\\\"]*|\\\\\\\\\\\")\\\")|(?:'(?:[^']*|\\\\\\\\')')|\\\\g<16>|(?:(?:[^'\\\"<>\\\\/]|\\\\/[^*])++))*>)?(?![\\\\w<:.]))(((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))?(?:(?:&|\\\\*)((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z)))*(?:&|\\\\*))?((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?:(?:(?:(?:(\\\\b[a-z0-9]+\\\\b)|(\\\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\\\b))|(\\\\b[a-z]+[A-Z][a-zA-Z0-9]*\\\\b))|(\\\\b[A-Z][A-Z_0-9]*\\\\b))|((?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)))((?:((?:\\\\s*+\\\\/\\\\*(?:[^\\\\*]++|\\\\*+(?!\\\\/))*+\\\\*\\\\/\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))(?=;|,|\\\\[)(?![^=]++=)\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#storage_specifiers\"}]},\"2\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"3\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"4\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"5\":{\"name\":\"meta.qualified-type.cpp\",\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp\"},{\"match\":\"(?<!\\\\w)(?:struct|class|union|enum)(?!\\\\w)\",\"name\":\"storage.type.$0.cpp\"},{\"include\":\"#attributes_context\"},{\"include\":\"#storage_types\"},{\"include\":\"#number_literal\"},{\"include\":\"#string_context\"},{\"include\":\"#comma\"},{\"include\":\"#scope_resolution_inner_generated\"},{\"include\":\"#template_call_range_helper\"},{\"match\":\"(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*\",\"name\":\"entity.name.type.cpp\"}]},\"6\":{\"patterns\":[{\"include\":\"#attributes_context\"},{\"include\":\"#number_literal\"}]},\"7\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"8\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"9\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"10\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"11\":{\"patterns\":[{\"match\":\"::\",\"name\":\"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp\"},{\"match\":\"(?<!\\\\w)(?:[a-zA-Z_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\\\\\u[0-9a-fA-F]{4}|\\\\\\\\U[0-9a-fA-F]{8}))*(?!\\\\w)\",\"name\":\"entity.name.scope-resolution.type.cpp\"},{\"include\":\"#template_call_range_helper\"}]},\"12\":{\"patterns\":[{\"include\":\"#template_call_range_helper\"}]},\"14\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"15\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"17\":{\"patterns\":[{\"match\":\"\\\\*\",\"name\":\"storage.modifier.pointer.cpp\"},{\"match\":\"(?:\\\\&((?:(?:(?:\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+)+)|(?:\\\\s++)|(?<=\\\\W)|(?=\\\\W)|^|(?:\\\\n?$)|\\\\A|\\\\Z))){2,}\\\\&\",\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"2\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"3\":{\"name\":\"comment.block.cpp\"},\"4\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}},\"name\":\"invalid.illegal.reference-type.cpp\"},{\"match\":\"\\\\&\",\"name\":\"storage.modifier.reference.cpp\"}]},\"18\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"19\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"20\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"21\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"22\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"23\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]},\"24\":{\"name\":\"variable.lower-case.cpp variable.other.declare.cpp\"},\"25\":{\"name\":\"variable.snake-case.cpp variable.other.declare.cpp\"},\"26\":{\"name\":\"variable.camel-case.cpp variable.other.declare.cpp\"},\"27\":{\"name\":\"variable.upper-case.cpp variable.other.declare.cpp\"},\"28\":{\"name\":\"variable.other.unknown.$28.cpp\"},\"29\":{\"patterns\":[{\"include\":\"#inline_comment\"}]},\"30\":{\"patterns\":[{\"match\":\"\\\\s*+(\\\\/\\\\*)((?:[^\\\\*]++|\\\\*+(?!\\\\/))*+(\\\\*\\\\/))\\\\s*+\",\"captures\":{\"1\":{\"name\":\"comment.block.cpp punctuation.definition.comment.begin.cpp\"},\"2\":{\"name\":\"comment.block.cpp\"},\"3\":{\"name\":\"comment.block.cpp punctuation.definition.comment.end.cpp\"}}}]}},\"name\":\"meta.declaration.cpp\"},\"wordlike_operators\":{\"patterns\":[{\"match\":\"(?<!\\\\w)(?:noexcept|xor_eq|and_eq|delete|not_eq|bitand|bitor|compl|or_eq|not|xor|new|and|or)(?!\\\\w)\",\"name\":\"keyword.operator.wordlike.cpp keyword.operator.$0.cpp\"}]}}}"
  },
  {
    "path": "syntax/doctex-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"^^A\"\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"\\\\begin{\", \"\"],\n\t\t[\"\\\\left(\", \"\"],\n\t\t[\"\\\\left[\", \"\"],\n\t\t[\"\\\\left{\", \"\"],\n\t\t[\"\\\\bigl(\", \"\"],\n\t\t[\"\\\\bigl[\", \"\"],\n\t\t[\"\\\\bigl{\", \"\"],\n\t\t[\"\\\\Bigl(\", \"\"],\n\t\t[\"\\\\Bigl[\", \"\"],\n\t\t[\"\\\\Bigl{\", \"\"],\n\t\t[\"\\\\biggl(\", \"\"],\n\t\t[\"\\\\biggl[\", \"\"],\n\t\t[\"\\\\biggl{\", \"\"],\n\t\t[\"\\\\Biggl(\", \"\"],\n\t\t[\"\\\\Biggl[\", \"\"],\n\t\t[\"\\\\Biggl{\", \"\"],\n\t\t[\"\\\\(\", \"\"],\n\t\t[\"\\\\[\", \"\"],\n\t\t[\"\\\\{\", \"\"],\n\t\t[\"@(\", \"\"],\n\t\t[\"@[\", \"\"],\n\t\t[\"@{\", \"\"],\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"`\", \"'\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"`\", \"'\"],\n\t\t[\"$\", \"$\"]\n\t],\n\t\"indentationRules\": {\n\t\t\"increaseIndentPattern\": \"(\\\\\\\\begin{(?!(document|macrocode)))|(\\\\\\\\documentclass)\",\n\t\t\"decreaseIndentPattern\": \"(\\\\\\\\end{)|(\\\\\\\\begin{document})\"\n\t},\n\t\"folding\": {\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*%\\\\s*#?region\\\\b.*\",\n\t\t\t\"end\": \"^\\\\s*%\\\\s*#?endregion\\\\b.*\"\n\t\t}\n\t},\n\t\"onEnterRules\": [\n\t\t{\"beforeText\":\"^%    .*\", \"action\":{\"indent\":\"none\", \"appendText\":\"%    \"}},\n\t\t{\"beforeText\":\"^%.*\", \"action\":{\"indent\":\"none\", \"appendText\":\"% \"}}\n\t]\n}\n"
  },
  {
    "path": "syntax/latex-cpp-embedded-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"//\",\n\t\t\"blockComment\": [\n\t\t\t\"/*\",\n\t\t\t\"*/\"\n\t\t]\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t{\"open\":\"[\", \"close\":\"]\"},\n\t\t{\"open\":\"{\", \"close\":\"}\"},\n\t\t{\"open\":\"(\", \"close\":\")\"},\n\t\t{\"open\":\"'\", \"close\":\"'\", \"notIn\":[\"string\", \"comment\"]},\n\t\t{\"open\":\"\\\"\", \"close\":\"\\\"\", \"notIn\":[\"string\"]},\n\t\t{\"open\":\"/*\", \"close\":\"*/\", \"notIn\":[\"string\", \"comment\"]},\n\t\t{\"open\":\"/**\", \"close\":\" */\", \"notIn\":[\"string\"]}\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"<\", \">\"]\n\t],\n\t\"wordPattern\": \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\~\\\\!\\\\@\\\\#\\\\%\\\\^\\\\&\\\\*\\\\(\\\\)\\\\-\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\<\\\\>\\\\/\\\\?\\\\s]+)\",\n\t\"folding\": {\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*#\\\\s*pragma\\\\s+region\\\\b\",\n\t\t\t\"end\": \"^\\\\s*#\\\\s*pragma\\\\s+endregion\\\\b\"\n\t\t}\n\t},\n\t\"indentationRules\": {\n\t\t\"decreaseIndentPattern\": {\n\t\t\t\"pattern\": \"^\\\\s*[\\\\}\\\\]\\\\)].*$\"\n\t\t},\n\t\t\"increaseIndentPattern\": {\n\t\t\t\"pattern\": \"^.*(\\\\{[^}]*|\\\\([^)]*|\\\\[[^\\\\]]*)$\"\n\t\t}\n\t},\n\t\"onEnterRules\": [\n\t\t{\"previousLineText\":\"^\\\\s*(((else ?)?if|for|while)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)$\", \"beforeText\":\"^\\\\s+([^{i\\\\s]|i(?!f\\\\b))\", \"action\":{\"indent\":\"outdent\"}},\n\t\t{\"beforeText\":{\"pattern\":\"//.*\"},\"afterText\":{\"pattern\":\"^(?!\\\\s*$).+\"},\"action\":{\"indent\":\"none\", \"appendText\":\"// \"}}\n\t]\n}\n"
  },
  {
    "path": "syntax/latex-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"%\"\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"[\", \")\"],\n\t\t[\"(\", \"]\"],\n\t\t[\"\\\\{\", \"\\\\}\"],\n\t\t[\"\\\\left(\", \"\\\\right)\"],\n\t\t[\"\\\\left(\", \"\\\\right]\"],\n\t\t[\"\\\\left(\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right]\"],\n\t\t[\"\\\\left[\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right]\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left<\", \"\\\\right>\"],\n\t\t[\"\\\\bigl(\", \"\\\\bigr)\"],\n\t\t[\"\\\\bigl[\", \"\\\\bigr]\"],\n\t\t[\"\\\\bigl\\\\{\", \"\\\\bigr\\\\}\"],\n\t\t[\"\\\\Bigl(\", \"\\\\Bigr)\"],\n\t\t[\"\\\\Bigl[\", \"\\\\Bigr]\"],\n\t\t[\"\\\\Bigl\\\\{\", \"\\\\Bigr\\\\}\"],\n\t\t[\"\\\\biggl(\", \"\\\\biggr)\"],\n\t\t[\"\\\\biggl[\", \"\\\\biggr]\"],\n\t\t[\"\\\\biggl\\\\{\", \"\\\\biggr\\\\}\"],\n\t\t[\"\\\\Biggl(\", \"\\\\Biggr)\"],\n\t\t[\"\\\\Biggl[\", \"\\\\Biggr]\"],\n\t\t[\"\\\\Biggl\\\\{\", \"\\\\Biggr\\\\}\"],\n\t\t[\"\\\\langle\", \"\\\\rangle\"],\n\t\t[\"\\\\lvert\", \"\\\\rvert\"],\n\t\t[\"\\\\lVert\", \"\\\\rVert\"],\n\t\t[\"\\\\left|\", \"\\\\right|\"],\n\t\t[\"\\\\left.\", \"\\\\right|\"],\n\t\t[\"\\\\left|\", \"\\\\right.\"],\n\t\t[\"\\\\left\\\\vert\", \"\\\\right\\\\vert\"],\n\t\t[\"\\\\left\\\\|\", \"\\\\right\\\\|\"],\n\t\t[\"\\\\left\\\\Vert\", \"\\\\right\\\\Vert\"],\n\t\t[\"\\\\left\\\\langle\", \"\\\\right\\\\rangle\"],\n\t\t[\"\\\\left\\\\lvert\", \"\\\\right\\\\rvert\"],\n\t\t[\"\\\\left\\\\lVert\", \"\\\\right\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\langle\", \"\\\\bigr\\\\rangle\"],\n\t\t[\"\\\\bigl|\", \"\\\\bigr|\"],\n\t\t[\"\\\\bigl\\\\vert\", \"\\\\bigr\\\\vert\"],\n\t\t[\"\\\\bigl\\\\lvert\", \"\\\\bigr\\\\rvert\"],\n\t\t[\"\\\\bigl\\\\|\", \"\\\\bigr\\\\|\"],\n\t\t[\"\\\\bigl\\\\lVert\", \"\\\\bigr\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\Vert\", \"\\\\bigr\\\\Vert\"],\n\t\t[\"\\\\Bigl\\\\langle\", \"\\\\Bigr\\\\rangle\"],\n\t\t[\"\\\\Bigl|\", \"\\\\Bigr|\"],\n\t\t[\"\\\\Bigl\\\\lvert\", \"\\\\Bigr\\\\rvert\"],\n\t\t[\"\\\\Bigl\\\\vert\", \"\\\\Bigr\\\\vert\"],\n\t\t[\"\\\\Bigl\\\\|\", \"\\\\Bigr\\\\|\"],\n\t\t[\"\\\\Bigl\\\\lVert\", \"\\\\Bigr\\\\rVert\"],\n\t\t[\"\\\\Bigl\\\\Vert\", \"\\\\Bigr\\\\Vert\"],\n\t\t[\"\\\\biggl\\\\langle\", \"\\\\biggr\\\\rangle\"],\n\t\t[\"\\\\biggl|\", \"\\\\biggr|\"],\n\t\t[\"\\\\biggl\\\\lvert\", \"\\\\biggr\\\\rvert\"],\n\t\t[\"\\\\biggl\\\\vert\", \"\\\\biggr\\\\vert\"],\n\t\t[\"\\\\biggl\\\\|\", \"\\\\biggr\\\\|\"],\n\t\t[\"\\\\biggl\\\\lVert\", \"\\\\biggr\\\\rVert\"],\n\t\t[\"\\\\biggl\\\\Vert\", \"\\\\biggr\\\\Vert\"],\n\t\t[\"\\\\Biggl\\\\langle\", \"\\\\Biggr\\\\rangle\"],\n\t\t[\"\\\\Biggl|\", \"\\\\Biggr|\"],\n\t\t[\"\\\\Biggl\\\\lvert\", \"\\\\Biggr\\\\rvert\"],\n\t\t[\"\\\\Biggl\\\\vert\", \"\\\\Biggr\\\\vert\"],\n\t\t[\"\\\\Biggl\\\\|\", \"\\\\Biggr\\\\|\"],\n\t\t[\"\\\\Biggl\\\\lVert\", \"\\\\Biggr\\\\rVert\"],\n\t\t[\"\\\\Biggl\\\\Vert\", \"\\\\Biggr\\\\Vert\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"\\\\begin{\", \"\"],\n\t\t[\"\\\\left(\", \"\"],\n\t\t[\"\\\\left[\", \"\"],\n\t\t[\"\\\\left{\", \"\"],\n\t\t[\"\\\\bigl(\", \"\"],\n\t\t[\"\\\\bigl[\", \"\"],\n\t\t[\"\\\\bigl{\", \"\"],\n\t\t[\"\\\\Bigl(\", \"\"],\n\t\t[\"\\\\Bigl[\", \"\"],\n\t\t[\"\\\\Bigl{\", \"\"],\n\t\t[\"\\\\biggl(\", \"\"],\n\t\t[\"\\\\biggl[\", \"\"],\n\t\t[\"\\\\biggl{\", \"\"],\n\t\t[\"\\\\Biggl(\", \"\"],\n\t\t[\"\\\\Biggl[\", \"\"],\n\t\t[\"\\\\Biggl{\", \"\"],\n\t\t[\"\\\\(\", \"\"],\n\t\t[\"\\\\[\", \"\"],\n\t\t[\"\\\\{\", \"\"],\n\t\t[\"@(\", \"\"],\n\t\t[\"@[\", \"\"],\n\t\t[\"@{\", \"\"],\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"`\", \"'\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"`\", \"'\"],\n\t\t[\"$\", \"$\"]\n\t],\n\t\"indentationRules\": {\n\t\t\"increaseIndentPattern\": \"\\\\\\\\begin{(?!document)([^}]*)}(?!.*\\\\\\\\end{\\\\1})\",\n\t\t\"decreaseIndentPattern\": \"^\\\\s*\\\\\\\\end{(?!document)\"\n\t},\n\t\"folding\": {\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*%?\\\\s*(region|\\\\\\\\begingroup)\\\\b\",\n\t\t\t\"end\": \"^\\\\s*%?\\\\s*(endregion|\\\\\\\\endgroup)\\\\b\"\n\t\t}\n\t},\n\t\"autoCloseBefore\": \";:.,={}])>\\\\` \\n\\t$\",\n\t\"wordPattern\": {\n\t\t\"pattern\": \"(__)|(\\\\*\\\\*)|(\\\\.\\\\.\\\\.)|(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n\t\t\"flags\": \"u\"\n\t}\n}\n"
  },
  {
    "path": "syntax/latex-workshop-log-language-configuration.json",
    "content": "{\n\t\"brackets\": [\n\t\t[\"[\", \"]\"]\n\t],\n\t\"wordPattern\": \"(#-?\\\\d+|[A-Za-z_.][0-9A-Za-z_.]*\\\\$?)\"\n}\n"
  },
  {
    "path": "syntax/latex3-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"lineComment\": \"%\"\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"[\", \")\"],\n\t\t[\"(\", \"]\"],\n\t\t[\"\\\\{\", \"\\\\}\"],\n\t\t[\"\\\\left(\", \"\\\\right)\"],\n\t\t[\"\\\\left(\", \"\\\\right]\"],\n\t\t[\"\\\\left(\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right]\"],\n\t\t[\"\\\\left[\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right]\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left<\", \"\\\\right>\"],\n\t\t[\"\\\\bigl(\", \"\\\\bigr)\"],\n\t\t[\"\\\\bigl[\", \"\\\\bigr]\"],\n\t\t[\"\\\\bigl\\\\{\", \"\\\\bigr\\\\}\"],\n\t\t[\"\\\\Bigl(\", \"\\\\Bigr)\"],\n\t\t[\"\\\\Bigl[\", \"\\\\Bigr]\"],\n\t\t[\"\\\\Bigl\\\\{\", \"\\\\Bigr\\\\}\"],\n\t\t[\"\\\\biggl(\", \"\\\\biggr)\"],\n\t\t[\"\\\\biggl[\", \"\\\\biggr]\"],\n\t\t[\"\\\\biggl\\\\{\", \"\\\\biggr\\\\}\"],\n\t\t[\"\\\\Biggl(\", \"\\\\Biggr)\"],\n\t\t[\"\\\\Biggl[\", \"\\\\Biggr]\"],\n\t\t[\"\\\\Biggl\\\\{\", \"\\\\Biggr\\\\}\"],\n\t\t[\"\\\\langle\", \"\\\\rangle\"],\n\t\t[\"\\\\lvert\", \"\\\\rvert\"],\n\t\t[\"\\\\lVert\", \"\\\\rVert\"],\n\t\t[\"\\\\left|\", \"\\\\right|\"],\n\t\t[\"\\\\left.\", \"\\\\right|\"],\n\t\t[\"\\\\left|\", \"\\\\right.\"],\n\t\t[\"\\\\left\\\\vert\", \"\\\\right\\\\vert\"],\n\t\t[\"\\\\left\\\\|\", \"\\\\right\\\\|\"],\n\t\t[\"\\\\left\\\\Vert\", \"\\\\right\\\\Vert\"],\n\t\t[\"\\\\left\\\\langle\", \"\\\\right\\\\rangle\"],\n\t\t[\"\\\\left\\\\lvert\", \"\\\\right\\\\rvert\"],\n\t\t[\"\\\\left\\\\lVert\", \"\\\\right\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\langle\", \"\\\\bigr\\\\rangle\"],\n\t\t[\"\\\\bigl|\", \"\\\\bigr|\"],\n\t\t[\"\\\\bigl\\\\vert\", \"\\\\bigr\\\\vert\"],\n\t\t[\"\\\\bigl\\\\lvert\", \"\\\\bigr\\\\rvert\"],\n\t\t[\"\\\\bigl\\\\|\", \"\\\\bigr\\\\|\"],\n\t\t[\"\\\\bigl\\\\lVert\", \"\\\\bigr\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\Vert\", \"\\\\bigr\\\\Vert\"],\n\t\t[\"\\\\Bigl\\\\langle\", \"\\\\Bigr\\\\rangle\"],\n\t\t[\"\\\\Bigl|\", \"\\\\Bigr|\"],\n\t\t[\"\\\\Bigl\\\\lvert\", \"\\\\Bigr\\\\rvert\"],\n\t\t[\"\\\\Bigl\\\\vert\", \"\\\\Bigr\\\\vert\"],\n\t\t[\"\\\\Bigl\\\\|\", \"\\\\Bigr\\\\|\"],\n\t\t[\"\\\\Bigl\\\\lVert\", \"\\\\Bigr\\\\rVert\"],\n\t\t[\"\\\\Bigl\\\\Vert\", \"\\\\Bigr\\\\Vert\"],\n\t\t[\"\\\\biggl\\\\langle\", \"\\\\biggr\\\\rangle\"],\n\t\t[\"\\\\biggl|\", \"\\\\biggr|\"],\n\t\t[\"\\\\biggl\\\\lvert\", \"\\\\biggr\\\\rvert\"],\n\t\t[\"\\\\biggl\\\\vert\", \"\\\\biggr\\\\vert\"],\n\t\t[\"\\\\biggl\\\\|\", \"\\\\biggr\\\\|\"],\n\t\t[\"\\\\biggl\\\\lVert\", \"\\\\biggr\\\\rVert\"],\n\t\t[\"\\\\biggl\\\\Vert\", \"\\\\biggr\\\\Vert\"],\n\t\t[\"\\\\Biggl\\\\langle\", \"\\\\Biggr\\\\rangle\"],\n\t\t[\"\\\\Biggl|\", \"\\\\Biggr|\"],\n\t\t[\"\\\\Biggl\\\\lvert\", \"\\\\Biggr\\\\rvert\"],\n\t\t[\"\\\\Biggl\\\\vert\", \"\\\\Biggr\\\\vert\"],\n\t\t[\"\\\\Biggl\\\\|\", \"\\\\Biggr\\\\|\"],\n\t\t[\"\\\\Biggl\\\\lVert\", \"\\\\Biggr\\\\rVert\"],\n\t\t[\"\\\\Biggl\\\\Vert\", \"\\\\Biggr\\\\Vert\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"\\\\begin{\", \"\"],\n\t\t[\"\\\\left(\", \"\"],\n\t\t[\"\\\\left[\", \"\"],\n\t\t[\"\\\\left{\", \"\"],\n\t\t[\"\\\\bigl(\", \"\"],\n\t\t[\"\\\\bigl[\", \"\"],\n\t\t[\"\\\\bigl{\", \"\"],\n\t\t[\"\\\\Bigl(\", \"\"],\n\t\t[\"\\\\Bigl[\", \"\"],\n\t\t[\"\\\\Bigl{\", \"\"],\n\t\t[\"\\\\biggl(\", \"\"],\n\t\t[\"\\\\biggl[\", \"\"],\n\t\t[\"\\\\biggl{\", \"\"],\n\t\t[\"\\\\Biggl(\", \"\"],\n\t\t[\"\\\\Biggl[\", \"\"],\n\t\t[\"\\\\Biggl{\", \"\"],\n\t\t[\"\\\\(\", \"\"],\n\t\t[\"\\\\[\", \"\"],\n\t\t[\"\\\\{\", \"\"],\n\t\t[\"@(\", \"\"],\n\t\t[\"@[\", \"\"],\n\t\t[\"@{\", \"\"],\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"`\", \"'\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"`\", \"'\"],\n\t\t[\"$\", \"$\"]\n\t],\n\t\"indentationRules\": {\n\t\t\"increaseIndentPattern\": \"\\\\\\\\begin{(?!document)([^}]*)}(?!.*\\\\\\\\end{\\\\1})\",\n\t\t\"decreaseIndentPattern\": \"^\\\\s*\\\\\\\\end{(?!document)\"\n\t},\n\t\"folding\": {\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*%?\\\\s*(region|\\\\\\\\begingroup)\\\\b\",\n\t\t\t\"end\": \"^\\\\s*%?\\\\s*(endregion|\\\\\\\\endgroup)\\\\b\"\n\t\t}\n\t},\n\t\"autoCloseBefore\": \";:.,={}])>\\\\` \\n\\t$\",\n\t\"wordPattern\": {\n\t\t\"pattern\": \"(__)|(\\\\*\\\\*)|(\\\\.\\\\.\\\\.)|(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n\t\t\"flags\": \"u\"\n\t}\n}\n"
  },
  {
    "path": "syntax/markdown-latex-combined-language-configuration.json",
    "content": "{\n\t\"comments\": {\n\t\t\"blockComment\": [\n\t\t\t\"<!--\",\n\t\t\t\"-->\"\n\t\t]\n\t},\n\t\"brackets\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"[\", \")\"],\n\t\t[\"(\", \"]\"],\n\t\t[\"\\\\{\", \"\\\\}\"],\n\t\t[\"\\\\left(\", \"\\\\right)\"],\n\t\t[\"\\\\left(\", \"\\\\right]\"],\n\t\t[\"\\\\left(\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right]\"],\n\t\t[\"\\\\left[\", \"\\\\right)\"],\n\t\t[\"\\\\left[\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right]\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left\\\\{\", \"\\\\right.\"],\n\t\t[\"\\\\left.\", \"\\\\right\\\\}\"],\n\t\t[\"\\\\left<\", \"\\\\right>\"],\n\t\t[\"\\\\bigl(\", \"\\\\bigr)\"],\n\t\t[\"\\\\bigl[\", \"\\\\bigr]\"],\n\t\t[\"\\\\bigl\\\\{\", \"\\\\bigr\\\\}\"],\n\t\t[\"\\\\Bigl(\", \"\\\\Bigr)\"],\n\t\t[\"\\\\Bigl[\", \"\\\\Bigr]\"],\n\t\t[\"\\\\Bigl\\\\{\", \"\\\\Bigr\\\\}\"],\n\t\t[\"\\\\biggl(\", \"\\\\biggr)\"],\n\t\t[\"\\\\biggl[\", \"\\\\biggr]\"],\n\t\t[\"\\\\biggl\\\\{\", \"\\\\biggr\\\\}\"],\n\t\t[\"\\\\Biggl(\", \"\\\\Biggr)\"],\n\t\t[\"\\\\Biggl[\", \"\\\\Biggr]\"],\n\t\t[\"\\\\Biggl\\\\{\", \"\\\\Biggr\\\\}\"],\n\t\t[\"\\\\langle\", \"\\\\rangle\"],\n\t\t[\"\\\\lvert\", \"\\\\rvert\"],\n\t\t[\"\\\\lVert\", \"\\\\rVert\"],\n\t\t[\"\\\\left|\", \"\\\\right|\"],\n\t\t[\"\\\\left.\", \"\\\\right|\"],\n\t\t[\"\\\\left|\", \"\\\\right.\"],\n\t\t[\"\\\\left\\\\vert\", \"\\\\right\\\\vert\"],\n\t\t[\"\\\\left\\\\|\", \"\\\\right\\\\|\"],\n\t\t[\"\\\\left\\\\Vert\", \"\\\\right\\\\Vert\"],\n\t\t[\"\\\\left\\\\langle\", \"\\\\right\\\\rangle\"],\n\t\t[\"\\\\left\\\\lvert\", \"\\\\right\\\\rvert\"],\n\t\t[\"\\\\left\\\\lVert\", \"\\\\right\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\langle\", \"\\\\bigr\\\\rangle\"],\n\t\t[\"\\\\bigl|\", \"\\\\bigr|\"],\n\t\t[\"\\\\bigl\\\\vert\", \"\\\\bigr\\\\vert\"],\n\t\t[\"\\\\bigl\\\\lvert\", \"\\\\bigr\\\\rvert\"],\n\t\t[\"\\\\bigl\\\\|\", \"\\\\bigr\\\\|\"],\n\t\t[\"\\\\bigl\\\\lVert\", \"\\\\bigr\\\\rVert\"],\n\t\t[\"\\\\bigl\\\\Vert\", \"\\\\bigr\\\\Vert\"],\n\t\t[\"\\\\Bigl\\\\langle\", \"\\\\Bigr\\\\rangle\"],\n\t\t[\"\\\\Bigl|\", \"\\\\Bigr|\"],\n\t\t[\"\\\\Bigl\\\\lvert\", \"\\\\Bigr\\\\rvert\"],\n\t\t[\"\\\\Bigl\\\\vert\", \"\\\\Bigr\\\\vert\"],\n\t\t[\"\\\\Bigl\\\\|\", \"\\\\Bigr\\\\|\"],\n\t\t[\"\\\\Bigl\\\\lVert\", \"\\\\Bigr\\\\rVert\"],\n\t\t[\"\\\\Bigl\\\\Vert\", \"\\\\Bigr\\\\Vert\"],\n\t\t[\"\\\\biggl\\\\langle\", \"\\\\biggr\\\\rangle\"],\n\t\t[\"\\\\biggl|\", \"\\\\biggr|\"],\n\t\t[\"\\\\biggl\\\\lvert\", \"\\\\biggr\\\\rvert\"],\n\t\t[\"\\\\biggl\\\\vert\", \"\\\\biggr\\\\vert\"],\n\t\t[\"\\\\biggl\\\\|\", \"\\\\biggr\\\\|\"],\n\t\t[\"\\\\biggl\\\\lVert\", \"\\\\biggr\\\\rVert\"],\n\t\t[\"\\\\biggl\\\\Vert\", \"\\\\biggr\\\\Vert\"],\n\t\t[\"\\\\Biggl\\\\langle\", \"\\\\Biggr\\\\rangle\"],\n\t\t[\"\\\\Biggl|\", \"\\\\Biggr|\"],\n\t\t[\"\\\\Biggl\\\\lvert\", \"\\\\Biggr\\\\rvert\"],\n\t\t[\"\\\\Biggl\\\\vert\", \"\\\\Biggr\\\\vert\"],\n\t\t[\"\\\\Biggl\\\\|\", \"\\\\Biggr\\\\|\"],\n\t\t[\"\\\\Biggl\\\\lVert\", \"\\\\Biggr\\\\rVert\"],\n\t\t[\"\\\\Biggl\\\\Vert\", \"\\\\Biggr\\\\Vert\"]\n\t],\n\t\"autoClosingPairs\": [\n\t\t[\"\\\\begin{\", \"\"],\n\t\t[\"\\\\left(\", \"\"],\n\t\t[\"\\\\left[\", \"\"],\n\t\t[\"\\\\left{\", \"\"],\n\t\t[\"\\\\bigl(\", \"\"],\n\t\t[\"\\\\bigl[\", \"\"],\n\t\t[\"\\\\bigl{\", \"\"],\n\t\t[\"\\\\Bigl(\", \"\"],\n\t\t[\"\\\\Bigl[\", \"\"],\n\t\t[\"\\\\Bigl{\", \"\"],\n\t\t[\"\\\\biggl(\", \"\"],\n\t\t[\"\\\\biggl[\", \"\"],\n\t\t[\"\\\\biggl{\", \"\"],\n\t\t[\"\\\\Biggl(\", \"\"],\n\t\t[\"\\\\Biggl[\", \"\"],\n\t\t[\"\\\\Biggl{\", \"\"],\n\t\t[\"\\\\(\", \"\"],\n\t\t[\"\\\\[\", \"\"],\n\t\t[\"\\\\{\", \"\"],\n\t\t[\"@(\", \"\"],\n\t\t[\"@[\", \"\"],\n\t\t[\"@{\", \"\"],\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"]\n\t],\n\t\"surroundingPairs\": [\n\t\t[\"{\", \"}\"],\n\t\t[\"[\", \"]\"],\n\t\t[\"(\", \")\"],\n\t\t[\"\\\"\", \"\\\"\"],\n\t\t[\"'\", \"'\"],\n\t\t[\"$\", \"$\"],\n\t\t[\"`\", \"`\"],\n\t\t[\"_\", \"_\"],\n\t\t[\"*\", \"*\"]\n\t],\n\t\"indentationRules\": {\n\t\t\"increaseIndentPattern\": \"\\\\\\\\begin{(?!document)([^}]*)}(?!.*\\\\\\\\end{\\\\1})\",\n\t\t\"decreaseIndentPattern\": \"^\\\\s*\\\\\\\\end{(?!document)\"\n\t},\n\t\"folding\": {\n\t\t\"offSide\": true,\n\t\t\"markers\": {\n\t\t\t\"start\": \"^\\\\s*<!--\\\\s*#?region\\\\b.*-->\",\n\t\t\t\"end\": \"^\\\\s*<!--\\\\s*#?endregion\\\\b.*-->\"\n\t\t}\n\t},\n\t\"autoCloseBefore\": \";:.,={}])>\\\\` \\n\\t$\",\n\t\"wordPattern\": {\n\t\t\"pattern\": \"([*_]{1,2})?(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})(((\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})|[_])?(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}))*\\\\1\",\n\t\t\"flags\": \"u\"\n\t}\n}\n"
  },
  {
    "path": "syntax/markdown-latex-combined-license.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) Microsoft 2018\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "syntax/markdown-latex-combined.tmLanguage.json",
    "content": "{\n\t\"information_for_contributors\": [\n\t\t\"This file has been converted from https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage\",\n\t\t\"If you want to provide a fix or improvement, please create a pull request against the original repository.\",\n\t\t\"Once accepted there, we are happy to receive an update request.\"\n\t],\n\t\"version\": \"https://github.com/microsoft/vscode-markdown-tm-grammar/commit/0812fc4b190efc17bfed0d5b4ff918eff8e4e377\",\n\t\"name\": \"Markdown\",\n\t\"scopeName\": \"text.tex.markdown_latex_combined\",\n\t\"patterns\": [\n\t\t{\n\t\t\t\"include\": \"text.tex.latex\"\n\t\t},\n\t\t{\n\t\t\t\"include\": \"#frontMatter\"\n\t\t},\n\t\t{\n\t\t\t\"include\": \"#block\"\n\t\t}\n\t],\n\t\"repository\": {\n\t\t\"block\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#separator\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#heading\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#blockquote\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#lists\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#raw_block\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-def\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#html\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#table\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#paragraph\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"blockquote\": {\n\t\t\t\"begin\": \"(^|\\\\G)[ ]{0,3}(>) ?\",\n\t\t\t\"captures\": {\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.quote.begin.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"name\": \"markup.quote.markdown\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#block\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"while\": \"(^|\\\\G)\\\\s*(>) ?\"\n\t\t},\n\t\t\"fenced_code_block_css\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(css|css.erb)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.css\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.css\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_basic\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.html\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.basic\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_ini\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(ini|conf)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.ini\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.ini\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_java\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(java|bsh)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.java\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.java\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_lua\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(lua)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.lua\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.lua\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_makefile\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.makefile\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.makefile\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_perl\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.perl\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.perl\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_r\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(R|r|s|S|Rprofile|\\\\{\\\\.r.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.r\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.r\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_ruby\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.ruby\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.ruby\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_php\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.php\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.basic\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.php\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_sql\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(sql|ddl|dml)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.sql\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.sql\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_vs_net\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(vb)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.vs_net\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.asp.vb.net\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_xml\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.xml\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.xml\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_xsl\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(xsl|xslt)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.xsl\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.xml.xsl\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_yaml\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(yaml|yml)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.yaml\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.yaml\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_dosbatch\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(bat|batch)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.dosbatch\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.batchfile\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_clojure\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(clj|cljs|clojure)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.clojure\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.clojure\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_coffee\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(coffee|Cakefile|coffee.erb)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.coffee\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.coffee\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_c\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(c|h)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.c\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.c\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_cpp\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(cpp|c\\\\+\\\\+|cxx)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.cpp source.cpp\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.cpp\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_diff\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(patch|diff|rej)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.diff\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.diff\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_dockerfile\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(dockerfile|Dockerfile)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.dockerfile\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.dockerfile\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_git_commit\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.git_commit\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.git-commit\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_git_rebase\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(git-rebase-todo)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.git_rebase\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.git-rebase\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_go\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(go|golang)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.go\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.go\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_groovy\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(groovy|gvy)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.groovy\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.groovy\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_pug\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(jade|pug)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.pug\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.pug\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_ignore\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(gitignore|ignore)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.ignore\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.ignore\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_js\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\\\{\\\\.js.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.javascript\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.js\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_js_regexp\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(regexp)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.js_regexp\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.js.regexp\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_json\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.json\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.json\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_jsonc\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(jsonc)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.jsonc\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.json.comments\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_jsonl\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(jsonl|jsonlines)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.jsonl\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.json.lines\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_less\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(less)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.less\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.css.less\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_objc\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.objc\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.objc\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_swift\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(swift)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.swift\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.swift\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_scss\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(scss)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.scss\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.css.scss\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_perl6\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.perl6\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.perl.6\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_powershell\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.powershell\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.powershell\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_python\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\\\{\\\\.python.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.python\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.python\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_julia\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(julia|\\\\{\\\\.julia.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.julia\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.julia\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_regexp_python\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(re)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.regexp_python\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.regexp.python\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_rust\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(rust|rs|\\\\{\\\\.rust.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.rust\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.rust\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_scala\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(scala|sbt)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.scala\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.scala\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_shell\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\\\{\\\\.bash.+?\\\\})((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.shellscript\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.shell\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_ts\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(typescript|ts)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.typescript\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.ts\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_tsx\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(tsx)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.typescriptreact\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.tsx\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_csharp\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(cs|csharp|c#)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.csharp\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.cs\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_fsharp\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(fs|fsharp|f#)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.fsharp\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.fsharp\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_dart\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(dart)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.dart\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.dart\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_handlebars\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(handlebars|hbs)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.handlebars\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.handlebars\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_markdown\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(markdown|md)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.markdown\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.markdown\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_log\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(log)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.log\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.log\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_erlang\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(erlang)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.erlang\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.erlang\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_elixir\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(elixir)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.elixir\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.elixir\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_latex\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(latex|tex)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.latex\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.tex.latex\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_bibtex\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(bibtex)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.bibtex\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.bibtex\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_twig\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(twig)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.twig\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.twig\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_yang\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(yang)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.yang\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.yang\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_abap\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(abap)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.abap\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.abap\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_restructuredtext\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?i:(restructuredtext|rst)((\\\\s+|:|,|\\\\{|\\\\?)[^`]*)?$)\",\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\",\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language.attributes.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(.*)\",\n\t\t\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*([`~]{3,})\\\\s*$)\",\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.restructuredtext\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.rst\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_css\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_basic\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_ini\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_java\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_lua\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_makefile\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_perl\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_r\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_ruby\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_php\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_sql\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_vs_net\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_xml\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_xsl\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_yaml\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_dosbatch\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_clojure\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_coffee\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_c\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_cpp\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_diff\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_dockerfile\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_git_commit\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_git_rebase\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_go\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_groovy\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_pug\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_ignore\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_js\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_js_regexp\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_json\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_jsonc\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_jsonl\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_less\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_objc\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_swift\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_scss\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_perl6\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_powershell\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_python\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_julia\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_regexp_python\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_rust\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_scala\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_shell\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_ts\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_tsx\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_csharp\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_fsharp\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_dart\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_handlebars\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_markdown\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_log\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_erlang\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_elixir\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_latex\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_bibtex\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_twig\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_yang\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_abap\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_restructuredtext\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#fenced_code_block_unknown\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"fenced_code_block_unknown\": {\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\s*)(`{3,}|~{3,})\\\\s*(?=([^`]*)?$)\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"fenced_code.block.language\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"end\": \"(^|\\\\G)(\\\\2|\\\\s{0,3})(\\\\3)\\\\s*$\",\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"name\": \"markup.fenced_code.block.markdown\"\n\t\t},\n\t\t\"heading\": {\n\t\t\t\"match\": \"(?:^|\\\\G)[ ]{0,3}(#{1,6}\\\\s+(.*?)(\\\\s+#{1,6})?\\\\s*)$\",\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{6})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.6.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{5})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.5.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{4})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.4.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{3})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.3.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{2})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.2.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"match\": \"(#{1})\\\\s+(.*?)(?:\\\\s+(#+))?\\\\s*$\",\n\t\t\t\t\t\t\t\"name\": \"heading.1.markdown\",\n\t\t\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"entity.name.section.markdown\",\n\t\t\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\t\t\"name\": \"punctuation.definition.heading.markdown\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"name\": \"markup.heading.markdown\"\n\t\t},\n\t\t\"heading-setext\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"match\": \"^(={3,})(?=[ \\\\t]*$\\\\n?)\",\n\t\t\t\t\t\"name\": \"markup.heading.setext.1.markdown\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"match\": \"^(-{3,})(?=[ \\\\t]*$\\\\n?)\",\n\t\t\t\t\t\"name\": \"markup.heading.setext.2.markdown\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"html\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)\\\\s*(<!--)\",\n\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.comment.html\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.comment.html\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"end\": \"(-->)\",\n\t\t\t\t\t\"name\": \"comment.block.html\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(?i)(^|\\\\G)\\\\s*(?=<(script|style|pre)(\\\\s|$|>)(?!.*?</(script|style|pre)>))\",\n\t\t\t\t\t\"end\": \"(?i)(.*)((</)(script|style|pre)(>))\",\n\t\t\t\t\t\"endCaptures\": {\n\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\"name\": \"meta.tag.structure.$4.end.html\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.tag.begin.html\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"4\": {\n\t\t\t\t\t\t\t\"name\": \"entity.name.tag.html\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"5\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.tag.end.html\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"begin\": \"(\\\\s*|$)\",\n\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\"while\": \"(?i)^(?!.*</(script|style|pre)>)\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(?i)(^|\\\\G)\\\\s*(?=</?[a-zA-Z]+[^\\\\s/&gt;]*(\\\\s|$|/?>))\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"while\": \"^(?!\\\\s*$)\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)\\\\s*(?=(<[a-zA-Z0-9\\\\-](/?>|\\\\s.*?>)|</[a-zA-Z0-9\\\\-]>)\\\\s*$)\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"while\": \"^(?!\\\\s*$)\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"link-def\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"constant.other.reference.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.separator.key-value.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"10\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"11\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"12\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"13\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"14\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"15\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"16\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"17\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?x)\\n  \\\\s*            # Leading whitespace\\n  (\\\\[)([^]]+?)(\\\\])(:)    # Reference name\\n  [ \\\\t]*          # Optional whitespace\\n  (?:(<)((?:\\\\\\\\[<>]|[^<>\\\\n])*)(>)|(\\\\S+?))      # The url\\n  [ \\\\t]*          # Optional whitespace\\n  (?:\\n      ((\\\\().+?(\\\\)))    # Match title in parens…\\n    | ((\\\").+?(\\\"))    # or in double quotes…\\n    | ((').+?('))    # or in single quotes.\\n  )?            # Title is optional\\n  \\\\s*            # Optional whitespace\\n  $\\n\",\n\t\t\t\"name\": \"meta.link.reference.def.markdown\"\n\t\t},\n\t\t\"list_paragraph\": {\n\t\t\t\"begin\": \"(^|\\\\G)(?=\\\\S)(?![*+->]\\\\s|[0-9]+\\\\.\\\\s)\",\n\t\t\t\"name\": \"meta.paragraph.markdown\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#heading-setext\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"while\": \"(^|\\\\G)(?!\\\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\\\t]*$\\\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\\\.)\"\n\t\t},\n\t\t\"lists\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)([ ]{0,3})([*+-])([ \\\\t])\",\n\t\t\t\t\t\"beginCaptures\": {\n\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.list.begin.markdown\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"comment\": \"Currently does not support un-indented second lines.\",\n\t\t\t\t\t\"name\": \"markup.list.unnumbered.markdown\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#block\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#list_paragraph\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"while\": \"((^|\\\\G)([ ]{2,4}|\\\\t))|(^[ \\\\t]*$)\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"(^|\\\\G)([ ]{0,3})([0-9]+[\\\\.\\\\)])([ \\\\t])\",\n\t\t\t\t\t\"beginCaptures\": {\n\t\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.list.begin.markdown\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"name\": \"markup.list.numbered.markdown\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#block\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#list_paragraph\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"while\": \"((^|\\\\G)([ ]{2,4}|\\\\t))|(^[ \\\\t]*$)\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"paragraph\": {\n\t\t\t\"begin\": \"(^|\\\\G)[ ]{0,3}(?=[^ \\\\t\\\\n])\",\n\t\t\t\"name\": \"meta.paragraph.markdown\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#heading-setext\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"while\": \"(^|\\\\G)((?=\\\\s*[-=]{3,}\\\\s*$)|[ ]{4,}(?=[^ \\\\t\\\\n]))\"\n\t\t},\n\t\t\"raw_block\": {\n\t\t\t\"begin\": \"(^|\\\\G)([ ]{4}|\\\\t)\",\n\t\t\t\"name\": \"markup.raw.block.markdown\",\n\t\t\t\"while\": \"(^|\\\\G)([ ]{4}|\\\\t)\"\n\t\t},\n\t\t\"separator\": {\n\t\t\t\"match\": \"(^|\\\\G)[ ]{0,3}([\\\\*\\\\-\\\\_])([ ]{0,2}\\\\2){2,}[ \\\\t]*$\\\\n?\",\n\t\t\t\"name\": \"meta.separator.markdown\"\n\t\t},\n\t\t\"frontMatter\": {\n\t\t\t\"begin\": \"\\\\A(?=(-{3,}))\",\n\t\t\t\"end\": \"^ {,3}\\\\1-*[ \\\\t]*$|^[ \\\\t]*\\\\.{3}$\",\n\t\t\t\"applyEndPatternLast\": 1,\n\t\t\t\"endCaptures\": {\n\t\t\t\t\"0\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.end.frontmatter\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"begin\": \"\\\\A(-{3,})(.*)$\",\n\t\t\t\t\t\"while\": \"^(?! {,3}\\\\1-*[ \\\\t]*$|[ \\\\t]*\\\\.{3}$)\",\n\t\t\t\t\t\"beginCaptures\": {\n\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.definition.begin.frontmatter\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"2\": {\n\t\t\t\t\t\t\t\"name\": \"comment.frontmatter\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"contentName\": \"meta.embedded.block.frontmatter\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"source.yaml\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"table\": {\n\t\t\t\"name\": \"markup.table.markdown\",\n\t\t\t\"begin\": \"(^|\\\\G)(\\\\|)(?=[^|].+\\\\|\\\\s*$)\",\n\t\t\t\"beginCaptures\": {\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.table.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"while\": \"(^|\\\\G)(?=\\\\|)\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"match\": \"\\\\|\",\n\t\t\t\t\t\"name\": \"punctuation.definition.table.markdown\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"match\": \"(?<=\\\\|)\\\\s*(:?-+:?)\\\\s*(?=\\\\|)\",\n\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\"name\": \"punctuation.separator.table.markdown\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"match\": \"(?<=\\\\|)\\\\s*(?=\\\\S)((\\\\\\\\\\\\||[^|])+)(?<=\\\\S)\\\\s*(?=\\\\|)\",\n\t\t\t\t\t\"captures\": {\n\t\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"include\": \"#inline\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"inline\": {\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"text.tex.latex\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#ampersand\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bracket\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#italic\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#strikethrough\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#escape\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-email\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inet\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-literal\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-shortcut\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"ampersand\": {\n\t\t\t\"comment\": \"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.\",\n\t\t\t\"match\": \"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)\",\n\t\t\t\"name\": \"meta.other.valid-ampersand.markdown\"\n\t\t},\n\t\t\"bold\": {\n\t\t\t\"begin\": \"(?x) (?<open>(\\\\*\\\\*(?=\\\\w)|(?<!\\\\w)\\\\*\\\\*|(?<!\\\\w)\\\\b__))(?=\\\\S) (?=\\n  (\\n    <[^>]*+>              # HTML tags\\n    | (?<raw>`+)([^`]|(?!(?<!`)\\\\k<raw>(?!`))`)*+\\\\k<raw>\\n                      # Raw\\n    | \\\\\\\\[\\\\\\\\`*_{}\\\\[\\\\]()#.!+\\\\->]?+      # Escapes\\n    | \\\\[\\n    (\\n        (?<square>          # Named group\\n          [^\\\\[\\\\]\\\\\\\\]        # Match most chars\\n          | \\\\\\\\.            # Escaped chars\\n          | \\\\[ \\\\g<square>*+ \\\\]    # Nested brackets\\n        )*+\\n      \\\\]\\n      (\\n        (              # Reference Link\\n          [ ]?          # Optional space\\n          \\\\[[^\\\\]]*+\\\\]        # Ref name\\n        )\\n        | (              # Inline Link\\n          \\\\(            # Opening paren\\n            [ \\\\t]*+        # Optional whitespace\\n            <?(.*?)>?      # URL\\n            [ \\\\t]*+        # Optional whitespace\\n            (          # Optional Title\\n              (?<title>['\\\"])\\n              (.*?)\\n              \\\\k<title>\\n            )?\\n          \\\\)\\n        )\\n      )\\n    )\\n    | (?!(?<=\\\\S)\\\\k<open>).            # Everything besides\\n                      # style closer\\n  )++\\n  (?<=\\\\S)(?=__\\\\b|\\\\*\\\\*)\\\\k<open>                # Close\\n)\\n\",\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.bold.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"end\": \"(?<=\\\\S)(\\\\1)\",\n\t\t\t\"name\": \"markup.bold.markdown\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"applyEndPatternLast\": 1,\n\t\t\t\t\t\"begin\": \"(?=<[^>]*?>)\",\n\t\t\t\t\t\"end\": \"(?<=>)\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#escape\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#ampersand\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bracket\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#italic\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inet\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-email\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-literal\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-shortcut\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#strikethrough\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"bracket\": {\n\t\t\t\"comment\": \"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.\",\n\t\t\t\"match\": \"<(?![a-zA-Z/?\\\\$!])\",\n\t\t\t\"name\": \"meta.other.valid-bracket.markdown\"\n\t\t},\n\t\t\"escape\": {\n\t\t\t\"match\": \"\\\\\\\\[-`*_#+.!(){}\\\\[\\\\]\\\\\\\\>]\",\n\t\t\t\"name\": \"constant.character.escape.markdown\"\n\t\t},\n\t\t\"image-inline\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.description.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.description.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.metadata.markdown\"\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.image.markdown\"\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"10\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.image.markdown\"\n\t\t\t\t},\n\t\t\t\t\"12\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"13\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"14\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"15\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"16\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"17\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"18\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"19\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"20\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"21\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.metadata.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?x)\\n  (\\\\!\\\\[)((?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])*+)(\\\\])\\n                # Match the link text.\\n  (\\\\()            # Opening paren for url\\n    # The url\\n      [ \\\\t]*\\n      (\\n         (<)((?:\\\\\\\\[<>]|[^<>\\\\n])*)(>)\\n         | ((?<url>(?>[^\\\\s()]+)|\\\\(\\\\g<url>*\\\\))*)\\n      )\\n      [ \\\\t]*\\n    (?:\\n        ((\\\\().+?(\\\\)))    # Match title in parens…\\n      | ((\\\").+?(\\\"))    # or in double quotes…\\n      | ((').+?('))    # or in single quotes.\\n    )?            # Title is optional\\n    \\\\s*            # Optional whitespace\\n  (\\\\))\\n\",\n\t\t\t\"name\": \"meta.image.inline.markdown\"\n\t\t},\n\t\t\"image-ref\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.description.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.description.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.markdown\"\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"name\": \"constant.other.reference.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(\\\\!\\\\[)((?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])*+)(\\\\])[ ]?(\\\\[)(.*?)(\\\\])\",\n\t\t\t\"name\": \"meta.image.reference.markdown\"\n\t\t},\n\t\t\"italic\": {\n\t\t\t\"begin\": \"(?x) (?<open>(\\\\*(?=\\\\w)|(?<!\\\\w)\\\\*|(?<!\\\\w)\\\\b_))(?=\\\\S)                # Open\\n  (?=\\n    (\\n      <[^>]*+>              # HTML tags\\n      | (?<raw>`+)([^`]|(?!(?<!`)\\\\k<raw>(?!`))`)*+\\\\k<raw>\\n                        # Raw\\n      | \\\\\\\\[\\\\\\\\`*_{}\\\\[\\\\]()#.!+\\\\->]?+      # Escapes\\n      | \\\\[\\n      (\\n          (?<square>          # Named group\\n            [^\\\\[\\\\]\\\\\\\\]        # Match most chars\\n            | \\\\\\\\.            # Escaped chars\\n            | \\\\[ \\\\g<square>*+ \\\\]    # Nested brackets\\n          )*+\\n        \\\\]\\n        (\\n          (              # Reference Link\\n            [ ]?          # Optional space\\n            \\\\[[^\\\\]]*+\\\\]        # Ref name\\n          )\\n          | (              # Inline Link\\n            \\\\(            # Opening paren\\n              [ \\\\t]*+        # Optional whtiespace\\n              <?(.*?)>?      # URL\\n              [ \\\\t]*+        # Optional whtiespace\\n              (          # Optional Title\\n                (?<title>['\\\"])\\n                (.*?)\\n                \\\\k<title>\\n              )?\\n            \\\\)\\n          )\\n        )\\n      )\\n      | \\\\k<open>\\\\k<open>                   # Must be bold closer\\n      | (?!(?<=\\\\S)\\\\k<open>).            # Everything besides\\n                        # style closer\\n    )++\\n    (?<=\\\\S)(?=_\\\\b|\\\\*)\\\\k<open>                # Close\\n  )\\n\",\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.italic.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"end\": \"(?<=\\\\S)(\\\\1)((?!\\\\1)|(?=\\\\1\\\\1))\",\n\t\t\t\"name\": \"markup.italic.markdown\",\n\t\t\t\"patterns\": [\n\t\t\t\t{\n\t\t\t\t\t\"applyEndPatternLast\": 1,\n\t\t\t\t\t\"begin\": \"(?=<[^>]*?>)\",\n\t\t\t\t\t\"end\": \"(?<=>)\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#escape\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#ampersand\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bracket\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inline\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-inet\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-email\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#image-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-literal\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#link-ref-shortcut\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"include\": \"#strikethrough\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t\"link-email\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\\\.[a-zA-Z0-9-]+)*)(>)\",\n\t\t\t\"name\": \"meta.link.email.lt-gt.markdown\"\n\t\t},\n\t\t\"link-inet\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(<)((?:https?|ftp)://.*?)(>)\",\n\t\t\t\"name\": \"meta.link.inet.markdown\"\n\t\t},\n\t\t\"link-inline\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.title.markdown\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#italic\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#strikethrough\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.metadata.markdown\"\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"10\": {\n\t\t\t\t\t\"name\": \"markup.underline.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"12\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"13\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"14\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"15\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"16\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"17\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"18\": {\n\t\t\t\t\t\"name\": \"string.other.link.description.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"19\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"20\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.string.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"21\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.metadata.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?x)\\n  (\\\\[)((?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])*+)(\\\\])\\n                # Match the link text.\\n  (\\\\()            # Opening paren for url\\n    # The url\\n      [ \\\\t]*\\n      (\\n         (<)((?:\\\\\\\\[<>]|[^<>\\\\n])*)(>)\\n         | ((?<url>(?>[^\\\\s()]+)|\\\\(\\\\g<url>*\\\\))*)\\n      )\\n      [ \\\\t]*\\n    # The title  \\n    (?:\\n        ((\\\\()[^()]*(\\\\)))    # Match title in parens…\\n      | ((\\\")[^\\\"]*(\\\"))    # or in double quotes…\\n      | ((')[^']*('))    # or in single quotes.\\n    )?            # Title is optional\\n    \\\\s*            # Optional whitespace\\n  (\\\\))\\n\",\n\t\t\t\"name\": \"meta.link.inline.markdown\"\n\t\t},\n\t\t\"link-ref\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.title.markdown\",\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#italic\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#strikethrough\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"name\": \"constant.other.reference.link.markdown\"\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.end.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?<![\\\\]\\\\\\\\])(\\\\[)((?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])*+)(\\\\])(\\\\[)([^\\\\]]*+)(\\\\])\",\n\t\t\t\"name\": \"meta.link.reference.markdown\"\n\t\t},\n\t\t\"link-ref-literal\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.end.markdown\"\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.constant.end.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?<![\\\\]\\\\\\\\])(\\\\[)((?<square>[^\\\\[\\\\]\\\\\\\\]|\\\\\\\\.|\\\\[\\\\g<square>*+\\\\])*+)(\\\\])[ ]?(\\\\[)(\\\\])\",\n\t\t\t\"name\": \"meta.link.reference.literal.markdown\"\n\t\t},\n\t\t\"link-ref-shortcut\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.begin.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"name\": \"string.other.link.title.markdown\"\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.link.title.end.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?<![\\\\]\\\\\\\\])(\\\\[)((?:[^\\\\s\\\\[\\\\]\\\\\\\\]|\\\\\\\\[\\\\[\\\\]])+?)((?<!\\\\\\\\)\\\\])\",\n\t\t\t\"name\": \"meta.link.reference.markdown\"\n\t\t},\n\t\t\"raw\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.raw.markdown\"\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.raw.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(`+)((?:[^`]|(?!(?<!`)\\\\1(?!`))`)*+)(\\\\1)\",\n\t\t\t\"name\": \"markup.inline.raw.string.markdown\"\n\t\t},\n\t\t\"strikethrough\": {\n\t\t\t\"captures\": {\n\t\t\t\t\"1\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.strikethrough.markdown\"\n\t\t\t\t},\n\t\t\t\t\"2\": {\n\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"applyEndPatternLast\": 1,\n\t\t\t\t\t\t\t\"begin\": \"(?=<[^>]*?>)\",\n\t\t\t\t\t\t\t\"end\": \"(?<=>)\",\n\t\t\t\t\t\t\t\"patterns\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"include\": \"text.html.derivative\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#escape\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#ampersand\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#bracket\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#raw\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#bold\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#italic\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#image-inline\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-inline\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-inet\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-email\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#image-ref\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-ref-literal\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-ref\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"include\": \"#link-ref-shortcut\"\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"name\": \"punctuation.definition.strikethrough.markdown\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"match\": \"(?<!\\\\\\\\)(~{2,})(?!(?<=\\\\w~~)_)((?:[^~]|(?!(?<![~\\\\\\\\])\\\\1(?!~))~)*+)(\\\\1)(?!(?<=_\\\\1)\\\\w)\",\n\t\t\t\"name\": \"markup.strikethrough.markdown\"\n\t\t}\n\t}\n}"
  },
  {
    "path": "syntax/src/bibtex-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/bibtex-language-configuration.json\"\n}\n"
  },
  {
    "path": "syntax/src/bibtex-style-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/bibtex-style-language-configuration.json\"\n}\n"
  },
  {
    "path": "syntax/src/doctex-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/doctex-language-configuration.json\"\n}\n"
  },
  {
    "path": "syntax/src/latex-cpp-embedded-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/latex-cpp-embedded-language-configuration.json\"\n}\n"
  },
  {
    "path": "syntax/src/latex-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/latex-language-configuration.json\",\n\n\t\"overrides\": {\n\t\t\"autoClosingPairs\": [\n\t\t\t[\"\\\\begin{\", \"\"],\n\t\t\t[\"\\\\left(\", \"\"],\n\t\t\t[\"\\\\left[\", \"\"],\n\t\t\t[\"\\\\left{\", \"\"],\n\t\t\t[\"\\\\bigl(\", \"\"],\n\t\t\t[\"\\\\bigl[\", \"\"],\n\t\t\t[\"\\\\bigl{\", \"\"],\n\t\t\t[\"\\\\Bigl(\", \"\"],\n\t\t\t[\"\\\\Bigl[\", \"\"],\n\t\t\t[\"\\\\Bigl{\", \"\"],\n\t\t\t[\"\\\\biggl(\", \"\"],\n\t\t\t[\"\\\\biggl[\", \"\"],\n\t\t\t[\"\\\\biggl{\", \"\"],\n\t\t\t[\"\\\\Biggl(\", \"\"],\n\t\t\t[\"\\\\Biggl[\", \"\"],\n\t\t\t[\"\\\\Biggl{\", \"\"],\n\t\t\t[\"\\\\(\", \"\"],\n\t\t\t[\"\\\\[\", \"\"],\n\t\t\t[\"\\\\{\", \"\"],\n\t\t\t[\"@(\", \"\"],\n\t\t\t[\"@[\", \"\"],\n\t\t\t[\"@{\", \"\"],\n\t\t\t[\"{\", \"}\"],\n\t\t\t[\"[\", \"]\"],\n\t\t\t[\"(\", \")\"],\n\t\t\t[\"`\", \"'\"]\n\t\t],\n\t\t\"wordPattern\": {\n\t\t\t\"pattern\": \"(__)|(\\\\*\\\\*)|(\\\\.\\\\.\\\\.)|(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n\t\t\t\"flags\": \"u\"\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "syntax/src/latex3-language-configuration.json",
    "content": "{\n\t\"extends\": \"../latex-language-configuration.json\",\n\n\t\"overrides\": {\n\t\t\"wordPattern\": {\n\t\t\t\"pattern\": \"(__)|(\\\\*\\\\*)|(\\\\.\\\\.\\\\.)|(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n\t\t\t\"flags\": \"u\"\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "syntax/src/markdown-latex-combined-language-configuration.json",
    "content": "{\n\t\"extends\": \"https://raw.githubusercontent.com/jlelong/vscode-latex-basics/main/languages/markdown-latex-combined-language-configuration.json\",\n\n\t\"overrides\": {\n\t\t\"autoClosingPairs\": [\n\t\t\t[\"\\\\begin{\", \"\"],\n\t\t\t[\"\\\\left(\", \"\"],\n\t\t\t[\"\\\\left[\", \"\"],\n\t\t\t[\"\\\\left{\", \"\"],\n\t\t\t[\"\\\\bigl(\", \"\"],\n\t\t\t[\"\\\\bigl[\", \"\"],\n\t\t\t[\"\\\\bigl{\", \"\"],\n\t\t\t[\"\\\\Bigl(\", \"\"],\n\t\t\t[\"\\\\Bigl[\", \"\"],\n\t\t\t[\"\\\\Bigl{\", \"\"],\n\t\t\t[\"\\\\biggl(\", \"\"],\n\t\t\t[\"\\\\biggl[\", \"\"],\n\t\t\t[\"\\\\biggl{\", \"\"],\n\t\t\t[\"\\\\Biggl(\", \"\"],\n\t\t\t[\"\\\\Biggl[\", \"\"],\n\t\t\t[\"\\\\Biggl{\", \"\"],\n\t\t\t[\"\\\\(\", \"\"],\n\t\t\t[\"\\\\[\", \"\"],\n\t\t\t[\"\\\\{\", \"\"],\n\t\t\t[\"@(\", \"\"],\n\t\t\t[\"@[\", \"\"],\n\t\t\t[\"@{\", \"\"],\n\t\t\t[\"{\", \"}\"],\n\t\t\t[\"[\", \"]\"],\n\t\t\t[\"(\", \")\"]\n\t\t]\n\t}\n}"
  },
  {
    "path": "test/README.md",
    "content": "# Overview\n\n## Executing tests\n\nWe start a new VS Code instance for `testground` and `multiroot` directories in `test/fixtures/`, which includes a series of TeX-related files for tests, and execute appropriate tests defined in `suites/*.test.ts` while skipping other tests not related to the directory.\nFor tests of building a LaTeX file, we try to build a LaTeX file in the directory.\nIf a PDF file is not generated, the test fails.\nThe TeX files related are automatically created before the test and removed after.\n\n### How tests are executed via CLI\n\n1. `runTest.ts` starts a new VS Code instance for each `fixture` directory and executes `suites/index.ts`.\n2. Tests in `*.test.ts` are executed through test `runTest()` function defined in `suites/utils.ts`, which skip tests in `*.test.ts` if they are not related to the current `fixture` directory.\n\n### How tests are executed via VS Code launch\n\nWe have a `Run Tests` launch configuration in `.vscode/launch.json`.\nIn the config item, the first `args` passed to `code` defines the workspace to open: `testground` typically, and `multiroot/resource.code-workspace` for the multi-root workspace tests.\nAdditionally, the `LATEXWORKSHOP_SUITE` envvar defines the suites to be executed, separated by commas and all if left empty.\n\n\n## Executing Tests on GitHub Actions\n\nRead [.github/workflows](https://github.com/James-Yu/LaTeX-Workshop/tree/master/.github/workflows) to see how tests are executed on GitHub Actions.\n"
  },
  {
    "path": "test/config/texlive_linux.profile",
    "content": "selected_scheme scheme-infraonly\nTEXDIR /tmp/texlive\nTEXMFCONFIG ~/.texlive/texmf-config\nTEXMFHOME ~/texmf\nTEXMFLOCAL /tmp/texlive/texmf-local\nTEXMFSYSCONFIG /tmp/texlive/texmf-config\nTEXMFSYSVAR /tmp/texlive/texmf-var\nTEXMFVAR ~/.texlive/texmf-var\noption_doc 0\noption_src 0\n"
  },
  {
    "path": "test/config/texlive_mac.profile",
    "content": "selected_scheme scheme-infraonly\nTEXDIR /Users/runner/texlive\nTEXMFCONFIG ~/.texlive/texmf-config\nTEXMFHOME ~/texmf\nTEXMFLOCAL /Users/runner/texlive/texmf-local\nTEXMFSYSCONFIG /Users/runner/texlive/texmf-config\nTEXMFSYSVAR /Users/runner/texlive/texmf-var\nTEXMFVAR ~/.texlive/texmf-var\noption_doc 0\noption_src 0\n"
  },
  {
    "path": "test/config/texlive_windows.profile",
    "content": "selected_scheme scheme-infraonly\nTEXDIR D:/texlive\nTEXMFCONFIG ~/.texlive/texmf-config\nTEXMFHOME ~/texmf\nTEXMFLOCAL D:/texlive/texmf-local\nTEXMFSYSCONFIG D:/texlive/texmf-config\nTEXMFSYSVAR D:/texlive/texmf-var\nTEXMFVAR ~/.texlive/texmf-var\noption_doc 0\noption_src 0\n"
  },
  {
    "path": "test/fixtures/armory/base.bib",
    "content": "@article{art1,\n  title       = {A fake article},\n  author      = {Davis, J. and Jones, M.},\n  journal     = {Journal of CI tests},\n  year        = {2022},\n  description = {hintFake}\n}\n\n@book{lamport1994latex,\n  title        = {LATEX: A Document Preparation System : User's Guide and Reference Manual},\n  author       = {Lamport, L. and Bibby, D. and Pearson Education},\n  isbn         = {9780201529838},\n  lccn         = {93039691},\n  series       = {Addison-Wesley Series on Tools},\n  url          = {https://books.google.ch/books?id=khVUAAAAMAAJ},\n  year         = {1994},\n  publisher    = {Addison-Wesley},\n  description = {hintLaTex}\n}\n\n@book{MR1241645,\n  author      = {Rubinstein, Reuven Y. and Shapiro, Alexander},\n  title       = {Discrete event systems},\n  series      = {Wiley Series in Probability and Mathematical Statistics:\n                 Probability and Mathematical Statistics},\n  note        = {Sensitivity analysis and stochastic optimization by the score\n                 function method},\n  publisher   = {John Wiley \\& Sons Ltd.},\n  address     = {Chichester},\n  year        = 1993,\n  description = {hintRubi}\n}\n"
  },
  {
    "path": "test/fixtures/armory/base.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/bibtex_base.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nmain main\n\\bibliographystyle{plain}\n\\bibliography{bib}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/build/markdown_base.tex",
    "content": "\\documentclass{article}\n\\usepackage{markdown}\n\\begin{document}\n\\markdownInput{sub.md}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/build/markdown_sub.md",
    "content": "## Sample\nsample\n\n### Sample\nsample\n"
  },
  {
    "path": "test/fixtures/armory/empty",
    "content": ""
  },
  {
    "path": "test/fixtures/armory/env_pair.tex",
    "content": "\\documentclass{article}\n\\newif\\ifpoo\n\\begin{document}\n\\iftest\naaa\n\\fi\n\\( 1 + 2 \\)\n\\[ 1 + 2 \\]\n\n\\begin{equation*}\n  1 + 2\n\\end{equation*}\n\n\n\\begin{center}\n  \\begin{align}\n    \\iftest\n      1 + 2\n    \\fi\n  \\end{align}\n\\end{center}\n\n\\begin{poo}\n\\ifpoo\n  do\n\\else\n  do\n\\fi\n\naa $ 1 + 2 $ zz\n\\end{document}\n\n\\somecmd2\n"
  },
  {
    "path": "test/fixtures/armory/formatter/bibtex_base.bib",
    "content": "@article{art1,\n  title       = {A fake article},\n  author      = {Davis, J. and Jones, M.},\n  journal     = {Journal of CI tests},\n  year        = {2022},\n  description = {hintFake}\n}\n\n@book{lamport1994latex,\n  title        = {LATEX: A Document Preparation System : User's Guide and Reference Manual},\n  author       = {Lamport, L. and Bibby, D. and Pearson Education},\n  isbn         = {9780201529838},\n  lccn         = {93039691},\n  series       = {Addison-Wesley Series on Tools},\n  url          = {https://books.google.ch/books?id=khVUAAAAMAAJ},\n  year         = {1994},\n  publisher    = {Addison-Wesley},\n  description = {hintLaTex}\n}\n\n@book{MR1241645,\n  author      = {Rubinstein, Reuven Y. and Shapiro, Alexander},\n  title       = {Discrete event systems},\n  series      = {Wiley Series in Probability and Mathematical Statistics:\n                 Probability and Mathematical Statistics},\n  note        = {Sensitivity analysis and stochastic optimization by the score\n                 function method},\n  publisher   = {John Wiley \\& Sons Ltd.},\n  address     = {Chichester},\n  year        = 1993,\n  description = {hintRubi}\n}\n"
  },
  {
    "path": "test/fixtures/armory/formatter/bibtex_dup.bib",
    "content": "@article{art1,\n  title       = {A fake article},\n  author      = {Davis, J. and Jones, M.},\n  journal     = {Journal of CI tests},\n  year        = {2022},\n  description = {hintFake}\n}\n\n@article{art1,\n  title       = {A fake article},\n  author      = {Davis, J. and Jones, M.},\n  journal     = {Journal of CI tests},\n  year        = {2022},\n  description = {hintFake}\n}\n"
  },
  {
    "path": "test/fixtures/armory/formatter/bibtex_sortfield.bib",
    "content": "@article{art1,\n  title       = {A fake article},\n  author      = {Davis, J. and Jones, M.},\n  journal     = {Journal of CI tests},\n  year        = {2022},\n  description = {hintFake}\n}\n"
  },
  {
    "path": "test/fixtures/armory/formatter/latex_base.tex",
    "content": "\\documentclass{article}\n    \\begin{document}\n        abc\n            \\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/import_base.tex",
    "content": "\\documentclass{article}\n\\usepackage{import}\n\\begin{document}\nmain main\n\\subimport{sub}{s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/import_sub.tex",
    "content": "\\subimport{subsub/sss}{sss}\n"
  },
  {
    "path": "test/fixtures/armory/include_base.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nmain main\n\\include{alt}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/include_sub.tex",
    "content": "\\begin{texminted}\n\\include{alt}\n\\end{texminted}\n\\include{sub/s}\n"
  },
  {
    "path": "test/fixtures/armory/input_base.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nmain main\n\\input{sub/s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/input_macro.tex",
    "content": "\\documentclass{article}\n\\providecommand{\\main}{sub}\n\\begin{document}\nmain main\n\\input{\\main/s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/input_parentsub.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nmain main\n\\input{../sub/s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/base.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage{import}\n\\usepackage[savemem]{listings}\n\\begin{document}\nmain main\n@\n#\n\\input{sub/s}\n\\ref{}\n\\begin{align}\nE = mc^{2}\n\\end{align}\n\\begin{frame}[label={frame}]label={trap}\\end{frame}\n\\lstinline[showlines]{test}\n\\begin{lstlisting}[print]\n\\end{lstlisting}\n\\includeonly{sub/plain.tex}\n\\import{sub/plain}\n\\subimport{sub/}{plain.tex}\n\\include{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/citation.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nabc\\cite{}\n\\bibliography{main}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/class_option_with_brace.tex",
    "content": "\\documentclass[aspectratio=169,t,fontset=none,xcolor={x11names},]{ctexbeamer}\n\\usepackage[savemem,formats]{listings}\n\\begin{document}\n\\begin{lstlisting}[style={bash},]\nException in thread \"main\" java.lang.ArithmeticException: / by zero\n\\end{lstlisting}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/glossary.bib",
    "content": "@symbol{fs,\n  name        = {\\ensuremath{f_s}},\n  description = {sample rate}\n}\n\n@symbol{theta,\n  name        = {\\ensuremath{\\theta}},\n  description = {horizontal angle}\n}\n\n@entry{caesar,\n  name={\\sortname{Gaius Julius}{Caesar}},\n  first={\\sortname{Julius}{Caesar}},\n  text={Caesar},\n  description={Roman politician and general},\n  born={13~July 100 BC},\n  died={15~March 44 BC},\n  identifier={person}\n}\n\n@entry{wellesley,\n  name={\\sortname{Arthur}{Wellesley}},\n  text={Wellington},\n  description={Anglo-Irish soldier and statesman},\n  born={1~May 1769 AD},\n  died={14~September 1852 AD},\n  othername={1st Duke of Wellington},\n  identifier={person}\n}\n\n@index{wellington,\n  name={Wellington},\n  alias={wellesley},\n  identifier={person}\n}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/glossary.tex",
    "content": "\\documentclass{article}\n\\usepackage{glossaries}\n\\makeglossaries\n\\loadglsentries{sub/glossary}\n\\begin{document}\n\\gls{}\nmain main\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/glossary_bib.tex",
    "content": "\\documentclass{article}\n\\usepackage{glossaries-extra}\n\\GlsXtrLoadResources[\n  src={glos.bib},\n]\n\n\\begin{document}\nabc\\gls{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/glossaryentries.tex",
    "content": "\\newacronym{rf}{RF}{radio-frequency}\n\\newacronym{te}{TM}{Transverse Magnetic}\n\\newacronym{E_P}{E}{Elastic $\\varepsilon$ toto}\n\\newacronym[argopt]{EPE_x}{E} % Badly formed entry\n\\newglossaryentry{lw}{name={LaTeX Workshop}, description={What this extension is $\\mathbb{A}$}}\n\\newglossaryentry{vs_code}{name=VSCode, description=Editor}\n\\newabbr{abbr_x}{Ebbr}{A first abbreviation}\n\\newabbreviation[optional arg]{abbr_y}{Ybbr}{A second abbreviation}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/koma.tex",
    "content": "\\documentclass{scrartcl}\n\\begin{document}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/label.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage{lineno}\n\\begin{document}\nmain main\\linelabel{l1}\n\\begin{align}\\label{e1}\nE = mc^{2}\n\\end{align}\n\\ref{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/newcommand.tex",
    "content": "\\documentclass[10pt]{article}\n\\newcommand\\WARNING{\\textcolor{red}{WARNING}}\n\\newcommand\\FIXME[1]{\\textcolor{red}{FIX:}\\textcolor{red}{#1}}\n\\newcommand\\FIXMETOO[2][]{\\textcolor{red}{FIX:}\\textcolor{red}{#1}}\n\\newcommand{\\fix}[3][]{\\chdeleted{#2}\\chadded[comment={#1}]{#3}}\n\\begin{document}\n\\WARNING\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/newdocumentcommand.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage{xparse}\n\\NewDocumentCommand\\testNoArg{}{ABC}\n\\DeclareDocumentCommand\\testA{m}{ABC #1}\n\\NewDocumentCommand{\\testB}{O{}m}{ABC #2 #1}\n\\ProvideDocumentCommand{\\testC}{m o O{} m r() m}{ABC}\n\\begin{document}\n\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_on_cmd_1.tex",
    "content": "\\documentclass[10pt]{article}\n% \\usepackage[savemem]{listings}\n\\begin{document}\n\\\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_on_cmd_2.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage[savemem]{listings}\n\\begin{document}\n\\\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_on_env_1.tex",
    "content": "\\documentclass[10pt]{article}\n% \\usepackage{algorithm2e}\n\\begin{document}\n\\begin{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_on_env_2.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage{algorithm2e}\n\\begin{document}\n\\begin{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_option_on_cmd.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage[savemem,formats]{listings}\n\\begin{document}\n\\\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/package_option_on_env.tex",
    "content": "\\documentclass[10pt]{article}\n\\usepackage[algo2e]{algorithm2e}\n\\begin{document}\n\\begin{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/sub.tex",
    "content": "\\section{1}\\label{sec1}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/xr_base.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\externaldocument{sub}\n\\externaldocument[alt-]{dup}\n\\begin{document}\n\\section{1}\\label{sec:1}\n\\ref{}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/xr_dup.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\begin{document}\n\\section{1}\\label{sec:1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/intellisense/xr_sub.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{2}\\label{sec:2}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/invalid_cmd.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nabc\\invalidcommand\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/linter_base.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section} \\label{section}\nLaCheck~~Test\n\\input{sub/s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/linter_sub.tex",
    "content": "\\section{Another Section}\n\\label{another}\nLaCheck~~Sub\n"
  },
  {
    "path": "test/fixtures/armory/magic_invalid.tex",
    "content": "% !TEX program = noexistprogram\n\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/magic_option.tex",
    "content": "% !TEX program = latexmk\n% !TEX options = -synctex=1 -interaction=nonstopmode -file-line-error -pdf -outdir=\"./out/\" \"%DOC%\"\n\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/magic_program.tex",
    "content": "% !TEX program = pdflatex\n\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/magic_recipe.tex",
    "content": "%! LW recipe = latexmk\n\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/magic_root.tex",
    "content": "% !TEX root = ../main.tex\nsub sub\n"
  },
  {
    "path": "test/fixtures/armory/makeindex_base.tex",
    "content": "\\documentclass{article}\n\\usepackage{makeidx}\n\\makeindex\n\\begin{document}\nabc\\index{abc}\n\\printindex\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/makeindex_subfile.tex",
    "content": "\\documentclass[../main.tex]{subfiles}\n\\usepackage{makeidx}\n\\makeindex\n\\begin{document}\nabc\\index{abc}\n\\printindex\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/mathpreview/base.tex",
    "content": "$a+b$\n$\\frac{1}{2}$\n$a^b$"
  },
  {
    "path": "test/fixtures/armory/plain.bib",
    "content": "%"
  },
  {
    "path": "test/fixtures/armory/plain.tex",
    "content": "sub sub\n"
  },
  {
    "path": "test/fixtures/armory/plain_verbatim.tex",
    "content": "\\section{Introduction}\nThis is a minimum \\LaTeX\\ document:\n\\begin{verbatim}\n\\documentclass{article}\n\\begin{document}\nsub sub\n\\end{document}\n\\end{verbatim}\n"
  },
  {
    "path": "test/fixtures/armory/structure/commands.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\label{no-show}\n\\note{A note}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/float_nest.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\begin{table}\n\\caption{Table 1}\n\\begin{figure}\n\\end{figure}\n\\end{table}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/floats.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\begin{table}\n\\caption{Table 1}\n\\end{table}\n\\begin{figure}\n\\end{figure}\n\\begin{figure*}\n\\end{figure*}\n\\begin{frame}\n\\end{frame}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/frame_title.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\begin{frame}{Frame 1}\n\\end{frame}\n\\begin{frame}{Frame 2}\n\\frametitle{Trap title}\n\\end{frame}\n\\begin{frame}\n\\frametitle{Frame 3}\n\\end{frame}\n\\begin{frame}{}\n\\frametitle{Frame 4}\n\\end{frame}\n\\begin{frame}\n\\end{frame}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/frames.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\begin{frame}\n\\end{frame}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/labels.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\label{sec-1}\n\\subsection{Section 1.1}\\label{sec-11}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_asterisk.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\section*{Section *}\n\\subsection{Section 1.1}\n\\subsection*{Section *}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_before_root_level.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\subsubsection{Section 0.0.1}\n\\subsection{Section 0.1}\n\\section{Section 1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_custom.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\customsection{Section 1}\n\\subsection{Section}\n\\subsubsection{Section 1.1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_nest.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\subsection{Section 1.1}\n\\subsubsection{Section 1.1.1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_nest_gap.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\subsubsection{Section 1.0.1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/section_title.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Title with\nline break}\n\\section{Title with \\texorpdfstring{wrong}{pdf} switch}\n\\section{Title with \\textit{macros}}\n\\section[Short]{Title with a short one}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/sections.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\section{Section 1}\n\\section{Section 2}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/subfiles.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{sub/s1}\n\\import{sub/}{s2.tex}\n\\subimport{sub/}{s3.tex}\n\\subsubsection{Section 3.0.1}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/structure/subfiles_s1.tex",
    "content": "\\section{Section 1}\n\\subsection{Section 1.1}"
  },
  {
    "path": "test/fixtures/armory/structure/subfiles_s2.tex",
    "content": "\\subsubsection{Section 1.1.1}\n\\section{Section 2}"
  },
  {
    "path": "test/fixtures/armory/structure/subfiles_s3.tex",
    "content": "\\section{Section 3}"
  },
  {
    "path": "test/fixtures/armory/subfile_base.tex",
    "content": "\\documentclass{article}\n\\usepackage{subfiles}\n\\begin{document}\nmain main\n\\subfile{sub/s}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/subfile_sub.tex",
    "content": "\\documentclass[../main.tex]{subfiles}\n\\begin{document}\nsub sub\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/armory/subfile_subsub.tex",
    "content": "\\documentclass[../main.tex]{subfiles}\n\\begin{document}\nsub sub\n\\input{./sub/subsub/infile}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/.vscode/settings.json",
    "content": "{\n}"
  },
  {
    "path": "test/fixtures/unittest/01_core_file/another.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/01_core_file/auxfiles/another.fls",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/01_core_file/main.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/01_core_file/main.fls",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/01_core_file/main.tex",
    "content": "\\documentclass{article}\n\\begin{document}\nabc\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/01_core_file/output/main.fls",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/01_core_file/subdir/sub.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/another.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/another.tex",
    "content": "\\input{main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/circular_1.tex",
    "content": "\\input{circular_2}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/circular_2.tex",
    "content": "\\input{circular_1}\n\\bibliography{../main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/duplicate_1.tex",
    "content": "\\input{duplicate_2}\n\\bibliography{../main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/duplicate_2.tex",
    "content": "\\bibliography{../main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_bib/main.tex",
    "content": "\\bibliography{../main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/another.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/circular_1.tex",
    "content": "\\input{circular_2}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/circular_2.tex",
    "content": "\\input{circular_1}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/duplicate_1.tex",
    "content": "\\input{duplicate_2}\n\\input{main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/duplicate_2.tex",
    "content": "\\input{main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/included_tex/main.tex",
    "content": "\\input{another}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/main.aux",
    "content": "\\bibdata{main}"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/main.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/main.fls",
    "content": "OUTPUT ./main.aux"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/nothing.aux",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/nothing.fls",
    "content": "OUTPUT ./nothing.aux"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_aux_file/nothing.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/aux_out_input.fls",
    "content": "INPUT ./main.aux\nINPUT ./main.out"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/aux_out_input.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/both_input_output.fls",
    "content": "INPUT /article.tex\nOUTPUT /article.tex"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/both_input_output.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/excluded_file.fls",
    "content": "INPUT ../main.bbl"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/excluded_file.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/file_not_exist.fls",
    "content": "INPUT ./not-exist.tex"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/file_not_exist.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/include_main.fls",
    "content": "INPUT ../main.tex"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/include_main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/include_many.fls",
    "content": "INPUT ../main.tex\nINPUT ../another.tex"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/include_many.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/main.aux",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/non_tex_input.fls",
    "content": "INPUT ../main.pdf"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/non_tex_input.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/self_include.fls",
    "content": "INPUT ./self_include.tex"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/load_fls_file/self_include.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/main.bbl",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/main.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/main.fls",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/main.tex",
    "content": "%"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/bib/1.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/bib/2.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/bib/3.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/bib/4.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/bib/5.bib",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/file_excluded.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\bibliography{../main.bbl}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/file_not_exist.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\bibliography{non-existing.bib}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/main.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\bibliography{../main.bib}\n\\addbibresource{bib/1.bib}\n\\bibliography{\\subfix{bib/2.bib}}\n\\addbibresource{\\subfix{bib/3.bib}}\n\\putbib[bib/4.bib]\n\\putbib[\\subfix{bib/5.bib}]\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_bibfiles/same_macro.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\bibliography{../main.bib, bib/1.bib}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children/file_not_exist.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{non-existing.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children/input_main.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{../main.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children/two_inputs.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{../main.tex}\n\\input{../another.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children/two_same_inputs.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{../main.tex}\n\\input{../main.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/file_not_exist.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\begin{document}\n\\externaldocument{non-existing.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/input_main.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\begin{document}\n\\externaldocument{../main.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/input_main_prefix.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\begin{document}\n\\externaldocument[prefix]{../main.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/input_sub.tex",
    "content": "\\documentclass{article}\n\\usepackage{xr}\n\\begin{document}\n\\externaldocument{sub.tex}\n\\end{document}\n"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/sub/main.tex",
    "content": "%"
  },
  {
    "path": "test/fixtures/unittest/03_core_cache/update_children_xr/sub/sub.tex",
    "content": "%"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_active/main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/chain.tex",
    "content": "%!TeX root=main.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/chain_file_not_exist.tex",
    "content": "%!TeX root=non-existent.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/loop_1.tex",
    "content": "%!TeX root=loop_2.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/loop_2.tex",
    "content": "%!TeX root=../main.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.jnw",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.jtexw",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.rnw",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.rtex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.snw",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_magic/more_chain.tex",
    "content": "%!TeX root=chain.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_root/root.tex",
    "content": "\\input{../main}"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_root/root_no_input.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_workspace/another.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_workspace/comment.tex",
    "content": "% \\documentclass{article}\n% \\begin{document}\n"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_workspace/main.fls",
    "content": "INPUT another.tex"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_workspace/main.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/find_workspace/parent.tex",
    "content": "\\documentclass{article}\n\\begin{document}\n\\input{another.tex}\n"
  },
  {
    "path": "test/fixtures/unittest/04_core_root/main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/14_completion_citation/bibfile.bib",
    "content": "@article{miller2024,\n  author    = {Jane Miller and Robert Smith},\n  title     = {An Overview of Quantum Computing: Challenges and Future Directions},\n  journal   = {Journal of Advanced Computing},\n  volume    = {29},\n  number    = {4},\n  pages     = {345--360},\n  year      = {2024},\n  publisher = {Elsevier},\n  doi       = {10.1016/j.jac.2024.01.012},\n  ids       = {altid1}\n}\n\n@string{string1 = \"Proceedings of the \"}\n\n@string{string2 = string1 # \"Foo\"}\n\n@article{miller2025,\n  author    = {Jane {Miller} and {{Robert}} Smith},\n  title     = string2,\n  journal   = string1,\n  volume    = {29},\n  number    = {4},\n  pages     = {345--360},\n  year      = {2025},\n  publisher = {Elsevier},\n  doi       = {10.1016/j.jac.2025.01.012},\n  ids       = {altid2, altid3}\n}"
  },
  {
    "path": "test/fixtures/unittest/14_completion_citation/bibitems.tex",
    "content": "% Generated by ChatGPT\n\n\\begin{thebibliography}{99}\n\n\\bibitem{smith2023} J. Smith, \"Advances in Artificial Intelligence,\" \\textit{Journal of Machine Learning}, vol. 12, no. 3, pp. 45-67, 2023.\n\n\\bibitem{johnson2019} M. Johnson and L. Wang, \\textit{Deep Learning for Natural Language Processing}, 2nd ed., Springer, New York, 2019.\n\n\\bibitem{doe2021} A. Doe and R. Patel, \"A Comprehensive Survey on Blockchain Technologies,\" \\textit{International Journal of Blockchain and Distributed Systems}, vol. 8, no. 2, pp. 101-124, 2021.\n\n\\bibitem{lee2020} C. Lee, \"Quantum Computing and Its Implications,\" in \\textit{Proceedings of the International Conference on Quantum Technologies}, Amsterdam, Netherlands, 2020, pp. 12-21.\n\n\\bibitem{martinez2018} S. Martinez, \"The Role of Big Data in Healthcare,\" \\textit{IEEE Transactions on Healthcare Informatics}, vol. 5, no. 4, pp. 300-312, 2018.\n\n\\bibitem{nguyen2017} P. Nguyen, H. Kim, and Y. Suzuki, \"Optimization Algorithms in Neural Networks,\" \\textit{Artificial Intelligence Review}, vol. 35, no. 1, pp. 15-29, 2017.\n\n\\bibitem{rodriguez2022} J. Rodriguez, \\textit{Cybersecurity: Threats and Solutions}, Pearson Education, London, 2022.\n\n\\bibitem{clark2021} D. Clark and E. Adams, \"Exploring the Internet of Things: Applications and Challenges,\" \\textit{IEEE Internet of Things Journal}, vol. 9, no. 1, pp. 25-38, 2021.\n\n\\bibitem{hansen2019} B. Hansen, \"Machine Learning in Financial Modeling,\" \\textit{Journal of Computational Finance}, vol. 14, no. 3, pp. 77-90, 2019.\n\n\\bibitem{thomas2020} L. Thomas, \"The Future of Robotics in Manufacturing,\" \\textit{Robotics and Autonomous Systems}, vol. 12, no. 4, pp. 111-125, 2020.\n\n\\end{thebibliography}\n\n\\bibliography{bibfile}\n"
  },
  {
    "path": "test/fixtures/unittest/21_completion_input/main.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/21_completion_input/sub/sub1.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/21_completion_input/sub/sub2.tex",
    "content": ""
  },
  {
    "path": "test/fixtures/unittest/22_completion_glossary/glossary.bib",
    "content": "@symbol{fs,\n  name        = {\\ensuremath{f_s}},\n  description = {sample rate}\n}\n\n@symbol{theta,\n  name        = {\\ensuremath{\\theta}},\n  description = {horizontal angle}\n}\n\n@entry{caesar,\n  name={\\sortname{Gaius Julius}{Caesar}},\n  first={\\sortname{Julius}{Caesar}},\n  text={Caesar},\n  description={Roman politician and general},\n  born={13~July 100 BC},\n  died={15~March 44 BC},\n  identifier={person}\n}\n\n@entry{wellesley,\n  name={\\sortname{Arthur}{Wellesley}},\n  text={Wellington},\n  description={Anglo-Irish soldier and statesman},\n  born={1~May 1769 AD},\n  died={14~September 1852 AD},\n  othername={1st Duke of Wellington},\n  identifier={person}\n}\n\n@index{wellington,\n  name={Wellington},\n  alias={wellesley},\n  identifier={person}\n}\n"
  },
  {
    "path": "test/runTest.ts",
    "content": "import * as path from 'path'\nimport * as process from 'process'\nimport * as tmpFile from 'tmp'\nimport { runTests } from '@vscode/test-electron'\n\nasync function runTestSuites(fixture: 'testground' | 'multiroot' | 'unittest') {\n    try {\n        const extensionDevelopmentPath = path.resolve(__dirname, '../../')\n        const extensionTestsPath = fixture === 'unittest' ? path.resolve(__dirname, './units/index') : path.resolve(__dirname, './suites/index')\n\n        await runTests({\n            version: '1.96.0',\n            extensionDevelopmentPath,\n            extensionTestsPath,\n            launchArgs: [\n                'test/fixtures/' + fixture + (fixture === 'multiroot' ? '/resource.code-workspace' : ''),\n                '--user-data-dir=' + tmpFile.dirSync({ unsafeCleanup: true }).name,\n                '--extensions-dir=' + tmpFile.dirSync({ unsafeCleanup: true }).name,\n                '--disable-gpu'\n            ],\n            extensionTestsEnv: {\n                LATEXWORKSHOP_CITEST: '1'\n            }\n        })\n    } catch (error) {\n        console.error(error)\n        console.error('Failed to run tests')\n        process.exit(1)\n    }\n}\n\nasync function main() {\n    try {\n        await runTestSuites('unittest')\n        await runTestSuites('testground')\n        await runTestSuites('multiroot')\n    } catch (_) {\n        console.error('Failed to run tests')\n        process.exit(1)\n    }\n}\n\nvoid main()\n"
  },
  {
    "path": "test/suites/01_build.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\nsuite.skip('Build TeX files test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.fromWorkspaceFolder', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.include', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.exclude', undefined)\n    })\n\n    test.run('basic build', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('same placeholders multiple times', async (fixture: string) => {\n        const tools = [{name: 'latexmk', command: 'latexmk', args: ['-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', '%DOC%', '%DOC%', '%DOC%']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('auto-detect subfile root and build 1', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', true)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n        await test.build(fixture, 'sub/s.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'sub/s.pdf')))\n    })\n\n    test.run('auto-detect subfile root and build 2', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n        await test.build(fixture, 'sub/s.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build with outDir', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', './out')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out/main.pdf')))\n    })\n\n    test.run('basic build with spaces in names', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main space/main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main space/main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main space/main.pdf')))\n    })\n\n    test.run('basic build with spaces in outdir', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', '%DIR%/out space')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out space/main.pdf')))\n    })\n\n    test.run('build with magic comment', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', [])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', true)\n        await test.load(fixture, [\n            {src: 'magic_program.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build with !TEX program and !TEX options', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', [])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', true)\n        await test.load(fixture, [\n            {src: 'magic_option.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out/main.pdf')))\n    })\n\n    test.run('build with invalid !TEX program', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', true)\n        await test.load(fixture, [\n            {src: 'magic_invalid.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build with !LW recipe', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', false)\n        const tools = [\n            { name: 'touch', command: 'touch', args: ['fail.txt'], env: {} },\n            { name: 'latexmk', command: 'latexmk', args: [ '-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', '-outdir=%OUTDIR%', '%DOC%' ], env: {} }\n        ]\n        const recipes = [{name: 'touch', tools: ['touch']}, {name: 'latexmk', tools: ['latexmk']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', recipes)\n        await test.load(fixture, [\n            {src: 'magic_recipe.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build with invalid !LW recipe', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', false)\n        const tools = [\n            { name: 'touch', command: 'touch', args: ['success.txt'], env: {} },\n            { name: 'latexmk', command: 'latexmk', args: [ '-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', '-outdir=%OUTDIR%', '%DOC%' ], env: {} }\n        ]\n        const recipes = [{name: 'touch', tools: ['touch']}, {name: 'latexmk_', tools: ['latexmk']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', recipes)\n        await test.load(fixture, [\n            {src: 'magic_recipe.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build with enableMagicComments: false', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', false)\n        await test.load(fixture, [\n            {src: 'magic_invalid.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build a subfile with main.tex opened', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', true)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        const docMain = await vscode.workspace.openTextDocument(vscode.Uri.file(path.resolve(fixture, 'main.tex')))\n        await vscode.window.showTextDocument(docMain)\n        const docSub = await vscode.workspace.openTextDocument(vscode.Uri.file(path.resolve(fixture, 'sub/s.tex')))\n        await vscode.window.showTextDocument(docSub, vscode.ViewColumn.Beside)\n\n        await test.build(fixture, 'sub/s.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'sub/s.pdf')))\n    })\n\n    test.run('build main.tex with QuickPick', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex', undefined, async () => {\n            const event = test.wait(lw.event.BuildDone)\n            void lw.commands.build()\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n            await event\n        })\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build s.tex with QuickPick', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n        await test.build(fixture, 'sub/s.tex', undefined, async () => {\n            const event = test.wait(lw.event.BuildDone)\n            void lw.commands.build()\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.quickOpenSelectNext')\n            await test.sleep(250)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n            await event\n        })\n        assert.ok(fs.existsSync(path.resolve(fixture, 'sub/s.pdf')))\n    })\n\n    test.run('build sub.tex to outdir', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', './out')\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_subsub.tex', dst: 'sub/s.tex'},\n            {src: 'plain.tex', dst: 'sub/subsub/infile.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out/s.pdf')))\n    })\n\n    test.run('basic build with makeindex', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'makeindex_base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.pdf')))\n    })\n\n    test.run('build sub.tex to outdir with makeindex', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', './out')\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'makeindex_subfile.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out/s.pdf')))\n    })\n\n    test.run('test q/.../ with spaces in outdir on Windows', async (fixture: string) => {\n        const tools = [{ name: 'latexmk', command: 'latexmk', args: ['-e', '$pdflatex=q/pdflatex %O -synctex=1 -interaction=nonstopmode -file-line-error %S/', '-outdir=%OUTDIR%', '-pdf', '%DOC%'], env: {} }]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', '%DIR%/out space')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out space/main.pdf')))\n    }, ['win32'])\n\n    test.run('test q/.../ with copy and remove on Windows', async (fixture: string) => {\n        const tools = [\n            { name: 'latexmk', command: 'latexmk', args: ['-e', '$pdflatex=q/pdflatex %O -synctex=1 -interaction=nonstopmode -file-line-error %S/', '-outdir=%OUTDIR%', '-pdf', '%DOC%'], env: {} },\n            {name: 'copyPDF', command: 'copy', args: ['%OUTDIR_W32%\\\\%DOCFILE%.pdf', '%OUTDIR_W32%\\\\copy.pdf'], env: {}},\n            {name: 'removePDF', command: 'del', args: ['%OUTDIR_W32%\\\\%DOCFILE%.pdf'], env: {}}\n        ]\n        const recipes = [{name: 'latexmk_copy', tools: ['latexmk', 'copyPDF', 'removePDF']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', recipes)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', '%DIR%/out space')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out space/copy.pdf')))\n    }, ['win32'])\n\n    test.run('build from workspace folder', async (fixture: string) => {\n        const texFile = path.join(path.basename(fixture), 'tex', 'main.tex')\n        const outdir = path.join(fixture, 'build')\n\n        const tools = [{name: 'latexmk', command: 'latexmk', args: [ '-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', `-outdir=${outdir}`, texFile ]}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.fromWorkspaceFolder', true)\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'tex/main.tex'}\n        ], {skipCache: true})\n        await test.build(fixture, 'tex/main.tex')\n        assert.ok(fs.existsSync(path.resolve(outdir, 'main.pdf')))\n    })\n\n})\n"
  },
  {
    "path": "test/suites/02_autobuild.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as test from './utils'\nimport assert from 'assert'\n\nsuite.skip('Auto-build test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', 250)\n    })\n\n    setup(async () => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onFileChange')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.include', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.watch.files.ignore', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', undefined)\n    })\n\n    suiteTeardown(async () => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', undefined)\n    })\n\n    test.run('auto build', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ])\n        const { type } = await test.auto(fixture, 'main.tex')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with subfiles and onFileChange', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1})\n        const { type } = await test.auto(fixture, 'sub/s.tex')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with import and onFileChange', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'import_base.tex', dst: 'main.tex'},\n            {src: 'import_sub.tex', dst: 'sub/s.tex'},\n            {src: 'plain.tex', dst: 'sub/subsub/sss/sss.tex'}\n        ], {local: 1})\n        const { type } = await test.auto(fixture, 'sub/subsub/sss/sss.tex')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with input and onFileChange', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'input_base.tex', dst: 'main.tex'},\n            {src: 'plain.tex', dst: 'sub/s.tex'}\n        ])\n        const { type } = await test.auto(fixture, 'sub/s.tex')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build when editing bib', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'bibtex_base.tex', dst: 'main.tex'},\n            {src: 'base.bib', dst: 'bib.bib'}\n        ])\n        const { type } = await test.auto(fixture, 'bib.bib')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with input whose path uses a macro', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'input_macro.tex', dst: 'main.tex'},\n            {src: 'plain.tex', dst: 'sub/s.tex'}\n        ])\n        const { type } = await test.auto(fixture, 'sub/s.tex')\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with watch.files.ignore', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.watch.files.ignore', ['**/s.tex'])\n        await test.load(fixture, [\n            {src: 'input_base.tex', dst: 'main.tex'},\n            {src: 'plain.tex', dst: 'sub/s.tex'}\n        ])\n        const { type } = await test.auto(fixture, 'sub/s.tex', true)\n        assert.strictEqual(type, 'onFileChange')\n    })\n\n    test.run('auto build with subfiles and onSave', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onSave')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1})\n        const { type } = await test.auto(fixture, 'sub/s.tex', false, true)\n        assert.strictEqual(type, 'onSave')\n    })\n\n    test.run('auto build with markdownInput', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'build/markdown_base.tex', dst: 'main.tex'},\n            {src: 'build/markdown_sub.md', dst: 'sub.md'}\n        ])\n        const { type } = await test.auto(fixture, 'sub.md')\n        assert.strictEqual(type, 'onFileChange')\n    })\n})\n"
  },
  {
    "path": "test/suites/03_findroot.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\nsuite.skip('Find root file test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.include', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.exclude', undefined)\n    })\n\n    test.run('basic root', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'main.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n    })\n\n    test.run('root with subfile', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'main.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n    })\n\n    test.run('subfile root with subfile opened', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/s.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n        assert.strictEqual(roots.local, path.join(fixture, 'sub/s.tex'))\n    })\n\n    test.run('detect root with !TEX root', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'input_base.tex', dst: 'main.tex'},\n            {src: 'input_base.tex', dst: 'alt.tex'},\n            {src: 'magic_root.tex', dst: 'sub/s.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/s.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n    })\n\n    test.run('detect root with search.rootFiles.include', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.include', ['**/alt/*.tex'])\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'input_parentsub.tex', dst: 'alt/main.tex'},\n            {src: 'plain.tex', dst: 'sub/plain.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/plain.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'alt/main.tex'))\n    })\n\n    test.run('detect root with search.rootFiles.exclude', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.exclude', ['*/*.tex'])\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'input_parentsub.tex', dst: 'alt/main.tex'},\n            {src: 'plain.tex', dst: 'sub/plain.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/plain.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'alt/main.tex'))\n    })\n\n    test.run('auto-detect root with verbatim', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'input_base.tex', dst: 'main.tex'},\n            {src: 'plain_verbatim.tex', dst: 'sub/s.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/s.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n    })\n\n    test.run('import package', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'import_base.tex', dst: 'main.tex'},\n            {src: 'import_sub.tex', dst: 'sub/s.tex'},\n            {src: 'plain.tex', dst: 'sub/subsub/sss/sss.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/subsub/sss/sss.tex')\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n    })\n\n    test.run('circular inclusion', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'include_base.tex', dst: 'main.tex'},\n            {src: 'include_sub.tex', dst: 'alt.tex'},\n            {src: 'plain.tex', dst: 'sub/s.tex'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'alt.tex')\n        await lw.cache.wait(path.join(fixture, 'alt.tex'))\n        assert.strictEqual(roots.root, path.join(fixture, 'main.tex'))\n        const includedTeX = lw.cache.getIncludedTeX()\n        assert.ok(includedTeX)\n        assert.ok(includedTeX.has(path.resolve(fixture, 'main.tex')))\n        assert.ok(includedTeX.has(path.resolve(fixture, 'alt.tex')))\n        assert.ok(includedTeX.has(path.resolve(fixture, 'sub/s.tex')))\n    })\n})\n"
  },
  {
    "path": "test/suites/04_intellisense.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\nimport { EnvSnippetType } from '../../src/types'\nimport { isTriggerSuggestNeeded } from '../../src/completion/completer/macro'\n\nsuite.skip('Intellisense test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.atSuggestion.trigger.latex', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.atSuggestion.user', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.label', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.format', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.label.command', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.argumentHint.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.command.user', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.exclude', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.unusual', undefined)\n    })\n\n    test.run('test default envs', () => {\n        let defaultEnvs = lw.completion.environment.getDefaultEnvs(EnvSnippetType.AsMacro).map(e => e.label)\n        assert.ok(defaultEnvs.includes('document'))\n        assert.ok(defaultEnvs.includes('align'))\n        defaultEnvs = lw.completion.environment.getDefaultEnvs(EnvSnippetType.AsName).map(e => e.label)\n        assert.ok(defaultEnvs.includes('document'))\n        assert.ok(defaultEnvs.includes('align'))\n        defaultEnvs = lw.completion.environment.getDefaultEnvs(EnvSnippetType.ForBegin).map(e => e.label)\n        assert.ok(defaultEnvs.includes('document'))\n        assert.ok(defaultEnvs.includes('align'))\n    })\n\n    test.run('test default cmds', () => {\n        const defaultCommands = lw.completion.macro.getData().defaultCmds.map(e => e.label)\n        assert.ok(defaultCommands.includes('\\\\begin'))\n        assert.ok(defaultCommands.includes('\\\\left('))\n        assert.ok(defaultCommands.includes('\\\\section{}'))\n    })\n\n    test.run('test isTriggerSuggestNeeded', () => {\n        assert.ok(!isTriggerSuggestNeeded('frac'))\n    })\n\n    test.run('command intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        const suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.items.length > 0)\n    })\n\n    test.run('command intellisense with cmds provided by \\\\usepackage', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_cmd_1.tex', dst: 'main.tex'}\n        ])\n\n        let suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\lstinputlisting{}'))\n\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_cmd_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\lstinputlisting{}'))\n    }, ['linux', 'darwin'])\n\n    test.run('command intellisense with cmds provided by \\\\usepackage and its argument', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/package_option_on_cmd.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\lstdefineformat{}{}'))\n\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_cmd_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\lstdefineformat{}{}'))\n    })\n\n    test.run('command intellisense with cmds provided by \\\\usepackage and filtered by `intellisense.package.unusual`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.unusual', true)\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_cmd_2.tex', dst: 'main.tex'}\n        ])\n\n        let suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\lstname'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.unusual', false)\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_cmd_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\lstname'))\n    }, ['linux', 'darwin'])\n\n    test.run('command intellisense with cmds defined by \\\\newcommand', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/newcommand.tex', dst: 'main.tex'}\n        ])\n        const suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\WARNING'))\n        assert.ok(suggestions.labels.includes('\\\\FIXME{}'))\n        assert.ok(suggestions.labels.includes('\\\\FIXMETOO[]{}'))\n        assert.ok(suggestions.labels.includes('\\\\fix[]{}{}'))\n    })\n\n    test.run('command intellisense with cmds defined by \\\\NewDocumentCommand', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/newdocumentcommand.tex', dst: 'main.tex'}\n        ])\n        const suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\testNoArg'))\n        assert.ok(suggestions.labels.includes('\\\\testA{}'))\n        assert.ok(suggestions.labels.includes('\\\\testB[]{}'))\n        assert.ok(suggestions.labels.includes('\\\\testC{}[][]{}{}'))\n    })\n\n    test.run('command intellisense with config `intellisense.argumentHint.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.argumentHint.enabled', true)\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\includefrom{}{}'))\n        let snippet = suggestions.items.filter(item => item.label === '\\\\includefrom{}{}')[0].insertText\n        assert.ok(snippet)\n        assert.ok(snippet instanceof vscode.SnippetString)\n        assert.ok(snippet.value.includes('${1:'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.argumentHint.enabled', false)\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\includefrom{}{}'))\n        snippet = suggestions.items.filter(item => item.label === '\\\\includefrom{}{}')[0].insertText\n        assert.ok(snippet)\n        assert.ok(snippet instanceof vscode.SnippetString)\n        assert.ok(!snippet.value.includes('${1:'))\n    })\n\n    test.run('command intellisense with config `intellisense.command.user`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.command.user', {'mycommand[]{}': 'notsamecommand[${2:option}]{$TM_SELECTED_TEXT$1}', 'parbox{}{}': 'defchanged', 'overline{}': ''})\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\mycommand[]{}'))\n        assert.ok(!suggestions.labels.includes('\\\\parbox{}{}'))\n        assert.ok(suggestions.labels.includes('\\\\defchanged'))\n        assert.ok(!suggestions.labels.includes('\\\\overline{}'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.command.user', undefined)\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\mycommand[]{}'))\n        assert.ok(suggestions.labels.includes('\\\\parbox{}{}'))\n        assert.ok(!suggestions.labels.includes('\\\\defchanged'))\n        assert.ok(suggestions.labels.includes('\\\\overline{}'))\n    })\n\n    test.run('reference intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        const suggestions = test.suggest(8, 5)\n        assert.ok(suggestions.labels.includes('sec1'))\n        assert.ok(suggestions.labels.includes('frame'))\n        assert.ok(!suggestions.labels.includes('trap'))\n    })\n\n    test.run('reference intellisense and config intellisense.label.command', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/label.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(7, 5)\n        assert.ok(suggestions.labels.includes('l1'))\n        assert.ok(suggestions.labels.includes('e1'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.label.command', ['label'])\n        await test.load(fixture, [\n            {src: 'intellisense/label.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(7, 5)\n        assert.ok(!suggestions.labels.includes('l1'))\n        assert.ok(suggestions.labels.includes('e1'))\n    })\n\n    test.run('reference intellisense with `xr` package', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/xr_base.tex', dst: 'main.tex'},\n            {src: 'intellisense/xr_sub.tex', dst: 'sub.tex'},\n            {src: 'intellisense/xr_dup.tex', dst: 'dup.tex'}\n        ])\n        const suggestions = test.suggest(6, 5)\n        assert.ok(suggestions.labels.includes('sec:1'))\n        assert.ok(suggestions.labels.includes('sec:2'))\n        assert.ok(suggestions.labels.includes('alt-sec:1'))\n    })\n\n    test.run('environment intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        const suggestions = test.suggest(9, 7)\n        assert.ok(suggestions.items.length > 0)\n    })\n\n    test.run('environment intellisense with envs provided by \\\\usepackage', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_env_1.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(3, 7)\n        assert.ok(!suggestions.labels.includes('algorithm'))\n\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_env_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(3, 7)\n        assert.ok(suggestions.labels.includes('algorithm'))\n    }, ['linux', 'darwin'])\n\n    test.run('environment intellisense with envs provided by \\\\usepackage and its argument', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/package_option_on_env.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(3, 7)\n        assert.ok(suggestions.labels.includes('algorithm2e'))\n\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_env_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(3, 7)\n        assert.ok(!suggestions.labels.includes('algorithm2e'))\n    })\n\n    test.run('environment intellisense in form of cmds with envs provided by \\\\usepackage and its argument', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/package_option_on_env.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(3, 1)\n        assert.ok(suggestions.labels.includes('algorithm2e'))\n\n        await test.load(fixture, [\n            {src: 'intellisense/package_on_env_2.tex', dst: 'main.tex'}\n        ])\n        suggestions = test.suggest(3, 1)\n        assert.ok(!suggestions.labels.includes('algorithm2e'))\n    })\n\n    test.run('intellisense with config `intellisense.package.exclude`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.exclude', ['lw-default', 'import', 'listings'])\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\date{}'))\n        assert.ok(!suggestions.labels.includes('\\\\lstinputlisting{}'))\n        assert.ok(!suggestions.labels.includes('\\\\lstinputlisting{}'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.exclude', ['lw-default'])\n        suggestions = test.suggest(0, 1)\n        assert.ok(!suggestions.labels.includes('\\\\date{}'))\n        assert.ok(suggestions.labels.includes('\\\\lstinputlisting{}'))\n        assert.ok(suggestions.labels.includes('\\\\lstinputlisting{}'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.package.exclude', ['import', 'listings'])\n        suggestions = test.suggest(0, 1)\n        assert.ok(suggestions.labels.includes('\\\\date{}'))\n        assert.ok(!suggestions.labels.includes('\\\\lstinputlisting{}'))\n        assert.ok(!suggestions.labels.includes('\\\\lstinputlisting{}'))\n    })\n\n    test.run('argument intellisense of \\\\documentclass, \\\\usepackage, commands, and environments', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(0, 15)\n        assert.ok(suggestions.labels.includes('a4paper'))\n        assert.ok(suggestions.labels.includes('10pt'))\n\n        suggestions = test.suggest(2, 12)\n        assert.ok(suggestions.labels.includes('savemem'))\n        assert.ok(suggestions.labels.includes('noaspects'))\n\n        suggestions = test.suggest(13, 11)\n        assert.ok(suggestions.labels.includes('print'))\n        assert.ok(suggestions.labels.includes('showlines'))\n\n        suggestions = test.suggest(14, 19)\n        assert.ok(suggestions.labels.includes('print'))\n        assert.ok(suggestions.labels.includes('showlines'))\n    })\n\n    test.run('argument intellisense with braces already in the argument', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/class_option_with_brace.tex', dst: 'main.tex'}\n        ])\n        let suggestions = test.suggest(0, 64)\n        assert.ok(suggestions.labels.includes('10pt'))\n\n        suggestions = test.suggest(3, 32)\n        assert.ok(suggestions.labels.includes('label='))\n    })\n\n    test.run('package and class intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(2, 21)\n        assert.ok(suggestions.labels.includes('amsmath'))\n        assert.ok(suggestions.labels.includes('listings'))\n\n        suggestions = test.suggest(0, 21)\n        assert.ok(suggestions.labels.includes('article'))\n        assert.ok(suggestions.labels.includes('IEEEtran'))\n    })\n\n    test.run('input/include/import/subimport intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/plain.tex'}\n        ])\n        let suggestions = test.suggest(7, 7)\n        assert.ok(suggestions.labels.includes('main.tex'))\n        assert.ok(suggestions.labels.includes('sub/'))\n\n        suggestions = test.suggest(16, 13)\n        assert.ok(suggestions.labels.includes('main.tex'))\n        assert.ok(suggestions.labels.includes('sub/'))\n\n        suggestions = test.suggest(17, 8)\n        assert.ok(!suggestions.labels.includes('main.tex'))\n\n        suggestions = test.suggest(18, 11)\n        assert.ok(!suggestions.labels.includes('main.tex'))\n        assert.ok(suggestions.labels.includes('sub/'))\n\n        suggestions = test.suggest(18, 17)\n        assert.ok(suggestions.labels.includes('s.tex'))\n        assert.ok(suggestions.labels.includes('plain.tex'))\n        assert.ok(!suggestions.labels.includes('sub/'))\n\n        suggestions = test.suggest(19, 9)\n        const item = suggestions.items.find(suggestion => suggestion.label === 'main.tex')\n        assert.ok(item)\n        assert.strictEqual(item.insertText, 'main')\n    })\n\n    test.run('citation intellisense and configs intellisense.citation.*', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.label', 'bibtex key')\n        await test.load(fixture, [\n            {src: 'intellisense/citation.tex', dst: 'main.tex'},\n            {src: 'base.bib', dst: 'main.bib'}\n        ])\n        let suggestions = test.suggest(2, 9)\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.strictEqual(suggestions.items[0].label, 'art1')\n        assert.ok(suggestions.items[0].filterText)\n        assert.ok(suggestions.items[0].filterText.includes('Journal of CI tests'))\n        assert.ok(!suggestions.items[0].filterText.includes('hintFake'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.label', 'title')\n        suggestions = test.suggest(2, 9)\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.strictEqual(suggestions.items[0].label, 'A fake article')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.label', 'authors')\n        suggestions = test.suggest(2, 9)\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.strictEqual(suggestions.items[0].label, 'Davis, J. and Jones, M.')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.format', ['title', 'year', 'description', 'nonexisting'])\n        suggestions = test.suggest(2, 9)\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.ok(suggestions.items[0].filterText)\n        assert.ok(!suggestions.items[0].filterText.includes('Journal of CI tests'))\n        assert.ok(suggestions.items[0].filterText.includes('hintFake'))\n    })\n\n    test.run('glossary intellisense', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/glossary.tex', dst: 'main.tex'},\n            {src: 'intellisense/glossaryentries.tex', dst: 'sub/glossary.tex'}\n        ])\n        const suggestions = test.suggest(5, 5)\n        assert.strictEqual(suggestions.items.length, 7)\n        assert.ok(suggestions.items.find(item => item.label === 'rf' && item.detail === 'radio-frequency'))\n        assert.ok(suggestions.items.find(item => item.label === 'te' && item.detail === 'Transverse Magnetic'))\n        assert.ok(suggestions.items.find(item => item.label === 'E_P' && item.detail === 'Elastic $\\\\varepsilon$ toto'))\n        assert.ok(suggestions.items.find(item => item.label === 'lw' && item.detail === 'What this extension is $\\\\mathbb{A}$'))\n        assert.ok(suggestions.items.find(item => item.label === 'vs_code' && item.detail === 'Editor'))\n        assert.ok(suggestions.items.find(item => item.label === 'abbr_y' && item.detail === 'A second abbreviation'))\n        assert.ok(suggestions.items.find(item => item.label === 'abbr_x' && item.detail === 'A first abbreviation'))\n    })\n\n    test.run('glossary intellisense from .bib files', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/glossary_bib.tex', dst: 'main.tex'},\n            {src: 'intellisense/glossary.bib', dst: 'glos.bib'}\n        ])\n        const suggestions = test.suggest(7, 8)\n        assert.strictEqual(suggestions.items.length, 5)\n        assert.ok(suggestions.items.find(item => item.label === 'fs' && item.detail?.includes('\\\\ensuremath{f_s}')))\n        assert.ok(suggestions.items.find(item => item.label === 'theta' && item.detail?.includes('\\\\ensuremath{\\theta}')))\n        assert.ok(suggestions.items.find(item => item.label === 'caesar' && item.detail?.includes('\\\\sortname{Gaius Julius}{Caesar}')))\n        assert.ok(suggestions.items.find(item => item.label === 'wellesley' && item.detail?.includes('\\\\sortname{Arthur}{Wellesley}')))\n        assert.ok(suggestions.items.find(item => item.label === 'wellington' && item.detail?.includes('Wellington')))\n    })\n\n    test.run('@-snippet intellisense and configs intellisense.atSuggestion*', async (fixture: string) => {\n        const replaces = {'@+': '\\\\sum', '@8': '', '@M': '\\\\sum'}\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.atSuggestion.user', replaces)\n        await test.load(fixture, [\n            {src: 'intellisense/base.tex', dst: 'main.tex'},\n            {src: 'intellisense/sub.tex', dst: 'sub/s.tex'}\n        ])\n        let suggestions = test.suggest(5, 1, true)\n        assert.ok(suggestions.items.find(item => item.label === '@+' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\sum'))\n        assert.ok(undefined === suggestions.items.find(item => item.label === '@+' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\bigcup'))\n        assert.ok(suggestions.items.find(item => item.label === '@M' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\sum'))\n        assert.ok(undefined === suggestions.items.find(item => item.label === '@8'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.atSuggestion.trigger.latex', '#')\n        suggestions = test.suggest(6, 1, true)\n        assert.ok(suggestions.items.find(item => item.label === '#+' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\sum'))\n        assert.ok(suggestions.items.find(item => item.label === '#ve' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\varepsilon'))\n        assert.ok(undefined === suggestions.items.find(item => item.label === '@+' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\bigcup'))\n        assert.ok(undefined === suggestions.items.find(item => item.label === '#+' && item.insertText instanceof vscode.SnippetString && item.insertText.value === '\\\\bigcup'))\n        assert.ok(undefined === suggestions.items.find(item => item.label === '#8'))\n    })\n\n    test.run('suggest base KOMAScript macros/envs in KOMAScript class', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'intellisense/koma.tex', dst: 'main.tex'}\n        ])\n        const suggestions = test.suggest(0, 1)\n        // in class-scrartcl.cwl\n        assert.ok(suggestions.labels.includes('\\\\addpart{}'))\n        // in base\n        assert.ok(suggestions.labels.includes('\\\\addchap{}'))\n    })\n})\n"
  },
  {
    "path": "test/suites/05_viewer.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\nsuite.skip('PDF viewer test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.pdf.viewer', 'tab')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.outDir', undefined)\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.useSubFile', undefined)\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.doNotPrompt', undefined)\n        await vscode.workspace.getConfiguration().update('latex-workshop.synctex.afterBuild.enabled', undefined)\n    })\n\n    test.run('basic build and view', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        await test.view(fixture, 'main.pdf')\n    })\n\n    test.run('view in singleton tab', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.pdf.viewer', 'singleton')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        await test.view(fixture, 'main.pdf')\n        await test.sleep(250)\n        await lw.commands.view()\n        let statuses = lw.viewer.getViewerState(vscode.Uri.file(path.resolve(fixture, 'main.pdf')))\n        assert.strictEqual(statuses.length, 1)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.pdf.viewer', 'legacy')\n        await lw.commands.view()\n        await test.sleep(250)\n        statuses = lw.viewer.getViewerState(vscode.Uri.file(path.resolve(fixture, 'main.pdf')))\n        assert.strictEqual(statuses.length, 2)\n    }, ['linux', 'darwin'])\n\n    test.run('view in custom editor tab', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.pdf.viewer', 'tab')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        await test.view(fixture, 'main.pdf')\n        await test.sleep(250)\n        await lw.commands.view()\n        let statuses = lw.viewer.getViewerState(vscode.Uri.file(path.resolve(fixture, 'main.pdf')))\n        assert.strictEqual(statuses.length, 1) // Make sure a custom editor was opened\n        await test.sleep(250)\n        await lw.commands.view()\n        await test.sleep(250)\n        statuses = lw.viewer.getViewerState(vscode.Uri.file(path.resolve(fixture, 'main.pdf')))\n        assert.strictEqual(statuses.length, 1) // Make sure the custom editor got reused\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.pdf.viewer', 'legacy')\n        await lw.commands.view()\n        await test.sleep(250)\n        statuses = lw.viewer.getViewerState(vscode.Uri.file(path.resolve(fixture, 'main.pdf')))\n        assert.strictEqual(statuses.length, 2) // Make sure a non-customEditor viewer was opened\n    })\n\n    test.run('build main.tex and view it', async (fixture: string) => {\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.useSubFile', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex')\n        await test.view(fixture, 'main.pdf')\n    })\n\n    test.run('build a subfile and view it', async (fixture: string) => {\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration().update('latex-workshop.latex.rootFile.useSubFile', true)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex')\n        await test.view(fixture, 'sub/s.pdf')\n    })\n\n    test.run('build main.tex with QuickPick and view it', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex', undefined, async () => {\n            const event = test.wait(lw.event.BuildDone)\n            void lw.commands.build()\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n            await event\n        })\n        await test.view(fixture, 'main.pdf', async () => {\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n        })\n    })\n\n    test.run('build s.tex with QuickPick and view it', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex'}\n        ], {local: 1, skipCache: true})\n\n        await test.build(fixture, 'sub/s.tex', undefined, async () => {\n            const event = test.wait(lw.event.BuildDone)\n            void lw.commands.build()\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.quickOpenSelectNext')\n            await test.sleep(250)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n            await event\n        })\n        await test.view(fixture, 'sub/s.pdf', async () => {\n            await test.sleep(500)\n            await vscode.commands.executeCommand('workbench.action.quickOpenSelectNext')\n            await test.sleep(250)\n            await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n        })\n    })\n\n    test.run('build with outDir and view it', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', './out')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n\n        await test.build(fixture, 'main.tex')\n        await test.view(fixture, 'out/main.pdf')\n    })\n})\n"
  },
  {
    "path": "test/suites/06_structure.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\n// async function loadTestFiles(fixture: string) {\n//     await test.load(fixture, [\n//         {src: 'structure_base.tex', dst: 'main.tex'},\n//         {src: 'structure_sub.tex', dst: 'sub/s.tex'},\n//         {src: 'structure_s2.tex', dst: 'sub/s2.tex'},\n//         {src: 'structure_s3.tex', dst: 'sub/s3.tex'}\n//     ])\n// }\n\nsuite('Document structure test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.numbers.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.commands', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.sections', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.number.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.caption.enabled', undefined)\n    })\n\n    test.run('basic structure', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/sections.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure.length, 2)\n    })\n\n    test.run('section without numbering via `view.outline.numbers.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.numbers.enabled', false)\n        await test.load(fixture, [\n            {src: 'structure/sections.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Section 1')\n        assert.strictEqual(structure[1].label, 'Section 2')\n    })\n\n    test.run('nested sections', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/section_nest.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure.length, 1)\n        assert.strictEqual(structure[0].children[0].label, '1.1 Section 1.1')\n        assert.strictEqual(structure[0].children[0].children[0].label, '1.1.1 Section 1.1.1')\n    })\n\n    test.run('nested sections with level gap', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/section_nest_gap.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].children[0].label, '1.0.1 Section 1.0.1')\n    })\n\n    test.run('sections before root-level section', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/section_before_root_level.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure.length, 3)\n    })\n\n    test.run('sections with asterisks', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/section_asterisk.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, '1 Section 1')\n        assert.strictEqual(structure[1].label, '* Section *')\n        assert.strictEqual(structure[1].children[0].label, '1.1 Section 1.1')\n        assert.strictEqual(structure[1].children[1].label, '* Section *')\n    })\n\n    test.run('sections with atypical titles', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/section_title.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, '1 Title with line break')\n        assert.strictEqual(structure[1].label, '2 Title with pdf switch')\n        assert.strictEqual(structure[2].label, '3 Title with \\\\textit{macros}')\n        assert.strictEqual(structure[3].label, '4 Short')\n    })\n\n    test.run('custom sections via `view.outline.sections`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.sections', ['customsection', 'subsubsection'])\n        await test.load(fixture, [\n            {src: 'structure/section_custom.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, '1 Section 1')\n        assert.strictEqual(structure[0].children[0].label, '1.1 Section 1.1')\n    })\n\n    test.run('custom section hierarchy via `view.outline.sections`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.sections', ['section', 'subsection|subsubsection'])\n        await test.load(fixture, [\n            {src: 'structure/section_nest.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, '1 Section 1')\n        assert.strictEqual(structure[0].children[0].label, '1.1 Section 1.1')\n        assert.strictEqual(structure[0].children[1].label, '1.2 Section 1.1.1')\n    })\n\n    test.run('section with labels', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/labels.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].children[0].label, '#label: sec-1')\n        assert.strictEqual(structure[0].children[1].children[0].label, '#label: sec-11')\n    })\n\n    test.run('custom commands via `view.outline.commands`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.commands', ['note'])\n        await test.load(fixture, [\n            {src: 'structure/commands.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].children[0].label, '#note: A note')\n    })\n\n    test.run('basic frame', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/frames.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Frame 1')\n    })\n\n    test.run('float without numbering via `view.outline.floats.number.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.number.enabled', false)\n        await test.load(fixture, [\n            {src: 'structure/frames.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Frame')\n    })\n\n    test.run('frame title', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/frame_title.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Frame 1: Frame 1')\n        assert.strictEqual(structure[1].label, 'Frame 2: Frame 2')\n        assert.strictEqual(structure[2].label, 'Frame 3: Frame 3')\n        assert.strictEqual(structure[3].label, 'Frame 4: Frame 4')\n        assert.strictEqual(structure[4].label, 'Frame 5')\n    })\n\n    test.run('frames without title via `view.outline.floats.caption.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.caption.enabled', false)\n        await test.load(fixture, [\n            {src: 'structure/frame_title.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Frame 1')\n    })\n\n    test.run('basic floats', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/floats.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Table 1: Table 1')\n        assert.strictEqual(structure[1].label, 'Figure 1')\n        assert.strictEqual(structure[2].label, 'Figure 2')\n    })\n\n    test.run('nested floats', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/float_nest.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Table 1: Table 1')\n        assert.strictEqual(structure[0].children[0].label, 'Figure 1')\n    })\n\n    test.run('disable floats via `view.outline.floats.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.enabled', false)\n        await test.load(fixture, [\n            {src: 'structure/floats.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Frame 1')\n    })\n\n    test.run('floats without title via `view.outline.floats.caption.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('view.outline.floats.caption.enabled', false)\n        await test.load(fixture, [\n            {src: 'structure/floats.tex', dst: 'main.tex'}\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, 'Table 1')\n    })\n\n    test.run('input subfiles', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'structure/subfiles.tex', dst: 'main.tex'},\n            {src: 'structure/subfiles_s1.tex', dst: 'sub/s1.tex'},\n            {src: 'structure/subfiles_s2.tex', dst: 'sub/s2.tex'},\n            {src: 'structure/subfiles_s3.tex', dst: 'sub/s3.tex'},\n        ])\n        const structure = await lw.outline.reconstruct()\n        assert.strictEqual(structure[0].label, '1 Section 1')\n        assert.strictEqual(structure[0].children[0].label, '1.1 Section 1.1')\n        assert.strictEqual(structure[0].children[0].children[0].label, '1.1.1 Section 1.1.1')\n        assert.strictEqual(structure[1].label, '2 Section 2')\n        assert.strictEqual(structure[2].label, '3 Section 3')\n        assert.strictEqual(structure[2].children[0].label, '3.0.1 Section 3.0.1')\n    })\n})\n"
  },
  {
    "path": "test/suites/07_mathpreview.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport * as test from './utils'\nimport { testTools } from '../../src/preview/hover/cursor'\nimport { lw } from '../../src/lw'\n\nsuite('Math preview test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n    })\n\n    test.run('mathpreviewlib/cursorrenderer: test insertCursor', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'mathpreview/base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        assert.ok(vscode.window.activeTextEditor?.document)\n        const cursorPos = new vscode.Position(0, 2)\n        const texMath = lw.parser.find.math(vscode.window.activeTextEditor.document, cursorPos)\n        assert.ok(texMath)\n        const result = texMath && await testTools.insertCursor(texMath, cursorPos, '|')\n        assert.strictEqual(result, '$a|+b$')\n    })\n\n    test.run('mathpreviewlib/cursorrenderer: test shouldNotWriteCursor', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'mathpreview/base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        assert.ok(vscode.window.activeTextEditor?.document)\n        const cursorPos = new vscode.Position(0, 0)\n        const texMath = lw.parser.find.math(vscode.window.activeTextEditor.document, cursorPos)\n        assert.ok(texMath)\n\n        const result = testTools.isCursorInsideTexMath(texMath.range, cursorPos)\n        assert.strictEqual(result, false)\n\n        const cursorPos1 = new vscode.Position(0, 1)\n        const result1 = testTools.isCursorInsideTexMath(texMath.range, cursorPos1)\n        assert.strictEqual(result1, true)\n\n        const cursorPos4 = new vscode.Position(0, 4)\n        const result4 = testTools.isCursorInsideTexMath(texMath.range, cursorPos4)\n        assert.strictEqual(result4, true)\n\n        const cursorPos5 = new vscode.Position(0, 5)\n        const result5 = testTools.isCursorInsideTexMath(texMath.range, cursorPos5)\n        assert.strictEqual(result5, false)\n\n    })\n\n    test.run('mathpreviewlib/cursorrenderer: test \\\\f|rac{1}{2}', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'mathpreview/base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        assert.ok(vscode.window.activeTextEditor?.document)\n        const cursorPos = new vscode.Position(1, 3)\n        const texMath = lw.parser.find.math(vscode.window.activeTextEditor.document, cursorPos)\n        assert.ok(texMath)\n        const result = texMath && await testTools.insertCursor(texMath, cursorPos, '|')\n        assert.strictEqual(result, '$\\\\frac{1}{2}$')\n    })\n\n    test.run('mathpreviewlib/cursorrenderer: test a^|b', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'mathpreview/base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        assert.ok(vscode.window.activeTextEditor?.document)\n        const cursorPos = new vscode.Position(2, 3)\n        const texMath = lw.parser.find.math(vscode.window.activeTextEditor.document, cursorPos)\n        assert.ok(texMath)\n        const result = texMath && await testTools.insertCursor(texMath, cursorPos, '|')\n        assert.strictEqual(result, '$a^|b$')\n    })\n})\n"
  },
  {
    "path": "test/suites/08_linter.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\nimport { chkTeX } from '../../src/lint/latex-linter/chktex'\nimport { laCheck } from '../../src/lint/latex-linter/lacheck'\n\nsuite('Linter test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n    })\n\n    test.run('test chktex', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'linter_base.tex', dst: 'main.tex'},\n            {src: 'linter_sub.tex', dst: 'sub/s.tex'}\n        ], {skipCache: true})\n        await chkTeX.lintRootFile(lw.root.file.path ?? '')\n        assert.strictEqual(chkTeX.linterDiagnostics.name, 'ChkTeX')\n    })\n\n    test.run('test chktex log parser', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'linter_base.tex', dst: 'main.tex'},\n            {src: 'linter_sub.tex', dst: 'sub/s.tex'}\n        ], {skipCache: true})\n        const log = 'main.tex:5:18:1:Warning:24:Delete this space to maintain correct pagereferences.\\nsub/s.tex:1:26:1:Warning:24:Delete this space to maintain correct pagereferences.\\n'\n        chkTeX.parseLog(log)\n        assert.strictEqual(chkTeX.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'main.tex')))?.length, 1)\n        assert.strictEqual(chkTeX.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'sub/s.tex')))?.length, 1)\n        assert.match(chkTeX.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'main.tex')))?.[0].message || '', /Delete this space/)\n        assert.match(chkTeX.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'sub/s.tex')))?.[0].message || '', /Delete this space/)\n    })\n\n    test.run('test lacheck', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'linter_base.tex', dst: 'main.tex'},\n            {src: 'linter_sub.tex', dst: 'sub/s.tex'}\n        ], {skipCache: true})\n        await laCheck.lintRootFile(lw.root.file.path ?? '')\n        assert.strictEqual(laCheck.linterDiagnostics.name, 'LaCheck')\n    })\n\n    test.run('test lacheck log parser', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'linter_base.tex', dst: 'main.tex'},\n            {src: 'linter_sub.tex', dst: 'sub/s.tex'}\n        ], {skipCache: true})\n        const log = '\"main.tex\", line 7: double space at \"~~\"\\n** sub/sub:\\n\"sub/s.tex\", line 2: double space at \"~~\"\\n'\n        laCheck.parseLog(log)\n        assert.strictEqual(laCheck.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'main.tex')))?.length, 1)\n        assert.strictEqual(laCheck.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'sub/s.tex')))?.length, 1)\n        assert.match(laCheck.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'main.tex')))?.[0].message || '', /double space at/)\n        assert.match(laCheck.linterDiagnostics.get(vscode.Uri.file(path.resolve(fixture, 'sub/s.tex')))?.[0].message || '', /double space at/)\n    })\n})\n"
  },
  {
    "path": "test/suites/09_formatter.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport * as test from './utils'\nimport { readFileSync } from 'fs'\n\nsuite('Formatter test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    setup(async () => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latex', 'latexindent')\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sort.enabled', true)\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latex', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.path', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.args', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.tab', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.surround', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.case', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.trailingComma', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sort.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sortby', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.handleDuplicates', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.align-equal.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-entries.first', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-fields.sort.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-fields.order', undefined)\n    })\n\n    test.run('test latex formatter', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/latex_base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        const original = readFileSync(path.resolve(fixture, 'main.tex')).toString()\n        const formatted = await test.format()\n        assert.notStrictEqual(original, formatted)\n    }, ['win32', 'linux'])\n\n    test.run('change formatting.latexindent.path on the fly', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.path', 'echo')\n        await test.load(fixture, [\n            {src: 'formatter/latex_base.tex', dst: 'main.tex'}\n        ], {open: 0, skipCache: true})\n        const original = readFileSync(path.resolve(fixture, 'main.tex')).toString()\n        // echo add a new \\n to the end of stdin\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.args', [original?.slice(0, -1)])\n        await vscode.commands.executeCommand('editor.action.formatDocument')\n        await test.sleep(250) // wait for echo finish\n        const echoed = vscode.window.activeTextEditor?.document.getText()\n        assert.strictEqual(original, echoed)\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.path', 'latexindent')\n        await vscode.workspace.getConfiguration('latex-workshop').update('formatting.latexindent.args', ['-c', '%DIR%/', '%TMPFILE%', '-y=defaultIndent: \\'%INDENT%\\''])\n        const formatted = await test.format()\n        assert.notStrictEqual(original, formatted)\n    }, ['win32', 'linux'])\n\n    test.run('test bibtex formatter', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n        const original = readFileSync(path.resolve(fixture, 'main.bib')).toString()\n        const formatted = await test.format()\n        assert.notStrictEqual(original, formatted)\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.tab`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.tab', 'tab')\n        let lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[1].slice(0, 1), '\\t')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.tab', '2 spaces')\n        lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[1].slice(0, 2), '  ')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.tab', '4')\n        lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[1].slice(0, 4), '    ')\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.surround`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.surround', 'Curly braces')\n        let lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[1].slice(-2, -1), '}')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.surround', 'Quotation marks')\n        lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[1].slice(-2, -1), '\"')\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.case`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.case.field', 'UPPERCASE')\n        let lines = (await test.format()).split('\\n')\n        assert.ok(lines[1].trim().slice(0, 1).match(/[A-Z]/))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.case.field', 'lowercase')\n        lines = (await test.format()).split('\\n')\n        assert.ok(lines[1].trim().slice(0, 1).match(/[a-z]/))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.case.type', 'UPPERCASE')\n        lines = (await test.format()).split('\\n')\n        assert.ok(lines[0].trim().slice(1, 2).match(/[A-Z]/))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.case.type', 'lowercase')\n        lines = (await test.format()).split('\\n')\n        assert.ok(lines[0].trim().slice(1, 2).match(/[a-z]/))\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.trailingComma`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.trailingComma', true)\n        let lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines[5].trim().slice(-1), ',')\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.trailingComma', false)\n        lines = (await test.format()).split('\\n')\n        assert.notStrictEqual(lines[5].trim().slice(-1), ',')\n    })\n\n    test.run('test bibtex sorter with `bibtex-format.sortby`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sortby', ['year'])\n        let lines = (await test.format()).split('\\n')\n        let entries = lines.filter(line => line.includes('@'))\n        assert.ok(entries[2].includes('art1'))\n        assert.ok(entries[1].includes('lamport1994latex'))\n        assert.ok(entries[0].includes('MR1241645'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sortby', ['year-desc'])\n        lines = (await test.format()).split('\\n')\n        entries = lines.filter(line => line.includes('@'))\n        assert.ok(entries[0].includes('art1'))\n        assert.ok(entries[1].includes('lamport1994latex'))\n        assert.ok(entries[2].includes('MR1241645'))\n    })\n\n    test.run('test bibtex sorter with `bibtex-format.handleDuplicates`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_dup.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.handleDuplicates', 'Comment Duplicates')\n        const lines = (await test.format()).split('\\n')\n        assert.strictEqual(lines.filter(line => line.includes('@')).length, 1)\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.sort.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sortby', ['year'])\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        const lines = (await test.format()).split('\\n')\n        const entries = lines.filter(line => line.includes('@'))\n        assert.ok(entries[2].includes('art1'))\n        assert.ok(entries[1].includes('lamport1994latex'))\n        assert.ok(entries[0].includes('MR1241645'))\n    })\n\n    test.run('test bibtex formatter with `bibtex-format.align-equal.enabled`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.align-equal.enabled', false)\n        let lines = (await test.format()).split('\\n')\n        const allEqual = (arr: number[]) => arr.every(val => val === arr[0])\n        assert.ok(!allEqual(lines.filter(line => line.includes('=')).map(line => line.indexOf('='))))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.align-equal.enabled', true)\n        lines = (await test.format()).split('\\n')\n        assert.ok(allEqual(lines.filter(line => line.includes('=')).map(line => line.indexOf('='))))\n    })\n\n    test.run('test bibtex sorter with `bibtex-entries.first`', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_base.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-entries.first', ['book'])\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-format.sortby', ['key'])\n        const lines = (await test.format()).split('\\n')\n        const entries = lines.filter(line => line.includes('@'))\n        assert.ok(entries[2].includes('art1'))\n        assert.ok(entries[0].includes('lamport1994latex'))\n        assert.ok(entries[1].includes('MR1241645'))\n    })\n\n    test.run('test bibtex aligner with `bibtex-fields.sort.enabled` and `bibtex-fields.order`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-fields.sort.enabled', true)\n        await test.load(fixture, [\n            {src: 'formatter/bibtex_sortfield.bib', dst: 'main.bib'}\n        ], {open: 0, skipCache: true})\n\n        let lines = (await test.format()).split('\\n')\n        let entries = lines.filter(line => line.includes('='))\n        assert.ok(entries[0].includes('author'))\n        assert.ok(entries[1].includes('description'))\n        assert.ok(entries[2].includes('journal'))\n        assert.ok(entries[3].includes('title'))\n        assert.ok(entries[4].includes('year'))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('bibtex-fields.order', ['title', 'author', 'year'])\n        lines = (await test.format()).split('\\n')\n        entries = lines.filter(line => line.includes('='))\n        assert.ok(entries[0].includes('title'))\n        assert.ok(entries[1].includes('author'))\n        assert.ok(entries[2].includes('year'))\n        assert.ok(entries[3].includes('description'))\n        assert.ok(entries[4].includes('journal'))\n    })\n})\n"
  },
  {
    "path": "test/suites/10_cleaner.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\nsuite('Cleaner test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.outDir', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.subfolder.enabled', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.command', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.args', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoClean.run', undefined)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', undefined)\n    })\n\n    test.run('glob clean', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'},\n            {src: 'empty', dst: 'main.aux'},\n            {src: 'empty', dst: 'main.fls'},\n            {src: 'empty', dst: 'sub.aux'}\n        ], {skipCache: true})\n        await lw.extra.clean(path.resolve(fixture, 'main.tex'))\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.aux')))\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.fls')))\n        assert.ok(fs.existsSync(path.resolve(fixture, 'sub.aux')))\n    })\n\n    test.run('glob clean with `latex-workshop.latex.clean.fileTypes`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', ['*.aux'])\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'},\n            {src: 'empty', dst: 'main.aux'},\n            {src: 'empty', dst: 'main.fls'},\n            {src: 'empty', dst: 'sub.aux'}\n        ], {skipCache: true})\n        await lw.extra.clean(path.resolve(fixture, 'main.tex'))\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.aux')))\n        assert.ok(fs.existsSync(path.resolve(fixture, 'main.fls')))\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'sub.aux')))\n    })\n\n    test.run('glob clean with `latex.clean.subfolder.enabled`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.subfolder.enabled', false)\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'},\n            {src: 'empty', dst: 'out/main.aux'}\n        ], {skipCache: true})\n        await lw.extra.clean(path.resolve(fixture, 'main.tex'))\n        assert.ok(fs.existsSync(path.resolve(fixture, 'out/main.aux')))\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.subfolder.enabled', true)\n        await lw.extra.clean(path.resolve(fixture, 'main.tex'))\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'out/main.aux')))\n    })\n\n    test.run('latexmk clean', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.command', 'latexmk')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.args', ['-c', '%TEX%'])\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'},\n            {src: 'empty', dst: 'main.aux'}\n        ], {skipCache: true})\n        await lw.extra.clean()\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'main.aux')))\n    })\n\n    test.run('latexmk clean with auxdir', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.command', 'latexmk')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.args', ['-c', '-auxdir=%OUTDIR%/aux_files', '%TEX%'])\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'},\n            {src: 'empty', dst: 'aux_files/main.aux'}\n        ], {skipCache: true})\n        await lw.extra.clean()\n        assert.ok(!fs.existsSync(path.resolve(fixture, 'aux_files/main.aux')))\n    })\n\n    test.run('clean with `latex.autoClean.run` on `never` and failed build', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', ['*.aux','*.fls', '*.pdf'])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', false)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoClean.run', 'never')\n        await test.load(fixture, [\n            {src: 'invalid_cmd.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean() // Clean up previous remainders to ensure next build to fail\n        const cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        const result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(!result)\n    })\n\n    test.run('clean with `latex.autoClean.run` on `never` and passed build', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoClean.run', 'never')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean()\n        const cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        const result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(!result)\n    })\n\n    test.run('clean with `latex.autoClean.run` on `onFailed`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', ['*.aux','*.fls', '*.pdf'])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', false)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoClean.run', 'onFailed')\n        await test.load(fixture, [\n            {src: 'invalid_cmd.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean() // Clean up previous remainders to ensure next build to fail\n        let cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        let result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(result)\n\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean() // Clean up previous remainders to ensure next build to fail\n        cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(!result)\n    })\n\n    test.run('clean with `latex.autoClean.run` on `onBuilt`', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', ['*.aux','*.fls', '*.pdf'])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', false)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoClean.run', 'onBuilt')\n        await test.load(fixture, [\n            {src: 'invalid_cmd.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean() // Clean up previous remainders to ensure next build to fail\n        let cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        let result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(result)\n\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean()\n        cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(result)\n    })\n\n    test.run('clean and retry on failed build', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.method', 'glob')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.clean.fileTypes', ['*.aux','*.fls', '*.pdf'])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', false)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', true)\n        await test.load(fixture, [\n            {src: 'invalid_cmd.tex', dst: 'main.tex'}\n        ], {skipCache: true})\n        await lw.extra.clean() // Clean up previous remainders to ensure next build to fail\n        let cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        let result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(!result)\n\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.cleanAndRetry.enabled', true)\n        await lw.extra.clean()\n        cleaned = test.wait(lw.event.AutoCleaned).then(() => true)\n        await test.build(fixture, 'main.tex')\n        result = await Promise.any([cleaned, test.sleep(1000)])\n        assert.ok(result)\n    })\n})\n"
  },
  {
    "path": "test/suites/11_snippet.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport * as test from './utils'\nimport { lw } from '../../src/lw'\nimport type { CompletionItem } from '../../src/types'\n\nsuite('Snippet test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'never')\n    })\n\n    teardown(async () => {\n        await test.reset()\n    })\n\n    test.run('#3716 Too many braces', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex'}\n        ], {skipCache: true, open: 0})\n        const active = vscode.window.activeTextEditor\n        assert.ok(active)\n        active.selection = new vscode.Selection(new vscode.Position(2, 0), new vscode.Position(2, 1))\n        const items: CompletionItem[] = [{\n            label: '\\\\fbox{}',\n            detail: '\\\\fbox{${1:${TM_SELECTED_TEXT:text}}}',\n            documentation: 'Command \\\\fbox{}.',\n            filterText: 'fbox{}',\n            insertText: new vscode.SnippetString('fbox{${1:${TM_SELECTED_TEXT:text}}}'),\n            kind: 2\n        }]\n        lw.completion.macro.surround(items)\n        const promise = test.wait(lw.event.DocumentChanged)\n        await test.sleep(500)\n        await vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem')\n        await vscode.commands.executeCommand('editor.action.formatDocument')\n        await promise\n        const changed = vscode.window.activeTextEditor?.document.getText()\n        assert.ok(changed?.includes('\\\\fbox{a}bc'))\n    }, ['linux', 'darwin'])\n})\n"
  },
  {
    "path": "test/suites/12_envpair.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport { lw } from '../../src/lw'\nimport * as test from './utils'\n\nasync function loadTestFiles(fixture: string) {\n    await test.load(fixture, [\n        {src: 'env_pair.tex', dst: 'main.tex'}\n    ], {open: 0})\n}\n\nsuite('EnvPair test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'testground'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n    })\n\n    teardown(async () => {\n        await test.reset()\n    })\n\n    test.run('Test env_pair AST', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const pairTree = await lw.locate.pair.build(activeTextEditor.document)\n        assert.strictEqual(pairTree.length, 7)\n        assert.strictEqual(pairTree[0].children.length, 0)\n        assert.strictEqual(pairTree[0].start, '\\\\iftest')\n        assert.strictEqual(pairTree[0].end, '\\\\fi')\n        assert.strictEqual(pairTree[1].start, '\\\\(')\n        assert.strictEqual(pairTree[1].end, '\\\\)')\n        assert.strictEqual(pairTree[1].children.length, 0)\n        assert.strictEqual(pairTree[2].start, '\\\\[')\n        assert.strictEqual(pairTree[2].end, '\\\\]')\n        assert.strictEqual(pairTree[2].children.length, 0)\n        assert.strictEqual(pairTree[3].start, '\\\\begin{equation*}')\n        assert.strictEqual(pairTree[3].end, '\\\\end{equation*}')\n        assert.strictEqual(pairTree[3].children.length, 0)\n        assert.strictEqual(pairTree[4].start, '\\\\begin{center}')\n        assert.strictEqual(pairTree[4].end, '\\\\end{center}')\n        assert.strictEqual(pairTree[4].children.length, 1)\n        assert.strictEqual(pairTree[4].children[0].start, '\\\\begin{align}')\n        assert.strictEqual(pairTree[4].children[0].end, '\\\\end{align}')\n        assert.strictEqual(pairTree[4].children[0].children.length, 1)\n        assert.strictEqual(pairTree[4].children[0].children[0].start, '\\\\iftest')\n        assert.strictEqual(pairTree[4].children[0].children[0].end, '\\\\fi')\n        assert.strictEqual(pairTree[4].children[0].children[0].children.length, 0)\n        assert.ok(pairTree[4].children[0].children[0].parent)\n        assert.strictEqual(pairTree[5].start, '\\\\begin{poo}')\n        assert.deepStrictEqual(pairTree[5].startPosition, new vscode.Position(22, 0))\n        assert.strictEqual(pairTree[5].children.length, 2)\n        assert.ok(pairTree[5].end === undefined)\n        assert.strictEqual(pairTree[5].children[0].start, '\\\\ifpoo')\n        assert.strictEqual(pairTree[5].children[0].end, '\\\\else')\n        assert.strictEqual(pairTree[5].children[1].start, '\\\\else')\n        assert.strictEqual(pairTree[5].children[1].end, '\\\\fi')\n        assert.deepStrictEqual(pairTree[5].children[0].startPosition, new vscode.Position(23, 0))\n        assert.deepStrictEqual(pairTree[5].children[0].endPosition, new vscode.Position(25, 5))\n        assert.deepStrictEqual(pairTree[5].children[1].startPosition, new vscode.Position(25, 0))\n        assert.deepStrictEqual(pairTree[5].children[1].endPosition, new vscode.Position(27, 3))\n    })\n\n    test.run('Select env name', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(18, 6)\n        const startNamePos = new vscode.Position(15, 9)\n        const endNamePos = new vscode.Position(19, 7)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.name('selection')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 2)\n        assert.deepStrictEqual(activeTextEditor.selections[0], new vscode.Selection(startNamePos, startNamePos.translate(0, 5)))\n        assert.deepStrictEqual(activeTextEditor.selections[1], new vscode.Selection(endNamePos, endNamePos.translate(0, 5)))\n    })\n\n    test.run('Add multi-cursor env name', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(18, 6)\n        const startNamePos = new vscode.Position(15, 9)\n        const endNamePos = new vscode.Position(19, 7)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.name('cursor')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 2)\n        assert.deepStrictEqual(activeTextEditor.selections[0], new vscode.Selection(startNamePos, startNamePos))\n        assert.deepStrictEqual(activeTextEditor.selections[1], new vscode.Selection(endNamePos, endNamePos))\n    })\n\n    test.run('Toggle equation - \\\\[ \\\\]', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(7, 3)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.name('equationToggle')\n        await test.sleep(250)\n        const line = activeTextEditor.document.lineAt(7).text\n        assert.strictEqual(line, '\\\\begin{equation*} 1 + 2 \\\\end{equation*}')\n    })\n\n    test.run('Toggle \\\\[ \\\\] - equation', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(10, 4)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.name('equationToggle')\n        await test.sleep(250)\n        const text = activeTextEditor.document.getText(new vscode.Range(new vscode.Position(9, 0), new vscode.Position(11, 2)))\n        assert.strictEqual(text, '\\\\[\\n  1 + 2\\n\\\\]')\n    })\n\n    test.run('Select env content', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(15, 5)\n        const startEnvContentPos = new vscode.Position(14, 14)\n        const endEnvContentPos = new vscode.Position(20, 0)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.select('content')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(startEnvContentPos, endEnvContentPos))\n    })\n\n    test.run('Select \\\\(...\\\\) content', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(6, 4)\n        const startEnvContentPos = new vscode.Position(6, 2)\n        const endEnvContentPos = new vscode.Position(6, 9)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.select('content')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(startEnvContentPos, endEnvContentPos))\n    })\n\n    test.run('Select $...$ content', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(29, 6)\n        const startEnvContentPos = new vscode.Position(29, 4)\n        const endEnvContentPos = new vscode.Position(29, 11)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.select('content')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(startEnvContentPos, endEnvContentPos))\n    })\n\n\n    test.run('Select env', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(17, 6)\n        const startEnvContentPos = new vscode.Position(15, 2)\n        const endEnvContentPos = new vscode.Position(19, 13)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        // Double call expands selection to outer env\n        await lw.locate.pair.select('whole')\n        await test.sleep(250)\n        await lw.locate.pair.select('whole')\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(startEnvContentPos, endEnvContentPos))\n    })\n\n    test.run('Close env', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const curPos = new vscode.Position(28, 0)\n        activeTextEditor.selection = new vscode.Selection(curPos, curPos)\n        await lw.locate.pair.close()\n        await test.sleep(250)\n        const endString = '\\\\end{poo}'\n        const text = activeTextEditor.document.getText(new vscode.Range(curPos, curPos.translate(0, endString.length)))\n        assert.strictEqual(text, endString)\n    })\n\n    test.run('Go to pair', async (fixture: string) => {\n        await loadTestFiles(fixture)\n        const activeTextEditor = vscode.window.activeTextEditor\n        assert.ok(activeTextEditor)\n        const pair1 = new vscode.Position(18, 6)\n        const altPair1 = new vscode.Position(16, 4)\n        activeTextEditor.selection = new vscode.Selection(pair1, pair1)\n        await lw.locate.pair.goto()\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(altPair1, altPair1))\n\n        const pair2 = new vscode.Position(15, 4)\n        const altPair2 = new vscode.Position(19, 2)\n        activeTextEditor.selection = new vscode.Selection(pair2, pair2)\n        await lw.locate.pair.goto()\n        await test.sleep(250)\n        assert.strictEqual(activeTextEditor.selections.length, 1)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(altPair2, altPair2))\n\n        const cicrlePair1 = new vscode.Position(23,0)\n        const cicrlePair2 = new vscode.Position(25,0)\n        const cicrlePair3 = new vscode.Position(27,0)\n        activeTextEditor.selection = new vscode.Selection(cicrlePair1, cicrlePair1)\n        await lw.locate.pair.goto()\n        await test.sleep(250)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(cicrlePair2, cicrlePair2))\n        await lw.locate.pair.goto()\n        await test.sleep(250)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(cicrlePair3, cicrlePair3))\n        await lw.locate.pair.goto()\n        await test.sleep(250)\n        assert.deepStrictEqual(activeTextEditor.selection, new vscode.Selection(cicrlePair1, cicrlePair1))\n    })\n\n})\n"
  },
  {
    "path": "test/suites/99_multiroot.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as assert from 'assert'\nimport * as test from './utils'\n\nfunction resolve(fixture: string, fileName: string, ws: string) {\n    return path.resolve(path.dirname(fixture), ws, path.basename(fixture), fileName)\n}\n\nsuite('Multi-root workspace test suite', () => {\n    test.suite.name = path.basename(__filename).replace('.test.js', '')\n    test.suite.fixture = 'multiroot'\n\n    suiteSetup(async () => {\n        await vscode.commands.executeCommand('latex-workshop.activate')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', 250)\n    })\n\n    setup(async () => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onFileChange')\n    })\n\n    teardown(async () => {\n        await test.reset()\n\n        const configs = [\n            vscode.workspace.getConfiguration('latex-workshop'),\n            vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0])\n        ]\n        const items = [\n            'latex.tools',\n            'latex.outDir',\n            'latex.recipes',\n            'latex.recipe.default',\n            'latex.build.enableMagicComments',\n            'latex.search.rootFiles.include',\n            'latex.search.rootFiles.exclude',\n            'latex.autoBuild.run',\n            'latex.rootFile.doNotPrompt',\n            'latex.rootFile.useSubFile',\n            'intellisense.citation.label',\n            'latex.autoBuild.run'\n        ]\n        for (const config of configs) {\n            for (const item of items) {\n                await config.update(item, undefined)\n            }\n        }\n    })\n\n    suiteTeardown(async () => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', undefined)\n    })\n\n    test.run('detect root with search.rootFiles.include', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.include', ['**/alt/*.tex'])\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'input_parentsub.tex', dst: 'alt/main.tex', ws: 'A'},\n            {src: 'plain.tex', dst: 'sub/s.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/s.tex', 'A')\n        assert.strictEqual(roots.root, resolve(fixture, 'alt/main.tex', 'A'))\n    })\n\n    test.run('detect root with search.rootFiles.exclude', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.search.rootFiles.exclude', ['*/*.tex'])\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'input_parentsub.tex', dst: 'alt/main.tex', ws: 'A'},\n            {src: 'plain.tex', dst: 'sub/s.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {root: -1, skipCache: true})\n        const roots = await test.find(fixture, 'sub/s.tex', 'A')\n        assert.strictEqual(roots.root, resolve(fixture, 'alt/main.tex', 'A'))\n    })\n\n    test.run('switching rootFile', async (fixture: string) => {\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'base.tex', dst: 'main.tex', ws: 'B'}\n        ], {root: -1, skipCache: true})\n        let roots = await test.find(fixture, 'main.tex', 'A')\n        assert.strictEqual(roots.root, resolve(fixture, 'main.tex', 'A'))\n        roots = await test.find(fixture, 'main.tex', 'B')\n        assert.strictEqual(roots.root, resolve(fixture, 'main.tex', 'B'))\n        roots = await test.find(fixture, 'main.tex', 'A')\n        assert.strictEqual(roots.root, resolve(fixture, 'main.tex', 'A'))\n    })\n\n    test.run('basic build with default recipe name', async (fixture: string) => {\n        const tools = [\n            {name: 'latexmk', command: 'latexmk', args: ['-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', '-outdir=%OUTDIR%', '-jobname=wsA', '%DOC%'], env: {}},\n            {name: 'fake', command: 'touch', args: ['%DIR%/fake.pdf']}\n        ]\n        const recipes = [{name: 'latexmk', tools: ['latexmk']}, {name: 'fake', tools: ['fake']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', recipes)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipe.default', 'fake')\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('latex.recipe.default', 'latexmk')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex', 'A')\n        assert.ok(fs.existsSync(resolve(fixture, 'wsA.pdf', 'A')))\n    })\n\n    test.run('basic build with unavailable lastUsed', async (fixture: string) => {\n        const tools = [\n            {name: 'latexmk', command: 'latexmk', args: ['-synctex=1', '-interaction=nonstopmode', '-file-line-error', '-pdf', '-outdir=%OUTDIR%', '-jobname=wsA', '%DOC%'], env: {}},\n            {name: 'fake', command: 'touch', args: ['%DIR%/fake.pdf']}\n        ]\n        const recipes = [{name: 'latexmk A', tools: ['latexmk']}, {name: 'fake', tools: ['fake']}]\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.tools', tools)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipes', [])\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.recipe.default', 'fake')\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('latex.recipes', recipes)\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('latex.recipe.default', 'lastUsed')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex', 'A')\n        assert.ok(fs.existsSync(resolve(fixture, 'wsA.pdf', 'A')))\n    })\n\n    test.run('basic build with outDir', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('latex.outDir', './out')\n        await test.load(fixture, [\n            {src: 'base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex', 'A')\n        assert.ok(fs.existsSync(resolve(fixture, 'out/main.pdf', 'A')))\n    })\n\n    test.run('build with enableMagicComments: false', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.build.enableMagicComments', true)\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('latex.build.enableMagicComments', false)\n        await test.load(fixture, [\n            {src: 'magic_invalid.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {skipCache: true})\n        await test.build(fixture, 'main.tex', 'A')\n        assert.ok(fs.existsSync(resolve(fixture, 'main.pdf', 'A')))\n    })\n\n    test.run('auto build with subfiles and onSave', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onSave')\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)\n        await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', false)\n        await test.load(fixture, [\n            {src: 'subfile_base.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'subfile_sub.tex', dst: 'sub/s.tex', ws: 'A'},\n            {src: 'empty', dst: 'empty', ws: 'B'}\n        ], {local: 1})\n        const { type } = await test.auto(fixture, 'sub/s.tex', false, true, 'A')\n        assert.strictEqual(type, 'onSave')\n    })\n\n    test.run('switching intellisense', async (fixture: string) => {\n        await vscode.workspace.getConfiguration('latex-workshop').update('intellisense.citation.label', 'bibtex key')\n        await vscode.workspace.getConfiguration('latex-workshop', vscode.workspace.workspaceFolders?.[0]).update('intellisense.citation.label', 'title')\n        await test.load(fixture, [\n            {src: 'intellisense/citation.tex', dst: 'main.tex', ws: 'A'},\n            {src: 'base.bib', dst: 'main.bib', ws: 'A'},\n            {src: 'intellisense/citation.tex', dst: 'main.tex', ws: 'B'},\n            {src: 'base.bib', dst: 'main.bib', ws: 'B'}\n        ])\n\n        let suggestions = test.suggest(2, 9, false, resolve(fixture, 'main.tex', 'A'))\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.strictEqual(suggestions.items[0].label, 'A fake article')\n        assert.ok(suggestions.items[0].filterText)\n        assert.ok(suggestions.items[0].filterText.includes('Journal of CI tests'))\n        assert.ok(!suggestions.items[0].filterText.includes('hintFake'))\n\n        suggestions = test.suggest(2, 9, false, resolve(fixture, 'main.tex', 'B'))\n        assert.strictEqual(suggestions.items.length, 3)\n        assert.strictEqual(suggestions.items[0].label, 'art1')\n    })\n})\n"
  },
  {
    "path": "test/suites/index.ts",
    "content": "import * as path from 'path'\nimport Mocha from 'mocha'\nimport { glob } from 'glob'\n\nexport function run(): Promise<void> {\n    // Create the mocha test\n    const mocha = new Mocha({\n        ui: 'tdd',\n        color: true,\n        timeout: process.env['LATEXWORKSHOP_CITEST'] ? 10000 : 5000,\n        retries: process.env['LATEXWORKSHOP_CITEST'] ? 3 : 1\n    })\n\n    return new Promise((resolve, reject) => {\n        glob.sync('**/**.test.js', { cwd: __dirname })\n            .filter(f => process.env['LATEXWORKSHOP_SUITE'] ? process.env['LATEXWORKSHOP_SUITE'].split(',').find(candidate => f.includes(candidate)) !== undefined : true)\n            .sort()\n            .forEach(f => mocha.addFile(path.resolve(__dirname, f)))\n        // Run the mocha test\n        import('../../src/main').then(() => {\n            mocha.run(failures => {\n                if (failures > 0) {\n                    reject(new Error(`${failures} tests failed.`))\n                } else {\n                    resolve()\n                }\n            })\n        }).catch(error => {\n            console.error(error)\n            return reject(error)\n        })\n    })\n}\n"
  },
  {
    "path": "test/suites/utils.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as fs from 'fs'\nimport { glob } from 'glob'\nimport * as os from 'os'\nimport { ok, strictEqual } from 'assert'\nimport { lw } from '../../src/lw'\nimport { log as logModule } from '../../src/utils/logger'\nimport type { EventArgs, Events } from '../../src/core/event'\n\nlet testIndex = 0\nconst logger = logModule.getLogger('Test')\n\nfunction getFixture() {\n    if (vscode.workspace.workspaceFile) {\n        return path.dirname(vscode.workspace.workspaceFile.fsPath)\n    } else {\n        return vscode.workspace.workspaceFolders?.[0].uri.fsPath ?? ''\n    }\n}\n\nfunction getWsFixture(fixture: string, ws?: string) {\n    return path.resolve(path.dirname(fixture), ws ?? '', path.basename(fixture))\n}\n\nfunction testLabel() {\n    return testIndex.toLocaleString('en-US', {minimumIntegerDigits: 3, useGrouping: false})\n}\n\nconst suite = {\n    name: '',\n    fixture: ''\n}\nexport { suite }\n\nexport function skip(_testName: string, _cb: (fixturePath: string) => unknown, _platforms?: NodeJS.Platform[]) {\n    return\n}\n\nexport function only(testName: string, cb: (fixturePath: string) => unknown, platforms?: NodeJS.Platform[]) {\n    return run(testName, cb, platforms, true)\n}\n\nexport function run(testName: string, cb: (fixturePath: string) => unknown, platforms?: NodeJS.Platform[], runonly?: boolean) {\n    const fixture = getFixture()\n\n    if (fixture === undefined) {\n        return\n    }\n    if (path.basename(fixture) !== suite.fixture) {\n        return\n    }\n    if (process.env['LATEXWORKSHOP_SUITE'] && !process.env['LATEXWORKSHOP_SUITE'].split(',').find(candidate => suite.name.includes(candidate))) {\n        return\n    }\n    if (platforms && !platforms.includes(os.platform())) {\n        return\n    }\n\n    testIndex++\n    const testFunction = (process.env['LATEXWORKSHOP_CITEST'] || !runonly) ? test : test.only\n\n    const label = testLabel()\n    testFunction(`[${label}] ${suite.name}: ${testName}`, async () => {\n        try {\n            logModule.resetCachedLog()\n            logger.log(`${testName}`)\n            await cb(path.resolve(fixture ?? '', label))\n        } finally {\n            log(path.basename(fixture), testName, label)\n        }\n    })\n}\n\nexport function sleep(ms: number) {\n    return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport async function reset() {\n    await vscode.commands.executeCommand('workbench.action.closeAllEditors')\n    await Promise.all(Object.values(lw.cache.promises))\n    lw.compile.lastAutoBuildTime = 0\n    lw.compile.compiledPDFPath = ''\n    lw.compile.compiledPDFWriting = 0\n    lw.root.file.path = undefined\n    lw.root.subfiles.path = undefined\n    lw.completion.input.reset()\n    lw.lint.label.reset()\n    lw.cache.reset()\n    glob.sync('**/{**.tex,**.pdf,**.bib}', { cwd: getFixture() }).forEach(file => { try {fs.unlinkSync(path.resolve(getFixture(), file))} catch {} })\n}\n\nfunction log(fixtureName: string, testName: string, counter: string) {\n    logger.log('Recording cached log messages.')\n    const cachedLog = logModule.getCachedLog()\n    const logFolder = path.resolve(__dirname, '../../../test/log')\n    fs.mkdirSync(logFolder, {recursive: true})\n    fs.writeFileSync(path.resolve(logFolder, `${fixtureName}-${counter}.log`),\n        testName +\n        '\\n\\n' + new Array(80).fill('=').join('') + '\\n\\n' +\n        cachedLog.CACHED_EXTLOG.join('\\n') +\n        '\\n\\n' + new Array(80).fill('=').join('') + '\\n\\n' +\n        cachedLog.CACHED_COMPILER.join('\\n') +\n        '\\n\\n' + new Array(80).fill('=').join('') + '\\n\\n' +\n        vscode.window.activeTextEditor?.document.uri.fsPath + '\\n\\n' +\n        vscode.window.activeTextEditor?.document.getText())\n}\n\nexport async function wait<T extends keyof EventArgs>(event: T | Events, arg?: EventArgs[T]) {\n    return new Promise<EventArgs[T] | undefined>((resolve, _) => {\n        const disposable = lw.event.on(event, (eventArg: EventArgs[T] | undefined) => {\n            if (arg && (JSON.stringify(arg) !== JSON.stringify(eventArg))) {\n                return\n            }\n            disposable?.dispose()\n            resolve(eventArg)\n        })\n    })\n}\n\nexport async function load(fixture: string, files: {src: string, dst: string, ws?: string}[], config: {root?: number, local?: number, open?: number, skipCache?: boolean} = {}) {\n    config.root = config.root ?? 0\n    config.local = config.root ?? -1\n    config.open = config.open ?? -1\n    config.skipCache = config.skipCache ?? false\n    let wsFixture = ''\n    files.forEach(file => {\n        wsFixture = getWsFixture(fixture, file.ws)\n        logger.log(`Copy ${path.resolve(wsFixture, file.dst)} .`)\n        fs.mkdirSync(path.resolve(wsFixture, path.dirname(file.dst)), {recursive: true})\n        fs.copyFileSync(path.resolve(fixture, '../../armory', file.src), path.resolve(wsFixture, file.dst))\n    })\n    if (config.root > -1) {\n        wsFixture = getWsFixture(fixture, files[config.root].ws)\n        logger.log(`Set root to ${path.resolve(wsFixture, files[config.root].dst)} .`)\n        lw.root.file.path = path.resolve(wsFixture, files[config.root].dst)\n        lw.root.file.langId = 'latex'\n        lw.root.dir.path = path.dirname(lw.root.file.path)\n    }\n    if (config.local > -1) {\n        wsFixture = getWsFixture(fixture, files[config.local].ws)\n        logger.log(`Set local root to ${path.resolve(wsFixture, files[config.local].dst)} .`)\n        lw.root.subfiles.path = path.resolve(wsFixture, files[config.local].dst)\n        lw.root.subfiles.langId = 'latex'\n    }\n    if (!config.skipCache) {\n        logger.log('Cache tex and bib.')\n        files.filter(file => file.dst.endsWith('.tex')).forEach(file => lw.cache.add(path.resolve(getWsFixture(fixture, file.ws), file.dst)))\n        const texPromise = files.filter(file => file.dst.endsWith('.tex')).map(file => lw.cache.refreshCache(path.resolve(getWsFixture(fixture, file.ws), file.dst), lw.root.file.path))\n        const bibPromise = files.filter(file => file.dst.endsWith('.bib')).map(file => lw.completion.citation.parseBibFile(path.resolve(getWsFixture(fixture, file.ws), file.dst)))\n        await Promise.all([...texPromise, ...bibPromise])\n    }\n    if (config.open > -1) {\n        wsFixture = getWsFixture(fixture, files[config.open].ws)\n        logger.log(`Open ${path.resolve(wsFixture, files[config.open].dst)} .`)\n        await open(path.resolve(wsFixture, files[config.open].dst))\n    }\n}\n\nexport async function open(filePath: string) {\n    const doc = await vscode.workspace.openTextDocument(filePath)\n    await vscode.window.showTextDocument(doc)\n}\n\nexport async function find(fixture: string, openFile: string, ws?: string) {\n    logger.log(`Open ${openFile} .`)\n    await open(path.resolve(getWsFixture(fixture, ws), openFile))\n    logger.log('Search for root file.')\n    await lw.root.find()\n    return {root: lw.root.file.path, local: lw.root.subfiles.path}\n}\n\nexport async function build(fixture: string, openFile: string, ws?: string, action?: () => Promise<void>) {\n    logger.log(`Open ${openFile} .`)\n    await open(path.resolve(getWsFixture(fixture, ws), openFile))\n    logger.log('Initiate a build.')\n    await (action ?? lw.commands.build)()\n}\n\nexport async function auto(fixture: string, editFile: string, noBuild = false, save = false, ws?: string): Promise<{type: 'onFileChange' | 'onSave', file: string}> {\n    const done = wait(lw.event.AutoBuildInitiated)\n    if (save) {\n        logger.log(`Save ${editFile}.`)\n        await open(path.resolve(getWsFixture(fixture, ws), editFile))\n        await sleep(250) // wait for document refresh to prevent saving to dirty doc\n        await vscode.commands.executeCommand('workbench.action.files.save')\n    } else {\n        logger.log(`Edit ${editFile} .`)\n        fs.appendFileSync(path.resolve(getWsFixture(fixture, ws), editFile), ' % edit')\n    }\n    if (noBuild) {\n        await sleep(500)\n        strictEqual(logModule.getCachedLog().CACHED_EXTLOG.filter(line => line.includes('[Builder]')).filter(line => line.includes(editFile)).length, 0)\n        return {type: 'onFileChange', file: ''}\n    }\n    logger.log('Wait for auto-build.')\n    const result = await Promise.any([done, sleep(3000)]) as EventArgs[Events.AutoBuildInitiated]\n    ok(result)\n    ok(result.type)\n    ok(result.file)\n    return result\n}\n\nexport function suggest(row: number, col: number, isAtSuggestion = false, openFile?: string): {items: vscode.CompletionItem[], labels: string[]} {\n    ok(lw.root.file.path)\n    const lines = lw.cache.get(openFile ?? lw.root.file.path)?.content?.split('\\n')\n    ok(lines)\n    logger.log('Get suggestion.')\n    const items = (isAtSuggestion ? lw.completion.atProvider : lw.completion.provider).provide({\n        uri: vscode.Uri.file(openFile ?? lw.root.file.path),\n        langId: 'latex',\n        line: lines[row],\n        position: new vscode.Position(row, col)\n    })\n    ok(items)\n    return {items, labels: items.map(item => item.label.toString())}\n}\n\nexport async function view(fixture: string, pdfName: string, postAction?: () => unknown) {\n    logger.log(`Asserting viewer for ${pdfName} .`)\n    await sleep(250)\n    const promise = Promise.all([\n        wait(lw.event.ViewerPageLoaded),\n        wait(lw.event.ViewerStatusChanged)\n    ])\n    void lw.commands.view()\n    if (postAction) {\n        await postAction()\n    }\n    await promise\n    const pdfFilePath = path.resolve(fixture, pdfName)\n    const status = lw.viewer.getViewerState(vscode.Uri.file(pdfFilePath))[0]\n    ok(status)\n    strictEqual(status.pdfFileUri, vscode.Uri.file(path.resolve(fixture, pdfName)).toString(true))\n}\n\nexport async function format() {\n    const promise = wait(lw.event.DocumentChanged)\n    await vscode.commands.executeCommand('editor.action.formatDocument')\n    await promise\n    const formatted = vscode.window.activeTextEditor?.document.getText()\n    ok(formatted)\n    return formatted\n}\n"
  },
  {
    "path": "test/units/01_core_file.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, mock, set } from './utils'\nimport { lw } from '../../src/lw'\nimport { initialize } from '../../src/core/file'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n\n    before(() => {\n        mock.init(lw)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.file.createTmpDir', () => {\n        it('should create temporary directories', () => {\n            assert.ok(path.isAbsolute(lw.file.tmpDirPath), lw.file.tmpDirPath)\n        })\n\n        it('should create different temporary directories', () => {\n            const tmpDir1 = lw.file.tmpDirPath\n            initialize()\n\n            assert.notStrictEqual(tmpDir1, lw.file.tmpDirPath)\n        })\n\n        function forbiddenTemp(chars: string[ ]) {\n            const tmp = process.env.TMP ?? process.env.TEMP ?? process.env.TMPDIR\n            const tmpNames = ['TMP', 'TEMP', 'TMPDIR']\n            chars.forEach(char => {\n                tmpNames.forEach(envvar => process.env[envvar] = (process.env[envvar] === undefined ? undefined : ('\\\\Test ' + char)))\n                try {\n                    initialize()\n                    assert.fail('Expected an error to be thrown')\n                } catch {\n                    assert.ok(true)\n                } finally {\n                    tmpNames.forEach(envvar => { if (process.env[envvar] !== undefined) { process.env[envvar] = tmp } })\n                }\n            })\n        }\n\n        it('should alert temporary directory name with quotes', () => {\n            forbiddenTemp(['\\'', '\"'])\n        })\n\n        it('should alert temporary directory name with forbidden characters', () => {\n            forbiddenTemp(['/'])\n        })\n    })\n\n        describe('lw.file.getAuxDir', () => {\n        it('should get aux directory from root', () => {\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), lw.root.dir.path)\n        })\n\n        it('should get aux directory without root or input latex', () => {\n            assert.pathStrictEqual(lw.file.getAuxDir(), './')\n        })\n\n        it('should get aux directory with an input latex', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            assert.pathStrictEqual(lw.file.getAuxDir(texPath), rootDir)\n        })\n\n        it('should get aux directory with an input latex over the root', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(texPath), rootDir)\n        })\n\n        it('should get aux directory with absolute `latex.outDir` and root', () => {\n            set.config('latex.auxDir', '%OUTDIR%')\n            set.config('latex.outDir', '/aux')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), '/aux')\n        })\n\n        it('should get different aux and out directories', () => {\n            set.config('latex.auxDir', './aux')\n            set.config('latex.outDir', '/out')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), 'aux')\n        })\n\n\n        it('should get aux directory with relative `latex.auxDir` and root', () => {\n            set.config('latex.auxDir', 'aux')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), 'aux')\n        })\n\n        it('should get aux directory with relative `latex.auxDir` with leading `./` and root', () => {\n            set.config('latex.auxDir', './aux')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), 'aux')\n        })\n\n        it('should get aux directory with relative `latex.auxDir`, root, and an input latex', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.auxDir', 'aux')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(texPath), 'aux')\n        })\n\n        it('should get aux directory with placeholder in `latex.auxDir` and root', () => {\n            set.config('latex.auxDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), lw.root.dir.path)\n        })\n\n        it('should get aux directory with placeholder in `latex.auxDir`, root, and an input latex', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.auxDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(texPath), rootDir)\n        })\n\n        it('should get aux directory from last compilation if `latex.auxDir` is `%OUTDIR%`', () => {\n            set.config('latex.auxDir', '%OUTDIR%')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', undefined, '/aux')\n            assert.pathStrictEqual(lw.file.getAuxDir(), '/aux')\n        })\n\n        it('should ignore aux directory from last compilation if `latex.auxDir` is not `%OUTDIR%`', () => {\n            set.config('latex.auxDir', '/aux')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', undefined, '/trap')\n            assert.pathStrictEqual(lw.file.getAuxDir(), '/aux')\n        })\n\n        it('should ignore aux directory from last compilation if no `auxdir` is recorded', () => {\n            set.config('latex.auxDir', '%OUTDIR%')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '')\n            assert.pathStrictEqual(lw.file.getAuxDir(), lw.root.dir.path)\n        })\n\n        it('should handle empty `latex.auxDir` correctly', () => {\n            set.config('latex.auxDir', '')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), './')\n        })\n\n        it('should handle absolute `latex.auxDir` with trailing slashes correctly', () => {\n            set.config('latex.auxDir', '/aux/')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), '/aux')\n        })\n\n        it('should handle relative `latex.auxDir` with trailing slashes correctly', () => {\n            set.config('latex.auxDir', 'aux/')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getAuxDir(), 'aux')\n        })\n\n        it('should normalize aux directory paths correctly on Windows', () => {\n            if (os.platform() === 'win32') {\n                assert.pathStrictEqual(lw.file.getAuxDir('c:\\\\path\\\\to\\\\file.tex'), 'c:/path/to')\n            }\n        })\n    })\n\n    describe('lw.file.getOutDir', () => {\n        it('should get output directory from root', () => {\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), lw.root.dir.path)\n        })\n\n        it('should get output directory without root or input latex', () => {\n            assert.pathStrictEqual(lw.file.getOutDir(), './')\n        })\n\n        it('should get output directory with an input latex', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            assert.pathStrictEqual(lw.file.getOutDir(texPath), rootDir)\n        })\n\n        it('should get output directory with an input latex over the root', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(texPath), rootDir)\n        })\n\n        it('should get output directory with absolute `latex.outDir` and root', () => {\n            set.config('latex.outDir', '/output')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), '/output')\n        })\n\n        it('should get output directory with relative `latex.outDir` and root', () => {\n            set.config('latex.outDir', 'output')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), 'output')\n        })\n\n        it('should get output directory with relative `latex.outDir` with leading `./` and root', () => {\n            set.config('latex.outDir', './output')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), 'output')\n        })\n\n        it('should get output directory with relative `latex.outDir`, root, and an input latex', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.outDir', 'output')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(texPath), 'output')\n        })\n\n        it('should get output directory with placeholder in `latex.outDir` and root', () => {\n            set.config('latex.outDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), lw.root.dir.path)\n        })\n\n        it('should get output directory with placeholder in `latex.outDir`, root, and an input latex', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.outDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(texPath), rootDir)\n        })\n\n        it('should get output directory from last compilation if `latex.outDir` is `%DIR%`', () => {\n            set.config('latex.outDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', '/output')\n            assert.pathStrictEqual(lw.file.getOutDir(), '/output')\n        })\n\n        it('should ignore output directory from last compilation if `latex.outDir` is not `%DIR%`', () => {\n            set.config('latex.outDir', '/output')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', '/trap')\n            assert.pathStrictEqual(lw.file.getOutDir(), '/output')\n        })\n\n        it('should ignore output directory from last compilation if no `outdir` is recorded', () => {\n            set.config('latex.outDir', '%DIR%')\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '')\n            assert.pathStrictEqual(lw.file.getOutDir(), lw.root.dir.path)\n        })\n\n        it('should handle empty `latex.outDir` correctly', () => {\n            set.config('latex.outDir', '')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), './')\n        })\n\n        it('should handle absolute `latex.outDir` with trailing slashes correctly', () => {\n            set.config('latex.outDir', '/output/')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), '/output')\n        })\n\n        it('should handle relative `latex.outDir` with trailing slashes correctly', () => {\n            set.config('latex.outDir', 'output/')\n            set.root(fixture, 'main.tex')\n            assert.pathStrictEqual(lw.file.getOutDir(), 'output')\n        })\n\n        it('should normalize output directory paths correctly on Windows', () => {\n            if (os.platform() === 'win32') {\n                assert.pathStrictEqual(lw.file.getOutDir('c:\\\\path\\\\to\\\\file.tex'), 'c:/path/to')\n            }\n        })\n    })\n\n    describe('lw.file.getFlsPath', () => {\n        it('should return the correct path when .fls exists in the output directory', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const flsPath = get.path(fixture, 'main.fls')\n\n            assert.pathStrictEqual(await lw.file.getFlsPath(texPath), flsPath)\n        })\n\n        it('should return undefined when .fls does not exist in the output directory', async () => {\n            const nonPath = get.path(fixture, 'nonexistent.tex')\n\n            assert.pathStrictEqual(await lw.file.getFlsPath(nonPath), undefined)\n        })\n\n        it('should respect custom output directory when config is set', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const flsPath = get.path(fixture, 'output', 'main.fls')\n\n            set.config('latex.outDir', 'output')\n            assert.pathStrictEqual(await lw.file.getFlsPath(texPath), flsPath)\n        })\n\n        it('should handle when `auxdir` is available in last compilation', async () => {\n            const texPathAnother = get.path(fixture, 'another.tex')\n            const flsPath = get.path(fixture, 'auxfiles', 'another.fls')\n\n            set.root(fixture, 'another.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', undefined, 'auxfiles')\n            assert.pathStrictEqual(await lw.file.getFlsPath(texPathAnother), flsPath)\n        })\n\n        it('should handle when `auxdir` is missing in last compilation', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const flsPath = get.path(fixture, 'output', 'main.fls')\n\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', './output')\n            assert.pathStrictEqual(await lw.file.getFlsPath(texPath), flsPath)\n        })\n\n        it('should handle when `auxdir` is available in last compilation, but another .fls file in the output folder has higher priority', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const flsPath = get.path(fixture, 'main.fls')\n\n            set.root(fixture, 'main.tex')\n            lw.file.setTeXDirs(lw.root.file.path ?? '', undefined, 'auxfiles')\n            assert.pathStrictEqual(await lw.file.getFlsPath(texPath), flsPath)\n        })\n    })\n\n    describe('lw.file.getBibPath', () => {\n        it('should correctly find BibTeX files', async () => {\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('main.bib', lw.root.dir.path ?? '')\n            assert.listStrictEqual(result, [\n                path.resolve(lw.root.dir.path ?? '', 'main.bib')\n            ])\n        })\n\n        it('should correctly find BibTeX files in basedir', async () => {\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('sub.bib', path.resolve(lw.root.dir.path ?? '', 'subdir'))\n            assert.listStrictEqual(result, [\n                path.resolve(lw.root.dir.path ?? '', 'subdir', 'sub.bib')\n            ])\n        })\n\n        it('should correctly find BibTeX files in `latex.bibDirs`', async () => {\n            set.root(fixture, 'main.tex')\n            set.config('latex.bibDirs', [ path.resolve(lw.root.dir.path ?? '', 'subdir') ])\n            const result = await lw.file.getBibPath('sub.bib', lw.root.dir.path ?? '')\n            assert.listStrictEqual(result, [\n                path.resolve(lw.root.dir.path ?? '', 'subdir', 'sub.bib')\n            ])\n        })\n\n        it('should return an empty array when no BibTeX file is found', async () => {\n            set.root(fixture, 'main.tex')\n            set.config('latex.bibDirs', [ path.resolve(lw.root.dir.path ?? '', 'subdir') ])\n            const result = await lw.file.getBibPath('nonexistent.bib', path.resolve(lw.root.dir.path ?? '', 'output'))\n            assert.listStrictEqual(result, [ ])\n        })\n\n        it('should correctly handle wildcard in BibTeX file name', async () => {\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('*.bib', lw.root.dir.path ?? '')\n            assert.listStrictEqual(result, [\n                path.resolve(lw.root.dir.path ?? '', 'main.bib'),\n                path.resolve(lw.root.dir.path ?? '', 'another.bib')\n            ])\n        })\n\n        it('should handle case when kpsewhich is disabled and BibTeX file not found', async () => {\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: get.path(fixture, 'nonexistent.bib'), output: [''], stderr: '', signal: 'SIGTERM' })\n            set.config('kpsewhich.bibtex.enabled', false)\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('nonexistent.bib', lw.root.dir.path ?? '')\n            stub.restore()\n            assert.listStrictEqual(result, [ ])\n        })\n\n        it('should handle case when kpsewhich is enabled and BibTeX file not found', async () => {\n            const nonPath = get.path(fixture, 'nonexistent.bib')\n\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: get.path(fixture, 'nonexistent.bib'), output: [''], stderr: '', signal: 'SIGTERM' })\n            set.config('kpsewhich.bibtex.enabled', true)\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('nonexistent.bib', lw.root.dir.path ?? '')\n            stub.restore()\n            assert.listStrictEqual(result, [ nonPath ])\n        })\n\n        it('should return an empty array when kpsewhich is enabled but file is not found', async () => {\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: '', output: [''], stderr: '', signal: 'SIGTERM' })\n            set.config('kpsewhich.bibtex.enabled', true)\n            set.root(fixture, 'main.tex')\n            const result = await lw.file.getBibPath('another-nonexistent.bib', lw.root.dir.path ?? '')\n            stub.restore()\n            assert.listStrictEqual(result, [ ])\n        })\n    })\n\n    describe('lw.file.getLangId', () => {\n        it('should return \"latex\" for .tex files', () => {\n            assert.strictEqual(lw.file.getLangId('example.tex'), 'latex')\n        })\n\n        it('should return \"pweave\" for Pweave extensions', () => {\n            assert.strictEqual(lw.file.getLangId('example.pnw'), 'pweave')\n            assert.strictEqual(lw.file.getLangId('example.ptexw'), 'pweave')\n        })\n\n        it('should return \"jlweave\" for JLweave extensions', () => {\n            assert.strictEqual(lw.file.getLangId('example.jnw'), 'jlweave')\n            assert.strictEqual(lw.file.getLangId('example.jtexw'), 'jlweave')\n        })\n\n        it('should return \"rsweave\" for RSweave extensions', () => {\n            assert.strictEqual(lw.file.getLangId('example.rnw'), 'rsweave')\n            assert.strictEqual(lw.file.getLangId('example.Rnw'), 'rsweave')\n            assert.strictEqual(lw.file.getLangId('example.rtex'), 'rsweave')\n            assert.strictEqual(lw.file.getLangId('example.Rtex'), 'rsweave')\n            assert.strictEqual(lw.file.getLangId('example.snw'), 'rsweave')\n            assert.strictEqual(lw.file.getLangId('example.Snw'), 'rsweave')\n        })\n\n        it('should return \"doctex\" for .dtx files', () => {\n            assert.strictEqual(lw.file.getLangId('example.dtx'), 'doctex')\n        })\n\n        it('should return undefined for unknown file extensions', () => {\n            assert.strictEqual(lw.file.getLangId('example.unknown'), undefined)\n        })\n\n        it('should handle mixed case file extensions correctly', () => {\n            assert.strictEqual(lw.file.getLangId('example.TeX'), 'latex')\n        })\n\n        it('should handle paths with folders correctly', () => {\n            assert.strictEqual(lw.file.getLangId('folder/example.tex'), 'latex')\n        })\n    })\n\n    describe('lw.file.getJobname', () => {\n        it('should return the jobname if present in configuration', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.jobname', 'myJob')\n            assert.strictEqual(lw.file.getJobname(texPath), 'myJob')\n        })\n\n        it('should return the name of the input texPath if jobname is empty', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.jobname', '')\n            const expectedJobname = path.parse(texPath).name\n            assert.strictEqual(lw.file.getJobname(texPath), expectedJobname)\n        })\n\n        it('should return the name of the input texPath if configuration is not set', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.jobname', undefined) // Ensuring the jobname is not set\n            const expectedJobname = path.parse(texPath).name\n            assert.strictEqual(lw.file.getJobname(texPath), expectedJobname)\n        })\n    })\n\n    describe('lw.file.getPdfPath', () => {\n        it('should return the correct PDF path when outDir is empty', () => {\n            set.config('latex.outDir', '')\n            set.root(fixture, 'main.tex')\n            const texpath = lw.root.file.path ?? ''\n            assert.pathStrictEqual(lw.file.getPdfPath(texpath), texpath.replaceAll('.tex', '.pdf'))\n        })\n\n        it('should return the correct PDF path when outDir is specified', () => {\n            set.config('latex.outDir', 'output')\n            set.root(fixture, 'main.tex')\n            const texpath = lw.root.file.path ?? ''\n            assert.pathStrictEqual(lw.file.getPdfPath(texpath), texpath.replaceAll('main.tex', 'output/main.pdf'))\n        })\n\n        it('should handle spaces in file paths correctly', () => {\n            set.root(fixture, 'document with spaces.tex')\n            const texpath = lw.root.file.path ?? ''\n            assert.pathStrictEqual(lw.file.getPdfPath(texpath), texpath.replaceAll('.tex', '.pdf'))\n        })\n\n        it('should handle special characters in file names correctly', () => {\n            set.root(fixture, 'special_!@#$%^&*()-_=+[ ]{}\\'`~,.<>?.tex')\n            const texpath = lw.root.file.path ?? ''\n            assert.pathStrictEqual(lw.file.getPdfPath(texpath), texpath.replaceAll('.tex', '.pdf'))\n        })\n    })\n\n    describe('lw.file.hasTeXExt', () => {\n        it('should return true for supported TeX extensions', () => {\n            assert.ok(lw.file.hasTeXExt('.tex'))\n            assert.ok(lw.file.hasTeXExt('.rnw'))\n            assert.ok(lw.file.hasTeXExt('.jnw'))\n            assert.ok(lw.file.hasTeXExt('.pnw'))\n        })\n\n        it('should return false for unsupported extensions', () => {\n            assert.ok(!lw.file.hasTeXExt('.cls'))\n            assert.ok(!lw.file.hasTeXExt('.sty'))\n            assert.ok(!lw.file.hasTeXExt('.txt'))\n        })\n\n        it('should return true for extensions defined in `latex.extraExts`', async () => {\n            await set.codeConfig('latex.extraExts', ['.txt'])\n            assert.ok(lw.file.hasTeXExt('.txt'))\n        })\n\n        it('should respond to changes to `latex.extraExts` on-the-fly', async () => {\n            assert.ok(!lw.file.hasTeXExt('.txt'))\n            assert.ok(!lw.file.hasTeXExt('.md'))\n\n            await set.codeConfig('latex.extraExts', ['.txt'])\n            assert.ok(lw.file.hasTeXExt('.txt'))\n            assert.ok(!lw.file.hasTeXExt('.md'))\n\n            await set.codeConfig('latex.extraExts', ['.txt', '.md'])\n            assert.ok(lw.file.hasTeXExt('.txt'))\n            assert.ok(lw.file.hasTeXExt('.md'))\n\n            await set.codeConfig('latex.extraExts', [])\n            assert.ok(!lw.file.hasTeXExt('.txt'))\n            assert.ok(!lw.file.hasTeXExt('.md'))\n        })\n    })\n\n    describe('lw.file.hasBinaryExt', () => {\n        it('should return true for non-TeX source extensions', () => {\n            assert.ok(lw.file.hasBinaryExt('.pdf'))\n            assert.ok(lw.file.hasBinaryExt('.png'))\n            assert.ok(lw.file.hasBinaryExt('.txt'))\n        })\n\n        it('should return false for TeX source extensions', () => {\n            assert.ok(!lw.file.hasBinaryExt('.tex'))\n            assert.ok(!lw.file.hasBinaryExt('.cls'))\n            assert.ok(!lw.file.hasBinaryExt('.rnw'))\n            assert.ok(!lw.file.hasBinaryExt('.jnw'))\n            assert.ok(!lw.file.hasBinaryExt('.pnw'))\n        })\n\n        it('should return false for extensions defined in `latex.extraExts`', async () => {\n            await set.codeConfig('latex.extraExts', ['.txt'])\n            assert.ok(!lw.file.hasBinaryExt('.txt'))\n        })\n\n        it('should respond to changes to `latex.extraExts` on-the-fly', async () => {\n            assert.ok(lw.file.hasBinaryExt('.txt'))\n            assert.ok(lw.file.hasBinaryExt('.md'))\n\n            await set.codeConfig('latex.extraExts', ['.txt'])\n            assert.ok(!lw.file.hasBinaryExt('.txt'))\n            assert.ok(lw.file.hasBinaryExt('.md'))\n\n            await set.codeConfig('latex.extraExts', ['.txt', '.md'])\n            assert.ok(!lw.file.hasBinaryExt('.txt'))\n            assert.ok(!lw.file.hasBinaryExt('.md'))\n\n            await set.codeConfig('latex.extraExts', [])\n            assert.ok(lw.file.hasBinaryExt('.txt'))\n            assert.ok(lw.file.hasBinaryExt('.md'))\n        })\n    })\n\n    describe('lw.file.hasLaTeXLangId', () => {\n        it('should return true for supported LaTeX languages', () => {\n            assert.ok(lw.file.hasLaTeXLangId('latex'))\n            assert.ok(lw.file.hasLaTeXLangId('latex-expl3'))\n            assert.ok(lw.file.hasLaTeXLangId('pweave'))\n            assert.ok(lw.file.hasLaTeXLangId('jlweave'))\n            assert.ok(lw.file.hasLaTeXLangId('rsweave'))\n        })\n\n        it('should return false for unsupported languages', () => {\n            assert.ok(!lw.file.hasLaTeXLangId('markdown'))\n            assert.ok(!lw.file.hasLaTeXLangId('python'))\n            assert.ok(!lw.file.hasLaTeXLangId('html'))\n        })\n    })\n\n    describe('lw.file.hasTeXLangId', () => {\n        it('should return true for supported TeX languages', () => {\n            assert.ok(lw.file.hasTeXLangId('tex'))\n            assert.ok(lw.file.hasTeXLangId('doctex-installer'))\n        })\n    })\n\n    describe('lw.file.hasBibLangId', () => {\n        it('should return true for BibTeX language', () => {\n            assert.ok(lw.file.hasBibLangId('bibtex'))\n        })\n\n        it('should return false for non-BibTeX languages', () => {\n            assert.ok(!lw.file.hasBibLangId('latex'))\n            assert.ok(!lw.file.hasBibLangId('tex'))\n            assert.ok(!lw.file.hasBibLangId('markdown'))\n        })\n    })\n\n    describe('lw.file.hasDtxLangId', () => {\n        it('should return true for Doctex language', () => {\n            assert.ok(lw.file.hasDtxLangId('doctex'))\n        })\n\n        it('should return false for non-Doctex languages', () => {\n            assert.ok(!lw.file.hasDtxLangId('latex'))\n            assert.ok(!lw.file.hasDtxLangId('tex'))\n            assert.ok(!lw.file.hasDtxLangId('markdown'))\n        })\n    })\n\n    describe('lw.file.read', () => {\n        it('should read the content of an existing file', async () => {\n            set.root(fixture, 'main.tex')\n            const content = await lw.file.read(lw.root.file.path ?? '')\n            assert.strictEqual(content, '\\\\documentclass{article}\\n\\\\begin{document}\\nabc\\n\\\\end{document}\\n')\n        })\n\n        it('should return undefined when file does not exist and raise is false', async () => {\n            set.root(fixture, 'main.tex')\n            const content = await lw.file.read(lw.root.file.path?.replaceAll('main.tex', 'nonexistent.tex') ?? '', false)\n            assert.strictEqual(content, undefined)\n        })\n\n        it('should throw error when file does not exist and raise is true', async () => {\n            set.root(fixture, 'main.tex')\n            try {\n                await lw.file.read(lw.root.file.path?.replaceAll('main.tex', 'nonexistent.tex') ?? '', true)\n                assert.fail('Expected an error to be thrown')\n            } catch (error: any) {\n                assert.strictEqual(error.code, 'FileNotFound')\n            }\n        })\n    })\n\n    describe('lw.file.exists', () => {\n        it('should return true for an existing file URI', async () => {\n            set.root(fixture, 'main.tex')\n            assert.ok(await lw.file.exists(lw.root.file.path ?? ''))\n        })\n\n        it('should return false for a non-existing file URI', async () => {\n            set.root(fixture, 'main.tex')\n            assert.ok(!await lw.file.exists(lw.root.file.path?.replaceAll('main.tex', 'nonexistent.tex') ?? ''))\n        })\n\n        it('should handle non-file URIs', async () => {\n            const stub = sinon.stub(lw.external, 'stat').resolves({type: 0, ctime: 0, mtime: 0, size: 0})\n            const result = await lw.file.exists(vscode.Uri.parse('https://code.visualstudio.com/'))\n            stub.restore()\n            assert.ok(result)\n        })\n\n        it('should handle non-existing non-file URIs', async () => {\n            assert.ok(!await lw.file.exists(vscode.Uri.parse('untitled:/Untitled-1')))\n        })\n    })\n\n    describe('kpsewhich', () => {\n        it('should call kpsewhich with correct arguments', () => {\n            set.config('kpsewhich.path', 'kpse')\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: '', output: [''], stderr: '', signal: 'SIGTERM' })\n            lw.file.kpsewhich('article.cls')\n            stub.restore()\n            sinon.assert.calledWith(stub, 'kpse', ['article.cls'], sinon.match.any)\n        })\n\n        it('should handle isBib flag correctly', () => {\n            set.config('kpsewhich.path', 'kpse')\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: '', output: [''], stderr: '', signal: 'SIGTERM' })\n            lw.file.kpsewhich('reference.bib', true)\n            stub.restore()\n            sinon.assert.calledWith(stub, 'kpse', ['-format=.bib', 'reference.bib'], sinon.match.any)\n        })\n\n        it('should return undefined if kpsewhich returns non-zero status', () => {\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 1, stdout: '', output: [''], stderr: '', signal: 'SIGTERM' })\n            const result = lw.file.kpsewhich('article.cls')\n            stub.restore()\n            assert.strictEqual(result, undefined)\n        })\n\n        it('should cache resolved path and hit', () => {\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 0, stdout: get.path(fixture, 'article.cls'), output: [''], stderr: '', signal: 'SIGTERM' })\n            const result1 = lw.file.kpsewhich('article.cls')\n            const result2 = lw.file.kpsewhich('article.cls')\n            stub.restore()\n            assert.strictEqual(stub.callCount, 1)\n            assert.strictEqual(result1, result2)\n        })\n\n        it('should not cache on non-zero return', () => {\n            const stub = sinon.stub(lw.external, 'sync').returns({ pid: 0, status: 1, stdout: get.path(fixture, 'article.cls'), output: [''], stderr: '', signal: 'SIGTERM' })\n            lw.file.kpsewhich('another-article.cls')\n            lw.file.kpsewhich('another-article.cls')\n            stub.restore()\n            assert.strictEqual(stub.callCount, 2)\n        })\n\n        it('should handle kpsewhich call failure gracefully', () => {\n            const stub = sinon.stub(lw.external, 'sync').throws(new Error('kpsewhich failed'))\n            const result = lw.file.kpsewhich('yet-another-article.cls')\n            stub.restore()\n            assert.strictEqual(result, undefined)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/02_core_watcher.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, mock, set, sleep } from './utils'\nimport { lw } from '../../src/lw'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    let _onDidChangeSpy: sinon.SinonSpy\n    const callOnDidChange = async (event: 'create' | 'change', uri: vscode.Uri) => { await _onDidChangeSpy.call(lw.watcher.src, event, uri) }\n    let _onDidDeleteSpy: sinon.SinonSpy\n    const callOnDidDelete = async (uri: vscode.Uri) => { await _onDidDeleteSpy.call(lw.watcher.src, uri) }\n    let _watchersSpy: sinon.SinonSpy\n    const getWatchers = () => _watchersSpy.call(lw.watcher.src) as {[folder: string]: {watcher: vscode.FileSystemWatcher, files: Set<string>}}\n    let _onChangeHandlersSpy: sinon.SinonSpy\n    const getOnChangeHandlers = () => _onChangeHandlersSpy.call(lw.watcher.src) as Set<(uri: vscode.Uri) => void>\n    let _onDeleteHandlersSpy: sinon.SinonSpy\n    const getOnDeleteHandlers = () => _onDeleteHandlersSpy.call(lw.watcher.src) as Set<(uri: vscode.Uri) => void>\n\n    before(() => {\n        mock.init(lw, 'watcher')\n        _onDidChangeSpy = sinon.spy(lw.watcher.src as any, 'onDidChange')\n        _onDidDeleteSpy = sinon.spy(lw.watcher.src as any, 'onDidDelete')\n        _watchersSpy = sinon.spy(lw.watcher.src as any, 'watchers', ['get']).get\n        _onChangeHandlersSpy = sinon.spy(lw.watcher.src as any, 'onChangeHandlers', ['get']).get\n        _onDeleteHandlersSpy = sinon.spy(lw.watcher.src as any, 'onDeleteHandlers', ['get']).get\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.watcher', () => {\n        it('should initialize watcher.src with default file extension', () => {\n            assert.strictEqual(lw.watcher.src.fileExt, '.*')\n        })\n\n        it('should initialize watcher.pdf with .pdf file extension', () => {\n            assert.strictEqual(lw.watcher.pdf.fileExt, '.pdf')\n        })\n\n        it('should initialize watcher.bib with .bib file extension', () => {\n            assert.strictEqual(lw.watcher.bib.fileExt, '.bib')\n        })\n    })\n\n    describe('lw.watcher.src.add', () => {\n        afterEach(() => {\n            lw.watcher.src.reset()\n        })\n\n        it('should add a new file to be watched and create a new watcher if necessary', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n            const spy = sinon.spy(lw.watcher.src as any, 'createWatcher')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            assert.ok(spy.called)\n            assert.ok(Object.keys(getWatchers()).includes(rootDir))\n            assert.ok(getWatchers()[rootDir].files.has('main.tex'))\n        })\n\n        it('should add a file to the existing watcher if a watcher already exists for the folder', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            lw.watcher.src.add(vscode.Uri.file(get.path(fixture, 'another.tex')))\n            assert.listStrictEqual(Object.keys(getWatchers()), [ rootDir ])\n            assert.ok(getWatchers()[rootDir].files.has('another.tex'))\n        })\n    })\n\n    describe('lw.watcher.src.remove', () => {\n        afterEach(() => {\n            lw.watcher.src.reset()\n        })\n\n        it('should remove a file from being watched', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            assert.ok(getWatchers()[rootDir].files.has('main.tex'))\n            lw.watcher.src.remove(vscode.Uri.file(texPath))\n            assert.ok(!getWatchers()[rootDir].files.has('main.tex'))\n        })\n\n        it('should not throw an error if the file is not being watched', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.remove(vscode.Uri.file(texPath))\n            assert.ok(true)\n        })\n    })\n\n    describe('lw.watcher.src.has', () => {\n        afterEach(() => {\n            lw.watcher.src.reset()\n        })\n\n        it('should return true if a file is being watched', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            assert.ok(getWatchers()[rootDir].files.has('main.tex'))\n        })\n\n        it('should return false if a file is not being watched', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            assert.ok(!getWatchers()[rootDir].files.has('another.tex'))\n        })\n    })\n\n    describe('lw.watcher.src.reset', () => {\n        afterEach(() => {\n            lw.watcher.src.reset()\n        })\n\n        it('should dispose of all watchers and reset the watchers map', () => {\n            const rootDir = get.path(fixture)\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            const spy = sinon.spy(getWatchers()[rootDir].watcher, 'dispose')\n            lw.watcher.src.reset()\n            spy.restore()\n            assert.ok(spy.called)\n            assert.listStrictEqual(Object.keys(getWatchers()), [ ])\n        })\n    })\n\n    describe('lw.watcher.src.onDidChange', () => {\n        const stub = sinon.stub()\n        const handler = (filePath: vscode.Uri) => { stub(filePath.fsPath) }\n\n        beforeEach(() => {\n            stub.reset()\n            lw.watcher.src.onChange(handler)\n        })\n\n        afterEach(() => {\n            lw.watcher.src.reset()\n            getOnChangeHandlers().delete(handler)\n        })\n\n        it('should call onChangeHandlers when creating watched file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            await callOnDidChange('create', vscode.Uri.file(texPath))\n            assert.strictEqual(stub.callCount, 1)\n            assert.listStrictEqual(stub.getCall(0).args, [ texPath ])\n        })\n\n        it('should call onChangeHandlers when changing watched file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            await callOnDidChange('change', vscode.Uri.file(texPath))\n            assert.strictEqual(stub.callCount, 1)\n            assert.listStrictEqual(stub.getCall(0).args, [ texPath ])\n        })\n\n        it('should not call onChangeHandlers when creating non-watched file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            await callOnDidChange('create', vscode.Uri.file(get.path(fixture, 'another.tex')))\n            assert.strictEqual(stub.callCount, 0)\n        })\n\n        it('should not call onChangeHandlers when changing non-watched file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            await callOnDidChange('change', vscode.Uri.file(get.path(fixture, 'another.tex')))\n            assert.strictEqual(stub.callCount, 0)\n        })\n\n        it('should call onChangeHandlers once when quickly changing watched binary file', async () => {\n            const binPath = get.path(fixture, 'main.bin')\n\n            lw.watcher.src.add(vscode.Uri.file(binPath))\n            await callOnDidChange('change', vscode.Uri.file(binPath))\n            await callOnDidChange('change', vscode.Uri.file(binPath))\n            await sleep(500)\n            assert.strictEqual(stub.callCount, 1)\n        })\n\n        it('should call onChangeHandlers multiple times when slowly changing watched binary file', async () => {\n            const binPath = get.path(fixture, 'main.bin')\n\n            lw.watcher.src.add(vscode.Uri.file(binPath))\n            await callOnDidChange('change', vscode.Uri.file(binPath))\n            await sleep(500)\n            await callOnDidChange('change', vscode.Uri.file(binPath))\n            await sleep(500)\n            assert.strictEqual(stub.callCount, 2)\n        })\n    })\n\n    describe('lw.watcher.src.onDidDelete', () => {\n        const stub = sinon.stub()\n        const handler = (filePath: vscode.Uri) => { stub(filePath.fsPath) }\n\n        beforeEach(() => {\n            stub.reset()\n            lw.watcher.src.onDelete(handler)\n            set.config('latex.watch.delay', 100)\n        })\n\n        afterEach(() => {\n            lw.watcher.src.reset()\n            getOnDeleteHandlers().delete(handler)\n        })\n\n        it('should call onDeleteHandlers when deleting watched file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            await callOnDidDelete(vscode.Uri.file(texPath))\n            assert.strictEqual(stub.callCount, 1)\n            assert.listStrictEqual(stub.getCall(0).args, [ texPath ])\n        })\n\n        it('should not call onChangeHandlers when watched file is deleted then created in a short time', async () => {\n            const binPath = get.path(fixture, 'main.bin')\n\n            lw.watcher.src.add(vscode.Uri.file(binPath))\n            await callOnDidDelete(vscode.Uri.file(binPath))\n            assert.strictEqual(stub.callCount, 0)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/03_core_cache.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, log, mock, set, sleep } from './utils'\nimport { lw } from '../../src/lw'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n\n    before(() => {\n        mock.init(lw, 'watcher', 'cache')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.cache.isExcluded', () => {\n        const texPath = get.path(fixture, 'main.tex')\n        const bblPath = get.path(fixture, 'main.bbl')\n\n        it('should excluded files', async () => {\n            log.start()\n            await lw.cache.refreshCache(bblPath)\n            log.stop()\n            assert.hasLog(`File is excluded from caching: ${bblPath} .`)\n\n            log.start()\n            await lw.cache.refreshCache('/dev/null')\n            log.stop()\n            assert.hasLog('File is excluded from caching: /dev/null .')\n        })\n\n        it('should not exclude non-excluded files', async () => {\n            await lw.cache.refreshCache(texPath)\n            assert.notHasLog(`File is excluded from caching: ${texPath} .`)\n        })\n\n        it('should excluded files with config set ', async () => {\n            set.config('latex.watch.files.ignore', ['**/*.bbl'])\n\n            log.start()\n            await lw.cache.refreshCache(bblPath)\n            log.stop()\n            assert.hasLog(`File is excluded from caching: ${bblPath} .`)\n\n            log.start()\n            await lw.cache.refreshCache('/dev/null')\n            log.stop()\n            assert.notHasLog('File is excluded from caching: /dev/null .')\n        })\n    })\n\n    describe('lw.cache.canCache', () => {\n        beforeEach(() => {\n            set.config('latex.watch.files.ignore', [])\n        })\n\n        it('should cache supported TeX files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            log.start()\n            await lw.cache.refreshCache(texPath)\n            log.stop()\n            assert.notHasLog(`File cannot be cached: ${texPath} .`)\n\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.rnw'))\n            log.stop()\n            assert.notHasLog(`File cannot be cached: ${get.path(fixture, 'main.rnw')} .`)\n\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.jnw'))\n            log.stop()\n            assert.notHasLog(`File cannot be cached: ${get.path(fixture, 'main.jnw')} .`)\n\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.pnw'))\n            log.stop()\n            assert.notHasLog(`File cannot be cached: ${get.path(fixture, 'main.pnw')} .`)\n        })\n\n        it('should return false for unsupported files', async () => {\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.cls'))\n            log.stop()\n            assert.hasLog(`File cannot be cached: ${get.path(fixture, 'main.cls')} .`)\n\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.sty'))\n            log.stop()\n            assert.hasLog(`File cannot be cached: ${get.path(fixture, 'main.sty')} .`)\n\n            log.start()\n            await lw.cache.refreshCache(get.path(fixture, 'main.txt'))\n            log.stop()\n            assert.hasLog(`File cannot be cached: ${get.path(fixture, 'main.txt')} .`)\n        })\n\n        it('should return false for expl3-code.tex', async () => {\n            await lw.cache.refreshCache(get.path(fixture, 'expl3-code.tex'))\n            assert.hasLog(`File cannot be cached: ${get.path(fixture, 'expl3-code.tex')} .`)\n        })\n    })\n\n    describe('lw.cache.add', () => {\n        it('should add a TeX file to watcher if not excluded', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(texPath)))\n        })\n\n        it('should ignore excluded files', () => {\n            const bblPath = get.path(fixture, 'main.bbl')\n\n            lw.cache.add(bblPath)\n            assert.ok(!lw.watcher.src.has(vscode.Uri.file(bblPath)))\n        })\n\n        it('should add a file to watcher but not cache it', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            assert.strictEqual(lw.cache.promises.get(texPath), undefined)\n        })\n    })\n\n    describe('lw.cache.get', () => {\n        it('should get the cache for a TeX file if exist', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            assert.ok(lw.cache.get(texPath))\n        })\n\n        it('should get undefined if a TeX file is not cached', () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            assert.ok(!lw.cache.get(texPath))\n        })\n    })\n\n    describe('lw.cache.paths', () => {\n        it('should get the paths of cached files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const texPathAnother = get.path(fixture, 'another.tex')\n\n            lw.cache.add(texPath)\n            lw.cache.add(texPathAnother)\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(texPathAnother)\n            const paths = lw.cache.paths()\n            assert.listStrictEqual(paths, [texPath, texPathAnother])\n        })\n\n        it('should get an empty array if no files are cached', () => {\n            assert.listStrictEqual(lw.cache.paths(), [])\n        })\n    })\n\n    describe('lw.cache.wait', () => {\n        it('should wait for finishing current caching', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            void lw.cache.refreshCache(texPath)\n            await lw.cache.wait(texPath)\n            assert.ok(lw.cache.get(texPath))\n        })\n\n        it('should initiate a caching if not already cached', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.wait(texPath, 0.2)\n            assert.ok(lw.cache.get(texPath))\n        })\n\n        it('should handle concurrent caching', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const wait = lw.cache.wait(texPath)\n            void lw.cache.refreshCache(texPath)\n            await wait\n            assert.ok(lw.cache.get(texPath))\n        })\n    })\n\n    describe('lw.cache.reset', () => {\n        it('should reset the src and bib watchers, but not pdf', () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const bibPath = get.path(fixture, 'main.bib')\n            const pdfPath = get.path(fixture, 'main.pdf')\n\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            lw.watcher.bib.add(vscode.Uri.file(bibPath))\n            lw.watcher.pdf.add(vscode.Uri.file(pdfPath))\n            lw.cache.reset()\n            assert.ok(!lw.watcher.src.has(vscode.Uri.file(texPath)))\n            assert.ok(!lw.watcher.bib.has(vscode.Uri.file(bibPath)))\n            assert.ok(lw.watcher.pdf.has(vscode.Uri.file(pdfPath)))\n        })\n\n        it('should reset the cache', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            lw.cache.reset()\n            assert.listStrictEqual(lw.cache.paths(), [])\n        })\n    })\n\n    describe('lw.cache.refreshCache', () => {\n        it('should properly exclude configged sources', async () => {\n            const bblPath = get.path(fixture, 'main.bbl')\n\n            await lw.cache.refreshCache(bblPath)\n            assert.listStrictEqual(lw.cache.paths(), [])\n        })\n\n        it('should properly skip non-cacheable sources', async () => {\n            await lw.cache.refreshCache(get.path(fixture, 'expl3-code.tex'))\n            assert.listStrictEqual(lw.cache.paths(), [])\n        })\n\n        it('should cache provided TeX source', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.listStrictEqual(lw.cache.paths(), [texPath])\n        })\n\n        it('should update children during caching', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.hasLog('Updated inputs of ')\n        })\n\n        it('should update AST during caching', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.hasLog('Parsed LaTeX AST in ')\n        })\n\n        it('should update document elements during caching', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.hasLog('Updated elements in ')\n        })\n\n        it('should cache provided dirty TeX source', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.textDocument(texPath, '', { isDirty: true })\n\n            await lw.cache.refreshCache(texPath)\n            stub.restore()\n            assert.listStrictEqual(lw.cache.paths(), [texPath])\n            assert.strictEqual(lw.cache.get(texPath)?.content, '')\n        })\n\n        it('should manage caching promises properly', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.ok(!lw.cache.promises.get(texPath))\n        })\n\n        it('should refresh cache if content is changed', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            await lw.cache.refreshCache(texPath)\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%')\n            const stub = mock.textDocument(texPath, '', { isDirty: true })\n            await lw.cache.refreshCache(texPath)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '')\n        })\n    })\n\n    describe('lw.cache.refreshCacheAggressive', () => {\n        beforeEach(() => {\n            set.config('intellisense.update.aggressive.enabled', true)\n            set.config('intellisense.update.delay', 100)\n        })\n\n        it('should not aggressively cache non-cached files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(150)\n            assert.listStrictEqual(lw.cache.paths(), [])\n        })\n\n        it('should aggressively cache cached files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n\n            let stub = mock.textDocument(texPath, '', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(50)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%')\n\n            stub = mock.textDocument(texPath, '', { isDirty: true })\n            await sleep(100)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '')\n        })\n\n        it('should reload .fls file when aggressively caching cached files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n\n            const stub = mock.textDocument(texPath, '', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(250)\n            stub.restore()\n            assert.hasLog('Parsing .fls ')\n        })\n\n        it('should not aggressively cache cached files without `intellisense.update.aggressive.enabled`', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('intellisense.update.aggressive.enabled', false)\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            const stub = mock.textDocument(texPath, '', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(150)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%')\n        })\n\n        it('should aggressively cache cached files once on quick changes', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n\n            let stub = mock.textDocument(texPath, '', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(50)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%')\n\n            stub = mock.textDocument(texPath, '%%', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(50)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%')\n\n            stub = mock.textDocument(texPath, '%%', { isDirty: true })\n            await sleep(100)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%%')\n        })\n\n        it('should aggressively cache cached files multiple times on slow changes', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n\n            let stub = mock.textDocument(texPath, '', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(150)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '')\n\n            stub = mock.textDocument(texPath, '%%', { isDirty: true })\n            lw.cache.refreshCacheAggressive(texPath)\n            await sleep(150)\n            stub.restore()\n            assert.strictEqual(lw.cache.get(lw.cache.paths()[0])?.content, '%%')\n        })\n    })\n\n    describe('lw.cache.updateAST', () => {\n        it('should call lw.parser.parse.tex to parse AST', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            ;(lw.parser.parse.tex as sinon.SinonStub).reset()\n            await lw.cache.refreshCache(texPath)\n            assert.hasLog(`Parse LaTeX AST: ${texPath} .`)\n            assert.strictEqual((lw.parser.parse.tex as sinon.SinonStub).callCount, 1)\n        })\n    })\n\n    describe('lw.cache.updateChildrenInput', () => {\n        it('should not add any children if there is nothing', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            assert.listStrictEqual(lw.cache.get(texPath)?.children, [])\n        })\n\n        it('should not add a child if the files does not exist', async () => {\n            const toParse = get.path(fixture, 'update_children', 'file_not_exist.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should not add a child if it is the root', async () => {\n            const toParse = get.path(fixture, 'update_children', 'input_main.tex')\n\n            set.root(fixture, 'main.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should add a child and cache it if not cached', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children', 'input_main.tex')\n\n            set.root(fixture, 'another.tex')\n            assert.strictEqual(lw.cache.get(texPath), undefined)\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(\n                lw.cache.get(toParse)?.children.map((child) => child.filePath),\n                [texPath]\n            )\n            await lw.cache.wait(texPath, 60)\n            assert.strictEqual(lw.cache.get(texPath)?.filePath, texPath)\n        })\n\n        it('should watch the child', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children', 'input_main.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(texPath)))\n        })\n\n        it('should add two children if there are two inputs', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const texPathAnother = get.path(fixture, 'another.tex')\n            const toParse = get.path(fixture, 'update_children', 'two_inputs.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(\n                lw.cache.get(toParse)?.children.map((child) => child.filePath),\n                [texPath, texPathAnother]\n            )\n        })\n\n        it('should add one child if two inputs are identical', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children', 'two_same_inputs.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(\n                lw.cache.get(toParse)?.children.map((child) => child.filePath),\n                [texPath]\n            )\n        })\n    })\n\n    describe('lw.cache.updateChildrenXr', () => {\n        it('should not add any children if there is nothing', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            const fileCache = lw.cache.get(texPath)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [])\n        })\n\n        it('should not add a child if the files does not exist', async () => {\n            const toParse = get.path(fixture, 'update_children_xr', 'file_not_exist.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [])\n        })\n\n        it('should not add a child if it is the root', async () => {\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main.tex')\n            set.root(fixture, 'main.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [])\n        })\n\n        it('should add a child to root instead of the current file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const texPathAnother = get.path(fixture, 'another.tex')\n\n            set.root(texPathAnother)\n            lw.cache.add(texPathAnother)\n            await lw.cache.refreshCache(texPathAnother)\n\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n\n            let fileCache = lw.cache.get(texPathAnother)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [texPath])\n\n            fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [])\n        })\n\n        it('should add a child if it is next to the source', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [texPath])\n        })\n\n        it('should add a child if it is next to the root', async () => {\n            const rootPath = get.path(fixture, 'update_children_xr', 'sub', 'main.tex')\n            set.root(rootPath)\n            lw.cache.add(rootPath)\n            await lw.cache.refreshCache(rootPath)\n\n            const toParse = get.path(fixture, 'update_children_xr', 'input_sub.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n\n            const fileCache = lw.cache.get(rootPath)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [\n                get.path(fixture, 'update_children_xr', 'sub', 'sub.tex'),\n            ])\n        })\n\n        it('should add a child if it is defined in `latex.texDirs`', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.config('latex.texDirs', [get.path(fixture, 'update_children_xr', 'sub')])\n\n            set.root(texPath)\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n\n            const toParse = get.path(fixture, 'update_children_xr', 'input_sub.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n\n            const fileCache = lw.cache.get(texPath)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Object.keys(fileCache.external), [\n                get.path(fixture, 'update_children_xr', 'sub', 'sub.tex'),\n            ])\n        })\n\n        it('should add a child and cache it if not cached', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            assert.strictEqual(lw.cache.get(texPath), undefined)\n\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(texPath, 60)\n            assert.strictEqual(lw.cache.get(texPath)?.filePath, texPath)\n        })\n\n        it('should watch the child', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(texPath)))\n        })\n\n        it('should add a child with prefix', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'update_children_xr', 'input_main_prefix.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.strictEqual(fileCache.external[texPath], 'prefix')\n        })\n    })\n\n    describe('lw.cache.updateBibfiles', () => {\n        it('should not add any bib files if there is nothing', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            const fileCache = lw.cache.get(texPath)\n            assert.ok(fileCache)\n            assert.strictEqual(fileCache.bibfiles.size, 0)\n        })\n\n        it('should not add a bib file if the file does not exist', async () => {\n            const toParse = get.path(fixture, 'update_bibfiles', 'file_not_exist.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Array.from(fileCache.bibfiles), [])\n        })\n\n        it('should add bib files with \\\\bibliography, \\\\addbibresource, \\\\putbib, and possible presense of \\\\subfix', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'update_bibfiles', 'main.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Array.from(fileCache.bibfiles), [\n                bibPath,\n                get.path(fixture, 'update_bibfiles', 'bib', '1.bib'),\n                get.path(fixture, 'update_bibfiles', 'bib', '2.bib'),\n                get.path(fixture, 'update_bibfiles', 'bib', '3.bib'),\n                get.path(fixture, 'update_bibfiles', 'bib', '4.bib'),\n                get.path(fixture, 'update_bibfiles', 'bib', '5.bib'),\n            ])\n        })\n\n        it('should add multiple bib files in one macro', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'update_bibfiles', 'same_macro.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Array.from(fileCache.bibfiles), [\n                bibPath,\n                get.path(fixture, 'update_bibfiles', 'bib', '1.bib'),\n            ])\n        })\n\n        it('should not add excluded bib files', async () => {\n            const toParse = get.path(fixture, 'update_bibfiles', 'file_excluded.tex')\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            const fileCache = lw.cache.get(toParse)\n            assert.ok(fileCache)\n            assert.listStrictEqual(Array.from(fileCache.bibfiles), [])\n        })\n\n        it('should watch bib files if added', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'update_bibfiles', 'same_macro.tex')\n\n            lw.cache.add(toParse)\n            await lw.cache.refreshCache(toParse)\n            assert.ok(lw.watcher.bib.has(vscode.Uri.file(bibPath)))\n        })\n    })\n\n    describe('lw.cache.loadFlsFile and lw.cache.parseFlsContent', () => {\n        it('should do nothing if no .fls is found', async () => {\n            const texPathAnother = get.path(fixture, 'another.tex')\n\n            await lw.cache.loadFlsFile(texPathAnother)\n            assert.notHasLog('Parsing .fls ')\n        })\n\n        it('should not consider files that are both INPUT and OUTPUT', async () => {\n            const toParse = get.path(fixture, 'load_fls_file', 'both_input_output.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should not consider files that are excluded', async () => {\n            const toParse = get.path(fixture, 'load_fls_file', 'excluded_file.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should not consider files that do not exist', async () => {\n            const toParse = get.path(fixture, 'load_fls_file', 'file_not_exist.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should not consider the file itself if listed in .fls', async () => {\n            const toParse = get.path(fixture, 'load_fls_file', 'self_include.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should not consider files that already been cached', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            lw.cache.add(texPath)\n            await lw.cache.refreshCache(texPath)\n            const toParse = get.path(fixture, 'load_fls_file', 'include_main.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(lw.cache.get(toParse)?.children, [])\n        })\n\n        it('should add file as child if all checks passed', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'load_fls_file', 'include_main.tex')\n\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(\n                lw.cache.get(toParse)?.children.map((child) => child.filePath),\n                [texPath]\n            )\n        })\n\n        it('should add multiple files as children if all checks passed', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const texPathAnother = get.path(fixture, 'another.tex')\n            const toParse = get.path(fixture, 'load_fls_file', 'include_many.tex')\n\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(\n                lw.cache.get(toParse)?.children.map((child) => child.filePath),\n                [texPath, texPathAnother]\n            )\n        })\n\n        it('should watch added .tex files', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'load_fls_file', 'include_main.tex')\n\n            await lw.cache.loadFlsFile(toParse)\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(texPath)))\n        })\n\n        it('should watch added non-.tex files', async () => {\n            const pdfPath = get.path(fixture, 'main.pdf')\n            const toParse = get.path(fixture, 'load_fls_file', 'non_tex_input.tex')\n\n            await lw.cache.loadFlsFile(toParse)\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(pdfPath)))\n        })\n\n        it('should watch added non-.tex files, except for aux or out files', async () => {\n            const toParse = get.path(fixture, 'load_fls_file', 'aux_out_input.tex')\n            await lw.cache.loadFlsFile(toParse)\n            assert.ok(!lw.watcher.src.has(vscode.Uri.file(get.path(fixture, 'load_fls_file', 'main.aux'))))\n            assert.ok(!lw.watcher.src.has(vscode.Uri.file(get.path(fixture, 'load_fls_file', 'main.out'))))\n        })\n    })\n\n    describe('lw.cache.parseAuxFile', () => {\n        it('should do nothing if no \\\\bibdata is found', async () => {\n            const toParse = get.path(fixture, 'load_aux_file', 'nothing.tex')\n            set.root(fixture, 'load_aux_file', 'nothing.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(Array.from(lw.cache.get(toParse)?.bibfiles ?? new Set([''])), [])\n        })\n\n        it('should add \\\\bibdata from .aux file', async () => {\n            const toParse = get.path(fixture, 'load_aux_file', 'main.tex')\n            set.root(fixture, 'load_aux_file', 'main.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(Array.from(lw.cache.get(toParse)?.bibfiles ?? new Set()), [\n                get.path(fixture, 'load_aux_file', 'main.bib'),\n            ])\n        })\n\n        it('should not add \\\\bibdata if the bib is excluded', async () => {\n            set.config('latex.watch.files.ignore', ['**/main.bib'])\n            const toParse = get.path(fixture, 'load_aux_file', 'main.tex')\n            set.root(fixture, 'load_aux_file', 'main.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.listStrictEqual(Array.from(lw.cache.get(toParse)?.bibfiles ?? new Set([''])), [])\n        })\n\n        it('should watch bib files if added', async () => {\n            const toParse = get.path(fixture, 'load_aux_file', 'main.tex')\n            set.root(fixture, 'load_aux_file', 'main.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.loadFlsFile(toParse)\n            assert.ok(lw.watcher.bib.has(vscode.Uri.file(get.path(fixture, 'load_aux_file', 'main.bib'))))\n        })\n    })\n\n    describe('lw.cache.getIncludedBib', () => {\n        it('should return an empty list if no file path is given', () => {\n            assert.listStrictEqual(lw.cache.getIncludedBib(), [])\n        })\n\n        it('should return an empty list if the given file is not cached', () => {\n            const toParse = get.path(fixture, 'included_bib', 'main.tex')\n            assert.listStrictEqual(lw.cache.getIncludedBib(toParse), [])\n        })\n\n        it('should return a list of included .bib files', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'included_bib', 'main.tex')\n\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(lw.cache.getIncludedBib(toParse), [bibPath])\n        })\n\n        it('should return a list of included .bib files with \\\\input', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'included_bib', 'another.tex')\n\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(get.path(fixture, 'included_bib', 'main.tex'))\n            assert.listStrictEqual(lw.cache.getIncludedBib(toParse), [bibPath])\n        })\n\n        it('should return a list of included .bib files with circular inclusions', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'included_bib', 'circular_1.tex')\n\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(get.path(fixture, 'included_bib', 'circular_2.tex'))\n            assert.listStrictEqual(lw.cache.getIncludedBib(toParse), [bibPath])\n        })\n\n        it('should return a list of de-duplicated .bib files', async () => {\n            const bibPath = get.path(fixture, 'main.bib')\n            const toParse = get.path(fixture, 'included_bib', 'duplicate_1.tex')\n\n            await lw.cache.refreshCache(toParse)\n            assert.listStrictEqual(lw.cache.getIncludedBib(toParse), [bibPath])\n        })\n    })\n\n    describe('lw.cache.getIncludedTeX', () => {\n        it('should return an empty list if no file path is given', () => {\n            assert.strictEqual(lw.cache.getIncludedTeX().size, 0)\n        })\n\n        it('should return an empty list if the given file is not cached', () => {\n            const toParse = get.path(fixture, 'included_tex', 'main.tex')\n            assert.strictEqual(lw.cache.getIncludedTeX(toParse).size, 0)\n        })\n\n        it('should return a list of included .tex files', async () => {\n            const toParse = get.path(fixture, 'included_tex', 'main.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(get.path(fixture, 'included_tex', 'another.tex'))\n            const includedFiles = lw.cache.getIncludedTeX(toParse)\n            assert.strictEqual(includedFiles.size, 2)\n            assert.ok(includedFiles.has(toParse))\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'another.tex')))\n        })\n\n        it('should return a list of included .tex files with circular inclusions', async () => {\n            const toParse = get.path(fixture, 'included_tex', 'circular_1.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(get.path(fixture, 'included_tex', 'circular_2.tex'))\n            const includedFiles = lw.cache.getIncludedTeX(toParse)\n            assert.strictEqual(includedFiles.size, 2)\n            assert.ok(includedFiles.has(toParse))\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'circular_2.tex')))\n        })\n\n        it('should return a list of de-duplicated .tex files', async () => {\n            const toParse = get.path(fixture, 'included_tex', 'duplicate_1.tex')\n            await lw.cache.refreshCache(toParse)\n            await lw.cache.wait(get.path(fixture, 'included_tex', 'another.tex'))\n            const includedFiles = lw.cache.getIncludedTeX(toParse)\n            assert.strictEqual(includedFiles.size, 4)\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'duplicate_1.tex')))\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'duplicate_2.tex')))\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'main.tex')))\n            assert.ok(includedFiles.has(get.path(fixture, 'included_tex', 'another.tex')))\n        })\n    })\n\n    describe('lw.cache.getFlsChildren', () => {\n        it('should return an empty list if no .fls is found', async () => {\n            const texPathAnother = get.path(fixture, 'another.tex')\n\n            assert.listStrictEqual(await lw.cache.getFlsChildren(texPathAnother), [])\n        })\n\n        it('should return a list of input files in the .fls file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'load_fls_file', 'include_main.tex')\n\n            assert.listStrictEqual(await lw.cache.getFlsChildren(toParse), [texPath])\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/04_core_root.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, mock, set, sleep } from './utils'\nimport { lw } from '../../src/lw'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n\n    before(() => {\n        mock.init(lw, 'watcher', 'cache', 'root')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('on root file deletion', () => {\n        beforeEach(() => {\n            set.config('latex.watch.delay', 100)\n        })\n\n        afterEach(() => {\n            lw.watcher.src.reset()\n        })\n\n        it('should remove root info and refind', async () => {\n            const texPath = get.path(fixture, 'another.tex')\n\n            lw.root.file.path = texPath\n            lw.watcher.src.add(vscode.Uri.file(texPath))\n            assert.notHasLog('Current workspace folders: ')\n\n            const onDidDeleteSpy = sinon.spy(lw.watcher.src as any, 'onDidDelete')\n            await onDidDeleteSpy.call(lw.watcher.src, vscode.Uri.file(texPath))\n            onDidDeleteSpy.restore()\n            assert.hasLog('Current workspace folders: ')\n        })\n    })\n\n    describe('lw.root.getWorkspace', () => {\n        it('should return undefined if no workspace is opened', () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = sinon.stub(vscode.workspace, 'workspaceFolders').value([])\n            const workspace1 = lw.root.getWorkspace()\n            const workspace2 = lw.root.getWorkspace(texPath)\n            stub.restore()\n\n            assert.strictEqual(workspace1, undefined)\n            assert.strictEqual(workspace2, undefined)\n        })\n\n        it('should return the workspace of provided file', () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const workspace = lw.root.getWorkspace(texPath)\n\n            assert.strictEqual(\n                workspace,\n                vscode.workspace.workspaceFile ?? vscode.workspace.workspaceFolders?.[0].uri\n            )\n        })\n\n        it('should return the first workspace if no file is provided or opened', () => {\n            const workspace = lw.root.getWorkspace()\n\n            assert.strictEqual(\n                workspace,\n                vscode.workspace.workspaceFile ?? vscode.workspace.workspaceFolders?.[0].uri\n            )\n        })\n\n        it('should return the workspace of active editor if no file is provided', () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '')\n            const workspace = lw.root.getWorkspace()\n            stub.restore()\n\n            assert.strictEqual(\n                workspace,\n                vscode.workspace.workspaceFile ?? vscode.workspace.workspaceFolders?.[0].uri\n            )\n        })\n    })\n\n    describe('lw.root.findFromMagic', () => {\n        beforeEach(() => {\n            set.config('latex.build.enableMagicComments', true)\n        })\n\n        it('should do nothing if there is no active editor', async () => {\n            const stub = sinon.stub(vscode.window, 'activeTextEditor').value(undefined)\n            await lw.root.find()\n            stub.restore()\n\n            assert.notHasLog('Try finding root from magic comment.')\n        })\n\n        it('should find root from magic comment', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=main.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should find root from magic comment with relative path', async () => {\n            const texPath = get.path(fixture, 'find_magic', 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=../main.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, get.path(fixture, 'main.tex'))\n        })\n\n        it('should return undefined if the magic root does not exist', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=non-existing.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Non-existent magic root ${get.path(fixture, 'non-existing.tex')} .`)\n        })\n\n        it('should find root from chained magic comment `a->b->c`', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=find_magic/chain.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, get.path(fixture, 'find_magic', 'main.tex'))\n        })\n\n        it('should find root from deeply chained magic comment `a->b->c->d`', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=find_magic/more_chain.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, get.path(fixture, 'find_magic', 'main.tex'))\n        })\n\n        it('should return undefined if the chained magic root does not exist', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=find_magic/chain_file_not_exist.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Non-existent magic root ${get.path(fixture, 'find_magic', 'non-existent.tex')} .`)\n        })\n\n        it('should return the looped root if the chain forms a loop `a->b->c->a`', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=find_magic/loop_1.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should find root from magic comment with different syntax', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            let stub = mock.activeTextEditor(texPath, '% !TeX root=main.tex')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, texPath)\n\n            lw.root.file.path = undefined\n            stub = mock.activeTextEditor(texPath, '% ! TeX root=main.tex')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, texPath)\n\n            lw.root.file.path = undefined\n            stub = mock.activeTextEditor(texPath, '%!TEX root=main.tex')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should find root from magic comment with different file name extension', async () => {\n            let rootPath = get.path(fixture, 'find_magic', 'main.jnw')\n            let stub = mock.activeTextEditor(rootPath, '%!TeX root=main.jnw')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, rootPath)\n\n            rootPath = get.path(fixture, 'find_magic', 'main.rnw')\n            stub = mock.activeTextEditor(rootPath, '%!TeX root=main.rnw')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, rootPath)\n\n            rootPath = get.path(fixture, 'find_magic', 'main.snw')\n            stub = mock.activeTextEditor(rootPath, '%!TeX root=main.snw')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, rootPath)\n\n            rootPath = get.path(fixture, 'find_magic', 'main.rtex')\n            stub = mock.activeTextEditor(rootPath, '%!TeX root=main.rtex')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, rootPath)\n\n            rootPath = get.path(fixture, 'find_magic', 'main.jtexw')\n            stub = mock.activeTextEditor(rootPath, '%!TeX root=main.jtexw')\n            await lw.root.find()\n            stub.restore()\n            assert.strictEqual(lw.root.file.path, rootPath)\n        })\n    })\n\n    describe('lw.root.findFromRoot', () => {\n        it('should return undefined if there is no active editor', async () => {\n            const stub = sinon.stub(vscode.window, 'activeTextEditor').value(undefined)\n            await lw.root.find()\n            stub.restore()\n\n            assert.notHasLog('Try finding root from current root.')\n        })\n\n        it('should return undefined if there is no root', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '')\n            await lw.root.find()\n            stub.restore()\n\n            assert.notHasLog('Try finding root from current root.')\n        })\n\n        it('should return undefined if active editor is not a file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.root(texPath)\n            const stub = mock.activeTextEditor('https://google.com', '', { scheme: 'https' })\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('The active document cannot be used as the root file: ')\n        })\n\n        it('should find root if active file is in the root tex tree', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'find_root', 'root.tex')\n\n            set.root(toParse)\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(toParse)\n            const stub = mock.activeTextEditor(texPath, '')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from current root.')\n            assert.pathStrictEqual(lw.root.file.path, toParse)\n        })\n\n        it('should return undefined if active file is not in the root tex tree', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n            const toParse = get.path(fixture, 'find_root', 'root_no_input.tex')\n\n            set.root(toParse)\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(toParse)\n            const stub = mock.activeTextEditor(texPath, '')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from current root.')\n            assert.pathNotStrictEqual(lw.root.file.path, toParse)\n        })\n    })\n\n    describe('lw.root.findFromActive', () => {\n        beforeEach(() => {\n            set.config('latex.rootFile.indicator', '\\\\documentclass[]{}')\n        })\n\n        it('should do nothing if there is no active editor', async () => {\n            const stub = sinon.stub(vscode.window, 'activeTextEditor').value(undefined)\n            await lw.root.find()\n            stub.restore()\n\n            assert.notHasLog('Try finding root from active editor.')\n        })\n\n        it('should do nothing if active editor is not a file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            set.root(texPath)\n            const stub = mock.activeTextEditor('https://google.com', '', { scheme: 'https' })\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('The active document cannot be used as the root file:')\n        })\n\n        it('should find root if active file has root file indicator', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Found root file from active editor: ${texPath}`)\n            assert.pathStrictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should ignore root file indicators in comments', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '% \\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.notHasLog(`Found root file from active editor: ${texPath}`)\n        })\n\n        it('should find subfile root if active file is a subfile', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\documentclass[find_active/main.tex]{subfiles}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from active editor.')\n            assert.pathStrictEqual(lw.root.file.path, get.path(fixture, 'find_active', 'main.tex'))\n            assert.pathStrictEqual(lw.root.subfiles.path, texPath)\n        })\n\n        it('should find root if active file is a subfile but points to non-existing file', async () => {\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\documentclass[find_active/nothing.tex]{subfiles}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from active editor.')\n            assert.pathStrictEqual(lw.root.file.path, texPath)\n        })\n    })\n\n    describe('lw.root.getIndicator', () => {\n        it('should use \\\\begin{document} indicator on selecting `\\\\begin{document}`', async () => {\n            set.config('latex.rootFile.indicator', '\\\\begin{document}')\n\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\begin{document}\\n\\\\end{document}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Found root file from active editor: ${texPath}`)\n            assert.pathStrictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should use \\\\startext indicator on selecting `\\\\starttext`', async () => {\n            set.config('latex.rootFile.indicator', '\\\\starttext')\n\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\starttext\\n\\\\stoptext\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Found root file from active editor: ${texPath}`)\n            assert.pathStrictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should return \\\\documentclass indicator on other values', async () => {\n            set.config('latex.rootFile.indicator', 'invalid value')\n\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '\\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog(`Found root file from active editor: ${texPath}`)\n            assert.pathStrictEqual(lw.root.file.path, texPath)\n        })\n    })\n\n    describe('lw.root.findInWorkspace', () => {\n        beforeEach(() => {\n            set.config('latex.rootFile.indicator', '\\\\begin{document}') // avoid active editor check\n        })\n\n        it('should follow `latex.search.rootFiles.include` config', async () => {\n            set.config('latex.search.rootFiles.include', [ 'absolutely-nothing.tex' ])\n            await lw.root.find()\n\n            assert.strictEqual(lw.root.file.path, undefined)\n        })\n\n        it('should follow `latex.search.rootFiles.exclude` config', async () => {\n            set.config('latex.search.rootFiles.exclude', [ '**/*' ])\n            await lw.root.find()\n\n            assert.strictEqual(lw.root.file.path, undefined)\n        })\n\n        it('should find the correct root from workspace', async () => {\n            const texPath = get.path(fixture, 'find_workspace', 'main.tex')\n\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/*.tex` ])\n            set.config('latex.search.rootFiles.exclude', [ `${fixture}/find_workspace/**/parent.tex` ])\n            await lw.root.find()\n\n            assert.hasLog('Try finding root from current workspaceRootDir:')\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should ignore root file indicators in comments', async () => {\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/comment.tex` ])\n            await lw.root.find()\n\n            assert.strictEqual(lw.root.file.path, undefined)\n        })\n\n        it('should find the correct root if the .fls of root includes active editor', async () => {\n            const texPath = get.path(fixture, 'find_workspace', 'main.tex')\n            const texPathAnother = get.path(fixture, 'find_workspace', 'another.tex')\n\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/*.tex` ])\n            const stub = mock.activeTextEditor(texPathAnother, '\\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from current workspaceRootDir:')\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should find the correct root if the children of root includes active editor', async () => {\n            const texPath = get.path(fixture, 'find_workspace', 'parent.tex')\n            const texPathAnother = get.path(fixture, 'find_workspace', 'another.tex')\n\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/*.tex` ])\n            set.config('latex.search.rootFiles.exclude', [ `${fixture}/find_workspace/main.tex` ])\n            await lw.cache.refreshCache(texPath)\n            const stub = mock.activeTextEditor(texPathAnother, '\\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from current workspaceRootDir:')\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n\n        it('should find the correct root if there is a fls file, and the children of root includes active editor', async () => {\n            const texPath = get.path(fixture, 'find_workspace', 'parent.tex')\n            const texPathAnother = get.path(fixture, 'find_workspace', 'another.tex')\n\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/*.tex` ])\n            await lw.cache.refreshCache(texPath)\n            const stub = mock.activeTextEditor(texPathAnother, '\\\\documentclass{article}\\n')\n            await lw.root.find()\n            stub.restore()\n\n            assert.hasLog('Try finding root from current workspaceRootDir:')\n            assert.strictEqual(lw.root.file.path, get.path(fixture, 'find_workspace', 'main.tex'))\n        })\n\n        it('should find the correct root if current root is in the candidates', async () => {\n            const texPath = get.path(fixture, 'find_workspace', 'main.tex')\n\n            set.config('latex.search.rootFiles.include', [ `${fixture}/find_workspace/**/*.tex` ])\n            set.root(fixture, 'find_workspace', 'main.tex')\n            await lw.root.find()\n\n            assert.hasLog('Try finding root from current workspaceRootDir:')\n            assert.strictEqual(lw.root.file.path, texPath)\n        })\n    })\n\n    describe('lw.root.find', () => {\n        beforeEach(() => {\n            (lw.outline.refresh as sinon.SinonStub).reset()\n            ;(lw.completion.input.reset as sinon.SinonStub).reset()\n            ;(lw.lint.label.reset as sinon.SinonStub).reset()\n        })\n\n        it('should not change root if no new root can be found, only refresh outline', async () => {\n            set.config('latex.search.rootFiles.exclude', [ '**/*.*' ])\n\n            await lw.root.find()\n\n            assert.strictEqual(lw.root.file.path, undefined)\n            assert.strictEqual((lw.outline.refresh as sinon.SinonStub).callCount, 1)\n        })\n\n        it('should not change root if new root remains the same, only refresh outline', async () => {\n            set.config('latex.build.enableMagicComments', true)\n            const texPath = get.path(fixture, 'main.tex')\n            set.root(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=main.tex')\n            const cacheStub = sinon.spy(lw.cache, 'refreshCache')\n            await lw.root.find()\n            stub.restore()\n            cacheStub.restore()\n\n            assert.strictEqual(lw.root.file.path, texPath)\n            assert.strictEqual((lw.outline.refresh as sinon.SinonStub).callCount, 1)\n            assert.strictEqual(cacheStub.callCount, 0)\n        })\n\n        it('should set path, dir, langId on newly found root', async () => {\n            set.config('latex.build.enableMagicComments', true)\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=main.tex')\n            await lw.root.find()\n            stub.restore()\n\n            assert.strictEqual(lw.root.file.path, texPath)\n            assert.strictEqual(lw.root.file.langId, lw.file.getLangId(texPath))\n            assert.strictEqual(lw.root.dir.path, path.dirname(texPath))\n        })\n\n        it('should reset input completion, duplicate label cache, and file caches on newly found root', async () => {\n            set.config('latex.build.enableMagicComments', true)\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=main.tex')\n            const cacheSpy = sinon.spy(lw.cache, 'reset')\n            await lw.root.find()\n            stub.restore()\n            cacheSpy.restore()\n\n            assert.strictEqual(cacheSpy.callCount, 1)\n            assert.strictEqual((lw.completion.input.reset as sinon.SinonStub).callCount, 1)\n            assert.strictEqual((lw.lint.label.reset as sinon.SinonStub).callCount, 1)\n        })\n\n        it('should watch, cache, and parse fls of the new root', async () => {\n            set.config('latex.build.enableMagicComments', true)\n            const texPath = get.path(fixture, 'main.tex')\n\n            const stub = mock.activeTextEditor(texPath, '%!TeX root=main.tex')\n            const cacheSpy1 = sinon.spy(lw.cache, 'refreshCache')\n            const cacheSpy2 = sinon.spy(lw.cache, 'loadFlsFile')\n            await lw.root.find()\n            stub.restore()\n            cacheSpy1.restore()\n\n            assert.ok(lw.watcher.src.has(vscode.Uri.file(texPath)))\n            assert.ok(cacheSpy1.called)\n\n            await lw.cache.wait(texPath)\n            await sleep(50)\n            cacheSpy2.restore()\n\n            assert.ok(cacheSpy2.called)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/05_compile_queue.test.ts",
    "content": "import * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, mock } from './utils'\nimport { lw } from '../../src/lw'\nimport { queue } from '../../src/compile/queue'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    before(() => {\n        mock.init(lw)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.compile->queue', () => {\n        beforeEach(() => {\n            queue.clear()\n        })\n\n        it('should clear the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n            assert.ok(queue.getStep())\n\n            queue.clear()\n            assert.strictEqual(queue.getStep(), undefined)\n        })\n\n        it('should get the next step from the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n            queue.add({ name: 'bibtex', command: 'bibtex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n\n            const step1 = queue.getStep()\n            const step2 = queue.getStep()\n\n            assert.strictEqual(step1?.name, 'latex')\n            assert.strictEqual(step2?.name, 'bibtex')\n        })\n\n        it('should add a Tool as a RecipeStep to the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.rootFile, 'main.tex')\n            assert.strictEqual(step.recipeName, 'Recipe1')\n            assert.strictEqual(step.isExternal, false)\n        })\n\n        it('should add a Tool as an ExternalStep to the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), true, '/usr/bin')\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.recipeName, 'External')\n            assert.strictEqual(step.isExternal, true)\n            assert.strictEqual(step.cwd, '/usr/bin')\n        })\n\n        it('should prepend a Tool as a RecipeStep to the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n\n            let step = queue.getStep()\n            queue.clear()\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'alt.tex', 'Recipe1', Date.now(), false, '')\n\n            assert.ok(step)\n            queue.prepend(step)\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.rootFile, 'main.tex')\n            assert.strictEqual(step.recipeName, 'Recipe1')\n            assert.strictEqual(step.isExternal, false)\n        })\n\n        it('should check if the last step in the queue', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n\n            let step = queue.getStep()\n            assert.ok(step)\n            assert.ok(queue.isLastStep(step))\n\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now() + 1, false, '')\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.ok(queue.isLastStep(step))\n        })\n\n        it('should get the formatted string representation of a step', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n\n            const step = queue.getStep()\n            assert.ok(step)\n            const stepString = queue.getStepString(step)\n            assert.strictEqual(stepString, 'Recipe1')\n        })\n\n        it('should get correct step repr with multiple recipes', () => {\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now(), false, '')\n            queue.add({ name: 'latex', command: 'pdflatex' }, 'main.tex', 'Recipe1', Date.now() + 1, false, '')\n            const step = queue.getStep()\n            assert.ok(step)\n            const stepString = queue.getStepString(step)\n            assert.strictEqual(stepString, 'Recipe1')\n        })\n\n        it('should get correct step repr with multiple tools in one recipe', () => {\n            const recipeTime = Date.now()\n            queue.add({ name: 'latex1', command: 'pdflatex' }, 'main.tex', 'Recipe1', recipeTime, false, '')\n            queue.add({ name: 'latex2', command: 'pdflatex' }, 'main.tex', 'Recipe1', recipeTime, false, '')\n\n            let step = queue.getStep()\n            assert.ok(step)\n            let stepString = queue.getStepString(step)\n            assert.strictEqual(stepString, 'Recipe1: 1/2 (latex1)')\n\n            step = queue.getStep()\n            assert.ok(step)\n            stepString = queue.getStepString(step)\n            assert.strictEqual(stepString, 'Recipe1: 2/2 (latex2)')\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/06_compile_recipe.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport Sinon, * as sinon from 'sinon'\nimport { assert, get, log, mock, set, sleep } from './utils'\nimport { lw } from '../../src/lw'\nimport { build, initialize } from '../../src/compile/recipe'\nimport { queue } from '../../src/compile/queue'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    let getAuxDirStub: sinon.SinonStub\n    let getIncludedTeXStub: sinon.SinonStub\n    let mkdirStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw)\n        getAuxDirStub = sinon.stub(lw.file, 'getAuxDir').returns('.')\n        getIncludedTeXStub = lw.cache.getIncludedTeX as sinon.SinonStub\n        mkdirStub = sinon.stub(lw.external, 'mkdirSync').returns(undefined)\n    })\n\n    beforeEach(() => {\n        initialize()\n        getIncludedTeXStub.returns([])\n        set.config('latex.recipe.default', 'first')\n    })\n\n    afterEach(() => {\n        queue.clear()\n        getAuxDirStub.resetHistory()\n        getIncludedTeXStub.resetHistory()\n        mkdirStub.resetHistory()\n        lw.root.subfiles.path = undefined\n        lw.compile.compiledPDFPath = ''\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.compile->recipe', () => {\n        it('should set the LATEXWORKSHOP_DOCKER_LATEX environment variable based on the configuration', async () => {\n            const expectedImageName = 'your-docker-image'\n\n            await set.codeConfig('docker.image.latex', expectedImageName)\n            await sleep(150)\n\n            assert.strictEqual(process.env['LATEXWORKSHOP_DOCKER_LATEX'], expectedImageName)\n        })\n\n        it('should set the LATEXWORKSHOP_DOCKER_PATH environment variable based on the configuration', async () => {\n            const expectedDockerPath = '/usr/local/bin/docker'\n\n            await set.codeConfig('docker.path', expectedDockerPath)\n            await sleep(150)\n\n            assert.strictEqual(process.env['LATEXWORKSHOP_DOCKER_PATH'], expectedDockerPath)\n        })\n    })\n\n    describe('lw.compile->recipe.build', () => {\n        it('should call `saveAll` before building', async () => {\n            const stub = sinon.stub(vscode.workspace, 'saveAll') as sinon.SinonStub\n            const rootFile = set.root('main.tex')\n\n            await build(rootFile, 'latex', async () => {})\n            stub.restore()\n\n            assert.ok(stub.calledOnce)\n        })\n\n        it('should call `createAuxSubFolders` with correct args', async () => {\n            const rootFile = set.root('main.tex')\n            const subPath = get.path('sub', 'main.tex')\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['latexmk'] }])\n            lw.root.subfiles.path = subPath\n            getIncludedTeXStub.returns([rootFile, subPath])\n\n            await build(rootFile, 'latex', async () => {})\n            assert.hasLog(`auxDir: ${path.dirname(rootFile)} .`)\n        })\n\n        it('should call `createAuxSubFolders` with correct args with subfiles package', async () => {\n            const rootFile = set.root('main.tex')\n            const subPath = get.path('sub', 'main.tex')\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['latexmk'] }])\n            lw.root.subfiles.path = subPath\n            getIncludedTeXStub.returns([rootFile, subPath])\n\n            await build(subPath, 'latex', async () => {})\n            assert.hasLog(`auxDir: ${path.dirname(rootFile)} .`)\n        })\n\n        it('should not call buildLoop if no tool is created', async () => {\n            const rootFile = set.root('main.tex')\n            set.config('latex.tools', [])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['nonexistentTool'] }])\n\n            const stub = sinon.stub()\n            await build(rootFile, 'latex', stub)\n\n            assert.strictEqual(stub.callCount, 0)\n        })\n\n        it('should set lw.compile.compiledPDFPath', async () => {\n            const rootFile = set.root('main.tex')\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['latexmk'] }])\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.pathStrictEqual(lw.compile.compiledPDFPath, rootFile.replace('.tex', '.pdf'))\n        })\n    })\n\n    describe('lw.compile->recipe.createBuildTools', () => {\n        let readStub: sinon.SinonStub\n\n        beforeEach(() => {\n            readStub = sinon.stub(lw.file, 'read')\n        })\n\n        afterEach(() => {\n            readStub.restore()\n        })\n\n        it('should do nothing but log an error if no recipe is found', async () => {\n            const rootFile = set.root('main.tex')\n            set.config('latex.recipes', [])\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog('Invalid toolchain.')\n        })\n\n        it('should create build tools based on magic comments when enabled', async () => {\n            const rootFile = set.root('magic.tex')\n            readStub.resolves('% !TEX program = pdflatex\\n')\n            set.config('latex.build.enableMagicComments', true)\n            set.config('latex.recipes', [])\n            set.config('latex.build.enableMagicComments', true)\n            set.config('latex.magic.args', ['--shell-escape'])\n\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'pdflatex')\n            assert.listStrictEqual(step.args, ['--shell-escape'])\n        })\n\n        it('should do nothing but log an error with magic comments but disabled', async () => {\n            const rootFile = set.root('magic.tex')\n            set.config('latex.recipes', [])\n            set.config('latex.build.enableMagicComments', false)\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog('Invalid toolchain.')\n        })\n\n        it('should skip undefined tools in the recipe and log an error', async () => {\n            const rootFile = set.root('main.tex')\n            set.config('latex.tools', [{ name: 'existingTool', command: 'pdflatex' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['nonexistentTool', 'existingTool'] }])\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog('Skipping undefined tool nonexistentTool in recipe Recipe1.')\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'existingTool')\n            assert.strictEqual(step.command, 'pdflatex')\n            assert.listStrictEqual(step.args, [])\n        })\n\n        it('should do nothing but log an error if no tools are prepared', async () => {\n            const rootFile = set.root('main.tex')\n            set.config('latex.tools', [])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['nonexistentTool'] }])\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog('Invalid toolchain.')\n        })\n    })\n\n    describe('lw.compile->recipe.createAuxSubFolders', () => {\n        beforeEach(() => {\n            getIncludedTeXStub.returns([ set.root('main.tex') ])\n        })\n\n        afterEach(() => {\n            getAuxDirStub.returns('.')\n        })\n\n        it('should resolve the aux directory relative to the root directory if not absolute', async () => {\n            const rootFile = set.root('main.tex')\n            const relativeAuxDir = 'aux'\n            const expectedOutDir = path.resolve(path.dirname(rootFile), relativeAuxDir)\n            getAuxDirStub.returns(relativeAuxDir)\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog(`auxDir: ${expectedOutDir} .`)\n        })\n\n        it('should use the absolute aux directory as is', async () => {\n            const rootFile = set.root('main.tex')\n            const absoluteOutDir = '/absolute/output'\n            getAuxDirStub.returns(absoluteOutDir)\n\n            await build(rootFile, 'latex', async () => {})\n\n            assert.hasLog(`auxDir: ${absoluteOutDir} .`)\n        })\n\n        it('should create the aux directory if it does not exist', async () => {\n            const rootFile = set.root('main.tex')\n            const relativeOutDir = 'output'\n            const expectedOutDir = path.resolve(path.dirname(rootFile), relativeOutDir)\n            const stub = sinon.stub(lw.file, 'exists').resolves(false)\n            getAuxDirStub.returns(relativeOutDir)\n\n            await build(rootFile, 'latex', async () => {})\n            stub.restore()\n\n            assert.strictEqual(mkdirStub.callCount, 1)\n            assert.pathStrictEqual(mkdirStub.getCall(0).args[0] as string, expectedOutDir)\n            assert.deepStrictEqual(mkdirStub.getCall(0).args[1], { recursive: true })\n        })\n\n        it('should not create the aux directory if it already exists', async () => {\n            const rootFile = set.root('main.tex')\n            const relativeOutDir = 'output'\n            const stub = sinon.stub(lw.file, 'exists').resolves({ type: vscode.FileType.Directory, ctime: 0, mtime: 0, size: 0 })\n            getAuxDirStub.returns(relativeOutDir)\n\n            await build(rootFile, 'latex', async () => {})\n            mkdirStub.resetHistory()\n\n            await build(rootFile, 'latex', async () => {})\n            stub.restore()\n\n            assert.ok(!mkdirStub.called)\n        })\n    })\n\n    describe('lw.compile->recipe.findMagicComments', () => {\n        let readStub: sinon.SinonStub\n\n        before(() => {\n            readStub = sinon.stub(lw.file, 'read')\n            queue.clear()\n        })\n\n        beforeEach(() => {\n            set.config('latex.build.enableMagicComments', true)\n        })\n\n        afterEach(() => {\n            readStub.reset()\n            queue.clear()\n        })\n\n        after(() => {\n            readStub.restore()\n        })\n\n        it('should do nothing if there are no magic comments', async () => {\n            readStub.resolves('Some regular content\\nwith no magic comments')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n\n            assert.ok(step)\n            assert.notStrictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME)\n            assert.notStrictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n        })\n\n        it('should detect only TeX magic comment', async () => {\n            readStub.resolves('% !TEX program = pdflatex\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'pdflatex')\n        })\n\n        it('should detect TeX magic comment with options', async () => {\n            readStub.resolves('% !TEX program = pdflatex\\n% !TEX options = --shell-escape\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'pdflatex')\n            assert.listStrictEqual(step.args, ['--shell-escape'])\n        })\n\n        it('should detect BIB magic comment', async () => {\n            readStub.resolves('% !TEX program = pdflatex\\n% !BIB program = bibtex\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            queue.getStep() // pdflatex\n            const step = queue.getStep() // bibtex\n\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.BIB_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'bibtex')\n        })\n\n        it('should detect BIB magic comment with options', async () => {\n            readStub.resolves('% !TEX program = pdflatex\\n% !BIB program = bibtex\\n% !BIB options = --min-crossrefs=100\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            queue.getStep() // pdflatex\n            const step = queue.getStep() // bibtex\n\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.BIB_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'bibtex')\n            assert.listStrictEqual(step.args, ['--min-crossrefs=100'])\n        })\n\n        it('should detect only LW recipe comment', async () => {\n            set.config('latex.tools', [{ name: 'Tool1', command: 'pdflatex' }, { name: 'Tool2', command: 'xelatex' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['Tool1'] }, { name: 'Recipe2', tools: ['Tool2'] }])\n\n            readStub.resolves('% !LW recipe = Recipe2\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool2')\n            assert.strictEqual(step.command, 'xelatex')\n        })\n\n            it('should ignore LW recipe comment when calling a given recipe', async () => {\n            set.config('latex.tools', [{ name: 'Tool1', command: 'pdflatex' }, { name: 'Tool2', command: 'xelatex' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['Tool1'] }, { name: 'Recipe2', tools: ['Tool2'] }])\n\n            readStub.resolves('% !LW recipe = Recipe2\\n')\n\n            await build('dummy.tex', 'latex', async () => {}, 'Recipe1')\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool1')\n            assert.strictEqual(step.command, 'pdflatex')\n        })\n\n        it('should detect all magic comments', async () => {\n            readStub.resolves(\n                '% !TEX program = xelatex\\n' +\n                    '% !TEX options = -interaction=nonstopmode\\n' +\n                    '% !BIB program = biber\\n' +\n                    '% !BIB options = --debug'\n            )\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            let step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'xelatex')\n            assert.listStrictEqual(step.args, ['-interaction=nonstopmode'])\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.BIB_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'biber')\n            assert.listStrictEqual(step.args, ['--debug'])\n        })\n\n        it('should ignore non-magic comments', async () => {\n            readStub.resolves('This is a regular line\\n% !TEX program = texprogram')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.notStrictEqual(step.command, 'texprogram')\n        })\n\n        it('should stop reading after encountering non-comment lines', async () => {\n            readStub.resolves(\n                '% !TEX program = pdflatex\\n' +\n                    'This is not a comment and should stop further reading\\n' +\n                    '% !BIB program = bibtex'\n            )\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            queue.getStep() // pdflatex\n            const step = queue.getStep() // bibtex\n\n            assert.strictEqual(step, undefined)\n        })\n    })\n\n    describe('lw.compile->recipe.createBuildMagic', () => {\n        let readStub: sinon.SinonStub\n\n        before(() => {\n            readStub = sinon.stub(lw.file, 'read')\n            queue.clear()\n        })\n\n        beforeEach(() => {\n            set.config('latex.build.enableMagicComments', true)\n            set.config('latex.magic.args', ['--shell-escape'])\n            set.config('latex.magic.bib.args', ['--min-crossrefs=1000'])\n        })\n\n        afterEach(() => {\n            readStub.reset()\n            queue.clear()\n        })\n\n        after(() => {\n            readStub.restore()\n        })\n\n        it('should set magicTex.args and magicTex.name if magicTex.args is undefined and magicBib is undefined', async () => {\n            readStub.resolves('% !TEX program = pdflatex\\n\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'pdflatex')\n            assert.listStrictEqual(step.args, ['--shell-escape'])\n        })\n\n        it('should set magicTex.args, magicTex.name, magicBib.args, and magicBib.name when magicBib is provided and both args are undefined', async () => {\n            readStub.resolves('% !TEX program = xelatex\\n% !BIB program = biber\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            let step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'xelatex')\n            assert.listStrictEqual(step.args, ['--shell-escape'])\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.BIB_MAGIC_PROGRAM_NAME + lw.constant.MAGIC_PROGRAM_ARGS_SUFFIX)\n            assert.strictEqual(step.command, 'biber')\n            assert.listStrictEqual(step.args, ['--min-crossrefs=1000'])\n        })\n\n        it('should not overwrite magicTex.args if it is already defined, even when magicBib is provided and magicBib.args is undefined', async () => {\n            readStub.resolves('% !TEX program = xelatex\\n% !TEX options = -interaction=nonstopmode\\n% !BIB program = biber\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'xelatex')\n            assert.listStrictEqual(step.args, ['-interaction=nonstopmode'])\n        })\n\n        it('should not overwrite magicTex.args and magicBib.args if both are already defined', async () => {\n            readStub.resolves('% !TEX program = xelatex\\n% !TEX options = -interaction=nonstopmode\\n% !BIB program = biber\\n% !BIB options = --debug\\n')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            let step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.TEX_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'xelatex')\n            assert.listStrictEqual(step.args, ['-interaction=nonstopmode'])\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, lw.constant.BIB_MAGIC_PROGRAM_NAME)\n            assert.strictEqual(step.command, 'biber')\n            assert.listStrictEqual(step.args, ['--debug'])\n        })\n    })\n\n    describe('lw.compile->recipe.findRecipe', () => {\n        beforeEach(() => {\n            set.config('latex.tools', [{ name: 'Tool1', command: 'pdflatex' }, { name: 'Tool2', command: 'xelatex' }, { name: 'Tool3', command: 'lualatex' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['Tool1'] }, { name: 'Recipe2', tools: ['Tool2'] }, { name: 'Recipe3', tools: ['Tool3'] }])\n        })\n\n        it('should do nothing but log an error if no recipes are defined', async () => {\n            set.config('latex.recipes', [])\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            assert.hasLog('No recipes defined.')\n        })\n\n        it('should use the default recipe name if recipeName is undefined', async () => {\n            set.config('latex.recipe.default', 'Recipe2')\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool2')\n        })\n\n        it('should do nothing log an error if the specified recipe is not found', async () => {\n            await build('dummy.tex', 'latex', async () => {}, 'nonExistentRecipe')\n\n            assert.hasLog('Failed to resolve build recipe')\n        })\n\n        it('should return the last used recipe if defaultRecipeName is `lastUsed`', async () => {\n            set.config('latex.recipe.default', 'lastUsed')\n\n            await build('dummy.tex', 'latex', async () => {}, 'Recipe2')\n            queue.clear()\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool2')\n        })\n\n        it('should use the updated new tools in the last used recipe if defaultRecipeName is `lastUsed`', async () => {\n            set.config('latex.recipe.default', 'lastUsed')\n\n            await build('dummy.tex', 'latex', async () => {}, 'Recipe2')\n            queue.clear()\n\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['Tool1'] }, { name: 'Recipe2', tools: ['Tool3'] }, { name: 'Recipe3', tools: ['Tool3'] }])\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool3')\n        })\n\n        it('should reset prevRecipe if the language ID changes', async () => {\n            set.config('latex.recipe.default', 'lastUsed')\n\n            await build('dummy.tex', 'latex', async () => {}, 'Recipe2')\n            queue.clear()\n            await build('dummy.tex', 'latex-expl3', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.notStrictEqual(step.name, 'Tool2')\n        })\n\n        it('should return the first matching recipe based on langId if no recipe is found', async () => {\n            set.config('latex.recipes', [\n                { name: 'recipe1', tools: [] },\n                { name: 'rsweave Recipe', tools: [] },\n                { name: 'weave.jl Recipe', tools: [] },\n                { name: 'pweave Recipe', tools: [] },\n            ])\n\n            log.start()\n            await build('dummy.tex', 'rsweave', async () => {})\n            log.stop()\n\n            assert.hasLog('Preparing to run recipe: rsweave Recipe.')\n            assert.notHasLog('Preparing to run recipe: weave.jl Recipe.')\n            assert.notHasLog('Preparing to run recipe: pweave Recipe.')\n\n            log.start()\n            await build('dummy.tex', 'jlweave', async () => {})\n            log.stop()\n\n            assert.notHasLog('Preparing to run recipe: rsweave Recipe.')\n            assert.hasLog('Preparing to run recipe: weave.jl Recipe.')\n            assert.notHasLog('Preparing to run recipe: pweave Recipe.')\n\n            log.start()\n            await build('dummy.tex', 'pweave', async () => {})\n            log.stop()\n\n            assert.notHasLog('Preparing to run recipe: rsweave Recipe.')\n            assert.notHasLog('Preparing to run recipe: weave.jl Recipe.')\n            assert.hasLog('Preparing to run recipe: pweave Recipe.')\n        })\n\n        it('should do nothing but log an error if no matching recipe is found for the specific langId', async () => {\n            await build('dummy.tex', 'rsweave', async () => {})\n\n            assert.hasLog('Cannot find any recipe for langID `rsweave`.')\n        })\n\n        it('should use the first recipe if no other recipe matches', async () => {\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.name, 'Tool1')\n        })\n    })\n\n    describe('lw.compile->recipe.populateTools', () => {\n        let readStub: sinon.SinonStub\n        let syncStub: sinon.SinonStub\n        let platform: PropertyDescriptor | undefined\n        let extRoot: string\n\n        const setPlatform = (newPlatform: NodeJS.Platform) => {\n            Object.defineProperty(process, 'platform', { value: newPlatform })\n        }\n\n        before(() => {\n            readStub = sinon.stub(lw.file, 'read')\n            syncStub = sinon.stub(lw.external, 'sync')\n            platform = Object.getOwnPropertyDescriptor(process, 'platform')\n            extRoot = lw.extensionRoot\n        })\n\n        beforeEach(() => {\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            set.config('latex.recipes', [{ name: 'Recipe1', tools: ['latexmk'] }])\n        })\n\n        afterEach(() => {\n            readStub.reset()\n            syncStub.reset()\n            if (platform !== undefined) {\n                Object.defineProperty(process, 'platform', platform)\n            }\n            lw.extensionRoot = extRoot\n            queue.clear()\n        })\n\n        after(() => {\n            readStub.restore()\n            syncStub.restore()\n        })\n\n        it('should modify command when Docker is enabled on Windows', async () => {\n            set.config('docker.enabled', true)\n            setPlatform('win32')\n            lw.extensionRoot = '/path/to/extension'\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.pathStrictEqual(step.command, path.resolve('/path/to/extension', './scripts/latexmk.bat'))\n        })\n\n        it('should modify command and chmod when Docker is enabled on non-Windows', async () => {\n            set.config('docker.enabled', true)\n            setPlatform('linux')\n            lw.extensionRoot = '/path/to/extension'\n\n            const stub = sinon.stub(lw.external, 'chmodSync')\n            await build('dummy.tex', 'latex', async () => {})\n            stub.restore()\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.pathStrictEqual(step.command, path.resolve('/path/to/extension', './scripts/latexmk'))\n            assert.strictEqual(stub.getCall(0).args?.[1], 0o755)\n        })\n\n        it('should not modify command when Docker is disabled', async () => {\n            set.config('docker.enabled', false)\n\n            await build('dummy.tex', 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.command, 'latexmk')\n        })\n\n        it('should replace argument placeholders', async () => {\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk', args: ['%DOC%', '%DOC%', '%DIR%'], env: {} }])\n            const rootFile = set.root('main.tex')\n\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.pathStrictEqual(step.args?.[0], rootFile.replace('.tex', ''))\n            assert.pathStrictEqual(step.args?.[1], rootFile.replace('.tex', ''))\n            assert.pathStrictEqual(step.args?.[2], get.path(''))\n        })\n\n        it('should set TeX directories correctly', async () => {\n            set.config('latex.tools', [\n                {\n                    name: 'latexmk',\n                    command: 'latexmk',\n                    args: ['-out-directory=out', '-aux-directory=aux'],\n                    env: {},\n                },\n            ])\n            const rootFile = set.root('main.tex')\n\n            const stub = sinon.stub(lw.file, 'setTeXDirs')\n            await build(rootFile, 'latex', async () => {})\n            stub.restore()\n\n            assert.listStrictEqual(stub.getCall(0).args, [rootFile, 'out', 'aux'])\n        })\n\n        it('should process environment variables correctly', async () => {\n            set.config('latex.tools', [\n                {\n                    name: 'latexmk',\n                    command: 'latexmk',\n                    args: [],\n                    env: { DOC: '%DOC%' },\n                },\n            ])\n            const rootFile = set.root('main.tex')\n\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.pathStrictEqual(step.env?.['DOC'], rootFile.replace('.tex', ''))\n        })\n\n        it('should append max print line arguments when enabled', async () => {\n            set.config('latex.option.maxPrintLine.enabled', true)\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            syncStub.returns({ stdout: 'pdfTeX 3.14159265-2.6-1.40.21 (MiKTeX 2.9.7350 64-bit)' })\n            const rootFile = set.root('main.tex')\n\n            await build(rootFile, 'latex', async () => {})\n\n            let step = queue.getStep()\n            assert.ok(step)\n            assert.ok(step.args?.includes('--max-print-line=' + lw.constant.MAX_PRINT_LINE), step.args?.join(' '))\n\n            set.config('latex.tools', [{ name: 'latexmk', command: 'pdflatex' }])\n            initialize()\n            await build(rootFile, 'latex', async () => {})\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.ok(step.args?.includes('--max-print-line=' + lw.constant.MAX_PRINT_LINE), step.args?.join(' '))\n\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk', args: ['--lualatex'] }])\n            initialize()\n            await build(rootFile, 'latex', async () => {})\n\n            step = queue.getStep()\n            assert.ok(step)\n            assert.ok(!step.args?.includes('--max-print-line=' + lw.constant.MAX_PRINT_LINE), step.args?.join(' '))\n        })\n\n        it('should add --max-print-line argument to the arg string with MikTeX and %!TeX options', async () => {\n            await set.config('latex.option.maxPrintLine.enabled', true)\n            await set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n            await set.config('latex.build.enableMagicComments', true)\n            syncStub.returns({ stdout: 'pdfTeX 3.14159265-2.6-1.40.21 (MiKTeX 2.9.7350 64-bit)' })\n            readStub.resolves('% !TEX program = latexmk\\n% !TEX options = -synctex=1 -interaction=nonstopmode -file-line-error\\n')\n            const rootFile = set.root('main.tex')\n            initialize()\n\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.strictEqual(step.args?.[0], '--max-print-line=10000 -synctex=1 -interaction=nonstopmode -file-line-error', JSON.stringify(step.args))\n        })\n    })\n\n    describe('lw.compile->recipe.isMikTeX', () => {\n        let syncStub: Sinon.SinonStub\n\n        before(() => {\n            syncStub = sinon.stub(lw.external, 'sync')\n        })\n\n        beforeEach(() => {\n            set.config('latex.option.maxPrintLine.enabled', true)\n            set.config('latex.tools', [{ name: 'latexmk', command: 'latexmk' }])\n        })\n\n        afterEach(() => {\n            syncStub.reset()\n        })\n\n        after(() => {\n            syncStub.restore()\n        })\n\n        it('should not consider MikTeX logic when pdflatex command fails', async () => {\n            syncStub.throws(new Error('Command failed'))\n            const rootFile = set.root('main.tex')\n\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.ok(!step.args?.includes('--max-print-line=' + lw.constant.MAX_PRINT_LINE), step.args?.join(' '))\n            assert.hasLog('Cannot run `pdflatex` to determine if we are using MiKTeX.')\n        })\n\n        it('should not execute compile program again to determine MikTeX if already executed and cached', async () => {\n            const rootFile = set.root('main.tex')\n            syncStub.returns({ stdout: 'pdfTeX 3.14159265-2.6-1.40.21 (MiKTeX 2.9.7350 64-bit)' })\n\n            await build(rootFile, 'latex', async () => {})\n            queue.clear()\n            syncStub.resetHistory()\n            await build(rootFile, 'latex', async () => {})\n\n            const step = queue.getStep()\n            assert.ok(step)\n            assert.ok(step.args?.includes('--max-print-line=' + lw.constant.MAX_PRINT_LINE), step.args?.join(' '))\n            assert.strictEqual(syncStub.callCount, 0)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/07_compile_external.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, mock, set } from './utils'\nimport { lw } from '../../src/lw'\nimport * as lwUtils from '../../src/utils/utils'\nimport { queue } from '../../src/compile/queue'\nimport { build } from '../../src/compile/external'\nimport type { ExternalStep } from '../../src/types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    before(() => {\n        mock.init(lw)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.compile->external.build', () => {\n        afterEach(() => {\n            queue.clear()\n        })\n\n        it('should save all open files in the workspace', async () => {\n            const saveAllStub = sinon.stub(vscode.workspace, 'saveAll') as sinon.SinonStub\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub())\n            saveAllStub.restore()\n\n            assert.ok(saveAllStub.calledOnce)\n        })\n\n        it('should create a Tool object representing the build command and arguments', async () => {\n            const rootFile = set.root('main.tex')\n\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub(), rootFile)\n\n            const step = queue.getStep() as ExternalStep | undefined\n            assert.ok(step)\n            assert.strictEqual(step.name, 'command')\n            assert.strictEqual(step.command, 'command')\n            assert.strictEqual(step.isExternal, true)\n            assert.deepStrictEqual(step.args, ['arg1', 'arg2'])\n        })\n\n        it('should determine the current working directory for the build', async () => {\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub())\n\n            const step = queue.getStep() as ExternalStep | undefined\n            assert.ok(step)\n            assert.pathStrictEqual(step.cwd, get.path())\n        })\n\n        it('should default to cwd if no workspace folder is available', async () => {\n            const stub = sinon.stub(vscode.workspace, 'workspaceFolders').get(() => undefined)\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub())\n            stub.restore()\n\n            const step = queue.getStep() as ExternalStep | undefined\n            assert.ok(step)\n            assert.pathStrictEqual(step.cwd, '/cwd')\n        })\n\n        it('should replace argument placeholders if a root file is provided', async () => {\n            const stub = sinon.stub().returnsArg(0)\n            const replaceStub = sinon.stub(lwUtils, 'replaceArgumentPlaceholders').returns(stub)\n            const pathStub = sinon.stub(lw.file, 'getPdfPath').returns('main.pdf')\n            const rootFile = set.root('main.tex')\n\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub(), rootFile)\n            replaceStub.restore()\n            pathStub.restore()\n\n            assert.ok(stub.calledTwice)\n            assert.ok(replaceStub.calledOnce)\n            assert.strictEqual(stub.firstCall.args[0], 'arg1')\n            assert.strictEqual(stub.secondCall.args[0], 'arg2')\n            assert.strictEqual(replaceStub.firstCall.args[0], rootFile)\n        })\n\n        it('should not replace argument placeholders if no root file is provided', async () => {\n            const stub = sinon.stub().returnsArg(0)\n            const replaceStub = sinon.stub(lwUtils, 'replaceArgumentPlaceholders').returns(stub)\n\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub())\n            replaceStub.restore()\n\n            assert.ok(stub.notCalled)\n            assert.ok(replaceStub.notCalled)\n        })\n\n        it('should set the compiledPDFPath if a root file is provided', async () => {\n            const rootFile = set.root('main.tex')\n\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub(), rootFile)\n\n            assert.pathStrictEqual(lw.compile.compiledPDFPath, get.path('main.pdf'))\n        })\n\n        it('should not set the compiledPDFPath if no root file is provided', async () => {\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub())\n\n            assert.strictEqual(lw.compile.compiledPDFPath, '')\n        })\n\n        it('should execute the build loop', async () => {\n            const stub = sinon.stub().resolves()\n\n            await build('command', ['arg1', 'arg2'], '/cwd', stub)\n\n            assert.ok(stub.calledOnce)\n        })\n\n        it('should add the build tool to the queue for execution', async () => {\n            const rootFile = set.root('main.tex')\n\n            await build('command', ['arg1', 'arg2'], '/cwd', sinon.stub(), rootFile)\n\n            assert.ok(queue.getStep())\n            assert.strictEqual(queue.getStep(), undefined)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/08_compile_build.test.ts",
    "content": "import * as vscode from 'vscode'\nimport type { SpawnOptions } from 'child_process'\nimport * as cs from 'cross-spawn'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { assert, get, log, mock, set, sleep } from './utils'\nimport { lw } from '../../src/lw'\nimport { autoBuild, build } from '../../src/compile/build'\nimport * as pick from '../../src/utils/quick-pick'\nimport { terminate } from '../../src/compile/terminate'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    let activeStub: sinon.SinonStub\n    let findStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw)\n        ;(lw.cache.getIncludedTeX as sinon.SinonStub).returns([get.path('main.tex')])\n        findStub = lw.root.find as sinon.SinonStub\n        ;(lw.extra.clean as sinon.SinonStub).resolves(Promise.resolve())\n    })\n\n    beforeEach(() => {\n        activeStub = mock.activeTextEditor(get.path('main.tex'), '', { languageId: 'latex' })\n        findStub.callsFake(() => {\n            set.root('main.tex')\n            return Promise.resolve(undefined)\n        })\n        set.config('latex.tools', [\n            { name: 'tool', command: 'bash', args: ['-c', 'exit 0;'] },\n            { name: 'bad', command: 'bash', args: ['-c', 'exit 1;'] },\n        ])\n        set.config('latex.recipes', [{ name: 'recipe', tools: ['tool'] }])\n    })\n\n    afterEach(() => {\n        activeStub.restore()\n        findStub.resetHistory()\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.compile->build.build', () => {\n        it('should do nothing if there is no active text editor', async () => {\n            activeStub.restore()\n\n            await build()\n\n            assert.hasLog('Cannot start to build because the active editor is undefined.')\n        })\n\n        it('should try find root if not given as an argument', async () => {\n            await build()\n\n            assert.ok(findStub.called)\n        })\n\n        it('should skip finding root if given as an argument', async () => {\n            await build(false, get.path('alt.tex'), 'latex')\n\n            assert.ok(!findStub.called)\n        })\n\n        it('should use the correct root file if not given as an argument', async () => {\n            set.root('main.tex')\n\n            await build()\n\n            assert.hasLog(`Building root file: ${get.path('main.tex')}`)\n        })\n\n        it('should use external command to build project if set', async () => {\n            set.config('latex.external.build.command', 'bash')\n            set.config('latex.external.build.args', ['-c', 'exit 0;#external'])\n\n            await build()\n\n            assert.hasLog('Recipe step 1 The command is bash:[\"-c\",\"exit 0;#external\"].')\n        })\n\n        it('should use the current pwd as external command cwd', async () => {\n            set.config('latex.external.build.command', 'bash')\n            set.config('latex.external.build.args', ['-c', 'echo $PWD'])\n\n            await build()\n\n            assert.pathStrictEqual(\n                get.compiler.log().split('\\n')[0].trim(),\n                path.dirname(get.path('main.tex')).replace(/^([a-zA-Z]):/, (_, p1: string) => '\\\\' + p1.toLowerCase())\n            )\n        })\n\n        it('should do nothing if cannot find root and not external', async () => {\n            findStub.callsFake(() => {\n                lw.root.file.path = undefined\n                lw.root.file.langId = undefined\n                return Promise.resolve(undefined)\n            })\n\n            await build()\n\n            assert.hasLog('Cannot find LaTeX root file. See')\n        })\n\n        it('should let use pick root file when subfile is detected', async () => {\n            lw.root.subfiles.path = get.path('subfile.tex')\n            lw.root.file.langId = 'latex'\n            const stub = sinon.stub(pick, 'pickRootPath').resolves(get.path('subfile.tex'))\n\n            await build()\n\n            lw.root.subfiles.path = undefined\n            lw.root.file.langId = undefined\n            stub.restore()\n\n            assert.hasLog(`Building root file: ${get.path('subfile.tex')}`)\n        })\n\n        it('should skip picking root file if `skipSelection` is `true`', async () => {\n            lw.root.subfiles.path = get.path('subfile.tex')\n            lw.root.file.langId = 'latex'\n            const stub = sinon.stub(pick, 'pickRootPath').resolves(get.path('subfile.tex'))\n\n            await build(true)\n\n            lw.root.subfiles.path = undefined\n            lw.root.file.langId = undefined\n            stub.restore()\n\n            assert.hasLog(`Building root file: ${get.path('main.tex')}`)\n        })\n    })\n\n    describe('lw.compile->build.buildLoop', () => {\n        it('should not loop a new build if another one is ongoing', async () => {\n            set.config('latex.tools', [{ name: 'tool', command: 'bash', args: ['-c', 'sleep .5;exit 0;'] }])\n\n            const buildPromise = build()\n            await build()\n            await buildPromise\n\n            assert.hasLog('Another build loop is already running.')\n        })\n\n        it('should increment `lw.compile.compiledPDFWriting` to avoid PDF refresh during compilation', async () => {\n            await build()\n\n            assert.ok(lw.compile.compiledPDFWriting > 0, lw.compile.compiledPDFWriting.toString())\n\n            await new Promise((resolve) =>\n                setTimeout(\n                    resolve,\n                    (vscode.workspace.getConfiguration('latex-workshop').get('latex.watch.pdf.delay') as number) * 2 + 100\n                )\n            )\n\n            assert.strictEqual(lw.compile.compiledPDFWriting, 0)\n        })\n\n        it('should handle multiple steps one by one', async () => {\n            set.config('latex.recipes', [{ name: 'recipe', tools: ['tool', 'tool'] }])\n\n            await build()\n\n            assert.hasLog('Recipe step 1 The command is bash:[\"-c\",\"exit 0;\"].')\n            assert.hasLog('Recipe step 2 The command is bash:[\"-c\",\"exit 0;\"].')\n        })\n\n        it('should early-terminate if a step returns non-zero code', async () => {\n            set.config('latex.recipes', [{ name: 'recipe', tools: ['bad', 'tool'] }])\n            set.config('latex.autoBuild.cleanAndRetry.enabled', false)\n\n            await build()\n\n            assert.hasLog('Recipe step 1 The command is bash:[\"-c\",\"exit 1;\"].')\n            assert.notHasLog('Recipe step 2 The command is bash:[\"-c\",\"exit 0;\"].')\n        })\n\n        it('should correctly set `skipped` flag to `true` for skipped latexmk steps', async () => {\n            set.config('latex.tools', [\n                { name: 'tool', command: 'bash', args: ['-c', 'echo \"Latexmk: All targets (build) are up-to-date\";'] },\n            ])\n\n            const stub = lw.viewer.refresh as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(!stub.called)\n\n            set.config('latex.tools', [{ name: 'tool', command: 'bash', args: ['-c', 'exit 0;'] }])\n\n            stub.resetHistory()\n            await build()\n\n            assert.ok(stub.called)\n        })\n    })\n\n    describe('lw.compile->build.spawnProcess', () => {\n        let readStub: sinon.SinonStub\n\n        beforeEach(() => {\n            readStub = sinon.stub(lw.file, 'read')\n        })\n\n        afterEach(() => {\n            readStub.restore()\n        })\n\n\n        it('should respect `latex.build.clearLog.everyRecipeStep.enabled` config', async () => {\n            set.config('latex.tools', [{ name: 'tool', command: 'bash', args: ['-c', 'echo 1;'] }])\n            set.config('latex.recipes', [{ name: 'recipe', tools: ['tool', 'tool'] }])\n            set.config('latex.build.clearLog.everyRecipeStep.enabled', true)\n\n            await build()\n            const stepLog = get.compiler.log()\n\n            set.config('latex.build.clearLog.everyRecipeStep.enabled', false)\n            await build()\n            assert.strictEqual(stepLog + stepLog, get.compiler.log())\n        })\n\n        it('should handle magic comment %!TEX program', async () => {\n            readStub.resolves('% !TEX program = echo\\n')\n            set.config('latex.build.enableMagicComments', true)\n            set.config('latex.magic.args', ['--arg1', '--arg2'])\n\n            await build()\n            assert.strictEqual(get.compiler.log().trim(), '--arg1 --arg2')\n        })\n\n        it('should handle magic comment % !TEX program with % !TEX options', async () => {\n            readStub.resolves('% !TEX program = echo\\n% !TEX options = --arg1 --arg2\\n')\n            set.config('latex.build.enableMagicComments', true)\n\n            await build()\n            assert.strictEqual(get.compiler.log().trim(), '--arg1 --arg2')\n        })\n\n        it('should use the root file directory as cwd when building', async () => {\n            set.root('main.tex')\n            const spawnSpy = sinon.spy(lw.external, 'spawn')\n\n            await build()\n            spawnSpy.restore()\n\n            assert.pathStrictEqual(spawnSpy.getCall(0)?.args?.[2].cwd?.toString(), path.dirname(get.path('main.tex')))\n        })\n\n        it('should change current working directory to root when using subfiles to compile sub files', async () => {\n            set.root('main.tex')\n            set.config('latex.tools', [\n                { name: 'tool', command: 'latexmk', args: [] },\n            ])\n            lw.root.subfiles.path = get.path('sub/subfile.tex')\n\n            const spawnStub = sinon.stub(lw.external, 'spawn')\n            let lastSpawnArgs: [command: string, args: readonly string[], options: SpawnOptions] | undefined\n            spawnStub.callsFake((...args) => {\n                lastSpawnArgs = args\n                return cs.spawn('true')\n            })\n\n            await build(true, get.path('sub/subfile.tex'), 'latex')\n            spawnStub.restore()\n\n            lw.root.subfiles.path = undefined\n\n            assert.pathStrictEqual(lastSpawnArgs?.[2].cwd?.toString(), path.dirname(get.path('main.tex')))\n        })\n\n        it('should set and use `max_print_line` envvar when building', async () => {\n            const spawnSpy = sinon.spy(lw.external, 'spawn')\n\n            await build()\n            spawnSpy.restore()\n\n            assert.strictEqual(spawnSpy.getCall(0)?.args?.[2].env?.['max_print_line'], lw.constant.MAX_PRINT_LINE)\n        })\n\n        it('should spawn external commands with no env', async () => {\n            set.config('latex.external.build.command', 'echo')\n            const spawnSpy = sinon.spy(lw.external, 'spawn')\n\n            await build()\n            spawnSpy.restore()\n\n            assert.strictEqual(spawnSpy.getCall(0)?.args?.[2].env, undefined)\n        })\n    })\n\n    describe('lw.compile->build.monitorProcess', () => {\n        it('should handle process error', async () => {\n            set.config('latex.tools', [{ name: 'tool', command: 'absolutely-nonexistent', args: [] }])\n\n            await build()\n\n            assert.hasLog('LaTeX fatal error on PID')\n            assert.hasLog('Error: spawn absolutely-nonexistent ENOENT')\n        })\n\n        it('should stop the recipe on process error', async () => {\n            set.config('latex.tools', [{ name: 'tool', command: 'absolutely-nonexistent', args: [] }])\n            set.config('latex.recipes', [{ name: 'recipe', tools: ['tool', 'tool'] }])\n\n            await build()\n\n            assert.notHasLog('Recipe step 2')\n        })\n\n        it('should retry building on non-zero exit code and `latex.autoBuild.cleanAndRetry.enabled`', async () => {\n            set.config('latex.autoBuild.cleanAndRetry.enabled', true)\n            set.config('latex.autoClean.run', 'onFailed')\n            set.config('latex.recipes', [{ name: 'recipe', tools: ['bad'] }])\n\n            ;(lw.extra.clean as sinon.SinonStub).resetHistory()\n            await build()\n\n            // First build\n            assert.hasLog('Cleaning auxiliary files and retrying build after toolchain error.')\n            // Second build\n            assert.strictEqual((lw.extra.clean as sinon.SinonStub).callCount, 2)\n        })\n\n        it('should handle external command failure', async () => {\n            set.config('latex.external.build.command', 'bash')\n            set.config('latex.external.build.args', ['-c', 'exit 1;#external'])\n\n            await build()\n\n            assert.hasLog('Build with external command returns error')\n        })\n\n        it('should silently omit user termination', async () => {\n            set.config('latex.autoBuild.cleanAndRetry.enabled', false)\n            set.config('latex.tools', [{ name: 'tool', command: 'bash', args: ['-c', 'sleep 10;exit 0;'] }])\n\n            ;(lw.extra.clean as sinon.SinonStub).resetHistory()\n            const promise = build()\n            let spawned = false\n            while (!spawned) {\n                try {\n                    assert.hasLog('Recipe step 1 The command is bash:[\"-c\",\"sleep 10;exit 0;\"].')\n                    spawned = true\n                } catch (_) {\n                    await sleep(10)\n                }\n            }\n            terminate()\n            await promise\n\n            assert.notHasLog('Cleaning auxiliary files and retrying build after toolchain error.')\n            assert.notHasLog('Build with external command returns error')\n            assert.strictEqual((lw.extra.clean as sinon.SinonStub).callCount, 0)\n        })\n    })\n\n    describe('lw.compile->build.afterSuccessfulBuilt', () => {\n        it('should refresh the viewer after successful external command build, nothing else', async () => {\n            set.config('latex.external.build.command', 'bash')\n            set.config('latex.external.build.args', ['-c', 'exit 0;#external'])\n            set.root('main.tex')\n\n            const stub = lw.viewer.refresh as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(stub.called)\n            assert.notHasLog(`Successfully built ${get.path('main.tex')}`)\n        })\n\n        it('should not refresh viewer if the build is a skipped latexmk one', async () => {\n            set.config('latex.tools', [\n                { name: 'tool', command: 'bash', args: ['-c', 'echo \"Latexmk: All targets (build) are up-to-date\";'] },\n            ])\n\n            const stub = lw.viewer.refresh as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(!stub.called)\n        })\n\n        it('should refresh viewer on general successful builds', async () => {\n            const stub = lw.viewer.refresh as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(stub.called)\n        })\n\n        it('should call `lw.completion.reference.setNumbersFromAuxFile` to set reference numbers', async () => {\n            const stub = lw.completion.reference.setNumbersFromAuxFile as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(stub.called)\n        })\n\n        it('should load generated .fls file in cache', async () => {\n            const stub = lw.cache.loadFlsFile as sinon.SinonStub\n            stub.resetHistory()\n            await build()\n\n            assert.ok(stub.called)\n        })\n\n        it('should call syncTeX only if the viewer is in `external` mode', async () => {\n            set.config('view.pdf.viewer', 'external')\n            set.config('synctex.afterBuild.enabled', true)\n\n            await build()\n\n            assert.hasLog('SyncTex after build invoked.')\n        })\n\n        it('should not call syncTeX if the viewer is not in `external` mode', async () => {\n            set.config('view.pdf.viewer', 'tab')\n            set.config('synctex.afterBuild.enabled', true)\n\n            await build()\n\n            assert.notHasLog('SyncTex after build invoked.')\n        })\n\n        it('should not call syncTeX if `synctex.afterBuild.enabled` is false', async () => {\n            set.config('view.pdf.viewer', 'external')\n            set.config('synctex.afterBuild.enabled', false)\n\n            await build()\n\n            assert.notHasLog('SyncTex after build invoked.')\n        })\n\n        it('should auto-clean if `latex.autoClean.run` is `onSucceeded` or `onBuilt`', async () => {\n            set.config('latex.autoClean.run', 'onSucceeded')\n            ;(lw.extra.clean as sinon.SinonStub).resetHistory()\n            await build()\n            assert.strictEqual((lw.extra.clean as sinon.SinonStub).callCount, 1)\n\n            set.config('latex.autoClean.run', 'onBuilt')\n            ;(lw.extra.clean as sinon.SinonStub).resetHistory()\n            await build()\n            assert.strictEqual((lw.extra.clean as sinon.SinonStub).callCount, 1)\n        })\n    })\n\n    describe('lw.compile->build.autoBuild', () => {\n        beforeEach(() => {\n            lw.compile.lastAutoBuildTime = 0\n        })\n\n        it('should not trigger auto-build if invoking event is not set in config', async () => {\n            set.config('latex.autoBuild.run', 'onFileChange')\n            log.start()\n            await autoBuild(get.path('main.tex'), 'onSave')\n            log.stop()\n            assert.notHasLog('Auto build started')\n\n            set.config('latex.autoBuild.run', 'onSave')\n            log.start()\n            await autoBuild(get.path('main.tex'), 'onFileChange')\n            log.stop()\n            assert.notHasLog('Auto build started')\n        })\n\n        it('should not trigger auto-build if the last auto-build is too soon', async () => {\n            set.config('latex.autoBuild.run', 'onFileChange')\n            set.config('latex.autoBuild.delay', 10000)\n\n            await autoBuild(get.path('main.tex'), 'onFileChange')\n            log.start()\n            await autoBuild(get.path('main.tex'), 'onFileChange')\n            log.stop()\n\n            assert.hasLog('Auto build started')\n            assert.hasLog('Autobuild temporarily disabled.')\n\n            lw.compile.lastAutoBuildTime = 0\n            log.start()\n            await autoBuild(get.path('main.tex'), 'onFileChange')\n            log.stop()\n\n            assert.notHasLog('Autobuild temporarily disabled.')\n        })\n\n        it('should auto-build subfiles if `latex.rootFile.useSubFile` is true and no bib change is detected', async () => {\n            set.config('latex.autoBuild.run', 'onFileChange')\n            set.config('latex.rootFile.useSubFile', true)\n            set.root('main.tex')\n            lw.root.subfiles.path = get.path('subfile.tex')\n            lw.root.subfiles.langId = 'latex'\n\n            log.start()\n            await autoBuild(get.path('subfile.tex'), 'onFileChange', false)\n            log.stop()\n\n            lw.root.subfiles.path = undefined\n            lw.root.subfiles.langId = undefined\n\n            assert.hasLog(`Building root file: ${get.path('subfile.tex')}`)\n            assert.notHasLog(`Building root file: ${get.path('main.tex')}`)\n\n            lw.compile.lastAutoBuildTime = 0\n            log.start()\n            await autoBuild(get.path('subfile.tex'), 'onFileChange', false)\n            log.stop()\n\n            assert.hasLog(`Building root file: ${get.path('main.tex')}`)\n            assert.notHasLog(`Building root file: ${get.path('subfile.tex')}`)\n        })\n\n        it('should auto-build when watched source is changed', () => {\n            set.config('latex.autoBuild.run', 'onFileChange')\n\n            log.start()\n            for (const handler of lw.watcher.src['onChangeHandlers']) {\n                try {\n                    handler(vscode.Uri.file(get.path('main.tex')))\n                } catch (_) { }\n            }\n            log.stop()\n\n            assert.hasLog(`Auto build started detecting the change of a file: ${get.path('main.tex')}`)\n        })\n\n        it('should auto-build when watched bib file is changed', () => {\n            set.config('latex.autoBuild.run', 'onFileChange')\n            // Prevent an uncaught promise rejection at citation.parseBibFile\n            const stub = sinon.stub(lw.external, 'stat').resolves({ type: vscode.FileType.File, ctime: 0, mtime: 0, size: Number.MAX_SAFE_INTEGER })\n\n            log.start()\n            for (const handler of lw.watcher.bib['onChangeHandlers']) {\n                try {\n                    handler(vscode.Uri.file(get.path('main.bib')))\n                } catch (_) { }\n            }\n            log.stop()\n\n            stub.restore()\n            assert.hasLog(`Auto build started detecting the change of a file: ${get.path('main.bib')}`)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/09_viewer_server.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as ws from 'ws'\nimport * as sinon from 'sinon'\nimport fetch from 'node-fetch'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set, sleep } from './utils'\nimport type { ClientRequest, PdfViewerParams } from '../../types/latex-workshop-protocol-types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    let handlerStub: sinon.SinonStub\n    let websocket: ws.WebSocket\n\n    before(async () => {\n        mock.init(lw, 'server')\n        handlerStub = lw.viewer.handler as sinon.SinonStub\n        await connectWs()\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    async function connectWs() {\n        const serverPath = `ws://127.0.0.1:${lw.server.getPort()}`\n        websocket = new ws.WebSocket(serverPath)\n\n        await new Promise((resolve) => {\n            websocket.on('open', resolve)\n        })\n    }\n\n    describe('lw.viewer->server.WsServer', () => {\n        it('should handle websocket messages', async () => {\n            handlerStub.resetHistory()\n            websocket.send(JSON.stringify({ type: 'ping' }))\n            let elapsed = 0\n            while (true) {\n                if (\n                    handlerStub.called &&\n                    (JSON.parse((handlerStub.lastCall.args?.[1] as Uint8Array)?.toString()) as ClientRequest).type === 'ping'\n                ) {\n                    break\n                }\n                await sleep(10)\n                elapsed += 10\n                if (elapsed >= 1000) {\n                    assert.fail('Timed out waiting for message \"ping\"')\n                }\n            }\n        })\n    })\n\n    describe('lw.viewer->server.initialize', () => {\n        async function waitInitialize(hostname?: string, newPort?: number, timeout = 1000) {\n            const originalPort = lw.server.getPort()\n            if (newPort === undefined || newPort === originalPort) {\n                newPort = (newPort ?? originalPort) + 1\n            }\n            set.config('view.pdf.internal.port', newPort)\n            lw.server.initialize(hostname)\n\n            let elapsed = 0\n            while(true) {\n                try {\n                    const port = lw.server.getPort()\n                    if (port !== undefined && port !== originalPort) {\n                        break\n                    }\n                } catch {}\n                await sleep(10)\n                elapsed += 10\n                if (elapsed >= timeout) {\n                    assert.fail('Timed out waiting for server initialization.')\n                }\n            }\n        }\n\n        it('should create a server at port defined by `view.pdf.internal.port` ', async () => {\n            const newPort = 34567 !== lw.server.getPort() ? 34567 : 45678\n            await waitInitialize(undefined, newPort)\n\n            assert.strictEqual(lw.server.getPort(), newPort)\n        })\n\n        it('should warn in log that a hostname is set', async () => {\n            await waitInitialize('::1')\n\n            assert.hasLog('BE AWARE: YOU ARE PUBLIC TO ::1 !')\n        })\n\n        after(async () => {\n            await waitInitialize()\n            await connectWs()\n        })\n    })\n\n    describe('lw.viewer->server.handler', () => {\n        it('should be set up to the http server', async () => {\n            const url = await lw.server.getUrl()\n            const res = await fetch(url.url + '/non-existent-file.html')\n            assert.ok(res.status === 404 || res.status === 500)\n        })\n\n        it('should retrieve and return PDF content', async () => {\n            const stub = lw.viewer.isViewing as sinon.SinonStub\n            stub.returns(true)\n            const url = await lw.server.getUrl(vscode.Uri.file(get.path(fixture, 'main.pdf')))\n            const res = await fetch(url.url.replaceAll('viewer.html?file=', ''))\n            stub.resetBehavior()\n\n            assert.strictEqual(res.headers.get('Content-Type'), 'application/pdf', JSON.stringify(res))\n        })\n\n        it('should 404 if the retrieved PDF is not curently viewed', async () => {\n            const stub = lw.viewer.isViewing as sinon.SinonStub\n            stub.returns(false)\n            const url = await lw.server.getUrl(vscode.Uri.file(get.path(fixture, 'main.pdf')))\n            const res = await fetch(url.url.replaceAll('viewer.html?file=', ''))\n            stub.resetBehavior()\n\n            assert.strictEqual(res.status, 404, JSON.stringify(res))\n        })\n\n        it('should 404 if the retrieved PDF cannot be read', async () => {\n            const stub = lw.viewer.isViewing as sinon.SinonStub\n            stub.returns(true)\n            const url = await lw.server.getUrl(vscode.Uri.file(get.path(fixture, 'non-existent.pdf')))\n            const res = await fetch(url.url.replaceAll('viewer.html?file=', ''))\n            stub.resetBehavior()\n\n            assert.strictEqual(res.status, 404, JSON.stringify(res))\n        })\n\n        it('should return the default config on /config.json', async () => {\n            const stub = lw.viewer.getParams as sinon.SinonStub\n            stub.restore()\n            const viewerConfig = lw.viewer.getParams()\n\n            const url = await lw.server.getUrl()\n            const res = await fetch(url.url + '/config.json')\n            const config = await res.json() as PdfViewerParams\n            sinon.stub(lw.viewer, 'getParams')\n\n            assert.deepStrictEqual(config, viewerConfig)\n        })\n\n        it('should get pdf.js files under /build', async () => {\n            const url = await lw.server.getUrl()\n            const res = await fetch(url.url + '/build/pdf.min.mjs')\n\n            assert.strictEqual(res.status, 200)\n        })\n\n        it('should get pdf.js files under /cmaps', async () => {\n            const url = await lw.server.getUrl()\n            const res = await fetch(url.url + '/cmaps/Adobe-CNS1-0.bcmap')\n\n            assert.strictEqual(res.status, 200)\n        })\n\n        it('should get pdf.js files under /standard_fonts', async () => {\n            const url = await lw.server.getUrl()\n            const res = await fetch(url.url + '/standard_fonts/LiberationSans-Regular.ttf')\n\n            assert.strictEqual(res.status, 200)\n        })\n\n        it('should get viewer files', async () => {\n            const url = await lw.server.getUrl()\n            let res = await fetch(url.url + '/viewer/latexworkshop.css')\n            assert.strictEqual(res.status, 200)\n\n            res = await fetch(url.url + '/latexworkshop.css')\n            assert.strictEqual(res.status, 200)\n        })\n\n        it('should prevent directory traversal attack', async () => {\n            const url = await lw.server.getUrl()\n            let res = await fetch(url.url + '/build/../../sinon/package.json')\n            assert.strictEqual(res.status, 404)\n\n            res = await fetch(url.url + '/build/%2e%2e/%2e%2e/sinon/package.json')\n            assert.strictEqual(res.status, 404)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/10_viewer_pdf_server.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as path from 'path'\nimport * as ws from 'ws'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { locate, view, viewInWebviewPanel } from '../../src/preview/viewer'\nimport * as manager from '../../src/preview/viewer/pdfviewermanager'\nimport { assert, get, mock, set, sleep } from './utils'\nimport type { ClientRequest } from '../../types/latex-workshop-protocol-types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const pdfPath = get.path(fixture, 'main.pdf')\n    const pdfUri = vscode.Uri.file(pdfPath)\n    let handlerSpy: sinon.SinonSpy\n\n    before(() => {\n        mock.init(lw, 'server', 'viewer', 'extra')\n        handlerSpy = sinon.spy(lw.viewer, 'handler')\n    })\n\n    afterEach(async () => {\n        await vscode.commands.executeCommand('workbench.action.closeAllEditors')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    function waitMessage(type: ClientRequest['type'], timeout = 1000) {\n        return (async () => {\n            handlerSpy.resetHistory()\n            let elapsed = 0\n            while (true) {\n                if (\n                    handlerSpy.called &&\n                    (JSON.parse((handlerSpy.lastCall.args?.[1] as Uint8Array)?.toString()) as ClientRequest).type === type\n                ) {\n                    break\n                }\n                await sleep(10)\n                elapsed += 10\n                if (elapsed >= timeout) {\n                    assert.fail(`Timed out waiting for message \"${type}\"`)\n                }\n            }\n        })()\n    }\n\n    let wsMsg = ''\n    async function waitMsg(target: string, timeout = 1000) {\n        return (async () => {\n            wsMsg = ''\n            let elapsed = 0\n            while (true) {\n                await sleep(10)\n                if (wsMsg === target) {\n                    await sleep(100)\n                    if (wsMsg === target) {\n                        break\n                    } else {\n                        assert.fail(`Message overflown: ${wsMsg}`)\n                    }\n                }\n                elapsed += 10\n                if (elapsed >= timeout) {\n                    assert.fail(`Timed out waiting for message \"${target}\": ${wsMsg}`)\n                }\n            }\n        })()\n    }\n\n    describe('lw.viewer->viewer.viewInCustomEditor', () => {\n        let execSpy: sinon.SinonSpy\n\n        before(() => {\n            execSpy = sinon.spy(vscode.commands, 'executeCommand')\n        })\n\n        beforeEach(() => {\n            set.config('view.pdf.viewer', 'tab')\n            execSpy.resetHistory()\n        })\n\n        after(() => {\n            execSpy.restore()\n        })\n\n        it('should create a custom editor', async () => {\n            const promise = waitMessage('loaded')\n            await view(pdfUri)\n            await promise\n\n            assert.hasLog(`Open PDF tab for ${pdfUri.toString(true)}`)\n        })\n\n        it('should register the created panel in the viewer manager', async () => {\n            const promise = waitMessage('loaded')\n            await view(pdfUri)\n            await promise\n\n            assert.strictEqual(manager.getPanels(pdfUri)?.size, 1)\n            assert.strictEqual(manager.getClients(pdfUri)?.size, 1)\n        })\n\n        it('should create the custom editor at the left group if focused on right', async () => {\n            set.config('view.pdf.tab.editorGroup', 'left')\n            mock.activeTextEditor('main.tex', '', { viewColumn: vscode.ViewColumn.Two })\n\n            await view(pdfUri)\n\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'vscode.openWith')\n            assert.strictEqual((execSpy.firstCall.args[3] as vscode.TextDocumentShowOptions).viewColumn, 1)\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusRightGroup')\n        })\n\n        it('should create the custom editor and move to the left group if focused on left', async () => {\n            set.config('view.pdf.tab.editorGroup', 'left')\n            mock.activeTextEditor('main.tex', '', { viewColumn: vscode.ViewColumn.One })\n\n            await view(pdfUri)\n\n            assert.strictEqual(execSpy.callCount, 3)\n            assert.strictEqual(execSpy.firstCall.args[0], 'vscode.openWith')\n            assert.strictEqual((execSpy.firstCall.args[3] as vscode.TextDocumentShowOptions).viewColumn, -1)\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.moveEditorToLeftGroup')\n            assert.strictEqual(execSpy.thirdCall.args[0], 'workbench.action.focusRightGroup')\n        })\n\n        it('should create the custom editor to the right', async () => {\n            set.config('view.pdf.tab.editorGroup', 'right')\n            mock.activeTextEditor('main.tex', '', { viewColumn: vscode.ViewColumn.One })\n\n            await view(pdfUri)\n\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'vscode.openWith')\n            assert.strictEqual((execSpy.firstCall.args[3] as vscode.TextDocumentShowOptions).viewColumn, 2)\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusLeftGroup')\n        })\n\n        it('should create the custom editor and move to above or below', async () => {\n            set.config('view.pdf.tab.editorGroup', 'above')\n            mock.activeTextEditor('main.tex', '', { viewColumn: vscode.ViewColumn.One })\n\n            await view(pdfUri)\n\n            assert.strictEqual(execSpy.callCount, 3)\n            assert.strictEqual(execSpy.firstCall.args[0], 'vscode.openWith')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.moveEditorToAboveGroup')\n            assert.strictEqual(execSpy.thirdCall.args[0], 'workbench.action.focusBelowGroup')\n\n            execSpy.resetHistory()\n            set.config('view.pdf.tab.editorGroup', 'below')\n            await view(pdfUri)\n            assert.strictEqual(execSpy.callCount, 3)\n            assert.strictEqual(execSpy.firstCall.args[0], 'vscode.openWith')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.moveEditorToBelowGroup')\n            assert.strictEqual(execSpy.thirdCall.args[0], 'workbench.action.focusAboveGroup')\n        })\n    })\n\n    describe('lw.viewer->viewer.viewInBrowser', () => {\n        let openStub: sinon.SinonStub\n\n        before(() => {\n            openStub = sinon.stub(vscode.env, 'openExternal')\n        })\n\n        beforeEach(() => {\n            set.config('view.pdf.viewer', 'browser')\n            openStub.reset()\n        })\n\n        after(() => {\n            openStub.restore()\n        })\n\n        it('should open the viewer link with vscode.env.openExternal', async () => {\n            await view(pdfUri)\n\n            assert.strictEqual(openStub.callCount, 1)\n        })\n\n        it('should register the created client sets in the viewer manager', async () => {\n            await view(pdfUri)\n\n            assert.notStrictEqual(manager.getPanels(pdfUri), undefined)\n            assert.notStrictEqual(manager.getClients(pdfUri), undefined)\n        })\n\n        it('should watch the opened pdf', async () => {\n            const stub = lw.watcher.pdf['add'] as sinon.SinonStub\n            stub.resetHistory()\n            await view(pdfUri)\n\n            assert.strictEqual(stub.callCount, 1)\n        })\n\n        it('should prompt the viewer link for user to open if cannot directly open', async () => {\n            openStub.rejects(new Error('Failed to open'))\n            const stub = sinon.stub(vscode.window, 'showInputBox').resolves()\n\n            await view(pdfUri)\n            stub.restore()\n\n            assert.strictEqual(stub.callCount, 1)\n            assert.strictEqual((stub.firstCall.args?.[0] as vscode.InputBoxOptions)?.value, (await lw.server.getUrl(pdfUri)).url)\n        })\n    })\n\n    describe('lw.viewer->viewer.viewInWebviewPanel', () => {\n        let execSpy: sinon.SinonSpy\n\n        before(() => {\n            execSpy = sinon.spy(vscode.commands, 'executeCommand')\n        })\n\n        beforeEach(() => {\n            execSpy.resetHistory()\n        })\n\n        after(() => {\n            execSpy.restore()\n        })\n\n        it('should create a webview panel', async () => {\n            const promise = waitMessage('loaded')\n            await viewInWebviewPanel(pdfUri, 'current', true)\n            await promise\n\n            assert.hasLog(`Open PDF tab for ${pdfUri.toString(true)}`)\n        })\n\n        it('should register the created panel in the viewer manager', async () => {\n            const promise = waitMessage('loaded')\n            await viewInWebviewPanel(pdfUri, 'current', true)\n            await promise\n\n            assert.strictEqual(manager.getPanels(pdfUri)?.size, 1)\n            assert.strictEqual(manager.getClients(pdfUri)?.size, 1)\n        })\n\n        it('should move the webview panel to the specified editor group', async () => {\n            const activeEditorStub = mock.activeTextEditor('main.tex', '')\n\n            execSpy.resetHistory()\n            await viewInWebviewPanel(pdfUri, 'left', true)\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'workbench.action.moveEditorToLeftGroup')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusRightGroup')\n\n            execSpy.resetHistory()\n            await viewInWebviewPanel(pdfUri, 'right', true)\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'workbench.action.moveEditorToRightGroup')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusLeftGroup')\n\n            execSpy.resetHistory()\n            await viewInWebviewPanel(pdfUri, 'above', true)\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'workbench.action.moveEditorToAboveGroup')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusBelowGroup')\n\n            execSpy.resetHistory()\n            await viewInWebviewPanel(pdfUri, 'below', true)\n            assert.strictEqual(execSpy.callCount, 2)\n            assert.strictEqual(execSpy.firstCall.args[0], 'workbench.action.moveEditorToBelowGroup')\n            assert.strictEqual(execSpy.secondCall.args[0], 'workbench.action.focusAboveGroup')\n\n            activeEditorStub.restore()\n        })\n\n        it('should not move the webview panel if there is no active editor', async () => {\n            const activeEditorStub = sinon.stub(vscode.window, 'activeTextEditor').value(undefined)\n            await viewInWebviewPanel(pdfUri, 'left', true)\n            activeEditorStub.restore()\n\n            assert.strictEqual(execSpy.callCount, 0)\n        })\n\n        it('should only move the webview panel but not focus back if `preserveFocus` is `false`', async () => {\n            const activeEditorStub = mock.activeTextEditor('main.tex', '')\n\n            await viewInWebviewPanel(pdfUri, 'left', false)\n\n            activeEditorStub.restore()\n            assert.strictEqual(execSpy.callCount, 1)\n            assert.strictEqual(execSpy.firstCall.args[0], 'workbench.action.moveEditorToLeftGroup')\n        })\n    })\n\n    describe('lw.viewer->viewer.viewInTab', () => {\n        it('should create a webview panel', async () => {\n            set.config('view.pdf.viewer', 'legacy')\n            const promise = waitMessage('loaded')\n            await view(pdfUri, 'tab')\n            await promise\n\n            assert.hasLog(`Open PDF tab for ${pdfUri.toString(true)}`)\n        })\n    })\n\n    describe('lw.viewer->viewer.handler', () => {\n        let websocket: ws.WebSocket\n\n        before(async () => {\n            const serverPath = `ws://127.0.0.1:${lw.server.getPort()}`\n            websocket = new ws.WebSocket(serverPath)\n\n            await new Promise((resolve) => {\n                websocket.on('open', resolve)\n            })\n        })\n\n        after(() => {\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n        })\n\n        it('should handle `open` message and create a Client', async () => {\n            manager.create(pdfUri)\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n\n            const promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            assert.strictEqual(manager.getClients(pdfUri)?.size, 1)\n        })\n\n        it('should handle `loaded` message and perform SyncTeX if enabled', async () => {\n            set.config('synctex.afterBuild.enabled', true)\n            const stub = lw.locate.synctex.toPDF as sinon.SinonStub\n            stub.reset()\n\n            const promise = waitMessage('loaded')\n            websocket.send(JSON.stringify({ type: 'loaded', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            assert.strictEqual(stub.callCount, 1)\n        })\n\n        it('should handle `loaded` message but skip SyncTeX if disabled', async () => {\n            set.config('synctex.afterBuild.enabled', false)\n            const stub = lw.locate.synctex.toPDF as sinon.SinonStub\n            stub.reset()\n\n            const promise = waitMessage('loaded')\n            websocket.send(JSON.stringify({ type: 'loaded', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            assert.strictEqual(stub.callCount, 0)\n        })\n\n        it('should handle `reverse_synctex` message and perform reverse SyncTeX', async () => {\n            const stub = lw.locate.synctex.toTeX as sinon.SinonStub\n            stub.reset()\n\n            const promise = waitMessage('reverse_synctex')\n            websocket.send(JSON.stringify({ type: 'reverse_synctex', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            assert.strictEqual(stub.callCount, 1)\n        })\n\n        it('should handle `external_link` message and opens http/https link', async () => {\n            let stub = sinon.stub(vscode.env, 'openExternal')\n            let promise = waitMessage('external_link')\n            websocket.send(JSON.stringify({ type: 'external_link', url: 'http://google.com' }))\n            await promise\n            stub.restore()\n            assert.strictEqual(stub.callCount, 1)\n\n            stub = sinon.stub(vscode.env, 'openExternal')\n            promise = waitMessage('external_link')\n            websocket.send(JSON.stringify({ type: 'external_link', url: 'https://google.com' }))\n            await promise\n            stub.restore()\n            assert.strictEqual(stub.callCount, 1)\n        })\n\n        it('should handle `external_link` message and prompts non-http/https link', async () => {\n            const stub = sinon.stub(vscode.window, 'showInputBox')\n            const openStub = sinon.stub(vscode.env, 'openExternal')\n            const promise = waitMessage('external_link')\n            websocket.send(JSON.stringify({ type: 'external_link', url: 'file://some/private/file.txt' }))\n            await promise\n            stub.restore()\n            openStub.restore()\n            assert.strictEqual(stub.callCount, 1)\n            assert.strictEqual(openStub.callCount, 0)\n        })\n\n        it('should accept `ping` message and do nothing', async () => {\n            const promise = waitMessage('ping')\n            websocket.send(JSON.stringify({ type: 'ping' }))\n            await promise\n        })\n\n        it('should accept `add_log` message and add the message to LW log', async () => {\n            const promise = waitMessage('add_log')\n            const message = `This is a test message. ${Math.random()}`\n            websocket.send(JSON.stringify({ type: 'add_log', message }))\n            await promise\n\n            assert.hasLog(message)\n        })\n\n        it('should accept `copy` message and copy the content to clipboard', async () => {\n            const writeTextStub = sinon.stub().resolves()\n            const stub = sinon.stub(vscode.env, 'clipboard').value({ writeText: writeTextStub })\n\n            const promise = waitMessage('copy')\n            websocket.send(JSON.stringify({ type: 'copy', isMetaKey: os.platform() === 'darwin', content: '' }))\n            await promise\n\n            stub.restore()\n\n            assert.strictEqual(writeTextStub.callCount, 1)\n        })\n\n        it('should accept `copy` message but does not copy the content if the wrong ctrl/meta key is pressed', async () => {\n            const writeTextStub = sinon.stub().resolves()\n            const stub = sinon.stub(vscode.env, 'clipboard').value({ writeText: writeTextStub })\n\n            const promise = waitMessage('copy')\n            websocket.send(JSON.stringify({ type: 'copy', isMetaKey: os.platform() !== 'darwin', content: '' }))\n            await promise\n\n            stub.restore()\n\n            assert.strictEqual(writeTextStub.callCount, 0)\n        })\n    })\n\n    describe('lw.viewer->viewer.refresh', () => {\n        const altUri = pdfUri.with({ path: get.path(fixture, 'alt.pdf') })\n\n        before(async () => {\n            manager.create(pdfUri)\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n\n            manager.create(altUri)\n            manager.getPanels(altUri)?.clear()\n            manager.getClients(altUri)?.clear()\n\n            const serverPath = `ws://127.0.0.1:${lw.server.getPort()}`\n            const websocket = new ws.WebSocket(serverPath)\n            websocket.on('message', (msg) => { wsMsg += msg.toString() })\n\n            await new Promise((resolve) => {\n                websocket.on('open', resolve)\n            })\n\n            let promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: altUri.toString(true) }))\n            await promise\n        })\n\n        after(() => {\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n            manager.getPanels(altUri)?.clear()\n            manager.getClients(altUri)?.clear()\n        })\n\n        it('should refresh all viewers if not provided with an uri', async () => {\n            const promise = waitMsg(\n                JSON.stringify({ type: 'refresh', pdfFileUri: pdfUri.toString(true) }).repeat(2)\n                + JSON.stringify({ type: 'refresh', pdfFileUri: altUri.toString(true) })\n            )\n            lw.viewer.refresh()\n            await promise\n        })\n\n        it('should refresh selected viewers if provided with an uri', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'refresh', pdfFileUri: pdfUri.toString(true) }).repeat(2))\n            lw.viewer.refresh(pdfUri)\n            await promise\n        })\n\n        it('should do nothing if provided uri is not viewed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'refresh' }).repeat(0))\n            lw.viewer.refresh(pdfUri.with({ path: 'nonexistent.pdf' }))\n            await promise\n        })\n    })\n\n    describe('lw.viewer->viewer.reload', () => {\n        before(async () => {\n            manager.create(pdfUri)\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n\n            const serverPath = `ws://127.0.0.1:${lw.server.getPort()}`\n            const websocket = new ws.WebSocket(serverPath)\n            websocket.on('message', (msg) => { wsMsg += msg.toString() })\n\n            await new Promise((resolve) => {\n                websocket.on('open', resolve)\n            })\n\n            let promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n        })\n\n        after(() => {\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n        })\n\n        it('should reload all viewers if config `view.pdf.toolbar.hide.timeout` is changed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'reload' }).repeat(2))\n            await set.codeConfig('view.pdf.toolbar.hide.timeout', 0)\n            await promise\n        })\n\n        it('should reload all viewers if config `view.pdf.invert` is changed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'reload' }).repeat(2))\n            await set.codeConfig('view.pdf.invert', 1)\n            await promise\n        })\n\n        it('should reload all viewers if config `view.pdf.invertMode` and children are changed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'reload' }).repeat(2))\n            await set.codeConfig('view.pdf.invertMode.enabled', 'auto')\n            await promise\n        })\n\n        it('should reload all viewers if config `view.pdf.color` and children changed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'reload' }).repeat(2))\n            await set.codeConfig('view.pdf.color.light.pageColorsForeground', 'black')\n            await promise\n        })\n\n        it('should reload all viewers if config `view.pdf.internal` is changed', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'reload' }).repeat(2))\n            await set.codeConfig('view.pdf.internal.port', 12345)\n            await promise\n        })\n    })\n\n    describe('lw.viewer->viewer.locate', () => {\n        before(async () => {\n            manager.create(pdfUri)\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n\n            const serverPath = `ws://127.0.0.1:${lw.server.getPort()}`\n            const websocket = new ws.WebSocket(serverPath)\n            websocket.on('message', (msg) => { wsMsg += msg.toString() })\n\n            await new Promise((resolve) => {\n                websocket.on('open', resolve)\n            })\n\n            let promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n\n            promise = waitMessage('open')\n            websocket.send(JSON.stringify({ type: 'open', pdfFileUri: pdfUri.toString(true) }))\n            await promise\n        })\n\n        after(() => {\n            manager.getPanels(pdfUri)?.clear()\n            manager.getClients(pdfUri)?.clear()\n        })\n\n        it('should perform SyncTeX', async () => {\n            const promise = waitMsg(JSON.stringify({ type: 'synctex', data: [] }).repeat(2))\n            await locate(pdfUri, [])\n            await promise\n        })\n\n        it('should try opening the PDF if not already viewing', async () => {\n            const altUri = pdfUri.with({ path: pdfUri.path.replaceAll('main.pdf', 'alt.pdf') })\n            await locate(altUri, [])\n\n            assert.hasLog(`PDF is not opened: ${altUri.toString(true)} , try opening.`)\n            assert.hasLog(`PDF cannot be opened: ${altUri.toString(true)} .`)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/11_parser_tex.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, mock, set } from './utils'\nimport { parser } from '../../src/parse/parser'\nimport type * as Ast from '@unified-latex/unified-latex-types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    before(() => {\n        mock.init(lw, 'parser')\n        ;(lw.cache.paths as sinon.SinonStub).returns([])\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.parser->tex', () => {\n        it('should parse LaTeX content', async () => {\n            const ast = await parser.tex('\\\\documentclass{article}')\n\n            assert.strictEqual(ast.content[0].type, 'macro')\n            assert.strictEqual(ast.content[0].content, 'documentclass')\n        })\n    })\n\n    describe('lw.parser->bib', () => {\n        it('should parse BibTeX content', async () => {\n            const ast = await parser.bib(vscode.Uri.file('/main.bib'), '@article{key, author = \"author\"}')\n\n            assert.ok(ast)\n            assert.strictEqual(ast.content[0].entryType, 'article')\n            assert.strictEqual(ast.content[0].internalKey, 'key')\n            assert.strictEqual(ast.content[0].content[0].name, 'author')\n            assert.strictEqual(ast.content[0].content[0].value.kind, 'text_string')\n            assert.strictEqual(ast.content[0].content[0].value.content, 'author')\n        })\n\n        it('should log error when parsing BibTeX content fails', async () => {\n            const ast = await parser.bib(vscode.Uri.file('/main.bib'), '@article{key, author = \"author\",')\n\n            assert.strictEqual(ast, undefined)\n            assert.hasLog('Error when parsing bib file')\n        })\n    })\n\n    describe('lw.parser->args', () => {\n        function emptyArg(arg: Ast.Argument) {\n            assert.strictEqual(arg.content.length, 0)\n        }\n\n        function strArg(arg: Ast.Argument) {\n            assert.strictEqual(arg.content[0].type, 'string')\n        }\n\n        async function hasArgs(tex: string, signature: string) {\n            const node = (await parser.tex(tex)).content[0]\n            const args: ((arg: Ast.Argument) => void)[] = []\n            for (const arg of signature.replaceAll(' ', '').split('')) {\n                args.push(arg === 's' ? strArg : emptyArg)\n            }\n            assert.strictEqual(node.type, 'macro')\n\n            if (signature.length === 0) {\n                assert.strictEqual(node.args, undefined)\n            } else {\n                assert.strictEqual(node.args?.length, args.length)\n                for (let i = 0; i < args.length; i++) {\n                    args[i](node.args[i])\n                }\n            }\n        }\n\n        it('should correctly parse arguments of `InputIfFileExists`', async () => {\n            await hasArgs('\\\\InputIfFileExists{file}', 's')\n        })\n\n        it('should correctly parse arguments of `SweaveInput`', async () => {\n            await hasArgs('\\\\SweaveInput{file}', 's')\n        })\n\n        it('should correctly parse arguments of `subfile`', async () => {\n            await hasArgs('\\\\SweaveInput{file}', 's')\n        })\n\n        it('should correctly parse arguments of `loadglsentries`', async () => {\n            await hasArgs('\\\\SweaveInput{file}', 's')\n        })\n\n        it('should correctly parse arguments of `markdownInput`', async () => {\n            await hasArgs('\\\\SweaveInput{file}', 's')\n        })\n\n        it('should correctly parse arguments of `import`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `inputfrom`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `includefrom`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `subimport`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `subinputfrom`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `subincludefrom`', async () => {\n            await hasArgs('\\\\import{folder}{file}', 'ss')\n        })\n\n        it('should correctly parse arguments of `linelabel`', async () => {\n            await hasArgs('\\\\linelabel{tag}', 'ees')\n            await hasArgs('\\\\linelabel[short]{tag}', 'ess')\n            await hasArgs('\\\\linelabel<beamer>[short]{tag}', 'sss')\n        })\n\n        it('should correctly parse arguments of `newglossaryentry`', async () => {\n            await hasArgs('\\\\newglossaryentry{arg1}{arg2}', 'ss')\n        })\n\n        it('should correctly parse arguments of `provideglossaryentry`', async () => {\n            await hasArgs('\\\\provideglossaryentry{arg1}{arg2}', 'ss')\n        })\n\n        it('should correctly parse arguments of `longnewglossaryentry`', async () => {\n            await hasArgs('\\\\longnewglossaryentry{arg1}{arg2}{arg3}', 'esss')\n            await hasArgs('\\\\longnewglossaryentry[opt]{arg1}{arg2}{arg3}', 'ssss')\n        })\n\n        it('should correctly parse arguments of `longprovideglossaryentry`', async () => {\n            await hasArgs('\\\\longprovideglossaryentry{arg1}{arg2}{arg3}', 'esss')\n            await hasArgs('\\\\longprovideglossaryentry[opt]{arg1}{arg2}{arg3}', 'ssss')\n        })\n\n        it('should correctly parse arguments of `newacronym`', async () => {\n            await hasArgs('\\\\newacronym{arg1}{arg2}{arg3}', 'esss')\n            await hasArgs('\\\\newacronym[opt]{arg1}{arg2}{arg3}', 'ssss')\n        })\n\n        it('should correctly parse arguments of `newabbreviation`', async () => {\n            await hasArgs('\\\\newabbreviation{arg1}{arg2}{arg3}', 'esss')\n            await hasArgs('\\\\newabbreviation[opt]{arg1}{arg2}{arg3}', 'ssss')\n        })\n\n        it('should correctly parse arguments of `newabbr`', async () => {\n            await hasArgs('\\\\newabbr{arg1}{arg2}{arg3}', 'esss')\n            await hasArgs('\\\\newabbr[opt]{arg1}{arg2}{arg3}', 'ssss')\n        })\n\n        it('should correctly parse arguments of `newrobustcmd`', async () => {\n            await hasArgs('\\\\newrobustcmd{arg1}{arg2}', 'eesees')\n            await hasArgs('\\\\newrobustcmd*<opt1>{arg1}[opt2][opt3]{arg2}', 'ssssss')\n        })\n\n        it('should correctly parse arguments of `renewrobustcmd`', async () => {\n            await hasArgs('\\\\renewrobustcmd{arg1}{arg2}', 'eesees')\n            await hasArgs('\\\\renewrobustcmd*<opt1>{arg1}[opt2][opt3]{arg2}', 'ssssss')\n        })\n\n        it('should correctly parse arguments of `providerobustcmd`', async () => {\n            await hasArgs('\\\\providerobustcmd{arg1}{arg2}', 'esees')\n            await hasArgs('\\\\providerobustcmd*{arg1}[opt1][opt2]{arg2}', 'sssss')\n        })\n\n        it('should correctly parse arguments of `DeclareRobustCommand`', async () => {\n            await hasArgs('\\\\DeclareRobustCommand{arg1}{arg2}', 'esees')\n            await hasArgs('\\\\DeclareRobustCommand*{arg1}[opt1][opt2]{arg2}', 'sssss')\n        })\n\n        it('should correctly parse arguments of `DeclareMathOperator`', async () => {\n            await hasArgs('\\\\DeclareMathOperator{arg1}{arg2}', 'ess')\n            await hasArgs('\\\\DeclareMathOperator*{arg1}{arg2}', 'sss')\n        })\n\n        it('should correctly parse arguments of `DeclarePairedDelimiter`', async () => {\n            await hasArgs('\\\\DeclarePairedDelimiter{arg1}{arg2}{arg3}', 'sss')\n        })\n\n        it('should correctly parse arguments of `DeclarePairedDelimiterX`', async () => {\n            await hasArgs('\\\\DeclarePairedDelimiterX{arg1}{arg2}{arg3}{arg4}', 'sesss')\n            await hasArgs('\\\\DeclarePairedDelimiterX{arg1}[opt]{arg2}{arg3}{arg4}', 'sssss')\n        })\n\n        it('should correctly parse arguments of `DeclarePairedDelimiterXPP`', async () => {\n            await hasArgs('\\\\DeclarePairedDelimiterXPP{arg1}{arg2}{arg3}{arg4}{arg5}{arg6}', 'sesssss')\n            await hasArgs('\\\\DeclarePairedDelimiterXPP{arg1}[opt]{arg2}{arg3}{arg4}{arg5}{arg6}', 'sssssss')\n        })\n\n        it('should register and parse macros defined in `view.outline.commands`', async () => {\n            await hasArgs('\\\\randommacro{arg}', '')\n\n            await set.codeConfig('view.outline.commands', ['randommacro'])\n            await hasArgs('\\\\randommacro{tag}', 'ees')\n            await hasArgs('\\\\randommacro[short]{tag}', 'ess')\n            await hasArgs('\\\\randommacro<beamer>[short]{tag}', 'sss')\n\n        })\n\n        it('should register and parse macros defined in `intellisense.label.command`', async () => {\n            await hasArgs('\\\\randommacro{arg}', '')\n\n            await set.codeConfig('intellisense.label.command', ['randommacro'])\n            await hasArgs('\\\\randommacro{tag}', 'ees')\n            await hasArgs('\\\\randommacro[short]{tag}', 'ess')\n            await hasArgs('\\\\randommacro<beamer>[short]{tag}', 'sss')\n\n        })\n\n        it('should register and parse macros defined in `view.outline.sections`', async () => {\n            await hasArgs('\\\\randommacro{arg}', '')\n\n            await set.codeConfig('view.outline.sections', ['randommacro'])\n            await hasArgs('\\\\randommacro{tag}', 'ees')\n            await hasArgs('\\\\randommacro[short]{tag}', 'ess')\n            await hasArgs('\\\\randommacro*[short]{tag}', 'sss')\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/12_parser_log.test.ts",
    "content": "import * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { parser } from '../../src/parse/parser'\nimport { bibtexLogParser } from '../../src/parse/parser/bibtexlog'\nimport { biberLogParser } from '../../src/parse/parser/biberlog'\nimport { latexLogParser } from '../../src/parse/parser/latexlog'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    before(() => {\n        mock.init(lw, 'parser')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.parser->log', () => {\n        let bibtexParserSpy: sinon.SinonSpy\n        let biberParserSpy: sinon.SinonSpy\n        let latexParserSpy: sinon.SinonSpy\n\n        before(() => {\n            bibtexParserSpy = sinon.spy(bibtexLogParser, 'parse')\n            biberParserSpy = sinon.spy(biberLogParser, 'parse')\n            latexParserSpy = sinon.spy(latexLogParser, 'parse')\n        })\n\n        after(() => {\n            bibtexParserSpy.restore()\n            biberParserSpy.restore()\n            latexParserSpy.restore()\n        })\n\n        function resetSpies() {\n            bibtexParserSpy.resetHistory()\n            biberParserSpy.resetHistory()\n            latexParserSpy.resetHistory()\n        }\n\n        it('should parse bibtex log', () => {\n            const log = `This is BibTeX, Version 0.99d (MiKTeX 2.9)\nThe top-level auxiliary file: main.aux\nThe style file: plain.bst\nDatabase file #1: main.bib\nWarning--I didn't find a database entry for \"test\"\n(There was 1 warning)\n`\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.calledOnce)\n            assert.ok(biberParserSpy.notCalled)\n            assert.ok(latexParserSpy.notCalled)\n        })\n\n        it('should parse biber log', () => {\n            const log = `INFO - This is Biber 2.14\nINFO - Logfile is 'test.blg'\nINFO - Reading 'test.bcf'\nINFO - Using all citekeys in bib section 0\nINFO - Processing section 0\nINFO - Globbing data source 'test.bib'\nINFO - Globbed data source 'test.bib' to test.bib\nINFO - Looking for bibtex format file 'test.bib' for section 0\nINFO - LaTeX decoding ...\nINFO - Found BibTeX data source 'test.bib'\n`\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.notCalled)\n            assert.ok(biberParserSpy.calledOnce)\n            assert.ok(latexParserSpy.notCalled)\n        })\n\n        it('should parse bibtex log in its alternative format', () => {\n            const log = `Reason: Input/output error\nThe 8-bit codepage and sorting file: 88591lat.csf\nThe top-level auxiliary file: test.aux\nI couldn't open style file noexist.bst\n---line 2 of file test.aux\n    : \\\\bibstyle{noexist\n    :                  }\nI'm skipping whatever remains of this command\nI found no style file---while reading file test.aux\n(There were 2 error messages)`\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.calledOnce)\n            assert.ok(biberParserSpy.notCalled)\n            assert.ok(latexParserSpy.notCalled)\n        })\n\n        it('should trim and parse the last steps of latexmk log', () => {\n            const log = `Rule 'pdflatex':\n------------\nRun number 1 of rule 'pdflatex'\n------------\nLatexmk: applying rule 'pdflatex'...\nOutput written on ./main.pdf (1 page, 10 bytes).\nLATEXMK LOG\nRule 'bibtex main':\n------------\nRun number 1 of rule 'bibtex main'\n------------\nLatexmk: applying rule 'bibtex main'...\n------------\nRunning 'bibtex  \"main\"'\n------------\nThis is BibTeX, Version 0.99d (MiKTeX 2.9)\nLATEXMK LOG\nRule 'pdflatex':\n------------\nRun number 2 of rule 'pdflatex'\n------------\nLatexmk: applying rule 'pdflatex'...\nOutput written on ./main.pdf (2 page, 20 bytes).\nLATEXMK LOG\n`\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.calledOnce)\n            assert.ok((bibtexParserSpy.firstCall.args[0] as string).includes('This is BibTeX'))\n\n            assert.ok(latexParserSpy.calledOnce)\n            assert.ok((latexParserSpy.firstCall.args[0] as string).includes('(2 page, 20 bytes)'))\n        })\n\n        it('should trim and parse the last steps of texify log', () => {\n            const log = `running pdflatex\nOutput written on ./main.pdf (1 page, 10 bytes).\nTEXIFY LOG\nrunning miktex-bibtex\nThis is BibTeX, Version 0.99d (MiKTeX 2.9)\nTEXIFY LOG\nrunning pdflatex\nOutput written on ./main.pdf (2 page, 20 bytes).\nTEXIFY LOG\n`\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.calledOnce)\n            assert.ok((bibtexParserSpy.firstCall.args[0] as string).includes('This is BibTeX'))\n\n            assert.ok(latexParserSpy.calledOnce)\n            assert.ok((latexParserSpy.firstCall.args[0] as string).includes('(2 page, 20 bytes)'))\n        })\n\n        it('should parse latex log with fatal error', () => {\n            const log = 'Fatal error occurred, no output PDF file produced!'\n\n            resetSpies()\n            parser.log(log, 'main.tex')\n\n            assert.ok(bibtexParserSpy.notCalled)\n            assert.ok(biberParserSpy.notCalled)\n            assert.ok(latexParserSpy.calledOnce)\n        })\n\n        it('should return skipped `true` if latexmk is skipped', () => {\n            const log = 'Latexmk: All targets (test) are up-to-date'\n\n            resetSpies()\n            assert.ok(parser.log(log, 'main.tex'))\n        })\n\n        it('should return skipped `false` if latexmk is skipped, but is after some steps', () => {\n            const log = \"Latexmk: applying rule 'pdflatex'...\\nLatexmk: All targets (test) are up-to-date\"\n\n            resetSpies()\n            assert.ok(!parser.log(log, 'main.tex'))\n        })\n    })\n\n    describe('lw.parser->latex', () => {\n        beforeEach(() => {\n            set.config('message.badbox.show', 'both')\n        })\n\n        it('should parse general LaTeX errors', () => {\n            const errorLogs = [\n                'main.tex:12: Undefined control sequence',\n                'document.cls:45: Package geometry Error: Invalid margin value',\n                'main.tex:7: LaTeX Error: Missing $ inserted',\n                'report.tex:102: File `input.tex\\' not found',\n                '! LaTeX Error: This is an error message',\n                '! Package pdftex.def Error: File image.png not found',\n                '! Undefined control sequence (in main.tex)',\n                '! LaTeX Error: Too many }\\'s',\n                'main.tex:12: Package amsmath Error: Missing }',\n                'document.cls:45: Class article Error: Missing mandatory argument',\n                'report.tex:15: LaTeX Error: Overfull \\\\hbox',\n                '! File `image.png\\' not found',\n                '! Missing $ inserted',\n                '! Too many }\\'s',\n            ]\n\n            for (const log of errorLogs) {\n                const error = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(error?.type, 'error', log)\n            }\n        })\n\n        it('should finish parsing a LaTeX error on empty line', () => {\n            const errors = latexLogParser.parse('main.tex:12: Undefined control sequence\\n\\ndocument.cls:45: Package geometry Error: Invalid margin value', get.path('main.tex'))\n\n            assert.strictEqual(errors.length, 2)\n        })\n\n        it('should handle multi-line LaTeX errors with line number', () => {\n            const log = `! Undefined control sequence.\nl.4         \\\\draw\n                [->-=0.5] (0,0) -- (3,-2);\n            `\n\n            const error = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.errorPosText, '        \\\\draw')\n        })\n\n        it('should handle multi-line LaTeX errors without line number', () => {\n            const log = `! Undefined control sequence.\nTest message`\n\n            const error = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.text, 'Undefined control sequence.\\nTest message')\n        })\n\n        const badboxLogs = [\n            'Overfull \\\\hbox (some text) in paragraph at lines 10--20',\n            'Overfull \\\\vbox (more text) in paragraph at lines 5--15',\n            'Overfull \\\\hbox (some text) detected at line 12',\n            'Overfull \\\\vbox (more text) detected at line 7',\n            'Overfull \\\\hbox (some text) has occurred while \\\\output is active',\n            'Overfull \\\\vbox (more text) has occurred while \\\\output is active [5]',\n            'Underfull \\\\hbox (some text) in paragraph at lines 8--18',\n            'Underfull \\\\vbox (more text) in paragraph at lines 3--13',\n            'Underfull \\\\hbox (some text) detected at line 11',\n            'Underfull \\\\vbox (more text) detected at line 6',\n            'Underfull \\\\hbox (some text) has occurred while \\\\output is active',\n            'Underfull \\\\vbox (more text) has occurred while \\\\output is active [8]'\n        ]\n\n        it('should parse over/underfull hbox/vbox warnings', () => {\n            for (const log of badboxLogs) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning?.type, 'typesetting', log)\n            }\n        })\n\n        it('should not parse bad box warnings if disabled', () => {\n            set.config('message.badbox.show', 'none')\n\n            for (const log of badboxLogs) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning, undefined)\n            }\n        })\n\n        it('should only parse overfull box warnings if set', () => {\n            set.config('message.badbox.show', 'overfull')\n\n            for (const log of badboxLogs.slice(0, badboxLogs.length / 2)) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning?.type, 'typesetting')\n            }\n\n            for (const log of badboxLogs.slice(badboxLogs.length / 2)) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning, undefined)\n            }\n        })\n\n        it('should only parse underfull box warnings if set', () => {\n            set.config('message.badbox.show', 'underfull')\n\n            for (const log of badboxLogs.slice(0, badboxLogs.length / 2)) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning, undefined)\n            }\n\n            for (const log of badboxLogs.slice(badboxLogs.length / 2)) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning?.type, 'typesetting')\n            }\n        })\n\n        it('should parse the line number of bad box if provided', () => {\n            assert.strictEqual(latexLogParser.parse(badboxLogs[0], get.path('main.tex'))?.[0]?.line, 10)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[1], get.path('main.tex'))?.[0]?.line, 5)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[2], get.path('main.tex'))?.[0]?.line, 12)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[3], get.path('main.tex'))?.[0]?.line, 7)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[4], get.path('main.tex'))?.[0]?.line, 1)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[5], get.path('main.tex'))?.[0]?.line, 1)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[6], get.path('main.tex'))?.[0]?.line, 8)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[7], get.path('main.tex'))?.[0]?.line, 3)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[8], get.path('main.tex'))?.[0]?.line, 11)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[9], get.path('main.tex'))?.[0]?.line, 6)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[10], get.path('main.tex'))?.[0]?.line, 1)\n            assert.strictEqual(latexLogParser.parse(badboxLogs[11], get.path('main.tex'))?.[0]?.line, 1)\n        })\n\n        it('should parse the page number of bad box if provided', () => {\n            assert.strictEqual(latexLogParser.parse(badboxLogs[0], get.path('main.tex'))?.[0]?.text, 'Overfull \\\\hbox (some text)')\n            assert.strictEqual(latexLogParser.parse(badboxLogs[5], get.path('main.tex'))?.[0]?.text, 'Overfull \\\\vbox (more text) in page 5')\n            assert.strictEqual(latexLogParser.parse(badboxLogs[11], get.path('main.tex'))?.[0]?.text, 'Underfull \\\\vbox (more text) in page 8')\n        })\n\n        it('should go on parsing after the bad box warning even without line break', () => {\n            const log = badboxLogs[5] + badboxLogs[1]\n            const warnings = latexLogParser.parse(log, get.path('main.tex'))\n\n            assert.strictEqual(warnings.length, 2)\n        })\n\n        it('should skip the first line after bad box warning', () => {\n            const log = badboxLogs[0] + '\\n' + badboxLogs[1]\n            const warnings = latexLogParser.parse(log, get.path('main.tex'))\n\n            assert.strictEqual(warnings.length, 1)\n        })\n\n        it('should parse class/package/module/LaTeX3 warnings/infos', () => {\n            const logs = [\n                'Class MyClass Warning: This is a warning message on input line 42.',\n                'Package MyPackage Info: All systems operational.',\n                'Module MyModule Warning: Something went wrong.',\n                'LaTeX Info: Compilation successful.',\n                'LaTeX3 Warning: Deprecated feature used on line 10.',\n                'LaTeX3 Info: No issues found.',\n            ]\n\n            for (const log of logs) {\n                const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n                assert.strictEqual(warning?.type, 'warning')\n            }\n        })\n\n        it('should parse line number of class/package/module/LaTeX3 warnings/infos', () => {\n            assert.strictEqual(latexLogParser.parse('Class MyClass Warning: This is a warning message on input line 42.', get.path('main.tex'))?.[0].line, 42)\n            assert.strictEqual(latexLogParser.parse('Module MyModule Warning: Something went wrong.', get.path('main.tex'))?.[0].line, 1)\n        })\n\n        it('should parse line number of class/package/module/LaTeX3 warnings/infos if appeared in the next line', () => {\n            assert.strictEqual(latexLogParser.parse('Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):\\n(hyperref)                removing `math shift\\' on input line 42.', get.path('main.tex'))?.[0].line, 42)\n        })\n\n        it('should parse missing character warnings', () => {\n            const log = 'Missing character: There is no ⫫ (U+2AEB) in font [latinmodern-math.otf]:mode=base;script=math;language=dflt;mathfontdimen=xetex;!'\n            const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(warning?.type, 'warning')\n        })\n\n        it('should ignore empty bibliography env warning', () => {\n            const log = 'Empty `thebibliography\\' environment'\n            const warnings = latexLogParser.parse(log, get.path('main.tex'))\n            assert.strictEqual(warnings.length, 0)\n        })\n\n        it('should parse bib entry not found warning', () => {\n            const log = 'Biber warning: WARN - I didn\\'t find a database entry for \\'nonexisting\\' (section 0)'\n            const warning = latexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(warning?.type, 'warning')\n            assert.strictEqual(warning?.text, 'No bib entry found for \\'nonexisting\\'')\n        })\n    })\n\n    describe('lw.parser->bibtex', () => {\n        it('should parse multi-line bibtex warning', () => {\n            const log = 'Warning--duplicate entry\\n--line 45 of file sample.bib'\n            const warning = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(warning?.type, 'warning')\n        })\n\n        it('should parse single line bibtex warning', () => {\n            const stub = lw.completion.citation.getItem as sinon.SinonStub\n            stub.returns({ file: 'main.bib', position: { line: 1 } })\n            const log = 'Warning--empty field in article1.bib'\n            const warning = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            stub.reset()\n            assert.strictEqual(warning?.type, 'warning')\n            assert.strictEqual(warning?.line, 2)\n        })\n\n        it('should parse multi-line bibtex error', () => {\n            const log = 'Error---line 23 of file references.bib\\nThere\\'s a problem with the syntax\\nI\\'m skipping whatever remains of this entry'\n            const error = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.type, 'error')\n        })\n\n        it('should parse bad cross-reference error', () => {\n            const log = 'A bad cross reference---entry \"article1\"\\nrefers to entry \"article2\", which doesn\\'t exist'\n            const error = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.type, 'error')\n        })\n\n        it('should parse multi-line macro error', () => {\n            const log = 'Macro definition error\\n---line 37 of file macros.bib\\nUndefined macro \\\\cite\\nI\\'m skipping whatever remains of this command'\n            const error = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.type, 'error')\n            assert.strictEqual(error?.line, 37)\n        })\n\n        it('should parse `.aux` file error', () => {\n            const log = 'Error in the bibliography file---while reading file citations.aux'\n            const error = bibtexLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.type, 'error')\n        })\n    })\n\n    describe('lw.parser->biber', () => {\n        it('should log the bibtex file discovered', () => {\n            const log = 'INFO - Found BibTeX data source \\'ref.bib\\''\n            biberLogParser.parse(log, get.path('main.tex'))\n            assert.hasLog('Found BibTeX file ref.bib')\n        })\n\n        it('should parse biber line error', () => {\n            const log = 'ERROR - BibTeX subsystem encountered an unexpected token, line 42, missing closing brace'\n            const error = biberLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(error?.type, 'error')\n            assert.strictEqual(error?.line, 42)\n        })\n\n        it('should parse entry not found warning', () => {\n            const log = 'WARN - I didn\\'t find a database entry for \\'article123\\'.'\n            const warning = biberLogParser.parse(log, get.path('main.tex'))?.[0]\n            assert.strictEqual(warning?.type, 'warning')\n        })\n\n        it('should parse other line error', () => {\n            const stub = lw.completion.citation.getItem as sinon.SinonStub\n            stub.returns({ file: 'main.bib', position: { line: 1 } })\n            const log = 'WARN - Duplicate entry \\'article456\\' found in the database.'\n            const warning = biberLogParser.parse(log, get.path('main.tex'))?.[0]\n            stub.reset()\n            assert.strictEqual(warning?.type, 'warning')\n            assert.strictEqual(warning?.line, 2)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/13_completion_latex.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, type TextDocument } from './utils'\nimport { provider as citationProvider } from '../../src/completion/completer/citation'\nimport { provider as referenceProvider } from '../../src/completion/completer/reference'\nimport { provider as environmentProvider } from '../../src/completion/completer/environment'\nimport { provider as macroProvider } from '../../src/completion/completer/macro'\nimport { provider as argumentProvider } from '../../src/completion/completer/argument'\nimport { provider as packageProvider } from '../../src/completion/completer/package'\nimport { provider as classProvider } from '../../src/completion/completer/class'\nimport { inputProvider, importProvider, subimportProvider } from '../../src/completion/completer/input'\nimport { provider as glossaryProvider } from '../../src/completion/completer/glossary'\nimport { provider as subsuperscriptProvider } from '../../src/completion/completer/subsuperscript'\nimport { provider as closeenvProvider } from '../../src/completion/completer/closeenv'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    let document: TextDocument\n    let citationSpy: sinon.SinonSpy\n    let referenceSpy: sinon.SinonSpy\n    let environmentSpy: sinon.SinonSpy\n    let macroSpy: sinon.SinonSpy\n    let argumentSpy: sinon.SinonSpy\n    let packageSpy: sinon.SinonSpy\n    let classSpy: sinon.SinonSpy\n    let inputSpy: sinon.SinonSpy\n    let importSpy: sinon.SinonSpy\n    let subimportSpy: sinon.SinonSpy\n    let glossarySpy: sinon.SinonSpy\n    let subsuperscriptSpy: sinon.SinonSpy\n    let closeenvSpy: sinon.SinonSpy\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'completion')\n        mock.activeTextEditor(get.path('main.tex'), '', {\n            languageId: 'latex',\n        })\n        document = vscode.window.activeTextEditor?.document as TextDocument\n        citationSpy = sinon.spy(citationProvider, 'from')\n        referenceSpy = sinon.spy(referenceProvider, 'from')\n        environmentSpy = sinon.spy(environmentProvider, 'from')\n        macroSpy = sinon.spy(macroProvider, 'from')\n        argumentSpy = sinon.spy(argumentProvider, 'from')\n        packageSpy = sinon.spy(packageProvider, 'from')\n        classSpy = sinon.spy(classProvider, 'from')\n        inputSpy = sinon.spy(inputProvider, 'from')\n        importSpy = sinon.spy(importProvider, 'from')\n        subimportSpy = sinon.spy(subimportProvider, 'from')\n        glossarySpy = sinon.spy(glossaryProvider, 'from')\n        subsuperscriptSpy = sinon.spy(subsuperscriptProvider, 'from')\n        closeenvSpy = sinon.spy(closeenvProvider, 'from')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    function provide(content: string, position?: number, line: number = 0) {\n        document.setContent(content)\n        if (position === undefined) {\n            position = content.length\n        }\n        const pos = new vscode.Position(line, position)\n        return lw.completion.provider.provideCompletionItems(document, pos)\n    }\n\n    describe('lw.completion->latex', () => {\n        beforeEach(() => {\n            document.setLanguage('latex')\n        })\n\n        it('should invoke citation provider', () => {\n            const lines = [\n                '\\\\cite{',\n                '\\\\Cite{',\n                '\\\\abccite{',\n                '\\\\citeabc{',\n                '\\\\bibentry{',\n                '\\\\bibentry{source1',\n                '\\\\cite(source1){',\n                '\\\\cite[source2]{',\n                '\\\\cite(John, 2020){source',\n                '\\\\Cite{source1',\n                '\\\\cite<author>{',\n                '\\\\cite[description]{text',\n            ]\n\n            for (const line of lines) {\n                citationSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(citationSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke reference provider', () => {\n            const lines = [\n                '\\\\ref{',\n                '\\\\hyperref[section',\n                '\\\\myref{item',\n                '\\\\customref*[section]{',\n                '\\\\Caarefrange{start',\n                '\\\\somethingrefrange*{start',\n            ]\n\n            for (const line of lines) {\n                referenceSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(referenceSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke environment provider', () => {\n            const lines = [\n                '\\\\begin{',\n                '\\\\end{',\n                '\\\\begin{environment',\n                '\\\\end{environment'\n            ]\n\n            for (const line of lines) {\n                environmentSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(environmentSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke macro provider', () => {\n            const lines = [\n                '\\\\',\n                '\\\\command',\n                '\\\\Bigl(',\n                '\\\\Biggl{',\n                '\\\\left[',\n            ]\n\n            for (const line of lines) {\n                macroSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(macroSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke LaTeX3 macro provider', () => {\n            const lines = [\n                '\\\\',\n                '\\\\command',\n                '\\\\command@',\n                '\\\\command:subcommand'\n            ]\n\n            document.setLanguage('latex-expl3')\n            for (const line of lines) {\n                macroSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(macroSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke argument provider', () => {\n            const lines = [\n                '\\\\command[arg]{arg}[',\n                '\\\\command[arg]{arg}{'\n            ]\n\n            for (const line of lines) {\n                argumentSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(argumentSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke LaTeX3 argument provider', () => {\n            const lines = [\n                '\\\\command@[arg]{arg}[',\n                '\\\\command:subcommand[arg]{arg}{'\n            ]\n\n            document.setLanguage('latex-expl3')\n            for (const line of lines) {\n                argumentSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(argumentSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke argument provider even when curly braces already exists in \\\\documentclass arguments', () => {\n            const line = '\\\\documentclass[aspectratio=169,t,fontset=none,xcolor={x11names},]{ctexbeamer}'\n            argumentSpy.resetHistory()\n            provide(line, 64)\n            assert.strictEqual(argumentSpy.callCount, 1, line)\n        })\n\n        it('should invoke argument provider even when curly braces already exists in \\\\usepackage arguments', () => {\n            const line = '\\\\usepackage[xcolor={x11names},]{listings}'\n            argumentSpy.resetHistory()\n            provide(line, 30)\n            assert.strictEqual(argumentSpy.callCount, 1, line)\n        })\n\n        it('should invoke package provider', () => {\n            const lines = [\n                '\\\\usepackage{',\n                '\\\\usepackage{package',\n                '\\\\RequirePackage[option]{package',\n                '\\\\RequirePackageWithOptions{package'\n            ]\n\n            for (const line of lines) {\n                packageSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(packageSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke documentclass provider', () => {\n            const lines = [\n                '\\\\documentclass{',\n                '\\\\documentclass{class',\n                '\\\\documentclass[option]{class'\n            ]\n\n            for (const line of lines) {\n                classSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(classSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke input provider', () => {\n            const lines = [\n                '\\\\input{',\n                '\\\\input{file',\n                '\\\\include{file',\n                '\\\\subfile{file',\n                '\\\\subfileinclude{file',\n                '\\\\includegraphics{file',\n                '\\\\includesvg{file',\n                '\\\\lstinputlisting{file',\n                '\\\\verbatiminput{file',\n                '\\\\loadglsentries{file',\n                '\\\\markdownInput{file',\n                '\\\\includeonly{',\n                '\\\\includeonly{file1,',\n                '\\\\excludeonly{file1,'\n            ]\n\n            for (const line of lines) {\n                inputSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(inputSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke import provider', () => {\n            const lines = [\n                '\\\\import{',\n                '\\\\import{path}{file',\n                '\\\\includefrom{path}{file',\n                '\\\\inputfrom*{path}{file'\n            ]\n\n            for (const line of lines) {\n                importSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(importSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke subimport provider', () => {\n            const lines = [\n                '\\\\subimport{',\n                '\\\\subimport{path}{file',\n                '\\\\subincludefrom{path}{file',\n                '\\\\subinputfrom*{path}{file'\n            ]\n\n            for (const line of lines) {\n                subimportSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(subimportSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke glossary provider', () => {\n            const lines = [\n                '\\\\gls{',\n                '\\\\gls{term',\n                '\\\\glspl{term',\n                '\\\\glstext{term',\n                '\\\\glsfirst{term',\n                '\\\\glsfmttext{term',\n                '\\\\glsfmtshort{term',\n                '\\\\glsplural{term',\n                '\\\\glsfirstplural{term',\n                '\\\\glsname{term',\n                '\\\\glssymbol{term',\n                '\\\\glsdesc{term',\n                '\\\\glsdisp{term',\n                '\\\\glsuseri{term',\n                '\\\\glsuserii{term',\n                '\\\\glsuseriii{term',\n                '\\\\glsuseriv{term',\n                '\\\\glsuserv{term',\n                '\\\\glsuservi{term',\n                '\\\\Acrlong{term',\n                '\\\\Acrfull{term',\n                '\\\\Acrshort{term',\n                '\\\\Acrlongpl{term',\n                '\\\\Acrfullpl{term',\n                '\\\\Acrshortpl{term',\n                '\\\\ac{term',\n                '\\\\acs{term',\n                '\\\\acf{term',\n                '\\\\acp{term',\n                '\\\\acsp{term'\n            ]\n\n            for (const line of lines) {\n                glossarySpy.resetHistory()\n                provide(line)\n                assert.strictEqual(glossarySpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke subsuper provider', () => {\n            const lines = [\n                '^{',\n                '_{'\n            ]\n\n            for (const line of lines) {\n                subsuperscriptSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(subsuperscriptSpy.callCount, 1, line)\n            }\n        })\n\n        it('should invoke closeenv provider', () => {\n            const lines = [\n                '\\\\begin{env}'\n            ]\n\n            for (const line of lines) {\n                closeenvSpy.resetHistory()\n                provide(line)\n                assert.strictEqual(closeenvSpy.callCount, 1, line)\n            }\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/14_completion_citation.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { citation, provider } from '../../src/completion/completer/citation'\nimport type { CitationItem, FileCache } from '../../src/types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->citation.parse', () => {\n        const texPath = get.path(fixture, 'bibitems.tex')\n        let cache: FileCache\n\n        beforeEach(async () => {\n            await lw.cache.refreshCache(texPath)\n            cache = lw.cache.get(texPath)!\n            citation.parse(cache)\n        })\n\n        it('should parse citations in the form of \\\\bibitem', () => {\n            assert.strictEqual(cache.elements?.bibitem?.length, 10)\n        })\n\n        it('should correctly parse the citation keys and labels', () => {\n            const bibItem = cache.elements?.bibitem?.[0]\n\n            assert.strictEqual(bibItem?.key, 'smith2023')\n            assert.strictEqual(bibItem?.label, 'smith2023')\n        })\n\n        it('should correctly set the file and position', () => {\n            const bibItem = cache.elements?.bibitem?.[0]\n\n            assert.strictEqual(bibItem?.file, texPath)\n            assert.strictEqual(bibItem?.position.line, 4)\n            assert.strictEqual(bibItem?.position.character, 0)\n        })\n    })\n\n    describe('lw.completion->citation.parseBibFile', () => {\n        const texPath = get.path(fixture, 'bibitems.tex')\n        const bibPath = get.path(fixture, 'bibfile.bib')\n\n        beforeEach(async () => {\n            set.config('intellisense.citation.label', 'bibtex key')\n            set.root(texPath)\n            await lw.cache.refreshCache(texPath)\n        })\n\n        it('should parse the bib file', async () => {\n            await citation.parseBibFile(bibPath)\n\n            const suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n\n            assert.ok(suggestions.some(suggestion => suggestion.label === 'miller2024'))\n        })\n\n        it('should not parse oversized bib file', async () => {\n            set.config('bibtex.maxFileSize', 0)\n            await citation.parseBibFile(bibPath)\n\n            const suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n\n            assert.ok(!suggestions.some(suggestion => suggestion.label === 'miller2024'))\n        })\n\n        it('should set and concat string abbreviations', async () => {\n            await citation.parseBibFile(bibPath)\n\n            const suggestion = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }).find(s => s.label === 'miller2025') as CitationItem\n\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.fields.journal, 'Proceedings of the ')\n            assert.strictEqual(suggestion.fields.title, 'Proceedings of the Foo')\n        })\n\n        it('should deparenthesis', async () => {\n            await citation.parseBibFile(bibPath)\n\n            const suggestion = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }).find(s => s.label === 'miller2025') as CitationItem\n\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.fields.author, 'Jane Miller and Robert Smith')\n        })\n\n        it('should handle biblatex ids field', async () => {\n            await citation.parseBibFile(bibPath)\n\n            const suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n\n            assert.ok(suggestions.find(s => s.label === 'miller2024'))\n            assert.ok(suggestions.find(s => s.label === 'altid1'))\n        })\n\n        it('should handle biblatex ids field with multiple alt names', async () => {\n            await citation.parseBibFile(bibPath)\n\n            const suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n\n            assert.ok(suggestions.find(s => s.label === 'miller2025'))\n            assert.ok(suggestions.find(s => s.label === 'altid2'))\n            assert.ok(suggestions.find(s => s.label === 'altid3'))\n        })\n    })\n\n    describe('latex-workshop.intellisense.citation.*', () => {\n        const texPath = get.path(fixture, 'bibitems.tex')\n        const bibPath = get.path(fixture, 'bibfile.bib')\n        beforeEach(async () => {\n            set.root(texPath)\n            await lw.cache.refreshCache(texPath)\n            await citation.parseBibFile(bibPath)\n        })\n\n        it('should follow `latex-workshop.intellisense.citation.label`', () => {\n            set.config('intellisense.citation.label', 'title')\n            let suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            let suggestion = suggestions.find(s => s.label === 'An Overview of Quantum Computing: Challenges and Future Directions')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.label, suggestion.fields.title)\n\n            set.config('intellisense.citation.label', 'bibtex key')\n            suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            suggestion = suggestions.find(s => s.label === 'miller2024')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.label, suggestion.key)\n\n            set.config('intellisense.citation.label', 'authors')\n            suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            suggestion = suggestions.find(s => s.label === 'Jane Miller and Robert Smith')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.label, suggestion.fields.author)\n        })\n\n        it('should follow `latex-workshop.intellisense.citation.filterText`', () => {\n            const otherFields = 'Jane Miller and Robert Smith Journal of Advanced Computing 2024 Elsevier'\n\n            set.config('intellisense.citation.filterText', ['title', 'bibtex key'])\n            let suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            let suggestion = suggestions.find(s => s.key === 'miller2024')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.filterText, `${suggestion.fields.title} ${suggestion.key}`)\n\n            set.config('intellisense.citation.filterText', ['other fields'])\n            suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            suggestion = suggestions.find(s => s.key === 'miller2024')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.filterText, otherFields)\n\n            set.config('intellisense.citation.filterText', ['wrong config'])\n            suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            suggestion = suggestions.find(s => s.key === 'miller2024')\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.filterText, `${suggestion.key} ${suggestion.fields.title} ${otherFields}`)\n        })\n\n        it('should follow `latex-workshop.intellisense.citation.format`', () => {\n            set.config('intellisense.citation.format', ['title', 'author'])\n            const suggestions = provider.from([''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) }) as CitationItem[]\n            const suggestion = suggestions.find(s => s.key === 'miller2024')\n            assert.ok(suggestion)\n            const documentation = (suggestion.documentation as vscode.MarkdownString | undefined)?.value\n            assert.ok(documentation?.includes('An Overview of Quantum Computing: Challenges and Future Directions'))\n            assert.ok(documentation?.includes('Jane Miller and Robert Smith'))\n            assert.ok(!documentation?.includes('Journal of Advanced Computing'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/15_completion_macro.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { provider } from '../../src/completion/completer/macro'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    let readStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        readStub = sinon.stub(lw.file, 'read')\n    })\n\n    beforeEach(() => {\n        set.root(texPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->macro', () => {\n        function getSuggestions() {\n            return provider.from(['', ''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n        }\n\n        function getMacros() {\n            return getSuggestions().map(s => s.label)\n        }\n\n        it('should provide default macros', () => {\n            const labels = getMacros()\n\n            assert.ok(labels.includes('\\\\begin'))\n            assert.ok(labels.includes('\\\\left('))\n            assert.ok(labels.includes('\\\\section{}'))\n        })\n\n        it('should provide macros defined in packages', async () => {\n            assert.ok(!getMacros().includes('\\\\lstinputlisting{}'))\n\n            readStub.resolves('\\\\usepackage[savemem]{listings}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(getMacros().includes('\\\\lstinputlisting{}'))\n        })\n\n        it('should provide macros defined in packages and filtered by package arguments', async () => {\n            readStub.resolves('\\\\usepackage[savemem]{listings}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(!getMacros().includes('\\\\lstdefineformat{}{}'))\n\n            readStub.resolves('\\\\usepackage[savemem,formats]{listings}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(getMacros().includes('\\\\lstdefineformat{}{}'))\n        })\n\n        it('should provide macros defined in packages and filtered by unusual tag', async () => {\n            readStub.resolves('\\\\usepackage[savemem]{listings}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(!getMacros().includes('\\\\lstname'))\n\n            set.config('intellisense.package.unusual', true)\n            await lw.cache.refreshCache(texPath)\n            assert.ok(getMacros().includes('\\\\lstname'))\n        })\n\n        it('should provide macros defined by \\\\newcommand', async () => {\n            let macros = getMacros()\n            assert.ok(!macros.includes('\\\\WARNING'))\n            assert.ok(!macros.includes('\\\\FIXME{}'))\n            assert.ok(!macros.includes('\\\\FIXMETOO[]{}'))\n            assert.ok(!macros.includes('\\\\fix[]{}{}'))\n\n            readStub.resolves(`\n                \\\\newcommand\\\\WARNING{\\\\textcolor{red}{WARNING}}\n                \\\\newcommand\\\\FIXME[1]{\\\\textcolor{red}{FIX:}\\\\textcolor{red}{#1}}\n                \\\\newcommand\\\\FIXMETOO[2][]{\\\\textcolor{red}{FIX:}\\\\textcolor{red}{#1}}\n                \\\\newcommand{\\\\fix}[3][]{\\\\chdeleted{#2}\\\\chadded[comment={#1}]{#3}}\n            `)\n            await lw.cache.refreshCache(texPath)\n            macros = getMacros()\n            assert.ok(macros.includes('\\\\WARNING'))\n            assert.ok(macros.includes('\\\\FIXME{}'))\n            assert.ok(macros.includes('\\\\FIXMETOO[]{}'))\n            assert.ok(macros.includes('\\\\fix[]{}{}'))\n        })\n\n        it('should provide macros defined by \\\\NewDocumentCommand', async () => {\n            let macros = getMacros()\n            assert.ok(!macros.includes('\\\\testNoArg'))\n            assert.ok(!macros.includes('\\\\testA{}'))\n            assert.ok(!macros.includes('\\\\testB[]{}'))\n            assert.ok(!macros.includes('\\\\testC{}[][]{}{}'))\n\n            readStub.resolves(`\n                \\\\NewDocumentCommand\\\\testNoArg{}{ABC}\n                \\\\DeclareDocumentCommand\\\\testA{m}{ABC #1}\n                \\\\NewDocumentCommand{\\\\testB}{O{}m}{ABC #2 #1}\n                \\\\ProvideDocumentCommand{\\\\testC}{m o O{} m r() m}{ABC}\n            `)\n            await lw.cache.refreshCache(texPath)\n            macros = getMacros()\n            assert.ok(macros.includes('\\\\testNoArg'))\n            assert.ok(macros.includes('\\\\testA{}'))\n            assert.ok(macros.includes('\\\\testB[]{}'))\n            assert.ok(macros.includes('\\\\testC{}[][]{}{}'))\n        })\n\n        it('should remove `%keyvals` from macro argument hints', async () => {\n            readStub.resolves('\\\\usepackage{acro}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestion = getSuggestions().find(s => s.label === '\\\\RenewAcroPreset{}{}')\n            const snippet = suggestion?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.ok(!snippet.value.includes('%keyvals'), snippet.value)\n        })\n\n        it('should remove `%:translatable` from macro argument hints', async () => {\n            readStub.resolves('\\\\usepackage{amsmath}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestion = getSuggestions().find(s => s.label === '\\\\dfrac{}{}')\n            const snippet = suggestion?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.ok(!snippet.value.includes('%:translatable'), snippet.value)\n        })\n\n        it('should remove other `%` components from macro argument hints', async () => {\n            set.config('intellisense.package.unusual', true)\n            readStub.resolves('\\\\usepackage{acro}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestion = getSuggestions().find(s => s.label === '\\\\acrotranslate{}')\n            const snippet = suggestion?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.ok(!snippet.value.includes('%'), snippet.value)\n        })\n\n        it('should not provide argument hints if `intellisense.argumentHint.enabled` is false', async () => {\n            readStub.resolves('\\\\usepackage{import}')\n            await lw.cache.refreshCache(texPath)\n\n            let suggestion = getSuggestions().find(s => s.label === '\\\\includefrom{}{}')\n            let snippet = suggestion?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.ok(snippet.value.includes('${1:'))\n\n            set.config('intellisense.argumentHint.enabled', false)\n            suggestion = getSuggestions().find(s => s.label === '\\\\includefrom{}{}')\n            snippet = suggestion?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.ok(!snippet.value.includes('${1:'))\n        })\n\n        it('should add new macros from `intellisense.command.user`', async () => {\n            assert.ok(!getMacros().includes('\\\\mycommand[]{}'))\n            await set.codeConfig('intellisense.command.user', { 'mycommand[]{}': 'notsamecommand[${2:option}]{$TM_SELECTED_TEXT$1}' })\n            assert.ok(getMacros().includes('\\\\mycommand[]{}'))\n        })\n\n        it('should change existing macros from `intellisense.command.user`', async () => {\n            assert.ok(getMacros().includes('\\\\parbox{}{}'))\n            assert.ok(!getMacros().includes('\\\\defchanged'))\n            await set.codeConfig('intellisense.command.user', { 'parbox{}{}': 'defchanged' })\n            assert.ok(!getMacros().includes('\\\\parbox{}{}'))\n            assert.ok(getMacros().includes('\\\\defchanged'))\n        })\n\n        it('should remove existing macros from `intellisense.command.user`', async () => {\n            assert.ok(getMacros().includes('\\\\overline{}'))\n            await set.codeConfig('intellisense.command.user', { 'overline{}': '' })\n            assert.ok(!getMacros().includes('\\\\overline{}'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/16_completion_reference.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { provider } from '../../src/completion/completer/reference'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    const subPath = get.path(fixture, 'sub.tex')\n    let readStub: sinon.SinonStub\n    let existsStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        readStub = sinon.stub(lw.file, 'read')\n        existsStub = sinon.stub(lw.file, 'exists')\n    })\n\n    beforeEach(async () => {\n        readStub.withArgs(texPath).resolves('\\\\section{1}\\\\label{sec:1}\\n\\\\begin{frame}[label={frame}]label={trap}\\\\end{frame}\\\\input{sub}')\n        readStub.withArgs(subPath).resolves('\\\\section{2}\\\\label{sec:2}')\n        existsStub.withArgs(texPath).resolves(true)\n        existsStub.withArgs(subPath).resolves(true)\n        set.root(texPath)\n        await lw.cache.refreshCache(texPath)\n        await lw.cache.refreshCache(subPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->reference', () => {\n        function getSuggestions() {\n            return provider.from(['', ''], { uri: vscode.Uri.file(texPath), langId: 'latex', line: '', position: new vscode.Position(0, 0) })\n        }\n\n        function getLabels() {\n            return getSuggestions().map(s => s.label)\n        }\n\n        it('should provide label references', () => {\n            const labels = getLabels()\n\n            assert.ok(labels.includes('sec:1'))\n        })\n\n        it('should parse `[label={frame}]` references', () => {\n            const labels = getLabels()\n\n            assert.ok(labels.includes('frame'))\n        })\n\n        it('should avoid plain `label={frame}` fake references', () => {\n            const labels = getLabels()\n\n            assert.ok(!labels.includes('trap'))\n        })\n\n        it('should follow tex input tree to obtain references', () => {\n            const labels = getLabels()\n\n            assert.ok(labels.includes('sec:2'))\n        })\n\n        it('should follow `intellisense.label.command` to parse references', async () => {\n            readStub.withArgs(texPath).resolves('\\\\label{label:1}\\n\\\\linelabel{label:2}\\n\\\\customlabel{label:3}')\n            await lw.cache.refreshCache(texPath)\n            let labels = getLabels()\n            assert.ok(labels.includes('label:1'))\n            assert.ok(labels.includes('label:2'))\n            assert.ok(!labels.includes('label:3'))\n\n            await set.codeConfig('intellisense.label.command', ['customlabel'])\n            await lw.cache.refreshCache(texPath)\n            labels = getLabels()\n            assert.ok(!labels.includes('label:1'))\n            assert.ok(!labels.includes('label:2'))\n            assert.ok(labels.includes('label:3'))\n        })\n\n        it('should parse `xr` package references', async () => {\n            readStub.withArgs(texPath).resolves('\\\\externaldocument{sub}')\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(subPath)\n            const labels = getLabels()\n\n            assert.ok(labels.includes('sec:2'))\n        })\n\n        it('should parse `xr` package references with prefix', async () => {\n            readStub.withArgs(texPath).resolves('\\\\externaldocument[pre-]{sub}')\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(subPath)\n            const labels = getLabels()\n\n            assert.ok(labels.includes('pre-sec:2'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/17_completion_environment.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set, TextEditor } from './utils'\nimport { provider } from '../../src/completion/completer/environment'\nimport { provider as macro } from '../../src/completion/completer/macro'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    let readStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        readStub = sinon.stub(lw.file, 'read')\n    })\n\n    beforeEach(() => {\n        set.root(texPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->environment', () => {\n        function getSuggestions() {\n            return provider.from(['', ''], {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: '',\n                position: new vscode.Position(0, 0),\n            })\n        }\n\n        function getEnvs() {\n            return getSuggestions().map((s) => s.label)\n        }\n\n        it('should provide default environments', () => {\n            const labels = getEnvs()\n\n            assert.ok(labels.includes('document'))\n        })\n\n        it('should provide environments in the form of macros', () => {\n            const labels = provider\n                .from(['', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '',\n                    position: new vscode.Position(0, 0),\n                })\n                .map((s) => s.label)\n\n            assert.ok(labels.includes('document'))\n        })\n\n        it('should provide environment snippet when the cursor is `\\\\begin{|`', () => {\n            const stub = mock.activeTextEditor(texPath, '\\\\begin{')\n            const suggestion = provider\n                .from(['\\\\begin{', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '\\\\begin{',\n                    position: new vscode.Position(0, 7),\n                })\n                .find(s => s.label === 'itemize')\n            stub.restore()\n\n            assert.ok(suggestion)\n            assert.ok(suggestion.insertText instanceof vscode.SnippetString)\n            assert.ok(suggestion.insertText.value.startsWith('itemize}\\n'), suggestion.insertText.value)\n        })\n\n        it('should provide environment name when the cursor is `\\\\begin{|}`', () => {\n            const stub = mock.activeTextEditor(texPath, '\\\\begin{}')\n            const suggestion = provider\n                .from(['\\\\begin{', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '\\\\begin{}',\n                    position: new vscode.Position(0, 7),\n                })\n                .find(s => s.label === 'itemize')\n            stub.restore()\n\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.insertText, undefined)\n        })\n\n        it('should provide environment name when the cursor is `\\\\begin{|}\\\\end{|}`', () => {\n            const editor = new TextEditor(texPath, '\\\\begin{}\\\\end{}', {})\n            editor.setSelections([\n                new vscode.Selection(new vscode.Position(0, 7), new vscode.Position(0, 7)),\n                new vscode.Selection(new vscode.Position(0, 13), new vscode.Position(0, 13))\n            ])\n            const stub = sinon.stub(vscode.window, 'activeTextEditor').value(editor)\n            const suggestion = provider\n                .from(['\\\\begin{', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '\\\\begin{',\n                    position: new vscode.Position(0, 7),\n                })\n                .find(s => s.label === 'itemize')\n            stub.restore()\n\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.insertText, undefined)\n        })\n\n        it('should provide environment name when the cursor is `\\\\end{|`', () => {\n            const stub = mock.activeTextEditor(texPath, '\\\\begin{itemize}\\\\end{')\n            const suggestion = provider\n                .from(['\\\\end{', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '\\\\begin{itemize}\\\\end{',\n                    position: new vscode.Position(0, 20),\n                })\n                .find(s => s.label === 'itemize')\n            stub.restore()\n\n            assert.ok(suggestion)\n            assert.strictEqual(suggestion.insertText, undefined)\n        })\n\n        it('should provide environments defined in packages', async () => {\n            assert.ok(!getEnvs().includes('algorithm'))\n\n            readStub.resolves('\\\\usepackage{algorithm2e}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(getEnvs().includes('algorithm'))\n        })\n\n        it('should provide environments defined in packages and filtered by package arguments', async () => {\n            readStub.resolves('\\\\usepackage{algorithm2e}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(!getEnvs().includes('algorithm2e'))\n\n            readStub.resolves('\\\\usepackage[algo2e]{algorithm2e}')\n            await lw.cache.refreshCache(texPath)\n            assert.ok(getEnvs().includes('algorithm2e'))\n        })\n\n        it('should provide environments in the form of macros', async () => {\n            readStub.resolves('\\\\usepackage{algorithm2e}')\n            await lw.cache.refreshCache(texPath)\n\n            const labels = macro\n                .from(['', ''], {\n                    uri: vscode.Uri.file(texPath),\n                    langId: 'latex',\n                    line: '',\n                    position: new vscode.Position(0, 0),\n                })\n                .map((s) => s.label)\n\n            assert.ok(labels.includes('algorithm'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/18_completion_package.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { provider as macroProvider } from '../../src/completion/completer/macro'\nimport { provider as packageProvider } from '../../src/completion/completer/package'\nimport type { CompletionProvider } from '../../src/types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    let readStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        readStub = sinon.stub(lw.file, 'read')\n    })\n\n    beforeEach(async () => {\n        set.root(texPath)\n        readStub.resolves('\\\\usepackage{import}\\n\\\\usepackage[savemem]{listings}')\n        await lw.cache.refreshCache(texPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->package', () => {\n        function getSuggestions(provider: CompletionProvider) {\n            return provider.from(['', ''], {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: '',\n                position: new vscode.Position(0, 0),\n            })\n        }\n\n        function getMacros() {\n            return getSuggestions(macroProvider).map((s) => s.label)\n        }\n\n        it('should provide \\\\usepackage suggestions', () => {\n            const labels = getSuggestions(packageProvider).map((s) => s.label)\n\n            assert.ok(labels.includes('amsmath'))\n        })\n\n        it('should follow `intellisense.package.exclude` to exclude a particular package', async () => {\n            await set.codeConfig('intellisense.package.exclude', ['import'])\n            const labels = getMacros()\n\n            assert.ok(labels.includes('\\\\date{}'))\n            assert.ok(!labels.includes('\\\\import{}{}'))\n            assert.ok(labels.includes('\\\\lstinputlisting{}'))\n        })\n\n        it('should follow `intellisense.package.exclude` to exclude multiple package', async () => {\n            await set.codeConfig('intellisense.package.exclude', ['import', 'listings'])\n            const labels = getMacros()\n\n            assert.ok(labels.includes('\\\\date{}'))\n            assert.ok(!labels.includes('\\\\import{}{}'))\n            assert.ok(!labels.includes('\\\\lstinputlisting{}'))\n        })\n\n        it('should follow `intellisense.package.exclude` to exclude default packages with `lw-default` key', async () => {\n            await set.codeConfig('intellisense.package.exclude', ['lw-default'])\n            const labels = getMacros()\n\n            assert.ok(!labels.includes('\\\\date{}'))\n            assert.ok(labels.includes('\\\\import{}{}'))\n            assert.ok(labels.includes('\\\\lstinputlisting{}'))\n        })\n\n        it('should provide base KOMAScript macros/envs in KOMAScript class', async () => {\n            readStub.resolves('\\\\documentclass{scrartcl}')\n            await lw.cache.refreshCache(texPath)\n            const labels = getMacros()\n            // in class-scrartcl.cwl\n            assert.ok(labels.includes('\\\\addpart{}'))\n            // in base\n            assert.ok(labels.includes('\\\\addchap{}'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/19_completion_argument.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { provider } from '../../src/completion/completer/argument'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    let readStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        readStub = sinon.stub(lw.file, 'read')\n    })\n\n    beforeEach(async () => {\n        set.root(texPath)\n        readStub.resolves('\\\\usepackage{acro}\\n\\\\usepackage[savemem]{listings}')\n        await lw.cache.refreshCache(texPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->argument', () => {\n        function getSuggestions(match: RegExpMatchArray) {\n            return provider.from(match, {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: match[0],\n                position: new vscode.Position(0, 0),\n            })\n        }\n\n        function getArgs(match: RegExpMatchArray) {\n            return getSuggestions(match).map((s) => s.label)\n        }\n\n        it('should provide \\\\usepackage arguments', () => {\n            const labels = getArgs(['\\\\usepackage[]{listings}', 'usepackage', ''])\n            assert.ok(labels.includes('savemem'))\n        })\n\n        it('should provide \\\\documentclass arguments of default LaTeX classes', () => {\n            let labels = getArgs(['\\\\documentclass[]{article}', 'documentclass', ''])\n            assert.ok(labels.includes('a4paper'))\n\n            labels = getArgs(['\\\\documentclass[]{report}', 'documentclass', ''])\n            assert.ok(labels.includes('a4paper'))\n\n            labels = getArgs(['\\\\documentclass[]{book}', 'documentclass', ''])\n            assert.ok(labels.includes('a4paper'))\n        })\n\n        it('should provide \\\\documentclass arguments of custom LaTeX classes', () => {\n            let labels = getArgs(['\\\\documentclass[]{article}', 'documentclass', ''])\n            assert.ok(!labels.includes('sans'))\n\n            labels = getArgs(['\\\\documentclass[]{moderncv}', 'documentclass', ''])\n            assert.ok(labels.includes('sans'))\n        })\n\n        it('should provide macro arguments', () => {\n            const labels = getArgs(['\\\\lstinline[]|code|', 'lstinline', ''])\n            assert.ok(labels.includes('showlines'))\n        })\n\n        it('should provide macro arguments not at the first position', () => {\n            const labels = getArgs(['\\\\DeclareAcronym{acronym}{', 'DeclareAcronym', '{acronym}'])\n            assert.ok(labels.some(label => label.toString().startsWith('short=')))\n        })\n\n        it('should provide macro arguments if there are multiple keyval sets defined in package JSON file', () => {\n            const labels = getArgs(['\\\\DeclareAcronym{acronym}{', 'DeclareAcronym', '{acronym}'])\n            // The `case-sensitive` keyval is in the second keyval set of macro DeclareAcronym\n            assert.ok(labels.some(label => label.toString().startsWith('case-sensitive')))\n        })\n\n        it('should provide environment arguments', () => {\n            const labels = getArgs(['\\\\begin{lstlisting}[]', 'begin', '{lstlisting}'])\n            assert.ok(labels.includes('showlines'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/20_completion_documentclass.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock } from './utils'\nimport { provider } from '../../src/completion/completer/class'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->documentclass', () => {\n        function getSuggestions() {\n            return provider.from(['', ''], {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: '',\n                position: new vscode.Position(0, 0),\n            })\n        }\n\n        function getClasses() {\n            return getSuggestions().map((s) => s.label)\n        }\n\n        it('should provide \\\\documentclass suggestions', () => {\n            const labels = getClasses()\n\n            assert.ok(labels.includes('article'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/21_completion_input.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { inputProvider, importProvider, subimportProvider } from '../../src/completion/completer/input'\nimport type { CompletionProvider } from '../../src/types'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n    })\n\n    beforeEach(() => {\n        set.root(texPath)\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->input', () => {\n        function getSuggestions(provider: CompletionProvider, matches: RegExpMatchArray) {\n            return provider.from(matches, {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: '',\n                position: new vscode.Position(0, 0),\n            })\n        }\n\n        function getInputs(provider: CompletionProvider, matches: RegExpMatchArray) {\n            return getSuggestions(provider, matches).map((s) => s.label)\n        }\n\n        it('should provide \\\\input suggestions', () => {\n            const labels = getInputs(inputProvider, ['\\\\input{', 'input', ''])\n\n            assert.listStrictEqual(labels, ['main.tex', 'sub/'])\n        })\n\n        it('should provide \\\\includeonly suggestions', () => {\n            const labels = getInputs(inputProvider, ['\\\\includeonly{', 'includeonly', ''])\n\n            assert.listStrictEqual(labels, ['main.tex', 'sub/'])\n        })\n\n        it('should provide \\\\import folder suggestions', () => {\n            const labels = getInputs(importProvider, ['\\\\import{', 'import', '', ''])\n\n            assert.ok(!labels.includes('main.tex'))\n        })\n\n        it('should provide \\\\import subfile suggestions', () => {\n            const labels = getInputs(importProvider, ['\\\\import{', 'import', get.path(fixture), ''])\n\n            assert.listStrictEqual(labels, ['main.tex', 'sub/'])\n        })\n\n        it('should provide \\\\subimport folder suggestions', () => {\n            const labels = getInputs(subimportProvider, ['\\\\subimport{', 'import', '', ''])\n\n            assert.listStrictEqual(labels, ['sub/'])\n        })\n\n        it('should provide \\\\subimport subfile suggestions', () => {\n            const labels = getInputs(subimportProvider, ['\\\\subimport{sub}{', 'import', 'sub', ''])\n\n            assert.listStrictEqual(labels, ['sub1.tex', 'sub2.tex'])\n        })\n\n        it('should provide \\\\subimport subfile suggestions with extension-less inserted text', () => {\n            const suggestions = getSuggestions(subimportProvider, ['\\\\subimport{sub}{', 'import', 'sub', ''])\n\n            assert.ok(!suggestions.some(s => s.insertText instanceof vscode.SnippetString && s.insertText?.value.includes('.tex')))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/22_completion_glossary.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set } from './utils'\nimport { glossary, provider } from '../../src/completion/completer/glossary'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    const glsPath = get.path(fixture, 'gls.tex')\n    let readStub: sinon.SinonStub\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n    })\n\n    beforeEach(() => {\n        readStub = sinon.stub(lw.file, 'read')\n        set.root(texPath)\n    })\n\n    afterEach(() => {\n        sinon.restore()\n    })\n\n    function getSuggestions() {\n        return provider.from(['', ''], {\n            uri: vscode.Uri.file(texPath),\n            langId: 'latex',\n            line: '',\n            position: new vscode.Position(0, 0),\n        })\n    }\n\n    describe('lw.completion->glossary', () => {\n        it('should parse and provide \\\\newacronym definition', async () => {\n            readStub.resolves('\\\\newacronym{rf}{RF}{radio-frequency}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'rf'))\n            assert.strictEqual(suggestions.find(s => s.label === 'rf')?.detail, 'radio-frequency')\n        })\n\n        it('should reject ill-formed glossary definitions', async () => {\n            readStub.resolves('\\\\newacronym[argopt]{EPE_x}{E} % ill-formed entry')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(!suggestions.some(s => s.label === 'EPE_x'))\n        })\n\n        it('should parse and provide \\\\newglossaryentry definition', async () => {\n            readStub.resolves('\\\\newglossaryentry{vs_code}{name=VSCode, description=Editor}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'vs_code'))\n            assert.strictEqual(suggestions.find(s => s.label === 'vs_code')?.detail, 'Editor')\n        })\n\n        it('should parse and provide \\\\newglossaryentry definition with curly brace fence', async () => {\n            readStub.resolves('\\\\newglossaryentry{lw}{name={LaTeX Workshop}, description={What this extension is $\\\\mathbb{A}$}}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'lw'))\n            assert.strictEqual(suggestions.find(s => s.label === 'lw')?.detail, 'What this extension is $\\\\mathbb{A}$')\n        })\n\n        it('should parse and provide \\\\newabbr definition', async () => {\n            readStub.resolves('\\\\newabbr{abbr_x}{Ebbr}{A first abbreviation}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'abbr_x'))\n            assert.strictEqual(suggestions.find(s => s.label === 'abbr_x')?.detail, 'A first abbreviation')\n        })\n\n        it('should parse and provide \\\\newabbreviation definition', async () => {\n            readStub.resolves('\\\\newabbreviation[optional arg]{abbr_y}{Ybbr}{A second abbreviation}')\n            await lw.cache.refreshCache(texPath)\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'abbr_y'))\n            assert.strictEqual(suggestions.find(s => s.label === 'abbr_y')?.detail, 'A second abbreviation')\n        })\n\n        it('should parse and provide glossary definitions in another file given in \\\\loadglsentries', async () => {\n            const stub = sinon.stub(lw.file, 'exists').resolves({ type: 1, ctime: 0, mtime: 0, size: 0 })\n            readStub.resolves('\\\\newacronym{rf}{RF}{radio-frequency}')\n            readStub.withArgs(texPath).resolves('\\\\loadglsentries{gls}')\n            await lw.cache.refreshCache(texPath)\n            await lw.cache.refreshCache(glsPath)\n            stub.restore()\n\n            const suggestions = getSuggestions()\n\n            assert.ok(suggestions.some(s => s.label === 'rf'))\n            assert.strictEqual(suggestions.find(s => s.label === 'rf')?.detail, 'radio-frequency')\n        })\n    })\n\n    describe('lw.completion->glossary.parseBibFile', () => {\n        const bibFile = 'glossary.bib'\n        const bibPath = get.path(fixture, bibFile)\n\n        it('should parse the bib file given by \\\\GlsXtrLoadResources', async () => {\n            readStub.withArgs(texPath).resolves(`\\\\GlsXtrLoadResources[src={${bibFile}}]`)\n            await lw.cache.refreshCache(texPath)\n            sinon.restore()\n\n            await glossary.parseBibFile(bibPath)\n\n            const suggestions = getSuggestions()\n            assert.ok(suggestions.find(item => item.label === 'fs' && item.detail?.includes('\\\\ensuremath{f_s}')))\n            assert.ok(suggestions.find(item => item.label === 'theta' && item.detail?.includes('\\\\ensuremath{\\\\theta}')))\n            assert.ok(suggestions.find(item => item.label === 'caesar' && item.detail?.includes('\\\\sortname{Gaius Julius}{Caesar}')))\n            assert.ok(suggestions.find(item => item.label === 'wellesley' && item.detail?.includes('\\\\sortname{Arthur}{Wellesley}')))\n            assert.ok(suggestions.find(item => item.label === 'wellington' && item.detail?.includes('Wellington')))\n        })\n\n        it('should parse the bib file given by \\\\glsbibdata', async () => {\n            readStub.withArgs(texPath).resolves(`\\\\glsbibdata{${bibFile}}`)\n            await lw.cache.refreshCache(texPath)\n            sinon.restore()\n\n            await glossary.parseBibFile(bibPath)\n\n            const suggestions = getSuggestions()\n            assert.ok(suggestions.find(item => item.label === 'fs' && item.detail?.includes('\\\\ensuremath{f_s}')))\n            assert.ok(suggestions.find(item => item.label === 'theta' && item.detail?.includes('\\\\ensuremath{\\\\theta}')))\n            assert.ok(suggestions.find(item => item.label === 'caesar' && item.detail?.includes('\\\\sortname{Gaius Julius}{Caesar}')))\n            assert.ok(suggestions.find(item => item.label === 'wellesley' && item.detail?.includes('\\\\sortname{Arthur}{Wellesley}')))\n            assert.ok(suggestions.find(item => item.label === 'wellington' && item.detail?.includes('Wellington')))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/23_completion_at.test.ts",
    "content": "import * as vscode from 'vscode'\nimport * as path from 'path'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { assert, get, mock, set, type TextDocument } from './utils'\nimport { provider } from '../../src/completion/completer/atsuggestion'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    const fixture = path.basename(__filename).split('.')[0]\n    const texPath = get.path(fixture, 'main.tex')\n    let document: TextDocument\n    let atSpy: sinon.SinonSpy\n\n    before(() => {\n        mock.init(lw, 'root', 'cache', 'parser', 'completion')\n        mock.activeTextEditor(get.path('main.tex'), '', {\n            languageId: 'latex',\n        })\n        document = vscode.window.activeTextEditor?.document as TextDocument\n        atSpy = sinon.spy(provider, 'from')\n    })\n\n    beforeEach(() => {\n        // Reset the trigger character\n        lw.completion.atProvider.updateTrigger()\n    })\n\n    after(() => {\n        sinon.restore()\n    })\n\n    describe('lw.completion->atsuggestion', () => {\n        function getSuggestions(content: string = '') {\n            return provider.from([content], {\n                uri: vscode.Uri.file(texPath),\n                langId: 'latex',\n                line: content,\n                position: new vscode.Position(0, content.length),\n            })\n        }\n\n        function getLabels(content: string = '') {\n            return getSuggestions(content).map((s) => s.label)\n        }\n\n        it('should invoke @-suggestion provider', () => {\n            atSpy.resetHistory()\n            document.setContent('@')\n            const pos = new vscode.Position(0, 1)\n            lw.completion.atProvider.provideCompletionItems(document, pos)\n            assert.strictEqual(atSpy.callCount, 1)\n        })\n\n        it('should provide @-suggestions', () => {\n            assert.ok(getLabels().includes('@{'))\n        })\n\n        it('should only provide @@ if multiple consecutive @ is typed', () => {\n            const labels = getLabels('@@')\n\n            assert.ok(labels.includes('@@'))\n            assert.ok(!labels.includes('@{'))\n        })\n\n        it('should follow `intellisense.atSuggestion.trigger.latex` and change the trigger character', () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n            atSpy.resetHistory()\n            document.setContent('{')\n            const pos = new vscode.Position(0, 1)\n            lw.completion.atProvider.provideCompletionItems(document, pos)\n            assert.strictEqual(atSpy.callCount, 1)\n        })\n\n        it('should follow `intellisense.atSuggestion.trigger.latex` and change the suggestion content', () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n\n            assert.ok(getLabels().includes('{@'))\n        })\n\n        it('should follow `intellisense.atSuggestion.trigger.latex` and handle multiple triggering characters case', () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n            const labels = getLabels('{{')\n\n            assert.ok(labels.includes('{{'))\n            assert.ok(!labels.includes('{@'))\n        })\n\n        it('should add new suggestions from `intellisense.atSuggestion.user`', async () => {\n            assert.ok(!getLabels().includes('@?'))\n            await set.codeConfig('intellisense.atSuggestion.user', { '@?': '\\\\sum' })\n            assert.ok(getLabels().includes('@?'))\n        })\n\n        it('should change existing suggestions from `intellisense.atSuggestion.user`', async () => {\n            let snippet = getSuggestions().find(s => s.label === '@+')?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.strictEqual(snippet.value, '\\\\bigcup')\n            await set.codeConfig('intellisense.atSuggestion.user', { '@+': '\\\\sum' })\n            snippet = getSuggestions().find(s => s.label === '@+')?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.strictEqual(snippet.value, '\\\\sum')\n        })\n\n        it('should remove existing suggestions from `intellisense.atSuggestion.user`', async () => {\n            assert.ok(getLabels().includes('@8'))\n            await set.codeConfig('intellisense.atSuggestion.user', { '@8': '' })\n            assert.ok(!getLabels().includes('@8'))\n        })\n\n        it('should add new suggestions with another triggering character', async () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n\n            assert.ok(!getLabels().includes('{?'))\n            await set.codeConfig('intellisense.atSuggestion.user', { '@?': '\\\\sum' })\n            assert.ok(getLabels().includes('{?'))\n        })\n\n        it('should change existing suggestions with another triggering character', async () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n\n            let snippet = getSuggestions().find(s => s.label === '{+')?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.strictEqual(snippet.value, '\\\\bigcup')\n            await set.codeConfig('intellisense.atSuggestion.user', { '@+': '\\\\sum' })\n            snippet = getSuggestions().find(s => s.label === '{+')?.insertText\n            assert.ok(snippet instanceof vscode.SnippetString)\n            assert.strictEqual(snippet.value, '\\\\sum')\n        })\n\n        it('should remove existing suggestions with another triggering character', async () => {\n            set.config('intellisense.atSuggestion.trigger.latex', '{')\n            lw.completion.atProvider.updateTrigger() // This appeared in main.ts, not loaded\n\n            assert.ok(getLabels().includes('{8'))\n            await set.codeConfig('intellisense.atSuggestion.user', { '@8': '' })\n            assert.ok(!getLabels().includes('{8'))\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/24_formatter_fixer.test.ts",
    "content": "import * as path from 'path'\nimport { assert } from './utils'\nimport { MathFixer } from '../../src/extras/math-fixer'\nimport { QuoteFixer } from '../../src/extras/quote-fixer'\n\ndescribe(path.basename(__filename).split('.')[0] + ':', () => {\n    describe('MathFixer', () => {\n        const fixer = new MathFixer()\n\n        it('should replace inline math $...$', () => {\n            const text = 'Hello $x^2$ world'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '\\\\(')\n            assert.strictEqual(edits[1].newText, '\\\\)')\n        })\n\n        it('should replace display math $$...$$', () => {\n            const text = 'Hello $$x^2$$ world'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '\\\\[')\n            assert.strictEqual(edits[1].newText, '\\\\]')\n        })\n\n        it('should ignore escaped dollar signs', () => {\n            const text = 'Cost is \\\\$10'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should handle mixed inline and display math', () => {\n            const text = 'Inline $a$ and display $$b$$'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 4)\n            assert.strictEqual(edits[0].newText, '\\\\(')\n            assert.strictEqual(edits[1].newText, '\\\\)')\n            assert.strictEqual(edits[2].newText, '\\\\[')\n            assert.strictEqual(edits[3].newText, '\\\\]')\n        })\n\n        it('should ignore math in verbatim environment', () => {\n            const text = '\\\\begin{verbatim}\\n$x$\\n\\\\end{verbatim}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore math in Verbatim environment (uppercase)', () => {\n            const text = '\\\\begin{Verbatim}\\n$x$\\n\\\\end{Verbatim}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore math in lstlisting environment', () => {\n            const text = '\\\\begin{lstlisting}\\n$x$\\n\\\\end{lstlisting}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore math in verb command', () => {\n            const text = '\\\\verb|$x$|'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore math in comments', () => {\n            const text = 'Normal $x$ % comment $y$'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '\\\\(')\n            assert.strictEqual(edits[1].newText, '\\\\)')\n        })\n\n        it('should handle multi-line content', () => {\n            const text = 'Line 1 $x$\\nLine 2 $$y$$'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 4)\n            assert.strictEqual(edits[0].newText, '\\\\(')\n            assert.strictEqual(edits[1].newText, '\\\\)')\n            assert.strictEqual(edits[2].newText, '\\\\[')\n            assert.strictEqual(edits[3].newText, '\\\\]')\n        })\n\n        it('should handle multiple inline math on same line', () => {\n            const text = 'Math $a$ then $b$ and $c$'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 6)\n        })\n\n        it('should correctly identify positions', () => {\n            const text = 'Start $x$ end'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits[0].range.start.line, 0)\n            assert.strictEqual(edits[0].range.start.character, 6)\n            assert.strictEqual(edits[1].range.start.line, 0)\n            assert.strictEqual(edits[1].range.start.character, 8)\n        })\n\n        it('should handle consecutive dollar signs as inline math', () => {\n            // Two consecutive $ are treated as opening and closing inline math\n            const text = 'Empty $$ delimiters'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '\\\\(')\n            assert.strictEqual(edits[1].newText, '\\\\)')\n        })\n\n        it('should handle actual display math', () => {\n            const text = 'Display $$x^2$$ math'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '\\\\[')\n            assert.strictEqual(edits[1].newText, '\\\\]')\n        })\n    })\n\n    describe('QuoteFixer', () => {\n        const fixer = new QuoteFixer()\n\n        it('should replace straight quotes \"...\"', () => {\n            const text = 'Hello \"world\"'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '``')\n            assert.strictEqual(edits[1].newText, \"''\")\n        })\n\n        it('should replace German quotes „...“', () => {\n            const text = 'Hello „world“'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '``')\n            assert.strictEqual(edits[1].newText, \"''\")\n        })\n\n\n        it('should ignore quotes in verbatim environment', () => {\n            const text = '\\\\begin{verbatim}\\n\"quote\"\\n\\\\end{verbatim}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore quotes in Verbatim environment (uppercase)', () => {\n            const text = '\\\\begin{Verbatim}\\n\"quote\"\\n\\\\end{Verbatim}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore quotes in lstlisting environment', () => {\n            const text = '\\\\begin{lstlisting}\\n\"quote\"\\n\\\\end{lstlisting}'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore quotes in verb command', () => {\n            const text = '\\\\verb|\"quote\"|'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 0)\n        })\n\n        it('should ignore quotes in comments', () => {\n            const text = 'Normal \"text\" % comment \"ignored\"'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '``')\n            assert.strictEqual(edits[1].newText, \"''\")\n        })\n\n        it('should handle multi-line content', () => {\n            const text = 'Line 1 \"quote\"\\nLine 2 „german“'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 4)\n            assert.strictEqual(edits[0].newText, '``')\n            assert.strictEqual(edits[1].newText, \"''\")\n            assert.strictEqual(edits[2].newText, '``')\n            assert.strictEqual(edits[3].newText, \"''\")\n        })\n\n        it('should handle multiple quotes on same line', () => {\n            const text = 'First \"quote\" and second \"quote\"'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 4)\n        })\n\n        it('should handle empty quotes', () => {\n            const text = 'Empty \"\" quotes'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 2)\n            assert.strictEqual(edits[0].newText, '``')\n            assert.strictEqual(edits[1].newText, \"''\")\n        })\n\n        it('should correctly identify positions', () => {\n            const text = 'Start \"text\" end'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits[0].range.start.line, 0)\n            assert.strictEqual(edits[0].range.start.character, 6)\n            assert.strictEqual(edits[1].range.start.line, 0)\n            assert.strictEqual(edits[1].range.start.character, 11)\n        })\n\n        it('should handle mixed quote types', () => {\n            const text = 'Standard \"quote\" and German „quote“'\n            const edits = fixer.getEdits(text)\n            assert.strictEqual(edits.length, 4)\n        })\n    })\n})\n"
  },
  {
    "path": "test/units/index.ts",
    "content": "import * as path from 'path'\nimport Mocha from 'mocha'\nimport { glob } from 'glob'\nimport { hooks } from './utils'\n\nexport function run(): Promise<void> {\n    // Create the mocha test\n    const mocha = new Mocha({\n        ui: 'bdd',\n        color: true,\n        timeout: process.env['LATEXWORKSHOP_CITEST'] ? 10000 : 5000,\n        retries: process.env['LATEXWORKSHOP_CITEST'] ? 2 : 0\n    })\n\n    mocha.suite.on('pre-require', (context) => {\n        context.describe.only = process.env['LATEXWORKSHOP_CITEST'] ? context.describe : context.describe.only\n        context.it.only = process.env['LATEXWORKSHOP_CITEST'] ? context.it : context.it.only\n    })\n\n    mocha.rootHooks(hooks)\n\n    ;(globalThis as any).mocha = mocha\n\n    return new Promise((resolve, reject) => {\n        glob.sync('**/**.test.js', { cwd: __dirname })\n            .filter(f => process.env['LATEXWORKSHOP_UNIT'] ? process.env['LATEXWORKSHOP_UNIT'].split(',').find(candidate => f.includes(candidate)) !== undefined : true)\n            .sort()\n            .forEach(f => mocha.addFile(path.resolve(__dirname, f)))\n        // Run the mocha test\n        import('../../src/main').then(() => {\n            mocha.run(failures => {\n                if (failures > 0) {\n                    reject(new Error(`${failures} tests failed.`))\n                } else {\n                    resolve()\n                }\n            })\n        }).catch(error => {\n            console.error(error)\n            return reject(error)\n        })\n    })\n}\n"
  },
  {
    "path": "test/units/utils.ts",
    "content": "import * as vscode from 'vscode'\nimport * as os from 'os'\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport * as nodeAssert from 'assert'\nimport * as sinon from 'sinon'\nimport { lw } from '../../src/lw'\nimport { log as lwLog } from '../../src/utils/logger'\n\ntype ExtendedAssert = typeof nodeAssert & {\n    listStrictEqual: <T>(actual: T[] | undefined, expected: T[] | undefined, message?: string | Error) => void,\n    pathStrictEqual: (actual: string | undefined, expected: string | undefined, message?: string | Error) => void,\n    pathNotStrictEqual: (actual: string | undefined, expected: string | undefined, message?: string | Error) => void,\n    hasLog: (message: string | RegExp) => void,\n    notHasLog: (message: string | RegExp) => void,\n    hasCompilerLog: (message: string | RegExp) => void\n}\nexport const assert: ExtendedAssert = nodeAssert as ExtendedAssert\nassert.listStrictEqual = <T>(actual: T[] | undefined, expected: T[] | undefined, message?: string | Error) => {\n    if (actual === undefined || expected === undefined) {\n        assert.strictEqual(actual, expected)\n    } else {\n        assert.deepStrictEqual(actual.sort(), expected.sort(), message)\n    }\n}\nfunction getPaths(actual: string | undefined, expected: string | undefined): [string, string] {\n    actual = path.normalize(actual ?? '.')\n    expected = path.normalize(expected ?? '.')\n    if (os.platform() === 'win32') {\n        actual = actual.replace(/^([a-zA-Z]):/, (_, p1: string) => p1.toLowerCase() + ':')\n        expected = expected.replace(/^([a-zA-Z]):/, (_, p1: string) => p1.toLowerCase() + ':')\n    }\n    return [actual, expected]\n}\nassert.pathStrictEqual = (actual: string | undefined, expected: string | undefined, message?: string | Error) => {\n    [actual, expected] = getPaths(actual, expected)\n    assert.strictEqual(path.relative(actual, expected), '', message ?? `Paths are not equal: ${actual} !== ${expected} .`)\n}\nassert.pathNotStrictEqual = (actual: string | undefined, expected: string | undefined, message?: string | Error) => {\n    [actual, expected] = getPaths(actual, expected)\n    assert.notStrictEqual(path.relative(actual, expected), '', message ?? `Paths are equal: ${actual} === ${expected} .`)\n}\nfunction hasLog(message: string | RegExp) {\n    return typeof message === 'string'\n        ? log.all().some(logMessage => logMessage.includes(lwLog.applyPlaceholders(message)))\n        : log.all().some(logMessage => message.exec(logMessage))\n}\nfunction hasCompilerLog(message: string | RegExp) {\n    return typeof message === 'string'\n        ? lwLog.getCachedLog().CACHED_COMPILER.some(logMessage => logMessage.includes(message))\n        : lwLog.getCachedLog().CACHED_COMPILER.some(logMessage => message.exec(logMessage))\n}\nassert.hasLog = (message: string | RegExp) => {\n    assert.ok(hasLog(message), '\\n' + log.all().join('\\n'))\n}\nassert.notHasLog = (message: string | RegExp) => {\n    assert.ok(!hasLog(message), '\\n' + log.all().join('\\n'))\n}\nassert.hasCompilerLog = (message: string | RegExp) => {\n    assert.ok(hasCompilerLog(message), '\\n' + lwLog.getCachedLog().CACHED_COMPILER.join('\\n'))\n}\n\nexport const get = {\n    path: (...paths: string[]) => {\n        const result = path.resolve(\n            vscode.workspace.workspaceFile?.fsPath ?? vscode.workspace.workspaceFolders?.[0].uri.fsPath ?? '',\n            ...paths\n        )\n        if (os.platform() === 'win32') {\n            return result.charAt(0).toLowerCase() + result.slice(1)\n        } else {\n            return result\n        }\n    },\n    compiler: {\n        log: () => lwLog.getCachedLog().CACHED_COMPILER.join('')\n    }\n}\n\nconst configs: Map<string, any> = new Map()\nconst changedConfigs: Set<string> = new Set()\nexport const set = {\n    root: (...paths: string[]) => {\n        const rootFile = get.path(...paths)\n        lw.root.file.path = rootFile\n        lw.root.file.langId = 'latex'\n        lw.root.dir.path = path.dirname(rootFile)\n        return rootFile\n    },\n    config: (section: string, value: any) => {\n        configs.set(section, value)\n    },\n    codeConfig: async (section: string, value: any) => {\n        changedConfigs.add(section)\n        await vscode.workspace.getConfiguration('latex-workshop').update(section, value)\n    }\n}\n\nexport const reset = {\n    root: () => {\n        lw.root.file.path = undefined\n        lw.root.dir.path = undefined\n    },\n    cache: () => {\n        lw.cache.reset()\n    },\n    config: async () => {\n        for (const section of changedConfigs.values()) {\n            await set.codeConfig(section, undefined)\n        }\n        changedConfigs.clear()\n        configs.clear()\n    },\n    log: () => {\n        lwLog.resetCachedLog()\n        _logStartIdx = 0\n        _logStopIdx = 0\n    }\n}\n\nlet _logStartIdx = 0\nlet _logStopIdx = 0\nexport const log = {\n    all: () => {\n        return lwLog.getCachedLog().CACHED_EXTLOG.slice(_logStartIdx, _logStopIdx ? _logStopIdx : undefined)\n    },\n    start: () => {\n        _logStartIdx = lwLog.getCachedLog().CACHED_EXTLOG.length\n    },\n    stop: () => {\n        _logStopIdx = lwLog.getCachedLog().CACHED_EXTLOG.length\n    }\n}\n\nexport function sleep(ms: number) {\n    return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport const mock = {\n    init: (obj: any, ...ignore: string[]) => {\n        mock.object(obj, ...ignore)\n        mock.config()\n    },\n    object: (obj: any, ...ignore: string[]) => {\n        const items = Object.getPrototypeOf(obj) === Object.prototype\n            ? Object.getOwnPropertyNames(obj)\n            : Object.getOwnPropertyNames(Object.getPrototypeOf(obj))\n        items.forEach(item => {\n            // Don't stub the unit to be tested or the logging/external functions.\n            if (ignore.includes(item) || ['file', 'log', 'external', 'constant'].includes(item)) {\n                return\n            }\n            if (typeof obj[item] === 'object') {\n                mock.object(obj[item])\n            } else if (typeof obj[item] === 'function' && obj[item].callCount === undefined) {\n                sinon.stub(obj, item)\n            }\n        })\n    },\n    config: () => {\n        const original = vscode.workspace.getConfiguration\n        sinon.stub(vscode.workspace, 'getConfiguration').callsFake((section?: string, scope?: vscode.ConfigurationScope | null) => {\n            function getConfig<T>(configName: string): T | undefined\n            function getConfig<T>(configName: string, defaultValue: T): T\n            function getConfig<T>(configName: string, defaultValue?: T): T | undefined {\n                if (configs.has(configName)) {\n                    return configs.get(configName) as T\n                }\n                return originalConfig.get(configName, defaultValue)\n            }\n            const originalConfig = original(section, scope)\n            const configItem: vscode.WorkspaceConfiguration = {\n                ...originalConfig,\n                get: getConfig\n            }\n            return configItem\n        })\n    },\n    textDocument: (filePath: string, content: string, params: { languageId?: string, isDirty?: boolean, isClosed?: boolean, scheme?: string } = {}) => {\n        return sinon.stub(vscode.workspace, 'textDocuments').value([ new TextDocument(filePath, content, params) ])\n    },\n    activeTextEditor: (filePath: string, content: string, params: { languageId?: string, isDirty?: boolean, isClosed?: boolean, scheme?: string, viewColumn?: vscode.ViewColumn } = {}) => {\n        return sinon.stub(vscode.window, 'activeTextEditor').value(new TextEditor(filePath, content, params))\n    }\n}\n\nexport const hooks = {\n    beforeEach: () => {\n        reset.log()\n    },\n    async afterEach(this: Mocha.Context) {\n        cacheLog(this)\n        reset.cache()\n        reset.root()\n        await reset.config()\n    }\n}\n\nfunction cacheLog(context: Mocha.Context) {\n    function sanitize(name: string): string {\n        return name.replace(/[^a-z0-9_]/gi, '_').replace(/_{2,}/gi, '_').toLowerCase()\n    }\n    const name = sanitize(context.currentTest?.title ?? '')\n\n    const cachedLog = lwLog.getCachedLog()\n    const folders = []\n    let parent = context.currentTest?.parent\n    while(parent && parent.title !== '') {\n        folders.unshift(sanitize(parent.title.replaceAll(':', '')))\n        parent = parent.parent\n    }\n    const logFolder = path.resolve(__dirname, '../../../test/log', 'unittest', ...folders)\n    fs.mkdirSync(logFolder, {recursive: true})\n    fs.writeFileSync(path.resolve(logFolder, `${name}.log`), cachedLog.CACHED_EXTLOG.join('\\n'))\n}\n\nexport class TextDocument implements vscode.TextDocument {\n    content: string\n    lines: string[]\n    uri: vscode.Uri\n    fileName: string\n    isUntitled: boolean = false\n    languageId: string\n    version: number = 0\n    isDirty: boolean\n    isClosed: boolean\n    eol: vscode.EndOfLine = vscode.EndOfLine.LF\n    lineCount: number\n\n    constructor(filePath: string, content: string, { languageId = 'latex', isDirty = false, isClosed = false, scheme = 'file' }: { languageId?: string, isDirty?: boolean, isClosed?: boolean, scheme?: string }) {\n        this.content = content\n        this.lines = content.split('\\n')\n        this.uri = scheme === 'file' ? vscode.Uri.file(filePath) : vscode.Uri.from({ scheme, path: filePath })\n        this.fileName = filePath\n        this.languageId = languageId\n        this.isDirty = isDirty\n        this.isClosed = isClosed\n        this.lineCount = this.lines.length\n    }\n    setContent(content: string) {\n        this.content = content\n        this.lines = content.split('\\n')\n        this.lineCount = this.lines.length\n    }\n    setLanguage(languageId: string) {\n        this.languageId = languageId\n    }\n    save(): Thenable<boolean> { throw new Error('Not implemented.') }\n    lineAt(lineOrPos: number | vscode.Position): vscode.TextLine {\n        const lineNumber = lineOrPos instanceof vscode.Position ? lineOrPos.line : lineOrPos\n        const text = this.content.split('\\n')[lineNumber]\n        return {\n            lineNumber,\n            text,\n            range: new vscode.Range(new vscode.Position(lineNumber, 0), new vscode.Position(lineNumber, text.length)),\n            rangeIncludingLineBreak: new vscode.Range(new vscode.Position(lineNumber, 0), new vscode.Position(lineNumber, text.length + 1)),\n            firstNonWhitespaceCharacterIndex: text.length - text.trimStart().length,\n            isEmptyOrWhitespace: text.trim() === ''\n        }\n    }\n    offsetAt(_: vscode.Position): number { throw new Error('Not implemented.') }\n    positionAt(_: number): vscode.Position { throw new Error('Not implemented.') }\n    getText(_?: vscode.Range): string { return this.content }\n    getWordRangeAtPosition(_p: vscode.Position, _r?: RegExp): vscode.Range | undefined { throw new Error('Not implemented.') }\n    validateRange(_: vscode.Range): vscode.Range { throw new Error('Not implemented.') }\n    validatePosition(_: vscode.Position): vscode.Position { throw new Error('Not implemented.') }\n}\n\nexport class TextEditor implements vscode.TextEditor {\n    document: TextDocument\n    selection: vscode.Selection = new vscode.Selection(new vscode.Position(0, 0), new vscode.Position(0, 0))\n    selections: vscode.Selection[] = [ this.selection ]\n    visibleRanges: vscode.Range[] = [ new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)) ]\n    options: vscode.TextEditorOptions = {}\n    viewColumn: vscode.ViewColumn | undefined = vscode.ViewColumn.Active\n\n    constructor(filePath: string, content: string, { languageId = 'latex', isDirty = false, isClosed = false, scheme = 'file', viewColumn = undefined }: { languageId?: string, isDirty?: boolean, isClosed?: boolean, scheme?: string, viewColumn?: vscode.ViewColumn }) {\n        this.document = new TextDocument(filePath, content, { languageId, isDirty, isClosed, scheme })\n        if (viewColumn !== undefined) {\n            this.viewColumn = viewColumn\n        }\n    }\n\n    setSelections(selections: vscode.Selection[]) {\n        this.selection = selections[0]\n        this.selections = selections\n    }\n    edit(_: (_: vscode.TextEditorEdit) => void): Thenable<boolean> { throw new Error('Not implemented.') }\n    insertSnippet(_: vscode.SnippetString): Thenable<boolean> { throw new Error('Not implemented.') }\n    setDecorations(_d: vscode.TextEditorDecorationType, _r: vscode.Range[] | vscode.DecorationOptions[]): void { throw new Error('Not implemented.') }\n    revealRange(_: vscode.Range): void { throw new Error('Not implemented.') }\n    show(): void { throw new Error('Not implemented.') }\n    hide(): void { throw new Error('Not implemented.') }\n}\n"
  },
  {
    "path": "tsconfig.eslint.json",
    "content": "{\n    \"extends\": \"./tsconfig.json\",\n    \"include\": [\n      \"src/**/*.ts\",\n      \"test/**/*.ts\",\n      \"dev/**/*.ts\",\n      \"dev/*.mjs\"\n    ],\n    \"compilerOptions\": {\n      \"allowJs\": true,\n      \"checkJs\": true\n    }\n}\n"
  },
  {
    "path": "tsconfig.eslint.viewer.json",
    "content": "{\n    \"extends\": \"./viewer/tsconfig.json\",\n    \"include\": [\n      \"viewer/**/*.ts\"\n    ],\n    \"exclude\": [\n      \"src/**\",\n      \"test/**\",\n      \"dev/**\"\n    ],\n    \"compilerOptions\": {\n      \"allowJs\": true,\n      \"checkJs\": true\n    }\n}\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"esModuleInterop\": true,\n        \"forceConsistentCasingInFileNames\": true,\n        \"lib\": [\n            \"es2021\"\n        ],\n        \"module\": \"commonjs\",\n        \"noFallthroughCasesInSwitch\": true,\n        \"noImplicitReturns\": true,\n        \"noUnusedLocals\": true,\n        \"noUnusedParameters\": true,\n        \"outDir\": \"out\",\n        \"resolveJsonModule\": true,\n        \"rootDir\": \".\",\n        \"skipLibCheck\": true,\n        \"sourceMap\": true,\n        \"strict\": true,\n        \"target\": \"es2021\",\n        \"baseUrl\": \"./\",\n        \"paths\": {\n            \"mathjax-full\": [\"types/mathjax-full\"]\n        }\n    },\n    \"exclude\": [\n        \"node_modules\",\n        \"viewer\"\n    ]\n}\n"
  },
  {
    "path": "types/latex-workshop-protocol-types/index.d.ts",
    "content": "\ntype SynctexData = {\n    page: number;\n    x: number;\n    y: number;\n    indicator: boolean;\n}\n\ntype SynctexRangeData = SynctexData & {\n    h: number;\n    v: number;\n    W: number;\n    H: number;\n}\n\nexport type ServerResponse = {\n    type: 'refresh',\n    pdfFileUri: string\n} | {\n    type: 'synctex',\n    data: SynctexData | SynctexRangeData[]\n} | {\n    type: 'synctex_result',\n    pdfFile: string, // vsls scheme\n    synctexData: SynctexData | SynctexRangeData\n} | {\n    type: 'reverse_synctex_result',\n    input: string, // input file path, in vsls scheme\n    line: number,\n    column: number,\n    textBeforeSelection: string,\n    textAfterSelection: string\n} | {\n    type: 'reload'\n}\n\nexport type PdfViewerParams = {\n    toolbar: number,\n    sidebar: {\n        open: 'off' | 'on' | 'persist',\n        view: 'thumbnails' | 'outline' | 'attachments' | 'layers' | 'persist',\n    }\n    scale: string,\n    trim: number,\n    scrollMode: number,\n    spreadMode: number,\n    hand: boolean,\n    invertMode: {\n        enabled: boolean,\n        brightness: number,\n        grayscale: number,\n        hueRotate: number,\n        invert: number,\n        sepia: number\n    },\n    color: {\n        light: {\n            pageColorsForeground: string,\n            pageColorsBackground: string,\n            backgroundColor: string,\n            pageBorderColor: string\n        },\n        dark: {\n            pageColorsForeground: string,\n            pageColorsBackground: string,\n            backgroundColor: string,\n            pageBorderColor: string\n        }\n    },\n    codeColorTheme: 'light' | 'dark',\n    keybindings: {\n        synctex: 'ctrl-click' | 'double-click'\n    },\n    reloadTransition: 'none' | 'fade'\n}\n\nexport type ClientRequest = {\n    type: 'open',\n    pdfFileUri: string\n} | {\n    type: 'loaded',\n    pdfFileUri: string\n} | {\n    type: 'external_link',\n    url: string\n} | {\n    type: 'ping'\n} | {\n    type: 'reverse_synctex',\n    pdfFileUri: string,\n    pos: [number, number],\n    page: number,\n    textBeforeSelection: string,\n    textAfterSelection: string\n} | {\n    type: 'add_log',\n    message: string\n} | {\n    type: 'copy',\n    content: string,\n    isMetaKey: boolean\n} | {\n    type: 'synctex',\n    line: number,\n    column: number,\n    filePath: string,\n    targetPdfFile: string,\n    indicator: 'none' | 'circle' | 'rectangle'\n}\n\nexport type PanelManagerResponse = {\n    type: 'restore_state',\n    state: PdfViewerState\n}\n\nexport type PanelRequest = {\n    type: 'initialized'\n} | {\n    type: 'keyboard_event',\n    event: any\n} | {\n    type: 'state',\n    state: PdfViewerState\n}\n\nexport type PdfViewerState = {\n    kind?: 'not_stored',\n    path?: string,\n    pdfFileUri?: string,\n    scale?: string,\n    scrollTop?: number,\n    scrollLeft?: number,\n    sidebarView?: number,\n    trim?: number,\n    scrollMode?: number,\n    spreadMode?: number,\n    synctexEnabled?: boolean,\n    autoReloadEnabled?: boolean\n}\n"
  },
  {
    "path": "types/mathjax-full/index.d.ts",
    "content": "import type { default as TexError } from 'mathjax-full/js/input/tex/TexError.js'\nimport type { TeX } from 'mathjax-full/js/input/tex.js'\nimport type { LiteElement } from 'mathjax-full/js/adaptors/lite/Element'\nimport type { LiteDocument } from 'mathjax-full/js/adaptors/lite/Document.js'\nimport type { LiteText } from 'mathjax-full/js/adaptors/lite/Text.js'\n\nexport type SupportedExtension =\n    'action' |\n    'ams' |\n    'amscd' |\n    'autoload' |\n    'base' |\n    'bbox' |\n    'boldsymbol' |\n    'braket' |\n    'bussproofs' |\n    'cancel' |\n    'cases' |\n    'centernot' |\n    'color' |\n    'colortbl' |\n    'colorv2' |\n    'configmacros' |\n    'empheq' |\n    'enclose' |\n    'extpfeil' |\n    'gensymb' |\n    'html' |\n    'mathtools' |\n    'mhchem' |\n    'newcommand' |\n    'noerrors' |\n    'noundefined' |\n    'physics' |\n    'require' |\n    'setoptions' |\n    'tagformat' |\n    'textcomp' |\n    'textmacros' |\n    'unicode' |\n    'upgreek' |\n    'verb'\n\nexport type MacrosOption = {\n    [name: string]: object;\n}\n\nexport type TexOption = {\n    packages?: readonly SupportedExtension[],\n    inlineMath?: readonly [string, string][],\n    displayMath?: readonly [string, string][],\n    processEscapes?: boolean,\n    processEnvironments?: boolean,\n    processRefs?: boolean,\n    digits?: RegExp,\n    tags?: 'all' | 'ams' | 'none',\n    tagSide?: 'right' | 'left',\n    tagIndent?: string,\n    useLabelIds?: boolean,\n    maxMacros?: number,\n    maxBuffer?: number,\n    baseURL?: string,\n    macros?: MacrosOption,\n    formatError?: (jax: TeX<LiteElement, LiteText, LiteDocument>, message: TexError) => unknown\n}\n\nexport type SvgOption = {\n    scale?: number,\n    minScale?: number,\n    mtextInheritFont?: boolean,\n    merrorInheritFont?: boolean,\n    mathmlSpacing?: boolean,\n    skipAttributes?: readonly { [attrname: string]: boolean },\n    exFactor?: number,\n    displayAlign?: 'left' | 'center' | 'right',\n    displayIndent?: number,\n    fontCache?: 'local' | 'global' | 'none',\n    internalSpeechTitles?: boolean\n}\n\nexport type ConvertOption = {\n    display?: boolean,\n    em?: number,\n    ex?: number,\n    containerWidth?: number,\n    lineWidth?: number,\n    scale?: number\n}\n"
  },
  {
    "path": "viewer/README.md",
    "content": "# Overview\n\nThe pdf viewer is based on [PDF.js](https://mozilla.github.io/pdf.js/) by Mozilla Foundation. Files are from the [prebuilt download version](https://mozilla.github.io/pdf.js/getting_started/#download). See a [related issue](https://github.com/mozilla/pdf.js/issues/9318#issuecomment-354192067).\n\nWe load `viewer.html` of PDF.js in `iframe` in [Webview](https://code.visualstudio.com/api/extension-guides/webview) of VS Code through a local Web [server](https://github.com/James-Yu/LaTeX-Workshop/blob/master/src/components/server.ts). The Webview's content including the `iframe` tag is generated by [Viewer.getPDFViewerContent](https://github.com/James-Yu/LaTeX-Workshop/blob/2fae02734190fb5664f002d0205c06024ff4a8cd/src/components/viewerlib/pdfviewerpanel.ts#L116). On the browser, we directly load `viewer.html`. This architecture enables us to load the same `viewer.html` both on VS Code and on the browser.\n\nWe control the PDF viewers on both the tab and the browser through WebSockets in the same way. The handler on the server side is defined as [Viewer.handler](https://github.com/James-Yu/LaTeX-Workshop/blob/2fae02734190fb5664f002d0205c06024ff4a8cd/src/components/viewer.ts#L231).\n\nWe provide additional features by setting up new event listeners in `latexworkshop.ts` for DOM objects in `viewer.html`. We do not and should not override functions defined by PDF.js.\n\nWe can see all the changes, [diff](https://github.com/James-Yu/LaTeX-Workshop/blob/master/dev/viewer/viewer.js.diff), we have made to `viewer.js`. We had better find a way to achieve this without modifying `viewer.js`.\n\n## Restoring the PDF viewer\n\nTo restore the PDF viewer at the startup of VS Code, we use the [serialization](https://code.visualstudio.com/api/extension-guides/webview#serialization) of Webview. The state of the PDF viewer is sent with [`window.parent.postMessage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/parent) in `latexworkshop.ts`. We can see the handling of saving the state in HTML generated by [Viewer.getPDFViewerContent](https://github.com/James-Yu/LaTeX-Workshop/blob/2fae02734190fb5664f002d0205c06024ff4a8cd/src/components/viewerlib/pdfviewerpanel.ts#L116).\n\nSince it is difficult to map WebSockets to tabs of VS Code, we do not use WebSockets to send the state of the PDF viewer.\n\n## Building\n\nJavaScript files, `latexworkshop.js`, and others, are generated in `../out/viewer/` from TypeScript files for ES2015 modules.\n\n## Limitation\n\nWe cannot use Node.js API and VS Code API in `latexworkshop.ts` since it is executed in the context of the browser. We cannot import TypeScript files under `../src` either.\n\n## Misc\n\nMozilla [asks](https://mozilla.github.io/pdf.js/getting_started/) web developers to reskin `viewer.html` because Firefox users would think bugs of the viewer on the web site are ones of Firefox and would report them to the PDF.js team. See [link](https://github.com/mozilla/pdf.js/issues/5609). Our usage does not cause such a problem.\n\n## PDFWorker\n\nBy default, PDFWorker is recreated every time reopening a PDF file. By setting `workerPort`,\nwe can reuse the PDFWorker:\n``` javascript\n  workerPort: {\n    value: new Worker('/build/pdf.worker.js'),\n    kind: OptionKind.WORKER\n  },\n```\nSee [mozilla/pdf.js/pull/8107](https://github.com/mozilla/pdf.js/pull/8107) for the details of the setting.\n\n## Architecture\n\n```mermaid\nflowchart TB\n  subgraph ExtensionHost[\"VS Code Extension Host\"]\n    LW[\"LaTeX Workshop\"]\n    Server[\"Server for PDF viewer \\n(Files and WebSocket)\\n127.0.0.1\"]\n    LW --- Server\n  end\n  subgraph VSCode[\"VS Code\"]\n    subgraph WebView[\"WebView (parent iframe)\"]\n      PDFViewer[\"PDF viewer (viewer.html)\"]\n    end\n  end\n  Server <--> PDFViewer\n  Server <--> Browser\n  subgraph Browser\n    PDFViewerB[\"PDF viewer (viewer.html)\"]\n  end\n```\n\n### VS Code Remote Development\n```mermaid\nflowchart TB\n  subgraph Remote[\"Remote machine or container\"]\n    subgraph ExtensionHost[\"VS Code Server (Extension Host)\"]\n      LW[\"LaTeX Workshop\"]\n      Server[\"Server for PDF viewer\\n(Files and WebSocket)\\n127.0.0.1 at remote\"]\n      LW --- Server\n    end\n  end\n  subgraph Local[\"Local machine\"]\n    subgraph VSCode[\"VS Code\"]\n      PortForwarder[\"Port forwarder\\n127.0.0.1 at local\"]\n      subgraph WebView[\"WebView (parent iframe)\"]\n        PDFViewer[\"PDF viewer (viewer.html)\"]\n      end\n    end\n    subgraph Browser\n      PDFViewerB[\"PDF viewer (viewer.html)\"]\n    end\n  end\n  PortForwarder <--> PDFViewer\n  PortForwarder <--> Browser\n  Server <--> PortForwarder\n```\n\n## Sequence diagrams\n\n### Opening a PDF file\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Server as WebSocket Server\n  participant WebServer as Web Server\n  Note over Viewer: load viewer.html\n  Note over Viewer: load latexworkshop.js\n  Viewer-)Server: open\n  Viewer->>WebServer: fetch /config.json\n  Note over Viewer: load viewer.js\n  Note over Viewer: webviewerloaded\n  Viewer->>Viewer: Set PDFViewerApplicationOptions\n  Note over Viewer: pagesinit\n  Note over Viewer: documentloaded\n  Viewer->>Viewer: Apply params\n  Note over Viewer: pagesloaded\n  Viewer-)Server: loaded\n```\n\n### Reloading a PDF file\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Server as WebSocket Server\n  Server-)Viewer: refresh\n  Note over Viewer: pagesinit\n  Note over Viewer: documentloaded\n  Note over Viewer: pagesloaded\n  Viewer-)Server: loaded\n```\n\n### Restoring the internal PDF viewer\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Server as WebSocket Server\n  participant WebServer as Web Server\n  participant Iframe as Parent iframe (VS Code WebView)\n  Note over Viewer: load viewer.html\n  Note over Viewer: load latexworkshop.js\n  Viewer-)Server: open\n  Viewer->>WebServer: fetch /config.json\n  Note over Viewer: load viewer.js\n  Note over Viewer: webviewerloaded\n  Viewer->>Viewer: Set PDFViewerApplicationOptions\n  Note over Viewer: pagesinit\n  Note over Viewer: documentloaded\n  Viewer->>Viewer: Apply params\n  Viewer-)+Iframe: initialized\n  Iframe--)-Viewer: restore_state\n  Viewer->>Viewer: Restore state\n  Note over Viewer: pagesloaded\n  Viewer-)Server: loaded\n```\n\n### Forward SyncTeX\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Server as WebSocket Server\n  Server-)Viewer: synctex\n```\n\n### Backward SyncTeX\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Server as WebSocket Server\n  Viewer-)Server: reverse_synctex\n```\n\n### When the internal PDF viewer status changed\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Iframe as Parent iframe (VS Code WebView)\n  participant ExtensionHost as Extension Host\n  Viewer-)Iframe: state\n  Iframe->>Iframe: Store the state\n  Iframe-)ExtensionHost: state\n```\n\n### KeyboardEvent\n\n```mermaid\nsequenceDiagram\n  participant Viewer as PDF Viewer\n  participant Iframe as Parent iframe (VS Code WebView)\n  Viewer-)Iframe: KeyboardEvent\n  Iframe-)Iframe: Dispatch KeyboardEvent\n```\n\n## Events emitted by `viewer.js`\n\nWhen opening a PDF file. In order.\n\n1. webviewerloaded\n2. DOMContentLoaded (not by `viewer.js`)\n3. baseviewerinit\n4. pagesinit\n5. documentloaded\n7. documentinit\n8. `PDF da551cb... [...] (PDF.js: 2.2.228)` (a log message is output)\n9. pagerendered\n1. pagesloaded\n1. textlayerrendered\n1. pagerendered\n1. textlayerrendered\n\nWhen reloading a PDF file. In order.\n\n1. pagesinit\n1. documentloaded\n1. documentinit\n1. `PDF da551cb... [...] (PDF.js: 2.2.228)` (a log message is output)\n1. pagerendered\n1. pagesloaded\n1. textlayerrendered\n1. pagerendered\n1. textlayerrendered\n\n## GitHub Codespaces\n```mermaid\nflowchart TB\n  subgraph Remote[\"Remote machine\"]\n    subgraph ExtensionHost[\"VS Code Server (Extension Host)\"]\n      LW[\"LaTeX Workshop\"]\n      Server[\"Server for PDF viewer\\n(Files and WebSocket)\\n127.0.0.1 at remote\"]\n      LW --- Server\n    end\n    PortForwarder\n  end\n  GitHub[\"github.dev\"]\n  GitHubPreview[\"githubpreview.dev\"]\n  subgraph Browser\n    subgraph WebView[\"parent iframe\"]\n      PDFViewer[\"PDF viewer (viewer.html)\"]\n    end\n  end\n  ExtensionHost <--> GitHub\n  Server <--> PortForwarder\n  PortForwarder <--> GitHubPreview\n  GitHub <--> Browser\n  GitHubPreview <--> PDFViewer\n```\n"
  },
  {
    "path": "viewer/components/connection.ts",
    "content": "import type { ClientRequest, PanelRequest, ServerResponse } from '../../types/latex-workshop-protocol-types/index'\nimport { refresh } from './refresh.js'\nimport { forwardSynctex } from './synctex.js'\nimport * as utils from './utils.js'\n\nlet server: string\nlet websocket: Promise<WebSocket>\n\nexport function initConnect() {\n    const scheme = 'https:' === window.location.protocol ? 'wss' : 'ws'\n    const path = window.location.pathname.substring(0, window.location.pathname.indexOf('viewer.html'))\n    server = `${scheme}://${window.location.hostname}:${window.location.port}${path}`\n    websocket = new Promise((resolve, reject) => {\n        const ws = new WebSocket(server)\n        ws.addEventListener('open', () => { resolve(ws) })\n        ws.addEventListener('error', () => reject(new Error(`Failed to connect to ${server}`)))\n    })\n    websocket.then((ws: WebSocket) => {\n        ws.addEventListener('message', handler)\n        ws.addEventListener('close', reconnect)\n        const openPack: ClientRequest = {\n            type: 'open',\n            pdfFileUri: utils.parseURL().pdfFileUri\n        }\n        void send(openPack)\n    }).catch((e) => console.error('Setting up connection port failed:', e))\n\n    // Send packets every 30 sec to prevent the connection closed by timeout.\n    const id = setInterval(async () => {\n        try {\n            await send({type: 'ping'})\n        }\n        catch {\n            clearInterval(id)\n        }\n    }, 30000)\n}\n\nexport async function send(message: ClientRequest) {\n    const ws = await websocket\n    if (ws.readyState === 1) {\n        ws.send(JSON.stringify(message))\n    }\n}\n\nexport function sendLog(message: string) {\n    void send({ type: 'add_log', message })\n}\n\nexport function sendPanel(msg: PanelRequest) {\n    if (!utils.isEmbedded()) {\n        return\n    }\n    window.parent?.postMessage(msg, '*')\n}\n\nfunction handler(event: MessageEvent<string>) {\n    const data = JSON.parse(event.data) as ServerResponse\n    switch (data.type) {\n        case 'synctex': {\n            forwardSynctex(data.data)\n            break\n        }\n        case 'refresh': {\n            void refresh()\n            break\n        }\n        case 'reload': {\n            location.reload()\n            break\n        }\n        default: {\n            break\n        }\n    }\n}\n\nasync function reconnect() {\n    const originalTitle = document.title\n    document.title = `[Disconnected] ${originalTitle}`\n    console.log('Closed: WebSocket to LaTeX Workshop.')\n\n    // Since WebSockets are disconnected when PC resumes from sleep,\n    // we have to reconnect. https://github.com/James-Yu/LaTeX-Workshop/pull/1812\n    await utils.sleep(3000)\n\n    let tries = 1\n    while (tries <= 10) {\n        console.log(`Try to reconnect to LaTeX Workshop: (${tries}/10).`)\n        try {\n            initConnect()\n            const ws = await websocket\n            if (ws.readyState !== 1) {\n                throw new Error(`Connection to ${server} is not open.`)\n            }\n            document.title = originalTitle\n            console.log('Reconnected: WebSocket to LaTeX Workshop.')\n            return\n        } catch (e) {\n            console.error(e)\n        }\n\n        await utils.sleep(1000 * (tries + 2))\n        tries++\n    }\n    console.error('Cannot reconnect to LaTeX Workshop.')\n}\n"
  },
  {
    "path": "viewer/components/gui.ts",
    "content": "import { send, sendPanel } from './connection.js'\nimport { scrollHistory } from './viewerhistory.js'\nimport { toggleSyncTeX } from './synctex.js'\nimport { toggleAutoRefresh } from './refresh.js'\nimport { getL10n } from './l10n.js'\nimport * as utils from './utils.js'\nimport type { PDFViewerApplicationType } from './interface.js'\n\ndeclare const PDFViewerApplication: PDFViewerApplicationType\n\nlet hideToolbarTimeout: number | undefined\nfunction hideToolbar(params: Awaited<ReturnType<typeof utils.getParams>>) {\n    if (typeof PDFViewerApplication === 'undefined') {\n        return\n    }\n    if (hideToolbarTimeout === undefined && !PDFViewerApplication.findBar.opened && !PDFViewerApplication.pdfSidebar.isOpen && !PDFViewerApplication.secondaryToolbar.isOpen) {\n        hideToolbarTimeout = setTimeout(() => {\n            const toolbarDom = document.getElementsByClassName('toolbar')[0]\n            toolbarDom.classList.add('hide')\n            hideToolbarTimeout = undefined\n        }, params.toolbar * 1000)\n    }\n}\nexport async function patchViewerUI() {\n    if (utils.isEmbedded()) {\n        // Cannot simply remove this element, as pdf.js indeed require it to\n        // bind listeners.\n        document.getElementById('printButton')!.style.display = 'none'\n    }\n\n    const params = await utils.getParams()\n\n    if (params.reloadTransition === 'none') {\n        const css = document.styleSheets[document.styleSheets.length - 1]\n        css.insertRule(\n`.page-loading-mask.remove {\n    transition: none !important;\n}`)\n    }\n\n    if (params.toolbar === 0) {\n        document.getElementsByClassName('toolbar')[0]?.classList.remove('hide')\n        document.getElementById('viewerContainer')!.style.top = '32px'\n    }\n\n    document.getElementById('outerContainer')!.onmouseleave = () => {\n        if (params.toolbar !== 0) {\n            hideToolbar(params)\n        }\n    }\n\n    document.getElementById('outerContainer')!.onmousemove = (e) => {\n        if (params.toolbar === 0) {\n            return\n        }\n        if (e.clientY <= 64) {\n            if (hideToolbarTimeout) {\n                clearTimeout(hideToolbarTimeout)\n                hideToolbarTimeout = undefined\n            }\n            showToolbar()\n        } else {\n            hideToolbar(params)\n        }\n    }\n\n    document.getElementById('sidebarResizer')?.classList.add('hidden')\n    document.getElementById('firstPage')?.previousElementSibling?.classList.add('visibleLargeView')\n\n    const template = document.createElement('template')\n    template.innerHTML =\n`<button id=\"TrimButton\" class=\"toolbarButton labeled\" type=\"button\" title=\"${getL10n('trimMargin')}\" tabindex=\"70\">\n    <label for=\"trimPct\">${getL10n('trimMargin')}</label>\n    <input type=\"number\" id=\"trimPct\" name=\"trimPct\" min=\"0\" max=\"99\" value=\"0\">\n    <label for=\"trimPct\">%</label>\n</button>\n<button id=\"synctexOnButton\" class=\"toolbarButton labeled\" type=\"button\" title=\"${getL10n('enableSyncTeX')}\" tabindex=\"71\">\n    <input id=\"synctexOn\" type=\"checkbox\" checked><span>${getL10n('enableSyncTeX')}</span>\n</button>\n<button id=\"autoRefreshOnButton\" class=\"toolbarButton labeled\" type=\"button\" title=\"${getL10n('enableRefresh')}\" tabindex=\"72\">\n    <input id=\"autoRefreshOn\" type=\"checkbox\" checked><span>${getL10n('enableRefresh')}</span>\n</button>\n<div class=\"horizontalToolbarSeparator\"></div>`\n    let anchor: HTMLElement | Element = document.getElementById('documentProperties')!\n    for (const node of template.content.childNodes) {\n        anchor.parentNode?.insertBefore(node, anchor)\n    }\n    const trimButton = document.getElementById('TrimButton')! as HTMLButtonElement\n    trimButton.addEventListener('click', (e) => {\n        e.stopPropagation()\n    })\n    registerSynctexCheckBox()\n    registerAutoReloadCheckBox()\n\n    template.innerHTML =\n`<!-- History back button, useful in the embedded viewer -->\n<button class=\"toolbarButton findPrevious\" title=\"${getL10n('navBack')} (←)\" id=\"historyBack\">\n  <span>Back</span>\n</button>\n<button class=\"toolbarButton findNext\" title=\"${getL10n('navForward')} (⇧←)\" id=\"historyForward\">\n  <span>Forward</span>\n</button>`\n    anchor = document.getElementById('sidebarToggleButton')!.nextElementSibling!\n    for (const node of template.content.childNodes) {\n        anchor.parentNode?.insertBefore(node, anchor)\n    }\n\n    template.innerHTML = '<div id=\"synctex-indicator\"></div>'\n    anchor = document.getElementById('viewerContainer')!\n    for (const node of template.content.childNodes) {\n        anchor.appendChild(node)\n    }\n}\n\nfunction registerSynctexCheckBox() {\n    const synctexOn = document.getElementById('synctexOn')! as HTMLInputElement\n    const synctexOnButton = document.getElementById('synctexOnButton')! as HTMLInputElement\n    synctexOnButton.addEventListener('click', (e) => {\n        synctexOn.checked = toggleSyncTeX()\n        e.stopPropagation()\n        // PDFViewerApplication.secondaryToolbar.close()\n    })\n}\n\nfunction registerAutoReloadCheckBox() {\n    const autoRefreshOn = document.getElementById('autoRefreshOn')! as HTMLInputElement\n    const autoRefreshOnButton = document.getElementById('autoRefreshOnButton')! as HTMLButtonElement\n    autoRefreshOnButton.addEventListener('click', (e) => {\n        autoRefreshOn.checked = toggleAutoRefresh()\n        e.stopPropagation()\n        // PDFViewerApplication.secondaryToolbar.close()\n    })\n}\n\nexport function registerKeyBind() {\n    // browser and embed keyboard bindings\n    window.addEventListener('keydown', (evt: KeyboardEvent) => {\n        // Following are shortcuts when focus is not in inputs, e.g., search\n        // box or page input\n        if ((evt.target as HTMLElement).nodeName === 'INPUT') {\n            return\n        }\n\n        if (evt.key === 'Backspace') {\n            scrollHistory.back()\n        }\n        if (evt.key === 'Backspace' && evt.shiftKey) {\n            scrollHistory.forward()\n        }\n\n        // Configure VIM-like shortcut keys\n        if (!evt.altKey && !evt.ctrlKey && !evt.metaKey && ['J', 'K', 'H', 'L'].includes(evt.key)) {\n            evt.stopImmediatePropagation()\n            const container = document.getElementById('viewerContainer')!\n\n            const configMap: {[key: string]: ScrollToOptions} = {\n                'J': { top: evt.repeat ? 20 : 40 },\n                'K': { top: evt.repeat ? -20 : -40 },\n                'H': { left: evt.repeat ? -20 : -40 },\n                'L': { left: evt.repeat ? 20 : 40 },\n            }\n\n            if (configMap[evt.key]) {\n                container.scrollBy({ ...configMap[evt.key], behavior: 'smooth' })\n            }\n        }\n    })\n\n    const setHistory = () => {\n        const container = document.getElementById('viewerContainer')!\n        // set positions before and after clicking to viewerHistory\n        scrollHistory.set(container.scrollTop)\n        setTimeout(() => { scrollHistory.set(container.scrollTop) }, 500)\n    }\n\n    document.getElementById('viewerContainer')!.addEventListener('click', setHistory)\n    document.getElementById('sidebarContainer')!.addEventListener('click', setHistory)\n\n    // back button (mostly useful for the embedded viewer)\n    document.getElementById('historyBack')!.addEventListener('click', () => { scrollHistory.back() })\n    document.getElementById('historyForward')!.addEventListener('click', () => { scrollHistory.forward() })\n\n    document.addEventListener('mousedown', (ev) => {\n        if(ev.button === 3) { scrollHistory.back() }\n        if(ev.button === 4) { scrollHistory.forward() }\n    })\n\n    // Embed-only keyboard bindings\n    if (!utils.isEmbedded()) {\n        return\n    }\n\n    // if we're embedded we cannot open external links here. So we intercept clicks and forward them to the extension\n    document.addEventListener('click', (e) => {\n        const target = e.target as HTMLAnchorElement\n        if (target.nodeName === 'A' && !target.href.startsWith(window.location.href) && !target.href.startsWith('blob:')) { // is external link\n            void send({ type:'external_link', url:target.href })\n            e.preventDefault()\n        }\n    })\n\n    window.addEventListener('keydown', (evt: KeyboardEvent) => {\n        if (evt.key === 'c' && (evt.ctrlKey || evt.metaKey)) {\n            const selection = window.getSelection()\n            if (selection !== null && selection.toString().length > 0) {\n                void send({ type: 'copy', content: selection.toString(), isMetaKey: evt.metaKey })\n            }\n        }\n\n        // Chrome's usual Alt-Left/Right (Command-Left/Right on OSX) for history\n        // Back/Forward don't work in the embedded viewer, so we simulate them.\n        if (navigator.userAgent.includes('Mac OS') ? evt.metaKey : evt.altKey) {\n            if (evt.key === 'ArrowLeft') {\n                scrollHistory.back()\n            } else if(evt.key === 'ArrowRight') {\n                scrollHistory.forward()\n            }\n        }\n    })\n\n    // To enable keyboard shortcuts of VS Code when the iframe is focused,\n    // we have to dispatch keyboard events in the parent window.\n    // See https://github.com/microsoft/vscode/issues/65452#issuecomment-586036474\n    document.addEventListener('keydown', e => {\n        const obj = {\n            altKey: e.altKey,\n            code: e.code,\n            keyCode: e.keyCode,\n            ctrlKey: e.ctrlKey,\n            isComposing: e.isComposing,\n            key: e.key,\n            location: e.location,\n            metaKey: e.metaKey,\n            repeat: e.repeat,\n            shiftKey: e.shiftKey\n        }\n        if (utils.isPdfjsShortcut(obj)) {\n            return\n        }\n        sendPanel({\n            type: 'keyboard_event',\n            event: obj\n        })\n    })\n}\n\nexport function repositionAnnotation() {\n    for (const anno of document.getElementsByClassName('textAnnotation') as HTMLCollectionOf<HTMLElement>) {\n        if (parseFloat(anno.style.left) <= 50) {\n            continue\n        }\n        for (const popupWrapper of anno.getElementsByClassName('popupWrapper') as HTMLCollectionOf<HTMLElement>) {\n            popupWrapper.style.right = '100%'\n            popupWrapper.style.left = ''\n        }\n        for (const popup of anno.getElementsByClassName('popup') as HTMLCollectionOf<HTMLElement>) {\n            popup.style.right = '0px'\n        }\n    }\n}\n\nfunction showToolbar() {\n    const toolbarDom = document.getElementsByClassName('toolbar')[0]\n    toolbarDom.classList.remove('hide')\n}\n\nexport function registerPersistentState() {\n    PDFViewerApplication.eventBus.on('sidebarviewchanged', () => {\n        const sidebarOpen = PDFViewerApplication.pdfSidebar.isOpen\n        localStorage.setItem('lw-pdf-sidebar-open', sidebarOpen.toString())\n        if (sidebarOpen) {\n            localStorage.setItem('lw-pdf-sidebar-view', PDFViewerApplication.pdfSidebar.visibleView.toString())\n        }\n    })\n}\n"
  },
  {
    "path": "viewer/components/interface.ts",
    "content": "export type PdfjsEventName\n    = 'documentloaded'\n    | 'pagesinit'\n    | 'pagesloaded'\n    | 'pagerendered'\n    | 'scalechanged'\n    | 'zoomin'\n    | 'zoomout'\n    | 'zoomreset'\n    | 'scrollmodechanged'\n    | 'spreadmodechanged'\n    | 'pagenumberchanged'\n    | 'rotationchanging'\n    | 'sidebarviewchanged'\n\ntype PDFViewerPage = {\n    viewport: {\n        rawDims: {\n            pageHeight: number,\n            pageWidth: number,\n            pageX: number,\n            pageY: number\n        },\n        rotation: number,\n        convertToViewportPoint(x: number, y: number): [number, number]\n    },\n    canvas: HTMLCanvasElement | undefined,\n    div: HTMLDivElement,\n    getPagePoint(x: number, y: number): [number, number],\n    get renderingState(): RenderingStates\n}\n\nexport enum RenderingStates {\n    INITIAL = 0,\n    RUNNING = 1,\n    PAUSED = 2,\n    FINISHED = 3,\n}\n\nexport type PDFViewerApplicationType = {\n    eventBus: {\n        on: (eventName: PdfjsEventName, listener: () => void) => void,\n        off: (eventName: PdfjsEventName, listener: () => void) => void,\n        dispatch: (eventName: string, payload: any) => void\n    },\n    findBar: {\n        opened: boolean,\n        open(): void\n    },\n    initializedPromise: Promise<void>,\n    isViewerEmbedded: boolean,\n    pdfViewer: {\n        _currentScale: number,\n        _getVisiblePages(): { first: number, last: number, views: { id: number, x: number, y: number, view: PDFViewerPage, percent: number }[], ids: Set<number> },\n        _pages: PDFViewerPage[],\n        currentPageNumber: number,\n        currentScaleValue: string,\n        scrollMode: number,\n        spreadMode: number\n    },\n    pdfCursorTools: {\n        switchTool(tool: 0 | 1): void\n    },\n    pdfSidebar: {\n        isOpen: boolean,\n        visibleView: number,\n        switchView(view: number): void,\n        open(): void,\n        close(): void\n    },\n    secondaryToolbar: {\n        close: () => void,\n        isOpen: boolean\n    },\n    load(doc: any): void\n}\n\nexport type PDFViewerApplicationOptionsType = {\n    set(name: string, value: unknown): void,\n    setAll(options: unknown): void\n}\n"
  },
  {
    "path": "viewer/components/l10n.ts",
    "content": "export function getL10n(text: 'enableSyncTeX' | 'enableRefresh' | 'trimMargin' | 'navBack' | 'navForward'): string {\n  const keys = Object.keys(l10n[text])\n  const lang = navigator.language\n  if (keys.includes(lang)) {\n    return l10n[text][lang]\n  }\n  // A language variant\n  const key = keys.find(candidate => candidate.startsWith(lang))\n  if (key !== undefined) {\n    return l10n[text][key]\n  }\n  return l10n[text]['en-US']\n}\n\nconst enableSyncTeX: {[lang: string]: string} = {\n  'ach': 'Tye kan SyncTeX',\n  'af': 'Skakel SyncTeX aan',\n  'an': 'Activar SyncTeX',\n  'ar': 'تمكين SyncTeX',\n  'ast': 'Activar SyncTeX',\n  'az': 'SyncTeX-i aktiv et',\n  'be': 'Уключыць SyncTeX',\n  'bg': 'Активиране на SyncTeX',\n  'bn': 'SyncTeX সক্রিয় করুন',\n  'bo': 'SyncTeX ལྕོགས་སྒྲིག་འབད',\n  'br': 'Gweredekaat SyncTeX',\n  'brx': 'SyncTeX सिंगथानाय',\n  'bs': 'Omogući SyncTeX',\n  'ca': 'Habilitar SyncTeX',\n  'cak': 'Xyaloj SyncTeX',\n  'ckb': 'چالاککردنی SyncTeX',\n  'cs': 'Povolit SyncTeX',\n  'cy': 'Galluogi SyncTeX',\n  'da': 'Aktivér SyncTeX',\n  'de': 'SyncTeX aktivieren',\n  'dsb': 'SyncTeX zmóžniś',\n  'el': 'Ενεργοποίηση SyncTeX',\n  'en-CA': 'Enable SyncTeX',\n  'en-GB': 'Enable SyncTeX',\n  'en-US': 'Enable SyncTeX',\n  'eo': 'Ebligi SyncTeX',\n  'es-AR': 'Habilitar SyncTeX',\n  'es-CL': 'Habilitar SyncTeX',\n  'es-ES': 'Habilitar SyncTeX',\n  'es-MX': 'Habilitar SyncTeX',\n  'et': 'Luba SyncTeX',\n  'eu': 'Gaitu SyncTeX',\n  'fa': 'فعال‌سازی SyncTeX',\n  'ff': 'Danndinore SyncTeX',\n  'fi': 'Ota SyncTeX käyttöön',\n  'fr': 'Activer SyncTeX',\n  'fur': 'Abilitâ SyncTeX',\n  'fy-NL': 'SyncTeX ynskeakelje',\n  'ga-IE': 'Cumasaigh SyncTeX',\n  'gd': 'Cuir an comas SyncTeX',\n  'gl': 'Habilitar SyncTeX',\n  'gn': 'Eñepyrũ SyncTeX',\n  'gu-IN': 'SyncTeX સક્રિય કરો',\n  'he': 'הפעל SyncTeX',\n  'hi-IN': 'SyncTeX सक्षम करें',\n  'hr': 'Omogući SyncTeX',\n  'hsb': 'SyncTeX zmóžnić',\n  'hu': 'SyncTeX engedélyezése',\n  'hy-AM': 'Միացնել SyncTeX',\n  'hye': 'Միացնել SyncTeX',\n  'ia': 'Activar SyncTeX',\n  'id': 'Aktifkan SyncTeX',\n  'is': 'Virkja SyncTeX',\n  'it': 'Abilita SyncTeX',\n  'ja': 'SyncTeX を有効にする',\n  'ka': 'გააქტიურეთ SyncTeX',\n  'kab': 'Ssexsemeɣ SyncTeX',\n  'kk': 'SyncTeX іске қосу',\n  'km': 'អនុញ្ញាត SyncTeX',\n  'kn': 'SyncTeX ಸಕ್ರಿಯಗೊಳಿಸಿ',\n  'ko': 'SyncTeX 활성화',\n  'lij': 'Abilîta SyncTeX',\n  'lo': 'ເປີດໃຊ້ SyncTeX',\n  'lt': 'Įgalinti SyncTeX',\n  'ltg': 'Ītuorot SyncTeX',\n  'lv': 'Iespējot SyncTeX',\n  'meh': 'Activar SyncTeX',\n  'mk': 'Овозможи SyncTeX',\n  'mr': 'SyncTeX सक्षम करा',\n  'ms': 'Dayakan SyncTeX',\n  'my': 'SyncTeX ကိုဖွင့်ပါ',\n  'nb-NO': 'Aktiver SyncTeX',\n  'ne-NP': 'SyncTeX सक्षम गर्नुहोस्',\n  'nl': 'SyncTeX inschakelen',\n  'nn-NO': 'Aktiver SyncTeX',\n  'oc': 'Activar SyncTeX',\n  'pa-IN': 'SyncTeX ਸਕ੍ਰਿਯ ਕਰੋ',\n  'pl': 'Włącz SyncTeX',\n  'pt-BR': 'Habilitar SyncTeX',\n  'pt-PT': 'Ativar SyncTeX',\n  'rm': 'Activar SyncTeX',\n  'ro': 'Activează SyncTeX',\n  'ru': 'Включить SyncTeX',\n  'sat': 'SyncTeX ᱤᱠᱤᱭ ᱛᱟᱱᱚᱢ',\n  'sc': 'Abilita SyncTeX',\n  'scn': 'Abilitari SyncTeX',\n  'sco': 'Enable SyncTeX',\n  'si': 'SyncTeX සක්‍රීය කරන්න',\n  'sk': 'Povoliť SyncTeX',\n  'skr': 'SyncTeX کو چالو کریں',\n  'sl': 'Omogoči SyncTeX',\n  'son': 'SyncTeX dandih',\n  'sq': 'Aktivizo SyncTeX',\n  'sr': 'Омогући SyncTeX',\n  'sv-SE': 'Aktivera SyncTeX',\n  'szl': 'Aktywować SyncTeX',\n  'ta': 'SyncTeX ஐ இயக்கவும்',\n  'te': 'SyncTeX ను ప్రారంభించు',\n  'tg': 'Фаъол кардани SyncTeX',\n  'th': 'เปิดใช้ SyncTeX',\n  'tl': 'Paganahin ang SyncTeX',\n  'tr': 'SyncTeX\\'i etkinleştir',\n  'trs': 'SyncTeX\\'i etkinleştir',\n  'uk': 'Увімкнути SyncTeX',\n  'ur': 'SyncTeX کو فعال کریں',\n  'uz': 'SyncTeX-ni yoqing',\n  'vi': 'Bật SyncTeX',\n  'wo': 'Suqali SyncTeX',\n  'xh': 'Vula i-SyncTeX',\n  'zh-CN': '启用SyncTeX',\n  'zh-TW': '啟用SyncTeX'\n}\n\nconst enableRefresh: {[lang: string]: string} = {\n  'ach': 'Yaki alokute kerom kwede rot meka',\n  'af': 'Aktiveer outo-verfris',\n  'an': 'Activar auto-refrés',\n  'ar': 'تمكين التحديث التلقائي',\n  'ast': 'Activar autoactualización',\n  'az': 'Avto-yeniləməni aktiv edin',\n  'be': 'Уключыць аўтаматычнае абнаўленне',\n  'bg': 'Разрешаване на автоматично опресняване',\n  'bn': 'স্বয়ংক্রিয় রিফ্রেশ সক্রিয় করুন',\n  'bo': 'རང་འགྱུར་བདེན་འབེབས་འབད།',\n  'br': 'Gweredekaat adneveziñ emgefre',\n  'brx': 'आथोरिफ्रेश संगोनाय फुंगाव',\n  'bs': 'Omogući automatsko osvježavanje',\n  'ca': 'Activa l\\'autoactualització',\n  'cak': 'Xuwan naj b’echb’äl k’ak’itz’oji’ik',\n  'ckb': 'چالاککردنی نوێکردنەوەی خۆکار',\n  'cs': 'Povolit automatické obnovení',\n  'cy': 'Galluogi ail-adnewyddu awtomatig',\n  'da': 'Aktivér automatisk opdatering',\n  'de': 'Automatische Aktualisierung aktivieren',\n  'dsb': 'Awtomatiski wótnowišk wótmožńiś',\n  'el': 'Ενεργοποίηση αυτόματης ανανέωσης',\n  'en-CA': 'Enable auto-refresh',\n  'en-GB': 'Enable auto-refresh',\n  'en-US': 'Enable auto-refresh',\n  'eo': 'Ebligi aŭtomatan refreŝigon',\n  'es-AR': 'Habilitar actualización automática',\n  'es-CL': 'Habilitar actualización automática',\n  'es-ES': 'Habilitar actualización automática',\n  'es-MX': 'Habilitar actualización automática',\n  'et': 'Luba automaatne värskendus',\n  'eu': 'Gaitu autoeguneratzea',\n  'fa': 'فعال کردن تازه‌سازی خودکار',\n  'ff': 'Ñiwtii laabi e sokkude',\n  'fi': 'Ota automaattinen päivitys käyttöön',\n  'fr': 'Activer l\\'actualisation automatique',\n  'fur': 'Active l\\'aggiornamînt automatic',\n  'fy-NL': 'Automatysk fernije ynskeakelje',\n  'ga-IE': 'Cumasaigh an t-athnuachan uathoibríoch',\n  'gd': 'Cuir an comas ùrachadh fèin-ghluasadach',\n  'gl': 'Activar actualización automática',\n  'gn': 'Moinge ñepyrũmby jepoka guive',\n  'gu-IN': 'આટોમેટિક રિફ્રેશ સક્રિય કરો',\n  'he': 'הפעל רענון אוטומטי',\n  'hi-IN': 'स्वचालित ताज़ा करें सक्षम करें',\n  'hr': 'Omogući automatsko osvježavanje',\n  'hsb': 'Awtomatiski wobnowić',\n  'hu': 'Automatikus frissítés engedélyezése',\n  'hy-AM': 'Ակտիվացնել ավտոմատ թարմացումը',\n  'hye': 'Ակտիվացնել ավտոմատ թարմացումը',\n  'ia': 'Activar auto-refrescar',\n  'id': 'Aktifkan penyegaran otomatis',\n  'is': 'Virkja sjálfvirka endurnýjun',\n  'it': 'Abilita aggiornamento automatico',\n  'ja': '自動リフレッシュを有効にする',\n  'ka': 'ავტომატური განახლების ჩართვა',\n  'kab': 'Seldek asebsed ameslayen',\n  'kk': 'Автоматты жаңартуды қосу',\n  'km': 'បើកការបន្តផ្សាយដោយស្វ័យប្រវត្តិ',\n  'kn': 'ಸ್ವಯಂ-ರಿಫ್ರೆಶ್ ಅನ್ನು ಸಕ್ರಿಯ ಮಾಡಿ',\n  'ko': '자동 새로 고침 활성화',\n  'lij': 'Abilita aggiornamento automatico',\n  'lo': 'ເປີດໃຊ້ການຟື້ນຟູອັດຕະໂນມັດ',\n  'lt': 'Įjungti automatinį atnaujinimą',\n  'ltg': 'Īstot auzašgruodišonu',\n  'lv': 'Iespējot automātisko atsvaidzināšanu',\n  'meh': 'Habilitar actualización automática',\n  'mk': 'Овозможи автоматско освежување',\n  'mr': 'स्वयं-रिफ्रेश सक्षम करा',\n  'ms': 'Dayakan penyegaran automatik',\n  'my': 'အလိုအလျောက်ပြန်လည်ဖြစ်စေခြင်းကိုဖွင့်ပါ',\n  'nb-NO': 'Aktiver automatisk oppdatering',\n  'ne-NP': 'स्वत: रिफ्रेश सक्षम गर्नुहोस्',\n  'nl': 'Automatisch vernieuwen inschakelen',\n  'nn-NO': 'Aktiver automatisk oppdatering',\n  'oc': 'Activar l\\'actualizacion automatica',\n  'pa-IN': 'ਸਵੈ-ਤਾਜ਼ਗੀ ਨੂੰ ਯੋਗ ਕਰੋ',\n  'pl': 'Włącz automatyczne odświeżanie',\n  'pt-BR': 'Ativar atualização automática',\n  'pt-PT': 'Ativar atualização automática',\n  'rm': 'Activar refresch automat',\n  'ro': 'Permite reîmprospătarea automată',\n  'ru': 'Включить автообновление',\n  'sat': 'ᱟᱝᱞᱟ ᱯᱟᱹᱲᱷᱮᱥ ᱥᱤᱥᱟᱨᱣᱟ ᱠᱚᱱᱚᱜᱟ',\n  'sc': 'Abilita s’aggiornamentu automàticu',\n  'scn': 'Abilita aggiornamentu automaticu',\n  'sco': 'Enable auto-refresh',\n  'si': 'ස්වයංක්‍රීය නවීකරණය සක්‍රිය කරන්න',\n  'sk': 'Povoliť automatické obnovenie',\n  'skr': 'خودکار تازہ کاری فعال کریں',\n  'sl': 'Omogoči samodežno osveževanje',\n  'son': 'Enable auto-refresh',\n  'sq': 'Aktivizo rifreskimin automatik',\n  'sr': 'Омогући аутоматско освежавање',\n  'sv-SE': 'Aktivera automatisk uppdatering',\n  'szl': 'Włącz auto-odświeżanie',\n  'ta': 'தானியங்கும் புதுப்பிப்பை இயக்கவும்',\n  'te': 'ఆటో-రిఫ్రెష్‌ను ప్రారంభించండి',\n  'tg': 'Фаъол кардани навсозии худкор',\n  'th': 'เปิดใช้งานการรีเฟรชอัตโนมัติ',\n  'tl': 'Paganahin ang auto-refresh',\n  'tr': 'Otomatik yenilemeyi etkinleştir',\n  'trs': 'Enable auto-refresh',\n  'uk': 'Увімкнути автоматичне оновлення',\n  'ur': 'آٹو ریفریش کو فعال کریں',\n  'uz': 'Avto yangilashni yoqing',\n  'vi': 'Bật tự động làm mới',\n  'wo': 'Suqali sëfëlu autogeen',\n  'xh': 'Yenza uhlaziyo oluzenzekelayo',\n  'zh-CN': '启用自动刷新',\n  'zh-TW': '啟用自動重新整理'\n}\n\nconst trimMargin: {[lang: string]: string} = {\n  'ach': 'Myero mar margine ki',\n  'af': 'Trim marge met',\n  'an': 'Recortar margen por',\n  'ar': 'قلل الهامش بنسبة',\n  'ast': 'Recortar marxe por',\n  'az': 'Kənar payını X% qədər azaldın',\n  'be': 'Паменшыць маржу на',\n  'bg': 'Намалете маржа с',\n  'bn': 'প্রান্ত কাটা হবে',\n  'bo': 'སྲེས་དཔག་གཅིག་',\n  'br': 'Berradur an treuzoù gant',\n  'brx': 'फायाँग दारिदो ओन्गा',\n  'bs': 'Smanjite maržu za',\n  'ca': 'Redueix el marge en',\n  'cak': 'Xna´an eb´en jun',\n  'ckb': 'ئاژمۆنی بە',\n  'cs': 'Oříznout okraj o',\n  'cy': 'Torrwch y ymyl gan',\n  'da': 'Trim margen med',\n  'de': 'Rand um',\n  'dsb': 'Sćisny margina za',\n  'el': 'Περικοπή περιθωρίου κατά',\n  'en-CA': 'Trim margin by',\n  'en-GB': 'Trim margin by',\n  'en-US': 'Trim margin by',\n  'eo': 'Tondi la marĝenon je',\n  'es-AR': 'Recortar margen en',\n  'es-CL': 'Recortar margen en',\n  'es-ES': 'Recortar margen en',\n  'es-MX': 'Recortar margen en',\n  'et': 'Kärbi marginaal',\n  'eu': 'Moz margena',\n  'fa': 'حاشیه را به',\n  'ff': 'Murmin adrim',\n  'fi': 'Leikkaa marginaalia',\n  'fr': 'Réduire la marge de',\n  'fur': 'Scuartje il percjel cun',\n  'fy-NL': 'Trim râne mei',\n  'ga-IE': 'Bearr imeall le',\n  'gd': 'Lùghdaich an iomall le',\n  'gl': 'Recortar marxe en',\n  'gn': 'Ombue ko margen',\n  'gu-IN': 'માર્જિનને તોડી નાખો',\n  'he': 'קיצוץ שוליים ב',\n  'hi-IN': 'किनारा काटें',\n  'hr': 'Smanjite marginu za',\n  'hsb': 'Sćisny margina za',\n  'hu': 'Vágja le a margót',\n  'hy-AM': 'Կտրել եզրագիծը',\n  'hye': 'Կտրել եզրագիծը',\n  'ia': 'Trimmar margine per',\n  'id': 'Pangkas margin sebesar',\n  'is': 'Klippa jaðar um',\n  'it': 'Taglia il margine del',\n  'ja': 'マージンを',\n  'ka': 'მარცხის შემცირება',\n  'kab': 'Aṛuγ margint s',\n  'kk': 'Жиекті қысқарту',\n  'km': 'កាត់បន្ថយកំផ្លេ',\n  'kn': 'ಅಂಚನ್ನು ಕಡಿತಮಾಡಿ',\n  'ko': '여백을',\n  'lij': 'Taglia margine per',\n  'lo': 'ຕັດຂອບໂດຍ',\n  'lt': 'Apkarpykite paraštes',\n  'ltg': 'Apgrīzt māržõ',\n  'lv': 'Apgrieziet malu',\n  'meh': 'Cortar margen en',\n  'mk': 'Намалете маржата за',\n  'mr': 'काठ काढा',\n  'ms': 'Potong margin sebanyak',\n  'my': 'အနားအာရုံကို ဖြတ်ပါ',\n  'nb-NO': 'Trim marginen med',\n  'ne-NP': 'मार्जिन काट्नुहोस्',\n  'nl': 'Snijd marge bij',\n  'nn-NO': 'Kutt margen med',\n  'oc': 'Reduzir lo margue per',\n  'pa-IN': 'ਮਾਰਜਿਨ ਨੂੰ ਛਾਂਟੋ',\n  'pl': 'Przytnij margines o',\n  'pt-BR': 'Cortar margem em',\n  'pt-PT': 'Cortar margem em',\n  'rm': 'Taglia il margin per',\n  'ro': 'Tăiați marginea cu',\n  'ru': 'Обрезать край на',\n  'sat': 'ᱥᱮᱸᱜ ᱫᱤᱭᱤᱥ ᱟᱹᱜᱤ ᱫᱟ',\n  'sc': 'Ritzu margine cun',\n  'scn': 'Tagghia margini per',\n  'sco': 'Trim margin bi',\n  'si': 'කැපීමේ අභියස',\n  'sk': 'Orezať okraj o',\n  'skr': 'مارجن کو ٹرم کریں',\n  'sl': 'Obrežite rob za',\n  'son': 'Ri sî',\n  'sq': 'Prerje margjine për',\n  'sr': 'Скратите маргину за',\n  'sv-SE': 'Trimma marginal med',\n  'szl': 'Prziciń margines ô',\n  'ta': 'எல்லையைக் குறைக்க',\n  'te': 'అంచున తగ్గించు',\n  'tg': 'Коҳиш додани ҳошия бо',\n  'th': 'ตัดขอบโดย',\n  'tl': 'Gupitin ang margin sa pamamagitan ng',\n  'tr': 'Kenarı',\n  'trs': 'Trim margin by',\n  'uk': 'Обрізати край на',\n  'ur': 'مارجن کو کم کریں',\n  'uz': 'Marginni kesish',\n  'vi': 'Cắt bớt lề',\n  'wo': 'Duuban margën bi ak',\n  'xh': 'Sika umda nge',\n  'zh-CN': '修剪边距',\n  'zh-TW': '修剪邊距'\n}\n\nconst navBack: {[lang: string]: string} = {\n  'ach': 'Lapwongere',\n  'af': 'Terug',\n  'an': 'Tornar',\n  'ar': 'رجوع',\n  'ast': 'Retroceder',\n  'az': 'Geri',\n  'be': 'Вярнуцца',\n  'bg': 'Назад',\n  'bn': 'পূর্ববর্তী',\n  'bo': 'ཆུང་པ',\n  'br': 'Distreiñ',\n  'brx': 'अस्तु',\n  'bs': 'Nazad',\n  'ca': 'Enrere',\n  'cak': 'Wan sãl',\n  'ckb': 'گەڕانەوە',\n  'cs': 'Zpět',\n  'cy': 'Yn ôl',\n  'da': 'Tilbage',\n  'de': 'Zurück',\n  'dsb': 'Zowróć',\n  'el': 'Πίσω',\n  'en-CA': 'Back',\n  'en-GB': 'Back',\n  'en-US': 'Back',\n  'eo': 'Reen',\n  'es-AR': 'Atrás',\n  'es-CL': 'Retroceder',\n  'es-ES': 'Atrás',\n  'es-MX': 'Atrás',\n  'et': 'Tagasi',\n  'eu': 'Atzera',\n  'fa': 'بازگشت',\n  'ff': 'Ruppito',\n  'fi': 'Takaisin',\n  'fr': 'Retour',\n  'fur': 'Indaûr',\n  'fy-NL': 'Werom',\n  'ga-IE': 'Ar ais',\n  'gd': 'Air ais',\n  'gl': 'Volver',\n  'gn': 'Peteĩ',\n  'gu-IN': 'પાછું',\n  'he': 'אחורה',\n  'hi-IN': 'पीछे',\n  'hr': 'Natrag',\n  'hsb': 'Zowróćiś',\n  'hu': 'Vissza',\n  'hy-AM': 'Հետ',\n  'hye': 'Հետ',\n  'ia': 'Retro',\n  'id': 'Kembali',\n  'is': 'Aftur',\n  'it': 'Indietro',\n  'ja': '戻る',\n  'ka': 'უკან',\n  'kab': 'Nura',\n  'kk': 'Артқа',\n  'km': 'ត្រឡប់មកវិញ',\n  'kn': 'ಹಿಂದಕ್ಕೆ',\n  'ko': '뒤로',\n  'lij': 'Indrîo',\n  'lo': 'ກັບຄືນ',\n  'lt': 'Atgal',\n  'ltg': 'Ataig',\n  'lv': 'Atpakaļ',\n  'meh': 'Je\\'wa',\n  'mk': 'Назад',\n  'mr': 'मागे',\n  'ms': 'Undur',\n  'my': 'နောက်သို့',\n  'nb-NO': 'Tilbake',\n  'ne-NP': 'पछाडि',\n  'nl': 'Terug',\n  'nn-NO': 'Tilbake',\n  'oc': 'Arrièr',\n  'pa-IN': 'ਪਿੱਛੇ',\n  'pl': 'Wstecz',\n  'pt-BR': 'Voltar',\n  'pt-PT': 'Voltar',\n  'rm': 'Enavos',\n  'ro': 'Înapoi',\n  'ru': 'Назад',\n  'sat': 'ᱫᱚᱨᱩ',\n  'sc': 'Tornare',\n  'scn': 'Riturnari',\n  'sco': 'Back',\n  'si': 'ආපසු',\n  'sk': 'Späť',\n  'skr': 'وپس',\n  'sl': 'Nazaj',\n  'son': 'Fito',\n  'sq': 'Mbrapa',\n  'sr': 'Назад',\n  'sv-SE': 'Bakåt',\n  'szl': 'Wórt',\n  'ta': 'பின்செல்',\n  'te': 'వెనక్కి',\n  'tg': 'Бозгашт',\n  'th': 'ย้อนกลับ',\n  'tl': 'Bumalik',\n  'tr': 'Geri',\n  'trs': 'رویا',\n  'uk': 'Назад',\n  'ur': 'پیچھے',\n  'uz': 'Orqaga',\n  'vi': 'Quay lại',\n  'wo': 'Jot',\n  'xh': 'Emva',\n  'zh-CN': '后退',\n  'zh-TW': '後退'\n}\n\nconst navForward: {[lang: string]: string} = {\n  'ach': 'Dwong kadi',\n  'af': 'Stap vorentoe',\n  'an': 'Avantazar',\n  'ar': 'الامام',\n  'ast': 'Pa alantre',\n  'az': 'İrəli',\n  'be': 'Перайсці наперад',\n  'bg': 'Напред',\n  'bn': 'অগ্রবর্তী',\n  'bo': 'ཡར་དོན།',\n  'br': 'Kentañ war-raok',\n  'brx': 'আগমন কৰক',\n  'bs': 'Idi naprijed',\n  'ca': 'Avança',\n  'cak': 'Ajak',\n  'ckb': 'پێشوو',\n  'cs': 'Dopředu',\n  'cy': 'Symud ymlaen',\n  'da': 'Frem',\n  'de': 'Vorwärts',\n  'dsb': 'Dopřeju',\n  'el': 'Προς τα εμπρός',\n  'en-CA': 'Forward',\n  'en-GB': 'Forward',\n  'en-US': 'Forward',\n  'eo': 'Iri antaŭen',\n  'es-AR': 'Avanzar',\n  'es-CL': 'Avanzar',\n  'es-ES': 'Avanzar',\n  'es-MX': 'Avanzar',\n  'et': 'Liigu edasi',\n  'eu': 'Aurrera',\n  'fa': 'به جلو',\n  'ff': 'Soogo',\n  'fi': 'Siirry eteenpäin',\n  'fr': 'Avancer',\n  'fur': 'Va aîn',\n  'fy-NL': 'Foarút',\n  'ga-IE': 'Lean ar aghaidh',\n  'gd': 'Rach air adhart',\n  'gl': 'Adiantar',\n  'gn': 'Mboguapy',\n  'gu-IN': 'આગળ વધો',\n  'he': 'לקדימה',\n  'hi-IN': 'आगे बढ़ें',\n  'hr': 'Naprijed',\n  'hsb': 'Dopřeju',\n  'hu': 'Előre',\n  'hy-AM': 'առաջ',\n  'hye': 'առաջ',\n  'ia': 'Avantiar',\n  'id': 'Maju',\n  'is': 'Fara fram',\n  'it': 'Avanti',\n  'ja': '進む',\n  'ka': 'წინ',\n  'kab': 'Addu',\n  'kk': 'Алдыңғы',\n  'km': 'ទៅមុខ',\n  'kn': 'ಮುನ್ನಡೆ',\n  'ko': '앞으로',\n  'lij': 'Avânti',\n  'lo': 'ມອບລົງ',\n  'lt': 'Pirmyn',\n  'ltg': 'Uz priekšu',\n  'lv': 'Uz priekšu',\n  'meh': 'Rey taal',\n  'mk': 'Напред',\n  'mr': 'आगामी',\n  'ms': 'Ke hadapan',\n  'my': 'အဆင့်သင့်သွားရန်',\n  'nb-NO': 'Gå fremover',\n  'ne-NP': 'अघि बढ्नुहोस्',\n  'nl': 'Vooruit',\n  'nn-NO': 'Gå framover',\n  'oc': 'Avançar',\n  'pa-IN': 'ਅੱਗੇ ਵਧੋ',\n  'pl': 'Idź do przodu',\n  'pt-BR': 'Avançar',\n  'pt-PT': 'Avançar',\n  'rm': 'Avantgar',\n  'ro': 'Înainte',\n  'ru': 'Вперёд',\n  'sat': 'ᱵᱟᱢᱮ',\n  'sc': 'Avàntzare',\n  'scn': 'Avanzari',\n  'sco': 'Forrit',\n  'si': 'ඉදිරියට',\n  'sk': 'Ďalej',\n  'skr': 'پيچھي جاؤ',\n  'sl': 'Naprej',\n  'son': 'Ŋwii',\n  'sq': 'Para përpara',\n  'sr': 'Напред',\n  'sv-SE': 'Gå framåt',\n  'szl': 'Dowidz przod',\n  'ta': 'முன்னேறு',\n  'te': 'ముందుకు వెళ్ళండి',\n  'tg': 'Пеш',\n  'th': 'ไปข้างหน้า',\n  'tl': 'Tumuloy',\n  'tr': 'İleri',\n  'trs': 'Jedlèn',\n  'uk': 'Вперед',\n  'ur': 'آگے بڑھو',\n  'uz': 'Oldinga',\n  'vi': 'Tiến lên',\n  'wo': 'Wuñ a demm',\n  'xh': 'Hamba phambili',\n  'zh-CN': '前进',\n  'zh-TW': '前進'\n}\n\nconst l10n = {\n  enableSyncTeX,\n  enableRefresh,\n  trimMargin,\n  navBack,\n  navForward\n}\n"
  },
  {
    "path": "viewer/components/refresh.ts",
    "content": "import * as utils from './utils.js'\nimport { getTrimValue, setTrimValue } from './trimming.js'\nimport { sendLog } from './connection.js'\nimport { viewerState, viewerStatePromise } from './state.js'\nimport { type PDFViewerApplicationType, type PDFViewerApplicationOptionsType, RenderingStates } from './interface.js'\n\ndeclare const pdfjsLib: any\ndeclare const PDFViewerApplication: PDFViewerApplicationType\ndeclare const PDFViewerApplicationOptions: PDFViewerApplicationOptionsType\n\nlet autoRefreshEnabled = true\nexport function IsAutoRefreshEnabled() {\n    return autoRefreshEnabled\n}\nexport function toggleAutoRefresh() {\n    autoRefreshEnabled = !autoRefreshEnabled\n    return autoRefreshEnabled\n}\n\nlet prevState: {\n    page: number,\n    trim: number,\n    scale: string,\n    scrollMode: number,\n    sidebarView: number,\n    spreadMode: number,\n    scrollTop: number,\n    scrollLeft: number\n} | undefined\n\n// https://github.com/James-Yu/LaTeX-Workshop/pull/4295#issuecomment-2191226562\nexport function doneRefresh() {\n    refreshing = false\n    clearTimeout(doneRefreshTimeout)\n    if (shouldRefreshAgain) {\n        shouldRefreshAgain = false\n        void refresh()\n    }\n}\n\nlet refreshing = false\nlet shouldRefreshAgain = false\nlet doneRefreshTimeout = 0\nexport async function refresh() {\n    if (!IsAutoRefreshEnabled()) {\n        sendLog('Auto reload temporarily disabled.')\n        return\n    }\n    if (refreshing) {\n        shouldRefreshAgain = true\n        sendLog('Auto reload rate-limiting.')\n        return\n    }\n    // https://github.com/James-Yu/LaTeX-Workshop/pull/4295#issuecomment-2191384019\n    refreshing = true\n    clearTimeout(doneRefreshTimeout)\n    doneRefreshTimeout = setTimeout(() => doneRefresh(), 1000)\n\n    // Fail-safe. For unknown reasons, the pack may have null values #4076\n    const currentState = {\n        page: PDFViewerApplication.pdfViewer.currentPageNumber ?? prevState?.page,\n        trim: getTrimValue(),\n        scale: PDFViewerApplication.pdfViewer.currentScaleValue ?? prevState?.scale,\n        scrollMode: PDFViewerApplication.pdfViewer.scrollMode ?? prevState?.scrollMode,\n        sidebarView: PDFViewerApplication.pdfSidebar.visibleView ?? prevState?.sidebarView,\n        spreadMode: PDFViewerApplication.pdfViewer.spreadMode ?? prevState?.spreadMode,\n        scrollTop: document.getElementById('viewerContainer')!.scrollTop ?? prevState?.scrollTop,\n        scrollLeft: document.getElementById('viewerContainer')!.scrollLeft ?? prevState?.scrollLeft\n    }\n    prevState = currentState\n\n    // Note: without showPreviousViewOnLoad = false restoring the position after the refresh will fail if\n    // the user has clicked on any link in the past (pdf.js will automatically navigate to that link).\n    PDFViewerApplicationOptions.set('showPreviousViewOnLoad', false)\n\n    // Override the spread mode specified in PDF documents with the current one.\n    // https://github.com/James-Yu/LaTeX-Workshop/issues/1871\n    if (typeof prevState.spreadMode === 'number') {\n        PDFViewerApplicationOptions.set('spreadModeOnLoad', prevState.spreadMode)\n    }\n\n    const masks = addMasks()\n    const cb = () => {\n        if (!allPagesRendered()) {\n            return\n        }\n        removeMasks(masks)\n        PDFViewerApplication.eventBus.off('pagerendered', cb)\n    }\n    PDFViewerApplication.eventBus.on('pagerendered', cb)\n\n    const { encodedPath, docTitle } = utils.parseURL()\n    /* eslint-disable */\n    const doc = await pdfjsLib.getDocument({\n        url: `${utils.pdfFilePrefix}${encodedPath}`,\n        cMapUrl: '../cmaps/'\n    }).promise\n    PDFViewerApplication.load(doc)\n    /* eslint-enable */\n    // reset the document title to the original value to avoid duplication\n    document.title = docTitle\n}\n\nexport async function restoreState() {\n    if (prevState === undefined) {\n        await restoreDefault()\n        return\n    }\n\n    if (prevState.page !== undefined) {\n        PDFViewerApplication.pdfViewer.currentPageNumber = prevState.page\n    }\n    if (prevState.trim !== undefined) {\n        setTrimValue(prevState.trim)\n    }\n    if (prevState.scale !== undefined) {\n        PDFViewerApplication.pdfViewer.currentScaleValue = prevState.scale\n    }\n    if (prevState.sidebarView) {\n        PDFViewerApplication.pdfSidebar.switchView(prevState.sidebarView)\n    }\n    if (typeof prevState.scrollMode === 'number' && PDFViewerApplication.pdfViewer.scrollMode !== prevState.scrollMode) {\n        PDFViewerApplication.pdfViewer.scrollMode = prevState.scrollMode\n    }\n    if (typeof prevState.spreadMode === 'number' && PDFViewerApplication.pdfViewer.spreadMode !== prevState.spreadMode) {\n        PDFViewerApplication.pdfViewer.spreadMode = prevState.spreadMode\n    }\n\n    const viewerContainer = document.getElementById('viewerContainer')!\n    if (typeof prevState.scrollTop === 'number' && viewerContainer.scrollTop !== prevState.scrollTop) {\n        viewerContainer.scrollTop = prevState.scrollTop\n    }\n    if (typeof prevState.scrollLeft === 'number' && viewerContainer.scrollLeft !== prevState.scrollLeft) {\n        viewerContainer.scrollLeft = prevState.scrollLeft\n    }\n}\n\nasync function restoreDefault() {\n    const params = await utils.getParams()\n\n    if (params.trim !== undefined) {\n        setTrimValue(params.trim)\n    }\n    // By setting the scale, scaling will be invoked if necessary.\n    // The scale can be a non-number one.\n    if (params.scale !== undefined) {\n        PDFViewerApplication.pdfViewer.currentScaleValue = params.scale\n    }\n    if (params.scrollMode !== undefined) {\n        PDFViewerApplication.pdfViewer.scrollMode = params.scrollMode\n    }\n    if (params.spreadMode !== undefined) {\n        PDFViewerApplication.pdfViewer.spreadMode = params.spreadMode\n    }\n\n    if (!utils.isEmbedded()) {\n        return\n    }\n\n    await viewerStatePromise\n    const viewerContainer = document.getElementById('viewerContainer')!\n    if (typeof viewerState.scrollTop === 'number' && viewerContainer.scrollTop !== viewerState.scrollTop) {\n        viewerContainer.scrollTop = viewerState.scrollTop\n    }\n    if (typeof viewerState.scrollLeft === 'number' && viewerContainer.scrollLeft !== viewerState.scrollLeft) {\n        viewerContainer.scrollLeft = viewerState.scrollLeft\n    }\n}\n\nfunction addMasks() {\n    const viewerDom = document.getElementById('viewer')!\n    const viewerContainer = document.getElementById('viewerContainer')!\n    const masks: HTMLDivElement[] = []\n    if (!viewerContainer || !viewerDom) {\n        return masks\n    }\n\n    const visiblePages = PDFViewerApplication.pdfViewer._getVisiblePages()\n    for (const visiblePage of visiblePages.views) {\n        const canvas = visiblePage.view.canvas\n        if (!canvas) {\n            continue\n        }\n\n        const viewerBound = viewerDom.getBoundingClientRect()\n        const pageBound = visiblePage.view.div.getBoundingClientRect()\n        const canvasBound = canvas.getBoundingClientRect()\n\n        const div = document.createElement('div')\n        div.className = 'page-loading-mask'\n        masks.push(div)\n        div.style.display = 'none'\n        div.style.left = pageBound.x - viewerBound.x + 'px'\n        div.style.top = pageBound.y - viewerBound.y + 'px'\n        div.style.width = pageBound.width + 'px'\n        div.style.height = pageBound.height + 'px'\n\n        const img = new Image()\n        img.src = canvas.toDataURL() ?? ''\n        img.style.left = canvasBound.x - pageBound.x + 'px'\n        img.style.top = canvasBound.y - pageBound.y + 'px'\n        img.style.width = canvasBound.width + 'px'\n        img.style.height = canvasBound.height + 'px'\n\n        div.appendChild(img)\n        viewerContainer.appendChild(div)\n        div.style.display = 'inherit'\n    }\n    return masks\n}\n\nfunction allPagesRendered() {\n    return PDFViewerApplication.pdfViewer._getVisiblePages().views.every(view => view.view.renderingState === RenderingStates.FINISHED)\n}\n\nfunction removeMasks(masks: HTMLDivElement[]) {\n    for (const mask of masks) {\n        mask.classList.add('remove')\n    }\n    setTimeout(() => {\n        for (const mask of masks) {\n            mask.remove()\n        }\n    }, 250)\n}\n"
  },
  {
    "path": "viewer/components/state.ts",
    "content": "import * as utils from './utils.js'\nimport type { PDFViewerApplicationType } from './interface'\nimport type { PanelManagerResponse, PdfViewerState } from '../../types/latex-workshop-protocol-types/index.js'\nimport { getTrimValue } from './trimming.js'\nimport { isSyncTeXEnabled, registerSyncTeX, setSyncTeXKey } from './synctex.js'\nimport { IsAutoRefreshEnabled } from './refresh.js'\nimport { sendPanel } from './connection.js'\n\ndeclare const PDFViewerApplication: PDFViewerApplicationType\n\nexport let viewerState: PdfViewerState\nlet viewerStatePromiseResolve: () => void\nexport const viewerStatePromise = new Promise<void>(resolve => viewerStatePromiseResolve = resolve)\n\nexport function initUploadState() {\n    window.addEventListener('message', (e) => {\n        const data = e.data as PanelManagerResponse\n        if (!data.type) {\n            console.log('LateXWorkshopPdfViewer received a message of unknown type: ' + JSON.stringify(data))\n            return\n        }\n        switch (data.type) {\n            case 'restore_state': {\n                viewerState = data.state\n                viewerStatePromiseResolve()\n                break\n            }\n            default: {\n                break\n            }\n        }\n    })\n\n    window.addEventListener('scrollend', () => { uploadState() }, true)\n\n    sendPanel({ type: 'initialized' })\n}\n\nexport function uploadState() {\n    const state: PdfViewerState = {\n        pdfFileUri: utils.parseURL().pdfFileUri,\n        scale: PDFViewerApplication.pdfViewer.currentScaleValue,\n        trim: getTrimValue(),\n        scrollMode: PDFViewerApplication.pdfViewer.scrollMode,\n        sidebarView: PDFViewerApplication.pdfSidebar.visibleView,\n        spreadMode: PDFViewerApplication.pdfViewer.spreadMode,\n        scrollTop: document.getElementById('viewerContainer')!.scrollTop,\n        scrollLeft: document.getElementById('viewerContainer')!.scrollLeft,\n        synctexEnabled: isSyncTeXEnabled(),\n        autoReloadEnabled: IsAutoRefreshEnabled()\n    }\n    sendPanel({type: 'state', state})\n}\n\nexport async function setParams() {\n    const params = await utils.getParams()\n\n    const viewerContainer = document.querySelector('#viewerContainer') as HTMLHtmlElement\n    const thumbnailView = document.querySelector('#thumbnailView') as HTMLHtmlElement\n    const sidebarContent = document.querySelector('#sidebarContent') as HTMLHtmlElement\n\n    if (params.sidebar.open === 'on' || params.sidebar.open === 'persist' && localStorage.getItem('lw-pdf-sidebar-open') === 'true') {\n        PDFViewerApplication.pdfSidebar.open()\n    } else if (params.sidebar.open === 'off' || params.sidebar.open === 'persist' && localStorage.getItem('lw-pdf-sidebar-open') === 'false') {\n        PDFViewerApplication.pdfSidebar.close()\n    }\n\n    if (params.sidebar.view === 'thumbnails') {\n        PDFViewerApplication.pdfSidebar.switchView(1)\n    } else if (params.sidebar.view === 'outline') {\n        PDFViewerApplication.pdfSidebar.switchView(2)\n    } else if (params.sidebar.view === 'attachments') {\n        PDFViewerApplication.pdfSidebar.switchView(3)\n    } else if (params.sidebar.view === 'layers') {\n        PDFViewerApplication.pdfSidebar.switchView(4)\n    } else if (params.sidebar.view === 'persist') {\n        PDFViewerApplication.pdfSidebar.switchView(parseInt(localStorage.getItem('lw-pdf-sidebar-view') ?? '1'))\n    }\n\n    PDFViewerApplication.pdfCursorTools.switchTool(params.hand ? 1 : 0)\n    if (params.invertMode.enabled) {\n        const { brightness, grayscale, hueRotate, invert, sepia } = params.invertMode\n        const filter = `invert(${invert * 100}%) hue-rotate(${hueRotate}deg) grayscale(${grayscale}) sepia(${sepia}) brightness(${brightness})`\n        viewerContainer.style.filter = filter\n        thumbnailView.style.filter = filter\n        sidebarContent.style.background = 'var(--body-bg-color)'\n    }\n\n    const backgroundColor = utils.isPrefersColorSchemeDark(params.codeColorTheme) ? params.color.dark.backgroundColor : params.color.light.backgroundColor\n    viewerContainer.style.background = backgroundColor\n\n    const css = document.styleSheets[document.styleSheets.length - 1]\n    const pageBorderColor = utils.isPrefersColorSchemeDark(params.codeColorTheme) ? params.color.dark.pageBorderColor : params.color.light.pageBorderColor\n    css.insertRule(`.pdfViewer.removePageBorders .page {box-shadow: 0px 0px 0px 1px ${pageBorderColor}}`, css.cssRules.length)\n\n    if (params.keybindings) {\n        setSyncTeXKey(params.keybindings['synctex'])\n        registerSyncTeX()\n    }\n}\n"
  },
  {
    "path": "viewer/components/synctex.ts",
    "content": "import type { SynctexData, SynctexRangeData } from '../../types/latex-workshop-protocol-types/index.js'\nimport type { PDFViewerApplicationType } from './interface.js'\nimport { send, sendLog } from './connection.js'\nimport { scrollHistory } from './viewerhistory.js'\nimport * as utils from './utils.js'\n\ndeclare const PDFViewerApplication: PDFViewerApplicationType\n\nlet synctexEnabled = true\nexport function isSyncTeXEnabled() {\n    return synctexEnabled\n}\nexport function toggleSyncTeX() {\n    synctexEnabled = !synctexEnabled\n    return synctexEnabled\n}\n\nlet reverseSynctexKeybinding: string = 'ctrl-click'\nexport function setSyncTeXKey(binding: string) {\n    reverseSynctexKeybinding = binding\n}\n\nfunction callSynctex(e: MouseEvent, page: number, pageDom: HTMLElement, viewerContainer: HTMLElement) {\n    const canvasDom = pageDom.getElementsByTagName('canvas')[0]\n    const selection = window.getSelection()\n    let textBeforeSelection = ''\n    let textAfterSelection = ''\n    // workaround for https://github.com/James-Yu/LaTeX-Workshop/issues/1314\n    if(selection && selection.anchorNode && selection.anchorNode.nodeName === '#text'){\n        const text = selection.anchorNode.textContent\n        if (text) {\n            textBeforeSelection = text.substring(0, selection.anchorOffset)\n            textAfterSelection = text.substring(selection.anchorOffset)\n        }\n    }\n    const canvas = document.getElementsByClassName('canvasWrapper')[0] as HTMLElement\n    const left = e.pageX - pageDom.offsetLeft + viewerContainer.scrollLeft - canvas.offsetLeft\n    const top = e.pageY - pageDom.offsetTop + viewerContainer.scrollTop - canvas.offsetTop\n    const pos = PDFViewerApplication.pdfViewer._pages[page-1]?.getPagePoint(left, canvasDom.offsetHeight - top)\n    if (pos === undefined) {\n        return\n    }\n    void send({ type: 'reverse_synctex', pdfFileUri: utils.parseURL().pdfFileUri, pos, page, textBeforeSelection, textAfterSelection })\n}\n\nexport function registerSyncTeX() {\n    const viewerDom = document.getElementById('viewer')!\n    const pageDomList = (viewerDom.childNodes[0] as HTMLElement).classList.contains('spread') ? [...viewerDom.childNodes].map(node => [...node.childNodes]).flat() : viewerDom.childNodes\n    for (const pageDom of pageDomList as NodeListOf<HTMLElement> | HTMLElement[]) {\n        const page = Number(pageDom.dataset.pageNumber)\n        const viewerContainer = document.getElementById('viewerContainer')!\n        switch (reverseSynctexKeybinding) {\n            case 'ctrl-click': {\n                pageDom.onclick = (e) => {\n                    if (!(e.ctrlKey || e.metaKey)) {\n                        return\n                    }\n                    callSynctex(e, page, pageDom, viewerContainer)\n                }\n                break\n            }\n            case 'double-click': {\n                pageDom.ondblclick = (e) => {\n                    callSynctex(e, page, pageDom, viewerContainer)\n                }\n                break\n            }\n            default: {\n                console.log(`Unknown keybinding ${reverseSynctexKeybinding} (view.pdf.internal.synctex.keybinding)`)\n                break\n            }\n        }\n    }\n}\n\nfunction createIndicator(type: 'rect' | 'circ', scrollX: number, scrollY: number, width_px?: number, height_px?: number): void {\n    let indicator = document.getElementById('synctex-indicator')!\n\n    if (type === 'rect') {\n        const parent = indicator.parentNode!\n        indicator = indicator.cloneNode(true) as HTMLElement\n        indicator.id = ''\n        indicator.classList.add('synctex-indicator-rect')\n        indicator.style.width = `${width_px}px`\n        indicator.style.height = `${height_px}px`\n        indicator.addEventListener('animationend', () => {\n            indicator.style.display = 'none'\n            parent.removeChild(indicator)\n        })\n        parent.appendChild(indicator)\n    } else {\n        indicator.className = 'show'\n        setTimeout(() => indicator.className = 'hide', 10)\n        // setTimeout(() => {\n        //     indicator.style.left = ''\n        //     indicator.style.top = ''\n        // }, 1000)\n    }\n    indicator.style.left = `${scrollX}px`\n    indicator.style.top = `${scrollY}px`\n\n}\n\nfunction forwardSynctexRect(data: SynctexRangeData[]) {\n    for (const record of data) {\n        const page = document.getElementsByClassName('page')[record.page - 1] as HTMLElement\n        const pos_left_top = PDFViewerApplication.pdfViewer._pages[record.page - 1].viewport.convertToViewportPoint(record.h, record.v - record.H)\n        const pos_right_down = PDFViewerApplication.pdfViewer._pages[record.page - 1].viewport.convertToViewportPoint(record.h + record.W, record.v)\n\n        const canvas = document.getElementsByClassName('canvasWrapper')[0] as HTMLElement\n        pos_left_top[0] += canvas.offsetLeft\n        pos_left_top[1] += canvas.offsetTop\n        pos_right_down[0] += canvas.offsetLeft\n        pos_right_down[1] += canvas.offsetTop\n\n        const { scrollX, scrollY } = scrollToPosition(page, pos_left_top[0], pos_left_top[1])\n\n        if (record.indicator) {\n            const width_px = pos_right_down[0] - Math.max(scrollX, pos_left_top[0])\n            const height_px = pos_left_top[1] - pos_right_down[1]\n            createIndicator('rect', scrollX, scrollY, width_px, height_px)\n        }\n    }\n}\n\nfunction forwardSynctexCirc(data: SynctexData) {\n    const page = document.getElementsByClassName('page')[data.page - 1] as HTMLElement\n    // use the offsetTop of the actual page, much more accurate than multiplying the offsetHeight of the first page\n    // https://github.com/James-Yu/LaTeX-Workshop/pull/417\n    const pos = PDFViewerApplication.pdfViewer._pages[data.page - 1].viewport.convertToViewportPoint(data.x, data.y)\n    const { scrollX, scrollY } = scrollToPosition(page, pos[0], pos[1], true)\n\n    if (data.indicator) {\n        createIndicator('circ', scrollX, scrollY)\n    }\n}\n\nexport function forwardSynctex(data: SynctexData | SynctexRangeData[]) {\n    if (!isSyncTeXEnabled()) {\n        sendLog('SyncTeX temporarily disabled.')\n        return\n    }\n\n    // if the type of data is SynctexRangeData[], parse as a rectangular indicator.\n    if (Array.isArray(data)){\n        forwardSynctexRect(data)\n    } else {\n        forwardSynctexCirc(data)\n    }\n}\n\nfunction scrollToPosition(page: HTMLElement, posX: number, posY: number, isCircle: boolean = false): { scrollX: number, scrollY: number } {\n    const container = document.getElementById('viewerContainer')!\n    const maxScrollX = window.innerWidth * (isCircle ? 0.9 : 1)\n    const minScrollX = window.innerWidth * (isCircle ? 0.1 : 0)\n    let scrollX = page.offsetLeft + posX\n    scrollX = Math.min(scrollX, maxScrollX)\n    scrollX = Math.max(scrollX, minScrollX)\n    const scrollY = page.offsetTop + page.offsetHeight - posY\n\n    scrollHistory.set(container.scrollTop)\n    if (PDFViewerApplication.pdfViewer.scrollMode === 1) {\n        container.scrollLeft = page.offsetLeft\n    } else {\n        container.scrollTop = scrollY - document.body.offsetHeight * 0.4\n    }\n    scrollHistory.set(container.scrollTop)\n\n    return { scrollX, scrollY }\n}\n"
  },
  {
    "path": "viewer/components/trimming.ts",
    "content": "import { PDFViewerApplicationType } from './interface'\n\ndeclare const PDFViewerApplication: PDFViewerApplicationType\n\nlet viewerTrim = 0\n;(globalThis as any).viewerTrim = 0\n\nexport function getTrimValue() {\n    return viewerTrim\n}\n\nexport function setTrimValue(trim: number) {\n    viewerTrim = Math.min(100, Math.max(0, trim))\n    ;(globalThis as any).viewerTrim = viewerTrim\n    const select = document.getElementById('scaleSelect') as HTMLSelectElement\n    if (select.value === 'custom') {\n        PDFViewerApplication.pdfViewer.currentScaleValue = ((JSON.parse(select.options[select.selectedIndex].getAttribute('data-l10n-args')!) as any).scale / 100).toString()\n    } else {\n        PDFViewerApplication.pdfViewer.currentScaleValue = select.value\n    }\n    // Set the value again to avoid displaying decimals like 7.00\n    const trimPct = document.getElementById('trimPct') as HTMLInputElement\n    trimPct.value = viewerTrim.toString()\n}\n\nexport function initTrim() {\n    document.getElementById('viewer')!.style.setProperty('--trim-factor', getTrimValue().toString())\n    setTrimCSS()\n\n    const trimPct = document.getElementById('trimPct') as HTMLInputElement\n    trimPct.onchange = _ => {\n        viewerTrim = Number.parseFloat(trimPct.value)\n        document.getElementById('viewer')!.style.setProperty('--trim-factor', viewerTrim.toString())\n        setTrimValue(viewerTrim)\n    }\n}\n\nexport function setTrimCSS() {\n    const css = document.styleSheets[document.styleSheets.length - 1]\n    const prevCssCount = css.cssRules.length\n\n    // Add new rules\n    for (const [pageNum, page] of PDFViewerApplication.pdfViewer._pages.entries()) {\n        let { pageHeight, pageWidth } = page.viewport.rawDims\n\n        css.insertRule(getCanvasRule('textLayer', pageNum, pageHeight, pageWidth), css.cssRules.length)\n\n        if ([90, 270].includes(page.viewport.rotation)) {\n            [ pageHeight, pageWidth ] = [ pageWidth, pageHeight ]\n        }\n        css.insertRule(getPageRule(pageNum, pageHeight, pageWidth), css.cssRules.length)\n        css.insertRule(getCanvasRule('canvasWrapper', pageNum, pageHeight, pageWidth), css.cssRules.length)\n        css.insertRule(getCanvasRule('annotationLayer', pageNum, pageHeight, pageWidth), css.cssRules.length)\n    }\n\n    // Remove previous rules\n    for (let index = prevCssCount - 1; index >= 0; index--) {\n        const rule = css.cssRules[index] as (CSSRule | CSSStyleRule)\n        if ('selectorText' in rule && rule.selectorText.includes('.page[data-page-number=')) {\n            css.deleteRule(index)\n        }\n    }\n}\n\nfunction getPageRule(pageNum: number, pageHeight: number, pageWidth: number): string {\n    return `\n        .page[data-page-number=\"${pageNum + 1}\"] {\n            width: round(down, calc(var(--scale-factor) * ${pageWidth}px * (1 - var(--trim-factor) / 100)), 1px) !important;\n            height: round(down, calc(var(--scale-factor) * ${pageHeight}px * (1 - var(--trim-factor) / 100)), 1px) !important;\n        }`\n}\n\nfunction getCanvasRule(className: string, pageNum: number, pageHeight: number, pageWidth: number): string {\n    return `\n        .page[data-page-number=\"${pageNum + 1}\"] .${className} {\n            width: round(down, calc(var(--scale-factor) * ${pageWidth}px), 1px) !important;\n            height: round(down, calc(var(--scale-factor) * ${pageHeight}px), 1px) !important;\n            margin-left: round(down, calc(var(--scale-factor) * ${pageWidth}px * var(--trim-factor) / -200), 1px) !important;\n            margin-top: round(down, calc(var(--scale-factor) * ${pageHeight}px * var(--trim-factor) / -200), 1px) !important;\n        }`\n}\n"
  },
  {
    "path": "viewer/components/utils.ts",
    "content": "import type { PdfViewerParams } from '../../types/latex-workshop-protocol-types/index'\n\nexport const pdfFilePrefix = 'pdf..'\n\nexport async function getParams(): Promise<PdfViewerParams> {\n    const storedParams = (globalThis as any).lwParams as PdfViewerParams | undefined\n    if (storedParams) {\n        return storedParams as PdfViewerParams\n    }\n    const params = await (await fetch('config.json')).json() as PdfViewerParams\n    ;(globalThis as any).lwParams = params\n    return params\n}\n\nexport async function sleep(timeout: number) {\n    await new Promise((resolve) => setTimeout(resolve, timeout))\n}\n\n// We use base64url to encode the path of PDF file.\n// https://github.com/James-Yu/LaTeX-Workshop/pull/1501\nexport function encodePath(path: string): string {\n  const s = encodeURIComponent(path)\n  const b64 = window.btoa(s)\n  const b64url = b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '')\n  return b64url\n}\n\nexport function decodePath(b64url: string): string {\n  const tmp = b64url + '='.repeat((4 - b64url.length % 4) % 4)\n  const b64 = tmp.replace(/-/g, '+').replace(/_/g, '/')\n  const s = window.atob(b64)\n  return decodeURIComponent(s)\n}\n\nlet urlComponents: ReturnType<typeof parseURL>\nexport function parseURL(): { encodedPath: string, pdfFileUri: string, docTitle: string } {\n    if (urlComponents) {\n        return urlComponents\n    }\n    const query = document.location.search.substring(1)\n    const parts = query.split('&')\n\n    for (let i = 0, ii = parts.length; i < ii; ++i) {\n        const param = parts[i].split('=')\n        if (['file', 'vsls'].includes(param[0].toLowerCase())) {\n            const encodedPath = param[1].replace(pdfFilePrefix, '')\n            const pdfFileUri = decodePath(encodedPath)\n            const docTitle = pdfFileUri.split(/[\\\\/]/).pop() ?? 'Untitled PDF'\n            urlComponents = { encodedPath, pdfFileUri, docTitle }\n            return urlComponents\n        }\n    }\n    throw new Error('file not given in the query.')\n}\n\nexport function isEmbedded(): boolean {\n    return window.parent !== window\n}\n\nexport function isPrefersColorSchemeDark(codeColorTheme: 'light' | 'dark') {\n    if (isEmbedded()) {\n        return codeColorTheme === 'dark'\n    }\n    return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nexport function isPdfjsShortcut(e: Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey' | 'code' | 'key'>) {\n    // exclusive or\n    const ctrlKey = (e.ctrlKey && !e.metaKey) || (!e.ctrlKey && e.metaKey)\n    if (!ctrlKey && !e.altKey && !e.shiftKey) {\n        if (/^[ njpkrhs]$/.exec(e.key)) {\n            return true\n        }\n        if (/^(Enter|Home|End|PageUp|PageDown|ArrowUp|ArrowLeft|ArrowRight|ArrowDown|F4)$/.exec(e.code)) {\n            return true\n        }\n        return false\n    }\n    // Ctrl\n    if (ctrlKey && !e.altKey && !e.shiftKey) {\n        if (/^[-+=0f]$/.exec(e.key)) {\n            return true\n        }\n        if ( 'p' === e.key && !isEmbedded() ) {\n            return true\n        }\n        return false\n    }\n    // Ctrl + Shift\n    if (ctrlKey && !e.altKey && e.shiftKey) {\n        if (/^[g]$/.exec(e.key)) {\n            return true\n        }\n        return false\n    }\n    // Ctrl + Alt\n    if (ctrlKey && e.altKey && !e.shiftKey) {\n        if (/^[g]$/.exec(e.key)) {\n            return true\n        }\n        return false\n    }\n    // Shift\n    if (!ctrlKey && !e.altKey && e.shiftKey) {\n        if (/^[ r]$/.exec(e.key)) {\n            return true\n        }\n        if (e.code === 'Enter') {\n            return true\n        }\n        return false\n    }\n    return false\n}\n"
  },
  {
    "path": "viewer/components/viewerhistory.ts",
    "content": "\nlet history: { scroll: number, temporary: boolean }[] = []\nlet currentIndex: number | undefined\n\nexport const scrollHistory = {\n    set,\n    back,\n    forward\n}\n\nfunction set(scroll: number, force = false) {\n    if (history.length === 0) {\n        history.push({scroll, temporary: false})\n        currentIndex = 0\n        return\n    }\n\n    if (currentIndex === undefined) {\n        console.log('currentIndex === undefined never happens here.')\n        return\n    }\n\n    const curScroll = history[currentIndex].scroll\n    if (curScroll !== scroll || force) {\n        history = history.slice(0, currentIndex + 1)\n        const last = history[history.length-1]\n        if (last) {\n            last.temporary = false\n        }\n        history.push({scroll, temporary: false})\n        if (history.length > 30) {\n            history = history.slice(history.length - 30)\n        }\n        currentIndex = history.length - 1\n    }\n}\n\nfunction back() {\n    if (history.length === 0) {\n        return\n    }\n    const container = document.getElementById('viewerContainer')!\n    let cur = currentIndex\n    if (cur === undefined) {\n        return\n    }\n    let prevScroll = history[cur].scroll\n    if (history.length > 0 && prevScroll !== container.scrollTop) {\n        if (currentIndex === history.length - 1) {\n            const last = history[history.length-1]\n            if (last.temporary) {\n                last.scroll = container.scrollTop\n                cur = cur - 1\n                prevScroll = history[cur].scroll\n            } else {\n                const tmp = {scroll: container.scrollTop, temporary: true}\n                history.push(tmp)\n            }\n        }\n    }\n    if (prevScroll !== container.scrollTop) {\n        currentIndex = cur\n        container.scrollTop = prevScroll\n    } else {\n        if (cur === 0) {\n            return\n        }\n        const scroll = history[cur-1].scroll\n        currentIndex = cur - 1\n        container.scrollTop = scroll\n    }\n}\n\nfunction forward() {\n    if (currentIndex === history.length - 1) {\n        return\n    }\n    const container = document.getElementById('viewerContainer')!\n    const cur = currentIndex\n    if (cur === undefined) {\n        return\n    }\n    const nextScroll = history[cur+1].scroll\n    if (nextScroll !== container.scrollTop) {\n        currentIndex = cur + 1\n        container.scrollTop = nextScroll\n    } else {\n        if (cur >= history.length - 2) {\n            return\n        }\n        const scroll = history[cur+2].scroll\n        currentIndex = cur + 2\n        container.scrollTop = scroll\n    }\n}\n"
  },
  {
    "path": "viewer/latexworkshop.css",
    "content": ".visibleLargeView,\n.visibleMediumView,\n.visibleMediumView + .horizontalToolbarSeparator {\n  display: none !important;\n}\n\nhtml[dir='ltr'] .findbar {\n    left: 94px;\n}\nhtml[dir='rtl'] .findbar {\n    right: 94px;\n}\n\n@media all and (max-width: 860px) {\n    html[dir='ltr'] .findbar {\n      left: 20px;\n    }\n    html[dir='rtl'] .findbar {\n      right: 20px;\n    }\n}\n\n.findbar.wrapContainers > div {\n    clear: inherit;\n}\n\n#errorWrapper {\n    z-index: 100000;\n}\n\n#synctex-indicator {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: 100000;\n    border: 0.2em solid red;\n    border-radius: 50%;\n    opacity: 0;\n    pointer-events: none;\n    transform: translate(-50%, -50%);\n}\n\n@keyframes synctex-indicator-fadeOut {\n    0% {\n        background-color: rgba(255, 0, 0, 0.4);\n    }\n    25% {\n        background-color: rgba(255, 0, 0, 0.4);\n    }\n    100% {\n        background-color: rgba(0, 0, 0, 0);\n    }\n}\n\n.synctex-indicator-rect {\n    position: absolute;\n    z-index: 100000;\n    background-color: rgba(0, 0, 255, 0.5);\n    pointer-events: none;\n    animation: synctex-indicator-fadeOut 1s forwards;\n}\n\n#synctex-indicator.show {\n    transition: none;\n    opacity: 0.8;\n    height: 0.5em;\n    width: 0.5em;\n}\n\n#synctex-indicator.hide {\n    transition: opacity 0.5s, height 0.5s, width 0.5s;\n    opacity: 0;\n    height: 5em;\n    width: 5em;\n}\n\n#historyBack::before {\n    -webkit-mask-image: var(--findbarButton-previous-icon);\n    mask-image: var(--findbarButton-previous-icon);\n}\n\n#historyForward::before {\n    -webkit-mask-image: var(--findbarButton-next-icon);\n    mask-image: var(--findbarButton-next-icon);\n}\n\n#TrimButton::before{\n    -webkit-mask-image:var(--secondaryToolbarButton-spreadNone-icon);\n    mask-image:var(--secondaryToolbarButton-spreadNone-icon);\n}\n\n.spread {\n    margin-inline: 0 !important;\n}\n\n.pdfViewer.removePageBorders .page {\n    border: none;\n    overflow: hidden;\n    box-shadow: 0px 0px 0px 1px lightgrey;\n}\n\n:is(.pdfViewer .canvasWrapper) canvas{\n    position: relative !important;\n}\n\n.pdfViewer.removePageBorders > .page:last-of-type,\n.pdfViewer.removePageBorders .spread:last-of-type .page {\n    margin-bottom: 0px;\n}\n\n.pdfViewer.removePageBorders .spread .page:first-of-type {\n    margin-inline-start: 0px;\n    margin-inline-end: 5px;\n}\n\n.pdfViewer.removePageBorders .spread .page:last-of-type {\n    margin-inline-start: 5px;\n    margin-inline-end: 0px;\n}\n\n.pdfViewer.removePageBorders.scrollHorizontal .page {\n    margin-bottom: 0px;\n}\n\n.pdfViewer.removePageBorders.scrollHorizontal .page:first-of-type {\n    margin-inline-start: 0px;\n    margin-inline-end: 5px;\n}\n\n.pdfViewer.removePageBorders.scrollHorizontal .page:last-of-type {\n    margin-inline-start: 5px;\n    margin-inline-end: 0px;\n}\n\n.notransition {\n    transition: none !important;\n}\n\n.toolbar {\n    position: absolute;\n    width: 100%;\n    top: 0;\n    transition: all 0.2s cubic-bezier(.23,.96,.57,.99);\n}\n\n.toolbar.hide {\n    top: -32px;\n}\n\n.toolbar.hide:hover {\n    top: 0;\n}\n\n.pdfSidebarNotification::after {\n    display: none !important;\n}\n\n#viewerContainer {\n    top: 0;\n}\n\n#pageNumber {\n    font-size: 12px !important;\n}\n\n#viewBookmark {\n    display: none !important;\n}\n\n#secondaryViewBookmark {\n    display: none  !important;\n}\n\n#downloadButton {\n    display: none  !important;\n}\n\n#toolbarViewerRight .verticalToolbarSeparator {\n    display: none  !important;\n}\n\n#openFile,\n#secondaryOpenFile,\n#secondaryPrint,\n#secondaryDownload,\n#presentationMode,\n#secondaryPresentationMode {\n    display: none  !important;\n}\n\n#secondaryDownload + .horizontalToolbarSeparator {\n    display: none  !important;\n}\n\n#sidebarToggle::after {\n    display: none;\n}\n\n#synctexOnButton::before, #autoRefreshOnButton::before {\n    display: none;\n}\n\n#synctexOnButton, #autoRefreshOnButton {\n    padding-left: 12px;\n}\n\n#synctexOnButton > input, #autoRefreshOnButton > input {\n    margin: 1px;\n}\n\n#synctexOnButton > span, #autoRefreshOnButton > span {\n    padding-left: 1px;\n}\n\n.annotationLayer .popup {\n    margin: 0 calc(5px * var(--scale-factor));\n}\n\n.page-loading-mask {\n    border: none;\n    box-shadow: 0px 0px 0px 1px lightgrey;\n    outline: none;\n    position: absolute;\n    overflow: hidden;\n    z-index: 10;\n}\n\n.page-loading-mask img {\n    padding: 0;\n    margin: 0;\n    border: none;\n    outline: none;\n    position: relative;\n}\n\n.page-loading-mask.remove {\n    opacity: 0;\n    transition: opacity 0.2s ease-in-out;\n}\n"
  },
  {
    "path": "viewer/latexworkshop.ts",
    "content": "import { patchViewerUI, registerKeyBind, registerPersistentState, repositionAnnotation } from './components/gui.js'\nimport * as utils from './components/utils.js'\n\nimport type { PdfjsEventName, PDFViewerApplicationType, PDFViewerApplicationOptionsType } from './components/interface.js'\nimport { initTrim, setTrimCSS } from './components/trimming.js'\nimport { doneRefresh, restoreState } from './components/refresh.js'\nimport { initUploadState, setParams, uploadState } from './components/state.js'\nimport { initConnect, send } from './components/connection.js'\nimport { registerSyncTeX } from './components/synctex.js'\n\ndeclare const PDFViewerApplication: PDFViewerApplicationType\ndeclare const PDFViewerApplicationOptions: PDFViewerApplicationOptionsType\n\n// The 'webviewerloaded' event is fired just before the initialization of PDF.js.\n// We can set PDFViewerApplicationOptions at the time.\n// - https://github.com/mozilla/pdf.js/wiki/Third-party-viewer-usage#initialization-promise\n// - https://github.com/mozilla/pdf.js/pull/10318\nconst webViewerLoaded = new Promise<void>((resolve) => {\n    document.addEventListener('webviewerloaded', () => resolve() )\n\n    // https://github.com/James-Yu/LaTeX-Workshop/pull/4220#issuecomment-2034520751\n    try {\n        parent.document.addEventListener('webviewerloaded', () => resolve() )\n    } catch(_) { /* do nothing */ }\n})\n\n// For the details of the initialization of PDF.js,\n// see https://github.com/mozilla/pdf.js/wiki/Third-party-viewer-usage\n// We should use only the promises provided by PDF.js here, not the ones defined by us,\n// to avoid deadlock.\nasync function getViewerEventBus() {\n    await webViewerLoaded\n    await PDFViewerApplication.initializedPromise\n    return PDFViewerApplication.eventBus\n}\n\nfunction onPDFViewerEvent(event: PdfjsEventName, cb: (evt?: any) => unknown, option?: { once: boolean }): { dispose: () => void } {\n    const cb0 = (evt?: unknown) => {\n        cb(evt)\n        if (option?.once) { PDFViewerApplication.eventBus.off(event, cb0) }\n    }\n    void getViewerEventBus().then(eventBus => eventBus.on(event, cb0))\n    return { dispose: () => PDFViewerApplication.eventBus.off(event, cb0) }\n}\n\nasync function initialization() {\n    document.title = utils.parseURL().docTitle\n\n    const params = await utils.getParams()\n    document.addEventListener('webviewerloaded', () => {\n        const color = utils.isPrefersColorSchemeDark(params.codeColorTheme) ? params.color.dark : params.color.light\n        const options = {\n            annotationEditorMode: -1,\n            disablePreferences: true,\n            enableScripting: false,\n            // The following paths are requested from ./build/cmaps/, ./build/standard_fonts/, and ./build/wasm/\n            cMapUrl: '../cmaps/',\n            standardFontDataUrl: '../standard_fonts/',\n            wasmUrl: '../wasm/',\n            sidebarViewOnLoad: 0,\n            workerSrc: './build/pdf.worker.mjs',\n            forcePageColors: true,\n            // The following allow clear display with large zoom values. This is necessary to enable trimming.\n            maxCanvasPixels: -1,\n            maxCanvasDim: -1,\n            enableDetailCanvas: false,\n            ...color\n        }\n        PDFViewerApplicationOptions.setAll(options)\n    })\n\n    initConnect()\n    await patchViewerUI()\n    registerKeyBind()\n}\n\nawait initialization()\nonPDFViewerEvent('documentloaded', () => {\n    void setParams()\n    initUploadState()\n    void getViewerEventBus().then(eventbus => {\n        const events: PdfjsEventName[] = ['scalechanged', 'zoomin', 'zoomout', 'zoomreset', 'scrollmodechanged', 'spreadmodechanged', 'pagenumberchanged']\n        events.forEach(event => {\n            eventbus.on(event, () => { uploadState() })\n        })\n    })\n}, { once: true })\nonPDFViewerEvent('pagesinit', () => {\n    initTrim()\n    void restoreState()\n    registerSyncTeX()\n    registerPersistentState()\n})\nonPDFViewerEvent('pagesloaded', () => {\n    initTrim()\n    void restoreState()\n        .then(() => uploadState())\n        .then(() => send({ type: 'loaded', pdfFileUri: utils.parseURL().pdfFileUri }))\n    repositionAnnotation()\n    doneRefresh()\n})\nonPDFViewerEvent('rotationchanging', () => setTrimCSS())\n\n// @ts-expect-error Must import viewer.mjs here, otherwise some config won't work. #4096\nawait import('../../viewer/viewer.mjs')\n"
  },
  {
    "path": "viewer/locale/ach/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pot buk mukato\npdfjs-previous-button-label = Mukato\npdfjs-next-button =\n    .title = Pot buk malubo\npdfjs-next-button-label = Malubo\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pot buk\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = pi { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } me { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Jwik Matidi\npdfjs-zoom-out-button-label = Jwik Matidi\npdfjs-zoom-in-button =\n    .title = Kwot Madit\npdfjs-zoom-in-button-label = Kwot Madit\npdfjs-zoom-select =\n    .title = Kwoti\npdfjs-presentation-mode-button =\n    .title = Lokke i kit me tyer\npdfjs-presentation-mode-button-label = Kit me tyer\npdfjs-open-file-button =\n    .title = Yab Pwail\npdfjs-open-file-button-label = Yab\npdfjs-print-button =\n    .title = Go\npdfjs-print-button-label = Go\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Gintic\npdfjs-tools-button-label = Gintic\npdfjs-first-page-button =\n    .title = Cit i pot buk mukwongo\npdfjs-first-page-button-label = Cit i pot buk mukwongo\npdfjs-last-page-button =\n    .title = Cit i pot buk magiko\npdfjs-last-page-button-label = Cit i pot buk magiko\npdfjs-page-rotate-cw-button =\n    .title = Wire i tung lacuc\npdfjs-page-rotate-cw-button-label = Wire i tung lacuc\npdfjs-page-rotate-ccw-button =\n    .title = Wire i tung lacam\npdfjs-page-rotate-ccw-button-label = Wire i tung lacam\npdfjs-cursor-text-select-tool-button =\n    .title = Cak gitic me yero coc\npdfjs-cursor-text-select-tool-button-label = Gitic me yero coc\npdfjs-cursor-hand-tool-button =\n    .title = Cak gitic me cing\npdfjs-cursor-hand-tool-button-label = Gitic cing\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Jami me gin acoya…\npdfjs-document-properties-button-label = Jami me gin acoya…\npdfjs-document-properties-file-name = Nying pwail:\npdfjs-document-properties-file-size = Dit pa pwail:\npdfjs-document-properties-title = Wiye:\npdfjs-document-properties-author = Ngat mucoyo:\npdfjs-document-properties-subject = Subjek:\npdfjs-document-properties-keywords = Lok mapire tek:\npdfjs-document-properties-creation-date = Nino dwe me cwec:\npdfjs-document-properties-modification-date = Nino dwe me yub:\npdfjs-document-properties-creator = Lacwec:\npdfjs-document-properties-producer = Layub PDF:\npdfjs-document-properties-version = Kit PDF:\npdfjs-document-properties-page-count = Kwan me pot buk:\npdfjs-document-properties-page-size = Dit pa potbuk:\npdfjs-document-properties-page-size-unit-inches = i\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = atir\npdfjs-document-properties-page-size-orientation-landscape = arii\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Waraga\npdfjs-document-properties-page-size-name-legal = Cik\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = Eyo\npdfjs-document-properties-linearized-no = Pe\npdfjs-document-properties-close-button = Lor\n\n## Print\n\npdfjs-print-progress-message = Yubo coc me agoya…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Juki\npdfjs-printing-not-supported = Ciko: Layeny ma pe teno goyo liweng.\npdfjs-printing-not-ready = Ciko: PDF pe ocane weng me agoya.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Lok gintic ma inget\npdfjs-toggle-sidebar-button-label = Lok gintic ma inget\npdfjs-document-outline-button =\n    .title = Nyut Wiyewiye me Gin acoya (dii-kiryo me yaro/kano jami weng)\npdfjs-document-outline-button-label = Pek pa gin acoya\npdfjs-attachments-button =\n    .title = Nyut twec\npdfjs-attachments-button-label = Twec\npdfjs-thumbs-button =\n    .title = Nyut cal\npdfjs-thumbs-button-label = Cal\npdfjs-findbar-button =\n    .title = Nong iye gin acoya\npdfjs-findbar-button-label = Nong\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pot buk { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Cal me pot buk { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Nong\n    .placeholder = Nong i dokumen…\npdfjs-find-previous-button =\n    .title = Nong timme pa lok mukato\npdfjs-find-previous-button-label = Mukato\npdfjs-find-next-button =\n    .title = Nong timme pa lok malubo\npdfjs-find-next-button-label = Malubo\npdfjs-find-highlight-checkbox = Ket Lanyut I Weng\npdfjs-find-match-case-checkbox-label = Lok marwate\npdfjs-find-reached-top = Oo iwi gin acoya, omede ki i tere\npdfjs-find-reached-bottom = Oo i agiki me gin acoya, omede ki iwiye\npdfjs-find-not-found = Lok pe ononge\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lac me iye pot buk\npdfjs-page-scale-fit = Porre me pot buk\npdfjs-page-scale-auto = Kwot pire kene\npdfjs-page-scale-actual = Dite kikome\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Bal otime kun cano PDF.\npdfjs-invalid-file-error = Pwail me PDF ma pe atir onyo obale woko.\npdfjs-missing-file-error = Pwail me PDF tye ka rem.\npdfjs-unexpected-response-error = Lagam mape kigeno pa lapok tic.\npdfjs-rendering-error = Bal otime i kare me nyuto pot buk.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Lok angea manok]\n\n## Password\n\npdfjs-password-label = Ket mung me donyo me yabo pwail me PDF man.\npdfjs-password-invalid = Mung me donyo pe atir. Tim ber i tem doki.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Juki\npdfjs-web-fonts-disabled = Kijuko dit pa coc me kakube woko: pe romo tic ki dit pa coc me PDF ma kiketo i kine.\n"
  },
  {
    "path": "viewer/locale/af/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Vorige bladsy\npdfjs-previous-button-label = Vorige\npdfjs-next-button =\n    .title = Volgende bladsy\npdfjs-next-button-label = Volgende\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Bladsy\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = van { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } van { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoem uit\npdfjs-zoom-out-button-label = Zoem uit\npdfjs-zoom-in-button =\n    .title = Zoem in\npdfjs-zoom-in-button-label = Zoem in\npdfjs-zoom-select =\n    .title = Zoem\npdfjs-presentation-mode-button =\n    .title = Wissel na voorleggingsmodus\npdfjs-presentation-mode-button-label = Voorleggingsmodus\npdfjs-open-file-button =\n    .title = Open lêer\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Druk\npdfjs-print-button-label = Druk\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Nutsgoed\npdfjs-tools-button-label = Nutsgoed\npdfjs-first-page-button =\n    .title = Gaan na eerste bladsy\npdfjs-first-page-button-label = Gaan na eerste bladsy\npdfjs-last-page-button =\n    .title = Gaan na laaste bladsy\npdfjs-last-page-button-label = Gaan na laaste bladsy\npdfjs-page-rotate-cw-button =\n    .title = Roteer kloksgewys\npdfjs-page-rotate-cw-button-label = Roteer kloksgewys\npdfjs-page-rotate-ccw-button =\n    .title = Roteer anti-kloksgewys\npdfjs-page-rotate-ccw-button-label = Roteer anti-kloksgewys\npdfjs-cursor-text-select-tool-button =\n    .title = Aktiveer gereedskap om teks te merk\npdfjs-cursor-text-select-tool-button-label = Teksmerkgereedskap\npdfjs-cursor-hand-tool-button =\n    .title = Aktiveer handjie\npdfjs-cursor-hand-tool-button-label = Handjie\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumenteienskappe…\npdfjs-document-properties-button-label = Dokumenteienskappe…\npdfjs-document-properties-file-name = Lêernaam:\npdfjs-document-properties-file-size = Lêergrootte:\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Outeur:\npdfjs-document-properties-subject = Onderwerp:\npdfjs-document-properties-keywords = Sleutelwoorde:\npdfjs-document-properties-creation-date = Skeppingsdatum:\npdfjs-document-properties-modification-date = Wysigingsdatum:\npdfjs-document-properties-creator = Skepper:\npdfjs-document-properties-producer = PDF-vervaardiger:\npdfjs-document-properties-version = PDF-weergawe:\npdfjs-document-properties-page-count = Aantal bladsye:\n\n##\n\npdfjs-document-properties-close-button = Sluit\n\n## Print\n\npdfjs-print-progress-message = Berei tans dokument voor om te druk…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Kanselleer\npdfjs-printing-not-supported = Waarskuwing: Dié blaaier ondersteun nie drukwerk ten volle nie.\npdfjs-printing-not-ready = Waarskuwing: Die PDF is nog nie volledig gelaai vir drukwerk nie.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Sypaneel aan/af\npdfjs-toggle-sidebar-button-label = Sypaneel aan/af\npdfjs-document-outline-button =\n    .title = Wys dokumentskema (dubbelklik om alle items oop/toe te vou)\npdfjs-document-outline-button-label = Dokumentoorsig\npdfjs-attachments-button =\n    .title = Wys aanhegsels\npdfjs-attachments-button-label = Aanhegsels\npdfjs-thumbs-button =\n    .title = Wys duimnaels\npdfjs-thumbs-button-label = Duimnaels\npdfjs-findbar-button =\n    .title = Soek in dokument\npdfjs-findbar-button-label = Vind\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Bladsy { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Duimnael van bladsy { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Vind\n    .placeholder = Soek in dokument…\npdfjs-find-previous-button =\n    .title = Vind die vorige voorkoms van die frase\npdfjs-find-previous-button-label = Vorige\npdfjs-find-next-button =\n    .title = Vind die volgende voorkoms van die frase\npdfjs-find-next-button-label = Volgende\npdfjs-find-highlight-checkbox = Verlig almal\npdfjs-find-match-case-checkbox-label = Kassensitief\npdfjs-find-reached-top = Bokant van dokument is bereik; gaan voort van onder af\npdfjs-find-reached-bottom = Einde van dokument is bereik; gaan voort van bo af\npdfjs-find-not-found = Frase nie gevind nie\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Bladsywydte\npdfjs-page-scale-fit = Pas bladsy\npdfjs-page-scale-auto = Outomatiese zoem\npdfjs-page-scale-actual = Werklike grootte\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = 'n Fout het voorgekom met die laai van die PDF.\npdfjs-invalid-file-error = Ongeldige of korrupte PDF-lêer.\npdfjs-missing-file-error = PDF-lêer is weg.\npdfjs-unexpected-response-error = Onverwagse antwoord van bediener.\npdfjs-rendering-error = 'n Fout het voorgekom toe die bladsy weergegee is.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-annotasie]\n\n## Password\n\npdfjs-password-label = Gee die wagwoord om dié PDF-lêer mee te open.\npdfjs-password-invalid = Ongeldige wagwoord. Probeer gerus weer.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Kanselleer\npdfjs-web-fonts-disabled = Webfonte is gedeaktiveer: kan nie PDF-fonte wat ingebed is, gebruik nie.\n"
  },
  {
    "path": "viewer/locale/an/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pachina anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Pachina siguient\npdfjs-next-button-label = Siguient\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pachina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Achiquir\npdfjs-zoom-out-button-label = Achiquir\npdfjs-zoom-in-button =\n    .title = Agrandir\npdfjs-zoom-in-button-label = Agrandir\npdfjs-zoom-select =\n    .title = Grandaria\npdfjs-presentation-mode-button =\n    .title = Cambear t'o modo de presentación\npdfjs-presentation-mode-button-label = Modo de presentación\npdfjs-open-file-button =\n    .title = Ubrir o fichero\npdfjs-open-file-button-label = Ubrir\npdfjs-print-button =\n    .title = Imprentar\npdfjs-print-button-label = Imprentar\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ferramientas\npdfjs-tools-button-label = Ferramientas\npdfjs-first-page-button =\n    .title = Ir ta la primer pachina\npdfjs-first-page-button-label = Ir ta la primer pachina\npdfjs-last-page-button =\n    .title = Ir ta la zaguer pachina\npdfjs-last-page-button-label = Ir ta la zaguer pachina\npdfjs-page-rotate-cw-button =\n    .title = Chirar enta la dreita\npdfjs-page-rotate-cw-button-label = Chira enta la dreita\npdfjs-page-rotate-ccw-button =\n    .title = Chirar enta la zurda\npdfjs-page-rotate-ccw-button-label = Chirar enta la zurda\npdfjs-cursor-text-select-tool-button =\n    .title = Activar la ferramienta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Ferramienta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar la ferramienta man\npdfjs-cursor-hand-tool-button-label = Ferramienta man\npdfjs-scroll-vertical-button =\n    .title = Usar lo desplazamiento vertical\npdfjs-scroll-vertical-button-label = Desplazamiento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar lo desplazamiento horizontal\npdfjs-scroll-horizontal-button-label = Desplazamiento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Activaar lo desplazamiento contino\npdfjs-scroll-wrapped-button-label = Desplazamiento contino\npdfjs-spread-none-button =\n    .title = No unir vistas de pachinas\npdfjs-spread-none-button-label = Una pachina nomás\npdfjs-spread-odd-button =\n    .title = Mostrar vista de pachinas, con as impars a la zurda\npdfjs-spread-odd-button-label = Doble pachina, impar a la zurda\npdfjs-spread-even-button =\n    .title = Amostrar vista de pachinas, con as pars a la zurda\npdfjs-spread-even-button-label = Doble pachina, para a la zurda\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedatz d'o documento...\npdfjs-document-properties-button-label = Propiedatz d'o documento...\npdfjs-document-properties-file-name = Nombre de fichero:\npdfjs-document-properties-file-size = Grandaria d'o fichero:\npdfjs-document-properties-title = Titol:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Afer:\npdfjs-document-properties-keywords = Parolas clau:\npdfjs-document-properties-creation-date = Calendata de creyación:\npdfjs-document-properties-modification-date = Calendata de modificación:\npdfjs-document-properties-creator = Creyador:\npdfjs-document-properties-producer = Creyador de PDF:\npdfjs-document-properties-version = Versión de PDF:\npdfjs-document-properties-page-count = Numero de pachinas:\npdfjs-document-properties-page-size = Mida de pachina:\npdfjs-document-properties-page-size-unit-inches = pulgadas\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } x { $height } { $unit } { $orientation }\npdfjs-document-properties-page-size-dimension-name-string = { $width } x { $height } { $unit } { $name }, { $orientation }\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web rapida:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Zarrar\n\n## Print\n\npdfjs-print-progress-message = Se ye preparando la documentación pa imprentar…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Pare cuenta: Iste navegador no maneya totalment as impresions.\npdfjs-printing-not-ready = Aviso: Encara no se ha cargau completament o PDF ta imprentar-lo.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Amostrar u amagar a barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Cambiar barra lateral (lo documento contiene esquema/adchuntos/capas)\npdfjs-toggle-sidebar-button-label = Amostrar a barra lateral\npdfjs-document-outline-button =\n    .title = Amostrar esquema d'o documento (fer doble clic pa expandir/compactar totz los items)\npdfjs-document-outline-button-label = Esquema d'o documento\npdfjs-attachments-button =\n    .title = Amostrar os adchuntos\npdfjs-attachments-button-label = Adchuntos\npdfjs-layers-button =\n    .title = Amostrar capas (doble clic para reiniciar totas las capas a lo estau per defecto)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Amostrar as miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-findbar-button =\n    .title = Trobar en o documento\npdfjs-findbar-button-label = Trobar\npdfjs-additional-layers = Capas adicionals\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pachina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura d'a pachina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Trobar\n    .placeholder = Trobar en o documento…\npdfjs-find-previous-button =\n    .title = Trobar l'anterior coincidencia d'a frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Trobar a siguient coincidencia d'a frase\npdfjs-find-next-button-label = Siguient\npdfjs-find-highlight-checkbox = Resaltar-lo tot\npdfjs-find-match-case-checkbox-label = Coincidencia de mayusclas/minusclas\npdfjs-find-entire-word-checkbox-label = Parolas completas\npdfjs-find-reached-top = S'ha plegau a l'inicio d'o documento, se contina dende baixo\npdfjs-find-reached-bottom = S'ha plegau a la fin d'o documento, se contina dende alto\npdfjs-find-not-found = No s'ha trobau a frase\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Amplaria d'a pachina\npdfjs-page-scale-fit = Achuste d'a pachina\npdfjs-page-scale-auto = Grandaria automatica\npdfjs-page-scale-actual = Grandaria actual\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = S'ha produciu una error en cargar o PDF.\npdfjs-invalid-file-error = O PDF no ye valido u ye estorbau.\npdfjs-missing-file-error = No i ha fichero PDF.\npdfjs-unexpected-response-error = Respuesta a lo servicio inasperada.\npdfjs-rendering-error = Ha ocurriu una error en renderizar a pachina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotación { $type }]\n\n## Password\n\npdfjs-password-label = Introduzca a clau ta ubrir iste fichero PDF.\npdfjs-password-invalid = Clau invalida. Torna a intentar-lo.\npdfjs-password-ok-button = Acceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = As fuents web son desactivadas: no se puet incrustar fichers PDF.\n"
  },
  {
    "path": "viewer/locale/ar/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = الصفحة السابقة\npdfjs-previous-button-label = السابقة\npdfjs-next-button =\n    .title = الصفحة التالية\npdfjs-next-button-label = التالية\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = صفحة\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = من { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } من { $pagesCount })\npdfjs-zoom-out-button =\n    .title = بعّد\npdfjs-zoom-out-button-label = بعّد\npdfjs-zoom-in-button =\n    .title = قرّب\npdfjs-zoom-in-button-label = قرّب\npdfjs-zoom-select =\n    .title = التقريب\npdfjs-presentation-mode-button =\n    .title = انتقل لوضع العرض التقديمي\npdfjs-presentation-mode-button-label = وضع العرض التقديمي\npdfjs-open-file-button =\n    .title = افتح ملفًا\npdfjs-open-file-button-label = افتح\npdfjs-print-button =\n    .title = اطبع\npdfjs-print-button-label = اطبع\npdfjs-save-button =\n    .title = احفظ\npdfjs-save-button-label = احفظ\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = نزّل\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = نزّل\npdfjs-bookmark-button =\n    .title = الصفحة الحالية (عرض URL من الصفحة الحالية)\npdfjs-bookmark-button-label = الصفحة الحالية\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = الأدوات\npdfjs-tools-button-label = الأدوات\npdfjs-first-page-button =\n    .title = انتقل إلى الصفحة الأولى\npdfjs-first-page-button-label = انتقل إلى الصفحة الأولى\npdfjs-last-page-button =\n    .title = انتقل إلى الصفحة الأخيرة\npdfjs-last-page-button-label = انتقل إلى الصفحة الأخيرة\npdfjs-page-rotate-cw-button =\n    .title = أدر باتجاه عقارب الساعة\npdfjs-page-rotate-cw-button-label = أدر باتجاه عقارب الساعة\npdfjs-page-rotate-ccw-button =\n    .title = أدر بعكس اتجاه عقارب الساعة\npdfjs-page-rotate-ccw-button-label = أدر بعكس اتجاه عقارب الساعة\npdfjs-cursor-text-select-tool-button =\n    .title = فعّل أداة اختيار النص\npdfjs-cursor-text-select-tool-button-label = أداة اختيار النص\npdfjs-cursor-hand-tool-button =\n    .title = فعّل أداة اليد\npdfjs-cursor-hand-tool-button-label = أداة اليد\npdfjs-scroll-page-button =\n    .title = استخدم تمرير الصفحة\npdfjs-scroll-page-button-label = تمرير الصفحة\npdfjs-scroll-vertical-button =\n    .title = استخدم التمرير الرأسي\npdfjs-scroll-vertical-button-label = التمرير الرأسي\npdfjs-scroll-horizontal-button =\n    .title = استخدم التمرير الأفقي\npdfjs-scroll-horizontal-button-label = التمرير الأفقي\npdfjs-scroll-wrapped-button =\n    .title = استخدم التمرير الملتف\npdfjs-scroll-wrapped-button-label = التمرير الملتف\npdfjs-spread-none-button =\n    .title = لا تدمج هوامش الصفحات مع بعضها البعض\npdfjs-spread-none-button-label = بلا هوامش\npdfjs-spread-odd-button =\n    .title = ادمج هوامش الصفحات الفردية\npdfjs-spread-odd-button-label = هوامش الصفحات الفردية\npdfjs-spread-even-button =\n    .title = ادمج هوامش الصفحات الزوجية\npdfjs-spread-even-button-label = هوامش الصفحات الزوجية\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = خصائص المستند…\npdfjs-document-properties-button-label = خصائص المستند…\npdfjs-document-properties-file-name = اسم الملف:\npdfjs-document-properties-file-size = حجم الملف:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } ك.بايت ({ $b } بايتات)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } م.بايت ({ $b } بايتات)\npdfjs-document-properties-title = العنوان:\npdfjs-document-properties-author = المؤلف:\npdfjs-document-properties-subject = الموضوع:\npdfjs-document-properties-keywords = الكلمات الأساسية:\npdfjs-document-properties-creation-date = تاريخ الإنشاء:\npdfjs-document-properties-modification-date = تاريخ التعديل:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = المنشئ:\npdfjs-document-properties-producer = منتج PDF:\npdfjs-document-properties-version = إصدارة PDF:\npdfjs-document-properties-page-count = عدد الصفحات:\npdfjs-document-properties-page-size = مقاس الورقة:\npdfjs-document-properties-page-size-unit-inches = بوصة\npdfjs-document-properties-page-size-unit-millimeters = ملم\npdfjs-document-properties-page-size-orientation-portrait = طوليّ\npdfjs-document-properties-page-size-orientation-landscape = عرضيّ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = خطاب\npdfjs-document-properties-page-size-name-legal = قانونيّ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = ‏{ $width } × ‏{ $height } ‏{ $unit } (‏{ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = ‏{ $width } × ‏{ $height } ‏{ $unit } (‏{ $name }، { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = العرض السريع عبر الوِب:\npdfjs-document-properties-linearized-yes = نعم\npdfjs-document-properties-linearized-no = لا\npdfjs-document-properties-close-button = أغلق\n\n## Print\n\npdfjs-print-progress-message = يُحضّر المستند للطباعة…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }٪\npdfjs-print-progress-close-button = ألغِ\npdfjs-printing-not-supported = تحذير: لا يدعم هذا المتصفح الطباعة بشكل كامل.\npdfjs-printing-not-ready = تحذير: ملف PDF لم يُحمّل كاملًا للطباعة.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = بدّل ظهور الشريط الجانبي\npdfjs-toggle-sidebar-notification-button =\n    .title = بدّل ظهور الشريط الجانبي (يحتوي المستند على مخطط أو مرفقات أو طبقات)\npdfjs-toggle-sidebar-button-label = بدّل ظهور الشريط الجانبي\npdfjs-document-outline-button =\n    .title = اعرض فهرس المستند (نقر مزدوج لتمديد أو تقليص كل العناصر)\npdfjs-document-outline-button-label = مخطط المستند\npdfjs-attachments-button =\n    .title = اعرض المرفقات\npdfjs-attachments-button-label = المُرفقات\npdfjs-layers-button =\n    .title = اعرض الطبقات (انقر مرتين لتصفير كل الطبقات إلى الحالة المبدئية)\npdfjs-layers-button-label = ‏‏الطبقات\npdfjs-thumbs-button =\n    .title = اعرض مُصغرات\npdfjs-thumbs-button-label = مُصغّرات\npdfjs-current-outline-item-button =\n    .title = ابحث عن عنصر المخطّط التفصيلي الحالي\npdfjs-current-outline-item-button-label = عنصر المخطّط التفصيلي الحالي\npdfjs-findbar-button =\n    .title = ابحث في المستند\npdfjs-findbar-button-label = ابحث\npdfjs-additional-layers = الطبقات الإضافية\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = صفحة { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = مصغّرة صفحة { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ابحث\n    .placeholder = ابحث في المستند…\npdfjs-find-previous-button =\n    .title = ابحث عن التّواجد السّابق للعبارة\npdfjs-find-previous-button-label = السابق\npdfjs-find-next-button =\n    .title = ابحث عن التّواجد التّالي للعبارة\npdfjs-find-next-button-label = التالي\npdfjs-find-highlight-checkbox = أبرِز الكل\npdfjs-find-match-case-checkbox-label = طابق حالة الأحرف\npdfjs-find-match-diacritics-checkbox-label = طابِق التشكيل\npdfjs-find-entire-word-checkbox-label = كلمات كاملة\npdfjs-find-reached-top = تابعت من الأسفل بعدما وصلت إلى بداية المستند\npdfjs-find-reached-bottom = تابعت من الأعلى بعدما وصلت إلى نهاية المستند\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [zero] لا  مطابقة\n        [one] { $current } من أصل { $total } مطابقة\n        [two] { $current } من أصل { $total } مطابقة\n        [few] { $current } من أصل { $total } مطابقة\n        [many] { $current } من أصل { $total } مطابقة\n       *[other] { $current } من أصل { $total } مطابقة\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [zero] { $limit } مطابقة\n        [one] أكثر من { $limit } مطابقة\n        [two] أكثر من { $limit } مطابقة\n        [few] أكثر من { $limit } مطابقة\n        [many] أكثر من { $limit } مطابقة\n       *[other] أكثر من { $limit } مطابقات\n    }\npdfjs-find-not-found = لا وجود للعبارة\n\n## Predefined zoom values\n\npdfjs-page-scale-width = عرض الصفحة\npdfjs-page-scale-fit = ملائمة الصفحة\npdfjs-page-scale-auto = تقريب تلقائي\npdfjs-page-scale-actual = الحجم الفعلي\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }٪\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = صفحة { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = حدث عطل أثناء تحميل ملف PDF.\npdfjs-invalid-file-error = ملف PDF تالف أو غير صحيح.\npdfjs-missing-file-error = ملف PDF غير موجود.\npdfjs-unexpected-response-error = استجابة خادوم غير متوقعة.\npdfjs-rendering-error = حدث خطأ أثناء عرض الصفحة.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [تعليق { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = أدخل لكلمة السر لفتح هذا الملف.\npdfjs-password-invalid = كلمة سر خطأ. من فضلك أعد المحاولة.\npdfjs-password-ok-button = حسنا\npdfjs-password-cancel-button = ألغِ\npdfjs-web-fonts-disabled = خطوط الوب مُعطّلة: تعذّر استخدام خطوط PDF المُضمّنة.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = نص\npdfjs-editor-free-text-button-label = نص\npdfjs-editor-ink-button =\n    .title = ارسم\npdfjs-editor-ink-button-label = ارسم\npdfjs-editor-stamp-button =\n    .title = أضِف أو حرّر الصور\npdfjs-editor-stamp-button-label = أضِف أو حرّر الصور\npdfjs-editor-highlight-button =\n    .title = أبرِز\npdfjs-editor-highlight-button-label = أبرِز\npdfjs-highlight-floating-button1 =\n    .title = أبرِز\n    .aria-label = أبرِز\npdfjs-highlight-floating-button-label = أبرِز\npdfjs-editor-signature-button =\n    .title = أضِف توقيع\npdfjs-editor-signature-button-label = أضِف توقيع\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = محرِّر الإبراز\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = محرِّر الرسم\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = محرِّر التوقيع: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = محرِّر الصور\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = أزِل الرسم\npdfjs-editor-remove-freetext-button =\n    .title = أزِل النص\npdfjs-editor-remove-stamp-button =\n    .title = أزِل الصورة\npdfjs-editor-remove-highlight-button =\n    .title = أزِل الإبراز\npdfjs-editor-remove-signature-button =\n    .title = أزِل التوقيع\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = اللون\npdfjs-editor-free-text-size-input = الحجم\npdfjs-editor-ink-color-input = اللون\npdfjs-editor-ink-thickness-input = السماكة\npdfjs-editor-ink-opacity-input = العتامة\npdfjs-editor-stamp-add-image-button =\n    .title = أضِف صورة\npdfjs-editor-stamp-add-image-button-label = أضِف صورة\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = السماكة\npdfjs-editor-free-highlight-thickness-title =\n    .title = غيّر السُمك عند إبراز عناصر أُخرى غير النص\npdfjs-editor-add-signature-container =\n    .aria-label = عناصر التحكم في التوقيع والتوقيعات المحفوظة\npdfjs-editor-signature-add-signature-button =\n    .title = أضِف توقيع جديد\npdfjs-editor-signature-add-signature-button-label = أضِف توقيع جديد\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = التوقيع المحفوظ: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = محرِّر النص\n    .default-content = ابدأ في كتابة…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = نص بديل\npdfjs-editor-alt-text-edit-button =\n    .aria-label = حرّر النص البديل\npdfjs-editor-alt-text-dialog-label = اختر خيار\npdfjs-editor-alt-text-dialog-description = يساعد النص البديل عندما لا يتمكن الأشخاص من رؤية الصورة أو عندما لا يتم تحميلها.\npdfjs-editor-alt-text-add-description-label = أضِف وصف\npdfjs-editor-alt-text-add-description-description = استهدف جملتين تصفان الموضوع أو الإعداد أو الإجراءات.\npdfjs-editor-alt-text-mark-decorative-label = علّمها على أنها زخرفية\npdfjs-editor-alt-text-mark-decorative-description = يُستخدم هذا في الصور المزخرفة، مثل الحدود أو العلامات المائية.\npdfjs-editor-alt-text-cancel-button = ألغِ\npdfjs-editor-alt-text-save-button = احفظ\npdfjs-editor-alt-text-decorative-tooltip = عُلّمت على أنها زخرفية\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = على سبيل المثال، \"يجلس شاب على الطاولة لتناول وجبة\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = نص بديل\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = الزاوية اليُسرى العُليا — غيّر الحجم\npdfjs-editor-resizer-top-middle =\n    .aria-label = أعلى الوسط - غيّر الحجم\npdfjs-editor-resizer-top-right =\n    .aria-label = الزاوية اليُمنى العُليا - غيّر الحجم\npdfjs-editor-resizer-middle-right =\n    .aria-label = اليمين الأوسط - غيّر الحجم\npdfjs-editor-resizer-bottom-right =\n    .aria-label = الزاوية اليُمنى السُفلى - غيّر الحجم\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = أسفل الوسط - غيّر الحجم\npdfjs-editor-resizer-bottom-left =\n    .aria-label = الزاوية اليُسرى السُفلية - غيّر الحجم\npdfjs-editor-resizer-middle-left =\n    .aria-label = مُنتصف اليسار - غيّر الحجم\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = أبرِز اللون\npdfjs-editor-colorpicker-button =\n    .title = غيّر اللون\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = اختيارات الألوان\npdfjs-editor-colorpicker-yellow =\n    .title = أصفر\npdfjs-editor-colorpicker-green =\n    .title = أخضر\npdfjs-editor-colorpicker-blue =\n    .title = أزرق\npdfjs-editor-colorpicker-pink =\n    .title = وردي\npdfjs-editor-colorpicker-red =\n    .title = أحمر\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = أظهِر الكل\npdfjs-editor-highlight-show-all-button =\n    .title = أظهِر الكل\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = حرّر النص البديل (وصف الصورة)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = أضِف النص البديل (وصف الصورة)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = اكتب وصفك هنا…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = وصف مختصر للأشخاص الذين لا يستطيعون رؤية الصورة أو عندما لا يتم تحميل الصورة.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = أُنشئ هذا النص البديل تلقائيًا وقد يكون غير دقيق.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = اطّلع على المزيد\npdfjs-editor-new-alt-text-create-automatically-button-label = أنشئ نص بديل تلقائيًا\npdfjs-editor-new-alt-text-not-now-button = ليس الآن\npdfjs-editor-new-alt-text-error-title = لم يتمكن من إنشاء نص بديل تلقائيًا\npdfjs-editor-new-alt-text-error-description = يُرجى كتابة نص بديلك أو المحاولة مرة أخرى لاحقًا.\npdfjs-editor-new-alt-text-error-close-button = أغلق\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = يُنزّل نموذج الذكاء الاصطناعي للنص البديل ({ $downloadedSize } من { $totalSize } م.بايت)\n    .aria-valuetext = يُنزّل نموذج الذكاء الاصطناعي للنص البديل ({ $downloadedSize } من { $totalSize } م.بايت)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = أُضِيف نص بديل\npdfjs-editor-new-alt-text-added-button-label = أُضِيف نص بديل\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = نص بديل مفقود\npdfjs-editor-new-alt-text-missing-button-label = نص بديل مفقود\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = راجع النص البديل\npdfjs-editor-new-alt-text-to-review-button-label = راجع النص البديل\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = أُنشئ تلقائيًا: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = إعدادات النص البديل للصورة\npdfjs-image-alt-text-settings-button-label = إعدادات النص البديل للصورة\npdfjs-editor-alt-text-settings-dialog-label = إعدادات النص البديل للصورة\npdfjs-editor-alt-text-settings-automatic-title = نص بديل تلقائي\npdfjs-editor-alt-text-settings-create-model-button-label = أنشئ نص بديل تلقائيًا\npdfjs-editor-alt-text-settings-create-model-description = يقترح أوصافًا لمساعدة الأشخاص الذين لا يستطيعون رؤية الصورة أو عندما لا يتم تحميل الصورة.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = نموذج الذكاء الاصطناعي للنص البديل ({ $totalSize } م.بايت)\npdfjs-editor-alt-text-settings-ai-model-description = يتم تشغيله محليًا على جهازك حتى تظل بياناتك خاصة. مطلوب للنص البديل التلقائي.\npdfjs-editor-alt-text-settings-delete-model-button = احذف\npdfjs-editor-alt-text-settings-download-model-button = نزّل\npdfjs-editor-alt-text-settings-downloading-model-button = يُنزل…\npdfjs-editor-alt-text-settings-editor-title = مُحرِّر النص البديل\npdfjs-editor-alt-text-settings-show-dialog-button-label = أظهِر مُحرِّر النص البديل على الفور عند إضافة صورة\npdfjs-editor-alt-text-settings-show-dialog-description = يساعدك على التأكد من أن جميع صورك تحتوي على نص بديل.\npdfjs-editor-alt-text-settings-close-button = أغلق\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = أُزِيل البرز\npdfjs-editor-undo-bar-message-freetext = أُزيل النص\npdfjs-editor-undo-bar-message-ink = أُزِيلت الرسمة\npdfjs-editor-undo-bar-message-stamp = أُزيلت الصورة\npdfjs-editor-undo-bar-message-signature = أُزيل التوقيع\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [zero] أُزيل لا تعليق\n        [one] أُزيل تعليق\n        [two] أُزيل تعليقين\n        [few] أُزيلت { $count } تعليقات\n        [many] أُزيل { $count } تعليق\n       *[other] أُزيل { $count } تعليق\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = تراجع\npdfjs-editor-undo-bar-undo-button-label = تراجع\npdfjs-editor-undo-bar-close-button =\n    .title = أغلق\npdfjs-editor-undo-bar-close-button-label = أغلق\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = يتيح هذا النموذج للمستخدم إنشاء توقيع لإضافته إلى مستند PDF. ويمكن للمستخدم تحرير الاسم (الذي يعمل أيضًا كنص بديل)، وحفظ التوقيع بشكل اختياري للاستخدام المتكرر.\npdfjs-editor-add-signature-dialog-title = أضِف توقيعا\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = اكتب\n    .title = اكتب\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = ارسم\n    .title = ارسم\npdfjs-editor-add-signature-image-button = صورة\n    .title = صورة\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = اكتب توقيعك\n    .placeholder = اكتب توقيعك\npdfjs-editor-add-signature-draw-placeholder = ارسم توقيعك\npdfjs-editor-add-signature-draw-thickness-range-label = السماكة\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = سمك الرسم: { $thickness }\npdfjs-editor-add-signature-image-placeholder = اسحب الملف هنا لرفعه\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] أو اختر ملفات الصور\n       *[other] أو تصفح ملفات الصور\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = الوصف (نص بديل)\npdfjs-editor-add-signature-description-input =\n    .title = الوصف (نص بديل)\npdfjs-editor-add-signature-description-default-when-drawing = توقيع\npdfjs-editor-add-signature-clear-button-label = امحُ التوقيع\npdfjs-editor-add-signature-clear-button =\n    .title = امحُ التوقيع\npdfjs-editor-add-signature-save-checkbox = احفظ التوقيع\npdfjs-editor-add-signature-save-warning-message = لقد وصلت إلى الحد الأقصى وهو 5 توقيعات محفوظة. أزِل توقيع واحد لحفظ المزيد.\npdfjs-editor-add-signature-image-upload-error-title = تعذر رفع الصورة.\npdfjs-editor-add-signature-image-upload-error-description = تحقق من اتصال الشبكة لديك أو جرّب صورة أخرى.\npdfjs-editor-add-signature-error-close-button = أغلق\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = ألغِ\npdfjs-editor-add-signature-add-button = أضِف\npdfjs-editor-edit-signature-update-button = حدّث\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = أزِل التوقيع المحفوظ\npdfjs-editor-delete-signature-button-label1 = أزِل التوقيع المحفوظ\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = عدّل الوصف\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = عدّل الوصف\n"
  },
  {
    "path": "viewer/locale/ast/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Páxina anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Páxina siguiente\npdfjs-next-button-label = Siguiente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Páxina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Alloñar\npdfjs-zoom-out-button-label = Alloña\npdfjs-zoom-in-button =\n    .title = Averar\npdfjs-zoom-in-button-label = Avera\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Cambiar al mou de presentación\npdfjs-presentation-mode-button-label = Mou de presentación\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprentar\npdfjs-print-button-label = Imprentar\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ferramientes\npdfjs-tools-button-label = Ferramientes\npdfjs-first-page-button-label = Dir a la primer páxina\npdfjs-last-page-button-label = Dir a la última páxina\npdfjs-page-rotate-cw-button =\n    .title = Voltia a la derecha\npdfjs-page-rotate-cw-button-label = Voltiar a la derecha\npdfjs-page-rotate-ccw-button =\n    .title = Voltia a la esquierda\npdfjs-page-rotate-ccw-button-label = Voltiar a la esquierda\npdfjs-cursor-text-select-tool-button =\n    .title = Activa la ferramienta d'esbilla de testu\npdfjs-cursor-text-select-tool-button-label = Ferramienta d'esbilla de testu\npdfjs-cursor-hand-tool-button =\n    .title = Activa la ferramienta de mano\npdfjs-cursor-hand-tool-button-label = Ferramienta de mano\npdfjs-scroll-vertical-button =\n    .title = Usa'l desplazamientu vertical\npdfjs-scroll-vertical-button-label = Desplazamientu vertical\npdfjs-scroll-horizontal-button =\n    .title = Usa'l desplazamientu horizontal\npdfjs-scroll-horizontal-button-label = Desplazamientu horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usa'l desplazamientu continuu\npdfjs-scroll-wrapped-button-label = Desplazamientu continuu\npdfjs-spread-none-button-label = Fueyes individuales\npdfjs-spread-odd-button-label = Fueyes pares\npdfjs-spread-even-button-label = Fueyes impares\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedaes del documentu…\npdfjs-document-properties-button-label = Propiedaes del documentu…\npdfjs-document-properties-file-name = Nome del ficheru:\npdfjs-document-properties-file-size = Tamañu del ficheru:\npdfjs-document-properties-title = Títulu:\npdfjs-document-properties-keywords = Pallabres clave:\npdfjs-document-properties-creation-date = Data de creación:\npdfjs-document-properties-modification-date = Data de modificación:\npdfjs-document-properties-producer = Productor del PDF:\npdfjs-document-properties-version = Versión del PDF:\npdfjs-document-properties-page-count = Númberu de páxines:\npdfjs-document-properties-page-size = Tamañu de páxina:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web rápida:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = Non\npdfjs-document-properties-close-button = Zarrar\n\n## Print\n\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Encaboxar\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Alternar la barra llateral\npdfjs-attachments-button =\n    .title = Amosar los axuntos\npdfjs-attachments-button-label = Axuntos\npdfjs-layers-button-label = Capes\npdfjs-thumbs-button =\n    .title = Amosar les miniatures\npdfjs-thumbs-button-label = Miniatures\npdfjs-findbar-button-label = Atopar\npdfjs-additional-layers = Capes adicionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Páxina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button-label = Siguiente\npdfjs-find-entire-word-checkbox-label = Pallabres completes\npdfjs-find-reached-top = Algamóse'l comienzu de la páxina, síguese dende abaxo\npdfjs-find-reached-bottom = Algamóse la fin del documentu, síguese dende arriba\n\n## Predefined zoom values\n\npdfjs-page-scale-auto = Zoom automáticu\npdfjs-page-scale-actual = Tamañu real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Páxina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Asocedió un fallu mentanto se cargaba'l PDF.\n\n## Password\n\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Encaboxar\n"
  },
  {
    "path": "viewer/locale/az/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Əvvəlki səhifə\npdfjs-previous-button-label = Əvvəlkini tap\npdfjs-next-button =\n    .title = Növbəti səhifə\npdfjs-next-button-label = İrəli\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Səhifə\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Uzaqlaş\npdfjs-zoom-out-button-label = Uzaqlaş\npdfjs-zoom-in-button =\n    .title = Yaxınlaş\npdfjs-zoom-in-button-label = Yaxınlaş\npdfjs-zoom-select =\n    .title = Yaxınlaşdırma\npdfjs-presentation-mode-button =\n    .title = Təqdimat Rejiminə Keç\npdfjs-presentation-mode-button-label = Təqdimat Rejimi\npdfjs-open-file-button =\n    .title = Fayl Aç\npdfjs-open-file-button-label = Aç\npdfjs-print-button =\n    .title = Yazdır\npdfjs-print-button-label = Yazdır\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Alətlər\npdfjs-tools-button-label = Alətlər\npdfjs-first-page-button =\n    .title = İlk Səhifəyə get\npdfjs-first-page-button-label = İlk Səhifəyə get\npdfjs-last-page-button =\n    .title = Son Səhifəyə get\npdfjs-last-page-button-label = Son Səhifəyə get\npdfjs-page-rotate-cw-button =\n    .title = Saat İstiqamətində Fırlat\npdfjs-page-rotate-cw-button-label = Saat İstiqamətində Fırlat\npdfjs-page-rotate-ccw-button =\n    .title = Saat İstiqamətinin Əksinə Fırlat\npdfjs-page-rotate-ccw-button-label = Saat İstiqamətinin Əksinə Fırlat\npdfjs-cursor-text-select-tool-button =\n    .title = Yazı seçmə alətini aktivləşdir\npdfjs-cursor-text-select-tool-button-label = Yazı seçmə aləti\npdfjs-cursor-hand-tool-button =\n    .title = Əl alətini aktivləşdir\npdfjs-cursor-hand-tool-button-label = Əl aləti\npdfjs-scroll-vertical-button =\n    .title = Şaquli sürüşdürmə işlət\npdfjs-scroll-vertical-button-label = Şaquli sürüşdürmə\npdfjs-scroll-horizontal-button =\n    .title = Üfüqi sürüşdürmə işlət\npdfjs-scroll-horizontal-button-label = Üfüqi sürüşdürmə\npdfjs-scroll-wrapped-button =\n    .title = Bükülü sürüşdürmə işlət\npdfjs-scroll-wrapped-button-label = Bükülü sürüşdürmə\npdfjs-spread-none-button =\n    .title = Yan-yana birləşdirilmiş səhifələri işlətmə\npdfjs-spread-none-button-label = Birləşdirmə\npdfjs-spread-odd-button =\n    .title = Yan-yana birləşdirilmiş səhifələri tək nömrəli səhifələrdən başlat\npdfjs-spread-odd-button-label = Tək nömrəli\npdfjs-spread-even-button =\n    .title = Yan-yana birləşdirilmiş səhifələri cüt nömrəli səhifələrdən başlat\npdfjs-spread-even-button-label = Cüt nömrəli\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Sənəd xüsusiyyətləri…\npdfjs-document-properties-button-label = Sənəd xüsusiyyətləri…\npdfjs-document-properties-file-name = Fayl adı:\npdfjs-document-properties-file-size = Fayl ölçüsü:\npdfjs-document-properties-title = Başlık:\npdfjs-document-properties-author = Müəllif:\npdfjs-document-properties-subject = Mövzu:\npdfjs-document-properties-keywords = Açar sözlər:\npdfjs-document-properties-creation-date = Yaradılış Tarixi :\npdfjs-document-properties-modification-date = Dəyişdirilmə Tarixi :\npdfjs-document-properties-creator = Yaradan:\npdfjs-document-properties-producer = PDF yaradıcısı:\npdfjs-document-properties-version = PDF versiyası:\npdfjs-document-properties-page-count = Səhifə sayı:\npdfjs-document-properties-page-size = Səhifə Ölçüsü:\npdfjs-document-properties-page-size-unit-inches = inç\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portret\npdfjs-document-properties-page-size-orientation-landscape = albom\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Məktub\npdfjs-document-properties-page-size-name-legal = Hüquqi\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Bəli\npdfjs-document-properties-linearized-no = Xeyr\npdfjs-document-properties-close-button = Qapat\n\n## Print\n\npdfjs-print-progress-message = Sənəd çap üçün hazırlanır…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Ləğv et\npdfjs-printing-not-supported = Xəbərdarlıq: Çap bu səyyah tərəfindən tam olaraq dəstəklənmir.\npdfjs-printing-not-ready = Xəbərdarlıq: PDF çap üçün tam yüklənməyib.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Yan Paneli Aç/Bağla\npdfjs-toggle-sidebar-notification-button =\n    .title = Yan paneli çevir (sənəddə icmal/bağlamalar/laylar mövcuddur)\npdfjs-toggle-sidebar-button-label = Yan Paneli Aç/Bağla\npdfjs-document-outline-button =\n    .title = Sənədin eskizini göstər (bütün bəndləri açmaq/yığmaq üçün iki dəfə klikləyin)\npdfjs-document-outline-button-label = Sənəd strukturu\npdfjs-attachments-button =\n    .title = Bağlamaları göstər\npdfjs-attachments-button-label = Bağlamalar\npdfjs-layers-button =\n    .title = Layları göstər (bütün layları ilkin halına sıfırlamaq üçün iki dəfə klikləyin)\npdfjs-layers-button-label = Laylar\npdfjs-thumbs-button =\n    .title = Kiçik şəkilləri göstər\npdfjs-thumbs-button-label = Kiçik şəkillər\npdfjs-findbar-button =\n    .title = Sənəddə Tap\npdfjs-findbar-button-label = Tap\npdfjs-additional-layers = Əlavə laylar\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Səhifə{ $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } səhifəsinin kiçik vəziyyəti\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Tap\n    .placeholder = Sənəddə tap…\npdfjs-find-previous-button =\n    .title = Bir öncəki uyğun gələn sözü tapır\npdfjs-find-previous-button-label = Geri\npdfjs-find-next-button =\n    .title = Bir sonrakı uyğun gələn sözü tapır\npdfjs-find-next-button-label = İrəli\npdfjs-find-highlight-checkbox = İşarələ\npdfjs-find-match-case-checkbox-label = Böyük/kiçik hərfə həssaslıq\npdfjs-find-entire-word-checkbox-label = Tam sözlər\npdfjs-find-reached-top = Sənədin yuxarısına çatdı, aşağıdan davam edir\npdfjs-find-reached-bottom = Sənədin sonuna çatdı, yuxarıdan davam edir\npdfjs-find-not-found = Uyğunlaşma tapılmadı\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Səhifə genişliyi\npdfjs-page-scale-fit = Səhifəni sığdır\npdfjs-page-scale-auto = Avtomatik yaxınlaşdır\npdfjs-page-scale-actual = Hazırkı Həcm\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF yüklenərkən bir səhv yarandı.\npdfjs-invalid-file-error = Səhv və ya zədələnmiş olmuş PDF fayl.\npdfjs-missing-file-error = PDF fayl yoxdur.\npdfjs-unexpected-response-error = Gözlənilməz server cavabı.\npdfjs-rendering-error = Səhifə göstərilərkən səhv yarandı.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotasiyası]\n\n## Password\n\npdfjs-password-label = Bu PDF faylı açmaq üçün parolu daxil edin.\npdfjs-password-invalid = Parol səhvdir. Bir daha yoxlayın.\npdfjs-password-ok-button = Tamam\npdfjs-password-cancel-button = Ləğv et\npdfjs-web-fonts-disabled = Web Şriftlər söndürülüb: yerləşdirilmiş PDF şriftlərini istifadə etmək mümkün deyil.\n"
  },
  {
    "path": "viewer/locale/be/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Папярэдняя старонка\npdfjs-previous-button-label = Папярэдняя\npdfjs-next-button =\n    .title = Наступная старонка\npdfjs-next-button-label = Наступная\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Старонка\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = з { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } з { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Паменшыць\npdfjs-zoom-out-button-label = Паменшыць\npdfjs-zoom-in-button =\n    .title = Павялічыць\npdfjs-zoom-in-button-label = Павялічыць\npdfjs-zoom-select =\n    .title = Павялічэнне тэксту\npdfjs-presentation-mode-button =\n    .title = Пераключыцца ў рэжым паказу\npdfjs-presentation-mode-button-label = Рэжым паказу\npdfjs-open-file-button =\n    .title = Адкрыць файл\npdfjs-open-file-button-label = Адкрыць\npdfjs-print-button =\n    .title = Друкаваць\npdfjs-print-button-label = Друкаваць\npdfjs-save-button =\n    .title = Захаваць\npdfjs-save-button-label = Захаваць\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Сцягнуць\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Сцягнуць\npdfjs-bookmark-button =\n    .title = Дзейная старонка (паглядзець URL-адрас з дзейнай старонкі)\npdfjs-bookmark-button-label = Цяперашняя старонка\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Прылады\npdfjs-tools-button-label = Прылады\npdfjs-first-page-button =\n    .title = Перайсці на першую старонку\npdfjs-first-page-button-label = Перайсці на першую старонку\npdfjs-last-page-button =\n    .title = Перайсці на апошнюю старонку\npdfjs-last-page-button-label = Перайсці на апошнюю старонку\npdfjs-page-rotate-cw-button =\n    .title = Павярнуць па сонцу\npdfjs-page-rotate-cw-button-label = Павярнуць па сонцу\npdfjs-page-rotate-ccw-button =\n    .title = Павярнуць супраць сонца\npdfjs-page-rotate-ccw-button-label = Павярнуць супраць сонца\npdfjs-cursor-text-select-tool-button =\n    .title = Уключыць прыладу выбару тэксту\npdfjs-cursor-text-select-tool-button-label = Прылада выбару тэксту\npdfjs-cursor-hand-tool-button =\n    .title = Уключыць ручную прыладу\npdfjs-cursor-hand-tool-button-label = Ручная прылада\npdfjs-scroll-page-button =\n    .title = Выкарыстоўваць пракрутку старонкi\npdfjs-scroll-page-button-label = Пракрутка старонкi\npdfjs-scroll-vertical-button =\n    .title = Ужываць вертыкальную пракрутку\npdfjs-scroll-vertical-button-label = Вертыкальная пракрутка\npdfjs-scroll-horizontal-button =\n    .title = Ужываць гарызантальную пракрутку\npdfjs-scroll-horizontal-button-label = Гарызантальная пракрутка\npdfjs-scroll-wrapped-button =\n    .title = Ужываць маштабавальную пракрутку\npdfjs-scroll-wrapped-button-label = Маштабавальная пракрутка\npdfjs-spread-none-button =\n    .title = Не выкарыстоўваць разгорнутыя старонкі\npdfjs-spread-none-button-label = Без разгорнутых старонак\npdfjs-spread-odd-button =\n    .title = Разгорнутыя старонкі пачынаючы з няцотных нумароў\npdfjs-spread-odd-button-label = Няцотныя старонкі злева\npdfjs-spread-even-button =\n    .title = Разгорнутыя старонкі пачынаючы з цотных нумароў\npdfjs-spread-even-button-label = Цотныя старонкі злева\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Уласцівасці дакумента…\npdfjs-document-properties-button-label = Уласцівасці дакумента…\npdfjs-document-properties-file-name = Назва файла:\npdfjs-document-properties-file-size = Памер файла:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } КБ ({ $b } байтаў)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байтаў)\npdfjs-document-properties-title = Загаловак:\npdfjs-document-properties-author = Аўтар:\npdfjs-document-properties-subject = Тэма:\npdfjs-document-properties-keywords = Ключавыя словы:\npdfjs-document-properties-creation-date = Дата стварэння:\npdfjs-document-properties-modification-date = Дата змянення:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Стваральнік:\npdfjs-document-properties-producer = Вырабнік PDF:\npdfjs-document-properties-version = Версія PDF:\npdfjs-document-properties-page-count = Колькасць старонак:\npdfjs-document-properties-page-size = Памер старонкі:\npdfjs-document-properties-page-size-unit-inches = цаляў\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = кніжная\npdfjs-document-properties-page-size-orientation-landscape = альбомная\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Хуткі прагляд у Інтэрнэце:\npdfjs-document-properties-linearized-yes = Так\npdfjs-document-properties-linearized-no = Не\npdfjs-document-properties-close-button = Закрыць\n\n## Print\n\npdfjs-print-progress-message = Падрыхтоўка дакумента да друку…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Скасаваць\npdfjs-printing-not-supported = Папярэджанне: друк не падтрымліваецца цалкам гэтым браўзерам.\npdfjs-printing-not-ready = Увага: PDF не сцягнуты цалкам для друкавання.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Паказаць/схаваць бакавую панэль\npdfjs-toggle-sidebar-notification-button =\n    .title = Паказаць/схаваць бакавую панэль (дакумент мае змест/укладанні/пласты)\npdfjs-toggle-sidebar-button-label = Паказаць/схаваць бакавую панэль\npdfjs-document-outline-button =\n    .title = Паказаць структуру дакумента (двайная пстрычка, каб разгарнуць /згарнуць усе элементы)\npdfjs-document-outline-button-label = Структура дакумента\npdfjs-attachments-button =\n    .title = Паказаць далучэнні\npdfjs-attachments-button-label = Далучэнні\npdfjs-layers-button =\n    .title = Паказаць пласты (націсніце двойчы, каб скінуць усе пласты да прадвызначанага стану)\npdfjs-layers-button-label = Пласты\npdfjs-thumbs-button =\n    .title = Паказ мініяцюр\npdfjs-thumbs-button-label = Мініяцюры\npdfjs-current-outline-item-button =\n    .title = Знайсці бягучы элемент структуры\npdfjs-current-outline-item-button-label = Бягучы элемент структуры\npdfjs-findbar-button =\n    .title = Пошук у дакуменце\npdfjs-findbar-button-label = Знайсці\npdfjs-additional-layers = Дадатковыя пласты\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Старонка { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Мініяцюра старонкі { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Шукаць\n    .placeholder = Шукаць у дакуменце…\npdfjs-find-previous-button =\n    .title = Знайсці папярэдні выпадак выразу\npdfjs-find-previous-button-label = Папярэдні\npdfjs-find-next-button =\n    .title = Знайсці наступны выпадак выразу\npdfjs-find-next-button-label = Наступны\npdfjs-find-highlight-checkbox = Падфарбаваць усе\npdfjs-find-match-case-checkbox-label = Адрозніваць вялікія/малыя літары\npdfjs-find-match-diacritics-checkbox-label = З улікам дыякрытык\npdfjs-find-entire-word-checkbox-label = Словы цалкам\npdfjs-find-reached-top = Дасягнуты пачатак дакумента, працяг з канца\npdfjs-find-reached-bottom = Дасягнуты канец дакумента, працяг з пачатку\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } з { $total } супадзенняў\n        [few] { $current } з { $total } супадзенняў\n       *[many] { $current } з { $total } супадзенняў\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Больш за { $limit } супадзенне\n        [few] Больш за { $limit } супадзенні\n       *[many] Больш за { $limit } супадзенняў\n    }\npdfjs-find-not-found = Выраз не знойдзены\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Шырыня старонкі\npdfjs-page-scale-fit = Уцісненне старонкі\npdfjs-page-scale-auto = Аўтаматычнае павелічэнне\npdfjs-page-scale-actual = Сапраўдны памер\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Старонка { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Здарылася памылка ў часе загрузкі PDF.\npdfjs-invalid-file-error = Няспраўны або пашкоджаны файл PDF.\npdfjs-missing-file-error = Адсутны файл PDF.\npdfjs-unexpected-response-error = Нечаканы адказ сервера.\npdfjs-rendering-error = Здарылася памылка падчас адлюстравання старонкі.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Увядзіце пароль, каб адкрыць гэты файл PDF.\npdfjs-password-invalid = Нядзейсны пароль. Паспрабуйце зноў.\npdfjs-password-ok-button = Добра\npdfjs-password-cancel-button = Скасаваць\npdfjs-web-fonts-disabled = Шрыфты Сеціва забаронены: немагчыма ўжываць укладзеныя шрыфты PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Тэкст\npdfjs-editor-color-picker-free-text-input =\n    .title = Змяніць колер тэксту\npdfjs-editor-free-text-button-label = Тэкст\npdfjs-editor-ink-button =\n    .title = Маляваць\npdfjs-editor-color-picker-ink-input =\n    .title = Змяніць колер малюнка\npdfjs-editor-ink-button-label = Маляваць\npdfjs-editor-stamp-button =\n    .title = Дадаць або змяніць выявы\npdfjs-editor-stamp-button-label = Дадаць або змяніць выявы\npdfjs-editor-highlight-button =\n    .title = Вылучэнне\npdfjs-editor-highlight-button-label = Вылучэнне\npdfjs-highlight-floating-button1 =\n    .title = Падфарбаваць\n    .aria-label = Падфарбаваць\npdfjs-highlight-floating-button-label = Падфарбаваць\npdfjs-comment-floating-button =\n    .title = Каментаваць\n    .aria-label = Каментаваць\npdfjs-comment-floating-button-label = Каментаваць\npdfjs-editor-comment-button =\n    .title = Каментарый\n    .aria-label = Каментарый\npdfjs-editor-comment-button-label = Каментарый\npdfjs-editor-signature-button =\n    .title = Дадаць подпіс\npdfjs-editor-signature-button-label = Дадаць подпіс\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Рэдактар вылучэнняў\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Рэдактар малюнкаў\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Рэдактар подпісаў: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Рэдактар выяў\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Выдаліць малюнак\npdfjs-editor-remove-freetext-button =\n    .title = Выдаліць тэкст\npdfjs-editor-remove-stamp-button =\n    .title = Выдаліць выяву\npdfjs-editor-remove-highlight-button =\n    .title = Выдаліць падфарбоўку\npdfjs-editor-remove-signature-button =\n    .title = Выдаліць подпіс\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Колер\npdfjs-editor-free-text-size-input = Памер\npdfjs-editor-ink-color-input = Колер\npdfjs-editor-ink-thickness-input = Таўшчыня\npdfjs-editor-ink-opacity-input = Непразрыстасць\npdfjs-editor-stamp-add-image-button =\n    .title = Дадаць выяву\npdfjs-editor-stamp-add-image-button-label = Дадаць выяву\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Таўшчыня\npdfjs-editor-free-highlight-thickness-title =\n    .title = Змяняць таўшчыню пры вылучэнні іншых элементаў, акрамя тэксту\npdfjs-editor-add-signature-container =\n    .aria-label = Элементы кіравання подпісамі і захаваныя подпісы\npdfjs-editor-signature-add-signature-button =\n    .title = Дадаць новы подпіс\npdfjs-editor-signature-add-signature-button-label = Дадаць новы подпіс\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Захаваны подпіс: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Тэкставы рэдактар\n    .default-content = Пачніце ўводзіць…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Каментарый\n        [few] Каментарыі\n       *[many] Каментарыі\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Закрыць бакавую панэль\n    .aria-label = Закрыць бакавую панэль\npdfjs-editor-comments-sidebar-close-button-label = Закрыць бакавую панэль\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Бачыце штосьці вартае ўвагі? Вылучыце і пакіньце каментарый.\npdfjs-editor-comments-sidebar-no-comments-link = Падрабязней\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Альтэрнатыўны тэкст\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Змяніць альтэрнатыўны тэкст\npdfjs-editor-alt-text-dialog-label = Выберыце варыянт\npdfjs-editor-alt-text-dialog-description = Альтэрнатыўны тэкст дапамагае, калі людзі не бачаць выяву або калі яна не загружаецца.\npdfjs-editor-alt-text-add-description-label = Дадаць апісанне\npdfjs-editor-alt-text-add-description-description = Старайцеся скласці 1-2 сказы, якія апісваюць прадмет, абстаноўку або дзеянні.\npdfjs-editor-alt-text-mark-decorative-label = Пазначыць як дэкаратыўны\npdfjs-editor-alt-text-mark-decorative-description = Выкарыстоўваецца для дэкаратыўных выяваў, такіх як рамкі або вадзяныя знакі.\npdfjs-editor-alt-text-cancel-button = Скасаваць\npdfjs-editor-alt-text-save-button = Захаваць\npdfjs-editor-alt-text-decorative-tooltip = Пазначаны як дэкаратыўны\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Напрыклад, «Малады чалавек садзіцца за стол есці»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Альтэрнатыўны тэкст\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Верхні левы кут — змяніць памер\npdfjs-editor-resizer-top-middle =\n    .aria-label = Уверсе пасярэдзіне — змяніць памер\npdfjs-editor-resizer-top-right =\n    .aria-label = Верхні правы кут — змяніць памер\npdfjs-editor-resizer-middle-right =\n    .aria-label = Пасярэдзіне справа — змяніць памер\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Правы ніжні кут — змяніць памер\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Пасярэдзіне ўнізе — змяніць памер\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Левы ніжні кут — змяніць памер\npdfjs-editor-resizer-middle-left =\n    .aria-label = Пасярэдзіне злева — змяніць памер\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Колер падфарбоўкі\npdfjs-editor-colorpicker-button =\n    .title = Змяніць колер\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Выбар колеру\npdfjs-editor-colorpicker-yellow =\n    .title = Жоўты\npdfjs-editor-colorpicker-green =\n    .title = Зялёны\npdfjs-editor-colorpicker-blue =\n    .title = Блакітны\npdfjs-editor-colorpicker-pink =\n    .title = Ружовы\npdfjs-editor-colorpicker-red =\n    .title = Чырвоны\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Паказаць усе\npdfjs-editor-highlight-show-all-button =\n    .title = Паказаць усе\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Рэдагаваць тэкст для атрыбута alt (апісанне выявы)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Дадаць тэкст для атрыбута alt (апісанне выявы)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Напішыце сваё апісанне тут…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Кароткае апісанне для людзей, якія не бачаць выяву, ці калі выява не загружаецца.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Гэты тэкст для атрыбута alt быў створаны аўтаматычна і можа быць недакладным\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Даведацца больш\npdfjs-editor-new-alt-text-create-automatically-button-label = Ствараць тэкст для атрыбута alt аўтаматычна\npdfjs-editor-new-alt-text-not-now-button = Не зараз\npdfjs-editor-new-alt-text-error-title = Не ўдалося аўтаматычна стварыць тэкст для атрыбута alt\npdfjs-editor-new-alt-text-error-description = Калі ласка, напішыце ўласны тэкст для атрыбута alt або паўтарыце спробу пазней.\npdfjs-editor-new-alt-text-error-close-button = Закрыць\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Сцягванне мадэлі ШІ для тэксту для атрыбута alt ({ $downloadedSize } з { $totalSize } МБ)\n    .aria-valuetext = Сцягванне мадэлі ШІ для тэксту для атрыбута alt ({ $downloadedSize } з { $totalSize } МБ)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Тэкст для атрыбута alt дададзены\npdfjs-editor-new-alt-text-added-button-label = Тэкст для атрыбута alt дададзены\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Адсутнічае тэкст для атрыбута alt\npdfjs-editor-new-alt-text-missing-button-label = Адсутнічае тэкст для атрыбута alt\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Водгук на тэкст для атрыбута alt\npdfjs-editor-new-alt-text-to-review-button-label = Водгук на тэкст для атрыбута alt\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Створаны аўтаматычна: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Налады альтэрнатыўнага тэксту для выявы\npdfjs-image-alt-text-settings-button-label = Налады альтэрнатыўнага тэксту для выявы\npdfjs-editor-alt-text-settings-dialog-label = Налады альтэрнатыўнага тэксту для выявы\npdfjs-editor-alt-text-settings-automatic-title = Аўтаматычны тэкст для атрыбута alt\npdfjs-editor-alt-text-settings-create-model-button-label = Ствараць тэкст для атрыбута alt аўтаматычна\npdfjs-editor-alt-text-settings-create-model-description = Прапануе апісанні, каб дапамагчы людзям, якія не бачаць выяву, ці калі выява не загружаецца.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Мадэль ШІ для тэксту для атрыбута alt ({ $totalSize } МБ)\npdfjs-editor-alt-text-settings-ai-model-description = Працуе лакальна на вашай прыладзе, таму вашы звесткі застаюцца прыватнымі. Патрабуецца для аўтаматычнага альтэрнатыўнага тэксту.\npdfjs-editor-alt-text-settings-delete-model-button = Выдаліць\npdfjs-editor-alt-text-settings-download-model-button = Сцягнуць\npdfjs-editor-alt-text-settings-downloading-model-button = Сцягванне…\npdfjs-editor-alt-text-settings-editor-title = Рэдактар тэксту для атрыбута alt\npdfjs-editor-alt-text-settings-show-dialog-button-label = Адразу паказваць рэдактар тэксту для атрыбута alt пры даданні выявы\npdfjs-editor-alt-text-settings-show-dialog-description = Дапамагае пераканацца, што ўсе вашы выявы маюць альтэрнатыўны тэкст.\npdfjs-editor-alt-text-settings-close-button = Закрыць\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Вылучэнне дададзена\npdfjs-editor-freetext-added-alert = Тэкст дададзены\npdfjs-editor-ink-added-alert = Малюнак дададзены\npdfjs-editor-stamp-added-alert = Выява дададзена\npdfjs-editor-signature-added-alert = Подпіс дададзены\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Падсвятленне выдалена\npdfjs-editor-undo-bar-message-freetext = Тэкст выдалены\npdfjs-editor-undo-bar-message-ink = Малюнак выдалены\npdfjs-editor-undo-bar-message-stamp = Відарыс выдалены\npdfjs-editor-undo-bar-message-signature = Подпіс выдалены\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } анатацыя выдалена\n        [few] { $count } анатацыі выдалена\n       *[many] { $count } анатацый выдалена\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Адмяніць\npdfjs-editor-undo-bar-undo-button-label = Адмяніць\npdfjs-editor-undo-bar-close-button =\n    .title = Закрыць\npdfjs-editor-undo-bar-close-button-label = Закрыць\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Гэты рэжым дазваляе карыстальніку ствараць подпіс для дадання ў дакумент PDF. Карыстальнік можа рэдагаваць імя (якое таксама служыць альтэрнатыўным тэкстам) і пры жаданні захаваць подпіс для паўторнага выкарыстання.\npdfjs-editor-add-signature-dialog-title = Дадаць подпіс\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Увод\n    .title = Увод\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Маляваць\n    .title = Маляваць\npdfjs-editor-add-signature-image-button = Выява\n    .title = Выява\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Увядзіце свой подпіс\n    .placeholder = Увядзіце свой подпіс\npdfjs-editor-add-signature-draw-placeholder = Намалюйце свой подпіс\npdfjs-editor-add-signature-draw-thickness-range-label = Таўшчыня\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Таўшчыня малюнка: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Перацягнуць файл сюды, каб загрузіць\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Або праглядайце файлы малюнкаў\n       *[other] Або праглядайце файлы малюнкаў\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Апісанне (альтэрнатыўны тэкст)\npdfjs-editor-add-signature-description-input =\n    .title = Апісанне (альтэрнатыўны тэкст)\npdfjs-editor-add-signature-description-default-when-drawing = Подпіс\npdfjs-editor-add-signature-clear-button-label = Выдаліць подпіс\npdfjs-editor-add-signature-clear-button =\n    .title = Выдаліць подпіс\npdfjs-editor-add-signature-save-checkbox = Захаваць подпіс\npdfjs-editor-add-signature-save-warning-message = Вы дасягнулі ліміту ў 5 захаваных подпісаў. Выдаліце адзін, каб захаваць іншы.\npdfjs-editor-add-signature-image-upload-error-title = Не ўдалося загрузіць выяву\npdfjs-editor-add-signature-image-upload-error-description = Праверце падключэнне да сеткі ці паспрабуйце іншую выяву.\npdfjs-editor-add-signature-image-no-data-error-title = Не ўдалося пераўтварыць гэту выяву ў подпіс\npdfjs-editor-add-signature-image-no-data-error-description = Калі ласка, паспрабуйце зацягнуць іншую выяву.\npdfjs-editor-add-signature-error-close-button = Закрыць\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Скасаваць\npdfjs-editor-add-signature-add-button = Дадаць\npdfjs-editor-edit-signature-update-button = Абнавіць\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Змяніць каментарый\npdfjs-editor-edit-comment-popup-button =\n    .title = Змяніць каментарый\npdfjs-editor-delete-comment-popup-button-label = Выдаліць каментарый\npdfjs-editor-delete-comment-popup-button =\n    .title = Выдаліць каментарый\npdfjs-show-comment-button =\n    .title = Паказаць каментарый\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Дзеянні\npdfjs-editor-edit-comment-actions-button =\n    .title = Дзеянні\npdfjs-editor-edit-comment-close-button-label = Закрыць\npdfjs-editor-edit-comment-close-button =\n    .title = Закрыць\npdfjs-editor-edit-comment-actions-edit-button-label = Праўка\npdfjs-editor-edit-comment-actions-delete-button-label = Выдаліць\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Увядзіце свой каментарый\npdfjs-editor-edit-comment-manager-cancel-button = Скасаваць\npdfjs-editor-edit-comment-manager-save-button = Захаваць\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Змяніць каментарый\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Абнавіць\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Дадаць каментарый\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Дадаць\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Пачніце набор тэксту…\npdfjs-editor-edit-comment-dialog-cancel-button = Скасаваць\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Змяніць каментарый\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Выдаліць захаваны подпіс\npdfjs-editor-delete-signature-button-label1 = Выдаліць захаваны подпіс\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Рэдагаваць апісанне\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Рэдагаваць апісанне\n"
  },
  {
    "path": "viewer/locale/bg/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Предишна страница\npdfjs-previous-button-label = Предишна\npdfjs-next-button =\n    .title = Следваща страница\npdfjs-next-button-label = Следваща\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Страница\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = от { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } от { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Намаляване\npdfjs-zoom-out-button-label = Намаляване\npdfjs-zoom-in-button =\n    .title = Увеличаване\npdfjs-zoom-in-button-label = Увеличаване\npdfjs-zoom-select =\n    .title = Мащабиране\npdfjs-presentation-mode-button =\n    .title = Превключване към режим на представяне\npdfjs-presentation-mode-button-label = Режим на представяне\npdfjs-open-file-button =\n    .title = Отваряне на файл\npdfjs-open-file-button-label = Отваряне\npdfjs-print-button =\n    .title = Отпечатване\npdfjs-print-button-label = Отпечатване\npdfjs-save-button =\n    .title = Запазване\npdfjs-save-button-label = Запазване\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Изтегляне\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Изтегляне\npdfjs-bookmark-button =\n    .title = Текуща страница (преглед на адреса на страницата)\npdfjs-bookmark-button-label = Текуща страница\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Инструменти\npdfjs-tools-button-label = Инструменти\npdfjs-first-page-button =\n    .title = Към първата страница\npdfjs-first-page-button-label = Към първата страница\npdfjs-last-page-button =\n    .title = Към последната страница\npdfjs-last-page-button-label = Към последната страница\npdfjs-page-rotate-cw-button =\n    .title = Завъртане по час. стрелка\npdfjs-page-rotate-cw-button-label = Завъртане по часовниковата стрелка\npdfjs-page-rotate-ccw-button =\n    .title = Завъртане обратно на час. стрелка\npdfjs-page-rotate-ccw-button-label = Завъртане обратно на часовниковата стрелка\npdfjs-cursor-text-select-tool-button =\n    .title = Включване на инструмента за избор на текст\npdfjs-cursor-text-select-tool-button-label = Инструмент за избор на текст\npdfjs-cursor-hand-tool-button =\n    .title = Включване на инструмента ръка\npdfjs-cursor-hand-tool-button-label = Инструмент ръка\npdfjs-scroll-page-button =\n    .title = Използване на плъзгане на страници\npdfjs-scroll-page-button-label = Плъзгане на страници\npdfjs-scroll-vertical-button =\n    .title = Използване на вертикално плъзгане\npdfjs-scroll-vertical-button-label = Вертикално плъзгане\npdfjs-scroll-horizontal-button =\n    .title = Използване на хоризонтално\npdfjs-scroll-horizontal-button-label = Хоризонтално плъзгане\npdfjs-scroll-wrapped-button =\n    .title = Използване на мащабируемо плъзгане\npdfjs-scroll-wrapped-button-label = Мащабируемо плъзгане\npdfjs-spread-none-button =\n    .title = Режимът на сдвояване е изключен\npdfjs-spread-none-button-label = Без сдвояване\npdfjs-spread-odd-button =\n    .title = Сдвояване, започвайки от нечетните страници\npdfjs-spread-odd-button-label = Нечетните отляво\npdfjs-spread-even-button =\n    .title = Сдвояване, започвайки от четните страници\npdfjs-spread-even-button-label = Четните отляво\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Свойства на документа…\npdfjs-document-properties-button-label = Свойства на документа…\npdfjs-document-properties-file-name = Име на файл:\npdfjs-document-properties-file-size = Големина на файл:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } КБ ({ $b } байта)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байта)\npdfjs-document-properties-title = Заглавие:\npdfjs-document-properties-author = Автор:\npdfjs-document-properties-subject = Тема:\npdfjs-document-properties-keywords = Ключови думи:\npdfjs-document-properties-creation-date = Дата на създаване:\npdfjs-document-properties-modification-date = Дата на промяна:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Създател:\npdfjs-document-properties-producer = PDF произведен от:\npdfjs-document-properties-version = Издание на PDF:\npdfjs-document-properties-page-count = Брой страници:\npdfjs-document-properties-page-size = Размер на страницата:\npdfjs-document-properties-page-size-unit-inches = инч\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = портрет\npdfjs-document-properties-page-size-orientation-landscape = пейзаж\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Правни въпроси\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Бърз преглед:\npdfjs-document-properties-linearized-yes = Да\npdfjs-document-properties-linearized-no = Не\npdfjs-document-properties-close-button = Затваряне\n\n## Print\n\npdfjs-print-progress-message = Подготвяне на документа за отпечатване…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Отказ\npdfjs-printing-not-supported = Внимание: Този четец няма пълна поддръжка на отпечатване.\npdfjs-printing-not-ready = Внимание: Този PDF файл не е напълно зареден за печат.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Превключване на страничната лента\npdfjs-toggle-sidebar-notification-button =\n    .title = Превключване на страничната лента (документът има структура/прикачени файлове/слоеве)\npdfjs-toggle-sidebar-button-label = Превключване на страничната лента\npdfjs-document-outline-button =\n    .title = Показване на структурата на документа (двукратно щракване за свиване/разгъване на всичко)\npdfjs-document-outline-button-label = Структура на документа\npdfjs-attachments-button =\n    .title = Показване на притурките\npdfjs-attachments-button-label = Притурки\npdfjs-layers-button =\n    .title = Показване на слоевете (двукратно щракване за възстановяване на всички слоеве към състоянието по подразбиране)\npdfjs-layers-button-label = Слоеве\npdfjs-thumbs-button =\n    .title = Показване на миниатюрите\npdfjs-thumbs-button-label = Миниатюри\npdfjs-current-outline-item-button =\n    .title = Намиране на текущия елемент от структурата\npdfjs-current-outline-item-button-label = Текущ елемент от структурата\npdfjs-findbar-button =\n    .title = Намиране в документа\npdfjs-findbar-button-label = Търсене\npdfjs-additional-layers = Допълнителни слоеве\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Страница { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Миниатюра на страница { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Търсене\n    .placeholder = Търсене в документа…\npdfjs-find-previous-button =\n    .title = Намиране на предишно съвпадение на фразата\npdfjs-find-previous-button-label = Предишна\npdfjs-find-next-button =\n    .title = Намиране на следващо съвпадение на фразата\npdfjs-find-next-button-label = Следваща\npdfjs-find-highlight-checkbox = Открояване на всички\npdfjs-find-match-case-checkbox-label = Съвпадение на регистъра\npdfjs-find-match-diacritics-checkbox-label = Без производни букви\npdfjs-find-entire-word-checkbox-label = Цели думи\npdfjs-find-reached-top = Достигнато е началото на документа, продължаване от края\npdfjs-find-reached-bottom = Достигнат е краят на документа, продължаване от началото\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } от { $total } съвпадение\n       *[other] { $current } от { $total } съвпадения\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Повече от { $limit } съвпадение\n       *[other] Повече от { $limit } съвпадения\n    }\npdfjs-find-not-found = Фразата не е намерена\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ширина на страницата\npdfjs-page-scale-fit = Вместване в страницата\npdfjs-page-scale-auto = Автоматично мащабиране\npdfjs-page-scale-actual = Действителен размер\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Страница { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Получи се грешка при зареждане на PDF-а.\npdfjs-invalid-file-error = Невалиден или повреден PDF файл.\npdfjs-missing-file-error = Липсващ PDF файл.\npdfjs-unexpected-response-error = Неочакван отговор от сървъра.\npdfjs-rendering-error = Грешка при изчертаване на страницата.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Анотация { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Въведете парола за отваряне на този PDF файл.\npdfjs-password-invalid = Невалидна парола. Моля, опитайте отново.\npdfjs-password-ok-button = Добре\npdfjs-password-cancel-button = Отказ\npdfjs-web-fonts-disabled = Уеб-шрифтовете са забранени: разрешаване на използването на вградените PDF шрифтове.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Текст\npdfjs-editor-free-text-button-label = Текст\npdfjs-editor-ink-button =\n    .title = Рисуване\npdfjs-editor-ink-button-label = Рисуване\npdfjs-editor-stamp-button =\n    .title = Добавяне или променяне на изображения\npdfjs-editor-stamp-button-label = Добавяне или променяне на изображения\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Премахване на рисунката\npdfjs-editor-remove-freetext-button =\n    .title = Премахване на текста\npdfjs-editor-remove-stamp-button =\n    .title = Пермахване на изображението\npdfjs-editor-remove-highlight-button =\n    .title = Премахване на открояването\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Цвят\npdfjs-editor-free-text-size-input = Размер\npdfjs-editor-ink-color-input = Цвят\npdfjs-editor-ink-thickness-input = Дебелина\npdfjs-editor-ink-opacity-input = Прозрачност\npdfjs-editor-stamp-add-image-button =\n    .title = Добавяне на изображение\npdfjs-editor-stamp-add-image-button-label = Добавяне на изображение\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Текстов редактор\n    .default-content = Започнете да пишете…\npdfjs-editor-comments-sidebar-close-button-label = Затваряне на страничната лента\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Алтернативен текст\npdfjs-editor-alt-text-dialog-label = Изберете от възможностите\npdfjs-editor-alt-text-dialog-description = Алтернативният текст помага на потребителите, когато не могат да видят изображението или то не се зарежда.\npdfjs-editor-alt-text-add-description-label = Добавяне на описание\npdfjs-editor-alt-text-add-description-description = Стремете се към 1-2 изречения, описващи предмета, настройката или действията.\npdfjs-editor-alt-text-mark-decorative-label = Отбелязване като декоративно\npdfjs-editor-alt-text-mark-decorative-description = Използва се за орнаменти или декоративни изображения, като контури и водни знаци.\npdfjs-editor-alt-text-cancel-button = Отказ\npdfjs-editor-alt-text-save-button = Запазване\npdfjs-editor-alt-text-decorative-tooltip = Отбелязване като декоративно\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Например, „Млад мъж седи на маса и се храни“\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Горен ляв ъгъл — преоразмеряване\npdfjs-editor-resizer-top-middle =\n    .aria-label = Горе в средата — преоразмеряване\npdfjs-editor-resizer-top-right =\n    .aria-label = Горен десен ъгъл — преоразмеряване\npdfjs-editor-resizer-middle-right =\n    .aria-label = Дясно в средата — преоразмеряване\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Долен десен ъгъл — преоразмеряване\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Долу в средата — преоразмеряване\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Долен ляв ъгъл — преоразмеряване\npdfjs-editor-resizer-middle-left =\n    .aria-label = Ляво в средата — преоразмеряване\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Цвят на открояване\npdfjs-editor-colorpicker-button =\n    .title = Промяна на цвят\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Избор на цвят\npdfjs-editor-colorpicker-yellow =\n    .title = Жълто\npdfjs-editor-colorpicker-green =\n    .title = Зелено\npdfjs-editor-colorpicker-blue =\n    .title = Синьо\npdfjs-editor-colorpicker-pink =\n    .title = Розово\npdfjs-editor-colorpicker-red =\n    .title = Червено\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Научете повече\npdfjs-editor-new-alt-text-not-now-button = Не сега\n"
  },
  {
    "path": "viewer/locale/bn/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = পূর্ববর্তী পাতা\npdfjs-previous-button-label = পূর্ববর্তী\npdfjs-next-button =\n    .title = পরবর্তী পাতা\npdfjs-next-button-label = পরবর্তী\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = পাতা\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } এর\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } এর { $pageNumber })\npdfjs-zoom-out-button =\n    .title = ছোট আকারে প্রদর্শন\npdfjs-zoom-out-button-label = ছোট আকারে প্রদর্শন\npdfjs-zoom-in-button =\n    .title = বড় আকারে প্রদর্শন\npdfjs-zoom-in-button-label = বড় আকারে প্রদর্শন\npdfjs-zoom-select =\n    .title = বড় আকারে প্রদর্শন\npdfjs-presentation-mode-button =\n    .title = উপস্থাপনা মোডে স্যুইচ করুন\npdfjs-presentation-mode-button-label = উপস্থাপনা মোড\npdfjs-open-file-button =\n    .title = ফাইল খুলুন\npdfjs-open-file-button-label = খুলুন\npdfjs-print-button =\n    .title = মুদ্রণ\npdfjs-print-button-label = মুদ্রণ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = টুল\npdfjs-tools-button-label = টুল\npdfjs-first-page-button =\n    .title = প্রথম পাতায় যাও\npdfjs-first-page-button-label = প্রথম পাতায় যাও\npdfjs-last-page-button =\n    .title = শেষ পাতায় যাও\npdfjs-last-page-button-label = শেষ পাতায় যাও\npdfjs-page-rotate-cw-button =\n    .title = ঘড়ির কাঁটার দিকে ঘোরাও\npdfjs-page-rotate-cw-button-label = ঘড়ির কাঁটার দিকে ঘোরাও\npdfjs-page-rotate-ccw-button =\n    .title = ঘড়ির কাঁটার বিপরীতে ঘোরাও\npdfjs-page-rotate-ccw-button-label = ঘড়ির কাঁটার বিপরীতে ঘোরাও\npdfjs-cursor-text-select-tool-button =\n    .title = লেখা নির্বাচক টুল সক্রিয় করুন\npdfjs-cursor-text-select-tool-button-label = লেখা নির্বাচক টুল\npdfjs-cursor-hand-tool-button =\n    .title = হ্যান্ড টুল সক্রিয় করুন\npdfjs-cursor-hand-tool-button-label = হ্যান্ড টুল\npdfjs-scroll-vertical-button =\n    .title = উলম্ব স্ক্রলিং ব্যবহার করুন\npdfjs-scroll-vertical-button-label = উলম্ব স্ক্রলিং\npdfjs-scroll-horizontal-button =\n    .title = অনুভূমিক স্ক্রলিং ব্যবহার করুন\npdfjs-scroll-horizontal-button-label = অনুভূমিক স্ক্রলিং\npdfjs-scroll-wrapped-button =\n    .title = Wrapped স্ক্রোলিং ব্যবহার করুন\npdfjs-scroll-wrapped-button-label = Wrapped স্ক্রোলিং\npdfjs-spread-none-button =\n    .title = পেজ স্প্রেডগুলোতে যোগদান করবেন না\npdfjs-spread-none-button-label = Spreads নেই\npdfjs-spread-odd-button-label = বিজোড় Spreads\npdfjs-spread-even-button-label = জোড় Spreads\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = নথি বৈশিষ্ট্য…\npdfjs-document-properties-button-label = নথি বৈশিষ্ট্য…\npdfjs-document-properties-file-name = ফাইলের নাম:\npdfjs-document-properties-file-size = ফাইলের আকার:\npdfjs-document-properties-title = শিরোনাম:\npdfjs-document-properties-author = লেখক:\npdfjs-document-properties-subject = বিষয়:\npdfjs-document-properties-keywords = কীওয়ার্ড:\npdfjs-document-properties-creation-date = তৈরির তারিখ:\npdfjs-document-properties-modification-date = পরিবর্তনের তারিখ:\npdfjs-document-properties-creator = প্রস্তুতকারক:\npdfjs-document-properties-producer = পিডিএফ প্রস্তুতকারক:\npdfjs-document-properties-version = পিডিএফ সংষ্করণ:\npdfjs-document-properties-page-count = মোট পাতা:\npdfjs-document-properties-page-size = পাতার সাইজ:\npdfjs-document-properties-page-size-unit-inches = এর মধ্যে\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = উলম্ব\npdfjs-document-properties-page-size-orientation-landscape = অনুভূমিক\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = লেটার\npdfjs-document-properties-page-size-name-legal = লীগাল\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = হ্যাঁ\npdfjs-document-properties-linearized-no = না\npdfjs-document-properties-close-button = বন্ধ\n\n## Print\n\npdfjs-print-progress-message = মুদ্রণের জন্য নথি প্রস্তুত করা হচ্ছে…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = বাতিল\npdfjs-printing-not-supported = সতর্কতা: এই ব্রাউজারে মুদ্রণ সম্পূর্ণভাবে সমর্থিত নয়।\npdfjs-printing-not-ready = সতর্কীকরণ: পিডিএফটি মুদ্রণের জন্য সম্পূর্ণ লোড হয়নি।\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = সাইডবার টগল করুন\npdfjs-toggle-sidebar-button-label = সাইডবার টগল করুন\npdfjs-document-outline-button =\n    .title = নথির আউটলাইন দেখাও (সব আইটেম প্রসারিত/সঙ্কুচিত করতে ডবল ক্লিক করুন)\npdfjs-document-outline-button-label = নথির রূপরেখা\npdfjs-attachments-button =\n    .title = সংযুক্তি দেখাও\npdfjs-attachments-button-label = সংযুক্তি\npdfjs-thumbs-button =\n    .title = থাম্বনেইল সমূহ প্রদর্শন করুন\npdfjs-thumbs-button-label = থাম্বনেইল সমূহ\npdfjs-findbar-button =\n    .title = নথির মধ্যে খুঁজুন\npdfjs-findbar-button-label = খুঁজুন\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = পাতা { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } পাতার থাম্বনেইল\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = খুঁজুন\n    .placeholder = নথির মধ্যে খুঁজুন…\npdfjs-find-previous-button =\n    .title = বাক্যাংশের পূর্ববর্তী উপস্থিতি অনুসন্ধান\npdfjs-find-previous-button-label = পূর্ববর্তী\npdfjs-find-next-button =\n    .title = বাক্যাংশের পরবর্তী উপস্থিতি অনুসন্ধান\npdfjs-find-next-button-label = পরবর্তী\npdfjs-find-highlight-checkbox = সব হাইলাইট করুন\npdfjs-find-match-case-checkbox-label = অক্ষরের ছাঁদ মেলানো\npdfjs-find-entire-word-checkbox-label = সম্পূর্ণ শব্দ\npdfjs-find-reached-top = পাতার শুরুতে পৌছে গেছে, নীচ থেকে আরম্ভ করা হয়েছে\npdfjs-find-reached-bottom = পাতার শেষে পৌছে গেছে, উপর থেকে আরম্ভ করা হয়েছে\npdfjs-find-not-found = বাক্যাংশ পাওয়া যায়নি\n\n## Predefined zoom values\n\npdfjs-page-scale-width = পাতার প্রস্থ\npdfjs-page-scale-fit = পাতা ফিট করুন\npdfjs-page-scale-auto = স্বয়ংক্রিয় জুম\npdfjs-page-scale-actual = প্রকৃত আকার\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = পিডিএফ লোড করার সময় ত্রুটি দেখা দিয়েছে।\npdfjs-invalid-file-error = অকার্যকর অথবা ক্ষতিগ্রস্ত পিডিএফ ফাইল।\npdfjs-missing-file-error = নিখোঁজ PDF ফাইল।\npdfjs-unexpected-response-error = অপ্রত্যাশীত সার্ভার প্রতিক্রিয়া।\npdfjs-rendering-error = পাতা উপস্থাপনার সময় ত্রুটি দেখা দিয়েছে।\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } টীকা]\n\n## Password\n\npdfjs-password-label = পিডিএফ ফাইলটি ওপেন করতে পাসওয়ার্ড দিন।\npdfjs-password-invalid = ভুল পাসওয়ার্ড। অনুগ্রহ করে আবার চেষ্টা করুন।\npdfjs-password-ok-button = ঠিক আছে\npdfjs-password-cancel-button = বাতিল\npdfjs-web-fonts-disabled = ওয়েব ফন্ট নিষ্ক্রিয়: সংযুক্ত পিডিএফ ফন্ট ব্যবহার করা যাচ্ছে না।\n"
  },
  {
    "path": "viewer/locale/bo/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = དྲ་ངོས་སྔོན་མ\npdfjs-previous-button-label = སྔོན་མ\npdfjs-next-button =\n    .title = དྲ་ངོས་རྗེས་མ\npdfjs-next-button-label = རྗེས་མ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ཤོག་ངོས\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = of { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n    .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Print\npdfjs-print-button-label = Print\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n    .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n    .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n    .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n    .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n    .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-vertical-button =\n    .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n    .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n    .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n    .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n    .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Document Properties…\npdfjs-document-properties-button-label = Document Properties…\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggle Sidebar\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n    .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n    .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-thumbs-button =\n    .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = Find\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail of Page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find in document…\npdfjs-find-previous-button =\n    .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n    .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight all\npdfjs-find-match-case-checkbox-label = Match case\npdfjs-find-entire-word-checkbox-label = Whole words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-not-found = Phrase not found\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\n"
  },
  {
    "path": "viewer/locale/br/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pajenn a-raok\npdfjs-previous-button-label = A-raok\npdfjs-next-button =\n    .title = Pajenn war-lerc'h\npdfjs-next-button-label = War-lerc'h\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pajenn\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = eus { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } war { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoum bihanaat\npdfjs-zoom-out-button-label = Zoum bihanaat\npdfjs-zoom-in-button =\n    .title = Zoum brasaat\npdfjs-zoom-in-button-label = Zoum brasaat\npdfjs-zoom-select =\n    .title = Zoum\npdfjs-presentation-mode-button =\n    .title = Trec'haoliñ etrezek ar mod kinnigadenn\npdfjs-presentation-mode-button-label = Mod kinnigadenn\npdfjs-open-file-button =\n    .title = Digeriñ ur restr\npdfjs-open-file-button-label = Digeriñ ur restr\npdfjs-print-button =\n    .title = Moullañ\npdfjs-print-button-label = Moullañ\npdfjs-save-button =\n    .title = Enrollañ\npdfjs-save-button-label = Enrollañ\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Pellgargañ\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Pellgargañ\npdfjs-bookmark-button-label = Pajenn a-vremañ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ostilhoù\npdfjs-tools-button-label = Ostilhoù\npdfjs-first-page-button =\n    .title = Mont d'ar bajenn gentañ\npdfjs-first-page-button-label = Mont d'ar bajenn gentañ\npdfjs-last-page-button =\n    .title = Mont d'ar bajenn diwezhañ\npdfjs-last-page-button-label = Mont d'ar bajenn diwezhañ\npdfjs-page-rotate-cw-button =\n    .title = C'hwelañ gant roud ar bizied\npdfjs-page-rotate-cw-button-label = C'hwelañ gant roud ar bizied\npdfjs-page-rotate-ccw-button =\n    .title = C'hwelañ gant roud gin ar bizied\npdfjs-page-rotate-ccw-button-label = C'hwelañ gant roud gin ar bizied\npdfjs-cursor-text-select-tool-button =\n    .title = Gweredekaat an ostilh diuzañ testenn\npdfjs-cursor-text-select-tool-button-label = Ostilh diuzañ testenn\npdfjs-cursor-hand-tool-button =\n    .title = Gweredekaat an ostilh dorn\npdfjs-cursor-hand-tool-button-label = Ostilh dorn\npdfjs-scroll-vertical-button =\n    .title = Arverañ an dibunañ a-blom\npdfjs-scroll-vertical-button-label = Dibunañ a-serzh\npdfjs-scroll-horizontal-button =\n    .title = Arverañ an dibunañ a-blaen\npdfjs-scroll-horizontal-button-label = Dibunañ a-blaen\npdfjs-scroll-wrapped-button =\n    .title = Arverañ an dibunañ paket\npdfjs-scroll-wrapped-button-label = Dibunañ paket\npdfjs-spread-none-button =\n    .title = Chom hep stagañ ar skignadurioù\npdfjs-spread-none-button-label = Skignadenn ebet\npdfjs-spread-odd-button =\n    .title = Lakaat ar pajennadoù en ur gregiñ gant ar pajennoù ampar\npdfjs-spread-odd-button-label = Pajennoù ampar\npdfjs-spread-even-button =\n    .title = Lakaat ar pajennadoù en ur gregiñ gant ar pajennoù par\npdfjs-spread-even-button-label = Pajennoù par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Perzhioù an teul…\npdfjs-document-properties-button-label = Perzhioù an teul…\npdfjs-document-properties-file-name = Anv restr:\npdfjs-document-properties-file-size = Ment ar restr:\npdfjs-document-properties-title = Titl:\npdfjs-document-properties-author = Aozer:\npdfjs-document-properties-subject = Danvez:\npdfjs-document-properties-keywords = Gerioù-alc'hwez:\npdfjs-document-properties-creation-date = Deiziad krouiñ:\npdfjs-document-properties-modification-date = Deiziad kemmañ:\npdfjs-document-properties-creator = Krouer:\npdfjs-document-properties-producer = Kenderc'her PDF:\npdfjs-document-properties-version = Handelv PDF:\npdfjs-document-properties-page-count = Niver a bajennoù:\npdfjs-document-properties-page-size = Ment ar bajenn:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = poltred\npdfjs-document-properties-page-size-orientation-landscape = gweledva\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Lizher\npdfjs-document-properties-page-size-name-legal = Lezennel\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Gwel Web Herrek:\npdfjs-document-properties-linearized-yes = Ya\npdfjs-document-properties-linearized-no = Ket\npdfjs-document-properties-close-button = Serriñ\n\n## Print\n\npdfjs-print-progress-message = O prientiñ an teul evit moullañ...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Nullañ\npdfjs-printing-not-supported = Kemenn: N'eo ket skoret penn-da-benn ar moullañ gant ar merdeer-mañ.\npdfjs-printing-not-ready = Kemenn: N'hall ket bezañ moullet ar restr PDF rak n'eo ket karget penn-da-benn.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Diskouez/kuzhat ar varrenn gostez\npdfjs-toggle-sidebar-notification-button =\n    .title = Trec'haoliñ ar varrenn-gostez (ur steuñv pe stagadennoù a zo en teul)\npdfjs-toggle-sidebar-button-label = Diskouez/kuzhat ar varrenn gostez\npdfjs-document-outline-button =\n    .title = Diskouez steuñv an teul (daouglikit evit brasaat/bihanaat an holl elfennoù)\npdfjs-document-outline-button-label = Sinedoù an teuliad\npdfjs-attachments-button =\n    .title = Diskouez ar c'henstagadurioù\npdfjs-attachments-button-label = Kenstagadurioù\npdfjs-layers-button =\n    .title = Diskouez ar gwiskadoù (daou-glikañ evit adderaouekaat an holl gwiskadoù d'o stad dre ziouer)\npdfjs-layers-button-label = Gwiskadoù\npdfjs-thumbs-button =\n    .title = Diskouez ar melvennoù\npdfjs-thumbs-button-label = Melvennoù\npdfjs-findbar-button =\n    .title = Klask e-barzh an teuliad\npdfjs-findbar-button-label = Klask\npdfjs-additional-layers = Gwiskadoù ouzhpenn\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pajenn { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Melvenn ar bajenn { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Klask\n    .placeholder = Klask e-barzh an teuliad\npdfjs-find-previous-button =\n    .title = Kavout an tamm frazenn kent o klotañ ganti\npdfjs-find-previous-button-label = Kent\npdfjs-find-next-button =\n    .title = Kavout an tamm frazenn war-lerc'h o klotañ ganti\npdfjs-find-next-button-label = War-lerc'h\npdfjs-find-highlight-checkbox = Sklêrijennañ pep tra\npdfjs-find-match-case-checkbox-label = Teurel evezh ouzh ar pennlizherennoù\npdfjs-find-match-diacritics-checkbox-label = Doujañ d’an tiredoù\npdfjs-find-entire-word-checkbox-label = Gerioù a-bezh\npdfjs-find-reached-top = Tizhet eo bet derou ar bajenn, kenderc'hel diouzh an diaz\npdfjs-find-reached-bottom = Tizhet eo bet dibenn ar bajenn, kenderc'hel diouzh ar c'hrec'h\npdfjs-find-not-found = N'haller ket kavout ar frazenn\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Led ar bajenn\npdfjs-page-scale-fit = Pajenn a-bezh\npdfjs-page-scale-auto = Zoum emgefreek\npdfjs-page-scale-actual = Ment wir\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pajenn { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Degouezhet ez eus bet ur fazi e-pad kargañ ar PDF.\npdfjs-invalid-file-error = Restr PDF didalvoudek pe kontronet.\npdfjs-missing-file-error = Restr PDF o vankout.\npdfjs-unexpected-response-error = Respont dic'hortoz a-berzh an dafariad\npdfjs-rendering-error = Degouezhet ez eus bet ur fazi e-pad skrammañ ar bajennad.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Notennañ]\n\n## Password\n\npdfjs-password-label = Enankit ar ger-tremen evit digeriñ ar restr PDF-mañ.\npdfjs-password-invalid = Ger-tremen didalvoudek. Klaskit en-dro mar plij.\npdfjs-password-ok-button = Mat eo\npdfjs-password-cancel-button = Nullañ\npdfjs-web-fonts-disabled = Diweredekaet eo an nodrezhoù web: n'haller ket arverañ an nodrezhoù PDF enframmet.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Testenn\npdfjs-editor-free-text-button-label = Testenn\npdfjs-editor-ink-button =\n    .title = Tresañ\npdfjs-editor-ink-button-label = Tresañ\npdfjs-editor-stamp-button =\n    .title = Ouzhpennañ pe aozañ skeudennoù\npdfjs-editor-stamp-button-label = Ouzhpennañ pe aozañ skeudennoù\npdfjs-editor-highlight-button =\n    .title = Sklerijennañ\npdfjs-editor-highlight-button-label = Sklerijennañ\npdfjs-highlight-floating-button1 =\n    .title = Sklerijennañ\n    .aria-label = Sklerijennañ\npdfjs-highlight-floating-button-label = Sklerijennañ\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Liv\npdfjs-editor-free-text-size-input = Ment\npdfjs-editor-ink-color-input = Liv\npdfjs-editor-ink-thickness-input = Tevder\npdfjs-editor-ink-opacity-input = Boullder\npdfjs-editor-stamp-add-image-button =\n    .title = Ouzhpennañ ur skeudenn\npdfjs-editor-stamp-add-image-button-label = Ouzhpennañ ur skeudenn\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tevded\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-add-description-label = Ouzhpennañ un deskrivadur\npdfjs-editor-alt-text-cancel-button = Nullañ\npdfjs-editor-alt-text-save-button = Enrollañ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Da skouer, “Ur paotr yaouank ouzh taol o tebriñ boued”\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Liv sklêrijennañ\npdfjs-editor-colorpicker-button =\n    .title = Cheñch liv\npdfjs-editor-colorpicker-yellow =\n    .title = Melen\npdfjs-editor-colorpicker-blue =\n    .title = Glas\npdfjs-editor-colorpicker-pink =\n    .title = Roz\npdfjs-editor-colorpicker-red =\n    .title = Ruz\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Diskouez pep tra\npdfjs-editor-highlight-show-all-button =\n    .title = Diskouez pep tra\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Gouzout hiroc’h\npdfjs-editor-new-alt-text-error-close-button = Serriñ\n\n## Image alt-text settings\n\npdfjs-editor-alt-text-settings-delete-model-button = Dilemel\npdfjs-editor-alt-text-settings-download-model-button = Pellgargañ\npdfjs-editor-alt-text-settings-downloading-model-button = O pellgargañ…\npdfjs-editor-alt-text-settings-close-button = Serriñ\n"
  },
  {
    "path": "viewer/locale/brx/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = आगोलनि बिलाइ\npdfjs-previous-button-label = आगोलनि\npdfjs-next-button =\n    .title = उननि बिलाइ\npdfjs-next-button-label = उननि\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = बिलाइ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } नि\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } नि { $pageNumber })\npdfjs-zoom-out-button =\n    .title = फिसायै जुम खालाम\npdfjs-zoom-out-button-label = फिसायै जुम खालाम\npdfjs-zoom-in-button =\n    .title = गेदेरै जुम खालाम\npdfjs-zoom-in-button-label = गेदेरै जुम खालाम\npdfjs-zoom-select =\n    .title = जुम खालाम\npdfjs-presentation-mode-button =\n    .title = दिन्थिफुंनाय म'डआव थां\npdfjs-presentation-mode-button-label = दिन्थिफुंनाय म'ड\npdfjs-open-file-button =\n    .title = फाइलखौ खेव\npdfjs-open-file-button-label = खेव\npdfjs-print-button =\n    .title = साफाय\npdfjs-print-button-label = साफाय\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = टुल\npdfjs-tools-button-label = टुल\npdfjs-first-page-button =\n    .title = गिबि बिलाइआव थां\npdfjs-first-page-button-label = गिबि बिलाइआव थां\npdfjs-last-page-button =\n    .title = जोबथा बिलाइआव थां\npdfjs-last-page-button-label = जोबथा बिलाइआव थां\npdfjs-page-rotate-cw-button =\n    .title = घरि गिदिंनाय फार्से फिदिं\npdfjs-page-rotate-cw-button-label = घरि गिदिंनाय फार्से फिदिं\npdfjs-page-rotate-ccw-button =\n    .title = घरि गिदिंनाय उल्था फार्से फिदिं\npdfjs-page-rotate-ccw-button-label = घरि गिदिंनाय उल्था फार्से फिदिं\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = फोरमान बिलाइनि आखुथाय...\npdfjs-document-properties-button-label = फोरमान बिलाइनि आखुथाय...\npdfjs-document-properties-file-name = फाइलनि मुं:\npdfjs-document-properties-file-size = फाइलनि महर:\npdfjs-document-properties-title = बिमुं:\npdfjs-document-properties-author = लिरगिरि:\npdfjs-document-properties-subject = आयदा:\npdfjs-document-properties-keywords = गाहाय सोदोब:\npdfjs-document-properties-creation-date = सोरजिनाय अक्ट':\npdfjs-document-properties-modification-date = सुद्रायनाय अक्ट':\npdfjs-document-properties-creator = सोरजिग्रा:\npdfjs-document-properties-producer = PDF दिहुनग्रा:\npdfjs-document-properties-version = PDF बिसान:\npdfjs-document-properties-page-count = बिलाइनि हिसाब:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = प'र्ट्रेट\npdfjs-document-properties-page-size-orientation-landscape = लेण्डस्केप\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = लायजाम\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = नंगौ\npdfjs-document-properties-linearized-no = नङा\npdfjs-document-properties-close-button = बन्द खालाम\n\n## Print\n\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = नेवसि\npdfjs-printing-not-supported = सांग्रांथि: साफायनाया बे ब्राउजारजों आबुङै हेफाजाब होजाया।\npdfjs-printing-not-ready = सांग्रांथि: PDF खौ साफायनायनि थाखाय फुरायै ल'ड खालामाखै।\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = टग्गल साइडबार\npdfjs-toggle-sidebar-button-label = टग्गल साइडबार\npdfjs-document-outline-button-label = फोरमान बिलाइ सिमा हांखो\npdfjs-attachments-button =\n    .title = नांजाब होनायखौ दिन्थि\npdfjs-attachments-button-label = नांजाब होनाय\npdfjs-thumbs-button =\n    .title = थामनेइलखौ दिन्थि\npdfjs-thumbs-button-label = थामनेइल\npdfjs-findbar-button =\n    .title = फोरमान बिलाइआव नागिरना दिहुन\npdfjs-findbar-button-label = नायगिरना दिहुन\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = बिलाइ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = बिलाइ { $page } नि थामनेइल\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = नायगिरना दिहुन\n    .placeholder = फोरमान बिलाइआव नागिरना दिहुन...\npdfjs-find-previous-button =\n    .title = बाथ्रा खोन्दोबनि सिगांनि नुजाथिनायखौ नागिर\npdfjs-find-previous-button-label = आगोलनि\npdfjs-find-next-button =\n    .title = बाथ्रा खोन्दोबनि उननि नुजाथिनायखौ नागिर\npdfjs-find-next-button-label = उननि\npdfjs-find-highlight-checkbox = गासैखौबो हाइलाइट खालाम\npdfjs-find-match-case-checkbox-label = गोरोबनाय केस\npdfjs-find-reached-top = थालो निफ्राय जागायनानै फोरमान बिलाइनि बिजौआव सौहैबाय\npdfjs-find-reached-bottom = बिजौ निफ्राय जागायनानै फोरमान बिलाइनि बिजौआव सौहैबाय\npdfjs-find-not-found = बाथ्रा खोन्दोब मोनाखै\n\n## Predefined zoom values\n\npdfjs-page-scale-width = बिलाइनि गुवार\npdfjs-page-scale-fit = बिलाइ गोरोबनाय\npdfjs-page-scale-auto = गावनोगाव जुम\npdfjs-page-scale-actual = थार महर\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ल'ड खालामनाय समाव मोनसे गोरोन्थि जाबाय।\npdfjs-invalid-file-error = बाहायजायै एबा गाज्रि जानाय PDF फाइल\npdfjs-missing-file-error = गोमानाय PDF फाइल\npdfjs-unexpected-response-error = मिजिंथियै सार्भार फिननाय।\npdfjs-rendering-error = बिलाइखौ राव सोलायनाय समाव मोनसे गोरोन्थि जादों।\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } सोदोब बेखेवनाय]\n\n## Password\n\npdfjs-password-label = बे PDF फाइलखौ खेवनो पासवार्ड हाबहो।\npdfjs-password-invalid = बाहायजायै पासवार्ड। अननानै फिन नाजा।\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = नेवसि\npdfjs-web-fonts-disabled = वेब फन्टखौ लोरबां खालामबाय: अरजाबहोनाय PDF फन्टखौ बाहायनो हायाखै।\n"
  },
  {
    "path": "viewer/locale/bs/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Prethodna strana\npdfjs-previous-button-label = Prethodna\npdfjs-next-button =\n    .title = Sljedeća strna\npdfjs-next-button-label = Sljedeća\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Strana\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = od { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } od { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Umanji\npdfjs-zoom-out-button-label = Umanji\npdfjs-zoom-in-button =\n    .title = Uvećaj\npdfjs-zoom-in-button-label = Uvećaj\npdfjs-zoom-select =\n    .title = Uvećanje\npdfjs-presentation-mode-button =\n    .title = Prebaci se u prezentacijski režim\npdfjs-presentation-mode-button-label = Prezentacijski režim\npdfjs-open-file-button =\n    .title = Otvori fajl\npdfjs-open-file-button-label = Otvori\npdfjs-print-button =\n    .title = Štampaj\npdfjs-print-button-label = Štampaj\npdfjs-save-button =\n    .title = Sačuvaj\npdfjs-save-button-label = Sačuvaj\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Preuzmi\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Preuzmi\npdfjs-bookmark-button =\n    .title = Trenutna stranica (Prikaži URL sa trenutne stranice)\npdfjs-bookmark-button-label = Trenutna stranica\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Alati\npdfjs-tools-button-label = Alati\npdfjs-first-page-button =\n    .title = Idi na prvu stranu\npdfjs-first-page-button-label = Idi na prvu stranu\npdfjs-last-page-button =\n    .title = Idi na zadnju stranu\npdfjs-last-page-button-label = Idi na zadnju stranu\npdfjs-page-rotate-cw-button =\n    .title = Rotiraj u smjeru kazaljke na satu\npdfjs-page-rotate-cw-button-label = Rotiraj u smjeru kazaljke na satu\npdfjs-page-rotate-ccw-button =\n    .title = Rotiraj suprotno smjeru kazaljke na satu\npdfjs-page-rotate-ccw-button-label = Rotiraj suprotno smjeru kazaljke na satu\npdfjs-cursor-text-select-tool-button =\n    .title = Omogući alat za označavanje teksta\npdfjs-cursor-text-select-tool-button-label = Alat za označavanje teksta\npdfjs-cursor-hand-tool-button =\n    .title = Omogući ručni alat\npdfjs-cursor-hand-tool-button-label = Ručni alat\npdfjs-scroll-page-button =\n    .title = Koristite pomicanje stranice\npdfjs-scroll-page-button-label = Pomicanje stranice\npdfjs-scroll-vertical-button =\n    .title = Koristite vertikalno pomicanje\npdfjs-scroll-vertical-button-label = Vertikalno pomicanje\npdfjs-scroll-horizontal-button =\n    .title = Koristite horizontalno pomicanje\npdfjs-scroll-horizontal-button-label = Horizontalno pomicanje\npdfjs-scroll-wrapped-button =\n    .title = Koristite omotno pomicanje\npdfjs-scroll-wrapped-button-label = Omotno pomicanje\npdfjs-spread-none-button =\n    .title = Ne izrađuj duplerice\npdfjs-spread-none-button-label = Bez duplerica\npdfjs-spread-odd-button =\n    .title = Izradi duplerice koje počinju s neparnim stranicama\npdfjs-spread-odd-button-label = Neparne duplerice\npdfjs-spread-even-button =\n    .title = Izradi duplerice koje počinju s parnim stranicama\npdfjs-spread-even-button-label = Parne duplerice\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Svojstva dokumenta...\npdfjs-document-properties-button-label = Svojstva dokumenta...\npdfjs-document-properties-file-name = Naziv fajla:\npdfjs-document-properties-file-size = Veličina fajla:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtova)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtova)\npdfjs-document-properties-title = Naslov:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Predmet:\npdfjs-document-properties-keywords = Ključne riječi:\npdfjs-document-properties-creation-date = Datum kreiranja:\npdfjs-document-properties-modification-date = Datum promjene:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Kreator:\npdfjs-document-properties-producer = PDF stvaratelj:\npdfjs-document-properties-version = PDF verzija:\npdfjs-document-properties-page-count = Broj stranica:\npdfjs-document-properties-page-size = Veličina stranice:\npdfjs-document-properties-page-size-unit-inches = u\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = uspravno\npdfjs-document-properties-page-size-orientation-landscape = vodoravno\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Pismo\npdfjs-document-properties-page-size-name-legal = Pravni\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Brzi web pregled:\npdfjs-document-properties-linearized-yes = Da\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Zatvori\n\n## Print\n\npdfjs-print-progress-message = Pripremam dokument za štampu…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Otkaži\npdfjs-printing-not-supported = Upozorenje: Štampanje nije u potpunosti podržano u ovom browseru.\npdfjs-printing-not-ready = Upozorenje: PDF nije u potpunosti učitan za štampanje.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Uključi/isključi bočnu traku\npdfjs-toggle-sidebar-notification-button =\n    .title = Uključi/isključi bočnu traku (dokument sadrži obris/priloge/slojeve)\npdfjs-toggle-sidebar-button-label = Uključi/isključi bočnu traku\npdfjs-document-outline-button =\n    .title = Prikaži outline dokumenta (dvoklik za skupljanje/širenje svih stavki)\npdfjs-document-outline-button-label = Konture dokumenta\npdfjs-attachments-button =\n    .title = Prikaži priloge\npdfjs-attachments-button-label = Prilozi\npdfjs-layers-button =\n    .title = Prikaži slojeve (dvostruki klik da biste vratili sve slojeve na zadano stanje)\npdfjs-layers-button-label = Slojevi\npdfjs-thumbs-button =\n    .title = Prikaži thumbnailove\npdfjs-thumbs-button-label = Thumbnailovi\npdfjs-current-outline-item-button =\n    .title = Pronađi trenutnu stavku strukture\npdfjs-current-outline-item-button-label = Trenutna stavka strukture\npdfjs-findbar-button =\n    .title = Pronađi u dokumentu\npdfjs-findbar-button-label = Pronađi\npdfjs-additional-layers = Dodatni slojevi\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Strana { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail strane { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Pronađi\n    .placeholder = Pronađi u dokumentu…\npdfjs-find-previous-button =\n    .title = Pronađi prethodno pojavljivanje fraze\npdfjs-find-previous-button-label = Prethodno\npdfjs-find-next-button =\n    .title = Pronađi sljedeće pojavljivanje fraze\npdfjs-find-next-button-label = Sljedeće\npdfjs-find-highlight-checkbox = Označi sve\npdfjs-find-match-case-checkbox-label = Osjetljivost na karaktere\npdfjs-find-match-diacritics-checkbox-label = Podudaranje dijakritika\npdfjs-find-entire-word-checkbox-label = Cijele riječi\npdfjs-find-reached-top = Dostigao sam vrh dokumenta, nastavljam sa dna\npdfjs-find-reached-bottom = Dostigao sam kraj dokumenta, nastavljam sa vrha\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } od { $total } podudaranje\n        [few] { $current } od { $total } podudaranja\n       *[other] { $current } od { $total } podudaranja\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Više od { $limit } podudaranja\n        [few] Više od { $limit } podudaranja\n       *[other] Više od { $limit } podudaranja\n    }\npdfjs-find-not-found = Fraza nije pronađena\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Širina strane\npdfjs-page-scale-fit = Uklopi stranu\npdfjs-page-scale-auto = Automatsko uvećanje\npdfjs-page-scale-actual = Stvarna veličina\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Stranica { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Došlo je do greške prilikom učitavanja PDF-a.\npdfjs-invalid-file-error = Neispravan ili oštećen PDF fajl.\npdfjs-missing-file-error = Nedostaje PDF fajl.\npdfjs-unexpected-response-error = Neočekivani odgovor servera.\npdfjs-rendering-error = Došlo je do greške prilikom renderiranja strane.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } pribilješka]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Upišite lozinku da biste otvorili ovaj PDF fajl.\npdfjs-password-invalid = Pogrešna lozinka. Pokušajte ponovo.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Otkaži\npdfjs-web-fonts-disabled = Web fontovi su onemogućeni: nemoguće koristiti ubačene PDF fontove.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Crtanje\npdfjs-editor-ink-button-label = Crtanje\npdfjs-editor-stamp-button =\n    .title = Dodajte ili uredite slike\npdfjs-editor-stamp-button-label = Dodajte ili uredite slike\npdfjs-editor-highlight-button =\n    .title = Istaknite\npdfjs-editor-highlight-button-label = Istaknite\npdfjs-highlight-floating-button1 =\n    .title = Istaknite\n    .aria-label = Istaknite\npdfjs-highlight-floating-button-label = Istaknite\npdfjs-editor-signature-button =\n    .title = Dodaj potpis\npdfjs-editor-signature-button-label = Dodaj potpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Uređivač istaknutih elemenata\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Uređivač crteža\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Uređivač potpisa: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Uređivač slika\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Ukloni crtež\npdfjs-editor-remove-freetext-button =\n    .title = Ukloni tekst\npdfjs-editor-remove-stamp-button =\n    .title = Ukloni sliku\npdfjs-editor-remove-highlight-button =\n    .title = Ukloni istaknuti dio\npdfjs-editor-remove-signature-button =\n    .title = Ukloni potpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Boja\npdfjs-editor-free-text-size-input = Veličina\npdfjs-editor-ink-color-input = Boja\npdfjs-editor-ink-thickness-input = Debljina\npdfjs-editor-ink-opacity-input = Neprozirnost\npdfjs-editor-stamp-add-image-button =\n    .title = Dodaj sliku\npdfjs-editor-stamp-add-image-button-label = Dodaj sliku\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Debljina\npdfjs-editor-free-highlight-thickness-title =\n    .title = Promijenite debljinu prilikom označavanja stavki koje nisu tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrole potpisa i sačuvani potpisi\npdfjs-editor-signature-add-signature-button =\n    .title = Dodaj novi potpis\npdfjs-editor-signature-add-signature-button-label = Dodaj novi potpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Sačuvani potpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Uređivač teksta\n    .default-content = Počnite kucati…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativni tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Uredi alternativni tekst\npdfjs-editor-alt-text-dialog-label = Odaberite opciju\npdfjs-editor-alt-text-dialog-description = Alternativni tekst (Alt tekst) pomaže kada ljudi ne mogu vidjeti sliku ili kada se ona ne učitava.\npdfjs-editor-alt-text-add-description-label = Dodajte opis\npdfjs-editor-alt-text-add-description-description = Ciljajte na 1-2 rečenice koje opisuju temu, okruženje ili radnju.\npdfjs-editor-alt-text-mark-decorative-label = Označi kao dekorativno\npdfjs-editor-alt-text-mark-decorative-description = Ovo se koristi za ukrasne slike, poput okvira ili vodenih žigova.\npdfjs-editor-alt-text-cancel-button = Otkaži\npdfjs-editor-alt-text-save-button = Sačuvaj\npdfjs-editor-alt-text-decorative-tooltip = Označeno kao dekorativno\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na primjer, „Mladić sjeda za stol da jede obrok“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativni tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Gornji lijevi ugao — promjena veličine\npdfjs-editor-resizer-top-middle =\n    .aria-label = Gore u sredini — promijeni veličinu\npdfjs-editor-resizer-top-right =\n    .aria-label = Gornji desni ugao — promijeni veličinu\npdfjs-editor-resizer-middle-right =\n    .aria-label = Sredina desno — promijeni veličinu\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Donji desni ugao — promijeni veličinu\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Donji srednji dio — promijeni veličinu\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Donji lijevi ugao — promijeni veličinu\npdfjs-editor-resizer-middle-left =\n    .aria-label = Sredina lijevo — promijeni veličinu\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Boja isticanja\npdfjs-editor-colorpicker-button =\n    .title = Promijeni boju\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Izbor boja\npdfjs-editor-colorpicker-yellow =\n    .title = Žuta\npdfjs-editor-colorpicker-green =\n    .title = Zelena\npdfjs-editor-colorpicker-blue =\n    .title = Plava\npdfjs-editor-colorpicker-pink =\n    .title = Roza\npdfjs-editor-colorpicker-red =\n    .title = Crvena\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Prikaži sve\npdfjs-editor-highlight-show-all-button =\n    .title = Prikaži sve\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Uredi alternativni tekst (opis slike)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Dodaj alternativni tekst (opis slike)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Ovdje napišite svoj opis…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kratak opis za osobe koje ne mogu vidjeti sliku ili kada se slika ne učitava.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ovaj alternativni tekst je kreiran automatski i moguće je da je netačan.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saznajte više\npdfjs-editor-new-alt-text-create-automatically-button-label = Automatski kreiraj alternativni tekst\npdfjs-editor-new-alt-text-not-now-button = Ne sada\npdfjs-editor-new-alt-text-error-title = Nije moguće automatski kreirati alternativni tekst\npdfjs-editor-new-alt-text-error-description = Molimo vas da napišete vlastiti alternativni tekst ili pokušate ponovo kasnije.\npdfjs-editor-new-alt-text-error-close-button = Zatvori\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Preuzimanje alternativnog tekstualnog AI modela ({ $downloadedSize } od { $totalSize } MB)\n    .aria-valuetext = Preuzimanje alternativnog tekstualnog AI modela ({ $downloadedSize } od { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativni tekst je dodan\npdfjs-editor-new-alt-text-added-button-label = Alternativni tekst je dodan\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Nedostaje alternativni tekst\npdfjs-editor-new-alt-text-missing-button-label = Nedostaje alternativni tekst\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternativni tekst recenzije\npdfjs-editor-new-alt-text-to-review-button-label = Alternativni tekst recenzije\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatski kreirano: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Postavke alternativnog teksta slike\npdfjs-image-alt-text-settings-button-label = Postavke alternativnog teksta slike\npdfjs-editor-alt-text-settings-dialog-label = Postavke alternativnog teksta slike\npdfjs-editor-alt-text-settings-automatic-title = Automatski alternativni tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Automatski kreiraj alternativni tekst\npdfjs-editor-alt-text-settings-create-model-description = Predlaže opise kako bi pomogao ljudima koji ne vide sliku ili kada se slika ne učitava.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alternativni tekst AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Radi lokalno na vašem uređaju tako da vaši podaci ostaju privatni. Potrebno za automatski alternativni tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Izbriši\npdfjs-editor-alt-text-settings-download-model-button = Preuzmi\npdfjs-editor-alt-text-settings-downloading-model-button = Preuzimam…\npdfjs-editor-alt-text-settings-editor-title = Uređivač alternativnog teksta\npdfjs-editor-alt-text-settings-show-dialog-button-label = Odmah prikaži uređivač alternativnog teksta prilikom dodavanja slike\npdfjs-editor-alt-text-settings-show-dialog-description = Pomaže vam da osigurate da sve vaše slike imaju alternativni tekst.\npdfjs-editor-alt-text-settings-close-button = Zatvori\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Istaknuto je uklonjeno\npdfjs-editor-undo-bar-message-freetext = Tekst uklonjen\npdfjs-editor-undo-bar-message-ink = Crtež uklonjen\npdfjs-editor-undo-bar-message-stamp = Slika uklonjena\npdfjs-editor-undo-bar-message-signature = Potpis uklonjen\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } bilješka uklonjena\n        [few] { $count } bilješke uklonjene\n       *[other] { $count } bilješki uklonjeno\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Poništi\npdfjs-editor-undo-bar-undo-button-label = Poništi\npdfjs-editor-undo-bar-close-button =\n    .title = Zatvori\npdfjs-editor-undo-bar-close-button-label = Zatvori\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Ovaj modalni prozor omogućava korisniku da kreira potpis koji će dodati PDF dokumentu. Korisnik može urediti ime (koje služi i kao alternativni tekst) i opcionalno sačuvati potpis za ponovnu upotrebu.\npdfjs-editor-add-signature-dialog-title = Dodaj potpis\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Ukucaj\n    .title = Ukucaj\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Napiši\n    .title = Napiši\npdfjs-editor-add-signature-image-button = Slika\n    .title = Slika\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Ukucajte svoj potpis\n    .placeholder = Ukucajte svoj potpis\npdfjs-editor-add-signature-draw-placeholder = Napišite svoj potpis\npdfjs-editor-add-signature-draw-thickness-range-label = Debljina\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Debljina pisanja: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Prevucite datoteku ovdje da biste je učitali\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ili odaberite slikovne datoteke\n       *[other] Ili pregledajte slikovne datoteke\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Opis (alternativni tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Opis (alternativni tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Potpis\npdfjs-editor-add-signature-clear-button-label = Očisti potpis\npdfjs-editor-add-signature-clear-button =\n    .title = Očisti potpis\npdfjs-editor-add-signature-save-checkbox = Sačuvaj potpis\npdfjs-editor-add-signature-save-warning-message = Dostigli ste ograničenje od 5 sačuvanih potpisa. Uklonite jedan da biste sačuvali više.\npdfjs-editor-add-signature-image-upload-error-title = Nije moguće učitati sliku\npdfjs-editor-add-signature-image-upload-error-description = Provjerite mrežnu vezu ili pokušajte s drugom slikom.\npdfjs-editor-add-signature-image-no-data-error-title = Nije moguće pretvoriti ovu sliku u potpis\npdfjs-editor-add-signature-image-no-data-error-description = Molimo pokušajte učitati drugu sliku.\npdfjs-editor-add-signature-error-close-button = Zatvori\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Otkaži\npdfjs-editor-add-signature-add-button = Dodaj\npdfjs-editor-edit-signature-update-button = Ažuriraj\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Radnje\npdfjs-editor-edit-comment-actions-button =\n    .title = Radnje\npdfjs-editor-edit-comment-close-button-label = Zatvori\npdfjs-editor-edit-comment-close-button =\n    .title = Zatvori\npdfjs-editor-edit-comment-actions-edit-button-label = Uredi\npdfjs-editor-edit-comment-actions-delete-button-label = Izbriši\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Unesite svoj komentar\npdfjs-editor-edit-comment-manager-cancel-button = Otkaži\npdfjs-editor-edit-comment-manager-save-button = Sačuvaj\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Uredi komentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Ukloni sačuvani potpis\npdfjs-editor-delete-signature-button-label1 = Ukloni sačuvani potpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Uredi opis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Uredi opis\n"
  },
  {
    "path": "viewer/locale/ca/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pàgina anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Pàgina següent\npdfjs-next-button-label = Següent\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pàgina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Redueix\npdfjs-zoom-out-button-label = Redueix\npdfjs-zoom-in-button =\n    .title = Amplia\npdfjs-zoom-in-button-label = Amplia\npdfjs-zoom-select =\n    .title = Escala\npdfjs-presentation-mode-button =\n    .title = Canvia al mode de presentació\npdfjs-presentation-mode-button-label = Mode de presentació\npdfjs-open-file-button =\n    .title = Obre el fitxer\npdfjs-open-file-button-label = Obre\npdfjs-print-button =\n    .title = Imprimeix\npdfjs-print-button-label = Imprimeix\npdfjs-save-button =\n    .title = Desa\npdfjs-save-button-label = Desa\npdfjs-bookmark-button =\n    .title = Pàgina actual (mostra l'URL de la pàgina actual)\npdfjs-bookmark-button-label = Pàgina actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Eines\npdfjs-tools-button-label = Eines\npdfjs-first-page-button =\n    .title = Vés a la primera pàgina\npdfjs-first-page-button-label = Vés a la primera pàgina\npdfjs-last-page-button =\n    .title = Vés a l'última pàgina\npdfjs-last-page-button-label = Vés a l'última pàgina\npdfjs-page-rotate-cw-button =\n    .title = Gira cap a la dreta\npdfjs-page-rotate-cw-button-label = Gira cap a la dreta\npdfjs-page-rotate-ccw-button =\n    .title = Gira cap a l'esquerra\npdfjs-page-rotate-ccw-button-label = Gira cap a l'esquerra\npdfjs-cursor-text-select-tool-button =\n    .title = Habilita l'eina de selecció de text\npdfjs-cursor-text-select-tool-button-label = Eina de selecció de text\npdfjs-cursor-hand-tool-button =\n    .title = Habilita l'eina de mà\npdfjs-cursor-hand-tool-button-label = Eina de mà\npdfjs-scroll-page-button =\n    .title = Usa el desplaçament de pàgina\npdfjs-scroll-page-button-label = Desplaçament de pàgina\npdfjs-scroll-vertical-button =\n    .title = Utilitza el desplaçament vertical\npdfjs-scroll-vertical-button-label = Desplaçament vertical\npdfjs-scroll-horizontal-button =\n    .title = Utilitza el desplaçament horitzontal\npdfjs-scroll-horizontal-button-label = Desplaçament horitzontal\npdfjs-scroll-wrapped-button =\n    .title = Activa el desplaçament continu\npdfjs-scroll-wrapped-button-label = Desplaçament continu\npdfjs-spread-none-button =\n    .title = No agrupis les pàgines de dues en dues\npdfjs-spread-none-button-label = Una sola pàgina\npdfjs-spread-odd-button =\n    .title = Mostra dues pàgines començant per les pàgines de numeració senar\npdfjs-spread-odd-button-label = Doble pàgina (senar)\npdfjs-spread-even-button =\n    .title = Mostra dues pàgines començant per les pàgines de numeració parell\npdfjs-spread-even-button-label = Doble pàgina (parell)\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propietats del document…\npdfjs-document-properties-button-label = Propietats del document…\npdfjs-document-properties-file-name = Nom del fitxer:\npdfjs-document-properties-file-size = Mida del fitxer:\npdfjs-document-properties-title = Títol:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Assumpte:\npdfjs-document-properties-keywords = Paraules clau:\npdfjs-document-properties-creation-date = Data de creació:\npdfjs-document-properties-modification-date = Data de modificació:\npdfjs-document-properties-creator = Creador:\npdfjs-document-properties-producer = Generador de PDF:\npdfjs-document-properties-version = Versió de PDF:\npdfjs-document-properties-page-count = Nombre de pàgines:\npdfjs-document-properties-page-size = Mida de la pàgina:\npdfjs-document-properties-page-size-unit-inches = polzades\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = apaïsat\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web ràpida:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Tanca\n\n## Print\n\npdfjs-print-progress-message = S'està preparant la impressió del document…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel·la\npdfjs-printing-not-supported = Avís: la impressió no és plenament funcional en aquest navegador.\npdfjs-printing-not-ready = Atenció: el PDF no s'ha acabat de carregar per imprimir-lo.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Mostra/amaga la barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Mostra/amaga la barra lateral (el document conté un esquema, adjuncions o capes)\npdfjs-toggle-sidebar-button-label = Mostra/amaga la barra lateral\npdfjs-document-outline-button =\n    .title = Mostra l'esquema del document (doble clic per ampliar/reduir tots els elements)\npdfjs-document-outline-button-label = Esquema del document\npdfjs-attachments-button =\n    .title = Mostra les adjuncions\npdfjs-attachments-button-label = Adjuncions\npdfjs-layers-button =\n    .title = Mostra les capes (doble clic per restablir totes les capes al seu estat per defecte)\npdfjs-layers-button-label = Capes\npdfjs-thumbs-button =\n    .title = Mostra les miniatures\npdfjs-thumbs-button-label = Miniatures\npdfjs-current-outline-item-button =\n    .title = Cerca l'element d'esquema actual\npdfjs-current-outline-item-button-label = Element d'esquema actual\npdfjs-findbar-button =\n    .title = Cerca al document\npdfjs-findbar-button-label = Cerca\npdfjs-additional-layers = Capes addicionals\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pàgina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de la pàgina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Cerca\n    .placeholder = Cerca al document…\npdfjs-find-previous-button =\n    .title = Cerca l'anterior coincidència de l'expressió\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Cerca la següent coincidència de l'expressió\npdfjs-find-next-button-label = Següent\npdfjs-find-highlight-checkbox = Ressalta-ho tot\npdfjs-find-match-case-checkbox-label = Distingeix entre majúscules i minúscules\npdfjs-find-match-diacritics-checkbox-label = Respecta els diacrítics\npdfjs-find-entire-word-checkbox-label = Paraules senceres\npdfjs-find-reached-top = S'ha arribat al principi del document, es continua pel final\npdfjs-find-reached-bottom = S'ha arribat al final del document, es continua pel principi\npdfjs-find-not-found = No s'ha trobat l'expressió\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Amplada de la pàgina\npdfjs-page-scale-fit = Ajusta la pàgina\npdfjs-page-scale-auto = Zoom automàtic\npdfjs-page-scale-actual = Mida real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pàgina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = S'ha produït un error en carregar el PDF.\npdfjs-invalid-file-error = El fitxer PDF no és vàlid o està malmès.\npdfjs-missing-file-error = Falta el fitxer PDF.\npdfjs-unexpected-response-error = Resposta inesperada del servidor.\npdfjs-rendering-error = S'ha produït un error mentre es renderitzava la pàgina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotació { $type }]\n\n## Password\n\npdfjs-password-label = Introduïu la contrasenya per obrir aquest fitxer PDF.\npdfjs-password-invalid = La contrasenya no és vàlida. Torneu-ho a provar.\npdfjs-password-ok-button = D'acord\npdfjs-password-cancel-button = Cancel·la\npdfjs-web-fonts-disabled = Els tipus de lletra web estan desactivats: no es poden utilitzar els tipus de lletra incrustats al PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Dibuixa\npdfjs-editor-ink-button-label = Dibuixa\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Mida\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Gruix\npdfjs-editor-ink-opacity-input = Opacitat\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-cancel-button = Cancel·la\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancel·la\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-manager-cancel-button = Cancel·la\n"
  },
  {
    "path": "viewer/locale/cak/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Jun kan ruxaq\npdfjs-previous-button-label = Jun kan\npdfjs-next-button =\n    .title = Jun chik ruxaq\npdfjs-next-button-label = Jun chik\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Ruxaq\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = richin { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } richin { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Tich'utinirisäx\npdfjs-zoom-out-button-label = Tich'utinirisäx\npdfjs-zoom-in-button =\n    .title = Tinimirisäx\npdfjs-zoom-in-button-label = Tinimirisäx\npdfjs-zoom-select =\n    .title = Sum\npdfjs-presentation-mode-button =\n    .title = Tijal ri rub'anikil niwachin\npdfjs-presentation-mode-button-label = Pa rub'eyal niwachin\npdfjs-open-file-button =\n    .title = Tijaq Yakb'äl\npdfjs-open-file-button-label = Tijaq\npdfjs-print-button =\n    .title = Titz'ajb'äx\npdfjs-print-button-label = Titz'ajb'äx\npdfjs-save-button =\n    .title = Tiyak\npdfjs-save-button-label = Tiyak\npdfjs-bookmark-button-label = Ruxaq k'o wakami\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Samajib'äl\npdfjs-tools-button-label = Samajib'äl\npdfjs-first-page-button =\n    .title = Tib'e pa nab'ey ruxaq\npdfjs-first-page-button-label = Tib'e pa nab'ey ruxaq\npdfjs-last-page-button =\n    .title = Tib'e pa ruk'isib'äl ruxaq\npdfjs-last-page-button-label = Tib'e pa ruk'isib'äl ruxaq\npdfjs-page-rotate-cw-button =\n    .title = Tisutïx pan ajkiq'a'\npdfjs-page-rotate-cw-button-label = Tisutïx pan ajkiq'a'\npdfjs-page-rotate-ccw-button =\n    .title = Tisutïx pan ajxokon\npdfjs-page-rotate-ccw-button-label = Tisutïx pan ajxokon\npdfjs-cursor-text-select-tool-button =\n    .title = Titzij ri rusamajib'al Rucha'ik Rucholajem Tzij\npdfjs-cursor-text-select-tool-button-label = Rusamajib'al Rucha'ik Rucholajem Tzij\npdfjs-cursor-hand-tool-button =\n    .title = Titzij ri q'ab'aj samajib'äl\npdfjs-cursor-hand-tool-button-label = Q'ab'aj Samajib'äl\npdfjs-scroll-page-button =\n    .title = Tokisäx Ruxaq Q'axanem\npdfjs-scroll-page-button-label = Ruxaq Q'axanem\npdfjs-scroll-vertical-button =\n    .title = Tokisäx Pa'äl Q'axanem\npdfjs-scroll-vertical-button-label = Pa'äl Q'axanem\npdfjs-scroll-horizontal-button =\n    .title = Tokisäx Kotz'öl Q'axanem\npdfjs-scroll-horizontal-button-label = Kotz'öl Q'axanem\npdfjs-scroll-wrapped-button =\n    .title = Tokisäx Tzub'aj Q'axanem\npdfjs-scroll-wrapped-button-label = Tzub'aj Q'axanem\npdfjs-spread-none-button =\n    .title = Man ketun taq ruxaq pa rub'eyal wuj\npdfjs-spread-none-button-label = Majun Rub'eyal\npdfjs-spread-odd-button =\n    .title = Ke'atunu' ri taq ruxaq rik'in natikirisaj rik'in jun man k'ulaj ta rajilab'al\npdfjs-spread-odd-button-label = Man K'ulaj Ta Rub'eyal\npdfjs-spread-even-button =\n    .title = Ke'atunu' ri taq ruxaq rik'in natikirisaj rik'in jun k'ulaj rajilab'al\npdfjs-spread-even-button-label = K'ulaj Rub'eyal\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Taq richinil wuj…\npdfjs-document-properties-button-label = Taq richinil wuj…\npdfjs-document-properties-file-name = Rub'i' yakb'äl:\npdfjs-document-properties-file-size = Runimilem yakb'äl:\npdfjs-document-properties-title = B'i'aj:\npdfjs-document-properties-author = B'anel:\npdfjs-document-properties-subject = Taqikil:\npdfjs-document-properties-keywords = Kixe'el taq tzij:\npdfjs-document-properties-creation-date = Ruq'ijul xtz'uk:\npdfjs-document-properties-modification-date = Ruq'ijul xjalwachïx:\npdfjs-document-properties-creator = Q'inonel:\npdfjs-document-properties-producer = PDF b'anöy:\npdfjs-document-properties-version = PDF ruwäch:\npdfjs-document-properties-page-count = Jarupe' ruxaq:\npdfjs-document-properties-page-size = Runimilem ri Ruxaq:\npdfjs-document-properties-page-size-unit-inches = pa\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = rupalem\npdfjs-document-properties-page-size-orientation-landscape = rukotz'olem\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Loman wuj\npdfjs-document-properties-page-size-name-legal = Taqanel tzijol\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Anin Rutz'etik Ajk'amaya'l:\npdfjs-document-properties-linearized-yes = Ja'\npdfjs-document-properties-linearized-no = Mani\npdfjs-document-properties-close-button = Titz'apïx\n\n## Print\n\npdfjs-print-progress-message = Ruchojmirisaxik wuj richin nitz'ajb'äx…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Tiq'at\npdfjs-printing-not-supported = Rutzijol k'ayewal: Ri rutz'ajb'axik man koch'el ta ronojel pa re okik'amaya'l re'.\npdfjs-printing-not-ready = Rutzijol k'ayewal: Ri PDF man xusamajij ta ronojel richin nitz'ajb'äx.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Tijal ri ajxikin kajtz'ik\npdfjs-toggle-sidebar-notification-button =\n    .title = Tik'ex ri ajxikin yuqkajtz'ik (ri wuj eruk'wan taq ruchi'/taqo/kuchuj)\npdfjs-toggle-sidebar-button-label = Tijal ri ajxikin kajtz'ik\npdfjs-document-outline-button =\n    .title = Tik'ut pe ruch'akulal wuj (kamul-pitz'oj richin nirik'/nich'utinirisäx ronojel ruch'akulal)\npdfjs-document-outline-button-label = Ruch'akulal wuj\npdfjs-attachments-button =\n    .title = Kek'ut pe ri taq taqoj\npdfjs-attachments-button-label = Taq taqoj\npdfjs-layers-button =\n    .title = Kek'ut taq Kuchuj (ka'i'-pitz' richin yetzolïx ronojel ri taq kuchuj e k'o wi)\npdfjs-layers-button-label = Taq kuchuj\npdfjs-thumbs-button =\n    .title = Kek'ut pe taq ch'utiq\npdfjs-thumbs-button-label = Koköj\npdfjs-current-outline-item-button =\n    .title = Kekanöx  Taq Ch'akulal Kik'wan Chib'äl\npdfjs-current-outline-item-button-label = Taq Ch'akulal Kik'wan Chib'äl\npdfjs-findbar-button =\n    .title = Tikanöx chupam ri wuj\npdfjs-findbar-button-label = Tikanöx\npdfjs-additional-layers = Tz'aqat ta Kuchuj\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Ruxaq { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Ruch'utinirisaxik ruxaq { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Tikanöx\n    .placeholder = Tikanöx pa wuj…\npdfjs-find-previous-button =\n    .title = Tib'an b'enam pa ri jun kan q'aptzij xilitäj\npdfjs-find-previous-button-label = Jun kan\npdfjs-find-next-button =\n    .title = Tib'e pa ri jun chik pajtzij xilitäj\npdfjs-find-next-button-label = Jun chik\npdfjs-find-highlight-checkbox = Tiya' retal ronojel\npdfjs-find-match-case-checkbox-label = Tuk'äm ri' kik'in taq nimatz'ib' chuqa' taq ch'utitz'ib'\npdfjs-find-match-diacritics-checkbox-label = Tiya' Kikojol Tz'aqat taq Tz'ib'\npdfjs-find-entire-word-checkbox-label = Tz'aqät taq tzij\npdfjs-find-reached-top = Xb'eq'i' ri rutikirib'al wuj, xtikanöx k'a pa ruk'isib'äl\npdfjs-find-reached-bottom = Xb'eq'i' ri ruk'isib'äl wuj, xtikanöx pa rutikirib'al\npdfjs-find-not-found = Man xilitäj ta ri pajtzij\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ruwa ruxaq\npdfjs-page-scale-fit = Tinuk' ruxaq\npdfjs-page-scale-auto = Yonil chi nimilem\npdfjs-page-scale-actual = Runimilem Wakami\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Ruxaq { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Xk'ulwachitäj jun sach'oj toq xnuk'ux ri PDF .\npdfjs-invalid-file-error = Man oke ta o yujtajinäq ri PDF yakb'äl.\npdfjs-missing-file-error = Man xilitäj ta ri PDF yakb'äl.\npdfjs-unexpected-response-error = Man oyob'en ta tz'olin rutzij ruk'u'x samaj.\npdfjs-rendering-error = Xk'ulwachitäj jun sachoj toq ninuk'wachij ri ruxaq.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Tz'ib'anïk]\n\n## Password\n\npdfjs-password-label = Tatz'ib'aj ri ewan tzij richin najäq re yakb'äl re' pa PDF.\npdfjs-password-invalid = Man okel ta ri ewan tzij: Tatojtob'ej chik.\npdfjs-password-ok-button = Ütz\npdfjs-password-cancel-button = Tiq'at\npdfjs-web-fonts-disabled = E chupül ri taq ajk'amaya'l tz'ib': man tikirel ta nokisäx ri taq tz'ib' PDF pa ch'ikenïk\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Rucholajem tz'ib'\npdfjs-editor-free-text-button-label = Rucholajem tz'ib'\npdfjs-editor-ink-button =\n    .title = Tiwachib'ëx\npdfjs-editor-ink-button-label = Tiwachib'ëx\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = B'onil\npdfjs-editor-free-text-size-input = Nimilem\npdfjs-editor-ink-color-input = B'onil\npdfjs-editor-ink-thickness-input = Rupimil\npdfjs-editor-ink-opacity-input = Q'equmal\n"
  },
  {
    "path": "viewer/locale/ckb/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = پەڕەی پێشوو\npdfjs-previous-button-label = پێشوو\npdfjs-next-button =\n    .title = پەڕەی دوواتر\npdfjs-next-button-label = دوواتر\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = پەرە\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = لە { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } لە { $pagesCount })\npdfjs-zoom-out-button =\n    .title = ڕۆچوونی\npdfjs-zoom-out-button-label = ڕۆچوونی\npdfjs-zoom-in-button =\n    .title = هێنانەپێش\npdfjs-zoom-in-button-label = هێنانەپێش\npdfjs-zoom-select =\n    .title = زووم\npdfjs-presentation-mode-button =\n    .title = گۆڕین بۆ دۆخی پێشکەشکردن\npdfjs-presentation-mode-button-label = دۆخی پێشکەشکردن\npdfjs-open-file-button =\n    .title = پەڕگە بکەرەوە\npdfjs-open-file-button-label = کردنەوە\npdfjs-print-button =\n    .title = چاپکردن\npdfjs-print-button-label = چاپکردن\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ئامرازەکان\npdfjs-tools-button-label = ئامرازەکان\npdfjs-first-page-button =\n    .title = برۆ بۆ یەکەم پەڕە\npdfjs-first-page-button-label = بڕۆ بۆ یەکەم پەڕە\npdfjs-last-page-button =\n    .title = بڕۆ بۆ کۆتا پەڕە\npdfjs-last-page-button-label = بڕۆ بۆ کۆتا پەڕە\npdfjs-page-rotate-cw-button =\n    .title = ئاڕاستەی میلی کاتژمێر\npdfjs-page-rotate-cw-button-label = ئاڕاستەی میلی کاتژمێر\npdfjs-page-rotate-ccw-button =\n    .title = پێچەوانەی میلی کاتژمێر\npdfjs-page-rotate-ccw-button-label = پێچەوانەی میلی کاتژمێر\npdfjs-cursor-text-select-tool-button =\n    .title = توڵامرازی نیشانکەری دەق چالاک بکە\npdfjs-cursor-text-select-tool-button-label = توڵامرازی نیشانکەری دەق\npdfjs-cursor-hand-tool-button =\n    .title = توڵامرازی دەستی چالاک بکە\npdfjs-cursor-hand-tool-button-label = توڵامرازی دەستی\npdfjs-scroll-vertical-button =\n    .title = ناردنی ئەستوونی بەکاربێنە\npdfjs-scroll-vertical-button-label = ناردنی ئەستوونی\npdfjs-scroll-horizontal-button =\n    .title = ناردنی ئاسۆیی بەکاربێنە\npdfjs-scroll-horizontal-button-label = ناردنی ئاسۆیی\npdfjs-scroll-wrapped-button =\n    .title = ناردنی لوولکراو بەکاربێنە\npdfjs-scroll-wrapped-button-label = ناردنی لوولکراو\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = تایبەتمەندییەکانی بەڵگەنامە...\npdfjs-document-properties-button-label = تایبەتمەندییەکانی بەڵگەنامە...\npdfjs-document-properties-file-name = ناوی پەڕگە:\npdfjs-document-properties-file-size = قەبارەی پەڕگە:\npdfjs-document-properties-title = سەردێڕ:\npdfjs-document-properties-author = نووسەر\npdfjs-document-properties-subject = بابەت:\npdfjs-document-properties-keywords = کلیلەوشە:\npdfjs-document-properties-creation-date = بەرواری درووستکردن:\npdfjs-document-properties-modification-date = بەرواری دەستکاریکردن:\npdfjs-document-properties-creator = درووستکەر:\npdfjs-document-properties-producer = بەرهەمهێنەری PDF:\npdfjs-document-properties-version = وەشانی PDF:\npdfjs-document-properties-page-count = ژمارەی پەرەکان:\npdfjs-document-properties-page-size = قەبارەی پەڕە:\npdfjs-document-properties-page-size-unit-inches = ئینچ\npdfjs-document-properties-page-size-unit-millimeters = ملم\npdfjs-document-properties-page-size-orientation-portrait = پۆرترەیت(درێژ)\npdfjs-document-properties-page-size-orientation-landscape = پانیی\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = نامە\npdfjs-document-properties-page-size-name-legal = یاسایی\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = پیشاندانی وێبی خێرا:\npdfjs-document-properties-linearized-yes = بەڵێ\npdfjs-document-properties-linearized-no = نەخێر\npdfjs-document-properties-close-button = داخستن\n\n## Print\n\npdfjs-print-progress-message = بەڵگەنامە ئامادەدەکرێت بۆ چاپکردن...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = پاشگەزبوونەوە\npdfjs-printing-not-supported = ئاگاداربە: چاپکردن بە تەواوی پشتگیر ناکرێت لەم وێبگەڕە.\npdfjs-printing-not-ready = ئاگاداربە: PDF بە تەواوی بارنەبووە بۆ چاپکردن.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = لاتەنیشت پیشاندان/شاردنەوە\npdfjs-toggle-sidebar-button-label = لاتەنیشت پیشاندان/شاردنەوە\npdfjs-document-outline-button-label = سنووری چوارچێوە\npdfjs-attachments-button =\n    .title = پاشکۆکان پیشان بدە\npdfjs-attachments-button-label = پاشکۆکان\npdfjs-layers-button-label = چینەکان\npdfjs-thumbs-button =\n    .title = وێنۆچکە پیشان بدە\npdfjs-thumbs-button-label = وێنۆچکە\npdfjs-findbar-button =\n    .title = لە بەڵگەنامە بگەرێ\npdfjs-findbar-button-label = دۆزینەوە\npdfjs-additional-layers = چینی زیاتر\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = پەڕەی { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = وێنۆچکەی پەڕەی { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = دۆزینەوە\n    .placeholder = لە بەڵگەنامە بگەرێ...\npdfjs-find-previous-button =\n    .title = هەبوونی پێشوو بدۆزرەوە لە ڕستەکەدا\npdfjs-find-previous-button-label = پێشوو\npdfjs-find-next-button =\n    .title = هەبوونی داهاتوو بدۆزەرەوە لە ڕستەکەدا\npdfjs-find-next-button-label = دوواتر\npdfjs-find-highlight-checkbox = هەمووی نیشانە بکە\npdfjs-find-match-case-checkbox-label = دۆخی لەیەکچوون\npdfjs-find-entire-word-checkbox-label = هەموو وشەکان\npdfjs-find-reached-top = گەشتیتە سەرەوەی بەڵگەنامە، لە خوارەوە دەستت پێکرد\npdfjs-find-reached-bottom = گەشتیتە کۆتایی بەڵگەنامە. لەسەرەوە دەستت پێکرد\npdfjs-find-not-found = نووسین نەدۆزرایەوە\n\n## Predefined zoom values\n\npdfjs-page-scale-width = پانی پەڕە\npdfjs-page-scale-fit = پڕبوونی پەڕە\npdfjs-page-scale-auto = زوومی خۆکار\npdfjs-page-scale-actual = قەبارەی ڕاستی\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = هەڵەیەک ڕوویدا لە کاتی بارکردنی  PDF.\npdfjs-invalid-file-error = پەڕگەی pdf تێکچووە یان نەگونجاوە.\npdfjs-missing-file-error = پەڕگەی pdf بوونی نیە.\npdfjs-unexpected-response-error = وەڵامی ڕاژەخوازی نەخوازراو.\npdfjs-rendering-error = هەڵەیەک ڕوویدا لە کاتی پوختەکردنی (ڕێندەر) پەڕە.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } سەرنج]\n\n## Password\n\npdfjs-password-label = وشەی تێپەڕ بنووسە بۆ کردنەوەی پەڕگەی pdf.\npdfjs-password-invalid = وشەی تێپەڕ هەڵەیە. تکایە دووبارە هەوڵ بدەرەوە.\npdfjs-password-ok-button = باشە\npdfjs-password-cancel-button = پاشگەزبوونەوە\npdfjs-web-fonts-disabled = جۆرەپیتی وێب ناچالاکە: نەتوانی جۆرەپیتی تێخراوی ناو pdfـەکە بەکاربێت.\n"
  },
  {
    "path": "viewer/locale/cs/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Přejde na předchozí stránku\npdfjs-previous-button-label = Předchozí\npdfjs-next-button =\n    .title = Přejde na následující stránku\npdfjs-next-button-label = Další\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Stránka\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = z { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } z { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zmenší velikost\npdfjs-zoom-out-button-label = Zmenšit\npdfjs-zoom-in-button =\n    .title = Zvětší velikost\npdfjs-zoom-in-button-label = Zvětšit\npdfjs-zoom-select =\n    .title = Nastaví velikost\npdfjs-presentation-mode-button =\n    .title = Přepne do režimu prezentace\npdfjs-presentation-mode-button-label = Režim prezentace\npdfjs-open-file-button =\n    .title = Otevře soubor\npdfjs-open-file-button-label = Otevřít\npdfjs-print-button =\n    .title = Vytiskne dokument\npdfjs-print-button-label = Vytisknout\npdfjs-save-button =\n    .title = Uložit\npdfjs-save-button-label = Uložit\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Stáhnout\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Stáhnout\npdfjs-bookmark-button =\n    .title = Aktuální stránka (zobrazit URL od aktuální stránky)\npdfjs-bookmark-button-label = Aktuální stránka\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Nástroje\npdfjs-tools-button-label = Nástroje\npdfjs-first-page-button =\n    .title = Přejde na první stránku\npdfjs-first-page-button-label = Přejít na první stránku\npdfjs-last-page-button =\n    .title = Přejde na poslední stránku\npdfjs-last-page-button-label = Přejít na poslední stránku\npdfjs-page-rotate-cw-button =\n    .title = Otočí po směru hodin\npdfjs-page-rotate-cw-button-label = Otočit po směru hodin\npdfjs-page-rotate-ccw-button =\n    .title = Otočí proti směru hodin\npdfjs-page-rotate-ccw-button-label = Otočit proti směru hodin\npdfjs-cursor-text-select-tool-button =\n    .title = Povolí výběr textu\npdfjs-cursor-text-select-tool-button-label = Výběr textu\npdfjs-cursor-hand-tool-button =\n    .title = Povolí nástroj ručička\npdfjs-cursor-hand-tool-button-label = Nástroj ručička\npdfjs-scroll-page-button =\n    .title = Posouvat po stránkách\npdfjs-scroll-page-button-label = Posouvání po stránkách\npdfjs-scroll-vertical-button =\n    .title = Použít svislé posouvání\npdfjs-scroll-vertical-button-label = Svislé posouvání\npdfjs-scroll-horizontal-button =\n    .title = Použít vodorovné posouvání\npdfjs-scroll-horizontal-button-label = Vodorovné posouvání\npdfjs-scroll-wrapped-button =\n    .title = Použít postupné posouvání\npdfjs-scroll-wrapped-button-label = Postupné posouvání\npdfjs-spread-none-button =\n    .title = Nesdružovat stránky\npdfjs-spread-none-button-label = Žádné sdružení\npdfjs-spread-odd-button =\n    .title = Sdruží stránky s umístěním lichých vlevo\npdfjs-spread-odd-button-label = Sdružení stránek (liché vlevo)\npdfjs-spread-even-button =\n    .title = Sdruží stránky s umístěním sudých vlevo\npdfjs-spread-even-button-label = Sdružení stránek (sudé vlevo)\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Vlastnosti dokumentu…\npdfjs-document-properties-button-label = Vlastnosti dokumentu…\npdfjs-document-properties-file-name = Název souboru:\npdfjs-document-properties-file-size = Velikost souboru:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } bajtů)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtů)\npdfjs-document-properties-title = Název stránky:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Předmět:\npdfjs-document-properties-keywords = Klíčová slova:\npdfjs-document-properties-creation-date = Datum vytvoření:\npdfjs-document-properties-modification-date = Datum úpravy:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Vytvořil:\npdfjs-document-properties-producer = Tvůrce PDF:\npdfjs-document-properties-version = Verze PDF:\npdfjs-document-properties-page-count = Počet stránek:\npdfjs-document-properties-page-size = Velikost stránky:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = na výšku\npdfjs-document-properties-page-size-orientation-landscape = na šířku\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Dopis\npdfjs-document-properties-page-size-name-legal = Právní dokument\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Rychlé zobrazování z webu:\npdfjs-document-properties-linearized-yes = Ano\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Zavřít\n\n## Print\n\npdfjs-print-progress-message = Příprava dokumentu pro tisk…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Zrušit\npdfjs-printing-not-supported = Upozornění: Tisk není v tomto prohlížeči plně podporován.\npdfjs-printing-not-ready = Upozornění: Dokument PDF není kompletně načten.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Postranní lišta\npdfjs-toggle-sidebar-notification-button =\n    .title = Přepnout postranní lištu (dokument obsahuje osnovu/přílohy/vrstvy)\npdfjs-toggle-sidebar-button-label = Postranní lišta\npdfjs-document-outline-button =\n    .title = Zobrazí osnovu dokumentu (poklepání přepne zobrazení všech položek)\npdfjs-document-outline-button-label = Osnova dokumentu\npdfjs-attachments-button =\n    .title = Zobrazí přílohy\npdfjs-attachments-button-label = Přílohy\npdfjs-layers-button =\n    .title = Zobrazit vrstvy (poklepáním obnovíte všechny vrstvy do výchozího stavu)\npdfjs-layers-button-label = Vrstvy\npdfjs-thumbs-button =\n    .title = Zobrazí náhledy\npdfjs-thumbs-button-label = Náhledy\npdfjs-current-outline-item-button =\n    .title = Najít aktuální položku v osnově\npdfjs-current-outline-item-button-label = Aktuální položka v osnově\npdfjs-findbar-button =\n    .title = Najde v dokumentu\npdfjs-findbar-button-label = Najít\npdfjs-additional-layers = Další vrstvy\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Strana { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Náhled strany { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Najít\n    .placeholder = Najít v dokumentu…\npdfjs-find-previous-button =\n    .title = Najde předchozí výskyt hledaného textu\npdfjs-find-previous-button-label = Předchozí\npdfjs-find-next-button =\n    .title = Najde další výskyt hledaného textu\npdfjs-find-next-button-label = Další\npdfjs-find-highlight-checkbox = Zvýraznit\npdfjs-find-match-case-checkbox-label = Rozlišovat velikost\npdfjs-find-match-diacritics-checkbox-label = Rozlišovat diakritiku\npdfjs-find-entire-word-checkbox-label = Celá slova\npdfjs-find-reached-top = Dosažen začátek dokumentu, pokračuje se od konce\npdfjs-find-reached-bottom = Dosažen konec dokumentu, pokračuje se od začátku\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current }. z { $total } výskytu\n        [few] { $current }. z { $total } výskytů\n        [many] { $current }. z { $total } výskytů\n       *[other] { $current }. z { $total } výskytů\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Více než { $limit } výskyt\n        [few] Více než { $limit } výskyty\n        [many] Více než { $limit } výskytů\n       *[other] Více než { $limit } výskytů\n    }\npdfjs-find-not-found = Hledaný text nenalezen\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Podle šířky\npdfjs-page-scale-fit = Podle stránky\npdfjs-page-scale-auto = Automatická velikost\npdfjs-page-scale-actual = Skutečná velikost\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Strana { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Při nahrávání PDF nastala chyba.\npdfjs-invalid-file-error = Neplatný nebo chybný soubor PDF.\npdfjs-missing-file-error = Chybí soubor PDF.\npdfjs-unexpected-response-error = Neočekávaná odpověď serveru.\npdfjs-rendering-error = Při vykreslování stránky nastala chyba.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotace typu { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Pro otevření PDF souboru vložte heslo.\npdfjs-password-invalid = Neplatné heslo. Zkuste to znovu.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Zrušit\npdfjs-web-fonts-disabled = Webová písma jsou zakázána, proto není možné použít vložená písma PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Změna barvy textu\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Kreslení\npdfjs-editor-color-picker-ink-input =\n    .title = Změna barvy kresby\npdfjs-editor-ink-button-label = Kreslení\npdfjs-editor-stamp-button =\n    .title = Přidání či úprava obrázků\npdfjs-editor-stamp-button-label = Přidání či úprava obrázků\npdfjs-editor-highlight-button =\n    .title = Zvýraznění\npdfjs-editor-highlight-button-label = Zvýraznění\npdfjs-highlight-floating-button1 =\n    .title = Zvýraznit\n    .aria-label = Zvýraznit\npdfjs-highlight-floating-button-label = Zvýraznit\npdfjs-comment-floating-button =\n    .title = Komentář\n    .aria-label = Komentář\npdfjs-comment-floating-button-label = Komentář\npdfjs-editor-comment-button =\n    .title = Komentář\n    .aria-label = Komentář\npdfjs-editor-comment-button-label = Komentář\npdfjs-editor-signature-button =\n    .title = Přidat podpis\npdfjs-editor-signature-button-label = Přidat podpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor zvýraznění\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor kresby\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor podpisu: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor obrázků\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Odebrat kresbu\npdfjs-editor-remove-freetext-button =\n    .title = Odebrat text\npdfjs-editor-remove-stamp-button =\n    .title = Odebrat obrázek\npdfjs-editor-remove-highlight-button =\n    .title = Odebrat zvýraznění\npdfjs-editor-remove-signature-button =\n    .title = Odebrat podpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Barva\npdfjs-editor-free-text-size-input = Velikost\npdfjs-editor-ink-color-input = Barva\npdfjs-editor-ink-thickness-input = Tloušťka\npdfjs-editor-ink-opacity-input = Průhlednost\npdfjs-editor-stamp-add-image-button =\n    .title = Přidat obrázek\npdfjs-editor-stamp-add-image-button-label = Přidat obrázek\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tloušťka\npdfjs-editor-free-highlight-thickness-title =\n    .title = Změna tloušťky při zvýrazňování jiných položek než textu\npdfjs-editor-add-signature-container =\n    .aria-label = Ovládací prvky pro podpisy a uložené podpisy\npdfjs-editor-signature-add-signature-button =\n    .title = Přidat nový podpis\npdfjs-editor-signature-add-signature-button-label = Přidat nový podpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Uložený podpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Textový editor\n    .default-content = Začněte psát...\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Komentář\n        [few] Komentáře\n        [many] Komentáře\n       *[other] Komentáře\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Zavřít postranní lištu\n    .aria-label = Zavřít postranní lištu\npdfjs-editor-comments-sidebar-close-button-label = Zavřít postranní lištu\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vidíte něco pozoruhodného? Zvýrazněte to a zanechte komentář.\npdfjs-editor-comments-sidebar-no-comments-link = Zjistit více\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Náhradní popis\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Upravit alternativní text\npdfjs-editor-alt-text-dialog-label = Vyberte možnost\npdfjs-editor-alt-text-dialog-description = Náhradní popis pomáhá, když lidé obrázek nevidí nebo když se nenačítá.\npdfjs-editor-alt-text-add-description-label = Přidat popis\npdfjs-editor-alt-text-add-description-description = Snažte se o 1-2 věty, které popisují předmět, prostředí nebo činnosti.\npdfjs-editor-alt-text-mark-decorative-label = Označit jako dekorativní\npdfjs-editor-alt-text-mark-decorative-description = Používá se pro okrasné obrázky, jako jsou rámečky nebo vodoznaky.\npdfjs-editor-alt-text-cancel-button = Zrušit\npdfjs-editor-alt-text-save-button = Uložit\npdfjs-editor-alt-text-decorative-tooltip = Označen jako dekorativní\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Například: “Mladý muž si sedá ke stolu, aby se najedl.”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativní text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Levý horní roh — změna velikosti\npdfjs-editor-resizer-top-middle =\n    .aria-label = Horní střed — změna velikosti\npdfjs-editor-resizer-top-right =\n    .aria-label = Pravý horní roh — změna velikosti\npdfjs-editor-resizer-middle-right =\n    .aria-label = Vpravo uprostřed — změna velikosti\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Pravý dolní roh — změna velikosti\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Střed dole — změna velikosti\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Levý dolní roh — změna velikosti\npdfjs-editor-resizer-middle-left =\n    .aria-label = Vlevo uprostřed — změna velikosti\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Barva zvýraznění\npdfjs-editor-colorpicker-button =\n    .title = Změna barvy\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Výběr barev\npdfjs-editor-colorpicker-yellow =\n    .title = Žlutá\npdfjs-editor-colorpicker-green =\n    .title = Zelená\npdfjs-editor-colorpicker-blue =\n    .title = Modrá\npdfjs-editor-colorpicker-pink =\n    .title = Růžová\npdfjs-editor-colorpicker-red =\n    .title = Červená\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Zobrazit vše\npdfjs-editor-highlight-show-all-button =\n    .title = Zobrazit vše\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Upravit alternativní text (popis obrázku)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Přidat alternativní text (popis obrázku)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Sem napište svůj popis…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Krátký popis pro lidi, kteří neuvidí obrázek nebo když se obrázek nenačítá.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Tento alternativní text byl vytvořen automaticky a může být nepřesný.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Více informací\npdfjs-editor-new-alt-text-create-automatically-button-label = Vytvořit alternativní text automaticky\npdfjs-editor-new-alt-text-not-now-button = Teď ne\npdfjs-editor-new-alt-text-error-title = Nepodařilo se automaticky vytvořit alternativní text\npdfjs-editor-new-alt-text-error-description = Napište prosím vlastní alternativní text nebo to zkuste znovu později.\npdfjs-editor-new-alt-text-error-close-button = Zavřít\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Stahuje se model AI pro alternativní texty ({ $downloadedSize } z { $totalSize } MB)\n    .aria-valuetext = Stahuje se model AI pro alternativní texty ({ $downloadedSize } z { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativní text byl přidán\npdfjs-editor-new-alt-text-added-button-label = Alternativní text byl přidán\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Chybí alternativní text\npdfjs-editor-new-alt-text-missing-button-label = Chybí alternativní text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Zkontrolovat alternativní text\npdfjs-editor-new-alt-text-to-review-button-label = Zkontrolovat alternativní text\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Vytvořeno automaticky: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Nastavení alternativního textu obrázku\npdfjs-image-alt-text-settings-button-label = Nastavení alternativního textu obrázku\npdfjs-editor-alt-text-settings-dialog-label = Nastavení alternativního textu obrázku\npdfjs-editor-alt-text-settings-automatic-title = Automatický alternativní text\npdfjs-editor-alt-text-settings-create-model-button-label = Vytvořit alternativní text automaticky\npdfjs-editor-alt-text-settings-create-model-description = Navrhuje popisy, které pomohou lidem, kteří nevidí obrázek nebo když se obrázek nenačte.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model AI pro alternativní text ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Běží lokálně na vašem zařízení, takže vaše data zůstávají v bezpečí. Vyžadováno pro automatický alternativní text.\npdfjs-editor-alt-text-settings-delete-model-button = Smazat\npdfjs-editor-alt-text-settings-download-model-button = Stáhnout\npdfjs-editor-alt-text-settings-downloading-model-button = Probíhá stahování...\npdfjs-editor-alt-text-settings-editor-title = Editor alternativního textu\npdfjs-editor-alt-text-settings-show-dialog-button-label = Při přidávání obrázku hned zobrazit editor alternativního textu\npdfjs-editor-alt-text-settings-show-dialog-description = Pomůže vám zajistit, aby všechny vaše obrázky obsahovaly alternativní text.\npdfjs-editor-alt-text-settings-close-button = Zavřít\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Přidáno zvýraznění\npdfjs-editor-freetext-added-alert = Text přidán\npdfjs-editor-ink-added-alert = Kresba byla přidána\npdfjs-editor-stamp-added-alert = Obrázek byl přidán\npdfjs-editor-signature-added-alert = Byl přidán podpis\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Zvýraznění odebráno\npdfjs-editor-undo-bar-message-freetext = Text odstraněn\npdfjs-editor-undo-bar-message-ink = Kresba odstraněna\npdfjs-editor-undo-bar-message-stamp = Obrázek odebrán\npdfjs-editor-undo-bar-message-signature = Podpis odebrán\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotace odebrána\n        [few] { $count } anotace odebrány\n        [many] { $count } anotací odebráno\n       *[other] { $count } anotací odebráno\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Zpět\npdfjs-editor-undo-bar-undo-button-label = Zpět\npdfjs-editor-undo-bar-close-button =\n    .title = Zavřít\npdfjs-editor-undo-bar-close-button-label = Zavřít\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Tento způsob umožňuje uživateli vytvořit podpis, který se přidá do dokumentu PDF. Uživatel může upravit jméno (které slouží zároveň jako alternativní text) a podpis uložit pro pozdější použití.\npdfjs-editor-add-signature-dialog-title = Přidat podpis\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typ\n    .title = Typ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Kreslit\n    .title = Kreslit\npdfjs-editor-add-signature-image-button = Obrázek\n    .title = Obrázek\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Zadejte svůj podpis\n    .placeholder = Zadejte svůj podpis\npdfjs-editor-add-signature-draw-placeholder = Nakreslete svůj podpis\npdfjs-editor-add-signature-draw-thickness-range-label = Tloušťka\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tloušťka kresby: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Pro nahrání přetáhněte soubor sem\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Nebo vyberte soubory s obrázky\n       *[other] Nebo vyberte soubory s obrázky\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Popis (alternativní text)\npdfjs-editor-add-signature-description-input =\n    .title = Popis (alternativní text)\npdfjs-editor-add-signature-description-default-when-drawing = Podpis\npdfjs-editor-add-signature-clear-button-label = Vymazání podpisu\npdfjs-editor-add-signature-clear-button =\n    .title = Vymazání podpisu\npdfjs-editor-add-signature-save-checkbox = Uložit podpis\npdfjs-editor-add-signature-save-warning-message = Dosáhli jste limitu 5 uložených podpisů. Odstraňte jeden a uložte další.\npdfjs-editor-add-signature-image-upload-error-title = Obrázek se nepodařilo nahrát\npdfjs-editor-add-signature-image-upload-error-description = Zkontrolujte připojení k síti nebo zkuste jiný obrázek.\npdfjs-editor-add-signature-image-no-data-error-title = Nelze převést tento obrázek na podpis\npdfjs-editor-add-signature-image-no-data-error-description = Zkuste nahrát jiný obrázek.\npdfjs-editor-add-signature-error-close-button = Zavřít\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Zrušit\npdfjs-editor-add-signature-add-button = Přidat\npdfjs-editor-edit-signature-update-button = Aktualizovat\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Upravit komentář\npdfjs-editor-edit-comment-popup-button =\n    .title = Upravit komentář\npdfjs-editor-delete-comment-popup-button-label = Odebrat komentář\npdfjs-editor-delete-comment-popup-button =\n    .title = Odebrat komentář\npdfjs-show-comment-button =\n    .title = Zobrazit komentář\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Akce\npdfjs-editor-edit-comment-actions-button =\n    .title = Akce\npdfjs-editor-edit-comment-close-button-label = Zavřít\npdfjs-editor-edit-comment-close-button =\n    .title = Zavřít\npdfjs-editor-edit-comment-actions-edit-button-label = Upravit\npdfjs-editor-edit-comment-actions-delete-button-label = Smazat\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Zadejte komentář\npdfjs-editor-edit-comment-manager-cancel-button = Zrušit\npdfjs-editor-edit-comment-manager-save-button = Uložit\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Upravit komentář\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualizovat\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Přidání komentáře\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Přidat\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Začněte psát…\npdfjs-editor-edit-comment-dialog-cancel-button = Zrušit\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Upravit komentář\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Odebrat uložený podpis\npdfjs-editor-delete-signature-button-label1 = Odebrat uložený podpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Upravit popis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Upravit popis\n"
  },
  {
    "path": "viewer/locale/cy/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Tudalen Flaenorol\npdfjs-previous-button-label = Blaenorol\npdfjs-next-button =\n    .title = Tudalen Nesaf\npdfjs-next-button-label = Nesaf\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Tudalen\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = o { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } o { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Lleihau\npdfjs-zoom-out-button-label = Lleihau\npdfjs-zoom-in-button =\n    .title = Cynyddu\npdfjs-zoom-in-button-label = Cynyddu\npdfjs-zoom-select =\n    .title = Chwyddo\npdfjs-presentation-mode-button =\n    .title = Newid i'r Modd Cyflwyno\npdfjs-presentation-mode-button-label = Modd Cyflwyno\npdfjs-open-file-button =\n    .title = Agor Ffeil\npdfjs-open-file-button-label = Agor\npdfjs-print-button =\n    .title = Argraffu\npdfjs-print-button-label = Argraffu\npdfjs-save-button =\n    .title = Cadw\npdfjs-save-button-label = Cadw\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Llwytho i lawr\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Llwytho i lawr\npdfjs-bookmark-button =\n    .title = Tudalen Gyfredol (Gweld URL o'r Dudalen Gyfredol)\npdfjs-bookmark-button-label = Tudalen Gyfredol\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Offer\npdfjs-tools-button-label = Offer\npdfjs-first-page-button =\n    .title = Mynd i'r Dudalen Gyntaf\npdfjs-first-page-button-label = Mynd i'r Dudalen Gyntaf\npdfjs-last-page-button =\n    .title = Mynd i'r Dudalen Olaf\npdfjs-last-page-button-label = Mynd i'r Dudalen Olaf\npdfjs-page-rotate-cw-button =\n    .title = Cylchdroi Clocwedd\npdfjs-page-rotate-cw-button-label = Cylchdroi Clocwedd\npdfjs-page-rotate-ccw-button =\n    .title = Cylchdroi Gwrthglocwedd\npdfjs-page-rotate-ccw-button-label = Cylchdroi Gwrthglocwedd\npdfjs-cursor-text-select-tool-button =\n    .title = Galluogi Dewis Offeryn Testun\npdfjs-cursor-text-select-tool-button-label = Offeryn Dewis Testun\npdfjs-cursor-hand-tool-button =\n    .title = Galluogi Offeryn Llaw\npdfjs-cursor-hand-tool-button-label = Offeryn Llaw\npdfjs-scroll-page-button =\n    .title = Defnyddio Sgrolio Tudalen\npdfjs-scroll-page-button-label = Sgrolio Tudalen\npdfjs-scroll-vertical-button =\n    .title = Defnyddio Sgrolio Fertigol\npdfjs-scroll-vertical-button-label = Sgrolio Fertigol\npdfjs-scroll-horizontal-button =\n    .title = Defnyddio Sgrolio Llorweddol\npdfjs-scroll-horizontal-button-label = Sgrolio Llorweddol\npdfjs-scroll-wrapped-button =\n    .title = Defnyddio Sgrolio Amlapio\npdfjs-scroll-wrapped-button-label = Sgrolio Amlapio\npdfjs-spread-none-button =\n    .title = Peidio uno trawsdaleniadau\npdfjs-spread-none-button-label = Dim Trawsdaleniadau\npdfjs-spread-odd-button =\n    .title = Uno trawsdaleniadau gan gychwyn gyda thudalennau odrif\npdfjs-spread-odd-button-label = Trawsdaleniadau Odrif\npdfjs-spread-even-button =\n    .title = Uno trawsdaleniadau gan gychwyn gyda thudalennau eilrif\npdfjs-spread-even-button-label = Trawsdaleniadau Eilrif\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Priodweddau Dogfen…\npdfjs-document-properties-button-label = Priodweddau Dogfen…\npdfjs-document-properties-file-name = Enw ffeil:\npdfjs-document-properties-file-size = Maint ffeil:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } beit)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } beit)\npdfjs-document-properties-title = Teitl:\npdfjs-document-properties-author = Awdur:\npdfjs-document-properties-subject = Pwnc:\npdfjs-document-properties-keywords = Allweddair:\npdfjs-document-properties-creation-date = Dyddiad Creu:\npdfjs-document-properties-modification-date = Dyddiad Addasu:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Crewr:\npdfjs-document-properties-producer = Cynhyrchydd PDF:\npdfjs-document-properties-version = Fersiwn PDF:\npdfjs-document-properties-page-count = Cyfrif Tudalen:\npdfjs-document-properties-page-size = Maint Tudalen:\npdfjs-document-properties-page-size-unit-inches = o fewn\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portread\npdfjs-document-properties-page-size-orientation-landscape = tirlun\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Llythyr\npdfjs-document-properties-page-size-name-legal = Cyfreithiol\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Golwg Gwe Cyflym:\npdfjs-document-properties-linearized-yes = Iawn\npdfjs-document-properties-linearized-no = Na\npdfjs-document-properties-close-button = Cau\n\n## Print\n\npdfjs-print-progress-message = Paratoi dogfen ar gyfer ei hargraffu…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Diddymu\npdfjs-printing-not-supported = Rhybudd: Nid yw argraffu yn cael ei gynnal yn llawn gan y porwr.\npdfjs-printing-not-ready = Rhybudd: Nid yw'r PDF wedi ei lwytho'n llawn ar gyfer argraffu.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toglo'r Bar Ochr\npdfjs-toggle-sidebar-notification-button =\n    .title = Toglo'r Bar Ochr (mae'r ddogfen yn cynnwys amlinelliadau/atodiadau/haenau)\npdfjs-toggle-sidebar-button-label = Toglo'r Bar Ochr\npdfjs-document-outline-button =\n    .title = Dangos Amlinell Dogfen (clic dwbl i ymestyn/cau pob eitem)\npdfjs-document-outline-button-label = Amlinelliad Dogfen\npdfjs-attachments-button =\n    .title = Dangos Atodiadau\npdfjs-attachments-button-label = Atodiadau\npdfjs-layers-button =\n    .title = Dangos Haenau (cliciwch ddwywaith i ailosod yr holl haenau i'r cyflwr rhagosodedig)\npdfjs-layers-button-label = Haenau\npdfjs-thumbs-button =\n    .title = Dangos Lluniau Bach\npdfjs-thumbs-button-label = Lluniau Bach\npdfjs-current-outline-item-button =\n    .title = Canfod yr Eitem Amlinellol Gyfredol\npdfjs-current-outline-item-button-label = Yr Eitem Amlinellol Gyfredol\npdfjs-findbar-button =\n    .title = Canfod yn y Ddogfen\npdfjs-findbar-button-label = Canfod\npdfjs-additional-layers = Haenau Ychwanegol\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Tudalen { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Llun Bach Tudalen { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Canfod\n    .placeholder = Canfod yn y ddogfen…\npdfjs-find-previous-button =\n    .title = Canfod enghraifft flaenorol o'r ymadrodd\npdfjs-find-previous-button-label = Blaenorol\npdfjs-find-next-button =\n    .title = Canfod enghraifft nesaf yr ymadrodd\npdfjs-find-next-button-label = Nesaf\npdfjs-find-highlight-checkbox = Amlygu Popeth\npdfjs-find-match-case-checkbox-label = Cydweddu Maint\npdfjs-find-match-diacritics-checkbox-label = Diacritigau Cyfatebol\npdfjs-find-entire-word-checkbox-label = Geiriau Cyfan\npdfjs-find-reached-top = Wedi cyrraedd brig y dudalen, parhau o'r gwaelod\npdfjs-find-reached-bottom = Wedi cyrraedd diwedd y dudalen, parhau o'r brig\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [zero] { $current } o { $total } cydweddiadau\n        [one] { $current } o { $total } cydweddiad\n        [two] { $current } o { $total } gydweddiad\n        [few] { $current } o { $total } cydweddiad\n        [many] { $current } o { $total } chydweddiad\n       *[other] { $current } o { $total } cydweddiad\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [zero] Mwy nag { $limit } cydweddiadau\n        [one] Mwy nag { $limit } cydweddiad\n        [two] Mwy nag { $limit } gydweddiad\n        [few] Mwy nag { $limit } cydweddiad\n        [many] Mwy nag { $limit } chydweddiad\n       *[other] Mwy nag { $limit } cydweddiad\n    }\npdfjs-find-not-found = Heb ganfod ymadrodd\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lled Tudalen\npdfjs-page-scale-fit = Ffit Tudalen\npdfjs-page-scale-auto = Chwyddo Awtomatig\npdfjs-page-scale-actual = Maint Gwirioneddol\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Tudalen { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Digwyddodd gwall wrth lwytho'r PDF.\npdfjs-invalid-file-error = Ffeil PDF annilys neu llwgr.\npdfjs-missing-file-error = Ffeil PDF coll.\npdfjs-unexpected-response-error = Ymateb annisgwyl gan y gweinydd.\npdfjs-rendering-error = Digwyddodd gwall wrth adeiladu'r dudalen.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anodiad { $type } ]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Rhowch gyfrinair i agor y PDF.\npdfjs-password-invalid = Cyfrinair annilys. Ceisiwch eto.\npdfjs-password-ok-button = Iawn\npdfjs-password-cancel-button = Diddymu\npdfjs-web-fonts-disabled = Ffontiau gwe wedi eu hanalluogi: methu defnyddio ffontiau PDF mewnblanedig.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Testun\npdfjs-editor-color-picker-free-text-input =\n    .title = Newid lliw testun\npdfjs-editor-free-text-button-label = Testun\npdfjs-editor-ink-button =\n    .title = Lluniadu\npdfjs-editor-color-picker-ink-input =\n    .title = Newid lliw lluniadu\npdfjs-editor-ink-button-label = Lluniadu\npdfjs-editor-stamp-button =\n    .title = Ychwanegu neu olygu delweddau\npdfjs-editor-stamp-button-label = Ychwanegu neu olygu delweddau\npdfjs-editor-highlight-button =\n    .title = Amlygu\npdfjs-editor-highlight-button-label = Amlygu\npdfjs-highlight-floating-button1 =\n    .title = Amlygu\n    .aria-label = Amlygu\npdfjs-highlight-floating-button-label = Amlygu\npdfjs-comment-floating-button =\n    .title = Sylw\n    .aria-label = Sylw\npdfjs-comment-floating-button-label = Sylw\npdfjs-editor-comment-button =\n    .title = Sylw\n    .aria-label = Sylw\npdfjs-editor-comment-button-label = Sylw\npdfjs-editor-signature-button =\n    .title = Ychwanegu llofnod\npdfjs-editor-signature-button-label = Ychwanegu llofnod\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Golygydd amlygu\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Golygydd lluniadu\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Golygydd llofnod: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Golygydd delweddau\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Dileu lluniad\npdfjs-editor-remove-freetext-button =\n    .title = Dileu testun\npdfjs-editor-remove-stamp-button =\n    .title = Dileu delwedd\npdfjs-editor-remove-highlight-button =\n    .title = Tynnu amlygiad\npdfjs-editor-remove-signature-button =\n    .title = Dileu llofnod\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Lliw\npdfjs-editor-free-text-size-input = Maint\npdfjs-editor-ink-color-input = Lliw\npdfjs-editor-ink-thickness-input = Trwch\npdfjs-editor-ink-opacity-input = Didreiddedd\npdfjs-editor-stamp-add-image-button =\n    .title = Ychwanegu delwedd\npdfjs-editor-stamp-add-image-button-label = Ychwanegu delwedd\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Trwch\npdfjs-editor-free-highlight-thickness-title =\n    .title = Newid trwch wrth amlygu eitemau heblaw testun\npdfjs-editor-add-signature-container =\n    .aria-label = Rheolyddion llofnodion a llofnodion wedi'u cadw\npdfjs-editor-signature-add-signature-button =\n    .title = Ychwanegu llofnod newydd\npdfjs-editor-signature-add-signature-button-label = Ychwanegu llofnod newydd\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Llofnod wedi'i gadw: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Golygydd Testun\n    .default-content = Cychwyn teipio…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [zero] Sylwadau\n        [one] Sylw\n        [two] Sylw\n        [few] Sylw\n        [many] Sylw\n       *[other] Sylw\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Cau'r bar ochr\n    .aria-label = Cau'r bar ochr\npdfjs-editor-comments-sidebar-close-button-label = Cau'r bar ochr\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Gweld rhywbeth nodedig? Amlygwch ef a gadael sylw.\npdfjs-editor-comments-sidebar-no-comments-link = Dysgu rhagor\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Testun amgen (alt)\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Golygu testun amgen\npdfjs-editor-alt-text-dialog-label = Dewisiadau\npdfjs-editor-alt-text-dialog-description = Mae testun amgen (testun alt) yn helpu pan na all pobl weld y ddelwedd neu pan nad yw'n llwytho.\npdfjs-editor-alt-text-add-description-label = Ychwanegu disgrifiad\npdfjs-editor-alt-text-add-description-description = Anelwch at 1-2 frawddeg sy'n disgrifio'r pwnc, y cefndir neu'r gweithredoedd.\npdfjs-editor-alt-text-mark-decorative-label = Marcio fel addurniadol\npdfjs-editor-alt-text-mark-decorative-description = Mae'n cael ei ddefnyddio ar gyfer delweddau addurniadol, fel borderi neu farciau dŵr.\npdfjs-editor-alt-text-cancel-button = Diddymu\npdfjs-editor-alt-text-save-button = Cadw\npdfjs-editor-alt-text-decorative-tooltip = Marcio fel addurniadol\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Er enghraifft, “Mae dyn ifanc yn eistedd wrth fwrdd i fwyta pryd bwyd”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Testun amgen (alt)\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Y gornel chwith uchaf — newid maint\npdfjs-editor-resizer-top-middle =\n    .aria-label = Canol uchaf - newid maint\npdfjs-editor-resizer-top-right =\n    .aria-label = Y gornel dde uchaf - newid maint\npdfjs-editor-resizer-middle-right =\n    .aria-label = De canol - newid maint\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Y gornel dde isaf — newid maint\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Canol gwaelod — newid maint\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Y gornel chwith isaf — newid maint\npdfjs-editor-resizer-middle-left =\n    .aria-label = Chwith canol — newid maint\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Lliw amlygu\npdfjs-editor-colorpicker-button =\n    .title = Newid lliw\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Dewisiadau lliw\npdfjs-editor-colorpicker-yellow =\n    .title = Melyn\npdfjs-editor-colorpicker-green =\n    .title = Gwyrdd\npdfjs-editor-colorpicker-blue =\n    .title = Glas\npdfjs-editor-colorpicker-pink =\n    .title = Pinc\npdfjs-editor-colorpicker-red =\n    .title = Coch\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Dangos y cyfan\npdfjs-editor-highlight-show-all-button =\n    .title = Dangos y cyfan\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Golygu testun amgen (disgrifiad o ddelwedd)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Ychwanegwch destun amgen (disgrifiad delwedd)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Ysgrifennwch eich disgrifiad yma…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Disgrifiad byr ar gyfer pobl sydd ddim yn gallu gweld y ddelwedd neu pan nad yw'r ddelwedd yn llwytho.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Cafodd y testun amgen hwn ei greu'n awtomatig a gall fod yn anghywir.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Rhagor\npdfjs-editor-new-alt-text-create-automatically-button-label = Creu testun amgen yn awtomatig\npdfjs-editor-new-alt-text-not-now-button = Nid nawr\npdfjs-editor-new-alt-text-error-title = Methu â chreu testun amgen yn awtomatig\npdfjs-editor-new-alt-text-error-description = Ysgrifennwch eich testun amgen eich hun neu ceisiwch eto yn nes ymlaen.\npdfjs-editor-new-alt-text-error-close-button = Cau\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Wrthi'n llwytho i lawr model AI testun amgen ( { $downloadedSize } o { $totalSize } MB)\n    .aria-valuetext = Wrthi'n llwytho i lawr model AI testun amgen ( { $downloadedSize } o { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Ychwanegwyd testun amgen\npdfjs-editor-new-alt-text-added-button-label = Ychwanegwyd testun amgen\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Testun amgen coll\npdfjs-editor-new-alt-text-missing-button-label = Testun amgen coll\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Adolygu'r testun amgen\npdfjs-editor-new-alt-text-to-review-button-label = Adolygu'r testun amgen\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Crëwyd yn awtomatig: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Gosodiadau testun amgen delwedd\npdfjs-image-alt-text-settings-button-label = Gosodiadau testun amgen delwedd\npdfjs-editor-alt-text-settings-dialog-label = Gosodiadau testun amgen delwedd\npdfjs-editor-alt-text-settings-automatic-title = Testun amgen awtomatig\npdfjs-editor-alt-text-settings-create-model-button-label = Creu testun amgen yn awtomatig\npdfjs-editor-alt-text-settings-create-model-description = Yn awgrymu disgrifiadau i helpu pobl sydd ddim yn gallu gweld y ddelwedd neu pan nad yw'r ddelwedd yn llwytho.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model AI testun amgen ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Yn rhedeg yn lleol ar eich dyfais fel bod eich data'n aros yn breifat. Yn ofynnol ar gyfer testun amgen awtomatig.\npdfjs-editor-alt-text-settings-delete-model-button = Dileu\npdfjs-editor-alt-text-settings-download-model-button = Llwytho i Lawr\npdfjs-editor-alt-text-settings-downloading-model-button = Wrthi'n llwytho i lawr…\npdfjs-editor-alt-text-settings-editor-title = Golygydd testun amgen\npdfjs-editor-alt-text-settings-show-dialog-button-label = Dangoswch y golygydd testun amgen yn syth wrth ychwanegu delwedd\npdfjs-editor-alt-text-settings-show-dialog-description = Yn eich helpu i wneud yn siŵr bod gan eich holl ddelweddau destun amgen.\npdfjs-editor-alt-text-settings-close-button = Cau\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Amlygu wedi'i ychwanegu\npdfjs-editor-freetext-added-alert = Testun wedi'i ychwanegu\npdfjs-editor-ink-added-alert = Lluniadu wedi'i ychwanegu\npdfjs-editor-stamp-added-alert = Delwedd wedi'i hychwanegu\npdfjs-editor-signature-added-alert = Llofnod wedi'i ychwanegu\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Tynnwyd yr amlygu\npdfjs-editor-undo-bar-message-freetext = Tynnwyd y testun\npdfjs-editor-undo-bar-message-ink = Tynnwyd y lluniad\npdfjs-editor-undo-bar-message-stamp = Tynnwyd y ddelwedd\npdfjs-editor-undo-bar-message-signature = Llofnod wedi'i dynnu\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [zero] { $count } anodiad wedi'u tynnu\n        [one] { $count } anodiad wedi'i dynnu\n        [two] { $count } anodiad wedi'u tynnu\n        [few] { $count } anodiad wedi'u tynnu\n        [many] { $count } anodiad wedi'u tynnu\n       *[other] { $count } anodiad wedi'u tynnu\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Dadwneud\npdfjs-editor-undo-bar-undo-button-label = Dadwneud\npdfjs-editor-undo-bar-close-button =\n    .title = Cau\npdfjs-editor-undo-bar-close-button-label = Cau\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Mae'r modd hwn yn caniatáu i'r defnyddiwr greu llofnod i'w ychwanegu at ddogfen PDF. Gall y defnyddiwr olygu'r enw (sydd hefyd yn gweithredu fel y testun amgen), ac yn ddewisol cadw'r llofnod i'w ddefnyddio dro ar ôl tro.\npdfjs-editor-add-signature-dialog-title = Ychwanegu llofnod\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Math\n    .title = Math\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Lluniadu\n    .title = Lluniadu\npdfjs-editor-add-signature-image-button = Delwedd\n    .title = Delwedd\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Teipiwch eich llofnod\n    .placeholder = Teipiwch eich llofnod\npdfjs-editor-add-signature-draw-placeholder = Lluniwch eich llofnod\npdfjs-editor-add-signature-draw-thickness-range-label = Trwch\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Trwch y llinell: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Llusgwch ffeil yma i'w llwytho\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Neu ddewis ffeiliau delwedd\n       *[other] Neu bori ffeiliau delwedd\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Disgrifiad (testun amgen)\npdfjs-editor-add-signature-description-input =\n    .title = Disgrifiad (testun amgen)\npdfjs-editor-add-signature-description-default-when-drawing = Llofnod\npdfjs-editor-add-signature-clear-button-label = Diddymu llofnod\npdfjs-editor-add-signature-clear-button =\n    .title = Diddymu llofnod\npdfjs-editor-add-signature-save-checkbox = Cadw llofnod\npdfjs-editor-add-signature-save-warning-message = Rydych chi wedi cyrraedd y terfyn o 5 llofnod sydd wedi'u cadw. Tynnwch un i gadw rhagor\npdfjs-editor-add-signature-image-upload-error-title = Methu llwytho'r ddelwedd.\npdfjs-editor-add-signature-image-upload-error-description = Gwiriwch eich cysylltiad rhwydwaith neu rhowch gynnig ar ddelwedd arall.\npdfjs-editor-add-signature-image-no-data-error-title = Methu trosi'r ddelwedd hon yn llofnod\npdfjs-editor-add-signature-image-no-data-error-description = Ceisiwch lwytho delwedd wahanol.\npdfjs-editor-add-signature-error-close-button = Cau\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Diddymu\npdfjs-editor-add-signature-add-button = Ychwanegu\npdfjs-editor-edit-signature-update-button = Diweddaru\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Golygu sylw\npdfjs-editor-edit-comment-popup-button =\n    .title = Golygu sylw\npdfjs-editor-delete-comment-popup-button-label = Tynnu sylw\npdfjs-editor-delete-comment-popup-button =\n    .title = Tynnu sylw\npdfjs-show-comment-button =\n    .title = Dangos sylw\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Gweithredoedd\npdfjs-editor-edit-comment-actions-button =\n    .title = Gweithredoedd\npdfjs-editor-edit-comment-close-button-label = Cau\npdfjs-editor-edit-comment-close-button =\n    .title = Cau\npdfjs-editor-edit-comment-actions-edit-button-label = Golygu\npdfjs-editor-edit-comment-actions-delete-button-label = Dileu\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Rhowch eich sylw\npdfjs-editor-edit-comment-manager-cancel-button = Diddymu\npdfjs-editor-edit-comment-manager-save-button = Cadw\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Golygu sylw\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Diweddaru\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Ychwanegu sylw\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Ychwanegu\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Cychwyn teipio…\npdfjs-editor-edit-comment-dialog-cancel-button = Diddymu\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Golygu sylw\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Tynnu llofnod sydd wedi'i gadw\npdfjs-editor-delete-signature-button-label1 = Tynnwch y llofnod sydd wedi'i gadw\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Golygu disgrifiad\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Golygu disgrifiad\n"
  },
  {
    "path": "viewer/locale/da/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Forrige side\npdfjs-previous-button-label = Forrige\npdfjs-next-button =\n    .title = Næste side\npdfjs-next-button-label = Næste\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Side\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = af { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } af { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom ud\npdfjs-zoom-out-button-label = Zoom ud\npdfjs-zoom-in-button =\n    .title = Zoom ind\npdfjs-zoom-in-button-label = Zoom ind\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Skift til fuldskærmsvisning\npdfjs-presentation-mode-button-label = Fuldskærmsvisning\npdfjs-open-file-button =\n    .title = Åbn fil\npdfjs-open-file-button-label = Åbn\npdfjs-print-button =\n    .title = Udskriv\npdfjs-print-button-label = Udskriv\npdfjs-save-button =\n    .title = Gem\npdfjs-save-button-label = Gem\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Hent\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Hent\npdfjs-bookmark-button =\n    .title = Aktuel side (vis URL fra den aktuelle side)\npdfjs-bookmark-button-label = Aktuel side\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Funktioner\npdfjs-tools-button-label = Funktioner\npdfjs-first-page-button =\n    .title = Gå til første side\npdfjs-first-page-button-label = Gå til første side\npdfjs-last-page-button =\n    .title = Gå til sidste side\npdfjs-last-page-button-label = Gå til sidste side\npdfjs-page-rotate-cw-button =\n    .title = Roter med uret\npdfjs-page-rotate-cw-button-label = Roter med uret\npdfjs-page-rotate-ccw-button =\n    .title = Roter mod uret\npdfjs-page-rotate-ccw-button-label = Roter mod uret\npdfjs-cursor-text-select-tool-button =\n    .title = Aktiver markeringsværktøj\npdfjs-cursor-text-select-tool-button-label = Markeringsværktøj\npdfjs-cursor-hand-tool-button =\n    .title = Aktiver håndværktøj\npdfjs-cursor-hand-tool-button-label = Håndværktøj\npdfjs-scroll-page-button =\n    .title = Brug sidescrolling\npdfjs-scroll-page-button-label = Sidescrolling\npdfjs-scroll-vertical-button =\n    .title = Brug vertikal scrolling\npdfjs-scroll-vertical-button-label = Vertikal scrolling\npdfjs-scroll-horizontal-button =\n    .title = Brug horisontal scrolling\npdfjs-scroll-horizontal-button-label = Horisontal scrolling\npdfjs-scroll-wrapped-button =\n    .title = Brug ombrudt scrolling\npdfjs-scroll-wrapped-button-label = Ombrudt scrolling\npdfjs-spread-none-button =\n    .title = Vis enkeltsider\npdfjs-spread-none-button-label = Enkeltsider\npdfjs-spread-odd-button =\n    .title = Vis opslag med ulige sidenumre til venstre\npdfjs-spread-odd-button-label = Opslag med forside\npdfjs-spread-even-button =\n    .title = Vis opslag med lige sidenumre til venstre\npdfjs-spread-even-button-label = Opslag uden forside\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentegenskaber…\npdfjs-document-properties-button-label = Dokumentegenskaber…\npdfjs-document-properties-file-name = Filnavn:\npdfjs-document-properties-file-size = Filstørrelse:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Forfatter:\npdfjs-document-properties-subject = Emne:\npdfjs-document-properties-keywords = Nøgleord:\npdfjs-document-properties-creation-date = Oprettet:\npdfjs-document-properties-modification-date = Redigeret:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Program:\npdfjs-document-properties-producer = PDF-producent:\npdfjs-document-properties-version = PDF-version:\npdfjs-document-properties-page-count = Antal sider:\npdfjs-document-properties-page-size = Sidestørrelse:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = stående\npdfjs-document-properties-page-size-orientation-landscape = liggende\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Hurtig web-visning:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nej\npdfjs-document-properties-close-button = Luk\n\n## Print\n\npdfjs-print-progress-message = Forbereder dokument til udskrivning…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Annuller\npdfjs-printing-not-supported = Advarsel: Udskrivning er ikke fuldt understøttet af browseren.\npdfjs-printing-not-ready = Advarsel: PDF-filen er ikke fuldt indlæst til udskrivning.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Slå sidepanel til eller fra\npdfjs-toggle-sidebar-notification-button =\n    .title = Slå sidepanel til eller fra (dokumentet indeholder disposition/vedhæftede filer/lag)\npdfjs-toggle-sidebar-button-label = Slå sidepanel til eller fra\npdfjs-document-outline-button =\n    .title = Vis dokumentets disposition (dobbeltklik for at udvide/sammenfolde alle elementer)\npdfjs-document-outline-button-label = Dokument-disposition\npdfjs-attachments-button =\n    .title = Vis vedhæftede filer\npdfjs-attachments-button-label = Vedhæftede filer\npdfjs-layers-button =\n    .title = Vis lag (dobbeltklik for at nulstille alle lag til standard-tilstanden)\npdfjs-layers-button-label = Lag\npdfjs-thumbs-button =\n    .title = Vis miniaturer\npdfjs-thumbs-button-label = Miniaturer\npdfjs-current-outline-item-button =\n    .title = Find det aktuelle dispositions-element\npdfjs-current-outline-item-button-label = Aktuelt dispositions-element\npdfjs-findbar-button =\n    .title = Find i dokument\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Yderligere lag\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Side { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniature af side { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find i dokument…\npdfjs-find-previous-button =\n    .title = Find den forrige forekomst\npdfjs-find-previous-button-label = Forrige\npdfjs-find-next-button =\n    .title = Find den næste forekomst\npdfjs-find-next-button-label = Næste\npdfjs-find-highlight-checkbox = Fremhæv alle\npdfjs-find-match-case-checkbox-label = Forskel på store og små bogstaver\npdfjs-find-match-diacritics-checkbox-label = Diakritiske tegn\npdfjs-find-entire-word-checkbox-label = Hele ord\npdfjs-find-reached-top = Toppen af siden blev nået, fortsatte fra bunden\npdfjs-find-reached-bottom = Bunden af siden blev nået, fortsatte fra toppen\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } af { $total } forekomst\n       *[other] { $current } af { $total } forekomster\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mere end { $limit } forekomst\n       *[other] Mere end { $limit } forekomster\n    }\npdfjs-find-not-found = Der blev ikke fundet noget\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sidebredde\npdfjs-page-scale-fit = Tilpas til side\npdfjs-page-scale-auto = Automatisk zoom\npdfjs-page-scale-actual = Faktisk størrelse\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Side { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Der opstod en fejl ved indlæsning af PDF-filen.\npdfjs-invalid-file-error = PDF-filen er ugyldig eller ødelagt.\npdfjs-missing-file-error = Manglende PDF-fil.\npdfjs-unexpected-response-error = Uventet svar fra serveren.\npdfjs-rendering-error = Der opstod en fejl ved generering af siden.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }kommentar]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Angiv adgangskode til at åbne denne PDF-fil.\npdfjs-password-invalid = Ugyldig adgangskode. Prøv igen.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Fortryd\npdfjs-web-fonts-disabled = Webskrifttyper er deaktiverede. De indlejrede skrifttyper i PDF-filen kan ikke anvendes.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Skift tekstfarve\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Tegn\npdfjs-editor-color-picker-ink-input =\n    .title = Skift tegne-farve\npdfjs-editor-ink-button-label = Tegn\npdfjs-editor-stamp-button =\n    .title = Tilføj eller rediger billeder\npdfjs-editor-stamp-button-label = Tilføj eller rediger billeder\npdfjs-editor-highlight-button =\n    .title = Fremhæv\npdfjs-editor-highlight-button-label = Fremhæv\npdfjs-highlight-floating-button1 =\n    .title = Fremhæv\n    .aria-label = Fremhæv\npdfjs-highlight-floating-button-label = Fremhæv\npdfjs-comment-floating-button =\n    .title = Kommenter\n    .aria-label = Kommenter\npdfjs-comment-floating-button-label = Kommenter\npdfjs-editor-comment-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-editor-comment-button-label = Kommentar\npdfjs-editor-signature-button =\n    .title = Tilføj signatur\npdfjs-editor-signature-button-label = Tilføj signatur\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Redigering af fremhævning\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Redigering af tegninger\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Redigering af signatur: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Redigering af billeder\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Fjern tegning\npdfjs-editor-remove-freetext-button =\n    .title = Fjern tekst\npdfjs-editor-remove-stamp-button =\n    .title = Fjern billede\npdfjs-editor-remove-highlight-button =\n    .title = Fjern fremhævning\npdfjs-editor-remove-signature-button =\n    .title = Fjern signatur\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Farve\npdfjs-editor-free-text-size-input = Størrelse\npdfjs-editor-ink-color-input = Farve\npdfjs-editor-ink-thickness-input = Tykkelse\npdfjs-editor-ink-opacity-input = Uigennemsigtighed\npdfjs-editor-stamp-add-image-button =\n    .title = Tilføj billede\npdfjs-editor-stamp-add-image-button-label = Tilføj billede\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tykkelse\npdfjs-editor-free-highlight-thickness-title =\n    .title = Ændr tykkelse, når andre elementer end tekst fremhæves\npdfjs-editor-add-signature-container =\n    .aria-label = Indstillinger for signaturer og gemte signaturer\npdfjs-editor-signature-add-signature-button =\n    .title = Tilføj ny signatur\npdfjs-editor-signature-add-signature-button-label = Tilføj ny signatur\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Gemt signatur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Teksteditor\n    .default-content = Begynd at skrive…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentar\n       *[other] Kommentarer\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Luk sidepanelet\n    .aria-label = Luk sidepanelet\npdfjs-editor-comments-sidebar-close-button-label = Luk sidepanelet\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Har du fundet noget interessant? Fremhæv det og gem en kommentar.\npdfjs-editor-comments-sidebar-no-comments-link = Læs mere\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativ tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Rediger alternativ tekst\npdfjs-editor-alt-text-dialog-label = Vælg en indstilling\npdfjs-editor-alt-text-dialog-description = Alternativ tekst hjælper folk, som ikke kan se billedet eller når det ikke indlæses.\npdfjs-editor-alt-text-add-description-label = Tilføj en beskrivelse\npdfjs-editor-alt-text-add-description-description = Sigt efter en eller to sætninger, der beskriver emnet, omgivelserne eller handlinger.\npdfjs-editor-alt-text-mark-decorative-label = Marker som dekorativ\npdfjs-editor-alt-text-mark-decorative-description = Dette bruges for dekorative billeder som rammer eller vandmærker.\npdfjs-editor-alt-text-cancel-button = Annuller\npdfjs-editor-alt-text-save-button = Gem\npdfjs-editor-alt-text-decorative-tooltip = Markeret som dekorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = For eksempel: \"En ung mand sætter sig ved et bord for at spise et måltid mad\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativ tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Øverste venstre hjørne — tilpas størrelse\npdfjs-editor-resizer-top-middle =\n    .aria-label = Øverste i midten — tilpas størrelse\npdfjs-editor-resizer-top-right =\n    .aria-label = Øverste højre hjørne — tilpas størrelse\npdfjs-editor-resizer-middle-right =\n    .aria-label = Midten til højre — tilpas størrelse\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Nederste højre hjørne - tilpas størrelse\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Nederst i midten - tilpas størrelse\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Nederste venstre hjørne - tilpas størrelse\npdfjs-editor-resizer-middle-left =\n    .aria-label = Midten til venstre — tilpas størrelse\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Fremhævningsfarve\npdfjs-editor-colorpicker-button =\n    .title = Skift farve\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Farvevalg\npdfjs-editor-colorpicker-yellow =\n    .title = Gul\npdfjs-editor-colorpicker-green =\n    .title = Grøn\npdfjs-editor-colorpicker-blue =\n    .title = Blå\npdfjs-editor-colorpicker-pink =\n    .title = Lyserød\npdfjs-editor-colorpicker-red =\n    .title = Rød\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Vis alle\npdfjs-editor-highlight-show-all-button =\n    .title = Vis alle\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Rediger alternativ tekst (billedbeskrivelse)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Tilføj alternativ tekst (billedbeskrivelse)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skriv din beskrivelse her...\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kort beskrivelse til personer, der ikke kan se billedet, eller når billedet ikke indlæses.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Denne alternative tekst blev oprettet automatisk og kan være upræcis.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Læs mere\npdfjs-editor-new-alt-text-create-automatically-button-label = Opret alternativ tekst automatisk\npdfjs-editor-new-alt-text-not-now-button = Ikke nu\npdfjs-editor-new-alt-text-error-title = Kunne ikke oprette alternativ tekst automatisk\npdfjs-editor-new-alt-text-error-description = Skriv din egen alternative tekst, eller prøv igen senere.\npdfjs-editor-new-alt-text-error-close-button = Luk\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Henter alternativ tekst AI-model ({ $downloadedSize } af { $totalSize } MB)\n    .aria-valuetext = Henter alternativ tekst AI-model ({ $downloadedSize } af { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativ tekst tilføjet\npdfjs-editor-new-alt-text-added-button-label = Alternativ tekst tilføjet\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Mangler alternativ tekst\npdfjs-editor-new-alt-text-missing-button-label = Mangler alternativ tekst\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Gennemgå alternativ tekst\npdfjs-editor-new-alt-text-to-review-button-label = Gennemgå alternativ tekst\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Oprettet automatisk: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Indstillinger for alternativ tekst til billeder\npdfjs-image-alt-text-settings-button-label = Indstillinger for alternativ tekst til billeder\npdfjs-editor-alt-text-settings-dialog-label = Indstillinger for alternativ tekst til billeder\npdfjs-editor-alt-text-settings-automatic-title = Automatisk alternativ tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Opret alternativ tekst automatisk\npdfjs-editor-alt-text-settings-create-model-description = Foreslår beskrivelser for at hjælpe folk, der ikke kan se billedet, eller når billedet ikke indlæses.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = AI-model til at oprette alternative tekster ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Kører lokalt på din enhed, så dine data forbliver private. Påkrævet for at anvende automatisk alternativ tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Slet\npdfjs-editor-alt-text-settings-download-model-button = Hent\npdfjs-editor-alt-text-settings-downloading-model-button = Henter…\npdfjs-editor-alt-text-settings-editor-title = Redigering af alternativ tekst\npdfjs-editor-alt-text-settings-show-dialog-button-label = Vis redigering af alternativ tekst med det samme, når et billede tilføjes\npdfjs-editor-alt-text-settings-show-dialog-description = Hjælper dig med at sikre, at alle dine billeder har alternativ tekst.\npdfjs-editor-alt-text-settings-close-button = Luk\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Fremhævning tilføjet\npdfjs-editor-freetext-added-alert = Tekst tilføjet\npdfjs-editor-ink-added-alert = Tegning tilføjet\npdfjs-editor-stamp-added-alert = Billede tilføjet\npdfjs-editor-signature-added-alert = Signatur tilføjet\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Fremhævning fjernet\npdfjs-editor-undo-bar-message-freetext = Tekst fjernet\npdfjs-editor-undo-bar-message-ink = Tegning fjernet\npdfjs-editor-undo-bar-message-stamp = Billede fjernet\npdfjs-editor-undo-bar-message-signature = Signatur fjernet\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } kommentar fjernet\n       *[other] { $count } kommentarer fjernet\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Fortryd\npdfjs-editor-undo-bar-undo-button-label = Fortryd\npdfjs-editor-undo-bar-close-button =\n    .title = Luk\npdfjs-editor-undo-bar-close-button-label = Luk\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Modal-vinduet gør det muligt for brugeren at oprette en signatur, som kan føjes til PDF-dokumenter. Brugeren kan redigere navnet (der også fungerer som alternativ tekst) og eventuelt gemme signaturen, så den kan bruges igen.\npdfjs-editor-add-signature-dialog-title = Tilføj en signatur\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Indtast\n    .title = Indtast\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Tegn\n    .title = Tegn\npdfjs-editor-add-signature-image-button = Billede\n    .title = Billede\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Indtast din signatur\n    .placeholder = Indtast din signatur\npdfjs-editor-add-signature-draw-placeholder = Tegn din signatur\npdfjs-editor-add-signature-draw-thickness-range-label = Tykkelse\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Linjetykkelse: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Træk en fil herhen for at uploade den\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eller vælg billedfiler\n       *[other] Eller vælg billedfiler\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beskrivelse (alternativ tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Beskrivelse (alternativ tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Underskrift\npdfjs-editor-add-signature-clear-button-label = Ryd signatur\npdfjs-editor-add-signature-clear-button =\n    .title = Ryd signatur\npdfjs-editor-add-signature-save-checkbox = Gem signatur\npdfjs-editor-add-signature-save-warning-message = Du har nået grænsen på 5 gemte signaturer. Fjern en for at tilføje en ny.\npdfjs-editor-add-signature-image-upload-error-title = Kunne ikke uploade billede\npdfjs-editor-add-signature-image-upload-error-description = Kontroller din netværksforbindelse eller prøv med et andet billede.\npdfjs-editor-add-signature-image-no-data-error-title = Kan ikke konvertere dette billede til en signatur\npdfjs-editor-add-signature-image-no-data-error-description = Prøv at uploade et andet billede.\npdfjs-editor-add-signature-error-close-button = Luk\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annuller\npdfjs-editor-add-signature-add-button = Tilføj\npdfjs-editor-edit-signature-update-button = Opdater\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Rediger kommentar\npdfjs-editor-edit-comment-popup-button =\n    .title = Rediger kommentar\npdfjs-editor-delete-comment-popup-button-label = Fjern kommentar\npdfjs-editor-delete-comment-popup-button =\n    .title = Fjern kommentar\npdfjs-show-comment-button =\n    .title = Vis kommentar\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Handlinger\npdfjs-editor-edit-comment-actions-button =\n    .title = Handlinger\npdfjs-editor-edit-comment-close-button-label = Luk\npdfjs-editor-edit-comment-close-button =\n    .title = Luk\npdfjs-editor-edit-comment-actions-edit-button-label = Rediger\npdfjs-editor-edit-comment-actions-delete-button-label = Slet\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Indtast din kommentar\npdfjs-editor-edit-comment-manager-cancel-button = Annuller\npdfjs-editor-edit-comment-manager-save-button = Gem\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Rediger kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Opdater\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Tilføj kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Tilføj\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Begynd at skrive…\npdfjs-editor-edit-comment-dialog-cancel-button = Annuller\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Rediger kommentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Fjern gemt signatur\npdfjs-editor-delete-signature-button-label1 = Fjern gemt signatur\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Rediger beskrivelse\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Rediger beskrivelse\n"
  },
  {
    "path": "viewer/locale/de/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Eine Seite zurück\npdfjs-previous-button-label = Zurück\npdfjs-next-button =\n    .title = Eine Seite vor\npdfjs-next-button-label = Vor\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Seite\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = von { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } von { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Verkleinern\npdfjs-zoom-out-button-label = Verkleinern\npdfjs-zoom-in-button =\n    .title = Vergrößern\npdfjs-zoom-in-button-label = Vergrößern\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = In Präsentationsmodus wechseln\npdfjs-presentation-mode-button-label = Präsentationsmodus\npdfjs-open-file-button =\n    .title = Datei öffnen\npdfjs-open-file-button-label = Öffnen\npdfjs-print-button =\n    .title = Drucken\npdfjs-print-button-label = Drucken\npdfjs-save-button =\n    .title = Speichern\npdfjs-save-button-label = Speichern\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Herunterladen\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Herunterladen\npdfjs-bookmark-button =\n    .title = Aktuelle Seite (URL von aktueller Seite anzeigen)\npdfjs-bookmark-button-label = Aktuelle Seite\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Werkzeuge\npdfjs-tools-button-label = Werkzeuge\npdfjs-first-page-button =\n    .title = Erste Seite anzeigen\npdfjs-first-page-button-label = Erste Seite anzeigen\npdfjs-last-page-button =\n    .title = Letzte Seite anzeigen\npdfjs-last-page-button-label = Letzte Seite anzeigen\npdfjs-page-rotate-cw-button =\n    .title = Im Uhrzeigersinn drehen\npdfjs-page-rotate-cw-button-label = Im Uhrzeigersinn drehen\npdfjs-page-rotate-ccw-button =\n    .title = Gegen Uhrzeigersinn drehen\npdfjs-page-rotate-ccw-button-label = Gegen Uhrzeigersinn drehen\npdfjs-cursor-text-select-tool-button =\n    .title = Textauswahl-Werkzeug aktivieren\npdfjs-cursor-text-select-tool-button-label = Textauswahl-Werkzeug\npdfjs-cursor-hand-tool-button =\n    .title = Hand-Werkzeug aktivieren\npdfjs-cursor-hand-tool-button-label = Hand-Werkzeug\npdfjs-scroll-page-button =\n    .title = Seiten einzeln anordnen\npdfjs-scroll-page-button-label = Einzelseitenanordnung\npdfjs-scroll-vertical-button =\n    .title = Seiten übereinander anordnen\npdfjs-scroll-vertical-button-label = Vertikale Seitenanordnung\npdfjs-scroll-horizontal-button =\n    .title = Seiten nebeneinander anordnen\npdfjs-scroll-horizontal-button-label = Horizontale Seitenanordnung\npdfjs-scroll-wrapped-button =\n    .title = Seiten neben- und übereinander anordnen, abhängig vom Platz\npdfjs-scroll-wrapped-button-label = Kombinierte Seitenanordnung\npdfjs-spread-none-button =\n    .title = Seiten nicht nebeneinander anzeigen\npdfjs-spread-none-button-label = Einzelne Seiten\npdfjs-spread-odd-button =\n    .title = Jeweils eine ungerade und eine gerade Seite nebeneinander anzeigen\npdfjs-spread-odd-button-label = Ungerade + gerade Seite\npdfjs-spread-even-button =\n    .title = Jeweils eine gerade und eine ungerade Seite nebeneinander anzeigen\npdfjs-spread-even-button-label = Gerade + ungerade Seite\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumenteigenschaften\npdfjs-document-properties-button-label = Dokumenteigenschaften…\npdfjs-document-properties-file-name = Dateiname:\npdfjs-document-properties-file-size = Dateigröße:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } Bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } Bytes)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Thema:\npdfjs-document-properties-keywords = Stichwörter:\npdfjs-document-properties-creation-date = Erstelldatum:\npdfjs-document-properties-modification-date = Bearbeitungsdatum:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Anwendung:\npdfjs-document-properties-producer = PDF erstellt mit:\npdfjs-document-properties-version = PDF-Version:\npdfjs-document-properties-page-count = Seitenzahl:\npdfjs-document-properties-page-size = Seitengröße:\npdfjs-document-properties-page-size-unit-inches = Zoll\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = Hochformat\npdfjs-document-properties-page-size-orientation-landscape = Querformat\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Schnelle Webanzeige:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nein\npdfjs-document-properties-close-button = Schließen\n\n## Print\n\npdfjs-print-progress-message = Dokument wird für Drucken vorbereitet…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Abbrechen\npdfjs-printing-not-supported = Warnung: Die Drucken-Funktion wird durch diesen Browser nicht vollständig unterstützt.\npdfjs-printing-not-ready = Warnung: Die PDF-Datei ist nicht vollständig geladen, dies ist für das Drucken aber empfohlen.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Sidebar umschalten\npdfjs-toggle-sidebar-notification-button =\n    .title = Sidebar umschalten (Dokument enthält Dokumentstruktur/Anhänge/Ebenen)\npdfjs-toggle-sidebar-button-label = Sidebar umschalten\npdfjs-document-outline-button =\n    .title = Dokumentstruktur anzeigen (Doppelklicken, um alle Einträge aus- bzw. einzuklappen)\npdfjs-document-outline-button-label = Dokumentstruktur\npdfjs-attachments-button =\n    .title = Anhänge anzeigen\npdfjs-attachments-button-label = Anhänge\npdfjs-layers-button =\n    .title = Ebenen anzeigen (Doppelklicken, um alle Ebenen auf den Standardzustand zurückzusetzen)\npdfjs-layers-button-label = Ebenen\npdfjs-thumbs-button =\n    .title = Miniaturansichten anzeigen\npdfjs-thumbs-button-label = Miniaturansichten\npdfjs-current-outline-item-button =\n    .title = Aktuelles Struktur-Element finden\npdfjs-current-outline-item-button-label = Aktuelles Struktur-Element\npdfjs-findbar-button =\n    .title = Dokument durchsuchen\npdfjs-findbar-button-label = Suchen\npdfjs-additional-layers = Zusätzliche Ebenen\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Seite { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniaturansicht von Seite { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Suchen\n    .placeholder = Dokument durchsuchen…\npdfjs-find-previous-button =\n    .title = Vorheriges Vorkommen des Suchbegriffs finden\npdfjs-find-previous-button-label = Zurück\npdfjs-find-next-button =\n    .title = Nächstes Vorkommen des Suchbegriffs finden\npdfjs-find-next-button-label = Weiter\npdfjs-find-highlight-checkbox = Alle hervorheben\npdfjs-find-match-case-checkbox-label = Groß-/Kleinschreibung beachten\npdfjs-find-match-diacritics-checkbox-label = Akzente\npdfjs-find-entire-word-checkbox-label = Ganze Wörter\npdfjs-find-reached-top = Anfang des Dokuments erreicht, fahre am Ende fort\npdfjs-find-reached-bottom = Ende des Dokuments erreicht, fahre am Anfang fort\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } von { $total } Übereinstimmung\n       *[other] { $current } von { $total } Übereinstimmungen\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mehr als { $limit } Übereinstimmung\n       *[other] Mehr als { $limit } Übereinstimmungen\n    }\npdfjs-find-not-found = Suchbegriff nicht gefunden\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Seitenbreite\npdfjs-page-scale-fit = Seitengröße\npdfjs-page-scale-auto = Automatischer Zoom\npdfjs-page-scale-actual = Originalgröße\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Seite { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Beim Laden der PDF-Datei trat ein Fehler auf.\npdfjs-invalid-file-error = Ungültige oder beschädigte PDF-Datei\npdfjs-missing-file-error = Fehlende PDF-Datei\npdfjs-unexpected-response-error = Unerwartete Antwort des Servers\npdfjs-rendering-error = Beim Darstellen der Seite trat ein Fehler auf.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anlage: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Geben Sie zum Öffnen der PDF-Datei deren Passwort ein.\npdfjs-password-invalid = Falsches Passwort. Bitte versuchen Sie es erneut.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Abbrechen\npdfjs-web-fonts-disabled = Web-Schriftarten sind deaktiviert: Eingebettete PDF-Schriftarten konnten nicht geladen werden.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Textfarbe ändern\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Zeichnen\npdfjs-editor-color-picker-ink-input =\n    .title = Zeichnungsfarbe ändern\npdfjs-editor-ink-button-label = Zeichnen\npdfjs-editor-stamp-button =\n    .title = Grafiken hinzufügen oder bearbeiten\npdfjs-editor-stamp-button-label = Grafiken hinzufügen oder bearbeiten\npdfjs-editor-highlight-button =\n    .title = Hervorheben\npdfjs-editor-highlight-button-label = Hervorheben\npdfjs-highlight-floating-button1 =\n    .title = Hervorheben\n    .aria-label = Hervorheben\npdfjs-highlight-floating-button-label = Hervorheben\npdfjs-comment-floating-button =\n    .title = Kommentieren\n    .aria-label = Kommentieren\npdfjs-comment-floating-button-label = Kommentieren\npdfjs-editor-comment-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-editor-comment-button-label = Kommentar\npdfjs-editor-signature-button =\n    .title = Unterschrift hinzufügen\npdfjs-editor-signature-button-label = Unterschrift hinzufügen\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Hervorhebungs-Editor\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Zeichnungseditor\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Unterschrifts-Editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Grafik-Editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Zeichnung entfernen\npdfjs-editor-remove-freetext-button =\n    .title = Text entfernen\npdfjs-editor-remove-stamp-button =\n    .title = Grafik entfernen\npdfjs-editor-remove-highlight-button =\n    .title = Hervorhebung entfernen\npdfjs-editor-remove-signature-button =\n    .title = Unterschrift entfernen\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Farbe\npdfjs-editor-free-text-size-input = Größe\npdfjs-editor-ink-color-input = Farbe\npdfjs-editor-ink-thickness-input = Linienstärke\npdfjs-editor-ink-opacity-input = Deckkraft\npdfjs-editor-stamp-add-image-button =\n    .title = Grafik hinzufügen\npdfjs-editor-stamp-add-image-button-label = Grafik hinzufügen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Linienstärke\npdfjs-editor-free-highlight-thickness-title =\n    .title = Linienstärke beim Hervorheben anderer Elemente als Text ändern\npdfjs-editor-add-signature-container =\n    .aria-label = Signaturkontrollen und gespeicherte Signaturen\npdfjs-editor-signature-add-signature-button =\n    .title = Neue Unterschrift hinzufügen\npdfjs-editor-signature-add-signature-button-label = Neue Unterschrift hinzufügen\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Gespeicherte Signatur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Texteditor\n    .default-content = Schreiben beginnen…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentar\n       *[other] Kommentare\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Sidebar schließen\n    .aria-label = Sidebar schließen\npdfjs-editor-comments-sidebar-close-button-label = Sidebar schließen\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Haben Sie etwas Bemerkenswertes entdeckt? Heben Sie es hervor und hinterlassen Sie einen Kommentar.\npdfjs-editor-comments-sidebar-no-comments-link = Weitere Informationen\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativ-Text\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternativ-Text bearbeiten\npdfjs-editor-alt-text-dialog-label = Option wählen\npdfjs-editor-alt-text-dialog-description = Alt-Text (Alternativtext) hilft, wenn Personen die Grafik nicht sehen können oder wenn sie nicht geladen wird.\npdfjs-editor-alt-text-add-description-label = Beschreibung hinzufügen\npdfjs-editor-alt-text-add-description-description = Ziel sind 1-2 Sätze, die das Thema, das Szenario oder Aktionen beschreiben.\npdfjs-editor-alt-text-mark-decorative-label = Als dekorativ markieren\npdfjs-editor-alt-text-mark-decorative-description = Dies wird für Ziergrafiken wie Ränder oder Wasserzeichen verwendet.\npdfjs-editor-alt-text-cancel-button = Abbrechen\npdfjs-editor-alt-text-save-button = Speichern\npdfjs-editor-alt-text-decorative-tooltip = Als dekorativ markiert\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Zum Beispiel: \"Ein junger Mann setzt sich an einen Tisch, um zu essen.\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativ-Text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Linke obere Ecke - Größe ändern\npdfjs-editor-resizer-top-middle =\n    .aria-label = Oben mittig - Größe ändern\npdfjs-editor-resizer-top-right =\n    .aria-label = Rechts oben - Größe ändern\npdfjs-editor-resizer-middle-right =\n    .aria-label = Mitte rechts - Größe ändern\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Rechte untere Ecke - Größe ändern\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Unten mittig - Größe ändern\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Linke untere Ecke - Größe ändern\npdfjs-editor-resizer-middle-left =\n    .aria-label = Mitte links - Größe ändern\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Hervorhebungsfarbe\npdfjs-editor-colorpicker-button =\n    .title = Farbe ändern\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Farbauswahl\npdfjs-editor-colorpicker-yellow =\n    .title = Gelb\npdfjs-editor-colorpicker-green =\n    .title = Grün\npdfjs-editor-colorpicker-blue =\n    .title = Blau\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Rot\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Alle anzeigen\npdfjs-editor-highlight-show-all-button =\n    .title = Alle anzeigen\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternativ-Text (Grafikbeschreibung) bearbeiten\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternativ-Text (Grafikbeschreibung) hinzufügen\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Schreiben Sie Ihre Beschreibung hier…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kurze Beschreibung für Personen, die die Grafik nicht sehen können, oder wenn die Grafik nicht geladen wird.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Dieser Alternativ-Text wurde automatisch erstellt und könnte ungenau sein.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Weitere Informationen\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternativ-Text automatisch erstellen\npdfjs-editor-new-alt-text-not-now-button = Nicht jetzt\npdfjs-editor-new-alt-text-error-title = Alternativ-Text konnte nicht automatisch erstellt werden\npdfjs-editor-new-alt-text-error-description = Bitte schreiben Sie Ihren eigenen Alternativ-Text oder versuchen Sie es später erneut.\npdfjs-editor-new-alt-text-error-close-button = Schließen\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Alternativ-Text-KI-Modell wird heruntergeladen ({ $downloadedSize } von { $totalSize } MB)\n    .aria-valuetext = Alternativ-Text-KI-Modell wird heruntergeladen ({ $downloadedSize } von { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativ-Text hinzugefügt\npdfjs-editor-new-alt-text-added-button-label = Alternativ-Text hinzugefügt\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Fehlender Alternativ-Text\npdfjs-editor-new-alt-text-missing-button-label = Fehlender Alternativ-Text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternativ-Text überprüfen\npdfjs-editor-new-alt-text-to-review-button-label = Alternativ-Text überprüfen\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatisch erstellt: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Alternativ-Text-Einstellungen für Grafiken\npdfjs-image-alt-text-settings-button-label = Alternativ-Text-Einstellungen für Grafiken\npdfjs-editor-alt-text-settings-dialog-label = Alternativ-Text-Einstellungen für Grafiken\npdfjs-editor-alt-text-settings-automatic-title = Automatischer Alternativ-Text\npdfjs-editor-alt-text-settings-create-model-button-label = Alternativ-Text automatisch erstellen\npdfjs-editor-alt-text-settings-create-model-description = Schlägt Beschreibungen vor, um Personen zu helfen, die die Grafik nicht sehen können, oder wenn die Grafik nicht geladen wird.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alternativ-Text-KI-Modell ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Wird lokal auf Ihrem Gerät ausgeführt, sodass Ihre Daten privat bleiben. Erforderlich für automatischen Alternativ-Text.\npdfjs-editor-alt-text-settings-delete-model-button = Löschen\npdfjs-editor-alt-text-settings-download-model-button = Herunterladen\npdfjs-editor-alt-text-settings-downloading-model-button = Wird heruntergeladen…\npdfjs-editor-alt-text-settings-editor-title = Alternativ-Texteditor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Alternativ-Texteditor beim Hinzufügen einer Grafik anzeigen\npdfjs-editor-alt-text-settings-show-dialog-description = Hilft Ihnen, sicherzustellen, dass alle Ihre Grafiken Alternativ-Text haben.\npdfjs-editor-alt-text-settings-close-button = Schließen\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Hervorhebung hinzugefügt\npdfjs-editor-freetext-added-alert = Text hinzugefügt\npdfjs-editor-ink-added-alert = Zeichnung hinzugefügt\npdfjs-editor-stamp-added-alert = Bild hinzugefügt\npdfjs-editor-signature-added-alert = Signatur hinzugefügt\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Hervorhebung entfernt\npdfjs-editor-undo-bar-message-freetext = Text entfernt\npdfjs-editor-undo-bar-message-ink = Zeichnung entfernt\npdfjs-editor-undo-bar-message-stamp = Grafik entfernt\npdfjs-editor-undo-bar-message-signature = Unterschrift entfernt\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } Anmerkung entfernt\n       *[other] { $count } Anmerkungen entfernt\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Rückgängig\npdfjs-editor-undo-bar-undo-button-label = Rückgängig\npdfjs-editor-undo-bar-close-button =\n    .title = Schließen\npdfjs-editor-undo-bar-close-button-label = Schließen\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Dieses Modal ermöglicht es dem Benutzer, eine Unterschrift zu erstellen, um sie zu einem PDF-Dokument hinzuzufügen. Der Benutzer kann den Namen bearbeiten (der auch als Alt-Text dient) und optional die Unterschrift zur wiederholten Verwendung speichern.\npdfjs-editor-add-signature-dialog-title = Unterschrift hinzufügen\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Eintippen\n    .title = Eintippen\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Zeichnen\n    .title = Zeichnen\npdfjs-editor-add-signature-image-button = Grafik\n    .title = Grafik\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Tippen Sie Ihre Unterschrift ein\n    .placeholder = Tippen Sie Ihre Unterschrift ein\npdfjs-editor-add-signature-draw-placeholder = Ihre Unterschrift zeichnen\npdfjs-editor-add-signature-draw-thickness-range-label = Linienstärke\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Zeichnungsstärke: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Datei zum Hochladen hierher ziehen\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Oder Grafikdateien wählen\n       *[other] Oder Bilddateien durchsuchen\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beschreibung (alternativer Text)\npdfjs-editor-add-signature-description-input =\n    .title = Beschreibung (alternativer Text)\npdfjs-editor-add-signature-description-default-when-drawing = Unterschrift\npdfjs-editor-add-signature-clear-button-label = Unterschrift löschen\npdfjs-editor-add-signature-clear-button =\n    .title = Unterschrift löschen\npdfjs-editor-add-signature-save-checkbox = Unterschrift speichern\npdfjs-editor-add-signature-save-warning-message = Sie haben die Grenze von 5 gespeicherten Unterschriften erreicht. Entfernen Sie eine, um weitere zu speichern.\npdfjs-editor-add-signature-image-upload-error-title = Grafik konnte nicht hochgeladen werden\npdfjs-editor-add-signature-image-upload-error-description = Überprüfen Sie Ihre Netzwerkverbindung, oder versuchen Sie es mit einer anderen Grafik.\npdfjs-editor-add-signature-image-no-data-error-title = Kann Grafik nicht in eine Signatur umwandeln\npdfjs-editor-add-signature-image-no-data-error-description = Bitte versuchen Sie, eine andere Grafik hochzuladen.\npdfjs-editor-add-signature-error-close-button = Schließen\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Abbrechen\npdfjs-editor-add-signature-add-button = Hinzufügen\npdfjs-editor-edit-signature-update-button = Aktualisieren\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Kommentar bearbeiten\npdfjs-editor-edit-comment-popup-button =\n    .title = Kommentar bearbeiten\npdfjs-editor-delete-comment-popup-button-label = Kommentar entfernen\npdfjs-editor-delete-comment-popup-button =\n    .title = Kommentar entfernen\npdfjs-show-comment-button =\n    .title = Kommentar anzeigen\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Aktionen\npdfjs-editor-edit-comment-actions-button =\n    .title = Aktionen\npdfjs-editor-edit-comment-close-button-label = Schließen\npdfjs-editor-edit-comment-close-button =\n    .title = Schließen\npdfjs-editor-edit-comment-actions-edit-button-label = Bearbeiten\npdfjs-editor-edit-comment-actions-delete-button-label = Löschen\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Kommentar eingeben\npdfjs-editor-edit-comment-manager-cancel-button = Abbrechen\npdfjs-editor-edit-comment-manager-save-button = Speichern\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Kommentar bearbeiten\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualisieren\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Kommentar hinzufügen\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Hinzufügen\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Schreiben beginnen…\npdfjs-editor-edit-comment-dialog-cancel-button = Abbrechen\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Kommentar bearbeiten\npdfjs-editor-add-comment-button =\n    .title = Kommentar hinzufügen\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Gespeicherte Signatur entfernen\npdfjs-editor-delete-signature-button-label1 = Gespeicherte Signatur entfernen\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Beschreibung bearbeiten\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Beschreibung bearbeiten\n"
  },
  {
    "path": "viewer/locale/dsb/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pjerwjejšny bok\npdfjs-previous-button-label = Slědk\npdfjs-next-button =\n    .title = Pśiducy bok\npdfjs-next-button-label = Dalej\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Bok\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = z { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } z { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Pómjeńšyś\npdfjs-zoom-out-button-label = Pómjeńšyś\npdfjs-zoom-in-button =\n    .title = Pówětšyś\npdfjs-zoom-in-button-label = Pówětšyś\npdfjs-zoom-select =\n    .title = Skalěrowanje\npdfjs-presentation-mode-button =\n    .title = Do prezentaciskego modusa pśejś\npdfjs-presentation-mode-button-label = Prezentaciski modus\npdfjs-open-file-button =\n    .title = Dataju wócyniś\npdfjs-open-file-button-label = Wócyniś\npdfjs-print-button =\n    .title = Śišćaś\npdfjs-print-button-label = Śišćaś\npdfjs-save-button =\n    .title = Składowaś\npdfjs-save-button-label = Składowaś\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Ześěgnuś\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Ześěgnuś\npdfjs-bookmark-button =\n    .title = Aktualny bok (URL z aktualnego boka pokazaś)\npdfjs-bookmark-button-label = Aktualny bok\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Rědy\npdfjs-tools-button-label = Rědy\npdfjs-first-page-button =\n    .title = K prědnemu bokoju\npdfjs-first-page-button-label = K prědnemu bokoju\npdfjs-last-page-button =\n    .title = K slědnemu bokoju\npdfjs-last-page-button-label = K slědnemu bokoju\npdfjs-page-rotate-cw-button =\n    .title = Wobwjertnuś ako špěra źo\npdfjs-page-rotate-cw-button-label = Wobwjertnuś ako špěra źo\npdfjs-page-rotate-ccw-button =\n    .title = Wobwjertnuś nawopaki ako špěra źo\npdfjs-page-rotate-ccw-button-label = Wobwjertnuś nawopaki ako špěra źo\npdfjs-cursor-text-select-tool-button =\n    .title = Rěd za wuběranje teksta zmóžniś\npdfjs-cursor-text-select-tool-button-label = Rěd za wuběranje teksta\npdfjs-cursor-hand-tool-button =\n    .title = Rucny rěd zmóžniś\npdfjs-cursor-hand-tool-button-label = Rucny rěd\npdfjs-scroll-page-button =\n    .title = Kulanje boka wužywaś\npdfjs-scroll-page-button-label = Kulanje boka\npdfjs-scroll-vertical-button =\n    .title = Wertikalne suwanje wužywaś\npdfjs-scroll-vertical-button-label = Wertikalne suwanje\npdfjs-scroll-horizontal-button =\n    .title = Horicontalne suwanje wužywaś\npdfjs-scroll-horizontal-button-label = Horicontalne suwanje\npdfjs-scroll-wrapped-button =\n    .title = Pózlažke suwanje wužywaś\npdfjs-scroll-wrapped-button-label = Pózlažke suwanje\npdfjs-spread-none-button =\n    .title = Boki njezwězaś\npdfjs-spread-none-button-label = Žeden dwójny bok\npdfjs-spread-odd-button =\n    .title = Boki zachopinajucy z njerownymi bokami zwězaś\npdfjs-spread-odd-button-label = Njerowne boki\npdfjs-spread-even-button =\n    .title = Boki zachopinajucy z rownymi bokami zwězaś\npdfjs-spread-even-button-label = Rowne boki\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentowe kakosći…\npdfjs-document-properties-button-label = Dokumentowe kakosći…\npdfjs-document-properties-file-name = Mě dataje:\npdfjs-document-properties-file-size = Wjelikosć dataje:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtow)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtow)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Awtor:\npdfjs-document-properties-subject = Tema:\npdfjs-document-properties-keywords = Klucowe słowa:\npdfjs-document-properties-creation-date = Datum napóranja:\npdfjs-document-properties-modification-date = Datum změny:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Awtor:\npdfjs-document-properties-producer = PDF-gótowaŕ:\npdfjs-document-properties-version = PDF-wersija:\npdfjs-document-properties-page-count = Licba bokow:\npdfjs-document-properties-page-size = Wjelikosć boka:\npdfjs-document-properties-page-size-unit-inches = col\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = wusoki format\npdfjs-document-properties-page-size-orientation-landscape = prěcny format\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Jo\npdfjs-document-properties-linearized-no = Ně\npdfjs-document-properties-close-button = Zacyniś\n\n## Print\n\npdfjs-print-progress-message = Dokument pśigótujo se za śišćanje…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Pśetergnuś\npdfjs-printing-not-supported = Warnowanje: Śišćanje njepódpěra se połnje pśez toś ten wobglědowak.\npdfjs-printing-not-ready = Warnowanje: PDF njejo se za śišćanje dopołnje zacytał.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Bócnicu pokazaś/schowaś\npdfjs-toggle-sidebar-notification-button =\n    .title = Bocnicu pśešaltowaś (dokument rozrědowanje/pśipiski/warstwy wopśimujo)\npdfjs-toggle-sidebar-button-label = Bócnicu pokazaś/schowaś\npdfjs-document-outline-button =\n    .title = Dokumentowe naraźenje pokazaś (dwójne kliknjenje, aby se wšykne zapiski pokazali/schowali)\npdfjs-document-outline-button-label = Dokumentowa struktura\npdfjs-attachments-button =\n    .title = Pśidanki pokazaś\npdfjs-attachments-button-label = Pśidanki\npdfjs-layers-button =\n    .title = Warstwy pokazaś (klikniśo dwójcy, aby wšykne warstwy na standardny staw slědk stajił)\npdfjs-layers-button-label = Warstwy\npdfjs-thumbs-button =\n    .title = Miniatury pokazaś\npdfjs-thumbs-button-label = Miniatury\npdfjs-current-outline-item-button =\n    .title = Aktualny rozrědowański zapisk pytaś\npdfjs-current-outline-item-button-label = Aktualny rozrědowański zapisk\npdfjs-findbar-button =\n    .title = W dokumenśe pytaś\npdfjs-findbar-button-label = Pytaś\npdfjs-additional-layers = Dalšne warstwy\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Bok { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura boka { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Pytaś\n    .placeholder = W dokumenśe pytaś…\npdfjs-find-previous-button =\n    .title = Pjerwjejšne wustupowanje pytańskego wuraza pytaś\npdfjs-find-previous-button-label = Slědk\npdfjs-find-next-button =\n    .title = Pśidujuce wustupowanje pytańskego wuraza pytaś\npdfjs-find-next-button-label = Dalej\npdfjs-find-highlight-checkbox = Wšykne wuzwignuś\npdfjs-find-match-case-checkbox-label = Na wjelikopisanje źiwaś\npdfjs-find-match-diacritics-checkbox-label = Diakritiske znamuška wužywaś\npdfjs-find-entire-word-checkbox-label = Cełe słowa\npdfjs-find-reached-top = Zachopjeńk dokumenta dostany, pókšacujo se z kóńcom\npdfjs-find-reached-bottom = Kóńc dokumenta dostany, pókšacujo se ze zachopjeńkom\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } z { $total } wótpowědnika\n        [two] { $current } z { $total } wótpowědnikowu\n        [few] { $current } z { $total } wótpowědnikow\n       *[other] { $current } z { $total } wótpowědnikow\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Wušej { $limit } wótpowědnik\n        [two] Wušej { $limit } wótpowědnika\n        [few] Wušej { $limit } wótpowědniki\n       *[other] Wušej { $limit } wótpowědniki\n    }\npdfjs-find-not-found = Pytański wuraz njejo se namakał\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Šyrokosć boka\npdfjs-page-scale-fit = Wjelikosć boka\npdfjs-page-scale-auto = Awtomatiske skalěrowanje\npdfjs-page-scale-actual = Aktualna wjelikosć\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Bok { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Pśi zacytowanju PDF jo zmólka nastała.\npdfjs-invalid-file-error = Njepłaśiwa abo wobškóźona PDF-dataja.\npdfjs-missing-file-error = Felujuca PDF-dataja.\npdfjs-unexpected-response-error = Njewócakane serwerowe wótegrono.\npdfjs-rendering-error = Pśi zwobraznjanju boka jo zmólka nastała.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Typ pśipiskow: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Zapódajśo gronidło, aby PDF-dataju wócynił.\npdfjs-password-invalid = Njepłaśiwe gronidło. Pšosym wopytajśo hyšći raz.\npdfjs-password-ok-button = W pórěźe\npdfjs-password-cancel-button = Pśetergnuś\npdfjs-web-fonts-disabled = Webpisma su znjemóžnjone: njejo móžno, zasajźone PDF-pisma wužywaś.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Tekstowu barwu změniś\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Kresliś\npdfjs-editor-color-picker-ink-input =\n    .title = Kresleńsku barwu změniś\npdfjs-editor-ink-button-label = Kresliś\npdfjs-editor-stamp-button =\n    .title = Wobraze pśidaś abo wobźěłaś\npdfjs-editor-stamp-button-label = Wobraze pśidaś abo wobźěłaś\npdfjs-editor-highlight-button =\n    .title = Wuzwignuś\npdfjs-editor-highlight-button-label = Wuzwignuś\npdfjs-highlight-floating-button1 =\n    .title = Wuzwignuś\n    .aria-label = Wuzwignuś\npdfjs-highlight-floating-button-label = Wuzwignuś\npdfjs-comment-floating-button =\n    .title = Komentěrowaś\n    .aria-label = Komentěrowaś\npdfjs-comment-floating-button-label = Komentěrowaś\npdfjs-editor-comment-button =\n    .title = Komentěrowaś\n    .aria-label = Komentěrowaś\npdfjs-editor-comment-button-label = Komentar\npdfjs-editor-signature-button =\n    .title = Signaturu pśidaś\npdfjs-editor-signature-button-label = Signaturu pśidaś\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor wuzwignjenja\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Kresleński editor\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signaturowy editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Wobrazowy editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Kreslanku wótwónoźeś\npdfjs-editor-remove-freetext-button =\n    .title = Tekst wótwónoźeś\npdfjs-editor-remove-stamp-button =\n    .title = Wobraz wótwónoźeś\npdfjs-editor-remove-highlight-button =\n    .title = Wuzwignjenje wótpóraś\npdfjs-editor-remove-signature-button =\n    .title = Signaturu wótwónoźeś\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Barwa\npdfjs-editor-free-text-size-input = Wjelikosć\npdfjs-editor-ink-color-input = Barwa\npdfjs-editor-ink-thickness-input = Tłustosć\npdfjs-editor-ink-opacity-input = Opacita\npdfjs-editor-stamp-add-image-button =\n    .title = Wobraz pśidaś\npdfjs-editor-stamp-add-image-button-label = Wobraz pśidaś\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tłustosć\npdfjs-editor-free-highlight-thickness-title =\n    .title = Tłustosć změniś, gaž se zapiski wuzwiguju, kótarež tekst njejsu\npdfjs-editor-add-signature-container =\n    .aria-label = Wóźeńske elementy signaturow a skłaźone signatury\npdfjs-editor-signature-add-signature-button =\n    .title = Nowu signaturu pśidaś\npdfjs-editor-signature-add-signature-button-label = Nowu signaturu pśidaś\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Skłaźona signatura: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstowy editor\n    .default-content = Zachopśo pisaś …\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] { $count } komentar\n        [two] { $count } komentara\n        [few] { $count } komentary\n       *[other] { $count } komentarow\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Bócnicu zacyniś\n    .aria-label = Bócnicu zacyniś\npdfjs-editor-comments-sidebar-close-button-label = Bócnicu zacyniś\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Wiźiśo něco wobspomnjeśa gódnego? Wuzwigniśo to a zawóstajśo komentar.\npdfjs-editor-comments-sidebar-no-comments-link = Dalšne informacije\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatiwny tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternatiwny tekst wobźěłaś\npdfjs-editor-alt-text-dialog-label = Nastajenje wubraś\npdfjs-editor-alt-text-dialog-description = Alternatiwny tekst pomaga, gaž luźe njamógu wobraz wiźeś abo gaž se wobraz njezacytajo.\npdfjs-editor-alt-text-add-description-label = Wopisanje pśidaś\npdfjs-editor-alt-text-add-description-description = Pišćo 1 sadu abo 2 saźe, kótarejž temu, nastajenje abo akcije wopisujotej.\npdfjs-editor-alt-text-mark-decorative-label = Ako dekoratiwny markěrowaś\npdfjs-editor-alt-text-mark-decorative-description = To se za pyšnjece wobraze wužywa, na pśikład ramiki abo wódowe znamjenja.\npdfjs-editor-alt-text-cancel-button = Pśetergnuś\npdfjs-editor-alt-text-save-button = Składowaś\npdfjs-editor-alt-text-decorative-tooltip = Ako dekoratiwny markěrowany\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na pśikład, „Młody muski za blidom sejźi, aby jěź jědł“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatiwny tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Górjejce nalěwo – wjelikosć změniś\npdfjs-editor-resizer-top-middle =\n    .aria-label = Górjejce wesrjejź – wjelikosć změniś\npdfjs-editor-resizer-top-right =\n    .aria-label = Górjejce napšawo – wjelikosć změniś\npdfjs-editor-resizer-middle-right =\n    .aria-label = Wesrjejź napšawo – wjelikosć změniś\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Dołojce napšawo – wjelikosć změniś\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Dołojce wesrjejź – wjelikosć změniś\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Dołojce nalěwo – wjelikosć změniś\npdfjs-editor-resizer-middle-left =\n    .aria-label = Wesrjejź nalěwo – wjelikosć změniś\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Barwa wuzwignjenja\npdfjs-editor-colorpicker-button =\n    .title = Barwu změniś\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Wuběrk barwow\npdfjs-editor-colorpicker-yellow =\n    .title = Žołty\npdfjs-editor-colorpicker-green =\n    .title = Zeleny\npdfjs-editor-colorpicker-blue =\n    .title = Módry\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Cerwjeny\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Wšykne pokazaś\npdfjs-editor-highlight-show-all-button =\n    .title = Wšykne pokazaś\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternatiwny tekst wobźěłaś (wobrazowe wopisanje)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternatiwny tekst pśidaś (wobrazowe wopisanje)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Pišćo how swójo wopisanje…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Krotke wopisanje za luźe, kótarež njamóžośo wobraz wiźeś abo gaž se wobraz njezacytajo.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Toś ten alternatiwny tekst jo se awtomatiski napórał a jo snaź njedokradny.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Dalšne informacije\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternatiwny tekst awtomatiski napóraś\npdfjs-editor-new-alt-text-not-now-button = Nic něnto\npdfjs-editor-new-alt-text-error-title = Alternatiwny tekst njedajo se awtomatiski napóraś\npdfjs-editor-new-alt-text-error-description = Pšosym pišćo swój alternatiwny tekst abo wopytajśo pózdźej hyšći raz.\npdfjs-editor-new-alt-text-error-close-button = Zacyniś\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Model KI za alternatiwny tekst se ześěgujo ({ $downloadedSize } z { $totalSize } MB)\n    .aria-valuetext = Model KI za alternatiwny tekst se ześěgujo ({ $downloadedSize } z { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatiwny tekst jo se pśidał\npdfjs-editor-new-alt-text-added-button-label = Alternatiwny tekst jo se pśidał\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Alternatiwny tekst felujo\npdfjs-editor-new-alt-text-missing-button-label = Alternatiwny tekst felujo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternatiwny tekst pśeglědowaś\npdfjs-editor-new-alt-text-to-review-button-label = Alternatiwny tekst pśeglědowaś\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Awtomatiski napórany: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Nastajenja alternatiwnego wobrazowego teksta\npdfjs-image-alt-text-settings-button-label = Nastajenja alternatiwnego wobrazowego teksta\npdfjs-editor-alt-text-settings-dialog-label = Nastajenja alternatiwnego wobrazowego teksta\npdfjs-editor-alt-text-settings-automatic-title = Awtomatiski alternatiwny tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Alternatiwny tekst awtomatiski napóraś\npdfjs-editor-alt-text-settings-create-model-description = Naraźujo wopisanja, aby pomagał ludam, kótarež njamóžośo wobraz wiźeś abo gaž se wobraz njezacytajo.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model KI alternatiwnego teksta ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Běžy lokalnje na wašom rěźe, aby waše daty priwatne wóstali. Za awtomatiski alternatiwny tekst trjebny.\npdfjs-editor-alt-text-settings-delete-model-button = Lašowaś\npdfjs-editor-alt-text-settings-download-model-button = Ześěgnuś\npdfjs-editor-alt-text-settings-downloading-model-button = Ześěgujo se…\npdfjs-editor-alt-text-settings-editor-title = Editor za alternatiwny tekst\npdfjs-editor-alt-text-settings-show-dialog-button-label = Editor alternatiwnego teksta ned pokazaś, gaž se wobraz pśidawa\npdfjs-editor-alt-text-settings-show-dialog-description = Pomaga, wam wšym swójim wobrazam alternatiwny tekst pśidaś.\npdfjs-editor-alt-text-settings-close-button = Zacyniś\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Wuzwignjenje pśidane\npdfjs-editor-freetext-added-alert = Tekst pśidany\npdfjs-editor-ink-added-alert = Kreslanka pśidana\npdfjs-editor-stamp-added-alert = Wobraz pśidany\npdfjs-editor-signature-added-alert = Signatura pśidana\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Wótwónoźone wuzwignuś\npdfjs-editor-undo-bar-message-freetext = Tekst jo se wótwónoźeł\npdfjs-editor-undo-bar-message-ink = Kreslanka jo se wótwónoźeła\npdfjs-editor-undo-bar-message-stamp = Wobraz jo se wótwónoźeł\npdfjs-editor-undo-bar-message-signature = Signatura jo se wótwónoźeła\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } pśipisk jo se wótwónoźeł\n        [two] { $count } pśipiska stej se wótwónoźełej\n        [few] { $count } pśipiski su se wótwónoźeli\n       *[other] { $count } pśipiskow jo se wótwónoźeło\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Anulěrowaś\npdfjs-editor-undo-bar-undo-button-label = Anulěrowaś\npdfjs-editor-undo-bar-close-button =\n    .title = Zacyniś\npdfjs-editor-undo-bar-close-button-label = Zacyniś\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Toś ten modalny dialog wužywarjeju zmóžnja, signaturu napóraś, aby PDF-dokument pśidał. Wužywaŕ móžo mě wobźěłaś (kótarež teke ako alternatiwny tekst słužy) a pó žycenju signaturu za wóspjetne wužywanje składowaś.\npdfjs-editor-add-signature-dialog-title = Signaturu pśidaś\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typ\n    .title = Typ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Kresliś\n    .title = Kresliś\npdfjs-editor-add-signature-image-button = Wobraz\n    .title = Wobraz\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Zapódajśo swóju signaturu\n    .placeholder = Zapódajśo swóju signaturu\npdfjs-editor-add-signature-draw-placeholder = Kresliśo swóju signaturu\npdfjs-editor-add-signature-draw-thickness-range-label = Tłustosć\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tłustosć kreslanki: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Śěgniśo dataju sem, aby ju nagrał\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Abo wubjeŕśo wobrazowe dataje\n       *[other] Abo pśepytajśo wobrazowe dataje\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Wopisanje (alternatiwny tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Wopisanje (alternatiwny tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Signatura\npdfjs-editor-add-signature-clear-button-label = Signaturu lašowaś\npdfjs-editor-add-signature-clear-button =\n    .title = Signaturu lašowaś\npdfjs-editor-add-signature-save-checkbox = Signaturu składowaś\npdfjs-editor-add-signature-save-warning-message = Sćo dojśpił limit 5 skłaźonych signaturow. Wótwónoźćo jadnu, aby wěcej składował.\npdfjs-editor-add-signature-image-upload-error-title = Wobraz njedajo se nagraś\npdfjs-editor-add-signature-image-upload-error-description = Pśeglědajśo swój seśowy zwisk abo wopytajśo drugi wobraz.\npdfjs-editor-add-signature-image-no-data-error-title = Toś ten wobraz njedajo se do signatury pśetwóriś\npdfjs-editor-add-signature-image-no-data-error-description = Wopytajśo pšosym drugi wobraz nagraś.\npdfjs-editor-add-signature-error-close-button = Zacyniś\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Pśetergnuś\npdfjs-editor-add-signature-add-button = Pśidaś\npdfjs-editor-edit-signature-update-button = Aktualizěrowaś\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Komentar wobźěłaś\npdfjs-editor-edit-comment-popup-button =\n    .title = Komentar wobźěłaś\npdfjs-editor-delete-comment-popup-button-label = Komentar wótwónoźeś\npdfjs-editor-delete-comment-popup-button =\n    .title = Komentar wótwónoźeś\npdfjs-show-comment-button =\n    .title = Komentar pokazaś\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Akcije\npdfjs-editor-edit-comment-actions-button =\n    .title = Akcije\npdfjs-editor-edit-comment-close-button-label = Zacyniś\npdfjs-editor-edit-comment-close-button =\n    .title = Zacyniś\npdfjs-editor-edit-comment-actions-edit-button-label = Wobźěłaś\npdfjs-editor-edit-comment-actions-delete-button-label = Lašowaś\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Zapódajśo swój komentar\npdfjs-editor-edit-comment-manager-cancel-button = Pśetergnuś\npdfjs-editor-edit-comment-manager-save-button = Składowaś\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Komentar wobźěłaś\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualizěrowaś\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Komentar pśidaś\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Pśidaś\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Zachopśo pisaś…\npdfjs-editor-edit-comment-dialog-cancel-button = Pśetergnuś\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Komentar wobźěłaś\npdfjs-editor-add-comment-button =\n    .title = Komentar pśidaś\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Skłaźonu signaturu wótwónoźeś\npdfjs-editor-delete-signature-button-label1 = Skłaźonu signaturu wótwónoźeś\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Wopisanje wobźěłaś\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Wopisanje wobźěłaś\n"
  },
  {
    "path": "viewer/locale/el/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Προηγούμενη σελίδα\npdfjs-previous-button-label = Προηγούμενη\npdfjs-next-button =\n    .title = Επόμενη σελίδα\npdfjs-next-button-label = Επόμενη\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Σελίδα\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = από { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } από { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Σμίκρυνση\npdfjs-zoom-out-button-label = Σμίκρυνση\npdfjs-zoom-in-button =\n    .title = Μεγέθυνση\npdfjs-zoom-in-button-label = Μεγέθυνση\npdfjs-zoom-select =\n    .title = Ζουμ\npdfjs-presentation-mode-button =\n    .title = Εναλλαγή σε λειτουργία παρουσίασης\npdfjs-presentation-mode-button-label = Λειτουργία παρουσίασης\npdfjs-open-file-button =\n    .title = Άνοιγμα αρχείου\npdfjs-open-file-button-label = Άνοιγμα\npdfjs-print-button =\n    .title = Εκτύπωση\npdfjs-print-button-label = Εκτύπωση\npdfjs-save-button =\n    .title = Αποθήκευση\npdfjs-save-button-label = Αποθήκευση\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Λήψη\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Λήψη\npdfjs-bookmark-button =\n    .title = Τρέχουσα σελίδα (Προβολή URL από τρέχουσα σελίδα)\npdfjs-bookmark-button-label = Τρέχουσα σελίδα\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Εργαλεία\npdfjs-tools-button-label = Εργαλεία\npdfjs-first-page-button =\n    .title = Μετάβαση στην πρώτη σελίδα\npdfjs-first-page-button-label = Μετάβαση στην πρώτη σελίδα\npdfjs-last-page-button =\n    .title = Μετάβαση στην τελευταία σελίδα\npdfjs-last-page-button-label = Μετάβαση στην τελευταία σελίδα\npdfjs-page-rotate-cw-button =\n    .title = Δεξιόστροφη περιστροφή\npdfjs-page-rotate-cw-button-label = Δεξιόστροφη περιστροφή\npdfjs-page-rotate-ccw-button =\n    .title = Αριστερόστροφη περιστροφή\npdfjs-page-rotate-ccw-button-label = Αριστερόστροφη περιστροφή\npdfjs-cursor-text-select-tool-button =\n    .title = Ενεργοποίηση εργαλείου επιλογής κειμένου\npdfjs-cursor-text-select-tool-button-label = Εργαλείο επιλογής κειμένου\npdfjs-cursor-hand-tool-button =\n    .title = Ενεργοποίηση εργαλείου χεριού\npdfjs-cursor-hand-tool-button-label = Εργαλείο χεριού\npdfjs-scroll-page-button =\n    .title = Χρήση κύλισης σελίδας\npdfjs-scroll-page-button-label = Κύλιση σελίδας\npdfjs-scroll-vertical-button =\n    .title = Χρήση κάθετης κύλισης\npdfjs-scroll-vertical-button-label = Κάθετη κύλιση\npdfjs-scroll-horizontal-button =\n    .title = Χρήση οριζόντιας κύλισης\npdfjs-scroll-horizontal-button-label = Οριζόντια κύλιση\npdfjs-scroll-wrapped-button =\n    .title = Χρήση κυκλικής κύλισης\npdfjs-scroll-wrapped-button-label = Κυκλική κύλιση\npdfjs-spread-none-button =\n    .title = Να μην γίνει σύνδεση των επεκτάσεων σελίδων\npdfjs-spread-none-button-label = Χωρίς επεκτάσεις\npdfjs-spread-odd-button =\n    .title = Σύνδεση επεκτάσεων σελίδων ξεκινώντας από τις μονές σελίδες\npdfjs-spread-odd-button-label = Μονές επεκτάσεις\npdfjs-spread-even-button =\n    .title = Σύνδεση επεκτάσεων σελίδων ξεκινώντας από τις ζυγές σελίδες\npdfjs-spread-even-button-label = Ζυγές επεκτάσεις\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Ιδιότητες εγγράφου…\npdfjs-document-properties-button-label = Ιδιότητες εγγράφου…\npdfjs-document-properties-file-name = Όνομα αρχείου:\npdfjs-document-properties-file-size = Μέγεθος αρχείου:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Τίτλος:\npdfjs-document-properties-author = Συγγραφέας:\npdfjs-document-properties-subject = Θέμα:\npdfjs-document-properties-keywords = Λέξεις-κλειδιά:\npdfjs-document-properties-creation-date = Ημερομηνία δημιουργίας:\npdfjs-document-properties-modification-date = Ημερομηνία τροποποίησης:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Δημιουργός:\npdfjs-document-properties-producer = Παραγωγός PDF:\npdfjs-document-properties-version = Έκδοση PDF:\npdfjs-document-properties-page-count = Αριθμός σελίδων:\npdfjs-document-properties-page-size = Μέγεθος σελίδας:\npdfjs-document-properties-page-size-unit-inches = ίντσες\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = κατακόρυφα\npdfjs-document-properties-page-size-orientation-landscape = οριζόντια\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Επιστολή\npdfjs-document-properties-page-size-name-legal = Τύπου Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Ταχεία προβολή ιστού:\npdfjs-document-properties-linearized-yes = Ναι\npdfjs-document-properties-linearized-no = Όχι\npdfjs-document-properties-close-button = Κλείσιμο\n\n## Print\n\npdfjs-print-progress-message = Προετοιμασία του εγγράφου για εκτύπωση…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Ακύρωση\npdfjs-printing-not-supported = Προειδοποίηση: Η εκτύπωση δεν υποστηρίζεται πλήρως από το πρόγραμμα περιήγησης.\npdfjs-printing-not-ready = Προειδοποίηση: Το PDF δεν φορτώθηκε πλήρως για εκτύπωση.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = (Απ)ενεργοποίηση πλαϊνής γραμμής\npdfjs-toggle-sidebar-notification-button =\n    .title = (Απ)ενεργοποίηση πλαϊνής γραμμής (το έγγραφο περιέχει περίγραμμα/συνημμένα/επίπεδα)\npdfjs-toggle-sidebar-button-label = (Απ)ενεργοποίηση πλαϊνής γραμμής\npdfjs-document-outline-button =\n    .title = Εμφάνιση διάρθρωσης εγγράφου (διπλό κλικ για ανάπτυξη/σύμπτυξη όλων των στοιχείων)\npdfjs-document-outline-button-label = Διάρθρωση εγγράφου\npdfjs-attachments-button =\n    .title = Εμφάνιση συνημμένων\npdfjs-attachments-button-label = Συνημμένα\npdfjs-layers-button =\n    .title = Εμφάνιση επιπέδων (διπλό κλικ για επαναφορά όλων των επιπέδων στην προεπιλεγμένη κατάσταση)\npdfjs-layers-button-label = Επίπεδα\npdfjs-thumbs-button =\n    .title = Εμφάνιση μικρογραφιών\npdfjs-thumbs-button-label = Μικρογραφίες\npdfjs-current-outline-item-button =\n    .title = Εύρεση τρέχοντος στοιχείου διάρθρωσης\npdfjs-current-outline-item-button-label = Τρέχον στοιχείο διάρθρωσης\npdfjs-findbar-button =\n    .title = Εύρεση στο έγγραφο\npdfjs-findbar-button-label = Εύρεση\npdfjs-additional-layers = Επιπρόσθετα επίπεδα\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Σελίδα { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Μικρογραφία σελίδας { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Εύρεση\n    .placeholder = Εύρεση στο έγγραφο…\npdfjs-find-previous-button =\n    .title = Εύρεση της προηγούμενης εμφάνισης της φράσης\npdfjs-find-previous-button-label = Προηγούμενο\npdfjs-find-next-button =\n    .title = Εύρεση της επόμενης εμφάνισης της φράσης\npdfjs-find-next-button-label = Επόμενο\npdfjs-find-highlight-checkbox = Επισήμανση όλων\npdfjs-find-match-case-checkbox-label = Συμφωνία πεζών/κεφαλαίων\npdfjs-find-match-diacritics-checkbox-label = Αντιστοίχιση διακριτικών\npdfjs-find-entire-word-checkbox-label = Ολόκληρες λέξεις\npdfjs-find-reached-top = Φτάσατε στην αρχή του εγγράφου, συνέχεια από το τέλος\npdfjs-find-reached-bottom = Φτάσατε στο τέλος του εγγράφου, συνέχεια από την αρχή\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } από { $total } αντιστοιχία\n       *[other] { $current } από { $total } αντιστοιχίες\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Περισσότερες από { $limit } αντιστοιχία\n       *[other] Περισσότερες από { $limit } αντιστοιχίες\n    }\npdfjs-find-not-found = Η φράση δεν βρέθηκε\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Πλάτος σελίδας\npdfjs-page-scale-fit = Μέγεθος σελίδας\npdfjs-page-scale-auto = Αυτόματο ζουμ\npdfjs-page-scale-actual = Πραγματικό μέγεθος\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Σελίδα { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Προέκυψε σφάλμα κατά τη φόρτωση του PDF.\npdfjs-invalid-file-error = Μη έγκυρο ή κατεστραμμένο αρχείο PDF.\npdfjs-missing-file-error = Λείπει αρχείο PDF.\npdfjs-unexpected-response-error = Απρόσμενη απάντηση διακομιστή.\npdfjs-rendering-error = Προέκυψε σφάλμα κατά την εμφάνιση της σελίδας.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Σχόλιο «{ $type }»]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Εισαγάγετε τον κωδικό πρόσβασης για να ανοίξετε αυτό το αρχείο PDF.\npdfjs-password-invalid = Μη έγκυρος κωδικός πρόσβασης. Δοκιμάστε ξανά.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Ακύρωση\npdfjs-web-fonts-disabled = Οι γραμματοσειρές ιστού είναι ανενεργές: δεν είναι δυνατή η χρήση των ενσωματωμένων γραμματοσειρών PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Κείμενο\npdfjs-editor-color-picker-free-text-input =\n    .title = Αλλαγή χρώματος κειμένου\npdfjs-editor-free-text-button-label = Κείμενο\npdfjs-editor-ink-button =\n    .title = Σχέδιο\npdfjs-editor-color-picker-ink-input =\n    .title = Αλλαγή χρώματος σχεδίου\npdfjs-editor-ink-button-label = Σχέδιο\npdfjs-editor-stamp-button =\n    .title = Προσθήκη ή επεξεργασία εικόνων\npdfjs-editor-stamp-button-label = Προσθήκη ή επεξεργασία εικόνων\npdfjs-editor-highlight-button =\n    .title = Επισήμανση\npdfjs-editor-highlight-button-label = Επισήμανση\npdfjs-highlight-floating-button1 =\n    .title = Επισήμανση\n    .aria-label = Επισήμανση\npdfjs-highlight-floating-button-label = Επισήμανση\npdfjs-comment-floating-button =\n    .title = Σχόλιο\n    .aria-label = Σχόλιο\npdfjs-comment-floating-button-label = Σχόλιο\npdfjs-editor-comment-button =\n    .title = Σχόλιο\n    .aria-label = Σχόλιο\npdfjs-editor-comment-button-label = Σχόλιο\npdfjs-editor-signature-button =\n    .title = Προσθήκη υπογραφής\npdfjs-editor-signature-button-label = Προσθήκη υπογραφής\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Επεξεργασία επισήμανσης\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Επεξεργασία σχεδίου\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Επεξεργασία υπογραφής: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Επεξεργασία εικόνας\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Αφαίρεση σχεδίου\npdfjs-editor-remove-freetext-button =\n    .title = Αφαίρεση κειμένου\npdfjs-editor-remove-stamp-button =\n    .title = Αφαίρεση εικόνας\npdfjs-editor-remove-highlight-button =\n    .title = Αφαίρεση επισήμανσης\npdfjs-editor-remove-signature-button =\n    .title = Αφαίρεση υπογραφής\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Χρώμα\npdfjs-editor-free-text-size-input = Μέγεθος\npdfjs-editor-ink-color-input = Χρώμα\npdfjs-editor-ink-thickness-input = Πάχος\npdfjs-editor-ink-opacity-input = Αδιαφάνεια\npdfjs-editor-stamp-add-image-button =\n    .title = Προσθήκη εικόνας\npdfjs-editor-stamp-add-image-button-label = Προσθήκη εικόνας\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Πάχος\npdfjs-editor-free-highlight-thickness-title =\n    .title = Αλλαγή πάχους κατά την επισήμανση στοιχείων εκτός κειμένου\npdfjs-editor-add-signature-container =\n    .aria-label = Στοιχεία ελέγχου υπογραφής και αποθηκευμένες υπογραφές\npdfjs-editor-signature-add-signature-button =\n    .title = Προσθήκη νέας υπογραφής\npdfjs-editor-signature-add-signature-button-label = Προσθήκη νέας υπογραφής\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Αποθηκευμένη υπογραφή: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Επεξεργασία κειμένου\n    .default-content = Ξεκινήστε να πληκτρολογείτε…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Σχόλια\n       *[other] Σχόλια\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Κλείσιμο πλευρικής στήλης\n    .aria-label = Κλείσιμο πλευρικής στήλης\npdfjs-editor-comments-sidebar-close-button-label = Κλείσιμο πλευρικής στήλης\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Βλέπετε κάτι αξιοσημείωτο; Επισημάνετε το και αφήστε ένα σχόλιο.\npdfjs-editor-comments-sidebar-no-comments-link = Μάθετε περισσότερα\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Εναλλακτικό κείμενο\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Επεξεργασία εναλλακτικού κειμένου\npdfjs-editor-alt-text-dialog-label = Διαλέξτε μια επιλογή\npdfjs-editor-alt-text-dialog-description = Το εναλλακτικό κείμενο είναι χρήσιμο όταν οι άνθρωποι δεν μπορούν να δουν την εικόνα ή όταν αυτή δεν φορτώνεται.\npdfjs-editor-alt-text-add-description-label = Προσθήκη περιγραφής\npdfjs-editor-alt-text-add-description-description = Στοχεύστε σε μία ή δύο προτάσεις που περιγράφουν το θέμα, τη ρύθμιση ή τις ενέργειες.\npdfjs-editor-alt-text-mark-decorative-label = Επισήμανση ως διακοσμητικό\npdfjs-editor-alt-text-mark-decorative-description = Χρησιμοποιείται για διακοσμητικές εικόνες, όπως περιγράμματα ή υδατογραφήματα.\npdfjs-editor-alt-text-cancel-button = Ακύρωση\npdfjs-editor-alt-text-save-button = Αποθήκευση\npdfjs-editor-alt-text-decorative-tooltip = Επισημασμένο ως διακοσμητικό\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Για παράδειγμα, «Ένας νεαρός άνδρας κάθεται σε ένα τραπέζι για να φάει ένα γεύμα»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Εναλλακτικό κείμενο\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Επάνω αριστερή γωνία — αλλαγή μεγέθους\npdfjs-editor-resizer-top-middle =\n    .aria-label = Μέσο επάνω πλευράς — αλλαγή μεγέθους\npdfjs-editor-resizer-top-right =\n    .aria-label = Επάνω δεξιά γωνία — αλλαγή μεγέθους\npdfjs-editor-resizer-middle-right =\n    .aria-label = Μέσο δεξιάς πλευράς — αλλαγή μεγέθους\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Κάτω δεξιά γωνία — αλλαγή μεγέθους\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Μέσο κάτω πλευράς — αλλαγή μεγέθους\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Κάτω αριστερή γωνία — αλλαγή μεγέθους\npdfjs-editor-resizer-middle-left =\n    .aria-label = Μέσο αριστερής πλευράς — αλλαγή μεγέθους\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Χρώμα επισήμανσης\npdfjs-editor-colorpicker-button =\n    .title = Αλλαγή χρώματος\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Επιλογές χρωμάτων\npdfjs-editor-colorpicker-yellow =\n    .title = Κίτρινο\npdfjs-editor-colorpicker-green =\n    .title = Πράσινο\npdfjs-editor-colorpicker-blue =\n    .title = Μπλε\npdfjs-editor-colorpicker-pink =\n    .title = Ροζ\npdfjs-editor-colorpicker-red =\n    .title = Κόκκινο\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Εμφάνιση όλων\npdfjs-editor-highlight-show-all-button =\n    .title = Εμφάνιση όλων\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Επεξεργασία εναλλακτικού κειμένου (περιγραφή εικόνας)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Προσθήκη εναλλακτικού κειμένου (περιγραφή εικόνας)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Γράψτε την περιγραφή σας εδώ…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Σύντομη περιγραφή για άτομα που δεν μπορούν να δουν την εικόνα ή όταν η εικόνα δεν φορτώνεται.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Αυτό το εναλλακτικό κείμενο δημιουργήθηκε αυτόματα και ενδέχεται να είναι ανακριβές.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Μάθετε περισσότερα\npdfjs-editor-new-alt-text-create-automatically-button-label = Αυτόματη δημιουργία εναλλακτικού κειμένου\npdfjs-editor-new-alt-text-not-now-button = Όχι τώρα\npdfjs-editor-new-alt-text-error-title = Δεν ήταν δυνατή η αυτόματη δημιουργία εναλλακτικού κειμένου\npdfjs-editor-new-alt-text-error-description = Γράψτε το δικό σας εναλλακτικό κείμενο ή δοκιμάστε ξανά αργότερα.\npdfjs-editor-new-alt-text-error-close-button = Κλείσιμο\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Λήψη μοντέλου ΤΝ εναλλακτικού κειμένου ({ $downloadedSize } από { $totalSize } MB)\n    .aria-valuetext = Λήψη μοντέλου ΤΝ εναλλακτικού κειμένου ({ $downloadedSize } από { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Προστέθηκε εναλλακτικό κείμενο\npdfjs-editor-new-alt-text-added-button-label = Προστέθηκε εναλλακτικό κείμενο\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Απουσία εναλλακτικού κειμένου\npdfjs-editor-new-alt-text-missing-button-label = Απουσία εναλλακτικού κειμένου\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Έλεγχος εναλλακτικού κειμένου\npdfjs-editor-new-alt-text-to-review-button-label = Έλεγχος εναλλακτικού κειμένου\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Αυτόματη δημιουργία: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ρυθμίσεις εναλλακτικού κειμένου εικόνας\npdfjs-image-alt-text-settings-button-label = Ρυθμίσεις εναλλακτικού κειμένου εικόνας\npdfjs-editor-alt-text-settings-dialog-label = Ρυθμίσεις εναλλακτικού κειμένου εικόνας\npdfjs-editor-alt-text-settings-automatic-title = Αυτόματο εναλλακτικό κείμενο\npdfjs-editor-alt-text-settings-create-model-button-label = Αυτόματη δημιουργία εναλλακτικού κειμένου\npdfjs-editor-alt-text-settings-create-model-description = Προτείνει περιγραφές για άτομα που δεν μπορούν να δουν την εικόνα ή όταν η εικόνα δεν φορτώνεται.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Μοντέλο ΤΝ εναλλακτικού κειμένου ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Εκτελείται τοπικά στη συσκευή σας, ώστε τα δεδομένα σας να παραμένουν ιδιωτικά. Απαιτείται για τη δημιουργία του αυτόματου εναλλακτικού κειμένου.\npdfjs-editor-alt-text-settings-delete-model-button = Διαγραφή\npdfjs-editor-alt-text-settings-download-model-button = Λήψη\npdfjs-editor-alt-text-settings-downloading-model-button = Λήψη…\npdfjs-editor-alt-text-settings-editor-title = Επεξεργασία εναλλακτικού κειμένου\npdfjs-editor-alt-text-settings-show-dialog-button-label = Άμεση εμφάνιση της επεξεργασίας εναλλακτικού κειμένου κατά την προσθήκη εικόνας\npdfjs-editor-alt-text-settings-show-dialog-description = Σας βοηθά να βεβαιωθείτε ότι όλες οι εικόνες σας έχουν εναλλακτικό κείμενο.\npdfjs-editor-alt-text-settings-close-button = Κλείσιμο\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Προστέθηκε επισήμανση\npdfjs-editor-freetext-added-alert = Προστέθηκε κείμενο\npdfjs-editor-ink-added-alert = Προστέθηκε σχέδιο\npdfjs-editor-stamp-added-alert = Προστέθηκε εικόνα\npdfjs-editor-signature-added-alert = Προστέθηκε υπογραφή\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Η επισήμανση αφαιρέθηκε\npdfjs-editor-undo-bar-message-freetext = Το κείμενο αφαιρέθηκε\npdfjs-editor-undo-bar-message-ink = Το σχέδιο αφαιρέθηκε\npdfjs-editor-undo-bar-message-stamp = Η εικόνα αφαιρέθηκε\npdfjs-editor-undo-bar-message-signature = Η υπογραφή αφαιρέθηκε\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] Αφαιρέθηκε { $count } σχολιασμός\n       *[other] Αφαιρέθηκαν { $count } σχολιασμοί\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Αναίρεση\npdfjs-editor-undo-bar-undo-button-label = Αναίρεση\npdfjs-editor-undo-bar-close-button =\n    .title = Κλείσιμο\npdfjs-editor-undo-bar-close-button-label = Κλείσιμο\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Αυτό το παράθυρο διαλόγου επιτρέπει στον χρήστη να δημιουργήσει μια υπογραφή για να την προσθέσει σε ένα έγγραφο PDF. Ο χρήστης μπορεί να επεξεργαστεί το όνομα (το οποίο χρησιμεύει και ως εναλλακτικό κείμενο) και, προαιρετικά, να αποθηκεύσει την υπογραφή για επαναλαμβανόμενη χρήση.\npdfjs-editor-add-signature-dialog-title = Προσθήκη υπογραφής\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Πληκτρολόγηση\n    .title = Πληκτρολόγηση\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Σχέδιο\n    .title = Σχέδιο\npdfjs-editor-add-signature-image-button = Εικόνα\n    .title = Εικόνα\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Πληκτρολογήστε την υπογραφή σας\n    .placeholder = Πληκτρολογήστε την υπογραφή σας\npdfjs-editor-add-signature-draw-placeholder = Σχεδιάστε την υπογραφή σας\npdfjs-editor-add-signature-draw-thickness-range-label = Πάχος\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Πάχος σχεδίου: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Σύρετε ένα αρχείο εδώ για μεταφόρτωση\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ή επιλέξτε αρχεία εικόνας\n       *[other] Ή περιηγηθείτε σε αρχεία εικόνας\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Περιγραφή (εναλλακτικό κείμενο)\npdfjs-editor-add-signature-description-input =\n    .title = Περιγραφή (εναλλακτικό κείμενο)\npdfjs-editor-add-signature-description-default-when-drawing = Υπογραφή\npdfjs-editor-add-signature-clear-button-label = Απαλοιφή υπογραφής\npdfjs-editor-add-signature-clear-button =\n    .title = Απαλοιφή υπογραφής\npdfjs-editor-add-signature-save-checkbox = Αποθήκευση υπογραφής\npdfjs-editor-add-signature-save-warning-message = Έχετε φτάσει το όριο των 5 αποθηκευμένων υπογραφών. Αφαιρέστε μία για να αποθηκεύσετε περισσότερες.\npdfjs-editor-add-signature-image-upload-error-title = Δεν ήταν δυνατή η μεταφόρτωση της εικόνας\npdfjs-editor-add-signature-image-upload-error-description = Ελέγξτε τη σύνδεση δικτύου σας ή δοκιμάστε μια άλλη εικόνα.\npdfjs-editor-add-signature-image-no-data-error-title = Δεν είναι δυνατή η μετατροπή αυτής της εικόνας σε υπογραφή\npdfjs-editor-add-signature-image-no-data-error-description = Δοκιμάστε να μεταφορτώσετε μια άλλη εικόνα.\npdfjs-editor-add-signature-error-close-button = Κλείσιμο\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Ακύρωση\npdfjs-editor-add-signature-add-button = Προσθήκη\npdfjs-editor-edit-signature-update-button = Ενημέρωση\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Επεξεργασία σχολίου\npdfjs-editor-edit-comment-popup-button =\n    .title = Επεξεργασία σχολίου\npdfjs-editor-delete-comment-popup-button-label = Αφαίρεση σχολίου\npdfjs-editor-delete-comment-popup-button =\n    .title = Αφαίρεση σχολίου\npdfjs-show-comment-button =\n    .title = Εμφάνιση σχολίου\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Ενέργειες\npdfjs-editor-edit-comment-actions-button =\n    .title = Ενέργειες\npdfjs-editor-edit-comment-close-button-label = Κλείσιμο\npdfjs-editor-edit-comment-close-button =\n    .title = Κλείσιμο\npdfjs-editor-edit-comment-actions-edit-button-label = Επεξεργασία\npdfjs-editor-edit-comment-actions-delete-button-label = Διαγραφή\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Εισαγάγετε το σχόλιό σας\npdfjs-editor-edit-comment-manager-cancel-button = Ακύρωση\npdfjs-editor-edit-comment-manager-save-button = Αποθήκευση\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Επεξεργασία σχολίου\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Ενημέρωση\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Προσθήκη σχολίου\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Προσθήκη\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Ξεκινήστε να πληκτρολογείτε…\npdfjs-editor-edit-comment-dialog-cancel-button = Ακύρωση\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Επεξεργασία σχολίου\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Αφαίρεση αποθηκευμένης υπογραφής\npdfjs-editor-delete-signature-button-label1 = Αφαίρεση αποθηκευμένης υπογραφής\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Επεξεργασία περιγραφής\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Επεξεργασία περιγραφής\n"
  },
  {
    "path": "viewer/locale/en-CA/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n    .title = Next Page\npdfjs-next-button-label = Next\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Page\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = of { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n    .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n    .title = Save\npdfjs-save-button-label = Save\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Download\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n    .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n    .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n    .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n    .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n    .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n    .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n    .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n    .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n    .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n    .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n    .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n    .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Document Properties…\npdfjs-document-properties-button-label = Document Properties…\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n    .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n    .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n    .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n    .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n    .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n    .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail of Page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find in document…\npdfjs-find-previous-button =\n    .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n    .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } of { $total } match\n       *[other] { $current } of { $total } matches\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] More than { $limit } match\n       *[other] More than { $limit } matches\n    }\npdfjs-find-not-found = Phrase not found\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Page { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Change text colour\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Draw\npdfjs-editor-color-picker-ink-input =\n    .title = Change drawing colour\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n    .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n    .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n    .title = Highlight\n    .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-comment-floating-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-comment-floating-button-label = Comment\npdfjs-editor-comment-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-editor-comment-button-label = Comment\npdfjs-editor-signature-button =\n    .title = Add signature\npdfjs-editor-signature-button-label = Add signature\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Highlight editor\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Drawing editor\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signature editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Image editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n    .title = Remove text\npdfjs-editor-remove-stamp-button =\n    .title = Remove image\npdfjs-editor-remove-highlight-button =\n    .title = Remove highlight\npdfjs-editor-remove-signature-button =\n    .title = Remove signature\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colour\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Colour\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n    .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n    .title = Change thickness when highlighting items other than text\npdfjs-editor-add-signature-container =\n    .aria-label = Signature controls and saved signatures\npdfjs-editor-signature-add-signature-button =\n    .title = Add new signature\npdfjs-editor-signature-add-signature-button-label = Add new signature\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Saved signature: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Text Editor\n    .default-content = Start typing…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comment\n       *[other] Comments\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Close the sidebar\n    .aria-label = Close the sidebar\npdfjs-editor-comments-sidebar-close-button-label = Close the sidebar\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = See something noteworthy? Highlight it and leave a comment.\npdfjs-editor-comments-sidebar-no-comments-link = Learn more\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = For example, “A young man sits down at a table to eat a meal”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Top left corner — resize\npdfjs-editor-resizer-top-middle =\n    .aria-label = Top middle — resize\npdfjs-editor-resizer-top-right =\n    .aria-label = Top right corner — resize\npdfjs-editor-resizer-middle-right =\n    .aria-label = Middle right — resize\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Bottom right corner — resize\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Bottom middle — resize\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Bottom left corner — resize\npdfjs-editor-resizer-middle-left =\n    .aria-label = Middle left — resize\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Highlight colour\npdfjs-editor-colorpicker-button =\n    .title = Change colour\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Colour choices\npdfjs-editor-colorpicker-yellow =\n    .title = Yellow\npdfjs-editor-colorpicker-green =\n    .title = Green\npdfjs-editor-colorpicker-blue =\n    .title = Blue\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Red\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n    .title = Show all\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Write your description here…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Short description for people who can’t see the image or when the image doesn’t load.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn’t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n    .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can’t see the image or when the image doesn’t load.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading…\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Highlight added\npdfjs-editor-freetext-added-alert = Text added\npdfjs-editor-ink-added-alert = Drawing added\npdfjs-editor-stamp-added-alert = Image added\npdfjs-editor-signature-added-alert = Signature added\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-signature = Signature removed\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotation removed\n       *[other] { $count } annotations removed\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n    .title = Close\npdfjs-editor-undo-bar-close-button-label = Close\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = This modal allows the user to create a signature to add to a PDF document. The user can edit the name (which also serves as the alt text), and optionally save the signature for repeated use.\npdfjs-editor-add-signature-dialog-title = Add a signature\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Draw\n    .title = Draw\npdfjs-editor-add-signature-image-button = Image\n    .title = Image\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Type your signature\n    .placeholder = Type your signature\npdfjs-editor-add-signature-draw-placeholder = Draw your signature\npdfjs-editor-add-signature-draw-thickness-range-label = Thickness\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Drawing thickness: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Drag a file here to upload\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Or choose image files\n       *[other] Or browse image files\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Description (alt text)\npdfjs-editor-add-signature-description-input =\n    .title = Description (alt text)\npdfjs-editor-add-signature-description-default-when-drawing = Signature\npdfjs-editor-add-signature-clear-button-label = Clear signature\npdfjs-editor-add-signature-clear-button =\n    .title = Clear signature\npdfjs-editor-add-signature-save-checkbox = Save signature\npdfjs-editor-add-signature-save-warning-message = You’ve reached the limit of 5 saved signatures. Remove one to save more.\npdfjs-editor-add-signature-image-upload-error-title = Couldn’t upload image\npdfjs-editor-add-signature-image-upload-error-description = Check your network connection or try another image.\npdfjs-editor-add-signature-image-no-data-error-title = Can’t convert this image into a signature\npdfjs-editor-add-signature-image-no-data-error-description = Please try uploading a different image.\npdfjs-editor-add-signature-error-close-button = Close\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancel\npdfjs-editor-add-signature-add-button = Add\npdfjs-editor-edit-signature-update-button = Update\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Edit comment\npdfjs-editor-edit-comment-popup-button =\n    .title = Edit comment\npdfjs-editor-delete-comment-popup-button-label = Remove comment\npdfjs-editor-delete-comment-popup-button =\n    .title = Remove comment\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Actions\npdfjs-editor-edit-comment-actions-button =\n    .title = Actions\npdfjs-editor-edit-comment-close-button-label = Close\npdfjs-editor-edit-comment-close-button =\n    .title = Close\npdfjs-editor-edit-comment-actions-edit-button-label = Edit\npdfjs-editor-edit-comment-actions-delete-button-label = Delete\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Enter your comment\npdfjs-editor-edit-comment-manager-cancel-button = Cancel\npdfjs-editor-edit-comment-manager-save-button = Save\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Edit comment\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Add comment\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Start typing…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancel\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Edit comment\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remove saved signature\npdfjs-editor-delete-signature-button-label1 = Remove saved signature\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Edit description\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Edit description\n"
  },
  {
    "path": "viewer/locale/en-GB/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n    .title = Next Page\npdfjs-next-button-label = Next\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Page\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = of { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n    .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n    .title = Save\npdfjs-save-button-label = Save\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Download\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n    .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n    .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n    .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n    .title = Rotate Anti-Clockwise\npdfjs-page-rotate-ccw-button-label = Rotate Anti-Clockwise\npdfjs-cursor-text-select-tool-button =\n    .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n    .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n    .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n    .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n    .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n    .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n    .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n    .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Document Properties…\npdfjs-document-properties-button-label = Document Properties…\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n    .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n    .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n    .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n    .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n    .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n    .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail of Page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find in document…\npdfjs-find-previous-button =\n    .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n    .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } of { $total } match\n       *[other] { $current } of { $total } matches\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] More than { $limit } match\n       *[other] More than { $limit } matches\n    }\npdfjs-find-not-found = Phrase not found\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Page { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Change text colour\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Draw\npdfjs-editor-color-picker-ink-input =\n    .title = Change drawing colour\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n    .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n    .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n    .title = Highlight\n    .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-comment-floating-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-comment-floating-button-label = Comment\npdfjs-editor-comment-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-editor-comment-button-label = Comment\npdfjs-editor-signature-button =\n    .title = Add signature\npdfjs-editor-signature-button-label = Add signature\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Highlight editor\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Drawing editor\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signature editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Image editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n    .title = Remove text\npdfjs-editor-remove-stamp-button =\n    .title = Remove image\npdfjs-editor-remove-highlight-button =\n    .title = Remove highlight\npdfjs-editor-remove-signature-button =\n    .title = Remove signature\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colour\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Colour\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n    .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n    .title = Change thickness when highlighting items other than text\npdfjs-editor-add-signature-container =\n    .aria-label = Signature controls and saved signatures\npdfjs-editor-signature-add-signature-button =\n    .title = Add new signature\npdfjs-editor-signature-add-signature-button-label = Add new signature\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Saved signature: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Text Editor\n    .default-content = Start typing…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comment\n       *[other] Comments\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Close the sidebar\n    .aria-label = Close the sidebar\npdfjs-editor-comments-sidebar-close-button-label = Close the sidebar\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = See something noteworthy? Highlight it and leave a comment.\npdfjs-editor-comments-sidebar-no-comments-link = Learn more\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = For example, “A young man sits down at a table to eat a meal”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Top left corner — resize\npdfjs-editor-resizer-top-middle =\n    .aria-label = Top middle — resize\npdfjs-editor-resizer-top-right =\n    .aria-label = Top right corner — resize\npdfjs-editor-resizer-middle-right =\n    .aria-label = Middle right — resize\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Bottom right corner — resize\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Bottom middle — resize\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Bottom left corner — resize\npdfjs-editor-resizer-middle-left =\n    .aria-label = Middle left — resize\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Highlight colour\npdfjs-editor-colorpicker-button =\n    .title = Change colour\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Colour choices\npdfjs-editor-colorpicker-yellow =\n    .title = Yellow\npdfjs-editor-colorpicker-green =\n    .title = Green\npdfjs-editor-colorpicker-blue =\n    .title = Blue\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Red\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n    .title = Show all\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Write your description here…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Short description for people who can’t see the image or when the image doesn’t load.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn’t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n    .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can’t see the image or when the image doesn’t load.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading…\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Highlight added\npdfjs-editor-freetext-added-alert = Text added\npdfjs-editor-ink-added-alert = Drawing added\npdfjs-editor-stamp-added-alert = Image added\npdfjs-editor-signature-added-alert = Signature added\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-signature = Signature removed\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotation removed\n       *[other] { $count } annotations removed\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n    .title = Close\npdfjs-editor-undo-bar-close-button-label = Close\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = This modal allows the user to create a signature to add to a PDF document. The user can edit the name (which also serves as the alt text), and optionally save the signature for repeated use.\npdfjs-editor-add-signature-dialog-title = Add a signature\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Draw\n    .title = Draw\npdfjs-editor-add-signature-image-button = Image\n    .title = Image\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Type your signature\n    .placeholder = Type your signature\npdfjs-editor-add-signature-draw-placeholder = Draw your signature\npdfjs-editor-add-signature-draw-thickness-range-label = Thickness\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Drawing thickness: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Drag a file here to upload\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Or choose image files\n       *[other] Or browse image files\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Description (alt text)\npdfjs-editor-add-signature-description-input =\n    .title = Description (alt text)\npdfjs-editor-add-signature-description-default-when-drawing = Signature\npdfjs-editor-add-signature-clear-button-label = Clear signature\npdfjs-editor-add-signature-clear-button =\n    .title = Clear signature\npdfjs-editor-add-signature-save-checkbox = Save signature\npdfjs-editor-add-signature-save-warning-message = You’ve reached the limit of 5 saved signatures. Remove one to save more.\npdfjs-editor-add-signature-image-upload-error-title = Couldn’t upload image\npdfjs-editor-add-signature-image-upload-error-description = Check your network connection or try another image.\npdfjs-editor-add-signature-image-no-data-error-title = Can’t convert this image into a signature\npdfjs-editor-add-signature-image-no-data-error-description = Please try uploading a different image.\npdfjs-editor-add-signature-error-close-button = Close\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancel\npdfjs-editor-add-signature-add-button = Add\npdfjs-editor-edit-signature-update-button = Update\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Edit comment\npdfjs-editor-edit-comment-popup-button =\n    .title = Edit comment\npdfjs-editor-delete-comment-popup-button-label = Remove comment\npdfjs-editor-delete-comment-popup-button =\n    .title = Remove comment\npdfjs-show-comment-button =\n    .title = Show comment\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Actions\npdfjs-editor-edit-comment-actions-button =\n    .title = Actions\npdfjs-editor-edit-comment-close-button-label = Close\npdfjs-editor-edit-comment-close-button =\n    .title = Close\npdfjs-editor-edit-comment-actions-edit-button-label = Edit\npdfjs-editor-edit-comment-actions-delete-button-label = Delete\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Enter your comment\npdfjs-editor-edit-comment-manager-cancel-button = Cancel\npdfjs-editor-edit-comment-manager-save-button = Save\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Edit comment\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Update\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Add comment\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Add\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Start typing…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancel\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Edit comment\npdfjs-editor-add-comment-button =\n    .title = Add comment\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remove saved signature\npdfjs-editor-delete-signature-button-label1 = Remove saved signature\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Edit description\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Edit description\n"
  },
  {
    "path": "viewer/locale/en-US/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n    .title = Next Page\npdfjs-next-button-label = Next\n\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Page\n\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = of { $pagesCount }\n\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\n\npdfjs-zoom-out-button =\n    .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n    .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n    .title = Save\npdfjs-save-button-label = Save\n\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Download\n\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Download\n\npdfjs-bookmark-button =\n    .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\n\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n    .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n    .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n    .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n    .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n    .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n    .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n    .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n    .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n    .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n    .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n    .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Document Properties…\npdfjs-document-properties-button-label = Document Properties…\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\n\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\n\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\n\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\n\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n    .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n    .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n    .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n    .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n    .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n    .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail of Page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find in document…\npdfjs-find-previous-button =\n    .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n    .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\n\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } of { $total } match\n       *[other] { $current } of { $total } matches\n    }\n\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] More than { $limit } match\n       *[other] More than { $limit } matches\n    }\n\npdfjs-find-not-found = Phrase not found\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\n\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Page { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\n\n## Annotations\n\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Change text color\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Draw\npdfjs-editor-color-picker-ink-input =\n    .title = Change drawing color\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n    .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n    .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n    .title = Highlight\n    .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-comment-floating-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-comment-floating-button-label = Comment\npdfjs-editor-comment-button =\n    .title = Comment\n    .aria-label = Comment\npdfjs-editor-comment-button-label = Comment\npdfjs-editor-signature-button =\n    .title = Add signature\npdfjs-editor-signature-button-label = Add signature\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Highlight editor\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Drawing editor\n\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signature editor: { $description }\n\npdfjs-editor-stamp-editor =\n    .aria-label = Image editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n    .title = Remove text\npdfjs-editor-remove-stamp-button =\n    .title = Remove image\npdfjs-editor-remove-highlight-button =\n    .title = Remove highlight\npdfjs-editor-remove-signature-button =\n    .title = Remove signature\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n    .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n    .title = Change thickness when highlighting items other than text\npdfjs-editor-add-signature-container =\n    .aria-label = Signature controls and saved signatures\npdfjs-editor-signature-add-signature-button =\n    .title = Add new signature\npdfjs-editor-signature-add-signature-button-label = Add new signature\n\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Saved signature: { $description }\n\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Text Editor\n    .default-content = Start typing…\n\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comment\n       *[other] Comments\n    }\n\npdfjs-editor-comments-sidebar-close-button =\n    .title = Close the sidebar\n    .aria-label = Close the sidebar\npdfjs-editor-comments-sidebar-close-button-label = Close the sidebar\n\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = See something noteworthy? Highlight it and leave a comment.\npdfjs-editor-comments-sidebar-no-comments-link = Learn more\n\n## Alt-text dialog\n\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt text\npdfjs-editor-alt-text-button-label = Alt text\n\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\n\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = For example, “A young man sits down at a table to eat a meal”\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Top left corner — resize\npdfjs-editor-resizer-top-middle =\n    .aria-label = Top middle — resize\npdfjs-editor-resizer-top-right =\n    .aria-label = Top right corner — resize\npdfjs-editor-resizer-middle-right =\n    .aria-label = Middle right — resize\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Bottom right corner — resize\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Bottom middle — resize\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Bottom left corner — resize\npdfjs-editor-resizer-middle-left =\n    .aria-label = Middle left — resize\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Highlight color\n\npdfjs-editor-colorpicker-button =\n    .title = Change color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n    .title = Yellow\npdfjs-editor-colorpicker-green =\n    .title = Green\npdfjs-editor-colorpicker-blue =\n    .title = Blue\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Red\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n    .title = Show all\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\n\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\n\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Write your description here…\n\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Short description for people who can’t see the image or when the image doesn’t load.\n\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\n\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn’t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\n\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n    .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\n\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\n\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\n\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\n\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can’t see the image or when the image doesn’t load.\n\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\n\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading…\n\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Highlight added\npdfjs-editor-freetext-added-alert = Text added\npdfjs-editor-ink-added-alert = Drawing added\npdfjs-editor-stamp-added-alert = Image added\npdfjs-editor-signature-added-alert = Signature added\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-signature = Signature removed\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotation removed\n       *[other] { $count } annotations removed\n    }\n\npdfjs-editor-undo-bar-undo-button =\n    .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n    .title = Close\npdfjs-editor-undo-bar-close-button-label = Close\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = This modal allows the user to create a signature to add to a PDF document. The user can edit the name (which also serves as the alt text), and optionally save the signature for repeated use.\npdfjs-editor-add-signature-dialog-title = Add a signature\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Draw\n    .title = Draw\npdfjs-editor-add-signature-image-button = Image\n    .title = Image\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Type your signature\n    .placeholder = Type your signature\npdfjs-editor-add-signature-draw-placeholder = Draw your signature\npdfjs-editor-add-signature-draw-thickness-range-label = Thickness\n\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Drawing thickness: { $thickness }\n\npdfjs-editor-add-signature-image-placeholder = Drag a file here to upload\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Or choose image files\n       *[other] Or browse image files\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Description (alt text)\npdfjs-editor-add-signature-description-input =\n    .title = Description (alt text)\npdfjs-editor-add-signature-description-default-when-drawing = Signature\n\n\npdfjs-editor-add-signature-clear-button-label = Clear signature\npdfjs-editor-add-signature-clear-button =\n    .title = Clear signature\npdfjs-editor-add-signature-save-checkbox = Save signature\npdfjs-editor-add-signature-save-warning-message = You’ve reached the limit of 5 saved signatures. Remove one to save more.\npdfjs-editor-add-signature-image-upload-error-title = Couldn’t upload image\npdfjs-editor-add-signature-image-upload-error-description = Check your network connection or try another image.\npdfjs-editor-add-signature-image-no-data-error-title = Can’t convert this image into a signature\npdfjs-editor-add-signature-image-no-data-error-description = Please try uploading a different image.\npdfjs-editor-add-signature-error-close-button = Close\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancel\npdfjs-editor-add-signature-add-button = Add\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remove saved signature\npdfjs-editor-delete-signature-button-label1 = Remove saved signature\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Edit description\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Edit description\n\n## Dialog buttons\n\npdfjs-editor-edit-signature-update-button = Update\n\n## Comment popup\n\npdfjs-show-comment-button =\n    .title = Show comment\n\npdfjs-editor-edit-comment-popup-button-label = Edit comment\npdfjs-editor-edit-comment-popup-button =\n    .title = Edit comment\npdfjs-editor-delete-comment-popup-button-label = Remove comment\npdfjs-editor-delete-comment-popup-button =\n    .title = Remove comment\n\n##  Edit a comment dialog\n\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Edit comment\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Update\n\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Add comment\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Add\n\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Start typing…\n\npdfjs-editor-edit-comment-dialog-cancel-button = Cancel\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-add-comment-button =\n    .title = Add comment\n"
  },
  {
    "path": "viewer/locale/eo/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Antaŭa paĝo\npdfjs-previous-button-label = Malantaŭen\npdfjs-next-button =\n    .title = Venonta paĝo\npdfjs-next-button-label = Antaŭen\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Paĝo\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = el { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } el { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Malpligrandigi\npdfjs-zoom-out-button-label = Malpligrandigi\npdfjs-zoom-in-button =\n    .title = Pligrandigi\npdfjs-zoom-in-button-label = Pligrandigi\npdfjs-zoom-select =\n    .title = Pligrandigilo\npdfjs-presentation-mode-button =\n    .title = Iri al prezenta reĝimo\npdfjs-presentation-mode-button-label = Prezenta reĝimo\npdfjs-open-file-button =\n    .title = Malfermi dosieron\npdfjs-open-file-button-label = Malfermi\npdfjs-print-button =\n    .title = Presi\npdfjs-print-button-label = Presi\npdfjs-save-button =\n    .title = Konservi\npdfjs-save-button-label = Konservi\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Elŝuti\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Elŝuti\npdfjs-bookmark-button =\n    .title = Nuna paĝo (Montri adreson de la nuna paĝo)\npdfjs-bookmark-button-label = Nuna paĝo\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Iloj\npdfjs-tools-button-label = Iloj\npdfjs-first-page-button =\n    .title = Iri al la unua paĝo\npdfjs-first-page-button-label = Iri al la unua paĝo\npdfjs-last-page-button =\n    .title = Iri al la lasta paĝo\npdfjs-last-page-button-label = Iri al la lasta paĝo\npdfjs-page-rotate-cw-button =\n    .title = Rotaciigi dekstrume\npdfjs-page-rotate-cw-button-label = Rotaciigi dekstrume\npdfjs-page-rotate-ccw-button =\n    .title = Rotaciigi maldekstrume\npdfjs-page-rotate-ccw-button-label = Rotaciigi maldekstrume\npdfjs-cursor-text-select-tool-button =\n    .title = Aktivigi tekstan elektilon\npdfjs-cursor-text-select-tool-button-label = Teksta elektilo\npdfjs-cursor-hand-tool-button =\n    .title = Aktivigi ilon de mano\npdfjs-cursor-hand-tool-button-label = Ilo de mano\npdfjs-scroll-page-button =\n    .title = Uzi rulumon de paĝo\npdfjs-scroll-page-button-label = Rulumo de paĝo\npdfjs-scroll-vertical-button =\n    .title = Uzi vertikalan rulumon\npdfjs-scroll-vertical-button-label = Vertikala rulumo\npdfjs-scroll-horizontal-button =\n    .title = Uzi horizontalan rulumon\npdfjs-scroll-horizontal-button-label = Horizontala rulumo\npdfjs-scroll-wrapped-button =\n    .title = Uzi ambaŭdirektan rulumon\npdfjs-scroll-wrapped-button-label = Ambaŭdirekta rulumo\npdfjs-spread-none-button =\n    .title = Ne montri paĝojn po du\npdfjs-spread-none-button-label = Unupaĝa vido\npdfjs-spread-odd-button =\n    .title = Kunigi paĝojn komencante per nepara paĝo\npdfjs-spread-odd-button-label = Po du paĝoj, neparaj maldekstre\npdfjs-spread-even-button =\n    .title = Kunigi paĝojn komencante per para paĝo\npdfjs-spread-even-button-label = Po du paĝoj, paraj maldekstre\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Atributoj de dokumento…\npdfjs-document-properties-button-label = Atributoj de dokumento…\npdfjs-document-properties-file-name = Nomo de dosiero:\npdfjs-document-properties-file-size = Grando de dosiero:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KO ({ $b } oktetoj)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } Mo ({ $b } oktetoj)\npdfjs-document-properties-title = Titolo:\npdfjs-document-properties-author = Aŭtoro:\npdfjs-document-properties-subject = Temo:\npdfjs-document-properties-keywords = Ŝlosilvorto:\npdfjs-document-properties-creation-date = Dato de kreado:\npdfjs-document-properties-modification-date = Dato de modifo:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Kreinto:\npdfjs-document-properties-producer = Produktinto de PDF:\npdfjs-document-properties-version = Versio de PDF:\npdfjs-document-properties-page-count = Nombro de paĝoj:\npdfjs-document-properties-page-size = Grando de paĝo:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertikala\npdfjs-document-properties-page-size-orientation-landscape = horizontala\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letera\npdfjs-document-properties-page-size-name-legal = Jura\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Rapida tekstaĵa vido:\npdfjs-document-properties-linearized-yes = Jes\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Fermi\n\n## Print\n\npdfjs-print-progress-message = Preparo de dokumento por presi ĝin …\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Nuligi\npdfjs-printing-not-supported = Averto: tiu ĉi retumilo ne plene subtenas presadon.\npdfjs-printing-not-ready = Averto: la PDF dosiero ne estas plene ŝargita por presado.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Montri/kaŝi flankan strion\npdfjs-toggle-sidebar-notification-button =\n    .title = Montri/kaŝi flankan strion (la dokumento enhavas konturon/kunsendaĵojn/tavolojn)\npdfjs-toggle-sidebar-button-label = Montri/kaŝi flankan strion\npdfjs-document-outline-button =\n    .title = Montri la konturon de dokumento (alklaku duoble por faldi/malfaldi ĉiujn elementojn)\npdfjs-document-outline-button-label = Konturo de dokumento\npdfjs-attachments-button =\n    .title = Montri kunsendaĵojn\npdfjs-attachments-button-label = Kunsendaĵojn\npdfjs-layers-button =\n    .title = Montri tavolojn (duoble alklaku por remeti ĉiujn tavolojn en la norman staton)\npdfjs-layers-button-label = Tavoloj\npdfjs-thumbs-button =\n    .title = Montri miniaturojn\npdfjs-thumbs-button-label = Miniaturoj\npdfjs-current-outline-item-button =\n    .title = Trovi nunan konturan elementon\npdfjs-current-outline-item-button-label = Nuna kontura elemento\npdfjs-findbar-button =\n    .title = Serĉi en dokumento\npdfjs-findbar-button-label = Serĉi\npdfjs-additional-layers = Aldonaj tavoloj\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Paĝo { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniaturo de paĝo { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Serĉi\n    .placeholder = Serĉi en dokumento…\npdfjs-find-previous-button =\n    .title = Serĉi la antaŭan aperon de la frazo\npdfjs-find-previous-button-label = Malantaŭen\npdfjs-find-next-button =\n    .title = Serĉi la venontan aperon de la frazo\npdfjs-find-next-button-label = Antaŭen\npdfjs-find-highlight-checkbox = Elstarigi ĉiujn\npdfjs-find-match-case-checkbox-label = Distingi inter majuskloj kaj minuskloj\npdfjs-find-match-diacritics-checkbox-label = Respekti supersignojn\npdfjs-find-entire-word-checkbox-label = Tutaj vortoj\npdfjs-find-reached-top = Komenco de la dokumento atingita, daŭrigado ekde la fino\npdfjs-find-reached-bottom = Fino de la dokumento atingita, daŭrigado ekde la komenco\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } el { $total } kongruo\n       *[other] { $current } el { $total } kongruoj\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Pli ol { $limit } kongruo\n       *[other] Pli ol { $limit } kongruoj\n    }\npdfjs-find-not-found = Frazo ne trovita\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Larĝo de paĝo\npdfjs-page-scale-fit = Adapti paĝon\npdfjs-page-scale-auto = Aŭtomata skalo\npdfjs-page-scale-actual = Reala grando\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Paĝo { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Okazis eraro dum la ŝargado de la PDF dosiero.\npdfjs-invalid-file-error = Nevalida aŭ difektita PDF dosiero.\npdfjs-missing-file-error = Mankas dosiero PDF.\npdfjs-unexpected-response-error = Neatendita respondo de servilo.\npdfjs-rendering-error = Okazis eraro dum la montro de la paĝo.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Prinoto: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Tajpu pasvorton por malfermi tiun ĉi dosieron PDF.\npdfjs-password-invalid = Nevalida pasvorto. Bonvolu provi denove.\npdfjs-password-ok-button = Akcepti\npdfjs-password-cancel-button = Nuligi\npdfjs-web-fonts-disabled = Neaktivaj teksaĵaj tiparoj: ne elbas uzi enmetitajn tiparojn de PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Teksto\npdfjs-editor-color-picker-free-text-input =\n    .title = Ŝanĝi koloron de teksto\npdfjs-editor-free-text-button-label = Teksto\npdfjs-editor-ink-button =\n    .title = Desegni\npdfjs-editor-color-picker-ink-input =\n    .title = Ŝanĝi desegnan koloron\npdfjs-editor-ink-button-label = Desegni\npdfjs-editor-stamp-button =\n    .title = Aldoni aŭ modifi bildojn\npdfjs-editor-stamp-button-label = Aldoni aŭ modifi bildojn\npdfjs-editor-highlight-button =\n    .title = Elstarigi\npdfjs-editor-highlight-button-label = Elstarigi\npdfjs-highlight-floating-button1 =\n    .title = Elstarigi\n    .aria-label = Elstarigi\npdfjs-highlight-floating-button-label = Elstarigi\npdfjs-comment-floating-button =\n    .title = Komenti\n    .aria-label = Komenti\npdfjs-comment-floating-button-label = Komenti\npdfjs-editor-comment-button =\n    .title = Komenti\n    .aria-label = Komenti\npdfjs-editor-comment-button-label = Komenti\npdfjs-editor-signature-button =\n    .title = Aldoni subskribon\npdfjs-editor-signature-button-label = Aldoni subskribon\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Redaktilo de elstaraĵo\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Redaktilo de desegno\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Redaktilo de subskribo: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Redaktilo de bildo\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Forigi desegnon\npdfjs-editor-remove-freetext-button =\n    .title = Forigi tekston\npdfjs-editor-remove-stamp-button =\n    .title = Forigi bildon\npdfjs-editor-remove-highlight-button =\n    .title = Forigi elstaraĵon\npdfjs-editor-remove-signature-button =\n    .title = Forigi subskribon\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Koloro\npdfjs-editor-free-text-size-input = Grando\npdfjs-editor-ink-color-input = Koloro\npdfjs-editor-ink-thickness-input = Dikeco\npdfjs-editor-ink-opacity-input = Maldiafaneco\npdfjs-editor-stamp-add-image-button =\n    .title = Aldoni bildon\npdfjs-editor-stamp-add-image-button-label = Aldoni bildon\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Dikeco\npdfjs-editor-free-highlight-thickness-title =\n    .title = Ŝanĝi dikecon dum elstarigo de netekstaj elementoj\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrolado de subskriboj kaj konservitaj subskriboj\npdfjs-editor-signature-add-signature-button =\n    .title = Aldoni novan subskribon\npdfjs-editor-signature-add-signature-button-label = Aldoni novan subskribon\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Konservita subskribo: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Teksta redaktilo\n    .default-content = Komencu tajpi…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Komenti\n       *[other] Komentoj\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Fermi la flankan strion\n    .aria-label = Fermi la flankan strion\npdfjs-editor-comments-sidebar-close-button-label = Fermi la flankan strion\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Ĉu vi rimarkas ion interesan? Elstarigu tion kaj aldonu komenton.\npdfjs-editor-comments-sidebar-no-comments-link = Pli da informo\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativa teksto\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Redakti alternativan tekston\npdfjs-editor-alt-text-dialog-label = Elektu eblon\npdfjs-editor-alt-text-dialog-description = Alternativa teksto helpas personojn, en la okazoj kiam ili ne povas vidi aŭ ŝargi la bildon.\npdfjs-editor-alt-text-add-description-label = Aldoni priskribon\npdfjs-editor-alt-text-add-description-description = La celo estas unu aŭ du frazoj, kiuj priskribas la temon, etoson aŭ agojn.\npdfjs-editor-alt-text-mark-decorative-label = Marki kiel ornaman\npdfjs-editor-alt-text-mark-decorative-description = Tio ĉi estas uzita por ornamaj bildoj, kiel randoj aŭ fonaj bildoj.\npdfjs-editor-alt-text-cancel-button = Nuligi\npdfjs-editor-alt-text-save-button = Konservi\npdfjs-editor-alt-text-decorative-tooltip = Markita kiel ornama\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Ekzemple: “Juna persono sidiĝas ĉetable por ekmanĝi”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativa teksto\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Supra maldekstra angulo — ŝangi grandon\npdfjs-editor-resizer-top-middle =\n    .aria-label = Supra mezo — ŝanĝi grandon\npdfjs-editor-resizer-top-right =\n    .aria-label = Supran dekstran angulon — ŝanĝi grandon\npdfjs-editor-resizer-middle-right =\n    .aria-label = Dekstra mezo — ŝanĝi grandon\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Malsupra deksta angulo — ŝanĝi grandon\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Malsupra mezo — ŝanĝi grandon\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Malsupra maldekstra angulo — ŝanĝi grandon\npdfjs-editor-resizer-middle-left =\n    .aria-label = Maldekstra mezo — ŝanĝi grandon\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Elstarigi koloron\npdfjs-editor-colorpicker-button =\n    .title = Ŝanĝi koloron\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Elekto de koloroj\npdfjs-editor-colorpicker-yellow =\n    .title = Flava\npdfjs-editor-colorpicker-green =\n    .title = Verda\npdfjs-editor-colorpicker-blue =\n    .title = Blua\npdfjs-editor-colorpicker-pink =\n    .title = Roza\npdfjs-editor-colorpicker-red =\n    .title = Ruĝa\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Montri ĉiujn\npdfjs-editor-highlight-show-all-button =\n    .title = Montri ĉiujn\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Modifi alternativan tekston (priskribo de bildo)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Aldoni alternativan tekston (priskribo de bildo)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skribu vian priskribon ĉi tie…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Mallonga priskribo por personoj kiuj ne povas vidi la bildon kaj por montri kiam la bildo ne ŝargeblas.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Tiu ĉi alternativa teksto estis aŭtomate kreita kaj povus esti malĝusta.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Pli da informo\npdfjs-editor-new-alt-text-create-automatically-button-label = Aŭtomate krei alternativan tekston\npdfjs-editor-new-alt-text-not-now-button = Ne nun\npdfjs-editor-new-alt-text-error-title = Ne eblis aŭtomate krei alternativan tekston\npdfjs-editor-new-alt-text-error-description = Bonvolu skribi vian propran alternativan tekston aŭ provi denove poste.\npdfjs-editor-new-alt-text-error-close-button = Fermi\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Elŝuto de modelo de artefarita intelekto por alternativa teksto ({ $downloadedSize } el { $totalSize } MO)\n    .aria-valuetext = Elŝuto de modelo de artefarita intelekto por alternativa teksto ({ $downloadedSize } el { $totalSize } MO)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativa teksto aldonita\npdfjs-editor-new-alt-text-added-button-label = Alternativa teksto aldonita\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Mankas alternativa teksto\npdfjs-editor-new-alt-text-missing-button-label = Mankas alternativa teksto\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Kontroli alternativan tekston\npdfjs-editor-new-alt-text-to-review-button-label = Kontroli alternativan tekston\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Aŭtomate kreita: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Agordoj por alternativa teksto de bildoj\npdfjs-image-alt-text-settings-button-label = Agordoj por alternativa teksto de bildoj\npdfjs-editor-alt-text-settings-dialog-label = Agordoj por alternativa teksto de bildoj\npdfjs-editor-alt-text-settings-automatic-title = Aŭtomata alternativa teksto\npdfjs-editor-alt-text-settings-create-model-button-label = Aŭtomate krei alternativan tekston\npdfjs-editor-alt-text-settings-create-model-description = Tio ĉi sugestas priskribojn por helpi personojn kiuj ne povas vidi aŭ ŝargi la bildon.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de artefarita intelekto por alternativa teksto ({ $totalSize } MO)\npdfjs-editor-alt-text-settings-ai-model-description = Ĝi funkcias en via aparato, do viaj datumoj restas privataj. Ĝi estas postulata por aŭtomata kreado de alternativa teksto.\npdfjs-editor-alt-text-settings-delete-model-button = Forigi\npdfjs-editor-alt-text-settings-download-model-button = Elŝuti\npdfjs-editor-alt-text-settings-downloading-model-button = Elŝuto…\npdfjs-editor-alt-text-settings-editor-title = Redaktilo de alternativa teksto\npdfjs-editor-alt-text-settings-show-dialog-button-label = Montri redaktilon de alternativa teksto tuj post aldono de bildo\npdfjs-editor-alt-text-settings-show-dialog-description = Tio ĉi helpas vin kontroli ĉu ĉiuj bildoj havas alternativan tekston.\npdfjs-editor-alt-text-settings-close-button = Fermi\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Elstarigo aldonita\npdfjs-editor-freetext-added-alert = Teksto aldonita\npdfjs-editor-ink-added-alert = Desegno aldonita\npdfjs-editor-stamp-added-alert = Bildo aldonita\npdfjs-editor-signature-added-alert = Subskribo aldonita\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Elstaraĵo forigita\npdfjs-editor-undo-bar-message-freetext = Teksto forigita\npdfjs-editor-undo-bar-message-ink = Desegno forigita\npdfjs-editor-undo-bar-message-stamp = Bildo forigita\npdfjs-editor-undo-bar-message-signature = Subskribo forigita\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] unu prinoto forigita\n       *[other] { $count } prinotoj forigitaj\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Malfari\npdfjs-editor-undo-bar-undo-button-label = Malfari\npdfjs-editor-undo-bar-close-button =\n    .title = Fermi\npdfjs-editor-undo-bar-close-button-label = Fermi\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Tiu ĉi fenestro permesas al la uzanto krei subskribon por aldoni al dokumento PDF. La uzanto povas modifi la nomon (kiu estas cetere la alternativa teksto) kaj havas la eblon konservi la subskribon por posta uzo.\npdfjs-editor-add-signature-dialog-title = Aldoni subskribon\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tajpi\n    .title = Tajpi\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Desegni\n    .title = Desegni\npdfjs-editor-add-signature-image-button = Bildo\n    .title = Bildo\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Tajpu vian subskribon\n    .placeholder = Tajpu vian subskribon\npdfjs-editor-add-signature-draw-placeholder = Desegni vian subskribon\npdfjs-editor-add-signature-draw-thickness-range-label = Dikeco\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Dikeco de desegno: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Trenu dosieron ĉi tien por alŝuti ĝin\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Aŭ elektu bildan dosieron\n       *[other] Aŭ elektu bildan dosieron\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Priskribo (alternativa teksto)\npdfjs-editor-add-signature-description-input =\n    .title = Priskribo (alternativa teksto)\npdfjs-editor-add-signature-description-default-when-drawing = Subskribo\npdfjs-editor-add-signature-clear-button-label = Viŝi subskribon\npdfjs-editor-add-signature-clear-button =\n    .title = Viŝi subskribon\npdfjs-editor-add-signature-save-checkbox = Konservi subskribon\npdfjs-editor-add-signature-save-warning-message = Vi atingis la limon de kvin konservitaj subskriboj. Forigi unu por povi konservi pli da.\npdfjs-editor-add-signature-image-upload-error-title = Ne eblis alŝuti bildon\npdfjs-editor-add-signature-image-upload-error-description = Kontrolu vian retaliron aŭ provu alŝuti alian bildon.\npdfjs-editor-add-signature-image-no-data-error-title = Ne eblas konverti tiun ĉi bildon al subskribo\npdfjs-editor-add-signature-image-no-data-error-description = Bonvolu provi alŝuti novan bildon.\npdfjs-editor-add-signature-error-close-button = Fermi\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Nuligi\npdfjs-editor-add-signature-add-button = Aldoni\npdfjs-editor-edit-signature-update-button = Ĝisdatigi\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Modifi komenton\npdfjs-editor-edit-comment-popup-button =\n    .title = Modifi komenton\npdfjs-editor-delete-comment-popup-button-label = Forigi komenton\npdfjs-editor-delete-comment-popup-button =\n    .title = Forigi komenton\npdfjs-show-comment-button =\n    .title = Montri komenton\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Agoj\npdfjs-editor-edit-comment-actions-button =\n    .title = Agoj\npdfjs-editor-edit-comment-close-button-label = Fermi\npdfjs-editor-edit-comment-close-button =\n    .title = Fermi\npdfjs-editor-edit-comment-actions-edit-button-label = Modifi\npdfjs-editor-edit-comment-actions-delete-button-label = Forigi\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Tajpu vian komenton\npdfjs-editor-edit-comment-manager-cancel-button = Nuligi\npdfjs-editor-edit-comment-manager-save-button = Konservi\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Modifi komenton\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Ĝisdatigi\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Aldoni komenton\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Aldoni\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Ektajpi…\npdfjs-editor-edit-comment-dialog-cancel-button = Nuligi\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Modifi komenton\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Forigi konservitan subskribon\npdfjs-editor-delete-signature-button-label1 = Forigi konservitan subskribon\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Modifi priskribon\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Modifi priskribon\n"
  },
  {
    "path": "viewer/locale/es-AR/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Página siguiente\npdfjs-next-button-label = Siguiente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ( { $pageNumber } de { $pagesCount } )\npdfjs-zoom-out-button =\n    .title = Alejar\npdfjs-zoom-out-button-label = Alejar\npdfjs-zoom-in-button =\n    .title = Acercar\npdfjs-zoom-in-button-label = Acercar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Cambiar a modo presentación\npdfjs-presentation-mode-button-label = Modo presentación\npdfjs-open-file-button =\n    .title = Abrir archivo\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Guardar\npdfjs-save-button-label = Guardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descargar\npdfjs-bookmark-button =\n    .title = Página actual (Ver URL de la página actual)\npdfjs-bookmark-button-label = Página actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Herramientas\npdfjs-tools-button-label = Herramientas\npdfjs-first-page-button =\n    .title = Ir a primera página\npdfjs-first-page-button-label = Ir a primera página\npdfjs-last-page-button =\n    .title = Ir a última página\npdfjs-last-page-button-label = Ir a última página\npdfjs-page-rotate-cw-button =\n    .title = Rotar horario\npdfjs-page-rotate-cw-button-label = Rotar horario\npdfjs-page-rotate-ccw-button =\n    .title = Rotar antihorario\npdfjs-page-rotate-ccw-button-label = Rotar antihorario\npdfjs-cursor-text-select-tool-button =\n    .title = Habilitar herramienta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Herramienta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Habilitar herramienta mano\npdfjs-cursor-hand-tool-button-label = Herramienta mano\npdfjs-scroll-page-button =\n    .title = Usar desplazamiento de página\npdfjs-scroll-page-button-label = Desplazamiento de página\npdfjs-scroll-vertical-button =\n    .title = Usar desplazamiento vertical\npdfjs-scroll-vertical-button-label = Desplazamiento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar desplazamiento vertical\npdfjs-scroll-horizontal-button-label = Desplazamiento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar desplazamiento encapsulado\npdfjs-scroll-wrapped-button-label = Desplazamiento encapsulado\npdfjs-spread-none-button =\n    .title = No unir páginas dobles\npdfjs-spread-none-button-label = Sin dobles\npdfjs-spread-odd-button =\n    .title = Unir páginas dobles comenzando con las impares\npdfjs-spread-odd-button-label = Dobles impares\npdfjs-spread-even-button =\n    .title = Unir páginas dobles comenzando con las pares\npdfjs-spread-even-button-label = Dobles pares\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades del documento…\npdfjs-document-properties-button-label = Propiedades del documento…\npdfjs-document-properties-file-name = Nombre de archivo:\npdfjs-document-properties-file-size = Tamaño de archovo:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Asunto:\npdfjs-document-properties-keywords = Palabras clave:\npdfjs-document-properties-creation-date = Fecha de creación:\npdfjs-document-properties-modification-date = Fecha de modificación:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creador:\npdfjs-document-properties-producer = PDF Productor:\npdfjs-document-properties-version = Versión de PDF:\npdfjs-document-properties-page-count = Cantidad de páginas:\npdfjs-document-properties-page-size = Tamaño de página:\npdfjs-document-properties-page-size-unit-inches = en\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = normal\npdfjs-document-properties-page-size-orientation-landscape = apaisado\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista rápida de la Web:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Cerrar\n\n## Print\n\npdfjs-print-progress-message = Preparando documento para imprimir…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Advertencia: La impresión no está totalmente soportada por este navegador.\npdfjs-printing-not-ready = Advertencia: El PDF no está completamente cargado para impresión.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Alternar barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)\npdfjs-toggle-sidebar-button-label = Alternar barra lateral\npdfjs-document-outline-button =\n    .title = Mostrar esquema del documento (doble clic para expandir/colapsar todos los ítems)\npdfjs-document-outline-button-label = Esquema del documento\npdfjs-attachments-button =\n    .title = Mostrar adjuntos\npdfjs-attachments-button-label = Adjuntos\npdfjs-layers-button =\n    .title = Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Buscar elemento de esquema actual\npdfjs-current-outline-item-button-label = Elemento de esquema actual\npdfjs-findbar-button =\n    .title = Buscar en documento\npdfjs-findbar-button-label = Buscar\npdfjs-additional-layers = Capas adicionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Buscar\n    .placeholder = Buscar en documento…\npdfjs-find-previous-button =\n    .title = Buscar la aparición anterior de la frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Buscar la siguiente aparición de la frase\npdfjs-find-next-button-label = Siguiente\npdfjs-find-highlight-checkbox = Resaltar todo\npdfjs-find-match-case-checkbox-label = Coincidir mayúsculas\npdfjs-find-match-diacritics-checkbox-label = Coincidir diacríticos\npdfjs-find-entire-word-checkbox-label = Palabras completas\npdfjs-find-reached-top = Inicio de documento alcanzado, continuando desde abajo\npdfjs-find-reached-bottom = Fin de documento alcanzando, continuando desde arriba\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } coincidencia\n       *[other] { $current } de { $total } coincidencias\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Más de { $limit } coincidencia\n       *[other] Más de { $limit } coincidencias\n    }\npdfjs-find-not-found = Frase no encontrada\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ancho de página\npdfjs-page-scale-fit = Ajustar página\npdfjs-page-scale-auto = Zoom automático\npdfjs-page-scale-actual = Tamaño real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ocurrió un error al cargar el PDF.\npdfjs-invalid-file-error = Archivo PDF no válido o cocrrupto.\npdfjs-missing-file-error = Archivo PDF faltante.\npdfjs-unexpected-response-error = Respuesta del servidor inesperada.\npdfjs-rendering-error = Ocurrió un error al dibujar la página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Anotación]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Ingrese la contraseña para abrir este archivo PDF\npdfjs-password-invalid = Contraseña inválida. Intente nuevamente.\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Tipografía web deshabilitada: no se pueden usar tipos incrustados en PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambiar color del texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Dibujar\npdfjs-editor-color-picker-ink-input =\n    .title = Cambiar color del dibujo\npdfjs-editor-ink-button-label = Dibujar\npdfjs-editor-stamp-button =\n    .title = Agregar o editar imágenes\npdfjs-editor-stamp-button-label = Agregar o editar imágenes\npdfjs-editor-highlight-button =\n    .title = Resaltar\npdfjs-editor-highlight-button-label = Resaltar\npdfjs-highlight-floating-button1 =\n    .title = Resaltar\n    .aria-label = Resaltar\npdfjs-highlight-floating-button-label = Resaltar\npdfjs-comment-floating-button =\n    .title = Comentar\n    .aria-label = Comentar\npdfjs-comment-floating-button-label = Comentar\npdfjs-editor-comment-button =\n    .title = Comentar\n    .aria-label = Comentar\npdfjs-editor-comment-button-label = Comentar\npdfjs-editor-signature-button =\n    .title = Agregar firma\npdfjs-editor-signature-button-label = Agregar firma\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de resaltado\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de dibujos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de firmas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imágenes\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Eliminar dibujo\npdfjs-editor-remove-freetext-button =\n    .title = Eliminar texto\npdfjs-editor-remove-stamp-button =\n    .title = Eliminar imagen\npdfjs-editor-remove-highlight-button =\n    .title = Eliminar resaltado\npdfjs-editor-remove-signature-button =\n    .title = Eliminar firma\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Tamaño\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Espesor\npdfjs-editor-ink-opacity-input = Opacidad\npdfjs-editor-stamp-add-image-button =\n    .title = Agregar una imagen\npdfjs-editor-stamp-add-image-button-label = Agregar una imagen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grosor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambiar el grosor al resaltar elementos que no sean texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controles de firma y firmas guardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Agregar nueva firma\npdfjs-editor-signature-add-signature-button-label = Agregar nueva firma\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firma guardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Comenzar a tipear…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentario\n       *[other] Comentarios\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Cerrar la barra lateral\n    .aria-label = Cerrar la barra lateral\npdfjs-editor-comments-sidebar-close-button-label = Cerrar la barra lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ¿Ve algo digno de mención? Resáltelo y deje un comentario.\npdfjs-editor-comments-sidebar-no-comments-link = Conocer más\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar texto alternativo\npdfjs-editor-alt-text-dialog-label = Eligir una opción\npdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.\npdfjs-editor-alt-text-add-description-label = Agregar una descripción\npdfjs-editor-alt-text-add-description-description = Intente escribir 1 o 2 oraciones que describan el tema, el entorno o las acciones.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativo\npdfjs-editor-alt-text-mark-decorative-description = Esto se usa para imágenes ornamentales, como bordes o marcas de agua.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Guardar\npdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Esquina superior izquierda — cambiar el tamaño\npdfjs-editor-resizer-top-middle =\n    .aria-label = Arriba en el medio — cambiar el tamaño\npdfjs-editor-resizer-top-right =\n    .aria-label = Esquina superior derecha — cambiar el tamaño\npdfjs-editor-resizer-middle-right =\n    .aria-label = Al centro a la derecha — cambiar el tamaño\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Esquina inferior derecha — cambiar el tamaño\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Abajo en el medio — cambiar el tamaño\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Esquina inferior izquierda — cambiar el tamaño\npdfjs-editor-resizer-middle-left =\n    .aria-label = Al centro a la izquierda — cambiar el tamaño\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color de resaltado\npdfjs-editor-colorpicker-button =\n    .title = Cambiar el color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opciones de color\npdfjs-editor-colorpicker-yellow =\n    .title = Amarillo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosado\npdfjs-editor-colorpicker-red =\n    .title = Rojo\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar todo\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar todo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descripción de la imagen)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Agregar texto alternativo (descripción de la imagen)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escribir la descripción aquí…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Descripción corta para las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo fue creado automáticamente y puede ser incorrecto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Conocer más\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternativo automáticamente\npdfjs-editor-new-alt-text-not-now-button = No ahora\npdfjs-editor-new-alt-text-error-title = No se pudo crear el texto alternativo automáticamente\npdfjs-editor-new-alt-text-error-description = Escriba su propio texto alternativo o pruebe nuevamente más tarde.\npdfjs-editor-new-alt-text-error-close-button = Cerrar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Descargando modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texto alternativo agregado\npdfjs-editor-new-alt-text-added-button-label = Texto alternativo agregado\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Falta el texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Calificar el texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automáticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Configuración de texto alternativo de la imagen\npdfjs-image-alt-text-settings-button-label = Configuración de texto alternativo de la imagen\npdfjs-editor-alt-text-settings-dialog-label = Configuración de texto alternativo de la imagen\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automáticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugiere descripciones para ayudar a las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Se ejecuta localmente en el dispositivo para que los datos se mantengan privados. Requerido para texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Borrar\npdfjs-editor-alt-text-settings-download-model-button = Descargar\npdfjs-editor-alt-text-settings-downloading-model-button = Descargando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al agregar una imagen\npdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarse de que todas las imágenes tengan texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Cerrar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Resaltado agregado\npdfjs-editor-freetext-added-alert = Texto agregado\npdfjs-editor-ink-added-alert = Dibujo agregado\npdfjs-editor-stamp-added-alert = Imagen agregada\npdfjs-editor-signature-added-alert = Firma agregada\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Resaltado eliminado\npdfjs-editor-undo-bar-message-freetext = Texto eliminado\npdfjs-editor-undo-bar-message-ink = Dibujo eliminado\npdfjs-editor-undo-bar-message-stamp = Imagen eliminado\npdfjs-editor-undo-bar-message-signature = Firma eliminada\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotación eliminada\n       *[other] { $count } anotaciones eliminadas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Deshacer\npdfjs-editor-undo-bar-undo-button-label = Deshacer\npdfjs-editor-undo-bar-close-button =\n    .title = Cerrar\npdfjs-editor-undo-bar-close-button-label = Cerrar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modal permite al usuario crear una firma para agregar a un documento PDF. El usuario puede editar el nombre (que también sirve como texto alternativo) y opcionalmente guardar la firma para un uso repetido.\npdfjs-editor-add-signature-dialog-title = Agregar una firma\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tipear\n    .title = Tipear\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dibujar\n    .title = Dibujar\npdfjs-editor-add-signature-image-button = Imagen\n    .title = Imagen\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Escribir la firma\n    .placeholder = Escribir la firma\npdfjs-editor-add-signature-draw-placeholder = Dibujar la firma\npdfjs-editor-add-signature-draw-thickness-range-label = Grosor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosor del dibujo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arrastrar un archivo acá para subirlo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] O seleccionar archivos de imágenes\n       *[other] O seleccionar archivos de imágenes\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Firma\npdfjs-editor-add-signature-clear-button-label = Borrar firma\npdfjs-editor-add-signature-clear-button =\n    .title = Borrar firma\npdfjs-editor-add-signature-save-checkbox = Guardar firma\npdfjs-editor-add-signature-save-warning-message = Se alcanzó el límite de 5 firmas guardadas. Elimine una para guardar más.\npdfjs-editor-add-signature-image-upload-error-title = No se pudo subir la imagen\npdfjs-editor-add-signature-image-upload-error-description = Verifique la conexión de red o pruebe con otra imagen.\npdfjs-editor-add-signature-image-no-data-error-title = No se puede convertir esta imagen en una firma\npdfjs-editor-add-signature-image-no-data-error-description = Intente subir una imagen diferente.\npdfjs-editor-add-signature-error-close-button = Cerrar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Agregar\npdfjs-editor-edit-signature-update-button = Actualizar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editar comentario\npdfjs-editor-edit-comment-popup-button =\n    .title = Editar comentario\npdfjs-editor-delete-comment-popup-button-label = Eliminar comentario\npdfjs-editor-delete-comment-popup-button =\n    .title = Eliminar comentario\npdfjs-show-comment-button =\n    .title = Mostrar comentario\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acciones\npdfjs-editor-edit-comment-actions-button =\n    .title = Acciones\npdfjs-editor-edit-comment-close-button-label = Cerrar\npdfjs-editor-edit-comment-close-button =\n    .title = Cerrar\npdfjs-editor-edit-comment-actions-edit-button-label = Editar\npdfjs-editor-edit-comment-actions-delete-button-label = Borrar\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Ingresar un comentario\npdfjs-editor-edit-comment-manager-cancel-button = Cancelar\npdfjs-editor-edit-comment-manager-save-button = Guardar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualizar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Agregar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Agregar\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Empezar a tipear…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancelar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editar comentario\npdfjs-editor-add-comment-button =\n    .title = Agregar comentario\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Eliminar firma guardada\npdfjs-editor-delete-signature-button-label1 = Eliminar firma guardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descripción\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descripción\n"
  },
  {
    "path": "viewer/locale/es-CL/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Página siguiente\npdfjs-next-button-label = Siguiente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Alejar\npdfjs-zoom-out-button-label = Alejar\npdfjs-zoom-in-button =\n    .title = Acercar\npdfjs-zoom-in-button-label = Acercar\npdfjs-zoom-select =\n    .title = Ampliación\npdfjs-presentation-mode-button =\n    .title = Cambiar al modo de presentación\npdfjs-presentation-mode-button-label = Modo de presentación\npdfjs-open-file-button =\n    .title = Abrir archivo\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Guardar\npdfjs-save-button-label = Guardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descargar\npdfjs-bookmark-button =\n    .title = Página actual (Ver URL de la página actual)\npdfjs-bookmark-button-label = Página actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Herramientas\npdfjs-tools-button-label = Herramientas\npdfjs-first-page-button =\n    .title = Ir a la primera página\npdfjs-first-page-button-label = Ir a la primera página\npdfjs-last-page-button =\n    .title = Ir a la última página\npdfjs-last-page-button-label = Ir a la última página\npdfjs-page-rotate-cw-button =\n    .title = Girar a la derecha\npdfjs-page-rotate-cw-button-label = Girar a la derecha\npdfjs-page-rotate-ccw-button =\n    .title = Girar a la izquierda\npdfjs-page-rotate-ccw-button-label = Girar a la izquierda\npdfjs-cursor-text-select-tool-button =\n    .title = Activar la herramienta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Herramienta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar la herramienta de mano\npdfjs-cursor-hand-tool-button-label = Herramienta de mano\npdfjs-scroll-page-button =\n    .title = Usar desplazamiento de página\npdfjs-scroll-page-button-label = Desplazamiento de página\npdfjs-scroll-vertical-button =\n    .title = Usar desplazamiento vertical\npdfjs-scroll-vertical-button-label = Desplazamiento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar desplazamiento horizontal\npdfjs-scroll-horizontal-button-label = Desplazamiento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar desplazamiento en bloque\npdfjs-scroll-wrapped-button-label = Desplazamiento en bloque\npdfjs-spread-none-button =\n    .title = No juntar páginas a modo de libro\npdfjs-spread-none-button-label = Vista de una página\npdfjs-spread-odd-button =\n    .title = Junta las páginas partiendo con una de número impar\npdfjs-spread-odd-button-label = Vista de libro impar\npdfjs-spread-even-button =\n    .title = Junta las páginas partiendo con una de número par\npdfjs-spread-even-button-label = Vista de libro par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades del documento…\npdfjs-document-properties-button-label = Propiedades del documento…\npdfjs-document-properties-file-name = Nombre de archivo:\npdfjs-document-properties-file-size = Tamaño del archivo:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Asunto:\npdfjs-document-properties-keywords = Palabras clave:\npdfjs-document-properties-creation-date = Fecha de creación:\npdfjs-document-properties-modification-date = Fecha de modificación:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creador:\npdfjs-document-properties-producer = Productor del PDF:\npdfjs-document-properties-version = Versión de PDF:\npdfjs-document-properties-page-count = Cantidad de páginas:\npdfjs-document-properties-page-size = Tamaño de la página:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Oficio\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista rápida en Web:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Cerrar\n\n## Print\n\npdfjs-print-progress-message = Preparando documento para impresión…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Advertencia: Imprimir no está soportado completamente por este navegador.\npdfjs-printing-not-ready = Advertencia: El PDF no está completamente cargado para ser impreso.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Cambiar barra lateral (índice de contenidos del documento/adjuntos/capas)\npdfjs-toggle-sidebar-button-label = Mostrar u ocultar la barra lateral\npdfjs-document-outline-button =\n    .title = Mostrar esquema del documento (doble clic para expandir/contraer todos los elementos)\npdfjs-document-outline-button-label = Esquema del documento\npdfjs-attachments-button =\n    .title = Mostrar adjuntos\npdfjs-attachments-button-label = Adjuntos\npdfjs-layers-button =\n    .title = Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Buscar elemento de esquema actual\npdfjs-current-outline-item-button-label = Elemento de esquema actual\npdfjs-findbar-button =\n    .title = Buscar en el documento\npdfjs-findbar-button-label = Buscar\npdfjs-additional-layers = Capas adicionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de la página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Encontrar\n    .placeholder = Encontrar en el documento…\npdfjs-find-previous-button =\n    .title = Buscar la aparición anterior de la frase\npdfjs-find-previous-button-label = Previo\npdfjs-find-next-button =\n    .title = Buscar la siguiente aparición de la frase\npdfjs-find-next-button-label = Siguiente\npdfjs-find-highlight-checkbox = Destacar todos\npdfjs-find-match-case-checkbox-label = Coincidir mayús./minús.\npdfjs-find-match-diacritics-checkbox-label = Coincidir diacríticos\npdfjs-find-entire-word-checkbox-label = Palabras completas\npdfjs-find-reached-top = Se alcanzó el inicio del documento, continuando desde el final\npdfjs-find-reached-bottom = Se alcanzó el final del documento, continuando desde el inicio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Coincidencia { $current } de { $total }\n       *[other] Coincidencia { $current } de { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Más de { $limit } coincidencia\n       *[other] Más de { $limit } coincidencias\n    }\npdfjs-find-not-found = Frase no encontrada\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ancho de página\npdfjs-page-scale-fit = Ajuste de página\npdfjs-page-scale-auto = Aumento automático\npdfjs-page-scale-actual = Tamaño actual\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ocurrió un error al cargar el PDF.\npdfjs-invalid-file-error = Archivo PDF inválido o corrupto.\npdfjs-missing-file-error = Falta el archivo PDF.\npdfjs-unexpected-response-error = Respuesta del servidor inesperada.\npdfjs-rendering-error = Ocurrió un error al renderizar la página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Anotación]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Ingresa la contraseña para abrir este archivo PDF.\npdfjs-password-invalid = Contraseña inválida. Por favor, vuelve a intentarlo.\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Las tipografías web están desactivadas: imposible usar las fuentes PDF embebidas.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambiar color del texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Dibujar\npdfjs-editor-color-picker-ink-input =\n    .title = Cambiar color del dibujo\npdfjs-editor-ink-button-label = Dibujar\npdfjs-editor-stamp-button =\n    .title = Añadir o editar imágenes\npdfjs-editor-stamp-button-label = Añadir o editar imágenes\npdfjs-editor-highlight-button =\n    .title = Destacar\npdfjs-editor-highlight-button-label = Destacar\npdfjs-highlight-floating-button1 =\n    .title = Destacar\n    .aria-label = Destacar\npdfjs-highlight-floating-button-label = Destacar\npdfjs-comment-floating-button =\n    .title = Comentario\n    .aria-label = Comentario\npdfjs-comment-floating-button-label = Comentario\npdfjs-editor-comment-button =\n    .title = Comentar\n    .aria-label = Comentar\npdfjs-editor-comment-button-label = Comentar\npdfjs-editor-signature-button =\n    .title = Añadir firma\npdfjs-editor-signature-button-label = Añadir firma\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de destacados\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de dibujos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de firmas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imágenes\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Eliminar dibujo\npdfjs-editor-remove-freetext-button =\n    .title = Eliminar texto\npdfjs-editor-remove-stamp-button =\n    .title = Eliminar imagen\npdfjs-editor-remove-highlight-button =\n    .title = Quitar resaltado\npdfjs-editor-remove-signature-button =\n    .title = Eliminar firma\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Tamaño\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Grosor\npdfjs-editor-ink-opacity-input = Opacidad\npdfjs-editor-stamp-add-image-button =\n    .title = Añadir imagen\npdfjs-editor-stamp-add-image-button-label = Añadir imagen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grosor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambia el grosor al resaltar elementos que no sean texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controles de firma y firmas guardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Añadir nueva firma\npdfjs-editor-signature-add-signature-button-label = Añadir nueva firma\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firma guardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Empieza a escribir…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentario\n       *[other] Comentarios\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Cerrar la barra lateral\n    .aria-label = Cerrar la barra lateral\npdfjs-editor-comments-sidebar-close-button-label = Cerrar la barra lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ¿Ves algo interesante? Resáltalo y deja un comentario.\npdfjs-editor-comments-sidebar-no-comments-link = Más información\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar texto alternativo\npdfjs-editor-alt-text-dialog-label = Elige una opción\npdfjs-editor-alt-text-dialog-description = El texto alternativo (alt text) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.\npdfjs-editor-alt-text-add-description-label = Añade una descripción\npdfjs-editor-alt-text-add-description-description = Intenta escribir 1 o 2 oraciones que describan el tema, el ambiente o las acciones.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa\npdfjs-editor-alt-text-mark-decorative-description = Se utiliza para imágenes ornamentales, como bordes o marcas de agua.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Guardar\npdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Esquina superior izquierda — cambiar el tamaño\npdfjs-editor-resizer-top-middle =\n    .aria-label = Borde superior en el medio — cambiar el tamaño\npdfjs-editor-resizer-top-right =\n    .aria-label = Esquina superior derecha — cambiar el tamaño\npdfjs-editor-resizer-middle-right =\n    .aria-label = Borde derecho en el medio — cambiar el tamaño\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Esquina inferior derecha — cambiar el tamaño\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Borde inferior en el medio — cambiar el tamaño\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Esquina inferior izquierda — cambiar el tamaño\npdfjs-editor-resizer-middle-left =\n    .aria-label = Borde izquierdo en el medio — cambiar el tamaño\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color de resaltado\npdfjs-editor-colorpicker-button =\n    .title = Cambiar color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opciones de color\npdfjs-editor-colorpicker-yellow =\n    .title = Amarillo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Rojo\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar todo\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar todo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descripción de la imagen)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Añadir texto alternativo (descripción de la imagen)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escribe tu descripción aquí…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve descripción para las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo fue creado automáticamente y puede ser incorrecto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Aprender más\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternativo automáticamente\npdfjs-editor-new-alt-text-not-now-button = Ahora no\npdfjs-editor-new-alt-text-error-title = No se pudo crear el texto alternativo automáticamente\npdfjs-editor-new-alt-text-error-description = Escribe tu propio texto alternativo o vuelve a intentarlo más tarde.\npdfjs-editor-new-alt-text-error-close-button = Cerrar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Se añadió el texto alternativo\npdfjs-editor-new-alt-text-added-button-label = Se añadió el texto alternativo\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Falta el texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revisar el texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automáticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ajustes del texto alternativo de la imagen\npdfjs-image-alt-text-settings-button-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-dialog-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automáticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugiere descripciones para ayudar a las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Se ejecuta localmente en tu dispositivo para que tus datos permanezcan privados. Necesario para el texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Eliminar\npdfjs-editor-alt-text-settings-download-model-button = Descargar\npdfjs-editor-alt-text-settings-downloading-model-button = Bajando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen\npdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarte de que todas tus imágenes tengan texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Cerrar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Destacado añadido\npdfjs-editor-freetext-added-alert = Texto añadido\npdfjs-editor-ink-added-alert = Dibujo añadido\npdfjs-editor-stamp-added-alert = Imagen añadida\npdfjs-editor-signature-added-alert = Firma añadida\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Resaltado eliminado\npdfjs-editor-undo-bar-message-freetext = Texto eliminado\npdfjs-editor-undo-bar-message-ink = Dibujo eliminado\npdfjs-editor-undo-bar-message-stamp = Imagen eliminada\npdfjs-editor-undo-bar-message-signature = Firma eliminada\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotación eliminada\n       *[other] { $count } anotaciones eliminadas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Deshacer\npdfjs-editor-undo-bar-undo-button-label = Deshacer\npdfjs-editor-undo-bar-close-button =\n    .title = Cerrar\npdfjs-editor-undo-bar-close-button-label = Cerrar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modal permite al usuario crear una firma para agregarla a un documento PDF. El usuario puede editar el nombre (que también sirve como texto alternativo) y, opcionalmente, guardar la firma para usarla nuevamente.\npdfjs-editor-add-signature-dialog-title = Añadir una firma\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Escribir\n    .title = Escribir\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dibujar\n    .title = Dibujar\npdfjs-editor-add-signature-image-button = Imagen\n    .title = Imagen\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Escribe tu firma\n    .placeholder = Escribe tu firma\npdfjs-editor-add-signature-draw-placeholder = Dibuja tu firma\npdfjs-editor-add-signature-draw-thickness-range-label = Grosor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosor del dibujo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arrastre un archivo aquí para cargarlo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] O elige archivos de imagen\n       *[other] O busca archivos de imagen\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Firma\npdfjs-editor-add-signature-clear-button-label = Limpiar firma\npdfjs-editor-add-signature-clear-button =\n    .title = Limpiar firma\npdfjs-editor-add-signature-save-checkbox = Guardar firma\npdfjs-editor-add-signature-save-warning-message = Has alcanzado el límite de 5 firmas guardadas. Elimina una para guardar más.\npdfjs-editor-add-signature-image-upload-error-title = No se pudo subir la imagen\npdfjs-editor-add-signature-image-upload-error-description = Verifica tu conexión de red o prueba con otra imagen.\npdfjs-editor-add-signature-image-no-data-error-title = No se puede convertir esta imagen en una firma\npdfjs-editor-add-signature-image-no-data-error-description = Por favor, intenta cargar una imagen diferente.\npdfjs-editor-add-signature-error-close-button = Cerrar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Añadir\npdfjs-editor-edit-signature-update-button = Actualizar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editar comentario\npdfjs-editor-edit-comment-popup-button =\n    .title = Editar comentario\npdfjs-editor-delete-comment-popup-button-label = Eliminar comentario\npdfjs-editor-delete-comment-popup-button =\n    .title = Eliminar comentario\npdfjs-show-comment-button =\n    .title = Mostrar comentario\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acciones\npdfjs-editor-edit-comment-actions-button =\n    .title = Acciones\npdfjs-editor-edit-comment-close-button-label = Cerrar\npdfjs-editor-edit-comment-close-button =\n    .title = Cerrar\npdfjs-editor-edit-comment-actions-edit-button-label = Editar\npdfjs-editor-edit-comment-actions-delete-button-label = Eliminar\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Ingresa tu comentario\npdfjs-editor-edit-comment-manager-cancel-button = Cancelar\npdfjs-editor-edit-comment-manager-save-button = Guardar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualizar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Añadir comentario\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Añadir\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Empieza a escribir…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancelar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editar comentario\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Eliminar firma guardada\npdfjs-editor-delete-signature-button-label1 = Eliminar firma guardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descripción\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descripción\n"
  },
  {
    "path": "viewer/locale/es-ES/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Página siguiente\npdfjs-next-button-label = Siguiente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Reducir\npdfjs-zoom-out-button-label = Reducir\npdfjs-zoom-in-button =\n    .title = Aumentar\npdfjs-zoom-in-button-label = Aumentar\npdfjs-zoom-select =\n    .title = Tamaño\npdfjs-presentation-mode-button =\n    .title = Cambiar al modo presentación\npdfjs-presentation-mode-button-label = Modo presentación\npdfjs-open-file-button =\n    .title = Abrir archivo\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Guardar\npdfjs-save-button-label = Guardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descargar\npdfjs-bookmark-button =\n    .title = Página actual (Ver URL de la página actual)\npdfjs-bookmark-button-label = Página actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Herramientas\npdfjs-tools-button-label = Herramientas\npdfjs-first-page-button =\n    .title = Ir a la primera página\npdfjs-first-page-button-label = Ir a la primera página\npdfjs-last-page-button =\n    .title = Ir a la última página\npdfjs-last-page-button-label = Ir a la última página\npdfjs-page-rotate-cw-button =\n    .title = Rotar en sentido horario\npdfjs-page-rotate-cw-button-label = Rotar en sentido horario\npdfjs-page-rotate-ccw-button =\n    .title = Rotar en sentido antihorario\npdfjs-page-rotate-ccw-button-label = Rotar en sentido antihorario\npdfjs-cursor-text-select-tool-button =\n    .title = Activar herramienta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Herramienta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar herramienta de mano\npdfjs-cursor-hand-tool-button-label = Herramienta de mano\npdfjs-scroll-page-button =\n    .title = Usar desplazamiento de página\npdfjs-scroll-page-button-label = Desplazamiento de página\npdfjs-scroll-vertical-button =\n    .title = Usar desplazamiento vertical\npdfjs-scroll-vertical-button-label = Desplazamiento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar desplazamiento horizontal\npdfjs-scroll-horizontal-button-label = Desplazamiento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar desplazamiento en bloque\npdfjs-scroll-wrapped-button-label = Desplazamiento en bloque\npdfjs-spread-none-button =\n    .title = No juntar páginas en vista de libro\npdfjs-spread-none-button-label = Vista de libro\npdfjs-spread-odd-button =\n    .title = Juntar las páginas partiendo de una con número impar\npdfjs-spread-odd-button-label = Vista de libro impar\npdfjs-spread-even-button =\n    .title = Juntar las páginas partiendo de una con número par\npdfjs-spread-even-button-label = Vista de libro par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades del documento…\npdfjs-document-properties-button-label = Propiedades del documento…\npdfjs-document-properties-file-name = Nombre de archivo:\npdfjs-document-properties-file-size = Tamaño de archivo:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Asunto:\npdfjs-document-properties-keywords = Palabras clave:\npdfjs-document-properties-creation-date = Fecha de creación:\npdfjs-document-properties-modification-date = Fecha de modificación:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creador:\npdfjs-document-properties-producer = Productor PDF:\npdfjs-document-properties-version = Versión PDF:\npdfjs-document-properties-page-count = Número de páginas:\npdfjs-document-properties-page-size = Tamaño de la página:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista rápida de la web:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Cerrar\n\n## Print\n\npdfjs-print-progress-message = Preparando documento para impresión…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Advertencia: Imprimir no está totalmente soportado por este navegador.\npdfjs-printing-not-ready = Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Cambiar barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)\npdfjs-toggle-sidebar-button-label = Cambiar barra lateral\npdfjs-document-outline-button =\n    .title = Mostrar resumen del documento (doble clic para expandir/contraer todos los elementos)\npdfjs-document-outline-button-label = Resumen de documento\npdfjs-attachments-button =\n    .title = Mostrar adjuntos\npdfjs-attachments-button-label = Adjuntos\npdfjs-layers-button =\n    .title = Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Encontrar elemento de esquema actual\npdfjs-current-outline-item-button-label = Elemento de esquema actual\npdfjs-findbar-button =\n    .title = Buscar en el documento\npdfjs-findbar-button-label = Buscar\npdfjs-additional-layers = Capas adicionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de la página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Buscar\n    .placeholder = Buscar en el documento…\npdfjs-find-previous-button =\n    .title = Encontrar la anterior aparición de la frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Encontrar la siguiente aparición de esta frase\npdfjs-find-next-button-label = Siguiente\npdfjs-find-highlight-checkbox = Resaltar todos\npdfjs-find-match-case-checkbox-label = Coincidencia de mayús./minús.\npdfjs-find-match-diacritics-checkbox-label = Coincidir diacríticos\npdfjs-find-entire-word-checkbox-label = Palabras completas\npdfjs-find-reached-top = Se alcanzó el inicio del documento, se continúa desde el final\npdfjs-find-reached-bottom = Se alcanzó el final del documento, se continúa desde el inicio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } coincidencia\n       *[other] { $current } de { $total } coincidencias\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Más de { $limit } coincidencia\n       *[other] Más de { $limit } coincidencias\n    }\npdfjs-find-not-found = Frase no encontrada\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Anchura de la página\npdfjs-page-scale-fit = Ajuste de la página\npdfjs-page-scale-auto = Tamaño automático\npdfjs-page-scale-actual = Tamaño real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ocurrió un error al cargar el PDF.\npdfjs-invalid-file-error = Fichero PDF no válido o corrupto.\npdfjs-missing-file-error = No hay fichero PDF.\npdfjs-unexpected-response-error = Respuesta inesperada del servidor.\npdfjs-rendering-error = Ocurrió un error al renderizar la página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotación { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Introduzca la contraseña para abrir este archivo PDF.\npdfjs-password-invalid = Contraseña no válida. Vuelva a intentarlo.\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambiar el color del texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Dibujar\npdfjs-editor-color-picker-ink-input =\n    .title = Cambiar el color del dibujo\npdfjs-editor-ink-button-label = Dibujar\npdfjs-editor-stamp-button =\n    .title = Añadir o editar imágenes\npdfjs-editor-stamp-button-label = Añadir o editar imágenes\npdfjs-editor-highlight-button =\n    .title = Resaltar\npdfjs-editor-highlight-button-label = Resaltar\npdfjs-highlight-floating-button1 =\n    .title = Resaltar\n    .aria-label = Resaltar\npdfjs-highlight-floating-button-label = Resaltar\npdfjs-comment-floating-button =\n    .title = Comentario\n    .aria-label = Comentario\npdfjs-comment-floating-button-label = Comentario\npdfjs-editor-comment-button =\n    .title = Comentario\n    .aria-label = Comentario\npdfjs-editor-comment-button-label = Comentario\npdfjs-editor-signature-button =\n    .title = Añadir firma\npdfjs-editor-signature-button-label = Añadir firma\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de resaltado\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de dibujos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de firmas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imágenes\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Eliminar dibujo\npdfjs-editor-remove-freetext-button =\n    .title = Eliminar texto\npdfjs-editor-remove-stamp-button =\n    .title = Eliminar imagen\npdfjs-editor-remove-highlight-button =\n    .title = Quitar resaltado\npdfjs-editor-remove-signature-button =\n    .title = Eliminar firma\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Tamaño\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Grosor\npdfjs-editor-ink-opacity-input = Opacidad\npdfjs-editor-stamp-add-image-button =\n    .title = Añadir imagen\npdfjs-editor-stamp-add-image-button-label = Añadir imagen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grosor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambiar el grosor al resaltar elementos que no sean texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controles de firma y firmas guardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Añadir nueva firma\npdfjs-editor-signature-add-signature-button-label = Añadir nueva firma\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firma guardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Empiece a escribir…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentario\n       *[other] Comentarios\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Cerrar la barra lateral\n    .aria-label = Cerrar la barra lateral\npdfjs-editor-comments-sidebar-close-button-label = Cerrar la barra lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ¿Ve algo interesante? Resáltelo y deje un comentario.\npdfjs-editor-comments-sidebar-no-comments-link = Saber más\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar el texto alternativo\npdfjs-editor-alt-text-dialog-label = Eligir una opción\npdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.\npdfjs-editor-alt-text-add-description-label = Añadir una descripción\npdfjs-editor-alt-text-add-description-description = Intente escribir 1 o 2 frases que describan el tema, el entorno o las acciones.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa\npdfjs-editor-alt-text-mark-decorative-description = Se utiliza para imágenes ornamentales, como bordes o marcas de agua.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Guardar\npdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Esquina superior izquierda — redimensionar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Borde superior en el medio — redimensionar\npdfjs-editor-resizer-top-right =\n    .aria-label = Esquina superior derecha — redimensionar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Borde derecho en el medio — redimensionar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Esquina inferior derecha — redimensionar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Borde inferior en el medio — redimensionar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Esquina inferior izquierda — redimensionar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Borde izquierdo en el medio — redimensionar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color de resaltado\npdfjs-editor-colorpicker-button =\n    .title = Cambiar color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opciones de color\npdfjs-editor-colorpicker-yellow =\n    .title = Amarillo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Rojo\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar todo\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar todo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descripción de la imagen)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Añadir texto alternativo (descripción de la imagen)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escribir la descripción aquí…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve descripción para las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo fue creado automáticamente y puede ser inexacto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saber más\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternativo automáticamente\npdfjs-editor-new-alt-text-not-now-button = Ahora no\npdfjs-editor-new-alt-text-error-title = No se ha podido crear el texto alternativo automáticamente\npdfjs-editor-new-alt-text-error-description = Escriba su propio texto alternativo o inténtelo de nuevo más tarde.\npdfjs-editor-new-alt-text-error-close-button = Cerrar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Se añadió el texto alternativo\npdfjs-editor-new-alt-text-added-button-label = Se añadió el texto alternativo\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Falta el texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Falta el texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revisar el texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automáticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ajustes del texto alternativo de la imagen\npdfjs-image-alt-text-settings-button-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-dialog-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automáticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugiere descripciones para ayudar a las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Se ejecuta localmente en el dispositivo para que los datos se mantengan privados. Requerido para texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Eliminar\npdfjs-editor-alt-text-settings-download-model-button = Descargar\npdfjs-editor-alt-text-settings-downloading-model-button = Descargando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen\npdfjs-editor-alt-text-settings-show-dialog-description = Le ayuda a asegurarse de que todas sus imágenes tengan texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Cerrar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Resaltado añadido\npdfjs-editor-freetext-added-alert = Texto añadido\npdfjs-editor-ink-added-alert = Dibujo añadido\npdfjs-editor-stamp-added-alert = Imagen añadida\npdfjs-editor-signature-added-alert = Firma añadida\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Resaltado eliminado\npdfjs-editor-undo-bar-message-freetext = Texto eliminado\npdfjs-editor-undo-bar-message-ink = Dibujo eliminado\npdfjs-editor-undo-bar-message-stamp = Imagen eliminada\npdfjs-editor-undo-bar-message-signature = Firma eliminada\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotación eliminada\n       *[other] { $count } anotaciones eliminadas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Deshacer\npdfjs-editor-undo-bar-undo-button-label = Deshacer\npdfjs-editor-undo-bar-close-button =\n    .title = Cerrar\npdfjs-editor-undo-bar-close-button-label = Cerrar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modal permite al usuario crear una firma para añadirla a un documento PDF. El usuario puede editar el nombre (que también sirve como texto alternativo) y, opcionalmente, guardar la firma para usarla nuevamente.\npdfjs-editor-add-signature-dialog-title = Añadir una firma\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Escribir\n    .title = Escribir\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dibujar\n    .title = Dibujar\npdfjs-editor-add-signature-image-button = Imagen\n    .title = Imagen\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Escriba su firma\n    .placeholder = Escriba su firma\npdfjs-editor-add-signature-draw-placeholder = Dibuje su firma\npdfjs-editor-add-signature-draw-thickness-range-label = Grosor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosor del dibujo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arrastre un archivo aquí para cargarlo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] O seleccione archivos de imágenes\n       *[other] O seleccione archivos de imágenes\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Firma\npdfjs-editor-add-signature-clear-button-label = Borrar firma\npdfjs-editor-add-signature-clear-button =\n    .title = Borrar firma\npdfjs-editor-add-signature-save-checkbox = Guardar firma\npdfjs-editor-add-signature-save-warning-message = Ha alcanzado el límite de 5 firmas guardadas. Elimine una para guardar más.\npdfjs-editor-add-signature-image-upload-error-title = No se ha podido subir la imagen\npdfjs-editor-add-signature-image-upload-error-description = Compruebe su conexión de red o pruebe con otra imagen.\npdfjs-editor-add-signature-image-no-data-error-title = No se puede convertir esta imagen en una firma\npdfjs-editor-add-signature-image-no-data-error-description = Por favor, intente cargar una imagen diferente.\npdfjs-editor-add-signature-error-close-button = Cerrar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Añadir\npdfjs-editor-edit-signature-update-button = Actualizar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editar comentario\npdfjs-editor-edit-comment-popup-button =\n    .title = Editar comentario\npdfjs-editor-delete-comment-popup-button-label = Eliminar comentario\npdfjs-editor-delete-comment-popup-button =\n    .title = Eliminar comentario\npdfjs-show-comment-button =\n    .title = Mostrar comentario\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acciones\npdfjs-editor-edit-comment-actions-button =\n    .title = Acciones\npdfjs-editor-edit-comment-close-button-label = Cerrar\npdfjs-editor-edit-comment-close-button =\n    .title = Cerrar\npdfjs-editor-edit-comment-actions-edit-button-label = Editar\npdfjs-editor-edit-comment-actions-delete-button-label = Eliminar\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Introduzca su comentario\npdfjs-editor-edit-comment-manager-cancel-button = Cancelar\npdfjs-editor-edit-comment-manager-save-button = Guardar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualizar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Añadir comentario\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Añadir\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Empezar a escribir…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancelar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editar comentario\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Eliminar firma guardada\npdfjs-editor-delete-signature-button-label1 = Eliminar firma guardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descripción\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descripción\n"
  },
  {
    "path": "viewer/locale/es-MX/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Página siguiente\npdfjs-next-button-label = Siguiente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Reducir\npdfjs-zoom-out-button-label = Reducir\npdfjs-zoom-in-button =\n    .title = Aumentar\npdfjs-zoom-in-button-label = Aumentar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Cambiar al modo presentación\npdfjs-presentation-mode-button-label = Modo presentación\npdfjs-open-file-button =\n    .title = Abrir archivo\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Guardar\npdfjs-save-button-label = Guardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descargar\npdfjs-bookmark-button =\n    .title = Página actual (Ver URL de la página actual)\npdfjs-bookmark-button-label = Página actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Herramientas\npdfjs-tools-button-label = Herramientas\npdfjs-first-page-button =\n    .title = Ir a la primera página\npdfjs-first-page-button-label = Ir a la primera página\npdfjs-last-page-button =\n    .title = Ir a la última página\npdfjs-last-page-button-label = Ir a la última página\npdfjs-page-rotate-cw-button =\n    .title = Girar a la derecha\npdfjs-page-rotate-cw-button-label = Girar a la derecha\npdfjs-page-rotate-ccw-button =\n    .title = Girar a la izquierda\npdfjs-page-rotate-ccw-button-label = Girar a la izquierda\npdfjs-cursor-text-select-tool-button =\n    .title = Activar la herramienta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Herramienta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar la herramienta de mano\npdfjs-cursor-hand-tool-button-label = Herramienta de mano\npdfjs-scroll-page-button =\n    .title = Usar desplazamiento de página\npdfjs-scroll-page-button-label = Desplazamiento de página\npdfjs-scroll-vertical-button =\n    .title = Usar desplazamiento vertical\npdfjs-scroll-vertical-button-label = Desplazamiento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar desplazamiento horizontal\npdfjs-scroll-horizontal-button-label = Desplazamiento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar desplazamiento encapsulado\npdfjs-scroll-wrapped-button-label = Desplazamiento encapsulado\npdfjs-spread-none-button =\n    .title = No unir páginas separadas\npdfjs-spread-none-button-label = Vista de una página\npdfjs-spread-odd-button =\n    .title = Unir las páginas partiendo con una de número impar\npdfjs-spread-odd-button-label = Vista de libro impar\npdfjs-spread-even-button =\n    .title = Juntar las páginas partiendo con una de número par\npdfjs-spread-even-button-label = Vista de libro par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades del documento…\npdfjs-document-properties-button-label = Propiedades del documento…\npdfjs-document-properties-file-name = Nombre del archivo:\npdfjs-document-properties-file-size = Tamaño del archivo:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Asunto:\npdfjs-document-properties-keywords = Palabras claves:\npdfjs-document-properties-creation-date = Fecha de creación:\npdfjs-document-properties-modification-date = Fecha de modificación:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creador:\npdfjs-document-properties-producer = Productor PDF:\npdfjs-document-properties-version = Versión PDF:\npdfjs-document-properties-page-count = Número de páginas:\npdfjs-document-properties-page-size = Tamaño de la página:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Oficio\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista rápida de la web:\npdfjs-document-properties-linearized-yes = Sí\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Cerrar\n\n## Print\n\npdfjs-print-progress-message = Preparando documento para impresión…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Advertencia: La impresión no esta completamente soportada por este navegador.\npdfjs-printing-not-ready = Advertencia: El PDF no cargo completamente para impresión.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Cambiar barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Alternar barra lateral (el documento contiene esquemas/adjuntos/capas)\npdfjs-toggle-sidebar-button-label = Cambiar barra lateral\npdfjs-document-outline-button =\n    .title = Mostrar esquema del documento (doble clic para expandir/contraer todos los elementos)\npdfjs-document-outline-button-label = Esquema del documento\npdfjs-attachments-button =\n    .title = Mostrar adjuntos\npdfjs-attachments-button-label = Adjuntos\npdfjs-layers-button =\n    .title = Mostrar capas (doble clic para restablecer todas las capas al estado predeterminado)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Buscar elemento de esquema actual\npdfjs-current-outline-item-button-label = Elemento de esquema actual\npdfjs-findbar-button =\n    .title = Buscar en el documento\npdfjs-findbar-button-label = Buscar\npdfjs-additional-layers = Capas adicionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de la página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Buscar\n    .placeholder = Buscar en el documento…\npdfjs-find-previous-button =\n    .title = Ir a la anterior frase encontrada\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Ir a la siguiente frase encontrada\npdfjs-find-next-button-label = Siguiente\npdfjs-find-highlight-checkbox = Resaltar todo\npdfjs-find-match-case-checkbox-label = Coincidir con mayúsculas y minúsculas\npdfjs-find-match-diacritics-checkbox-label = Coincidir diacríticos\npdfjs-find-entire-word-checkbox-label = Palabras completas\npdfjs-find-reached-top = Se alcanzó el inicio del documento, se buscará al final\npdfjs-find-reached-bottom = Se alcanzó el final del documento, se buscará al inicio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } coincidencia\n       *[other] { $current } de { $total } coincidencias\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Más de { $limit } coincidencia\n       *[other] Más de { $limit } coincidencias\n    }\npdfjs-find-not-found = No se encontró la frase\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ancho de página\npdfjs-page-scale-fit = Ajustar página\npdfjs-page-scale-auto = Zoom automático\npdfjs-page-scale-actual = Tamaño real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Un error ocurrió al cargar el PDF.\npdfjs-invalid-file-error = Archivo PDF invalido o dañado.\npdfjs-missing-file-error = Archivo PDF no encontrado.\npdfjs-unexpected-response-error = Respuesta inesperada del servidor.\npdfjs-rendering-error = Un error ocurrió al renderizar la página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } anotación]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Ingresa la contraseña para abrir este archivo PDF.\npdfjs-password-invalid = Contraseña inválida. Por favor intenta de nuevo.\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Las fuentes web están desactivadas: es imposible usar las fuentes PDF embebidas.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambiar el color del texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Dibujar\npdfjs-editor-color-picker-ink-input =\n    .title = Cambiar el color del dibujo\npdfjs-editor-ink-button-label = Dibujar\npdfjs-editor-stamp-button =\n    .title = Agregar o editar imágenes\npdfjs-editor-stamp-button-label = Agregar o editar imágenes\npdfjs-editor-highlight-button =\n    .title = Destacar\npdfjs-editor-highlight-button-label = Destacar\npdfjs-highlight-floating-button1 =\n    .title = Destacados\n    .aria-label = Destacados\npdfjs-highlight-floating-button-label = Destacados\npdfjs-comment-floating-button =\n    .title = Comentario\n    .aria-label = Comentario\npdfjs-comment-floating-button-label = Comentario\npdfjs-editor-comment-button =\n    .title = Comentario\n    .aria-label = Comentario\npdfjs-editor-comment-button-label = Comentario\npdfjs-editor-signature-button =\n    .title = Agregar firma\npdfjs-editor-signature-button-label = Añadir firma\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de destacados\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de dibujos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de firmas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imágenes\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Eliminar dibujo\npdfjs-editor-remove-freetext-button =\n    .title = Eliminar texto\npdfjs-editor-remove-stamp-button =\n    .title = Eliminar imagen\npdfjs-editor-remove-highlight-button =\n    .title = Eliminar destacado\npdfjs-editor-remove-signature-button =\n    .title = Eliminar firma\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Tamaño\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Grossor\npdfjs-editor-ink-opacity-input = Opacidad\npdfjs-editor-stamp-add-image-button =\n    .title = Agregar imagen\npdfjs-editor-stamp-add-image-button-label = Agregar imagen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Espesor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambiar el grosor al resaltar elementos que no sean texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controles de firma y firmas guardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Agregar nueva firma\npdfjs-editor-signature-add-signature-button-label = Agregar nueva firma\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firma guardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Comenzar a escribir…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentario\n       *[other] Comentarios\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Cerrar la barra lateral\n    .aria-label = Cerrar la barra lateral\npdfjs-editor-comments-sidebar-close-button-label = Cerrar la barra lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ¿Ves algo interesante? Resáltalo y deja un comentario.\npdfjs-editor-comments-sidebar-no-comments-link = Saber más\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar texto alternativo\npdfjs-editor-alt-text-dialog-label = Elige una opción\npdfjs-editor-alt-text-dialog-description = El texto alternativo (texto alternativo) ayuda cuando las personas no pueden ver la imagen o cuando no se carga.\npdfjs-editor-alt-text-add-description-label = Añadir una descripción\npdfjs-editor-alt-text-add-description-description = Intente escribir 1 o 2 oraciones que describan el tema, el entorno o las acciones.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativo\npdfjs-editor-alt-text-mark-decorative-description = Se utiliza para imágenes ornamentales, como bordes o marcas de agua.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Guardar\npdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por ejemplo: “Un joven se sienta a la mesa a comer”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Esquina superior izquierda — redimensionar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Borde superior en el medio — redimensionar\npdfjs-editor-resizer-top-right =\n    .aria-label = Esquina superior derecha — redimensionar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Borde derecho en el medio — redimensionar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Esquina inferior derecha — redimensionar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Borde inferior en el medio — redimensionar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Esquina inferior izquierda — redimensionar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Borde izquierdo en el medio — redimensionar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color de resaltado\npdfjs-editor-colorpicker-button =\n    .title = Cambiar color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opciones de color\npdfjs-editor-colorpicker-yellow =\n    .title = Amarillo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Rojo\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar todo\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar todo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descripción de la imagen)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Agregar texto alternativo (descripción de la imagen)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escribe tu descripción aquí…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve descripción para las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo fue creado automáticamente y puede ser inexacto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saber más\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternativo automáticamente\npdfjs-editor-new-alt-text-not-now-button = Ahora no\npdfjs-editor-new-alt-text-error-title = No se pudo crear el texto alternativo automáticamente\npdfjs-editor-new-alt-text-error-description = Escribe tu propio texto alternativo o inténtalo de nuevo más tarde.\npdfjs-editor-new-alt-text-error-close-button = Cerrar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Descargando el modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Se agregó el texto alternativo\npdfjs-editor-new-alt-text-added-button-label = Se agregó el texto alternativo\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Falta el texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Falta texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revisar el texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar el texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automáticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ajustes del texto alternativo de la imagen\npdfjs-image-alt-text-settings-button-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-dialog-label = Ajustes del texto alternativo de la imagen\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automáticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugiere descripciones para ayudar a las personas que no pueden ver la imagen o cuando la imagen no se carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Se ejecuta localmente en el dispositivo para que los datos se mantengan privados. Requerido para texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Eliminar\npdfjs-editor-alt-text-settings-download-model-button = Descargar\npdfjs-editor-alt-text-settings-downloading-model-button = Descargando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar el editor de texto alternativo inmediatamente al añadir una imagen\npdfjs-editor-alt-text-settings-show-dialog-description = Te ayuda a asegurarte de que todas tus imágenes tengan texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Cerrar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Destacado añadido\npdfjs-editor-freetext-added-alert = Texto agregado\npdfjs-editor-ink-added-alert = Dibujo agregado\npdfjs-editor-stamp-added-alert = Imagen agregada\npdfjs-editor-signature-added-alert = Firma agregada\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Resaltado eliminado\npdfjs-editor-undo-bar-message-freetext = Texto eliminado\npdfjs-editor-undo-bar-message-ink = Dibujo eliminado\npdfjs-editor-undo-bar-message-stamp = Imagen eliminada\npdfjs-editor-undo-bar-message-signature = Firma eliminada\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotación eliminada\n       *[other] { $count } anotaciones eliminadas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Deshacer\npdfjs-editor-undo-bar-undo-button-label = Deshacer\npdfjs-editor-undo-bar-close-button =\n    .title = Cerrar\npdfjs-editor-undo-bar-close-button-label = Cerrar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modal permite al usuario crear una firma para añadirla a un documento PDF. El usuario puede editar el nombre (que también sirve como texto alternativo) y, opcionalmente, guardar la firma para utilizarla en otras ocasiones.\npdfjs-editor-add-signature-dialog-title = Agregar una firma\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tipo\n    .title = Tipo\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dibujar\n    .title = Dibujar\npdfjs-editor-add-signature-image-button = Imagen\n    .title = Imagen\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Escribe tu firma\n    .placeholder = Escribe tu firma\npdfjs-editor-add-signature-draw-placeholder = Dibuja tu firma\npdfjs-editor-add-signature-draw-thickness-range-label = Grossor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosor del dibujo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arrastra un archivo aquí para cargarlo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] O elegir archivos de imagen\n       *[other] O buscar archivos de imagen\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descripción (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Firma\npdfjs-editor-add-signature-clear-button-label = Limpiar firma\npdfjs-editor-add-signature-clear-button =\n    .title = Limpiar firma\npdfjs-editor-add-signature-save-checkbox = Guardar firma\npdfjs-editor-add-signature-save-warning-message = Has alcanzado el límite de 5 firmas guardadas. Elimina una para guardar más.\npdfjs-editor-add-signature-image-upload-error-title = No se pudo cargar la imagen\npdfjs-editor-add-signature-image-upload-error-description = Verifica tu conexión de red o prueba con otra imagen.\npdfjs-editor-add-signature-image-no-data-error-title = No se puede convertir esta imagen en una firma\npdfjs-editor-add-signature-image-no-data-error-description = Intenta cargar una imagen diferente.\npdfjs-editor-add-signature-error-close-button = Cerrar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Agregar\npdfjs-editor-edit-signature-update-button = Actualizar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editar comentario\npdfjs-editor-edit-comment-popup-button =\n    .title = Editar comentario\npdfjs-editor-delete-comment-popup-button-label = Eliminar comentario\npdfjs-editor-delete-comment-popup-button =\n    .title = Eliminar comentario\npdfjs-show-comment-button =\n    .title = Mostrar comentario\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acciones\npdfjs-editor-edit-comment-actions-button =\n    .title = Acciones\npdfjs-editor-edit-comment-close-button-label = Cerrar\npdfjs-editor-edit-comment-close-button =\n    .title = Cerrar\npdfjs-editor-edit-comment-actions-edit-button-label = Editar\npdfjs-editor-edit-comment-actions-delete-button-label = Eliminar\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Ingresa tu comentario\npdfjs-editor-edit-comment-manager-cancel-button = Cancelar\npdfjs-editor-edit-comment-manager-save-button = Guardar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualizar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Agregar comentario\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Agregar\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Empieza a escribir…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancelar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editar comentario\npdfjs-editor-add-comment-button =\n    .title = Añadir comentario\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Eliminar la firma guardada\npdfjs-editor-delete-signature-button-label1 = Eliminar la firma guardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descripción\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descripción\n"
  },
  {
    "path": "viewer/locale/et/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Eelmine lehekülg\npdfjs-previous-button-label = Eelmine\npdfjs-next-button =\n    .title = Järgmine lehekülg\npdfjs-next-button-label = Järgmine\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Leht\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber }/{ $pagesCount })\npdfjs-zoom-out-button =\n    .title = Vähenda\npdfjs-zoom-out-button-label = Vähenda\npdfjs-zoom-in-button =\n    .title = Suurenda\npdfjs-zoom-in-button-label = Suurenda\npdfjs-zoom-select =\n    .title = Suurendamine\npdfjs-presentation-mode-button =\n    .title = Lülitu esitlusrežiimi\npdfjs-presentation-mode-button-label = Esitlusrežiim\npdfjs-open-file-button =\n    .title = Ava fail\npdfjs-open-file-button-label = Ava\npdfjs-print-button =\n    .title = Prindi\npdfjs-print-button-label = Prindi\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tööriistad\npdfjs-tools-button-label = Tööriistad\npdfjs-first-page-button =\n    .title = Mine esimesele leheküljele\npdfjs-first-page-button-label = Mine esimesele leheküljele\npdfjs-last-page-button =\n    .title = Mine viimasele leheküljele\npdfjs-last-page-button-label = Mine viimasele leheküljele\npdfjs-page-rotate-cw-button =\n    .title = Pööra päripäeva\npdfjs-page-rotate-cw-button-label = Pööra päripäeva\npdfjs-page-rotate-ccw-button =\n    .title = Pööra vastupäeva\npdfjs-page-rotate-ccw-button-label = Pööra vastupäeva\npdfjs-cursor-text-select-tool-button =\n    .title = Luba teksti valimise tööriist\npdfjs-cursor-text-select-tool-button-label = Teksti valimise tööriist\npdfjs-cursor-hand-tool-button =\n    .title = Luba sirvimistööriist\npdfjs-cursor-hand-tool-button-label = Sirvimistööriist\npdfjs-scroll-page-button =\n    .title = Kasutatakse lehe kaupa kerimist\npdfjs-scroll-page-button-label = Lehe kaupa kerimine\npdfjs-scroll-vertical-button =\n    .title = Kasuta vertikaalset kerimist\npdfjs-scroll-vertical-button-label = Vertikaalne kerimine\npdfjs-scroll-horizontal-button =\n    .title = Kasuta horisontaalset kerimist\npdfjs-scroll-horizontal-button-label = Horisontaalne kerimine\npdfjs-scroll-wrapped-button =\n    .title = Kasuta rohkem mahutavat kerimist\npdfjs-scroll-wrapped-button-label = Rohkem mahutav kerimine\npdfjs-spread-none-button =\n    .title = Ära kõrvuta lehekülgi\npdfjs-spread-none-button-label = Lehtede kõrvutamine puudub\npdfjs-spread-odd-button =\n    .title = Kõrvuta leheküljed, alustades paaritute numbritega lehekülgedega\npdfjs-spread-odd-button-label = Kõrvutamine paaritute numbritega alustades\npdfjs-spread-even-button =\n    .title = Kõrvuta leheküljed, alustades paarisnumbritega lehekülgedega\npdfjs-spread-even-button-label = Kõrvutamine paarisnumbritega alustades\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumendi omadused…\npdfjs-document-properties-button-label = Dokumendi omadused…\npdfjs-document-properties-file-name = Faili nimi:\npdfjs-document-properties-file-size = Faili suurus:\npdfjs-document-properties-title = Pealkiri:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Teema:\npdfjs-document-properties-keywords = Märksõnad:\npdfjs-document-properties-creation-date = Loodud:\npdfjs-document-properties-modification-date = Muudetud:\npdfjs-document-properties-creator = Looja:\npdfjs-document-properties-producer = Generaator:\npdfjs-document-properties-version = Generaatori versioon:\npdfjs-document-properties-page-count = Lehekülgi:\npdfjs-document-properties-page-size = Lehe suurus:\npdfjs-document-properties-page-size-unit-inches = tolli\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertikaalpaigutus\npdfjs-document-properties-page-size-orientation-landscape = rõhtpaigutus\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = \"Fast Web View\" tugi:\npdfjs-document-properties-linearized-yes = Jah\npdfjs-document-properties-linearized-no = Ei\npdfjs-document-properties-close-button = Sulge\n\n## Print\n\npdfjs-print-progress-message = Dokumendi ettevalmistamine printimiseks…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Loobu\npdfjs-printing-not-supported = Hoiatus: printimine pole selle brauseri poolt täielikult toetatud.\npdfjs-printing-not-ready = Hoiatus: PDF pole printimiseks täielikult laaditud.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Näita külgriba\npdfjs-toggle-sidebar-notification-button =\n    .title = Näita külgriba (dokument sisaldab sisukorda/manuseid/kihte)\npdfjs-toggle-sidebar-button-label = Näita külgriba\npdfjs-document-outline-button =\n    .title = Näita sisukorda (kõigi punktide laiendamiseks/ahendamiseks topeltklõpsa)\npdfjs-document-outline-button-label = Näita sisukorda\npdfjs-attachments-button =\n    .title = Näita manuseid\npdfjs-attachments-button-label = Manused\npdfjs-layers-button =\n    .title = Näita kihte (kõikide kihtide vaikeolekusse lähtestamiseks topeltklõpsa)\npdfjs-layers-button-label = Kihid\npdfjs-thumbs-button =\n    .title = Näita pisipilte\npdfjs-thumbs-button-label = Pisipildid\npdfjs-current-outline-item-button =\n    .title = Otsi üles praegune kontuuriüksus\npdfjs-current-outline-item-button-label = Praegune kontuuriüksus\npdfjs-findbar-button =\n    .title = Otsi dokumendist\npdfjs-findbar-button-label = Otsi\npdfjs-additional-layers = Täiendavad kihid\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page }. lehekülg\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page }. lehekülje pisipilt\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Otsi\n    .placeholder = Otsi dokumendist…\npdfjs-find-previous-button =\n    .title = Otsi fraasi eelmine esinemiskoht\npdfjs-find-previous-button-label = Eelmine\npdfjs-find-next-button =\n    .title = Otsi fraasi järgmine esinemiskoht\npdfjs-find-next-button-label = Järgmine\npdfjs-find-highlight-checkbox = Too kõik esile\npdfjs-find-match-case-checkbox-label = Tõstutundlik\npdfjs-find-match-diacritics-checkbox-label = Otsitakse diakriitiliselt\npdfjs-find-entire-word-checkbox-label = Täissõnad\npdfjs-find-reached-top = Jõuti dokumendi algusesse, jätkati lõpust\npdfjs-find-reached-bottom = Jõuti dokumendi lõppu, jätkati algusest\npdfjs-find-not-found = Fraasi ei leitud\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Mahuta laiusele\npdfjs-page-scale-fit = Mahuta leheküljele\npdfjs-page-scale-auto = Automaatne suurendamine\npdfjs-page-scale-actual = Tegelik suurus\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Lehekülg { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDFi laadimisel esines viga.\npdfjs-invalid-file-error = Vigane või rikutud PDF-fail.\npdfjs-missing-file-error = PDF-fail puudub.\npdfjs-unexpected-response-error = Ootamatu vastus serverilt.\npdfjs-rendering-error = Lehe renderdamisel esines viga.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = PDF-faili avamiseks sisesta parool.\npdfjs-password-invalid = Vigane parool. Palun proovi uuesti.\npdfjs-password-ok-button = Sobib\npdfjs-password-cancel-button = Loobu\npdfjs-web-fonts-disabled = Veebifondid on keelatud: PDFiga kaasatud fonte pole võimalik kasutada.\n\n## Image alt-text settings\n\npdfjs-editor-alt-text-settings-delete-model-button = Kustuta\n"
  },
  {
    "path": "viewer/locale/eu/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Aurreko orria\npdfjs-previous-button-label = Aurrekoa\npdfjs-next-button =\n    .title = Hurrengo orria\npdfjs-next-button-label = Hurrengoa\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Orria\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = { $pagesCount }/{ $pageNumber }\npdfjs-zoom-out-button =\n    .title = Urrundu zooma\npdfjs-zoom-out-button-label = Urrundu zooma\npdfjs-zoom-in-button =\n    .title = Gerturatu zooma\npdfjs-zoom-in-button-label = Gerturatu zooma\npdfjs-zoom-select =\n    .title = Zooma\npdfjs-presentation-mode-button =\n    .title = Aldatu aurkezpen modura\npdfjs-presentation-mode-button-label = Arkezpen modua\npdfjs-open-file-button =\n    .title = Ireki fitxategia\npdfjs-open-file-button-label = Ireki\npdfjs-print-button =\n    .title = Inprimatu\npdfjs-print-button-label = Inprimatu\npdfjs-save-button =\n    .title = Gorde\npdfjs-save-button-label = Gorde\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Deskargatu\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Deskargatu\npdfjs-bookmark-button =\n    .title = Uneko orria (ikusi uneko orriaren URLa)\npdfjs-bookmark-button-label = Uneko orria\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tresnak\npdfjs-tools-button-label = Tresnak\npdfjs-first-page-button =\n    .title = Joan lehen orrira\npdfjs-first-page-button-label = Joan lehen orrira\npdfjs-last-page-button =\n    .title = Joan azken orrira\npdfjs-last-page-button-label = Joan azken orrira\npdfjs-page-rotate-cw-button =\n    .title = Biratu erlojuaren norantzan\npdfjs-page-rotate-cw-button-label = Biratu erlojuaren norantzan\npdfjs-page-rotate-ccw-button =\n    .title = Biratu erlojuaren aurkako norantzan\npdfjs-page-rotate-ccw-button-label = Biratu erlojuaren aurkako norantzan\npdfjs-cursor-text-select-tool-button =\n    .title = Gaitu testuaren hautapen tresna\npdfjs-cursor-text-select-tool-button-label = Testuaren hautapen tresna\npdfjs-cursor-hand-tool-button =\n    .title = Gaitu eskuaren tresna\npdfjs-cursor-hand-tool-button-label = Eskuaren tresna\npdfjs-scroll-page-button =\n    .title = Erabili orriaren korritzea\npdfjs-scroll-page-button-label = Orriaren korritzea\npdfjs-scroll-vertical-button =\n    .title = Erabili korritze bertikala\npdfjs-scroll-vertical-button-label = Korritze bertikala\npdfjs-scroll-horizontal-button =\n    .title = Erabili korritze horizontala\npdfjs-scroll-horizontal-button-label = Korritze horizontala\npdfjs-scroll-wrapped-button =\n    .title = Erabili korritze egokitua\npdfjs-scroll-wrapped-button-label = Korritze egokitua\npdfjs-spread-none-button =\n    .title = Ez elkartu barreiatutako orriak\npdfjs-spread-none-button-label = Barreiatzerik ez\npdfjs-spread-odd-button =\n    .title = Elkartu barreiatutako orriak bakoiti zenbakidunekin hasita\npdfjs-spread-odd-button-label = Barreiatze bakoitia\npdfjs-spread-even-button =\n    .title = Elkartu barreiatutako orriak bikoiti zenbakidunekin hasita\npdfjs-spread-even-button-label = Barreiatze bikoitia\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentuaren propietateak…\npdfjs-document-properties-button-label = Dokumentuaren propietateak…\npdfjs-document-properties-file-name = Fitxategi-izena:\npdfjs-document-properties-file-size = Fitxategiaren tamaina:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Izenburua:\npdfjs-document-properties-author = Egilea:\npdfjs-document-properties-subject = Gaia:\npdfjs-document-properties-keywords = Gako-hitzak:\npdfjs-document-properties-creation-date = Sortze-data:\npdfjs-document-properties-modification-date = Aldatze-data:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Sortzailea:\npdfjs-document-properties-producer = PDFaren ekoizlea:\npdfjs-document-properties-version = PDF bertsioa:\npdfjs-document-properties-page-count = Orrialde kopurua:\npdfjs-document-properties-page-size = Orriaren tamaina:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = bertikala\npdfjs-document-properties-page-size-orientation-landscape = horizontala\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Gutuna\npdfjs-document-properties-page-size-name-legal = Legala\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Webeko ikuspegi bizkorra:\npdfjs-document-properties-linearized-yes = Bai\npdfjs-document-properties-linearized-no = Ez\npdfjs-document-properties-close-button = Itxi\n\n## Print\n\npdfjs-print-progress-message = Dokumentua inprimatzeko prestatzen…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = %{ $progress }\npdfjs-print-progress-close-button = Utzi\npdfjs-printing-not-supported = Abisua: inprimatzeko euskarria ez da erabatekoa nabigatzaile honetan.\npdfjs-printing-not-ready = Abisua: PDFa ez dago erabat kargatuta inprimatzeko.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Txandakatu alboko barra\npdfjs-toggle-sidebar-notification-button =\n    .title = Txandakatu alboko barra (dokumentuak eskema/eranskinak/geruzak ditu)\npdfjs-toggle-sidebar-button-label = Txandakatu alboko barra\npdfjs-document-outline-button =\n    .title = Erakutsi dokumentuaren eskema (klik bikoitza elementu guztiak zabaltzeko/tolesteko)\npdfjs-document-outline-button-label = Dokumentuaren eskema\npdfjs-attachments-button =\n    .title = Erakutsi eranskinak\npdfjs-attachments-button-label = Eranskinak\npdfjs-layers-button =\n    .title = Erakutsi geruzak (klik bikoitza geruza guztiak egoera lehenetsira berrezartzeko)\npdfjs-layers-button-label = Geruzak\npdfjs-thumbs-button =\n    .title = Erakutsi koadro txikiak\npdfjs-thumbs-button-label = Koadro txikiak\npdfjs-current-outline-item-button =\n    .title = Bilatu uneko eskemaren elementua\npdfjs-current-outline-item-button-label = Uneko eskemaren elementua\npdfjs-findbar-button =\n    .title = Bilatu dokumentuan\npdfjs-findbar-button-label = Bilatu\npdfjs-additional-layers = Geruza gehigarriak\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page }. orria\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page }. orriaren koadro txikia\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Bilatu\n    .placeholder = Bilatu dokumentuan…\npdfjs-find-previous-button =\n    .title = Bilatu esaldiaren aurreko parekatzea\npdfjs-find-previous-button-label = Aurrekoa\npdfjs-find-next-button =\n    .title = Bilatu esaldiaren hurrengo parekatzea\npdfjs-find-next-button-label = Hurrengoa\npdfjs-find-highlight-checkbox = Nabarmendu guztia\npdfjs-find-match-case-checkbox-label = Bat etorri maiuskulekin/minuskulekin\npdfjs-find-match-diacritics-checkbox-label = Bereizi diakritikoak\npdfjs-find-entire-word-checkbox-label = Hitz osoak\npdfjs-find-reached-top = Dokumentuaren hasierara heldu da, bukaeratik jarraitzen\npdfjs-find-reached-bottom = Dokumentuaren bukaerara heldu da, hasieratik jarraitzen\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $total }/{ $current }. bat-etortzea\n       *[other] { $total }/{ $current }. bat-etortzea\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Bat datorren { $limit } baino gehiago\n       *[other] Bat datozen { $limit } baino gehiago\n    }\npdfjs-find-not-found = Esaldia ez da aurkitu\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Orriaren zabalera\npdfjs-page-scale-fit = Doitu orrira\npdfjs-page-scale-auto = Zoom automatikoa\npdfjs-page-scale-actual = Benetako tamaina\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = %{ $scale }\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page }. orria\n\n## Loading indicator messages\n\npdfjs-loading-error = Errorea gertatu da PDFa kargatzean.\npdfjs-invalid-file-error = PDF fitxategi baliogabe edo hondatua.\npdfjs-missing-file-error = PDF fitxategia falta da.\npdfjs-unexpected-response-error = Espero gabeko zerbitzariaren erantzuna.\npdfjs-rendering-error = Errorea gertatu da orria errendatzean.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ohartarazpena]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Idatzi PDF fitxategi hau irekitzeko pasahitza.\npdfjs-password-invalid = Pasahitz baliogabea. Saiatu berriro mesedez.\npdfjs-password-ok-button = Ados\npdfjs-password-cancel-button = Utzi\npdfjs-web-fonts-disabled = Webeko letra-tipoak desgaituta daude: ezin dira kapsulatutako PDF letra-tipoak erabili.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Testua\npdfjs-editor-color-picker-free-text-input =\n    .title = Aldatu testuaren kolorea\npdfjs-editor-free-text-button-label = Testua\npdfjs-editor-ink-button =\n    .title = Marrazkia\npdfjs-editor-color-picker-ink-input =\n    .title = Aldatu marrazteko kolorea\npdfjs-editor-ink-button-label = Marrazkia\npdfjs-editor-stamp-button =\n    .title = Gehitu edo editatu irudiak\npdfjs-editor-stamp-button-label = Gehitu edo editatu irudiak\npdfjs-editor-highlight-button =\n    .title = Nabarmendu\npdfjs-editor-highlight-button-label = Nabarmendu\npdfjs-highlight-floating-button1 =\n    .title = Nabarmendu\n    .aria-label = Nabarmendu\npdfjs-highlight-floating-button-label = Nabarmendu\npdfjs-comment-floating-button =\n    .title = Iruzkina\n    .aria-label = Iruzkina\npdfjs-comment-floating-button-label = Iruzkina\npdfjs-editor-comment-button =\n    .title = Iruzkina\n    .aria-label = Iruzkina\npdfjs-editor-comment-button-label = Iruzkina\npdfjs-editor-signature-button =\n    .title = Gehitu sinadura\npdfjs-editor-signature-button-label = Gehitu sinadura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Nabarmendutakoen editorea\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Marrazkien editorea\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Sinaduren editorea: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Irudien editorea\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Kendu marrazkia\npdfjs-editor-remove-freetext-button =\n    .title = Kendu testua\npdfjs-editor-remove-stamp-button =\n    .title = Kendu irudia\npdfjs-editor-remove-highlight-button =\n    .title = Kendu nabarmentzea\npdfjs-editor-remove-signature-button =\n    .title = Kendu sinadura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Kolorea\npdfjs-editor-free-text-size-input = Tamaina\npdfjs-editor-ink-color-input = Kolorea\npdfjs-editor-ink-thickness-input = Loditasuna\npdfjs-editor-ink-opacity-input = Opakutasuna\npdfjs-editor-stamp-add-image-button =\n    .title = Gehitu irudia\npdfjs-editor-stamp-add-image-button-label = Gehitu irudia\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Loditasuna\npdfjs-editor-free-highlight-thickness-title =\n    .title = Aldatu loditasuna testua ez beste elementuak nabarmentzean\npdfjs-editor-add-signature-container =\n    .aria-label = Sinaduren kontrolak eta gordetako sinadurak\npdfjs-editor-signature-add-signature-button =\n    .title = Gehitu sinadura berria\npdfjs-editor-signature-add-signature-button-label = Gehitu sinadura berria\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Gordetako sinadura: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Testu-editorea\n    .default-content = Hasi idazten…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Iruzkina\n       *[other] Iruzkinak\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Itxi alboko barra\n    .aria-label = Itxi alboko barra\npdfjs-editor-comments-sidebar-close-button-label = Itxi alboko barra\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Azpimarratzeko zerbait ikusi duzu? Nabarmen ezazu eta utzi iruzkina.\npdfjs-editor-comments-sidebar-no-comments-link = Argibide gehiago\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Testu alternatiboa\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editatu testu alternatiboa\npdfjs-editor-alt-text-dialog-label = Aukeratu aukera\npdfjs-editor-alt-text-dialog-description = Testu alternatiboak laguntzen du jendeak ezin duenean irudia ikusi edo ez denean kargatzen.\npdfjs-editor-alt-text-add-description-label = Gehitu azalpena\npdfjs-editor-alt-text-add-description-description = Saiatu idazten gaia, ezarpena edo ekintzak deskribatzen dituen esaldi 1 edo 2.\npdfjs-editor-alt-text-mark-decorative-label = Markatu apaingarri gisa\npdfjs-editor-alt-text-mark-decorative-description = Irudiak apaingarrientzat erabiltzen da, adibidez ertz edo ur-marketarako.\npdfjs-editor-alt-text-cancel-button = Utzi\npdfjs-editor-alt-text-save-button = Gorde\npdfjs-editor-alt-text-decorative-tooltip = Apaingarri gisa markatuta\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Adibidez, \"gizon gaztea mahaian eserita dago bazkaltzeko\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Testu alternatiboa\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Goiko ezkerreko izkina — aldatu tamaina\npdfjs-editor-resizer-top-middle =\n    .aria-label = Goian erdian — aldatu tamaina\npdfjs-editor-resizer-top-right =\n    .aria-label = Goiko eskuineko izkina — aldatu tamaina\npdfjs-editor-resizer-middle-right =\n    .aria-label = Erdian eskuinean — aldatu tamaina\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Beheko eskuineko izkina — aldatu tamaina\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Behean erdian — aldatu tamaina\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Beheko ezkerreko izkina — aldatu tamaina\npdfjs-editor-resizer-middle-left =\n    .aria-label = Erdian ezkerrean —  aldatu tamaina\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Nabarmentze kolorea\npdfjs-editor-colorpicker-button =\n    .title = Aldatu kolorea\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Kolore-aukerak\npdfjs-editor-colorpicker-yellow =\n    .title = Horia\npdfjs-editor-colorpicker-green =\n    .title = Berdea\npdfjs-editor-colorpicker-blue =\n    .title = Urdina\npdfjs-editor-colorpicker-pink =\n    .title = Arrosa\npdfjs-editor-colorpicker-red =\n    .title = Gorria\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Erakutsi denak\npdfjs-editor-highlight-show-all-button =\n    .title = Erakutsi denak\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editatu testu alternatiboa (irudiaren azalpena)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Gehitu testu alternatiboa (irudiaren azalpena)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Idatzi zure azalpena hemen…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Azalpen laburra irudia ikusi ezin duen jendearentzat edo irudia kargatu ezin denerako.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Testu alternatibo hau automatikoki sortu da eta okerra izan liteke.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Argibide gehiago\npdfjs-editor-new-alt-text-create-automatically-button-label = Sortu testu alternatiboa automatikoki\npdfjs-editor-new-alt-text-not-now-button = Une honetan ez\npdfjs-editor-new-alt-text-error-title = Ezin da testu alternatiboa automatikoki sortu\npdfjs-editor-new-alt-text-error-description = Idatzi zure testu alternatibo propioa edo saiatu berriro geroago.\npdfjs-editor-new-alt-text-error-close-button = Itxi\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Testu alternatiboaren AA modeloa deskargatzen ({ $totalSize }/{ $downloadedSize } MB)\n    .aria-valuetext = Testu alternatiboaren AA modeloa deskargatzen ({ $totalSize }/{ $downloadedSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Testu alternatiboa gehituta\npdfjs-editor-new-alt-text-added-button-label = Testu alternatiboa gehituta\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Testu alternatiboa falta da\npdfjs-editor-new-alt-text-missing-button-label = Testu alternatiboa falta da\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Berrikusi testu alternatiboa\npdfjs-editor-new-alt-text-to-review-button-label = Berrikusi testu alternatiboa\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatikoki sortua: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Irudiaren testu alternatiboaren ezarpenak\npdfjs-image-alt-text-settings-button-label = Irudiaren testu alternatiboaren ezarpenak\npdfjs-editor-alt-text-settings-dialog-label = Irudiaren testu alternatiboaren ezarpenak\npdfjs-editor-alt-text-settings-automatic-title = Testu alternatibo automatikoa\npdfjs-editor-alt-text-settings-create-model-button-label = Sortu testu alternatiboa automatikoki\npdfjs-editor-alt-text-settings-create-model-description = Azalpenak iradokitzen ditu irudia ikusi ezin duen jendearentzat edo irudia kargatu ezin denerako.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Testu alternatiboaren AA modeloa ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Zure gailuan modu lokalean exekutatzen da eta zure datuak pribatu mantentzen dira. Testu alternatibo automatikorako beharrezkoa.\npdfjs-editor-alt-text-settings-delete-model-button = Ezabatu\npdfjs-editor-alt-text-settings-download-model-button = Deskargatu\npdfjs-editor-alt-text-settings-downloading-model-button = Deskargatzen…\npdfjs-editor-alt-text-settings-editor-title = Testu alternatiboaren editorea\npdfjs-editor-alt-text-settings-show-dialog-button-label = Erakutsi testu alternatiboa irudi bat gehitzean berehala\npdfjs-editor-alt-text-settings-show-dialog-description = Zure irudiek testu alternatiboa duela ziurtatzen laguntzen dizu.\npdfjs-editor-alt-text-settings-close-button = Itxi\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Nabarmentzea gehituta\npdfjs-editor-freetext-added-alert = Testua gehituta\npdfjs-editor-ink-added-alert = Marrazkia gehituta\npdfjs-editor-stamp-added-alert = Irudia gehituta\npdfjs-editor-signature-added-alert = Sinadura gehituta\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Nabarmentzea kenduta\npdfjs-editor-undo-bar-message-freetext = Testua kenduta\npdfjs-editor-undo-bar-message-ink = Marrazkia kenduta\npdfjs-editor-undo-bar-message-stamp = Irudia kenduta\npdfjs-editor-undo-bar-message-signature = Sinadura kenduta\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] Esku-ohar bat kenduta\n       *[other] { $count } esku-ohar kenduta\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Desegin\npdfjs-editor-undo-bar-undo-button-label = Desegin\npdfjs-editor-undo-bar-close-button =\n    .title = Itxi\npdfjs-editor-undo-bar-close-button-label = Itxi\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label =\n    Leiho modal honek PDF dokumentu batera gehitzeko sinadurak\n    sortzea ahalbidetzen dio erabiltzaileari. Erabiltzaileak izena edita\n    dezake (testu alternatibo modura ere erabiltzen dena) eta sinadura\n    gordetzeko aukera du gehiagotan erabili ahal izateko.\npdfjs-editor-add-signature-dialog-title = Gehitu sinadura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Idatzi\n    .title = Idatzi\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Marraztu\n    .title = Marraztu\npdfjs-editor-add-signature-image-button = Irudia\n    .title = Irudia\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Idatzi zure sinadura\n    .placeholder = Idatzi zure sinadura\npdfjs-editor-add-signature-draw-placeholder = Marraztu zure sinadura\npdfjs-editor-add-signature-draw-thickness-range-label = Loditasuna\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Marrazteko loditasuna: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Igotzeko, jaregin fitxategia hemen\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Edo aukeratu irudi-fitxategiak\n       *[other] Edo arakatu irudi-fitxategiak\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Azalpena (testu alternatiboa)\npdfjs-editor-add-signature-description-input =\n    .title = Azalpena (testu alternatiboa)\npdfjs-editor-add-signature-description-default-when-drawing = Sinadura\npdfjs-editor-add-signature-clear-button-label = Garbitu sinadura\npdfjs-editor-add-signature-clear-button =\n    .title = Garbitu sinadura\npdfjs-editor-add-signature-save-checkbox = Gorde sinadura\npdfjs-editor-add-signature-save-warning-message = Gordetako sinadura kopuruaren mugara heldu zara (5). Gehiago gorde ahal izateko, ken ezazu bat.\npdfjs-editor-add-signature-image-upload-error-title = Ezin da irudia igo\npdfjs-editor-add-signature-image-upload-error-description = Egiaztatu zure sareko konexioa edo saiatu beste irudi batekin.\npdfjs-editor-add-signature-image-no-data-error-title = Ezin da irudia sinaduran bihurtu\npdfjs-editor-add-signature-image-no-data-error-description = Saiatu beste irudi bat igotzen.\npdfjs-editor-add-signature-error-close-button = Itxi\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Utzi\npdfjs-editor-add-signature-add-button = Gehitu\npdfjs-editor-edit-signature-update-button = Eguneratu\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editatu iruzkina\npdfjs-editor-edit-comment-popup-button =\n    .title = Editatu iruzkina\npdfjs-editor-delete-comment-popup-button-label = Kendu iruzkina\npdfjs-editor-delete-comment-popup-button =\n    .title = Kendu iruzkina\npdfjs-show-comment-button =\n    .title = Erakutsi iruzkina\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Ekintzak\npdfjs-editor-edit-comment-actions-button =\n    .title = Ekintzak\npdfjs-editor-edit-comment-close-button-label = Itxi\npdfjs-editor-edit-comment-close-button =\n    .title = Itxi\npdfjs-editor-edit-comment-actions-edit-button-label = Editatu\npdfjs-editor-edit-comment-actions-delete-button-label = Ezabatu\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Idatzi zure iruzkina\npdfjs-editor-edit-comment-manager-cancel-button = Utzi\npdfjs-editor-edit-comment-manager-save-button = Gorde\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editatu iruzkina\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Eguneratu\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Gehitu iruzkina\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Gehitu\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Hasi idazten…\npdfjs-editor-edit-comment-dialog-cancel-button = Utzi\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editatu iruzkina\npdfjs-editor-add-comment-button =\n    .title = Gehitu iruzkina\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Kendu gordetako sinadura\npdfjs-editor-delete-signature-button-label1 = Kendu gordetako sinadura\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editatu azalpena\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editatu azalpena\n"
  },
  {
    "path": "viewer/locale/fa/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = صفحهٔ قبلی\npdfjs-previous-button-label = قبلی\npdfjs-next-button =\n    .title = صفحهٔ بعدی\npdfjs-next-button-label = بعدی\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = صفحه\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = از { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber }از { $pagesCount })\npdfjs-zoom-out-button =\n    .title = کوچک‌نمایی\npdfjs-zoom-out-button-label = کوچک‌نمایی\npdfjs-zoom-in-button =\n    .title = بزرگ‌نمایی\npdfjs-zoom-in-button-label = بزرگ‌نمایی\npdfjs-zoom-select =\n    .title = زوم\npdfjs-presentation-mode-button =\n    .title = تغییر به حالت ارائه\npdfjs-presentation-mode-button-label = حالت ارائه\npdfjs-open-file-button =\n    .title = باز کردن پرونده\npdfjs-open-file-button-label = باز کردن\npdfjs-print-button =\n    .title = چاپ\npdfjs-print-button-label = چاپ\npdfjs-save-button =\n    .title = ذخیره\npdfjs-save-button-label = ذخیره\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = دریافت\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = دریافت\npdfjs-bookmark-button =\n    .title = صفحه فعلی (مشاهده نشانی اینترنتی از صفحه فعلی)\npdfjs-bookmark-button-label = صفحه فعلی\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ابزارها\npdfjs-tools-button-label = ابزارها\npdfjs-first-page-button =\n    .title = برو به اولین صفحه\npdfjs-first-page-button-label = برو به اولین صفحه\npdfjs-last-page-button =\n    .title = برو به آخرین صفحه\npdfjs-last-page-button-label = برو به آخرین صفحه\npdfjs-page-rotate-cw-button =\n    .title = چرخش ساعتگرد\npdfjs-page-rotate-cw-button-label = چرخش ساعتگرد\npdfjs-page-rotate-ccw-button =\n    .title = چرخش پاد ساعتگرد\npdfjs-page-rotate-ccw-button-label = چرخش پاد ساعتگرد\npdfjs-cursor-text-select-tool-button =\n    .title = فعال کردن ابزارِ انتخابِ متن\npdfjs-cursor-text-select-tool-button-label = ابزارِ انتخابِ متن\npdfjs-cursor-hand-tool-button =\n    .title = فعال کردن ابزارِ دست\npdfjs-cursor-hand-tool-button-label = ابزار دست\npdfjs-scroll-page-button =\n    .title = استفاده از پیمایش صفحه\npdfjs-scroll-page-button-label = پیمایش صفحه\npdfjs-scroll-vertical-button =\n    .title = استفاده از پیمایش عمودی\npdfjs-scroll-vertical-button-label = پیمایش عمودی\npdfjs-scroll-horizontal-button =\n    .title = استفاده از پیمایش افقی\npdfjs-scroll-horizontal-button-label = پیمایش افقی\npdfjs-spread-none-button =\n    .title = صفحات پیوسته را یکی نکنید\npdfjs-spread-none-button-label = بدون صفحات پیوسته\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = خصوصیات سند...\npdfjs-document-properties-button-label = خصوصیات سند...\npdfjs-document-properties-file-name = نام پرونده:\npdfjs-document-properties-file-size = حجم پرونده:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } کیلوبایت ({ $b } بایت)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } مگابایت ({ $b } بایت)\npdfjs-document-properties-title = عنوان:\npdfjs-document-properties-author = نویسنده:\npdfjs-document-properties-subject = موضوع:\npdfjs-document-properties-keywords = کلیدواژه‌ها:\npdfjs-document-properties-creation-date = تاریخ ایجاد:\npdfjs-document-properties-modification-date = تاریخ ویرایش:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = ایجاد کننده:\npdfjs-document-properties-producer = ایجاد کننده PDF:\npdfjs-document-properties-version = نسخه PDF:\npdfjs-document-properties-page-count = تعداد صفحات:\npdfjs-document-properties-page-size = اندازه صفحه:\npdfjs-document-properties-page-size-unit-inches = اینچ\npdfjs-document-properties-page-size-unit-millimeters = میلی‌متر\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = نامه\npdfjs-document-properties-page-size-name-legal = حقوقی\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = بله\npdfjs-document-properties-linearized-no = خیر\npdfjs-document-properties-close-button = بستن\n\n## Print\n\npdfjs-print-progress-message = آماده سازی مدارک برای چاپ کردن…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = لغو\npdfjs-printing-not-supported = هشدار: قابلیت چاپ به‌طور کامل در این مرورگر پشتیبانی نمی‌شود.\npdfjs-printing-not-ready = اخطار: پرونده PDF بطور کامل بارگیری نشده و امکان چاپ وجود ندارد.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = باز و بسته کردن نوار کناری\npdfjs-toggle-sidebar-button-label = تغییرحالت نوارکناری\npdfjs-document-outline-button =\n    .title = نمایش رئوس مطالب مدارک(برای بازشدن/جمع شدن همه موارد دوبار کلیک کنید)\npdfjs-document-outline-button-label = طرح نوشتار\npdfjs-attachments-button =\n    .title = نمایش پیوست‌ها\npdfjs-attachments-button-label = پیوست‌ها\npdfjs-layers-button-label = لایه‌ها\npdfjs-thumbs-button =\n    .title = نمایش تصاویر بندانگشتی\npdfjs-thumbs-button-label = تصاویر بندانگشتی\npdfjs-findbar-button =\n    .title = جستجو در سند\npdfjs-findbar-button-label = پیدا کردن\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = صفحه { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = تصویر بند‌ انگشتی صفحه { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = پیدا کردن\n    .placeholder = پیدا کردن در سند…\npdfjs-find-previous-button =\n    .title = پیدا کردن رخداد قبلی عبارت\npdfjs-find-previous-button-label = قبلی\npdfjs-find-next-button =\n    .title = پیدا کردن رخداد بعدی عبارت\npdfjs-find-next-button-label = بعدی\npdfjs-find-highlight-checkbox = برجسته و هایلایت کردن همه موارد\npdfjs-find-match-case-checkbox-label = تطبیق کوچکی و بزرگی حروف\npdfjs-find-entire-word-checkbox-label = تمام کلمه‌ها\npdfjs-find-reached-top = به بالای صفحه رسیدیم، از پایین ادامه می‌دهیم\npdfjs-find-reached-bottom = به آخر صفحه رسیدیم، از بالا ادامه می‌دهیم\npdfjs-find-not-found = عبارت پیدا نشد\n\n## Predefined zoom values\n\npdfjs-page-scale-width = عرض صفحه\npdfjs-page-scale-fit = اندازه کردن صفحه\npdfjs-page-scale-auto = بزرگنمایی خودکار\npdfjs-page-scale-actual = اندازه واقعی‌\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = صفحهٔ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = هنگام بارگیری پرونده PDF خطایی رخ داد.\npdfjs-invalid-file-error = پرونده PDF نامعتبر یامعیوب می‌باشد.\npdfjs-missing-file-error = پرونده PDF یافت نشد.\npdfjs-unexpected-response-error = پاسخ پیش بینی نشده سرور\npdfjs-rendering-error = هنگام بارگیری صفحه خطایی رخ داد.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = جهت باز کردن پرونده PDF گذرواژه را وارد نمائید.\npdfjs-password-invalid = گذرواژه نامعتبر. لطفا مجددا تلاش کنید.\npdfjs-password-ok-button = تأیید\npdfjs-password-cancel-button = لغو\npdfjs-web-fonts-disabled = فونت های تحت وب غیر فعال شده اند: امکان استفاده از نمایش دهنده داخلی PDF وجود ندارد.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = متن\npdfjs-editor-free-text-button-label = متن\npdfjs-editor-ink-button =\n    .title = کشیدن\npdfjs-editor-ink-button-label = کشیدن\npdfjs-editor-stamp-button =\n    .title = افزودن یا ویرایش تصاویر\npdfjs-editor-stamp-button-label = افزودن یا ویرایش تصاویر\npdfjs-editor-highlight-button =\n    .title = برجسته کردن\npdfjs-editor-highlight-button-label = برجسته کردن\npdfjs-highlight-floating-button1 =\n    .title = برجسته کردن\n    .aria-label = برجسته کردن\npdfjs-highlight-floating-button-label = برجسته کردن\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = رنگ\npdfjs-editor-free-text-size-input = اندازه\npdfjs-editor-ink-color-input = رنگ\npdfjs-editor-stamp-add-image-button =\n    .title = افزودن تصویر\npdfjs-editor-stamp-add-image-button-label = افزودن تصویر\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = ویرایشگر متن\n    .default-content = شروع به نوشتن کنید…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-add-description-label = افزودن توضیحات\npdfjs-editor-alt-text-cancel-button = انصراف\npdfjs-editor-alt-text-save-button = ذخیره\n\n## Color picker\n\npdfjs-editor-colorpicker-button =\n    .title = تغییر رنگ\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = انتخاب رنگ\npdfjs-editor-colorpicker-yellow =\n    .title = زرد\npdfjs-editor-colorpicker-green =\n    .title = سبز\npdfjs-editor-colorpicker-blue =\n    .title = آبی\npdfjs-editor-colorpicker-pink =\n    .title = صورتی\npdfjs-editor-colorpicker-red =\n    .title = قرمز\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = نمایش همه\npdfjs-editor-highlight-show-all-button =\n    .title = نمایش همه\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = بیشتر بدانید\npdfjs-editor-new-alt-text-not-now-button = اکنون نه\npdfjs-editor-new-alt-text-error-close-button = بستن\n\n## Image alt-text settings\n\npdfjs-editor-alt-text-settings-delete-model-button = حذف\npdfjs-editor-alt-text-settings-download-model-button = دریافت\npdfjs-editor-alt-text-settings-downloading-model-button = در حال دریافت…\npdfjs-editor-alt-text-settings-close-button = بستن\n"
  },
  {
    "path": "viewer/locale/ff/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Hello Ɓennungo\npdfjs-previous-button-label = Ɓennuɗo\npdfjs-next-button =\n    .title = Hello faango\npdfjs-next-button-label = Yeeso\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Hello\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = e nder { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Lonngo Woɗɗa\npdfjs-zoom-out-button-label = Lonngo Woɗɗa\npdfjs-zoom-in-button =\n    .title = Lonngo Ara\npdfjs-zoom-in-button-label = Lonngo Ara\npdfjs-zoom-select =\n    .title = Lonngo\npdfjs-presentation-mode-button =\n    .title = Faytu to  Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Uddit Fiilde\npdfjs-open-file-button-label = Uddit\npdfjs-print-button =\n    .title = Winndito\npdfjs-print-button-label = Winndito\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Kuutorɗe\npdfjs-tools-button-label = Kuutorɗe\npdfjs-first-page-button =\n    .title = Yah to hello adanngo\npdfjs-first-page-button-label = Yah to hello adanngo\npdfjs-last-page-button =\n    .title = Yah to hello wattindiingo\npdfjs-last-page-button-label = Yah to hello wattindiingo\npdfjs-page-rotate-cw-button =\n    .title = Yiiltu Faya Ñaamo\npdfjs-page-rotate-cw-button-label = Yiiltu Faya Ñaamo\npdfjs-page-rotate-ccw-button =\n    .title = Yiiltu Faya Nano\npdfjs-page-rotate-ccw-button-label = Yiiltu Faya Nano\npdfjs-cursor-text-select-tool-button =\n    .title = Gollin kaɓirgel cuɓirgel binndi\npdfjs-cursor-text-select-tool-button-label = Kaɓirgel cuɓirgel binndi\npdfjs-cursor-hand-tool-button =\n    .title = Hurmin kuutorgal junngo\npdfjs-cursor-hand-tool-button-label = Kaɓirgel junngo\npdfjs-scroll-vertical-button =\n    .title = Huutoro gorwitol daringol\npdfjs-scroll-vertical-button-label = Gorwitol daringol\npdfjs-scroll-horizontal-button =\n    .title = Huutoro gorwitol lelingol\npdfjs-scroll-horizontal-button-label = Gorwitol daringol\npdfjs-scroll-wrapped-button =\n    .title = Huutoro gorwitol coomingol\npdfjs-scroll-wrapped-button-label = Gorwitol coomingol\npdfjs-spread-none-button =\n    .title = Hoto tawtu kelle kelle\npdfjs-spread-none-button-label = Alaa Spreads\npdfjs-spread-odd-button =\n    .title = Tawtu kelle puɗɗortooɗe kelle teelɗe\npdfjs-spread-odd-button-label = Kelle teelɗe\npdfjs-spread-even-button =\n    .title = Tawtu ɗereeji kelle puɗɗoriiɗi kelle teeltuɗe\npdfjs-spread-even-button-label = Kelle teeltuɗe\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Keeroraaɗi Winndannde…\npdfjs-document-properties-button-label = Keeroraaɗi Winndannde…\npdfjs-document-properties-file-name = Innde fiilde:\npdfjs-document-properties-file-size = Ɓetol fiilde:\npdfjs-document-properties-title = Tiitoonde:\npdfjs-document-properties-author = Binnduɗo:\npdfjs-document-properties-subject = Toɓɓere:\npdfjs-document-properties-keywords = Kelmekele jiytirɗe:\npdfjs-document-properties-creation-date = Ñalnde Sosaa:\npdfjs-document-properties-modification-date = Ñalnde Waylaa:\npdfjs-document-properties-creator = Cosɗo:\npdfjs-document-properties-producer = Paggiiɗo PDF:\npdfjs-document-properties-version = Yamre PDF:\npdfjs-document-properties-page-count = Limoore Kelle:\npdfjs-document-properties-page-size = Ɓeto Hello:\npdfjs-document-properties-page-size-unit-inches = nder\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = dariingo\npdfjs-document-properties-page-size-orientation-landscape = wertiingo\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Ɓataake\npdfjs-document-properties-page-size-name-legal = Laawol\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Ɗisngo geese yaawngo:\npdfjs-document-properties-linearized-yes = Eey\npdfjs-document-properties-linearized-no = Alaa\npdfjs-document-properties-close-button = Uddu\n\n## Print\n\npdfjs-print-progress-message = Nana heboo winnditaade fiilannde…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Haaytu\npdfjs-printing-not-supported = Reentino: Winnditagol tammbitaaka no feewi e ndee wanngorde.\npdfjs-printing-not-ready = Reentino: PDF oo loowaaki haa timmi ngam winnditagol.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggilo Palal Sawndo\npdfjs-toggle-sidebar-button-label = Toggilo Palal Sawndo\npdfjs-document-outline-button =\n    .title = Hollu Ƴiyal Fiilannde (dobdobo ngam wertude/taggude teme fof)\npdfjs-document-outline-button-label = Toɓɓe Fiilannde\npdfjs-attachments-button =\n    .title = Hollu Ɗisanɗe\npdfjs-attachments-button-label = Ɗisanɗe\npdfjs-thumbs-button =\n    .title = Hollu Dooɓe\npdfjs-thumbs-button-label = Dooɓe\npdfjs-findbar-button =\n    .title = Yiylo e fiilannde\npdfjs-findbar-button-label = Yiytu\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Hello { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Dooɓre Hello { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Yiytu\n    .placeholder = Yiylo nder dokimaa\npdfjs-find-previous-button =\n    .title = Yiylo cilol ɓennugol konngol ngol\npdfjs-find-previous-button-label = Ɓennuɗo\npdfjs-find-next-button =\n    .title = Yiylo cilol garowol konngol ngol\npdfjs-find-next-button-label = Yeeso\npdfjs-find-highlight-checkbox = Jalbin fof\npdfjs-find-match-case-checkbox-label = Jaaɓnu darnde\npdfjs-find-entire-word-checkbox-label = Kelme timmuɗe tan\npdfjs-find-reached-top = Heɓii fuɗɗorde fiilannde, jokku faya les\npdfjs-find-reached-bottom = Heɓii hoore fiilannde, jokku faya les\npdfjs-find-not-found = Konngi njiyataa\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Njaajeendi Hello\npdfjs-page-scale-fit = Keƴeendi Hello\npdfjs-page-scale-auto = Loongorde Jaajol\npdfjs-page-scale-actual = Ɓetol Jaati\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Juumre waɗii tuma nde loowata PDF oo.\npdfjs-invalid-file-error = Fiilde PDF moƴƴaani walla jiibii.\npdfjs-missing-file-error = Fiilde PDF ena ŋakki.\npdfjs-unexpected-response-error = Jaabtol sarworde tijjinooka.\npdfjs-rendering-error = Juumre waɗii tuma nde yoŋkittoo hello.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Siiftannde]\n\n## Password\n\npdfjs-password-label = Naatu finnde ngam uddite ndee fiilde PDF.\npdfjs-password-invalid = Finnde moƴƴaani. Tiiɗno eto kadi.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Haaytu\npdfjs-web-fonts-disabled = Ponte geese ko daaƴaaɗe: horiima huutoraade ponte PDF coomtoraaɗe.\n"
  },
  {
    "path": "viewer/locale/fi/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Edellinen sivu\npdfjs-previous-button-label = Edellinen\npdfjs-next-button =\n    .title = Seuraava sivu\npdfjs-next-button-label = Seuraava\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Sivu\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Loitonna\npdfjs-zoom-out-button-label = Loitonna\npdfjs-zoom-in-button =\n    .title = Lähennä\npdfjs-zoom-in-button-label = Lähennä\npdfjs-zoom-select =\n    .title = Suurennus\npdfjs-presentation-mode-button =\n    .title = Siirry esitystilaan\npdfjs-presentation-mode-button-label = Esitystila\npdfjs-open-file-button =\n    .title = Avaa tiedosto\npdfjs-open-file-button-label = Avaa\npdfjs-print-button =\n    .title = Tulosta\npdfjs-print-button-label = Tulosta\npdfjs-save-button =\n    .title = Tallenna\npdfjs-save-button-label = Tallenna\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Lataa\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Lataa\npdfjs-bookmark-button =\n    .title = Nykyinen sivu (Näytä URL-osoite nykyiseltä sivulta)\npdfjs-bookmark-button-label = Nykyinen sivu\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Siirry ensimmäiselle sivulle\npdfjs-first-page-button-label = Siirry ensimmäiselle sivulle\npdfjs-last-page-button =\n    .title = Siirry viimeiselle sivulle\npdfjs-last-page-button-label = Siirry viimeiselle sivulle\npdfjs-page-rotate-cw-button =\n    .title = Kierrä oikealle\npdfjs-page-rotate-cw-button-label = Kierrä oikealle\npdfjs-page-rotate-ccw-button =\n    .title = Kierrä vasemmalle\npdfjs-page-rotate-ccw-button-label = Kierrä vasemmalle\npdfjs-cursor-text-select-tool-button =\n    .title = Käytä tekstinvalintatyökalua\npdfjs-cursor-text-select-tool-button-label = Tekstinvalintatyökalu\npdfjs-cursor-hand-tool-button =\n    .title = Käytä käsityökalua\npdfjs-cursor-hand-tool-button-label = Käsityökalu\npdfjs-scroll-page-button =\n    .title = Käytä sivun vieritystä\npdfjs-scroll-page-button-label = Sivun vieritys\npdfjs-scroll-vertical-button =\n    .title = Käytä pystysuuntaista vieritystä\npdfjs-scroll-vertical-button-label = Pystysuuntainen vieritys\npdfjs-scroll-horizontal-button =\n    .title = Käytä vaakasuuntaista vieritystä\npdfjs-scroll-horizontal-button-label = Vaakasuuntainen vieritys\npdfjs-scroll-wrapped-button =\n    .title = Käytä rivittyvää vieritystä\npdfjs-scroll-wrapped-button-label = Rivittyvä vieritys\npdfjs-spread-none-button =\n    .title = Älä yhdistä sivuja aukeamiksi\npdfjs-spread-none-button-label = Ei aukeamia\npdfjs-spread-odd-button =\n    .title = Yhdistä sivut aukeamiksi alkaen parittomalta sivulta\npdfjs-spread-odd-button-label = Parittomalta alkavat aukeamat\npdfjs-spread-even-button =\n    .title = Yhdistä sivut aukeamiksi alkaen parilliselta sivulta\npdfjs-spread-even-button-label = Parilliselta alkavat aukeamat\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentin ominaisuudet…\npdfjs-document-properties-button-label = Dokumentin ominaisuudet…\npdfjs-document-properties-file-name = Tiedoston nimi:\npdfjs-document-properties-file-size = Tiedoston koko:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kt ({ $b } tavua)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } Mt ({ $b } tavua)\npdfjs-document-properties-title = Otsikko:\npdfjs-document-properties-author = Tekijä:\npdfjs-document-properties-subject = Aihe:\npdfjs-document-properties-keywords = Avainsanat:\npdfjs-document-properties-creation-date = Luomispäivämäärä:\npdfjs-document-properties-modification-date = Muokkauspäivämäärä:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Luoja:\npdfjs-document-properties-producer = PDF-tuottaja:\npdfjs-document-properties-version = PDF-versio:\npdfjs-document-properties-page-count = Sivujen määrä:\npdfjs-document-properties-page-size = Sivun koko:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = pysty\npdfjs-document-properties-page-size-orientation-landscape = vaaka\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Nopea web-katselu:\npdfjs-document-properties-linearized-yes = Kyllä\npdfjs-document-properties-linearized-no = Ei\npdfjs-document-properties-close-button = Sulje\n\n## Print\n\npdfjs-print-progress-message = Valmistellaan dokumenttia tulostamista varten…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Peruuta\npdfjs-printing-not-supported = Varoitus: Selain ei tue kaikkia tulostustapoja.\npdfjs-printing-not-ready = Varoitus: PDF-tiedosto ei ole vielä latautunut kokonaan, eikä sitä voi vielä tulostaa.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Näytä/piilota sivupaneeli\npdfjs-toggle-sidebar-notification-button =\n    .title = Näytä/piilota sivupaneeli (dokumentissa on sisällys/liitteitä/tasoja)\npdfjs-toggle-sidebar-button-label = Näytä/piilota sivupaneeli\npdfjs-document-outline-button =\n    .title = Näytä dokumentin sisällys (laajenna tai kutista kohdat kaksoisnapsauttamalla)\npdfjs-document-outline-button-label = Dokumentin sisällys\npdfjs-attachments-button =\n    .title = Näytä liitteet\npdfjs-attachments-button-label = Liitteet\npdfjs-layers-button =\n    .title = Näytä tasot (kaksoisnapsauta palauttaaksesi kaikki tasot oletustilaan)\npdfjs-layers-button-label = Tasot\npdfjs-thumbs-button =\n    .title = Näytä pienoiskuvat\npdfjs-thumbs-button-label = Pienoiskuvat\npdfjs-current-outline-item-button =\n    .title = Etsi nykyinen sisällyksen kohta\npdfjs-current-outline-item-button-label = Nykyinen sisällyksen kohta\npdfjs-findbar-button =\n    .title = Etsi dokumentista\npdfjs-findbar-button-label = Etsi\npdfjs-additional-layers = Lisätasot\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Sivu { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Pienoiskuva sivusta { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Etsi\n    .placeholder = Etsi dokumentista…\npdfjs-find-previous-button =\n    .title = Etsi hakusanan edellinen osuma\npdfjs-find-previous-button-label = Edellinen\npdfjs-find-next-button =\n    .title = Etsi hakusanan seuraava osuma\npdfjs-find-next-button-label = Seuraava\npdfjs-find-highlight-checkbox = Korosta kaikki\npdfjs-find-match-case-checkbox-label = Huomioi kirjainkoko\npdfjs-find-match-diacritics-checkbox-label = Erota tarkkeet\npdfjs-find-entire-word-checkbox-label = Kokonaiset sanat\npdfjs-find-reached-top = Päästiin dokumentin alkuun, jatketaan lopusta\npdfjs-find-reached-bottom = Päästiin dokumentin loppuun, jatketaan alusta\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } / { $total } osuma\n       *[other] { $current } / { $total } osumaa\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Yli { $limit } osuma\n       *[other] Yli { $limit } osumaa\n    }\npdfjs-find-not-found = Hakusanaa ei löytynyt\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sivun leveys\npdfjs-page-scale-fit = Koko sivu\npdfjs-page-scale-auto = Automaattinen suurennus\npdfjs-page-scale-actual = Todellinen koko\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Sivu { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Tapahtui virhe ladattaessa PDF-tiedostoa.\npdfjs-invalid-file-error = Virheellinen tai vioittunut PDF-tiedosto.\npdfjs-missing-file-error = Puuttuva PDF-tiedosto.\npdfjs-unexpected-response-error = Odottamaton vastaus palvelimelta.\npdfjs-rendering-error = Tapahtui virhe piirrettäessä sivua.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-merkintä]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Kirjoita PDF-tiedoston salasana.\npdfjs-password-invalid = Virheellinen salasana. Yritä uudestaan.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Peruuta\npdfjs-web-fonts-disabled = Verkkosivujen omat kirjasinlajit on estetty: ei voida käyttää upotettuja PDF-kirjasinlajeja.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Teksti\npdfjs-editor-color-picker-free-text-input =\n    .title = Muuta tekstin väriä\npdfjs-editor-free-text-button-label = Teksti\npdfjs-editor-ink-button =\n    .title = Piirros\npdfjs-editor-color-picker-ink-input =\n    .title = Vaihda piirustuksen väriä\npdfjs-editor-ink-button-label = Piirros\npdfjs-editor-stamp-button =\n    .title = Lisää tai muokkaa kuvia\npdfjs-editor-stamp-button-label = Lisää tai muokkaa kuvia\npdfjs-editor-highlight-button =\n    .title = Korostus\npdfjs-editor-highlight-button-label = Korostus\npdfjs-highlight-floating-button1 =\n    .title = Korostus\n    .aria-label = Korostus\npdfjs-highlight-floating-button-label = Korostus\npdfjs-comment-floating-button =\n    .title = Kommentti\n    .aria-label = Kommentti\npdfjs-comment-floating-button-label = Kommentti\npdfjs-editor-comment-button =\n    .title = Kommentti\n    .aria-label = Kommentti\npdfjs-editor-comment-button-label = Kommentti\npdfjs-editor-signature-button =\n    .title = Lisää allekirjoitus\npdfjs-editor-signature-button-label = Lisää allekirjoitus\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Korostusmuokkain\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Piirustusmuokkain\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Allekirjoituksen muokkain: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Kuvamuokkain\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Poista piirros\npdfjs-editor-remove-freetext-button =\n    .title = Poista teksti\npdfjs-editor-remove-stamp-button =\n    .title = Poista kuva\npdfjs-editor-remove-highlight-button =\n    .title = Poista korostus\npdfjs-editor-remove-signature-button =\n    .title = Poista allekirjoitus\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Väri\npdfjs-editor-free-text-size-input = Koko\npdfjs-editor-ink-color-input = Väri\npdfjs-editor-ink-thickness-input = Paksuus\npdfjs-editor-ink-opacity-input = Peittävyys\npdfjs-editor-stamp-add-image-button =\n    .title = Lisää kuva\npdfjs-editor-stamp-add-image-button-label = Lisää kuva\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Paksuus\npdfjs-editor-free-highlight-thickness-title =\n    .title = Muuta paksuutta korostaessasi muita kohteita kuin tekstiä\npdfjs-editor-add-signature-container =\n    .aria-label = Allekirjoitussäätimet ja tallennetut allekirjoitukset\npdfjs-editor-signature-add-signature-button =\n    .title = Lisää uusi allekirjoitus\npdfjs-editor-signature-add-signature-button-label = Lisää uusi allekirjoitus\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Tallennettu allekirjoitus: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstimuokkain\n    .default-content = Aloita kirjoittaminen…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentti\n       *[other] Kommenttia\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Sulje sivupaneeli\n    .aria-label = Sulje sivupaneeli\npdfjs-editor-comments-sidebar-close-button-label = Sulje sivupaneeli\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Näetkö jotain huomionarvoista? Korosta se ja jätä kommentti.\npdfjs-editor-comments-sidebar-no-comments-link = Lue lisää\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Vaihtoehtoinen teksti\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Muokkaa vaihtoehtoista tekstiä\npdfjs-editor-alt-text-dialog-label = Valitse vaihtoehto\npdfjs-editor-alt-text-dialog-description = Vaihtoehtoinen teksti (\"alt-teksti\") auttaa ihmisiä, jotka eivät näe kuvaa tai kun kuva ei lataudu.\npdfjs-editor-alt-text-add-description-label = Lisää kuvaus\npdfjs-editor-alt-text-add-description-description = Pyri 1-2 lauseeseen, jotka kuvaavat aihetta, ympäristöä tai toimintaa.\npdfjs-editor-alt-text-mark-decorative-label = Merkitse koristeelliseksi\npdfjs-editor-alt-text-mark-decorative-description = Tätä käytetään koristekuville, kuten reunuksille tai vesileimoille.\npdfjs-editor-alt-text-cancel-button = Peruuta\npdfjs-editor-alt-text-save-button = Tallenna\npdfjs-editor-alt-text-decorative-tooltip = Merkitty koristeelliseksi\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Esimerkiksi \"Nuori mies istuu pöytään syömään aterian\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Vaihtoehtoinen teksti\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Vasen yläkulma - muuta kokoa\npdfjs-editor-resizer-top-middle =\n    .aria-label = Ylhäällä keskellä - muuta kokoa\npdfjs-editor-resizer-top-right =\n    .aria-label = Oikea yläkulma - muuta kokoa\npdfjs-editor-resizer-middle-right =\n    .aria-label = Keskellä oikealla - muuta kokoa\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Oikea alakulma - muuta kokoa\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Alhaalla keskellä - muuta kokoa\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Vasen alakulma - muuta kokoa\npdfjs-editor-resizer-middle-left =\n    .aria-label = Keskellä vasemmalla - muuta kokoa\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Korostusväri\npdfjs-editor-colorpicker-button =\n    .title = Vaihda väri\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Värivalinnat\npdfjs-editor-colorpicker-yellow =\n    .title = Keltainen\npdfjs-editor-colorpicker-green =\n    .title = Vihreä\npdfjs-editor-colorpicker-blue =\n    .title = Sininen\npdfjs-editor-colorpicker-pink =\n    .title = Pinkki\npdfjs-editor-colorpicker-red =\n    .title = Punainen\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Näytä kaikki\npdfjs-editor-highlight-show-all-button =\n    .title = Näytä kaikki\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Muokkaa vaihtoehtoista tekstiä (kuvan kuvaus)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Lisää vaihtoehtoinen teksti (kuvan kuvaus)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Kirjoita kuvaus tähän…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Lyhyt kuvaus ihmisille, jotka eivät näe kuvaa tai kun kuva ei lataudu.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Tämä vaihtoehtoinen teksti luotiin automaattisesti, ja se voi olla epätarkka.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Lue lisää\npdfjs-editor-new-alt-text-create-automatically-button-label = Luo vaihtoehtoinen teksti automaattisesti\npdfjs-editor-new-alt-text-not-now-button = Ei nyt\npdfjs-editor-new-alt-text-error-title = Vaihtoehtotekstiä ei voitu luoda automaattisesti\npdfjs-editor-new-alt-text-error-description = Kirjoita oma vaihtoehtoinen teksti tai yritä myöhemmin uudelleen.\npdfjs-editor-new-alt-text-error-close-button = Sulje\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Ladataan vaihtoehtoisen tekstin tekoälymallia ({ $downloadedSize } / { $totalSize } Mt)\n    .aria-valuetext = Ladataan vaihtoehtoisen tekstin tekoälymallia ({ $downloadedSize } / { $totalSize } Mt)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Vaihtoehtoinen teksti lisätty\npdfjs-editor-new-alt-text-added-button-label = Vaihtoehtoinen teksti lisätty\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Vaihtoehtoinen teksti puuttuu\npdfjs-editor-new-alt-text-missing-button-label = Vaihtoehtoinen teksti puuttuu\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Tarkista vaihtoehtoinen teksti\npdfjs-editor-new-alt-text-to-review-button-label = Tarkista vaihtoehtoinen teksti\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Luotu automaattisesti: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Kuvan vaihtoehtoisen tekstin asetukset\npdfjs-image-alt-text-settings-button-label = Kuvan vaihtoehtoisen tekstin asetukset\npdfjs-editor-alt-text-settings-dialog-label = Kuvan vaihtoehtoisen tekstin asetukset\npdfjs-editor-alt-text-settings-automatic-title = Automaattinen vaihtoehtoinen teksti\npdfjs-editor-alt-text-settings-create-model-button-label = Luo vaihtoehtoinen teksti automaattisesti\npdfjs-editor-alt-text-settings-create-model-description = Ehdottaa kuvauksia, jotka auttavat ihmisiä, jotka eivät näe kuvaa tai kun kuva ei lataudu.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Vaihtoehtoisen tekstin tekoälymalli ({ $totalSize } Mt)\npdfjs-editor-alt-text-settings-ai-model-description = Toimii paikallisesti laitteellasi, joten tietosi pysyvät yksityisinä. Vaadittu automaattiselle vaihtoehtoiselle tekstille.\npdfjs-editor-alt-text-settings-delete-model-button = Poista\npdfjs-editor-alt-text-settings-download-model-button = Lataa\npdfjs-editor-alt-text-settings-downloading-model-button = Ladataan…\npdfjs-editor-alt-text-settings-editor-title = Vaihtoehtoisen tekstin muokkain\npdfjs-editor-alt-text-settings-show-dialog-button-label = Näytä vaihtoehtoisen tekstin muokkain heti, kun lisäät kuvan\npdfjs-editor-alt-text-settings-show-dialog-description = Auttaa varmistamaan, että kaikissa kuvissasi on vaihtoehtoinen teksti.\npdfjs-editor-alt-text-settings-close-button = Sulje\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Korostus lisätty\npdfjs-editor-freetext-added-alert = Teksti lisätty\npdfjs-editor-ink-added-alert = Piirustus lisätty\npdfjs-editor-stamp-added-alert = Kuva lisätty\npdfjs-editor-signature-added-alert = Allekirjoitus lisätty\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Korostus poistettu\npdfjs-editor-undo-bar-message-freetext = Teksti poistettu\npdfjs-editor-undo-bar-message-ink = Piirustus poistettu\npdfjs-editor-undo-bar-message-stamp = Kuva poistettu\npdfjs-editor-undo-bar-message-signature = Allekirjoitus poistettu\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } merkintä poistettu\n       *[other] { $count } merkintää poistettu\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Kumoa\npdfjs-editor-undo-bar-undo-button-label = Kumoa\npdfjs-editor-undo-bar-close-button =\n    .title = Sulje\npdfjs-editor-undo-bar-close-button-label = Sulje\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Tämän ikkunan avulla käyttäjä voi luoda allekirjoituksen PDF-asiakirjaan lisättäväksi. Käyttäjä voi muokata nimeä (joka toimii myös vaihtoehtoisena tekstinä) ja valinnaisesti tallentaa allekirjoituksen toistuvaa käyttöä varten.\npdfjs-editor-add-signature-dialog-title = Lisää allekirjoitus\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Kirjoita\n    .title = Kirjoita\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Piirrä\n    .title = Piirrä\npdfjs-editor-add-signature-image-button = Kuva\n    .title = Kuva\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Kirjoita allekirjoituksesi\n    .placeholder = Kirjoita allekirjoituksesi\npdfjs-editor-add-signature-draw-placeholder = Piirrä allekirjoituksesi\npdfjs-editor-add-signature-draw-thickness-range-label = Paksuus\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Piirustuksen paksuus: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Lähetä tiedosto vetämällä se tähän\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Tai selaa kuvatiedostoja\n       *[other] Tai selaa kuvatiedostoja\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Kuvaus (vaihtoehtoinen teksti)\npdfjs-editor-add-signature-description-input =\n    .title = Kuvaus (vaihtoehtoinen teksti)\npdfjs-editor-add-signature-description-default-when-drawing = Allekirjoitus\npdfjs-editor-add-signature-clear-button-label = Tyhjennä allekirjoitus\npdfjs-editor-add-signature-clear-button =\n    .title = Tyhjennä allekirjoitus\npdfjs-editor-add-signature-save-checkbox = Tallenna allekirjoitus\npdfjs-editor-add-signature-save-warning-message = Olet saavuttanut viiden tallennetun allekirjoituksen rajan. Poista yksi säästääksesi lisää.\npdfjs-editor-add-signature-image-upload-error-title = Kuvaa ei voitu lähettää\npdfjs-editor-add-signature-image-upload-error-description = Tarkista verkkoyhteyden tila tai kokeile toista kuvaa.\npdfjs-editor-add-signature-image-no-data-error-title = Tätä kuvaa ei voida muuntaa allekirjoitukseksi\npdfjs-editor-add-signature-image-no-data-error-description = Yritä lähettää eri kuva.\npdfjs-editor-add-signature-error-close-button = Sulje\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Peruuta\npdfjs-editor-add-signature-add-button = Lisää\npdfjs-editor-edit-signature-update-button = Päivitä\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Muokkaa kommenttia\npdfjs-editor-edit-comment-popup-button =\n    .title = Muokkaa kommenttia\npdfjs-editor-delete-comment-popup-button-label = Poista kommentti\npdfjs-editor-delete-comment-popup-button =\n    .title = Poista kommentti\npdfjs-show-comment-button =\n    .title = Näytä kommentti\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Toiminnot\npdfjs-editor-edit-comment-actions-button =\n    .title = Toiminnot\npdfjs-editor-edit-comment-close-button-label = Sulje\npdfjs-editor-edit-comment-close-button =\n    .title = Sulje\npdfjs-editor-edit-comment-actions-edit-button-label = Muokkaa\npdfjs-editor-edit-comment-actions-delete-button-label = Poista\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Kirjoita kommenttisi\npdfjs-editor-edit-comment-manager-cancel-button = Peruuta\npdfjs-editor-edit-comment-manager-save-button = Tallenna\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Muokkaa kommenttia\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Päivitä\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Lisää kommentti\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Lisää\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Aloita kirjoittaminen…\npdfjs-editor-edit-comment-dialog-cancel-button = Peruuta\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Muokkaa kommenttia\npdfjs-editor-add-comment-button =\n    .title = Lisää kommentti\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Poista tallennettu allekirjoitus\npdfjs-editor-delete-signature-button-label1 = Poista tallennettu allekirjoitus\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Muokkaa kuvausta\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Muokkaa kuvausta\n"
  },
  {
    "path": "viewer/locale/fr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Page précédente\npdfjs-previous-button-label = Précédent\npdfjs-next-button =\n    .title = Page suivante\npdfjs-next-button-label = Suivant\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Page\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = sur { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } sur { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom arrière\npdfjs-zoom-out-button-label = Zoom arrière\npdfjs-zoom-in-button =\n    .title = Zoom avant\npdfjs-zoom-in-button-label = Zoom avant\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Basculer en mode présentation\npdfjs-presentation-mode-button-label = Mode présentation\npdfjs-open-file-button =\n    .title = Ouvrir le fichier\npdfjs-open-file-button-label = Ouvrir le fichier\npdfjs-print-button =\n    .title = Imprimer\npdfjs-print-button-label = Imprimer\npdfjs-save-button =\n    .title = Enregistrer\npdfjs-save-button-label = Enregistrer\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Télécharger\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Télécharger\npdfjs-bookmark-button =\n    .title = Page courante (montrer l’adresse de la page courante)\npdfjs-bookmark-button-label = Page courante\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Outils\npdfjs-tools-button-label = Outils\npdfjs-first-page-button =\n    .title = Aller à la première page\npdfjs-first-page-button-label = Aller à la première page\npdfjs-last-page-button =\n    .title = Aller à la dernière page\npdfjs-last-page-button-label = Aller à la dernière page\npdfjs-page-rotate-cw-button =\n    .title = Rotation horaire\npdfjs-page-rotate-cw-button-label = Rotation horaire\npdfjs-page-rotate-ccw-button =\n    .title = Rotation antihoraire\npdfjs-page-rotate-ccw-button-label = Rotation antihoraire\npdfjs-cursor-text-select-tool-button =\n    .title = Activer l’outil de sélection de texte\npdfjs-cursor-text-select-tool-button-label = Outil de sélection de texte\npdfjs-cursor-hand-tool-button =\n    .title = Activer l’outil main\npdfjs-cursor-hand-tool-button-label = Outil main\npdfjs-scroll-page-button =\n    .title = Utiliser le défilement par page\npdfjs-scroll-page-button-label = Défilement par page\npdfjs-scroll-vertical-button =\n    .title = Utiliser le défilement vertical\npdfjs-scroll-vertical-button-label = Défilement vertical\npdfjs-scroll-horizontal-button =\n    .title = Utiliser le défilement horizontal\npdfjs-scroll-horizontal-button-label = Défilement horizontal\npdfjs-scroll-wrapped-button =\n    .title = Utiliser le défilement par bloc\npdfjs-scroll-wrapped-button-label = Défilement par bloc\npdfjs-spread-none-button =\n    .title = Ne pas afficher les pages deux à deux\npdfjs-spread-none-button-label = Pas de double affichage\npdfjs-spread-odd-button =\n    .title = Afficher les pages par deux, impaires à gauche\npdfjs-spread-odd-button-label = Doubles pages, impaires à gauche\npdfjs-spread-even-button =\n    .title = Afficher les pages par deux, paires à gauche\npdfjs-spread-even-button-label = Doubles pages, paires à gauche\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propriétés du document…\npdfjs-document-properties-button-label = Propriétés du document…\npdfjs-document-properties-file-name = Nom du fichier :\npdfjs-document-properties-file-size = Taille du fichier :\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } Ko ({ $b } octets)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } Mo ({ $b } octets)\npdfjs-document-properties-title = Titre :\npdfjs-document-properties-author = Auteur :\npdfjs-document-properties-subject = Sujet :\npdfjs-document-properties-keywords = Mots-clés :\npdfjs-document-properties-creation-date = Date de création :\npdfjs-document-properties-modification-date = Modifié le :\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Créé par :\npdfjs-document-properties-producer = Outil de conversion PDF :\npdfjs-document-properties-version = Version PDF :\npdfjs-document-properties-page-count = Nombre de pages :\npdfjs-document-properties-page-size = Taille de la page :\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = paysage\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = lettre\npdfjs-document-properties-page-size-name-legal = document juridique\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Affichage rapide des pages web :\npdfjs-document-properties-linearized-yes = Oui\npdfjs-document-properties-linearized-no = Non\npdfjs-document-properties-close-button = Fermer\n\n## Print\n\npdfjs-print-progress-message = Préparation du document pour l’impression…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Annuler\npdfjs-printing-not-supported = Attention : l’impression n’est pas totalement prise en charge par ce navigateur.\npdfjs-printing-not-ready = Attention : le PDF n’est pas entièrement chargé pour pouvoir l’imprimer.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Afficher/Masquer le panneau latéral\npdfjs-toggle-sidebar-notification-button =\n    .title = Afficher/Masquer le panneau latéral (le document contient des signets/pièces jointes/calques)\npdfjs-toggle-sidebar-button-label = Afficher/Masquer le panneau latéral\npdfjs-document-outline-button =\n    .title = Afficher les signets du document (double-cliquer pour développer/réduire tous les éléments)\npdfjs-document-outline-button-label = Signets du document\npdfjs-attachments-button =\n    .title = Afficher les pièces jointes\npdfjs-attachments-button-label = Pièces jointes\npdfjs-layers-button =\n    .title = Afficher les calques (double-cliquer pour réinitialiser tous les calques à l’état par défaut)\npdfjs-layers-button-label = Calques\npdfjs-thumbs-button =\n    .title = Afficher les vignettes\npdfjs-thumbs-button-label = Vignettes\npdfjs-current-outline-item-button =\n    .title = Trouver l’élément de plan actuel\npdfjs-current-outline-item-button-label = Élément de plan actuel\npdfjs-findbar-button =\n    .title = Rechercher dans le document\npdfjs-findbar-button-label = Rechercher\npdfjs-additional-layers = Calques additionnels\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Vignette de la page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Rechercher\n    .placeholder = Rechercher dans le document…\npdfjs-find-previous-button =\n    .title = Trouver l’occurrence précédente de l’expression\npdfjs-find-previous-button-label = Précédent\npdfjs-find-next-button =\n    .title = Trouver la prochaine occurrence de l’expression\npdfjs-find-next-button-label = Suivant\npdfjs-find-highlight-checkbox = Tout surligner\npdfjs-find-match-case-checkbox-label = Respecter la casse\npdfjs-find-match-diacritics-checkbox-label = Respecter les accents et diacritiques\npdfjs-find-entire-word-checkbox-label = Mots entiers\npdfjs-find-reached-top = Haut de la page atteint, poursuite depuis la fin\npdfjs-find-reached-bottom = Bas de la page atteint, poursuite au début\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = Occurrence { $current } sur { $total }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Plus d’{ $limit } occurrence\n       *[other] Plus de { $limit } occurrences\n    }\npdfjs-find-not-found = Expression non trouvée\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Pleine largeur\npdfjs-page-scale-fit = Page entière\npdfjs-page-scale-auto = Zoom automatique\npdfjs-page-scale-actual = Taille réelle\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Page { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Une erreur s’est produite lors du chargement du fichier PDF.\npdfjs-invalid-file-error = Fichier PDF invalide ou corrompu.\npdfjs-missing-file-error = Fichier PDF manquant.\npdfjs-unexpected-response-error = Réponse inattendue du serveur.\npdfjs-rendering-error = Une erreur s’est produite lors de l’affichage de la page.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Annotation { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Veuillez saisir le mot de passe pour ouvrir ce fichier PDF.\npdfjs-password-invalid = Mot de passe incorrect. Veuillez réessayer.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Annuler\npdfjs-web-fonts-disabled = Les polices web sont désactivées : impossible d’utiliser les polices intégrées au PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texte\npdfjs-editor-color-picker-free-text-input =\n    .title = Changer la couleur du texte\npdfjs-editor-free-text-button-label = Texte\npdfjs-editor-ink-button =\n    .title = Dessiner\npdfjs-editor-color-picker-ink-input =\n    .title = Changer la couleur pour dessiner\npdfjs-editor-ink-button-label = Dessiner\npdfjs-editor-stamp-button =\n    .title = Ajouter ou modifier des images\npdfjs-editor-stamp-button-label = Ajouter ou modifier des images\npdfjs-editor-highlight-button =\n    .title = Surligner\npdfjs-editor-highlight-button-label = Surligner\npdfjs-highlight-floating-button1 =\n    .title = Surligner\n    .aria-label = Surligner\npdfjs-highlight-floating-button-label = Surligner\npdfjs-comment-floating-button =\n    .title = Commenter\n    .aria-label = Commenter\npdfjs-comment-floating-button-label = Commenter\npdfjs-editor-comment-button =\n    .title = Commenter\n    .aria-label = Commenter\npdfjs-editor-comment-button-label = Commenter\npdfjs-editor-signature-button =\n    .title = Ajouter une signature\npdfjs-editor-signature-button-label = Ajouter une signature\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Éditeur de surlignage\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Éditeur de dessins\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Éditeur de signature : { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Éditeur d’images\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Supprimer le dessin\npdfjs-editor-remove-freetext-button =\n    .title = Supprimer le texte\npdfjs-editor-remove-stamp-button =\n    .title = Supprimer l’image\npdfjs-editor-remove-highlight-button =\n    .title = Supprimer le surlignage\npdfjs-editor-remove-signature-button =\n    .title = Retirer la signature\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Couleur\npdfjs-editor-free-text-size-input = Taille\npdfjs-editor-ink-color-input = Couleur\npdfjs-editor-ink-thickness-input = Épaisseur\npdfjs-editor-ink-opacity-input = Opacité\npdfjs-editor-stamp-add-image-button =\n    .title = Ajouter une image\npdfjs-editor-stamp-add-image-button-label = Ajouter une image\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Épaisseur\npdfjs-editor-free-highlight-thickness-title =\n    .title = Modifier l’épaisseur pour le surlignage d’éléments non textuels\npdfjs-editor-add-signature-container =\n    .aria-label = Contrôles de signature et signatures enregistrées\npdfjs-editor-signature-add-signature-button =\n    .title = Ajouter une nouvelle signature\npdfjs-editor-signature-add-signature-button-label = Ajouter une nouvelle signature\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Signature enregistrée : { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Éditeur de texte\n    .default-content = Commencez à écrire…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Commentaire\n       *[other] Commentaires\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Fermer le panneau latéral\n    .aria-label = Fermer le panneau latéral\npdfjs-editor-comments-sidebar-close-button-label = Fermer le panneau latéral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vous remarquez quelque chose d’intéressant ? Mettez-le en surbrillance et ajoutez un commentaire.\npdfjs-editor-comments-sidebar-no-comments-link = En savoir plus\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texte alternatif\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Modifier le texte alternatif\npdfjs-editor-alt-text-dialog-label = Sélectionnez une option\npdfjs-editor-alt-text-dialog-description = Le texte alternatif est utile lorsque des personnes ne peuvent pas voir l’image ou que l’image ne se charge pas.\npdfjs-editor-alt-text-add-description-label = Ajouter une description\npdfjs-editor-alt-text-add-description-description = Il est conseillé de rédiger une ou deux phrases décrivant le sujet, le cadre ou les actions.\npdfjs-editor-alt-text-mark-decorative-label = Marquer comme décorative\npdfjs-editor-alt-text-mark-decorative-description = Cette option est utilisée pour les images décoratives, comme les bordures ou les filigranes.\npdfjs-editor-alt-text-cancel-button = Annuler\npdfjs-editor-alt-text-save-button = Enregistrer\npdfjs-editor-alt-text-decorative-tooltip = Marquée comme décorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Par exemple, « Un jeune homme est assis à une table pour prendre un repas »\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texte alternatif\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Coin supérieur gauche — redimensionner\npdfjs-editor-resizer-top-middle =\n    .aria-label = Milieu haut — redimensionner\npdfjs-editor-resizer-top-right =\n    .aria-label = Coin supérieur droit — redimensionner\npdfjs-editor-resizer-middle-right =\n    .aria-label = Milieu droit — redimensionner\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Coin inférieur droit — redimensionner\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Centre bas — redimensionner\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Coin inférieur gauche — redimensionner\npdfjs-editor-resizer-middle-left =\n    .aria-label = Milieu gauche — redimensionner\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Couleur de surlignage\npdfjs-editor-colorpicker-button =\n    .title = Changer de couleur\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Choix de couleurs\npdfjs-editor-colorpicker-yellow =\n    .title = Jaune\npdfjs-editor-colorpicker-green =\n    .title = Vert\npdfjs-editor-colorpicker-blue =\n    .title = Bleu\npdfjs-editor-colorpicker-pink =\n    .title = Rose\npdfjs-editor-colorpicker-red =\n    .title = Rouge\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Tout afficher\npdfjs-editor-highlight-show-all-button =\n    .title = Tout afficher\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Modifier le texte alternatif (description de l’image)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Ajouter du texte alternatif (description de l’image)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Rédigez votre description ici…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Courte description pour les personnes qui ne peuvent pas voir l’image ou lorsque l’image ne se charge pas.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ce texte alternatif a été créé automatiquement et peut être inexact.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = En savoir plus\npdfjs-editor-new-alt-text-create-automatically-button-label = Créer automatiquement le texte alternatif\npdfjs-editor-new-alt-text-not-now-button = Pas maintenant\npdfjs-editor-new-alt-text-error-title = Impossible de créer automatiquement le texte alternatif\npdfjs-editor-new-alt-text-error-description = Veuillez rédiger votre propre texte alternatif ou réessayer plus tard.\npdfjs-editor-new-alt-text-error-close-button = Fermer\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Téléchargement du modèle d’IA de texte alternatif ({ $downloadedSize } sur { $totalSize } Mo)\n    .aria-valuetext = Téléchargement du modèle d’IA de texte alternatif ({ $downloadedSize } sur { $totalSize } Mo)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texte alternatif ajouté\npdfjs-editor-new-alt-text-added-button-label = Texte alternatif ajouté\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Texte alternatif manquant\npdfjs-editor-new-alt-text-missing-button-label = Texte alternatif manquant\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Réviser le texte alternatif\npdfjs-editor-new-alt-text-to-review-button-label = Réviser le texte alternatif\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Créé automatiquement : { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Paramètres du texte alternatif des images\npdfjs-image-alt-text-settings-button-label = Paramètres du texte alternatif des images\npdfjs-editor-alt-text-settings-dialog-label = Paramètres du texte alternatif des images\npdfjs-editor-alt-text-settings-automatic-title = Texte alternatif automatique\npdfjs-editor-alt-text-settings-create-model-button-label = Créer automatiquement le texte alternatif\npdfjs-editor-alt-text-settings-create-model-description = Suggère des descriptions pour aider les personnes qui ne peuvent pas voir l’image ou lorsque l’image ne se charge pas.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modèle d’IA de texte alternatif ({ $totalSize } Mo)\npdfjs-editor-alt-text-settings-ai-model-description = Fonctionne localement sur votre appareil, vos données restent privées. Obligatoire pour la génération automatique de texte alternatif.\npdfjs-editor-alt-text-settings-delete-model-button = Supprimer\npdfjs-editor-alt-text-settings-download-model-button = Télécharger\npdfjs-editor-alt-text-settings-downloading-model-button = Téléchargement…\npdfjs-editor-alt-text-settings-editor-title = Éditeur de texte alternatif\npdfjs-editor-alt-text-settings-show-dialog-button-label = Afficher l’éditeur de texte alternatif immédiatement lors de l’ajout d’une image\npdfjs-editor-alt-text-settings-show-dialog-description = Vous aide à vous assurer que toutes vos images ont du texte alternatif.\npdfjs-editor-alt-text-settings-close-button = Fermer\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Surlignage ajouté\npdfjs-editor-freetext-added-alert = Texte ajouté\npdfjs-editor-ink-added-alert = Dessin ajouté\npdfjs-editor-stamp-added-alert = Image ajoutée\npdfjs-editor-signature-added-alert = Signature ajoutée\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Surlignage supprimé\npdfjs-editor-undo-bar-message-freetext = Texte supprimé\npdfjs-editor-undo-bar-message-ink = Dessin supprimé\npdfjs-editor-undo-bar-message-stamp = Image supprimée\npdfjs-editor-undo-bar-message-signature = Signature retirée\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotation supprimée\n       *[other] { $count } annotations supprimées\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Annuler\npdfjs-editor-undo-bar-undo-button-label = Annuler\npdfjs-editor-undo-bar-close-button =\n    .title = Fermer\npdfjs-editor-undo-bar-close-button-label = Fermer\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Cette fenêtre permet de créer une signature à ajouter à un document au format PDF. Il est possible d’en modifier le nom (qui sert également de texte alternatif) et, éventuellement, de l’enregistrer pour une utilisation répétée.\npdfjs-editor-add-signature-dialog-title = Ajout d’une signature\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Saisir\n    .title = Saisir au clavier\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dessiner\n    .title = Dessiner\npdfjs-editor-add-signature-image-button = Image\n    .title = Image\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Saisissez votre signature\n    .placeholder = Saisissez votre signature\npdfjs-editor-add-signature-draw-placeholder = Tracez votre signature\npdfjs-editor-add-signature-draw-thickness-range-label = Épaisseur\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Épaisseur du trait : { $thickness }\npdfjs-editor-add-signature-image-placeholder = Déposez un fichier ici pour l’envoyer\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ou choisissez parmi les fichiers image\n       *[other] Ou parcourez les fichiers image\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Description (texte alternatif)\npdfjs-editor-add-signature-description-input =\n    .title = Description (texte alternatif)\npdfjs-editor-add-signature-description-default-when-drawing = Signature\npdfjs-editor-add-signature-clear-button-label = Effacer la signature\npdfjs-editor-add-signature-clear-button =\n    .title = Effacer la signature\npdfjs-editor-add-signature-save-checkbox = Enregistrer la signature\npdfjs-editor-add-signature-save-warning-message = Vous avez atteint la limite de 5 signatures enregistrées. Supprimez-en une pour en enregistrer une autre.\npdfjs-editor-add-signature-image-upload-error-title = Impossible d’envoyer l’image\npdfjs-editor-add-signature-image-upload-error-description = Vérifiez votre connexion réseau ou essayez avec une autre image.\npdfjs-editor-add-signature-image-no-data-error-title = Impossible de convertir cette image en signature\npdfjs-editor-add-signature-image-no-data-error-description = Veuillez essayer d’envoyer une autre image.\npdfjs-editor-add-signature-error-close-button = Fermer\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annuler\npdfjs-editor-add-signature-add-button = Ajouter\npdfjs-editor-edit-signature-update-button = Mettre à jour\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Modifier le commentaire\npdfjs-editor-edit-comment-popup-button =\n    .title = Modifier le commentaire\npdfjs-editor-delete-comment-popup-button-label = Supprimer le commentaire\npdfjs-editor-delete-comment-popup-button =\n    .title = Supprimer le commentaire\npdfjs-show-comment-button =\n    .title = Voir les commentaires\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Actions\npdfjs-editor-edit-comment-actions-button =\n    .title = Actions\npdfjs-editor-edit-comment-close-button-label = Fermer\npdfjs-editor-edit-comment-close-button =\n    .title = Fermer\npdfjs-editor-edit-comment-actions-edit-button-label = Modifier\npdfjs-editor-edit-comment-actions-delete-button-label = Supprimer\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Saisissez votre commentaire\npdfjs-editor-edit-comment-manager-cancel-button = Annuler\npdfjs-editor-edit-comment-manager-save-button = Enregistrer\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Modifier le commentaire\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Mettre à jour\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Ajouter un commentaire\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Ajouter\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Commencer à écrire…\npdfjs-editor-edit-comment-dialog-cancel-button = Annuler\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Modifier le commentaire\npdfjs-editor-add-comment-button =\n    .title = Ajouter un commentaire\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Supprimer la signature enregistrée\npdfjs-editor-delete-signature-button-label1 = Supprimer la signature enregistrée\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Modifier la description\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Modifier la description\n"
  },
  {
    "path": "viewer/locale/fur/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagjine di prime\npdfjs-previous-button-label = Indaûr\npdfjs-next-button =\n    .title = Prossime pagjine\npdfjs-next-button-label = Indevant\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagjine\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = di { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } di { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Impiçulìs\npdfjs-zoom-out-button-label = Impiçulìs\npdfjs-zoom-in-button =\n    .title = Ingrandìs\npdfjs-zoom-in-button-label = Ingrandìs\npdfjs-zoom-select =\n    .title = Ingrandiment\npdfjs-presentation-mode-button =\n    .title = Passe ae modalitât presentazion\npdfjs-presentation-mode-button-label = Modalitât presentazion\npdfjs-open-file-button =\n    .title = Vierç un file\npdfjs-open-file-button-label = Vierç\npdfjs-print-button =\n    .title = Stampe\npdfjs-print-button-label = Stampe\npdfjs-save-button =\n    .title = Salve\npdfjs-save-button-label = Salve\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Discjame\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Discjame\npdfjs-bookmark-button =\n    .title = Pagjine corinte (mostre URL de pagjine atuâl)\npdfjs-bookmark-button-label = Pagjine corinte\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Struments\npdfjs-tools-button-label = Struments\npdfjs-first-page-button =\n    .title = Va ae prime pagjine\npdfjs-first-page-button-label = Va ae prime pagjine\npdfjs-last-page-button =\n    .title = Va ae ultime pagjine\npdfjs-last-page-button-label = Va ae ultime pagjine\npdfjs-page-rotate-cw-button =\n    .title = Zire in sens orari\npdfjs-page-rotate-cw-button-label = Zire in sens orari\npdfjs-page-rotate-ccw-button =\n    .title = Zire in sens antiorari\npdfjs-page-rotate-ccw-button-label = Zire in sens antiorari\npdfjs-cursor-text-select-tool-button =\n    .title = Ative il strument di selezion dal test\npdfjs-cursor-text-select-tool-button-label = Strument di selezion dal test\npdfjs-cursor-hand-tool-button =\n    .title = Ative il strument manute\npdfjs-cursor-hand-tool-button-label = Strument manute\npdfjs-scroll-page-button =\n    .title = Dopre il scoriment des pagjinis\npdfjs-scroll-page-button-label = Scoriment pagjinis\npdfjs-scroll-vertical-button =\n    .title = Dopre scoriment verticâl\npdfjs-scroll-vertical-button-label = Scoriment verticâl\npdfjs-scroll-horizontal-button =\n    .title = Dopre scoriment orizontâl\npdfjs-scroll-horizontal-button-label = Scoriment orizontâl\npdfjs-scroll-wrapped-button =\n    .title = Dopre scoriment par blocs\npdfjs-scroll-wrapped-button-label = Scoriment par blocs\npdfjs-spread-none-button =\n    .title = No sta meti dongje pagjinis in cubie\npdfjs-spread-none-button-label = No cubiis di pagjinis\npdfjs-spread-odd-button =\n    .title = Met dongje cubiis di pagjinis scomençant des pagjinis dispar\npdfjs-spread-odd-button-label = Cubiis di pagjinis, dispar a çampe\npdfjs-spread-even-button =\n    .title = Met dongje cubiis di pagjinis scomençant des pagjinis pâr\npdfjs-spread-even-button-label = Cubiis di pagjinis, pâr a çampe\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Proprietâts dal document…\npdfjs-document-properties-button-label = Proprietâts dal document…\npdfjs-document-properties-file-name = Non dal file:\npdfjs-document-properties-file-size = Dimension dal file:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titul:\npdfjs-document-properties-author = Autôr:\npdfjs-document-properties-subject = Ogjet:\npdfjs-document-properties-keywords = Peraulis clâf:\npdfjs-document-properties-creation-date = Date di creazion:\npdfjs-document-properties-modification-date = Date di modifiche:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creatôr\npdfjs-document-properties-producer = Gjeneradôr PDF:\npdfjs-document-properties-version = Version PDF:\npdfjs-document-properties-page-count = Numar di pagjinis:\npdfjs-document-properties-page-size = Dimension de pagjine:\npdfjs-document-properties-page-size-unit-inches = oncis\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = verticâl\npdfjs-document-properties-page-size-orientation-landscape = orizontâl\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letare\npdfjs-document-properties-page-size-name-legal = Legâl\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Visualizazion web svelte:\npdfjs-document-properties-linearized-yes = Sì\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Siere\n\n## Print\n\npdfjs-print-progress-message = Daûr a prontâ il document pe stampe…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anule\npdfjs-printing-not-supported = Atenzion: la stampe no je supuartade ad implen di chest navigadôr.\npdfjs-printing-not-ready = Atenzion: il PDF nol è stât cjamât dal dut pe stampe.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Ative/Disative sbare laterâl\npdfjs-toggle-sidebar-notification-button =\n    .title = Ative/Disative sbare laterâl (il document al conten struture/zontis/strâts)\npdfjs-toggle-sidebar-button-label = Ative/Disative sbare laterâl\npdfjs-document-outline-button =\n    .title = Mostre la struture dal document (dopli clic par slargjâ/strenzi ducj i elements)\npdfjs-document-outline-button-label = Struture dal document\npdfjs-attachments-button =\n    .title = Mostre lis zontis\npdfjs-attachments-button-label = Zontis\npdfjs-layers-button =\n    .title = Mostre i strâts (dopli clic par ristabilî ducj i strâts al stât predefinît)\npdfjs-layers-button-label = Strâts\npdfjs-thumbs-button =\n    .title = Mostre miniaturis\npdfjs-thumbs-button-label = Miniaturis\npdfjs-current-outline-item-button =\n    .title = Cjate l'element de struture atuâl\npdfjs-current-outline-item-button-label = Element de struture atuâl\npdfjs-findbar-button =\n    .title = Cjate tal document\npdfjs-findbar-button-label = Cjate\npdfjs-additional-layers = Strâts adizionâi\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagjine { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniature de pagjine { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Cjate\n    .placeholder = Cjate tal document…\npdfjs-find-previous-button =\n    .title = Cjate il câs precedent dal test\npdfjs-find-previous-button-label = Precedent\npdfjs-find-next-button =\n    .title = Cjate il câs sucessîf dal test\npdfjs-find-next-button-label = Sucessîf\npdfjs-find-highlight-checkbox = Evidenzie dut\npdfjs-find-match-case-checkbox-label = Fâs distinzion tra maiusculis e minusculis\npdfjs-find-match-diacritics-checkbox-label = Corispondence diacritiche\npdfjs-find-entire-word-checkbox-label = Peraulis interiis\npdfjs-find-reached-top = Si è rivâts al inizi dal document e si à continuât de fin\npdfjs-find-reached-bottom = Si è rivât ae fin dal document e si à continuât dal inizi\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } di { $total } corispondence\n       *[other] { $current } di { $total } corispondencis\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Plui di { $limit } corispondence\n       *[other] Plui di { $limit } corispondencis\n    }\npdfjs-find-not-found = Test no cjatât\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Largjece de pagjine\npdfjs-page-scale-fit = Pagjine interie\npdfjs-page-scale-auto = Ingrandiment automatic\npdfjs-page-scale-actual = Dimension reâl\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagjine { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Al è vignût fûr un erôr intant che si cjariave il PDF.\npdfjs-invalid-file-error = File PDF no valit o ruvinât.\npdfjs-missing-file-error = Al mancje il file PDF.\npdfjs-unexpected-response-error = Rispueste dal servidôr inspietade.\npdfjs-rendering-error = Al è vignût fûr un erôr tal realizâ la visualizazion de pagjine.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotazion { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Inserìs la password par vierzi chest file PDF.\npdfjs-password-invalid = Password no valide. Par plasê torne prove.\npdfjs-password-ok-button = Va ben\npdfjs-password-cancel-button = Anule\npdfjs-web-fonts-disabled = I caratars dal Web a son disativâts: Impussibil doprâ i caratars PDF incorporâts.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Test\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambie colôr dal test\npdfjs-editor-free-text-button-label = Test\npdfjs-editor-ink-button =\n    .title = Dissen\npdfjs-editor-color-picker-ink-input =\n    .title = Cambie colôr dal dissen\npdfjs-editor-ink-button-label = Dissen\npdfjs-editor-stamp-button =\n    .title = Zonte o modifiche imagjins\npdfjs-editor-stamp-button-label = Zonte o modifiche imagjins\npdfjs-editor-highlight-button =\n    .title = Evidenzie\npdfjs-editor-highlight-button-label = Evidenzie\npdfjs-highlight-floating-button1 =\n    .title = Evidenzie\n    .aria-label = Evidenzie\npdfjs-highlight-floating-button-label = Evidenzie\npdfjs-comment-floating-button =\n    .title = Comente\n    .aria-label = Comente\npdfjs-comment-floating-button-label = Comente\npdfjs-editor-comment-button =\n    .title = Comente\n    .aria-label = Comente\npdfjs-editor-comment-button-label = Comente\npdfjs-editor-signature-button =\n    .title = Zonte firme\npdfjs-editor-signature-button-label = Zonte firme\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Modifiche evidenziazions\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Modifiche dissens\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editôr firmis: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Modifiche imagjins\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Gjave dissen\npdfjs-editor-remove-freetext-button =\n    .title = Gjave test\npdfjs-editor-remove-stamp-button =\n    .title = Gjave imagjin\npdfjs-editor-remove-highlight-button =\n    .title = Gjave evidenziazion\npdfjs-editor-remove-signature-button =\n    .title = Gjave firme\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colôr\npdfjs-editor-free-text-size-input = Dimension\npdfjs-editor-ink-color-input = Colôr\npdfjs-editor-ink-thickness-input = Spessôr\npdfjs-editor-ink-opacity-input = Opacitât\npdfjs-editor-stamp-add-image-button =\n    .title = Zonte imagjin\npdfjs-editor-stamp-add-image-button-label = Zonte imagjin\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Spessôr\npdfjs-editor-free-highlight-thickness-title =\n    .title = Modifiche il spessôr de selezion pai elements che no son testuâi\npdfjs-editor-add-signature-container =\n    .aria-label = Controi firme e firmis salvadis\npdfjs-editor-signature-add-signature-button =\n    .title = Zonte gnove firme\npdfjs-editor-signature-add-signature-button-label = Zonte gnove firme\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firme salvade: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editôr di test\n    .default-content = Scomence a scrivi…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Coment\n       *[other] Coments\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Siere la sbare laterâl\n    .aria-label = Siere la sbare laterâl\npdfjs-editor-comments-sidebar-close-button-label = Siere la sbare laterâl\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Âstu cjatât alc di interessant? Evidenzilu e lasse un coment.\npdfjs-editor-comments-sidebar-no-comments-link = Plui informazions\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Test alternatîf\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Modifiche test alternatîf\npdfjs-editor-alt-text-dialog-label = Sielç une opzion\npdfjs-editor-alt-text-dialog-description = Il test alternatîf (“alt text”) al jude cuant che lis personis no puedin viodi la imagjin o cuant che la imagjine no ven cjariade.\npdfjs-editor-alt-text-add-description-label = Zonte une descrizion\npdfjs-editor-alt-text-add-description-description = Ponte a une o dôs frasis che a descrivin l’argoment, la ambientazion o lis azions.\npdfjs-editor-alt-text-mark-decorative-label = Segne come decorative\npdfjs-editor-alt-text-mark-decorative-description = Chest al ven doprât pes imagjins ornamentâls, come i ôrs o lis filigranis.\npdfjs-editor-alt-text-cancel-button = Anule\npdfjs-editor-alt-text-save-button = Salve\npdfjs-editor-alt-text-decorative-tooltip = Segnade come decorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Par esempli, “Un zovin si sente a taule par mangjâ”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Test alternatîf\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Cjanton in alt a çampe — ridimensione\npdfjs-editor-resizer-top-middle =\n    .aria-label = Bande superiôr tal mieç — ridimensione\npdfjs-editor-resizer-top-right =\n    .aria-label = Cjanton in alt a diestre — ridimensione\npdfjs-editor-resizer-middle-right =\n    .aria-label = Bande diestre tal mieç — ridimensione\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Cjanton in bas a diestre — ridimensione\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Bande inferiôr tal mieç — ridimensione\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Cjanton in bas a çampe — ridimensione\npdfjs-editor-resizer-middle-left =\n    .aria-label = Bande di çampe tal mieç — ridimensione\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Colôr par evidenziâ\npdfjs-editor-colorpicker-button =\n    .title = Cambie colôr\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Sieltis di colôr\npdfjs-editor-colorpicker-yellow =\n    .title = Zâl\npdfjs-editor-colorpicker-green =\n    .title = Vert\npdfjs-editor-colorpicker-blue =\n    .title = Blu\npdfjs-editor-colorpicker-pink =\n    .title = Rose\npdfjs-editor-colorpicker-red =\n    .title = Ros\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostre dut\npdfjs-editor-highlight-show-all-button =\n    .title = Mostre dut\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Modifiche test alternatîf (descrizion de imagjin)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Zonte test alternatîf (descrizion de imagjin)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Scrîf achì la tô descrizion…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Curte descrizion par personis che no rivin a viodi la imagjin, o che e ven mostrade cuant che no si rive a cjariâle.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Chest test alternatîf al è stât creât in automatic e al è pussibil che nol sedi cret.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Plui informazions\npdfjs-editor-new-alt-text-create-automatically-button-label = Cree test alternatîf in automatic\npdfjs-editor-new-alt-text-not-now-button = No cumò\npdfjs-editor-new-alt-text-error-title = Impussibil creâ test alternatîf in automatic\npdfjs-editor-new-alt-text-error-description = Scrîf il to test alternatîf o prove plui tart.\npdfjs-editor-new-alt-text-error-close-button = Siere\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Daûr a discjariâil model IA pal test alternatîf ({ $downloadedSize } di { $totalSize } MB)\n    .aria-valuetext = Daûr a discjariâ il model IA pal test alternatîf ({ $downloadedSize } di { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Test alternatîf zontât\npdfjs-editor-new-alt-text-added-button-label = Test alternatîf zontât\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Al mancje il test alternatîf\npdfjs-editor-new-alt-text-missing-button-label = Al mancje il test alternatîf\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Verifiche test alternatîf\npdfjs-editor-new-alt-text-to-review-button-label = Verifiche test alternatîf\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creât in automatic: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Impostazions test alternatîf pes imagjins\npdfjs-image-alt-text-settings-button-label = Impostazions test alternatîf pes imagjins\npdfjs-editor-alt-text-settings-dialog-label = Impostazions test alternatîf pes imagjins\npdfjs-editor-alt-text-settings-automatic-title = Test alternatîf automatic\npdfjs-editor-alt-text-settings-create-model-button-label = Cree test alternatîf in automatic\npdfjs-editor-alt-text-settings-create-model-description = Al sugjerìs descrizions par judâ lis personis che no rivin a viodi la imagjin o cuant che la imagjin no ven cjariade.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model IA pal test alternatîf ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Al ven eseguît in locâl sul to dispositîf, cussì che i tiei dâts a restin riservâts. Al è necessari pe gjenerazion automatiche dal test alternatîf.\npdfjs-editor-alt-text-settings-delete-model-button = Elimine\npdfjs-editor-alt-text-settings-download-model-button = Discjame\npdfjs-editor-alt-text-settings-downloading-model-button = Daûr a discjariâ…\npdfjs-editor-alt-text-settings-editor-title = Modifiche test alternatîf\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostre l'editôr dal test alternatîf a pene che e ven zontade une imagjin\npdfjs-editor-alt-text-settings-show-dialog-description = Ti jude a sigurâti che dutis lis tôs imagjins a vedin il test alternatîf.\npdfjs-editor-alt-text-settings-close-button = Siere\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Evidenziazion zontade\npdfjs-editor-freetext-added-alert = Test zontât\npdfjs-editor-ink-added-alert = Dissen zontât\npdfjs-editor-stamp-added-alert = Imagjin zontade\npdfjs-editor-signature-added-alert = Firme zontade\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Evidenziazion gjavade\npdfjs-editor-undo-bar-message-freetext = Test gjavât\npdfjs-editor-undo-bar-message-ink = Dissen gjavât\npdfjs-editor-undo-bar-message-stamp = Imagjin gjavade\npdfjs-editor-undo-bar-message-signature = Firme gjavade\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } note gjavade\n       *[other] { $count } notis gjavadis\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Anule\npdfjs-editor-undo-bar-undo-button-label = Anule\npdfjs-editor-undo-bar-close-button =\n    .title = Siere\npdfjs-editor-undo-bar-close-button-label = Siere\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Chest barcon al permet al utent di creâ une firme di zontâ a un document PDF. L’utent al pues modificâ il non (che al vignarà doprât ancje come test alternatîf) e, se lu desidere, salvâ la firme par tornâ a doprâle un doman.\npdfjs-editor-add-signature-dialog-title = Zonte une firme\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Scrîf\n    .title = Scrîf\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dissegne\n    .title = Dissegne\npdfjs-editor-add-signature-image-button = Imagjin\n    .title = Imagjin\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Scrîf la tô firme\n    .placeholder = Scrîf la tô firme\npdfjs-editor-add-signature-draw-placeholder = Dissegne la tô firme\npdfjs-editor-add-signature-draw-thickness-range-label = Spessôr\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Spessôr de tresse: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Strissine un file achì par cjariâlu\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Opûr sielç i files imagjin\n       *[other] Opûr sgarfe pai files imagjin\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descrizion (test alternatîf)\npdfjs-editor-add-signature-description-input =\n    .title = Descrizion (test alternatîf)\npdfjs-editor-add-signature-description-default-when-drawing = Firme\npdfjs-editor-add-signature-clear-button-label = Nete firme\npdfjs-editor-add-signature-clear-button =\n    .title = Nete firme\npdfjs-editor-add-signature-save-checkbox = Salve firme\npdfjs-editor-add-signature-save-warning-message = Tu sês rivât/rivade al limit di 5 firmis salvadis. Gjave une  par salvânt une altre.\npdfjs-editor-add-signature-image-upload-error-title = Impussibil cjariâ la imagjin\npdfjs-editor-add-signature-image-upload-error-description = Controle la conession di rêt o prove cuntune altre imagjin.\npdfjs-editor-add-signature-image-no-data-error-title = Impussibil convertî cheste imagjin intune firme\npdfjs-editor-add-signature-image-no-data-error-description = Prove a cjariâ une altre imagjin.\npdfjs-editor-add-signature-error-close-button = Siere\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Anule\npdfjs-editor-add-signature-add-button = Zonte\npdfjs-editor-edit-signature-update-button = Inzorne\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Modifiche coment\npdfjs-editor-edit-comment-popup-button =\n    .title = Modifiche coment\npdfjs-editor-delete-comment-popup-button-label = Gjave coment\npdfjs-editor-delete-comment-popup-button =\n    .title = Gjave coment\npdfjs-show-comment-button =\n    .title = Mostre coment\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Azions\npdfjs-editor-edit-comment-actions-button =\n    .title = Azions\npdfjs-editor-edit-comment-close-button-label = Siere\npdfjs-editor-edit-comment-close-button =\n    .title = Siere\npdfjs-editor-edit-comment-actions-edit-button-label = Modifiche\npdfjs-editor-edit-comment-actions-delete-button-label = Elimine\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Inserìs il to coment\npdfjs-editor-edit-comment-manager-cancel-button = Anule\npdfjs-editor-edit-comment-manager-save-button = Salve\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Modifiche coment\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Inzorne\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Zonte coment\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Zonte\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Scomence a scrivi…\npdfjs-editor-edit-comment-dialog-cancel-button = Anule\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Modifiche coment\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Gjave firme salvade\npdfjs-editor-delete-signature-button-label1 = Gjave firme salvade\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Modifiche descrizion\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Modifiche descrizion\n"
  },
  {
    "path": "viewer/locale/fy-NL/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Foarige side\npdfjs-previous-button-label = Foarige\npdfjs-next-button =\n    .title = Folgjende side\npdfjs-next-button-label = Folgjende\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Side\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = fan { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } fan { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Utzoome\npdfjs-zoom-out-button-label = Utzoome\npdfjs-zoom-in-button =\n    .title = Ynzoome\npdfjs-zoom-in-button-label = Ynzoome\npdfjs-zoom-select =\n    .title = Zoome\npdfjs-presentation-mode-button =\n    .title = Wikselje nei presintaasjemodus\npdfjs-presentation-mode-button-label = Presintaasjemodus\npdfjs-open-file-button =\n    .title = Bestân iepenje\npdfjs-open-file-button-label = Iepenje\npdfjs-print-button =\n    .title = Ofdrukke\npdfjs-print-button-label = Ofdrukke\npdfjs-save-button =\n    .title = Bewarje\npdfjs-save-button-label = Bewarje\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Downloade\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Downloade\npdfjs-bookmark-button =\n    .title = Aktuele side (URL fan aktuele side besjen)\npdfjs-bookmark-button-label = Aktuele side\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ark\npdfjs-tools-button-label = Ark\npdfjs-first-page-button =\n    .title = Gean nei earste side\npdfjs-first-page-button-label = Gean nei earste side\npdfjs-last-page-button =\n    .title = Gean nei lêste side\npdfjs-last-page-button-label = Gean nei lêste side\npdfjs-page-rotate-cw-button =\n    .title = Rjochtsom draaie\npdfjs-page-rotate-cw-button-label = Rjochtsom draaie\npdfjs-page-rotate-ccw-button =\n    .title = Linksom draaie\npdfjs-page-rotate-ccw-button-label = Linksom draaie\npdfjs-cursor-text-select-tool-button =\n    .title = Tekstseleksjehelpmiddel ynskeakelje\npdfjs-cursor-text-select-tool-button-label = Tekstseleksjehelpmiddel\npdfjs-cursor-hand-tool-button =\n    .title = Hânhelpmiddel ynskeakelje\npdfjs-cursor-hand-tool-button-label = Hânhelpmiddel\npdfjs-scroll-page-button =\n    .title = Sideskowen brûke\npdfjs-scroll-page-button-label = Sideskowen\npdfjs-scroll-vertical-button =\n    .title = Fertikaal skowe brûke\npdfjs-scroll-vertical-button-label = Fertikaal skowe\npdfjs-scroll-horizontal-button =\n    .title = Horizontaal skowe brûke\npdfjs-scroll-horizontal-button-label = Horizontaal skowe\npdfjs-scroll-wrapped-button =\n    .title = Skowe mei oersjoch brûke\npdfjs-scroll-wrapped-button-label = Skowe mei oersjoch\npdfjs-spread-none-button =\n    .title = Sidesprieding net gearfetsje\npdfjs-spread-none-button-label = Gjin sprieding\npdfjs-spread-odd-button =\n    .title = Sidesprieding gearfetsje te starten mei ûneven nûmers\npdfjs-spread-odd-button-label = Uneven sprieding\npdfjs-spread-even-button =\n    .title = Sidesprieding gearfetsje te starten mei even nûmers\npdfjs-spread-even-button-label = Even sprieding\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokuminteigenskippen…\npdfjs-document-properties-button-label = Dokuminteigenskippen…\npdfjs-document-properties-file-name = Bestânsnamme:\npdfjs-document-properties-file-size = Bestânsgrutte:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Auteur:\npdfjs-document-properties-subject = Underwerp:\npdfjs-document-properties-keywords = Kaaiwurden:\npdfjs-document-properties-creation-date = Oanmaakdatum:\npdfjs-document-properties-modification-date = Bewurkingsdatum:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Makker:\npdfjs-document-properties-producer = PDF-makker:\npdfjs-document-properties-version = PDF-ferzje:\npdfjs-document-properties-page-count = Siden:\npdfjs-document-properties-page-size = Sideformaat:\npdfjs-document-properties-page-size-unit-inches = yn\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = steand\npdfjs-document-properties-page-size-orientation-landscape = lizzend\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Juridysk\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Flugge webwerjefte:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nee\npdfjs-document-properties-close-button = Slute\n\n## Print\n\npdfjs-print-progress-message = Dokumint tariede oar ôfdrukken…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Annulearje\npdfjs-printing-not-supported = Warning: Printen is net folslein stipe troch dizze browser.\npdfjs-printing-not-ready = Warning: PDF is net folslein laden om ôf te drukken.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Sidebalke yn-/útskeakelje\npdfjs-toggle-sidebar-notification-button =\n    .title = Sidebalke yn-/útskeakelje (dokumint befettet oersjoch/bylagen/lagen)\npdfjs-toggle-sidebar-button-label = Sidebalke yn-/útskeakelje\npdfjs-document-outline-button =\n    .title = Dokumintoersjoch toane (dûbelklik om alle items út/yn te klappen)\npdfjs-document-outline-button-label = Dokumintoersjoch\npdfjs-attachments-button =\n    .title = Bylagen toane\npdfjs-attachments-button-label = Bylagen\npdfjs-layers-button =\n    .title = Lagen toane (dûbelklik om alle lagen nei de standertsteat werom te setten)\npdfjs-layers-button-label = Lagen\npdfjs-thumbs-button =\n    .title = Foarbylden toane\npdfjs-thumbs-button-label = Foarbylden\npdfjs-current-outline-item-button =\n    .title = Aktueel item yn ynhâldsopjefte sykje\npdfjs-current-outline-item-button-label = Aktueel item yn ynhâldsopjefte\npdfjs-findbar-button =\n    .title = Sykje yn dokumint\npdfjs-findbar-button-label = Sykje\npdfjs-additional-layers = Oanfoljende lagen\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Side { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Foarbyld fan side { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Sykje\n    .placeholder = Sykje yn dokumint…\npdfjs-find-previous-button =\n    .title = It foarige foarkommen fan de tekst sykje\npdfjs-find-previous-button-label = Foarige\npdfjs-find-next-button =\n    .title = It folgjende foarkommen fan de tekst sykje\npdfjs-find-next-button-label = Folgjende\npdfjs-find-highlight-checkbox = Alles markearje\npdfjs-find-match-case-checkbox-label = Haadlettergefoelich\npdfjs-find-match-diacritics-checkbox-label = Diakrityske tekens brûke\npdfjs-find-entire-word-checkbox-label = Hiele wurden\npdfjs-find-reached-top = Boppekant fan dokumint berikt, trochgien fan ûnder ôf\npdfjs-find-reached-bottom = Ein fan dokumint berikt, trochgien fan boppe ôf\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } fan { $total } oerienkomst\n       *[other] { $current } fan { $total } oerienkomsten\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mear as { $limit } oerienkomst\n       *[other] Mear as { $limit } oerienkomsten\n    }\npdfjs-find-not-found = Tekst net fûn\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sidebreedte\npdfjs-page-scale-fit = Hiele side\npdfjs-page-scale-auto = Automatysk zoome\npdfjs-page-scale-actual = Werklike grutte\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Side { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Der is in flater bard by it laden fan de PDF.\npdfjs-invalid-file-error = Ynfalide of korruptearre PDF-bestân.\npdfjs-missing-file-error = PDF-bestân ûntbrekt.\npdfjs-unexpected-response-error = Unferwacht serverantwurd.\npdfjs-rendering-error = Der is in flater bard by it renderjen fan de side.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-annotaasje]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Jou it wachtwurd om dit PDF-bestân te iepenjen.\npdfjs-password-invalid = Ferkeard wachtwurd. Probearje opnij.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Annulearje\npdfjs-web-fonts-disabled = Weblettertypen binne útskeakele: gebrûk fan ynsluten PDF-lettertypen is net mooglik.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Tekstleur wizigje\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Tekenje\npdfjs-editor-color-picker-ink-input =\n    .title = Tekenkleur wizigje\npdfjs-editor-ink-button-label = Tekenje\npdfjs-editor-stamp-button =\n    .title = Ofbyldingen tafoegje of bewurkje\npdfjs-editor-stamp-button-label = Ofbyldingen tafoegje of bewurkje\npdfjs-editor-highlight-button =\n    .title = Markearje\npdfjs-editor-highlight-button-label = Markearje\npdfjs-highlight-floating-button1 =\n    .title = Markearje\n    .aria-label = Markearje\npdfjs-highlight-floating-button-label = Markearje\npdfjs-comment-floating-button =\n    .title = Opmerking\n    .aria-label = Opmerking\npdfjs-comment-floating-button-label = Opmerking\npdfjs-editor-comment-button =\n    .title = Opmerking\n    .aria-label = Opmerking\npdfjs-editor-comment-button-label = Opmerking\npdfjs-editor-signature-button =\n    .title = Hantekening tafoegje\npdfjs-editor-signature-button-label = Hantekening tafoegje\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Markearingsbewurker\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Tekeningbewurker\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Undertekeningsbewurker: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Ofbyldingsbewurker\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Tekening fuortsmite\npdfjs-editor-remove-freetext-button =\n    .title = Tekst fuortsmite\npdfjs-editor-remove-stamp-button =\n    .title = Ofbylding fuortsmite\npdfjs-editor-remove-highlight-button =\n    .title = Markearring fuortsmite\npdfjs-editor-remove-signature-button =\n    .title = Hantekening fuortsmite\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Kleur\npdfjs-editor-free-text-size-input = Grutte\npdfjs-editor-ink-color-input = Kleur\npdfjs-editor-ink-thickness-input = Tsjokte\npdfjs-editor-ink-opacity-input = Transparânsje\npdfjs-editor-stamp-add-image-button =\n    .title = Ofbylding tafoegje\npdfjs-editor-stamp-add-image-button-label = Ofbylding tafoegje\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tsjokte\npdfjs-editor-free-highlight-thickness-title =\n    .title = Tsjokte wizigje by aksintuearring fan oare items as tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Undertekeningsynstellingen en bewarre ûndertekeningen\npdfjs-editor-signature-add-signature-button =\n    .title = Nije hantekening tafoegje\npdfjs-editor-signature-add-signature-button-label = Nije hantekening tafoegje\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Bewarre ûndertekening: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstbewurker\n    .default-content = Start mei typen…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Opmerking\n       *[other] Opmerkingen\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = De sydbalke slute\n    .aria-label = De sydbalke slute\npdfjs-editor-comments-sidebar-close-button-label = De sydbalke slute\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Sjogge jo wat it neamen wurdich? Markearje it en lit in opmerking efter.\npdfjs-editor-comments-sidebar-no-comments-link = Mear ynfo\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternative tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternative tekst bewurkje\npdfjs-editor-alt-text-dialog-label = Kies in opsje\npdfjs-editor-alt-text-dialog-description = Alternative tekst helpt wannear’t minsken de ôfbylding net sjen kinne of wannear’t dizze net laden wurdt.\npdfjs-editor-alt-text-add-description-label = Foegje in beskriuwing ta\npdfjs-editor-alt-text-add-description-description = Stribje nei 1-2 sinnen dy’t it ûnderwerp, de omjouwing of de aksjes beskriuwe.\npdfjs-editor-alt-text-mark-decorative-label = As dekoratyf markearje\npdfjs-editor-alt-text-mark-decorative-description = Dit wurdt brûkt foar sierlike ôfbyldingen, lykas rânen of wettermerken.\npdfjs-editor-alt-text-cancel-button = Annulearje\npdfjs-editor-alt-text-save-button = Bewarje\npdfjs-editor-alt-text-decorative-tooltip = As dekoratyf markearre\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Bygelyks, ‘In jonge man sit oan in tafel om te iten’\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternative tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Linkerboppehoek – formaat wizigje\npdfjs-editor-resizer-top-middle =\n    .aria-label = Midden boppe – formaat wizigje\npdfjs-editor-resizer-top-right =\n    .aria-label = Rjochterboppehoek – formaat wizigje\npdfjs-editor-resizer-middle-right =\n    .aria-label = Midden rjochts – formaat wizigje\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Rjochterûnderhoek – formaat wizigje\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Midden ûnder – formaat wizigje\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Linkerûnderhoek – formaat wizigje\npdfjs-editor-resizer-middle-left =\n    .aria-label = Links midden – formaat wizigje\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Markearringskleur\npdfjs-editor-colorpicker-button =\n    .title = Kleur wizigje\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Kleurkarren\npdfjs-editor-colorpicker-yellow =\n    .title = Giel\npdfjs-editor-colorpicker-green =\n    .title = Grien\npdfjs-editor-colorpicker-blue =\n    .title = Blau\npdfjs-editor-colorpicker-pink =\n    .title = Roze\npdfjs-editor-colorpicker-red =\n    .title = Read\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Alles toane\npdfjs-editor-highlight-show-all-button =\n    .title = Alles toane\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternative tekst (ôfbyldingsbeskriuwing) bewurkje\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternative tekst (ôfbyldingsbeskriuwing) tafoegje\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skriuw hjir jo beskriuwing…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Koarte beskriuwing foar minsken dy’t de ôfbylding net sjen kinne of wannear’t de ôfbylding net laden wurdt.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Dizze alternative tekst is automatysk makke en is mooglik net korrekt.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Mear ynfo\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternative tekst automatysk oanmeitsje\npdfjs-editor-new-alt-text-not-now-button = No net\npdfjs-editor-new-alt-text-error-title = Kin alternative tekst net automatysk oanmeitsje\npdfjs-editor-new-alt-text-error-description = Skriuw jo eigen alternative tekst of probearje it letter nochris.\npdfjs-editor-new-alt-text-error-close-button = Slute\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = AI-model foar alternative tekst downloade ({ $downloadedSize } fan { $totalSize } MB)\n    .aria-valuetext = AI-model foar alternative tekst downloade ({ $downloadedSize } fan { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternative tekst tafoege\npdfjs-editor-new-alt-text-added-button-label = Alternative tekst tafoege\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Alternative tekst ûntbrekt\npdfjs-editor-new-alt-text-missing-button-label = Alternative tekst ûntbrekt\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternative tekst beoardiele\npdfjs-editor-new-alt-text-to-review-button-label = Alternative tekst beoardiele\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatysk oanmakke: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ynstellingen foar alternative tekst fan ôfbyldingen\npdfjs-image-alt-text-settings-button-label = Ynstellingen foar alternative tekst fan ôfbyldingen\npdfjs-editor-alt-text-settings-dialog-label = Ynstellingen foar alternative tekst fan ôfbyldingen\npdfjs-editor-alt-text-settings-automatic-title = Automatyske alternative tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Alternative tekst automatysk oanmeitsje\npdfjs-editor-alt-text-settings-create-model-description = Stelt beskriuwingen foar om minsken te helpen dy’t de ôfbylding net sjen kinne of foar wa’t de ôfbylding net laden wurdt.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = AI-model foar alternative tekst ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Wurdt lokaal op jo apparaat útfierd, sadat jo gegevens privee bliuwe. Fereaske foar automatyske alternative tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Fuortsmite\npdfjs-editor-alt-text-settings-download-model-button = Downloade\npdfjs-editor-alt-text-settings-downloading-model-button = Downloade…\npdfjs-editor-alt-text-settings-editor-title = Alternative-tekstbewurker\npdfjs-editor-alt-text-settings-show-dialog-button-label = Alternative-tekstbewurker daliks toane by tafoegjen fan in ôfbylding\npdfjs-editor-alt-text-settings-show-dialog-description = Helpt jo derfoar te soargjen dat al jo ôfbyldingen alternative tekst hawwe.\npdfjs-editor-alt-text-settings-close-button = Slute\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Markearring tafoege\npdfjs-editor-freetext-added-alert = Tekst tafoege\npdfjs-editor-ink-added-alert = Tekening tafoege\npdfjs-editor-stamp-added-alert = Ofbylding tafoege\npdfjs-editor-signature-added-alert = Hantekening tafoege\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Markearring fuortsmiten\npdfjs-editor-undo-bar-message-freetext = Tekst fuortsmiten\npdfjs-editor-undo-bar-message-ink = Tekening fuortsmiten\npdfjs-editor-undo-bar-message-stamp = Ofbylding fuortsmiten\npdfjs-editor-undo-bar-message-signature = Hantekening fuortsmiten\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotaasje fuortsmiten\n       *[other] { $count } annotaasjes fuortsmiten\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Ungedien meitsje\npdfjs-editor-undo-bar-undo-button-label = Ungedien meitsje\npdfjs-editor-undo-bar-close-button =\n    .title = Slute\npdfjs-editor-undo-bar-close-button-label = Slute\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Mei dizze modal kin de brûker in hantekening meitsje om oan in PDF-dokumint ta te foegjen. De brûker kin de namme bewurkje (dy't ek tsjinnet as alternative tekst), en opsjoneel de ûndertekening bewarje foar werhelle gebrûk.\npdfjs-editor-add-signature-dialog-title = In hantekening tafoegje\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Tekenje\n    .title = Tekenje\npdfjs-editor-add-signature-image-button = Ofbylding\n    .title = Ofbylding\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Jo hantekening type\n    .placeholder = Jo hantekening type\npdfjs-editor-add-signature-draw-placeholder = Jo hantekening tekenje\npdfjs-editor-add-signature-draw-thickness-range-label = Tsjokte\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tekentsjokte: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Sleep bestân hjirhinne om op te laden\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Of kies ôfbyldingsbestannen\n       *[other] Of kies ôfbyldingsbestannen\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beskriuwing (alternative tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Beskriuwing (alternative tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Hantekening\npdfjs-editor-add-signature-clear-button-label = Hantekening wiskje\npdfjs-editor-add-signature-clear-button =\n    .title = Hantekening wiskje\npdfjs-editor-add-signature-save-checkbox = Hantekening bewarje\npdfjs-editor-add-signature-save-warning-message = Jo hawwe de limyt fan 5 bewarre hantekeningen berikt. Ferwiderje ien om in oar te bewarjen.\npdfjs-editor-add-signature-image-upload-error-title = Kin de ôfbylding net oplade\npdfjs-editor-add-signature-image-upload-error-description = Kontrolearje jo netwurkferbining of probearje in oare ôfbylding.\npdfjs-editor-add-signature-image-no-data-error-title = Kin dizze ôfbylding net nei in hantekening konvertearje\npdfjs-editor-add-signature-image-no-data-error-description = Probearje in oare ôfbylding op te laden.\npdfjs-editor-add-signature-error-close-button = Slute\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annulearje\npdfjs-editor-add-signature-add-button = Tafoegje\npdfjs-editor-edit-signature-update-button = Bywurkje\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Opmerking bewurkje\npdfjs-editor-edit-comment-popup-button =\n    .title = Opmerking bewurkje\npdfjs-editor-delete-comment-popup-button-label = Opmerking fuortsmite\npdfjs-editor-delete-comment-popup-button =\n    .title = Opmerking fuortsmite\npdfjs-show-comment-button =\n    .title = Opmerking toane\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Aksjes\npdfjs-editor-edit-comment-actions-button =\n    .title = Aksjes\npdfjs-editor-edit-comment-close-button-label = Slute\npdfjs-editor-edit-comment-close-button =\n    .title = Slute\npdfjs-editor-edit-comment-actions-edit-button-label = Bewurkje\npdfjs-editor-edit-comment-actions-delete-button-label = Fuortsmite\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Fier jo opmerking yn\npdfjs-editor-edit-comment-manager-cancel-button = Annulearje\npdfjs-editor-edit-comment-manager-save-button = Bewarje\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Opmerking bewurkje\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Bywurkje\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Opmerking tafoegje\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Tafoegje\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Begjin mei typen…\npdfjs-editor-edit-comment-dialog-cancel-button = Annulearje\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Opmerking bewurkje\npdfjs-editor-add-comment-button =\n    .title = Opmerking tafoegje\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Bewarre ûndertekening fuortsmite\npdfjs-editor-delete-signature-button-label1 = Bewarre ûndertekening fuortsmite\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Beskriuwing bewurkje\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Beskriuwing bewurkje\n"
  },
  {
    "path": "viewer/locale/ga-IE/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = An Leathanach Roimhe Seo\npdfjs-previous-button-label = Roimhe Seo\npdfjs-next-button =\n    .title = An Chéad Leathanach Eile\npdfjs-next-button-label = Ar Aghaidh\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Leathanach\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = as { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } as { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Súmáil Amach\npdfjs-zoom-out-button-label = Súmáil Amach\npdfjs-zoom-in-button =\n    .title = Súmáil Isteach\npdfjs-zoom-in-button-label = Súmáil Isteach\npdfjs-zoom-select =\n    .title = Súmáil\npdfjs-presentation-mode-button =\n    .title = Úsáid an Mód Láithreoireachta\npdfjs-presentation-mode-button-label = Mód Láithreoireachta\npdfjs-open-file-button =\n    .title = Oscail Comhad\npdfjs-open-file-button-label = Oscail\npdfjs-print-button =\n    .title = Priontáil\npdfjs-print-button-label = Priontáil\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Uirlisí\npdfjs-tools-button-label = Uirlisí\npdfjs-first-page-button =\n    .title = Go dtí an chéad leathanach\npdfjs-first-page-button-label = Go dtí an chéad leathanach\npdfjs-last-page-button =\n    .title = Go dtí an leathanach deiridh\npdfjs-last-page-button-label = Go dtí an leathanach deiridh\npdfjs-page-rotate-cw-button =\n    .title = Rothlaigh ar deiseal\npdfjs-page-rotate-cw-button-label = Rothlaigh ar deiseal\npdfjs-page-rotate-ccw-button =\n    .title = Rothlaigh ar tuathal\npdfjs-page-rotate-ccw-button-label = Rothlaigh ar tuathal\npdfjs-cursor-text-select-tool-button =\n    .title = Cumasaigh an Uirlis Roghnaithe Téacs\npdfjs-cursor-text-select-tool-button-label = Uirlis Roghnaithe Téacs\npdfjs-cursor-hand-tool-button =\n    .title = Cumasaigh an Uirlis Láimhe\npdfjs-cursor-hand-tool-button-label = Uirlis Láimhe\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Airíonna na Cáipéise…\npdfjs-document-properties-button-label = Airíonna na Cáipéise…\npdfjs-document-properties-file-name = Ainm an chomhaid:\npdfjs-document-properties-file-size = Méid an chomhaid:\npdfjs-document-properties-title = Teideal:\npdfjs-document-properties-author = Údar:\npdfjs-document-properties-subject = Ábhar:\npdfjs-document-properties-keywords = Eochairfhocail:\npdfjs-document-properties-creation-date = Dáta Cruthaithe:\npdfjs-document-properties-modification-date = Dáta Athraithe:\npdfjs-document-properties-creator = Cruthaitheoir:\npdfjs-document-properties-producer = Cruthaitheoir an PDF:\npdfjs-document-properties-version = Leagan PDF:\npdfjs-document-properties-page-count = Líon Leathanach:\n\n##\n\npdfjs-document-properties-close-button = Dún\n\n## Print\n\npdfjs-print-progress-message = Cáipéis á hullmhú le priontáil…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cealaigh\npdfjs-printing-not-supported = Rabhadh: Ní thacaíonn an brabhsálaí le priontáil go hiomlán.\npdfjs-printing-not-ready = Rabhadh: Ní féidir an PDF a phriontáil go dtí go mbeidh an cháipéis iomlán lódáilte.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Scoránaigh an Barra Taoibh\npdfjs-toggle-sidebar-button-label = Scoránaigh an Barra Taoibh\npdfjs-document-outline-button =\n    .title = Taispeáin Imlíne na Cáipéise (déchliceáil chun chuile rud a leathnú nó a laghdú)\npdfjs-document-outline-button-label = Creatlach na Cáipéise\npdfjs-attachments-button =\n    .title = Taispeáin Iatáin\npdfjs-attachments-button-label = Iatáin\npdfjs-thumbs-button =\n    .title = Taispeáin Mionsamhlacha\npdfjs-thumbs-button-label = Mionsamhlacha\npdfjs-findbar-button =\n    .title = Aimsigh sa Cháipéis\npdfjs-findbar-button-label = Aimsigh\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Leathanach { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Mionsamhail Leathanaigh { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Aimsigh\n    .placeholder = Aimsigh sa cháipéis…\npdfjs-find-previous-button =\n    .title = Aimsigh an sampla roimhe seo den nath seo\npdfjs-find-previous-button-label = Roimhe seo\npdfjs-find-next-button =\n    .title = Aimsigh an chéad sampla eile den nath sin\npdfjs-find-next-button-label = Ar aghaidh\npdfjs-find-highlight-checkbox = Aibhsigh uile\npdfjs-find-match-case-checkbox-label = Cásíogair\npdfjs-find-entire-word-checkbox-label = Focail iomlána\npdfjs-find-reached-top = Ag barr na cáipéise, ag leanúint ón mbun\npdfjs-find-reached-bottom = Ag bun na cáipéise, ag leanúint ón mbarr\npdfjs-find-not-found = Frása gan aimsiú\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Leithead Leathanaigh\npdfjs-page-scale-fit = Laghdaigh go dtí an Leathanach\npdfjs-page-scale-auto = Súmáil Uathoibríoch\npdfjs-page-scale-actual = Fíormhéid\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Tharla earráid agus an cháipéis PDF á lódáil.\npdfjs-invalid-file-error = Comhad neamhbhailí nó truaillithe PDF.\npdfjs-missing-file-error = Comhad PDF ar iarraidh.\npdfjs-unexpected-response-error = Freagra ón bhfreastalaí nach rabhthas ag súil leis.\npdfjs-rendering-error = Tharla earráid agus an leathanach á leagan amach.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anótáil { $type }]\n\n## Password\n\npdfjs-password-label = Cuir an focal faire isteach chun an comhad PDF seo a oscailt.\npdfjs-password-invalid = Focal faire mícheart. Déan iarracht eile.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cealaigh\npdfjs-web-fonts-disabled = Tá clófhoirne Gréasáin díchumasaithe: ní féidir clófhoirne leabaithe PDF a úsáid.\n"
  },
  {
    "path": "viewer/locale/gd/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = An duilleag roimhe\npdfjs-previous-button-label = Air ais\npdfjs-next-button =\n    .title = An ath-dhuilleag\npdfjs-next-button-label = Air adhart\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Duilleag\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = à { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } à { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Sùm a-mach\npdfjs-zoom-out-button-label = Sùm a-mach\npdfjs-zoom-in-button =\n    .title = Sùm a-steach\npdfjs-zoom-in-button-label = Sùm a-steach\npdfjs-zoom-select =\n    .title = Sùm\npdfjs-presentation-mode-button =\n    .title = Gearr leum dhan mhodh taisbeanaidh\npdfjs-presentation-mode-button-label = Am modh taisbeanaidh\npdfjs-open-file-button =\n    .title = Fosgail faidhle\npdfjs-open-file-button-label = Fosgail\npdfjs-print-button =\n    .title = Clò-bhuail\npdfjs-print-button-label = Clò-bhuail\npdfjs-save-button =\n    .title = Sàbhail\npdfjs-save-button-label = Sàbhail\npdfjs-bookmark-button =\n    .title = An duilleag làithreach (Seall an URL on duilleag làithreach)\npdfjs-bookmark-button-label = An duilleag làithreach\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Innealan\npdfjs-tools-button-label = Innealan\npdfjs-first-page-button =\n    .title = Rach gun chiad duilleag\npdfjs-first-page-button-label = Rach gun chiad duilleag\npdfjs-last-page-button =\n    .title = Rach gun duilleag mu dheireadh\npdfjs-last-page-button-label = Rach gun duilleag mu dheireadh\npdfjs-page-rotate-cw-button =\n    .title = Cuairtich gu deiseil\npdfjs-page-rotate-cw-button-label = Cuairtich gu deiseil\npdfjs-page-rotate-ccw-button =\n    .title = Cuairtich gu tuathail\npdfjs-page-rotate-ccw-button-label = Cuairtich gu tuathail\npdfjs-cursor-text-select-tool-button =\n    .title = Cuir an comas inneal taghadh an teacsa\npdfjs-cursor-text-select-tool-button-label = Inneal taghadh an teacsa\npdfjs-cursor-hand-tool-button =\n    .title = Cuir inneal na làimhe an comas\npdfjs-cursor-hand-tool-button-label = Inneal na làimhe\npdfjs-scroll-page-button =\n    .title = Cleachd sgroladh duilleige\npdfjs-scroll-page-button-label = Sgroladh duilleige\npdfjs-scroll-vertical-button =\n    .title = Cleachd sgroladh inghearach\npdfjs-scroll-vertical-button-label = Sgroladh inghearach\npdfjs-scroll-horizontal-button =\n    .title = Cleachd sgroladh còmhnard\npdfjs-scroll-horizontal-button-label = Sgroladh còmhnard\npdfjs-scroll-wrapped-button =\n    .title = Cleachd sgroladh paisgte\npdfjs-scroll-wrapped-button-label = Sgroladh paisgte\npdfjs-spread-none-button =\n    .title = Na cuir còmhla sgoileadh dhuilleagan\npdfjs-spread-none-button-label = Gun sgaoileadh dhuilleagan\npdfjs-spread-odd-button =\n    .title = Cuir còmhla duilleagan sgaoilte a thòisicheas le duilleagan aig a bheil àireamh chorr\npdfjs-spread-odd-button-label = Sgaoileadh dhuilleagan corra\npdfjs-spread-even-button =\n    .title = Cuir còmhla duilleagan sgaoilte a thòisicheas le duilleagan aig a bheil àireamh chothrom\npdfjs-spread-even-button-label = Sgaoileadh dhuilleagan cothrom\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Roghainnean na sgrìobhainne…\npdfjs-document-properties-button-label = Roghainnean na sgrìobhainne…\npdfjs-document-properties-file-name = Ainm an fhaidhle:\npdfjs-document-properties-file-size = Meud an fhaidhle:\npdfjs-document-properties-title = Tiotal:\npdfjs-document-properties-author = Ùghdar:\npdfjs-document-properties-subject = Cuspair:\npdfjs-document-properties-keywords = Faclan-luirg:\npdfjs-document-properties-creation-date = Latha a chruthachaidh:\npdfjs-document-properties-modification-date = Latha atharrachaidh:\npdfjs-document-properties-creator = Cruthadair:\npdfjs-document-properties-producer = Saothraiche a' PDF:\npdfjs-document-properties-version = Tionndadh a' PDF:\npdfjs-document-properties-page-count = Àireamh de dhuilleagan:\npdfjs-document-properties-page-size = Meud na duilleige:\npdfjs-document-properties-page-size-unit-inches = ann an\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portraid\npdfjs-document-properties-page-size-orientation-landscape = dreach-tìre\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Litir\npdfjs-document-properties-page-size-name-legal = Laghail\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Grad shealladh-lìn:\npdfjs-document-properties-linearized-yes = Tha\npdfjs-document-properties-linearized-no = Chan eil\npdfjs-document-properties-close-button = Dùin\n\n## Print\n\npdfjs-print-progress-message = Ag ullachadh na sgrìobhainn airson clò-bhualadh…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Sguir dheth\npdfjs-printing-not-supported = Rabhadh: Chan eil am brabhsair seo a' cur làn-taic ri clò-bhualadh.\npdfjs-printing-not-ready = Rabhadh: Cha deach am PDF a luchdadh gu tur airson clò-bhualadh.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toglaich am bàr-taoibh\npdfjs-toggle-sidebar-notification-button =\n    .title = Toglaich am bàr-taoibh (tha oir-loidhne/ceanglachain/breathan aig an sgrìobhainn)\npdfjs-toggle-sidebar-button-label = Toglaich am bàr-taoibh\npdfjs-document-outline-button =\n    .title = Seall oir-loidhne na sgrìobhainn (dèan briogadh dùbailte airson a h-uile nì a leudachadh/a cho-theannadh)\npdfjs-document-outline-button-label = Oir-loidhne na sgrìobhainne\npdfjs-attachments-button =\n    .title = Seall na ceanglachain\npdfjs-attachments-button-label = Ceanglachain\npdfjs-layers-button =\n    .title = Seall na breathan (dèan briogadh dùbailte airson a h-uile breath ath-shuidheachadh dhan staid bhunaiteach)\npdfjs-layers-button-label = Breathan\npdfjs-thumbs-button =\n    .title = Seall na dealbhagan\npdfjs-thumbs-button-label = Dealbhagan\npdfjs-current-outline-item-button =\n    .title = Lorg nì làithreach na h-oir-loidhne\npdfjs-current-outline-item-button-label = Nì làithreach na h-oir-loidhne\npdfjs-findbar-button =\n    .title = Lorg san sgrìobhainn\npdfjs-findbar-button-label = Lorg\npdfjs-additional-layers = Barrachd breathan\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Duilleag a { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Dealbhag duilleag a { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Lorg\n    .placeholder = Lorg san sgrìobhainn...\npdfjs-find-previous-button =\n    .title = Lorg làthair roimhe na h-abairt seo\npdfjs-find-previous-button-label = Air ais\npdfjs-find-next-button =\n    .title = Lorg ath-làthair na h-abairt seo\npdfjs-find-next-button-label = Air adhart\npdfjs-find-highlight-checkbox = Soillsich a h-uile\npdfjs-find-match-case-checkbox-label = Aire do litrichean mòra is beaga\npdfjs-find-match-diacritics-checkbox-label = Aire do stràcan\npdfjs-find-entire-word-checkbox-label = Faclan-slàna\npdfjs-find-reached-top = Ràinig sinn barr na duilleige, a' leantainn air adhart o bhonn na duilleige\npdfjs-find-reached-bottom = Ràinig sinn bonn na duilleige, a' leantainn air adhart o bharr na duilleige\npdfjs-find-not-found = Cha deach an abairt a lorg\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Leud na duilleige\npdfjs-page-scale-fit = Freagair ri meud na duilleige\npdfjs-page-scale-auto = Sùm fèin-obrachail\npdfjs-page-scale-actual = Am fìor-mheud\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Duilleag { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Thachair mearachd rè luchdadh a' PDF.\npdfjs-invalid-file-error = Faidhle PDF a tha mì-dhligheach no coirbte.\npdfjs-missing-file-error = Faidhle PDF a tha a dhìth.\npdfjs-unexpected-response-error = Freagairt on fhrithealaiche ris nach robh dùil.\npdfjs-rendering-error = Thachair mearachd rè reandaradh na duilleige.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Nòtachadh { $type }]\n\n## Password\n\npdfjs-password-label = Cuir a-steach am facal-faire gus am faidhle PDF seo fhosgladh.\npdfjs-password-invalid = Tha am facal-faire cearr. Nach fheuch thu ris a-rithist?\npdfjs-password-ok-button = Ceart ma-thà\npdfjs-password-cancel-button = Sguir dheth\npdfjs-web-fonts-disabled = Tha cruthan-clò lìn à comas: Chan urrainn dhuinn cruthan-clò PDF leabaichte a chleachdadh.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Teacsa\npdfjs-editor-free-text-button-label = Teacsa\npdfjs-editor-ink-button =\n    .title = Tarraing\npdfjs-editor-ink-button-label = Tarraing\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Dath\npdfjs-editor-free-text-size-input = Meud\npdfjs-editor-ink-color-input = Dath\npdfjs-editor-ink-thickness-input = Tighead\npdfjs-editor-ink-opacity-input = Trìd-dhoilleireachd\n"
  },
  {
    "path": "viewer/locale/gl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Páxina anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Seguinte páxina\npdfjs-next-button-label = Seguinte\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Páxina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Reducir\npdfjs-zoom-out-button-label = Reducir\npdfjs-zoom-in-button =\n    .title = Ampliar\npdfjs-zoom-in-button-label = Ampliar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Cambiar ao modo presentación\npdfjs-presentation-mode-button-label = Modo presentación\npdfjs-open-file-button =\n    .title = Abrir ficheiro\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Gardar\npdfjs-save-button-label = Gardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descargar\npdfjs-bookmark-button =\n    .title = Páxina actual (ver o URL da páxina actual)\npdfjs-bookmark-button-label = Páxina actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ferramentas\npdfjs-tools-button-label = Ferramentas\npdfjs-first-page-button =\n    .title = Ir á primeira páxina\npdfjs-first-page-button-label = Ir á primeira páxina\npdfjs-last-page-button =\n    .title = Ir á última páxina\npdfjs-last-page-button-label = Ir á última páxina\npdfjs-page-rotate-cw-button =\n    .title = Rotar no sentido das agullas do reloxo\npdfjs-page-rotate-cw-button-label = Rotar no sentido das agullas do reloxo\npdfjs-page-rotate-ccw-button =\n    .title = Rotar no sentido contrario ás agullas do reloxo\npdfjs-page-rotate-ccw-button-label = Rotar no sentido contrario ás agullas do reloxo\npdfjs-cursor-text-select-tool-button =\n    .title = Activar a ferramenta de selección de texto\npdfjs-cursor-text-select-tool-button-label = Ferramenta de selección de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar a ferramenta de man\npdfjs-cursor-hand-tool-button-label = Ferramenta de man\npdfjs-scroll-page-button =\n    .title = Usar o desprazamento da páxina\npdfjs-scroll-page-button-label = Desprazamento da páxina\npdfjs-scroll-vertical-button =\n    .title = Usar o desprazamento vertical\npdfjs-scroll-vertical-button-label = Desprazamento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar o desprazamento horizontal\npdfjs-scroll-horizontal-button-label = Desprazamento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar o desprazamento en bloque\npdfjs-scroll-wrapped-button-label = Desprazamento por bloque\npdfjs-spread-none-button =\n    .title = Non agrupar páxinas\npdfjs-spread-none-button-label = Ningún agrupamento\npdfjs-spread-odd-button =\n    .title = Crea grupo de páxinas que comezan con números de páxina impares\npdfjs-spread-odd-button-label = Agrupamento impar\npdfjs-spread-even-button =\n    .title = Crea grupo de páxinas que comezan con números de páxina pares\npdfjs-spread-even-button-label = Agrupamento par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades do documento…\npdfjs-document-properties-button-label = Propiedades do documento…\npdfjs-document-properties-file-name = Nome do ficheiro:\npdfjs-document-properties-file-size = Tamaño do ficheiro:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Asunto:\npdfjs-document-properties-keywords = Palabras clave:\npdfjs-document-properties-creation-date = Data de creación:\npdfjs-document-properties-modification-date = Data de modificación:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creado por:\npdfjs-document-properties-producer = Xenerador do PDF:\npdfjs-document-properties-version = Versión de PDF:\npdfjs-document-properties-page-count = Número de páxinas:\npdfjs-document-properties-page-size = Tamaño da páxina:\npdfjs-document-properties-page-size-unit-inches = pol\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Visualización rápida das páxinas web:\npdfjs-document-properties-linearized-yes = Si\npdfjs-document-properties-linearized-no = Non\npdfjs-document-properties-close-button = Pechar\n\n## Print\n\npdfjs-print-progress-message = Preparando o documento para imprimir…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Aviso: A impresión non é compatíbel de todo con este navegador.\npdfjs-printing-not-ready = Aviso: O PDF non se cargou completamente para imprimirse.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Amosar/agochar a barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Alternar barra lateral (o documento contén esquema/anexos/capas)\npdfjs-toggle-sidebar-button-label = Amosar/agochar a barra lateral\npdfjs-document-outline-button =\n    .title = Amosar a estrutura do documento (dobre clic para expandir/contraer todos os elementos)\npdfjs-document-outline-button-label = Estrutura do documento\npdfjs-attachments-button =\n    .title = Amosar anexos\npdfjs-attachments-button-label = Anexos\npdfjs-layers-button =\n    .title = Mostrar capas (prema dúas veces para restaurar todas as capas o estado predeterminado)\npdfjs-layers-button-label = Capas\npdfjs-thumbs-button =\n    .title = Amosar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Atopar o elemento delimitado actualmente\npdfjs-current-outline-item-button-label = Elemento delimitado actualmente\npdfjs-findbar-button =\n    .title = Atopar no documento\npdfjs-findbar-button-label = Atopar\npdfjs-additional-layers = Capas adicionais\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Páxina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura da páxina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Atopar\n    .placeholder = Atopar no documento…\npdfjs-find-previous-button =\n    .title = Atopar a anterior aparición da frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Atopar a seguinte aparición da frase\npdfjs-find-next-button-label = Seguinte\npdfjs-find-highlight-checkbox = Realzar todo\npdfjs-find-match-case-checkbox-label = Diferenciar maiúsculas de minúsculas\npdfjs-find-match-diacritics-checkbox-label = Distinguir os diacríticos\npdfjs-find-entire-word-checkbox-label = Palabras completas\npdfjs-find-reached-top = Chegouse ao inicio do documento, continuar desde o final\npdfjs-find-reached-bottom = Chegouse ao final do documento, continuar desde o inicio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Coincidencia { $current } de { $total }\n       *[other] Coincidencia { $current } de { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Máis de { $limit } coincidencia\n       *[other] Máis de { $limit } coincidencias\n    }\npdfjs-find-not-found = Non se atopou a frase\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Largura da páxina\npdfjs-page-scale-fit = Axuste de páxina\npdfjs-page-scale-auto = Zoom automático\npdfjs-page-scale-actual = Tamaño actual\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Páxina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Produciuse un erro ao cargar o PDF.\npdfjs-invalid-file-error = Ficheiro PDF danado ou non válido.\npdfjs-missing-file-error = Falta o ficheiro PDF.\npdfjs-unexpected-response-error = Resposta inesperada do servidor.\npdfjs-rendering-error = Produciuse un erro ao representar a páxina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotación { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Escriba o contrasinal para abrir este ficheiro PDF.\npdfjs-password-invalid = Contrasinal incorrecto. Tente de novo.\npdfjs-password-ok-button = Aceptar\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Desactiváronse as fontes web:  foi imposíbel usar as fontes incrustadas no PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Debuxo\npdfjs-editor-ink-button-label = Debuxo\npdfjs-editor-stamp-button =\n    .title = Engadir ou editar imaxes\npdfjs-editor-stamp-button-label = Engadir ou editar imaxes\npdfjs-editor-highlight-button =\n    .title = Destacar\npdfjs-editor-highlight-button-label = Destacar\npdfjs-highlight-floating-button1 =\n    .title = Destacar\n    .aria-label = Destacar\npdfjs-highlight-floating-button-label = Destacar\npdfjs-editor-signature-button =\n    .title = Engadir sinatura\npdfjs-editor-signature-button-label = Engadir sinatura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de destacados\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de debuxos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de sinaturas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imaxes\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Eliminar debuxo\npdfjs-editor-remove-freetext-button =\n    .title = Eliminar o texto\npdfjs-editor-remove-stamp-button =\n    .title = Eliminar a imaxe\npdfjs-editor-remove-highlight-button =\n    .title = Eliminar o resaltado\npdfjs-editor-remove-signature-button =\n    .title = Eliminar sinatura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Cor\npdfjs-editor-free-text-size-input = Tamaño\npdfjs-editor-ink-color-input = Cor\npdfjs-editor-ink-thickness-input = Grosor\npdfjs-editor-ink-opacity-input = Opacidade\npdfjs-editor-stamp-add-image-button =\n    .title = Engadir imaxe\npdfjs-editor-stamp-add-image-button-label = Engadir imaxe\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grosor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambiar o grosor ao resaltar elementos que non sexan texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controis de sinaturas e sinaturas gardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Engadir nova sinatura\npdfjs-editor-signature-add-signature-button-label = Engadir nova sinatura\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Sinatura gardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Empeza a escribir...\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar o texto alternativo\npdfjs-editor-alt-text-dialog-label = Escoller unha opción\npdfjs-editor-alt-text-dialog-description = O texto alternativo (texto alt) axuda cando as persoas non poden ver a imaxe ou cando non se carga.\npdfjs-editor-alt-text-add-description-label = Engadir unha descrición\npdfjs-editor-alt-text-add-description-description = Tenta escribir 1-2 frases que describan o tema, o escenario ou as accións.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativo\npdfjs-editor-alt-text-mark-decorative-description = Utilízase para imaxes ornamentais, como bordos ou marcas de auga.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Gardar\npdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativo\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por exemplo, «Un mozo séntase á mesa para comer»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Esquina superior esquerda: cambia o tamaño\npdfjs-editor-resizer-top-middle =\n    .aria-label = Medio superior: cambia o tamaño\npdfjs-editor-resizer-top-right =\n    .aria-label = Esquina superior dereita: cambia o tamaño\npdfjs-editor-resizer-middle-right =\n    .aria-label = Medio dereito: cambia o tamaño\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Esquina inferior dereita: cambia o tamaño\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Abaixo medio: cambia o tamaño\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Esquina inferior esquerda: cambia o tamaño\npdfjs-editor-resizer-middle-left =\n    .aria-label = Medio esquerdo: cambia o tamaño\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Cor de resaltado\npdfjs-editor-colorpicker-button =\n    .title = Cambiar de cor\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opcións de cor\npdfjs-editor-colorpicker-yellow =\n    .title = Amarelo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Vermello\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Amosar todo\npdfjs-editor-highlight-show-all-button =\n    .title = Amosar todo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descrición da imaxe)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Engadir texto alternativo (descrición da imaxe)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escribe a túa descrición aquí...\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve descrición para as persoas que non poden ver a imaxe ou cando a imaxe non carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo creouse automaticamente e pode ser inexacto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Máis información\npdfjs-editor-new-alt-text-create-automatically-button-label = Crea texto alternativo automaticamente\npdfjs-editor-new-alt-text-not-now-button = Agora non\npdfjs-editor-new-alt-text-error-title = Non se puido crear o texto alternativo automaticamente\npdfjs-editor-new-alt-text-error-description = Escribe o teu propio texto alternativo ou téntao de novo máis tarde.\npdfjs-editor-new-alt-text-error-close-button = Pechar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Descargando o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Descargando o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texto alternativo engadido\npdfjs-editor-new-alt-text-added-button-label = Texto alternativo engadido\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Falta o texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Falta o texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revisar o texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar o texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creado automaticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Configuración do texto alternativo da imaxe\npdfjs-image-alt-text-settings-button-label = Configuración do texto alternativo da imaxe\npdfjs-editor-alt-text-settings-dialog-label = Configuración do texto alternativo da imaxe\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternativo automaticamente\npdfjs-editor-alt-text-settings-create-model-description = Suxire descricións para axudar ás persoas que non poden ver a imaxe ou cando a imaxe non se carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Funciona localmente no teu dispositivo para que os teus datos se manteñan privados. Necesario para o texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Eliminar\npdfjs-editor-alt-text-settings-download-model-button = Descargar\npdfjs-editor-alt-text-settings-downloading-model-button = Descargando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar o editor de texto alternativo inmediatamente ao engadir unha imaxe\npdfjs-editor-alt-text-settings-show-dialog-description = Axúdache a asegurarte de que todas as túas imaxes teñan texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Pechar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Resaltado engadido\npdfjs-editor-freetext-added-alert = Texto engadido\npdfjs-editor-ink-added-alert = Debuxo engadido\npdfjs-editor-stamp-added-alert = Imaxe engadida\npdfjs-editor-signature-added-alert = Sinatura engadida\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Resaltado eliminado\npdfjs-editor-undo-bar-message-freetext = Texto eliminado\npdfjs-editor-undo-bar-message-ink = Debuxo eliminado\npdfjs-editor-undo-bar-message-stamp = Imaxe eliminada\npdfjs-editor-undo-bar-message-signature = Sinatura eliminada\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] Eliminouse { $count } anotación\n       *[other] Elimináronse { $count } anotacións\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Desfacer\npdfjs-editor-undo-bar-undo-button-label = Desfacer\npdfjs-editor-undo-bar-close-button =\n    .title = Pechar\npdfjs-editor-undo-bar-close-button-label = Pechar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modal permite ao usuario crear unha sinatura para engadila a un documento PDF. O usuario pode editar o nome (que tamén serve como texto alternativo) e, opcionalmente, gardar a sinatura para usala novamente.\npdfjs-editor-add-signature-dialog-title = Engadir unha sinatura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tipo\n    .title = Tipo\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Debuxar\n    .title = Debuxar\npdfjs-editor-add-signature-image-button = Imaxe\n    .title = Imaxe\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Escribe a túa sinatura\n    .placeholder = Escribe a túa sinatura\npdfjs-editor-add-signature-draw-placeholder = Debuxa a túa sinatura\npdfjs-editor-add-signature-draw-thickness-range-label = Grosor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosor do debuxo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arrastra un ficheiro aquí para cargalo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ou selecciona ficheiros de imaxes\n       *[other] Ou navega ficheiros de imaxes\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descrición (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descrición (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Sinatura\npdfjs-editor-add-signature-clear-button-label = Borrar a sinatura\npdfjs-editor-add-signature-clear-button =\n    .title = Borrar a sinatura\npdfjs-editor-add-signature-save-checkbox = Gardar a sinatura\npdfjs-editor-add-signature-save-warning-message = Acadaches o límite de 5 sinaturas gardadas. Elimina unha para gardar máis.\npdfjs-editor-add-signature-image-upload-error-title = Non se puido cargar a imaxe\npdfjs-editor-add-signature-image-upload-error-description = Comproba a túa conexión de rede ou proba con outra imaxe.\npdfjs-editor-add-signature-error-close-button = Pechar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Engadir\npdfjs-editor-edit-signature-update-button = Actualizar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Eliminar a sinatura gardada\npdfjs-editor-delete-signature-button-label1 = Eliminar a sinatura gardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descrición\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descrición\n"
  },
  {
    "path": "viewer/locale/gn/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Kuatiarogue mboyvegua\npdfjs-previous-button-label = Mboyvegua\npdfjs-next-button =\n    .title = Kuatiarogue upeigua\npdfjs-next-button-label = Upeigua\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Kuatiarogue\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } gui\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Momichĩ\npdfjs-zoom-out-button-label = Momichĩ\npdfjs-zoom-in-button =\n    .title = Mbotuicha\npdfjs-zoom-in-button-label = Mbotuicha\npdfjs-zoom-select =\n    .title = Tuichakue\npdfjs-presentation-mode-button =\n    .title = Jehechauka reko moambue\npdfjs-presentation-mode-button-label = Jehechauka reko\npdfjs-open-file-button =\n    .title = Marandurendápe jeike\npdfjs-open-file-button-label = Jeike\npdfjs-print-button =\n    .title = Monguatia\npdfjs-print-button-label = Monguatia\npdfjs-save-button =\n    .title = Ñongatu\npdfjs-save-button-label = Ñongatu\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Mboguejy\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Mboguejy\npdfjs-bookmark-button =\n    .title = Kuatiarogue ag̃agua (Ehecha URL kuatiarogue ag̃agua)\npdfjs-bookmark-button-label = Kuatiarogue Ag̃agua\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tembiporu\npdfjs-tools-button-label = Tembiporu\npdfjs-first-page-button =\n    .title = Kuatiarogue ñepyrũme jeho\npdfjs-first-page-button-label = Kuatiarogue ñepyrũme jeho\npdfjs-last-page-button =\n    .title = Kuatiarogue pahápe jeho\npdfjs-last-page-button-label = Kuatiarogue pahápe jeho\npdfjs-page-rotate-cw-button =\n    .title = Aravóicha mbojere\npdfjs-page-rotate-cw-button-label = Aravóicha mbojere\npdfjs-page-rotate-ccw-button =\n    .title = Aravo rapykue gotyo mbojere\npdfjs-page-rotate-ccw-button-label = Aravo rapykue gotyo mbojere\npdfjs-cursor-text-select-tool-button =\n    .title = Emyandy moñe’ẽrã jeporavo rembiporu\npdfjs-cursor-text-select-tool-button-label = Moñe’ẽrã jeporavo rembiporu\npdfjs-cursor-hand-tool-button =\n    .title = Tembiporu po pegua myandy\npdfjs-cursor-hand-tool-button-label = Tembiporu po pegua\npdfjs-scroll-page-button =\n    .title = Eiporu kuatiarogue jeku’e\npdfjs-scroll-page-button-label = Kuatiarogue jeku’e\npdfjs-scroll-vertical-button =\n    .title = Eiporu jeku’e ykeguáva\npdfjs-scroll-vertical-button-label = Jeku’e ykeguáva\npdfjs-scroll-horizontal-button =\n    .title = Eiporu jeku’e yvate gotyo\npdfjs-scroll-horizontal-button-label = Jeku’e yvate gotyo\npdfjs-scroll-wrapped-button =\n    .title = Eiporu jeku’e mbohyrupyre\npdfjs-scroll-wrapped-button-label = Jeku’e mbohyrupyre\npdfjs-spread-none-button =\n    .title = Ani ejuaju spreads kuatiarogue ndive\npdfjs-spread-none-button-label = Spreads ỹre\npdfjs-spread-odd-button =\n    .title = Embojuaju kuatiarogue jepysokue eñepyrũvo kuatiarogue impar-vagui\npdfjs-spread-odd-button-label = Spreads impar\npdfjs-spread-even-button =\n    .title = Embojuaju kuatiarogue jepysokue eñepyrũvo kuatiarogue par-vagui\npdfjs-spread-even-button-label = Ipukuve uvei\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Kuatia mba’etee…\npdfjs-document-properties-button-label = Kuatia mba’etee…\npdfjs-document-properties-file-name = Marandurenda réra:\npdfjs-document-properties-file-size = Marandurenda tuichakue:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Teratee:\npdfjs-document-properties-author = Apohára:\npdfjs-document-properties-subject = Mba’egua:\npdfjs-document-properties-keywords = Jehero:\npdfjs-document-properties-creation-date = Teñoihague arange:\npdfjs-document-properties-modification-date = Iñambue hague arange:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Apo’ypyha:\npdfjs-document-properties-producer = PDF mbosako’iha:\npdfjs-document-properties-version = PDF mbojuehegua:\npdfjs-document-properties-page-count = Kuatiarogue papapy:\npdfjs-document-properties-page-size = Kuatiarogue tuichakue:\npdfjs-document-properties-page-size-unit-inches = Amo\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = Oĩháicha\npdfjs-document-properties-page-size-orientation-landscape = apaisado\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Kuatiañe’ẽ\npdfjs-document-properties-page-size-name-legal = Tee\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Ñanduti jahecha pya’e:\npdfjs-document-properties-linearized-yes = Añete\npdfjs-document-properties-linearized-no = Ahániri\npdfjs-document-properties-close-button = Mboty\n\n## Print\n\npdfjs-print-progress-message = Embosako’i kuatia emonguatia hag̃ua…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Heja\npdfjs-printing-not-supported = Kyhyjerã: Ñembokuatia ndojokupytypái ko kundahára ndive.\npdfjs-printing-not-ready = Kyhyjerã: Ko PDF nahenyhẽmbái oñembokuatia hag̃uáicha.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Tenda yke moambue\npdfjs-toggle-sidebar-notification-button =\n    .title = Embojopyru tenda ykegua (kuatia oguereko kuaakaha/moirũha/ñuãha)\npdfjs-toggle-sidebar-button-label = Tenda yke moambue\npdfjs-document-outline-button =\n    .title = Ehechauka kuatia rape (eikutu mokõi jey embotuicha/emomichĩ hag̃ua opavavete mba’eporu)\npdfjs-document-outline-button-label = Kuatia apopyre\npdfjs-attachments-button =\n    .title = Moirũha jehechauka\npdfjs-attachments-button-label = Moirũha\npdfjs-layers-button =\n    .title = Ehechauka ñuãha (eikutu jo’a emomba’apo hag̃ua opaite ñuãha tekoypýpe)\npdfjs-layers-button-label = Ñuãha\npdfjs-thumbs-button =\n    .title = Mba’emirĩ jehechauka\npdfjs-thumbs-button-label = Mba’emirĩ\npdfjs-current-outline-item-button =\n    .title = Eheka mba’eporu ag̃aguaitéva\npdfjs-current-outline-item-button-label = Mba’eporu ag̃aguaitéva\npdfjs-findbar-button =\n    .title = Kuatiápe jeheka\npdfjs-findbar-button-label = Juhu\npdfjs-additional-layers = Ñuãha moirũguáva\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Kuatiarogue { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Kuatiarogue mba’emirĩ { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Juhu\n    .placeholder = Kuatiápe jejuhu…\npdfjs-find-previous-button =\n    .title = Ejuhu ñe’ẽrysýi osẽ’ypy hague\npdfjs-find-previous-button-label = Mboyvegua\npdfjs-find-next-button =\n    .title = Eho ñe’ẽ juhupyre upeiguávape\npdfjs-find-next-button-label = Upeigua\npdfjs-find-highlight-checkbox = Embojekuaavepa\npdfjs-find-match-case-checkbox-label = Ejesareko taiguasu/taimichĩre\npdfjs-find-match-diacritics-checkbox-label = Diacrítico moñondive\npdfjs-find-entire-word-checkbox-label = Ñe’ẽ oĩmbáva\npdfjs-find-reached-top = Ojehupyty kuatia ñepyrũ, oku’ejeýta kuatia paha guive\npdfjs-find-reached-bottom = Ojehupyty kuatia paha, oku’ejeýta kuatia ñepyrũ guive\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } ha { $total } ojueheguáva\n       *[other] { $current } ha { $total } ojueheguáva\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Hetave { $limit } ojueheguáva\n       *[other] Hetave { $limit } ojueheguáva\n    }\npdfjs-find-not-found = Ñe’ẽrysýi ojejuhu’ỹva\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Kuatiarogue pekue\npdfjs-page-scale-fit = Kuatiarogue ñemoĩporã\npdfjs-page-scale-auto = Tuichakue ijeheguíva\npdfjs-page-scale-actual = Tuichakue ag̃agua\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Kuatiarogue { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Oiko jejavy PDF oñemyeñyhẽnguévo.\npdfjs-invalid-file-error = PDF marandurenda ndoikóiva térã ivaipyréva.\npdfjs-missing-file-error = Ndaipóri PDF marandurenda\npdfjs-unexpected-response-error = Mohendahavusu mbohovái eha’ãrõ’ỹva.\npdfjs-rendering-error = Oiko jejavy ehechaukasévo kuatiarogue.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Jehaipy { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Emoinge ñe’ẽñemi eipe’a hag̃ua ko marandurenda PDF.\npdfjs-password-invalid = Ñe’ẽñemi ndoikóiva. Eha’ã jey.\npdfjs-password-ok-button = MONEĨ\npdfjs-password-cancel-button = Heja\npdfjs-web-fonts-disabled = Ñanduti taity oñemongéma: ndaikatumo’ãi eiporu PDF jehai’íva taity.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Moñe’ẽrã\npdfjs-editor-color-picker-free-text-input =\n    .title = Emoambue moñe’ẽrã sa’y\npdfjs-editor-free-text-button-label = Moñe’ẽrã\npdfjs-editor-ink-button =\n    .title = Moha’ãnga\npdfjs-editor-color-picker-ink-input =\n    .title = Emoambue ta’ãnga sa’y\npdfjs-editor-ink-button-label = Moha’ãnga\npdfjs-editor-stamp-button =\n    .title = Embojuaju térã embosako’i ta’ãnga\npdfjs-editor-stamp-button-label = Embojuaju térã embosako’i ta’ãnga\npdfjs-editor-highlight-button =\n    .title = Mbosa’y\npdfjs-editor-highlight-button-label = Mbosa’y\npdfjs-highlight-floating-button1 =\n    .title = Mbosa’y\n    .aria-label = Mbosa’y\npdfjs-highlight-floating-button-label = Mbosa’y\npdfjs-comment-floating-button =\n    .title = Je’erei\n    .aria-label = Je’erei\npdfjs-comment-floating-button-label = Je’erei\npdfjs-editor-comment-button =\n    .title = Je’erei\n    .aria-label = Je’erei\npdfjs-editor-comment-button-label = Je’erei\npdfjs-editor-signature-button =\n    .title = Embojuaju teraguapy\npdfjs-editor-signature-button-label = Embojuaju teraguapy\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Jehechaukarã mbosako’iha\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Ta’ãnga’apo moheñoiha\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Teraguapy mbosako’iha: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Ta’ãnga mbosako’iha\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Emboguete ta’ãnga\npdfjs-editor-remove-freetext-button =\n    .title = Emboguete moñe’ẽrã\npdfjs-editor-remove-stamp-button =\n    .title = Emboguete ta’ãnga\npdfjs-editor-remove-highlight-button =\n    .title = Eipe’a jehechaveha\npdfjs-editor-remove-signature-button =\n    .title = Embogue teraguapy\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Sa’y\npdfjs-editor-free-text-size-input = Tuichakue\npdfjs-editor-ink-color-input = Sa’y\npdfjs-editor-ink-thickness-input = Anambusu\npdfjs-editor-ink-opacity-input = Pytũngy\npdfjs-editor-stamp-add-image-button =\n    .title = Embojuaju ta’ãnga\npdfjs-editor-stamp-add-image-button-label = Embojuaju ta’ãnga\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Anambusu\npdfjs-editor-free-highlight-thickness-title =\n    .title = Emoambue anambusukue embosa’ývo mba’eporu ha’e’ỹva moñe’ẽrã\npdfjs-editor-add-signature-container =\n    .aria-label = Teraguapy ñemaña ha teraguapy ñongatupyre\npdfjs-editor-signature-add-signature-button =\n    .title = Embojuaju teraguapy pyahu\npdfjs-editor-signature-add-signature-button-label = Embojuaju teraguapy pyahu\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Teraguapy ñongatupyre: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Moñe’ẽrã moheñoiha\n    .default-content = Eñepyrũ ehai…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Je’erei\n       *[other] Je’ereieta\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Emboty ta'ãngarupa yke\n    .aria-label = Emboty ta'ãngarupa yke\npdfjs-editor-comments-sidebar-close-button-label = Emboty ta'ãngarupa yke\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ¿Ehechápa peteĩ mbaʼe iporãva? Emomba’e ha eheja jehaipy.\npdfjs-editor-comments-sidebar-no-comments-link = Kuaave\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Moñe’ẽrã mokõiháva\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Embojuruja moñe’ẽrã mokõiháva\npdfjs-editor-alt-text-dialog-label = Eiporavo poravorã\npdfjs-editor-alt-text-dialog-description = Moñe’ẽrã ykepegua (moñe’ẽrã ykepegua) nepytyvõ nderehecháiramo ta’ãnga térã nahenyhẽiramo.\npdfjs-editor-alt-text-add-description-label = Embojuaju ñemoha’ãnga\npdfjs-editor-alt-text-add-description-description = Ehaimi 1 térã 2 ñe’ẽjuaju oñe’ẽva pe téma rehe, ijere térã mba’eapóre.\npdfjs-editor-alt-text-mark-decorative-label = Emongurusu jeguakárõ\npdfjs-editor-alt-text-mark-decorative-description = Ojeporu ta’ãnga jeguakarã, tembe’y térã ta’ãnga ruguarãramo.\npdfjs-editor-alt-text-cancel-button = Heja\npdfjs-editor-alt-text-save-button = Ñongatu\npdfjs-editor-alt-text-decorative-tooltip = Jeguakárõ mongurusupyre\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Techapyrã: “Peteĩ mitãrusu oguapy mesápe okaru hag̃ua”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Moñe’ẽrã mokõiháva\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Yvate asu gotyo — emoambue tuichakue\npdfjs-editor-resizer-top-middle =\n    .aria-label = Yvate mbytépe — emoambue tuichakue\npdfjs-editor-resizer-top-right =\n    .aria-label = Yvate akatúape — emoambue tuichakue\npdfjs-editor-resizer-middle-right =\n    .aria-label = Mbyte akatúape — emoambue tuichakue\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Yvy gotyo akatúape — emoambue tuichakue\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Yvy gotyo mbytépe — emoambue tuichakue\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Iguýpe asu gotyo — emoambue tuichakue\npdfjs-editor-resizer-middle-left =\n    .aria-label = Mbyte asu gotyo — emoambue tuichakue\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Jehechaveha sa’y\npdfjs-editor-colorpicker-button =\n    .title = Emoambue sa’y\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Sa’y poravopyrã\npdfjs-editor-colorpicker-yellow =\n    .title = Sa’yju\npdfjs-editor-colorpicker-green =\n    .title = Hovyũ\npdfjs-editor-colorpicker-blue =\n    .title = Hovy\npdfjs-editor-colorpicker-pink =\n    .title = Pytãngy\npdfjs-editor-colorpicker-red =\n    .title = Pyha\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Techaukapa\npdfjs-editor-highlight-show-all-button =\n    .title = Techaukapa\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Embosako’i moñe’ẽrã mokõiha (ta’ãngáre ñeñe’ẽ)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Embojuaju moñe’ẽrã mokõiha (ta’ãngáre ñeñe’ẽ)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Edescribi ko’ápe…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Ñemyesakã mbykymi opavave ohecha’ỹva upe ta’ãnga térã pe ta’ãnga nahenyhẽiramo.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ko moñe’ẽrã mokõiha oñemoheñói ijehegui ha ikatu ndoikoporãi.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Eikuaave\npdfjs-editor-new-alt-text-create-automatically-button-label = Emoheñói moñe’ẽrã mokõiha ijeheguíva\npdfjs-editor-new-alt-text-not-now-button = Ani ko’ág̃a\npdfjs-editor-new-alt-text-error-title = Noñemoheñói moñe’ẽrã mokõiha ijeheguíva\npdfjs-editor-new-alt-text-error-description = Ehai ne moñe’ẽrã mokõiha térã eha’ã jey ag̃amieve.\npdfjs-editor-new-alt-text-error-close-button = Mboty\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Emboguejyhína IA moñe’ẽrã mokõiháva ({ $downloadedSize } { $totalSize } MB) mba’e\n    .aria-valuetext = Emboguejyhína IA moñe’ẽrã mokõiháva ({ $downloadedSize } { $totalSize } MB) mba’e\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Moñe’ẽrã mokõiha mbojuajupyre\npdfjs-editor-new-alt-text-added-button-label = Oñembojuaju moñe’ẽrã mokõiha\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Ndaipóri moñe’ẽrã mokõiha\npdfjs-editor-new-alt-text-missing-button-label = Ndaipóri moñe’ẽrã mokõiha\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Ehechajey moñe’ẽrã mokõiha\npdfjs-editor-new-alt-text-to-review-button-label = Ehechajey moñe’ẽrã mokõiha\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Heñóiva ijeheguiete: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ta’ãnga moñe’ẽrã mokõiha ñemboheko\npdfjs-image-alt-text-settings-button-label = Ta’ãnga moñe’ẽrã mokõiha ñemboheko\npdfjs-editor-alt-text-settings-dialog-label = Ta’ãnga moñe’ẽrã mokõiha ñemboheko\npdfjs-editor-alt-text-settings-automatic-title = Moñe’ẽrã mokõiha ijeheguíva\npdfjs-editor-alt-text-settings-create-model-button-label = Emoheñói moñe’ẽrã mokõiha ijeheguíva\npdfjs-editor-alt-text-settings-create-model-description = Ñemyesakã mbykymi opavave tapicha ohecha’ỹva upe ta’ãnga térã pe ta’ãnga nahenyhẽiramo.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Peteĩva IA moñe’ẽrã mokõiha ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Oku’e mba’e’okaitépe umi mba’ekuaarã hekoñemi hag̃ua. Tekotevẽva moñe’ẽrã ykegua ijeheguívape.\npdfjs-editor-alt-text-settings-delete-model-button = Mboguete\npdfjs-editor-alt-text-settings-download-model-button = Mboguejy\npdfjs-editor-alt-text-settings-downloading-model-button = Emboguejyhína…\npdfjs-editor-alt-text-settings-editor-title = Moñe’ẽrã mokõiha mbosako’iha\npdfjs-editor-alt-text-settings-show-dialog-button-label = Ehechauka moñe’ẽrã mokõiha mbosako’iha embojuajúvo ta’ãnga\npdfjs-editor-alt-text-settings-show-dialog-description = Nepytyvõta ta’ãngakuéra orekotaha moñe’ẽrã mokõiha.\npdfjs-editor-alt-text-settings-close-button = Mboty\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Techaukarã juajupyre\npdfjs-editor-freetext-added-alert = Moñe’ẽrã juajupyre\npdfjs-editor-ink-added-alert = Ta’ãnga juajupyre\npdfjs-editor-stamp-added-alert = Ta’ãnga juajupyre\npdfjs-editor-signature-added-alert = Teraguapy juajupyre\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Mbosa’ýva mboguete\npdfjs-editor-undo-bar-message-freetext = Moñe’ẽrã mboguepyre\npdfjs-editor-undo-bar-message-ink = Ta’ãnga mboguepyre\npdfjs-editor-undo-bar-message-stamp = Ta’ãnga mboguepyre\npdfjs-editor-undo-bar-message-signature = Teraguapy mboguepyre\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } jehaikue mboguepyre\n       *[other] { $count } jehaikue mboguepyre\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Mboguevi\npdfjs-editor-undo-bar-undo-button-label = Mboguevi\npdfjs-editor-undo-bar-close-button =\n    .title = Mboty\npdfjs-editor-undo-bar-close-button-label = Mboty\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-title = Embojuaju teraguapy\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Jehai\n    .title = Jehai\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Moha’ãnga\n    .title = Moha’ãnga\npdfjs-editor-add-signature-image-button = Ta’ãnga\n    .title = Ta’ãnga\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Ehai nde reraguapy\n    .placeholder = Ehai nde reraguapy\npdfjs-editor-add-signature-draw-placeholder = Emoha’ãnga nde reraguapy\npdfjs-editor-add-signature-draw-thickness-range-label = Anambusu\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Ta’ãnga anambusukue: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Egueru marandurenda ápe ehupi hag̃ua\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eiporavo ta’ãnga marandurenda\n       *[other] Eiporavo ta’ãnga marandurenda\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Moha’ãnga (moñe’ẽrã ykepegua)\npdfjs-editor-add-signature-description-input =\n    .title = Moha’ãnga (moñe’ẽrã ykepegua)\npdfjs-editor-add-signature-description-default-when-drawing = Teraguapy\npdfjs-editor-add-signature-clear-button-label = Emboguete teraguapy\npdfjs-editor-add-signature-clear-button =\n    .title = Emboguete teraguapy\npdfjs-editor-add-signature-save-checkbox = Eñongatu teraguapy\npdfjs-editor-add-signature-save-warning-message = Ehupytýma 5 mboheraguapy ñongatupyre. Embogue peteĩ eñongatukuaa jey hag̃ua.\npdfjs-editor-add-signature-image-upload-error-title = Ndaikatúi ojehupi pe ta’ãnga\npdfjs-editor-add-signature-image-upload-error-description = Ehechajey ne ñanduti oikópa térã aha’ã ambue ta’ãnga ndive.\npdfjs-editor-add-signature-image-no-data-error-title = Ndaikatúi ejapo ko ta’ãngágui teraguapy\npdfjs-editor-add-signature-image-no-data-error-description = Eñeha’ãkena ehupi ambuéva ta’ãnga.\npdfjs-editor-add-signature-error-close-button = Mboty\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Heja\npdfjs-editor-add-signature-add-button = Mbojuaju\npdfjs-editor-edit-signature-update-button = Mbohekopyahu\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Je’erei mbosako’i\npdfjs-editor-edit-comment-popup-button =\n    .title = Je’erei mbosako’i\npdfjs-editor-delete-comment-popup-button-label = Je’erei mboguete\npdfjs-editor-delete-comment-popup-button =\n    .title = Je’erei mboguete\npdfjs-show-comment-button =\n    .title = Ehechauka je’epy\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Ñemongu’e\npdfjs-editor-edit-comment-actions-button =\n    .title = Ñemongu’e\npdfjs-editor-edit-comment-close-button-label = Mboty\npdfjs-editor-edit-comment-close-button =\n    .title = Mboty\npdfjs-editor-edit-comment-actions-edit-button-label = Mbosako’i\npdfjs-editor-edit-comment-actions-delete-button-label = Mboguete\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Ehai peteĩ je’erei\npdfjs-editor-edit-comment-manager-cancel-button = Heja\npdfjs-editor-edit-comment-manager-save-button = Ñongatu\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Je’erei mbosako’i\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Mbohekopyahu\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Je’erei mbojuaju\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Mbojuaju\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Ehai ñepyrũ…\npdfjs-editor-edit-comment-dialog-cancel-button = Eheja\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Je’erei mbosako’i\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Embogue teraguapy ñongatupyre\npdfjs-editor-delete-signature-button-label1 = Embogue teraguapy ñongatupyre\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Embosako’i moha’ãnga\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Embosako’i moha’ãnga\n"
  },
  {
    "path": "viewer/locale/gu-IN/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = પહેલાનુ પાનું\npdfjs-previous-button-label = પહેલાનુ\npdfjs-next-button =\n    .title = આગળનુ પાનું\npdfjs-next-button-label = આગળનું\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = પાનું\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = નો { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } નો { $pagesCount })\npdfjs-zoom-out-button =\n    .title = મોટુ કરો\npdfjs-zoom-out-button-label = મોટુ કરો\npdfjs-zoom-in-button =\n    .title = નાનું કરો\npdfjs-zoom-in-button-label = નાનું કરો\npdfjs-zoom-select =\n    .title = નાનું મોટુ કરો\npdfjs-presentation-mode-button =\n    .title = રજૂઆત સ્થિતિમાં જાવ\npdfjs-presentation-mode-button-label = રજૂઆત સ્થિતિ\npdfjs-open-file-button =\n    .title = ફાઇલ ખોલો\npdfjs-open-file-button-label = ખોલો\npdfjs-print-button =\n    .title = છાપો\npdfjs-print-button-label = છારો\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = સાધનો\npdfjs-tools-button-label = સાધનો\npdfjs-first-page-button =\n    .title = પહેલાં પાનામાં જાવ\npdfjs-first-page-button-label = પ્રથમ પાનાં પર જાવ\npdfjs-last-page-button =\n    .title = છેલ્લા પાનાં પર જાવ\npdfjs-last-page-button-label = છેલ્લા પાનાં પર જાવ\npdfjs-page-rotate-cw-button =\n    .title = ઘડિયાળનાં કાંટા તરફ ફેરવો\npdfjs-page-rotate-cw-button-label = ઘડિયાળનાં કાંટા તરફ ફેરવો\npdfjs-page-rotate-ccw-button =\n    .title = ઘડિયાળનાં કાંટાની ઉલટી દિશામાં ફેરવો\npdfjs-page-rotate-ccw-button-label = ઘડિયાળનાં કાંટાની વિરુદ્દ ફેરવો\npdfjs-cursor-text-select-tool-button =\n    .title = ટેક્સ્ટ પસંદગી ટૂલ સક્ષમ કરો\npdfjs-cursor-text-select-tool-button-label = ટેક્સ્ટ પસંદગી ટૂલ\npdfjs-cursor-hand-tool-button =\n    .title = હાથનાં સાધનને સક્રિય કરો\npdfjs-cursor-hand-tool-button-label = હેન્ડ ટૂલ\npdfjs-scroll-vertical-button =\n    .title = ઊભી સ્ક્રોલિંગનો ઉપયોગ કરો\npdfjs-scroll-vertical-button-label = ઊભી સ્ક્રોલિંગ\npdfjs-scroll-horizontal-button =\n    .title = આડી સ્ક્રોલિંગનો ઉપયોગ કરો\npdfjs-scroll-horizontal-button-label = આડી સ્ક્રોલિંગ\npdfjs-scroll-wrapped-button =\n    .title = આવરિત સ્ક્રોલિંગનો ઉપયોગ કરો\npdfjs-scroll-wrapped-button-label = આવરિત સ્ક્રોલિંગ\npdfjs-spread-none-button =\n    .title = પૃષ્ઠ સ્પ્રેડમાં જોડાવશો નહીં\npdfjs-spread-none-button-label = કોઈ સ્પ્રેડ નથી\npdfjs-spread-odd-button =\n    .title = એકી-ક્રમાંકિત પૃષ્ઠો સાથે પ્રારંભ થતાં પૃષ્ઠ સ્પ્રેડમાં જોડાઓ\npdfjs-spread-odd-button-label = એકી સ્પ્રેડ્સ\npdfjs-spread-even-button =\n    .title = નંબર-ક્રમાંકિત પૃષ્ઠોથી શરૂ થતાં પૃષ્ઠ સ્પ્રેડમાં જોડાઓ\npdfjs-spread-even-button-label = સરખું ફેલાવવું\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = દસ્તાવેજ ગુણધર્મો…\npdfjs-document-properties-button-label = દસ્તાવેજ ગુણધર્મો…\npdfjs-document-properties-file-name = ફાઇલ નામ:\npdfjs-document-properties-file-size = ફાઇલ માપ:\npdfjs-document-properties-title = શીર્ષક:\npdfjs-document-properties-author = લેખક:\npdfjs-document-properties-subject = વિષય:\npdfjs-document-properties-keywords = કિવર્ડ:\npdfjs-document-properties-creation-date = નિર્માણ તારીખ:\npdfjs-document-properties-modification-date = ફેરફાર તારીખ:\npdfjs-document-properties-creator = નિર્માતા:\npdfjs-document-properties-producer = PDF નિર્માતા:\npdfjs-document-properties-version = PDF આવૃત્તિ:\npdfjs-document-properties-page-count = પાનાં ગણતરી:\npdfjs-document-properties-page-size = પૃષ્ઠનું કદ:\npdfjs-document-properties-page-size-unit-inches = ઇંચ\npdfjs-document-properties-page-size-unit-millimeters = મીમી\npdfjs-document-properties-page-size-orientation-portrait = ઉભું\npdfjs-document-properties-page-size-orientation-landscape = આડુ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = પત્ર\npdfjs-document-properties-page-size-name-legal = કાયદાકીય\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = ઝડપી વૅબ દૃશ્ય:\npdfjs-document-properties-linearized-yes = હા\npdfjs-document-properties-linearized-no = ના\npdfjs-document-properties-close-button = બંધ કરો\n\n## Print\n\npdfjs-print-progress-message = છાપકામ માટે દસ્તાવેજ તૈયાર કરી રહ્યા છે…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = રદ કરો\npdfjs-printing-not-supported = ચેતવણી: છાપવાનું આ બ્રાઉઝર દ્દારા સંપૂર્ણપણે આધારભૂત નથી.\npdfjs-printing-not-ready = Warning: PDF એ છાપવા માટે સંપૂર્ણપણે લાવેલ છે.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ટૉગલ બાજુપટ્ટી\npdfjs-toggle-sidebar-button-label = ટૉગલ બાજુપટ્ટી\npdfjs-document-outline-button =\n    .title = દસ્તાવેજની રૂપરેખા બતાવો(બધી આઇટમ્સને વિસ્તૃત/સંકુચિત કરવા માટે ડબલ-ક્લિક કરો)\npdfjs-document-outline-button-label = દસ્તાવેજ રૂપરેખા\npdfjs-attachments-button =\n    .title = જોડાણોને બતાવો\npdfjs-attachments-button-label = જોડાણો\npdfjs-thumbs-button =\n    .title = થંબનેલ્સ બતાવો\npdfjs-thumbs-button-label = થંબનેલ્સ\npdfjs-findbar-button =\n    .title = દસ્તાવેજમાં શોધો\npdfjs-findbar-button-label = શોધો\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = પાનું { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = પાનાં { $page } નું થંબનેલ્સ\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = શોધો\n    .placeholder = દસ્તાવેજમાં શોધો…\npdfjs-find-previous-button =\n    .title = શબ્દસમૂહની પાછલી ઘટનાને શોધો\npdfjs-find-previous-button-label = પહેલાંનુ\npdfjs-find-next-button =\n    .title = શબ્દસમૂહની આગળની ઘટનાને શોધો\npdfjs-find-next-button-label = આગળનું\npdfjs-find-highlight-checkbox = બધુ પ્રકાશિત કરો\npdfjs-find-match-case-checkbox-label = કેસ બંધબેસાડો\npdfjs-find-entire-word-checkbox-label = સંપૂર્ણ શબ્દો\npdfjs-find-reached-top = દસ્તાવેજનાં ટોચે પહોંચી ગયા, તળિયેથી ચાલુ કરેલ હતુ\npdfjs-find-reached-bottom = દસ્તાવેજનાં અંતે પહોંચી ગયા, ઉપરથી ચાલુ કરેલ હતુ\npdfjs-find-not-found = શબ્દસમૂહ મળ્યુ નથી\n\n## Predefined zoom values\n\npdfjs-page-scale-width = પાનાની પહોળાઇ\npdfjs-page-scale-fit = પાનું બંધબેસતુ\npdfjs-page-scale-auto = આપમેળે નાનુંમોટુ કરો\npdfjs-page-scale-actual = ચોક્કસ માપ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = ભૂલ ઉદ્ભવી જ્યારે PDF ને લાવી રહ્યા હોય.\npdfjs-invalid-file-error = અયોગ્ય અથવા ભાંગેલ PDF ફાઇલ.\npdfjs-missing-file-error = ગુમ થયેલ PDF ફાઇલ.\npdfjs-unexpected-response-error = અનપેક્ષિત સર્વર પ્રતિસાદ.\npdfjs-rendering-error = ભૂલ ઉદ્ભવી જ્યારે પાનાંનુ રેન્ડ કરી રહ્યા હોય.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = આ PDF ફાઇલને ખોલવા પાસવર્ડને દાખલ કરો.\npdfjs-password-invalid = અયોગ્ય પાસવર્ડ. મહેરબાની કરીને ફરી પ્રયત્ન કરો.\npdfjs-password-ok-button = બરાબર\npdfjs-password-cancel-button = રદ કરો\npdfjs-web-fonts-disabled = વેબ ફોન્ટ નિષ્ક્રિય થયેલ છે: ઍમ્બેડ થયેલ PDF ફોન્ટને વાપરવાનું અસમર્થ.\n"
  },
  {
    "path": "viewer/locale/he/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = דף קודם\npdfjs-previous-button-label = קודם\npdfjs-next-button =\n    .title = דף הבא\npdfjs-next-button-label = הבא\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = דף\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = מתוך { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } מתוך { $pagesCount })\npdfjs-zoom-out-button =\n    .title = התרחקות\npdfjs-zoom-out-button-label = התרחקות\npdfjs-zoom-in-button =\n    .title = התקרבות\npdfjs-zoom-in-button-label = התקרבות\npdfjs-zoom-select =\n    .title = מרחק מתצוגה\npdfjs-presentation-mode-button =\n    .title = מעבר למצב מצגת\npdfjs-presentation-mode-button-label = מצב מצגת\npdfjs-open-file-button =\n    .title = פתיחת קובץ\npdfjs-open-file-button-label = פתיחה\npdfjs-print-button =\n    .title = הדפסה\npdfjs-print-button-label = הדפסה\npdfjs-save-button =\n    .title = שמירה\npdfjs-save-button-label = שמירה\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = הורדה\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = הורדה\npdfjs-bookmark-button =\n    .title = עמוד נוכחי (הצגת כתובת האתר מהעמוד הנוכחי)\npdfjs-bookmark-button-label = עמוד נוכחי\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = כלים\npdfjs-tools-button-label = כלים\npdfjs-first-page-button =\n    .title = מעבר לעמוד הראשון\npdfjs-first-page-button-label = מעבר לעמוד הראשון\npdfjs-last-page-button =\n    .title = מעבר לעמוד האחרון\npdfjs-last-page-button-label = מעבר לעמוד האחרון\npdfjs-page-rotate-cw-button =\n    .title = הטיה עם כיוון השעון\npdfjs-page-rotate-cw-button-label = הטיה עם כיוון השעון\npdfjs-page-rotate-ccw-button =\n    .title = הטיה כנגד כיוון השעון\npdfjs-page-rotate-ccw-button-label = הטיה כנגד כיוון השעון\npdfjs-cursor-text-select-tool-button =\n    .title = הפעלת כלי בחירת טקסט\npdfjs-cursor-text-select-tool-button-label = כלי בחירת טקסט\npdfjs-cursor-hand-tool-button =\n    .title = הפעלת כלי היד\npdfjs-cursor-hand-tool-button-label = כלי יד\npdfjs-scroll-page-button =\n    .title = שימוש בגלילת עמוד\npdfjs-scroll-page-button-label = גלילת עמוד\npdfjs-scroll-vertical-button =\n    .title = שימוש בגלילה אנכית\npdfjs-scroll-vertical-button-label = גלילה אנכית\npdfjs-scroll-horizontal-button =\n    .title = שימוש בגלילה אופקית\npdfjs-scroll-horizontal-button-label = גלילה אופקית\npdfjs-scroll-wrapped-button =\n    .title = שימוש בגלילה רציפה\npdfjs-scroll-wrapped-button-label = גלילה רציפה\npdfjs-spread-none-button =\n    .title = לא לצרף מפתחי עמודים\npdfjs-spread-none-button-label = ללא מפתחים\npdfjs-spread-odd-button =\n    .title = צירוף מפתחי עמודים שמתחילים בדפים עם מספרים אי־זוגיים\npdfjs-spread-odd-button-label = מפתחים אי־זוגיים\npdfjs-spread-even-button =\n    .title = צירוף מפתחי עמודים שמתחילים בדפים עם מספרים זוגיים\npdfjs-spread-even-button-label = מפתחים זוגיים\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = מאפייני מסמך…\npdfjs-document-properties-button-label = מאפייני מסמך…\npdfjs-document-properties-file-name = שם קובץ:\npdfjs-document-properties-file-size = גודל הקובץ:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } ק״ב ({ $b } בתים)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } מ״ב ({ $b } בתים)\npdfjs-document-properties-title = כותרת:\npdfjs-document-properties-author = מחבר:\npdfjs-document-properties-subject = נושא:\npdfjs-document-properties-keywords = מילות מפתח:\npdfjs-document-properties-creation-date = תאריך יצירה:\npdfjs-document-properties-modification-date = תאריך שינוי:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = יוצר:\npdfjs-document-properties-producer = יצרן PDF:\npdfjs-document-properties-version = גרסת PDF:\npdfjs-document-properties-page-count = מספר דפים:\npdfjs-document-properties-page-size = גודל העמוד:\npdfjs-document-properties-page-size-unit-inches = אינ׳\npdfjs-document-properties-page-size-unit-millimeters = מ״מ\npdfjs-document-properties-page-size-orientation-portrait = לאורך\npdfjs-document-properties-page-size-orientation-landscape = לרוחב\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = מכתב\npdfjs-document-properties-page-size-name-legal = דף משפטי\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = תצוגת דף מהירה:\npdfjs-document-properties-linearized-yes = כן\npdfjs-document-properties-linearized-no = לא\npdfjs-document-properties-close-button = סגירה\n\n## Print\n\npdfjs-print-progress-message = מסמך בהכנה להדפסה…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ביטול\npdfjs-printing-not-supported = אזהרה: הדפסה אינה נתמכת במלואה בדפדפן זה.\npdfjs-printing-not-ready = אזהרה: מסמך ה־PDF לא נטען לחלוטין עד מצב שמאפשר הדפסה.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = הצגה/הסתרה של סרגל הצד\npdfjs-toggle-sidebar-notification-button =\n    .title = החלפת תצוגת סרגל צד (מסמך שמכיל תוכן עניינים/קבצים מצורפים/שכבות)\npdfjs-toggle-sidebar-button-label = הצגה/הסתרה של סרגל הצד\npdfjs-document-outline-button =\n    .title = הצגת תוכן העניינים של המסמך (לחיצה כפולה כדי להרחיב או לצמצם את כל הפריטים)\npdfjs-document-outline-button-label = תוכן העניינים של המסמך\npdfjs-attachments-button =\n    .title = הצגת צרופות\npdfjs-attachments-button-label = צרופות\npdfjs-layers-button =\n    .title = הצגת שכבות (יש ללחוץ לחיצה כפולה כדי לאפס את כל השכבות למצב ברירת המחדל)\npdfjs-layers-button-label = שכבות\npdfjs-thumbs-button =\n    .title = הצגת תצוגה מקדימה\npdfjs-thumbs-button-label = תצוגה מקדימה\npdfjs-current-outline-item-button =\n    .title = מציאת פריט תוכן העניינים הנוכחי\npdfjs-current-outline-item-button-label = פריט תוכן העניינים הנוכחי\npdfjs-findbar-button =\n    .title = חיפוש במסמך\npdfjs-findbar-button-label = חיפוש\npdfjs-additional-layers = שכבות נוספות\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = עמוד { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = תצוגה מקדימה של עמוד { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = חיפוש\n    .placeholder = חיפוש במסמך…\npdfjs-find-previous-button =\n    .title = מציאת המופע הקודם של הביטוי\npdfjs-find-previous-button-label = קודם\npdfjs-find-next-button =\n    .title = מציאת המופע הבא של הביטוי\npdfjs-find-next-button-label = הבא\npdfjs-find-highlight-checkbox = הדגשת הכול\npdfjs-find-match-case-checkbox-label = התאמת אותיות\npdfjs-find-match-diacritics-checkbox-label = התאמה דיאקריטית\npdfjs-find-entire-word-checkbox-label = מילים שלמות\npdfjs-find-reached-top = הגיע לראש הדף, ממשיך מלמטה\npdfjs-find-reached-bottom = הגיע לסוף הדף, ממשיך מלמעלה\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } מתוך { $total } תוצאות\n       *[other] { $current } מתוך { $total } תוצאות\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] יותר מתוצאה אחת\n       *[other] יותר מ־{ $limit } תוצאות\n    }\npdfjs-find-not-found = הביטוי לא נמצא\n\n## Predefined zoom values\n\npdfjs-page-scale-width = רוחב העמוד\npdfjs-page-scale-fit = התאמה לעמוד\npdfjs-page-scale-auto = מרחק מתצוגה אוטומטי\npdfjs-page-scale-actual = גודל אמיתי\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = עמוד { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = אירעה שגיאה בעת טעינת ה־PDF.\npdfjs-invalid-file-error = קובץ PDF פגום או לא תקין.\npdfjs-missing-file-error = קובץ PDF חסר.\npdfjs-unexpected-response-error = תגובת שרת לא צפויה.\npdfjs-rendering-error = אירעה שגיאה בעת עיבוד הדף.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [הערת { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = נא להכניס את הססמה לפתיחת קובץ PDF זה.\npdfjs-password-invalid = ססמה שגויה. נא לנסות שוב.\npdfjs-password-ok-button = אישור\npdfjs-password-cancel-button = ביטול\npdfjs-web-fonts-disabled = גופני רשת מנוטרלים: לא ניתן להשתמש בגופני PDF מוטבעים.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = טקסט\npdfjs-editor-color-picker-free-text-input =\n    .title = שינוי צבע הטקסט\npdfjs-editor-free-text-button-label = טקסט\npdfjs-editor-ink-button =\n    .title = ציור\npdfjs-editor-color-picker-ink-input =\n    .title = שינוי צבע הציור\npdfjs-editor-ink-button-label = ציור\npdfjs-editor-stamp-button =\n    .title = הוספה או עריכת תמונות\npdfjs-editor-stamp-button-label = הוספה או עריכת תמונות\npdfjs-editor-highlight-button =\n    .title = סימון\npdfjs-editor-highlight-button-label = סימון\npdfjs-highlight-floating-button1 =\n    .title = סימון\n    .aria-label = סימון\npdfjs-highlight-floating-button-label = סימון\npdfjs-comment-floating-button =\n    .title = הערה\n    .aria-label = הערה\npdfjs-comment-floating-button-label = הערה\npdfjs-editor-comment-button =\n    .title = הערה\n    .aria-label = הערה\npdfjs-editor-comment-button-label = הערה\npdfjs-editor-signature-button =\n    .title = הוספת חתימה\npdfjs-editor-signature-button-label = הוספת חתימה\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = עורך סימונים\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = עורך ציורים\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = עורך החתימות: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = עורך תמונות\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = הסרת ציור\npdfjs-editor-remove-freetext-button =\n    .title = הסרת טקסט\npdfjs-editor-remove-stamp-button =\n    .title = הסרת תמונה\npdfjs-editor-remove-highlight-button =\n    .title = הסרת סימון\npdfjs-editor-remove-signature-button =\n    .title = הסרת חתימה\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = צבע\npdfjs-editor-free-text-size-input = גודל\npdfjs-editor-ink-color-input = צבע\npdfjs-editor-ink-thickness-input = עובי\npdfjs-editor-ink-opacity-input = אטימות\npdfjs-editor-stamp-add-image-button =\n    .title = הוספת תמונה\npdfjs-editor-stamp-add-image-button-label = הוספת תמונה\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = עובי\npdfjs-editor-free-highlight-thickness-title =\n    .title = שינוי עובי בעת סימון פריטים שאינם טקסט\npdfjs-editor-add-signature-container =\n    .aria-label = פקדי חתימה וחתימות שמורות\npdfjs-editor-signature-add-signature-button =\n    .title = הוספת חתימה חדשה\npdfjs-editor-signature-add-signature-button-label = הוספת חתימה חדשה\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = חתימה שמורה: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = עורך טקסט\n    .default-content = נא להתחיל להקליד…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] הערה\n       *[other] הערות\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = סגירת סרגל הצד\n    .aria-label = סגירת סרגל הצד\npdfjs-editor-comments-sidebar-close-button-label = סגירת סרגל הצד\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = ראית משהו ראוי לציון? ניתן לסמן אותו ולהשאיר הערה.\npdfjs-editor-comments-sidebar-no-comments-link = מידע נוסף\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = טקסט חלופי\npdfjs-editor-alt-text-edit-button =\n    .aria-label = עריכת טקסט חלופי\npdfjs-editor-alt-text-dialog-label = בחירת אפשרות\npdfjs-editor-alt-text-dialog-description = טקסט חלופי עוזר כשאנשים לא יכולים לראות את התמונה או כשהיא לא נטענת.\npdfjs-editor-alt-text-add-description-label = הוספת תיאור\npdfjs-editor-alt-text-add-description-description = כדאי לתאר במשפט אחד או שניים את הנושא, התפאורה או הפעולות.\npdfjs-editor-alt-text-mark-decorative-label = סימון כדקורטיבי\npdfjs-editor-alt-text-mark-decorative-description = זה משמש לתמונות נוי, כמו גבולות או סימני מים.\npdfjs-editor-alt-text-cancel-button = ביטול\npdfjs-editor-alt-text-save-button = שמירה\npdfjs-editor-alt-text-decorative-tooltip = מסומן כדקורטיבי\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = לדוגמה, ״גבר צעיר מתיישב ליד שולחן לאכול ארוחה״\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = טקסט חלופי\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = פינה שמאלית עליונה - שינוי גודל\npdfjs-editor-resizer-top-middle =\n    .aria-label = למעלה באמצע - שינוי גודל\npdfjs-editor-resizer-top-right =\n    .aria-label = פינה ימנית עליונה - שינוי גודל\npdfjs-editor-resizer-middle-right =\n    .aria-label = ימינה באמצע - שינוי גודל\npdfjs-editor-resizer-bottom-right =\n    .aria-label = פינה ימנית תחתונה - שינוי גודל\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = למטה באמצע - שינוי גודל\npdfjs-editor-resizer-bottom-left =\n    .aria-label = פינה שמאלית תחתונה - שינוי גודל\npdfjs-editor-resizer-middle-left =\n    .aria-label = שמאלה באמצע - שינוי גודל\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = צבע סימון\npdfjs-editor-colorpicker-button =\n    .title = שינוי צבע\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = בחירת צבע\npdfjs-editor-colorpicker-yellow =\n    .title = צהוב\npdfjs-editor-colorpicker-green =\n    .title = ירוק\npdfjs-editor-colorpicker-blue =\n    .title = כחול\npdfjs-editor-colorpicker-pink =\n    .title = ורוד\npdfjs-editor-colorpicker-red =\n    .title = אדום\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = הצגת הכול\npdfjs-editor-highlight-show-all-button =\n    .title = הצגת הכול\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = עריכת טקסט חלופי (תיאור תמונה)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = הוספת טקסט חלופי (תיאור תמונה)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = נא לכתוב את התיאור שלך כאן…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = תיאור קצר לאנשים שאינם יכולים לראות את התמונה או כאשר התמונה אינה נטענת.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = טקסט חלופי זה נוצר באופן אוטומטי ועשוי להיות לא מדויק.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = מידע נוסף\npdfjs-editor-new-alt-text-create-automatically-button-label = יצירת טקסט חלופי באופן אוטומטי\npdfjs-editor-new-alt-text-not-now-button = לא כעת\npdfjs-editor-new-alt-text-error-title = לא ניתן היה ליצור טקסט חלופי באופן אוטומטי\npdfjs-editor-new-alt-text-error-description = נא לכתוב טקסט חלופי משלך או לנסות שוב מאוחר יותר.\npdfjs-editor-new-alt-text-error-close-button = סגירה\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = בתהליך הורדת מודל AI של טקסט חלופי ({ $downloadedSize } מתוך { $totalSize } מ״ב)\n    .aria-valuetext = בתהליך הורדת מודל AI של טקסט חלופי ({ $downloadedSize } מתוך { $totalSize } מ״ב)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = נוסף טקסט חלופי\npdfjs-editor-new-alt-text-added-button-label = נוסף טקסט חלופי\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = חסר טקסט חלופי\npdfjs-editor-new-alt-text-missing-button-label = חסר טקסט חלופי\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = סקירת טקסט חלופי\npdfjs-editor-new-alt-text-to-review-button-label = סקירת טקסט חלופי\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = נוצר באופן אוטומטי: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = הגדרות טקסט חלופי של תמונה\npdfjs-image-alt-text-settings-button-label = הגדרות טקסט חלופי של תמונה\npdfjs-editor-alt-text-settings-dialog-label = הגדרות טקסט חלופי של תמונה\npdfjs-editor-alt-text-settings-automatic-title = טקסט חלופי אוטומטי\npdfjs-editor-alt-text-settings-create-model-button-label = יצירת טקסט חלופי באופן אוטומטי\npdfjs-editor-alt-text-settings-create-model-description = הצעת תיאורים כדי לסייע לאנשים שאינם יכולים לראות את התמונה או כאשר התמונה אינה נטענת.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = מודל AI לטקסט חלופי ({ $totalSize } מ״ב)\npdfjs-editor-alt-text-settings-ai-model-description = פועל באופן מקומי במכשיר שלך כך שהנתונים שלך נשארים פרטיים. נדרש עבור טקסט חלופי אוטומטי.\npdfjs-editor-alt-text-settings-delete-model-button = מחיקה\npdfjs-editor-alt-text-settings-download-model-button = הורדה\npdfjs-editor-alt-text-settings-downloading-model-button = בהורדה…\npdfjs-editor-alt-text-settings-editor-title = עורך טקסט חלופי\npdfjs-editor-alt-text-settings-show-dialog-button-label = הצגת עורך טקסט חלופי מיד בעת הוספת תמונה\npdfjs-editor-alt-text-settings-show-dialog-description = מסייע לך לוודא שלכל התמונות שלך יש טקסט חלופי.\npdfjs-editor-alt-text-settings-close-button = סגירה\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = הסימון נוסף\npdfjs-editor-freetext-added-alert = הטקסט נוסף\npdfjs-editor-ink-added-alert = הציור נוסף\npdfjs-editor-stamp-added-alert = התמונה נוספה\npdfjs-editor-signature-added-alert = החתימה נוספה\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = הסימון הוסר\npdfjs-editor-undo-bar-message-freetext = הטקסט הוסר\npdfjs-editor-undo-bar-message-ink = הציור הוסר\npdfjs-editor-undo-bar-message-stamp = התמונה הוסרה\npdfjs-editor-undo-bar-message-signature = החתימה הוסרה\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] הערה אחת הוסרה\n       *[other] { $count } הערות הוסרו\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = ביטול פעולה\npdfjs-editor-undo-bar-undo-button-label = ביטול פעלה\npdfjs-editor-undo-bar-close-button =\n    .title = סגירה\npdfjs-editor-undo-bar-close-button-label = סגירה\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = מודל זה מאפשר למשתמש ליצור חתימה להוספה למסמך PDF. המשתמש יכול לערוך את השם (שמשמש גם כטקסט האלטרנטיבי), ובאופן אופציונלי לשמור את החתימה לשימוש חוזר.\npdfjs-editor-add-signature-dialog-title = הוספת חתימה\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = הקלדה\n    .title = הקלדה\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = ציור\n    .title = ציור\npdfjs-editor-add-signature-image-button = תמונה\n    .title = תמונה\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = נא להקליד את החתימה שלך\n    .placeholder = נא להקליד את החתימה שלך\npdfjs-editor-add-signature-draw-placeholder = נא לצייר את החתימה שלך\npdfjs-editor-add-signature-draw-thickness-range-label = עובי\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = עובי הציור: { $thickness }\npdfjs-editor-add-signature-image-placeholder = יש לגרור לכאן קובץ להעלאה\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] או לבחור בקובצי תמונה\n       *[other] או לעיין בקובצי תמונה\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = תיאור (טקסט חלופי)\npdfjs-editor-add-signature-description-input =\n    .title = תיאור (טקסט חלופי)\npdfjs-editor-add-signature-description-default-when-drawing = חתימה\npdfjs-editor-add-signature-clear-button-label = ניקוי חתימה\npdfjs-editor-add-signature-clear-button =\n    .title = ניקוי חתימה\npdfjs-editor-add-signature-save-checkbox = שמירת החתימה\npdfjs-editor-add-signature-save-warning-message = הגעת למגבלה של 5 חתימות שמורות. יש להסיר אחד כדי לשמור עוד.\npdfjs-editor-add-signature-image-upload-error-title = לא ניתן להעלות את התמונה\npdfjs-editor-add-signature-image-upload-error-description = נא לבדוק את החיבור שלך לרשת או לנסות תמונה אחרת.\npdfjs-editor-add-signature-image-no-data-error-title = לא ניתן להמיר את התמונה הזו לחתימה\npdfjs-editor-add-signature-image-no-data-error-description = נא לנסות להעלות תמונה אחרת.\npdfjs-editor-add-signature-error-close-button = סגירה\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = ביטול\npdfjs-editor-add-signature-add-button = הוספה\npdfjs-editor-edit-signature-update-button = עדכון\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = עריכת הערה\npdfjs-editor-edit-comment-popup-button =\n    .title = עריכת הערה\npdfjs-editor-delete-comment-popup-button-label = הסרת הערה\npdfjs-editor-delete-comment-popup-button =\n    .title = הסרת הערה\npdfjs-show-comment-button =\n    .title = הצגת הערה\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = פעולות\npdfjs-editor-edit-comment-actions-button =\n    .title = פעולות\npdfjs-editor-edit-comment-close-button-label = סגירה\npdfjs-editor-edit-comment-close-button =\n    .title = סגירה\npdfjs-editor-edit-comment-actions-edit-button-label = עריכה\npdfjs-editor-edit-comment-actions-delete-button-label = מחיקה\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = נא להכניס את ההערה שלך\npdfjs-editor-edit-comment-manager-cancel-button = ביטול\npdfjs-editor-edit-comment-manager-save-button = שמירה\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = עריכת הערה\npdfjs-editor-edit-comment-dialog-save-button-when-editing = עדכון\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = הוספת הערה\npdfjs-editor-edit-comment-dialog-save-button-when-adding = הוספה\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = להתחיל להקליד…\npdfjs-editor-edit-comment-dialog-cancel-button = ביטול\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = עריכת הערה\npdfjs-editor-add-comment-button =\n    .title = הוספת הערה\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = הסרת חתימה שמורה\npdfjs-editor-delete-signature-button-label1 = הסרת חתימה שמורה\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = עריכת תיאור\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = עריכת תיאור\n"
  },
  {
    "path": "viewer/locale/hi-IN/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = पिछला पृष्ठ\npdfjs-previous-button-label = पिछला\npdfjs-next-button =\n    .title = अगला पृष्ठ\npdfjs-next-button-label = आगे\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = पृष्ठ:\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } का\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = छोटा करें\npdfjs-zoom-out-button-label = छोटा करें\npdfjs-zoom-in-button =\n    .title = बड़ा करें\npdfjs-zoom-in-button-label = बड़ा करें\npdfjs-zoom-select =\n    .title = बड़ा-छोटा करें\npdfjs-presentation-mode-button =\n    .title = प्रस्तुति अवस्था में जाएँ\npdfjs-presentation-mode-button-label = प्रस्तुति अवस्था\npdfjs-open-file-button =\n    .title = फ़ाइल खोलें\npdfjs-open-file-button-label = खोलें\npdfjs-print-button =\n    .title = छापें\npdfjs-print-button-label = छापें\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = औज़ार\npdfjs-tools-button-label = औज़ार\npdfjs-first-page-button =\n    .title = प्रथम पृष्ठ पर जाएँ\npdfjs-first-page-button-label = प्रथम पृष्ठ पर जाएँ\npdfjs-last-page-button =\n    .title = अंतिम पृष्ठ पर जाएँ\npdfjs-last-page-button-label = अंतिम पृष्ठ पर जाएँ\npdfjs-page-rotate-cw-button =\n    .title = घड़ी की दिशा में घुमाएँ\npdfjs-page-rotate-cw-button-label = घड़ी की दिशा में घुमाएँ\npdfjs-page-rotate-ccw-button =\n    .title = घड़ी की दिशा से उल्टा घुमाएँ\npdfjs-page-rotate-ccw-button-label = घड़ी की दिशा से उल्टा घुमाएँ\npdfjs-cursor-text-select-tool-button =\n    .title = पाठ चयन उपकरण सक्षम करें\npdfjs-cursor-text-select-tool-button-label = पाठ चयन उपकरण\npdfjs-cursor-hand-tool-button =\n    .title = हस्त उपकरण सक्षम करें\npdfjs-cursor-hand-tool-button-label = हस्त उपकरण\npdfjs-scroll-vertical-button =\n    .title = लंबवत स्क्रॉलिंग का उपयोग करें\npdfjs-scroll-vertical-button-label = लंबवत स्क्रॉलिंग\npdfjs-scroll-horizontal-button =\n    .title = क्षितिजिय स्क्रॉलिंग का उपयोग करें\npdfjs-scroll-horizontal-button-label = क्षितिजिय स्क्रॉलिंग\npdfjs-scroll-wrapped-button =\n    .title = व्राप्पेड स्क्रॉलिंग का उपयोग करें\npdfjs-spread-none-button-label = कोई स्प्रेड उपलब्ध नहीं\npdfjs-spread-odd-button =\n    .title = विषम-क्रमांकित पृष्ठों से प्रारंभ होने वाले पृष्ठ स्प्रेड में शामिल हों\npdfjs-spread-odd-button-label = विषम फैलाव\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = दस्तावेज़ विशेषता...\npdfjs-document-properties-button-label = दस्तावेज़ विशेषता...\npdfjs-document-properties-file-name = फ़ाइल नाम:\npdfjs-document-properties-file-size = फाइल आकारः\npdfjs-document-properties-title = शीर्षक:\npdfjs-document-properties-author = लेखकः\npdfjs-document-properties-subject = विषय:\npdfjs-document-properties-keywords = कुंजी-शब्द:\npdfjs-document-properties-creation-date = निर्माण दिनांक:\npdfjs-document-properties-modification-date = संशोधन दिनांक:\npdfjs-document-properties-creator = निर्माता:\npdfjs-document-properties-producer = PDF उत्पादक:\npdfjs-document-properties-version = PDF संस्करण:\npdfjs-document-properties-page-count = पृष्ठ गिनती:\npdfjs-document-properties-page-size = पृष्ठ आकार:\npdfjs-document-properties-page-size-unit-inches = इंच\npdfjs-document-properties-page-size-unit-millimeters = मिमी\npdfjs-document-properties-page-size-orientation-portrait = पोर्ट्रेट\npdfjs-document-properties-page-size-orientation-landscape = लैंडस्केप\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = पत्र\npdfjs-document-properties-page-size-name-legal = क़ानूनी\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = तीव्र वेब व्यू:\npdfjs-document-properties-linearized-yes = हाँ\npdfjs-document-properties-linearized-no = नहीं\npdfjs-document-properties-close-button = बंद करें\n\n## Print\n\npdfjs-print-progress-message = छपाई के लिए दस्तावेज़ को तैयार किया जा रहा है...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = रद्द करें\npdfjs-printing-not-supported = चेतावनी: इस ब्राउज़र पर छपाई पूरी तरह से समर्थित नहीं है.\npdfjs-printing-not-ready = चेतावनी: PDF छपाई के लिए पूरी तरह से लोड नहीं है.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = स्लाइडर टॉगल करें\npdfjs-toggle-sidebar-button-label = स्लाइडर टॉगल करें\npdfjs-document-outline-button =\n    .title = दस्तावेज़ की रूपरेखा दिखाइए (सारी वस्तुओं को फलने अथवा समेटने के लिए दो बार क्लिक करें)\npdfjs-document-outline-button-label = दस्तावेज़ आउटलाइन\npdfjs-attachments-button =\n    .title = संलग्नक दिखायें\npdfjs-attachments-button-label = संलग्नक\npdfjs-thumbs-button =\n    .title = लघुछवियाँ दिखाएँ\npdfjs-thumbs-button-label = लघु छवि\npdfjs-findbar-button =\n    .title = दस्तावेज़ में ढूँढ़ें\npdfjs-findbar-button-label = ढूँढें\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = पृष्ठ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = पृष्ठ { $page } की लघु-छवि\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ढूँढें\n    .placeholder = दस्तावेज़ में खोजें...\npdfjs-find-previous-button =\n    .title = वाक्यांश की पिछली उपस्थिति ढूँढ़ें\npdfjs-find-previous-button-label = पिछला\npdfjs-find-next-button =\n    .title = वाक्यांश की अगली उपस्थिति ढूँढ़ें\npdfjs-find-next-button-label = अगला\npdfjs-find-highlight-checkbox = सभी आलोकित करें\npdfjs-find-match-case-checkbox-label = मिलान स्थिति\npdfjs-find-entire-word-checkbox-label = संपूर्ण शब्द\npdfjs-find-reached-top = पृष्ठ के ऊपर पहुंच गया, नीचे से जारी रखें\npdfjs-find-reached-bottom = पृष्ठ के नीचे में जा पहुँचा, ऊपर से जारी\npdfjs-find-not-found = वाक्यांश नहीं मिला\n\n## Predefined zoom values\n\npdfjs-page-scale-width = पृष्ठ चौड़ाई\npdfjs-page-scale-fit = पृष्ठ फिट\npdfjs-page-scale-auto = स्वचालित जूम\npdfjs-page-scale-actual = वास्तविक आकार\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF लोड करते समय एक त्रुटि हुई.\npdfjs-invalid-file-error = अमान्य या भ्रष्ट PDF फ़ाइल.\npdfjs-missing-file-error = अनुपस्थित PDF फ़ाइल.\npdfjs-unexpected-response-error = अप्रत्याशित सर्वर प्रतिक्रिया.\npdfjs-rendering-error = पृष्ठ रेंडरिंग के दौरान त्रुटि आई.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = इस PDF फ़ाइल को खोलने के लिए कृपया कूटशब्द भरें.\npdfjs-password-invalid = अवैध कूटशब्द, कृपया फिर कोशिश करें.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = रद्द करें\npdfjs-web-fonts-disabled = वेब फॉन्ट्स निष्क्रिय हैं: अंतःस्थापित PDF फॉन्टस के उपयोग में असमर्थ.\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = रंग\n"
  },
  {
    "path": "viewer/locale/hr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Prethodna stranica\npdfjs-previous-button-label = Prethodna\npdfjs-next-button =\n    .title = Sljedeća stranica\npdfjs-next-button-label = Sljedeća\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Stranica\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = od { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } od { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Umanji\npdfjs-zoom-out-button-label = Umanji\npdfjs-zoom-in-button =\n    .title = Uvećaj\npdfjs-zoom-in-button-label = Uvećaj\npdfjs-zoom-select =\n    .title = Zumiranje\npdfjs-presentation-mode-button =\n    .title = Prebaci u modus prezentacija\npdfjs-presentation-mode-button-label = Modus prezentacija\npdfjs-open-file-button =\n    .title = Otvori datoteku\npdfjs-open-file-button-label = Otvori\npdfjs-print-button =\n    .title = Ispiši\npdfjs-print-button-label = Ispiši\npdfjs-save-button =\n    .title = Spremi\npdfjs-save-button-label = Spremi\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Preuzimanja\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Preuzimanja\npdfjs-bookmark-button =\n    .title = Trenutačna stranica (pogledaj URL s trenutačne stranice)\npdfjs-bookmark-button-label = Trenutačna stranica\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Alati\npdfjs-tools-button-label = Alati\npdfjs-first-page-button =\n    .title = Idi na prvu stranicu\npdfjs-first-page-button-label = Idi na prvu stranicu\npdfjs-last-page-button =\n    .title = Idi na zadnju stranicu\npdfjs-last-page-button-label = Idi na zadnju stranicu\npdfjs-page-rotate-cw-button =\n    .title = Okreni nadesno\npdfjs-page-rotate-cw-button-label = Okreni nadesno\npdfjs-page-rotate-ccw-button =\n    .title = Okreni nalijevo\npdfjs-page-rotate-ccw-button-label = Okreni nalijevo\npdfjs-cursor-text-select-tool-button =\n    .title = Aktiviraj alat za biranje teksta\npdfjs-cursor-text-select-tool-button-label = Alat za označavanje teksta\npdfjs-cursor-hand-tool-button =\n    .title = Aktiviraj ručni alat\npdfjs-cursor-hand-tool-button-label = Ručni alat\npdfjs-scroll-page-button =\n    .title = Koristi klizanje stranice\npdfjs-scroll-page-button-label = Klizanje stranice\npdfjs-scroll-vertical-button =\n    .title = Koristi okomito pomicanje\npdfjs-scroll-vertical-button-label = Okomito pomicanje\npdfjs-scroll-horizontal-button =\n    .title = Koristi vodoravno pomicanje\npdfjs-scroll-horizontal-button-label = Vodoravno pomicanje\npdfjs-scroll-wrapped-button =\n    .title = Koristi kontinuirani raspored stranica\npdfjs-scroll-wrapped-button-label = Kontinuirani raspored stranica\npdfjs-spread-none-button =\n    .title = Ne izrađuj duplerice\npdfjs-spread-none-button-label = Pojedinačne stranice\npdfjs-spread-odd-button =\n    .title = Izradi duplerice koje počinju s neparnim stranicama\npdfjs-spread-odd-button-label = Neparne duplerice\npdfjs-spread-even-button =\n    .title = Izradi duplerice koje počinju s parnim stranicama\npdfjs-spread-even-button-label = Parne duplerice\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Svojstva dokumenta …\npdfjs-document-properties-button-label = Svojstva dokumenta …\npdfjs-document-properties-file-name = Ime datoteke:\npdfjs-document-properties-file-size = Veličina datoteke:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtova)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtova)\npdfjs-document-properties-title = Naslov:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Predmet:\npdfjs-document-properties-keywords = Ključne riječi:\npdfjs-document-properties-creation-date = Datum stvaranja:\npdfjs-document-properties-modification-date = Datum promjene:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Stvaratelj:\npdfjs-document-properties-producer = PDF stvaratelj:\npdfjs-document-properties-version = PDF verzija:\npdfjs-document-properties-page-count = Broj stranica:\npdfjs-document-properties-page-size = Dimenzije stranice:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = uspravno\npdfjs-document-properties-page-size-orientation-landscape = položeno\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Brzi web pregled:\npdfjs-document-properties-linearized-yes = Da\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Zatvori\n\n## Print\n\npdfjs-print-progress-message = Pripremanje dokumenta za ispis…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Odustani\npdfjs-printing-not-supported = Upozorenje: Ovaj preglednik ne podržava u potpunosti ispisivanje.\npdfjs-printing-not-ready = Upozorenje: PDF nije u potpunosti učitan za ispis.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Prikaži/sakrij bočnu traku\npdfjs-toggle-sidebar-notification-button =\n    .title = Prikazivanje i sklanjanje bočne trake (dokument sadrži strukturu/privitke/slojeve)\npdfjs-toggle-sidebar-button-label = Prikaži/sakrij bočnu traku\npdfjs-document-outline-button =\n    .title = Prikaži strukturu dokumenta (dvoklik za rasklapanje/sklapanje svih stavki)\npdfjs-document-outline-button-label = Struktura dokumenta\npdfjs-attachments-button =\n    .title = Prikaži privitke\npdfjs-attachments-button-label = Privitci\npdfjs-layers-button =\n    .title = Prikaži slojeve (dvoklik za vraćanje svih slojeva u standardno stanje)\npdfjs-layers-button-label = Slojevi\npdfjs-thumbs-button =\n    .title = Prikaži minijature\npdfjs-thumbs-button-label = Minijature\npdfjs-current-outline-item-button =\n    .title = Pronađi trenutačni element strukture\npdfjs-current-outline-item-button-label = Trenutačni element strukture\npdfjs-findbar-button =\n    .title = Pronađi u dokumentu\npdfjs-findbar-button-label = Pronađi\npdfjs-additional-layers = Dodatni slojevi\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Stranica { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Minijatura stranice { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Pronađi\n    .placeholder = Pronađi u dokumentu …\npdfjs-find-previous-button =\n    .title = Pronađi prethodno pojavljivanje ovog izraza\npdfjs-find-previous-button-label = Prethodno\npdfjs-find-next-button =\n    .title = Pronađi sljedeće pojavljivanje ovog izraza\npdfjs-find-next-button-label = Dalje\npdfjs-find-highlight-checkbox = Istankni sve\npdfjs-find-match-case-checkbox-label = Razlikovanje velikih i malih slova\npdfjs-find-match-diacritics-checkbox-label = Razlikuj dijakritičke znakove\npdfjs-find-entire-word-checkbox-label = Cijele riječi\npdfjs-find-reached-top = Dosegnut početak dokumenta, nastavak s kraja\npdfjs-find-reached-bottom = Dosegnut kraj dokumenta, nastavak s početka\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } od { $total } rezultata\n        [few] { $current } od { $total } rezultata\n       *[other] { $current } od { $total } rezultata\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Više od { $limit } rezultat\n        [few] Više od { $limit } rezultata\n       *[other] Više od { $limit } rezultata\n    }\npdfjs-find-not-found = Izraz nije pronađen\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Prilagodi širini prozora\npdfjs-page-scale-fit = Prilagodi veličini prozora\npdfjs-page-scale-auto = Automatsko zumiranje\npdfjs-page-scale-actual = Stvarna veličina\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Stranica { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Došlo je do greške pri učitavanju PDF-a.\npdfjs-invalid-file-error = Neispravna ili oštećena PDF datoteka.\npdfjs-missing-file-error = Nedostaje PDF datoteka.\npdfjs-unexpected-response-error = Neočekivani odgovor servera.\npdfjs-rendering-error = Došlo je do greške prilikom iscrtavanja stranice.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Bilješka]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Za otvoranje ove PDF datoteku upiši lozinku.\npdfjs-password-invalid = Neispravna lozinka. Pokušaj ponovo.\npdfjs-password-ok-button = U redu\npdfjs-password-cancel-button = Odustani\npdfjs-web-fonts-disabled = Web fontovi su deaktivirani: nije moguće koristiti ugrađene PDF fontove.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Crtanje\npdfjs-editor-ink-button-label = Crtanje\npdfjs-editor-stamp-button =\n    .title = Dodaj ili uredi slike\npdfjs-editor-stamp-button-label = Dodaj ili uredi slike\npdfjs-editor-highlight-button =\n    .title = Istakni\npdfjs-editor-highlight-button-label = Istakni\npdfjs-highlight-floating-button1 =\n    .title = Istakni\n    .aria-label = Istakni\npdfjs-highlight-floating-button-label = Istakni\npdfjs-editor-signature-button =\n    .title = Dodaj potpis\npdfjs-editor-signature-button-label = Dodaj potpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Uređivač za isticanje teksta\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Uređivač crteža\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Uređivač potpisa: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Uređivač slika\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Ukloni crtež\npdfjs-editor-remove-freetext-button =\n    .title = Ukloni tekst\npdfjs-editor-remove-stamp-button =\n    .title = Ukloni sliku\npdfjs-editor-remove-highlight-button =\n    .title = Ukloni isticanje\npdfjs-editor-remove-signature-button =\n    .title = Ukloni potpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Boja\npdfjs-editor-free-text-size-input = Veličina\npdfjs-editor-ink-color-input = Boja\npdfjs-editor-ink-thickness-input = Debljina\npdfjs-editor-ink-opacity-input = Neprozirnost\npdfjs-editor-stamp-add-image-button =\n    .title = Dodaj sliku\npdfjs-editor-stamp-add-image-button-label = Dodaj sliku\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Debljina\npdfjs-editor-free-highlight-thickness-title =\n    .title = Promjeni debljinu pri isticanju drugih stavki osim teksta\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrole potpisa i spremljeni potpisi\npdfjs-editor-signature-add-signature-button =\n    .title = Dodaj novi potpis\npdfjs-editor-signature-add-signature-button-label = Dodaj novi potpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Spremljeni potpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Uređivač teksta\n    .default-content = Počni tipkati …\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativni tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Uredi alternativni tekst\npdfjs-editor-alt-text-dialog-label = Odaberi jednu opciju\npdfjs-editor-alt-text-dialog-description = Alternativni tekst pomaže slijepim osobama ili kada se slika ne učita.\npdfjs-editor-alt-text-add-description-label = Dodaj opis\npdfjs-editor-alt-text-add-description-description = Sažmi sadržaj predmeta, okruženje ili radnje u jednoj ili dvije rečenice.\npdfjs-editor-alt-text-mark-decorative-label = Označi kao ukrasno\npdfjs-editor-alt-text-mark-decorative-description = Ovo se koristi za ukrasne slike, poput rubova ili vodenih žigova.\npdfjs-editor-alt-text-cancel-button = Odustani\npdfjs-editor-alt-text-save-button = Spremi\npdfjs-editor-alt-text-decorative-tooltip = Označeno kao ukrasno\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na primjer, „Mladić sjeda za stol kako bi jeo”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativni tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Gornji lijevi kut – promijeni veličinu\npdfjs-editor-resizer-top-middle =\n    .aria-label = Sredina gore – promijeni veličinu\npdfjs-editor-resizer-top-right =\n    .aria-label = Gornji desni kut – promijeni veličinu\npdfjs-editor-resizer-middle-right =\n    .aria-label = Sredina desno – promijeni veličinu\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Donji desni kut – promijeni veličinu\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Sredina dolje – promjeni veličinu\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Donji lijevi kut – promijeni veličinu\npdfjs-editor-resizer-middle-left =\n    .aria-label = Sredina lijevo – promijeni veličinu\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Boja isticanja\npdfjs-editor-colorpicker-button =\n    .title = Promjeni boju\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Izbor boja\npdfjs-editor-colorpicker-yellow =\n    .title = Žuta\npdfjs-editor-colorpicker-green =\n    .title = Zelena\npdfjs-editor-colorpicker-blue =\n    .title = Plava\npdfjs-editor-colorpicker-pink =\n    .title = Ružičasta\npdfjs-editor-colorpicker-red =\n    .title = Crvena\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Prikaži sve\npdfjs-editor-highlight-show-all-button =\n    .title = Prikaži sve\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Uredi alternativni tekst (opis slike)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Dodaj alternativni tekst (opis slike)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Ovdje upiši tvoj opis …\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kratki opis koji pomažu osobama koji ne mogu vidjeti sliku ili kada se slika ne učita.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ovaj je alternativni tekst stvoren automatski i može biti netočan.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saznaj više\npdfjs-editor-new-alt-text-create-automatically-button-label = Automatski stvori alternativni tekst\npdfjs-editor-new-alt-text-not-now-button = Ne sada\npdfjs-editor-new-alt-text-error-title = Nije bilo moguće automatski izraditi alternativni tekst\npdfjs-editor-new-alt-text-error-description = Napiši vlastiti alternativni tekst ili pokušaj kasnije ponovo.\npdfjs-editor-new-alt-text-error-close-button = Zatvori\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Preuzimanje alternativnog teksta UI modela ({ $downloadedSize } od { $totalSize } MB)\n    .aria-valuetext = Preuzimanje alternativnog teksta UI modela ({ $downloadedSize } od { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativni tekst je dodan\npdfjs-editor-new-alt-text-added-button-label = Alternativni tekst je dodan\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Nedostaje alternativni tekst\npdfjs-editor-new-alt-text-missing-button-label = Nedostaje alternativni tekst\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Pregledaj alternativni tekst\npdfjs-editor-new-alt-text-to-review-button-label = Pregledaj alternativni tekst\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Stvoreno automatski: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Postavke alternativnog teksta slike\npdfjs-image-alt-text-settings-button-label = Postavke alternativnog teksta slike\npdfjs-editor-alt-text-settings-dialog-label = Postavke alternativnog teksta slike\npdfjs-editor-alt-text-settings-automatic-title = Automatski alternativni tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Stvori alternativni tekst automatski\npdfjs-editor-alt-text-settings-create-model-description = Predlaže opise koji pomažu osobama koji ne mogu vidjeti sliku ili kada se slika ne učita.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alternativni tekst UI modela ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Radi lokalno na tvom uređaju kako bi tvoji podaci ostali privatni. Potrebno za automatski alternativni tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Izbriši\npdfjs-editor-alt-text-settings-download-model-button = Preuzmi\npdfjs-editor-alt-text-settings-downloading-model-button = Preuzimanje …\npdfjs-editor-alt-text-settings-editor-title = Uređivač alternativnog teksta\npdfjs-editor-alt-text-settings-show-dialog-button-label = Prikaži uređivač alternativnog teksta odmah pri dodavanju slike\npdfjs-editor-alt-text-settings-show-dialog-description = Pomaže osigurati da sve tvoje slike imaju alternativni tekst.\npdfjs-editor-alt-text-settings-close-button = Zatvori\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Isticanje uklonjeno\npdfjs-editor-undo-bar-message-freetext = Tekst uklonjen\npdfjs-editor-undo-bar-message-ink = Crtež uklonjen\npdfjs-editor-undo-bar-message-stamp = Slika uklonjena\npdfjs-editor-undo-bar-message-signature = Potpis uklonjen\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } pribilješka uklonjena\n        [few] { $count } pribilješke uklonjene\n       *[other] { $count } pribilješki uklonjeno\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Poništi\npdfjs-editor-undo-bar-undo-button-label = Poništi\npdfjs-editor-undo-bar-close-button =\n    .title = Zatvori\npdfjs-editor-undo-bar-close-button-label = Zatvori\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Ovaj prozor omogućuje korisniku stvoriti potpis i dodati ga u PDF dokument. Korisnik može urediti ime (koje služi i kao alternativni tekst) i opcionalno spremiti potpis za ponovnu upotrebu.\npdfjs-editor-add-signature-dialog-title = Dodaj potpis\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Utipkaj\n    .title = Utipkaj\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Crtaj\n    .title = Crtaj\npdfjs-editor-add-signature-image-button = Slika\n    .title = Slika\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Utipkaj svoj potpis\n    .placeholder = Utipkaj svoj potpis\npdfjs-editor-add-signature-draw-placeholder = Nacrtaj svoj potpis\npdfjs-editor-add-signature-draw-thickness-range-label = Debljina\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Debljina crtanja: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Povuci datoteku za prijenos ovamo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ili odaberi slikovne datoteke\n       *[other] Ili odaberi slikovne datoteke\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Opis (alternativni tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Opis (alternativni tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Potpis\npdfjs-editor-add-signature-clear-button-label = Izbriši potpis\npdfjs-editor-add-signature-clear-button =\n    .title = Izbriši potpis\npdfjs-editor-add-signature-save-checkbox = Spremi potpis\npdfjs-editor-add-signature-save-warning-message = Dosegnuto je ograničenje od 5 spremljenih potpisa. Za spremanje novih ukloni jedan potpis.\npdfjs-editor-add-signature-image-upload-error-title = Nije moguće prenijeti sliku\npdfjs-editor-add-signature-image-upload-error-description = Provjeri mrežnu vezu ili pokušaj s jednom drugom slikom.\npdfjs-editor-add-signature-error-close-button = Zatvori\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Odustani\npdfjs-editor-add-signature-add-button = Dodaj\npdfjs-editor-edit-signature-update-button = Aktualiziraj\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Ukloni spremljeni potpis\npdfjs-editor-delete-signature-button-label1 = Ukloni spremljeni potpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Uredi opis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Uredi opis\n"
  },
  {
    "path": "viewer/locale/hsb/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Předchadna strona\npdfjs-previous-button-label = Wróćo\npdfjs-next-button =\n    .title = Přichodna strona\npdfjs-next-button-label = Dale\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Strona\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = z { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } z { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Pomjeńšić\npdfjs-zoom-out-button-label = Pomjeńšić\npdfjs-zoom-in-button =\n    .title = Powjetšić\npdfjs-zoom-in-button-label = Powjetšić\npdfjs-zoom-select =\n    .title = Skalowanje\npdfjs-presentation-mode-button =\n    .title = Do prezentaciskeho modusa přeńć\npdfjs-presentation-mode-button-label = Prezentaciski modus\npdfjs-open-file-button =\n    .title = Dataju wočinić\npdfjs-open-file-button-label = Wočinić\npdfjs-print-button =\n    .title = Ćišćeć\npdfjs-print-button-label = Ćišćeć\npdfjs-save-button =\n    .title = Składować\npdfjs-save-button-label = Składować\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Sćahnyć\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Sćahnyć\npdfjs-bookmark-button =\n    .title = Aktualna strona (URL z aktualneje strony pokazać)\npdfjs-bookmark-button-label = Aktualna strona\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Nastroje\npdfjs-tools-button-label = Nastroje\npdfjs-first-page-button =\n    .title = K prěnjej stronje\npdfjs-first-page-button-label = K prěnjej stronje\npdfjs-last-page-button =\n    .title = K poslednjej stronje\npdfjs-last-page-button-label = K poslednjej stronje\npdfjs-page-rotate-cw-button =\n    .title = K směrej časnika wjerćeć\npdfjs-page-rotate-cw-button-label = K směrej časnika wjerćeć\npdfjs-page-rotate-ccw-button =\n    .title = Přećiwo směrej časnika wjerćeć\npdfjs-page-rotate-ccw-button-label = Přećiwo směrej časnika wjerćeć\npdfjs-cursor-text-select-tool-button =\n    .title = Nastroj za wuběranje teksta zmóžnić\npdfjs-cursor-text-select-tool-button-label = Nastroj za wuběranje teksta\npdfjs-cursor-hand-tool-button =\n    .title = Ručny nastroj zmóžnić\npdfjs-cursor-hand-tool-button-label = Ručny nastroj\npdfjs-scroll-page-button =\n    .title = Kulenje strony wužiwać\npdfjs-scroll-page-button-label = Kulenje strony\npdfjs-scroll-vertical-button =\n    .title = Wertikalne suwanje wužiwać\npdfjs-scroll-vertical-button-label = Wertikalne suwanje\npdfjs-scroll-horizontal-button =\n    .title = Horicontalne suwanje wužiwać\npdfjs-scroll-horizontal-button-label = Horicontalne suwanje\npdfjs-scroll-wrapped-button =\n    .title = Postupne suwanje wužiwać\npdfjs-scroll-wrapped-button-label = Postupne suwanje\npdfjs-spread-none-button =\n    .title = Strony njezwjazać\npdfjs-spread-none-button-label = Žana dwójna strona\npdfjs-spread-odd-button =\n    .title = Strony započinajo z njerunymi stronami zwjazać\npdfjs-spread-odd-button-label = Njerune strony\npdfjs-spread-even-button =\n    .title = Strony započinajo z runymi stronami zwjazać\npdfjs-spread-even-button-label = Rune strony\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentowe kajkosće…\npdfjs-document-properties-button-label = Dokumentowe kajkosće…\npdfjs-document-properties-file-name = Mjeno dataje:\npdfjs-document-properties-file-size = Wulkosć dataje:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtow)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtow)\npdfjs-document-properties-title = Titul:\npdfjs-document-properties-author = Awtor:\npdfjs-document-properties-subject = Předmjet:\npdfjs-document-properties-keywords = Klučowe słowa:\npdfjs-document-properties-creation-date = Datum wutworjenja:\npdfjs-document-properties-modification-date = Datum změny:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Awtor:\npdfjs-document-properties-producer = PDF-zhotowjer:\npdfjs-document-properties-version = PDF-wersija:\npdfjs-document-properties-page-count = Ličba stronow:\npdfjs-document-properties-page-size = Wulkosć strony:\npdfjs-document-properties-page-size-unit-inches = cól\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = wysoki format\npdfjs-document-properties-page-size-orientation-landscape = prěčny format\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Haj\npdfjs-document-properties-linearized-no = Ně\npdfjs-document-properties-close-button = Začinić\n\n## Print\n\npdfjs-print-progress-message = Dokument so za ćišćenje přihotuje…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Přetorhnyć\npdfjs-printing-not-supported = Warnowanje: Ćišćenje so přez tutón wobhladowak połnje njepodpěruje.\npdfjs-printing-not-ready = Warnowanje: PDF njeje so za ćišćenje dospołnje začitał.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Bóčnicu pokazać/schować\npdfjs-toggle-sidebar-notification-button =\n    .title = Bóčnicu přepinać (dokument rozrjad/přiwěški/woršty wobsahuje)\npdfjs-toggle-sidebar-button-label = Bóčnicu pokazać/schować\npdfjs-document-outline-button =\n    .title = Dokumentowy naćisk pokazać (dwójne kliknjenje, zo bychu so wšě zapiski pokazali/schowali)\npdfjs-document-outline-button-label = Dokumentowa struktura\npdfjs-attachments-button =\n    .title = Přiwěški pokazać\npdfjs-attachments-button-label = Přiwěški\npdfjs-layers-button =\n    .title = Woršty pokazać (klikńće dwójce, zo byšće wšě woršty na standardny staw wróćo stajił)\npdfjs-layers-button-label = Woršty\npdfjs-thumbs-button =\n    .title = Miniatury pokazać\npdfjs-thumbs-button-label = Miniatury\npdfjs-current-outline-item-button =\n    .title = Aktualny rozrjadowy zapisk pytać\npdfjs-current-outline-item-button-label = Aktualny rozrjadowy zapisk\npdfjs-findbar-button =\n    .title = W dokumenće pytać\npdfjs-findbar-button-label = Pytać\npdfjs-additional-layers = Dalše woršty\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Strona { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura strony { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Pytać\n    .placeholder = W dokumenće pytać…\npdfjs-find-previous-button =\n    .title = Předchadne wustupowanje pytanskeho wuraza pytać\npdfjs-find-previous-button-label = Wróćo\npdfjs-find-next-button =\n    .title = Přichodne wustupowanje pytanskeho wuraza pytać\npdfjs-find-next-button-label = Dale\npdfjs-find-highlight-checkbox = Wšě wuzběhnyć\npdfjs-find-match-case-checkbox-label = Wulkopisanje wobkedźbować\npdfjs-find-match-diacritics-checkbox-label = Diakritiske znamješka wužiwać\npdfjs-find-entire-word-checkbox-label = Cyłe słowa\npdfjs-find-reached-top = Spočatk dokumenta docpěty, pokročuje so z kóncom\npdfjs-find-reached-bottom = Kónc dokument docpěty, pokročuje so ze spočatkom\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } z { $total } wotpowědnika\n        [two] { $current } z { $total } wotpowědnikow\n        [few] { $current } z { $total } wotpowědnikow\n       *[other] { $current } z { $total } wotpowědnikow\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Wyše { $limit } wotpowědnik\n        [two] Wyše { $limit } wotpowědnikaj\n        [few] Wyše { $limit } wotpowědniki\n       *[other] Wyše { $limit } wotpowědnikow\n    }\npdfjs-find-not-found = Pytanski wuraz njeje so namakał\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Šěrokosć strony\npdfjs-page-scale-fit = Wulkosć strony\npdfjs-page-scale-auto = Awtomatiske skalowanje\npdfjs-page-scale-actual = Aktualna wulkosć\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Strona { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Při začitowanju PDF je zmylk wustupił.\npdfjs-invalid-file-error = Njepłaćiwa abo wobškodźena PDF-dataja.\npdfjs-missing-file-error = Falowaca PDF-dataja.\npdfjs-unexpected-response-error = Njewočakowana serwerowa wotmołwa.\npdfjs-rendering-error = Při zwobraznjenju strony je zmylk wustupił.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Typ přispomnjenki: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Zapodajće hesło, zo byšće PDF-dataju wočinił.\npdfjs-password-invalid = Njepłaćiwe hesło. Prošu spytajće hišće raz.\npdfjs-password-ok-button = W porjadku\npdfjs-password-cancel-button = Přetorhnyć\npdfjs-web-fonts-disabled = Webpisma su znjemóžnjene: njeje móžno, zasadźene PDF-pisma wužiwać.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Tekstowu barbu změnić\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Rysować\npdfjs-editor-color-picker-ink-input =\n    .title = Rysowansku barbu změnić\npdfjs-editor-ink-button-label = Rysować\npdfjs-editor-stamp-button =\n    .title = Wobrazy přidać abo wobdźěłać\npdfjs-editor-stamp-button-label = Wobrazy přidać abo wobdźěłać\npdfjs-editor-highlight-button =\n    .title = Wuzběhnyć\npdfjs-editor-highlight-button-label = Wuzběhnyć\npdfjs-highlight-floating-button1 =\n    .title = Wuzběhnjenje\n    .aria-label = Wuzběhnjenje\npdfjs-highlight-floating-button-label = Wuzběhnjenje\npdfjs-comment-floating-button =\n    .title = Komentować\n    .aria-label = Komentować\npdfjs-comment-floating-button-label = Komentować\npdfjs-editor-comment-button =\n    .title = Komentować\n    .aria-label = Komentować\npdfjs-editor-comment-button-label = Komentować\npdfjs-editor-signature-button =\n    .title = Signaturu přidać\npdfjs-editor-signature-button-label = Signaturu přidać\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Wuzběhowanski editor\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Rysowanski editor\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signaturowy editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Wobrazowy editor\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Rysowanku wotstronić\npdfjs-editor-remove-freetext-button =\n    .title = Tekst wotstronić\npdfjs-editor-remove-stamp-button =\n    .title = Wobraz wotstronić\npdfjs-editor-remove-highlight-button =\n    .title = Wuzběhnjenje wotstronić\npdfjs-editor-remove-signature-button =\n    .title = Signaturu wotstronić\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Barba\npdfjs-editor-free-text-size-input = Wulkosć\npdfjs-editor-ink-color-input = Barba\npdfjs-editor-ink-thickness-input = Tołstosć\npdfjs-editor-ink-opacity-input = Opacita\npdfjs-editor-stamp-add-image-button =\n    .title = Wobraz přidać\npdfjs-editor-stamp-add-image-button-label = Wobraz přidać\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tołstosć\npdfjs-editor-free-highlight-thickness-title =\n    .title = Tołstosć změnić, hdyž so zapiski wuzběhuja, kotrež tekst njejsu\npdfjs-editor-add-signature-container =\n    .aria-label = Wodźenske elementy signaturow a składowane signatury\npdfjs-editor-signature-add-signature-button =\n    .title = Nowu signaturu přidać\npdfjs-editor-signature-add-signature-button-label = Nowu signaturu přidać\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Składowana signatura: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstowy editor\n    .default-content = Započńće pisać …\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] { $count } komentar\n        [two] { $count } komentaraj\n        [few] { $count } komentary\n       *[other] { $count } komentarow\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Bóčnicu začinić\n    .aria-label = Bóčnicu začinić\npdfjs-editor-comments-sidebar-close-button-label = Bóčnicu začinić\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Widźiće něšto přispomnjenja hódneho? Wuzběhńće to a zawostajće komentar.\npdfjs-editor-comments-sidebar-no-comments-link = Dalše informacije\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatiwny tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternatiwny tekst wobdźěłać\npdfjs-editor-alt-text-dialog-label = Nastajenje wubrać\npdfjs-editor-alt-text-dialog-description = Alternatiwny tekst pomha, hdyž ludźo njemóža wobraz widźeć abo hdyž so wobraz njezačita.\npdfjs-editor-alt-text-add-description-label = Wopisanje přidać\npdfjs-editor-alt-text-add-description-description = Pisajće 1 sadu abo 2 sadźe, kotrejž temu, nastajenje abo akcije wopisujetej.\npdfjs-editor-alt-text-mark-decorative-label = Jako dekoratiwny markěrować\npdfjs-editor-alt-text-mark-decorative-description = To so za pyšace wobrazy wužiwa, na přikład ramiki abo wodowe znamjenja.\npdfjs-editor-alt-text-cancel-button = Přetorhnyć\npdfjs-editor-alt-text-save-button = Składować\npdfjs-editor-alt-text-decorative-tooltip = Jako dekoratiwny markěrowany\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na přikład, „Młody muž za blidom sedźi, zo by jědź jědł“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatiwny tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Horjeka nalěwo – wulkosć změnić\npdfjs-editor-resizer-top-middle =\n    .aria-label = Horjeka wosrjedź – wulkosć změnić\npdfjs-editor-resizer-top-right =\n    .aria-label = Horjeka naprawo – wulkosć změnić\npdfjs-editor-resizer-middle-right =\n    .aria-label = Wosrjedź naprawo – wulkosć změnić\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Deleka naprawo – wulkosć změnić\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Deleka wosrjedź – wulkosć změnić\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Deleka nalěwo – wulkosć změnić\npdfjs-editor-resizer-middle-left =\n    .aria-label = Wosrjedź nalěwo – wulkosć změnić\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Barba wuzběhnjenja\npdfjs-editor-colorpicker-button =\n    .title = Barbu změnić\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Wuběr barbow\npdfjs-editor-colorpicker-yellow =\n    .title = Žołty\npdfjs-editor-colorpicker-green =\n    .title = Zeleny\npdfjs-editor-colorpicker-blue =\n    .title = Módry\npdfjs-editor-colorpicker-pink =\n    .title = Pink\npdfjs-editor-colorpicker-red =\n    .title = Čerwjeny\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Wšě pokazać\npdfjs-editor-highlight-show-all-button =\n    .title = Wšě pokazać\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternatiwny tekst wobdźěłać (wobrazowe wopisanje)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternatiwny tekst přidać (wobrazowe wopisanje)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Pisajće tu swoje wopisanje…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Krótke wopisanje za ludźi, kotřiž njemóžeće wobraz widźeć abo hdyž so wobraz njezačita.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Tutón alternatiwny tekst je so awtomatisce wutworił a je snano njedokładny.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Dalše informacije\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternatiwny tekst awtomatisce wutworić\npdfjs-editor-new-alt-text-not-now-button = Nic nětko\npdfjs-editor-new-alt-text-error-title = Alternatiwny tekst njeda so awtomatisce wutworić\npdfjs-editor-new-alt-text-error-description = Prošu pisajće swój alternatiwny tekst abo spytajće pozdźišo hišće raz.\npdfjs-editor-new-alt-text-error-close-button = Začinić\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Model KI za alternatiwny tekst so sćahuje ({ $downloadedSize } z { $totalSize } MB)\n    .aria-valuetext = Model KI za alternatiwny tekst so sćahuje ({ $downloadedSize } z { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatiwny tekst je so přidał\npdfjs-editor-new-alt-text-added-button-label = Alternatiwny tekst je so přidał\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Alternatiwny tekst faluje\npdfjs-editor-new-alt-text-missing-button-label = Alternatiwny tekst faluje\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternatiwny tekst přepruwować\npdfjs-editor-new-alt-text-to-review-button-label = Alternatiwny tekst přepruwować\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Awtomatisce wutworjeny: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Nastajenja alternatiwneho wobrazoweho teksta\npdfjs-image-alt-text-settings-button-label = Nastajenja alternatiwneho wobrazoweho teksta\npdfjs-editor-alt-text-settings-dialog-label = Nastajenja alternatiwneho wobrazoweho teksta\npdfjs-editor-alt-text-settings-automatic-title = Awtomatiski alternatiwny tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Alternatiwny tekst awtomatisce wutworić\npdfjs-editor-alt-text-settings-create-model-description = Namjetuje wopisanja, zo by ludźom pomhał, kotřiž njemóžeće wobraz widźeć abo hdyž so wobraz njezačita.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model KI alternatiwneho teksta ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Běži lokalnje na wašim graće, zo bychu waše daty priwatne wostali. Za awtomatiski alternatiwny tekst trěbny.\npdfjs-editor-alt-text-settings-delete-model-button = Zhašeć\npdfjs-editor-alt-text-settings-download-model-button = Sćahnyć\npdfjs-editor-alt-text-settings-downloading-model-button = Sćahuje so…\npdfjs-editor-alt-text-settings-editor-title = Editor za alternatiwny tekst\npdfjs-editor-alt-text-settings-show-dialog-button-label = Editor alternatiwneho teksta hnydom pokazać, hdyž so wobraz přidawa\npdfjs-editor-alt-text-settings-show-dialog-description = Pomha, wam wšěm swojim wobrazam alternatiwny tekst přidać.\npdfjs-editor-alt-text-settings-close-button = Začinić\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Wuzběhnjenje přidate\npdfjs-editor-freetext-added-alert = Tekst přidaty\npdfjs-editor-ink-added-alert = Rysowanka přidata\npdfjs-editor-stamp-added-alert = Wobraz přidaty\npdfjs-editor-signature-added-alert = Signatura přidata\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Wotstronjene wuzběhnyć\npdfjs-editor-undo-bar-message-freetext = Tekst je so wotstronił\npdfjs-editor-undo-bar-message-ink = Rysowanka je so wotstroniła\npdfjs-editor-undo-bar-message-stamp = Wobraz je so wotstronił\npdfjs-editor-undo-bar-message-signature = Signatura je so wotstroniła\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } přispomnjenka je so wotstroniła\n        [two] { $count } přispomnjence stej so wotstroniłoj\n        [few] { $count } přispomnjenki su so wotstronili\n       *[other] { $count } přispomnjenkow je so wotstroniło\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Cofnyć\npdfjs-editor-undo-bar-undo-button-label = Cofnyć\npdfjs-editor-undo-bar-close-button =\n    .title = Začinić\npdfjs-editor-undo-bar-close-button-label = Začinić\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Tutón modalny dialog wužiwarjej zmóžnja, signaturu wutworić, zo by PDF-dokument přidał. Wužiwar móže mjeno wobdźěłać (kotrež tež jako alternatiwny tekst słuži) a po přeću signaturu za wospjetne wužiwanje składować.\npdfjs-editor-add-signature-dialog-title = Signaturu přidać\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typ\n    .title = Typ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Rysować\n    .title = Rysować\npdfjs-editor-add-signature-image-button = Wobraz\n    .title = Wobraz\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Zapodajće swoju signaturu\n    .placeholder = Zapodajće swoju signaturu\npdfjs-editor-add-signature-draw-placeholder = Rysujće swoju signaturu\npdfjs-editor-add-signature-draw-thickness-range-label = Tołstosć\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tołstosć rysowanki: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Ćehńće dataju sem, zo byšće ju nahrał\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Abo přepytajće wobrazowe dataje\n       *[other] Abo přepytajće wobrazowe dataje\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Wopisanje (alternatiwny tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Wopisanje (alternatiwny tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Signatura\npdfjs-editor-add-signature-clear-button-label = Signaturu zhašeć\npdfjs-editor-add-signature-clear-button =\n    .title = Signaturu zhašeć\npdfjs-editor-add-signature-save-checkbox = Signaturu składować\npdfjs-editor-add-signature-save-warning-message = Sće limit 5 składowanych signaturow docpěł. Wotstrońće jednu, zo byšće wjace składował.\npdfjs-editor-add-signature-image-upload-error-title = Wobraz njeda so nahrać\npdfjs-editor-add-signature-image-upload-error-description = Přepruwujće swój syćowy zwisk abo spytajće druhi wobraz.\npdfjs-editor-add-signature-image-no-data-error-title = Tutón wobraz njeda so do signatury přetworić\npdfjs-editor-add-signature-image-no-data-error-description = Spytajće prošu druhi wobraz nahrać.\npdfjs-editor-add-signature-error-close-button = Začinić\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Přetorhnyć\npdfjs-editor-add-signature-add-button = Přidać\npdfjs-editor-edit-signature-update-button = Aktualizować\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Komentar wobdźěłać\npdfjs-editor-edit-comment-popup-button =\n    .title = Komentar wobdźěłać\npdfjs-editor-delete-comment-popup-button-label = Komentar wotstronić\npdfjs-editor-delete-comment-popup-button =\n    .title = Komentar wotstronić\npdfjs-show-comment-button =\n    .title = Komentar pokazać\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Akcije\npdfjs-editor-edit-comment-actions-button =\n    .title = Akcije\npdfjs-editor-edit-comment-close-button-label = Začinić\npdfjs-editor-edit-comment-close-button =\n    .title = Začinić\npdfjs-editor-edit-comment-actions-edit-button-label = Wobdźěłać\npdfjs-editor-edit-comment-actions-delete-button-label = Zhašeć\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Zapodajće swój komentar\npdfjs-editor-edit-comment-manager-cancel-button = Přetorhnyć\npdfjs-editor-edit-comment-manager-save-button = Składować\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Komentar wobdźěłać\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualizować\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Komentar přidać\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Přidać\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Započńće pisać…\npdfjs-editor-edit-comment-dialog-cancel-button = Přetorhnyć\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Komentar wobdźěłać\npdfjs-editor-add-comment-button =\n    .title = Komentar přidać\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Składowanu signaturu wotstronić\npdfjs-editor-delete-signature-button-label1 = Składowanu signaturu wotstronić\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Wopisanje wobdźěłać\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Wopisanje wobdźěłać\n"
  },
  {
    "path": "viewer/locale/hu/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Előző oldal\npdfjs-previous-button-label = Előző\npdfjs-next-button =\n    .title = Következő oldal\npdfjs-next-button-label = Tovább\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Oldal\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = összesen: { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Kicsinyítés\npdfjs-zoom-out-button-label = Kicsinyítés\npdfjs-zoom-in-button =\n    .title = Nagyítás\npdfjs-zoom-in-button-label = Nagyítás\npdfjs-zoom-select =\n    .title = Nagyítás\npdfjs-presentation-mode-button =\n    .title = Váltás bemutató módba\npdfjs-presentation-mode-button-label = Bemutató mód\npdfjs-open-file-button =\n    .title = Fájl megnyitása\npdfjs-open-file-button-label = Megnyitás\npdfjs-print-button =\n    .title = Nyomtatás\npdfjs-print-button-label = Nyomtatás\npdfjs-save-button =\n    .title = Mentés\npdfjs-save-button-label = Mentés\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Letöltés\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Letöltés\npdfjs-bookmark-button =\n    .title = Jelenlegi oldal (webcím megtekintése a jelenlegi oldalról)\npdfjs-bookmark-button-label = Jelenlegi oldal\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Eszközök\npdfjs-tools-button-label = Eszközök\npdfjs-first-page-button =\n    .title = Ugrás az első oldalra\npdfjs-first-page-button-label = Ugrás az első oldalra\npdfjs-last-page-button =\n    .title = Ugrás az utolsó oldalra\npdfjs-last-page-button-label = Ugrás az utolsó oldalra\npdfjs-page-rotate-cw-button =\n    .title = Forgatás az óramutató járásával egyezően\npdfjs-page-rotate-cw-button-label = Forgatás az óramutató járásával egyezően\npdfjs-page-rotate-ccw-button =\n    .title = Forgatás az óramutató járásával ellentétesen\npdfjs-page-rotate-ccw-button-label = Forgatás az óramutató járásával ellentétesen\npdfjs-cursor-text-select-tool-button =\n    .title = Szövegkijelölő eszköz bekapcsolása\npdfjs-cursor-text-select-tool-button-label = Szövegkijelölő eszköz\npdfjs-cursor-hand-tool-button =\n    .title = Kéz eszköz bekapcsolása\npdfjs-cursor-hand-tool-button-label = Kéz eszköz\npdfjs-scroll-page-button =\n    .title = Oldalgörgetés használata\npdfjs-scroll-page-button-label = Oldalgörgetés\npdfjs-scroll-vertical-button =\n    .title = Függőleges görgetés használata\npdfjs-scroll-vertical-button-label = Függőleges görgetés\npdfjs-scroll-horizontal-button =\n    .title = Vízszintes görgetés használata\npdfjs-scroll-horizontal-button-label = Vízszintes görgetés\npdfjs-scroll-wrapped-button =\n    .title = Rácsos elrendezés használata\npdfjs-scroll-wrapped-button-label = Rácsos elrendezés\npdfjs-spread-none-button =\n    .title = Ne tapassza össze az oldalakat\npdfjs-spread-none-button-label = Nincs összetapasztás\npdfjs-spread-odd-button =\n    .title = Lapok összetapasztása, a páratlan számú oldalakkal kezdve\npdfjs-spread-odd-button-label = Összetapasztás: páratlan\npdfjs-spread-even-button =\n    .title = Lapok összetapasztása, a páros számú oldalakkal kezdve\npdfjs-spread-even-button-label = Összetapasztás: páros\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentum tulajdonságai…\npdfjs-document-properties-button-label = Dokumentum tulajdonságai…\npdfjs-document-properties-file-name = Fájlnév:\npdfjs-document-properties-file-size = Fájlméret:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } bájt)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bájt)\npdfjs-document-properties-title = Cím:\npdfjs-document-properties-author = Szerző:\npdfjs-document-properties-subject = Tárgy:\npdfjs-document-properties-keywords = Kulcsszavak:\npdfjs-document-properties-creation-date = Létrehozás dátuma:\npdfjs-document-properties-modification-date = Módosítás dátuma:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Létrehozta:\npdfjs-document-properties-producer = PDF előállító:\npdfjs-document-properties-version = PDF verzió:\npdfjs-document-properties-page-count = Oldalszám:\npdfjs-document-properties-page-size = Lapméret:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = álló\npdfjs-document-properties-page-size-orientation-landscape = fekvő\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Jogi információk\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Gyors webes nézet:\npdfjs-document-properties-linearized-yes = Igen\npdfjs-document-properties-linearized-no = Nem\npdfjs-document-properties-close-button = Bezárás\n\n## Print\n\npdfjs-print-progress-message = Dokumentum előkészítése nyomtatáshoz…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Mégse\npdfjs-printing-not-supported = Figyelmeztetés: Ez a böngésző nem teljesen támogatja a nyomtatást.\npdfjs-printing-not-ready = Figyelmeztetés: A PDF nincs teljesen betöltve a nyomtatáshoz.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Oldalsáv be/ki\npdfjs-toggle-sidebar-notification-button =\n    .title = Oldalsáv be/ki (a dokumentum vázlatot/mellékleteket/rétegeket tartalmaz)\npdfjs-toggle-sidebar-button-label = Oldalsáv be/ki\npdfjs-document-outline-button =\n    .title = Dokumentum megjelenítése online (dupla kattintás minden elem kinyitásához/összecsukásához)\npdfjs-document-outline-button-label = Dokumentumvázlat\npdfjs-attachments-button =\n    .title = Mellékletek megjelenítése\npdfjs-attachments-button-label = Van melléklet\npdfjs-layers-button =\n    .title = Rétegek megjelenítése (dupla kattintás az összes réteg alapértelmezett állapotra visszaállításához)\npdfjs-layers-button-label = Rétegek\npdfjs-thumbs-button =\n    .title = Bélyegképek megjelenítése\npdfjs-thumbs-button-label = Bélyegképek\npdfjs-current-outline-item-button =\n    .title = Jelenlegi vázlatelem megkeresése\npdfjs-current-outline-item-button-label = Jelenlegi vázlatelem\npdfjs-findbar-button =\n    .title = Keresés a dokumentumban\npdfjs-findbar-button-label = Keresés\npdfjs-additional-layers = További rétegek\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page }. oldal\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page }. oldal bélyegképe\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Keresés\n    .placeholder = Keresés a dokumentumban…\npdfjs-find-previous-button =\n    .title = A kifejezés előző előfordulásának keresése\npdfjs-find-previous-button-label = Előző\npdfjs-find-next-button =\n    .title = A kifejezés következő előfordulásának keresése\npdfjs-find-next-button-label = Tovább\npdfjs-find-highlight-checkbox = Összes kiemelése\npdfjs-find-match-case-checkbox-label = Kis- és nagybetűk megkülönböztetése\npdfjs-find-match-diacritics-checkbox-label = Diakritikus jelek\npdfjs-find-entire-word-checkbox-label = Teljes szavak\npdfjs-find-reached-top = A dokumentum eleje elérve, folytatás a végétől\npdfjs-find-reached-bottom = A dokumentum vége elérve, folytatás az elejétől\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } / { $total } találat\n       *[other] { $current } / { $total } találat\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Több mint { $limit } találat\n       *[other] Több mint { $limit } találat\n    }\npdfjs-find-not-found = A kifejezés nem található\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Oldalszélesség\npdfjs-page-scale-fit = Teljes oldal\npdfjs-page-scale-auto = Automatikus nagyítás\npdfjs-page-scale-actual = Valódi méret\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page }. oldal\n\n## Loading indicator messages\n\npdfjs-loading-error = Hiba történt a PDF betöltésekor.\npdfjs-invalid-file-error = Érvénytelen vagy sérült PDF fájl.\npdfjs-missing-file-error = Hiányzó PDF fájl.\npdfjs-unexpected-response-error = Váratlan kiszolgálóválasz.\npdfjs-rendering-error = Hiba történt az oldal feldolgozása közben.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } megjegyzés]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Adja meg a jelszót a PDF fájl megnyitásához.\npdfjs-password-invalid = Helytelen jelszó. Próbálja újra.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Mégse\npdfjs-web-fonts-disabled = Webes betűkészletek letiltva: nem használhatók a beágyazott PDF betűkészletek.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Szöveg\npdfjs-editor-color-picker-free-text-input =\n    .title = Szövegszín módosítása\npdfjs-editor-free-text-button-label = Szöveg\npdfjs-editor-ink-button =\n    .title = Rajzolás\npdfjs-editor-color-picker-ink-input =\n    .title = Rajzolási szín módosítása\npdfjs-editor-ink-button-label = Rajzolás\npdfjs-editor-stamp-button =\n    .title = Képek hozzáadása vagy szerkesztése\npdfjs-editor-stamp-button-label = Képek hozzáadása vagy szerkesztése\npdfjs-editor-highlight-button =\n    .title = Kiemelés\npdfjs-editor-highlight-button-label = Kiemelés\npdfjs-highlight-floating-button1 =\n    .title = Kiemelés\n    .aria-label = Kiemelés\npdfjs-highlight-floating-button-label = Kiemelés\npdfjs-comment-floating-button =\n    .title = Megjegyzés\n    .aria-label = Megjegyzés\npdfjs-comment-floating-button-label = Megjegyzés\npdfjs-editor-comment-button =\n    .title = Megjegyzés\n    .aria-label = Megjegyzés\npdfjs-editor-comment-button-label = Megjegyzés\npdfjs-editor-signature-button =\n    .title = Aláírás hozzáadása\npdfjs-editor-signature-button-label = Aláírás hozzáadása\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Kiemelésszerkesztő\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Rajzszerkesztő\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Aláírás-szerkesztő: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Képszerkesztő\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Rajz eltávolítása\npdfjs-editor-remove-freetext-button =\n    .title = Szöveg eltávolítása\npdfjs-editor-remove-stamp-button =\n    .title = Kép eltávolítása\npdfjs-editor-remove-highlight-button =\n    .title = Kiemelés eltávolítása\npdfjs-editor-remove-signature-button =\n    .title = Aláírás eltávolítása\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Szín\npdfjs-editor-free-text-size-input = Méret\npdfjs-editor-ink-color-input = Szín\npdfjs-editor-ink-thickness-input = Vastagság\npdfjs-editor-ink-opacity-input = Átlátszatlanság\npdfjs-editor-stamp-add-image-button =\n    .title = Kép hozzáadása\npdfjs-editor-stamp-add-image-button-label = Kép hozzáadása\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Vastagság\npdfjs-editor-free-highlight-thickness-title =\n    .title = Vastagság módosítása, ha nem szöveges elemeket emel ki\npdfjs-editor-add-signature-container =\n    .aria-label = Aláírás-vezérlők és mentett aláírások\npdfjs-editor-signature-add-signature-button =\n    .title = Új aláírás hozzáadása\npdfjs-editor-signature-add-signature-button-label = Új aláírás hozzáadása\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Mentett aláírás: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Szövegszerkesztő\n    .default-content = Kezdjen gépelni…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Megjegyzés\n       *[other] Megjegyzések\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Oldalsáv bezárása\n    .aria-label = Oldalsáv bezárása\npdfjs-editor-comments-sidebar-close-button-label = Oldalsáv bezárása\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Lát valami figyelemre méltót? Jelölje ki és írjon megjegyzést.\npdfjs-editor-comments-sidebar-no-comments-link = További tudnivalók\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatív szöveg\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternatív szöveg szerkesztése\npdfjs-editor-alt-text-dialog-label = Válasszon egy lehetőséget\npdfjs-editor-alt-text-dialog-description = Az alternatív szöveg segít, ha az emberek nem látják a képet, vagy ha az nem töltődik be.\npdfjs-editor-alt-text-add-description-label = Leírás hozzáadása\npdfjs-editor-alt-text-add-description-description = Törekedjen 1-2 mondatra, amely jellemzi a témát, környezetet vagy cselekvést.\npdfjs-editor-alt-text-mark-decorative-label = Megjelölés dekoratívként\npdfjs-editor-alt-text-mark-decorative-description = Ez a díszítőképeknél használatos, mint a szegélyek vagy a vízjelek.\npdfjs-editor-alt-text-cancel-button = Mégse\npdfjs-editor-alt-text-save-button = Mentés\npdfjs-editor-alt-text-decorative-tooltip = Megjelölve dekoratívként\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Például: „Egy fiatal férfi leül enni egy asztalhoz”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatív szöveg\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Bal felső sarok – átméretezés\npdfjs-editor-resizer-top-middle =\n    .aria-label = Felül középen – átméretezés\npdfjs-editor-resizer-top-right =\n    .aria-label = Jobb felső sarok – átméretezés\npdfjs-editor-resizer-middle-right =\n    .aria-label = Jobbra középen – átméretezés\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Jobb alsó sarok – átméretezés\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Alul középen – átméretezés\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Bal alsó sarok – átméretezés\npdfjs-editor-resizer-middle-left =\n    .aria-label = Balra középen – átméretezés\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Kiemelés színe\npdfjs-editor-colorpicker-button =\n    .title = Szín módosítása\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Színválasztások\npdfjs-editor-colorpicker-yellow =\n    .title = Sárga\npdfjs-editor-colorpicker-green =\n    .title = Zöld\npdfjs-editor-colorpicker-blue =\n    .title = Kék\npdfjs-editor-colorpicker-pink =\n    .title = Rózsaszín\npdfjs-editor-colorpicker-red =\n    .title = Vörös\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Összes megjelenítése\npdfjs-editor-highlight-show-all-button =\n    .title = Összes megjelenítése\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternatív szöveg szerkesztése (képleírás)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternatív szöveg hozzáadása (képleírás)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Írja ide a leírását…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Rövid leírás azoknak, akik nem látják a képet, vagy arra az esetre, ha a kép nem tölt be.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ez az alternatív szöveg automatikusan lett létrehozva, és pontatlan lehet.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = További tudnivalók\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternatív szöveg automatikus létrehozása\npdfjs-editor-new-alt-text-not-now-button = Most nem\npdfjs-editor-new-alt-text-error-title = Az alternatív szöveg automatikus létrehozása nem sikerült\npdfjs-editor-new-alt-text-error-description = Írja meg a saját alternatív szövegét, vagy próbálja újra később.\npdfjs-editor-new-alt-text-error-close-button = Bezárás\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Alternatív szöveg MI modell letöltése ({ $downloadedSize } / { $totalSize } MB)\n    .aria-valuetext = Alternatív szöveg MI modell letöltése ({ $downloadedSize } / { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatív szöveg hozzáadva\npdfjs-editor-new-alt-text-added-button-label = Alternatív szöveg hozzáadva\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Hiányzó alternatív szöveg\npdfjs-editor-new-alt-text-missing-button-label = Hiányzó alternatív szöveg\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternatív szöveg áttekintése\npdfjs-editor-new-alt-text-to-review-button-label = Alternatív szöveg szerkesztése\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatikusan létrehozva: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Kép alternatív szövegének beállításai\npdfjs-image-alt-text-settings-button-label = Kép alternatív szövegének beállításai\npdfjs-editor-alt-text-settings-dialog-label = Kép alternatív szövegének beállításai\npdfjs-editor-alt-text-settings-automatic-title = Automatikus alternatív szöveg\npdfjs-editor-alt-text-settings-create-model-button-label = Alternatív szöveg automatikus létrehozása\npdfjs-editor-alt-text-settings-create-model-description = Leírásokat javasol, hogy segítsen azoknak, akik nem látják a képet, vagy arra az esetre, ha a kép nem tölt be.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alternatív szöveg MI modellje ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Helyben fut az eszközén, így az adatai privátok maradnak. Az automatikus alternatív szövegekhez szükséges.\npdfjs-editor-alt-text-settings-delete-model-button = Törlés\npdfjs-editor-alt-text-settings-download-model-button = Letöltés\npdfjs-editor-alt-text-settings-downloading-model-button = Letöltés…\npdfjs-editor-alt-text-settings-editor-title = Alternatív szöveg szerkesztője\npdfjs-editor-alt-text-settings-show-dialog-button-label = Az alternatív szöveg szerkesztőjének azonnali megjelenítése egy kép hozzáadásakor\npdfjs-editor-alt-text-settings-show-dialog-description = Segít elérni, hogy az összes képén legyen alternatív szöveg.\npdfjs-editor-alt-text-settings-close-button = Bezárás\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Kiemelés hozzáadva\npdfjs-editor-freetext-added-alert = Szöveg hozzáadva\npdfjs-editor-ink-added-alert = Rajz hozzáadva\npdfjs-editor-stamp-added-alert = Kép hozzáadva\npdfjs-editor-signature-added-alert = Aláírás hozzáadva\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Kiemelés eltávolítva\npdfjs-editor-undo-bar-message-freetext = Szöveg eltávolítva\npdfjs-editor-undo-bar-message-ink = Rajz eltávolítva\npdfjs-editor-undo-bar-message-stamp = Kép eltávolítva\npdfjs-editor-undo-bar-message-signature = Aláírás eltávolítva\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } kommentár eltávolítva\n       *[other] { $count } kommentár eltávolítva\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Visszavonás\npdfjs-editor-undo-bar-undo-button-label = Visszavonás\npdfjs-editor-undo-bar-close-button =\n    .title = Bezárás\npdfjs-editor-undo-bar-close-button-label = Bezárás\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Ez a mód lehetővé teszi a felhasználónak, hogy aláírást hozzon létre, és ezt egy PDF dokumentumhoz adja. A felhasználó szerkesztheti a nevet (ez egyben alternatív szövegként is szolgál), és ismételt felhasználás céljából tetszés szerint mentheti az aláírást.\npdfjs-editor-add-signature-dialog-title = Aláírás hozzáadása\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Beírás\n    .title = Beírás\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Rajzolás\n    .title = Rajzolás\npdfjs-editor-add-signature-image-button = Kép\n    .title = Kép\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Írja be az aláírását\n    .placeholder = Írja be az aláírását\npdfjs-editor-add-signature-draw-placeholder = Rajzolja le az aláírását\npdfjs-editor-add-signature-draw-thickness-range-label = Vastagság\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Rajzolási vastagság: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Húzzon ide egy fájlt a feltöltéshez\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Vagy tallózzon a képfájlok között\n       *[other] Vagy tallózzon a képfájlok között\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Leírás (alternatív szöveg)\npdfjs-editor-add-signature-description-input =\n    .title = Leírás (alternatív szöveg)\npdfjs-editor-add-signature-description-default-when-drawing = Aláírás\npdfjs-editor-add-signature-clear-button-label = Aláírás törlése\npdfjs-editor-add-signature-clear-button =\n    .title = Aláírás törlése\npdfjs-editor-add-signature-save-checkbox = Aláírás mentése\npdfjs-editor-add-signature-save-warning-message = Elérte a mentett aláírások 5 darabos korlátját. A mentéshez távolítson el egyet.\npdfjs-editor-add-signature-image-upload-error-title = A kép nem tölthető fel\npdfjs-editor-add-signature-image-upload-error-description = Ellenőrizze a hálózati kapcsolatot, vagy próbálkozzon egy másik képpel.\npdfjs-editor-add-signature-image-no-data-error-title = Ez a kép nem alakítható át aláírássá\npdfjs-editor-add-signature-image-no-data-error-description = Próbáljon meg másik képet feltölteni.\npdfjs-editor-add-signature-error-close-button = Bezárás\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Mégse\npdfjs-editor-add-signature-add-button = Hozzáadás\npdfjs-editor-edit-signature-update-button = Frissítés\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Megjegyzés szerkesztése\npdfjs-editor-edit-comment-popup-button =\n    .title = Megjegyzés szerkesztése\npdfjs-editor-delete-comment-popup-button-label = Megjegyzés eltávolítása\npdfjs-editor-delete-comment-popup-button =\n    .title = Megjegyzés eltávolítása\npdfjs-show-comment-button =\n    .title = Megjegyzés megjelenítése\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Műveletek\npdfjs-editor-edit-comment-actions-button =\n    .title = Műveletek\npdfjs-editor-edit-comment-close-button-label = Bezárás\npdfjs-editor-edit-comment-close-button =\n    .title = Bezárás\npdfjs-editor-edit-comment-actions-edit-button-label = Szerkesztés\npdfjs-editor-edit-comment-actions-delete-button-label = Törlés\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Írja be a megjegyzését\npdfjs-editor-edit-comment-manager-cancel-button = Mégse\npdfjs-editor-edit-comment-manager-save-button = Mentés\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Megjegyzés szerkesztése\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Frissítés\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Megjegyzés hozzáadása\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Hozzáadás\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Kezdjen el gépelni…\npdfjs-editor-edit-comment-dialog-cancel-button = Mégse\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Megjegyzés szerkesztése\npdfjs-editor-add-comment-button =\n    .title = Megjegyzés hozzáadása\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Mentett aláírás eltávolítása\npdfjs-editor-delete-signature-button-label1 = Mentett aláírás eltávolítása\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Leírás szerkesztése\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Leírás szerkesztése\n"
  },
  {
    "path": "viewer/locale/hy-AM/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Նախորդ էջը\npdfjs-previous-button-label = Նախորդը\npdfjs-next-button =\n    .title = Հաջորդ էջը\npdfjs-next-button-label = Հաջորդը\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Էջ.\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = -ը՝ { $pagesCount }-ից\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber }-ը { $pagesCount })-ից\npdfjs-zoom-out-button =\n    .title = Փոքրացնել\npdfjs-zoom-out-button-label = Փոքրացնել\npdfjs-zoom-in-button =\n    .title = Խոշորացնել\npdfjs-zoom-in-button-label = Խոշորացնել\npdfjs-zoom-select =\n    .title = Դիտափոխում\npdfjs-presentation-mode-button =\n    .title = Անցնել Ներկայացման եղանակին\npdfjs-presentation-mode-button-label = Ներկայացման եղանակ\npdfjs-open-file-button =\n    .title = Բացել նիշք\npdfjs-open-file-button-label = Բացել\npdfjs-print-button =\n    .title = Տպել\npdfjs-print-button-label = Տպել\npdfjs-save-button =\n    .title = Պահպանել\npdfjs-save-button-label = Պահպանել\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Ներբեռնել\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Ներբեռնել\npdfjs-bookmark-button =\n    .title = Ընթացիկ էջ (Դիտել URL-ը ընթացիկ էջից)\npdfjs-bookmark-button-label = Ընթացիկ էջ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Գործիքներ\npdfjs-tools-button-label = Գործիքներ\npdfjs-first-page-button =\n    .title = Անցնել առաջին էջին\npdfjs-first-page-button-label = Անցնել առաջին էջին\npdfjs-last-page-button =\n    .title = Անցնել վերջին էջին\npdfjs-last-page-button-label = Անցնել վերջին էջին\npdfjs-page-rotate-cw-button =\n    .title = Պտտել ըստ ժամացույցի սլաքի\npdfjs-page-rotate-cw-button-label = Պտտել ըստ ժամացույցի սլաքի\npdfjs-page-rotate-ccw-button =\n    .title = Պտտել հակառակ ժամացույցի սլաքի\npdfjs-page-rotate-ccw-button-label = Պտտել հակառակ ժամացույցի սլաքի\npdfjs-cursor-text-select-tool-button =\n    .title = Միացնել գրույթ ընտրելու գործիքը\npdfjs-cursor-text-select-tool-button-label = Գրույթը ընտրելու գործիք\npdfjs-cursor-hand-tool-button =\n    .title = Միացնել Ձեռքի գործիքը\npdfjs-cursor-hand-tool-button-label = Ձեռքի գործիք\npdfjs-scroll-page-button =\n    .title = Օգտագործեք էջի գլորումը\npdfjs-scroll-page-button-label = Էջի գլորում\npdfjs-scroll-vertical-button =\n    .title = Օգտագործել ուղղահայաց ոլորում\npdfjs-scroll-vertical-button-label = Ուղղահայաց ոլորում\npdfjs-scroll-horizontal-button =\n    .title = Օգտագործել հորիզոնական ոլորում\npdfjs-scroll-horizontal-button-label = Հորիզոնական ոլորում\npdfjs-scroll-wrapped-button =\n    .title = Օգտագործել փաթաթված ոլորում\npdfjs-scroll-wrapped-button-label = Փաթաթված ոլորում\npdfjs-spread-none-button =\n    .title = Մի միացեք էջի վերածածկերին\npdfjs-spread-none-button-label = Չկա վերածածկեր\npdfjs-spread-odd-button =\n    .title = Միացեք էջի վերածածկերին սկսելով՝ կենտ համարակալված էջերով\npdfjs-spread-odd-button-label = Կենտ վերածածկեր\npdfjs-spread-even-button =\n    .title = Միացեք էջի վերածածկերին սկսելով՝ զույգ համարակալված էջերով\npdfjs-spread-even-button-label = Զույգ վերածածկեր\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Փաստաթղթի հատկությունները…\npdfjs-document-properties-button-label = Փաստաթղթի հատկությունները…\npdfjs-document-properties-file-name = Նիշքի անունը.\npdfjs-document-properties-file-size = Նիշք չափը.\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } ԿԲ ({ $b } բայթ)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } ՄԲ ({ $b } բայթ)\npdfjs-document-properties-title = Վերնագիր.\npdfjs-document-properties-author = Հեղինակ․\npdfjs-document-properties-subject = Վերնագիր.\npdfjs-document-properties-keywords = Հիմնաբառ.\npdfjs-document-properties-creation-date = Ստեղծելու ամսաթիվը.\npdfjs-document-properties-modification-date = Փոփոխելու ամսաթիվը.\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Ստեղծող.\npdfjs-document-properties-producer = PDF-ի հեղինակը.\npdfjs-document-properties-version = PDF-ի տարբերակը.\npdfjs-document-properties-page-count = Էջերի քանակը.\npdfjs-document-properties-page-size = Էջի չափը.\npdfjs-document-properties-page-size-unit-inches = ում\npdfjs-document-properties-page-size-unit-millimeters = մմ\npdfjs-document-properties-page-size-orientation-portrait = ուղղաձիգ\npdfjs-document-properties-page-size-orientation-landscape = հորիզոնական\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Նամակ\npdfjs-document-properties-page-size-name-legal = Օրինական\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Արագ վեբ դիտում․\npdfjs-document-properties-linearized-yes = Այո\npdfjs-document-properties-linearized-no = Ոչ\npdfjs-document-properties-close-button = Փակել\n\n## Print\n\npdfjs-print-progress-message = Նախապատրաստում է փաստաթուղթը տպելուն...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Չեղարկել\npdfjs-printing-not-supported = Զգուշացում. Տպելը ամբողջությամբ չի աջակցվում դիտարկիչի կողմից։\npdfjs-printing-not-ready = Զգուշացում. PDF-ը ամբողջությամբ չի բեռնավորվել տպելու համար:\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Բացել/Փակել կողագոտին\npdfjs-toggle-sidebar-notification-button =\n    .title = Փոխարկել Կողագոտին (փաստաթուղթը պարունակում է ուրվագիծ/կցորդներ)\npdfjs-toggle-sidebar-button-label = Բացել/Փակել կողագոտին\npdfjs-document-outline-button =\n    .title = Ցուցադրել փաստաթղթի ուրվագիծը (կրկնակի սեղմեք՝ միավորները ընդարձակելու/կոծկելու համար)\npdfjs-document-outline-button-label = Փաստաթղթի բովանդակությունը\npdfjs-attachments-button =\n    .title = Ցուցադրել կցորդները\npdfjs-attachments-button-label = Կցորդներ\npdfjs-layers-button =\n    .title = Ցուցադրել շերտերը (կրկնակի սեղմեք բոլոր շերտերը սկզբնական վիճակին վերականգնելու համար)\npdfjs-layers-button-label = Շերտեր\npdfjs-thumbs-button =\n    .title = Ցուցադրել մանրապատկերը\npdfjs-thumbs-button-label = Մանրապատկերը\npdfjs-current-outline-item-button =\n    .title = Գտեք ընթացիկ ուրվագծային տարրը\npdfjs-current-outline-item-button-label = Ընթացիկ ուրվագծային տարր\npdfjs-findbar-button =\n    .title = Գտնել փաստաթղթում\npdfjs-findbar-button-label = Որոնում\npdfjs-additional-layers = Լրացուցիչ շերտեր\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Էջը { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Էջի մանրապատկերը { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Որոնում\n    .placeholder = Գտնել փաստաթղթում...\npdfjs-find-previous-button =\n    .title = Գտնել անրահայտության նախորդ հանդիպումը\npdfjs-find-previous-button-label = Նախորդը\npdfjs-find-next-button =\n    .title = Գտիր արտահայտության հաջորդ հանդիպումը\npdfjs-find-next-button-label = Հաջորդը\npdfjs-find-highlight-checkbox = Գունանշել բոլորը\npdfjs-find-match-case-checkbox-label = Մեծ(փոքր)ատառ հաշվի առնել\npdfjs-find-match-diacritics-checkbox-label = Համապատասխանեցնել տարբերիչները\npdfjs-find-entire-word-checkbox-label = Ամբողջ բառերը\npdfjs-find-reached-top = Հասել եք փաստաթղթի վերևին, կշարունակվի ներքևից\npdfjs-find-reached-bottom = Հասել եք փաստաթղթի վերջին, կշարունակվի վերևից\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current }՝ { $total } համընկնումից\n       *[other] { $current } of { $total } համընկնումներից\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Ավելի քան { $limit } համընկնում\n       *[other] Ավելի քան { $limit } համընկնումներ\n    }\npdfjs-find-not-found = Արտահայտությունը չգտնվեց\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Էջի լայնքը\npdfjs-page-scale-fit = Ձգել էջը\npdfjs-page-scale-auto = Ինքնաշխատ\npdfjs-page-scale-actual = Իրական չափը\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Էջ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Սխալ՝ PDF ֆայլը բացելիս։\npdfjs-invalid-file-error = Սխալ կամ վնասված PDF ֆայլ:\npdfjs-missing-file-error = PDF ֆայլը բացակայում է:\npdfjs-unexpected-response-error = Սպասարկիչի անսպասելի պատասխան:\npdfjs-rendering-error = Սխալ՝ էջը ստեղծելիս:\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Ծանոթություն]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Մուտքագրեք PDF-ի գաղտնաբառը:\npdfjs-password-invalid = Գաղտնաբառը սխալ է: Կրկին փորձեք:\npdfjs-password-ok-button = Լավ\npdfjs-password-cancel-button = Չեղարկել\npdfjs-web-fonts-disabled = Վեբ-տառատեսակները անջատված են. հնարավոր չէ օգտագործել ներկառուցված PDF տառատեսակները:\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Գրվածք\npdfjs-editor-color-picker-free-text-input =\n    .title = Փոխել տեքստի գույնը\npdfjs-editor-free-text-button-label = Գրվածք\npdfjs-editor-ink-button =\n    .title = Նկարել\npdfjs-editor-color-picker-ink-input =\n    .title = Փոխել նկարելու գույնը\npdfjs-editor-ink-button-label = Նկարել\npdfjs-editor-stamp-button =\n    .title = Հավելել կամ խմբագրել պատկերներ\npdfjs-editor-stamp-button-label = Հավելել կամ խմբագրել պատկերներ\npdfjs-editor-highlight-button =\n    .title = Գունանշում\npdfjs-editor-highlight-button-label = Գունանշում\npdfjs-highlight-floating-button1 =\n    .title = Գունանշում\n    .aria-label = Գունանշում\npdfjs-highlight-floating-button-label = Գունանշում\npdfjs-comment-floating-button =\n    .title = Մեկնաբանություն\n    .aria-label = Մեկնաբանություն\npdfjs-comment-floating-button-label = Մեկնաբանություն\npdfjs-editor-signature-button =\n    .title = Ավելացնել ստորագրություն\npdfjs-editor-signature-button-label = Ավելացնել ստորագրություն\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Գունանշել խմբագիրը\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Նկարելու խմբագիր\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Ստորագրության խմբագիր՝ { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Պատկերի խմբագիր\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Հեռացնել նկարումը\npdfjs-editor-remove-freetext-button =\n    .title = Հեռացնել գրվածքը\npdfjs-editor-remove-stamp-button =\n    .title = Հեռացնել պատկերը\npdfjs-editor-remove-highlight-button =\n    .title = Հեռացնել գունանշումը\npdfjs-editor-remove-signature-button =\n    .title = Հեռացնել ստորագրությունը\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Գույն\npdfjs-editor-free-text-size-input = Չափ\npdfjs-editor-ink-color-input = Գույն\npdfjs-editor-ink-thickness-input = Հաստություն\npdfjs-editor-ink-opacity-input = Մգություն\npdfjs-editor-stamp-add-image-button =\n    .title = Հավելել պատկեր\npdfjs-editor-stamp-add-image-button-label = Հավելել պատկեր\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Հաստություն\npdfjs-editor-free-highlight-thickness-title =\n    .title = Փոխել հաստությունը տեքստից բացի այլ տարրեր նշելիս\npdfjs-editor-add-signature-container =\n    .aria-label = Ստորագրության կառավարման տարրեր և պահպանված ստորագրություններ\npdfjs-editor-signature-add-signature-button =\n    .title = Ավելացնել նոր ստորագրություն\npdfjs-editor-signature-add-signature-button-label = Ավելացնել նոր ստորագրություն\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Պահպանված ստորագրություն՝ { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Գրվածքի խմբագիր\n    .default-content = Սկսեք մուտքագրել...\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Այլընտրանքային գրվածք\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Խմբագրել այլընտրանքային գրվածքը\npdfjs-editor-alt-text-dialog-label = Ընտրեք տառատեսակը\npdfjs-editor-alt-text-dialog-description = Այլընտրանքային տեքստը (alternative text) օգնում է, երբ մարդիկ չեն կարողանում տեսնել պատկերը կամ երբ այն չի բեռնվում։\npdfjs-editor-alt-text-add-description-label = Հավելել նկարագրություն\npdfjs-editor-alt-text-add-description-description = Ձգտեք գրել 1-2 նախադասություն, որոնք նկարագրում են թեման, միջավայրը կամ գործողությունները։\npdfjs-editor-alt-text-mark-decorative-label = Նշել որպես դեկորատիվ\npdfjs-editor-alt-text-mark-decorative-description = Սա օգտագործվում է դեկորատիվ պատկերների համար, ինչպիսիք են եզրագծերը կամ ջրանիշերը։\npdfjs-editor-alt-text-cancel-button = Չեղարկել\npdfjs-editor-alt-text-save-button = Պահպանել\npdfjs-editor-alt-text-decorative-tooltip = Նշել որպես դեկորատիվ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Օրինակ՝ «Մի երիտասարդ նստում է սեղանի շուրջ՝ ուտելու»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Այլընտրանքային գրվածք\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Վերին ձախ անկյուն՝ չափափոխել\npdfjs-editor-resizer-top-middle =\n    .aria-label = Վերևի մեջտեղում՝ չափափոխել\npdfjs-editor-resizer-top-right =\n    .aria-label = Վերին ձախ անկյուն՝ չափափոխել\npdfjs-editor-resizer-middle-right =\n    .aria-label = Մեջտեղի աջ կողմում՝ չափափոխել\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Վերին ձախ անկյուն՝ չափափոխել\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Վերևի մեջտեղում՝ չափափոխել\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Վերին ձախ անկյուն՝ չափափոխել\npdfjs-editor-resizer-middle-left =\n    .aria-label = Մեջտեղի ձախ կողմում՝ չափափոխել\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Գունանշման գույն\npdfjs-editor-colorpicker-button =\n    .title = Փոխել գույնը\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Գույների ընտրություն\npdfjs-editor-colorpicker-yellow =\n    .title = Դեղին\npdfjs-editor-colorpicker-green =\n    .title = Կանաչ\npdfjs-editor-colorpicker-blue =\n    .title = Կապույտ\npdfjs-editor-colorpicker-pink =\n    .title = Վարդագույն\npdfjs-editor-colorpicker-red =\n    .title = Կարմիր\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Ցուցադրել բոլորը\npdfjs-editor-highlight-show-all-button =\n    .title = Ցուցադրել բոլորը\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Խմբագրել այլընտրանքային տեքստը (պատկերի նկարագրությունը)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Ավելացնել այլընտրանքային գրվածք (պատկերի նկարագրություն)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Գրեք ձեր նկարագրությունն այստեղ…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Կարճ նկարագրություն նրանց համար, ովքեր չեն կարող տեսնել պատկերը կամ երբ պատկերը չի բեռնվում։\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Այս այլընտրանքային տեքստը ստեղծվել է ինքնաշխատ և կարող է սխալ լինել։\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Իմանալ ավելին\npdfjs-editor-new-alt-text-create-automatically-button-label = Ինքնաշխատ ստեղծել այլընտրանքային գրվածք\npdfjs-editor-new-alt-text-not-now-button = Ոչ հիմա\npdfjs-editor-new-alt-text-error-title = Հնարավոր չէ ինքնաշխատ ստեղծել այլընտրանքային գրվածք\npdfjs-editor-new-alt-text-error-description = Խնդրում ենք գրել ձեր սեփական այլընտրանքային տեքստը կամ փորձել կրկին ավելի ուշ։\npdfjs-editor-new-alt-text-error-close-button = Փակել\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Ներբեռնվում է այլընտրանքային գրվածքի ահեստական բանականության մոդելը ({ $downloadedSize }՝ { $totalSize } ՄԲ-ից)\n    .aria-valuetext = Ներբեռնվում է այլընտրանքային գրվածքի ահեստական բանականության մոդելը ({ $downloadedSize }՝ { $totalSize } ՄԲ-ից)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Այլընտրանքային գրվածքն ավելացված է\npdfjs-editor-new-alt-text-added-button-label = Այլընտրանքային գրվածքն ավելացված է\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Այլընտրանքային գրվածքը բացակայում է\npdfjs-editor-new-alt-text-missing-button-label = Այլընտրանքային գրվածքը բացակայում է\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Վերանայել այլընտրանքային գրվածքը\npdfjs-editor-new-alt-text-to-review-button-label = Վերանայել այլընտրանքային գրվածքը\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Ստեղծվել է ինքնաշխատվ՝ { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Պատկերի այլընտրանքային գրվածքի կարգավորումներ\npdfjs-image-alt-text-settings-button-label = Պատկերի այլընտրանքային գրվածքի կարգավորումներ\npdfjs-editor-alt-text-settings-dialog-label = Պատկերի այլընտրանքային գրվածքի կարգավորումներ\npdfjs-editor-alt-text-settings-automatic-title = Ինքնաշխատ այլընտրանքային գրվածք\npdfjs-editor-alt-text-settings-create-model-button-label = Ինքնաշխատ ստեղծել այլընտրանքային գրվածք\npdfjs-editor-alt-text-settings-create-model-description = Կարճ նկարագրություն նրանց համար, ովքեր չեն կարող տեսնել պատկերը կամ երբ պատկերը չի բեռնվում։\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Այլընտրանքային գրվածքի արհեստական բանականության մոդել ({ $totalSize } ՄԲ)\npdfjs-editor-alt-text-settings-ai-model-description = Աշխատում է տեղայնորեն ձեր սարքի վրա, որպեսզի ձեր տվյալները մնան գաղտնի: Պահանջվում է ինքնաշխատ այլընտրանքային գրվածքի համար:\npdfjs-editor-alt-text-settings-delete-model-button = Ջնջել\npdfjs-editor-alt-text-settings-download-model-button = Ներբեռնել\npdfjs-editor-alt-text-settings-downloading-model-button = Ներբեռնվում է…\npdfjs-editor-alt-text-settings-editor-title = Այլընտրանքային գրվածքի խմբագիր\npdfjs-editor-alt-text-settings-show-dialog-button-label = Պատկեր ավելացնելիս անմիջապես ցուցադրել այլընտրանքային գրվածքի խմբագիրը\npdfjs-editor-alt-text-settings-show-dialog-description = Օգնում է  համոզվել, որ ձեր բոլոր պատկերներն ունեն այլընտրանքային գրվածք։\npdfjs-editor-alt-text-settings-close-button = Փակել\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Գունանշումը ավելացվել է\npdfjs-editor-freetext-added-alert = Գրվածքը ավելացվել է\npdfjs-editor-ink-added-alert = Նկարումը ավելացվել է\npdfjs-editor-stamp-added-alert = Պատկերն ավելացված է\npdfjs-editor-signature-added-alert = Ստորագրությունն ավելացված է\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Գունանշումը հեռացված է\npdfjs-editor-undo-bar-message-freetext = Գրվածքը հեռացվել է\npdfjs-editor-undo-bar-message-ink = Նկարվածը հեռացվել է\npdfjs-editor-undo-bar-message-stamp = Պատկերը հեռացվել է\npdfjs-editor-undo-bar-message-signature = Ստորագրությունը հեռացված է\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } մեկնաբանությունը հեռացվել է\n       *[other] { $count } մեկնաբանությունները հեռացվել են\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Հետարկել\npdfjs-editor-undo-bar-undo-button-label = Հետարկել\npdfjs-editor-undo-bar-close-button =\n    .title = Փակել\npdfjs-editor-undo-bar-close-button-label = Փակել\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Այս յուրահատկությունը հնարավորություն է տալիս օգտվողին ստեղծել ստորագրություն՝ PDF փաստաթղթում ավելացնելու համար: Օգտվողը կարող է խմբագրել անունը (որը նաև ծառայում է որպես alt տեքստ) և լրացուցիչ պահպանել այն՝ հետագա օգտագործման համար:\npdfjs-editor-add-signature-dialog-title = Ավելացնել ստորագրություն\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Տեսակ\n    .title = Տեսակ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Նկարել\n    .title = Նկարել\npdfjs-editor-add-signature-image-button = Պատկեր\n    .title = Պատկեր\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Մուտքագրեք ձեր ստորագրությունը\n    .placeholder = Մուտքագրեք ձեր ստորագրությունը\npdfjs-editor-add-signature-draw-placeholder = Նկարեք ձեր ստորագրությունը\npdfjs-editor-add-signature-draw-thickness-range-label = Հաստություն\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Նկաելու հաստությունը՝ { $thickness }\npdfjs-editor-add-signature-image-placeholder = Քաշեք ֆայլը այստեղ՝ վերբեռնելու համար\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Կամ ընտրեք պատկերի ֆայլը\n       *[other] Կամ ընտրեք պատկերի ֆայլերը\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Նկարագրություն (այլընտրանքային գրվածք)\npdfjs-editor-add-signature-description-input =\n    .title = Նկարագրություն (այլընտրանքային գրվածք)\npdfjs-editor-add-signature-description-default-when-drawing = Ստորագրություն\npdfjs-editor-add-signature-clear-button-label = Մաքրել ստորագրությունը\npdfjs-editor-add-signature-clear-button =\n    .title = Մաքրել ստորագրությունը\npdfjs-editor-add-signature-save-checkbox = Պահպանել ստորագրությունը\npdfjs-editor-add-signature-save-warning-message = Դուք հասել եք պահպանված ստորագրությունների 5 սահմանաչափին։ Հեռացրեք մեկը՝ ավելին պահպանելու համար։\npdfjs-editor-add-signature-image-upload-error-title = Չհաջողվեց վերբեռնել պատկերը\npdfjs-editor-add-signature-image-upload-error-description = Ստուգեք ձեր ցանցային կապակցումը կամ փորձեք մեկ այլ պատկեր։\npdfjs-editor-add-signature-image-no-data-error-title = Այս պատկերը հնարավոր չէ վերածել ստորագրության\npdfjs-editor-add-signature-image-no-data-error-description = Խնդրում եմ փորձեք վերբեռնել այլ պատկեր։\npdfjs-editor-add-signature-error-close-button = Փակել\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Չեղարկել\npdfjs-editor-add-signature-add-button = Ավելացնել\npdfjs-editor-edit-signature-update-button = Թարմացնել\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Գործողություններ\npdfjs-editor-edit-comment-actions-button =\n    .title = Գործողություններ\npdfjs-editor-edit-comment-close-button-label = Փակել\npdfjs-editor-edit-comment-close-button =\n    .title = Փակել\npdfjs-editor-edit-comment-actions-edit-button-label = Խմբագրել\npdfjs-editor-edit-comment-actions-delete-button-label = Ջնջել\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Մուտքագրեք ձեր մեկնաբանությունը\npdfjs-editor-edit-comment-manager-cancel-button = Չեղարկել\npdfjs-editor-edit-comment-manager-save-button = Պահպանել\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Խմբագրել մեկնաբանությունը\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Հեռացնել պահպանված ստորագրությունը\npdfjs-editor-delete-signature-button-label1 = Հեռացնել պահպանված ստորագրությունը\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Խմբագրել նկարագրությունը\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Խմբագրել նկարագրությունը\n"
  },
  {
    "path": "viewer/locale/hye/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Նախորդ էջ\npdfjs-previous-button-label = Նախորդը\npdfjs-next-button =\n    .title = Յաջորդ էջ\npdfjs-next-button-label = Յաջորդը\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = էջ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount }-ից\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber }-ը { $pagesCount })-ից\npdfjs-zoom-out-button =\n    .title = Փոքրացնել\npdfjs-zoom-out-button-label = Փոքրացնել\npdfjs-zoom-in-button =\n    .title = Խոշորացնել\npdfjs-zoom-in-button-label = Խոշորացնել\npdfjs-zoom-select =\n    .title = Խոշորացում\npdfjs-presentation-mode-button =\n    .title = Անցնել ներկայացման եղանակին\npdfjs-presentation-mode-button-label = Ներկայացման եղանակ\npdfjs-open-file-button =\n    .title = Բացել նիշքը\npdfjs-open-file-button-label = Բացել\npdfjs-print-button =\n    .title = Տպել\npdfjs-print-button-label = Տպել\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Գործիքներ\npdfjs-tools-button-label = Գործիքներ\npdfjs-first-page-button =\n    .title = Գնալ դէպի առաջին էջ\npdfjs-first-page-button-label = Գնալ դէպի առաջին էջ\npdfjs-last-page-button =\n    .title = Գնալ դէպի վերջին էջ\npdfjs-last-page-button-label = Գնալ դէպի վերջին էջ\npdfjs-page-rotate-cw-button =\n    .title = Պտտել ժամացոյցի սլաքի ուղղութեամբ\npdfjs-page-rotate-cw-button-label = Պտտել ժամացոյցի սլաքի ուղղութեամբ\npdfjs-page-rotate-ccw-button =\n    .title = Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ\npdfjs-page-rotate-ccw-button-label = Պտտել ժամացոյցի սլաքի հակառակ ուղղութեամբ\npdfjs-cursor-text-select-tool-button =\n    .title = Միացնել գրոյթ ընտրելու գործիքը\npdfjs-cursor-text-select-tool-button-label = Գրուածք ընտրելու գործիք\npdfjs-cursor-hand-tool-button =\n    .title = Միացնել ձեռքի գործիքը\npdfjs-cursor-hand-tool-button-label = Ձեռքի գործիք\npdfjs-scroll-page-button =\n    .title = Աւգտագործել էջի ոլորում\npdfjs-scroll-page-button-label = Էջի ոլորում\npdfjs-scroll-vertical-button =\n    .title = Աւգտագործել ուղղահայեաց ոլորում\npdfjs-scroll-vertical-button-label = Ուղղահայեաց ոլորում\npdfjs-scroll-horizontal-button =\n    .title = Աւգտագործել հորիզոնական ոլորում\npdfjs-scroll-horizontal-button-label = Հորիզոնական ոլորում\npdfjs-scroll-wrapped-button =\n    .title = Աւգտագործել փաթաթուած ոլորում\npdfjs-scroll-wrapped-button-label = Փաթաթուած ոլորում\npdfjs-spread-none-button =\n    .title = Մի միացէք էջի կոնտեքստում\npdfjs-spread-none-button-label = Չկայ կոնտեքստ\npdfjs-spread-odd-button =\n    .title = Միացէք էջի կոնտեքստին սկսելով՝ կենտ համարակալուած էջերով\npdfjs-spread-odd-button-label = Տարաւրինակ կոնտեքստ\npdfjs-spread-even-button =\n    .title = Միացէք էջի կոնտեքստին սկսելով՝ զոյգ համարակալուած էջերով\npdfjs-spread-even-button-label = Հաւասար վերածածկեր\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Փաստաթղթի հատկութիւնները…\npdfjs-document-properties-button-label = Փաստաթղթի յատկութիւնները…\npdfjs-document-properties-file-name = Նիշքի անունը․\npdfjs-document-properties-file-size = Նիշք չափը.\npdfjs-document-properties-title = Վերնագիր\npdfjs-document-properties-author = Հեղինակ․\npdfjs-document-properties-subject = առարկայ\npdfjs-document-properties-keywords = Հիմնաբառեր\npdfjs-document-properties-creation-date = Ստեղծման ամսաթիւ\npdfjs-document-properties-modification-date = Փոփոխութեան ամսաթիւ.\npdfjs-document-properties-creator = Ստեղծող\npdfjs-document-properties-producer = PDF-ի Արտադրողը.\npdfjs-document-properties-version = PDF-ի տարբերակը.\npdfjs-document-properties-page-count = Էջերի քանակը.\npdfjs-document-properties-page-size = Էջի չափը.\npdfjs-document-properties-page-size-unit-inches = ում\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = ուղղաձիգ\npdfjs-document-properties-page-size-orientation-landscape = հորիզոնական\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Նամակ\npdfjs-document-properties-page-size-name-legal = Աւրինական\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Արագ վեբ դիտում․\npdfjs-document-properties-linearized-yes = Այո\npdfjs-document-properties-linearized-no = Ոչ\npdfjs-document-properties-close-button = Փակել\n\n## Print\n\npdfjs-print-progress-message = Նախապատրաստում է փաստաթուղթը տպելուն…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Չեղարկել\npdfjs-printing-not-supported = Զգուշացում. Տպելը ամբողջութեամբ չի աջակցուում զննարկիչի կողմից։\npdfjs-printing-not-ready = Զգուշացում. PDF֊ը ամբողջութեամբ չի բեռնաւորուել տպելու համար։\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Փոխարկել կողային վահանակը\npdfjs-toggle-sidebar-notification-button =\n    .title = Փոխանջատել կողմնասիւնը (փաստաթուղթը պարունակում է ուրուագիծ/կցորդներ/շերտեր)\npdfjs-toggle-sidebar-button-label = Փոխարկել կողային վահանակը\npdfjs-document-outline-button =\n    .title = Ցուցադրել փաստաթղթի ուրուագիծը (կրկնակի սեղմէք՝ միաւորները ընդարձակելու/կոծկելու համար)\npdfjs-document-outline-button-label = Փաստաթղթի ուրուագիծ\npdfjs-attachments-button =\n    .title = Ցուցադրել կցորդները\npdfjs-attachments-button-label = Կցորդներ\npdfjs-layers-button =\n    .title = Ցուցադրել շերտերը (կրկնահպել վերակայելու բոլոր շերտերը սկզբնադիր վիճակի)\npdfjs-layers-button-label = Շերտեր\npdfjs-thumbs-button =\n    .title = Ցուցադրել մանրապատկերը\npdfjs-thumbs-button-label = Մանրապատկեր\npdfjs-current-outline-item-button =\n    .title = Գտէք ընթացիկ գծագրման տարրը\npdfjs-current-outline-item-button-label = Ընթացիկ գծագրման տարր\npdfjs-findbar-button =\n    .title = Գտնել փաստաթղթում\npdfjs-findbar-button-label = Որոնում\npdfjs-additional-layers = Լրացուցիչ շերտեր\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Էջը { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Էջի մանրապատկերը { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Որոնում\n    .placeholder = Գտնել փաստաթղթում…\npdfjs-find-previous-button =\n    .title = Գտնել արտայայտութեան նախորդ արտայայտութիւնը\npdfjs-find-previous-button-label = Նախորդը\npdfjs-find-next-button =\n    .title = Գտիր արտայայտութեան յաջորդ արտայայտութիւնը\npdfjs-find-next-button-label = Հաջորդը\npdfjs-find-highlight-checkbox = Գունանշել բոլորը\npdfjs-find-match-case-checkbox-label = Հաշուի առնել հանգամանքը\npdfjs-find-match-diacritics-checkbox-label = Հնչիւնատարբերիչ նշանների համապատասխանեցում\npdfjs-find-entire-word-checkbox-label = Ամբողջ բառերը\npdfjs-find-reached-top = Հասել եք փաստաթղթի վերեւին,շարունակել ներքեւից\npdfjs-find-reached-bottom = Հասել էք փաստաթղթի վերջին, շարունակել վերեւից\npdfjs-find-not-found = Արտայայտութիւնը չգտնուեց\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Էջի լայնութիւն\npdfjs-page-scale-fit = Հարմարեցնել էջը\npdfjs-page-scale-auto = Ինքնաշխատ խոշորացում\npdfjs-page-scale-actual = Իրական չափը\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Էջ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF նիշքը բացելիս սխալ է տեղի ունեցել։\npdfjs-invalid-file-error = Սխալ կամ վնասուած PDF նիշք։\npdfjs-missing-file-error = PDF նիշքը բացակաիւմ է։\npdfjs-unexpected-response-error = Սպասարկիչի անսպասելի պատասխան։\npdfjs-rendering-error = Սխալ է տեղի ունեցել էջի մեկնաբանման ժամանակ\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Ծանոթութիւն]\n\n## Password\n\npdfjs-password-label = Մուտքագրէք  գաղտնաբառը այս PDF նիշքը բացելու համար\npdfjs-password-invalid = Գաղտնաբառը սխալ է: Կրկին փորձէք:\npdfjs-password-ok-button = Լաւ\npdfjs-password-cancel-button = Չեղարկել\npdfjs-web-fonts-disabled = Վեբ-տառատեսակները անջատուած են. հնարաւոր չէ աւգտագործել ներկառուցուած PDF տառատեսակները։\n"
  },
  {
    "path": "viewer/locale/ia/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina previe\npdfjs-previous-button-label = Previe\npdfjs-next-button =\n    .title = Pagina sequente\npdfjs-next-button-label = Sequente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Distantiar\npdfjs-zoom-out-button-label = Distantiar\npdfjs-zoom-in-button =\n    .title = Approximar\npdfjs-zoom-in-button-label = Approximar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Excambiar a modo presentation\npdfjs-presentation-mode-button-label = Modo presentation\npdfjs-open-file-button =\n    .title = Aperir le file\npdfjs-open-file-button-label = Aperir\npdfjs-print-button =\n    .title = Imprimer\npdfjs-print-button-label = Imprimer\npdfjs-save-button =\n    .title = Salvar\npdfjs-save-button-label = Salvar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Discargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Discargar\npdfjs-bookmark-button =\n    .title = Pagina actual (vide le URL del pagina actual)\npdfjs-bookmark-button-label = Pagina actual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Instrumentos\npdfjs-tools-button-label = Instrumentos\npdfjs-first-page-button =\n    .title = Ir al prime pagina\npdfjs-first-page-button-label = Ir al prime pagina\npdfjs-last-page-button =\n    .title = Ir al ultime pagina\npdfjs-last-page-button-label = Ir al ultime pagina\npdfjs-page-rotate-cw-button =\n    .title = Rotar in senso horari\npdfjs-page-rotate-cw-button-label = Rotar in senso horari\npdfjs-page-rotate-ccw-button =\n    .title = Rotar in senso antihorari\npdfjs-page-rotate-ccw-button-label = Rotar in senso antihorari\npdfjs-cursor-text-select-tool-button =\n    .title = Activar le instrumento de selection de texto\npdfjs-cursor-text-select-tool-button-label = Instrumento de selection de texto\npdfjs-cursor-hand-tool-button =\n    .title = Activar le instrumento mano\npdfjs-cursor-hand-tool-button-label = Instrumento mano\npdfjs-scroll-page-button =\n    .title = Usar rolamento de pagina\npdfjs-scroll-page-button-label = Rolamento de pagina\npdfjs-scroll-vertical-button =\n    .title = Usar rolamento vertical\npdfjs-scroll-vertical-button-label = Rolamento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar rolamento horizontal\npdfjs-scroll-horizontal-button-label = Rolamento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar rolamento incapsulate\npdfjs-scroll-wrapped-button-label = Rolamento incapsulate\npdfjs-spread-none-button =\n    .title = Non junger paginas dual\npdfjs-spread-none-button-label = Sin paginas dual\npdfjs-spread-odd-button =\n    .title = Junger paginas dual a partir de paginas con numeros impar\npdfjs-spread-odd-button-label = Paginas dual impar\npdfjs-spread-even-button =\n    .title = Junger paginas dual a partir de paginas con numeros par\npdfjs-spread-even-button-label = Paginas dual par\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Proprietates del documento…\npdfjs-document-properties-button-label = Proprietates del documento…\npdfjs-document-properties-file-name = Nomine del file:\npdfjs-document-properties-file-size = Dimension de file:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titulo:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Subjecto:\npdfjs-document-properties-keywords = Parolas clave:\npdfjs-document-properties-creation-date = Data de creation:\npdfjs-document-properties-modification-date = Data de modification:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = Productor PDF:\npdfjs-document-properties-version = Version PDF:\npdfjs-document-properties-page-count = Numero de paginas:\npdfjs-document-properties-page-size = Dimension del pagina:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = horizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Littera\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web rapide:\npdfjs-document-properties-linearized-yes = Si\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Clauder\n\n## Print\n\npdfjs-print-progress-message = Preparation del documento pro le impression…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancellar\npdfjs-printing-not-supported = Attention : le impression non es totalmente supportate per ce navigator.\npdfjs-printing-not-ready = Attention: le file PDF non es integremente cargate pro lo poter imprimer.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Monstrar/celar le barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Monstrar/celar le barra lateral (le documento contine structura/attachamentos/stratos)\npdfjs-toggle-sidebar-button-label = Monstrar/celar le barra lateral\npdfjs-document-outline-button =\n    .title = Monstrar le schema del documento (clic duple pro expander/contraher tote le elementos)\npdfjs-document-outline-button-label = Schema del documento\npdfjs-attachments-button =\n    .title = Monstrar le annexos\npdfjs-attachments-button-label = Annexos\npdfjs-layers-button =\n    .title = Monstrar stratos (clicca duple pro remontar tote le stratos al stato predefinite)\npdfjs-layers-button-label = Stratos\npdfjs-thumbs-button =\n    .title = Monstrar le vignettes\npdfjs-thumbs-button-label = Vignettes\npdfjs-current-outline-item-button =\n    .title = Trovar le elemento de structura actual\npdfjs-current-outline-item-button-label = Elemento de structura actual\npdfjs-findbar-button =\n    .title = Cercar in le documento\npdfjs-findbar-button-label = Cercar\npdfjs-additional-layers = Altere stratos\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Vignette del pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Cercar\n    .placeholder = Cercar in le documento…\npdfjs-find-previous-button =\n    .title = Trovar le previe occurrentia del phrase\npdfjs-find-previous-button-label = Previe\npdfjs-find-next-button =\n    .title = Trovar le successive occurrentia del phrase\npdfjs-find-next-button-label = Sequente\npdfjs-find-highlight-checkbox = Evidentiar toto\npdfjs-find-match-case-checkbox-label = Distinguer majusculas/minusculas\npdfjs-find-match-diacritics-checkbox-label = Differentiar diacriticos\npdfjs-find-entire-word-checkbox-label = Parolas integre\npdfjs-find-reached-top = Initio del documento attingite, continuation ab fin\npdfjs-find-reached-bottom = Fin del documento attingite, continuation ab initio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } correspondentia\n       *[other] { $current } de { $total } correspondentias\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Plus de { $limit } correspondentia\n       *[other] Plus de { $limit } correspondentias\n    }\npdfjs-find-not-found = Phrase non trovate\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Plen largor del pagina\npdfjs-page-scale-fit = Pagina integre\npdfjs-page-scale-auto = Zoom automatic\npdfjs-page-scale-actual = Dimension real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Un error occurreva durante que on cargava le file PDF.\npdfjs-invalid-file-error = File PDF corrumpite o non valide.\npdfjs-missing-file-error = File PDF mancante.\npdfjs-unexpected-response-error = Responsa del servitor inexpectate.\npdfjs-rendering-error = Un error occurreva durante que on processava le pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Insere le contrasigno pro aperir iste file PDF.\npdfjs-password-invalid = Contrasigno invalide. Per favor retenta.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancellar\npdfjs-web-fonts-disabled = Le typos de litteras web es disactivate: impossibile usar le typos de litteras PDF incorporate.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambiar color de texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Designar\npdfjs-editor-color-picker-ink-input =\n    .title = Cambiar color de designo\npdfjs-editor-ink-button-label = Designar\npdfjs-editor-stamp-button =\n    .title = Adder o rediger imagines\npdfjs-editor-stamp-button-label = Adder o rediger imagines\npdfjs-editor-highlight-button =\n    .title = Evidentia\npdfjs-editor-highlight-button-label = Evidentia\npdfjs-highlight-floating-button1 =\n    .title = Evidentiar\n    .aria-label = Evidentiar\npdfjs-highlight-floating-button-label = Evidentiar\npdfjs-comment-floating-button =\n    .title = Commento\n    .aria-label = Commento\npdfjs-comment-floating-button-label = Commento\npdfjs-editor-comment-button =\n    .title = Commento\n    .aria-label = Commento\npdfjs-editor-comment-button-label = Commento\npdfjs-editor-signature-button =\n    .title = Adder signatura\npdfjs-editor-signature-button-label = Adder signatura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de evidentiation\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de designos\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de signaturas: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imagines\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remover le designo\npdfjs-editor-remove-freetext-button =\n    .title = Remover texto\npdfjs-editor-remove-stamp-button =\n    .title = Remover imagine\npdfjs-editor-remove-highlight-button =\n    .title = Remover evidentia\npdfjs-editor-remove-signature-button =\n    .title = Remover signatura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Dimension\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Spissor\npdfjs-editor-ink-opacity-input = Opacitate\npdfjs-editor-stamp-add-image-button =\n    .title = Adder imagine\npdfjs-editor-stamp-add-image-button-label = Adder imagine\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Spissor\npdfjs-editor-free-highlight-thickness-title =\n    .title = Cambiar spissor evidentiante elementos differente de texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controlos de signatura e signaturas salvate\npdfjs-editor-signature-add-signature-button =\n    .title = Adder nove signatura\npdfjs-editor-signature-add-signature-button-label = Adder nove signatura\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Signatura salvate: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Initiar a inserer…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Commento\n       *[other] Commentos\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Clauder le barra lateral\n    .aria-label = Clauder le barra lateral\npdfjs-editor-comments-sidebar-close-button-label = Clauder le barra lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vide tu alco notabile? Evidentia lo e lassa un commentario.\npdfjs-editor-comments-sidebar-no-comments-link = Pro saper plus\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternative\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Rediger texto alternative\npdfjs-editor-alt-text-dialog-label = Elige un option\npdfjs-editor-alt-text-dialog-description = Le texto alternative (alt text) adjuta quando le personas non pote vider le imagine o quando illo non carga.\npdfjs-editor-alt-text-add-description-label = Adder un description\npdfjs-editor-alt-text-add-description-description = Mira a 1-2 phrases que describe le subjecto, parametro, o actiones.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorative\npdfjs-editor-alt-text-mark-decorative-description = Isto es usate pro imagines ornamental, como bordaturas o filigranas.\npdfjs-editor-alt-text-cancel-button = Cancellar\npdfjs-editor-alt-text-save-button = Salvar\npdfjs-editor-alt-text-decorative-tooltip = Marcate como decorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Per exemplo, “Un juvene sede a un tabula pro mangiar un repasto”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternative\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Angulo superior sinistre — redimensionar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Medio superior — redimensionar\npdfjs-editor-resizer-top-right =\n    .aria-label = Angulo superior dextre — redimensionar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Medio dextre — redimensionar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Angulo inferior dextre — redimensionar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Medio inferior — redimensionar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Angulo inferior sinistre — redimensionar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Medio sinistre — redimensionar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color pro evidentiar\npdfjs-editor-colorpicker-button =\n    .title = Cambiar color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Electiones del color\npdfjs-editor-colorpicker-yellow =\n    .title = Jalne\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Blau\npdfjs-editor-colorpicker-pink =\n    .title = Rosate\npdfjs-editor-colorpicker-red =\n    .title = Rubie\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Monstrar toto\npdfjs-editor-highlight-show-all-button =\n    .title = Monstrar toto\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Rediger texto alternative (description del imagine)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Adder texto alternative (description del imagine)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Scribe tu description ci…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve description pro personas qui non pote vider le imagine o quando le imagine non se carga.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Iste texto alternative ha essite create automaticamente e pote esser inexacte.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Pro saper plus\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear texto alternative automaticamente\npdfjs-editor-new-alt-text-not-now-button = Non ora\npdfjs-editor-new-alt-text-error-title = Impossibile crear texto alternative automaticamente\npdfjs-editor-new-alt-text-error-description = Scribe tu proprie texto alternative o retenta plus tarde.\npdfjs-editor-new-alt-text-error-close-button = Clauder\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Discargante modello de intelligentia artificial  del texto alternative ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Discargante modello de intelligentia artificial  del texto alternative ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texto alternative addite\npdfjs-editor-new-alt-text-added-button-label = Texto alternative addite\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Texto alternative mancante\npdfjs-editor-new-alt-text-missing-button-label = Texto alternative mancante\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revider texto alternative\npdfjs-editor-new-alt-text-to-review-button-label = Revider texto alternative\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automaticamente create: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Parametros del texto alternative del imagine\npdfjs-image-alt-text-settings-button-label = Parametros del texto alternative del imagine\npdfjs-editor-alt-text-settings-dialog-label = Parametros del texto alternative del imagine\npdfjs-editor-alt-text-settings-automatic-title = Texto alternative automatic\npdfjs-editor-alt-text-settings-create-model-button-label = Crear texto alternative automaticamente\npdfjs-editor-alt-text-settings-create-model-description = Suggere descriptiones pro adjutar le personas qui non pote vider le imagine o quando le imagine non carga.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modello de intelligentia artificial del texto alternative ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Flue localmente sur tu apparato assi tu datos remane private. Necessari pro texto alternative automatic.\npdfjs-editor-alt-text-settings-delete-model-button = Deler\npdfjs-editor-alt-text-settings-download-model-button = Discargar\npdfjs-editor-alt-text-settings-downloading-model-button = Discargante…\npdfjs-editor-alt-text-settings-editor-title = Rediger texto alternative\npdfjs-editor-alt-text-settings-show-dialog-button-label = Monstrar le redactor de texto alternative a pena on adde un imagine\npdfjs-editor-alt-text-settings-show-dialog-description = Te adjuta a verifica que tote tu imagines ha un texto alternative.\npdfjs-editor-alt-text-settings-close-button = Clauder\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Evidentia addite\npdfjs-editor-freetext-added-alert = Texto addite\npdfjs-editor-ink-added-alert = Designo addite\npdfjs-editor-stamp-added-alert = Imagine addite\npdfjs-editor-signature-added-alert = Firma addite\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Evidentiation removite\npdfjs-editor-undo-bar-message-freetext = Texto removite\npdfjs-editor-undo-bar-message-ink = Designo removite\npdfjs-editor-undo-bar-message-stamp = Imagine removite\npdfjs-editor-undo-bar-message-signature = Signatura removite\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotation removite\n       *[other] { $count } annotationes removite\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Disfacer\npdfjs-editor-undo-bar-undo-button-label = Disfacer\npdfjs-editor-undo-bar-close-button =\n    .title = Clauder\npdfjs-editor-undo-bar-close-button-label = Clauder\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Iste formulario permitte al usator crear un firma a adder a un documento PDF. Le usator pote modificar le nomine (le qual tamben servi de texto alternative) e, si desirate, salvar le firma pro uso repetite.\npdfjs-editor-add-signature-dialog-title = Adder un signatura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typar\n    .title = Typar\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Designar\n    .title = Designar\npdfjs-editor-add-signature-image-button = Imagine\n    .title = Imagine\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Insere tu firma\n    .placeholder = Insere tu firma\npdfjs-editor-add-signature-draw-placeholder = Designa tu firma\npdfjs-editor-add-signature-draw-thickness-range-label = Spissor\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Spissor de designo: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Trahe un file hic pro incargar lo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] O elige files de imagine\n       *[other] O folietta files de imagine\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Description (texto alternative)\npdfjs-editor-add-signature-description-input =\n    .title = Description (texto alternative)\npdfjs-editor-add-signature-description-default-when-drawing = Signatura\npdfjs-editor-add-signature-clear-button-label = Rader signatura\npdfjs-editor-add-signature-clear-button =\n    .title = Rader signatura\npdfjs-editor-add-signature-save-checkbox = Salvar signatura\npdfjs-editor-add-signature-save-warning-message = Tu ha attingite le limite de 5 firmas salvate. Remove un pro salvar un altere.\npdfjs-editor-add-signature-image-upload-error-title = Non poteva incargar le imagine\npdfjs-editor-add-signature-image-upload-error-description = Verifica tu connexion al rete o tenta un altere imagine.\npdfjs-editor-add-signature-image-no-data-error-title = Impossibile converter iste imagine in un firma\npdfjs-editor-add-signature-image-no-data-error-description = Essaya cargar un imagine differente.\npdfjs-editor-add-signature-error-close-button = Clauder\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancellar\npdfjs-editor-add-signature-add-button = Adder\npdfjs-editor-edit-signature-update-button = Actualisar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Rediger commento\npdfjs-editor-edit-comment-popup-button =\n    .title = Rediger commento\npdfjs-editor-delete-comment-popup-button-label = Remover commento\npdfjs-editor-delete-comment-popup-button =\n    .title = Remover commento\npdfjs-show-comment-button =\n    .title = Monstrar commento\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Actiones\npdfjs-editor-edit-comment-actions-button =\n    .title = Actiones\npdfjs-editor-edit-comment-close-button-label = Clauder\npdfjs-editor-edit-comment-close-button =\n    .title = Clauder\npdfjs-editor-edit-comment-actions-edit-button-label = Rediger\npdfjs-editor-edit-comment-actions-delete-button-label = Deler\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Insere tu commento\npdfjs-editor-edit-comment-manager-cancel-button = Cancellar\npdfjs-editor-edit-comment-manager-save-button = Salvar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Rediger commento\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualisar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Adder commento\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Adder\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Comenciar a scriber…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancellar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Rediger commento\npdfjs-editor-add-comment-button =\n    .title = Adder commento\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remover signatura salvate\npdfjs-editor-delete-signature-button-label1 = Remover signatura salvate\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Rediger description\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Rediger description\n"
  },
  {
    "path": "viewer/locale/id/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Laman Sebelumnya\npdfjs-previous-button-label = Sebelumnya\npdfjs-next-button =\n    .title = Laman Selanjutnya\npdfjs-next-button-label = Selanjutnya\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Halaman\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = dari { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } dari { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Perkecil\npdfjs-zoom-out-button-label = Perkecil\npdfjs-zoom-in-button =\n    .title = Perbesar\npdfjs-zoom-in-button-label = Perbesar\npdfjs-zoom-select =\n    .title = Perbesaran\npdfjs-presentation-mode-button =\n    .title = Ganti ke Mode Presentasi\npdfjs-presentation-mode-button-label = Mode Presentasi\npdfjs-open-file-button =\n    .title = Buka Berkas\npdfjs-open-file-button-label = Buka\npdfjs-print-button =\n    .title = Cetak\npdfjs-print-button-label = Cetak\npdfjs-save-button =\n    .title = Simpan\npdfjs-save-button-label = Simpan\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Unduh\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Unduh\npdfjs-bookmark-button =\n    .title = Laman Saat Ini (Lihat URL dari Laman Sekarang)\npdfjs-bookmark-button-label = Laman Saat Ini\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Alat\npdfjs-tools-button-label = Alat\npdfjs-first-page-button =\n    .title = Buka Halaman Pertama\npdfjs-first-page-button-label = Buka Halaman Pertama\npdfjs-last-page-button =\n    .title = Buka Halaman Terakhir\npdfjs-last-page-button-label = Buka Halaman Terakhir\npdfjs-page-rotate-cw-button =\n    .title = Putar Searah Jarum Jam\npdfjs-page-rotate-cw-button-label = Putar Searah Jarum Jam\npdfjs-page-rotate-ccw-button =\n    .title = Putar Berlawanan Arah Jarum Jam\npdfjs-page-rotate-ccw-button-label = Putar Berlawanan Arah Jarum Jam\npdfjs-cursor-text-select-tool-button =\n    .title = Aktifkan Alat Seleksi Teks\npdfjs-cursor-text-select-tool-button-label = Alat Seleksi Teks\npdfjs-cursor-hand-tool-button =\n    .title = Aktifkan Alat Tangan\npdfjs-cursor-hand-tool-button-label = Alat Tangan\npdfjs-scroll-page-button =\n    .title = Gunakan Pengguliran Laman\npdfjs-scroll-page-button-label = Pengguliran Laman\npdfjs-scroll-vertical-button =\n    .title = Gunakan Penggeseran Vertikal\npdfjs-scroll-vertical-button-label = Penggeseran Vertikal\npdfjs-scroll-horizontal-button =\n    .title = Gunakan Penggeseran Horizontal\npdfjs-scroll-horizontal-button-label = Penggeseran Horizontal\npdfjs-scroll-wrapped-button =\n    .title = Gunakan Penggeseran Terapit\npdfjs-scroll-wrapped-button-label = Penggeseran Terapit\npdfjs-spread-none-button =\n    .title = Jangan gabungkan lembar halaman\npdfjs-spread-none-button-label = Tidak Ada Lembaran\npdfjs-spread-odd-button =\n    .title = Gabungkan lembar lamanan mulai dengan halaman ganjil\npdfjs-spread-odd-button-label = Lembaran Ganjil\npdfjs-spread-even-button =\n    .title = Gabungkan lembar halaman dimulai dengan halaman genap\npdfjs-spread-even-button-label = Lembaran Genap\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Properti Dokumen…\npdfjs-document-properties-button-label = Properti Dokumen…\npdfjs-document-properties-file-name = Nama berkas:\npdfjs-document-properties-file-size = Ukuran berkas:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Judul:\npdfjs-document-properties-author = Penyusun:\npdfjs-document-properties-subject = Subjek:\npdfjs-document-properties-keywords = Kata Kunci:\npdfjs-document-properties-creation-date = Tanggal Dibuat:\npdfjs-document-properties-modification-date = Tanggal Dimodifikasi:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Pembuat:\npdfjs-document-properties-producer = Pemroduksi PDF:\npdfjs-document-properties-version = Versi PDF:\npdfjs-document-properties-page-count = Jumlah Halaman:\npdfjs-document-properties-page-size = Ukuran Laman:\npdfjs-document-properties-page-size-unit-inches = inci\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = tegak\npdfjs-document-properties-page-size-orientation-landscape = mendatar\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Tampilan Web Kilat:\npdfjs-document-properties-linearized-yes = Ya\npdfjs-document-properties-linearized-no = Tidak\npdfjs-document-properties-close-button = Tutup\n\n## Print\n\npdfjs-print-progress-message = Menyiapkan dokumen untuk pencetakan…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Batalkan\npdfjs-printing-not-supported = Peringatan: Pencetakan tidak didukung secara lengkap pada peramban ini.\npdfjs-printing-not-ready = Peringatan: Berkas PDF masih belum dimuat secara lengkap untuk dapat dicetak.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Aktif/Nonaktifkan Bilah Samping\npdfjs-toggle-sidebar-notification-button =\n    .title = Aktif/Nonaktifkan Bilah Samping (dokumen berisi kerangka/lampiran/lapisan)\npdfjs-toggle-sidebar-button-label = Aktif/Nonaktifkan Bilah Samping\npdfjs-document-outline-button =\n    .title = Tampilkan Kerangka Dokumen (klik ganda untuk membentangkan/menciutkan semua item)\npdfjs-document-outline-button-label = Kerangka Dokumen\npdfjs-attachments-button =\n    .title = Tampilkan Lampiran\npdfjs-attachments-button-label = Lampiran\npdfjs-layers-button =\n    .title = Tampilkan Lapisan (klik ganda untuk mengatur ulang semua lapisan ke keadaan baku)\npdfjs-layers-button-label = Lapisan\npdfjs-thumbs-button =\n    .title = Tampilkan Miniatur\npdfjs-thumbs-button-label = Miniatur\npdfjs-current-outline-item-button =\n    .title = Cari Butir Ikhtisar Saat Ini\npdfjs-current-outline-item-button-label = Butir Ikhtisar Saat Ini\npdfjs-findbar-button =\n    .title = Temukan di Dokumen\npdfjs-findbar-button-label = Temukan\npdfjs-additional-layers = Lapisan Tambahan\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Laman { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatur Laman { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Temukan\n    .placeholder = Temukan di dokumen…\npdfjs-find-previous-button =\n    .title = Temukan kata sebelumnya\npdfjs-find-previous-button-label = Sebelumnya\npdfjs-find-next-button =\n    .title = Temukan lebih lanjut\npdfjs-find-next-button-label = Selanjutnya\npdfjs-find-highlight-checkbox = Sorot semuanya\npdfjs-find-match-case-checkbox-label = Cocokkan BESAR/kecil\npdfjs-find-match-diacritics-checkbox-label = Pencocokan Diakritik\npdfjs-find-entire-word-checkbox-label = Seluruh teks\npdfjs-find-reached-top = Sampai di awal dokumen, dilanjutkan dari bawah\npdfjs-find-reached-bottom = Sampai di akhir dokumen, dilanjutkan dari atas\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = { $current } dari { $total } yang cocok\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = Lebih dari { $limit } kecocokan\npdfjs-find-not-found = Frasa tidak ditemukan\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lebar Laman\npdfjs-page-scale-fit = Muat Laman\npdfjs-page-scale-auto = Perbesaran Otomatis\npdfjs-page-scale-actual = Ukuran Asli\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Halaman { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Galat terjadi saat memuat PDF.\npdfjs-invalid-file-error = Berkas PDF tidak valid atau rusak.\npdfjs-missing-file-error = Berkas PDF tidak ada.\npdfjs-unexpected-response-error = Balasan server yang tidak diharapkan.\npdfjs-rendering-error = Galat terjadi saat merender laman.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotasi { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Masukkan sandi untuk membuka berkas PDF ini.\npdfjs-password-invalid = Sandi tidak valid. Silakan coba lagi.\npdfjs-password-ok-button = Oke\npdfjs-password-cancel-button = Batal\npdfjs-web-fonts-disabled = Font web dinonaktifkan: tidak dapat menggunakan font PDF yang tersemat.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Teks\npdfjs-editor-color-picker-free-text-input =\n    .title = Ubah warna teks\npdfjs-editor-free-text-button-label = Teks\npdfjs-editor-ink-button =\n    .title = Gambar\npdfjs-editor-color-picker-ink-input =\n    .title = Ubah warna gambar\npdfjs-editor-ink-button-label = Gambar\npdfjs-editor-stamp-button =\n    .title = Tambah atau edit gambar\npdfjs-editor-stamp-button-label = Tambah atau edit gambar\npdfjs-editor-highlight-button =\n    .title = Sorot\npdfjs-editor-highlight-button-label = Sorot\npdfjs-highlight-floating-button1 =\n    .title = Sorot\n    .aria-label = Sorot\npdfjs-highlight-floating-button-label = Sorot\npdfjs-comment-floating-button =\n    .title = Komentar\n    .aria-label = Komentar\npdfjs-comment-floating-button-label = Komentar\npdfjs-editor-signature-button =\n    .title = Tambahkan tanda tangan\npdfjs-editor-signature-button-label = Tambahkan tanda tangan\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor sorot\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor gambar\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor tanda tangan: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor gambar\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Hapus gambar\npdfjs-editor-remove-freetext-button =\n    .title = Hapus teks\npdfjs-editor-remove-stamp-button =\n    .title = Hapus gambar\npdfjs-editor-remove-highlight-button =\n    .title = Hapus sorotan\npdfjs-editor-remove-signature-button =\n    .title = Hapus tanda tangan\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Warna\npdfjs-editor-free-text-size-input = Ukuran\npdfjs-editor-ink-color-input = Warna\npdfjs-editor-ink-thickness-input = Ketebalan\npdfjs-editor-ink-opacity-input = Opasitas\npdfjs-editor-stamp-add-image-button =\n    .title = Tambahkan gambar\npdfjs-editor-stamp-add-image-button-label = Tambahkan gambar\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Ketebalan\npdfjs-editor-free-highlight-thickness-title =\n    .title = Ubah ketebalan saat menyorot item selain teks\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrol tanda tangan dan tanda tangan tersimpan\npdfjs-editor-signature-add-signature-button =\n    .title = Tambahkan tanda tangan baru\npdfjs-editor-signature-add-signature-button-label = Tambahkan tanda tangan baru\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Tanda tangan tersimpan: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor Teks\n    .default-content = Mulai mengetik…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Teks alternatif\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Edit teks alternatif\npdfjs-editor-alt-text-dialog-label = Pilih opsi\npdfjs-editor-alt-text-dialog-description = Teks alternatif membantu ketika orang tidak dapat melihat gambar atau ketika tidak termuat.\npdfjs-editor-alt-text-add-description-label = Tambahkan deskripsi\npdfjs-editor-alt-text-add-description-description = Upayakan 1-2 kalimat yang menggambarkan subjek, latar, atau tindakan.\npdfjs-editor-alt-text-mark-decorative-label = Tandai sebagai dekoratif\npdfjs-editor-alt-text-mark-decorative-description = Ini digunakan untuk gambar hias, seperti batas atau tanda air.\npdfjs-editor-alt-text-cancel-button = Batal\npdfjs-editor-alt-text-save-button = Simpan\npdfjs-editor-alt-text-decorative-tooltip = Ditandai sebagai dekoratif\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Misalnya, “Seorang pemuda duduk di meja untuk makan”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Teks alternatif\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Pojok kiri atas — ubah ukuran\npdfjs-editor-resizer-top-middle =\n    .aria-label = Tengah atas — ubah ukuran\npdfjs-editor-resizer-top-right =\n    .aria-label = Pojok kanan atas — ubah ukuran\npdfjs-editor-resizer-middle-right =\n    .aria-label = Kanan tengah — ubah ukuran\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Pojok kanan bawah — ubah ukuran\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Tengah bawah — ubah ukuran\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Pojok kiri bawah — ubah ukuran\npdfjs-editor-resizer-middle-left =\n    .aria-label = Kiri tengah — ubah ukuran\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Warna sorot\npdfjs-editor-colorpicker-button =\n    .title = Ubah warna\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Pilihan warna\npdfjs-editor-colorpicker-yellow =\n    .title = Kuning\npdfjs-editor-colorpicker-green =\n    .title = Hijau\npdfjs-editor-colorpicker-blue =\n    .title = Biru\npdfjs-editor-colorpicker-pink =\n    .title = Merah Jambu\npdfjs-editor-colorpicker-red =\n    .title = Merah\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Tampilkan semua\npdfjs-editor-highlight-show-all-button =\n    .title = Tampilkan semua\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Edit teks alternatif (deskripsi gambar)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Tambahkan teks alternatif (deskripsi gambar)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Tulis deskripsi Anda di sini…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Deskripsi singkat untuk orang yang tidak dapat melihat gambar atau saat gambar tidak termuat.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Teks alternatif ini dibuat secara otomatis dan mungkin tidak akurat.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Pelajari lebih lanjut\npdfjs-editor-new-alt-text-create-automatically-button-label = Buat teks alternatif secara otomatis\npdfjs-editor-new-alt-text-not-now-button = Jangan sekarang\npdfjs-editor-new-alt-text-error-title = Tidak bisa membuat teks alternatif secara otomatis\npdfjs-editor-new-alt-text-error-description = Silakan tulis teks alternatif Anda sendiri atau coba lagi nanti.\npdfjs-editor-new-alt-text-error-close-button = Tutup\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Mengunduh model AI teks alternatif ({ $downloadedSize } dari { $totalSize } MB)\n    .aria-valuetext = Mengunduh model AI teks alternatif ({ $downloadedSize } dari { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Teks alternatif ditambahkan\npdfjs-editor-new-alt-text-added-button-label = Teks alternatif ditambahkan\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Teks alternatif hilang\npdfjs-editor-new-alt-text-missing-button-label = Teks alternatif hilang\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Tinjau teks alternatif\npdfjs-editor-new-alt-text-to-review-button-label = Tinjau teks alternatif\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Dibuat secara otomatis: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Pengaturan teks alternatif gambar\npdfjs-image-alt-text-settings-button-label = Pengaturan teks alternatif gambar\npdfjs-editor-alt-text-settings-dialog-label = Pengaturan teks alternatif gambar\npdfjs-editor-alt-text-settings-automatic-title = Teks alternatif otomatis\npdfjs-editor-alt-text-settings-create-model-button-label = Buat teks alternatif secara otomatis\npdfjs-editor-alt-text-settings-create-model-description = Menyarankan deskripsi untuk membantu orang yang tidak dapat melihat gambar atau ketika gambar tidak termuat.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model AI teks alternatif ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Berjalan secara lokal di perangkat Anda sehingga data Anda tetap pribadi. Diperlukan untuk teks alternatif otomatis.\npdfjs-editor-alt-text-settings-delete-model-button = Hapus\npdfjs-editor-alt-text-settings-download-model-button = Unduh\npdfjs-editor-alt-text-settings-downloading-model-button = Mengunduh…\npdfjs-editor-alt-text-settings-editor-title = Editor teks alternatif\npdfjs-editor-alt-text-settings-show-dialog-button-label = Tampilkan editor teks alternatif segera saat menambahkan gambar\npdfjs-editor-alt-text-settings-show-dialog-description = Membantu Anda memastikan semua gambar Anda memiliki teks alternatif.\npdfjs-editor-alt-text-settings-close-button = Tutup\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Sorotan ditambahkan\npdfjs-editor-freetext-added-alert = Teks ditambahkan\npdfjs-editor-ink-added-alert = Gambar ditambahkan\npdfjs-editor-stamp-added-alert = Citra ditambahkan\npdfjs-editor-signature-added-alert = Tanda tangan ditambahkan\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Sorotan dihapus\npdfjs-editor-undo-bar-message-freetext = Teks dihapus\npdfjs-editor-undo-bar-message-ink = Gambar dihapus\npdfjs-editor-undo-bar-message-stamp = Gambar dihapus\npdfjs-editor-undo-bar-message-signature = Tanda tangan dihapus\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = { $count } anotasi dihapus\npdfjs-editor-undo-bar-undo-button =\n    .title = Urungkan\npdfjs-editor-undo-bar-undo-button-label = Urungkan\npdfjs-editor-undo-bar-close-button =\n    .title = Tutup\npdfjs-editor-undo-bar-close-button-label = Tutup\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Modal ini memungkinkan pengguna untuk membuat tanda tangan yang dapat ditambahkan ke dokumen PDF. Pengguna dapat mengedit nama (yang juga berfungsi sebagai teks alternatif), dan jika diinginkan, menyimpan tanda tangan untuk digunakan kembali.\npdfjs-editor-add-signature-dialog-title = Tambahkan tanda tangan\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tipe\n    .title = Tipe\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Gambarkan\n    .title = Gambarkan\npdfjs-editor-add-signature-image-button = Gambar\n    .title = Gambar\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Ketik tanda tangan Anda\n    .placeholder = Ketik tanda tangan Anda\npdfjs-editor-add-signature-draw-placeholder = Buat tanda tangan Anda\npdfjs-editor-add-signature-draw-thickness-range-label = Ketebalan\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Ketebalan gambar: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Seret berkas ke sini untuk mengunggah\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Atau pilih berkas gambar\n       *[other] Atau cari berkas gambar\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Deskripsi (teks alternatif)\npdfjs-editor-add-signature-description-input =\n    .title = Deskripsi (teks alternatif)\npdfjs-editor-add-signature-description-default-when-drawing = Tanda tangan\npdfjs-editor-add-signature-clear-button-label = Hapus tanda tangan\npdfjs-editor-add-signature-clear-button =\n    .title = Hapus tanda tangan\npdfjs-editor-add-signature-save-checkbox = Simpan tanda tangan\npdfjs-editor-add-signature-save-warning-message = Anda telah mencapai batas 5 tanda tangan tersimpan. Hapus untuk menyimpan lebih banyak.\npdfjs-editor-add-signature-image-upload-error-title = Tidak dapat mengunggah gambar\npdfjs-editor-add-signature-image-upload-error-description = Periksa sambungan jaringan Anda atau coba gambar lain.\npdfjs-editor-add-signature-image-no-data-error-title = Tak bisa mengonversi citra ini menjadi tanda tangan\npdfjs-editor-add-signature-image-no-data-error-description = Coba unggah gambar lain.\npdfjs-editor-add-signature-error-close-button = Tutup\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Batal\npdfjs-editor-add-signature-add-button = Tambah\npdfjs-editor-edit-signature-update-button = Perbarui\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Aksi\npdfjs-editor-edit-comment-actions-button =\n    .title = Aksi\npdfjs-editor-edit-comment-close-button-label = Tutup\npdfjs-editor-edit-comment-close-button =\n    .title = Tutup\npdfjs-editor-edit-comment-actions-edit-button-label = Sunting\npdfjs-editor-edit-comment-actions-delete-button-label = Hapus\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Masukkan komentar Anda\npdfjs-editor-edit-comment-manager-cancel-button = Batal\npdfjs-editor-edit-comment-manager-save-button = Simpan\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Sunting komentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Hapus tanda tangan tersimpan\npdfjs-editor-delete-signature-button-label1 = Hapus tanda tangan tersimpan\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Edit deskripsi\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Edit deskripsi\n"
  },
  {
    "path": "viewer/locale/is/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Fyrri síða\npdfjs-previous-button-label = Fyrri\npdfjs-next-button =\n    .title = Næsta síða\npdfjs-next-button-label = Næsti\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Síða\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = af { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } af { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Minnka aðdrátt\npdfjs-zoom-out-button-label = Minnka aðdrátt\npdfjs-zoom-in-button =\n    .title = Auka aðdrátt\npdfjs-zoom-in-button-label = Auka aðdrátt\npdfjs-zoom-select =\n    .title = Aðdráttur\npdfjs-presentation-mode-button =\n    .title = Skipta yfir á kynningarham\npdfjs-presentation-mode-button-label = Kynningarhamur\npdfjs-open-file-button =\n    .title = Opna skrá\npdfjs-open-file-button-label = Opna\npdfjs-print-button =\n    .title = Prenta\npdfjs-print-button-label = Prenta\npdfjs-save-button =\n    .title = Vista\npdfjs-save-button-label = Vista\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Sækja\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Sækja\npdfjs-bookmark-button =\n    .title = Núverandi síða (Skoða vefslóð frá núverandi síðu)\npdfjs-bookmark-button-label = Núverandi síða\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Verkfæri\npdfjs-tools-button-label = Verkfæri\npdfjs-first-page-button =\n    .title = Fara á fyrstu síðu\npdfjs-first-page-button-label = Fara á fyrstu síðu\npdfjs-last-page-button =\n    .title = Fara á síðustu síðu\npdfjs-last-page-button-label = Fara á síðustu síðu\npdfjs-page-rotate-cw-button =\n    .title = Snúa réttsælis\npdfjs-page-rotate-cw-button-label = Snúa réttsælis\npdfjs-page-rotate-ccw-button =\n    .title = Snúa rangsælis\npdfjs-page-rotate-ccw-button-label = Snúa rangsælis\npdfjs-cursor-text-select-tool-button =\n    .title = Virkja textavalsáhald\npdfjs-cursor-text-select-tool-button-label = Textavalsáhald\npdfjs-cursor-hand-tool-button =\n    .title = Virkja handarverkfæri\npdfjs-cursor-hand-tool-button-label = Handarverkfæri\npdfjs-scroll-page-button =\n    .title = Nota síðuskrun\npdfjs-scroll-page-button-label = Síðuskrun\npdfjs-scroll-vertical-button =\n    .title = Nota lóðrétt skrun\npdfjs-scroll-vertical-button-label = Lóðrétt skrun\npdfjs-scroll-horizontal-button =\n    .title = Nota lárétt skrun\npdfjs-scroll-horizontal-button-label = Lárétt skrun\npdfjs-scroll-wrapped-button =\n    .title = Nota línuskipt síðuskrun\npdfjs-scroll-wrapped-button-label = Línuskipt síðuskrun\npdfjs-spread-none-button =\n    .title = Ekki taka þátt í dreifingu síðna\npdfjs-spread-none-button-label = Engin dreifing\npdfjs-spread-odd-button =\n    .title = Taka þátt í dreifingu síðna með oddatölum\npdfjs-spread-odd-button-label = Oddatöludreifing\npdfjs-spread-even-button =\n    .title = Taktu þátt í dreifingu síðna með jöfnuntölum\npdfjs-spread-even-button-label = Jafnatöludreifing\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Eiginleikar skjals…\npdfjs-document-properties-button-label = Eiginleikar skjals…\npdfjs-document-properties-file-name = Skráarnafn:\npdfjs-document-properties-file-size = Skrárstærð:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bæti)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bæti)\npdfjs-document-properties-title = Titill:\npdfjs-document-properties-author = Hönnuður:\npdfjs-document-properties-subject = Efni:\npdfjs-document-properties-keywords = Stikkorð:\npdfjs-document-properties-creation-date = Búið til:\npdfjs-document-properties-modification-date = Dags breytingar:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Höfundur:\npdfjs-document-properties-producer = PDF framleiðandi:\npdfjs-document-properties-version = PDF útgáfa:\npdfjs-document-properties-page-count = Blaðsíðufjöldi:\npdfjs-document-properties-page-size = Stærð síðu:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = skammsnið\npdfjs-document-properties-page-size-orientation-landscape = langsnið\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fljótleg vefskoðun:\npdfjs-document-properties-linearized-yes = Já\npdfjs-document-properties-linearized-no = Nei\npdfjs-document-properties-close-button = Loka\n\n## Print\n\npdfjs-print-progress-message = Undirbý skjal fyrir prentun…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Hætta við\npdfjs-printing-not-supported = Aðvörun: Prentun er ekki með fyllilegan stuðning á þessum vafra.\npdfjs-printing-not-ready = Aðvörun: Ekki er búið að hlaða inn allri PDF skránni fyrir prentun.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Víxla hliðarstiku af/á\npdfjs-toggle-sidebar-notification-button =\n    .title = Víxla hliðarstiku af/á (skjal inniheldur yfirlit/viðhengi/lög)\npdfjs-toggle-sidebar-button-label = Víxla hliðarstiku af/á\npdfjs-document-outline-button =\n    .title = Sýna yfirlit skjals (tvísmelltu til að opna/loka öllum hlutum)\npdfjs-document-outline-button-label = Efnisskipan skjals\npdfjs-attachments-button =\n    .title = Sýna viðhengi\npdfjs-attachments-button-label = Viðhengi\npdfjs-layers-button =\n    .title = Birta lög (tvísmelltu til að endurstilla öll lög í sjálfgefna stöðu)\npdfjs-layers-button-label = Lög\npdfjs-thumbs-button =\n    .title = Sýna smámyndir\npdfjs-thumbs-button-label = Smámyndir\npdfjs-current-outline-item-button =\n    .title = Finna núverandi atriði efnisskipunar\npdfjs-current-outline-item-button-label = Núverandi atriði efnisskipunar\npdfjs-findbar-button =\n    .title = Leita í skjali\npdfjs-findbar-button-label = Leita\npdfjs-additional-layers = Viðbótarlög\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Síða { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Smámynd af síðu { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Leita\n    .placeholder = Leita í skjali…\npdfjs-find-previous-button =\n    .title = Leita að fyrra tilfelli þessara orða\npdfjs-find-previous-button-label = Fyrri\npdfjs-find-next-button =\n    .title = Leita að næsta tilfelli þessara orða\npdfjs-find-next-button-label = Næsti\npdfjs-find-highlight-checkbox = Lita allt\npdfjs-find-match-case-checkbox-label = Passa við stafstöðu\npdfjs-find-match-diacritics-checkbox-label = Passa við broddstafi\npdfjs-find-entire-word-checkbox-label = Heil orð\npdfjs-find-reached-top = Náði efst í skjal, held áfram neðst\npdfjs-find-reached-bottom = Náði enda skjals, held áfram efst\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } af { $total } passar við\n       *[other] { $current } af { $total } passa við\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Fleiri en { $limit } passar við\n       *[other] Fleiri en { $limit } passa við\n    }\npdfjs-find-not-found = Fann ekki orðið\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Síðubreidd\npdfjs-page-scale-fit = Passa á síðu\npdfjs-page-scale-auto = Sjálfvirkur aðdráttur\npdfjs-page-scale-actual = Raunstærð\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Síða { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Villa kom upp við að hlaða inn PDF.\npdfjs-invalid-file-error = Ógild eða skemmd PDF skrá.\npdfjs-missing-file-error = Vantar PDF skrá.\npdfjs-unexpected-response-error = Óvænt svar frá netþjóni.\npdfjs-rendering-error = Upp kom villa við að birta síðuna.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Skýring]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Settu inn lykilorð til að opna þessa PDF-skrá.\npdfjs-password-invalid = Ógilt lykilorð. Reyndu aftur.\npdfjs-password-ok-button = Í lagi\npdfjs-password-cancel-button = Hætta við\npdfjs-web-fonts-disabled = Vef leturgerðir eru óvirkar: get ekki notað innbyggðar PDF leturgerðir.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texti\npdfjs-editor-free-text-button-label = Texti\npdfjs-editor-ink-button =\n    .title = Teikna\npdfjs-editor-ink-button-label = Teikna\npdfjs-editor-stamp-button =\n    .title = Bæta við eða breyta myndum\npdfjs-editor-stamp-button-label = Bæta við eða breyta myndum\npdfjs-editor-highlight-button =\n    .title = Áherslulita\npdfjs-editor-highlight-button-label = Áherslulita\npdfjs-highlight-floating-button1 =\n    .title = Áherslulita\n    .aria-label = Áherslulita\npdfjs-highlight-floating-button-label = Áherslulita\npdfjs-editor-signature-button =\n    .title = Bæta við undirritun\npdfjs-editor-signature-button-label = Bæta við undirritun\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Fjarlægja teikningu\npdfjs-editor-remove-freetext-button =\n    .title = Fjarlægja texta\npdfjs-editor-remove-stamp-button =\n    .title = Fjarlægja mynd\npdfjs-editor-remove-highlight-button =\n    .title = Fjarlægja áherslulit\npdfjs-editor-remove-signature-button =\n    .title = Fjarlægja undirskrift\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Litur\npdfjs-editor-free-text-size-input = Stærð\npdfjs-editor-ink-color-input = Litur\npdfjs-editor-ink-thickness-input = Þykkt\npdfjs-editor-ink-opacity-input = Ógegnsæi\npdfjs-editor-stamp-add-image-button =\n    .title = Bæta við mynd\npdfjs-editor-stamp-add-image-button-label = Bæta við mynd\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Þykkt\npdfjs-editor-free-highlight-thickness-title =\n    .title = Breyta þykkt við áherslulitun annarra atriða en texta\npdfjs-editor-signature-add-signature-button =\n    .title = Bæta við nýrri undirritun\npdfjs-editor-signature-add-signature-button-label = Bæta við nýrri undirritun\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Vistuð undirskrift: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Textaritill\n    .default-content = Byrjaðu að skrifa…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alt-varatexti\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Breyta alt-myndatexta\npdfjs-editor-alt-text-dialog-label = Veldu valkost\npdfjs-editor-alt-text-dialog-description = Alt-varatexti (auka-myndatexti) hjálpar þegar fólk getur ekki séð myndina eða þegar hún hleðst ekki inn.\npdfjs-editor-alt-text-add-description-label = Bættu við lýsingu\npdfjs-editor-alt-text-add-description-description = Reyndu að takmarka þetta við 1-2 setningar sem lýsa efninu, umhverfi eða aðgerðum.\npdfjs-editor-alt-text-mark-decorative-label = Merkja sem skraut\npdfjs-editor-alt-text-mark-decorative-description = Þetta er notað fyrir skrautmyndir, eins og borða eða vatnsmerki.\npdfjs-editor-alt-text-cancel-button = Hætta við\npdfjs-editor-alt-text-save-button = Vista\npdfjs-editor-alt-text-decorative-tooltip = Merkt sem skraut\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Til dæmis: „Ungur maður sest við borð til að snæða máltíð“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt-myndatexti\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Efst í vinstra horni - breyta stærð\npdfjs-editor-resizer-top-middle =\n    .aria-label = Efst á miðju - breyta stærð\npdfjs-editor-resizer-top-right =\n    .aria-label = Efst í hægra horni - breyta stærð\npdfjs-editor-resizer-middle-right =\n    .aria-label = Miðja til hægri - breyta stærð\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Neðst í hægra horni - breyta stærð\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Neðst á miðju - breyta stærð\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Neðst í vinstra horni - breyta stærð\npdfjs-editor-resizer-middle-left =\n    .aria-label = Miðja til vinstri - breyta stærð\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Áherslulitur\npdfjs-editor-colorpicker-button =\n    .title = Skipta um lit\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Val lita\npdfjs-editor-colorpicker-yellow =\n    .title = Gult\npdfjs-editor-colorpicker-green =\n    .title = Grænt\npdfjs-editor-colorpicker-blue =\n    .title = Blátt\npdfjs-editor-colorpicker-pink =\n    .title = Bleikt\npdfjs-editor-colorpicker-red =\n    .title = Rautt\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Birta allt\npdfjs-editor-highlight-show-all-button =\n    .title = Birta allt\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Breyta alt-myndatexta (lýsingu á mynd)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Bæta við alt-myndatexta (lýsingu á mynd)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skrifaðu lýsinguna þína hér…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Stutt lýsing fyrir fólk sem getur ekki séð myndina eða þegar myndin hleðst ekki inn.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Þessi alt-myndatexti var búinn til sjálfvirkt og gæti verið ónákvæmur.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Kanna nánar\npdfjs-editor-new-alt-text-create-automatically-button-label = Útbúa alt-myndatexta sjálfvirkt\npdfjs-editor-new-alt-text-not-now-button = Ekki núna\npdfjs-editor-new-alt-text-error-title = Gat ekki búið til alt-myndatexta sjálfkrafa\npdfjs-editor-new-alt-text-error-description = Skrifaðu þinn eiginn alt-myndatexta eða reyndu aftur síðar.\npdfjs-editor-new-alt-text-error-close-button = Loka\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Sækir gervigreindarlíkan með alt-myndatextum ({ $downloadedSize } af { $totalSize } MB)\n    .aria-valuetext = Sækir gervigreindarlíkan með alt-myndatextum ({ $downloadedSize } af { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alt-myndatexta bætt við\npdfjs-editor-new-alt-text-added-button-label = Alt-myndatexta bætt við\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Vantar alt-myndatexta\npdfjs-editor-new-alt-text-missing-button-label = Vantar alt-myndatexta\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Yfirfara alt-myndatexta\npdfjs-editor-new-alt-text-to-review-button-label = Yfirfara myndatexta\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Útbúið sjálfvirkt: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Stillingar fyrir alt-texta myndar\npdfjs-image-alt-text-settings-button-label = Stillingar fyrir alt-texta myndar\npdfjs-editor-alt-text-settings-dialog-label = Stillingar fyrir alt-texta myndar\npdfjs-editor-alt-text-settings-automatic-title = Sjálfvirkur alt-myndatexti\npdfjs-editor-alt-text-settings-create-model-button-label = Útbúa alt-myndatexta sjálfvirkt\npdfjs-editor-alt-text-settings-create-model-description = Stingur upp á lýsingum til að hjálpa fólki sem getur ekki séð myndina eða þegar myndin hleðst ekki inn.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Gervigreindarlíkan alt-myndatexta ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Keyrir staðbundið á tækinu þínu svo gögnin þín haldast undir þinni stjórn. Nauðsynlegt fyrir sjálfvirka alt-myndatexta.\npdfjs-editor-alt-text-settings-delete-model-button = Eyða\npdfjs-editor-alt-text-settings-download-model-button = Sækja\npdfjs-editor-alt-text-settings-downloading-model-button = Sæki…\npdfjs-editor-alt-text-settings-editor-title = Ritill fyrir alt-myndatexta\npdfjs-editor-alt-text-settings-show-dialog-button-label = Sýna alt-myndatextaritil strax þegar mynd er bætt við\npdfjs-editor-alt-text-settings-show-dialog-description = Hjálpar þér að tryggja að allar myndirnar þínar séu með alt-myndatexta.\npdfjs-editor-alt-text-settings-close-button = Loka\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-stamp-added-alert = Mynd bætt við\npdfjs-editor-signature-added-alert = Undirritun bætt við\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Áherslulitun fjarlægð\npdfjs-editor-undo-bar-message-freetext = Texti fjarlægður\npdfjs-editor-undo-bar-message-ink = Teikning fjarlægð\npdfjs-editor-undo-bar-message-stamp = Mynd fjarlægð\npdfjs-editor-undo-bar-message-signature = Undirskrift fjarlægð\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } glósa fjarlægð\n       *[other] { $count } glósur fjarlægðar\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Afturkalla\npdfjs-editor-undo-bar-undo-button-label = Afturkalla\npdfjs-editor-undo-bar-close-button =\n    .title = Loka\npdfjs-editor-undo-bar-close-button-label = Loka\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Þessi gluggi gerir notandanum kleift að búa til undirskrift til að bæta við PDF-skjal. Notandinn getur breytt nafninu (sem einnig þjónar sem alt-texti), og valið að vista undirskriftina til endurtekinnar notkunar.\npdfjs-editor-add-signature-dialog-title = Bæta við undirskrift\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tegund\n    .title = Tegund\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Teikna\n    .title = Teikna\npdfjs-editor-add-signature-image-button = Mynd\n    .title = Mynd\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Skrifaðu inn undirskriftina þína\n    .placeholder = Skrifaðu inn undirskriftina þína\npdfjs-editor-add-signature-draw-placeholder = Teiknaðu undirskriftina þína\npdfjs-editor-add-signature-draw-thickness-range-label = Þykkt\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Sverleiki teikningar: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Dragðu skrá hingað til að senda inn\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eða skoðaðu myndskrár\n       *[other] Eða skoðaðu myndskrár\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Lýsing (alt-hjálpartexti)\npdfjs-editor-add-signature-description-input =\n    .title = Lýsing (alt-hjálpartexti)\npdfjs-editor-add-signature-description-default-when-drawing = Undirskrift\npdfjs-editor-add-signature-clear-button-label = Hreinsa undirskrift\npdfjs-editor-add-signature-clear-button =\n    .title = Hreinsa undirskrift\npdfjs-editor-add-signature-save-checkbox = Vista undirskrift\npdfjs-editor-add-signature-save-warning-message = Þú hefur náð hámarki 5 vistaðra undirskrifta. Fjarlægðu eina til að geta vistað fleiri.\npdfjs-editor-add-signature-image-upload-error-title = Ekki tókst að senda inn mynd\npdfjs-editor-add-signature-image-upload-error-description = Athugaðu nettenginguna þína eða prófaðu aðra mynd.\npdfjs-editor-add-signature-image-no-data-error-title = Get ekki breytt þessari mynd í undirskrift\npdfjs-editor-add-signature-image-no-data-error-description = Reyndu að senda inn aðra mynd.\npdfjs-editor-add-signature-error-close-button = Loka\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Hætta við\npdfjs-editor-add-signature-add-button = Bæta við\npdfjs-editor-edit-signature-update-button = Uppfæra\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Aðgerðir\npdfjs-editor-edit-comment-actions-button =\n    .title = Aðgerðir\npdfjs-editor-edit-comment-close-button-label = Loka\npdfjs-editor-edit-comment-close-button =\n    .title = Loka\npdfjs-editor-edit-comment-actions-edit-button-label = Breyta\npdfjs-editor-edit-comment-actions-delete-button-label = Eyða\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Settu inn athugasemdina þína\npdfjs-editor-edit-comment-manager-cancel-button = Hætta við\npdfjs-editor-edit-comment-manager-save-button = Vista\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Breyta athugasemd\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Fjarlægja vistaða undirskrift\npdfjs-editor-delete-signature-button-label1 = Fjarlægja vistaða undirskrift\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Breyta lýsingu\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Breyta lýsingu\n"
  },
  {
    "path": "viewer/locale/it/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina precedente\npdfjs-previous-button-label = Precedente\npdfjs-next-button =\n    .title = Pagina successiva\npdfjs-next-button-label = Successiva\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = di { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } di { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Riduci zoom\npdfjs-zoom-out-button-label = Riduci zoom\npdfjs-zoom-in-button =\n    .title = Aumenta zoom\npdfjs-zoom-in-button-label = Aumenta zoom\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Passa alla modalità presentazione\npdfjs-presentation-mode-button-label = Modalità presentazione\npdfjs-open-file-button =\n    .title = Apri file\npdfjs-open-file-button-label = Apri\npdfjs-print-button =\n    .title = Stampa\npdfjs-print-button-label = Stampa\npdfjs-save-button =\n    .title = Salva\npdfjs-save-button-label = Salva\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Scarica\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Scarica\npdfjs-bookmark-button =\n    .title = Pagina corrente (mostra URL della pagina corrente)\npdfjs-bookmark-button-label = Pagina corrente\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Strumenti\npdfjs-tools-button-label = Strumenti\npdfjs-first-page-button =\n    .title = Vai alla prima pagina\npdfjs-first-page-button-label = Vai alla prima pagina\npdfjs-last-page-button =\n    .title = Vai all’ultima pagina\npdfjs-last-page-button-label = Vai all’ultima pagina\npdfjs-page-rotate-cw-button =\n    .title = Ruota in senso orario\npdfjs-page-rotate-cw-button-label = Ruota in senso orario\npdfjs-page-rotate-ccw-button =\n    .title = Ruota in senso antiorario\npdfjs-page-rotate-ccw-button-label = Ruota in senso antiorario\npdfjs-cursor-text-select-tool-button =\n    .title = Attiva strumento di selezione testo\npdfjs-cursor-text-select-tool-button-label = Strumento di selezione testo\npdfjs-cursor-hand-tool-button =\n    .title = Attiva strumento mano\npdfjs-cursor-hand-tool-button-label = Strumento mano\npdfjs-scroll-page-button =\n    .title = Utilizza scorrimento pagine\npdfjs-scroll-page-button-label = Scorrimento pagine\npdfjs-scroll-vertical-button =\n    .title = Scorri le pagine in verticale\npdfjs-scroll-vertical-button-label = Scorrimento verticale\npdfjs-scroll-horizontal-button =\n    .title = Scorri le pagine in orizzontale\npdfjs-scroll-horizontal-button-label = Scorrimento orizzontale\npdfjs-scroll-wrapped-button =\n    .title = Scorri le pagine in verticale, disponendole da sinistra a destra e andando a capo automaticamente\npdfjs-scroll-wrapped-button-label = Scorrimento con a capo automatico\npdfjs-spread-none-button =\n    .title = Non raggruppare pagine\npdfjs-spread-none-button-label = Nessun raggruppamento\npdfjs-spread-odd-button =\n    .title = Crea gruppi di pagine che iniziano con numeri di pagina dispari\npdfjs-spread-odd-button-label = Raggruppamento dispari\npdfjs-spread-even-button =\n    .title = Crea gruppi di pagine che iniziano con numeri di pagina pari\npdfjs-spread-even-button-label = Raggruppamento pari\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Proprietà del documento…\npdfjs-document-properties-button-label = Proprietà del documento…\npdfjs-document-properties-file-name = Nome file:\npdfjs-document-properties-file-size = Dimensione file:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Titolo:\npdfjs-document-properties-author = Autore:\npdfjs-document-properties-subject = Oggetto:\npdfjs-document-properties-keywords = Parole chiave:\npdfjs-document-properties-creation-date = Data creazione:\npdfjs-document-properties-modification-date = Data modifica:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Autore originale:\npdfjs-document-properties-producer = Produttore PDF:\npdfjs-document-properties-version = Versione PDF:\npdfjs-document-properties-page-count = Conteggio pagine:\npdfjs-document-properties-page-size = Dimensioni pagina:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = verticale\npdfjs-document-properties-page-size-orientation-landscape = orizzontale\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Lettera\npdfjs-document-properties-page-size-name-legal = Legale\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Visualizzazione web veloce:\npdfjs-document-properties-linearized-yes = Sì\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Chiudi\n\n## Print\n\npdfjs-print-progress-message = Preparazione documento per la stampa…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Annulla\npdfjs-printing-not-supported = Attenzione: la stampa non è completamente supportata da questo browser.\npdfjs-printing-not-ready = Attenzione: il PDF non è ancora stato caricato completamente per la stampa.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Attiva/disattiva barra laterale\npdfjs-toggle-sidebar-notification-button =\n    .title = Attiva/disattiva barra laterale (il documento contiene struttura/allegati/livelli)\npdfjs-toggle-sidebar-button-label = Attiva/disattiva barra laterale\npdfjs-document-outline-button =\n    .title = Visualizza la struttura del documento (doppio clic per visualizzare/comprimere tutti gli elementi)\npdfjs-document-outline-button-label = Struttura documento\npdfjs-attachments-button =\n    .title = Visualizza allegati\npdfjs-attachments-button-label = Allegati\npdfjs-layers-button =\n    .title = Visualizza livelli (doppio clic per ripristinare tutti i livelli allo stato predefinito)\npdfjs-layers-button-label = Livelli\npdfjs-thumbs-button =\n    .title = Mostra le miniature\npdfjs-thumbs-button-label = Miniature\npdfjs-current-outline-item-button =\n    .title = Trova elemento struttura corrente\npdfjs-current-outline-item-button-label = Elemento struttura corrente\npdfjs-findbar-button =\n    .title = Trova nel documento\npdfjs-findbar-button-label = Trova\npdfjs-additional-layers = Livelli aggiuntivi\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura della pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Trova\n    .placeholder = Trova nel documento…\npdfjs-find-previous-button =\n    .title = Trova l’occorrenza precedente del testo da cercare\npdfjs-find-previous-button-label = Precedente\npdfjs-find-next-button =\n    .title = Trova l’occorrenza successiva del testo da cercare\npdfjs-find-next-button-label = Successivo\npdfjs-find-highlight-checkbox = Evidenzia\npdfjs-find-match-case-checkbox-label = Maiuscole/minuscole\npdfjs-find-match-diacritics-checkbox-label = Segni diacritici\npdfjs-find-entire-word-checkbox-label = Parole intere\npdfjs-find-reached-top = Raggiunto l’inizio della pagina, continua dalla fine\npdfjs-find-reached-bottom = Raggiunta la fine della pagina, continua dall’inizio\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } di { $total } corrispondenza\n       *[other] { $current } di { $total } corrispondenze\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Più di una { $limit } corrispondenza\n       *[other] Più di { $limit } corrispondenze\n    }\npdfjs-find-not-found = Testo non trovato\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Larghezza pagina\npdfjs-page-scale-fit = Adatta a una pagina\npdfjs-page-scale-auto = Zoom automatico\npdfjs-page-scale-actual = Dimensioni effettive\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Si è verificato un errore durante il caricamento del PDF.\npdfjs-invalid-file-error = File PDF non valido o danneggiato.\npdfjs-missing-file-error = File PDF non disponibile.\npdfjs-unexpected-response-error = Risposta imprevista del server\npdfjs-rendering-error = Si è verificato un errore durante il rendering della pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Annotazione: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Inserire la password per aprire questo file PDF.\npdfjs-password-invalid = Password non corretta. Riprova.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Annulla\npdfjs-web-fonts-disabled = I web font risultano disattivati: impossibile utilizzare i caratteri incorporati nel PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Testo\npdfjs-editor-color-picker-free-text-input =\n    .title = Cambia colore del testo\npdfjs-editor-free-text-button-label = Testo\npdfjs-editor-ink-button =\n    .title = Disegno\npdfjs-editor-color-picker-ink-input =\n    .title = Cambia colore del disegno\npdfjs-editor-ink-button-label = Disegno\npdfjs-editor-stamp-button =\n    .title = Aggiungi o rimuovi immagine\npdfjs-editor-stamp-button-label = Aggiungi o rimuovi immagine\npdfjs-editor-highlight-button =\n    .title = Evidenzia\npdfjs-editor-highlight-button-label = Evidenzia\npdfjs-highlight-floating-button1 =\n    .title = Evidenzia\n    .aria-label = Evidenzia\npdfjs-highlight-floating-button-label = Evidenzia\npdfjs-comment-floating-button =\n    .title = Commenta\n    .aria-label = Commenta\npdfjs-comment-floating-button-label = Commenta\npdfjs-editor-comment-button =\n    .title = Commenta\n    .aria-label = Commenta\npdfjs-editor-comment-button-label = Commenta\npdfjs-editor-signature-button =\n    .title = Aggiungi firma\npdfjs-editor-signature-button-label = Aggiungi firma\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Modifica evidenziazioni\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Modifica disegni\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor firme: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Modifica immagini\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Rimuovi disegno\npdfjs-editor-remove-freetext-button =\n    .title = Rimuovi testo\npdfjs-editor-remove-stamp-button =\n    .title = Rimuovi immagine\npdfjs-editor-remove-highlight-button =\n    .title = Rimuovi evidenziazione\npdfjs-editor-remove-signature-button =\n    .title = Rimuovi firma\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colore\npdfjs-editor-free-text-size-input = Dimensione\npdfjs-editor-ink-color-input = Colore\npdfjs-editor-ink-thickness-input = Spessore\npdfjs-editor-ink-opacity-input = Opacità\npdfjs-editor-stamp-add-image-button =\n    .title = Aggiungi immagine\npdfjs-editor-stamp-add-image-button-label = Aggiungi immagine\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Spessore\npdfjs-editor-free-highlight-thickness-title =\n    .title = Modifica lo spessore della selezione per elementi non testuali\npdfjs-editor-add-signature-container =\n    .aria-label = Controlli firma e firme salvate\npdfjs-editor-signature-add-signature-button =\n    .title = Aggiungi nuova firma\npdfjs-editor-signature-add-signature-button-label = Aggiungi nuova firma\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Firma salvata: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor di testo\n    .default-content = Inizia a digitare…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Commento\n       *[other] Commenti\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Chiudi la barra laterale\n    .aria-label = Chiudi la barra laterale\npdfjs-editor-comments-sidebar-close-button-label = Chiudi la barra laterale\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Hai notato qualcosa di interessante? Evidenzialo e aggiungi un commento.\npdfjs-editor-comments-sidebar-no-comments-link = Ulteriori informazioni\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Testo alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Modifica testo alternativo\npdfjs-editor-alt-text-dialog-label = Scegli un’opzione\npdfjs-editor-alt-text-dialog-description = Il testo alternativo (“alt text”) aiuta quando le persone non possono vedere l’immagine o quando l’immagine non viene caricata.\npdfjs-editor-alt-text-add-description-label = Aggiungi una descrizione\npdfjs-editor-alt-text-add-description-description = Punta a una o due frasi che descrivono l’argomento, l’ambientazione o le azioni.\npdfjs-editor-alt-text-mark-decorative-label = Contrassegna come decorativa\npdfjs-editor-alt-text-mark-decorative-description = Viene utilizzato per immagini ornamentali, come bordi o filigrane.\npdfjs-editor-alt-text-cancel-button = Annulla\npdfjs-editor-alt-text-save-button = Salva\npdfjs-editor-alt-text-decorative-tooltip = Contrassegnata come decorativa\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Ad esempio, “Un giovane si siede a tavola per mangiare”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Testo alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Angolo in alto a sinistra — ridimensiona\npdfjs-editor-resizer-top-middle =\n    .aria-label = Lato superiore nel mezzo — ridimensiona\npdfjs-editor-resizer-top-right =\n    .aria-label = Angolo in alto a destra — ridimensiona\npdfjs-editor-resizer-middle-right =\n    .aria-label = Lato destro nel mezzo — ridimensiona\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Angolo in basso a destra — ridimensiona\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Lato inferiore nel mezzo — ridimensiona\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Angolo in basso a sinistra — ridimensiona\npdfjs-editor-resizer-middle-left =\n    .aria-label = Lato sinistro nel mezzo — ridimensiona\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Colore evidenziatore\npdfjs-editor-colorpicker-button =\n    .title = Cambia colore\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Colori disponibili\npdfjs-editor-colorpicker-yellow =\n    .title = Giallo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Blu\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Rosso\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostra tutto\npdfjs-editor-highlight-show-all-button =\n    .title = Mostra tutto\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Modifica testo alternativo (descrizione dell’immagine)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Aggiungi testo alternativo (descrizione dell’immagine)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Scrivi qui la tua descrizione…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Breve descrizione per le persone che non possono vedere l’immagine, o mostrata quando l’immagine non si carica.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Questo testo alternativo è stato creato automaticamente e potrebbe non essere accurato.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Ulteriori informazioni\npdfjs-editor-new-alt-text-create-automatically-button-label = Crea automaticamente testo alternativo\npdfjs-editor-new-alt-text-not-now-button = Non adesso\npdfjs-editor-new-alt-text-error-title = Impossibile creare automaticamente il testo alternativo\npdfjs-editor-new-alt-text-error-description = Scrivi il testo alternativo o riprova più tardi.\npdfjs-editor-new-alt-text-error-close-button = Chiudi\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Download in corso del modello IA per il testo alternativo ({ $downloadedSize } di { $totalSize } MB)\n    .aria-valuetext = Download in corso del modello IA per il testo alternativo ({ $downloadedSize } di { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Aggiunto testo alternativo\npdfjs-editor-new-alt-text-added-button-label = Aggiunto testo alternativo\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Testo alternativo mancante\npdfjs-editor-new-alt-text-missing-button-label = Testo alternativo mancante\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Verifica testo alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Verifica testo alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creato automaticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Impostazioni testo alternativo per le immagini\npdfjs-image-alt-text-settings-button-label = Impostazioni testo alternativo per le immagini\npdfjs-editor-alt-text-settings-dialog-label = Impostazioni testo alternativo per le immagini\npdfjs-editor-alt-text-settings-automatic-title = Testo alternativo automatico\npdfjs-editor-alt-text-settings-create-model-button-label = Crea testo alternativo automaticamente\npdfjs-editor-alt-text-settings-create-model-description = Suggerisce una descrizione per le persone che non possono vedere l’immagine, o mostrata quando l’immagine non si carica.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modello IA per il testo alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Viene eseguito localmente sul tuo dispositivo in modo che i tuoi dati rimangano riservati. È richiesto per la generazione automatica del testo alternativo.\npdfjs-editor-alt-text-settings-delete-model-button = Elimina\npdfjs-editor-alt-text-settings-download-model-button = Scarica\npdfjs-editor-alt-text-settings-downloading-model-button = Download…\npdfjs-editor-alt-text-settings-editor-title = Modifica testo alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostra l’editor del testo alternativo non appena si aggiunge un’immagine\npdfjs-editor-alt-text-settings-show-dialog-description = Ti aiuta ad assicurarti che tutte le tue immagini abbiano il testo alternativo.\npdfjs-editor-alt-text-settings-close-button = Chiudi\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Aggiunta evidenziazione\npdfjs-editor-freetext-added-alert = Aggiunto testo\npdfjs-editor-ink-added-alert = Aggiunto disegno\npdfjs-editor-stamp-added-alert = Aggiunta immagine\npdfjs-editor-signature-added-alert = Aggiunta firma\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Evidenziazione rimossa\npdfjs-editor-undo-bar-message-freetext = Testo rimosso\npdfjs-editor-undo-bar-message-ink = Disegno rimosso\npdfjs-editor-undo-bar-message-stamp = Immagine rimossa\npdfjs-editor-undo-bar-message-signature = Firma rimossa\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotazione rimossa\n       *[other] { $count } annotazioni rimosse\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Annulla\npdfjs-editor-undo-bar-undo-button-label = Annulla\npdfjs-editor-undo-bar-close-button =\n    .title = Chiudi\npdfjs-editor-undo-bar-close-button-label = Chiudi\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Questa finestra consente all’utente di creare una firma da aggiungere a un documento PDF. L’utente può modificare il nome (che verrà utilizzato anche come testo alternativo) e, se lo desidera, salvare la firma per riutilizzarla in futuro.\npdfjs-editor-add-signature-dialog-title = Aggiungi una firma\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Scrivi\n    .title = Scrivi\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Disegna\n    .title = Disegna\npdfjs-editor-add-signature-image-button = Immagine\n    .title = Immagine\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Digita la tua firma\n    .placeholder = Digita la tua firma\npdfjs-editor-add-signature-draw-placeholder = Disegna la tua firma\npdfjs-editor-add-signature-draw-thickness-range-label = Spessore\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Spessore del tratto: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Trascina un file qui per caricarlo\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Oppure scegli un file immagine\n       *[other] Oppure sfoglia i file immagine\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descrizione (testo alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descrizione (testo alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Firma\npdfjs-editor-add-signature-clear-button-label = Cancella firma\npdfjs-editor-add-signature-clear-button =\n    .title = Cancella firma\npdfjs-editor-add-signature-save-checkbox = Salva firma\npdfjs-editor-add-signature-save-warning-message = Hai raggiunto il limite di 5 firme salvate. Rimuovine una per salvarne altre.\npdfjs-editor-add-signature-image-upload-error-title = Impossibile caricare l’immagine\npdfjs-editor-add-signature-image-upload-error-description = Controlla la connessione di rete o prova con un’altra immagine.\npdfjs-editor-add-signature-image-no-data-error-title = Impossibile convertire questa immagine in una firma\npdfjs-editor-add-signature-image-no-data-error-description = Prova a caricare un’altra immagine.\npdfjs-editor-add-signature-error-close-button = Chiudi\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annulla\npdfjs-editor-add-signature-add-button = Aggiungi\npdfjs-editor-edit-signature-update-button = Aggiorna\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Modifica commento\npdfjs-editor-edit-comment-popup-button =\n    .title = Modifica commento\npdfjs-editor-delete-comment-popup-button-label = Elimina commento\npdfjs-editor-delete-comment-popup-button =\n    .title = Elimina commento\npdfjs-show-comment-button =\n    .title = Mostra commento\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Azioni\npdfjs-editor-edit-comment-actions-button =\n    .title = Azioni\npdfjs-editor-edit-comment-close-button-label = Chiudi\npdfjs-editor-edit-comment-close-button =\n    .title = Chiudi\npdfjs-editor-edit-comment-actions-edit-button-label = Modifica\npdfjs-editor-edit-comment-actions-delete-button-label = Elimina\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Inserisci il tuo commento\npdfjs-editor-edit-comment-manager-cancel-button = Annulla\npdfjs-editor-edit-comment-manager-save-button = Salva\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Modifica commento\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aggiorna\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Aggiungi commento\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Aggiungi\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Inizia a digitare…\npdfjs-editor-edit-comment-dialog-cancel-button = Annulla\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Modifica commento\npdfjs-editor-add-comment-button =\n    .title = Aggiungi commento\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Rimuovi firma salvata\npdfjs-editor-delete-signature-button-label1 = Rimuovi firma salvata\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Modifica descrizione\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Modifica descrizione\n"
  },
  {
    "path": "viewer/locale/ja/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = 前のページへ戻ります\npdfjs-previous-button-label = 前へ\npdfjs-next-button =\n    .title = 次のページへ進みます\npdfjs-next-button-label = 次へ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ページ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = 表示を縮小します\npdfjs-zoom-out-button-label = 縮小\npdfjs-zoom-in-button =\n    .title = 表示を拡大します\npdfjs-zoom-in-button-label = 拡大\npdfjs-zoom-select =\n    .title = 拡大/縮小\npdfjs-presentation-mode-button =\n    .title = プレゼンテーションモードに切り替えます\npdfjs-presentation-mode-button-label = プレゼンテーションモード\npdfjs-open-file-button =\n    .title = ファイルを開きます\npdfjs-open-file-button-label = 開く\npdfjs-print-button =\n    .title = 印刷します\npdfjs-print-button-label = 印刷\npdfjs-save-button =\n    .title = 保存します\npdfjs-save-button-label = 保存\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ダウンロードします\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ダウンロード\npdfjs-bookmark-button =\n    .title = 現在のページの URL です (現在のページを表示する URL)\npdfjs-bookmark-button-label = 現在のページ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ツール\npdfjs-tools-button-label = ツール\npdfjs-first-page-button =\n    .title = 最初のページへ移動します\npdfjs-first-page-button-label = 最初のページへ移動\npdfjs-last-page-button =\n    .title = 最後のページへ移動します\npdfjs-last-page-button-label = 最後のページへ移動\npdfjs-page-rotate-cw-button =\n    .title = ページを右へ回転します\npdfjs-page-rotate-cw-button-label = 右回転\npdfjs-page-rotate-ccw-button =\n    .title = ページを左へ回転します\npdfjs-page-rotate-ccw-button-label = 左回転\npdfjs-cursor-text-select-tool-button =\n    .title = テキスト選択ツールを有効にします\npdfjs-cursor-text-select-tool-button-label = テキスト選択ツール\npdfjs-cursor-hand-tool-button =\n    .title = 手のひらツールを有効にします\npdfjs-cursor-hand-tool-button-label = 手のひらツール\npdfjs-scroll-page-button =\n    .title = ページ単位でスクロールします\npdfjs-scroll-page-button-label = ページ単位でスクロール\npdfjs-scroll-vertical-button =\n    .title = 縦スクロールにします\npdfjs-scroll-vertical-button-label = 縦スクロール\npdfjs-scroll-horizontal-button =\n    .title = 横スクロールにします\npdfjs-scroll-horizontal-button-label = 横スクロール\npdfjs-scroll-wrapped-button =\n    .title = 折り返しスクロールにします\npdfjs-scroll-wrapped-button-label = 折り返しスクロール\npdfjs-spread-none-button =\n    .title = 見開きにしません\npdfjs-spread-none-button-label = 見開きにしない\npdfjs-spread-odd-button =\n    .title = 奇数ページ開始で見開きにします\npdfjs-spread-odd-button-label = 奇数ページ見開き\npdfjs-spread-even-button =\n    .title = 偶数ページ開始で見開きにします\npdfjs-spread-even-button-label = 偶数ページ見開き\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = 文書のプロパティ...\npdfjs-document-properties-button-label = 文書のプロパティ...\npdfjs-document-properties-file-name = ファイル名:\npdfjs-document-properties-file-size = ファイルサイズ:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } バイト)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } バイト)\npdfjs-document-properties-title = タイトル:\npdfjs-document-properties-author = 作成者:\npdfjs-document-properties-subject = 件名:\npdfjs-document-properties-keywords = キーワード:\npdfjs-document-properties-creation-date = 作成日:\npdfjs-document-properties-modification-date = 更新日:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = アプリケーション:\npdfjs-document-properties-producer = PDF 作成:\npdfjs-document-properties-version = PDF のバージョン:\npdfjs-document-properties-page-count = ページ数:\npdfjs-document-properties-page-size = ページサイズ:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = 縦\npdfjs-document-properties-page-size-orientation-landscape = 横\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = レター\npdfjs-document-properties-page-size-name-legal = リーガル\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = ウェブ表示用に最適化:\npdfjs-document-properties-linearized-yes = はい\npdfjs-document-properties-linearized-no = いいえ\npdfjs-document-properties-close-button = 閉じる\n\n## Print\n\npdfjs-print-progress-message = 文書の印刷を準備しています...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = キャンセル\npdfjs-printing-not-supported = 警告: このブラウザーでは印刷が完全にサポートされていません。\npdfjs-printing-not-ready = 警告: PDF を印刷するための読み込みが終了していません。\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = サイドバー表示を切り替えます\npdfjs-toggle-sidebar-notification-button =\n    .title = サイドバー表示を切り替えます (文書に含まれるアウトライン / 添付 / レイヤー)\npdfjs-toggle-sidebar-button-label = サイドバーの切り替え\npdfjs-document-outline-button =\n    .title = 文書の目次を表示します (ダブルクリックで項目を開閉します)\npdfjs-document-outline-button-label = 文書の目次\npdfjs-attachments-button =\n    .title = 添付ファイルを表示します\npdfjs-attachments-button-label = 添付ファイル\npdfjs-layers-button =\n    .title = レイヤーを表示します (ダブルクリックですべてのレイヤーが初期状態に戻ります)\npdfjs-layers-button-label = レイヤー\npdfjs-thumbs-button =\n    .title = 縮小版を表示します\npdfjs-thumbs-button-label = 縮小版\npdfjs-current-outline-item-button =\n    .title = 現在のアウトライン項目を検索\npdfjs-current-outline-item-button-label = 現在のアウトライン項目\npdfjs-findbar-button =\n    .title = 文書内を検索します\npdfjs-findbar-button-label = 検索\npdfjs-additional-layers = 追加レイヤー\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } ページ\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } ページの縮小版\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = 検索\n    .placeholder = 文書内を検索...\npdfjs-find-previous-button =\n    .title = 現在より前の位置で指定文字列が現れる部分を検索します\npdfjs-find-previous-button-label = 前へ\npdfjs-find-next-button =\n    .title = 現在より後の位置で指定文字列が現れる部分を検索します\npdfjs-find-next-button-label = 次へ\npdfjs-find-highlight-checkbox = すべて強調表示\npdfjs-find-match-case-checkbox-label = 大文字/小文字を区別\npdfjs-find-match-diacritics-checkbox-label = 発音区別符号を区別\npdfjs-find-entire-word-checkbox-label = 単語一致\npdfjs-find-reached-top = 文書先頭に到達したので末尾から続けて検索します\npdfjs-find-reached-bottom = 文書末尾に到達したので先頭から続けて検索します\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = { $total } 件中 { $current } 件目\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = { $limit } 件以上一致\npdfjs-find-not-found = 見つかりませんでした\n\n## Predefined zoom values\n\npdfjs-page-scale-width = 幅に合わせる\npdfjs-page-scale-fit = ページのサイズに合わせる\npdfjs-page-scale-auto = 自動ズーム\npdfjs-page-scale-actual = 実際のサイズ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page } ページ\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF の読み込み中にエラーが発生しました。\npdfjs-invalid-file-error = 無効または破損した PDF ファイル。\npdfjs-missing-file-error = PDF ファイルが見つかりません。\npdfjs-unexpected-response-error = サーバーから予期せぬ応答がありました。\npdfjs-rendering-error = ページのレンダリング中にエラーが発生しました。\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } 注釈]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = この PDF ファイルを開くためのパスワードを入力してください。\npdfjs-password-invalid = パスワードが正しくありません。もう一度試してください。\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = キャンセル\npdfjs-web-fonts-disabled = ウェブフォントが無効になっています: 埋め込まれた PDF のフォントを使用できません。\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = フリーテキスト注釈を追加します\npdfjs-editor-color-picker-free-text-input =\n    .title = テキスト色を変更します\npdfjs-editor-free-text-button-label = フリーテキスト注釈\npdfjs-editor-ink-button =\n    .title = インク注釈を追加します\npdfjs-editor-color-picker-ink-input =\n    .title = インク色を変更します\npdfjs-editor-ink-button-label = インク注釈\npdfjs-editor-stamp-button =\n    .title = 画像を追加または編集します\npdfjs-editor-stamp-button-label = 画像を追加または編集\npdfjs-editor-highlight-button =\n    .title = 強調します\npdfjs-editor-highlight-button-label = 強調\npdfjs-highlight-floating-button1 =\n    .title = 強調します\n    .aria-label = 強調します\npdfjs-highlight-floating-button-label = 強調\npdfjs-comment-floating-button =\n    .title = コメントを追加します\n    .aria-label = コメントを追加します\npdfjs-comment-floating-button-label = コメント\npdfjs-editor-comment-button =\n    .title = コメントを編集します\n    .aria-label = コメントを編集します\npdfjs-editor-comment-button-label = コメント\npdfjs-editor-signature-button =\n    .title = 署名を追加します\npdfjs-editor-signature-button-label = 署名を追加\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = 強調エディター\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = 描画エディター\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = 署名エディター: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = 画像エディター\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = インク注釈を削除します\npdfjs-editor-remove-freetext-button =\n    .title = テキストを削除します\npdfjs-editor-remove-stamp-button =\n    .title = 画像を削除します\npdfjs-editor-remove-highlight-button =\n    .title = 強調を削除します\npdfjs-editor-remove-signature-button =\n    .title = 署名を削除します\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = 色\npdfjs-editor-free-text-size-input = サイズ\npdfjs-editor-ink-color-input = 色\npdfjs-editor-ink-thickness-input = 太さ\npdfjs-editor-ink-opacity-input = 不透明度\npdfjs-editor-stamp-add-image-button =\n    .title = 画像を追加します\npdfjs-editor-stamp-add-image-button-label = 画像を追加\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = 太さ\npdfjs-editor-free-highlight-thickness-title =\n    .title = テキスト以外のアイテムを強調する時の太さを変更します\npdfjs-editor-add-signature-container =\n    .aria-label = 署名コントロールと保存された署名\npdfjs-editor-signature-add-signature-button =\n    .title = 新しい署名を追加します\npdfjs-editor-signature-add-signature-button-label = 新しい署名を追加\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = 保存された署名: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = フリーテキスト注釈エディター\n    .default-content = テキストを入力してください...\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = コメント\npdfjs-editor-comments-sidebar-close-button =\n    .title = サイドバーを閉じます\n    .aria-label = サイドバーを閉じる\npdfjs-editor-comments-sidebar-close-button-label = サイドバーを閉じる\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = 気になることがあれば、選択してコメントを残してください。\npdfjs-editor-comments-sidebar-no-comments-link = 詳細情報\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = 代替テキスト\npdfjs-editor-alt-text-edit-button =\n    .aria-label = 代替テキストを編集\npdfjs-editor-alt-text-dialog-label = オプションの選択\npdfjs-editor-alt-text-dialog-description = 代替テキストは画像が表示されない場合や読み込まれない場合にユーザーの助けになります。\npdfjs-editor-alt-text-add-description-label = 説明を追加\npdfjs-editor-alt-text-add-description-description = 対象や設定、動作を説明する短い文章を記入してください。\npdfjs-editor-alt-text-mark-decorative-label = 装飾マークを付ける\npdfjs-editor-alt-text-mark-decorative-description = これは区切り線やウォーターマークなどの装飾画像に使用されます。\npdfjs-editor-alt-text-cancel-button = キャンセル\npdfjs-editor-alt-text-save-button = 保存\npdfjs-editor-alt-text-decorative-tooltip = 装飾マークが付いています\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = 例:「若い人がテーブルの席について食事をしています」\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = 代替テキスト\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = 左上隅 — サイズ変更\npdfjs-editor-resizer-top-middle =\n    .aria-label = 上中央 — サイズ変更\npdfjs-editor-resizer-top-right =\n    .aria-label = 右上隅 — サイズ変更\npdfjs-editor-resizer-middle-right =\n    .aria-label = 右中央 — サイズ変更\npdfjs-editor-resizer-bottom-right =\n    .aria-label = 右下隅 — サイズ変更\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = 下中央 — サイズ変更\npdfjs-editor-resizer-bottom-left =\n    .aria-label = 左下隅 — サイズ変更\npdfjs-editor-resizer-middle-left =\n    .aria-label = 左中央 — サイズ変更\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = 強調色\npdfjs-editor-colorpicker-button =\n    .title = 色を変更します\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = 色の選択\npdfjs-editor-colorpicker-yellow =\n    .title = 黄色\npdfjs-editor-colorpicker-green =\n    .title = 緑色\npdfjs-editor-colorpicker-blue =\n    .title = 青色\npdfjs-editor-colorpicker-pink =\n    .title = ピンク色\npdfjs-editor-colorpicker-red =\n    .title = 赤色\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = すべて表示\n# (^m^) en-US: .title = Show all\npdfjs-editor-highlight-show-all-button =\n    .title = 強調の表示を切り替えます\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = 代替テキストを編集 (画像の説明)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = 代替テキストを追加 (画像の説明)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = ここに説明を記入してください...\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = 画像が読み込まれない場合や見えない人のための短い説明です。\npdfjs-editor-new-alt-text-disclaimer1 = この代替テキストは自動的に生成されたため正確でない可能性があります。\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = 詳細情報\npdfjs-editor-new-alt-text-create-automatically-button-label = 代替テキストを自動生成\npdfjs-editor-new-alt-text-not-now-button = 後で\npdfjs-editor-new-alt-text-error-title = 代替テキストを自動生成できませんでした\npdfjs-editor-new-alt-text-error-description = ご自分で代替テキストを書くか後でもう一度試してください。\npdfjs-editor-new-alt-text-error-close-button = 閉じる\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = 代替テキスト AI モデルをダウンロードしています ({ $downloadedSize } / { $totalSize } MB)\n    .aria-valuetext = 代替テキスト AI モデルをダウンロードしています ({ $downloadedSize } / { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = 代替テキストを追加しました\npdfjs-editor-new-alt-text-added-button-label = 代替テキストを追加しました\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = 代替テキストがありません\npdfjs-editor-new-alt-text-missing-button-label = 代替テキストがありません\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = 代替テキストをレビュー\npdfjs-editor-new-alt-text-to-review-button-label = 代替テキストをレビュー\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = 自動生成されました: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = 画像の代替テキスト設定\npdfjs-image-alt-text-settings-button-label = 画像の代替テキスト設定\npdfjs-editor-alt-text-settings-dialog-label = 画像の代替テキスト設定\npdfjs-editor-alt-text-settings-automatic-title = 自動代替テキスト\npdfjs-editor-alt-text-settings-create-model-button-label = 代替テキストを自動生成\npdfjs-editor-alt-text-settings-create-model-description = 画像が読み込まれない場合や見えない人のために説明を提案します。\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = 代替テキスト AI モデル ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = ローカルの端末上で実行されるためデータは非公開になります。代替テキストの自動生成に必要です。\npdfjs-editor-alt-text-settings-delete-model-button = 削除\npdfjs-editor-alt-text-settings-download-model-button = ダウンロード\npdfjs-editor-alt-text-settings-downloading-model-button = ダウンロード中...\npdfjs-editor-alt-text-settings-editor-title = 代替テキストエディター\npdfjs-editor-alt-text-settings-show-dialog-button-label = 画像の追加時に代替テキストエディターを表示する\npdfjs-editor-alt-text-settings-show-dialog-description = すべての画像に代替テキストを追加する助けになります。\npdfjs-editor-alt-text-settings-close-button = 閉じる\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = 強調表示を追加しました\npdfjs-editor-freetext-added-alert = フリーテキスト注釈を追加しました\npdfjs-editor-ink-added-alert = インク注釈を追加しました\npdfjs-editor-stamp-added-alert = 画像を追加しました\npdfjs-editor-signature-added-alert = 署名を追加しました\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = 強調表示が削除されました\npdfjs-editor-undo-bar-message-freetext = フリーテキスト注釈が削除されました\npdfjs-editor-undo-bar-message-ink = インク注釈が削除されました\npdfjs-editor-undo-bar-message-stamp = 画像が削除されました\npdfjs-editor-undo-bar-message-signature = 署名が削除されました\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = { $count } 個の注釈が削除されました\npdfjs-editor-undo-bar-undo-button =\n    .title = 元に戻す\npdfjs-editor-undo-bar-undo-button-label = 元に戻す\npdfjs-editor-undo-bar-close-button =\n    .title = 閉じる\npdfjs-editor-undo-bar-close-button-label = 閉じる\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = このダイアログではユーザーが署名を作成して PDF 文書に追加できます。\npdfjs-editor-add-signature-dialog-title = 署名を追加\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = タイプ\n    .title = キーボード入力します\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = 手書き\n    .title = 手書き入力します\npdfjs-editor-add-signature-image-button = 画像\n    .title = 画像を指定します\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = 署名をキーボード入力\n    .placeholder = 署名をキーボード入力\npdfjs-editor-add-signature-draw-placeholder = 署名を手書き入力\npdfjs-editor-add-signature-draw-thickness-range-label = 線の太さ\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = 線の太さ: { $thickness }\npdfjs-editor-add-signature-image-placeholder = ファイルをここにドラッグしてアップロード\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] または画像ファイルを選択\n       *[other] または画像ファイルを参照\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = 説明 (代替テキスト)\npdfjs-editor-add-signature-description-input =\n    .title = 説明 (代替テキスト) を追加します\npdfjs-editor-add-signature-description-default-when-drawing = 署名\npdfjs-editor-add-signature-clear-button-label = 署名を消去\npdfjs-editor-add-signature-clear-button =\n    .title = 署名を消去します\npdfjs-editor-add-signature-save-checkbox = 署名を保存\npdfjs-editor-add-signature-save-warning-message = 保存された署名が上限の 5 個に達しました。さらに保存するにはいずれかを削除してください。\npdfjs-editor-add-signature-image-upload-error-title = 画像をアップロードできません\npdfjs-editor-add-signature-image-upload-error-description = ネットワーク接続を確認するか別の画像を試してください。\npdfjs-editor-add-signature-image-no-data-error-title = この画像は署名に変換できません\npdfjs-editor-add-signature-image-no-data-error-description = 別の画像をアップロードしてください。\npdfjs-editor-add-signature-error-close-button = 閉じる\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = キャンセル\npdfjs-editor-add-signature-add-button = 追加\npdfjs-editor-edit-signature-update-button = 更新\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = コメントを編集\npdfjs-editor-edit-comment-popup-button =\n    .title = コメントを編集します\npdfjs-editor-delete-comment-popup-button-label = コメントを削除\npdfjs-editor-delete-comment-popup-button =\n    .title = コメントを削除します\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = 操作\npdfjs-editor-edit-comment-actions-button =\n    .title = 操作\npdfjs-editor-edit-comment-close-button-label = 閉じる\npdfjs-editor-edit-comment-close-button =\n    .title = 閉じる\npdfjs-editor-edit-comment-actions-edit-button-label = 編集\npdfjs-editor-edit-comment-actions-delete-button-label = 削除\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = コメントを入力してください\npdfjs-editor-edit-comment-manager-cancel-button = キャンセル\npdfjs-editor-edit-comment-manager-save-button = 保存\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = コメントを編集\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = コメントを追加\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = コメントを入力してください...\npdfjs-editor-edit-comment-dialog-cancel-button = キャンセル\npdfjs-editor-edit-comment-dialog-save-button = 保存\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Edit comment\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = 保存された署名を削除します\npdfjs-editor-delete-signature-button-label1 = 保存された署名を削除\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = 説明を編集\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = 説明の編集\n"
  },
  {
    "path": "viewer/locale/ka/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = წინა გვერდი\npdfjs-previous-button-label = წინა\npdfjs-next-button =\n    .title = შემდეგი გვერდი\npdfjs-next-button-label = შემდეგი\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = გვერდი\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount }-დან\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } { $pagesCount }-დან)\npdfjs-zoom-out-button =\n    .title = ზომის შემცირება\npdfjs-zoom-out-button-label = დაშორება\npdfjs-zoom-in-button =\n    .title = ზომის გაზრდა\npdfjs-zoom-in-button-label = მოახლოება\npdfjs-zoom-select =\n    .title = ზომა\npdfjs-presentation-mode-button =\n    .title = წარდგენის რეჟიმზე გადართვა\npdfjs-presentation-mode-button-label = წარდგენის რეჟიმი\npdfjs-open-file-button =\n    .title = ფაილის გახსნა\npdfjs-open-file-button-label = გახსნა\npdfjs-print-button =\n    .title = ამობეჭდვა\npdfjs-print-button-label = ამობეჭდვა\npdfjs-save-button =\n    .title = შენახვა\npdfjs-save-button-label = შენახვა\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ჩამოტვირთვა\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ჩამოტვირთვა\npdfjs-bookmark-button =\n    .title = მიმდინარე გვერდი (ბმული ამ გვერდისთვის)\npdfjs-bookmark-button-label = მიმდინარე გვერდი\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ხელსაწყოები\npdfjs-tools-button-label = ხელსაწყოები\npdfjs-first-page-button =\n    .title = პირველ გვერდზე გადასვლა\npdfjs-first-page-button-label = პირველ გვერდზე გადასვლა\npdfjs-last-page-button =\n    .title = ბოლო გვერდზე გადასვლა\npdfjs-last-page-button-label = ბოლო გვერდზე გადასვლა\npdfjs-page-rotate-cw-button =\n    .title = საათის ისრის მიმართულებით შებრუნება\npdfjs-page-rotate-cw-button-label = მარჯვნივ გადაბრუნება\npdfjs-page-rotate-ccw-button =\n    .title = საათის ისრის საპირისპიროდ შებრუნება\npdfjs-page-rotate-ccw-button-label = მარცხნივ გადაბრუნება\npdfjs-cursor-text-select-tool-button =\n    .title = მოსანიშნი მაჩვენებლის გამოყენება\npdfjs-cursor-text-select-tool-button-label = მოსანიშნი მაჩვენებელი\npdfjs-cursor-hand-tool-button =\n    .title = გადასაადგილებელი მაჩვენებლის გამოყენება\npdfjs-cursor-hand-tool-button-label = გადასაადგილებელი\npdfjs-scroll-page-button =\n    .title = გვერდზე გადაადგილების გამოყენება\npdfjs-scroll-page-button-label = გვერდშივე გადაადგილება\npdfjs-scroll-vertical-button =\n    .title = გვერდების შვეულად ჩვენება\npdfjs-scroll-vertical-button-label = შვეული გადაადგილება\npdfjs-scroll-horizontal-button =\n    .title = გვერდების თარაზულად ჩვენება\npdfjs-scroll-horizontal-button-label = განივი გადაადგილება\npdfjs-scroll-wrapped-button =\n    .title = გვერდების ცხრილურად ჩვენება\npdfjs-scroll-wrapped-button-label = ცხრილური გადაადგილება\npdfjs-spread-none-button =\n    .title = ორ გვერდზე გაშლის გარეშე\npdfjs-spread-none-button-label = ცალგვერდიანი ჩვენება\npdfjs-spread-odd-button =\n    .title = ორ გვერდზე გაშლა კენტი გვერდიდან\npdfjs-spread-odd-button-label = ორ გვერდზე კენტიდან\npdfjs-spread-even-button =\n    .title = ორ გვერდზე გაშლა ლუწი გვერდიდან\npdfjs-spread-even-button-label = ორ გვერდზე ლუწიდან\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = დოკუმენტის შესახებ…\npdfjs-document-properties-button-label = დოკუმენტის შესახებ…\npdfjs-document-properties-file-name = ფაილის სახელი:\npdfjs-document-properties-file-size = ფაილის მოცულობა:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } კბაიტი ({ $b } ბაიტი)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } მბაიტი ({ $b } ბაიტი)\npdfjs-document-properties-title = სათაური:\npdfjs-document-properties-author = შემქმნელი:\npdfjs-document-properties-subject = თემა:\npdfjs-document-properties-keywords = საკვანძო სიტყვები:\npdfjs-document-properties-creation-date = შექმნის დრო:\npdfjs-document-properties-modification-date = ჩასწორების დრო:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = შემდგენელი:\npdfjs-document-properties-producer = PDF-შემდგენელი:\npdfjs-document-properties-version = PDF-ვერსია:\npdfjs-document-properties-page-count = გვერდები:\npdfjs-document-properties-page-size = გვერდის ზომა:\npdfjs-document-properties-page-size-unit-inches = დუიმი\npdfjs-document-properties-page-size-unit-millimeters = მმ\npdfjs-document-properties-page-size-orientation-portrait = შვეულად\npdfjs-document-properties-page-size-orientation-landscape = თარაზულად\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = მსუბუქი ვებჩვენება:\npdfjs-document-properties-linearized-yes = დიახ\npdfjs-document-properties-linearized-no = არა\npdfjs-document-properties-close-button = დახურვა\n\n## Print\n\npdfjs-print-progress-message = დოკუმენტი მზადდება ამოსაბეჭდად…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = გაუქმება\npdfjs-printing-not-supported = გაფრთხილება: ამობეჭდვა ამ ბრაუზერში არაა სრულად მხარდაჭერილი.\npdfjs-printing-not-ready = გაფრთხილება: PDF სრულად ჩატვირთული არაა, ამობეჭდვის დასაწყებად.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = გვერდითა ზოლის გამოჩენა/დამალვა\npdfjs-toggle-sidebar-notification-button =\n    .title = გვერდითი ზოლის გამოჩენა (შეიცავს სარჩევს/დანართს/შრეებს)\npdfjs-toggle-sidebar-button-label = გვერდითა ზოლის გამოჩენა/დამალვა\npdfjs-document-outline-button =\n    .title = დოკუმენტის სარჩევის ჩვენება (ორმაგი წკაპით თითოეულის ჩამოშლა/აკეცვა)\npdfjs-document-outline-button-label = დოკუმენტის სარჩევი\npdfjs-attachments-button =\n    .title = დანართების ჩვენება\npdfjs-attachments-button-label = დანართები\npdfjs-layers-button =\n    .title = შრეების გამოჩენა (ორმაგი წკაპით ყველა შრის ნაგულისხმევზე დაბრუნება)\npdfjs-layers-button-label = შრეები\npdfjs-thumbs-button =\n    .title = შეთვალიერება\npdfjs-thumbs-button-label = ესკიზები\npdfjs-current-outline-item-button =\n    .title = მიმდინარე გვერდის მონახვა სარჩევში\npdfjs-current-outline-item-button-label = მიმდინარე გვერდი სარჩევში\npdfjs-findbar-button =\n    .title = პოვნა დოკუმენტში\npdfjs-findbar-button-label = ძიება\npdfjs-additional-layers = დამატებითი შრეები\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = გვერდი { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = გვერდის შეთვალიერება { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ძიება\n    .placeholder = პოვნა დოკუმენტში…\npdfjs-find-previous-button =\n    .title = წინა დამთხვევის პოვნა\npdfjs-find-previous-button-label = წინა\npdfjs-find-next-button =\n    .title = მომდევნო დამთხვევის პოვნა\npdfjs-find-next-button-label = შემდეგი\npdfjs-find-highlight-checkbox = ყველაფრის მონიშვნა\npdfjs-find-match-case-checkbox-label = მთავრულით\npdfjs-find-match-diacritics-checkbox-label = ნიშნებით\npdfjs-find-entire-word-checkbox-label = მთლიანი სიტყვები\npdfjs-find-reached-top = მიღწეულია დოკუმენტის დასაწყისი, გრძელდება ბოლოდან\npdfjs-find-reached-bottom = მიღწეულია დოკუმენტის ბოლო, გრძელდება დასაწყისიდან\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] თანხვედრა { $current }, სულ { $total }\n       *[other] თანხვედრა { $current }, სულ { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] არანაკლებ { $limit } თანხვედრა\n       *[other] არანაკლებ { $limit } თანხვედრა\n    }\npdfjs-find-not-found = ფრაზა ვერ მოიძებნა\n\n## Predefined zoom values\n\npdfjs-page-scale-width = გვერდის სიგანეზე\npdfjs-page-scale-fit = მთლიანი გვერდი\npdfjs-page-scale-auto = ავტომატური\npdfjs-page-scale-actual = საწყისი ზომა\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = გვერდი { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = შეცდომა, PDF-ფაილის ჩატვირთვისას.\npdfjs-invalid-file-error = არამართებული ან დაზიანებული PDF-ფაილი.\npdfjs-missing-file-error = ნაკლული PDF-ფაილი.\npdfjs-unexpected-response-error = სერვერის მოულოდნელი პასუხი.\npdfjs-rendering-error = შეცდომა, გვერდის ჩვენებისას.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } შენიშვნა]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = შეიყვანეთ პაროლი PDF-ფაილის გასახსნელად.\npdfjs-password-invalid = არასწორი პაროლი. გთხოვთ, სცადოთ ხელახლა.\npdfjs-password-ok-button = კარგი\npdfjs-password-cancel-button = გაუქმება\npdfjs-web-fonts-disabled = ვებშრიფტები გამორთულია: ჩაშენებული PDF-შრიფტების გამოყენება ვერ ხერხდება.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = წარწერა\npdfjs-editor-color-picker-free-text-input =\n    .title = წარწერის ფერის შეცვლა\npdfjs-editor-free-text-button-label = წარწერა\npdfjs-editor-ink-button =\n    .title = მოხაზვა\npdfjs-editor-color-picker-ink-input =\n    .title = მოხაზულის ფერის შეცვლა\npdfjs-editor-ink-button-label = მოხაზვა\npdfjs-editor-stamp-button =\n    .title = სურათების დართვა ან ჩასწორება\npdfjs-editor-stamp-button-label = სურათების დართვა ან ჩასწორება\npdfjs-editor-highlight-button =\n    .title = მონიშვნა\npdfjs-editor-highlight-button-label = მონიშვნა\npdfjs-highlight-floating-button1 =\n    .title = მონიშვნა\n    .aria-label = მონიშვნა\npdfjs-highlight-floating-button-label = მონიშვნა\npdfjs-comment-floating-button =\n    .title = შენიშვნა\n    .aria-label = შენიშვნა\npdfjs-comment-floating-button-label = შენიშვნა\npdfjs-editor-comment-button =\n    .title = შენიშვნა\n    .aria-label = შენიშვნა\npdfjs-editor-comment-button-label = შენიშვნა\npdfjs-editor-signature-button =\n    .title = ხელმოწერის დამატება\npdfjs-editor-signature-button-label = ხელმოწერის დამატება\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = მონიშვნის ჩასწორება\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = მოხაზულის ჩასწორება\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = ხელმოწერის ჩასწორება: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = სურათის ჩასწორება\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = მოხაზულის მოცილება\npdfjs-editor-remove-freetext-button =\n    .title = წარწერის მოცილება\npdfjs-editor-remove-stamp-button =\n    .title = სურათის მოცილება\npdfjs-editor-remove-highlight-button =\n    .title = მონიშვნის მოცილება\npdfjs-editor-remove-signature-button =\n    .title = ხელმოწერის მოცილება\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = ფერი\npdfjs-editor-free-text-size-input = ზომა\npdfjs-editor-ink-color-input = ფერი\npdfjs-editor-ink-thickness-input = სისქე\npdfjs-editor-ink-opacity-input = გაუმჭვირვალობა\npdfjs-editor-stamp-add-image-button =\n    .title = სურათის დამატება\npdfjs-editor-stamp-add-image-button-label = სურათის დამატება\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = სისქე\npdfjs-editor-free-highlight-thickness-title =\n    .title = სისქის შეცვლა წარწერის გარდა სხვა ნაწილების მონიშვნისას\npdfjs-editor-add-signature-container =\n    .aria-label = ხელმოწერის მართვა და შენახული ხელმოწერები\npdfjs-editor-signature-add-signature-button =\n    .title = ახალი ხელმოწერის დამატება\npdfjs-editor-signature-add-signature-button-label = ახალი ხელმოწერის დამატება\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = შენახული ხელმოწერა: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = წარწერის ჩასწორება\n    .default-content = დაიწყეთ აკრეფა…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] შენიშვნა\n       *[other] შენიშვნა\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = გვერდითი ზოლის დახურვა\n    .aria-label = გვერდითი ზოლის დახურვა\npdfjs-editor-comments-sidebar-close-button-label = გვერდითი ზოლის დახურვა\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = რამე საყურადღებოს წააწყდით? გააფერადეთ და დაურთეთ შენიშვნა.\npdfjs-editor-comments-sidebar-no-comments-link = ვრცლად\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = თანდართული წარწერა\npdfjs-editor-alt-text-edit-button =\n    .aria-label = დართული წარწერის ჩასწორება\npdfjs-editor-alt-text-dialog-label = არჩევა\npdfjs-editor-alt-text-dialog-description = თანდართული (შემნაცვლებელი) წარწერა გამოსადეგია მათთვის, ვინც ვერ ხედავს სურათებს ან გამოისახება მაშინ, როცა სურათი ვერ ჩაიტვირთება.\npdfjs-editor-alt-text-add-description-label = აღწერილობის მითითება\npdfjs-editor-alt-text-add-description-description = განკუთვნილია 1-2 წინადადებით საგნის, მახასიათებლის ან მოქმედების აღსაწერად.\npdfjs-editor-alt-text-mark-decorative-label = მოინიშნოს მორთულობად\npdfjs-editor-alt-text-mark-decorative-description = განკუთვნილია შესამკობი სურათებისთვის, გარსშემოსავლები ჩარჩოებისა და ჭვირნიშნებისთვის.\npdfjs-editor-alt-text-cancel-button = გაუქმება\npdfjs-editor-alt-text-save-button = შენახვა\npdfjs-editor-alt-text-decorative-tooltip = მოინიშნოს მორთულობად\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = მაგალითად, „ახალგაზრდა მამაკაცი მაგიდასთან ზის და სადილობს“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = დართული წარწერა\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = ზევით მარცხნივ — ზომაცვლა\npdfjs-editor-resizer-top-middle =\n    .aria-label = ზევით შუაში — ზომაცვლა\npdfjs-editor-resizer-top-right =\n    .aria-label = ზევით მარჯვნივ — ზომაცვლა\npdfjs-editor-resizer-middle-right =\n    .aria-label = შუაში მარჯვნივ — ზომაცვლა\npdfjs-editor-resizer-bottom-right =\n    .aria-label = ქვევით მარჯვნივ — ზომაცვლა\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = ქვევით შუაში — ზომაცვლა\npdfjs-editor-resizer-bottom-left =\n    .aria-label = ზვევით მარცხნივ — ზომაცვლა\npdfjs-editor-resizer-middle-left =\n    .aria-label = შუაში მარცხნივ — ზომაცვლა\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = მოსანიშნი ფერი\npdfjs-editor-colorpicker-button =\n    .title = ფერის შეცვლა\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = ფერის არჩევა\npdfjs-editor-colorpicker-yellow =\n    .title = ყვითელი\npdfjs-editor-colorpicker-green =\n    .title = მწვანე\npdfjs-editor-colorpicker-blue =\n    .title = ლურჯი\npdfjs-editor-colorpicker-pink =\n    .title = ვარდისფერი\npdfjs-editor-colorpicker-red =\n    .title = წითელი\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = ყველას ჩვენება\npdfjs-editor-highlight-show-all-button =\n    .title = ყველას ჩვენება\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = დართული წარწერის ჩასწორება (სურათის აღწერის)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = დართული წარწერის დამატება (სურათის აღწერის)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = დაწერეთ თქვენი აღწერა აქ…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = მოკლე აღწერა მათთვის, ვინც ვერ ხედავს სურათს ან ვისთანაც ვერ ჩაიტვირთება სურათი.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = ეს დართული წარწერა ავტომატურადაა შედგენილი და შესაძლოა, უმართებულო იყოს.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = ვრცლად\npdfjs-editor-new-alt-text-create-automatically-button-label = დართული წარწერის ავტომატური შედგენა\npdfjs-editor-new-alt-text-not-now-button = ახლა არა\npdfjs-editor-new-alt-text-error-title = დართული წარწერის შედგენა ვერ მოხერხდა\npdfjs-editor-new-alt-text-error-description = გთხოვთ დაწეროთ საკუთარი დანართი და კვლავ სცადოთ მოგვიანებით.\npdfjs-editor-new-alt-text-error-close-button = დახურვა\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = ჩამოიტვირთება დართული წარწერის შესადეგი AI-მოდელი ({ $downloadedSize } ზომით { $totalSize } მბაიტი)\n    .aria-valuetext = ჩამოიტვირთება დართული წარწერის შესადეგი AI-მოდელი ({ $downloadedSize } ზომით { $totalSize } მბაიტი)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = დართული წარწერა დამატებულია\npdfjs-editor-new-alt-text-added-button-label = დართული წარწერა დამატებულია\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = აკლია დართული წარწერა\npdfjs-editor-new-alt-text-missing-button-label = აკლია დართული წარწერა\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = დართული წარწერის გადახედვა\npdfjs-editor-new-alt-text-to-review-button-label = დართული წარწერის გადახედვა\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = შედგენილია ავტომატურად: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = სურათის დართული წარწერის პარამეტრები\npdfjs-image-alt-text-settings-button-label = სურათის დართული წარწერის პარამეტრები\npdfjs-editor-alt-text-settings-dialog-label = სურათის დართული წარწერის პარამეტრები\npdfjs-editor-alt-text-settings-automatic-title = ავტომატურად დართული წარწერა\npdfjs-editor-alt-text-settings-create-model-button-label = დართული წარწერის ავტომატური შედგენა\npdfjs-editor-alt-text-settings-create-model-description = აღწერს სურათს მათთვის, ვინც ვერ ხედავს ან ვისთანაც ვერ ჩაიტვირთება.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = დართული წარწერის შესადგენი AI-მოდელი ({ $totalSize } მბაიტი)\npdfjs-editor-alt-text-settings-ai-model-description = ეშვება ადგილობრივად თქვენს მოწყობილობასა, ასე რომ მონაცემები დარჩება პირადი. საჭიროა წარწერის ავტომატურად დართვისთვის.\npdfjs-editor-alt-text-settings-delete-model-button = წაშლა\npdfjs-editor-alt-text-settings-download-model-button = ჩამოტვირთვა\npdfjs-editor-alt-text-settings-downloading-model-button = ჩამოიტვრითება...\npdfjs-editor-alt-text-settings-editor-title = დართული წარწერის ჩამსწორებელი\npdfjs-editor-alt-text-settings-show-dialog-button-label = გამოჩნდეს დართული წარწერის ჩამსწორებელი სურათის დამატებისთანავე\npdfjs-editor-alt-text-settings-show-dialog-description = უზრუნველყოფს, რომ თქვენს ყველა სურათს ახლდეს დართული წარწერა.\npdfjs-editor-alt-text-settings-close-button = დახურვა\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = მონიშვნა დამატებულია\npdfjs-editor-freetext-added-alert = წარწერა დამატებულია\npdfjs-editor-ink-added-alert = მოხაზვა დამატებული\npdfjs-editor-stamp-added-alert = სურათი დამატებულია\npdfjs-editor-signature-added-alert = ხელმოწერა დამატებულია\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = მონიშვნა მოცილებულია\npdfjs-editor-undo-bar-message-freetext = წარწერა მოცილებულია\npdfjs-editor-undo-bar-message-ink = მოხაზულის მოცილებულია\npdfjs-editor-undo-bar-message-stamp = სურათი მოცილებულია\npdfjs-editor-undo-bar-message-signature = ხელმოწერა მოცილებულია\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } შენიშვნა მოცილებულია\n       *[other] { $count } შენიშვნა მოცილებულია\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = დაბრუნება\npdfjs-editor-undo-bar-undo-button-label = დაბრუნება\npdfjs-editor-undo-bar-close-button =\n    .title = დახურვა\npdfjs-editor-undo-bar-close-button-label = დახურვა\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = ეს არე საშუალებას აძლევს მომხმარებელს, შექმნას საკუთარი ხელმოწერა PDF-დოკუმენტისთვის. მომხმარებელს შეეძლება ჩაასწოროს სახელი (რომელიც დართული ტექსტის მოვალეობასაც ასრულებს) და სურვილისამებრ შეინახოს ხელმოწერა განმეორებით გამოსაყენებლად.\npdfjs-editor-add-signature-dialog-title = ხელმოწერის დამატება\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = აკრეფა\n    .title = აკრეფა\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = მოხაზვა\n    .title = მოხაზვა\npdfjs-editor-add-signature-image-button = სურათი\n    .title = სურათი\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = აკრიფეთ ხელმოწერა\n    .placeholder = აკრიფეთ ხელმოწერა\npdfjs-editor-add-signature-draw-placeholder = მოხაზეთ ხელმოწერა\npdfjs-editor-add-signature-draw-thickness-range-label = სისქე\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = მოხაზულის სისქე: { $thickness }\npdfjs-editor-add-signature-image-placeholder = ჩავლებით გადმოიტანეთ ასატვირთად\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] ან ამოარჩიეთ სურათებიდან\n       *[other] ან ამოარჩიეთ სურათებიდან\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = აღწერილობა (დართული წარწერა)\npdfjs-editor-add-signature-description-input =\n    .title = აღწერილობა (დართული წარწერა)\npdfjs-editor-add-signature-description-default-when-drawing = ხელმოწერა\npdfjs-editor-add-signature-clear-button-label = ხელმოწერის წაშლა\npdfjs-editor-add-signature-clear-button =\n    .title = ხელმოწერის წაშლა\npdfjs-editor-add-signature-save-checkbox = ხელმოწერის შენახვა\npdfjs-editor-add-signature-save-warning-message = მიღწეულია 5 ხელმოწერის შენახვის ზღვარი. მოაცილეთ რომელიმე ახლის შესანახად.\npdfjs-editor-add-signature-image-upload-error-title = ვერ აიტვირთა სურათი\npdfjs-editor-add-signature-image-upload-error-description = შეამოწმეთ ქსელთან კავშირი ან მოსინჯეთ სხვა სურათი.\npdfjs-editor-add-signature-image-no-data-error-title = ვერ გარდაიქმნება ეს სურათი ხელმოწერად\npdfjs-editor-add-signature-image-no-data-error-description = გთხოვთ, სცადოთ სხვა სურათის ატვირთვა.\npdfjs-editor-add-signature-error-close-button = დახურვა\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = გაუქმება\npdfjs-editor-add-signature-add-button = დამატება\npdfjs-editor-edit-signature-update-button = განახლება\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = შენიშვნის ჩასწორება\npdfjs-editor-edit-comment-popup-button =\n    .title = შენიშვნის ჩასწორება\npdfjs-editor-delete-comment-popup-button-label = შენიშვნის მოცილება\npdfjs-editor-delete-comment-popup-button =\n    .title = შენიშვნის მოცილება\npdfjs-show-comment-button =\n    .title = შენიშვნის გამოჩენა\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = მოქმედებები\npdfjs-editor-edit-comment-actions-button =\n    .title = მოქმედებები\npdfjs-editor-edit-comment-close-button-label = დახურვა\npdfjs-editor-edit-comment-close-button =\n    .title = დახურვა\npdfjs-editor-edit-comment-actions-edit-button-label = ჩასწორება\npdfjs-editor-edit-comment-actions-delete-button-label = წაშლა\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = შეიყვანეთ დასართავი შენიშვნა\npdfjs-editor-edit-comment-manager-cancel-button = გაუქმება\npdfjs-editor-edit-comment-manager-save-button = შენახვა\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = შენიშვნის ჩასწორება\npdfjs-editor-edit-comment-dialog-save-button-when-editing = განახლება\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = შენიშვნის დამატება\npdfjs-editor-edit-comment-dialog-save-button-when-adding = დამატება\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = აკრიფეთ…\npdfjs-editor-edit-comment-dialog-cancel-button = გაუქმება\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = შენიშვნის ჩასწორება\npdfjs-editor-add-comment-button =\n    .title = შენიშვნის დამატება\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = შენახული ხელმოწერის მოცილება\npdfjs-editor-delete-signature-button-label1 = შენახული ხელმოწერის მოცილება\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = აღწერილობის ჩასწორება\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = აღწერილობის ჩასწორება\n"
  },
  {
    "path": "viewer/locale/kab/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Asebter azewwar\npdfjs-previous-button-label = Azewwar\npdfjs-next-button =\n    .title = Asebter d-iteddun\npdfjs-next-button-label = Ddu ɣer zdat\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Asebter\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = ɣef { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } n { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Semẓi\npdfjs-zoom-out-button-label = Semẓi\npdfjs-zoom-in-button =\n    .title = Semɣeṛ\npdfjs-zoom-in-button-label = Semɣeṛ\npdfjs-zoom-select =\n    .title = Semɣeṛ/Semẓi\npdfjs-presentation-mode-button =\n    .title = Uɣal ɣer Uskar Tihawt\npdfjs-presentation-mode-button-label = Askar Tihawt\npdfjs-open-file-button =\n    .title = Ldi Afaylu\npdfjs-open-file-button-label = Ldi\npdfjs-print-button =\n    .title = Siggez\npdfjs-print-button-label = Siggez\npdfjs-save-button =\n    .title = Sekles\npdfjs-save-button-label = Sekles\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Sader\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Sader\npdfjs-bookmark-button =\n    .title = Asebter amiran (Sken-d tansa URL seg usebter amiran)\npdfjs-bookmark-button-label = Asebter amiran\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ifecka\npdfjs-tools-button-label = Ifecka\npdfjs-first-page-button =\n    .title = Ddu ɣer usebter amezwaru\npdfjs-first-page-button-label = Ddu ɣer usebter amezwaru\npdfjs-last-page-button =\n    .title = Ddu ɣer usebter aneggaru\npdfjs-last-page-button-label = Ddu ɣer usebter aneggaru\npdfjs-page-rotate-cw-button =\n    .title = Tuzzya tusrigt\npdfjs-page-rotate-cw-button-label = Tuzzya tusrigt\npdfjs-page-rotate-ccw-button =\n    .title = Tuzzya amgal-usrig\npdfjs-page-rotate-ccw-button-label = Tuzzya amgal-usrig\npdfjs-cursor-text-select-tool-button =\n    .title = Rmed afecku n tefrant n uḍris\npdfjs-cursor-text-select-tool-button-label = Afecku n tefrant n uḍris\npdfjs-cursor-hand-tool-button =\n    .title = Rmed afecku afus\npdfjs-cursor-hand-tool-button-label = Afecku afus\npdfjs-scroll-page-button =\n    .title = Seqdec adrurem n usebter\npdfjs-scroll-page-button-label = Adrurem n usebter\npdfjs-scroll-vertical-button =\n    .title = Seqdec adrurem ubdid\npdfjs-scroll-vertical-button-label = Adrurem ubdid\npdfjs-scroll-horizontal-button =\n    .title = Seqdec adrurem aglawan\npdfjs-scroll-horizontal-button-label = Adrurem aglawan\npdfjs-scroll-wrapped-button =\n    .title = Seqdec adrurem yuẓen\npdfjs-scroll-wrapped-button-label = Adrurem yuẓen\npdfjs-spread-none-button =\n    .title = Ur sedday ara isiɣzaf n usebter\npdfjs-spread-none-button-label = Ulac isiɣzaf\npdfjs-spread-odd-button =\n    .title = Seddu isiɣzaf n usebter ibeddun s yisebtar irayuganen\npdfjs-spread-odd-button-label = Isiɣzaf irayuganen\npdfjs-spread-even-button =\n    .title = Seddu isiɣzaf n usebter ibeddun s yisebtar iyuganen\npdfjs-spread-even-button-label = Isiɣzaf iyuganen\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Taɣaṛa n isemli…\npdfjs-document-properties-button-label = Taɣaṛa n isemli…\npdfjs-document-properties-file-name = Isem n ufaylu:\npdfjs-document-properties-file-size = Teɣzi n ufaylu:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } yibiten)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } yibiten)\npdfjs-document-properties-title = Azwel:\npdfjs-document-properties-author = Ameskar:\npdfjs-document-properties-subject = Amgay:\npdfjs-document-properties-keywords = Awalen n tsaruţ\npdfjs-document-properties-creation-date = Azemz n tmerna:\npdfjs-document-properties-modification-date = Azemz n usnifel:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Yerna-t:\npdfjs-document-properties-producer = Afecku n uselket PDF:\npdfjs-document-properties-version = Lqem PDF:\npdfjs-document-properties-page-count = Amḍan n yisebtar:\npdfjs-document-properties-page-size = Tuγzi n usebter:\npdfjs-document-properties-page-size-unit-inches = deg\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = s teɣzi\npdfjs-document-properties-page-size-orientation-landscape = s tehri\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Asekkil\npdfjs-document-properties-page-size-name-legal = Usḍif\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Taskant Web taruradt:\npdfjs-document-properties-linearized-yes = Ih\npdfjs-document-properties-linearized-no = Ala\npdfjs-document-properties-close-button = Mdel\n\n## Print\n\npdfjs-print-progress-message = Aheggi i usiggez n isemli…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Sefsex\npdfjs-printing-not-supported = Ɣuṛ-k: Asiggez ur ittusefrak ara yakan imaṛṛa deg iminig-a.\npdfjs-printing-not-ready = Ɣuṛ-k: Afaylu PDF ur d-yuli ara imeṛṛa akken ad ittusiggez.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Sken/Fer agalis adisan\npdfjs-toggle-sidebar-notification-button =\n    .title = Ffer/Sekn agalis adisan (isemli yegber aɣawas/ticeqqufin yeddan/tissiwin)\npdfjs-toggle-sidebar-button-label = Sken/Fer agalis adisan\npdfjs-document-outline-button =\n    .title = Sken isemli (Senned snat tikal i wesemɣer/Afneẓ n iferdisen meṛṛa)\npdfjs-document-outline-button-label = Isɣalen n isebtar\npdfjs-attachments-button =\n    .title = Sken ticeqqufin yeddan\npdfjs-attachments-button-label = Ticeqqufin yeddan\npdfjs-layers-button =\n    .title = Skeen tissiwin (sit sin yiberdan i uwennez n meṛṛa tissiwin ɣer waddad amezwer)\npdfjs-layers-button-label = Tissiwin\npdfjs-thumbs-button =\n    .title = Sken tanfult.\npdfjs-thumbs-button-label = Tinfulin\npdfjs-current-outline-item-button =\n    .title = Af-d aferdis n uɣawas amiran\npdfjs-current-outline-item-button-label = Aferdis n uɣawas amiran\npdfjs-findbar-button =\n    .title = Nadi deg isemli\npdfjs-findbar-button-label = Nadi\npdfjs-additional-layers = Tissiwin-nniḍen\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Asebter { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Tanfult n usebter { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Nadi\n    .placeholder = Nadi deg isemli…\npdfjs-find-previous-button =\n    .title = Aff-d tamseḍriwt n twinest n deffir\npdfjs-find-previous-button-label = Azewwar\npdfjs-find-next-button =\n    .title = Aff-d timseḍriwt n twinest d-iteddun\npdfjs-find-next-button-label = Ddu ɣer zdat\npdfjs-find-highlight-checkbox = Err izirig imaṛṛa\npdfjs-find-match-case-checkbox-label = Qadeṛ amasal n isekkilen\npdfjs-find-match-diacritics-checkbox-label = Qadeṛ ifeskilen\npdfjs-find-entire-word-checkbox-label = Awalen iččuranen\npdfjs-find-reached-top = Yabbeḍ s afella n usebter, tuɣalin s wadda\npdfjs-find-reached-bottom = Tebḍeḍ s adda n usebter, tuɣalin s afella\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Timeḍriwt { $current } ɣef { $total }\n       *[other] Timeḍriwin { $current } ɣef { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Ugar n { $limit } umṣada\n       *[other] Ugar n { $limit } yimṣadayen\n    }\npdfjs-find-not-found = Ulac tawinest\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Tehri n usebter\npdfjs-page-scale-fit = Asebter imaṛṛa\npdfjs-page-scale-auto = Asemɣeṛ/Asemẓi awurman\npdfjs-page-scale-actual = Teɣzi tilawt\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Asebter { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Teḍra-d tuccḍa deg alluy n PDF:\npdfjs-invalid-file-error = Afaylu PDF arameɣtu neɣ yexṣeṛ.\npdfjs-missing-file-error = Ulac afaylu PDF.\npdfjs-unexpected-response-error = Aqeddac yerra-d yir tiririt ur nettwaṛǧi ara.\npdfjs-rendering-error = Teḍra-d tuccḍa deg uskan n usebter.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Tabzimt { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Sekcem awal uffir akken ad ldiḍ afaylu-yagi PDF\npdfjs-password-invalid = Awal uffir mačči d ameɣtu, Ɛreḍ tikelt-nniḍen.\npdfjs-password-ok-button = IH\npdfjs-password-cancel-button = Sefsex\npdfjs-web-fonts-disabled = Tisefsiyin web ttwassensent; D awezɣi useqdec n tsefsiyin yettwarnan ɣer PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Aḍris\npdfjs-editor-color-picker-free-text-input =\n    .title = Senfel ini n uḍris\npdfjs-editor-free-text-button-label = Aḍris\npdfjs-editor-ink-button =\n    .title = Suneɣ\npdfjs-editor-color-picker-ink-input =\n    .title = Senfel ini n usuneɣ\npdfjs-editor-ink-button-label = Suneɣ\npdfjs-editor-stamp-button =\n    .title = Rnu neɣ ẓreg tugniwin\npdfjs-editor-stamp-button-label = Rnu neɣ ẓreg tugniwin\npdfjs-editor-highlight-button =\n    .title = Derrer\npdfjs-editor-highlight-button-label = Derrer\npdfjs-highlight-floating-button1 =\n    .title = Derrer\n    .aria-label = Derrer\npdfjs-highlight-floating-button-label = Derrer\npdfjs-comment-floating-button =\n    .title = Wennet\n    .aria-label = Wennet\npdfjs-comment-floating-button-label = Awennit\npdfjs-editor-comment-button =\n    .title = Wennet\n    .aria-label = Wennet\npdfjs-editor-comment-button-label = Awennit\npdfjs-editor-signature-button =\n    .title = Rnu azmul\npdfjs-editor-signature-button-label = Rnu azmul\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Amaẓrag usebrureq\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Amaẓrag n usuneɣ\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = usuneɣ n uzmul: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Amaẓrag n tugna\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Kkes asuneɣ\npdfjs-editor-remove-freetext-button =\n    .title = Kkes aḍris\npdfjs-editor-remove-stamp-button =\n    .title = Kkes tugna\npdfjs-editor-remove-highlight-button =\n    .title = Kkes aderrer\npdfjs-editor-remove-signature-button =\n    .title = Kkes azmul\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Initen\npdfjs-editor-free-text-size-input = Teɣzi\npdfjs-editor-ink-color-input = Ini\npdfjs-editor-ink-thickness-input = Tuzert\npdfjs-editor-ink-opacity-input = Tebrek\npdfjs-editor-stamp-add-image-button =\n    .title = Rnu tawlaft\npdfjs-editor-stamp-add-image-button-label = Rnu tawlaft\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tuzert\npdfjs-editor-free-highlight-thickness-title =\n    .title = Beddel tuzert mi ara d-tesbeggneḍ iferdisen niḍen ur nelli d aḍris\npdfjs-editor-add-signature-container =\n    .aria-label = Isenqaden n uzmul d yizmulen yettwaskelsen\npdfjs-editor-signature-add-signature-button =\n    .title = Rnu azmul amaynut\npdfjs-editor-signature-add-signature-button-label = Rnu azmul amaynut\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Yettwasekles uzmul: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Amaẓrag n uḍris\n    .default-content = Bdu tira…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Awennit\n       *[other] Iwenniten\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Mdel agalis adisan\n    .aria-label = Mdel agalis adisan\npdfjs-editor-comments-sidebar-close-button-label = Mdel agalis adisan\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Twalaḍ ayen i ak⋅akem-iɛeǧben? Sebrureq-it, ternuḍ eǧǧ awennit.\npdfjs-editor-comments-sidebar-no-comments-link = Issin ugar\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Aḍris amaskal\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Ẓreg aḍris amaskal\npdfjs-editor-alt-text-dialog-label = Fren taxtirt\npdfjs-editor-alt-text-dialog-description = Aḍris amaskal yettallel mi ara yili imdanen ur ttwalin ara tugna neɣ mi ara yili ur d-tuli ara.\npdfjs-editor-alt-text-add-description-label = Rnu aglam\npdfjs-editor-alt-text-add-description-description = Yettuwelleh tira n tefyirt neɣ n snat ideg ara d-yettwaglem asentel, akatar neɣ tigawin.\npdfjs-editor-alt-text-mark-decorative-label = Creḍ d adlag\npdfjs-editor-alt-text-mark-decorative-description = Taxtiṛt-a tettwaseqdacay i tugniwin n ucebbaḥ, am tamiwin neɣ i tecraḍ tifrawanin.\npdfjs-editor-alt-text-cancel-button = Sefsex\npdfjs-editor-alt-text-save-button = Sekles\npdfjs-editor-alt-text-decorative-tooltip = Yettwacreḍ d adlag\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = D amedya, “Yiwen yilemẓi iqqim ɣer ṭṭabla,ad yečč imekli”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Aḍris amaskal\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Tiɣmert n ufella n zelmeḍ — semsawi teɣzi\npdfjs-editor-resizer-top-middle =\n    .aria-label = Talemmat n ufella — semsawi teɣzi\npdfjs-editor-resizer-top-right =\n    .aria-label = Tiɣmert n ufella n yeffus — semsawi teɣzi\npdfjs-editor-resizer-middle-right =\n    .aria-label = Talemmast tayeffust — semsawi teɣzi\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Tiɣmert n wadda n yeffus — semsawi teɣzi\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Talemmat n wadda — semsawi teɣzi\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Tiɣmert n wadda n zelmeḍ — semsawi teɣzi\npdfjs-editor-resizer-middle-left =\n    .aria-label = Talemmast tazelmdaḍt — semsawi teɣzi\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Ini n uderrer\npdfjs-editor-colorpicker-button =\n    .title = Senfel ini\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Afran n yiniten\npdfjs-editor-colorpicker-yellow =\n    .title = Awraɣ\npdfjs-editor-colorpicker-green =\n    .title = Azegzaw\npdfjs-editor-colorpicker-blue =\n    .title = Amidadi\npdfjs-editor-colorpicker-pink =\n    .title = Axuxi\npdfjs-editor-colorpicker-red =\n    .title = Azggaɣ\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Sken akk\npdfjs-editor-highlight-show-all-button =\n    .title = Sken akk\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Ẓreg aḍris niḍen (aglam n tugna)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Rnu aḍris niḍen (aglam n tugna)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Aru aglam-ik dagi…\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Issin ugar\npdfjs-editor-new-alt-text-create-automatically-button-label = Rnu aḍris niḍen s wudem awurman\npdfjs-editor-new-alt-text-not-now-button = Mačči tura\npdfjs-editor-new-alt-text-error-title = D awezɣi timerna n uḍris niḍen s wudem awurman\npdfjs-editor-new-alt-text-error-description = Ttxil-k⋅m aru aḍris-ik⋅im niḍen neɣ ɛreḍ tikkelt niḍen.\npdfjs-editor-new-alt-text-error-close-button = Mdel\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Asader n tmudemt n IA n uḍris amlellay ({ $downloadedSize } n { $totalSize } MB)\n    .aria-valuetext = Asader n tmudemt n IA n uḍris amlellay ({ $downloadedSize } n { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Yettwarna weḍris amlellay\npdfjs-editor-new-alt-text-added-button-label = Yettwarna weḍris amlellay\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Ixuṣ uḍris amlellay\npdfjs-editor-new-alt-text-missing-button-label = Ixuṣ uḍris amlellay\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Senqed aḍris amlellay\npdfjs-editor-new-alt-text-to-review-button-label = Senqed aḍris amlellay\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Yettwarna s wudem awurman: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Iɣewwaṛen n weḍris amlellay n tugna\npdfjs-image-alt-text-settings-button-label = Iɣewwaṛen n weḍris amlellay n tugna\npdfjs-editor-alt-text-settings-dialog-label = Iɣewwaṛen n weḍris amlellay n tugna\npdfjs-editor-alt-text-settings-automatic-title = Aḍris amlellay awurman\npdfjs-editor-alt-text-settings-create-model-button-label = Rnu aḍris niḍen s wudem awurman\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Tamudemt n IA n uḍris amlellay ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-delete-model-button = Kkes\npdfjs-editor-alt-text-settings-download-model-button = Sader\npdfjs-editor-alt-text-settings-downloading-model-button = Asader…\npdfjs-editor-alt-text-settings-editor-title = Amaẓrag n weḍris amlellay\npdfjs-editor-alt-text-settings-show-dialog-button-label = Sken amaẓrag n uḍris amlellay akken kan ara ternuḍ tugna\npdfjs-editor-alt-text-settings-show-dialog-description = Yettall ad tḍemneḍ tugniwin sɛant aḍris amlellay.\npdfjs-editor-alt-text-settings-close-button = Mdel\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Yettwarna usebrureq\npdfjs-editor-freetext-added-alert = Yettwarna uḍris\npdfjs-editor-ink-added-alert = Yettwarna usuneɣ\npdfjs-editor-stamp-added-alert = Tugna tettwarna\npdfjs-editor-signature-added-alert = Azmul yettwarna\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Yettwakkes usebrureq\npdfjs-editor-undo-bar-message-freetext = Aḍris yettwakkes\npdfjs-editor-undo-bar-message-ink = Asuneɣ yettwakkes\npdfjs-editor-undo-bar-message-stamp = Tugna tettwakkes\npdfjs-editor-undo-bar-message-signature = Azmul yettwakkes\npdfjs-editor-undo-bar-undo-button =\n    .title = Sefsex\npdfjs-editor-undo-bar-undo-button-label = Sefsex\npdfjs-editor-undo-bar-close-button =\n    .title = Mdel\npdfjs-editor-undo-bar-close-button-label = Mdel\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-title = Rnu azmul\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Anaw\n    .title = Anaw\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Suneɣ\n    .title = Suneɣ\npdfjs-editor-add-signature-image-button = Tugna\n    .title = Tugna\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Zru azmul-ik\n    .placeholder = Zru azmul-ik\npdfjs-editor-add-signature-draw-placeholder = Suneɣ azmul-ik\npdfjs-editor-add-signature-draw-thickness-range-label = Tuzert\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tuzert n usuneɣ: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Seḥnucceḍ afaylu da akken ad t-saliṭ\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] neɣ fren ifuyla n tugna\n       *[other] neɣ inig ifuyla n tugna\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Aglam (aḍris amlellay)\npdfjs-editor-add-signature-description-input =\n    .title = Aglam (aḍris amlellay)\npdfjs-editor-add-signature-description-default-when-drawing = Azmul\npdfjs-editor-add-signature-clear-button-label = Sfeḍ azmul\npdfjs-editor-add-signature-clear-button =\n    .title = Sfeḍ azmul\npdfjs-editor-add-signature-save-checkbox = Sekles azmul\npdfjs-editor-add-signature-image-upload-error-title = Ur izmir ara ad yessali tugna\npdfjs-editor-add-signature-image-upload-error-description = Ssefqed tuqqna-inek⋅inem n uẓeṭṭa neɣ ɛreḍ tugna-nniḍen.\npdfjs-editor-add-signature-image-no-data-error-title = D awezɣi aselket n tugna-a ɣer uzmul\npdfjs-editor-add-signature-image-no-data-error-description = Ttxil-k⋅m ɛreḍ ad tzedmeḍ tugna niḍen\npdfjs-editor-add-signature-error-close-button = Mdel\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Semmet\npdfjs-editor-add-signature-add-button = Rnu\npdfjs-editor-edit-signature-update-button = Leqqem\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Ẓreg awennit\npdfjs-editor-edit-comment-popup-button =\n    .title = Ẓreg awennit\npdfjs-editor-delete-comment-popup-button-label = Kkes awennit\npdfjs-editor-delete-comment-popup-button =\n    .title = Kkes awennit\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Tigawin\npdfjs-editor-edit-comment-actions-button =\n    .title = Tigawin\npdfjs-editor-edit-comment-close-button-label = Mdel\npdfjs-editor-edit-comment-close-button =\n    .title = Mdel\npdfjs-editor-edit-comment-actions-edit-button-label = Ẓreg\npdfjs-editor-edit-comment-actions-delete-button-label = Kkes\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Aru awennit-ik⋅im\npdfjs-editor-edit-comment-manager-cancel-button = Sefsex\npdfjs-editor-edit-comment-manager-save-button = Sekles\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Ẓreg awennit\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Rnu awennit\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Bdu tira...\npdfjs-editor-edit-comment-dialog-cancel-button = Sefsex\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Ẓreg awennit\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Kkes azmul yettwakelsen\npdfjs-editor-delete-signature-button-label1 = Kkes azmul yettwakelsen\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Ẓreg aglam\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Ẓreg aglam\n"
  },
  {
    "path": "viewer/locale/kk/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Алдыңғы парақ\npdfjs-previous-button-label = Алдыңғысы\npdfjs-next-button =\n    .title = Келесі парақ\npdfjs-next-button-label = Келесі\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Парақ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ішінен\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = (парақ { $pageNumber }, { $pagesCount } ішінен)\npdfjs-zoom-out-button =\n    .title = Кішірейту\npdfjs-zoom-out-button-label = Кішірейту\npdfjs-zoom-in-button =\n    .title = Үлкейту\npdfjs-zoom-in-button-label = Үлкейту\npdfjs-zoom-select =\n    .title = Масштаб\npdfjs-presentation-mode-button =\n    .title = Презентация режиміне ауысу\npdfjs-presentation-mode-button-label = Презентация режимі\npdfjs-open-file-button =\n    .title = Файлды ашу\npdfjs-open-file-button-label = Ашу\npdfjs-print-button =\n    .title = Баспаға шығару\npdfjs-print-button-label = Баспаға шығару\npdfjs-save-button =\n    .title = Сақтау\npdfjs-save-button-label = Сақтау\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Жүктеп алу\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Жүктеп алу\npdfjs-bookmark-button =\n    .title = Ағымдағы бет (Ағымдағы беттен URL адресін көру)\npdfjs-bookmark-button-label = Ағымдағы бет\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Құралдар\npdfjs-tools-button-label = Құралдар\npdfjs-first-page-button =\n    .title = Алғашқы параққа өту\npdfjs-first-page-button-label = Алғашқы параққа өту\npdfjs-last-page-button =\n    .title = Соңғы параққа өту\npdfjs-last-page-button-label = Соңғы параққа өту\npdfjs-page-rotate-cw-button =\n    .title = Сағат тілі бағытымен айналдыру\npdfjs-page-rotate-cw-button-label = Сағат тілі бағытымен бұру\npdfjs-page-rotate-ccw-button =\n    .title = Сағат тілі бағытына қарсы бұру\npdfjs-page-rotate-ccw-button-label = Сағат тілі бағытына қарсы бұру\npdfjs-cursor-text-select-tool-button =\n    .title = Мәтінді таңдау құралын іске қосу\npdfjs-cursor-text-select-tool-button-label = Мәтінді таңдау құралы\npdfjs-cursor-hand-tool-button =\n    .title = Қол құралын іске қосу\npdfjs-cursor-hand-tool-button-label = Қол құралы\npdfjs-scroll-page-button =\n    .title = Беттерді айналдыруды пайдалану\npdfjs-scroll-page-button-label = Беттерді айналдыру\npdfjs-scroll-vertical-button =\n    .title = Вертикалды айналдыруды қолдану\npdfjs-scroll-vertical-button-label = Вертикалды айналдыру\npdfjs-scroll-horizontal-button =\n    .title = Горизонталды айналдыруды қолдану\npdfjs-scroll-horizontal-button-label = Горизонталды айналдыру\npdfjs-scroll-wrapped-button =\n    .title = Масштабталатын айналдыруды қолдану\npdfjs-scroll-wrapped-button-label = Масштабталатын айналдыру\npdfjs-spread-none-button =\n    .title = Жазық беттер режимін қолданбау\npdfjs-spread-none-button-label = Жазық беттер режимсіз\npdfjs-spread-odd-button =\n    .title = Жазық беттер тақ нөмірлі беттерден басталады\npdfjs-spread-odd-button-label = Тақ нөмірлі беттер сол жақтан\npdfjs-spread-even-button =\n    .title = Жазық беттер жұп нөмірлі беттерден басталады\npdfjs-spread-even-button-label = Жұп нөмірлі беттер сол жақтан\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Құжат қасиеттері…\npdfjs-document-properties-button-label = Құжат қасиеттері…\npdfjs-document-properties-file-name = Файл аты:\npdfjs-document-properties-file-size = Файл өлшемі:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } КБ ({ $b } байт)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байт)\npdfjs-document-properties-title = Тақырыбы:\npdfjs-document-properties-author = Авторы:\npdfjs-document-properties-subject = Тақырыбы:\npdfjs-document-properties-keywords = Кілт сөздер:\npdfjs-document-properties-creation-date = Жасалған күні:\npdfjs-document-properties-modification-date = Түзету күні:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Жасаған:\npdfjs-document-properties-producer = PDF өндірген:\npdfjs-document-properties-version = PDF нұсқасы:\npdfjs-document-properties-page-count = Беттер саны:\npdfjs-document-properties-page-size = Бет өлшемі:\npdfjs-document-properties-page-size-unit-inches = дюйм\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = тік\npdfjs-document-properties-page-size-orientation-landscape = жатық\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Жылдам Web көрінісі:\npdfjs-document-properties-linearized-yes = Иә\npdfjs-document-properties-linearized-no = Жоқ\npdfjs-document-properties-close-button = Жабу\n\n## Print\n\npdfjs-print-progress-message = Құжатты баспаға шығару үшін дайындау…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Бас тарту\npdfjs-printing-not-supported = Ескерту: Баспаға шығаруды бұл браузер толығымен қолдамайды.\npdfjs-printing-not-ready = Ескерту: Баспаға шығару үшін, бұл PDF толығымен жүктеліп алынбады.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Бүйір панелін көрсету/жасыру\npdfjs-toggle-sidebar-notification-button =\n    .title = Бүйір панелін көрсету/жасыру (құжатта құрылымы/салынымдар/қабаттар бар)\npdfjs-toggle-sidebar-button-label = Бүйір панелін көрсету/жасыру\npdfjs-document-outline-button =\n    .title = Құжат құрылымын көрсету (барлық нәрселерді жазық қылу/жинау үшін қос шерту керек)\npdfjs-document-outline-button-label = Құжат құрамасы\npdfjs-attachments-button =\n    .title = Салынымдарды көрсету\npdfjs-attachments-button-label = Салынымдар\npdfjs-layers-button =\n    .title = Қабаттарды көрсету (барлық қабаттарды бастапқы күйге келтіру үшін екі рет шертіңіз)\npdfjs-layers-button-label = Қабаттар\npdfjs-thumbs-button =\n    .title = Кіші көріністерді көрсету\npdfjs-thumbs-button-label = Кіші көріністер\npdfjs-current-outline-item-button =\n    .title = Құрылымның ағымдағы элементін табу\npdfjs-current-outline-item-button-label = Құрылымның ағымдағы элементі\npdfjs-findbar-button =\n    .title = Құжаттан табу\npdfjs-findbar-button-label = Табу\npdfjs-additional-layers = Қосымша қабаттар\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } парағы\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } парағы үшін кіші көрінісі\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Табу\n    .placeholder = Құжаттан табу…\npdfjs-find-previous-button =\n    .title = Осы сөздердің мәтіннен алдыңғы кездесуін табу\npdfjs-find-previous-button-label = Алдыңғысы\npdfjs-find-next-button =\n    .title = Осы сөздердің мәтіннен келесі кездесуін табу\npdfjs-find-next-button-label = Келесі\npdfjs-find-highlight-checkbox = Барлығын түспен ерекшелеу\npdfjs-find-match-case-checkbox-label = Регистрді ескеру\npdfjs-find-match-diacritics-checkbox-label = Диакритиканы ескеру\npdfjs-find-entire-word-checkbox-label = Сөздер толығымен\npdfjs-find-reached-top = Құжаттың басына жеттік, соңынан бастап жалғастырамыз\npdfjs-find-reached-bottom = Құжаттың соңына жеттік, басынан бастап жалғастырамыз\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } сәйкестік, барлығы { $total }\n       *[other] { $current } сәйкестік, барлығы { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] { $limit } сәйкестіктен көп\n       *[other] { $limit } сәйкестіктен көп\n    }\npdfjs-find-not-found = Сөз(дер) табылмады\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Парақ ені\npdfjs-page-scale-fit = Парақты сыйдыру\npdfjs-page-scale-auto = Автомасштабтау\npdfjs-page-scale-actual = Нақты өлшемі\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Бет { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF жүктеу кезінде қате кетті.\npdfjs-invalid-file-error = Зақымдалған немесе қате PDF файл.\npdfjs-missing-file-error = PDF файлы жоқ.\npdfjs-unexpected-response-error = Сервердің күтпеген жауабы.\npdfjs-rendering-error = Парақты өңдеу кезінде қате кетті.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } аңдатпасы]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Бұл PDF файлын ашу үшін парольді енгізіңіз.\npdfjs-password-invalid = Пароль дұрыс емес. Қайталап көріңіз.\npdfjs-password-ok-button = ОК\npdfjs-password-cancel-button = Бас тарту\npdfjs-web-fonts-disabled = Веб қаріптері сөндірілген: құрамына енгізілген PDF қаріптерін қолдану мүмкін емес.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Мәтін\npdfjs-editor-color-picker-free-text-input =\n    .title = Мәтін түсін өзгерту\npdfjs-editor-free-text-button-label = Мәтін\npdfjs-editor-ink-button =\n    .title = Сурет салу\npdfjs-editor-color-picker-ink-input =\n    .title = Сызба түсін өзгерту\npdfjs-editor-ink-button-label = Сурет салу\npdfjs-editor-stamp-button =\n    .title = Суреттерді қосу немесе түзету\npdfjs-editor-stamp-button-label = Суреттерді қосу немесе түзету\npdfjs-editor-highlight-button =\n    .title = Ерекшелеу\npdfjs-editor-highlight-button-label = Ерекшелеу\npdfjs-highlight-floating-button1 =\n    .title = Ерекшелеу\n    .aria-label = Ерекшелеу\npdfjs-highlight-floating-button-label = Ерекшелеу\npdfjs-comment-floating-button =\n    .title = Түсіндірме\n    .aria-label = Түсіндірме\npdfjs-comment-floating-button-label = Түсіндірме\npdfjs-editor-comment-button =\n    .title = Түсіндірме\n    .aria-label = Түсіндірме\npdfjs-editor-comment-button-label = Түсіндірме\npdfjs-editor-signature-button =\n    .title = Қолтаңбаны қосу\npdfjs-editor-signature-button-label = Қолтаңбаны қосу\n\n## Default editor aria labels\n\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Қолтаңба түзеткіші: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Сурет редакторы\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Сызбаны өшіру\npdfjs-editor-remove-freetext-button =\n    .title = Мәтінді өшіру\npdfjs-editor-remove-stamp-button =\n    .title = Суретті өшіру\npdfjs-editor-remove-highlight-button =\n    .title = Түспен ерекшелеуді өшіру\npdfjs-editor-remove-signature-button =\n    .title = Қолтаңбаны өшіру\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Түс\npdfjs-editor-free-text-size-input = Өлшемі\npdfjs-editor-ink-color-input = Түс\npdfjs-editor-ink-thickness-input = Қалыңдығы\npdfjs-editor-ink-opacity-input = Мөлдірсіздігі\npdfjs-editor-stamp-add-image-button =\n    .title = Суретті қосу\npdfjs-editor-stamp-add-image-button-label = Суретті қосу\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Қалыңдығы\npdfjs-editor-free-highlight-thickness-title =\n    .title = Мәтіннен басқа элементтерді ерекшелеу кезінде қалыңдықты өзгерту\npdfjs-editor-add-signature-container =\n    .aria-label = Қолтаңбаларды басқару және сақталған қолтаңбалар\npdfjs-editor-signature-add-signature-button =\n    .title = Жаңа қолтаңбаны қосу\npdfjs-editor-signature-add-signature-button-label = Жаңа қолтаңбаны қосу\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Сақталған қолтаңба: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Мәтін түзеткіші\n    .default-content = Теріп бастаңыз…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Түсіндірмелер\n       *[other] Түсіндірмелер\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Бүйір панелін жабу\n    .aria-label = Бүйір панелін жабу\npdfjs-editor-comments-sidebar-close-button-label = Бүйір панелін жабу\npdfjs-editor-comments-sidebar-no-comments-link = Көбірек білу\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Балама мәтін\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Балама мәтінді өңдеу\npdfjs-editor-alt-text-dialog-label = Опцияны таңдау\npdfjs-editor-alt-text-dialog-description = Балама мәтін адамдар суретті көре алмағанда немесе ол жүктелмегенде көмектеседі.\npdfjs-editor-alt-text-add-description-label = Сипаттаманы қосу\npdfjs-editor-alt-text-add-description-description = Тақырыпты, баптауды немесе әрекетті сипаттайтын 1-2 сөйлемді қолдануға тырысыңыз.\npdfjs-editor-alt-text-mark-decorative-label = Декоративті деп белгілеу\npdfjs-editor-alt-text-mark-decorative-description = Бұл жиектер немесе су белгілері сияқты оюлық суреттер үшін пайдаланылады.\npdfjs-editor-alt-text-cancel-button = Бас тарту\npdfjs-editor-alt-text-save-button = Сақтау\npdfjs-editor-alt-text-decorative-tooltip = Декоративті деп белгіленген\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Мысалы, \"Жас жігіт тамақ ішу үшін үстел басына отырады\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Балама мәтін\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Жоғарғы сол жақ бұрыш — өлшемін өзгерту\npdfjs-editor-resizer-top-middle =\n    .aria-label = Жоғарғы ортасы — өлшемін өзгерту\npdfjs-editor-resizer-top-right =\n    .aria-label = Жоғарғы оң жақ бұрыш — өлшемін өзгерту\npdfjs-editor-resizer-middle-right =\n    .aria-label = Ортаңғы оң жақ — өлшемін өзгерту\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Төменгі оң жақ бұрыш — өлшемін өзгерту\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Төменгі ортасы — өлшемін өзгерту\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Төменгі сол жақ бұрыш — өлшемін өзгерту\npdfjs-editor-resizer-middle-left =\n    .aria-label = Ортаңғы сол жақ — өлшемін өзгерту\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Ерекшелеу түсі\npdfjs-editor-colorpicker-button =\n    .title = Түсті өзгерту\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Түс таңдаулары\npdfjs-editor-colorpicker-yellow =\n    .title = Сары\npdfjs-editor-colorpicker-green =\n    .title = Жасыл\npdfjs-editor-colorpicker-blue =\n    .title = Көк\npdfjs-editor-colorpicker-pink =\n    .title = Қызғылт\npdfjs-editor-colorpicker-red =\n    .title = Қызыл\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Барлығын көрсету\npdfjs-editor-highlight-show-all-button =\n    .title = Барлығын көрсету\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Балама мәтінді өңдеу (сурет сипаттамасы)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Балама мәтінді қосу (сурет сипаттамасы)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Сипаттамаңызды осында жазыңыз…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Суретті көре алмайтын адамдар үшін немесе сурет жүктелмеген кезіне арналған қысқаша сипаттама.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Бұл балама мәтін автоматты түрде жасалды және дәлсіз болуы мүмкін.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Көбірек білу\npdfjs-editor-new-alt-text-create-automatically-button-label = Балама мәтінді автоматты түрде жасау\npdfjs-editor-new-alt-text-not-now-button = Қазір емес\npdfjs-editor-new-alt-text-error-title = Балама мәтінді автоматты түрде жасау мүмкін болмады\npdfjs-editor-new-alt-text-error-description = Өзіңіздің балама мәтініңізді жазыңыз немесе кейінірек қайталап көріңіз.\npdfjs-editor-new-alt-text-error-close-button = Жабу\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Балама мәтін үшін ЖИ моделі жүктеп алынуда ({ $downloadedSize }/{ $totalSize } МБ)\n    .aria-valuetext = Балама мәтін үшін ЖИ моделі жүктеп алынуда ({ $downloadedSize }/{ $totalSize } МБ)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Балама мәтін қосылды\npdfjs-editor-new-alt-text-added-button-label = Балама мәтін қосылды\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Балама мәтін жоқ\npdfjs-editor-new-alt-text-missing-button-label = Балама мәтін жоқ\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Балама мәтінге пікір қалдыру\npdfjs-editor-new-alt-text-to-review-button-label = Балама мәтінге пікір қалдыру\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Автоматты түрде жасалды: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Суреттің балама мәтінінің баптаулары\npdfjs-image-alt-text-settings-button-label = Суреттің балама мәтінінің баптаулары\npdfjs-editor-alt-text-settings-dialog-label = Суреттің балама мәтінінің баптаулары\npdfjs-editor-alt-text-settings-automatic-title = Автоматты балама мәтін\npdfjs-editor-alt-text-settings-create-model-button-label = Балама мәтінді автоматты түрде жасау\npdfjs-editor-alt-text-settings-create-model-description = Суретті көре алмайтын адамдар үшін немесе сурет жүктелмеген кезіне арналған сипаттамаларды ұсынады.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Баламалы мәтіннің ЖИ моделі ({ $totalSize } МБ)\npdfjs-editor-alt-text-settings-ai-model-description = Деректеріңіз жеке болып қалуы үшін құрылғыңызда жергілікті түрде жұмыс істейді. Автоматты балама мәтін үшін қажет.\npdfjs-editor-alt-text-settings-delete-model-button = Өшіру\npdfjs-editor-alt-text-settings-download-model-button = Жүктеп алу\npdfjs-editor-alt-text-settings-downloading-model-button = Жүктеліп алынуда…\npdfjs-editor-alt-text-settings-editor-title = Баламалы мәтін редакторы\npdfjs-editor-alt-text-settings-show-dialog-button-label = Суретті қосқанда балама мәтін редакторын бірден көрсету\npdfjs-editor-alt-text-settings-show-dialog-description = Барлық суреттерде балама мәтін бар екеніне көз жеткізуге көмектеседі.\npdfjs-editor-alt-text-settings-close-button = Жабу\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-freetext-added-alert = Мәтін қосылды\npdfjs-editor-ink-added-alert = Сызба қосылды\npdfjs-editor-stamp-added-alert = Сурет қосылды\npdfjs-editor-signature-added-alert = Қолтаңба қосылды\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Ерекшелеу өшірілді\npdfjs-editor-undo-bar-message-freetext = Мәтін өшірілді\npdfjs-editor-undo-bar-message-ink = Сызба өшірілді\npdfjs-editor-undo-bar-message-stamp = Сурет өшірілді\npdfjs-editor-undo-bar-message-signature = Қолтаңба өшірілді\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } анимация өшірілді\n       *[other] { $count } анимация өшірілді\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Болдырмау\npdfjs-editor-undo-bar-undo-button-label = Болдырмау\npdfjs-editor-undo-bar-close-button =\n    .title = Жабу\npdfjs-editor-undo-bar-close-button-label = Жабу\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Бұл модальді терезе пайдаланушыға PDF құжатына қосу үшін қолтаңба жасауға мүмкіндік береді. Пайдаланушы өз атын (ол балама мәтін ретінде де қолданылады) өңдей алады және қолтаңбаны кейін қайта пайдалану үшін сақтай алады.\npdfjs-editor-add-signature-dialog-title = Қолтаңба қосу\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Енгізу\n    .title = Енгізу\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Сурет салу\n    .title = Сурет салу\npdfjs-editor-add-signature-image-button = Сурет\n    .title = Сурет\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Қолтаңбаңызды теріңіз\n    .placeholder = Қолтаңбаңызды теріңіз\npdfjs-editor-add-signature-draw-placeholder = Қолтаңбаңызды сызыңыз\npdfjs-editor-add-signature-draw-thickness-range-label = Қалыңдығы\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Сызба қалыңздығы: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Жүктеп жіберу үшін файлды осы жерге сүйреңіз\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Немесе сурет файлдарын таңдаңыз\n       *[other] Немесе сурет файлдарын шолыңыз\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Сипаттама (балама мәтін)\npdfjs-editor-add-signature-description-input =\n    .title = Сипаттама (балама мәтін)\npdfjs-editor-add-signature-description-default-when-drawing = Қолтаңба\npdfjs-editor-add-signature-clear-button-label = Қолтаңбаны өшіру\npdfjs-editor-add-signature-clear-button =\n    .title = Қолтаңбаны өшіру\npdfjs-editor-add-signature-save-checkbox = Қолтаңбаны сақтау\npdfjs-editor-add-signature-save-warning-message = Сақталған 5 қолтаңбаның шегіне жеттіңіз. Көбірек сақтау үшін біреуін алып тастаңыз.\npdfjs-editor-add-signature-image-upload-error-title = Суретті жүктеп жіберу мүмкін емес.\npdfjs-editor-add-signature-image-upload-error-description = Желі байланысын тексеріңіз немесе басқа бейнені қолданып көріңіз.\npdfjs-editor-add-signature-error-close-button = Жабу\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Бас тарту\npdfjs-editor-add-signature-add-button = Қосу\npdfjs-editor-edit-signature-update-button = Жаңарту\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Әрекеттер\npdfjs-editor-edit-comment-actions-button =\n    .title = Әрекеттер\npdfjs-editor-edit-comment-close-button-label = Жабу\npdfjs-editor-edit-comment-close-button =\n    .title = Жабу\npdfjs-editor-edit-comment-actions-edit-button-label = Түзету\npdfjs-editor-edit-comment-actions-delete-button-label = Өшіру\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Пікіріңізді енгізіңіз\npdfjs-editor-edit-comment-manager-cancel-button = Бас тарту\npdfjs-editor-edit-comment-manager-save-button = Сақтау\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Жаңарту\npdfjs-editor-edit-comment-dialog-cancel-button = Бас тарту\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Пікірді түзету\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Сақталған қолтаңбаны өшіру\npdfjs-editor-delete-signature-button-label1 = Сақталған қолтаңбаны өшіру\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Сипаттаманы түзету\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Сипаттаманы түзету\n"
  },
  {
    "path": "viewer/locale/km/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = ទំព័រ​មុន\npdfjs-previous-button-label = មុន\npdfjs-next-button =\n    .title = ទំព័រ​បន្ទាប់\npdfjs-next-button-label = បន្ទាប់\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ទំព័រ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = នៃ { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } នៃ { $pagesCount })\npdfjs-zoom-out-button =\n    .title = ​បង្រួម\npdfjs-zoom-out-button-label = ​បង្រួម\npdfjs-zoom-in-button =\n    .title = ​ពង្រីក\npdfjs-zoom-in-button-label = ​ពង្រីក\npdfjs-zoom-select =\n    .title = ពង្រីក\npdfjs-presentation-mode-button =\n    .title = ប្ដូរ​ទៅ​របៀប​បទ​បង្ហាញ\npdfjs-presentation-mode-button-label = របៀប​បទ​បង្ហាញ\npdfjs-open-file-button =\n    .title = បើក​ឯកសារ\npdfjs-open-file-button-label = បើក\npdfjs-print-button =\n    .title = បោះពុម្ព\npdfjs-print-button-label = បោះពុម្ព\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ឧបករណ៍\npdfjs-tools-button-label = ឧបករណ៍\npdfjs-first-page-button =\n    .title = ទៅកាន់​ទំព័រ​ដំបូង​\npdfjs-first-page-button-label = ទៅកាន់​ទំព័រ​ដំបូង​\npdfjs-last-page-button =\n    .title = ទៅកាន់​ទំព័រ​ចុងក្រោយ​\npdfjs-last-page-button-label = ទៅកាន់​ទំព័រ​ចុងក្រោយ\npdfjs-page-rotate-cw-button =\n    .title = បង្វិល​ស្រប​ទ្រនិច​នាឡិកា\npdfjs-page-rotate-cw-button-label = បង្វិល​ស្រប​ទ្រនិច​នាឡិកា\npdfjs-page-rotate-ccw-button =\n    .title = បង្វិល​ច្រាស​ទ្រនិច​នាឡិកា​​\npdfjs-page-rotate-ccw-button-label = បង្វិល​ច្រាស​ទ្រនិច​នាឡិកា​​\npdfjs-cursor-text-select-tool-button =\n    .title = បើក​ឧបករណ៍​ជ្រើស​អត្ថបទ\npdfjs-cursor-text-select-tool-button-label = ឧបករណ៍​ជ្រើស​អត្ថបទ\npdfjs-cursor-hand-tool-button =\n    .title = បើក​ឧបករណ៍​ដៃ\npdfjs-cursor-hand-tool-button-label = ឧបករណ៍​ដៃ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = លក្ខណ​សម្បត្តិ​ឯកសារ…\npdfjs-document-properties-button-label = លក្ខណ​សម្បត្តិ​ឯកសារ…\npdfjs-document-properties-file-name = ឈ្មោះ​ឯកសារ៖\npdfjs-document-properties-file-size = ទំហំ​ឯកសារ៖\npdfjs-document-properties-title = ចំណងជើង៖\npdfjs-document-properties-author = អ្នក​និពន្ធ៖\npdfjs-document-properties-subject = ប្រធានបទ៖\npdfjs-document-properties-keywords = ពាក្យ​គន្លឹះ៖\npdfjs-document-properties-creation-date = កាលបរិច្ឆេទ​បង្កើត៖\npdfjs-document-properties-modification-date = កាលបរិច្ឆេទ​កែប្រែ៖\npdfjs-document-properties-creator = អ្នក​បង្កើត៖\npdfjs-document-properties-producer = កម្មវិធី​បង្កើត PDF ៖\npdfjs-document-properties-version = កំណែ PDF ៖\npdfjs-document-properties-page-count = ចំនួន​ទំព័រ៖\npdfjs-document-properties-page-size-unit-inches = អ៊ីញ\npdfjs-document-properties-page-size-unit-millimeters = មម\npdfjs-document-properties-page-size-orientation-portrait = បញ្ឈរ\npdfjs-document-properties-page-size-orientation-landscape = ផ្តេក\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = សំបុត្រ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = បាទ/ចាស\npdfjs-document-properties-linearized-no = ទេ\npdfjs-document-properties-close-button = បិទ\n\n## Print\n\npdfjs-print-progress-message = កំពុង​រៀបចំ​ឯកសារ​សម្រាប់​បោះពុម្ព…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = បោះបង់\npdfjs-printing-not-supported = ការ​ព្រមាន ៖ កា​រ​បោះពុម្ព​មិន​ត្រូវ​បាន​គាំទ្រ​ពេញលេញ​ដោយ​កម្មវិធី​រុករក​នេះ​ទេ ។\npdfjs-printing-not-ready = ព្រមាន៖ PDF មិន​ត្រូវ​បាន​ផ្ទុក​ទាំងស្រុង​ដើម្បី​បោះពុម្ព​ទេ។\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = បិទ/បើក​គ្រាប់​រំកិល\npdfjs-toggle-sidebar-button-label = បិទ/បើក​គ្រាប់​រំកិល\npdfjs-document-outline-button =\n    .title = បង្ហាញ​គ្រោង​ឯកសារ (ចុច​ទ្វេ​ដង​ដើម្បី​ពង្រីក/បង្រួម​ធាតុ​ទាំងអស់)\npdfjs-document-outline-button-label = គ្រោង​ឯកសារ\npdfjs-attachments-button =\n    .title = បង្ហាញ​ឯកសារ​ភ្ជាប់\npdfjs-attachments-button-label = ឯកសារ​ភ្ជាប់\npdfjs-thumbs-button =\n    .title = បង្ហាញ​រូបភាព​តូចៗ\npdfjs-thumbs-button-label = រួបភាព​តូចៗ\npdfjs-findbar-button =\n    .title = រក​នៅ​ក្នុង​ឯកសារ\npdfjs-findbar-button-label = រក\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = ទំព័រ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = រូបភាព​តូច​របស់​ទំព័រ { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = រក\n    .placeholder = រក​នៅ​ក្នុង​ឯកសារ...\npdfjs-find-previous-button =\n    .title = រក​ពាក្យ ឬ​ឃ្លា​ដែល​បាន​ជួប​មុន\npdfjs-find-previous-button-label = មុន\npdfjs-find-next-button =\n    .title = រក​ពាក្យ ឬ​ឃ្លា​ដែល​បាន​ជួប​បន្ទាប់\npdfjs-find-next-button-label = បន្ទាប់\npdfjs-find-highlight-checkbox = បន្លិច​ទាំងអស់\npdfjs-find-match-case-checkbox-label = ករណី​ដំណូច\npdfjs-find-reached-top = បាន​បន្ត​ពី​ខាង​ក្រោម ទៅ​ដល់​ខាង​​លើ​នៃ​ឯកសារ\npdfjs-find-reached-bottom = បាន​បន្ត​ពី​ខាងលើ ទៅដល់​ចុង​​នៃ​ឯកសារ\npdfjs-find-not-found = រក​មិន​ឃើញ​ពាក្យ ឬ​ឃ្លា\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ទទឹង​ទំព័រ\npdfjs-page-scale-fit = សម​ទំព័រ\npdfjs-page-scale-auto = ពង្រីក​ស្វ័យប្រវត្តិ\npdfjs-page-scale-actual = ទំហំ​ជាក់ស្ដែង\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = មាន​កំហុស​បាន​កើតឡើង​ពេល​កំពុង​ផ្ទុក PDF ។\npdfjs-invalid-file-error = ឯកសារ PDF ខូច ឬ​មិន​ត្រឹមត្រូវ ។\npdfjs-missing-file-error = បាត់​ឯកសារ PDF\npdfjs-unexpected-response-error = ការ​ឆ្លើយ​តម​ម៉ាស៊ីន​មេ​ដែល​មិន​បាន​រំពឹង។\npdfjs-rendering-error = មាន​កំហុស​បាន​កើតឡើង​ពេល​បង្ហាញ​ទំព័រ ។\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ចំណារ​ពន្យល់]\n\n## Password\n\npdfjs-password-label = បញ្ចូល​ពាក្យសម្ងាត់​ដើម្បី​បើក​ឯកសារ PDF នេះ។\npdfjs-password-invalid = ពាក្យសម្ងាត់​មិន​ត្រឹមត្រូវ។ សូម​ព្យាយាម​ម្ដងទៀត។\npdfjs-password-ok-button = យល់​ព្រម\npdfjs-password-cancel-button = បោះបង់\npdfjs-web-fonts-disabled = បាន​បិទ​ពុម្ពអក្សរ​បណ្ដាញ ៖ មិន​អាច​ប្រើ​ពុម្ពអក្សរ PDF ដែល​បាន​បង្កប់​បាន​ទេ ។\n"
  },
  {
    "path": "viewer/locale/kn/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = ಹಿಂದಿನ ಪುಟ\npdfjs-previous-button-label = ಹಿಂದಿನ\npdfjs-next-button =\n    .title = ಮುಂದಿನ ಪುಟ\npdfjs-next-button-label = ಮುಂದಿನ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ಪುಟ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ರಲ್ಲಿ\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } ರಲ್ಲಿ { $pageNumber })\npdfjs-zoom-out-button =\n    .title = ಕಿರಿದಾಗಿಸು\npdfjs-zoom-out-button-label = ಕಿರಿದಾಗಿಸಿ\npdfjs-zoom-in-button =\n    .title = ಹಿರಿದಾಗಿಸು\npdfjs-zoom-in-button-label = ಹಿರಿದಾಗಿಸಿ\npdfjs-zoom-select =\n    .title = ಗಾತ್ರಬದಲಿಸು\npdfjs-presentation-mode-button =\n    .title = ಪ್ರಸ್ತುತಿ (ಪ್ರಸೆಂಟೇಶನ್) ಕ್ರಮಕ್ಕೆ ಬದಲಾಯಿಸು\npdfjs-presentation-mode-button-label = ಪ್ರಸ್ತುತಿ (ಪ್ರಸೆಂಟೇಶನ್) ಕ್ರಮ\npdfjs-open-file-button =\n    .title = ಕಡತವನ್ನು ತೆರೆ\npdfjs-open-file-button-label = ತೆರೆಯಿರಿ\npdfjs-print-button =\n    .title = ಮುದ್ರಿಸು\npdfjs-print-button-label = ಮುದ್ರಿಸಿ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ಉಪಕರಣಗಳು\npdfjs-tools-button-label = ಉಪಕರಣಗಳು\npdfjs-first-page-button =\n    .title = ಮೊದಲ ಪುಟಕ್ಕೆ ತೆರಳು\npdfjs-first-page-button-label = ಮೊದಲ ಪುಟಕ್ಕೆ ತೆರಳು\npdfjs-last-page-button =\n    .title = ಕೊನೆಯ ಪುಟಕ್ಕೆ ತೆರಳು\npdfjs-last-page-button-label = ಕೊನೆಯ ಪುಟಕ್ಕೆ ತೆರಳು\npdfjs-page-rotate-cw-button =\n    .title = ಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು\npdfjs-page-rotate-cw-button-label = ಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು\npdfjs-page-rotate-ccw-button =\n    .title = ಅಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು\npdfjs-page-rotate-ccw-button-label = ಅಪ್ರದಕ್ಷಿಣೆಯಲ್ಲಿ ತಿರುಗಿಸು\npdfjs-cursor-text-select-tool-button =\n    .title = ಪಠ್ಯ ಆಯ್ಕೆ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ\npdfjs-cursor-text-select-tool-button-label = ಪಠ್ಯ ಆಯ್ಕೆಯ ಉಪಕರಣ\npdfjs-cursor-hand-tool-button =\n    .title = ಕೈ ಉಪಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ\npdfjs-cursor-hand-tool-button-label = ಕೈ ಉಪಕರಣ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = ಡಾಕ್ಯುಮೆಂಟ್‌ ಗುಣಗಳು...\npdfjs-document-properties-button-label = ಡಾಕ್ಯುಮೆಂಟ್‌ ಗುಣಗಳು...\npdfjs-document-properties-file-name = ಕಡತದ ಹೆಸರು:\npdfjs-document-properties-file-size = ಕಡತದ ಗಾತ್ರ:\npdfjs-document-properties-title = ಶೀರ್ಷಿಕೆ:\npdfjs-document-properties-author = ಕರ್ತೃ:\npdfjs-document-properties-subject = ವಿಷಯ:\npdfjs-document-properties-keywords = ಮುಖ್ಯಪದಗಳು:\npdfjs-document-properties-creation-date = ರಚಿಸಿದ ದಿನಾಂಕ:\npdfjs-document-properties-modification-date = ಮಾರ್ಪಡಿಸಲಾದ ದಿನಾಂಕ:\npdfjs-document-properties-creator = ರಚಿಸಿದವರು:\npdfjs-document-properties-producer = PDF ಉತ್ಪಾದಕ:\npdfjs-document-properties-version = PDF ಆವೃತ್ತಿ:\npdfjs-document-properties-page-count = ಪುಟದ ಎಣಿಕೆ:\npdfjs-document-properties-page-size-unit-inches = ಇದರಲ್ಲಿ\npdfjs-document-properties-page-size-orientation-portrait = ಭಾವಚಿತ್ರ\npdfjs-document-properties-page-size-orientation-landscape = ಪ್ರಕೃತಿ ಚಿತ್ರ\n\n##\n\npdfjs-document-properties-close-button = ಮುಚ್ಚು\n\n## Print\n\npdfjs-print-progress-message = ಮುದ್ರಿಸುವುದಕ್ಕಾಗಿ ದಸ್ತಾವೇಜನ್ನು ಸಿದ್ಧಗೊಳಿಸಲಾಗುತ್ತಿದೆ…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ರದ್ದು ಮಾಡು\npdfjs-printing-not-supported = ಎಚ್ಚರಿಕೆ: ಈ ಜಾಲವೀಕ್ಷಕದಲ್ಲಿ ಮುದ್ರಣಕ್ಕೆ ಸಂಪೂರ್ಣ ಬೆಂಬಲವಿಲ್ಲ.\npdfjs-printing-not-ready = ಎಚ್ಚರಿಕೆ: PDF ಕಡತವು ಮುದ್ರಿಸಲು ಸಂಪೂರ್ಣವಾಗಿ ಲೋಡ್ ಆಗಿಲ್ಲ.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ಬದಿಪಟ್ಟಿಯನ್ನು ಹೊರಳಿಸು\npdfjs-toggle-sidebar-button-label = ಬದಿಪಟ್ಟಿಯನ್ನು ಹೊರಳಿಸು\npdfjs-document-outline-button-label = ದಸ್ತಾವೇಜಿನ ಹೊರರೇಖೆ\npdfjs-attachments-button =\n    .title = ಲಗತ್ತುಗಳನ್ನು ತೋರಿಸು\npdfjs-attachments-button-label = ಲಗತ್ತುಗಳು\npdfjs-thumbs-button =\n    .title = ಚಿಕ್ಕಚಿತ್ರದಂತೆ ತೋರಿಸು\npdfjs-thumbs-button-label = ಚಿಕ್ಕಚಿತ್ರಗಳು\npdfjs-findbar-button =\n    .title = ದಸ್ತಾವೇಜಿನಲ್ಲಿ ಹುಡುಕು\npdfjs-findbar-button-label = ಹುಡುಕು\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = ಪುಟ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = ಪುಟವನ್ನು ಚಿಕ್ಕಚಿತ್ರದಂತೆ ತೋರಿಸು { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ಹುಡುಕು\n    .placeholder = ದಸ್ತಾವೇಜಿನಲ್ಲಿ ಹುಡುಕು…\npdfjs-find-previous-button =\n    .title = ವಾಕ್ಯದ ಹಿಂದಿನ ಇರುವಿಕೆಯನ್ನು ಹುಡುಕು\npdfjs-find-previous-button-label = ಹಿಂದಿನ\npdfjs-find-next-button =\n    .title = ವಾಕ್ಯದ ಮುಂದಿನ ಇರುವಿಕೆಯನ್ನು ಹುಡುಕು\npdfjs-find-next-button-label = ಮುಂದಿನ\npdfjs-find-highlight-checkbox = ಎಲ್ಲವನ್ನು ಹೈಲೈಟ್ ಮಾಡು\npdfjs-find-match-case-checkbox-label = ಕೇಸನ್ನು ಹೊಂದಿಸು\npdfjs-find-reached-top = ದಸ್ತಾವೇಜಿನ ಮೇಲ್ಭಾಗವನ್ನು ತಲುಪಿದೆ, ಕೆಳಗಿನಿಂದ ಆರಂಭಿಸು\npdfjs-find-reached-bottom = ದಸ್ತಾವೇಜಿನ ಕೊನೆಯನ್ನು ತಲುಪಿದೆ, ಮೇಲಿನಿಂದ ಆರಂಭಿಸು\npdfjs-find-not-found = ವಾಕ್ಯವು ಕಂಡು ಬಂದಿಲ್ಲ\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ಪುಟದ ಅಗಲ\npdfjs-page-scale-fit = ಪುಟದ ಸರಿಹೊಂದಿಕೆ\npdfjs-page-scale-auto = ಸ್ವಯಂಚಾಲಿತ ಗಾತ್ರಬದಲಾವಣೆ\npdfjs-page-scale-actual = ನಿಜವಾದ ಗಾತ್ರ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ಅನ್ನು ಲೋಡ್ ಮಾಡುವಾಗ ಒಂದು ದೋಷ ಎದುರಾಗಿದೆ.\npdfjs-invalid-file-error = ಅಮಾನ್ಯವಾದ ಅಥವ ಹಾಳಾದ PDF ಕಡತ.\npdfjs-missing-file-error = PDF ಕಡತ ಇಲ್ಲ.\npdfjs-unexpected-response-error = ಅನಿರೀಕ್ಷಿತವಾದ ಪೂರೈಕೆಗಣಕದ ಪ್ರತಿಕ್ರಿಯೆ.\npdfjs-rendering-error = ಪುಟವನ್ನು ನಿರೂಪಿಸುವಾಗ ಒಂದು ದೋಷ ಎದುರಾಗಿದೆ.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ಟಿಪ್ಪಣಿ]\n\n## Password\n\npdfjs-password-label = PDF ಅನ್ನು ತೆರೆಯಲು ಗುಪ್ತಪದವನ್ನು ನಮೂದಿಸಿ.\npdfjs-password-invalid = ಅಮಾನ್ಯವಾದ ಗುಪ್ತಪದ, ದಯವಿಟ್ಟು ಇನ್ನೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = ರದ್ದು ಮಾಡು\npdfjs-web-fonts-disabled = ಜಾಲ ಅಕ್ಷರಶೈಲಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ: ಅಡಕಗೊಳಿಸಿದ PDF ಅಕ್ಷರಶೈಲಿಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.\n"
  },
  {
    "path": "viewer/locale/ko/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = 이전 페이지\npdfjs-previous-button-label = 이전\npdfjs-next-button =\n    .title = 다음 페이지\npdfjs-next-button-label = 다음\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = 페이지\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = 축소\npdfjs-zoom-out-button-label = 축소\npdfjs-zoom-in-button =\n    .title = 확대\npdfjs-zoom-in-button-label = 확대\npdfjs-zoom-select =\n    .title = 확대/축소\npdfjs-presentation-mode-button =\n    .title = 프레젠테이션 모드로 전환\npdfjs-presentation-mode-button-label = 프레젠테이션 모드\npdfjs-open-file-button =\n    .title = 파일 열기\npdfjs-open-file-button-label = 열기\npdfjs-print-button =\n    .title = 인쇄\npdfjs-print-button-label = 인쇄\npdfjs-save-button =\n    .title = 저장\npdfjs-save-button-label = 저장\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = 다운로드\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = 다운로드\npdfjs-bookmark-button =\n    .title = 현재 페이지 (현재 페이지에서 URL 보기)\npdfjs-bookmark-button-label = 현재 페이지\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = 도구\npdfjs-tools-button-label = 도구\npdfjs-first-page-button =\n    .title = 첫 페이지로 이동\npdfjs-first-page-button-label = 첫 페이지로 이동\npdfjs-last-page-button =\n    .title = 마지막 페이지로 이동\npdfjs-last-page-button-label = 마지막 페이지로 이동\npdfjs-page-rotate-cw-button =\n    .title = 시계방향으로 회전\npdfjs-page-rotate-cw-button-label = 시계방향으로 회전\npdfjs-page-rotate-ccw-button =\n    .title = 시계 반대방향으로 회전\npdfjs-page-rotate-ccw-button-label = 시계 반대방향으로 회전\npdfjs-cursor-text-select-tool-button =\n    .title = 텍스트 선택 도구 활성화\npdfjs-cursor-text-select-tool-button-label = 텍스트 선택 도구\npdfjs-cursor-hand-tool-button =\n    .title = 손 도구 활성화\npdfjs-cursor-hand-tool-button-label = 손 도구\npdfjs-scroll-page-button =\n    .title = 페이지 스크롤 사용\npdfjs-scroll-page-button-label = 페이지 스크롤\npdfjs-scroll-vertical-button =\n    .title = 세로 스크롤 사용\npdfjs-scroll-vertical-button-label = 세로 스크롤\npdfjs-scroll-horizontal-button =\n    .title = 가로 스크롤 사용\npdfjs-scroll-horizontal-button-label = 가로 스크롤\npdfjs-scroll-wrapped-button =\n    .title = 래핑(자동 줄 바꿈) 스크롤 사용\npdfjs-scroll-wrapped-button-label = 래핑 스크롤\npdfjs-spread-none-button =\n    .title = 한 페이지 보기\npdfjs-spread-none-button-label = 펼침 없음\npdfjs-spread-odd-button =\n    .title = 홀수 페이지로 시작하는 두 페이지 보기\npdfjs-spread-odd-button-label = 홀수 펼침\npdfjs-spread-even-button =\n    .title = 짝수 페이지로 시작하는 두 페이지 보기\npdfjs-spread-even-button-label = 짝수 펼침\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = 문서 속성…\npdfjs-document-properties-button-label = 문서 속성…\npdfjs-document-properties-file-name = 파일 이름:\npdfjs-document-properties-file-size = 파일 크기:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } 바이트)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } 바이트)\npdfjs-document-properties-title = 제목:\npdfjs-document-properties-author = 작성자:\npdfjs-document-properties-subject = 주제:\npdfjs-document-properties-keywords = 키워드:\npdfjs-document-properties-creation-date = 작성 날짜:\npdfjs-document-properties-modification-date = 수정 날짜:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = 작성 프로그램:\npdfjs-document-properties-producer = PDF 변환 소프트웨어:\npdfjs-document-properties-version = PDF 버전:\npdfjs-document-properties-page-count = 페이지 수:\npdfjs-document-properties-page-size = 페이지 크기:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = 세로 방향\npdfjs-document-properties-page-size-orientation-landscape = 가로 방향\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = 레터\npdfjs-document-properties-page-size-name-legal = 리걸\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = 빠른 웹 보기:\npdfjs-document-properties-linearized-yes = 예\npdfjs-document-properties-linearized-no = 아니요\npdfjs-document-properties-close-button = 닫기\n\n## Print\n\npdfjs-print-progress-message = 인쇄 문서 준비 중…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = 취소\npdfjs-printing-not-supported = 경고: 이 브라우저는 인쇄를 완전히 지원하지 않습니다.\npdfjs-printing-not-ready = 경고: 이 PDF를 인쇄를 할 수 있을 정도로 읽어들이지 못했습니다.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = 사이드바 표시/숨기기\npdfjs-toggle-sidebar-notification-button =\n    .title = 사이드바 표시/숨기기 (문서에 아웃라인/첨부파일/레이어 포함됨)\npdfjs-toggle-sidebar-button-label = 사이드바 표시/숨기기\npdfjs-document-outline-button =\n    .title = 문서 아웃라인 보기 (더블 클릭해서 모든 항목 펼치기/접기)\npdfjs-document-outline-button-label = 문서 아웃라인\npdfjs-attachments-button =\n    .title = 첨부파일 보기\npdfjs-attachments-button-label = 첨부파일\npdfjs-layers-button =\n    .title = 레이어 보기 (더블 클릭해서 모든 레이어를 기본 상태로 재설정)\npdfjs-layers-button-label = 레이어\npdfjs-thumbs-button =\n    .title = 미리보기\npdfjs-thumbs-button-label = 미리보기\npdfjs-current-outline-item-button =\n    .title = 현재 아웃라인 항목 찾기\npdfjs-current-outline-item-button-label = 현재 아웃라인 항목\npdfjs-findbar-button =\n    .title = 검색\npdfjs-findbar-button-label = 검색\npdfjs-additional-layers = 추가 레이어\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } 페이지\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } 페이지 미리보기\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = 찾기\n    .placeholder = 문서에서 찾기…\npdfjs-find-previous-button =\n    .title = 지정 문자열에 일치하는 1개 부분을 검색\npdfjs-find-previous-button-label = 이전\npdfjs-find-next-button =\n    .title = 지정 문자열에 일치하는 다음 부분을 검색\npdfjs-find-next-button-label = 다음\npdfjs-find-highlight-checkbox = 모두 강조 표시\npdfjs-find-match-case-checkbox-label = 대/소문자 구분\npdfjs-find-match-diacritics-checkbox-label = 분음 부호 일치\npdfjs-find-entire-word-checkbox-label = 단어 단위로\npdfjs-find-reached-top = 문서 처음까지 검색하고 끝으로 돌아와 검색했습니다.\npdfjs-find-reached-bottom = 문서 끝까지 검색하고 앞으로 돌아와 검색했습니다.\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = { $current } / { $total } 일치\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = { $limit }개 이상 일치\npdfjs-find-not-found = 검색 결과 없음\n\n## Predefined zoom values\n\npdfjs-page-scale-width = 페이지 너비에 맞추기\npdfjs-page-scale-fit = 페이지에 맞추기\npdfjs-page-scale-auto = 자동\npdfjs-page-scale-actual = 실제 크기\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page } 페이지\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF를 로드하는 동안 오류가 발생했습니다.\npdfjs-invalid-file-error = 잘못되었거나 손상된 PDF 파일.\npdfjs-missing-file-error = PDF 파일 없음.\npdfjs-unexpected-response-error = 예기치 않은 서버 응답입니다.\npdfjs-rendering-error = 페이지를 렌더링하는 동안 오류가 발생했습니다.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } 주석]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = 이 PDF 파일을 열 수 있는 비밀번호를 입력하세요.\npdfjs-password-invalid = 잘못된 비밀번호입니다. 다시 시도하세요.\npdfjs-password-ok-button = 확인\npdfjs-password-cancel-button = 취소\npdfjs-web-fonts-disabled = 웹 폰트가 비활성화됨: 내장된 PDF 글꼴을 사용할 수 없습니다.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = 텍스트\npdfjs-editor-color-picker-free-text-input =\n    .title = 텍스트 색상 변경\npdfjs-editor-free-text-button-label = 텍스트\npdfjs-editor-ink-button =\n    .title = 그리기\npdfjs-editor-color-picker-ink-input =\n    .title = 그리기 색상 변경\npdfjs-editor-ink-button-label = 그리기\npdfjs-editor-stamp-button =\n    .title = 이미지 추가 또는 편집\npdfjs-editor-stamp-button-label = 이미지 추가 또는 편집\npdfjs-editor-highlight-button =\n    .title = 강조 표시\npdfjs-editor-highlight-button-label = 강조 표시\npdfjs-highlight-floating-button1 =\n    .title = 강조 표시\n    .aria-label = 강조 표시\npdfjs-highlight-floating-button-label = 강조 표시\npdfjs-comment-floating-button =\n    .title = 주석\n    .aria-label = 주석\npdfjs-comment-floating-button-label = 주석\npdfjs-editor-comment-button =\n    .title = 주석\n    .aria-label = 주석\npdfjs-editor-comment-button-label = 주석\npdfjs-editor-signature-button =\n    .title = 서명 추가\npdfjs-editor-signature-button-label = 서명 추가\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = 강조 표시 편집기\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = 그리기 편집기\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = 서명 편집기: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = 이미지 편집기\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = 그리기 제거\npdfjs-editor-remove-freetext-button =\n    .title = 텍스트 제거\npdfjs-editor-remove-stamp-button =\n    .title = 이미지 제거\npdfjs-editor-remove-highlight-button =\n    .title = 강조 표시 제거\npdfjs-editor-remove-signature-button =\n    .title = 서명 제거\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = 색상\npdfjs-editor-free-text-size-input = 크기\npdfjs-editor-ink-color-input = 색상\npdfjs-editor-ink-thickness-input = 두께\npdfjs-editor-ink-opacity-input = 불투명도\npdfjs-editor-stamp-add-image-button =\n    .title = 이미지 추가\npdfjs-editor-stamp-add-image-button-label = 이미지 추가\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = 두께\npdfjs-editor-free-highlight-thickness-title =\n    .title = 텍스트 이외의 항목을 강조 표시할 때 두께 변경\npdfjs-editor-add-signature-container =\n    .aria-label = 서명 제어 및 저장된 서명\npdfjs-editor-signature-add-signature-button =\n    .title = 새 서명 추가\npdfjs-editor-signature-add-signature-button-label = 새 서명 추가\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = 저장된 서명: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = 텍스트 편집기\n    .default-content = 입력하세요…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = 주석\npdfjs-editor-comments-sidebar-close-button =\n    .title = 사이드바 닫기\n    .aria-label = 사이드바 닫기\npdfjs-editor-comments-sidebar-close-button-label = 사이드바 닫기\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = 눈에 띄는 내용이 있나요? 해당 부분을 강조 표시하고 주석을 남겨주세요.\npdfjs-editor-comments-sidebar-no-comments-link = 더 알아보기\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = 대체 텍스트\npdfjs-editor-alt-text-edit-button =\n    .aria-label = 대체 텍스트 편집\npdfjs-editor-alt-text-dialog-label = 옵션을 선택하세요\npdfjs-editor-alt-text-dialog-description = 대체 텍스트는 사람들이 이미지를 볼 수 없거나 이미지가 로드되지 않을 때 도움이 됩니다.\npdfjs-editor-alt-text-add-description-label = 설명 추가\npdfjs-editor-alt-text-add-description-description = 주제, 설정, 동작을 설명하는 1~2개의 문장을 목표로 하세요.\npdfjs-editor-alt-text-mark-decorative-label = 장식용으로 표시\npdfjs-editor-alt-text-mark-decorative-description = 테두리나 워터마크와 같은 장식적인 이미지에 사용됩니다.\npdfjs-editor-alt-text-cancel-button = 취소\npdfjs-editor-alt-text-save-button = 저장\npdfjs-editor-alt-text-decorative-tooltip = 장식용으로 표시됨\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = 예를 들어, “한 청년이 식탁에 앉아 식사를 하고 있습니다.”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = 대체 텍스트\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = 왼쪽 위 — 크기 조정\npdfjs-editor-resizer-top-middle =\n    .aria-label = 가운데 위 - 크기 조정\npdfjs-editor-resizer-top-right =\n    .aria-label = 오른쪽 위 — 크기 조정\npdfjs-editor-resizer-middle-right =\n    .aria-label = 오른쪽 가운데 — 크기 조정\npdfjs-editor-resizer-bottom-right =\n    .aria-label = 오른쪽 아래 - 크기 조정\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = 가운데 아래 — 크기 조정\npdfjs-editor-resizer-bottom-left =\n    .aria-label = 왼쪽 아래 - 크기 조정\npdfjs-editor-resizer-middle-left =\n    .aria-label = 왼쪽 가운데 — 크기 조정\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = 색상\npdfjs-editor-colorpicker-button =\n    .title = 색상 변경\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = 색상 선택\npdfjs-editor-colorpicker-yellow =\n    .title = 노란색\npdfjs-editor-colorpicker-green =\n    .title = 녹색\npdfjs-editor-colorpicker-blue =\n    .title = 파란색\npdfjs-editor-colorpicker-pink =\n    .title = 분홍색\npdfjs-editor-colorpicker-red =\n    .title = 빨간색\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = 모두 보기\npdfjs-editor-highlight-show-all-button =\n    .title = 모두 보기\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = 대체 텍스트 (이미지 설명) 편집\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = 대체 텍스트 (이미지 설명) 추가\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = 여기에 설명을 작성하세요…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = 이미지가 보이지 않거나 이미지가 로딩되지 않는 경우를 위한 간단한 설명입니다.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = 이 대체 텍스트는 자동으로 생성되었으므로 정확하지 않을 수 있습니다.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = 더 알아보기\npdfjs-editor-new-alt-text-create-automatically-button-label = 자동으로 대체 텍스트 생성\npdfjs-editor-new-alt-text-not-now-button = 나중에\npdfjs-editor-new-alt-text-error-title = 대체 텍스트를 자동으로 생성할 수 없습니다.\npdfjs-editor-new-alt-text-error-description = 대체 텍스트를 직접 작성하거나 나중에 다시 시도하세요.\npdfjs-editor-new-alt-text-error-close-button = 닫기\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = 대체 텍스트 AI 모델 다운로드 중 ({ $downloadedSize } / { $totalSize } MB)\n    .aria-valuetext = 대체 텍스트 AI 모델 다운로드 중 ({ $downloadedSize } / { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = 대체 텍스트 추가됨\npdfjs-editor-new-alt-text-added-button-label = 대체 텍스트 추가됨\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = 대체 텍스트 누락\npdfjs-editor-new-alt-text-missing-button-label = 대체 텍스트 누락\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = 대체 텍스트 검토\npdfjs-editor-new-alt-text-to-review-button-label = 대체 텍스트 검토\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = 자동으로 생성됨: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = 이미지 대체 텍스트 설정\npdfjs-image-alt-text-settings-button-label = 이미지 대체 텍스트 설정\npdfjs-editor-alt-text-settings-dialog-label = 이미지 대체 텍스트 설정\npdfjs-editor-alt-text-settings-automatic-title = 자동 대체 텍스트\npdfjs-editor-alt-text-settings-create-model-button-label = 자동으로 대체 텍스트 생성\npdfjs-editor-alt-text-settings-create-model-description = 이미지가 보이지 않거나 이미지가 로딩되지 않을 때 도움이 되는 설명을 제안합니다.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = 대체 텍스트 AI 모델 ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = 사용자의 장치에서 로컬로 실행되므로 데이터가 비공개로 유지됩니다. 자동 대체 텍스트에 필요합니다.\npdfjs-editor-alt-text-settings-delete-model-button = 삭제\npdfjs-editor-alt-text-settings-download-model-button = 다운로드\npdfjs-editor-alt-text-settings-downloading-model-button = 다운로드 중…\npdfjs-editor-alt-text-settings-editor-title = 대체 텍스트 편집기\npdfjs-editor-alt-text-settings-show-dialog-button-label = 이미지 추가 시 바로 대체 텍스트 편집기 표시\npdfjs-editor-alt-text-settings-show-dialog-description = 모든 이미지에 대체 텍스트가 있는지 확인하는 데 도움이 됩니다.\npdfjs-editor-alt-text-settings-close-button = 닫기\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = 강조 표시 추가됨\npdfjs-editor-freetext-added-alert = 텍스트 추가됨\npdfjs-editor-ink-added-alert = 그리기 추가됨\npdfjs-editor-stamp-added-alert = 이미지 추가됨\npdfjs-editor-signature-added-alert = 서명 추가됨\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = 강조 표시 제거됨\npdfjs-editor-undo-bar-message-freetext = 텍스트 제거됨\npdfjs-editor-undo-bar-message-ink = 그리기 제거됨\npdfjs-editor-undo-bar-message-stamp = 이미지 제거됨\npdfjs-editor-undo-bar-message-signature = 서명 제거됨\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = 주석 { $count }개 제거됨\npdfjs-editor-undo-bar-undo-button =\n    .title = 실행 취소\npdfjs-editor-undo-bar-undo-button-label = 실행 취소\npdfjs-editor-undo-bar-close-button =\n    .title = 닫기\npdfjs-editor-undo-bar-close-button-label = 닫기\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = 이 모달로 PDF 문서에 추가 할 서명을 만들 수 있습니다. 사용자는 이름(대체 텍스트 역할도 함)을 편집하고, 반복해 사용할 수 있도록 서명을 저장할 수도 있습니다.\npdfjs-editor-add-signature-dialog-title = 서명 추가\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = 입력\n    .title = 입력\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = 그리기\n    .title = 그리기\npdfjs-editor-add-signature-image-button = 이미지\n    .title = 이미지\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = 서명 입력\n    .placeholder = 서명 입력\npdfjs-editor-add-signature-draw-placeholder = 서명 그리기\npdfjs-editor-add-signature-draw-thickness-range-label = 두께\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = 그리기 두께: { $thickness }\npdfjs-editor-add-signature-image-placeholder = 이미지 파일을 여기에 끌어서 놓으세요\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] 또는 이미지 파일 찾아보기\n       *[other] 또는 이미지 파일 찾아보기\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = 설명 (대체 텍스트)\npdfjs-editor-add-signature-description-input =\n    .title = 설명 (대체 텍스트)\npdfjs-editor-add-signature-description-default-when-drawing = 서명\npdfjs-editor-add-signature-clear-button-label = 서명 지우기\npdfjs-editor-add-signature-clear-button =\n    .title = 서명 지우기\npdfjs-editor-add-signature-save-checkbox = 서명 저장\npdfjs-editor-add-signature-save-warning-message = 저장된 서명의 한계에 도달했습니다. 더 저장하려면 하나를 제거하세요.\npdfjs-editor-add-signature-image-upload-error-title = 이미지를 업로드할 수 없음\npdfjs-editor-add-signature-image-upload-error-description = 네트워크 연결을 확인하거나 다른 이미지로 시도하세요.\npdfjs-editor-add-signature-image-no-data-error-title = 이 이미지를 서명으로 변환할 수 없음\npdfjs-editor-add-signature-image-no-data-error-description = 다른 이미지를 업로드 해 주세요.\npdfjs-editor-add-signature-error-close-button = 닫기\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = 취소\npdfjs-editor-add-signature-add-button = 추가\npdfjs-editor-edit-signature-update-button = 업데이트\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = 주석 편집\npdfjs-editor-edit-comment-popup-button =\n    .title = 주석 편집\npdfjs-editor-delete-comment-popup-button-label = 주석 제거\npdfjs-editor-delete-comment-popup-button =\n    .title = 주석 제거\npdfjs-show-comment-button =\n    .title = 주석 보기\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = 동작\npdfjs-editor-edit-comment-actions-button =\n    .title = 동작\npdfjs-editor-edit-comment-close-button-label = 닫기\npdfjs-editor-edit-comment-close-button =\n    .title = 닫기\npdfjs-editor-edit-comment-actions-edit-button-label = 편집\npdfjs-editor-edit-comment-actions-delete-button-label = 삭제\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = 주석을 입력하세요\npdfjs-editor-edit-comment-manager-cancel-button = 취소\npdfjs-editor-edit-comment-manager-save-button = 저장\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = 주석 편집\npdfjs-editor-edit-comment-dialog-save-button-when-editing = 업데이트\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = 주석 추가\npdfjs-editor-edit-comment-dialog-save-button-when-adding = 추가\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = 입력하세요…\npdfjs-editor-edit-comment-dialog-cancel-button = 취소\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = 주석 편집\npdfjs-editor-add-comment-button =\n    .title = 주석 추가\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = 저장된 서명 제거\npdfjs-editor-delete-signature-button-label1 = 저장된 서명 제거\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = 설명 편집\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = 설명 편집\n"
  },
  {
    "path": "viewer/locale/lij/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina primma\npdfjs-previous-button-label = Precedente\npdfjs-next-button =\n    .title = Pagina dòppo\npdfjs-next-button-label = Pròscima\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Diminoisci zoom\npdfjs-zoom-out-button-label = Diminoisci zoom\npdfjs-zoom-in-button =\n    .title = Aomenta zoom\npdfjs-zoom-in-button-label = Aomenta zoom\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Vanni into mòddo de prezentaçion\npdfjs-presentation-mode-button-label = Mòddo de prezentaçion\npdfjs-open-file-button =\n    .title = Arvi file\npdfjs-open-file-button-label = Arvi\npdfjs-print-button =\n    .title = Stanpa\npdfjs-print-button-label = Stanpa\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Atressi\npdfjs-tools-button-label = Atressi\npdfjs-first-page-button =\n    .title = Vanni a-a primma pagina\npdfjs-first-page-button-label = Vanni a-a primma pagina\npdfjs-last-page-button =\n    .title = Vanni a l'urtima pagina\npdfjs-last-page-button-label = Vanni a l'urtima pagina\npdfjs-page-rotate-cw-button =\n    .title = Gia into verso oraio\npdfjs-page-rotate-cw-button-label = Gia into verso oraio\npdfjs-page-rotate-ccw-button =\n    .title = Gia into verso antioraio\npdfjs-page-rotate-ccw-button-label = Gia into verso antioraio\npdfjs-cursor-text-select-tool-button =\n    .title = Abilita strumento de seleçion do testo\npdfjs-cursor-text-select-tool-button-label = Strumento de seleçion do testo\npdfjs-cursor-hand-tool-button =\n    .title = Abilita strumento man\npdfjs-cursor-hand-tool-button-label = Strumento man\npdfjs-scroll-vertical-button =\n    .title = Deuvia rebelamento verticale\npdfjs-scroll-vertical-button-label = Rebelamento verticale\npdfjs-scroll-horizontal-button =\n    .title = Deuvia rebelamento orizontâ\npdfjs-scroll-horizontal-button-label = Rebelamento orizontâ\npdfjs-scroll-wrapped-button =\n    .title = Deuvia rebelamento incapsolou\npdfjs-scroll-wrapped-button-label = Rebelamento incapsolou\npdfjs-spread-none-button =\n    .title = No unite a-a difuxon de pagina\npdfjs-spread-none-button-label = No difuxon\npdfjs-spread-odd-button =\n    .title = Uniscite a-a difuxon de pagina co-o numero dèspa\npdfjs-spread-odd-button-label = Difuxon dèspa\npdfjs-spread-even-button =\n    .title = Uniscite a-a difuxon de pagina co-o numero pari\npdfjs-spread-even-button-label = Difuxon pari\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propietæ do documento…\npdfjs-document-properties-button-label = Propietæ do documento…\npdfjs-document-properties-file-name = Nomme schedaio:\npdfjs-document-properties-file-size = Dimenscion schedaio:\npdfjs-document-properties-title = Titolo:\npdfjs-document-properties-author = Aoto:\npdfjs-document-properties-subject = Ogetto:\npdfjs-document-properties-keywords = Paròlle ciave:\npdfjs-document-properties-creation-date = Dæta creaçion:\npdfjs-document-properties-modification-date = Dæta cangiamento:\npdfjs-document-properties-creator = Aotô originale:\npdfjs-document-properties-producer = Produtô PDF:\npdfjs-document-properties-version = Verscion PDF:\npdfjs-document-properties-page-count = Contezzo pagine:\npdfjs-document-properties-page-size = Dimenscion da pagina:\npdfjs-document-properties-page-size-unit-inches = dii gròsci\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = drito\npdfjs-document-properties-page-size-orientation-landscape = desteizo\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letia\npdfjs-document-properties-page-size-name-legal = Lezze\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista veloce do Web:\npdfjs-document-properties-linearized-yes = Sci\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Særa\n\n## Print\n\npdfjs-print-progress-message = Praparo o documento pe-a stanpa…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anulla\npdfjs-printing-not-supported = Atençion: a stanpa a no l'é conpletamente soportâ da sto navegatô.\npdfjs-printing-not-ready = Atençion: o PDF o no l'é ancon caregou conpletamente pe-a stanpa.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Ativa/dizativa bara de scianco\npdfjs-toggle-sidebar-button-label = Ativa/dizativa bara de scianco\npdfjs-document-outline-button =\n    .title = Fanni vedde o contorno do documento (scicca doggio pe espande/ridue tutti i elementi)\npdfjs-document-outline-button-label = Contorno do documento\npdfjs-attachments-button =\n    .title = Fanni vedde alegæ\npdfjs-attachments-button-label = Alegæ\npdfjs-thumbs-button =\n    .title = Mostra miniatue\npdfjs-thumbs-button-label = Miniatue\npdfjs-findbar-button =\n    .title = Treuva into documento\npdfjs-findbar-button-label = Treuva\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatua da pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Treuva\n    .placeholder = Treuva into documento…\npdfjs-find-previous-button =\n    .title = Treuva a ripetiçion precedente do testo da çercâ\npdfjs-find-previous-button-label = Precedente\npdfjs-find-next-button =\n    .title = Treuva a ripetiçion dòppo do testo da çercâ\npdfjs-find-next-button-label = Segoente\npdfjs-find-highlight-checkbox = Evidençia\npdfjs-find-match-case-checkbox-label = Maioscole/minoscole\npdfjs-find-entire-word-checkbox-label = Poula intrega\npdfjs-find-reached-top = Razonto a fin da pagina, continoa da l'iniçio\npdfjs-find-reached-bottom = Razonto l'iniçio da pagina, continoa da-a fin\npdfjs-find-not-found = Testo no trovou\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Larghessa pagina\npdfjs-page-scale-fit = Adatta a una pagina\npdfjs-page-scale-auto = Zoom aotomatico\npdfjs-page-scale-actual = Dimenscioin efetive\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = S'é verificou 'n'erô itno caregamento do PDF.\npdfjs-invalid-file-error = O schedaio PDF o l'é no valido ò aroinou.\npdfjs-missing-file-error = O schedaio PDF o no gh'é.\npdfjs-unexpected-response-error = Risposta inprevista do-u server\npdfjs-rendering-error = Gh'é stæto 'n'erô itno rendering da pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotaçion: { $type }]\n\n## Password\n\npdfjs-password-label = Dimme a paròlla segreta pe arvî sto schedaio PDF.\npdfjs-password-invalid = Paròlla segreta sbalia. Preuva torna.\npdfjs-password-ok-button = Va ben\npdfjs-password-cancel-button = Anulla\npdfjs-web-fonts-disabled = I font do web en dizativæ: inposcibile adeuviâ i carateri do PDF.\n"
  },
  {
    "path": "viewer/locale/lo/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = ຫນ້າກ່ອນຫນ້າ\npdfjs-previous-button-label = ກ່ອນຫນ້າ\npdfjs-next-button =\n    .title = ຫນ້າຖັດໄປ\npdfjs-next-button-label = ຖັດໄປ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ຫນ້າ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = ຈາກ { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } ຈາກ { $pagesCount })\npdfjs-zoom-out-button =\n    .title = ຂະຫຍາຍອອກ\npdfjs-zoom-out-button-label = ຂະຫຍາຍອອກ\npdfjs-zoom-in-button =\n    .title = ຂະຫຍາຍເຂົ້າ\npdfjs-zoom-in-button-label = ຂະຫຍາຍເຂົ້າ\npdfjs-zoom-select =\n    .title = ຂະຫຍາຍ\npdfjs-presentation-mode-button =\n    .title = ສັບປ່ຽນເປັນໂຫມດການນຳສະເຫນີ\npdfjs-presentation-mode-button-label = ໂຫມດການນຳສະເຫນີ\npdfjs-open-file-button =\n    .title = ເປີດໄຟລ໌\npdfjs-open-file-button-label = ເປີດ\npdfjs-print-button =\n    .title = ພິມ\npdfjs-print-button-label = ພິມ\npdfjs-save-button =\n    .title = ບັນທຶກ\npdfjs-save-button-label = ບັນທຶກ\npdfjs-bookmark-button =\n    .title = ໜ້າປັດຈຸບັນ (ເບິ່ງ URL ຈາກໜ້າປັດຈຸບັນ)\npdfjs-bookmark-button-label = ຫນ້າ​ປັດ​ຈຸ​ບັນ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ເຄື່ອງມື\npdfjs-tools-button-label = ເຄື່ອງມື\npdfjs-first-page-button =\n    .title = ໄປທີ່ຫນ້າທຳອິດ\npdfjs-first-page-button-label = ໄປທີ່ຫນ້າທຳອິດ\npdfjs-last-page-button =\n    .title = ໄປທີ່ຫນ້າສຸດທ້າຍ\npdfjs-last-page-button-label = ໄປທີ່ຫນ້າສຸດທ້າຍ\npdfjs-page-rotate-cw-button =\n    .title = ຫມູນຕາມເຂັມໂມງ\npdfjs-page-rotate-cw-button-label = ຫມູນຕາມເຂັມໂມງ\npdfjs-page-rotate-ccw-button =\n    .title = ຫມູນທວນເຂັມໂມງ\npdfjs-page-rotate-ccw-button-label = ຫມູນທວນເຂັມໂມງ\npdfjs-cursor-text-select-tool-button =\n    .title = ເປີດໃຊ້ເຄື່ອງມືການເລືອກຂໍ້ຄວາມ\npdfjs-cursor-text-select-tool-button-label = ເຄື່ອງມືເລືອກຂໍ້ຄວາມ\npdfjs-cursor-hand-tool-button =\n    .title = ເປີດໃຊ້ເຄື່ອງມືມື\npdfjs-cursor-hand-tool-button-label = ເຄື່ອງມືມື\npdfjs-scroll-page-button =\n    .title = ໃຊ້ການເລື່ອນໜ້າ\npdfjs-scroll-page-button-label = ເລື່ອນໜ້າ\npdfjs-scroll-vertical-button =\n    .title = ໃຊ້ການເລື່ອນແນວຕັ້ງ\npdfjs-scroll-vertical-button-label = ເລື່ອນແນວຕັ້ງ\npdfjs-scroll-horizontal-button =\n    .title = ໃຊ້ການເລື່ອນແນວນອນ\npdfjs-scroll-horizontal-button-label = ເລື່ອນແນວນອນ\npdfjs-scroll-wrapped-button =\n    .title = ໃຊ້ Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = ບໍ່ຕ້ອງຮ່ວມການແຜ່ກະຈາຍຫນ້າ\npdfjs-spread-none-button-label = ບໍ່ມີການແຜ່ກະຈາຍ\npdfjs-spread-odd-button =\n    .title = ເຂົ້າຮ່ວມການແຜ່ກະຈາຍຫນ້າເລີ່ມຕົ້ນດ້ວຍຫນ້າເລກຄີກ\npdfjs-spread-odd-button-label = ການແຜ່ກະຈາຍຄີກ\npdfjs-spread-even-button =\n    .title = ເຂົ້າຮ່ວມການແຜ່ກະຈາຍຂອງຫນ້າເລີ່ມຕົ້ນດ້ວຍຫນ້າເລກຄູ່\npdfjs-spread-even-button-label = ການແຜ່ກະຈາຍຄູ່\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = ຄຸນສົມບັດເອກະສານ...\npdfjs-document-properties-button-label = ຄຸນສົມບັດເອກະສານ...\npdfjs-document-properties-file-name = ຊື່ໄຟລ໌:\npdfjs-document-properties-file-size = ຂະຫນາດໄຟລ໌:\npdfjs-document-properties-title = ຫົວຂໍ້:\npdfjs-document-properties-author = ຜູ້ຂຽນ:\npdfjs-document-properties-subject = ຫົວຂໍ້:\npdfjs-document-properties-keywords = ຄໍາທີ່ຕ້ອງການຄົ້ນຫາ:\npdfjs-document-properties-creation-date = ວັນທີສ້າງ:\npdfjs-document-properties-modification-date = ວັນທີແກ້ໄຂ:\npdfjs-document-properties-creator = ຜູ້ສ້າງ:\npdfjs-document-properties-producer = ຜູ້ຜະລິດ PDF:\npdfjs-document-properties-version = ເວີຊັ່ນ PDF:\npdfjs-document-properties-page-count = ຈຳນວນໜ້າ:\npdfjs-document-properties-page-size = ຂະໜາດໜ້າ:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = ລວງຕັ້ງ\npdfjs-document-properties-page-size-orientation-landscape = ລວງນອນ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = ຈົດໝາຍ\npdfjs-document-properties-page-size-name-legal = ຂໍ້ກົດຫມາຍ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = ມຸມມອງເວັບທີ່ໄວ:\npdfjs-document-properties-linearized-yes = ແມ່ນ\npdfjs-document-properties-linearized-no = ບໍ່\npdfjs-document-properties-close-button = ປິດ\n\n## Print\n\npdfjs-print-progress-message = ກຳລັງກະກຽມເອກະສານສຳລັບການພິມ...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ຍົກເລີກ\npdfjs-printing-not-supported = ຄຳເຕືອນ: ບຼາວເຊີນີ້ບໍ່ຮອງຮັບການພິມຢ່າງເຕັມທີ່.\npdfjs-printing-not-ready = ຄໍາ​ເຕືອນ​: PDF ບໍ່​ໄດ້​ຖືກ​ໂຫຼດ​ຢ່າງ​ເຕັມ​ທີ່​ສໍາ​ລັບ​ການ​ພິມ​.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ເປີດ/ປິດແຖບຂ້າງ\npdfjs-toggle-sidebar-notification-button =\n    .title = ສະຫຼັບແຖບດ້ານຂ້າງ (ເອກະສານປະກອບມີໂຄງຮ່າງ/ໄຟລ໌ແນບ/ຊັ້ນຂໍ້ມູນ)\npdfjs-toggle-sidebar-button-label = ເປີດ/ປິດແຖບຂ້າງ\npdfjs-document-outline-button =\n    .title = ສະ​ແດງ​ໂຄງ​ຮ່າງ​ເອ​ກະ​ສານ (ກົດ​ສອງ​ຄັ້ງ​ເພື່ອ​ຂະ​ຫຍາຍ / ຫຍໍ້​ລາຍ​ການ​ທັງ​ຫມົດ​)\npdfjs-document-outline-button-label = ເຄົ້າຮ່າງເອກະສານ\npdfjs-attachments-button =\n    .title = ສະແດງໄຟລ໌ແນບ\npdfjs-attachments-button-label = ໄຟລ໌ແນບ\npdfjs-layers-button =\n    .title = ສະແດງຊັ້ນຂໍ້ມູນ (ຄລິກສອງເທື່ອເພື່ອຣີເຊັດຊັ້ນຂໍ້ມູນທັງໝົດໃຫ້ເປັນສະຖານະເລີ່ມຕົ້ນ)\npdfjs-layers-button-label = ຊັ້ນ\npdfjs-thumbs-button =\n    .title = ສະແດງຮູບຫຍໍ້\npdfjs-thumbs-button-label = ຮູບຕົວຢ່າງ\npdfjs-current-outline-item-button =\n    .title = ຊອກຫາລາຍການໂຄງຮ່າງປະຈຸບັນ\npdfjs-current-outline-item-button-label = ລາຍການໂຄງຮ່າງປະຈຸບັນ\npdfjs-findbar-button =\n    .title = ຊອກຫາໃນເອກະສານ\npdfjs-findbar-button-label = ຄົ້ນຫາ\npdfjs-additional-layers = ຊັ້ນຂໍ້ມູນເພີ່ມເຕີມ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = ໜ້າ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = ຮູບຕົວຢ່າງຂອງໜ້າ { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ຄົ້ນຫາ\n    .placeholder = ຊອກຫາໃນເອກະສານ...\npdfjs-find-previous-button =\n    .title = ຊອກຫາການປະກົດຕົວທີ່ຜ່ານມາຂອງປະໂຫຍກ\npdfjs-find-previous-button-label = ກ່ອນຫນ້ານີ້\npdfjs-find-next-button =\n    .title = ຊອກຫາຕຳແຫນ່ງຖັດໄປຂອງວະລີ\npdfjs-find-next-button-label = ຕໍ່ໄປ\npdfjs-find-highlight-checkbox = ໄຮໄລທ໌ທັງຫມົດ\npdfjs-find-match-case-checkbox-label = ກໍລະນີທີ່ກົງກັນ\npdfjs-find-match-diacritics-checkbox-label = ເຄື່ອງໝາຍກຳກັບການອອກສຽງກົງກັນ\npdfjs-find-entire-word-checkbox-label = ກົງກັນທຸກຄຳ\npdfjs-find-reached-top = ມາຮອດເທິງຂອງເອກະສານ, ສືບຕໍ່ຈາກລຸ່ມ\npdfjs-find-reached-bottom = ຮອດຕອນທ້າຍຂອງເອກະສານ, ສືບຕໍ່ຈາກເທິງ\npdfjs-find-not-found = ບໍ່ພົບວະລີທີ່ຕ້ອງການ\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ຄວາມກວ້າງໜ້າ\npdfjs-page-scale-fit = ໜ້າພໍດີ\npdfjs-page-scale-auto = ຊູມອັດຕະໂນມັດ\npdfjs-page-scale-actual = ຂະໜາດຕົວຈິງ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = ໜ້າ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = ມີຂໍ້ຜິດພາດເກີດຂື້ນຂະນະທີ່ກຳລັງໂຫລດ PDF.\npdfjs-invalid-file-error = ໄຟລ໌ PDF ບໍ່ຖືກຕ້ອງຫລືເສຍຫາຍ.\npdfjs-missing-file-error = ບໍ່ມີໄຟລ໌ PDF.\npdfjs-unexpected-response-error = ການຕອບສະໜອງຂອງເຊີບເວີທີ່ບໍ່ຄາດຄິດ.\npdfjs-rendering-error = ມີຂໍ້ຜິດພາດເກີດຂື້ນຂະນະທີ່ກຳລັງເຣັນເດີຫນ້າ.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ຄຳບັນຍາຍ]\n\n## Password\n\npdfjs-password-label = ໃສ່ລະຫັດຜ່ານເພື່ອເປີດໄຟລ໌ PDF ນີ້.\npdfjs-password-invalid = ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ. ກະລຸນາລອງອີກຄັ້ງ.\npdfjs-password-ok-button = ຕົກລົງ\npdfjs-password-cancel-button = ຍົກເລີກ\npdfjs-web-fonts-disabled = ຟອນເວັບຖືກປິດໃຊ້ງານ: ບໍ່ສາມາດໃຊ້ຟອນ PDF ທີ່ຝັງໄວ້ໄດ້.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = ຂໍ້ຄວາມ\npdfjs-editor-free-text-button-label = ຂໍ້ຄວາມ\npdfjs-editor-ink-button =\n    .title = ແຕ້ມ\npdfjs-editor-ink-button-label = ແຕ້ມ\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = ສີ\npdfjs-editor-free-text-size-input = ຂະຫນາດ\npdfjs-editor-ink-color-input = ສີ\npdfjs-editor-ink-thickness-input = ຄວາມຫນາ\npdfjs-editor-ink-opacity-input = ຄວາມໂປ່ງໃສ\n"
  },
  {
    "path": "viewer/locale/locale.json",
    "content": "{\"ach\":\"ach/viewer.ftl\",\"af\":\"af/viewer.ftl\",\"an\":\"an/viewer.ftl\",\"ar\":\"ar/viewer.ftl\",\"ast\":\"ast/viewer.ftl\",\"az\":\"az/viewer.ftl\",\"be\":\"be/viewer.ftl\",\"bg\":\"bg/viewer.ftl\",\"bn\":\"bn/viewer.ftl\",\"bo\":\"bo/viewer.ftl\",\"br\":\"br/viewer.ftl\",\"brx\":\"brx/viewer.ftl\",\"bs\":\"bs/viewer.ftl\",\"ca\":\"ca/viewer.ftl\",\"cak\":\"cak/viewer.ftl\",\"ckb\":\"ckb/viewer.ftl\",\"cs\":\"cs/viewer.ftl\",\"cy\":\"cy/viewer.ftl\",\"da\":\"da/viewer.ftl\",\"de\":\"de/viewer.ftl\",\"dsb\":\"dsb/viewer.ftl\",\"el\":\"el/viewer.ftl\",\"en-ca\":\"en-CA/viewer.ftl\",\"en-gb\":\"en-GB/viewer.ftl\",\"en-us\":\"en-US/viewer.ftl\",\"eo\":\"eo/viewer.ftl\",\"es-ar\":\"es-AR/viewer.ftl\",\"es-cl\":\"es-CL/viewer.ftl\",\"es-es\":\"es-ES/viewer.ftl\",\"es-mx\":\"es-MX/viewer.ftl\",\"et\":\"et/viewer.ftl\",\"eu\":\"eu/viewer.ftl\",\"fa\":\"fa/viewer.ftl\",\"ff\":\"ff/viewer.ftl\",\"fi\":\"fi/viewer.ftl\",\"fr\":\"fr/viewer.ftl\",\"fur\":\"fur/viewer.ftl\",\"fy-nl\":\"fy-NL/viewer.ftl\",\"ga-ie\":\"ga-IE/viewer.ftl\",\"gd\":\"gd/viewer.ftl\",\"gl\":\"gl/viewer.ftl\",\"gn\":\"gn/viewer.ftl\",\"gu-in\":\"gu-IN/viewer.ftl\",\"he\":\"he/viewer.ftl\",\"hi-in\":\"hi-IN/viewer.ftl\",\"hr\":\"hr/viewer.ftl\",\"hsb\":\"hsb/viewer.ftl\",\"hu\":\"hu/viewer.ftl\",\"hy-am\":\"hy-AM/viewer.ftl\",\"hye\":\"hye/viewer.ftl\",\"ia\":\"ia/viewer.ftl\",\"id\":\"id/viewer.ftl\",\"is\":\"is/viewer.ftl\",\"it\":\"it/viewer.ftl\",\"ja\":\"ja/viewer.ftl\",\"ka\":\"ka/viewer.ftl\",\"kab\":\"kab/viewer.ftl\",\"kk\":\"kk/viewer.ftl\",\"km\":\"km/viewer.ftl\",\"kn\":\"kn/viewer.ftl\",\"ko\":\"ko/viewer.ftl\",\"lij\":\"lij/viewer.ftl\",\"lo\":\"lo/viewer.ftl\",\"lt\":\"lt/viewer.ftl\",\"ltg\":\"ltg/viewer.ftl\",\"lv\":\"lv/viewer.ftl\",\"meh\":\"meh/viewer.ftl\",\"mk\":\"mk/viewer.ftl\",\"ml\":\"ml/viewer.ftl\",\"mr\":\"mr/viewer.ftl\",\"ms\":\"ms/viewer.ftl\",\"my\":\"my/viewer.ftl\",\"nb-no\":\"nb-NO/viewer.ftl\",\"ne-np\":\"ne-NP/viewer.ftl\",\"nl\":\"nl/viewer.ftl\",\"nn-no\":\"nn-NO/viewer.ftl\",\"oc\":\"oc/viewer.ftl\",\"pa-in\":\"pa-IN/viewer.ftl\",\"pl\":\"pl/viewer.ftl\",\"pt-br\":\"pt-BR/viewer.ftl\",\"pt-pt\":\"pt-PT/viewer.ftl\",\"rm\":\"rm/viewer.ftl\",\"ro\":\"ro/viewer.ftl\",\"ru\":\"ru/viewer.ftl\",\"sat\":\"sat/viewer.ftl\",\"sc\":\"sc/viewer.ftl\",\"scn\":\"scn/viewer.ftl\",\"sco\":\"sco/viewer.ftl\",\"si\":\"si/viewer.ftl\",\"sk\":\"sk/viewer.ftl\",\"skr\":\"skr/viewer.ftl\",\"sl\":\"sl/viewer.ftl\",\"son\":\"son/viewer.ftl\",\"sq\":\"sq/viewer.ftl\",\"sr\":\"sr/viewer.ftl\",\"sv-se\":\"sv-SE/viewer.ftl\",\"szl\":\"szl/viewer.ftl\",\"ta\":\"ta/viewer.ftl\",\"te\":\"te/viewer.ftl\",\"tg\":\"tg/viewer.ftl\",\"th\":\"th/viewer.ftl\",\"tl\":\"tl/viewer.ftl\",\"tr\":\"tr/viewer.ftl\",\"trs\":\"trs/viewer.ftl\",\"uk\":\"uk/viewer.ftl\",\"ur\":\"ur/viewer.ftl\",\"uz\":\"uz/viewer.ftl\",\"vi\":\"vi/viewer.ftl\",\"wo\":\"wo/viewer.ftl\",\"xh\":\"xh/viewer.ftl\",\"zh-cn\":\"zh-CN/viewer.ftl\",\"zh-tw\":\"zh-TW/viewer.ftl\"}"
  },
  {
    "path": "viewer/locale/lt/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Ankstesnis puslapis\npdfjs-previous-button-label = Ankstesnis\npdfjs-next-button =\n    .title = Kitas puslapis\npdfjs-next-button-label = Kitas\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Puslapis\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = iš { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } iš { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Sumažinti\npdfjs-zoom-out-button-label = Sumažinti\npdfjs-zoom-in-button =\n    .title = Padidinti\npdfjs-zoom-in-button-label = Padidinti\npdfjs-zoom-select =\n    .title = Mastelis\npdfjs-presentation-mode-button =\n    .title = Pereiti į pateikties veikseną\npdfjs-presentation-mode-button-label = Pateikties veiksena\npdfjs-open-file-button =\n    .title = Atverti failą\npdfjs-open-file-button-label = Atverti\npdfjs-print-button =\n    .title = Spausdinti\npdfjs-print-button-label = Spausdinti\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Priemonės\npdfjs-tools-button-label = Priemonės\npdfjs-first-page-button =\n    .title = Eiti į pirmą puslapį\npdfjs-first-page-button-label = Eiti į pirmą puslapį\npdfjs-last-page-button =\n    .title = Eiti į paskutinį puslapį\npdfjs-last-page-button-label = Eiti į paskutinį puslapį\npdfjs-page-rotate-cw-button =\n    .title = Pasukti pagal laikrodžio rodyklę\npdfjs-page-rotate-cw-button-label = Pasukti pagal laikrodžio rodyklę\npdfjs-page-rotate-ccw-button =\n    .title = Pasukti prieš laikrodžio rodyklę\npdfjs-page-rotate-ccw-button-label = Pasukti prieš laikrodžio rodyklę\npdfjs-cursor-text-select-tool-button =\n    .title = Įjungti teksto žymėjimo įrankį\npdfjs-cursor-text-select-tool-button-label = Teksto žymėjimo įrankis\npdfjs-cursor-hand-tool-button =\n    .title = Įjungti vilkimo įrankį\npdfjs-cursor-hand-tool-button-label = Vilkimo įrankis\npdfjs-scroll-page-button =\n    .title = Naudoti puslapio slinkimą\npdfjs-scroll-page-button-label = Puslapio slinkimas\npdfjs-scroll-vertical-button =\n    .title = Naudoti vertikalų slinkimą\npdfjs-scroll-vertical-button-label = Vertikalus slinkimas\npdfjs-scroll-horizontal-button =\n    .title = Naudoti horizontalų slinkimą\npdfjs-scroll-horizontal-button-label = Horizontalus slinkimas\npdfjs-scroll-wrapped-button =\n    .title = Naudoti išklotą slinkimą\npdfjs-scroll-wrapped-button-label = Išklotas slinkimas\npdfjs-spread-none-button =\n    .title = Nejungti puslapių į dvilapius\npdfjs-spread-none-button-label = Be dvilapių\npdfjs-spread-odd-button =\n    .title = Sujungti į dvilapius pradedant nelyginiais puslapiais\npdfjs-spread-odd-button-label = Nelyginiai dvilapiai\npdfjs-spread-even-button =\n    .title = Sujungti į dvilapius pradedant lyginiais puslapiais\npdfjs-spread-even-button-label = Lyginiai dvilapiai\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumento savybės…\npdfjs-document-properties-button-label = Dokumento savybės…\npdfjs-document-properties-file-name = Failo vardas:\npdfjs-document-properties-file-size = Failo dydis:\npdfjs-document-properties-title = Antraštė:\npdfjs-document-properties-author = Autorius:\npdfjs-document-properties-subject = Tema:\npdfjs-document-properties-keywords = Reikšminiai žodžiai:\npdfjs-document-properties-creation-date = Sukūrimo data:\npdfjs-document-properties-modification-date = Modifikavimo data:\npdfjs-document-properties-creator = Kūrėjas:\npdfjs-document-properties-producer = PDF generatorius:\npdfjs-document-properties-version = PDF versija:\npdfjs-document-properties-page-count = Puslapių skaičius:\npdfjs-document-properties-page-size = Puslapio dydis:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = stačias\npdfjs-document-properties-page-size-orientation-landscape = gulsčias\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Laiškas\npdfjs-document-properties-page-size-name-legal = Dokumentas\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Spartus žiniatinklio rodinys:\npdfjs-document-properties-linearized-yes = Taip\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Užverti\n\n## Print\n\npdfjs-print-progress-message = Dokumentas ruošiamas spausdinimui…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Atsisakyti\npdfjs-printing-not-supported = Dėmesio! Spausdinimas šioje naršyklėje nėra pilnai realizuotas.\npdfjs-printing-not-ready = Dėmesio! PDF failas dar nėra pilnai įkeltas spausdinimui.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Rodyti / slėpti šoninį polangį\npdfjs-toggle-sidebar-notification-button =\n    .title = Parankinė (dokumentas turi struktūrą / priedų / sluoksnių)\npdfjs-toggle-sidebar-button-label = Šoninis polangis\npdfjs-document-outline-button =\n    .title = Rodyti dokumento struktūrą (spustelėkite dukart norėdami išplėsti/suskleisti visus elementus)\npdfjs-document-outline-button-label = Dokumento struktūra\npdfjs-attachments-button =\n    .title = Rodyti priedus\npdfjs-attachments-button-label = Priedai\npdfjs-layers-button =\n    .title = Rodyti sluoksnius (spustelėkite dukart, norėdami atstatyti visus sluoksnius į numatytąją būseną)\npdfjs-layers-button-label = Sluoksniai\npdfjs-thumbs-button =\n    .title = Rodyti puslapių miniatiūras\npdfjs-thumbs-button-label = Miniatiūros\npdfjs-current-outline-item-button =\n    .title = Rasti dabartinį struktūros elementą\npdfjs-current-outline-item-button-label = Dabartinis struktūros elementas\npdfjs-findbar-button =\n    .title = Ieškoti dokumente\npdfjs-findbar-button-label = Rasti\npdfjs-additional-layers = Papildomi sluoksniai\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } puslapis\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } puslapio miniatiūra\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Rasti\n    .placeholder = Rasti dokumente…\npdfjs-find-previous-button =\n    .title = Ieškoti ankstesnio frazės egzemplioriaus\npdfjs-find-previous-button-label = Ankstesnis\npdfjs-find-next-button =\n    .title = Ieškoti tolesnio frazės egzemplioriaus\npdfjs-find-next-button-label = Tolesnis\npdfjs-find-highlight-checkbox = Viską paryškinti\npdfjs-find-match-case-checkbox-label = Skirti didžiąsias ir mažąsias raides\npdfjs-find-match-diacritics-checkbox-label = Skirti diakritinius ženklus\npdfjs-find-entire-word-checkbox-label = Ištisi žodžiai\npdfjs-find-reached-top = Pasiekus dokumento pradžią, paieška pratęsta nuo pabaigos\npdfjs-find-reached-bottom = Pasiekus dokumento pabaigą, paieška pratęsta nuo pradžios\npdfjs-find-not-found = Ieškoma frazė nerasta\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Priderinti prie lapo pločio\npdfjs-page-scale-fit = Pritaikyti prie lapo dydžio\npdfjs-page-scale-auto = Automatinis mastelis\npdfjs-page-scale-actual = Tikras dydis\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page } puslapis\n\n## Loading indicator messages\n\npdfjs-loading-error = Įkeliant PDF failą įvyko klaida.\npdfjs-invalid-file-error = Tai nėra PDF failas arba jis yra sugadintas.\npdfjs-missing-file-error = PDF failas nerastas.\npdfjs-unexpected-response-error = Netikėtas serverio atsakas.\npdfjs-rendering-error = Atvaizduojant puslapį įvyko klaida.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [„{ $type }“ tipo anotacija]\n\n## Password\n\npdfjs-password-label = Įveskite slaptažodį šiam PDF failui atverti.\npdfjs-password-invalid = Slaptažodis neteisingas. Bandykite dar kartą.\npdfjs-password-ok-button = Gerai\npdfjs-password-cancel-button = Atsisakyti\npdfjs-web-fonts-disabled = Saityno šriftai išjungti – PDF faile esančių šriftų naudoti negalima.\n"
  },
  {
    "path": "viewer/locale/ltg/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Īprīkšejā lopa\npdfjs-previous-button-label = Īprīkšejā\npdfjs-next-button =\n    .title = Nuokomuo lopa\npdfjs-next-button-label = Nuokomuo\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Lopa\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = nu { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } nu { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Attuolynuot\npdfjs-zoom-out-button-label = Attuolynuot\npdfjs-zoom-in-button =\n    .title = Pītuvynuot\npdfjs-zoom-in-button-label = Pītuvynuot\npdfjs-zoom-select =\n    .title = Palelynuojums\npdfjs-presentation-mode-button =\n    .title = Puorslēgtīs iz Prezentacejis režymu\npdfjs-presentation-mode-button-label = Prezentacejis režyms\npdfjs-open-file-button =\n    .title = Attaiseit failu\npdfjs-open-file-button-label = Attaiseit\npdfjs-print-button =\n    .title = Drukuošona\npdfjs-print-button-label = Drukōt\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Reiki\npdfjs-tools-button-label = Reiki\npdfjs-first-page-button =\n    .title = Īt iz pyrmū lopu\npdfjs-first-page-button-label = Īt iz pyrmū lopu\npdfjs-last-page-button =\n    .title = Īt iz piedejū lopu\npdfjs-last-page-button-label = Īt iz piedejū lopu\npdfjs-page-rotate-cw-button =\n    .title = Pagrīzt pa pulksteni\npdfjs-page-rotate-cw-button-label = Pagrīzt pa pulksteni\npdfjs-page-rotate-ccw-button =\n    .title = Pagrīzt pret pulksteni\npdfjs-page-rotate-ccw-button-label = Pagrīzt pret pulksteni\npdfjs-cursor-text-select-tool-button =\n    .title = Aktivizēt teksta izvieles reiku\npdfjs-cursor-text-select-tool-button-label = Teksta izvieles reiks\npdfjs-cursor-hand-tool-button =\n    .title = Aktivēt rūkys reiku\npdfjs-cursor-hand-tool-button-label = Rūkys reiks\npdfjs-scroll-vertical-button =\n    .title = Izmontōt vertikalū ritinōšonu\npdfjs-scroll-vertical-button-label = Vertikalō ritinōšona\npdfjs-scroll-horizontal-button =\n    .title = Izmontōt horizontalū ritinōšonu\npdfjs-scroll-horizontal-button-label = Horizontalō ritinōšona\npdfjs-scroll-wrapped-button =\n    .title = Izmontōt mārūgojamū ritinōšonu\npdfjs-scroll-wrapped-button-label = Mārūgojamō ritinōšona\npdfjs-spread-none-button =\n    .title = Naizmontōt lopu atvāruma režimu\npdfjs-spread-none-button-label = Bez atvārumim\npdfjs-spread-odd-button =\n    .title = Izmontōt lopu atvārumus sōkut nu napōra numeru lopom\npdfjs-spread-odd-button-label = Napōra lopys pa kreisi\npdfjs-spread-even-button =\n    .title = Izmontōt lopu atvārumus sōkut nu pōra numeru lopom\npdfjs-spread-even-button-label = Pōra lopys pa kreisi\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumenta īstatiejumi…\npdfjs-document-properties-button-label = Dokumenta īstatiejumi…\npdfjs-document-properties-file-name = Faila nūsaukums:\npdfjs-document-properties-file-size = Faila izmārs:\npdfjs-document-properties-title = Nūsaukums:\npdfjs-document-properties-author = Autors:\npdfjs-document-properties-subject = Tema:\npdfjs-document-properties-keywords = Atslāgi vuordi:\npdfjs-document-properties-creation-date = Izveides datums:\npdfjs-document-properties-modification-date = lobuošonys datums:\npdfjs-document-properties-creator = Radeituojs:\npdfjs-document-properties-producer = PDF producents:\npdfjs-document-properties-version = PDF verseja:\npdfjs-document-properties-page-count = Lopu skaits:\npdfjs-document-properties-page-size = Lopas izmārs:\npdfjs-document-properties-page-size-unit-inches = collas\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portreta orientaceja\npdfjs-document-properties-page-size-orientation-landscape = ainovys orientaceja\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Jā\npdfjs-document-properties-linearized-no = Nā\npdfjs-document-properties-close-button = Aiztaiseit\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Atceļt\npdfjs-printing-not-supported = Uzmaneibu: Drukuošona nu itei puorlūka dorbojās tikai daleji.\npdfjs-printing-not-ready = Uzmaneibu: PDF nav pilneibā īluodeits drukuošonai.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Puorslēgt suonu jūslu\npdfjs-toggle-sidebar-button-label = Puorslēgt suonu jūslu\npdfjs-document-outline-button =\n    .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Dokumenta saturs\npdfjs-attachments-button =\n    .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-thumbs-button =\n    .title = Paruodeit seiktālus\npdfjs-thumbs-button-label = Seiktāli\npdfjs-findbar-button =\n    .title = Mekleit dokumentā\npdfjs-findbar-button-label = Mekleit\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Lopa { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Lopys { $page } seiktāls\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Mekleit\n    .placeholder = Mekleit dokumentā…\npdfjs-find-previous-button =\n    .title = Atrast īprīkšejū\npdfjs-find-previous-button-label = Īprīkšejā\npdfjs-find-next-button =\n    .title = Atrast nuokamū\npdfjs-find-next-button-label = Nuokomuo\npdfjs-find-highlight-checkbox = Īkruosuot vysys\npdfjs-find-match-case-checkbox-label = Lelū, mozū burtu jiuteigs\npdfjs-find-reached-top = Sasnīgts dokumenta suokums, turpynojom nu beigom\npdfjs-find-reached-bottom = Sasnīgtys dokumenta beigys, turpynojom nu suokuma\npdfjs-find-not-found = Frāze nav atrosta\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lopys plotumā\npdfjs-page-scale-fit = Ītylpynūt lopu\npdfjs-page-scale-auto = Automatiskais izmārs\npdfjs-page-scale-actual = Patīsais izmārs\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Īluodejūt PDF nūtyka klaida.\npdfjs-invalid-file-error = Nadereigs voi būjuots PDF fails.\npdfjs-missing-file-error = PDF fails nav atrosts.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = Attālojūt lopu rodās klaida\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = Īvodit paroli, kab attaiseitu PDF failu.\npdfjs-password-invalid = Napareiza parole, raugit vēļreiz.\npdfjs-password-ok-button = Labi\npdfjs-password-cancel-button = Atceļt\npdfjs-web-fonts-disabled = Šķārsteikla fonti nav aktivizāti: Navar īgult PDF fontus.\n"
  },
  {
    "path": "viewer/locale/lv/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Iepriekšējā lapa\npdfjs-previous-button-label = Iepriekšējā\npdfjs-next-button =\n    .title = Nākamā lapa\npdfjs-next-button-label = Nākamā\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Lapa\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = no { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } no { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Attālināt\npdfjs-zoom-out-button-label = Attālināt\npdfjs-zoom-in-button =\n    .title = Pietuvināt\npdfjs-zoom-in-button-label = Pietuvināt\npdfjs-zoom-select =\n    .title = Palielinājums\npdfjs-presentation-mode-button =\n    .title = Pārslēgties uz Prezentācijas režīmu\npdfjs-presentation-mode-button-label = Prezentācijas režīms\npdfjs-open-file-button =\n    .title = Atvērt failu\npdfjs-open-file-button-label = Atvērt\npdfjs-print-button =\n    .title = Drukāšana\npdfjs-print-button-label = Drukāt\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Rīki\npdfjs-tools-button-label = Rīki\npdfjs-first-page-button =\n    .title = Iet uz pirmo lapu\npdfjs-first-page-button-label = Iet uz pirmo lapu\npdfjs-last-page-button =\n    .title = Iet uz pēdējo lapu\npdfjs-last-page-button-label = Iet uz pēdējo lapu\npdfjs-page-rotate-cw-button =\n    .title = Pagriezt pa pulksteni\npdfjs-page-rotate-cw-button-label = Pagriezt pa pulksteni\npdfjs-page-rotate-ccw-button =\n    .title = Pagriezt pret pulksteni\npdfjs-page-rotate-ccw-button-label = Pagriezt pret pulksteni\npdfjs-cursor-text-select-tool-button =\n    .title = Aktivizēt teksta izvēles rīku\npdfjs-cursor-text-select-tool-button-label = Teksta izvēles rīks\npdfjs-cursor-hand-tool-button =\n    .title = Aktivēt rokas rīku\npdfjs-cursor-hand-tool-button-label = Rokas rīks\npdfjs-scroll-vertical-button =\n    .title = Izmantot vertikālo ritināšanu\npdfjs-scroll-vertical-button-label = Vertikālā ritināšana\npdfjs-scroll-horizontal-button =\n    .title = Izmantot horizontālo ritināšanu\npdfjs-scroll-horizontal-button-label = Horizontālā ritināšana\npdfjs-scroll-wrapped-button =\n    .title = Izmantot apkļauto ritināšanu\npdfjs-scroll-wrapped-button-label = Apkļautā ritināšana\npdfjs-spread-none-button =\n    .title = Nepievienoties lapu izpletumiem\npdfjs-spread-none-button-label = Neizmantot izpletumus\npdfjs-spread-odd-button =\n    .title = Izmantot lapu izpletumus sākot ar nepāra numuru lapām\npdfjs-spread-odd-button-label = Nepāra izpletumi\npdfjs-spread-even-button =\n    .title = Izmantot lapu izpletumus sākot ar pāra numuru lapām\npdfjs-spread-even-button-label = Pāra izpletumi\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumenta iestatījumi…\npdfjs-document-properties-button-label = Dokumenta iestatījumi…\npdfjs-document-properties-file-name = Faila nosaukums:\npdfjs-document-properties-file-size = Faila izmērs:\npdfjs-document-properties-title = Nosaukums:\npdfjs-document-properties-author = Autors:\npdfjs-document-properties-subject = Tēma:\npdfjs-document-properties-keywords = Atslēgas vārdi:\npdfjs-document-properties-creation-date = Izveides datums:\npdfjs-document-properties-modification-date = LAbošanas datums:\npdfjs-document-properties-creator = Radītājs:\npdfjs-document-properties-producer = PDF producents:\npdfjs-document-properties-version = PDF versija:\npdfjs-document-properties-page-count = Lapu skaits:\npdfjs-document-properties-page-size = Papīra izmērs:\npdfjs-document-properties-page-size-unit-inches = collas\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portretorientācija\npdfjs-document-properties-page-size-orientation-landscape = ainavorientācija\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Vēstule\npdfjs-document-properties-page-size-name-legal = Juridiskie teksti\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Ātrā tīmekļa skats:\npdfjs-document-properties-linearized-yes = Jā\npdfjs-document-properties-linearized-no = Nē\npdfjs-document-properties-close-button = Aizvērt\n\n## Print\n\npdfjs-print-progress-message = Gatavo dokumentu drukāšanai...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Atcelt\npdfjs-printing-not-supported = Uzmanību: Drukāšana no šī pārlūka darbojas tikai daļēji.\npdfjs-printing-not-ready = Uzmanību: PDF nav pilnībā ielādēts drukāšanai.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Pārslēgt sānu joslu\npdfjs-toggle-sidebar-button-label = Pārslēgt sānu joslu\npdfjs-document-outline-button =\n    .title = Rādīt dokumenta struktūru (veiciet dubultklikšķi lai izvērstu/sakļautu visus vienumus)\npdfjs-document-outline-button-label = Dokumenta saturs\npdfjs-attachments-button =\n    .title = Rādīt pielikumus\npdfjs-attachments-button-label = Pielikumi\npdfjs-thumbs-button =\n    .title = Parādīt sīktēlus\npdfjs-thumbs-button-label = Sīktēli\npdfjs-findbar-button =\n    .title = Meklēt dokumentā\npdfjs-findbar-button-label = Meklēt\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Lapa { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Lapas { $page } sīktēls\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Meklēt\n    .placeholder = Meklēt dokumentā…\npdfjs-find-previous-button =\n    .title = Atrast iepriekšējo\npdfjs-find-previous-button-label = Iepriekšējā\npdfjs-find-next-button =\n    .title = Atrast nākamo\npdfjs-find-next-button-label = Nākamā\npdfjs-find-highlight-checkbox = Iekrāsot visas\npdfjs-find-match-case-checkbox-label = Lielo, mazo burtu jutīgs\npdfjs-find-entire-word-checkbox-label = Veselus vārdus\npdfjs-find-reached-top = Sasniegts dokumenta sākums, turpinām no beigām\npdfjs-find-reached-bottom = Sasniegtas dokumenta beigas, turpinām no sākuma\npdfjs-find-not-found = Frāze nav atrasta\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lapas platumā\npdfjs-page-scale-fit = Ietilpinot lapu\npdfjs-page-scale-auto = Automātiskais izmērs\npdfjs-page-scale-actual = Patiesais izmērs\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Ielādējot PDF notika kļūda.\npdfjs-invalid-file-error = Nederīgs vai bojāts PDF fails.\npdfjs-missing-file-error = PDF fails nav atrasts.\npdfjs-unexpected-response-error = Negaidīa servera atbilde.\npdfjs-rendering-error = Attēlojot lapu radās kļūda\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } anotācija]\n\n## Password\n\npdfjs-password-label = Ievadiet paroli, lai atvērtu PDF failu.\npdfjs-password-invalid = Nepareiza parole, mēģiniet vēlreiz.\npdfjs-password-ok-button = Labi\npdfjs-password-cancel-button = Atcelt\npdfjs-web-fonts-disabled = Tīmekļa fonti nav aktivizēti: Nevar iegult PDF fontus.\n"
  },
  {
    "path": "viewer/locale/meh/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página yata\npdfjs-zoom-select =\n    .title = Nasa´a ka´nu/Nasa´a luli\npdfjs-open-file-button-label = Síne\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = Kuvi\npdfjs-document-properties-close-button = Nakasɨ\n\n## Print\n\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Nkuvi-ka\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-findbar-button-label = Nánuku\n\n## Predefined zoom values\n\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Password\n\npdfjs-password-cancel-button = Nkuvi-ka\n"
  },
  {
    "path": "viewer/locale/mk/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Претходна страница\npdfjs-previous-button-label = Претходна\npdfjs-next-button =\n    .title = Следна страница\npdfjs-next-button-label = Следна\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Страница\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = од { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } од { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Намалување\npdfjs-zoom-out-button-label = Намали\npdfjs-zoom-in-button =\n    .title = Зголемување\npdfjs-zoom-in-button-label = Зголеми\npdfjs-zoom-select =\n    .title = Променување на големина\npdfjs-presentation-mode-button =\n    .title = Премини во презентациски режим\npdfjs-presentation-mode-button-label = Презентациски режим\npdfjs-open-file-button =\n    .title = Отворање датотека\npdfjs-open-file-button-label = Отвори\npdfjs-print-button =\n    .title = Печатење\npdfjs-print-button-label = Печати\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Алатки\npdfjs-tools-button-label = Алатки\npdfjs-first-page-button =\n    .title = Оди до првата страница\npdfjs-first-page-button-label = Оди до првата страница\npdfjs-last-page-button =\n    .title = Оди до последната страница\npdfjs-last-page-button-label = Оди до последната страница\npdfjs-page-rotate-cw-button =\n    .title = Ротирај по стрелките на часовникот\npdfjs-page-rotate-cw-button-label = Ротирај по стрелките на часовникот\npdfjs-page-rotate-ccw-button =\n    .title = Ротирај спротивно од стрелките на часовникот\npdfjs-page-rotate-ccw-button-label = Ротирај спротивно од стрелките на часовникот\npdfjs-cursor-text-select-tool-button =\n    .title = Овозможи алатка за избор на текст\npdfjs-cursor-text-select-tool-button-label = Алатка за избор на текст\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Својства на документот…\npdfjs-document-properties-button-label = Својства на документот…\npdfjs-document-properties-file-name = Име на датотека:\npdfjs-document-properties-file-size = Големина на датотеката:\npdfjs-document-properties-title = Наслов:\npdfjs-document-properties-author = Автор:\npdfjs-document-properties-subject = Тема:\npdfjs-document-properties-keywords = Клучни зборови:\npdfjs-document-properties-creation-date = Датум на создавање:\npdfjs-document-properties-modification-date = Датум на промена:\npdfjs-document-properties-creator = Креатор:\npdfjs-document-properties-version = Верзија на PDF:\npdfjs-document-properties-page-count = Број на страници:\npdfjs-document-properties-page-size = Големина на страница:\npdfjs-document-properties-page-size-unit-inches = инч\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = портрет\npdfjs-document-properties-page-size-orientation-landscape = пејзаж\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Писмо\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = Да\npdfjs-document-properties-linearized-no = Не\npdfjs-document-properties-close-button = Затвори\n\n## Print\n\npdfjs-print-progress-message = Документ се подготвува за печатење…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Откажи\npdfjs-printing-not-supported = Предупредување: Печатењето не е целосно поддржано во овој прелистувач.\npdfjs-printing-not-ready = Предупредување: PDF документот не е целосно вчитан за печатење.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Вклучи странична лента\npdfjs-toggle-sidebar-button-label = Вклучи странична лента\npdfjs-document-outline-button-label = Содржина на документот\npdfjs-attachments-button =\n    .title = Прикажи додатоци\npdfjs-thumbs-button =\n    .title = Прикажување на икони\npdfjs-thumbs-button-label = Икони\npdfjs-findbar-button =\n    .title = Најди во документот\npdfjs-findbar-button-label = Најди\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Страница { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Икона од страница { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Пронајди\n    .placeholder = Пронајди во документот…\npdfjs-find-previous-button =\n    .title = Најди ја предходната појава на фразата\npdfjs-find-previous-button-label = Претходно\npdfjs-find-next-button =\n    .title = Најди ја следната појава на фразата\npdfjs-find-next-button-label = Следно\npdfjs-find-highlight-checkbox = Означи сѐ\npdfjs-find-match-case-checkbox-label = Токму така\npdfjs-find-entire-word-checkbox-label = Цели зборови\npdfjs-find-reached-top = Барањето стигна до почетокот на документот и почнува од крајот\npdfjs-find-reached-bottom = Барањето стигна до крајот на документот и почнува од почеток\npdfjs-find-not-found = Фразата не е пронајдена\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ширина на страница\npdfjs-page-scale-fit = Цела страница\npdfjs-page-scale-auto = Автоматска големина\npdfjs-page-scale-actual = Вистинска големина\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Настана грешка при вчитувањето на PDF-от.\npdfjs-invalid-file-error = Невалидна или корумпирана PDF датотека.\npdfjs-missing-file-error = Недостасува PDF документ.\npdfjs-unexpected-response-error = Неочекуван одговор од серверот.\npdfjs-rendering-error = Настана грешка при прикажувањето на страницата.\n\n## Password\n\npdfjs-password-label = Внесете ја лозинката за да ја отворите оваа датотека.\npdfjs-password-invalid = Невалидна лозинка. Обидете се повторно.\npdfjs-password-ok-button = Во ред\npdfjs-password-cancel-button = Откажи\npdfjs-web-fonts-disabled = Интернет фонтовите се оневозможени: не може да се користат вградените PDF фонтови.\n"
  },
  {
    "path": "viewer/locale/ml/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = മുമ്പുള്ള താള്‍\npdfjs-previous-button-label = മുമ്പു്\npdfjs-next-button =\n    .title = അടുത്ത താള്‍\npdfjs-next-button-label = അടുത്തതു്\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = താള്‍\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ലെ\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } ലെ { $pageNumber })\npdfjs-zoom-out-button =\n    .title = ചെറുതാക്കുക\npdfjs-zoom-out-button-label = ചെറുതാക്കുക\npdfjs-zoom-in-button =\n    .title = വലുതാക്കുക\npdfjs-zoom-in-button-label = വലുതാക്കുക\npdfjs-zoom-select =\n    .title = വ്യാപ്തി മാറ്റുക\npdfjs-presentation-mode-button =\n    .title = പ്രസന്റേഷന്‍ രീതിയിലേക്കു് മാറ്റുക\npdfjs-presentation-mode-button-label = പ്രസന്റേഷന്‍ രീതി\npdfjs-open-file-button =\n    .title = ഫയല്‍ തുറക്കുക\npdfjs-open-file-button-label = തുറക്കുക\npdfjs-print-button =\n    .title = അച്ചടിക്കുക\npdfjs-print-button-label = അച്ചടിക്കുക\npdfjs-save-button =\n    .title = കരുതിവയ്ക്കുക\npdfjs-save-button-label = കരുതിവയ്ക്കുക\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ഇറക്കിവയ്ക്കുക\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ഇറക്കിവയ്ക്കുക\npdfjs-bookmark-button =\n    .title = നിലവിലെ താൾ (നിലവിലെ താളിൽ നിന്നു് യൂ.ആർ.എൽ കാണുക)\npdfjs-bookmark-button-label = നിലവിലുള്ള താൾ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ഉപകരണങ്ങള്‍\npdfjs-tools-button-label = ഉപകരണങ്ങള്‍\npdfjs-first-page-button =\n    .title = ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക\npdfjs-first-page-button-label = ആദ്യത്തെ താളിലേയ്ക്കു് പോകുക\npdfjs-last-page-button =\n    .title = അവസാന താളിലേയ്ക്കു് പോകുക\npdfjs-last-page-button-label = അവസാന താളിലേയ്ക്കു് പോകുക\npdfjs-page-rotate-cw-button =\n    .title = ഘടികാരദിശയില്‍ കറക്കുക\npdfjs-page-rotate-cw-button-label = ഘടികാരദിശയില്‍ കറക്കുക\npdfjs-page-rotate-ccw-button =\n    .title = ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക\npdfjs-page-rotate-ccw-button-label = ഘടികാര ദിശയ്ക്കു് വിപരീതമായി കറക്കുക\npdfjs-cursor-text-select-tool-button =\n    .title = ടെക്സ്റ്റ് തിരഞ്ഞെടുക്കൽ ടൂള്‍ പ്രാപ്തമാക്കുക\npdfjs-cursor-text-select-tool-button-label = എഴുത്തു് തിരഞ്ഞെടുക്കൽ കരു\npdfjs-cursor-hand-tool-button =\n    .title = കൈക്കരു പ്രാപ്തമാക്കുക\npdfjs-cursor-hand-tool-button-label = കൈക്കരു\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = രേഖയുടെ വിശേഷതകള്‍...\npdfjs-document-properties-button-label = രേഖയുടെ വിശേഷതകള്‍...\npdfjs-document-properties-file-name = ഫയലിന്റെ പേര്‌:\npdfjs-document-properties-file-size = ഫയലിന്റെ വലിപ്പം:‌‌\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } ബൈറ്റുകൾ)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } ബൈറ്റുകൾ)\npdfjs-document-properties-title = തലക്കെട്ട്‌\npdfjs-document-properties-author = രചയിതാവ്:\npdfjs-document-properties-subject = വിഷയം:\npdfjs-document-properties-keywords = പെരുമുരികൾ:\npdfjs-document-properties-creation-date = പൂര്‍ത്തിയാകുന്ന തീയതി:\npdfjs-document-properties-modification-date = മാറ്റം വരുത്തിയ തീയതി:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = സൃഷ്ടികര്‍ത്താവ്:\npdfjs-document-properties-producer = പിഡിഎഫ് പ്രൊഡ്യൂസര്‍:\npdfjs-document-properties-version = പിഡിഎഫ് പതിപ്പ്:\npdfjs-document-properties-page-count = താളിന്റെ എണ്ണം:\npdfjs-document-properties-page-size = താൾ വലുപ്പം\npdfjs-document-properties-page-size-unit-inches = ഇഞ്ചു്\npdfjs-document-properties-page-size-unit-millimeters = മില്ലീമീറ്റർ\npdfjs-document-properties-page-size-orientation-portrait = ഛായപടം രീതിയില്‍\npdfjs-document-properties-page-size-orientation-landscape = ഭൂദൃശ്യത്തിന്റെ ആകൃതിയില്‍\npdfjs-document-properties-page-size-name-a-three = ആ 3\npdfjs-document-properties-page-size-name-a-four = ആ 4\npdfjs-document-properties-page-size-name-letter = കത്തു്\npdfjs-document-properties-page-size-name-legal = നിയമപരം\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name },{ $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = വിരവോള ഗോളാന്തരക്കാഴ്ച :\npdfjs-document-properties-linearized-yes = അതെ\npdfjs-document-properties-linearized-no = ഇല്ല\npdfjs-document-properties-close-button = അടയ്ക്കുക\n\n## Print\n\npdfjs-print-progress-message = അച്ചടിപ്പിനു് പ്രമാണം ഒരുക്കുന്നു...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = റദ്ദാക്കുക\npdfjs-printing-not-supported = മുന്നറിയിപ്പു്: ഈ അന്വേഷിയന്ത്രമിൽ അച്ചടിപ്പു് മുഴുവനായി പിന്തുണയ്ക്കാരില്ല.\npdfjs-printing-not-ready = മുന്നറിയിപ്പു്: അച്ചടിക്കാനായി ഈ പിഡിഎഫ മൊത്തം ലഭ്യമാക്കിയിട്ടില്ല\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = അണിവക്കം ടോഗിൾ ചെയ്യുക\npdfjs-toggle-sidebar-button-label = അണിവക്കം ടോഗിൾ ചെയ്യുക\npdfjs-document-outline-button =\n    .title = ഡോക്യുമെന്റിന്റെ ബാഹ്യരേഖ കാണിക്കുക (എല്ലാ ഇനങ്ങളും വിപുലീകരിക്കാനും ചുരുക്കാനും ഇരട്ട ക്ലിക്കുചെയ്യുക)\npdfjs-document-outline-button-label = രേഖയുടെ ഔട്ട്ലൈന്‍\npdfjs-attachments-button =\n    .title = അറ്റാച്മെന്റുകള്‍ കാണിയ്ക്കുക\npdfjs-attachments-button-label = അറ്റാച്മെന്റുകള്‍\npdfjs-layers-button-label = പാളികൾ\npdfjs-thumbs-button =\n    .title = തംബ്നെയിലുകള്‍ കാണിയ്ക്കുക\npdfjs-thumbs-button-label = തംബ്നെയിലുകള്‍\npdfjs-findbar-button =\n    .title = രേഖയില്‍ കണ്ടുപിടിയ്ക്കുക\npdfjs-findbar-button-label = കണ്ടെത്തുക\npdfjs-additional-layers = കൂടാത്ത പാളികൾ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = താള്‍ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } താളിനുള്ള തംബ്നെയില്‍\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = കണ്ടെത്തുക\n    .placeholder = ഡോക്യുമെന്റില്‍ കണ്ടെത്തുക…\npdfjs-find-previous-button =\n    .title = വാചകം ഇതിനു മുന്‍പ്‌ ആവര്‍ത്തിച്ചത്‌ കണ്ടെത്തുക\npdfjs-find-previous-button-label = മുമ്പു്\npdfjs-find-next-button =\n    .title = വാചകം വീണ്ടും ആവര്‍ത്തിക്കുന്നത്‌ കണ്ടെത്തുക\npdfjs-find-next-button-label = അടുത്തതു്\npdfjs-find-highlight-checkbox = എല്ലാം എടുത്തുകാണിയ്ക്കുക\npdfjs-find-match-case-checkbox-label = അക്ഷരങ്ങള്‍ ഒത്തുനോക്കുക\npdfjs-find-entire-word-checkbox-label = മുഴുവൻ വാക്കുകൾ\npdfjs-find-reached-top = രേഖയുടെ മുകളില്‍ എത്തിയിരിക്കുന്നു, താഴെ നിന്നും തുടരുന്നു\npdfjs-find-reached-bottom = രേഖയുടെ അവസാനം വരെ എത്തിയിരിക്കുന്നു, മുകളില്‍ നിന്നും തുടരുന്നു\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } / { $total } പൊരുത്തങ്ങള്‍\n       *[other] { $current } / { $total } പൊരുത്തങ്ങള്‍\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] { $limit } പൊരുത്തങ്ങളില്‍ കൂടുതല്‍\n       *[other] { $limit } പൊരുത്തങ്ങളില്‍ കൂടുതല്‍\n    }\npdfjs-find-not-found = വാചകം കണ്ടെത്താനായില്ല\n\n## Predefined zoom values\n\npdfjs-page-scale-width = താളിന്റെ വീതി\npdfjs-page-scale-fit = താള്‍ പാകത്തിനാക്കുക\npdfjs-page-scale-auto = സ്വയമായി വലുതാക്കുക\npdfjs-page-scale-actual = യഥാര്‍ത്ഥ വ്യാപ്തി\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = താള്‍ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = പിഡിഎഫ് ലഭ്യമാക്കുമ്പോള്‍ പിശക് ഉണ്ടായിരിയ്ക്കുന്നു.\npdfjs-invalid-file-error = തെറ്റായ അല്ലെങ്കില്‍ തകരാറുള്ള പിഡിഎഫ് ഫയല്‍.\npdfjs-missing-file-error = പിഡിഎഫ് ഫയല്‍ ലഭ്യമല്ല.\npdfjs-unexpected-response-error = പ്രതീക്ഷിക്കാത്ത സെര്‍വര്‍ മറുപടി.\npdfjs-rendering-error = താള്‍ റെണ്ടര്‍ ചെയ്യുമ്പോള്‍‌ പിശകുണ്ടായിരിയ്ക്കുന്നു.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = ഈ പിഡിഎഫ് ഫയല്‍ തുറക്കുന്നതിനു് ഒളിവാക്ക് നല്‍കുക.\npdfjs-password-invalid = തെറ്റായ ഒളിവാക്ക്, ദയവായി വീണ്ടും ശ്രമിയ്ക്കുക.\npdfjs-password-ok-button = ശരി\npdfjs-password-cancel-button = റദ്ദാക്കുക\npdfjs-web-fonts-disabled = വെബിനുള്ള അക്ഷരസഞ്ചയങ്ങള്‍ പ്രവര്‍ത്തന രഹിതം: എംബഡ്ഡ് ചെയ്ത പിഡിഎഫ് അക്ഷരസഞ്ചയങ്ങള്‍ ഉപയോഗിയ്ക്കുവാന്‍ സാധ്യമല്ല.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = എഴുത്തു്\npdfjs-editor-free-text-button-label = എഴുത്തു്\npdfjs-editor-ink-button =\n    .title = വരയ്ക്കുക\npdfjs-editor-ink-button-label = വരയ്ക്കുക\npdfjs-editor-stamp-button =\n    .title = ചിത്രങ്ങളെ ചേർക്കുക അല്ലെങ്കിൽ തിരുത്തുക\npdfjs-editor-stamp-button-label = ചിത്രങ്ങളെ ചേർക്കുക അല്ലെങ്കിൽ തിരുത്തുക\npdfjs-editor-highlight-button =\n    .title = അടയാളപ്പെടുക\npdfjs-editor-highlight-button-label = അടയാളപ്പെടുക\npdfjs-highlight-floating-button1 =\n    .title = അടയാളപ്പെടുക\n    .aria-label = അടയാളപ്പെടുക\npdfjs-highlight-floating-button-label = അടയാളപ്പെടുക\npdfjs-editor-signature-button =\n    .title = പുതിയ ഒപ്പു് ചേൎക്കുക\npdfjs-editor-signature-button-label = പുതിയ ഒപ്പു് ചേൎക്കുക\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = ആലേഖ്യം മാറ്റുക\npdfjs-editor-remove-freetext-button =\n    .title = എഴുത്തു് മാറ്റുക\npdfjs-editor-remove-stamp-button =\n    .title = ചിത്രം മാറ്റുക\npdfjs-editor-remove-highlight-button =\n    .title = അടയാളപ്പെട്ടുതു് മാറ്റുക\npdfjs-editor-remove-signature-button =\n    .title = ഒപ്പു് മാറ്റുക\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = നിറം\npdfjs-editor-free-text-size-input = വലുപ്പം\npdfjs-editor-ink-color-input = നിറം\npdfjs-editor-ink-thickness-input = കനം\npdfjs-editor-ink-opacity-input = അതാര്യത\npdfjs-editor-stamp-add-image-button =\n    .title = ചിത്രം ചേർക്കുക\npdfjs-editor-stamp-add-image-button-label = ചിത്രം ചേർക്കുക\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = കനം\npdfjs-editor-signature-add-signature-button =\n    .title = പുതിയ ഒപ്പു് ചേൎക്കുക\npdfjs-editor-signature-add-signature-button-label = പുതിയ ഒപ്പു് ചേൎക്കുക\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = കരുതിവച്ച ഒപ്പു് : { $description }\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = മറുയെഴുത്തു്\npdfjs-editor-alt-text-edit-button =\n    .aria-label = മറുയെഴുത്തു് തിരുത്തുക\npdfjs-editor-alt-text-dialog-label = സാധ്യത തിരഞ്ഞെടുക്കൂ\npdfjs-editor-alt-text-add-description-label = ഒരു വിവരണം ചേർക്കുക\npdfjs-editor-alt-text-cancel-button = റദ്ദാക്കുക\npdfjs-editor-alt-text-save-button = കരുതിവയ്ക്കുക\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = ഉദാഹരണം, “ഒരു ചെറുപ്പക്കാരൻ ഭക്ഷണം കഴിക്കാൻ മേശയിലിരുന്നു”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = മറുയെഴുത്തു്\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = അടയാളന്നിറം\npdfjs-editor-colorpicker-button =\n    .title = നിറം മാറ്റുക\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = നിറസാധ്യതകൾ\npdfjs-editor-colorpicker-yellow =\n    .title = മഞ്ഞ\npdfjs-editor-colorpicker-green =\n    .title = പച്ച\npdfjs-editor-colorpicker-blue =\n    .title = നീല\npdfjs-editor-colorpicker-pink =\n    .title = പാടല\npdfjs-editor-colorpicker-red =\n    .title = ചുമന്ന\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = എല്ലാം കാണിക്കുക\npdfjs-editor-highlight-show-all-button =\n    .title = എല്ലാം കാണിക്കുക\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = മറുയെഴുത്തു് തിരുത്തുക (ചിത്ര വിവരണം)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = മറുയെഴുത്തു് ചേൎക്കുക (ചിത്ര വിവരണം)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = താങ്ങളുടെ വിവരണം ഇവിടെ എഴുതുക...\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = ഈ മറുയെഴുത്തു് തന്നെതാനെയുണ്ടാക്കിയതുകൊണ്ടു് തെറ്റായതാവാം.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = കൂടുതല്‍ അറിയുക\npdfjs-editor-new-alt-text-create-automatically-button-label = തന്നെതാനെ മറുയെഴുത്തു് ഉണ്ടാക്കുക\npdfjs-editor-new-alt-text-not-now-button = ഇപ്പോഴല്ല\npdfjs-editor-new-alt-text-error-title = തന്നെതാനെ മറുയെഴുത്തു് ഉണ്ടാക്കാൻ പറ്റിയില്ല\npdfjs-editor-new-alt-text-error-description = തനതായ മറുയെഴുത്തു് ഇടുക അല്ലെങ്കിൽ പിന്നീടു് ശ്രമിയ്ക്കുക.\npdfjs-editor-new-alt-text-error-close-button = അടയ്ക്കുക\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = മറുയെഴുത്തു് ചേൎത്തു\npdfjs-editor-new-alt-text-added-button-label = മറുയെഴുത്തു് ചേൎത്തു\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = മറുയെഴുത്തു് കാണാന്നില്ല\npdfjs-editor-new-alt-text-missing-button-label = മറുയെഴുത്തു് കാണാന്നില്ല\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = മറുയെഴുത്തു് അവലോകിക്കുക\npdfjs-editor-new-alt-text-to-review-button-label = മറുയെഴുത്തു് അവലോകിക്കുക\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = തന്നെതാനെ ഉണ്ടാക്കി : { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = ചിത്ര മറുയെഴുത്തു് ക്രമീകരണങ്ങൾ\npdfjs-image-alt-text-settings-button-label = ചിത്ര മറുയെഴുത്തു് ക്രമീകരണങ്ങൾ\npdfjs-editor-alt-text-settings-dialog-label = ചിത്ര മറുയെഴുത്തു് ക്രമീകരണങ്ങൾ\npdfjs-editor-alt-text-settings-automatic-title = യാന്ത്രിക മറുയെഴുത്തു്\npdfjs-editor-alt-text-settings-create-model-button-label = തന്നെതാനെ മറുയെഴുത്തു് ഉണ്ടാക്കുക\npdfjs-editor-alt-text-settings-delete-model-button = മായ്ക്കുക\npdfjs-editor-alt-text-settings-download-model-button = ഇറക്കിവയ്ക്കുക\npdfjs-editor-alt-text-settings-downloading-model-button = ഇറക്കിവയ്ക്കുന്നു\npdfjs-editor-alt-text-settings-show-dialog-description = താങ്ങളുടെ എല്ലാ പടങ്ങളിലും മറുയെഴുത്തുണ്ടെന്നു് തീൎച്ചപ്പെടുത്താൻ തുണയ്ക്കുന്നു.\npdfjs-editor-alt-text-settings-close-button = അടയ്ക്കുക\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = അടയാളം മാറ്റി\npdfjs-editor-undo-bar-message-freetext = എഴുത്തു് മാറ്റി\npdfjs-editor-undo-bar-message-ink = ആലേഖ്യം മാറ്റി\npdfjs-editor-undo-bar-message-stamp = ചിത്രം മാറ്റി\npdfjs-editor-undo-bar-message-signature = ഒപ്പു് മാറ്റി\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } കുറിപ്പെഴുതലുകൾ മാറ്റി\n       *[other] { $count } കുറിപ്പെഴുതലുകൾ മാറ്റി\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = പഴയപോലെയാക്കുക\npdfjs-editor-undo-bar-undo-button-label = പഴയപോലെയാക്കുക\npdfjs-editor-undo-bar-close-button =\n    .title = അടയ്ക്കുക\npdfjs-editor-undo-bar-close-button-label = അടയ്ക്കുക\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-title = ഒപ്പു് ചേൎക്കുക\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = തരം\n    .title = തരം\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = വരയ്ക്കുക\n    .title = വരയ്ക്കുക\npdfjs-editor-add-signature-image-button = ചിത്രം\n    .title = ചിത്രം\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = താങ്ങളുടെ ഒപ്പു് ഇവിടെ എഴുതുക\n    .placeholder = താങ്ങളുടെ ഒപ്പു് ഇവിടെ എഴുതുക\npdfjs-editor-add-signature-draw-placeholder = താങ്ങളുടെ ഒപ്പു് വരയ്ക്കുക\npdfjs-editor-add-signature-draw-thickness-range-label = കനം\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = വരപ്പുകനം: { $thickness }\npdfjs-editor-add-signature-image-placeholder = കയറ്റുവയ്ക്കാൻ വേണ്ടി ഫയലിനു് ഇവിടോട്ടു് വലിച്ചിടുക\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] അല്ലെങ്കിൽ ചിത്രം ഫയലുകൾ തപ്പുക\n       *[other] അല്ലെങ്കിൽ ചിത്രം ഫയലുകൾ തപ്പുക\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = വിവരണം (ഇതരയെഴുതു്)\npdfjs-editor-add-signature-description-input =\n    .title = വിവരണം (ഇതരയെഴുതു്)\npdfjs-editor-add-signature-description-default-when-drawing = ഒപ്പു്\npdfjs-editor-add-signature-clear-button-label = ഒപ്പു് മായ്ക്കുക\npdfjs-editor-add-signature-clear-button =\n    .title = ഒപ്പു് മായ്ക്കുക\npdfjs-editor-add-signature-save-checkbox = ഒപ്പു് കരുതിവയ്ക്കുക\npdfjs-editor-add-signature-save-warning-message = താങ്ങളുടെ ഒപ്പുകളുടെ എണ്ണം 5 ആയി. കൂടുതൽ കരുതിവയ്ക്കാൻ വേണ്ടി ഒരെണ്ണം മാറ്റണ്ടിവരും.\npdfjs-editor-add-signature-image-upload-error-title = ചിത്രം കയറ്റുവയ്ക്കാൻ പറ്റിയില്ല\npdfjs-editor-add-signature-image-upload-error-description = താങ്ങളുടെ ശൃംഖല സമ്പൎക്കം പരിശോധിക്കുക അല്ലെങ്കിൽ വേറെയൊരു ചിത്രം ഇട്ടുനോക്കുക\npdfjs-editor-add-signature-error-close-button = അടയ്ക്കുക\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = റദ്ദാക്കുക\npdfjs-editor-add-signature-add-button = ചേൎക്കുക\npdfjs-editor-edit-signature-update-button = പുതുക്കുക\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = കരുതിവച്ച ഒപ്പു് മാറ്റുക\npdfjs-editor-delete-signature-button-label1 = കരുതിവച്ച ഒപ്പു് മാറ്റുക\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = വിവരണം തിരുത്തുക\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = വിവരണം തിരുത്തുക\n"
  },
  {
    "path": "viewer/locale/mr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = मागील पृष्ठ\npdfjs-previous-button-label = मागील\npdfjs-next-button =\n    .title = पुढील पृष्ठ\npdfjs-next-button-label = पुढील\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = पृष्ठ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount }पैकी\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } पैकी { $pageNumber })\npdfjs-zoom-out-button =\n    .title = छोटे करा\npdfjs-zoom-out-button-label = छोटे करा\npdfjs-zoom-in-button =\n    .title = मोठे करा\npdfjs-zoom-in-button-label = मोठे करा\npdfjs-zoom-select =\n    .title = लहान किंवा मोठे करा\npdfjs-presentation-mode-button =\n    .title = प्रस्तुतिकरण मोडचा वापर करा\npdfjs-presentation-mode-button-label = प्रस्तुतिकरण मोड\npdfjs-open-file-button =\n    .title = फाइल उघडा\npdfjs-open-file-button-label = उघडा\npdfjs-print-button =\n    .title = छपाई करा\npdfjs-print-button-label = छपाई करा\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = साधने\npdfjs-tools-button-label = साधने\npdfjs-first-page-button =\n    .title = पहिल्या पृष्ठावर जा\npdfjs-first-page-button-label = पहिल्या पृष्ठावर जा\npdfjs-last-page-button =\n    .title = शेवटच्या पृष्ठावर जा\npdfjs-last-page-button-label = शेवटच्या पृष्ठावर जा\npdfjs-page-rotate-cw-button =\n    .title = घड्याळाच्या काट्याच्या दिशेने फिरवा\npdfjs-page-rotate-cw-button-label = घड्याळाच्या काट्याच्या दिशेने फिरवा\npdfjs-page-rotate-ccw-button =\n    .title = घड्याळाच्या काट्याच्या उलट दिशेने फिरवा\npdfjs-page-rotate-ccw-button-label = घड्याळाच्या काट्याच्या उलट दिशेने फिरवा\npdfjs-cursor-text-select-tool-button =\n    .title = मजकूर निवड साधन कार्यान्वयीत करा\npdfjs-cursor-text-select-tool-button-label = मजकूर निवड साधन\npdfjs-cursor-hand-tool-button =\n    .title = हात साधन कार्यान्वित करा\npdfjs-cursor-hand-tool-button-label = हस्त साधन\npdfjs-scroll-vertical-button =\n    .title = अनुलंब स्क्रोलिंग वापरा\npdfjs-scroll-vertical-button-label = अनुलंब स्क्रोलिंग\npdfjs-scroll-horizontal-button =\n    .title = क्षैतिज स्क्रोलिंग वापरा\npdfjs-scroll-horizontal-button-label = क्षैतिज स्क्रोलिंग\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = दस्तऐवज गुणधर्म…\npdfjs-document-properties-button-label = दस्तऐवज गुणधर्म…\npdfjs-document-properties-file-name = फाइलचे नाव:\npdfjs-document-properties-file-size = फाइल आकार:\npdfjs-document-properties-title = शिर्षक:\npdfjs-document-properties-author = लेखक:\npdfjs-document-properties-subject = विषय:\npdfjs-document-properties-keywords = मुख्यशब्द:\npdfjs-document-properties-creation-date = निर्माण दिनांक:\npdfjs-document-properties-modification-date = दुरूस्ती दिनांक:\npdfjs-document-properties-creator = निर्माता:\npdfjs-document-properties-producer = PDF निर्माता:\npdfjs-document-properties-version = PDF आवृत्ती:\npdfjs-document-properties-page-count = पृष्ठ संख्या:\npdfjs-document-properties-page-size = पृष्ठ आकार:\npdfjs-document-properties-page-size-unit-inches = इंच\npdfjs-document-properties-page-size-unit-millimeters = मीमी\npdfjs-document-properties-page-size-orientation-portrait = उभी मांडणी\npdfjs-document-properties-page-size-orientation-landscape = आडवे\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = जलद वेब दृष्य:\npdfjs-document-properties-linearized-yes = हो\npdfjs-document-properties-linearized-no = नाही\npdfjs-document-properties-close-button = बंद करा\n\n## Print\n\npdfjs-print-progress-message = छपाई करीता पृष्ठ तयार करीत आहे…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = रद्द करा\npdfjs-printing-not-supported = सावधानता: या ब्राउझरतर्फे छपाइ पूर्णपणे समर्थीत नाही.\npdfjs-printing-not-ready = सावधानता: छपाईकरिता PDF पूर्णतया लोड झाले नाही.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = बाजूचीपट्टी टॉगल करा\npdfjs-toggle-sidebar-button-label = बाजूचीपट्टी टॉगल करा\npdfjs-document-outline-button =\n    .title = दस्तऐवज बाह्यरेखा दर्शवा (विस्तृत करण्यासाठी दोनवेळा क्लिक करा /सर्व घटक दाखवा)\npdfjs-document-outline-button-label = दस्तऐवज रूपरेषा\npdfjs-attachments-button =\n    .title = जोडपत्र दाखवा\npdfjs-attachments-button-label = जोडपत्र\npdfjs-thumbs-button =\n    .title = थंबनेल्स् दाखवा\npdfjs-thumbs-button-label = थंबनेल्स्\npdfjs-findbar-button =\n    .title = दस्तऐवजात शोधा\npdfjs-findbar-button-label = शोधा\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = पृष्ठ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = पृष्ठाचे थंबनेल { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = शोधा\n    .placeholder = दस्तऐवजात शोधा…\npdfjs-find-previous-button =\n    .title = वाकप्रयोगची मागील घटना शोधा\npdfjs-find-previous-button-label = मागील\npdfjs-find-next-button =\n    .title = वाकप्रयोगची पुढील घटना शोधा\npdfjs-find-next-button-label = पुढील\npdfjs-find-highlight-checkbox = सर्व ठळक करा\npdfjs-find-match-case-checkbox-label = आकार जुळवा\npdfjs-find-entire-word-checkbox-label = संपूर्ण शब्द\npdfjs-find-reached-top = दस्तऐवजाच्या शीर्षकास पोहचले, तळपासून पुढे\npdfjs-find-reached-bottom = दस्तऐवजाच्या तळाला पोहचले, शीर्षकापासून पुढे\npdfjs-find-not-found = वाकप्रयोग आढळले नाही\n\n## Predefined zoom values\n\npdfjs-page-scale-width = पृष्ठाची रूंदी\npdfjs-page-scale-fit = पृष्ठ बसवा\npdfjs-page-scale-auto = स्वयं लाहन किंवा मोठे करणे\npdfjs-page-scale-actual = प्रत्यक्ष आकार\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF लोड करतेवेळी त्रुटी आढळली.\npdfjs-invalid-file-error = अवैध किंवा दोषीत PDF फाइल.\npdfjs-missing-file-error = न आढळणारी PDF फाइल.\npdfjs-unexpected-response-error = अनपेक्षित सर्व्हर प्रतिसाद.\npdfjs-rendering-error = पृष्ठ दाखवतेवेळी त्रुटी आढळली.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } टिपण्णी]\n\n## Password\n\npdfjs-password-label = ही PDF फाइल उघडण्याकरिता पासवर्ड द्या.\npdfjs-password-invalid = अवैध पासवर्ड. कृपया पुन्हा प्रयत्न करा.\npdfjs-password-ok-button = ठीक आहे\npdfjs-password-cancel-button = रद्द करा\npdfjs-web-fonts-disabled = वेब टंक असमर्थीत आहेत: एम्बेडेड PDF टंक वापर अशक्य.\n"
  },
  {
    "path": "viewer/locale/ms/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Halaman Dahulu\npdfjs-previous-button-label = Dahulu\npdfjs-next-button =\n    .title = Halaman Berikut\npdfjs-next-button-label = Berikut\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Halaman\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = daripada { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } daripada { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zum Keluar\npdfjs-zoom-out-button-label = Zum Keluar\npdfjs-zoom-in-button =\n    .title = Zum Masuk\npdfjs-zoom-in-button-label = Zum Masuk\npdfjs-zoom-select =\n    .title = Zum\npdfjs-presentation-mode-button =\n    .title = Tukar ke Mod Persembahan\npdfjs-presentation-mode-button-label = Mod Persembahan\npdfjs-open-file-button =\n    .title = Buka Fail\npdfjs-open-file-button-label = Buka\npdfjs-print-button =\n    .title = Cetak\npdfjs-print-button-label = Cetak\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Alatan\npdfjs-tools-button-label = Alatan\npdfjs-first-page-button =\n    .title = Pergi ke Halaman Pertama\npdfjs-first-page-button-label = Pergi ke Halaman Pertama\npdfjs-last-page-button =\n    .title = Pergi ke Halaman Terakhir\npdfjs-last-page-button-label = Pergi ke Halaman Terakhir\npdfjs-page-rotate-cw-button =\n    .title = Berputar ikut arah Jam\npdfjs-page-rotate-cw-button-label = Berputar ikut arah Jam\npdfjs-page-rotate-ccw-button =\n    .title = Pusing berlawan arah jam\npdfjs-page-rotate-ccw-button-label = Pusing berlawan arah jam\npdfjs-cursor-text-select-tool-button =\n    .title = Dayakan Alatan Pilihan Teks\npdfjs-cursor-text-select-tool-button-label = Alatan Pilihan Teks\npdfjs-cursor-hand-tool-button =\n    .title = Dayakan Alatan Tangan\npdfjs-cursor-hand-tool-button-label = Alatan Tangan\npdfjs-scroll-vertical-button =\n    .title = Guna Skrol Menegak\npdfjs-scroll-vertical-button-label = Skrol Menegak\npdfjs-scroll-horizontal-button =\n    .title = Guna Skrol Mengufuk\npdfjs-scroll-horizontal-button-label = Skrol Mengufuk\npdfjs-scroll-wrapped-button =\n    .title = Guna Skrol Berbalut\npdfjs-scroll-wrapped-button-label = Skrol Berbalut\npdfjs-spread-none-button =\n    .title = Jangan hubungkan hamparan halaman\npdfjs-spread-none-button-label = Tanpa Hamparan\npdfjs-spread-odd-button =\n    .title = Hubungkan hamparan halaman dengan halaman nombor ganjil\npdfjs-spread-odd-button-label = Hamparan Ganjil\npdfjs-spread-even-button =\n    .title = Hubungkan hamparan halaman dengan halaman nombor genap\npdfjs-spread-even-button-label = Hamparan Seimbang\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Sifat Dokumen…\npdfjs-document-properties-button-label = Sifat Dokumen…\npdfjs-document-properties-file-name = Nama fail:\npdfjs-document-properties-file-size = Saiz fail:\npdfjs-document-properties-title = Tajuk:\npdfjs-document-properties-author = Pengarang:\npdfjs-document-properties-subject = Subjek:\npdfjs-document-properties-keywords = Kata kunci:\npdfjs-document-properties-creation-date = Masa Dicipta:\npdfjs-document-properties-modification-date = Tarikh Ubahsuai:\npdfjs-document-properties-creator = Pencipta:\npdfjs-document-properties-producer = Pengeluar PDF:\npdfjs-document-properties-version = Versi PDF:\npdfjs-document-properties-page-count = Kiraan Laman:\npdfjs-document-properties-page-size = Saiz Halaman:\npdfjs-document-properties-page-size-unit-inches = dalam\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = potret\npdfjs-document-properties-page-size-orientation-landscape = landskap\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Paparan Web Pantas:\npdfjs-document-properties-linearized-yes = Ya\npdfjs-document-properties-linearized-no = Tidak\npdfjs-document-properties-close-button = Tutup\n\n## Print\n\npdfjs-print-progress-message = Menyediakan dokumen untuk dicetak…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Batal\npdfjs-printing-not-supported = Amaran: Cetakan ini tidak sepenuhnya disokong oleh pelayar ini.\npdfjs-printing-not-ready = Amaran: PDF tidak sepenuhnya dimuatkan untuk dicetak.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Togol Bar Sisi\npdfjs-toggle-sidebar-button-label = Togol Bar Sisi\npdfjs-document-outline-button =\n    .title = Papar Rangka Dokumen (klik-dua-kali untuk kembangkan/kolaps semua item)\npdfjs-document-outline-button-label = Rangka Dokumen\npdfjs-attachments-button =\n    .title = Papar Lampiran\npdfjs-attachments-button-label = Lampiran\npdfjs-thumbs-button =\n    .title = Papar Thumbnails\npdfjs-thumbs-button-label = Imej kecil\npdfjs-findbar-button =\n    .title = Cari didalam Dokumen\npdfjs-findbar-button-label = Cari\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Halaman { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Halaman Imej kecil { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Cari\n    .placeholder = Cari dalam dokumen…\npdfjs-find-previous-button =\n    .title = Cari teks frasa berkenaan yang terdahulu\npdfjs-find-previous-button-label = Dahulu\npdfjs-find-next-button =\n    .title = Cari teks frasa berkenaan yang berikut\npdfjs-find-next-button-label = Berikut\npdfjs-find-highlight-checkbox = Serlahkan semua\npdfjs-find-match-case-checkbox-label = Huruf sepadan\npdfjs-find-entire-word-checkbox-label = Seluruh perkataan\npdfjs-find-reached-top = Mencapai teratas daripada dokumen, sambungan daripada bawah\npdfjs-find-reached-bottom = Mencapai terakhir daripada dokumen, sambungan daripada atas\npdfjs-find-not-found = Frasa tidak ditemui\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lebar Halaman\npdfjs-page-scale-fit = Muat Halaman\npdfjs-page-scale-auto = Zoom Automatik\npdfjs-page-scale-actual = Saiz Sebenar\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Masalah berlaku semasa menuatkan sebuah PDF.\npdfjs-invalid-file-error = Tidak sah atau fail PDF rosak.\npdfjs-missing-file-error = Fail PDF Hilang.\npdfjs-unexpected-response-error = Respon pelayan yang tidak dijangka.\npdfjs-rendering-error = Ralat berlaku ketika memberikan halaman.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Anotasi]\n\n## Password\n\npdfjs-password-label = Masukan kata kunci untuk membuka fail PDF ini.\npdfjs-password-invalid = Kata laluan salah. Cuba lagi.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Batal\npdfjs-web-fonts-disabled = Fon web dinyahdayakan: tidak dapat menggunakan fon terbenam PDF.\n"
  },
  {
    "path": "viewer/locale/my/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = အရင် စာမျက်နှာ\npdfjs-previous-button-label = အရင်နေရာ\npdfjs-next-button =\n    .title = ရှေ့ စာမျက်နှာ\npdfjs-next-button-label = နောက်တခု\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = စာမျက်နှာ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ၏\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } ၏ { $pageNumber })\npdfjs-zoom-out-button =\n    .title = ချုံ့ပါ\npdfjs-zoom-out-button-label = ချုံ့ပါ\npdfjs-zoom-in-button =\n    .title = ချဲ့ပါ\npdfjs-zoom-in-button-label = ချဲ့ပါ\npdfjs-zoom-select =\n    .title = ချုံ့/ချဲ့ပါ\npdfjs-presentation-mode-button =\n    .title = ဆွေးနွေးတင်ပြစနစ်သို့ ကူးပြောင်းပါ\npdfjs-presentation-mode-button-label = ဆွေးနွေးတင်ပြစနစ်\npdfjs-open-file-button =\n    .title = ဖိုင်အားဖွင့်ပါ။\npdfjs-open-file-button-label = ဖွင့်ပါ\npdfjs-print-button =\n    .title = ပုံနှိုပ်ပါ\npdfjs-print-button-label = ပုံနှိုပ်ပါ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ကိရိယာများ\npdfjs-tools-button-label = ကိရိယာများ\npdfjs-first-page-button =\n    .title = ပထမ စာမျက်နှာသို့\npdfjs-first-page-button-label = ပထမ စာမျက်နှာသို့\npdfjs-last-page-button =\n    .title = နောက်ဆုံး စာမျက်နှာသို့\npdfjs-last-page-button-label = နောက်ဆုံး စာမျက်နှာသို့\npdfjs-page-rotate-cw-button =\n    .title = နာရီလက်တံ အတိုင်း\npdfjs-page-rotate-cw-button-label = နာရီလက်တံ အတိုင်း\npdfjs-page-rotate-ccw-button =\n    .title = နာရီလက်တံ ပြောင်းပြန်\npdfjs-page-rotate-ccw-button-label = နာရီလက်တံ ပြောင်းပြန်\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = မှတ်တမ်းမှတ်ရာ ဂုဏ်သတ္တိများ\npdfjs-document-properties-button-label = မှတ်တမ်းမှတ်ရာ ဂုဏ်သတ္တိများ\npdfjs-document-properties-file-name = ဖိုင် :\npdfjs-document-properties-file-size = ဖိုင်ဆိုဒ် :\npdfjs-document-properties-title = ခေါင်းစဉ်‌ -\npdfjs-document-properties-author = ရေးသားသူ:\npdfjs-document-properties-subject = အကြောင်းအရာ:\npdfjs-document-properties-keywords = သော့ချက် စာလုံး:\npdfjs-document-properties-creation-date = ထုတ်လုပ်ရက်စွဲ:\npdfjs-document-properties-modification-date = ပြင်ဆင်ရက်စွဲ:\npdfjs-document-properties-creator = ဖန်တီးသူ:\npdfjs-document-properties-producer = PDF ထုတ်လုပ်သူ:\npdfjs-document-properties-version = PDF ဗားရှင်း:\npdfjs-document-properties-page-count = စာမျက်နှာအရေအတွက်:\n\n##\n\npdfjs-document-properties-close-button = ပိတ်\n\n## Print\n\npdfjs-print-progress-message = Preparing document for printing…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ပယ်​ဖျက်ပါ\npdfjs-printing-not-supported = သတိပေးချက်၊ပရင့်ထုတ်ခြင်းကိုဤဘယောက်ဆာသည် ပြည့်ဝစွာထောက်ပံ့မထားပါ ။\npdfjs-printing-not-ready = သတိပေးချက်: ယခု PDF ဖိုင်သည် ပုံနှိပ်ရန် မပြည့်စုံပါ\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ဘေးတန်းဖွင့်ပိတ်\npdfjs-toggle-sidebar-button-label = ဖွင့်ပိတ် ဆလိုက်ဒါ\npdfjs-document-outline-button =\n    .title = စာတမ်းအကျဉ်းချုပ်ကို ပြပါ (စာရင်းအားလုံးကို ချုံ့/ချဲ့ရန် ကလစ်နှစ်ချက်နှိပ်ပါ)\npdfjs-document-outline-button-label = စာတမ်းအကျဉ်းချုပ်\npdfjs-attachments-button =\n    .title = တွဲချက်များ ပြပါ\npdfjs-attachments-button-label = တွဲထားချက်များ\npdfjs-thumbs-button =\n    .title = ပုံရိပ်ငယ်များကို ပြပါ\npdfjs-thumbs-button-label = ပုံရိပ်ငယ်များ\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = ရှာဖွေပါ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = စာမျက်နှာ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = စာမျက်နှာရဲ့ ပုံရိပ်ငယ် { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ရှာဖွေပါ\n    .placeholder = စာတမ်းထဲတွင် ရှာဖွေရန်…\npdfjs-find-previous-button =\n    .title = စကားစုရဲ့ အရင် ​ဖြစ်ပွားမှုကို ရှာဖွေပါ\npdfjs-find-previous-button-label = နောက်သို့\npdfjs-find-next-button =\n    .title = စကားစုရဲ့ နောက်ထပ် ​ဖြစ်ပွားမှုကို ရှာဖွေပါ\npdfjs-find-next-button-label = ရှေ့သို့\npdfjs-find-highlight-checkbox = အားလုံးကို မျဉ်းသားပါ\npdfjs-find-match-case-checkbox-label = စာလုံး တိုက်ဆိုင်ပါ\npdfjs-find-reached-top = စာမျက်နှာထိပ် ရောက်နေပြီ၊ အဆုံးကနေ ပြန်စပါ\npdfjs-find-reached-bottom = စာမျက်နှာအဆုံး ရောက်နေပြီ၊ ထိပ်ကနေ ပြန်စပါ\npdfjs-find-not-found = စကားစု မတွေ့ရဘူး\n\n## Predefined zoom values\n\npdfjs-page-scale-width = စာမျက်နှာ အကျယ်\npdfjs-page-scale-fit = စာမျက်နှာ ကွက်တိ\npdfjs-page-scale-auto = အလိုအလျောက် ချုံ့ချဲ့\npdfjs-page-scale-actual = အမှန်တကယ်ရှိတဲ့ အရွယ်\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ဖိုင် ကိုဆွဲတင်နေချိန်မှာ အမှားတစ်ခုတွေ့ရပါတယ်။\npdfjs-invalid-file-error = မရသော သို့ ပျက်နေသော PDF ဖိုင်\npdfjs-missing-file-error = PDF ပျောက်ဆုံး\npdfjs-unexpected-response-error = မမျှော်လင့်ထားသော ဆာဗာမှ ပြန်ကြားချက်\npdfjs-rendering-error = စာမျက်နှာကို ပုံဖော်နေချိန်မှာ အမှားတစ်ခုတွေ့ရပါတယ်။\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } အဓိပ္ပာယ်ဖွင့်ဆိုချက်]\n\n## Password\n\npdfjs-password-label = ယခု PDF ကို ဖွင့်ရန် စကားဝှက်ကို ရိုက်ပါ။\npdfjs-password-invalid = စာဝှက် မှားသည်။ ထပ်ကြိုးစားကြည့်ပါ။\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = ပယ်​ဖျက်ပါ\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\n"
  },
  {
    "path": "viewer/locale/nb-NO/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Forrige side\npdfjs-previous-button-label = Forrige\npdfjs-next-button =\n    .title = Neste side\npdfjs-next-button-label = Neste\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Side\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = av { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } av { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom ut\npdfjs-zoom-out-button-label = Zoom ut\npdfjs-zoom-in-button =\n    .title = Zoom inn\npdfjs-zoom-in-button-label = Zoom inn\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Bytt til presentasjonsmodus\npdfjs-presentation-mode-button-label = Presentasjonsmodus\npdfjs-open-file-button =\n    .title = Åpne fil\npdfjs-open-file-button-label = Åpne\npdfjs-print-button =\n    .title = Skriv ut\npdfjs-print-button-label = Skriv ut\npdfjs-save-button =\n    .title = Lagre\npdfjs-save-button-label = Lagre\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Last ned\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Last ned\npdfjs-bookmark-button =\n    .title = Gjeldende side (se URL fra gjeldende side)\npdfjs-bookmark-button-label = Gjeldende side\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Verktøy\npdfjs-tools-button-label = Verktøy\npdfjs-first-page-button =\n    .title = Gå til første side\npdfjs-first-page-button-label = Gå til første side\npdfjs-last-page-button =\n    .title = Gå til siste side\npdfjs-last-page-button-label = Gå til siste side\npdfjs-page-rotate-cw-button =\n    .title = Roter med klokken\npdfjs-page-rotate-cw-button-label = Roter med klokken\npdfjs-page-rotate-ccw-button =\n    .title = Roter mot klokken\npdfjs-page-rotate-ccw-button-label = Roter mot klokken\npdfjs-cursor-text-select-tool-button =\n    .title = Aktiver tekstmarkeringsverktøy\npdfjs-cursor-text-select-tool-button-label = Tekstmarkeringsverktøy\npdfjs-cursor-hand-tool-button =\n    .title = Aktiver handverktøy\npdfjs-cursor-hand-tool-button-label = Handverktøy\npdfjs-scroll-page-button =\n    .title = Bruk siderulling\npdfjs-scroll-page-button-label = Siderulling\npdfjs-scroll-vertical-button =\n    .title = Bruk vertikal rulling\npdfjs-scroll-vertical-button-label = Vertikal rulling\npdfjs-scroll-horizontal-button =\n    .title = Bruk horisontal rulling\npdfjs-scroll-horizontal-button-label = Horisontal rulling\npdfjs-scroll-wrapped-button =\n    .title = Bruk flersiderulling\npdfjs-scroll-wrapped-button-label = Flersiderulling\npdfjs-spread-none-button =\n    .title = Vis enkeltsider\npdfjs-spread-none-button-label = Enkeltsider\npdfjs-spread-odd-button =\n    .title = Vis oppslag med ulike sidenumre til venstre\npdfjs-spread-odd-button-label = Oppslag med forside\npdfjs-spread-even-button =\n    .title = Vis oppslag med like sidenumre til venstre\npdfjs-spread-even-button-label = Oppslag uten forside\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentegenskaper …\npdfjs-document-properties-button-label = Dokumentegenskaper …\npdfjs-document-properties-file-name = Filnavn:\npdfjs-document-properties-file-size = Filstørrelse:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Dokumentegenskaper …\npdfjs-document-properties-author = Forfatter:\npdfjs-document-properties-subject = Emne:\npdfjs-document-properties-keywords = Nøkkelord:\npdfjs-document-properties-creation-date = Opprettet dato:\npdfjs-document-properties-modification-date = Endret dato:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Opprettet av:\npdfjs-document-properties-producer = PDF-verktøy:\npdfjs-document-properties-version = PDF-versjon:\npdfjs-document-properties-page-count = Sideantall:\npdfjs-document-properties-page-size = Sidestørrelse:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = stående\npdfjs-document-properties-page-size-orientation-landscape = liggende\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Hurtig nettvisning:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nei\npdfjs-document-properties-close-button = Lukk\n\n## Print\n\npdfjs-print-progress-message = Forbereder dokument for utskrift …\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Avbryt\npdfjs-printing-not-supported = Advarsel: Utskrift er ikke fullstendig støttet av denne nettleseren.\npdfjs-printing-not-ready = Advarsel: PDF er ikke fullstendig innlastet for utskrift.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Slå av/på sidestolpe\npdfjs-toggle-sidebar-notification-button =\n    .title = Vis/gjem sidestolpe (dokumentet inneholder oversikt/vedlegg/lag)\npdfjs-toggle-sidebar-button-label = Slå av/på sidestolpe\npdfjs-document-outline-button =\n    .title = Vis dokumentdisposisjonen (dobbeltklikk for å utvide/skjule alle elementer)\npdfjs-document-outline-button-label = Dokumentdisposisjon\npdfjs-attachments-button =\n    .title = Vis vedlegg\npdfjs-attachments-button-label = Vedlegg\npdfjs-layers-button =\n    .title = Vis lag (dobbeltklikk for å tilbakestille alle lag til standardtilstand)\npdfjs-layers-button-label = Lag\npdfjs-thumbs-button =\n    .title = Vis miniatyrbilde\npdfjs-thumbs-button-label = Miniatyrbilde\npdfjs-current-outline-item-button =\n    .title = Finn gjeldende disposisjonselement\npdfjs-current-outline-item-button-label = Gjeldende disposisjonselement\npdfjs-findbar-button =\n    .title = Finn i dokumentet\npdfjs-findbar-button-label = Finn\npdfjs-additional-layers = Ytterligere lag\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Side { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatyrbilde av side { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Søk\n    .placeholder = Søk i dokument…\npdfjs-find-previous-button =\n    .title = Finn forrige forekomst av frasen\npdfjs-find-previous-button-label = Forrige\npdfjs-find-next-button =\n    .title = Finn neste forekomst av frasen\npdfjs-find-next-button-label = Neste\npdfjs-find-highlight-checkbox = Uthev alle\npdfjs-find-match-case-checkbox-label = Skill store/små bokstaver\npdfjs-find-match-diacritics-checkbox-label = Samsvar diakritiske tegn\npdfjs-find-entire-word-checkbox-label = Hele ord\npdfjs-find-reached-top = Nådde toppen av dokumentet, fortsetter fra bunnen\npdfjs-find-reached-bottom = Nådde bunnen av dokumentet, fortsetter fra toppen\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } av { $total } treff\n       *[other] { $current } av { $total } treff\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mer enn { $limit } treff\n       *[other] Mer enn { $limit } treff\n    }\npdfjs-find-not-found = Fant ikke teksten\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sidebredde\npdfjs-page-scale-fit = Tilpass til siden\npdfjs-page-scale-auto = Automatisk zoom\npdfjs-page-scale-actual = Virkelig størrelse\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Side { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = En feil oppstod ved lasting av PDF.\npdfjs-invalid-file-error = Ugyldig eller skadet PDF-fil.\npdfjs-missing-file-error = Manglende PDF-fil.\npdfjs-unexpected-response-error = Uventet serverrespons.\npdfjs-rendering-error = En feil oppstod ved opptegning av siden.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } annotasjon]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Skriv inn passordet for å åpne denne PDF-filen.\npdfjs-password-invalid = Ugyldig passord. Prøv igjen.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Avbryt\npdfjs-web-fonts-disabled = Web-fonter er avslått: Kan ikke bruke innbundne PDF-fonter.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Endre tekstfarge\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Tegn\npdfjs-editor-color-picker-ink-input =\n    .title = Endre tegnefarge\npdfjs-editor-ink-button-label = Tegn\npdfjs-editor-stamp-button =\n    .title = Legg til eller rediger bilder\npdfjs-editor-stamp-button-label = Legg til eller rediger bilder\npdfjs-editor-highlight-button =\n    .title = Markere\npdfjs-editor-highlight-button-label = Markere\npdfjs-highlight-floating-button1 =\n    .title = Markere\n    .aria-label = Markere\npdfjs-highlight-floating-button-label = Markere\npdfjs-comment-floating-button =\n    .title = Kommenter\n    .aria-label = Kommenter\npdfjs-comment-floating-button-label = Kommenter\npdfjs-editor-comment-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-editor-comment-button-label = Kommentar\npdfjs-editor-signature-button =\n    .title = Legg til signatur\npdfjs-editor-signature-button-label = Legg til signatur\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Redigering av markering\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Redigering av tegninger\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signatur-redigerer: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Bilderedigerer\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Fjern tegningen\npdfjs-editor-remove-freetext-button =\n    .title = Fjern tekst\npdfjs-editor-remove-stamp-button =\n    .title = Fjern bildet\npdfjs-editor-remove-highlight-button =\n    .title = Fjern utheving\npdfjs-editor-remove-signature-button =\n    .title = Fjern signatur\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Farge\npdfjs-editor-free-text-size-input = Størrelse\npdfjs-editor-ink-color-input = Farge\npdfjs-editor-ink-thickness-input = Tykkelse\npdfjs-editor-ink-opacity-input = Ugjennomsiktighet\npdfjs-editor-stamp-add-image-button =\n    .title = Legg til bilde\npdfjs-editor-stamp-add-image-button-label = Legg til bilde\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tykkelse\npdfjs-editor-free-highlight-thickness-title =\n    .title = Endre tykkelse når du markerer andre elementer enn tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Signaturkontroller og lagrede signaturer\npdfjs-editor-signature-add-signature-button =\n    .title = Legg til ny signatur\npdfjs-editor-signature-add-signature-button-label = Legg til ny signatur\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Lagret signatur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstredigering\n    .default-content = Begynn å skrive…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentar\n       *[other] Kommentarer\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Lukk sidestolpen\n    .aria-label = Lukk sidestolpen\npdfjs-editor-comments-sidebar-close-button-label = Lukk sidestolpen\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Ser du noe verdt å merke seg? Marker det og legg igjen en kommentar.\npdfjs-editor-comments-sidebar-no-comments-link = Les mer\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativ tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Rediger alternativ tekst\npdfjs-editor-alt-text-dialog-label = Velg et alternativ\npdfjs-editor-alt-text-dialog-description = Alt-tekst (alternativ tekst) hjelper når folk ikke kan se bildet eller når det ikke lastes inn.\npdfjs-editor-alt-text-add-description-label = Legg til en beskrivelse\npdfjs-editor-alt-text-add-description-description = Gå etter 1-2 setninger som beskriver emnet, settingen eller handlingene.\npdfjs-editor-alt-text-mark-decorative-label = Merk som dekorativt\npdfjs-editor-alt-text-mark-decorative-description = Dette brukes til dekorative bilder, som kantlinjer eller vannmerker.\npdfjs-editor-alt-text-cancel-button = Avbryt\npdfjs-editor-alt-text-save-button = Lagre\npdfjs-editor-alt-text-decorative-tooltip = Merket som dekorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = For eksempel, «En ung mann setter seg ved et bord for å spise et måltid»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativ tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Øverste venstre hjørne – endre størrelse\npdfjs-editor-resizer-top-middle =\n    .aria-label = Øverst i midten — endre størrelse\npdfjs-editor-resizer-top-right =\n    .aria-label = Øverste høyre hjørne – endre størrelse\npdfjs-editor-resizer-middle-right =\n    .aria-label = Midt til høyre – endre størrelse\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Nederste høyre hjørne – endre størrelse\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Nederst i midten — endre størrelse\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Nederste venstre hjørne – endre størrelse\npdfjs-editor-resizer-middle-left =\n    .aria-label = Midt til venstre — endre størrelse\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Uthevingsfarge\npdfjs-editor-colorpicker-button =\n    .title = Endre farge\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Fargevalg\npdfjs-editor-colorpicker-yellow =\n    .title = Gul\npdfjs-editor-colorpicker-green =\n    .title = Grønn\npdfjs-editor-colorpicker-blue =\n    .title = Blå\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Rød\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Vis alle\npdfjs-editor-highlight-show-all-button =\n    .title = Vis alle\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Rediger alternativ tekst (bildebeskrivelse)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Legg til alternativ tekst (bildebeskrivelse)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skriv din beskrivelse her…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kort beskrivelse for folk som ikke kan se bildet eller når bildet ikke lastes inn.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Denne alternative teksten ble opprettet automatisk og kan være unøyaktig.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Les mer\npdfjs-editor-new-alt-text-create-automatically-button-label = Lag alternativ tekst automatisk\npdfjs-editor-new-alt-text-not-now-button = Ikke nå\npdfjs-editor-new-alt-text-error-title = Kunne ikke opprette alternativ tekst automatisk\npdfjs-editor-new-alt-text-error-description = Skriv din egen alternativ tekst eller prøv igjen senere.\npdfjs-editor-new-alt-text-error-close-button = Lukk\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Laster ned alternativ tekst AI-modell ({ $downloadedSize } av { $totalSize } MB)\n    .aria-valuetext = Laster ned alternativ tekst AI-modell ({ $downloadedSize } av { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativ tekst lagt til\npdfjs-editor-new-alt-text-added-button-label = Alternativ tekst lagt til\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Mangler alternativ tekst\npdfjs-editor-new-alt-text-missing-button-label = Mangler alternativ tekst\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Gjennomgå alt-tekst\npdfjs-editor-new-alt-text-to-review-button-label = Gjennomgå alternativ tekst\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Opprettet automatisk: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Innstillinger for alternativ tekst for bilde\npdfjs-image-alt-text-settings-button-label = Innstillinger for alternativ tekst for bilde\npdfjs-editor-alt-text-settings-dialog-label = Innstillinger for alternativ tekst for bilde\npdfjs-editor-alt-text-settings-automatic-title = Automatisk alternativ tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Opprett alternativ tekst automatisk\npdfjs-editor-alt-text-settings-create-model-description = Foreslår beskrivelser for å hjelpe folk som ikke kan se bildet eller når bildet ikke lastes inn.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alternativ tekst AI-modell ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Kjører lokalt på enheten din slik at dataene dine forblir private. Nødvendig for automatisk alternativ tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Slett\npdfjs-editor-alt-text-settings-download-model-button = Last ned\npdfjs-editor-alt-text-settings-downloading-model-button = Laster ned…\npdfjs-editor-alt-text-settings-editor-title = Alternativ tekst-redigerer\npdfjs-editor-alt-text-settings-show-dialog-button-label = Vis alternativ tekst-redigerer direkte når du legger til et bilde\npdfjs-editor-alt-text-settings-show-dialog-description = Hjelper deg å sørge for at alle bildene dine har alternativ tekst.\npdfjs-editor-alt-text-settings-close-button = Lukk\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Utheving lagt til\npdfjs-editor-freetext-added-alert = Tekst lagt til\npdfjs-editor-ink-added-alert = Tegning lagt til\npdfjs-editor-stamp-added-alert = Bilde lagt til\npdfjs-editor-signature-added-alert = Signatur lagt til\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Markering fjernet\npdfjs-editor-undo-bar-message-freetext = Tekst fjernet\npdfjs-editor-undo-bar-message-ink = Tegning fjernet\npdfjs-editor-undo-bar-message-stamp = Bilde fjernet\npdfjs-editor-undo-bar-message-signature = Signatur fjernet\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } kommentar fjernet\n       *[other] { $count } kommentarer fjernet\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Angre\npdfjs-editor-undo-bar-undo-button-label = Angre\npdfjs-editor-undo-bar-close-button =\n    .title = Lukk\npdfjs-editor-undo-bar-close-button-label = Lukk\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Denne modalen lar brukeren lage en signatur for å legge til et PDF-dokument. Brukeren kan redigere navnet (som også fungerer som alt-teksten), og eventuelt lagre signaturen for gjentatt bruk.\npdfjs-editor-add-signature-dialog-title = Legg til en signatur\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Tegn\n    .title = Tegn\npdfjs-editor-add-signature-image-button = Bilde\n    .title = Bilde\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Skriv inn signaturen din\n    .placeholder = Skriv inn signaturen din\npdfjs-editor-add-signature-draw-placeholder = Tegn signaturen din\npdfjs-editor-add-signature-draw-thickness-range-label = Tykkelse\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Linjetykkelse: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Dra en fil her for å laste opp\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eller velg bildefiler\n       *[other] Eller velg bildefiler\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beskrivelse (alternativ tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Beskrivelse (alternativ tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Signatur\npdfjs-editor-add-signature-clear-button-label = Fjern signatur\npdfjs-editor-add-signature-clear-button =\n    .title = Fjern signatur\npdfjs-editor-add-signature-save-checkbox = Lagre signatur\npdfjs-editor-add-signature-save-warning-message = Du har nådd grensen på 5 lagrede signaturer. Fjern en for å lagre en ny.\npdfjs-editor-add-signature-image-upload-error-title = Kunne ikke laste opp bildet\npdfjs-editor-add-signature-image-upload-error-description = Sjekk nettverkstilkoblingen eller prøv et annet bilde.\npdfjs-editor-add-signature-image-no-data-error-title = Kan ikke konvertere dette bildet til en signatur\npdfjs-editor-add-signature-image-no-data-error-description = Prøv å laste opp et annet bilde.\npdfjs-editor-add-signature-error-close-button = Lukk\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Avbryt\npdfjs-editor-add-signature-add-button = Legg til\npdfjs-editor-edit-signature-update-button = Oppdater\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Rediger kommentar\npdfjs-editor-edit-comment-popup-button =\n    .title = Rediger kommentar\npdfjs-editor-delete-comment-popup-button-label = Fjern kommentar\npdfjs-editor-delete-comment-popup-button =\n    .title = Fjern kommentar\npdfjs-show-comment-button =\n    .title = Vis kommentar\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Handlinger\npdfjs-editor-edit-comment-actions-button =\n    .title = Handlinger\npdfjs-editor-edit-comment-close-button-label = Lukk\npdfjs-editor-edit-comment-close-button =\n    .title = Lukk\npdfjs-editor-edit-comment-actions-edit-button-label = Rediger\npdfjs-editor-edit-comment-actions-delete-button-label = Slett\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Skriv inn kommentaren din\npdfjs-editor-edit-comment-manager-cancel-button = Avbryt\npdfjs-editor-edit-comment-manager-save-button = Lagre\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Rediger kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Oppdater\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Legg til kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Legg til\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Begynn å skrive…\npdfjs-editor-edit-comment-dialog-cancel-button = Avbryt\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Rediger kommentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Fjern lagret signatur\npdfjs-editor-delete-signature-button-label1 = Fjern lagret signatur\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Rediger beskrivelse\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Rediger beskrivelse\n"
  },
  {
    "path": "viewer/locale/ne-NP/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = अघिल्लो पृष्ठ\npdfjs-previous-button-label = अघिल्लो\npdfjs-next-button =\n    .title = पछिल्लो पृष्ठ\npdfjs-next-button-label = पछिल्लो\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = पृष्ठ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } मध्ये\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pagesCount } को { $pageNumber })\npdfjs-zoom-out-button =\n    .title = जुम घटाउनुहोस्\npdfjs-zoom-out-button-label = जुम घटाउनुहोस्\npdfjs-zoom-in-button =\n    .title = जुम बढाउनुहोस्\npdfjs-zoom-in-button-label = जुम बढाउनुहोस्\npdfjs-zoom-select =\n    .title = जुम गर्नुहोस्\npdfjs-presentation-mode-button =\n    .title = प्रस्तुति मोडमा जानुहोस्\npdfjs-presentation-mode-button-label = प्रस्तुति मोड\npdfjs-open-file-button =\n    .title = फाइल खोल्नुहोस्\npdfjs-open-file-button-label = खोल्नुहोस्\npdfjs-print-button =\n    .title = मुद्रण गर्नुहोस्\npdfjs-print-button-label = मुद्रण गर्नुहोस्\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = औजारहरू\npdfjs-tools-button-label = औजारहरू\npdfjs-first-page-button =\n    .title = पहिलो पृष्ठमा जानुहोस्\npdfjs-first-page-button-label = पहिलो पृष्ठमा जानुहोस्\npdfjs-last-page-button =\n    .title = पछिल्लो पृष्ठमा जानुहोस्\npdfjs-last-page-button-label = पछिल्लो पृष्ठमा जानुहोस्\npdfjs-page-rotate-cw-button =\n    .title = घडीको दिशामा घुमाउनुहोस्\npdfjs-page-rotate-cw-button-label = घडीको दिशामा घुमाउनुहोस्\npdfjs-page-rotate-ccw-button =\n    .title = घडीको विपरित दिशामा घुमाउनुहोस्\npdfjs-page-rotate-ccw-button-label = घडीको विपरित दिशामा घुमाउनुहोस्\npdfjs-cursor-text-select-tool-button =\n    .title = पाठ चयन उपकरण सक्षम गर्नुहोस्\npdfjs-cursor-text-select-tool-button-label = पाठ चयन उपकरण\npdfjs-cursor-hand-tool-button =\n    .title = हाते उपकरण सक्षम गर्नुहोस्\npdfjs-cursor-hand-tool-button-label = हाते उपकरण\npdfjs-scroll-vertical-button =\n    .title = ठाडो स्क्रोलिङ्ग प्रयोग गर्नुहोस्\npdfjs-scroll-vertical-button-label = ठाडो स्क्र्रोलिङ्ग\npdfjs-scroll-horizontal-button =\n    .title = तेर्सो स्क्रोलिङ्ग प्रयोग गर्नुहोस्\npdfjs-scroll-horizontal-button-label = तेर्सो स्क्रोलिङ्ग\npdfjs-scroll-wrapped-button =\n    .title = लिपि स्क्रोलिङ्ग प्रयोग गर्नुहोस्\npdfjs-scroll-wrapped-button-label = लिपि स्क्रोलिङ्ग\npdfjs-spread-none-button =\n    .title = पृष्ठ स्प्रेडमा सामेल हुनुहुन्न\npdfjs-spread-none-button-label = स्प्रेड छैन\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = कागजात विशेषताहरू...\npdfjs-document-properties-button-label = कागजात विशेषताहरू...\npdfjs-document-properties-file-name = फाइल नाम:\npdfjs-document-properties-file-size = फाइल आकार:\npdfjs-document-properties-title = शीर्षक:\npdfjs-document-properties-author = लेखक:\npdfjs-document-properties-subject = विषयः\npdfjs-document-properties-keywords = शब्दकुञ्जीः\npdfjs-document-properties-creation-date = सिर्जना गरिएको मिति:\npdfjs-document-properties-modification-date = परिमार्जित मिति:\npdfjs-document-properties-creator = सर्जक:\npdfjs-document-properties-producer = PDF निर्माता:\npdfjs-document-properties-version = PDF संस्करण\npdfjs-document-properties-page-count = पृष्ठ गणना:\npdfjs-document-properties-page-size = पृष्ठ आकार:\npdfjs-document-properties-page-size-unit-inches = इन्च\npdfjs-document-properties-page-size-unit-millimeters = मि.मि.\npdfjs-document-properties-page-size-orientation-portrait = पोट्रेट\npdfjs-document-properties-page-size-orientation-landscape = परिदृश्य\npdfjs-document-properties-page-size-name-letter = अक्षर\npdfjs-document-properties-page-size-name-legal = कानूनी\n\n##\n\npdfjs-document-properties-linearized-yes = हो\npdfjs-document-properties-linearized-no = होइन\npdfjs-document-properties-close-button = बन्द गर्नुहोस्\n\n## Print\n\npdfjs-print-progress-message = मुद्रणका लागि कागजात तयारी गरिदै…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = रद्द गर्नुहोस्\npdfjs-printing-not-supported = चेतावनी: यो ब्राउजरमा मुद्रण पूर्णतया समर्थित छैन।\npdfjs-printing-not-ready = चेतावनी: PDF मुद्रणका लागि पूर्णतया लोड भएको छैन।\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = टगल साइडबार\npdfjs-toggle-sidebar-button-label = टगल साइडबार\npdfjs-document-outline-button =\n    .title = कागजातको रूपरेखा देखाउनुहोस् (सबै वस्तुहरू विस्तार/पतन गर्न डबल-क्लिक गर्नुहोस्)\npdfjs-document-outline-button-label = दस्तावेजको रूपरेखा\npdfjs-attachments-button =\n    .title = संलग्नहरू देखाउनुहोस्\npdfjs-attachments-button-label = संलग्नकहरू\npdfjs-thumbs-button =\n    .title = थम्बनेलहरू देखाउनुहोस्\npdfjs-thumbs-button-label = थम्बनेलहरू\npdfjs-findbar-button =\n    .title = कागजातमा फेला पार्नुहोस्\npdfjs-findbar-button-label = फेला पार्नुहोस्\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = पृष्ठ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } पृष्ठको थम्बनेल\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = फेला पार्नुहोस्\n    .placeholder = कागजातमा फेला पार्नुहोस्…\npdfjs-find-previous-button =\n    .title = यस वाक्यांशको अघिल्लो घटना फेला पार्नुहोस्\npdfjs-find-previous-button-label = अघिल्लो\npdfjs-find-next-button =\n    .title = यस वाक्यांशको पछिल्लो घटना फेला पार्नुहोस्\npdfjs-find-next-button-label = अर्को\npdfjs-find-highlight-checkbox = सबै हाइलाइट गर्ने\npdfjs-find-match-case-checkbox-label = केस जोडा मिलाउनुहोस्\npdfjs-find-entire-word-checkbox-label = पुरा शब्दहरु\npdfjs-find-reached-top = पृष्ठको शिर्षमा पुगीयो, तलबाट जारी गरिएको थियो\npdfjs-find-reached-bottom = पृष्ठको अन्त्यमा पुगीयो, शिर्षबाट जारी गरिएको थियो\npdfjs-find-not-found = वाक्यांश फेला परेन\n\n## Predefined zoom values\n\npdfjs-page-scale-width = पृष्ठ चौडाइ\npdfjs-page-scale-fit = पृष्ठ ठिक्क मिल्ने\npdfjs-page-scale-auto = स्वचालित जुम\npdfjs-page-scale-actual = वास्तविक आकार\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = यो PDF लोड गर्दा एउटा त्रुटि देखापर्‍यो।\npdfjs-invalid-file-error = अवैध वा दुषित PDF फाइल।\npdfjs-missing-file-error = हराईरहेको PDF फाइल।\npdfjs-unexpected-response-error = अप्रत्याशित सर्भर प्रतिक्रिया।\npdfjs-rendering-error = पृष्ठ प्रतिपादन गर्दा एउटा त्रुटि देखापर्‍यो।\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = यस PDF फाइललाई खोल्न गोप्यशब्द प्रविष्ट गर्नुहोस्।\npdfjs-password-invalid = अवैध गोप्यशब्द। पुनः प्रयास गर्नुहोस्।\npdfjs-password-ok-button = ठिक छ\npdfjs-password-cancel-button = रद्द गर्नुहोस्\npdfjs-web-fonts-disabled = वेब फन्ट असक्षम छन्: एम्बेडेड PDF फन्ट प्रयोग गर्न असमर्थ।\n"
  },
  {
    "path": "viewer/locale/nl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Vorige pagina\npdfjs-previous-button-label = Vorige\npdfjs-next-button =\n    .title = Volgende pagina\npdfjs-next-button-label = Volgende\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = van { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } van { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Uitzoomen\npdfjs-zoom-out-button-label = Uitzoomen\npdfjs-zoom-in-button =\n    .title = Inzoomen\npdfjs-zoom-in-button-label = Inzoomen\npdfjs-zoom-select =\n    .title = Zoomen\npdfjs-presentation-mode-button =\n    .title = Wisselen naar presentatiemodus\npdfjs-presentation-mode-button-label = Presentatiemodus\npdfjs-open-file-button =\n    .title = Bestand openen\npdfjs-open-file-button-label = Openen\npdfjs-print-button =\n    .title = Afdrukken\npdfjs-print-button-label = Afdrukken\npdfjs-save-button =\n    .title = Opslaan\npdfjs-save-button-label = Opslaan\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Downloaden\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Downloaden\npdfjs-bookmark-button =\n    .title = Huidige pagina (URL van huidige pagina bekijken)\npdfjs-bookmark-button-label = Huidige pagina\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Hulpmiddelen\npdfjs-tools-button-label = Hulpmiddelen\npdfjs-first-page-button =\n    .title = Naar eerste pagina gaan\npdfjs-first-page-button-label = Naar eerste pagina gaan\npdfjs-last-page-button =\n    .title = Naar laatste pagina gaan\npdfjs-last-page-button-label = Naar laatste pagina gaan\npdfjs-page-rotate-cw-button =\n    .title = Rechtsom draaien\npdfjs-page-rotate-cw-button-label = Rechtsom draaien\npdfjs-page-rotate-ccw-button =\n    .title = Linksom draaien\npdfjs-page-rotate-ccw-button-label = Linksom draaien\npdfjs-cursor-text-select-tool-button =\n    .title = Tekstselectiehulpmiddel inschakelen\npdfjs-cursor-text-select-tool-button-label = Tekstselectiehulpmiddel\npdfjs-cursor-hand-tool-button =\n    .title = Handhulpmiddel inschakelen\npdfjs-cursor-hand-tool-button-label = Handhulpmiddel\npdfjs-scroll-page-button =\n    .title = Paginascrollen gebruiken\npdfjs-scroll-page-button-label = Paginascrollen\npdfjs-scroll-vertical-button =\n    .title = Verticaal scrollen gebruiken\npdfjs-scroll-vertical-button-label = Verticaal scrollen\npdfjs-scroll-horizontal-button =\n    .title = Horizontaal scrollen gebruiken\npdfjs-scroll-horizontal-button-label = Horizontaal scrollen\npdfjs-scroll-wrapped-button =\n    .title = Scrollen met terugloop gebruiken\npdfjs-scroll-wrapped-button-label = Scrollen met terugloop\npdfjs-spread-none-button =\n    .title = Dubbele pagina’s niet samenvoegen\npdfjs-spread-none-button-label = Geen dubbele pagina’s\npdfjs-spread-odd-button =\n    .title = Dubbele pagina’s samenvoegen vanaf oneven pagina’s\npdfjs-spread-odd-button-label = Oneven dubbele pagina’s\npdfjs-spread-even-button =\n    .title = Dubbele pagina’s samenvoegen vanaf even pagina’s\npdfjs-spread-even-button-label = Even dubbele pagina’s\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Documenteigenschappen…\npdfjs-document-properties-button-label = Documenteigenschappen…\npdfjs-document-properties-file-name = Bestandsnaam:\npdfjs-document-properties-file-size = Bestandsgrootte:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Auteur:\npdfjs-document-properties-subject = Onderwerp:\npdfjs-document-properties-keywords = Sleutelwoorden:\npdfjs-document-properties-creation-date = Aanmaakdatum:\npdfjs-document-properties-modification-date = Wijzigingsdatum:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Maker:\npdfjs-document-properties-producer = PDF-producent:\npdfjs-document-properties-version = PDF-versie:\npdfjs-document-properties-page-count = Aantal pagina’s:\npdfjs-document-properties-page-size = Paginagrootte:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = staand\npdfjs-document-properties-page-size-orientation-landscape = liggend\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Snelle webweergave:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nee\npdfjs-document-properties-close-button = Sluiten\n\n## Print\n\npdfjs-print-progress-message = Document voorbereiden voor afdrukken…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Annuleren\npdfjs-printing-not-supported = Waarschuwing: afdrukken wordt niet volledig ondersteund door deze browser.\npdfjs-printing-not-ready = Waarschuwing: de PDF is niet volledig geladen voor afdrukken.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Zijbalk in-/uitschakelen\npdfjs-toggle-sidebar-notification-button =\n    .title = Zijbalk in-/uitschakelen (document bevat overzicht/bijlagen/lagen)\npdfjs-toggle-sidebar-button-label = Zijbalk in-/uitschakelen\npdfjs-document-outline-button =\n    .title = Documentoverzicht tonen (dubbelklik om alle items uit/samen te vouwen)\npdfjs-document-outline-button-label = Documentoverzicht\npdfjs-attachments-button =\n    .title = Bijlagen tonen\npdfjs-attachments-button-label = Bijlagen\npdfjs-layers-button =\n    .title = Lagen tonen (dubbelklik om alle lagen naar de standaardstatus terug te zetten)\npdfjs-layers-button-label = Lagen\npdfjs-thumbs-button =\n    .title = Miniaturen tonen\npdfjs-thumbs-button-label = Miniaturen\npdfjs-current-outline-item-button =\n    .title = Huidig item in inhoudsopgave zoeken\npdfjs-current-outline-item-button-label = Huidig item in inhoudsopgave\npdfjs-findbar-button =\n    .title = Zoeken in document\npdfjs-findbar-button-label = Zoeken\npdfjs-additional-layers = Aanvullende lagen\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatuur van pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Zoeken\n    .placeholder = Zoeken in document…\npdfjs-find-previous-button =\n    .title = De vorige overeenkomst van de tekst zoeken\npdfjs-find-previous-button-label = Vorige\npdfjs-find-next-button =\n    .title = De volgende overeenkomst van de tekst zoeken\npdfjs-find-next-button-label = Volgende\npdfjs-find-highlight-checkbox = Alles markeren\npdfjs-find-match-case-checkbox-label = Hoofdlettergevoelig\npdfjs-find-match-diacritics-checkbox-label = Diakritische tekens gebruiken\npdfjs-find-entire-word-checkbox-label = Hele woorden\npdfjs-find-reached-top = Bovenkant van document bereikt, doorgegaan vanaf onderkant\npdfjs-find-reached-bottom = Onderkant van document bereikt, doorgegaan vanaf bovenkant\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } van { $total } overeenkomst\n       *[other] { $current } van { $total } overeenkomsten\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Meer dan { $limit } overeenkomst\n       *[other] Meer dan { $limit } overeenkomsten\n    }\npdfjs-find-not-found = Tekst niet gevonden\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Paginabreedte\npdfjs-page-scale-fit = Hele pagina\npdfjs-page-scale-auto = Automatisch zoomen\npdfjs-page-scale-actual = Werkelijke grootte\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Er is een fout opgetreden bij het laden van de PDF.\npdfjs-invalid-file-error = Ongeldig of beschadigd PDF-bestand.\npdfjs-missing-file-error = PDF-bestand ontbreekt.\npdfjs-unexpected-response-error = Onverwacht serverantwoord.\npdfjs-rendering-error = Er is een fout opgetreden bij het weergeven van de pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-aantekening]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Voer het wachtwoord in om dit PDF-bestand te openen.\npdfjs-password-invalid = Ongeldig wachtwoord. Probeer het opnieuw.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Annuleren\npdfjs-web-fonts-disabled = Weblettertypen zijn uitgeschakeld: gebruik van ingebedde PDF-lettertypen is niet mogelijk.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Tekstkleur wijzigen\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Tekenen\npdfjs-editor-color-picker-ink-input =\n    .title = Tekenkleur wijzigen\npdfjs-editor-ink-button-label = Tekenen\npdfjs-editor-stamp-button =\n    .title = Afbeeldingen toevoegen of bewerken\npdfjs-editor-stamp-button-label = Afbeeldingen toevoegen of bewerken\npdfjs-editor-highlight-button =\n    .title = Markeren\npdfjs-editor-highlight-button-label = Markeren\npdfjs-highlight-floating-button1 =\n    .title = Markeren\n    .aria-label = Markeren\npdfjs-highlight-floating-button-label = Markeren\npdfjs-comment-floating-button =\n    .title = Opmerking\n    .aria-label = Opmerking\npdfjs-comment-floating-button-label = Opmerking\npdfjs-editor-comment-button =\n    .title = Opmerking\n    .aria-label = Opmerking\npdfjs-editor-comment-button-label = Opmerking\npdfjs-editor-signature-button =\n    .title = Handtekening toevoegen\npdfjs-editor-signature-button-label = Handtekening toevoegen\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Markeringsbewerker\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Tekeningbewerker\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Ondertekening-editor: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Afbeeldingsbewerker\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Tekening verwijderen\npdfjs-editor-remove-freetext-button =\n    .title = Tekst verwijderen\npdfjs-editor-remove-stamp-button =\n    .title = Afbeelding verwijderen\npdfjs-editor-remove-highlight-button =\n    .title = Markering verwijderen\npdfjs-editor-remove-signature-button =\n    .title = Handtekening verwijderen\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Kleur\npdfjs-editor-free-text-size-input = Grootte\npdfjs-editor-ink-color-input = Kleur\npdfjs-editor-ink-thickness-input = Dikte\npdfjs-editor-ink-opacity-input = Opaciteit\npdfjs-editor-stamp-add-image-button =\n    .title = Afbeelding toevoegen\npdfjs-editor-stamp-add-image-button-label = Afbeelding toevoegen\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Dikte\npdfjs-editor-free-highlight-thickness-title =\n    .title = Dikte wijzigen bij accentuering van andere items dan tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Ondertekeningsinstellingen en opgeslagen ondertekeningen\npdfjs-editor-signature-add-signature-button =\n    .title = Nieuwe handtekening toevoegen\npdfjs-editor-signature-add-signature-button-label = Nieuwe handtekening toevoegen\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Opgeslagen ondertekening: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstbewerker\n    .default-content = Start met typen…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Opmerking\n       *[other] Opmerkingen\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = De zijbalk sluiten\n    .aria-label = De zijbalk sluiten\npdfjs-editor-comments-sidebar-close-button-label = De zijbalk sluiten\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Ziet u iets noemenswaardigs? Markeer het en laat een opmerking achter.\npdfjs-editor-comments-sidebar-no-comments-link = Meer info\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatieve tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternatieve tekst bewerken\npdfjs-editor-alt-text-dialog-label = Kies een optie\npdfjs-editor-alt-text-dialog-description = Alternatieve tekst helpt wanneer mensen de afbeelding niet kunnen zien of wanneer deze niet wordt geladen.\npdfjs-editor-alt-text-add-description-label = Voeg een beschrijving toe\npdfjs-editor-alt-text-add-description-description = Streef naar 1-2 zinnen die het onderwerp, de omgeving of de acties beschrijven.\npdfjs-editor-alt-text-mark-decorative-label = Als decoratief markeren\npdfjs-editor-alt-text-mark-decorative-description = Dit wordt gebruikt voor sierafbeeldingen, zoals randen of watermerken.\npdfjs-editor-alt-text-cancel-button = Annuleren\npdfjs-editor-alt-text-save-button = Opslaan\npdfjs-editor-alt-text-decorative-tooltip = Als decoratief gemarkeerd\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Bijvoorbeeld: ‘Een jonge man gaat aan een tafel zitten om te eten’\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatieve tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Linkerbovenhoek – formaat wijzigen\npdfjs-editor-resizer-top-middle =\n    .aria-label = Midden boven – formaat wijzigen\npdfjs-editor-resizer-top-right =\n    .aria-label = Rechterbovenhoek – formaat wijzigen\npdfjs-editor-resizer-middle-right =\n    .aria-label = Midden rechts – formaat wijzigen\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Rechterbenedenhoek – formaat wijzigen\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Midden onder – formaat wijzigen\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Linkerbenedenhoek – formaat wijzigen\npdfjs-editor-resizer-middle-left =\n    .aria-label = Links midden – formaat wijzigen\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Markeringskleur\npdfjs-editor-colorpicker-button =\n    .title = Kleur wijzigen\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Kleurkeuzes\npdfjs-editor-colorpicker-yellow =\n    .title = Geel\npdfjs-editor-colorpicker-green =\n    .title = Groen\npdfjs-editor-colorpicker-blue =\n    .title = Blauw\npdfjs-editor-colorpicker-pink =\n    .title = Roze\npdfjs-editor-colorpicker-red =\n    .title = Rood\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Alles tonen\npdfjs-editor-highlight-show-all-button =\n    .title = Alles tonen\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alternatieve tekst (afbeeldingsbeschrijving) bewerken\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alternatieve tekst (afbeeldingsbeschrijving) toevoegen\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Schrijf hier uw beschrijving…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Korte beschrijving voor mensen die de afbeelding niet kunnen zien of wanneer de afbeelding niet wordt geladen.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Deze alternatieve tekst is automatisch gemaakt en is mogelijk onjuist.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Meer info\npdfjs-editor-new-alt-text-create-automatically-button-label = Alternatieve tekst automatisch aanmaken\npdfjs-editor-new-alt-text-not-now-button = Niet nu\npdfjs-editor-new-alt-text-error-title = Kan alternatieve tekst niet automatisch aanmaken\npdfjs-editor-new-alt-text-error-description = Schrijf uw eigen alternatieve tekst of probeer het later nog eens.\npdfjs-editor-new-alt-text-error-close-button = Sluiten\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = AI-model voor alternatieve tekst downloaden ({ $downloadedSize } van { $totalSize } MB)\n    .aria-valuetext = AI-model voor alternatieve tekst downloaden ({ $downloadedSize } van { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatieve tekst toegevoegd\npdfjs-editor-new-alt-text-added-button-label = Alternatieve tekst toegevoegd\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Alternatieve tekst ontbreekt\npdfjs-editor-new-alt-text-missing-button-label = Alternatieve tekst ontbreekt\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternatieve tekst beoordelen\npdfjs-editor-new-alt-text-to-review-button-label = Alternatieve tekst beoordelen\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Automatisch aangemaakt: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Instellingen voor alternatieve tekst van afbeeldingen\npdfjs-image-alt-text-settings-button-label = Instellingen voor alternatieve tekst van afbeeldingen\npdfjs-editor-alt-text-settings-dialog-label = Instellingen voor alternatieve tekst van afbeeldingen\npdfjs-editor-alt-text-settings-automatic-title = Automatische alternatieve tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Alternatieve tekst automatisch aanmaken\npdfjs-editor-alt-text-settings-create-model-description = Stelt beschrijvingen voor om mensen te helpen die de afbeelding niet kunnen zien of voor wie de afbeelding niet wordt geladen.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = AI-model voor alternatieve tekst ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Wordt lokaal op uw apparaat uitgevoerd, zodat uw gegevens privé blijven. Vereist voor automatische alternatieve tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Verwijderen\npdfjs-editor-alt-text-settings-download-model-button = Downloaden\npdfjs-editor-alt-text-settings-downloading-model-button = Downloaden…\npdfjs-editor-alt-text-settings-editor-title = Alternatieve-tekstbewerker\npdfjs-editor-alt-text-settings-show-dialog-button-label = Alternatieve-tekstbewerker meteen tonen bij toevoegen van een afbeelding\npdfjs-editor-alt-text-settings-show-dialog-description = Helpt u ervoor te zorgen dat al uw afbeeldingen alternatieve tekst hebben.\npdfjs-editor-alt-text-settings-close-button = Sluiten\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Markering toegevoegd\npdfjs-editor-freetext-added-alert = Tekst toegevoegd\npdfjs-editor-ink-added-alert = Tekening toegevoegd\npdfjs-editor-stamp-added-alert = Afbeelding toegevoegd\npdfjs-editor-signature-added-alert = Handtekening toegevoegd\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Markering verwijderd\npdfjs-editor-undo-bar-message-freetext = Tekst verwijderd\npdfjs-editor-undo-bar-message-ink = Tekening verwijderd\npdfjs-editor-undo-bar-message-stamp = Afbeelding verwijderd\npdfjs-editor-undo-bar-message-signature = Handtekening verwijderd\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotatie verwijderd\n       *[other] { $count } annotaties verwijderd\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Ongedaan maken\npdfjs-editor-undo-bar-undo-button-label = Ongedaan maken\npdfjs-editor-undo-bar-close-button =\n    .title = Sluiten\npdfjs-editor-undo-bar-close-button-label = Sluiten\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Met deze modal kan de gebruiker een handtekening maken om aan een PDF-document toe te voegen. De gebruiker kan de naam (die ook als alternatieve tekst dient) bewerken en optioneel de ondertekening opslaan voor herhaald gebruik.\npdfjs-editor-add-signature-dialog-title = Een handtekening toevoegen\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typen\n    .title = Typen\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Tekenen\n    .title = Tekenen\npdfjs-editor-add-signature-image-button = Afbeelding\n    .title = Afbeelding\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Uw handtekening typen\n    .placeholder = Uw handtekening typen\npdfjs-editor-add-signature-draw-placeholder = Uw handtekening tekenen\npdfjs-editor-add-signature-draw-thickness-range-label = Dikte\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Tekendikte: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Sleep bestand hierheen om te uploaden\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Of kies afbeeldingsbestanden\n       *[other] Of kies afbeeldingsbestanden\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beschrijving (alternatieve tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Beschrijving (alternatieve tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Handtekening\npdfjs-editor-add-signature-clear-button-label = Handtekening wissen\npdfjs-editor-add-signature-clear-button =\n    .title = Handtekening wissen\npdfjs-editor-add-signature-save-checkbox = Handtekening opslaan\npdfjs-editor-add-signature-save-warning-message = U hebt de limiet van 5 opgeslagen handtekeningen bereikt. Verwijder er een om een andere op te slaan.\npdfjs-editor-add-signature-image-upload-error-title = Kan afbeelding niet uploaden\npdfjs-editor-add-signature-image-upload-error-description = Controleer uw netwerkverbinding of probeer een andere afbeelding.\npdfjs-editor-add-signature-image-no-data-error-title = Kan deze afbeelding niet naar een handtekening converteren\npdfjs-editor-add-signature-image-no-data-error-description = Probeer een andere afbeelding te uploaden.\npdfjs-editor-add-signature-error-close-button = Sluiten\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annuleren\npdfjs-editor-add-signature-add-button = Toevoegen\npdfjs-editor-edit-signature-update-button = Bijwerken\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Opmerking bewerken\npdfjs-editor-edit-comment-popup-button =\n    .title = Opmerking bewerken\npdfjs-editor-delete-comment-popup-button-label = Opmerking verwijderen\npdfjs-editor-delete-comment-popup-button =\n    .title = Opmerking verwijderen\npdfjs-show-comment-button =\n    .title = Opmerking tonen\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acties\npdfjs-editor-edit-comment-actions-button =\n    .title = Acties\npdfjs-editor-edit-comment-close-button-label = Sluiten\npdfjs-editor-edit-comment-close-button =\n    .title = Sluiten\npdfjs-editor-edit-comment-actions-edit-button-label = Bewerken\npdfjs-editor-edit-comment-actions-delete-button-label = Verwijderen\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Voer uw opmerking in\npdfjs-editor-edit-comment-manager-cancel-button = Annuleren\npdfjs-editor-edit-comment-manager-save-button = Opslaan\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Opmerking bewerken\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Bijwerken\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Opmerking toevoegen\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Toevoegen\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Begin met typen…\npdfjs-editor-edit-comment-dialog-cancel-button = Annuleren\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Opmerking bewerken\npdfjs-editor-add-comment-button =\n    .title = Opmerking toevoegen\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Opgeslagen ondertekening verwijderen\npdfjs-editor-delete-signature-button-label1 = Opgeslagen ondertekening verwijderen\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Beschrijving bewerken\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Beschrijving bewerken\n"
  },
  {
    "path": "viewer/locale/nn-NO/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Føregåande side\npdfjs-previous-button-label = Føregåande\npdfjs-next-button =\n    .title = Neste side\npdfjs-next-button-label = Neste\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Side\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = av { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } av { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom ut\npdfjs-zoom-out-button-label = Zoom ut\npdfjs-zoom-in-button =\n    .title = Zoom inn\npdfjs-zoom-in-button-label = Zoom inn\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Byt til presentasjonsmodus\npdfjs-presentation-mode-button-label = Presentasjonsmodus\npdfjs-open-file-button =\n    .title = Opne fil\npdfjs-open-file-button-label = Opne\npdfjs-print-button =\n    .title = Skriv ut\npdfjs-print-button-label = Skriv ut\npdfjs-save-button =\n    .title = Lagre\npdfjs-save-button-label = Lagre\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Last ned\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Last ned\npdfjs-bookmark-button =\n    .title = Gjeldande side (sjå URL frå gjeldande side)\npdfjs-bookmark-button-label = Gjeldande side\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Verktøy\npdfjs-tools-button-label = Verktøy\npdfjs-first-page-button =\n    .title = Gå til første side\npdfjs-first-page-button-label = Gå til første side\npdfjs-last-page-button =\n    .title = Gå til siste side\npdfjs-last-page-button-label = Gå til siste side\npdfjs-page-rotate-cw-button =\n    .title = Roter med klokka\npdfjs-page-rotate-cw-button-label = Roter med klokka\npdfjs-page-rotate-ccw-button =\n    .title = Roter mot klokka\npdfjs-page-rotate-ccw-button-label = Roter mot klokka\npdfjs-cursor-text-select-tool-button =\n    .title = Aktiver tekstmarkeringsverktøy\npdfjs-cursor-text-select-tool-button-label = Tekstmarkeringsverktøy\npdfjs-cursor-hand-tool-button =\n    .title = Aktiver handverktøy\npdfjs-cursor-hand-tool-button-label = Handverktøy\npdfjs-scroll-page-button =\n    .title = Bruk siderulling\npdfjs-scroll-page-button-label = Siderulling\npdfjs-scroll-vertical-button =\n    .title = Bruk vertikal rulling\npdfjs-scroll-vertical-button-label = Vertikal rulling\npdfjs-scroll-horizontal-button =\n    .title = Bruk horisontal rulling\npdfjs-scroll-horizontal-button-label = Horisontal rulling\npdfjs-scroll-wrapped-button =\n    .title = Bruk fleirsiderulling\npdfjs-scroll-wrapped-button-label = Fleirsiderulling\npdfjs-spread-none-button =\n    .title = Vis enkeltsider\npdfjs-spread-none-button-label = Enkeltside\npdfjs-spread-odd-button =\n    .title = Vis oppslag med ulike sidenummer til venstre\npdfjs-spread-odd-button-label = Oppslag med framside\npdfjs-spread-even-button =\n    .title = Vis oppslag med like sidenummmer til venstre\npdfjs-spread-even-button-label = Oppslag utan framside\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumenteigenskapar…\npdfjs-document-properties-button-label = Dokumenteigenskapar…\npdfjs-document-properties-file-name = Filnamn:\npdfjs-document-properties-file-size = Filstorleik:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Tittel:\npdfjs-document-properties-author = Forfattar:\npdfjs-document-properties-subject = Emne:\npdfjs-document-properties-keywords = Stikkord:\npdfjs-document-properties-creation-date = Dato oppretta:\npdfjs-document-properties-modification-date = Dato endra:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Oppretta av:\npdfjs-document-properties-producer = PDF-verktøy:\npdfjs-document-properties-version = PDF-versjon:\npdfjs-document-properties-page-count = Sidetal:\npdfjs-document-properties-page-size = Sidestørrelse:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = ståande (portrait)\npdfjs-document-properties-page-size-orientation-landscape = liggande (landscape)\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Brev\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Rask nettvising:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nei\npdfjs-document-properties-close-button = Lat att\n\n## Print\n\npdfjs-print-progress-message = Førebur dokumentet for utskrift…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Avbryt\npdfjs-printing-not-supported = Åtvaring: Utskrift er ikkje fullstendig støtta av denne nettlesaren.\npdfjs-printing-not-ready = Åtvaring: PDF ikkje fullstendig innlasta for utskrift.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Slå av/på sidestolpe\npdfjs-toggle-sidebar-notification-button =\n    .title = Vis/gøym sidestolpe (dokumentet inneheld oversikt/vedlegg/lag)\npdfjs-toggle-sidebar-button-label = Slå av/på sidestolpe\npdfjs-document-outline-button =\n    .title = Vis dokumentdisposisjonen (dobbelklikk for å utvide/gøyme alle elementa)\npdfjs-document-outline-button-label = Dokumentdisposisjon\npdfjs-attachments-button =\n    .title = Vis vedlegg\npdfjs-attachments-button-label = Vedlegg\npdfjs-layers-button =\n    .title = Vis lag (dobbeltklikk for å tilbakestille alle lag til standardtilstand)\npdfjs-layers-button-label = Lag\npdfjs-thumbs-button =\n    .title = Vis miniatyrbilde\npdfjs-thumbs-button-label = Miniatyrbilde\npdfjs-current-outline-item-button =\n    .title = Finn gjeldande disposisjonselement\npdfjs-current-outline-item-button-label = Gjeldande disposisjonselement\npdfjs-findbar-button =\n    .title = Finn i dokumentet\npdfjs-findbar-button-label = Finn\npdfjs-additional-layers = Ytterlegare lag\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Side { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatyrbilde av side { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Søk\n    .placeholder = Søk i dokument…\npdfjs-find-previous-button =\n    .title = Finn førre førekomst av frasen\npdfjs-find-previous-button-label = Førre\npdfjs-find-next-button =\n    .title = Finn neste førekomst av frasen\npdfjs-find-next-button-label = Neste\npdfjs-find-highlight-checkbox = Uthev alle\npdfjs-find-match-case-checkbox-label = Skil store/små bokstavar\npdfjs-find-match-diacritics-checkbox-label = Samsvar diakritiske teikn\npdfjs-find-entire-word-checkbox-label = Heile ord\npdfjs-find-reached-top = Nådde toppen av dokumentet, fortset frå botnen\npdfjs-find-reached-bottom = Nådde botnen av dokumentet, fortset frå toppen\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } av { $total } treff\n       *[other] { $current } av { $total } treff\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Meir enn { $limit } treff\n       *[other] Meir enn { $limit } treff\n    }\npdfjs-find-not-found = Fann ikkje teksten\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sidebreidde\npdfjs-page-scale-fit = Tilpass til sida\npdfjs-page-scale-auto = Automatisk skalering\npdfjs-page-scale-actual = Verkeleg storleik\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Side { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ein feil oppstod ved lasting av PDF.\npdfjs-invalid-file-error = Ugyldig eller korrupt PDF-fil.\npdfjs-missing-file-error = Manglande PDF-fil.\npdfjs-unexpected-response-error = Uventa tenarrespons.\npdfjs-rendering-error = Ein feil oppstod under vising av sida.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } annotasjon]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Skriv inn passordet for å opne denne PDF-fila.\npdfjs-password-invalid = Ugyldig passord. Prøv på nytt.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Avbryt\npdfjs-web-fonts-disabled = Web-skrifter er slått av: Kan ikkje bruke innbundne PDF-skrifter.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Endre tekstfarge\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Teikne\npdfjs-editor-color-picker-ink-input =\n    .title = Endre teiknefarge\npdfjs-editor-ink-button-label = Teikne\npdfjs-editor-stamp-button =\n    .title = Legg til eller rediger bilde\npdfjs-editor-stamp-button-label = Legg til eller rediger bilde\npdfjs-editor-highlight-button =\n    .title = Markere\npdfjs-editor-highlight-button-label = Markere\npdfjs-highlight-floating-button1 =\n    .title = Markere\n    .aria-label = Markere\npdfjs-highlight-floating-button-label = Markere\npdfjs-comment-floating-button =\n    .title = Kommenter\n    .aria-label = Kommenter\npdfjs-comment-floating-button-label = Kommenter\npdfjs-editor-comment-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-editor-comment-button-label = Kommentar\npdfjs-editor-signature-button =\n    .title = Legg til signatur\npdfjs-editor-signature-button-label = Legg til signatur\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Markeringsredigerar\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Redigering av teikningar\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signatur-redigerar: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Bildredigerar\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Fjern teikninga\npdfjs-editor-remove-freetext-button =\n    .title = Fjern tekst\npdfjs-editor-remove-stamp-button =\n    .title = Fjern bildet\npdfjs-editor-remove-highlight-button =\n    .title = Fjern utheving\npdfjs-editor-remove-signature-button =\n    .title = Fjern signatur\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Farge\npdfjs-editor-free-text-size-input = Storleik\npdfjs-editor-ink-color-input = Farge\npdfjs-editor-ink-thickness-input = Tjukn\npdfjs-editor-ink-opacity-input = Ugjennomskinleg\npdfjs-editor-stamp-add-image-button =\n    .title = Legg til bilde\npdfjs-editor-stamp-add-image-button-label = Legg til bilde\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tjukn\npdfjs-editor-free-highlight-thickness-title =\n    .title = Endre tjukn når du markerer andre element enn tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Signaturkontroll og lagra signaturar\npdfjs-editor-signature-add-signature-button =\n    .title = Legg til ny signatur\npdfjs-editor-signature-add-signature-button-label = Legg til ny signatur\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Lagra signatur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Tekstredigering\n    .default-content = Begynn å skrive…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentarar\n       *[other] Kommentararar\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Lat att sidestolpen\n    .aria-label = Lat att sidestolpen\npdfjs-editor-comments-sidebar-close-button-label = Lat att sidestolpen\npdfjs-editor-comments-sidebar-no-comments-link = Les meir\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alt-tekst\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Rediger alt-tekst tekst\npdfjs-editor-alt-text-dialog-label = Vel eit alternativ\npdfjs-editor-alt-text-dialog-description = Alt-tekst (alternativ tekst) hjelper når folk ikkje kan sjå bildet eller når det ikkje vert lasta inn.\npdfjs-editor-alt-text-add-description-label = Legg til ei skildring\npdfjs-editor-alt-text-add-description-description = Gå etter 1-2 setninger som skildrar emnet, settinga eller handlingane.\npdfjs-editor-alt-text-mark-decorative-label = Merk som dekorativt\npdfjs-editor-alt-text-mark-decorative-description = Dette vert brukt til dekorative bilde, som kantlinjer eller vassmerke.\npdfjs-editor-alt-text-cancel-button = Avbryt\npdfjs-editor-alt-text-save-button = Lagre\npdfjs-editor-alt-text-decorative-tooltip = Merkt som dekorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Til dømes, «Ein ung mann set seg ved eit bord for å ete eit måltid»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt-tekst\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Øvste venstre hjørne – endre størrelse\npdfjs-editor-resizer-top-middle =\n    .aria-label = Øvst i midten — endre størrelse\npdfjs-editor-resizer-top-right =\n    .aria-label = Øvste høgre hjørne – endre størrelse\npdfjs-editor-resizer-middle-right =\n    .aria-label = Midt til høgre – endre størrelse\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Nedste høgre hjørne – endre størrelse\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Nedst i midten — endre størrelse\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Nedste venstre hjørne – endre størrelse\npdfjs-editor-resizer-middle-left =\n    .aria-label = Midt til venstre — endre størrelse\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Uthevingsfarge\npdfjs-editor-colorpicker-button =\n    .title = Endre farge\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Fargeval\npdfjs-editor-colorpicker-yellow =\n    .title = Gul\npdfjs-editor-colorpicker-green =\n    .title = Grøn\npdfjs-editor-colorpicker-blue =\n    .title = Blå\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Raud\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Vis alle\npdfjs-editor-highlight-show-all-button =\n    .title = Vis alle\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Rediger alternativ tekst (bildeskildring)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Legg til alternativ tekst (bildeskildring)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skriv skildringa di her…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kort skildring for personar som ikkje kan sjå bildet, eller når bildet ikkje lastar inn.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Denne alternative teksten vart oppretta automatisk, og kan vere unøyaktig.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Les meir\npdfjs-editor-new-alt-text-create-automatically-button-label = Opprett alternativ tekt automatisk\npdfjs-editor-new-alt-text-not-now-button = Ikkje no\npdfjs-editor-new-alt-text-error-title = Klarte ikkje å opprette alternativ tekst automatisk\npdfjs-editor-new-alt-text-error-description = Skriv din eigen alternative tekst eller prøv igjen seinare.\npdfjs-editor-new-alt-text-error-close-button = Lat att\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Lastar ned AI-modell med alternativ tekst ({ $downloadedSize } av { $totalSize } MB)\n    .aria-valuetext = Lastar ned AI-modell med alternativ tekst ({ $downloadedSize } av { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativ tekst lagt til\npdfjs-editor-new-alt-text-added-button-label = Alternativ tekst lagt til\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Manglande alternativ tekst\npdfjs-editor-new-alt-text-missing-button-label = Manglande alternativ tekst\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Vurder alternativ tekst\npdfjs-editor-new-alt-text-to-review-button-label = Vurder alternativ tekst\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Oppretta automatisk: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Alternative tekst-innstillingar for bilde\npdfjs-image-alt-text-settings-button-label = Alternative tekst-innstillingar for bilde\npdfjs-editor-alt-text-settings-dialog-label = Alternative tekst-innstillingar for bilde\npdfjs-editor-alt-text-settings-automatic-title = Automatisk alternativ tekst\npdfjs-editor-alt-text-settings-create-model-button-label = Opprett alternativ tekt automatisk\npdfjs-editor-alt-text-settings-create-model-description = Foreslår skildringar for å hjelpe folk som ikkje kan sjå bildet eller når bildet ikkje blir lasta inn.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = AI-modell for alternativ tekst ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Køyrer lokalt på eininga di slik at dataa dine blir verande private. Påkravd for automatisk alternativ tekst.\npdfjs-editor-alt-text-settings-delete-model-button = Slett\npdfjs-editor-alt-text-settings-download-model-button = Last ned\npdfjs-editor-alt-text-settings-downloading-model-button = Lastar ned…\npdfjs-editor-alt-text-settings-editor-title = Alternativ tekst-redigerar\npdfjs-editor-alt-text-settings-show-dialog-button-label = Vis alternativ tekst-redigerar direkte når du legg til eit bilde\npdfjs-editor-alt-text-settings-show-dialog-description = Hjelper deg med å sørgje for at alle bilda dine har alternativ tekst.\npdfjs-editor-alt-text-settings-close-button = Lat att\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Utheving lagt til\npdfjs-editor-freetext-added-alert = Tekst lagt til\npdfjs-editor-ink-added-alert = Teikning lagt til\npdfjs-editor-stamp-added-alert = Bilde lagt til\npdfjs-editor-signature-added-alert = Signatur lagt til\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Markering fjerna\npdfjs-editor-undo-bar-message-freetext = Tekst fjerna\npdfjs-editor-undo-bar-message-ink = Teikning fjerna\npdfjs-editor-undo-bar-message-stamp = Bilde fjerna\npdfjs-editor-undo-bar-message-signature = Signatur fjerna\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } kommentar fjerna\n       *[other] { $count } kommentarar fjerna\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Angre\npdfjs-editor-undo-bar-undo-button-label = Angre\npdfjs-editor-undo-bar-close-button =\n    .title = Lat att\npdfjs-editor-undo-bar-close-button-label = Lat att\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Denne modalen lèt brukaren lage ein signatur for å leggje til eit PDF-dokument. Brukaren kan redigere namnet (som også fungerer som alt-teksten), og eventuelt lagre signaturen for gjenteken bruk.\npdfjs-editor-add-signature-dialog-title = Legg til ein signatur\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Type\n    .title = Type\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Teikne\n    .title = Teikne\npdfjs-editor-add-signature-image-button = Bilde\n    .title = Bilde\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Skriv inn signaturen din\n    .placeholder = Skriv inn signaturen din\npdfjs-editor-add-signature-draw-placeholder = Teikn signaturen din\npdfjs-editor-add-signature-draw-thickness-range-label = Tjukn\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Linjetjukn: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Drag ei fil hit for å laste opp\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eller vel bildefiler\n       *[other] Eller vel bildefiler\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Skildring (alternativ tekst)\npdfjs-editor-add-signature-description-input =\n    .title = Skildring (alternativ tekst)\npdfjs-editor-add-signature-description-default-when-drawing = Signatur\npdfjs-editor-add-signature-clear-button-label = Fjern signatur\npdfjs-editor-add-signature-clear-button =\n    .title = Fjern signatur\npdfjs-editor-add-signature-save-checkbox = Lagre signatur\npdfjs-editor-add-signature-save-warning-message = Du har nådd grensa på 5 lagra signaturar. Fjern ein for å lagre ein ny.\npdfjs-editor-add-signature-image-upload-error-title = Klarte ikkje å oppdatere bilde\npdfjs-editor-add-signature-image-upload-error-description = Sjekk nettverkstilkoplinga eller prøv eit annet bilde.\npdfjs-editor-add-signature-image-no-data-error-title = Kan ikkje konvertere dette bildet til ein signatur\npdfjs-editor-add-signature-image-no-data-error-description = Prøv å laste opp eit anna bilde.\npdfjs-editor-add-signature-error-close-button = Lat att\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Avbryt\npdfjs-editor-add-signature-add-button = Legg til\npdfjs-editor-edit-signature-update-button = Oppdater\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Rediger kommentar\npdfjs-editor-edit-comment-popup-button =\n    .title = Rediger kommentar\npdfjs-editor-delete-comment-popup-button-label = Fjern kommentar\npdfjs-editor-delete-comment-popup-button =\n    .title = Fjern kommentar\npdfjs-show-comment-button =\n    .title = Vis kommentar\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Handlingar\npdfjs-editor-edit-comment-actions-button =\n    .title = Handlingar\npdfjs-editor-edit-comment-close-button-label = Lat att\npdfjs-editor-edit-comment-close-button =\n    .title = Lat att\npdfjs-editor-edit-comment-actions-edit-button-label = Rediger\npdfjs-editor-edit-comment-actions-delete-button-label = Slett\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Skriv inn kommentaren din\npdfjs-editor-edit-comment-manager-cancel-button = Avbryt\npdfjs-editor-edit-comment-manager-save-button = Lagre\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Rediger kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Oppdater\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Legg til kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Legg til\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Byrje å skrive…\npdfjs-editor-edit-comment-dialog-cancel-button = Avbryt\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Rediger kommentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Fjern lagra signatur\npdfjs-editor-delete-signature-button-label1 = Fjern lagra signatur\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Rediger skildring\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Rediger skildring\n"
  },
  {
    "path": "viewer/locale/oc/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina precedenta\npdfjs-previous-button-label = Precedent\npdfjs-next-button =\n    .title = Pagina seguenta\npdfjs-next-button-label = Seguent\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = sus { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom arrièr\npdfjs-zoom-out-button-label = Zoom arrièr\npdfjs-zoom-in-button =\n    .title = Zoom avant\npdfjs-zoom-in-button-label = Zoom avant\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Bascular en mòde presentacion\npdfjs-presentation-mode-button-label = Mòde Presentacion\npdfjs-open-file-button =\n    .title = Dobrir lo fichièr\npdfjs-open-file-button-label = Dobrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Enregistrar\npdfjs-save-button-label = Enregistrar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Telecargar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Telecargar\npdfjs-bookmark-button =\n    .title = Pagina actuala (mostrar l’adreça de la pagina actuala)\npdfjs-bookmark-button-label = Pagina actuala\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Aisinas\npdfjs-tools-button-label = Aisinas\npdfjs-first-page-button =\n    .title = Anar a la primièra pagina\npdfjs-first-page-button-label = Anar a la primièra pagina\npdfjs-last-page-button =\n    .title = Anar a la darrièra pagina\npdfjs-last-page-button-label = Anar a la darrièra pagina\npdfjs-page-rotate-cw-button =\n    .title = Rotacion orària\npdfjs-page-rotate-cw-button-label = Rotacion orària\npdfjs-page-rotate-ccw-button =\n    .title = Rotacion antiorària\npdfjs-page-rotate-ccw-button-label = Rotacion antiorària\npdfjs-cursor-text-select-tool-button =\n    .title = Activar l'aisina de seleccion de tèxte\npdfjs-cursor-text-select-tool-button-label = Aisina de seleccion de tèxte\npdfjs-cursor-hand-tool-button =\n    .title = Activar l’aisina man\npdfjs-cursor-hand-tool-button-label = Aisina man\npdfjs-scroll-page-button =\n    .title = Activar lo defilament per pagina\npdfjs-scroll-page-button-label = Defilament per pagina\npdfjs-scroll-vertical-button =\n    .title = Utilizar lo defilament vertical\npdfjs-scroll-vertical-button-label = Defilament vertical\npdfjs-scroll-horizontal-button =\n    .title = Utilizar lo defilament orizontal\npdfjs-scroll-horizontal-button-label = Defilament orizontal\npdfjs-scroll-wrapped-button =\n    .title = Activar lo defilament continú\npdfjs-scroll-wrapped-button-label = Defilament continú\npdfjs-spread-none-button =\n    .title = Agropar pas las paginas doas a doas\npdfjs-spread-none-button-label = Una sola pagina\npdfjs-spread-odd-button =\n    .title = Mostrar doas paginas en començant per las paginas imparas a esquèrra\npdfjs-spread-odd-button-label = Dobla pagina, impara a drecha\npdfjs-spread-even-button =\n    .title = Mostrar doas paginas en començant per las paginas paras a esquèrra\npdfjs-spread-even-button-label = Dobla pagina, para a drecha\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Proprietats del document…\npdfjs-document-properties-button-label = Proprietats del document…\npdfjs-document-properties-file-name = Nom del fichièr :\npdfjs-document-properties-file-size = Talha del fichièr :\npdfjs-document-properties-title = Títol :\npdfjs-document-properties-author = Autor :\npdfjs-document-properties-subject = Subjècte :\npdfjs-document-properties-keywords = Mots claus :\npdfjs-document-properties-creation-date = Data de creacion :\npdfjs-document-properties-modification-date = Data de modificacion :\npdfjs-document-properties-creator = Creator :\npdfjs-document-properties-producer = Aisina de conversion PDF :\npdfjs-document-properties-version = Version PDF :\npdfjs-document-properties-page-count = Nombre de paginas :\npdfjs-document-properties-page-size = Talha de la pagina :\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = retrach\npdfjs-document-properties-page-size-orientation-landscape = païsatge\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letra\npdfjs-document-properties-page-size-name-legal = Document juridic\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web rapida :\npdfjs-document-properties-linearized-yes = Òc\npdfjs-document-properties-linearized-no = Non\npdfjs-document-properties-close-button = Tampar\n\n## Print\n\npdfjs-print-progress-message = Preparacion del document per l’impression…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anullar\npdfjs-printing-not-supported = Atencion : l'impression es pas complètament gerida per aqueste navegador.\npdfjs-printing-not-ready = Atencion : lo PDF es pas entièrament cargat per lo poder imprimir.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Afichar/amagar lo panèl lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Afichar/amagar lo panèl lateral (lo document conten esquèmas/pèças juntas/calques)\npdfjs-toggle-sidebar-button-label = Afichar/amagar lo panèl lateral\npdfjs-document-outline-button =\n    .title = Mostrar los esquèmas del document (dobleclicar per espandre/reduire totes los elements)\npdfjs-document-outline-button-label = Marcapaginas del document\npdfjs-attachments-button =\n    .title = Visualizar las pèças juntas\npdfjs-attachments-button-label = Pèças juntas\npdfjs-layers-button =\n    .title = Afichar los calques (doble-clicar per reïnicializar totes los calques a l’estat per defaut)\npdfjs-layers-button-label = Calques\npdfjs-thumbs-button =\n    .title = Afichar las vinhetas\npdfjs-thumbs-button-label = Vinhetas\npdfjs-current-outline-item-button =\n    .title = Trobar l’element de plan actual\npdfjs-current-outline-item-button-label = Element de plan actual\npdfjs-findbar-button =\n    .title = Cercar dins lo document\npdfjs-findbar-button-label = Recercar\npdfjs-additional-layers = Calques suplementaris\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Vinheta de la pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Recercar\n    .placeholder = Cercar dins lo document…\npdfjs-find-previous-button =\n    .title = Tròba l'ocurréncia precedenta de la frasa\npdfjs-find-previous-button-label = Precedent\npdfjs-find-next-button =\n    .title = Tròba l'ocurréncia venenta de la frasa\npdfjs-find-next-button-label = Seguent\npdfjs-find-highlight-checkbox = Suslinhar tot\npdfjs-find-match-case-checkbox-label = Respectar la cassa\npdfjs-find-match-diacritics-checkbox-label = Respectar los diacritics\npdfjs-find-entire-word-checkbox-label = Mots entièrs\npdfjs-find-reached-top = Naut de la pagina atenh, perseguida del bas\npdfjs-find-reached-bottom = Bas de la pagina atench, perseguida al començament\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Ocurréncia { $current } de { $total }\n       *[other] Ocurréncia { $current } de { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mai de { $limit } ocurréncia\n       *[other] Mai de { $limit } ocurréncias\n    }\npdfjs-find-not-found = Frasa pas trobada\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Largor plena\npdfjs-page-scale-fit = Pagina entièra\npdfjs-page-scale-auto = Zoom automatic\npdfjs-page-scale-actual = Talha vertadièra\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Una error s'es producha pendent lo cargament del fichièr PDF.\npdfjs-invalid-file-error = Fichièr PDF invalid o corromput.\npdfjs-missing-file-error = Fichièr PDF mancant.\npdfjs-unexpected-response-error = Responsa de servidor imprevista.\npdfjs-rendering-error = Una error s'es producha pendent l'afichatge de la pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotacion { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Picatz lo senhal per dobrir aqueste fichièr PDF.\npdfjs-password-invalid = Senhal incorrècte. Tornatz ensajar.\npdfjs-password-ok-button = D'acòrdi\npdfjs-password-cancel-button = Anullar\npdfjs-web-fonts-disabled = Las polissas web son desactivadas : impossible d'utilizar las polissas integradas al PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tèxte\npdfjs-editor-free-text-button-label = Tèxte\npdfjs-editor-ink-button =\n    .title = Dessenhar\npdfjs-editor-ink-button-label = Dessenhar\npdfjs-editor-stamp-button =\n    .title = Apondre o modificar d’imatges\npdfjs-editor-stamp-button-label = Apondre o modificar d’imatges\npdfjs-editor-highlight-button =\n    .title = Subrelinhar\npdfjs-editor-highlight-button-label = Subrelinhar\npdfjs-highlight-floating-button1 =\n    .title = Subrelinhar\n    .aria-label = Subrelinhar\npdfjs-highlight-floating-button-label = Subrelinhar\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Levar lo dessenh\npdfjs-editor-remove-freetext-button =\n    .title = Suprimir lo tèxte\npdfjs-editor-remove-stamp-button =\n    .title = Suprimir l’imatge\npdfjs-editor-remove-highlight-button =\n    .title = Levar lo suslinhatge\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Talha\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Espessor\npdfjs-editor-ink-opacity-input = Opacitat\npdfjs-editor-stamp-add-image-button =\n    .title = Apondre imatge\npdfjs-editor-stamp-add-image-button-label = Apondre imatge\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Espessor\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de tèxte\n    .default-content = Començatz de picar…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Tèxt alternatiu\npdfjs-editor-alt-text-dialog-label = Causir una opcion\npdfjs-editor-alt-text-add-description-label = Apondre una descripcion\npdfjs-editor-alt-text-cancel-button = Anullar\npdfjs-editor-alt-text-save-button = Enregistrar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Color de suslinhatge\npdfjs-editor-colorpicker-button =\n    .title = Cambiar de color\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Causida de colors\npdfjs-editor-colorpicker-yellow =\n    .title = Jaune\npdfjs-editor-colorpicker-green =\n    .title = Verd\npdfjs-editor-colorpicker-blue =\n    .title = Blau\npdfjs-editor-colorpicker-pink =\n    .title = Ròse\npdfjs-editor-colorpicker-red =\n    .title = Roge\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = O afichar tot\npdfjs-editor-highlight-show-all-button =\n    .title = O afichar tot\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\npdfjs-editor-new-alt-text-error-close-button = Tampar\n\n## Image alt-text settings\n\npdfjs-editor-alt-text-settings-automatic-title = Tèxte alternatiu automatic\npdfjs-editor-alt-text-settings-create-model-button-label = Crear un tèxte alternatiu automaticament\npdfjs-editor-alt-text-settings-delete-model-button = Suprimir\npdfjs-editor-alt-text-settings-download-model-button = Telecargar\npdfjs-editor-alt-text-settings-downloading-model-button = Telecargament…\npdfjs-editor-alt-text-settings-editor-title = Editor de tèxte alternatiu\npdfjs-editor-alt-text-settings-close-button = Tampar\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-freetext = Tèxte suprimit\npdfjs-editor-undo-bar-message-ink = Dessenh suprimit\npdfjs-editor-undo-bar-message-stamp = Imatge suprimit\npdfjs-editor-undo-bar-undo-button =\n    .title = Anullar\npdfjs-editor-undo-bar-undo-button-label = Anullar\npdfjs-editor-undo-bar-close-button =\n    .title = Tampar\npdfjs-editor-undo-bar-close-button-label = Tampar\n"
  },
  {
    "path": "viewer/locale/pa-IN/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = ਪਿਛਲਾ ਸਫ਼ਾ\npdfjs-previous-button-label = ਪਿੱਛੇ\npdfjs-next-button =\n    .title = ਅਗਲਾ ਸਫ਼ਾ\npdfjs-next-button-label = ਅੱਗੇ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ਸਫ਼ਾ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ਵਿੱਚੋਂ\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = { $pagesCount }) ਵਿੱਚੋਂ ({ $pageNumber }\npdfjs-zoom-out-button =\n    .title = ਜ਼ੂਮ ਆਉਟ\npdfjs-zoom-out-button-label = ਜ਼ੂਮ ਆਉਟ\npdfjs-zoom-in-button =\n    .title = ਜ਼ੂਮ ਇਨ\npdfjs-zoom-in-button-label = ਜ਼ੂਮ ਇਨ\npdfjs-zoom-select =\n    .title = ਜ਼ੂਨ\npdfjs-presentation-mode-button =\n    .title = ਪਰਿਜੈਂਟੇਸ਼ਨ ਮੋਡ ਵਿੱਚ ਜਾਓ\npdfjs-presentation-mode-button-label = ਪਰਿਜੈਂਟੇਸ਼ਨ ਮੋਡ\npdfjs-open-file-button =\n    .title = ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੋ\npdfjs-open-file-button-label = ਖੋਲ੍ਹੋ\npdfjs-print-button =\n    .title = ਪਰਿੰਟ\npdfjs-print-button-label = ਪਰਿੰਟ\npdfjs-save-button =\n    .title = ਸੰਭਾਲੋ\npdfjs-save-button-label = ਸੰਭਾਲੋ\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ਡਾਊਨਲੋਡ\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ਡਾਊਨਲੋਡ\npdfjs-bookmark-button =\n    .title = ਮੌਜੂਦਾ ਸਫ਼਼ਾ (ਮੌਜੂਦਾ ਸਫ਼ੇ ਤੋਂ URL ਵੇਖੋ)\npdfjs-bookmark-button-label = ਮੌਜੂਦਾ ਸਫ਼਼ਾ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ਟੂਲ\npdfjs-tools-button-label = ਟੂਲ\npdfjs-first-page-button =\n    .title = ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ\npdfjs-first-page-button-label = ਪਹਿਲੇ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ\npdfjs-last-page-button =\n    .title = ਆਖਰੀ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ\npdfjs-last-page-button-label = ਆਖਰੀ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ\npdfjs-page-rotate-cw-button =\n    .title = ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ\npdfjs-page-rotate-cw-button-label = ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ\npdfjs-page-rotate-ccw-button =\n    .title = ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਓ\npdfjs-page-rotate-ccw-button-label = ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਓ\npdfjs-cursor-text-select-tool-button =\n    .title = ਲਿਖਤ ਚੋਣ ਟੂਲ ਸਮਰੱਥ ਕਰੋ\npdfjs-cursor-text-select-tool-button-label = ਲਿਖਤ ਚੋਣ ਟੂਲ\npdfjs-cursor-hand-tool-button =\n    .title = ਹੱਥ ਟੂਲ ਸਮਰੱਥ ਕਰੋ\npdfjs-cursor-hand-tool-button-label = ਹੱਥ ਟੂਲ\npdfjs-scroll-page-button =\n    .title = ਸਫ਼ਾ ਖਿਸਕਾਉਣ ਨੂੰ ਵਰਤੋਂ\npdfjs-scroll-page-button-label = ਸਫ਼ਾ ਖਿਸਕਾਉਣਾ\npdfjs-scroll-vertical-button =\n    .title = ਖੜ੍ਹਵੇਂ ਸਕਰਾਉਣ ਨੂੰ ਵਰਤੋਂ\npdfjs-scroll-vertical-button-label = ਖੜ੍ਹਵਾਂ ਸਰਕਾਉਣਾ\npdfjs-scroll-horizontal-button =\n    .title = ਲੇਟਵੇਂ ਸਰਕਾਉਣ ਨੂੰ ਵਰਤੋਂ\npdfjs-scroll-horizontal-button-label = ਲੇਟਵਾਂ ਸਰਕਾਉਣਾ\npdfjs-scroll-wrapped-button =\n    .title = ਸਮੇਟੇ ਸਰਕਾਉਣ ਨੂੰ ਵਰਤੋਂ\npdfjs-scroll-wrapped-button-label = ਸਮੇਟਿਆ ਸਰਕਾਉਣਾ\npdfjs-spread-none-button =\n    .title = ਸਫ਼ਾ ਫੈਲਾਅ ਵਿੱਚ ਸ਼ਾਮਲ ਨਾ ਹੋਵੋ\npdfjs-spread-none-button-label = ਕੋਈ ਫੈਲਾਅ ਨਹੀਂ\npdfjs-spread-odd-button =\n    .title = ਟਾਂਕ ਅੰਕ ਵਾਲੇ ਸਫ਼ਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਫਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ\npdfjs-spread-odd-button-label = ਟਾਂਕ ਫੈਲਾਅ\npdfjs-spread-even-button =\n    .title = ਜਿਸਤ ਅੰਕ ਵਾਲੇ ਸਫ਼ਿਆਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਫਿਆਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਵੋ\npdfjs-spread-even-button-label = ਜਿਸਤ ਫੈਲਾਅ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = …ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ\npdfjs-document-properties-button-label = …ਦਸਤਾਵੇਜ਼ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ\npdfjs-document-properties-file-name = ਫਾਈਲ ਦਾ ਨਾਂ:\npdfjs-document-properties-file-size = ਫਾਈਲ ਦਾ ਆਕਾਰ:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } ਬਾਈਟ)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } ਬਾਈਟ)\npdfjs-document-properties-title = ਟਾਈਟਲ:\npdfjs-document-properties-author = ਲੇਖਕ:\npdfjs-document-properties-subject = ਵਿਸ਼ਾ:\npdfjs-document-properties-keywords = ਸ਼ਬਦ:\npdfjs-document-properties-creation-date = ਬਣਾਉਣ ਦੀ ਮਿਤੀ:\npdfjs-document-properties-modification-date = ਸੋਧ ਦੀ ਮਿਤੀ:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = ਨਿਰਮਾਤਾ:\npdfjs-document-properties-producer = PDF ਪ੍ਰੋਡਿਊਸਰ:\npdfjs-document-properties-version = PDF ਵਰਜਨ:\npdfjs-document-properties-page-count = ਸਫ਼ੇ ਦੀ ਗਿਣਤੀ:\npdfjs-document-properties-page-size = ਸਫ਼ਾ ਆਕਾਰ:\npdfjs-document-properties-page-size-unit-inches = ਇੰਚ\npdfjs-document-properties-page-size-unit-millimeters = ਮਿਮੀ\npdfjs-document-properties-page-size-orientation-portrait = ਪੋਰਟਰੇਟ\npdfjs-document-properties-page-size-orientation-landscape = ਲੈਂਡਸਕੇਪ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = ਲੈਟਰ\npdfjs-document-properties-page-size-name-legal = ਕਨੂੰਨੀ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = ਤੇਜ਼ ਵੈੱਬ ਝਲਕ:\npdfjs-document-properties-linearized-yes = ਹਾਂ\npdfjs-document-properties-linearized-no = ਨਹੀਂ\npdfjs-document-properties-close-button = ਬੰਦ ਕਰੋ\n\n## Print\n\npdfjs-print-progress-message = …ਪਰਿੰਟ ਕਰਨ ਲਈ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ਰੱਦ ਕਰੋ\npdfjs-printing-not-supported = ਸਾਵਧਾਨ: ਇਹ ਬਰਾਊਜ਼ਰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।\npdfjs-printing-not-ready = ਸਾਵਧਾਨ: PDF ਨੂੰ ਪਰਿੰਟ ਕਰਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਨਹੀਂ ਹੈ।\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ਬਾਹੀ ਬਦਲੋ\npdfjs-toggle-sidebar-notification-button =\n    .title = ਬਾਹੀ ਨੂੰ ਬਦਲੋ (ਦਸਤਾਵੇਜ਼ ਖਾਕਾ/ਅਟੈਚਮੈਂਟ/ਪਰਤਾਂ ਰੱਖਦਾ ਹੈ)\npdfjs-toggle-sidebar-button-label = ਬਾਹੀ ਬਦਲੋ\npdfjs-document-outline-button =\n    .title = ਦਸਤਾਵੇਜ਼ ਖਾਕਾ ਦਿਖਾਓ (ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਫੈਲਾਉਣ/ਸਮੇਟਣ ਲਈ ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰੋ)\npdfjs-document-outline-button-label = ਦਸਤਾਵੇਜ਼ ਖਾਕਾ\npdfjs-attachments-button =\n    .title = ਅਟੈਚਮੈਂਟ ਵੇਖਾਓ\npdfjs-attachments-button-label = ਅਟੈਚਮੈਂਟਾਂ\npdfjs-layers-button =\n    .title = ਪਰਤਾਂ ਵੇਖਾਓ (ਸਾਰੀਆਂ ਪਰਤਾਂ ਨੂੰ ਮੂਲ ਹਾਲਤ ਉੱਤੇ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਲਈ ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰੋ)\npdfjs-layers-button-label = ਪਰਤਾਂ\npdfjs-thumbs-button =\n    .title = ਥੰਮਨੇਲ ਨੂੰ ਵੇਖਾਓ\npdfjs-thumbs-button-label = ਥੰਮਨੇਲ\npdfjs-current-outline-item-button =\n    .title = ਮੌੌਜੂਦਾ ਖਾਕਾ ਚੀਜ਼ ਲੱਭੋ\npdfjs-current-outline-item-button-label = ਮੌਜੂਦਾ ਖਾਕਾ ਚੀਜ਼\npdfjs-findbar-button =\n    .title = ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਲੱਭੋ\npdfjs-findbar-button-label = ਲੱਭੋ\npdfjs-additional-layers = ਵਾਧੂ ਪਰਤਾਂ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = ਸਫ਼ਾ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } ਸਫ਼ੇ ਦਾ ਥੰਮਨੇਲ\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ਲੱਭੋ\n    .placeholder = …ਦਸਤਾਵੇਜ਼ 'ਚ ਲੱਭੋ\npdfjs-find-previous-button =\n    .title = ਵਾਕ ਦੀ ਪਿਛਲੀ ਮੌਜੂਦਗੀ ਲੱਭੋ\npdfjs-find-previous-button-label = ਪਿੱਛੇ\npdfjs-find-next-button =\n    .title = ਵਾਕ ਦੀ ਅਗਲੀ ਮੌਜੂਦਗੀ ਲੱਭੋ\npdfjs-find-next-button-label = ਅੱਗੇ\npdfjs-find-highlight-checkbox = ਸਭ ਉਭਾਰੋ\npdfjs-find-match-case-checkbox-label = ਅੱਖਰ ਆਕਾਰ ਨੂੰ ਮਿਲਾਉ\npdfjs-find-match-diacritics-checkbox-label = ਭੇਦਸੂਚਕ ਮੇਲ\npdfjs-find-entire-word-checkbox-label = ਪੂਰੇ ਸ਼ਬਦ\npdfjs-find-reached-top = ਦਸਤਾਵੇਜ਼ ਦੇ ਉੱਤੇ ਆ ਗਏ ਹਾਂ, ਥੱਲੇ ਤੋਂ ਜਾਰੀ ਰੱਖਿਆ ਹੈ\npdfjs-find-reached-bottom = ਦਸਤਾਵੇਜ਼ ਦੇ ਅੰਤ ਉੱਤੇ ਆ ਗਏ ਹਾਂ, ਉੱਤੇ ਤੋਂ ਜਾਰੀ ਰੱਖਿਆ ਹੈ\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $total } ਵਿੱਚੋਂ { $current } ਮੇਲ\n       *[other] { $total } ਵਿੱਚੋਂ { $current } ਮੇਲ\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] { $limit } ਤੋਂ ਵੱਧ ਮੇਲ\n       *[other] { $limit } ਤੋਂ ਵੱਧ ਮੇਲ\n    }\npdfjs-find-not-found = ਵਾਕ ਨਹੀਂ ਲੱਭਿਆ\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ਸਫ਼ੇ ਦੀ ਚੌੜਾਈ\npdfjs-page-scale-fit = ਸਫ਼ਾ ਫਿੱਟ\npdfjs-page-scale-auto = ਆਟੋਮੈਟਿਕ ਜ਼ੂਮ ਕਰੋ\npdfjs-page-scale-actual = ਆਟੋਮੈਟਿਕ ਆਕਾਰ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = ਸਫ਼ਾ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ਲੋਡ ਕਰਨ ਦੇ ਦੌਰਾਨ ਗਲਤੀ ਆਈ ਹੈ।\npdfjs-invalid-file-error = ਗਲਤ ਜਾਂ ਨਿਕਾਰਾ PDF ਫਾਈਲ ਹੈ।\npdfjs-missing-file-error = ਨਾ-ਮੌਜੂਦ PDF ਫਾਈਲ।\npdfjs-unexpected-response-error = ਅਣਜਾਣ ਸਰਵਰ ਜਵਾਬ।\npdfjs-rendering-error = ਸਫ਼ਾ ਰੈਡਰ ਕਰਨ ਦੇ ਦੌਰਾਨ ਗਲਤੀ ਆਈ ਹੈ।\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ਵਿਆਖਿਆ]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = ਇਹ PDF ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਪਾਸਵਰਡ ਦਿਉ।\npdfjs-password-invalid = ਗਲਤ ਪਾਸਵਰਡ। ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।\npdfjs-password-ok-button = ਠੀਕ ਹੈ\npdfjs-password-cancel-button = ਰੱਦ ਕਰੋ\npdfjs-web-fonts-disabled = ਵੈਬ ਫੋਂਟ ਬੰਦ ਹਨ: ਇੰਬੈਡ PDF ਫੋਂਟ ਨੂੰ ਵਰਤਣ ਲਈ ਅਸਮਰੱਥ ਹੈ।\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = ਲਿਖਤ\npdfjs-editor-color-picker-free-text-input =\n    .title = ਲਿਖਤ ਦੇ ਰੰਗ ਨੂੰ ਬਦਲੋ\npdfjs-editor-free-text-button-label = ਲਿਖਤ\npdfjs-editor-ink-button =\n    .title = ਵਾਹੋ\npdfjs-editor-color-picker-ink-input =\n    .title = ਡਰਾਇੰਗ ਰੰਗ ਨੂੰ ਬਦਲੋ\npdfjs-editor-ink-button-label = ਵਾਹੋ\npdfjs-editor-stamp-button =\n    .title = ਚਿੱਤਰ ਜੋੜੋ ਜਾਂ ਸੋਧੋ\npdfjs-editor-stamp-button-label = ਚਿੱਤਰ ਜੋੜੋ ਜਾਂ ਸੋਧੋ\npdfjs-editor-highlight-button =\n    .title = ਹਾਈਲਾਈਟ\npdfjs-editor-highlight-button-label = ਹਾਈਲਾਈਟ\npdfjs-highlight-floating-button1 =\n    .title = ਹਾਈਲਾਈਟ\n    .aria-label = ਹਾਈਲਾਈਟ\npdfjs-highlight-floating-button-label = ਹਾਈਲਾਈਟ\npdfjs-comment-floating-button =\n    .title = ਟਿੱਪਣੀ\n    .aria-label = ਟਿੱਪਣੀ\npdfjs-comment-floating-button-label = ਟਿੱਪਣੀ\npdfjs-editor-comment-button =\n    .title = ਟਿੱਪਣੀ\n    .aria-label = ਟਿੱਪਣੀ\npdfjs-editor-comment-button-label = ਟਿੱਪਣੀ\npdfjs-editor-signature-button =\n    .title = ਦਸਤਖ਼ਤ ਜੋੜੋ\npdfjs-editor-signature-button-label = ਦਸਤਖ਼ਤ ਜੋੜੋ\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = ਹਾਈਲਾਈਟ ਸੰਪਾਦਕ\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = ਡਰਾਇੰਗ ਸੰਪਾਦਕ\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = ਦਸਤਖ਼ਤ ਐਡੀਟਰ: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = ਚਿੱਤਰ ਸੰਪਾਦਕ\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = ਡਰਾਇੰਗ ਨੂੰ ਹਟਾਓ\npdfjs-editor-remove-freetext-button =\n    .title = ਲਿਖਤ ਨੂੰ ਹਟਾਓ\npdfjs-editor-remove-stamp-button =\n    .title = ਚਿੱਤਰ ਨੂੰ ਹਟਾਓ\npdfjs-editor-remove-highlight-button =\n    .title = ਹਾਈਲਾਈਟ ਨੂੰ ਹਟਾਓ\npdfjs-editor-remove-signature-button =\n    .title = ਦਸਤਖ਼ਤ ਨੂੰ ਹਟਾਓ\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = ਰੰਗ\npdfjs-editor-free-text-size-input = ਆਕਾਰ\npdfjs-editor-ink-color-input = ਰੰਗ\npdfjs-editor-ink-thickness-input = ਮੋਟਾਈ\npdfjs-editor-ink-opacity-input = ਧੁੰਦਲਾਪਨ\npdfjs-editor-stamp-add-image-button =\n    .title = ਚਿੱਤਰ ਜੋੜੋ\npdfjs-editor-stamp-add-image-button-label = ਚਿੱਤਰ ਜੋੜੋ\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = ਮੋਟਾਈ\npdfjs-editor-free-highlight-thickness-title =\n    .title = ਚੀਜ਼ਾਂ ਨੂੰ ਹੋਰ ਲਿਖਤਾਂ ਤੋਂ ਉਘਾੜਨ ਸਮੇਂ ਮੋਟਾਈ ਨੂੰ ਬਦਲੋ\npdfjs-editor-add-signature-container =\n    .aria-label = ਦਸਤਖ਼ਤ ਕੰਟਰੋਲ ਅਤੇ ਸੰਭਾਲੇ ਹੋਏ ਦਸਤਖ਼ਤ\npdfjs-editor-signature-add-signature-button =\n    .title = ਨਵੇਂ ਦਸਤਖ਼ਤ ਨੂੰ ਜੋੜੋ\npdfjs-editor-signature-add-signature-button-label = ਨਵੇਂ ਦਸਤਖ਼ਤ ਨੂੰ ਜੋੜੋ\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = ਸੰਭਾਲੇ ਦਸਤਖ਼ਤ: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = ਲਿਖਤ ਐਡੀਟਰ\n    .default-content = …ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] ਟਿੱਪਣੀ\n       *[other] ਟਿੱਪਣੀਆਂ\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = ਬਾਹੀ ਨੂੰ ਬੰਦ ਕਰੋ\n    .aria-label = ਬਾਹੀ ਨੂੰ ਬੰਦ ਕਰੋ\npdfjs-editor-comments-sidebar-close-button-label = ਬਾਹੀ ਨੂੰ ਬੰਦ ਕਰੋ\npdfjs-editor-comments-sidebar-no-comments-link = ਹੋਰ ਜਾਣੋ\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = ਬਦਲਵੀਂ ਲਿਖਤ\npdfjs-editor-alt-text-edit-button =\n    .aria-label = ਬਦਲਵੀ ਲਿਖਤ ਨੂੰ ਸੋਧੋ\npdfjs-editor-alt-text-dialog-label = ਚੋਣ ਕਰੋ\npdfjs-editor-alt-text-dialog-description = ਚਿੱਤਰ ਨਾ ਦਿੱਸਣ ਜਾਂ ਲੋਡ ਨਾ ਹੋਣ ਦੀ ਹਾਲਤ ਵਿੱਚ Alt ਲਿਖਤ (ਬਦਲਵੀਂ ਲਿਖਤ) ਲੋਕਾਂ ਲਈ ਮਦਦਗਾਰ ਹੁੰਦੀ ਹੈ।\npdfjs-editor-alt-text-add-description-label = ਵਰਣਨ ਜੋੜੋ\npdfjs-editor-alt-text-add-description-description = 1-2 ਵਾਕ ਰੱਖੋ, ਜੋ ਕਿ ਵਿਸ਼ੇ, ਸੈਟਿੰਗ ਜਾਂ ਕਾਰਵਾਈਆਂ ਬਾਰੇ ਦਰਸਾਉਂਦੇ ਹੋਣ।\npdfjs-editor-alt-text-mark-decorative-label = ਸਜਾਵਟ ਵਜੋਂ ਨਿਸ਼ਾਨ ਲਾਇਆ\npdfjs-editor-alt-text-mark-decorative-description = ਇਸ ਨੂੰ ਸਜਾਵਟੀ ਚਿੱਤਰਾਂ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਹਾਸ਼ੀਆ ਜਾਂ ਵਾਟਰਮਾਰਕ ਆਦਿ।\npdfjs-editor-alt-text-cancel-button = ਰੱਦ ਕਰੋ\npdfjs-editor-alt-text-save-button = ਸੰਭਾਲੋ\npdfjs-editor-alt-text-decorative-tooltip = ਸਜਾਵਟ ਵਜੋਂ ਨਿਸ਼ਾਨ ਲਾਓ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = ਮਿਸਾਲ ਵਜੋਂ, “ਗੱਭਰੂ ਭੋਜਨ ਲੈ ਕੇ ਮੇਜ਼ ਉੱਤੇ ਬੈਠਾ ਹੈ”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = ਬਦਲਵੀਂ ਲਿਖਤ\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = ਉੱਤੇ ਖੱਬਾ ਕੋਨਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-top-middle =\n    .aria-label = ਉੱਤੇ ਮੱਧ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-top-right =\n    .aria-label = ਉੱਤੇ ਸੱਜਾ ਕੋਨਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-middle-right =\n    .aria-label = ਮੱਧ ਸੱਜਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-bottom-right =\n    .aria-label = ਹੇਠਾਂ ਸੱਜਾ ਕੋਨਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = ਹੇਠਾਂ ਮੱਧ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-bottom-left =\n    .aria-label = ਹੇਠਾਂ ਖੱਬਾ ਕੋਨਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\npdfjs-editor-resizer-middle-left =\n    .aria-label = ਮੱਧ ਖੱਬਾ — ਮੁੜ-ਆਕਾਰ ਕਰੋ\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = ਹਾਈਟਲਾਈਟ ਦਾ ਰੰਗ\npdfjs-editor-colorpicker-button =\n    .title = ਰੰਗ ਨੂੰ ਬਦਲੋ\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = ਰੰਗ ਚੋਣਾਂ\npdfjs-editor-colorpicker-yellow =\n    .title = ਪੀਲਾ\npdfjs-editor-colorpicker-green =\n    .title = ਹਰਾ\npdfjs-editor-colorpicker-blue =\n    .title = ਨੀਲਾ\npdfjs-editor-colorpicker-pink =\n    .title = ਗੁਲਾਬੀ\npdfjs-editor-colorpicker-red =\n    .title = ਲਾਲ\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = ਸਭ ਵੇਖੋ\npdfjs-editor-highlight-show-all-button =\n    .title = ਸਭ ਵੇਖੋ\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = ਬਦਲਵੀਂ ਲਿਖਤ (ਚਿੱਤਰ ਦਾ ਵਰਣਨ) ਨੂੰ ਸੋਧੋ\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = ਬਦਲਵੀਂ ਲਿਖਤ (ਚਿੱਤਰ ਦਾ ਵਰਣਨ) ਨੂੰ ਜੋੜੋ\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = …ਆਪਣਾ ਵਰਣਨਾ ਇੱਥੇ ਲਿਖੋ\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = ਲੋਕ, ਜੋ ਕਿ ਚਿੱਤਰ ਨਹੀਂ ਵੇਖ ਸਕਦੇ ਜਾਂ ਜਦ ਵੀ ਚਿੱਤਰਾਂ ਨੂੰ ਲੋਡ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਉਸ ਲਈ ਛੋਟਾ ਵੇਰਵਾ ਦਿਓ।\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = ਇਹ ਬਦਲਵੀਂ ਲਿਖਤ ਆਪਣੇ-ਆਪ ਤਿਆਰ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਗਲਤ ਵੀ ਹੋ ਸਕਦੀ ਹੈ।\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = ਹੋਰ ਜਾਣੋ\npdfjs-editor-new-alt-text-create-automatically-button-label = ਬਲਦਵੀਂ ਲਿਖਤ ਆਪਣੇ-ਆਪ ਬਣਾਓ\npdfjs-editor-new-alt-text-not-now-button = ਹੁਣੇ ਨਹੀਂ\npdfjs-editor-new-alt-text-error-title = ਬਦਲਵੀਂ ਲਿਖਤ ਆਪਣੇ-ਆਪ ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ\npdfjs-editor-new-alt-text-error-description = ਆਪਣਾ ਖੁਦ ਦੀ ਬਦਲਵੀਂ ਲਿਖਤ ਲਿਖੋ ਜਾਂ ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ।\npdfjs-editor-new-alt-text-error-close-button = ਬੰਦ ਕਰੋ\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = ਬਦਲਵਾਂ ਲਿਖਤ AI ਮਾਡਲ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ({ $totalSize } MB ਵਿੱਚੋਂ { $downloadedSize })\n    .aria-valuetext = ਬਦਲਵਾਂ ਲਿਖਤ AI ਮਾਡਲ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ({ $totalSize } MB ਵਿੱਚੋਂ { $downloadedSize })\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = ਬਦਲਵੀਂ ਲਿਖਤ ਜੋੜੀ\npdfjs-editor-new-alt-text-added-button-label = ਬਦਲਵੀਂ ਲਿਖਤ ਜੋੜੀ\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = ਬਦਲਵਾਂ ਲਿਖਤ ਗੁੰਮ ਹੈ\npdfjs-editor-new-alt-text-missing-button-label = ਬਦਲਵਾਂ ਲਿਖਤ ਗੁੰਮ ਹੈ\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = ਬਦਲਵੀਂ ਲਿਖਤ ਦਾ ਰੀਵਿਊ ਕਰੋ\npdfjs-editor-new-alt-text-to-review-button-label = ਬਦਲਵੀਂ ਲਿਖਤ ਦਾ ਰੀਵਿਊ ਕਰੋ\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = ਆਪਣੇ-ਆਪ ਬਣਾਇਆ: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = ਚਿੱਤਰ ਬਦਲਵੀਂ ਲਿਖਤ ਦੀਆਂ ਸੈਟਿੰਗਾਂ\npdfjs-image-alt-text-settings-button-label = ਚਿੱਤਰ ਬਦਲਵੀਂ ਲਿਖਤ ਦੀਆਂ ਸੈਟਿੰਗਾਂ\npdfjs-editor-alt-text-settings-dialog-label = ਚਿੱਤਰ ਬਦਲਵੀਂ ਲਿਖਤ ਦੀਆਂ ਸੈਟਿੰਗਾਂ\npdfjs-editor-alt-text-settings-automatic-title = ਆਟੋਮਮੈਟਿਕ ਬਦਲਵੀਂ ਲਿਖਤ\npdfjs-editor-alt-text-settings-create-model-button-label = ਬਲਦਵੀਂ ਲਿਖਤ ਆਪਣੇ-ਆਪ ਬਣਾਓ\npdfjs-editor-alt-text-settings-create-model-description = ਚਿੱਤਰ ਨਾ ਵੇਖ ਸਕਣ ਵਾਲੇ ਲੋਕਾਂ ਦੀ ਮਦਦ ਜਾਂ ਜਦ ਵੀ ਚਿੱਤਰਾਂ ਨੂੰ ਲੋਡ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਉਸ ਲਈ ਛੋਟਾ ਵੇਰਵਾ ਦਿਓ।\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = ਬਦਲਵੀ ਲਿਖਤ ਲਈ AI ਮਾਡਲ ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਲੋਕਲ ਹੀ ਚੱਲਦਾ ਹੋਣ ਕਰਕੇ ਤੁਹਾਡਾ ਡਾਟਾ ਪ੍ਰਾਈਵੇਟ ਹੀ ਰਹਿੰਦਾ ਹੈ। ਆਟੋਮੈਟਿਕ ਬਦਲਵੀਂ ਲਿਖਤ ਲਈ ਚਾਹੀਦਾ ਹੈ।\npdfjs-editor-alt-text-settings-delete-model-button = ਹਟਾਓ\npdfjs-editor-alt-text-settings-download-model-button = ਡਾਊਨਲੋਡ\npdfjs-editor-alt-text-settings-downloading-model-button = …ਨੂੰ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ\npdfjs-editor-alt-text-settings-editor-title = ਬਦਲਵੀਂ ਲਿਖਤ ਐਡੀਟਰ\npdfjs-editor-alt-text-settings-show-dialog-button-label = ਜਦੋਂ ਵਿੱਚ ਚਿੱਤਰ ਜੋੜਿਆ ਜਾਵੇ ਤਾਂ ਫ਼ੌਰਨ ਬਦਲਵੀ ਲਿਖਤ ਸੰਪਾਦਕ ਵੇਖਾਓ\npdfjs-editor-alt-text-settings-show-dialog-description = ਤੁਹਾਡੀ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਸਾਰੇ ਚਿੱਤਰਾਂ ਲਈ ਬਦਲਵੀਂ ਲਿਖਤ ਮੌਜੂਦ ਹੋਵੇ।\npdfjs-editor-alt-text-settings-close-button = ਬੰਦ ਕਰੋ\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = ਹਾਈਲਾਈਟ ਨੂੰ ਜੋੜਿਆ\npdfjs-editor-freetext-added-alert = ਲਿਖਤ ਨੂੰ ਜੋੜਿਆ ਗਿਆ\npdfjs-editor-ink-added-alert = ਡਰਾਇੰਗ ਨੂੰ ਜੋੜਿਆ\npdfjs-editor-stamp-added-alert = ਚਿੱਤਰ ਨੂੰ ਜੋੜਿਆ\npdfjs-editor-signature-added-alert = ਦਸਤਖ਼ਤਾਂ ਨੂੰ ਜੋੜਿਆ\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = ਹਾਈਲਾਈਟ ਨੂੰ ਹਟਾਇਆ ਗਿਆ\npdfjs-editor-undo-bar-message-freetext = ਲਿਖਤ ਨੂੰ ਹਟਾਇਆ ਗਿਆ\npdfjs-editor-undo-bar-message-ink = ਡਰਾਇੰਗ ਨੂੰ ਹਟਾਇਆ ਗਿਆ\npdfjs-editor-undo-bar-message-stamp = ਚਿੱਤਰ ਨੂੰ ਹਟਾਇਆ ਗਿਆ\npdfjs-editor-undo-bar-message-signature = ਦਸਤਖ਼ਤ ਨੂੰ ਹਟਾਇਆ\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } ਵਿਆਖਿਆ ਨੂੰ ਹਟਾਇਆ\n       *[other] { $count } ਵਿਆਖਿਆਵਾਂ ਨੂੰ ਹਟਾਇਆ\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = ਵਾਪਸ\npdfjs-editor-undo-bar-undo-button-label = ਵਾਪਸ\npdfjs-editor-undo-bar-close-button =\n    .title = ਬੰਦ ਕਰੋ\npdfjs-editor-undo-bar-close-button-label = ਬੰਦ ਕਰੋ\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = ਇਹ ਮਾਡਲ ਵਰਤੋਂਕਾਰ ਨੂੰ PDF ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਜੋੜਨ ਲਈ ਦਸਤਖ਼ਤ ਬਣਾਉਣ ਦਿੰਦਾ ਹੈ। ਵਰਤੋਂਕਾਰ ਨਾਂ ਨੂੰ ਸੋਧ ਸਕਦਾ ਹੈ (ਜੋ ਕਿ ਬਦਲਵੀਂ ਲਿਖਤ ਵਜੋਂ ਕੰਮ ਕਰੇਗਾ) ਅਤੇ ਦੁਬਾਰਾ ਵਰਤੋਂ ਕਰਨ ਲਈ ਦਸਤਖ਼ਤਾਂ ਨੂੰ ਸੰਭਾਲ ਵੀ ਸਕਦਾ ਹੈ।\npdfjs-editor-add-signature-dialog-title = ਦਸਤਖ਼ਤ ਨੂੰ ਜੋੜੋ\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = ਕਿਸਮ\n    .title = ਕਿਸਮ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = ਵਾਹੋ\n    .title = ਵਾਹੋ\npdfjs-editor-add-signature-image-button = ਚਿੱਤਰ\n    .title = ਚਿੱਤਰ\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = ਆਪਣੇ ਦਸਤਖ਼ਤ ਨੂੰ ਟਾਈਪ ਕਰੋ\n    .placeholder = ਆਪਣੇ ਦਸਤਖ਼ਤ ਨੂੰ ਟਾਈਪ ਕਰੋ\npdfjs-editor-add-signature-draw-placeholder = ਆਪਣੇ ਦਸਤਖ਼ਤ ਨੂੰ ਵਾਹੋ\npdfjs-editor-add-signature-draw-thickness-range-label = ਮੋਟਾਈ\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = ਵਹਾਉਣ ਲਈ ਚੌੜਾਈ: { $thickness }\npdfjs-editor-add-signature-image-placeholder = ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਫ਼ਾਇਲ ਨੂੰ ਇੱਥੇ ਖਿੱਚੋ\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] ਜਾਂ ਚਿੱਤਰ ਫ਼ਾਇਲਾਂ ਨੂੰ ਚੁਣੋ\n       *[other] ਜਾਂ ਚਿੱਤਰ ਫ਼ਾਇਲਾਂ ਦੀ ਝਲਕ ਵੇਖੋ\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = ਵਰਣਨ (ਬਦਲਵੀਂ ਲਿਖਤ)\npdfjs-editor-add-signature-description-input =\n    .title = ਵਰਣਨ (ਬਦਲਵੀਂ ਲਿਖਤ)\npdfjs-editor-add-signature-description-default-when-drawing = ਦਸਤਖ਼ਤ\npdfjs-editor-add-signature-clear-button-label = ਦਸਤਖ਼ਤ ਨੂੰ ਮਿਟਾਓ\npdfjs-editor-add-signature-clear-button =\n    .title = ਦਸਤਖ਼ਤ ਨੂੰ ਮਿਟਾਓ\npdfjs-editor-add-signature-save-checkbox = ਦਸਤਖ਼ਤ ਨੂੰ ਸੰਭਾਲੋ\npdfjs-editor-add-signature-save-warning-message = ਤੁਸੀਂ ਵੱਧ ਤੋਂ ਵੱਧ 5 ਸੰਭਾਲੇ ਦਸਤਖ਼ਤਾਂ ਦੀ ਹੱਦ ਤੱਕ ਅੱਪੜੇ। ਹੋਰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ ਨੂੰ ਹਟਾਓ।\npdfjs-editor-add-signature-image-upload-error-title = ਚਿੱਤਰ ਨੂੰ ਅੱਪਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ\npdfjs-editor-add-signature-image-upload-error-description = ਆਪਣੇ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ ਜਾਂ ਹੋਰ ਚਿੱਤਰ ਨੂੰ ਅਜ਼ਮਾਓ।\npdfjs-editor-add-signature-image-no-data-error-title = ਇਸ ਚਿੱਤਰ ਨੂੰ ਦਸਤਖ਼ਤ ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ\npdfjs-editor-add-signature-image-no-data-error-description = ਵੱਖਰੇ ਚਿੱਤਰ ਨੂੰ ਅੱਪਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।\npdfjs-editor-add-signature-error-close-button = ਬੰਦ ਕਰੋ\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = ਰੱਦ ਕਰੋ\npdfjs-editor-add-signature-add-button = ਜੋੜੋ\npdfjs-editor-edit-signature-update-button = ਅੱਪਡੇਟ\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = ਟਿੱਪਣੀ ਨੂੰ ਸੋਧੋ\npdfjs-editor-edit-comment-popup-button =\n    .title = ਟਿੱਪਣੀ ਨੂੰ ਸੋਧੋ\npdfjs-editor-delete-comment-popup-button-label = ਟਿੱਪਣੀ ਨੂੰ ਹਟਾਓ\npdfjs-editor-delete-comment-popup-button =\n    .title = ਟਿੱਪਣੀ ਨੂੰ ਹਟਾਓ\npdfjs-show-comment-button =\n    .title = ਟਿੱਪਣੀ ਨੂੰ ਵੇਖਾਓ\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = ਕਾਰਵਾਈਆਂ\npdfjs-editor-edit-comment-actions-button =\n    .title = ਕਾਰਵਾਈਆਂ\npdfjs-editor-edit-comment-close-button-label = ਬੰਦ ਕਰੋ\npdfjs-editor-edit-comment-close-button =\n    .title = ਬੰਦ ਕਰੋ\npdfjs-editor-edit-comment-actions-edit-button-label = ਸੋਧੋ\npdfjs-editor-edit-comment-actions-delete-button-label = ਹਟਾਓ\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = ਆਪਣੀ ਟਿੱਪਣੀ ਦਿਓ\npdfjs-editor-edit-comment-manager-cancel-button = ਰੱਦ ਕਰੋ\npdfjs-editor-edit-comment-manager-save-button = ਸੰਭਾਲੋ\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = ਟਿੱਪਣੀ ਨੂੰ ਸੋਧੋ\npdfjs-editor-edit-comment-dialog-save-button-when-editing = ਅੱਪਡੇਟ ਕਰੋ\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = ਟਿੱਪਣੀ ਜੋੜੋ\npdfjs-editor-edit-comment-dialog-save-button-when-adding = ਜੋੜੋ\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = …ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ\npdfjs-editor-edit-comment-dialog-cancel-button = ਰੱਦ ਕਰੋ\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = ਟਿੱਪਣੀ ਨੂੰ ਸੋਧੋ\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = ਸੰਭਾਲੇ ਹੋਏ ਦਸਤਖ਼ਤ ਨੂੰ ਹਟਾਓ\npdfjs-editor-delete-signature-button-label1 = ਸੰਭਾਲੇ ਹੋਏ ਦਸਤਖ਼ਤ ਨੂੰ ਹਟਾਓ\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = ਵਰਣਨ ਨੂੰ ਸੋਧੋ\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = ਵਰਣਨ ਨੂੰ ਸੋਧੋ\n"
  },
  {
    "path": "viewer/locale/pl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Poprzednia strona\npdfjs-previous-button-label = Poprzednia\npdfjs-next-button =\n    .title = Następna strona\npdfjs-next-button-label = Następna\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Strona\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = z { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } z { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Pomniejsz\npdfjs-zoom-out-button-label = Pomniejsz\npdfjs-zoom-in-button =\n    .title = Powiększ\npdfjs-zoom-in-button-label = Powiększ\npdfjs-zoom-select =\n    .title = Skala\npdfjs-presentation-mode-button =\n    .title = Przełącz na tryb prezentacji\npdfjs-presentation-mode-button-label = Tryb prezentacji\npdfjs-open-file-button =\n    .title = Otwórz plik\npdfjs-open-file-button-label = Otwórz\npdfjs-print-button =\n    .title = Drukuj\npdfjs-print-button-label = Drukuj\npdfjs-save-button =\n    .title = Zapisz\npdfjs-save-button-label = Zapisz\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Pobierz\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Pobierz\npdfjs-bookmark-button =\n    .title = Bieżąca strona (adres do otwarcia na bieżącej stronie)\npdfjs-bookmark-button-label = Bieżąca strona\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Narzędzia\npdfjs-tools-button-label = Narzędzia\npdfjs-first-page-button =\n    .title = Przejdź do pierwszej strony\npdfjs-first-page-button-label = Przejdź do pierwszej strony\npdfjs-last-page-button =\n    .title = Przejdź do ostatniej strony\npdfjs-last-page-button-label = Przejdź do ostatniej strony\npdfjs-page-rotate-cw-button =\n    .title = Obróć zgodnie z ruchem wskazówek zegara\npdfjs-page-rotate-cw-button-label = Obróć zgodnie z ruchem wskazówek zegara\npdfjs-page-rotate-ccw-button =\n    .title = Obróć przeciwnie do ruchu wskazówek zegara\npdfjs-page-rotate-ccw-button-label = Obróć przeciwnie do ruchu wskazówek zegara\npdfjs-cursor-text-select-tool-button =\n    .title = Włącz narzędzie zaznaczania tekstu\npdfjs-cursor-text-select-tool-button-label = Narzędzie zaznaczania tekstu\npdfjs-cursor-hand-tool-button =\n    .title = Włącz narzędzie rączka\npdfjs-cursor-hand-tool-button-label = Narzędzie rączka\npdfjs-scroll-page-button =\n    .title = Przewijaj strony\npdfjs-scroll-page-button-label = Przewijanie stron\npdfjs-scroll-vertical-button =\n    .title = Przewijaj dokument w pionie\npdfjs-scroll-vertical-button-label = Przewijanie pionowe\npdfjs-scroll-horizontal-button =\n    .title = Przewijaj dokument w poziomie\npdfjs-scroll-horizontal-button-label = Przewijanie poziome\npdfjs-scroll-wrapped-button =\n    .title = Strony dokumentu wyświetlaj i przewijaj w kolumnach\npdfjs-scroll-wrapped-button-label = Widok dwóch stron\npdfjs-spread-none-button =\n    .title = Nie ustawiaj stron obok siebie\npdfjs-spread-none-button-label = Brak kolumn\npdfjs-spread-odd-button =\n    .title = Strony nieparzyste ustawiaj na lewo od parzystych\npdfjs-spread-odd-button-label = Nieparzyste po lewej\npdfjs-spread-even-button =\n    .title = Strony parzyste ustawiaj na lewo od nieparzystych\npdfjs-spread-even-button-label = Parzyste po lewej\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Właściwości dokumentu…\npdfjs-document-properties-button-label = Właściwości dokumentu…\npdfjs-document-properties-file-name = Nazwa pliku:\npdfjs-document-properties-file-size = Rozmiar pliku:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } B)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } B)\npdfjs-document-properties-title = Tytuł:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Temat:\npdfjs-document-properties-keywords = Słowa kluczowe:\npdfjs-document-properties-creation-date = Data utworzenia:\npdfjs-document-properties-modification-date = Data modyfikacji:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Utworzony przez:\npdfjs-document-properties-producer = PDF wyprodukowany przez:\npdfjs-document-properties-version = Wersja PDF:\npdfjs-document-properties-page-count = Liczba stron:\npdfjs-document-properties-page-size = Wymiary strony:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = pionowa\npdfjs-document-properties-page-size-orientation-landscape = pozioma\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = US Letter\npdfjs-document-properties-page-size-name-legal = US Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width }×{ $height } { $unit } (orientacja { $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width }×{ $height } { $unit } ({ $name }, orientacja { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Szybki podgląd w Internecie:\npdfjs-document-properties-linearized-yes = tak\npdfjs-document-properties-linearized-no = nie\npdfjs-document-properties-close-button = Zamknij\n\n## Print\n\npdfjs-print-progress-message = Przygotowywanie dokumentu do druku…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anuluj\npdfjs-printing-not-supported = Ostrzeżenie: drukowanie nie jest w pełni obsługiwane przez tę przeglądarkę.\npdfjs-printing-not-ready = Ostrzeżenie: dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Przełącz panel boczny\npdfjs-toggle-sidebar-notification-button =\n    .title = Przełącz panel boczny (dokument zawiera konspekt/załączniki/warstwy)\npdfjs-toggle-sidebar-button-label = Przełącz panel boczny\npdfjs-document-outline-button =\n    .title = Konspekt dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje)\npdfjs-document-outline-button-label = Konspekt dokumentu\npdfjs-attachments-button =\n    .title = Załączniki\npdfjs-attachments-button-label = Załączniki\npdfjs-layers-button =\n    .title = Warstwy (podwójne kliknięcie przywraca wszystkie warstwy do stanu domyślnego)\npdfjs-layers-button-label = Warstwy\npdfjs-thumbs-button =\n    .title = Miniatury\npdfjs-thumbs-button-label = Miniatury\npdfjs-current-outline-item-button =\n    .title = Znajdź bieżący element konspektu\npdfjs-current-outline-item-button-label = Bieżący element konspektu\npdfjs-findbar-button =\n    .title = Znajdź w dokumencie\npdfjs-findbar-button-label = Znajdź\npdfjs-additional-layers = Dodatkowe warstwy\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page }. strona\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura { $page }. strony\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Znajdź\n    .placeholder = Znajdź w dokumencie…\npdfjs-find-previous-button =\n    .title = Znajdź poprzednie wystąpienie tekstu\npdfjs-find-previous-button-label = Poprzednie\npdfjs-find-next-button =\n    .title = Znajdź następne wystąpienie tekstu\npdfjs-find-next-button-label = Następne\npdfjs-find-highlight-checkbox = Wyróżnianie wszystkich\npdfjs-find-match-case-checkbox-label = Rozróżnianie wielkości liter\npdfjs-find-match-diacritics-checkbox-label = Rozróżnianie liter diakrytyzowanych\npdfjs-find-entire-word-checkbox-label = Całe słowa\npdfjs-find-reached-top = Początek dokumentu. Wyszukiwanie od końca.\npdfjs-find-reached-bottom = Koniec dokumentu. Wyszukiwanie od początku.\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current }. z { $total } trafienia\n        [few] { $current }. z { $total } trafień\n       *[many] { $current }. z { $total } trafień\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Więcej niż { $limit } trafienie\n        [few] Więcej niż { $limit } trafienia\n       *[many] Więcej niż { $limit } trafień\n    }\npdfjs-find-not-found = Nie znaleziono tekstu\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Szerokość strony\npdfjs-page-scale-fit = Dopasowanie strony\npdfjs-page-scale-auto = Skala automatyczna\npdfjs-page-scale-actual = Rozmiar oryginalny\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page }. strona\n\n## Loading indicator messages\n\npdfjs-loading-error = Podczas wczytywania dokumentu PDF wystąpił błąd.\npdfjs-invalid-file-error = Nieprawidłowy lub uszkodzony plik PDF.\npdfjs-missing-file-error = Brak pliku PDF.\npdfjs-unexpected-response-error = Nieoczekiwana odpowiedź serwera.\npdfjs-rendering-error = Podczas renderowania strony wystąpił błąd.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Przypis: { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Wpisz hasło, aby otworzyć ten dokument PDF.\npdfjs-password-invalid = Nieprawidłowe hasło. Proszę spróbować ponownie.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Anuluj\npdfjs-web-fonts-disabled = Czcionki sieciowe są wyłączone: nie można użyć osadzonych czcionek PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Zmień kolor tekstu\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Rysunek\npdfjs-editor-color-picker-ink-input =\n    .title = Zmień kolor rysunku\npdfjs-editor-ink-button-label = Rysunek\npdfjs-editor-stamp-button =\n    .title = Dodaj lub edytuj obrazy\npdfjs-editor-stamp-button-label = Dodaj lub edytuj obrazy\npdfjs-editor-highlight-button =\n    .title = Wyróżnij\npdfjs-editor-highlight-button-label = Wyróżnij\npdfjs-highlight-floating-button1 =\n    .title = Wyróżnij\n    .aria-label = Wyróżnij\npdfjs-highlight-floating-button-label = Wyróżnij\npdfjs-comment-floating-button =\n    .title = Dodaj komentarz\n    .aria-label = Dodaj komentarz\npdfjs-comment-floating-button-label = Dodaj komentarz\npdfjs-editor-comment-button =\n    .title = Dodaj komentarz\n    .aria-label = Dodaj komentarz\npdfjs-editor-comment-button-label = Dodaj komentarz\npdfjs-editor-signature-button =\n    .title = Dodaj podpis\npdfjs-editor-signature-button-label = Dodaj podpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Edytor wyróżnienia\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Edytor rysunku\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Edytor podpisu: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Edytor obrazu\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Usuń rysunek\npdfjs-editor-remove-freetext-button =\n    .title = Usuń tekst\npdfjs-editor-remove-stamp-button =\n    .title = Usuń obraz\npdfjs-editor-remove-highlight-button =\n    .title = Usuń wyróżnienie\npdfjs-editor-remove-signature-button =\n    .title = Usuń podpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Kolor\npdfjs-editor-free-text-size-input = Rozmiar\npdfjs-editor-ink-color-input = Kolor\npdfjs-editor-ink-thickness-input = Grubość\npdfjs-editor-ink-opacity-input = Nieprzezroczystość\npdfjs-editor-stamp-add-image-button =\n    .title = Dodaj obraz\npdfjs-editor-stamp-add-image-button-label = Dodaj obraz\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grubość\npdfjs-editor-free-highlight-thickness-title =\n    .title = Zmień grubość podczas wyróżniania elementów innych niż tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Sterowanie podpisami i zachowane podpisy\npdfjs-editor-signature-add-signature-button =\n    .title = Dodaj nowy podpis\npdfjs-editor-signature-add-signature-button-label = Dodaj nowy podpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Zachowany podpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Edytor tekstu\n    .default-content = Zacznij pisać…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Komentarz\n       *[other] Komentarze\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Zamknij panel boczny\n    .aria-label = Zamknij panel boczny\npdfjs-editor-comments-sidebar-close-button-label = Zamknij panel boczny\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Widzisz coś godnego uwagi? Wyróżnij to i zostaw komentarz.\npdfjs-editor-comments-sidebar-no-comments-link = Więcej informacji\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Tekst alternatywny\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Edytuj tekst alternatywny\npdfjs-editor-alt-text-dialog-label = Wybierz opcję\npdfjs-editor-alt-text-dialog-description = Tekst alternatywny pomaga, kiedy ktoś nie może zobaczyć obrazu lub gdy się nie wczytuje.\npdfjs-editor-alt-text-add-description-label = Dodaj opis\npdfjs-editor-alt-text-add-description-description = Staraj się napisać 1-2 zdania opisujące temat, miejsce lub działania.\npdfjs-editor-alt-text-mark-decorative-label = Oznacz jako dekoracyjne\npdfjs-editor-alt-text-mark-decorative-description = Używane w przypadku obrazów ozdobnych, takich jak obramowania lub znaki wodne.\npdfjs-editor-alt-text-cancel-button = Anuluj\npdfjs-editor-alt-text-save-button = Zapisz\npdfjs-editor-alt-text-decorative-tooltip = Oznaczone jako dekoracyjne\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na przykład: „Młody człowiek siada przy stole, aby zjeść posiłek”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Tekst alternatywny\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Lewy górny róg — zmień rozmiar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Górny środkowy — zmień rozmiar\npdfjs-editor-resizer-top-right =\n    .aria-label = Prawy górny róg — zmień rozmiar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Prawy środkowy — zmień rozmiar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Prawy dolny róg — zmień rozmiar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Dolny środkowy — zmień rozmiar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Lewy dolny róg — zmień rozmiar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Lewy środkowy — zmień rozmiar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Kolor wyróżnienia\npdfjs-editor-colorpicker-button =\n    .title = Zmień kolor\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Wybór kolorów\npdfjs-editor-colorpicker-yellow =\n    .title = Żółty\npdfjs-editor-colorpicker-green =\n    .title = Zielony\npdfjs-editor-colorpicker-blue =\n    .title = Niebieski\npdfjs-editor-colorpicker-pink =\n    .title = Różowy\npdfjs-editor-colorpicker-red =\n    .title = Czerwony\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Pokaż wszystkie\npdfjs-editor-highlight-show-all-button =\n    .title = Pokaż wszystkie\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Edytuj tekst alternatywny (opis obrazu)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Dodaj tekst alternatywny (opis obrazu)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Napisz tutaj opis…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Krótki opis dla osób, które nie widzą obrazu lub kiedy obraz się nie wczytuje.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ten tekst alternatywny został utworzony automatycznie i może być niepoprawny.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Więcej informacji\npdfjs-editor-new-alt-text-create-automatically-button-label = Automatycznie utwórz tekst alternatywny\npdfjs-editor-new-alt-text-not-now-button = Nie teraz\npdfjs-editor-new-alt-text-error-title = Nie można automatycznie utworzyć tekstu alternatywnego\npdfjs-editor-new-alt-text-error-description = Proszę napisać własny tekst alternatywny lub spróbować ponownie później.\npdfjs-editor-new-alt-text-error-close-button = Zamknij\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Pobieranie modelu SI tekstu alternatywnego ({ $downloadedSize } z { $totalSize } MB)\n    .aria-valuetext = Pobieranie modelu SI tekstu alternatywnego ({ $downloadedSize } z { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Dodano tekst alternatywny\npdfjs-editor-new-alt-text-added-button-label = Dodano tekst alternatywny\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Brak tekstu alternatywnego\npdfjs-editor-new-alt-text-missing-button-label = Brak tekstu alternatywnego\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Przejrzyj tekst alternatywny\npdfjs-editor-new-alt-text-to-review-button-label = Przejrzyj tekst alternatywny\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Utworzono automatycznie: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Ustawienia tekstu alternatywnego obrazów\npdfjs-image-alt-text-settings-button-label = Ustawienia tekstu alternatywnego obrazów\npdfjs-editor-alt-text-settings-dialog-label = Ustawienia tekstu alternatywnego obrazów\npdfjs-editor-alt-text-settings-automatic-title = Automatyczny tekst alternatywny\npdfjs-editor-alt-text-settings-create-model-button-label = Automatyczne tworzenie tekstu alternatywnego\npdfjs-editor-alt-text-settings-create-model-description = Podpowiada opisy, które mogą pomóc osobom, które nie widzą obrazu lub kiedy obraz się nie wczytuje.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model SI tekstu alternatywnego ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Działa lokalnie na urządzeniu użytkownika, więc Twoje dane pozostają prywatne. Wymagane do funkcji automatycznego tekstu alternatywnego.\npdfjs-editor-alt-text-settings-delete-model-button = Usuń\npdfjs-editor-alt-text-settings-download-model-button = Pobierz\npdfjs-editor-alt-text-settings-downloading-model-button = Pobieranie…\npdfjs-editor-alt-text-settings-editor-title = Edytor tekstu alternatywnego\npdfjs-editor-alt-text-settings-show-dialog-button-label = Wyświetlanie edytora tekstu alternatywnego od razu po dodaniu obrazu\npdfjs-editor-alt-text-settings-show-dialog-description = Pomaga upewnić się, że wszystkie obrazy mają tekst alternatywny.\npdfjs-editor-alt-text-settings-close-button = Zamknij\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Dodano wyróżnione\npdfjs-editor-freetext-added-alert = Dodano tekst\npdfjs-editor-ink-added-alert = Dodano rysunek\npdfjs-editor-stamp-added-alert = Dodano obraz\npdfjs-editor-signature-added-alert = Dodano podpis\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Usunięto wyróżnienie\npdfjs-editor-undo-bar-message-freetext = Usunięto tekst\npdfjs-editor-undo-bar-message-ink = Usunięto rysunek\npdfjs-editor-undo-bar-message-stamp = Usunięto obraz\npdfjs-editor-undo-bar-message-signature = Usunięto podpis\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] Usunięto przypis\n        [few] Usunięto { $count } przypisy\n       *[many] Usunięto { $count } przypisów\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Cofnij\npdfjs-editor-undo-bar-undo-button-label = Cofnij\npdfjs-editor-undo-bar-close-button =\n    .title = Zamknij\npdfjs-editor-undo-bar-close-button-label = Zamknij\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = To okno umożliwia utworzenie podpisu, który można dodać do dokumentu PDF. Można zmienić nazwę (która służy także jako tekst alternatywny) i opcjonalnie zachować podpis do ponownego użycia.\npdfjs-editor-add-signature-dialog-title = Dodanie podpisu\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Wpisz\n    .title = Wpisz\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Narysuj\n    .title = Narysuj\npdfjs-editor-add-signature-image-button = Obraz\n    .title = Obraz\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Wpisz swój podpis\n    .placeholder = Wpisz swój podpis\npdfjs-editor-add-signature-draw-placeholder = Narysuj swój podpis\npdfjs-editor-add-signature-draw-thickness-range-label = Grubość\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grubość kreski: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Przeciągnij tutaj plik, aby go przesłać\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Lub wybierz plik obrazu\n       *[other] Lub przeglądaj pliki obrazów\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Opis (tekst alternatywny)\npdfjs-editor-add-signature-description-input =\n    .title = Opis (tekst alternatywny)\npdfjs-editor-add-signature-description-default-when-drawing = Podpis\npdfjs-editor-add-signature-clear-button-label = Usuń podpis\npdfjs-editor-add-signature-clear-button =\n    .title = Usuń podpis\npdfjs-editor-add-signature-save-checkbox = Zachowaj podpis\npdfjs-editor-add-signature-save-warning-message = Osiągnięto ograniczenie wynoszące pięć zachowanych podpisów. Usuń jeden, aby zachować więcej.\npdfjs-editor-add-signature-image-upload-error-title = Nie można przesłać obrazu\npdfjs-editor-add-signature-image-upload-error-description = Sprawdź połączenie sieciowe lub spróbuj przesłać inny obraz.\npdfjs-editor-add-signature-image-no-data-error-title = Nie można przekonwertować tego obrazu na podpis\npdfjs-editor-add-signature-image-no-data-error-description = Spróbuj przesłać inny obraz.\npdfjs-editor-add-signature-error-close-button = Zamknij\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Anuluj\npdfjs-editor-add-signature-add-button = Dodaj\npdfjs-editor-edit-signature-update-button = Aktualizuj\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Edytuj komentarz\npdfjs-editor-edit-comment-popup-button =\n    .title = Edytuj komentarz\npdfjs-editor-delete-comment-popup-button-label = Usuń komentarz\npdfjs-editor-delete-comment-popup-button =\n    .title = Usuń komentarz\npdfjs-show-comment-button =\n    .title = Wyświetl komentarz\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Działania\npdfjs-editor-edit-comment-actions-button =\n    .title = Działania\npdfjs-editor-edit-comment-close-button-label = Zamknij\npdfjs-editor-edit-comment-close-button =\n    .title = Zamknij\npdfjs-editor-edit-comment-actions-edit-button-label = Edytuj\npdfjs-editor-edit-comment-actions-delete-button-label = Usuń\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Napisz komentarz\npdfjs-editor-edit-comment-manager-cancel-button = Anuluj\npdfjs-editor-edit-comment-manager-save-button = Zapisz\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Edytuj komentarz\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualizuj\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Dodaj komentarz\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Dodaj\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Zacznij pisać…\npdfjs-editor-edit-comment-dialog-cancel-button = Anuluj\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Edytuj komentarz\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Usuń zachowany podpis\npdfjs-editor-delete-signature-button-label1 = Usuń zachowany podpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Edytuj opis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Edycja opisu\n"
  },
  {
    "path": "viewer/locale/pt-BR/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Próxima página\npdfjs-next-button-label = Próxima\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Reduzir\npdfjs-zoom-out-button-label = Reduzir\npdfjs-zoom-in-button =\n    .title = Ampliar\npdfjs-zoom-in-button-label = Ampliar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Mudar para o modo de apresentação\npdfjs-presentation-mode-button-label = Modo de apresentação\npdfjs-open-file-button =\n    .title = Abrir arquivo\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Salvar\npdfjs-save-button-label = Salvar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Baixar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Baixar\npdfjs-bookmark-button =\n    .title = Página atual (ver URL da página atual)\npdfjs-bookmark-button-label = Pagina atual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ferramentas\npdfjs-tools-button-label = Ferramentas\npdfjs-first-page-button =\n    .title = Ir para a primeira página\npdfjs-first-page-button-label = Ir para a primeira página\npdfjs-last-page-button =\n    .title = Ir para a última página\npdfjs-last-page-button-label = Ir para a última página\npdfjs-page-rotate-cw-button =\n    .title = Girar no sentido horário\npdfjs-page-rotate-cw-button-label = Girar no sentido horário\npdfjs-page-rotate-ccw-button =\n    .title = Girar no sentido anti-horário\npdfjs-page-rotate-ccw-button-label = Girar no sentido anti-horário\npdfjs-cursor-text-select-tool-button =\n    .title = Ativar a ferramenta de seleção de texto\npdfjs-cursor-text-select-tool-button-label = Ferramenta de seleção de texto\npdfjs-cursor-hand-tool-button =\n    .title = Ativar ferramenta de deslocamento\npdfjs-cursor-hand-tool-button-label = Ferramenta de deslocamento\npdfjs-scroll-page-button =\n    .title = Usar rolagem de página\npdfjs-scroll-page-button-label = Rolagem de página\npdfjs-scroll-vertical-button =\n    .title = Usar deslocamento vertical\npdfjs-scroll-vertical-button-label = Deslocamento vertical\npdfjs-scroll-horizontal-button =\n    .title = Usar deslocamento horizontal\npdfjs-scroll-horizontal-button-label = Deslocamento horizontal\npdfjs-scroll-wrapped-button =\n    .title = Usar deslocamento contido\npdfjs-scroll-wrapped-button-label = Deslocamento contido\npdfjs-spread-none-button =\n    .title = Não reagrupar páginas\npdfjs-spread-none-button-label = Não estender\npdfjs-spread-odd-button =\n    .title = Agrupar páginas começando em páginas com números ímpares\npdfjs-spread-odd-button-label = Estender ímpares\npdfjs-spread-even-button =\n    .title = Agrupar páginas começando em páginas com números pares\npdfjs-spread-even-button-label = Estender pares\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propriedades do documento…\npdfjs-document-properties-button-label = Propriedades do documento…\npdfjs-document-properties-file-name = Nome do arquivo:\npdfjs-document-properties-file-size = Tamanho do arquivo:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Assunto:\npdfjs-document-properties-keywords = Palavras-chave:\npdfjs-document-properties-creation-date = Data da criação:\npdfjs-document-properties-modification-date = Data da modificação:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Criação:\npdfjs-document-properties-producer = Criador do PDF:\npdfjs-document-properties-version = Versão do PDF:\npdfjs-document-properties-page-count = Número de páginas:\npdfjs-document-properties-page-size = Tamanho da página:\npdfjs-document-properties-page-size-unit-inches = pol.\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = retrato\npdfjs-document-properties-page-size-orientation-landscape = paisagem\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Jurídico\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Exibição web rápida:\npdfjs-document-properties-linearized-yes = Sim\npdfjs-document-properties-linearized-no = Não\npdfjs-document-properties-close-button = Fechar\n\n## Print\n\npdfjs-print-progress-message = Preparando documento para impressão…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Aviso: a impressão não é totalmente suportada neste navegador.\npdfjs-printing-not-ready = Aviso: o PDF não está totalmente carregado para impressão.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Exibir/ocultar painel lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Exibir/ocultar painel lateral (documento contém estrutura/anexos/camadas)\npdfjs-toggle-sidebar-button-label = Exibir/ocultar painel lateral\npdfjs-document-outline-button =\n    .title = Mostrar estrutura do documento (duplo-clique expande/recolhe todos os itens)\npdfjs-document-outline-button-label = Estrutura do documento\npdfjs-attachments-button =\n    .title = Mostrar anexos\npdfjs-attachments-button-label = Anexos\npdfjs-layers-button =\n    .title = Mostrar camadas (duplo-clique redefine todas as camadas ao estado predefinido)\npdfjs-layers-button-label = Camadas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Encontrar item atual da estrutura\npdfjs-current-outline-item-button-label = Item atual da estrutura\npdfjs-findbar-button =\n    .title = Procurar no documento\npdfjs-findbar-button-label = Procurar\npdfjs-additional-layers = Camadas adicionais\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura da página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Procurar\n    .placeholder = Procurar no documento…\npdfjs-find-previous-button =\n    .title = Procurar a ocorrência anterior da frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Procurar a próxima ocorrência da frase\npdfjs-find-next-button-label = Próxima\npdfjs-find-highlight-checkbox = Destacar tudo\npdfjs-find-match-case-checkbox-label = Diferenciar maiúsculas/minúsculas\npdfjs-find-match-diacritics-checkbox-label = Considerar acentuação\npdfjs-find-entire-word-checkbox-label = Palavras completas\npdfjs-find-reached-top = Início do documento alcançado, continuando do fim\npdfjs-find-reached-bottom = Fim do documento alcançado, continuando do início\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } ocorrência\n       *[other] { $current } de { $total } ocorrências\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mais de { $limit } ocorrência\n       *[other] Mais de { $limit } ocorrências\n    }\npdfjs-find-not-found = Não encontrado\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Largura da página\npdfjs-page-scale-fit = Ajustar à janela\npdfjs-page-scale-auto = Zoom automático\npdfjs-page-scale-actual = Tamanho real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ocorreu um erro ao carregar o PDF.\npdfjs-invalid-file-error = Arquivo PDF corrompido ou inválido.\npdfjs-missing-file-error = Arquivo PDF ausente.\npdfjs-unexpected-response-error = Resposta inesperada do servidor.\npdfjs-rendering-error = Ocorreu um erro ao renderizar a página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotação { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Forneça a senha para abrir este arquivo PDF.\npdfjs-password-invalid = Senha inválida. Tente novamente.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = As fontes web estão desativadas: não foi possível usar fontes incorporadas do PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-color-picker-free-text-input =\n    .title = Mudar cor do texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Desenho\npdfjs-editor-color-picker-ink-input =\n    .title = Mudar cor do desenho\npdfjs-editor-ink-button-label = Desenho\npdfjs-editor-stamp-button =\n    .title = Adicionar ou editar imagens\npdfjs-editor-stamp-button-label = Adicionar ou editar imagens\npdfjs-editor-highlight-button =\n    .title = Destaque\npdfjs-editor-highlight-button-label = Destaque\npdfjs-highlight-floating-button1 =\n    .title = Destaque\n    .aria-label = Destaque\npdfjs-highlight-floating-button-label = Destaque\npdfjs-comment-floating-button =\n    .title = Comentário\n    .aria-label = Comentário\npdfjs-comment-floating-button-label = Comentário\npdfjs-editor-comment-button =\n    .title = Comentar\n    .aria-label = Comentar\npdfjs-editor-comment-button-label = Comentar\npdfjs-editor-signature-button =\n    .title = Adicionar assinatura\npdfjs-editor-signature-button-label = Adicionar assinatura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de destaque\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de desenho\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de assinatura: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imagem\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remover desenho\npdfjs-editor-remove-freetext-button =\n    .title = Remover texto\npdfjs-editor-remove-stamp-button =\n    .title = Remover imagem\npdfjs-editor-remove-highlight-button =\n    .title = Remover destaque\npdfjs-editor-remove-signature-button =\n    .title = Remover assinatura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Cor\npdfjs-editor-free-text-size-input = Tamanho\npdfjs-editor-ink-color-input = Cor\npdfjs-editor-ink-thickness-input = Espessura\npdfjs-editor-ink-opacity-input = Opacidade\npdfjs-editor-stamp-add-image-button =\n    .title = Adicionar imagem\npdfjs-editor-stamp-add-image-button-label = Adicionar imagem\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Espessura\npdfjs-editor-free-highlight-thickness-title =\n    .title = Mudar espessura ao destacar itens que não são texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controles de assinatura e assinaturas salvas\npdfjs-editor-signature-add-signature-button =\n    .title = Adicionar nova assinatura\npdfjs-editor-signature-add-signature-button-label = Adicionar nova assinatura\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Assinatura salva: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Comece a digitar…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentário\n       *[other] Comentários\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Fechar painel lateral\n    .aria-label = Fechar painel lateral\npdfjs-editor-comments-sidebar-close-button-label = Fechar painel lateral\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Viu algo digno de atenção? Destaque e deixe um comentário.\npdfjs-editor-comments-sidebar-no-comments-link = Saiba mais\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar texto alternativo\npdfjs-editor-alt-text-dialog-label = Escolha uma opção\npdfjs-editor-alt-text-dialog-description = O texto alternativo ajuda quando uma imagem não aparece ou não é carregada.\npdfjs-editor-alt-text-add-description-label = Adicionar uma descrição\npdfjs-editor-alt-text-add-description-description = Procure usar uma ou duas frases que descrevam o assunto, cenário ou ação.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa\npdfjs-editor-alt-text-mark-decorative-description = Isto é usado em imagens ornamentais, como bordas ou marcas d'água.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Salvar\npdfjs-editor-alt-text-decorative-tooltip = Marcado como decorativa\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por exemplo, “Um jovem senta-se à mesa para comer uma refeição”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Canto superior esquerdo — redimensionar\npdfjs-editor-resizer-top-middle =\n    .aria-label = No centro do topo — redimensionar\npdfjs-editor-resizer-top-right =\n    .aria-label = Canto superior direito — redimensionar\npdfjs-editor-resizer-middle-right =\n    .aria-label = No meio à direita — redimensionar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Canto inferior direito — redimensionar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = No centro da base — redimensionar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Canto inferior esquerdo — redimensionar\npdfjs-editor-resizer-middle-left =\n    .aria-label = No meio à esquerda — redimensionar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Cor de destaque\npdfjs-editor-colorpicker-button =\n    .title = Mudar cor\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opções de cores\npdfjs-editor-colorpicker-yellow =\n    .title = Amarelo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Vermelho\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar todos\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar todos\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descrição da imagem)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Adicionar texto alternativo (descrição da imagem)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Você pode escrever uma descrição aqui…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Descrição curta para pessoas que não conseguem ver a imagem ou quando a imagem não é carregada.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo foi criado automaticamente, pode não estar correto.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saiba mais\npdfjs-editor-new-alt-text-create-automatically-button-label = Criar texto alternativo automaticamente\npdfjs-editor-new-alt-text-not-now-button = Agora não\npdfjs-editor-new-alt-text-error-title = Não foi possível criar texto alternativo automaticamente\npdfjs-editor-new-alt-text-error-description = Escreva seu próprio texto alternativo ou tente novamente mais tarde.\npdfjs-editor-new-alt-text-error-close-button = Fechar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Baixando modelo de inteligência artificial de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Baixando modelo de inteligência artificial de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texto alternativo adicionado\npdfjs-editor-new-alt-text-added-button-label = Texto alternativo adicionado\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Sem texto alternativo\npdfjs-editor-new-alt-text-missing-button-label = Sem texto alternativo\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revisar texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Revisar texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Criado automaticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Configurações de texto alternativo de imagens\npdfjs-image-alt-text-settings-button-label = Configurações de texto alternativo de imagens\npdfjs-editor-alt-text-settings-dialog-label = Configurações de texto alternativo de imagens\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Criar texto alternativo automaticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugere uma descrição para ajudar pessoas que não conseguem ver a imagem ou quando a imagem não é carregada.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de inteligência artificial de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Funciona localmente no seu dispositivo para que seus dados permaneçam privativos. Necessário para texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Excluir\npdfjs-editor-alt-text-settings-download-model-button = Baixar\npdfjs-editor-alt-text-settings-downloading-model-button = Baixando…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar o editor de texto alternativo imediatamente ao adicionar uma imagem\npdfjs-editor-alt-text-settings-show-dialog-description = Ajuda a assegurar que todas as suas imagens tenham texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Fechar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Destaque adicionado\npdfjs-editor-freetext-added-alert = Texto adicionado\npdfjs-editor-ink-added-alert = Desenho adicionado\npdfjs-editor-stamp-added-alert = Imagem adicionada\npdfjs-editor-signature-added-alert = Assinatura adicionada\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Destaque removido\npdfjs-editor-undo-bar-message-freetext = Texto removido\npdfjs-editor-undo-bar-message-ink = Desenho removido\npdfjs-editor-undo-bar-message-stamp = Imagem removida\npdfjs-editor-undo-bar-message-signature = Assinatura removida\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotação removida\n       *[other] { $count } anotações removidas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Desfazer\npdfjs-editor-undo-bar-undo-button-label = Desfazer\npdfjs-editor-undo-bar-close-button =\n    .title = Fechar\npdfjs-editor-undo-bar-close-button-label = Fechar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Esta janela permite ao usuário criar uma assinatura para adicionar a um documento PDF. O usuário pode editar o nome (que também serve como texto alternativo) e, opcionalmente, salvar a assinatura usar novamente.\npdfjs-editor-add-signature-dialog-title = Adicionar uma assinatura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Digitar\n    .title = Digitar\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Desenhar\n    .title = Desenhar\npdfjs-editor-add-signature-image-button = Imagem\n    .title = Imagem\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Digite sua assinatura\n    .placeholder = Digite sua assinatura\npdfjs-editor-add-signature-draw-placeholder = Desenhe sua assinatura\npdfjs-editor-add-signature-draw-thickness-range-label = Espessura\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Espessura do desenho: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arraste um arquivo aqui para enviar\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ou escolha arquivos de imagem\n       *[other] Ou escolha arquivos de imagem\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descrição (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descrição (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Assinatura\npdfjs-editor-add-signature-clear-button-label = Limpar assinatura\npdfjs-editor-add-signature-clear-button =\n    .title = Limpar assinatura\npdfjs-editor-add-signature-save-checkbox = Salvar assinatura\npdfjs-editor-add-signature-save-warning-message = Você atingiu o limite de 5 assinaturas salvas. Remova uma para salvar mais.\npdfjs-editor-add-signature-image-upload-error-title = Não foi possível enviar a imagem\npdfjs-editor-add-signature-image-upload-error-description = Verifique sua conexão de rede ou tente outra imagem.\npdfjs-editor-add-signature-image-no-data-error-title = Não é possível converter esta imagem em uma assinatura\npdfjs-editor-add-signature-image-no-data-error-description = Experimente enviar outra imagem.\npdfjs-editor-add-signature-error-close-button = Fechar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Adicionar\npdfjs-editor-edit-signature-update-button = Atualizar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editar comentário\npdfjs-editor-edit-comment-popup-button =\n    .title = Editar comentário\npdfjs-editor-delete-comment-popup-button-label = Remover comentário\npdfjs-editor-delete-comment-popup-button =\n    .title = Remover comentário\npdfjs-show-comment-button =\n    .title = Mostrar comentário\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Ações\npdfjs-editor-edit-comment-actions-button =\n    .title = Ações\npdfjs-editor-edit-comment-close-button-label = Fechar\npdfjs-editor-edit-comment-close-button =\n    .title = Fechar\npdfjs-editor-edit-comment-actions-edit-button-label = Editar\npdfjs-editor-edit-comment-actions-delete-button-label = Excluir\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Digite seu comentário\npdfjs-editor-edit-comment-manager-cancel-button = Cancelar\npdfjs-editor-edit-comment-manager-save-button = Salvar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editar comentário\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Atualizar\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Adicionar comentário\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Adicionar\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Começar a digitar…\npdfjs-editor-edit-comment-dialog-cancel-button = Cancelar\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editar comentário\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remover assinatura salva\npdfjs-editor-delete-signature-button-label1 = Remover assinatura salva\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Mudar descrição\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Mudar descrição\n"
  },
  {
    "path": "viewer/locale/pt-PT/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Página anterior\npdfjs-previous-button-label = Anterior\npdfjs-next-button =\n    .title = Página seguinte\npdfjs-next-button-label = Seguinte\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Página\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Reduzir\npdfjs-zoom-out-button-label = Reduzir\npdfjs-zoom-in-button =\n    .title = Ampliar\npdfjs-zoom-in-button-label = Ampliar\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Trocar para o modo de apresentação\npdfjs-presentation-mode-button-label = Modo de apresentação\npdfjs-open-file-button =\n    .title = Abrir ficheiro\npdfjs-open-file-button-label = Abrir\npdfjs-print-button =\n    .title = Imprimir\npdfjs-print-button-label = Imprimir\npdfjs-save-button =\n    .title = Guardar\npdfjs-save-button-label = Guardar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Transferir\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Transferir\npdfjs-bookmark-button =\n    .title = Página atual (ver URL da página atual)\npdfjs-bookmark-button-label = Pagina atual\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Ferramentas\npdfjs-tools-button-label = Ferramentas\npdfjs-first-page-button =\n    .title = Ir para a primeira página\npdfjs-first-page-button-label = Ir para a primeira página\npdfjs-last-page-button =\n    .title = Ir para a última página\npdfjs-last-page-button-label = Ir para a última página\npdfjs-page-rotate-cw-button =\n    .title = Rodar à direita\npdfjs-page-rotate-cw-button-label = Rodar à direita\npdfjs-page-rotate-ccw-button =\n    .title = Rodar à esquerda\npdfjs-page-rotate-ccw-button-label = Rodar à esquerda\npdfjs-cursor-text-select-tool-button =\n    .title = Ativar ferramenta de seleção de texto\npdfjs-cursor-text-select-tool-button-label = Ferramenta de seleção de texto\npdfjs-cursor-hand-tool-button =\n    .title = Ativar ferramenta de mão\npdfjs-cursor-hand-tool-button-label = Ferramenta de mão\npdfjs-scroll-page-button =\n    .title = Utilizar deslocamento da página\npdfjs-scroll-page-button-label = Deslocamento da página\npdfjs-scroll-vertical-button =\n    .title = Utilizar deslocação vertical\npdfjs-scroll-vertical-button-label = Deslocação vertical\npdfjs-scroll-horizontal-button =\n    .title = Utilizar deslocação horizontal\npdfjs-scroll-horizontal-button-label = Deslocação horizontal\npdfjs-scroll-wrapped-button =\n    .title = Utilizar deslocação encapsulada\npdfjs-scroll-wrapped-button-label = Deslocação encapsulada\npdfjs-spread-none-button =\n    .title = Não juntar páginas dispersas\npdfjs-spread-none-button-label = Sem spreads\npdfjs-spread-odd-button =\n    .title = Juntar páginas dispersas a partir de páginas com números ímpares\npdfjs-spread-odd-button-label = Spreads ímpares\npdfjs-spread-even-button =\n    .title = Juntar páginas dispersas a partir de páginas com números pares\npdfjs-spread-even-button-label = Spreads pares\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propriedades do documento…\npdfjs-document-properties-button-label = Propriedades do documento…\npdfjs-document-properties-file-name = Nome do ficheiro:\npdfjs-document-properties-file-size = Tamanho do ficheiro:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Título:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Assunto:\npdfjs-document-properties-keywords = Palavras-chave:\npdfjs-document-properties-creation-date = Data de criação:\npdfjs-document-properties-modification-date = Data de modificação:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Criador:\npdfjs-document-properties-producer = Produtor de PDF:\npdfjs-document-properties-version = Versão do PDF:\npdfjs-document-properties-page-count = N.º de páginas:\npdfjs-document-properties-page-size = Tamanho da página:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = retrato\npdfjs-document-properties-page-size-orientation-landscape = paisagem\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Carta\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista rápida web:\npdfjs-document-properties-linearized-yes = Sim\npdfjs-document-properties-linearized-no = Não\npdfjs-document-properties-close-button = Fechar\n\n## Print\n\npdfjs-print-progress-message = A preparar o documento para impressão…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancelar\npdfjs-printing-not-supported = Aviso: a impressão não é totalmente suportada por este navegador.\npdfjs-printing-not-ready = Aviso: o PDF ainda não está totalmente carregado.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Alternar barra lateral\npdfjs-toggle-sidebar-notification-button =\n    .title = Alternar barra lateral (o documento contém contornos/anexos/camadas)\npdfjs-toggle-sidebar-button-label = Alternar barra lateral\npdfjs-document-outline-button =\n    .title = Mostrar esquema do documento (duplo clique para expandir/colapsar todos os itens)\npdfjs-document-outline-button-label = Esquema do documento\npdfjs-attachments-button =\n    .title = Mostrar anexos\npdfjs-attachments-button-label = Anexos\npdfjs-layers-button =\n    .title = Mostrar camadas (clique duas vezes para repor todas as camadas para o estado predefinido)\npdfjs-layers-button-label = Camadas\npdfjs-thumbs-button =\n    .title = Mostrar miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Encontrar o item atualmente destacado\npdfjs-current-outline-item-button-label = Item atualmente destacado\npdfjs-findbar-button =\n    .title = Localizar em documento\npdfjs-findbar-button-label = Localizar\npdfjs-additional-layers = Camadas adicionais\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Página { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura da página { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Localizar\n    .placeholder = Localizar em documento…\npdfjs-find-previous-button =\n    .title = Localizar ocorrência anterior da frase\npdfjs-find-previous-button-label = Anterior\npdfjs-find-next-button =\n    .title = Localizar ocorrência seguinte da frase\npdfjs-find-next-button-label = Seguinte\npdfjs-find-highlight-checkbox = Destacar tudo\npdfjs-find-match-case-checkbox-label = Correspondência\npdfjs-find-match-diacritics-checkbox-label = Corresponder diacríticos\npdfjs-find-entire-word-checkbox-label = Palavras completas\npdfjs-find-reached-top = Topo do documento atingido, a continuar a partir do fundo\npdfjs-find-reached-bottom = Fim do documento atingido, a continuar a partir do topo\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } de { $total } correspondência\n       *[other] { $current } de { $total } correspondências\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mais de { $limit } correspondência\n       *[other] Mais de { $limit } correspondências\n    }\npdfjs-find-not-found = Frase não encontrada\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ajustar à largura\npdfjs-page-scale-fit = Ajustar à página\npdfjs-page-scale-auto = Zoom automático\npdfjs-page-scale-actual = Tamanho real\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Página { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ocorreu um erro ao carregar o PDF.\npdfjs-invalid-file-error = Ficheiro PDF inválido ou danificado.\npdfjs-missing-file-error = Ficheiro PDF inexistente.\npdfjs-unexpected-response-error = Resposta inesperada do servidor.\npdfjs-rendering-error = Ocorreu um erro ao processar a página.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotação { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Introduza a palavra-passe para abrir este ficheiro PDF.\npdfjs-password-invalid = Palavra-passe inválida. Por favor, tente novamente.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancelar\npdfjs-web-fonts-disabled = Os tipos de letra web estão desativados: não é possível utilizar os tipos de letra PDF embutidos.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Texto\npdfjs-editor-free-text-button-label = Texto\npdfjs-editor-ink-button =\n    .title = Desenhar\npdfjs-editor-ink-button-label = Desenhar\npdfjs-editor-stamp-button =\n    .title = Adicionar ou editar imagens\npdfjs-editor-stamp-button-label = Adicionar ou editar imagens\npdfjs-editor-highlight-button =\n    .title = Destaque\npdfjs-editor-highlight-button-label = Destaque\npdfjs-highlight-floating-button1 =\n    .title = Realçar\n    .aria-label = Realçar\npdfjs-highlight-floating-button-label = Realçar\npdfjs-editor-signature-button =\n    .title = Adicionar assinatura\npdfjs-editor-signature-button-label = Adicionar assinatura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de realce\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de desenho\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de assinatura: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imagem\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Remover desenho\npdfjs-editor-remove-freetext-button =\n    .title = Remover texto\npdfjs-editor-remove-stamp-button =\n    .title = Remover imagem\npdfjs-editor-remove-highlight-button =\n    .title = Remover destaque\npdfjs-editor-remove-signature-button =\n    .title = Remover assinatura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Cor\npdfjs-editor-free-text-size-input = Tamanho\npdfjs-editor-ink-color-input = Cor\npdfjs-editor-ink-thickness-input = Espessura\npdfjs-editor-ink-opacity-input = Opacidade\npdfjs-editor-stamp-add-image-button =\n    .title = Adicionar imagem\npdfjs-editor-stamp-add-image-button-label = Adicionar imagem\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Espessura\npdfjs-editor-free-highlight-thickness-title =\n    .title = Alterar espessura quando destacar itens que não sejam texto\npdfjs-editor-add-signature-container =\n    .aria-label = Controlos de assinatura e assinaturas guardadas\npdfjs-editor-signature-add-signature-button =\n    .title = Adicionar nova assinatura\npdfjs-editor-signature-add-signature-button-label = Adicionar nova assinatura\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Assinatura guardada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de texto\n    .default-content = Comece a escrever…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Texto alternativo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editar texto alternativo\npdfjs-editor-alt-text-dialog-label = Escolher uma opção\npdfjs-editor-alt-text-dialog-description = O texto alternativo (texto alternativo) ajuda quando as pessoas não conseguem ver a imagem ou quando a mesma não é carregada.\npdfjs-editor-alt-text-add-description-label = Adicionar uma descrição\npdfjs-editor-alt-text-add-description-description = Aponte para 1-2 frases que descrevam o assunto, definição ou ações.\npdfjs-editor-alt-text-mark-decorative-label = Marcar como decorativa\npdfjs-editor-alt-text-mark-decorative-description = Isto é utilizado para imagens decorativas, tais como limites ou marcas d'água.\npdfjs-editor-alt-text-cancel-button = Cancelar\npdfjs-editor-alt-text-save-button = Guardar\npdfjs-editor-alt-text-decorative-tooltip = Marcada como decorativa\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Por exemplo, “Um jovem senta-se à mesa para comer uma refeição”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Texto alternativo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Canto superior esquerdo — redimensionar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Superior ao centro — redimensionar\npdfjs-editor-resizer-top-right =\n    .aria-label = Canto superior direito — redimensionar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Centro à direita — redimensionar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Canto inferior direito — redimensionar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Inferior ao centro — redimensionar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Canto inferior esquerdo — redimensionar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Centro à esquerda — redimensionar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Cor de destaque\npdfjs-editor-colorpicker-button =\n    .title = Alterar cor\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Escolhas de cor\npdfjs-editor-colorpicker-yellow =\n    .title = Amarelo\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Azul\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Vermelho\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mostrar tudo\npdfjs-editor-highlight-show-all-button =\n    .title = Mostrar tudo\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editar texto alternativo (descrição da imagem)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Adicionar texto alternativo (descrição da imagem)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Escreva a sua descrição aqui…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Descrição curta para as pessoas que não podem visualizar a imagem ou quando a imagem não carrega.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Este texto alternativo foi criado automaticamente e pode ser impreciso.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Saber mais\npdfjs-editor-new-alt-text-create-automatically-button-label = Criar texto alternativo automaticamente\npdfjs-editor-new-alt-text-not-now-button = Agora não\npdfjs-editor-new-alt-text-error-title = Não foi possível criar o texto alternativo automaticamente\npdfjs-editor-new-alt-text-error-description = Escreva o seu próprio texto alternativo ou tente novamente mais tarde.\npdfjs-editor-new-alt-text-error-close-button = Fechar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = A transferir o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = A transferir o modelo de IA de texto alternativo ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Texto alternativo adicionado\npdfjs-editor-new-alt-text-added-button-label = Texto alternativo adicionado\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Texto alternativo em falta\npdfjs-editor-new-alt-text-missing-button-label = Texto alternativo em falta\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Rever texto alternativo\npdfjs-editor-new-alt-text-to-review-button-label = Rever texto alternativo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Criado automaticamente: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Definições de texto alternativo da imagem\npdfjs-image-alt-text-settings-button-label = Definições de texto alternativo da imagem\npdfjs-editor-alt-text-settings-dialog-label = Definições de texto alternativo das imagens\npdfjs-editor-alt-text-settings-automatic-title = Texto alternativo automático\npdfjs-editor-alt-text-settings-create-model-button-label = Criar texto alternativo automaticamente\npdfjs-editor-alt-text-settings-create-model-description = Sugere descrições para ajudar as pessoas que não podem visualizar a imagem ou quando a imagem não carrega.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modelo de IA de texto alternativo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = É executado localmente no seu dispositivo para que os seus dados se mantenham privados. É necessário para o texto alternativo automático.\npdfjs-editor-alt-text-settings-delete-model-button = Eliminar\npdfjs-editor-alt-text-settings-download-model-button = Transferir\npdfjs-editor-alt-text-settings-downloading-model-button = A transferir…\npdfjs-editor-alt-text-settings-editor-title = Editor de texto alternativo\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mostrar editor de texto alternativo imediatamente ao adicionar uma imagem\npdfjs-editor-alt-text-settings-show-dialog-description = Ajuda a garantir que todas as suas imagens tenham um texto alternativo.\npdfjs-editor-alt-text-settings-close-button = Fechar\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Destaque removido\npdfjs-editor-undo-bar-message-freetext = Texto removido\npdfjs-editor-undo-bar-message-ink = Desenho removido\npdfjs-editor-undo-bar-message-stamp = Imagem removida\npdfjs-editor-undo-bar-message-signature = Assinatura removida\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotação removida\n       *[other] { $count } anotações removidas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Anular\npdfjs-editor-undo-bar-undo-button-label = Anular\npdfjs-editor-undo-bar-close-button =\n    .title = Fechar\npdfjs-editor-undo-bar-close-button-label = Fechar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Este modo permite ao utilizador criar uma assinatura para adicionar a um documento PDF. O utilizador pode editar o nome (que também funciona como texto alternativo) e, opcionalmente, guardar a assinatura para utilizações frequentes.\npdfjs-editor-add-signature-dialog-title = Adicionar uma assinatura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Digitar\n    .title = Digitar\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Desenhar\n    .title = Desenhar\npdfjs-editor-add-signature-image-button = Imagem\n    .title = Imagem\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Digite a sua assinatura\n    .placeholder = Digite a sua assinatura\npdfjs-editor-add-signature-draw-placeholder = Desenhe a sua assinatura\npdfjs-editor-add-signature-draw-thickness-range-label = Espessura\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Espessura do desenho: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Arraste um ficheiro aqui para carregar\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ou escolha ficheiros de imagem\n       *[other] Ou explore ficheiros de imagem\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descrição (texto alternativo)\npdfjs-editor-add-signature-description-input =\n    .title = Descrição (texto alternativo)\npdfjs-editor-add-signature-description-default-when-drawing = Assinatura\npdfjs-editor-add-signature-clear-button-label = Limpar assinatura\npdfjs-editor-add-signature-clear-button =\n    .title = Limpar assinatura\npdfjs-editor-add-signature-save-checkbox = Guardar assinatura\npdfjs-editor-add-signature-save-warning-message = Atingiu o limite de 5 assinaturas guardadas. Remova uma para guardar mais.\npdfjs-editor-add-signature-image-upload-error-title = Não foi possível carregar a imagem\npdfjs-editor-add-signature-image-upload-error-description = Verifique a sua ligação à rede ou tente outra imagem.\npdfjs-editor-add-signature-error-close-button = Fechar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Cancelar\npdfjs-editor-add-signature-add-button = Adicionar\npdfjs-editor-edit-signature-update-button = Atualizar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Remover assinatura guardada\npdfjs-editor-delete-signature-button-label1 = Remover assinatura guardada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editar descrição\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editar descrição\n"
  },
  {
    "path": "viewer/locale/rm/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina precedenta\npdfjs-previous-button-label = Enavos\npdfjs-next-button =\n    .title = Proxima pagina\npdfjs-next-button-label = Enavant\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = da { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } da { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Empitschnir\npdfjs-zoom-out-button-label = Empitschnir\npdfjs-zoom-in-button =\n    .title = Engrondir\npdfjs-zoom-in-button-label = Engrondir\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Midar en il modus da preschentaziun\npdfjs-presentation-mode-button-label = Modus da preschentaziun\npdfjs-open-file-button =\n    .title = Avrir datoteca\npdfjs-open-file-button-label = Avrir\npdfjs-print-button =\n    .title = Stampar\npdfjs-print-button-label = Stampar\npdfjs-save-button =\n    .title = Memorisar\npdfjs-save-button-label = Memorisar\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Telechargiar\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Telechargiar\npdfjs-bookmark-button =\n    .title = Pagina actuala (mussar l'URL da la pagina actuala)\npdfjs-bookmark-button-label = Pagina actuala\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Utensils\npdfjs-tools-button-label = Utensils\npdfjs-first-page-button =\n    .title = Siglir a l'emprima pagina\npdfjs-first-page-button-label = Siglir a l'emprima pagina\npdfjs-last-page-button =\n    .title = Siglir a la davosa pagina\npdfjs-last-page-button-label = Siglir a la davosa pagina\npdfjs-page-rotate-cw-button =\n    .title = Rotar en direcziun da l'ura\npdfjs-page-rotate-cw-button-label = Rotar en direcziun da l'ura\npdfjs-page-rotate-ccw-button =\n    .title = Rotar en direcziun cuntraria a l'ura\npdfjs-page-rotate-ccw-button-label = Rotar en direcziun cuntraria a l'ura\npdfjs-cursor-text-select-tool-button =\n    .title = Activar l'utensil per selecziunar text\npdfjs-cursor-text-select-tool-button-label = Utensil per selecziunar text\npdfjs-cursor-hand-tool-button =\n    .title = Activar l'utensil da maun\npdfjs-cursor-hand-tool-button-label = Utensil da maun\npdfjs-scroll-page-button =\n    .title = Utilisar la defilada per pagina\npdfjs-scroll-page-button-label = Defilada per pagina\npdfjs-scroll-vertical-button =\n    .title = Utilisar il defilar vertical\npdfjs-scroll-vertical-button-label = Defilar vertical\npdfjs-scroll-horizontal-button =\n    .title = Utilisar il defilar orizontal\npdfjs-scroll-horizontal-button-label = Defilar orizontal\npdfjs-scroll-wrapped-button =\n    .title = Utilisar il defilar en colonnas\npdfjs-scroll-wrapped-button-label = Defilar en colonnas\npdfjs-spread-none-button =\n    .title = Betg parallelisar las paginas\npdfjs-spread-none-button-label = Betg parallel\npdfjs-spread-odd-button =\n    .title = Parallelisar las paginas cun cumenzar cun paginas spèras\npdfjs-spread-odd-button-label = Parallel spèr\npdfjs-spread-even-button =\n    .title = Parallelisar las paginas cun cumenzar cun paginas pèras\npdfjs-spread-even-button-label = Parallel pèr\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Caracteristicas dal document…\npdfjs-document-properties-button-label = Caracteristicas dal document…\npdfjs-document-properties-file-name = Num da la datoteca:\npdfjs-document-properties-file-size = Grondezza da la datoteca:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Autur:\npdfjs-document-properties-subject = Tema:\npdfjs-document-properties-keywords = Chavazzins:\npdfjs-document-properties-creation-date = Data da creaziun:\npdfjs-document-properties-modification-date = Data da modificaziun:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creà da:\npdfjs-document-properties-producer = Creà il PDF cun:\npdfjs-document-properties-version = Versiun da PDF:\npdfjs-document-properties-page-count = Dumber da paginas:\npdfjs-document-properties-page-size = Grondezza da la pagina:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = vertical\npdfjs-document-properties-page-size-orientation-landscape = orizontal\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Gea\npdfjs-document-properties-linearized-no = Na\npdfjs-document-properties-close-button = Serrar\n\n## Print\n\npdfjs-print-progress-message = Preparar il document per stampar…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Interrumper\npdfjs-printing-not-supported = Attenziun: Il stampar na funcziunescha anc betg dal tut en quest navigatur.\npdfjs-printing-not-ready = Attenziun: Il PDF n'è betg chargià cumplettamain per stampar.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Activar/deactivar la trav laterala\npdfjs-toggle-sidebar-notification-button =\n    .title = Activar/deactivar la trav laterala (il document cuntegna structura dal document/agiuntas/nivels)\npdfjs-toggle-sidebar-button-label = Activar/deactivar la trav laterala\npdfjs-document-outline-button =\n    .title = Mussar la structura dal document (cliccar duas giadas per extender/cumprimer tut ils elements)\npdfjs-document-outline-button-label = Structura dal document\npdfjs-attachments-button =\n    .title = Mussar agiuntas\npdfjs-attachments-button-label = Agiuntas\npdfjs-layers-button =\n    .title = Mussar ils nivels (cliccar dubel per restaurar il stadi da standard da tut ils nivels)\npdfjs-layers-button-label = Nivels\npdfjs-thumbs-button =\n    .title = Mussar las miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Tschertgar l'element da structura actual\npdfjs-current-outline-item-button-label = Element da structura actual\npdfjs-findbar-button =\n    .title = Tschertgar en il document\npdfjs-findbar-button-label = Tschertgar\npdfjs-additional-layers = Nivels supplementars\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura da la pagina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Tschertgar\n    .placeholder = Tschertgar en il document…\npdfjs-find-previous-button =\n    .title = Tschertgar la posiziun precedenta da l'expressiun\npdfjs-find-previous-button-label = Enavos\npdfjs-find-next-button =\n    .title = Tschertgar la proxima posiziun da l'expressiun\npdfjs-find-next-button-label = Enavant\npdfjs-find-highlight-checkbox = Relevar tuts\npdfjs-find-match-case-checkbox-label = Resguardar maiusclas/minusclas\npdfjs-find-match-diacritics-checkbox-label = Resguardar ils segns diacritics\npdfjs-find-entire-word-checkbox-label = Pleds entirs\npdfjs-find-reached-top = Il cumenzament dal document è cuntanschì, la tschertga cuntinuescha a la fin dal document\npdfjs-find-reached-bottom = La fin dal document è cuntanschì, la tschertga cuntinuescha al cumenzament dal document\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } dad { $total } correspundenza\n       *[other] { $current } da { $total } correspundenzas\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Dapli che { $limit } correspundenza\n       *[other] Dapli che { $limit } correspundenzas\n    }\npdfjs-find-not-found = Impussibel da chattar l'expressiun\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ladezza da la pagina\npdfjs-page-scale-fit = Entira pagina\npdfjs-page-scale-auto = Zoom automatic\npdfjs-page-scale-actual = Grondezza actuala\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ina errur è cumparida cun chargiar il PDF.\npdfjs-invalid-file-error = Datoteca PDF nunvalida u donnegiada.\npdfjs-missing-file-error = Datoteca PDF manconta.\npdfjs-unexpected-response-error = Resposta nunspetgada dal server.\npdfjs-rendering-error = Ina errur è cumparida cun visualisar questa pagina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Annotaziun da { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Endatescha il pled-clav per avrir questa datoteca da PDF.\npdfjs-password-invalid = Pled-clav nunvalid. Emprova anc ina giada.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Interrumper\npdfjs-web-fonts-disabled = Scrittiras dal web èn deactivadas: impussibel dad utilisar las scrittiras integradas en il PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Midar la colur dal text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Dissegnar\npdfjs-editor-color-picker-ink-input =\n    .title = Midar la colur per dissegnar\npdfjs-editor-ink-button-label = Dissegnar\npdfjs-editor-stamp-button =\n    .title = Agiuntar u modifitgar maletgs\npdfjs-editor-stamp-button-label = Agiuntar u modifitgar maletgs\npdfjs-editor-highlight-button =\n    .title = Marcar\npdfjs-editor-highlight-button-label = Marcar\npdfjs-highlight-floating-button1 =\n    .title = Marcar\n    .aria-label = Marcar\npdfjs-highlight-floating-button-label = Marcar\npdfjs-comment-floating-button =\n    .title = Commentar\n    .aria-label = Commentar\npdfjs-comment-floating-button-label = Commentar\npdfjs-editor-comment-button =\n    .title = Commentari\n    .aria-label = Commentari\npdfjs-editor-comment-button-label = Commentari\npdfjs-editor-signature-button =\n    .title = Agiuntar ina signatura\npdfjs-editor-signature-button-label = Agiuntar ina signatura\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editur per relevar\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editur per dissegnar\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editur da signatura: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editur per maletgs\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Allontanar il dissegn\npdfjs-editor-remove-freetext-button =\n    .title = Allontanar il text\npdfjs-editor-remove-stamp-button =\n    .title = Allontanar la grafica\npdfjs-editor-remove-highlight-button =\n    .title = Allontanar l'emfasa\npdfjs-editor-remove-signature-button =\n    .title = Allontanar la signatura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colur\npdfjs-editor-free-text-size-input = Grondezza\npdfjs-editor-ink-color-input = Colur\npdfjs-editor-ink-thickness-input = Grossezza\npdfjs-editor-ink-opacity-input = Opacitad\npdfjs-editor-stamp-add-image-button =\n    .title = Agiuntar in maletg\npdfjs-editor-stamp-add-image-button-label = Agiuntar in maletg\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grossezza\npdfjs-editor-free-highlight-thickness-title =\n    .title = Midar la grossezza cun relevar elements betg textuals\npdfjs-editor-add-signature-container =\n    .aria-label = Controllas da signatura e signaturas memorisadas\npdfjs-editor-signature-add-signature-button =\n    .title = Agiuntar ina nova signatura\npdfjs-editor-signature-add-signature-button-label = Agiuntar ina nova signatura\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Signatura memorisada: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editur da text\n    .default-content = Cumenza a tippar…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Commentari\n       *[other] Commentaris\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Serrar la trav laterala\n    .aria-label = Serrar la trav laterala\npdfjs-editor-comments-sidebar-close-button-label = Serrar la trav laterala\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vesas insatge interessant? Marchescha la passascha ed agiuntescha in commentari.\npdfjs-editor-comments-sidebar-no-comments-link = Ulteriuras infurmaziuns\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Text alternativ\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Modifitgar il text alternativ\npdfjs-editor-alt-text-dialog-label = Tscherner ina opziun\npdfjs-editor-alt-text-dialog-description = Il text alternativ (alt text) gida en cas che persunas na vesan betg il maletg u sch'i na reussescha betg d'al chargiar.\npdfjs-editor-alt-text-add-description-label = Agiuntar ina descripziun\npdfjs-editor-alt-text-add-description-description = Scriva idealmain 1-2 frasas che descrivan l'object, la situaziun u las acziuns.\npdfjs-editor-alt-text-mark-decorative-label = Marcar sco decorativ\npdfjs-editor-alt-text-mark-decorative-description = Quai vegn duvrà per maletgs ornamentals, sco urs u filigranas.\npdfjs-editor-alt-text-cancel-button = Interrumper\npdfjs-editor-alt-text-save-button = Memorisar\npdfjs-editor-alt-text-decorative-tooltip = Marcà sco decorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Per exempel: «In um giuven sesa a maisa per mangiar in past»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Text alternativ\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Chantun sura a sanestra — redimensiunar\npdfjs-editor-resizer-top-middle =\n    .aria-label = Sura amez — redimensiunar\npdfjs-editor-resizer-top-right =\n    .aria-label = Chantun sura a dretga — redimensiunar\npdfjs-editor-resizer-middle-right =\n    .aria-label = Da vart dretga amez — redimensiunar\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Chantun sut a dretga — redimensiunar\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Sutvart amez — redimensiunar\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Chantun sut a sanestra — redimensiunar\npdfjs-editor-resizer-middle-left =\n    .aria-label = Vart sanestra amez — redimensiunar\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Colur per l'emfasa\npdfjs-editor-colorpicker-button =\n    .title = Midar la colur\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Colurs disponiblas\npdfjs-editor-colorpicker-yellow =\n    .title = Mellen\npdfjs-editor-colorpicker-green =\n    .title = Verd\npdfjs-editor-colorpicker-blue =\n    .title = Blau\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Cotschen\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Mussar tut\npdfjs-editor-highlight-show-all-button =\n    .title = Mussar tut\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Modifitgar il text alternativ (descripziun dal maletg)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Agiuntar in text alternativ (descripziun dal maletg)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Scriva qua tia descripziun…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Curta descripziun per persunas che na vesan betg il maletg u per cass en ils quals il maletg na vegn betg chargià.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Quest text alternativ è vegnì creà automaticamain ed è eventualmain nunprecis.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Ulteriuras infurmaziuns\npdfjs-editor-new-alt-text-create-automatically-button-label = Crear automaticamain il text alternativ\npdfjs-editor-new-alt-text-not-now-button = Betg ussa\npdfjs-editor-new-alt-text-error-title = I n’è betg reussì da crear automaticamain il text alternativ\npdfjs-editor-new-alt-text-error-description = Scriva per plaschair tes agen text alternativ u emprova pli tard anc ina giada.\npdfjs-editor-new-alt-text-error-close-button = Serrar\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Telechargiar il model IA da text alternativ ({ $downloadedSize } da { $totalSize } MB)\n    .aria-valuetext = Telechargiar il model IA da text alternativ ({ $downloadedSize } da { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Agiuntà text alternativ\npdfjs-editor-new-alt-text-added-button-label = Text alternativ agiuntà\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Text alternativ manca\npdfjs-editor-new-alt-text-missing-button-label = Text alternativ manca\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Repassar il text alternativ\npdfjs-editor-new-alt-text-to-review-button-label = Repassar il text alternativ\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creà automaticamain: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Parameters dal text alternativ da maletgs\npdfjs-image-alt-text-settings-button-label = Parameters dal text alternativ da maletgs\npdfjs-editor-alt-text-settings-dialog-label = Parameters dal text alternativ da maletgs\npdfjs-editor-alt-text-settings-automatic-title = Text alternativ automatic\npdfjs-editor-alt-text-settings-create-model-button-label = Crear automaticamain text alternativ\npdfjs-editor-alt-text-settings-create-model-description = Propona descripziuns per gidar a persunas che na vesan betg il maletg u per cass en ils quals il maletg na vegn betg chargià.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model IA da text alternativ ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Vegn exequì localmain sin tes apparat per che tias datas restian privatas. Necessari per text alternativ automatic.\npdfjs-editor-alt-text-settings-delete-model-button = Stizzar\npdfjs-editor-alt-text-settings-download-model-button = Telechargiar\npdfjs-editor-alt-text-settings-downloading-model-button = Telechargiar…\npdfjs-editor-alt-text-settings-editor-title = Editur per text alternativ\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mussar l’editur per text alternativ directamain cun agiuntar in maletg\npdfjs-editor-alt-text-settings-show-dialog-description = Ta gida a garantir che tut tes maletgs hajan in text alternativ.\npdfjs-editor-alt-text-settings-close-button = Serrar\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Agiuntà ina emfasa\npdfjs-editor-freetext-added-alert = Agiuntà in text\npdfjs-editor-ink-added-alert = Agiuntà in dissegn\npdfjs-editor-stamp-added-alert = Agiuntà in maletg\npdfjs-editor-signature-added-alert = Agiuntà ina signatura\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Allontanà la marcaziun\npdfjs-editor-undo-bar-message-freetext = Allontanà il text\npdfjs-editor-undo-bar-message-ink = Allontanà il dissegn\npdfjs-editor-undo-bar-message-stamp = Allontanà il maletg\npdfjs-editor-undo-bar-message-signature = Allontanà la signatura\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } annotaziun allontanada\n       *[other] { $count } annotaziuns allontanadas\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Revocar\npdfjs-editor-undo-bar-undo-button-label = Revocar\npdfjs-editor-undo-bar-close-button =\n    .title = Serrar\npdfjs-editor-undo-bar-close-button-label = Serrar\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Questa fanestra permetta a l’utilisader da crear ina signatura per l’agiuntar ad in document PDF. L’utilisader po modifitgar il num (che serva era sco text alternativ) e memorisar opziunalmain la signatura per l’utilisar anc ina giada en l’avegnir.\npdfjs-editor-add-signature-dialog-title = Agiuntar ina signatura\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tippar\n    .title = Tippar\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Dissegnar\n    .title = Dissegnar\npdfjs-editor-add-signature-image-button = Maletg\n    .title = Maletg\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Tippa tia signatura\n    .placeholder = Tippa tia signatura\npdfjs-editor-add-signature-draw-placeholder = Dissegna tia signatura\npdfjs-editor-add-signature-draw-thickness-range-label = Grossezza\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grossezza dal stritg: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Trair na qua ina datoteca per la transferir\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] U tscherner datotecas da maletg\n       *[other] U tscherner datotecas da maletg\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descripziun (text alternativ)\npdfjs-editor-add-signature-description-input =\n    .title = Descripziun (text alternativ)\npdfjs-editor-add-signature-description-default-when-drawing = Signatura\npdfjs-editor-add-signature-clear-button-label = Stizzar la signatura\npdfjs-editor-add-signature-clear-button =\n    .title = Stizzar la signatura\npdfjs-editor-add-signature-save-checkbox = Memorisar la signatura\npdfjs-editor-add-signature-save-warning-message = Ti has cuntanschì il dumber maximal da 5 signaturas memorisadas. Allontanar ina per memorisar in’autra.\npdfjs-editor-add-signature-image-upload-error-title = Impussibel da transferir il maletg\npdfjs-editor-add-signature-image-upload-error-description = Controllescha tia connexiun cun la rait u emprova cun in’auter maletg.\npdfjs-editor-add-signature-image-no-data-error-title = Impussibel da convertir quest maletg en ina signatura\npdfjs-editor-add-signature-image-no-data-error-description = Emprova per plaschair da transferir in auter maletg.\npdfjs-editor-add-signature-error-close-button = Serrar\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Interrumper\npdfjs-editor-add-signature-add-button = Agiuntar\npdfjs-editor-edit-signature-update-button = Actualisar\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Modifitgar il commentari\npdfjs-editor-edit-comment-popup-button =\n    .title = Modifitgar il commentari\npdfjs-editor-delete-comment-popup-button-label = Allontanar il commentari\npdfjs-editor-delete-comment-popup-button =\n    .title = Allontanar il commentari\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acziuns\npdfjs-editor-edit-comment-actions-button =\n    .title = Acziuns\npdfjs-editor-edit-comment-close-button-label = Serrar\npdfjs-editor-edit-comment-close-button =\n    .title = Serrar\npdfjs-editor-edit-comment-actions-edit-button-label = Modifitgar\npdfjs-editor-edit-comment-actions-delete-button-label = Stizzar\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Endatar in commentari\npdfjs-editor-edit-comment-manager-cancel-button = Interrumper\npdfjs-editor-edit-comment-manager-save-button = Memorisar\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Modifitgar il commentari\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Agiuntar in commentari\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Cumenzar a tippar…\npdfjs-editor-edit-comment-dialog-cancel-button = Interrumper\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Modifitgar il commentari\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Allontanar la signatura memorisada\npdfjs-editor-delete-signature-button-label1 = Allontanar la signatura memorisada\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Modifitgar la descripziun\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Modifitgar la descripziun\n"
  },
  {
    "path": "viewer/locale/ro/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pagina precedentă\npdfjs-previous-button-label = Înapoi\npdfjs-next-button =\n    .title = Pagina următoare\npdfjs-next-button-label = Înainte\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pagina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = din { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } din { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Micșorează\npdfjs-zoom-out-button-label = Micșorează\npdfjs-zoom-in-button =\n    .title = Mărește\npdfjs-zoom-in-button-label = Mărește\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Comută la modul de prezentare\npdfjs-presentation-mode-button-label = Mod de prezentare\npdfjs-open-file-button =\n    .title = Deschide un fișier\npdfjs-open-file-button-label = Deschide\npdfjs-print-button =\n    .title = Listează\npdfjs-print-button-label = Listează\npdfjs-save-button =\n    .title = Salvează\npdfjs-save-button-label = Salvează\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Descarcă\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Descarcă\npdfjs-bookmark-button =\n    .title = Pagina curentă (Vezi URL din pagina curentă)\npdfjs-bookmark-button-label = Pagină curentă\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Instrumente\npdfjs-tools-button-label = Instrumente\npdfjs-first-page-button =\n    .title = Mergi la prima pagină\npdfjs-first-page-button-label = Mergi la prima pagină\npdfjs-last-page-button =\n    .title = Mergi la ultima pagină\npdfjs-last-page-button-label = Mergi la ultima pagină\npdfjs-page-rotate-cw-button =\n    .title = Rotește în sensul acelor de ceas\npdfjs-page-rotate-cw-button-label = Rotește în sensul acelor de ceas\npdfjs-page-rotate-ccw-button =\n    .title = Rotește în sens invers al acelor de ceas\npdfjs-page-rotate-ccw-button-label = Rotește în sens invers al acelor de ceas\npdfjs-cursor-text-select-tool-button =\n    .title = Activează instrumentul de selecție a textului\npdfjs-cursor-text-select-tool-button-label = Instrumentul de selecție a textului\npdfjs-cursor-hand-tool-button =\n    .title = Activează instrumentul mână\npdfjs-cursor-hand-tool-button-label = Unealta mână\npdfjs-scroll-page-button =\n    .title = Folosește derularea paginilor\npdfjs-scroll-page-button-label = Derulare pagini\npdfjs-scroll-vertical-button =\n    .title = Folosește derularea verticală\npdfjs-scroll-vertical-button-label = Derulare verticală\npdfjs-scroll-horizontal-button =\n    .title = Folosește derularea orizontală\npdfjs-scroll-horizontal-button-label = Derulare orizontală\npdfjs-scroll-wrapped-button =\n    .title = Folosește derularea încadrată\npdfjs-scroll-wrapped-button-label = Derulare încadrată\npdfjs-spread-none-button =\n    .title = Nu uni paginile broșate\npdfjs-spread-none-button-label = Fără pagini broșate\npdfjs-spread-odd-button =\n    .title = Unește paginile broșate începând cu cele impare\npdfjs-spread-odd-button-label = Broșare pagini impare\npdfjs-spread-even-button =\n    .title = Unește paginile broșate începând cu cele pare\npdfjs-spread-even-button-label = Broșare pagini pare\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Proprietățile documentului…\npdfjs-document-properties-button-label = Proprietățile documentului…\npdfjs-document-properties-file-name = Numele fișierului:\npdfjs-document-properties-file-size = Mărimea fișierului:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } octeți)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } octeți)\npdfjs-document-properties-title = Titlu:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Subiect:\npdfjs-document-properties-keywords = Cuvinte cheie:\npdfjs-document-properties-creation-date = Data creării:\npdfjs-document-properties-modification-date = Data modificării:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Autor:\npdfjs-document-properties-producer = Producător PDF:\npdfjs-document-properties-version = Versiune PDF:\npdfjs-document-properties-page-count = Număr de pagini:\npdfjs-document-properties-page-size = Mărimea paginii:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = verticală\npdfjs-document-properties-page-size-orientation-landscape = orizontală\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Literă\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vizualizare web rapidă:\npdfjs-document-properties-linearized-yes = Da\npdfjs-document-properties-linearized-no = Nu\npdfjs-document-properties-close-button = Închide\n\n## Print\n\npdfjs-print-progress-message = Se pregătește documentul pentru listare…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anulează\npdfjs-printing-not-supported = Avertisment: Listarea nu este suportată complet de acest browser.\npdfjs-printing-not-ready = Avertisment: PDF-ul nu este încărcat complet pentru listare.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Comută bara laterală\npdfjs-toggle-sidebar-notification-button =\n    .title = Comută bara laterală (documentul conține schițe/atașamente/straturi)\npdfjs-toggle-sidebar-button-label = Comută bara laterală\npdfjs-document-outline-button =\n    .title = Afișează schița documentului (dublu-clic pentru a extinde/restrânge toate elementele)\npdfjs-document-outline-button-label = Schiță a documentului\npdfjs-attachments-button =\n    .title = Afișează atașamentele\npdfjs-attachments-button-label = Atașamente\npdfjs-layers-button =\n    .title = Afișează straturile (dă dublu clic pentru resetarea tuturor straturilor la starea implicită)\npdfjs-layers-button-label = Straturi\npdfjs-thumbs-button =\n    .title = Afișează miniaturi\npdfjs-thumbs-button-label = Miniaturi\npdfjs-current-outline-item-button =\n    .title = Găsește elementul pe schița actuală\npdfjs-current-outline-item-button-label = Element al schiței actuale\npdfjs-findbar-button =\n    .title = Caută în document\npdfjs-findbar-button-label = Caută\npdfjs-additional-layers = Straturi suplimentare\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pagina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura paginii { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Caută\n    .placeholder = Caută în document…\npdfjs-find-previous-button =\n    .title = Mergi la apariția anterioară a textului\npdfjs-find-previous-button-label = Înapoi\npdfjs-find-next-button =\n    .title = Mergi la apariția următoare a textului\npdfjs-find-next-button-label = Înainte\npdfjs-find-highlight-checkbox = Evidențiază toate aparițiile\npdfjs-find-match-case-checkbox-label = Ține cont de majuscule și minuscule\npdfjs-find-match-diacritics-checkbox-label = Respectă diacriticele\npdfjs-find-entire-word-checkbox-label = Cuvinte întregi\npdfjs-find-reached-top = Am ajuns la începutul documentului, continuă de la sfârșit\npdfjs-find-reached-bottom = Am ajuns la sfârșitul documentului, continuă de la început\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } din { $total } rezultat\n        [few] { $current } din { $total } rezultate\n       *[other] { $current } din { $total } de rezultate\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mai mult de { $limit } rezultat\n        [few] Mai mult de { $limit } rezultate\n       *[other] Mai mult de { $limit } de rezultate\n    }\npdfjs-find-not-found = Nu s-a găsit textul\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lățime pagină\npdfjs-page-scale-fit = Potrivire la pagină\npdfjs-page-scale-auto = Zoom automat\npdfjs-page-scale-actual = Mărime reală\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pagina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = A intervenit o eroare la încărcarea PDF-ului.\npdfjs-invalid-file-error = Fișier PDF nevalid sau corupt.\npdfjs-missing-file-error = Fișier PDF lipsă.\npdfjs-unexpected-response-error = Răspuns neașteptat de la server.\npdfjs-rendering-error = A intervenit o eroare la randarea paginii.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Adnotare { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Introdu parola pentru a deschide acest fișier PDF.\npdfjs-password-invalid = Parolă nevalidă. Te rugăm să încerci din nou.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Anulează\npdfjs-web-fonts-disabled = Fonturile web sunt dezactivate: nu se pot folosi fonturile PDF încorporate.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Schimbă culoarea textului\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Desenează\npdfjs-editor-color-picker-ink-input =\n    .title = Schimbă culoarea de desen\npdfjs-editor-ink-button-label = Desenează\npdfjs-editor-stamp-button =\n    .title = Adaugă sau editează imagini\npdfjs-editor-stamp-button-label = Adaugă sau editează imagini\npdfjs-editor-highlight-button =\n    .title = Evidențiere\npdfjs-editor-highlight-button-label = Evidențiere\npdfjs-highlight-floating-button1 =\n    .title = Evidențiază\n    .aria-label = Evidențiere\npdfjs-highlight-floating-button-label = Evidențiază\npdfjs-comment-floating-button =\n    .title = Comentează\n    .aria-label = Comentariu\npdfjs-comment-floating-button-label = Comentează\npdfjs-editor-comment-button =\n    .title = Comentariu\n    .aria-label = Comentează\npdfjs-editor-comment-button-label = Comentariu\npdfjs-editor-signature-button =\n    .title = Adaugă semnătură\npdfjs-editor-signature-button-label = Adaugă semnătură\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor de evidențiere\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor de desen\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor de semnătură: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor de imagini\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Elimină desenul\npdfjs-editor-remove-freetext-button =\n    .title = Elimină textul\npdfjs-editor-remove-stamp-button =\n    .title = Elimină imaginea\npdfjs-editor-remove-highlight-button =\n    .title = Elimină evidențierea\npdfjs-editor-remove-signature-button =\n    .title = Elimină semnătura\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Culoare\npdfjs-editor-free-text-size-input = Mărime\npdfjs-editor-ink-color-input = Culoare\npdfjs-editor-ink-thickness-input = Grosime\npdfjs-editor-ink-opacity-input = Opacitate\npdfjs-editor-stamp-add-image-button =\n    .title = Adaugă imagine\npdfjs-editor-stamp-add-image-button-label = Adaugă imagine\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grosime\npdfjs-editor-free-highlight-thickness-title =\n    .title = Schimbă grosimea când evidențiezi alte elemente decât text\npdfjs-editor-add-signature-container =\n    .aria-label = Controale de semnături și semnături salvate\npdfjs-editor-signature-add-signature-button =\n    .title = Adaugă o semnătură nouă\npdfjs-editor-signature-add-signature-button-label = Adaugă o semnătură nouă\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Semnătură salvată: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editor de text\n    .default-content = Începe să tastezi...\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Comentariu\n       *[other] Comentarii\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Închide bara laterală\n    .aria-label = Închide bara laterală\npdfjs-editor-comments-sidebar-close-button-label = Închide bara laterală\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vezi ceva care merită comentat? Evidențiază-l și lasă un comentariu.\npdfjs-editor-comments-sidebar-no-comments-link = Află mai multe\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Text alternativ\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Editează textul alternativ\npdfjs-editor-alt-text-dialog-label = Alege o opțiune\npdfjs-editor-alt-text-dialog-description = Textul alternativ (alt text) ajută când oamenii nu pot vedea imaginea sau când nu se încarcă.\npdfjs-editor-alt-text-add-description-label = Adaugă o descriere\npdfjs-editor-alt-text-add-description-description = Încearcă să scrii 1-2 propoziții care să descrie subiectul, cadrul sau acțiunile.\npdfjs-editor-alt-text-mark-decorative-label = Marchează ca decorativ\npdfjs-editor-alt-text-mark-decorative-description = Este pentru imagini ornamentale, cum ar fi chenare sau filigrane.\npdfjs-editor-alt-text-cancel-button = Anulează\npdfjs-editor-alt-text-save-button = Salvează\npdfjs-editor-alt-text-decorative-tooltip = Marcat ca decorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = De exemplu, „Un tânăr se așează la o masă să mănânce”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Text alternativ\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Colțul din stânga sus — redimensionează\npdfjs-editor-resizer-top-middle =\n    .aria-label = Mijloc de sus — redimensionează\npdfjs-editor-resizer-top-right =\n    .aria-label = Colțul din dreapta sus — redimensionează\npdfjs-editor-resizer-middle-right =\n    .aria-label = Mijloc dreapta — redimensionează\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Colțul din dreapta jos — redimensionează\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Mijloc de jos - redimensionează\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Colțul din stânga jos — redimensionează\npdfjs-editor-resizer-middle-left =\n    .aria-label = Mijloc stânga — redimensionează\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Culoare de evidențiere\npdfjs-editor-colorpicker-button =\n    .title = Schimbă culoarea\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Opțiuni de culoare\npdfjs-editor-colorpicker-yellow =\n    .title = Galben\npdfjs-editor-colorpicker-green =\n    .title = Verde\npdfjs-editor-colorpicker-blue =\n    .title = Albastru\npdfjs-editor-colorpicker-pink =\n    .title = Roz\npdfjs-editor-colorpicker-red =\n    .title = Roșu\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Afișează tot\npdfjs-editor-highlight-show-all-button =\n    .title = Afișează tot\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Editează textul alternativ (descrierea imaginii)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Adaugă text alternativ (descrierea imaginii)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Scrie descrierea aici...\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Scurtă descriere pentru cei care nu pot vedea imaginea sau pentru când nu se încarcă imaginea.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Acest text alternativ a fost creat automat și este posibil să nu fie exact.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Află mai multe\npdfjs-editor-new-alt-text-create-automatically-button-label = Creează automat texte alternative\npdfjs-editor-new-alt-text-not-now-button = Nu acum\npdfjs-editor-new-alt-text-error-title = Nu s-a putut crea automat textul alternativ\npdfjs-editor-new-alt-text-error-description = Te rugăm să scrii propriul text alternativ sau să încerci din nou mai târziu.\npdfjs-editor-new-alt-text-error-close-button = Închide\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Se descarcă modelul IA de text alternativ ({ $downloadedSize } de { $totalSize } MB)\n    .aria-valuetext = Se descarcă modelul IA de text alternativ ({ $downloadedSize } de { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Text alternativ adăugat\npdfjs-editor-new-alt-text-added-button-label = Text alternativ adăugat\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Text alternativ lipsă\npdfjs-editor-new-alt-text-missing-button-label = Text alternativ lipsă\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Revizuiește textul alternativ\npdfjs-editor-new-alt-text-to-review-button-label = Revizuiește textul alternativ\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creat automat: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Setări text alternativ imagini\npdfjs-image-alt-text-settings-button-label = Setări text alternativ imagini\npdfjs-editor-alt-text-settings-dialog-label = Setări text alternativ imagini\npdfjs-editor-alt-text-settings-automatic-title = Text alternativ automat\npdfjs-editor-alt-text-settings-create-model-button-label = Creează automat texte alternative\npdfjs-editor-alt-text-settings-create-model-description = Sugerează descrieri ca să îi ajuți pe cei care nu pot vedea imaginea sau pentru când nu se încarcă imaginea.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model IA de text alternativ ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Rulează local pe dispozitiv, deci datele tale rămân private. Necesar pentru text alternativ automat.\npdfjs-editor-alt-text-settings-delete-model-button = Șterge\npdfjs-editor-alt-text-settings-download-model-button = Descarcă\npdfjs-editor-alt-text-settings-downloading-model-button = Se descarcă…\npdfjs-editor-alt-text-settings-editor-title = Editor de text alternativ\npdfjs-editor-alt-text-settings-show-dialog-button-label = Afișează editorul de text alternativ imediat când adaugi o imagine\npdfjs-editor-alt-text-settings-show-dialog-description = Te ajută să te asiguri că toate imaginile au text alternativ.\npdfjs-editor-alt-text-settings-close-button = Închide\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Evidențiere adăugată\npdfjs-editor-freetext-added-alert = Text adăugat\npdfjs-editor-ink-added-alert = Desen adăugat\npdfjs-editor-stamp-added-alert = Imagine adăugată\npdfjs-editor-signature-added-alert = Semnătură adăugată\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Evidențiere eliminată\npdfjs-editor-undo-bar-message-freetext = Text eliminat\npdfjs-editor-undo-bar-message-ink = Desen eliminat\npdfjs-editor-undo-bar-message-stamp = Imagine eliminată\npdfjs-editor-undo-bar-message-signature = Semnătură eliminată\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } adnotare eliminată\n        [few] { $count } adnotări eliminate\n       *[other] { $count } de adnotări eliminate\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Anulează\npdfjs-editor-undo-bar-undo-button-label = Anulează\npdfjs-editor-undo-bar-close-button =\n    .title = Închide\npdfjs-editor-undo-bar-close-button-label = Închide\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Această fereastră permite utilizatorului să creeze o semnătură de adăugat la un document PDF. Utilizatorul poate edita numele (care servește și ca text alternativ) și, opțional, poate salva semnătura pentru utilizare repetată.\npdfjs-editor-add-signature-dialog-title = Adaugă o semnătură\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Tip\n    .title = Tip\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Desenează\n    .title = Desenează\npdfjs-editor-add-signature-image-button = Imagine\n    .title = Imagine\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Tastează semnătura\n    .placeholder = Tastează semnătura\npdfjs-editor-add-signature-draw-placeholder = Desenează semnătura\npdfjs-editor-add-signature-draw-thickness-range-label = Grosime\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Grosimea desenului: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Trage aici un fișier pentru încărcare\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Sau alege fișiere de imagini\n       *[other] Sau răsfoiește prin fișiere de imagini\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Descriere (text alternativ)\npdfjs-editor-add-signature-description-input =\n    .title = Descriere (text alternativ)\npdfjs-editor-add-signature-description-default-when-drawing = Semnătură\npdfjs-editor-add-signature-clear-button-label = Șterge semnătura\npdfjs-editor-add-signature-clear-button =\n    .title = Șterge semnătura\npdfjs-editor-add-signature-save-checkbox = Salvează semnătura\npdfjs-editor-add-signature-save-warning-message = Ai atins limita de 5 semnături salvate. Elimină una dacă vrei să salvezi alta.\npdfjs-editor-add-signature-image-upload-error-title = Imaginea nu a putut fi încărcată\npdfjs-editor-add-signature-image-upload-error-description = Verifică-ți conexiunea la rețea sau încearcă cu o altă imagine.\npdfjs-editor-add-signature-image-no-data-error-title = Imaginea nu poate fi convertită în semnătură\npdfjs-editor-add-signature-image-no-data-error-description = Încearcă să încarci altă imagine.\npdfjs-editor-add-signature-error-close-button = Închide\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Anulează\npdfjs-editor-add-signature-add-button = Adaugă\npdfjs-editor-edit-signature-update-button = Actualizează\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Editează comentariul\npdfjs-editor-edit-comment-popup-button =\n    .title = Editează comentariul\npdfjs-editor-delete-comment-popup-button-label = Șterge comentariul\npdfjs-editor-delete-comment-popup-button =\n    .title = Șterge comentariul\npdfjs-show-comment-button =\n    .title = Afișează comentariul\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Acțiuni\npdfjs-editor-edit-comment-actions-button =\n    .title = Acțiuni\npdfjs-editor-edit-comment-close-button-label = Închide\npdfjs-editor-edit-comment-close-button =\n    .title = Închide\npdfjs-editor-edit-comment-actions-edit-button-label = Editează\npdfjs-editor-edit-comment-actions-delete-button-label = Șterge\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Introdu comentariul\npdfjs-editor-edit-comment-manager-cancel-button = Anulează\npdfjs-editor-edit-comment-manager-save-button = Salvează\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Editează comentariul\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Actualizează\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Adaugă un comentariu\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Adaugă\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Începe să tastezi…\npdfjs-editor-edit-comment-dialog-cancel-button = Anulează\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Editează comentariul\npdfjs-editor-add-comment-button =\n    .title = Adaugă un comentariu\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Elimină semnătura salvată\npdfjs-editor-delete-signature-button-label1 = Elimină semnătura salvată\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Editează descrierea\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Editează descrierea\n"
  },
  {
    "path": "viewer/locale/ru/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Предыдущая страница\npdfjs-previous-button-label = Предыдущая\npdfjs-next-button =\n    .title = Следующая страница\npdfjs-next-button-label = Следующая\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Страница\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = из { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } из { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Уменьшить\npdfjs-zoom-out-button-label = Уменьшить\npdfjs-zoom-in-button =\n    .title = Увеличить\npdfjs-zoom-in-button-label = Увеличить\npdfjs-zoom-select =\n    .title = Масштаб\npdfjs-presentation-mode-button =\n    .title = Перейти в режим презентации\npdfjs-presentation-mode-button-label = Режим презентации\npdfjs-open-file-button =\n    .title = Открыть файл\npdfjs-open-file-button-label = Открыть\npdfjs-print-button =\n    .title = Печать\npdfjs-print-button-label = Печать\npdfjs-save-button =\n    .title = Сохранить\npdfjs-save-button-label = Сохранить\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Загрузить\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Загрузить\npdfjs-bookmark-button =\n    .title = Текущая страница (просмотр URL-адреса с текущей страницы)\npdfjs-bookmark-button-label = Текущая страница\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Инструменты\npdfjs-tools-button-label = Инструменты\npdfjs-first-page-button =\n    .title = Перейти на первую страницу\npdfjs-first-page-button-label = Перейти на первую страницу\npdfjs-last-page-button =\n    .title = Перейти на последнюю страницу\npdfjs-last-page-button-label = Перейти на последнюю страницу\npdfjs-page-rotate-cw-button =\n    .title = Повернуть по часовой стрелке\npdfjs-page-rotate-cw-button-label = Повернуть по часовой стрелке\npdfjs-page-rotate-ccw-button =\n    .title = Повернуть против часовой стрелки\npdfjs-page-rotate-ccw-button-label = Повернуть против часовой стрелки\npdfjs-cursor-text-select-tool-button =\n    .title = Включить Инструмент «Выделение текста»\npdfjs-cursor-text-select-tool-button-label = Инструмент «Выделение текста»\npdfjs-cursor-hand-tool-button =\n    .title = Включить Инструмент «Рука»\npdfjs-cursor-hand-tool-button-label = Инструмент «Рука»\npdfjs-scroll-page-button =\n    .title = Использовать прокрутку страниц\npdfjs-scroll-page-button-label = Прокрутка страниц\npdfjs-scroll-vertical-button =\n    .title = Использовать вертикальную прокрутку\npdfjs-scroll-vertical-button-label = Вертикальная прокрутка\npdfjs-scroll-horizontal-button =\n    .title = Использовать горизонтальную прокрутку\npdfjs-scroll-horizontal-button-label = Горизонтальная прокрутка\npdfjs-scroll-wrapped-button =\n    .title = Использовать масштабируемую прокрутку\npdfjs-scroll-wrapped-button-label = Масштабируемая прокрутка\npdfjs-spread-none-button =\n    .title = Не использовать режим разворотов страниц\npdfjs-spread-none-button-label = Без разворотов страниц\npdfjs-spread-odd-button =\n    .title = Развороты начинаются с нечётных номеров страниц\npdfjs-spread-odd-button-label = Нечётные страницы слева\npdfjs-spread-even-button =\n    .title = Развороты начинаются с чётных номеров страниц\npdfjs-spread-even-button-label = Чётные страницы слева\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Свойства документа…\npdfjs-document-properties-button-label = Свойства документа…\npdfjs-document-properties-file-name = Имя файла:\npdfjs-document-properties-file-size = Размер файла:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } КБ ({ $b } байт)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байт)\npdfjs-document-properties-title = Заголовок:\npdfjs-document-properties-author = Автор:\npdfjs-document-properties-subject = Тема:\npdfjs-document-properties-keywords = Ключевые слова:\npdfjs-document-properties-creation-date = Дата создания:\npdfjs-document-properties-modification-date = Дата изменения:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Приложение:\npdfjs-document-properties-producer = Производитель PDF:\npdfjs-document-properties-version = Версия PDF:\npdfjs-document-properties-page-count = Число страниц:\npdfjs-document-properties-page-size = Размер страницы:\npdfjs-document-properties-page-size-unit-inches = дюймов\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = книжная\npdfjs-document-properties-page-size-orientation-landscape = альбомная\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Быстрый просмотр в Web:\npdfjs-document-properties-linearized-yes = Да\npdfjs-document-properties-linearized-no = Нет\npdfjs-document-properties-close-button = Закрыть\n\n## Print\n\npdfjs-print-progress-message = Подготовка документа к печати…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Отмена\npdfjs-printing-not-supported = Предупреждение: В этом браузере не полностью поддерживается печать.\npdfjs-printing-not-ready = Предупреждение: PDF не полностью загружен для печати.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Показать/скрыть боковую панель\npdfjs-toggle-sidebar-notification-button =\n    .title = Показать/скрыть боковую панель (документ имеет содержание/вложения/слои)\npdfjs-toggle-sidebar-button-label = Показать/скрыть боковую панель\npdfjs-document-outline-button =\n    .title = Показать содержание документа (двойной щелчок, чтобы развернуть/свернуть все элементы)\npdfjs-document-outline-button-label = Содержание документа\npdfjs-attachments-button =\n    .title = Показать вложения\npdfjs-attachments-button-label = Вложения\npdfjs-layers-button =\n    .title = Показать слои (дважды щёлкните, чтобы сбросить все слои к состоянию по умолчанию)\npdfjs-layers-button-label = Слои\npdfjs-thumbs-button =\n    .title = Показать миниатюры\npdfjs-thumbs-button-label = Миниатюры\npdfjs-current-outline-item-button =\n    .title = Найти текущий элемент структуры\npdfjs-current-outline-item-button-label = Текущий элемент структуры\npdfjs-findbar-button =\n    .title = Найти в документе\npdfjs-findbar-button-label = Найти\npdfjs-additional-layers = Дополнительные слои\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Страница { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Миниатюра страницы { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Найти\n    .placeholder = Найти в документе…\npdfjs-find-previous-button =\n    .title = Найти предыдущее вхождение фразы в текст\npdfjs-find-previous-button-label = Назад\npdfjs-find-next-button =\n    .title = Найти следующее вхождение фразы в текст\npdfjs-find-next-button-label = Далее\npdfjs-find-highlight-checkbox = Подсветить все\npdfjs-find-match-case-checkbox-label = С учётом регистра\npdfjs-find-match-diacritics-checkbox-label = С учётом диакритических знаков\npdfjs-find-entire-word-checkbox-label = Слова целиком\npdfjs-find-reached-top = Достигнут верх документа, продолжено снизу\npdfjs-find-reached-bottom = Достигнут конец документа, продолжено сверху\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } из { $total } совпадения\n        [few] { $current } из { $total } совпадений\n       *[many] { $current } из { $total } совпадений\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Более { $limit } совпадения\n        [few] Более { $limit } совпадений\n       *[many] Более { $limit } совпадений\n    }\npdfjs-find-not-found = Фраза не найдена\n\n## Predefined zoom values\n\npdfjs-page-scale-width = По ширине страницы\npdfjs-page-scale-fit = По размеру страницы\npdfjs-page-scale-auto = Автоматически\npdfjs-page-scale-actual = Реальный размер\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Страница { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = При загрузке PDF произошла ошибка.\npdfjs-invalid-file-error = Некорректный или повреждённый PDF-файл.\npdfjs-missing-file-error = PDF-файл отсутствует.\npdfjs-unexpected-response-error = Неожиданный ответ сервера.\npdfjs-rendering-error = При создании страницы произошла ошибка.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Аннотация { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Введите пароль, чтобы открыть этот PDF-файл.\npdfjs-password-invalid = Неверный пароль. Пожалуйста, попробуйте снова.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Отмена\npdfjs-web-fonts-disabled = Веб-шрифты отключены: не удалось задействовать встроенные PDF-шрифты.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Текст\npdfjs-editor-color-picker-free-text-input =\n    .title = Изменить цвет текста\npdfjs-editor-free-text-button-label = Текст\npdfjs-editor-ink-button =\n    .title = Рисовать\npdfjs-editor-color-picker-ink-input =\n    .title = Изменить цвет прорисовки\npdfjs-editor-ink-button-label = Рисовать\npdfjs-editor-stamp-button =\n    .title = Добавить или изменить изображения\npdfjs-editor-stamp-button-label = Добавить или изменить изображения\npdfjs-editor-highlight-button =\n    .title = Выделение\npdfjs-editor-highlight-button-label = Выделение\npdfjs-highlight-floating-button1 =\n    .title = Выделение\n    .aria-label = Выделение\npdfjs-highlight-floating-button-label = Выделение\npdfjs-comment-floating-button =\n    .title = Комментировать\n    .aria-label = Комментировать\npdfjs-comment-floating-button-label = Комментировать\npdfjs-editor-comment-button =\n    .title = Комментарий\n    .aria-label = Комментарий\npdfjs-editor-comment-button-label = Комментарий\npdfjs-editor-signature-button =\n    .title = Добавить подпись\npdfjs-editor-signature-button-label = Добавить подпись\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Редактор выделения\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Редактор изображений\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Редактор подписи: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Редактор изображений\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Удалить рисунок\npdfjs-editor-remove-freetext-button =\n    .title = Удалить текст\npdfjs-editor-remove-stamp-button =\n    .title = Удалить изображение\npdfjs-editor-remove-highlight-button =\n    .title = Удалить выделение\npdfjs-editor-remove-signature-button =\n    .title = Удалить подпись\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Цвет\npdfjs-editor-free-text-size-input = Размер\npdfjs-editor-ink-color-input = Цвет\npdfjs-editor-ink-thickness-input = Толщина\npdfjs-editor-ink-opacity-input = Прозрачность\npdfjs-editor-stamp-add-image-button =\n    .title = Добавить изображение\npdfjs-editor-stamp-add-image-button-label = Добавить изображение\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Толщина\npdfjs-editor-free-highlight-thickness-title =\n    .title = Изменить толщину при выделении элементов, кроме текста\npdfjs-editor-add-signature-container =\n    .aria-label = Управление подписями и сохраненные подписи\npdfjs-editor-signature-add-signature-button =\n    .title = Добавить новую подпись\npdfjs-editor-signature-add-signature-button-label = Добавить новую подпись\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Сохранённая подпись: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Текстовый редактор\n    .default-content = Начните ввод...\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Комментарий\n        [few] Комментарии\n       *[many] Комментарии\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Закрыть боковую панель\n    .aria-label = Закрыть боковую панель\npdfjs-editor-comments-sidebar-close-button-label = Закрыть боковую панель\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Увидели что-то интересное? Выделите и оставьте комментарий.\npdfjs-editor-comments-sidebar-no-comments-link = Подробнее\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Альтернативный текст\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Изменить альтернативный текст\npdfjs-editor-alt-text-dialog-label = Выберите вариант\npdfjs-editor-alt-text-dialog-description = Альтернативный текст помогает, когда люди не видят изображение или оно не загружается.\npdfjs-editor-alt-text-add-description-label = Добавить описание\npdfjs-editor-alt-text-add-description-description = Старайтесь составлять 1–2 предложения, описывающих предмет, обстановку или действия.\npdfjs-editor-alt-text-mark-decorative-label = Отметить как декоративное\npdfjs-editor-alt-text-mark-decorative-description = Используется для декоративных изображений, таких как рамки или водяные знаки.\npdfjs-editor-alt-text-cancel-button = Отменить\npdfjs-editor-alt-text-save-button = Сохранить\npdfjs-editor-alt-text-decorative-tooltip = Помечен как декоративный\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Например: «Молодой человек садится за стол, чтобы поесть»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Альтернативный текст\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Левый верхний угол — изменить размер\npdfjs-editor-resizer-top-middle =\n    .aria-label = Вверху посередине — изменить размер\npdfjs-editor-resizer-top-right =\n    .aria-label = Верхний правый угол — изменить размер\npdfjs-editor-resizer-middle-right =\n    .aria-label = В центре справа — изменить размер\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Нижний правый угол — изменить размер\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Внизу посередине — изменить размер\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Нижний левый угол — изменить размер\npdfjs-editor-resizer-middle-left =\n    .aria-label = В центре слева — изменить размер\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Цвет выделения\npdfjs-editor-colorpicker-button =\n    .title = Изменить цвет\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Выбор цвета\npdfjs-editor-colorpicker-yellow =\n    .title = Жёлтый\npdfjs-editor-colorpicker-green =\n    .title = Зелёный\npdfjs-editor-colorpicker-blue =\n    .title = Синий\npdfjs-editor-colorpicker-pink =\n    .title = Розовый\npdfjs-editor-colorpicker-red =\n    .title = Красный\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Показать все\npdfjs-editor-highlight-show-all-button =\n    .title = Показать все\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Изменить альтернативный текст (описание изображения)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Добавить альтернативный текст (описание изображения)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Напишите здесь своё описание…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Короткое описание для людей, которые не видят изображение, или если изображение не загружается.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Этот альтернативный текст был создан автоматически и может быть неточным.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Подробнее\npdfjs-editor-new-alt-text-create-automatically-button-label = Автоматически создавать альтернативный текст\npdfjs-editor-new-alt-text-not-now-button = Не сейчас\npdfjs-editor-new-alt-text-error-title = Не удалось автоматически создать альтернативный текст\npdfjs-editor-new-alt-text-error-description = Пожалуйста, напишите свой альтернативный текст или попробуйте ещё раз позже.\npdfjs-editor-new-alt-text-error-close-button = Закрыть\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Загрузка модели ИИ для альтернативного текста ({ $downloadedSize } из { $totalSize } МБ)\n    .aria-valuetext = Загрузка модели ИИ для альтернативного текста ({ $downloadedSize } из { $totalSize } МБ)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Альтернативный текст добавлен\npdfjs-editor-new-alt-text-added-button-label = Альтернативный текст добавлен\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Отсутствует альтернативный текст\npdfjs-editor-new-alt-text-missing-button-label = Отсутствует альтернативный текст\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Оценить альтернативный текст\npdfjs-editor-new-alt-text-to-review-button-label = Оценить альтернативный текст\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Создано автоматически: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Настройки альтернативного текста для изображения\npdfjs-image-alt-text-settings-button-label = Настройки альтернативного текста для изображения\npdfjs-editor-alt-text-settings-dialog-label = Настройки альтернативного текста для изображения\npdfjs-editor-alt-text-settings-automatic-title = Автоматический альтернативный текст\npdfjs-editor-alt-text-settings-create-model-button-label = Автоматически создавать альтернативный текст\npdfjs-editor-alt-text-settings-create-model-description = Предлагает описания, чтобы помочь людям, которые не видят изображение, или если изображение не загружается.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = ИИ-модель альтернативного текста ({ $totalSize } МБ)\npdfjs-editor-alt-text-settings-ai-model-description = Запускается локально на вашем устройстве, поэтому ваши данные остаются конфиденциальными. Требуется для автоматического альтернативного текста.\npdfjs-editor-alt-text-settings-delete-model-button = Удалить\npdfjs-editor-alt-text-settings-download-model-button = Загрузить\npdfjs-editor-alt-text-settings-downloading-model-button = Загрузка…\npdfjs-editor-alt-text-settings-editor-title = Редактор альтернативного текста\npdfjs-editor-alt-text-settings-show-dialog-button-label = Сразу показывать редактор альтернативного текста при добавлении изображения\npdfjs-editor-alt-text-settings-show-dialog-description = Помогает вам убедиться, что все ваши изображения имеют альтернативный текст.\npdfjs-editor-alt-text-settings-close-button = Закрыть\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Выделение добавлено\npdfjs-editor-freetext-added-alert = Текст добавлен\npdfjs-editor-ink-added-alert = Изображение добавлено\npdfjs-editor-stamp-added-alert = Изображение добавлено\npdfjs-editor-signature-added-alert = Подпись добавлена\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Выделение удалено\npdfjs-editor-undo-bar-message-freetext = Текст удалён\npdfjs-editor-undo-bar-message-ink = Рисунок удалён\npdfjs-editor-undo-bar-message-stamp = Изображение удалено\npdfjs-editor-undo-bar-message-signature = Подпись удалена\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } аннотация удалена\n        [few] { $count } аннотации удалены\n       *[many] { $count } аннотаций удалены\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Отменить\npdfjs-editor-undo-bar-undo-button-label = Отменить\npdfjs-editor-undo-bar-close-button =\n    .title = Закрыть\npdfjs-editor-undo-bar-close-button-label = Закрыть\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Это окно позволяет пользователю создать подпись для добавления в PDF-документ. Пользователь может отредактировать имя (которое также используется в качестве альтернативного текста) и, по желанию, сохранить подпись для повторного использования.\npdfjs-editor-add-signature-dialog-title = Добавить подпись\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Ввод\n    .title = Ввод\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Рисовать\n    .title = Рисовать\npdfjs-editor-add-signature-image-button = Изображение\n    .title = Изображение\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Введите свою подпись\n    .placeholder = Введите свою подпись\npdfjs-editor-add-signature-draw-placeholder = Нарисуйте свою подпись\npdfjs-editor-add-signature-draw-thickness-range-label = Толщина\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Толщина рисунка: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Перетащите сюда файл для загрузки\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Или просмотрите файлы изображений\n       *[other] Или просмотрите файлы изображений\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Описание (альтернативный текст)\npdfjs-editor-add-signature-description-input =\n    .title = Описание (альтернативный текст)\npdfjs-editor-add-signature-description-default-when-drawing = Подпись\npdfjs-editor-add-signature-clear-button-label = Удалить подпись\npdfjs-editor-add-signature-clear-button =\n    .title = Удалить подпись\npdfjs-editor-add-signature-save-checkbox = Сохранить подпись\npdfjs-editor-add-signature-save-warning-message = Вы достигли лимита в 5 сохранённых подписей. Удалите одну, чтобы сохранить другие.\npdfjs-editor-add-signature-image-upload-error-title = Не удалось загрузить изображение\npdfjs-editor-add-signature-image-upload-error-description = Проверьте подключение к сети или попробуйте другое изображение.\npdfjs-editor-add-signature-image-no-data-error-title = Не удалось преобразовать это изображение в подпись\npdfjs-editor-add-signature-image-no-data-error-description = Пожалуйста, попробуйте загрузить другое изображение.\npdfjs-editor-add-signature-error-close-button = Закрыть\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Отмена\npdfjs-editor-add-signature-add-button = Добавить\npdfjs-editor-edit-signature-update-button = Обновить\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Редактировать комментарий\npdfjs-editor-edit-comment-popup-button =\n    .title = Редактировать комментарий\npdfjs-editor-delete-comment-popup-button-label = Удалить комментарий\npdfjs-editor-delete-comment-popup-button =\n    .title = Удалить комментарий\npdfjs-show-comment-button =\n    .title = Показать комментарий\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Действия\npdfjs-editor-edit-comment-actions-button =\n    .title = Действия\npdfjs-editor-edit-comment-close-button-label = Закрыть\npdfjs-editor-edit-comment-close-button =\n    .title = Закрыть\npdfjs-editor-edit-comment-actions-edit-button-label = Изменить\npdfjs-editor-edit-comment-actions-delete-button-label = Удалить\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Введите ваш комментарий\npdfjs-editor-edit-comment-manager-cancel-button = Отмена\npdfjs-editor-edit-comment-manager-save-button = Сохранить\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Редактировать комментарий\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Обновить\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Добавить комментарий\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Добавить\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Начните ввод…\npdfjs-editor-edit-comment-dialog-cancel-button = Отмена\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Редактировать комментарий\npdfjs-editor-add-comment-button =\n    .title = Добавить комментарий\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Удалить сохранённую подпись\npdfjs-editor-delete-signature-button-label1 = Удалить сохранённую подпись\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Изменить описание\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Изменить описание\n"
  },
  {
    "path": "viewer/locale/sat/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = ᱢᱟᱲᱟᱝ ᱥᱟᱦᱴᱟ\npdfjs-previous-button-label = ᱢᱟᱲᱟᱝᱟᱜ\npdfjs-next-button =\n    .title = ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ ᱥᱟᱦᱴᱟ\npdfjs-next-button-label = ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ᱥᱟᱦᱴᱟ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = ᱨᱮᱭᱟᱜ { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } ᱠᱷᱚᱱ { $pagesCount })\npdfjs-zoom-out-button =\n    .title = ᱦᱤᱲᱤᱧ ᱛᱮᱭᱟᱨ\npdfjs-zoom-out-button-label = ᱦᱤᱲᱤᱧ ᱛᱮᱭᱟᱨ\npdfjs-zoom-in-button =\n    .title = ᱢᱟᱨᱟᱝ ᱛᱮᱭᱟᱨ\npdfjs-zoom-in-button-label = ᱢᱟᱨᱟᱝ ᱛᱮᱭᱟᱨ\npdfjs-zoom-select =\n    .title = ᱡᱩᱢ\npdfjs-presentation-mode-button =\n    .title = ᱩᱫᱩᱜ ᱥᱚᱫᱚᱨ ᱚᱵᱚᱥᱛᱟ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ\npdfjs-presentation-mode-button-label = ᱩᱫᱩᱜ ᱥᱚᱫᱚᱨ ᱚᱵᱚᱥᱛᱟ ᱨᱮ\npdfjs-open-file-button =\n    .title = ᱨᱮᱫ ᱡᱷᱤᱡᱽ ᱢᱮ\npdfjs-open-file-button-label = ᱡᱷᱤᱡᱽ ᱢᱮ\npdfjs-print-button =\n    .title = ᱪᱷᱟᱯᱟ\npdfjs-print-button-label = ᱪᱷᱟᱯᱟ\npdfjs-save-button =\n    .title = ᱥᱟᱺᱪᱟᱣ ᱢᱮ\npdfjs-save-button-label = ᱥᱟᱺᱪᱟᱣ ᱢᱮ\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ᱰᱟᱣᱩᱱᱞᱚᱰ\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ᱰᱟᱣᱩᱱᱞᱚᱰ\npdfjs-bookmark-button =\n    .title = ᱱᱤᱛᱚᱜᱟᱜ ᱥᱟᱦᱴᱟ (ᱱᱤᱛᱚᱜᱟᱜ ᱥᱟᱦᱴᱟ ᱠᱷᱚᱱ URL ᱫᱮᱠᱷᱟᱣ ᱢᱮ)\npdfjs-bookmark-button-label = ᱱᱤᱛᱚᱜᱟᱜ ᱥᱟᱦᱴᱟ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱠᱚ\npdfjs-tools-button-label = ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱠᱚ\npdfjs-first-page-button =\n    .title = ᱯᱩᱭᱞᱩ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ\npdfjs-first-page-button-label = ᱯᱩᱭᱞᱩ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ\npdfjs-last-page-button =\n    .title = ᱢᱩᱪᱟᱹᱫ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ\npdfjs-last-page-button-label = ᱢᱩᱪᱟᱹᱫ ᱥᱟᱦᱴᱟ ᱥᱮᱫ ᱪᱟᱞᱟᱜ ᱢᱮ\npdfjs-page-rotate-cw-button =\n    .title = ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱟᱹᱪᱩᱨ\npdfjs-page-rotate-cw-button-label = ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱟᱹᱪᱩᱨ\npdfjs-page-rotate-ccw-button =\n    .title = ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱩᱞᱴᱟᱹ ᱟᱹᱪᱩᱨ\npdfjs-page-rotate-ccw-button-label = ᱜᱷᱚᱰᱤ ᱦᱤᱥᱟᱹᱵ ᱛᱮ ᱩᱞᱴᱟᱹ ᱟᱹᱪᱩᱨ\npdfjs-cursor-text-select-tool-button =\n    .title = ᱚᱞ ᱵᱟᱪᱷᱟᱣ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ\npdfjs-cursor-text-select-tool-button-label = ᱚᱞ ᱵᱟᱪᱷᱟᱣ ᱦᱟᱹᱛᱤᱭᱟᱨ\npdfjs-cursor-hand-tool-button =\n    .title = ᱛᱤ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ\npdfjs-cursor-hand-tool-button-label = ᱛᱤ ᱦᱟᱹᱛᱤᱭᱟᱨ\npdfjs-scroll-page-button =\n    .title = ᱥᱟᱦᱴᱟ ᱜᱩᱲᱟᱹᱣ ᱵᱮᱵᱷᱟᱨ ᱢᱮ\npdfjs-scroll-page-button-label = ᱥᱟᱦᱴᱟ ᱜᱩᱲᱟᱹᱣ\npdfjs-scroll-vertical-button =\n    .title = ᱥᱤᱫᱽ ᱜᱩᱲᱟᱹᱣ ᱵᱮᱵᱷᱟᱨ ᱢᱮ\npdfjs-scroll-vertical-button-label = ᱥᱤᱫᱽ ᱜᱩᱲᱟᱹᱣ\npdfjs-scroll-horizontal-button =\n    .title = ᱜᱤᱛᱤᱡ ᱛᱮ ᱜᱩᱲᱟᱹᱣ ᱵᱮᱵᱷᱟᱨ ᱢᱮ\npdfjs-scroll-horizontal-button-label = ᱜᱤᱛᱤᱡ ᱛᱮ ᱜᱩᱲᱟᱹᱣ\npdfjs-scroll-wrapped-button =\n    .title = ᱞᱤᱯᱴᱟᱹᱣ ᱜᱩᱰᱨᱟᱹᱣ ᱵᱮᱵᱷᱟᱨ ᱢᱮ\npdfjs-scroll-wrapped-button-label = ᱞᱤᱯᱴᱟᱣ ᱜᱩᱰᱨᱟᱹᱣ\npdfjs-spread-none-button =\n    .title = ᱟᱞᱚᱢ ᱡᱚᱲᱟᱣ ᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱯᱟᱥᱱᱟᱣᱜᱼᱟ\npdfjs-spread-none-button-label = ᱯᱟᱥᱱᱟᱣ ᱵᱟᱹᱱᱩᱜᱼᱟ\npdfjs-spread-odd-button =\n    .title = ᱥᱟᱦᱴᱟ ᱯᱟᱥᱱᱟᱣ ᱡᱚᱲᱟᱣ ᱢᱮ ᱡᱟᱦᱟᱸ ᱫᱚ ᱚᱰᱼᱮᱞ ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱞᱟᱜ ᱮᱛᱦᱚᱵᱚᱜ ᱠᱟᱱᱟ\npdfjs-spread-odd-button-label = ᱚᱰ ᱯᱟᱥᱱᱟᱣ\npdfjs-spread-even-button =\n    .title = ᱥᱟᱦᱴᱟ ᱯᱟᱥᱱᱟᱣ ᱡᱚᱲᱟᱣ ᱢᱮ ᱡᱟᱦᱟᱸ ᱫᱚ ᱤᱣᱮᱱᱼᱮᱞ ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱞᱟᱜ ᱮᱛᱦᱚᱵᱚᱜ ᱠᱟᱱᱟ\npdfjs-spread-even-button-label = ᱯᱟᱥᱱᱟᱣ ᱤᱣᱮᱱ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = ᱫᱚᱞᱤᱞ ᱜᱩᱱᱠᱚ …\npdfjs-document-properties-button-label = ᱫᱚᱞᱤᱞ ᱜᱩᱱᱠᱚ …\npdfjs-document-properties-file-name = ᱨᱮᱫᱽ ᱧᱩᱛᱩᱢ :\npdfjs-document-properties-file-size = ᱨᱮᱫᱽ ᱢᱟᱯ :\npdfjs-document-properties-title = ᱧᱩᱛᱩᱢ :\npdfjs-document-properties-author = ᱚᱱᱚᱞᱤᱭᱟᱹ :\npdfjs-document-properties-subject = ᱵᱤᱥᱚᱭ :\npdfjs-document-properties-keywords = ᱠᱟᱹᱴᱷᱤ ᱥᱟᱵᱟᱫᱽ :\npdfjs-document-properties-creation-date = ᱛᱮᱭᱟᱨ ᱢᱟᱸᱦᱤᱛ :\npdfjs-document-properties-modification-date = ᱵᱚᱫᱚᱞ ᱦᱚᱪᱚ ᱢᱟᱹᱦᱤᱛ :\npdfjs-document-properties-creator = ᱵᱮᱱᱟᱣᱤᱡ :\npdfjs-document-properties-producer = PDF ᱛᱮᱭᱟᱨ ᱚᱰᱚᱠᱤᱡ :\npdfjs-document-properties-version = PDF ᱵᱷᱟᱹᱨᱥᱚᱱ :\npdfjs-document-properties-page-count = ᱥᱟᱦᱴᱟ ᱞᱮᱠᱷᱟ :\npdfjs-document-properties-page-size = ᱥᱟᱦᱴᱟ ᱢᱟᱯ :\npdfjs-document-properties-page-size-unit-inches = ᱤᱧᱪ\npdfjs-document-properties-page-size-unit-millimeters = ᱢᱤᱢᱤ\npdfjs-document-properties-page-size-orientation-portrait = ᱯᱚᱴᱨᱮᱴ\npdfjs-document-properties-page-size-orientation-landscape = ᱞᱮᱱᱰᱥᱠᱮᱯ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = ᱪᱤᱴᱷᱤ\npdfjs-document-properties-page-size-name-legal = ᱠᱟᱹᱱᱩᱱᱤ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = ᱞᱚᱜᱚᱱ ᱣᱮᱵᱽ ᱧᱮᱞ :\npdfjs-document-properties-linearized-yes = ᱦᱚᱭ\npdfjs-document-properties-linearized-no = ᱵᱟᱝ\npdfjs-document-properties-close-button = ᱵᱚᱸᱫᱚᱭ ᱢᱮ\n\n## Print\n\npdfjs-print-progress-message = ᱪᱷᱟᱯᱟ ᱞᱟᱹᱜᱤᱫ ᱫᱚᱞᱤᱞ ᱛᱮᱭᱟᱨᱚᱜ ᱠᱟᱱᱟ …\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ᱵᱟᱹᱰᱨᱟᱹ\npdfjs-printing-not-supported = ᱦᱚᱥᱤᱭᱟᱨ : ᱪᱷᱟᱯᱟ ᱱᱚᱣᱟ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱫᱟᱨᱟᱭ ᱛᱮ ᱯᱩᱨᱟᱹᱣ ᱵᱟᱭ ᱜᱚᱲᱚᱣᱟᱠᱟᱱᱟ ᱾\npdfjs-printing-not-ready = ᱦᱩᱥᱤᱭᱟᱹᱨ : ᱪᱷᱟᱯᱟ ᱞᱟᱹᱜᱤᱫ PDF ᱯᱩᱨᱟᱹ ᱵᱟᱭ ᱞᱟᱫᱮ ᱟᱠᱟᱱᱟ ᱾\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ\npdfjs-toggle-sidebar-notification-button =\n    .title = ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ  (ᱫᱚᱞᱤᱞ ᱨᱮ ᱟᱣᱴᱞᱟᱭᱤᱢ ᱢᱮᱱᱟᱜᱼᱟ/ᱞᱟᱪᱷᱟᱠᱚ/ᱯᱚᱨᱚᱛᱠᱚ)\npdfjs-toggle-sidebar-button-label = ᱫᱷᱟᱨᱮᱵᱟᱨ ᱥᱮᱫ ᱩᱪᱟᱹᱲᱚᱜ ᱢᱮ\npdfjs-document-outline-button =\n    .title = ᱫᱚᱞᱚᱞ ᱟᱣᱴᱞᱟᱭᱤᱱ ᱫᱮᱠᱷᱟᱣ ᱢᱮ (ᱡᱷᱚᱛᱚ ᱡᱤᱱᱤᱥᱠᱚ ᱵᱟᱨ ᱡᱮᱠᱷᱟ ᱚᱛᱟ ᱠᱮᱛᱮ ᱡᱷᱟᱹᱞ/ᱦᱩᱰᱤᱧ ᱪᱷᱚᱭ ᱢᱮ)\npdfjs-document-outline-button-label = ᱫᱚᱞᱤᱞ ᱛᱮᱭᱟᱨ ᱛᱮᱫ\npdfjs-attachments-button =\n    .title = ᱞᱟᱴᱷᱟ ᱥᱮᱞᱮᱫ ᱠᱚ ᱩᱫᱩᱜᱽ ᱢᱮ\npdfjs-attachments-button-label = ᱞᱟᱴᱷᱟ ᱥᱮᱞᱮᱫ ᱠᱚ\npdfjs-layers-button =\n    .title = ᱯᱚᱨᱚᱛ ᱫᱮᱠᱷᱟᱣ ᱢᱮ (ᱢᱩᱞ ᱡᱟᱭᱜᱟ ᱛᱮ ᱡᱷᱚᱛᱚ ᱯᱚᱨᱚᱛᱠᱚ ᱨᱤᱥᱮᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱟᱨ ᱡᱮᱠᱷᱟ ᱚᱛᱚᱭ ᱢᱮ)\npdfjs-layers-button-label = ᱯᱚᱨᱚᱛᱠᱚ\npdfjs-thumbs-button =\n    .title = ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱠᱚ ᱩᱫᱩᱜᱽ ᱢᱮ\npdfjs-thumbs-button-label = ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱠᱚ\npdfjs-current-outline-item-button =\n    .title = ᱱᱤᱛᱚᱜᱟᱜ ᱟᱣᱴᱞᱟᱭᱤᱱ ᱡᱟᱱᱤᱥ ᱯᱟᱱᱛᱮ ᱢᱮ\npdfjs-current-outline-item-button-label = ᱱᱤᱛᱚᱜᱟᱜ ᱟᱣᱴᱞᱟᱭᱤᱱ ᱡᱟᱱᱤᱥ\npdfjs-findbar-button =\n    .title = ᱫᱚᱞᱤᱞ ᱨᱮ ᱯᱟᱱᱛᱮ\npdfjs-findbar-button-label = ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ\npdfjs-additional-layers = ᱵᱟᱹᱲᱛᱤ ᱯᱚᱨᱚᱛᱠᱚ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } ᱥᱟᱦᱴᱟ\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ\n    .placeholder = ᱫᱚᱞᱤᱞ ᱨᱮ ᱯᱟᱱᱛᱮ ᱢᱮ …\npdfjs-find-previous-button =\n    .title = ᱟᱭᱟᱛ ᱦᱤᱸᱥ ᱨᱮᱭᱟᱜ ᱯᱟᱹᱦᱤᱞ ᱥᱮᱫᱟᱜ ᱚᱰᱚᱠ ᱧᱟᱢ ᱢᱮ\npdfjs-find-previous-button-label = ᱢᱟᱲᱟᱝᱟᱜ\npdfjs-find-next-button =\n    .title = ᱟᱭᱟᱛ ᱦᱤᱸᱥ ᱨᱮᱭᱟᱜ ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ ᱚᱰᱚᱠ ᱧᱟᱢ ᱢᱮ\npdfjs-find-next-button-label = ᱤᱱᱟᱹ ᱛᱟᱭᱚᱢ\npdfjs-find-highlight-checkbox = ᱡᱷᱚᱛᱚ ᱩᱫᱩᱜ ᱨᱟᱠᱟᱵ\npdfjs-find-match-case-checkbox-label = ᱡᱚᱲ ᱠᱟᱛᱷᱟ\npdfjs-find-match-diacritics-checkbox-label = ᱵᱤᱥᱮᱥᱚᱠ ᱠᱚ ᱢᱮᱲᱟᱣ ᱢᱮ\npdfjs-find-entire-word-checkbox-label = ᱡᱷᱚᱛᱚ ᱟᱹᱲᱟᱹᱠᱚ\npdfjs-find-reached-top = ᱫᱚᱞᱤᱞ ᱨᱮᱭᱟᱜ ᱪᱤᱴ ᱨᱮ ᱥᱮᱴᱮᱨ, ᱞᱟᱛᱟᱨ ᱠᱷᱚᱱ ᱞᱮᱛᱟᱲ\npdfjs-find-reached-bottom = ᱫᱚᱞᱤᱞ ᱨᱮᱭᱟᱜ ᱢᱩᱪᱟᱹᱫ ᱨᱮ ᱥᱮᱴᱮᱨ, ᱪᱚᱴ ᱠᱷᱚᱱ ᱞᱮᱛᱟᱲ\npdfjs-find-not-found = ᱛᱚᱯᱚᱞ ᱫᱚᱱᱚᱲ ᱵᱟᱝ ᱧᱟᱢ ᱞᱮᱱᱟ\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ᱥᱟᱦᱴᱟ ᱚᱥᱟᱨ\npdfjs-page-scale-fit = ᱥᱟᱦᱴᱟ ᱠᱷᱟᱯ\npdfjs-page-scale-auto = ᱟᱡᱼᱟᱡ ᱛᱮ ᱦᱩᱰᱤᱧ ᱞᱟᱹᱴᱩ ᱛᱮᱭᱟᱨ\npdfjs-page-scale-actual = ᱴᱷᱤᱠ ᱢᱟᱨᱟᱝ ᱛᱮᱫ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = { $page } ᱥᱟᱦᱴᱟ\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ᱞᱟᱫᱮ ᱡᱚᱦᱚᱜ ᱢᱤᱫ ᱵᱷᱩᱞ ᱦᱩᱭ ᱮᱱᱟ ᱾\npdfjs-invalid-file-error = ᱵᱟᱝ ᱵᱟᱛᱟᱣ ᱟᱨᱵᱟᱝᱠᱷᱟᱱ ᱰᱤᱜᱟᱹᱣ PDF ᱨᱮᱫᱽ ᱾\npdfjs-missing-file-error = ᱟᱫᱟᱜ PDF ᱨᱮᱫᱽ ᱾\npdfjs-unexpected-response-error = ᱵᱟᱝᱵᱩᱡᱷ ᱥᱚᱨᱵᱷᱚᱨ ᱛᱮᱞᱟ ᱾\npdfjs-rendering-error = ᱥᱟᱦᱴᱟ ᱮᱢ ᱡᱚᱦᱚᱠ ᱢᱤᱫ ᱵᱷᱩᱞ ᱦᱩᱭ ᱮᱱᱟ ᱾\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } ᱢᱚᱱᱛᱚ ᱮᱢ]\n\n## Password\n\npdfjs-password-label = ᱱᱚᱶᱟ PDF ᱨᱮᱫᱽ ᱡᱷᱤᱡᱽ ᱞᱟᱹᱜᱤᱫ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱟᱫᱮᱨ ᱢᱮ ᱾\npdfjs-password-invalid = ᱵᱷᱩᱞ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱾ ᱫᱟᱭᱟᱠᱟᱛᱮ ᱫᱩᱦᱲᱟᱹ ᱪᱮᱥᱴᱟᱭ ᱢᱮ ᱾\npdfjs-password-ok-button = ᱴᱷᱤᱠ\npdfjs-password-cancel-button = ᱵᱟᱹᱰᱨᱟᱹ\npdfjs-web-fonts-disabled = ᱣᱮᱵᱽ ᱪᱤᱠᱤ ᱵᱟᱝ ᱦᱩᱭ ᱦᱚᱪᱚ ᱠᱟᱱᱟ : ᱵᱷᱤᱛᱤᱨ ᱛᱷᱟᱯᱚᱱ PDF ᱪᱤᱠᱤ ᱵᱮᱵᱷᱟᱨ ᱵᱟᱝ ᱦᱩᱭ ᱠᱮᱭᱟ ᱾\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = ᱚᱞ\npdfjs-editor-free-text-button-label = ᱚᱞ\npdfjs-editor-ink-button =\n    .title = ᱛᱮᱭᱟᱨ\npdfjs-editor-ink-button-label = ᱛᱮᱭᱟᱨ\npdfjs-editor-stamp-button =\n    .title = ᱪᱤᱛᱟᱹᱨᱠᱚ ᱥᱮᱞᱮᱫ ᱥᱮ ᱥᱟᱯᱲᱟᱣ ᱢᱮ\npdfjs-editor-stamp-button-label = ᱪᱤᱛᱟᱹᱨᱠᱚ ᱥᱮᱞᱮᱫ ᱥᱮ ᱥᱟᱯᱲᱟᱣ ᱢᱮ\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = ᱨᱚᱝ\npdfjs-editor-free-text-size-input = ᱢᱟᱯ\npdfjs-editor-ink-color-input = ᱨᱚᱝ\npdfjs-editor-ink-thickness-input = ᱢᱚᱴᱟ\npdfjs-editor-ink-opacity-input = ᱟᱨᱯᱟᱨ\npdfjs-editor-stamp-add-image-button =\n    .title = ᱪᱤᱛᱟᱹᱨ ᱥᱮᱞᱮᱫ ᱢᱮ\npdfjs-editor-stamp-add-image-button-label = ᱪᱤᱛᱟᱹᱨ ᱥᱮᱞᱮᱫ ᱢᱮ\n"
  },
  {
    "path": "viewer/locale/sc/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pàgina anteriore\npdfjs-previous-button-label = S'ischeda chi b'est primu\npdfjs-next-button =\n    .title = Pàgina imbeniente\npdfjs-next-button-label = Imbeniente\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pàgina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = de { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } de { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Impitica\npdfjs-zoom-out-button-label = Impitica\npdfjs-zoom-in-button =\n    .title = Ismànnia\npdfjs-zoom-in-button-label = Ismànnia\npdfjs-zoom-select =\n    .title = Ismànnia\npdfjs-presentation-mode-button =\n    .title = Cola a sa modalidade de presentatzione\npdfjs-presentation-mode-button-label = Modalidade de presentatzione\npdfjs-open-file-button =\n    .title = Aberi s'archìviu\npdfjs-open-file-button-label = Abertu\npdfjs-print-button =\n    .title = Imprenta\npdfjs-print-button-label = Imprenta\npdfjs-save-button =\n    .title = Sarva\npdfjs-save-button-label = Sarva\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Iscàrriga\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Iscàrriga\npdfjs-bookmark-button =\n    .title = Pàgina atuale (ammustra s’URL de sa pàgina atuale)\npdfjs-bookmark-button-label = Pàgina atuale\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Istrumentos\npdfjs-tools-button-label = Istrumentos\npdfjs-first-page-button =\n    .title = Bae a sa prima pàgina\npdfjs-first-page-button-label = Bae a sa prima pàgina\npdfjs-last-page-button =\n    .title = Bae a s'ùrtima pàgina\npdfjs-last-page-button-label = Bae a s'ùrtima pàgina\npdfjs-page-rotate-cw-button =\n    .title = Gira in sensu oràriu\npdfjs-page-rotate-cw-button-label = Gira in sensu oràriu\npdfjs-page-rotate-ccw-button =\n    .title = Gira in sensu anti-oràriu\npdfjs-page-rotate-ccw-button-label = Gira in sensu anti-oràriu\npdfjs-cursor-text-select-tool-button =\n    .title = Ativa s'aina de seletzione de testu\npdfjs-cursor-text-select-tool-button-label = Aina de seletzione de testu\npdfjs-cursor-hand-tool-button =\n    .title = Ativa s'aina de manu\npdfjs-cursor-hand-tool-button-label = Aina de manu\npdfjs-scroll-page-button =\n    .title = Imprea s'iscurrimentu de pàgina\npdfjs-scroll-page-button-label = Iscurrimentu de pàgina\npdfjs-scroll-vertical-button =\n    .title = Imprea s'iscurrimentu verticale\npdfjs-scroll-vertical-button-label = Iscurrimentu verticale\npdfjs-scroll-horizontal-button =\n    .title = Imprea s'iscurrimentu orizontale\npdfjs-scroll-horizontal-button-label = Iscurrimentu orizontale\npdfjs-scroll-wrapped-button =\n    .title = Imprea s'iscurrimentu continu\npdfjs-scroll-wrapped-button-label = Iscurrimentu continu\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Propiedades de su documentu…\npdfjs-document-properties-button-label = Propiedades de su documentu…\npdfjs-document-properties-file-name = Nòmine de s'archìviu:\npdfjs-document-properties-file-size = Mannària de s'archìviu:\npdfjs-document-properties-title = Tìtulu:\npdfjs-document-properties-author = Autoria:\npdfjs-document-properties-subject = Ogetu:\npdfjs-document-properties-keywords = Faeddos crae:\npdfjs-document-properties-creation-date = Data de creatzione:\npdfjs-document-properties-modification-date = Data de modìfica:\npdfjs-document-properties-creator = Creatzione:\npdfjs-document-properties-producer = Produtore de PDF:\npdfjs-document-properties-version = Versione de PDF:\npdfjs-document-properties-page-count = Contu de pàginas:\npdfjs-document-properties-page-size = Mannària de sa pàgina:\npdfjs-document-properties-page-size-unit-inches = pòddighes\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = verticale\npdfjs-document-properties-page-size-orientation-landscape = orizontale\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Lìtera\npdfjs-document-properties-page-size-name-legal = Legale\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Visualizatzione web lestra:\npdfjs-document-properties-linearized-yes = Eja\npdfjs-document-properties-linearized-no = Nono\npdfjs-document-properties-close-button = Serra\n\n## Print\n\npdfjs-print-progress-message = Aparitzende s'imprenta de su documentu…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Annulla\npdfjs-printing-not-supported = Atentzione: s'imprenta no est funtzionende de su totu in custu navigadore.\npdfjs-printing-not-ready = Atentzione: su PDF no est istadu carrigadu de su totu pro s'imprenta.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Ativa/disativa sa barra laterale\npdfjs-toggle-sidebar-notification-button =\n    .title = Ativa/disativa sa barra laterale (su documentu cuntenet un'ischema, alligongiados o livellos)\npdfjs-toggle-sidebar-button-label = Ativa/disativa sa barra laterale\npdfjs-document-outline-button-label = Ischema de su documentu\npdfjs-attachments-button =\n    .title = Ammustra alligongiados\npdfjs-attachments-button-label = Alliongiados\npdfjs-layers-button =\n    .title = Ammustra livellos (clic dòpiu pro ripristinare totu is livellos a s'istadu predefinidu)\npdfjs-layers-button-label = Livellos\npdfjs-thumbs-button =\n    .title = Ammustra miniaturas\npdfjs-thumbs-button-label = Miniaturas\npdfjs-current-outline-item-button =\n    .title = Agata s'elementu atuale de s'ischema\npdfjs-current-outline-item-button-label = Elementu atuale de s'ischema\npdfjs-findbar-button =\n    .title = Agata in su documentu\npdfjs-findbar-button-label = Agata\npdfjs-additional-layers = Livellos additzionales\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pàgina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura de sa pàgina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Agata\n    .placeholder = Agata in su documentu…\npdfjs-find-previous-button =\n    .title = Agata s'ocurrèntzia pretzedente de sa fràsia\npdfjs-find-previous-button-label = S'ischeda chi b'est primu\npdfjs-find-next-button =\n    .title = Agata s'ocurrèntzia imbeniente de sa fràsia\npdfjs-find-next-button-label = Imbeniente\npdfjs-find-highlight-checkbox = Evidèntzia totu\npdfjs-find-match-case-checkbox-label = Distinghe intre majùsculas e minùsculas\npdfjs-find-match-diacritics-checkbox-label = Respeta is diacrìticos\npdfjs-find-entire-word-checkbox-label = Faeddos intreos\npdfjs-find-reached-top = S'est lòmpidu a su cumintzu de su documentu, si sighit dae su bàsciu\npdfjs-find-reached-bottom = Acabbu de su documentu, si sighit dae s'artu\npdfjs-find-not-found = Testu no agatadu\n\n## Predefined zoom values\n\npdfjs-page-scale-auto = Ingrandimentu automàticu\npdfjs-page-scale-actual = Mannària reale\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Pàgina { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Faddina in sa càrriga de su PDF.\npdfjs-invalid-file-error = Archìviu PDF non vàlidu o corrùmpidu.\npdfjs-missing-file-error = Ammancat s'archìviu PDF.\npdfjs-unexpected-response-error = Risposta imprevista de su serbidore.\npdfjs-rendering-error = Faddina in sa visualizatzione de sa pàgina.\n\n## Password\n\npdfjs-password-label = Inserta sa crae pro abèrrere custu archìviu PDF.\npdfjs-password-invalid = Sa crae no est curreta. Torra a nche proare.\npdfjs-password-ok-button = Andat bene\npdfjs-password-cancel-button = Annulla\npdfjs-web-fonts-disabled = Is tipografias web sunt disativadas: is tipografias incrustadas a su PDF non podent èssere impreadas.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Testu\npdfjs-editor-free-text-button-label = Testu\npdfjs-editor-ink-button =\n    .title = Disinnu\npdfjs-editor-ink-button-label = Disinnu\npdfjs-editor-stamp-button =\n    .title = Agiunghe o modìfica immàgines\npdfjs-editor-stamp-button-label = Agiunghe o modìfica immàgines\npdfjs-editor-highlight-button =\n    .title = Evidèntzia\npdfjs-editor-highlight-button-label = Evidèntzia\npdfjs-highlight-floating-button1 =\n    .title = Evidèntzia\n    .aria-label = Evidèntzia\npdfjs-highlight-floating-button-label = Evidèntzia\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Boga su disinnu\npdfjs-editor-remove-freetext-button =\n    .title = Boga su testu\npdfjs-editor-remove-stamp-button =\n    .title = Boga s’immàgine\npdfjs-editor-remove-highlight-button =\n    .title = Boga s’evidèntzia\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Colore\npdfjs-editor-free-text-size-input = Mannària\npdfjs-editor-ink-color-input = Colore\npdfjs-editor-ink-thickness-input = Grussària\npdfjs-editor-stamp-add-image-button =\n    .title = Agiunghe un’immàgine\npdfjs-editor-stamp-add-image-button-label = Agiunghe un’immàgine\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Grussària\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Editore de testu\n    .default-content = Cumintza a iscrìere…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Testu alternativu\npdfjs-editor-alt-text-dialog-label = Sèbera un’optzione\npdfjs-editor-alt-text-dialog-description = Su testu alternativu (“alt text”) est ùtile pro persones chi non podent bìdere s’immàgine o cando non benit carrigada.\npdfjs-editor-alt-text-add-description-label = Agiunghe una descritzione\npdfjs-editor-alt-text-cancel-button = Annulla\npdfjs-editor-alt-text-save-button = Sarva\n\n## Color picker\n\npdfjs-editor-colorpicker-button =\n    .title = Modifica su colore\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Colores a disponimentu\npdfjs-editor-colorpicker-yellow =\n    .title = Grogu\npdfjs-editor-colorpicker-green =\n    .title = Birde\npdfjs-editor-colorpicker-blue =\n    .title = Biaitu\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\npdfjs-editor-new-alt-text-missing-button-label = Mancat su testu alternativu\npdfjs-editor-new-alt-text-to-review-button-label = Revisiona su testu alternativu\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Creadu in automàticu: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Cunfiguratzione de su testu alternativu de is immàgines\npdfjs-image-alt-text-settings-button-label = Cunfiguratzione de su testu alternativu de is immàgines\npdfjs-editor-alt-text-settings-dialog-label = Cunfiguratzione de su testu alternativu de is immàgines\npdfjs-editor-alt-text-settings-automatic-title = Testu alternativu automàticu\npdfjs-editor-alt-text-settings-create-model-button-label = Crea testu alternativu in automàticu\npdfjs-editor-alt-text-settings-create-model-description = Cussìgiat descritziones pro agiudare a gente chi non podet bìdere s’immàgine o cando non benit carrigada.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Modellu de IA pro su testu alternativu ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Est esecutadu in locale in manera chi is datos tuos abarrent in privadu. Rechestu pro sa generatzione automàtica de testu alternativu.\npdfjs-editor-alt-text-settings-delete-model-button = Cantzella\npdfjs-editor-alt-text-settings-download-model-button = Iscàrriga\npdfjs-editor-alt-text-settings-downloading-model-button = Iscarrighende…\npdfjs-editor-alt-text-settings-editor-title = Editore de testu alternativu\npdfjs-editor-alt-text-settings-show-dialog-button-label = Mustra deretu s’editore de testu alternativu cando siat agiunta un’immàgine\npdfjs-editor-alt-text-settings-show-dialog-description = T’agiudat a assegurare chi totu is immàgines tuas tèngiant unu testu alternativu.\npdfjs-editor-alt-text-settings-close-button = Serra\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Annulla\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-manager-cancel-button = Annulla\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Cumintza a iscrìere…\n"
  },
  {
    "path": "viewer/locale/scn/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-zoom-out-button =\n    .title = Cchiù nicu\npdfjs-zoom-out-button-label = Cchiù nicu\npdfjs-zoom-in-button =\n    .title = Cchiù granni\npdfjs-zoom-in-button-label = Cchiù granni\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Vista web lesta:\npdfjs-document-properties-linearized-yes = Se\n\n## Print\n\npdfjs-print-progress-close-button = Sfai\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Larghizza dâ pàggina\n\n## Password\n\npdfjs-password-cancel-button = Sfai\n"
  },
  {
    "path": "viewer/locale/sco/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Page Afore\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n    .title = Page Efter\npdfjs-next-button-label = Neist\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Page\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = o { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } o { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zoom Oot\npdfjs-zoom-out-button-label = Zoom Oot\npdfjs-zoom-in-button =\n    .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Flit tae Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n    .title = Prent\npdfjs-print-button-label = Prent\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n    .title = Gang tae First Page\npdfjs-first-page-button-label = Gang tae First Page\npdfjs-last-page-button =\n    .title = Gang tae Lest Page\npdfjs-last-page-button-label = Gang tae Lest Page\npdfjs-page-rotate-cw-button =\n    .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n    .title = Rotate Coonterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Coonterclockwise\npdfjs-cursor-text-select-tool-button =\n    .title = Enable Text Walin Tool\npdfjs-cursor-text-select-tool-button-label = Text Walin Tool\npdfjs-cursor-hand-tool-button =\n    .title = Enable Haun Tool\npdfjs-cursor-hand-tool-button-label = Haun Tool\npdfjs-scroll-vertical-button =\n    .title = Yaise Vertical Scrollin\npdfjs-scroll-vertical-button-label = Vertical Scrollin\npdfjs-scroll-horizontal-button =\n    .title = Yaise Horizontal Scrollin\npdfjs-scroll-horizontal-button-label = Horizontal Scrollin\npdfjs-scroll-wrapped-button =\n    .title = Yaise Wrapped Scrollin\npdfjs-scroll-wrapped-button-label = Wrapped Scrollin\npdfjs-spread-none-button =\n    .title = Dinnae jyn page spreids\npdfjs-spread-none-button-label = Nae Spreids\npdfjs-spread-odd-button =\n    .title = Jyn page spreids stertin wi odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreids\npdfjs-spread-even-button =\n    .title = Jyn page spreids stertin wi even-numbered pages\npdfjs-spread-even-button-label = Even Spreids\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Document Properties…\npdfjs-document-properties-button-label = Document Properties…\npdfjs-document-properties-file-name = File nemme:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subjeck:\npdfjs-document-properties-keywords = Keywirds:\npdfjs-document-properties-creation-date = Date o Makkin:\npdfjs-document-properties-modification-date = Date o Chynges:\npdfjs-document-properties-creator = Makker:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Coont:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Wab View:\npdfjs-document-properties-linearized-yes = Aye\npdfjs-document-properties-linearized-no = Naw\npdfjs-document-properties-close-button = Sneck\n\n## Print\n\npdfjs-print-progress-message = Reddin document fur prentin…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Stap\npdfjs-printing-not-supported = Tak tent: Prentin isnae richt supportit by this stravaiger.\npdfjs-printing-not-ready = Tak tent: The PDF isnae richt loadit fur prentin.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Toggle Sidebaur\npdfjs-toggle-sidebar-notification-button =\n    .title = Toggle Sidebaur (document conteens ootline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebaur\npdfjs-document-outline-button =\n    .title = Kythe Document Ootline (double-click fur tae oot-fauld/in-fauld aw items)\npdfjs-document-outline-button-label = Document Ootline\npdfjs-attachments-button =\n    .title = Kythe Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n    .title = Kythe Layers (double-click fur tae reset aw layers tae the staunart state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n    .title = Kythe Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n    .title = Find Current Ootline Item\npdfjs-current-outline-item-button-label = Current Ootline Item\npdfjs-findbar-button =\n    .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Mair Layers\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Page { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail o Page { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Find\n    .placeholder = Find in document…\npdfjs-find-previous-button =\n    .title = Airt oot the last time this phrase occurred\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n    .title = Airt oot the neist time this phrase occurs\npdfjs-find-next-button-label = Neist\npdfjs-find-highlight-checkbox = Highlicht aw\npdfjs-find-match-case-checkbox-label = Match case\npdfjs-find-entire-word-checkbox-label = Hale Wirds\npdfjs-find-reached-top = Raxed tap o document, went on fae the dowp end\npdfjs-find-reached-bottom = Raxed end o document, went on fae the tap\npdfjs-find-not-found = Phrase no fund\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Page { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = An mishanter tuik place while loadin the PDF.\npdfjs-invalid-file-error = No suithfest or camshauchlet PDF file.\npdfjs-missing-file-error = PDF file tint.\npdfjs-unexpected-response-error = Unexpectit server repone.\npdfjs-rendering-error = A mishanter tuik place while renderin the page.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = Inpit the passwird fur tae open this PDF file.\npdfjs-password-invalid = Passwird no suithfest. Gonnae gie it anither shot.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Stap\npdfjs-web-fonts-disabled = Wab fonts are disabled: cannae yaise embeddit PDF fonts.\n"
  },
  {
    "path": "viewer/locale/si/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = කලින් පිටුව\npdfjs-previous-button-label = කලින්\npdfjs-next-button =\n    .title = ඊළඟ පිටුව\npdfjs-next-button-label = ඊළඟ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = පිටුව\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = කුඩාලනය\npdfjs-zoom-out-button-label = කුඩාලනය\npdfjs-zoom-in-button =\n    .title = විශාලනය\npdfjs-zoom-in-button-label = විශාලනය\npdfjs-zoom-select =\n    .title = විශාල කරන්න\npdfjs-presentation-mode-button =\n    .title = සමර්පණ ප්‍රකාරය වෙත මාරුවන්න\npdfjs-presentation-mode-button-label = සමර්පණ ප්‍රකාරය\npdfjs-open-file-button =\n    .title = ගොනුව අරින්න\npdfjs-open-file-button-label = අරින්න\npdfjs-print-button =\n    .title = මුද්‍රණය\npdfjs-print-button-label = මුද්‍රණය\npdfjs-save-button =\n    .title = සුරකින්න\npdfjs-save-button-label = සුරකින්න\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = බාගන්න\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = බාගන්න\npdfjs-bookmark-button-label = පවතින පිටුව\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = මෙවලම්\npdfjs-tools-button-label = මෙවලම්\npdfjs-first-page-button =\n    .title = මුල් පිටුවට යන්න\npdfjs-first-page-button-label = මුල් පිටුවට යන්න\npdfjs-last-page-button =\n    .title = අවසන් පිටුවට යන්න\npdfjs-last-page-button-label = අවසන් පිටුවට යන්න\npdfjs-cursor-text-select-tool-button =\n    .title = පෙළ තේරීමේ මෙවලම සබල කරන්න\npdfjs-cursor-text-select-tool-button-label = පෙළ තේරීමේ මෙවලම\npdfjs-cursor-hand-tool-button =\n    .title = අත් මෙවලම සබල කරන්න\npdfjs-cursor-hand-tool-button-label = අත් මෙවලම\npdfjs-scroll-page-button =\n    .title = පිටුව අනුචලනය භාවිතය\npdfjs-scroll-page-button-label = පිටුව අනුචලනය\npdfjs-scroll-vertical-button =\n    .title = සිරස් අනුචලනය භාවිතය\npdfjs-scroll-vertical-button-label = සිරස් අනුචලනය\npdfjs-scroll-horizontal-button =\n    .title = තිරස් අනුචලනය භාවිතය\npdfjs-scroll-horizontal-button-label = තිරස් අනුචලනය\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = ලේඛනයේ ගුණාංග…\npdfjs-document-properties-button-label = ලේඛනයේ ගුණාංග…\npdfjs-document-properties-file-name = ගොනුවේ නම:\npdfjs-document-properties-file-size = ගොනුවේ ප්‍රමාණය:\npdfjs-document-properties-title = සිරැසිය:\npdfjs-document-properties-author = කතෘ:\npdfjs-document-properties-subject = මාතෘකාව:\npdfjs-document-properties-keywords = මූල පද:\npdfjs-document-properties-creation-date = සෑදූ දිනය:\npdfjs-document-properties-modification-date = සංශෝධිත දිනය:\npdfjs-document-properties-creator = නිර්මාතෘ:\npdfjs-document-properties-producer = පීඩීඑෆ් සම්පාදක:\npdfjs-document-properties-version = පීඩීඑෆ් අනුවාදය:\npdfjs-document-properties-page-count = පිටු ගණන:\npdfjs-document-properties-page-size = පිටුවේ තරම:\npdfjs-document-properties-page-size-unit-inches = අඟල්\npdfjs-document-properties-page-size-unit-millimeters = මි.මී.\npdfjs-document-properties-page-size-orientation-portrait = සිරස්\npdfjs-document-properties-page-size-orientation-landscape = තිරස්\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width }×{ $height }{ $unit }{ $name }{ $orientation }\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = වේගවත් වියමන දැක්ම:\npdfjs-document-properties-linearized-yes = ඔව්\npdfjs-document-properties-linearized-no = නැහැ\npdfjs-document-properties-close-button = වසන්න\n\n## Print\n\npdfjs-print-progress-message = මුද්‍රණය සඳහා ලේඛනය සූදානම් වෙමින්…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = අවලංගු කරන්න\npdfjs-printing-not-supported = අවවාදයයි: මෙම අතිරික්සුව මුද්‍රණය සඳහා හොඳින් සහාය නොදක්වයි.\npdfjs-printing-not-ready = අවවාදයයි: මුද්‍රණයට පීඩීඑෆ් ගොනුව සම්පූර්ණයෙන් පූරණය වී නැත.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-document-outline-button-label = ලේඛනයේ වටසන\npdfjs-attachments-button =\n    .title = ඇමුණුම් පෙන්වන්න\npdfjs-attachments-button-label = ඇමුණුම්\npdfjs-layers-button =\n    .title = ස්තර පෙන්වන්න (සියළු ස්තර පෙරනිමි තත්‍වයට යළි සැකසීමට දෙවරක් ඔබන්න)\npdfjs-layers-button-label = ස්තර\npdfjs-thumbs-button =\n    .title = සිඟිති රූ පෙන්වන්න\npdfjs-thumbs-button-label = සිඟිති රූ\npdfjs-findbar-button =\n    .title = ලේඛනයෙහි සොයන්න\npdfjs-findbar-button-label = සොයන්න\npdfjs-additional-layers = අතිරේක ස්තර\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = පිටුව { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = පිටුවේ සිඟිත රූව { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = සොයන්න\n    .placeholder = ලේඛනයේ සොයන්න…\npdfjs-find-previous-button =\n    .title = මෙම වැකිකඩ කලින් යෙදුණු ස්ථානය සොයන්න\npdfjs-find-previous-button-label = කලින්\npdfjs-find-next-button =\n    .title = මෙම වැකිකඩ ඊළඟට යෙදෙන ස්ථානය සොයන්න\npdfjs-find-next-button-label = ඊළඟ\npdfjs-find-highlight-checkbox = සියල්ල උද්දීපනය\npdfjs-find-entire-word-checkbox-label = සමස්ත වචන\npdfjs-find-reached-top = ලේඛනයේ මුදුනට ළඟා විය, පහළ සිට ඉහළට\npdfjs-find-reached-bottom = ලේඛනයේ අවසානයට ළඟා විය, ඉහළ සිට පහළට\npdfjs-find-not-found = වැකිකඩ හමු නොවුණි\n\n## Predefined zoom values\n\npdfjs-page-scale-width = පිටුවේ පළල\npdfjs-page-scale-auto = ස්වයංක්‍රීය විශාලනය\npdfjs-page-scale-actual = සැබෑ ප්‍රමාණය\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = පිටුව { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = පීඩීඑෆ් පූරණය කිරීමේදී දෝෂයක් සිදු විය.\npdfjs-invalid-file-error = වලංගු නොවන හෝ හානිවූ පීඩීඑෆ් ගොනුවකි.\npdfjs-missing-file-error = මඟහැරුණු පීඩීඑෆ් ගොනුවකි.\npdfjs-unexpected-response-error = අනපේක්‍ෂිත සේවාදායක ප්‍රතිචාරයකි.\n\n## Password\n\npdfjs-password-label = මෙම පීඩීඑෆ් ගොනුව විවෘත කිරීමට මුරපදය යොදන්න.\npdfjs-password-invalid = වැරදි මුරපදයකි. නැවත උත්සාහ කරන්න.\npdfjs-password-ok-button = හරි\npdfjs-password-cancel-button = අවලංගු\npdfjs-web-fonts-disabled = වියමන අකුරු අබලයි: පීඩීඑෆ් වෙත කාවැද්දූ රුවකුරු භාවිතා කළ නොහැකිය.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = පෙළ\npdfjs-editor-free-text-button-label = පෙළ\npdfjs-editor-ink-button =\n    .title = අඳින්න\npdfjs-editor-ink-button-label = අඳින්න\npdfjs-editor-stamp-button =\n    .title = රූප සංස්කරණය හෝ එක් කරන්න\npdfjs-editor-stamp-button-label = රූප සංස්කරණය හෝ එක් කරන්න\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = වර්ණය\npdfjs-editor-free-text-size-input = තරම\npdfjs-editor-ink-color-input = වර්ණය\npdfjs-editor-ink-thickness-input = ඝණකම\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-mark-decorative-description = මෙය දාර හෝ දිය සලකුණු වැනි අලංකාර රූප සඳහා භාවිතා වේ.\n"
  },
  {
    "path": "viewer/locale/sk/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Predchádzajúca strana\npdfjs-previous-button-label = Predchádzajúca\npdfjs-next-button =\n    .title = Nasledujúca strana\npdfjs-next-button-label = Nasledujúca\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Strana\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = z { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } z { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zmenšiť veľkosť\npdfjs-zoom-out-button-label = Zmenšiť veľkosť\npdfjs-zoom-in-button =\n    .title = Zväčšiť veľkosť\npdfjs-zoom-in-button-label = Zväčšiť veľkosť\npdfjs-zoom-select =\n    .title = Nastavenie veľkosti\npdfjs-presentation-mode-button =\n    .title = Prepnúť na režim prezentácie\npdfjs-presentation-mode-button-label = Režim prezentácie\npdfjs-open-file-button =\n    .title = Otvoriť súbor\npdfjs-open-file-button-label = Otvoriť\npdfjs-print-button =\n    .title = Tlačiť\npdfjs-print-button-label = Tlačiť\npdfjs-save-button =\n    .title = Uložiť\npdfjs-save-button-label = Uložiť\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Stiahnuť\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Stiahnuť\npdfjs-bookmark-button =\n    .title = Aktuálna stránka (zobraziť adresu URL z aktuálnej stránky)\npdfjs-bookmark-button-label = Aktuálna stránka\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Nástroje\npdfjs-tools-button-label = Nástroje\npdfjs-first-page-button =\n    .title = Prejsť na prvú stranu\npdfjs-first-page-button-label = Prejsť na prvú stranu\npdfjs-last-page-button =\n    .title = Prejsť na poslednú stranu\npdfjs-last-page-button-label = Prejsť na poslednú stranu\npdfjs-page-rotate-cw-button =\n    .title = Otočiť v smere hodinových ručičiek\npdfjs-page-rotate-cw-button-label = Otočiť v smere hodinových ručičiek\npdfjs-page-rotate-ccw-button =\n    .title = Otočiť proti smeru hodinových ručičiek\npdfjs-page-rotate-ccw-button-label = Otočiť proti smeru hodinových ručičiek\npdfjs-cursor-text-select-tool-button =\n    .title = Povoliť výber textu\npdfjs-cursor-text-select-tool-button-label = Výber textu\npdfjs-cursor-hand-tool-button =\n    .title = Povoliť nástroj ruka\npdfjs-cursor-hand-tool-button-label = Nástroj ruka\npdfjs-scroll-page-button =\n    .title = Použiť rolovanie po stránkach\npdfjs-scroll-page-button-label = Rolovanie po stránkach\npdfjs-scroll-vertical-button =\n    .title = Používať zvislé posúvanie\npdfjs-scroll-vertical-button-label = Zvislé posúvanie\npdfjs-scroll-horizontal-button =\n    .title = Používať vodorovné posúvanie\npdfjs-scroll-horizontal-button-label = Vodorovné posúvanie\npdfjs-scroll-wrapped-button =\n    .title = Použiť postupné posúvanie\npdfjs-scroll-wrapped-button-label = Postupné posúvanie\npdfjs-spread-none-button =\n    .title = Nezdružovať stránky\npdfjs-spread-none-button-label = Žiadne združovanie\npdfjs-spread-odd-button =\n    .title = Združí stránky a umiestni nepárne stránky vľavo\npdfjs-spread-odd-button-label = Združiť stránky (nepárne vľavo)\npdfjs-spread-even-button =\n    .title = Združí stránky a umiestni párne stránky vľavo\npdfjs-spread-even-button-label = Združiť stránky (párne vľavo)\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Vlastnosti dokumentu…\npdfjs-document-properties-button-label = Vlastnosti dokumentu…\npdfjs-document-properties-file-name = Názov súboru:\npdfjs-document-properties-file-size = Veľkosť súboru:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } bajtov)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtov)\npdfjs-document-properties-title = Názov:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Predmet:\npdfjs-document-properties-keywords = Kľúčové slová:\npdfjs-document-properties-creation-date = Dátum vytvorenia:\npdfjs-document-properties-modification-date = Dátum úpravy:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Aplikácia:\npdfjs-document-properties-producer = Tvorca PDF:\npdfjs-document-properties-version = Verzia PDF:\npdfjs-document-properties-page-count = Počet strán:\npdfjs-document-properties-page-size = Veľkosť stránky:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = na výšku\npdfjs-document-properties-page-size-orientation-landscape = na šírku\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = List\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Rýchle zobrazovanie z webu:\npdfjs-document-properties-linearized-yes = Áno\npdfjs-document-properties-linearized-no = Nie\npdfjs-document-properties-close-button = Zavrieť\n\n## Print\n\npdfjs-print-progress-message = Príprava dokumentu na tlač…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Zrušiť\npdfjs-printing-not-supported = Upozornenie: tlač nie je v tomto prehliadači plne podporovaná.\npdfjs-printing-not-ready = Upozornenie: súbor PDF nie je plne načítaný pre tlač.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Prepnúť bočný panel\npdfjs-toggle-sidebar-notification-button =\n    .title = Prepnúť bočný panel (dokument obsahuje osnovu/prílohy/vrstvy)\npdfjs-toggle-sidebar-button-label = Prepnúť bočný panel\npdfjs-document-outline-button =\n    .title = Zobraziť osnovu dokumentu (dvojitým kliknutím rozbalíte/zbalíte všetky položky)\npdfjs-document-outline-button-label = Osnova dokumentu\npdfjs-attachments-button =\n    .title = Zobraziť prílohy\npdfjs-attachments-button-label = Prílohy\npdfjs-layers-button =\n    .title = Zobraziť vrstvy (dvojitým kliknutím uvediete všetky vrstvy do pôvodného stavu)\npdfjs-layers-button-label = Vrstvy\npdfjs-thumbs-button =\n    .title = Zobraziť miniatúry\npdfjs-thumbs-button-label = Miniatúry\npdfjs-current-outline-item-button =\n    .title = Nájsť aktuálnu položku v osnove\npdfjs-current-outline-item-button-label = Aktuálna položka v osnove\npdfjs-findbar-button =\n    .title = Hľadať v dokumente\npdfjs-findbar-button-label = Hľadať\npdfjs-additional-layers = Ďalšie vrstvy\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Strana { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatúra strany { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Hľadať\n    .placeholder = Hľadať v dokumente…\npdfjs-find-previous-button =\n    .title = Vyhľadať predchádzajúci výskyt reťazca\npdfjs-find-previous-button-label = Predchádzajúce\npdfjs-find-next-button =\n    .title = Vyhľadať ďalší výskyt reťazca\npdfjs-find-next-button-label = Ďalšie\npdfjs-find-highlight-checkbox = Zvýrazniť všetky\npdfjs-find-match-case-checkbox-label = Rozlišovať veľkosť písmen\npdfjs-find-match-diacritics-checkbox-label = Rozlišovať diakritiku\npdfjs-find-entire-word-checkbox-label = Celé slová\npdfjs-find-reached-top = Bol dosiahnutý začiatok stránky, pokračuje sa od konca\npdfjs-find-reached-bottom = Bol dosiahnutý koniec stránky, pokračuje sa od začiatku\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Výskyt { $current } z { $total }\n        [few] Výskyt { $current } z { $total }\n        [many] Výskyt { $current } z { $total }\n       *[other] Výskyt { $current } z { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Viac ako { $limit } výskyt\n        [few] Viac ako { $limit } výskyty\n        [many] Viac ako { $limit } výskytov\n       *[other] Viac ako { $limit } výskytov\n    }\npdfjs-find-not-found = Výraz nebol nájdený\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Na šírku strany\npdfjs-page-scale-fit = Na veľkosť strany\npdfjs-page-scale-auto = Automatická veľkosť\npdfjs-page-scale-actual = Skutočná veľkosť\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Strana { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Počas načítavania dokumentu PDF sa vyskytla chyba.\npdfjs-invalid-file-error = Neplatný alebo poškodený súbor PDF.\npdfjs-missing-file-error = Chýbajúci súbor PDF.\npdfjs-unexpected-response-error = Neočakávaná odpoveď zo servera.\npdfjs-rendering-error = Pri vykresľovaní stránky sa vyskytla chyba.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotácia typu { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Ak chcete otvoriť tento súbor PDF, zadajte jeho heslo.\npdfjs-password-invalid = Heslo nie je platné. Skúste to znova.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Zrušiť\npdfjs-web-fonts-disabled = Webové písma sú vypnuté: nie je možné použiť písma vložené do súboru PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Zmeniť farbu textu\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Kresliť\npdfjs-editor-color-picker-ink-input =\n    .title = Zmeniť farbu kresby\npdfjs-editor-ink-button-label = Kresliť\npdfjs-editor-stamp-button =\n    .title = Pridať alebo upraviť obrázky\npdfjs-editor-stamp-button-label = Pridať alebo upraviť obrázky\npdfjs-editor-highlight-button =\n    .title = Zvýrazniť\npdfjs-editor-highlight-button-label = Zvýrazniť\npdfjs-highlight-floating-button1 =\n    .title = Zvýrazniť\n    .aria-label = Zvýrazniť\npdfjs-highlight-floating-button-label = Zvýrazniť\npdfjs-comment-floating-button =\n    .title = Pridať komentár\n    .aria-label = Pridať komentár\npdfjs-comment-floating-button-label = Pridať komentár\npdfjs-editor-comment-button =\n    .title = Pridať komentár\n    .aria-label = Pridať komentár\npdfjs-editor-comment-button-label = Pridať komentár\npdfjs-editor-signature-button =\n    .title = Pridať podpis\npdfjs-editor-signature-button-label = Pridať podpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Editor zvýraznenia\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Editor kreslenia\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Editor podpisu: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Editor obrázkov\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Odstrániť kresbu\npdfjs-editor-remove-freetext-button =\n    .title = Odstrániť text\npdfjs-editor-remove-stamp-button =\n    .title = Odstrániť obrázok\npdfjs-editor-remove-highlight-button =\n    .title = Odstrániť zvýraznenie\npdfjs-editor-remove-signature-button =\n    .title = Odstrániť podpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Farba\npdfjs-editor-free-text-size-input = Veľkosť\npdfjs-editor-ink-color-input = Farba\npdfjs-editor-ink-thickness-input = Hrúbka\npdfjs-editor-ink-opacity-input = Priehľadnosť\npdfjs-editor-stamp-add-image-button =\n    .title = Pridať obrázok\npdfjs-editor-stamp-add-image-button-label = Pridať obrázok\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Hrúbka\npdfjs-editor-free-highlight-thickness-title =\n    .title = Zmeňte hrúbku pre zvýrazňovanie iných položiek ako textu\npdfjs-editor-add-signature-container =\n    .aria-label = Ovládacie prvky pre podpisy a uložené podpisy\npdfjs-editor-signature-add-signature-button =\n    .title = Pridať nový podpis\npdfjs-editor-signature-add-signature-button-label = Pridať nový podpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Uložený podpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Textový editor\n    .default-content = Začnite písať…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Komentár\n        [few] Komentáre\n        [many] Komentárov\n       *[other] Komentárov\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Zavrieť bočný panel\n    .aria-label = Zavrieť bočný panel\npdfjs-editor-comments-sidebar-close-button-label = Zavrieť bočný panel\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Vidíte niečo pozoruhodné? Zvýraznite to a zanechajte komentár.\npdfjs-editor-comments-sidebar-no-comments-link = Ďalšie informácie\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatívny text\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Upraviť alternatívny text\npdfjs-editor-alt-text-dialog-label = Vyberte možnosť\npdfjs-editor-alt-text-dialog-description = Alternatívny text (alt text) pomáha, keď ľudia obrázok nevidia alebo sa nenačítava.\npdfjs-editor-alt-text-add-description-label = Pridať popis\npdfjs-editor-alt-text-add-description-description = Zamerajte sa na 1-2 vety, ktoré popisujú predmet, prostredie alebo akcie.\npdfjs-editor-alt-text-mark-decorative-label = Označiť ako dekoratívny\npdfjs-editor-alt-text-mark-decorative-description = Používa sa na ozdobné obrázky, ako sú okraje alebo vodoznaky.\npdfjs-editor-alt-text-cancel-button = Zrušiť\npdfjs-editor-alt-text-save-button = Uložiť\npdfjs-editor-alt-text-decorative-tooltip = Označený ako dekoratívny\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Napríklad: „Mladý muž si sadá za stôl, aby sa najedol“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatívny text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Ľavý horný roh – zmena veľkosti\npdfjs-editor-resizer-top-middle =\n    .aria-label = Horný stred – zmena veľkosti\npdfjs-editor-resizer-top-right =\n    .aria-label = Pravý horný roh – zmena veľkosti\npdfjs-editor-resizer-middle-right =\n    .aria-label = Vpravo uprostred – zmena veľkosti\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Pravý dolný roh – zmena veľkosti\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Stred dole – zmena veľkosti\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Ľavý dolný roh – zmena veľkosti\npdfjs-editor-resizer-middle-left =\n    .aria-label = Vľavo uprostred – zmena veľkosti\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Farba zvýraznenia\npdfjs-editor-colorpicker-button =\n    .title = Zmeniť farbu\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Výber farieb\npdfjs-editor-colorpicker-yellow =\n    .title = Žltá\npdfjs-editor-colorpicker-green =\n    .title = Zelená\npdfjs-editor-colorpicker-blue =\n    .title = Modrá\npdfjs-editor-colorpicker-pink =\n    .title = Ružová\npdfjs-editor-colorpicker-red =\n    .title = Červená\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Zobraziť všetko\npdfjs-editor-highlight-show-all-button =\n    .title = Zobraziť všetko\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Upraviť alternatívny text (popis obrázka)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Pridať alternatívny text (popis obrázka)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Sem napíšte svoj popis…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Krátky popis pre ľudí, ktorí nevidia obrázok alebo ak sa obrázok nenačíta.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Tento alternatívny text bol vytvorený automaticky a môže byť nepresný.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Ďalšie informácie\npdfjs-editor-new-alt-text-create-automatically-button-label = Automaticky vytvoriť alternatívny text\npdfjs-editor-new-alt-text-not-now-button = Teraz nie\npdfjs-editor-new-alt-text-error-title = Alternatívny text sa nepodarilo vytvoriť automaticky\npdfjs-editor-new-alt-text-error-description = Napíšte svoj vlastný alternatívny text alebo to skúste znova neskôr.\npdfjs-editor-new-alt-text-error-close-button = Zavrieť\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Sťahuje sa model AI pre alternatívne texty ({ $downloadedSize } z { $totalSize } MB)\n    .aria-valuetext = Sťahuje sa model AI pre alternatívne texty ({ $downloadedSize } z { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatívny text bol pridaný\npdfjs-editor-new-alt-text-added-button-label = Alternatívny text bol pridaný\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Chýbajúci alternatívny text\npdfjs-editor-new-alt-text-missing-button-label = Chýbajúci alternatívny text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Skontrolovať alternatívny text\npdfjs-editor-new-alt-text-to-review-button-label = Skontrolovať alternatívny text\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Vytvorené automaticky: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Nastavenia alternatívneho textu obrázka\npdfjs-image-alt-text-settings-button-label = Nastavenia alternatívneho textu obrázka\npdfjs-editor-alt-text-settings-dialog-label = Nastavenia alternatívneho textu obrázka\npdfjs-editor-alt-text-settings-automatic-title = Automatický alternatívny text\npdfjs-editor-alt-text-settings-create-model-button-label = Automaticky vytvoriť alternatívny text\npdfjs-editor-alt-text-settings-create-model-description = Navrhuje popisy, ktoré pomôžu ľuďom, ktorým sa obrázok nezobrazuje alebo ak sa obrázok nenačíta.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model AI pre alternatívne texty ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Beží lokálne na vašom zariadení, takže vaše dáta zostanú súkromné. Vyžaduje sa pre automatický alternatívny text.\npdfjs-editor-alt-text-settings-delete-model-button = Odstrániť\npdfjs-editor-alt-text-settings-download-model-button = Stiahnuť\npdfjs-editor-alt-text-settings-downloading-model-button = Sťahuje sa…\npdfjs-editor-alt-text-settings-editor-title = Editor alternatívneho textu\npdfjs-editor-alt-text-settings-show-dialog-button-label = Pri pridávaní obrázka ihneď zobraziť editor alternatívneho textu\npdfjs-editor-alt-text-settings-show-dialog-description = Pomáha vám zabezpečiť, aby všetky vaše obrázky mali alternatívny text.\npdfjs-editor-alt-text-settings-close-button = Zavrieť\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Zvýraznenie bolo pridané\npdfjs-editor-freetext-added-alert = Text bol pridaný\npdfjs-editor-ink-added-alert = Kresba bola pridaná\npdfjs-editor-stamp-added-alert = Obrázok bol pridaný\npdfjs-editor-signature-added-alert = Podpis bol pridaný\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Zvýraznenie bolo odstránené\npdfjs-editor-undo-bar-message-freetext = Text bol odstránený\npdfjs-editor-undo-bar-message-ink = Kreslenie bolo odstránené\npdfjs-editor-undo-bar-message-stamp = Obrázok bol odstránený\npdfjs-editor-undo-bar-message-signature = Podpis bol odstránený\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anotácia odstránená\n        [few] { $count } anotácie odstránené\n        [many] { $count } anotácií odstránených\n       *[other] { $count } anotácií odstránených\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Späť\npdfjs-editor-undo-bar-undo-button-label = Späť\npdfjs-editor-undo-bar-close-button =\n    .title = Zavrieť\npdfjs-editor-undo-bar-close-button-label = Zavrieť\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Toto okno umožňuje používateľovi vytvoriť podpis, ktorý sa pridá do dokumentu PDF. Používateľ môže upraviť meno (ktoré zároveň slúži ako alternatívny text) a voliteľne uložiť podpis, ak ho plánuje v budúcnosti znova použiť.\npdfjs-editor-add-signature-dialog-title = Pridať podpis\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typ\n    .title = Typ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Kresliť\n    .title = Kresliť\npdfjs-editor-add-signature-image-button = Obrázok\n    .title = Obrázok\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Zadajte svoj podpis\n    .placeholder = Zadajte svoj podpis\npdfjs-editor-add-signature-draw-placeholder = Nakreslite svoj podpis\npdfjs-editor-add-signature-draw-thickness-range-label = Hrúbka\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Hrúbka ceruzky: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Sem presuňte súbor, ktorý chcete nahrať\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Alebo vyberte súbor s obrázkom\n       *[other] Alebo vyberte súbor s obrázkom\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Popis (alternatívny text)\npdfjs-editor-add-signature-description-input =\n    .title = Popis (alternatívny text)\npdfjs-editor-add-signature-description-default-when-drawing = Podpis\npdfjs-editor-add-signature-clear-button-label = Vymazať podpis\npdfjs-editor-add-signature-clear-button =\n    .title = Vymazať podpis\npdfjs-editor-add-signature-save-checkbox = Uložiť podpis\npdfjs-editor-add-signature-save-warning-message = Dosiahli ste limit 5 uložených podpisov. Ak chcete uložiť ďalší, jeden odstráňte.\npdfjs-editor-add-signature-image-upload-error-title = Obrázok sa nepodarilo nahrať\npdfjs-editor-add-signature-image-upload-error-description = Skontrolujte sieťové pripojenie alebo skúste iný obrázok.\npdfjs-editor-add-signature-image-no-data-error-title = Tento obrázok sa nedá previesť na podpis\npdfjs-editor-add-signature-image-no-data-error-description = Skúste nahrať iný obrázok.\npdfjs-editor-add-signature-error-close-button = Zavrieť\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Zrušiť\npdfjs-editor-add-signature-add-button = Pridať\npdfjs-editor-edit-signature-update-button = Aktualizovať\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Upraviť komentár\npdfjs-editor-edit-comment-popup-button =\n    .title = Upraviť komentár\npdfjs-editor-delete-comment-popup-button-label = Odstrániť komentár\npdfjs-editor-delete-comment-popup-button =\n    .title = Odstrániť komentár\npdfjs-show-comment-button =\n    .title = Zobraziť komentár\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Akcie\npdfjs-editor-edit-comment-actions-button =\n    .title = Akcie\npdfjs-editor-edit-comment-close-button-label = Zavrieť\npdfjs-editor-edit-comment-close-button =\n    .title = Zavrieť\npdfjs-editor-edit-comment-actions-edit-button-label = Upraviť\npdfjs-editor-edit-comment-actions-delete-button-label = Odstrániť\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Zadajte svoj komentár\npdfjs-editor-edit-comment-manager-cancel-button = Zrušiť\npdfjs-editor-edit-comment-manager-save-button = Uložiť\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Upraviť komentár\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Aktualizovať\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Pridať komentár\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Pridať\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Začnite písať…\npdfjs-editor-edit-comment-dialog-cancel-button = Zrušiť\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Upraviť komentár\npdfjs-editor-add-comment-button =\n    .title = Pridať komentár\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Odstrániť uložený podpis\npdfjs-editor-delete-signature-button-label1 = Odstrániť uložený podpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Upraviť popis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Upraviť popis\n"
  },
  {
    "path": "viewer/locale/skr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = پچھلا ورقہ\npdfjs-previous-button-label = پچھلا\npdfjs-next-button =\n    .title = اڳلا ورقہ\npdfjs-next-button-label = اڳلا\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = ورقہ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } دا\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } دا { $pagesCount })\npdfjs-zoom-out-button =\n    .title = زوم آؤٹ\npdfjs-zoom-out-button-label = زوم آؤٹ\npdfjs-zoom-in-button =\n    .title = زوم اِن\npdfjs-zoom-in-button-label = زوم اِن\npdfjs-zoom-select =\n    .title = زوم\npdfjs-presentation-mode-button =\n    .title = پریزنٹیشن موڈ تے سوئچ کرو\npdfjs-presentation-mode-button-label = پریزنٹیشن موڈ\npdfjs-open-file-button =\n    .title = فائل کھولو\npdfjs-open-file-button-label = کھولو\npdfjs-print-button =\n    .title = چھاپو\npdfjs-print-button-label = چھاپو\npdfjs-save-button =\n    .title = ہتھیکڑا کرو\npdfjs-save-button-label = ہتھیکڑا کرو\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ڈاؤن لوڈ\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ڈاؤن لوڈ\npdfjs-bookmark-button =\n    .title = موجودہ ورقہ (موجودہ ورقے کنوں یوآرایل ݙیکھو)\npdfjs-bookmark-button-label = موجودہ ورقہ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = اوزار\npdfjs-tools-button-label = اوزار\npdfjs-first-page-button =\n    .title = پہلے ورقے تے ونڄو\npdfjs-first-page-button-label = پہلے ورقے تے ونڄو\npdfjs-last-page-button =\n    .title = چھیکڑی ورقے تے ونڄو\npdfjs-last-page-button-label = چھیکڑی ورقے تے ونڄو\npdfjs-page-rotate-cw-button =\n    .title = گھڑی وانگوں گھماؤ\npdfjs-page-rotate-cw-button-label = گھڑی وانگوں گھماؤ\npdfjs-page-rotate-ccw-button =\n    .title = گھڑی تے اُپٹھ گھماؤ\npdfjs-page-rotate-ccw-button-label = گھڑی تے اُپٹھ گھماؤ\npdfjs-cursor-text-select-tool-button =\n    .title = متن منتخب کݨ والا آلہ فعال بݨاؤ\npdfjs-cursor-text-select-tool-button-label = متن منتخب کرݨ والا آلہ\npdfjs-cursor-hand-tool-button =\n    .title = ہینڈ ٹول فعال بݨاؤ\npdfjs-cursor-hand-tool-button-label = ہینڈ ٹول\npdfjs-scroll-page-button =\n    .title = پیج سکرولنگ استعمال کرو\npdfjs-scroll-page-button-label = پیج سکرولنگ\npdfjs-scroll-vertical-button =\n    .title = عمودی سکرولنگ استعمال کرو\npdfjs-scroll-vertical-button-label = عمودی سکرولنگ\npdfjs-scroll-horizontal-button =\n    .title = افقی سکرولنگ استعمال کرو\npdfjs-scroll-horizontal-button-label = افقی سکرولنگ\npdfjs-scroll-wrapped-button =\n    .title = ویڑھی ہوئی سکرولنگ استعمال کرو\npdfjs-scroll-wrapped-button-label = وہڑھی ہوئی سکرولنگ\npdfjs-spread-none-button =\n    .title = پیج سپریڈز وِچ شامل نہ تھیوو۔\npdfjs-spread-none-button-label = کوئی پولھ کائنی\npdfjs-spread-odd-button =\n    .title = طاق نمبر والے ورقیاں دے نال شروع تھیوݨ والے پیج سپریڈز وِچ شامل تھیوو۔\npdfjs-spread-odd-button-label = تاک پھیلاؤ\npdfjs-spread-even-button =\n    .title = جفت نمر والے ورقیاں نال شروع تھیوݨ والے پیج سپریڈز وِ شامل تھیوو۔\npdfjs-spread-even-button-label = جفت پھیلاؤ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = دستاویز خواص…\npdfjs-document-properties-button-label = دستاویز خواص …\npdfjs-document-properties-file-name = فائل دا ناں:\npdfjs-document-properties-file-size = فائل دا سائز:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } بائٹاں)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } بائٹاں)\npdfjs-document-properties-title = عنوان:\npdfjs-document-properties-author = تخلیق کار:\npdfjs-document-properties-subject = موضوع:\npdfjs-document-properties-keywords = کلیدی الفاظ:\npdfjs-document-properties-creation-date = تخلیق دی تاریخ:\npdfjs-document-properties-modification-date = ترمیم دی تاریخ:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = تخلیق کار:\npdfjs-document-properties-producer = PDF پیدا کار:\npdfjs-document-properties-version = PDF ورژن:\npdfjs-document-properties-page-count = ورقہ شماری:\npdfjs-document-properties-page-size = ورقہ دی سائز:\npdfjs-document-properties-page-size-unit-inches = وِچ\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = عمودی انداز\npdfjs-document-properties-page-size-orientation-landscape = افقى انداز\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = لیٹر\npdfjs-document-properties-page-size-name-legal = قنونی\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = تکھا ویب نظارہ:\npdfjs-document-properties-linearized-yes = جیا\npdfjs-document-properties-linearized-no = کو\npdfjs-document-properties-close-button = بند کرو\n\n## Print\n\npdfjs-print-progress-message = چھاپݨ کیتے دستاویز تیار تھیندے پئے ہن …\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = منسوخ کرو\npdfjs-printing-not-supported = چتاوݨی: چھپائی ایں براؤزر تے پوری طراں معاونت شدہ کائنی۔\npdfjs-printing-not-ready = چتاوݨی: PDF چھپائی کیتے پوری طراں لوڈ نئیں تھئی۔\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = سائیڈ بار ٹوگل کرو\npdfjs-toggle-sidebar-notification-button =\n    .title = سائیڈ بار ٹوگل کرو (دستاویز وِچ آؤٹ لائن/ منسلکات/ پرتاں شامل ہن)\npdfjs-toggle-sidebar-button-label = سائیڈ بار ٹوگل کرو\npdfjs-document-outline-button =\n    .title = دستاویز دا خاکہ ݙکھاؤ (تمام آئٹمز کوں پھیلاوݨ/سنگوڑݨ کیتے ڈبل کلک کرو)\npdfjs-document-outline-button-label = دستاویز آؤٹ لائن\npdfjs-attachments-button =\n    .title = نتھیاں ݙکھاؤ\npdfjs-attachments-button-label = منسلکات\npdfjs-layers-button =\n    .title = پرتاں ݙکھاؤ (تمام پرتاں کوں ڈیفالٹ حالت وِچ دوبارہ ترتیب ݙیوݨ کیتے ڈبل کلک کرو)\npdfjs-layers-button-label = پرتاں\npdfjs-thumbs-button =\n    .title = تھمبنیل ݙکھاؤ\npdfjs-thumbs-button-label = تھمبنیلز\npdfjs-current-outline-item-button =\n    .title = موجودہ آؤٹ لائن آئٹم لبھو\npdfjs-current-outline-item-button-label = موجودہ آؤٹ لائن آئٹم\npdfjs-findbar-button =\n    .title = دستاویز وِچ لبھو\npdfjs-findbar-button-label = لبھو\npdfjs-additional-layers = اضافی پرتاں\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = ورقہ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = ورقے دا تھمبنیل { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = لبھو\n    .placeholder = دستاویز وِچ لبھو …\npdfjs-find-previous-button =\n    .title = فقرے دا پچھلا واقعہ لبھو\npdfjs-find-previous-button-label = پچھلا\npdfjs-find-next-button =\n    .title = فقرے دا اڳلا واقعہ لبھو\npdfjs-find-next-button-label = اڳلا\npdfjs-find-highlight-checkbox = تمام نشابر کرو\npdfjs-find-match-case-checkbox-label = حروف مشابہ کرو\npdfjs-find-match-diacritics-checkbox-label = ڈائیکرٹکس مشابہ کرو\npdfjs-find-entire-word-checkbox-label = تمام الفاظ\npdfjs-find-reached-top = ورقے دے شروع تے پُج ڳیا، تلوں جاری کیتا ڳیا\npdfjs-find-reached-bottom = ورقے دے پاند تے پُڄ ڳیا، اُتوں شروع کیتا ڳیا\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $total } وِچوں { $current } مشابہ\n       *[other] { $total } وِچوں { $current } مشابے\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] { $limit } توں ودھ مماثلت۔\n       *[other] { $limit } توں ودھ مماثلتاں۔\n    }\npdfjs-find-not-found = فقرہ نئیں ملیا\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ورقے دی چوڑائی\npdfjs-page-scale-fit = ورقہ فٹنگ\npdfjs-page-scale-auto = آپوں آپ زوم\npdfjs-page-scale-actual = اصل میچا\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = ورقہ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF لوڈ کریندے ویلھے نقص آ ڳیا۔\npdfjs-invalid-file-error = غلط یا خراب شدہ PDF فائل۔\npdfjs-missing-file-error = PDF فائل غائب ہے۔\npdfjs-unexpected-response-error = سرور دا غیر متوقع جواب۔\npdfjs-rendering-error = ورقہ رینڈر کریندے ویلھے ہک خرابی پیش آڳئی۔\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } تشریح]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = ایہ PDF فائل کھولݨ کیتے پاس ورڈ درج کرو۔\npdfjs-password-invalid = غلط پاس ورڈ: براہ مہربانی ولدا کوشش کرو۔\npdfjs-password-ok-button = ٹھیک ہے\npdfjs-password-cancel-button = منسوخ کرو\npdfjs-web-fonts-disabled = ویب فونٹس غیر فعال ہن: ایمبیڈڈ PDF  فونٹس استعمال کرݨ کنوں قاصر ہن\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = متن\npdfjs-editor-free-text-button-label = متن\npdfjs-editor-ink-button =\n    .title = چھکو\npdfjs-editor-ink-button-label = چھکو\npdfjs-editor-stamp-button =\n    .title = تصویراں کوں شامل کرو یا ترمیم کرو\npdfjs-editor-stamp-button-label = تصویراں کوں شامل کرو یا ترمیم کرو\npdfjs-editor-highlight-button =\n    .title = نمایاں کرو\npdfjs-editor-highlight-button-label = نمایاں کرو\npdfjs-highlight-floating-button1 =\n    .title = نمایاں کرو\n    .aria-label = نمایاں کرو\npdfjs-highlight-floating-button-label = نمایاں کرو\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = ڈرائینگ ہٹاؤ\npdfjs-editor-remove-freetext-button =\n    .title = متن ہٹاؤ\npdfjs-editor-remove-stamp-button =\n    .title = تصویر ہٹاؤ\npdfjs-editor-remove-highlight-button =\n    .title = نمایاں ہٹاؤ\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = رنگ\npdfjs-editor-free-text-size-input = سائز\npdfjs-editor-ink-color-input = رنگ\npdfjs-editor-ink-thickness-input = ٹھولھ\npdfjs-editor-ink-opacity-input = دھندلاپن\npdfjs-editor-stamp-add-image-button =\n    .title = تصویر شامل کرو\npdfjs-editor-stamp-add-image-button-label = تصویر شامل کرو\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = مُٹاݨ\npdfjs-editor-free-highlight-thickness-title =\n    .title = متن توں ان٘ج ٻئے شئیں کوں نمایاں کرݨ ویلے مُٹاݨ کوں بدلو\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alt متن\npdfjs-editor-alt-text-dialog-label = ہِک اختیار چُݨو\npdfjs-editor-alt-text-dialog-description = Alt متن (متبادل متن) اِیں ویلے مَدَت کرین٘دا ہِے جہڑیلے لوک تصویر کوں نِھیں ݙیکھ سڳدے یا جہڑیلے اِیہ لوڈ کائنی تِھین٘دا۔\npdfjs-editor-alt-text-add-description-label = تفصیل شامل کرو\npdfjs-editor-alt-text-add-description-description = 1-2 جملیاں دا مقصد جہڑے موضوع، ترتیب، یا اعمال کوں بیان کرین٘دے ہِن۔\npdfjs-editor-alt-text-mark-decorative-label = آرائشی طور تے نشان زد کرو\npdfjs-editor-alt-text-mark-decorative-description = اِیہ آرائشی تصویراں کِیتے استعمال تِھین٘دا ہِے، جیویں بارڈر یا واٹر مارکس۔\npdfjs-editor-alt-text-cancel-button = منسوخ\npdfjs-editor-alt-text-save-button = محفوظ\npdfjs-editor-alt-text-decorative-tooltip = آرائشی دے طور تے نشان زد تِھی ڳِیا\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = مثال دے طور تے، \"ہِک جؤان کھاݨاں کھاوݨ کِیتے میز اُتّے ٻیٹھا ہِے\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alt متن\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = اُتلی کَھٻّی نُکّڑ — سائز بدلو\npdfjs-editor-resizer-top-middle =\n    .aria-label = اُتلا وِچلا — سائز بدلو\npdfjs-editor-resizer-top-right =\n    .aria-label = اُتلی سَڄّی نُکَّڑ — سائز بدلو\npdfjs-editor-resizer-middle-right =\n    .aria-label = وِچلا سڄّا — سائز بدلو\npdfjs-editor-resizer-bottom-right =\n    .aria-label = تلوِیں سَڄّی نُکَّڑ — سائز بدلو\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = تلواں وِچلا — سائز بدلو\npdfjs-editor-resizer-bottom-left =\n    .aria-label = تلوِیں کَھٻّی نُکّڑ — سائز بدلو\npdfjs-editor-resizer-middle-left =\n    .aria-label = وِچلا کَھٻّا — سائز بدلو\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = نشابر رنگ\npdfjs-editor-colorpicker-button =\n    .title = رنگ بدلو\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = رنگ اختیارات\npdfjs-editor-colorpicker-yellow =\n    .title = پیلا\npdfjs-editor-colorpicker-green =\n    .title = ساوا\npdfjs-editor-colorpicker-blue =\n    .title = نیلا\npdfjs-editor-colorpicker-pink =\n    .title = گلابی\npdfjs-editor-colorpicker-red =\n    .title = لال\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = سارے ݙکھاؤ\npdfjs-editor-highlight-show-all-button =\n    .title = سارے ݙکھاؤ\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = آلٹ عبارت وچ تبدیلی کرو (تصویر تفصیل)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = آلٹ عبارت شامل کرو (تصویر تفصیل)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = اتھ آپݨی وضاحت لکھو۔۔۔\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = اُنہاں لوکاں کیتے مختصر تفصیل جہڑے تصویر کائنی ݙیکھ سڳدے یا ڄݙݨ تصویر لوڈ کائبی تھیندی۔\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = آلٹ عبارت خودکار تخلیق تھئی ہے تے غلط تھی سڳدی ہے۔\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = ٻیا سِکھو\npdfjs-editor-new-alt-text-create-automatically-button-label = آلٹ عبارت خودکار بݨاؤ\npdfjs-editor-new-alt-text-not-now-button = ہݨ کائناں\npdfjs-editor-new-alt-text-error-title = آلٹ عبارت خودکار نہ بݨاؤ\npdfjs-editor-new-alt-text-error-description = سوہݨا، آپݨی آلٹ عبارت لکھو یا ولدا بعد وچ کوشش کرو۔\npdfjs-editor-new-alt-text-error-close-button = بند کرو\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = آلٹ عبارت اے آئی ماڈل({ $totalSize }ایم بی دے { $downloadedSize }) ڈاؤن لوڈ تھیندا پئے\n    .aria-valuetext = آلٹ عبارت اے آئی ماڈل({ $totalSize }ایم بی دے { $downloadedSize }) ڈاؤن لوڈ تھیندا پئے\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = آلٹ عبارت شامل تھی ڳئی\npdfjs-editor-new-alt-text-added-button-label = آلٹ عبارت شامل تھی ڳئی\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = متبادل عبارت غائب ہے\npdfjs-editor-new-alt-text-missing-button-label = متبادل عبارت غائب ہے\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = alt متن تے نظرثانی کرو\npdfjs-editor-new-alt-text-to-review-button-label = alt متن تے نظرثانی کرو\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = خودکار تخلیق تھئی: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = تصویر آلٹ عبارت ترتیباں\npdfjs-image-alt-text-settings-button-label = تصویر آلٹ عبارت ترتیباں\npdfjs-editor-alt-text-settings-dialog-label = تصویر آلٹ عبارت ترتیباں\npdfjs-editor-alt-text-settings-automatic-title = خودکار آلٹ عبارت\npdfjs-editor-alt-text-settings-create-model-button-label = آلٹ عبارت خودکار بݨاؤ\npdfjs-editor-alt-text-settings-create-model-description = اُنہاں لوکاں دی مدد کیتے  تفصیل تجویز کرو جہڑے تصویر کائنی ݙیکھ سڳدے یا ڄݙݨ تصویر لوڈ کائبی تھیندی۔\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = آلٹ عبارت اے آئی ماڈل ({ $totalSize } ایم بی)\npdfjs-editor-alt-text-settings-ai-model-description = تہاݙی ڈیوائس تے مقامی طور تے چلدا ہے تاں جو تہاݙا ڈیٹا نجی رہوے۔ خودکار آلٹ عبارت کیتے ضروری ہے۔\npdfjs-editor-alt-text-settings-delete-model-button = مٹاؤ\npdfjs-editor-alt-text-settings-download-model-button = ڈاؤن لوڈ\npdfjs-editor-alt-text-settings-downloading-model-button = ڈاؤن لوڈ تھیندا پئے …\npdfjs-editor-alt-text-settings-editor-title = متبادل ٹیکسٹ ایڈیٹر\npdfjs-editor-alt-text-settings-show-dialog-button-label = تصویر شامل کرݨ ویلے فوری طور تے آلٹ ٹیکسٹ ایڈیٹر ݙکھاؤ\npdfjs-editor-alt-text-settings-show-dialog-description = ایہ تہاکوں یقینی بݨاوݨ وچ مدد کریندے جو تہاݙیاں ساریاں تصویراں وچ آلٹ عبارت ہے۔\npdfjs-editor-alt-text-settings-close-button = بند کرو\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-undo-button =\n    .title = کیتا اݨ کیتا\npdfjs-editor-undo-bar-undo-button-label = کیتا اݨ کیتا\npdfjs-editor-undo-bar-close-button =\n    .title = بند کرو\npdfjs-editor-undo-bar-close-button-label = بند کرو\n"
  },
  {
    "path": "viewer/locale/sl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Prejšnja stran\npdfjs-previous-button-label = Nazaj\npdfjs-next-button =\n    .title = Naslednja stran\npdfjs-next-button-label = Naprej\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Stran\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = od { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } od { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Pomanjšaj\npdfjs-zoom-out-button-label = Pomanjšaj\npdfjs-zoom-in-button =\n    .title = Povečaj\npdfjs-zoom-in-button-label = Povečaj\npdfjs-zoom-select =\n    .title = Povečava\npdfjs-presentation-mode-button =\n    .title = Preklopi v način predstavitve\npdfjs-presentation-mode-button-label = Način predstavitve\npdfjs-open-file-button =\n    .title = Odpri datoteko\npdfjs-open-file-button-label = Odpri\npdfjs-print-button =\n    .title = Natisni\npdfjs-print-button-label = Natisni\npdfjs-save-button =\n    .title = Shrani\npdfjs-save-button-label = Shrani\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Prenesi\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Prenesi\npdfjs-bookmark-button =\n    .title = Trenutna stran (prikaži URL, ki vodi do trenutne strani)\npdfjs-bookmark-button-label = Na trenutno stran\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Orodja\npdfjs-tools-button-label = Orodja\npdfjs-first-page-button =\n    .title = Pojdi na prvo stran\npdfjs-first-page-button-label = Pojdi na prvo stran\npdfjs-last-page-button =\n    .title = Pojdi na zadnjo stran\npdfjs-last-page-button-label = Pojdi na zadnjo stran\npdfjs-page-rotate-cw-button =\n    .title = Zavrti v smeri urnega kazalca\npdfjs-page-rotate-cw-button-label = Zavrti v smeri urnega kazalca\npdfjs-page-rotate-ccw-button =\n    .title = Zavrti v nasprotni smeri urnega kazalca\npdfjs-page-rotate-ccw-button-label = Zavrti v nasprotni smeri urnega kazalca\npdfjs-cursor-text-select-tool-button =\n    .title = Omogoči orodje za izbor besedila\npdfjs-cursor-text-select-tool-button-label = Orodje za izbor besedila\npdfjs-cursor-hand-tool-button =\n    .title = Omogoči roko\npdfjs-cursor-hand-tool-button-label = Roka\npdfjs-scroll-page-button =\n    .title = Uporabi drsenje po strani\npdfjs-scroll-page-button-label = Drsenje po strani\npdfjs-scroll-vertical-button =\n    .title = Uporabi navpično drsenje\npdfjs-scroll-vertical-button-label = Navpično drsenje\npdfjs-scroll-horizontal-button =\n    .title = Uporabi vodoravno drsenje\npdfjs-scroll-horizontal-button-label = Vodoravno drsenje\npdfjs-scroll-wrapped-button =\n    .title = Uporabi ovito drsenje\npdfjs-scroll-wrapped-button-label = Ovito drsenje\npdfjs-spread-none-button =\n    .title = Ne združuj razponov strani\npdfjs-spread-none-button-label = Brez razponov\npdfjs-spread-odd-button =\n    .title = Združuj razpone strani z začetkom pri lihih straneh\npdfjs-spread-odd-button-label = Lihi razponi\npdfjs-spread-even-button =\n    .title = Združuj razpone strani z začetkom pri sodih straneh\npdfjs-spread-even-button-label = Sodi razponi\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Lastnosti dokumenta …\npdfjs-document-properties-button-label = Lastnosti dokumenta …\npdfjs-document-properties-file-name = Ime datoteke:\npdfjs-document-properties-file-size = Velikost datoteke:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajtov)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajtov)\npdfjs-document-properties-title = Ime:\npdfjs-document-properties-author = Avtor:\npdfjs-document-properties-subject = Tema:\npdfjs-document-properties-keywords = Ključne besede:\npdfjs-document-properties-creation-date = Datum nastanka:\npdfjs-document-properties-modification-date = Datum spremembe:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Ustvaril:\npdfjs-document-properties-producer = Izdelovalec PDF:\npdfjs-document-properties-version = Različica PDF:\npdfjs-document-properties-page-count = Število strani:\npdfjs-document-properties-page-size = Velikost strani:\npdfjs-document-properties-page-size-unit-inches = palcev\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = pokončno\npdfjs-document-properties-page-size-orientation-landscape = ležeče\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Pismo\npdfjs-document-properties-page-size-name-legal = Pravno\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Hitri spletni ogled:\npdfjs-document-properties-linearized-yes = Da\npdfjs-document-properties-linearized-no = Ne\npdfjs-document-properties-close-button = Zapri\n\n## Print\n\npdfjs-print-progress-message = Priprava dokumenta na tiskanje …\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress } %\npdfjs-print-progress-close-button = Prekliči\npdfjs-printing-not-supported = Opozorilo: ta brskalnik ne podpira vseh možnosti tiskanja.\npdfjs-printing-not-ready = Opozorilo: PDF ni v celoti naložen za tiskanje.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Preklopi stransko vrstico\npdfjs-toggle-sidebar-notification-button =\n    .title = Preklopi stransko vrstico (dokument vsebuje oris/priponke/plasti)\npdfjs-toggle-sidebar-button-label = Preklopi stransko vrstico\npdfjs-document-outline-button =\n    .title = Prikaži oris dokumenta (dvokliknite za razširitev/strnitev vseh predmetov)\npdfjs-document-outline-button-label = Oris dokumenta\npdfjs-attachments-button =\n    .title = Prikaži priponke\npdfjs-attachments-button-label = Priponke\npdfjs-layers-button =\n    .title = Prikaži plasti (dvokliknite za ponastavitev vseh plasti na privzeto stanje)\npdfjs-layers-button-label = Plasti\npdfjs-thumbs-button =\n    .title = Prikaži sličice\npdfjs-thumbs-button-label = Sličice\npdfjs-current-outline-item-button =\n    .title = Najdi trenutni predmet orisa\npdfjs-current-outline-item-button-label = Trenutni predmet orisa\npdfjs-findbar-button =\n    .title = Iskanje po dokumentu\npdfjs-findbar-button-label = Najdi\npdfjs-additional-layers = Dodatne plasti\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Stran { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Sličica strani { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Najdi\n    .placeholder = Najdi v dokumentu …\npdfjs-find-previous-button =\n    .title = Najdi prejšnjo ponovitev iskanega\npdfjs-find-previous-button-label = Najdi nazaj\npdfjs-find-next-button =\n    .title = Najdi naslednjo ponovitev iskanega\npdfjs-find-next-button-label = Najdi naprej\npdfjs-find-highlight-checkbox = Označi vse\npdfjs-find-match-case-checkbox-label = Razlikuj velike/male črke\npdfjs-find-match-diacritics-checkbox-label = Razlikuj diakritične znake\npdfjs-find-entire-word-checkbox-label = Cele besede\npdfjs-find-reached-top = Dosežen začetek dokumenta iz smeri konca\npdfjs-find-reached-bottom = Dosežen konec dokumenta, nadaljevanje od začetka\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] Zadetek { $current } od { $total }\n        [two] Zadetek { $current } od { $total }\n        [few] Zadetek { $current } od { $total }\n       *[other] Zadetek { $current } od { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Več kot { $limit } zadetek\n        [two] Več kot { $limit } zadetka\n        [few] Več kot { $limit } zadetki\n       *[other] Več kot { $limit } zadetkov\n    }\npdfjs-find-not-found = Iskanega ni mogoče najti\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Širina strani\npdfjs-page-scale-fit = Prilagodi stran\npdfjs-page-scale-auto = Samodejno\npdfjs-page-scale-actual = Dejanska velikost\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale } %\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Stran { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Med nalaganjem datoteke PDF je prišlo do napake.\npdfjs-invalid-file-error = Neveljavna ali pokvarjena datoteka PDF.\npdfjs-missing-file-error = Ni datoteke PDF.\npdfjs-unexpected-response-error = Nepričakovan odgovor strežnika.\npdfjs-rendering-error = Med pripravljanjem strani je prišlo do napake!\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Opomba vrste { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Vnesite geslo za odpiranje te datoteke PDF.\npdfjs-password-invalid = Neveljavno geslo. Poskusite znova.\npdfjs-password-ok-button = V redu\npdfjs-password-cancel-button = Prekliči\npdfjs-web-fonts-disabled = Spletne pisave so onemogočene: vgradnih pisav za PDF ni mogoče uporabiti.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Besedilo\npdfjs-editor-color-picker-free-text-input =\n    .title = Spremeni barvo besedila\npdfjs-editor-free-text-button-label = Besedilo\npdfjs-editor-ink-button =\n    .title = Riši\npdfjs-editor-color-picker-ink-input =\n    .title = Spremeni barvo risbe\npdfjs-editor-ink-button-label = Riši\npdfjs-editor-stamp-button =\n    .title = Dodajanje ali urejanje slik\npdfjs-editor-stamp-button-label = Dodajanje ali urejanje slik\npdfjs-editor-highlight-button =\n    .title = Označevalnik\npdfjs-editor-highlight-button-label = Označevalnik\npdfjs-highlight-floating-button1 =\n    .title = Označi\n    .aria-label = Označi\npdfjs-highlight-floating-button-label = Označi\npdfjs-comment-floating-button =\n    .title = Komentiraj\n    .aria-label = Komentiraj\npdfjs-comment-floating-button-label = Komentiraj\npdfjs-editor-comment-button =\n    .title = Komentiraj\n    .aria-label = Komentiraj\npdfjs-editor-comment-button-label = Komentiraj\npdfjs-editor-signature-button =\n    .title = Dodaj podpis\npdfjs-editor-signature-button-label = Dodaj podpis\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Urejevalnik označb\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Urejevalnik risb\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Urejevalnik podpisov: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Urejevalnik slik\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Odstrani risbo\npdfjs-editor-remove-freetext-button =\n    .title = Odstrani besedilo\npdfjs-editor-remove-stamp-button =\n    .title = Odstrani sliko\npdfjs-editor-remove-highlight-button =\n    .title = Odstrani označbo\npdfjs-editor-remove-signature-button =\n    .title = Odstrani podpis\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Barva\npdfjs-editor-free-text-size-input = Velikost\npdfjs-editor-ink-color-input = Barva\npdfjs-editor-ink-thickness-input = Debelina\npdfjs-editor-ink-opacity-input = Neprosojnost\npdfjs-editor-stamp-add-image-button =\n    .title = Dodaj sliko\npdfjs-editor-stamp-add-image-button-label = Dodaj sliko\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Debelina\npdfjs-editor-free-highlight-thickness-title =\n    .title = Spremeni debelino pri označevanju nebesedilnih elementov\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrolniki za podpise in shranjeni podpisi\npdfjs-editor-signature-add-signature-button =\n    .title = Dodaj nov podpis\npdfjs-editor-signature-add-signature-button-label = Dodaj nov podpis\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Shranjen podpis: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Urejevalnik besedila\n    .default-content = Začnite tipkati …\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Komentar\n        [two] Komentarja\n        [few] Komentarji\n       *[other] Komentarji\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Zapri stransko vrstico\n    .aria-label = Zapri stransko vrstico\npdfjs-editor-comments-sidebar-close-button-label = Zapri stransko vrstico\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Ste zasledili kaj omembe vrednega? Narišite oznako in dopišite komentar.\npdfjs-editor-comments-sidebar-no-comments-link = Več o tem\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Nadomestno besedilo\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Uredi nadomestno besedilo\npdfjs-editor-alt-text-dialog-label = Izberite možnost\npdfjs-editor-alt-text-dialog-description = Nadomestno besedilo se prikaže tistim, ki ne vidijo slike, ali če se ta ne naloži.\npdfjs-editor-alt-text-add-description-label = Dodaj opis\npdfjs-editor-alt-text-add-description-description = Poskušajte v enem ali dveh stavkih opisati motiv, okolje ali dejanja.\npdfjs-editor-alt-text-mark-decorative-label = Označi kot okrasno\npdfjs-editor-alt-text-mark-decorative-description = Uporablja se za slike, ki služijo samo okrasu, na primer obrobe ali vodne žige.\npdfjs-editor-alt-text-cancel-button = Prekliči\npdfjs-editor-alt-text-save-button = Shrani\npdfjs-editor-alt-text-decorative-tooltip = Označeno kot okrasno\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Na primer: \"Mladenič sedi za mizo pri jedi\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Nadomestno besedilo\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Zgornji levi kot – spremeni velikost\npdfjs-editor-resizer-top-middle =\n    .aria-label = Zgoraj na sredini – spremeni velikost\npdfjs-editor-resizer-top-right =\n    .aria-label = Zgornji desni kot – spremeni velikost\npdfjs-editor-resizer-middle-right =\n    .aria-label = Desno na sredini – spremeni velikost\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Spodnji desni kot – spremeni velikost\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Spodaj na sredini – spremeni velikost\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Spodnji levi kot – spremeni velikost\npdfjs-editor-resizer-middle-left =\n    .aria-label = Levo na sredini – spremeni velikost\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Barva označbe\npdfjs-editor-colorpicker-button =\n    .title = Spremeni barvo\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Izbira barve\npdfjs-editor-colorpicker-yellow =\n    .title = Rumena\npdfjs-editor-colorpicker-green =\n    .title = Zelena\npdfjs-editor-colorpicker-blue =\n    .title = Modra\npdfjs-editor-colorpicker-pink =\n    .title = Roza\npdfjs-editor-colorpicker-red =\n    .title = Rdeča\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Prikaži vse\npdfjs-editor-highlight-show-all-button =\n    .title = Prikaži vse\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Uredi nadomestno besedilo (opis slike)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Dodaj nadomestno besedilo (opis slike)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Tukaj napišite svoj opis …\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kratek opis za ljudi, ki ne morejo videti slike, ali za primer, ko se slika ne naloži.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = To nadomestno besedilo je bilo ustvarjeno samodejno in je lahko netočno.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Več o tem\npdfjs-editor-new-alt-text-create-automatically-button-label = Samodejno ustvari nadomestno besedilo\npdfjs-editor-new-alt-text-not-now-button = Ne zdaj\npdfjs-editor-new-alt-text-error-title = Nadomestnega besedila ni bilo mogoče samodejno ustvariti\npdfjs-editor-new-alt-text-error-description = Sestavite svoje nadomestno besedilo ali poskusite znova pozneje.\npdfjs-editor-new-alt-text-error-close-button = Zapri\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Prenašanje modela UI za nadomestno besedilo ({ $downloadedSize } od { $totalSize } MB)\n    .aria-valuetext = Prenašanje modela UI za nadomestno besedilo ({ $downloadedSize } od { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Nadomestno besedilo dodano\npdfjs-editor-new-alt-text-added-button-label = Nadomestno besedilo dodano\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Nadomestno besedilo manjka\npdfjs-editor-new-alt-text-missing-button-label = Nadomestno besedilo manjka\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Oceni nadomestno besedilo\npdfjs-editor-new-alt-text-to-review-button-label = Oceni nadomestno besedilo\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Samodejno ustvarjeno: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Nastavitve nadomestnega besedila slike\npdfjs-image-alt-text-settings-button-label = Nastavitve nadomestnega besedila slike\npdfjs-editor-alt-text-settings-dialog-label = Nastavitve nadomestnega besedila slike\npdfjs-editor-alt-text-settings-automatic-title = Samodejno nadomestno besedilo\npdfjs-editor-alt-text-settings-create-model-button-label = Samodejno ustvari nadomestno besedilo\npdfjs-editor-alt-text-settings-create-model-description = Predlaga opise za pomoč ljudem, ki ne morejo videti slike, ali za primer, ko se slika ne naloži.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model UI za nadomestno besedilo ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Izvaja se lokalno na vaši napravi, tako da vaši podatki ostajajo zasebni. Zahtevano za samodejno nadomestno besedilo.\npdfjs-editor-alt-text-settings-delete-model-button = Izbriši\npdfjs-editor-alt-text-settings-download-model-button = Prenesi\npdfjs-editor-alt-text-settings-downloading-model-button = Prenašanje ...\npdfjs-editor-alt-text-settings-editor-title = Urejevalnik nadomestnega besedila\npdfjs-editor-alt-text-settings-show-dialog-button-label = Ob dodajanju slike takoj prikaži urejevalnik nadomestnega besedila\npdfjs-editor-alt-text-settings-show-dialog-description = Pomaga vam zagotoviti, da imajo vse vaše slike nadomestno besedilo.\npdfjs-editor-alt-text-settings-close-button = Zapri\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Označba dodana\npdfjs-editor-freetext-added-alert = Besedilo dodano\npdfjs-editor-ink-added-alert = Risba dodana\npdfjs-editor-stamp-added-alert = Slika dodana\npdfjs-editor-signature-added-alert = Podpis dodan\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Označba odstranjena\npdfjs-editor-undo-bar-message-freetext = Besedilo odstranjeno\npdfjs-editor-undo-bar-message-ink = Risba odstranjena\npdfjs-editor-undo-bar-message-stamp = Slika odstranjena\npdfjs-editor-undo-bar-message-signature = Podpis odstranjen\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } označba odstranjena\n        [two] { $count } označbi odstranjeni\n        [few] { $count } označbe odstranjene\n       *[other] { $count } označb odstranjenih\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Razveljavi\npdfjs-editor-undo-bar-undo-button-label = Razveljavi\npdfjs-editor-undo-bar-close-button =\n    .title = Zapri\npdfjs-editor-undo-bar-close-button-label = Zapri\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Ta način omogoča uporabniku ustvariti podpis, ki ga želi dodati dokumentu PDF. Uporabnik lahko uredi ime (ki se uporablja tudi kot nadomestno besedilo) in podpis po želji shrani za ponovno uporabo.\npdfjs-editor-add-signature-dialog-title = Dodaj podpis\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Natipkaj\n    .title = Natipkaj\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Nariši\n    .title = Nariši\npdfjs-editor-add-signature-image-button = Slika\n    .title = Slika\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Natipkajte svoj podpis\n    .placeholder = Natipkajte svoj podpis\npdfjs-editor-add-signature-draw-placeholder = Narišite svoj podpis\npdfjs-editor-add-signature-draw-thickness-range-label = Debelina\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Debelina peresa: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Povlecite datoteko sem za nalaganje\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ali prebrskajte slikovne datoteke\n       *[other] Ali prebrskajte slikovne datoteke\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Opis (nadomestno besedilo)\npdfjs-editor-add-signature-description-input =\n    .title = Opis (nadomestno besedilo)\npdfjs-editor-add-signature-description-default-when-drawing = Podpis\npdfjs-editor-add-signature-clear-button-label = Pobriši podpis\npdfjs-editor-add-signature-clear-button =\n    .title = Pobriši podpis\npdfjs-editor-add-signature-save-checkbox = Shrani podpis\npdfjs-editor-add-signature-save-warning-message = Dosegli ste omejitev 5 shranjenih podpisov. Če želite shraniti novega, enega odstranite.\npdfjs-editor-add-signature-image-upload-error-title = Slike ni bilo mogoče naložiti\npdfjs-editor-add-signature-image-upload-error-description = Preverite svojo povezavo z omrežjem ali poskusite z drugo sliko.\npdfjs-editor-add-signature-image-no-data-error-title = Te slike ni mogoče pretvoriti v podpis\npdfjs-editor-add-signature-image-no-data-error-description = Poskusite naložiti drugo sliko.\npdfjs-editor-add-signature-error-close-button = Zapri\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Prekliči\npdfjs-editor-add-signature-add-button = Dodaj\npdfjs-editor-edit-signature-update-button = Spremeni\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Uredi komentar\npdfjs-editor-edit-comment-popup-button =\n    .title = Uredi komentar\npdfjs-editor-delete-comment-popup-button-label = Odstrani komentar\npdfjs-editor-delete-comment-popup-button =\n    .title = Odstrani komentar\npdfjs-show-comment-button =\n    .title = Pokaži komentar\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Dejanja\npdfjs-editor-edit-comment-actions-button =\n    .title = Dejanja\npdfjs-editor-edit-comment-close-button-label = Zapri\npdfjs-editor-edit-comment-close-button =\n    .title = Zapri\npdfjs-editor-edit-comment-actions-edit-button-label = Uredi\npdfjs-editor-edit-comment-actions-delete-button-label = Izbriši\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Vnesite komentar\npdfjs-editor-edit-comment-manager-cancel-button = Prekliči\npdfjs-editor-edit-comment-manager-save-button = Shrani\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Uredi komentar\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Spremeni\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Dodaj komentar\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Dodaj\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Začnite tipkati …\npdfjs-editor-edit-comment-dialog-cancel-button = Prekliči\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Uredi komentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Odstrani shranjen podpis\npdfjs-editor-delete-signature-button-label1 = Odstrani shranjen podpis\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Uredi opis\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Uredi opis\n"
  },
  {
    "path": "viewer/locale/son/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Moo bisante\npdfjs-previous-button-label = Bisante\npdfjs-next-button =\n    .title = Jinehere moo\npdfjs-next-button-label = Jine\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Moo\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } ra\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } ka hun { $pagesCount }) ra\npdfjs-zoom-out-button =\n    .title = Nakasandi\npdfjs-zoom-out-button-label = Nakasandi\npdfjs-zoom-in-button =\n    .title = Bebbeerandi\npdfjs-zoom-in-button-label = Bebbeerandi\npdfjs-zoom-select =\n    .title = Bebbeerandi\npdfjs-presentation-mode-button =\n    .title = Bere cebeyan alhaali\npdfjs-presentation-mode-button-label = Cebeyan alhaali\npdfjs-open-file-button =\n    .title = Tuku feeri\npdfjs-open-file-button-label = Feeri\npdfjs-print-button =\n    .title = Kar\npdfjs-print-button-label = Kar\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Goyjinawey\npdfjs-tools-button-label = Goyjinawey\npdfjs-first-page-button =\n    .title = Koy moo jinaa ga\npdfjs-first-page-button-label = Koy moo jinaa ga\npdfjs-last-page-button =\n    .title = Koy moo koraa ga\npdfjs-last-page-button-label = Koy moo koraa ga\npdfjs-page-rotate-cw-button =\n    .title = Kuubi kanbe guma here\npdfjs-page-rotate-cw-button-label = Kuubi kanbe guma here\npdfjs-page-rotate-ccw-button =\n    .title = Kuubi kanbe wowa here\npdfjs-page-rotate-ccw-button-label = Kuubi kanbe wowa here\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Takadda mayrawey…\npdfjs-document-properties-button-label = Takadda mayrawey…\npdfjs-document-properties-file-name = Tuku maa:\npdfjs-document-properties-file-size = Tuku adadu:\npdfjs-document-properties-title = Tiiramaa:\npdfjs-document-properties-author = Hantumkaw:\npdfjs-document-properties-subject = Dalil:\npdfjs-document-properties-keywords = Kufalkalimawey:\npdfjs-document-properties-creation-date = Teeyan han:\npdfjs-document-properties-modification-date = Barmayan han:\npdfjs-document-properties-creator = Teekaw:\npdfjs-document-properties-producer = PDF berandikaw:\npdfjs-document-properties-version = PDF dumi:\npdfjs-document-properties-page-count = Moo hinna:\n\n##\n\npdfjs-document-properties-close-button = Daabu\n\n## Print\n\npdfjs-print-progress-message = Goo ma takaddaa soolu k'a kar se…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Naŋ\npdfjs-printing-not-supported = Yaamar: Karyan ši tee ka timme nda ceecikaa woo.\npdfjs-printing-not-ready = Yaamar: PDF ši zunbu ka timme karyan še.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Kanjari ceraw zuu\npdfjs-toggle-sidebar-button-label = Kanjari ceraw zuu\npdfjs-document-outline-button =\n    .title = Takaddaa korfur alhaaloo cebe (naagu cee hinka ka haya-izey kul hayandi/kankamandi)\npdfjs-document-outline-button-label = Takadda filla-boŋ\npdfjs-attachments-button =\n    .title = Hangarey cebe\npdfjs-attachments-button-label = Hangarey\npdfjs-thumbs-button =\n    .title = Kabeboy biyey cebe\npdfjs-thumbs-button-label = Kabeboy biyey\npdfjs-findbar-button =\n    .title = Ceeci takaddaa ra\npdfjs-findbar-button-label = Ceeci\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } moo\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Kabeboy bii { $page } moo še\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Ceeci\n    .placeholder = Ceeci takaddaa ra…\npdfjs-find-previous-button =\n    .title = Kalimaɲaŋoo bangayri bisantaa ceeci\npdfjs-find-previous-button-label = Bisante\npdfjs-find-next-button =\n    .title = Kalimaɲaŋoo hiino bangayroo ceeci\npdfjs-find-next-button-label = Jine\npdfjs-find-highlight-checkbox = Ikul šilbay\npdfjs-find-match-case-checkbox-label = Harfu-beeriyan hawgay\npdfjs-find-reached-top = A too moŋoo boŋoo, koy jine ka šinitin nda cewoo\npdfjs-find-reached-bottom = A too moɲoo cewoo, koy jine šintioo ga\npdfjs-find-not-found = Kalimaɲaa mana duwandi\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Mooo hayyan\npdfjs-page-scale-fit = Moo sawayan\npdfjs-page-scale-auto = Boŋše azzaati barmayyan\npdfjs-page-scale-actual = Adadu cimi\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Firka bangay kaŋ PDF goo ma zumandi.\npdfjs-invalid-file-error = PDF tuku laala wala laybante.\npdfjs-missing-file-error = PDF tuku kumante.\npdfjs-unexpected-response-error = Manti feršikaw tuuruyan maatante.\npdfjs-rendering-error = Firka bangay kaŋ moɲoo goo ma willandi.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = { $type } maasa-caw]\n\n## Password\n\npdfjs-password-label = Šennikufal dam ka PDF tukoo woo feeri.\npdfjs-password-invalid = Šennikufal laalo. Ceeci koyne taare.\npdfjs-password-ok-button = Ayyo\npdfjs-password-cancel-button = Naŋ\npdfjs-web-fonts-disabled = Interneti šigirawey kay: ši hin ka goy nda PDF šigira hurantey.\n"
  },
  {
    "path": "viewer/locale/sq/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Faqja e Mëparshme\npdfjs-previous-button-label = E mëparshmja\npdfjs-next-button =\n    .title = Faqja Pasuese\npdfjs-next-button-label = Pasuesja\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Faqe\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = nga { $pagesCount } gjithsej\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } nga { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zvogëlojeni\npdfjs-zoom-out-button-label = Zvogëlojeni\npdfjs-zoom-in-button =\n    .title = Zmadhojeni\npdfjs-zoom-in-button-label = Zmadhojini\npdfjs-zoom-select =\n    .title = Zmadhim/Zvogëlim\npdfjs-presentation-mode-button =\n    .title = Kalo te Mënyra Paraqitje\npdfjs-presentation-mode-button-label = Mënyra Paraqitje\npdfjs-open-file-button =\n    .title = Hapni Kartelë\npdfjs-open-file-button-label = Hape\npdfjs-print-button =\n    .title = Shtypje\npdfjs-print-button-label = Shtype\npdfjs-save-button =\n    .title = Ruaje\npdfjs-save-button-label = Ruaje\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Shkarkojeni\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Shkarkoje\npdfjs-bookmark-button =\n    .title = Faqja e Tanishme (Shihni URL nga Faqja e Tanishme)\npdfjs-bookmark-button-label = Faqja e Tanishme\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Mjete\npdfjs-tools-button-label = Mjete\npdfjs-first-page-button =\n    .title = Kaloni te Faqja e Parë\npdfjs-first-page-button-label = Kaloni te Faqja e Parë\npdfjs-last-page-button =\n    .title = Kaloni te Faqja e Fundit\npdfjs-last-page-button-label = Kaloni te Faqja e Fundit\npdfjs-page-rotate-cw-button =\n    .title = Rrotullojeni Në Kahun Orar\npdfjs-page-rotate-cw-button-label = Rrotulloje Në Kahun Orar\npdfjs-page-rotate-ccw-button =\n    .title = Rrotullojeni Në Kahun Kundërorar\npdfjs-page-rotate-ccw-button-label = Rrotulloje Në Kahun Kundërorar\npdfjs-cursor-text-select-tool-button =\n    .title = Aktivizo Mjet Përzgjedhjeje Teksti\npdfjs-cursor-text-select-tool-button-label = Mjet Përzgjedhjeje Teksti\npdfjs-cursor-hand-tool-button =\n    .title = Aktivizo Mjetin Dorë\npdfjs-cursor-hand-tool-button-label = Mjeti Dorë\npdfjs-scroll-page-button =\n    .title = Përdor Rrëshqitje Në Faqe\npdfjs-scroll-page-button-label = Rrëshqitje Në Faqe\npdfjs-scroll-vertical-button =\n    .title = Përdor Rrëshqitje Vertikale\npdfjs-scroll-vertical-button-label = Rrëshqitje Vertikale\npdfjs-scroll-horizontal-button =\n    .title = Përdor Rrëshqitje Horizontale\npdfjs-scroll-horizontal-button-label = Rrëshqitje Horizontale\npdfjs-scroll-wrapped-button =\n    .title = Përdor Rrëshqitje Me Mbështjellje\npdfjs-scroll-wrapped-button-label = Rrëshqitje Me Mbështjellje\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Veti Dokumenti…\npdfjs-document-properties-button-label = Veti Dokumenti…\npdfjs-document-properties-file-name = Emër kartele:\npdfjs-document-properties-file-size = Madhësi kartele:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bajte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bajte)\npdfjs-document-properties-title = Titull:\npdfjs-document-properties-author = Autor:\npdfjs-document-properties-subject = Subjekt:\npdfjs-document-properties-keywords = Fjalëkyçe:\npdfjs-document-properties-creation-date = Datë Krijimi:\npdfjs-document-properties-modification-date = Datë Ndryshimi:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Krijues:\npdfjs-document-properties-producer = Prodhues PDF-je:\npdfjs-document-properties-version = Version PDF-je:\npdfjs-document-properties-page-count = Numër Faqesh:\npdfjs-document-properties-page-size = Madhësi Faqeje:\npdfjs-document-properties-page-size-unit-inches = inç\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portret\npdfjs-document-properties-page-size-orientation-landscape = së gjeri\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Parje e Shpjetë në Web:\npdfjs-document-properties-linearized-yes = Po\npdfjs-document-properties-linearized-no = Jo\npdfjs-document-properties-close-button = Mbylleni\n\n## Print\n\npdfjs-print-progress-message = Po përgatitet dokumenti për shtypje…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Anuloje\npdfjs-printing-not-supported = Kujdes: Shtypja s’mbulohet plotësisht nga ky shfletues.\npdfjs-printing-not-ready = Kujdes: PDF-ja s’është ngarkuar plotësisht që ta shtypni.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Shfaqni/Fshihni Anështyllën\npdfjs-toggle-sidebar-notification-button =\n    .title = Hap/Mbyll Anështylë (dokumenti përmban përvijim/nashkëngjitje/shtresa)\npdfjs-toggle-sidebar-button-label = Shfaq/Fshih Anështyllën\npdfjs-document-outline-button =\n    .title = Shfaqni Përvijim Dokumenti (dyklikoni që të shfaqen/fshihen krejt elementët)\npdfjs-document-outline-button-label = Përvijim Dokumenti\npdfjs-attachments-button =\n    .title = Shfaqni Bashkëngjitje\npdfjs-attachments-button-label = Bashkëngjitje\npdfjs-layers-button =\n    .title = Shfaq Shtresa (dyklikoni që të rikthehen krejt shtresat në gjendjen e tyre parazgjedhje)\npdfjs-layers-button-label = Shtresa\npdfjs-thumbs-button =\n    .title = Shfaqni Miniatura\npdfjs-thumbs-button-label = Miniatura\npdfjs-current-outline-item-button =\n    .title = Gjej Objektin e Tanishëm të Përvijuar\npdfjs-current-outline-item-button-label = Objekt i Tanishëm i Përvijuar\npdfjs-findbar-button =\n    .title = Gjeni në Dokument\npdfjs-findbar-button-label = Gjej\npdfjs-additional-layers = Shtresa Shtesë\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Faqja { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniaturë e Faqes { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Gjej\n    .placeholder = Gjeni në dokument…\npdfjs-find-previous-button =\n    .title = Gjeni hasjen e mëparshme të togfjalëshit\npdfjs-find-previous-button-label = E mëparshmja\npdfjs-find-next-button =\n    .title = Gjeni hasjen pasuese të togfjalëshit\npdfjs-find-next-button-label = Pasuesja\npdfjs-find-highlight-checkbox = Theksoji të tëra\npdfjs-find-match-case-checkbox-label = Siç Është Shkruar\npdfjs-find-match-diacritics-checkbox-label = Me Përputhje Me Shenjat Diakritike\npdfjs-find-entire-word-checkbox-label = Fjalë të Plota\npdfjs-find-reached-top = U mbërrit në krye të dokumentit, vazhduar prej fundit\npdfjs-find-reached-bottom = U mbërrit në fund të dokumentit, vazhduar prej kreut\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } nga { $total } përputhje\n       *[other] { $current } nga { $total } përputhje\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Më tepër se { $limit } përputhje\n       *[other] Më tepër se { $limit } përputhje\n    }\npdfjs-find-not-found = Togfjalësh që s’gjendet\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Gjerësi Faqeje\npdfjs-page-scale-fit = Sa Nxë Faqja\npdfjs-page-scale-auto = Zoom i Vetvetishëm\npdfjs-page-scale-actual = Madhësia Faktike\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Faqja { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ndodhi një gabim gjatë ngarkimit të PDF-së.\npdfjs-invalid-file-error = Kartelë PDF e pavlefshme ose e dëmtuar.\npdfjs-missing-file-error = Kartelë PDF që mungon.\npdfjs-unexpected-response-error = Përgjigje shërbyesi e papritur.\npdfjs-rendering-error = Ndodhi një gabim gjatë riprodhimit të faqes.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Nënvizim { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Jepni fjalëkalimin që të hapet kjo kartelë PDF.\npdfjs-password-invalid = Fjalëkalim i pavlefshëm. Ju lutemi, riprovoni.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Anuloje\npdfjs-web-fonts-disabled = Shkronjat Web janë të çaktivizuara: s’arrihet të përdoren shkronja të trupëzuara në PDF.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Tekst\npdfjs-editor-color-picker-free-text-input =\n    .title = Ndryshoni ngjyrë teksti\npdfjs-editor-free-text-button-label = Tekst\npdfjs-editor-ink-button =\n    .title = Vizatoni\npdfjs-editor-color-picker-ink-input =\n    .title = Ndryshoni ngjyrë vizatimi\npdfjs-editor-ink-button-label = Vizatoni\npdfjs-editor-stamp-button =\n    .title = Shtoni ose përpunoni figura\npdfjs-editor-stamp-button-label = Shtoni ose përpunoni figura\npdfjs-editor-highlight-button =\n    .title = Theksim\npdfjs-editor-highlight-button-label = Theksoje\npdfjs-highlight-floating-button1 =\n    .title = Theksim\n    .aria-label = Theksim\npdfjs-highlight-floating-button-label = Theksim\npdfjs-comment-floating-button =\n    .title = Komentoni\n    .aria-label = Komentoni\npdfjs-comment-floating-button-label = Komentoni\npdfjs-editor-comment-button =\n    .title = Koment\n    .aria-label = Koment\npdfjs-editor-comment-button-label = Komentoni\npdfjs-editor-signature-button =\n    .title = Shtoni nënshkrim\npdfjs-editor-signature-button-label = Shtoni nënshkrim\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Përpunues theksimesh\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Përpunues vizatimesh\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Përpunues nënshkrimesh: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Përpunues figurash\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Hiq vizatim\npdfjs-editor-remove-freetext-button =\n    .title = Hiq tekst\npdfjs-editor-remove-stamp-button =\n    .title = Hiq figurë\npdfjs-editor-remove-highlight-button =\n    .title = Hiqe theksimin\npdfjs-editor-remove-signature-button =\n    .title = Hiqe nënshkrimin\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Ngjyrë\npdfjs-editor-free-text-size-input = Madhësi\npdfjs-editor-ink-color-input = Ngjyrë\npdfjs-editor-ink-thickness-input = Trashësi\npdfjs-editor-ink-opacity-input = Patejdukshmëri\npdfjs-editor-stamp-add-image-button =\n    .title = Shtoni figurë\npdfjs-editor-stamp-add-image-button-label = Shtoni figurë\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Trashësi\npdfjs-editor-free-highlight-thickness-title =\n    .title = Ndryshoni trashësinë kur theksoni objekte tjetër nga tekst\npdfjs-editor-add-signature-container =\n    .aria-label = Kontrolle nënshkrimesh dhe nënshkrime të ruajtur\npdfjs-editor-signature-add-signature-button =\n    .title = Shtoni nënshkrim të ri\npdfjs-editor-signature-add-signature-button-label = Shtoni nënshkrim të ri\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Nënshkrim i ruajtur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Përpunues Tekstesh\n    .default-content = Filloni të shtypni…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Koment\n       *[other] Komente\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Mbylleni anështyllën\n    .aria-label = Mbylleni anështyllën\npdfjs-editor-comments-sidebar-close-button-label = Mbylleni anështyllën\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Shihni diçka që ia vlen. Theksojeni dhe lini një koment.\npdfjs-editor-comments-sidebar-no-comments-link = Mësoni më tepër\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Tekst alternativ\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Përpunoni tekst alternativ\npdfjs-editor-alt-text-dialog-label = Zgjidhni një mundësi\npdfjs-editor-alt-text-dialog-description = Teksti alt (tekst alternativ) vjen në ndihmë kur njerëzit s’mund të shohin figurën, ose kur ajo nuk ngarkohet.\npdfjs-editor-alt-text-add-description-label = Shtoni një përshkrim\npdfjs-editor-alt-text-add-description-description = Synoni për 1-2 togfjalësha që përshkruajnë subjektin, rrethanat apo veprimet.\npdfjs-editor-alt-text-mark-decorative-label = Vëri shenjë si dekorative\npdfjs-editor-alt-text-mark-decorative-description = Kjo përdoret për figura zbukuruese, fjala vjen, anë, ose watermark-e.\npdfjs-editor-alt-text-cancel-button = Anuloje\npdfjs-editor-alt-text-save-button = Ruaje\npdfjs-editor-alt-text-decorative-tooltip = Iu vu shenjë si dekorative\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Për shembull, “Një djalosh ulet në një tryezë të hajë”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Tekst alternativ\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Cepi i sipërm majtas — ripërmasojeni\npdfjs-editor-resizer-top-middle =\n    .aria-label = Mesi i pjesës sipër — ripërmasojeni\npdfjs-editor-resizer-top-right =\n    .aria-label = Cepi i sipërm djathtas — ripërmasojeni\npdfjs-editor-resizer-middle-right =\n    .aria-label = Djathtas në mes — ripërmasojeni\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Cepi i poshtëm djathtas — ripërmasojeni\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Mesi i pjesës poshtë — ripërmasojeni\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Cepi i poshtëm — ripërmasojeni\npdfjs-editor-resizer-middle-left =\n    .aria-label = Majtas në mes — ripërmasojeni\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Ngjyrë theksimi\npdfjs-editor-colorpicker-button =\n    .title = Ndryshoni ngjyrë\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Zgjedhje ngjyre\npdfjs-editor-colorpicker-yellow =\n    .title = E verdhë\npdfjs-editor-colorpicker-green =\n    .title = E gjelbër\npdfjs-editor-colorpicker-blue =\n    .title = Blu\npdfjs-editor-colorpicker-pink =\n    .title = Rozë\npdfjs-editor-colorpicker-red =\n    .title = E kuqe\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Shfaqi krejt\npdfjs-editor-highlight-show-all-button =\n    .title = Shfaqi krejt\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Përpunoni tekst alternativ (përshkrim figure)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Shtoni tekst alternativ (përshkrim figure)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Shkruani këtu përshkrimin tuaj…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Përshkrim i shkurtër për persona që s’munden të shohin figurën, ose për kur figura nuk ngarkohet dot.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ky tekst alternativ qe krijuar automatikisht dhe mund të jetë i pasaktë.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Mësoni më tepër\npdfjs-editor-new-alt-text-create-automatically-button-label = Krijo automatikisht tekst alternativ\npdfjs-editor-new-alt-text-not-now-button = Jo tani\npdfjs-editor-new-alt-text-error-title = S’u krijua dot automatikisht tekst alternativ\npdfjs-editor-new-alt-text-error-description = Ju lutemi, shkruani tekstin tuaj alternativ, ose riprovoni më vonë.\npdfjs-editor-new-alt-text-error-close-button = Mbylle\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Po shkarkohet model IA teksti alternativ ({ $downloadedSize } nga { $totalSize } MB)\n    .aria-valuetext = Po shkarkohet model IA teksti alternativ ({ $downloadedSize } nga { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = U shtua tekst alternativ\npdfjs-editor-new-alt-text-added-button-label = U shtua tekst alternativ\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Mungon tekst alternativ\npdfjs-editor-new-alt-text-missing-button-label = Mungon tekst alternativ\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Shqyrtoni tekst alternativ\npdfjs-editor-new-alt-text-to-review-button-label = Shqyrtoni tekst alternativ\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Krijuar automatikisht: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Rregullime teksti alternativ figure\npdfjs-image-alt-text-settings-button-label = Rregullime teksti alternativ figure\npdfjs-editor-alt-text-settings-dialog-label = Rregullime teksti alternativ figure\npdfjs-editor-alt-text-settings-automatic-title = Tekst alternativ i automatizuar\npdfjs-editor-alt-text-settings-create-model-button-label = Krijo automatikisht tekst alternativ\npdfjs-editor-alt-text-settings-create-model-description = Sugjeron përshkrime, për të ndihmuar persona që s’munden të shohin figurën, ose për kur figura nuk ngarkohet dot.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Model IA teksti alternativ ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Xhiron lokalisht në pajisjen tuaj, pra të dhënat tuaja mbeten private. E domosdoshme për tekst të automatizuar alternativ.\npdfjs-editor-alt-text-settings-delete-model-button = Fshije\npdfjs-editor-alt-text-settings-download-model-button = Shkarkoje\npdfjs-editor-alt-text-settings-downloading-model-button = Po shkarkohet…\npdfjs-editor-alt-text-settings-editor-title = Përpunues teksti alternativ\npdfjs-editor-alt-text-settings-show-dialog-button-label = Shfaq menjëherë përpunues teksti alternativ, kur shtohet një figurë\npdfjs-editor-alt-text-settings-show-dialog-description = Ju ndihmon të siguroheni se krejt figurat tuaja kanë tekst alternativ.\npdfjs-editor-alt-text-settings-close-button = Mbylle\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = U shtua theksim\npdfjs-editor-freetext-added-alert = U shtua tekst\npdfjs-editor-ink-added-alert = U shtua vizatim\npdfjs-editor-stamp-added-alert = U shtua figurë\npdfjs-editor-signature-added-alert = U shtua nënshkrim\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = U hoq theksimi\npdfjs-editor-undo-bar-message-freetext = U hoq tekst\npdfjs-editor-undo-bar-message-ink = U hoq vizatim\npdfjs-editor-undo-bar-message-stamp = U hoq figurë\npdfjs-editor-undo-bar-message-signature = Nënshkrimi u hoq\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] U hoq { $count } shënim\n       *[other] U hoqën { $count } shënime\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Zhbëje\npdfjs-editor-undo-bar-undo-button-label = Zhbëje\npdfjs-editor-undo-bar-close-button =\n    .title = Mbylle\npdfjs-editor-undo-bar-close-button-label = Mbylle\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Kjo dritare modale i lejon përdoruesit të krijojë një nënshkrim për ta shtuar te një dokument PDF. Përdoruesi mund të përpunojë emrin (i cili shërben edhe si tekst alternativ) dhe, nëse do, ta ruajë nënshkrimin, për ta përdorur prapë.\npdfjs-editor-add-signature-dialog-title = Shtoni një nënshkrim\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Lloj\n    .title = Lloj\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Vizatoni\n    .title = Vizatoni\npdfjs-editor-add-signature-image-button = Figurë\n    .title = Figurë\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Shtypni nënshkrimin tuaj\n    .placeholder = Shtypni nënshkrimin tuaj\npdfjs-editor-add-signature-draw-placeholder = Vizatoni nënshkrimin tuaj\npdfjs-editor-add-signature-draw-thickness-range-label = Trashësi\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Trashësi vizatimi: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Tërhiqni këtu një kartelë për ngarkim\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ose zgjidhni kartelë figure\n       *[other] Ose zgjidhni kartelë figure\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Përshkrim (tekst alternativ)\npdfjs-editor-add-signature-description-input =\n    .title = Përshkrim (tekst alternativ)\npdfjs-editor-add-signature-description-default-when-drawing = Nënshkrim\npdfjs-editor-add-signature-clear-button-label = Spastroje nënshkrimin\npdfjs-editor-add-signature-clear-button =\n    .title = Spastroje nënshkrimin\npdfjs-editor-add-signature-save-checkbox = Ruaje nënshkrimin\npdfjs-editor-add-signature-save-warning-message = Keni mbërritur në kufirin e 5 nënshkrimeve të ruajtura. Që të ruani tjetër, hiqni një.\npdfjs-editor-add-signature-image-upload-error-title = S’u ngarkua dot figurë\npdfjs-editor-add-signature-image-upload-error-description = Kontrolloni lidhjen tuaj në rrjet, ose provoni figurë tjetër.\npdfjs-editor-add-signature-image-no-data-error-title = S’shndërrohet dot kjo figurë në një nënshkrim\npdfjs-editor-add-signature-image-no-data-error-description = Ju lutemi, provoni të ngarkoni një figurë tjetër.\npdfjs-editor-add-signature-error-close-button = Mbylle\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Anuloje\npdfjs-editor-add-signature-add-button = Shtoje\npdfjs-editor-edit-signature-update-button = Përditësoje\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Përpunoni koment\npdfjs-editor-edit-comment-popup-button =\n    .title = Përpunoni koment\npdfjs-editor-delete-comment-popup-button-label = Hiqe komentin\npdfjs-editor-delete-comment-popup-button =\n    .title = Hiqe komentin\npdfjs-show-comment-button =\n    .title = Shfaqe komentin\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Veprime\npdfjs-editor-edit-comment-actions-button =\n    .title = Veprime\npdfjs-editor-edit-comment-close-button-label = Mbylle\npdfjs-editor-edit-comment-close-button =\n    .title = Mbylle\npdfjs-editor-edit-comment-actions-edit-button-label = Përpunoni\npdfjs-editor-edit-comment-actions-delete-button-label = Fshije\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Jepni komentin tuaj\npdfjs-editor-edit-comment-manager-cancel-button = Anuloje\npdfjs-editor-edit-comment-manager-save-button = Ruaje\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Përpunoni koment\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Përditësojeni\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Shtoni koment\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Shtoje\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Filloni të shtypni…\npdfjs-editor-edit-comment-dialog-cancel-button = Anuloje\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Përpunoni koment\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Hiqe nënshkrimin e ruajtur\npdfjs-editor-delete-signature-button-label1 = Hiqe nënshkrimin e ruajtur\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Përpunoni përshkrimin\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Përpunoni përshkrimin\n"
  },
  {
    "path": "viewer/locale/sr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Претходна страница\npdfjs-previous-button-label = Претходна\npdfjs-next-button =\n    .title = Следећа страница\npdfjs-next-button-label = Следећа\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Страница\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = од { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } од { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Умањи\npdfjs-zoom-out-button-label = Умањи\npdfjs-zoom-in-button =\n    .title = Увеличај\npdfjs-zoom-in-button-label = Увеличај\npdfjs-zoom-select =\n    .title = Увеличавање\npdfjs-presentation-mode-button =\n    .title = Промени на приказ у режиму презентације\npdfjs-presentation-mode-button-label = Режим презентације\npdfjs-open-file-button =\n    .title = Отвори датотеку\npdfjs-open-file-button-label = Отвори\npdfjs-print-button =\n    .title = Штампај\npdfjs-print-button-label = Штампај\npdfjs-save-button =\n    .title = Сачувај\npdfjs-save-button-label = Сачувај\npdfjs-bookmark-button =\n    .title = Тренутна страница (погледајте URL са тренутне странице)\npdfjs-bookmark-button-label = Тренутна страница\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Алатке\npdfjs-tools-button-label = Алатке\npdfjs-first-page-button =\n    .title = Иди на прву страницу\npdfjs-first-page-button-label = Иди на прву страницу\npdfjs-last-page-button =\n    .title = Иди на последњу страницу\npdfjs-last-page-button-label = Иди на последњу страницу\npdfjs-page-rotate-cw-button =\n    .title = Ротирај у смеру казаљке на сату\npdfjs-page-rotate-cw-button-label = Ротирај у смеру казаљке на сату\npdfjs-page-rotate-ccw-button =\n    .title = Ротирај у смеру супротном од казаљке на сату\npdfjs-page-rotate-ccw-button-label = Ротирај у смеру супротном од казаљке на сату\npdfjs-cursor-text-select-tool-button =\n    .title = Омогући алат за селектовање текста\npdfjs-cursor-text-select-tool-button-label = Алат за селектовање текста\npdfjs-cursor-hand-tool-button =\n    .title = Омогући алат за померање\npdfjs-cursor-hand-tool-button-label = Алат за померање\npdfjs-scroll-page-button =\n    .title = Користи скроловање по омоту\npdfjs-scroll-page-button-label = Скроловање странице\npdfjs-scroll-vertical-button =\n    .title = Користи вертикално скроловање\npdfjs-scroll-vertical-button-label = Вертикално скроловање\npdfjs-scroll-horizontal-button =\n    .title = Користи хоризонтално скроловање\npdfjs-scroll-horizontal-button-label = Хоризонтално скроловање\npdfjs-scroll-wrapped-button =\n    .title = Користи скроловање по омоту\npdfjs-scroll-wrapped-button-label = Скроловање по омоту\npdfjs-spread-none-button =\n    .title = Немој спајати ширења страница\npdfjs-spread-none-button-label = Без распростирања\npdfjs-spread-odd-button =\n    .title = Споји ширења страница које почињу непарним бројем\npdfjs-spread-odd-button-label = Непарна распростирања\npdfjs-spread-even-button =\n    .title = Споји ширења страница које почињу парним бројем\npdfjs-spread-even-button-label = Парна распростирања\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Параметри документа…\npdfjs-document-properties-button-label = Параметри документа…\npdfjs-document-properties-file-name = Име датотеке:\npdfjs-document-properties-file-size = Величина датотеке:\npdfjs-document-properties-title = Наслов:\npdfjs-document-properties-author = Аутор:\npdfjs-document-properties-subject = Тема:\npdfjs-document-properties-keywords = Кључне речи:\npdfjs-document-properties-creation-date = Датум креирања:\npdfjs-document-properties-modification-date = Датум модификације:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Стваралац:\npdfjs-document-properties-producer = PDF произвођач:\npdfjs-document-properties-version = PDF верзија:\npdfjs-document-properties-page-count = Број страница:\npdfjs-document-properties-page-size = Величина странице:\npdfjs-document-properties-page-size-unit-inches = ин\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = усправно\npdfjs-document-properties-page-size-orientation-landscape = водоравно\npdfjs-document-properties-page-size-name-a-three = А3\npdfjs-document-properties-page-size-name-a-four = А4\npdfjs-document-properties-page-size-name-letter = Слово\npdfjs-document-properties-page-size-name-legal = Права\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Брз веб приказ:\npdfjs-document-properties-linearized-yes = Да\npdfjs-document-properties-linearized-no = Не\npdfjs-document-properties-close-button = Затвори\n\n## Print\n\npdfjs-print-progress-message = Припремам документ за штампање…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Откажи\npdfjs-printing-not-supported = Упозорење: Штампање није у потпуности подржано у овом прегледачу.\npdfjs-printing-not-ready = Упозорење: PDF није у потпуности учитан за штампу.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Прикажи/сакриј бочни панел\npdfjs-toggle-sidebar-notification-button =\n    .title = Прикажи/сакриј бочни панел (документ садржи контуру/прилоге/слојеве)\npdfjs-toggle-sidebar-button-label = Прикажи/сакриј бочни панел\npdfjs-document-outline-button =\n    .title = Прикажи структуру документа (двоструким кликом проширујете/скупљате све ставке)\npdfjs-document-outline-button-label = Контура документа\npdfjs-attachments-button =\n    .title = Прикажи прилоге\npdfjs-attachments-button-label = Прилози\npdfjs-layers-button =\n    .title = Прикажи слојеве (дупли клик за враћање свих слојева у подразумевано стање)\npdfjs-layers-button-label = Слојеви\npdfjs-thumbs-button =\n    .title = Прикажи сличице\npdfjs-thumbs-button-label = Сличице\npdfjs-current-outline-item-button =\n    .title = Пронађите тренутни елемент структуре\npdfjs-current-outline-item-button-label = Тренутна контура\npdfjs-findbar-button =\n    .title = Пронађи у документу\npdfjs-findbar-button-label = Пронађи\npdfjs-additional-layers = Додатни слојеви\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Страница { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Сличица од странице { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Пронађи\n    .placeholder = Пронађи у документу…\npdfjs-find-previous-button =\n    .title = Пронађи претходно појављивање фразе\npdfjs-find-previous-button-label = Претходна\npdfjs-find-next-button =\n    .title = Пронађи следеће појављивање фразе\npdfjs-find-next-button-label = Следећа\npdfjs-find-highlight-checkbox = Истакнути све\npdfjs-find-match-case-checkbox-label = Подударања\npdfjs-find-match-diacritics-checkbox-label = Дијакритика\npdfjs-find-entire-word-checkbox-label = Целе речи\npdfjs-find-reached-top = Достигнут врх документа, наставио са дна\npdfjs-find-reached-bottom = Достигнуто дно документа, наставио са врха\npdfjs-find-not-found = Фраза није пронађена\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ширина странице\npdfjs-page-scale-fit = Прилагоди страницу\npdfjs-page-scale-auto = Аутоматско увеличавање\npdfjs-page-scale-actual = Стварна величина\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Страница { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Дошло је до грешке приликом учитавања PDF-а.\npdfjs-invalid-file-error = PDF датотека је неважећа или је оштећена.\npdfjs-missing-file-error = Недостаје PDF датотека.\npdfjs-unexpected-response-error = Неочекиван одговор од сервера.\npdfjs-rendering-error = Дошло је до грешке приликом рендеровања ове странице.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } коментар]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Унесите лозинку да бисте отворили овај PDF докуменат.\npdfjs-password-invalid = Неисправна лозинка. Покушајте поново.\npdfjs-password-ok-button = У реду\npdfjs-password-cancel-button = Откажи\npdfjs-web-fonts-disabled = Веб фонтови су онемогућени: не могу користити уграђене PDF фонтове.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Текст\npdfjs-editor-free-text-button-label = Текст\npdfjs-editor-ink-button =\n    .title = Цртај\npdfjs-editor-ink-button-label = Цртај\npdfjs-editor-stamp-button =\n    .title = Додај или уреди слике\npdfjs-editor-stamp-button-label = Додај или уреди слике\npdfjs-editor-highlight-button =\n    .title = Означи\npdfjs-editor-highlight-button-label = Означи\npdfjs-highlight-floating-button1 =\n    .title = Означи\n    .aria-label = Означи\npdfjs-highlight-floating-button-label = Означи\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Уклони цртеж\npdfjs-editor-remove-freetext-button =\n    .title = Уклони текст\npdfjs-editor-remove-stamp-button =\n    .title = Уклони слику\npdfjs-editor-remove-highlight-button =\n    .title = Уклони ознаку\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Боја\npdfjs-editor-free-text-size-input = Величина\npdfjs-editor-ink-color-input = Боја\npdfjs-editor-ink-thickness-input = Дебљина\npdfjs-editor-ink-opacity-input = Опацитет\npdfjs-editor-stamp-add-image-button =\n    .title = Додај слику\npdfjs-editor-stamp-add-image-button-label = Додај слику\npdfjs-editor-free-highlight-thickness-title =\n    .title = Промени дебљину при означавању других ставки сем текста\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Уређивач текста\n    .default-content = Почни куцати…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Алтернативни текст\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Уреди алтернативни текст\npdfjs-editor-alt-text-dialog-label = Одабери опцију\npdfjs-editor-alt-text-dialog-description = Алтернативни текст помаже слепим и слабовидим особама или када се слика не учита.\npdfjs-editor-alt-text-add-description-label = Додај опис\npdfjs-editor-alt-text-add-description-description = Сажмите у 1-2 реченице које описују предмет, окружење или радње.\npdfjs-editor-alt-text-mark-decorative-label = Означи као украсно\npdfjs-editor-alt-text-mark-decorative-description = Ово је за украсне слике, као што су ивице или водени печати.\npdfjs-editor-alt-text-cancel-button = Откажи\npdfjs-editor-alt-text-save-button = Сачувај\npdfjs-editor-alt-text-decorative-tooltip = Означено као украсно\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = На пример: „Младић седа за сто да једе“\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Алтернативни текст\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Горњи леви угао — промени величину\npdfjs-editor-resizer-top-middle =\n    .aria-label = Средина горе — промени величину\npdfjs-editor-resizer-top-right =\n    .aria-label = Горњи десни угао — промени величину\npdfjs-editor-resizer-middle-right =\n    .aria-label = Средина десно — промени величину\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Доњи десни угао — промени величину\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Средина доле — промени величину\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Доњи леви угао — промени величину\npdfjs-editor-resizer-middle-left =\n    .aria-label = Средина лево — промени величину\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Боја означавања\npdfjs-editor-colorpicker-button =\n    .title = Промени боју\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Избор боја\npdfjs-editor-colorpicker-yellow =\n    .title = Жута\npdfjs-editor-colorpicker-green =\n    .title = Зелена\npdfjs-editor-colorpicker-blue =\n    .title = Плава\npdfjs-editor-colorpicker-pink =\n    .title = Розе\npdfjs-editor-colorpicker-red =\n    .title = Црвена\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Прикажи све\npdfjs-editor-highlight-show-all-button =\n    .title = Прикажи све\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Уреди алтернативни текст (опис слике)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Додај алтернативни текст (опис слике)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Напиши опис овде…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Кратак опис за слепе и слабовиде људе или када се слика не успе учитати.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Овај алтернативни текст је направљен аутоматски и може бити нетачан.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Сазнајте више\npdfjs-editor-new-alt-text-create-automatically-button-label = Прави алтернативни текст аутоматски\npdfjs-editor-new-alt-text-not-now-button = Не сада\n"
  },
  {
    "path": "viewer/locale/sv-SE/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Föregående sida\npdfjs-previous-button-label = Föregående\npdfjs-next-button =\n    .title = Nästa sida\npdfjs-next-button-label = Nästa\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Sida\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = av { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } av { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zooma ut\npdfjs-zoom-out-button-label = Zooma ut\npdfjs-zoom-in-button =\n    .title = Zooma in\npdfjs-zoom-in-button-label = Zooma in\npdfjs-zoom-select =\n    .title = Zoom\npdfjs-presentation-mode-button =\n    .title = Byt till presentationsläge\npdfjs-presentation-mode-button-label = Presentationsläge\npdfjs-open-file-button =\n    .title = Öppna fil\npdfjs-open-file-button-label = Öppna\npdfjs-print-button =\n    .title = Skriv ut\npdfjs-print-button-label = Skriv ut\npdfjs-save-button =\n    .title = Spara\npdfjs-save-button-label = Spara\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Hämta\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Hämta\npdfjs-bookmark-button =\n    .title = Aktuell sida (Visa URL från aktuell sida)\npdfjs-bookmark-button-label = Aktuell sida\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Verktyg\npdfjs-tools-button-label = Verktyg\npdfjs-first-page-button =\n    .title = Gå till första sidan\npdfjs-first-page-button-label = Gå till första sidan\npdfjs-last-page-button =\n    .title = Gå till sista sidan\npdfjs-last-page-button-label = Gå till sista sidan\npdfjs-page-rotate-cw-button =\n    .title = Rotera medurs\npdfjs-page-rotate-cw-button-label = Rotera medurs\npdfjs-page-rotate-ccw-button =\n    .title = Rotera moturs\npdfjs-page-rotate-ccw-button-label = Rotera moturs\npdfjs-cursor-text-select-tool-button =\n    .title = Aktivera textmarkeringsverktyg\npdfjs-cursor-text-select-tool-button-label = Textmarkeringsverktyg\npdfjs-cursor-hand-tool-button =\n    .title = Aktivera handverktyg\npdfjs-cursor-hand-tool-button-label = Handverktyg\npdfjs-scroll-page-button =\n    .title = Använd sidrullning\npdfjs-scroll-page-button-label = Sidrullning\npdfjs-scroll-vertical-button =\n    .title = Använd vertikal rullning\npdfjs-scroll-vertical-button-label = Vertikal rullning\npdfjs-scroll-horizontal-button =\n    .title = Använd horisontell rullning\npdfjs-scroll-horizontal-button-label = Horisontell rullning\npdfjs-scroll-wrapped-button =\n    .title = Använd överlappande rullning\npdfjs-scroll-wrapped-button-label = Överlappande rullning\npdfjs-spread-none-button =\n    .title = Visa enkelsidor\npdfjs-spread-none-button-label = Enkelsidor\npdfjs-spread-odd-button =\n    .title = Visa uppslag med olika sidnummer till vänster\npdfjs-spread-odd-button-label = Uppslag med framsida\npdfjs-spread-even-button =\n    .title = Visa uppslag med lika sidnummer till vänster\npdfjs-spread-even-button-label = Uppslag utan framsida\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Dokumentegenskaper…\npdfjs-document-properties-button-label = Dokumentegenskaper…\npdfjs-document-properties-file-name = Filnamn:\npdfjs-document-properties-file-size = Filstorlek:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } kB ({ $b } byte)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } byte)\npdfjs-document-properties-title = Titel:\npdfjs-document-properties-author = Författare:\npdfjs-document-properties-subject = Ämne:\npdfjs-document-properties-keywords = Nyckelord:\npdfjs-document-properties-creation-date = Skapades:\npdfjs-document-properties-modification-date = Ändrades:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Skapare:\npdfjs-document-properties-producer = PDF-producent:\npdfjs-document-properties-version = PDF-version:\npdfjs-document-properties-page-count = Sidantal:\npdfjs-document-properties-page-size = Pappersstorlek:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = porträtt\npdfjs-document-properties-page-size-orientation-landscape = landskap\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Snabb webbvisning:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Nej\npdfjs-document-properties-close-button = Stäng\n\n## Print\n\npdfjs-print-progress-message = Förbereder sidor för utskrift…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Avbryt\npdfjs-printing-not-supported = Varning: Utskrifter stöds inte helt av den här webbläsaren.\npdfjs-printing-not-ready = Varning: PDF:en är inte klar för utskrift.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Visa/dölj sidofält\npdfjs-toggle-sidebar-notification-button =\n    .title = Växla sidofält (dokumentet innehåller dokumentstruktur/bilagor/lager)\npdfjs-toggle-sidebar-button-label = Visa/dölj sidofält\npdfjs-document-outline-button =\n    .title = Visa dokumentdisposition (dubbelklicka för att expandera/komprimera alla objekt)\npdfjs-document-outline-button-label = Dokumentöversikt\npdfjs-attachments-button =\n    .title = Visa Bilagor\npdfjs-attachments-button-label = Bilagor\npdfjs-layers-button =\n    .title = Visa lager (dubbelklicka för att återställa alla lager till standardläge)\npdfjs-layers-button-label = Lager\npdfjs-thumbs-button =\n    .title = Visa miniatyrer\npdfjs-thumbs-button-label = Miniatyrer\npdfjs-current-outline-item-button =\n    .title = Hitta aktuellt dispositionsobjekt\npdfjs-current-outline-item-button-label = Aktuellt dispositionsobjekt\npdfjs-findbar-button =\n    .title = Sök i dokument\npdfjs-findbar-button-label = Sök\npdfjs-additional-layers = Ytterligare lager\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Sida { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatyr av sida { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Sök\n    .placeholder = Sök i dokument…\npdfjs-find-previous-button =\n    .title = Hitta föregående förekomst av frasen\npdfjs-find-previous-button-label = Föregående\npdfjs-find-next-button =\n    .title = Hitta nästa förekomst av frasen\npdfjs-find-next-button-label = Nästa\npdfjs-find-highlight-checkbox = Markera alla\npdfjs-find-match-case-checkbox-label = Matcha versal/gemen\npdfjs-find-match-diacritics-checkbox-label = Matcha diakritiska tecken\npdfjs-find-entire-word-checkbox-label = Hela ord\npdfjs-find-reached-top = Nådde början av dokumentet, började från slutet\npdfjs-find-reached-bottom = Nådde slutet på dokumentet, började från början\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } av { $total } match\n       *[other] { $current } av { $total } matchningar\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Mer än { $limit } matchning\n       *[other] Fler än { $limit } matchningar\n    }\npdfjs-find-not-found = Frasen hittades inte\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sidbredd\npdfjs-page-scale-fit = Anpassa sida\npdfjs-page-scale-auto = Automatisk zoom\npdfjs-page-scale-actual = Verklig storlek\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Sida { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ett fel uppstod vid laddning av PDF-filen.\npdfjs-invalid-file-error = Ogiltig eller korrupt PDF-fil.\npdfjs-missing-file-error = Saknad PDF-fil.\npdfjs-unexpected-response-error = Oväntat svar från servern.\npdfjs-rendering-error = Ett fel uppstod vid visning av sidan.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-annotering]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Skriv in lösenordet för att öppna PDF-filen.\npdfjs-password-invalid = Ogiltigt lösenord. Försök igen.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Avbryt\npdfjs-web-fonts-disabled = Webbtypsnitt är inaktiverade: kan inte använda inbäddade PDF-typsnitt.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Text\npdfjs-editor-color-picker-free-text-input =\n    .title = Ändra textfärg\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n    .title = Rita\npdfjs-editor-color-picker-ink-input =\n    .title = Ändra ritningsfärg\npdfjs-editor-ink-button-label = Rita\npdfjs-editor-stamp-button =\n    .title = Lägg till eller redigera bilder\npdfjs-editor-stamp-button-label = Lägg till eller redigera bilder\npdfjs-editor-highlight-button =\n    .title = Markera\npdfjs-editor-highlight-button-label = Markera\npdfjs-highlight-floating-button1 =\n    .title = Markera\n    .aria-label = Markera\npdfjs-highlight-floating-button-label = Markera\npdfjs-comment-floating-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-comment-floating-button-label = Kommentar\npdfjs-editor-comment-button =\n    .title = Kommentar\n    .aria-label = Kommentar\npdfjs-editor-comment-button-label = Kommentar\npdfjs-editor-signature-button =\n    .title = Lägg till signatur\npdfjs-editor-signature-button-label = Lägg till signatur\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Markeringsredigerare\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Ritredigerare\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Signaturredigerare: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Bildredigerare\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Ta bort ritning\npdfjs-editor-remove-freetext-button =\n    .title = Ta bort text\npdfjs-editor-remove-stamp-button =\n    .title = Ta bort bild\npdfjs-editor-remove-highlight-button =\n    .title = Ta bort markering\npdfjs-editor-remove-signature-button =\n    .title = Ta bort signatur\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Färg\npdfjs-editor-free-text-size-input = Storlek\npdfjs-editor-ink-color-input = Färg\npdfjs-editor-ink-thickness-input = Tjocklek\npdfjs-editor-ink-opacity-input = Opacitet\npdfjs-editor-stamp-add-image-button =\n    .title = Lägg till bild\npdfjs-editor-stamp-add-image-button-label = Lägg till bild\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Tjocklek\npdfjs-editor-free-highlight-thickness-title =\n    .title = Ändra tjocklek när du markerar andra objekt än text\npdfjs-editor-add-signature-container =\n    .aria-label = Signaturkontroller och sparade signaturer\npdfjs-editor-signature-add-signature-button =\n    .title = Lägg till ny signatur\npdfjs-editor-signature-add-signature-button-label = Lägg till ny signatur\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Sparad signatur: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Textredigerare\n    .default-content = Börja skriva…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Kommentar\n       *[other] Kommentarer\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Stäng sidofältet\n    .aria-label = Stäng sidofältet\npdfjs-editor-comments-sidebar-close-button-label = Stäng sidofältet\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Ser du något anmärkningsvärt? Markera det och lämna en kommentar.\npdfjs-editor-comments-sidebar-no-comments-link = Läs mer\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternativ text\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Redigera alternativ text\npdfjs-editor-alt-text-dialog-label = Välj ett alternativ\npdfjs-editor-alt-text-dialog-description = Alt text (alternativ text) hjälper till när människor inte kan se bilden eller när den inte laddas.\npdfjs-editor-alt-text-add-description-label = Lägg till en beskrivning\npdfjs-editor-alt-text-add-description-description = Sikta på 1-2 meningar som beskriver ämnet, miljön eller handlingen.\npdfjs-editor-alt-text-mark-decorative-label = Markera som dekorativ\npdfjs-editor-alt-text-mark-decorative-description = Detta används för dekorativa bilder, som kanter eller vattenstämplar.\npdfjs-editor-alt-text-cancel-button = Avbryt\npdfjs-editor-alt-text-save-button = Spara\npdfjs-editor-alt-text-decorative-tooltip = Märkt som dekorativ\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Till exempel, \"En ung man sätter sig vid ett bord för att äta en måltid\"\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternativ text\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Det övre vänstra hörnet — ändra storlek\npdfjs-editor-resizer-top-middle =\n    .aria-label = Överst i mitten — ändra storlek\npdfjs-editor-resizer-top-right =\n    .aria-label = Det övre högra hörnet — ändra storlek\npdfjs-editor-resizer-middle-right =\n    .aria-label = Mitten höger — ändra storlek\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Nedre högra hörnet — ändra storlek\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Nedre mitten — ändra storlek\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Nedre vänstra hörnet — ändra storlek\npdfjs-editor-resizer-middle-left =\n    .aria-label = Mitten till vänster — ändra storlek\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Markeringsfärg\npdfjs-editor-colorpicker-button =\n    .title = Ändra färg\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Färgval\npdfjs-editor-colorpicker-yellow =\n    .title = Gul\npdfjs-editor-colorpicker-green =\n    .title = Grön\npdfjs-editor-colorpicker-blue =\n    .title = Blå\npdfjs-editor-colorpicker-pink =\n    .title = Rosa\npdfjs-editor-colorpicker-red =\n    .title = Röd\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Visa alla\npdfjs-editor-highlight-show-all-button =\n    .title = Visa alla\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Redigera alternativ text (bildbeskrivning)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Lägg till alternativ text (bildbeskrivning)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Skriv din beskrivning här…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Kort beskrivning för personer som inte kan se bilden eller när bilden inte laddas.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Denna alternativa text skapades automatiskt och kan vara felaktig.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Läs mer\npdfjs-editor-new-alt-text-create-automatically-button-label = Skapa alternativ text automatiskt\npdfjs-editor-new-alt-text-not-now-button = Inte nu\npdfjs-editor-new-alt-text-error-title = Det gick inte att skapa alternativ text automatiskt\npdfjs-editor-new-alt-text-error-description = Skriv din egna alternativa text eller försök igen senare.\npdfjs-editor-new-alt-text-error-close-button = Stäng\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Hämtar AI-modell med alternativ text ({ $downloadedSize } av { $totalSize } MB)\n    .aria-valuetext = Hämtar AI-modell med alternativ text ({ $downloadedSize } av { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternativ text tillagd\npdfjs-editor-new-alt-text-added-button-label = Alternativ text tillagd\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Saknar alternativ text\npdfjs-editor-new-alt-text-missing-button-label = Saknar alternativ text\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Granska alternativ text\npdfjs-editor-new-alt-text-to-review-button-label = Granska alternativ text\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Skapas automatiskt: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Alternativ textinställningar för bild\npdfjs-image-alt-text-settings-button-label = Alternativ textinställningar för bild\npdfjs-editor-alt-text-settings-dialog-label = Alternativ textinställningar för bild\npdfjs-editor-alt-text-settings-automatic-title = Automatisk alternativ text\npdfjs-editor-alt-text-settings-create-model-button-label = Skapa alternativ text automatiskt\npdfjs-editor-alt-text-settings-create-model-description = Föreslår beskrivningar för att hjälpa personer som inte kan se bilden eller när bilden inte laddas.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = AI-modell för alternativ text ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Körs lokalt på din enhet så att din data förblir privat. Krävs för automatisk alternativ text.\npdfjs-editor-alt-text-settings-delete-model-button = Ta bort\npdfjs-editor-alt-text-settings-download-model-button = Hämta\npdfjs-editor-alt-text-settings-downloading-model-button = Hämtar…\npdfjs-editor-alt-text-settings-editor-title = Alternativ textredigerare\npdfjs-editor-alt-text-settings-show-dialog-button-label = Visa alternativ textredigerare direkt när du lägger till en bild\npdfjs-editor-alt-text-settings-show-dialog-description = Hjälper dig att se till att alla dina bilder har alternativ text.\npdfjs-editor-alt-text-settings-close-button = Stäng\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Markering tillagd\npdfjs-editor-freetext-added-alert = Text tillagd\npdfjs-editor-ink-added-alert = Ritning tillagd\npdfjs-editor-stamp-added-alert = Bild tillagd\npdfjs-editor-signature-added-alert = Signatur tillagd\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Markering borttagen\npdfjs-editor-undo-bar-message-freetext = Text borttagen\npdfjs-editor-undo-bar-message-ink = Ritning borttagen\npdfjs-editor-undo-bar-message-stamp = Bild borttagen\npdfjs-editor-undo-bar-message-signature = Signatur borttagen\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } anteckning har tagits bort\n       *[other] { $count } anteckningar har tagits bort\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Ångra\npdfjs-editor-undo-bar-undo-button-label = Ångra\npdfjs-editor-undo-bar-close-button =\n    .title = Stäng\npdfjs-editor-undo-bar-close-button-label = Stäng\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Denna modal tillåter användaren att skapa en signatur för att lägga till i ett PDF-dokument. Användaren kan redigera namnet (som också fungerar som alternativ text) och eventuellt spara signaturen för upprepad användning.\npdfjs-editor-add-signature-dialog-title = Lägg till en signatur\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Typ\n    .title = Typ\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Rita\n    .title = Rita\npdfjs-editor-add-signature-image-button = Bild\n    .title = Bild\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Skriv din signatur\n    .placeholder = Skriv din signatur\npdfjs-editor-add-signature-draw-placeholder = Rita din signatur\npdfjs-editor-add-signature-draw-thickness-range-label = Tjocklek\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Ritningstjocklek: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Dra en fil hit för att ladda upp\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Eller välj bildfiler\n       *[other] Eller bläddra bland bildfiler\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Beskrivning (alternativ text)\npdfjs-editor-add-signature-description-input =\n    .title = Beskrivning (alternativ text)\npdfjs-editor-add-signature-description-default-when-drawing = Signatur\npdfjs-editor-add-signature-clear-button-label = Rensa signatur\npdfjs-editor-add-signature-clear-button =\n    .title = Rensa signatur\npdfjs-editor-add-signature-save-checkbox = Spara signatur\npdfjs-editor-add-signature-save-warning-message = Du har nått gränsen på 5 sparade signaturer. Ta bort en för att spara fler.\npdfjs-editor-add-signature-image-upload-error-title = Det gick inte att ladda upp bilden\npdfjs-editor-add-signature-image-upload-error-description = Kontrollera din nätverksanslutning eller försök med en annan bild.\npdfjs-editor-add-signature-image-no-data-error-title = Det går inte att konvertera den här bilden till en signatur\npdfjs-editor-add-signature-image-no-data-error-description = Prova att ladda upp en annan bild.\npdfjs-editor-add-signature-error-close-button = Stäng\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Avbryt\npdfjs-editor-add-signature-add-button = Lägg till\npdfjs-editor-edit-signature-update-button = Uppdatera\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Redigera kommentar\npdfjs-editor-edit-comment-popup-button =\n    .title = Redigera kommentar\npdfjs-editor-delete-comment-popup-button-label = Ta bort kommentar\npdfjs-editor-delete-comment-popup-button =\n    .title = Ta bort kommentar\npdfjs-show-comment-button =\n    .title = Visa kommentar\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Åtgärder\npdfjs-editor-edit-comment-actions-button =\n    .title = Åtgärder\npdfjs-editor-edit-comment-close-button-label = Stäng\npdfjs-editor-edit-comment-close-button =\n    .title = Stäng\npdfjs-editor-edit-comment-actions-edit-button-label = Redigera\npdfjs-editor-edit-comment-actions-delete-button-label = Ta bort\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Ange din kommentar\npdfjs-editor-edit-comment-manager-cancel-button = Avbryt\npdfjs-editor-edit-comment-manager-save-button = Spara\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Redigera kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Uppdatera\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Lägg till kommentar\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Lägg till\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Börja skriva…\npdfjs-editor-edit-comment-dialog-cancel-button = Avbryt\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Redigera kommentar\npdfjs-editor-add-comment-button =\n    .title = Lägg till kommentar\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Ta bort sparad signatur\npdfjs-editor-delete-signature-button-label1 = Ta bort sparad signatur\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Redigera beskrivning\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Redigera beskrivning\n"
  },
  {
    "path": "viewer/locale/szl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Piyrwyjszo strōna\npdfjs-previous-button-label = Piyrwyjszo\npdfjs-next-button =\n    .title = Nastympno strōna\npdfjs-next-button-label = Dalij\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Strōna\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = ze { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } ze { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Zmyńsz\npdfjs-zoom-out-button-label = Zmyńsz\npdfjs-zoom-in-button =\n    .title = Zwiynksz\npdfjs-zoom-in-button-label = Zwiynksz\npdfjs-zoom-select =\n    .title = Srogość\npdfjs-presentation-mode-button =\n    .title = Przełōncz na tryb prezyntacyje\npdfjs-presentation-mode-button-label = Tryb prezyntacyje\npdfjs-open-file-button =\n    .title = Ôdewrzij zbiōr\npdfjs-open-file-button-label = Ôdewrzij\npdfjs-print-button =\n    .title = Durkuj\npdfjs-print-button-label = Durkuj\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Noczynia\npdfjs-tools-button-label = Noczynia\npdfjs-first-page-button =\n    .title = Idź ku piyrszyj strōnie\npdfjs-first-page-button-label = Idź ku piyrszyj strōnie\npdfjs-last-page-button =\n    .title = Idź ku ôstatnij strōnie\npdfjs-last-page-button-label = Idź ku ôstatnij strōnie\npdfjs-page-rotate-cw-button =\n    .title = Zwyrtnij w prawo\npdfjs-page-rotate-cw-button-label = Zwyrtnij w prawo\npdfjs-page-rotate-ccw-button =\n    .title = Zwyrtnij w lewo\npdfjs-page-rotate-ccw-button-label = Zwyrtnij w lewo\npdfjs-cursor-text-select-tool-button =\n    .title = Załōncz noczynie ôbiyranio tekstu\npdfjs-cursor-text-select-tool-button-label = Noczynie ôbiyranio tekstu\npdfjs-cursor-hand-tool-button =\n    .title = Załōncz noczynie rōnczka\npdfjs-cursor-hand-tool-button-label = Noczynie rōnczka\npdfjs-scroll-vertical-button =\n    .title = Używej piōnowego przewijanio\npdfjs-scroll-vertical-button-label = Piōnowe przewijanie\npdfjs-scroll-horizontal-button =\n    .title = Używej poziōmego przewijanio\npdfjs-scroll-horizontal-button-label = Poziōme przewijanie\npdfjs-scroll-wrapped-button =\n    .title = Używej szichtowego przewijanio\npdfjs-scroll-wrapped-button-label = Szichtowe przewijanie\npdfjs-spread-none-button =\n    .title = Niy dowej strōn w widoku po dwie\npdfjs-spread-none-button-label = Po jednyj strōnie\npdfjs-spread-odd-button =\n    .title = Pokoż strōny po dwie; niyporziste po lewyj\npdfjs-spread-odd-button-label = Niyporziste po lewyj\npdfjs-spread-even-button =\n    .title = Pokoż strōny po dwie; porziste po lewyj\npdfjs-spread-even-button-label = Porziste po lewyj\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Włosności dokumyntu…\npdfjs-document-properties-button-label = Włosności dokumyntu…\npdfjs-document-properties-file-name = Miano zbioru:\npdfjs-document-properties-file-size = Srogość zbioru:\npdfjs-document-properties-title = Tytuł:\npdfjs-document-properties-author = Autōr:\npdfjs-document-properties-subject = Tymat:\npdfjs-document-properties-keywords = Kluczowe słowa:\npdfjs-document-properties-creation-date = Data zrychtowanio:\npdfjs-document-properties-modification-date = Data zmiany:\npdfjs-document-properties-creator = Zrychtowane ôd:\npdfjs-document-properties-producer = PDF ôd:\npdfjs-document-properties-version = Wersyjo PDF:\npdfjs-document-properties-page-count = Wielość strōn:\npdfjs-document-properties-page-size = Srogość strōny:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = piōnowo\npdfjs-document-properties-page-size-orientation-landscape = poziōmo\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Gibki necowy podglōnd:\npdfjs-document-properties-linearized-yes = Ja\npdfjs-document-properties-linearized-no = Niy\npdfjs-document-properties-close-button = Zawrzij\n\n## Print\n\npdfjs-print-progress-message = Rychtowanie dokumyntu do durku…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Pociep\npdfjs-printing-not-supported = Pozōr: Ta przeglōndarka niy cołkiym ôbsuguje durk.\npdfjs-printing-not-ready = Pozōr: Tyn PDF niy ma za tela zaladowany do durku.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Przełōncz posek na rancie\npdfjs-toggle-sidebar-notification-button =\n    .title = Przełōncz posek na rancie (dokumynt mo struktura/przidowki/warstwy)\npdfjs-toggle-sidebar-button-label = Przełōncz posek na rancie\npdfjs-document-outline-button =\n    .title = Pokoż struktura dokumyntu (tuplowane klikniyncie rozszyrzo/swijo wszyskie elymynta)\npdfjs-document-outline-button-label = Struktura dokumyntu\npdfjs-attachments-button =\n    .title = Pokoż przidowki\npdfjs-attachments-button-label = Przidowki\npdfjs-layers-button =\n    .title = Pokoż warstwy (tuplowane klikniyncie resetuje wszyskie warstwy do bazowego stanu)\npdfjs-layers-button-label = Warstwy\npdfjs-thumbs-button =\n    .title = Pokoż miniatury\npdfjs-thumbs-button-label = Miniatury\npdfjs-findbar-button =\n    .title = Znojdź w dokumyncie\npdfjs-findbar-button-label = Znojdź\npdfjs-additional-layers = Nadbytnie warstwy\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Strōna { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Miniatura strōny { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Znojdź\n    .placeholder = Znojdź w dokumyncie…\npdfjs-find-previous-button =\n    .title = Znojdź piyrwyjsze pokozanie sie tyj frazy\npdfjs-find-previous-button-label = Piyrwyjszo\npdfjs-find-next-button =\n    .title = Znojdź nastympne pokozanie sie tyj frazy\npdfjs-find-next-button-label = Dalij\npdfjs-find-highlight-checkbox = Zaznacz wszysko\npdfjs-find-match-case-checkbox-label = Poznowej srogość liter\npdfjs-find-entire-word-checkbox-label = Cołke słowa\npdfjs-find-reached-top = Doszło do samego wiyrchu strōny, dalij ôd spodku\npdfjs-find-reached-bottom = Doszło do samego spodku strōny, dalij ôd wiyrchu\npdfjs-find-not-found = Fraza niy znaleziōno\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Szyrzka strōny\npdfjs-page-scale-fit = Napasowanie strōny\npdfjs-page-scale-auto = Autōmatyczno srogość\npdfjs-page-scale-actual = Aktualno srogość\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Przi ladowaniu PDFa pokozoł sie feler.\npdfjs-invalid-file-error = Zły abo felerny zbiōr PDF.\npdfjs-missing-file-error = Chybio zbioru PDF.\npdfjs-unexpected-response-error = Niyôczekowano ôdpowiydź serwera.\npdfjs-rendering-error = Przi renderowaniu strōny pokozoł sie feler.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Anotacyjo typu { $type }]\n\n## Password\n\npdfjs-password-label = Wkludź hasło, coby ôdewrzić tyn zbiōr PDF.\npdfjs-password-invalid = Hasło je złe. Sprōbuj jeszcze roz.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Pociep\npdfjs-web-fonts-disabled = Necowe fōnty sōm zastawiōne: niy idzie użyć wkludzōnych fōntōw PDF.\n"
  },
  {
    "path": "viewer/locale/ta/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = முந்தைய பக்கம்\npdfjs-previous-button-label = முந்தையது\npdfjs-next-button =\n    .title = அடுத்த பக்கம்\npdfjs-next-button-label = அடுத்து\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = பக்கம்\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } இல்\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = { $pagesCount }) இல் ({ $pageNumber }\npdfjs-zoom-out-button =\n    .title = சிறிதாக்கு\npdfjs-zoom-out-button-label = சிறிதாக்கு\npdfjs-zoom-in-button =\n    .title = பெரிதாக்கு\npdfjs-zoom-in-button-label = பெரிதாக்கு\npdfjs-zoom-select =\n    .title = பெரிதாக்கு\npdfjs-presentation-mode-button =\n    .title = விளக்ககாட்சி பயன்முறைக்கு மாறு\npdfjs-presentation-mode-button-label = விளக்ககாட்சி பயன்முறை\npdfjs-open-file-button =\n    .title = கோப்பினை திற\npdfjs-open-file-button-label = திற\npdfjs-print-button =\n    .title = அச்சிடு\npdfjs-print-button-label = அச்சிடு\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = கருவிகள்\npdfjs-tools-button-label = கருவிகள்\npdfjs-first-page-button =\n    .title = முதல் பக்கத்திற்கு செல்லவும்\npdfjs-first-page-button-label = முதல் பக்கத்திற்கு செல்லவும்\npdfjs-last-page-button =\n    .title = கடைசி பக்கத்திற்கு செல்லவும்\npdfjs-last-page-button-label = கடைசி பக்கத்திற்கு செல்லவும்\npdfjs-page-rotate-cw-button =\n    .title = வலஞ்சுழியாக சுழற்று\npdfjs-page-rotate-cw-button-label = வலஞ்சுழியாக சுழற்று\npdfjs-page-rotate-ccw-button =\n    .title = இடஞ்சுழியாக சுழற்று\npdfjs-page-rotate-ccw-button-label = இடஞ்சுழியாக சுழற்று\npdfjs-cursor-text-select-tool-button =\n    .title = உரைத் தெரிவு கருவியைச் செயல்படுத்து\npdfjs-cursor-text-select-tool-button-label = உரைத் தெரிவு கருவி\npdfjs-cursor-hand-tool-button =\n    .title = கைக் கருவிக்ச் செயற்படுத்து\npdfjs-cursor-hand-tool-button-label = கைக்குருவி\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = ஆவண பண்புகள்...\npdfjs-document-properties-button-label = ஆவண பண்புகள்...\npdfjs-document-properties-file-name = கோப்பு பெயர்:\npdfjs-document-properties-file-size = கோப்பின் அளவு:\npdfjs-document-properties-title = தலைப்பு:\npdfjs-document-properties-author = எழுதியவர்\npdfjs-document-properties-subject = பொருள்:\npdfjs-document-properties-keywords = முக்கிய வார்த்தைகள்:\npdfjs-document-properties-creation-date = படைத்த தேதி :\npdfjs-document-properties-modification-date = திருத்திய தேதி:\npdfjs-document-properties-creator = உருவாக்குபவர்:\npdfjs-document-properties-producer = பிடிஎஃப் தயாரிப்பாளர்:\npdfjs-document-properties-version = PDF பதிப்பு:\npdfjs-document-properties-page-count = பக்க எண்ணிக்கை:\npdfjs-document-properties-page-size = பக்க அளவு:\npdfjs-document-properties-page-size-unit-inches = இதில்\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = நிலைபதிப்பு\npdfjs-document-properties-page-size-orientation-landscape = நிலைபரப்பு\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = கடிதம்\npdfjs-document-properties-page-size-name-legal = சட்டபூர்வ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-close-button = மூடுக\n\n## Print\n\npdfjs-print-progress-message = அச்சிடுவதற்கான ஆவணம் தயாராகிறது...\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ரத்து\npdfjs-printing-not-supported = எச்சரிக்கை: இந்த உலாவி அச்சிடுதலை முழுமையாக ஆதரிக்கவில்லை.\npdfjs-printing-not-ready = எச்சரிக்கை: PDF அச்சிட முழுவதுமாக ஏற்றப்படவில்லை.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = பக்கப் பட்டியை நிலைமாற்று\npdfjs-toggle-sidebar-button-label = பக்கப் பட்டியை நிலைமாற்று\npdfjs-document-outline-button =\n    .title = ஆவண அடக்கத்தைக் காட்டு (இருமுறைச் சொடுக்கி அனைத்து உறுப்பிடிகளையும் விரி/சேர்)\npdfjs-document-outline-button-label = ஆவண வெளிவரை\npdfjs-attachments-button =\n    .title = இணைப்புகளை காண்பி\npdfjs-attachments-button-label = இணைப்புகள்\npdfjs-thumbs-button =\n    .title = சிறுபடங்களைக் காண்பி\npdfjs-thumbs-button-label = சிறுபடங்கள்\npdfjs-findbar-button =\n    .title = ஆவணத்தில் கண்டறி\npdfjs-findbar-button-label = தேடு\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = பக்கம் { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = பக்கத்தின் சிறுபடம் { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = கண்டுபிடி\n    .placeholder = ஆவணத்தில் கண்டறி…\npdfjs-find-previous-button =\n    .title = இந்த சொற்றொடரின் முந்தைய நிகழ்வை தேடு\npdfjs-find-previous-button-label = முந்தையது\npdfjs-find-next-button =\n    .title = இந்த சொற்றொடரின் அடுத்த நிகழ்வை தேடு\npdfjs-find-next-button-label = அடுத்து\npdfjs-find-highlight-checkbox = அனைத்தையும் தனிப்படுத்து\npdfjs-find-match-case-checkbox-label = பேரெழுத்தாக்கத்தை உணர்\npdfjs-find-reached-top = ஆவணத்தின் மேல் பகுதியை அடைந்தது, அடிப்பக்கத்திலிருந்து தொடர்ந்தது\npdfjs-find-reached-bottom = ஆவணத்தின் முடிவை அடைந்தது, மேலிருந்து தொடர்ந்தது\npdfjs-find-not-found = சொற்றொடர் காணவில்லை\n\n## Predefined zoom values\n\npdfjs-page-scale-width = பக்க அகலம்\npdfjs-page-scale-fit = பக்கப் பொருத்தம்\npdfjs-page-scale-auto = தானியக்க பெரிதாக்கல்\npdfjs-page-scale-actual = உண்மையான அளவு\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF ஐ ஏற்றும் போது ஒரு பிழை ஏற்பட்டது.\npdfjs-invalid-file-error = செல்லுபடியாகாத அல்லது சிதைந்த PDF கோப்பு.\npdfjs-missing-file-error = PDF கோப்பு காணவில்லை.\npdfjs-unexpected-response-error = சேவகன் பதில் எதிர்பாரதது.\npdfjs-rendering-error = இந்தப் பக்கத்தை காட்சிப்படுத்தும் போது ஒரு பிழை ஏற்பட்டது.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } விளக்கம்]\n\n## Password\n\npdfjs-password-label = இந்த PDF கோப்பை திறக்க கடவுச்சொல்லை உள்ளிடவும்.\npdfjs-password-invalid = செல்லுபடியாகாத கடவுச்சொல், தயை செய்து மீண்டும் முயற்சி செய்க.\npdfjs-password-ok-button = சரி\npdfjs-password-cancel-button = ரத்து\npdfjs-web-fonts-disabled = வலை எழுத்துருக்கள் முடக்கப்பட்டுள்ளன: உட்பொதிக்கப்பட்ட PDF எழுத்துருக்களைப் பயன்படுத்த முடியவில்லை.\n"
  },
  {
    "path": "viewer/locale/te/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = మునుపటి పేజీ\npdfjs-previous-button-label = క్రితం\npdfjs-next-button =\n    .title = తరువాత పేజీ\npdfjs-next-button-label = తరువాత\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = పేజీ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = మొత్తం { $pagesCount } లో\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = (మొత్తం { $pagesCount } లో { $pageNumber }వది)\npdfjs-zoom-out-button =\n    .title = జూమ్ తగ్గించు\npdfjs-zoom-out-button-label = జూమ్ తగ్గించు\npdfjs-zoom-in-button =\n    .title = జూమ్ చేయి\npdfjs-zoom-in-button-label = జూమ్ చేయి\npdfjs-zoom-select =\n    .title = జూమ్\npdfjs-presentation-mode-button =\n    .title = ప్రదర్శనా రీతికి మారు\npdfjs-presentation-mode-button-label = ప్రదర్శనా రీతి\npdfjs-open-file-button =\n    .title = ఫైల్ తెరువు\npdfjs-open-file-button-label = తెరువు\npdfjs-print-button =\n    .title = ముద్రించు\npdfjs-print-button-label = ముద్రించు\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = పనిముట్లు\npdfjs-tools-button-label = పనిముట్లు\npdfjs-first-page-button =\n    .title = మొదటి పేజీకి వెళ్ళు\npdfjs-first-page-button-label = మొదటి పేజీకి వెళ్ళు\npdfjs-last-page-button =\n    .title = చివరి పేజీకి వెళ్ళు\npdfjs-last-page-button-label = చివరి పేజీకి వెళ్ళు\npdfjs-page-rotate-cw-button =\n    .title = సవ్యదిశలో తిప్పు\npdfjs-page-rotate-cw-button-label = సవ్యదిశలో తిప్పు\npdfjs-page-rotate-ccw-button =\n    .title = అపసవ్యదిశలో తిప్పు\npdfjs-page-rotate-ccw-button-label = అపసవ్యదిశలో తిప్పు\npdfjs-cursor-text-select-tool-button =\n    .title = టెక్స్ట్ ఎంపిక సాధనాన్ని ప్రారంభించండి\npdfjs-cursor-text-select-tool-button-label = టెక్స్ట్ ఎంపిక సాధనం\npdfjs-cursor-hand-tool-button =\n    .title = చేతి సాధనం చేతనించు\npdfjs-cursor-hand-tool-button-label = చేతి సాధనం\npdfjs-scroll-vertical-button-label = నిలువు స్క్రోలింగు\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = పత్రము లక్షణాలు...\npdfjs-document-properties-button-label = పత్రము లక్షణాలు...\npdfjs-document-properties-file-name = దస్త్రం పేరు:\npdfjs-document-properties-file-size = దస్త్రం పరిమాణం:\npdfjs-document-properties-title = శీర్షిక:\npdfjs-document-properties-author = మూలకర్త:\npdfjs-document-properties-subject = విషయం:\npdfjs-document-properties-keywords = కీ పదాలు:\npdfjs-document-properties-creation-date = సృష్టించిన తేదీ:\npdfjs-document-properties-modification-date = సవరించిన తేదీ:\npdfjs-document-properties-creator = సృష్టికర్త:\npdfjs-document-properties-producer = PDF ఉత్పాదకి:\npdfjs-document-properties-version = PDF వర్షన్:\npdfjs-document-properties-page-count = పేజీల సంఖ్య:\npdfjs-document-properties-page-size = కాగితం పరిమాణం:\npdfjs-document-properties-page-size-unit-inches = లో\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = నిలువుచిత్రం\npdfjs-document-properties-page-size-orientation-landscape = అడ్డచిత్రం\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = లేఖ\npdfjs-document-properties-page-size-name-legal = చట్టపరమైన\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\npdfjs-document-properties-linearized-yes = అవును\npdfjs-document-properties-linearized-no = కాదు\npdfjs-document-properties-close-button = మూసివేయి\n\n## Print\n\npdfjs-print-progress-message = ముద్రించడానికి పత్రము సిద్ధమవుతున్నది…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = రద్దుచేయి\npdfjs-printing-not-supported = హెచ్చరిక: ఈ విహారిణి చేత ముద్రణ పూర్తిగా తోడ్పాటు లేదు.\npdfjs-printing-not-ready = హెచ్చరిక: ముద్రణ కొరకు ఈ PDF పూర్తిగా లోడవలేదు.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = పక్కపట్టీ మార్చు\npdfjs-toggle-sidebar-button-label = పక్కపట్టీ మార్చు\npdfjs-document-outline-button =\n    .title = పత్రము రూపము చూపించు (డబుల్ క్లిక్ చేసి అన్ని అంశాలను విస్తరించు/కూల్చు)\npdfjs-document-outline-button-label = పత్రము అవుట్‌లైన్\npdfjs-attachments-button =\n    .title = అనుబంధాలు చూపు\npdfjs-attachments-button-label = అనుబంధాలు\npdfjs-layers-button-label = పొరలు\npdfjs-thumbs-button =\n    .title = థంబ్‌నైల్స్ చూపు\npdfjs-thumbs-button-label = థంబ్‌నైల్స్\npdfjs-findbar-button =\n    .title = పత్రములో కనుగొనుము\npdfjs-findbar-button-label = కనుగొను\npdfjs-additional-layers = అదనపు పొరలు\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = పేజీ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } పేజీ నఖచిత్రం\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = కనుగొను\n    .placeholder = పత్రములో కనుగొను…\npdfjs-find-previous-button =\n    .title = పదం యొక్క ముందు సంభవాన్ని కనుగొను\npdfjs-find-previous-button-label = మునుపటి\npdfjs-find-next-button =\n    .title = పదం యొక్క తర్వాతి సంభవాన్ని కనుగొను\npdfjs-find-next-button-label = తరువాత\npdfjs-find-highlight-checkbox = అన్నిటిని ఉద్దీపనం చేయుము\npdfjs-find-match-case-checkbox-label = అక్షరముల తేడాతో పోల్చు\npdfjs-find-entire-word-checkbox-label = పూర్తి పదాలు\npdfjs-find-reached-top = పేజీ పైకి చేరుకున్నది, క్రింది నుండి కొనసాగించండి\npdfjs-find-reached-bottom = పేజీ చివరకు చేరుకున్నది, పైనుండి కొనసాగించండి\npdfjs-find-not-found = పదబంధం కనబడలేదు\n\n## Predefined zoom values\n\npdfjs-page-scale-width = పేజీ వెడల్పు\npdfjs-page-scale-fit = పేజీ అమర్పు\npdfjs-page-scale-auto = స్వయంచాలక జూమ్\npdfjs-page-scale-actual = యథార్ధ పరిమాణం\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF లోడవుచున్నప్పుడు ఒక దోషం ఎదురైంది.\npdfjs-invalid-file-error = చెల్లని లేదా పాడైన PDF ఫైలు.\npdfjs-missing-file-error = దొరకని PDF ఫైలు.\npdfjs-unexpected-response-error = అనుకోని సర్వర్ స్పందన.\npdfjs-rendering-error = పేజీను రెండర్ చేయుటలో ఒక దోషం ఎదురైంది.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } టీకా]\n\n## Password\n\npdfjs-password-label = ఈ PDF ఫైల్ తెరుచుటకు సంకేతపదం ప్రవేశపెట్టుము.\npdfjs-password-invalid = సంకేతపదం చెల్లదు. దయచేసి మళ్ళీ ప్రయత్నించండి.\npdfjs-password-ok-button = సరే\npdfjs-password-cancel-button = రద్దుచేయి\npdfjs-web-fonts-disabled = వెబ్ ఫాంట్లు అచేతనించబడెను: ఎంబెడెడ్ PDF ఫాంట్లు ఉపయోగించలేక పోయింది.\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = రంగు\npdfjs-editor-free-text-size-input = పరిమాణం\npdfjs-editor-ink-color-input = రంగు\npdfjs-editor-ink-thickness-input = మందం\npdfjs-editor-ink-opacity-input = అకిరణ్యత\n"
  },
  {
    "path": "viewer/locale/tg/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Саҳифаи қаблӣ\npdfjs-previous-button-label = Қаблӣ\npdfjs-next-button =\n    .title = Саҳифаи навбатӣ\npdfjs-next-button-label = Навбатӣ\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Саҳифа\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = аз { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } аз { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Хурд кардан\npdfjs-zoom-out-button-label = Хурд кардан\npdfjs-zoom-in-button =\n    .title = Калон кардан\npdfjs-zoom-in-button-label = Калон кардан\npdfjs-zoom-select =\n    .title = Танзими андоза\npdfjs-presentation-mode-button =\n    .title = Гузариш ба реҷаи тақдим\npdfjs-presentation-mode-button-label = Реҷаи тақдим\npdfjs-open-file-button =\n    .title = Кушодани файл\npdfjs-open-file-button-label = Кушодан\npdfjs-print-button =\n    .title = Чоп кардан\npdfjs-print-button-label = Чоп кардан\npdfjs-save-button =\n    .title = Нигоҳ доштан\npdfjs-save-button-label = Нигоҳ доштан\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Боргирӣ кардан\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Боргирӣ кардан\npdfjs-bookmark-button =\n    .title = Саҳифаи ҷорӣ (Дидани нишонии URL аз саҳифаи ҷорӣ)\npdfjs-bookmark-button-label = Саҳифаи ҷорӣ\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Абзорҳо\npdfjs-tools-button-label = Абзорҳо\npdfjs-first-page-button =\n    .title = Ба саҳифаи аввал гузаред\npdfjs-first-page-button-label = Ба саҳифаи аввал гузаред\npdfjs-last-page-button =\n    .title = Ба саҳифаи охирин гузаред\npdfjs-last-page-button-label = Ба саҳифаи охирин гузаред\npdfjs-page-rotate-cw-button =\n    .title = Ба самти ҳаракати ақрабаки соат давр задан\npdfjs-page-rotate-cw-button-label = Ба самти ҳаракати ақрабаки соат давр задан\npdfjs-page-rotate-ccw-button =\n    .title = Ба муқобили самти ҳаракати ақрабаки соат давр задан\npdfjs-page-rotate-ccw-button-label = Ба муқобили самти ҳаракати ақрабаки соат давр задан\npdfjs-cursor-text-select-tool-button =\n    .title = Фаъол кардани «Абзори интихоби матн»\npdfjs-cursor-text-select-tool-button-label = Абзори интихоби матн\npdfjs-cursor-hand-tool-button =\n    .title = Фаъол кардани «Абзори даст»\npdfjs-cursor-hand-tool-button-label = Абзори даст\npdfjs-scroll-page-button =\n    .title = Истифодаи варақзанӣ\npdfjs-scroll-page-button-label = Варақзанӣ\npdfjs-scroll-vertical-button =\n    .title = Истифодаи варақзании амудӣ\npdfjs-scroll-vertical-button-label = Варақзании амудӣ\npdfjs-scroll-horizontal-button =\n    .title = Истифодаи варақзании уфуқӣ\npdfjs-scroll-horizontal-button-label = Варақзании уфуқӣ\npdfjs-scroll-wrapped-button =\n    .title = Истифодаи варақзании миқёсбандӣ\npdfjs-scroll-wrapped-button-label = Варақзании миқёсбандӣ\npdfjs-spread-none-button =\n    .title = Густариши саҳифаҳо истифода бурда нашавад\npdfjs-spread-none-button-label = Бе густурдани саҳифаҳо\npdfjs-spread-odd-button =\n    .title = Густариши саҳифаҳо аз саҳифаҳо бо рақамҳои тоқ оғоз карда мешавад\npdfjs-spread-odd-button-label = Саҳифаҳои тоқ аз тарафи чап\npdfjs-spread-even-button =\n    .title = Густариши саҳифаҳо аз саҳифаҳо бо рақамҳои ҷуфт оғоз карда мешавад\npdfjs-spread-even-button-label = Саҳифаҳои ҷуфт аз тарафи чап\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Хусусиятҳои ҳуҷҷат…\npdfjs-document-properties-button-label = Хусусиятҳои ҳуҷҷат…\npdfjs-document-properties-file-name = Номи файл:\npdfjs-document-properties-file-size = Андозаи файл:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } КБ ({ $b } байт)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байт)\npdfjs-document-properties-title = Сарлавҳа:\npdfjs-document-properties-author = Муаллиф:\npdfjs-document-properties-subject = Мавзуъ:\npdfjs-document-properties-keywords = Калимаҳои калидӣ:\npdfjs-document-properties-creation-date = Санаи эҷод:\npdfjs-document-properties-modification-date = Санаи тағйирот:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Эҷодкунанда:\npdfjs-document-properties-producer = Таҳиякунандаи «PDF»:\npdfjs-document-properties-version = Версияи «PDF»:\npdfjs-document-properties-page-count = Шумораи саҳифаҳо:\npdfjs-document-properties-page-size = Андозаи саҳифа:\npdfjs-document-properties-page-size-unit-inches = дюйм\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = амудӣ\npdfjs-document-properties-page-size-orientation-landscape = уфуқӣ\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Мактуб\npdfjs-document-properties-page-size-name-legal = Ҳуқуқӣ\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Намоиши тез дар Интернет:\npdfjs-document-properties-linearized-yes = Ҳа\npdfjs-document-properties-linearized-no = Не\npdfjs-document-properties-close-button = Пӯшидан\n\n## Print\n\npdfjs-print-progress-message = Омодасозии ҳуҷҷат барои чоп…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Бекор кардан\npdfjs-printing-not-supported = Диққат: Чопкунӣ аз тарафи ин браузер ба таври пурра дастгирӣ намешавад.\npdfjs-printing-not-ready = Диққат: Файли «PDF» барои чопкунӣ пурра бор карда нашуд.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Фаъол кардани навори ҷонибӣ\npdfjs-toggle-sidebar-notification-button =\n    .title = Фаъол кардани навори ҷонибӣ (ҳуҷҷат дорои сохтор/замимаҳо/қабатҳо мебошад)\npdfjs-toggle-sidebar-button-label = Фаъол кардани навори ҷонибӣ\npdfjs-document-outline-button =\n    .title = Намоиш додани сохтори ҳуҷҷат (барои баркушодан/пеҷондани ҳамаи унсурҳо дубора зер кунед)\npdfjs-document-outline-button-label = Сохтори ҳуҷҷат\npdfjs-attachments-button =\n    .title = Намоиш додани замимаҳо\npdfjs-attachments-button-label = Замимаҳо\npdfjs-layers-button =\n    .title = Намоиш додани қабатҳо (барои барқарор кардани ҳамаи қабатҳо ба вазъияти пешфарз дубора зер кунед)\npdfjs-layers-button-label = Қабатҳо\npdfjs-thumbs-button =\n    .title = Намоиш додани тасвирчаҳо\npdfjs-thumbs-button-label = Тасвирчаҳо\npdfjs-current-outline-item-button =\n    .title = Ёфтани унсури сохтори ҷорӣ\npdfjs-current-outline-item-button-label = Унсури сохтори ҷорӣ\npdfjs-findbar-button =\n    .title = Ёфтан дар ҳуҷҷат\npdfjs-findbar-button-label = Ёфтан\npdfjs-additional-layers = Қабатҳои иловагӣ\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Саҳифаи { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Тасвирчаи саҳифаи { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Ёфтан\n    .placeholder = Ёфтан дар ҳуҷҷат…\npdfjs-find-previous-button =\n    .title = Ҷустуҷӯи мавриди қаблии ибораи пешниҳодшуда\npdfjs-find-previous-button-label = Қаблӣ\npdfjs-find-next-button =\n    .title = Ҷустуҷӯи мавриди навбатии ибораи пешниҳодшуда\npdfjs-find-next-button-label = Навбатӣ\npdfjs-find-highlight-checkbox = Ҳамаашро бо ранг ҷудо кардан\npdfjs-find-match-case-checkbox-label = Бо дарназардошти ҳарфҳои хурду калон\npdfjs-find-match-diacritics-checkbox-label = Бо дарназардошти аломатҳои диакритикӣ\npdfjs-find-entire-word-checkbox-label = Калимаҳои пурра\npdfjs-find-reached-top = Ба болои ҳуҷҷат расид, аз поён идома ёфт\npdfjs-find-reached-bottom = Ба поёни ҳуҷҷат расид, аз боло идома ёфт\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } аз { $total } мувофиқат\n       *[other] { $current } аз { $total } мувофиқат\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Зиёда аз { $limit } мувофиқат\n       *[other] Зиёда аз { $limit } мувофиқат\n    }\npdfjs-find-not-found = Ибора ёфт нашуд\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Аз рӯи паҳнои саҳифа\npdfjs-page-scale-fit = Аз рӯи андозаи саҳифа\npdfjs-page-scale-auto = Андозаи худкор\npdfjs-page-scale-actual = Андозаи воқеӣ\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Саҳифаи { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Ҳангоми боркунии «PDF» хато ба миён омад.\npdfjs-invalid-file-error = Файли «PDF» нодуруст ё вайроншуда мебошад.\npdfjs-missing-file-error = Файли «PDF» ғоиб аст.\npdfjs-unexpected-response-error = Ҷавоби ногаҳон аз сервер.\npdfjs-rendering-error = Ҳангоми шаклсозии саҳифа хато ба миён омад.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Ҳошиянависӣ - { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Барои кушодани ин файли «PDF» ниҳонвожаро ворид кунед.\npdfjs-password-invalid = Ниҳонвожаи нодуруст. Лутфан, аз нав кӯшиш кунед.\npdfjs-password-ok-button = ХУБ\npdfjs-password-cancel-button = Бекор кардан\npdfjs-web-fonts-disabled = Шрифтҳои интернетӣ ғайрифаъоланд: истифодаи шрифтҳои дарунсохти «PDF» ғайриимкон аст.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Матн\npdfjs-editor-color-picker-free-text-input =\n    .title = Иваз кардани ранги матн\npdfjs-editor-free-text-button-label = Матн\npdfjs-editor-ink-button =\n    .title = Расмкашӣ\npdfjs-editor-color-picker-ink-input =\n    .title = Иваз кардани ранги расмкашӣ\npdfjs-editor-ink-button-label = Расмкашӣ\npdfjs-editor-stamp-button =\n    .title = Илова ё таҳрир кардани тасвирҳо\npdfjs-editor-stamp-button-label = Илова ё таҳрир кардани тасвирҳо\npdfjs-editor-highlight-button =\n    .title = Ҷудокунӣ\npdfjs-editor-highlight-button-label = Ҷудокунӣ\npdfjs-highlight-floating-button1 =\n    .title = Ҷудокунӣ\n    .aria-label = Ҷудокунӣ\npdfjs-highlight-floating-button-label = Ҷудокунӣ\npdfjs-comment-floating-button =\n    .title = Шарҳ\n    .aria-label = Шарҳ\npdfjs-comment-floating-button-label = Шарҳ\npdfjs-editor-comment-button =\n    .title = Шарҳ\n    .aria-label = Шарҳ\npdfjs-editor-comment-button-label = Шарҳ\npdfjs-editor-signature-button =\n    .title = Илова кардани имзо\npdfjs-editor-signature-button-label = Илова кардани имзо\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Муҳаррири ҷудокунӣ\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Муҳаррири расмкашӣ\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Муҳаррири имзо: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Муҳаррири тасвир\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Тоза кардани нақша\npdfjs-editor-remove-freetext-button =\n    .title = Тоза кардани матн\npdfjs-editor-remove-stamp-button =\n    .title = Тоза кардани тасвир\npdfjs-editor-remove-highlight-button =\n    .title = Тоза кардани ҷудокунӣ\npdfjs-editor-remove-signature-button =\n    .title = Тоза кардани имзо\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Ранг\npdfjs-editor-free-text-size-input = Андоза\npdfjs-editor-ink-color-input = Ранг\npdfjs-editor-ink-thickness-input = Ғафсӣ\npdfjs-editor-ink-opacity-input = Шаффофӣ\npdfjs-editor-stamp-add-image-button =\n    .title = Илова кардани тасвир\npdfjs-editor-stamp-add-image-button-label = Илова кардани тасвир\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Ғафсӣ\npdfjs-editor-free-highlight-thickness-title =\n    .title = Иваз кардани ғафсӣ ҳангоми ҷудокунии унсурҳо ба ғайр аз матн\npdfjs-editor-add-signature-container =\n    .aria-label = Идоракунии имзоҳо ва имзоҳои гузошташуда\npdfjs-editor-signature-add-signature-button =\n    .title = Илова кардани имзои нав\npdfjs-editor-signature-add-signature-button-label = Илова кардани имзои нав\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Имзои гузошташуда: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Муҳаррири матн\n    .default-content = Матнро ворид кунед…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Шарҳ\n       *[other] Шарҳҳо\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Пӯшидани навори ҷонибӣ\n    .aria-label = Пӯшидани навори ҷонибӣ\npdfjs-editor-comments-sidebar-close-button-label = Пӯшидани навори ҷонибӣ\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Чизи диққатангезро мушоҳида кардед? Онро қайд кунед ва ба он шарҳ гузоред.\npdfjs-editor-comments-sidebar-no-comments-link = Маълумоти бештар\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Матни иловагӣ\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Таҳрир кардани матни ивазкунанда\npdfjs-editor-alt-text-dialog-label = Имконеро интихоб намоед\npdfjs-editor-alt-text-dialog-description = Вақте ки одамон тасвирро дида наметавонанд ё вақте ки тасвир бор карда намешавад, матни иловагӣ (Alt text) кумак мерасонад.\npdfjs-editor-alt-text-add-description-label = Илова кардани тавсиф\npdfjs-editor-alt-text-add-description-description = Кӯшиш кунед, ки 1-2 ҷумлаеро нависед, ки ба мавзӯъ, танзим ё амалҳо тавзеҳ медиҳад.\npdfjs-editor-alt-text-mark-decorative-label = Гузоштан ҳамчун матни ороишӣ\npdfjs-editor-alt-text-mark-decorative-description = Ин барои тасвирҳои ороишӣ, ба монанди марзҳо ё аломатҳои обӣ, истифода мешавад.\npdfjs-editor-alt-text-cancel-button = Бекор кардан\npdfjs-editor-alt-text-save-button = Нигоҳ доштан\npdfjs-editor-alt-text-decorative-tooltip = Ҳамчун матни ороишӣ гузошта шуд\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Барои мисол, «Ман забони тоҷикиро дӯст медорам»\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Матни ивазкунанда\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Кунҷи чапи боло — тағйир додани андоза\npdfjs-editor-resizer-top-middle =\n    .aria-label = Канори миёнаи боло — тағйир додани андоза\npdfjs-editor-resizer-top-right =\n    .aria-label = Кунҷи рости боло — тағйир додани андоза\npdfjs-editor-resizer-middle-right =\n    .aria-label = Канори миёнаи рост — тағйир додани андоза\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Кунҷи рости поён — тағйир додани андоза\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Канори миёнаи поён — тағйир додани андоза\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Кунҷи чапи поён — тағйир додани андоза\npdfjs-editor-resizer-middle-left =\n    .aria-label = Канори миёнаи чап — тағйир додани андоза\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Ранги ҷудокунӣ\npdfjs-editor-colorpicker-button =\n    .title = Иваз кардани ранг\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Интихоби ранг\npdfjs-editor-colorpicker-yellow =\n    .title = Зард\npdfjs-editor-colorpicker-green =\n    .title = Сабз\npdfjs-editor-colorpicker-blue =\n    .title = Кабуд\npdfjs-editor-colorpicker-pink =\n    .title = Гулобӣ\npdfjs-editor-colorpicker-red =\n    .title = Сурх\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Ҳамаро намоиш додан\npdfjs-editor-highlight-show-all-button =\n    .title = Ҳамаро намоиш додан\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Таҳрир кардани матни иловагӣ (тафсири тасвир)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Илова кардани матни иловагӣ (тафсири тасвир)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Тафсири худро дар ин ҷо нависед…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Тавсифи мухтасар барои одамоне, ки аксҳоро дида наметавонанд ё вақте ки аксҳо кушода намешаванд.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Ин матни ивазкунанда ба таври худкор сохта шудааст ва шояд нодуруст бошад.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Маълумоти бештар\npdfjs-editor-new-alt-text-create-automatically-button-label = Ба таври худкор эҷод кардани матни иловагӣ\npdfjs-editor-new-alt-text-not-now-button = Ҳоло не\npdfjs-editor-new-alt-text-error-title = Матни иловагӣ ба таври худкор эҷод карда нашуд\npdfjs-editor-new-alt-text-error-description = Лутфан, матни иловагии худро ворид кунед ё баъдтар аз нав кӯшиш кунед.\npdfjs-editor-new-alt-text-error-close-button = Пӯшидан\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Боргирии модели зеҳни сунъӣ (AI) барои матни ивазкунанда ({ $downloadedSize } аз { $totalSize } МБ)\n    .aria-valuetext = Боргирии модели зеҳни сунъӣ (AI) барои матни ивазкунанда ({ $downloadedSize } аз { $totalSize } МБ)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Матни иловагӣ илова карда шуд\npdfjs-editor-new-alt-text-added-button-label = Матни иловагӣ илова карда шуд\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Матни иловагӣ вуҷуд надорад\npdfjs-editor-new-alt-text-missing-button-label = Матни иловагӣ вуҷуд надорад\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Бознигарӣ кардани матни иловагӣ\npdfjs-editor-new-alt-text-to-review-button-label = Бознигарӣ кардани матни иловагӣ\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Ба таври худкор сохта шудааст: «{ $generatedAltText }»\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Танзимоти матни иловагии тасвир\npdfjs-image-alt-text-settings-button-label = Танзимоти матни иловагии тасвир\npdfjs-editor-alt-text-settings-dialog-label = Танзимоти матни иловагии тасвир\npdfjs-editor-alt-text-settings-automatic-title = Матни иловагии худкор\npdfjs-editor-alt-text-settings-create-model-button-label = Ба таври худкор эҷод кардани матни иловагӣ\npdfjs-editor-alt-text-settings-create-model-description = Ин имкон барои расонидани кумак ба одамоне, ки аксҳоро дида наметавонанд ё вақте ки аксҳо кушода намешаванд, тавсифи аксҳоро пешниҳод мекунад.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Модели зеҳни сунъӣ «AI» барои матни ивазкунанда ({ $totalSize } МБ)\npdfjs-editor-alt-text-settings-ai-model-description = Дар дастгоҳи шумо ба таври маҳаллӣ кор мекунад, бинобар ин махфияти маълумоти шахсии шумо нигоҳ дошта мешавад. Барои матни ивазкунандаи худкор лозим аст.\npdfjs-editor-alt-text-settings-delete-model-button = Нест кардан\npdfjs-editor-alt-text-settings-download-model-button = Боргирӣ кардан\npdfjs-editor-alt-text-settings-downloading-model-button = Дар ҳоли боргирӣ…\npdfjs-editor-alt-text-settings-editor-title = Муҳаррири матни иловагӣ\npdfjs-editor-alt-text-settings-show-dialog-button-label = Дарҳол нишон додани муҳаррири матни ивазкунанда ҳангоми иловакунии тасвир\npdfjs-editor-alt-text-settings-show-dialog-description = Ба шумо кумак мекунад, ки боварӣ ҳосил кунед, ки ҳамаи тасвирҳои шумо дорои матни ивазкунанда мебошанд.\npdfjs-editor-alt-text-settings-close-button = Пӯшидан\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Ҷудокунӣ илова карда шуд\npdfjs-editor-freetext-added-alert = Матн илова карда шуд\npdfjs-editor-ink-added-alert = Расм илова карда шуд\npdfjs-editor-stamp-added-alert = Тасвир илова карда шуд\npdfjs-editor-signature-added-alert = Имзо илова карда шуд\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Ҷудосозӣ тоза карда шуд\npdfjs-editor-undo-bar-message-freetext = Матн тоза карда шуд\npdfjs-editor-undo-bar-message-ink = Расм тоза карда шуд\npdfjs-editor-undo-bar-message-stamp = Тасвир тоза карда шуд\npdfjs-editor-undo-bar-message-signature = Имзо тоза карда шуд\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } ҳошиянависӣ тоза карда шуд\n       *[other] { $count } ҳошиянависӣ тоза карда шуданд\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Бекор кардан\npdfjs-editor-undo-bar-undo-button-label = Бекор кардан\npdfjs-editor-undo-bar-close-button =\n    .title = Пӯшидан\npdfjs-editor-undo-bar-close-button-label = Пӯшидан\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Ин равзанаи зоҳирӣ ба корбар имкон медиҳад, ки тавонад имзоеро эҷод карда, ба ҳуҷҷати «PDF» илова намояд. Корбар метавонад номро таҳрир кунад (ном, инчунин, ҳамчун матни иловагӣ хизмат мекунад), ва ихтиёран имзоро барои истифодаи такрорӣ нигоҳ медорад.\npdfjs-editor-add-signature-dialog-title = Илова кардани имзо\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Нависед\n    .title = Нависед\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Имзо гузоред\n    .title = Имзо гузоред\npdfjs-editor-add-signature-image-button = Тасвир\n    .title = Тасвир\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Имзои худро бо ном нависед\n    .placeholder = Имзои худро бо ном нависед\npdfjs-editor-add-signature-draw-placeholder = Имзои худро кашида, гузоред\npdfjs-editor-add-signature-draw-thickness-range-label = Ғафсӣ\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Ғафсии имзо: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Барои бор кардани файл, онро дар ин ҷой кашида, гузоред\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Ё файлҳои тасвириро интихоб кунед\n       *[other] Ё файлҳои тасвириро интихоб кунед\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Тавсиф (матни иловагӣ)\npdfjs-editor-add-signature-description-input =\n    .title = Тавсиф (матни иловагӣ)\npdfjs-editor-add-signature-description-default-when-drawing = Имзо\npdfjs-editor-add-signature-clear-button-label = Пок кардани имзо\npdfjs-editor-add-signature-clear-button =\n    .title = Пок кардани имзо\npdfjs-editor-add-signature-save-checkbox = Нигоҳ доштани имзо\npdfjs-editor-add-signature-save-warning-message = Шумо ба ҳадди 5 имзои нигоҳдошташуда расидед. Барои нигоҳ доштани имзои нав, яке аз имзоҳои нигоҳдошташударо тоза намоед.\npdfjs-editor-add-signature-image-upload-error-title = Тасвир бор карда нашуд\npdfjs-editor-add-signature-image-upload-error-description = Пайвастшавии шабакаи худро санҷед ё тасвири дигареро кӯшиш кунед.\npdfjs-editor-add-signature-image-no-data-error-title = Ин тасвир ба имзо табдил дода нашуд\npdfjs-editor-add-signature-image-no-data-error-description = Лутфан, кӯшиш кунед, ки тасвири дигареро бор намоед.\npdfjs-editor-add-signature-error-close-button = Пӯшидан\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Бекор кардан\npdfjs-editor-add-signature-add-button = Илова кардан\npdfjs-editor-edit-signature-update-button = Навсозӣ кардан\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Таҳрир кардани шарҳ\npdfjs-editor-edit-comment-popup-button =\n    .title = Таҳрир кардани шарҳ\npdfjs-editor-delete-comment-popup-button-label = Тоза кардани шарҳ\npdfjs-editor-delete-comment-popup-button =\n    .title = Тоза кардани шарҳ\npdfjs-show-comment-button =\n    .title = Нишон додани шарҳ\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Амалҳо\npdfjs-editor-edit-comment-actions-button =\n    .title = Амалҳо\npdfjs-editor-edit-comment-close-button-label = Пӯшидан\npdfjs-editor-edit-comment-close-button =\n    .title = Пӯшидан\npdfjs-editor-edit-comment-actions-edit-button-label = Таҳрир кардан\npdfjs-editor-edit-comment-actions-delete-button-label = Нест кардан\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Шарҳи худро ворид кунед\npdfjs-editor-edit-comment-manager-cancel-button = Бекор кардан\npdfjs-editor-edit-comment-manager-save-button = Нигоҳ доштан\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Таҳрир кардани шарҳ\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Навсозӣ кардан\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Илова кардани шарҳ\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Илова кардан\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Нависед…\npdfjs-editor-edit-comment-dialog-cancel-button = Бекор кардан\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Таҳрир кардани шарҳ\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Тоза кардани имзои гузошташуда\npdfjs-editor-delete-signature-button-label1 = Тоза кардани имзои гузошташуда\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Таҳрир кардани тавсиф\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Таҳрир кардани тавсиф\n"
  },
  {
    "path": "viewer/locale/th/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = หน้าก่อนหน้า\npdfjs-previous-button-label = ก่อนหน้า\npdfjs-next-button =\n    .title = หน้าถัดไป\npdfjs-next-button-label = ถัดไป\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = หน้า\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = จาก { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } จาก { $pagesCount })\npdfjs-zoom-out-button =\n    .title = ซูมออก\npdfjs-zoom-out-button-label = ซูมออก\npdfjs-zoom-in-button =\n    .title = ซูมเข้า\npdfjs-zoom-in-button-label = ซูมเข้า\npdfjs-zoom-select =\n    .title = ซูม\npdfjs-presentation-mode-button =\n    .title = สลับเป็นโหมดการนำเสนอ\npdfjs-presentation-mode-button-label = โหมดการนำเสนอ\npdfjs-open-file-button =\n    .title = เปิดไฟล์\npdfjs-open-file-button-label = เปิด\npdfjs-print-button =\n    .title = พิมพ์\npdfjs-print-button-label = พิมพ์\npdfjs-save-button =\n    .title = บันทึก\npdfjs-save-button-label = บันทึก\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = ดาวน์โหลด\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = ดาวน์โหลด\npdfjs-bookmark-button =\n    .title = หน้าปัจจุบัน (ดู URL จากหน้าปัจจุบัน)\npdfjs-bookmark-button-label = หน้าปัจจุบัน\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = เครื่องมือ\npdfjs-tools-button-label = เครื่องมือ\npdfjs-first-page-button =\n    .title = ไปยังหน้าแรก\npdfjs-first-page-button-label = ไปยังหน้าแรก\npdfjs-last-page-button =\n    .title = ไปยังหน้าสุดท้าย\npdfjs-last-page-button-label = ไปยังหน้าสุดท้าย\npdfjs-page-rotate-cw-button =\n    .title = หมุนตามเข็มนาฬิกา\npdfjs-page-rotate-cw-button-label = หมุนตามเข็มนาฬิกา\npdfjs-page-rotate-ccw-button =\n    .title = หมุนทวนเข็มนาฬิกา\npdfjs-page-rotate-ccw-button-label = หมุนทวนเข็มนาฬิกา\npdfjs-cursor-text-select-tool-button =\n    .title = เปิดใช้งานเครื่องมือการเลือกข้อความ\npdfjs-cursor-text-select-tool-button-label = เครื่องมือการเลือกข้อความ\npdfjs-cursor-hand-tool-button =\n    .title = เปิดใช้งานเครื่องมือมือ\npdfjs-cursor-hand-tool-button-label = เครื่องมือมือ\npdfjs-scroll-page-button =\n    .title = ใช้การเลื่อนหน้า\npdfjs-scroll-page-button-label = การเลื่อนหน้า\npdfjs-scroll-vertical-button =\n    .title = ใช้การเลื่อนแนวตั้ง\npdfjs-scroll-vertical-button-label = การเลื่อนแนวตั้ง\npdfjs-scroll-horizontal-button =\n    .title = ใช้การเลื่อนแนวนอน\npdfjs-scroll-horizontal-button-label = การเลื่อนแนวนอน\npdfjs-scroll-wrapped-button =\n    .title = ใช้การเลื่อนแบบคลุม\npdfjs-scroll-wrapped-button-label = เลื่อนแบบคลุม\npdfjs-spread-none-button =\n    .title = ไม่ต้องรวมการกระจายหน้า\npdfjs-spread-none-button-label = ไม่กระจาย\npdfjs-spread-odd-button =\n    .title = รวมการกระจายหน้าเริ่มจากหน้าคี่\npdfjs-spread-odd-button-label = กระจายอย่างเหลือเศษ\npdfjs-spread-even-button =\n    .title = รวมการกระจายหน้าเริ่มจากหน้าคู่\npdfjs-spread-even-button-label = กระจายอย่างเท่าเทียม\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = คุณสมบัติเอกสาร…\npdfjs-document-properties-button-label = คุณสมบัติเอกสาร…\npdfjs-document-properties-file-name = ชื่อไฟล์:\npdfjs-document-properties-file-size = ขนาดไฟล์:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } ไบต์)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } ไบต์)\npdfjs-document-properties-title = ชื่อเรื่อง:\npdfjs-document-properties-author = ผู้สร้าง:\npdfjs-document-properties-subject = ชื่อเรื่อง:\npdfjs-document-properties-keywords = คำสำคัญ:\npdfjs-document-properties-creation-date = วันที่สร้าง:\npdfjs-document-properties-modification-date = วันที่แก้ไข:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = ผู้สร้าง:\npdfjs-document-properties-producer = ผู้ผลิต PDF:\npdfjs-document-properties-version = รุ่น PDF:\npdfjs-document-properties-page-count = จำนวนหน้า:\npdfjs-document-properties-page-size = ขนาดหน้า:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = แนวตั้ง\npdfjs-document-properties-page-size-orientation-landscape = แนวนอน\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = จดหมาย\npdfjs-document-properties-page-size-name-legal = ข้อกฎหมาย\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = มุมมองเว็บแบบรวดเร็ว:\npdfjs-document-properties-linearized-yes = ใช่\npdfjs-document-properties-linearized-no = ไม่\npdfjs-document-properties-close-button = ปิด\n\n## Print\n\npdfjs-print-progress-message = กำลังเตรียมเอกสารสำหรับการพิมพ์…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = ยกเลิก\npdfjs-printing-not-supported = คำเตือน: เบราว์เซอร์นี้ไม่ได้สนับสนุนการพิมพ์อย่างเต็มที่\npdfjs-printing-not-ready = คำเตือน: PDF ไม่ได้รับการโหลดอย่างเต็มที่สำหรับการพิมพ์\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = เปิด/ปิดแถบข้าง\npdfjs-toggle-sidebar-notification-button =\n    .title = เปิด/ปิดแถบข้าง (เอกสารมีเค้าร่าง/ไฟล์แนบ/เลเยอร์)\npdfjs-toggle-sidebar-button-label = เปิด/ปิดแถบข้าง\npdfjs-document-outline-button =\n    .title = แสดงเค้าร่างเอกสาร (คลิกสองครั้งเพื่อขยาย/ยุบรายการทั้งหมด)\npdfjs-document-outline-button-label = เค้าร่างเอกสาร\npdfjs-attachments-button =\n    .title = แสดงไฟล์แนบ\npdfjs-attachments-button-label = ไฟล์แนบ\npdfjs-layers-button =\n    .title = แสดงเลเยอร์ (คลิกสองครั้งเพื่อรีเซ็ตเลเยอร์ทั้งหมดเป็นสถานะเริ่มต้น)\npdfjs-layers-button-label = เลเยอร์\npdfjs-thumbs-button =\n    .title = แสดงภาพขนาดย่อ\npdfjs-thumbs-button-label = ภาพขนาดย่อ\npdfjs-current-outline-item-button =\n    .title = ค้นหารายการเค้าร่างปัจจุบัน\npdfjs-current-outline-item-button-label = รายการเค้าร่างปัจจุบัน\npdfjs-findbar-button =\n    .title = ค้นหาในเอกสาร\npdfjs-findbar-button-label = ค้นหา\npdfjs-additional-layers = เลเยอร์เพิ่มเติม\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = หน้า { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = ภาพขนาดย่อของหน้า { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ค้นหา\n    .placeholder = ค้นหาในเอกสาร…\npdfjs-find-previous-button =\n    .title = หาตำแหน่งก่อนหน้าของวลี\npdfjs-find-previous-button-label = ก่อนหน้า\npdfjs-find-next-button =\n    .title = หาตำแหน่งถัดไปของวลี\npdfjs-find-next-button-label = ถัดไป\npdfjs-find-highlight-checkbox = เน้นสีทั้งหมด\npdfjs-find-match-case-checkbox-label = ตัวพิมพ์ใหญ่เล็กตรงกัน\npdfjs-find-match-diacritics-checkbox-label = เครื่องหมายกำกับการออกเสียงตรงกัน\npdfjs-find-entire-word-checkbox-label = ทั้งคำ\npdfjs-find-reached-top = ค้นหาถึงจุดเริ่มต้นของหน้า เริ่มค้นต่อจากด้านล่าง\npdfjs-find-reached-bottom = ค้นหาถึงจุดสิ้นสุดหน้า เริ่มค้นต่อจากด้านบน\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = { $current } จาก { $total } รายการที่ตรงกัน\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = มากกว่า { $limit } รายการที่ตรงกัน\npdfjs-find-not-found = ไม่พบวลี\n\n## Predefined zoom values\n\npdfjs-page-scale-width = ความกว้างหน้า\npdfjs-page-scale-fit = พอดีหน้า\npdfjs-page-scale-auto = ซูมอัตโนมัติ\npdfjs-page-scale-actual = ขนาดจริง\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = หน้า { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = เกิดข้อผิดพลาดขณะโหลด PDF\npdfjs-invalid-file-error = ไฟล์ PDF ไม่ถูกต้องหรือเสียหาย\npdfjs-missing-file-error = ไฟล์ PDF หายไป\npdfjs-unexpected-response-error = การตอบสนองของเซิร์ฟเวอร์ที่ไม่คาดคิด\npdfjs-rendering-error = เกิดข้อผิดพลาดขณะเรนเดอร์หน้า\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [คำอธิบายประกอบ { $type }]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = ป้อนรหัสผ่านเพื่อเปิดไฟล์ PDF นี้\npdfjs-password-invalid = รหัสผ่านไม่ถูกต้อง โปรดลองอีกครั้ง\npdfjs-password-ok-button = ตกลง\npdfjs-password-cancel-button = ยกเลิก\npdfjs-web-fonts-disabled = แบบอักษรเว็บถูกปิดใช้งาน: ไม่สามารถใช้แบบอักษร PDF ฝังตัว\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = ข้อความ\npdfjs-editor-color-picker-free-text-input =\n    .title = เปลี่ยนสีข้อความ\npdfjs-editor-free-text-button-label = ข้อความ\npdfjs-editor-ink-button =\n    .title = รูปวาด\npdfjs-editor-color-picker-ink-input =\n    .title = เปลี่ยนสีรูปวาด\npdfjs-editor-ink-button-label = รูปวาด\npdfjs-editor-stamp-button =\n    .title = เพิ่มหรือแก้ไขภาพ\npdfjs-editor-stamp-button-label = เพิ่มหรือแก้ไขภาพ\npdfjs-editor-highlight-button =\n    .title = เน้น\npdfjs-editor-highlight-button-label = เน้น\npdfjs-highlight-floating-button1 =\n    .title = เน้นสี\n    .aria-label = เน้นสี\npdfjs-highlight-floating-button-label = เน้นสี\npdfjs-comment-floating-button =\n    .title = แสดงความคิดเห็น\n    .aria-label = แสดงความคิดเห็น\npdfjs-comment-floating-button-label = แสดงความคิดเห็น\npdfjs-editor-comment-button =\n    .title = แสดงความคิดเห็น\n    .aria-label = แสดงความคิดเห็น\npdfjs-editor-comment-button-label = ความคิดเห็น\npdfjs-editor-signature-button =\n    .title = เพิ่มลายเซ็น\npdfjs-editor-signature-button-label = เพิ่มลายเซ็น\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = ตัวแก้ไขสีเน้น\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = ตัวแก้ไขรูปวาด\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = ตัวแก้ไขลายเซ็น: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = ตัวแก้ไขภาพ\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = เอาภาพวาดออก\npdfjs-editor-remove-freetext-button =\n    .title = เอาข้อความออก\npdfjs-editor-remove-stamp-button =\n    .title = เอาภาพออก\npdfjs-editor-remove-highlight-button =\n    .title = เอาการเน้นสีออก\npdfjs-editor-remove-signature-button =\n    .title = ลบลายเซ็น\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = สี\npdfjs-editor-free-text-size-input = ขนาด\npdfjs-editor-ink-color-input = สี\npdfjs-editor-ink-thickness-input = ความหนา\npdfjs-editor-ink-opacity-input = ความทึบ\npdfjs-editor-stamp-add-image-button =\n    .title = เพิ่มภาพ\npdfjs-editor-stamp-add-image-button-label = เพิ่มภาพ\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = ความหนา\npdfjs-editor-free-highlight-thickness-title =\n    .title = เปลี่ยนความหนาเมื่อเน้นรายการอื่นๆ ที่ไม่ใช่ข้อความ\npdfjs-editor-add-signature-container =\n    .aria-label = ส่วนควบคุมลายเซ็นและลายเซ็นที่บันทึกไว้\npdfjs-editor-signature-add-signature-button =\n    .title = เพิ่มลายเซ็นใหม่\npdfjs-editor-signature-add-signature-button-label = เพิ่มลายเซ็นใหม่\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = ลายเซ็นที่บันทึกไว้: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = ตัวแก้ไขข้อความ\n    .default-content = เริ่มพิมพ์ได้เลย…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = ความคิดเห็น\npdfjs-editor-comments-sidebar-close-button =\n    .title = ปิดแถบข้าง\n    .aria-label = ปิดแถบข้าง\npdfjs-editor-comments-sidebar-close-button-label = ปิดแถบข้าง\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = เห็นอะไรที่น่าสนใจใช่ไหม? เน้นสีไว้และแสดงความคิดเห็นได้เลย\npdfjs-editor-comments-sidebar-no-comments-link = เรียนรู้เพิ่มเติม\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = ข้อความทดแทน\npdfjs-editor-alt-text-edit-button =\n    .aria-label = แก้ไขข้อความทดแทน\npdfjs-editor-alt-text-dialog-label = เลือกตัวเลือก\npdfjs-editor-alt-text-dialog-description = ข้อความทดแทนสามารถช่วยเหลือได้เมื่อผู้ใช้มองไม่เห็นภาพ หรือภาพไม่โหลด\npdfjs-editor-alt-text-add-description-label = เพิ่มคำอธิบาย\npdfjs-editor-alt-text-add-description-description = แนะนำให้ใช้ 1-2 ประโยคซึ่งอธิบายหัวเรื่อง ฉาก หรือการกระทำ\npdfjs-editor-alt-text-mark-decorative-label = ทำเครื่องหมายเป็นสิ่งตกแต่ง\npdfjs-editor-alt-text-mark-decorative-description = สิ่งนี้ใช้สำหรับภาพที่เป็นสิ่งประดับ เช่น ขอบ หรือลายน้ำ\npdfjs-editor-alt-text-cancel-button = ยกเลิก\npdfjs-editor-alt-text-save-button = บันทึก\npdfjs-editor-alt-text-decorative-tooltip = ทำเครื่องหมายเป็นสิ่งตกแต่งแล้ว\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = ตัวอย่างเช่น “ชายหนุ่มคนหนึ่งนั่งลงที่โต๊ะเพื่อรับประทานอาหารมื้อหนึ่ง”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = ข้อความทดแทน\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = มุมซ้ายบน — ปรับขนาด\npdfjs-editor-resizer-top-middle =\n    .aria-label = ตรงกลางด้านบน — ปรับขนาด\npdfjs-editor-resizer-top-right =\n    .aria-label = มุมขวาบน — ปรับขนาด\npdfjs-editor-resizer-middle-right =\n    .aria-label = ตรงกลางด้านขวา — ปรับขนาด\npdfjs-editor-resizer-bottom-right =\n    .aria-label = มุมขวาล่าง — ปรับขนาด\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = ตรงกลางด้านล่าง — ปรับขนาด\npdfjs-editor-resizer-bottom-left =\n    .aria-label = มุมซ้ายล่าง — ปรับขนาด\npdfjs-editor-resizer-middle-left =\n    .aria-label = ตรงกลางด้านซ้าย — ปรับขนาด\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = สีเน้น\npdfjs-editor-colorpicker-button =\n    .title = เปลี่ยนสี\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = ทางเลือกสี\npdfjs-editor-colorpicker-yellow =\n    .title = เหลือง\npdfjs-editor-colorpicker-green =\n    .title = เขียว\npdfjs-editor-colorpicker-blue =\n    .title = น้ำเงิน\npdfjs-editor-colorpicker-pink =\n    .title = ชมพู\npdfjs-editor-colorpicker-red =\n    .title = แดง\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = แสดงทั้งหมด\npdfjs-editor-highlight-show-all-button =\n    .title = แสดงทั้งหมด\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = แก้ไขข้อความทดแทน (คำอธิบายภาพ)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = เพิ่มข้อความทดแทน (คำอธิบายภาพ)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = เขียนคำอธิบายของคุณที่นี่…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = คำอธิบายสั้นๆ สำหรับผู้ที่ไม่สามารถมองเห็นภาพหรือเมื่อภาพไม่โหลด\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = ข้อความทดแทนนี้ถูกสร้างขึ้นโดยอัตโนมัติและอาจไม่ถูกต้อง\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = เรียนรู้เพิ่มเติม\npdfjs-editor-new-alt-text-create-automatically-button-label = สร้างข้อความทดแทนโดยอัตโนมัติ\npdfjs-editor-new-alt-text-not-now-button = ไม่ใช่ตอนนี้\npdfjs-editor-new-alt-text-error-title = ไม่สามารถสร้างข้อความทดแทนโดยอัตโนมัติได้\npdfjs-editor-new-alt-text-error-description = กรุณาเขียนข้อความทดแทนด้วยตัวเองหรือลองใหม่อีกครั้งในภายหลัง\npdfjs-editor-new-alt-text-error-close-button = ปิด\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = กำลังดาวน์โหลดโมเดล AI สำหรับข้อความทดแทน ({ $downloadedSize } จาก { $totalSize } MB)\n    .aria-valuetext = กำลังดาวน์โหลดโมเดล AI สำหรับข้อความทดแทน ({ $downloadedSize } จาก { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = เพิ่มข้อความทดแทนแล้ว\npdfjs-editor-new-alt-text-added-button-label = เพิ่มข้อความทดแทนแล้ว\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = ขาดข้อความทดแทน\npdfjs-editor-new-alt-text-missing-button-label = ขาดข้อความทดแทน\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = ตรวจสอบข้อความทดแทน\npdfjs-editor-new-alt-text-to-review-button-label = ตรวจสอบข้อความทดแทน\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = สร้างขึ้นโดยอัตโนมัติ: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = ตั้งค่าข้อความทดแทนภาพ\npdfjs-image-alt-text-settings-button-label = ตั้งค่าข้อความทดแทนภาพ\npdfjs-editor-alt-text-settings-dialog-label = ตั้งค่าข้อความทดแทนภาพ\npdfjs-editor-alt-text-settings-automatic-title = การทดแทนด้วยข้อความอัตโนมัติ\npdfjs-editor-alt-text-settings-create-model-button-label = สร้างข้อความทดแทนอัตโนมัติ\npdfjs-editor-alt-text-settings-create-model-description = แนะนำคำอธิบายเพื่อช่วยเหลือผู้ที่ไม่สามารถมองเห็นภาพหรือเมื่อภาพไม่โหลด\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = โมเดล AI สำหรับข้อความทดแทน ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = ทำงานในเครื่องของคุณเพื่อให้ข้อมูลของคุณเป็นส่วนตัว จำเป็นสำหรับข้อความทดแทนอัตโนมัติ\npdfjs-editor-alt-text-settings-delete-model-button = ลบ\npdfjs-editor-alt-text-settings-download-model-button = ดาวน์โหลด\npdfjs-editor-alt-text-settings-downloading-model-button = กำลังดาวน์โหลด…\npdfjs-editor-alt-text-settings-editor-title = ตัวแก้ไขข้อความทดแทน\npdfjs-editor-alt-text-settings-show-dialog-button-label = แสดงตัวแก้ไขข้อความทดแทนทันทีเมื่อเพิ่มภาพ\npdfjs-editor-alt-text-settings-show-dialog-description = ช่วยให้คุณแน่ใจว่าภาพทั้งหมดของคุณมีข้อความทดแทน\npdfjs-editor-alt-text-settings-close-button = ปิด\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = เพิ่มการเน้นสีแล้ว\npdfjs-editor-freetext-added-alert = เพิ่มข้อความแล้ว\npdfjs-editor-ink-added-alert = เพิ่มรูปวาดแล้ว\npdfjs-editor-stamp-added-alert = เพิ่มภาพแล้ว\npdfjs-editor-signature-added-alert = เพิ่มลายเซ็นแล้ว\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = เอาการเน้นสีออกแล้ว\npdfjs-editor-undo-bar-message-freetext = เอาข้อความออกแล้ว\npdfjs-editor-undo-bar-message-ink = เอาภาพวาดออกแล้ว\npdfjs-editor-undo-bar-message-stamp = เอาภาพออกแล้ว\npdfjs-editor-undo-bar-message-signature = ลบลายเซ็นแล้ว\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = เอาคำอธิบายประกอบ { $count } รายการออกแล้ว\npdfjs-editor-undo-bar-undo-button =\n    .title = เลิกทำ\npdfjs-editor-undo-bar-undo-button-label = เลิกทำ\npdfjs-editor-undo-bar-close-button =\n    .title = ปิด\npdfjs-editor-undo-bar-close-button-label = ปิด\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = โมดัลนี้ช่วยให้ผู้ใช้สามารถสร้างลายเซ็นเพื่อใช้เพิ่มลงในเอกสาร PDF ได้ ผู้ใช้สามารถแก้ไขชื่อ (ซึ่งใช้เป็นข้อความทดแทนได้ด้วย) และสามารถเลือกบันทึกลายเซ็นเพื่อใช้งานซ้ำได้\npdfjs-editor-add-signature-dialog-title = เพิ่มลายเซ็น\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = พิมพ์\n    .title = พิมพ์\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = วาด\n    .title = วาด\npdfjs-editor-add-signature-image-button = ภาพ\n    .title = ภาพ\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = พิมพ์ลายเซ็นของคุณ\n    .placeholder = พิมพ์ลายเซ็นของคุณ\npdfjs-editor-add-signature-draw-placeholder = วาดลายเซ็นของคุณ\npdfjs-editor-add-signature-draw-thickness-range-label = ความหนา\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = ความหนาของการวาด: { $thickness }\npdfjs-editor-add-signature-image-placeholder = ลากไฟล์มาที่นี่เพื่ออัปโหลด\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] หรือเลือกไฟล์ภาพ\n       *[other] หรือเรียกดูไฟล์ภาพ\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = คำอธิบาย (ข้อความทดแทน)\npdfjs-editor-add-signature-description-input =\n    .title = คำอธิบาย (ข้อความทดแทน)\npdfjs-editor-add-signature-description-default-when-drawing = ลายเซ็น\npdfjs-editor-add-signature-clear-button-label = ล้างลายเซ็น\npdfjs-editor-add-signature-clear-button =\n    .title = ล้างลายเซ็น\npdfjs-editor-add-signature-save-checkbox = บันทึกลายเซ็น\npdfjs-editor-add-signature-save-warning-message = คุณมีลายเซ็นที่บันทึกถึงจำนวนสูงสุด 5 รายการแล้ว โปรดลบรายการหนึ่งออกเมื่อจะบันทึกเพิ่ม\npdfjs-editor-add-signature-image-upload-error-title = ไม่สามารถอัปโหลดภาพได้\npdfjs-editor-add-signature-image-upload-error-description = ตรวจสอบการเชื่อมต่อเครือข่ายของคุณหรือลองใช้ภาพอื่น\npdfjs-editor-add-signature-image-no-data-error-title = ไม่สามารถแปลงภาพนี้ให้เป็นลายเซ็นได้\npdfjs-editor-add-signature-image-no-data-error-description = โปรดลองอัปโหลดภาพอื่น\npdfjs-editor-add-signature-error-close-button = ปิด\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = ยกเลิก\npdfjs-editor-add-signature-add-button = เพิ่ม\npdfjs-editor-edit-signature-update-button = อัปเดต\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = แก้ไขความคิดเห็น\npdfjs-editor-edit-comment-popup-button =\n    .title = แก้ไขความคิดเห็น\npdfjs-editor-delete-comment-popup-button-label = เอาความคิดเห็นออก\npdfjs-editor-delete-comment-popup-button =\n    .title = เอาความคิดเห็นออก\npdfjs-show-comment-button =\n    .title = แสดงความคิดเห็น\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = การกระทำ\npdfjs-editor-edit-comment-actions-button =\n    .title = การกระทำ\npdfjs-editor-edit-comment-close-button-label = ปิด\npdfjs-editor-edit-comment-close-button =\n    .title = ปิด\npdfjs-editor-edit-comment-actions-edit-button-label = แก้ไข\npdfjs-editor-edit-comment-actions-delete-button-label = ลบ\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = ป้อนความคิดเห็นของคุณ\npdfjs-editor-edit-comment-manager-cancel-button = ยกเลิก\npdfjs-editor-edit-comment-manager-save-button = บันทึก\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = แก้ไขความคิดเห็น\npdfjs-editor-edit-comment-dialog-save-button-when-editing = อัปเดต\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = เพิ่มความคิดเห็น\npdfjs-editor-edit-comment-dialog-save-button-when-adding = เพิ่ม\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = เริ่มพิมพ์…\npdfjs-editor-edit-comment-dialog-cancel-button = ยกเลิก\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = แก้ไขความคิดเห็น\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = ลบลายเซ็นที่บันทึกไว้\npdfjs-editor-delete-signature-button-label1 = ลบลายเซ็นที่บันทึกไว้\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = แก้ไขคำอธิบาย\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = แก้ไขคำอธิบาย\n"
  },
  {
    "path": "viewer/locale/tl/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Naunang Pahina\npdfjs-previous-button-label = Nakaraan\npdfjs-next-button =\n    .title = Sunod na Pahina\npdfjs-next-button-label = Sunod\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Pahina\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = ng { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } ng { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Paliitin\npdfjs-zoom-out-button-label = Paliitin\npdfjs-zoom-in-button =\n    .title = Palakihin\npdfjs-zoom-in-button-label = Palakihin\npdfjs-zoom-select =\n    .title = Mag-zoom\npdfjs-presentation-mode-button =\n    .title = Lumipat sa Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n    .title = Magbukas ng file\npdfjs-open-file-button-label = Buksan\npdfjs-print-button =\n    .title = i-Print\npdfjs-print-button-label = i-Print\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Mga Kagamitan\npdfjs-tools-button-label = Mga Kagamitan\npdfjs-first-page-button =\n    .title = Pumunta sa Unang Pahina\npdfjs-first-page-button-label = Pumunta sa Unang Pahina\npdfjs-last-page-button =\n    .title = Pumunta sa Huling Pahina\npdfjs-last-page-button-label = Pumunta sa Huling Pahina\npdfjs-page-rotate-cw-button =\n    .title = Paikutin Pakanan\npdfjs-page-rotate-cw-button-label = Paikutin Pakanan\npdfjs-page-rotate-ccw-button =\n    .title = Paikutin Pakaliwa\npdfjs-page-rotate-ccw-button-label = Paikutin Pakaliwa\npdfjs-cursor-text-select-tool-button =\n    .title = I-enable ang Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n    .title = I-enable ang Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-vertical-button =\n    .title = Gumamit ng Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n    .title = Gumamit ng Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n    .title = Gumamit ng Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n    .title = Huwag pagsamahin ang mga page spread\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n    .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Mga Odd Spread\npdfjs-spread-even-button =\n    .title = Pagsamahin ang mga page spread na nagsisimula sa mga even-numbered na pahina\npdfjs-spread-even-button-label = Mga Even Spread\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Mga Katangian ng Dokumento…\npdfjs-document-properties-button-label = Mga Katangian ng Dokumento…\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-title = Pamagat:\npdfjs-document-properties-author = May-akda:\npdfjs-document-properties-subject = Paksa:\npdfjs-document-properties-keywords = Mga keyword:\npdfjs-document-properties-creation-date = Petsa ng Pagkakagawa:\npdfjs-document-properties-modification-date = Petsa ng Pagkakabago:\npdfjs-document-properties-creator = Tagalikha:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Bilang ng Pahina:\npdfjs-document-properties-page-size = Laki ng Pahina:\npdfjs-document-properties-page-size-unit-inches = pulgada\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = patayo\npdfjs-document-properties-page-size-orientation-landscape = pahiga\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Oo\npdfjs-document-properties-linearized-no = Hindi\npdfjs-document-properties-close-button = Isara\n\n## Print\n\npdfjs-print-progress-message = Inihahanda ang dokumento para sa pag-print…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Kanselahin\npdfjs-printing-not-supported = Babala: Hindi pa ganap na suportado ang pag-print sa browser na ito.\npdfjs-printing-not-ready = Babala: Hindi ganap na nabuksan ang PDF para sa pag-print.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Ipakita/Itago ang Sidebar\npdfjs-toggle-sidebar-notification-button =\n    .title = Ipakita/Itago ang Sidebar (nagtataglay ang dokumento ng balangkas/mga attachment/mga layer)\npdfjs-toggle-sidebar-button-label = Ipakita/Itago ang Sidebar\npdfjs-document-outline-button =\n    .title = Ipakita ang Document Outline (mag-double-click para i-expand/collapse ang laman)\npdfjs-document-outline-button-label = Balangkas ng Dokumento\npdfjs-attachments-button =\n    .title = Ipakita ang mga Attachment\npdfjs-attachments-button-label = Mga attachment\npdfjs-layers-button =\n    .title = Ipakita ang mga Layer (mag-double click para mareset ang lahat ng layer sa orihinal na estado)\npdfjs-layers-button-label = Mga layer\npdfjs-thumbs-button =\n    .title = Ipakita ang mga Thumbnail\npdfjs-thumbs-button-label = Mga thumbnail\npdfjs-findbar-button =\n    .title = Hanapin sa Dokumento\npdfjs-findbar-button-label = Hanapin\npdfjs-additional-layers = Mga Karagdagang Layer\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Pahina { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Thumbnail ng Pahina { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Hanapin\n    .placeholder = Hanapin sa dokumento…\npdfjs-find-previous-button =\n    .title = Hanapin ang nakaraang pangyayari ng parirala\npdfjs-find-previous-button-label = Nakaraan\npdfjs-find-next-button =\n    .title = Hanapin ang susunod na pangyayari ng parirala\npdfjs-find-next-button-label = Susunod\npdfjs-find-highlight-checkbox = I-highlight lahat\npdfjs-find-match-case-checkbox-label = Itugma ang case\npdfjs-find-entire-word-checkbox-label = Buong salita\npdfjs-find-reached-top = Naabot na ang tuktok ng dokumento, ipinagpatuloy mula sa ilalim\npdfjs-find-reached-bottom = Naabot na ang dulo ng dokumento, ipinagpatuloy mula sa tuktok\npdfjs-find-not-found = Hindi natagpuan ang parirala\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Lapad ng Pahina\npdfjs-page-scale-fit = Pagkasyahin ang Pahina\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Totoong sukat\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Nagkaproblema habang niloload ang PDF.\npdfjs-invalid-file-error = Di-wasto o sira ang PDF file.\npdfjs-missing-file-error = Nawawalang PDF file.\npdfjs-unexpected-response-error = Hindi inaasahang tugon ng server.\npdfjs-rendering-error = Nagkaproblema habang nirerender ang pahina.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = Ipasok ang password upang buksan ang PDF file na ito.\npdfjs-password-invalid = Maling password. Subukan uli.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Kanselahin\npdfjs-web-fonts-disabled = Naka-disable ang mga Web font: hindi kayang gamitin ang mga naka-embed na PDF font.\n"
  },
  {
    "path": "viewer/locale/tr/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Önceki sayfa\npdfjs-previous-button-label = Önceki\npdfjs-next-button =\n    .title = Sonraki sayfa\npdfjs-next-button-label = Sonraki\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Sayfa\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Uzaklaştır\npdfjs-zoom-out-button-label = Uzaklaştır\npdfjs-zoom-in-button =\n    .title = Yakınlaştır\npdfjs-zoom-in-button-label = Yakınlaştır\npdfjs-zoom-select =\n    .title = Yakınlaştırma\npdfjs-presentation-mode-button =\n    .title = Sunum moduna geç\npdfjs-presentation-mode-button-label = Sunum modu\npdfjs-open-file-button =\n    .title = Dosya aç\npdfjs-open-file-button-label = Aç\npdfjs-print-button =\n    .title = Yazdır\npdfjs-print-button-label = Yazdır\npdfjs-save-button =\n    .title = Kaydet\npdfjs-save-button-label = Kaydet\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = İndir\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = İndir\npdfjs-bookmark-button =\n    .title = Geçerli sayfa (geçerli sayfanın adresini görüntüle)\npdfjs-bookmark-button-label = Geçerli sayfa\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Araçlar\npdfjs-tools-button-label = Araçlar\npdfjs-first-page-button =\n    .title = İlk sayfaya git\npdfjs-first-page-button-label = İlk sayfaya git\npdfjs-last-page-button =\n    .title = Son sayfaya git\npdfjs-last-page-button-label = Son sayfaya git\npdfjs-page-rotate-cw-button =\n    .title = Saat yönünde döndür\npdfjs-page-rotate-cw-button-label = Saat yönünde döndür\npdfjs-page-rotate-ccw-button =\n    .title = Saat yönünün tersine döndür\npdfjs-page-rotate-ccw-button-label = Saat yönünün tersine döndür\npdfjs-cursor-text-select-tool-button =\n    .title = Metin seçme aracını etkinleştir\npdfjs-cursor-text-select-tool-button-label = Metin seçme aracı\npdfjs-cursor-hand-tool-button =\n    .title = El aracını etkinleştir\npdfjs-cursor-hand-tool-button-label = El aracı\npdfjs-scroll-page-button =\n    .title = Sayfa kaydırmayı kullan\npdfjs-scroll-page-button-label = Sayfa kaydırma\npdfjs-scroll-vertical-button =\n    .title = Dikey kaydırmayı kullan\npdfjs-scroll-vertical-button-label = Dikey kaydırma\npdfjs-scroll-horizontal-button =\n    .title = Yatay kaydırmayı kullan\npdfjs-scroll-horizontal-button-label = Yatay kaydırma\npdfjs-scroll-wrapped-button =\n    .title = Yan yana kaydırmayı kullan\npdfjs-scroll-wrapped-button-label = Yan yana kaydırma\npdfjs-spread-none-button =\n    .title = Yan yana sayfaları birleştirme\npdfjs-spread-none-button-label = Birleştirme\npdfjs-spread-odd-button =\n    .title = Yan yana sayfaları tek numaralı sayfalardan başlayarak birleştir\npdfjs-spread-odd-button-label = Tek numaralı\npdfjs-spread-even-button =\n    .title = Yan yana sayfaları çift numaralı sayfalardan başlayarak birleştir\npdfjs-spread-even-button-label = Çift numaralı\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Belge özellikleri…\npdfjs-document-properties-button-label = Belge özellikleri…\npdfjs-document-properties-file-name = Dosya adı:\npdfjs-document-properties-file-size = Dosya boyutu:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bayt)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bayt)\npdfjs-document-properties-title = Başlık:\npdfjs-document-properties-author = Yazar:\npdfjs-document-properties-subject = Konu:\npdfjs-document-properties-keywords = Anahtar kelimeler:\npdfjs-document-properties-creation-date = Oluşturma tarihi:\npdfjs-document-properties-modification-date = Değiştirme tarihi:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Oluşturan:\npdfjs-document-properties-producer = PDF üreticisi:\npdfjs-document-properties-version = PDF sürümü:\npdfjs-document-properties-page-count = Sayfa sayısı:\npdfjs-document-properties-page-size = Sayfa boyutu:\npdfjs-document-properties-page-size-unit-inches = inç\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = dikey\npdfjs-document-properties-page-size-orientation-landscape = yatay\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Hızlı web görünümü:\npdfjs-document-properties-linearized-yes = Evet\npdfjs-document-properties-linearized-no = Hayır\npdfjs-document-properties-close-button = Kapat\n\n## Print\n\npdfjs-print-progress-message = Belge yazdırılmaya hazırlanıyor…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = %{ $progress }\npdfjs-print-progress-close-button = Vazgeç\npdfjs-printing-not-supported = Uyarı: Yazdırma bu tarayıcı tarafından tam olarak desteklenmemektedir.\npdfjs-printing-not-ready = Uyarı: PDF tamamen yüklenmedi ve yazdırmaya hazır değil.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Kenar çubuğunu aç/kapat\npdfjs-toggle-sidebar-notification-button =\n    .title = Kenar çubuğunu aç/kapat (Belge ana hat/ekler/katmanlar içeriyor)\npdfjs-toggle-sidebar-button-label = Kenar çubuğunu aç/kapat\npdfjs-document-outline-button =\n    .title = Belge ana hatlarını göster (Tüm öğeleri genişletmek/daraltmak için çift tıklayın)\npdfjs-document-outline-button-label = Belge ana hatları\npdfjs-attachments-button =\n    .title = Ekleri göster\npdfjs-attachments-button-label = Ekler\npdfjs-layers-button =\n    .title = Katmanları göster (tüm katmanları varsayılan duruma sıfırlamak için çift tıklayın)\npdfjs-layers-button-label = Katmanlar\npdfjs-thumbs-button =\n    .title = Küçük resimleri göster\npdfjs-thumbs-button-label = Küçük resimler\npdfjs-current-outline-item-button =\n    .title = Mevcut ana hat öğesini bul\npdfjs-current-outline-item-button-label = Mevcut ana hat öğesi\npdfjs-findbar-button =\n    .title = Belgede bul\npdfjs-findbar-button-label = Bul\npdfjs-additional-layers = Ek katmanlar\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Sayfa { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page }. sayfanın küçük hâli\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Bul\n    .placeholder = Belgede bul…\npdfjs-find-previous-button =\n    .title = Önceki eşleşmeyi bul\npdfjs-find-previous-button-label = Önceki\npdfjs-find-next-button =\n    .title = Sonraki eşleşmeyi bul\npdfjs-find-next-button-label = Sonraki\npdfjs-find-highlight-checkbox = Tümünü vurgula\npdfjs-find-match-case-checkbox-label = Büyük-küçük harfe duyarlı\npdfjs-find-match-diacritics-checkbox-label = Fonetik işaretleri bul\npdfjs-find-entire-word-checkbox-label = Tam sözcükler\npdfjs-find-reached-top = Belgenin başına ulaşıldı, sonundan devam edildi\npdfjs-find-reached-bottom = Belgenin sonuna ulaşıldı, başından devam edildi\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $total } eşleşmeden { $current }. eşleşme\n       *[other] { $total } eşleşmeden { $current }. eşleşme\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] { $limit } eşleşmeden fazla\n       *[other] { $limit } eşleşmeden fazla\n    }\npdfjs-find-not-found = Eşleşme bulunamadı\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sayfa genişliği\npdfjs-page-scale-fit = Sayfayı sığdır\npdfjs-page-scale-auto = Otomatik yakınlaştır\npdfjs-page-scale-actual = Gerçek boyut\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = %{ $scale }\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Sayfa { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF yüklenirken bir hata oluştu.\npdfjs-invalid-file-error = Geçersiz veya bozulmuş PDF dosyası.\npdfjs-missing-file-error = PDF dosyası eksik.\npdfjs-unexpected-response-error = Beklenmeyen sunucu yanıtı.\npdfjs-rendering-error = Sayfa yorumlanırken bir hata oluştu.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } işareti]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Bu PDF dosyasını açmak için parolasını yazın.\npdfjs-password-invalid = Geçersiz parola. Lütfen yeniden deneyin.\npdfjs-password-ok-button = Tamam\npdfjs-password-cancel-button = Vazgeç\npdfjs-web-fonts-disabled = Web fontları devre dışı: Gömülü PDF fontları kullanılamıyor.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Metin\npdfjs-editor-color-picker-free-text-input =\n    .title = Metin rengini değiştir\npdfjs-editor-free-text-button-label = Metin\npdfjs-editor-ink-button =\n    .title = Çiz\npdfjs-editor-color-picker-ink-input =\n    .title = Çizim rengini değiştir\npdfjs-editor-ink-button-label = Çiz\npdfjs-editor-stamp-button =\n    .title = Resim ekle veya düzenle\npdfjs-editor-stamp-button-label = Resim ekle veya düzenle\npdfjs-editor-highlight-button =\n    .title = Vurgula\npdfjs-editor-highlight-button-label = Vurgula\npdfjs-highlight-floating-button1 =\n    .title = Vurgula\n    .aria-label = Vurgula\npdfjs-highlight-floating-button-label = Vurgula\npdfjs-comment-floating-button =\n    .title = Yorum ekle\n    .aria-label = Yorum ekle\npdfjs-comment-floating-button-label = Yorum ekle\npdfjs-editor-comment-button =\n    .title = Yorum ekle\n    .aria-label = Yorum ekle\npdfjs-editor-comment-button-label = Yorum ekle\npdfjs-editor-signature-button =\n    .title = İmza ekle\npdfjs-editor-signature-button-label = İmza ekle\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Vurgu düzenleyici\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Çizim düzenleyici\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = İmza düzenleyici: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Resim düzenleyici\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Çizimi kaldır\npdfjs-editor-remove-freetext-button =\n    .title = Metni kaldır\npdfjs-editor-remove-stamp-button =\n    .title = Resmi kaldır\npdfjs-editor-remove-highlight-button =\n    .title = Vurgulamayı kaldır\npdfjs-editor-remove-signature-button =\n    .title = İmzayı kaldır\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Renk\npdfjs-editor-free-text-size-input = Boyut\npdfjs-editor-ink-color-input = Renk\npdfjs-editor-ink-thickness-input = Kalınlık\npdfjs-editor-ink-opacity-input = Saydamlık\npdfjs-editor-stamp-add-image-button =\n    .title = Resim ekle\npdfjs-editor-stamp-add-image-button-label = Resim ekle\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Kalınlık\npdfjs-editor-free-highlight-thickness-title =\n    .title = Metin dışındaki öğeleri vurgularken kalınlığı değiştir\npdfjs-editor-add-signature-container =\n    .aria-label = İmza yönetimi ve kayıtlı imzalar\npdfjs-editor-signature-add-signature-button =\n    .title = Yeni imza ekle\npdfjs-editor-signature-add-signature-button-label = Yeni imza ekle\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Kayıtlı imza: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Metin düzenleyicisi\n    .default-content = Yazmaya başlayın…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title =\n    { $count ->\n        [one] Yorum\n       *[other] Yorumlar\n    }\npdfjs-editor-comments-sidebar-close-button =\n    .title = Kenar çubuğunu kapat\n    .aria-label = Kenar çubuğunu kapat\npdfjs-editor-comments-sidebar-close-button-label = Kenar çubuğunu kapat\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Not almaya değer bir şey mi gördünüz? Onu işaretleyip yorum yazabilirsiniz.\npdfjs-editor-comments-sidebar-no-comments-link = Daha fazla bilgi alın\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Alternatif metin\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Alternatif metni düzenle\npdfjs-editor-alt-text-dialog-label = Bir seçenek seçin\npdfjs-editor-alt-text-dialog-description = Alternatif metin, insanlar resmi göremediğinde veya resim yüklenmediğinde işe yarar.\npdfjs-editor-alt-text-add-description-label = Açıklama ekle\npdfjs-editor-alt-text-add-description-description = Konuyu, ortamı veya eylemleri tanımlayan bir iki cümle yazmaya çalışın.\npdfjs-editor-alt-text-mark-decorative-label = Dekoratif olarak işaretle\npdfjs-editor-alt-text-mark-decorative-description = Kenarlıklar veya filigranlar gibi dekoratif resimler için kullanılır.\npdfjs-editor-alt-text-cancel-button = Vazgeç\npdfjs-editor-alt-text-save-button = Kaydet\npdfjs-editor-alt-text-decorative-tooltip = Dekoratif olarak işaretlendi\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Örneğin, “Genç bir adam yemek yemek için masaya oturuyor”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Alternatif metin\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Sol üst köşe — yeniden boyutlandır\npdfjs-editor-resizer-top-middle =\n    .aria-label = Üst orta — yeniden boyutlandır\npdfjs-editor-resizer-top-right =\n    .aria-label = Sağ üst köşe — yeniden boyutlandır\npdfjs-editor-resizer-middle-right =\n    .aria-label = Orta sağ — yeniden boyutlandır\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Sağ alt köşe — yeniden boyutlandır\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Alt orta — yeniden boyutlandır\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Sol alt köşe — yeniden boyutlandır\npdfjs-editor-resizer-middle-left =\n    .aria-label = Orta sol — yeniden boyutlandır\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Vurgu rengi\npdfjs-editor-colorpicker-button =\n    .title = Rengi değiştir\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Renk seçenekleri\npdfjs-editor-colorpicker-yellow =\n    .title = Sarı\npdfjs-editor-colorpicker-green =\n    .title = Yeşil\npdfjs-editor-colorpicker-blue =\n    .title = Mavi\npdfjs-editor-colorpicker-pink =\n    .title = Pembe\npdfjs-editor-colorpicker-red =\n    .title = Kırmızı\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Tümünü göster\npdfjs-editor-highlight-show-all-button =\n    .title = Tümünü göster\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Alt metni düzenle (resim açıklaması)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Alt metin ekle (resim açıklaması)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Açıklamanızı buraya yazın…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Görme engelli kişilere gösterilecek veya resmin yüklenemediği durumlarda gösterilecek kısa açıklama.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Bu alt metin otomatik olarak oluşturulmuştur ve hatalı olabilir.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Daha fazla bilgi alın\npdfjs-editor-new-alt-text-create-automatically-button-label = Otomatik olarak alt metin oluştur\npdfjs-editor-new-alt-text-not-now-button = Şimdi değil\npdfjs-editor-new-alt-text-error-title = Alt metin otomatik olarak oluşturulamadı\npdfjs-editor-new-alt-text-error-description = Lütfen kendi alt metninizi yazın veya daha sonra yeniden deneyin.\npdfjs-editor-new-alt-text-error-close-button = Kapat\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Alt metin yapay zekâ modeli indiriliyor ({ $downloadedSize } / { $totalSize } MB)\n    .aria-valuetext = Alt metin yapay zekâ modeli indiriliyor ({ $downloadedSize } / { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Alternatif metin eklendi\npdfjs-editor-new-alt-text-added-button-label = Alt metin eklendi\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Alternatif metin eksik\npdfjs-editor-new-alt-text-missing-button-label = Alt metin eksik\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Alternatif metni incele\npdfjs-editor-new-alt-text-to-review-button-label = Alt metni incele\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Otomatik olarak oluşturuldu: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Resim alt metni ayarları\npdfjs-image-alt-text-settings-button-label = Resim alt metni ayarları\npdfjs-editor-alt-text-settings-dialog-label = Resim alt metni ayarları\npdfjs-editor-alt-text-settings-automatic-title = Otomatik alt metin\npdfjs-editor-alt-text-settings-create-model-button-label = Otomatik olarak alt metin oluştur\npdfjs-editor-alt-text-settings-create-model-description = Görme engelli kişilere gösterilecek veya resmin yüklenemediği durumlarda gösterilecek açıklamalar önerir.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Alt metin yapay zekâ modeli ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Verilerinizin gizli kalması için cihazınızda yerel olarak çalışır. Otomatik alt metin için gereklidir.\npdfjs-editor-alt-text-settings-delete-model-button = Sil\npdfjs-editor-alt-text-settings-download-model-button = İndir\npdfjs-editor-alt-text-settings-downloading-model-button = İndiriliyor…\npdfjs-editor-alt-text-settings-editor-title = Alt metin düzenleyicisi\npdfjs-editor-alt-text-settings-show-dialog-button-label = Resim eklerken alt metin düzenleyicisini hemen göster\npdfjs-editor-alt-text-settings-show-dialog-description = Tüm resimlerinizin alt metne sahip olduğundan emin olmanızı sağlar.\npdfjs-editor-alt-text-settings-close-button = Kapat\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Vurgu eklendi\npdfjs-editor-freetext-added-alert = Metin eklendi\npdfjs-editor-ink-added-alert = Çizim eklendi\npdfjs-editor-stamp-added-alert = Resim eklendi\npdfjs-editor-signature-added-alert = İmza eklendi\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Vurgulama silindi\npdfjs-editor-undo-bar-message-freetext = Metin silindi\npdfjs-editor-undo-bar-message-ink = Çizim silindi\npdfjs-editor-undo-bar-message-stamp = Görsel silindi\npdfjs-editor-undo-bar-message-signature = İmza kaldırıldı\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } ek açıklama silindi\n       *[other] { $count } ek açıklama silindi\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Geri al\npdfjs-editor-undo-bar-undo-button-label = Geri al\npdfjs-editor-undo-bar-close-button =\n    .title = Kapat\npdfjs-editor-undo-bar-close-button-label = Kapat\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Bu pencereden PDF belgesine eklemek üzere imza oluşturabilirsiniz. Adınızı düzenleyebilir (adınız alt metin olarak da kullanılır) ve isterseniz ileride tekrar kullanmak üzere imzayı kaydedebilirsiniz.\npdfjs-editor-add-signature-dialog-title = İmza ekle\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Yaz\n    .title = Yaz\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Çiz\n    .title = Çiz\npdfjs-editor-add-signature-image-button = Resim\n    .title = Resim\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = İmzanızı yazın\n    .placeholder = İmzanızı yazın\npdfjs-editor-add-signature-draw-placeholder = İmzanızı çizin\npdfjs-editor-add-signature-draw-thickness-range-label = Kalınlık\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Çizgi kalınlığı: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Yüklenecek dosyayı buraya sürükleyin\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Veya resim dosyalarına göz atın\n       *[other] Veya resim dosyalarına göz atın\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Açıklama (alt metin)\npdfjs-editor-add-signature-description-input =\n    .title = Açıklama (alt metin)\npdfjs-editor-add-signature-description-default-when-drawing = İmza\npdfjs-editor-add-signature-clear-button-label = İmzayı temizle\npdfjs-editor-add-signature-clear-button =\n    .title = İmzayı temizle\npdfjs-editor-add-signature-save-checkbox = İmzayı kaydet\npdfjs-editor-add-signature-save-warning-message = Kayıtlı 5 imza sınırına ulaştınız. Daha fazla imza kaydetmek için imzalardan birini kaldırın.\npdfjs-editor-add-signature-image-upload-error-title = Resim yüklenemedi\npdfjs-editor-add-signature-image-upload-error-description = Ağ bağlantınızı kontrol edin veya başka bir resim deneyin.\npdfjs-editor-add-signature-image-no-data-error-title = Bu resim imzaya dönüştürülemez\npdfjs-editor-add-signature-image-no-data-error-description = Lütfen farklı bir resim yüklemeyi deneyin.\npdfjs-editor-add-signature-error-close-button = Kapat\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Vazgeç\npdfjs-editor-add-signature-add-button = Ekle\npdfjs-editor-edit-signature-update-button = Güncelle\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Yorumu düzenle\npdfjs-editor-edit-comment-popup-button =\n    .title = Yorumu düzenle\npdfjs-editor-delete-comment-popup-button-label = Yorumu sil\npdfjs-editor-delete-comment-popup-button =\n    .title = Yorumu sil\npdfjs-show-comment-button =\n    .title = Yorumu göster\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Eylemler\npdfjs-editor-edit-comment-actions-button =\n    .title = Eylemler\npdfjs-editor-edit-comment-close-button-label = Kapat\npdfjs-editor-edit-comment-close-button =\n    .title = Kapat\npdfjs-editor-edit-comment-actions-edit-button-label = Düzenle\npdfjs-editor-edit-comment-actions-delete-button-label = Sil\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Yorumunuzu yazın\npdfjs-editor-edit-comment-manager-cancel-button = Vazgeç\npdfjs-editor-edit-comment-manager-save-button = Kaydet\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Yorumu düzenle\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Güncelle\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Yorum ekle\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Ekle\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Yazmaya başlayın…\npdfjs-editor-edit-comment-dialog-cancel-button = Vazgeç\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Yorumu düzenle\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Kayıtlı imzayı kaldır\npdfjs-editor-delete-signature-button-label1 = Kayıtlı imzayı kaldır\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Açıklamayı düzenle\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Açıklamayı düzenle\n"
  },
  {
    "path": "viewer/locale/trs/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Pajinâ gunâj rukùu\npdfjs-previous-button-label = Sa gachin\npdfjs-next-button =\n    .title = Pajinâ 'na' ñaan\npdfjs-next-button-label = Ne' ñaan\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Ñanj\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = si'iaj { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Nagi'iaj li'\npdfjs-zoom-out-button-label = Nagi'iaj li'\npdfjs-zoom-in-button =\n    .title = Nagi'iaj niko'\npdfjs-zoom-in-button-label = Nagi'iaj niko'\npdfjs-zoom-select =\n    .title = dàj nìko ma'an\npdfjs-presentation-mode-button =\n    .title = Naduno' daj ga ma\npdfjs-presentation-mode-button-label = Daj gà ma\npdfjs-open-file-button =\n    .title = Na'nïn' chrû ñanj\npdfjs-open-file-button-label = Na'nïn\npdfjs-print-button =\n    .title = Nari' ña du'ua\npdfjs-print-button-label = Nari' ñadu'ua\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Rasun\npdfjs-tools-button-label = Nej rasùun\npdfjs-first-page-button =\n    .title = gun' riña pajina asiniin\npdfjs-first-page-button-label = Gun' riña pajina asiniin\npdfjs-last-page-button =\n    .title = Gun' riña pajina rukù ni'in\npdfjs-last-page-button-label = Gun' riña pajina rukù ni'inj\npdfjs-page-rotate-cw-button =\n    .title = Tanikaj ne' huat\npdfjs-page-rotate-cw-button-label = Tanikaj ne' huat\npdfjs-page-rotate-ccw-button =\n    .title = Tanikaj ne' chînt'\npdfjs-page-rotate-ccw-button-label = Tanikaj ne' chint\npdfjs-cursor-text-select-tool-button =\n    .title = Dugi'iaj sun' sa ganahui texto\npdfjs-cursor-text-select-tool-button-label = Nej rasun arajsun' da' nahui' texto\npdfjs-cursor-hand-tool-button =\n    .title = Nachrun' nej rasun\npdfjs-cursor-hand-tool-button-label = Sa rajsun ro'o'\npdfjs-scroll-vertical-button =\n    .title = Garasun' dukuán runūu\npdfjs-scroll-vertical-button-label = Dukuán runūu\npdfjs-scroll-horizontal-button =\n    .title = Garasun' dukuán nikin' nahui\npdfjs-scroll-horizontal-button-label = Dukuán nikin' nahui\npdfjs-scroll-wrapped-button =\n    .title = Garasun' sa nachree\npdfjs-scroll-wrapped-button-label = Sa nachree\npdfjs-spread-none-button =\n    .title = Si nagi'iaj nugun'un' nej pagina hua ninin\npdfjs-spread-none-button-label = Ni'io daj hua pagina\npdfjs-spread-odd-button =\n    .title = Nagi'iaj nugua'ant nej pajina\npdfjs-spread-odd-button-label = Ni'io' daj hua libro gurin\npdfjs-spread-even-button =\n    .title = Nakāj dugui' ngà nej pajinâ ayi'ì ngà da' hùi hùi\npdfjs-spread-even-button-label = Nahuin nìko nej\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Nej sa nikāj ñanj…\npdfjs-document-properties-button-label = Nej sa nikāj ñanj…\npdfjs-document-properties-file-name = Si yugui archîbo:\npdfjs-document-properties-file-size = Dàj yachìj archîbo:\npdfjs-document-properties-title = Si yugui:\npdfjs-document-properties-author = Sí girirà:\npdfjs-document-properties-subject = Dugui':\npdfjs-document-properties-keywords = Nej nuguan' huìi:\npdfjs-document-properties-creation-date = Gui gurugui' man:\npdfjs-document-properties-modification-date = Nuguan' nahuin nakà:\npdfjs-document-properties-creator = Guiri ro'\npdfjs-document-properties-producer = Sa ri PDF:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Si Guendâ Pâjina:\npdfjs-document-properties-page-size = Dàj yachìj pâjina:\npdfjs-document-properties-page-size-unit-inches = riña\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = nadu'ua\npdfjs-document-properties-page-size-orientation-landscape = dàj huaj\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Da'ngà'a\npdfjs-document-properties-page-size-name-legal = Nuguan' a'nï'ïn\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Nanèt chre ni'iajt riña Web:\npdfjs-document-properties-linearized-yes = Ga'ue\npdfjs-document-properties-linearized-no = Si ga'ue\npdfjs-document-properties-close-button = Narán\n\n## Print\n\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Duyichin'\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Nadunā barrâ nù yi'nïn\npdfjs-toggle-sidebar-button-label = Nadunā barrâ nù yi'nïn\npdfjs-findbar-button-label = Narì'\n\n## Find panel button title and messages\n\npdfjs-find-previous-button-label = Sa gachîn\npdfjs-find-next-button-label = Ne' ñaan\npdfjs-find-highlight-checkbox = Daran' sa ña'an\npdfjs-find-match-case-checkbox-label = Match case\npdfjs-find-not-found = Nu narì'ij nugua'anj\n\n## Predefined zoom values\n\npdfjs-page-scale-actual = Dàj yàchi akuan' nín\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Password\n\npdfjs-password-ok-button = Ga'ue\npdfjs-password-cancel-button = Duyichin'\n"
  },
  {
    "path": "viewer/locale/uk/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Попередня сторінка\npdfjs-previous-button-label = Попередня\npdfjs-next-button =\n    .title = Наступна сторінка\npdfjs-next-button-label = Наступна\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Сторінка\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = із { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } із { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Зменшити\npdfjs-zoom-out-button-label = Зменшити\npdfjs-zoom-in-button =\n    .title = Збільшити\npdfjs-zoom-in-button-label = Збільшити\npdfjs-zoom-select =\n    .title = Масштаб\npdfjs-presentation-mode-button =\n    .title = Перейти в режим презентації\npdfjs-presentation-mode-button-label = Режим презентації\npdfjs-open-file-button =\n    .title = Відкрити файл\npdfjs-open-file-button-label = Відкрити\npdfjs-print-button =\n    .title = Друк\npdfjs-print-button-label = Друк\npdfjs-save-button =\n    .title = Зберегти\npdfjs-save-button-label = Зберегти\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Завантажити\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Завантажити\npdfjs-bookmark-button =\n    .title = Поточна сторінка (перегляд URL-адреси з поточної сторінки)\npdfjs-bookmark-button-label = Поточна сторінка\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Інструменти\npdfjs-tools-button-label = Інструменти\npdfjs-first-page-button =\n    .title = На першу сторінку\npdfjs-first-page-button-label = На першу сторінку\npdfjs-last-page-button =\n    .title = На останню сторінку\npdfjs-last-page-button-label = На останню сторінку\npdfjs-page-rotate-cw-button =\n    .title = Повернути за годинниковою стрілкою\npdfjs-page-rotate-cw-button-label = Повернути за годинниковою стрілкою\npdfjs-page-rotate-ccw-button =\n    .title = Повернути проти годинникової стрілки\npdfjs-page-rotate-ccw-button-label = Повернути проти годинникової стрілки\npdfjs-cursor-text-select-tool-button =\n    .title = Увімкнути інструмент вибору тексту\npdfjs-cursor-text-select-tool-button-label = Інструмент вибору тексту\npdfjs-cursor-hand-tool-button =\n    .title = Увімкнути інструмент \"Рука\"\npdfjs-cursor-hand-tool-button-label = Інструмент \"Рука\"\npdfjs-scroll-page-button =\n    .title = Використовувати прокручування сторінки\npdfjs-scroll-page-button-label = Прокручування сторінки\npdfjs-scroll-vertical-button =\n    .title = Використовувати вертикальне прокручування\npdfjs-scroll-vertical-button-label = Вертикальне прокручування\npdfjs-scroll-horizontal-button =\n    .title = Використовувати горизонтальне прокручування\npdfjs-scroll-horizontal-button-label = Горизонтальне прокручування\npdfjs-scroll-wrapped-button =\n    .title = Використовувати масштабоване прокручування\npdfjs-scroll-wrapped-button-label = Масштабоване прокручування\npdfjs-spread-none-button =\n    .title = Не використовувати розгорнуті сторінки\npdfjs-spread-none-button-label = Без розгорнутих сторінок\npdfjs-spread-odd-button =\n    .title = Розгорнуті сторінки починаються з непарних номерів\npdfjs-spread-odd-button-label = Непарні сторінки зліва\npdfjs-spread-even-button =\n    .title = Розгорнуті сторінки починаються з парних номерів\npdfjs-spread-even-button-label = Парні сторінки зліва\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Властивості документа…\npdfjs-document-properties-button-label = Властивості документа…\npdfjs-document-properties-file-name = Назва файлу:\npdfjs-document-properties-file-size = Розмір файлу:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } кБ ({ $b } байтів)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } МБ ({ $b } байтів)\npdfjs-document-properties-title = Заголовок:\npdfjs-document-properties-author = Автор:\npdfjs-document-properties-subject = Тема:\npdfjs-document-properties-keywords = Ключові слова:\npdfjs-document-properties-creation-date = Дата створення:\npdfjs-document-properties-modification-date = Дата зміни:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Створено:\npdfjs-document-properties-producer = Виробник PDF:\npdfjs-document-properties-version = Версія PDF:\npdfjs-document-properties-page-count = Кількість сторінок:\npdfjs-document-properties-page-size = Розмір сторінки:\npdfjs-document-properties-page-size-unit-inches = дюймів\npdfjs-document-properties-page-size-unit-millimeters = мм\npdfjs-document-properties-page-size-orientation-portrait = книжкова\npdfjs-document-properties-page-size-orientation-landscape = альбомна\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Швидкий перегляд в Інтернеті:\npdfjs-document-properties-linearized-yes = Так\npdfjs-document-properties-linearized-no = Ні\npdfjs-document-properties-close-button = Закрити\n\n## Print\n\npdfjs-print-progress-message = Підготовка документу до друку…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Скасувати\npdfjs-printing-not-supported = Попередження: Цей браузер не повністю підтримує друк.\npdfjs-printing-not-ready = Попередження: PDF не повністю завантажений для друку.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Бічна панель\npdfjs-toggle-sidebar-notification-button =\n    .title = Перемкнути бічну панель (документ містить ескіз/вкладення/шари)\npdfjs-toggle-sidebar-button-label = Перемкнути бічну панель\npdfjs-document-outline-button =\n    .title = Показати схему документу (подвійний клік для розгортання/згортання елементів)\npdfjs-document-outline-button-label = Схема документа\npdfjs-attachments-button =\n    .title = Показати вкладення\npdfjs-attachments-button-label = Вкладення\npdfjs-layers-button =\n    .title = Показати шари (двічі клацніть, щоб скинути всі шари до типового стану)\npdfjs-layers-button-label = Шари\npdfjs-thumbs-button =\n    .title = Показати мініатюри\npdfjs-thumbs-button-label = Мініатюри\npdfjs-current-outline-item-button =\n    .title = Знайти поточний елемент змісту\npdfjs-current-outline-item-button-label = Поточний елемент змісту\npdfjs-findbar-button =\n    .title = Знайти в документі\npdfjs-findbar-button-label = Знайти\npdfjs-additional-layers = Додаткові шари\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Сторінка { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Ескіз сторінки { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Знайти\n    .placeholder = Знайти в документі…\npdfjs-find-previous-button =\n    .title = Знайти попереднє входження фрази\npdfjs-find-previous-button-label = Попереднє\npdfjs-find-next-button =\n    .title = Знайти наступне входження фрази\npdfjs-find-next-button-label = Наступне\npdfjs-find-highlight-checkbox = Підсвітити все\npdfjs-find-match-case-checkbox-label = З урахуванням регістру\npdfjs-find-match-diacritics-checkbox-label = Відповідність діакритичних знаків\npdfjs-find-entire-word-checkbox-label = Цілі слова\npdfjs-find-reached-top = Досягнуто початку документу, продовжено з кінця\npdfjs-find-reached-bottom = Досягнуто кінця документу, продовжено з початку\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count =\n    { $total ->\n        [one] { $current } збіг з { $total }\n        [few] { $current } збіги з { $total }\n       *[many] { $current } збігів з { $total }\n    }\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit =\n    { $limit ->\n        [one] Понад { $limit } збіг\n        [few] Понад { $limit } збіги\n       *[many] Понад { $limit } збігів\n    }\npdfjs-find-not-found = Фразу не знайдено\n\n## Predefined zoom values\n\npdfjs-page-scale-width = За шириною\npdfjs-page-scale-fit = Вмістити\npdfjs-page-scale-auto = Автомасштаб\npdfjs-page-scale-actual = Дійсний розмір\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Сторінка { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Під час завантаження PDF сталася помилка.\npdfjs-invalid-file-error = Недійсний або пошкоджений PDF-файл.\npdfjs-missing-file-error = Відсутній PDF-файл.\npdfjs-unexpected-response-error = Неочікувана відповідь сервера.\npdfjs-rendering-error = Під час виведення сторінки сталася помилка.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type }-анотація]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Введіть пароль для відкриття цього PDF-файлу.\npdfjs-password-invalid = Неправильний пароль. Спробуйте ще раз.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Скасувати\npdfjs-web-fonts-disabled = Вебшрифти вимкнено: неможливо використати вбудовані у PDF шрифти.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Текст\npdfjs-editor-free-text-button-label = Текст\npdfjs-editor-ink-button =\n    .title = Малювати\npdfjs-editor-ink-button-label = Малювати\npdfjs-editor-stamp-button =\n    .title = Додати чи редагувати зображення\npdfjs-editor-stamp-button-label = Додати чи редагувати зображення\npdfjs-editor-highlight-button =\n    .title = Підсвітити\npdfjs-editor-highlight-button-label = Підсвітити\npdfjs-highlight-floating-button1 =\n    .title = Підсвітити\n    .aria-label = Підсвітити\npdfjs-highlight-floating-button-label = Підсвітити\npdfjs-editor-signature-button =\n    .title = Додати підпис\npdfjs-editor-signature-button-label = Додати підпис\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Редактор підсвічень\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Редактор малюнків\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Редактор підпису: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Редактор зображень\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Вилучити малюнок\npdfjs-editor-remove-freetext-button =\n    .title = Вилучити текст\npdfjs-editor-remove-stamp-button =\n    .title = Вилучити зображення\npdfjs-editor-remove-highlight-button =\n    .title = Вилучити підсвічення\npdfjs-editor-remove-signature-button =\n    .title = Вилучити підпис\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Колір\npdfjs-editor-free-text-size-input = Розмір\npdfjs-editor-ink-color-input = Колір\npdfjs-editor-ink-thickness-input = Товщина\npdfjs-editor-ink-opacity-input = Прозорість\npdfjs-editor-stamp-add-image-button =\n    .title = Додати зображення\npdfjs-editor-stamp-add-image-button-label = Додати зображення\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Товщина\npdfjs-editor-free-highlight-thickness-title =\n    .title = Змінюйте товщину під час підсвічення елементів, крім тексту\npdfjs-editor-add-signature-container =\n    .aria-label = Елементи керування підписами та збережені підписи\npdfjs-editor-signature-add-signature-button =\n    .title = Додати новий підпис\npdfjs-editor-signature-add-signature-button-label = Додати новий підпис\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Збережений підпис: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Текстовий редактор\n    .default-content = Напишіть щось…\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Альтернативний текст\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Редагувати альтернативний текст\npdfjs-editor-alt-text-dialog-label = Вибрати варіант\npdfjs-editor-alt-text-dialog-description = Альтернативний текст допомагає, коли зображення не видно або коли воно не завантажується.\npdfjs-editor-alt-text-add-description-label = Додати опис\npdfjs-editor-alt-text-add-description-description = Намагайтеся створити 1-2 речення, які описують тему, обставини або дії.\npdfjs-editor-alt-text-mark-decorative-label = Позначити декоративним\npdfjs-editor-alt-text-mark-decorative-description = Використовується для декоративних зображень, наприклад рамок або водяних знаків.\npdfjs-editor-alt-text-cancel-button = Скасувати\npdfjs-editor-alt-text-save-button = Зберегти\npdfjs-editor-alt-text-decorative-tooltip = Позначено декоративним\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Наприклад, “Молодий чоловік сідає за стіл їсти”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Альтернативний текст\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Верхній лівий кут – зміна розміру\npdfjs-editor-resizer-top-middle =\n    .aria-label = Вгорі посередині – зміна розміру\npdfjs-editor-resizer-top-right =\n    .aria-label = Верхній правий кут – зміна розміру\npdfjs-editor-resizer-middle-right =\n    .aria-label = Праворуч посередині – зміна розміру\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Нижній правий кут – зміна розміру\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Внизу посередині – зміна розміру\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Нижній лівий кут – зміна розміру\npdfjs-editor-resizer-middle-left =\n    .aria-label = Ліворуч посередині – зміна розміру\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Колір підсвічення\npdfjs-editor-colorpicker-button =\n    .title = Змінити колір\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Вибір кольору\npdfjs-editor-colorpicker-yellow =\n    .title = Жовтий\npdfjs-editor-colorpicker-green =\n    .title = Зелений\npdfjs-editor-colorpicker-blue =\n    .title = Блакитний\npdfjs-editor-colorpicker-pink =\n    .title = Рожевий\npdfjs-editor-colorpicker-red =\n    .title = Червоний\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Показати все\npdfjs-editor-highlight-show-all-button =\n    .title = Показати все\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Редагувати альтернативний текст (опис зображення)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Додати альтернативний текст (опис зображення)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Напишіть свій опис тут…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Короткий опис для людей, які не бачать зображення, або якщо зображення не завантажується.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Цей альтернативний текст створено автоматично, тому він може бути неточним.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Докладніше\npdfjs-editor-new-alt-text-create-automatically-button-label = Автоматично створювати альтернативний текст\npdfjs-editor-new-alt-text-not-now-button = Не зараз\npdfjs-editor-new-alt-text-error-title = Не вдалося автоматично створити альтернативний текст\npdfjs-editor-new-alt-text-error-description = Напишіть власний альтернативний текст або повторіть спробу пізніше.\npdfjs-editor-new-alt-text-error-close-button = Закрити\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Завантаження моделі ШІ для альтернативного тексту ({ $downloadedSize } з { $totalSize } МБ)\n    .aria-valuetext = Завантаження моделі ШІ для альтернативного тексту ({ $downloadedSize } з { $totalSize } МБ)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Альтернативний текст додано\npdfjs-editor-new-alt-text-added-button-label = Альтернативний текст додано\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Відсутній альтернативний текст\npdfjs-editor-new-alt-text-missing-button-label = Відсутній альтернативний текст\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Переглянути альтернативний текст\npdfjs-editor-new-alt-text-to-review-button-label = Переглянути альтернативний текст\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Створено автоматично: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Налаштування альтернативного тексту зображення\npdfjs-image-alt-text-settings-button-label = Налаштування альтернативного тексту зображення\npdfjs-editor-alt-text-settings-dialog-label = Налаштування альтернативного тексту зображення\npdfjs-editor-alt-text-settings-automatic-title = Автоматичний альтернативний текст\npdfjs-editor-alt-text-settings-create-model-button-label = Автоматично створювати альтернативний текст\npdfjs-editor-alt-text-settings-create-model-description = Пропонує описи, щоб допомогти людям, які не бачать зображення, або якщо зображення не завантажується.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Модель ШІ для альтернативного тексту ({ $totalSize } МБ)\npdfjs-editor-alt-text-settings-ai-model-description = Працює локально на вашому пристрої, тому приватність ваших даних захищена. Призначена для автоматичного створення альтернативного тексту.\npdfjs-editor-alt-text-settings-delete-model-button = Видалити\npdfjs-editor-alt-text-settings-download-model-button = Завантажити\npdfjs-editor-alt-text-settings-downloading-model-button = Завантаження…\npdfjs-editor-alt-text-settings-editor-title = Редактор альтернативного тексту\npdfjs-editor-alt-text-settings-show-dialog-button-label = Показувати редактор альтернативного тексту під час додавання зображення\npdfjs-editor-alt-text-settings-show-dialog-description = Допомагає переконатися, що всі ваші зображення мають альтернативний текст.\npdfjs-editor-alt-text-settings-close-button = Закрити\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Підсвічення вилучено\npdfjs-editor-undo-bar-message-freetext = Текст вилучено\npdfjs-editor-undo-bar-message-ink = Малюнок вилучено\npdfjs-editor-undo-bar-message-stamp = Зображення вилучено\npdfjs-editor-undo-bar-message-signature = Підпис вилучено\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple =\n    { $count ->\n        [one] { $count } анотацію вилучено\n        [few] { $count } анотації вилучено\n       *[many] { $count } анотацій вилучено\n    }\npdfjs-editor-undo-bar-undo-button =\n    .title = Повернути\npdfjs-editor-undo-bar-undo-button-label = Повернути\npdfjs-editor-undo-bar-close-button =\n    .title = Закрити\npdfjs-editor-undo-bar-close-button-label = Закрити\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = У цьому вікні користувач може створити підпис для додавання до PDF-документа. Користувач може відредагувати назву (яка також слугує альтернативним текстом) і, за бажання, зберегти підпис для повторного використання.\npdfjs-editor-add-signature-dialog-title = Додати підпис\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Ввести\n    .title = Ввести\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Малювати\n    .title = Малювати\npdfjs-editor-add-signature-image-button = Зображення\n    .title = Зображення\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Введіть свій підпис\n    .placeholder = Введіть свій підпис\npdfjs-editor-add-signature-draw-placeholder = Намалюйте свій підпис\npdfjs-editor-add-signature-draw-thickness-range-label = Товщина\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Товщина лінії: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Перетягніть файл сюди, щоб вивантажити\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Або виберіть файли зображень\n       *[other] Або перегляньте файли зображень\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Опис (альтернативний текст)\npdfjs-editor-add-signature-description-input =\n    .title = Опис (альтернативний текст)\npdfjs-editor-add-signature-description-default-when-drawing = Підпис\npdfjs-editor-add-signature-clear-button-label = Очистити підпис\npdfjs-editor-add-signature-clear-button =\n    .title = Очистити підпис\npdfjs-editor-add-signature-save-checkbox = Зберегти підпис\npdfjs-editor-add-signature-save-warning-message = Ви досягли ліміту в 5 збережених підписів. Вилучіть один, щоб зберегти інший.\npdfjs-editor-add-signature-image-upload-error-title = Не вдалося вивантажити зображення\npdfjs-editor-add-signature-image-upload-error-description = Перевірте мережеве з'єднання або спробуйте інше зображення.\npdfjs-editor-add-signature-error-close-button = Закрити\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Скасувати\npdfjs-editor-add-signature-add-button = Додати\npdfjs-editor-edit-signature-update-button = Оновити\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Видалити збережений підпис\npdfjs-editor-delete-signature-button-label1 = Видалити збережений підпис\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Редагувати опис\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Редагувати опис\n"
  },
  {
    "path": "viewer/locale/ur/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = پچھلا صفحہ\npdfjs-previous-button-label = پچھلا\npdfjs-next-button =\n    .title = اگلا صفحہ\npdfjs-next-button-label = آگے\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = صفحہ\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = { $pagesCount } کا\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } کا { $pagesCount })\npdfjs-zoom-out-button =\n    .title = باہر زوم کریں\npdfjs-zoom-out-button-label = باہر زوم کریں\npdfjs-zoom-in-button =\n    .title = اندر زوم کریں\npdfjs-zoom-in-button-label = اندر زوم کریں\npdfjs-zoom-select =\n    .title = زوم\npdfjs-presentation-mode-button =\n    .title = پیشکش موڈ میں چلے جائیں\npdfjs-presentation-mode-button-label = پیشکش موڈ\npdfjs-open-file-button =\n    .title = مسل کھولیں\npdfjs-open-file-button-label = کھولیں\npdfjs-print-button =\n    .title = چھاپیں\npdfjs-print-button-label = چھاپیں\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = آلات\npdfjs-tools-button-label = آلات\npdfjs-first-page-button =\n    .title = پہلے صفحہ پر جائیں\npdfjs-first-page-button-label = پہلے صفحہ پر جائیں\npdfjs-last-page-button =\n    .title = آخری صفحہ پر جائیں\npdfjs-last-page-button-label = آخری صفحہ پر جائیں\npdfjs-page-rotate-cw-button =\n    .title = گھڑی وار گھمائیں\npdfjs-page-rotate-cw-button-label = گھڑی وار گھمائیں\npdfjs-page-rotate-ccw-button =\n    .title = ضد گھڑی وار گھمائیں\npdfjs-page-rotate-ccw-button-label = ضد گھڑی وار گھمائیں\npdfjs-cursor-text-select-tool-button =\n    .title = متن کے انتخاب کے ٹول کو فعال بناے\npdfjs-cursor-text-select-tool-button-label = متن کے انتخاب کا آلہ\npdfjs-cursor-hand-tool-button =\n    .title = ہینڈ ٹول کو فعال بناییں\npdfjs-cursor-hand-tool-button-label = ہاتھ کا آلہ\npdfjs-scroll-vertical-button =\n    .title = عمودی اسکرولنگ کا استعمال کریں\npdfjs-scroll-vertical-button-label = عمودی اسکرولنگ\npdfjs-scroll-horizontal-button =\n    .title = افقی سکرولنگ کا استعمال کریں\npdfjs-scroll-horizontal-button-label = افقی سکرولنگ\npdfjs-spread-none-button =\n    .title = صفحہ پھیلانے میں شامل نہ ہوں\npdfjs-spread-none-button-label = کوئی پھیلاؤ نہیں\npdfjs-spread-odd-button-label = تاک پھیلاؤ\npdfjs-spread-even-button-label = جفت پھیلاؤ\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = دستاویز خواص…\npdfjs-document-properties-button-label = دستاویز خواص…\npdfjs-document-properties-file-name = نام مسل:\npdfjs-document-properties-file-size = مسل سائز:\npdfjs-document-properties-title = عنوان:\npdfjs-document-properties-author = تخلیق کار:\npdfjs-document-properties-subject = موضوع:\npdfjs-document-properties-keywords = کلیدی الفاظ:\npdfjs-document-properties-creation-date = تخلیق کی تاریخ:\npdfjs-document-properties-modification-date = ترمیم کی تاریخ:\npdfjs-document-properties-creator = تخلیق کار:\npdfjs-document-properties-producer = PDF پیدا کار:\npdfjs-document-properties-version = PDF ورژن:\npdfjs-document-properties-page-count = صفحہ شمار:\npdfjs-document-properties-page-size = صفہ کی لمبائ:\npdfjs-document-properties-page-size-unit-inches = میں\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = عمودی انداز\npdfjs-document-properties-page-size-orientation-landscape = افقى انداز\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = خط\npdfjs-document-properties-page-size-name-legal = قانونی\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } { $name } { $orientation }\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = تیز ویب دیکھیں:\npdfjs-document-properties-linearized-yes = ہاں\npdfjs-document-properties-linearized-no = نہیں\npdfjs-document-properties-close-button = بند کریں\n\n## Print\n\npdfjs-print-progress-message = چھاپنے کرنے کے لیے دستاویز تیار کیے جا رھے ھیں\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = *{ $progress }%*\npdfjs-print-progress-close-button = منسوخ کریں\npdfjs-printing-not-supported = تنبیہ:چھاپنا اس براؤزر پر پوری طرح معاونت شدہ نہیں ہے۔\npdfjs-printing-not-ready = تنبیہ: PDF چھپائی کے لیے پوری طرح لوڈ نہیں ہوئی۔\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = سلائیڈ ٹوگل کریں\npdfjs-toggle-sidebar-button-label = سلائیڈ ٹوگل کریں\npdfjs-document-outline-button =\n    .title = دستاویز کی سرخیاں دکھایں (تمام اشیاء وسیع / غائب کرنے کے لیے ڈبل کلک کریں)\npdfjs-document-outline-button-label = دستاویز آؤٹ لائن\npdfjs-attachments-button =\n    .title = منسلکات دکھائیں\npdfjs-attachments-button-label = منسلکات\npdfjs-thumbs-button =\n    .title = تھمبنیل دکھائیں\npdfjs-thumbs-button-label = مجمل\npdfjs-findbar-button =\n    .title = دستاویز میں ڈھونڈیں\npdfjs-findbar-button-label = ڈھونڈیں\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = صفحہ { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = صفحے کا مجمل { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = ڈھونڈیں\n    .placeholder = دستاویز… میں ڈھونڈیں\npdfjs-find-previous-button =\n    .title = فقرے کا پچھلا وقوع ڈھونڈیں\npdfjs-find-previous-button-label = پچھلا\npdfjs-find-next-button =\n    .title = فقرے کا اگلہ وقوع ڈھونڈیں\npdfjs-find-next-button-label = آگے\npdfjs-find-highlight-checkbox = تمام نمایاں کریں\npdfjs-find-match-case-checkbox-label = حروف مشابہ کریں\npdfjs-find-entire-word-checkbox-label = تمام الفاظ\npdfjs-find-reached-top = صفحہ کے شروع پر پہنچ گیا، نیچے سے جاری کیا\npdfjs-find-reached-bottom = صفحہ کے اختتام پر پہنچ گیا، اوپر سے جاری کیا\npdfjs-find-not-found = فقرا نہیں ملا\n\n## Predefined zoom values\n\npdfjs-page-scale-width = صفحہ چوڑائی\npdfjs-page-scale-fit = صفحہ فٹنگ\npdfjs-page-scale-auto = خودکار زوم\npdfjs-page-scale-actual = اصل سائز\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = صفحہ { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF لوڈ کرتے وقت نقص آ گیا۔\npdfjs-invalid-file-error = ناجائز یا خراب PDF مسل\npdfjs-missing-file-error = PDF مسل غائب ہے۔\npdfjs-unexpected-response-error = غیرمتوقع پیش کار جواب\npdfjs-rendering-error = صفحہ بناتے ہوئے نقص آ گیا۔\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } نوٹ]\n\n## Password\n\npdfjs-password-label = PDF مسل کھولنے کے لیے پاس ورڈ داخل کریں.\npdfjs-password-invalid = ناجائز پاس ورڈ. براےؑ کرم دوبارہ کوشش کریں.\npdfjs-password-ok-button = ٹھیک ہے\npdfjs-password-cancel-button = منسوخ کریں\npdfjs-web-fonts-disabled = ویب فانٹ نا اہل ہیں: شامل PDF فانٹ استعمال کرنے میں ناکام۔\n"
  },
  {
    "path": "viewer/locale/uz/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Oldingi sahifa\npdfjs-previous-button-label = Oldingi\npdfjs-next-button =\n    .title = Keyingi sahifa\npdfjs-next-button-label = Keyingi\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = /{ $pagesCount }\npdfjs-zoom-out-button =\n    .title = Kichiklashtirish\npdfjs-zoom-out-button-label = Kichiklashtirish\npdfjs-zoom-in-button =\n    .title = Kattalashtirish\npdfjs-zoom-in-button-label = Kattalashtirish\npdfjs-zoom-select =\n    .title = Masshtab\npdfjs-presentation-mode-button =\n    .title = Namoyish usuliga oʻtish\npdfjs-presentation-mode-button-label = Namoyish usuli\npdfjs-open-file-button =\n    .title = Faylni ochish\npdfjs-open-file-button-label = Ochish\npdfjs-print-button =\n    .title = Chop qilish\npdfjs-print-button-label = Chop qilish\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Vositalar\npdfjs-tools-button-label = Vositalar\npdfjs-first-page-button =\n    .title = Birinchi sahifaga oʻtish\npdfjs-first-page-button-label = Birinchi sahifaga oʻtish\npdfjs-last-page-button =\n    .title = Soʻnggi sahifaga oʻtish\npdfjs-last-page-button-label = Soʻnggi sahifaga oʻtish\npdfjs-page-rotate-cw-button =\n    .title = Soat yoʻnalishi boʻyicha burish\npdfjs-page-rotate-cw-button-label = Soat yoʻnalishi boʻyicha burish\npdfjs-page-rotate-ccw-button =\n    .title = Soat yoʻnalishiga qarshi burish\npdfjs-page-rotate-ccw-button-label = Soat yoʻnalishiga qarshi burish\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Hujjat xossalari\npdfjs-document-properties-button-label = Hujjat xossalari\npdfjs-document-properties-file-name = Fayl nomi:\npdfjs-document-properties-file-size = Fayl hajmi:\npdfjs-document-properties-title = Nomi:\npdfjs-document-properties-author = Muallifi:\npdfjs-document-properties-subject = Mavzusi:\npdfjs-document-properties-keywords = Kalit so‘zlar\npdfjs-document-properties-creation-date = Yaratilgan sanasi:\npdfjs-document-properties-modification-date = O‘zgartirilgan sanasi\npdfjs-document-properties-creator = Yaratuvchi:\npdfjs-document-properties-producer = PDF ishlab chiqaruvchi:\npdfjs-document-properties-version = PDF versiyasi:\npdfjs-document-properties-page-count = Sahifa soni:\n\n##\n\npdfjs-document-properties-close-button = Yopish\n\n## Print\n\npdfjs-printing-not-supported = Diqqat: chop qilish bruzer tomonidan toʻliq qoʻllab-quvvatlanmaydi.\npdfjs-printing-not-ready = Diqqat: PDF fayl chop qilish uchun toʻliq yuklanmadi.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Yon panelni yoqib/oʻchirib qoʻyish\npdfjs-toggle-sidebar-button-label = Yon panelni yoqib/oʻchirib qoʻyish\npdfjs-document-outline-button-label = Hujjat tuzilishi\npdfjs-attachments-button =\n    .title = Ilovalarni ko‘rsatish\npdfjs-attachments-button-label = Ilovalar\npdfjs-thumbs-button =\n    .title = Nishonchalarni koʻrsatish\npdfjs-thumbs-button-label = Nishoncha\npdfjs-findbar-button =\n    .title = Hujjat ichidan topish\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = { $page } sahifa\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = { $page } sahifa nishonchasi\n\n## Find panel button title and messages\n\npdfjs-find-previous-button =\n    .title = Soʻzlardagi oldingi hodisani topish\npdfjs-find-previous-button-label = Oldingi\npdfjs-find-next-button =\n    .title = Iboradagi keyingi hodisani topish\npdfjs-find-next-button-label = Keyingi\npdfjs-find-highlight-checkbox = Barchasini ajratib koʻrsatish\npdfjs-find-match-case-checkbox-label = Katta-kichik harflarni farqlash\npdfjs-find-reached-top = Hujjatning boshigacha yetib keldik, pastdan davom ettiriladi\npdfjs-find-reached-bottom = Hujjatning oxiriga yetib kelindi, yuqoridan davom ettirladi\npdfjs-find-not-found = Soʻzlar topilmadi\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Sahifa eni\npdfjs-page-scale-fit = Sahifani moslashtirish\npdfjs-page-scale-auto = Avtomatik masshtab\npdfjs-page-scale-actual = Haqiqiy hajmi\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = PDF yuklanayotganda xato yuz berdi.\npdfjs-invalid-file-error = Xato yoki buzuq PDF fayli.\npdfjs-missing-file-error = PDF fayl kerak.\npdfjs-unexpected-response-error = Kutilmagan server javobi.\npdfjs-rendering-error = Sahifa renderlanayotganda xato yuz berdi.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Annotation]\n\n## Password\n\npdfjs-password-label = PDF faylni ochish uchun parolni kiriting.\npdfjs-password-invalid = Parol - notoʻgʻri. Qaytadan urinib koʻring.\npdfjs-password-ok-button = OK\npdfjs-web-fonts-disabled = Veb shriftlar oʻchirilgan: ichki PDF shriftlardan foydalanib boʻlmmaydi.\n"
  },
  {
    "path": "viewer/locale/vi/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Trang trước\npdfjs-previous-button-label = Trước\npdfjs-next-button =\n    .title = Trang Sau\npdfjs-next-button-label = Tiếp\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Trang\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = trên { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } trên { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Thu nhỏ\npdfjs-zoom-out-button-label = Thu nhỏ\npdfjs-zoom-in-button =\n    .title = Phóng to\npdfjs-zoom-in-button-label = Phóng to\npdfjs-zoom-select =\n    .title = Thu phóng\npdfjs-presentation-mode-button =\n    .title = Chuyển sang chế độ trình chiếu\npdfjs-presentation-mode-button-label = Chế độ trình chiếu\npdfjs-open-file-button =\n    .title = Mở tập tin\npdfjs-open-file-button-label = Mở tập tin\npdfjs-print-button =\n    .title = In\npdfjs-print-button-label = In\npdfjs-save-button =\n    .title = Lưu\npdfjs-save-button-label = Lưu\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = Tải xuống\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = Tải xuống\npdfjs-bookmark-button =\n    .title = Trang hiện tại (xem URL từ trang hiện tại)\npdfjs-bookmark-button-label = Trang hiện tại\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Công cụ\npdfjs-tools-button-label = Công cụ\npdfjs-first-page-button =\n    .title = Về trang đầu\npdfjs-first-page-button-label = Về trang đầu\npdfjs-last-page-button =\n    .title = Đến trang cuối\npdfjs-last-page-button-label = Đến trang cuối\npdfjs-page-rotate-cw-button =\n    .title = Xoay theo chiều kim đồng hồ\npdfjs-page-rotate-cw-button-label = Xoay theo chiều kim đồng hồ\npdfjs-page-rotate-ccw-button =\n    .title = Xoay ngược chiều kim đồng hồ\npdfjs-page-rotate-ccw-button-label = Xoay ngược chiều kim đồng hồ\npdfjs-cursor-text-select-tool-button =\n    .title = Kích hoạt công cụ chọn vùng văn bản\npdfjs-cursor-text-select-tool-button-label = Công cụ chọn vùng văn bản\npdfjs-cursor-hand-tool-button =\n    .title = Kích hoạt công cụ con trỏ\npdfjs-cursor-hand-tool-button-label = Công cụ con trỏ\npdfjs-scroll-page-button =\n    .title = Sử dụng cuộn trang hiện tại\npdfjs-scroll-page-button-label = Cuộn trang hiện tại\npdfjs-scroll-vertical-button =\n    .title = Sử dụng cuộn dọc\npdfjs-scroll-vertical-button-label = Cuộn dọc\npdfjs-scroll-horizontal-button =\n    .title = Sử dụng cuộn ngang\npdfjs-scroll-horizontal-button-label = Cuộn ngang\npdfjs-scroll-wrapped-button =\n    .title = Sử dụng cuộn ngắt dòng\npdfjs-scroll-wrapped-button-label = Cuộn ngắt dòng\npdfjs-spread-none-button =\n    .title = Không nối rộng trang\npdfjs-spread-none-button-label = Không có phân cách\npdfjs-spread-odd-button =\n    .title = Nối trang bài bắt đầu với các trang được đánh số lẻ\npdfjs-spread-odd-button-label = Phân cách theo số lẻ\npdfjs-spread-even-button =\n    .title = Nối trang bài bắt đầu với các trang được đánh số chẵn\npdfjs-spread-even-button-label = Phân cách theo số chẵn\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Thuộc tính của tài liệu…\npdfjs-document-properties-button-label = Thuộc tính của tài liệu…\npdfjs-document-properties-file-name = Tên tập tin:\npdfjs-document-properties-file-size = Kích thước:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Tiêu đề:\npdfjs-document-properties-author = Tác giả:\npdfjs-document-properties-subject = Chủ đề:\npdfjs-document-properties-keywords = Từ khóa:\npdfjs-document-properties-creation-date = Ngày tạo:\npdfjs-document-properties-modification-date = Ngày sửa đổi:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Người tạo:\npdfjs-document-properties-producer = Phần mềm tạo PDF:\npdfjs-document-properties-version = Phiên bản PDF:\npdfjs-document-properties-page-count = Tổng số trang:\npdfjs-document-properties-page-size = Kích thước trang:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = khổ dọc\npdfjs-document-properties-page-size-orientation-landscape = khổ ngang\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Thư\npdfjs-document-properties-page-size-name-legal = Pháp lý\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation })\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = Xem nhanh trên web:\npdfjs-document-properties-linearized-yes = Có\npdfjs-document-properties-linearized-no = Không\npdfjs-document-properties-close-button = Ðóng\n\n## Print\n\npdfjs-print-progress-message = Chuẩn bị trang để in…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Hủy bỏ\npdfjs-printing-not-supported = Cảnh báo: In ấn không được hỗ trợ đầy đủ ở trình duyệt này.\npdfjs-printing-not-ready = Cảnh báo: PDF chưa được tải hết để in.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Bật/Tắt thanh lề\npdfjs-toggle-sidebar-notification-button =\n    .title = Bật tắt thanh lề (tài liệu bao gồm bản phác thảo/tập tin đính kèm/lớp)\npdfjs-toggle-sidebar-button-label = Bật/Tắt thanh lề\npdfjs-document-outline-button =\n    .title = Hiển thị tài liệu phác thảo (nhấp đúp vào để mở rộng/thu gọn tất cả các mục)\npdfjs-document-outline-button-label = Bản phác tài liệu\npdfjs-attachments-button =\n    .title = Hiện nội dung đính kèm\npdfjs-attachments-button-label = Nội dung đính kèm\npdfjs-layers-button =\n    .title = Hiển thị các lớp (nhấp đúp để đặt lại tất cả các lớp về trạng thái mặc định)\npdfjs-layers-button-label = Lớp\npdfjs-thumbs-button =\n    .title = Hiển thị ảnh thu nhỏ\npdfjs-thumbs-button-label = Ảnh thu nhỏ\npdfjs-current-outline-item-button =\n    .title = Tìm mục phác thảo hiện tại\npdfjs-current-outline-item-button-label = Mục phác thảo hiện tại\npdfjs-findbar-button =\n    .title = Tìm trong tài liệu\npdfjs-findbar-button-label = Tìm\npdfjs-additional-layers = Các lớp bổ sung\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Trang { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Ảnh thu nhỏ của trang { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Tìm\n    .placeholder = Tìm trong tài liệu…\npdfjs-find-previous-button =\n    .title = Tìm cụm từ ở phần trước\npdfjs-find-previous-button-label = Trước\npdfjs-find-next-button =\n    .title = Tìm cụm từ ở phần sau\npdfjs-find-next-button-label = Tiếp\npdfjs-find-highlight-checkbox = Đánh dấu tất cả\npdfjs-find-match-case-checkbox-label = Phân biệt hoa, thường\npdfjs-find-match-diacritics-checkbox-label = Khớp dấu phụ\npdfjs-find-entire-word-checkbox-label = Toàn bộ từ\npdfjs-find-reached-top = Đã đến phần đầu tài liệu, quay trở lại từ cuối\npdfjs-find-reached-bottom = Đã đến phần cuối của tài liệu, quay trở lại từ đầu\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = { $current } trên { $total } kết quả\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = Tìm thấy hơn { $limit } kết quả\npdfjs-find-not-found = Không tìm thấy cụm từ này\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Vừa chiều rộng\npdfjs-page-scale-fit = Vừa chiều cao\npdfjs-page-scale-auto = Tự động chọn kích thước\npdfjs-page-scale-actual = Kích thước thực\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = Trang { $page }\n\n## Loading indicator messages\n\npdfjs-loading-error = Lỗi khi tải tài liệu PDF.\npdfjs-invalid-file-error = Tập tin PDF hỏng hoặc không hợp lệ.\npdfjs-missing-file-error = Thiếu tập tin PDF.\npdfjs-unexpected-response-error = Máy chủ có phản hồi lạ.\npdfjs-rendering-error = Lỗi khi hiển thị trang.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Chú thích]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = Nhập mật khẩu để mở tập tin PDF này.\npdfjs-password-invalid = Mật khẩu không đúng. Vui lòng thử lại.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Hủy bỏ\npdfjs-web-fonts-disabled = Phông chữ Web bị vô hiệu hóa: không thể sử dụng các phông chữ PDF được nhúng.\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = Văn bản\npdfjs-editor-color-picker-free-text-input =\n    .title = Thay đổi màu chữ\npdfjs-editor-free-text-button-label = Văn bản\npdfjs-editor-ink-button =\n    .title = Vẽ\npdfjs-editor-color-picker-ink-input =\n    .title = Thay đổi màu vẽ\npdfjs-editor-ink-button-label = Vẽ\npdfjs-editor-stamp-button =\n    .title = Thêm hoặc chỉnh sửa hình ảnh\npdfjs-editor-stamp-button-label = Thêm hoặc chỉnh sửa hình ảnh\npdfjs-editor-highlight-button =\n    .title = Đánh dấu\npdfjs-editor-highlight-button-label = Đánh dấu\npdfjs-highlight-floating-button1 =\n    .title = Đánh dấu\n    .aria-label = Đánh dấu\npdfjs-highlight-floating-button-label = Đánh dấu\npdfjs-comment-floating-button =\n    .title = Chú thích\n    .aria-label = Chú thích\npdfjs-comment-floating-button-label = Chú thích\npdfjs-editor-comment-button =\n    .title = Chú thích\n    .aria-label = Chú thích\npdfjs-editor-comment-button-label = Chú thích\npdfjs-editor-signature-button =\n    .title = Thêm chữ ký\npdfjs-editor-signature-button-label = Thêm chữ ký\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = Trình chỉnh sửa đánh dấu\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = Trình chỉnh sửa bản vẽ\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = Trình chỉnh sửa chữ ký: { $description }\npdfjs-editor-stamp-editor =\n    .aria-label = Trình chỉnh sửa hình ảnh\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = Xóa bản vẽ\npdfjs-editor-remove-freetext-button =\n    .title = Xóa văn bản\npdfjs-editor-remove-stamp-button =\n    .title = Xóa ảnh\npdfjs-editor-remove-highlight-button =\n    .title = Xóa phần đánh dấu\npdfjs-editor-remove-signature-button =\n    .title = Xoá chữ ký\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = Màu\npdfjs-editor-free-text-size-input = Kích cỡ\npdfjs-editor-ink-color-input = Màu\npdfjs-editor-ink-thickness-input = Độ dày\npdfjs-editor-ink-opacity-input = Độ mờ\npdfjs-editor-stamp-add-image-button =\n    .title = Thêm hình ảnh\npdfjs-editor-stamp-add-image-button-label = Thêm hình ảnh\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = Độ dày\npdfjs-editor-free-highlight-thickness-title =\n    .title = Thay đổi độ dày khi đánh dấu các mục không phải là văn bản\npdfjs-editor-add-signature-container =\n    .aria-label = Kiểm soát chữ ký và chữ ký đã lưu\npdfjs-editor-signature-add-signature-button =\n    .title = Thêm chữ ký mới\npdfjs-editor-signature-add-signature-button-label = Thêm chữ ký mới\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = Đã lưu chữ ký: { $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = Trình chỉnh sửa văn bản\n    .default-content = Bắt đầu nhập…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = Chú thích\npdfjs-editor-comments-sidebar-close-button =\n    .title = Đóng thanh lề\n    .aria-label = Đóng thanh lề\npdfjs-editor-comments-sidebar-close-button-label = Đóng thanh lề\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = Bạn thấy điều gì đáng chú ý? Hãy đánh dấu và để lại chú thích.\npdfjs-editor-comments-sidebar-no-comments-link = Tìm hiểu thêm\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = Văn bản thay thế\npdfjs-editor-alt-text-edit-button =\n    .aria-label = Chỉnh sửa văn bản thay thế\npdfjs-editor-alt-text-dialog-label = Chọn một lựa chọn\npdfjs-editor-alt-text-dialog-description = Văn bản thay thế sẽ hữu ích khi mọi người không thể thấy hình ảnh hoặc khi hình ảnh không tải.\npdfjs-editor-alt-text-add-description-label = Thêm một mô tả\npdfjs-editor-alt-text-add-description-description = Hãy nhắm tới 1-2 câu mô tả chủ đề, bối cảnh hoặc hành động.\npdfjs-editor-alt-text-mark-decorative-label = Đánh dấu là trang trí\npdfjs-editor-alt-text-mark-decorative-description = Điều này được sử dụng cho các hình ảnh trang trí, như đường viền hoặc watermark.\npdfjs-editor-alt-text-cancel-button = Hủy bỏ\npdfjs-editor-alt-text-save-button = Lưu\npdfjs-editor-alt-text-decorative-tooltip = Đã đánh dấu là trang trí\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = Ví dụ: “Một thanh niên ngồi xuống bàn để thưởng thức một bữa ăn”\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = Văn bản thay thế\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = Trên cùng bên trái — thay đổi kích thước\npdfjs-editor-resizer-top-middle =\n    .aria-label = Trên cùng ở giữa — thay đổi kích thước\npdfjs-editor-resizer-top-right =\n    .aria-label = Trên cùng bên phải — thay đổi kích thước\npdfjs-editor-resizer-middle-right =\n    .aria-label = Ở giữa bên phải — thay đổi kích thước\npdfjs-editor-resizer-bottom-right =\n    .aria-label = Dưới cùng bên phải — thay đổi kích thước\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = Ở giữa dưới cùng — thay đổi kích thước\npdfjs-editor-resizer-bottom-left =\n    .aria-label = Góc dưới bên trái — thay đổi kích thước\npdfjs-editor-resizer-middle-left =\n    .aria-label = Ở giữa bên trái — thay đổi kích thước\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = Màu đánh dấu\npdfjs-editor-colorpicker-button =\n    .title = Thay đổi màu\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = Lựa chọn màu sắc\npdfjs-editor-colorpicker-yellow =\n    .title = Vàng\npdfjs-editor-colorpicker-green =\n    .title = Xanh lục\npdfjs-editor-colorpicker-blue =\n    .title = Xanh dương\npdfjs-editor-colorpicker-pink =\n    .title = Hồng\npdfjs-editor-colorpicker-red =\n    .title = Đỏ\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = Hiện tất cả\npdfjs-editor-highlight-show-all-button =\n    .title = Hiện tất cả\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = Chỉnh sửa văn bản thay thế (mô tả hình ảnh)\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = Thêm văn bản thay thế (mô tả hình ảnh)\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = Viết mô tả của bạn ở đây…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = Mô tả ngắn gọn dành cho người không xem được ảnh hoặc khi không thể tải ảnh.\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = Văn bản thay thế này được tạo tự động và có thể không chính xác.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Tìm hiểu thêm\npdfjs-editor-new-alt-text-create-automatically-button-label = Tạo văn bản thay thế tự động\npdfjs-editor-new-alt-text-not-now-button = Không phải bây giờ\npdfjs-editor-new-alt-text-error-title = Không thể tạo tự động văn bản thay thế\npdfjs-editor-new-alt-text-error-description = Vui lòng viết văn bản thay thế của riêng bạn hoặc thử lại sau.\npdfjs-editor-new-alt-text-error-close-button = Đóng\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Đang tải xuống mô hình AI văn bản thay thế ({ $downloadedSize } / { $totalSize } MB)\n    .aria-valuetext = Đang tải xuống mô hình AI văn bản thay thế ({ $downloadedSize } / { $totalSize } MB)\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = Đã thêm văn bản thay thế\npdfjs-editor-new-alt-text-added-button-label = Đã thêm văn bản thay thế\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = Thiếu văn bản thay thế\npdfjs-editor-new-alt-text-missing-button-label = Thiếu văn bản thay thế\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = Xem lại văn bản thay thế\npdfjs-editor-new-alt-text-to-review-button-label = Xem lại văn bản thay thế\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Được tạo tự động: { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = Cài đặt văn bản thay thế của hình ảnh\npdfjs-image-alt-text-settings-button-label = Cài đặt văn bản thay thế của hình ảnh\npdfjs-editor-alt-text-settings-dialog-label = Cài đặt văn bản thay thế của hình ảnh\npdfjs-editor-alt-text-settings-automatic-title = Văn bản thay thế tự động\npdfjs-editor-alt-text-settings-create-model-button-label = Tạo văn bản thay thế tự động\npdfjs-editor-alt-text-settings-create-model-description = Đề xuất mô tả giúp ích cho những người không xem được ảnh hoặc khi không thể tải ảnh.\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = Mô hình AI văn bản khác ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Chạy cục bộ trên thiết bị của bạn để dữ liệu của bạn luôn ở chế độ riêng tư. Bắt buộc đối với văn bản thay thế tự động.\npdfjs-editor-alt-text-settings-delete-model-button = Xóa\npdfjs-editor-alt-text-settings-download-model-button = Tải xuống\npdfjs-editor-alt-text-settings-downloading-model-button = Đang tải xuống…\npdfjs-editor-alt-text-settings-editor-title = Trình soạn thảo văn bản thay thế\npdfjs-editor-alt-text-settings-show-dialog-button-label = Hiển thị ngay trình soạn thảo văn bản thay thế khi thêm hình ảnh\npdfjs-editor-alt-text-settings-show-dialog-description = Giúp bạn đảm bảo tất cả hình ảnh của bạn đều có văn bản thay thế.\npdfjs-editor-alt-text-settings-close-button = Đóng\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = Đã thêm tô sáng\npdfjs-editor-freetext-added-alert = Đã thêm chữ\npdfjs-editor-ink-added-alert = Đã thêm bản vẽ\npdfjs-editor-stamp-added-alert = Đã thêm ảnh\npdfjs-editor-signature-added-alert = Đã thêm chữ ký\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = Đã xóa đánh dấu\npdfjs-editor-undo-bar-message-freetext = Đã xóa văn bản\npdfjs-editor-undo-bar-message-ink = Đã xóa bản vẽ\npdfjs-editor-undo-bar-message-stamp = Đã xóa hình ảnh\npdfjs-editor-undo-bar-message-signature = Chữ ký đã bị xoá\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = { $count } chú thích đã bị xóa\npdfjs-editor-undo-bar-undo-button =\n    .title = Hoàn tác\npdfjs-editor-undo-bar-undo-button-label = Hoàn tác\npdfjs-editor-undo-bar-close-button =\n    .title = Đóng\npdfjs-editor-undo-bar-close-button-label = Đóng\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = Phương thức này cho phép người dùng tạo một chữ ký để thêm vào tài liệu PDF. Người dùng có thể chỉnh sửa tên (cũng đóng vai trò là văn bản thay thế) và tùy chọn lưu chữ ký để sử dụng nhiều lần.\npdfjs-editor-add-signature-dialog-title = Thêm chữ ký\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = Đánh văn bản\n    .title = Đánh văn bản\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = Vẽ\n    .title = Vẽ\npdfjs-editor-add-signature-image-button = Hình ảnh\n    .title = Hình ảnh\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = Nhập chữ ký của bạn\n    .placeholder = Nhập chữ ký của bạn\npdfjs-editor-add-signature-draw-placeholder = Vẽ chữ ký của bạn\npdfjs-editor-add-signature-draw-thickness-range-label = Độ dày\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = Độ dày bút vẽ: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Kéo một tập tin tại đây để tải lên\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] Hoặc chọn hình ảnh\n       *[other] Hoặc chọn hình ảnh\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = Mô tả (văn bản thay thế)\npdfjs-editor-add-signature-description-input =\n    .title = Mô tả (văn bản thay thế)\npdfjs-editor-add-signature-description-default-when-drawing = Chữ ký\npdfjs-editor-add-signature-clear-button-label = Xoá chữ ký\npdfjs-editor-add-signature-clear-button =\n    .title = Xoá chữ ký\npdfjs-editor-add-signature-save-checkbox = Lưu chữ ký\npdfjs-editor-add-signature-save-warning-message = Bạn đã đạt đến giới hạn 5 chữ ký đã lưu. Hãy xóa một cái để lưu thêm.\npdfjs-editor-add-signature-image-upload-error-title = Không thể tải lên hình ảnh\npdfjs-editor-add-signature-image-upload-error-description = Kiểm tra kết nối mạng của bạn hoặc thử hình ảnh khác.\npdfjs-editor-add-signature-image-no-data-error-title = Không thể chuyển đổi hình ảnh này thành chữ ký\npdfjs-editor-add-signature-image-no-data-error-description = Vui lòng thử tải lên một hình ảnh khác.\npdfjs-editor-add-signature-error-close-button = Đóng\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = Hủy bỏ\npdfjs-editor-add-signature-add-button = Thêm\npdfjs-editor-edit-signature-update-button = Cập nhật\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = Chỉnh sửa chú thích\npdfjs-editor-edit-comment-popup-button =\n    .title = Chỉnh sửa chú thích\npdfjs-editor-delete-comment-popup-button-label = Xoá chú thích\npdfjs-editor-delete-comment-popup-button =\n    .title = Xoá chú thích\npdfjs-show-comment-button =\n    .title = Hiển thị chú thích\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = Hành động\npdfjs-editor-edit-comment-actions-button =\n    .title = Hành động\npdfjs-editor-edit-comment-close-button-label = Đóng\npdfjs-editor-edit-comment-close-button =\n    .title = Đóng\npdfjs-editor-edit-comment-actions-edit-button-label = Chỉnh sửa\npdfjs-editor-edit-comment-actions-delete-button-label = Xóa\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = Nhập chú thích của bạn\npdfjs-editor-edit-comment-manager-cancel-button = Hủy bỏ\npdfjs-editor-edit-comment-manager-save-button = Lưu\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = Chỉnh sửa chú thích\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Cập nhật\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = Thêm chú thích\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Thêm\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = Bắt đầu nhập…\npdfjs-editor-edit-comment-dialog-cancel-button = Hủy bỏ\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = Chỉnh sửa chú thích\npdfjs-editor-add-comment-button =\n    .title = Thêm chú thích\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = Xoá chữ ký đã lưu\npdfjs-editor-delete-signature-button-label1 = Xoá chữ ký đã lưu\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = Chỉnh sửa mô tả\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = Chỉnh sửa mô tả\n"
  },
  {
    "path": "viewer/locale/wo/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Xët wi jiitu\npdfjs-previous-button-label = Bi jiitu\npdfjs-next-button =\n    .title = Xët wi ci topp\npdfjs-next-button-label = Bi ci topp\npdfjs-zoom-out-button =\n    .title = Wàññi\npdfjs-zoom-out-button-label = Wàññi\npdfjs-zoom-in-button =\n    .title = Yaatal\npdfjs-zoom-in-button-label = Yaatal\npdfjs-zoom-select =\n    .title = Yambalaŋ\npdfjs-presentation-mode-button =\n    .title = Wañarñil ci anamu wone\npdfjs-presentation-mode-button-label = Anamu Wone\npdfjs-open-file-button =\n    .title = Ubbi benn dencukaay\npdfjs-open-file-button-label = Ubbi\npdfjs-print-button =\n    .title = Móol\npdfjs-print-button-label = Móol\n\n## Document properties dialog\n\npdfjs-document-properties-title = Bopp:\n\n## Print\n\npdfjs-printing-not-supported = Artu: Joowkat bii nanguwul lool mool.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-thumbs-button =\n    .title = Wone nataal yu ndaw yi\npdfjs-thumbs-button-label = Nataal yu ndaw yi\npdfjs-findbar-button =\n    .title = Gis ci biir jukki bi\npdfjs-findbar-button-label = Wut\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Xët { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Wiñet bu xët { $page }\n\n## Find panel button title and messages\n\npdfjs-find-previous-button =\n    .title = Seet beneen kaddu bu ni mel te jiitu\npdfjs-find-previous-button-label = Bi jiitu\npdfjs-find-next-button =\n    .title = Seet beneen kaddu bu ni mel\npdfjs-find-next-button-label = Bi ci topp\npdfjs-find-highlight-checkbox = Melaxal lépp\npdfjs-find-match-case-checkbox-label = Sàmm jëmmalin wi\npdfjs-find-reached-top = Jot nañu ndorteel xët wi, kontine dale ko ci suuf\npdfjs-find-reached-bottom = Jot nañu jeexitalu xët wi, kontine ci ndorte\npdfjs-find-not-found = Gisiñu kaddu gi\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Yaatuwaay bu mët\npdfjs-page-scale-fit = Xët lëmm\npdfjs-page-scale-auto = Yambalaŋ ci saa si\npdfjs-page-scale-actual = Dayo bi am\n\n## Loading indicator messages\n\npdfjs-loading-error = Am na njumte ci yebum dencukaay PDF bi.\npdfjs-invalid-file-error = Dencukaay PDF bi baaxul walla mu sankar.\npdfjs-rendering-error = Am njumte bu am bi xët bi di wonewu.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [Karmat { $type }]\n\n## Password\n\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Neenal\n"
  },
  {
    "path": "viewer/locale/xh/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = Iphepha langaphambili\npdfjs-previous-button-label = Okwangaphambili\npdfjs-next-button =\n    .title = Iphepha elilandelayo\npdfjs-next-button-label = Okulandelayo\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = Iphepha\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = kwali- { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } kwali { $pagesCount })\npdfjs-zoom-out-button =\n    .title = Bhekelisela Kudana\npdfjs-zoom-out-button-label = Bhekelisela Kudana\npdfjs-zoom-in-button =\n    .title = Sondeza Kufuphi\npdfjs-zoom-in-button-label = Sondeza Kufuphi\npdfjs-zoom-select =\n    .title = Yandisa / Nciphisa\npdfjs-presentation-mode-button =\n    .title = Tshintshela kwimo yonikezelo\npdfjs-presentation-mode-button-label = Imo yonikezelo\npdfjs-open-file-button =\n    .title = Vula Ifayile\npdfjs-open-file-button-label = Vula\npdfjs-print-button =\n    .title = Printa\npdfjs-print-button-label = Printa\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = Izixhobo zemiyalelo\npdfjs-tools-button-label = Izixhobo zemiyalelo\npdfjs-first-page-button =\n    .title = Yiya kwiphepha lokuqala\npdfjs-first-page-button-label = Yiya kwiphepha lokuqala\npdfjs-last-page-button =\n    .title = Yiya kwiphepha lokugqibela\npdfjs-last-page-button-label = Yiya kwiphepha lokugqibela\npdfjs-page-rotate-cw-button =\n    .title = Jikelisa ngasekunene\npdfjs-page-rotate-cw-button-label = Jikelisa ngasekunene\npdfjs-page-rotate-ccw-button =\n    .title = Jikelisa ngasekhohlo\npdfjs-page-rotate-ccw-button-label = Jikelisa ngasekhohlo\npdfjs-cursor-text-select-tool-button =\n    .title = Vumela iSixhobo sokuKhetha iTeksti\npdfjs-cursor-text-select-tool-button-label = ISixhobo sokuKhetha iTeksti\npdfjs-cursor-hand-tool-button =\n    .title = Yenza iSixhobo seSandla siSebenze\npdfjs-cursor-hand-tool-button-label = ISixhobo seSandla\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = Iipropati zoxwebhu…\npdfjs-document-properties-button-label = Iipropati zoxwebhu…\npdfjs-document-properties-file-name = Igama lefayile:\npdfjs-document-properties-file-size = Isayizi yefayile:\npdfjs-document-properties-title = Umxholo:\npdfjs-document-properties-author = Umbhali:\npdfjs-document-properties-subject = Umbandela:\npdfjs-document-properties-keywords = Amagama aphambili:\npdfjs-document-properties-creation-date = Umhla wokwenziwa kwayo:\npdfjs-document-properties-modification-date = Umhla wokulungiswa kwayo:\npdfjs-document-properties-creator = Umntu oyenzileyo:\npdfjs-document-properties-producer = Umvelisi we-PDF:\npdfjs-document-properties-version = Uhlelo lwe-PDF:\npdfjs-document-properties-page-count = Inani lamaphepha:\n\n##\n\npdfjs-document-properties-close-button = Vala\n\n## Print\n\npdfjs-print-progress-message = Ilungisa uxwebhu ukuze iprinte…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Rhoxisa\npdfjs-printing-not-supported = Isilumkiso: Ukuprinta akuxhaswa ngokupheleleyo yile bhrawuza.\npdfjs-printing-not-ready = Isilumkiso: IPDF ayihlohlwanga ngokupheleleyo ukwenzela ukuprinta.\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = Togola ngebha eseCaleni\npdfjs-toggle-sidebar-button-label = Togola ngebha eseCaleni\npdfjs-document-outline-button =\n    .title = Bonisa uLwandlalo loXwebhu (cofa kabini ukuze wandise/diliza zonke izinto)\npdfjs-document-outline-button-label = Isishwankathelo soxwebhu\npdfjs-attachments-button =\n    .title = Bonisa iziqhotyoshelwa\npdfjs-attachments-button-label = Iziqhoboshelo\npdfjs-thumbs-button =\n    .title = Bonisa ukrobiso kumfanekiso\npdfjs-thumbs-button-label = Ukrobiso kumfanekiso\npdfjs-findbar-button =\n    .title = Fumana kuXwebhu\npdfjs-findbar-button-label = Fumana\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = Iphepha { $page }\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = Ukrobiso kumfanekiso wephepha { $page }\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = Fumana\n    .placeholder = Fumana kuXwebhu…\npdfjs-find-previous-button =\n    .title = Fumanisa isenzeko sangaphambili sebinzana lamagama\npdfjs-find-previous-button-label = Okwangaphambili\npdfjs-find-next-button =\n    .title = Fumanisa isenzeko esilandelayo sebinzana lamagama\npdfjs-find-next-button-label = Okulandelayo\npdfjs-find-highlight-checkbox = Qaqambisa konke\npdfjs-find-match-case-checkbox-label = Tshatisa ngobukhulu bukanobumba\npdfjs-find-reached-top = Ufike ngaphezulu ephepheni, kusukwa ngezantsi\npdfjs-find-reached-bottom = Ufike ekupheleni kwephepha, kusukwa ngaphezulu\npdfjs-find-not-found = Ibinzana alifunyenwanga\n\n## Predefined zoom values\n\npdfjs-page-scale-width = Ububanzi bephepha\npdfjs-page-scale-fit = Ukulinganiswa kwephepha\npdfjs-page-scale-auto = Ukwandisa/Ukunciphisa Ngokwayo\npdfjs-page-scale-actual = Ubungakanani bokwenene\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## Loading indicator messages\n\npdfjs-loading-error = Imposiso yenzekile xa kulayishwa i-PDF.\npdfjs-invalid-file-error = Ifayile ye-PDF engeyiyo okanye eyonakalisiweyo.\npdfjs-missing-file-error = Ifayile ye-PDF edukileyo.\npdfjs-unexpected-response-error = Impendulo yeseva engalindelekanga.\npdfjs-rendering-error = Imposiso yenzekile xa bekunikezelwa iphepha.\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } Ubhalo-nqaku]\n\n## Password\n\npdfjs-password-label = Faka ipasiwedi ukuze uvule le fayile yePDF.\npdfjs-password-invalid = Ipasiwedi ayisebenzi. Nceda uzame kwakhona.\npdfjs-password-ok-button = KULUNGILE\npdfjs-password-cancel-button = Rhoxisa\npdfjs-web-fonts-disabled = Iifonti zewebhu ziqhwalelisiwe: ayikwazi ukusebenzisa iifonti ze-PDF ezincanyathelisiweyo.\n"
  },
  {
    "path": "viewer/locale/zh-CN/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = 上一页\npdfjs-previous-button-label = 上一页\npdfjs-next-button =\n    .title = 下一页\npdfjs-next-button-label = 下一页\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = 页面\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = / { $pagesCount }\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = ({ $pageNumber } / { $pagesCount })\npdfjs-zoom-out-button =\n    .title = 缩小\npdfjs-zoom-out-button-label = 缩小\npdfjs-zoom-in-button =\n    .title = 放大\npdfjs-zoom-in-button-label = 放大\npdfjs-zoom-select =\n    .title = 缩放\npdfjs-presentation-mode-button =\n    .title = 切换到演示模式\npdfjs-presentation-mode-button-label = 演示模式\npdfjs-open-file-button =\n    .title = 打开文件\npdfjs-open-file-button-label = 打开\npdfjs-print-button =\n    .title = 打印\npdfjs-print-button-label = 打印\npdfjs-save-button =\n    .title = 保存\npdfjs-save-button-label = 保存\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = 下载\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = 下载\npdfjs-bookmark-button =\n    .title = 当前页面（在当前页面查看 URL）\npdfjs-bookmark-button-label = 当前页面\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = 工具\npdfjs-tools-button-label = 工具\npdfjs-first-page-button =\n    .title = 转到第一页\npdfjs-first-page-button-label = 转到第一页\npdfjs-last-page-button =\n    .title = 转到最后一页\npdfjs-last-page-button-label = 转到最后一页\npdfjs-page-rotate-cw-button =\n    .title = 顺时针旋转\npdfjs-page-rotate-cw-button-label = 顺时针旋转\npdfjs-page-rotate-ccw-button =\n    .title = 逆时针旋转\npdfjs-page-rotate-ccw-button-label = 逆时针旋转\npdfjs-cursor-text-select-tool-button =\n    .title = 启用文本选择工具\npdfjs-cursor-text-select-tool-button-label = 文本选择工具\npdfjs-cursor-hand-tool-button =\n    .title = 启用手形工具\npdfjs-cursor-hand-tool-button-label = 手形工具\npdfjs-scroll-page-button =\n    .title = 使用页面滚动\npdfjs-scroll-page-button-label = 页面滚动\npdfjs-scroll-vertical-button =\n    .title = 使用垂直滚动\npdfjs-scroll-vertical-button-label = 垂直滚动\npdfjs-scroll-horizontal-button =\n    .title = 使用水平滚动\npdfjs-scroll-horizontal-button-label = 水平滚动\npdfjs-scroll-wrapped-button =\n    .title = 使用平铺滚动\npdfjs-scroll-wrapped-button-label = 平铺滚动\npdfjs-spread-none-button =\n    .title = 不加入衔接页\npdfjs-spread-none-button-label = 单页视图\npdfjs-spread-odd-button =\n    .title = 加入衔接页使奇数页作为起始页\npdfjs-spread-odd-button-label = 双页视图\npdfjs-spread-even-button =\n    .title = 加入衔接页使偶数页作为起始页\npdfjs-spread-even-button-label = 书籍视图\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = 文档属性…\npdfjs-document-properties-button-label = 文档属性…\npdfjs-document-properties-file-name = 文件名:\npdfjs-document-properties-file-size = 文件大小:\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB（{ $b } 字节）\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB（{ $b } 字节）\npdfjs-document-properties-title = 标题:\npdfjs-document-properties-author = 作者:\npdfjs-document-properties-subject = 主题:\npdfjs-document-properties-keywords = 关键词:\npdfjs-document-properties-creation-date = 创建日期:\npdfjs-document-properties-modification-date = 修改日期:\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = 创建者:\npdfjs-document-properties-producer = PDF 生成器：\npdfjs-document-properties-version = PDF 版本:\npdfjs-document-properties-page-count = 页数:\npdfjs-document-properties-page-size = 页面大小：\npdfjs-document-properties-page-size-unit-inches = 英寸\npdfjs-document-properties-page-size-unit-millimeters = 毫米\npdfjs-document-properties-page-size-orientation-portrait = 纵向\npdfjs-document-properties-page-size-orientation-landscape = 横向\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit }（{ $orientation }）\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit }（{ $name }，{ $orientation }）\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = 快速 Web 视图：\npdfjs-document-properties-linearized-yes = 是\npdfjs-document-properties-linearized-no = 否\npdfjs-document-properties-close-button = 关闭\n\n## Print\n\npdfjs-print-progress-message = 正在准备打印文档…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = 取消\npdfjs-printing-not-supported = 警告：此浏览器尚未完整支持打印功能。\npdfjs-printing-not-ready = 警告：此 PDF 未完成加载，无法打印。\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = 切换侧栏\npdfjs-toggle-sidebar-notification-button =\n    .title = 切换侧栏（文档所含的大纲/附件/图层）\npdfjs-toggle-sidebar-button-label = 切换侧栏\npdfjs-document-outline-button =\n    .title = 显示文档大纲（双击展开/折叠所有项）\npdfjs-document-outline-button-label = 文档大纲\npdfjs-attachments-button =\n    .title = 显示附件\npdfjs-attachments-button-label = 附件\npdfjs-layers-button =\n    .title = 显示图层（双击即可将所有图层重置为默认状态）\npdfjs-layers-button-label = 图层\npdfjs-thumbs-button =\n    .title = 显示缩略图\npdfjs-thumbs-button-label = 缩略图\npdfjs-current-outline-item-button =\n    .title = 查找当前大纲项目\npdfjs-current-outline-item-button-label = 当前大纲项目\npdfjs-findbar-button =\n    .title = 在文档中查找\npdfjs-findbar-button-label = 查找\npdfjs-additional-layers = 其他图层\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = 第 { $page } 页\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = 页面 { $page } 的缩略图\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = 查找\n    .placeholder = 在文档中查找…\npdfjs-find-previous-button =\n    .title = 查找词语上一次出现的位置\npdfjs-find-previous-button-label = 上一页\npdfjs-find-next-button =\n    .title = 查找词语后一次出现的位置\npdfjs-find-next-button-label = 下一页\npdfjs-find-highlight-checkbox = 全部高亮显示\npdfjs-find-match-case-checkbox-label = 区分大小写\npdfjs-find-match-diacritics-checkbox-label = 匹配变音符号\npdfjs-find-entire-word-checkbox-label = 全词匹配\npdfjs-find-reached-top = 到达文档开头，从末尾继续\npdfjs-find-reached-bottom = 到达文档末尾，从开头继续\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = 第 { $current } 项，共找到 { $total } 个匹配项\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = 匹配超过 { $limit } 项\npdfjs-find-not-found = 找不到指定词语\n\n## Predefined zoom values\n\npdfjs-page-scale-width = 适合页宽\npdfjs-page-scale-fit = 适合页面\npdfjs-page-scale-auto = 自动缩放\npdfjs-page-scale-actual = 实际大小\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = 第 { $page } 页\n\n## Loading indicator messages\n\npdfjs-loading-error = 加载 PDF 时发生错误。\npdfjs-invalid-file-error = 无效或损坏的 PDF 文件。\npdfjs-missing-file-error = 缺少 PDF 文件。\npdfjs-unexpected-response-error = 意外的服务器响应。\npdfjs-rendering-error = 渲染页面时发生错误。\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } 注释]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = 输入密码以打开此 PDF 文件。\npdfjs-password-invalid = 密码无效。请重试。\npdfjs-password-ok-button = 确定\npdfjs-password-cancel-button = 取消\npdfjs-web-fonts-disabled = Web 字体已被禁用：无法使用嵌入的 PDF 字体。\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = 文本\npdfjs-editor-color-picker-free-text-input =\n    .title = 更改文本颜色\npdfjs-editor-free-text-button-label = 文本\npdfjs-editor-ink-button =\n    .title = 绘图\npdfjs-editor-color-picker-ink-input =\n    .title = 更改绘图颜色\npdfjs-editor-ink-button-label = 绘图\npdfjs-editor-stamp-button =\n    .title = 添加或编辑图像\npdfjs-editor-stamp-button-label = 添加或编辑图像\npdfjs-editor-highlight-button =\n    .title = 高亮\npdfjs-editor-highlight-button-label = 高亮\npdfjs-highlight-floating-button1 =\n    .title = 高亮\n    .aria-label = 高亮\npdfjs-highlight-floating-button-label = 高亮\npdfjs-comment-floating-button =\n    .title = 批注\n    .aria-label = 批注\npdfjs-comment-floating-button-label = 批注\npdfjs-editor-comment-button =\n    .title = 批注\n    .aria-label = 批注\npdfjs-editor-comment-button-label = 批注\npdfjs-editor-signature-button =\n    .title = 添加签名\npdfjs-editor-signature-button-label = 添加签名\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = 高亮编辑器\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = 绘图编辑器\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = 签名编辑器：{ $description }\npdfjs-editor-stamp-editor =\n    .aria-label = 图像编辑器\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = 移除绘图\npdfjs-editor-remove-freetext-button =\n    .title = 移除文本\npdfjs-editor-remove-stamp-button =\n    .title = 移除图像\npdfjs-editor-remove-highlight-button =\n    .title = 移除高亮\npdfjs-editor-remove-signature-button =\n    .title = 移除签名\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = 颜色\npdfjs-editor-free-text-size-input = 字号\npdfjs-editor-ink-color-input = 颜色\npdfjs-editor-ink-thickness-input = 粗细\npdfjs-editor-ink-opacity-input = 不透明度\npdfjs-editor-stamp-add-image-button =\n    .title = 添加图像\npdfjs-editor-stamp-add-image-button-label = 添加图像\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = 粗细\npdfjs-editor-free-highlight-thickness-title =\n    .title = 更改高亮粗细（用于文本以外项目）\npdfjs-editor-add-signature-container =\n    .aria-label = 签名管理和保存的签名\npdfjs-editor-signature-add-signature-button =\n    .title = 添加新签名\npdfjs-editor-signature-add-signature-button-label = 添加新签名\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = 保存的签名：{ $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = 文本编辑器\n    .default-content = 在此键入…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = 批注\npdfjs-editor-comments-sidebar-close-button =\n    .title = 关闭侧栏\n    .aria-label = 关闭侧栏\npdfjs-editor-comments-sidebar-close-button-label = 关闭侧栏\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = 发现值得注意的地方？可为其添加高亮并批注。\npdfjs-editor-comments-sidebar-no-comments-link = 详细了解\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = 替换文字\npdfjs-editor-alt-text-edit-button =\n    .aria-label = 编辑替换文字\npdfjs-editor-alt-text-dialog-label = 选择一项\npdfjs-editor-alt-text-dialog-description = 替换文字可在用户无法看到或加载图像时，描述其内容。\npdfjs-editor-alt-text-add-description-label = 添加描述\npdfjs-editor-alt-text-add-description-description = 用一两个句子，描述主题、背景或动作。\npdfjs-editor-alt-text-mark-decorative-label = 标记为装饰\npdfjs-editor-alt-text-mark-decorative-description = 用于装饰的图像，例如边框和水印。\npdfjs-editor-alt-text-cancel-button = 取消\npdfjs-editor-alt-text-save-button = 保存\npdfjs-editor-alt-text-decorative-tooltip = 已标记为装饰\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = 例如：一个少年坐到桌前，准备吃饭\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = 替换文字\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = 调整尺寸 - 左上角\npdfjs-editor-resizer-top-middle =\n    .aria-label = 调整尺寸 - 顶部中间\npdfjs-editor-resizer-top-right =\n    .aria-label = 调整尺寸 - 右上角\npdfjs-editor-resizer-middle-right =\n    .aria-label = 调整尺寸 - 右侧中间\npdfjs-editor-resizer-bottom-right =\n    .aria-label = 调整尺寸 - 右下角\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = 调整大小 - 底部中间\npdfjs-editor-resizer-bottom-left =\n    .aria-label = 调整尺寸 - 左下角\npdfjs-editor-resizer-middle-left =\n    .aria-label = 调整尺寸 - 左侧中间\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = 高亮色\npdfjs-editor-colorpicker-button =\n    .title = 更改颜色\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = 颜色选择\npdfjs-editor-colorpicker-yellow =\n    .title = 黄色\npdfjs-editor-colorpicker-green =\n    .title = 绿色\npdfjs-editor-colorpicker-blue =\n    .title = 蓝色\npdfjs-editor-colorpicker-pink =\n    .title = 粉色\npdfjs-editor-colorpicker-red =\n    .title = 红色\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = 显示全部\npdfjs-editor-highlight-show-all-button =\n    .title = 显示全部\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = 编辑替换文字（图像描述）\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = 添加替换文字（图像描述）\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = 请在此处撰写描述…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = 向无法看到或加载图像的用户提供的简短描述。\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = 此段替换文字为自动创建，有可能不准确。\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = 详细了解\npdfjs-editor-new-alt-text-create-automatically-button-label = 自动创建替换文字\npdfjs-editor-new-alt-text-not-now-button = 暂时不要\npdfjs-editor-new-alt-text-error-title = 无法自动创建替换文字\npdfjs-editor-new-alt-text-error-description = 请自行撰写替换文字，或稍后再试。\npdfjs-editor-new-alt-text-error-close-button = 关闭\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = 正在下载提供替换文字的 AI 模型（{ $downloadedSize }/{ $totalSize } MB）\n    .aria-valuetext = 正在下载提供替换文字的 AI 模型（{ $downloadedSize }/{ $totalSize } MB）\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = 已添加替换文字\npdfjs-editor-new-alt-text-added-button-label = 已添加替换文字\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = 缺少替换文字\npdfjs-editor-new-alt-text-missing-button-label = 缺少替换文字\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = 检查替换文字\npdfjs-editor-new-alt-text-to-review-button-label = 检查替换文字\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = [自动创建] { $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = 图像替换文字设置\npdfjs-image-alt-text-settings-button-label = 图像替换文字设置\npdfjs-editor-alt-text-settings-dialog-label = 图像替换文字设置\npdfjs-editor-alt-text-settings-automatic-title = 自动创建替换文字\npdfjs-editor-alt-text-settings-create-model-button-label = 自动创建替换文字\npdfjs-editor-alt-text-settings-create-model-description = 向无法看到或加载图像的用户提供描述。\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = 提供替换文字的 AI 模型（{ $totalSize } MB）\npdfjs-editor-alt-text-settings-ai-model-description = 在您的设备本地运行，可使数据保持私密。自动创建替换文字需要使用此模型。\npdfjs-editor-alt-text-settings-delete-model-button = 删除\npdfjs-editor-alt-text-settings-download-model-button = 下载\npdfjs-editor-alt-text-settings-downloading-model-button = 正在下载…\npdfjs-editor-alt-text-settings-editor-title = 替换文字编辑器\npdfjs-editor-alt-text-settings-show-dialog-button-label = 添加图像后立即显示替换文字编辑器\npdfjs-editor-alt-text-settings-show-dialog-description = 帮助确保所有图像均拥有替换文字。\npdfjs-editor-alt-text-settings-close-button = 关闭\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = 已添加高亮\npdfjs-editor-freetext-added-alert = 已添加文本\npdfjs-editor-ink-added-alert = 已添加绘图\npdfjs-editor-stamp-added-alert = 已添加图像\npdfjs-editor-signature-added-alert = 已添加签名\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = 已移除高亮\npdfjs-editor-undo-bar-message-freetext = 已移除文本\npdfjs-editor-undo-bar-message-ink = 已移除绘图\npdfjs-editor-undo-bar-message-stamp = 已移除图像\npdfjs-editor-undo-bar-message-signature = 签名已移除\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = 已移除 { $count } 条注释\npdfjs-editor-undo-bar-undo-button =\n    .title = 撤销\npdfjs-editor-undo-bar-undo-button-label = 撤销\npdfjs-editor-undo-bar-close-button =\n    .title = 关闭\npdfjs-editor-undo-bar-close-button-label = 关闭\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = 用户可通过此模态对话框创建要添加到 PDF 文档中的签名、编辑其名称（同时用作替换文字），并可保存签名以便重复使用。\npdfjs-editor-add-signature-dialog-title = 添加签名\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = 键入\n    .title = 键入\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = 绘制\n    .title = 绘制\npdfjs-editor-add-signature-image-button = 图像\n    .title = 图像\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = 键入签名\n    .placeholder = 键入签名\npdfjs-editor-add-signature-draw-placeholder = 绘制签名\npdfjs-editor-add-signature-draw-thickness-range-label = 粗细\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = 笔画粗细：{ $thickness }\npdfjs-editor-add-signature-image-placeholder = 拖放文件到此处以上传\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] 或选取图像文件\n       *[other] 或浏览图像文件\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = 描述（替换文字）\npdfjs-editor-add-signature-description-input =\n    .title = 描述（替换文字）\npdfjs-editor-add-signature-description-default-when-drawing = 签名\npdfjs-editor-add-signature-clear-button-label = 清除签名\npdfjs-editor-add-signature-clear-button =\n    .title = 清除签名\npdfjs-editor-add-signature-save-checkbox = 保存签名\npdfjs-editor-add-signature-save-warning-message = 最多可保存 5 个签名，请移除一个以继续保存。\npdfjs-editor-add-signature-image-upload-error-title = 无法上传图像\npdfjs-editor-add-signature-image-upload-error-description = 请检查网络连接，或尝试上传其他图像。\npdfjs-editor-add-signature-image-no-data-error-title = 无法将此图像转换为签名\npdfjs-editor-add-signature-image-no-data-error-description = 请尝试上传其他图像。\npdfjs-editor-add-signature-error-close-button = 关闭\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = 取消\npdfjs-editor-add-signature-add-button = 添加\npdfjs-editor-edit-signature-update-button = 更新\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = 编辑批注\npdfjs-editor-edit-comment-popup-button =\n    .title = 编辑批注\npdfjs-editor-delete-comment-popup-button-label = 移除批注\npdfjs-editor-delete-comment-popup-button =\n    .title = 移除批注\npdfjs-show-comment-button =\n    .title = 显示批注\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = 操作\npdfjs-editor-edit-comment-actions-button =\n    .title = 操作\npdfjs-editor-edit-comment-close-button-label = 关闭\npdfjs-editor-edit-comment-close-button =\n    .title = 关闭\npdfjs-editor-edit-comment-actions-edit-button-label = 编辑\npdfjs-editor-edit-comment-actions-delete-button-label = 删除\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = 输入批注\npdfjs-editor-edit-comment-manager-cancel-button = 取消\npdfjs-editor-edit-comment-manager-save-button = 保存\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = 编辑批注\npdfjs-editor-edit-comment-dialog-save-button-when-editing = 更新\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = 添加批注\npdfjs-editor-edit-comment-dialog-save-button-when-adding = 添加\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = 开始键入…\npdfjs-editor-edit-comment-dialog-cancel-button = 取消\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = 编辑批注\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = 移除已保存的签名\npdfjs-editor-delete-signature-button-label1 = 移除已保存的签名\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = 编辑描述\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = 编辑描述\n"
  },
  {
    "path": "viewer/locale/zh-TW/viewer.ftl",
    "content": "# This Source Code Form is subject to the terms of the Mozilla Public\n# License, v. 2.0. If a copy of the MPL was not distributed with this\n# file, You can obtain one at http://mozilla.org/MPL/2.0/.\n\n\n## Main toolbar buttons (tooltips and alt text for images)\n\npdfjs-previous-button =\n    .title = 上一頁\npdfjs-previous-button-label = 上一頁\npdfjs-next-button =\n    .title = 下一頁\npdfjs-next-button-label = 下一頁\n# .title: Tooltip for the pageNumber input.\npdfjs-page-input =\n    .title = 第\n# Variables:\n#   $pagesCount (Number) - the total number of pages in the document\n# This string follows an input field with the number of the page currently displayed.\npdfjs-of-pages = 頁，共 { $pagesCount } 頁\n# Variables:\n#   $pageNumber (Number) - the currently visible page\n#   $pagesCount (Number) - the total number of pages in the document\npdfjs-page-of-pages = （第 { $pageNumber } 頁，共 { $pagesCount } 頁）\npdfjs-zoom-out-button =\n    .title = 縮小\npdfjs-zoom-out-button-label = 縮小\npdfjs-zoom-in-button =\n    .title = 放大\npdfjs-zoom-in-button-label = 放大\npdfjs-zoom-select =\n    .title = 縮放\npdfjs-presentation-mode-button =\n    .title = 切換至簡報模式\npdfjs-presentation-mode-button-label = 簡報模式\npdfjs-open-file-button =\n    .title = 開啟檔案\npdfjs-open-file-button-label = 開啟\npdfjs-print-button =\n    .title = 列印\npdfjs-print-button-label = 列印\npdfjs-save-button =\n    .title = 儲存\npdfjs-save-button-label = 儲存\n# Used in Firefox for Android as a tooltip for the download button (“download” is a verb).\npdfjs-download-button =\n    .title = 下載\n# Used in Firefox for Android as a label for the download button (“download” is a verb).\n# Length of the translation matters since we are in a mobile context, with limited screen estate.\npdfjs-download-button-label = 下載\npdfjs-bookmark-button =\n    .title = 目前頁面（含目前檢視頁面的網址）\npdfjs-bookmark-button-label = 目前頁面\n\n##  Secondary toolbar and context menu\n\npdfjs-tools-button =\n    .title = 工具\npdfjs-tools-button-label = 工具\npdfjs-first-page-button =\n    .title = 跳到第一頁\npdfjs-first-page-button-label = 跳到第一頁\npdfjs-last-page-button =\n    .title = 跳到最後一頁\npdfjs-last-page-button-label = 跳到最後一頁\npdfjs-page-rotate-cw-button =\n    .title = 順時針旋轉\npdfjs-page-rotate-cw-button-label = 順時針旋轉\npdfjs-page-rotate-ccw-button =\n    .title = 逆時針旋轉\npdfjs-page-rotate-ccw-button-label = 逆時針旋轉\npdfjs-cursor-text-select-tool-button =\n    .title = 開啟文字選擇工具\npdfjs-cursor-text-select-tool-button-label = 文字選擇工具\npdfjs-cursor-hand-tool-button =\n    .title = 開啟頁面移動工具\npdfjs-cursor-hand-tool-button-label = 頁面移動工具\npdfjs-scroll-page-button =\n    .title = 使用單頁捲動版面\npdfjs-scroll-page-button-label = 單頁捲動\npdfjs-scroll-vertical-button =\n    .title = 使用垂直捲動版面\npdfjs-scroll-vertical-button-label = 垂直捲動\npdfjs-scroll-horizontal-button =\n    .title = 使用水平捲動版面\npdfjs-scroll-horizontal-button-label = 水平捲動\npdfjs-scroll-wrapped-button =\n    .title = 使用多頁捲動版面\npdfjs-scroll-wrapped-button-label = 多頁捲動\npdfjs-spread-none-button =\n    .title = 不要進行跨頁顯示\npdfjs-spread-none-button-label = 不跨頁\npdfjs-spread-odd-button =\n    .title = 從奇數頁開始跨頁\npdfjs-spread-odd-button-label = 奇數跨頁\npdfjs-spread-even-button =\n    .title = 從偶數頁開始跨頁\npdfjs-spread-even-button-label = 偶數跨頁\n\n## Document properties dialog\n\npdfjs-document-properties-button =\n    .title = 文件內容…\npdfjs-document-properties-button-label = 文件內容…\npdfjs-document-properties-file-name = 檔案名稱：\npdfjs-document-properties-file-size = 檔案大小：\n# Variables:\n#   $kb (Number) - the PDF file size in kilobytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB（{ $b } 位元組）\n# Variables:\n#   $mb (Number) - the PDF file size in megabytes\n#   $b (Number) - the PDF file size in bytes\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB（{ $b } 位元組）\npdfjs-document-properties-title = 標題：\npdfjs-document-properties-author = 作者：\npdfjs-document-properties-subject = 主旨：\npdfjs-document-properties-keywords = 關鍵字：\npdfjs-document-properties-creation-date = 建立日期：\npdfjs-document-properties-modification-date = 修改日期：\n# Variables:\n#   $dateObj (Date) - the creation/modification date and time of the PDF file\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = 建立者：\npdfjs-document-properties-producer = PDF 產生器：\npdfjs-document-properties-version = PDF 版本：\npdfjs-document-properties-page-count = 頁數：\npdfjs-document-properties-page-size = 頁面大小：\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = 垂直\npdfjs-document-properties-page-size-orientation-landscape = 水平\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\n\n## Variables:\n##   $width (Number) - the width of the (current) page\n##   $height (Number) - the height of the (current) page\n##   $unit (String) - the unit of measurement of the (current) page\n##   $name (String) - the name of the (current) page\n##   $orientation (String) - the orientation of the (current) page\n\npdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit }（{ $orientation }）\npdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit }（{ $name }，{ $orientation }）\n\n##\n\n# The linearization status of the document; usually called \"Fast Web View\" in\n# English locales of Adobe software.\npdfjs-document-properties-linearized = 快速 Web 檢視：\npdfjs-document-properties-linearized-yes = 是\npdfjs-document-properties-linearized-no = 否\npdfjs-document-properties-close-button = 關閉\n\n## Print\n\npdfjs-print-progress-message = 正在準備列印文件…\n# Variables:\n#   $progress (Number) - percent value\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = 取消\npdfjs-printing-not-supported = 警告：此瀏覽器未完整支援列印功能。\npdfjs-printing-not-ready = 警告：此 PDF 未完成下載以供列印。\n\n## Tooltips and alt text for side panel toolbar buttons\n\npdfjs-toggle-sidebar-button =\n    .title = 切換側邊欄\npdfjs-toggle-sidebar-notification-button =\n    .title = 切換側邊欄（包含大綱、附件、圖層的文件）\npdfjs-toggle-sidebar-button-label = 切換側邊欄\npdfjs-document-outline-button =\n    .title = 顯示文件大綱（雙擊展開/摺疊所有項目）\npdfjs-document-outline-button-label = 文件大綱\npdfjs-attachments-button =\n    .title = 顯示附件\npdfjs-attachments-button-label = 附件\npdfjs-layers-button =\n    .title = 顯示圖層（滑鼠雙擊即可將所有圖層重設為預設狀態）\npdfjs-layers-button-label = 圖層\npdfjs-thumbs-button =\n    .title = 顯示縮圖\npdfjs-thumbs-button-label = 縮圖\npdfjs-current-outline-item-button =\n    .title = 尋找目前的大綱項目\npdfjs-current-outline-item-button-label = 目前的大綱項目\npdfjs-findbar-button =\n    .title = 在文件中尋找\npdfjs-findbar-button-label = 尋找\npdfjs-additional-layers = 其他圖層\n\n## Thumbnails panel item (tooltip and alt text for images)\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-title =\n    .title = 第 { $page } 頁\n# Variables:\n#   $page (Number) - the page number\npdfjs-thumb-page-canvas =\n    .aria-label = 第 { $page } 頁的縮圖\n\n## Find panel button title and messages\n\npdfjs-find-input =\n    .title = 尋找\n    .placeholder = 在文件中搜尋…\npdfjs-find-previous-button =\n    .title = 尋找文字前次出現的位置\npdfjs-find-previous-button-label = 上一個\npdfjs-find-next-button =\n    .title = 尋找文字下次出現的位置\npdfjs-find-next-button-label = 下一個\npdfjs-find-highlight-checkbox = 強調全部\npdfjs-find-match-case-checkbox-label = 區分大小寫\npdfjs-find-match-diacritics-checkbox-label = 符合變音符號\npdfjs-find-entire-word-checkbox-label = 符合整個字\npdfjs-find-reached-top = 已搜尋至文件頂端，自底端繼續搜尋\npdfjs-find-reached-bottom = 已搜尋至文件底端，自頂端繼續搜尋\n# Variables:\n#   $current (Number) - the index of the currently active find result\n#   $total (Number) - the total number of matches in the document\npdfjs-find-match-count = 第 { $current } 筆符合，共符合 { $total } 筆\n# Variables:\n#   $limit (Number) - the maximum number of matches\npdfjs-find-match-count-limit = 符合超過 { $limit } 項\npdfjs-find-not-found = 找不到指定文字\n\n## Predefined zoom values\n\npdfjs-page-scale-width = 頁面寬度\npdfjs-page-scale-fit = 縮放至頁面大小\npdfjs-page-scale-auto = 自動縮放\npdfjs-page-scale-actual = 實際大小\n# Variables:\n#   $scale (Number) - percent value for page scale\npdfjs-page-scale-percent = { $scale }%\n\n## PDF page\n\n# Variables:\n#   $page (Number) - the page number\npdfjs-page-landmark =\n    .aria-label = 第 { $page } 頁\n\n## Loading indicator messages\n\npdfjs-loading-error = 載入 PDF 時發生錯誤。\npdfjs-invalid-file-error = 無效或毀損的 PDF 檔案。\npdfjs-missing-file-error = 找不到 PDF 檔案。\npdfjs-unexpected-response-error = 伺服器回應未預期的內容。\npdfjs-rendering-error = 描繪頁面時發生錯誤。\n\n## Annotations\n\n# .alt: This is used as a tooltip.\n# Variables:\n#   $type (String) - an annotation type from a list defined in the PDF spec\n# (32000-1:2008 Table 169 – Annotation types).\n# Some common types are e.g.: \"Check\", \"Text\", \"Comment\", \"Note\"\npdfjs-text-annotation-type =\n    .alt = [{ $type } 註解]\n# Variables:\n#   $dateObj (Date) - the modification date and time of the annotation\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\n\n## Password\n\npdfjs-password-label = 請輸入用來開啟此 PDF 檔案的密碼。\npdfjs-password-invalid = 密碼不正確，請再試一次。\npdfjs-password-ok-button = 確定\npdfjs-password-cancel-button = 取消\npdfjs-web-fonts-disabled = 已停用網路字型 (Web fonts): 無法使用 PDF 內嵌字型。\n\n## Editing\n\npdfjs-editor-free-text-button =\n    .title = 文字\npdfjs-editor-color-picker-free-text-input =\n    .title = 更改文字色彩\npdfjs-editor-free-text-button-label = 文字\npdfjs-editor-ink-button =\n    .title = 繪圖\npdfjs-editor-color-picker-ink-input =\n    .title = 更改繪圖色彩\npdfjs-editor-ink-button-label = 繪圖\npdfjs-editor-stamp-button =\n    .title = 新增或編輯圖片\npdfjs-editor-stamp-button-label = 新增或編輯圖片\npdfjs-editor-highlight-button =\n    .title = 強調\npdfjs-editor-highlight-button-label = 強調\npdfjs-highlight-floating-button1 =\n    .title = 強調\n    .aria-label = 強調\npdfjs-highlight-floating-button-label = 強調\npdfjs-comment-floating-button =\n    .title = 註解\n    .aria-label = 註解\npdfjs-comment-floating-button-label = 註解\npdfjs-editor-comment-button =\n    .title = 註解\n    .aria-label = 註解\npdfjs-editor-comment-button-label = 註解\npdfjs-editor-signature-button =\n    .title = 加入簽章\npdfjs-editor-signature-button-label = 加入簽章\n\n## Default editor aria labels\n\n# “Highlight” is a noun, the string is used on the editor for highlights.\npdfjs-editor-highlight-editor =\n    .aria-label = 強調樣式編輯器\n# “Drawing” is a noun, the string is used on the editor for drawings.\npdfjs-editor-ink-editor =\n    .aria-label = 繪圖編輯器\n# Used when a signature editor is selected/hovered.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-signature-editor1 =\n    .aria-description = 簽章編輯器：{ $description }\npdfjs-editor-stamp-editor =\n    .aria-label = 圖片編輯器\n\n## Remove button for the various kind of editor.\n\npdfjs-editor-remove-ink-button =\n    .title = 移除繪圖\npdfjs-editor-remove-freetext-button =\n    .title = 移除文字\npdfjs-editor-remove-stamp-button =\n    .title = 移除圖片\npdfjs-editor-remove-highlight-button =\n    .title = 移除選擇範圍的強調效果\npdfjs-editor-remove-signature-button =\n    .title = 移除簽章\n\n##\n\n# Editor Parameters\npdfjs-editor-free-text-color-input = 色彩\npdfjs-editor-free-text-size-input = 大小\npdfjs-editor-ink-color-input = 色彩\npdfjs-editor-ink-thickness-input = 線條粗細\npdfjs-editor-ink-opacity-input = 透​明度\npdfjs-editor-stamp-add-image-button =\n    .title = 新增圖片\npdfjs-editor-stamp-add-image-button-label = 新增圖片\n# This refers to the thickness of the line used for free highlighting (not bound to text)\npdfjs-editor-free-highlight-thickness-input = 線條粗細\npdfjs-editor-free-highlight-thickness-title =\n    .title = 更改強調文字以外的項目時的線條粗細\npdfjs-editor-add-signature-container =\n    .aria-label = 簽章控制元件與儲存的簽章\npdfjs-editor-signature-add-signature-button =\n    .title = 新增簽章\npdfjs-editor-signature-add-signature-button-label = 新增簽章\n# Used on the button to use an already saved signature.\n# Variables:\n#   $description (String) - a string describing/labeling the signature.\npdfjs-editor-add-saved-signature-button =\n    .title = 已儲存簽章：{ $description }\n# .default-content is used as a placeholder in an empty text editor.\npdfjs-free-text2 =\n    .aria-label = 文字編輯器\n    .default-content = 請打字…\n# Used to show how many comments are present in the pdf file.\n# Variables:\n#   $count (Number) - the number of comments.\npdfjs-editor-comments-sidebar-title = 註解\npdfjs-editor-comments-sidebar-close-button =\n    .title = 關閉側邊欄\n    .aria-label = 關閉側邊欄\npdfjs-editor-comments-sidebar-close-button-label = 關閉側邊欄\n# Instructional copy to add a comment by selecting text or an annotations.\npdfjs-editor-comments-sidebar-no-comments1 = 想把哪個部分記下來？可以畫螢光強調，並且留下註解。\npdfjs-editor-comments-sidebar-no-comments-link = 更多資訊\n\n## Alt-text dialog\n\npdfjs-editor-alt-text-button-label = 替代文字\npdfjs-editor-alt-text-edit-button =\n    .aria-label = 編輯替代文字\npdfjs-editor-alt-text-dialog-label = 挑選一種\npdfjs-editor-alt-text-dialog-description = 替代文字可協助盲人，或於圖片無法載入時提供說明。\npdfjs-editor-alt-text-add-description-label = 新增描述\npdfjs-editor-alt-text-add-description-description = 用 1-2 句文字描述主題、背景或動作。\npdfjs-editor-alt-text-mark-decorative-label = 標示為裝飾性內容\npdfjs-editor-alt-text-mark-decorative-description = 這是裝飾性圖片，例如邊框或浮水印。\npdfjs-editor-alt-text-cancel-button = 取消\npdfjs-editor-alt-text-save-button = 儲存\npdfjs-editor-alt-text-decorative-tooltip = 已標示為裝飾性內容\n# .placeholder: This is a placeholder for the alt text input area\npdfjs-editor-alt-text-textarea =\n    .placeholder = 例如：「有一位年輕男人坐在桌子前面吃飯」\n# Alternative text (alt text) helps when people can't see the image.\npdfjs-editor-alt-text-button =\n    .aria-label = 替代文字\n\n## Editor resizers\n## This is used in an aria label to help to understand the role of the resizer.\n\npdfjs-editor-resizer-top-left =\n    .aria-label = 左上角 — 調整大小\npdfjs-editor-resizer-top-middle =\n    .aria-label = 頂部中間 — 調整大小\npdfjs-editor-resizer-top-right =\n    .aria-label = 右上角 — 調整大小\npdfjs-editor-resizer-middle-right =\n    .aria-label = 中間右方 — 調整大小\npdfjs-editor-resizer-bottom-right =\n    .aria-label = 右下角 — 調整大小\npdfjs-editor-resizer-bottom-middle =\n    .aria-label = 底部中間 — 調整大小\npdfjs-editor-resizer-bottom-left =\n    .aria-label = 左下角 — 調整大小\npdfjs-editor-resizer-middle-left =\n    .aria-label = 中間左方 — 調整大小\n\n## Color picker\n\n# This means \"Color used to highlight text\"\npdfjs-editor-highlight-colorpicker-label = 強調色彩\npdfjs-editor-colorpicker-button =\n    .title = 更改色彩\npdfjs-editor-colorpicker-dropdown =\n    .aria-label = 色彩選項\npdfjs-editor-colorpicker-yellow =\n    .title = 黃色\npdfjs-editor-colorpicker-green =\n    .title = 綠色\npdfjs-editor-colorpicker-blue =\n    .title = 藍色\npdfjs-editor-colorpicker-pink =\n    .title = 粉紅色\npdfjs-editor-colorpicker-red =\n    .title = 紅色\n\n## Show all highlights\n## This is a toggle button to show/hide all the highlights.\n\npdfjs-editor-highlight-show-all-button-label = 顯示全部\npdfjs-editor-highlight-show-all-button =\n    .title = 顯示全部\n\n## New alt-text dialog\n## Group note for entire feature: Alternative text (alt text) helps when people can't see the image. This feature includes a tool to create alt text automatically using an AI model that works locally on the user's device to preserve privacy.\n\n# Modal header positioned above a text box where users can edit the alt text.\npdfjs-editor-new-alt-text-dialog-edit-label = 編輯替代文字（圖片描述）\n# Modal header positioned above a text box where users can add the alt text.\npdfjs-editor-new-alt-text-dialog-add-label = 新增替代文字（圖片描述）\npdfjs-editor-new-alt-text-textarea =\n    .placeholder = 在此寫下您的描述文字…\n# This text refers to the alt text box above this description. It offers a definition of alt text.\npdfjs-editor-new-alt-text-description = 為看不到圖片的讀者，或圖片無法載入時顯示的簡短描述。\n# This is a required legal disclaimer that refers to the automatically created text inside the alt text box above this text. It disappears if the text is edited by a human.\npdfjs-editor-new-alt-text-disclaimer1 = 此替代文字是自動產生的，可能不夠精確。\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = 更多資訊\npdfjs-editor-new-alt-text-create-automatically-button-label = 自動產生替代文字\npdfjs-editor-new-alt-text-not-now-button = 暫時不要\npdfjs-editor-new-alt-text-error-title = 無法自動產生替代文字\npdfjs-editor-new-alt-text-error-description = 請自行填寫替代文字，或稍後再試一次。\npdfjs-editor-new-alt-text-error-close-button = 關閉\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\n#   $downloadedSize (Number) - the downloaded size (in MB) of the AI model.\npdfjs-editor-new-alt-text-ai-model-downloading-progress = 正在下載替代文字 AI 模型（{ $downloadedSize } / { $totalSize } MB）\n    .aria-valuetext = 正在下載替代文字 AI 模型（{ $downloadedSize } / { $totalSize } MB）\n# This is a button that users can click to edit the alt text they have already added.\npdfjs-editor-new-alt-text-added-button =\n    .aria-label = 已新增替代文字\npdfjs-editor-new-alt-text-added-button-label = 已新增替代文字\n# This is a button that users can click to open the alt text editor and add alt text when it is not present.\npdfjs-editor-new-alt-text-missing-button =\n    .aria-label = 缺少替代文字\npdfjs-editor-new-alt-text-missing-button-label = 缺少替代文字\n# This is a button that opens up the alt text modal where users should review the alt text that was automatically generated.\npdfjs-editor-new-alt-text-to-review-button =\n    .aria-label = 確認替代文字\npdfjs-editor-new-alt-text-to-review-button-label = 確認替代文字\n# \"Created automatically\" is a prefix that will be added to the beginning of any alt text that has been automatically generated. After the colon, the user will see/hear the actual alt text description. If the alt text has been edited by a human, this prefix will not appear.\n# Variables:\n#   $generatedAltText (String) - the generated alt-text.\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = 自動產生：{ $generatedAltText }\n\n## Image alt-text settings\n\npdfjs-image-alt-text-settings-button =\n    .title = 圖片替代文字設定\npdfjs-image-alt-text-settings-button-label = 圖片替代文字設定\npdfjs-editor-alt-text-settings-dialog-label = 圖片替代文字設定\npdfjs-editor-alt-text-settings-automatic-title = 自動化替代文字\npdfjs-editor-alt-text-settings-create-model-button-label = 自動產生替代文字\npdfjs-editor-alt-text-settings-create-model-description = 為您建議圖片描述，幫助看不到圖片的讀者，或於圖片無法載入時顯示。\n# Variables:\n#   $totalSize (Number) - the total size (in MB) of the AI model.\npdfjs-editor-alt-text-settings-download-model-label = 替代文字 AI 模型（{ $totalSize } MB）\npdfjs-editor-alt-text-settings-ai-model-description = 在您的本機裝置上運作，以確保您的資料隱私。必須下載此模型才可以自動產生替代文字。\npdfjs-editor-alt-text-settings-delete-model-button = 刪除\npdfjs-editor-alt-text-settings-download-model-button = 下載\npdfjs-editor-alt-text-settings-downloading-model-button = 下載中…\npdfjs-editor-alt-text-settings-editor-title = 替代文字編輯器\npdfjs-editor-alt-text-settings-show-dialog-button-label = 新增圖片後立即顯示替代文字編輯器\npdfjs-editor-alt-text-settings-show-dialog-description = 幫助您確保所有圖片都有替代文字。\npdfjs-editor-alt-text-settings-close-button = 關閉\n\n## Accessibility labels (announced by screen readers) for objects added to the editor.\n\npdfjs-editor-highlight-added-alert = 已加入強調範圍\npdfjs-editor-freetext-added-alert = 已加入文字\npdfjs-editor-ink-added-alert = 已新增繪圖\npdfjs-editor-stamp-added-alert = 已新增圖片\npdfjs-editor-signature-added-alert = 已新增簽章\n\n## \"Annotations removed\" bar\n\npdfjs-editor-undo-bar-message-highlight = 已移除強調\npdfjs-editor-undo-bar-message-freetext = 已移除文字\npdfjs-editor-undo-bar-message-ink = 已移除繪圖\npdfjs-editor-undo-bar-message-stamp = 已移除圖片\npdfjs-editor-undo-bar-message-signature = 已移除簽章\n# Variables:\n#   $count (Number) - the number of removed annotations.\npdfjs-editor-undo-bar-message-multiple = 已移除 { $count } 筆註解\npdfjs-editor-undo-bar-undo-button =\n    .title = 還原\npdfjs-editor-undo-bar-undo-button-label = 還原\npdfjs-editor-undo-bar-close-button =\n    .title = 關閉\npdfjs-editor-undo-bar-close-button-label = 關閉\n\n## Add a signature dialog\n\npdfjs-editor-add-signature-dialog-label = 此對話框讓使用者能夠建立簽章以加入 PDF 文件。使用者可以編輯他們的姓名（同時也是替代文字），並選擇性儲存簽章，以供未來重複使用。\npdfjs-editor-add-signature-dialog-title = 加入簽章\n\n## Tab names\n\n# Type is a verb (you can type your name as signature)\npdfjs-editor-add-signature-type-button = 打字\n    .title = 打字\n# Draw is a verb (you can draw your signature)\npdfjs-editor-add-signature-draw-button = 手繪\n    .title = 手繪\npdfjs-editor-add-signature-image-button = 圖片\n    .title = 圖片\n\n## Tab panels\n\npdfjs-editor-add-signature-type-input =\n    .aria-label = 輸入簽章\n    .placeholder = 輸入簽章\npdfjs-editor-add-signature-draw-placeholder = 手繪簽章\npdfjs-editor-add-signature-draw-thickness-range-label = 線條粗細\n# Variables:\n#   $thickness (Number) - the thickness (in pixels) of the line used to draw a signature.\npdfjs-editor-add-signature-draw-thickness-range =\n    .title = 繪製時的線條粗細：{ $thickness }\npdfjs-editor-add-signature-image-placeholder = 將檔案拖曳到此處即可上傳\npdfjs-editor-add-signature-image-browse-link =\n    { PLATFORM() ->\n        [macos] 或選擇圖片檔案\n       *[other] 或瀏覽圖片檔案\n    }\n\n## Controls\n\npdfjs-editor-add-signature-description-label = 描述（替代文字）\npdfjs-editor-add-signature-description-input =\n    .title = 描述（替代文字）\npdfjs-editor-add-signature-description-default-when-drawing = 簽章\npdfjs-editor-add-signature-clear-button-label = 清除簽章\npdfjs-editor-add-signature-clear-button =\n    .title = 清除簽章\npdfjs-editor-add-signature-save-checkbox = 儲存簽章\npdfjs-editor-add-signature-save-warning-message = 您已經儲存 5 式簽章，請移除任一式才能再新增。\npdfjs-editor-add-signature-image-upload-error-title = 無法上傳圖片\npdfjs-editor-add-signature-image-upload-error-description = 請檢查您的網路連線，或改用其他圖片。\npdfjs-editor-add-signature-image-no-data-error-title = 無法將此圖片轉換成簽章\npdfjs-editor-add-signature-image-no-data-error-description = 請試著上傳另一張圖片。\npdfjs-editor-add-signature-error-close-button = 關閉\n\n## Dialog buttons\n\npdfjs-editor-add-signature-cancel-button = 取消\npdfjs-editor-add-signature-add-button = 新增\npdfjs-editor-edit-signature-update-button = 更新\n\n## Comment popup\n\npdfjs-editor-edit-comment-popup-button-label = 編輯註解\npdfjs-editor-edit-comment-popup-button =\n    .title = 編輯註解\npdfjs-editor-delete-comment-popup-button-label = 移除註解\npdfjs-editor-delete-comment-popup-button =\n    .title = 移除註解\npdfjs-show-comment-button =\n    .title = 顯示註解\n\n##  Edit a comment dialog\n\npdfjs-editor-edit-comment-actions-button-label = 動作\npdfjs-editor-edit-comment-actions-button =\n    .title = 動作\npdfjs-editor-edit-comment-close-button-label = 關閉\npdfjs-editor-edit-comment-close-button =\n    .title = 關閉\npdfjs-editor-edit-comment-actions-edit-button-label = 編輯\npdfjs-editor-edit-comment-actions-delete-button-label = 刪除\npdfjs-editor-edit-comment-manager-text-input =\n    .placeholder = 輸入您的註解\npdfjs-editor-edit-comment-manager-cancel-button = 取消\npdfjs-editor-edit-comment-manager-save-button = 儲存\n# An existing comment is edited\npdfjs-editor-edit-comment-dialog-title-when-editing = 編輯註解\npdfjs-editor-edit-comment-dialog-save-button-when-editing = 更新\n# No existing comment\npdfjs-editor-edit-comment-dialog-title-when-adding = 新增註解\npdfjs-editor-edit-comment-dialog-save-button-when-adding = 新增\npdfjs-editor-edit-comment-dialog-text-input =\n    .placeholder = 在此打字…\npdfjs-editor-edit-comment-dialog-cancel-button = 取消\n\n## Edit a comment button in the editor toolbar\n\npdfjs-editor-edit-comment-button =\n    .title = 編輯註解\npdfjs-editor-add-comment-button =\n    .title = 新增註解\n\n## Main menu for adding/removing signatures\n\npdfjs-editor-delete-signature-button1 =\n    .title = 移除儲存的簽章\npdfjs-editor-delete-signature-button-label1 = 移除儲存的簽章\n\n## Editor toolbar\n\npdfjs-editor-add-signature-edit-button-label = 編輯描述\n\n## Edit signature description dialog\n\npdfjs-editor-edit-signature-dialog-title = 編輯描述\n"
  },
  {
    "path": "viewer/tsconfig.json",
    "content": "{\n    \"compilerOptions\": {\n        \"lib\": [\n            \"es2021\", \"dom\", \"dom.iterable\"\n        ],\n        \"module\": \"es2022\",\n        \"noFallthroughCasesInSwitch\": true,\n        \"noImplicitReturns\": true,\n        \"noUnusedLocals\": true,\n        \"noUnusedParameters\": true,\n        \"outDir\": \"../out/viewer\",\n        \"sourceMap\": true,\n        \"strict\": true,\n        \"target\": \"es2021\",\n        \"typeRoots\": []\n    }\n}\n"
  },
  {
    "path": "viewer/viewer.css",
    "content": "/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.messageBar{\n  --closing-button-icon:url(images/messageBar_closingButton.svg);\n  --message-bar-close-button-color:var(--text-primary-color);\n  --message-bar-close-button-color-hover:var(--text-primary-color);\n  --message-bar-close-button-border-radius:4px;\n  --message-bar-close-button-border:none;\n  --csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);\n  --message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--31, rgb(21 20 26 / 0.14));\n  --csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);\n  --message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--32, rgb(21 20 26 / 0.21));\n  --csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);\n  --message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--33, rgb(21 20 26 / 0.07));\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.messageBar{\n  --message-bar-close-button-hover-bg-color:light-dark(\n    rgb(21 20 26 / 0.14),\n    rgb(251 251 254 / 0.14)\n  );\n  --message-bar-close-button-active-bg-color:light-dark(\n    rgb(21 20 26 / 0.21),\n    rgb(251 251 254 / 0.21)\n  );\n  --message-bar-close-button-focus-bg-color:light-dark(\n    rgb(21 20 26 / 0.07),\n    rgb(251 251 254 / 0.07)\n  );\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.messageBar *{\n  --csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);\n  --message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--31, rgb(21 20 26 / 0.14));\n  --csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);\n  --message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--32, rgb(21 20 26 / 0.21));\n  --csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);\n  --message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--33, rgb(21 20 26 / 0.07));\n  }\n}\n\n@media screen and (forced-colors: active){\n\n.messageBar{\n    --message-bar-close-button-color:ButtonText;\n    --message-bar-close-button-border:1px solid ButtonText;\n    --message-bar-close-button-hover-bg-color:ButtonText;\n    --message-bar-close-button-active-bg-color:ButtonText;\n    --message-bar-close-button-focus-bg-color:ButtonText;\n    --message-bar-close-button-color-hover:HighlightText;\n}\n  }\n\n.messageBar{\n\n  display:flex;\n  position:relative;\n  padding:8px 8px 8px 16px;\n  flex-direction:column;\n  justify-content:center;\n  align-items:center;\n  gap:8px;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n\n  border-radius:4px;\n\n  border:1px solid var(--message-bar-border-color);\n  background:var(--message-bar-bg-color);\n  color:var(--message-bar-fg-color);\n}\n\n.messageBar  > div{\n    display:flex;\n    align-items:flex-start;\n    gap:8px;\n    align-self:stretch;\n  }\n\n:is(.messageBar > div)::before{\n      content:\"\";\n      display:inline-block;\n      width:16px;\n      height:16px;\n      -webkit-mask-image:var(--message-bar-icon);\n              mask-image:var(--message-bar-icon);\n      -webkit-mask-size:cover;\n              mask-size:cover;\n      background-color:var(--message-bar-icon-color);\n      flex-shrink:0;\n    }\n\n.messageBar button{\n    cursor:pointer;\n  }\n\n:is(.messageBar button):focus-visible{\n      outline:var(--focus-ring-outline);\n      outline-offset:2px;\n    }\n\n.messageBar .closeButton{\n    width:32px;\n    height:32px;\n    background:none;\n    border-radius:var(--message-bar-close-button-border-radius);\n    border:var(--message-bar-close-button-border);\n\n    display:flex;\n    align-items:center;\n    justify-content:center;\n  }\n\n:is(.messageBar .closeButton)::before{\n      content:\"\";\n      display:inline-block;\n      width:16px;\n      height:16px;\n      -webkit-mask-image:var(--closing-button-icon);\n              mask-image:var(--closing-button-icon);\n      -webkit-mask-size:cover;\n              mask-size:cover;\n      background-color:var(--message-bar-close-button-color);\n    }\n\n:is(.messageBar .closeButton):is(:hover,:active,:focus)::before{\n      background-color:var(--message-bar-close-button-color-hover);\n    }\n\n:is(.messageBar .closeButton):hover{\n      background-color:var(--message-bar-close-button-hover-bg-color);\n    }\n\n:is(.messageBar .closeButton):active{\n      background-color:var(--message-bar-close-button-active-bg-color);\n    }\n\n:is(.messageBar .closeButton):focus{\n      background-color:var(--message-bar-close-button-focus-bg-color);\n    }\n\n:is(.messageBar .closeButton)  > span{\n      display:inline-block;\n      width:0;\n      height:0;\n      overflow:hidden;\n    }\n\n#editorUndoBar{\n  --csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #fbfbfe;\n  --text-primary-color:var(--csstools-light-dark-toggle--34, #15141a);\n\n  --message-bar-icon:url(images/messageBar_info.svg);\n  --csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #73a7f3;\n  --message-bar-icon-color:var(--csstools-light-dark-toggle--35, #0060df);\n  --csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #003070;\n  --message-bar-bg-color:var(--csstools-light-dark-toggle--36, #deeafc);\n  --message-bar-fg-color:var(--text-primary-color);\n  --csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n  --message-bar-border-color:var(--csstools-light-dark-toggle--37, rgb(0 0 0 / 0.08));\n\n  --csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n\n  --undo-button-bg-color:var(--csstools-light-dark-toggle--38, rgb(21 20 26 / 0.07));\n  --csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.14);\n  --undo-button-bg-color-hover:var(--csstools-light-dark-toggle--39, rgb(21 20 26 / 0.14));\n  --csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.21);\n  --undo-button-bg-color-active:var(--csstools-light-dark-toggle--40, rgb(21 20 26 / 0.21));\n\n  --csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) #0df;\n\n  --undo-button-border:1px solid var(--csstools-light-dark-toggle--41, #0060df);\n\n  --undo-button-fg-color:var(--message-bar-fg-color);\n  --undo-button-fg-color-hover:var(--undo-button-fg-color);\n  --undo-button-fg-color-active:var(--undo-button-fg-color);\n}\n\n@supports (color: light-dark(red, red)){\n#editorUndoBar{\n  --text-primary-color:light-dark(#15141a, #fbfbfe);\n  --message-bar-icon-color:light-dark(#0060df, #73a7f3);\n  --message-bar-bg-color:light-dark(#deeafc, #003070);\n}\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n#editorUndoBar{\n  --message-bar-border-color:light-dark(\n    rgb(0 0 0 / 0.08),\n    rgb(255 255 255 / 0.08)\n  );\n\n  --undo-button-bg-color:light-dark(\n    rgb(21 20 26 / 0.07),\n    rgb(255 255 255 / 0.08)\n  );\n  --undo-button-bg-color-hover:light-dark(\n    rgb(21 20 26 / 0.14),\n    rgb(255 255 255 / 0.14)\n  );\n  --undo-button-bg-color-active:light-dark(\n    rgb(21 20 26 / 0.21),\n    rgb(255 255 255 / 0.21)\n  );\n}\n}\n\n@supports (color: light-dark(red, red)){\n#editorUndoBar{\n\n  --undo-button-border:1px solid light-dark(#0060df, #0df);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n#editorUndoBar *{\n  --csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #fbfbfe;\n  --text-primary-color:var(--csstools-light-dark-toggle--34, #15141a);\n  --csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #73a7f3;\n  --message-bar-icon-color:var(--csstools-light-dark-toggle--35, #0060df);\n  --csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #003070;\n  --message-bar-bg-color:var(--csstools-light-dark-toggle--36, #deeafc);\n  --csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n  --message-bar-border-color:var(--csstools-light-dark-toggle--37, rgb(0 0 0 / 0.08));\n\n  --csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n\n  --undo-button-bg-color:var(--csstools-light-dark-toggle--38, rgb(21 20 26 / 0.07));\n  --csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.14);\n  --undo-button-bg-color-hover:var(--csstools-light-dark-toggle--39, rgb(21 20 26 / 0.14));\n  --csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.21);\n  --undo-button-bg-color-active:var(--csstools-light-dark-toggle--40, rgb(21 20 26 / 0.21));\n\n  --csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) #0df;\n\n  --undo-button-border:1px solid var(--csstools-light-dark-toggle--41, #0060df);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n#editorUndoBar{\n    --text-primary-color:CanvasText;\n\n    --message-bar-icon-color:CanvasText;\n    --message-bar-bg-color:Canvas;\n    --message-bar-border-color:CanvasText;\n\n    --undo-button-bg-color:ButtonText;\n    --undo-button-bg-color-hover:SelectedItem;\n    --undo-button-bg-color-active:SelectedItem;\n\n    --undo-button-fg-color:ButtonFace;\n    --undo-button-fg-color-hover:SelectedItemText;\n    --undo-button-fg-color-active:SelectedItemText;\n\n    --undo-button-border:none;\n}\n  }\n\n#editorUndoBar{\n\n  position:fixed;\n  top:50px;\n  left:50%;\n  transform:translateX(-50%);\n  z-index:10;\n\n  padding-block:8px;\n  padding-inline:16px 8px;\n\n  font:menu;\n  font-size:15px;\n\n  cursor:default;\n}\n\n#editorUndoBar button{\n    cursor:pointer;\n  }\n\n#editorUndoBar #editorUndoBarUndoButton{\n    border-radius:4px;\n    font-weight:590;\n    line-height:19.5px;\n    color:var(--undo-button-fg-color);\n    border:var(--undo-button-border);\n    padding:4px 16px;\n    margin-inline-start:8px;\n    height:32px;\n\n    background-color:var(--undo-button-bg-color);\n  }\n\n:is(#editorUndoBar #editorUndoBarUndoButton):hover{\n      background-color:var(--undo-button-bg-color-hover);\n      color:var(--undo-button-fg-color-hover);\n    }\n\n:is(#editorUndoBar #editorUndoBarUndoButton):active{\n      background-color:var(--undo-button-bg-color-active);\n      color:var(--undo-button-fg-color-active);\n    }\n\n#editorUndoBar  > div{\n    align-items:center;\n  }\n\n.dialog{\n  --csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #1c1b22;\n  --dialog-bg-color:var(--csstools-light-dark-toggle--42, white);\n  --csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #1c1b22;\n  --dialog-border-color:var(--csstools-light-dark-toggle--43, white);\n  --csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #15141a;\n  --dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--44, rgb(58 57 68 / 0.2));\n  --csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;\n  --text-primary-color:var(--csstools-light-dark-toggle--45, #15141a);\n  --csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #cfcfd8;\n  --text-secondary-color:var(--csstools-light-dark-toggle--46, #5b5b66);\n  --hover-filter:brightness(0.9);\n  --csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #0df;\n  --link-fg-color:var(--csstools-light-dark-toggle--47, #0060df);\n  --csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #80ebff;\n  --link-hover-fg-color:var(--csstools-light-dark-toggle--48, #0250bb);\n  --csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #52525e;\n  --separator-color:var(--csstools-light-dark-toggle--49, #f0f0f4);\n\n  --textarea-border-color:#8f8f9d;\n  --csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #42414d;\n  --textarea-bg-color:var(--csstools-light-dark-toggle--50, white);\n  --textarea-fg-color:var(--text-secondary-color);\n\n  --csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #2b2a33;\n\n  --radio-bg-color:var(--csstools-light-dark-toggle--51, #f0f0f4);\n  --csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #15141a;\n  --radio-checked-bg-color:var(--csstools-light-dark-toggle--52, #fbfbfe);\n  --radio-border-color:#8f8f9d;\n  --csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #0df;\n  --radio-checked-border-color:var(--csstools-light-dark-toggle--53, #0060df);\n\n  --csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);\n\n  --button-secondary-bg-color:var(--csstools-light-dark-toggle--54, rgb(21 20 26 / 0.07));\n  --button-secondary-fg-color:var(--text-primary-color);\n  --button-secondary-border-color:var(--button-secondary-bg-color);\n  --csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);\n  --button-secondary-active-bg-color:var(--csstools-light-dark-toggle--55, rgb(21 20 26 / 0.21));\n  --button-secondary-active-fg-color:var(--button-secondary-fg-color);\n  --button-secondary-active-border-color:var(--button-secondary-bg-color);\n  --csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);\n  --button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--56, rgb(21 20 26 / 0.14));\n  --button-secondary-hover-fg-color:var(--button-secondary-fg-color);\n  --button-secondary-hover-border-color:var(--button-secondary-hover-bg-color);\n  --button-secondary-disabled-bg-color:var(--button-secondary-bg-color);\n  --button-secondary-disabled-border-color:var(\n    --button-secondary-border-color\n  );\n  --button-secondary-disabled-fg-color:var(--button-secondary-fg-color);\n\n  --csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) #0df;\n\n  --button-primary-bg-color:var(--csstools-light-dark-toggle--57, #0060df);\n  --csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #15141a;\n  --button-primary-fg-color:var(--csstools-light-dark-toggle--58, #fbfbfe);\n  --button-primary-border-color:var(--button-primary-bg-color);\n  --csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #aaf2ff;\n  --button-primary-active-bg-color:var(--csstools-light-dark-toggle--59, #054096);\n  --button-primary-active-fg-color:var(--button-primary-fg-color);\n  --button-primary-active-border-color:var(--button-primary-active-bg-color);\n  --csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #80ebff;\n  --button-primary-hover-bg-color:var(--csstools-light-dark-toggle--60, #0250bb);\n  --button-primary-hover-fg-color:var(--button-primary-fg-color);\n  --button-primary-hover-border-color:var(--button-primary-hover-bg-color);\n  --button-primary-disabled-bg-color:var(--button-primary-bg-color);\n  --button-primary-disabled-border-color:var(--button-primary-border-color);\n  --button-primary-disabled-fg-color:var(--button-primary-fg-color);\n  --button-disabled-opacity:0.4;\n\n  --csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #42414d;\n\n  --input-text-bg-color:var(--csstools-light-dark-toggle--61, white);\n  --input-text-fg-color:var(--text-primary-color);\n}\n\n@supports (color: light-dark(red, red)){\n.dialog{\n  --dialog-bg-color:light-dark(white, #1c1b22);\n  --dialog-border-color:light-dark(white, #1c1b22);\n}\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.dialog{\n  --dialog-shadow:0 2px 14px 0 light-dark(rgb(58 57 68 / 0.2), #15141a);\n}\n}\n\n@supports (color: light-dark(red, red)){\n.dialog{\n  --text-primary-color:light-dark(#15141a, #fbfbfe);\n  --text-secondary-color:light-dark(#5b5b66, #cfcfd8);\n  --link-fg-color:light-dark(#0060df, #0df);\n  --link-hover-fg-color:light-dark(#0250bb, #80ebff);\n  --separator-color:light-dark(#f0f0f4, #52525e);\n  --textarea-bg-color:light-dark(white, #42414d);\n\n  --radio-bg-color:light-dark(#f0f0f4, #2b2a33);\n  --radio-checked-bg-color:light-dark(#fbfbfe, #15141a);\n  --radio-checked-border-color:light-dark(#0060df, #0df);\n}\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.dialog{\n\n  --button-secondary-bg-color:light-dark(\n    rgb(21 20 26 / 0.07),\n    rgb(251 251 254 / 0.07)\n  );\n  --button-secondary-active-bg-color:light-dark(\n    rgb(21 20 26 / 0.21),\n    rgb(251 251 254 / 0.21)\n  );\n  --button-secondary-hover-bg-color:light-dark(\n    rgb(21 20 26 / 0.14),\n    rgb(251 251 254 / 0.14)\n  );\n}\n}\n\n@supports (color: light-dark(red, red)){\n.dialog{\n\n  --button-primary-bg-color:light-dark(#0060df, #0df);\n  --button-primary-fg-color:light-dark(#fbfbfe, #15141a);\n  --button-primary-active-bg-color:light-dark(#054096, #aaf2ff);\n  --button-primary-hover-bg-color:light-dark(#0250bb, #80ebff);\n\n  --input-text-bg-color:light-dark(white, #42414d);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.dialog *{\n  --csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #1c1b22;\n  --dialog-bg-color:var(--csstools-light-dark-toggle--42, white);\n  --csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #1c1b22;\n  --dialog-border-color:var(--csstools-light-dark-toggle--43, white);\n  --csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #15141a;\n  --dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--44, rgb(58 57 68 / 0.2));\n  --csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;\n  --text-primary-color:var(--csstools-light-dark-toggle--45, #15141a);\n  --csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #cfcfd8;\n  --text-secondary-color:var(--csstools-light-dark-toggle--46, #5b5b66);\n  --csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #0df;\n  --link-fg-color:var(--csstools-light-dark-toggle--47, #0060df);\n  --csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #80ebff;\n  --link-hover-fg-color:var(--csstools-light-dark-toggle--48, #0250bb);\n  --csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #52525e;\n  --separator-color:var(--csstools-light-dark-toggle--49, #f0f0f4);\n  --csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #42414d;\n  --textarea-bg-color:var(--csstools-light-dark-toggle--50, white);\n\n  --csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #2b2a33;\n\n  --radio-bg-color:var(--csstools-light-dark-toggle--51, #f0f0f4);\n  --csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #15141a;\n  --radio-checked-bg-color:var(--csstools-light-dark-toggle--52, #fbfbfe);\n  --csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #0df;\n  --radio-checked-border-color:var(--csstools-light-dark-toggle--53, #0060df);\n\n  --csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);\n\n  --button-secondary-bg-color:var(--csstools-light-dark-toggle--54, rgb(21 20 26 / 0.07));\n  --csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);\n  --button-secondary-active-bg-color:var(--csstools-light-dark-toggle--55, rgb(21 20 26 / 0.21));\n  --csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);\n  --button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--56, rgb(21 20 26 / 0.14));\n\n  --csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) #0df;\n\n  --button-primary-bg-color:var(--csstools-light-dark-toggle--57, #0060df);\n  --csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #15141a;\n  --button-primary-fg-color:var(--csstools-light-dark-toggle--58, #fbfbfe);\n  --csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #aaf2ff;\n  --button-primary-active-bg-color:var(--csstools-light-dark-toggle--59, #054096);\n  --csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #80ebff;\n  --button-primary-hover-bg-color:var(--csstools-light-dark-toggle--60, #0250bb);\n\n  --csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #42414d;\n\n  --input-text-bg-color:var(--csstools-light-dark-toggle--61, white);\n  }\n}\n\n@media (prefers-color-scheme: dark){\n\n.dialog{\n    --hover-filter:brightness(1.4);\n    --button-disabled-opacity:0.6;\n}\n  }\n\n@media screen and (forced-colors: active){\n\n.dialog{\n    --dialog-bg-color:Canvas;\n    --dialog-border-color:CanvasText;\n    --dialog-shadow:none;\n    --text-primary-color:CanvasText;\n    --text-secondary-color:CanvasText;\n    --hover-filter:none;\n    --link-fg-color:LinkText;\n    --link-hover-fg-color:LinkText;\n    --separator-color:CanvasText;\n\n    --textarea-border-color:ButtonBorder;\n    --textarea-bg-color:Field;\n    --textarea-fg-color:ButtonText;\n\n    --radio-bg-color:ButtonFace;\n    --radio-checked-bg-color:ButtonFace;\n    --radio-border-color:ButtonText;\n    --radio-checked-border-color:ButtonText;\n\n    --button-secondary-bg-color:ButtonFace;\n    --button-secondary-fg-color:ButtonText;\n    --button-secondary-border-color:ButtonText;\n    --button-secondary-active-bg-color:HighlightText;\n    --button-secondary-active-fg-color:SelectedItem;\n    --button-secondary-active-border-color:ButtonText;\n    --button-secondary-hover-bg-color:HighlightText;\n    --button-secondary-hover-fg-color:SelectedItem;\n    --button-secondary-hover-border-color:SelectedItem;\n    --button-secondary-disabled-fg-color:GrayText;\n    --button-secondary-disabled-border-color:GrayText;\n\n    --button-primary-bg-color:ButtonText;\n    --button-primary-fg-color:ButtonFace;\n    --button-primary-border-color:ButtonText;\n    --button-primary-active-bg-color:SelectedItem;\n    --button-primary-active-fg-color:HighlightText;\n    --button-primary-active-border-color:ButtonText;\n    --button-primary-hover-bg-color:SelectedItem;\n    --button-primary-hover-fg-color:HighlightText;\n    --button-primary-hover-border-color:SelectedItem;\n    --button-primary-disabled-bg-color:GrayText;\n    --button-primary-disabled-fg-color:ButtonFace;\n    --button-primary-disabled-border-color:GrayText;\n    --button-disabled-opacity:1;\n\n    --input-text-bg-color:Field;\n    --input-text-fg-color:FieldText;\n}\n  }\n\n.dialog{\n\n  font:message-box;\n  font-size:13px;\n  font-weight:400;\n  line-height:150%;\n  border-radius:4px;\n  padding:12px 16px;\n  border:1px solid var(--dialog-border-color);\n  background:var(--dialog-bg-color);\n  color:var(--text-primary-color);\n  box-shadow:var(--dialog-shadow);\n}\n\n:is(.dialog .mainContainer) *:focus-visible{\n      outline:var(--focus-ring-outline);\n      outline-offset:2px;\n    }\n\n:is(.dialog .mainContainer) .title{\n      display:flex;\n      width:auto;\n      flex-direction:column;\n      justify-content:flex-end;\n      align-items:flex-start;\n      gap:12px;\n    }\n\n:is(:is(.dialog .mainContainer) .title)  > span{\n        font-size:13px;\n        font-style:normal;\n        font-weight:590;\n        line-height:150%;\n      }\n\n:is(.dialog .mainContainer) .dialogSeparator{\n      width:100%;\n      height:0;\n      margin-block:4px;\n      border-top:1px solid var(--separator-color);\n      border-bottom:none;\n    }\n\n:is(.dialog .mainContainer) .dialogButtonsGroup{\n      display:flex;\n      gap:12px;\n      align-self:flex-end;\n    }\n\n:is(.dialog .mainContainer) .radio{\n      display:flex;\n      flex-direction:column;\n      align-items:flex-start;\n      gap:4px;\n    }\n\n:is(:is(.dialog .mainContainer) .radio)  > .radioButton{\n        display:flex;\n        gap:8px;\n        align-self:stretch;\n        align-items:center;\n      }\n\n:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input{\n          -webkit-appearance:none;\n             -moz-appearance:none;\n                  appearance:none;\n          box-sizing:border-box;\n          width:16px;\n          height:16px;\n          border-radius:50%;\n          background-color:var(--radio-bg-color);\n          border:1px solid var(--radio-border-color);\n        }\n\n:is(:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input):hover{\n            filter:var(--hover-filter);\n          }\n\n:is(:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input):checked{\n            background-color:var(--radio-checked-bg-color);\n            border:4px solid var(--radio-checked-border-color);\n          }\n\n:is(:is(.dialog .mainContainer) .radio)  > .radioLabel{\n        display:flex;\n        padding-inline-start:24px;\n        align-items:flex-start;\n        gap:10px;\n        align-self:stretch;\n      }\n\n:is(:is(:is(.dialog .mainContainer) .radio) > .radioLabel)  > span{\n          flex:1 0 0;\n          font-size:11px;\n          color:var(--text-secondary-color);\n        }\n\n:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton)){\n      border-radius:4px;\n      border:1px solid;\n      font:menu;\n      font-weight:590;\n      font-size:13px;\n      padding:4px 16px;\n      width:auto;\n      height:32px;\n    }\n\n:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{\n        cursor:pointer;\n        filter:var(--hover-filter);\n      }\n\n:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton)))  > span{\n        color:inherit;\n        font:inherit;\n      }\n\n.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){\n        color:var(--button-secondary-fg-color);\n        background-color:var(--button-secondary-bg-color);\n        border-color:var(--button-secondary-border-color);\n      }\n\n.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{\n          color:var(--button-secondary-hover-fg-color);\n          background-color:var(--button-secondary-hover-bg-color);\n          border-color:var(--button-secondary-hover-border-color);\n        }\n\n.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{\n          color:var(--button-secondary-active-fg-color);\n          background-color:var(--button-secondary-active-bg-color);\n          border-color:var(--button-secondary-active-border-color);\n        }\n\n.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{\n          background-color:var(--button-secondary-disabled-bg-color);\n          border-color:var(--button-secondary-disabled-border-color);\n          color:var(--button-secondary-disabled-fg-color);\n          opacity:var(--button-disabled-opacity);\n        }\n\n.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){\n        color:var(--button-primary-fg-color);\n        background-color:var(--button-primary-bg-color);\n        border-color:var(--button-primary-border-color);\n        opacity:1;\n      }\n\n.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{\n          color:var(--button-primary-hover-fg-color);\n          background-color:var(--button-primary-hover-bg-color);\n          border-color:var(--button-primary-hover-border-color);\n        }\n\n.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{\n          color:var(--button-primary-active-fg-color);\n          background-color:var(--button-primary-active-bg-color);\n          border-color:var(--button-primary-active-border-color);\n        }\n\n.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{\n          background-color:var(--button-primary-disabled-bg-color);\n          border-color:var(--button-primary-disabled-border-color);\n          color:var(--button-primary-disabled-fg-color);\n          opacity:var(--button-disabled-opacity);\n        }\n\n:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{\n        pointer-events:none;\n      }\n\n:is(.dialog .mainContainer) a{\n      color:var(--link-fg-color);\n    }\n\n:is(:is(.dialog .mainContainer) a):hover{\n        color:var(--link-hover-fg-color);\n      }\n\n:is(.dialog .mainContainer) textarea{\n      font:inherit;\n      padding:8px;\n      resize:none;\n      margin:0;\n      box-sizing:border-box;\n      border-radius:4px;\n      border:1px solid var(--textarea-border-color);\n      background:var(--textarea-bg-color);\n      color:var(--textarea-fg-color);\n    }\n\n:is(:is(.dialog .mainContainer) textarea):focus{\n        outline-offset:0;\n        border-color:transparent;\n      }\n\n:is(:is(.dialog .mainContainer) textarea):disabled{\n        pointer-events:none;\n        opacity:0.4;\n      }\n\n:is(.dialog .mainContainer) input[type=\"text\"]{\n      background-color:var(--input-text-bg-color);\n      color:var(--input-text-fg-color);\n    }\n\n:is(.dialog .mainContainer) .messageBar{\n      --csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #5a3100;\n      --message-bar-bg-color:var(--csstools-light-dark-toggle--62, #ffebcd);\n      --csstools-light-dark-toggle--63:var(--csstools-color-scheme--light) #fbfbfe;\n      --message-bar-fg-color:var(--csstools-light-dark-toggle--63, #15141a);\n      --csstools-light-dark-toggle--64:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n      --message-bar-border-color:var(--csstools-light-dark-toggle--64, rgb(0 0 0 / 0.08));\n      --message-bar-icon:url(images/messageBar_warning.svg);\n      --csstools-light-dark-toggle--65:var(--csstools-color-scheme--light) #e49c49;\n      --message-bar-icon-color:var(--csstools-light-dark-toggle--65, #cd411e);\n    }\n\n@supports (color: light-dark(red, red)){\n:is(.dialog .mainContainer) .messageBar{\n      --message-bar-bg-color:light-dark(#ffebcd, #5a3100);\n      --message-bar-fg-color:light-dark(#15141a, #fbfbfe);\n    }\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n:is(.dialog .mainContainer) .messageBar{\n      --message-bar-border-color:light-dark(\n        rgb(0 0 0 / 0.08),\n        rgb(255 255 255 / 0.08)\n      );\n    }\n}\n\n@supports (color: light-dark(red, red)){\n:is(.dialog .mainContainer) .messageBar{\n      --message-bar-icon-color:light-dark(#cd411e, #e49c49);\n    }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(.dialog .mainContainer) .messageBar) *{\n      --csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #5a3100;\n      --message-bar-bg-color:var(--csstools-light-dark-toggle--62, #ffebcd);\n      --csstools-light-dark-toggle--63:var(--csstools-color-scheme--light) #fbfbfe;\n      --message-bar-fg-color:var(--csstools-light-dark-toggle--63, #15141a);\n      --csstools-light-dark-toggle--64:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);\n      --message-bar-border-color:var(--csstools-light-dark-toggle--64, rgb(0 0 0 / 0.08));\n      --csstools-light-dark-toggle--65:var(--csstools-color-scheme--light) #e49c49;\n      --message-bar-icon-color:var(--csstools-light-dark-toggle--65, #cd411e);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(.dialog .mainContainer) .messageBar{\n        --message-bar-bg-color:HighlightText;\n        --message-bar-fg-color:CanvasText;\n        --message-bar-border-color:CanvasText;\n        --message-bar-icon-color:CanvasText;\n    }\n      }\n\n:is(.dialog .mainContainer) .messageBar{\n\n      align-self:stretch;\n    }\n\n:is(:is(:is(.dialog .mainContainer) .messageBar) > div)::before,:is(:is(:is(.dialog .mainContainer) .messageBar) > div)  > div{\n          margin-block:4px;\n        }\n\n:is(:is(:is(.dialog .mainContainer) .messageBar) > div)  > div{\n          display:flex;\n          flex-direction:column;\n          align-items:flex-start;\n          gap:8px;\n          flex:1 0 0;\n        }\n\n:is(:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div) .title{\n            font-size:13px;\n            font-weight:590;\n          }\n\n:is(:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div) .description{\n            font-size:13px;\n          }\n\n:is(.dialog .mainContainer) .toggler{\n      display:flex;\n      align-items:center;\n      gap:8px;\n      align-self:stretch;\n    }\n\n:is(:is(.dialog .mainContainer) .toggler)  > .togglerLabel{\n        -webkit-user-select:none;\n           -moz-user-select:none;\n                user-select:none;\n      }\n\n.textLayer{\n  position:absolute;\n  text-align:initial;\n  inset:0;\n  overflow:clip;\n  opacity:1;\n  line-height:1;\n  -webkit-text-size-adjust:none;\n     -moz-text-size-adjust:none;\n          text-size-adjust:none;\n  forced-color-adjust:none;\n  transform-origin:0 0;\n  caret-color:CanvasText;\n  z-index:0;\n}\n\n.textLayer.highlighting{\n    touch-action:none;\n  }\n\n.textLayer :is(span,br){\n    color:transparent;\n    position:absolute;\n    white-space:pre;\n    cursor:text;\n    transform-origin:0% 0%;\n  }\n\n.textLayer  > :not(.markedContent),.textLayer .markedContent span:not(.markedContent){\n    z-index:1;\n  }\n\n.textLayer span.markedContent{\n    top:0;\n    height:0;\n  }\n\n.textLayer span[role=\"img\"]{\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n    cursor:default;\n  }\n\n.textLayer .highlight{\n    --highlight-bg-color:rgb(180 0 170 / 0.25);\n    --highlight-selected-bg-color:rgb(0 100 0 / 0.25);\n    --highlight-backdrop-filter:none;\n    --highlight-selected-backdrop-filter:none;\n  }\n\n@media screen and (forced-colors: active){\n\n.textLayer .highlight{\n      --highlight-bg-color:transparent;\n      --highlight-selected-bg-color:transparent;\n      --highlight-backdrop-filter:var(--hcm-highlight-filter);\n      --highlight-selected-backdrop-filter:var(\n        --hcm-highlight-selected-filter\n      );\n  }\n    }\n\n.textLayer .highlight{\n\n    margin:-1px;\n    padding:1px;\n    background-color:var(--highlight-bg-color);\n    -webkit-backdrop-filter:var(--highlight-backdrop-filter);\n            backdrop-filter:var(--highlight-backdrop-filter);\n    border-radius:4px;\n  }\n\n.appended:is(.textLayer .highlight){\n      position:initial;\n    }\n\n.begin:is(.textLayer .highlight){\n      border-radius:4px 0 0 4px;\n    }\n\n.end:is(.textLayer .highlight){\n      border-radius:0 4px 4px 0;\n    }\n\n.middle:is(.textLayer .highlight){\n      border-radius:0;\n    }\n\n.selected:is(.textLayer .highlight){\n      background-color:var(--highlight-selected-bg-color);\n      -webkit-backdrop-filter:var(--highlight-selected-backdrop-filter);\n              backdrop-filter:var(--highlight-selected-backdrop-filter);\n    }\n\n.textLayer ::-moz-selection{\n    background:rgba(0 0 255 / 0.25);\n    background:color-mix(in srgb, AccentColor, transparent 75%);\n  }\n\n.textLayer ::selection{\n    background:rgba(0 0 255 / 0.25);\n    background:color-mix(in srgb, AccentColor, transparent 75%);\n  }\n\n.textLayer br::-moz-selection{\n    background:transparent;\n  }\n\n.textLayer br::selection{\n    background:transparent;\n  }\n\n.textLayer .endOfContent{\n    display:block;\n    position:absolute;\n    inset:100% 0 0;\n    z-index:0;\n    cursor:default;\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n  }\n\n.textLayer.selecting .endOfContent{\n    top:0;\n  }\n\n.annotationLayer{\n  --csstools-color-scheme--light:initial;\n  color-scheme:only light;\n\n  --annotation-unfocused-field-background:url(\"data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>\");\n  --input-focus-border-color:Highlight;\n  --input-focus-outline:1px solid Canvas;\n  --input-unfocused-border-color:transparent;\n  --input-disabled-border-color:transparent;\n  --input-hover-border-color:black;\n  --link-outline:none;\n}\n\n@media screen and (forced-colors: active){\n\n.annotationLayer{\n    --input-focus-border-color:CanvasText;\n    --input-unfocused-border-color:ActiveText;\n    --input-disabled-border-color:GrayText;\n    --input-hover-border-color:Highlight;\n    --link-outline:1.5px solid LinkText;\n}\n\n    .annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{\n      outline:1.5px solid selectedItem;\n    }\n\n    .annotationLayer .linkAnnotation{\n      outline:var(--link-outline);\n    }\n\n      :is(.annotationLayer .linkAnnotation):hover{\n        -webkit-backdrop-filter:var(--hcm-highlight-filter);\n                backdrop-filter:var(--hcm-highlight-filter);\n      }\n\n      :is(.annotationLayer .linkAnnotation) > a:hover{\n        opacity:0 !important;\n        background:none !important;\n        box-shadow:none;\n      }\n\n    .annotationLayer .popupAnnotation .popup{\n      outline:calc(1.5px * var(--total-scale-factor)) solid CanvasText !important;\n      background-color:ButtonFace !important;\n      color:ButtonText !important;\n    }\n\n    .annotationLayer .highlightArea:hover::after{\n      position:absolute;\n      top:0;\n      left:0;\n      width:100%;\n      height:100%;\n      -webkit-backdrop-filter:var(--hcm-highlight-filter);\n              backdrop-filter:var(--hcm-highlight-filter);\n      content:\"\";\n      pointer-events:none;\n    }\n\n    .annotationLayer .popupAnnotation.focused .popup{\n      outline:calc(3px * var(--total-scale-factor)) solid Highlight !important;\n    }\n  }\n\n.annotationLayer{\n\n  position:absolute;\n  top:0;\n  left:0;\n  pointer-events:none;\n  transform-origin:0 0;\n}\n\n.annotationLayer[data-main-rotation=\"90\"] .norotate{\n    transform:rotate(270deg) translateX(-100%);\n  }\n\n.annotationLayer[data-main-rotation=\"180\"] .norotate{\n    transform:rotate(180deg) translate(-100%, -100%);\n  }\n\n.annotationLayer[data-main-rotation=\"270\"] .norotate{\n    transform:rotate(90deg) translateY(-100%);\n  }\n\n.annotationLayer.disabled section,.annotationLayer.disabled .popup{\n      pointer-events:none;\n    }\n\n.annotationLayer .annotationContent{\n    position:absolute;\n    width:100%;\n    height:100%;\n    pointer-events:none;\n  }\n\n.freetext:is(.annotationLayer .annotationContent){\n      background:transparent;\n      border:none;\n      inset:0;\n      overflow:visible;\n      white-space:nowrap;\n      font:10px sans-serif;\n      line-height:1.35;\n    }\n\n.annotationLayer section{\n    position:absolute;\n    text-align:initial;\n    pointer-events:auto;\n    box-sizing:border-box;\n    transform-origin:0 0;\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n  }\n\n:is(.annotationLayer section):has(div.annotationContent) canvas.annotationContent{\n        display:none;\n      }\n\n:is(.annotationLayer section) .overlaidText{\n      position:absolute;\n      top:0;\n      left:0;\n      width:0;\n      height:0;\n      display:inline-block;\n      overflow:hidden;\n    }\n\n.textLayer.selecting ~ .annotationLayer section{\n    pointer-events:none;\n  }\n\n.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton) > a{\n    position:absolute;\n    font-size:1em;\n    top:0;\n    left:0;\n    width:100%;\n    height:100%;\n  }\n\n.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton):not(.hasBorder) > a:hover{\n    opacity:0.2;\n    background-color:rgb(255 255 0);\n  }\n\n.annotationLayer .linkAnnotation.hasBorder:hover{\n    background-color:rgb(255 255 0 / 0.2);\n  }\n\n.annotationLayer .hasBorder{\n    background-size:100% 100%;\n  }\n\n.annotationLayer .textAnnotation img{\n    position:absolute;\n    cursor:pointer;\n    width:100%;\n    height:100%;\n    top:0;\n    left:0;\n  }\n\n.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{\n    background-image:var(--annotation-unfocused-field-background);\n    border:2px solid var(--input-unfocused-border-color);\n    box-sizing:border-box;\n    font:calc(9px * var(--total-scale-factor)) sans-serif;\n    height:100%;\n    margin:0;\n    vertical-align:top;\n    width:100%;\n  }\n\n.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{\n    outline:1.5px solid red;\n  }\n\n.annotationLayer .choiceWidgetAnnotation select option{\n    padding:0;\n  }\n\n.annotationLayer .buttonWidgetAnnotation.radioButton input{\n    border-radius:50%;\n  }\n\n.annotationLayer .textWidgetAnnotation textarea{\n    resize:none;\n  }\n\n.annotationLayer .textWidgetAnnotation [disabled]:is(input,textarea),.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{\n    background:none;\n    border:2px solid var(--input-disabled-border-color);\n    cursor:not-allowed;\n  }\n\n.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{\n    border:2px solid var(--input-hover-border-color);\n  }\n\n.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{\n    border-radius:2px;\n  }\n\n.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{\n    background:none;\n    border:2px solid var(--input-focus-border-color);\n    border-radius:2px;\n    outline:var(--input-focus-outline);\n  }\n\n.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{\n    background-image:none;\n    background-color:transparent;\n  }\n\n.annotationLayer .buttonWidgetAnnotation.checkBox :focus{\n    border:2px solid var(--input-focus-border-color);\n    border-radius:2px;\n    outline:var(--input-focus-outline);\n  }\n\n.annotationLayer .buttonWidgetAnnotation.radioButton :focus{\n    border:2px solid var(--input-focus-border-color);\n    outline:var(--input-focus-outline);\n  }\n\n.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{\n    background-color:CanvasText;\n    content:\"\";\n    display:block;\n    position:absolute;\n  }\n\n.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{\n    height:80%;\n    left:45%;\n    width:1px;\n  }\n\n.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before{\n    transform:rotate(45deg);\n  }\n\n.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{\n    transform:rotate(-45deg);\n  }\n\n.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{\n    border-radius:50%;\n    height:50%;\n    left:25%;\n    top:25%;\n    width:50%;\n  }\n\n.annotationLayer .textWidgetAnnotation input.comb{\n    font-family:monospace;\n    padding-left:2px;\n    padding-right:0;\n  }\n\n.annotationLayer .textWidgetAnnotation input.comb:focus{\n    width:103%;\n  }\n\n.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{\n    -webkit-appearance:none;\n       -moz-appearance:none;\n            appearance:none;\n  }\n\n.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{\n    height:100%;\n    width:100%;\n  }\n\n.annotationLayer .popupAnnotation{\n    position:absolute;\n    font-size:calc(9px * var(--total-scale-factor));\n    pointer-events:none;\n    width:-moz-max-content;\n    width:max-content;\n    max-width:45%;\n    height:auto;\n  }\n\n.annotationLayer .popup{\n    background-color:rgb(255 255 153);\n    color:black;\n    box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) rgb(136 136 136);\n    border-radius:calc(2px * var(--total-scale-factor));\n    outline:1.5px solid rgb(255 255 74);\n    padding:calc(6px * var(--total-scale-factor));\n    cursor:pointer;\n    font:message-box;\n    white-space:normal;\n    word-wrap:break-word;\n    pointer-events:auto;\n    -webkit-user-select:text;\n       -moz-user-select:text;\n            user-select:text;\n  }\n\n.annotationLayer .popupAnnotation.focused .popup{\n    outline-width:3px;\n  }\n\n.annotationLayer .popup *{\n    font-size:calc(9px * var(--total-scale-factor));\n  }\n\n.annotationLayer .popup > .header{\n    display:inline-block;\n  }\n\n.annotationLayer .popup > .header > .title{\n    display:inline;\n    font-weight:bold;\n  }\n\n.annotationLayer .popup > .header .popupDate{\n    display:inline-block;\n    margin-left:calc(5px * var(--total-scale-factor));\n    width:-moz-fit-content;\n    width:fit-content;\n  }\n\n.annotationLayer .popupContent{\n    border-top:1px solid rgb(51 51 51);\n    margin-top:calc(2px * var(--total-scale-factor));\n    padding-top:calc(2px * var(--total-scale-factor));\n  }\n\n.annotationLayer .richText > *{\n    white-space:pre-wrap;\n    font-size:calc(9px * var(--total-scale-factor));\n  }\n\n.annotationLayer .popupTriggerArea{\n    cursor:pointer;\n  }\n\n:is(.annotationLayer .popupTriggerArea):hover{\n      -webkit-backdrop-filter:var(--hcm-highlight-filter);\n              backdrop-filter:var(--hcm-highlight-filter);\n    }\n\n.annotationLayer section svg{\n    position:absolute;\n    width:100%;\n    height:100%;\n    top:0;\n    left:0;\n  }\n\n.annotationLayer .annotationTextContent{\n    position:absolute;\n    width:100%;\n    height:100%;\n    opacity:0;\n    color:transparent;\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n    pointer-events:none;\n  }\n\n:is(.annotationLayer .annotationTextContent) span{\n      width:100%;\n      display:inline-block;\n    }\n\n.annotationLayer svg.quadrilateralsContainer{\n    contain:strict;\n    width:0;\n    height:0;\n    position:absolute;\n    top:0;\n    left:0;\n    z-index:-1;\n  }\n\n:root{\n  --xfa-unfocused-field-background:url(\"data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>\");\n  --xfa-focus-outline:auto;\n}\n\n@media screen and (forced-colors: active){\n  :root{\n    --xfa-focus-outline:2px solid CanvasText;\n  }\n  .xfaLayer *:required{\n    outline:1.5px solid selectedItem;\n  }\n}\n\n.xfaLayer{\n  --csstools-color-scheme--light:initial;\n  color-scheme:only light;\n\n  background-color:transparent;\n}\n\n.xfaLayer .highlight{\n  margin:-1px;\n  padding:1px;\n  background-color:rgb(239 203 237);\n  border-radius:4px;\n}\n\n.xfaLayer .highlight.appended{\n  position:initial;\n}\n\n.xfaLayer .highlight.begin{\n  border-radius:4px 0 0 4px;\n}\n\n.xfaLayer .highlight.end{\n  border-radius:0 4px 4px 0;\n}\n\n.xfaLayer .highlight.middle{\n  border-radius:0;\n}\n\n.xfaLayer .highlight.selected{\n  background-color:rgb(203 223 203);\n}\n\n.xfaPage{\n  overflow:hidden;\n  position:relative;\n}\n\n.xfaContentarea{\n  position:absolute;\n}\n\n.xfaPrintOnly{\n  display:none;\n}\n\n.xfaLayer{\n  position:absolute;\n  text-align:initial;\n  top:0;\n  left:0;\n  transform-origin:0 0;\n  line-height:1.2;\n}\n\n.xfaLayer *{\n  color:inherit;\n  font:inherit;\n  font-style:inherit;\n  font-weight:inherit;\n  font-kerning:inherit;\n  letter-spacing:-0.01px;\n  text-align:inherit;\n  text-decoration:inherit;\n  box-sizing:border-box;\n  background-color:transparent;\n  padding:0;\n  margin:0;\n  pointer-events:auto;\n  line-height:inherit;\n}\n\n.xfaLayer *:required{\n  outline:1.5px solid red;\n}\n\n.xfaLayer div,\n.xfaLayer svg,\n.xfaLayer svg *{\n  pointer-events:none;\n}\n\n.xfaLayer a{\n  color:blue;\n}\n\n.xfaRich li{\n  margin-left:3em;\n}\n\n.xfaFont{\n  color:black;\n  font-weight:normal;\n  font-kerning:none;\n  font-size:10px;\n  font-style:normal;\n  letter-spacing:0;\n  text-decoration:none;\n  vertical-align:0;\n}\n\n.xfaCaption{\n  overflow:hidden;\n  flex:0 0 auto;\n}\n\n.xfaCaptionForCheckButton{\n  overflow:hidden;\n  flex:1 1 auto;\n}\n\n.xfaLabel{\n  height:100%;\n  width:100%;\n}\n\n.xfaLeft{\n  display:flex;\n  flex-direction:row;\n  align-items:center;\n}\n\n.xfaRight{\n  display:flex;\n  flex-direction:row-reverse;\n  align-items:center;\n}\n\n:is(.xfaLeft, .xfaRight) > :is(.xfaCaption, .xfaCaptionForCheckButton){\n  max-height:100%;\n}\n\n.xfaTop{\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n}\n\n.xfaBottom{\n  display:flex;\n  flex-direction:column-reverse;\n  align-items:flex-start;\n}\n\n:is(.xfaTop, .xfaBottom) > :is(.xfaCaption, .xfaCaptionForCheckButton){\n  width:100%;\n}\n\n.xfaBorder{\n  background-color:transparent;\n  position:absolute;\n  pointer-events:none;\n}\n\n.xfaWrapped{\n  width:100%;\n  height:100%;\n}\n\n:is(.xfaTextfield, .xfaSelect):focus{\n  background-image:none;\n  background-color:transparent;\n  outline:var(--xfa-focus-outline);\n  outline-offset:-1px;\n}\n\n:is(.xfaCheckbox, .xfaRadio):focus{\n  outline:var(--xfa-focus-outline);\n}\n\n.xfaTextfield,\n.xfaSelect{\n  height:100%;\n  width:100%;\n  flex:1 1 auto;\n  border:none;\n  resize:none;\n  background-image:var(--xfa-unfocused-field-background);\n}\n\n.xfaSelect{\n  padding-inline:2px;\n}\n\n:is(.xfaTop, .xfaBottom) > :is(.xfaTextfield, .xfaSelect){\n  flex:0 1 auto;\n}\n\n.xfaButton{\n  cursor:pointer;\n  width:100%;\n  height:100%;\n  border:none;\n  text-align:center;\n}\n\n.xfaLink{\n  width:100%;\n  height:100%;\n  position:absolute;\n  top:0;\n  left:0;\n}\n\n.xfaCheckbox,\n.xfaRadio{\n  width:100%;\n  height:100%;\n  flex:0 0 auto;\n  border:none;\n}\n\n.xfaRich{\n  white-space:pre-wrap;\n  width:100%;\n  height:100%;\n}\n\n.xfaImage{\n  -o-object-position:left top;\n     object-position:left top;\n  -o-object-fit:contain;\n     object-fit:contain;\n  width:100%;\n  height:100%;\n}\n\n.xfaLrTb,\n.xfaRlTb,\n.xfaTb{\n  display:flex;\n  flex-direction:column;\n  align-items:stretch;\n}\n\n.xfaLr{\n  display:flex;\n  flex-direction:row;\n  align-items:stretch;\n}\n\n.xfaRl{\n  display:flex;\n  flex-direction:row-reverse;\n  align-items:stretch;\n}\n\n.xfaTb > div{\n  justify-content:left;\n}\n\n.xfaPosition{\n  position:relative;\n}\n\n.xfaArea{\n  position:relative;\n}\n\n.xfaValignMiddle{\n  display:flex;\n  align-items:center;\n}\n\n.xfaTable{\n  display:flex;\n  flex-direction:column;\n  align-items:stretch;\n}\n\n.xfaTable .xfaRow{\n  display:flex;\n  flex-direction:row;\n  align-items:stretch;\n}\n\n.xfaTable .xfaRlRow{\n  display:flex;\n  flex-direction:row-reverse;\n  align-items:stretch;\n  flex:1;\n}\n\n.xfaTable .xfaRlRow > div{\n  flex:1;\n}\n\n:is(.xfaNonInteractive, .xfaDisabled, .xfaReadOnly) :is(input, textarea){\n  background:initial;\n}\n\n@media print{\n  .xfaTextfield,\n  .xfaSelect{\n    background:transparent;\n  }\n\n  .xfaSelect{\n    -webkit-appearance:none;\n       -moz-appearance:none;\n            appearance:none;\n    text-indent:1px;\n    text-overflow:\"\";\n  }\n}\n\n.canvasWrapper svg{\n    transform:none;\n  }\n\n.moving:is(.canvasWrapper svg){\n      z-index:100000;\n    }\n\n[data-main-rotation=\"90\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation=\"90\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){\n          transform:matrix(0, 1, -1, 0, 1, 0);\n        }\n\n[data-main-rotation=\"180\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation=\"180\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){\n          transform:matrix(-1, 0, 0, -1, 1, 1);\n        }\n\n[data-main-rotation=\"270\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation=\"270\"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){\n          transform:matrix(0, -1, 1, 0, 0, 1);\n        }\n\n.draw:is(.canvasWrapper svg){\n      position:absolute;\n      mix-blend-mode:normal;\n    }\n\n.draw[data-draw-rotation=\"90\"]:is(.canvasWrapper svg){\n        transform:rotate(90deg);\n      }\n\n.draw[data-draw-rotation=\"180\"]:is(.canvasWrapper svg){\n        transform:rotate(180deg);\n      }\n\n.draw[data-draw-rotation=\"270\"]:is(.canvasWrapper svg){\n        transform:rotate(270deg);\n      }\n\n.highlight:is(.canvasWrapper svg){\n      --blend-mode:multiply;\n    }\n\n@media screen and (forced-colors: active){\n\n.highlight:is(.canvasWrapper svg){\n        --blend-mode:difference;\n    }\n      }\n\n.highlight:is(.canvasWrapper svg){\n\n      position:absolute;\n      mix-blend-mode:var(--blend-mode);\n    }\n\n.highlight:is(.canvasWrapper svg):not(.free){\n        fill-rule:evenodd;\n      }\n\n.highlightOutline:is(.canvasWrapper svg){\n      position:absolute;\n      mix-blend-mode:normal;\n      fill-rule:evenodd;\n      fill:none;\n    }\n\n.highlightOutline.hovered:is(.canvasWrapper svg):not(.free):not(.selected){\n          stroke:var(--hover-outline-color);\n          stroke-width:var(--outline-width);\n        }\n\n.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .mainOutline{\n            stroke:var(--outline-around-color);\n            stroke-width:calc(\n              var(--outline-width) + 2 * var(--outline-around-width)\n            );\n          }\n\n.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .secondaryOutline{\n            stroke:var(--outline-color);\n            stroke-width:var(--outline-width);\n          }\n\n.highlightOutline.free.hovered:is(.canvasWrapper svg):not(.selected){\n          stroke:var(--hover-outline-color);\n          stroke-width:calc(2 * var(--outline-width));\n        }\n\n.highlightOutline.free.selected:is(.canvasWrapper svg) .mainOutline{\n            stroke:var(--outline-around-color);\n            stroke-width:calc(\n              2 * (var(--outline-width) + var(--outline-around-width))\n            );\n          }\n\n.highlightOutline.free.selected:is(.canvasWrapper svg) .secondaryOutline{\n            stroke:var(--outline-color);\n            stroke-width:calc(2 * var(--outline-width));\n          }\n\n.toggle-button{\n  --button-background-color:color-mix(in srgb, currentColor 7%, transparent);\n  --button-background-color-hover:color-mix(\n    in srgb,\n    currentColor 14%,\n    transparent\n  );\n  --button-background-color-active:color-mix(\n    in srgb,\n    currentColor 21%,\n    transparent\n  );\n  --csstools-light-dark-toggle--66:var(--csstools-color-scheme--light) #0df;\n  --color-accent-primary:var(--csstools-light-dark-toggle--66, #0060df);\n  --csstools-light-dark-toggle--67:var(--csstools-color-scheme--light) #80ebff;\n  --color-accent-primary-hover:var(--csstools-light-dark-toggle--67, #0250bb);\n  --csstools-light-dark-toggle--68:var(--csstools-color-scheme--light) #aaf2ff;\n  --color-accent-primary-active:var(--csstools-light-dark-toggle--68, #054096);\n  --border-radius-circle:9999px;\n  --border-width:1px;\n  --size-item-small:16px;\n  --size-item-large:32px;\n  --csstools-light-dark-toggle--69:var(--csstools-color-scheme--light) #1c1b22;\n  --color-canvas:var(--csstools-light-dark-toggle--69, white);\n  --background-color-canvas:var(--color-canvas);\n  --csstools-light-dark-toggle--70:var(--csstools-color-scheme--light) #f9f9fa;\n  --border-color-interactive:var(--csstools-light-dark-toggle--70, #8f8f9d);\n  --border-color-interactive-hover:var(--border-color-interactive);\n  --border-color-interactive-active:var(--border-color-interactive);\n}\n\n@supports (color: light-dark(red, red)){\n.toggle-button{\n  --color-accent-primary:light-dark(#0060df, #0df);\n  --color-accent-primary-hover:light-dark(#0250bb, #80ebff);\n  --color-accent-primary-active:light-dark(#054096, #aaf2ff);\n  --color-canvas:light-dark(white, #1c1b22);\n  --border-color-interactive:light-dark(#8f8f9d, #f9f9fa);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.toggle-button *{\n  --csstools-light-dark-toggle--66:var(--csstools-color-scheme--light) #0df;\n  --color-accent-primary:var(--csstools-light-dark-toggle--66, #0060df);\n  --csstools-light-dark-toggle--67:var(--csstools-color-scheme--light) #80ebff;\n  --color-accent-primary-hover:var(--csstools-light-dark-toggle--67, #0250bb);\n  --csstools-light-dark-toggle--68:var(--csstools-color-scheme--light) #aaf2ff;\n  --color-accent-primary-active:var(--csstools-light-dark-toggle--68, #054096);\n  --csstools-light-dark-toggle--69:var(--csstools-color-scheme--light) #1c1b22;\n  --color-canvas:var(--csstools-light-dark-toggle--69, white);\n  --csstools-light-dark-toggle--70:var(--csstools-color-scheme--light) #f9f9fa;\n  --border-color-interactive:var(--csstools-light-dark-toggle--70, #8f8f9d);\n  }\n}\n\n@media (forced-colors: active){\n\n.toggle-button{\n    --color-accent-primary:ButtonText;\n    --color-accent-primary-hover:SelectedItem;\n    --color-accent-primary-active:SelectedItem;\n    --button-background-color:ButtonFace;\n    --border-color-interactive:ButtonText;\n    --border-color-interactive-hover:SelectedItem;\n    --border-color-interactive-active:ButtonText;\n    --color-canvas:ButtonText;\n    --background-color-canvas:Canvas;\n}\n  }\n\n.toggle-button{\n  --toggle-background-color:var(--button-background-color);\n  --toggle-background-color-hover:var(--button-background-color-hover);\n  --toggle-background-color-active:var(--button-background-color-active);\n  --toggle-background-color-pressed:var(--color-accent-primary);\n  --toggle-background-color-pressed-hover:var(--color-accent-primary-hover);\n  --toggle-background-color-pressed-active:var(--color-accent-primary-active);\n  --toggle-border-color:var(--border-color-interactive);\n  --toggle-border-color-hover:var(--toggle-border-color);\n  --toggle-border-color-active:var(--toggle-border-color);\n  --toggle-border-radius:var(--border-radius-circle);\n  --toggle-border-width:var(--border-width);\n  --toggle-height:var(--size-item-small);\n  --toggle-width:var(--size-item-large);\n  --toggle-dot-background-color:var(--toggle-border-color);\n  --toggle-dot-background-color-hover:var(--toggle-dot-background-color);\n  --toggle-dot-background-color-active:var(--toggle-dot-background-color);\n  --toggle-dot-background-color-on-pressed:var(--background-color-canvas);\n  --toggle-dot-margin:1px;\n  --toggle-dot-height:calc(\n    var(--toggle-height) - 2 * var(--toggle-dot-margin) - 2 *\n      var(--toggle-border-width)\n  );\n  --toggle-dot-width:var(--toggle-dot-height);\n  --toggle-dot-transform-x:calc(\n    var(--toggle-width) - 4 * var(--toggle-dot-margin) - var(--toggle-dot-width)\n  );\n  --input-width:var(--toggle-width);\n\n  -webkit-appearance:none;\n\n     -moz-appearance:none;\n\n          appearance:none;\n  padding:0;\n  border:var(--toggle-border-width) solid var(--toggle-border-color);\n  height:var(--toggle-height);\n  width:var(--toggle-width);\n  border-radius:var(--toggle-border-radius);\n  background-color:var(--toggle-background-color);\n  box-sizing:border-box;\n}\n\n.toggle-button:focus-visible{\n    outline:var(--focus-outline);\n    outline-offset:var(--focus-outline-offset);\n  }\n\n.toggle-button:enabled:hover{\n    background-color:var(--toggle-background-color-hover);\n    border-color:var(--toggle-border-color);\n  }\n\n.toggle-button:enabled:hover:active{\n    background-color:var(--toggle-background-color-active);\n    border-color:var(--toggle-border-color);\n  }\n\n.toggle-button::before{\n    display:block;\n    content:\"\";\n    background-color:var(--toggle-dot-background-color);\n    height:var(--toggle-dot-height);\n    width:var(--toggle-dot-width);\n    margin:var(--toggle-dot-margin);\n    border-radius:var(--toggle-border-radius);\n    translate:0;\n  }\n\n.toggle-button[aria-pressed=\"true\"]{\n  background-color:var(--toggle-background-color-pressed);\n  border-color:transparent;\n}\n\n.toggle-button[aria-pressed=\"true\"]:enabled:hover{\n    background-color:var(--toggle-background-color-pressed-hover);\n    border-color:transparent;\n  }\n\n.toggle-button[aria-pressed=\"true\"]:enabled:hover:active{\n    background-color:var(--toggle-background-color-pressed-active);\n    border-color:transparent;\n  }\n\n.toggle-button[aria-pressed=\"true\"]::before{\n    translate:var(--toggle-dot-transform-x);\n    background-color:var(--toggle-dot-background-color-on-pressed);\n  }\n\n.toggle-button[aria-pressed=\"true\"]:enabled:hover::before,.toggle-button[aria-pressed=\"true\"]:enabled:hover:active::before{\n    background-color:var(--toggle-dot-background-color-on-pressed);\n  }\n\n.toggle-button[aria-pressed=\"true\"]:-moz-locale-dir(rtl)::before,[dir=\"rtl\"] .toggle-button[aria-pressed=\"true\"]::before{\n    translate:calc(-1 * var(--toggle-dot-transform-x));\n  }\n\n@media (prefers-reduced-motion: no-preference){\n  .toggle-button::before{\n    transition:translate 100ms;\n  }\n}\n\n@media (prefers-contrast){\n  .toggle-button:enabled:hover{\n    border-color:var(--toggle-border-color-hover);\n  }\n\n  .toggle-button:enabled:hover:active{\n    border-color:var(--toggle-border-color-active);\n  }\n\n  .toggle-button[aria-pressed=\"true\"]:enabled{\n    border-color:var(--toggle-border-color);\n    position:relative;\n  }\n\n    .toggle-button[aria-pressed=\"true\"]:enabled:hover{\n      border-color:var(--toggle-border-color-hover);\n    }\n\n      .toggle-button[aria-pressed=\"true\"]:enabled:hover:active{\n        background-color:var(--toggle-dot-background-color-active);\n        border-color:var(--toggle-dot-background-color-hover);\n      }\n\n  .toggle-button:enabled:hover::before,\n  .toggle-button:enabled:hover:active::before{\n    background-color:var(--toggle-dot-background-color-hover);\n  }\n}\n\n@media (forced-colors){\n  .toggle-button{\n    --toggle-dot-background-color:var(--color-accent-primary);\n    --toggle-dot-background-color-hover:var(--color-accent-primary-hover);\n    --toggle-dot-background-color-active:var(--color-accent-primary-active);\n    --toggle-dot-background-color-on-pressed:var(--button-background-color);\n    --toggle-border-color-hover:var(--border-color-interactive-hover);\n    --toggle-border-color-active:var(--border-color-interactive-active);\n  }\n\n  .toggle-button[aria-pressed=\"true\"]:enabled::after{\n    border:1px solid var(--button-background-color);\n    content:\"\";\n    position:absolute;\n    height:var(--toggle-height);\n    width:var(--toggle-width);\n    display:block;\n    border-radius:var(--toggle-border-radius);\n    inset:-2px;\n  }\n\n  .toggle-button[aria-pressed=\"true\"]:enabled:hover:active::after{\n    border-color:var(--toggle-border-color-active);\n  }\n}\n\n:root{\n  --clear-signature-button-icon:url(images/editor-toolbar-delete.svg);\n  --csstools-light-dark-toggle--71:var(--csstools-color-scheme--light) #2b2a33;\n  --signature-bg:var(--csstools-light-dark-toggle--71, #f9f9fb);\n  --csstools-light-dark-toggle--72:var(--csstools-color-scheme--light) var(--signature-bg);\n  --signature-hover-bg:var(--csstools-light-dark-toggle--72, #f0f0f4);\n  --button-signature-bg:transparent;\n  --button-signature-color:var(--main-color);\n  --csstools-light-dark-toggle--73:var(--csstools-color-scheme--light) #5b5b66;\n  --button-signature-active-bg:var(--csstools-light-dark-toggle--73, #cfcfd8);\n  --button-signature-active-border:none;\n  --button-signature-active-color:var(--button-signature-color);\n  --button-signature-border:none;\n  --csstools-light-dark-toggle--74:var(--csstools-color-scheme--light) #52525e;\n  --button-signature-hover-bg:var(--csstools-light-dark-toggle--74, #e0e0e6);\n  --button-signature-hover-color:var(--button-signature-color);\n}\n\n@supports (color: light-dark(red, red)){\n:root{\n  --signature-bg:light-dark(#f9f9fb, #2b2a33);\n  --signature-hover-bg:light-dark(#f0f0f4, var(--signature-bg));\n  --button-signature-active-bg:light-dark(#cfcfd8, #5b5b66);\n  --button-signature-hover-bg:light-dark(#e0e0e6, #52525e);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:root *{\n  --csstools-light-dark-toggle--71:var(--csstools-color-scheme--light) #2b2a33;\n  --signature-bg:var(--csstools-light-dark-toggle--71, #f9f9fb);\n  --csstools-light-dark-toggle--72:var(--csstools-color-scheme--light) var(--signature-bg);\n  --signature-hover-bg:var(--csstools-light-dark-toggle--72, #f0f0f4);\n  --csstools-light-dark-toggle--73:var(--csstools-color-scheme--light) #5b5b66;\n  --button-signature-active-bg:var(--csstools-light-dark-toggle--73, #cfcfd8);\n  --csstools-light-dark-toggle--74:var(--csstools-color-scheme--light) #52525e;\n  --button-signature-hover-bg:var(--csstools-light-dark-toggle--74, #e0e0e6);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:root{\n    --signature-bg:HighlightText;\n    --signature-hover-bg:var(--signature-bg);\n    --button-signature-bg:HighlightText;\n    --button-signature-color:ButtonText;\n    --button-signature-active-bg:ButtonText;\n    --button-signature-active-color:HighlightText;\n    --button-signature-border:1px solid ButtonText;\n    --button-signature-hover-bg:Highlight;\n    --button-signature-hover-color:HighlightText;\n}\n  }\n\n.signatureDialog{\n  --primary-color:var(--text-primary-color);\n  --border-color:#8f8f9d;\n  --open-link-fg:var(--link-fg-color);\n  --open-link-hover-fg:var(--link-hover-fg-color);\n}\n\n@media screen and (forced-colors: active){\n\n.signatureDialog{\n    --primary-color:ButtonText;\n    --border-color:ButtonText;\n    --open-link-fg:ButtonText;\n    --open-link-hover-fg:ButtonText;\n}\n  }\n\n.signatureDialog{\n\n  width:570px;\n  max-width:100%;\n  min-width:300px;\n  padding:16px 0;\n}\n\n.signatureDialog .mainContainer{\n    width:100%;\n    display:flex;\n    flex-direction:column;\n    align-items:flex-start;\n    gap:12px;\n  }\n\n:is(.signatureDialog .mainContainer) span:not([role=\"sectionhead\"]){\n      font-size:13px;\n      font-style:normal;\n      font-weight:400;\n      line-height:normal;\n    }\n\n:is(.signatureDialog .mainContainer) .title{\n      margin-inline-start:16px;\n    }\n\n.signatureDialog .inputWithClearButton{\n    --button-dimension:24px;\n    --clear-button-icon:url(images/messageBar_closingButton.svg);\n\n    width:100%;\n    position:relative;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n  }\n\n:is(.signatureDialog .inputWithClearButton)  > input{\n      width:100%;\n      height:32px;\n      padding-inline:8px calc(4px + var(--button-dimension));\n      box-sizing:border-box;\n      border-radius:4px;\n      border:1px solid var(--border-color);\n    }\n\n:is(.signatureDialog .inputWithClearButton) .clearInputButton{\n      position:absolute;\n      inset-block-start:4px;\n      inset-inline-end:4px;\n      display:inline-block;\n      width:var(--button-dimension);\n      height:var(--button-dimension);\n      background-color:var(--input-text-fg-color);\n      -webkit-mask-size:cover;\n              mask-size:cover;\n      -webkit-mask-image:var(--clear-button-icon);\n              mask-image:var(--clear-button-icon);\n      padding:0;\n      border:0;\n    }\n\n#addSignatureDialog{\n  --secondary-color:var(--text-secondary-color);\n  --bg-hover:#e0e0e6;\n  --tab-top-line-active-color:#0060df;\n  --tab-top-line-active-hover-color:var(--tab-text-hover-color);\n  --tab-top-line-hover-color:#8f8f9d;\n  --tab-top-line-inactive-color:#cfcfd8;\n  --tab-bottom-line-active-color:var(--tab-top-line-inactive-color);\n  --tab-bottom-line-hover-color:var(--tab-top-line-inactive-color);\n  --tab-bottom-line-inactive-color:var(--tab-top-line-inactive-color);\n  --tab-bg:var(--dialog-bg-color);\n  --tab-bg-active-color:var(--tab-bg);\n  --tab-bg-active-hover-color:var(--bg-hover);\n  --tab-bg-hover:var(--bg-hover);\n  --tab-panel-border:none;\n  --tab-panel-border-radius:4px;\n  --tab-text-color:var(--primary-color);\n  --tab-text-active-color:var(--tab-top-line-active-color);\n  --tab-text-active-hover-color:var(--tab-text-hover-color);\n  --tab-text-hover-color:var(--tab-text-color);\n  --signature-placeholder-color:var(--secondary-color);\n  --signature-draw-placeholder-color:var(--primary-color);\n  --signature-color:var(--primary-color);\n  --clear-signature-button-border-width:0;\n  --clear-signature-button-border-style:solid;\n  --clear-signature-button-border-color:transparent;\n  --clear-signature-button-border-disabled-color:transparent;\n  --clear-signature-button-color:var(--primary-color);\n  --clear-signature-button-hover-color:var(--clear-signature-button-color);\n  --clear-signature-button-active-color:var(--clear-signature-button-color);\n  --clear-signature-button-disabled-color:var(--clear-signature-button-color);\n  --clear-signature-button-focus-color:var(--clear-signature-button-color);\n  --clear-signature-button-bg:var(--dialog-bg-color);\n  --clear-signature-button-bg-hover:var(--bg-hover);\n  --clear-signature-button-bg-active:#cfcfd8;\n  --clear-signature-button-bg-focus:#f0f0f4;\n  --clear-signature-button-bg-disabled:color-mix(\n    in srgb,\n    #f0f0f4,\n    transparent 40%\n  );\n  --save-warning-color:var(--secondary-color);\n  --thickness-bg:var(--dialog-bg-color);\n  --thickness-label-color:var(--primary-color);\n  --thickness-slider-color:var(--primary-color);\n  --thickness-border:none;\n  --draw-cursor:url(images/cursor-editorInk.svg) 0 16, pointer;\n}\n\n@media (prefers-color-scheme: dark){\n\n#addSignatureDialog{\n    --dialog-bg-color:#42414d;\n    --bg-hover:#52525e;\n    --primary-color:#fbfbfe;\n    --secondary-color:#cfcfd8;\n    --tab-top-line-active-color:#0df;\n    --tab-top-line-inactive-color:#8f8f9d;\n    --clear-signature-button-bg-active:#5b5b66;\n    --clear-signature-button-bg-focus:#2b2a33;\n    --clear-signature-button-bg-disabled:color-mix(\n      in srgb,\n      #2b2a33,\n      transparent 40%\n    );\n}\n  }\n\n@media screen and (forced-colors: active){\n\n#addSignatureDialog{\n    --secondary-color:ButtonText;\n    --bg:HighlightText;\n    --bg-hover:var(--bg);\n    --tab-top-line-active-color:ButtonText;\n    --tab-top-line-active-hover-color:HighlightText;\n    --tab-top-line-hover-color:SelectedItem;\n    --tab-top-line-inactive-color:ButtonText;\n    --tab-bottom-line-active-color:var(--tab-top-line-active-color);\n    --tab-bottom-line-hover-color:var(--tab-top-line-hover-color);\n    --tab-bg:var(--bg);\n    --tab-bg-active-color:SelectedItem;\n    --tab-bg-active-hover-color:SelectedItem;\n    --tab-panel-border:1px solid ButtonText;\n    --tab-panel-border-radius:8px;\n    --tab-text-color:ButtonText;\n    --tab-text-active-color:HighlightText;\n    --tab-text-active-hover-color:HighlightText;\n    --tab-text-hover-color:SelectedItem;\n    --signature-color:ButtonText;\n    --clear-signature-button-border-width:1px;\n    --clear-signature-button-border-style:solid;\n    --clear-signature-button-border-color:ButtonText;\n    --clear-signature-button-border-disabled-color:GrayText;\n    --clear-signature-button-color:ButtonText;\n    --clear-signature-button-hover-color:HighlightText;\n    --clear-signature-button-active-color:SelectedItem;\n    --clear-signature-button-focus-color:CanvasText;\n    --clear-signature-button-disabled-color:GrayText;\n    --clear-signature-button-bg:var(--bg);\n    --clear-signature-button-bg-hover:SelectedItem;\n    --clear-signature-button-bg-active:var(--bg);\n    --clear-signature-button-bg-focus:var(--bg);\n    --clear-signature-button-bg-disabled:var(--bg);\n    --thickness-bg:Canvas;\n    --thickness-label-color:CanvasText;\n    --thickness-slider-color:ButtonText;\n    --thickness-border:1px solid var(--border-color);\n}\n  }\n\n#addSignatureDialog #addSignatureDialogLabel{\n    overflow:hidden;\n    position:absolute;\n    inset:0;\n    width:0;\n    height:0;\n  }\n\n#addSignatureDialog.waiting::after{\n    content:\"\";\n    cursor:wait;\n    position:absolute;\n    inset:0;\n    width:100%;\n    height:100%;\n  }\n\n:is(#addSignatureDialog .mainContainer) [role=\"tablist\"]{\n      width:100%;\n      display:flex;\n      align-items:flex-start;\n      gap:0;\n    }\n\n:is(:is(#addSignatureDialog .mainContainer) [role=\"tablist\"])  > [role=\"tab\"]{\n        flex:1 0 0;\n        align-self:stretch;\n        background-color:var(--tab-bg);\n        padding-inline:0;\n        cursor:default;\n\n        border-inline:0;\n        border-block-width:1px;\n        border-block-style:solid;\n        border-block-start-color:var(--tab-top-line-inactive-color);\n        border-block-end-color:var(--tab-bottom-line-inactive-color);\n        border-radius:0;\n\n        font:menu;\n        font-size:13px;\n        font-style:normal;\n        line-height:normal;\n        font-weight:400;\n        color:var(--tab-text-color);\n      }\n\n:is(:is(:is(#addSignatureDialog .mainContainer) [role=\"tablist\"]) > [role=\"tab\"]):hover{\n          border-block-start-width:2px;\n          border-block-start-color:var(--tab-top-line-hover-color);\n          border-block-end-color:var(--tab-bottom-line-hover-color);\n          background-color:var(--tab-bg-hover);\n          color:var(--tab-text-hover-color);\n        }\n\n:is(:is(:is(#addSignatureDialog .mainContainer) [role=\"tablist\"]) > [role=\"tab\"]):focus-visible{\n          outline:2px solid var(--tab-top-line-active-color);\n          outline-offset:-2px;\n        }\n\n[aria-selected=\"true\"]:is(:is(:is(#addSignatureDialog .mainContainer) [role=\"tablist\"]) > [role=\"tab\"]){\n          border-block-start-width:2px;\n          border-block-start-color:var(--tab-top-line-active-color);\n          border-block-end-color:var(--tab-bottom-line-active-color);\n          background-color:var(--tab-bg-active-color);\n          font-weight:590;\n          color:var(--tab-text-active-color);\n        }\n\n[aria-selected=\"true\"]:is(:is(:is(#addSignatureDialog .mainContainer) [role=\"tablist\"]) > [role=\"tab\"]):hover{\n            border-block-start-color:var(--tab-top-line-active-hover-color);\n            background-color:var(--tab-bg-active-hover-color);\n            color:var(--tab-text-active-hover-color);\n          }\n\n:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer{\n      width:100%;\n      height:auto;\n      display:flex;\n      flex-direction:column;\n      align-items:flex-end;\n      align-self:stretch;\n      gap:12px;\n      padding-inline:16px;\n      box-sizing:border-box;\n    }\n\n:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer)  > [role=\"tabpanel\"]{\n        position:relative;\n        width:100%;\n        height:220px;\n        background-color:var(--signature-bg);\n        border:var(--tab-panel-border);\n        border-radius:var(--tab-panel-border-radius);\n      }\n\n:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"])  > svg{\n          position:absolute;\n          inset:0;\n          width:100%;\n          height:100%;\n          background-color:transparent;\n        }\n\n#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]){\n          display:none;\n        }\n\n#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureTypeInput{\n            position:absolute;\n            inset:0;\n            width:100%;\n            height:100%;\n            border:0;\n            padding:0;\n            text-align:center;\n            color:var(--signature-color);\n            background-color:transparent;\n            border-radius:var(--tab-panel-border-radius);\n\n            font-family:\"Brush script\", \"Apple Chancery\", \"Segoe script\", \"Freestyle Script\", \"Palace Script MT\", \"Brush Script MT\", TK, cursive, serif;\n            font-size:44px;\n            font-style:italic;\n            font-weight:400;\n          }\n\n:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureTypeInput)::-moz-placeholder{\n              color:var(--signature-placeholder-color);\n              text-align:center;\n\n              font:menu;\n              font-style:normal;\n              font-weight:274;\n              font-size:44px;\n              line-height:normal;\n            }\n\n:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureTypeInput)::placeholder{\n              color:var(--signature-placeholder-color);\n              text-align:center;\n\n              font:menu;\n              font-style:normal;\n              font-weight:274;\n              font-size:44px;\n              line-height:normal;\n            }\n\n#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]){\n          display:none;\n        }\n\n#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"])  > span{\n            position:absolute;\n            top:0;\n            left:0;\n            width:100%;\n            height:100%;\n            display:grid;\n            align-items:center;\n            justify-content:center;\n\n            background-color:transparent;\n            color:var(--signature-placeholder-color);\n            -webkit-user-select:none;\n               -moz-user-select:none;\n                    user-select:none;\n          }\n\n#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"])  > svg{\n            stroke:var(--signature-color);\n            fill:none;\n            stroke-opacity:1;\n            stroke-linecap:round;\n            stroke-linejoin:round;\n            stroke-miterlimit:10;\n          }\n\n:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) > svg):hover{\n              cursor:var(--draw-cursor);\n            }\n\n#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness{\n            position:absolute;\n            width:100%;\n            inset-block-end:0;\n            display:grid;\n            align-items:center;\n            justify-content:center;\n            pointer-events:none;\n          }\n\n:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness)  > span{\n              color:var(--signature-draw-placeholder-color);\n            }\n\n:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness)  > div{\n              width:auto;\n              height:auto;\n              display:flex;\n              align-items:center;\n              justify-content:center;\n              gap:8px;\n              padding:6px 8px 7px;\n              margin:0;\n              background-color:var(--thickness-bg);\n              border-radius:4px 4px 0 0;\n              border-inline:var(--thickness-border);\n              border-top:var(--thickness-border);\n              pointer-events:auto;\n              position:relative;\n              top:1px;\n            }\n\n:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div)  > label{\n                color:var(--thickness-label-color);\n              }\n\n:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div)  > input{\n                width:100px;\n                height:14px;\n                background-color:transparent;\n              }\n\n:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div) > input)::-webkit-slider-runnable-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div) > input)::-moz-range-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div) > input)::-moz-range-progress{\n                  background-color:var(--thickness-slider-color);\n                }\n\n:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div) > input)::-webkit-slider-thumb,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div) > input)::-moz-range-thumb{\n                  background-color:var(--thickness-bg);\n                }\n\n:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #thickness) > div)  > input{\n\n                border-radius:4.5px;\n                border:0;\n                color:var(--signature-color);\n              }\n\n#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]){\n          display:none;\n        }\n\n#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"])  > svg{\n            stroke:none;\n            stroke-width:0;\n            fill:var(--signature-color);\n            fill-opacity:1;\n          }\n\n#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureImagePlaceholder{\n            position:absolute;\n            top:0;\n            left:0;\n            width:100%;\n            height:100%;\n            background-color:transparent;\n            display:flex;\n            flex-direction:column;\n            align-items:center;\n            justify-content:center;\n          }\n\n:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureImagePlaceholder) span{\n              color:var(--signature-placeholder-color);\n            }\n\n:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureImagePlaceholder) a{\n              color:var(--open-link-fg);\n              text-decoration:underline;\n              cursor:pointer;\n            }\n\n:is(:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureImagePlaceholder) a):hover{\n                color:var(--open-link-hover-fg);\n              }\n\n#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role=\"tabpanel\"]) #addSignatureFilePicker{\n            visibility:hidden;\n            position:relative;\n            width:0;\n            height:0;\n          }\n\n[data-selected=\"type\"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureTypeContainer,[data-selected=\"draw\"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureDrawContainer,[data-selected=\"image\"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureImageContainer{\n        display:block;\n      }\n\n:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls{\n        display:flex;\n        flex-direction:column;\n        justify-content:center;\n        align-items:flex-start;\n        gap:12px;\n        align-self:stretch;\n      }\n\n:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer{\n          display:flex;\n          align-items:flex-end;\n          gap:16px;\n          align-self:stretch;\n        }\n\n:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer{\n            display:flex;\n            flex-direction:column;\n            align-items:flex-start;\n            gap:4px;\n            flex:1 0 0;\n          }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer):has(input:disabled) > label{\n              opacity:0.4;\n            }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer)  > label{\n              width:auto;\n            }\n\n:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton{\n            display:flex;\n            height:32px;\n            padding:4px 8px;\n            align-items:center;\n            background-color:var(--clear-signature-button-bg);\n            border-width:var(--clear-signature-button-border-width);\n            border-style:var(--clear-signature-button-border-style);\n            border-color:var(--clear-signature-button-border-color);\n            border-radius:4px;\n          }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton)  > span{\n              display:flex;\n              height:24px;\n              align-items:center;\n              gap:4px;\n              flex-shrink:0;\n\n              color:var(--clear-signature-button-color);\n            }\n\n:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton) > span)::after{\n                content:\"\";\n                display:inline-block;\n                width:16px;\n                height:16px;\n                -webkit-mask-image:var(--clear-signature-button-icon);\n                        mask-image:var(--clear-signature-button-icon);\n                -webkit-mask-size:cover;\n                        mask-size:cover;\n                background-color:var(--clear-signature-button-color);\n                flex-shrink:0;\n              }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover{\n              background-color:var(--clear-signature-button-bg-hover);\n            }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover  > span{\n                color:var(--clear-signature-button-hover-color);\n              }\n\n:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover > span)::after{\n                  background-color:var(--clear-signature-button-hover-color);\n                }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active{\n              background-color:var(--clear-signature-button-bg-active);\n            }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active  > span{\n                color:var(--clear-signature-button-active-color);\n              }\n\n:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active > span)::after{\n                  background-color:var(--clear-signature-button-active-color);\n                }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible{\n              background-color:var(--clear-signature-button-bg-focus);\n            }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible  > span{\n                color:var(--clear-signature-button-focus-color);\n              }\n\n:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible > span)::after{\n                  background-color:var(--clear-signature-button-focus-color);\n                }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled{\n              background-color:var(--clear-signature-button-bg-disabled);\n              border-color:var(--clear-signature-button-border-disabled-color);\n            }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled  > span{\n                color:var(--clear-signature-button-disabled-color);\n              }\n\n:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled > span)::after{\n                  background-color:var(\n                    --clear-signature-button-disabled-color\n                  );\n                }\n\n:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer{\n          display:grid;\n          grid-template-columns:max-content auto;\n          gap:4px;\n          width:100%;\n        }\n\n:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer)  > input{\n            margin:0;\n          }\n\n:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) > input):disabled + label{\n              opacity:0.4;\n            }\n\n:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer)  > label{\n            -webkit-user-select:none;\n               -moz-user-select:none;\n                    user-select:none;\n          }\n\n:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer):not(.fullStorage) #addSignatureSaveWarning{\n            display:none;\n          }\n\n.fullStorage:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) #addSignatureSaveWarning{\n            display:block;\n            opacity:1;\n            color:var(--save-warning-color);\n            font-size:11px;\n          }\n\n#editSignatureDescriptionDialog .mainContainer{\n    padding-inline:16px;\n    box-sizing:border-box;\n  }\n\n:is(#editSignatureDescriptionDialog .mainContainer) .title{\n      margin-inline-start:0;\n    }\n\n:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView{\n      width:auto;\n      display:flex;\n      justify-content:flex-end;\n      align-items:flex-start;\n      gap:12px;\n      align-self:stretch;\n    }\n\n:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) #editSignatureDescriptionContainer{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        gap:4px;\n        flex:1 1 auto;\n      }\n\n:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView)  > svg{\n        width:210px;\n        height:180px;\n        padding:8px;\n        background-color:var(--signature-bg);\n      }\n\n:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) > svg)  > path{\n          stroke:var(--button-signature-color);\n          stroke-width:1px;\n          stroke-linecap:round;\n          stroke-linejoin:round;\n          stroke-miterlimit:10;\n          vector-effect:non-scaling-stroke;\n          fill:none;\n        }\n\n.contours:is(:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) > svg) > path){\n            fill:var(--button-signature-color);\n            stroke-width:0.5px;\n          }\n\n#editorSignatureParamsToolbar{\n  padding:8px;\n}\n\n#editorSignatureParamsToolbar #addSignatureDoorHanger{\n    gap:8px;\n    padding:2px;\n  }\n\n:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer{\n      height:32px;\n      display:flex;\n      justify-content:space-between;\n      align-items:center;\n      align-self:stretch;\n      gap:8px;\n    }\n\n:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button{\n        border:var(--button-signature-border);\n        border-radius:4px;\n        background-color:var(--button-signature-bg);\n        color:var(--button-signature-color);\n      }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):hover{\n          background-color:var(--button-signature-hover-bg);\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active{\n          border:var(--button-signature-active-border);\n          background-color:var(--button-signature-active-bg);\n          color:var(--button-signature-active-color);\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active::before{\n            background-color:var(--button-signature-active-color);\n          }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible{\n          outline:var(--focus-ring-outline);\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible::before{\n            background-color:var(--button-signature-color);\n          }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .deleteButton)::before{\n          -webkit-mask-image:var(--clear-signature-button-icon);\n                  mask-image:var(--clear-signature-button-icon);\n        }\n\n:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton{\n        width:calc(0.8 * var(--editor-toolbar-min-width));\n        height:100%;\n        min-height:var(--menuitem-height);\n        aspect-ratio:unset;\n        display:flex;\n        align-items:center;\n        justify-content:flex-start;\n        outline:none;\n        border-radius:4px;\n        box-sizing:border-box;\n        font:message-box;\n        position:relative;\n        flex:1 1 auto;\n        padding:0;\n        gap:8px;\n        text-align:start;\n        white-space:normal;\n        cursor:default;\n        overflow:hidden;\n      }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)  > svg{\n          display:inline-block;\n          height:100%;\n          aspect-ratio:1;\n          background-color:var(--signature-bg);\n          flex:none;\n          padding:4px;\n          box-sizing:border-box;\n          border:none;\n          border-radius:4px;\n        }\n\n:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > svg)  > path{\n            stroke:var(--button-signature-color);\n            stroke-width:1px;\n            stroke-linecap:round;\n            stroke-linejoin:round;\n            stroke-miterlimit:10;\n            vector-effect:non-scaling-stroke;\n            fill:none;\n          }\n\n.contours:is(:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > svg) > path){\n              fill:var(--button-signature-color);\n              stroke-width:0.5px;\n            }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is(:hover,:active) > svg{\n          border-radius:4px 0 0 4px;\n          background-color:var(--signature-hover-bg);\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):hover  > span{\n            color:var(--button-signature-hover-color);\n          }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):active{\n          background-color:var(--button-signature-active-bg);\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is([disabled=\"disabled\"],[disabled]){\n          opacity:0.5;\n          pointer-events:none;\n        }\n\n:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton)  > span{\n          height:auto;\n          text-overflow:ellipsis;\n          white-space:nowrap;\n          flex:1 1 auto;\n          font:menu;\n          font-size:13px;\n          font-style:normal;\n          font-weight:400;\n          line-height:normal;\n          overflow:hidden;\n        }\n\n.editDescription.altText{\n  --alt-text-add-image:url(images/editor-toolbar-edit.svg) !important;\n}\n\n.editDescription.altText::before{\n    width:16px !important;\n    height:16px !important;\n  }\n\n.commentPopup,\n#commentManagerDialog{\n  width:360px;\n  max-width:100%;\n  min-width:200px;\n  position:absolute;\n  padding:8px 16px 16px;\n  margin-left:0;\n  margin-top:0;\n  box-sizing:border-box;\n\n  border-radius:8px;\n}\n\n#commentManagerDialog{\n  --comment-close-button-icon:url(images/comment-closeButton.svg);\n}\n\n#commentManagerDialog .mainContainer{\n    width:100%;\n    height:auto;\n    display:flex;\n    flex-direction:column;\n    align-items:flex-start;\n    gap:4px;\n  }\n\n:is(#commentManagerDialog .mainContainer) #commentManagerToolbar{\n      width:100%;\n      height:32px;\n      display:flex;\n      justify-content:flex-start;\n      align-items:flex-start;\n      gap:8px;\n      align-self:stretch;\n\n      cursor:move;\n    }\n\n:is(#commentManagerDialog .mainContainer) #commentManagerTextInput{\n      width:100%;\n      min-height:132px;\n      margin-bottom:12px;\n    }\n\n.annotationLayer.disabled :is(.annotationCommentButton){\n  display:none;\n}\n\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n    --csstools-color-scheme--light:initial;\n    color-scheme:light dark;\n    --csstools-light-dark-toggle--75:var(--csstools-color-scheme--light) #1c1b22;\n    --comment-button-bg:var(--csstools-light-dark-toggle--75, white);\n    --csstools-light-dark-toggle--76:var(--csstools-color-scheme--light) #fbfbfe;\n    --comment-button-fg:var(--csstools-light-dark-toggle--76, #5b5b66);\n    --csstools-light-dark-toggle--77:var(--csstools-color-scheme--light) #a6ecf4;\n    --comment-button-active-bg:var(--csstools-light-dark-toggle--77, #0041a4);\n    --csstools-light-dark-toggle--78:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-active-fg:var(--csstools-light-dark-toggle--78, white);\n    --csstools-light-dark-toggle--79:var(--csstools-color-scheme--light) #61dce9;\n    --comment-button-hover-bg:var(--csstools-light-dark-toggle--79, #0053cb);\n    --csstools-light-dark-toggle--80:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-hover-fg:var(--csstools-light-dark-toggle--80, white);\n    --csstools-light-dark-toggle--81:var(--csstools-color-scheme--light) #00cadb;\n    --comment-button-selected-bg:var(--csstools-light-dark-toggle--81, #0062fa);\n    --csstools-light-dark-toggle--82:var(--csstools-color-scheme--light) #bfbfc9;\n    --comment-button-border-color:var(--csstools-light-dark-toggle--82, #8f8f9d);\n    --comment-button-active-border-color:var(--comment-button-active-bg);\n    --csstools-light-dark-toggle--83:var(--csstools-color-scheme--light) #3a3944;\n    --comment-button-focus-border-color:var(--csstools-light-dark-toggle--83, #cfcfd8);\n    --comment-button-hover-border-color:var(--comment-button-hover-bg);\n    --comment-button-selected-border-color:var(--comment-button-selected-bg);\n    --csstools-light-dark-toggle--84:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-selected-fg:var(--csstools-light-dark-toggle--84, white);\n    --comment-button-dim:24px;\n    --csstools-light-dark-toggle--85:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n    --csstools-light-dark-toggle--86:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n    --comment-button-box-shadow:0 0.25px 0.75px 0 var(--csstools-light-dark-toggle--85, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--86, rgb(0 0 0 / 0.1));\n    --csstools-light-dark-toggle--87:var(--csstools-color-scheme--light) #00cadb;\n    --comment-button-focus-outline-color:var(--csstools-light-dark-toggle--87, #0062fa);\n  }\n\n@supports (color: light-dark(red, red)){\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n    --comment-button-bg:light-dark(white, #1c1b22);\n    --comment-button-fg:light-dark(#5b5b66, #fbfbfe);\n    --comment-button-active-bg:light-dark(#0041a4, #a6ecf4);\n    --comment-button-active-fg:light-dark(white, #15141a);\n    --comment-button-hover-bg:light-dark(#0053cb, #61dce9);\n    --comment-button-hover-fg:light-dark(white, #15141a);\n    --comment-button-selected-bg:light-dark(#0062fa, #00cadb);\n    --comment-button-border-color:light-dark(#8f8f9d, #bfbfc9);\n    --comment-button-focus-border-color:light-dark(#cfcfd8, #3a3944);\n    --comment-button-selected-fg:light-dark(white, #15141a);\n  }\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n    --comment-button-box-shadow:0 0.25px 0.75px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 2px 6px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));\n  }\n}\n\n@supports (color: light-dark(red, red)){\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n    --comment-button-focus-outline-color:light-dark(#0062fa, #00cadb);\n  }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton) *{\n    --csstools-light-dark-toggle--75:var(--csstools-color-scheme--light) #1c1b22;\n    --comment-button-bg:var(--csstools-light-dark-toggle--75, white);\n    --csstools-light-dark-toggle--76:var(--csstools-color-scheme--light) #fbfbfe;\n    --comment-button-fg:var(--csstools-light-dark-toggle--76, #5b5b66);\n    --csstools-light-dark-toggle--77:var(--csstools-color-scheme--light) #a6ecf4;\n    --comment-button-active-bg:var(--csstools-light-dark-toggle--77, #0041a4);\n    --csstools-light-dark-toggle--78:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-active-fg:var(--csstools-light-dark-toggle--78, white);\n    --csstools-light-dark-toggle--79:var(--csstools-color-scheme--light) #61dce9;\n    --comment-button-hover-bg:var(--csstools-light-dark-toggle--79, #0053cb);\n    --csstools-light-dark-toggle--80:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-hover-fg:var(--csstools-light-dark-toggle--80, white);\n    --csstools-light-dark-toggle--81:var(--csstools-color-scheme--light) #00cadb;\n    --comment-button-selected-bg:var(--csstools-light-dark-toggle--81, #0062fa);\n    --csstools-light-dark-toggle--82:var(--csstools-color-scheme--light) #bfbfc9;\n    --comment-button-border-color:var(--csstools-light-dark-toggle--82, #8f8f9d);\n    --csstools-light-dark-toggle--83:var(--csstools-color-scheme--light) #3a3944;\n    --comment-button-focus-border-color:var(--csstools-light-dark-toggle--83, #cfcfd8);\n    --csstools-light-dark-toggle--84:var(--csstools-color-scheme--light) #15141a;\n    --comment-button-selected-fg:var(--csstools-light-dark-toggle--84, white);\n    --csstools-light-dark-toggle--85:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n    --csstools-light-dark-toggle--86:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n    --comment-button-box-shadow:0 0.25px 0.75px 0 var(--csstools-light-dark-toggle--85, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--86, rgb(0 0 0 / 0.1));\n    --csstools-light-dark-toggle--87:var(--csstools-color-scheme--light) #00cadb;\n    --comment-button-focus-outline-color:var(--csstools-light-dark-toggle--87, #0062fa);\n  }\n}\n\n@media (prefers-color-scheme: dark){\n\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n    --csstools-color-scheme--light:;\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n      --comment-button-bg:ButtonFace;\n      --comment-button-fg:ButtonText;\n      --comment-button-hover-bg:SelectedItemText;\n      --comment-button-hover-fg:SelectedItem;\n      --comment-button-active-bg:SelectedItemText;\n      --comment-button-active-fg:SelectedItem;\n      --comment-button-border-color:ButtonBorder;\n      --comment-button-active-border-color:ButtonBorder;\n      --comment-button-hover-border-color:SelectedItem;\n      --comment-button-box-shadow:none;\n      --comment-button-focus-outline-color:CanvasText;\n      --comment-button-selected-bg:ButtonBorder;\n      --comment-button-selected-fg:ButtonFace;\n  }\n    }\n\n:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{\n\n    position:absolute;\n    width:var(--comment-button-dim);\n    height:var(--comment-button-dim);\n    background-color:var(--comment-button-bg);\n    border-radius:6px 6px 6px 0;\n    border:1px solid var(--comment-button-border-color);\n    box-shadow:var(--comment-button-box-shadow);\n    cursor:auto;\n    z-index:1;\n    padding:4px;\n    margin:0;\n    box-sizing:border-box;\n    pointer-events:auto;\n  }\n\n[dir=\"rtl\"] :is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton){\n      border-radius:6px 6px 0;\n    }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton)::before{\n      content:\"\";\n      display:inline-block;\n      width:100%;\n      height:100%;\n      -webkit-mask-repeat:no-repeat;\n              mask-repeat:no-repeat;\n      -webkit-mask-size:cover;\n              mask-size:cover;\n      -webkit-mask-image:var(--comment-edit-button-icon);\n              mask-image:var(--comment-edit-button-icon);\n      background-color:var(--comment-button-fg);\n      margin:0;\n      padding:0;\n      transform:scaleX(var(--dir-factor));\n    }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):focus-visible{\n      outline:2px solid var(--comment-button-focus-outline-color);\n      outline-offset:1px;\n      border-color:var(--comment-button-focus-border-color);\n    }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):hover{\n      background-color:var(--comment-button-hover-bg) !important;\n      border-color:var(--comment-button-hover-border-color);\n    }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):hover::before{\n        background-color:var(--comment-button-hover-fg);\n      }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):active{\n      background-color:var(--comment-button-active-bg) !important;\n      border-color:var(--comment-button-active-border-color);\n    }\n\n:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):active::before{\n        background-color:var(--comment-button-active-fg);\n      }\n\n.selected:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton){\n      background-color:var(--comment-button-selected-bg) !important;\n      border-color:var(--comment-button-selected-border-color);\n    }\n\n.selected:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton)::before{\n        background-color:var(--comment-button-selected-fg);\n      }\n\n#editorCommentsSidebar,\n.commentPopup{\n  --comment-close-button-icon:url(images/comment-closeButton.svg);\n  --comment-popup-edit-button-icon:url(images/comment-popup-editButton.svg);\n  --comment-popup-delete-button-icon:url(images/editor-toolbar-delete.svg);\n\n  --csstools-light-dark-toggle--88:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.69);\n\n  --comment-date-fg-color:var(--csstools-light-dark-toggle--88, rgb(21 20 26 / 0.69));\n  --csstools-light-dark-toggle--89:var(--csstools-color-scheme--light) #1c1b22;\n  --comment-bg-color:var(--csstools-light-dark-toggle--89, #f9f9fb);\n  --csstools-light-dark-toggle--90:var(--csstools-color-scheme--light) #2c2b33;\n  --comment-hover-bg-color:var(--csstools-light-dark-toggle--90, #e0e0e6);\n  --csstools-light-dark-toggle--91:var(--csstools-color-scheme--light) #3a3944;\n  --comment-active-bg-color:var(--csstools-light-dark-toggle--91, #d1d1d9);\n  --comment-hover-brightness:0.89;\n  --comment-hover-filter:brightness(var(--comment-hover-brightness));\n  --comment-active-brightness:0.825;\n  --comment-active-filter:brightness(var(--comment-active-brightness));\n  --csstools-light-dark-toggle--92:var(--csstools-color-scheme--light) #52525e;\n  --comment-border-color:var(--csstools-light-dark-toggle--92, #f0f0f4);\n  --csstools-light-dark-toggle--93:var(--csstools-color-scheme--light) #00cadb;\n  --comment-focus-outline-color:var(--csstools-light-dark-toggle--93, #0062fa);\n  --csstools-light-dark-toggle--94:var(--csstools-color-scheme--light) #fbfbfe;\n  --comment-fg-color:var(--csstools-light-dark-toggle--94, #15141a);\n  --csstools-light-dark-toggle--95:var(--csstools-color-scheme--light) #00317e;\n  --comment-count-bg-color:var(--csstools-light-dark-toggle--95, #e2f7ff);\n  --csstools-light-dark-toggle--96:var(--csstools-color-scheme--light) #a6ecf4;\n  --comment-indicator-active-fg-color:var(--csstools-light-dark-toggle--96, #0041a4);\n  --comment-indicator-active-filter:brightness(\n    calc(1 / var(--comment-active-brightness))\n  );\n  --csstools-light-dark-toggle--97:var(--csstools-color-scheme--light) #fbfbfe;\n  --comment-indicator-focus-fg-color:var(--csstools-light-dark-toggle--97, #5b5b66);\n  --csstools-light-dark-toggle--98:var(--csstools-color-scheme--light) #61dce9;\n  --comment-indicator-hover-fg-color:var(--csstools-light-dark-toggle--98, #0053cb);\n  --comment-indicator-hover-filter:brightness(\n    calc(1 / var(--comment-hover-brightness))\n  );\n  --csstools-light-dark-toggle--99:var(--csstools-color-scheme--light) #00cadb;\n  --comment-indicator-selected-fg-color:var(--csstools-light-dark-toggle--99, #0062fa);\n\n  --button-comment-bg:transparent;\n  --button-comment-color:var(--main-color);\n  --csstools-light-dark-toggle--100:var(--csstools-color-scheme--light) #5b5b66;\n  --button-comment-active-bg:var(--csstools-light-dark-toggle--100, #cfcfd8);\n  --button-comment-active-border:none;\n  --button-comment-active-color:var(--button-comment-color);\n  --button-comment-border:none;\n  --csstools-light-dark-toggle--101:var(--csstools-color-scheme--light) #52525e;\n  --button-comment-hover-bg:var(--csstools-light-dark-toggle--101, #e0e0e6);\n  --button-comment-hover-color:var(--button-comment-color);\n\n  --csstools-light-dark-toggle--102:var(--csstools-color-scheme--light) #0df;\n\n  --link-fg-color:var(--csstools-light-dark-toggle--102, #0060df);\n  --csstools-light-dark-toggle--103:var(--csstools-color-scheme--light) #80ebff;\n  --link-hover-fg-color:var(--csstools-light-dark-toggle--103, #0250bb);\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n#editorCommentsSidebar,\n.commentPopup{\n\n  --comment-date-fg-color:light-dark(\n    rgb(21 20 26 / 0.69),\n    rgb(251 251 254 / 0.69)\n  );\n}\n}\n\n@supports (color: light-dark(red, red)){\n#editorCommentsSidebar,\n.commentPopup{\n  --comment-bg-color:light-dark(#f9f9fb, #1c1b22);\n  --comment-hover-bg-color:light-dark(#e0e0e6, #2c2b33);\n  --comment-active-bg-color:light-dark(#d1d1d9, #3a3944);\n  --comment-border-color:light-dark(#f0f0f4, #52525e);\n  --comment-focus-outline-color:light-dark(#0062fa, #00cadb);\n  --comment-fg-color:light-dark(#15141a, #fbfbfe);\n  --comment-count-bg-color:light-dark(#e2f7ff, #00317e);\n  --comment-indicator-active-fg-color:light-dark(#0041a4, #a6ecf4);\n  --comment-indicator-focus-fg-color:light-dark(#5b5b66, #fbfbfe);\n  --comment-indicator-hover-fg-color:light-dark(#0053cb, #61dce9);\n  --comment-indicator-selected-fg-color:light-dark(#0062fa, #00cadb);\n  --button-comment-active-bg:light-dark(#cfcfd8, #5b5b66);\n  --button-comment-hover-bg:light-dark(#e0e0e6, #52525e);\n\n  --link-fg-color:light-dark(#0060df, #0df);\n  --link-hover-fg-color:light-dark(#0250bb, #80ebff);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(#editorCommentsSidebar,.commentPopup) *{\n\n  --csstools-light-dark-toggle--88:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.69);\n\n  --comment-date-fg-color:var(--csstools-light-dark-toggle--88, rgb(21 20 26 / 0.69));\n  --csstools-light-dark-toggle--89:var(--csstools-color-scheme--light) #1c1b22;\n  --comment-bg-color:var(--csstools-light-dark-toggle--89, #f9f9fb);\n  --csstools-light-dark-toggle--90:var(--csstools-color-scheme--light) #2c2b33;\n  --comment-hover-bg-color:var(--csstools-light-dark-toggle--90, #e0e0e6);\n  --csstools-light-dark-toggle--91:var(--csstools-color-scheme--light) #3a3944;\n  --comment-active-bg-color:var(--csstools-light-dark-toggle--91, #d1d1d9);\n  --csstools-light-dark-toggle--92:var(--csstools-color-scheme--light) #52525e;\n  --comment-border-color:var(--csstools-light-dark-toggle--92, #f0f0f4);\n  --csstools-light-dark-toggle--93:var(--csstools-color-scheme--light) #00cadb;\n  --comment-focus-outline-color:var(--csstools-light-dark-toggle--93, #0062fa);\n  --csstools-light-dark-toggle--94:var(--csstools-color-scheme--light) #fbfbfe;\n  --comment-fg-color:var(--csstools-light-dark-toggle--94, #15141a);\n  --csstools-light-dark-toggle--95:var(--csstools-color-scheme--light) #00317e;\n  --comment-count-bg-color:var(--csstools-light-dark-toggle--95, #e2f7ff);\n  --csstools-light-dark-toggle--96:var(--csstools-color-scheme--light) #a6ecf4;\n  --comment-indicator-active-fg-color:var(--csstools-light-dark-toggle--96, #0041a4);\n  --csstools-light-dark-toggle--97:var(--csstools-color-scheme--light) #fbfbfe;\n  --comment-indicator-focus-fg-color:var(--csstools-light-dark-toggle--97, #5b5b66);\n  --csstools-light-dark-toggle--98:var(--csstools-color-scheme--light) #61dce9;\n  --comment-indicator-hover-fg-color:var(--csstools-light-dark-toggle--98, #0053cb);\n  --csstools-light-dark-toggle--99:var(--csstools-color-scheme--light) #00cadb;\n  --comment-indicator-selected-fg-color:var(--csstools-light-dark-toggle--99, #0062fa);\n  --csstools-light-dark-toggle--100:var(--csstools-color-scheme--light) #5b5b66;\n  --button-comment-active-bg:var(--csstools-light-dark-toggle--100, #cfcfd8);\n  --csstools-light-dark-toggle--101:var(--csstools-color-scheme--light) #52525e;\n  --button-comment-hover-bg:var(--csstools-light-dark-toggle--101, #e0e0e6);\n\n  --csstools-light-dark-toggle--102:var(--csstools-color-scheme--light) #0df;\n\n  --link-fg-color:var(--csstools-light-dark-toggle--102, #0060df);\n  --csstools-light-dark-toggle--103:var(--csstools-color-scheme--light) #80ebff;\n  --link-hover-fg-color:var(--csstools-light-dark-toggle--103, #0250bb);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n#editorCommentsSidebar,\n.commentPopup{\n    --comment-date-fg-color:CanvasText;\n    --comment-bg-color:Canvas;\n    --comment-hover-bg-color:Canvas;\n    --comment-hover-filter:none;\n    --comment-active-bg-color:Canvas;\n    --comment-active-filter:none;\n    --comment-border-color:CanvasText;\n    --comment-fg-color:CanvasText;\n    --comment-count-bg-color:Canvas;\n    --comment-indicator-active-fg-color:SelectedItem;\n    --comment-indicator-focus-fg-color:CanvasText;\n    --comment-indicator-hover-fg-color:CanvasText;\n    --comment-indicator-selected-fg-color:SelectedItem;\n    --button-comment-bg:ButtonFace;\n    --button-comment-color:ButtonText;\n    --button-comment-active-bg:Highlight;\n    --button-comment-active-color:HighlightText;\n    --button-comment-border:1px solid ButtonText;\n    --button-comment-hover-bg:Highlight;\n    --button-comment-hover-color:HighlightText;\n    --link-fg-color:LinkText;\n    --link-hover-fg-color:LinkText;\n}\n  }\n\n#editorCommentsSidebar{\n  display:flex;\n  height:auto;\n  padding-bottom:16px;\n  flex-direction:column;\n  align-items:flex-start;\n}\n\n#editorCommentsSidebar #editorCommentsSidebarHeader{\n    width:100%;\n    box-sizing:border-box;\n    padding:16px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n  }\n\n:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount{\n      display:flex;\n      align-items:baseline;\n      gap:6px;\n      -webkit-user-select:none;\n         -moz-user-select:none;\n              user-select:none;\n    }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount) #editorCommentsSidebarTitle{\n        font:menu;\n        font-style:normal;\n        font-weight:590;\n        line-height:normal;\n        font-size:17px;\n        color:var(--comment-fg-color);\n      }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount) #editorCommentsSidebarCount{\n        padding:0 4px;\n        border-radius:4px;\n        background-color:var(--comment-count-bg-color);\n\n        color:var(--comment-fg-color);\n        text-align:center;\n\n        font:menu;\n        font-size:13px;\n        font-style:normal;\n        font-weight:400;\n        line-height:normal;\n      }\n\n:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton{\n      width:32px;\n      height:32px;\n      padding:8px;\n      border-radius:4px;\n      border:var(--button-comment-border);\n      background-color:var(--button-comment-bg);\n      cursor:pointer;\n    }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton)::before{\n        content:\"\";\n        display:inline-block;\n        width:100%;\n        height:100%;\n        -webkit-mask-repeat:no-repeat;\n                mask-repeat:no-repeat;\n        -webkit-mask-position:center;\n                mask-position:center;\n        -webkit-mask-image:var(--comment-close-button-icon);\n                mask-image:var(--comment-close-button-icon);\n        background-color:var(--button-comment-color);\n      }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):hover{\n        background-color:var(--button-comment-hover-bg);\n      }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):hover::before{\n          background-color:var(--button-comment-hover-color);\n        }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):active{\n        border:var(--button-comment-active-border);\n        background-color:var(--button-comment-active-bg);\n      }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):active::before{\n          background-color:var(--button-comment-active-color);\n        }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):focus-visible{\n        outline:var(--focus-ring-outline);\n      }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton)  > span{\n        display:inline-block;\n        width:0;\n        height:0;\n        overflow:hidden;\n      }\n\n#editorCommentsSidebar #editorCommentsSidebarListContainer{\n    overflow:auto;\n    width:100%;\n  }\n\n:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList{\n      display:flex;\n      width:auto;\n      padding:4px 16px;\n      gap:10px;\n      align-items:flex-start;\n      flex-direction:column;\n      list-style-type:none;\n    }\n\n:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment{\n        display:flex;\n        width:auto;\n        padding:8px 16px 16px;\n        flex-direction:column;\n        align-items:flex-start;\n        align-self:stretch;\n        gap:4px;\n\n        border-radius:8px;\n        border:0.5px solid var(--comment-border-color);\n        background-color:var(--comment-bg-color);\n      }\n\n@media screen and (forced-colors: active){\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover{\n              background-color:var(--comment-hover-bg-color);\n          }\n            }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover{\n            filter:var(--comment-hover-filter);\n          }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover time::after{\n              display:inline-block;\n              background-color:var(--comment-indicator-hover-fg-color);\n              filter:var(--comment-indicator-hover-filter);\n            }\n\n@media screen and (forced-colors: active){\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active{\n              background-color:var(--comment-active-bg-color);\n          }\n            }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active{\n            filter:var(--comment-active-filter);\n          }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active time::after{\n              display:inline-block;\n              background-color:var(--comment-indicator-active-fg-color);\n              filter:var(--comment-indicator-active-filter);\n            }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):is(:focus,:focus-visible) time::after{\n            display:inline-block;\n            background-color:var(--comment-indicator-focus-fg-color);\n          }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):focus-visible{\n            outline:2px solid var(--comment-focus-outline-color);\n            outline-offset:2px;\n          }\n\n.selected:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments) .sidebarCommentText{\n              max-height:-moz-fit-content;\n              max-height:fit-content;\n              -webkit-line-clamp:unset;\n            }\n\n.selected:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments) time::after{\n              display:inline-block;\n              background-color:var(--comment-indicator-selected-fg-color);\n            }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText{\n          font:menu;\n          font-style:normal;\n          font-weight:400;\n          line-height:normal;\n          font-size:15px;\n          width:100%;\n          height:-moz-fit-content;\n          height:fit-content;\n          max-height:80px;\n          display:-webkit-box;\n          -webkit-box-orient:vertical;\n          -webkit-line-clamp:2;\n          overflow:hidden;\n          overflow-wrap:break-word;\n        }\n\n:is(:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText) .richText{\n            --total-scale-factor:1.5;\n          }\n\n.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText{\n            max-height:-moz-fit-content;\n            max-height:fit-content;\n            -webkit-line-clamp:unset;\n            -webkit-user-select:none;\n               -moz-user-select:none;\n                    user-select:none;\n          }\n\n.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a{\n            font:menu;\n            font-style:normal;\n            font-weight:400;\n            line-height:normal;\n            font-size:15px;\n            width:100%;\n            height:auto;\n            overflow-wrap:break-word;\n            margin-block-start:15px;\n            color:var(--link-fg-color);\n          }\n\n:is(.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a):focus-visible{\n              outline:var(--focus-ring-outline);\n            }\n\n:is(.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a):hover{\n              color:var(--link-hover-fg-color);\n            }\n\n:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) time{\n          width:100%;\n          display:inline-flex;\n          align-items:center;\n          justify-content:space-between;\n\n          font:menu;\n          font-style:normal;\n          font-weight:400;\n          line-height:normal;\n          font-size:13px;\n        }\n\n:is(:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) time)::after{\n            content:\"\";\n            display:none;\n            width:16px;\n            height:16px;\n            -webkit-mask-repeat:no-repeat;\n                    mask-repeat:no-repeat;\n            -webkit-mask-position:center;\n                    mask-position:center;\n            -webkit-mask-image:var(--comment-edit-button-icon);\n                    mask-image:var(--comment-edit-button-icon);\n            transform:scaleX(var(--dir-factor));\n          }\n\n.commentPopup{\n  --csstools-color-scheme--light:initial;\n  color-scheme:light dark;\n\n  --csstools-light-dark-toggle--104:var(--csstools-color-scheme--light) #3a3944;\n\n  --divider-color:var(--csstools-light-dark-toggle--104, #cfcfd8);\n  --csstools-light-dark-toggle--105:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n  --csstools-light-dark-toggle--106:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n  --comment-shadow:0 0.5px 2px 0 var(--csstools-light-dark-toggle--105, rgb(0 0 0 / 0.05)), 0 4px 16px 0 var(--csstools-light-dark-toggle--106, rgb(0 0 0 / 0.1));\n}\n\n@supports (color: light-dark(red, red)){\n.commentPopup{\n\n  --divider-color:light-dark(#cfcfd8, #3a3944);\n}\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.commentPopup{\n  --comment-shadow:0 0.5px 2px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 4px 16px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.commentPopup *{\n\n  --csstools-light-dark-toggle--104:var(--csstools-color-scheme--light) #3a3944;\n\n  --divider-color:var(--csstools-light-dark-toggle--104, #cfcfd8);\n  --csstools-light-dark-toggle--105:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n  --csstools-light-dark-toggle--106:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n  --comment-shadow:0 0.5px 2px 0 var(--csstools-light-dark-toggle--105, rgb(0 0 0 / 0.05)), 0 4px 16px 0 var(--csstools-light-dark-toggle--106, rgb(0 0 0 / 0.1));\n  }\n}\n\n@media (prefers-color-scheme: dark){\n\n.commentPopup{\n  --csstools-color-scheme--light:;\n}\n}\n\n@media screen and (forced-colors: active){\n\n.commentPopup{\n    --divider-color:CanvasText;\n    --comment-shadow:none;\n}\n  }\n\n.commentPopup{\n\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n  gap:12px;\n  z-index:100001;\n  pointer-events:auto;\n  margin-top:2px;\n\n  border:0.5px solid var(--comment-border-color);\n  background:var(--comment-bg-color);\n  box-shadow:var(--comment-shadow);\n}\n\n.commentPopup:focus-visible{\n    outline:none;\n  }\n\n.commentPopup.dragging{\n    cursor:move !important;\n  }\n\n.commentPopup.dragging *{\n      cursor:move !important;\n    }\n\n.commentPopup.dragging button{\n      pointer-events:none !important;\n    }\n\n.commentPopup:not(.selected) .commentPopupButtons{\n    visibility:hidden !important;\n  }\n\n.commentPopup hr{\n    width:100%;\n    height:1px;\n    border:none;\n    border-top:1px solid var(--divider-color);\n    margin:0;\n    padding:0;\n  }\n\n.commentPopup .commentPopupTop{\n    display:flex;\n    width:100%;\n    height:auto;\n    padding-bottom:4px;\n    justify-content:space-between;\n    align-items:center;\n    align-self:stretch;\n    cursor:move;\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n  }\n\n:is(.commentPopup .commentPopupTop) .commentPopupTime{\n      font:menu;\n      font-style:normal;\n      font-weight:400;\n      line-height:normal;\n      font-size:13px;\n      color:var(--comment-date-fg-color);\n    }\n\n:is(.commentPopup .commentPopupTop) .commentPopupButtons{\n      display:flex;\n      align-items:center;\n      gap:2px;\n      cursor:default;\n    }\n\n:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons)  > button{\n        width:32px;\n        height:32px;\n        padding:8px;\n        border:var(--button-comment-border);\n        border-radius:4px;\n        background-color:var(--button-comment-bg);\n        color:var(--button-comment-color);\n      }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):hover{\n          background-color:var(--button-comment-hover-bg);\n        }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):hover::before{\n            background-color:var(--button-comment-hover-color);\n          }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):active{\n          border:var(--button-comment-active-border);\n          background-color:var(--button-comment-active-bg);\n          color:var(--button-comment-active-color);\n        }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):active::before{\n            background-color:var(--button-comment-active-color);\n          }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):focus-visible{\n          background-color:var(--button-comment-hover-bg);\n          outline:2px solid var(--comment-focus-outline-color);\n          outline-offset:0;\n        }\n\n:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{\n          content:\"\";\n          display:inline-block;\n          width:100%;\n          height:100%;\n          -webkit-mask-repeat:no-repeat;\n                  mask-repeat:no-repeat;\n          -webkit-mask-position:center;\n                  mask-position:center;\n        }\n\n.commentPopupEdit:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{\n          -webkit-mask-image:var(--comment-popup-edit-button-icon);\n                  mask-image:var(--comment-popup-edit-button-icon);\n        }\n\n.commentPopupDelete:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{\n          -webkit-mask-image:var(--comment-popup-delete-button-icon);\n                  mask-image:var(--comment-popup-delete-button-icon);\n        }\n\n.commentPopup .commentPopupText{\n    width:100%;\n    height:auto;\n\n    font:menu;\n    font-style:normal;\n    font-weight:400;\n    line-height:normal;\n    font-size:15px;\n    color:var(--comment-fg-color);\n  }\n\n.commentPopupText,\n.sidebarCommentText .richText{\n  margin-block:0;\n}\n\n:is(.commentPopupText,.sidebarCommentText .richText) p:first-of-type{\n    margin-block:0;\n  }\n\n:is(.commentPopupText,.sidebarCommentText .richText)  > *{\n    white-space:pre-wrap;\n    font-size:max(15px, calc(10px * var(--total-scale-factor)));\n    overflow-wrap:break-word;\n  }\n\n:is(.commentPopupText,.sidebarCommentText .richText) span{\n    color:var(--comment-fg-color) !important;\n  }\n\n:root{\n  --editor-toolbar-vert-offset:6px;\n  --outline-width:2px;\n  --outline-color:#0060df;\n  --outline-around-width:1px;\n  --outline-around-color:#f0f0f4;\n  --hover-outline-around-color:var(--outline-around-color);\n  --focus-outline:solid var(--outline-width) var(--outline-color);\n  --unfocus-outline:solid var(--outline-width) transparent;\n  --focus-outline-around:solid var(--outline-around-width) var(--outline-around-color);\n  --hover-outline-color:#8f8f9d;\n  --hover-outline:solid var(--outline-width) var(--hover-outline-color);\n  --hover-outline-around:solid var(--outline-around-width) var(--hover-outline-around-color);\n  --freetext-line-height:1.35;\n  --freetext-padding:2px;\n  --resizer-bg-color:var(--outline-color);\n  --resizer-size:6px;\n  --resizer-shift:calc(\n    0px - (var(--outline-width) + var(--resizer-size)) / 2 -\n      var(--outline-around-width)\n  );\n  --editorFreeText-editing-cursor:text;\n  --editorInk-editing-cursor:url(images/cursor-editorInk.svg) 0 16, pointer;\n  --editorHighlight-editing-cursor:url(images/cursor-editorTextHighlight.svg) 24 24, text;\n  --editorFreeHighlight-editing-cursor:url(images/cursor-editorFreeHighlight.svg) 1 18, pointer;\n\n  --new-alt-text-warning-image:url(images/altText_warning.svg);\n}\n\n.textLayer.highlighting{\n    cursor:var(--editorFreeHighlight-editing-cursor);\n  }\n\n.textLayer.highlighting:not(.free) span{\n      cursor:var(--editorHighlight-editing-cursor);\n    }\n\n[role=\"img\"]:is(.textLayer.highlighting:not(.free) span){\n        cursor:var(--editorFreeHighlight-editing-cursor);\n      }\n\n.textLayer.highlighting.free span{\n      cursor:var(--editorFreeHighlight-editing-cursor);\n    }\n\n.page:has(.annotationEditorLayer.nonEditing)\n  .annotationLayer\n  .editorAnnotation{\n  position:absolute;\n  pointer-events:none;\n}\n\n:is(#viewerContainer.pdfPresentationMode:fullscreen,.annotationEditorLayer.disabled) .noAltTextBadge{\n    display:none !important;\n  }\n\n@media (min-resolution: 1.1dppx){\n  :root{\n    --editorFreeText-editing-cursor:url(images/cursor-editorFreeText.svg) 0 16, text;\n  }\n}\n\n@media screen and (forced-colors: active){\n  :root{\n    --outline-color:CanvasText;\n    --outline-around-color:ButtonFace;\n    --resizer-bg-color:ButtonText;\n    --hover-outline-color:Highlight;\n    --hover-outline-around-color:SelectedItemText;\n  }\n}\n\n[data-editor-rotation=\"90\"]{\n  transform:rotate(90deg);\n}\n\n[data-editor-rotation=\"180\"]{\n  transform:rotate(180deg);\n}\n\n[data-editor-rotation=\"270\"]{\n  transform:rotate(270deg);\n}\n\n.annotationEditorLayer{\n  background:transparent;\n  position:absolute;\n  inset:0;\n  font-size:calc(100px * var(--total-scale-factor));\n  transform-origin:0 0;\n  cursor:auto;\n}\n\n.annotationEditorLayer .selectedEditor{\n    z-index:100000 !important;\n  }\n\n.annotationEditorLayer.drawing *{\n    pointer-events:none !important;\n  }\n\n.annotationEditorLayer.getElements{\n    pointer-events:auto !important;\n  }\n\n.annotationEditorLayer.getElements  > div{\n      pointer-events:auto !important;\n    }\n\n.annotationEditorLayer.waiting{\n  content:\"\";\n  cursor:wait;\n  position:absolute;\n  inset:0;\n  width:100%;\n  height:100%;\n}\n\n.annotationEditorLayer.disabled{\n  pointer-events:none;\n}\n\n.annotationEditorLayer.disabled.highlightEditing :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor,.commentPopup){\n    pointer-events:auto;\n  }\n\n.annotationEditorLayer.freetextEditing{\n  cursor:var(--editorFreeText-editing-cursor);\n}\n\n.annotationEditorLayer.inkEditing{\n  cursor:var(--editorInk-editing-cursor);\n}\n\n.annotationEditorLayer .draw{\n  box-sizing:border-box;\n}\n\n.annotationEditorLayer\n  :is(.freeTextEditor, .inkEditor, .stampEditor, .signatureEditor){\n  position:absolute;\n  background:transparent;\n  z-index:1;\n  transform-origin:0 0;\n  cursor:auto;\n  max-width:100%;\n  max-height:100%;\n  border:var(--unfocus-outline);\n}\n\n.draggable.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){\n    cursor:move;\n  }\n\n.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){\n    border:var(--focus-outline);\n    outline:var(--focus-outline-around);\n  }\n\n.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))::before{\n      content:\"\";\n      position:absolute;\n      inset:0;\n      border:var(--focus-outline-around);\n      pointer-events:none;\n    }\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor){\n    border:var(--hover-outline);\n    outline:var(--hover-outline-around);\n  }\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor)::before{\n      content:\"\";\n      position:absolute;\n      inset:0;\n      border:var(--focus-outline-around);\n    }\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{\n    --editor-toolbar-delete-image:url(images/editor-toolbar-delete.svg);\n    --csstools-light-dark-toggle--107:var(--csstools-color-scheme--light) #2b2a33;\n    --editor-toolbar-bg-color:var(--csstools-light-dark-toggle--107, #f0f0f4);\n    --editor-toolbar-highlight-image:url(images/toolbarButton-editorHighlight.svg);\n    --csstools-light-dark-toggle--108:var(--csstools-color-scheme--light) #fbfbfe;\n    --editor-toolbar-fg-color:var(--csstools-light-dark-toggle--108, #2e2e56);\n    --editor-toolbar-border-color:#8f8f9d;\n    --editor-toolbar-hover-border-color:var(--editor-toolbar-border-color);\n    --csstools-light-dark-toggle--109:var(--csstools-color-scheme--light) #52525e;\n    --editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--109, #e0e0e6);\n    --editor-toolbar-hover-fg-color:var(--editor-toolbar-fg-color);\n    --editor-toolbar-hover-outline:none;\n    --csstools-light-dark-toggle--110:var(--csstools-color-scheme--light) #0df;\n    --editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--110, #0060df);\n    --editor-toolbar-shadow:0 2px 6px 0 rgb(58 57 68 / 0.2);\n    --editor-toolbar-height:28px;\n    --editor-toolbar-padding:2px;\n    --csstools-light-dark-toggle--111:var(--csstools-color-scheme--light) #54ffbd;\n    --alt-text-done-color:var(--csstools-light-dark-toggle--111, #2ac3a2);\n    --csstools-light-dark-toggle--112:var(--csstools-color-scheme--light) #80ebff;\n    --alt-text-warning-color:var(--csstools-light-dark-toggle--112, #0090ed);\n    --alt-text-hover-done-color:var(--alt-text-done-color);\n    --alt-text-hover-warning-color:var(--alt-text-warning-color);\n  }\n\n@supports (color: light-dark(red, red)){\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{\n    --editor-toolbar-bg-color:light-dark(#f0f0f4, #2b2a33);\n    --editor-toolbar-fg-color:light-dark(#2e2e56, #fbfbfe);\n    --editor-toolbar-hover-bg-color:light-dark(#e0e0e6, #52525e);\n    --editor-toolbar-focus-outline-color:light-dark(#0060df, #0df);\n    --alt-text-done-color:light-dark(#2ac3a2, #54ffbd);\n    --alt-text-warning-color:light-dark(#0090ed, #80ebff);\n  }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) *{\n    --csstools-light-dark-toggle--107:var(--csstools-color-scheme--light) #2b2a33;\n    --editor-toolbar-bg-color:var(--csstools-light-dark-toggle--107, #f0f0f4);\n    --csstools-light-dark-toggle--108:var(--csstools-color-scheme--light) #fbfbfe;\n    --editor-toolbar-fg-color:var(--csstools-light-dark-toggle--108, #2e2e56);\n    --csstools-light-dark-toggle--109:var(--csstools-color-scheme--light) #52525e;\n    --editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--109, #e0e0e6);\n    --csstools-light-dark-toggle--110:var(--csstools-color-scheme--light) #0df;\n    --editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--110, #0060df);\n    --csstools-light-dark-toggle--111:var(--csstools-color-scheme--light) #54ffbd;\n    --alt-text-done-color:var(--csstools-light-dark-toggle--111, #2ac3a2);\n    --csstools-light-dark-toggle--112:var(--csstools-color-scheme--light) #80ebff;\n    --alt-text-warning-color:var(--csstools-light-dark-toggle--112, #0090ed);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{\n      --editor-toolbar-bg-color:ButtonFace;\n      --editor-toolbar-fg-color:ButtonText;\n      --editor-toolbar-border-color:ButtonText;\n      --editor-toolbar-hover-border-color:AccentColor;\n      --editor-toolbar-hover-bg-color:ButtonFace;\n      --editor-toolbar-hover-fg-color:AccentColor;\n      --editor-toolbar-hover-outline:2px solid var(--editor-toolbar-hover-border-color);\n      --editor-toolbar-focus-outline-color:ButtonBorder;\n      --editor-toolbar-shadow:none;\n      --alt-text-done-color:var(--editor-toolbar-fg-color);\n      --alt-text-warning-color:var(--editor-toolbar-fg-color);\n      --alt-text-hover-done-color:var(--editor-toolbar-hover-fg-color);\n      --alt-text-hover-warning-color:var(--editor-toolbar-hover-fg-color);\n  }\n    }\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{\n\n    display:flex;\n    width:-moz-fit-content;\n    width:fit-content;\n    height:var(--editor-toolbar-height);\n    flex-direction:column;\n    justify-content:center;\n    align-items:center;\n    cursor:default;\n    pointer-events:auto;\n    box-sizing:content-box;\n    padding:var(--editor-toolbar-padding);\n\n    position:absolute;\n    inset-inline-end:0;\n    inset-block-start:calc(100% + var(--editor-toolbar-vert-offset));\n\n    border-radius:6px;\n    background-color:var(--editor-toolbar-bg-color);\n    border:1px solid var(--editor-toolbar-border-color);\n    box-shadow:var(--editor-toolbar-shadow);\n  }\n\n.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){\n      display:none;\n    }\n\n:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar):has(:focus-visible){\n      border-color:transparent;\n    }\n\n[dir=\"ltr\"] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){\n      transform-origin:100% 0;\n    }\n\n[dir=\"rtl\"] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){\n      transform-origin:0 0;\n    }\n\n:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons{\n      display:flex;\n      justify-content:center;\n      align-items:center;\n      gap:0;\n      height:100%;\n    }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) button{\n        padding:0;\n      }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .divider{\n        width:0;\n        height:calc(\n          2 * var(--editor-toolbar-padding) + var(--editor-toolbar-height)\n        );\n        border-left:1px solid var(--editor-toolbar-border-color);\n        border-right:none;\n        display:inline-block;\n        margin-inline:2px;\n      }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic{\n        width:var(--editor-toolbar-height);\n      }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{\n          content:\"\";\n          -webkit-mask-repeat:no-repeat;\n                  mask-repeat:no-repeat;\n          -webkit-mask-position:center;\n                  mask-position:center;\n          display:inline-block;\n          background-color:var(--editor-toolbar-fg-color);\n          width:100%;\n          height:100%;\n        }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic):hover::before{\n          background-color:var(--editor-toolbar-hover-fg-color);\n        }\n\n.highlightButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{\n          -webkit-mask-image:var(--editor-toolbar-highlight-image);\n                  mask-image:var(--editor-toolbar-highlight-image);\n        }\n\n.commentButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{\n          -webkit-mask-image:var(--comment-edit-button-icon);\n                  mask-image:var(--comment-edit-button-icon);\n        }\n\n.deleteButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{\n          -webkit-mask-image:var(--editor-toolbar-delete-image);\n                  mask-image:var(--editor-toolbar-delete-image);\n        }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)  > *{\n        height:var(--editor-toolbar-height);\n      }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons)  > :not(.divider){\n        border:none;\n        background-color:transparent;\n        cursor:pointer;\n      }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):hover{\n          border-radius:2px;\n          background-color:var(--editor-toolbar-hover-bg-color);\n          color:var(--editor-toolbar-hover-fg-color);\n          outline:var(--editor-toolbar-hover-outline);\n          outline-offset:1px;\n        }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):hover:active{\n            outline:none;\n          }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):focus-visible{\n          border-radius:2px;\n          outline:2px solid var(--editor-toolbar-focus-outline-color);\n        }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText{\n        --alt-text-add-image:url(images/altText_add.svg);\n        --alt-text-done-image:url(images/altText_done.svg);\n\n        display:flex;\n        align-items:center;\n        justify-content:center;\n        width:-moz-max-content;\n        width:max-content;\n        padding-inline:8px;\n        pointer-events:all;\n        font:menu;\n        font-weight:590;\n        font-size:12px;\n        color:var(--editor-toolbar-fg-color);\n      }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):disabled{\n          pointer-events:none;\n        }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{\n          content:\"\";\n          -webkit-mask-image:var(--alt-text-add-image);\n                  mask-image:var(--alt-text-add-image);\n          -webkit-mask-repeat:no-repeat;\n                  mask-repeat:no-repeat;\n          -webkit-mask-position:center;\n                  mask-position:center;\n          display:inline-block;\n          width:12px;\n          height:13px;\n          background-color:var(--editor-toolbar-fg-color);\n          margin-inline-end:4px;\n        }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{\n          background-color:var(--editor-toolbar-hover-fg-color);\n        }\n\n.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{\n          -webkit-mask-image:var(--alt-text-done-image);\n                  mask-image:var(--alt-text-done-image);\n        }\n\n.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{\n            width:16px;\n            height:16px;\n            -webkit-mask-image:var(--new-alt-text-warning-image);\n                    mask-image:var(--new-alt-text-warning-image);\n            background-color:var(--alt-text-warning-color);\n            -webkit-mask-size:cover;\n                    mask-size:cover;\n          }\n\n.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{\n            background-color:var(--alt-text-hover-warning-color);\n          }\n\n.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{\n              -webkit-mask-image:var(--alt-text-done-image);\n                      mask-image:var(--alt-text-done-image);\n              background-color:var(--alt-text-done-color);\n            }\n\n.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{\n              background-color:var(--alt-text-hover-done-color);\n            }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip{\n          display:none;\n          word-wrap:anywhere;\n        }\n\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){\n            --csstools-light-dark-toggle--113:var(--csstools-color-scheme--light) #1c1b22;\n            --alt-text-tooltip-bg:var(--csstools-light-dark-toggle--113, #f0f0f4);\n            --csstools-light-dark-toggle--114:var(--csstools-color-scheme--light) #fbfbfe;\n            --alt-text-tooltip-fg:var(--csstools-light-dark-toggle--114, #15141a);\n            --alt-text-tooltip-border:#8f8f9d;\n            --csstools-light-dark-toggle--115:var(--csstools-color-scheme--light) #15141a;\n            --alt-text-tooltip-shadow:0 2px 6px 0 var(--csstools-light-dark-toggle--115, rgb(58 57 68 / 0.2));\n          }\n\n@supports (color: light-dark(red, red)){\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){\n            --alt-text-tooltip-bg:light-dark(#f0f0f4, #1c1b22);\n            --alt-text-tooltip-fg:light-dark(#15141a, #fbfbfe);\n          }\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){\n            --alt-text-tooltip-shadow:0 2px 6px 0 light-dark(rgb(58 57 68 / 0.2), #15141a);\n          }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip) *{\n            --csstools-light-dark-toggle--113:var(--csstools-color-scheme--light) #1c1b22;\n            --alt-text-tooltip-bg:var(--csstools-light-dark-toggle--113, #f0f0f4);\n            --csstools-light-dark-toggle--114:var(--csstools-color-scheme--light) #fbfbfe;\n            --alt-text-tooltip-fg:var(--csstools-light-dark-toggle--114, #15141a);\n            --csstools-light-dark-toggle--115:var(--csstools-color-scheme--light) #15141a;\n            --alt-text-tooltip-shadow:0 2px 6px 0 var(--csstools-light-dark-toggle--115, rgb(58 57 68 / 0.2));\n  }\n}\n\n@media screen and (forced-colors: active){\n\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){\n              --alt-text-tooltip-bg:Canvas;\n              --alt-text-tooltip-fg:CanvasText;\n              --alt-text-tooltip-border:CanvasText;\n              --alt-text-tooltip-shadow:none;\n          }\n            }\n\n.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){\n\n            display:inline-flex;\n            flex-direction:column;\n            align-items:center;\n            justify-content:center;\n            position:absolute;\n            top:calc(100% + 2px);\n            inset-inline-start:0;\n            padding-block:2px 3px;\n            padding-inline:3px;\n            max-width:300px;\n            width:-moz-max-content;\n            width:max-content;\n            height:auto;\n            font-size:12px;\n\n            border:0.5px solid var(--alt-text-tooltip-border);\n            background:var(--alt-text-tooltip-bg);\n            box-shadow:var(--alt-text-tooltip-shadow);\n            color:var(--alt-text-tooltip-fg);\n\n            pointer-events:none;\n          }\n\n:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment{\n        width:var(--editor-toolbar-height);\n      }\n\n:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment)::before{\n          content:\"\";\n          -webkit-mask-image:var(--comment-edit-button-icon);\n                  mask-image:var(--comment-edit-button-icon);\n          -webkit-mask-repeat:no-repeat;\n                  mask-repeat:no-repeat;\n          -webkit-mask-position:center;\n                  mask-position:center;\n          display:inline-block;\n          background-color:var(--editor-toolbar-fg-color);\n          width:100%;\n          height:100%;\n        }\n\n.annotationEditorLayer .freeTextEditor{\n  padding:calc(var(--freetext-padding) * var(--total-scale-factor));\n  width:auto;\n  height:auto;\n  touch-action:none;\n}\n\n.annotationEditorLayer .freeTextEditor .internal{\n  background:transparent;\n  border:none;\n  inset:0;\n  overflow:visible;\n  white-space:nowrap;\n  font:10px sans-serif;\n  line-height:var(--freetext-line-height);\n  text-align:start;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n}\n\n.annotationEditorLayer .freeTextEditor .overlay{\n  position:absolute;\n  display:none;\n  background:transparent;\n  inset:0;\n  width:100%;\n  height:100%;\n}\n\n.annotationEditorLayer freeTextEditor .overlay.enabled{\n  display:block;\n}\n\n.annotationEditorLayer .freeTextEditor .internal:empty::before{\n  content:attr(default-content);\n  color:gray;\n}\n\n.annotationEditorLayer .freeTextEditor .internal:focus{\n  outline:none;\n  -webkit-user-select:auto;\n     -moz-user-select:auto;\n          user-select:auto;\n}\n\n.annotationEditorLayer .inkEditor{\n  width:100%;\n  height:100%;\n}\n\n.annotationEditorLayer .inkEditor.editing{\n  cursor:inherit;\n}\n\n.annotationEditorLayer .inkEditor .inkEditorCanvas{\n  position:absolute;\n  inset:0;\n  width:100%;\n  height:100%;\n  touch-action:none;\n}\n\n.annotationEditorLayer .stampEditor{\n  width:auto;\n  height:auto;\n}\n\n:is(.annotationEditorLayer .stampEditor) canvas{\n    position:absolute;\n    width:100%;\n    height:100%;\n    margin:0;\n    top:0;\n    left:0;\n  }\n\n:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{\n    --csstools-light-dark-toggle--116:var(--csstools-color-scheme--light) #52525e;\n    --no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--116, #f0f0f4);\n    --csstools-light-dark-toggle--117:var(--csstools-color-scheme--light) #fbfbfe;\n    --no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--117, #cfcfd8);\n    --csstools-light-dark-toggle--118:var(--csstools-color-scheme--light) #15141a;\n    --no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--118, #5b5b66);\n  }\n\n@supports (color: light-dark(red, red)){\n:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{\n    --no-alt-text-badge-border-color:light-dark(#f0f0f4, #52525e);\n    --no-alt-text-badge-bg-color:light-dark(#cfcfd8, #fbfbfe);\n    --no-alt-text-badge-fg-color:light-dark(#5b5b66, #15141a);\n  }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge) *{\n    --csstools-light-dark-toggle--116:var(--csstools-color-scheme--light) #52525e;\n    --no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--116, #f0f0f4);\n    --csstools-light-dark-toggle--117:var(--csstools-color-scheme--light) #fbfbfe;\n    --no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--117, #cfcfd8);\n    --csstools-light-dark-toggle--118:var(--csstools-color-scheme--light) #15141a;\n    --no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--118, #5b5b66);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{\n      --no-alt-text-badge-border-color:ButtonText;\n      --no-alt-text-badge-bg-color:ButtonFace;\n      --no-alt-text-badge-fg-color:ButtonText;\n  }\n    }\n\n:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{\n\n    position:absolute;\n    inset-inline-end:5px;\n    inset-block-end:5px;\n    display:inline-flex;\n    width:32px;\n    height:32px;\n    padding:3px;\n    justify-content:center;\n    align-items:center;\n    pointer-events:none;\n    z-index:1;\n\n    border-radius:2px;\n    border:1px solid var(--no-alt-text-badge-border-color);\n    background:var(--no-alt-text-badge-bg-color);\n  }\n\n:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge)::before{\n      content:\"\";\n      display:inline-block;\n      width:16px;\n      height:16px;\n      -webkit-mask-image:var(--new-alt-text-warning-image);\n              mask-image:var(--new-alt-text-warning-image);\n      -webkit-mask-size:cover;\n              mask-size:cover;\n      background-color:var(--no-alt-text-badge-fg-color);\n    }\n\n:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers{\n      position:absolute;\n      inset:0;\n      z-index:1;\n    }\n\n.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers){\n        display:none;\n      }\n\n:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer{\n        width:var(--resizer-size);\n        height:var(--resizer-size);\n        background:content-box var(--resizer-bg-color);\n        border:var(--focus-outline-around);\n        border-radius:2px;\n        position:absolute;\n      }\n\n.topLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          top:var(--resizer-shift);\n          left:var(--resizer-shift);\n        }\n\n.topMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          top:var(--resizer-shift);\n          left:calc(50% + var(--resizer-shift));\n        }\n\n.topRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          top:var(--resizer-shift);\n          right:var(--resizer-shift);\n        }\n\n.middleRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          top:calc(50% + var(--resizer-shift));\n          right:var(--resizer-shift);\n        }\n\n.bottomRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          bottom:var(--resizer-shift);\n          right:var(--resizer-shift);\n        }\n\n.bottomMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          bottom:var(--resizer-shift);\n          left:calc(50% + var(--resizer-shift));\n        }\n\n.bottomLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          bottom:var(--resizer-shift);\n          left:var(--resizer-shift);\n        }\n\n.middleLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){\n          top:calc(50% + var(--resizer-shift));\n          left:var(--resizer-shift);\n        }\n\n.topLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer){\n        cursor:nwse-resize;\n      }\n\n.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer){\n        cursor:ns-resize;\n      }\n\n.topRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer){\n        cursor:nesw-resize;\n      }\n\n.middleRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"])) > .resizers > .resizer){\n        cursor:ew-resize;\n      }\n\n.topLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer){\n        cursor:nesw-resize;\n      }\n\n.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer){\n        cursor:ew-resize;\n      }\n\n.topRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer){\n        cursor:nwse-resize;\n      }\n\n.middleRight:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation=\"0\"] :is([data-editor-rotation=\"90\"],[data-editor-rotation=\"270\"]),.annotationEditorLayer[data-main-rotation=\"90\"] :is([data-editor-rotation=\"0\"],[data-editor-rotation=\"180\"]),.annotationEditorLayer[data-main-rotation=\"180\"] :is([data-editor-rotation=\"270\"],[data-editor-rotation=\"90\"]),.annotationEditorLayer[data-main-rotation=\"270\"] :is([data-editor-rotation=\"180\"],[data-editor-rotation=\"0\"])) > .resizers > .resizer){\n        cursor:ns-resize;\n      }\n\n:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"0\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"180\"])) .editToolbar{\n      rotate:270deg;\n    }\n\n[dir=\"ltr\"] :is(:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"0\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"180\"])) .editToolbar){\n        inset-inline-end:calc(0px - var(--editor-toolbar-vert-offset));\n        inset-block-start:0;\n      }\n\n[dir=\"rtl\"] :is(:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"0\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"180\"])) .editToolbar){\n        inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));\n        inset-block-start:0;\n      }\n\n:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"180\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"0\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"270\"])) .editToolbar{\n      rotate:180deg;\n      inset-inline-end:100%;\n      inset-block-start:calc(0px - var(--editor-toolbar-vert-offset));\n    }\n\n:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"180\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"0\"])) .editToolbar{\n      rotate:90deg;\n    }\n\n[dir=\"ltr\"] :is(:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"180\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"0\"])) .editToolbar){\n        inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));\n        inset-block-start:100%;\n      }\n\n[dir=\"rtl\"] :is(:is(.annotationEditorLayer :is([data-main-rotation=\"0\"] [data-editor-rotation=\"270\"],[data-main-rotation=\"90\"] [data-editor-rotation=\"180\"],[data-main-rotation=\"180\"] [data-editor-rotation=\"90\"],[data-main-rotation=\"270\"] [data-editor-rotation=\"0\"])) .editToolbar){\n        inset-inline-start:calc(0px - var(--editor-toolbar-vert-offset));\n        inset-block-start:0;\n      }\n\n.dialog.altText::backdrop{\n    -webkit-mask:url(#alttext-manager-mask);\n            mask:url(#alttext-manager-mask);\n  }\n\n.dialog.altText.positioned{\n    margin:0;\n  }\n\n.dialog.altText #altTextContainer{\n    width:300px;\n    height:-moz-fit-content;\n    height:fit-content;\n    display:inline-flex;\n    flex-direction:column;\n    align-items:flex-start;\n    gap:16px;\n  }\n\n:is(.dialog.altText #altTextContainer) #overallDescription{\n      display:flex;\n      flex-direction:column;\n      align-items:flex-start;\n      gap:4px;\n      align-self:stretch;\n    }\n\n:is(:is(.dialog.altText #altTextContainer) #overallDescription) span{\n        align-self:stretch;\n      }\n\n:is(:is(.dialog.altText #altTextContainer) #overallDescription) .title{\n        font-size:13px;\n        font-style:normal;\n        font-weight:590;\n      }\n\n:is(.dialog.altText #altTextContainer) #addDescription{\n      display:flex;\n      flex-direction:column;\n      align-items:stretch;\n      gap:8px;\n    }\n\n:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea{\n        flex:1;\n        padding-inline:24px 10px;\n      }\n\n:is(:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea) textarea{\n          width:100%;\n          min-height:75px;\n        }\n\n:is(.dialog.altText #altTextContainer) #buttons{\n      display:flex;\n      justify-content:flex-end;\n      align-items:flex-start;\n      gap:8px;\n      align-self:stretch;\n    }\n\n.dialog.newAltText{\n  --new-alt-text-ai-disclaimer-icon:url(images/altText_disclaimer.svg);\n  --new-alt-text-spinner-icon:url(images/altText_spinner.svg);\n  --csstools-light-dark-toggle--119:var(--csstools-color-scheme--light) #2b2a33;\n  --preview-image-bg-color:var(--csstools-light-dark-toggle--119, #f0f0f4);\n  --preview-image-border:none;\n}\n\n@supports (color: light-dark(red, red)){\n.dialog.newAltText{\n  --preview-image-bg-color:light-dark(#f0f0f4, #2b2a33);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.dialog.newAltText *{\n  --csstools-light-dark-toggle--119:var(--csstools-color-scheme--light) #2b2a33;\n  --preview-image-bg-color:var(--csstools-light-dark-toggle--119, #f0f0f4);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n.dialog.newAltText{\n    --preview-image-bg-color:ButtonFace;\n    --preview-image-border:1px solid ButtonText;\n}\n  }\n\n.dialog.newAltText{\n\n  width:80%;\n  max-width:570px;\n  min-width:300px;\n  padding:0;\n}\n\n.dialog.newAltText.noAi #newAltTextDisclaimer,.dialog.newAltText.noAi #newAltTextCreateAutomatically{\n      display:none !important;\n    }\n\n.dialog.newAltText.aiInstalling #newAltTextCreateAutomatically{\n      display:none !important;\n    }\n\n.dialog.newAltText.aiInstalling #newAltTextDownloadModel{\n      display:flex !important;\n    }\n\n.dialog.newAltText.error #newAltTextNotNow{\n      display:none !important;\n    }\n\n.dialog.newAltText.error #newAltTextCancel{\n      display:inline-block !important;\n    }\n\n.dialog.newAltText:not(.error) #newAltTextError{\n    display:none !important;\n  }\n\n.dialog.newAltText #newAltTextContainer{\n    display:flex;\n    width:auto;\n    padding:16px;\n    flex-direction:column;\n    justify-content:flex-end;\n    align-items:flex-start;\n    gap:12px;\n    flex:0 1 auto;\n    line-height:normal;\n  }\n\n:is(.dialog.newAltText #newAltTextContainer) #mainContent{\n      display:flex;\n      justify-content:flex-end;\n      align-items:flex-start;\n      gap:12px;\n      align-self:stretch;\n      flex:1 1 auto;\n    }\n\n:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionAndSettings{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        gap:16px;\n        flex:1 0 0;\n        align-self:stretch;\n      }\n\n:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction{\n        display:flex;\n        flex-direction:column;\n        align-items:flex-start;\n        gap:8px;\n        align-self:stretch;\n        flex:1 1 auto;\n      }\n\n:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer{\n          width:100%;\n          height:70px;\n          position:relative;\n        }\n\n:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea{\n            width:100%;\n            height:100%;\n            padding:8px;\n          }\n\n:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::-moz-placeholder{\n              color:var(--text-secondary-color);\n            }\n\n:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::placeholder{\n              color:var(--text-secondary-color);\n            }\n\n:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{\n            display:none;\n            position:absolute;\n            width:16px;\n            height:16px;\n            inset-inline-start:8px;\n            inset-block-start:8px;\n            -webkit-mask-size:cover;\n                    mask-size:cover;\n            background-color:var(--text-secondary-color);\n            pointer-events:none;\n          }\n\n.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::-moz-placeholder{\n              color:transparent;\n            }\n\n.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::placeholder{\n              color:transparent;\n            }\n\n.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{\n              display:inline-block;\n              -webkit-mask-image:var(--new-alt-text-spinner-icon);\n                      mask-image:var(--new-alt-text-spinner-icon);\n            }\n\n:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescription{\n          font-size:11px;\n        }\n\n:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer{\n          display:flex;\n          flex-direction:row;\n          align-items:flex-start;\n          gap:4px;\n          font-size:11px;\n        }\n\n:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer)::before{\n            content:\"\";\n            display:inline-block;\n            width:17px;\n            height:16px;\n            -webkit-mask-image:var(--new-alt-text-ai-disclaimer-icon);\n                    mask-image:var(--new-alt-text-ai-disclaimer-icon);\n            -webkit-mask-size:cover;\n                    mask-size:cover;\n            background-color:var(--text-secondary-color);\n            flex:1 0 auto;\n          }\n\n:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel{\n        display:flex;\n        align-items:center;\n        gap:4px;\n        align-self:stretch;\n      }\n\n:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel)::before{\n          content:\"\";\n          display:inline-block;\n          width:16px;\n          height:16px;\n          -webkit-mask-image:var(--new-alt-text-spinner-icon);\n                  mask-image:var(--new-alt-text-spinner-icon);\n          -webkit-mask-size:cover;\n                  mask-size:cover;\n          background-color:var(--text-secondary-color);\n        }\n\n:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview{\n        width:180px;\n        aspect-ratio:1;\n        display:flex;\n        justify-content:center;\n        align-items:center;\n        flex:0 0 auto;\n        background-color:var(--preview-image-bg-color);\n        border:var(--preview-image-border);\n      }\n\n:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview)  > canvas{\n          max-width:100%;\n          max-height:100%;\n        }\n\n.colorPicker{\n  --csstools-light-dark-toggle--120:var(--csstools-color-scheme--light) #80ebff;\n  --hover-outline-color:var(--csstools-light-dark-toggle--120, #0250bb);\n  --csstools-light-dark-toggle--121:var(--csstools-color-scheme--light) #aaf2ff;\n  --selected-outline-color:var(--csstools-light-dark-toggle--121, #0060df);\n  --csstools-light-dark-toggle--122:var(--csstools-color-scheme--light) #52525e;\n  --swatch-border-color:var(--csstools-light-dark-toggle--122, #cfcfd8);\n}\n\n@supports (color: light-dark(red, red)){\n.colorPicker{\n  --hover-outline-color:light-dark(#0250bb, #80ebff);\n  --selected-outline-color:light-dark(#0060df, #aaf2ff);\n  --swatch-border-color:light-dark(#cfcfd8, #52525e);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.colorPicker *{\n  --csstools-light-dark-toggle--120:var(--csstools-color-scheme--light) #80ebff;\n  --hover-outline-color:var(--csstools-light-dark-toggle--120, #0250bb);\n  --csstools-light-dark-toggle--121:var(--csstools-color-scheme--light) #aaf2ff;\n  --selected-outline-color:var(--csstools-light-dark-toggle--121, #0060df);\n  --csstools-light-dark-toggle--122:var(--csstools-color-scheme--light) #52525e;\n  --swatch-border-color:var(--csstools-light-dark-toggle--122, #cfcfd8);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n.colorPicker{\n    --hover-outline-color:Highlight;\n    --selected-outline-color:var(--hover-outline-color);\n    --swatch-border-color:ButtonText;\n}\n  }\n\n.colorPicker .swatch{\n    width:16px;\n    height:16px;\n    border:1px solid var(--swatch-border-color);\n    border-radius:100%;\n    outline-offset:2px;\n    box-sizing:border-box;\n    forced-color-adjust:none;\n  }\n\n.colorPicker button:is(:hover,.selected) > .swatch{\n    border:none;\n  }\n\n.basicColorPicker{\n  width:28px;\n}\n\n.basicColorPicker::-moz-color-swatch{\n    border-radius:100%;\n  }\n\n.basicColorPicker::-webkit-color-swatch{\n    border-radius:100%;\n  }\n\n.annotationEditorLayer[data-main-rotation=\"0\"] .highlightEditor:not(.free) > .editToolbar{\n      rotate:0deg;\n    }\n\n.annotationEditorLayer[data-main-rotation=\"90\"] .highlightEditor:not(.free) > .editToolbar{\n      rotate:270deg;\n    }\n\n.annotationEditorLayer[data-main-rotation=\"180\"] .highlightEditor:not(.free) > .editToolbar{\n      rotate:180deg;\n    }\n\n.annotationEditorLayer[data-main-rotation=\"270\"] .highlightEditor:not(.free) > .editToolbar{\n      rotate:90deg;\n    }\n\n.annotationEditorLayer .highlightEditor{\n    position:absolute;\n    background:transparent;\n    z-index:1;\n    cursor:auto;\n    max-width:100%;\n    max-height:100%;\n    border:none;\n    outline:none;\n    pointer-events:none;\n    transform-origin:0 0;\n  }\n\n:is(.annotationEditorLayer .highlightEditor):not(.free){\n      transform:none;\n    }\n\n:is(.annotationEditorLayer .highlightEditor) .internal{\n      position:absolute;\n      top:0;\n      left:0;\n      width:100%;\n      height:100%;\n      pointer-events:auto;\n    }\n\n.disabled:is(.annotationEditorLayer .highlightEditor) .internal{\n      pointer-events:none;\n    }\n\n.selectedEditor:is(.annotationEditorLayer .highlightEditor) .internal{\n        cursor:pointer;\n      }\n\n:is(.annotationEditorLayer .highlightEditor) .editToolbar{\n      --editor-toolbar-colorpicker-arrow-image:url(images/toolbarButton-menuArrow.svg);\n\n      transform-origin:center !important;\n    }\n\n:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker{\n          position:relative;\n          width:auto;\n          display:flex;\n          justify-content:center;\n          align-items:center;\n          gap:4px;\n          padding:4px;\n        }\n\n:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker)::after{\n            content:\"\";\n            -webkit-mask-image:var(--editor-toolbar-colorpicker-arrow-image);\n                    mask-image:var(--editor-toolbar-colorpicker-arrow-image);\n            -webkit-mask-repeat:no-repeat;\n                    mask-repeat:no-repeat;\n            -webkit-mask-position:center;\n                    mask-position:center;\n            display:inline-block;\n            background-color:var(--editor-toolbar-fg-color);\n            width:12px;\n            height:12px;\n          }\n\n:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):hover::after{\n            background-color:var(--editor-toolbar-hover-fg-color);\n          }\n\n:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden)){\n            background-color:var(--editor-toolbar-hover-bg-color);\n          }\n\n:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden))::after{\n              scale:-1;\n            }\n\n:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown{\n            position:absolute;\n            display:flex;\n            justify-content:center;\n            align-items:center;\n            flex-direction:column;\n            gap:11px;\n            padding-block:8px;\n            border-radius:6px;\n            background-color:var(--editor-toolbar-bg-color);\n            border:1px solid var(--editor-toolbar-border-color);\n            box-shadow:var(--editor-toolbar-shadow);\n            inset-block-start:calc(100% + 4px);\n            width:calc(100% + 2 * var(--editor-toolbar-padding));\n          }\n\n:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button{\n              width:100%;\n              height:auto;\n              border:none;\n              cursor:pointer;\n              display:flex;\n              justify-content:center;\n              align-items:center;\n              background:none;\n            }\n\n:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:active,:focus-visible){\n                outline:none;\n              }\n\n:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button)  > .swatch{\n                outline-offset:2px;\n              }\n\n[aria-selected=\"true\"]:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button) > .swatch{\n                outline:2px solid var(--selected-outline-color);\n              }\n\n:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible) > .swatch{\n                outline:2px solid var(--hover-outline-color);\n              }\n\n.editorParamsToolbar:has(#highlightParamsToolbarContainer){\n  padding:unset;\n}\n\n#highlightParamsToolbarContainer{\n  gap:16px;\n  padding-inline:10px;\n  padding-block-end:12px;\n}\n\n#highlightParamsToolbarContainer .colorPicker{\n    display:flex;\n    flex-direction:column;\n    gap:8px;\n  }\n\n:is(#highlightParamsToolbarContainer .colorPicker) .dropdown{\n      display:flex;\n      justify-content:space-between;\n      align-items:center;\n      flex-direction:row;\n      height:auto;\n    }\n\n:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button{\n        width:auto;\n        height:auto;\n        border:none;\n        cursor:pointer;\n        display:flex;\n        justify-content:center;\n        align-items:center;\n        background:none;\n        flex:0 0 auto;\n        padding:0;\n      }\n\n:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button) .swatch{\n          width:24px;\n          height:24px;\n        }\n\n:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:active,:focus-visible){\n          outline:none;\n        }\n\n[aria-selected=\"true\"]:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button) > .swatch{\n          outline:2px solid var(--selected-outline-color);\n        }\n\n:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible) > .swatch{\n          outline:2px solid var(--hover-outline-color);\n        }\n\n#highlightParamsToolbarContainer #editorHighlightThickness{\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    gap:4px;\n    align-self:stretch;\n  }\n\n:is(#highlightParamsToolbarContainer #editorHighlightThickness) .editorParamsLabel{\n      height:auto;\n      align-self:stretch;\n    }\n\n:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{\n      display:flex;\n      justify-content:space-between;\n      align-items:center;\n      align-self:stretch;\n\n      --csstools-light-dark-toggle--123:var(--csstools-color-scheme--light) #80808e;\n\n      --example-color:var(--csstools-light-dark-toggle--123, #bfbfc9);\n    }\n\n@supports (color: light-dark(red, red)){\n:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{\n\n      --example-color:light-dark(#bfbfc9, #80808e);\n    }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) *{\n\n      --csstools-light-dark-toggle--123:var(--csstools-color-scheme--light) #80808e;\n\n      --example-color:var(--csstools-light-dark-toggle--123, #bfbfc9);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{\n        --example-color:CanvasText;\n    }\n      }\n\n:is(:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) > .editorParamsSlider[disabled]){\n        opacity:0.4;\n      }\n\n:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::before,:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::after{\n        content:\"\";\n        width:8px;\n        aspect-ratio:1;\n        display:block;\n        border-radius:100%;\n        background-color:var(--example-color);\n      }\n\n:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::after{\n        width:24px;\n      }\n\n:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) .editorParamsSlider{\n        width:unset;\n        height:14px;\n      }\n\n#highlightParamsToolbarContainer #editorHighlightVisibility{\n    display:flex;\n    flex-direction:column;\n    align-items:flex-start;\n    gap:8px;\n    align-self:stretch;\n  }\n\n:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{\n      --csstools-light-dark-toggle--124:var(--csstools-color-scheme--light) #8f8f9d;\n      --divider-color:var(--csstools-light-dark-toggle--124, #d7d7db);\n    }\n\n@supports (color: light-dark(red, red)){\n:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{\n      --divider-color:light-dark(#d7d7db, #8f8f9d);\n    }\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:is(:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider) *{\n      --csstools-light-dark-toggle--124:var(--csstools-color-scheme--light) #8f8f9d;\n      --divider-color:var(--csstools-light-dark-toggle--124, #d7d7db);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{\n        --divider-color:CanvasText;\n    }\n      }\n\n:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{\n\n      margin-block:4px;\n      width:100%;\n      height:1px;\n      background-color:var(--divider-color);\n    }\n\n:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .toggler{\n      display:flex;\n      justify-content:space-between;\n      align-items:center;\n      align-self:stretch;\n    }\n\n#altTextSettingsDialog{\n  padding:16px;\n}\n\n#altTextSettingsDialog #altTextSettingsContainer{\n    display:flex;\n    width:573px;\n    flex-direction:column;\n    gap:16px;\n  }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) .mainContainer{\n      gap:16px;\n    }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) .description{\n      color:var(--text-secondary-color);\n    }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings{\n      display:flex;\n      flex-direction:column;\n      gap:12px;\n    }\n\n:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings) button{\n        width:-moz-fit-content;\n        width:fit-content;\n      }\n\n.download:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings) #deleteModelButton{\n          display:none;\n        }\n\n:is(:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings):not(.download) #downloadModelButton{\n          display:none;\n        }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticAltText,:is(#altTextSettingsDialog #altTextSettingsContainer) #altTextEditor{\n      display:flex;\n      flex-direction:column;\n      gap:8px;\n    }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) #createModelDescription,:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings,:is(#altTextSettingsDialog #altTextSettingsContainer) #showAltTextDialogDescription{\n      padding-inline-start:40px;\n    }\n\n:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticSettings{\n      display:flex;\n      flex-direction:column;\n      gap:16px;\n    }\n\n.sidebar{\n  --csstools-light-dark-toggle--125:var(--csstools-color-scheme--light) #23222b;\n  --sidebar-bg-color:var(--csstools-light-dark-toggle--125, #fff);\n  --csstools-light-dark-toggle--126:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);\n  --sidebar-border-color:var(--csstools-light-dark-toggle--126, rgb(21 20 26 / 0.1));\n  --csstools-light-dark-toggle--127:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n  --csstools-light-dark-toggle--128:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n  --sidebar-box-shadow:0 0.25px 0.75px var(--csstools-light-dark-toggle--127, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--128, rgb(0 0 0 / 0.1));\n  --sidebar-border-radius:8px;\n  --sidebar-padding:5px;\n  --sidebar-min-width:180px;\n  --sidebar-max-width:632px;\n  --sidebar-width:239px;\n  --resizer-width:4px;\n  --csstools-light-dark-toggle--129:var(--csstools-color-scheme--light) #00cadb;\n  --resizer-hover-bg-color:var(--csstools-light-dark-toggle--129, #0062fa);\n}\n\n@supports (color: light-dark(red, red)){\n.sidebar{\n  --sidebar-bg-color:light-dark(#fff, #23222b);\n}\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n.sidebar{\n  --sidebar-border-color:light-dark(\n    rgb(21 20 26 / 0.1),\n    rgb(251 251 254 / 0.1)\n  );\n  --sidebar-box-shadow:0 0.25px 0.75px light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 2px 6px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));\n}\n}\n\n@supports (color: light-dark(red, red)){\n.sidebar{\n  --resizer-hover-bg-color:light-dark(#0062fa, #00cadb);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n.sidebar *{\n  --csstools-light-dark-toggle--125:var(--csstools-color-scheme--light) #23222b;\n  --sidebar-bg-color:var(--csstools-light-dark-toggle--125, #fff);\n  --csstools-light-dark-toggle--126:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);\n  --sidebar-border-color:var(--csstools-light-dark-toggle--126, rgb(21 20 26 / 0.1));\n  --csstools-light-dark-toggle--127:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);\n  --csstools-light-dark-toggle--128:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);\n  --sidebar-box-shadow:0 0.25px 0.75px var(--csstools-light-dark-toggle--127, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--128, rgb(0 0 0 / 0.1));\n  --csstools-light-dark-toggle--129:var(--csstools-color-scheme--light) #00cadb;\n  --resizer-hover-bg-color:var(--csstools-light-dark-toggle--129, #0062fa);\n  }\n}\n\n@media screen and (forced-colors: active){\n\n.sidebar{\n    --sidebar-bg-color:Canvas;\n    --sidebar-border-color:CanvasText;\n    --sidebar-box-shadow:none;\n    --resizer-hover-bg-color:CanvasText;\n}\n  }\n\n.sidebar{\n\n  border-radius:var(--sidebar-border-radius);\n  box-shadow:var(--sidebar-box-shadow);\n  border:1px solid var(--sidebar-border-color);\n  background-color:var(--sidebar-bg-color);\n  inset-block-start:calc(100% + var(--doorhanger-height) - 2px);\n  padding-block:var(--sidebar-padding);\n  width:var(--sidebar-width);\n  min-width:var(--sidebar-min-width);\n  max-width:var(--sidebar-max-width);\n}\n\n.sidebar .sidebarResizer{\n    width:var(--resizer-width);\n    background-color:transparent;\n    forced-color-adjust:none;\n    cursor:ew-resize;\n    position:absolute;\n    inset-block:calc(var(--sidebar-padding) + var(--sidebar-border-radius));\n    inset-inline-start:calc(0px - var(--resizer-width) / 2);\n    transition:background-color 0.5s ease-in-out;\n    box-sizing:border-box;\n    border:1px solid transparent;\n    border-block-width:0;\n    background-clip:content-box;\n  }\n\n:is(.sidebar .sidebarResizer):hover{\n      background-color:var(--resizer-hover-bg-color);\n    }\n\n.sidebar.resizing{\n    cursor:ew-resize;\n    -webkit-user-select:none;\n       -moz-user-select:none;\n            user-select:none;\n  }\n\n.sidebar.resizing :not(.sidebarResizer){\n      pointer-events:none;\n    }\n\n:root{\n  --csstools-color-scheme--light:initial;\n  color-scheme:light dark;\n\n  --viewer-container-height:0;\n  --pdfViewer-padding-bottom:0;\n  --page-margin:1px auto -8px;\n  --page-border:9px solid transparent;\n  --spreadHorizontalWrapped-margin-LR:-3.5px;\n  --loading-icon-delay:400ms;\n  --csstools-light-dark-toggle--130:var(--csstools-color-scheme--light) #0df;\n  --focus-ring-color:var(--csstools-light-dark-toggle--130, #0060df);\n  --focus-ring-outline:2px solid var(--focus-ring-color);\n}\n\n@supports (color: light-dark(red, red)){\n:root{\n  --focus-ring-color:light-dark(#0060df, #0df);\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:root *{\n  --csstools-light-dark-toggle--130:var(--csstools-color-scheme--light) #0df;\n  --focus-ring-color:var(--csstools-light-dark-toggle--130, #0060df);\n  }\n}\n\n@media (prefers-color-scheme: dark){\n\n:root{\n  --csstools-color-scheme--light:;\n}\n}\n\n@media screen and (forced-colors: active){\n\n:root{\n    --pdfViewer-padding-bottom:9px;\n    --page-margin:8px auto -1px;\n    --page-border:1px solid CanvasText;\n    --spreadHorizontalWrapped-margin-LR:3.5px;\n    --focus-ring-color:CanvasText;\n}\n  }\n\n[data-main-rotation=\"90\"]{\n  transform:rotate(90deg) translateY(-100%);\n}\n[data-main-rotation=\"180\"]{\n  transform:rotate(180deg) translate(-100%, -100%);\n}\n[data-main-rotation=\"270\"]{\n  transform:rotate(270deg) translateX(-100%);\n}\n\n#hiddenCopyElement,\n.hiddenCanvasElement{\n  position:absolute;\n  top:0;\n  left:0;\n  width:0;\n  height:0;\n  display:none;\n}\n\n.pdfViewer{\n  --scale-factor:1;\n  --page-bg-color:unset;\n\n  padding-bottom:var(--pdfViewer-padding-bottom);\n\n  --hcm-highlight-filter:none;\n  --hcm-highlight-selected-filter:none;\n}\n\n@media screen and (forced-colors: active){\n\n.pdfViewer{\n    --hcm-highlight-filter:invert(100%);\n}\n  }\n\n.pdfViewer.copyAll{\n    cursor:wait;\n  }\n\n.pdfViewer .canvasWrapper{\n    overflow:hidden;\n    width:100%;\n    height:100%;\n  }\n\n:is(.pdfViewer .canvasWrapper) canvas{\n      position:absolute;\n      top:0;\n      left:0;\n      margin:0;\n      display:block;\n      width:100%;\n      height:100%;\n      contain:content;\n    }\n\n:is(:is(.pdfViewer .canvasWrapper) canvas) .structTree{\n        contain:strict;\n      }\n\n.detailView:is(:is(.pdfViewer .canvasWrapper) canvas){\n        image-rendering:pixelated;\n      }\n\n.pdfViewer .page{\n  --user-unit:1;\n  --total-scale-factor:calc(var(--scale-factor) * var(--user-unit));\n  --scale-round-x:1px;\n  --scale-round-y:1px;\n\n  direction:ltr;\n  width:816px;\n  height:1056px;\n  margin:var(--page-margin);\n  position:relative;\n  overflow:visible;\n  border:var(--page-border);\n  background-clip:content-box;\n  background-color:var(--page-bg-color, rgb(255 255 255));\n}\n\n.pdfViewer .dummyPage{\n  position:relative;\n  width:0;\n  height:var(--viewer-container-height);\n}\n\n.pdfViewer.noUserSelect{\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n}\n\n.pdfViewer.removePageBorders .page{\n  margin:0 auto 10px;\n  border:none;\n}\n\n.pdfViewer:is(.scrollHorizontal, .scrollWrapped),\n.spread{\n  margin-inline:3.5px;\n  text-align:center;\n}\n\n.pdfViewer.scrollHorizontal,\n.spread{\n  white-space:nowrap;\n}\n\n.pdfViewer.removePageBorders,\n.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .spread{\n  margin-inline:0;\n}\n\n.spread :is(.page, .dummyPage),\n.pdfViewer:is(.scrollHorizontal, .scrollWrapped) :is(.page, .spread){\n  display:inline-block;\n  vertical-align:middle;\n}\n\n.spread .page,\n.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .page{\n  margin-inline:var(--spreadHorizontalWrapped-margin-LR);\n}\n\n.pdfViewer.removePageBorders .spread .page,\n.pdfViewer.removePageBorders:is(.scrollHorizontal, .scrollWrapped) .page{\n  margin-inline:5px;\n}\n\n.pdfViewer .page.loadingIcon::after{\n  position:absolute;\n  top:0;\n  left:0;\n  content:\"\";\n  width:100%;\n  height:100%;\n  background:url(\"images/loading-icon.gif\") center no-repeat;\n  display:none;\n  transition-property:display;\n  transition-delay:var(--loading-icon-delay);\n  z-index:5;\n  contain:strict;\n}\n\n.pdfViewer .page.loading::after{\n  display:block;\n}\n\n.pdfViewer .page:not(.loading)::after{\n  transition-property:none;\n  display:none;\n}\n\n.pdfPresentationMode .pdfViewer{\n  padding-bottom:0;\n}\n\n.pdfPresentationMode .spread{\n  margin:0;\n}\n\n.pdfPresentationMode .pdfViewer .page{\n  margin:0 auto;\n  border:2px solid transparent;\n}\n\n:root{\n  --dir-factor:1;\n  --inline-start:left;\n  --inline-end:right;\n\n  --sidebar-width:200px;\n  --sidebar-transition-duration:200ms;\n  --sidebar-transition-timing-function:ease;\n\n  --toolbar-height:32px;\n  --toolbar-horizontal-padding:1px;\n  --toolbar-vertical-padding:2px;\n  --icon-size:16px;\n\n  --toolbar-icon-opacity:0.7;\n  --doorhanger-icon-opacity:0.9;\n  --doorhanger-height:8px;\n\n  --csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(249 249 250);\n\n  --main-color:var(--csstools-light-dark-toggle--0, rgb(12 12 13));\n  --csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(42 42 46);\n  --body-bg-color:var(--csstools-light-dark-toggle--1, rgb(212 212 215));\n  --csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(0 96 223);\n  --progressBar-color:var(--csstools-light-dark-toggle--2, rgb(10 132 255));\n  --csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) rgb(40 40 43);\n  --progressBar-bg-color:var(--csstools-light-dark-toggle--3, rgb(221 221 222));\n  --csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) rgb(20 68 133);\n  --progressBar-blend-color:var(--csstools-light-dark-toggle--4, rgb(116 177 239));\n  --csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) rgb(121 121 123);\n  --scrollbar-color:var(--csstools-light-dark-toggle--5, auto);\n  --csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(35 35 39);\n  --scrollbar-bg-color:var(--csstools-light-dark-toggle--6, auto);\n  --csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toolbar-icon-bg-color:var(--csstools-light-dark-toggle--7, rgb(0 0 0));\n  --csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toolbar-icon-hover-bg-color:var(--csstools-light-dark-toggle--8, rgb(0 0 0));\n\n  --csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(42 42 46 / 0.9);\n\n  --sidebar-narrow-bg-color:var(--csstools-light-dark-toggle--9, rgb(212 212 215 / 0.9));\n  --csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) rgb(50 50 52);\n  --sidebar-toolbar-bg-color:var(--csstools-light-dark-toggle--10, rgb(245 246 247));\n  --csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) rgb(56 56 61);\n  --toolbar-bg-color:var(--csstools-light-dark-toggle--11, rgb(249 249 250));\n  --csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) rgb(12 12 13);\n  --toolbar-border-color:var(--csstools-light-dark-toggle--12, rgb(184 184 184));\n  --toolbar-box-shadow:0 1px 0 var(--toolbar-border-color);\n  --toolbar-border-bottom:none;\n  --toolbarSidebar-box-shadow:inset calc(-1px * var(--dir-factor)) 0 0 rgb(0 0 0 / 0.25), 0 1px 0 rgb(0 0 0 / 0.15), 0 0 1px rgb(0 0 0 / 0.1);\n  --toolbarSidebar-border-bottom:none;\n  --button-hover-color:color-mix(in srgb, currentColor 17%, transparent);\n  --csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toggled-btn-color:var(--csstools-light-dark-toggle--13, rgb(0 0 0));\n  --toggled-btn-bg-color:rgb(0 0 0 / 0.3);\n  --toggled-hover-active-btn-color:rgb(0 0 0 / 0.4);\n  --toggled-hover-btn-outline:none;\n  --csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) rgb(74 74 79);\n  --dropdown-btn-bg-color:var(--csstools-light-dark-toggle--14, rgb(215 215 219));\n  --dropdown-btn-border:none;\n  --separator-color:rgb(0 0 0 / 0.3);\n  --csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) rgb(250 250 250);\n  --field-color:var(--csstools-light-dark-toggle--15, rgb(6 6 6));\n  --csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) rgb(64 64 68);\n  --field-bg-color:var(--csstools-light-dark-toggle--16, rgb(255 255 255));\n  --csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) rgb(115 115 115);\n  --field-border-color:var(--csstools-light-dark-toggle--17, rgb(187 187 188));\n  --csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);\n  --treeitem-color:var(--csstools-light-dark-toggle--18, rgb(0 0 0 / 0.8));\n  --csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);\n  --treeitem-bg-color:var(--csstools-light-dark-toggle--19, rgb(0 0 0 / 0.15));\n  --csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);\n  --treeitem-hover-color:var(--csstools-light-dark-toggle--20, rgb(0 0 0 / 0.9));\n  --csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);\n  --treeitem-selected-color:var(--csstools-light-dark-toggle--21, rgb(0 0 0 / 0.9));\n  --csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.25);\n  --treeitem-selected-bg-color:var(--csstools-light-dark-toggle--22, rgb(0 0 0 / 0.25));\n  --csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.1);\n  --thumbnail-hover-color:var(--csstools-light-dark-toggle--23, rgb(0 0 0 / 0.1));\n  --csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.2);\n  --thumbnail-selected-color:var(--csstools-light-dark-toggle--24, rgb(0 0 0 / 0.2));\n  --csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) #42414d;\n  --doorhanger-bg-color:var(--csstools-light-dark-toggle--25, rgb(255 255 255));\n  --csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) rgb(39 39 43);\n  --doorhanger-border-color:var(--csstools-light-dark-toggle--26, rgb(12 12 13 / 0.2));\n  --csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) rgb(249 249 250);\n  --doorhanger-hover-color:var(--csstools-light-dark-toggle--27, rgb(12 12 13));\n  --csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) rgb(92 92 97);\n  --doorhanger-separator-color:var(--csstools-light-dark-toggle--28, rgb(222 222 222));\n  --dialog-button-border:none;\n  --csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) rgb(92 92 97);\n  --dialog-button-bg-color:var(--csstools-light-dark-toggle--29, rgb(12 12 13 / 0.1));\n  --csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) rgb(115 115 115);\n  --dialog-button-hover-bg-color:var(--csstools-light-dark-toggle--30, rgb(12 12 13 / 0.3));\n\n  --loading-icon:url(images/loading.svg);\n  --treeitem-expanded-icon:url(images/treeitem-expanded.svg);\n  --treeitem-collapsed-icon:url(images/treeitem-collapsed.svg);\n  --toolbarButton-editorComment-icon:url(images/comment-editButton.svg);\n  --toolbarButton-editorFreeText-icon:url(images/toolbarButton-editorFreeText.svg);\n  --toolbarButton-editorHighlight-icon:url(images/toolbarButton-editorHighlight.svg);\n  --toolbarButton-editorInk-icon:url(images/toolbarButton-editorInk.svg);\n  --toolbarButton-editorStamp-icon:url(images/toolbarButton-editorStamp.svg);\n  --toolbarButton-editorSignature-icon:url(images/toolbarButton-editorSignature.svg);\n  --toolbarButton-menuArrow-icon:url(images/toolbarButton-menuArrow.svg);\n  --toolbarButton-sidebarToggle-icon:url(images/toolbarButton-sidebarToggle.svg);\n  --toolbarButton-secondaryToolbarToggle-icon:url(images/toolbarButton-secondaryToolbarToggle.svg);\n  --toolbarButton-pageUp-icon:url(images/toolbarButton-pageUp.svg);\n  --toolbarButton-pageDown-icon:url(images/toolbarButton-pageDown.svg);\n  --toolbarButton-zoomOut-icon:url(images/toolbarButton-zoomOut.svg);\n  --toolbarButton-zoomIn-icon:url(images/toolbarButton-zoomIn.svg);\n  --toolbarButton-presentationMode-icon:url(images/toolbarButton-presentationMode.svg);\n  --toolbarButton-print-icon:url(images/toolbarButton-print.svg);\n  --toolbarButton-openFile-icon:url(images/toolbarButton-openFile.svg);\n  --toolbarButton-download-icon:url(images/toolbarButton-download.svg);\n  --toolbarButton-bookmark-icon:url(images/toolbarButton-bookmark.svg);\n  --toolbarButton-viewThumbnail-icon:url(images/toolbarButton-viewThumbnail.svg);\n  --toolbarButton-viewOutline-icon:url(images/toolbarButton-viewOutline.svg);\n  --toolbarButton-viewAttachments-icon:url(images/toolbarButton-viewAttachments.svg);\n  --toolbarButton-viewLayers-icon:url(images/toolbarButton-viewLayers.svg);\n  --toolbarButton-currentOutlineItem-icon:url(images/toolbarButton-currentOutlineItem.svg);\n  --toolbarButton-search-icon:url(images/toolbarButton-search.svg);\n  --findbarButton-previous-icon:url(images/findbarButton-previous.svg);\n  --findbarButton-next-icon:url(images/findbarButton-next.svg);\n  --secondaryToolbarButton-firstPage-icon:url(images/secondaryToolbarButton-firstPage.svg);\n  --secondaryToolbarButton-lastPage-icon:url(images/secondaryToolbarButton-lastPage.svg);\n  --secondaryToolbarButton-rotateCcw-icon:url(images/secondaryToolbarButton-rotateCcw.svg);\n  --secondaryToolbarButton-rotateCw-icon:url(images/secondaryToolbarButton-rotateCw.svg);\n  --secondaryToolbarButton-selectTool-icon:url(images/secondaryToolbarButton-selectTool.svg);\n  --secondaryToolbarButton-handTool-icon:url(images/secondaryToolbarButton-handTool.svg);\n  --secondaryToolbarButton-scrollPage-icon:url(images/secondaryToolbarButton-scrollPage.svg);\n  --secondaryToolbarButton-scrollVertical-icon:url(images/secondaryToolbarButton-scrollVertical.svg);\n  --secondaryToolbarButton-scrollHorizontal-icon:url(images/secondaryToolbarButton-scrollHorizontal.svg);\n  --secondaryToolbarButton-scrollWrapped-icon:url(images/secondaryToolbarButton-scrollWrapped.svg);\n  --secondaryToolbarButton-spreadNone-icon:url(images/secondaryToolbarButton-spreadNone.svg);\n  --secondaryToolbarButton-spreadOdd-icon:url(images/secondaryToolbarButton-spreadOdd.svg);\n  --secondaryToolbarButton-spreadEven-icon:url(images/secondaryToolbarButton-spreadEven.svg);\n  --secondaryToolbarButton-imageAltTextSettings-icon:var(\n    --toolbarButton-editorStamp-icon\n  );\n  --secondaryToolbarButton-documentProperties-icon:url(images/secondaryToolbarButton-documentProperties.svg);\n  --editorParams-stampAddImage-icon:url(images/toolbarButton-zoomIn.svg);\n  --comment-edit-button-icon:url(images/comment-editButton.svg);\n}\n\n@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){\n:root{\n\n  --main-color:light-dark(rgb(12 12 13), rgb(249 249 250));\n  --body-bg-color:light-dark(rgb(212 212 215), rgb(42 42 46));\n  --progressBar-color:light-dark(rgb(10 132 255), rgb(0 96 223));\n  --progressBar-bg-color:light-dark(rgb(221 221 222), rgb(40 40 43));\n  --progressBar-blend-color:light-dark(rgb(116 177 239), rgb(20 68 133));\n  --scrollbar-color:light-dark(auto, rgb(121 121 123));\n  --scrollbar-bg-color:light-dark(auto, rgb(35 35 39));\n  --toolbar-icon-bg-color:light-dark(rgb(0 0 0), rgb(255 255 255));\n  --toolbar-icon-hover-bg-color:light-dark(rgb(0 0 0), rgb(255 255 255));\n\n  --sidebar-narrow-bg-color:light-dark(\n    rgb(212 212 215 / 0.9),\n    rgb(42 42 46 / 0.9)\n  );\n  --sidebar-toolbar-bg-color:light-dark(rgb(245 246 247), rgb(50 50 52));\n  --toolbar-bg-color:light-dark(rgb(249 249 250), rgb(56 56 61));\n  --toolbar-border-color:light-dark(rgb(184 184 184), rgb(12 12 13));\n  --toggled-btn-color:light-dark(rgb(0 0 0), rgb(255 255 255));\n  --dropdown-btn-bg-color:light-dark(rgb(215 215 219), rgb(74 74 79));\n  --field-color:light-dark(rgb(6 6 6), rgb(250 250 250));\n  --field-bg-color:light-dark(rgb(255 255 255), rgb(64 64 68));\n  --field-border-color:light-dark(rgb(187 187 188), rgb(115 115 115));\n  --treeitem-color:light-dark(rgb(0 0 0 / 0.8), rgb(255 255 255 / 0.8));\n  --treeitem-bg-color:light-dark(rgb(0 0 0 / 0.15), rgb(255 255 255 / 0.15));\n  --treeitem-hover-color:light-dark(rgb(0 0 0 / 0.9), rgb(255 255 255 / 0.9));\n  --treeitem-selected-color:light-dark(\n    rgb(0 0 0 / 0.9),\n    rgb(255 255 255 / 0.9)\n  );\n  --treeitem-selected-bg-color:light-dark(\n    rgb(0 0 0 / 0.25),\n    rgb(255 255 255 / 0.25)\n  );\n  --thumbnail-hover-color:light-dark(rgb(0 0 0 / 0.1), rgb(255 255 255 / 0.1));\n  --thumbnail-selected-color:light-dark(\n    rgb(0 0 0 / 0.2),\n    rgb(255 255 255 / 0.2)\n  );\n  --doorhanger-bg-color:light-dark(rgb(255 255 255), #42414d);\n  --doorhanger-border-color:light-dark(rgb(12 12 13 / 0.2), rgb(39 39 43));\n  --doorhanger-hover-color:light-dark(rgb(12 12 13), rgb(249 249 250));\n  --doorhanger-separator-color:light-dark(rgb(222 222 222), rgb(92 92 97));\n  --dialog-button-bg-color:light-dark(rgb(12 12 13 / 0.1), rgb(92 92 97));\n  --dialog-button-hover-bg-color:light-dark(\n    rgb(12 12 13 / 0.3),\n    rgb(115 115 115)\n  );\n}\n}\n\n@supports not (color: light-dark(tan, tan)){\n\n:root *{\n\n  --csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(249 249 250);\n\n  --main-color:var(--csstools-light-dark-toggle--0, rgb(12 12 13));\n  --csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(42 42 46);\n  --body-bg-color:var(--csstools-light-dark-toggle--1, rgb(212 212 215));\n  --csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(0 96 223);\n  --progressBar-color:var(--csstools-light-dark-toggle--2, rgb(10 132 255));\n  --csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) rgb(40 40 43);\n  --progressBar-bg-color:var(--csstools-light-dark-toggle--3, rgb(221 221 222));\n  --csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) rgb(20 68 133);\n  --progressBar-blend-color:var(--csstools-light-dark-toggle--4, rgb(116 177 239));\n  --csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) rgb(121 121 123);\n  --scrollbar-color:var(--csstools-light-dark-toggle--5, auto);\n  --csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(35 35 39);\n  --scrollbar-bg-color:var(--csstools-light-dark-toggle--6, auto);\n  --csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toolbar-icon-bg-color:var(--csstools-light-dark-toggle--7, rgb(0 0 0));\n  --csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toolbar-icon-hover-bg-color:var(--csstools-light-dark-toggle--8, rgb(0 0 0));\n\n  --csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(42 42 46 / 0.9);\n\n  --sidebar-narrow-bg-color:var(--csstools-light-dark-toggle--9, rgb(212 212 215 / 0.9));\n  --csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) rgb(50 50 52);\n  --sidebar-toolbar-bg-color:var(--csstools-light-dark-toggle--10, rgb(245 246 247));\n  --csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) rgb(56 56 61);\n  --toolbar-bg-color:var(--csstools-light-dark-toggle--11, rgb(249 249 250));\n  --csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) rgb(12 12 13);\n  --toolbar-border-color:var(--csstools-light-dark-toggle--12, rgb(184 184 184));\n  --csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) rgb(255 255 255);\n  --toggled-btn-color:var(--csstools-light-dark-toggle--13, rgb(0 0 0));\n  --csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) rgb(74 74 79);\n  --dropdown-btn-bg-color:var(--csstools-light-dark-toggle--14, rgb(215 215 219));\n  --csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) rgb(250 250 250);\n  --field-color:var(--csstools-light-dark-toggle--15, rgb(6 6 6));\n  --csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) rgb(64 64 68);\n  --field-bg-color:var(--csstools-light-dark-toggle--16, rgb(255 255 255));\n  --csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) rgb(115 115 115);\n  --field-border-color:var(--csstools-light-dark-toggle--17, rgb(187 187 188));\n  --csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);\n  --treeitem-color:var(--csstools-light-dark-toggle--18, rgb(0 0 0 / 0.8));\n  --csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);\n  --treeitem-bg-color:var(--csstools-light-dark-toggle--19, rgb(0 0 0 / 0.15));\n  --csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);\n  --treeitem-hover-color:var(--csstools-light-dark-toggle--20, rgb(0 0 0 / 0.9));\n  --csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);\n  --treeitem-selected-color:var(--csstools-light-dark-toggle--21, rgb(0 0 0 / 0.9));\n  --csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.25);\n  --treeitem-selected-bg-color:var(--csstools-light-dark-toggle--22, rgb(0 0 0 / 0.25));\n  --csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.1);\n  --thumbnail-hover-color:var(--csstools-light-dark-toggle--23, rgb(0 0 0 / 0.1));\n  --csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.2);\n  --thumbnail-selected-color:var(--csstools-light-dark-toggle--24, rgb(0 0 0 / 0.2));\n  --csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) #42414d;\n  --doorhanger-bg-color:var(--csstools-light-dark-toggle--25, rgb(255 255 255));\n  --csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) rgb(39 39 43);\n  --doorhanger-border-color:var(--csstools-light-dark-toggle--26, rgb(12 12 13 / 0.2));\n  --csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) rgb(249 249 250);\n  --doorhanger-hover-color:var(--csstools-light-dark-toggle--27, rgb(12 12 13));\n  --csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) rgb(92 92 97);\n  --doorhanger-separator-color:var(--csstools-light-dark-toggle--28, rgb(222 222 222));\n  --csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) rgb(92 92 97);\n  --dialog-button-bg-color:var(--csstools-light-dark-toggle--29, rgb(12 12 13 / 0.1));\n  --csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) rgb(115 115 115);\n  --dialog-button-hover-bg-color:var(--csstools-light-dark-toggle--30, rgb(12 12 13 / 0.3));\n  }\n}\n\n[dir=\"rtl\"]:root{\n  --dir-factor:-1;\n  --inline-start:right;\n  --inline-end:left;\n}\n\n@media screen and (forced-colors: active){\n  :root{\n    --button-hover-color:Highlight;\n    --toolbar-icon-opacity:1;\n    --toolbar-icon-bg-color:ButtonText;\n    --toolbar-icon-hover-bg-color:ButtonFace;\n    --toggled-hover-active-btn-color:ButtonText;\n    --toggled-hover-btn-outline:2px solid ButtonBorder;\n    --toolbar-border-color:CanvasText;\n    --toolbar-border-bottom:1px solid var(--toolbar-border-color);\n    --toolbar-box-shadow:none;\n    --toggled-btn-color:HighlightText;\n    --toggled-btn-bg-color:LinkText;\n    --doorhanger-hover-color:ButtonFace;\n    --doorhanger-border-color-whcm:1px solid ButtonText;\n    --doorhanger-triangle-opacity-whcm:0;\n    --dialog-button-border:1px solid Highlight;\n    --dialog-button-hover-bg-color:Highlight;\n    --dialog-button-hover-color:ButtonFace;\n    --dropdown-btn-border:1px solid ButtonText;\n    --field-border-color:ButtonText;\n    --main-color:CanvasText;\n    --separator-color:GrayText;\n    --doorhanger-separator-color:GrayText;\n    --toolbarSidebar-box-shadow:none;\n    --toolbarSidebar-border-bottom:1px solid var(--toolbar-border-color);\n  }\n}\n\n@media screen and (prefers-reduced-motion: reduce){\n  :root{\n    --sidebar-transition-duration:0;\n  }\n}\n\n@keyframes progressIndeterminate{\n  0%{\n    transform:translateX(calc(-142px * var(--dir-factor)));\n  }\n\n  100%{\n    transform:translateX(0);\n  }\n}\n\nhtml[data-toolbar-density=\"compact\"]{\n    --toolbar-height:30px;\n  }\n\nhtml[data-toolbar-density=\"touch\"]{\n    --toolbar-height:44px;\n  }\n\nhtml,\nbody{\n  height:100%;\n  width:100%;\n}\n\nbody{\n  margin:0;\n  background-color:var(--body-bg-color);\n  scrollbar-color:var(--scrollbar-color) var(--scrollbar-bg-color);\n}\n\nbody.wait::before{\n    content:\"\";\n    position:fixed;\n    width:100%;\n    height:100%;\n    z-index:100000;\n    cursor:wait;\n  }\n.visuallyHidden{\n  position:absolute;\n  top:0;\n  left:0;\n  border:0;\n  margin:0;\n  padding:0;\n  width:0;\n  height:0;\n  overflow:hidden;\n  white-space:nowrap;\n  font-size:0;\n}\n\n.hidden,\n[hidden]{\n  display:none !important;\n}\n\n#viewerContainer.pdfPresentationMode:fullscreen{\n  top:0;\n  background-color:rgb(0 0 0);\n  width:100%;\n  height:100%;\n  overflow:hidden;\n  cursor:none;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n}\n\n.pdfPresentationMode:fullscreen section:not([data-internal-link]){\n  pointer-events:none;\n}\n\n.pdfPresentationMode:fullscreen .textLayer span{\n  cursor:none;\n}\n\n.pdfPresentationMode.pdfPresentationModeControls > *,\n.pdfPresentationMode.pdfPresentationModeControls .textLayer span{\n  cursor:default;\n}\n\n#outerContainer{\n  width:100%;\n  height:100%;\n  position:relative;\n  margin:0;\n}\n\n#sidebarContainer{\n  position:absolute;\n  inset-block:var(--toolbar-height) 0;\n  inset-inline-start:calc(-1 * var(--sidebar-width));\n  width:var(--sidebar-width);\n  visibility:hidden;\n  z-index:1;\n  font:message-box;\n  border-top:1px solid transparent;\n  border-inline-end:var(--doorhanger-border-color-whcm);\n  transition-property:inset-inline-start;\n  transition-duration:var(--sidebar-transition-duration);\n  transition-timing-function:var(--sidebar-transition-timing-function);\n}\n\n#outerContainer:is(.sidebarMoving, .sidebarOpen) #sidebarContainer{\n  visibility:visible;\n}\n\n#outerContainer.sidebarOpen #sidebarContainer{\n  inset-inline-start:0;\n}\n\n#mainContainer{\n  position:absolute;\n  inset:0;\n  min-width:350px;\n  margin:0;\n  display:flex;\n  flex-direction:column;\n}\n\n#sidebarContent{\n  inset-block:var(--toolbar-height) 0;\n  inset-inline-start:0;\n  overflow:auto;\n  position:absolute;\n  width:100%;\n  box-shadow:inset calc(-1px * var(--dir-factor)) 0 0 rgb(0 0 0 / 0.25);\n}\n\n#viewerContainer{\n  overflow:auto;\n  position:absolute;\n  inset:var(--toolbar-height) 0 0;\n  outline:none;\n  z-index:0;\n  color-scheme: light !important;\n}\n\n#viewerContainer:not(.pdfPresentationMode){\n  transition-duration:var(--sidebar-transition-duration);\n  transition-timing-function:var(--sidebar-transition-timing-function);\n}\n\n#outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode){\n  inset-inline-start:var(--sidebar-width);\n  transition-property:inset-inline-start;\n}\n\n#sidebarContainer :is(input, button, select){\n  font:message-box;\n}\n\n.toolbar{\n  z-index:2;\n}\n\n#toolbarSidebar{\n  width:100%;\n  height:var(--toolbar-height);\n  background-color:var(--sidebar-toolbar-bg-color);\n  box-shadow:var(--toolbarSidebar-box-shadow);\n  border-bottom:var(--toolbarSidebar-border-bottom);\n  padding:var(--toolbar-vertical-padding) var(--toolbar-horizontal-padding);\n  justify-content:space-between;\n}\n\n#toolbarSidebar #toolbarSidebarLeft{\n    width:auto;\n    height:100%;\n  }\n\n:is(#toolbarSidebar #toolbarSidebarLeft) #viewThumbnail::before{\n      -webkit-mask-image:var(--toolbarButton-viewThumbnail-icon);\n              mask-image:var(--toolbarButton-viewThumbnail-icon);\n    }\n\n:is(#toolbarSidebar #toolbarSidebarLeft) #viewOutline::before{\n      -webkit-mask-image:var(--toolbarButton-viewOutline-icon);\n              mask-image:var(--toolbarButton-viewOutline-icon);\n      transform:scaleX(var(--dir-factor));\n    }\n\n:is(#toolbarSidebar #toolbarSidebarLeft) #viewAttachments::before{\n      -webkit-mask-image:var(--toolbarButton-viewAttachments-icon);\n              mask-image:var(--toolbarButton-viewAttachments-icon);\n    }\n\n:is(#toolbarSidebar #toolbarSidebarLeft) #viewLayers::before{\n      -webkit-mask-image:var(--toolbarButton-viewLayers-icon);\n              mask-image:var(--toolbarButton-viewLayers-icon);\n    }\n\n#toolbarSidebar #toolbarSidebarRight{\n    width:auto;\n    height:100%;\n    padding-inline-end:2px;\n  }\n\n#sidebarResizer{\n  position:absolute;\n  inset-block:0;\n  inset-inline-end:-6px;\n  width:6px;\n  z-index:200;\n  cursor:ew-resize;\n}\n\n#outerContainer.sidebarOpen #loadingBar{\n  inset-inline-start:var(--sidebar-width);\n}\n\n#outerContainer.sidebarResizing\n  :is(#sidebarContainer, #viewerContainer, #loadingBar){\n  transition-duration:0s;\n}\n\n.doorHanger,\n.doorHangerRight{\n  border-radius:2px;\n  box-shadow:0 1px 5px var(--doorhanger-border-color), 0 0 0 1px var(--doorhanger-border-color);\n  border:var(--doorhanger-border-color-whcm);\n  background-color:var(--doorhanger-bg-color);\n  inset-block-start:calc(100% + var(--doorhanger-height) - 2px);\n}\n\n:is(.doorHanger,.doorHangerRight)::after,:is(.doorHanger,.doorHangerRight)::before{\n    bottom:100%;\n    border-style:solid;\n    border-color:transparent;\n    content:\"\";\n    height:0;\n    width:0;\n    position:absolute;\n    pointer-events:none;\n    opacity:var(--doorhanger-triangle-opacity-whcm);\n  }\n\n:is(.doorHanger,.doorHangerRight)::before{\n    border-width:calc(var(--doorhanger-height) + 2px);\n    border-bottom-color:var(--doorhanger-border-color);\n  }\n\n:is(.doorHanger,.doorHangerRight)::after{\n    border-width:var(--doorhanger-height);\n  }\n\n.doorHangerRight{\n  inset-inline-end:calc(50% - var(--doorhanger-height) - 1px);\n}\n\n.doorHangerRight::before{\n    inset-inline-end:-1px;\n  }\n\n.doorHangerRight::after{\n    border-bottom-color:var(--doorhanger-bg-color);\n    inset-inline-end:1px;\n  }\n\n.doorHanger{\n  inset-inline-start:calc(50% - var(--doorhanger-height) - 1px);\n}\n\n.doorHanger::before{\n    inset-inline-start:-1px;\n  }\n\n.doorHanger::after{\n    border-bottom-color:var(--toolbar-bg-color);\n    inset-inline-start:1px;\n  }\n\n.dialogButton{\n  border:none;\n  background:none;\n  width:28px;\n  height:28px;\n  outline:none;\n}\n\n.dialogButton:is(:hover, :focus-visible){\n  background-color:var(--dialog-button-hover-bg-color);\n}\n\n.dialogButton:is(:hover, :focus-visible) > span{\n  color:var(--dialog-button-hover-color);\n}\n\n.splitToolbarButtonSeparator{\n  float:var(--inline-start);\n  width:0;\n  height:62%;\n  border-left:1px solid var(--separator-color);\n  border-right:none;\n}\n\n.dialogButton{\n  min-width:16px;\n  margin:2px 1px;\n  padding:2px 6px 0;\n  border:none;\n  border-radius:2px;\n  color:var(--main-color);\n  font-size:12px;\n  line-height:14px;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n  cursor:default;\n  box-sizing:border-box;\n}\n\n.treeItemToggler::before{\n  position:absolute;\n  display:inline-block;\n  width:16px;\n  height:16px;\n\n  content:\"\";\n  background-color:var(--toolbar-icon-bg-color);\n  -webkit-mask-size:cover;\n          mask-size:cover;\n}\n\n#sidebarToggleButton::before{\n  -webkit-mask-image:var(--toolbarButton-sidebarToggle-icon);\n          mask-image:var(--toolbarButton-sidebarToggle-icon);\n  transform:scaleX(var(--dir-factor));\n}\n\n#secondaryToolbarToggleButton::before{\n  -webkit-mask-image:var(--toolbarButton-secondaryToolbarToggle-icon);\n          mask-image:var(--toolbarButton-secondaryToolbarToggle-icon);\n  transform:scaleX(var(--dir-factor));\n}\n\n#previous::before{\n  -webkit-mask-image:var(--toolbarButton-pageUp-icon);\n          mask-image:var(--toolbarButton-pageUp-icon);\n}\n\n#next::before{\n  -webkit-mask-image:var(--toolbarButton-pageDown-icon);\n          mask-image:var(--toolbarButton-pageDown-icon);\n}\n\n#zoomOutButton::before{\n  -webkit-mask-image:var(--toolbarButton-zoomOut-icon);\n          mask-image:var(--toolbarButton-zoomOut-icon);\n}\n\n#zoomInButton::before{\n  -webkit-mask-image:var(--toolbarButton-zoomIn-icon);\n          mask-image:var(--toolbarButton-zoomIn-icon);\n}\n\n#editorCommentButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorComment-icon);\n          mask-image:var(--toolbarButton-editorComment-icon);\n  transform:scaleX(var(--dir-factor));\n}\n\n#editorFreeTextButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorFreeText-icon);\n          mask-image:var(--toolbarButton-editorFreeText-icon);\n}\n\n#editorHighlightButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorHighlight-icon);\n          mask-image:var(--toolbarButton-editorHighlight-icon);\n}\n\n#editorInkButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorInk-icon);\n          mask-image:var(--toolbarButton-editorInk-icon);\n}\n\n#editorStampButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorStamp-icon);\n          mask-image:var(--toolbarButton-editorStamp-icon);\n}\n\n#editorSignatureButton::before{\n  -webkit-mask-image:var(--toolbarButton-editorSignature-icon);\n          mask-image:var(--toolbarButton-editorSignature-icon);\n}\n\n#printButton::before{\n  -webkit-mask-image:var(--toolbarButton-print-icon);\n          mask-image:var(--toolbarButton-print-icon);\n}\n\n#downloadButton::before{\n  -webkit-mask-image:var(--toolbarButton-download-icon);\n          mask-image:var(--toolbarButton-download-icon);\n}\n\n#currentOutlineItem::before{\n  -webkit-mask-image:var(--toolbarButton-currentOutlineItem-icon);\n          mask-image:var(--toolbarButton-currentOutlineItem-icon);\n  transform:scaleX(var(--dir-factor));\n}\n\n#viewFindButton::before{\n  -webkit-mask-image:var(--toolbarButton-search-icon);\n          mask-image:var(--toolbarButton-search-icon);\n}\n\n.pdfSidebarNotification::after{\n  position:absolute;\n  display:inline-block;\n  top:2px;\n  inset-inline-end:2px;\n  content:\"\";\n  background-color:rgb(112 219 85);\n  height:9px;\n  width:9px;\n  border-radius:50%;\n}\n\n.verticalToolbarSeparator{\n  display:block;\n  margin-inline:2px;\n  width:0;\n  height:80%;\n  border-left:1px solid var(--separator-color);\n  border-right:none;\n  box-sizing:border-box;\n}\n\n.horizontalToolbarSeparator{\n  display:block;\n  margin:6px 0;\n  border-top:1px solid var(--doorhanger-separator-color);\n  border-bottom:none;\n  height:0;\n  width:100%;\n}\n\n.toggleButton{\n  display:inline;\n}\n\n.toggleButton:has( > input:checked){\n    color:var(--toggled-btn-color);\n    background-color:var(--toggled-btn-bg-color);\n  }\n\n.toggleButton:is(:hover,:has( > input:focus-visible)){\n    color:var(--toggled-btn-color);\n    background-color:var(--button-hover-color);\n  }\n\n.toggleButton > input{\n    position:absolute;\n    top:50%;\n    left:50%;\n    opacity:0;\n    width:0;\n    height:0;\n  }\n\n.toolbarField{\n  padding:4px 7px;\n  margin:3px 0;\n  border-radius:2px;\n  background-color:var(--field-bg-color);\n  background-clip:padding-box;\n  border:1px solid var(--field-border-color);\n  box-shadow:none;\n  color:var(--field-color);\n  font-size:12px;\n  line-height:16px;\n  outline:none;\n}\n\n.toolbarField:focus{\n    border-color:#0a84ff;\n  }\n\n#pageNumber{\n  -moz-appearance:textfield;\n  text-align:end;\n  width:40px;\n  background-size:0 0;\n  transition-property:none;\n}\n\n#pageNumber::-webkit-inner-spin-button{\n    -webkit-appearance:none;\n  }\n\n.loadingInput:has( > .loading:is(#pageNumber))::after{\n    display:inline;\n    visibility:visible;\n\n    transition-property:visibility;\n    transition-delay:var(--loading-icon-delay);\n  }\n\n.loadingInput{\n  position:relative;\n}\n\n.loadingInput::after{\n    position:absolute;\n    visibility:hidden;\n    display:none;\n    width:var(--icon-size);\n    height:var(--icon-size);\n\n    content:\"\";\n    background-color:var(--toolbar-icon-bg-color);\n    -webkit-mask-size:cover;\n            mask-size:cover;\n    -webkit-mask-image:var(--loading-icon);\n            mask-image:var(--loading-icon);\n  }\n\n.loadingInput.start::after{\n    inset-inline-start:4px;\n  }\n\n.loadingInput.end::after{\n    inset-inline-end:4px;\n  }\n\n#thumbnailView,\n#outlineView,\n#attachmentsView,\n#layersView{\n  position:absolute;\n  width:calc(100% - 8px);\n  inset-block:0;\n  padding:4px 4px 0;\n  overflow:auto;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n}\n\n#thumbnailView{\n  width:calc(100% - 60px);\n  padding:10px 30px 0;\n}\n\n#thumbnailView > a:is(:active, :focus){\n  outline:0;\n}\n\n.thumbnail{\n  --thumbnail-width:0;\n  --thumbnail-height:0;\n\n  float:var(--inline-start);\n  width:var(--thumbnail-width);\n  height:var(--thumbnail-height);\n  margin:0 10px 5px;\n  padding:1px;\n  border:7px solid transparent;\n  border-radius:2px;\n}\n\n#thumbnailView > a:last-of-type > .thumbnail{\n  margin-bottom:10px;\n}\n\na:focus > .thumbnail,\n.thumbnail:hover{\n  border-color:var(--thumbnail-hover-color);\n}\n\n.thumbnail.selected{\n  border-color:var(--thumbnail-selected-color) !important;\n}\n\n.thumbnailImage{\n  width:var(--thumbnail-width);\n  height:var(--thumbnail-height);\n  opacity:0.9;\n}\n\na:focus > .thumbnail > .thumbnailImage,\n.thumbnail:hover > .thumbnailImage{\n  opacity:0.95;\n}\n\n.thumbnail.selected > .thumbnailImage{\n  opacity:1 !important;\n}\n\n.thumbnail:not([data-loaded]) > .thumbnailImage{\n  width:calc(var(--thumbnail-width) - 2px);\n  height:calc(var(--thumbnail-height) - 2px);\n  border:1px dashed rgb(132 132 132);\n}\n\n.treeWithDeepNesting > .treeItem,\n.treeItem > .treeItems{\n  margin-inline-start:20px;\n}\n\n.treeItem > a{\n  text-decoration:none;\n  display:inline-block;\n  min-width:calc(100% - 4px);\n  height:auto;\n  margin-bottom:1px;\n  padding:2px 0 5px;\n  padding-inline-start:4px;\n  border-radius:2px;\n  color:var(--treeitem-color);\n  font-size:13px;\n  line-height:15px;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n  white-space:normal;\n  cursor:pointer;\n}\n\n#layersView .treeItem > a *{\n  cursor:pointer;\n}\n\n#layersView .treeItem > a > label{\n  padding-inline-start:4px;\n}\n\n#layersView .treeItem > a > label > input{\n  float:var(--inline-start);\n  margin-top:1px;\n}\n\n.treeItemToggler{\n  position:relative;\n  float:var(--inline-start);\n  height:0;\n  width:0;\n  color:rgb(255 255 255 / 0.5);\n}\n\n.treeItemToggler::before{\n  inset-inline-end:4px;\n  -webkit-mask-image:var(--treeitem-expanded-icon);\n          mask-image:var(--treeitem-expanded-icon);\n}\n\n.treeItemToggler.treeItemsHidden::before{\n  -webkit-mask-image:var(--treeitem-collapsed-icon);\n          mask-image:var(--treeitem-collapsed-icon);\n  transform:scaleX(var(--dir-factor));\n}\n\n.treeItemToggler.treeItemsHidden ~ .treeItems{\n  display:none;\n}\n\n.treeItem.selected > a{\n  background-color:var(--treeitem-selected-bg-color);\n  color:var(--treeitem-selected-color);\n}\n\n.treeItemToggler:hover,\n.treeItemToggler:hover + a,\n.treeItemToggler:hover ~ .treeItems,\n.treeItem > a:hover{\n  background-color:var(--treeitem-bg-color);\n  background-clip:padding-box;\n  border-radius:2px;\n  color:var(--treeitem-hover-color);\n}\n\n#outlineOptionsContainer{\n  display:none;\n}\n\n#sidebarContainer:has(#outlineView:not(.hidden)) #outlineOptionsContainer{\n    display:inline flex;\n  }\n\n.dialogButton{\n  width:auto;\n  margin:3px 4px 2px !important;\n  padding:2px 11px;\n  color:var(--main-color);\n  background-color:var(--dialog-button-bg-color);\n  border:var(--dialog-button-border) !important;\n}\n\ndialog{\n  margin:auto;\n  padding:15px;\n  border-spacing:4px;\n  color:var(--main-color);\n  font:message-box;\n  font-size:12px;\n  line-height:14px;\n  background-color:var(--doorhanger-bg-color);\n  border:1px solid rgb(0 0 0 / 0.5);\n  border-radius:4px;\n  box-shadow:0 1px 4px rgb(0 0 0 / 0.3);\n}\n\ndialog::backdrop{\n  background-color:rgb(0 0 0 / 0.2);\n}\n\ndialog > .row{\n  display:table-row;\n}\n\ndialog > .row > *{\n  display:table-cell;\n}\n\ndialog .toolbarField{\n  margin:5px 0;\n}\n\ndialog .separator{\n  display:block;\n  margin:4px 0;\n  height:0;\n  width:100%;\n  border-top:1px solid var(--separator-color);\n  border-bottom:none;\n}\n\ndialog .buttonRow{\n  text-align:center;\n  vertical-align:middle;\n}\n\ndialog :link{\n  color:rgb(255 255 255);\n}\n\n#passwordDialog{\n  text-align:center;\n}\n\n#passwordDialog .toolbarField{\n  width:200px;\n}\n\n#documentPropertiesDialog{\n  text-align:left;\n}\n\n#documentPropertiesDialog .row > *{\n  min-width:100px;\n  text-align:start;\n}\n\n#documentPropertiesDialog .row > span{\n  width:125px;\n  word-wrap:break-word;\n}\n\n#documentPropertiesDialog .row > p{\n  max-width:225px;\n  word-wrap:break-word;\n}\n\n#documentPropertiesDialog .buttonRow{\n  margin-top:10px;\n}\n\n.grab-to-pan-grab{\n  cursor:grab !important;\n}\n\n.grab-to-pan-grab\n  *:not(input):not(textarea):not(button):not(select):not(:link){\n  cursor:inherit !important;\n}\n\n.grab-to-pan-grab:active,\n.grab-to-pan-grabbing{\n  cursor:grabbing !important;\n}\n\n.grab-to-pan-grabbing{\n  position:fixed;\n  background:rgb(0 0 0 / 0);\n  display:block;\n  inset:0;\n  overflow:hidden;\n  z-index:50000;\n}\n\n.toolbarButton{\n  height:100%;\n  aspect-ratio:1;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:none;\n  border:none;\n  color:var(--main-color);\n  outline:none;\n  border-radius:2px;\n  box-sizing:border-box;\n  font:message-box;\n  flex:none;\n  position:relative;\n  padding:0;\n}\n\n.toolbarButton  > span{\n    display:inline-block;\n    width:0;\n    height:0;\n    overflow:hidden;\n  }\n\n.toolbarButton::before{\n    opacity:var(--toolbar-icon-opacity);\n    display:inline-block;\n    width:var(--icon-size);\n    height:var(--icon-size);\n    content:\"\";\n    background-color:var(--toolbar-icon-bg-color);\n    -webkit-mask-size:cover;\n            mask-size:cover;\n    -webkit-mask-position:center;\n            mask-position:center;\n  }\n\n.toolbarButton.toggled{\n    background-color:var(--toggled-btn-bg-color);\n    color:var(--toggled-btn-color);\n  }\n\n.toolbarButton.toggled::before{\n      background-color:var(--toggled-btn-color);\n    }\n\n.toolbarButton.toggled:hover{\n      outline:var(--toggled-hover-btn-outline) !important;\n    }\n\n.toolbarButton.toggled:hover:active{\n        background-color:var(--toggled-hover-active-btn-color);\n      }\n\n.toolbarButton:is(:hover,:focus-visible){\n    background-color:var(--button-hover-color);\n  }\n\n.toolbarButton:is(:hover,:focus-visible)::before{\n      background-color:var(--toolbar-icon-hover-bg-color);\n    }\n\n.toolbarButton:is([disabled=\"disabled\"],[disabled]){\n    opacity:0.5;\n    pointer-events:none;\n  }\n\n.toolbarButton.labeled{\n    width:100%;\n    min-height:var(--menuitem-height);\n    justify-content:flex-start;\n    gap:8px;\n    padding-inline-start:12px;\n    aspect-ratio:unset;\n    text-align:start;\n    white-space:normal;\n    cursor:default;\n  }\n\n.toolbarButton.labeled:is(a){\n      text-decoration:none;\n    }\n\n.toolbarButton.labeled[href=\"#\"]:is(a){\n        opacity:0.5;\n        pointer-events:none;\n      }\n\n.toolbarButton.labeled::before{\n      opacity:var(--doorhanger-icon-opacity);\n    }\n\n.toolbarButton.labeled:is(:hover,:focus-visible){\n      color:var(--doorhanger-hover-color);\n    }\n\n.toolbarButton.labeled  > span{\n      display:inline-block;\n      width:-moz-max-content;\n      width:max-content;\n      height:auto;\n    }\n\n.toolbarButtonWithContainer{\n  height:100%;\n  aspect-ratio:1;\n  display:inline-block;\n  position:relative;\n  flex:none;\n}\n\n.toolbarButtonWithContainer  > .toolbarButton{\n    width:100%;\n    height:100%;\n  }\n\n.toolbarButtonWithContainer .menu{\n    padding-block:5px;\n  }\n\n.toolbarButtonWithContainer .menuContainer{\n    height:auto;\n    max-height:calc(\n      var(--viewer-container-height) - var(--toolbar-height) -\n        var(--doorhanger-height)\n    );\n    display:flex;\n    flex-direction:column;\n    box-sizing:border-box;\n    overflow-y:auto;\n  }\n\n.toolbarButtonWithContainer .editorParamsToolbar{\n    --editor-toolbar-min-width:220px;\n\n    height:auto;\n    min-width:var(--editor-toolbar-min-width);\n    width:-moz-max-content;\n    width:max-content;\n    position:absolute;\n    z-index:30000;\n    cursor:default;\n  }\n\n:is(.toolbarButtonWithContainer .editorParamsToolbar) :is(#editorStampAddImage,#editorSignatureAddSignature)::before{\n      -webkit-mask-image:var(--editorParams-stampAddImage-icon);\n              mask-image:var(--editorParams-stampAddImage-icon);\n    }\n\n:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsLabel{\n      flex:none;\n      font:menu;\n      font-size:13px;\n      font-style:normal;\n      font-weight:400;\n      line-height:150%;\n      width:-moz-fit-content;\n      width:fit-content;\n      inset-inline-start:0;\n      color:var(--main-color);\n    }\n\n:is(.toolbarButtonWithContainer .editorParamsToolbar) button:is(:hover,:focus-visible) .editorParamsLabel{\n      color:var(--doorhanger-hover-color);\n    }\n\n:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer{\n      width:100%;\n      height:auto;\n      display:flex;\n      flex-direction:column;\n      box-sizing:border-box;\n      padding-inline:10px;\n      padding-block:10px;\n    }\n\n:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer)  > .editorParamsSetter{\n        min-height:26px;\n        display:flex;\n        align-items:center;\n        justify-content:space-between;\n      }\n\n:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsColor{\n        width:32px;\n        height:32px;\n        flex:none;\n        padding:0;\n      }\n\n:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider{\n        background-color:transparent;\n        width:90px;\n        flex:0 1 0;\n        font:message-box;\n      }\n\n:is(:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider)::-moz-range-progress{\n          background-color:black;\n        }\n\n:is(:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider)::-webkit-slider-runnable-track,:is(:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider)::-moz-range-track{\n          background-color:black;\n        }\n\n:is(:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider)::-webkit-slider-thumb,:is(:is(:is(.toolbarButtonWithContainer .editorParamsToolbar) .editorParamsToolbarContainer) .editorParamsSlider)::-moz-range-thumb{\n          background-color:white;\n        }\n\n#secondaryToolbar{\n  height:auto;\n  width:220px;\n  position:absolute;\n  z-index:30000;\n  cursor:default;\n  min-height:26px;\n  max-height:calc(var(--viewer-container-height) - 40px);\n}\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #secondaryOpenFile::before{\n      -webkit-mask-image:var(--toolbarButton-openFile-icon);\n              mask-image:var(--toolbarButton-openFile-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #secondaryPrint::before{\n      -webkit-mask-image:var(--toolbarButton-print-icon);\n              mask-image:var(--toolbarButton-print-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #secondaryDownload::before{\n      -webkit-mask-image:var(--toolbarButton-download-icon);\n              mask-image:var(--toolbarButton-download-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #presentationMode::before{\n      -webkit-mask-image:var(--toolbarButton-presentationMode-icon);\n              mask-image:var(--toolbarButton-presentationMode-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #viewBookmark::before{\n      -webkit-mask-image:var(--toolbarButton-bookmark-icon);\n              mask-image:var(--toolbarButton-bookmark-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #firstPage::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-firstPage-icon);\n              mask-image:var(--secondaryToolbarButton-firstPage-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #lastPage::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-lastPage-icon);\n              mask-image:var(--secondaryToolbarButton-lastPage-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #pageRotateCcw::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-rotateCcw-icon);\n              mask-image:var(--secondaryToolbarButton-rotateCcw-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #pageRotateCw::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-rotateCw-icon);\n              mask-image:var(--secondaryToolbarButton-rotateCw-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #cursorSelectTool::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-selectTool-icon);\n              mask-image:var(--secondaryToolbarButton-selectTool-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #cursorHandTool::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-handTool-icon);\n              mask-image:var(--secondaryToolbarButton-handTool-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #scrollPage::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-scrollPage-icon);\n              mask-image:var(--secondaryToolbarButton-scrollPage-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #scrollVertical::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-scrollVertical-icon);\n              mask-image:var(--secondaryToolbarButton-scrollVertical-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #scrollHorizontal::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-scrollHorizontal-icon);\n              mask-image:var(--secondaryToolbarButton-scrollHorizontal-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #scrollWrapped::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-scrollWrapped-icon);\n              mask-image:var(--secondaryToolbarButton-scrollWrapped-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #spreadNone::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-spreadNone-icon);\n              mask-image:var(--secondaryToolbarButton-spreadNone-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #spreadOdd::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-spreadOdd-icon);\n              mask-image:var(--secondaryToolbarButton-spreadOdd-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #spreadEven::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-spreadEven-icon);\n              mask-image:var(--secondaryToolbarButton-spreadEven-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #imageAltTextSettings::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-imageAltTextSettings-icon);\n              mask-image:var(--secondaryToolbarButton-imageAltTextSettings-icon);\n    }\n\n:is(#secondaryToolbar #secondaryToolbarButtonContainer) #documentProperties::before{\n      -webkit-mask-image:var(--secondaryToolbarButton-documentProperties-icon);\n              mask-image:var(--secondaryToolbarButton-documentProperties-icon);\n    }\n\n#findbar{\n  --input-horizontal-padding:4px;\n  --findbar-padding:2px;\n\n  width:-moz-max-content;\n\n  width:max-content;\n  max-width:90vw;\n  min-height:var(--toolbar-height);\n  height:auto;\n  position:absolute;\n  z-index:30000;\n  cursor:default;\n  padding:0;\n  min-width:300px;\n  background-color:var(--toolbar-bg-color);\n  box-sizing:border-box;\n  flex-wrap:wrap;\n  justify-content:flex-start;\n}\n\n#findbar  > *{\n    height:var(--toolbar-height);\n    padding:var(--findbar-padding);\n  }\n\n#findbar #findInputContainer{\n    margin-inline-start:2px;\n  }\n\n:is(#findbar #findInputContainer) #findPreviousButton::before{\n      -webkit-mask-image:var(--findbarButton-previous-icon);\n              mask-image:var(--findbarButton-previous-icon);\n    }\n\n:is(#findbar #findInputContainer) #findNextButton::before{\n      -webkit-mask-image:var(--findbarButton-next-icon);\n              mask-image:var(--findbarButton-next-icon);\n    }\n\n:is(#findbar #findInputContainer) #findInput{\n      width:200px;\n      padding:5px var(--input-horizontal-padding);\n    }\n\n:is(:is(#findbar #findInputContainer) #findInput)::-moz-placeholder{\n        font-style:normal;\n      }\n\n:is(:is(#findbar #findInputContainer) #findInput)::placeholder{\n        font-style:normal;\n      }\n\n.loadingInput:has( > [data-status=\"pending\"]:is(:is(#findbar #findInputContainer) #findInput))::after{\n        display:inline;\n        visibility:visible;\n        inset-inline-end:calc(var(--input-horizontal-padding) + 1px);\n      }\n\n[data-status=\"notFound\"]:is(:is(#findbar #findInputContainer) #findInput){\n        background-color:rgb(255 102 102);\n      }\n\n#findbar #findbarMessageContainer{\n    display:none;\n    gap:4px;\n  }\n\n:is(#findbar #findbarMessageContainer):has( > :is(#findResultsCount,#findMsg):not(:empty)){\n      display:inline flex;\n    }\n\n:is(#findbar #findbarMessageContainer) #findResultsCount{\n      background-color:rgb(217 217 217);\n      color:rgb(82 82 82);\n      padding-block:4px;\n    }\n\n:is(:is(#findbar #findbarMessageContainer) #findResultsCount):empty{\n        display:none;\n      }\n\n[data-status=\"notFound\"]:is(:is(#findbar #findbarMessageContainer) #findMsg){\n        font-weight:bold;\n      }\n\n:is(:is(#findbar #findbarMessageContainer) #findMsg):empty{\n        display:none;\n      }\n\n#findbar.wrapContainers{\n    flex-direction:column;\n    align-items:flex-start;\n    height:-moz-max-content;\n    height:max-content;\n  }\n\n#findbar.wrapContainers .toolbarLabel{\n      margin:0 4px;\n    }\n\n#findbar.wrapContainers #findbarMessageContainer{\n      flex-wrap:wrap;\n      flex-flow:column nowrap;\n      align-items:flex-start;\n      height:-moz-max-content;\n      height:max-content;\n    }\n\n:is(#findbar.wrapContainers #findbarMessageContainer) #findResultsCount{\n        height:calc(var(--toolbar-height) - 2 * var(--findbar-padding));\n      }\n\n:is(#findbar.wrapContainers #findbarMessageContainer) #findMsg{\n        min-height:var(--toolbar-height);\n      }\n\n@page{\n  margin:0;\n}\n\n#printContainer{\n  display:none;\n}\n\n@media print{\n  body{\n    background:rgb(0 0 0 / 0) none;\n  }\n\n  body[data-pdfjsprinting] #outerContainer{\n    display:none;\n  }\n\n  body[data-pdfjsprinting] #printContainer{\n    display:block;\n  }\n\n  #printContainer{\n    height:100%;\n  }\n  #printContainer > .printedPage{\n    page-break-after:always;\n    page-break-inside:avoid;\n    height:100%;\n    width:100%;\n\n    display:flex;\n    flex-direction:column;\n    justify-content:center;\n    align-items:center;\n  }\n\n  #printContainer > .xfaPrintedPage .xfaPage{\n    position:absolute;\n  }\n\n  #printContainer > .xfaPrintedPage{\n    page-break-after:always;\n    page-break-inside:avoid;\n    width:100%;\n    height:100%;\n    position:relative;\n  }\n\n  #printContainer > .printedPage :is(canvas, img){\n    max-width:100%;\n    max-height:100%;\n\n    direction:ltr;\n    display:block;\n  }\n}\n\n.visibleMediumView{\n  display:none !important;\n}\n\n.toolbarLabel{\n  width:-moz-max-content;\n  width:max-content;\n  min-width:16px;\n  height:100%;\n  padding-inline:4px;\n  margin:2px;\n  border-radius:2px;\n  color:var(--main-color);\n  font-size:12px;\n  line-height:14px;\n  text-align:left;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n  cursor:default;\n  box-sizing:border-box;\n\n  display:inline flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n}\n\n.toolbarLabel  > label{\n    width:100%;\n  }\n\n.toolbarHorizontalGroup{\n  height:100%;\n  display:inline flex;\n  flex-direction:row;\n  align-items:center;\n  justify-content:space-between;\n  gap:1px;\n  box-sizing:border-box;\n}\n\n.dropdownToolbarButton{\n  display:inline flex;\n  flex-direction:row;\n  align-items:center;\n  justify-content:center;\n  position:relative;\n\n  width:-moz-fit-content;\n\n  width:fit-content;\n  min-width:140px;\n  padding:0;\n  background-color:var(--dropdown-btn-bg-color);\n  border:var(--dropdown-btn-border);\n  border-radius:2px;\n  color:var(--main-color);\n  font-size:12px;\n  line-height:14px;\n  -webkit-user-select:none;\n     -moz-user-select:none;\n          user-select:none;\n  cursor:default;\n  box-sizing:border-box;\n  outline:none;\n}\n\n.dropdownToolbarButton:hover{\n    background-color:var(--button-hover-color);\n  }\n\n.dropdownToolbarButton  > select{\n    -webkit-appearance:none;\n       -moz-appearance:none;\n            appearance:none;\n    width:inherit;\n    min-width:inherit;\n    height:28px;\n    font:message-box;\n    font-size:12px;\n    color:var(--main-color);\n    margin:0;\n    padding-block:1px 2px;\n    padding-inline:6px 38px;\n    border:none;\n    outline:none;\n    background-color:var(--dropdown-btn-bg-color);\n  }\n\n:is(.dropdownToolbarButton > select)  > option{\n      background:var(--doorhanger-bg-color);\n      color:var(--main-color);\n    }\n\n:is(.dropdownToolbarButton > select):is(:hover,:focus-visible){\n      background-color:var(--button-hover-color);\n      color:var(--toggled-btn-color);\n    }\n\n.dropdownToolbarButton::after{\n    position:absolute;\n    display:inline;\n    width:var(--icon-size);\n    height:var(--icon-size);\n\n    content:\"\";\n    background-color:var(--toolbar-icon-bg-color);\n    -webkit-mask-size:cover;\n            mask-size:cover;\n\n    inset-inline-end:4px;\n    pointer-events:none;\n    -webkit-mask-image:var(--toolbarButton-menuArrow-icon);\n            mask-image:var(--toolbarButton-menuArrow-icon);\n  }\n\n.dropdownToolbarButton:is(:hover,:focus-visible,:active)::after{\n    background-color:var(--toolbar-icon-hover-bg-color);\n  }\n\n#toolbarContainer{\n  --menuitem-height:calc(var(--toolbar-height) - 6px);\n\n  width:100%;\n  height:var(--toolbar-height);\n  padding:var(--toolbar-vertical-padding) var(--toolbar-horizontal-padding);\n  position:relative;\n  box-sizing:border-box;\n  font:message-box;\n  background-color:var(--toolbar-bg-color);\n  box-shadow:var(--toolbar-box-shadow);\n  border-bottom:var(--toolbar-border-bottom);\n}\n\n#toolbarContainer #toolbarViewer{\n    width:100%;\n    height:100%;\n    justify-content:space-between;\n  }\n\n:is(#toolbarContainer #toolbarViewer)  > *{\n      flex:none;\n    }\n\n:is(#toolbarContainer #toolbarViewer) input{\n      font:message-box;\n    }\n\n:is(#toolbarContainer #toolbarViewer) .toolbarButtonSpacer{\n      width:30px;\n      display:block;\n      height:1px;\n    }\n\n:is(#toolbarContainer #toolbarViewer) #toolbarViewerLeft #numPages.toolbarLabel{\n      padding-inline-start:3px;\n      flex:none;\n    }\n\n#toolbarContainer #loadingBar{\n    --progressBar-percent:0%;\n    --progressBar-end-offset:0;\n\n    position:absolute;\n    top:var(--toolbar-height);\n    inset-inline:0 var(--progressBar-end-offset);\n    height:4px;\n    background-color:var(--progressBar-bg-color);\n    border-bottom:1px solid var(--toolbar-border-color);\n    transition-property:inset-inline-start;\n    transition-duration:var(--sidebar-transition-duration);\n    transition-timing-function:var(--sidebar-transition-timing-function);\n  }\n\n:is(#toolbarContainer #loadingBar) .progress{\n      position:absolute;\n      top:0;\n      inset-inline-start:0;\n      width:100%;\n      transform:scaleX(var(--progressBar-percent));\n      transform-origin:calc(50% - 50% * var(--dir-factor)) 0;\n      height:100%;\n      background-color:var(--progressBar-color);\n      overflow:hidden;\n      transition:transform 200ms;\n    }\n\n.indeterminate:is(#toolbarContainer #loadingBar) .progress{\n      transform:none;\n      background-color:var(--progressBar-bg-color);\n      transition:none;\n    }\n\n:is(.indeterminate:is(#toolbarContainer #loadingBar) .progress) .glimmer{\n        position:absolute;\n        top:0;\n        inset-inline-start:0;\n        height:100%;\n        width:calc(100% + 150px);\n        background:repeating-linear-gradient(\n          135deg,\n          var(--progressBar-blend-color) 0,\n          var(--progressBar-bg-color) 5px,\n          var(--progressBar-bg-color) 45px,\n          var(--progressBar-color) 55px,\n          var(--progressBar-color) 95px,\n          var(--progressBar-blend-color) 100px\n        );\n        animation:progressIndeterminate 1s linear infinite;\n      }\n\n@media all and (max-width: 840px){\n  #sidebarContainer{\n    background-color:var(--sidebar-narrow-bg-color);\n  }\n  #outerContainer.sidebarOpen #viewerContainer{\n    inset-inline-start:0 !important;\n  }\n}\n\n@media all and (max-width: 750px){\n  #outerContainer .hiddenMediumView{\n    display:none !important;\n  }\n  #outerContainer .visibleMediumView:not(.hidden, [hidden]){\n    display:inline-block !important;\n  }\n}\n\n@media all and (max-width: 690px){\n  .hiddenSmallView,\n  .hiddenSmallView *{\n    display:none !important;\n  }\n\n  #toolbarContainer #toolbarViewer .toolbarButtonSpacer{\n    width:0;\n  }\n}\n\n@media all and (max-width: 560px){\n  #scaleSelectContainer{\n    display:none;\n  }\n}\n"
  },
  {
    "path": "viewer/viewer.html",
    "content": "﻿<!DOCTYPE html>\n<!--\nCopyright 2012 Mozilla Foundation\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nAdobe CMap resources are covered by their own copyright but the same license:\n\n    Copyright 1990-2015 Adobe Systems Incorporated.\n\nSee https://github.com/adobe-type-tools/cmap-resources\n-->\n<html dir=\"ltr\" mozdisallowselectionprint>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n    <meta name=\"google\" content=\"notranslate\">\n    <meta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self'; base-uri 'none'; connect-src 'self' ws://127.0.0.1:*; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;\">\n    <title>PDF.js viewer</title>\n\n<!-- This snippet is used in production (included from viewer.html) -->\n<link rel=\"resource\" type=\"application/l10n\" href=\"locale/locale.json\">\n<script src=\"build/pdf.mjs\" type=\"module\"></script>\n\n    <link rel=\"stylesheet\" href=\"viewer.css\">\n    <link rel=\"stylesheet\" href=\"latexworkshop.css\">\n\n  <script src=\"out/viewer/latexworkshop.js\" type=\"module\"></script>\n  </head>\n\n  <body tabindex=\"0\">\n    <div id=\"outerContainer\">\n      <span id=\"viewer-alert\" class=\"visuallyHidden\" role=\"alert\"></span>\n\n      <div id=\"sidebarContainer\">\n        <div id=\"toolbarSidebar\" class=\"toolbarHorizontalGroup\">\n          <div id=\"toolbarSidebarLeft\">\n            <div id=\"sidebarViewButtons\" class=\"toolbarHorizontalGroup toggled\" role=\"radiogroup\">\n              <button id=\"viewThumbnail\" class=\"toolbarButton toggled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-thumbs-button\" role=\"radio\" aria-checked=\"true\" aria-controls=\"thumbnailView\">\n                 <span data-l10n-id=\"pdfjs-thumbs-button-label\"></span>\n              </button>\n              <button id=\"viewOutline\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-document-outline-button\" role=\"radio\" aria-checked=\"false\" aria-controls=\"outlineView\">\n                 <span data-l10n-id=\"pdfjs-document-outline-button-label\"></span>\n              </button>\n              <button id=\"viewAttachments\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-attachments-button\" role=\"radio\" aria-checked=\"false\" aria-controls=\"attachmentsView\">\n                 <span data-l10n-id=\"pdfjs-attachments-button-label\"></span>\n              </button>\n              <button id=\"viewLayers\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-layers-button\" role=\"radio\" aria-checked=\"false\" aria-controls=\"layersView\">\n                 <span data-l10n-id=\"pdfjs-layers-button-label\"></span>\n              </button>\n            </div>\n          </div>\n\n          <div id=\"toolbarSidebarRight\">\n            <div id=\"outlineOptionsContainer\" class=\"toolbarHorizontalGroup\">\n              <div class=\"verticalToolbarSeparator\"></div>\n\n              <button id=\"currentOutlineItem\" class=\"toolbarButton\" type=\"button\" disabled=\"disabled\" tabindex=\"0\" data-l10n-id=\"pdfjs-current-outline-item-button\">\n                <span data-l10n-id=\"pdfjs-current-outline-item-button-label\"></span>\n              </button>\n            </div>\n          </div>\n        </div>\n        <div id=\"sidebarContent\">\n          <div id=\"thumbnailView\">\n          </div>\n          <div id=\"outlineView\" class=\"hidden\">\n          </div>\n          <div id=\"attachmentsView\" class=\"hidden\">\n          </div>\n          <div id=\"layersView\" class=\"hidden\">\n          </div>\n        </div>\n        <div id=\"sidebarResizer\"></div>\n      </div>  <!-- sidebarContainer -->\n\n      <div id=\"mainContainer\">\n        <div class=\"toolbar hide\">\n          <div id=\"toolbarContainer\">\n            <div id=\"toolbarViewer\" class=\"toolbarHorizontalGroup\">\n              <div id=\"toolbarViewerLeft\" class=\"toolbarHorizontalGroup\">\n                <button id=\"sidebarToggleButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-toggle-sidebar-button\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"sidebarContainer\">\n                  <span data-l10n-id=\"pdfjs-toggle-sidebar-button-label\"></span>\n                </button>\n                <!-- <div class=\"toolbarButtonSpacer\"></div> -->\n                <div class=\"toolbarButtonWithContainer\">\n                  <button id=\"viewFindButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-findbar-button\" aria-expanded=\"false\" aria-controls=\"findbar\">\n                    <span data-l10n-id=\"pdfjs-findbar-button-label\"></span>\n                  </button>\n                  <div class=\"hidden doorHanger toolbarHorizontalGroup\" id=\"findbar\">\n                    <div id=\"findInputContainer\" class=\"toolbarHorizontalGroup\">\n                      <span class=\"loadingInput end toolbarHorizontalGroup\">\n                        <input id=\"findInput\" class=\"toolbarField\" tabindex=\"0\" data-l10n-id=\"pdfjs-find-input\" aria-invalid=\"false\">\n                      </span>\n                      <div class=\"toolbarHorizontalGroup\">\n                        <button id=\"findPreviousButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-find-previous-button\">\n                          <span data-l10n-id=\"pdfjs-find-previous-button-label\"></span>\n                        </button>\n                        <div class=\"splitToolbarButtonSeparator\"></div>\n                        <button id=\"findNextButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-find-next-button\">\n                          <span data-l10n-id=\"pdfjs-find-next-button-label\"></span>\n                        </button>\n                      </div>\n                    </div>\n\n                    <div id=\"findbarOptionsOneContainer\" class=\"toolbarHorizontalGroup\">\n                      <div class=\"toggleButton toolbarLabel\">\n                        <input type=\"checkbox\" id=\"findHighlightAll\" tabindex=\"0\" />\n                        <label for=\"findHighlightAll\" data-l10n-id=\"pdfjs-find-highlight-checkbox\"></label>\n                      </div>\n                      <div class=\"toggleButton toolbarLabel\">\n                        <input type=\"checkbox\" id=\"findMatchCase\" tabindex=\"0\" />\n                        <label for=\"findMatchCase\" data-l10n-id=\"pdfjs-find-match-case-checkbox-label\"></label>\n                      </div>\n                    </div>\n                    <div id=\"findbarOptionsTwoContainer\" class=\"toolbarHorizontalGroup\">\n                      <div class=\"toggleButton toolbarLabel\">\n                        <input type=\"checkbox\" id=\"findMatchDiacritics\" tabindex=\"0\" />\n                        <label for=\"findMatchDiacritics\" data-l10n-id=\"pdfjs-find-match-diacritics-checkbox-label\"></label>\n                      </div>\n                      <div class=\"toggleButton toolbarLabel\">\n                        <input type=\"checkbox\" id=\"findEntireWord\" tabindex=\"0\" />\n                        <label for=\"findEntireWord\" data-l10n-id=\"pdfjs-find-entire-word-checkbox-label\"></label>\n                      </div>\n                    </div>\n\n                    <div id=\"findbarMessageContainer\" class=\"toolbarHorizontalGroup\" aria-live=\"polite\">\n                      <span id=\"findResultsCount\" class=\"toolbarLabel\"></span>\n                      <span id=\"findMsg\" class=\"toolbarLabel\"></span>\n                    </div>\n                  </div>  <!-- findbar -->\n                </div>\n                <div class=\"toolbarHorizontalGroup hiddenSmallView\">\n                  <button class=\"toolbarButton\" type=\"button\" id=\"previous\" tabindex=\"0\" data-l10n-id=\"pdfjs-previous-button\">\n                    <span data-l10n-id=\"pdfjs-previous-button-label\"></span>\n                  </button>\n                  <div class=\"splitToolbarButtonSeparator\"></div>\n                  <button class=\"toolbarButton\" type=\"button\" id=\"next\" tabindex=\"0\" data-l10n-id=\"pdfjs-next-button\">\n                    <span data-l10n-id=\"pdfjs-next-button-label\"></span>\n                  </button>\n                </div>\n                <div class=\"toolbarHorizontalGroup\">\n                  <span class=\"loadingInput start toolbarHorizontalGroup\">\n                    <input type=\"number\" id=\"pageNumber\" class=\"toolbarField\" value=\"1\" min=\"1\" tabindex=\"0\" data-l10n-id=\"pdfjs-page-input\" autocomplete=\"off\">\n                  </span>\n                  <span id=\"numPages\" class=\"toolbarLabel\"></span>\n                </div>\n              </div>\n              <div id=\"toolbarViewerMiddle\" class=\"toolbarHorizontalGroup\">\n                <div class=\"toolbarHorizontalGroup\">\n                  <button id=\"zoomOutButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-zoom-out-button\">\n                    <span data-l10n-id=\"pdfjs-zoom-out-button-label\"></span>\n                  </button>\n                  <div class=\"splitToolbarButtonSeparator\"></div>\n                  <button id=\"zoomInButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-zoom-in-button\">\n                    <span data-l10n-id=\"pdfjs-zoom-in-button-label\"></span>\n                  </button>\n                </div>\n                <span id=\"scaleSelectContainer\" class=\"dropdownToolbarButton\">\n                  <select id=\"scaleSelect\" tabindex=\"0\" data-l10n-id=\"pdfjs-zoom-select\">\n                    <option id=\"pageAutoOption\" value=\"auto\" selected=\"selected\" data-l10n-id=\"pdfjs-page-scale-auto\"></option>\n                    <option id=\"pageActualOption\" value=\"page-actual\" data-l10n-id=\"pdfjs-page-scale-actual\"></option>\n                    <option id=\"pageFitOption\" value=\"page-fit\" data-l10n-id=\"pdfjs-page-scale-fit\"></option>\n                    <option id=\"pageWidthOption\" value=\"page-width\" data-l10n-id=\"pdfjs-page-scale-width\"></option>\n                    <option id=\"customScaleOption\" value=\"custom\" disabled=\"disabled\" hidden=\"true\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 0 }'></option>\n                    <option value=\"0.5\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 50 }'></option>\n                    <option value=\"0.75\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 75 }'></option>\n                    <option value=\"1\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 100 }'></option>\n                    <option value=\"1.25\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 125 }'></option>\n                    <option value=\"1.5\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 150 }'></option>\n                    <option value=\"2\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 200 }'></option>\n                    <option value=\"3\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 300 }'></option>\n                    <option value=\"4\" data-l10n-id=\"pdfjs-page-scale-percent\" data-l10n-args='{ \"scale\": 400 }'></option>\n                  </select>\n                </span>\n              </div>\n              <div id=\"toolbarViewerRight\" class=\"toolbarHorizontalGroup\">\n                <div id=\"editorModeButtons\" class=\"toolbarHorizontalGroup\">\n                  <div id=\"editorComment\" class=\"toolbarButtonWithContainer\" hidden=\"true\">\n                    <button id=\"editorCommentButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorCommentParamsToolbar\" data-l10n-id=\"pdfjs-editor-comment-button\">\n                      <span data-l10n-id=\"pdfjs-editor-comment-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden menu\" id=\"editorCommentParamsToolbar\">\n                      <div id=\"editorCommentsSidebar\" class=\"menuContainer comment sidebar\" role=\"landmark\" aria-labelledby=\"editorCommentsSidebarHeader\">\n                        <div id=\"editorCommentsSidebarResizer\" class=\"sidebarResizer\"></div>\n                        <div id=\"editorCommentsSidebarHeader\" role=\"heading\" aria-level=\"2\">\n                          <span class=\"commentCount\">\n                            <span id=\"editorCommentsSidebarTitle\" data-l10n-id=\"pdfjs-editor-comments-sidebar-title\" data-l10n-args='{ \"count\": 0 }'></span>\n                            <span id=\"editorCommentsSidebarCount\"></span>\n                          </span>\n                          <button id=\"editorCommentsSidebarCloseButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-comments-sidebar-close-button\">\n                            <span data-l10n-id=\"pdfjs-editor-comments-sidebar-close-button-label\"></span>\n                          </button>\n                        </div>\n                        <div id=\"editorCommentsSidebarListContainer\" tabindex=\"-1\">\n                          <ul id=\"editorCommentsSidebarList\"></ul>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div id=\"editorSignature\" class=\"toolbarButtonWithContainer\" hidden=\"true\">\n                    <button id=\"editorSignatureButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorSignatureParamsToolbar\" data-l10n-id=\"pdfjs-editor-signature-button\">\n                      <span data-l10n-id=\"pdfjs-editor-signature-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden doorHangerRight menu\" id=\"editorSignatureParamsToolbar\">\n                      <div id=\"addSignatureDoorHanger\" class=\"menuContainer\" role=\"region\" data-l10n-id=\"pdfjs-editor-add-signature-container\">\n                        <button id=\"editorSignatureAddSignature\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-signature-add-signature-button\">\n                          <span data-l10n-id=\"pdfjs-editor-signature-add-signature-button-label\" class=\"editorParamsLabel\"></span>\n                        </button>\n                      </div>\n                    </div>\n                  </div>\n                  <div id=\"editorHighlight\" class=\"toolbarButtonWithContainer\">\n                    <button id=\"editorHighlightButton\" class=\"toolbarButton\" type=\"button\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorHighlightParamsToolbar\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-highlight-button\">\n                      <span data-l10n-id=\"pdfjs-editor-highlight-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorHighlightParamsToolbar\">\n                      <div id=\"highlightParamsToolbarContainer\" class=\"editorParamsToolbarContainer\">\n                        <div id=\"editorHighlightColorPicker\" class=\"colorPicker\">\n                          <span id=\"highlightColorPickerLabel\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-highlight-colorpicker-label\"></span>\n                        </div>\n                        <div id=\"editorHighlightThickness\">\n                          <label for=\"editorFreeHighlightThickness\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-free-highlight-thickness-input\"></label>\n                          <div class=\"thicknessPicker\">\n                            <input type=\"range\" id=\"editorFreeHighlightThickness\" class=\"editorParamsSlider\" data-l10n-id=\"pdfjs-editor-free-highlight-thickness-title\" value=\"12\" min=\"8\" max=\"24\" step=\"1\" tabindex=\"0\">\n                          </div>\n                        </div>\n                        <div id=\"editorHighlightVisibility\">\n                          <div class=\"divider\"></div>\n                          <div class=\"toggler\">\n                            <label for=\"editorHighlightShowAll\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-highlight-show-all-button-label\"></label>\n                            <button id=\"editorHighlightShowAll\" class=\"toggle-button\" type=\"button\" data-l10n-id=\"pdfjs-editor-highlight-show-all-button\" aria-pressed=\"true\" tabindex=\"0\"></button>\n                          </div>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div id=\"editorFreeText\" class=\"toolbarButtonWithContainer\">\n                    <button id=\"editorFreeTextButton\" class=\"toolbarButton\" type=\"button\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorFreeTextParamsToolbar\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-free-text-button\">\n                      <span data-l10n-id=\"pdfjs-editor-free-text-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorFreeTextParamsToolbar\">\n                      <div class=\"editorParamsToolbarContainer\">\n                        <div class=\"editorParamsSetter\">\n                          <label for=\"editorFreeTextColor\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-free-text-color-input\"></label>\n                          <input type=\"color\" id=\"editorFreeTextColor\" class=\"editorParamsColor\" tabindex=\"0\">\n                        </div>\n                        <div class=\"editorParamsSetter\">\n                          <label for=\"editorFreeTextFontSize\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-free-text-size-input\"></label>\n                          <input type=\"range\" id=\"editorFreeTextFontSize\" class=\"editorParamsSlider\" value=\"10\" min=\"5\" max=\"100\" step=\"1\" tabindex=\"0\">\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div id=\"editorInk\" class=\"toolbarButtonWithContainer\">\n                    <button id=\"editorInkButton\" class=\"toolbarButton\" type=\"button\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorInkParamsToolbar\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-ink-button\">\n                      <span data-l10n-id=\"pdfjs-editor-ink-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorInkParamsToolbar\">\n                      <div class=\"editorParamsToolbarContainer\">\n                        <div class=\"editorParamsSetter\">\n                          <label for=\"editorInkColor\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-ink-color-input\"></label>\n                          <input type=\"color\" id=\"editorInkColor\" class=\"editorParamsColor\" tabindex=\"0\">\n                        </div>\n                        <div class=\"editorParamsSetter\">\n                          <label for=\"editorInkThickness\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-ink-thickness-input\"></label>\n                          <input type=\"range\" id=\"editorInkThickness\" class=\"editorParamsSlider\" value=\"1\" min=\"1\" max=\"20\" step=\"1\" tabindex=\"0\">\n                        </div>\n                        <div class=\"editorParamsSetter\">\n                          <label for=\"editorInkOpacity\" class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-ink-opacity-input\"></label>\n                          <input type=\"range\" id=\"editorInkOpacity\" class=\"editorParamsSlider\" value=\"1\" min=\"0.05\" max=\"1\" step=\"0.05\" tabindex=\"0\">\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                  <div id=\"editorStamp\" class=\"toolbarButtonWithContainer\">\n                    <button id=\"editorStampButton\" class=\"toolbarButton\" type=\"button\" disabled=\"disabled\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"editorStampParamsToolbar\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-stamp-button\">\n                      <span data-l10n-id=\"pdfjs-editor-stamp-button-label\"></span>\n                    </button>\n                    <div class=\"editorParamsToolbar hidden doorHangerRight menu\" id=\"editorStampParamsToolbar\">\n                      <div class=\"menuContainer\">\n                        <button id=\"editorStampAddImage\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-stamp-add-image-button\">\n                          <span class=\"editorParamsLabel\" data-l10n-id=\"pdfjs-editor-stamp-add-image-button-label\"></span>\n                        </button>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n\n                <div id=\"editorModeSeparator\" class=\"verticalToolbarSeparator\"></div>\n\n                <div class=\"toolbarHorizontalGroup hiddenMediumView\">\n                  <button id=\"printButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-print-button\">\n                    <span data-l10n-id=\"pdfjs-print-button-label\"></span>\n                  </button>\n\n                  <button id=\"downloadButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-save-button\">\n                    <span data-l10n-id=\"pdfjs-save-button-label\"></span>\n                  </button>\n                </div>\n\n                <div class=\"verticalToolbarSeparator hiddenMediumView\"></div>\n\n                <div id=\"secondaryToolbarToggle\" class=\"toolbarButtonWithContainer\">\n                  <button id=\"secondaryToolbarToggleButton\" class=\"toolbarButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-tools-button\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"secondaryToolbar\">\n                    <span data-l10n-id=\"pdfjs-tools-button-label\"></span>\n                  </button>\n                  <div id=\"secondaryToolbar\" class=\"hidden doorHangerRight menu\">\n                    <div id=\"secondaryToolbarButtonContainer\" class=\"menuContainer\">\n                      <button id=\"secondaryOpenFile\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-open-file-button\">\n                        <span data-l10n-id=\"pdfjs-open-file-button-label\"></span>\n                      </button>\n\n                      <div class=\"visibleMediumView\">\n                        <button id=\"secondaryPrint\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-print-button\">\n                          <span data-l10n-id=\"pdfjs-print-button-label\"></span>\n                        </button>\n\n                        <button id=\"secondaryDownload\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-save-button\">\n                          <span data-l10n-id=\"pdfjs-save-button-label\"></span>\n                        </button>\n\n                      </div>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <button id=\"presentationMode\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-presentation-mode-button\">\n                        <span data-l10n-id=\"pdfjs-presentation-mode-button-label\"></span>\n                      </button>\n\n                      <a href=\"#\" id=\"viewBookmark\" class=\"toolbarButton labeled\" tabindex=\"0\" data-l10n-id=\"pdfjs-bookmark-button\">\n                        <span data-l10n-id=\"pdfjs-bookmark-button-label\"></span>\n                      </a>\n\n                      <div id=\"viewBookmarkSeparator\" class=\"horizontalToolbarSeparator\"></div>\n\n                      <button id=\"firstPage\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-first-page-button\">\n                        <span data-l10n-id=\"pdfjs-first-page-button-label\"></span>\n                      </button>\n                      <button id=\"lastPage\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-last-page-button\">\n                        <span data-l10n-id=\"pdfjs-last-page-button-label\"></span>\n                      </button>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <button id=\"pageRotateCw\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-page-rotate-cw-button\">\n                        <span data-l10n-id=\"pdfjs-page-rotate-cw-button-label\"></span>\n                      </button>\n                      <button id=\"pageRotateCcw\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-page-rotate-ccw-button\">\n                        <span data-l10n-id=\"pdfjs-page-rotate-ccw-button-label\"></span>\n                      </button>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <div id=\"cursorToolButtons\" role=\"radiogroup\">\n                        <button id=\"cursorSelectTool\" class=\"toolbarButton labeled toggled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-cursor-text-select-tool-button\" role=\"radio\" aria-checked=\"true\">\n                          <span data-l10n-id=\"pdfjs-cursor-text-select-tool-button-label\"></span>\n                        </button>\n                        <button id=\"cursorHandTool\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-cursor-hand-tool-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-cursor-hand-tool-button-label\"></span>\n                        </button>\n                      </div>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <div id=\"scrollModeButtons\" role=\"radiogroup\">\n                        <button id=\"scrollPage\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-scroll-page-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-scroll-page-button-label\"></span>\n                        </button>\n                        <button id=\"scrollVertical\" class=\"toolbarButton labeled toggled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-scroll-vertical-button\" role=\"radio\" aria-checked=\"true\">\n                          <span data-l10n-id=\"pdfjs-scroll-vertical-button-label\"></span>\n                        </button>\n                        <button id=\"scrollHorizontal\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-scroll-horizontal-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-scroll-horizontal-button-label\"></span>\n                        </button>\n                        <button id=\"scrollWrapped\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-scroll-wrapped-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-scroll-wrapped-button-label\"></span>\n                        </button>\n                      </div>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <div id=\"spreadModeButtons\" role=\"radiogroup\">\n                        <button id=\"spreadNone\" class=\"toolbarButton labeled toggled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-spread-none-button\" role=\"radio\" aria-checked=\"true\">\n                          <span data-l10n-id=\"pdfjs-spread-none-button-label\"></span>\n                        </button>\n                        <button id=\"spreadOdd\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-spread-odd-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-spread-odd-button-label\"></span>\n                        </button>\n                        <button id=\"spreadEven\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-spread-even-button\" role=\"radio\" aria-checked=\"false\">\n                          <span data-l10n-id=\"pdfjs-spread-even-button-label\"></span>\n                        </button>\n                      </div>\n\n                      <div id=\"imageAltTextSettingsSeparator\" class=\"horizontalToolbarSeparator hidden\"></div>\n                      <button id=\"imageAltTextSettings\" type=\"button\" class=\"toolbarButton labeled hidden\" tabindex=\"0\" data-l10n-id=\"pdfjs-image-alt-text-settings-button\" aria-controls=\"altTextSettingsDialog\">\n                        <span data-l10n-id=\"pdfjs-image-alt-text-settings-button-label\"></span>\n                      </button>\n\n                      <div class=\"horizontalToolbarSeparator\"></div>\n\n                      <button id=\"documentProperties\" class=\"toolbarButton labeled\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-document-properties-button\" aria-controls=\"documentPropertiesDialog\">\n                        <span data-l10n-id=\"pdfjs-document-properties-button-label\"></span>\n                      </button>\n                    </div>\n                  </div>  <!-- secondaryToolbar -->\n                </div>\n              </div>\n            </div>\n            <div id=\"loadingBar\">\n              <div class=\"progress\">\n                <div class=\"glimmer\">\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <div id=\"viewerContainer\" tabindex=\"0\">\n          <div id=\"viewer\" class=\"pdfViewer\"></div>\n        </div>\n      </div> <!-- mainContainer -->\n\n      <div id=\"dialogContainer\">\n        <dialog id=\"passwordDialog\">\n          <div class=\"row\">\n            <label for=\"password\" id=\"passwordText\" data-l10n-id=\"pdfjs-password-label\"></label>\n          </div>\n          <div class=\"row\">\n            <input type=\"password\" id=\"password\" class=\"toolbarField\">\n          </div>\n          <div class=\"buttonRow\">\n            <button id=\"passwordCancel\" class=\"dialogButton\" type=\"button\"><span data-l10n-id=\"pdfjs-password-cancel-button\"></span></button>\n            <button id=\"passwordSubmit\" class=\"dialogButton\" type=\"button\"><span data-l10n-id=\"pdfjs-password-ok-button\"></span></button>\n          </div>\n        </dialog>\n        <dialog id=\"documentPropertiesDialog\">\n          <div class=\"row\">\n            <span id=\"fileNameLabel\" data-l10n-id=\"pdfjs-document-properties-file-name\"></span>\n            <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"fileSizeLabel\" data-l10n-id=\"pdfjs-document-properties-file-size\"></span>\n            <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\n          </div>\n          <div class=\"separator\"></div>\n          <div class=\"row\">\n            <span id=\"titleLabel\" data-l10n-id=\"pdfjs-document-properties-title\"></span>\n            <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"authorLabel\" data-l10n-id=\"pdfjs-document-properties-author\"></span>\n            <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"subjectLabel\" data-l10n-id=\"pdfjs-document-properties-subject\"></span>\n            <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"keywordsLabel\" data-l10n-id=\"pdfjs-document-properties-keywords\"></span>\n            <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"creationDateLabel\" data-l10n-id=\"pdfjs-document-properties-creation-date\"></span>\n            <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"modificationDateLabel\" data-l10n-id=\"pdfjs-document-properties-modification-date\"></span>\n            <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"creatorLabel\" data-l10n-id=\"pdfjs-document-properties-creator\"></span>\n            <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\n          </div>\n          <div class=\"separator\"></div>\n          <div class=\"row\">\n            <span id=\"producerLabel\" data-l10n-id=\"pdfjs-document-properties-producer\"></span>\n            <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"versionLabel\" data-l10n-id=\"pdfjs-document-properties-version\"></span>\n            <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"pageCountLabel\" data-l10n-id=\"pdfjs-document-properties-page-count\"></span>\n            <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\n          </div>\n          <div class=\"row\">\n            <span id=\"pageSizeLabel\" data-l10n-id=\"pdfjs-document-properties-page-size\"></span>\n            <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\n          </div>\n          <div class=\"separator\"></div>\n          <div class=\"row\">\n            <span id=\"linearizedLabel\" data-l10n-id=\"pdfjs-document-properties-linearized\"></span>\n            <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\n          </div>\n          <div class=\"buttonRow\">\n            <button id=\"documentPropertiesClose\" class=\"dialogButton\" type=\"button\"><span data-l10n-id=\"pdfjs-document-properties-close-button\"></span></button>\n          </div>\n        </dialog>\n        <dialog class=\"dialog altText\" id=\"altTextDialog\" aria-labelledby=\"dialogLabel\" aria-describedby=\"dialogDescription\">\n          <div id=\"altTextContainer\" class=\"mainContainer\">\n            <div id=\"overallDescription\">\n              <span id=\"dialogLabel\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-label\" class=\"title\"></span>\n              <span id=\"dialogDescription\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-description\"></span>\n            </div>\n            <div id=\"addDescription\">\n              <div class=\"radio\">\n                <div class=\"radioButton\">\n                  <input type=\"radio\" id=\"descriptionButton\" name=\"altTextOption\" tabindex=\"0\" aria-describedby=\"descriptionAreaLabel\" checked>\n                  <label for=\"descriptionButton\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-label\"></label>\n                </div>\n                <div class=\"radioLabel\">\n                  <span id=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-description\"></span>\n                </div>\n              </div>\n              <div class=\"descriptionArea\">\n                <textarea id=\"descriptionTextarea\" aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-textarea\" tabindex=\"0\"></textarea>\n              </div>\n            </div>\n            <div id=\"markAsDecorative\">\n              <div class=\"radio\">\n                <div class=\"radioButton\">\n                  <input type=\"radio\" id=\"decorativeButton\" name=\"altTextOption\" aria-describedby=\"decorativeLabel\">\n                  <label for=\"decorativeButton\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-label\"></label>\n                </div>\n                <div class=\"radioLabel\">\n                  <span id=\"decorativeLabel\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-description\"></span>\n                </div>\n              </div>\n            </div>\n            <div id=\"buttons\">\n              <button id=\"altTextCancel\" class=\"secondaryButton\" type=\"button\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\"></span></button>\n              <button id=\"altTextSave\" class=\"primaryButton\" type=\"button\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-save-button\"></span></button>\n            </div>\n          </div>\n        </dialog>\n        <dialog class=\"dialog newAltText\" id=\"newAltTextDialog\" aria-labelledby=\"newAltTextTitle\" aria-describedby=\"newAltTextDescription\" tabindex=\"0\">\n          <div id=\"newAltTextContainer\" class=\"mainContainer\">\n            <div class=\"title\">\n              <span id=\"newAltTextTitle\" data-l10n-id=\"pdfjs-editor-new-alt-text-dialog-edit-label\" role=\"sectionhead\" tabindex=\"0\"></span>\n            </div>\n            <div id=\"mainContent\">\n              <div id=\"descriptionAndSettings\">\n                <div id=\"descriptionInstruction\">\n                  <div id=\"newAltTextDescriptionContainer\">\n                    <div class=\"altTextSpinner\" role=\"status\" aria-live=\"polite\"></div>\n                    <textarea id=\"newAltTextDescriptionTextarea\" aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-new-alt-text-textarea\" tabindex=\"0\"></textarea>\n                  </div>\n                  <span id=\"newAltTextDescription\" role=\"note\" data-l10n-id=\"pdfjs-editor-new-alt-text-description\"></span>\n                  <div id=\"newAltTextDisclaimer\" role=\"note\"><div><span data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer1\"></span> <a href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\" rel=\"noopener noreferrer\" id=\"newAltTextLearnMore\" data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\" tabindex=\"0\"></a></div></div>\n                </div>\n                <div id=\"newAltTextCreateAutomatically\" class=\"toggler\">\n                  <button id=\"newAltTextCreateAutomaticallyButton\" class=\"toggle-button\" type=\"button\" aria-pressed=\"true\" tabindex=\"0\"></button>\n                  <label for=\"newAltTextCreateAutomaticallyButton\" class=\"togglerLabel\" data-l10n-id=\"pdfjs-editor-new-alt-text-create-automatically-button-label\"></label>\n                </div>\n                <div id=\"newAltTextDownloadModel\" class=\"hidden\">\n                  <span id=\"newAltTextDownloadModelDescription\" data-l10n-id=\"pdfjs-editor-new-alt-text-ai-model-downloading-progress\" aria-valuemin=\"0\" data-l10n-args='{ \"totalSize\": 0, \"downloadedSize\": 0 }'></span>\n                </div>\n              </div>\n              <div id=\"newAltTextImagePreview\"></div>\n            </div>\n            <div id=\"newAltTextError\" class=\"messageBar\">\n              <div>\n                <div>\n                  <span class=\"title\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-title\"></span>\n                  <span  class=\"description\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-description\"></span>\n                </div>\n                <button id=\"newAltTextCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-new-alt-text-error-close-button\"></span></button>\n              </div>\n            </div>\n            <div id=\"newAltTextButtons\" class=\"dialogButtonsGroup\">\n              <button id=\"newAltTextCancel\" type=\"button\" class=\"secondaryButton hidden\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\"></span></button>\n              <button id=\"newAltTextNotNow\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-new-alt-text-not-now-button\"></span></button>\n              <button id=\"newAltTextSave\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-save-button\"></span></button>\n            </div>\n          </div>\n        </dialog>\n\n        <dialog class=\"dialog\" id=\"altTextSettingsDialog\" aria-labelledby=\"altTextSettingsTitle\">\n          <div id=\"altTextSettingsContainer\" class=\"mainContainer\">\n            <div class=\"title\">\n              <span id=\"altTextSettingsTitle\" data-l10n-id=\"pdfjs-editor-alt-text-settings-dialog-label\" role=\"sectionhead\" tabindex=\"0\" class=\"title\"></span>\n            </div>\n            <div id=\"automaticAltText\">\n              <span data-l10n-id=\"pdfjs-editor-alt-text-settings-automatic-title\"></span>\n              <div id=\"automaticSettings\">\n                <div id=\"createModelSetting\">\n                  <div class=\"toggler\">\n                    <button id=\"createModelButton\" type=\"button\" class=\"toggle-button\" aria-pressed=\"true\" tabindex=\"0\"></button>\n                    <label for=\"createModelButton\" class=\"togglerLabel\" data-l10n-id=\"pdfjs-editor-alt-text-settings-create-model-button-label\"></label>\n                  </div>\n                  <div id=\"createModelDescription\" class=\"description\">\n                    <span data-l10n-id=\"pdfjs-editor-alt-text-settings-create-model-description\"></span> <a href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\" rel=\"noopener noreferrer\" id=\"altTextSettingsLearnMore\" data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\" tabindex=\"0\"></a>\n                  </div>\n                </div>\n                <div id=\"aiModelSettings\">\n                  <div>\n                    <span data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-label\" data-l10n-args='{ \"totalSize\": 180 }'></span>\n                    <div id=\"aiModelDescription\" class=\"description\">\n                      <span data-l10n-id=\"pdfjs-editor-alt-text-settings-ai-model-description\"></span>\n                    </div>\n                  </div>\n                  <button id=\"deleteModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-settings-delete-model-button\"></span></button>\n                  <button id=\"downloadModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-button\"></span></button>\n                </div>\n              </div>\n            </div>\n            <div class=\"dialogSeparator\"></div>\n            <div id=\"altTextEditor\">\n              <span data-l10n-id=\"pdfjs-editor-alt-text-settings-editor-title\"></span>\n              <div id=\"showAltTextEditor\">\n                <div class=\"toggler\">\n                  <button id=\"showAltTextDialogButton\" type=\"button\" class=\"toggle-button\" aria-pressed=\"true\" tabindex=\"0\"></button>\n                  <label for=\"showAltTextDialogButton\" class=\"togglerLabel\" data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-button-label\"></label>\n                </div>\n                <div id=\"showAltTextDialogDescription\" class=\"description\">\n                  <span data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-description\"></span>\n                </div>\n              </div>\n            </div>\n            <div id=\"buttons\" class=\"dialogButtonsGroup\">\n              <button id=\"altTextSettingsCloseButton\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-alt-text-settings-close-button\"></span></button>\n            </div>\n          </div>\n        </dialog>\n\n        <dialog class=\"dialog signatureDialog\" id=\"addSignatureDialog\" aria-labelledby=\"addSignatureDialogLabel\">\n          <span id=\"addSignatureDialogLabel\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-label\"></span>\n          <div id=\"addSignatureContainer\" class=\"mainContainer\">\n            <div class=\"title\">\n              <span role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-title\" tabindex=\"0\"></span>\n            </div>\n            <div role=\"tablist\" id=\"addSignatureOptions\">\n              <button id=\"addSignatureTypeButton\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-controls=\"addSignatureTypeContainer\" data-l10n-id=\"pdfjs-editor-add-signature-type-button\" tabindex=\"0\"></button>\n              <button id=\"addSignatureDrawButton\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"addSignatureDrawContainer\" data-l10n-id=\"pdfjs-editor-add-signature-draw-button\" tabindex=\"0\"></button>\n              <button id=\"addSignatureImageButton\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"addSignatureImageContainer\" data-l10n-id=\"pdfjs-editor-add-signature-image-button\" tabindex=\"-1\"></button>\n            </div>\n            <div id=\"addSignatureActionContainer\" data-selected=\"type\">\n              <div id=\"addSignatureTypeContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureTypeContainer\">\n                <input id=\"addSignatureTypeInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-type-input\" tabindex=\"0\"></input>\n              </div>\n              <div id=\"addSignatureDrawContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureDrawButton\" tabindex=\"-1\">\n                <svg id=\"addSignatureDraw\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"addSignatureDrawPlaceholder\"></svg>\n                <span id=\"addSignatureDrawPlaceholder\" data-l10n-id=\"pdfjs-editor-add-signature-draw-placeholder\"></span>\n                <div id=\"thickness\">\n                  <div>\n                    <label for=\"addSignatureDrawThickness\" data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range-label\"></label>\n                    <input type=\"range\" id=\"addSignatureDrawThickness\" min=\"1\" max=\"5\" step=\"1\" value=\"1\" data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range\" data-l10n-args='{ \"thickness\": 1 }' tabindex=\"0\">\n                  </div>\n                </div>\n              </div>\n              <div id=\"addSignatureImageContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureImageButton\" tabindex=\"-1\">\n                <svg id=\"addSignatureImage\" xmlns=\"http://www.w3.org/2000/svg\" aria-labelledby=\"addSignatureImagePlaceholder\"></svg>\n                <div id=\"addSignatureImagePlaceholder\">\n                  <span data-l10n-id=\"pdfjs-editor-add-signature-image-placeholder\"></span>\n                  <label id=\"addSignatureImageBrowse\" for=\"addSignatureFilePicker\" tabindex=\"0\">\n                    <a data-l10n-id=\"pdfjs-editor-add-signature-image-browse-link\"></a>\n                  </label>\n                  <input id=\"addSignatureFilePicker\" type=\"file\"></input>\n                </div>\n              </div>\n              <div id=\"addSignatureControls\">\n                <div id=\"horizontalContainer\">\n                  <div id=\"addSignatureDescriptionContainer\">\n                    <label for=\"addSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n                    <span id=\"addSignatureDescription\" class=\"inputWithClearButton\">\n                      <input id=\"addSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\" tabindex=\"0\"></input>\n                      <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n                    </span>\n                  </div>\n                  <button id=\"clearSignatureButton\" type=\"button\" data-l10n-id=\"pdfjs-editor-add-signature-clear-button\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-clear-button-label\"></span></button>\n                </div>\n                <div id=\"addSignatureSaveContainer\">\n                  <input type=\"checkbox\" id=\"addSignatureSaveCheckbox\"></input>\n                  <label for=\"addSignatureSaveCheckbox\" data-l10n-id=\"pdfjs-editor-add-signature-save-checkbox\"></label>\n                  <span></span>\n                  <span id=\"addSignatureSaveWarning\" data-l10n-id=\"pdfjs-editor-add-signature-save-warning-message\"></span>\n                </div>\n              </div>\n              <div id=\"addSignatureError\" hidden=\"true\" class=\"messageBar\">\n                <div>\n                  <div>\n                    <span id=\"addSignatureErrorTitle\" class=\"title\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-title\"></span>\n                    <span id=\"addSignatureErrorDescription\" class=\"description\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-description\"></span>\n                  </div>\n                  <button id=\"addSignatureErrorCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-error-close-button\"></span></button>\n                </div>\n              </div>\n              <div class=\"dialogButtonsGroup\">\n                <button id=\"addSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n                <button id=\"addSignatureAddButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-add-button\"></span></button>\n              </div>\n            </div>\n          </div>\n       </dialog>\n\n       <dialog class=\"dialog signatureDialog\" id=\"editSignatureDescriptionDialog\" aria-labelledby=\"editSignatureDescriptionTitle\">\n        <div id=\"editSignatureDescriptionContainer\" class=\"mainContainer\">\n          <div class=\"title\">\n            <span id=\"editSignatureDescriptionTitle\" role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-edit-signature-dialog-title\" tabindex=\"0\"></span>\n          </div>\n          <div id=\"editSignatureDescriptionAndView\">\n            <div id=\"editSignatureDescriptionContainer\">\n              <label for=\"editSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n              <span id=\"editSignatureDescription\" class=\"inputWithClearButton\">\n                <input id=\"editSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\" tabindex=\"0\"></input>\n                <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n              </span>\n            </div>\n            <svg id=\"editSignatureView\" xmlns=\"http://www.w3.org/2000/svg\"></svg>\n          </div>\n          <div class=\"dialogButtonsGroup\">\n            <button id=\"editSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n            <button id=\"editSignatureUpdateButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-edit-signature-update-button\"></span></button>\n          </div>\n        </div>\n      </dialog>\n\n      <dialog class=\"dialog commentManager\" id=\"commentManagerDialog\" aria-labelledby=\"commentManagerTitle\">\n        <div class=\"mainContainer\">\n          <div class=\"title\" id=\"commentManagerToolbar\">\n            <span id=\"commentManagerTitle\" role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-edit-comment-dialog-title-when-adding\"></span>\n          </div>\n          <textarea id=\"commentManagerTextInput\" data-l10n-id=\"pdfjs-editor-edit-comment-dialog-text-input\" tabindex=\"0\"></textarea>\n          <div class=\"dialogButtonsGroup\">\n            <button id=\"commentManagerCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\">\n              <span data-l10n-id=\"pdfjs-editor-edit-comment-dialog-cancel-button\"></span>\n            </button>\n            <button id=\"commentManagerSaveButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\">\n              <span data-l10n-id=\"pdfjs-editor-edit-comment-dialog-save-button-when-adding\"></span>\n            </button>\n          </div>\n        </div>\n      </dialog>\n\n        <dialog id=\"printServiceDialog\" style=\"min-width: 200px;\">\n          <div class=\"row\">\n            <span data-l10n-id=\"pdfjs-print-progress-message\"></span>\n          </div>\n          <div class=\"row\">\n            <progress value=\"0\" max=\"100\"></progress>\n            <span data-l10n-id=\"pdfjs-print-progress-percent\" data-l10n-args='{ \"progress\": 0 }' class=\"relative-progress\">0%</span>\n          </div>\n          <div class=\"buttonRow\">\n            <button id=\"printCancel\" class=\"dialogButton\" type=\"button\"><span data-l10n-id=\"pdfjs-print-progress-close-button\"></span></button>\n          </div>\n        </dialog>\n      </div>  <!-- dialogContainer -->\n\n      <div id=\"editorUndoBar\" class=\"messageBar\" role=\"status\" aria-labelledby=\"editorUndoBarMessage\" tabindex=\"-1\" hidden>\n        <div>\n          <div>\n            <span id=\"editorUndoBarMessage\" class=\"description\"></span>\n          </div>\n          <button id=\"editorUndoBarUndoButton\" class=\"undoButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-undo-bar-undo-button\">\n            <span data-l10n-id=\"pdfjs-editor-undo-bar-undo-button-label\"></span>\n          </button>\n          <button id=\"editorUndoBarCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\" data-l10n-id=\"pdfjs-editor-undo-bar-close-button\">\n            <span data-l10n-id=\"pdfjs-editor-undo-bar-close-button-label\"></span>\n          </button>\n        </div>\n      </div> <!-- editorUndoBar -->\n\n    </div> <!-- outerContainer -->\n    <div id=\"printContainer\"></div>\n  </body>\n</html>\n"
  },
  {
    "path": "viewer/viewer.mjs",
    "content": "/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n/**\n * pdfjsVersion = 5.4.394\n * pdfjsBuild = 2cc809ade\n */\n/******/ // The require scope\n/******/ var __webpack_require__ = {};\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = {};\n\n;// ./web/pdfjs.js\nconst {\n  AbortException,\n  AnnotationEditorLayer,\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  AnnotationEditorUIManager,\n  AnnotationLayer,\n  AnnotationMode,\n  AnnotationType,\n  applyOpacity,\n  build,\n  ColorPicker,\n  createValidAbsoluteUrl,\n  CSSConstants,\n  DOMSVGFactory,\n  DrawLayer,\n  FeatureTest,\n  fetchData,\n  findContrastColor,\n  getDocument,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl: pdfjs_getPdfFilenameFromUrl,\n  getRGB,\n  getUuid,\n  getXfaPageViewport,\n  GlobalWorkerOptions,\n  ImageKind,\n  InvalidPDFException,\n  isDataScheme,\n  isPdfFile,\n  isValidExplicitDest,\n  MathClamp,\n  noContextMenu,\n  normalizeUnicode,\n  OPS,\n  OutputScale,\n  PasswordResponses,\n  PDFDataRangeTransport,\n  PDFDateString,\n  PDFWorker,\n  PermissionFlag,\n  PixelsPerInch,\n  RenderingCancelledException,\n  renderRichText,\n  ResponseException,\n  setLayerDimensions,\n  shadow,\n  SignatureExtractor,\n  stopEvent,\n  SupportedImageMimeTypes,\n  TextLayer,\n  TouchManager,\n  updateUrlHash,\n  Util,\n  VerbosityLevel,\n  version,\n  XfaLayer\n} = globalThis.pdfjsLib;\n\n;// ./web/ui_utils.js\n\nconst DEFAULT_SCALE_VALUE = \"auto\";\nconst DEFAULT_SCALE = 1.0;\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst MIN_SCALE = 0.1;\nconst MAX_SCALE = 10.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\nconst RenderingStates = {\n  INITIAL: 0,\n  RUNNING: 1,\n  PAUSED: 2,\n  FINISHED: 3\n};\nconst PresentationModeState = {\n  UNKNOWN: 0,\n  NORMAL: 1,\n  CHANGING: 2,\n  FULLSCREEN: 3\n};\nconst SidebarView = {\n  UNKNOWN: -1,\n  NONE: 0,\n  THUMBS: 1,\n  OUTLINE: 2,\n  ATTACHMENTS: 3,\n  LAYERS: 4\n};\nconst TextLayerMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_PERMISSIONS: 2\n};\nconst ScrollMode = {\n  UNKNOWN: -1,\n  VERTICAL: 0,\n  HORIZONTAL: 1,\n  WRAPPED: 2,\n  PAGE: 3\n};\nconst SpreadMode = {\n  UNKNOWN: -1,\n  NONE: 0,\n  ODD: 1,\n  EVEN: 2\n};\nconst CursorTool = {\n  SELECT: 0,\n  HAND: 1,\n  ZOOM: 2\n};\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n  let parent = element.offsetParent;\n  if (!parent) {\n    console.error(\"offsetParent is not set -- cannot scroll\");\n    return;\n  }\n  let offsetY = element.offsetTop + element.clientTop;\n  let offsetX = element.offsetLeft + element.clientLeft;\n  while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains(\"markedContent\") || getComputedStyle(parent).overflow === \"hidden\")) {\n    offsetY += parent.offsetTop;\n    offsetX += parent.offsetLeft;\n    parent = parent.offsetParent;\n    if (!parent) {\n      return;\n    }\n  }\n  if (spot) {\n    if (spot.top !== undefined) {\n      offsetY += spot.top;\n    }\n    if (spot.left !== undefined) {\n      if (scrollMatches) {\n        const elementWidth = element.getBoundingClientRect().width;\n        const padding = MathClamp((parent.clientWidth - elementWidth) / 2, 20, 400);\n        offsetX += spot.left - padding;\n      } else {\n        offsetX += spot.left;\n      }\n      parent.scrollLeft = offsetX;\n    }\n  }\n  parent.scrollTop = offsetY;\n}\nfunction watchScroll(viewAreaElement, callback, abortSignal = undefined) {\n  const debounceScroll = function (evt) {\n    if (rAF) {\n      return;\n    }\n    rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n      rAF = null;\n      const currentX = viewAreaElement.scrollLeft;\n      const lastX = state.lastX;\n      if (currentX !== lastX) {\n        state.right = currentX > lastX;\n      }\n      state.lastX = currentX;\n      const currentY = viewAreaElement.scrollTop;\n      const lastY = state.lastY;\n      if (currentY !== lastY) {\n        state.down = currentY > lastY;\n      }\n      state.lastY = currentY;\n      callback(state);\n    });\n  };\n  const state = {\n    right: true,\n    down: true,\n    lastX: viewAreaElement.scrollLeft,\n    lastY: viewAreaElement.scrollTop,\n    _eventHandler: debounceScroll\n  };\n  let rAF = null;\n  viewAreaElement.addEventListener(\"scroll\", debounceScroll, {\n    useCapture: true,\n    signal: abortSignal\n  });\n  abortSignal?.addEventListener(\"abort\", () => window.cancelAnimationFrame(rAF), {\n    once: true\n  });\n  return state;\n}\nfunction parseQueryString(query) {\n  const params = new Map();\n  for (const [key, value] of new URLSearchParams(query)) {\n    params.set(key.toLowerCase(), value);\n  }\n  return params;\n}\nconst InvisibleCharsRegExp = /[\\x00-\\x1F]/g;\nfunction removeNullCharacters(str, replaceInvisible = false) {\n  if (!InvisibleCharsRegExp.test(str)) {\n    return str;\n  }\n  if (replaceInvisible) {\n    return str.replaceAll(InvisibleCharsRegExp, m => m === \"\\x00\" ? \"\" : \" \");\n  }\n  return str.replaceAll(\"\\x00\", \"\");\n}\nfunction binarySearchFirstItem(items, condition, start = 0) {\n  let minIndex = start;\n  let maxIndex = items.length - 1;\n  if (maxIndex < 0 || !condition(items[maxIndex])) {\n    return items.length;\n  }\n  if (condition(items[minIndex])) {\n    return minIndex;\n  }\n  while (minIndex < maxIndex) {\n    const currentIndex = minIndex + maxIndex >> 1;\n    const currentItem = items[currentIndex];\n    if (condition(currentItem)) {\n      maxIndex = currentIndex;\n    } else {\n      minIndex = currentIndex + 1;\n    }\n  }\n  return minIndex;\n}\nfunction approximateFraction(x) {\n  if (Math.floor(x) === x) {\n    return [x, 1];\n  }\n  const xinv = 1 / x;\n  const limit = 8;\n  if (xinv > limit) {\n    return [1, limit];\n  } else if (Math.floor(xinv) === xinv) {\n    return [1, xinv];\n  }\n  const x_ = x > 1 ? xinv : x;\n  let a = 0,\n    b = 1,\n    c = 1,\n    d = 1;\n  while (true) {\n    const p = a + c,\n      q = b + d;\n    if (q > limit) {\n      break;\n    }\n    if (x_ <= p / q) {\n      c = p;\n      d = q;\n    } else {\n      a = p;\n      b = q;\n    }\n  }\n  let result;\n  if (x_ - a / b < c / d - x_) {\n    result = x_ === x ? [a, b] : [b, a];\n  } else {\n    result = x_ === x ? [c, d] : [d, c];\n  }\n  return result;\n}\nfunction floorToDivide(x, div) {\n  return x - x % div;\n}\nfunction getPageSizeInches({\n  view,\n  userUnit,\n  rotate\n}) {\n  const [x1, y1, x2, y2] = view;\n  const changeOrientation = rotate % 180 !== 0;\n  const width = (x2 - x1) / 72 * userUnit;\n  const height = (y2 - y1) / 72 * userUnit;\n  return {\n    width: changeOrientation ? height : width,\n    height: changeOrientation ? width : height\n  };\n}\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n  if (index < 2) {\n    return index;\n  }\n  let elt = views[index].div;\n  let pageTop = elt.offsetTop + elt.clientTop;\n  if (pageTop >= top) {\n    elt = views[index - 1].div;\n    pageTop = elt.offsetTop + elt.clientTop;\n  }\n  for (let i = index - 2; i >= 0; --i) {\n    elt = views[i].div;\n    if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n      break;\n    }\n    index = i;\n  }\n  return index;\n}\nfunction getVisibleElements({\n  scrollEl,\n  views,\n  sortByVisibility = false,\n  horizontal = false,\n  rtl = false\n}) {\n  const top = scrollEl.scrollTop,\n    bottom = top + scrollEl.clientHeight;\n  const left = scrollEl.scrollLeft,\n    right = left + scrollEl.clientWidth;\n  function isElementBottomAfterViewTop(view) {\n    const element = view.div;\n    const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n    return elementBottom > top;\n  }\n  function isElementNextAfterViewHorizontally(view) {\n    const element = view.div;\n    const elementLeft = element.offsetLeft + element.clientLeft;\n    const elementRight = elementLeft + element.clientWidth;\n    return rtl ? elementLeft < right : elementRight > left;\n  }\n  const visible = [],\n    ids = new Set(),\n    numViews = views.length;\n  let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);\n  if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {\n    firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n  }\n  let lastEdge = horizontal ? right : -1;\n  for (let i = firstVisibleElementInd; i < numViews; i++) {\n    const view = views[i],\n      element = view.div;\n    const currentWidth = element.offsetLeft + element.clientLeft;\n    const currentHeight = element.offsetTop + element.clientTop;\n    const viewWidth = element.clientWidth,\n      viewHeight = element.clientHeight;\n    const viewRight = currentWidth + viewWidth;\n    const viewBottom = currentHeight + viewHeight;\n    if (lastEdge === -1) {\n      if (viewBottom >= bottom) {\n        lastEdge = viewBottom;\n      }\n    } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n      break;\n    }\n    if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n      continue;\n    }\n    const minY = Math.max(0, top - currentHeight);\n    const minX = Math.max(0, left - currentWidth);\n    const hiddenHeight = minY + Math.max(0, viewBottom - bottom);\n    const hiddenWidth = minX + Math.max(0, viewRight - right);\n    const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n      fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n    const percent = fractionHeight * fractionWidth * 100 | 0;\n    visible.push({\n      id: view.id,\n      x: currentWidth,\n      y: currentHeight,\n      visibleArea: percent === 100 ? null : {\n        minX,\n        minY,\n        maxX: Math.min(viewRight, right) - currentWidth,\n        maxY: Math.min(viewBottom, bottom) - currentHeight\n      },\n      view,\n      percent,\n      widthPercent: fractionWidth * 100 | 0\n    });\n    ids.add(view.id);\n  }\n  const first = visible[0],\n    last = visible.at(-1);\n  if (sortByVisibility) {\n    visible.sort(function (a, b) {\n      const pc = a.percent - b.percent;\n      if (Math.abs(pc) > 0.001) {\n        return -pc;\n      }\n      return a.id - b.id;\n    });\n  }\n  return {\n    first,\n    last,\n    views: visible,\n    ids\n  };\n}\nfunction normalizeWheelEventDirection(evt) {\n  let delta = Math.hypot(evt.deltaX, evt.deltaY);\n  const angle = Math.atan2(evt.deltaY, evt.deltaX);\n  if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n    delta = -delta;\n  }\n  return delta;\n}\nfunction normalizeWheelEventDelta(evt) {\n  const deltaMode = evt.deltaMode;\n  let delta = normalizeWheelEventDirection(evt);\n  const MOUSE_PIXELS_PER_LINE = 30;\n  const MOUSE_LINES_PER_PAGE = 30;\n  if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n    delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n  } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {\n    delta /= MOUSE_LINES_PER_PAGE;\n  }\n  return delta;\n}\nfunction isValidRotation(angle) {\n  return Number.isInteger(angle) && angle % 90 === 0;\n}\nfunction isValidScrollMode(mode) {\n  return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;\n}\nfunction isValidSpreadMode(mode) {\n  return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;\n}\nfunction isPortraitOrientation(size) {\n  return size.width <= size.height;\n}\nconst animationStarted = new Promise(function (resolve) {\n  window.requestAnimationFrame(resolve);\n});\nconst docStyle = document.documentElement.style;\nclass ProgressBar {\n  #classList = null;\n  #disableAutoFetchTimeout = null;\n  #percent = 0;\n  #style = null;\n  #visible = true;\n  constructor(bar) {\n    this.#classList = bar.classList;\n    this.#style = bar.style;\n  }\n  get percent() {\n    return this.#percent;\n  }\n  set percent(val) {\n    this.#percent = MathClamp(val, 0, 100);\n    if (isNaN(val)) {\n      this.#classList.add(\"indeterminate\");\n      return;\n    }\n    this.#classList.remove(\"indeterminate\");\n    this.#style.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n  }\n  setWidth(viewer) {\n    if (!viewer) {\n      return;\n    }\n    const container = viewer.parentNode;\n    const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n    if (scrollbarWidth > 0) {\n      this.#style.setProperty(\"--progressBar-end-offset\", `${scrollbarWidth}px`);\n    }\n  }\n  setDisableAutoFetch(delay = 5000) {\n    if (this.#percent === 100 || isNaN(this.#percent)) {\n      return;\n    }\n    if (this.#disableAutoFetchTimeout) {\n      clearTimeout(this.#disableAutoFetchTimeout);\n    }\n    this.show();\n    this.#disableAutoFetchTimeout = setTimeout(() => {\n      this.#disableAutoFetchTimeout = null;\n      this.hide();\n    }, delay);\n  }\n  hide() {\n    if (!this.#visible) {\n      return;\n    }\n    this.#visible = false;\n    this.#classList.add(\"hidden\");\n  }\n  show() {\n    if (this.#visible) {\n      return;\n    }\n    this.#visible = true;\n    this.#classList.remove(\"hidden\");\n  }\n}\nfunction getActiveOrFocusedElement() {\n  let curRoot = document;\n  let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n  while (curActiveOrFocused?.shadowRoot) {\n    curRoot = curActiveOrFocused.shadowRoot;\n    curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(\":focus\");\n  }\n  return curActiveOrFocused;\n}\nfunction apiPageLayoutToViewerModes(layout) {\n  let scrollMode = ScrollMode.VERTICAL,\n    spreadMode = SpreadMode.NONE;\n  switch (layout) {\n    case \"SinglePage\":\n      scrollMode = ScrollMode.PAGE;\n      break;\n    case \"OneColumn\":\n      break;\n    case \"TwoPageLeft\":\n      scrollMode = ScrollMode.PAGE;\n    case \"TwoColumnLeft\":\n      spreadMode = SpreadMode.ODD;\n      break;\n    case \"TwoPageRight\":\n      scrollMode = ScrollMode.PAGE;\n    case \"TwoColumnRight\":\n      spreadMode = SpreadMode.EVEN;\n      break;\n  }\n  return {\n    scrollMode,\n    spreadMode\n  };\n}\nfunction apiPageModeToSidebarView(mode) {\n  switch (mode) {\n    case \"UseNone\":\n      return SidebarView.NONE;\n    case \"UseThumbs\":\n      return SidebarView.THUMBS;\n    case \"UseOutlines\":\n      return SidebarView.OUTLINE;\n    case \"UseAttachments\":\n      return SidebarView.ATTACHMENTS;\n    case \"UseOC\":\n      return SidebarView.LAYERS;\n  }\n  return SidebarView.NONE;\n}\nfunction toggleCheckedBtn(button, toggle, view = null) {\n  button.classList.toggle(\"toggled\", toggle);\n  button.setAttribute(\"aria-checked\", toggle);\n  view?.classList.toggle(\"hidden\", !toggle);\n}\nfunction toggleExpandedBtn(button, toggle, view = null) {\n  button.classList.toggle(\"toggled\", toggle);\n  button.setAttribute(\"aria-expanded\", toggle);\n  view?.classList.toggle(\"hidden\", !toggle);\n}\nconst calcRound = function () {\n  const e = document.createElement(\"div\");\n  e.style.width = \"round(down, calc(1.6666666666666665 * 792px), 1px)\";\n  return e.style.width === \"calc(1320px)\" ? Math.fround : x => x;\n}();\n\n;// ./web/app_options.js\n{\n  var compatParams = new Map();\n  const {\n    maxTouchPoints,\n    platform,\n    userAgent\n  } = navigator;\n  const isAndroid = /Android/.test(userAgent);\n  const isIOS = /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === \"MacIntel\" && maxTouchPoints > 1;\n  (function () {\n    if (isIOS || isAndroid) {\n      compatParams.set(\"maxCanvasPixels\", 5242880);\n    }\n  })();\n  (function () {\n    if (isAndroid) {\n      compatParams.set(\"useSystemFonts\", false);\n    }\n  })();\n}\nconst OptionKind = {\n  BROWSER: 0x01,\n  VIEWER: 0x02,\n  API: 0x04,\n  WORKER: 0x08,\n  EVENT_DISPATCH: 0x10,\n  PREFERENCE: 0x80\n};\nconst Type = {\n  BOOLEAN: 0x01,\n  NUMBER: 0x02,\n  OBJECT: 0x04,\n  STRING: 0x08,\n  UNDEFINED: 0x10\n};\nconst defaultOptions = {\n  allowedGlobalEvents: {\n    value: null,\n    kind: OptionKind.BROWSER\n  },\n  canvasMaxAreaInBytes: {\n    value: -1,\n    kind: OptionKind.BROWSER + OptionKind.API\n  },\n  isInAutomation: {\n    value: false,\n    kind: OptionKind.BROWSER\n  },\n  localeProperties: {\n    value: {\n      lang: navigator.language || \"en-US\"\n    },\n    kind: OptionKind.BROWSER\n  },\n  maxCanvasDim: {\n    value: 32767,\n    kind: OptionKind.BROWSER + OptionKind.VIEWER\n  },\n  nimbusDataStr: {\n    value: \"\",\n    kind: OptionKind.BROWSER\n  },\n  supportsCaretBrowsingMode: {\n    value: false,\n    kind: OptionKind.BROWSER\n  },\n  supportsDocumentFonts: {\n    value: true,\n    kind: OptionKind.BROWSER\n  },\n  supportsIntegratedFind: {\n    value: false,\n    kind: OptionKind.BROWSER\n  },\n  supportsMouseWheelZoomCtrlKey: {\n    value: true,\n    kind: OptionKind.BROWSER\n  },\n  supportsMouseWheelZoomMetaKey: {\n    value: true,\n    kind: OptionKind.BROWSER\n  },\n  supportsPinchToZoom: {\n    value: true,\n    kind: OptionKind.BROWSER\n  },\n  supportsPrinting: {\n    value: true,\n    kind: OptionKind.BROWSER\n  },\n  toolbarDensity: {\n    value: 0,\n    kind: OptionKind.BROWSER + OptionKind.EVENT_DISPATCH\n  },\n  altTextLearnMoreUrl: {\n    value: \"\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  annotationEditorMode: {\n    value: 0,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  annotationMode: {\n    value: 2,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  capCanvasAreaFactor: {\n    value: 200,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  commentLearnMoreUrl: {\n    value: \"\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  cursorToolOnLoad: {\n    value: 0,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  debuggerSrc: {\n    value: \"./debugger.mjs\",\n    kind: OptionKind.VIEWER\n  },\n  defaultZoomDelay: {\n    value: 400,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  defaultZoomValue: {\n    value: \"\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  disableHistory: {\n    value: false,\n    kind: OptionKind.VIEWER\n  },\n  disablePageLabels: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableAltText: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableAltTextModelDownload: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH\n  },\n  enableAutoLinking: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableComment: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableDetailCanvas: {\n    value: true,\n    kind: OptionKind.VIEWER\n  },\n  enableGuessAltText: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH\n  },\n  enableHighlightFloatingButton: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableNewAltTextWhenAddingImage: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableOptimizedPartialRendering: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enablePermissions: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enablePrintAutoRotate: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableScripting: {\n    value: true,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableSignatureEditor: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableUpdatedAddImage: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  externalLinkRel: {\n    value: \"noopener noreferrer nofollow\",\n    kind: OptionKind.VIEWER\n  },\n  externalLinkTarget: {\n    value: 0,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  highlightEditorColors: {\n    value: \"yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F,\" + \"yellow_HCM=#FFFFCC,green_HCM=#53FFBC,blue_HCM=#80EBFF,pink_HCM=#F6B8FF,red_HCM=#C50043\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  historyUpdateUrl: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  ignoreDestinationZoom: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  imageResourcesPath: {\n    value: \"./images/\",\n    kind: OptionKind.VIEWER\n  },\n  maxCanvasPixels: {\n    value: 2 ** 25,\n    kind: OptionKind.VIEWER\n  },\n  minDurationToUpdateCanvas: {\n    value: 500,\n    kind: OptionKind.VIEWER\n  },\n  forcePageColors: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  pageColorsBackground: {\n    value: \"Canvas\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  pageColorsForeground: {\n    value: \"CanvasText\",\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  pdfBugEnabled: {\n    value: false,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  printResolution: {\n    value: 150,\n    kind: OptionKind.VIEWER\n  },\n  sidebarViewOnLoad: {\n    value: -1,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  scrollModeOnLoad: {\n    value: -1,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  spreadModeOnLoad: {\n    value: -1,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  textLayerMode: {\n    value: 1,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  viewerCssTheme: {\n    value: 0,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  viewOnLoad: {\n    value: 0,\n    kind: OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  cMapPacked: {\n    value: true,\n    kind: OptionKind.API\n  },\n  cMapUrl: {\n    value: \"../cmaps/\",\n    kind: OptionKind.API\n  },\n  disableAutoFetch: {\n    value: false,\n    kind: OptionKind.API + OptionKind.PREFERENCE\n  },\n  disableFontFace: {\n    value: false,\n    kind: OptionKind.API + OptionKind.PREFERENCE\n  },\n  disableRange: {\n    value: false,\n    kind: OptionKind.API + OptionKind.PREFERENCE\n  },\n  disableStream: {\n    value: false,\n    kind: OptionKind.API + OptionKind.PREFERENCE\n  },\n  docBaseUrl: {\n    value: \"\",\n    kind: OptionKind.API\n  },\n  enableHWA: {\n    value: true,\n    kind: OptionKind.API + OptionKind.VIEWER + OptionKind.PREFERENCE\n  },\n  enableXfa: {\n    value: true,\n    kind: OptionKind.API + OptionKind.PREFERENCE\n  },\n  fontExtraProperties: {\n    value: false,\n    kind: OptionKind.API\n  },\n  iccUrl: {\n    value: \"../iccs/\",\n    kind: OptionKind.API\n  },\n  isEvalSupported: {\n    value: true,\n    kind: OptionKind.API\n  },\n  isOffscreenCanvasSupported: {\n    value: true,\n    kind: OptionKind.API\n  },\n  maxImageSize: {\n    value: -1,\n    kind: OptionKind.API\n  },\n  pdfBug: {\n    value: false,\n    kind: OptionKind.API\n  },\n  standardFontDataUrl: {\n    value: \"../standard_fonts/\",\n    kind: OptionKind.API\n  },\n  useSystemFonts: {\n    value: undefined,\n    kind: OptionKind.API,\n    type: Type.BOOLEAN + Type.UNDEFINED\n  },\n  verbosity: {\n    value: 1,\n    kind: OptionKind.API\n  },\n  wasmUrl: {\n    value: \"../wasm/\",\n    kind: OptionKind.API\n  },\n  workerPort: {\n    value: null,\n    kind: OptionKind.WORKER\n  },\n  workerSrc: {\n    value: \"./build/pdf.worker.mjs\",\n    kind: OptionKind.WORKER\n  }\n};\n{\n  defaultOptions.defaultUrl = {\n    value: \"compressed.tracemonkey-pldi-09.pdf\",\n    kind: OptionKind.VIEWER\n  };\n  defaultOptions.sandboxBundleSrc = {\n    value: \"./build/pdf.sandbox.mjs\",\n    kind: OptionKind.VIEWER\n  };\n  defaultOptions.enableFakeMLManager = {\n    value: true,\n    kind: OptionKind.VIEWER\n  };\n}\n{\n  defaultOptions.disablePreferences = {\n    value: false,\n    kind: OptionKind.VIEWER\n  };\n}\nclass AppOptions {\n  static eventBus;\n  static #opts = new Map();\n  static {\n    for (const name in defaultOptions) {\n      this.#opts.set(name, defaultOptions[name].value);\n    }\n    for (const [name, value] of compatParams) {\n      this.#opts.set(name, value);\n    }\n    this._hasInvokedSet = false;\n    this._checkDisablePreferences = () => {\n      if (this.get(\"disablePreferences\")) {\n        return true;\n      }\n      if (this._hasInvokedSet) {\n        console.warn(\"The Preferences may override manually set AppOptions; \" + 'please use the \"disablePreferences\"-option to prevent that.');\n      }\n      return false;\n    };\n  }\n  static get(name) {\n    return this.#opts.get(name);\n  }\n  static getAll(kind = null, defaultOnly = false) {\n    const options = Object.create(null);\n    for (const name in defaultOptions) {\n      const defaultOpt = defaultOptions[name];\n      if (kind && !(kind & defaultOpt.kind)) {\n        continue;\n      }\n      options[name] = !defaultOnly ? this.#opts.get(name) : defaultOpt.value;\n    }\n    return options;\n  }\n  static set(name, value) {\n    this.setAll({\n      [name]: value\n    });\n  }\n  static setAll(options, prefs = false) {\n    this._hasInvokedSet ||= true;\n    let events;\n    for (const name in options) {\n      const defaultOpt = defaultOptions[name],\n        userOpt = options[name];\n      if (!defaultOpt || !(typeof userOpt === typeof defaultOpt.value || Type[(typeof userOpt).toUpperCase()] & defaultOpt.type)) {\n        continue;\n      }\n      const {\n        kind\n      } = defaultOpt;\n      if (prefs && !(kind & OptionKind.BROWSER || kind & OptionKind.PREFERENCE)) {\n        continue;\n      }\n      if (this.eventBus && kind & OptionKind.EVENT_DISPATCH) {\n        (events ||= new Map()).set(name, userOpt);\n      }\n      this.#opts.set(name, userOpt);\n    }\n    if (events) {\n      for (const [name, value] of events) {\n        this.eventBus.dispatch(name.toLowerCase(), {\n          source: this,\n          value\n        });\n      }\n    }\n  }\n}\n\n;// ./web/pdf_link_service.js\n\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\nconst LinkTarget = {\n  NONE: 0,\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4\n};\nclass PDFLinkService {\n  externalLinkEnabled = true;\n  constructor({\n    eventBus,\n    externalLinkTarget = null,\n    externalLinkRel = null,\n    ignoreDestinationZoom = false\n  } = {}) {\n    this.eventBus = eventBus;\n    this.externalLinkTarget = externalLinkTarget;\n    this.externalLinkRel = externalLinkRel;\n    this._ignoreDestinationZoom = ignoreDestinationZoom;\n    this.baseUrl = null;\n    this.pdfDocument = null;\n    this.pdfViewer = null;\n    this.pdfHistory = null;\n  }\n  setDocument(pdfDocument, baseUrl = null) {\n    this.baseUrl = baseUrl;\n    this.pdfDocument = pdfDocument;\n  }\n  setViewer(pdfViewer) {\n    this.pdfViewer = pdfViewer;\n  }\n  setHistory(pdfHistory) {\n    this.pdfHistory = pdfHistory;\n  }\n  get pagesCount() {\n    return this.pdfDocument ? this.pdfDocument.numPages : 0;\n  }\n  get page() {\n    return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1;\n  }\n  set page(value) {\n    if (this.pdfDocument) {\n      this.pdfViewer.currentPageNumber = value;\n    }\n  }\n  get rotation() {\n    return this.pdfDocument ? this.pdfViewer.pagesRotation : 0;\n  }\n  set rotation(value) {\n    if (this.pdfDocument) {\n      this.pdfViewer.pagesRotation = value;\n    }\n  }\n  get isInPresentationMode() {\n    return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false;\n  }\n  async goToDestination(dest) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    let namedDest, explicitDest, pageNumber;\n    if (typeof dest === \"string\") {\n      namedDest = dest;\n      explicitDest = await this.pdfDocument.getDestination(dest);\n    } else {\n      namedDest = null;\n      explicitDest = await dest;\n    }\n    if (!Array.isArray(explicitDest)) {\n      console.error(`goToDestination: \"${explicitDest}\" is not a valid destination array, for dest=\"${dest}\".`);\n      return;\n    }\n    const [destRef] = explicitDest;\n    if (destRef && typeof destRef === \"object\") {\n      pageNumber = this.pdfDocument.cachedPageNumber(destRef);\n      if (!pageNumber) {\n        try {\n          pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1;\n        } catch {\n          console.error(`goToDestination: \"${destRef}\" is not a valid page reference, for dest=\"${dest}\".`);\n          return;\n        }\n      }\n    } else if (Number.isInteger(destRef)) {\n      pageNumber = destRef + 1;\n    }\n    if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n      console.error(`goToDestination: \"${pageNumber}\" is not a valid page number, for dest=\"${dest}\".`);\n      return;\n    }\n    if (this.pdfHistory) {\n      this.pdfHistory.pushCurrentPosition();\n      this.pdfHistory.push({\n        namedDest,\n        explicitDest,\n        pageNumber\n      });\n    }\n    this.pdfViewer.scrollPageIntoView({\n      pageNumber,\n      destArray: explicitDest,\n      ignoreDestinationZoom: this._ignoreDestinationZoom\n    });\n    const ac = new AbortController();\n    this.eventBus._on(\"textlayerrendered\", evt => {\n      if (evt.pageNumber === pageNumber) {\n        evt.source.textLayer.div.focus();\n        ac.abort();\n      }\n    }, {\n      signal: ac.signal\n    });\n  }\n  goToPage(val) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    const pageNumber = typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;\n    if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {\n      console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n      return;\n    }\n    if (this.pdfHistory) {\n      this.pdfHistory.pushCurrentPosition();\n      this.pdfHistory.pushPage(pageNumber);\n    }\n    this.pdfViewer.scrollPageIntoView({\n      pageNumber\n    });\n  }\n  goToXY(pageNumber, x, y, options = {}) {\n    this.pdfViewer.scrollPageIntoView({\n      pageNumber,\n      destArray: [null, {\n        name: \"XYZ\"\n      }, x, y],\n      ignoreDestinationZoom: true,\n      ...options\n    });\n  }\n  addLinkAttributes(link, url, newWindow = false) {\n    if (!url || typeof url !== \"string\") {\n      throw new Error('A valid \"url\" parameter must provided.');\n    }\n    const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n      rel = this.externalLinkRel;\n    if (this.externalLinkEnabled) {\n      link.href = link.title = url;\n    } else {\n      link.href = \"\";\n      link.title = `Disabled: ${url}`;\n      link.onclick = () => false;\n    }\n    let targetStr = \"\";\n    switch (target) {\n      case LinkTarget.NONE:\n        break;\n      case LinkTarget.SELF:\n        targetStr = \"_self\";\n        break;\n      case LinkTarget.BLANK:\n        targetStr = \"_blank\";\n        break;\n      case LinkTarget.PARENT:\n        targetStr = \"_parent\";\n        break;\n      case LinkTarget.TOP:\n        targetStr = \"_top\";\n        break;\n    }\n    link.target = targetStr;\n    link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n  }\n  getDestinationHash(dest) {\n    if (typeof dest === \"string\") {\n      if (dest.length > 0) {\n        return this.getAnchorUrl(\"#\" + escape(dest));\n      }\n    } else if (Array.isArray(dest)) {\n      const str = JSON.stringify(dest);\n      if (str.length > 0) {\n        return this.getAnchorUrl(\"#\" + escape(str));\n      }\n    }\n    return this.getAnchorUrl(\"\");\n  }\n  getAnchorUrl(anchor) {\n    return this.baseUrl ? this.baseUrl + anchor : anchor;\n  }\n  setHash(hash) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    let pageNumber, dest;\n    if (hash.includes(\"=\")) {\n      const params = parseQueryString(hash);\n      if (params.has(\"search\")) {\n        const query = params.get(\"search\").replaceAll('\"', \"\"),\n          phrase = params.get(\"phrase\") === \"true\";\n        this.eventBus.dispatch(\"findfromurlhash\", {\n          source: this,\n          query: phrase ? query : query.match(/\\S+/g)\n        });\n      }\n      if (params.has(\"page\")) {\n        pageNumber = params.get(\"page\") | 0 || 1;\n      }\n      if (params.has(\"zoom\")) {\n        const zoomArgs = params.get(\"zoom\").split(\",\");\n        const zoomArg = zoomArgs[0];\n        const zoomArgNumber = parseFloat(zoomArg);\n        if (!zoomArg.includes(\"Fit\")) {\n          dest = [null, {\n            name: \"XYZ\"\n          }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n        } else if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n          dest = [null, {\n            name: zoomArg\n          }];\n        } else if (zoomArg === \"FitH\" || zoomArg === \"FitBH\" || zoomArg === \"FitV\" || zoomArg === \"FitBV\") {\n          dest = [null, {\n            name: zoomArg\n          }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n        } else if (zoomArg === \"FitR\") {\n          if (zoomArgs.length !== 5) {\n            console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n          } else {\n            dest = [null, {\n              name: zoomArg\n            }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n          }\n        } else {\n          console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`);\n        }\n      }\n      if (dest) {\n        this.pdfViewer.scrollPageIntoView({\n          pageNumber: pageNumber || this.page,\n          destArray: dest,\n          allowNegativeOffset: true\n        });\n      } else if (pageNumber) {\n        this.page = pageNumber;\n      }\n      if (params.has(\"pagemode\")) {\n        this.eventBus.dispatch(\"pagemode\", {\n          source: this,\n          mode: params.get(\"pagemode\")\n        });\n      }\n      if (params.has(\"nameddest\")) {\n        this.goToDestination(params.get(\"nameddest\"));\n      }\n      return;\n    }\n    dest = unescape(hash);\n    try {\n      dest = JSON.parse(dest);\n      if (!Array.isArray(dest)) {\n        dest = dest.toString();\n      }\n    } catch {}\n    if (typeof dest === \"string\" || isValidExplicitDest(dest)) {\n      this.goToDestination(dest);\n      return;\n    }\n    console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`);\n  }\n  executeNamedAction(action) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    switch (action) {\n      case \"GoBack\":\n        this.pdfHistory?.back();\n        break;\n      case \"GoForward\":\n        this.pdfHistory?.forward();\n        break;\n      case \"NextPage\":\n        this.pdfViewer.nextPage();\n        break;\n      case \"PrevPage\":\n        this.pdfViewer.previousPage();\n        break;\n      case \"LastPage\":\n        this.page = this.pagesCount;\n        break;\n      case \"FirstPage\":\n        this.page = 1;\n        break;\n      default:\n        break;\n    }\n    this.eventBus.dispatch(\"namedaction\", {\n      source: this,\n      action\n    });\n  }\n  async executeSetOCGState(action) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    const pdfDocument = this.pdfDocument,\n      optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;\n    if (pdfDocument !== this.pdfDocument) {\n      return;\n    }\n    optionalContentConfig.setOCGState(action);\n    this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig);\n  }\n}\nclass SimpleLinkService extends PDFLinkService {\n  setDocument(pdfDocument, baseUrl = null) {}\n}\n\n;// ./web/event_utils.js\nconst WaitOnType = {\n  EVENT: \"event\",\n  TIMEOUT: \"timeout\"\n};\nasync function waitOnEventOrTimeout({\n  target,\n  name,\n  delay = 0\n}) {\n  if (typeof target !== \"object\" || !(name && typeof name === \"string\") || !(Number.isInteger(delay) && delay >= 0)) {\n    throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n  }\n  const {\n    promise,\n    resolve\n  } = Promise.withResolvers();\n  const ac = new AbortController();\n  function handler(type) {\n    ac.abort();\n    clearTimeout(timeout);\n    resolve(type);\n  }\n  const evtMethod = target instanceof EventBus ? \"_on\" : \"addEventListener\";\n  target[evtMethod](name, handler.bind(null, WaitOnType.EVENT), {\n    signal: ac.signal\n  });\n  const timeout = setTimeout(handler.bind(null, WaitOnType.TIMEOUT), delay);\n  return promise;\n}\nclass EventBus {\n  #listeners = Object.create(null);\n  on(eventName, listener, options = null) {\n    this._on(eventName, listener, {\n      external: true,\n      once: options?.once,\n      signal: options?.signal\n    });\n  }\n  off(eventName, listener, options = null) {\n    this._off(eventName, listener);\n  }\n  dispatch(eventName, data) {\n    const eventListeners = this.#listeners[eventName];\n    if (!eventListeners || eventListeners.length === 0) {\n      return;\n    }\n    let externalListeners;\n    for (const {\n      listener,\n      external,\n      once\n    } of eventListeners.slice(0)) {\n      if (once) {\n        this._off(eventName, listener);\n      }\n      if (external) {\n        (externalListeners ||= []).push(listener);\n        continue;\n      }\n      listener(data);\n    }\n    if (externalListeners) {\n      for (const listener of externalListeners) {\n        listener(data);\n      }\n      externalListeners = null;\n    }\n  }\n  _on(eventName, listener, options = null) {\n    let rmAbort = null;\n    if (options?.signal instanceof AbortSignal) {\n      const {\n        signal\n      } = options;\n      if (signal.aborted) {\n        console.error(\"Cannot use an `aborted` signal.\");\n        return;\n      }\n      const onAbort = () => this._off(eventName, listener);\n      rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n      signal.addEventListener(\"abort\", onAbort);\n    }\n    const eventListeners = this.#listeners[eventName] ||= [];\n    eventListeners.push({\n      listener,\n      external: options?.external === true,\n      once: options?.once === true,\n      rmAbort\n    });\n  }\n  _off(eventName, listener, options = null) {\n    const eventListeners = this.#listeners[eventName];\n    if (!eventListeners) {\n      return;\n    }\n    for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n      const evt = eventListeners[i];\n      if (evt.listener === listener) {\n        evt.rmAbort?.();\n        eventListeners.splice(i, 1);\n        return;\n      }\n    }\n  }\n}\nclass FirefoxEventBus extends EventBus {\n  #externalServices;\n  #globalEventNames;\n  #isInAutomation;\n  constructor(globalEventNames, externalServices, isInAutomation) {\n    super();\n    this.#globalEventNames = globalEventNames;\n    this.#externalServices = externalServices;\n    this.#isInAutomation = isInAutomation;\n  }\n  dispatch(eventName, data) {\n    throw new Error(\"Not implemented: FirefoxEventBus.dispatch\");\n  }\n}\n\n;// ./web/external_services.js\nclass BaseExternalServices {\n  updateFindControlState(data) {}\n  updateFindMatchesCount(data) {}\n  initPassiveLoading() {}\n  reportTelemetry(data) {}\n  reportText(data) {}\n  async createL10n() {\n    throw new Error(\"Not implemented: createL10n\");\n  }\n  createScripting() {\n    throw new Error(\"Not implemented: createScripting\");\n  }\n  createSignatureStorage() {\n    throw new Error(\"Not implemented: createSignatureStorage\");\n  }\n  updateEditorStates(data) {\n    throw new Error(\"Not implemented: updateEditorStates\");\n  }\n  dispatchGlobalEvent(_event) {}\n}\n\n;// ./web/preferences.js\n\nclass BasePreferences {\n  #defaults = Object.freeze({\n    altTextLearnMoreUrl: \"\",\n    annotationEditorMode: 0,\n    annotationMode: 2,\n    capCanvasAreaFactor: 200,\n    commentLearnMoreUrl: \"\",\n    cursorToolOnLoad: 0,\n    defaultZoomDelay: 400,\n    defaultZoomValue: \"\",\n    disablePageLabels: false,\n    enableAltText: false,\n    enableAltTextModelDownload: true,\n    enableAutoLinking: true,\n    enableComment: false,\n    enableGuessAltText: true,\n    enableHighlightFloatingButton: false,\n    enableNewAltTextWhenAddingImage: true,\n    enableOptimizedPartialRendering: false,\n    enablePermissions: false,\n    enablePrintAutoRotate: true,\n    enableScripting: true,\n    enableSignatureEditor: false,\n    enableUpdatedAddImage: false,\n    externalLinkTarget: 0,\n    highlightEditorColors: \"yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F,yellow_HCM=#FFFFCC,green_HCM=#53FFBC,blue_HCM=#80EBFF,pink_HCM=#F6B8FF,red_HCM=#C50043\",\n    historyUpdateUrl: false,\n    ignoreDestinationZoom: false,\n    forcePageColors: false,\n    pageColorsBackground: \"Canvas\",\n    pageColorsForeground: \"CanvasText\",\n    pdfBugEnabled: false,\n    sidebarViewOnLoad: -1,\n    scrollModeOnLoad: -1,\n    spreadModeOnLoad: -1,\n    textLayerMode: 1,\n    viewerCssTheme: 0,\n    viewOnLoad: 0,\n    disableAutoFetch: false,\n    disableFontFace: false,\n    disableRange: false,\n    disableStream: false,\n    enableHWA: true,\n    enableXfa: true\n  });\n  #initializedPromise = null;\n  constructor() {\n    this.#initializedPromise = this._readFromStorage(this.#defaults).then(({\n      browserPrefs,\n      prefs\n    }) => {\n      if (AppOptions._checkDisablePreferences()) {\n        return;\n      }\n      AppOptions.setAll({\n        ...browserPrefs,\n        ...prefs\n      }, true);\n    });\n  }\n  async _writeToStorage(prefObj) {\n    throw new Error(\"Not implemented: _writeToStorage\");\n  }\n  async _readFromStorage(prefObj) {\n    throw new Error(\"Not implemented: _readFromStorage\");\n  }\n  async reset() {\n    await this.#initializedPromise;\n    AppOptions.setAll(this.#defaults, true);\n    await this._writeToStorage(this.#defaults);\n  }\n  async set(name, value) {\n    await this.#initializedPromise;\n    AppOptions.setAll({\n      [name]: value\n    }, true);\n    await this._writeToStorage(AppOptions.getAll(OptionKind.PREFERENCE));\n  }\n  async get(name) {\n    await this.#initializedPromise;\n    return AppOptions.get(name);\n  }\n  get initializedPromise() {\n    return this.#initializedPromise;\n  }\n}\n\n;// ./node_modules/@fluent/bundle/esm/types.js\nclass FluentType {\n  constructor(value) {\n    this.value = value;\n  }\n  valueOf() {\n    return this.value;\n  }\n}\nclass FluentNone extends FluentType {\n  constructor(value = \"???\") {\n    super(value);\n  }\n  toString(scope) {\n    return `{${this.value}}`;\n  }\n}\nclass FluentNumber extends FluentType {\n  constructor(value, opts = {}) {\n    super(value);\n    this.opts = opts;\n  }\n  toString(scope) {\n    if (scope) {\n      try {\n        const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts);\n        return nf.format(this.value);\n      } catch (err) {\n        scope.reportError(err);\n      }\n    }\n    return this.value.toString(10);\n  }\n}\nclass FluentDateTime extends FluentType {\n  static supportsValue(value) {\n    if (typeof value === \"number\") return true;\n    if (value instanceof Date) return true;\n    if (value instanceof FluentType) return FluentDateTime.supportsValue(value.valueOf());\n    if (\"Temporal\" in globalThis) {\n      const _Temporal = globalThis.Temporal;\n      if (value instanceof _Temporal.Instant || value instanceof _Temporal.PlainDateTime || value instanceof _Temporal.PlainDate || value instanceof _Temporal.PlainMonthDay || value instanceof _Temporal.PlainTime || value instanceof _Temporal.PlainYearMonth) {\n        return true;\n      }\n    }\n    return false;\n  }\n  constructor(value, opts = {}) {\n    if (value instanceof FluentDateTime) {\n      opts = {\n        ...value.opts,\n        ...opts\n      };\n      value = value.value;\n    } else if (value instanceof FluentType) {\n      value = value.valueOf();\n    }\n    if (typeof value === \"object\" && \"calendarId\" in value && opts.calendar === undefined) {\n      opts = {\n        ...opts,\n        calendar: value.calendarId\n      };\n    }\n    super(value);\n    this.opts = opts;\n  }\n  [Symbol.toPrimitive](hint) {\n    return hint === \"string\" ? this.toString() : this.toNumber();\n  }\n  toNumber() {\n    const value = this.value;\n    if (typeof value === \"number\") return value;\n    if (value instanceof Date) return value.getTime();\n    if (\"epochMilliseconds\" in value) {\n      return value.epochMilliseconds;\n    }\n    if (\"toZonedDateTime\" in value) {\n      return value.toZonedDateTime(\"UTC\").epochMilliseconds;\n    }\n    throw new TypeError(\"Unwrapping a non-number value as a number\");\n  }\n  toString(scope) {\n    if (scope) {\n      try {\n        const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);\n        return dtf.format(this.value);\n      } catch (err) {\n        scope.reportError(err);\n      }\n    }\n    if (typeof this.value === \"number\" || this.value instanceof Date) {\n      return new Date(this.value).toISOString();\n    }\n    return this.value.toString();\n  }\n}\n;// ./node_modules/@fluent/bundle/esm/resolver.js\n\nconst MAX_PLACEABLES = 100;\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\nfunction match(scope, selector, key) {\n  if (key === selector) {\n    return true;\n  }\n  if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) {\n    return true;\n  }\n  if (selector instanceof FluentNumber && typeof key === \"string\") {\n    let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value);\n    if (key === category) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction getDefault(scope, variants, star) {\n  if (variants[star]) {\n    return resolvePattern(scope, variants[star].value);\n  }\n  scope.reportError(new RangeError(\"No default\"));\n  return new FluentNone();\n}\nfunction getArguments(scope, args) {\n  const positional = [];\n  const named = Object.create(null);\n  for (const arg of args) {\n    if (arg.type === \"narg\") {\n      named[arg.name] = resolveExpression(scope, arg.value);\n    } else {\n      positional.push(resolveExpression(scope, arg));\n    }\n  }\n  return {\n    positional,\n    named\n  };\n}\nfunction resolveExpression(scope, expr) {\n  switch (expr.type) {\n    case \"str\":\n      return expr.value;\n    case \"num\":\n      return new FluentNumber(expr.value, {\n        minimumFractionDigits: expr.precision\n      });\n    case \"var\":\n      return resolveVariableReference(scope, expr);\n    case \"mesg\":\n      return resolveMessageReference(scope, expr);\n    case \"term\":\n      return resolveTermReference(scope, expr);\n    case \"func\":\n      return resolveFunctionReference(scope, expr);\n    case \"select\":\n      return resolveSelectExpression(scope, expr);\n    default:\n      return new FluentNone();\n  }\n}\nfunction resolveVariableReference(scope, {\n  name\n}) {\n  let arg;\n  if (scope.params) {\n    if (Object.prototype.hasOwnProperty.call(scope.params, name)) {\n      arg = scope.params[name];\n    } else {\n      return new FluentNone(`$${name}`);\n    }\n  } else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) {\n    arg = scope.args[name];\n  } else {\n    scope.reportError(new ReferenceError(`Unknown variable: $${name}`));\n    return new FluentNone(`$${name}`);\n  }\n  if (arg instanceof FluentType) {\n    return arg;\n  }\n  switch (typeof arg) {\n    case \"string\":\n      return arg;\n    case \"number\":\n      return new FluentNumber(arg);\n    case \"object\":\n      if (FluentDateTime.supportsValue(arg)) {\n        return new FluentDateTime(arg);\n      }\n    default:\n      scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));\n      return new FluentNone(`$${name}`);\n  }\n}\nfunction resolveMessageReference(scope, {\n  name,\n  attr\n}) {\n  const message = scope.bundle._messages.get(name);\n  if (!message) {\n    scope.reportError(new ReferenceError(`Unknown message: ${name}`));\n    return new FluentNone(name);\n  }\n  if (attr) {\n    const attribute = message.attributes[attr];\n    if (attribute) {\n      return resolvePattern(scope, attribute);\n    }\n    scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n    return new FluentNone(`${name}.${attr}`);\n  }\n  if (message.value) {\n    return resolvePattern(scope, message.value);\n  }\n  scope.reportError(new ReferenceError(`No value: ${name}`));\n  return new FluentNone(name);\n}\nfunction resolveTermReference(scope, {\n  name,\n  attr,\n  args\n}) {\n  const id = `-${name}`;\n  const term = scope.bundle._terms.get(id);\n  if (!term) {\n    scope.reportError(new ReferenceError(`Unknown term: ${id}`));\n    return new FluentNone(id);\n  }\n  if (attr) {\n    const attribute = term.attributes[attr];\n    if (attribute) {\n      scope.params = getArguments(scope, args).named;\n      const resolved = resolvePattern(scope, attribute);\n      scope.params = null;\n      return resolved;\n    }\n    scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n    return new FluentNone(`${id}.${attr}`);\n  }\n  scope.params = getArguments(scope, args).named;\n  const resolved = resolvePattern(scope, term.value);\n  scope.params = null;\n  return resolved;\n}\nfunction resolveFunctionReference(scope, {\n  name,\n  args\n}) {\n  let func = scope.bundle._functions[name];\n  if (!func) {\n    scope.reportError(new ReferenceError(`Unknown function: ${name}()`));\n    return new FluentNone(`${name}()`);\n  }\n  if (typeof func !== \"function\") {\n    scope.reportError(new TypeError(`Function ${name}() is not callable`));\n    return new FluentNone(`${name}()`);\n  }\n  try {\n    let resolved = getArguments(scope, args);\n    return func(resolved.positional, resolved.named);\n  } catch (err) {\n    scope.reportError(err);\n    return new FluentNone(`${name}()`);\n  }\n}\nfunction resolveSelectExpression(scope, {\n  selector,\n  variants,\n  star\n}) {\n  let sel = resolveExpression(scope, selector);\n  if (sel instanceof FluentNone) {\n    return getDefault(scope, variants, star);\n  }\n  for (const variant of variants) {\n    const key = resolveExpression(scope, variant.key);\n    if (match(scope, sel, key)) {\n      return resolvePattern(scope, variant.value);\n    }\n  }\n  return getDefault(scope, variants, star);\n}\nfunction resolveComplexPattern(scope, ptn) {\n  if (scope.dirty.has(ptn)) {\n    scope.reportError(new RangeError(\"Cyclic reference\"));\n    return new FluentNone();\n  }\n  scope.dirty.add(ptn);\n  const result = [];\n  const useIsolating = scope.bundle._useIsolating && ptn.length > 1;\n  for (const elem of ptn) {\n    if (typeof elem === \"string\") {\n      result.push(scope.bundle._transform(elem));\n      continue;\n    }\n    scope.placeables++;\n    if (scope.placeables > MAX_PLACEABLES) {\n      scope.dirty.delete(ptn);\n      throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`);\n    }\n    if (useIsolating) {\n      result.push(FSI);\n    }\n    result.push(resolveExpression(scope, elem).toString(scope));\n    if (useIsolating) {\n      result.push(PDI);\n    }\n  }\n  scope.dirty.delete(ptn);\n  return result.join(\"\");\n}\nfunction resolvePattern(scope, value) {\n  if (typeof value === \"string\") {\n    return scope.bundle._transform(value);\n  }\n  return resolveComplexPattern(scope, value);\n}\n;// ./node_modules/@fluent/bundle/esm/scope.js\nclass Scope {\n  constructor(bundle, errors, args) {\n    this.dirty = new WeakSet();\n    this.params = null;\n    this.placeables = 0;\n    this.bundle = bundle;\n    this.errors = errors;\n    this.args = args;\n  }\n  reportError(error) {\n    if (!this.errors || !(error instanceof Error)) {\n      throw error;\n    }\n    this.errors.push(error);\n  }\n  memoizeIntlObject(ctor, opts) {\n    let cache = this.bundle._intls.get(ctor);\n    if (!cache) {\n      cache = {};\n      this.bundle._intls.set(ctor, cache);\n    }\n    let id = JSON.stringify(opts);\n    if (!cache[id]) {\n      cache[id] = new ctor(this.bundle.locales, opts);\n    }\n    return cache[id];\n  }\n}\n;// ./node_modules/@fluent/bundle/esm/builtins.js\n\nfunction values(opts, allowed) {\n  const unwrapped = Object.create(null);\n  for (const [name, opt] of Object.entries(opts)) {\n    if (allowed.includes(name)) {\n      unwrapped[name] = opt.valueOf();\n    }\n  }\n  return unwrapped;\n}\nconst NUMBER_ALLOWED = [\"unitDisplay\", \"currencyDisplay\", \"useGrouping\", \"minimumIntegerDigits\", \"minimumFractionDigits\", \"maximumFractionDigits\", \"minimumSignificantDigits\", \"maximumSignificantDigits\"];\nfunction NUMBER(args, opts) {\n  let arg = args[0];\n  if (arg instanceof FluentNone) {\n    return new FluentNone(`NUMBER(${arg.valueOf()})`);\n  }\n  if (arg instanceof FluentNumber) {\n    return new FluentNumber(arg.valueOf(), {\n      ...arg.opts,\n      ...values(opts, NUMBER_ALLOWED)\n    });\n  }\n  if (arg instanceof FluentDateTime) {\n    return new FluentNumber(arg.toNumber(), {\n      ...values(opts, NUMBER_ALLOWED)\n    });\n  }\n  throw new TypeError(\"Invalid argument to NUMBER\");\n}\nconst DATETIME_ALLOWED = [\"dateStyle\", \"timeStyle\", \"fractionalSecondDigits\", \"dayPeriod\", \"hour12\", \"weekday\", \"era\", \"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"timeZoneName\"];\nfunction DATETIME(args, opts) {\n  let arg = args[0];\n  if (arg instanceof FluentNone) {\n    return new FluentNone(`DATETIME(${arg.valueOf()})`);\n  }\n  if (arg instanceof FluentDateTime || arg instanceof FluentNumber) {\n    return new FluentDateTime(arg, values(opts, DATETIME_ALLOWED));\n  }\n  throw new TypeError(\"Invalid argument to DATETIME\");\n}\n;// ./node_modules/@fluent/bundle/esm/memoizer.js\nconst cache = new Map();\nfunction getMemoizerForLocale(locales) {\n  const stringLocale = Array.isArray(locales) ? locales.join(\" \") : locales;\n  let memoizer = cache.get(stringLocale);\n  if (memoizer === undefined) {\n    memoizer = new Map();\n    cache.set(stringLocale, memoizer);\n  }\n  return memoizer;\n}\n;// ./node_modules/@fluent/bundle/esm/bundle.js\n\n\n\n\n\nclass FluentBundle {\n  constructor(locales, {\n    functions,\n    useIsolating = true,\n    transform = v => v\n  } = {}) {\n    this._terms = new Map();\n    this._messages = new Map();\n    this.locales = Array.isArray(locales) ? locales : [locales];\n    this._functions = {\n      NUMBER: NUMBER,\n      DATETIME: DATETIME,\n      ...functions\n    };\n    this._useIsolating = useIsolating;\n    this._transform = transform;\n    this._intls = getMemoizerForLocale(locales);\n  }\n  hasMessage(id) {\n    return this._messages.has(id);\n  }\n  getMessage(id) {\n    return this._messages.get(id);\n  }\n  addResource(res, {\n    allowOverrides = false\n  } = {}) {\n    const errors = [];\n    for (let i = 0; i < res.body.length; i++) {\n      let entry = res.body[i];\n      if (entry.id.startsWith(\"-\")) {\n        if (allowOverrides === false && this._terms.has(entry.id)) {\n          errors.push(new Error(`Attempt to override an existing term: \"${entry.id}\"`));\n          continue;\n        }\n        this._terms.set(entry.id, entry);\n      } else {\n        if (allowOverrides === false && this._messages.has(entry.id)) {\n          errors.push(new Error(`Attempt to override an existing message: \"${entry.id}\"`));\n          continue;\n        }\n        this._messages.set(entry.id, entry);\n      }\n    }\n    return errors;\n  }\n  formatPattern(pattern, args = null, errors = null) {\n    if (typeof pattern === \"string\") {\n      return this._transform(pattern);\n    }\n    let scope = new Scope(this, errors, args);\n    try {\n      let value = resolveComplexPattern(scope, pattern);\n      return value.toString(scope);\n    } catch (err) {\n      if (scope.errors && err instanceof Error) {\n        scope.errors.push(err);\n        return new FluentNone().toString(scope);\n      }\n      throw err;\n    }\n  }\n}\n;// ./node_modules/@fluent/bundle/esm/resource.js\nconst RE_MESSAGE_START = /^(-?[a-zA-Z][\\w-]*) *= */gm;\nconst RE_ATTRIBUTE_START = /\\.([a-zA-Z][\\w-]*) *= */y;\nconst RE_VARIANT_START = /\\*?\\[/y;\nconst RE_NUMBER_LITERAL = /(-?[0-9]+(?:\\.([0-9]+))?)/y;\nconst RE_IDENTIFIER = /([a-zA-Z][\\w-]*)/y;\nconst RE_REFERENCE = /([$-])?([a-zA-Z][\\w-]*)(?:\\.([a-zA-Z][\\w-]*))?/y;\nconst RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;\nconst RE_TEXT_RUN = /([^{}\\n\\r]+)/y;\nconst RE_STRING_RUN = /([^\\\\\"\\n\\r]*)/y;\nconst RE_STRING_ESCAPE = /\\\\([\\\\\"])/y;\nconst RE_UNICODE_ESCAPE = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{6})/y;\nconst RE_LEADING_NEWLINES = /^\\n+/;\nconst RE_TRAILING_SPACES = / +$/;\nconst RE_BLANK_LINES = / *\\r?\\n/g;\nconst RE_INDENT = /( *)$/;\nconst TOKEN_BRACE_OPEN = /{\\s*/y;\nconst TOKEN_BRACE_CLOSE = /\\s*}/y;\nconst TOKEN_BRACKET_OPEN = /\\[\\s*/y;\nconst TOKEN_BRACKET_CLOSE = /\\s*] */y;\nconst TOKEN_PAREN_OPEN = /\\s*\\(\\s*/y;\nconst TOKEN_ARROW = /\\s*->\\s*/y;\nconst TOKEN_COLON = /\\s*:\\s*/y;\nconst TOKEN_COMMA = /\\s*,?\\s*/y;\nconst TOKEN_BLANK = /\\s+/y;\nclass FluentResource {\n  constructor(source) {\n    this.body = [];\n    RE_MESSAGE_START.lastIndex = 0;\n    let cursor = 0;\n    while (true) {\n      let next = RE_MESSAGE_START.exec(source);\n      if (next === null) {\n        break;\n      }\n      cursor = RE_MESSAGE_START.lastIndex;\n      try {\n        this.body.push(parseMessage(next[1]));\n      } catch (err) {\n        if (err instanceof SyntaxError) {\n          continue;\n        }\n        throw err;\n      }\n    }\n    function test(re) {\n      re.lastIndex = cursor;\n      return re.test(source);\n    }\n    function consumeChar(char, errorClass) {\n      if (source[cursor] === char) {\n        cursor++;\n        return true;\n      }\n      if (errorClass) {\n        throw new errorClass(`Expected ${char}`);\n      }\n      return false;\n    }\n    function consumeToken(re, errorClass) {\n      if (test(re)) {\n        cursor = re.lastIndex;\n        return true;\n      }\n      if (errorClass) {\n        throw new errorClass(`Expected ${re.toString()}`);\n      }\n      return false;\n    }\n    function match(re) {\n      re.lastIndex = cursor;\n      let result = re.exec(source);\n      if (result === null) {\n        throw new SyntaxError(`Expected ${re.toString()}`);\n      }\n      cursor = re.lastIndex;\n      return result;\n    }\n    function match1(re) {\n      return match(re)[1];\n    }\n    function parseMessage(id) {\n      let value = parsePattern();\n      let attributes = parseAttributes();\n      if (value === null && Object.keys(attributes).length === 0) {\n        throw new SyntaxError(\"Expected message value or attributes\");\n      }\n      return {\n        id,\n        value,\n        attributes\n      };\n    }\n    function parseAttributes() {\n      let attrs = Object.create(null);\n      while (test(RE_ATTRIBUTE_START)) {\n        let name = match1(RE_ATTRIBUTE_START);\n        let value = parsePattern();\n        if (value === null) {\n          throw new SyntaxError(\"Expected attribute value\");\n        }\n        attrs[name] = value;\n      }\n      return attrs;\n    }\n    function parsePattern() {\n      let first;\n      if (test(RE_TEXT_RUN)) {\n        first = match1(RE_TEXT_RUN);\n      }\n      if (source[cursor] === \"{\" || source[cursor] === \"}\") {\n        return parsePatternElements(first ? [first] : [], Infinity);\n      }\n      let indent = parseIndent();\n      if (indent) {\n        if (first) {\n          return parsePatternElements([first, indent], indent.length);\n        }\n        indent.value = trim(indent.value, RE_LEADING_NEWLINES);\n        return parsePatternElements([indent], indent.length);\n      }\n      if (first) {\n        return trim(first, RE_TRAILING_SPACES);\n      }\n      return null;\n    }\n    function parsePatternElements(elements = [], commonIndent) {\n      while (true) {\n        if (test(RE_TEXT_RUN)) {\n          elements.push(match1(RE_TEXT_RUN));\n          continue;\n        }\n        if (source[cursor] === \"{\") {\n          elements.push(parsePlaceable());\n          continue;\n        }\n        if (source[cursor] === \"}\") {\n          throw new SyntaxError(\"Unbalanced closing brace\");\n        }\n        let indent = parseIndent();\n        if (indent) {\n          elements.push(indent);\n          commonIndent = Math.min(commonIndent, indent.length);\n          continue;\n        }\n        break;\n      }\n      let lastIndex = elements.length - 1;\n      let lastElement = elements[lastIndex];\n      if (typeof lastElement === \"string\") {\n        elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES);\n      }\n      let baked = [];\n      for (let element of elements) {\n        if (element instanceof Indent) {\n          element = element.value.slice(0, element.value.length - commonIndent);\n        }\n        if (element) {\n          baked.push(element);\n        }\n      }\n      return baked;\n    }\n    function parsePlaceable() {\n      consumeToken(TOKEN_BRACE_OPEN, SyntaxError);\n      let selector = parseInlineExpression();\n      if (consumeToken(TOKEN_BRACE_CLOSE)) {\n        return selector;\n      }\n      if (consumeToken(TOKEN_ARROW)) {\n        let variants = parseVariants();\n        consumeToken(TOKEN_BRACE_CLOSE, SyntaxError);\n        return {\n          type: \"select\",\n          selector,\n          ...variants\n        };\n      }\n      throw new SyntaxError(\"Unclosed placeable\");\n    }\n    function parseInlineExpression() {\n      if (source[cursor] === \"{\") {\n        return parsePlaceable();\n      }\n      if (test(RE_REFERENCE)) {\n        let [, sigil, name, attr = null] = match(RE_REFERENCE);\n        if (sigil === \"$\") {\n          return {\n            type: \"var\",\n            name\n          };\n        }\n        if (consumeToken(TOKEN_PAREN_OPEN)) {\n          let args = parseArguments();\n          if (sigil === \"-\") {\n            return {\n              type: \"term\",\n              name,\n              attr,\n              args\n            };\n          }\n          if (RE_FUNCTION_NAME.test(name)) {\n            return {\n              type: \"func\",\n              name,\n              args\n            };\n          }\n          throw new SyntaxError(\"Function names must be all upper-case\");\n        }\n        if (sigil === \"-\") {\n          return {\n            type: \"term\",\n            name,\n            attr,\n            args: []\n          };\n        }\n        return {\n          type: \"mesg\",\n          name,\n          attr\n        };\n      }\n      return parseLiteral();\n    }\n    function parseArguments() {\n      let args = [];\n      while (true) {\n        switch (source[cursor]) {\n          case \")\":\n            cursor++;\n            return args;\n          case undefined:\n            throw new SyntaxError(\"Unclosed argument list\");\n        }\n        args.push(parseArgument());\n        consumeToken(TOKEN_COMMA);\n      }\n    }\n    function parseArgument() {\n      let expr = parseInlineExpression();\n      if (expr.type !== \"mesg\") {\n        return expr;\n      }\n      if (consumeToken(TOKEN_COLON)) {\n        return {\n          type: \"narg\",\n          name: expr.name,\n          value: parseLiteral()\n        };\n      }\n      return expr;\n    }\n    function parseVariants() {\n      let variants = [];\n      let count = 0;\n      let star;\n      while (test(RE_VARIANT_START)) {\n        if (consumeChar(\"*\")) {\n          star = count;\n        }\n        let key = parseVariantKey();\n        let value = parsePattern();\n        if (value === null) {\n          throw new SyntaxError(\"Expected variant value\");\n        }\n        variants[count++] = {\n          key,\n          value\n        };\n      }\n      if (count === 0) {\n        return null;\n      }\n      if (star === undefined) {\n        throw new SyntaxError(\"Expected default variant\");\n      }\n      return {\n        variants,\n        star\n      };\n    }\n    function parseVariantKey() {\n      consumeToken(TOKEN_BRACKET_OPEN, SyntaxError);\n      let key;\n      if (test(RE_NUMBER_LITERAL)) {\n        key = parseNumberLiteral();\n      } else {\n        key = {\n          type: \"str\",\n          value: match1(RE_IDENTIFIER)\n        };\n      }\n      consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError);\n      return key;\n    }\n    function parseLiteral() {\n      if (test(RE_NUMBER_LITERAL)) {\n        return parseNumberLiteral();\n      }\n      if (source[cursor] === '\"') {\n        return parseStringLiteral();\n      }\n      throw new SyntaxError(\"Invalid expression\");\n    }\n    function parseNumberLiteral() {\n      let [, value, fraction = \"\"] = match(RE_NUMBER_LITERAL);\n      let precision = fraction.length;\n      return {\n        type: \"num\",\n        value: parseFloat(value),\n        precision\n      };\n    }\n    function parseStringLiteral() {\n      consumeChar('\"', SyntaxError);\n      let value = \"\";\n      while (true) {\n        value += match1(RE_STRING_RUN);\n        if (source[cursor] === \"\\\\\") {\n          value += parseEscapeSequence();\n          continue;\n        }\n        if (consumeChar('\"')) {\n          return {\n            type: \"str\",\n            value\n          };\n        }\n        throw new SyntaxError(\"Unclosed string literal\");\n      }\n    }\n    function parseEscapeSequence() {\n      if (test(RE_STRING_ESCAPE)) {\n        return match1(RE_STRING_ESCAPE);\n      }\n      if (test(RE_UNICODE_ESCAPE)) {\n        let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE);\n        let codepoint = parseInt(codepoint4 || codepoint6, 16);\n        return codepoint <= 0xd7ff || 0xe000 <= codepoint ? String.fromCodePoint(codepoint) : \"�\";\n      }\n      throw new SyntaxError(\"Unknown escape sequence\");\n    }\n    function parseIndent() {\n      let start = cursor;\n      consumeToken(TOKEN_BLANK);\n      switch (source[cursor]) {\n        case \".\":\n        case \"[\":\n        case \"*\":\n        case \"}\":\n        case undefined:\n          return false;\n        case \"{\":\n          return makeIndent(source.slice(start, cursor));\n      }\n      if (source[cursor - 1] === \" \") {\n        return makeIndent(source.slice(start, cursor));\n      }\n      return false;\n    }\n    function trim(text, re) {\n      return text.replace(re, \"\");\n    }\n    function makeIndent(blank) {\n      let value = blank.replace(RE_BLANK_LINES, \"\\n\");\n      let length = RE_INDENT.exec(blank)[1].length;\n      return new Indent(value, length);\n    }\n  }\n}\nclass Indent {\n  constructor(value, length) {\n    this.value = value;\n    this.length = length;\n  }\n}\n;// ./node_modules/@fluent/bundle/esm/index.js\n\n\n\n;// ./node_modules/@fluent/dom/esm/overlay.js\nconst reOverlay = /<|&#?\\w+;/;\nconst TEXT_LEVEL_ELEMENTS = {\n  \"http://www.w3.org/1999/xhtml\": [\"em\", \"strong\", \"small\", \"s\", \"cite\", \"q\", \"dfn\", \"abbr\", \"data\", \"time\", \"code\", \"var\", \"samp\", \"kbd\", \"sub\", \"sup\", \"i\", \"b\", \"u\", \"mark\", \"bdi\", \"bdo\", \"span\", \"br\", \"wbr\"]\n};\nconst LOCALIZABLE_ATTRIBUTES = {\n  \"http://www.w3.org/1999/xhtml\": {\n    global: [\"title\", \"aria-description\", \"aria-label\", \"aria-valuetext\"],\n    a: [\"download\"],\n    area: [\"download\", \"alt\"],\n    input: [\"alt\", \"placeholder\"],\n    menuitem: [\"label\"],\n    menu: [\"label\"],\n    optgroup: [\"label\"],\n    option: [\"label\"],\n    track: [\"label\"],\n    img: [\"alt\"],\n    textarea: [\"placeholder\"],\n    th: [\"abbr\"]\n  },\n  \"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\": {\n    global: [\"accesskey\", \"aria-label\", \"aria-valuetext\", \"label\", \"title\", \"tooltiptext\"],\n    description: [\"value\"],\n    key: [\"key\", \"keycode\"],\n    label: [\"value\"],\n    textbox: [\"placeholder\", \"value\"]\n  }\n};\nfunction translateElement(element, translation) {\n  const {\n    value\n  } = translation;\n  if (typeof value === \"string\") {\n    if (element.localName === \"title\" && element.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n      element.textContent = value;\n    } else if (!reOverlay.test(value)) {\n      element.textContent = value;\n    } else {\n      const templateElement = element.ownerDocument.createElementNS(\"http://www.w3.org/1999/xhtml\", \"template\");\n      templateElement.innerHTML = value;\n      overlayChildNodes(templateElement.content, element);\n    }\n  }\n  overlayAttributes(translation, element);\n}\nfunction overlayChildNodes(fromFragment, toElement) {\n  for (const childNode of fromFragment.childNodes) {\n    if (childNode.nodeType === childNode.TEXT_NODE) {\n      continue;\n    }\n    if (childNode.hasAttribute(\"data-l10n-name\")) {\n      const sanitized = getNodeForNamedElement(toElement, childNode);\n      fromFragment.replaceChild(sanitized, childNode);\n      continue;\n    }\n    if (isElementAllowed(childNode)) {\n      const sanitized = createSanitizedElement(childNode);\n      fromFragment.replaceChild(sanitized, childNode);\n      continue;\n    }\n    console.warn(`An element of forbidden type \"${childNode.localName}\" was found in ` + \"the translation. Only safe text-level elements and elements with \" + \"data-l10n-name are allowed.\");\n    fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode);\n  }\n  toElement.textContent = \"\";\n  toElement.appendChild(fromFragment);\n}\nfunction hasAttribute(attributes, name) {\n  if (!attributes) {\n    return false;\n  }\n  for (let attr of attributes) {\n    if (attr.name === name) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction overlayAttributes(fromElement, toElement) {\n  const explicitlyAllowed = toElement.hasAttribute(\"data-l10n-attrs\") ? toElement.getAttribute(\"data-l10n-attrs\").split(\",\").map(i => i.trim()) : null;\n  for (const attr of Array.from(toElement.attributes)) {\n    if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && !hasAttribute(fromElement.attributes, attr.name)) {\n      toElement.removeAttribute(attr.name);\n    }\n  }\n  if (!fromElement.attributes) {\n    return;\n  }\n  for (const attr of Array.from(fromElement.attributes)) {\n    if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && toElement.getAttribute(attr.name) !== attr.value) {\n      toElement.setAttribute(attr.name, attr.value);\n    }\n  }\n}\nfunction getNodeForNamedElement(sourceElement, translatedChild) {\n  const childName = translatedChild.getAttribute(\"data-l10n-name\");\n  const sourceChild = sourceElement.querySelector(`[data-l10n-name=\"${childName}\"]`);\n  if (!sourceChild) {\n    console.warn(`An element named \"${childName}\" wasn't found in the source.`);\n    return createTextNodeFromTextContent(translatedChild);\n  }\n  if (sourceChild.localName !== translatedChild.localName) {\n    console.warn(`An element named \"${childName}\" was found in the translation ` + `but its type ${translatedChild.localName} didn't match the ` + `element found in the source (${sourceChild.localName}).`);\n    return createTextNodeFromTextContent(translatedChild);\n  }\n  sourceElement.removeChild(sourceChild);\n  const clone = sourceChild.cloneNode(false);\n  return shallowPopulateUsing(translatedChild, clone);\n}\nfunction createSanitizedElement(element) {\n  const clone = element.ownerDocument.createElement(element.localName);\n  return shallowPopulateUsing(element, clone);\n}\nfunction createTextNodeFromTextContent(element) {\n  return element.ownerDocument.createTextNode(element.textContent);\n}\nfunction isElementAllowed(element) {\n  const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI];\n  return allowed && allowed.includes(element.localName);\n}\nfunction isAttrNameLocalizable(name, element, explicitlyAllowed = null) {\n  if (explicitlyAllowed && explicitlyAllowed.includes(name)) {\n    return true;\n  }\n  const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI];\n  if (!allowed) {\n    return false;\n  }\n  const attrName = name.toLowerCase();\n  const elemName = element.localName;\n  if (allowed.global.includes(attrName)) {\n    return true;\n  }\n  if (!allowed[elemName]) {\n    return false;\n  }\n  if (allowed[elemName].includes(attrName)) {\n    return true;\n  }\n  if (element.namespaceURI === \"http://www.w3.org/1999/xhtml\" && elemName === \"input\" && attrName === \"value\") {\n    const type = element.type.toLowerCase();\n    if (type === \"submit\" || type === \"button\" || type === \"reset\") {\n      return true;\n    }\n  }\n  return false;\n}\nfunction shallowPopulateUsing(fromElement, toElement) {\n  toElement.textContent = fromElement.textContent;\n  overlayAttributes(fromElement, toElement);\n  return toElement;\n}\n;// ./node_modules/cached-iterable/src/cached_iterable.mjs\nclass CachedIterable extends Array {\n  static from(iterable) {\n    if (iterable instanceof this) {\n      return iterable;\n    }\n    return new this(iterable);\n  }\n}\n;// ./node_modules/cached-iterable/src/cached_sync_iterable.mjs\n\nclass CachedSyncIterable extends CachedIterable {\n  constructor(iterable) {\n    super();\n    if (Symbol.iterator in Object(iterable)) {\n      this.iterator = iterable[Symbol.iterator]();\n    } else {\n      throw new TypeError(\"Argument must implement the iteration protocol.\");\n    }\n  }\n  [Symbol.iterator]() {\n    const cached = this;\n    let cur = 0;\n    return {\n      next() {\n        if (cached.length <= cur) {\n          cached.push(cached.iterator.next());\n        }\n        return cached[cur++];\n      }\n    };\n  }\n  touchNext(count = 1) {\n    let idx = 0;\n    while (idx++ < count) {\n      const last = this[this.length - 1];\n      if (last && last.done) {\n        break;\n      }\n      this.push(this.iterator.next());\n    }\n    return this[this.length - 1];\n  }\n}\n;// ./node_modules/cached-iterable/src/cached_async_iterable.mjs\n\nclass CachedAsyncIterable extends CachedIterable {\n  constructor(iterable) {\n    super();\n    if (Symbol.asyncIterator in Object(iterable)) {\n      this.iterator = iterable[Symbol.asyncIterator]();\n    } else if (Symbol.iterator in Object(iterable)) {\n      this.iterator = iterable[Symbol.iterator]();\n    } else {\n      throw new TypeError(\"Argument must implement the iteration protocol.\");\n    }\n  }\n  [Symbol.asyncIterator]() {\n    const cached = this;\n    let cur = 0;\n    return {\n      async next() {\n        if (cached.length <= cur) {\n          cached.push(cached.iterator.next());\n        }\n        return cached[cur++];\n      }\n    };\n  }\n  async touchNext(count = 1) {\n    let idx = 0;\n    while (idx++ < count) {\n      const last = this[this.length - 1];\n      if (last && (await last).done) {\n        break;\n      }\n      this.push(this.iterator.next());\n    }\n    return this[this.length - 1];\n  }\n}\n;// ./node_modules/cached-iterable/src/index.mjs\n\n\n;// ./node_modules/@fluent/dom/esm/localization.js\n\nclass Localization {\n  constructor(resourceIds = [], generateBundles) {\n    this.resourceIds = resourceIds;\n    this.generateBundles = generateBundles;\n    this.onChange(true);\n  }\n  addResourceIds(resourceIds, eager = false) {\n    this.resourceIds.push(...resourceIds);\n    this.onChange(eager);\n    return this.resourceIds.length;\n  }\n  removeResourceIds(resourceIds) {\n    this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r));\n    this.onChange();\n    return this.resourceIds.length;\n  }\n  async formatWithFallback(keys, method) {\n    const translations = [];\n    let hasAtLeastOneBundle = false;\n    for await (const bundle of this.bundles) {\n      hasAtLeastOneBundle = true;\n      const missingIds = keysFromBundle(method, bundle, keys, translations);\n      if (missingIds.size === 0) {\n        break;\n      }\n      if (typeof console !== \"undefined\") {\n        const locale = bundle.locales[0];\n        const ids = Array.from(missingIds).join(\", \");\n        // console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);\n      }\n    }\n    if (!hasAtLeastOneBundle && typeof console !== \"undefined\") {\n      console.warn(`[fluent] Request for keys failed because no resource bundles got generated.\n  keys: ${JSON.stringify(keys)}.\n  resourceIds: ${JSON.stringify(this.resourceIds)}.`);\n    }\n    return translations;\n  }\n  formatMessages(keys) {\n    return this.formatWithFallback(keys, messageFromBundle);\n  }\n  formatValues(keys) {\n    return this.formatWithFallback(keys, valueFromBundle);\n  }\n  async formatValue(id, args) {\n    const [val] = await this.formatValues([{\n      id,\n      args\n    }]);\n    return val;\n  }\n  handleEvent() {\n    this.onChange();\n  }\n  onChange(eager = false) {\n    this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds));\n    if (eager) {\n      this.bundles.touchNext(2);\n    }\n  }\n}\nfunction valueFromBundle(bundle, errors, message, args) {\n  if (message.value) {\n    return bundle.formatPattern(message.value, args, errors);\n  }\n  return null;\n}\nfunction messageFromBundle(bundle, errors, message, args) {\n  const formatted = {\n    value: null,\n    attributes: null\n  };\n  if (message.value) {\n    formatted.value = bundle.formatPattern(message.value, args, errors);\n  }\n  let attrNames = Object.keys(message.attributes);\n  if (attrNames.length > 0) {\n    formatted.attributes = new Array(attrNames.length);\n    for (let [i, name] of attrNames.entries()) {\n      let value = bundle.formatPattern(message.attributes[name], args, errors);\n      formatted.attributes[i] = {\n        name,\n        value\n      };\n    }\n  }\n  return formatted;\n}\nfunction keysFromBundle(method, bundle, keys, translations) {\n  const messageErrors = [];\n  const missingIds = new Set();\n  keys.forEach(({\n    id,\n    args\n  }, i) => {\n    if (translations[i] !== undefined) {\n      return;\n    }\n    let message = bundle.getMessage(id);\n    if (message) {\n      messageErrors.length = 0;\n      translations[i] = method(bundle, messageErrors, message, args);\n      if (messageErrors.length > 0 && typeof console !== \"undefined\") {\n        const locale = bundle.locales[0];\n        const errors = messageErrors.join(\", \");\n        console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`);\n      }\n    } else {\n      missingIds.add(id);\n    }\n  });\n  return missingIds;\n}\n;// ./node_modules/@fluent/dom/esm/dom_localization.js\n\n\nconst L10NID_ATTR_NAME = \"data-l10n-id\";\nconst L10NARGS_ATTR_NAME = \"data-l10n-args\";\nconst L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`;\nclass DOMLocalization extends Localization {\n  constructor(resourceIds, generateBundles) {\n    super(resourceIds, generateBundles);\n    this.roots = new Set();\n    this.pendingrAF = null;\n    this.pendingElements = new Set();\n    this.windowElement = null;\n    this.mutationObserver = null;\n    this.observerConfig = {\n      attributes: true,\n      characterData: false,\n      childList: true,\n      subtree: true,\n      attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME]\n    };\n  }\n  onChange(eager = false) {\n    super.onChange(eager);\n    if (this.roots) {\n      this.translateRoots();\n    }\n  }\n  setAttributes(element, id, args) {\n    element.setAttribute(L10NID_ATTR_NAME, id);\n    if (args) {\n      element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args));\n    } else {\n      element.removeAttribute(L10NARGS_ATTR_NAME);\n    }\n    return element;\n  }\n  getAttributes(element) {\n    return {\n      id: element.getAttribute(L10NID_ATTR_NAME),\n      args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null)\n    };\n  }\n  connectRoot(newRoot) {\n    for (const root of this.roots) {\n      if (root === newRoot || root.contains(newRoot) || newRoot.contains(root)) {\n        throw new Error(\"Cannot add a root that overlaps with existing root.\");\n      }\n    }\n    if (this.windowElement) {\n      if (this.windowElement !== newRoot.ownerDocument.defaultView) {\n        throw new Error(`Cannot connect a root:\n          DOMLocalization already has a root from a different window.`);\n      }\n    } else {\n      this.windowElement = newRoot.ownerDocument.defaultView;\n      this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations));\n    }\n    this.roots.add(newRoot);\n    this.mutationObserver.observe(newRoot, this.observerConfig);\n  }\n  disconnectRoot(root) {\n    this.roots.delete(root);\n    this.pauseObserving();\n    if (this.roots.size === 0) {\n      this.mutationObserver = null;\n      if (this.windowElement && this.pendingrAF) {\n        this.windowElement.cancelAnimationFrame(this.pendingrAF);\n      }\n      this.windowElement = null;\n      this.pendingrAF = null;\n      this.pendingElements.clear();\n      return true;\n    }\n    this.resumeObserving();\n    return false;\n  }\n  translateRoots() {\n    const roots = Array.from(this.roots);\n    return Promise.all(roots.map(root => this.translateFragment(root)));\n  }\n  pauseObserving() {\n    if (!this.mutationObserver) {\n      return;\n    }\n    this.translateMutations(this.mutationObserver.takeRecords());\n    this.mutationObserver.disconnect();\n  }\n  resumeObserving() {\n    if (!this.mutationObserver) {\n      return;\n    }\n    for (const root of this.roots) {\n      this.mutationObserver.observe(root, this.observerConfig);\n    }\n  }\n  translateMutations(mutations) {\n    for (const mutation of mutations) {\n      switch (mutation.type) {\n        case \"attributes\":\n          if (mutation.target.hasAttribute(\"data-l10n-id\")) {\n            this.pendingElements.add(mutation.target);\n          }\n          break;\n        case \"childList\":\n          for (const addedNode of mutation.addedNodes) {\n            if (addedNode.nodeType === addedNode.ELEMENT_NODE) {\n              if (addedNode.childElementCount) {\n                for (const element of this.getTranslatables(addedNode)) {\n                  this.pendingElements.add(element);\n                }\n              } else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) {\n                this.pendingElements.add(addedNode);\n              }\n            }\n          }\n          break;\n      }\n    }\n    if (this.pendingElements.size > 0) {\n      if (this.pendingrAF === null) {\n        this.pendingrAF = this.windowElement.requestAnimationFrame(() => {\n          this.translateElements(Array.from(this.pendingElements));\n          this.pendingElements.clear();\n          this.pendingrAF = null;\n        });\n      }\n    }\n  }\n  translateFragment(frag) {\n    return this.translateElements(this.getTranslatables(frag));\n  }\n  async translateElements(elements) {\n    if (!elements.length) {\n      return undefined;\n    }\n    const keys = elements.map(this.getKeysForElement);\n    const translations = await this.formatMessages(keys);\n    return this.applyTranslations(elements, translations);\n  }\n  applyTranslations(elements, translations) {\n    this.pauseObserving();\n    for (let i = 0; i < elements.length; i++) {\n      if (translations[i] !== undefined) {\n        translateElement(elements[i], translations[i]);\n      }\n    }\n    this.resumeObserving();\n  }\n  getTranslatables(element) {\n    const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY));\n    if (typeof element.hasAttribute === \"function\" && element.hasAttribute(L10NID_ATTR_NAME)) {\n      nodes.push(element);\n    }\n    return nodes;\n  }\n  getKeysForElement(element) {\n    return {\n      id: element.getAttribute(L10NID_ATTR_NAME),\n      args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null)\n    };\n  }\n}\n;// ./node_modules/@fluent/dom/esm/index.js\n\n\n;// ./web/l10n.js\nclass L10n {\n  #dir;\n  #elements;\n  #lang;\n  #l10n;\n  constructor({\n    lang,\n    isRTL\n  }, l10n = null) {\n    this.#lang = L10n.#fixupLangCode(lang);\n    this.#l10n = l10n;\n    this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? \"rtl\" : \"ltr\";\n  }\n  _setL10n(l10n) {\n    this.#l10n = l10n;\n  }\n  getLanguage() {\n    return this.#lang;\n  }\n  getDirection() {\n    return this.#dir;\n  }\n  async get(ids, args = null, fallback) {\n    if (Array.isArray(ids)) {\n      ids = ids.map(id => ({\n        id\n      }));\n      const messages = await this.#l10n.formatMessages(ids);\n      return messages.map(message => message.value);\n    }\n    const messages = await this.#l10n.formatMessages([{\n      id: ids,\n      args\n    }]);\n    return messages[0]?.value || fallback;\n  }\n  async translate(element) {\n    (this.#elements ||= new Set()).add(element);\n    try {\n      this.#l10n.connectRoot(element);\n      await this.#l10n.translateRoots();\n    } catch {}\n  }\n  async translateOnce(element) {\n    try {\n      await this.#l10n.translateElements([element]);\n    } catch (ex) {\n      console.error(\"translateOnce:\", ex);\n    }\n  }\n  async destroy() {\n    if (this.#elements) {\n      for (const element of this.#elements) {\n        this.#l10n.disconnectRoot(element);\n      }\n      this.#elements.clear();\n      this.#elements = null;\n    }\n    this.#l10n.pauseObserving();\n  }\n  pause() {\n    this.#l10n.pauseObserving();\n  }\n  resume() {\n    this.#l10n.resumeObserving();\n  }\n  static #fixupLangCode(langCode) {\n    langCode = langCode?.toLowerCase() || \"en-us\";\n    const PARTIAL_LANG_CODES = {\n      en: \"en-us\",\n      es: \"es-es\",\n      fy: \"fy-nl\",\n      ga: \"ga-ie\",\n      gu: \"gu-in\",\n      hi: \"hi-in\",\n      hy: \"hy-am\",\n      nb: \"nb-no\",\n      ne: \"ne-np\",\n      nn: \"nn-no\",\n      pa: \"pa-in\",\n      pt: \"pt-pt\",\n      sv: \"sv-se\",\n      zh: \"zh-cn\"\n    };\n    return PARTIAL_LANG_CODES[langCode] || langCode;\n  }\n  static #isRTL(lang) {\n    const shortCode = lang.split(\"-\", 1)[0];\n    return [\"ar\", \"he\", \"fa\", \"ps\", \"ur\"].includes(shortCode);\n  }\n}\nconst GenericL10n = null;\n\n;// ./web/genericl10n.js\n\n\n\n\nfunction PLATFORM() {\n  const {\n    isAndroid,\n    isLinux,\n    isMac,\n    isWindows\n  } = FeatureTest.platform;\n  if (isLinux) {\n    return \"linux\";\n  }\n  if (isWindows) {\n    return \"windows\";\n  }\n  if (isMac) {\n    return \"macos\";\n  }\n  if (isAndroid) {\n    return \"android\";\n  }\n  return \"other\";\n}\nfunction createBundle(lang, text) {\n  const resource = new FluentResource(text);\n  const bundle = new FluentBundle(lang, {\n    functions: {\n      PLATFORM\n    }\n  });\n  const errors = bundle.addResource(resource);\n  if (errors.length) {\n    console.error(\"L10n errors\", errors);\n  }\n  return bundle;\n}\nclass genericl10n_GenericL10n extends L10n {\n  constructor(lang) {\n    super({\n      lang\n    });\n    const generateBundles = !lang ? genericl10n_GenericL10n.#generateBundlesFallback.bind(genericl10n_GenericL10n, this.getLanguage()) : genericl10n_GenericL10n.#generateBundles.bind(genericl10n_GenericL10n, \"en-us\", this.getLanguage());\n    this._setL10n(new DOMLocalization([], generateBundles));\n  }\n  static async *#generateBundles(defaultLang, baseLang) {\n    const {\n      baseURL,\n      paths\n    } = await this.#getPaths();\n    const langs = [baseLang];\n    if (defaultLang !== baseLang) {\n      const shortLang = baseLang.split(\"-\", 1)[0];\n      if (shortLang !== baseLang) {\n        langs.push(shortLang);\n      }\n      langs.push(defaultLang);\n    }\n    const bundles = langs.map(lang => [lang, this.#createBundle(lang, baseURL, paths)]);\n    for (const [lang, bundlePromise] of bundles) {\n      const bundle = await bundlePromise;\n      if (bundle) {\n        yield bundle;\n      } else if (lang === \"en-us\") {\n        yield this.#createBundleFallback(lang);\n      }\n    }\n  }\n  static async #createBundle(lang, baseURL, paths) {\n    const path = paths[lang];\n    if (!path) {\n      return null;\n    }\n    const url = new URL(path, baseURL);\n    const text = await fetchData(url, \"text\");\n    return createBundle(lang, text);\n  }\n  static async #getPaths() {\n    try {\n      const {\n        href\n      } = document.querySelector(`link[type=\"application/l10n\"]`);\n      const paths = await fetchData(href, \"json\");\n      return {\n        baseURL: href.substring(0, href.lastIndexOf(\"/\") + 1) || \"./\",\n        paths\n      };\n    } catch {}\n    return {\n      baseURL: \"./\",\n      paths: Object.create(null)\n    };\n  }\n  static async *#generateBundlesFallback(lang) {\n    yield this.#createBundleFallback(lang);\n  }\n  static async #createBundleFallback(lang) {\n    const text = \"pdfjs-previous-button =\\n    .title = Previous Page\\npdfjs-previous-button-label = Previous\\npdfjs-next-button =\\n    .title = Next Page\\npdfjs-next-button-label = Next\\npdfjs-page-input =\\n    .title = Page\\npdfjs-of-pages = of { $pagesCount }\\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\\npdfjs-zoom-out-button =\\n    .title = Zoom Out\\npdfjs-zoom-out-button-label = Zoom Out\\npdfjs-zoom-in-button =\\n    .title = Zoom In\\npdfjs-zoom-in-button-label = Zoom In\\npdfjs-zoom-select =\\n    .title = Zoom\\npdfjs-presentation-mode-button =\\n    .title = Switch to Presentation Mode\\npdfjs-presentation-mode-button-label = Presentation Mode\\npdfjs-open-file-button =\\n    .title = Open File\\npdfjs-open-file-button-label = Open\\npdfjs-print-button =\\n    .title = Print\\npdfjs-print-button-label = Print\\npdfjs-save-button =\\n    .title = Save\\npdfjs-save-button-label = Save\\npdfjs-download-button =\\n    .title = Download\\npdfjs-download-button-label = Download\\npdfjs-bookmark-button =\\n    .title = Current Page (View URL from Current Page)\\npdfjs-bookmark-button-label = Current Page\\npdfjs-tools-button =\\n    .title = Tools\\npdfjs-tools-button-label = Tools\\npdfjs-first-page-button =\\n    .title = Go to First Page\\npdfjs-first-page-button-label = Go to First Page\\npdfjs-last-page-button =\\n    .title = Go to Last Page\\npdfjs-last-page-button-label = Go to Last Page\\npdfjs-page-rotate-cw-button =\\n    .title = Rotate Clockwise\\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\\npdfjs-page-rotate-ccw-button =\\n    .title = Rotate Counterclockwise\\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\\npdfjs-cursor-text-select-tool-button =\\n    .title = Enable Text Selection Tool\\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\\npdfjs-cursor-hand-tool-button =\\n    .title = Enable Hand Tool\\npdfjs-cursor-hand-tool-button-label = Hand Tool\\npdfjs-scroll-page-button =\\n    .title = Use Page Scrolling\\npdfjs-scroll-page-button-label = Page Scrolling\\npdfjs-scroll-vertical-button =\\n    .title = Use Vertical Scrolling\\npdfjs-scroll-vertical-button-label = Vertical Scrolling\\npdfjs-scroll-horizontal-button =\\n    .title = Use Horizontal Scrolling\\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\\npdfjs-scroll-wrapped-button =\\n    .title = Use Wrapped Scrolling\\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\\npdfjs-spread-none-button =\\n    .title = Do not join page spreads\\npdfjs-spread-none-button-label = No Spreads\\npdfjs-spread-odd-button =\\n    .title = Join page spreads starting with odd-numbered pages\\npdfjs-spread-odd-button-label = Odd Spreads\\npdfjs-spread-even-button =\\n    .title = Join page spreads starting with even-numbered pages\\npdfjs-spread-even-button-label = Even Spreads\\npdfjs-document-properties-button =\\n    .title = Document Properties\\u2026\\npdfjs-document-properties-button-label = Document Properties\\u2026\\npdfjs-document-properties-file-name = File name:\\npdfjs-document-properties-file-size = File size:\\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\\npdfjs-document-properties-title = Title:\\npdfjs-document-properties-author = Author:\\npdfjs-document-properties-subject = Subject:\\npdfjs-document-properties-keywords = Keywords:\\npdfjs-document-properties-creation-date = Creation Date:\\npdfjs-document-properties-modification-date = Modification Date:\\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \\\"short\\\", timeStyle: \\\"medium\\\") }\\npdfjs-document-properties-creator = Creator:\\npdfjs-document-properties-producer = PDF Producer:\\npdfjs-document-properties-version = PDF Version:\\npdfjs-document-properties-page-count = Page Count:\\npdfjs-document-properties-page-size = Page Size:\\npdfjs-document-properties-page-size-unit-inches = in\\npdfjs-document-properties-page-size-unit-millimeters = mm\\npdfjs-document-properties-page-size-orientation-portrait = portrait\\npdfjs-document-properties-page-size-orientation-landscape = landscape\\npdfjs-document-properties-page-size-name-a-three = A3\\npdfjs-document-properties-page-size-name-a-four = A4\\npdfjs-document-properties-page-size-name-letter = Letter\\npdfjs-document-properties-page-size-name-legal = Legal\\npdfjs-document-properties-page-size-dimension-string = { $width } \\xD7 { $height } { $unit } ({ $orientation })\\npdfjs-document-properties-page-size-dimension-name-string = { $width } \\xD7 { $height } { $unit } ({ $name }, { $orientation })\\npdfjs-document-properties-linearized = Fast Web View:\\npdfjs-document-properties-linearized-yes = Yes\\npdfjs-document-properties-linearized-no = No\\npdfjs-document-properties-close-button = Close\\npdfjs-print-progress-message = Preparing document for printing\\u2026\\npdfjs-print-progress-percent = { $progress }%\\npdfjs-print-progress-close-button = Cancel\\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\\npdfjs-toggle-sidebar-button =\\n    .title = Toggle Sidebar\\npdfjs-toggle-sidebar-notification-button =\\n    .title = Toggle Sidebar (document contains outline/attachments/layers)\\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\\npdfjs-document-outline-button =\\n    .title = Show Document Outline (double-click to expand/collapse all items)\\npdfjs-document-outline-button-label = Document Outline\\npdfjs-attachments-button =\\n    .title = Show Attachments\\npdfjs-attachments-button-label = Attachments\\npdfjs-layers-button =\\n    .title = Show Layers (double-click to reset all layers to the default state)\\npdfjs-layers-button-label = Layers\\npdfjs-thumbs-button =\\n    .title = Show Thumbnails\\npdfjs-thumbs-button-label = Thumbnails\\npdfjs-current-outline-item-button =\\n    .title = Find Current Outline Item\\npdfjs-current-outline-item-button-label = Current Outline Item\\npdfjs-findbar-button =\\n    .title = Find in Document\\npdfjs-findbar-button-label = Find\\npdfjs-additional-layers = Additional Layers\\npdfjs-thumb-page-title =\\n    .title = Page { $page }\\npdfjs-thumb-page-canvas =\\n    .aria-label = Thumbnail of Page { $page }\\npdfjs-find-input =\\n    .title = Find\\n    .placeholder = Find in document\\u2026\\npdfjs-find-previous-button =\\n    .title = Find the previous occurrence of the phrase\\npdfjs-find-previous-button-label = Previous\\npdfjs-find-next-button =\\n    .title = Find the next occurrence of the phrase\\npdfjs-find-next-button-label = Next\\npdfjs-find-highlight-checkbox = Highlight All\\npdfjs-find-match-case-checkbox-label = Match Case\\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\\npdfjs-find-entire-word-checkbox-label = Whole Words\\npdfjs-find-reached-top = Reached top of document, continued from bottom\\npdfjs-find-reached-bottom = Reached end of document, continued from top\\npdfjs-find-match-count =\\n    { $total ->\\n        [one] { $current } of { $total } match\\n       *[other] { $current } of { $total } matches\\n    }\\npdfjs-find-match-count-limit =\\n    { $limit ->\\n        [one] More than { $limit } match\\n       *[other] More than { $limit } matches\\n    }\\npdfjs-find-not-found = Phrase not found\\npdfjs-page-scale-width = Page Width\\npdfjs-page-scale-fit = Page Fit\\npdfjs-page-scale-auto = Automatic Zoom\\npdfjs-page-scale-actual = Actual Size\\npdfjs-page-scale-percent = { $scale }%\\npdfjs-page-landmark =\\n    .aria-label = Page { $page }\\npdfjs-loading-error = An error occurred while loading the PDF.\\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\\npdfjs-missing-file-error = Missing PDF file.\\npdfjs-unexpected-response-error = Unexpected server response.\\npdfjs-rendering-error = An error occurred while rendering the page.\\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \\\"short\\\", timeStyle: \\\"medium\\\") }\\npdfjs-text-annotation-type =\\n    .alt = [{ $type } Annotation]\\npdfjs-password-label = Enter the password to open this PDF file.\\npdfjs-password-invalid = Invalid password. Please try again.\\npdfjs-password-ok-button = OK\\npdfjs-password-cancel-button = Cancel\\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\\npdfjs-editor-free-text-button =\\n    .title = Text\\npdfjs-editor-color-picker-free-text-input =\\n    .title = Change text color\\npdfjs-editor-free-text-button-label = Text\\npdfjs-editor-ink-button =\\n    .title = Draw\\npdfjs-editor-color-picker-ink-input =\\n    .title = Change drawing color\\npdfjs-editor-ink-button-label = Draw\\npdfjs-editor-stamp-button =\\n    .title = Add or edit images\\npdfjs-editor-stamp-button-label = Add or edit images\\npdfjs-editor-highlight-button =\\n    .title = Highlight\\npdfjs-editor-highlight-button-label = Highlight\\npdfjs-highlight-floating-button1 =\\n    .title = Highlight\\n    .aria-label = Highlight\\npdfjs-highlight-floating-button-label = Highlight\\npdfjs-comment-floating-button =\\n    .title = Comment\\n    .aria-label = Comment\\npdfjs-comment-floating-button-label = Comment\\npdfjs-editor-comment-button =\\n    .title = Comment\\n    .aria-label = Comment\\npdfjs-editor-comment-button-label = Comment\\npdfjs-editor-signature-button =\\n    .title = Add signature\\npdfjs-editor-signature-button-label = Add signature\\npdfjs-editor-highlight-editor =\\n    .aria-label = Highlight editor\\npdfjs-editor-ink-editor =\\n    .aria-label = Drawing editor\\npdfjs-editor-signature-editor1 =\\n    .aria-description = Signature editor: { $description }\\npdfjs-editor-stamp-editor =\\n    .aria-label = Image editor\\npdfjs-editor-remove-ink-button =\\n    .title = Remove drawing\\npdfjs-editor-remove-freetext-button =\\n    .title = Remove text\\npdfjs-editor-remove-stamp-button =\\n    .title = Remove image\\npdfjs-editor-remove-highlight-button =\\n    .title = Remove highlight\\npdfjs-editor-remove-signature-button =\\n    .title = Remove signature\\npdfjs-editor-free-text-color-input = Color\\npdfjs-editor-free-text-size-input = Size\\npdfjs-editor-ink-color-input = Color\\npdfjs-editor-ink-thickness-input = Thickness\\npdfjs-editor-ink-opacity-input = Opacity\\npdfjs-editor-stamp-add-image-button =\\n    .title = Add image\\npdfjs-editor-stamp-add-image-button-label = Add image\\npdfjs-editor-free-highlight-thickness-input = Thickness\\npdfjs-editor-free-highlight-thickness-title =\\n    .title = Change thickness when highlighting items other than text\\npdfjs-editor-add-signature-container =\\n    .aria-label = Signature controls and saved signatures\\npdfjs-editor-signature-add-signature-button =\\n    .title = Add new signature\\npdfjs-editor-signature-add-signature-button-label = Add new signature\\npdfjs-editor-add-saved-signature-button =\\n    .title = Saved signature: { $description }\\npdfjs-free-text2 =\\n    .aria-label = Text Editor\\n    .default-content = Start typing\\u2026\\npdfjs-editor-comments-sidebar-title =\\n    { $count ->\\n        [one] Comment\\n       *[other] Comments\\n    }\\npdfjs-editor-comments-sidebar-close-button =\\n    .title = Close the sidebar\\n    .aria-label = Close the sidebar\\npdfjs-editor-comments-sidebar-close-button-label = Close the sidebar\\npdfjs-editor-comments-sidebar-no-comments1 = See something noteworthy? Highlight it and leave a comment.\\npdfjs-editor-comments-sidebar-no-comments-link = Learn more\\npdfjs-editor-alt-text-button =\\n    .aria-label = Alt text\\npdfjs-editor-alt-text-button-label = Alt text\\npdfjs-editor-alt-text-edit-button =\\n    .aria-label = Edit alt text\\npdfjs-editor-alt-text-dialog-label = Choose an option\\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\\u2019t see the image or when it doesn\\u2019t load.\\npdfjs-editor-alt-text-add-description-label = Add a description\\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\\npdfjs-editor-alt-text-cancel-button = Cancel\\npdfjs-editor-alt-text-save-button = Save\\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\\npdfjs-editor-alt-text-textarea =\\n    .placeholder = For example, \\u201CA young man sits down at a table to eat a meal\\u201D\\npdfjs-editor-resizer-top-left =\\n    .aria-label = Top left corner \\u2014 resize\\npdfjs-editor-resizer-top-middle =\\n    .aria-label = Top middle \\u2014 resize\\npdfjs-editor-resizer-top-right =\\n    .aria-label = Top right corner \\u2014 resize\\npdfjs-editor-resizer-middle-right =\\n    .aria-label = Middle right \\u2014 resize\\npdfjs-editor-resizer-bottom-right =\\n    .aria-label = Bottom right corner \\u2014 resize\\npdfjs-editor-resizer-bottom-middle =\\n    .aria-label = Bottom middle \\u2014 resize\\npdfjs-editor-resizer-bottom-left =\\n    .aria-label = Bottom left corner \\u2014 resize\\npdfjs-editor-resizer-middle-left =\\n    .aria-label = Middle left \\u2014 resize\\npdfjs-editor-highlight-colorpicker-label = Highlight color\\npdfjs-editor-colorpicker-button =\\n    .title = Change color\\npdfjs-editor-colorpicker-dropdown =\\n    .aria-label = Color choices\\npdfjs-editor-colorpicker-yellow =\\n    .title = Yellow\\npdfjs-editor-colorpicker-green =\\n    .title = Green\\npdfjs-editor-colorpicker-blue =\\n    .title = Blue\\npdfjs-editor-colorpicker-pink =\\n    .title = Pink\\npdfjs-editor-colorpicker-red =\\n    .title = Red\\npdfjs-editor-highlight-show-all-button-label = Show all\\npdfjs-editor-highlight-show-all-button =\\n    .title = Show all\\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\\npdfjs-editor-new-alt-text-textarea =\\n    .placeholder = Write your description here\\u2026\\npdfjs-editor-new-alt-text-description = Short description for people who can\\u2019t see the image or when the image doesn\\u2019t load.\\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\\npdfjs-editor-new-alt-text-not-now-button = Not now\\npdfjs-editor-new-alt-text-error-title = Couldn\\u2019t create alt text automatically\\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\\npdfjs-editor-new-alt-text-error-close-button = Close\\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\\n    .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\\npdfjs-editor-new-alt-text-added-button =\\n    .aria-label = Alt text added\\npdfjs-editor-new-alt-text-added-button-label = Alt text added\\npdfjs-editor-new-alt-text-missing-button =\\n    .aria-label = Missing alt text\\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\\npdfjs-editor-new-alt-text-to-review-button =\\n    .aria-label = Review alt text\\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\\npdfjs-image-alt-text-settings-button =\\n    .title = Image alt text settings\\npdfjs-image-alt-text-settings-button-label = Image alt text settings\\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can\\u2019t see the image or when the image doesn\\u2019t load.\\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\\npdfjs-editor-alt-text-settings-delete-model-button = Delete\\npdfjs-editor-alt-text-settings-download-model-button = Download\\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading\\u2026\\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\\npdfjs-editor-alt-text-settings-close-button = Close\\npdfjs-editor-highlight-added-alert = Highlight added\\npdfjs-editor-freetext-added-alert = Text added\\npdfjs-editor-ink-added-alert = Drawing added\\npdfjs-editor-stamp-added-alert = Image added\\npdfjs-editor-signature-added-alert = Signature added\\npdfjs-editor-undo-bar-message-highlight = Highlight removed\\npdfjs-editor-undo-bar-message-freetext = Text removed\\npdfjs-editor-undo-bar-message-ink = Drawing removed\\npdfjs-editor-undo-bar-message-stamp = Image removed\\npdfjs-editor-undo-bar-message-signature = Signature removed\\npdfjs-editor-undo-bar-message-multiple =\\n    { $count ->\\n        [one] { $count } annotation removed\\n       *[other] { $count } annotations removed\\n    }\\npdfjs-editor-undo-bar-undo-button =\\n    .title = Undo\\npdfjs-editor-undo-bar-undo-button-label = Undo\\npdfjs-editor-undo-bar-close-button =\\n    .title = Close\\npdfjs-editor-undo-bar-close-button-label = Close\\npdfjs-editor-add-signature-dialog-label = This modal allows the user to create a signature to add to a PDF document. The user can edit the name (which also serves as the alt text), and optionally save the signature for repeated use.\\npdfjs-editor-add-signature-dialog-title = Add a signature\\npdfjs-editor-add-signature-type-button = Type\\n    .title = Type\\npdfjs-editor-add-signature-draw-button = Draw\\n    .title = Draw\\npdfjs-editor-add-signature-image-button = Image\\n    .title = Image\\npdfjs-editor-add-signature-type-input =\\n    .aria-label = Type your signature\\n    .placeholder = Type your signature\\npdfjs-editor-add-signature-draw-placeholder = Draw your signature\\npdfjs-editor-add-signature-draw-thickness-range-label = Thickness\\npdfjs-editor-add-signature-draw-thickness-range =\\n    .title = Drawing thickness: { $thickness }\\npdfjs-editor-add-signature-image-placeholder = Drag a file here to upload\\npdfjs-editor-add-signature-image-browse-link =\\n    { PLATFORM() ->\\n        [macos] Or choose image files\\n       *[other] Or browse image files\\n    }\\npdfjs-editor-add-signature-description-label = Description (alt text)\\npdfjs-editor-add-signature-description-input =\\n    .title = Description (alt text)\\npdfjs-editor-add-signature-description-default-when-drawing = Signature\\npdfjs-editor-add-signature-clear-button-label = Clear signature\\npdfjs-editor-add-signature-clear-button =\\n    .title = Clear signature\\npdfjs-editor-add-signature-save-checkbox = Save signature\\npdfjs-editor-add-signature-save-warning-message = You\\u2019ve reached the limit of 5 saved signatures. Remove one to save more.\\npdfjs-editor-add-signature-image-upload-error-title = Couldn\\u2019t upload image\\npdfjs-editor-add-signature-image-upload-error-description = Check your network connection or try another image.\\npdfjs-editor-add-signature-image-no-data-error-title = Can\\u2019t convert this image into a signature\\npdfjs-editor-add-signature-image-no-data-error-description = Please try uploading a different image.\\npdfjs-editor-add-signature-error-close-button = Close\\npdfjs-editor-add-signature-cancel-button = Cancel\\npdfjs-editor-add-signature-add-button = Add\\npdfjs-editor-delete-signature-button1 =\\n    .title = Remove saved signature\\npdfjs-editor-delete-signature-button-label1 = Remove saved signature\\npdfjs-editor-add-signature-edit-button-label = Edit description\\npdfjs-editor-edit-signature-dialog-title = Edit description\\npdfjs-editor-edit-signature-update-button = Update\\npdfjs-show-comment-button =\\n    .title = Show comment\\npdfjs-editor-edit-comment-popup-button-label = Edit comment\\npdfjs-editor-edit-comment-popup-button =\\n    .title = Edit comment\\npdfjs-editor-delete-comment-popup-button-label = Remove comment\\npdfjs-editor-delete-comment-popup-button =\\n    .title = Remove comment\\npdfjs-editor-edit-comment-dialog-title-when-editing = Edit comment\\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Update\\npdfjs-editor-edit-comment-dialog-title-when-adding = Add comment\\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Add\\npdfjs-editor-edit-comment-dialog-text-input =\\n    .placeholder = Start typing\\u2026\\npdfjs-editor-edit-comment-dialog-cancel-button = Cancel\\npdfjs-editor-add-comment-button =\\n    .title = Add comment\";\n    return createBundle(lang, text);\n  }\n}\n\n;// ./web/generic_scripting.js\n\nasync function docProperties(pdfDocument) {\n  const url = \"\",\n    baseUrl = \"\";\n  const {\n    info,\n    metadata,\n    contentDispositionFilename,\n    contentLength\n  } = await pdfDocument.getMetadata();\n  return {\n    ...info,\n    baseURL: baseUrl,\n    filesize: contentLength || (await pdfDocument.getDownloadInfo()).length,\n    filename: contentDispositionFilename || getPdfFilenameFromUrl(url),\n    metadata: metadata?.getRaw(),\n    authors: metadata?.get(\"dc:creator\"),\n    numPages: pdfDocument.numPages,\n    URL: url\n  };\n}\nclass GenericScripting {\n  constructor(sandboxBundleSrc) {\n    this._ready = new Promise((resolve, reject) => {\n      const sandbox = import(\n      /*webpackIgnore: true*/\n      /*@vite-ignore*/\n      sandboxBundleSrc);\n      sandbox.then(pdfjsSandbox => {\n        resolve(pdfjsSandbox.QuickJSSandbox());\n      }).catch(reject);\n    });\n  }\n  async createSandbox(data) {\n    const sandbox = await this._ready;\n    sandbox.create(data);\n  }\n  async dispatchEventInSandbox(event) {\n    const sandbox = await this._ready;\n    setTimeout(() => sandbox.dispatchEvent(event), 0);\n  }\n  async destroySandbox() {\n    const sandbox = await this._ready;\n    sandbox.nukeSandbox();\n  }\n}\n\n;// ./web/generic_signature_storage.js\n\nconst KEY_STORAGE = \"pdfjs.signature\";\nclass SignatureStorage {\n  #eventBus;\n  #signatures = null;\n  #signal = null;\n  constructor(eventBus, signal) {\n    this.#eventBus = eventBus;\n    this.#signal = signal;\n  }\n  #save() {\n    localStorage.setItem(KEY_STORAGE, JSON.stringify(Object.fromEntries(this.#signatures)));\n  }\n  async getAll() {\n    if (this.#signal) {\n      window.addEventListener(\"storage\", ({\n        key\n      }) => {\n        if (key === KEY_STORAGE) {\n          this.#signatures = null;\n          this.#eventBus?.dispatch(\"storedsignatureschanged\", {\n            source: this\n          });\n        }\n      }, {\n        signal: this.#signal\n      });\n      this.#signal = null;\n    }\n    if (!this.#signatures) {\n      this.#signatures = new Map();\n      const data = localStorage.getItem(KEY_STORAGE);\n      if (data) {\n        for (const [key, value] of Object.entries(JSON.parse(data))) {\n          this.#signatures.set(key, value);\n        }\n      }\n    }\n    return this.#signatures;\n  }\n  async isFull() {\n    return (await this.size()) === 5;\n  }\n  async size() {\n    return (await this.getAll()).size;\n  }\n  async create(data) {\n    if (await this.isFull()) {\n      return null;\n    }\n    const uuid = getUuid();\n    this.#signatures.set(uuid, data);\n    this.#save();\n    return uuid;\n  }\n  async delete(uuid) {\n    const signatures = await this.getAll();\n    if (!signatures.has(uuid)) {\n      return false;\n    }\n    signatures.delete(uuid);\n    this.#save();\n    return true;\n  }\n}\n\n;// ./web/genericcom.js\n\n\n\n\n\n\nfunction initCom(app) {}\nclass Preferences extends BasePreferences {\n  async _writeToStorage(prefObj) {\n    // localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));\n  }\n  async _readFromStorage(prefObj) {\n    return {\n      prefs: undefined // JSON.parse(localStorage.getItem(\"pdfjs.preferences\"))\n    };\n  }\n}\nclass ExternalServices extends BaseExternalServices {\n  async createL10n() {\n    return new genericl10n_GenericL10n(AppOptions.get(\"localeProperties\")?.lang);\n  }\n  createScripting() {\n    return new GenericScripting(AppOptions.get(\"sandboxBundleSrc\"));\n  }\n  createSignatureStorage(eventBus, signal) {\n    return new SignatureStorage(eventBus, signal);\n  }\n}\nclass MLManager {\n  async isEnabledFor(_name) {\n    return false;\n  }\n  async deleteModel(_service) {\n    return null;\n  }\n  isReady(_name) {\n    return false;\n  }\n  guess(_data) {}\n  toggleService(_name, _enabled) {}\n}\n\n;// ./web/new_alt_text_manager.js\n\nclass NewAltTextManager {\n  #boundCancel = this.#cancel.bind(this);\n  #createAutomaticallyButton;\n  #currentEditor = null;\n  #cancelButton;\n  #descriptionContainer;\n  #dialog;\n  #disclaimer;\n  #downloadModel;\n  #downloadModelDescription;\n  #eventBus;\n  #firstTime = false;\n  #guessedAltText;\n  #hasAI = null;\n  #isEditing = null;\n  #imagePreview;\n  #imageData;\n  #isAILoading = false;\n  #wasAILoading = false;\n  #learnMore;\n  #notNowButton;\n  #overlayManager;\n  #textarea;\n  #title;\n  #uiManager;\n  #previousAltText = null;\n  constructor({\n    descriptionContainer,\n    dialog,\n    imagePreview,\n    cancelButton,\n    disclaimer,\n    notNowButton,\n    saveButton,\n    textarea,\n    learnMore,\n    errorCloseButton,\n    createAutomaticallyButton,\n    downloadModel,\n    downloadModelDescription,\n    title\n  }, overlayManager, eventBus) {\n    this.#cancelButton = cancelButton;\n    this.#createAutomaticallyButton = createAutomaticallyButton;\n    this.#descriptionContainer = descriptionContainer;\n    this.#dialog = dialog;\n    this.#disclaimer = disclaimer;\n    this.#notNowButton = notNowButton;\n    this.#imagePreview = imagePreview;\n    this.#textarea = textarea;\n    this.#learnMore = learnMore;\n    this.#title = title;\n    this.#downloadModel = downloadModel;\n    this.#downloadModelDescription = downloadModelDescription;\n    this.#overlayManager = overlayManager;\n    this.#eventBus = eventBus;\n    dialog.addEventListener(\"close\", this.#close.bind(this));\n    dialog.addEventListener(\"contextmenu\", event => {\n      if (event.target !== this.#textarea) {\n        event.preventDefault();\n      }\n    });\n    cancelButton.addEventListener(\"click\", this.#boundCancel);\n    notNowButton.addEventListener(\"click\", this.#boundCancel);\n    saveButton.addEventListener(\"click\", this.#save.bind(this));\n    errorCloseButton.addEventListener(\"click\", () => {\n      this.#toggleError(false);\n    });\n    createAutomaticallyButton.addEventListener(\"click\", async () => {\n      const checked = createAutomaticallyButton.getAttribute(\"aria-pressed\") !== \"true\";\n      this.#currentEditor._reportTelemetry({\n        action: \"pdfjs.image.alt_text.ai_generation_check\",\n        data: {\n          status: checked\n        }\n      });\n      if (this.#uiManager) {\n        this.#uiManager.setPreference(\"enableGuessAltText\", checked);\n        await this.#uiManager.mlManager.toggleService(\"altText\", checked);\n      }\n      this.#toggleGuessAltText(checked, false);\n    });\n    textarea.addEventListener(\"focus\", () => {\n      this.#wasAILoading = this.#isAILoading;\n      this.#toggleLoading(false);\n      this.#toggleTitleAndDisclaimer();\n    });\n    textarea.addEventListener(\"blur\", () => {\n      if (!textarea.value) {\n        this.#toggleLoading(this.#wasAILoading);\n      }\n      this.#toggleTitleAndDisclaimer();\n    });\n    textarea.addEventListener(\"input\", () => {\n      this.#toggleTitleAndDisclaimer();\n    });\n    eventBus._on(\"enableguessalttext\", ({\n      value\n    }) => {\n      this.#toggleGuessAltText(value, false);\n    });\n    this.#overlayManager.register(dialog);\n    this.#learnMore.addEventListener(\"click\", () => {\n      this.#currentEditor._reportTelemetry({\n        action: \"pdfjs.image.alt_text.info\",\n        data: {\n          topic: \"alt_text\"\n        }\n      });\n    });\n  }\n  #toggleLoading(value) {\n    if (!this.#uiManager || this.#isAILoading === value) {\n      return;\n    }\n    this.#isAILoading = value;\n    this.#descriptionContainer.classList.toggle(\"loading\", value);\n  }\n  #toggleError(value) {\n    if (!this.#uiManager) {\n      return;\n    }\n    this.#dialog.classList.toggle(\"error\", value);\n  }\n  async #toggleGuessAltText(value, isInitial = false) {\n    if (!this.#uiManager) {\n      return;\n    }\n    this.#dialog.classList.toggle(\"aiDisabled\", !value);\n    this.#createAutomaticallyButton.setAttribute(\"aria-pressed\", value);\n    if (value) {\n      const {\n        altTextLearnMoreUrl\n      } = this.#uiManager.mlManager;\n      if (altTextLearnMoreUrl) {\n        this.#learnMore.href = altTextLearnMoreUrl;\n      }\n      this.#mlGuessAltText(isInitial);\n    } else {\n      this.#toggleLoading(false);\n      this.#isAILoading = false;\n      this.#toggleTitleAndDisclaimer();\n    }\n  }\n  #toggleNotNow() {\n    this.#notNowButton.classList.toggle(\"hidden\", !this.#firstTime);\n    this.#cancelButton.classList.toggle(\"hidden\", this.#firstTime);\n  }\n  #toggleAI(value) {\n    if (!this.#uiManager || this.#hasAI === value) {\n      return;\n    }\n    this.#hasAI = value;\n    this.#dialog.classList.toggle(\"noAi\", !value);\n    this.#toggleTitleAndDisclaimer();\n  }\n  #toggleTitleAndDisclaimer() {\n    const visible = this.#isAILoading || this.#guessedAltText && this.#guessedAltText === this.#textarea.value;\n    this.#disclaimer.hidden = !visible;\n    const isEditing = this.#isAILoading || !!this.#textarea.value;\n    if (this.#isEditing === isEditing) {\n      return;\n    }\n    this.#isEditing = isEditing;\n    this.#title.setAttribute(\"data-l10n-id\", isEditing ? \"pdfjs-editor-new-alt-text-dialog-edit-label\" : \"pdfjs-editor-new-alt-text-dialog-add-label\");\n  }\n  async #mlGuessAltText(isInitial) {\n    if (this.#isAILoading) {\n      return;\n    }\n    if (this.#textarea.value) {\n      return;\n    }\n    if (isInitial && this.#previousAltText !== null) {\n      return;\n    }\n    this.#guessedAltText = this.#currentEditor.guessedAltText;\n    if (this.#previousAltText === null && this.#guessedAltText) {\n      this.#addAltText(this.#guessedAltText);\n      return;\n    }\n    this.#toggleLoading(true);\n    this.#toggleTitleAndDisclaimer();\n    let hasError = false;\n    try {\n      const altText = await this.#currentEditor.mlGuessAltText(this.#imageData, false);\n      if (altText) {\n        this.#guessedAltText = altText;\n        this.#wasAILoading = this.#isAILoading;\n        if (this.#isAILoading) {\n          this.#addAltText(altText);\n        }\n      }\n    } catch (e) {\n      console.error(e);\n      hasError = true;\n    }\n    this.#toggleLoading(false);\n    this.#toggleTitleAndDisclaimer();\n    if (hasError && this.#uiManager) {\n      this.#toggleError(true);\n    }\n  }\n  #addAltText(altText) {\n    if (!this.#uiManager || this.#textarea.value) {\n      return;\n    }\n    this.#textarea.value = altText;\n    this.#toggleTitleAndDisclaimer();\n  }\n  #setProgress() {\n    this.#downloadModel.classList.toggle(\"hidden\", false);\n    const callback = async ({\n      detail: {\n        finished,\n        total,\n        totalLoaded\n      }\n    }) => {\n      const ONE_MEGA_BYTES = 1e6;\n      totalLoaded = Math.min(0.99 * total, totalLoaded);\n      const totalSize = this.#downloadModelDescription.ariaValueMax = Math.round(total / ONE_MEGA_BYTES);\n      const downloadedSize = this.#downloadModelDescription.ariaValueNow = Math.round(totalLoaded / ONE_MEGA_BYTES);\n      this.#downloadModelDescription.setAttribute(\"data-l10n-args\", JSON.stringify({\n        totalSize,\n        downloadedSize\n      }));\n      if (!finished) {\n        return;\n      }\n      this.#eventBus._off(\"loadaiengineprogress\", callback);\n      this.#downloadModel.classList.toggle(\"hidden\", true);\n      this.#toggleAI(true);\n      if (!this.#uiManager) {\n        return;\n      }\n      const {\n        mlManager\n      } = this.#uiManager;\n      mlManager.toggleService(\"altText\", true);\n      this.#toggleGuessAltText(await mlManager.isEnabledFor(\"altText\"), true);\n    };\n    this.#eventBus._on(\"loadaiengineprogress\", callback);\n  }\n  async editAltText(uiManager, editor, firstTime) {\n    if (this.#currentEditor || !editor) {\n      return;\n    }\n    if (firstTime && editor.hasAltTextData()) {\n      editor.altTextFinish();\n      return;\n    }\n    this.#firstTime = firstTime;\n    let {\n      mlManager\n    } = uiManager;\n    let hasAI = !!mlManager;\n    this.#toggleTitleAndDisclaimer();\n    if (mlManager && !mlManager.isReady(\"altText\")) {\n      hasAI = false;\n      if (mlManager.hasProgress) {\n        this.#setProgress();\n      } else {\n        mlManager = null;\n      }\n    } else {\n      this.#downloadModel.classList.toggle(\"hidden\", true);\n    }\n    const isAltTextEnabledPromise = mlManager?.isEnabledFor(\"altText\");\n    this.#currentEditor = editor;\n    this.#uiManager = uiManager;\n    this.#uiManager.removeEditListeners();\n    ({\n      altText: this.#previousAltText\n    } = editor.altTextData);\n    this.#textarea.value = this.#previousAltText ?? \"\";\n    const AI_MAX_IMAGE_DIMENSION = 224;\n    const MAX_PREVIEW_DIMENSION = 180;\n    let canvas, width, height;\n    if (mlManager) {\n      ({\n        canvas,\n        width,\n        height,\n        imageData: this.#imageData\n      } = editor.copyCanvas(AI_MAX_IMAGE_DIMENSION, MAX_PREVIEW_DIMENSION, true));\n      if (hasAI) {\n        this.#toggleGuessAltText(await isAltTextEnabledPromise, true);\n      }\n    } else {\n      ({\n        canvas,\n        width,\n        height\n      } = editor.copyCanvas(AI_MAX_IMAGE_DIMENSION, MAX_PREVIEW_DIMENSION, false));\n    }\n    canvas.setAttribute(\"role\", \"presentation\");\n    const {\n      style\n    } = canvas;\n    style.width = `${width}px`;\n    style.height = `${height}px`;\n    this.#imagePreview.append(canvas);\n    this.#toggleNotNow();\n    this.#toggleAI(hasAI);\n    this.#toggleError(false);\n    try {\n      await this.#overlayManager.open(this.#dialog);\n    } catch (ex) {\n      this.#close();\n      throw ex;\n    }\n  }\n  #cancel() {\n    this.#currentEditor.altTextData = {\n      cancel: true\n    };\n    const altText = this.#textarea.value.trim();\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.image.alt_text.dismiss\",\n      data: {\n        alt_text_type: altText ? \"present\" : \"empty\",\n        flow: this.#firstTime ? \"image_add\" : \"alt_text_edit\"\n      }\n    });\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.image.image_added\",\n      data: {\n        alt_text_modal: true,\n        alt_text_type: \"skipped\"\n      }\n    });\n    this.#finish();\n  }\n  #finish() {\n    this.#overlayManager.closeIfActive(this.#dialog);\n  }\n  #close() {\n    const canvas = this.#imagePreview.firstChild;\n    canvas.remove();\n    canvas.width = canvas.height = 0;\n    this.#imageData = null;\n    this.#toggleLoading(false);\n    this.#uiManager?.addEditListeners();\n    this.#currentEditor.altTextFinish();\n    this.#uiManager?.setSelected(this.#currentEditor);\n    this.#currentEditor = null;\n    this.#uiManager = null;\n  }\n  #extractWords(text) {\n    return new Set(text.toLowerCase().split(/[^\\p{L}\\p{N}]+/gu).filter(x => !!x));\n  }\n  #save() {\n    const altText = this.#textarea.value.trim();\n    this.#currentEditor.altTextData = {\n      altText,\n      decorative: false\n    };\n    this.#currentEditor.altTextData.guessedAltText = this.#guessedAltText;\n    if (this.#guessedAltText && this.#guessedAltText !== altText) {\n      const guessedWords = this.#extractWords(this.#guessedAltText);\n      const words = this.#extractWords(altText);\n      this.#currentEditor._reportTelemetry({\n        action: \"pdfjs.image.alt_text.user_edit\",\n        data: {\n          total_words: guessedWords.size,\n          words_removed: guessedWords.difference(words).size,\n          words_added: words.difference(guessedWords).size\n        }\n      });\n    }\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.image.image_added\",\n      data: {\n        alt_text_modal: true,\n        alt_text_type: altText ? \"present\" : \"empty\"\n      }\n    });\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.image.alt_text.save\",\n      data: {\n        alt_text_type: altText ? \"present\" : \"empty\",\n        flow: this.#firstTime ? \"image_add\" : \"alt_text_edit\"\n      }\n    });\n    this.#finish();\n  }\n  destroy() {\n    this.#uiManager = null;\n    this.#finish();\n  }\n}\nclass ImageAltTextSettings {\n  #aiModelSettings;\n  #createModelButton;\n  #downloadModelButton;\n  #dialog;\n  #eventBus;\n  #mlManager;\n  #overlayManager;\n  #showAltTextDialogButton;\n  constructor({\n    dialog,\n    createModelButton,\n    aiModelSettings,\n    learnMore,\n    closeButton,\n    deleteModelButton,\n    downloadModelButton,\n    showAltTextDialogButton\n  }, overlayManager, eventBus, mlManager) {\n    this.#dialog = dialog;\n    this.#aiModelSettings = aiModelSettings;\n    this.#createModelButton = createModelButton;\n    this.#downloadModelButton = downloadModelButton;\n    this.#showAltTextDialogButton = showAltTextDialogButton;\n    this.#overlayManager = overlayManager;\n    this.#eventBus = eventBus;\n    this.#mlManager = mlManager;\n    const {\n      altTextLearnMoreUrl\n    } = mlManager;\n    if (altTextLearnMoreUrl) {\n      learnMore.href = altTextLearnMoreUrl;\n    }\n    dialog.addEventListener(\"contextmenu\", noContextMenu);\n    createModelButton.addEventListener(\"click\", async e => {\n      const checked = this.#togglePref(\"enableGuessAltText\", e);\n      await mlManager.toggleService(\"altText\", checked);\n      this.#reportTelemetry({\n        type: \"stamp\",\n        action: \"pdfjs.image.alt_text.settings_ai_generation_check\",\n        data: {\n          status: checked\n        }\n      });\n    });\n    showAltTextDialogButton.addEventListener(\"click\", e => {\n      const checked = this.#togglePref(\"enableNewAltTextWhenAddingImage\", e);\n      this.#reportTelemetry({\n        type: \"stamp\",\n        action: \"pdfjs.image.alt_text.settings_edit_alt_text_check\",\n        data: {\n          status: checked\n        }\n      });\n    });\n    deleteModelButton.addEventListener(\"click\", this.#delete.bind(this, true));\n    downloadModelButton.addEventListener(\"click\", this.#download.bind(this, true));\n    closeButton.addEventListener(\"click\", this.#finish.bind(this));\n    learnMore.addEventListener(\"click\", () => {\n      this.#reportTelemetry({\n        type: \"stamp\",\n        action: \"pdfjs.image.alt_text.info\",\n        data: {\n          topic: \"ai_generation\"\n        }\n      });\n    });\n    eventBus._on(\"enablealttextmodeldownload\", ({\n      value\n    }) => {\n      if (value) {\n        this.#download(false);\n      } else {\n        this.#delete(false);\n      }\n    });\n    this.#overlayManager.register(dialog);\n  }\n  #reportTelemetry(data) {\n    this.#eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"editing\",\n        data\n      }\n    });\n  }\n  async #download(isFromUI = false) {\n    if (isFromUI) {\n      this.#downloadModelButton.disabled = true;\n      const span = this.#downloadModelButton.firstChild;\n      span.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-settings-downloading-model-button\");\n      await this.#mlManager.downloadModel(\"altText\");\n      span.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-settings-download-model-button\");\n      this.#createModelButton.disabled = false;\n      this.#setPref(\"enableGuessAltText\", true);\n      this.#mlManager.toggleService(\"altText\", true);\n      this.#setPref(\"enableAltTextModelDownload\", true);\n      this.#downloadModelButton.disabled = false;\n    }\n    this.#aiModelSettings.classList.toggle(\"download\", false);\n    this.#createModelButton.setAttribute(\"aria-pressed\", true);\n  }\n  async #delete(isFromUI = false) {\n    if (isFromUI) {\n      await this.#mlManager.deleteModel(\"altText\");\n      this.#setPref(\"enableGuessAltText\", false);\n      this.#setPref(\"enableAltTextModelDownload\", false);\n    }\n    this.#aiModelSettings.classList.toggle(\"download\", true);\n    this.#createModelButton.disabled = true;\n    this.#createModelButton.setAttribute(\"aria-pressed\", false);\n  }\n  async open({\n    enableGuessAltText,\n    enableNewAltTextWhenAddingImage\n  }) {\n    const {\n      enableAltTextModelDownload\n    } = this.#mlManager;\n    this.#createModelButton.disabled = !enableAltTextModelDownload;\n    this.#createModelButton.setAttribute(\"aria-pressed\", enableAltTextModelDownload && enableGuessAltText);\n    this.#showAltTextDialogButton.setAttribute(\"aria-pressed\", enableNewAltTextWhenAddingImage);\n    this.#aiModelSettings.classList.toggle(\"download\", !enableAltTextModelDownload);\n    await this.#overlayManager.open(this.#dialog);\n    this.#reportTelemetry({\n      type: \"stamp\",\n      action: \"pdfjs.image.alt_text.settings_displayed\"\n    });\n  }\n  #togglePref(name, {\n    target\n  }) {\n    const checked = target.getAttribute(\"aria-pressed\") !== \"true\";\n    this.#setPref(name, checked);\n    target.setAttribute(\"aria-pressed\", checked);\n    return checked;\n  }\n  #setPref(name, value) {\n    this.#eventBus.dispatch(\"setpreference\", {\n      source: this,\n      name,\n      value\n    });\n  }\n  #finish() {\n    this.#overlayManager.closeIfActive(this.#dialog);\n  }\n}\n\n;// ./web/alt_text_manager.js\n\nclass AltTextManager {\n  #clickAC = null;\n  #currentEditor = null;\n  #cancelButton;\n  #dialog;\n  #eventBus;\n  #hasUsedPointer = false;\n  #optionDescription;\n  #optionDecorative;\n  #overlayManager;\n  #saveButton;\n  #textarea;\n  #uiManager;\n  #previousAltText = null;\n  #resizeAC = null;\n  #svgElement = null;\n  #rectElement = null;\n  #container;\n  #telemetryData = null;\n  constructor({\n    dialog,\n    optionDescription,\n    optionDecorative,\n    textarea,\n    cancelButton,\n    saveButton\n  }, container, overlayManager, eventBus) {\n    this.#dialog = dialog;\n    this.#optionDescription = optionDescription;\n    this.#optionDecorative = optionDecorative;\n    this.#textarea = textarea;\n    this.#cancelButton = cancelButton;\n    this.#saveButton = saveButton;\n    this.#overlayManager = overlayManager;\n    this.#eventBus = eventBus;\n    this.#container = container;\n    const onUpdateUIState = this.#updateUIState.bind(this);\n    dialog.addEventListener(\"close\", this.#close.bind(this));\n    dialog.addEventListener(\"contextmenu\", event => {\n      if (event.target !== this.#textarea) {\n        event.preventDefault();\n      }\n    });\n    cancelButton.addEventListener(\"click\", this.#finish.bind(this));\n    saveButton.addEventListener(\"click\", this.#save.bind(this));\n    optionDescription.addEventListener(\"change\", onUpdateUIState);\n    optionDecorative.addEventListener(\"change\", onUpdateUIState);\n    this.#overlayManager.register(dialog);\n  }\n  #createSVGElement() {\n    if (this.#svgElement) {\n      return;\n    }\n    const svgFactory = new DOMSVGFactory();\n    const svg = this.#svgElement = svgFactory.createElement(\"svg\");\n    svg.setAttribute(\"width\", \"0\");\n    svg.setAttribute(\"height\", \"0\");\n    const defs = svgFactory.createElement(\"defs\");\n    svg.append(defs);\n    const mask = svgFactory.createElement(\"mask\");\n    defs.append(mask);\n    mask.setAttribute(\"id\", \"alttext-manager-mask\");\n    mask.setAttribute(\"maskContentUnits\", \"objectBoundingBox\");\n    let rect = svgFactory.createElement(\"rect\");\n    mask.append(rect);\n    rect.setAttribute(\"fill\", \"white\");\n    rect.setAttribute(\"width\", \"1\");\n    rect.setAttribute(\"height\", \"1\");\n    rect.setAttribute(\"x\", \"0\");\n    rect.setAttribute(\"y\", \"0\");\n    rect = this.#rectElement = svgFactory.createElement(\"rect\");\n    mask.append(rect);\n    rect.setAttribute(\"fill\", \"black\");\n    this.#dialog.append(svg);\n  }\n  async editAltText(uiManager, editor) {\n    if (this.#currentEditor || !editor) {\n      return;\n    }\n    this.#createSVGElement();\n    this.#hasUsedPointer = false;\n    this.#clickAC = new AbortController();\n    const clickOpts = {\n        signal: this.#clickAC.signal\n      },\n      onClick = this.#onClick.bind(this);\n    for (const element of [this.#optionDescription, this.#optionDecorative, this.#textarea, this.#saveButton, this.#cancelButton]) {\n      element.addEventListener(\"click\", onClick, clickOpts);\n    }\n    const {\n      altText,\n      decorative\n    } = editor.altTextData;\n    if (decorative === true) {\n      this.#optionDecorative.checked = true;\n      this.#optionDescription.checked = false;\n    } else {\n      this.#optionDecorative.checked = false;\n      this.#optionDescription.checked = true;\n    }\n    this.#previousAltText = this.#textarea.value = altText?.trim() || \"\";\n    this.#updateUIState();\n    this.#currentEditor = editor;\n    this.#uiManager = uiManager;\n    this.#uiManager.removeEditListeners();\n    this.#resizeAC = new AbortController();\n    this.#eventBus._on(\"resize\", this.#setPosition.bind(this), {\n      signal: this.#resizeAC.signal\n    });\n    try {\n      await this.#overlayManager.open(this.#dialog);\n      this.#setPosition();\n    } catch (ex) {\n      this.#close();\n      throw ex;\n    }\n  }\n  #setPosition() {\n    if (!this.#currentEditor) {\n      return;\n    }\n    const dialog = this.#dialog;\n    const {\n      style\n    } = dialog;\n    const {\n      x: containerX,\n      y: containerY,\n      width: containerW,\n      height: containerH\n    } = this.#container.getBoundingClientRect();\n    const {\n      innerWidth: windowW,\n      innerHeight: windowH\n    } = window;\n    const {\n      width: dialogW,\n      height: dialogH\n    } = dialog.getBoundingClientRect();\n    const {\n      x,\n      y,\n      width,\n      height\n    } = this.#currentEditor.getClientDimensions();\n    const MARGIN = 10;\n    const isLTR = this.#uiManager.direction === \"ltr\";\n    const xs = Math.max(x, containerX);\n    const xe = Math.min(x + width, containerX + containerW);\n    const ys = Math.max(y, containerY);\n    const ye = Math.min(y + height, containerY + containerH);\n    this.#rectElement.setAttribute(\"width\", `${(xe - xs) / windowW}`);\n    this.#rectElement.setAttribute(\"height\", `${(ye - ys) / windowH}`);\n    this.#rectElement.setAttribute(\"x\", `${xs / windowW}`);\n    this.#rectElement.setAttribute(\"y\", `${ys / windowH}`);\n    let left = null;\n    let top = Math.max(y, 0);\n    top += Math.min(windowH - (top + dialogH), 0);\n    if (isLTR) {\n      if (x + width + MARGIN + dialogW < windowW) {\n        left = x + width + MARGIN;\n      } else if (x > dialogW + MARGIN) {\n        left = x - dialogW - MARGIN;\n      }\n    } else if (x > dialogW + MARGIN) {\n      left = x - dialogW - MARGIN;\n    } else if (x + width + MARGIN + dialogW < windowW) {\n      left = x + width + MARGIN;\n    }\n    if (left === null) {\n      top = null;\n      left = Math.max(x, 0);\n      left += Math.min(windowW - (left + dialogW), 0);\n      if (y > dialogH + MARGIN) {\n        top = y - dialogH - MARGIN;\n      } else if (y + height + MARGIN + dialogH < windowH) {\n        top = y + height + MARGIN;\n      }\n    }\n    if (top !== null) {\n      dialog.classList.add(\"positioned\");\n      if (isLTR) {\n        style.left = `${left}px`;\n      } else {\n        style.right = `${windowW - left - dialogW}px`;\n      }\n      style.top = `${top}px`;\n    } else {\n      dialog.classList.remove(\"positioned\");\n      style.left = \"\";\n      style.top = \"\";\n    }\n  }\n  #finish() {\n    this.#overlayManager.closeIfActive(this.#dialog);\n  }\n  #close() {\n    this.#currentEditor._reportTelemetry(this.#telemetryData || {\n      action: \"alt_text_cancel\",\n      alt_text_keyboard: !this.#hasUsedPointer\n    });\n    this.#telemetryData = null;\n    this.#removeOnClickListeners();\n    this.#uiManager?.addEditListeners();\n    this.#resizeAC?.abort();\n    this.#resizeAC = null;\n    this.#currentEditor.altTextFinish();\n    this.#currentEditor = null;\n    this.#uiManager = null;\n  }\n  #updateUIState() {\n    this.#textarea.disabled = this.#optionDecorative.checked;\n  }\n  #save() {\n    const altText = this.#textarea.value.trim();\n    const decorative = this.#optionDecorative.checked;\n    this.#currentEditor.altTextData = {\n      altText,\n      decorative\n    };\n    this.#telemetryData = {\n      action: \"alt_text_save\",\n      alt_text_description: !!altText,\n      alt_text_edit: !!this.#previousAltText && this.#previousAltText !== altText,\n      alt_text_decorative: decorative,\n      alt_text_keyboard: !this.#hasUsedPointer\n    };\n    this.#finish();\n  }\n  #onClick(evt) {\n    if (evt.detail === 0) {\n      return;\n    }\n    this.#hasUsedPointer = true;\n    this.#removeOnClickListeners();\n  }\n  #removeOnClickListeners() {\n    this.#clickAC?.abort();\n    this.#clickAC = null;\n  }\n  destroy() {\n    this.#uiManager = null;\n    this.#finish();\n    this.#svgElement?.remove();\n    this.#svgElement = this.#rectElement = null;\n  }\n}\n\n;// ./web/annotation_editor_params.js\n\nclass AnnotationEditorParams {\n  constructor(options, eventBus) {\n    this.eventBus = eventBus;\n    this.#bindListeners(options);\n  }\n  #bindListeners({\n    editorFreeTextFontSize,\n    editorFreeTextColor,\n    editorInkColor,\n    editorInkThickness,\n    editorInkOpacity,\n    editorStampAddImage,\n    editorFreeHighlightThickness,\n    editorHighlightShowAll,\n    editorSignatureAddSignature\n  }) {\n    const {\n      eventBus\n    } = this;\n    const dispatchEvent = (typeStr, value) => {\n      eventBus.dispatch(\"switchannotationeditorparams\", {\n        source: this,\n        type: AnnotationEditorParamsType[typeStr],\n        value\n      });\n    };\n    editorFreeTextFontSize.addEventListener(\"input\", function () {\n      dispatchEvent(\"FREETEXT_SIZE\", this.valueAsNumber);\n    });\n    editorFreeTextColor.addEventListener(\"input\", function () {\n      dispatchEvent(\"FREETEXT_COLOR\", this.value);\n    });\n    editorInkColor.addEventListener(\"input\", function () {\n      dispatchEvent(\"INK_COLOR\", this.value);\n    });\n    editorInkThickness.addEventListener(\"input\", function () {\n      dispatchEvent(\"INK_THICKNESS\", this.valueAsNumber);\n    });\n    editorInkOpacity.addEventListener(\"input\", function () {\n      dispatchEvent(\"INK_OPACITY\", this.valueAsNumber);\n    });\n    editorStampAddImage.addEventListener(\"click\", () => {\n      eventBus.dispatch(\"reporttelemetry\", {\n        source: this,\n        details: {\n          type: \"editing\",\n          data: {\n            action: \"pdfjs.image.add_image_click\"\n          }\n        }\n      });\n      dispatchEvent(\"CREATE\");\n    });\n    editorFreeHighlightThickness.addEventListener(\"input\", function () {\n      dispatchEvent(\"HIGHLIGHT_THICKNESS\", this.valueAsNumber);\n    });\n    editorHighlightShowAll.addEventListener(\"click\", function () {\n      const checked = this.getAttribute(\"aria-pressed\") === \"true\";\n      this.setAttribute(\"aria-pressed\", !checked);\n      dispatchEvent(\"HIGHLIGHT_SHOW_ALL\", !checked);\n    });\n    editorSignatureAddSignature.addEventListener(\"click\", () => {\n      dispatchEvent(\"CREATE\");\n    });\n    eventBus._on(\"annotationeditorparamschanged\", evt => {\n      for (const [type, value] of evt.details) {\n        switch (type) {\n          case AnnotationEditorParamsType.FREETEXT_SIZE:\n            editorFreeTextFontSize.value = value;\n            break;\n          case AnnotationEditorParamsType.FREETEXT_COLOR:\n            editorFreeTextColor.value = value;\n            break;\n          case AnnotationEditorParamsType.INK_COLOR:\n            editorInkColor.value = value;\n            break;\n          case AnnotationEditorParamsType.INK_THICKNESS:\n            editorInkThickness.value = value;\n            break;\n          case AnnotationEditorParamsType.INK_OPACITY:\n            editorInkOpacity.value = value;\n            break;\n          case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n            eventBus.dispatch(\"mainhighlightcolorpickerupdatecolor\", {\n              source: this,\n              value\n            });\n            break;\n          case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n            editorFreeHighlightThickness.value = value;\n            break;\n          case AnnotationEditorParamsType.HIGHLIGHT_FREE:\n            editorFreeHighlightThickness.disabled = !value;\n            break;\n          case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n            editorHighlightShowAll.setAttribute(\"aria-pressed\", value);\n            break;\n        }\n      }\n    });\n  }\n}\n\n;// ./web/caret_browsing.js\nconst PRECISION = 1e-1;\nclass CaretBrowsingMode {\n  #mainContainer;\n  #toolBarHeight = 0;\n  #viewerContainer;\n  constructor(abortSignal, mainContainer, viewerContainer, toolbarContainer) {\n    this.#mainContainer = mainContainer;\n    this.#viewerContainer = viewerContainer;\n    if (!toolbarContainer) {\n      return;\n    }\n    this.#toolBarHeight = toolbarContainer.getBoundingClientRect().height;\n    const toolbarObserver = new ResizeObserver(entries => {\n      for (const entry of entries) {\n        if (entry.target === toolbarContainer) {\n          this.#toolBarHeight = Math.floor(entry.borderBoxSize[0].blockSize);\n          break;\n        }\n      }\n    });\n    toolbarObserver.observe(toolbarContainer);\n    abortSignal.addEventListener(\"abort\", () => toolbarObserver.disconnect(), {\n      once: true\n    });\n  }\n  #isOnSameLine(rect1, rect2) {\n    const top1 = rect1.y;\n    const bot1 = rect1.bottom;\n    const mid1 = rect1.y + rect1.height / 2;\n    const top2 = rect2.y;\n    const bot2 = rect2.bottom;\n    const mid2 = rect2.y + rect2.height / 2;\n    return top1 <= mid2 && mid2 <= bot1 || top2 <= mid1 && mid1 <= bot2;\n  }\n  #isUnderOver(rect, x, y, isUp) {\n    const midY = rect.y + rect.height / 2;\n    return (isUp ? y >= midY : y <= midY) && rect.x - PRECISION <= x && x <= rect.right + PRECISION;\n  }\n  #isVisible(rect) {\n    return rect.top >= this.#toolBarHeight && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n  }\n  #getCaretPosition(selection, isUp) {\n    const {\n      focusNode,\n      focusOffset\n    } = selection;\n    const range = document.createRange();\n    range.setStart(focusNode, focusOffset);\n    range.setEnd(focusNode, focusOffset);\n    const rect = range.getBoundingClientRect();\n    return [rect.x, isUp ? rect.top : rect.bottom];\n  }\n  static #caretPositionFromPoint(x, y) {\n    if (!document.caretPositionFromPoint) {\n      const {\n        startContainer: offsetNode,\n        startOffset: offset\n      } = document.caretRangeFromPoint(x, y);\n      return {\n        offsetNode,\n        offset\n      };\n    }\n    return document.caretPositionFromPoint(x, y);\n  }\n  #setCaretPositionHelper(selection, caretX, select, element, rect) {\n    rect ||= element.getBoundingClientRect();\n    if (caretX <= rect.x + PRECISION) {\n      if (select) {\n        selection.extend(element.firstChild, 0);\n      } else {\n        selection.setPosition(element.firstChild, 0);\n      }\n      return;\n    }\n    if (rect.right - PRECISION <= caretX) {\n      const {\n        lastChild\n      } = element;\n      if (select) {\n        selection.extend(lastChild, lastChild.length);\n      } else {\n        selection.setPosition(lastChild, lastChild.length);\n      }\n      return;\n    }\n    const midY = rect.y + rect.height / 2;\n    let caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY);\n    let parentElement = caretPosition.offsetNode?.parentElement;\n    if (parentElement && parentElement !== element) {\n      const elementsAtPoint = document.elementsFromPoint(caretX, midY);\n      const savedVisibilities = [];\n      for (const el of elementsAtPoint) {\n        if (el === element) {\n          break;\n        }\n        const {\n          style\n        } = el;\n        savedVisibilities.push([el, style.visibility]);\n        style.visibility = \"hidden\";\n      }\n      caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY);\n      parentElement = caretPosition.offsetNode?.parentElement;\n      for (const [el, visibility] of savedVisibilities) {\n        el.style.visibility = visibility;\n      }\n    }\n    if (parentElement !== element) {\n      if (select) {\n        selection.extend(element.firstChild, 0);\n      } else {\n        selection.setPosition(element.firstChild, 0);\n      }\n      return;\n    }\n    if (select) {\n      selection.extend(caretPosition.offsetNode, caretPosition.offset);\n    } else {\n      selection.setPosition(caretPosition.offsetNode, caretPosition.offset);\n    }\n  }\n  #setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX) {\n    if (this.#isVisible(newLineElementRect)) {\n      this.#setCaretPositionHelper(selection, caretX, select, newLineElement, newLineElementRect);\n      return;\n    }\n    this.#mainContainer.addEventListener(\"scrollend\", this.#setCaretPositionHelper.bind(this, selection, caretX, select, newLineElement, null), {\n      once: true\n    });\n    newLineElement.scrollIntoView();\n  }\n  #getNodeOnNextPage(textLayer, isUp) {\n    while (true) {\n      const page = textLayer.closest(\".page\");\n      const pageNumber = parseInt(page.getAttribute(\"data-page-number\"));\n      const nextPage = isUp ? pageNumber - 1 : pageNumber + 1;\n      textLayer = this.#viewerContainer.querySelector(`.page[data-page-number=\"${nextPage}\"] .textLayer`);\n      if (!textLayer) {\n        return null;\n      }\n      const walker = document.createTreeWalker(textLayer, NodeFilter.SHOW_TEXT);\n      const node = isUp ? walker.lastChild() : walker.firstChild();\n      if (node) {\n        return node;\n      }\n    }\n  }\n  moveCaret(isUp, select) {\n    const selection = document.getSelection();\n    if (selection.rangeCount === 0) {\n      return;\n    }\n    const {\n      focusNode\n    } = selection;\n    const focusElement = focusNode.nodeType !== Node.ELEMENT_NODE ? focusNode.parentElement : focusNode;\n    const root = focusElement.closest(\".textLayer\");\n    if (!root) {\n      return;\n    }\n    const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n    walker.currentNode = focusNode;\n    const focusRect = focusElement.getBoundingClientRect();\n    let newLineElement = null;\n    const nodeIterator = (isUp ? walker.previousSibling : walker.nextSibling).bind(walker);\n    while (nodeIterator()) {\n      const element = walker.currentNode.parentElement;\n      if (!this.#isOnSameLine(focusRect, element.getBoundingClientRect())) {\n        newLineElement = element;\n        break;\n      }\n    }\n    if (!newLineElement) {\n      const node = this.#getNodeOnNextPage(root, isUp);\n      if (!node) {\n        return;\n      }\n      if (select) {\n        const lastNode = (isUp ? walker.firstChild() : walker.lastChild()) || focusNode;\n        selection.extend(lastNode, isUp ? 0 : lastNode.length);\n        const range = document.createRange();\n        range.setStart(node, isUp ? node.length : 0);\n        range.setEnd(node, isUp ? node.length : 0);\n        selection.addRange(range);\n        return;\n      }\n      const [caretX] = this.#getCaretPosition(selection, isUp);\n      const {\n        parentElement\n      } = node;\n      this.#setCaretPosition(select, selection, parentElement, parentElement.getBoundingClientRect(), caretX);\n      return;\n    }\n    const [caretX, caretY] = this.#getCaretPosition(selection, isUp);\n    const newLineElementRect = newLineElement.getBoundingClientRect();\n    if (this.#isUnderOver(newLineElementRect, caretX, caretY, isUp)) {\n      this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX);\n      return;\n    }\n    while (nodeIterator()) {\n      const element = walker.currentNode.parentElement;\n      const elementRect = element.getBoundingClientRect();\n      if (!this.#isOnSameLine(newLineElementRect, elementRect)) {\n        break;\n      }\n      if (this.#isUnderOver(elementRect, caretX, caretY, isUp)) {\n        this.#setCaretPosition(select, selection, element, elementRect, caretX);\n        return;\n      }\n    }\n    this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX);\n  }\n}\n\n;// ./web/comment_manager.js\n\n\nclass CommentManager {\n  #dialog;\n  #popup;\n  #sidebar;\n  static #hasForcedColors = null;\n  constructor(commentDialog, sidebar, eventBus, linkService, overlayManager, ltr, hasForcedColors) {\n    const dateFormat = new Intl.DateTimeFormat(undefined, {\n      dateStyle: \"long\"\n    });\n    this.dialogElement = commentDialog.dialog;\n    this.#dialog = new CommentDialog(commentDialog, overlayManager, eventBus, ltr);\n    this.#popup = new CommentPopup(eventBus, dateFormat, ltr, this.dialogElement);\n    this.#sidebar = new CommentSidebar(sidebar, eventBus, linkService, this.#popup, dateFormat, ltr);\n    this.#popup.sidebar = this.#sidebar;\n    CommentManager.#hasForcedColors = hasForcedColors;\n  }\n  setSidebarUiManager(uiManager) {\n    this.#sidebar.setUIManager(uiManager);\n  }\n  showSidebar(annotations) {\n    this.#sidebar.show(annotations);\n  }\n  hideSidebar() {\n    this.#sidebar.hide();\n  }\n  removeComments(ids) {\n    this.#sidebar.removeComments(ids);\n  }\n  selectComment(id) {\n    this.#sidebar.selectComment(null, id);\n  }\n  addComment(annotation) {\n    this.#sidebar.addComment(annotation);\n  }\n  updateComment(annotation) {\n    this.#sidebar.updateComment(annotation);\n  }\n  toggleCommentPopup(editor, isSelected, visibility, isEditable) {\n    if (isSelected) {\n      this.selectComment(editor.uid);\n    }\n    this.#popup.toggle(editor, isSelected, visibility, isEditable);\n  }\n  destroyPopup() {\n    this.#popup.destroy();\n  }\n  updatePopupColor(editor) {\n    this.#popup.updateColor(editor);\n  }\n  showDialog(uiManager, editor, posX, posY, options) {\n    return this.#dialog.open(uiManager, editor, posX, posY, options);\n  }\n  makeCommentColor(color, opacity) {\n    return CommentManager._makeCommentColor(color, opacity);\n  }\n  static _makeCommentColor(color, opacity) {\n    return this.#hasForcedColors ? null : findContrastColor(applyOpacity(...color, opacity ?? 1), CSSConstants.commentForegroundColor);\n  }\n  destroy() {\n    this.#dialog.destroy();\n    this.#sidebar.hide();\n    this.#popup.destroy();\n  }\n}\nclass CommentSidebar {\n  #annotations = null;\n  #eventBus;\n  #boundCommentClick = this.#commentClick.bind(this);\n  #boundCommentKeydown = this.#commentKeydown.bind(this);\n  #sidebar;\n  #closeButton;\n  #commentsList;\n  #commentCount;\n  #dateFormat;\n  #sidebarTitle;\n  #learnMoreUrl;\n  #linkService;\n  #popup;\n  #elementsToAnnotations = null;\n  #idsToElements = null;\n  #uiManager = null;\n  #minWidth = 0;\n  #maxWidth = 0;\n  #initialWidth = 0;\n  #width = 0;\n  #ltr;\n  constructor({\n    learnMoreUrl,\n    sidebar,\n    sidebarResizer,\n    commentsList,\n    commentCount,\n    sidebarTitle,\n    closeButton,\n    commentToolbarButton\n  }, eventBus, linkService, popup, dateFormat, ltr) {\n    this.#sidebar = sidebar;\n    this.#sidebarTitle = sidebarTitle;\n    this.#commentsList = commentsList;\n    this.#commentCount = commentCount;\n    this.#learnMoreUrl = learnMoreUrl;\n    this.#linkService = linkService;\n    this.#closeButton = closeButton;\n    this.#popup = popup;\n    this.#dateFormat = dateFormat;\n    this.#ltr = ltr;\n    this.#eventBus = eventBus;\n    const style = window.getComputedStyle(sidebar);\n    this.#minWidth = parseFloat(style.getPropertyValue(\"--sidebar-min-width\"));\n    this.#maxWidth = parseFloat(style.getPropertyValue(\"--sidebar-max-width\"));\n    this.#initialWidth = this.#width = parseFloat(style.getPropertyValue(\"--sidebar-width\"));\n    this.#makeSidebarResizable(sidebarResizer);\n    closeButton.addEventListener(\"click\", () => {\n      eventBus.dispatch(\"switchannotationeditormode\", {\n        source: this,\n        mode: AnnotationEditorType.NONE\n      });\n    });\n    const keyDownCallback = e => {\n      if (e.key === \"ArrowDown\" || e.key === \"Home\" || e.key === \"F6\") {\n        this.#commentsList.firstElementChild.focus();\n        stopEvent(e);\n      } else if (e.key === \"ArrowUp\" || e.key === \"End\") {\n        this.#commentsList.lastElementChild.focus();\n        stopEvent(e);\n      }\n    };\n    commentToolbarButton.addEventListener(\"keydown\", keyDownCallback);\n    sidebar.addEventListener(\"keydown\", keyDownCallback);\n    this.#sidebar.hidden = true;\n  }\n  #makeSidebarResizable(resizer) {\n    let pointerMoveAC;\n    const cancelResize = () => {\n      this.#width = MathClamp(this.#width, this.#minWidth, this.#maxWidth);\n      this.#sidebar.classList.remove(\"resizing\");\n      pointerMoveAC?.abort();\n      pointerMoveAC = null;\n    };\n    resizer.addEventListener(\"pointerdown\", e => {\n      if (pointerMoveAC) {\n        cancelResize();\n        return;\n      }\n      const {\n        clientX\n      } = e;\n      stopEvent(e);\n      let prevX = clientX;\n      pointerMoveAC = new AbortController();\n      const {\n        signal\n      } = pointerMoveAC;\n      const sign = this.#ltr ? -1 : 1;\n      const sidebar = this.#sidebar;\n      const sidebarStyle = sidebar.style;\n      sidebar.classList.add(\"resizing\");\n      const parentStyle = sidebar.parentElement.style;\n      parentStyle.minWidth = 0;\n      window.addEventListener(\"contextmenu\", noContextMenu, {\n        signal\n      });\n      window.addEventListener(\"pointermove\", ev => {\n        if (!pointerMoveAC) {\n          return;\n        }\n        stopEvent(ev);\n        const {\n          clientX: x\n        } = ev;\n        const newWidth = this.#width += sign * (x - prevX);\n        prevX = x;\n        if (newWidth > this.#maxWidth || newWidth < this.#minWidth) {\n          return;\n        }\n        sidebarStyle.width = `${newWidth.toFixed(3)}px`;\n        parentStyle.insetInlineStart = `${(this.#initialWidth - newWidth).toFixed(3)}px`;\n      }, {\n        signal,\n        capture: true\n      });\n      window.addEventListener(\"blur\", cancelResize, {\n        signal\n      });\n      window.addEventListener(\"pointerup\", ev => {\n        if (pointerMoveAC) {\n          cancelResize();\n          stopEvent(ev);\n        }\n      }, {\n        signal\n      });\n    });\n  }\n  setUIManager(uiManager) {\n    this.#uiManager = uiManager;\n  }\n  show(annotations) {\n    this.#elementsToAnnotations = new WeakMap();\n    this.#idsToElements = new Map();\n    this.#annotations = annotations;\n    annotations.sort(this.#sortComments.bind(this));\n    if (annotations.length !== 0) {\n      const fragment = document.createDocumentFragment();\n      for (const annotation of annotations) {\n        fragment.append(this.#createCommentElement(annotation));\n      }\n      this.#setCommentsCount(fragment);\n      this.#commentsList.append(fragment);\n    } else {\n      this.#setCommentsCount();\n    }\n    this.#sidebar.hidden = false;\n    this.#eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"commentSidebar\",\n        data: {\n          numberOfAnnotations: annotations.length\n        }\n      }\n    });\n  }\n  hide() {\n    this.#sidebar.hidden = true;\n    this.#commentsList.replaceChildren();\n    this.#elementsToAnnotations = null;\n    this.#idsToElements = null;\n    this.#annotations = null;\n  }\n  removeComments(ids) {\n    if (ids.length === 0 || !this.#idsToElements) {\n      return;\n    }\n    if (new Set(this.#idsToElements.keys()).difference(new Set(ids)).size === 0) {\n      this.#removeAll();\n      return;\n    }\n    for (const id of ids) {\n      this.#removeComment(id);\n    }\n  }\n  focusComment(id) {\n    const element = this.#idsToElements.get(id);\n    if (!element) {\n      return;\n    }\n    this.#sidebar.scrollTop = element.offsetTop - this.#sidebar.offsetTop;\n    for (const el of this.#commentsList.children) {\n      el.classList.toggle(\"selected\", el === element);\n    }\n  }\n  updateComment(annotation) {\n    if (!this.#idsToElements) {\n      return;\n    }\n    const {\n      id,\n      creationDate,\n      modificationDate,\n      richText,\n      contentsObj,\n      popupRef\n    } = annotation;\n    if (!popupRef || !richText && !contentsObj?.str) {\n      this.#removeComment(id);\n    }\n    const element = this.#idsToElements.get(id);\n    if (!element) {\n      return;\n    }\n    const prevAnnotation = this.#elementsToAnnotations.get(element);\n    let index = binarySearchFirstItem(this.#annotations, a => this.#sortComments(a, prevAnnotation) >= 0);\n    if (index >= this.#annotations.length) {\n      return;\n    }\n    this.#setDate(element.firstChild, modificationDate || creationDate);\n    this.#setText(element.lastChild, richText, contentsObj);\n    this.#annotations.splice(index, 1);\n    index = binarySearchFirstItem(this.#annotations, a => this.#sortComments(a, annotation) >= 0);\n    this.#annotations.splice(index, 0, annotation);\n    if (index >= this.#commentsList.children.length) {\n      this.#commentsList.append(element);\n    } else {\n      this.#commentsList.insertBefore(element, this.#commentsList.children[index]);\n    }\n  }\n  #removeComment(id) {\n    const element = this.#idsToElements?.get(id);\n    if (!element) {\n      return;\n    }\n    const annotation = this.#elementsToAnnotations.get(element);\n    const index = binarySearchFirstItem(this.#annotations, a => this.#sortComments(a, annotation) >= 0);\n    if (index >= this.#annotations.length) {\n      return;\n    }\n    this.#annotations.splice(index, 1);\n    element.remove();\n    this.#idsToElements.delete(id);\n    this.#setCommentsCount();\n  }\n  #removeAll() {\n    this.#commentsList.replaceChildren();\n    this.#elementsToAnnotations = new WeakMap();\n    this.#idsToElements.clear();\n    this.#annotations.length = 0;\n    this.#setCommentsCount();\n  }\n  selectComment(element, id = null) {\n    if (!this.#idsToElements) {\n      return;\n    }\n    const hasNoElement = !element;\n    element ||= this.#idsToElements.get(id);\n    for (const el of this.#commentsList.children) {\n      el.classList.toggle(\"selected\", el === element);\n    }\n    if (hasNoElement) {\n      element?.scrollIntoView({\n        behavior: \"instant\",\n        block: \"center\"\n      });\n    }\n  }\n  addComment(annotation) {\n    if (this.#idsToElements?.has(annotation.id)) {\n      return;\n    }\n    const {\n      popupRef,\n      contentsObj\n    } = annotation;\n    if (!popupRef || !contentsObj?.str) {\n      return;\n    }\n    const commentItem = this.#createCommentElement(annotation);\n    if (this.#annotations.length === 0) {\n      this.#commentsList.replaceChildren(commentItem);\n      this.#annotations.push(annotation);\n      this.#setCommentsCount();\n      return;\n    }\n    const index = binarySearchFirstItem(this.#annotations, a => this.#sortComments(a, annotation) >= 0);\n    this.#annotations.splice(index, 0, annotation);\n    if (index >= this.#commentsList.children.length) {\n      this.#commentsList.append(commentItem);\n    } else {\n      this.#commentsList.insertBefore(commentItem, this.#commentsList.children[index]);\n    }\n    this.#setCommentsCount();\n  }\n  #setCommentsCount(container = this.#commentsList) {\n    const count = this.#idsToElements.size;\n    this.#sidebarTitle.setAttribute(\"data-l10n-args\", JSON.stringify({\n      count\n    }));\n    this.#commentCount.textContent = count;\n    if (count === 0) {\n      container.append(this.#createZeroCommentElement());\n    }\n  }\n  #createZeroCommentElement() {\n    const commentItem = document.createElement(\"li\");\n    commentItem.classList.add(\"sidebarComment\", \"noComments\");\n    const textDiv = document.createElement(\"div\");\n    textDiv.className = \"sidebarCommentText\";\n    textDiv.setAttribute(\"data-l10n-id\", \"pdfjs-editor-comments-sidebar-no-comments1\");\n    commentItem.append(textDiv);\n    if (this.#learnMoreUrl) {\n      const a = document.createElement(\"a\");\n      a.setAttribute(\"data-l10n-id\", \"pdfjs-editor-comments-sidebar-no-comments-link\");\n      a.href = this.#learnMoreUrl;\n      a.target = \"_blank\";\n      a.rel = \"noopener noreferrer\";\n      commentItem.append(a);\n    }\n    return commentItem;\n  }\n  #setDate(element, date) {\n    date = PDFDateString.toDateObject(date);\n    element.dateTime = date.toISOString();\n    element.textContent = this.#dateFormat.format(date);\n  }\n  #setText(element, richText, contentsObj) {\n    element.replaceChildren();\n    const html = richText?.str && (!contentsObj?.str || richText.str === contentsObj.str) ? richText.html : contentsObj?.str;\n    renderRichText({\n      html,\n      dir: contentsObj?.dir || \"auto\",\n      className: \"richText\"\n    }, element);\n  }\n  #createCommentElement(annotation) {\n    const {\n      id,\n      creationDate,\n      modificationDate,\n      richText,\n      contentsObj,\n      color,\n      opacity\n    } = annotation;\n    const commentItem = document.createElement(\"li\");\n    commentItem.role = \"button\";\n    commentItem.className = \"sidebarComment\";\n    commentItem.tabIndex = -1;\n    commentItem.style.backgroundColor = color && CommentManager._makeCommentColor(color, opacity) || \"\";\n    const dateDiv = document.createElement(\"time\");\n    this.#setDate(dateDiv, modificationDate || creationDate);\n    const textDiv = document.createElement(\"div\");\n    textDiv.className = \"sidebarCommentText\";\n    this.#setText(textDiv, richText, contentsObj);\n    commentItem.append(dateDiv, textDiv);\n    commentItem.addEventListener(\"click\", this.#boundCommentClick);\n    commentItem.addEventListener(\"keydown\", this.#boundCommentKeydown);\n    this.#elementsToAnnotations.set(commentItem, annotation);\n    this.#idsToElements.set(id, commentItem);\n    return commentItem;\n  }\n  async #commentClick({\n    currentTarget\n  }) {\n    if (currentTarget.classList.contains(\"selected\")) {\n      currentTarget.classList.remove(\"selected\");\n      this.#popup._hide();\n      return;\n    }\n    const annotation = this.#elementsToAnnotations.get(currentTarget);\n    if (!annotation) {\n      return;\n    }\n    this.#popup._hide();\n    const {\n      id,\n      pageIndex,\n      rect\n    } = annotation;\n    const pageNumber = pageIndex + 1;\n    const pageVisiblePromise = this.#uiManager?.waitForEditorsRendered(pageNumber);\n    this.#linkService?.goToXY(pageNumber, rect[0], rect[3], {\n      center: \"both\"\n    });\n    this.selectComment(currentTarget);\n    await pageVisiblePromise;\n    this.#uiManager?.selectComment(pageIndex, id);\n  }\n  #commentKeydown(e) {\n    const {\n      key,\n      currentTarget\n    } = e;\n    switch (key) {\n      case \"ArrowDown\":\n        (currentTarget.nextElementSibling || this.#commentsList.firstElementChild).focus();\n        stopEvent(e);\n        break;\n      case \"ArrowUp\":\n        (currentTarget.previousElementSibling || this.#commentsList.lastElementChild).focus();\n        stopEvent(e);\n        break;\n      case \"Home\":\n        this.#commentsList.firstElementChild.focus();\n        stopEvent(e);\n        break;\n      case \"End\":\n        this.#commentsList.lastElementChild.focus();\n        stopEvent(e);\n        break;\n      case \"Enter\":\n      case \" \":\n        this.#commentClick(e);\n        stopEvent(e);\n        break;\n      case \"ShiftTab\":\n        this.#closeButton.focus();\n        stopEvent(e);\n        break;\n    }\n  }\n  #sortComments(a, b) {\n    const dateA = PDFDateString.toDateObject(a.modificationDate || a.creationDate);\n    const dateB = PDFDateString.toDateObject(b.modificationDate || b.creationDate);\n    if (dateA !== dateB) {\n      if (dateA !== null && dateB !== null) {\n        return dateB - dateA;\n      }\n      return dateA !== null ? -1 : 1;\n    }\n    if (a.pageIndex !== b.pageIndex) {\n      return a.pageIndex - b.pageIndex;\n    }\n    if (a.rect[3] !== b.rect[3]) {\n      return b.rect[3] - a.rect[3];\n    }\n    if (a.rect[0] !== b.rect[0]) {\n      return a.rect[0] - b.rect[0];\n    }\n    if (a.rect[1] !== b.rect[1]) {\n      return b.rect[1] - a.rect[1];\n    }\n    if (a.rect[2] !== b.rect[2]) {\n      return a.rect[2] - b.rect[2];\n    }\n    return a.id.localeCompare(b.id);\n  }\n}\nclass CommentDialog {\n  #dialog;\n  #editor;\n  #overlayManager;\n  #previousText = \"\";\n  #commentText = \"\";\n  #textInput;\n  #title;\n  #saveButton;\n  #uiManager;\n  #prevDragX = 0;\n  #prevDragY = 0;\n  #dialogX = 0;\n  #dialogY = 0;\n  #isLTR;\n  #eventBus;\n  constructor({\n    dialog,\n    toolbar,\n    title,\n    textInput,\n    cancelButton,\n    saveButton\n  }, overlayManager, eventBus, ltr) {\n    this.#dialog = dialog;\n    this.#textInput = textInput;\n    this.#overlayManager = overlayManager;\n    this.#eventBus = eventBus;\n    this.#saveButton = saveButton;\n    this.#title = title;\n    this.#isLTR = ltr;\n    const finishBound = this.#finish.bind(this);\n    dialog.addEventListener(\"close\", finishBound);\n    dialog.addEventListener(\"contextmenu\", e => {\n      if (e.target !== this.#textInput) {\n        e.preventDefault();\n      }\n    });\n    cancelButton.addEventListener(\"click\", finishBound);\n    saveButton.addEventListener(\"click\", this.#save.bind(this));\n    textInput.addEventListener(\"input\", () => {\n      saveButton.disabled = textInput.value === this.#previousText;\n    });\n    let pointerMoveAC;\n    const cancelDrag = () => {\n      dialog.classList.remove(\"dragging\");\n      pointerMoveAC?.abort();\n      pointerMoveAC = null;\n    };\n    toolbar.addEventListener(\"pointerdown\", e => {\n      if (pointerMoveAC) {\n        cancelDrag();\n        return;\n      }\n      const {\n        clientX,\n        clientY\n      } = e;\n      stopEvent(e);\n      this.#prevDragX = clientX;\n      this.#prevDragY = clientY;\n      pointerMoveAC = new AbortController();\n      const {\n        signal\n      } = pointerMoveAC;\n      const {\n        innerHeight,\n        innerWidth\n      } = window;\n      dialog.classList.add(\"dragging\");\n      window.addEventListener(\"pointermove\", ev => {\n        if (!pointerMoveAC) {\n          return;\n        }\n        const {\n          clientX: x,\n          clientY: y\n        } = ev;\n        this.#setPosition(this.#dialogX + (x - this.#prevDragX) / innerWidth, this.#dialogY + (y - this.#prevDragY) / innerHeight);\n        this.#prevDragX = x;\n        this.#prevDragY = y;\n        stopEvent(ev);\n      }, {\n        signal\n      });\n      window.addEventListener(\"blur\", cancelDrag, {\n        signal\n      });\n      window.addEventListener(\"pointerup\", ev => {\n        if (pointerMoveAC) {\n          cancelDrag();\n          stopEvent(ev);\n        }\n      }, {\n        signal\n      });\n    });\n    overlayManager.register(dialog);\n  }\n  async open(uiManager, editor, posX, posY, options) {\n    if (editor) {\n      this.#uiManager = uiManager;\n      this.#editor = editor;\n    }\n    const {\n      contentsObj: {\n        str\n      },\n      color,\n      opacity\n    } = editor.getData();\n    const {\n      style: dialogStyle\n    } = this.#dialog;\n    if (color) {\n      dialogStyle.backgroundColor = CommentManager._makeCommentColor(color, opacity);\n      dialogStyle.borderColor = Util.makeHexColor(...color);\n    } else {\n      dialogStyle.backgroundColor = dialogStyle.borderColor = \"\";\n    }\n    this.#commentText = str || \"\";\n    const textInput = this.#textInput;\n    textInput.value = this.#previousText = this.#commentText;\n    if (str) {\n      this.#title.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-dialog-title-when-editing\");\n      this.#saveButton.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-dialog-save-button-when-editing\");\n    } else {\n      this.#title.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-dialog-title-when-adding\");\n      this.#saveButton.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-dialog-save-button-when-adding\");\n    }\n    if (options?.height) {\n      textInput.style.height = `${options.height}px`;\n    }\n    this.#uiManager?.removeEditListeners();\n    this.#saveButton.disabled = true;\n    const parentDimensions = options?.parentDimensions;\n    const {\n      innerHeight,\n      innerWidth\n    } = window;\n    if (editor.hasDefaultPopupPosition()) {\n      const {\n        dialogWidth,\n        dialogHeight\n      } = this._dialogDimensions;\n      if (parentDimensions) {\n        if (this.#isLTR && posX + dialogWidth > Math.min(parentDimensions.x + parentDimensions.width, innerWidth)) {\n          const buttonWidth = this.#editor.commentButtonWidth;\n          posX -= dialogWidth - buttonWidth * parentDimensions.width;\n        } else if (!this.#isLTR) {\n          const buttonWidth = this.#editor.commentButtonWidth * parentDimensions.width;\n          if (posX - dialogWidth < Math.max(0, parentDimensions.x)) {\n            posX = Math.max(0, posX);\n          } else {\n            posX -= dialogWidth - buttonWidth;\n          }\n        }\n      }\n      const height = Math.max(dialogHeight, options?.height || 0);\n      if (posY + height > innerHeight) {\n        posY = innerHeight - height;\n      }\n      if (posY < 0) {\n        posY = 0;\n      }\n    }\n    posX = MathClamp(posX / innerWidth, 0, 1);\n    posY = MathClamp(posY / innerHeight, 0, 1);\n    this.#setPosition(posX, posY);\n    await this.#overlayManager.open(this.#dialog);\n    textInput.focus();\n  }\n  async #save() {\n    this.#editor.comment = this.#textInput.value;\n    this.#finish();\n  }\n  get _dialogDimensions() {\n    const dialog = this.#dialog;\n    const {\n      style\n    } = dialog;\n    style.opacity = \"0\";\n    style.display = \"block\";\n    const {\n      width,\n      height\n    } = dialog.getBoundingClientRect();\n    style.opacity = style.display = \"\";\n    return shadow(this, \"_dialogDimensions\", {\n      dialogWidth: width,\n      dialogHeight: height\n    });\n  }\n  #setPosition(x, y) {\n    this.#dialogX = x;\n    this.#dialogY = y;\n    const {\n      style\n    } = this.#dialog;\n    style.left = `${100 * x}%`;\n    style.top = `${100 * y}%`;\n  }\n  #finish() {\n    if (!this.#editor) {\n      return;\n    }\n    const edited = this.#textInput.value !== this.#commentText;\n    this.#eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"comment\",\n        data: {\n          edited\n        }\n      }\n    });\n    this.#editor?.focusCommentButton();\n    this.#editor = null;\n    this.#textInput.value = this.#previousText = this.#commentText = \"\";\n    this.#overlayManager.closeIfActive(this.#dialog);\n    this.#textInput.style.height = \"\";\n    this.#uiManager?.addEditListeners();\n    this.#uiManager = null;\n  }\n  destroy() {\n    this.#uiManager = null;\n    this.#editor = null;\n    this.#finish();\n  }\n}\nclass CommentPopup {\n  #buttonsContainer = null;\n  #eventBus;\n  #commentDialog;\n  #dateFormat;\n  #editor = null;\n  #isLTR;\n  #container = null;\n  #text = null;\n  #time = null;\n  #prevDragX = 0;\n  #prevDragY = 0;\n  #posX = 0;\n  #posY = 0;\n  #previousFocusedElement = null;\n  #selected = false;\n  #visible = false;\n  constructor(eventBus, dateFormat, ltr, commentDialog) {\n    this.#eventBus = eventBus;\n    this.#dateFormat = dateFormat;\n    this.#isLTR = ltr;\n    this.#commentDialog = commentDialog;\n    this.sidebar = null;\n  }\n  get _popupWidth() {\n    const container = this.#createPopup();\n    const {\n      style\n    } = container;\n    style.opacity = \"0\";\n    style.display = \"block\";\n    document.body.append(container);\n    const width = container.getBoundingClientRect().width;\n    container.remove();\n    style.opacity = style.display = \"\";\n    return shadow(this, \"_popupWidth\", width);\n  }\n  #createPopup() {\n    if (this.#container) {\n      return this.#container;\n    }\n    const container = this.#container = document.createElement(\"div\");\n    container.className = \"commentPopup\";\n    container.id = \"commentPopup\";\n    container.tabIndex = -1;\n    container.role = \"dialog\";\n    container.ariaModal = \"false\";\n    container.addEventListener(\"contextmenu\", noContextMenu);\n    container.addEventListener(\"keydown\", e => {\n      if (e.key === \"Escape\") {\n        this.toggle(this.#editor, true, false);\n        this.#previousFocusedElement?.focus();\n        stopEvent(e);\n      }\n    });\n    container.addEventListener(\"click\", () => {\n      container.focus();\n    });\n    const top = document.createElement(\"div\");\n    top.className = \"commentPopupTop\";\n    const time = this.#time = document.createElement(\"time\");\n    time.className = \"commentPopupTime\";\n    const buttons = this.#buttonsContainer = document.createElement(\"div\");\n    buttons.className = \"commentPopupButtons\";\n    const edit = document.createElement(\"button\");\n    edit.classList.add(\"commentPopupEdit\", \"toolbarButton\");\n    edit.tabIndex = 0;\n    edit.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-popup-button\");\n    edit.ariaHasPopup = \"dialog\";\n    edit.ariaControlsElements = [this.#commentDialog];\n    const editLabel = document.createElement(\"span\");\n    editLabel.setAttribute(\"data-l10n-id\", \"pdfjs-editor-edit-comment-popup-button-label\");\n    edit.append(editLabel);\n    edit.addEventListener(\"click\", () => {\n      const editor = this.#editor;\n      const height = parseFloat(getComputedStyle(this.#text).height);\n      this.toggle(editor, true, false);\n      editor.editComment({\n        height\n      });\n    });\n    edit.addEventListener(\"contextmenu\", noContextMenu);\n    const del = document.createElement(\"button\");\n    del.classList.add(\"commentPopupDelete\", \"toolbarButton\");\n    del.tabIndex = 0;\n    del.setAttribute(\"data-l10n-id\", \"pdfjs-editor-delete-comment-popup-button\");\n    const delLabel = document.createElement(\"span\");\n    delLabel.setAttribute(\"data-l10n-id\", \"pdfjs-editor-delete-comment-popup-button-label\");\n    del.append(delLabel);\n    del.addEventListener(\"click\", () => {\n      this.#eventBus.dispatch(\"reporttelemetry\", {\n        source: this,\n        details: {\n          type: \"comment\",\n          data: {\n            deleted: true\n          }\n        }\n      });\n      this.#editor.comment = null;\n      this.#editor.focus();\n      this.destroy();\n    });\n    del.addEventListener(\"contextmenu\", noContextMenu);\n    buttons.append(edit, del);\n    top.append(time, buttons);\n    const separator = document.createElement(\"hr\");\n    const text = this.#text = document.createElement(\"div\");\n    text.className = \"commentPopupText\";\n    container.append(top, separator, text);\n    let pointerMoveAC;\n    const cancelDrag = () => {\n      container.classList.remove(\"dragging\");\n      pointerMoveAC?.abort();\n      pointerMoveAC = null;\n    };\n    top.addEventListener(\"pointerdown\", e => {\n      if (pointerMoveAC) {\n        cancelDrag();\n        return;\n      }\n      const {\n        target,\n        clientX,\n        clientY\n      } = e;\n      if (buttons.contains(target)) {\n        return;\n      }\n      stopEvent(e);\n      const {\n        width: parentWidth,\n        height: parentHeight\n      } = this.#editor.parentBoundingClientRect;\n      this.#prevDragX = clientX;\n      this.#prevDragY = clientY;\n      pointerMoveAC = new AbortController();\n      const {\n        signal\n      } = pointerMoveAC;\n      container.classList.add(\"dragging\");\n      window.addEventListener(\"pointermove\", ev => {\n        if (!pointerMoveAC) {\n          return;\n        }\n        const {\n          clientX: x,\n          clientY: y\n        } = ev;\n        this.#setPosition(this.#posX + (x - this.#prevDragX) / parentWidth, this.#posY + (y - this.#prevDragY) / parentHeight, false);\n        this.#prevDragX = x;\n        this.#prevDragY = y;\n        stopEvent(ev);\n      }, {\n        signal\n      });\n      window.addEventListener(\"blur\", cancelDrag, {\n        signal\n      });\n      window.addEventListener(\"pointerup\", ev => {\n        if (pointerMoveAC) {\n          cancelDrag();\n          stopEvent(ev);\n        }\n      }, {\n        signal\n      });\n    });\n    return container;\n  }\n  updateColor(editor) {\n    if (this.#editor !== editor || !this.#visible) {\n      return;\n    }\n    const {\n      color,\n      opacity\n    } = editor.getData();\n    this.#container.style.backgroundColor = color && CommentManager._makeCommentColor(color, opacity) || \"\";\n  }\n  _hide(editor) {\n    const container = this.#createPopup();\n    container.classList.toggle(\"hidden\", true);\n    container.classList.toggle(\"selected\", false);\n    (editor || this.#editor)?.setCommentButtonStates({\n      selected: false,\n      hasPopup: false\n    });\n    this.#editor = null;\n    this.#selected = false;\n    this.#visible = false;\n    this.#text.replaceChildren();\n    this.sidebar.selectComment(null);\n  }\n  toggle(editor, isSelected, visibility = undefined, isEditable = true) {\n    if (!editor) {\n      this.destroy();\n      return;\n    }\n    if (isSelected) {\n      visibility ??= this.#editor === editor ? !this.#selected || !this.#visible : true;\n    } else {\n      if (this.#selected) {\n        return;\n      }\n      visibility ??= !this.#visible;\n    }\n    if (!visibility) {\n      this._hide(editor);\n      return;\n    }\n    this.#visible = true;\n    if (this.#editor !== editor) {\n      this.#editor?.setCommentButtonStates({\n        selected: false,\n        hasPopup: false\n      });\n    }\n    const container = this.#createPopup();\n    this.#buttonsContainer.classList.toggle(\"hidden\", !isEditable);\n    container.classList.toggle(\"hidden\", false);\n    container.classList.toggle(\"selected\", isSelected);\n    this.#selected = isSelected;\n    this.#editor = editor;\n    editor.setCommentButtonStates({\n      selected: isSelected,\n      hasPopup: true\n    });\n    const {\n      contentsObj,\n      richText,\n      creationDate,\n      modificationDate,\n      color,\n      opacity\n    } = editor.getData();\n    container.style.backgroundColor = color && CommentManager._makeCommentColor(color, opacity) || \"\";\n    this.#text.replaceChildren();\n    const html = richText?.str && (!contentsObj?.str || richText.str === contentsObj.str) ? richText.html : contentsObj?.str;\n    if (html) {\n      renderRichText({\n        html,\n        dir: contentsObj?.dir || \"auto\",\n        className: \"richText\"\n      }, this.#text);\n    }\n    this.#time.textContent = this.#dateFormat.format(PDFDateString.toDateObject(modificationDate || creationDate));\n    this.#setPosition(...editor.commentPopupPosition, editor.hasDefaultPopupPosition());\n    editor.elementBeforePopup.after(container);\n    container.addEventListener(\"focus\", ({\n      relatedTarget\n    }) => {\n      this.#previousFocusedElement = relatedTarget;\n    }, {\n      once: true\n    });\n    if (isSelected) {\n      setTimeout(() => container.focus(), 0);\n    }\n  }\n  #setPosition(x, y, correctPosition) {\n    if (!correctPosition) {\n      this.#editor.commentPopupPosition = [x, y];\n    } else {\n      const parentRect = this.#editor.parentBoundingClientRect;\n      const widthRatio = this._popupWidth / parentRect.width;\n      if (this.#isLTR && x + widthRatio > 1 || !this.#isLTR && x - widthRatio >= 0) {\n        const buttonWidth = this.#editor.commentButtonWidth;\n        x -= widthRatio - buttonWidth;\n      }\n      const margin = 0.01;\n      if (this.#isLTR) {\n        x = Math.max(x, -parentRect.x / parentRect.width + margin);\n      } else {\n        x = Math.min(x, (window.innerWidth - parentRect.x) / parentRect.width - widthRatio - margin);\n      }\n    }\n    this.#posX = x;\n    this.#posY = y;\n    const {\n      style\n    } = this.#container;\n    style.left = `${100 * x}%`;\n    style.top = `${100 * y}%`;\n  }\n  destroy() {\n    this._hide();\n    this.#container?.remove();\n    this.#container = this.#text = this.#time = null;\n    this.#prevDragX = this.#prevDragY = Infinity;\n    this.#posX = this.#posY = 0;\n    this.#previousFocusedElement = null;\n  }\n}\n\n;// ./web/download_manager.js\n\nfunction download(blobUrl, filename) {\n  const a = document.createElement(\"a\");\n  if (!a.click) {\n    throw new Error('DownloadManager: \"a.click()\" is not supported.');\n  }\n  a.href = blobUrl;\n  a.target = \"_parent\";\n  if (\"download\" in a) {\n    a.download = filename;\n  }\n  (document.body || document.documentElement).append(a);\n  a.click();\n  a.remove();\n}\nclass DownloadManager {\n  #openBlobUrls = new WeakMap();\n  downloadData(data, filename, contentType) {\n    const blobUrl = URL.createObjectURL(new Blob([data], {\n      type: contentType\n    }));\n    download(blobUrl, filename);\n  }\n  openOrDownloadData(data, filename, dest = null) {\n    const isPdfData = isPdfFile(filename);\n    const contentType = isPdfData ? \"application/pdf\" : \"\";\n    if (isPdfData) {\n      let blobUrl = this.#openBlobUrls.get(data);\n      if (!blobUrl) {\n        blobUrl = URL.createObjectURL(new Blob([data], {\n          type: contentType\n        }));\n        this.#openBlobUrls.set(data, blobUrl);\n      }\n      let viewerUrl;\n      viewerUrl = \"?file=\" + encodeURIComponent(blobUrl + \"#\" + filename);\n      if (dest) {\n        viewerUrl += `#${escape(dest)}`;\n      }\n      try {\n        window.open(viewerUrl);\n        return true;\n      } catch (ex) {\n        console.error(\"openOrDownloadData:\", ex);\n        URL.revokeObjectURL(blobUrl);\n        this.#openBlobUrls.delete(data);\n      }\n    }\n    this.downloadData(data, filename, contentType);\n    return false;\n  }\n  download(data, url, filename) {\n    let blobUrl;\n    if (data) {\n      blobUrl = URL.createObjectURL(new Blob([data], {\n        type: \"application/pdf\"\n      }));\n    } else {\n      if (!createValidAbsoluteUrl(url, \"http://example.com\")) {\n        console.error(`download - not a valid URL: ${url}`);\n        return;\n      }\n      blobUrl = url + \"#pdfjs.action=download\";\n    }\n    download(blobUrl, filename);\n  }\n}\n\n;// ./web/editor_undo_bar.js\n\nclass EditorUndoBar {\n  #closeButton = null;\n  #container;\n  #eventBus = null;\n  #focusTimeout = null;\n  #initController = null;\n  isOpen = false;\n  #message;\n  #showController = null;\n  #undoButton;\n  static #l10nMessages = Object.freeze({\n    highlight: \"pdfjs-editor-undo-bar-message-highlight\",\n    freetext: \"pdfjs-editor-undo-bar-message-freetext\",\n    stamp: \"pdfjs-editor-undo-bar-message-stamp\",\n    ink: \"pdfjs-editor-undo-bar-message-ink\",\n    signature: \"pdfjs-editor-undo-bar-message-signature\",\n    _multiple: \"pdfjs-editor-undo-bar-message-multiple\"\n  });\n  constructor({\n    container,\n    message,\n    undoButton,\n    closeButton\n  }, eventBus) {\n    this.#container = container;\n    this.#message = message;\n    this.#undoButton = undoButton;\n    this.#closeButton = closeButton;\n    this.#eventBus = eventBus;\n  }\n  destroy() {\n    this.#initController?.abort();\n    this.#initController = null;\n    this.hide();\n  }\n  show(undoAction, messageData) {\n    if (!this.#initController) {\n      this.#initController = new AbortController();\n      const opts = {\n        signal: this.#initController.signal\n      };\n      const boundHide = this.hide.bind(this);\n      this.#container.addEventListener(\"contextmenu\", noContextMenu, opts);\n      this.#closeButton.addEventListener(\"click\", boundHide, opts);\n      this.#eventBus._on(\"beforeprint\", boundHide, opts);\n      this.#eventBus._on(\"download\", boundHide, opts);\n    }\n    this.hide();\n    if (typeof messageData === \"string\") {\n      this.#message.setAttribute(\"data-l10n-id\", EditorUndoBar.#l10nMessages[messageData]);\n    } else {\n      this.#message.setAttribute(\"data-l10n-id\", EditorUndoBar.#l10nMessages._multiple);\n      this.#message.setAttribute(\"data-l10n-args\", JSON.stringify({\n        count: messageData\n      }));\n    }\n    this.isOpen = true;\n    this.#container.hidden = false;\n    this.#showController = new AbortController();\n    this.#undoButton.addEventListener(\"click\", () => {\n      undoAction();\n      this.hide();\n    }, {\n      signal: this.#showController.signal\n    });\n    this.#focusTimeout = setTimeout(() => {\n      this.#container.focus();\n      this.#focusTimeout = null;\n    }, 100);\n  }\n  hide() {\n    if (!this.isOpen) {\n      return;\n    }\n    this.isOpen = false;\n    this.#container.hidden = true;\n    this.#showController?.abort();\n    this.#showController = null;\n    if (this.#focusTimeout) {\n      clearTimeout(this.#focusTimeout);\n      this.#focusTimeout = null;\n    }\n  }\n}\n\n;// ./web/overlay_manager.js\nclass OverlayManager {\n  #overlays = new WeakMap();\n  #active = null;\n  get active() {\n    return this.#active;\n  }\n  async register(dialog, canForceClose = false) {\n    if (typeof dialog !== \"object\") {\n      throw new Error(\"Not enough parameters.\");\n    } else if (this.#overlays.has(dialog)) {\n      throw new Error(\"The overlay is already registered.\");\n    }\n    this.#overlays.set(dialog, {\n      canForceClose\n    });\n    dialog.addEventListener(\"cancel\", ({\n      target\n    }) => {\n      if (this.#active === target) {\n        this.#active = null;\n      }\n    });\n  }\n  async open(dialog) {\n    if (!this.#overlays.has(dialog)) {\n      throw new Error(\"The overlay does not exist.\");\n    } else if (this.#active) {\n      if (this.#active === dialog) {\n        throw new Error(\"The overlay is already active.\");\n      } else if (this.#overlays.get(dialog).canForceClose) {\n        await this.close();\n      } else {\n        throw new Error(\"Another overlay is currently active.\");\n      }\n    }\n    this.#active = dialog;\n    dialog.showModal();\n  }\n  async close(dialog = this.#active) {\n    if (!this.#overlays.has(dialog)) {\n      throw new Error(\"The overlay does not exist.\");\n    } else if (!this.#active) {\n      throw new Error(\"The overlay is currently not active.\");\n    } else if (this.#active !== dialog) {\n      throw new Error(\"Another overlay is currently active.\");\n    }\n    dialog.close();\n    this.#active = null;\n  }\n  async closeIfActive(dialog) {\n    if (this.#active === dialog) {\n      await this.close(dialog);\n    }\n  }\n}\n\n;// ./web/password_prompt.js\n\nclass PasswordPrompt {\n  #activeCapability = null;\n  #updateCallback = null;\n  #reason = null;\n  constructor(options, overlayManager, isViewerEmbedded = false) {\n    this.dialog = options.dialog;\n    this.label = options.label;\n    this.input = options.input;\n    this.submitButton = options.submitButton;\n    this.cancelButton = options.cancelButton;\n    this.overlayManager = overlayManager;\n    this._isViewerEmbedded = isViewerEmbedded;\n    this.submitButton.addEventListener(\"click\", this.#verify.bind(this));\n    this.cancelButton.addEventListener(\"click\", this.close.bind(this));\n    this.input.addEventListener(\"keydown\", e => {\n      if (e.keyCode === 13) {\n        this.#verify();\n      }\n    });\n    this.overlayManager.register(this.dialog, true);\n    this.dialog.addEventListener(\"close\", this.#cancel.bind(this));\n  }\n  async open() {\n    await this.#activeCapability?.promise;\n    this.#activeCapability = Promise.withResolvers();\n    try {\n      await this.overlayManager.open(this.dialog);\n    } catch (ex) {\n      this.#activeCapability.resolve();\n      throw ex;\n    }\n    const passwordIncorrect = this.#reason === PasswordResponses.INCORRECT_PASSWORD;\n    if (!this._isViewerEmbedded || passwordIncorrect) {\n      this.input.focus();\n    }\n    this.label.setAttribute(\"data-l10n-id\", passwordIncorrect ? \"pdfjs-password-invalid\" : \"pdfjs-password-label\");\n  }\n  async close() {\n    this.overlayManager.closeIfActive(this.dialog);\n  }\n  #verify() {\n    const password = this.input.value;\n    if (password?.length > 0) {\n      this.#invokeCallback(password);\n    }\n  }\n  #cancel() {\n    this.#invokeCallback(new Error(\"PasswordPrompt cancelled.\"));\n    this.#activeCapability.resolve();\n  }\n  #invokeCallback(password) {\n    if (!this.#updateCallback) {\n      return;\n    }\n    this.close();\n    this.input.value = \"\";\n    this.#updateCallback(password);\n    this.#updateCallback = null;\n  }\n  async setUpdateCallback(updateCallback, reason) {\n    if (this.#activeCapability) {\n      await this.#activeCapability.promise;\n    }\n    this.#updateCallback = updateCallback;\n    this.#reason = reason;\n  }\n}\n\n;// ./web/base_tree_viewer.js\n\nconst TREEITEM_OFFSET_TOP = -100;\nconst TREEITEM_SELECTED_CLASS = \"selected\";\nclass BaseTreeViewer {\n  constructor(options) {\n    this.container = options.container;\n    this.eventBus = options.eventBus;\n    this._l10n = options.l10n;\n    this.reset();\n  }\n  reset() {\n    this._pdfDocument = null;\n    this._lastToggleIsShow = true;\n    this._currentTreeItem = null;\n    this.container.textContent = \"\";\n    this.container.classList.remove(\"treeWithDeepNesting\");\n  }\n  _dispatchEvent(count) {\n    throw new Error(\"Not implemented: _dispatchEvent\");\n  }\n  _bindLink(element, params) {\n    throw new Error(\"Not implemented: _bindLink\");\n  }\n  _normalizeTextContent(str) {\n    return removeNullCharacters(str, true) || \"\\u2013\";\n  }\n  _addToggleButton(div, hidden = false) {\n    const toggler = document.createElement(\"div\");\n    toggler.className = \"treeItemToggler\";\n    if (hidden) {\n      toggler.classList.add(\"treeItemsHidden\");\n    }\n    toggler.onclick = evt => {\n      evt.stopPropagation();\n      toggler.classList.toggle(\"treeItemsHidden\");\n      if (evt.shiftKey) {\n        const shouldShowAll = !toggler.classList.contains(\"treeItemsHidden\");\n        this._toggleTreeItem(div, shouldShowAll);\n      }\n    };\n    div.prepend(toggler);\n  }\n  _toggleTreeItem(root, show = false) {\n    this._l10n.pause();\n    this._lastToggleIsShow = show;\n    for (const toggler of root.querySelectorAll(\".treeItemToggler\")) {\n      toggler.classList.toggle(\"treeItemsHidden\", !show);\n    }\n    this._l10n.resume();\n  }\n  _toggleAllTreeItems() {\n    this._toggleTreeItem(this.container, !this._lastToggleIsShow);\n  }\n  _finishRendering(fragment, count, hasAnyNesting = false) {\n    if (hasAnyNesting) {\n      this.container.classList.add(\"treeWithDeepNesting\");\n      this._lastToggleIsShow = !fragment.querySelector(\".treeItemsHidden\");\n    }\n    this._l10n.pause();\n    this.container.append(fragment);\n    this._l10n.resume();\n    this._dispatchEvent(count);\n  }\n  render(params) {\n    throw new Error(\"Not implemented: render\");\n  }\n  _updateCurrentTreeItem(treeItem = null) {\n    if (this._currentTreeItem) {\n      this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS);\n      this._currentTreeItem = null;\n    }\n    if (treeItem) {\n      treeItem.classList.add(TREEITEM_SELECTED_CLASS);\n      this._currentTreeItem = treeItem;\n    }\n  }\n  _scrollToCurrentTreeItem(treeItem) {\n    if (!treeItem) {\n      return;\n    }\n    this._l10n.pause();\n    let currentNode = treeItem.parentNode;\n    while (currentNode && currentNode !== this.container) {\n      if (currentNode.classList.contains(\"treeItem\")) {\n        const toggler = currentNode.firstElementChild;\n        toggler?.classList.remove(\"treeItemsHidden\");\n      }\n      currentNode = currentNode.parentNode;\n    }\n    this._l10n.resume();\n    this._updateCurrentTreeItem(treeItem);\n    this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP);\n  }\n}\n\n;// ./web/pdf_attachment_viewer.js\n\n\nclass PDFAttachmentViewer extends BaseTreeViewer {\n  constructor(options) {\n    super(options);\n    this.downloadManager = options.downloadManager;\n    this.eventBus._on(\"fileattachmentannotation\", this.#appendAttachment.bind(this));\n  }\n  reset(keepRenderedCapability = false) {\n    super.reset();\n    this._attachments = null;\n    if (!keepRenderedCapability) {\n      this._renderedCapability = Promise.withResolvers();\n    }\n    this._pendingDispatchEvent = false;\n  }\n  async _dispatchEvent(attachmentsCount) {\n    this._renderedCapability.resolve();\n    if (attachmentsCount === 0 && !this._pendingDispatchEvent) {\n      this._pendingDispatchEvent = true;\n      await waitOnEventOrTimeout({\n        target: this.eventBus,\n        name: \"annotationlayerrendered\",\n        delay: 1000\n      });\n      if (!this._pendingDispatchEvent) {\n        return;\n      }\n    }\n    this._pendingDispatchEvent = false;\n    this.eventBus.dispatch(\"attachmentsloaded\", {\n      source: this,\n      attachmentsCount\n    });\n  }\n  _bindLink(element, {\n    content,\n    description,\n    filename\n  }) {\n    if (description) {\n      element.title = description;\n    }\n    element.onclick = () => {\n      this.downloadManager.openOrDownloadData(content, filename);\n      return false;\n    };\n  }\n  render({\n    attachments,\n    keepRenderedCapability = false\n  }) {\n    if (this._attachments) {\n      this.reset(keepRenderedCapability);\n    }\n    this._attachments = attachments || null;\n    if (!attachments) {\n      this._dispatchEvent(0);\n      return;\n    }\n    const fragment = document.createDocumentFragment();\n    let attachmentsCount = 0;\n    for (const name in attachments) {\n      const item = attachments[name];\n      const div = document.createElement(\"div\");\n      div.className = \"treeItem\";\n      const element = document.createElement(\"a\");\n      this._bindLink(element, item);\n      element.textContent = this._normalizeTextContent(item.filename);\n      div.append(element);\n      fragment.append(div);\n      attachmentsCount++;\n    }\n    this._finishRendering(fragment, attachmentsCount);\n  }\n  #appendAttachment(item) {\n    const renderedPromise = this._renderedCapability.promise;\n    renderedPromise.then(() => {\n      if (renderedPromise !== this._renderedCapability.promise) {\n        return;\n      }\n      const attachments = this._attachments || Object.create(null);\n      for (const name in attachments) {\n        if (item.filename === name) {\n          return;\n        }\n      }\n      attachments[item.filename] = item;\n      this.render({\n        attachments,\n        keepRenderedCapability: true\n      });\n    });\n  }\n}\n\n;// ./web/grab_to_pan.js\n\nconst CSS_CLASS_GRAB = \"grab-to-pan-grab\";\nclass GrabToPan {\n  #activateAC = null;\n  #mouseDownAC = null;\n  #scrollAC = null;\n  constructor({\n    element\n  }) {\n    this.element = element;\n    this.document = element.ownerDocument;\n    const overlay = this.overlay = document.createElement(\"div\");\n    overlay.className = \"grab-to-pan-grabbing\";\n  }\n  activate() {\n    if (!this.#activateAC) {\n      this.#activateAC = new AbortController();\n      this.element.addEventListener(\"mousedown\", this.#onMouseDown.bind(this), {\n        capture: true,\n        signal: this.#activateAC.signal\n      });\n      this.element.classList.add(CSS_CLASS_GRAB);\n    }\n  }\n  deactivate() {\n    if (this.#activateAC) {\n      this.#activateAC.abort();\n      this.#activateAC = null;\n      this.#endPan();\n      this.element.classList.remove(CSS_CLASS_GRAB);\n    }\n  }\n  toggle() {\n    if (this.#activateAC) {\n      this.deactivate();\n    } else {\n      this.activate();\n    }\n  }\n  ignoreTarget(node) {\n    return node.matches(\"a[href], a[href] *, input, textarea, button, button *, select, option\");\n  }\n  #onMouseDown(event) {\n    if (event.button !== 0 || this.ignoreTarget(event.target)) {\n      return;\n    }\n    if (event.originalTarget) {\n      try {\n        event.originalTarget.tagName;\n      } catch {\n        return;\n      }\n    }\n    this.scrollLeftStart = this.element.scrollLeft;\n    this.scrollTopStart = this.element.scrollTop;\n    this.clientXStart = event.clientX;\n    this.clientYStart = event.clientY;\n    this.#mouseDownAC = new AbortController();\n    const boundEndPan = this.#endPan.bind(this),\n      mouseOpts = {\n        capture: true,\n        signal: this.#mouseDownAC.signal\n      };\n    this.document.addEventListener(\"mousemove\", this.#onMouseMove.bind(this), mouseOpts);\n    this.document.addEventListener(\"mouseup\", boundEndPan, mouseOpts);\n    this.#scrollAC = new AbortController();\n    this.element.addEventListener(\"scroll\", boundEndPan, {\n      capture: true,\n      signal: this.#scrollAC.signal\n    });\n    stopEvent(event);\n    const focusedElement = document.activeElement;\n    if (focusedElement && !focusedElement.contains(event.target)) {\n      focusedElement.blur();\n    }\n  }\n  #onMouseMove(event) {\n    this.#scrollAC?.abort();\n    this.#scrollAC = null;\n    if (!(event.buttons & 1)) {\n      this.#endPan();\n      return;\n    }\n    const xDiff = event.clientX - this.clientXStart;\n    const yDiff = event.clientY - this.clientYStart;\n    this.element.scrollTo({\n      top: this.scrollTopStart - yDiff,\n      left: this.scrollLeftStart - xDiff,\n      behavior: \"instant\"\n    });\n    if (!this.overlay.parentNode) {\n      document.body.append(this.overlay);\n    }\n  }\n  #endPan() {\n    this.#mouseDownAC?.abort();\n    this.#mouseDownAC = null;\n    this.#scrollAC?.abort();\n    this.#scrollAC = null;\n    this.overlay.remove();\n  }\n}\n\n;// ./web/pdf_cursor_tools.js\n\n\n\nclass PDFCursorTools {\n  #active = CursorTool.SELECT;\n  #prevActive = null;\n  constructor({\n    container,\n    eventBus,\n    cursorToolOnLoad = CursorTool.SELECT\n  }) {\n    this.container = container;\n    this.eventBus = eventBus;\n    this.#addEventListeners();\n    Promise.resolve().then(() => {\n      this.switchTool(cursorToolOnLoad);\n    });\n  }\n  get activeTool() {\n    return this.#active;\n  }\n  switchTool(tool) {\n    if (this.#prevActive !== null) {\n      return;\n    }\n    this.#switchTool(tool);\n  }\n  #switchTool(tool, disabled = false) {\n    if (tool === this.#active) {\n      if (this.#prevActive !== null) {\n        this.eventBus.dispatch(\"cursortoolchanged\", {\n          source: this,\n          tool,\n          disabled\n        });\n      }\n      return;\n    }\n    const disableActiveTool = () => {\n      switch (this.#active) {\n        case CursorTool.SELECT:\n          break;\n        case CursorTool.HAND:\n          this._handTool.deactivate();\n          break;\n        case CursorTool.ZOOM:\n      }\n    };\n    switch (tool) {\n      case CursorTool.SELECT:\n        disableActiveTool();\n        break;\n      case CursorTool.HAND:\n        disableActiveTool();\n        this._handTool.activate();\n        break;\n      case CursorTool.ZOOM:\n      default:\n        console.error(`switchTool: \"${tool}\" is an unsupported value.`);\n        return;\n    }\n    this.#active = tool;\n    this.eventBus.dispatch(\"cursortoolchanged\", {\n      source: this,\n      tool,\n      disabled\n    });\n  }\n  #addEventListeners() {\n    this.eventBus._on(\"switchcursortool\", evt => {\n      if (!evt.reset) {\n        this.switchTool(evt.tool);\n      } else if (this.#prevActive !== null) {\n        annotationEditorMode = AnnotationEditorType.NONE;\n        presentationModeState = PresentationModeState.NORMAL;\n        enableActive();\n      }\n    });\n    let annotationEditorMode = AnnotationEditorType.NONE,\n      presentationModeState = PresentationModeState.NORMAL;\n    const disableActive = () => {\n      this.#prevActive ??= this.#active;\n      this.#switchTool(CursorTool.SELECT, true);\n    };\n    const enableActive = () => {\n      if (this.#prevActive !== null && annotationEditorMode === AnnotationEditorType.NONE && presentationModeState === PresentationModeState.NORMAL) {\n        this.#switchTool(this.#prevActive);\n        this.#prevActive = null;\n      }\n    };\n    this.eventBus._on(\"annotationeditormodechanged\", ({\n      mode\n    }) => {\n      annotationEditorMode = mode;\n      if (mode === AnnotationEditorType.NONE) {\n        enableActive();\n      } else {\n        disableActive();\n      }\n    });\n    this.eventBus._on(\"presentationmodechanged\", ({\n      state\n    }) => {\n      presentationModeState = state;\n      if (state === PresentationModeState.NORMAL) {\n        enableActive();\n      } else if (state === PresentationModeState.FULLSCREEN) {\n        disableActive();\n      }\n    });\n  }\n  get _handTool() {\n    return shadow(this, \"_handTool\", new GrabToPan({\n      element: this.container\n    }));\n  }\n}\n\n;// ./web/pdf_document_properties.js\n\n\nconst NON_METRIC_LOCALES = [\"en-us\", \"en-lr\", \"my\"];\nconst US_PAGE_NAMES = {\n  \"8.5x11\": \"pdfjs-document-properties-page-size-name-letter\",\n  \"8.5x14\": \"pdfjs-document-properties-page-size-name-legal\"\n};\nconst METRIC_PAGE_NAMES = {\n  \"297x420\": \"pdfjs-document-properties-page-size-name-a-three\",\n  \"210x297\": \"pdfjs-document-properties-page-size-name-a-four\"\n};\nfunction getPageName(size, isPortrait, pageNames) {\n  const width = isPortrait ? size.width : size.height;\n  const height = isPortrait ? size.height : size.width;\n  return pageNames[`${width}x${height}`];\n}\nclass PDFDocumentProperties {\n  #fieldData = null;\n  constructor({\n    dialog,\n    fields,\n    closeButton\n  }, overlayManager, eventBus, l10n, fileNameLookup, titleLookup) {\n    this.dialog = dialog;\n    this.fields = fields;\n    this.overlayManager = overlayManager;\n    this.l10n = l10n;\n    this._fileNameLookup = fileNameLookup;\n    this._titleLookup = titleLookup;\n    this.#reset();\n    closeButton.addEventListener(\"click\", this.close.bind(this));\n    this.overlayManager.register(this.dialog);\n    eventBus._on(\"pagechanging\", evt => {\n      this._currentPageNumber = evt.pageNumber;\n    });\n    eventBus._on(\"rotationchanging\", evt => {\n      this._pagesRotation = evt.pagesRotation;\n    });\n  }\n  async open() {\n    await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]);\n    const currentPageNumber = this._currentPageNumber;\n    const pagesRotation = this._pagesRotation;\n    if (this.#fieldData && currentPageNumber === this.#fieldData._currentPageNumber && pagesRotation === this.#fieldData._pagesRotation) {\n      this.#updateUI();\n      return;\n    }\n    const [{\n      info,\n      metadata,\n      contentLength\n    }, pdfPage] = await Promise.all([this.pdfDocument.getMetadata(), this.pdfDocument.getPage(currentPageNumber)]);\n    const [fileName, fileSize, title, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this._titleLookup(), this.#parseDate(metadata?.get(\"xmp:createdate\"), info.CreationDate), this.#parseDate(metadata?.get(\"xmp:modifydate\"), info.ModDate), this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation), this.#parseLinearization(info.IsLinearized)]);\n    this.#fieldData = Object.freeze({\n      fileName,\n      fileSize,\n      title,\n      author: metadata?.get(\"dc:creator\")?.join(\"\\n\") || info.Author,\n      subject: metadata?.get(\"dc:subject\")?.join(\"\\n\") || info.Subject,\n      keywords: metadata?.get(\"pdf:keywords\") || info.Keywords,\n      creationDate,\n      modificationDate,\n      creator: metadata?.get(\"xmp:creatortool\") || info.Creator,\n      producer: metadata?.get(\"pdf:producer\") || info.Producer,\n      version: info.PDFFormatVersion,\n      pageCount: this.pdfDocument.numPages,\n      pageSize,\n      linearized: isLinearized,\n      _currentPageNumber: currentPageNumber,\n      _pagesRotation: pagesRotation\n    });\n    this.#updateUI();\n    const {\n      length\n    } = await this.pdfDocument.getDownloadInfo();\n    if (contentLength === length) {\n      return;\n    }\n    const data = Object.assign(Object.create(null), this.#fieldData);\n    data.fileSize = await this.#parseFileSize(length);\n    this.#fieldData = Object.freeze(data);\n    this.#updateUI();\n  }\n  async close() {\n    this.overlayManager.close(this.dialog);\n  }\n  setDocument(pdfDocument) {\n    if (this.pdfDocument) {\n      this.#reset();\n      this.#updateUI();\n    }\n    if (!pdfDocument) {\n      return;\n    }\n    this.pdfDocument = pdfDocument;\n    this._dataAvailableCapability.resolve();\n  }\n  #reset() {\n    this.pdfDocument = null;\n    this.#fieldData = null;\n    this._dataAvailableCapability = Promise.withResolvers();\n    this._currentPageNumber = 1;\n    this._pagesRotation = 0;\n  }\n  #updateUI() {\n    if (this.#fieldData && this.overlayManager.active !== this.dialog) {\n      return;\n    }\n    for (const id in this.fields) {\n      const content = this.#fieldData?.[id];\n      this.fields[id].textContent = content || content === 0 ? content : \"-\";\n    }\n  }\n  async #parseFileSize(b = 0) {\n    const kb = b / 1024,\n      mb = kb / 1024;\n    return kb ? this.l10n.get(mb >= 1 ? \"pdfjs-document-properties-size-mb\" : \"pdfjs-document-properties-size-kb\", {\n      mb,\n      kb,\n      b\n    }) : undefined;\n  }\n  async #parsePageSize(pageSizeInches, pagesRotation) {\n    if (!pageSizeInches) {\n      return undefined;\n    }\n    if (pagesRotation % 180 !== 0) {\n      pageSizeInches = {\n        width: pageSizeInches.height,\n        height: pageSizeInches.width\n      };\n    }\n    const isPortrait = isPortraitOrientation(pageSizeInches),\n      nonMetric = NON_METRIC_LOCALES.includes(this.l10n.getLanguage());\n    let sizeInches = {\n      width: Math.round(pageSizeInches.width * 100) / 100,\n      height: Math.round(pageSizeInches.height * 100) / 100\n    };\n    let sizeMillimeters = {\n      width: Math.round(pageSizeInches.width * 25.4 * 10) / 10,\n      height: Math.round(pageSizeInches.height * 25.4 * 10) / 10\n    };\n    let nameId = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES);\n    if (!nameId && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) {\n      const exactMillimeters = {\n        width: pageSizeInches.width * 25.4,\n        height: pageSizeInches.height * 25.4\n      };\n      const intMillimeters = {\n        width: Math.round(sizeMillimeters.width),\n        height: Math.round(sizeMillimeters.height)\n      };\n      if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) {\n        nameId = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES);\n        if (nameId) {\n          sizeInches = {\n            width: Math.round(intMillimeters.width / 25.4 * 100) / 100,\n            height: Math.round(intMillimeters.height / 25.4 * 100) / 100\n          };\n          sizeMillimeters = intMillimeters;\n        }\n      }\n    }\n    const [{\n      width,\n      height\n    }, unit, name, orientation] = await Promise.all([nonMetric ? sizeInches : sizeMillimeters, this.l10n.get(nonMetric ? \"pdfjs-document-properties-page-size-unit-inches\" : \"pdfjs-document-properties-page-size-unit-millimeters\"), nameId && this.l10n.get(nameId), this.l10n.get(isPortrait ? \"pdfjs-document-properties-page-size-orientation-portrait\" : \"pdfjs-document-properties-page-size-orientation-landscape\")]);\n    return this.l10n.get(name ? \"pdfjs-document-properties-page-size-dimension-name-string\" : \"pdfjs-document-properties-page-size-dimension-string\", {\n      width,\n      height,\n      unit,\n      name,\n      orientation\n    });\n  }\n  async #parseDate(metadataDate, infoDate) {\n    const dateObj = Date.parse(metadataDate) || PDFDateString.toDateObject(infoDate);\n    return dateObj ? this.l10n.get(\"pdfjs-document-properties-date-time-string\", {\n      dateObj: dateObj.valueOf()\n    }) : undefined;\n  }\n  #parseLinearization(isLinearized) {\n    return this.l10n.get(isLinearized ? \"pdfjs-document-properties-linearized-yes\" : \"pdfjs-document-properties-linearized-no\");\n  }\n}\n\n;// ./web/pdf_find_utils.js\nconst CharacterType = {\n  SPACE: 0,\n  ALPHA_LETTER: 1,\n  PUNCT: 2,\n  HAN_LETTER: 3,\n  KATAKANA_LETTER: 4,\n  HIRAGANA_LETTER: 5,\n  HALFWIDTH_KATAKANA_LETTER: 6,\n  THAI_LETTER: 7\n};\nfunction isAlphabeticalScript(charCode) {\n  return charCode < 0x2e80;\n}\nfunction isAscii(charCode) {\n  return (charCode & 0xff80) === 0;\n}\nfunction isAsciiAlpha(charCode) {\n  return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;\n}\nfunction isAsciiDigit(charCode) {\n  return charCode >= 0x30 && charCode <= 0x39;\n}\nfunction isAsciiSpace(charCode) {\n  return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;\n}\nfunction isHan(charCode) {\n  return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;\n}\nfunction isKatakana(charCode) {\n  return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\nfunction isHiragana(charCode) {\n  return charCode >= 0x3040 && charCode <= 0x309f;\n}\nfunction isHalfwidthKatakana(charCode) {\n  return charCode >= 0xff60 && charCode <= 0xff9f;\n}\nfunction isThai(charCode) {\n  return (charCode & 0xff80) === 0x0e00;\n}\nfunction getCharacterType(charCode) {\n  if (isAlphabeticalScript(charCode)) {\n    if (isAscii(charCode)) {\n      if (isAsciiSpace(charCode)) {\n        return CharacterType.SPACE;\n      } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {\n        return CharacterType.ALPHA_LETTER;\n      }\n      return CharacterType.PUNCT;\n    } else if (isThai(charCode)) {\n      return CharacterType.THAI_LETTER;\n    } else if (charCode === 0xa0) {\n      return CharacterType.SPACE;\n    }\n    return CharacterType.ALPHA_LETTER;\n  }\n  if (isHan(charCode)) {\n    return CharacterType.HAN_LETTER;\n  } else if (isKatakana(charCode)) {\n    return CharacterType.KATAKANA_LETTER;\n  } else if (isHiragana(charCode)) {\n    return CharacterType.HIRAGANA_LETTER;\n  } else if (isHalfwidthKatakana(charCode)) {\n    return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n  }\n  return CharacterType.ALPHA_LETTER;\n}\nlet NormalizeWithNFKC;\nfunction getNormalizeWithNFKC() {\n  NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾Ĳ-ĳĿ-ŀŉſǄ-ǌǱ-ǳʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕　〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ﬀ-ﬆﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ！-ﾾￂ-ￇￊ-ￏￒ-ￗￚ-ￜ￠-￦`;\n  return NormalizeWithNFKC;\n}\n\n;// ./web/pdf_find_controller.js\n\n\nconst FindState = {\n  FOUND: 0,\n  NOT_FOUND: 1,\n  WRAPPED: 2,\n  PENDING: 3\n};\nconst FIND_TIMEOUT = 250;\nconst MATCH_SCROLL_OFFSET_TOP = -100;\nconst CHARACTERS_TO_NORMALIZE = {\n  \"\\u2010\": \"-\",\n  \"\\u2018\": \"'\",\n  \"\\u2019\": \"'\",\n  \"\\u201A\": \"'\",\n  \"\\u201B\": \"'\",\n  \"\\u201C\": '\"',\n  \"\\u201D\": '\"',\n  \"\\u201E\": '\"',\n  \"\\u201F\": '\"',\n  \"\\u00BC\": \"1/4\",\n  \"\\u00BD\": \"1/2\",\n  \"\\u00BE\": \"3/4\"\n};\nconst DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]);\nlet DIACRITICS_EXCEPTION_STR;\nconst DIACRITICS_REG_EXP = /\\p{M}+/gu;\nconst SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\\]\\\\])|(\\p{P})|(\\s+)|(\\p{M})|(\\p{L})/gu;\nconst NOT_DIACRITIC_FROM_END_REG_EXP = /([^\\p{M}])\\p{M}*$/u;\nconst NOT_DIACRITIC_FROM_START_REG_EXP = /^\\p{M}*([^\\p{M}])/u;\nconst SYLLABLES_REG_EXP = /[\\uAC00-\\uD7AF\\uFA6C\\uFACF-\\uFAD1\\uFAD5-\\uFAD7]+/g;\nconst SYLLABLES_LENGTHS = new Map();\nconst FIRST_CHAR_SYLLABLES_REG_EXP = \"[\\\\u1100-\\\\u1112\\\\ud7a4-\\\\ud7af\\\\ud84a\\\\ud84c\\\\ud850\\\\ud854\\\\ud857\\\\ud85f]\";\nconst NFKC_CHARS_TO_NORMALIZE = new Map();\nlet noSyllablesRegExp = null;\nlet withSyllablesRegExp = null;\nfunction normalize(text, options = {}) {\n  const syllablePositions = [];\n  let m;\n  while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) {\n    let {\n      index\n    } = m;\n    for (const char of m[0]) {\n      let len = SYLLABLES_LENGTHS.get(char);\n      if (!len) {\n        len = char.normalize(\"NFD\").length;\n        SYLLABLES_LENGTHS.set(char, len);\n      }\n      syllablePositions.push([len, index++]);\n    }\n  }\n  const hasSyllables = syllablePositions.length > 0;\n  const ignoreDashEOL = options.ignoreDashEOL ?? false;\n  let normalizationRegex;\n  if (!hasSyllables && noSyllablesRegExp) {\n    normalizationRegex = noSyllablesRegExp;\n  } else if (hasSyllables && withSyllablesRegExp) {\n    normalizationRegex = withSyllablesRegExp;\n  } else {\n    const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n    const toNormalizeWithNFKC = getNormalizeWithNFKC();\n    const CJK = \"(?:\\\\p{Ideographic}|[\\u3040-\\u30FF])\";\n    const HKDiacritics = \"(?:\\u3099|\\u309A)\";\n    const BrokenWord = `\\\\p{Ll}-\\\\n(?=\\\\p{Ll})|\\\\p{Lu}-\\\\n(?=\\\\p{L})`;\n    const regexps = [`[${replace}]`, `[${toNormalizeWithNFKC}]`, `${HKDiacritics}\\\\n`, \"\\\\p{M}+(?:-\\\\n)?\", `${BrokenWord}`, \"\\\\S-\\\\n\", `${CJK}\\\\n`, \"\\\\n\", hasSyllables ? FIRST_CHAR_SYLLABLES_REG_EXP : \"\\\\u0000\"];\n    normalizationRegex = new RegExp(regexps.map(r => `(${r})`).join(\"|\"), \"gum\");\n    if (hasSyllables) {\n      withSyllablesRegExp = normalizationRegex;\n    } else {\n      noSyllablesRegExp = normalizationRegex;\n    }\n  }\n  const rawDiacriticsPositions = [];\n  while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {\n    rawDiacriticsPositions.push([m[0].length, m.index]);\n  }\n  let normalized = text.normalize(\"NFD\");\n  const positions = [0, 0];\n  let rawDiacriticsIndex = 0;\n  let syllableIndex = 0;\n  let shift = 0;\n  let shiftOrigin = 0;\n  let eol = 0;\n  let hasDiacritics = false;\n  normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, p9, i) => {\n    i -= shiftOrigin;\n    if (p1) {\n      const replacement = CHARACTERS_TO_NORMALIZE[p1];\n      const jj = replacement.length;\n      for (let j = 1; j < jj; j++) {\n        positions.push(i - shift + j, shift - j);\n      }\n      shift -= jj - 1;\n      return replacement;\n    }\n    if (p2) {\n      let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);\n      if (!replacement) {\n        replacement = p2.normalize(\"NFKC\");\n        NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);\n      }\n      const jj = replacement.length;\n      for (let j = 1; j < jj; j++) {\n        positions.push(i - shift + j, shift - j);\n      }\n      shift -= jj - 1;\n      return replacement;\n    }\n    if (p3) {\n      hasDiacritics = true;\n      if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n        ++rawDiacriticsIndex;\n      } else {\n        positions.push(i - 1 - shift + 1, shift - 1);\n        shift -= 1;\n        shiftOrigin += 1;\n      }\n      positions.push(i - shift + 1, shift);\n      shiftOrigin += 1;\n      eol += 1;\n      return p3.charAt(0);\n    }\n    if (p4) {\n      const hasTrailingDashEOL = p4.endsWith(\"\\n\");\n      const len = hasTrailingDashEOL ? p4.length - 2 : p4.length;\n      hasDiacritics = true;\n      let jj = len;\n      if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n        jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];\n        ++rawDiacriticsIndex;\n      }\n      for (let j = 1; j <= jj; j++) {\n        positions.push(i - 1 - shift + j, shift - j);\n      }\n      shift -= jj;\n      shiftOrigin += jj;\n      if (hasTrailingDashEOL) {\n        i += len - 1;\n        positions.push(i - shift + 1, 1 + shift);\n        shift += 1;\n        shiftOrigin += 1;\n        eol += 1;\n        return p4.slice(0, len);\n      }\n      return p4;\n    }\n    if (p5) {\n      if (ignoreDashEOL) {\n        shiftOrigin += 1;\n        eol += 1;\n        return p5.slice(0, -1);\n      }\n      const len = p5.length - 2;\n      positions.push(i - shift + len, 1 + shift);\n      shift += 1;\n      shiftOrigin += 1;\n      eol += 1;\n      return p5.slice(0, -2);\n    }\n    if (p6) {\n      shiftOrigin += 1;\n      eol += 1;\n      return p6.slice(0, -1);\n    }\n    if (p7) {\n      const len = p7.length - 1;\n      positions.push(i - shift + len, shift);\n      shiftOrigin += 1;\n      eol += 1;\n      return p7.slice(0, -1);\n    }\n    if (p8) {\n      positions.push(i - shift + 1, shift - 1);\n      shift -= 1;\n      shiftOrigin += 1;\n      eol += 1;\n      return \" \";\n    }\n    if (i + eol === syllablePositions[syllableIndex]?.[1]) {\n      const newCharLen = syllablePositions[syllableIndex][0] - 1;\n      ++syllableIndex;\n      for (let j = 1; j <= newCharLen; j++) {\n        positions.push(i - (shift - j), shift - j);\n      }\n      shift -= newCharLen;\n      shiftOrigin += newCharLen;\n    }\n    return p9;\n  });\n  positions.push(normalized.length, shift);\n  const starts = new Uint32Array(positions.length >> 1);\n  const shifts = new Int32Array(positions.length >> 1);\n  for (let i = 0, ii = positions.length; i < ii; i += 2) {\n    starts[i >> 1] = positions[i];\n    shifts[i >> 1] = positions[i + 1];\n  }\n  return [normalized, [starts, shifts], hasDiacritics];\n}\nfunction getOriginalIndex(diffs, pos, len) {\n  if (!diffs) {\n    return [pos, len];\n  }\n  const [starts, shifts] = diffs;\n  const start = pos;\n  const end = pos + len - 1;\n  let i = binarySearchFirstItem(starts, x => x >= start);\n  if (starts[i] > start) {\n    --i;\n  }\n  let j = binarySearchFirstItem(starts, x => x >= end, i);\n  if (starts[j] > end) {\n    --j;\n  }\n  const oldStart = start + shifts[i];\n  const oldEnd = end + shifts[j];\n  const oldLen = oldEnd + 1 - oldStart;\n  return [oldStart, oldLen];\n}\nclass PDFFindController {\n  #state = null;\n  #updateMatchesCountOnProgress = true;\n  #visitedPagesCount = 0;\n  constructor({\n    linkService,\n    eventBus,\n    updateMatchesCountOnProgress = true\n  }) {\n    this._linkService = linkService;\n    this._eventBus = eventBus;\n    this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress;\n    this.onIsPageVisible = null;\n    this.#reset();\n    eventBus._on(\"find\", this.#onFind.bind(this));\n    eventBus._on(\"findbarclose\", this.#onFindBarClose.bind(this));\n  }\n  get highlightMatches() {\n    return this._highlightMatches;\n  }\n  get pageMatches() {\n    return this._pageMatches;\n  }\n  get pageMatchesLength() {\n    return this._pageMatchesLength;\n  }\n  get selected() {\n    return this._selected;\n  }\n  get state() {\n    return this.#state;\n  }\n  setDocument(pdfDocument) {\n    if (this._pdfDocument) {\n      this.#reset();\n    }\n    if (!pdfDocument) {\n      return;\n    }\n    this._pdfDocument = pdfDocument;\n    this._firstPageCapability.resolve();\n  }\n  #onFind(state) {\n    if (!state) {\n      return;\n    }\n    const pdfDocument = this._pdfDocument;\n    const {\n      type\n    } = state;\n    if (this.#state === null || this.#shouldDirtyMatch(state)) {\n      this._dirtyMatch = true;\n    }\n    this.#state = state;\n    if (type !== \"highlightallchange\") {\n      this.#updateUIState(FindState.PENDING);\n    }\n    this._firstPageCapability.promise.then(() => {\n      if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n        return;\n      }\n      this.#extractText();\n      const findbarClosed = !this._highlightMatches;\n      const pendingTimeout = !!this._findTimeout;\n      if (this._findTimeout) {\n        clearTimeout(this._findTimeout);\n        this._findTimeout = null;\n      }\n      if (!type) {\n        this._findTimeout = setTimeout(() => {\n          this.#nextMatch();\n          this._findTimeout = null;\n        }, FIND_TIMEOUT);\n      } else if (this._dirtyMatch) {\n        this.#nextMatch();\n      } else if (type === \"again\") {\n        this.#nextMatch();\n        if (findbarClosed && this.#state.highlightAll) {\n          this.#updateAllPages();\n        }\n      } else if (type === \"highlightallchange\") {\n        if (pendingTimeout) {\n          this.#nextMatch();\n        } else {\n          this._highlightMatches = true;\n        }\n        this.#updateAllPages();\n      } else {\n        this.#nextMatch();\n      }\n    });\n  }\n  scrollMatchIntoView({\n    element = null,\n    selectedLeft = 0,\n    pageIndex = -1,\n    matchIndex = -1\n  }) {\n    if (!this._scrollMatches || !element) {\n      return;\n    } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n      return;\n    } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n      return;\n    }\n    this._scrollMatches = false;\n    const spot = {\n      top: MATCH_SCROLL_OFFSET_TOP,\n      left: selectedLeft\n    };\n    scrollIntoView(element, spot, true);\n  }\n  #reset() {\n    this._highlightMatches = false;\n    this._scrollMatches = false;\n    this._pdfDocument = null;\n    this._pageMatches = [];\n    this._pageMatchesLength = [];\n    this.#visitedPagesCount = 0;\n    this.#state = null;\n    this._selected = {\n      pageIdx: -1,\n      matchIdx: -1\n    };\n    this._offset = {\n      pageIdx: null,\n      matchIdx: null,\n      wrapped: false\n    };\n    this._extractTextPromises = [];\n    this._pageContents = [];\n    this._pageDiffs = [];\n    this._hasDiacritics = [];\n    this._matchesCountTotal = 0;\n    this._pagesToSearch = null;\n    this._pendingFindMatches = new Set();\n    this._resumePageIdx = null;\n    this._dirtyMatch = false;\n    clearTimeout(this._findTimeout);\n    this._findTimeout = null;\n    this._firstPageCapability = Promise.withResolvers();\n  }\n  get #query() {\n    const {\n      query\n    } = this.#state;\n    if (typeof query === \"string\") {\n      if (query !== this._rawQuery) {\n        this._rawQuery = query;\n        [this._normalizedQuery] = normalize(query);\n      }\n      return this._normalizedQuery;\n    }\n    return (query || []).filter(q => !!q).map(q => normalize(q)[0]);\n  }\n  #shouldDirtyMatch(state) {\n    const newQuery = state.query,\n      prevQuery = this.#state.query;\n    const newType = typeof newQuery,\n      prevType = typeof prevQuery;\n    if (newType !== prevType) {\n      return true;\n    }\n    if (newType === \"string\") {\n      if (newQuery !== prevQuery) {\n        return true;\n      }\n    } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) {\n      return true;\n    }\n    switch (state.type) {\n      case \"again\":\n        const pageNumber = this._selected.pageIdx + 1;\n        const linkService = this._linkService;\n        return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true);\n      case \"highlightallchange\":\n        return false;\n    }\n    return true;\n  }\n  #isEntireWord(content, startIdx, length) {\n    let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP);\n    if (match) {\n      const first = content.charCodeAt(startIdx);\n      const limit = match[1].charCodeAt(0);\n      if (getCharacterType(first) === getCharacterType(limit)) {\n        return false;\n      }\n    }\n    match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP);\n    if (match) {\n      const last = content.charCodeAt(startIdx + length - 1);\n      const limit = match[1].charCodeAt(0);\n      if (getCharacterType(last) === getCharacterType(limit)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  #convertToRegExpString(query, hasDiacritics) {\n    const {\n      matchDiacritics\n    } = this.#state;\n    let isUnicode = false;\n    query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => {\n      if (p1) {\n        return `[ ]*\\\\${p1}[ ]*`;\n      }\n      if (p2) {\n        return `[ ]*${p2}[ ]*`;\n      }\n      if (p3) {\n        return \"[ ]+\";\n      }\n      if (matchDiacritics) {\n        return p4 || p5;\n      }\n      if (p4) {\n        return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : \"\";\n      }\n      if (hasDiacritics) {\n        isUnicode = true;\n        return `${p5}\\\\p{M}*`;\n      }\n      return p5;\n    });\n    const trailingSpaces = \"[ ]*\";\n    if (query.endsWith(trailingSpaces)) {\n      query = query.slice(0, query.length - trailingSpaces.length);\n    }\n    if (matchDiacritics) {\n      if (hasDiacritics) {\n        DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION);\n        isUnicode = true;\n        query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\\\p{M}]|$)`;\n      }\n    }\n    return [isUnicode, query];\n  }\n  #calculateMatch(pageIndex) {\n    if (!this.#state) {\n      return;\n    }\n    const query = this.#query;\n    if (query.length === 0) {\n      return;\n    }\n    const pageContent = this._pageContents[pageIndex];\n    const matcherResult = this.match(query, pageContent, pageIndex);\n    const matches = this._pageMatches[pageIndex] = [];\n    const matchesLength = this._pageMatchesLength[pageIndex] = [];\n    const diffs = this._pageDiffs[pageIndex];\n    matcherResult?.forEach(({\n      index,\n      length\n    }) => {\n      const [matchPos, matchLen] = getOriginalIndex(diffs, index, length);\n      if (matchLen) {\n        matches.push(matchPos);\n        matchesLength.push(matchLen);\n      }\n    });\n    if (this.#state.highlightAll) {\n      this.#updatePage(pageIndex);\n    }\n    if (this._resumePageIdx === pageIndex) {\n      this._resumePageIdx = null;\n      this.#nextPageMatch();\n    }\n    const pageMatchesCount = matches.length;\n    this._matchesCountTotal += pageMatchesCount;\n    if (this.#updateMatchesCountOnProgress) {\n      if (pageMatchesCount > 0) {\n        this.#updateUIResultsCount();\n      }\n    } else if (++this.#visitedPagesCount === this._linkService.pagesCount) {\n      this.#updateUIResultsCount();\n    }\n  }\n  match(query, pageContent, pageIndex) {\n    const hasDiacritics = this._hasDiacritics[pageIndex];\n    let isUnicode = false;\n    if (typeof query === \"string\") {\n      [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);\n    } else {\n      query = query.sort().reverse().map(q => {\n        const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics);\n        isUnicode ||= isUnicodePart;\n        return `(${queryPart})`;\n      }).join(\"|\");\n    }\n    if (!query) {\n      return undefined;\n    }\n    const {\n      caseSensitive,\n      entireWord\n    } = this.#state;\n    const flags = `g${isUnicode ? \"u\" : \"\"}${caseSensitive ? \"\" : \"i\"}`;\n    query = new RegExp(query, flags);\n    const matches = [];\n    let match;\n    while ((match = query.exec(pageContent)) !== null) {\n      if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) {\n        continue;\n      }\n      matches.push({\n        index: match.index,\n        length: match[0].length\n      });\n    }\n    return matches;\n  }\n  #extractText() {\n    if (this._extractTextPromises.length > 0) {\n      return;\n    }\n    let deferred = Promise.resolve();\n    const textOptions = {\n      disableNormalization: true\n    };\n    const pdfDoc = this._pdfDocument;\n    for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n      const {\n        promise,\n        resolve\n      } = Promise.withResolvers();\n      this._extractTextPromises[i] = promise;\n      deferred = deferred.then(async () => {\n        if (pdfDoc !== this._pdfDocument) {\n          resolve();\n          return;\n        }\n        await pdfDoc.getPage(i + 1).then(pdfPage => pdfPage.getTextContent(textOptions)).then(textContent => {\n          const strBuf = [];\n          for (const textItem of textContent.items) {\n            strBuf.push(textItem.str);\n            if (textItem.hasEOL) {\n              strBuf.push(\"\\n\");\n            }\n          }\n          [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join(\"\"));\n          resolve();\n        }, reason => {\n          console.error(`Unable to get text content for page ${i + 1}`, reason);\n          this._pageContents[i] = \"\";\n          this._pageDiffs[i] = null;\n          this._hasDiacritics[i] = false;\n          resolve();\n        });\n      });\n    }\n  }\n  #updatePage(index) {\n    if (this._scrollMatches && this._selected.pageIdx === index) {\n      this._linkService.page = index + 1;\n    }\n    this._eventBus.dispatch(\"updatetextlayermatches\", {\n      source: this,\n      pageIndex: index\n    });\n  }\n  #updateAllPages() {\n    this._eventBus.dispatch(\"updatetextlayermatches\", {\n      source: this,\n      pageIndex: -1\n    });\n  }\n  #nextMatch() {\n    const previous = this.#state.findPrevious;\n    const currentPageIndex = this._linkService.page - 1;\n    const numPages = this._linkService.pagesCount;\n    this._highlightMatches = true;\n    if (this._dirtyMatch) {\n      this._dirtyMatch = false;\n      this._selected.pageIdx = this._selected.matchIdx = -1;\n      this._offset.pageIdx = currentPageIndex;\n      this._offset.matchIdx = null;\n      this._offset.wrapped = false;\n      this._resumePageIdx = null;\n      this._pageMatches.length = 0;\n      this._pageMatchesLength.length = 0;\n      this.#visitedPagesCount = 0;\n      this._matchesCountTotal = 0;\n      this.#updateAllPages();\n      for (let i = 0; i < numPages; i++) {\n        if (this._pendingFindMatches.has(i)) {\n          continue;\n        }\n        this._pendingFindMatches.add(i);\n        this._extractTextPromises[i].then(() => {\n          this._pendingFindMatches.delete(i);\n          this.#calculateMatch(i);\n        });\n      }\n    }\n    const query = this.#query;\n    if (query.length === 0) {\n      this.#updateUIState(FindState.FOUND);\n      return;\n    }\n    if (this._resumePageIdx) {\n      return;\n    }\n    const offset = this._offset;\n    this._pagesToSearch = numPages;\n    if (offset.matchIdx !== null) {\n      const numPageMatches = this._pageMatches[offset.pageIdx].length;\n      if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {\n        offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n        this.#updateMatch(true);\n        return;\n      }\n      this.#advanceOffsetPage(previous);\n    }\n    this.#nextPageMatch();\n  }\n  #matchesReady(matches) {\n    const offset = this._offset;\n    const numMatches = matches.length;\n    const previous = this.#state.findPrevious;\n    if (numMatches) {\n      offset.matchIdx = previous ? numMatches - 1 : 0;\n      this.#updateMatch(true);\n      return true;\n    }\n    this.#advanceOffsetPage(previous);\n    if (offset.wrapped) {\n      offset.matchIdx = null;\n      if (this._pagesToSearch < 0) {\n        this.#updateMatch(false);\n        return true;\n      }\n    }\n    return false;\n  }\n  #nextPageMatch() {\n    if (this._resumePageIdx !== null) {\n      console.error(\"There can only be one pending page.\");\n    }\n    let matches = null;\n    do {\n      const pageIdx = this._offset.pageIdx;\n      matches = this._pageMatches[pageIdx];\n      if (!matches) {\n        this._resumePageIdx = pageIdx;\n        break;\n      }\n    } while (!this.#matchesReady(matches));\n  }\n  #advanceOffsetPage(previous) {\n    const offset = this._offset;\n    const numPages = this._linkService.pagesCount;\n    offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n    offset.matchIdx = null;\n    this._pagesToSearch--;\n    if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n      offset.pageIdx = previous ? numPages - 1 : 0;\n      offset.wrapped = true;\n    }\n  }\n  #updateMatch(found = false) {\n    let state = FindState.NOT_FOUND;\n    const wrapped = this._offset.wrapped;\n    this._offset.wrapped = false;\n    if (found) {\n      const previousPage = this._selected.pageIdx;\n      this._selected.pageIdx = this._offset.pageIdx;\n      this._selected.matchIdx = this._offset.matchIdx;\n      state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n      if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n        this.#updatePage(previousPage);\n      }\n    }\n    this.#updateUIState(state, this.#state.findPrevious);\n    if (this._selected.pageIdx !== -1) {\n      this._scrollMatches = true;\n      this.#updatePage(this._selected.pageIdx);\n    }\n  }\n  #onFindBarClose(evt) {\n    const pdfDocument = this._pdfDocument;\n    this._firstPageCapability.promise.then(() => {\n      if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {\n        return;\n      }\n      if (this._findTimeout) {\n        clearTimeout(this._findTimeout);\n        this._findTimeout = null;\n      }\n      if (this._resumePageIdx) {\n        this._resumePageIdx = null;\n        this._dirtyMatch = true;\n      }\n      this.#updateUIState(FindState.FOUND);\n      this._highlightMatches = false;\n      this.#updateAllPages();\n    });\n  }\n  #requestMatchesCount() {\n    const {\n      pageIdx,\n      matchIdx\n    } = this._selected;\n    let current = 0,\n      total = this._matchesCountTotal;\n    if (matchIdx !== -1) {\n      for (let i = 0; i < pageIdx; i++) {\n        current += this._pageMatches[i]?.length || 0;\n      }\n      current += matchIdx + 1;\n    }\n    if (current < 1 || current > total) {\n      current = total = 0;\n    }\n    return {\n      current,\n      total\n    };\n  }\n  #updateUIResultsCount() {\n    this._eventBus.dispatch(\"updatefindmatchescount\", {\n      source: this,\n      matchesCount: this.#requestMatchesCount()\n    });\n  }\n  #updateUIState(state, previous = false) {\n    if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) {\n      return;\n    }\n    this._eventBus.dispatch(\"updatefindcontrolstate\", {\n      source: this,\n      state,\n      previous,\n      entireWord: this.#state?.entireWord ?? null,\n      matchesCount: this.#requestMatchesCount(),\n      rawQuery: this.#state?.query ?? null\n    });\n  }\n}\n\n;// ./web/pdf_find_bar.js\n\n\nconst MATCHES_COUNT_LIMIT = 1000;\nclass PDFFindBar {\n  #mainContainer;\n  #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));\n  constructor(options, mainContainer, eventBus) {\n    this.opened = false;\n    this.bar = options.bar;\n    this.toggleButton = options.toggleButton;\n    this.findField = options.findField;\n    this.highlightAll = options.highlightAllCheckbox;\n    this.caseSensitive = options.caseSensitiveCheckbox;\n    this.matchDiacritics = options.matchDiacriticsCheckbox;\n    this.entireWord = options.entireWordCheckbox;\n    this.findMsg = options.findMsg;\n    this.findResultsCount = options.findResultsCount;\n    this.findPreviousButton = options.findPreviousButton;\n    this.findNextButton = options.findNextButton;\n    this.eventBus = eventBus;\n    this.#mainContainer = mainContainer;\n    const checkedInputs = new Map([[this.highlightAll, \"highlightallchange\"], [this.caseSensitive, \"casesensitivitychange\"], [this.entireWord, \"entirewordchange\"], [this.matchDiacritics, \"diacriticmatchingchange\"]]);\n    this.toggleButton.addEventListener(\"click\", () => {\n      this.toggle();\n    });\n    this.findField.addEventListener(\"input\", () => {\n      this.dispatchEvent(\"\");\n    });\n    this.bar.addEventListener(\"keydown\", ({\n      keyCode,\n      shiftKey,\n      target\n    }) => {\n      switch (keyCode) {\n        case 13:\n          if (target === this.findField) {\n            this.dispatchEvent(\"again\", shiftKey);\n          } else if (checkedInputs.has(target)) {\n            target.checked = !target.checked;\n            this.dispatchEvent(checkedInputs.get(target));\n          }\n          break;\n        case 27:\n          this.close();\n          break;\n      }\n    });\n    this.findPreviousButton.addEventListener(\"click\", () => {\n      this.dispatchEvent(\"again\", true);\n    });\n    this.findNextButton.addEventListener(\"click\", () => {\n      this.dispatchEvent(\"again\", false);\n    });\n    for (const [elem, evtName] of checkedInputs) {\n      elem.addEventListener(\"click\", () => {\n        this.dispatchEvent(evtName);\n      });\n    }\n  }\n  reset() {\n    this.updateUIState();\n  }\n  dispatchEvent(type, findPrev = false) {\n    this.eventBus.dispatch(\"find\", {\n      source: this,\n      type,\n      query: this.findField.value,\n      caseSensitive: this.caseSensitive.checked,\n      entireWord: this.entireWord.checked,\n      highlightAll: this.highlightAll.checked,\n      findPrevious: findPrev,\n      matchDiacritics: this.matchDiacritics.checked\n    });\n  }\n  updateUIState(state, previous, matchesCount) {\n    const {\n      findField,\n      findMsg\n    } = this;\n    let findMsgId = \"\",\n      status = \"\";\n    switch (state) {\n      case FindState.FOUND:\n        break;\n      case FindState.PENDING:\n        status = \"pending\";\n        break;\n      case FindState.NOT_FOUND:\n        findMsgId = \"pdfjs-find-not-found\";\n        status = \"notFound\";\n        break;\n      case FindState.WRAPPED:\n        findMsgId = previous ? \"pdfjs-find-reached-top\" : \"pdfjs-find-reached-bottom\";\n        break;\n    }\n    findField.setAttribute(\"data-status\", status);\n    findField.setAttribute(\"aria-invalid\", state === FindState.NOT_FOUND);\n    findMsg.setAttribute(\"data-status\", status);\n    if (findMsgId) {\n      findMsg.setAttribute(\"data-l10n-id\", findMsgId);\n    } else {\n      findMsg.removeAttribute(\"data-l10n-id\");\n      findMsg.textContent = \"\";\n    }\n    this.updateResultsCount(matchesCount);\n  }\n  updateResultsCount({\n    current = 0,\n    total = 0\n  } = {}) {\n    const {\n      findResultsCount\n    } = this;\n    if (total > 0) {\n      const limit = MATCHES_COUNT_LIMIT;\n      findResultsCount.setAttribute(\"data-l10n-id\", total > limit ? \"pdfjs-find-match-count-limit\" : \"pdfjs-find-match-count\");\n      findResultsCount.setAttribute(\"data-l10n-args\", JSON.stringify({\n        limit,\n        current,\n        total\n      }));\n    } else {\n      findResultsCount.removeAttribute(\"data-l10n-id\");\n      findResultsCount.textContent = \"\";\n    }\n  }\n  open() {\n    if (!this.opened) {\n      this.#resizeObserver.observe(this.#mainContainer);\n      this.#resizeObserver.observe(this.bar);\n      this.opened = true;\n      toggleExpandedBtn(this.toggleButton, true, this.bar);\n    }\n    this.findField.select();\n    this.findField.focus();\n  }\n  close() {\n    if (!this.opened) {\n      return;\n    }\n    this.#resizeObserver.disconnect();\n    this.opened = false;\n    toggleExpandedBtn(this.toggleButton, false, this.bar);\n    this.eventBus.dispatch(\"findbarclose\", {\n      source: this\n    });\n  }\n  toggle() {\n    if (this.opened) {\n      this.close();\n    } else {\n      this.open();\n    }\n  }\n  #resizeObserverCallback() {\n    const {\n      bar\n    } = this;\n    bar.classList.remove(\"wrapContainers\");\n    const findbarHeight = bar.clientHeight;\n    const inputContainerHeight = bar.firstElementChild.clientHeight;\n    if (findbarHeight > inputContainerHeight) {\n      bar.classList.add(\"wrapContainers\");\n    }\n  }\n}\n\n;// ./web/pdf_history.js\n\n\n\nconst HASH_CHANGE_TIMEOUT = 1000;\nconst POSITION_UPDATED_THRESHOLD = 50;\nconst UPDATE_VIEWAREA_TIMEOUT = 1000;\nfunction getCurrentHash() {\n  return document.location.hash;\n}\nclass PDFHistory {\n  #eventAbortController = null;\n  constructor({\n    linkService,\n    eventBus\n  }) {\n    this.linkService = linkService;\n    this.eventBus = eventBus;\n    this._initialized = false;\n    this._fingerprint = \"\";\n    this.reset();\n    this.eventBus._on(\"pagesinit\", () => {\n      this._isPagesLoaded = false;\n      this.eventBus._on(\"pagesloaded\", evt => {\n        this._isPagesLoaded = !!evt.pagesCount;\n      }, {\n        once: true\n      });\n    });\n  }\n  initialize({\n    fingerprint,\n    resetHistory = false,\n    updateUrl = false\n  }) {\n    if (!fingerprint || typeof fingerprint !== \"string\") {\n      console.error('PDFHistory.initialize: The \"fingerprint\" must be a non-empty string.');\n      return;\n    }\n    if (this._initialized) {\n      this.reset();\n    }\n    const reInitialized = this._fingerprint !== \"\" && this._fingerprint !== fingerprint;\n    this._fingerprint = fingerprint;\n    this._updateUrl = updateUrl === true;\n    this._initialized = true;\n    this.#bindEvents();\n    const state = window.history.state;\n    this._popStateInProgress = false;\n    this._blockHashChange = 0;\n    this._currentHash = getCurrentHash();\n    this._numPositionUpdates = 0;\n    this._uid = this._maxUid = 0;\n    this._destination = null;\n    this._position = null;\n    if (!this.#isValidState(state, true) || resetHistory) {\n      const {\n        hash,\n        page,\n        rotation\n      } = this.#parseCurrentHash(true);\n      if (!hash || reInitialized || resetHistory) {\n        this.#pushOrReplaceState(null, true);\n        return;\n      }\n      this.#pushOrReplaceState({\n        hash,\n        page,\n        rotation\n      }, true);\n      return;\n    }\n    const destination = state.destination;\n    this.#updateInternalState(destination, state.uid, true);\n    if (destination.rotation !== undefined) {\n      this._initialRotation = destination.rotation;\n    }\n    if (destination.dest) {\n      this._initialBookmark = JSON.stringify(destination.dest);\n      this._destination.page = null;\n    } else if (destination.hash) {\n      this._initialBookmark = destination.hash;\n    } else if (destination.page) {\n      this._initialBookmark = `page=${destination.page}`;\n    }\n  }\n  reset() {\n    if (this._initialized) {\n      this.#pageHide();\n      this._initialized = false;\n      this.#unbindEvents();\n    }\n    if (this._updateViewareaTimeout) {\n      clearTimeout(this._updateViewareaTimeout);\n      this._updateViewareaTimeout = null;\n    }\n    this._initialBookmark = null;\n    this._initialRotation = null;\n  }\n  push({\n    namedDest = null,\n    explicitDest,\n    pageNumber\n  }) {\n    if (!this._initialized) {\n      return;\n    }\n    if (namedDest && typeof namedDest !== \"string\") {\n      console.error(\"PDFHistory.push: \" + `\"${namedDest}\" is not a valid namedDest parameter.`);\n      return;\n    } else if (!Array.isArray(explicitDest)) {\n      console.error(\"PDFHistory.push: \" + `\"${explicitDest}\" is not a valid explicitDest parameter.`);\n      return;\n    } else if (!this.#isValidPage(pageNumber)) {\n      if (pageNumber !== null || this._destination) {\n        console.error(\"PDFHistory.push: \" + `\"${pageNumber}\" is not a valid pageNumber parameter.`);\n        return;\n      }\n    }\n    const hash = namedDest || JSON.stringify(explicitDest);\n    if (!hash) {\n      return;\n    }\n    let forceReplace = false;\n    if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {\n      if (this._destination.page) {\n        return;\n      }\n      forceReplace = true;\n    }\n    if (this._popStateInProgress && !forceReplace) {\n      return;\n    }\n    this.#pushOrReplaceState({\n      dest: explicitDest,\n      hash,\n      page: pageNumber,\n      rotation: this.linkService.rotation\n    }, forceReplace);\n    if (!this._popStateInProgress) {\n      this._popStateInProgress = true;\n      Promise.resolve().then(() => {\n        this._popStateInProgress = false;\n      });\n    }\n  }\n  pushPage(pageNumber) {\n    if (!this._initialized) {\n      return;\n    }\n    if (!this.#isValidPage(pageNumber)) {\n      console.error(`PDFHistory.pushPage: \"${pageNumber}\" is not a valid page number.`);\n      return;\n    }\n    if (this._destination?.page === pageNumber) {\n      return;\n    }\n    if (this._popStateInProgress) {\n      return;\n    }\n    this.#pushOrReplaceState({\n      dest: null,\n      hash: `page=${pageNumber}`,\n      page: pageNumber,\n      rotation: this.linkService.rotation\n    });\n    if (!this._popStateInProgress) {\n      this._popStateInProgress = true;\n      Promise.resolve().then(() => {\n        this._popStateInProgress = false;\n      });\n    }\n  }\n  pushCurrentPosition() {\n    if (!this._initialized || this._popStateInProgress) {\n      return;\n    }\n    this.#tryPushCurrentPosition();\n  }\n  back() {\n    if (!this._initialized || this._popStateInProgress) {\n      return;\n    }\n    const state = window.history.state;\n    if (this.#isValidState(state) && state.uid > 0) {\n      window.history.back();\n    }\n  }\n  forward() {\n    if (!this._initialized || this._popStateInProgress) {\n      return;\n    }\n    const state = window.history.state;\n    if (this.#isValidState(state) && state.uid < this._maxUid) {\n      window.history.forward();\n    }\n  }\n  get popStateInProgress() {\n    return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);\n  }\n  get initialBookmark() {\n    return this._initialized ? this._initialBookmark : null;\n  }\n  get initialRotation() {\n    return this._initialized ? this._initialRotation : null;\n  }\n  #pushOrReplaceState(destination, forceReplace = false) {\n    const shouldReplace = forceReplace || !this._destination;\n    const newState = {\n      fingerprint: this._fingerprint,\n      uid: shouldReplace ? this._uid : this._uid + 1,\n      destination\n    };\n    this.#updateInternalState(destination, newState.uid);\n    let newUrl;\n    if (this._updateUrl && destination?.hash) {\n      const {\n        href,\n        protocol\n      } = document.location;\n      if (protocol !== \"file:\") {\n        newUrl = updateUrlHash(href, destination.hash);\n      }\n    }\n    if (shouldReplace) {\n      window.history.replaceState(newState, \"\", newUrl);\n    } else {\n      window.history.pushState(newState, \"\", newUrl);\n    }\n  }\n  #tryPushCurrentPosition(temporary = false) {\n    if (!this._position) {\n      return;\n    }\n    let position = this._position;\n    if (temporary) {\n      position = Object.assign(Object.create(null), this._position);\n      position.temporary = true;\n    }\n    if (!this._destination) {\n      this.#pushOrReplaceState(position);\n      return;\n    }\n    if (this._destination.temporary) {\n      this.#pushOrReplaceState(position, true);\n      return;\n    }\n    if (this._destination.hash === position.hash) {\n      return;\n    }\n    if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {\n      return;\n    }\n    let forceReplace = false;\n    if (this._destination.page >= position.first && this._destination.page <= position.page) {\n      if (this._destination.dest !== undefined || !this._destination.first) {\n        return;\n      }\n      forceReplace = true;\n    }\n    this.#pushOrReplaceState(position, forceReplace);\n  }\n  #isValidPage(val) {\n    return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;\n  }\n  #isValidState(state, checkReload = false) {\n    if (!state) {\n      return false;\n    }\n    if (state.fingerprint !== this._fingerprint) {\n      if (checkReload) {\n        if (typeof state.fingerprint !== \"string\" || state.fingerprint.length !== this._fingerprint.length) {\n          return false;\n        }\n        const [perfEntry] = performance.getEntriesByType(\"navigation\");\n        if (perfEntry?.type !== \"reload\") {\n          return false;\n        }\n      } else {\n        return false;\n      }\n    }\n    if (!Number.isInteger(state.uid) || state.uid < 0) {\n      return false;\n    }\n    if (state.destination === null || typeof state.destination !== \"object\") {\n      return false;\n    }\n    return true;\n  }\n  #updateInternalState(destination, uid, removeTemporary = false) {\n    if (this._updateViewareaTimeout) {\n      clearTimeout(this._updateViewareaTimeout);\n      this._updateViewareaTimeout = null;\n    }\n    if (removeTemporary && destination?.temporary) {\n      delete destination.temporary;\n    }\n    this._destination = destination;\n    this._uid = uid;\n    this._maxUid = Math.max(this._maxUid, uid);\n    this._numPositionUpdates = 0;\n  }\n  #parseCurrentHash(checkNameddest = false) {\n    const hash = unescape(getCurrentHash()).substring(1);\n    const params = parseQueryString(hash);\n    const nameddest = params.get(\"nameddest\") || \"\";\n    let page = params.get(\"page\") | 0;\n    if (!this.#isValidPage(page) || checkNameddest && nameddest.length > 0) {\n      page = null;\n    }\n    return {\n      hash,\n      page,\n      rotation: this.linkService.rotation\n    };\n  }\n  #updateViewarea({\n    location\n  }) {\n    if (this._updateViewareaTimeout) {\n      clearTimeout(this._updateViewareaTimeout);\n      this._updateViewareaTimeout = null;\n    }\n    this._position = {\n      hash: location.pdfOpenParams.substring(1),\n      page: this.linkService.page,\n      first: location.pageNumber,\n      rotation: location.rotation\n    };\n    if (this._popStateInProgress) {\n      return;\n    }\n    if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {\n      this._numPositionUpdates++;\n    }\n    if (UPDATE_VIEWAREA_TIMEOUT > 0) {\n      this._updateViewareaTimeout = setTimeout(() => {\n        if (!this._popStateInProgress) {\n          this.#tryPushCurrentPosition(true);\n        }\n        this._updateViewareaTimeout = null;\n      }, UPDATE_VIEWAREA_TIMEOUT);\n    }\n  }\n  #popState({\n    state\n  }) {\n    const newHash = getCurrentHash(),\n      hashChanged = this._currentHash !== newHash;\n    this._currentHash = newHash;\n    if (!state) {\n      this._uid++;\n      const {\n        hash,\n        page,\n        rotation\n      } = this.#parseCurrentHash();\n      this.#pushOrReplaceState({\n        hash,\n        page,\n        rotation\n      }, true);\n      return;\n    }\n    if (!this.#isValidState(state)) {\n      return;\n    }\n    this._popStateInProgress = true;\n    if (hashChanged) {\n      this._blockHashChange++;\n      waitOnEventOrTimeout({\n        target: window,\n        name: \"hashchange\",\n        delay: HASH_CHANGE_TIMEOUT\n      }).then(() => {\n        this._blockHashChange--;\n      });\n    }\n    const destination = state.destination;\n    this.#updateInternalState(destination, state.uid, true);\n    if (isValidRotation(destination.rotation)) {\n      this.linkService.rotation = destination.rotation;\n    }\n    if (destination.dest) {\n      this.linkService.goToDestination(destination.dest);\n    } else if (destination.hash) {\n      this.linkService.setHash(destination.hash);\n    } else if (destination.page) {\n      this.linkService.page = destination.page;\n    }\n    Promise.resolve().then(() => {\n      this._popStateInProgress = false;\n    });\n  }\n  #pageHide() {\n    if (!this._destination || this._destination.temporary) {\n      this.#tryPushCurrentPosition();\n    }\n  }\n  #bindEvents() {\n    if (this.#eventAbortController) {\n      return;\n    }\n    this.#eventAbortController = new AbortController();\n    const {\n      signal\n    } = this.#eventAbortController;\n    this.eventBus._on(\"updateviewarea\", this.#updateViewarea.bind(this), {\n      signal\n    });\n    window.addEventListener(\"popstate\", this.#popState.bind(this), {\n      signal\n    });\n    window.addEventListener(\"pagehide\", this.#pageHide.bind(this), {\n      signal\n    });\n  }\n  #unbindEvents() {\n    this.#eventAbortController?.abort();\n    this.#eventAbortController = null;\n  }\n}\nfunction isDestHashesEqual(destHash, pushHash) {\n  if (typeof destHash !== \"string\" || typeof pushHash !== \"string\") {\n    return false;\n  }\n  if (destHash === pushHash) {\n    return true;\n  }\n  const nameddest = parseQueryString(destHash).get(\"nameddest\");\n  if (nameddest === pushHash) {\n    return true;\n  }\n  return false;\n}\nfunction isDestArraysEqual(firstDest, secondDest) {\n  function isEntryEqual(first, second) {\n    if (typeof first !== typeof second) {\n      return false;\n    }\n    if (Array.isArray(first) || Array.isArray(second)) {\n      return false;\n    }\n    if (first !== null && typeof first === \"object\" && second !== null) {\n      if (Object.keys(first).length !== Object.keys(second).length) {\n        return false;\n      }\n      for (const key in first) {\n        if (!isEntryEqual(first[key], second[key])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    return first === second || Number.isNaN(first) && Number.isNaN(second);\n  }\n  if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {\n    return false;\n  }\n  if (firstDest.length !== secondDest.length) {\n    return false;\n  }\n  for (let i = 0, ii = firstDest.length; i < ii; i++) {\n    if (!isEntryEqual(firstDest[i], secondDest[i])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n;// ./web/pdf_layer_viewer.js\n\nclass PDFLayerViewer extends BaseTreeViewer {\n  constructor(options) {\n    super(options);\n    this.eventBus._on(\"optionalcontentconfigchanged\", evt => {\n      this.#updateLayers(evt.promise);\n    });\n    this.eventBus._on(\"resetlayers\", () => {\n      this.#updateLayers();\n    });\n    this.eventBus._on(\"togglelayerstree\", this._toggleAllTreeItems.bind(this));\n  }\n  reset() {\n    super.reset();\n    this._optionalContentConfig = null;\n    this._optionalContentVisibility?.clear();\n    this._optionalContentVisibility = null;\n  }\n  _dispatchEvent(layersCount) {\n    this.eventBus.dispatch(\"layersloaded\", {\n      source: this,\n      layersCount\n    });\n  }\n  _bindLink(element, {\n    groupId,\n    input\n  }) {\n    const setVisibility = () => {\n      const visible = input.checked;\n      this._optionalContentConfig.setVisibility(groupId, visible);\n      const cached = this._optionalContentVisibility.get(groupId);\n      if (cached) {\n        cached.visible = visible;\n      }\n      this.eventBus.dispatch(\"optionalcontentconfig\", {\n        source: this,\n        promise: Promise.resolve(this._optionalContentConfig)\n      });\n    };\n    element.onclick = evt => {\n      if (evt.target === input) {\n        setVisibility();\n        return true;\n      } else if (evt.target !== element) {\n        return true;\n      }\n      input.checked = !input.checked;\n      setVisibility();\n      return false;\n    };\n  }\n  _setNestedName(element, {\n    name = null\n  }) {\n    if (typeof name === \"string\") {\n      element.textContent = this._normalizeTextContent(name);\n      return;\n    }\n    element.setAttribute(\"data-l10n-id\", \"pdfjs-additional-layers\");\n    element.style.fontStyle = \"italic\";\n    this._l10n.translateOnce(element);\n  }\n  _addToggleButton(div, {\n    name = null\n  }) {\n    super._addToggleButton(div, name === null);\n  }\n  _toggleAllTreeItems() {\n    if (!this._optionalContentConfig) {\n      return;\n    }\n    super._toggleAllTreeItems();\n  }\n  render({\n    optionalContentConfig,\n    pdfDocument\n  }) {\n    if (this._optionalContentConfig) {\n      this.reset();\n    }\n    this._optionalContentConfig = optionalContentConfig || null;\n    this._pdfDocument = pdfDocument || null;\n    const groups = optionalContentConfig?.getOrder();\n    if (!groups) {\n      this._dispatchEvent(0);\n      return;\n    }\n    this._optionalContentVisibility = new Map();\n    const fragment = document.createDocumentFragment(),\n      queue = [{\n        parent: fragment,\n        groups\n      }];\n    let layersCount = 0,\n      hasAnyNesting = false;\n    while (queue.length > 0) {\n      const levelData = queue.shift();\n      for (const groupId of levelData.groups) {\n        const div = document.createElement(\"div\");\n        div.className = \"treeItem\";\n        const element = document.createElement(\"a\");\n        div.append(element);\n        if (typeof groupId === \"object\") {\n          hasAnyNesting = true;\n          this._addToggleButton(div, groupId);\n          this._setNestedName(element, groupId);\n          const itemsDiv = document.createElement(\"div\");\n          itemsDiv.className = \"treeItems\";\n          div.append(itemsDiv);\n          queue.push({\n            parent: itemsDiv,\n            groups: groupId.order\n          });\n        } else {\n          const group = optionalContentConfig.getGroup(groupId);\n          const input = document.createElement(\"input\");\n          this._bindLink(element, {\n            groupId,\n            input\n          });\n          input.type = \"checkbox\";\n          input.checked = group.visible;\n          this._optionalContentVisibility.set(groupId, {\n            input,\n            visible: input.checked\n          });\n          const label = document.createElement(\"label\");\n          label.textContent = this._normalizeTextContent(group.name);\n          label.append(input);\n          element.append(label);\n          layersCount++;\n        }\n        levelData.parent.append(div);\n      }\n    }\n    this._finishRendering(fragment, layersCount, hasAnyNesting);\n  }\n  async #updateLayers(promise = null) {\n    if (!this._optionalContentConfig) {\n      return;\n    }\n    const pdfDocument = this._pdfDocument;\n    const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig({\n      intent: \"display\"\n    }));\n    if (pdfDocument !== this._pdfDocument) {\n      return;\n    }\n    if (promise) {\n      for (const [groupId, cached] of this._optionalContentVisibility) {\n        const group = optionalContentConfig.getGroup(groupId);\n        if (group && cached.visible !== group.visible) {\n          cached.input.checked = cached.visible = !cached.visible;\n        }\n      }\n      return;\n    }\n    this.eventBus.dispatch(\"optionalcontentconfig\", {\n      source: this,\n      promise: Promise.resolve(optionalContentConfig)\n    });\n    this.render({\n      optionalContentConfig,\n      pdfDocument: this._pdfDocument\n    });\n  }\n}\n\n;// ./web/pdf_outline_viewer.js\n\n\nclass PDFOutlineViewer extends BaseTreeViewer {\n  constructor(options) {\n    super(options);\n    this.linkService = options.linkService;\n    this.downloadManager = options.downloadManager;\n    this.eventBus._on(\"toggleoutlinetree\", this._toggleAllTreeItems.bind(this));\n    this.eventBus._on(\"currentoutlineitem\", this._currentOutlineItem.bind(this));\n    this.eventBus._on(\"pagechanging\", evt => {\n      this._currentPageNumber = evt.pageNumber;\n    });\n    this.eventBus._on(\"pagesloaded\", evt => {\n      this._isPagesLoaded = !!evt.pagesCount;\n      this._currentOutlineItemCapability?.resolve(this._isPagesLoaded);\n    });\n    this.eventBus._on(\"sidebarviewchanged\", evt => {\n      this._sidebarView = evt.view;\n    });\n  }\n  reset() {\n    super.reset();\n    this._outline = null;\n    this._pageNumberToDestHashCapability = null;\n    this._currentPageNumber = 1;\n    this._isPagesLoaded = null;\n    this._currentOutlineItemCapability?.resolve(false);\n    this._currentOutlineItemCapability = null;\n  }\n  _dispatchEvent(outlineCount) {\n    this._currentOutlineItemCapability = Promise.withResolvers();\n    if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) {\n      this._currentOutlineItemCapability.resolve(false);\n    } else if (this._isPagesLoaded !== null) {\n      this._currentOutlineItemCapability.resolve(this._isPagesLoaded);\n    }\n    this.eventBus.dispatch(\"outlineloaded\", {\n      source: this,\n      outlineCount,\n      currentOutlineItemPromise: this._currentOutlineItemCapability.promise\n    });\n  }\n  _bindLink(element, {\n    url,\n    newWindow,\n    action,\n    attachment,\n    dest,\n    setOCGState\n  }) {\n    const {\n      linkService\n    } = this;\n    if (url) {\n      linkService.addLinkAttributes(element, url, newWindow);\n      return;\n    }\n    if (action) {\n      element.href = linkService.getAnchorUrl(\"\");\n      element.onclick = () => {\n        linkService.executeNamedAction(action);\n        return false;\n      };\n      return;\n    }\n    if (attachment) {\n      element.href = linkService.getAnchorUrl(\"\");\n      element.onclick = () => {\n        this.downloadManager.openOrDownloadData(attachment.content, attachment.filename);\n        return false;\n      };\n      return;\n    }\n    if (setOCGState) {\n      element.href = linkService.getAnchorUrl(\"\");\n      element.onclick = () => {\n        linkService.executeSetOCGState(setOCGState);\n        return false;\n      };\n      return;\n    }\n    element.href = linkService.getDestinationHash(dest);\n    element.onclick = evt => {\n      this._updateCurrentTreeItem(evt.target.parentNode);\n      if (dest) {\n        linkService.goToDestination(dest);\n      }\n      return false;\n    };\n  }\n  _setStyles(element, {\n    bold,\n    italic\n  }) {\n    if (bold) {\n      element.style.fontWeight = \"bold\";\n    }\n    if (italic) {\n      element.style.fontStyle = \"italic\";\n    }\n  }\n  _addToggleButton(div, {\n    count,\n    items\n  }) {\n    let hidden = false;\n    if (count < 0) {\n      let totalCount = items.length;\n      if (totalCount > 0) {\n        const queue = [...items];\n        while (queue.length > 0) {\n          const {\n            count: nestedCount,\n            items: nestedItems\n          } = queue.shift();\n          if (nestedCount > 0 && nestedItems.length > 0) {\n            totalCount += nestedItems.length;\n            queue.push(...nestedItems);\n          }\n        }\n      }\n      if (Math.abs(count) === totalCount) {\n        hidden = true;\n      }\n    }\n    super._addToggleButton(div, hidden);\n  }\n  _toggleAllTreeItems() {\n    if (!this._outline) {\n      return;\n    }\n    super._toggleAllTreeItems();\n  }\n  render({\n    outline,\n    pdfDocument\n  }) {\n    if (this._outline) {\n      this.reset();\n    }\n    this._outline = outline || null;\n    this._pdfDocument = pdfDocument || null;\n    if (!outline) {\n      this._dispatchEvent(0);\n      return;\n    }\n    const fragment = document.createDocumentFragment();\n    const queue = [{\n      parent: fragment,\n      items: outline\n    }];\n    let outlineCount = 0,\n      hasAnyNesting = false;\n    while (queue.length > 0) {\n      const levelData = queue.shift();\n      for (const item of levelData.items) {\n        const div = document.createElement(\"div\");\n        div.className = \"treeItem\";\n        const element = document.createElement(\"a\");\n        this._bindLink(element, item);\n        this._setStyles(element, item);\n        element.textContent = this._normalizeTextContent(item.title);\n        div.append(element);\n        if (item.items.length > 0) {\n          hasAnyNesting = true;\n          this._addToggleButton(div, item);\n          const itemsDiv = document.createElement(\"div\");\n          itemsDiv.className = \"treeItems\";\n          div.append(itemsDiv);\n          queue.push({\n            parent: itemsDiv,\n            items: item.items\n          });\n        }\n        levelData.parent.append(div);\n        outlineCount++;\n      }\n    }\n    this._finishRendering(fragment, outlineCount, hasAnyNesting);\n  }\n  async _currentOutlineItem() {\n    if (!this._isPagesLoaded) {\n      throw new Error(\"_currentOutlineItem: All pages have not been loaded.\");\n    }\n    if (!this._outline || !this._pdfDocument) {\n      return;\n    }\n    const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument);\n    if (!pageNumberToDestHash) {\n      return;\n    }\n    this._updateCurrentTreeItem(null);\n    if (this._sidebarView !== SidebarView.OUTLINE) {\n      return;\n    }\n    for (let i = this._currentPageNumber; i > 0; i--) {\n      const destHash = pageNumberToDestHash.get(i);\n      if (!destHash) {\n        continue;\n      }\n      const linkElement = this.container.querySelector(`a[href=\"${destHash}\"]`);\n      if (!linkElement) {\n        continue;\n      }\n      this._scrollToCurrentTreeItem(linkElement.parentNode);\n      break;\n    }\n  }\n  async _getPageNumberToDestHash(pdfDocument) {\n    if (this._pageNumberToDestHashCapability) {\n      return this._pageNumberToDestHashCapability.promise;\n    }\n    this._pageNumberToDestHashCapability = Promise.withResolvers();\n    const pageNumberToDestHash = new Map(),\n      pageNumberNesting = new Map();\n    const queue = [{\n      nesting: 0,\n      items: this._outline\n    }];\n    while (queue.length > 0) {\n      const levelData = queue.shift(),\n        currentNesting = levelData.nesting;\n      for (const {\n        dest,\n        items\n      } of levelData.items) {\n        let explicitDest, pageNumber;\n        if (typeof dest === \"string\") {\n          explicitDest = await pdfDocument.getDestination(dest);\n          if (pdfDocument !== this._pdfDocument) {\n            return null;\n          }\n        } else {\n          explicitDest = dest;\n        }\n        if (Array.isArray(explicitDest)) {\n          const [destRef] = explicitDest;\n          if (destRef && typeof destRef === \"object\") {\n            pageNumber = pdfDocument.cachedPageNumber(destRef);\n          } else if (Number.isInteger(destRef)) {\n            pageNumber = destRef + 1;\n          }\n          if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) {\n            const destHash = this.linkService.getDestinationHash(dest);\n            pageNumberToDestHash.set(pageNumber, destHash);\n            pageNumberNesting.set(pageNumber, currentNesting);\n          }\n        }\n        if (items.length > 0) {\n          queue.push({\n            nesting: currentNesting + 1,\n            items\n          });\n        }\n      }\n    }\n    this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null);\n    return this._pageNumberToDestHashCapability.promise;\n  }\n}\n\n;// ./web/pdf_presentation_mode.js\n\n\nconst DELAY_BEFORE_HIDING_CONTROLS = 3000;\nconst ACTIVE_SELECTOR = \"pdfPresentationMode\";\nconst CONTROLS_SELECTOR = \"pdfPresentationModeControls\";\nconst MOUSE_SCROLL_COOLDOWN_TIME = 50;\nconst PAGE_SWITCH_THRESHOLD = 0.1;\nconst SWIPE_MIN_DISTANCE_THRESHOLD = 50;\nconst SWIPE_ANGLE_THRESHOLD = Math.PI / 6;\nclass PDFPresentationMode {\n  #state = PresentationModeState.UNKNOWN;\n  #args = null;\n  #fullscreenChangeAbortController = null;\n  #windowAbortController = null;\n  constructor({\n    container,\n    pdfViewer,\n    eventBus\n  }) {\n    this.container = container;\n    this.pdfViewer = pdfViewer;\n    this.eventBus = eventBus;\n    this.contextMenuOpen = false;\n    this.mouseScrollTimeStamp = 0;\n    this.mouseScrollDelta = 0;\n    this.touchSwipeState = null;\n  }\n  async request() {\n    const {\n      container,\n      pdfViewer\n    } = this;\n    if (this.active || !pdfViewer.pagesCount || !container.requestFullscreen) {\n      return false;\n    }\n    this.#addFullscreenChangeListeners();\n    this.#notifyStateChange(PresentationModeState.CHANGING);\n    const promise = container.requestFullscreen();\n    this.#args = {\n      pageNumber: pdfViewer.currentPageNumber,\n      scaleValue: pdfViewer.currentScaleValue,\n      scrollMode: pdfViewer.scrollMode,\n      spreadMode: null,\n      annotationEditorMode: null\n    };\n    if (pdfViewer.spreadMode !== SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) {\n      console.warn(\"Ignoring Spread modes when entering PresentationMode, \" + \"since the document may contain varying page sizes.\");\n      this.#args.spreadMode = pdfViewer.spreadMode;\n    }\n    if (pdfViewer.annotationEditorMode !== AnnotationEditorType.DISABLE) {\n      this.#args.annotationEditorMode = pdfViewer.annotationEditorMode;\n    }\n    try {\n      await promise;\n      pdfViewer.focus();\n      return true;\n    } catch {\n      this.#removeFullscreenChangeListeners();\n      this.#notifyStateChange(PresentationModeState.NORMAL);\n    }\n    return false;\n  }\n  get active() {\n    return this.#state === PresentationModeState.CHANGING || this.#state === PresentationModeState.FULLSCREEN;\n  }\n  #mouseWheel(evt) {\n    if (!this.active) {\n      return;\n    }\n    evt.preventDefault();\n    const delta = normalizeWheelEventDelta(evt);\n    const currentTime = Date.now();\n    const storedTime = this.mouseScrollTimeStamp;\n    if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) {\n      return;\n    }\n    if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) {\n      this.#resetMouseScrollState();\n    }\n    this.mouseScrollDelta += delta;\n    if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) {\n      const totalDelta = this.mouseScrollDelta;\n      this.#resetMouseScrollState();\n      const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage();\n      if (success) {\n        this.mouseScrollTimeStamp = currentTime;\n      }\n    }\n  }\n  #notifyStateChange(state) {\n    this.#state = state;\n    this.eventBus.dispatch(\"presentationmodechanged\", {\n      source: this,\n      state\n    });\n  }\n  #enter() {\n    this.#notifyStateChange(PresentationModeState.FULLSCREEN);\n    this.container.classList.add(ACTIVE_SELECTOR);\n    setTimeout(() => {\n      this.pdfViewer.scrollMode = ScrollMode.PAGE;\n      if (this.#args.spreadMode !== null) {\n        this.pdfViewer.spreadMode = SpreadMode.NONE;\n      }\n      this.pdfViewer.currentPageNumber = this.#args.pageNumber;\n      this.pdfViewer.currentScaleValue = \"page-fit\";\n      if (this.#args.annotationEditorMode !== null) {\n        this.pdfViewer.annotationEditorMode = {\n          mode: AnnotationEditorType.NONE\n        };\n      }\n    }, 0);\n    this.#addWindowListeners();\n    this.#showControls();\n    this.contextMenuOpen = false;\n    document.getSelection().empty();\n  }\n  #exit() {\n    const pageNumber = this.pdfViewer.currentPageNumber;\n    this.container.classList.remove(ACTIVE_SELECTOR);\n    setTimeout(() => {\n      this.#removeFullscreenChangeListeners();\n      this.#notifyStateChange(PresentationModeState.NORMAL);\n      this.pdfViewer.scrollMode = this.#args.scrollMode;\n      if (this.#args.spreadMode !== null) {\n        this.pdfViewer.spreadMode = this.#args.spreadMode;\n      }\n      this.pdfViewer.currentScaleValue = this.#args.scaleValue;\n      this.pdfViewer.currentPageNumber = pageNumber;\n      if (this.#args.annotationEditorMode !== null) {\n        this.pdfViewer.annotationEditorMode = {\n          mode: this.#args.annotationEditorMode\n        };\n      }\n      this.#args = null;\n    }, 0);\n    this.#removeWindowListeners();\n    this.#hideControls();\n    this.#resetMouseScrollState();\n    this.contextMenuOpen = false;\n  }\n  #mouseDown(evt) {\n    if (this.contextMenuOpen) {\n      this.contextMenuOpen = false;\n      evt.preventDefault();\n      return;\n    }\n    if (evt.button !== 0) {\n      return;\n    }\n    if (evt.target.href && evt.target.parentNode?.hasAttribute(\"data-internal-link\")) {\n      return;\n    }\n    evt.preventDefault();\n    if (evt.shiftKey) {\n      this.pdfViewer.previousPage();\n    } else {\n      this.pdfViewer.nextPage();\n    }\n  }\n  #contextMenu() {\n    this.contextMenuOpen = true;\n  }\n  #showControls() {\n    if (this.controlsTimeout) {\n      clearTimeout(this.controlsTimeout);\n    } else {\n      this.container.classList.add(CONTROLS_SELECTOR);\n    }\n    this.controlsTimeout = setTimeout(() => {\n      this.container.classList.remove(CONTROLS_SELECTOR);\n      delete this.controlsTimeout;\n    }, DELAY_BEFORE_HIDING_CONTROLS);\n  }\n  #hideControls() {\n    if (!this.controlsTimeout) {\n      return;\n    }\n    clearTimeout(this.controlsTimeout);\n    this.container.classList.remove(CONTROLS_SELECTOR);\n    delete this.controlsTimeout;\n  }\n  #resetMouseScrollState() {\n    this.mouseScrollTimeStamp = 0;\n    this.mouseScrollDelta = 0;\n  }\n  #touchSwipe(evt) {\n    if (!this.active) {\n      return;\n    }\n    if (evt.touches.length > 1) {\n      this.touchSwipeState = null;\n      return;\n    }\n    switch (evt.type) {\n      case \"touchstart\":\n        this.touchSwipeState = {\n          startX: evt.touches[0].pageX,\n          startY: evt.touches[0].pageY,\n          endX: evt.touches[0].pageX,\n          endY: evt.touches[0].pageY\n        };\n        break;\n      case \"touchmove\":\n        if (this.touchSwipeState === null) {\n          return;\n        }\n        this.touchSwipeState.endX = evt.touches[0].pageX;\n        this.touchSwipeState.endY = evt.touches[0].pageY;\n        evt.preventDefault();\n        break;\n      case \"touchend\":\n        if (this.touchSwipeState === null) {\n          return;\n        }\n        let delta = 0;\n        const dx = this.touchSwipeState.endX - this.touchSwipeState.startX;\n        const dy = this.touchSwipeState.endY - this.touchSwipeState.startY;\n        const absAngle = Math.abs(Math.atan2(dy, dx));\n        if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) {\n          delta = dx;\n        } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) {\n          delta = dy;\n        }\n        if (delta > 0) {\n          this.pdfViewer.previousPage();\n        } else if (delta < 0) {\n          this.pdfViewer.nextPage();\n        }\n        break;\n    }\n  }\n  #addWindowListeners() {\n    if (this.#windowAbortController) {\n      return;\n    }\n    this.#windowAbortController = new AbortController();\n    const {\n      signal\n    } = this.#windowAbortController;\n    const touchSwipeBind = this.#touchSwipe.bind(this);\n    window.addEventListener(\"mousemove\", this.#showControls.bind(this), {\n      signal\n    });\n    window.addEventListener(\"mousedown\", this.#mouseDown.bind(this), {\n      signal\n    });\n    window.addEventListener(\"wheel\", this.#mouseWheel.bind(this), {\n      passive: false,\n      signal\n    });\n    window.addEventListener(\"keydown\", this.#resetMouseScrollState.bind(this), {\n      signal\n    });\n    window.addEventListener(\"contextmenu\", this.#contextMenu.bind(this), {\n      signal\n    });\n    window.addEventListener(\"touchstart\", touchSwipeBind, {\n      signal\n    });\n    window.addEventListener(\"touchmove\", touchSwipeBind, {\n      signal\n    });\n    window.addEventListener(\"touchend\", touchSwipeBind, {\n      signal\n    });\n  }\n  #removeWindowListeners() {\n    this.#windowAbortController?.abort();\n    this.#windowAbortController = null;\n  }\n  #addFullscreenChangeListeners() {\n    if (this.#fullscreenChangeAbortController) {\n      return;\n    }\n    this.#fullscreenChangeAbortController = new AbortController();\n    window.addEventListener(\"fullscreenchange\", () => {\n      if (document.fullscreenElement) {\n        this.#enter();\n      } else {\n        this.#exit();\n      }\n    }, {\n      signal: this.#fullscreenChangeAbortController.signal\n    });\n  }\n  #removeFullscreenChangeListeners() {\n    this.#fullscreenChangeAbortController?.abort();\n    this.#fullscreenChangeAbortController = null;\n  }\n}\n\n;// ./web/xfa_layer_builder.js\n\nclass XfaLayerBuilder {\n  constructor({\n    pdfPage,\n    annotationStorage = null,\n    linkService,\n    xfaHtml = null\n  }) {\n    this.pdfPage = pdfPage;\n    this.annotationStorage = annotationStorage;\n    this.linkService = linkService;\n    this.xfaHtml = xfaHtml;\n    this.div = null;\n    this._cancelled = false;\n  }\n  async render({\n    viewport,\n    intent = \"display\"\n  }) {\n    if (intent === \"print\") {\n      const parameters = {\n        viewport: viewport.clone({\n          dontFlip: true\n        }),\n        div: this.div,\n        xfaHtml: this.xfaHtml,\n        annotationStorage: this.annotationStorage,\n        linkService: this.linkService,\n        intent\n      };\n      this.div = document.createElement(\"div\");\n      parameters.div = this.div;\n      return XfaLayer.render(parameters);\n    }\n    const xfaHtml = await this.pdfPage.getXfa();\n    if (this._cancelled || !xfaHtml) {\n      return {\n        textDivs: []\n      };\n    }\n    const parameters = {\n      viewport: viewport.clone({\n        dontFlip: true\n      }),\n      div: this.div,\n      xfaHtml,\n      annotationStorage: this.annotationStorage,\n      linkService: this.linkService,\n      intent\n    };\n    if (this.div) {\n      return XfaLayer.update(parameters);\n    }\n    this.div = document.createElement(\"div\");\n    parameters.div = this.div;\n    return XfaLayer.render(parameters);\n  }\n  cancel() {\n    this._cancelled = true;\n  }\n  hide() {\n    if (!this.div) {\n      return;\n    }\n    this.div.hidden = true;\n  }\n}\n\n;// ./web/print_utils.js\n\n\n\nfunction getXfaHtmlForPrinting(printContainer, pdfDocument) {\n  const xfaHtml = pdfDocument.allXfaHtml;\n  const linkService = new SimpleLinkService();\n  const scale = Math.round(PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100;\n  for (const xfaPage of xfaHtml.children) {\n    const page = document.createElement(\"div\");\n    page.className = \"xfaPrintedPage\";\n    printContainer.append(page);\n    const builder = new XfaLayerBuilder({\n      pdfPage: null,\n      annotationStorage: pdfDocument.annotationStorage,\n      linkService,\n      xfaHtml: xfaPage\n    });\n    const viewport = getXfaPageViewport(xfaPage, {\n      scale\n    });\n    builder.render({\n      viewport,\n      intent: \"print\"\n    });\n    page.append(builder.div);\n  }\n}\n\n;// ./web/pdf_print_service.js\n\n\nlet activeService = null;\nlet dialog = null;\nlet overlayManager = null;\nlet viewerApp = {\n  initialized: false\n};\nfunction renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) {\n  const scratchCanvas = activeService.scratchCanvas;\n  const PRINT_UNITS = printResolution / PixelsPerInch.PDF;\n  scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);\n  scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);\n  const ctx = scratchCanvas.getContext(\"2d\");\n  ctx.save();\n  ctx.fillStyle = \"rgb(255, 255, 255)\";\n  ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height);\n  ctx.restore();\n  return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) {\n    const renderContext = {\n      canvas: scratchCanvas,\n      transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],\n      viewport: pdfPage.getViewport({\n        scale: 1,\n        rotation: size.rotation\n      }),\n      intent: \"print\",\n      annotationMode: AnnotationMode.ENABLE_STORAGE,\n      optionalContentConfigPromise,\n      printAnnotationStorage\n    };\n    const renderTask = pdfPage.render(renderContext);\n    return renderTask.promise.catch(reason => {\n      if (!(reason instanceof RenderingCancelledException)) {\n        console.error(reason);\n      }\n      throw reason;\n    });\n  });\n}\nclass PDFPrintService {\n  constructor({\n    pdfDocument,\n    pagesOverview,\n    printContainer,\n    printResolution,\n    printAnnotationStoragePromise = null\n  }) {\n    this.pdfDocument = pdfDocument;\n    this.pagesOverview = pagesOverview;\n    this.printContainer = printContainer;\n    this._printResolution = printResolution || 150;\n    this._optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({\n      intent: \"print\"\n    });\n    this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve();\n    this.currentPage = -1;\n    this.scratchCanvas = document.createElement(\"canvas\");\n  }\n  layout() {\n    this.throwIfInactive();\n    const body = document.querySelector(\"body\");\n    body.setAttribute(\"data-pdfjsprinting\", true);\n    const {\n      width,\n      height\n    } = this.pagesOverview[0];\n    const hasEqualPageSizes = this.pagesOverview.every(size => size.width === width && size.height === height);\n    if (!hasEqualPageSizes) {\n      console.warn(\"Not all pages have the same size. The printed result may be incorrect!\");\n    }\n    this.pageStyleSheet = document.createElement(\"style\");\n    this.pageStyleSheet.textContent = `@page { size: ${width}pt ${height}pt;}`;\n    body.append(this.pageStyleSheet);\n  }\n  destroy() {\n    if (activeService !== this) {\n      return;\n    }\n    this.printContainer.textContent = \"\";\n    const body = document.querySelector(\"body\");\n    body.removeAttribute(\"data-pdfjsprinting\");\n    if (this.pageStyleSheet) {\n      this.pageStyleSheet.remove();\n      this.pageStyleSheet = null;\n    }\n    this.scratchCanvas.width = this.scratchCanvas.height = 0;\n    this.scratchCanvas = null;\n    activeService = null;\n    ensureOverlay().then(function () {\n      overlayManager.closeIfActive(dialog);\n    });\n  }\n  renderPages() {\n    if (this.pdfDocument.isPureXfa) {\n      getXfaHtmlForPrinting(this.printContainer, this.pdfDocument);\n      return Promise.resolve();\n    }\n    const pageCount = this.pagesOverview.length;\n    const renderNextPage = (resolve, reject) => {\n      this.throwIfInactive();\n      if (++this.currentPage >= pageCount) {\n        renderProgress(pageCount, pageCount);\n        resolve();\n        return;\n      }\n      const index = this.currentPage;\n      renderProgress(index, pageCount);\n      renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () {\n        renderNextPage(resolve, reject);\n      }, reject);\n    };\n    return new Promise(renderNextPage);\n  }\n  useRenderedPage() {\n    this.throwIfInactive();\n    const img = document.createElement(\"img\");\n    this.scratchCanvas.toBlob(blob => {\n      img.src = URL.createObjectURL(blob);\n    });\n    const wrapper = document.createElement(\"div\");\n    wrapper.className = \"printedPage\";\n    wrapper.append(img);\n    this.printContainer.append(wrapper);\n    const {\n      promise,\n      resolve,\n      reject\n    } = Promise.withResolvers();\n    img.onload = resolve;\n    img.onerror = reject;\n    promise.catch(() => {}).then(() => {\n      URL.revokeObjectURL(img.src);\n    });\n    return promise;\n  }\n  performPrint() {\n    this.throwIfInactive();\n    return new Promise(resolve => {\n      setTimeout(() => {\n        if (!this.active) {\n          resolve();\n          return;\n        }\n        print.call(window);\n        setTimeout(resolve, 20);\n      }, 0);\n    });\n  }\n  get active() {\n    return this === activeService;\n  }\n  throwIfInactive() {\n    if (!this.active) {\n      throw new Error(\"This print request was cancelled or completed.\");\n    }\n  }\n}\nconst print = window.print;\nwindow.print = function () {\n  if (activeService) {\n    console.warn(\"Ignored window.print() because of a pending print job.\");\n    return;\n  }\n  ensureOverlay().then(function () {\n    if (activeService) {\n      overlayManager.open(dialog);\n    }\n  });\n  try {\n    dispatchEvent(\"beforeprint\");\n  } finally {\n    if (!activeService) {\n      console.error(\"Expected print service to be initialized.\");\n      ensureOverlay().then(function () {\n        overlayManager.closeIfActive(dialog);\n      });\n    } else {\n      const activeServiceOnEntry = activeService;\n      activeService.renderPages().then(() => activeServiceOnEntry.performPrint()).catch(() => {}).then(() => {\n        if (activeServiceOnEntry.active) {\n          abort();\n        }\n      });\n    }\n  }\n};\nfunction dispatchEvent(eventType) {\n  const event = new CustomEvent(eventType, {\n    bubbles: false,\n    cancelable: false,\n    detail: \"custom\"\n  });\n  window.dispatchEvent(event);\n}\nfunction abort() {\n  if (activeService) {\n    activeService.destroy();\n    dispatchEvent(\"afterprint\");\n  }\n}\nfunction renderProgress(index, total) {\n  dialog ||= document.getElementById(\"printServiceDialog\");\n  const progress = Math.round(100 * index / total);\n  const progressBar = dialog.querySelector(\"progress\");\n  const progressPerc = dialog.querySelector(\".relative-progress\");\n  progressBar.value = progress;\n  progressPerc.setAttribute(\"data-l10n-args\", JSON.stringify({\n    progress\n  }));\n}\nwindow.addEventListener(\"keydown\", function (event) {\n  if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {\n    if (window.parent !== window) {\n      return;\n    }\n    window.print();\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n}, true);\nif (\"onbeforeprint\" in window) {\n  const stopPropagationIfNeeded = function (event) {\n    if (event.detail !== \"custom\") {\n      event.stopImmediatePropagation();\n    }\n  };\n  window.addEventListener(\"beforeprint\", stopPropagationIfNeeded);\n  window.addEventListener(\"afterprint\", stopPropagationIfNeeded);\n}\nlet overlayPromise;\nfunction ensureOverlay() {\n  if (!overlayPromise) {\n    overlayManager = viewerApp.overlayManager;\n    if (!overlayManager) {\n      throw new Error(\"The overlay manager has not yet been initialized.\");\n    }\n    dialog ||= document.getElementById(\"printServiceDialog\");\n    overlayPromise = overlayManager.register(dialog, true);\n    document.getElementById(\"printCancel\").onclick = abort;\n    dialog.addEventListener(\"close\", abort);\n  }\n  return overlayPromise;\n}\nclass PDFPrintServiceFactory {\n  static initGlobals(app) {\n    viewerApp = app;\n  }\n  static get supportsPrinting() {\n    return shadow(this, \"supportsPrinting\", true);\n  }\n  static createPrintService(params) {\n    if (activeService) {\n      throw new Error(\"The print service is created and active.\");\n    }\n    return activeService = new PDFPrintService(params);\n  }\n}\n\n;// ./web/pdf_rendering_queue.js\n\n\nconst CLEANUP_TIMEOUT = 30000;\nclass PDFRenderingQueue {\n  constructor() {\n    this.pdfViewer = null;\n    this.pdfThumbnailViewer = null;\n    this.onIdle = null;\n    this.highestPriorityPage = null;\n    this.idleTimeout = null;\n    this.printing = false;\n    this.isThumbnailViewEnabled = false;\n    Object.defineProperty(this, \"hasViewer\", {\n      value: () => !!this.pdfViewer\n    });\n  }\n  setViewer(pdfViewer) {\n    this.pdfViewer = pdfViewer;\n  }\n  setThumbnailViewer(pdfThumbnailViewer) {\n    this.pdfThumbnailViewer = pdfThumbnailViewer;\n  }\n  isHighestPriority(view) {\n    return this.highestPriorityPage === view.renderingId;\n  }\n  renderHighestPriority(currentlyVisiblePages) {\n    if (this.idleTimeout) {\n      clearTimeout(this.idleTimeout);\n      this.idleTimeout = null;\n    }\n    if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {\n      return;\n    }\n    if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) {\n      return;\n    }\n    if (this.printing) {\n      return;\n    }\n    if (this.onIdle) {\n      this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);\n    }\n  }\n  getHighestPriority(visible, views, scrolledDown, preRenderExtra = false, ignoreDetailViews = false) {\n    const visibleViews = visible.views,\n      numVisible = visibleViews.length;\n    if (numVisible === 0) {\n      return null;\n    }\n    for (let i = 0; i < numVisible; i++) {\n      const view = visibleViews[i].view;\n      if (!this.isViewFinished(view)) {\n        return view;\n      }\n    }\n    if (!ignoreDetailViews) {\n      for (let i = 0; i < numVisible; i++) {\n        const {\n          detailView\n        } = visibleViews[i].view;\n        if (detailView && !this.isViewFinished(detailView)) {\n          return detailView;\n        }\n      }\n    }\n    const firstId = visible.first.id,\n      lastId = visible.last.id;\n    if (lastId - firstId + 1 > numVisible) {\n      const visibleIds = visible.ids;\n      for (let i = 1, ii = lastId - firstId; i < ii; i++) {\n        const holeId = scrolledDown ? firstId + i : lastId - i;\n        if (visibleIds.has(holeId)) {\n          continue;\n        }\n        const holeView = views[holeId - 1];\n        if (!this.isViewFinished(holeView)) {\n          return holeView;\n        }\n      }\n    }\n    let preRenderIndex = scrolledDown ? lastId : firstId - 2;\n    let preRenderView = views[preRenderIndex];\n    if (preRenderView && !this.isViewFinished(preRenderView)) {\n      return preRenderView;\n    }\n    if (preRenderExtra) {\n      preRenderIndex += scrolledDown ? 1 : -1;\n      preRenderView = views[preRenderIndex];\n      if (preRenderView && !this.isViewFinished(preRenderView)) {\n        return preRenderView;\n      }\n    }\n    return null;\n  }\n  isViewFinished(view) {\n    return view.renderingState === RenderingStates.FINISHED;\n  }\n  renderView(view) {\n    switch (view.renderingState) {\n      case RenderingStates.FINISHED:\n        return false;\n      case RenderingStates.PAUSED:\n        this.highestPriorityPage = view.renderingId;\n        view.resume();\n        break;\n      case RenderingStates.RUNNING:\n        this.highestPriorityPage = view.renderingId;\n        break;\n      case RenderingStates.INITIAL:\n        this.highestPriorityPage = view.renderingId;\n        view.draw().finally(() => {\n          this.renderHighestPriority();\n        }).catch(reason => {\n          if (reason instanceof RenderingCancelledException) {\n            return;\n          }\n          console.error(\"renderView:\", reason);\n        });\n        break;\n    }\n    return true;\n  }\n}\n\n;// ./web/pdf_scripting_manager.js\n\n\nclass PDFScriptingManager {\n  #closeCapability = null;\n  #destroyCapability = null;\n  #docProperties = null;\n  #eventAbortController = null;\n  #eventBus = null;\n  #externalServices = null;\n  #pdfDocument = null;\n  #pdfViewer = null;\n  #ready = false;\n  #scripting = null;\n  #willPrintCapability = null;\n  constructor({\n    eventBus,\n    externalServices = null,\n    docProperties = null\n  }) {\n    this.#eventBus = eventBus;\n    this.#externalServices = externalServices;\n    this.#docProperties = docProperties;\n  }\n  setViewer(pdfViewer) {\n    this.#pdfViewer = pdfViewer;\n  }\n  async setDocument(pdfDocument) {\n    if (this.#pdfDocument) {\n      await this.#destroyScripting();\n    }\n    this.#pdfDocument = pdfDocument;\n    if (!pdfDocument) {\n      return;\n    }\n    const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);\n    if (!objects && !docActions) {\n      await this.#destroyScripting();\n      return;\n    }\n    if (pdfDocument !== this.#pdfDocument) {\n      return;\n    }\n    try {\n      this.#scripting = this.#initScripting();\n    } catch (error) {\n      console.error(\"setDocument:\", error);\n      await this.#destroyScripting();\n      return;\n    }\n    const eventBus = this.#eventBus;\n    this.#eventAbortController = new AbortController();\n    const {\n      signal\n    } = this.#eventAbortController;\n    eventBus._on(\"updatefromsandbox\", event => {\n      if (event?.source === window) {\n        this.#updateFromSandbox(event.detail);\n      }\n    }, {\n      signal\n    });\n    eventBus._on(\"dispatcheventinsandbox\", event => {\n      this.#scripting?.dispatchEventInSandbox(event.detail);\n    }, {\n      signal\n    });\n    eventBus._on(\"pagechanging\", ({\n      pageNumber,\n      previous\n    }) => {\n      if (pageNumber === previous) {\n        return;\n      }\n      this.#dispatchPageClose(previous);\n      this.#dispatchPageOpen(pageNumber);\n    }, {\n      signal\n    });\n    eventBus._on(\"pagerendered\", ({\n      pageNumber\n    }) => {\n      if (!this._pageOpenPending.has(pageNumber)) {\n        return;\n      }\n      if (pageNumber !== this.#pdfViewer.currentPageNumber) {\n        return;\n      }\n      this.#dispatchPageOpen(pageNumber);\n    }, {\n      signal\n    });\n    eventBus._on(\"pagesdestroy\", async () => {\n      await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber);\n      await this.#scripting?.dispatchEventInSandbox({\n        id: \"doc\",\n        name: \"WillClose\"\n      });\n      this.#closeCapability?.resolve();\n    }, {\n      signal\n    });\n    try {\n      const docProperties = await this.#docProperties(pdfDocument);\n      if (pdfDocument !== this.#pdfDocument) {\n        return;\n      }\n      await this.#scripting.createSandbox({\n        objects,\n        calculationOrder,\n        appInfo: {\n          platform: navigator.platform,\n          language: navigator.language\n        },\n        docInfo: {\n          ...docProperties,\n          actions: docActions\n        }\n      });\n      eventBus.dispatch(\"sandboxcreated\", {\n        source: this\n      });\n    } catch (error) {\n      console.error(\"setDocument:\", error);\n      await this.#destroyScripting();\n      return;\n    }\n    await this.#scripting?.dispatchEventInSandbox({\n      id: \"doc\",\n      name: \"Open\"\n    });\n    await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true);\n    Promise.resolve().then(() => {\n      if (pdfDocument === this.#pdfDocument) {\n        this.#ready = true;\n      }\n    });\n  }\n  async dispatchWillSave() {\n    return this.#scripting?.dispatchEventInSandbox({\n      id: \"doc\",\n      name: \"WillSave\"\n    });\n  }\n  async dispatchDidSave() {\n    return this.#scripting?.dispatchEventInSandbox({\n      id: \"doc\",\n      name: \"DidSave\"\n    });\n  }\n  async dispatchWillPrint() {\n    if (!this.#scripting) {\n      return;\n    }\n    await this.#willPrintCapability?.promise;\n    this.#willPrintCapability = Promise.withResolvers();\n    try {\n      await this.#scripting.dispatchEventInSandbox({\n        id: \"doc\",\n        name: \"WillPrint\"\n      });\n    } catch (ex) {\n      this.#willPrintCapability.resolve();\n      this.#willPrintCapability = null;\n      throw ex;\n    }\n    await this.#willPrintCapability.promise;\n  }\n  async dispatchDidPrint() {\n    return this.#scripting?.dispatchEventInSandbox({\n      id: \"doc\",\n      name: \"DidPrint\"\n    });\n  }\n  get destroyPromise() {\n    return this.#destroyCapability?.promise || null;\n  }\n  get ready() {\n    return this.#ready;\n  }\n  get _pageOpenPending() {\n    return shadow(this, \"_pageOpenPending\", new Set());\n  }\n  get _visitedPages() {\n    return shadow(this, \"_visitedPages\", new Map());\n  }\n  async #updateFromSandbox(detail) {\n    const pdfViewer = this.#pdfViewer;\n    const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode;\n    const {\n      id,\n      siblings,\n      command,\n      value\n    } = detail;\n    if (!id) {\n      switch (command) {\n        case \"clear\":\n          console.clear();\n          break;\n        case \"error\":\n          console.error(value);\n          break;\n        case \"layout\":\n          if (!isInPresentationMode) {\n            const modes = apiPageLayoutToViewerModes(value);\n            pdfViewer.spreadMode = modes.spreadMode;\n          }\n          break;\n        case \"page-num\":\n          pdfViewer.currentPageNumber = value + 1;\n          break;\n        case \"print\":\n          await pdfViewer.pagesPromise;\n          this.#eventBus.dispatch(\"print\", {\n            source: this\n          });\n          break;\n        case \"println\":\n          console.log(value);\n          break;\n        case \"zoom\":\n          if (!isInPresentationMode) {\n            pdfViewer.currentScaleValue = value;\n          }\n          break;\n        case \"SaveAs\":\n          this.#eventBus.dispatch(\"download\", {\n            source: this\n          });\n          break;\n        case \"FirstPage\":\n          pdfViewer.currentPageNumber = 1;\n          break;\n        case \"LastPage\":\n          pdfViewer.currentPageNumber = pdfViewer.pagesCount;\n          break;\n        case \"NextPage\":\n          pdfViewer.nextPage();\n          break;\n        case \"PrevPage\":\n          pdfViewer.previousPage();\n          break;\n        case \"ZoomViewIn\":\n          if (!isInPresentationMode) {\n            pdfViewer.increaseScale();\n          }\n          break;\n        case \"ZoomViewOut\":\n          if (!isInPresentationMode) {\n            pdfViewer.decreaseScale();\n          }\n          break;\n        case \"WillPrintFinished\":\n          this.#willPrintCapability?.resolve();\n          this.#willPrintCapability = null;\n          break;\n      }\n      return;\n    }\n    if (isInPresentationMode && detail.focus) {\n      return;\n    }\n    delete detail.id;\n    delete detail.siblings;\n    const ids = siblings ? [id, ...siblings] : [id];\n    for (const elementId of ids) {\n      const element = document.querySelector(`[data-element-id=\"${elementId}\"]`);\n      if (element) {\n        element.dispatchEvent(new CustomEvent(\"updatefromsandbox\", {\n          detail\n        }));\n      } else {\n        this.#pdfDocument?.annotationStorage.setValue(elementId, detail);\n      }\n    }\n  }\n  async #dispatchPageOpen(pageNumber, initialize = false) {\n    const pdfDocument = this.#pdfDocument,\n      visitedPages = this._visitedPages;\n    if (initialize) {\n      this.#closeCapability = Promise.withResolvers();\n    }\n    if (!this.#closeCapability) {\n      return;\n    }\n    const pageView = this.#pdfViewer.getPageView(pageNumber - 1);\n    if (pageView?.renderingState !== RenderingStates.FINISHED) {\n      this._pageOpenPending.add(pageNumber);\n      return;\n    }\n    this._pageOpenPending.delete(pageNumber);\n    const actionsPromise = (async () => {\n      const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null);\n      if (pdfDocument !== this.#pdfDocument) {\n        return;\n      }\n      await this.#scripting?.dispatchEventInSandbox({\n        id: \"page\",\n        name: \"PageOpen\",\n        pageNumber,\n        actions\n      });\n    })();\n    visitedPages.set(pageNumber, actionsPromise);\n  }\n  async #dispatchPageClose(pageNumber) {\n    const pdfDocument = this.#pdfDocument,\n      visitedPages = this._visitedPages;\n    if (!this.#closeCapability) {\n      return;\n    }\n    if (this._pageOpenPending.has(pageNumber)) {\n      return;\n    }\n    const actionsPromise = visitedPages.get(pageNumber);\n    if (!actionsPromise) {\n      return;\n    }\n    visitedPages.set(pageNumber, null);\n    await actionsPromise;\n    if (pdfDocument !== this.#pdfDocument) {\n      return;\n    }\n    await this.#scripting?.dispatchEventInSandbox({\n      id: \"page\",\n      name: \"PageClose\",\n      pageNumber\n    });\n  }\n  #initScripting() {\n    this.#destroyCapability = Promise.withResolvers();\n    if (this.#scripting) {\n      throw new Error(\"#initScripting: Scripting already exists.\");\n    }\n    return this.#externalServices.createScripting();\n  }\n  async #destroyScripting() {\n    if (!this.#scripting) {\n      this.#pdfDocument = null;\n      this.#destroyCapability?.resolve();\n      return;\n    }\n    if (this.#closeCapability) {\n      await Promise.race([this.#closeCapability.promise, new Promise(resolve => {\n        setTimeout(resolve, 1000);\n      })]).catch(() => {});\n      this.#closeCapability = null;\n    }\n    this.#pdfDocument = null;\n    try {\n      await this.#scripting.destroySandbox();\n    } catch {}\n    this.#willPrintCapability?.reject(new Error(\"Scripting destroyed.\"));\n    this.#willPrintCapability = null;\n    this.#eventAbortController?.abort();\n    this.#eventAbortController = null;\n    this._pageOpenPending.clear();\n    this._visitedPages.clear();\n    this.#scripting = null;\n    this.#ready = false;\n    this.#destroyCapability?.resolve();\n  }\n}\n\n;// ./web/pdf_sidebar.js\n\nconst SIDEBAR_WIDTH_VAR = \"--sidebar-width\";\nconst SIDEBAR_MIN_WIDTH = 200;\nconst SIDEBAR_RESIZING_CLASS = \"sidebarResizing\";\nconst UI_NOTIFICATION_CLASS = \"pdfSidebarNotification\";\nclass PDFSidebar {\n  #isRTL = false;\n  #mouseAC = null;\n  #outerContainerWidth = null;\n  #width = null;\n  constructor({\n    elements,\n    eventBus,\n    l10n\n  }) {\n    this.isOpen = false;\n    this.active = SidebarView.THUMBS;\n    this.isInitialViewSet = false;\n    this.isInitialEventDispatched = false;\n    this.onToggled = null;\n    this.onUpdateThumbnails = null;\n    this.outerContainer = elements.outerContainer;\n    this.sidebarContainer = elements.sidebarContainer;\n    this.toggleButton = elements.toggleButton;\n    this.resizer = elements.resizer;\n    this.thumbnailButton = elements.thumbnailButton;\n    this.outlineButton = elements.outlineButton;\n    this.attachmentsButton = elements.attachmentsButton;\n    this.layersButton = elements.layersButton;\n    this.thumbnailView = elements.thumbnailView;\n    this.outlineView = elements.outlineView;\n    this.attachmentsView = elements.attachmentsView;\n    this.layersView = elements.layersView;\n    this._currentOutlineItemButton = elements.currentOutlineItemButton;\n    this.eventBus = eventBus;\n    this.#isRTL = l10n.getDirection() === \"rtl\";\n    this.#addEventListeners();\n  }\n  reset() {\n    this.isInitialViewSet = false;\n    this.isInitialEventDispatched = false;\n    this.#hideUINotification(true);\n    this.switchView(SidebarView.THUMBS);\n    this.outlineButton.disabled = false;\n    this.attachmentsButton.disabled = false;\n    this.layersButton.disabled = false;\n    this._currentOutlineItemButton.disabled = true;\n  }\n  get visibleView() {\n    return this.isOpen ? this.active : SidebarView.NONE;\n  }\n  setInitialView(view = SidebarView.NONE) {\n    if (this.isInitialViewSet) {\n      return;\n    }\n    this.isInitialViewSet = true;\n    if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) {\n      this.#dispatchEvent();\n      return;\n    }\n    this.switchView(view, false);\n    if (!this.isInitialEventDispatched) {\n      this.#dispatchEvent();\n    }\n  }\n  switchView(view, forceOpen = false) {\n    const isViewChanged = view !== this.active;\n    let forceRendering = false;\n    switch (view) {\n      case SidebarView.NONE:\n        if (this.isOpen) {\n          this.close();\n        }\n        return;\n      case SidebarView.THUMBS:\n        if (this.isOpen && isViewChanged) {\n          forceRendering = true;\n        }\n        break;\n      case SidebarView.OUTLINE:\n        if (this.outlineButton.disabled) {\n          return;\n        }\n        break;\n      case SidebarView.ATTACHMENTS:\n        if (this.attachmentsButton.disabled) {\n          return;\n        }\n        break;\n      case SidebarView.LAYERS:\n        if (this.layersButton.disabled) {\n          return;\n        }\n        break;\n      default:\n        console.error(`PDFSidebar.switchView: \"${view}\" is not a valid view.`);\n        return;\n    }\n    this.active = view;\n    toggleCheckedBtn(this.thumbnailButton, view === SidebarView.THUMBS, this.thumbnailView);\n    toggleCheckedBtn(this.outlineButton, view === SidebarView.OUTLINE, this.outlineView);\n    toggleCheckedBtn(this.attachmentsButton, view === SidebarView.ATTACHMENTS, this.attachmentsView);\n    toggleCheckedBtn(this.layersButton, view === SidebarView.LAYERS, this.layersView);\n    if (forceOpen && !this.isOpen) {\n      this.open();\n      return;\n    }\n    if (forceRendering) {\n      this.onUpdateThumbnails();\n      this.onToggled();\n    }\n    if (isViewChanged) {\n      this.#dispatchEvent();\n    }\n  }\n  open() {\n    if (this.isOpen) {\n      return;\n    }\n    this.isOpen = true;\n    toggleExpandedBtn(this.toggleButton, true);\n    this.outerContainer.classList.add(\"sidebarMoving\", \"sidebarOpen\");\n    if (this.active === SidebarView.THUMBS) {\n      this.onUpdateThumbnails();\n    }\n    this.onToggled();\n    this.#dispatchEvent();\n    this.#hideUINotification();\n  }\n  close(evt = null) {\n    if (!this.isOpen) {\n      return;\n    }\n    this.isOpen = false;\n    toggleExpandedBtn(this.toggleButton, false);\n    this.outerContainer.classList.add(\"sidebarMoving\");\n    this.outerContainer.classList.remove(\"sidebarOpen\");\n    this.onToggled();\n    this.#dispatchEvent();\n    if (evt?.detail > 0) {\n      this.toggleButton.blur();\n    }\n  }\n  toggle(evt = null) {\n    if (this.isOpen) {\n      this.close(evt);\n    } else {\n      this.open();\n    }\n  }\n  #dispatchEvent() {\n    if (this.isInitialViewSet) {\n      this.isInitialEventDispatched ||= true;\n    }\n    this.eventBus.dispatch(\"sidebarviewchanged\", {\n      source: this,\n      view: this.visibleView\n    });\n  }\n  #showUINotification() {\n    this.toggleButton.setAttribute(\"data-l10n-id\", \"pdfjs-toggle-sidebar-notification-button\");\n    if (!this.isOpen) {\n      this.toggleButton.classList.add(UI_NOTIFICATION_CLASS);\n    }\n  }\n  #hideUINotification(reset = false) {\n    if (this.isOpen || reset) {\n      this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS);\n    }\n    if (reset) {\n      this.toggleButton.setAttribute(\"data-l10n-id\", \"pdfjs-toggle-sidebar-button\");\n    }\n  }\n  #addEventListeners() {\n    const {\n      eventBus,\n      outerContainer\n    } = this;\n    this.sidebarContainer.addEventListener(\"transitionend\", evt => {\n      if (evt.target === this.sidebarContainer) {\n        outerContainer.classList.remove(\"sidebarMoving\");\n        eventBus.dispatch(\"resize\", {\n          source: this\n        });\n      }\n    });\n    this.toggleButton.addEventListener(\"click\", evt => {\n      this.toggle(evt);\n    });\n    this.thumbnailButton.addEventListener(\"click\", () => {\n      this.switchView(SidebarView.THUMBS);\n    });\n    this.outlineButton.addEventListener(\"click\", () => {\n      this.switchView(SidebarView.OUTLINE);\n    });\n    this.outlineButton.addEventListener(\"dblclick\", () => {\n      eventBus.dispatch(\"toggleoutlinetree\", {\n        source: this\n      });\n    });\n    this.attachmentsButton.addEventListener(\"click\", () => {\n      this.switchView(SidebarView.ATTACHMENTS);\n    });\n    this.layersButton.addEventListener(\"click\", () => {\n      this.switchView(SidebarView.LAYERS);\n    });\n    this.layersButton.addEventListener(\"dblclick\", () => {\n      eventBus.dispatch(\"resetlayers\", {\n        source: this\n      });\n    });\n    this._currentOutlineItemButton.addEventListener(\"click\", () => {\n      eventBus.dispatch(\"currentoutlineitem\", {\n        source: this\n      });\n    });\n    const onTreeLoaded = (count, button, view) => {\n      button.disabled = !count;\n      if (count) {\n        this.#showUINotification();\n      } else if (this.active === view) {\n        this.switchView(SidebarView.THUMBS);\n      }\n    };\n    eventBus._on(\"outlineloaded\", evt => {\n      onTreeLoaded(evt.outlineCount, this.outlineButton, SidebarView.OUTLINE);\n      evt.currentOutlineItemPromise.then(enabled => {\n        if (!this.isInitialViewSet) {\n          return;\n        }\n        this._currentOutlineItemButton.disabled = !enabled;\n      });\n    });\n    eventBus._on(\"attachmentsloaded\", evt => {\n      onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, SidebarView.ATTACHMENTS);\n    });\n    eventBus._on(\"layersloaded\", evt => {\n      onTreeLoaded(evt.layersCount, this.layersButton, SidebarView.LAYERS);\n    });\n    eventBus._on(\"presentationmodechanged\", evt => {\n      if (evt.state === PresentationModeState.NORMAL && this.visibleView === SidebarView.THUMBS) {\n        this.onUpdateThumbnails();\n      }\n    });\n    this.resizer.addEventListener(\"mousedown\", evt => {\n      if (evt.button !== 0) {\n        return;\n      }\n      outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);\n      this.#mouseAC = new AbortController();\n      const opts = {\n        signal: this.#mouseAC.signal\n      };\n      window.addEventListener(\"mousemove\", this.#mouseMove.bind(this), opts);\n      window.addEventListener(\"mouseup\", this.#mouseUp.bind(this), opts);\n      window.addEventListener(\"blur\", this.#mouseUp.bind(this), opts);\n    });\n    eventBus._on(\"resize\", evt => {\n      if (evt.source !== window) {\n        return;\n      }\n      this.#outerContainerWidth = null;\n      if (!this.#width) {\n        return;\n      }\n      if (!this.isOpen) {\n        this.#updateWidth(this.#width);\n        return;\n      }\n      outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);\n      const updated = this.#updateWidth(this.#width);\n      Promise.resolve().then(() => {\n        outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);\n        if (updated) {\n          eventBus.dispatch(\"resize\", {\n            source: this\n          });\n        }\n      });\n    });\n  }\n  get outerContainerWidth() {\n    return this.#outerContainerWidth ||= this.outerContainer.clientWidth;\n  }\n  #updateWidth(width = 0) {\n    const maxWidth = Math.floor(this.outerContainerWidth / 2);\n    if (width > maxWidth) {\n      width = maxWidth;\n    }\n    if (width < SIDEBAR_MIN_WIDTH) {\n      width = SIDEBAR_MIN_WIDTH;\n    }\n    if (width === this.#width) {\n      return false;\n    }\n    this.#width = width;\n    docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`);\n    return true;\n  }\n  #mouseMove(evt) {\n    let width = evt.clientX;\n    if (this.#isRTL) {\n      width = this.outerContainerWidth - width;\n    }\n    this.#updateWidth(width);\n  }\n  #mouseUp(evt) {\n    this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);\n    this.eventBus.dispatch(\"resize\", {\n      source: this\n    });\n    this.#mouseAC?.abort();\n    this.#mouseAC = null;\n  }\n}\n\n;// ./web/pdf_text_extractor.js\nclass PdfTextExtractor {\n  #pdfViewer;\n  #externalServices;\n  #textPromise;\n  #pendingRequests = new Set();\n  constructor(externalServices) {\n    this.#externalServices = externalServices;\n    window.addEventListener(\"requestTextContent\", ({\n      detail\n    }) => {\n      this.extractTextContent(detail.requestId);\n    });\n  }\n  setViewer(pdfViewer) {\n    this.#pdfViewer = pdfViewer;\n    if (this.#pdfViewer && this.#pendingRequests.size) {\n      for (const pendingRequest of this.#pendingRequests) {\n        this.extractTextContent(pendingRequest);\n      }\n      this.#pendingRequests.clear();\n    }\n  }\n  async extractTextContent(requestId) {\n    if (!this.#pdfViewer) {\n      this.#pendingRequests.add(requestId);\n      return;\n    }\n    if (!this.#textPromise) {\n      const textPromise = this.#textPromise = this.#pdfViewer.getAllText();\n      textPromise.then(() => {\n        setTimeout(() => {\n          if (this.#textPromise === textPromise) {\n            this.#textPromise = null;\n          }\n        }, 5000);\n      });\n    }\n    this.#externalServices.reportText({\n      text: await this.#textPromise,\n      requestId\n    });\n  }\n}\n\n;// ./web/pdf_thumbnail_view.js\n\n\n\nconst DRAW_UPSCALE_FACTOR = 2;\nconst MAX_NUM_SCALING_STEPS = 3;\nconst THUMBNAIL_WIDTH = 98;\nfunction zeroCanvas(c) {\n  c.width = 0;\n  c.height = 0;\n}\nclass TempImageFactory {\n  static #tempCanvas = null;\n  static getCanvas(width, height) {\n    const tempCanvas = this.#tempCanvas ||= document.createElement(\"canvas\");\n    tempCanvas.width = width;\n    tempCanvas.height = height;\n    const ctx = tempCanvas.getContext(\"2d\", {\n      alpha: false\n    });\n    ctx.save();\n    ctx.fillStyle = \"rgb(255, 255, 255)\";\n    ctx.fillRect(0, 0, width, height);\n    ctx.restore();\n    return [tempCanvas, tempCanvas.getContext(\"2d\")];\n  }\n  static destroyCanvas() {\n    if (this.#tempCanvas) {\n      zeroCanvas(this.#tempCanvas);\n    }\n    this.#tempCanvas = null;\n  }\n}\nclass PDFThumbnailView {\n  constructor({\n    container,\n    eventBus,\n    id,\n    defaultViewport,\n    optionalContentConfigPromise,\n    linkService,\n    renderingQueue,\n    maxCanvasPixels,\n    maxCanvasDim,\n    pageColors\n  }) {\n    this.id = id;\n    this.renderingId = \"thumbnail\" + id;\n    this.pageLabel = null;\n    this.pdfPage = null;\n    this.rotation = 0;\n    this.viewport = defaultViewport;\n    this.pdfPageRotate = defaultViewport.rotation;\n    this._optionalContentConfigPromise = optionalContentConfigPromise || null;\n    this.maxCanvasPixels = maxCanvasPixels ?? AppOptions.get(\"maxCanvasPixels\");\n    this.maxCanvasDim = maxCanvasDim || AppOptions.get(\"maxCanvasDim\");\n    this.pageColors = pageColors || null;\n    this.eventBus = eventBus;\n    this.linkService = linkService;\n    this.renderingQueue = renderingQueue;\n    this.renderTask = null;\n    this.renderingState = RenderingStates.INITIAL;\n    this.resume = null;\n    const anchor = document.createElement(\"a\");\n    anchor.href = linkService.getAnchorUrl(\"#page=\" + id);\n    anchor.setAttribute(\"data-l10n-id\", \"pdfjs-thumb-page-title\");\n    anchor.setAttribute(\"data-l10n-args\", this.#pageL10nArgs);\n    anchor.onclick = function () {\n      linkService.goToPage(id);\n      return false;\n    };\n    this.anchor = anchor;\n    const div = document.createElement(\"div\");\n    div.className = \"thumbnail\";\n    div.setAttribute(\"data-page-number\", this.id);\n    this.div = div;\n    this.#updateDims();\n    const img = document.createElement(\"div\");\n    img.className = \"thumbnailImage\";\n    this._placeholderImg = img;\n    div.append(img);\n    anchor.append(div);\n    container.append(anchor);\n  }\n  #updateDims() {\n    const {\n      width,\n      height\n    } = this.viewport;\n    const ratio = width / height;\n    this.canvasWidth = THUMBNAIL_WIDTH;\n    this.canvasHeight = this.canvasWidth / ratio | 0;\n    this.scale = this.canvasWidth / width;\n    const {\n      style\n    } = this.div;\n    style.setProperty(\"--thumbnail-width\", `${this.canvasWidth}px`);\n    style.setProperty(\"--thumbnail-height\", `${this.canvasHeight}px`);\n  }\n  setPdfPage(pdfPage) {\n    this.pdfPage = pdfPage;\n    this.pdfPageRotate = pdfPage.rotate;\n    const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n    this.viewport = pdfPage.getViewport({\n      scale: 1,\n      rotation: totalRotation\n    });\n    this.reset();\n  }\n  reset() {\n    this.cancelRendering();\n    this.renderingState = RenderingStates.INITIAL;\n    this.div.removeAttribute(\"data-loaded\");\n    this.image?.replaceWith(this._placeholderImg);\n    this.#updateDims();\n    if (this.image) {\n      this.image.removeAttribute(\"src\");\n      delete this.image;\n    }\n  }\n  update({\n    rotation = null\n  }) {\n    if (typeof rotation === \"number\") {\n      this.rotation = rotation;\n    }\n    const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n    this.viewport = this.viewport.clone({\n      scale: 1,\n      rotation: totalRotation\n    });\n    this.reset();\n  }\n  cancelRendering() {\n    if (this.renderTask) {\n      this.renderTask.cancel();\n      this.renderTask = null;\n    }\n    this.resume = null;\n  }\n  #getPageDrawContext(upscaleFactor = 1) {\n    const canvas = document.createElement(\"canvas\");\n    const outputScale = new OutputScale();\n    const width = upscaleFactor * this.canvasWidth,\n      height = upscaleFactor * this.canvasHeight;\n    outputScale.limitCanvas(width, height, this.maxCanvasPixels, this.maxCanvasDim);\n    canvas.width = width * outputScale.sx | 0;\n    canvas.height = height * outputScale.sy | 0;\n    const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;\n    return {\n      canvas,\n      transform\n    };\n  }\n  #convertCanvasToImage(canvas) {\n    if (this.renderingState !== RenderingStates.FINISHED) {\n      throw new Error(\"#convertCanvasToImage: Rendering has not finished.\");\n    }\n    const reducedCanvas = this.#reduceImage(canvas);\n    const image = document.createElement(\"img\");\n    image.className = \"thumbnailImage\";\n    image.setAttribute(\"data-l10n-id\", \"pdfjs-thumb-page-canvas\");\n    image.setAttribute(\"data-l10n-args\", this.#pageL10nArgs);\n    image.src = reducedCanvas.toDataURL();\n    this.image = image;\n    this.div.setAttribute(\"data-loaded\", true);\n    this._placeholderImg.replaceWith(image);\n    zeroCanvas(reducedCanvas);\n  }\n  async draw() {\n    if (this.renderingState !== RenderingStates.INITIAL) {\n      console.error(\"Must be in new state before drawing\");\n      return;\n    }\n    const {\n      pageColors,\n      pdfPage\n    } = this;\n    if (!pdfPage) {\n      this.renderingState = RenderingStates.FINISHED;\n      throw new Error(\"pdfPage is not loaded\");\n    }\n    this.renderingState = RenderingStates.RUNNING;\n    const {\n      canvas,\n      transform\n    } = this.#getPageDrawContext(DRAW_UPSCALE_FACTOR);\n    const drawViewport = this.viewport.clone({\n      scale: DRAW_UPSCALE_FACTOR * this.scale\n    });\n    const renderContinueCallback = cont => {\n      if (!this.renderingQueue.isHighestPriority(this)) {\n        this.renderingState = RenderingStates.PAUSED;\n        this.resume = () => {\n          this.renderingState = RenderingStates.RUNNING;\n          cont();\n        };\n        return;\n      }\n      cont();\n    };\n    const renderContext = {\n      canvas,\n      transform,\n      viewport: drawViewport,\n      optionalContentConfigPromise: this._optionalContentConfigPromise,\n      pageColors\n    };\n    const renderTask = this.renderTask = pdfPage.render(renderContext);\n    renderTask.onContinue = renderContinueCallback;\n    let error = null;\n    try {\n      await renderTask.promise;\n    } catch (e) {\n      if (e instanceof RenderingCancelledException) {\n        zeroCanvas(canvas);\n        return;\n      }\n      error = e;\n    } finally {\n      if (renderTask === this.renderTask) {\n        this.renderTask = null;\n      }\n    }\n    this.renderingState = RenderingStates.FINISHED;\n    this.#convertCanvasToImage(canvas);\n    zeroCanvas(canvas);\n    this.eventBus.dispatch(\"thumbnailrendered\", {\n      source: this,\n      pageNumber: this.id,\n      pdfPage\n    });\n    if (error) {\n      throw error;\n    }\n  }\n  setImage(pageView) {\n    if (this.renderingState !== RenderingStates.INITIAL) {\n      return;\n    }\n    const {\n      thumbnailCanvas: canvas,\n      pdfPage,\n      scale\n    } = pageView;\n    if (!canvas) {\n      return;\n    }\n    if (!this.pdfPage) {\n      this.setPdfPage(pdfPage);\n    }\n    if (scale < this.scale) {\n      return;\n    }\n    this.renderingState = RenderingStates.FINISHED;\n    this.#convertCanvasToImage(canvas);\n  }\n  #getReducedImageDims(canvas) {\n    const width = canvas.width << MAX_NUM_SCALING_STEPS,\n      height = canvas.height << MAX_NUM_SCALING_STEPS;\n    const outputScale = new OutputScale();\n    outputScale.sx = outputScale.sy = 1;\n    outputScale.limitCanvas(width, height, this.maxCanvasPixels, this.maxCanvasDim);\n    return [width * outputScale.sx | 0, height * outputScale.sy | 0];\n  }\n  #reduceImage(img) {\n    const {\n      canvas\n    } = this.#getPageDrawContext(1);\n    const ctx = canvas.getContext(\"2d\", {\n      alpha: false,\n      willReadFrequently: false\n    });\n    if (img.width <= 2 * canvas.width) {\n      ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height);\n      return canvas;\n    }\n    let [reducedWidth, reducedHeight] = this.#getReducedImageDims(canvas);\n    const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight);\n    while (reducedWidth > img.width || reducedHeight > img.height) {\n      reducedWidth >>= 1;\n      reducedHeight >>= 1;\n    }\n    reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight);\n    while (reducedWidth > 2 * canvas.width) {\n      reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1);\n      reducedWidth >>= 1;\n      reducedHeight >>= 1;\n    }\n    ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height);\n    return canvas;\n  }\n  get #pageL10nArgs() {\n    return JSON.stringify({\n      page: this.pageLabel ?? this.id\n    });\n  }\n  setPageLabel(label) {\n    this.pageLabel = typeof label === \"string\" ? label : null;\n    this.anchor.setAttribute(\"data-l10n-args\", this.#pageL10nArgs);\n    if (this.renderingState !== RenderingStates.FINISHED) {\n      return;\n    }\n    this.image?.setAttribute(\"data-l10n-args\", this.#pageL10nArgs);\n  }\n}\n\n;// ./web/pdf_thumbnail_viewer.js\n\n\nconst THUMBNAIL_SCROLL_MARGIN = -19;\nconst THUMBNAIL_SELECTED_CLASS = \"selected\";\nclass PDFThumbnailViewer {\n  constructor({\n    container,\n    eventBus,\n    linkService,\n    renderingQueue,\n    maxCanvasPixels,\n    maxCanvasDim,\n    pageColors,\n    abortSignal,\n    enableHWA\n  }) {\n    this.container = container;\n    this.eventBus = eventBus;\n    this.linkService = linkService;\n    this.renderingQueue = renderingQueue;\n    this.maxCanvasPixels = maxCanvasPixels;\n    this.maxCanvasDim = maxCanvasDim;\n    this.pageColors = pageColors || null;\n    this.enableHWA = enableHWA || false;\n    this.scroll = watchScroll(this.container, this.#scrollUpdated.bind(this), abortSignal);\n    this.#resetView();\n  }\n  #scrollUpdated() {\n    this.renderingQueue.renderHighestPriority();\n  }\n  getThumbnail(index) {\n    return this._thumbnails[index];\n  }\n  #getVisibleThumbs() {\n    return getVisibleElements({\n      scrollEl: this.container,\n      views: this._thumbnails\n    });\n  }\n  scrollThumbnailIntoView(pageNumber) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    const thumbnailView = this._thumbnails[pageNumber - 1];\n    if (!thumbnailView) {\n      console.error('scrollThumbnailIntoView: Invalid \"pageNumber\" parameter.');\n      return;\n    }\n    if (pageNumber !== this._currentPageNumber) {\n      const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1];\n      prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS);\n      thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS);\n    }\n    const {\n      first,\n      last,\n      views\n    } = this.#getVisibleThumbs();\n    if (views.length > 0) {\n      let shouldScroll = false;\n      if (pageNumber <= first.id || pageNumber >= last.id) {\n        shouldScroll = true;\n      } else {\n        for (const {\n          id,\n          percent\n        } of views) {\n          if (id !== pageNumber) {\n            continue;\n          }\n          shouldScroll = percent < 100;\n          break;\n        }\n      }\n      if (shouldScroll) {\n        scrollIntoView(thumbnailView.div, {\n          top: THUMBNAIL_SCROLL_MARGIN\n        });\n      }\n    }\n    this._currentPageNumber = pageNumber;\n  }\n  get pagesRotation() {\n    return this._pagesRotation;\n  }\n  set pagesRotation(rotation) {\n    if (!isValidRotation(rotation)) {\n      throw new Error(\"Invalid thumbnails rotation angle.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (this._pagesRotation === rotation) {\n      return;\n    }\n    this._pagesRotation = rotation;\n    const updateArgs = {\n      rotation\n    };\n    for (const thumbnail of this._thumbnails) {\n      thumbnail.update(updateArgs);\n    }\n  }\n  cleanup() {\n    for (const thumbnail of this._thumbnails) {\n      if (thumbnail.renderingState !== RenderingStates.FINISHED) {\n        thumbnail.reset();\n      }\n    }\n    TempImageFactory.destroyCanvas();\n  }\n  #resetView() {\n    this._thumbnails = [];\n    this._currentPageNumber = 1;\n    this._pageLabels = null;\n    this._pagesRotation = 0;\n    this.container.textContent = \"\";\n  }\n  setDocument(pdfDocument) {\n    if (this.pdfDocument) {\n      this.#cancelRendering();\n      this.#resetView();\n    }\n    this.pdfDocument = pdfDocument;\n    if (!pdfDocument) {\n      return;\n    }\n    const firstPagePromise = pdfDocument.getPage(1);\n    const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({\n      intent: \"display\"\n    });\n    firstPagePromise.then(firstPdfPage => {\n      const pagesCount = pdfDocument.numPages;\n      const viewport = firstPdfPage.getViewport({\n        scale: 1\n      });\n      for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n        const thumbnail = new PDFThumbnailView({\n          container: this.container,\n          eventBus: this.eventBus,\n          id: pageNum,\n          defaultViewport: viewport.clone(),\n          optionalContentConfigPromise,\n          linkService: this.linkService,\n          renderingQueue: this.renderingQueue,\n          maxCanvasPixels: this.maxCanvasPixels,\n          maxCanvasDim: this.maxCanvasDim,\n          pageColors: this.pageColors,\n          enableHWA: this.enableHWA\n        });\n        this._thumbnails.push(thumbnail);\n      }\n      this._thumbnails[0]?.setPdfPage(firstPdfPage);\n      const thumbnailView = this._thumbnails[this._currentPageNumber - 1];\n      thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS);\n    }).catch(reason => {\n      console.error(\"Unable to initialize thumbnail viewer\", reason);\n    });\n  }\n  #cancelRendering() {\n    for (const thumbnail of this._thumbnails) {\n      thumbnail.cancelRendering();\n    }\n  }\n  setPageLabels(labels) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (!labels) {\n      this._pageLabels = null;\n    } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n      this._pageLabels = null;\n      console.error(\"PDFThumbnailViewer_setPageLabels: Invalid page labels.\");\n    } else {\n      this._pageLabels = labels;\n    }\n    for (let i = 0, ii = this._thumbnails.length; i < ii; i++) {\n      this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null);\n    }\n  }\n  async #ensurePdfPageLoaded(thumbView) {\n    if (thumbView.pdfPage) {\n      return thumbView.pdfPage;\n    }\n    try {\n      const pdfPage = await this.pdfDocument.getPage(thumbView.id);\n      if (!thumbView.pdfPage) {\n        thumbView.setPdfPage(pdfPage);\n      }\n      return pdfPage;\n    } catch (reason) {\n      console.error(\"Unable to get page for thumb view\", reason);\n      return null;\n    }\n  }\n  #getScrollAhead(visible) {\n    if (visible.first?.id === 1) {\n      return true;\n    } else if (visible.last?.id === this._thumbnails.length) {\n      return false;\n    }\n    return this.scroll.down;\n  }\n  forceRendering() {\n    const visibleThumbs = this.#getVisibleThumbs();\n    const scrollAhead = this.#getScrollAhead(visibleThumbs);\n    const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead, false, true);\n    if (thumbView) {\n      this.#ensurePdfPageLoaded(thumbView).then(() => {\n        this.renderingQueue.renderView(thumbView);\n      });\n      return true;\n    }\n    return false;\n  }\n}\n\n;// ./web/annotation_editor_layer_builder.js\n\n\nclass AnnotationEditorLayerBuilder {\n  #annotationLayer = null;\n  #drawLayer = null;\n  #onAppend = null;\n  #structTreeLayer = null;\n  #textLayer = null;\n  #uiManager;\n  constructor(options) {\n    this.pdfPage = options.pdfPage;\n    this.accessibilityManager = options.accessibilityManager;\n    this.l10n = options.l10n;\n    this.l10n ||= new genericl10n_GenericL10n();\n    this.annotationEditorLayer = null;\n    this.div = null;\n    this._cancelled = false;\n    this.#uiManager = options.uiManager;\n    this.#annotationLayer = options.annotationLayer || null;\n    this.#textLayer = options.textLayer || null;\n    this.#drawLayer = options.drawLayer || null;\n    this.#onAppend = options.onAppend || null;\n    this.#structTreeLayer = options.structTreeLayer || null;\n  }\n  async render({\n    viewport,\n    intent = \"display\"\n  }) {\n    if (intent !== \"display\") {\n      return;\n    }\n    if (this._cancelled) {\n      return;\n    }\n    const clonedViewport = viewport.clone({\n      dontFlip: true\n    });\n    if (this.div) {\n      this.annotationEditorLayer.update({\n        viewport: clonedViewport\n      });\n      this.show();\n      return;\n    }\n    const div = this.div = document.createElement(\"div\");\n    div.className = \"annotationEditorLayer\";\n    div.hidden = true;\n    div.dir = this.#uiManager.direction;\n    this.#onAppend?.(div);\n    this.annotationEditorLayer = new AnnotationEditorLayer({\n      uiManager: this.#uiManager,\n      div,\n      structTreeLayer: this.#structTreeLayer,\n      accessibilityManager: this.accessibilityManager,\n      pageIndex: this.pdfPage.pageNumber - 1,\n      l10n: this.l10n,\n      viewport: clonedViewport,\n      annotationLayer: this.#annotationLayer,\n      textLayer: this.#textLayer,\n      drawLayer: this.#drawLayer\n    });\n    const parameters = {\n      viewport: clonedViewport,\n      div,\n      annotations: null,\n      intent\n    };\n    this.annotationEditorLayer.render(parameters);\n    this.show();\n  }\n  cancel() {\n    this._cancelled = true;\n    if (!this.div) {\n      return;\n    }\n    this.annotationEditorLayer.destroy();\n  }\n  hide() {\n    if (!this.div) {\n      return;\n    }\n    this.annotationEditorLayer.pause(true);\n    this.div.hidden = true;\n  }\n  show() {\n    if (!this.div || this.annotationEditorLayer.isInvisible) {\n      return;\n    }\n    this.div.hidden = false;\n    this.annotationEditorLayer.pause(false);\n  }\n}\n\n;// ./web/annotation_layer_builder.js\n\n\nclass AnnotationLayerBuilder {\n  #annotations = null;\n  #commentManager = null;\n  #externalHide = false;\n  #onAppend = null;\n  #eventAbortController = null;\n  #linksInjected = false;\n  constructor({\n    pdfPage,\n    linkService,\n    downloadManager,\n    annotationStorage = null,\n    imageResourcesPath = \"\",\n    renderForms = true,\n    enableComment = false,\n    commentManager = null,\n    enableScripting = false,\n    hasJSActionsPromise = null,\n    fieldObjectsPromise = null,\n    annotationCanvasMap = null,\n    accessibilityManager = null,\n    annotationEditorUIManager = null,\n    onAppend = null\n  }) {\n    this.pdfPage = pdfPage;\n    this.linkService = linkService;\n    this.downloadManager = downloadManager;\n    this.imageResourcesPath = imageResourcesPath;\n    this.renderForms = renderForms;\n    this.annotationStorage = annotationStorage;\n    this.enableComment = enableComment;\n    this.#commentManager = commentManager;\n    this.enableScripting = enableScripting;\n    this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false);\n    this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null);\n    this._annotationCanvasMap = annotationCanvasMap;\n    this._accessibilityManager = accessibilityManager;\n    this._annotationEditorUIManager = annotationEditorUIManager;\n    this.#onAppend = onAppend;\n    this.annotationLayer = null;\n    this.div = null;\n    this._cancelled = false;\n    this._eventBus = linkService.eventBus;\n  }\n  async render({\n    viewport,\n    intent = \"display\",\n    structTreeLayer = null\n  }) {\n    if (this.div) {\n      if (this._cancelled || !this.annotationLayer) {\n        return;\n      }\n      this.annotationLayer.update({\n        viewport: viewport.clone({\n          dontFlip: true\n        })\n      });\n      return;\n    }\n    const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({\n      intent\n    }), this._hasJSActionsPromise, this._fieldObjectsPromise]);\n    if (this._cancelled) {\n      return;\n    }\n    const div = this.div = document.createElement(\"div\");\n    div.className = \"annotationLayer\";\n    this.#onAppend?.(div);\n    this.#initAnnotationLayer(viewport, structTreeLayer);\n    if (annotations.length === 0) {\n      this.#annotations = annotations;\n      setLayerDimensions(this.div, viewport);\n      return;\n    }\n    await this.annotationLayer.render({\n      annotations,\n      imageResourcesPath: this.imageResourcesPath,\n      renderForms: this.renderForms,\n      downloadManager: this.downloadManager,\n      enableComment: this.enableComment,\n      enableScripting: this.enableScripting,\n      hasJSActions,\n      fieldObjects\n    });\n    this.#annotations = annotations;\n    if (this.linkService.isInPresentationMode) {\n      this.#updatePresentationModeState(PresentationModeState.FULLSCREEN);\n    }\n    if (!this.#eventAbortController) {\n      this.#eventAbortController = new AbortController();\n      this._eventBus?._on(\"presentationmodechanged\", evt => {\n        this.#updatePresentationModeState(evt.state);\n      }, {\n        signal: this.#eventAbortController.signal\n      });\n    }\n  }\n  #initAnnotationLayer(viewport, structTreeLayer) {\n    this.annotationLayer = new AnnotationLayer({\n      div: this.div,\n      accessibilityManager: this._accessibilityManager,\n      annotationCanvasMap: this._annotationCanvasMap,\n      annotationEditorUIManager: this._annotationEditorUIManager,\n      annotationStorage: this.annotationStorage,\n      page: this.pdfPage,\n      viewport: viewport.clone({\n        dontFlip: true\n      }),\n      structTreeLayer,\n      commentManager: this.#commentManager,\n      linkService: this.linkService\n    });\n  }\n  cancel() {\n    this._cancelled = true;\n    this.#eventAbortController?.abort();\n    this.#eventAbortController = null;\n  }\n  hide(internal = false) {\n    this.#externalHide = !internal;\n    if (!this.div) {\n      return;\n    }\n    this.div.hidden = true;\n  }\n  hasEditableAnnotations() {\n    return !!this.annotationLayer?.hasEditableAnnotations();\n  }\n  async injectLinkAnnotations(inferredLinks) {\n    if (this.#annotations === null) {\n      throw new Error(\"`render` method must be called before `injectLinkAnnotations`.\");\n    }\n    if (this._cancelled || this.#linksInjected) {\n      return;\n    }\n    this.#linksInjected = true;\n    const newLinks = this.#annotations.length ? this.#checkInferredLinks(inferredLinks) : inferredLinks;\n    if (!newLinks.length) {\n      return;\n    }\n    await this.annotationLayer.addLinkAnnotations(newLinks);\n    if (!this.#externalHide) {\n      this.div.hidden = false;\n    }\n  }\n  #updatePresentationModeState(state) {\n    if (!this.div) {\n      return;\n    }\n    let disableFormElements = false;\n    switch (state) {\n      case PresentationModeState.FULLSCREEN:\n        disableFormElements = true;\n        break;\n      case PresentationModeState.NORMAL:\n        break;\n      default:\n        return;\n    }\n    for (const section of this.div.childNodes) {\n      if (section.hasAttribute(\"data-internal-link\")) {\n        continue;\n      }\n      section.inert = disableFormElements;\n    }\n  }\n  #checkInferredLinks(inferredLinks) {\n    function annotationRects(annot) {\n      if (!annot.quadPoints) {\n        return [annot.rect];\n      }\n      const rects = [];\n      for (let i = 2, ii = annot.quadPoints.length; i < ii; i += 8) {\n        const trX = annot.quadPoints[i];\n        const trY = annot.quadPoints[i + 1];\n        const blX = annot.quadPoints[i + 2];\n        const blY = annot.quadPoints[i + 3];\n        rects.push([blX, blY, trX, trY]);\n      }\n      return rects;\n    }\n    function intersectAnnotations(annot1, annot2) {\n      const intersections = [];\n      const annot1Rects = annotationRects(annot1);\n      const annot2Rects = annotationRects(annot2);\n      for (const rect1 of annot1Rects) {\n        for (const rect2 of annot2Rects) {\n          const intersection = Util.intersect(rect1, rect2);\n          if (intersection) {\n            intersections.push(intersection);\n          }\n        }\n      }\n      return intersections;\n    }\n    function areaRects(rects) {\n      let totalArea = 0;\n      for (const rect of rects) {\n        totalArea += Math.abs((rect[2] - rect[0]) * (rect[3] - rect[1]));\n      }\n      return totalArea;\n    }\n    return inferredLinks.filter(link => {\n      let linkAreaRects;\n      for (const annotation of this.#annotations) {\n        if (annotation.annotationType !== AnnotationType.LINK || !annotation.url) {\n          continue;\n        }\n        const intersections = intersectAnnotations(annotation, link);\n        if (intersections.length === 0) {\n          continue;\n        }\n        linkAreaRects ??= areaRects(annotationRects(link));\n        if (areaRects(intersections) / linkAreaRects > 0.5) {\n          return false;\n        }\n      }\n      return true;\n    });\n  }\n}\n\n;// ./web/autolinker.js\n\n\nfunction DOMRectToPDF({\n  width,\n  height,\n  left,\n  top\n}, pdfPageView) {\n  if (width === 0 || height === 0) {\n    return null;\n  }\n  const pageBox = pdfPageView.textLayer.div.getBoundingClientRect();\n  const bottomLeft = pdfPageView.getPagePoint(left - pageBox.left, top - pageBox.top);\n  const topRight = pdfPageView.getPagePoint(left - pageBox.left + width, top - pageBox.top + height);\n  return Util.normalizeRect([bottomLeft[0], bottomLeft[1], topRight[0], topRight[1]]);\n}\nfunction calculateLinkPosition(range, pdfPageView) {\n  const rangeRects = range.getClientRects();\n  if (rangeRects.length === 1) {\n    return {\n      rect: DOMRectToPDF(rangeRects[0], pdfPageView)\n    };\n  }\n  const rect = [Infinity, Infinity, -Infinity, -Infinity];\n  const quadPoints = [];\n  let i = 0;\n  for (const domRect of rangeRects) {\n    const normalized = DOMRectToPDF(domRect, pdfPageView);\n    if (normalized === null) {\n      continue;\n    }\n    quadPoints[i] = quadPoints[i + 4] = normalized[0];\n    quadPoints[i + 1] = quadPoints[i + 3] = normalized[3];\n    quadPoints[i + 2] = quadPoints[i + 6] = normalized[2];\n    quadPoints[i + 5] = quadPoints[i + 7] = normalized[1];\n    Util.rectBoundingBox(...normalized, rect);\n    i += 8;\n  }\n  return {\n    quadPoints,\n    rect\n  };\n}\nfunction textPosition(container, offset) {\n  let currentContainer = container;\n  do {\n    if (currentContainer.nodeType === Node.TEXT_NODE) {\n      const currentLength = currentContainer.textContent.length;\n      if (offset <= currentLength) {\n        return [currentContainer, offset];\n      }\n      offset -= currentLength;\n    } else if (currentContainer.firstChild) {\n      currentContainer = currentContainer.firstChild;\n      continue;\n    }\n    while (!currentContainer.nextSibling && currentContainer !== container) {\n      currentContainer = currentContainer.parentNode;\n    }\n    if (currentContainer !== container) {\n      currentContainer = currentContainer.nextSibling;\n    }\n  } while (currentContainer !== container);\n  throw new Error(\"Offset is bigger than container's contents length.\");\n}\nfunction createLinkAnnotation({\n  url,\n  index,\n  length\n}, pdfPageView, id) {\n  const highlighter = pdfPageView._textHighlighter;\n  const [{\n    begin,\n    end\n  }] = highlighter._convertMatches([index], [length]);\n  const range = new Range();\n  range.setStart(...textPosition(highlighter.textDivs[begin.divIdx], begin.offset));\n  range.setEnd(...textPosition(highlighter.textDivs[end.divIdx], end.offset));\n  return {\n    id: `inferred_link_${id}`,\n    unsafeUrl: url,\n    url,\n    annotationType: AnnotationType.LINK,\n    rotation: 0,\n    ...calculateLinkPosition(range, pdfPageView),\n    borderStyle: null\n  };\n}\nclass Autolinker {\n  static #index = 0;\n  static #regex;\n  static findLinks(text) {\n    this.#regex ??= /\\b(?:https?:\\/\\/|mailto:|www\\.)(?:[\\S--[\\p{P}<>]]|\\/|[\\S--[\\[\\]]]+[\\S--[\\p{P}<>]])+|\\b[\\S--[@\\p{Ps}\\p{Pe}<>]]+@([\\S--[\\p{P}<>]]+(?:\\.[\\S--[\\p{P}<>]]+)+)/gmv;\n    const [normalizedText, diffs] = normalize(text, {\n      ignoreDashEOL: true\n    });\n    const matches = normalizedText.matchAll(this.#regex);\n    const links = [];\n    for (const match of matches) {\n      const [url, emailDomain] = match;\n      let raw;\n      if (url.startsWith(\"www.\") || url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n        raw = url;\n      } else if (URL.canParse(`http://${emailDomain}`)) {\n        raw = url.startsWith(\"mailto:\") ? url : `mailto:${url}`;\n      } else {\n        continue;\n      }\n      const absoluteURL = createValidAbsoluteUrl(raw, null, {\n        addDefaultProtocol: true\n      });\n      if (absoluteURL) {\n        const [index, length] = getOriginalIndex(diffs, match.index, url.length);\n        links.push({\n          url: absoluteURL.href,\n          index,\n          length\n        });\n      }\n    }\n    return links;\n  }\n  static processLinks(pdfPageView) {\n    return this.findLinks(pdfPageView._textHighlighter.textContentItemsStr.join(\"\\n\")).map(link => createLinkAnnotation(link, pdfPageView, this.#index++));\n  }\n}\n\n;// ./web/base_pdf_page_view.js\n\n\nclass BasePDFPageView {\n  #loadingId = null;\n  #minDurationToUpdateCanvas = 0;\n  #renderError = null;\n  #renderingState = RenderingStates.INITIAL;\n  #showCanvas = null;\n  #startTime = 0;\n  #tempCanvas = null;\n  canvas = null;\n  div = null;\n  enableOptimizedPartialRendering = false;\n  eventBus = null;\n  id = null;\n  pageColors = null;\n  recordedBBoxes = null;\n  renderingQueue = null;\n  renderTask = null;\n  resume = null;\n  constructor(options) {\n    this.eventBus = options.eventBus;\n    this.id = options.id;\n    this.pageColors = options.pageColors || null;\n    this.renderingQueue = options.renderingQueue;\n    this.enableOptimizedPartialRendering = options.enableOptimizedPartialRendering ?? false;\n    this.#minDurationToUpdateCanvas = options.minDurationToUpdateCanvas ?? 500;\n  }\n  get renderingState() {\n    return this.#renderingState;\n  }\n  set renderingState(state) {\n    if (state === this.#renderingState) {\n      return;\n    }\n    this.#renderingState = state;\n    if (this.#loadingId) {\n      clearTimeout(this.#loadingId);\n      this.#loadingId = null;\n    }\n    switch (state) {\n      case RenderingStates.PAUSED:\n        this.div.classList.remove(\"loading\");\n        this.#startTime = 0;\n        this.#showCanvas?.(false);\n        break;\n      case RenderingStates.RUNNING:\n        this.div.classList.add(\"loadingIcon\");\n        this.#loadingId = setTimeout(() => {\n          this.div.classList.add(\"loading\");\n          this.#loadingId = null;\n        }, 0);\n        this.#startTime = Date.now();\n        break;\n      case RenderingStates.INITIAL:\n      case RenderingStates.FINISHED:\n        this.div.classList.remove(\"loadingIcon\", \"loading\");\n        this.#startTime = 0;\n        break;\n    }\n  }\n  _createCanvas(onShow, hideUntilComplete = false) {\n    const {\n      pageColors\n    } = this;\n    const hasHCM = !!(pageColors?.background && pageColors?.foreground);\n    const prevCanvas = this.canvas;\n    const updateOnFirstShow = !prevCanvas && !hasHCM && !hideUntilComplete;\n    let canvas = this.canvas = document.createElement(\"canvas\");\n    this.#showCanvas = isLastShow => {\n      if (updateOnFirstShow) {\n        let tempCanvas = this.#tempCanvas;\n        if (!isLastShow && this.#minDurationToUpdateCanvas > 0) {\n          if (Date.now() - this.#startTime < this.#minDurationToUpdateCanvas) {\n            return;\n          }\n          if (!tempCanvas) {\n            tempCanvas = this.#tempCanvas = canvas;\n            canvas = this.canvas = canvas.cloneNode(false);\n            onShow(canvas);\n          }\n        }\n        if (tempCanvas) {\n          const ctx = canvas.getContext(\"2d\", {\n            alpha: false\n          });\n          ctx.drawImage(tempCanvas, 0, 0);\n          if (isLastShow) {\n            this.#resetTempCanvas();\n          } else {\n            this.#startTime = Date.now();\n          }\n          return;\n        }\n        onShow(canvas);\n        this.#showCanvas = null;\n        return;\n      }\n      if (!isLastShow) {\n        return;\n      }\n      if (prevCanvas) {\n        prevCanvas.replaceWith(canvas);\n        prevCanvas.width = prevCanvas.height = 0;\n      } else {\n        onShow(canvas);\n      }\n    };\n    return {\n      canvas,\n      prevCanvas\n    };\n  }\n  #renderContinueCallback = cont => {\n    this.#showCanvas?.(false);\n    if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) {\n      this.renderingState = RenderingStates.PAUSED;\n      this.resume = () => {\n        this.renderingState = RenderingStates.RUNNING;\n        cont();\n      };\n      return;\n    }\n    cont();\n  };\n  _resetCanvas() {\n    const {\n      canvas\n    } = this;\n    if (!canvas) {\n      return;\n    }\n    canvas.remove();\n    canvas.width = canvas.height = 0;\n    this.canvas = null;\n    this.#resetTempCanvas();\n  }\n  #resetTempCanvas() {\n    if (this.#tempCanvas) {\n      this.#tempCanvas.width = this.#tempCanvas.height = 0;\n      this.#tempCanvas = null;\n    }\n  }\n  async _drawCanvas(options, onCancel, onFinish) {\n    const renderTask = this.renderTask = this.pdfPage.render(options);\n    renderTask.onContinue = this.#renderContinueCallback;\n    renderTask.onError = error => {\n      if (error instanceof RenderingCancelledException) {\n        onCancel();\n        this.#renderError = null;\n      }\n    };\n    let error = null;\n    try {\n      await renderTask.promise;\n      this.#showCanvas?.(true);\n    } catch (e) {\n      if (e instanceof RenderingCancelledException) {\n        return;\n      }\n      error = e;\n      this.#showCanvas?.(true);\n    } finally {\n      this.#renderError = error;\n      if (renderTask === this.renderTask) {\n        this.renderTask = null;\n        if (this.enableOptimizedPartialRendering) {\n          this.recordedBBoxes ??= renderTask.recordedBBoxes;\n        }\n      }\n    }\n    this.renderingState = RenderingStates.FINISHED;\n    onFinish(renderTask);\n    if (error) {\n      throw error;\n    }\n  }\n  cancelRendering({\n    cancelExtraDelay = 0\n  } = {}) {\n    if (this.renderTask) {\n      this.renderTask.cancel(cancelExtraDelay);\n      this.renderTask = null;\n    }\n    this.resume = null;\n  }\n  dispatchPageRender() {\n    this.eventBus.dispatch(\"pagerender\", {\n      source: this,\n      pageNumber: this.id\n    });\n  }\n  dispatchPageRendered(cssTransform, isDetailView) {\n    this.eventBus.dispatch(\"pagerendered\", {\n      source: this,\n      pageNumber: this.id,\n      cssTransform,\n      isDetailView,\n      timestamp: performance.now(),\n      error: this.#renderError\n    });\n  }\n}\n\n;// ./web/draw_layer_builder.js\n\nclass DrawLayerBuilder {\n  #drawLayer = null;\n  constructor(options) {\n    this.pageIndex = options.pageIndex;\n  }\n  async render({\n    intent = \"display\"\n  }) {\n    if (intent !== \"display\" || this.#drawLayer || this._cancelled) {\n      return;\n    }\n    this.#drawLayer = new DrawLayer({\n      pageIndex: this.pageIndex\n    });\n  }\n  cancel() {\n    this._cancelled = true;\n    if (!this.#drawLayer) {\n      return;\n    }\n    this.#drawLayer.destroy();\n    this.#drawLayer = null;\n  }\n  setParent(parent) {\n    this.#drawLayer?.setParent(parent);\n  }\n  getDrawLayer() {\n    return this.#drawLayer;\n  }\n}\n\n;// ./web/pdf_page_detail_view.js\n\n\n\nclass PDFPageDetailView extends BasePDFPageView {\n  #detailArea = null;\n  renderingCancelled = false;\n  constructor({\n    pageView\n  }) {\n    super(pageView);\n    this.pageView = pageView;\n    this.renderingId = \"detail\" + this.id;\n    this.div = pageView.div;\n  }\n  setPdfPage(pdfPage) {\n    this.pageView.setPdfPage(pdfPage);\n  }\n  get pdfPage() {\n    return this.pageView.pdfPage;\n  }\n  get renderingState() {\n    return super.renderingState;\n  }\n  set renderingState(value) {\n    this.renderingCancelled = false;\n    super.renderingState = value;\n  }\n  reset({\n    keepCanvas = false\n  } = {}) {\n    const renderingCancelled = this.renderingCancelled || this.renderingState === RenderingStates.RUNNING || this.renderingState === RenderingStates.PAUSED;\n    this.cancelRendering();\n    this.renderingState = RenderingStates.INITIAL;\n    this.renderingCancelled = renderingCancelled;\n    if (!keepCanvas) {\n      this._resetCanvas();\n    }\n  }\n  #shouldRenderDifferentArea(visibleArea) {\n    if (!this.#detailArea) {\n      return true;\n    }\n    const minDetailX = this.#detailArea.minX;\n    const minDetailY = this.#detailArea.minY;\n    const maxDetailX = this.#detailArea.width + minDetailX;\n    const maxDetailY = this.#detailArea.height + minDetailY;\n    if (visibleArea.minX < minDetailX || visibleArea.minY < minDetailY || visibleArea.maxX > maxDetailX || visibleArea.maxY > maxDetailY) {\n      return true;\n    }\n    const {\n      width: maxWidth,\n      height: maxHeight,\n      scale\n    } = this.pageView.viewport;\n    if (this.#detailArea.scale !== scale) {\n      return true;\n    }\n    const paddingLeftSize = visibleArea.minX - minDetailX;\n    const paddingRightSize = maxDetailX - visibleArea.maxX;\n    const paddingTopSize = visibleArea.minY - minDetailY;\n    const paddingBottomSize = maxDetailY - visibleArea.maxY;\n    const MOVEMENT_THRESHOLD = 0.5;\n    const ratio = (1 + MOVEMENT_THRESHOLD) / MOVEMENT_THRESHOLD;\n    if (minDetailX > 0 && paddingRightSize / paddingLeftSize > ratio || maxDetailX < maxWidth && paddingLeftSize / paddingRightSize > ratio || minDetailY > 0 && paddingBottomSize / paddingTopSize > ratio || maxDetailY < maxHeight && paddingTopSize / paddingBottomSize > ratio) {\n      return true;\n    }\n    return false;\n  }\n  update({\n    visibleArea = null,\n    underlyingViewUpdated = false\n  } = {}) {\n    if (underlyingViewUpdated) {\n      this.cancelRendering();\n      this.renderingState = RenderingStates.INITIAL;\n      return;\n    }\n    if (!this.#shouldRenderDifferentArea(visibleArea)) {\n      return;\n    }\n    const {\n      viewport,\n      maxCanvasPixels,\n      capCanvasAreaFactor\n    } = this.pageView;\n    const visibleWidth = visibleArea.maxX - visibleArea.minX;\n    const visibleHeight = visibleArea.maxY - visibleArea.minY;\n    const visiblePixels = visibleWidth * visibleHeight * OutputScale.pixelRatio ** 2;\n    const maxDetailToVisibleLinearRatio = Math.sqrt(OutputScale.capPixels(maxCanvasPixels, capCanvasAreaFactor) / visiblePixels);\n    const maxOverflowScale = (maxDetailToVisibleLinearRatio - 1) / 2;\n    let overflowScale = Math.min(1, maxOverflowScale);\n    if (overflowScale < 0) {\n      overflowScale = 0;\n    }\n    const overflowWidth = visibleWidth * overflowScale;\n    const overflowHeight = visibleHeight * overflowScale;\n    const minX = Math.max(0, visibleArea.minX - overflowWidth);\n    const maxX = Math.min(viewport.width, visibleArea.maxX + overflowWidth);\n    const minY = Math.max(0, visibleArea.minY - overflowHeight);\n    const maxY = Math.min(viewport.height, visibleArea.maxY + overflowHeight);\n    const width = maxX - minX;\n    const height = maxY - minY;\n    this.#detailArea = {\n      minX,\n      minY,\n      width,\n      height,\n      scale: viewport.scale\n    };\n    this.reset({\n      keepCanvas: true\n    });\n  }\n  _getRenderingContext(canvas, transform) {\n    const baseContext = this.pageView._getRenderingContext(canvas, transform, false);\n    const recordedBBoxes = this.pdfPage.recordedBBoxes;\n    if (!recordedBBoxes || !this.enableOptimizedPartialRendering) {\n      return baseContext;\n    }\n    const {\n      viewport: {\n        width: vWidth,\n        height: vHeight\n      }\n    } = this.pageView;\n    const {\n      width: aWidth,\n      height: aHeight,\n      minX: aMinX,\n      minY: aMinY\n    } = this.#detailArea;\n    const detailMinX = aMinX / vWidth;\n    const detailMinY = aMinY / vHeight;\n    const detailMaxX = (aMinX + aWidth) / vWidth;\n    const detailMaxY = (aMinY + aHeight) / vHeight;\n    return {\n      ...baseContext,\n      operationsFilter(index) {\n        if (recordedBBoxes.isEmpty(index)) {\n          return false;\n        }\n        return recordedBBoxes.minX(index) <= detailMaxX && recordedBBoxes.maxX(index) >= detailMinX && recordedBBoxes.minY(index) <= detailMaxY && recordedBBoxes.maxY(index) >= detailMinY;\n      }\n    };\n  }\n  async draw() {\n    if (this.pageView.detailView !== this) {\n      return undefined;\n    }\n    const hideUntilComplete = this.pageView.renderingState === RenderingStates.FINISHED || this.renderingState === RenderingStates.FINISHED;\n    if (this.renderingState !== RenderingStates.INITIAL) {\n      console.error(\"Must be in new state before drawing\");\n      this.reset();\n    }\n    const {\n      div,\n      pdfPage,\n      viewport\n    } = this.pageView;\n    if (!pdfPage) {\n      this.renderingState = RenderingStates.FINISHED;\n      throw new Error(\"pdfPage is not loaded\");\n    }\n    this.renderingState = RenderingStates.RUNNING;\n    const canvasWrapper = this.pageView._ensureCanvasWrapper();\n    const {\n      canvas,\n      prevCanvas\n    } = this._createCanvas(newCanvas => {\n      if (canvasWrapper.firstElementChild?.tagName === \"CANVAS\") {\n        canvasWrapper.firstElementChild.after(newCanvas);\n      } else {\n        canvasWrapper.prepend(newCanvas);\n      }\n    }, hideUntilComplete);\n    canvas.ariaHidden = true;\n    if (this.enableOptimizedPartialRendering) {\n      canvas.className = \"detailView\";\n    }\n    const {\n      width,\n      height\n    } = viewport;\n    const area = this.#detailArea;\n    const {\n      pixelRatio\n    } = OutputScale;\n    const transform = [pixelRatio, 0, 0, pixelRatio, -area.minX * pixelRatio, -area.minY * pixelRatio];\n    canvas.width = area.width * pixelRatio;\n    canvas.height = area.height * pixelRatio;\n    const {\n      style\n    } = canvas;\n    style.width = `${area.width * 100 / width}%`;\n    style.height = `${area.height * 100 / height}%`;\n    style.top = `${area.minY * 100 / height}%`;\n    style.left = `${area.minX * 100 / width}%`;\n    const renderingPromise = this._drawCanvas(this._getRenderingContext(canvas, transform), () => {\n      this.canvas?.remove();\n      this.canvas = prevCanvas;\n    }, () => {\n      this.dispatchPageRendered(false, true);\n    });\n    div.setAttribute(\"data-loaded\", true);\n    this.dispatchPageRender();\n    return renderingPromise;\n  }\n}\n\n;// ./web/struct_tree_layer_builder.js\n\n\nconst PDF_ROLE_TO_HTML_ROLE = {\n  Document: null,\n  DocumentFragment: null,\n  Part: \"group\",\n  Sect: \"group\",\n  Div: \"group\",\n  Aside: \"note\",\n  NonStruct: \"none\",\n  P: null,\n  H: \"heading\",\n  Title: null,\n  FENote: \"note\",\n  Sub: \"group\",\n  Lbl: null,\n  Span: null,\n  Em: null,\n  Strong: null,\n  Link: \"link\",\n  Annot: \"note\",\n  Form: \"form\",\n  Ruby: null,\n  RB: null,\n  RT: null,\n  RP: null,\n  Warichu: null,\n  WT: null,\n  WP: null,\n  L: \"list\",\n  LI: \"listitem\",\n  LBody: null,\n  Table: \"table\",\n  TR: \"row\",\n  TH: \"columnheader\",\n  TD: \"cell\",\n  THead: \"columnheader\",\n  TBody: null,\n  TFoot: null,\n  Caption: null,\n  Figure: \"figure\",\n  Formula: null,\n  Artifact: null\n};\nconst MathMLElements = new Set([\"math\", \"merror\", \"mfrac\", \"mi\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mprescripts\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msubsup\", \"msup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\", \"semantics\"]);\nconst MathMLNamespace = \"http://www.w3.org/1998/Math/MathML\";\nclass MathMLSanitizer {\n  static get sanitizer() {\n    return shadow(this, \"sanitizer\", FeatureTest.isSanitizerSupported ? new Sanitizer({\n      elements: [...MathMLElements].map(name => ({\n        name,\n        namespace: MathMLNamespace\n      })),\n      replaceWithChildrenElements: [{\n        name: \"maction\",\n        namespace: MathMLNamespace\n      }],\n      attributes: [\"dir\", \"displaystyle\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"scriptlevel\", \"encoding\", \"display\", \"linethickness\", \"intent\", \"arg\", \"form\", \"fence\", \"separator\", \"lspace\", \"rspace\", \"stretchy\", \"symmetric\", \"maxsize\", \"minsize\", \"largeop\", \"movablelimits\", \"width\", \"height\", \"depth\", \"voffset\", \"accent\", \"accentunder\", \"columnspan\", \"rowspan\"],\n      comments: false\n    }) : null);\n  }\n}\nconst HEADING_PATTERN = /^H(\\d+)$/;\nclass StructTreeLayerBuilder {\n  #promise;\n  #treeDom = null;\n  #treePromise;\n  #elementAttributes = new Map();\n  #rawDims;\n  #elementsToAddToTextLayer = null;\n  constructor(pdfPage, rawDims) {\n    this.#promise = pdfPage.getStructTree();\n    this.#rawDims = rawDims;\n  }\n  async render() {\n    if (this.#treePromise) {\n      return this.#treePromise;\n    }\n    const {\n      promise,\n      resolve,\n      reject\n    } = Promise.withResolvers();\n    this.#treePromise = promise;\n    try {\n      this.#treeDom = this.#walk(await this.#promise);\n    } catch (ex) {\n      reject(ex);\n    }\n    this.#promise = null;\n    this.#treeDom?.classList.add(\"structTree\");\n    resolve(this.#treeDom);\n    return promise;\n  }\n  async getAriaAttributes(annotationId) {\n    try {\n      await this.render();\n      return this.#elementAttributes.get(annotationId);\n    } catch {}\n    return null;\n  }\n  hide() {\n    if (this.#treeDom && !this.#treeDom.hidden) {\n      this.#treeDom.hidden = true;\n    }\n  }\n  show() {\n    if (this.#treeDom?.hidden) {\n      this.#treeDom.hidden = false;\n    }\n  }\n  #setAttributes(structElement, htmlElement) {\n    const {\n      alt,\n      id,\n      lang\n    } = structElement;\n    if (alt !== undefined) {\n      let added = false;\n      const label = removeNullCharacters(alt);\n      for (const child of structElement.children) {\n        if (child.type === \"annotation\") {\n          let attrs = this.#elementAttributes.get(child.id);\n          if (!attrs) {\n            attrs = new Map();\n            this.#elementAttributes.set(child.id, attrs);\n          }\n          attrs.set(\"aria-label\", label);\n          added = true;\n        }\n      }\n      if (!added) {\n        htmlElement.setAttribute(\"aria-label\", label);\n      }\n    }\n    if (id !== undefined) {\n      htmlElement.setAttribute(\"aria-owns\", id);\n    }\n    if (lang !== undefined) {\n      htmlElement.setAttribute(\"lang\", removeNullCharacters(lang, true));\n    }\n  }\n  #addImageInTextLayer(node, element) {\n    const {\n      alt,\n      bbox,\n      children\n    } = node;\n    const child = children?.[0];\n    if (!this.#rawDims || !alt || !bbox || child?.type !== \"content\") {\n      return false;\n    }\n    const {\n      id\n    } = child;\n    if (!id) {\n      return false;\n    }\n    element.setAttribute(\"aria-owns\", id);\n    const img = document.createElement(\"span\");\n    (this.#elementsToAddToTextLayer ||= new Map()).set(id, img);\n    img.setAttribute(\"role\", \"img\");\n    img.setAttribute(\"aria-label\", removeNullCharacters(alt));\n    const {\n      pageHeight,\n      pageX,\n      pageY\n    } = this.#rawDims;\n    const calc = \"calc(var(--total-scale-factor) *\";\n    const {\n      style\n    } = img;\n    style.width = `${calc}${bbox[2] - bbox[0]}px)`;\n    style.height = `${calc}${bbox[3] - bbox[1]}px)`;\n    style.left = `${calc}${bbox[0] - pageX}px)`;\n    style.top = `${calc}${pageHeight - bbox[3] + pageY}px)`;\n    return true;\n  }\n  addElementsToTextLayer() {\n    if (!this.#elementsToAddToTextLayer) {\n      return;\n    }\n    for (const [id, img] of this.#elementsToAddToTextLayer) {\n      document.getElementById(id)?.append(img);\n    }\n    this.#elementsToAddToTextLayer.clear();\n    this.#elementsToAddToTextLayer = null;\n  }\n  #walk(node) {\n    if (!node) {\n      return null;\n    }\n    let element;\n    if (\"role\" in node) {\n      const {\n        role\n      } = node;\n      element = MathMLElements.has(role) ? document.createElementNS(MathMLNamespace, role) : document.createElement(\"span\");\n      const match = role.match(HEADING_PATTERN);\n      if (match) {\n        element.setAttribute(\"role\", \"heading\");\n        element.setAttribute(\"aria-level\", match[1]);\n      } else if (PDF_ROLE_TO_HTML_ROLE[role]) {\n        element.setAttribute(\"role\", PDF_ROLE_TO_HTML_ROLE[role]);\n      }\n      if (role === \"Figure\" && this.#addImageInTextLayer(node, element)) {\n        return element;\n      }\n      if (role === \"Formula\") {\n        if (node.mathML && MathMLSanitizer.sanitizer) {\n          element.setHTML(node.mathML, {\n            sanitizer: MathMLSanitizer.sanitizer\n          });\n        }\n        if (!node.mathML && node.children.length === 1 && node.children[0].role !== \"math\") {\n          element = document.createElementNS(MathMLNamespace, \"math\");\n        }\n      }\n    }\n    element ||= document.createElement(\"span\");\n    this.#setAttributes(node, element);\n    if (node.children) {\n      if (node.children.length === 1 && \"id\" in node.children[0]) {\n        this.#setAttributes(node.children[0], element);\n      } else {\n        for (const kid of node.children) {\n          element.append(this.#walk(kid));\n        }\n      }\n    }\n    return element;\n  }\n}\n\n;// ./web/text_accessibility.js\n\nclass TextAccessibilityManager {\n  #enabled = false;\n  #textChildren = null;\n  #textNodes = new Map();\n  #waitingElements = new Map();\n  setTextMapping(textDivs) {\n    this.#textChildren = textDivs;\n  }\n  static #compareElementPositions(e1, e2) {\n    const rect1 = e1.getBoundingClientRect();\n    const rect2 = e2.getBoundingClientRect();\n    if (rect1.width === 0 && rect1.height === 0) {\n      return +1;\n    }\n    if (rect2.width === 0 && rect2.height === 0) {\n      return -1;\n    }\n    const top1 = rect1.y;\n    const bot1 = rect1.y + rect1.height;\n    const mid1 = rect1.y + rect1.height / 2;\n    const top2 = rect2.y;\n    const bot2 = rect2.y + rect2.height;\n    const mid2 = rect2.y + rect2.height / 2;\n    if (mid1 <= top2 && mid2 >= bot1) {\n      return -1;\n    }\n    if (mid2 <= top1 && mid1 >= bot2) {\n      return +1;\n    }\n    const centerX1 = rect1.x + rect1.width / 2;\n    const centerX2 = rect2.x + rect2.width / 2;\n    return centerX1 - centerX2;\n  }\n  enable() {\n    if (this.#enabled) {\n      throw new Error(\"TextAccessibilityManager is already enabled.\");\n    }\n    if (!this.#textChildren) {\n      throw new Error(\"Text divs and strings have not been set.\");\n    }\n    this.#enabled = true;\n    this.#textChildren = this.#textChildren.slice();\n    this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions);\n    if (this.#textNodes.size > 0) {\n      const textChildren = this.#textChildren;\n      for (const [id, nodeIndex] of this.#textNodes) {\n        const element = document.getElementById(id);\n        if (!element) {\n          this.#textNodes.delete(id);\n          continue;\n        }\n        this.#addIdToAriaOwns(id, textChildren[nodeIndex]);\n      }\n    }\n    for (const [element, isRemovable] of this.#waitingElements) {\n      this.addPointerInTextLayer(element, isRemovable);\n    }\n    this.#waitingElements.clear();\n  }\n  disable() {\n    if (!this.#enabled) {\n      return;\n    }\n    this.#waitingElements.clear();\n    this.#textChildren = null;\n    this.#enabled = false;\n  }\n  removePointerInTextLayer(element) {\n    if (!this.#enabled) {\n      this.#waitingElements.delete(element);\n      return;\n    }\n    const children = this.#textChildren;\n    if (!children || children.length === 0) {\n      return;\n    }\n    const {\n      id\n    } = element;\n    const nodeIndex = this.#textNodes.get(id);\n    if (nodeIndex === undefined) {\n      return;\n    }\n    const node = children[nodeIndex];\n    this.#textNodes.delete(id);\n    let owns = node.getAttribute(\"aria-owns\");\n    if (owns?.includes(id)) {\n      owns = owns.split(\" \").filter(x => x !== id).join(\" \");\n      if (owns) {\n        node.setAttribute(\"aria-owns\", owns);\n      } else {\n        node.removeAttribute(\"aria-owns\");\n        node.setAttribute(\"role\", \"presentation\");\n      }\n    }\n  }\n  #addIdToAriaOwns(id, node) {\n    const owns = node.getAttribute(\"aria-owns\");\n    if (!owns?.includes(id)) {\n      node.setAttribute(\"aria-owns\", owns ? `${owns} ${id}` : id);\n    }\n    node.removeAttribute(\"role\");\n  }\n  addPointerInTextLayer(element, isRemovable) {\n    const {\n      id\n    } = element;\n    if (!id) {\n      return null;\n    }\n    if (!this.#enabled) {\n      this.#waitingElements.set(element, isRemovable);\n      return null;\n    }\n    if (isRemovable) {\n      this.removePointerInTextLayer(element);\n    }\n    const children = this.#textChildren;\n    if (!children || children.length === 0) {\n      return null;\n    }\n    const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);\n    const nodeIndex = Math.max(0, index - 1);\n    const child = children[nodeIndex];\n    this.#addIdToAriaOwns(id, child);\n    this.#textNodes.set(id, nodeIndex);\n    const parent = child.parentNode;\n    return parent?.classList.contains(\"markedContent\") ? parent.id : null;\n  }\n  moveElementInDOM(container, element, contentElement, isRemovable) {\n    const id = this.addPointerInTextLayer(contentElement, isRemovable);\n    if (!container.hasChildNodes()) {\n      container.append(element);\n      return id;\n    }\n    const children = Array.from(container.childNodes).filter(node => node !== element);\n    if (children.length === 0) {\n      return id;\n    }\n    const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);\n    if (index === 0) {\n      children[0].before(element);\n    } else {\n      children[index - 1].after(element);\n    }\n    return id;\n  }\n}\n\n;// ./web/text_highlighter.js\nclass TextHighlighter {\n  #eventAbortController = null;\n  constructor({\n    findController,\n    eventBus,\n    pageIndex\n  }) {\n    this.findController = findController;\n    this.matches = [];\n    this.eventBus = eventBus;\n    this.pageIdx = pageIndex;\n    this.textDivs = null;\n    this.textContentItemsStr = null;\n    this.enabled = false;\n  }\n  setTextMapping(divs, texts) {\n    this.textDivs = divs;\n    this.textContentItemsStr = texts;\n  }\n  enable() {\n    if (!this.textDivs || !this.textContentItemsStr) {\n      throw new Error(\"Text divs and strings have not been set.\");\n    }\n    if (this.enabled) {\n      throw new Error(\"TextHighlighter is already enabled.\");\n    }\n    this.enabled = true;\n    if (!this.#eventAbortController) {\n      this.#eventAbortController = new AbortController();\n      this.eventBus._on(\"updatetextlayermatches\", evt => {\n        if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {\n          this._updateMatches();\n        }\n      }, {\n        signal: this.#eventAbortController.signal\n      });\n    }\n    this._updateMatches();\n  }\n  disable() {\n    if (!this.enabled) {\n      return;\n    }\n    this.enabled = false;\n    this.#eventAbortController?.abort();\n    this.#eventAbortController = null;\n    this._updateMatches(true);\n  }\n  _convertMatches(matches, matchesLength) {\n    if (!matches) {\n      return [];\n    }\n    const {\n      textContentItemsStr\n    } = this;\n    let i = 0,\n      iIndex = 0;\n    const end = textContentItemsStr.length - 1;\n    const result = [];\n    for (let m = 0, mm = matches.length; m < mm; m++) {\n      let matchIdx = matches[m];\n      while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {\n        iIndex += textContentItemsStr[i].length;\n        i++;\n      }\n      if (i === textContentItemsStr.length) {\n        console.error(\"Could not find a matching mapping\");\n      }\n      const match = {\n        begin: {\n          divIdx: i,\n          offset: matchIdx - iIndex\n        }\n      };\n      matchIdx += matchesLength[m];\n      while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {\n        iIndex += textContentItemsStr[i].length;\n        i++;\n      }\n      match.end = {\n        divIdx: i,\n        offset: matchIdx - iIndex\n      };\n      result.push(match);\n    }\n    return result;\n  }\n  _renderMatches(matches) {\n    if (matches.length === 0) {\n      return;\n    }\n    const {\n      findController,\n      pageIdx\n    } = this;\n    const {\n      textContentItemsStr,\n      textDivs\n    } = this;\n    const isSelectedPage = pageIdx === findController.selected.pageIdx;\n    const selectedMatchIdx = findController.selected.matchIdx;\n    const highlightAll = findController.state.highlightAll;\n    let prevEnd = null;\n    const infinity = {\n      divIdx: -1,\n      offset: undefined\n    };\n    function beginText(begin, className) {\n      const divIdx = begin.divIdx;\n      textDivs[divIdx].textContent = \"\";\n      return appendTextToDiv(divIdx, 0, begin.offset, className);\n    }\n    function appendTextToDiv(divIdx, fromOffset, toOffset, className) {\n      let div = textDivs[divIdx];\n      if (div.nodeType === Node.TEXT_NODE) {\n        const span = document.createElement(\"span\");\n        div.before(span);\n        span.append(div);\n        textDivs[divIdx] = span;\n        div = span;\n      }\n      const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);\n      const node = document.createTextNode(content);\n      if (className) {\n        const span = document.createElement(\"span\");\n        span.className = `${className} appended`;\n        span.append(node);\n        div.append(span);\n        if (className.includes(\"selected\")) {\n          const {\n            left\n          } = span.getClientRects()[0];\n          const parentLeft = div.getBoundingClientRect().left;\n          return left - parentLeft;\n        }\n        return 0;\n      }\n      div.append(node);\n      return 0;\n    }\n    let i0 = selectedMatchIdx,\n      i1 = i0 + 1;\n    if (highlightAll) {\n      i0 = 0;\n      i1 = matches.length;\n    } else if (!isSelectedPage) {\n      return;\n    }\n    let lastDivIdx = -1;\n    let lastOffset = -1;\n    for (let i = i0; i < i1; i++) {\n      const match = matches[i];\n      const begin = match.begin;\n      if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) {\n        continue;\n      }\n      lastDivIdx = begin.divIdx;\n      lastOffset = begin.offset;\n      const end = match.end;\n      const isSelected = isSelectedPage && i === selectedMatchIdx;\n      const highlightSuffix = isSelected ? \" selected\" : \"\";\n      let selectedLeft = 0;\n      if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {\n        if (prevEnd !== null) {\n          appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n        }\n        beginText(begin);\n      } else {\n        appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);\n      }\n      if (begin.divIdx === end.divIdx) {\n        selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, \"highlight\" + highlightSuffix);\n      } else {\n        selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, \"highlight begin\" + highlightSuffix);\n        for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {\n          textDivs[n0].className = \"highlight middle\" + highlightSuffix;\n        }\n        beginText(end, \"highlight end\" + highlightSuffix);\n      }\n      prevEnd = end;\n      if (isSelected) {\n        findController.scrollMatchIntoView({\n          element: textDivs[begin.divIdx],\n          selectedLeft,\n          pageIndex: pageIdx,\n          matchIndex: selectedMatchIdx\n        });\n      }\n    }\n    if (prevEnd) {\n      appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);\n    }\n  }\n  _updateMatches(reset = false) {\n    if (!this.enabled && !reset) {\n      return;\n    }\n    const {\n      findController,\n      matches,\n      pageIdx\n    } = this;\n    const {\n      textContentItemsStr,\n      textDivs\n    } = this;\n    let clearedUntilDivIdx = -1;\n    for (const match of matches) {\n      const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);\n      for (let n = begin, end = match.end.divIdx; n <= end; n++) {\n        const div = textDivs[n];\n        div.textContent = textContentItemsStr[n];\n        div.className = \"\";\n      }\n      clearedUntilDivIdx = match.end.divIdx + 1;\n    }\n    if (!findController?.highlightMatches || reset) {\n      return;\n    }\n    const pageMatches = findController.pageMatches[pageIdx] || null;\n    const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;\n    this.matches = this._convertMatches(pageMatches, pageMatchesLength);\n    this._renderMatches(this.matches);\n  }\n}\n\n;// ./web/text_layer_builder.js\n\n\nclass TextLayerBuilder {\n  #enablePermissions = false;\n  #onAppend = null;\n  #renderingDone = false;\n  #textLayer = null;\n  static #textLayers = new Map();\n  static #selectionChangeAbortController = null;\n  constructor({\n    pdfPage,\n    highlighter = null,\n    accessibilityManager = null,\n    enablePermissions = false,\n    onAppend = null\n  }) {\n    this.pdfPage = pdfPage;\n    this.highlighter = highlighter;\n    this.accessibilityManager = accessibilityManager;\n    this.#enablePermissions = enablePermissions === true;\n    this.#onAppend = onAppend;\n    this.div = document.createElement(\"div\");\n    this.div.tabIndex = 0;\n    this.div.className = \"textLayer\";\n  }\n  async render({\n    viewport,\n    textContentParams = null\n  }) {\n    if (this.#renderingDone && this.#textLayer) {\n      this.#textLayer.update({\n        viewport,\n        onBefore: this.hide.bind(this)\n      });\n      this.show();\n      return;\n    }\n    this.cancel();\n    this.#textLayer = new TextLayer({\n      textContentSource: this.pdfPage.streamTextContent(textContentParams || {\n        includeMarkedContent: true,\n        disableNormalization: true\n      }),\n      container: this.div,\n      viewport\n    });\n    const {\n      textDivs,\n      textContentItemsStr\n    } = this.#textLayer;\n    this.highlighter?.setTextMapping(textDivs, textContentItemsStr);\n    this.accessibilityManager?.setTextMapping(textDivs);\n    await this.#textLayer.render();\n    this.#renderingDone = true;\n    const endOfContent = document.createElement(\"div\");\n    endOfContent.className = \"endOfContent\";\n    this.div.append(endOfContent);\n    this.#bindMouse(endOfContent);\n    this.#onAppend?.(this.div);\n    this.highlighter?.enable();\n    this.accessibilityManager?.enable();\n  }\n  hide() {\n    if (!this.div.hidden && this.#renderingDone) {\n      this.highlighter?.disable();\n      this.div.hidden = true;\n    }\n  }\n  show() {\n    if (this.div.hidden && this.#renderingDone) {\n      this.div.hidden = false;\n      this.highlighter?.enable();\n    }\n  }\n  cancel() {\n    this.#textLayer?.cancel();\n    this.#textLayer = null;\n    this.highlighter?.disable();\n    this.accessibilityManager?.disable();\n    TextLayerBuilder.#removeGlobalSelectionListener(this.div);\n  }\n  #bindMouse(end) {\n    const {\n      div\n    } = this;\n    div.addEventListener(\"mousedown\", () => {\n      div.classList.add(\"selecting\");\n    });\n    div.addEventListener(\"copy\", event => {\n      if (!this.#enablePermissions) {\n        const selection = document.getSelection();\n        event.clipboardData.setData(\"text/plain\", removeNullCharacters(normalizeUnicode(selection.toString())));\n      }\n      stopEvent(event);\n    });\n    TextLayerBuilder.#textLayers.set(div, end);\n    TextLayerBuilder.#enableGlobalSelectionListener();\n  }\n  static #removeGlobalSelectionListener(textLayerDiv) {\n    this.#textLayers.delete(textLayerDiv);\n    if (this.#textLayers.size === 0) {\n      this.#selectionChangeAbortController?.abort();\n      this.#selectionChangeAbortController = null;\n    }\n  }\n  static #enableGlobalSelectionListener() {\n    if (this.#selectionChangeAbortController) {\n      return;\n    }\n    this.#selectionChangeAbortController = new AbortController();\n    const {\n      signal\n    } = this.#selectionChangeAbortController;\n    const reset = (end, textLayer) => {\n      textLayer.append(end);\n      end.style.width = \"\";\n      end.style.height = \"\";\n      textLayer.classList.remove(\"selecting\");\n    };\n    let isPointerDown = false;\n    document.addEventListener(\"pointerdown\", () => {\n      isPointerDown = true;\n    }, {\n      signal\n    });\n    document.addEventListener(\"pointerup\", () => {\n      isPointerDown = false;\n      this.#textLayers.forEach(reset);\n    }, {\n      signal\n    });\n    window.addEventListener(\"blur\", () => {\n      isPointerDown = false;\n      this.#textLayers.forEach(reset);\n    }, {\n      signal\n    });\n    document.addEventListener(\"keyup\", () => {\n      if (!isPointerDown) {\n        this.#textLayers.forEach(reset);\n      }\n    }, {\n      signal\n    });\n    var isFirefox, prevRange;\n    document.addEventListener(\"selectionchange\", () => {\n      const selection = document.getSelection();\n      if (selection.rangeCount === 0) {\n        this.#textLayers.forEach(reset);\n        return;\n      }\n      const activeTextLayers = new Set();\n      for (let i = 0; i < selection.rangeCount; i++) {\n        const range = selection.getRangeAt(i);\n        for (const textLayerDiv of this.#textLayers.keys()) {\n          if (!activeTextLayers.has(textLayerDiv) && range.intersectsNode(textLayerDiv)) {\n            activeTextLayers.add(textLayerDiv);\n          }\n        }\n      }\n      for (const [textLayerDiv, endDiv] of this.#textLayers) {\n        if (activeTextLayers.has(textLayerDiv)) {\n          textLayerDiv.classList.add(\"selecting\");\n        } else {\n          reset(endDiv, textLayerDiv);\n        }\n      }\n      isFirefox ??= getComputedStyle(this.#textLayers.values().next().value).getPropertyValue(\"-moz-user-select\") === \"none\";\n      if (isFirefox) {\n        return;\n      }\n      const range = selection.getRangeAt(0);\n      const modifyStart = prevRange && (range.compareBoundaryPoints(Range.END_TO_END, prevRange) === 0 || range.compareBoundaryPoints(Range.START_TO_END, prevRange) === 0);\n      let anchor = modifyStart ? range.startContainer : range.endContainer;\n      if (anchor.nodeType === Node.TEXT_NODE) {\n        anchor = anchor.parentNode;\n      }\n      if (!modifyStart && range.endOffset === 0) {\n        do {\n          while (!anchor.previousSibling) {\n            anchor = anchor.parentNode;\n          }\n          anchor = anchor.previousSibling;\n        } while (!anchor.childNodes.length);\n      }\n      const parentTextLayer = anchor.parentElement?.closest(\".textLayer\");\n      const endDiv = this.#textLayers.get(parentTextLayer);\n      if (endDiv) {\n        endDiv.style.width = parentTextLayer.style.width;\n        endDiv.style.height = parentTextLayer.style.height;\n        anchor.parentElement.insertBefore(endDiv, modifyStart ? anchor : anchor.nextSibling);\n      }\n      prevRange = range.cloneRange();\n    }, {\n      signal\n    });\n  }\n}\n\n;// ./web/pdf_page_view.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_LAYER_PROPERTIES = null;\nconst LAYERS_ORDER = new Map([[\"canvasWrapper\", 0], [\"textLayer\", 1], [\"annotationLayer\", 2], [\"annotationEditorLayer\", 3], [\"xfaLayer\", 3]]);\nclass PDFPageView extends BasePDFPageView {\n  #annotationMode = AnnotationMode.ENABLE_FORMS;\n  #canvasWrapper = null;\n  #commentManager = null;\n  #enableAutoLinking = true;\n  #hasRestrictedScaling = false;\n  #isEditing = false;\n  #layerProperties = null;\n  #needsRestrictedScaling = false;\n  #originalViewport = null;\n  #previousRotation = null;\n  #scaleRoundX = 1;\n  #scaleRoundY = 1;\n  #textLayerMode = TextLayerMode.ENABLE;\n  #userUnit = 1;\n  #useThumbnailCanvas = {\n    directDrawing: true,\n    initialOptionalContent: true,\n    regularAnnotations: true\n  };\n  #layers = [null, null, null, null];\n  constructor(options) {\n    super(options);\n    const container = options.container;\n    const defaultViewport = options.defaultViewport;\n    this.renderingId = \"page\" + this.id;\n    this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES;\n    this.pdfPage = null;\n    this.pageLabel = null;\n    this.rotation = 0;\n    this.scale = options.scale || DEFAULT_SCALE;\n    this.viewport = defaultViewport;\n    this.pdfPageRotate = defaultViewport.rotation;\n    this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;\n    this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE;\n    this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS;\n    this.imageResourcesPath = options.imageResourcesPath || \"\";\n    this.enableDetailCanvas = options.enableDetailCanvas ?? true;\n    this.maxCanvasPixels = options.maxCanvasPixels ?? AppOptions.get(\"maxCanvasPixels\");\n    this.maxCanvasDim = options.maxCanvasDim || AppOptions.get(\"maxCanvasDim\");\n    this.capCanvasAreaFactor = options.capCanvasAreaFactor ?? AppOptions.get(\"capCanvasAreaFactor\");\n    this.#enableAutoLinking = options.enableAutoLinking !== false;\n    this.#commentManager = options.commentManager || null;\n    this.l10n = options.l10n;\n    this.l10n ||= new genericl10n_GenericL10n();\n    this._isStandalone = !this.renderingQueue?.hasViewer();\n    this._container = container;\n    this._annotationCanvasMap = null;\n    this.annotationLayer = null;\n    this.annotationEditorLayer = null;\n    this.textLayer = null;\n    this.xfaLayer = null;\n    this.structTreeLayer = null;\n    this.drawLayer = null;\n    this.detailView = null;\n    const div = document.createElement(\"div\");\n    div.className = \"page\";\n    div.setAttribute(\"data-page-number\", this.id);\n    div.setAttribute(\"role\", \"region\");\n    div.setAttribute(\"data-l10n-id\", \"pdfjs-page-landmark\");\n    div.setAttribute(\"data-l10n-args\", JSON.stringify({\n      page: this.id\n    }));\n    this.div = div;\n    this.#setDimensions();\n    container?.append(div);\n    if (this._isStandalone) {\n      container?.style.setProperty(\"--scale-factor\", this.scale * PixelsPerInch.PDF_TO_CSS_UNITS);\n      if (this.pageColors?.background) {\n        container?.style.setProperty(\"--page-bg-color\", this.pageColors.background);\n      }\n      const {\n        optionalContentConfigPromise\n      } = options;\n      if (optionalContentConfigPromise) {\n        optionalContentConfigPromise.then(optionalContentConfig => {\n          if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n            return;\n          }\n          this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n        });\n      }\n      if (!options.l10n) {\n        this.l10n.translate(this.div);\n      }\n    }\n  }\n  #addLayer(div, name) {\n    const pos = LAYERS_ORDER.get(name);\n    const oldDiv = this.#layers[pos];\n    this.#layers[pos] = div;\n    if (oldDiv) {\n      oldDiv.replaceWith(div);\n      return;\n    }\n    for (let i = pos - 1; i >= 0; i--) {\n      const layer = this.#layers[i];\n      if (layer) {\n        layer.after(div);\n        return;\n      }\n    }\n    this.div.prepend(div);\n  }\n  #setDimensions() {\n    const {\n      div,\n      viewport\n    } = this;\n    if (viewport.userUnit !== this.#userUnit) {\n      if (viewport.userUnit !== 1) {\n        div.style.setProperty(\"--user-unit\", viewport.userUnit);\n      } else {\n        div.style.removeProperty(\"--user-unit\");\n      }\n      this.#userUnit = viewport.userUnit;\n    }\n    if (this.pdfPage) {\n      if (this.#previousRotation === viewport.rotation) {\n        return;\n      }\n      this.#previousRotation = viewport.rotation;\n    }\n    setLayerDimensions(div, viewport, true, false);\n  }\n  setPdfPage(pdfPage) {\n    if (this._isStandalone && (this.pageColors?.foreground === \"CanvasText\" || this.pageColors?.background === \"Canvas\")) {\n      this._container?.style.setProperty(\"--hcm-highlight-filter\", pdfPage.filterFactory.addHighlightHCMFilter(\"highlight\", \"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n      this._container?.style.setProperty(\"--hcm-highlight-selected-filter\", pdfPage.filterFactory.addHighlightHCMFilter(\"highlight_selected\", \"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n    }\n    this.pdfPage = pdfPage;\n    this.pdfPageRotate = pdfPage.rotate;\n    const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n    this.viewport = pdfPage.getViewport({\n      scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS,\n      rotation: totalRotation\n    });\n    this.#setDimensions();\n    this.reset();\n  }\n  destroy() {\n    this.reset();\n    this.pdfPage?.cleanup();\n  }\n  hasEditableAnnotations() {\n    return !!this.annotationLayer?.hasEditableAnnotations();\n  }\n  get _textHighlighter() {\n    return shadow(this, \"_textHighlighter\", new TextHighlighter({\n      pageIndex: this.id - 1,\n      eventBus: this.eventBus,\n      findController: this.#layerProperties.findController\n    }));\n  }\n  #dispatchLayerRendered(name, error) {\n    this.eventBus.dispatch(name, {\n      source: this,\n      pageNumber: this.id,\n      error\n    });\n  }\n  async #renderAnnotationLayer() {\n    let error = null;\n    try {\n      await this.annotationLayer.render({\n        viewport: this.viewport,\n        intent: \"display\",\n        structTreeLayer: this.structTreeLayer\n      });\n    } catch (ex) {\n      console.error(\"#renderAnnotationLayer:\", ex);\n      error = ex;\n    } finally {\n      this.#dispatchLayerRendered(\"annotationlayerrendered\", error);\n    }\n  }\n  async #renderAnnotationEditorLayer() {\n    let error = null;\n    try {\n      await this.annotationEditorLayer.render({\n        viewport: this.viewport,\n        intent: \"display\"\n      });\n    } catch (ex) {\n      console.error(\"#renderAnnotationEditorLayer:\", ex);\n      error = ex;\n    } finally {\n      this.#dispatchLayerRendered(\"annotationeditorlayerrendered\", error);\n    }\n  }\n  async #renderDrawLayer() {\n    try {\n      await this.drawLayer.render({\n        intent: \"display\"\n      });\n    } catch (ex) {\n      console.error(\"#renderDrawLayer:\", ex);\n    }\n  }\n  async #renderXfaLayer() {\n    let error = null;\n    try {\n      const result = await this.xfaLayer.render({\n        viewport: this.viewport,\n        intent: \"display\"\n      });\n      if (result?.textDivs && this._textHighlighter) {\n        this.#buildXfaTextContentItems(result.textDivs);\n      }\n    } catch (ex) {\n      console.error(\"#renderXfaLayer:\", ex);\n      error = ex;\n    } finally {\n      if (this.xfaLayer?.div) {\n        this.l10n.pause();\n        this.#addLayer(this.xfaLayer.div, \"xfaLayer\");\n        this.l10n.resume();\n      }\n      this.#dispatchLayerRendered(\"xfalayerrendered\", error);\n    }\n  }\n  async #renderTextLayer() {\n    if (!this.textLayer) {\n      return;\n    }\n    let error = null;\n    try {\n      await this.textLayer.render({\n        viewport: this.viewport\n      });\n    } catch (ex) {\n      if (ex instanceof AbortException) {\n        return;\n      }\n      console.error(\"#renderTextLayer:\", ex);\n      error = ex;\n    }\n    this.#dispatchLayerRendered(\"textlayerrendered\", error);\n    this.#renderStructTreeLayer();\n  }\n  async #renderStructTreeLayer() {\n    if (!this.textLayer) {\n      return;\n    }\n    const treeDom = await this.structTreeLayer?.render();\n    if (treeDom) {\n      this.l10n.pause();\n      this.structTreeLayer?.addElementsToTextLayer();\n      if (this.canvas && treeDom.parentNode !== this.canvas) {\n        this.canvas.append(treeDom);\n      }\n      this.l10n.resume();\n    }\n    this.structTreeLayer?.show();\n  }\n  async #buildXfaTextContentItems(textDivs) {\n    const text = await this.pdfPage.getTextContent();\n    const items = [];\n    for (const item of text.items) {\n      items.push(item.str);\n    }\n    this._textHighlighter.setTextMapping(textDivs, items);\n    this._textHighlighter.enable();\n  }\n  async #injectLinkAnnotations(textLayerPromise) {\n    let error = null;\n    try {\n      await textLayerPromise;\n      if (!this.annotationLayer) {\n        return;\n      }\n      await this.annotationLayer.injectLinkAnnotations(Autolinker.processLinks(this));\n    } catch (ex) {\n      console.error(\"#injectLinkAnnotations:\", ex);\n      error = ex;\n    }\n  }\n  _resetCanvas() {\n    super._resetCanvas();\n    this.#originalViewport = null;\n  }\n  reset({\n    keepAnnotationLayer = false,\n    keepAnnotationEditorLayer = false,\n    keepXfaLayer = false,\n    keepTextLayer = false,\n    keepCanvasWrapper = false,\n    preserveDetailViewState = false\n  } = {}) {\n    const keepPdfBugGroups = this.pdfPage?._pdfBug ?? false;\n    this.cancelRendering({\n      keepAnnotationLayer,\n      keepAnnotationEditorLayer,\n      keepXfaLayer,\n      keepTextLayer\n    });\n    this.renderingState = RenderingStates.INITIAL;\n    const div = this.div;\n    const childNodes = div.childNodes,\n      annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null,\n      annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null,\n      xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null,\n      textLayerNode = keepTextLayer && this.textLayer?.div || null,\n      canvasWrapperNode = keepCanvasWrapper && this.#canvasWrapper || null;\n    for (let i = childNodes.length - 1; i >= 0; i--) {\n      const node = childNodes[i];\n      switch (node) {\n        case annotationLayerNode:\n        case annotationEditorLayerNode:\n        case xfaLayerNode:\n        case textLayerNode:\n        case canvasWrapperNode:\n          continue;\n      }\n      if (keepPdfBugGroups && node.classList.contains(\"pdfBugGroupsLayer\")) {\n        continue;\n      }\n      node.remove();\n      const layerIndex = this.#layers.indexOf(node);\n      if (layerIndex >= 0) {\n        this.#layers[layerIndex] = null;\n      }\n    }\n    div.removeAttribute(\"data-loaded\");\n    if (annotationLayerNode) {\n      this.annotationLayer.hide();\n    }\n    if (annotationEditorLayerNode) {\n      this.annotationEditorLayer.hide();\n    }\n    if (xfaLayerNode) {\n      this.xfaLayer.hide();\n    }\n    if (textLayerNode) {\n      this.textLayer.hide();\n    }\n    this.structTreeLayer?.hide();\n    if (!keepCanvasWrapper && this.#canvasWrapper) {\n      this.#canvasWrapper = null;\n      this._resetCanvas();\n    }\n    if (!preserveDetailViewState) {\n      this.detailView?.reset({\n        keepCanvas: keepCanvasWrapper\n      });\n      if (!keepCanvasWrapper) {\n        this.detailView = null;\n      }\n    }\n  }\n  toggleEditingMode(isEditing) {\n    this.#isEditing = isEditing;\n    if (!this.hasEditableAnnotations()) {\n      return;\n    }\n    this.reset({\n      keepAnnotationLayer: true,\n      keepAnnotationEditorLayer: true,\n      keepXfaLayer: true,\n      keepTextLayer: true,\n      keepCanvasWrapper: true\n    });\n  }\n  updateVisibleArea(visibleArea) {\n    if (this.enableDetailCanvas) {\n      if (this.#needsRestrictedScaling && this.maxCanvasPixels > 0 && visibleArea) {\n        this.detailView ??= new PDFPageDetailView({\n          pageView: this,\n          enableOptimizedPartialRendering: this.enableOptimizedPartialRendering\n        });\n        this.detailView.update({\n          visibleArea\n        });\n      } else if (this.detailView) {\n        this.detailView.reset();\n        this.detailView = null;\n      }\n    }\n  }\n  update({\n    scale = 0,\n    rotation = null,\n    optionalContentConfigPromise = null,\n    drawingDelay = -1\n  }) {\n    this.scale = scale || this.scale;\n    if (typeof rotation === \"number\") {\n      this.rotation = rotation;\n    }\n    if (optionalContentConfigPromise instanceof Promise) {\n      this._optionalContentConfigPromise = optionalContentConfigPromise;\n      optionalContentConfigPromise.then(optionalContentConfig => {\n        if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {\n          return;\n        }\n        this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;\n      });\n    }\n    this.#useThumbnailCanvas.directDrawing = true;\n    const totalRotation = (this.rotation + this.pdfPageRotate) % 360;\n    this.viewport = this.viewport.clone({\n      scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS,\n      rotation: totalRotation\n    });\n    this.#setDimensions();\n    if (this._isStandalone) {\n      this._container?.style.setProperty(\"--scale-factor\", this.viewport.scale);\n    }\n    this.#computeScale();\n    if (this.canvas) {\n      const onlyCssZoom = this.#hasRestrictedScaling && this.#needsRestrictedScaling;\n      const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;\n      if (postponeDrawing || onlyCssZoom) {\n        if (postponeDrawing && !onlyCssZoom && this.renderingState !== RenderingStates.FINISHED) {\n          this.cancelRendering({\n            keepAnnotationLayer: true,\n            keepAnnotationEditorLayer: true,\n            keepXfaLayer: true,\n            keepTextLayer: true,\n            cancelExtraDelay: drawingDelay\n          });\n          this.renderingState = RenderingStates.FINISHED;\n          this.#useThumbnailCanvas.directDrawing = false;\n        }\n        this.cssTransform({\n          redrawAnnotationLayer: true,\n          redrawAnnotationEditorLayer: true,\n          redrawXfaLayer: true,\n          redrawTextLayer: !postponeDrawing,\n          hideTextLayer: postponeDrawing\n        });\n        if (!postponeDrawing) {\n          this.detailView?.update({\n            underlyingViewUpdated: true\n          });\n          this.dispatchPageRendered(true, false);\n        }\n        return;\n      }\n    }\n    this.cssTransform({});\n    this.reset({\n      keepAnnotationLayer: true,\n      keepAnnotationEditorLayer: true,\n      keepXfaLayer: true,\n      keepTextLayer: true,\n      keepCanvasWrapper: true,\n      preserveDetailViewState: true\n    });\n    this.detailView?.update({\n      underlyingViewUpdated: true\n    });\n  }\n  #computeScale() {\n    const {\n      width,\n      height\n    } = this.viewport;\n    const outputScale = this.outputScale = new OutputScale();\n    if (this.maxCanvasPixels === 0) {\n      const invScale = 1 / this.scale;\n      outputScale.sx *= invScale;\n      outputScale.sy *= invScale;\n      this.#needsRestrictedScaling = true;\n    } else {\n      this.#needsRestrictedScaling = outputScale.limitCanvas(width, height, this.maxCanvasPixels, this.maxCanvasDim, this.capCanvasAreaFactor);\n      if (this.#needsRestrictedScaling && this.enableDetailCanvas) {\n        const factor = this.enableOptimizedPartialRendering ? 4 : 2;\n        outputScale.sx /= factor;\n        outputScale.sy /= factor;\n      }\n    }\n  }\n  cancelRendering({\n    keepAnnotationLayer = false,\n    keepAnnotationEditorLayer = false,\n    keepXfaLayer = false,\n    keepTextLayer = false,\n    cancelExtraDelay = 0\n  } = {}) {\n    super.cancelRendering({\n      cancelExtraDelay\n    });\n    if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) {\n      this.textLayer.cancel();\n      this.textLayer = null;\n    }\n    if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) {\n      this.annotationLayer.cancel();\n      this.annotationLayer = null;\n      this._annotationCanvasMap = null;\n    }\n    if (this.structTreeLayer && !this.textLayer) {\n      this.structTreeLayer = null;\n    }\n    if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) {\n      if (this.drawLayer) {\n        this.drawLayer.cancel();\n        this.drawLayer = null;\n      }\n      this.annotationEditorLayer.cancel();\n      this.annotationEditorLayer = null;\n    }\n    if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) {\n      this.xfaLayer.cancel();\n      this.xfaLayer = null;\n      this._textHighlighter?.disable();\n    }\n  }\n  cssTransform({\n    redrawAnnotationLayer = false,\n    redrawAnnotationEditorLayer = false,\n    redrawXfaLayer = false,\n    redrawTextLayer = false,\n    hideTextLayer = false\n  }) {\n    const {\n      canvas\n    } = this;\n    if (!canvas) {\n      return;\n    }\n    const originalViewport = this.#originalViewport;\n    if (this.viewport !== originalViewport) {\n      const relativeRotation = (360 + this.viewport.rotation - originalViewport.rotation) % 360;\n      if (relativeRotation === 90 || relativeRotation === 270) {\n        const {\n          width,\n          height\n        } = this.viewport;\n        const scaleX = height / width;\n        const scaleY = width / height;\n        canvas.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX},${scaleY})`;\n      } else {\n        canvas.style.transform = relativeRotation === 0 ? \"\" : `rotate(${relativeRotation}deg)`;\n      }\n    }\n    if (redrawAnnotationLayer && this.annotationLayer) {\n      this.#renderAnnotationLayer();\n    }\n    if (redrawAnnotationEditorLayer && this.annotationEditorLayer) {\n      if (this.drawLayer) {\n        this.#renderDrawLayer();\n      }\n      this.#renderAnnotationEditorLayer();\n    }\n    if (redrawXfaLayer && this.xfaLayer) {\n      this.#renderXfaLayer();\n    }\n    if (this.textLayer) {\n      if (hideTextLayer) {\n        this.textLayer.hide();\n        this.structTreeLayer?.hide();\n      } else if (redrawTextLayer) {\n        this.#renderTextLayer();\n      }\n    }\n  }\n  get width() {\n    return this.viewport.width;\n  }\n  get height() {\n    return this.viewport.height;\n  }\n  getPagePoint(x, y) {\n    return this.viewport.convertToPdfPoint(x, y);\n  }\n  _ensureCanvasWrapper() {\n    let canvasWrapper = this.#canvasWrapper;\n    if (!canvasWrapper) {\n      canvasWrapper = this.#canvasWrapper = document.createElement(\"div\");\n      canvasWrapper.classList.add(\"canvasWrapper\");\n      this.#addLayer(canvasWrapper, \"canvasWrapper\");\n    }\n    return canvasWrapper;\n  }\n  _getRenderingContext(canvas, transform, recordOperations) {\n    return {\n      canvas,\n      transform,\n      viewport: this.viewport,\n      annotationMode: this.#annotationMode,\n      optionalContentConfigPromise: this._optionalContentConfigPromise,\n      annotationCanvasMap: this._annotationCanvasMap,\n      pageColors: this.pageColors,\n      isEditing: this.#isEditing,\n      recordOperations\n    };\n  }\n  async draw() {\n    if (this.renderingState !== RenderingStates.INITIAL) {\n      console.error(\"Must be in new state before drawing\");\n      this.reset();\n    }\n    const {\n      div,\n      l10n,\n      pdfPage,\n      viewport\n    } = this;\n    if (!pdfPage) {\n      this.renderingState = RenderingStates.FINISHED;\n      throw new Error(\"pdfPage is not loaded\");\n    }\n    this.renderingState = RenderingStates.RUNNING;\n    const canvasWrapper = this._ensureCanvasWrapper();\n    if (!this.textLayer && this.#textLayerMode !== TextLayerMode.DISABLE && !pdfPage.isPureXfa) {\n      this._accessibilityManager ||= new TextAccessibilityManager();\n      this.textLayer = new TextLayerBuilder({\n        pdfPage,\n        highlighter: this._textHighlighter,\n        accessibilityManager: this._accessibilityManager,\n        enablePermissions: this.#textLayerMode === TextLayerMode.ENABLE_PERMISSIONS,\n        onAppend: textLayerDiv => {\n          this.l10n.pause();\n          this.#addLayer(textLayerDiv, \"textLayer\");\n          this.l10n.resume();\n        }\n      });\n    }\n    if (!this.annotationLayer && this.#annotationMode !== AnnotationMode.DISABLE) {\n      const {\n        annotationStorage,\n        annotationEditorUIManager,\n        downloadManager,\n        enableComment,\n        enableScripting,\n        fieldObjectsPromise,\n        hasJSActionsPromise,\n        linkService\n      } = this.#layerProperties;\n      this._annotationCanvasMap ||= new Map();\n      this.annotationLayer = new AnnotationLayerBuilder({\n        pdfPage,\n        annotationStorage,\n        imageResourcesPath: this.imageResourcesPath,\n        renderForms: this.#annotationMode === AnnotationMode.ENABLE_FORMS,\n        linkService,\n        downloadManager,\n        enableComment,\n        enableScripting,\n        hasJSActionsPromise,\n        fieldObjectsPromise,\n        annotationCanvasMap: this._annotationCanvasMap,\n        accessibilityManager: this._accessibilityManager,\n        annotationEditorUIManager,\n        commentManager: this.#commentManager,\n        onAppend: annotationLayerDiv => {\n          this.#addLayer(annotationLayerDiv, \"annotationLayer\");\n        }\n      });\n    }\n    const {\n      width,\n      height\n    } = viewport;\n    this.#originalViewport = viewport;\n    const {\n      canvas,\n      prevCanvas\n    } = this._createCanvas(newCanvas => {\n      canvasWrapper.prepend(newCanvas);\n    });\n    canvas.setAttribute(\"role\", \"presentation\");\n    if (!this.outputScale) {\n      this.#computeScale();\n    }\n    const {\n      outputScale\n    } = this;\n    this.#hasRestrictedScaling = this.#needsRestrictedScaling;\n    const sfx = approximateFraction(outputScale.sx);\n    const sfy = approximateFraction(outputScale.sy);\n    const canvasWidth = canvas.width = floorToDivide(calcRound(width * outputScale.sx), sfx[0]);\n    const canvasHeight = canvas.height = floorToDivide(calcRound(height * outputScale.sy), sfy[0]);\n    const pageWidth = floorToDivide(calcRound(width), sfx[1]);\n    const pageHeight = floorToDivide(calcRound(height), sfy[1]);\n    outputScale.sx = canvasWidth / pageWidth;\n    outputScale.sy = canvasHeight / pageHeight;\n    if (this.#scaleRoundX !== sfx[1]) {\n      div.style.setProperty(\"--scale-round-x\", `${sfx[1]}px`);\n      this.#scaleRoundX = sfx[1];\n    }\n    if (this.#scaleRoundY !== sfy[1]) {\n      div.style.setProperty(\"--scale-round-y\", `${sfy[1]}px`);\n      this.#scaleRoundY = sfy[1];\n    }\n    const recordBBoxes = this.enableOptimizedPartialRendering && this.#hasRestrictedScaling && !this.recordedBBoxes;\n    const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;\n    const resultPromise = this._drawCanvas(this._getRenderingContext(canvas, transform, recordBBoxes), () => {\n      prevCanvas?.remove();\n      this._resetCanvas();\n    }, renderTask => {\n      this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots;\n      this.dispatchPageRendered(false, false);\n    }).then(async () => {\n      if (this.renderingState !== RenderingStates.FINISHED) {\n        return;\n      }\n      this.structTreeLayer ||= new StructTreeLayerBuilder(pdfPage, viewport.rawDims);\n      const textLayerPromise = this.#renderTextLayer();\n      if (this.annotationLayer) {\n        await this.#renderAnnotationLayer();\n        if (this.#enableAutoLinking && this.annotationLayer && this.textLayer) {\n          await this.#injectLinkAnnotations(textLayerPromise);\n        }\n      }\n      const {\n        annotationEditorUIManager\n      } = this.#layerProperties;\n      if (!annotationEditorUIManager) {\n        return;\n      }\n      this.drawLayer ||= new DrawLayerBuilder({\n        pageIndex: this.id\n      });\n      await this.#renderDrawLayer();\n      this.drawLayer.setParent(canvasWrapper);\n      if (this.annotationLayer || this.#annotationMode === AnnotationMode.DISABLE) {\n        this.annotationEditorLayer ||= new AnnotationEditorLayerBuilder({\n          uiManager: annotationEditorUIManager,\n          pdfPage,\n          l10n,\n          structTreeLayer: this.structTreeLayer,\n          accessibilityManager: this._accessibilityManager,\n          annotationLayer: this.annotationLayer?.annotationLayer,\n          textLayer: this.textLayer,\n          drawLayer: this.drawLayer.getDrawLayer(),\n          onAppend: annotationEditorLayerDiv => {\n            this.#addLayer(annotationEditorLayerDiv, \"annotationEditorLayer\");\n          }\n        });\n        this.#renderAnnotationEditorLayer();\n      }\n    });\n    if (pdfPage.isPureXfa) {\n      if (!this.xfaLayer) {\n        const {\n          annotationStorage,\n          linkService\n        } = this.#layerProperties;\n        this.xfaLayer = new XfaLayerBuilder({\n          pdfPage,\n          annotationStorage,\n          linkService\n        });\n      }\n      this.#renderXfaLayer();\n    }\n    div.setAttribute(\"data-loaded\", true);\n    this.dispatchPageRender();\n    return resultPromise;\n  }\n  setPageLabel(label) {\n    this.pageLabel = typeof label === \"string\" ? label : null;\n    this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n      page: this.pageLabel ?? this.id\n    }));\n    if (this.pageLabel !== null) {\n      this.div.setAttribute(\"data-page-label\", this.pageLabel);\n    } else {\n      this.div.removeAttribute(\"data-page-label\");\n    }\n  }\n  get thumbnailCanvas() {\n    const {\n      directDrawing,\n      initialOptionalContent,\n      regularAnnotations\n    } = this.#useThumbnailCanvas;\n    return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null;\n  }\n}\n\n;// ./web/pdf_viewer.js\n\n\n\n\n\n\nconst DEFAULT_CACHE_SIZE = 10;\nconst PagesCountLimit = {\n  FORCE_SCROLL_MODE_PAGE: 10000,\n  FORCE_LAZY_PAGE_INIT: 5000,\n  PAUSE_EAGER_PAGE_INIT: 250\n};\nfunction isValidAnnotationEditorMode(mode) {\n  return Object.values(AnnotationEditorType).includes(mode) && mode !== AnnotationEditorType.DISABLE;\n}\nclass PDFPageViewBuffer {\n  #buf = new Set();\n  #size = 0;\n  constructor(size) {\n    this.#size = size;\n  }\n  push(view) {\n    const buf = this.#buf;\n    if (buf.has(view)) {\n      buf.delete(view);\n    }\n    buf.add(view);\n    if (buf.size > this.#size) {\n      this.#destroyFirstView();\n    }\n  }\n  resize(newSize, idsToKeep = null) {\n    this.#size = newSize;\n    const buf = this.#buf;\n    if (idsToKeep) {\n      const ii = buf.size;\n      let i = 1;\n      for (const view of buf) {\n        if (idsToKeep.has(view.id)) {\n          buf.delete(view);\n          buf.add(view);\n        }\n        if (++i > ii) {\n          break;\n        }\n      }\n    }\n    while (buf.size > this.#size) {\n      this.#destroyFirstView();\n    }\n  }\n  has(view) {\n    return this.#buf.has(view);\n  }\n  [Symbol.iterator]() {\n    return this.#buf.keys();\n  }\n  #destroyFirstView() {\n    const firstView = this.#buf.keys().next().value;\n    firstView?.destroy();\n    this.#buf.delete(firstView);\n  }\n}\nclass PDFViewer {\n  #buffer = null;\n  #altTextManager = null;\n  #annotationEditorHighlightColors = null;\n  #annotationEditorMode = AnnotationEditorType.NONE;\n  #annotationEditorUIManager = null;\n  #annotationMode = AnnotationMode.ENABLE_FORMS;\n  #commentManager = null;\n  #containerTopLeft = null;\n  #editorUndoBar = null;\n  #enableHWA = false;\n  #enableHighlightFloatingButton = false;\n  #enablePermissions = false;\n  #enableUpdatedAddImage = false;\n  #enableNewAltTextWhenAddingImage = false;\n  #enableAutoLinking = true;\n  #eventAbortController = null;\n  #minDurationToUpdateCanvas = 0;\n  #mlManager = null;\n  #printingAllowed = true;\n  #scrollTimeoutId = null;\n  #switchAnnotationEditorModeAC = null;\n  #switchAnnotationEditorModeTimeoutId = null;\n  #getAllTextInProgress = false;\n  #hiddenCopyElement = null;\n  #interruptCopyCondition = false;\n  #previousContainerHeight = 0;\n  #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));\n  #scrollModePageState = null;\n  #scaleTimeoutId = null;\n  #signatureManager = null;\n  #supportsPinchToZoom = true;\n  #textLayerMode = TextLayerMode.ENABLE;\n  #viewerAlert = null;\n  constructor(options) {\n    const viewerVersion = \"5.4.394\";\n    if (version !== viewerVersion) {\n      throw new Error(`The API version \"${version}\" does not match the Viewer version \"${viewerVersion}\".`);\n    }\n    this.container = options.container;\n    this.viewer = options.viewer || options.container.firstElementChild;\n    this.#viewerAlert = options.viewerAlert || null;\n    if (this.container?.tagName !== \"DIV\" || this.viewer?.tagName !== \"DIV\") {\n      throw new Error(\"Invalid `container` and/or `viewer` option.\");\n    }\n    if (this.container.offsetParent && getComputedStyle(this.container).position !== \"absolute\") {\n      throw new Error(\"The `container` must be absolutely positioned.\");\n    }\n    this.#resizeObserver.observe(this.container);\n    this.eventBus = options.eventBus;\n    this.linkService = options.linkService || new SimpleLinkService();\n    this.downloadManager = options.downloadManager || null;\n    this.findController = options.findController || null;\n    this.#altTextManager = options.altTextManager || null;\n    this.#commentManager = options.commentManager || null;\n    this.#signatureManager = options.signatureManager || null;\n    this.#editorUndoBar = options.editorUndoBar || null;\n    if (this.findController) {\n      this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber);\n    }\n    this._scriptingManager = options.scriptingManager || null;\n    this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE;\n    this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS;\n    this.#annotationEditorMode = options.annotationEditorMode ?? AnnotationEditorType.NONE;\n    this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null;\n    this.#enableHighlightFloatingButton = options.enableHighlightFloatingButton === true;\n    this.#enableUpdatedAddImage = options.enableUpdatedAddImage === true;\n    this.#enableNewAltTextWhenAddingImage = options.enableNewAltTextWhenAddingImage === true;\n    this.imageResourcesPath = options.imageResourcesPath || \"\";\n    this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n    this.removePageBorders = options.removePageBorders || true;\n    this.maxCanvasPixels = options.maxCanvasPixels;\n    this.maxCanvasDim = options.maxCanvasDim;\n    this.capCanvasAreaFactor = options.capCanvasAreaFactor;\n    this.enableDetailCanvas = options.enableDetailCanvas ?? true;\n    this.enableOptimizedPartialRendering = options.enableOptimizedPartialRendering ?? false;\n    this.l10n = options.l10n;\n    this.l10n ||= new genericl10n_GenericL10n();\n    this.#enablePermissions = options.enablePermissions || false;\n    this.pageColors = options.pageColors || null;\n    this.#mlManager = options.mlManager || null;\n    this.#enableHWA = options.enableHWA || false;\n    this.#supportsPinchToZoom = options.supportsPinchToZoom !== false;\n    this.#enableAutoLinking = options.enableAutoLinking !== false;\n    this.#minDurationToUpdateCanvas = options.minDurationToUpdateCanvas ?? 500;\n    this.defaultRenderingQueue = !options.renderingQueue;\n    if (this.defaultRenderingQueue) {\n      this.renderingQueue = new PDFRenderingQueue();\n      this.renderingQueue.setViewer(this);\n    } else {\n      this.renderingQueue = options.renderingQueue;\n    }\n    const {\n      abortSignal\n    } = options;\n    abortSignal?.addEventListener(\"abort\", () => {\n      this.#resizeObserver.disconnect();\n      this.#resizeObserver = null;\n    }, {\n      once: true\n    });\n    this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this), abortSignal);\n    this.presentationModeState = PresentationModeState.UNKNOWN;\n    this._resetView();\n    if (this.removePageBorders) {\n      this.viewer.classList.add(\"removePageBorders\");\n    }\n    this.#updateContainerHeightCss();\n    this.eventBus._on(\"thumbnailrendered\", ({\n      pageNumber,\n      pdfPage\n    }) => {\n      const pageView = this._pages[pageNumber - 1];\n      if (!this.#buffer.has(pageView)) {\n        pdfPage?.cleanup();\n      }\n    });\n    if (!options.l10n) {\n      this.l10n.translate(this.container);\n    }\n  }\n  get printingAllowed() {\n    return this.#printingAllowed;\n  }\n  get pagesCount() {\n    return this._pages.length;\n  }\n  getPageView(index) {\n    return this._pages[index];\n  }\n  getCachedPageViews() {\n    return new Set(this.#buffer);\n  }\n  get pageViewsReady() {\n    return this._pages.every(pageView => pageView?.pdfPage);\n  }\n  get renderForms() {\n    return this.#annotationMode === AnnotationMode.ENABLE_FORMS;\n  }\n  get enableScripting() {\n    return !!this._scriptingManager;\n  }\n  get currentPageNumber() {\n    return this._currentPageNumber;\n  }\n  set currentPageNumber(val) {\n    if (!Number.isInteger(val)) {\n      throw new Error(\"Invalid page number.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (!this._setCurrentPageNumber(val, true)) {\n      console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n    }\n  }\n  _setCurrentPageNumber(val, resetCurrentPageView = false) {\n    if (this._currentPageNumber === val) {\n      if (resetCurrentPageView) {\n        this.#resetCurrentPageView();\n      }\n      return true;\n    }\n    if (!(0 < val && val <= this.pagesCount)) {\n      return false;\n    }\n    const previous = this._currentPageNumber;\n    this._currentPageNumber = val;\n    this.eventBus.dispatch(\"pagechanging\", {\n      source: this,\n      pageNumber: val,\n      pageLabel: this._pageLabels?.[val - 1] ?? null,\n      previous\n    });\n    if (resetCurrentPageView) {\n      this.#resetCurrentPageView();\n    }\n    return true;\n  }\n  get currentPageLabel() {\n    return this._pageLabels?.[this._currentPageNumber - 1] ?? null;\n  }\n  set currentPageLabel(val) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    let page = val | 0;\n    if (this._pageLabels) {\n      const i = this._pageLabels.indexOf(val);\n      if (i >= 0) {\n        page = i + 1;\n      }\n    }\n    if (!this._setCurrentPageNumber(page, true)) {\n      console.error(`currentPageLabel: \"${val}\" is not a valid page.`);\n    }\n  }\n  get currentScale() {\n    return this._currentScale !== UNKNOWN_SCALE ? this._currentScale : DEFAULT_SCALE;\n  }\n  set currentScale(val) {\n    if (isNaN(val)) {\n      throw new Error(\"Invalid numeric scale.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    this.#setScale(val, {\n      noScroll: false\n    });\n  }\n  get currentScaleValue() {\n    return this._currentScaleValue;\n  }\n  set currentScaleValue(val) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    this.#setScale(val, {\n      noScroll: false\n    });\n  }\n  get pagesRotation() {\n    return this._pagesRotation;\n  }\n  set pagesRotation(rotation) {\n    if (!isValidRotation(rotation)) {\n      throw new Error(\"Invalid pages rotation angle.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    rotation %= 360;\n    if (rotation < 0) {\n      rotation += 360;\n    }\n    if (this._pagesRotation === rotation) {\n      return;\n    }\n    this._pagesRotation = rotation;\n    const pageNumber = this._currentPageNumber;\n    this.refresh(true, {\n      rotation\n    });\n    if (this._currentScaleValue) {\n      this.#setScale(this._currentScaleValue, {\n        noScroll: true\n      });\n    }\n    this.eventBus.dispatch(\"rotationchanging\", {\n      source: this,\n      pagesRotation: rotation,\n      pageNumber\n    });\n    if (this.defaultRenderingQueue) {\n      this.update();\n    }\n  }\n  get firstPagePromise() {\n    return this.pdfDocument ? this._firstPageCapability.promise : null;\n  }\n  get onePageRendered() {\n    return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n  }\n  get pagesPromise() {\n    return this.pdfDocument ? this._pagesCapability.promise : null;\n  }\n  get _layerProperties() {\n    const self = this;\n    return shadow(this, \"_layerProperties\", {\n      get annotationEditorUIManager() {\n        return self.#annotationEditorUIManager;\n      },\n      get annotationStorage() {\n        return self.pdfDocument?.annotationStorage;\n      },\n      get downloadManager() {\n        return self.downloadManager;\n      },\n      get enableComment() {\n        return !!self.#commentManager;\n      },\n      get enableScripting() {\n        return !!self._scriptingManager;\n      },\n      get fieldObjectsPromise() {\n        return self.pdfDocument?.getFieldObjects();\n      },\n      get findController() {\n        return self.findController;\n      },\n      get hasJSActionsPromise() {\n        return self.pdfDocument?.hasJSActions();\n      },\n      get linkService() {\n        return self.linkService;\n      }\n    });\n  }\n  #initializePermissions(permissions) {\n    const params = {\n      annotationEditorMode: this.#annotationEditorMode,\n      annotationMode: this.#annotationMode,\n      textLayerMode: this.#textLayerMode\n    };\n    if (!permissions) {\n      this.#printingAllowed = true;\n      this.eventBus.dispatch(\"printingallowed\", {\n        source: this,\n        isAllowed: this.#printingAllowed\n      });\n      return params;\n    }\n    this.#printingAllowed = permissions.includes(PermissionFlag.PRINT_HIGH_QUALITY) || permissions.includes(PermissionFlag.PRINT);\n    this.eventBus.dispatch(\"printingallowed\", {\n      source: this,\n      isAllowed: this.#printingAllowed\n    });\n    if (!permissions.includes(PermissionFlag.COPY) && this.#textLayerMode === TextLayerMode.ENABLE) {\n      params.textLayerMode = TextLayerMode.ENABLE_PERMISSIONS;\n    }\n    if (!permissions.includes(PermissionFlag.MODIFY_CONTENTS)) {\n      params.annotationEditorMode = AnnotationEditorType.DISABLE;\n    }\n    if (!permissions.includes(PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === AnnotationMode.ENABLE_FORMS) {\n      params.annotationMode = AnnotationMode.ENABLE;\n    }\n    return params;\n  }\n  async #onePageRenderedOrForceFetch(signal) {\n    if (document.visibilityState === \"hidden\" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) {\n      return;\n    }\n    const hiddenCapability = Promise.withResolvers(),\n      ac = new AbortController();\n    document.addEventListener(\"visibilitychange\", () => {\n      if (document.visibilityState === \"hidden\") {\n        hiddenCapability.resolve();\n      }\n    }, {\n      signal: AbortSignal.any([signal, ac.signal])\n    });\n    await Promise.race([this._onePageRenderedCapability.promise, hiddenCapability.promise]);\n    ac.abort();\n  }\n  async getAllText() {\n    const texts = [];\n    const buffer = [];\n    for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) {\n      if (this.#interruptCopyCondition) {\n        return null;\n      }\n      buffer.length = 0;\n      const page = await this.pdfDocument.getPage(pageNum);\n      const {\n        items\n      } = await page.getTextContent();\n      for (const item of items) {\n        if (item.str) {\n          buffer.push(item.str);\n        }\n        if (item.hasEOL) {\n          buffer.push(\"\\n\");\n        }\n      }\n      texts.push(removeNullCharacters(buffer.join(\"\")));\n    }\n    return texts.join(\"\\n\");\n  }\n  #copyCallback(textLayerMode, event) {\n    const selection = document.getSelection();\n    const {\n      focusNode,\n      anchorNode\n    } = selection;\n    if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) {\n      if (this.#getAllTextInProgress || textLayerMode === TextLayerMode.ENABLE_PERMISSIONS) {\n        stopEvent(event);\n        return;\n      }\n      this.#getAllTextInProgress = true;\n      const {\n        classList\n      } = this.viewer;\n      classList.add(\"copyAll\");\n      const ac = new AbortController();\n      window.addEventListener(\"keydown\", ev => this.#interruptCopyCondition = ev.key === \"Escape\", {\n        signal: ac.signal\n      });\n      this.getAllText().then(async text => {\n        if (text !== null) {\n          await navigator.clipboard.writeText(text);\n        }\n      }).catch(reason => {\n        console.warn(`Something goes wrong when extracting the text: ${reason.message}`);\n      }).finally(() => {\n        this.#getAllTextInProgress = false;\n        this.#interruptCopyCondition = false;\n        ac.abort();\n        classList.remove(\"copyAll\");\n      });\n      stopEvent(event);\n    }\n  }\n  setDocument(pdfDocument) {\n    if (this.pdfDocument) {\n      this.eventBus.dispatch(\"pagesdestroy\", {\n        source: this\n      });\n      this._cancelRendering();\n      this._resetView();\n      this.findController?.setDocument(null);\n      this._scriptingManager?.setDocument(null);\n      this.#annotationEditorUIManager?.destroy();\n      this.#annotationEditorUIManager = null;\n      this.#annotationEditorMode = AnnotationEditorType.NONE;\n      this.#printingAllowed = true;\n    }\n    this.pdfDocument = pdfDocument;\n    if (!pdfDocument) {\n      return;\n    }\n    const pagesCount = pdfDocument.numPages;\n    const firstPagePromise = pdfDocument.getPage(1);\n    const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({\n      intent: \"display\"\n    });\n    const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve();\n    const {\n      eventBus,\n      pageColors,\n      viewer\n    } = this;\n    this.#eventAbortController = new AbortController();\n    const {\n      signal\n    } = this.#eventAbortController;\n    if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n      console.warn(\"Forcing PAGE-scrolling for performance reasons, given the length of the document.\");\n      const mode = this._scrollMode = ScrollMode.PAGE;\n      eventBus.dispatch(\"scrollmodechanged\", {\n        source: this,\n        mode\n      });\n    }\n    this._pagesCapability.promise.then(() => {\n      eventBus.dispatch(\"pagesloaded\", {\n        source: this,\n        pagesCount\n      });\n    }, () => {});\n    const onBeforeDraw = evt => {\n      const pageView = this._pages[evt.pageNumber - 1];\n      if (!pageView) {\n        return;\n      }\n      this.#buffer.push(pageView);\n    };\n    eventBus._on(\"pagerender\", onBeforeDraw, {\n      signal\n    });\n    const onAfterDraw = evt => {\n      if (evt.cssTransform || evt.isDetailView) {\n        return;\n      }\n      this._onePageRenderedCapability.resolve({\n        timestamp: evt.timestamp\n      });\n      eventBus._off(\"pagerendered\", onAfterDraw);\n    };\n    eventBus._on(\"pagerendered\", onAfterDraw, {\n      signal\n    });\n    Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => {\n      if (pdfDocument !== this.pdfDocument) {\n        return;\n      }\n      this._firstPageCapability.resolve(firstPdfPage);\n      this._optionalContentConfigPromise = optionalContentConfigPromise;\n      const {\n        annotationEditorMode,\n        annotationMode,\n        textLayerMode\n      } = this.#initializePermissions(permissions);\n      if (textLayerMode !== TextLayerMode.DISABLE) {\n        const element = this.#hiddenCopyElement = document.createElement(\"div\");\n        element.id = \"hiddenCopyElement\";\n        viewer.before(element);\n      }\n      if (annotationEditorMode !== AnnotationEditorType.DISABLE) {\n        const mode = annotationEditorMode;\n        if (pdfDocument.isPureXfa) {\n          console.warn(\"Warning: XFA-editing is not implemented.\");\n        } else if (isValidAnnotationEditorMode(mode)) {\n          this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#viewerAlert, this.#altTextManager, this.#commentManager, this.#signatureManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#enableNewAltTextWhenAddingImage, this.#mlManager, this.#editorUndoBar, this.#supportsPinchToZoom);\n          eventBus.dispatch(\"annotationeditoruimanager\", {\n            source: this,\n            uiManager: this.#annotationEditorUIManager\n          });\n          if (mode !== AnnotationEditorType.NONE) {\n            this.#preloadEditingData(mode);\n            this.#annotationEditorUIManager.updateMode(mode);\n          }\n        } else {\n          console.error(`Invalid AnnotationEditor mode: ${mode}`);\n        }\n      }\n      const viewerElement = this._scrollMode === ScrollMode.PAGE ? null : viewer;\n      const scale = this.currentScale;\n      const viewport = firstPdfPage.getViewport({\n        scale: scale * PixelsPerInch.PDF_TO_CSS_UNITS\n      });\n      viewer.style.setProperty(\"--scale-factor\", viewport.scale);\n      if (pageColors?.background) {\n        viewer.style.setProperty(\"--page-bg-color\", pageColors.background);\n      }\n      if (pageColors?.foreground === \"CanvasText\" || pageColors?.background === \"Canvas\") {\n        viewer.style.setProperty(\"--hcm-highlight-filter\", pdfDocument.filterFactory.addHighlightHCMFilter(\"highlight\", \"CanvasText\", \"Canvas\", \"HighlightText\", \"Highlight\"));\n        viewer.style.setProperty(\"--hcm-highlight-selected-filter\", pdfDocument.filterFactory.addHighlightHCMFilter(\"highlight_selected\", \"CanvasText\", \"Canvas\", \"HighlightText\", \"ButtonText\"));\n      }\n      for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {\n        const pageView = new PDFPageView({\n          container: viewerElement,\n          eventBus,\n          id: pageNum,\n          scale,\n          defaultViewport: viewport.clone(),\n          optionalContentConfigPromise,\n          renderingQueue: this.renderingQueue,\n          textLayerMode,\n          annotationMode,\n          imageResourcesPath: this.imageResourcesPath,\n          maxCanvasPixels: this.maxCanvasPixels,\n          maxCanvasDim: this.maxCanvasDim,\n          capCanvasAreaFactor: this.capCanvasAreaFactor,\n          enableDetailCanvas: this.enableDetailCanvas,\n          enableOptimizedPartialRendering: this.enableOptimizedPartialRendering,\n          pageColors,\n          l10n: this.l10n,\n          layerProperties: this._layerProperties,\n          enableHWA: this.#enableHWA,\n          enableAutoLinking: this.#enableAutoLinking,\n          minDurationToUpdateCanvas: this.#minDurationToUpdateCanvas,\n          commentManager: this.#commentManager\n        });\n        this._pages.push(pageView);\n      }\n      this._pages[0]?.setPdfPage(firstPdfPage);\n      if (this._scrollMode === ScrollMode.PAGE) {\n        this.#ensurePageViewVisible();\n      } else if (this._spreadMode !== SpreadMode.NONE) {\n        this._updateSpreadMode();\n      }\n      eventBus._on(\"annotationeditorlayerrendered\", evt => {\n        if (this.#annotationEditorUIManager) {\n          eventBus.dispatch(\"annotationeditormodechanged\", {\n            source: this,\n            mode: this.#annotationEditorMode\n          });\n        }\n      }, {\n        once: true,\n        signal\n      });\n      this.#onePageRenderedOrForceFetch(signal).then(async () => {\n        if (pdfDocument !== this.pdfDocument) {\n          return;\n        }\n        this.findController?.setDocument(pdfDocument);\n        this._scriptingManager?.setDocument(pdfDocument);\n        if (this.#hiddenCopyElement) {\n          document.addEventListener(\"copy\", this.#copyCallback.bind(this, textLayerMode), {\n            signal\n          });\n        }\n        if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) {\n          this._pagesCapability.resolve();\n          return;\n        }\n        let getPagesLeft = pagesCount - 1;\n        if (getPagesLeft <= 0) {\n          this._pagesCapability.resolve();\n          return;\n        }\n        for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {\n          const promise = pdfDocument.getPage(pageNum).then(pdfPage => {\n            const pageView = this._pages[pageNum - 1];\n            if (!pageView.pdfPage) {\n              pageView.setPdfPage(pdfPage);\n            }\n            if (--getPagesLeft === 0) {\n              this._pagesCapability.resolve();\n            }\n          }, reason => {\n            console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);\n            if (--getPagesLeft === 0) {\n              this._pagesCapability.resolve();\n            }\n          });\n          if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) {\n            await promise;\n          }\n        }\n      });\n      eventBus.dispatch(\"pagesinit\", {\n        source: this\n      });\n      pdfDocument.getMetadata().then(({\n        info\n      }) => {\n        if (pdfDocument !== this.pdfDocument) {\n          return;\n        }\n        if (info.Language) {\n          viewer.lang = info.Language;\n        }\n      });\n      if (this.defaultRenderingQueue) {\n        this.update();\n      }\n    }).catch(reason => {\n      console.error(\"Unable to initialize viewer\", reason);\n      this._pagesCapability.reject(reason);\n    });\n  }\n  setPageLabels(labels) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (!labels) {\n      this._pageLabels = null;\n    } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {\n      this._pageLabels = null;\n      console.error(`setPageLabels: Invalid page labels.`);\n    } else {\n      this._pageLabels = labels;\n    }\n    for (let i = 0, ii = this._pages.length; i < ii; i++) {\n      this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null);\n    }\n  }\n  _resetView() {\n    this._pages = [];\n    this._currentPageNumber = 1;\n    this._currentScale = UNKNOWN_SCALE;\n    this._currentScaleValue = null;\n    this._pageLabels = null;\n    this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);\n    this._location = null;\n    this._pagesRotation = 0;\n    this._optionalContentConfigPromise = null;\n    this._firstPageCapability = Promise.withResolvers();\n    this._onePageRenderedCapability = Promise.withResolvers();\n    this._pagesCapability = Promise.withResolvers();\n    this._scrollMode = ScrollMode.VERTICAL;\n    this._previousScrollMode = ScrollMode.UNKNOWN;\n    this._spreadMode = SpreadMode.NONE;\n    this.#scrollModePageState = {\n      previousPageNumber: 1,\n      scrollDown: true,\n      pages: []\n    };\n    this.#eventAbortController?.abort();\n    this.#eventAbortController = null;\n    this.viewer.textContent = \"\";\n    this._updateScrollMode();\n    this.viewer.removeAttribute(\"lang\");\n    this.#hiddenCopyElement?.remove();\n    this.#hiddenCopyElement = null;\n    this.#cleanupTimeouts();\n    this.#cleanupSwitchAnnotationEditorMode();\n  }\n  #ensurePageViewVisible() {\n    if (this._scrollMode !== ScrollMode.PAGE) {\n      throw new Error(\"#ensurePageViewVisible: Invalid scrollMode value.\");\n    }\n    const pageNumber = this._currentPageNumber,\n      state = this.#scrollModePageState,\n      viewer = this.viewer;\n    viewer.textContent = \"\";\n    state.pages.length = 0;\n    if (this._spreadMode === SpreadMode.NONE && !this.isInPresentationMode) {\n      const pageView = this._pages[pageNumber - 1];\n      viewer.append(pageView.div);\n      state.pages.push(pageView);\n    } else {\n      const pageIndexSet = new Set(),\n        parity = this._spreadMode - 1;\n      if (parity === -1) {\n        pageIndexSet.add(pageNumber - 1);\n      } else if (pageNumber % 2 !== parity) {\n        pageIndexSet.add(pageNumber - 1);\n        pageIndexSet.add(pageNumber);\n      } else {\n        pageIndexSet.add(pageNumber - 2);\n        pageIndexSet.add(pageNumber - 1);\n      }\n      const spread = document.createElement(\"div\");\n      spread.className = \"spread\";\n      if (this.isInPresentationMode) {\n        const dummyPage = document.createElement(\"div\");\n        dummyPage.className = \"dummyPage\";\n        spread.append(dummyPage);\n      }\n      for (const i of pageIndexSet) {\n        const pageView = this._pages[i];\n        if (!pageView) {\n          continue;\n        }\n        spread.append(pageView.div);\n        state.pages.push(pageView);\n      }\n      viewer.append(spread);\n    }\n    state.scrollDown = pageNumber >= state.previousPageNumber;\n    state.previousPageNumber = pageNumber;\n  }\n  _scrollUpdate() {\n    if (this.pagesCount === 0) {\n      return;\n    }\n    if (this.#scrollTimeoutId) {\n      clearTimeout(this.#scrollTimeoutId);\n    }\n    this.#scrollTimeoutId = setTimeout(() => {\n      this.#scrollTimeoutId = null;\n      this.update();\n    }, 100);\n    this.update();\n  }\n  #scrollIntoView(pageView, pageSpot = null) {\n    const {\n      div,\n      id\n    } = pageView;\n    if (this._currentPageNumber !== id) {\n      this._setCurrentPageNumber(id);\n    }\n    if (this._scrollMode === ScrollMode.PAGE) {\n      this.#ensurePageViewVisible();\n      this.update();\n    }\n    if (!pageSpot && !this.isInPresentationMode) {\n      const left = div.offsetLeft + div.clientLeft,\n        right = left + div.clientWidth;\n      const {\n        scrollLeft,\n        clientWidth\n      } = this.container;\n      if (this._scrollMode === ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {\n        pageSpot = {\n          left: 0,\n          top: 0\n        };\n      }\n    }\n    scrollIntoView(div, pageSpot);\n    if (!this._currentScaleValue && this._location) {\n      this._location = null;\n    }\n  }\n  #isSameScale(newScale) {\n    return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15;\n  }\n  #setScaleUpdatePages(newScale, newValue, {\n    noScroll = false,\n    preset = false,\n    drawingDelay = -1,\n    origin = null\n  }) {\n    this._currentScaleValue = newValue.toString();\n    if (this.#isSameScale(newScale)) {\n      if (preset) {\n        this.eventBus.dispatch(\"scalechanging\", {\n          source: this,\n          scale: newScale,\n          presetValue: newValue\n        });\n      }\n      return;\n    }\n    this.viewer.style.setProperty(\"--scale-factor\", newScale * PixelsPerInch.PDF_TO_CSS_UNITS);\n    const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;\n    this.refresh(true, {\n      scale: newScale,\n      drawingDelay: postponeDrawing ? drawingDelay : -1\n    });\n    if (postponeDrawing) {\n      this.#scaleTimeoutId = setTimeout(() => {\n        this.#scaleTimeoutId = null;\n        this.refresh();\n      }, drawingDelay);\n    }\n    const previousScale = this._currentScale;\n    this._currentScale = newScale;\n    if (!noScroll) {\n      let page = this._currentPageNumber,\n        dest;\n      if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {\n        page = this._location.pageNumber;\n        dest = [null, {\n          name: \"XYZ\"\n        }, this._location.left, this._location.top, null];\n      }\n      this.scrollPageIntoView({\n        pageNumber: page,\n        destArray: dest,\n        allowNegativeOffset: true\n      });\n      if (Array.isArray(origin)) {\n        const scaleDiff = newScale / previousScale - 1;\n        const [top, left] = this.containerTopLeft;\n        this.container.scrollLeft += (origin[0] - left) * scaleDiff;\n        this.container.scrollTop += (origin[1] - top) * scaleDiff;\n      }\n    }\n    this.eventBus.dispatch(\"scalechanging\", {\n      source: this,\n      scale: newScale,\n      presetValue: preset ? newValue : undefined\n    });\n    if (this.defaultRenderingQueue) {\n      this.update();\n    }\n  }\n  get #pageWidthScaleFactor() {\n    if (this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL) {\n      return 2;\n    }\n    return 1;\n  }\n  #setScale(value, options) {\n    let scale = parseFloat(value);\n    if (scale > 0) {\n      options.preset = false;\n      this.#setScaleUpdatePages(scale, value, options);\n    } else {\n      const currentPage = this._pages[this._currentPageNumber - 1];\n      if (!currentPage) {\n        return;\n      }\n      let hPadding = SCROLLBAR_PADDING,\n        vPadding = VERTICAL_PADDING;\n      if (this.isInPresentationMode) {\n        hPadding = vPadding = 4;\n        if (this._spreadMode !== SpreadMode.NONE) {\n          hPadding *= 2;\n        }\n      } else if (this.removePageBorders) {\n        if (this._scrollMode === ScrollMode.HORIZONTAL || this._spreadMode === SpreadMode.NONE) { hPadding = vPadding = 0; } else { hPadding = 10; vPadding = 0; }\n      } else if (this._scrollMode === ScrollMode.HORIZONTAL) {\n        [hPadding, vPadding] = [vPadding, hPadding];\n      }\n      const pageWidthScale = (this.container.clientWidth - hPadding) / Math.max(...this._pages.map(p => p.width)) * currentPage.scale / this.#pageWidthScaleFactor * (1 / (1 - (viewerTrim ?? 0) / 100));\n      const pageHeightScale = (this.container.clientHeight - vPadding) / Math.max(...this._pages.map(p => p.height)) * currentPage.scale * (1 / (1 - (viewerTrim ?? 0) / 100));\n      switch (value) {\n        case \"page-actual\":\n          scale = 1;\n          break;\n        case \"page-width\":\n          scale = pageWidthScale;\n          break;\n        case \"page-height\":\n          scale = pageHeightScale;\n          break;\n        case \"page-fit\":\n          scale = Math.min(pageWidthScale, pageHeightScale);\n          break;\n        case \"auto\":\n          const horizontalScale = isPortraitOrientation(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);\n          scale = Math.min(MAX_AUTO_SCALE, horizontalScale);\n          break;\n        default:\n          console.error(`#setScale: \"${value}\" is an unknown zoom value.`);\n          return;\n      }\n      options.preset = true;\n      this.#setScaleUpdatePages(scale, value, options);\n    }\n  }\n  #resetCurrentPageView() {\n    const pageView = this._pages[this._currentPageNumber - 1];\n    if (this.isInPresentationMode) {\n      this.#setScale(this._currentScaleValue, {\n        noScroll: true\n      });\n    }\n    this.#scrollIntoView(pageView);\n  }\n  pageLabelToPageNumber(label) {\n    if (!this._pageLabels) {\n      return null;\n    }\n    const i = this._pageLabels.indexOf(label);\n    if (i < 0) {\n      return null;\n    }\n    return i + 1;\n  }\n  scrollPageIntoView({\n    pageNumber,\n    destArray = null,\n    allowNegativeOffset = false,\n    ignoreDestinationZoom = false,\n    center = null\n  }) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];\n    if (!pageView) {\n      console.error(`scrollPageIntoView: \"${pageNumber}\" is not a valid pageNumber parameter.`);\n      return;\n    }\n    if (this.isInPresentationMode || !destArray) {\n      this._setCurrentPageNumber(pageNumber, true);\n      return;\n    }\n    let x = 0,\n      y = 0;\n    let width = 0,\n      height = 0,\n      widthScale,\n      heightScale;\n    const changeOrientation = pageView.rotation % 180 !== 0;\n    const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS;\n    const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS;\n    let scale = 0;\n    switch (destArray[1].name) {\n      case \"XYZ\":\n        x = destArray[2];\n        y = destArray[3];\n        scale = destArray[4];\n        x = x !== null ? x : 0;\n        y = y !== null ? y : pageHeight;\n        break;\n      case \"Fit\":\n      case \"FitB\":\n        scale = \"page-fit\";\n        break;\n      case \"FitH\":\n      case \"FitBH\":\n        y = destArray[2];\n        scale = \"page-width\";\n        if (y === null && this._location) {\n          x = this._location.left;\n          y = this._location.top;\n        } else if (typeof y !== \"number\" || y < 0) {\n          y = pageHeight;\n        }\n        break;\n      case \"FitV\":\n      case \"FitBV\":\n        x = destArray[2];\n        width = pageWidth;\n        height = pageHeight;\n        scale = \"page-height\";\n        break;\n      case \"FitR\":\n        x = destArray[2];\n        y = destArray[3];\n        width = destArray[4] - x;\n        height = destArray[5] - y;\n        let hPadding = SCROLLBAR_PADDING,\n          vPadding = VERTICAL_PADDING;\n        if (this.removePageBorders) {\n          if (this._scrollMode === ScrollMode.HORIZONTAL || this._spreadMode === SpreadMode.NONE) { hPadding = vPadding = 0; } else { hPadding = 10; vPadding = 0; }\n        }\n        widthScale = (this.container.clientWidth - hPadding) / width / PixelsPerInch.PDF_TO_CSS_UNITS;\n        heightScale = (this.container.clientHeight - vPadding) / height / PixelsPerInch.PDF_TO_CSS_UNITS;\n        scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));\n        break;\n      default:\n        console.error(`scrollPageIntoView: \"${destArray[1].name}\" is not a valid destination type.`);\n        return;\n    }\n    if (!ignoreDestinationZoom) {\n      if (scale && scale !== this._currentScale) {\n        this.currentScaleValue = scale;\n      } else if (this._currentScale === UNKNOWN_SCALE) {\n        this.currentScaleValue = DEFAULT_SCALE_VALUE;\n      }\n    }\n    if (scale === \"page-fit\" && !destArray[4]) {\n      this.#scrollIntoView(pageView);\n      return;\n    }\n    const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];\n    let left = Math.min(boundingRect[0][0], boundingRect[1][0]);\n    let top = Math.min(boundingRect[0][1], boundingRect[1][1]);\n    if (center) {\n      if (center === \"both\" || center === \"vertical\") {\n        top -= (this.container.clientHeight - Math.abs(boundingRect[1][1] - boundingRect[0][1])) / 2;\n      }\n      if (center === \"both\" || center === \"horizontal\") {\n        left -= (this.container.clientWidth - Math.abs(boundingRect[1][0] - boundingRect[0][0])) / 2;\n      }\n    } else if (!allowNegativeOffset) {\n      left = Math.max(left, 0);\n      top = Math.max(top, 0);\n    }\n    this.#scrollIntoView(pageView, {\n      left,\n      top\n    });\n  }\n  _updateLocation(firstPage) {\n    const currentScale = this._currentScale;\n    const currentScaleValue = this._currentScaleValue;\n    const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;\n    const pageNumber = firstPage.id;\n    const currentPageView = this._pages[pageNumber - 1];\n    const container = this.container;\n    const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);\n    const intLeft = Math.round(topLeft[0]);\n    const intTop = Math.round(topLeft[1]);\n    let pdfOpenParams = `#page=${pageNumber}`;\n    if (!this.isInPresentationMode) {\n      pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`;\n    }\n    this._location = {\n      pageNumber,\n      scale: normalizedScaleValue,\n      top: intTop,\n      left: intLeft,\n      rotation: this._pagesRotation,\n      pdfOpenParams\n    };\n  }\n  update() {\n    const visible = this._getVisiblePages();\n    const visiblePages = visible.views,\n      numVisiblePages = visiblePages.length;\n    if (numVisiblePages === 0) {\n      return;\n    }\n    const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);\n    this.#buffer.resize(newCacheSize, visible.ids);\n    for (const {\n      view,\n      visibleArea\n    } of visiblePages) {\n      view.updateVisibleArea(visibleArea);\n    }\n    for (const view of this.#buffer) {\n      if (!visible.ids.has(view.id)) {\n        view.updateVisibleArea(null);\n      }\n    }\n    this.renderingQueue.renderHighestPriority(visible);\n    const isSimpleLayout = this._spreadMode === SpreadMode.NONE && (this._scrollMode === ScrollMode.PAGE || this._scrollMode === ScrollMode.VERTICAL);\n    const currentId = this._currentPageNumber;\n    let stillFullyVisible = false;\n    for (const page of visiblePages) {\n      if (page.percent < 100) {\n        break;\n      }\n      if (page.id === currentId && isSimpleLayout) {\n        stillFullyVisible = true;\n        break;\n      }\n    }\n    this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id);\n    this._updateLocation(visible.first);\n    this.eventBus.dispatch(\"updateviewarea\", {\n      source: this,\n      location: this._location\n    });\n  }\n  #switchToEditAnnotationMode() {\n    const visible = this._getVisiblePages();\n    const pagesToRefresh = [];\n    const {\n      ids,\n      views\n    } = visible;\n    for (const page of views) {\n      const {\n        view\n      } = page;\n      if (!view.hasEditableAnnotations()) {\n        ids.delete(view.id);\n        continue;\n      }\n      pagesToRefresh.push(page);\n    }\n    if (pagesToRefresh.length === 0) {\n      return null;\n    }\n    this.renderingQueue.renderHighestPriority({\n      first: pagesToRefresh[0],\n      last: pagesToRefresh.at(-1),\n      views: pagesToRefresh,\n      ids\n    });\n    return ids;\n  }\n  containsElement(element) {\n    return this.container.contains(element);\n  }\n  focus() {\n    this.container.focus();\n  }\n  get _isContainerRtl() {\n    return getComputedStyle(this.container).direction === \"rtl\";\n  }\n  get isInPresentationMode() {\n    return this.presentationModeState === PresentationModeState.FULLSCREEN;\n  }\n  get isChangingPresentationMode() {\n    return this.presentationModeState === PresentationModeState.CHANGING;\n  }\n  get isHorizontalScrollbarEnabled() {\n    return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;\n  }\n  get isVerticalScrollbarEnabled() {\n    return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;\n  }\n  _getVisiblePages() {\n    const views = this._scrollMode === ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages,\n      horizontal = this._scrollMode === ScrollMode.HORIZONTAL,\n      rtl = horizontal && this._isContainerRtl;\n    return getVisibleElements({\n      scrollEl: this.container,\n      views,\n      sortByVisibility: true,\n      horizontal,\n      rtl\n    });\n  }\n  cleanup() {\n    for (const pageView of this._pages) {\n      if (pageView.renderingState !== RenderingStates.FINISHED) {\n        pageView.reset();\n      }\n    }\n  }\n  _cancelRendering() {\n    for (const pageView of this._pages) {\n      pageView.cancelRendering();\n    }\n  }\n  async #ensurePdfPageLoaded(pageView) {\n    if (pageView.pdfPage) {\n      return pageView.pdfPage;\n    }\n    try {\n      const pdfPage = await this.pdfDocument.getPage(pageView.id);\n      if (!pageView.pdfPage) {\n        pageView.setPdfPage(pdfPage);\n      }\n      return pdfPage;\n    } catch (reason) {\n      console.error(\"Unable to get page for page view\", reason);\n      return null;\n    }\n  }\n  #getScrollAhead(visible) {\n    if (visible.first?.id === 1) {\n      return true;\n    } else if (visible.last?.id === this.pagesCount) {\n      return false;\n    }\n    switch (this._scrollMode) {\n      case ScrollMode.PAGE:\n        return this.#scrollModePageState.scrollDown;\n      case ScrollMode.HORIZONTAL:\n        return this.scroll.right;\n    }\n    return this.scroll.down;\n  }\n  forceRendering(currentlyVisiblePages) {\n    const visiblePages = currentlyVisiblePages || this._getVisiblePages();\n    const scrollAhead = this.#getScrollAhead(visiblePages);\n    const preRenderExtra = this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL;\n    const ignoreDetailViews = this.#scaleTimeoutId !== null || this.#scrollTimeoutId !== null && visiblePages.views.some(page => page.detailView?.renderingCancelled);\n    const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra, ignoreDetailViews);\n    if (pageView) {\n      this.#ensurePdfPageLoaded(pageView).then(() => {\n        this.renderingQueue.renderView(pageView);\n      });\n      return true;\n    }\n    return false;\n  }\n  get hasEqualPageSizes() {\n    const firstPageView = this._pages[0];\n    for (let i = 1, ii = this._pages.length; i < ii; ++i) {\n      const pageView = this._pages[i];\n      if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {\n        return false;\n      }\n    }\n    return true;\n  }\n  getPagesOverview() {\n    let initialOrientation;\n    return this._pages.map(pageView => {\n      const viewport = pageView.pdfPage.getViewport({\n        scale: 1\n      });\n      const orientation = isPortraitOrientation(viewport);\n      if (initialOrientation === undefined) {\n        initialOrientation = orientation;\n      } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) {\n        return {\n          width: viewport.height,\n          height: viewport.width,\n          rotation: (viewport.rotation - 90) % 360\n        };\n      }\n      return {\n        width: viewport.width,\n        height: viewport.height,\n        rotation: viewport.rotation\n      };\n    });\n  }\n  get optionalContentConfigPromise() {\n    if (!this.pdfDocument) {\n      return Promise.resolve(null);\n    }\n    if (!this._optionalContentConfigPromise) {\n      console.error(\"optionalContentConfigPromise: Not initialized yet.\");\n      return this.pdfDocument.getOptionalContentConfig({\n        intent: \"display\"\n      });\n    }\n    return this._optionalContentConfigPromise;\n  }\n  set optionalContentConfigPromise(promise) {\n    if (!(promise instanceof Promise)) {\n      throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    if (!this._optionalContentConfigPromise) {\n      return;\n    }\n    this._optionalContentConfigPromise = promise;\n    this.refresh(false, {\n      optionalContentConfigPromise: promise\n    });\n    this.eventBus.dispatch(\"optionalcontentconfigchanged\", {\n      source: this,\n      promise\n    });\n  }\n  get scrollMode() {\n    return this._scrollMode;\n  }\n  set scrollMode(mode) {\n    if (this._scrollMode === mode) {\n      return;\n    }\n    if (!isValidScrollMode(mode)) {\n      throw new Error(`Invalid scroll mode: ${mode}`);\n    }\n    if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {\n      return;\n    }\n    this._previousScrollMode = this._scrollMode;\n    this._scrollMode = mode;\n    this.eventBus.dispatch(\"scrollmodechanged\", {\n      source: this,\n      mode\n    });\n    this._updateScrollMode(this._currentPageNumber);\n  }\n  _updateScrollMode(pageNumber = null) {\n    const scrollMode = this._scrollMode,\n      viewer = this.viewer;\n    viewer.classList.toggle(\"scrollHorizontal\", scrollMode === ScrollMode.HORIZONTAL);\n    viewer.classList.toggle(\"scrollWrapped\", scrollMode === ScrollMode.WRAPPED);\n    if (!this.pdfDocument || !pageNumber) {\n      return;\n    }\n    if (scrollMode === ScrollMode.PAGE) {\n      this.#ensurePageViewVisible();\n    } else if (this._previousScrollMode === ScrollMode.PAGE) {\n      this._updateSpreadMode();\n    }\n    if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n      this.#setScale(this._currentScaleValue, {\n        noScroll: true\n      });\n    }\n    this._setCurrentPageNumber(pageNumber, true);\n    this.update();\n  }\n  get spreadMode() {\n    return this._spreadMode;\n  }\n  set spreadMode(mode) {\n    if (this._spreadMode === mode) {\n      return;\n    }\n    if (!isValidSpreadMode(mode)) {\n      throw new Error(`Invalid spread mode: ${mode}`);\n    }\n    this._spreadMode = mode;\n    this.eventBus.dispatch(\"spreadmodechanged\", {\n      source: this,\n      mode\n    });\n    this._updateSpreadMode(this._currentPageNumber);\n  }\n  _updateSpreadMode(pageNumber = null) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    const viewer = this.viewer,\n      pages = this._pages;\n    if (this._scrollMode === ScrollMode.PAGE) {\n      this.#ensurePageViewVisible();\n    } else {\n      viewer.textContent = \"\";\n      if (this._spreadMode === SpreadMode.NONE) {\n        for (const pageView of this._pages) {\n          viewer.append(pageView.div);\n        }\n      } else {\n        const parity = this._spreadMode - 1;\n        let spread = null;\n        for (let i = 0, ii = pages.length; i < ii; ++i) {\n          if (spread === null) {\n            spread = document.createElement(\"div\");\n            spread.className = \"spread\";\n            viewer.append(spread);\n          } else if (i % 2 === parity) {\n            spread = spread.cloneNode(false);\n            viewer.append(spread);\n          }\n          spread.append(pages[i].div);\n        }\n      }\n    }\n    if (!pageNumber) {\n      return;\n    }\n    if (this._currentScaleValue && isNaN(this._currentScaleValue)) {\n      this.#setScale(this._currentScaleValue, {\n        noScroll: true\n      });\n    }\n    this._setCurrentPageNumber(pageNumber, true);\n    this.update();\n  }\n  _getPageAdvance(currentPageNumber, previous = false) {\n    switch (this._scrollMode) {\n      case ScrollMode.WRAPPED:\n        {\n          const {\n              views\n            } = this._getVisiblePages(),\n            pageLayout = new Map();\n          for (const {\n            id,\n            y,\n            percent,\n            widthPercent\n          } of views) {\n            if (percent === 0 || widthPercent < 100) {\n              continue;\n            }\n            let yArray = pageLayout.get(y);\n            if (!yArray) {\n              pageLayout.set(y, yArray ||= []);\n            }\n            yArray.push(id);\n          }\n          for (const yArray of pageLayout.values()) {\n            const currentIndex = yArray.indexOf(currentPageNumber);\n            if (currentIndex === -1) {\n              continue;\n            }\n            const numPages = yArray.length;\n            if (numPages === 1) {\n              break;\n            }\n            if (previous) {\n              for (let i = currentIndex - 1, ii = 0; i >= ii; i--) {\n                const currentId = yArray[i],\n                  expectedId = yArray[i + 1] - 1;\n                if (currentId < expectedId) {\n                  return currentPageNumber - expectedId;\n                }\n              }\n            } else {\n              for (let i = currentIndex + 1, ii = numPages; i < ii; i++) {\n                const currentId = yArray[i],\n                  expectedId = yArray[i - 1] + 1;\n                if (currentId > expectedId) {\n                  return expectedId - currentPageNumber;\n                }\n              }\n            }\n            if (previous) {\n              const firstId = yArray[0];\n              if (firstId < currentPageNumber) {\n                return currentPageNumber - firstId + 1;\n              }\n            } else {\n              const lastId = yArray[numPages - 1];\n              if (lastId > currentPageNumber) {\n                return lastId - currentPageNumber + 1;\n              }\n            }\n            break;\n          }\n          break;\n        }\n      case ScrollMode.HORIZONTAL:\n        {\n          break;\n        }\n      case ScrollMode.PAGE:\n      case ScrollMode.VERTICAL:\n        {\n          if (this._spreadMode === SpreadMode.NONE) {\n            break;\n          }\n          const parity = this._spreadMode - 1;\n          if (previous && currentPageNumber % 2 !== parity) {\n            break;\n          } else if (!previous && currentPageNumber % 2 === parity) {\n            break;\n          }\n          const {\n              views\n            } = this._getVisiblePages(),\n            expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1;\n          for (const {\n            id,\n            percent,\n            widthPercent\n          } of views) {\n            if (id !== expectedId) {\n              continue;\n            }\n            if (percent > 0 && widthPercent === 100) {\n              return 2;\n            }\n            break;\n          }\n          break;\n        }\n    }\n    return 1;\n  }\n  nextPage() {\n    const currentPageNumber = this._currentPageNumber,\n      pagesCount = this.pagesCount;\n    if (currentPageNumber >= pagesCount) {\n      return false;\n    }\n    const advance = this._getPageAdvance(currentPageNumber, false) || 1;\n    this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);\n    return true;\n  }\n  previousPage() {\n    const currentPageNumber = this._currentPageNumber;\n    if (currentPageNumber <= 1) {\n      return false;\n    }\n    const advance = this._getPageAdvance(currentPageNumber, true) || 1;\n    this.currentPageNumber = Math.max(currentPageNumber - advance, 1);\n    return true;\n  }\n  updateScale({\n    drawingDelay,\n    scaleFactor = null,\n    steps = null,\n    origin\n  }) {\n    if (steps === null && scaleFactor === null) {\n      throw new Error(\"Invalid updateScale options: either `steps` or `scaleFactor` must be provided.\");\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    let newScale = this._currentScale;\n    if (scaleFactor > 0 && scaleFactor !== 1) {\n      newScale = Math.round(newScale * scaleFactor * 100) / 100;\n    } else if (steps) {\n      const delta = steps > 0 ? DEFAULT_SCALE_DELTA : 1 / DEFAULT_SCALE_DELTA;\n      const round = steps > 0 ? Math.ceil : Math.floor;\n      steps = Math.abs(steps);\n      do {\n        newScale = round((newScale * delta).toFixed(2) * 10) / 10;\n      } while (--steps > 0);\n    }\n    newScale = MathClamp(newScale, MIN_SCALE, MAX_SCALE);\n    this.#setScale(newScale, {\n      noScroll: false,\n      drawingDelay,\n      origin\n    });\n  }\n  increaseScale(options = {}) {\n    this.updateScale({\n      ...options,\n      steps: options.steps ?? 1\n    });\n  }\n  decreaseScale(options = {}) {\n    this.updateScale({\n      ...options,\n      steps: -(options.steps ?? 1)\n    });\n  }\n  #updateContainerHeightCss(height = this.container.clientHeight) {\n    if (height !== this.#previousContainerHeight) {\n      this.#previousContainerHeight = height;\n      docStyle.setProperty(\"--viewer-container-height\", `${height}px`);\n    }\n  }\n  #resizeObserverCallback(entries) {\n    for (const entry of entries) {\n      if (entry.target === this.container) {\n        this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize));\n        this.#containerTopLeft = null;\n        break;\n      }\n    }\n  }\n  get containerTopLeft() {\n    return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft];\n  }\n  #cleanupTimeouts() {\n    if (this.#scaleTimeoutId !== null) {\n      clearTimeout(this.#scaleTimeoutId);\n      this.#scaleTimeoutId = null;\n    }\n    if (this.#scrollTimeoutId !== null) {\n      clearTimeout(this.#scrollTimeoutId);\n      this.#scrollTimeoutId = null;\n    }\n  }\n  #cleanupSwitchAnnotationEditorMode() {\n    this.#switchAnnotationEditorModeAC?.abort();\n    this.#switchAnnotationEditorModeAC = null;\n    if (this.#switchAnnotationEditorModeTimeoutId !== null) {\n      clearTimeout(this.#switchAnnotationEditorModeTimeoutId);\n      this.#switchAnnotationEditorModeTimeoutId = null;\n    }\n  }\n  #preloadEditingData(mode) {\n    switch (mode) {\n      case AnnotationEditorType.STAMP:\n        this.#mlManager?.loadModel(\"altText\");\n        break;\n      case AnnotationEditorType.SIGNATURE:\n        this.#signatureManager?.loadSignatures();\n        break;\n    }\n  }\n  get annotationEditorMode() {\n    return this.#annotationEditorUIManager ? this.#annotationEditorMode : AnnotationEditorType.DISABLE;\n  }\n  set annotationEditorMode({\n    mode,\n    editId = null,\n    isFromKeyboard = false,\n    mustEnterInEditMode = false,\n    editComment = false\n  }) {\n    if (!this.#annotationEditorUIManager) {\n      throw new Error(`The AnnotationEditor is not enabled.`);\n    }\n    if (this.#annotationEditorMode === mode) {\n      return;\n    }\n    if (!isValidAnnotationEditorMode(mode)) {\n      throw new Error(`Invalid AnnotationEditor mode: ${mode}`);\n    }\n    if (!this.pdfDocument) {\n      return;\n    }\n    this.#preloadEditingData(mode);\n    const {\n      eventBus,\n      pdfDocument\n    } = this;\n    const updater = async () => {\n      this.#cleanupSwitchAnnotationEditorMode();\n      this.#annotationEditorMode = mode;\n      await this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard, mustEnterInEditMode, editComment);\n      if (mode !== this.#annotationEditorMode || pdfDocument !== this.pdfDocument) {\n        return;\n      }\n      eventBus.dispatch(\"annotationeditormodechanged\", {\n        source: this,\n        mode\n      });\n    };\n    if (mode === AnnotationEditorType.NONE || this.#annotationEditorMode === AnnotationEditorType.NONE) {\n      const isEditing = mode !== AnnotationEditorType.NONE;\n      if (!isEditing) {\n        this.pdfDocument.annotationStorage.resetModifiedIds();\n      }\n      this.cleanup();\n      for (const pageView of this._pages) {\n        pageView.toggleEditingMode(isEditing);\n      }\n      const idsToRefresh = this.#switchToEditAnnotationMode();\n      if (isEditing && idsToRefresh) {\n        this.#cleanupSwitchAnnotationEditorMode();\n        this.#switchAnnotationEditorModeAC = new AbortController();\n        const signal = AbortSignal.any([this.#eventAbortController.signal, this.#switchAnnotationEditorModeAC.signal]);\n        eventBus._on(\"pagerendered\", ({\n          pageNumber\n        }) => {\n          idsToRefresh.delete(pageNumber);\n          if (idsToRefresh.size === 0) {\n            this.#switchAnnotationEditorModeTimeoutId = setTimeout(updater, 0);\n          }\n        }, {\n          signal\n        });\n        return;\n      }\n    }\n    updater();\n  }\n  refresh(noUpdate = false, updateArgs = Object.create(null)) {\n    if (!this.pdfDocument) {\n      return;\n    }\n    for (const pageView of this._pages) {\n      pageView.update(updateArgs);\n    }\n    this.#cleanupTimeouts();\n    if (!noUpdate) {\n      this.update();\n    }\n  }\n}\n\n;// ./web/secondary_toolbar.js\n\n\nclass SecondaryToolbar {\n  #opts;\n  constructor(options, eventBus) {\n    this.#opts = options;\n    const buttons = [{\n      element: options.presentationModeButton,\n      eventName: \"presentationmode\",\n      close: true\n    }, {\n      element: options.printButton,\n      eventName: \"print\",\n      close: true\n    }, {\n      element: options.downloadButton,\n      eventName: \"download\",\n      close: true\n    }, {\n      element: options.viewBookmarkButton,\n      eventName: null,\n      close: true\n    }, {\n      element: options.firstPageButton,\n      eventName: \"firstpage\",\n      close: true\n    }, {\n      element: options.lastPageButton,\n      eventName: \"lastpage\",\n      close: true\n    }, {\n      element: options.pageRotateCwButton,\n      eventName: \"rotatecw\",\n      close: false\n    }, {\n      element: options.pageRotateCcwButton,\n      eventName: \"rotateccw\",\n      close: false\n    }, {\n      element: options.cursorSelectToolButton,\n      eventName: \"switchcursortool\",\n      eventDetails: {\n        tool: CursorTool.SELECT\n      },\n      close: true\n    }, {\n      element: options.cursorHandToolButton,\n      eventName: \"switchcursortool\",\n      eventDetails: {\n        tool: CursorTool.HAND\n      },\n      close: true\n    }, {\n      element: options.scrollPageButton,\n      eventName: \"switchscrollmode\",\n      eventDetails: {\n        mode: ScrollMode.PAGE\n      },\n      close: true\n    }, {\n      element: options.scrollVerticalButton,\n      eventName: \"switchscrollmode\",\n      eventDetails: {\n        mode: ScrollMode.VERTICAL\n      },\n      close: true\n    }, {\n      element: options.scrollHorizontalButton,\n      eventName: \"switchscrollmode\",\n      eventDetails: {\n        mode: ScrollMode.HORIZONTAL\n      },\n      close: true\n    }, {\n      element: options.scrollWrappedButton,\n      eventName: \"switchscrollmode\",\n      eventDetails: {\n        mode: ScrollMode.WRAPPED\n      },\n      close: true\n    }, {\n      element: options.spreadNoneButton,\n      eventName: \"switchspreadmode\",\n      eventDetails: {\n        mode: SpreadMode.NONE\n      },\n      close: true\n    }, {\n      element: options.spreadOddButton,\n      eventName: \"switchspreadmode\",\n      eventDetails: {\n        mode: SpreadMode.ODD\n      },\n      close: true\n    }, {\n      element: options.spreadEvenButton,\n      eventName: \"switchspreadmode\",\n      eventDetails: {\n        mode: SpreadMode.EVEN\n      },\n      close: true\n    }, {\n      element: options.imageAltTextSettingsButton,\n      eventName: \"imagealttextsettings\",\n      close: true\n    }, {\n      element: options.documentPropertiesButton,\n      eventName: \"documentproperties\",\n      close: true\n    }];\n    buttons.push({\n      element: options.openFileButton,\n      eventName: \"openfile\",\n      close: true\n    });\n    this.eventBus = eventBus;\n    this.opened = false;\n    this.#bindListeners(buttons);\n    this.reset();\n  }\n  get isOpen() {\n    return this.opened;\n  }\n  setPageNumber(pageNumber) {\n    this.pageNumber = pageNumber;\n    this.#updateUIState();\n  }\n  setPagesCount(pagesCount) {\n    this.pagesCount = pagesCount;\n    this.#updateUIState();\n  }\n  reset() {\n    this.pageNumber = 0;\n    this.pagesCount = 0;\n    this.#updateUIState();\n    this.eventBus.dispatch(\"switchcursortool\", {\n      source: this,\n      reset: true\n    });\n    this.#scrollModeChanged({\n      mode: ScrollMode.VERTICAL\n    });\n    this.#spreadModeChanged({\n      mode: SpreadMode.NONE\n    });\n  }\n  #updateUIState() {\n    const {\n      firstPageButton,\n      lastPageButton,\n      pageRotateCwButton,\n      pageRotateCcwButton\n    } = this.#opts;\n    firstPageButton.disabled = this.pageNumber <= 1;\n    lastPageButton.disabled = this.pageNumber >= this.pagesCount;\n    pageRotateCwButton.disabled = this.pagesCount === 0;\n    pageRotateCcwButton.disabled = this.pagesCount === 0;\n  }\n  #bindListeners(buttons) {\n    const {\n      eventBus\n    } = this;\n    const {\n      toggleButton\n    } = this.#opts;\n    toggleButton.addEventListener(\"click\", this.toggle.bind(this));\n    for (const {\n      element,\n      eventName,\n      close,\n      eventDetails\n    } of buttons) {\n      element.addEventListener(\"click\", evt => {\n        if (eventName !== null) {\n          eventBus.dispatch(eventName, {\n            source: this,\n            ...eventDetails\n          });\n        }\n        if (close) {\n          this.close();\n        }\n        eventBus.dispatch(\"reporttelemetry\", {\n          source: this,\n          details: {\n            type: \"buttons\",\n            data: {\n              id: element.id\n            }\n          }\n        });\n      });\n    }\n    eventBus._on(\"cursortoolchanged\", this.#cursorToolChanged.bind(this));\n    eventBus._on(\"scrollmodechanged\", this.#scrollModeChanged.bind(this));\n    eventBus._on(\"spreadmodechanged\", this.#spreadModeChanged.bind(this));\n  }\n  #cursorToolChanged({\n    tool,\n    disabled\n  }) {\n    const {\n      cursorSelectToolButton,\n      cursorHandToolButton\n    } = this.#opts;\n    toggleCheckedBtn(cursorSelectToolButton, tool === CursorTool.SELECT);\n    toggleCheckedBtn(cursorHandToolButton, tool === CursorTool.HAND);\n    cursorSelectToolButton.disabled = disabled;\n    cursorHandToolButton.disabled = disabled;\n  }\n  #scrollModeChanged({\n    mode\n  }) {\n    const {\n      scrollPageButton,\n      scrollVerticalButton,\n      scrollHorizontalButton,\n      scrollWrappedButton,\n      spreadNoneButton,\n      spreadOddButton,\n      spreadEvenButton\n    } = this.#opts;\n    toggleCheckedBtn(scrollPageButton, mode === ScrollMode.PAGE);\n    toggleCheckedBtn(scrollVerticalButton, mode === ScrollMode.VERTICAL);\n    toggleCheckedBtn(scrollHorizontalButton, mode === ScrollMode.HORIZONTAL);\n    toggleCheckedBtn(scrollWrappedButton, mode === ScrollMode.WRAPPED);\n    const forceScrollModePage = this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE;\n    scrollPageButton.disabled = forceScrollModePage;\n    scrollVerticalButton.disabled = forceScrollModePage;\n    scrollHorizontalButton.disabled = forceScrollModePage;\n    scrollWrappedButton.disabled = forceScrollModePage;\n    const isHorizontal = mode === ScrollMode.HORIZONTAL;\n    spreadNoneButton.disabled = isHorizontal;\n    spreadOddButton.disabled = isHorizontal;\n    spreadEvenButton.disabled = isHorizontal;\n  }\n  #spreadModeChanged({\n    mode\n  }) {\n    const {\n      spreadNoneButton,\n      spreadOddButton,\n      spreadEvenButton\n    } = this.#opts;\n    toggleCheckedBtn(spreadNoneButton, mode === SpreadMode.NONE);\n    toggleCheckedBtn(spreadOddButton, mode === SpreadMode.ODD);\n    toggleCheckedBtn(spreadEvenButton, mode === SpreadMode.EVEN);\n  }\n  open() {\n    if (this.opened) {\n      return;\n    }\n    this.opened = true;\n    const {\n      toggleButton,\n      toolbar\n    } = this.#opts;\n    toggleExpandedBtn(toggleButton, true, toolbar);\n  }\n  close() {\n    if (!this.opened) {\n      return;\n    }\n    this.opened = false;\n    const {\n      toggleButton,\n      toolbar\n    } = this.#opts;\n    toggleExpandedBtn(toggleButton, false, toolbar);\n  }\n  toggle() {\n    if (this.opened) {\n      this.close();\n    } else {\n      this.open();\n    }\n  }\n}\n\n;// ./web/signature_manager.js\n\nconst DEFAULT_HEIGHT_IN_PAGE = 40;\nclass SignatureManager {\n  #addButton;\n  #tabsToAltText = null;\n  #clearButton;\n  #clearDescription;\n  #currentEditor;\n  #description;\n  #dialog;\n  #drawCurves = null;\n  #drawPlaceholder;\n  #drawPath = null;\n  #drawPathString = \"\";\n  #drawPoints = null;\n  #drawSVG;\n  #drawThickness;\n  #errorBar;\n  #errorDescription;\n  #errorTitle;\n  #extractedSignatureData = null;\n  #imagePath = null;\n  #imagePicker;\n  #imagePickerLink;\n  #imagePlaceholder;\n  #imageSVG;\n  #saveCheckbox;\n  #saveContainer;\n  #tabButtons;\n  #addSignatureToolbarButton;\n  #loadSignaturesPromise = null;\n  #typeInput;\n  #currentTab = null;\n  #currentTabAC = null;\n  #hasDescriptionChanged = false;\n  #eventBus;\n  #isStorageFull = false;\n  #l10n;\n  #overlayManager;\n  #editDescriptionDialog;\n  #signatureStorage;\n  #uiManager = null;\n  static #l10nDescription = null;\n  constructor({\n    dialog,\n    panels,\n    typeButton,\n    typeInput,\n    drawButton,\n    drawPlaceholder,\n    drawSVG,\n    drawThickness,\n    imageButton,\n    imageSVG,\n    imagePlaceholder,\n    imagePicker,\n    imagePickerLink,\n    description,\n    clearButton,\n    cancelButton,\n    addButton,\n    errorCloseButton,\n    errorBar,\n    errorTitle,\n    errorDescription,\n    saveCheckbox,\n    saveContainer\n  }, editSignatureElements, addSignatureToolbarButton, overlayManager, l10n, signatureStorage, eventBus) {\n    this.#addButton = addButton;\n    this.#clearButton = clearButton;\n    this.#clearDescription = description.lastElementChild;\n    this.#description = description.firstElementChild;\n    this.#dialog = dialog;\n    this.#drawSVG = drawSVG;\n    this.#drawPlaceholder = drawPlaceholder;\n    this.#drawThickness = drawThickness;\n    this.#errorBar = errorBar;\n    this.#errorTitle = errorTitle;\n    this.#errorDescription = errorDescription;\n    this.#imageSVG = imageSVG;\n    this.#imagePlaceholder = imagePlaceholder;\n    this.#imagePicker = imagePicker;\n    this.#imagePickerLink = imagePickerLink;\n    this.#overlayManager = overlayManager;\n    this.#saveCheckbox = saveCheckbox;\n    this.#saveContainer = saveContainer;\n    this.#addSignatureToolbarButton = addSignatureToolbarButton;\n    this.#typeInput = typeInput;\n    this.#l10n = l10n;\n    this.#signatureStorage = signatureStorage;\n    this.#eventBus = eventBus;\n    this.#editDescriptionDialog = new EditDescriptionDialog(editSignatureElements, overlayManager);\n    SignatureManager.#l10nDescription ||= Object.freeze({\n      signature: \"pdfjs-editor-add-signature-description-default-when-drawing\",\n      errorUploadTitle: \"pdfjs-editor-add-signature-image-upload-error-title\",\n      errorUploadDescription: \"pdfjs-editor-add-signature-image-upload-error-description\",\n      errorNoDataTitle: \"pdfjs-editor-add-signature-image-no-data-error-title\",\n      errorNoDataDescription: \"pdfjs-editor-add-signature-image-no-data-error-description\"\n    });\n    dialog.addEventListener(\"close\", this.#close.bind(this));\n    dialog.addEventListener(\"contextmenu\", e => {\n      const {\n        target\n      } = e;\n      if (target !== this.#typeInput && target !== this.#description) {\n        e.preventDefault();\n      }\n    });\n    dialog.addEventListener(\"drop\", e => {\n      stopEvent(e);\n    });\n    cancelButton.addEventListener(\"click\", this.#cancel.bind(this));\n    addButton.addEventListener(\"click\", this.#add.bind(this));\n    clearButton.addEventListener(\"click\", () => {\n      this.#reportTelemetry({\n        type: \"signature\",\n        action: \"pdfjs.signature.clear\",\n        data: {\n          type: this.#currentTab\n        }\n      });\n      this.#initTab(null);\n    }, {\n      passive: true\n    });\n    this.#description.addEventListener(\"input\", () => {\n      this.#clearDescription.disabled = this.#description.value === \"\";\n    }, {\n      passive: true\n    });\n    this.#clearDescription.addEventListener(\"click\", () => {\n      this.#description.value = \"\";\n      this.#clearDescription.disabled = true;\n    }, {\n      passive: true\n    });\n    errorCloseButton.addEventListener(\"click\", () => {\n      errorBar.hidden = true;\n    }, {\n      passive: true\n    });\n    this.#initTabButtons(typeButton, drawButton, imageButton, panels);\n    imagePicker.accept = SupportedImageMimeTypes.join(\",\");\n    eventBus._on(\"storedsignatureschanged\", this.#signaturesChanged.bind(this));\n    overlayManager.register(dialog);\n  }\n  #initTabButtons(typeButton, drawButton, imageButton, panels) {\n    const buttons = this.#tabButtons = new Map([[\"type\", typeButton], [\"draw\", drawButton], [\"image\", imageButton]]);\n    const tabCallback = e => {\n      for (const [name, button] of buttons) {\n        if (button === e.target) {\n          button.setAttribute(\"aria-selected\", true);\n          button.setAttribute(\"tabindex\", 0);\n          panels.setAttribute(\"data-selected\", name);\n          this.#initTab(name);\n        } else {\n          button.setAttribute(\"aria-selected\", false);\n          button.setAttribute(\"tabindex\", -1);\n        }\n      }\n    };\n    const buttonsArray = Array.from(buttons.values());\n    for (let i = 0, ii = buttonsArray.length; i < ii; i++) {\n      const button = buttonsArray[i];\n      button.addEventListener(\"click\", tabCallback, {\n        passive: true\n      });\n      button.addEventListener(\"keydown\", ({\n        key\n      }) => {\n        if (key !== \"ArrowLeft\" && key !== \"ArrowRight\") {\n          return;\n        }\n        buttonsArray[i + (key === \"ArrowLeft\" ? -1 : 1)]?.focus();\n      }, {\n        passive: true\n      });\n    }\n  }\n  #resetCommon() {\n    this.#hasDescriptionChanged = false;\n    this.#description.value = \"\";\n    if (this.#currentTab) {\n      this.#tabsToAltText.get(this.#currentTab).value = \"\";\n    }\n  }\n  #resetTab(name) {\n    switch (name) {\n      case \"type\":\n        this.#typeInput.value = \"\";\n        break;\n      case \"draw\":\n        this.#drawCurves = null;\n        this.#drawPoints = null;\n        this.#drawPathString = \"\";\n        this.#drawPath?.remove();\n        this.#drawPath = null;\n        this.#drawPlaceholder.hidden = false;\n        this.#drawThickness.value = 1;\n        break;\n      case \"image\":\n        this.#imagePlaceholder.hidden = false;\n        this.#imagePath?.remove();\n        this.#imagePath = null;\n        break;\n    }\n  }\n  #initTab(name) {\n    if (name && this.#currentTab === name) {\n      return;\n    }\n    if (this.#currentTab) {\n      this.#tabsToAltText.get(this.#currentTab).value = this.#description.value;\n    }\n    if (name) {\n      this.#currentTab = name;\n    }\n    this.#errorBar.hidden = true;\n    const reset = !name;\n    if (reset) {\n      this.#resetCommon();\n    } else {\n      this.#description.value = this.#tabsToAltText.get(this.#currentTab).value;\n    }\n    this.#clearDescription.disabled = this.#description.value === \"\";\n    this.#currentTabAC?.abort();\n    this.#currentTabAC = new AbortController();\n    switch (this.#currentTab) {\n      case \"type\":\n        this.#initTypeTab(reset);\n        break;\n      case \"draw\":\n        this.#initDrawTab(reset);\n        break;\n      case \"image\":\n        this.#initImageTab(reset);\n        break;\n    }\n  }\n  #disableButtons(value) {\n    if (!value || !this.#isStorageFull) {\n      this.#saveCheckbox.disabled = !value;\n    }\n    this.#clearButton.disabled = this.#addButton.disabled = this.#description.disabled = !value;\n  }\n  #initTypeTab(reset) {\n    if (reset) {\n      this.#resetTab(\"type\");\n    }\n    this.#disableButtons(this.#typeInput.value);\n    const {\n      signal\n    } = this.#currentTabAC;\n    const options = {\n      passive: true,\n      signal\n    };\n    this.#typeInput.addEventListener(\"input\", () => {\n      const {\n        value\n      } = this.#typeInput;\n      if (!this.#hasDescriptionChanged) {\n        this.#tabsToAltText.get(\"type\").default = this.#description.value = value;\n        this.#clearDescription.disabled = value === \"\";\n      }\n      this.#disableButtons(value);\n    }, options);\n    this.#description.addEventListener(\"input\", () => {\n      this.#hasDescriptionChanged = this.#typeInput.value !== this.#description.value;\n    }, options);\n  }\n  #initDrawTab(reset) {\n    if (reset) {\n      this.#resetTab(\"draw\");\n    }\n    this.#disableButtons(this.#drawPath);\n    const {\n      signal\n    } = this.#currentTabAC;\n    const options = {\n      signal\n    };\n    let currentPointerId = NaN;\n    const drawCallback = e => {\n      const {\n        pointerId\n      } = e;\n      if (!isNaN(currentPointerId) && currentPointerId !== pointerId) {\n        return;\n      }\n      currentPointerId = pointerId;\n      e.preventDefault();\n      this.#drawSVG.setPointerCapture(pointerId);\n      const {\n        width: drawWidth,\n        height: drawHeight\n      } = this.#drawSVG.getBoundingClientRect();\n      let {\n        offsetX,\n        offsetY\n      } = e;\n      offsetX = Math.round(offsetX);\n      offsetY = Math.round(offsetY);\n      if (e.target === this.#drawPlaceholder) {\n        this.#drawPlaceholder.hidden = true;\n      }\n      if (!this.#drawCurves) {\n        this.#drawCurves = {\n          width: drawWidth,\n          height: drawHeight,\n          thickness: parseInt(this.#drawThickness.value),\n          curves: []\n        };\n        this.#disableButtons(true);\n        const svgFactory = new DOMSVGFactory();\n        const path = this.#drawPath = svgFactory.createElement(\"path\");\n        path.setAttribute(\"stroke-width\", this.#drawThickness.value);\n        this.#drawSVG.append(path);\n        this.#drawSVG.addEventListener(\"pointerdown\", drawCallback, options);\n        this.#drawPlaceholder.removeEventListener(\"pointerdown\", drawCallback);\n        if (this.#description.value === \"\") {\n          this.#l10n.get(SignatureManager.#l10nDescription.signature).then(description => {\n            this.#tabsToAltText.get(\"draw\").default = description;\n            this.#description.value ||= description;\n            this.#clearDescription.disabled = this.#description.value === \"\";\n          });\n        }\n      }\n      this.#drawPoints = [offsetX, offsetY];\n      this.#drawCurves.curves.push({\n        points: this.#drawPoints\n      });\n      this.#drawPathString += `M ${offsetX} ${offsetY}`;\n      this.#drawPath.setAttribute(\"d\", this.#drawPathString);\n      const finishDrawAC = new AbortController();\n      const listenerDrawOptions = {\n        signal: AbortSignal.any([signal, finishDrawAC.signal])\n      };\n      this.#drawSVG.addEventListener(\"contextmenu\", noContextMenu, listenerDrawOptions);\n      this.#drawSVG.addEventListener(\"pointermove\", evt => {\n        evt.preventDefault();\n        let {\n          offsetX: x,\n          offsetY: y\n        } = evt;\n        x = Math.round(x);\n        y = Math.round(y);\n        const drawPoints = this.#drawPoints;\n        if (x < 0 || y < 0 || x > drawWidth || y > drawHeight || x === drawPoints.at(-2) && y === drawPoints.at(-1)) {\n          return;\n        }\n        if (drawPoints.length >= 4) {\n          const [x1, y1, x2, y2] = drawPoints.slice(-4);\n          this.#drawPathString += `C${(x1 + 5 * x2) / 6} ${(y1 + 5 * y2) / 6} ${(5 * x2 + x) / 6} ${(5 * y2 + y) / 6} ${(x2 + x) / 2} ${(y2 + y) / 2}`;\n        } else {\n          this.#drawPathString += `L${x} ${y}`;\n        }\n        drawPoints.push(x, y);\n        this.#drawPath.setAttribute(\"d\", this.#drawPathString);\n      }, listenerDrawOptions);\n      this.#drawSVG.addEventListener(\"pointerup\", evt => {\n        const {\n          pointerId: pId\n        } = evt;\n        if (!isNaN(currentPointerId) && currentPointerId !== pId) {\n          return;\n        }\n        currentPointerId = NaN;\n        evt.preventDefault();\n        this.#drawSVG.releasePointerCapture(pId);\n        finishDrawAC.abort();\n        if (this.#drawPoints.length === 2) {\n          this.#drawPathString += `L${this.#drawPoints[0]} ${this.#drawPoints[1]}`;\n          this.#drawPath.setAttribute(\"d\", this.#drawPathString);\n        }\n      }, listenerDrawOptions);\n    };\n    if (this.#drawCurves) {\n      this.#drawSVG.addEventListener(\"pointerdown\", drawCallback, options);\n    } else {\n      this.#drawPlaceholder.addEventListener(\"pointerdown\", drawCallback, options);\n    }\n    this.#drawThickness.addEventListener(\"input\", () => {\n      const {\n        value: thickness\n      } = this.#drawThickness;\n      this.#drawThickness.setAttribute(\"data-l10n-args\", JSON.stringify({\n        thickness\n      }));\n      if (!this.#drawCurves) {\n        return;\n      }\n      this.#drawPath.setAttribute(\"stroke-width\", thickness);\n      this.#drawCurves.thickness = thickness;\n    }, options);\n  }\n  #showError(type) {\n    this.#errorTitle.setAttribute(\"data-l10n-id\", SignatureManager.#l10nDescription[`error${type}Title`]);\n    this.#errorDescription.setAttribute(\"data-l10n-id\", SignatureManager.#l10nDescription[`error${type}Description`]);\n    this.#errorBar.hidden = false;\n  }\n  #initImageTab(reset) {\n    if (reset) {\n      this.#resetTab(\"image\");\n    }\n    this.#disableButtons(this.#imagePath);\n    const {\n      signal\n    } = this.#currentTabAC;\n    const options = {\n      signal\n    };\n    const passiveOptions = {\n      passive: true,\n      signal\n    };\n    this.#imagePickerLink.addEventListener(\"keydown\", e => {\n      const {\n        key\n      } = e;\n      if (key === \"Enter\" || key === \" \") {\n        stopEvent(e);\n        this.#imagePicker.click();\n      }\n    }, options);\n    this.#imagePicker.addEventListener(\"click\", () => {\n      this.#dialog.classList.toggle(\"waiting\", true);\n    }, passiveOptions);\n    this.#imagePicker.addEventListener(\"change\", async () => {\n      const file = this.#imagePicker.files?.[0];\n      if (!file || !SupportedImageMimeTypes.includes(file.type)) {\n        this.#showError(\"Upload\");\n        this.#dialog.classList.toggle(\"waiting\", false);\n        return;\n      }\n      await this.#extractSignature(file);\n    }, passiveOptions);\n    this.#imagePicker.addEventListener(\"cancel\", () => {\n      this.#dialog.classList.toggle(\"waiting\", false);\n    }, passiveOptions);\n    this.#imagePlaceholder.addEventListener(\"dragover\", e => {\n      const {\n        dataTransfer\n      } = e;\n      for (const {\n        type\n      } of dataTransfer.items) {\n        if (!SupportedImageMimeTypes.includes(type)) {\n          continue;\n        }\n        dataTransfer.dropEffect = dataTransfer.effectAllowed === \"copy\" ? \"copy\" : \"move\";\n        stopEvent(e);\n        return;\n      }\n      dataTransfer.dropEffect = \"none\";\n    }, options);\n    this.#imagePlaceholder.addEventListener(\"drop\", e => {\n      const {\n        dataTransfer: {\n          files\n        }\n      } = e;\n      if (!files?.length) {\n        return;\n      }\n      for (const file of files) {\n        if (SupportedImageMimeTypes.includes(file.type)) {\n          this.#extractSignature(file);\n          break;\n        }\n      }\n      stopEvent(e);\n      this.#dialog.classList.toggle(\"waiting\", true);\n    }, options);\n  }\n  async #extractSignature(file) {\n    let data;\n    try {\n      data = await this.#uiManager.imageManager.getFromFile(file);\n    } catch (e) {\n      console.error(\"SignatureManager.#extractSignature.\", e);\n    }\n    if (!data) {\n      this.#showError(\"Upload\");\n      this.#dialog.classList.toggle(\"waiting\", false);\n      return;\n    }\n    const lineData = this.#extractedSignatureData = this.#currentEditor.getFromImage(data.bitmap);\n    if (!lineData) {\n      this.#showError(\"NoData\");\n      this.#dialog.classList.toggle(\"waiting\", false);\n      return;\n    }\n    const {\n      outline\n    } = lineData;\n    this.#imagePlaceholder.hidden = true;\n    this.#disableButtons(true);\n    const svgFactory = new DOMSVGFactory();\n    const path = this.#imagePath = svgFactory.createElement(\"path\");\n    this.#imageSVG.setAttribute(\"viewBox\", outline.viewBox);\n    this.#imageSVG.setAttribute(\"preserveAspectRatio\", \"xMidYMid meet\");\n    this.#imageSVG.append(path);\n    path.setAttribute(\"d\", outline.toSVGPath());\n    this.#tabsToAltText.get(\"image\").default = file.name;\n    if (this.#description.value === \"\") {\n      this.#description.value = file.name || \"\";\n      this.#clearDescription.disabled = this.#description.value === \"\";\n    }\n    this.#dialog.classList.toggle(\"waiting\", false);\n  }\n  #getOutlineForType() {\n    return this.#currentEditor.getFromText(this.#typeInput.value, window.getComputedStyle(this.#typeInput));\n  }\n  #getOutlineForDraw() {\n    const {\n      width,\n      height\n    } = this.#drawSVG.getBoundingClientRect();\n    return this.#currentEditor.getDrawnSignature(this.#drawCurves, width, height);\n  }\n  #reportTelemetry(data) {\n    this.#eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"editing\",\n        data\n      }\n    });\n  }\n  #addToolbarButton(signatureData, uuid, description) {\n    const {\n      curves,\n      areContours,\n      thickness,\n      width,\n      height\n    } = signatureData;\n    const maxDim = Math.max(width, height);\n    const outlineData = SignatureExtractor.processDrawnLines({\n      lines: {\n        curves,\n        thickness,\n        width,\n        height\n      },\n      pageWidth: maxDim,\n      pageHeight: maxDim,\n      rotation: 0,\n      innerMargin: 0,\n      mustSmooth: false,\n      areContours\n    });\n    if (!outlineData) {\n      return;\n    }\n    const {\n      outline\n    } = outlineData;\n    const svgFactory = new DOMSVGFactory();\n    const div = document.createElement(\"div\");\n    const button = document.createElement(\"button\");\n    button.addEventListener(\"click\", () => {\n      this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n        source: this,\n        type: AnnotationEditorParamsType.CREATE,\n        value: {\n          signatureData: {\n            lines: {\n              curves,\n              thickness,\n              width,\n              height\n            },\n            mustSmooth: false,\n            areContours,\n            description,\n            uuid,\n            heightInPage: DEFAULT_HEIGHT_IN_PAGE\n          }\n        }\n      });\n    });\n    div.append(button);\n    div.classList.add(\"toolbarAddSignatureButtonContainer\");\n    const svg = svgFactory.create(1, 1, true);\n    button.append(svg);\n    const span = document.createElement(\"span\");\n    span.ariaHidden = true;\n    button.append(span);\n    button.classList.add(\"toolbarAddSignatureButton\");\n    button.type = \"button\";\n    span.textContent = description;\n    button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-add-saved-signature-button\");\n    button.setAttribute(\"data-l10n-args\", JSON.stringify({\n      description\n    }));\n    button.tabIndex = 0;\n    const path = svgFactory.createElement(\"path\");\n    svg.append(path);\n    svg.setAttribute(\"viewBox\", outline.viewBox);\n    svg.setAttribute(\"preserveAspectRatio\", \"xMidYMid meet\");\n    if (areContours) {\n      path.classList.add(\"contours\");\n    }\n    path.setAttribute(\"d\", outline.toSVGPath());\n    const deleteButton = document.createElement(\"button\");\n    div.append(deleteButton);\n    deleteButton.classList.add(\"toolbarButton\", \"deleteButton\");\n    deleteButton.setAttribute(\"data-l10n-id\", \"pdfjs-editor-delete-signature-button1\");\n    deleteButton.type = \"button\";\n    deleteButton.tabIndex = 0;\n    deleteButton.addEventListener(\"click\", async () => {\n      if (await this.#signatureStorage.delete(uuid)) {\n        div.remove();\n        this.#reportTelemetry({\n          type: \"signature\",\n          action: \"pdfjs.signature.delete_saved\",\n          data: {\n            savedCount: await this.#signatureStorage.size()\n          }\n        });\n      }\n    });\n    const deleteSpan = document.createElement(\"span\");\n    deleteButton.append(deleteSpan);\n    deleteSpan.setAttribute(\"data-l10n-id\", \"pdfjs-editor-delete-signature-button-label1\");\n    this.#addSignatureToolbarButton.before(div);\n  }\n  async #signaturesChanged() {\n    const parent = this.#addSignatureToolbarButton.parentElement;\n    while (parent.firstElementChild !== this.#addSignatureToolbarButton) {\n      parent.firstElementChild.remove();\n    }\n    this.#loadSignaturesPromise = null;\n    await this.loadSignatures(true);\n  }\n  getSignature(params) {\n    return this.open(params);\n  }\n  async loadSignatures(reload = false) {\n    if (!this.#addSignatureToolbarButton || !reload && this.#addSignatureToolbarButton.previousElementSibling || !this.#signatureStorage) {\n      return;\n    }\n    if (!this.#loadSignaturesPromise) {\n      this.#loadSignaturesPromise = this.#signatureStorage.getAll().then(async signatures => [signatures, await Promise.all(Array.from(signatures.values(), ({\n        signatureData\n      }) => SignatureExtractor.decompressSignature(signatureData)))]);\n      if (!reload) {\n        return;\n      }\n    }\n    const [signatures, signaturesData] = await this.#loadSignaturesPromise;\n    this.#loadSignaturesPromise = null;\n    let i = 0;\n    for (const [uuid, {\n      description\n    }] of signatures) {\n      const data = signaturesData[i++];\n      if (!data) {\n        continue;\n      }\n      data.curves = data.outlines.map(points => ({\n        points\n      }));\n      delete data.outlines;\n      this.#addToolbarButton(data, uuid, description);\n    }\n  }\n  async renderEditButton(editor) {\n    const button = document.createElement(\"button\");\n    button.classList.add(\"altText\", \"editDescription\");\n    button.tabIndex = 0;\n    if (editor.description) {\n      button.title = editor.description;\n    }\n    const span = document.createElement(\"span\");\n    button.append(span);\n    span.setAttribute(\"data-l10n-id\", \"pdfjs-editor-add-signature-edit-button-label\");\n    button.addEventListener(\"click\", () => {\n      this.#editDescriptionDialog.open(editor);\n    }, {\n      passive: true\n    });\n    return button;\n  }\n  async open({\n    uiManager,\n    editor\n  }) {\n    this.#tabsToAltText ||= new Map(this.#tabButtons.keys().map(name => [name, {\n      value: \"\",\n      default: \"\"\n    }]));\n    this.#uiManager = uiManager;\n    this.#currentEditor = editor;\n    this.#uiManager.removeEditListeners();\n    const isStorageFull = this.#isStorageFull = await this.#signatureStorage.isFull();\n    this.#saveContainer.classList.toggle(\"fullStorage\", isStorageFull);\n    this.#saveCheckbox.checked = !isStorageFull;\n    await this.#overlayManager.open(this.#dialog);\n    const tabType = this.#tabButtons.get(\"type\");\n    tabType.focus();\n    tabType.click();\n  }\n  #cancel() {\n    this.#finish();\n  }\n  #finish() {\n    this.#overlayManager.closeIfActive(this.#dialog);\n  }\n  #close() {\n    if (this.#currentEditor._drawId === null) {\n      this.#currentEditor.remove();\n    }\n    this.#uiManager?.addEditListeners();\n    this.#currentTabAC?.abort();\n    this.#currentTabAC = null;\n    this.#uiManager = null;\n    this.#currentEditor = null;\n    this.#resetCommon();\n    for (const [name] of this.#tabButtons) {\n      this.#resetTab(name);\n    }\n    this.#disableButtons(false);\n    this.#currentTab = null;\n    this.#tabsToAltText = null;\n  }\n  async #add() {\n    let data;\n    const type = this.#currentTab;\n    switch (type) {\n      case \"type\":\n        data = this.#getOutlineForType();\n        break;\n      case \"draw\":\n        data = this.#getOutlineForDraw();\n        break;\n      case \"image\":\n        data = this.#extractedSignatureData;\n        break;\n    }\n    let uuid = null;\n    const description = this.#description.value;\n    if (this.#saveCheckbox.checked) {\n      const {\n        newCurves,\n        areContours,\n        thickness,\n        width,\n        height\n      } = data;\n      const signatureData = await SignatureExtractor.compressSignature({\n        outlines: newCurves,\n        areContours,\n        thickness,\n        width,\n        height\n      });\n      uuid = await this.#signatureStorage.create({\n        description,\n        signatureData\n      });\n      if (uuid) {\n        this.#addToolbarButton({\n          curves: newCurves.map(points => ({\n            points\n          })),\n          areContours,\n          thickness,\n          width,\n          height\n        }, uuid, description);\n      } else {\n        console.warn(\"SignatureManager.add: cannot save the signature.\");\n      }\n    }\n    const altText = this.#tabsToAltText.get(type);\n    this.#reportTelemetry({\n      type: \"signature\",\n      action: \"pdfjs.signature.created\",\n      data: {\n        type,\n        saved: !!uuid,\n        savedCount: await this.#signatureStorage.size(),\n        descriptionChanged: description !== altText.default\n      }\n    });\n    this.#currentEditor.addSignature(data, DEFAULT_HEIGHT_IN_PAGE, this.#description.value, uuid);\n    this.#finish();\n  }\n  destroy() {\n    this.#uiManager = null;\n    this.#finish();\n  }\n}\nclass EditDescriptionDialog {\n  #currentEditor;\n  #previousDescription;\n  #description;\n  #dialog;\n  #overlayManager;\n  #signatureSVG;\n  #uiManager;\n  constructor({\n    dialog,\n    description,\n    cancelButton,\n    updateButton,\n    editSignatureView\n  }, overlayManager) {\n    const descriptionInput = this.#description = description.firstElementChild;\n    this.#signatureSVG = editSignatureView;\n    this.#dialog = dialog;\n    this.#overlayManager = overlayManager;\n    dialog.addEventListener(\"close\", this.#close.bind(this));\n    dialog.addEventListener(\"contextmenu\", e => {\n      if (e.target !== this.#description) {\n        e.preventDefault();\n      }\n    });\n    cancelButton.addEventListener(\"click\", this.#cancel.bind(this));\n    updateButton.addEventListener(\"click\", this.#update.bind(this));\n    const clearDescription = description.lastElementChild;\n    clearDescription.addEventListener(\"click\", () => {\n      descriptionInput.value = \"\";\n      clearDescription.disabled = true;\n      updateButton.disabled = this.#previousDescription === \"\";\n    });\n    descriptionInput.addEventListener(\"input\", () => {\n      const {\n        value\n      } = descriptionInput;\n      clearDescription.disabled = value === \"\";\n      updateButton.disabled = value === this.#previousDescription;\n      editSignatureView.setAttribute(\"aria-label\", value);\n    }, {\n      passive: true\n    });\n    overlayManager.register(dialog);\n  }\n  async open(editor) {\n    this.#uiManager = editor._uiManager;\n    this.#currentEditor = editor;\n    this.#previousDescription = this.#description.value = editor.description;\n    this.#description.dispatchEvent(new Event(\"input\"));\n    this.#uiManager.removeEditListeners();\n    const {\n      areContours,\n      outline\n    } = editor.getSignaturePreview();\n    const svgFactory = new DOMSVGFactory();\n    const path = svgFactory.createElement(\"path\");\n    this.#signatureSVG.append(path);\n    this.#signatureSVG.setAttribute(\"viewBox\", outline.viewBox);\n    path.setAttribute(\"d\", outline.toSVGPath());\n    if (areContours) {\n      path.classList.add(\"contours\");\n    }\n    await this.#overlayManager.open(this.#dialog);\n  }\n  async #update() {\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.signature.edit_description\",\n      data: {\n        hasBeenChanged: true\n      }\n    });\n    this.#currentEditor.description = this.#description.value;\n    this.#finish();\n  }\n  #cancel() {\n    this.#currentEditor._reportTelemetry({\n      action: \"pdfjs.signature.edit_description\",\n      data: {\n        hasBeenChanged: false\n      }\n    });\n    this.#finish();\n  }\n  #finish() {\n    this.#overlayManager.closeIfActive(this.#dialog);\n  }\n  #close() {\n    this.#uiManager?.addEditListeners();\n    this.#uiManager = null;\n    this.#currentEditor = null;\n    this.#signatureSVG.firstElementChild.remove();\n  }\n}\n\n;// ./web/toolbar.js\n\n\nclass Toolbar {\n  #colorPicker = null;\n  #opts;\n  constructor(options, eventBus, toolbarDensity = 0) {\n    this.#opts = options;\n    this.eventBus = eventBus;\n    const buttons = [{\n      element: options.previous,\n      eventName: \"previouspage\"\n    }, {\n      element: options.next,\n      eventName: \"nextpage\"\n    }, {\n      element: options.zoomIn,\n      eventName: \"zoomin\"\n    }, {\n      element: options.zoomOut,\n      eventName: \"zoomout\"\n    }, {\n      element: options.print,\n      eventName: \"print\"\n    }, {\n      element: options.download,\n      eventName: \"download\"\n    }, {\n      element: options.editorCommentButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorCommentButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.POPUP;\n        }\n      }\n    }, {\n      element: options.editorFreeTextButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorFreeTextButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.FREETEXT;\n        }\n      }\n    }, {\n      element: options.editorHighlightButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorHighlightButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.HIGHLIGHT;\n        }\n      }\n    }, {\n      element: options.editorInkButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorInkButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.INK;\n        }\n      }\n    }, {\n      element: options.editorStampButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorStampButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.STAMP;\n        }\n      },\n      telemetry: {\n        type: \"editing\",\n        data: {\n          action: \"pdfjs.image.icon_click\"\n        }\n      }\n    }, {\n      element: options.editorSignatureButton,\n      eventName: \"switchannotationeditormode\",\n      eventDetails: {\n        get mode() {\n          const {\n            classList\n          } = options.editorSignatureButton;\n          return classList.contains(\"toggled\") ? AnnotationEditorType.NONE : AnnotationEditorType.SIGNATURE;\n        }\n      }\n    }];\n    this.#bindListeners(buttons);\n    this.#updateToolbarDensity({\n      value: toolbarDensity\n    });\n    this.reset();\n  }\n  #updateToolbarDensity({\n    value\n  }) {\n    let name = \"normal\";\n    switch (value) {\n      case 1:\n        name = \"compact\";\n        break;\n      case 2:\n        name = \"touch\";\n        break;\n    }\n    document.documentElement.setAttribute(\"data-toolbar-density\", name);\n  }\n  setPageNumber(pageNumber, pageLabel) {\n    this.pageNumber = pageNumber;\n    this.pageLabel = pageLabel;\n    this.#updateUIState(false);\n  }\n  setPagesCount(pagesCount, hasPageLabels) {\n    this.pagesCount = pagesCount;\n    this.hasPageLabels = hasPageLabels;\n    this.#updateUIState(true);\n  }\n  setPageScale(pageScaleValue, pageScale) {\n    this.pageScaleValue = (pageScaleValue || pageScale).toString();\n    this.pageScale = pageScale;\n    this.#updateUIState(false);\n  }\n  reset() {\n    this.#colorPicker = null;\n    this.pageNumber = 0;\n    this.pageLabel = null;\n    this.hasPageLabels = false;\n    this.pagesCount = 0;\n    this.pageScaleValue = DEFAULT_SCALE_VALUE;\n    this.pageScale = DEFAULT_SCALE;\n    this.#updateUIState(true);\n    this.updateLoadingIndicatorState();\n    this.#editorModeChanged({\n      mode: AnnotationEditorType.DISABLE\n    });\n  }\n  #bindListeners(buttons) {\n    const {\n      eventBus\n    } = this;\n    const {\n      editorHighlightColorPicker,\n      editorHighlightButton,\n      pageNumber,\n      scaleSelect\n    } = this.#opts;\n    const self = this;\n    for (const {\n      element,\n      eventName,\n      eventDetails,\n      telemetry\n    } of buttons) {\n      element.addEventListener(\"click\", evt => {\n        if (eventName !== null) {\n          eventBus.dispatch(eventName, {\n            source: this,\n            ...eventDetails,\n            isFromKeyboard: evt.detail === 0\n          });\n        }\n        if (telemetry) {\n          eventBus.dispatch(\"reporttelemetry\", {\n            source: this,\n            details: telemetry\n          });\n        }\n      });\n    }\n    pageNumber.addEventListener(\"click\", function () {\n      this.select();\n    });\n    pageNumber.addEventListener(\"change\", function () {\n      eventBus.dispatch(\"pagenumberchanged\", {\n        source: self,\n        value: this.value\n      });\n    });\n    scaleSelect.addEventListener(\"change\", function () {\n      if (this.value === \"custom\") {\n        return;\n      }\n      eventBus.dispatch(\"scalechanged\", {\n        source: self,\n        value: this.value\n      });\n    });\n    scaleSelect.addEventListener(\"click\", function ({\n      target\n    }) {\n      if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === \"OPTION\") {\n        this.blur();\n      }\n    });\n    scaleSelect.oncontextmenu = noContextMenu;\n    eventBus._on(\"annotationeditormodechanged\", this.#editorModeChanged.bind(this));\n    eventBus._on(\"showannotationeditorui\", ({\n      mode\n    }) => {\n      switch (mode) {\n        case AnnotationEditorType.HIGHLIGHT:\n          editorHighlightButton.click();\n          break;\n      }\n    });\n    eventBus._on(\"toolbardensity\", this.#updateToolbarDensity.bind(this));\n    if (editorHighlightColorPicker) {\n      eventBus._on(\"annotationeditoruimanager\", ({\n        uiManager\n      }) => {\n        const cp = this.#colorPicker = new ColorPicker({\n          uiManager\n        });\n        uiManager.setMainHighlightColorPicker(cp);\n        editorHighlightColorPicker.append(cp.renderMainDropdown());\n      });\n      eventBus._on(\"mainhighlightcolorpickerupdatecolor\", ({\n        value\n      }) => {\n        this.#colorPicker?.updateColor(value);\n      });\n    }\n  }\n  #editorModeChanged({\n    mode\n  }) {\n    const {\n      editorCommentButton,\n      editorCommentParamsToolbar,\n      editorFreeTextButton,\n      editorFreeTextParamsToolbar,\n      editorHighlightButton,\n      editorHighlightParamsToolbar,\n      editorInkButton,\n      editorInkParamsToolbar,\n      editorStampButton,\n      editorStampParamsToolbar,\n      editorSignatureButton,\n      editorSignatureParamsToolbar\n    } = this.#opts;\n    toggleExpandedBtn(editorCommentButton, mode === AnnotationEditorType.POPUP, editorCommentParamsToolbar);\n    toggleExpandedBtn(editorFreeTextButton, mode === AnnotationEditorType.FREETEXT, editorFreeTextParamsToolbar);\n    toggleExpandedBtn(editorHighlightButton, mode === AnnotationEditorType.HIGHLIGHT, editorHighlightParamsToolbar);\n    toggleExpandedBtn(editorInkButton, mode === AnnotationEditorType.INK, editorInkParamsToolbar);\n    toggleExpandedBtn(editorStampButton, mode === AnnotationEditorType.STAMP, editorStampParamsToolbar);\n    toggleExpandedBtn(editorSignatureButton, mode === AnnotationEditorType.SIGNATURE, editorSignatureParamsToolbar);\n    editorCommentButton.disabled = editorFreeTextButton.disabled = editorHighlightButton.disabled = editorInkButton.disabled = editorStampButton.disabled = editorSignatureButton.disabled = mode === AnnotationEditorType.DISABLE;\n  }\n  #updateUIState(resetNumPages = false) {\n    const {\n      pageNumber,\n      pagesCount,\n      pageScaleValue,\n      pageScale\n    } = this;\n    const opts = this.#opts;\n    if (resetNumPages) {\n      if (this.hasPageLabels) {\n        opts.pageNumber.type = \"text\";\n        opts.numPages.setAttribute(\"data-l10n-id\", \"pdfjs-page-of-pages\");\n      } else {\n        opts.pageNumber.type = \"number\";\n        opts.numPages.setAttribute(\"data-l10n-id\", \"pdfjs-of-pages\");\n        opts.numPages.setAttribute(\"data-l10n-args\", JSON.stringify({\n          pagesCount\n        }));\n      }\n      opts.pageNumber.max = pagesCount;\n    }\n    if (this.hasPageLabels) {\n      opts.pageNumber.value = this.pageLabel;\n      opts.numPages.setAttribute(\"data-l10n-args\", JSON.stringify({\n        pageNumber,\n        pagesCount\n      }));\n    } else {\n      opts.pageNumber.value = pageNumber;\n    }\n    opts.previous.disabled = pageNumber <= 1;\n    opts.next.disabled = pageNumber >= pagesCount;\n    opts.zoomOut.disabled = pageScale <= MIN_SCALE;\n    opts.zoomIn.disabled = pageScale >= MAX_SCALE;\n    let predefinedValueFound = false;\n    for (const option of opts.scaleSelect.options) {\n      if (option.value !== pageScaleValue) {\n        option.selected = false;\n        continue;\n      }\n      option.selected = true;\n      predefinedValueFound = true;\n    }\n    if (!predefinedValueFound) {\n      opts.customScaleOption.selected = true;\n      opts.customScaleOption.setAttribute(\"data-l10n-args\", JSON.stringify({\n        scale: Math.round(pageScale * 10000) / 100\n      }));\n    }\n  }\n  updateLoadingIndicatorState(loading = false) {\n    const {\n      pageNumber\n    } = this.#opts;\n    pageNumber.classList.toggle(\"loading\", loading);\n  }\n}\n\n;// ./web/view_history.js\nconst DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20;\nclass ViewHistory {\n  constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) {\n    this.fingerprint = fingerprint;\n    this.cacheSize = cacheSize;\n    this._initializedPromise = this._readFromStorage().then(databaseStr => {\n      const database = JSON.parse(databaseStr || \"{}\");\n      let index = -1;\n      if (!Array.isArray(database.files)) {\n        database.files = [];\n      } else {\n        while (database.files.length >= this.cacheSize) {\n          database.files.shift();\n        }\n        for (let i = 0, ii = database.files.length; i < ii; i++) {\n          const branch = database.files[i];\n          if (branch.fingerprint === this.fingerprint) {\n            index = i;\n            break;\n          }\n        }\n      }\n      if (index === -1) {\n        index = database.files.push({\n          fingerprint: this.fingerprint\n        }) - 1;\n      }\n      this.file = database.files[index];\n      this.database = database;\n    });\n  }\n  async _writeToStorage() {\n    const databaseStr = JSON.stringify(this.database);\n    // localStorage.setItem(\"pdfjs.history\", databaseStr);\n  }\n  async _readFromStorage() {\n    return // localStorage.getItem(\"pdfjs.history\");\n  }\n  async set(name, val) {\n    await this._initializedPromise;\n    this.file[name] = val;\n    return this._writeToStorage();\n  }\n  async setMultiple(properties) {\n    await this._initializedPromise;\n    for (const name in properties) {\n      this.file[name] = properties[name];\n    }\n    return this._writeToStorage();\n  }\n  async get(name, defaultValue) {\n    await this._initializedPromise;\n    const val = this.file[name];\n    return val !== undefined ? val : defaultValue;\n  }\n  async getMultiple(properties) {\n    await this._initializedPromise;\n    const values = Object.create(null);\n    for (const name in properties) {\n      const val = this.file[name];\n      values[name] = val !== undefined ? val : properties[name];\n    }\n    return values;\n  }\n}\n\n;// ./web/app.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000;\nconst ViewOnLoad = {\n  UNKNOWN: -1,\n  PREVIOUS: 0,\n  INITIAL: 1\n};\nconst PDFViewerApplication = {\n  initialBookmark: document.location.hash.substring(1),\n  _initializedCapability: {\n    ...Promise.withResolvers(),\n    settled: false\n  },\n  appConfig: null,\n  pdfDocument: null,\n  pdfLoadingTask: null,\n  printService: null,\n  pdfViewer: null,\n  pdfThumbnailViewer: null,\n  pdfRenderingQueue: null,\n  pdfPresentationMode: null,\n  pdfDocumentProperties: null,\n  pdfLinkService: null,\n  pdfTextExtractor: null,\n  pdfHistory: null,\n  pdfSidebar: null,\n  pdfOutlineViewer: null,\n  pdfAttachmentViewer: null,\n  pdfLayerViewer: null,\n  pdfCursorTools: null,\n  pdfScriptingManager: null,\n  store: null,\n  downloadManager: null,\n  overlayManager: null,\n  preferences: new Preferences(),\n  toolbar: null,\n  secondaryToolbar: null,\n  eventBus: null,\n  l10n: null,\n  annotationEditorParams: null,\n  imageAltTextSettings: null,\n  isInitialViewSet: false,\n  isViewerEmbedded: window.parent !== window,\n  url: \"\",\n  baseUrl: \"\",\n  mlManager: null,\n  _downloadUrl: \"\",\n  _eventBusAbortController: null,\n  _windowAbortController: null,\n  _globalAbortController: new AbortController(),\n  documentInfo: null,\n  metadata: null,\n  _contentDispositionFilename: null,\n  _contentLength: null,\n  _saveInProgress: false,\n  _wheelUnusedTicks: 0,\n  _wheelUnusedFactor: 1,\n  _touchManager: null,\n  _touchUnusedTicks: 0,\n  _touchUnusedFactor: 1,\n  _PDFBug: null,\n  _hasAnnotationEditors: false,\n  _title: document.title,\n  _printAnnotationStoragePromise: null,\n  _isCtrlKeyDown: false,\n  _caretBrowsing: null,\n  _isScrolling: false,\n  editorUndoBar: null,\n  _printPermissionPromise: null,\n  async initialize(appConfig) {\n    this.appConfig = appConfig;\n    try {\n      await this.preferences.initializedPromise;\n    } catch (ex) {\n      console.error(\"initialize:\", ex);\n    }\n    if (AppOptions.get(\"pdfBugEnabled\")) {\n      await this._parseHashParams();\n    }\n    let mode;\n    switch (AppOptions.get(\"viewerCssTheme\")) {\n      case 1:\n        mode = \"light\";\n        break;\n      case 2:\n        mode = \"dark\";\n        break;\n    }\n    if (mode) {\n      docStyle.setProperty(\"color-scheme\", mode);\n    }\n    this.l10n = await this.externalServices.createL10n();\n    document.getElementsByTagName(\"html\")[0].dir = this.l10n.getDirection();\n    this.l10n.translate(appConfig.appContainer || document.documentElement);\n    if (this.isViewerEmbedded && AppOptions.get(\"externalLinkTarget\") === LinkTarget.NONE) {\n      AppOptions.set(\"externalLinkTarget\", LinkTarget.TOP);\n    }\n    await this._initializeViewerComponents();\n    this.pdfTextExtractor = new PdfTextExtractor(this.externalServices);\n    this.bindEvents();\n    this.bindWindowEvents();\n    this._initializedCapability.settled = true;\n    this._initializedCapability.resolve();\n  },\n  async _parseHashParams() {\n    const hash = document.location.hash.substring(1);\n    if (!hash) {\n      return;\n    }\n    const {\n        mainContainer,\n        viewerContainer\n      } = this.appConfig,\n      params = parseQueryString(hash);\n    const loadPDFBug = async () => {\n      if (this._PDFBug) {\n        return;\n      }\n      const {\n        PDFBug\n      } = await import(\n      /*webpackIgnore: true*/\n      /*@vite-ignore*/\n      AppOptions.get(\"debuggerSrc\"));\n      this._PDFBug = PDFBug;\n    };\n    if (params.get(\"disableworker\") === \"true\") {\n      try {\n        GlobalWorkerOptions.workerSrc ||= AppOptions.get(\"workerSrc\");\n        await import(\n        /*webpackIgnore: true*/\n        /*@vite-ignore*/\n        PDFWorker.workerSrc);\n        AppOptions.set(\"workerPort\", null);\n      } catch (ex) {\n        console.error(\"_parseHashParams:\", ex);\n      }\n    }\n    if (params.has(\"textlayer\")) {\n      switch (params.get(\"textlayer\")) {\n        case \"off\":\n          AppOptions.set(\"textLayerMode\", TextLayerMode.DISABLE);\n          break;\n        case \"visible\":\n        case \"shadow\":\n        case \"hover\":\n          viewerContainer.classList.add(`textLayer-${params.get(\"textlayer\")}`);\n          try {\n            await loadPDFBug();\n            this._PDFBug.loadCSS();\n          } catch (ex) {\n            console.error(\"_parseHashParams:\", ex);\n          }\n          break;\n      }\n    }\n    if (params.has(\"pdfbug\")) {\n      const enabled = params.get(\"pdfbug\").split(\",\");\n      try {\n        await loadPDFBug();\n        this._PDFBug.init(mainContainer, enabled);\n      } catch (ex) {\n        console.error(\"_parseHashParams:\", ex);\n      }\n      const debugOpts = {\n        pdfBug: true,\n        fontExtraProperties: true\n      };\n      if (globalThis.StepperManager?.enabled) {\n        debugOpts.minDurationToUpdateCanvas = 0;\n      }\n      AppOptions.setAll(debugOpts);\n    }\n    if (params.has(\"locale\")) {\n      AppOptions.set(\"localeProperties\", {\n        lang: params.get(\"locale\")\n      });\n    }\n    const opts = {\n      disableAutoFetch: x => x === \"true\",\n      disableFontFace: x => x === \"true\",\n      disableHistory: x => x === \"true\",\n      disableRange: x => x === \"true\",\n      disableStream: x => x === \"true\",\n      verbosity: x => x | 0\n    };\n    for (const name in opts) {\n      const check = opts[name],\n        key = name.toLowerCase();\n      if (params.has(key)) {\n        AppOptions.set(name, check(params.get(key)));\n      }\n    }\n  },\n  async _initializeViewerComponents() {\n    const {\n      appConfig,\n      externalServices,\n      l10n,\n      mlManager\n    } = this;\n    const abortSignal = this._globalAbortController.signal;\n    const eventBus = new EventBus();\n    this.eventBus = AppOptions.eventBus = eventBus;\n    mlManager?.setEventBus(eventBus, abortSignal);\n    const overlayManager = this.overlayManager = new OverlayManager();\n    const renderingQueue = this.pdfRenderingQueue = new PDFRenderingQueue();\n    renderingQueue.onIdle = this._cleanup.bind(this);\n    const linkService = this.pdfLinkService = new PDFLinkService({\n      eventBus,\n      externalLinkTarget: AppOptions.get(\"externalLinkTarget\"),\n      externalLinkRel: AppOptions.get(\"externalLinkRel\"),\n      ignoreDestinationZoom: AppOptions.get(\"ignoreDestinationZoom\")\n    });\n    const downloadManager = this.downloadManager = new DownloadManager();\n    const findController = this.findController = new PDFFindController({\n      linkService,\n      eventBus,\n      updateMatchesCountOnProgress: true\n    });\n    const pdfScriptingManager = this.pdfScriptingManager = new PDFScriptingManager({\n      eventBus,\n      externalServices,\n      docProperties: this._scriptingDocProperties.bind(this)\n    });\n    const container = appConfig.mainContainer,\n      viewer = appConfig.viewerContainer;\n    const annotationEditorMode = AppOptions.get(\"annotationEditorMode\");\n    const hasForcedColors = AppOptions.get(\"forcePageColors\") || window.matchMedia(\"(forced-colors: active)\").matches;\n    const pageColors = hasForcedColors ? {\n      background: AppOptions.get(\"pageColorsBackground\"),\n      foreground: AppOptions.get(\"pageColorsForeground\")\n    } : null;\n    let altTextManager;\n    if (AppOptions.get(\"enableUpdatedAddImage\")) {\n      altTextManager = appConfig.newAltTextDialog ? new NewAltTextManager(appConfig.newAltTextDialog, overlayManager, eventBus) : null;\n    } else {\n      altTextManager = appConfig.altTextDialog ? new AltTextManager(appConfig.altTextDialog, container, overlayManager, eventBus) : null;\n    }\n    if (appConfig.editorUndoBar) {\n      this.editorUndoBar = new EditorUndoBar(appConfig.editorUndoBar, eventBus);\n    }\n    const signatureManager = AppOptions.get(\"enableSignatureEditor\") && appConfig.addSignatureDialog ? new SignatureManager(appConfig.addSignatureDialog, appConfig.editSignatureDialog, appConfig.annotationEditorParams?.editorSignatureAddSignature || null, overlayManager, l10n, externalServices.createSignatureStorage(eventBus, abortSignal), eventBus) : null;\n    const ltr = appConfig.viewerContainer ? getComputedStyle(appConfig.viewerContainer).direction === \"ltr\" : true;\n    const commentManager = AppOptions.get(\"enableComment\") && appConfig.editCommentDialog ? new CommentManager(appConfig.editCommentDialog, {\n      learnMoreUrl: AppOptions.get(\"commentLearnMoreUrl\"),\n      sidebar: appConfig.annotationEditorParams?.editorCommentsSidebar || null,\n      sidebarResizer: appConfig.annotationEditorParams?.editorCommentsSidebarResizer || null,\n      commentsList: appConfig.annotationEditorParams?.editorCommentsSidebarList || null,\n      commentCount: appConfig.annotationEditorParams?.editorCommentsSidebarCount || null,\n      sidebarTitle: appConfig.annotationEditorParams?.editorCommentsSidebarTitle || null,\n      closeButton: appConfig.annotationEditorParams?.editorCommentsSidebarCloseButton || null,\n      commentToolbarButton: appConfig.toolbar?.editorCommentButton || null\n    }, eventBus, linkService, overlayManager, ltr, hasForcedColors) : null;\n    const enableHWA = AppOptions.get(\"enableHWA\"),\n      maxCanvasPixels = AppOptions.get(\"maxCanvasPixels\"),\n      maxCanvasDim = AppOptions.get(\"maxCanvasDim\"),\n      capCanvasAreaFactor = AppOptions.get(\"capCanvasAreaFactor\");\n    const pdfViewer = this.pdfViewer = new PDFViewer({\n      container,\n      viewer,\n      viewerAlert: appConfig.viewerAlert,\n      eventBus,\n      renderingQueue,\n      linkService,\n      downloadManager,\n      altTextManager,\n      commentManager,\n      signatureManager,\n      editorUndoBar: this.editorUndoBar,\n      findController,\n      scriptingManager: AppOptions.get(\"enableScripting\") && pdfScriptingManager,\n      l10n,\n      textLayerMode: AppOptions.get(\"textLayerMode\"),\n      annotationMode: AppOptions.get(\"annotationMode\"),\n      annotationEditorMode,\n      annotationEditorHighlightColors: AppOptions.get(\"highlightEditorColors\"),\n      enableHighlightFloatingButton: AppOptions.get(\"enableHighlightFloatingButton\"),\n      enableUpdatedAddImage: AppOptions.get(\"enableUpdatedAddImage\"),\n      enableNewAltTextWhenAddingImage: AppOptions.get(\"enableNewAltTextWhenAddingImage\"),\n      imageResourcesPath: AppOptions.get(\"imageResourcesPath\"),\n      enablePrintAutoRotate: AppOptions.get(\"enablePrintAutoRotate\"),\n      maxCanvasPixels,\n      maxCanvasDim,\n      capCanvasAreaFactor,\n      enableDetailCanvas: AppOptions.get(\"enableDetailCanvas\"),\n      enablePermissions: AppOptions.get(\"enablePermissions\"),\n      enableOptimizedPartialRendering: AppOptions.get(\"enableOptimizedPartialRendering\"),\n      pageColors,\n      mlManager,\n      abortSignal,\n      enableHWA,\n      supportsPinchToZoom: this.supportsPinchToZoom,\n      enableAutoLinking: AppOptions.get(\"enableAutoLinking\"),\n      minDurationToUpdateCanvas: AppOptions.get(\"minDurationToUpdateCanvas\")\n    });\n    renderingQueue.setViewer(pdfViewer);\n    linkService.setViewer(pdfViewer);\n    pdfScriptingManager.setViewer(pdfViewer);\n    if (appConfig.sidebar?.thumbnailView) {\n      this.pdfThumbnailViewer = new PDFThumbnailViewer({\n        container: appConfig.sidebar.thumbnailView,\n        eventBus,\n        renderingQueue,\n        linkService,\n        maxCanvasPixels,\n        maxCanvasDim,\n        pageColors,\n        abortSignal,\n        enableHWA\n      });\n      renderingQueue.setThumbnailViewer(this.pdfThumbnailViewer);\n    }\n    if (!this.isViewerEmbedded && !AppOptions.get(\"disableHistory\")) {\n      this.pdfHistory = new PDFHistory({\n        linkService,\n        eventBus\n      });\n      linkService.setHistory(this.pdfHistory);\n    }\n    if (!this.supportsIntegratedFind && appConfig.findBar) {\n      this.findBar = new PDFFindBar(appConfig.findBar, appConfig.principalContainer, eventBus);\n    }\n    if (appConfig.annotationEditorParams) {\n      if (annotationEditorMode !== AnnotationEditorType.DISABLE) {\n        const editorSignatureButton = appConfig.toolbar?.editorSignatureButton;\n        if (editorSignatureButton && AppOptions.get(\"enableSignatureEditor\")) {\n          editorSignatureButton.parentElement.hidden = false;\n        }\n        const editorCommentButton = appConfig.toolbar?.editorCommentButton;\n        if (editorCommentButton && AppOptions.get(\"enableComment\")) {\n          editorCommentButton.parentElement.hidden = false;\n        }\n        this.annotationEditorParams = new AnnotationEditorParams(appConfig.annotationEditorParams, eventBus);\n      } else {\n        for (const id of [\"editorModeButtons\", \"editorModeSeparator\"]) {\n          document.getElementById(id)?.classList.add(\"hidden\");\n        }\n      }\n    }\n    if (mlManager && appConfig.secondaryToolbar?.imageAltTextSettingsButton) {\n      this.imageAltTextSettings = new ImageAltTextSettings(appConfig.altTextSettingsDialog, overlayManager, eventBus, mlManager);\n    }\n    if (appConfig.documentProperties) {\n      this.pdfDocumentProperties = new PDFDocumentProperties(appConfig.documentProperties, overlayManager, eventBus, l10n, () => this._docFilename, () => this._docTitle);\n    }\n    if (appConfig.secondaryToolbar?.cursorHandToolButton) {\n      this.pdfCursorTools = new PDFCursorTools({\n        container,\n        eventBus,\n        cursorToolOnLoad: AppOptions.get(\"cursorToolOnLoad\")\n      });\n    }\n    if (appConfig.toolbar) {\n      this.toolbar = new Toolbar(appConfig.toolbar, eventBus, AppOptions.get(\"toolbarDensity\"));\n    }\n    if (appConfig.secondaryToolbar) {\n      if (AppOptions.get(\"enableAltText\")) {\n        appConfig.secondaryToolbar.imageAltTextSettingsButton?.classList.remove(\"hidden\");\n        appConfig.secondaryToolbar.imageAltTextSettingsSeparator?.classList.remove(\"hidden\");\n      }\n      this.secondaryToolbar = new SecondaryToolbar(appConfig.secondaryToolbar, eventBus);\n    }\n    if (this.supportsFullscreen && appConfig.secondaryToolbar?.presentationModeButton) {\n      this.pdfPresentationMode = new PDFPresentationMode({\n        container,\n        pdfViewer,\n        eventBus\n      });\n    }\n    if (appConfig.passwordOverlay) {\n      this.passwordPrompt = new PasswordPrompt(appConfig.passwordOverlay, overlayManager, this.isViewerEmbedded);\n    }\n    if (appConfig.sidebar?.outlineView) {\n      this.pdfOutlineViewer = new PDFOutlineViewer({\n        container: appConfig.sidebar.outlineView,\n        eventBus,\n        l10n,\n        linkService,\n        downloadManager\n      });\n    }\n    if (appConfig.sidebar?.attachmentsView) {\n      this.pdfAttachmentViewer = new PDFAttachmentViewer({\n        container: appConfig.sidebar.attachmentsView,\n        eventBus,\n        l10n,\n        downloadManager\n      });\n    }\n    if (appConfig.sidebar?.layersView) {\n      this.pdfLayerViewer = new PDFLayerViewer({\n        container: appConfig.sidebar.layersView,\n        eventBus,\n        l10n\n      });\n    }\n    if (appConfig.sidebar) {\n      this.pdfSidebar = new PDFSidebar({\n        elements: appConfig.sidebar,\n        eventBus,\n        l10n\n      });\n      this.pdfSidebar.onToggled = this.forceRendering.bind(this);\n      this.pdfSidebar.onUpdateThumbnails = () => {\n        for (const pageView of pdfViewer.getCachedPageViews()) {\n          if (pageView.renderingState === RenderingStates.FINISHED) {\n            this.pdfThumbnailViewer.getThumbnail(pageView.id - 1)?.setImage(pageView);\n          }\n        }\n        this.pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber);\n      };\n    }\n  },\n  async run(config) {\n    await this.initialize(config);\n    const {\n      appConfig,\n      eventBus\n    } = this;\n    let file;\n    const queryString = document.location.search.substring(1);\n    const params = parseQueryString(queryString);\n    file = params.get(\"file\") ?? AppOptions.get(\"defaultUrl\");\n    try {\n      file = new URL(decodeURIComponent(file)).href;\n    } catch {\n      file = encodeURIComponent(file).replaceAll(\"%2F\", \"/\");\n    }\n    validateFileURL(file);\n    const fileInput = this._openFileInput = document.createElement(\"input\");\n    fileInput.id = \"fileInput\";\n    fileInput.hidden = true;\n    fileInput.type = \"file\";\n    fileInput.value = null;\n    document.body.append(fileInput);\n    fileInput.addEventListener(\"change\", function (evt) {\n      const {\n        files\n      } = evt.target;\n      if (!files || files.length === 0) {\n        return;\n      }\n      eventBus.dispatch(\"fileinputchange\", {\n        source: this,\n        fileInput: evt.target\n      });\n    });\n    appConfig.mainContainer.addEventListener(\"dragover\", function (evt) {\n      for (const item of evt.dataTransfer.items) {\n        if (item.type === \"application/pdf\") {\n          evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === \"copy\" ? \"copy\" : \"move\";\n          stopEvent(evt);\n          return;\n        }\n      }\n    });\n    appConfig.mainContainer.addEventListener(\"drop\", function (evt) {\n      if (evt.dataTransfer.files?.[0].type !== \"application/pdf\") {\n        return;\n      }\n      stopEvent(evt);\n      eventBus.dispatch(\"fileinputchange\", {\n        source: this,\n        fileInput: evt.dataTransfer\n      });\n    });\n    if (!AppOptions.get(\"supportsDocumentFonts\")) {\n      AppOptions.set(\"disableFontFace\", true);\n      this.l10n.get(\"pdfjs-web-fonts-disabled\").then(msg => {\n        console.warn(msg);\n      });\n    }\n    const togglePrintingButtons = visible => {\n      appConfig.toolbar?.print?.classList.toggle(\"hidden\", !visible);\n      appConfig.secondaryToolbar?.printButton.classList.toggle(\"hidden\", !visible);\n    };\n    if (!this.supportsPrinting) {\n      togglePrintingButtons(false);\n    } else {\n      eventBus.on(\"printingallowed\", ({\n        isAllowed\n      }) => togglePrintingButtons(isAllowed));\n    }\n    if (!this.supportsFullscreen) {\n      appConfig.secondaryToolbar?.presentationModeButton.classList.add(\"hidden\");\n    }\n    if (this.supportsIntegratedFind) {\n      appConfig.findBar?.toggleButton?.classList.add(\"hidden\");\n    }\n    if (file) {\n      this.open({\n        url: file\n      });\n    } else {\n      this._hideViewBookmark();\n    }\n  },\n  get externalServices() {\n    return shadow(this, \"externalServices\", new ExternalServices());\n  },\n  get initialized() {\n    return this._initializedCapability.settled;\n  },\n  get initializedPromise() {\n    return this._initializedCapability.promise;\n  },\n  updateZoom(steps, scaleFactor, origin) {\n    if (this.pdfViewer.isInPresentationMode) {\n      return;\n    }\n    this.pdfViewer.updateScale({\n      drawingDelay: AppOptions.get(\"defaultZoomDelay\"),\n      steps,\n      scaleFactor,\n      origin\n    });\n  },\n  zoomIn() {\n    this.updateZoom(1);\n  },\n  zoomOut() {\n    this.updateZoom(-1);\n  },\n  zoomReset() {\n    if (this.pdfViewer.isInPresentationMode) {\n      return;\n    }\n    this.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE;\n  },\n  touchPinchCallback(origin, prevDistance, distance) {\n    if (this.supportsPinchToZoom) {\n      const newScaleFactor = this._accumulateFactor(this.pdfViewer.currentScale, distance / prevDistance, \"_touchUnusedFactor\");\n      this.updateZoom(null, newScaleFactor, origin);\n    } else {\n      const PIXELS_PER_LINE_SCALE = 30;\n      const ticks = this._accumulateTicks((distance - prevDistance) / PIXELS_PER_LINE_SCALE, \"_touchUnusedTicks\");\n      this.updateZoom(ticks, null, origin);\n    }\n  },\n  touchPinchEndCallback() {\n    this._touchUnusedTicks = 0;\n    this._touchUnusedFactor = 1;\n  },\n  get pagesCount() {\n    return this.pdfDocument ? this.pdfDocument.numPages : 0;\n  },\n  get page() {\n    return this.pdfViewer.currentPageNumber;\n  },\n  set page(val) {\n    this.pdfViewer.currentPageNumber = val;\n  },\n  get supportsPrinting() {\n    return shadow(this, \"supportsPrinting\", AppOptions.get(\"supportsPrinting\") && PDFPrintServiceFactory.supportsPrinting);\n  },\n  get supportsFullscreen() {\n    return shadow(this, \"supportsFullscreen\", document.fullscreenEnabled);\n  },\n  get supportsPinchToZoom() {\n    return shadow(this, \"supportsPinchToZoom\", AppOptions.get(\"supportsPinchToZoom\"));\n  },\n  get supportsIntegratedFind() {\n    return shadow(this, \"supportsIntegratedFind\", AppOptions.get(\"supportsIntegratedFind\"));\n  },\n  get loadingBar() {\n    const barElement = document.getElementById(\"loadingBar\");\n    const bar = barElement ? new ProgressBar(barElement) : null;\n    return shadow(this, \"loadingBar\", bar);\n  },\n  get supportsMouseWheelZoomCtrlKey() {\n    return shadow(this, \"supportsMouseWheelZoomCtrlKey\", AppOptions.get(\"supportsMouseWheelZoomCtrlKey\"));\n  },\n  get supportsMouseWheelZoomMetaKey() {\n    return shadow(this, \"supportsMouseWheelZoomMetaKey\", AppOptions.get(\"supportsMouseWheelZoomMetaKey\"));\n  },\n  get supportsCaretBrowsingMode() {\n    return AppOptions.get(\"supportsCaretBrowsingMode\");\n  },\n  moveCaret(isUp, select) {\n    this._caretBrowsing ||= new CaretBrowsingMode(this._globalAbortController.signal, this.appConfig.mainContainer, this.appConfig.viewerContainer, this.appConfig.toolbar?.container);\n    this._caretBrowsing.moveCaret(isUp, select);\n  },\n  setTitleUsingUrl(url = \"\", downloadUrl = null) {\n    this.url = url;\n    this.baseUrl = updateUrlHash(url, \"\", true);\n    if (downloadUrl) {\n      this._downloadUrl = downloadUrl === url ? this.baseUrl : updateUrlHash(downloadUrl, \"\", true);\n    }\n    if (isDataScheme(url)) {\n      this._hideViewBookmark();\n    }\n    let title = pdfjs_getPdfFilenameFromUrl(url, \"\");\n    if (!title) {\n      try {\n        title = decodeURIComponent(getFilenameFromUrl(url));\n      } catch {}\n    }\n    // this.setTitle(title || url);\n  },\n  setTitle(title = this._title) {\n    this._title = title;\n    if (this.isViewerEmbedded) {\n      return;\n    }\n    const editorIndicator = this._hasAnnotationEditors && !this.pdfRenderingQueue.printing;\n    document.title = `${editorIndicator ? \"* \" : \"\"}${title}`;\n  },\n  get _docFilename() {\n    return this._contentDispositionFilename || pdfjs_getPdfFilenameFromUrl(this.url);\n  },\n  get _docTitle() {\n    const {\n      documentInfo,\n      metadata\n    } = this;\n    const title = metadata?.get(\"dc:title\");\n    if (title) {\n      if (title !== \"Untitled\" && !/[\\uFFF0-\\uFFFF]/g.test(title)) {\n        return title;\n      }\n    }\n    return documentInfo.Title;\n  },\n  _hideViewBookmark() {\n    const {\n      secondaryToolbar\n    } = this.appConfig;\n    secondaryToolbar?.viewBookmarkButton.classList.add(\"hidden\");\n    if (secondaryToolbar?.presentationModeButton.classList.contains(\"hidden\")) {\n      document.getElementById(\"viewBookmarkSeparator\")?.classList.add(\"hidden\");\n    }\n  },\n  async close() {\n    this._unblockDocumentLoadEvent();\n    this._hideViewBookmark();\n    if (!this.pdfLoadingTask) {\n      return;\n    }\n    if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) {\n      try {\n        await this.save();\n      } catch {}\n    }\n    const promises = [];\n    promises.push(this.pdfLoadingTask.destroy());\n    this.pdfLoadingTask = null;\n    if (this.pdfDocument) {\n      this.pdfDocument = null;\n      this.pdfThumbnailViewer?.setDocument(null);\n      this.pdfViewer.setDocument(null);\n      this.pdfLinkService.setDocument(null);\n      this.pdfDocumentProperties?.setDocument(null);\n      this.pdfTextExtractor?.setViewer(null);\n    }\n    this.pdfLinkService.externalLinkEnabled = true;\n    this.store = null;\n    this.isInitialViewSet = false;\n    this.url = \"\";\n    this.baseUrl = \"\";\n    this._downloadUrl = \"\";\n    this.documentInfo = null;\n    this.metadata = null;\n    this._contentDispositionFilename = null;\n    this._contentLength = null;\n    this._saveInProgress = false;\n    this._hasAnnotationEditors = false;\n    promises.push(this.pdfScriptingManager.destroyPromise, this.passwordPrompt.close());\n    this.setTitle();\n    this.pdfSidebar?.reset();\n    this.pdfOutlineViewer?.reset();\n    this.pdfAttachmentViewer?.reset();\n    this.pdfLayerViewer?.reset();\n    this.pdfHistory?.reset();\n    this.findBar?.reset();\n    this.toolbar?.reset();\n    this.secondaryToolbar?.reset();\n    this._PDFBug?.cleanup();\n    await Promise.all(promises);\n  },\n  async open(args) {\n    if (this.pdfLoadingTask) {\n      await this.close();\n    }\n    const workerParams = AppOptions.getAll(OptionKind.WORKER);\n    Object.assign(GlobalWorkerOptions, workerParams);\n    if (args.url) {\n      this.setTitleUsingUrl(args.originalUrl || args.url, args.url);\n    }\n    const apiParams = AppOptions.getAll(OptionKind.API);\n    const loadingTask = getDocument({\n      ...apiParams,\n      ...args\n    });\n    this.pdfLoadingTask = loadingTask;\n    loadingTask.onPassword = (updateCallback, reason) => {\n      if (this.isViewerEmbedded) {\n        this._unblockDocumentLoadEvent();\n      }\n      this.pdfLinkService.externalLinkEnabled = false;\n      this.passwordPrompt.setUpdateCallback(updateCallback, reason);\n      this.passwordPrompt.open();\n    };\n    loadingTask.onProgress = ({\n      loaded,\n      total\n    }) => {\n      this.progress(loaded / total);\n    };\n    return loadingTask.promise.then(pdfDocument => {\n      this.load(pdfDocument);\n    }, reason => {\n      if (loadingTask !== this.pdfLoadingTask) {\n        return undefined;\n      }\n      let key = \"pdfjs-loading-error\";\n      if (reason instanceof InvalidPDFException) {\n        key = \"pdfjs-invalid-file-error\";\n      } else if (reason instanceof ResponseException) {\n        key = reason.missing ? \"pdfjs-missing-file-error\" : \"pdfjs-unexpected-response-error\";\n      }\n      return this._documentError(key, {\n        message: reason.message\n      }).then(() => {\n        throw reason;\n      });\n    });\n  },\n  async download() {\n    let data;\n    try {\n      data = await (this.pdfDocument ? this.pdfDocument.getData() : this.pdfLoadingTask.getData());\n    } catch {}\n    this.downloadManager.download(data, this._downloadUrl, this._docFilename);\n  },\n  async save() {\n    if (this._saveInProgress) {\n      return;\n    }\n    this._saveInProgress = true;\n    await this.pdfScriptingManager.dispatchWillSave();\n    try {\n      const data = await this.pdfDocument.saveDocument();\n      this.downloadManager.download(data, this._downloadUrl, this._docFilename);\n    } catch (reason) {\n      console.error(`Error when saving the document:`, reason);\n      await this.download();\n    } finally {\n      await this.pdfScriptingManager.dispatchDidSave();\n      this._saveInProgress = false;\n    }\n    const editorStats = this.pdfDocument?.annotationStorage.editorStats;\n    if (editorStats) {\n      this.externalServices.reportTelemetry({\n        type: \"editing\",\n        data: {\n          type: \"save\",\n          stats: editorStats\n        }\n      });\n    }\n  },\n  async downloadOrSave() {\n    const {\n      classList\n    } = this.appConfig.appContainer;\n    classList.add(\"wait\");\n    await (this.pdfDocument?.annotationStorage.size > 0 ? this.save() : this.download());\n    classList.remove(\"wait\");\n  },\n  async _documentError(key, moreInfo = null) {\n    this._unblockDocumentLoadEvent();\n    const message = await this._otherError(key || \"pdfjs-loading-error\", moreInfo);\n    this.eventBus.dispatch(\"documenterror\", {\n      source: this,\n      message,\n      reason: moreInfo?.message ?? null\n    });\n  },\n  async _otherError(key, moreInfo = null) {\n    const message = await this.l10n.get(key);\n    const moreInfoText = [`PDF.js v${version || \"?\"} (build: ${build || \"?\"})`];\n    if (moreInfo) {\n      moreInfoText.push(`Message: ${moreInfo.message}`);\n      if (moreInfo.stack) {\n        moreInfoText.push(`Stack: ${moreInfo.stack}`);\n      } else {\n        if (moreInfo.filename) {\n          moreInfoText.push(`File: ${moreInfo.filename}`);\n        }\n        if (moreInfo.lineNumber) {\n          moreInfoText.push(`Line: ${moreInfo.lineNumber}`);\n        }\n      }\n    }\n    console.error(`${message}\\n\\n${moreInfoText.join(\"\\n\")}`);\n    return message;\n  },\n  progress(level) {\n    const percent = Math.round(level * 100);\n    if (!this.loadingBar || percent <= this.loadingBar.percent) {\n      return;\n    }\n    this.loadingBar.percent = percent;\n    if (this.pdfDocument?.loadingParams.disableAutoFetch ?? AppOptions.get(\"disableAutoFetch\")) {\n      this.loadingBar.setDisableAutoFetch();\n    }\n  },\n  load(pdfDocument) {\n    this.pdfDocument = pdfDocument;\n    this._printPermissionPromise = new Promise(resolve => {\n      this.eventBus.on(\"printingallowed\", ({\n        isAllowed\n      }) => {\n        resolve(isAllowed);\n      }, {\n        once: true\n      });\n    });\n    pdfDocument.getDownloadInfo().then(({\n      length\n    }) => {\n      this._contentLength = length;\n      this.loadingBar?.hide();\n      firstPagePromise.then(() => {\n        this.eventBus.dispatch(\"documentloaded\", {\n          source: this\n        });\n      });\n    });\n    const pageLayoutPromise = pdfDocument.getPageLayout().catch(() => {});\n    const pageModePromise = pdfDocument.getPageMode().catch(() => {});\n    const openActionPromise = pdfDocument.getOpenAction().catch(() => {});\n    this.toolbar?.setPagesCount(pdfDocument.numPages, false);\n    this.secondaryToolbar?.setPagesCount(pdfDocument.numPages);\n    this.pdfLinkService.setDocument(pdfDocument);\n    this.pdfDocumentProperties?.setDocument(pdfDocument);\n    const pdfViewer = this.pdfViewer;\n    pdfViewer.setDocument(pdfDocument);\n    this.pdfTextExtractor.setViewer(pdfViewer);\n    const {\n      firstPagePromise,\n      onePageRendered,\n      pagesPromise\n    } = pdfViewer;\n    this.pdfThumbnailViewer?.setDocument(pdfDocument);\n    const storedPromise = (this.store = new ViewHistory(pdfDocument.fingerprints[0])).getMultiple({\n      page: null,\n      zoom: DEFAULT_SCALE_VALUE,\n      scrollLeft: \"0\",\n      scrollTop: \"0\",\n      rotation: null,\n      sidebarView: SidebarView.UNKNOWN,\n      scrollMode: ScrollMode.UNKNOWN,\n      spreadMode: SpreadMode.UNKNOWN\n    }).catch(() => {});\n    firstPagePromise.then(pdfPage => {\n      this.loadingBar?.setWidth(this.appConfig.viewerContainer);\n      this._initializeAnnotationStorageCallbacks(pdfDocument);\n      Promise.all([animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => {\n        const viewOnLoad = AppOptions.get(\"viewOnLoad\");\n        this._initializePdfHistory({\n          fingerprint: pdfDocument.fingerprints[0],\n          viewOnLoad,\n          initialDest: openAction?.dest\n        });\n        const initialBookmark = this.initialBookmark;\n        const zoom = AppOptions.get(\"defaultZoomValue\");\n        let hash = zoom ? `zoom=${zoom}` : null;\n        let rotation = null;\n        let sidebarView = AppOptions.get(\"sidebarViewOnLoad\");\n        let scrollMode = AppOptions.get(\"scrollModeOnLoad\");\n        let spreadMode = AppOptions.get(\"spreadModeOnLoad\");\n        if (stored?.page && viewOnLoad !== ViewOnLoad.INITIAL) {\n          hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`;\n          rotation = parseInt(stored.rotation, 10);\n          if (sidebarView === SidebarView.UNKNOWN) {\n            sidebarView = stored.sidebarView | 0;\n          }\n          if (scrollMode === ScrollMode.UNKNOWN) {\n            scrollMode = stored.scrollMode | 0;\n          }\n          if (spreadMode === SpreadMode.UNKNOWN) {\n            spreadMode = stored.spreadMode | 0;\n          }\n        }\n        if (pageMode && sidebarView === SidebarView.UNKNOWN) {\n          sidebarView = apiPageModeToSidebarView(pageMode);\n        }\n        if (pageLayout && scrollMode === ScrollMode.UNKNOWN && spreadMode === SpreadMode.UNKNOWN) {\n          const modes = apiPageLayoutToViewerModes(pageLayout);\n          spreadMode = modes.spreadMode;\n        }\n        this.setInitialView(hash, {\n          rotation,\n          sidebarView,\n          scrollMode,\n          spreadMode\n        });\n        this.eventBus.dispatch(\"documentinit\", {\n          source: this\n        });\n        await Promise.race([pagesPromise, new Promise(resolve => {\n          setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT);\n        })]);\n        if (!initialBookmark && !hash) {\n          return;\n        }\n        if (pdfViewer.hasEqualPageSizes) {\n          return;\n        }\n        this.initialBookmark = initialBookmark;\n        pdfViewer.currentScaleValue = pdfViewer.currentScaleValue;\n        this.setInitialView(hash);\n      }).catch(() => {\n        this.setInitialView();\n      }).then(function () {\n        pdfViewer.update();\n      });\n    });\n    pagesPromise.then(() => {\n      this._unblockDocumentLoadEvent();\n      this._initializeAutoPrint(pdfDocument, openActionPromise);\n    }, reason => {\n      this._documentError(\"pdfjs-loading-error\", {\n        message: reason.message\n      });\n    });\n    onePageRendered.then(data => {\n      this.externalServices.reportTelemetry({\n        type: \"pageInfo\",\n        timestamp: data.timestamp\n      });\n      if (this.pdfOutlineViewer) {\n        pdfDocument.getOutline().then(outline => {\n          if (pdfDocument !== this.pdfDocument) {\n            return;\n          }\n          this.pdfOutlineViewer.render({\n            outline,\n            pdfDocument\n          });\n        });\n      }\n      if (this.pdfAttachmentViewer) {\n        pdfDocument.getAttachments().then(attachments => {\n          if (pdfDocument !== this.pdfDocument) {\n            return;\n          }\n          this.pdfAttachmentViewer.render({\n            attachments\n          });\n        });\n      }\n      if (this.pdfLayerViewer) {\n        pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => {\n          if (pdfDocument !== this.pdfDocument) {\n            return;\n          }\n          this.pdfLayerViewer.render({\n            optionalContentConfig,\n            pdfDocument\n          });\n        });\n      }\n    });\n    this._initializePageLabels(pdfDocument);\n    this._initializeMetadata(pdfDocument);\n  },\n  async _scriptingDocProperties(pdfDocument) {\n    if (!this.documentInfo) {\n      await new Promise(resolve => {\n        this.eventBus._on(\"metadataloaded\", resolve, {\n          once: true\n        });\n      });\n      if (pdfDocument !== this.pdfDocument) {\n        return null;\n      }\n    }\n    if (!this._contentLength) {\n      await new Promise(resolve => {\n        this.eventBus._on(\"documentloaded\", resolve, {\n          once: true\n        });\n      });\n      if (pdfDocument !== this.pdfDocument) {\n        return null;\n      }\n    }\n    return {\n      ...this.documentInfo,\n      baseURL: this.baseUrl,\n      filesize: this._contentLength,\n      filename: this._docFilename,\n      metadata: this.metadata?.getRaw(),\n      authors: this.metadata?.get(\"dc:creator\"),\n      numPages: this.pagesCount,\n      URL: this.url\n    };\n  },\n  async _initializeAutoPrint(pdfDocument, openActionPromise) {\n    const [openAction, jsActions] = await Promise.all([openActionPromise, this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions()]);\n    if (pdfDocument !== this.pdfDocument) {\n      return;\n    }\n    let triggerAutoPrint = openAction?.action === \"Print\";\n    if (jsActions) {\n      console.warn(\"Warning: JavaScript support is not enabled\");\n      for (const name in jsActions) {\n        if (triggerAutoPrint) {\n          break;\n        }\n        switch (name) {\n          case \"WillClose\":\n          case \"WillSave\":\n          case \"DidSave\":\n          case \"WillPrint\":\n          case \"DidPrint\":\n            continue;\n        }\n        triggerAutoPrint = jsActions[name].some(js => AutoPrintRegExp.test(js));\n      }\n    }\n    if (triggerAutoPrint) {\n      this.triggerPrinting();\n    }\n  },\n  async _initializeMetadata(pdfDocument) {\n    const {\n      info,\n      metadata,\n      contentDispositionFilename,\n      contentLength\n    } = await pdfDocument.getMetadata();\n    if (pdfDocument !== this.pdfDocument) {\n      return;\n    }\n    this.documentInfo = info;\n    this.metadata = metadata;\n    this._contentDispositionFilename ??= contentDispositionFilename;\n    this._contentLength ??= contentLength;\n    // console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(metadata?.get(\"pdf:producer\") || info.Producer || \"-\").trim()} / ` + `${(metadata?.get(\"xmp:creatortool\") || info.Creator || \"-\").trim()}` + `] (PDF.js: ${version || \"?\"} [${build || \"?\"}])`);\n    const pdfTitle = this._docTitle;\n    if (pdfTitle) {\n      this.setTitle(`${pdfTitle} - ${this._contentDispositionFilename || this._title}`);\n    } else if (this._contentDispositionFilename) {\n      this.setTitle(this._contentDispositionFilename);\n    }\n    if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) {\n      if (pdfDocument.loadingParams.enableXfa) {\n        console.warn(\"Warning: XFA Foreground documents are not supported\");\n      } else {\n        console.warn(\"Warning: XFA support is not enabled\");\n      }\n    } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) {\n      console.warn(\"Warning: Interactive form support is not enabled\");\n    }\n    if (info.IsSignaturesPresent) {\n      console.warn(\"Warning: Digital signatures validation is not supported\");\n    }\n    this.eventBus.dispatch(\"metadataloaded\", {\n      source: this\n    });\n  },\n  async _initializePageLabels(pdfDocument) {\n    const labels = await pdfDocument.getPageLabels();\n    if (pdfDocument !== this.pdfDocument) {\n      return;\n    }\n    if (!labels || AppOptions.get(\"disablePageLabels\")) {\n      return;\n    }\n    const numLabels = labels.length;\n    let standardLabels = 0,\n      emptyLabels = 0;\n    for (let i = 0; i < numLabels; i++) {\n      const label = labels[i];\n      if (label === (i + 1).toString()) {\n        standardLabels++;\n      } else if (label === \"\") {\n        emptyLabels++;\n      } else {\n        break;\n      }\n    }\n    if (standardLabels >= numLabels || emptyLabels >= numLabels) {\n      return;\n    }\n    const {\n      pdfViewer,\n      pdfThumbnailViewer,\n      toolbar\n    } = this;\n    pdfViewer.setPageLabels(labels);\n    pdfThumbnailViewer?.setPageLabels(labels);\n    toolbar?.setPagesCount(numLabels, true);\n    toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);\n  },\n  _initializePdfHistory({\n    fingerprint,\n    viewOnLoad,\n    initialDest = null\n  }) {\n    if (!this.pdfHistory) {\n      return;\n    }\n    this.pdfHistory.initialize({\n      fingerprint,\n      resetHistory: viewOnLoad === ViewOnLoad.INITIAL,\n      updateUrl: AppOptions.get(\"historyUpdateUrl\")\n    });\n    if (this.pdfHistory.initialBookmark) {\n      this.initialBookmark = this.pdfHistory.initialBookmark;\n      this.initialRotation = this.pdfHistory.initialRotation;\n    }\n    if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) {\n      this.initialBookmark = JSON.stringify(initialDest);\n      this.pdfHistory.push({\n        explicitDest: initialDest,\n        pageNumber: null\n      });\n    }\n  },\n  _initializeAnnotationStorageCallbacks(pdfDocument) {\n    if (pdfDocument !== this.pdfDocument) {\n      return;\n    }\n    const {\n      annotationStorage\n    } = pdfDocument;\n    annotationStorage.onSetModified = () => {\n      window.addEventListener(\"beforeunload\", beforeUnload);\n      this._annotationStorageModified = true;\n    };\n    annotationStorage.onResetModified = () => {\n      window.removeEventListener(\"beforeunload\", beforeUnload);\n      delete this._annotationStorageModified;\n    };\n    annotationStorage.onAnnotationEditor = typeStr => {\n      this._hasAnnotationEditors = !!typeStr;\n      this.setTitle();\n    };\n  },\n  setInitialView(storedHash, {\n    rotation,\n    sidebarView,\n    scrollMode,\n    spreadMode\n  } = {}) {\n    const setRotation = angle => {\n      if (isValidRotation(angle)) {\n        this.pdfViewer.pagesRotation = angle;\n      }\n    };\n    const setViewerModes = (scroll, spread) => {\n      if (isValidScrollMode(scroll)) {\n        this.pdfViewer.scrollMode = scroll;\n      }\n      if (isValidSpreadMode(spread)) {\n        this.pdfViewer.spreadMode = spread;\n      }\n    };\n    this.isInitialViewSet = true;\n    this.pdfSidebar?.setInitialView(sidebarView);\n    setViewerModes(scrollMode, spreadMode);\n    if (this.initialBookmark) {\n      // setRotation(this.initialRotation);\n      delete this.initialRotation;\n      // this.pdfLinkService.setHash(this.initialBookmark);\n      this.initialBookmark = null;\n    } else if (storedHash) {\n      setRotation(rotation);\n      this.pdfLinkService.setHash(storedHash);\n    }\n    this.toolbar?.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel);\n    this.secondaryToolbar?.setPageNumber(this.pdfViewer.currentPageNumber);\n    if (!this.pdfViewer.currentScaleValue) {\n      this.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE;\n    }\n  },\n  _cleanup() {\n    if (!this.pdfDocument) {\n      return;\n    }\n    this.pdfViewer.cleanup();\n    this.pdfThumbnailViewer?.cleanup();\n    this.pdfDocument.cleanup(AppOptions.get(\"fontExtraProperties\"));\n  },\n  forceRendering() {\n    this.pdfRenderingQueue.printing = !!this.printService;\n    this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar?.visibleView === SidebarView.THUMBS;\n    this.pdfRenderingQueue.renderHighestPriority();\n  },\n  beforePrint() {\n    this._printAnnotationStoragePromise = this.pdfScriptingManager.dispatchWillPrint().catch(() => {}).then(() => this.pdfDocument?.annotationStorage.print);\n    if (this.printService) {\n      return;\n    }\n    if (!this.supportsPrinting || !this.pdfViewer.printingAllowed) {\n      this._otherError(\"pdfjs-printing-not-supported\");\n      return;\n    }\n    if (!this.pdfViewer.pageViewsReady) {\n      this.l10n.get(\"pdfjs-printing-not-ready\").then(msg => {\n        window.alert(msg);\n      });\n      return;\n    }\n    this.printService = PDFPrintServiceFactory.createPrintService({\n      pdfDocument: this.pdfDocument,\n      pagesOverview: this.pdfViewer.getPagesOverview(),\n      printContainer: this.appConfig.printContainer,\n      printResolution: AppOptions.get(\"printResolution\"),\n      printAnnotationStoragePromise: this._printAnnotationStoragePromise\n    });\n    this.forceRendering();\n    this.setTitle();\n    this.printService.layout();\n    if (this._hasAnnotationEditors) {\n      this.externalServices.reportTelemetry({\n        type: \"editing\",\n        data: {\n          type: \"print\",\n          stats: this.pdfDocument?.annotationStorage.editorStats\n        }\n      });\n    }\n  },\n  afterPrint() {\n    if (this._printAnnotationStoragePromise) {\n      this._printAnnotationStoragePromise.then(() => {\n        this.pdfScriptingManager.dispatchDidPrint();\n      });\n      this._printAnnotationStoragePromise = null;\n    }\n    if (this.printService) {\n      this.printService.destroy();\n      this.printService = null;\n      this.pdfDocument?.annotationStorage.resetModified();\n    }\n    this.forceRendering();\n    this.setTitle();\n  },\n  rotatePages(delta) {\n    this.pdfViewer.pagesRotation += delta;\n  },\n  requestPresentationMode() {\n    this.pdfPresentationMode?.request();\n  },\n  async triggerPrinting() {\n    if (this.supportsPrinting && (await this._printPermissionPromise)) {\n      window.print();\n    }\n  },\n  bindEvents() {\n    if (this._eventBusAbortController) {\n      return;\n    }\n    const ac = this._eventBusAbortController = new AbortController();\n    const opts = {\n      signal: ac.signal\n    };\n    const {\n      eventBus,\n      externalServices,\n      pdfDocumentProperties,\n      pdfViewer,\n      preferences\n    } = this;\n    eventBus._on(\"resize\", onResize.bind(this), opts);\n    eventBus._on(\"hashchange\", onHashchange.bind(this), opts);\n    eventBus._on(\"beforeprint\", this.beforePrint.bind(this), opts);\n    eventBus._on(\"afterprint\", this.afterPrint.bind(this), opts);\n    eventBus._on(\"pagerender\", onPageRender.bind(this), opts);\n    eventBus._on(\"pagerendered\", onPageRendered.bind(this), opts);\n    eventBus._on(\"updateviewarea\", onUpdateViewarea.bind(this), opts);\n    eventBus._on(\"pagechanging\", onPageChanging.bind(this), opts);\n    eventBus._on(\"scalechanging\", onScaleChanging.bind(this), opts);\n    eventBus._on(\"rotationchanging\", onRotationChanging.bind(this), opts);\n    eventBus._on(\"sidebarviewchanged\", onSidebarViewChanged.bind(this), opts);\n    eventBus._on(\"pagemode\", onPageMode.bind(this), opts);\n    eventBus._on(\"namedaction\", onNamedAction.bind(this), opts);\n    eventBus._on(\"presentationmodechanged\", evt => pdfViewer.presentationModeState = evt.state, opts);\n    eventBus._on(\"presentationmode\", this.requestPresentationMode.bind(this), opts);\n    eventBus._on(\"switchannotationeditormode\", evt => pdfViewer.annotationEditorMode = evt, opts);\n    // eventBus._on(\"print\", this.triggerPrinting.bind(this), opts);\n    // eventBus._on(\"download\", this.downloadOrSave.bind(this), opts);\n    eventBus._on(\"firstpage\", () => this.page = 1, opts);\n    eventBus._on(\"lastpage\", () => this.page = this.pagesCount, opts);\n    eventBus._on(\"nextpage\", () => pdfViewer.nextPage(), opts);\n    eventBus._on(\"previouspage\", () => pdfViewer.previousPage(), opts);\n    eventBus._on(\"zoomin\", this.zoomIn.bind(this), opts);\n    eventBus._on(\"zoomout\", this.zoomOut.bind(this), opts);\n    eventBus._on(\"zoomreset\", this.zoomReset.bind(this), opts);\n    eventBus._on(\"pagenumberchanged\", onPageNumberChanged.bind(this), opts);\n    eventBus._on(\"scalechanged\", evt => pdfViewer.currentScaleValue = evt.value, opts);\n    eventBus._on(\"rotatecw\", this.rotatePages.bind(this, 90), opts);\n    eventBus._on(\"rotateccw\", this.rotatePages.bind(this, -90), opts);\n    eventBus._on(\"optionalcontentconfig\", evt => pdfViewer.optionalContentConfigPromise = evt.promise, opts);\n    eventBus._on(\"switchscrollmode\", evt => pdfViewer.scrollMode = evt.mode, opts);\n    eventBus._on(\"scrollmodechanged\", onViewerModesChanged.bind(this, \"scrollMode\"), opts);\n    eventBus._on(\"switchspreadmode\", evt => pdfViewer.spreadMode = evt.mode, opts);\n    eventBus._on(\"spreadmodechanged\", onViewerModesChanged.bind(this, \"spreadMode\"), opts);\n    eventBus._on(\"imagealttextsettings\", onImageAltTextSettings.bind(this), opts);\n    eventBus._on(\"documentproperties\", () => pdfDocumentProperties?.open(), opts);\n    eventBus._on(\"findfromurlhash\", onFindFromUrlHash.bind(this), opts);\n    eventBus._on(\"updatefindmatchescount\", onUpdateFindMatchesCount.bind(this), opts);\n    eventBus._on(\"updatefindcontrolstate\", onUpdateFindControlState.bind(this), opts);\n    eventBus._on(\"fileinputchange\", onFileInputChange.bind(this), opts);\n    // eventBus._on(\"openfile\", onOpenFile.bind(this), opts);\n  },\n  bindWindowEvents() {\n    if (this._windowAbortController) {\n      return;\n    }\n    this._windowAbortController = new AbortController();\n    const {\n      eventBus,\n      appConfig: {\n        mainContainer\n      },\n      pdfViewer,\n      _windowAbortController: {\n        signal\n      }\n    } = this;\n    this._touchManager = new TouchManager({\n      container: window,\n      isPinchingDisabled: () => pdfViewer.isInPresentationMode,\n      isPinchingStopped: () => this.overlayManager?.active,\n      onPinching: this.touchPinchCallback.bind(this),\n      onPinchEnd: this.touchPinchEndCallback.bind(this),\n      signal\n    });\n    function addWindowResolutionChange(evt = null) {\n      if (evt) {\n        pdfViewer.refresh();\n      }\n      const mediaQueryList = window.matchMedia(`(resolution: ${OutputScale.pixelRatio}dppx)`);\n      mediaQueryList.addEventListener(\"change\", addWindowResolutionChange, {\n        once: true,\n        signal\n      });\n    }\n    addWindowResolutionChange();\n    window.addEventListener(\"wheel\", onWheel.bind(this), {\n      passive: false,\n      signal\n    });\n    window.addEventListener(\"click\", onClick.bind(this), {\n      signal\n    });\n    window.addEventListener(\"keydown\", onKeyDown.bind(this), {\n      signal\n    });\n    window.addEventListener(\"keyup\", onKeyUp.bind(this), {\n      signal\n    });\n    window.addEventListener(\"resize\", () => eventBus.dispatch(\"resize\", {\n      source: window\n    }), {\n      signal\n    });\n    window.addEventListener(\"hashchange\", () => {\n      eventBus.dispatch(\"hashchange\", {\n        source: window,\n        hash: document.location.hash.substring(1)\n      });\n    }, {\n      signal\n    });\n    window.addEventListener(\"beforeprint\", () => eventBus.dispatch(\"beforeprint\", {\n      source: window\n    }), {\n      signal\n    });\n    window.addEventListener(\"afterprint\", () => eventBus.dispatch(\"afterprint\", {\n      source: window\n    }), {\n      signal\n    });\n    window.addEventListener(\"updatefromsandbox\", evt => {\n      eventBus.dispatch(\"updatefromsandbox\", {\n        source: window,\n        detail: evt.detail\n      });\n    }, {\n      signal\n    });\n    if (!(\"onscrollend\" in document.documentElement)) {\n      return;\n    }\n    ({\n      scrollTop: this._lastScrollTop,\n      scrollLeft: this._lastScrollLeft\n    } = mainContainer);\n    let scrollendTimeoutID, scrollAbortController;\n    const scrollend = () => {\n      ({\n        scrollTop: this._lastScrollTop,\n        scrollLeft: this._lastScrollLeft\n      } = mainContainer);\n      clearTimeout(scrollendTimeoutID);\n      if (this._isScrolling) {\n        scrollAbortController.abort();\n        scrollAbortController = null;\n        this._isScrolling = false;\n      }\n    };\n    const scroll = () => {\n      if (this._isCtrlKeyDown) {\n        return;\n      }\n      if (this._lastScrollTop === mainContainer.scrollTop && this._lastScrollLeft === mainContainer.scrollLeft) {\n        return;\n      }\n      if (!this._isScrolling) {\n        scrollAbortController = new AbortController();\n        const abortSignal = AbortSignal.any([scrollAbortController.signal, signal]);\n        mainContainer.addEventListener(\"scrollend\", scrollend, {\n          signal: abortSignal\n        });\n        mainContainer.addEventListener(\"blur\", scrollend, {\n          signal: abortSignal\n        });\n        this._isScrolling = true;\n      }\n      clearTimeout(scrollendTimeoutID);\n      scrollendTimeoutID = setTimeout(scrollend, 100);\n    };\n    mainContainer.addEventListener(\"scroll\", scroll, {\n      passive: true,\n      signal\n    });\n  },\n  unbindEvents() {\n    this._eventBusAbortController?.abort();\n    this._eventBusAbortController = null;\n  },\n  unbindWindowEvents() {\n    this._windowAbortController?.abort();\n    this._windowAbortController = null;\n    this._touchManager = null;\n  },\n  async testingClose() {\n    this.unbindEvents();\n    this.unbindWindowEvents();\n    this._globalAbortController?.abort();\n    this._globalAbortController = null;\n    this.findBar?.close();\n    await Promise.all([this.l10n?.destroy(), this.close()]);\n  },\n  _accumulateTicks(ticks, prop) {\n    if (this[prop] > 0 && ticks < 0 || this[prop] < 0 && ticks > 0) {\n      this[prop] = 0;\n    }\n    this[prop] += ticks;\n    const wholeTicks = Math.trunc(this[prop]);\n    this[prop] -= wholeTicks;\n    return wholeTicks;\n  },\n  _accumulateFactor(previousScale, factor, prop) {\n    if (factor === 1) {\n      return 1;\n    }\n    if (this[prop] > 1 && factor < 1 || this[prop] < 1 && factor > 1) {\n      this[prop] = 1;\n    }\n    const newFactor = Math.floor(previousScale * factor * this[prop] * 100) / (100 * previousScale);\n    this[prop] = factor / newFactor;\n    return newFactor;\n  },\n  _unblockDocumentLoadEvent() {\n    document.blockUnblockOnload?.(false);\n    this._unblockDocumentLoadEvent = () => {};\n  },\n  get scriptingReady() {\n    return this.pdfScriptingManager.ready;\n  }\n};\ninitCom(PDFViewerApplication);\n{\n  PDFPrintServiceFactory.initGlobals(PDFViewerApplication);\n}\n{\n  const HOSTED_VIEWER_ORIGINS = new Set([\"null\", \"http://mozilla.github.io\", \"https://mozilla.github.io\"]);\n  var validateFileURL = function (file) {\n    if (!file) {\n      return;\n    }\n    const viewerOrigin = URL.parse(window.location)?.origin || \"null\";\n    if (HOSTED_VIEWER_ORIGINS.has(viewerOrigin)) {\n      return;\n    }\n    const fileOrigin = URL.parse(file, window.location)?.origin;\n    if (fileOrigin === viewerOrigin) {\n      return;\n    }\n    const ex = new Error(\"file origin does not match viewer's\");\n    PDFViewerApplication._documentError(\"pdfjs-loading-error\", {\n      message: ex.message\n    });\n    throw ex;\n  };\n  var onFileInputChange = function (evt) {\n    if (this.pdfViewer?.isInPresentationMode) {\n      return;\n    }\n    const file = evt.fileInput.files[0];\n    this.open({\n      url: URL.createObjectURL(file),\n      originalUrl: encodeURIComponent(file.name)\n    });\n  };\n  var onOpenFile = function (evt) {\n    this._openFileInput?.click();\n  };\n}\nfunction onPageRender({\n  pageNumber\n}) {\n  if (pageNumber === this.page) {\n    this.toolbar?.updateLoadingIndicatorState(true);\n  }\n}\nfunction onPageRendered({\n  pageNumber,\n  isDetailView,\n  error\n}) {\n  if (pageNumber === this.page) {\n    this.toolbar?.updateLoadingIndicatorState(false);\n  }\n  if (!isDetailView && this.pdfSidebar?.visibleView === SidebarView.THUMBS) {\n    const pageView = this.pdfViewer.getPageView(pageNumber - 1);\n    const thumbnailView = this.pdfThumbnailViewer?.getThumbnail(pageNumber - 1);\n    if (pageView) {\n      thumbnailView?.setImage(pageView);\n    }\n  }\n  if (error) {\n    this._otherError(\"pdfjs-rendering-error\", error);\n  }\n}\nfunction onPageMode({\n  mode\n}) {\n  let view;\n  switch (mode) {\n    case \"thumbs\":\n      view = SidebarView.THUMBS;\n      break;\n    case \"bookmarks\":\n    case \"outline\":\n      view = SidebarView.OUTLINE;\n      break;\n    case \"attachments\":\n      view = SidebarView.ATTACHMENTS;\n      break;\n    case \"layers\":\n      view = SidebarView.LAYERS;\n      break;\n    case \"none\":\n      view = SidebarView.NONE;\n      break;\n    default:\n      console.error('Invalid \"pagemode\" hash parameter: ' + mode);\n      return;\n  }\n  this.pdfSidebar?.switchView(view, true);\n}\nfunction onNamedAction(evt) {\n  switch (evt.action) {\n    case \"GoToPage\":\n      this.appConfig.toolbar?.pageNumber.select();\n      break;\n    case \"Find\":\n      if (!this.supportsIntegratedFind) {\n        this.findBar?.toggle();\n      }\n      break;\n    case \"Print\":\n      this.triggerPrinting();\n      break;\n    case \"SaveAs\":\n      this.downloadOrSave();\n      break;\n  }\n}\nfunction onSidebarViewChanged({\n  view\n}) {\n  this.pdfRenderingQueue.isThumbnailViewEnabled = view === SidebarView.THUMBS;\n  if (this.isInitialViewSet) {\n    this.store?.set(\"sidebarView\", view).catch(() => {});\n  }\n}\nfunction onUpdateViewarea({\n  location\n}) {\n  if (this.isInitialViewSet) {\n    this.store?.setMultiple({\n      page: location.pageNumber,\n      zoom: location.scale,\n      scrollLeft: location.left,\n      scrollTop: location.top,\n      rotation: location.rotation\n    }).catch(() => {});\n  }\n  if (this.appConfig.secondaryToolbar) {\n    this.appConfig.secondaryToolbar.viewBookmarkButton.href = this.pdfLinkService.getAnchorUrl(location.pdfOpenParams);\n  }\n}\nfunction onViewerModesChanged(name, evt) {\n  if (this.isInitialViewSet && !this.pdfViewer.isInPresentationMode) {\n    this.store?.set(name, evt.mode).catch(() => {});\n  }\n}\nfunction onResize() {\n  const {\n    pdfDocument,\n    pdfViewer,\n    pdfRenderingQueue\n  } = this;\n  if (pdfRenderingQueue.printing && window.matchMedia(\"print\").matches) {\n    return;\n  }\n  if (!pdfDocument) {\n    return;\n  }\n  const currentScaleValue = pdfViewer.currentScaleValue;\n  if (currentScaleValue === \"auto\" || currentScaleValue === \"page-fit\" || currentScaleValue === \"page-width\") {\n    pdfViewer.currentScaleValue = currentScaleValue;\n  }\n  pdfViewer.update();\n}\nfunction onHashchange(evt) {\n  const hash = evt.hash;\n  if (!hash) {\n    return;\n  }\n  if (!this.isInitialViewSet) {\n    this.initialBookmark = hash;\n  } else if (!this.pdfHistory?.popStateInProgress) {\n    this.pdfLinkService.setHash(hash);\n  }\n}\nfunction onPageNumberChanged(evt) {\n  const {\n    pdfViewer\n  } = this;\n  if (evt.value !== \"\") {\n    this.pdfLinkService.goToPage(evt.value);\n  }\n  if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) {\n    this.toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);\n  }\n}\nfunction onImageAltTextSettings() {\n  this.imageAltTextSettings?.open({\n    enableGuessAltText: AppOptions.get(\"enableGuessAltText\"),\n    enableNewAltTextWhenAddingImage: AppOptions.get(\"enableNewAltTextWhenAddingImage\")\n  });\n}\nfunction onFindFromUrlHash(evt) {\n  this.eventBus.dispatch(\"find\", {\n    source: evt.source,\n    type: \"\",\n    query: evt.query,\n    caseSensitive: false,\n    entireWord: false,\n    highlightAll: true,\n    findPrevious: false,\n    matchDiacritics: true\n  });\n}\nfunction onUpdateFindMatchesCount({\n  matchesCount\n}) {\n  if (this.supportsIntegratedFind) {\n    this.externalServices.updateFindMatchesCount(matchesCount);\n  } else {\n    this.findBar?.updateResultsCount(matchesCount);\n  }\n}\nfunction onUpdateFindControlState({\n  state,\n  previous,\n  entireWord,\n  matchesCount,\n  rawQuery\n}) {\n  if (this.supportsIntegratedFind) {\n    this.externalServices.updateFindControlState({\n      result: state,\n      findPrevious: previous,\n      entireWord,\n      matchesCount,\n      rawQuery\n    });\n  } else {\n    this.findBar?.updateUIState(state, previous, matchesCount);\n  }\n}\nfunction onScaleChanging(evt) {\n  this.toolbar?.setPageScale(evt.presetValue, evt.scale);\n  this.pdfViewer.update();\n}\nfunction onRotationChanging(evt) {\n  if (this.pdfThumbnailViewer) {\n    this.pdfThumbnailViewer.pagesRotation = evt.pagesRotation;\n  }\n  this.forceRendering();\n  this.pdfViewer.currentPageNumber = evt.pageNumber;\n}\nfunction onPageChanging({\n  pageNumber,\n  pageLabel\n}) {\n  this.toolbar?.setPageNumber(pageNumber, pageLabel);\n  this.secondaryToolbar?.setPageNumber(pageNumber);\n  if (this.pdfSidebar?.visibleView === SidebarView.THUMBS) {\n    this.pdfThumbnailViewer?.scrollThumbnailIntoView(pageNumber);\n  }\n  const currentPage = this.pdfViewer.getPageView(pageNumber - 1);\n  this.toolbar?.updateLoadingIndicatorState(currentPage?.renderingState === RenderingStates.RUNNING);\n}\nfunction onWheel(evt) {\n  const {\n    pdfViewer,\n    supportsMouseWheelZoomCtrlKey,\n    supportsMouseWheelZoomMetaKey,\n    supportsPinchToZoom\n  } = this;\n  if (pdfViewer.isInPresentationMode) {\n    return;\n  }\n  const deltaMode = evt.deltaMode;\n  let scaleFactor = Math.exp(-evt.deltaY / 100);\n  const isBuiltInMac = false;\n  const isPinchToZoom = evt.ctrlKey && !this._isCtrlKeyDown && deltaMode === WheelEvent.DOM_DELTA_PIXEL && evt.deltaX === 0 && (Math.abs(scaleFactor - 1) < 0.05 || isBuiltInMac) && evt.deltaZ === 0;\n  const origin = [evt.clientX, evt.clientY];\n  if (isPinchToZoom || evt.ctrlKey && supportsMouseWheelZoomCtrlKey || evt.metaKey && supportsMouseWheelZoomMetaKey) {\n    evt.preventDefault();\n    if (this._isScrolling || document.visibilityState === \"hidden\" || this.overlayManager.active) {\n      return;\n    }\n    if (isPinchToZoom && supportsPinchToZoom) {\n      scaleFactor = this._accumulateFactor(pdfViewer.currentScale, scaleFactor, \"_wheelUnusedFactor\");\n      this.updateZoom(null, scaleFactor, origin);\n    } else {\n      const delta = normalizeWheelEventDirection(evt);\n      let ticks = 0;\n      if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n        ticks = Math.abs(delta) >= 1 ? Math.sign(delta) : this._accumulateTicks(delta, \"_wheelUnusedTicks\");\n      } else {\n        const PIXELS_PER_LINE_SCALE = 30;\n        ticks = this._accumulateTicks(delta / PIXELS_PER_LINE_SCALE, \"_wheelUnusedTicks\");\n      }\n      this.updateZoom(ticks, null, origin);\n    }\n  }\n}\nfunction closeSecondaryToolbar({\n  target\n}) {\n  if (!this.secondaryToolbar?.isOpen) {\n    return;\n  }\n  const {\n    toolbar,\n    secondaryToolbar\n  } = this.appConfig;\n  if (this.pdfViewer.containsElement(target) || toolbar?.container.contains(target) && !secondaryToolbar?.toolbar.contains(target) && !secondaryToolbar?.toggleButton.contains(target)) {\n    this.secondaryToolbar.close();\n  }\n}\nfunction closeEditorUndoBar(evt) {\n  if (!this.editorUndoBar?.isOpen) {\n    return;\n  }\n  if (this.appConfig.secondaryToolbar?.toolbar.contains(evt.target)) {\n    this.editorUndoBar.hide();\n  }\n}\nfunction onClick(evt) {\n  closeSecondaryToolbar.call(this, evt);\n  closeEditorUndoBar.call(this, evt);\n}\nfunction onKeyUp(evt) {\n  if (evt.key === \"Control\") {\n    this._isCtrlKeyDown = false;\n  }\n}\nfunction onKeyDown(evt) {\n  this._isCtrlKeyDown = evt.key === \"Control\";\n  if (this.editorUndoBar?.isOpen && evt.keyCode !== 9 && evt.keyCode !== 16 && !((evt.keyCode === 13 || evt.keyCode === 32) && getActiveOrFocusedElement() === this.appConfig.editorUndoBar.undoButton)) {\n    this.editorUndoBar.hide();\n  }\n  if (this.overlayManager.active) {\n    return;\n  }\n  const {\n    eventBus,\n    pdfViewer\n  } = this;\n  const isViewerInPresentationMode = pdfViewer.isInPresentationMode;\n  let handled = false,\n    ensureViewerFocused = false;\n  const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0);\n  if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) {\n    switch (evt.keyCode) {\n      case 70:\n        if (!this.supportsIntegratedFind && !evt.shiftKey) {\n          this.findBar?.open();\n          handled = true;\n        }\n        break;\n      case 71:\n        if (!this.supportsIntegratedFind) {\n          const {\n            state\n          } = this.findController;\n          if (state) {\n            const newState = {\n              source: window,\n              type: \"again\",\n              findPrevious: cmd === 5 || cmd === 12\n            };\n            eventBus.dispatch(\"find\", {\n              ...state,\n              ...newState\n            });\n          }\n          handled = true;\n        }\n        break;\n      case 61:\n      case 107:\n      case 187:\n      case 171:\n        this.zoomIn();\n        handled = true;\n        break;\n      case 173:\n      case 109:\n      case 189:\n        this.zoomOut();\n        handled = true;\n        break;\n      case 48:\n      case 96:\n        if (!isViewerInPresentationMode) {\n          setTimeout(() => {\n            this.zoomReset();\n          });\n          handled = false;\n        }\n        break;\n      case 38:\n        if (isViewerInPresentationMode || this.page > 1) {\n          this.page = 1;\n          handled = true;\n          ensureViewerFocused = true;\n        }\n        break;\n      case 40:\n        if (isViewerInPresentationMode || this.page < this.pagesCount) {\n          this.page = this.pagesCount;\n          handled = true;\n          ensureViewerFocused = true;\n        }\n        break;\n    }\n  }\n  if (cmd === 1 || cmd === 8) {\n    switch (evt.keyCode) {\n      case 83:\n        eventBus.dispatch(\"download\", {\n          source: window\n        });\n        handled = true;\n        break;\n      case 79:\n        {\n          eventBus.dispatch(\"openfile\", {\n            source: window\n          });\n          handled = true;\n        }\n        break;\n    }\n  }\n  if (cmd === 3 || cmd === 10) {\n    switch (evt.keyCode) {\n      case 80:\n        this.requestPresentationMode();\n        handled = true;\n        this.externalServices.reportTelemetry({\n          type: \"buttons\",\n          data: {\n            id: \"presentationModeKeyboard\"\n          }\n        });\n        break;\n      case 71:\n        if (this.appConfig.toolbar) {\n          this.appConfig.toolbar.pageNumber.select();\n          handled = true;\n        }\n        break;\n    }\n  }\n  if (handled) {\n    if (ensureViewerFocused && !isViewerInPresentationMode) {\n      pdfViewer.focus();\n    }\n    evt.preventDefault();\n    return;\n  }\n  const curElement = getActiveOrFocusedElement();\n  const curElementTagName = curElement?.tagName.toUpperCase();\n  if (curElementTagName === \"INPUT\" || curElementTagName === \"TEXTAREA\" || curElementTagName === \"SELECT\" || curElementTagName === \"BUTTON\" && evt.keyCode === 32 || curElement?.isContentEditable) {\n    if (evt.keyCode !== 27) {\n      return;\n    }\n  }\n  if (cmd === 0) {\n    let turnPage = 0,\n      turnOnlyIfPageFit = false;\n    switch (evt.keyCode) {\n      case 38:\n        if (this.supportsCaretBrowsingMode) {\n          this.moveCaret(true, false);\n          handled = true;\n          break;\n        }\n      case 33:\n        if (pdfViewer.isVerticalScrollbarEnabled) {\n          turnOnlyIfPageFit = true;\n        }\n        turnPage = -1;\n        break;\n      case 8:\n        if (!isViewerInPresentationMode) {\n          turnOnlyIfPageFit = true;\n        }\n        turnPage = -1;\n        break;\n      case 37:\n        if (this.supportsCaretBrowsingMode) {\n          return;\n        }\n        if (pdfViewer.isHorizontalScrollbarEnabled) {\n          turnOnlyIfPageFit = true;\n        }\n      case 75:\n      case 80:\n        turnPage = -1;\n        break;\n      case 27:\n        if (this.secondaryToolbar?.isOpen) {\n          this.secondaryToolbar.close();\n          handled = true;\n        }\n        if (!this.supportsIntegratedFind && this.findBar?.opened) {\n          this.findBar.close();\n          handled = true;\n        }\n        break;\n      case 40:\n        if (this.supportsCaretBrowsingMode) {\n          this.moveCaret(false, false);\n          handled = true;\n          break;\n        }\n      case 34:\n        if (pdfViewer.isVerticalScrollbarEnabled) {\n          turnOnlyIfPageFit = true;\n        }\n        turnPage = 1;\n        break;\n      case 32:\n        if (!isViewerInPresentationMode) {\n          turnOnlyIfPageFit = true;\n        }\n        turnPage = 1;\n        break;\n      case 39:\n        if (this.supportsCaretBrowsingMode) {\n          return;\n        }\n        if (pdfViewer.isHorizontalScrollbarEnabled) {\n          turnOnlyIfPageFit = true;\n        }\n      case 74:\n      case 78:\n        turnPage = 1;\n        break;\n      case 36:\n        if (isViewerInPresentationMode || this.page > 1) {\n          this.page = 1;\n          handled = true;\n          ensureViewerFocused = true;\n        }\n        break;\n      case 35:\n        if (isViewerInPresentationMode || this.page < this.pagesCount) {\n          this.page = this.pagesCount;\n          handled = true;\n          ensureViewerFocused = true;\n        }\n        break;\n      case 83:\n        this.pdfCursorTools?.switchTool(CursorTool.SELECT);\n        break;\n      case 72:\n        this.pdfCursorTools?.switchTool(CursorTool.HAND);\n        break;\n      case 82:\n        this.rotatePages(90);\n        break;\n      case 115:\n        this.pdfSidebar?.toggle();\n        break;\n    }\n    if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === \"page-fit\")) {\n      if (turnPage > 0) {\n        pdfViewer.nextPage();\n      } else {\n        pdfViewer.previousPage();\n      }\n      handled = true;\n    }\n  }\n  if (cmd === 4) {\n    switch (evt.keyCode) {\n      case 32:\n        if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== \"page-fit\") {\n          break;\n        }\n        pdfViewer.previousPage();\n        handled = true;\n        break;\n      case 38:\n        this.moveCaret(true, true);\n        handled = true;\n        break;\n      case 40:\n        this.moveCaret(false, true);\n        handled = true;\n        break;\n      case 82:\n        this.rotatePages(-90);\n        break;\n    }\n  }\n  if (!handled && !isViewerInPresentationMode) {\n    if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== \"BUTTON\") {\n      ensureViewerFocused = true;\n    }\n  }\n  if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) {\n    pdfViewer.focus();\n  }\n  if (handled) {\n    evt.preventDefault();\n  }\n}\nfunction beforeUnload(evt) {\n  evt.preventDefault();\n  evt.returnValue = \"\";\n  return false;\n}\n\n;// ./web/viewer.js\n\n\n\n\nconst AppConstants = {\n  LinkTarget: LinkTarget,\n  RenderingStates: RenderingStates,\n  ScrollMode: ScrollMode,\n  SpreadMode: SpreadMode\n};\nwindow.PDFViewerApplication = PDFViewerApplication;\nwindow.PDFViewerApplicationConstants = AppConstants;\nwindow.PDFViewerApplicationOptions = AppOptions;\nfunction getViewerConfiguration() {\n  return {\n    appContainer: document.body,\n    principalContainer: document.getElementById(\"mainContainer\"),\n    mainContainer: document.getElementById(\"viewerContainer\"),\n    viewerContainer: document.getElementById(\"viewer\"),\n    viewerAlert: document.getElementById(\"viewer-alert\"),\n    toolbar: {\n      container: document.getElementById(\"toolbarContainer\"),\n      numPages: document.getElementById(\"numPages\"),\n      pageNumber: document.getElementById(\"pageNumber\"),\n      scaleSelect: document.getElementById(\"scaleSelect\"),\n      customScaleOption: document.getElementById(\"customScaleOption\"),\n      previous: document.getElementById(\"previous\"),\n      next: document.getElementById(\"next\"),\n      zoomIn: document.getElementById(\"zoomInButton\"),\n      zoomOut: document.getElementById(\"zoomOutButton\"),\n      print: document.getElementById(\"printButton\"),\n      editorCommentButton: document.getElementById(\"editorCommentButton\"),\n      editorCommentParamsToolbar: document.getElementById(\"editorCommentParamsToolbar\"),\n      editorFreeTextButton: document.getElementById(\"editorFreeTextButton\"),\n      editorFreeTextParamsToolbar: document.getElementById(\"editorFreeTextParamsToolbar\"),\n      editorHighlightButton: document.getElementById(\"editorHighlightButton\"),\n      editorHighlightParamsToolbar: document.getElementById(\"editorHighlightParamsToolbar\"),\n      editorHighlightColorPicker: document.getElementById(\"editorHighlightColorPicker\"),\n      editorInkButton: document.getElementById(\"editorInkButton\"),\n      editorInkParamsToolbar: document.getElementById(\"editorInkParamsToolbar\"),\n      editorStampButton: document.getElementById(\"editorStampButton\"),\n      editorStampParamsToolbar: document.getElementById(\"editorStampParamsToolbar\"),\n      editorSignatureButton: document.getElementById(\"editorSignatureButton\"),\n      editorSignatureParamsToolbar: document.getElementById(\"editorSignatureParamsToolbar\"),\n      download: document.getElementById(\"downloadButton\")\n    },\n    secondaryToolbar: {\n      toolbar: document.getElementById(\"secondaryToolbar\"),\n      toggleButton: document.getElementById(\"secondaryToolbarToggleButton\"),\n      presentationModeButton: document.getElementById(\"presentationMode\"),\n      openFileButton: document.getElementById(\"secondaryOpenFile\"),\n      printButton: document.getElementById(\"secondaryPrint\"),\n      downloadButton: document.getElementById(\"secondaryDownload\"),\n      viewBookmarkButton: document.getElementById(\"viewBookmark\"),\n      firstPageButton: document.getElementById(\"firstPage\"),\n      lastPageButton: document.getElementById(\"lastPage\"),\n      pageRotateCwButton: document.getElementById(\"pageRotateCw\"),\n      pageRotateCcwButton: document.getElementById(\"pageRotateCcw\"),\n      cursorSelectToolButton: document.getElementById(\"cursorSelectTool\"),\n      cursorHandToolButton: document.getElementById(\"cursorHandTool\"),\n      scrollPageButton: document.getElementById(\"scrollPage\"),\n      scrollVerticalButton: document.getElementById(\"scrollVertical\"),\n      scrollHorizontalButton: document.getElementById(\"scrollHorizontal\"),\n      scrollWrappedButton: document.getElementById(\"scrollWrapped\"),\n      spreadNoneButton: document.getElementById(\"spreadNone\"),\n      spreadOddButton: document.getElementById(\"spreadOdd\"),\n      spreadEvenButton: document.getElementById(\"spreadEven\"),\n      imageAltTextSettingsButton: document.getElementById(\"imageAltTextSettings\"),\n      imageAltTextSettingsSeparator: document.getElementById(\"imageAltTextSettingsSeparator\"),\n      documentPropertiesButton: document.getElementById(\"documentProperties\")\n    },\n    sidebar: {\n      outerContainer: document.getElementById(\"outerContainer\"),\n      sidebarContainer: document.getElementById(\"sidebarContainer\"),\n      toggleButton: document.getElementById(\"sidebarToggleButton\"),\n      resizer: document.getElementById(\"sidebarResizer\"),\n      thumbnailButton: document.getElementById(\"viewThumbnail\"),\n      outlineButton: document.getElementById(\"viewOutline\"),\n      attachmentsButton: document.getElementById(\"viewAttachments\"),\n      layersButton: document.getElementById(\"viewLayers\"),\n      thumbnailView: document.getElementById(\"thumbnailView\"),\n      outlineView: document.getElementById(\"outlineView\"),\n      attachmentsView: document.getElementById(\"attachmentsView\"),\n      layersView: document.getElementById(\"layersView\"),\n      currentOutlineItemButton: document.getElementById(\"currentOutlineItem\")\n    },\n    findBar: {\n      bar: document.getElementById(\"findbar\"),\n      toggleButton: document.getElementById(\"viewFindButton\"),\n      findField: document.getElementById(\"findInput\"),\n      highlightAllCheckbox: document.getElementById(\"findHighlightAll\"),\n      caseSensitiveCheckbox: document.getElementById(\"findMatchCase\"),\n      matchDiacriticsCheckbox: document.getElementById(\"findMatchDiacritics\"),\n      entireWordCheckbox: document.getElementById(\"findEntireWord\"),\n      findMsg: document.getElementById(\"findMsg\"),\n      findResultsCount: document.getElementById(\"findResultsCount\"),\n      findPreviousButton: document.getElementById(\"findPreviousButton\"),\n      findNextButton: document.getElementById(\"findNextButton\")\n    },\n    passwordOverlay: {\n      dialog: document.getElementById(\"passwordDialog\"),\n      label: document.getElementById(\"passwordText\"),\n      input: document.getElementById(\"password\"),\n      submitButton: document.getElementById(\"passwordSubmit\"),\n      cancelButton: document.getElementById(\"passwordCancel\")\n    },\n    documentProperties: {\n      dialog: document.getElementById(\"documentPropertiesDialog\"),\n      closeButton: document.getElementById(\"documentPropertiesClose\"),\n      fields: {\n        fileName: document.getElementById(\"fileNameField\"),\n        fileSize: document.getElementById(\"fileSizeField\"),\n        title: document.getElementById(\"titleField\"),\n        author: document.getElementById(\"authorField\"),\n        subject: document.getElementById(\"subjectField\"),\n        keywords: document.getElementById(\"keywordsField\"),\n        creationDate: document.getElementById(\"creationDateField\"),\n        modificationDate: document.getElementById(\"modificationDateField\"),\n        creator: document.getElementById(\"creatorField\"),\n        producer: document.getElementById(\"producerField\"),\n        version: document.getElementById(\"versionField\"),\n        pageCount: document.getElementById(\"pageCountField\"),\n        pageSize: document.getElementById(\"pageSizeField\"),\n        linearized: document.getElementById(\"linearizedField\")\n      }\n    },\n    altTextDialog: {\n      dialog: document.getElementById(\"altTextDialog\"),\n      optionDescription: document.getElementById(\"descriptionButton\"),\n      optionDecorative: document.getElementById(\"decorativeButton\"),\n      textarea: document.getElementById(\"descriptionTextarea\"),\n      cancelButton: document.getElementById(\"altTextCancel\"),\n      saveButton: document.getElementById(\"altTextSave\")\n    },\n    newAltTextDialog: {\n      dialog: document.getElementById(\"newAltTextDialog\"),\n      title: document.getElementById(\"newAltTextTitle\"),\n      descriptionContainer: document.getElementById(\"newAltTextDescriptionContainer\"),\n      textarea: document.getElementById(\"newAltTextDescriptionTextarea\"),\n      disclaimer: document.getElementById(\"newAltTextDisclaimer\"),\n      learnMore: document.getElementById(\"newAltTextLearnMore\"),\n      imagePreview: document.getElementById(\"newAltTextImagePreview\"),\n      createAutomatically: document.getElementById(\"newAltTextCreateAutomatically\"),\n      createAutomaticallyButton: document.getElementById(\"newAltTextCreateAutomaticallyButton\"),\n      downloadModel: document.getElementById(\"newAltTextDownloadModel\"),\n      downloadModelDescription: document.getElementById(\"newAltTextDownloadModelDescription\"),\n      error: document.getElementById(\"newAltTextError\"),\n      errorCloseButton: document.getElementById(\"newAltTextCloseButton\"),\n      cancelButton: document.getElementById(\"newAltTextCancel\"),\n      notNowButton: document.getElementById(\"newAltTextNotNow\"),\n      saveButton: document.getElementById(\"newAltTextSave\")\n    },\n    altTextSettingsDialog: {\n      dialog: document.getElementById(\"altTextSettingsDialog\"),\n      createModelButton: document.getElementById(\"createModelButton\"),\n      aiModelSettings: document.getElementById(\"aiModelSettings\"),\n      learnMore: document.getElementById(\"altTextSettingsLearnMore\"),\n      deleteModelButton: document.getElementById(\"deleteModelButton\"),\n      downloadModelButton: document.getElementById(\"downloadModelButton\"),\n      showAltTextDialogButton: document.getElementById(\"showAltTextDialogButton\"),\n      altTextSettingsCloseButton: document.getElementById(\"altTextSettingsCloseButton\"),\n      closeButton: document.getElementById(\"altTextSettingsCloseButton\")\n    },\n    addSignatureDialog: {\n      dialog: document.getElementById(\"addSignatureDialog\"),\n      panels: document.getElementById(\"addSignatureActionContainer\"),\n      typeButton: document.getElementById(\"addSignatureTypeButton\"),\n      typeInput: document.getElementById(\"addSignatureTypeInput\"),\n      drawButton: document.getElementById(\"addSignatureDrawButton\"),\n      drawSVG: document.getElementById(\"addSignatureDraw\"),\n      drawPlaceholder: document.getElementById(\"addSignatureDrawPlaceholder\"),\n      drawThickness: document.getElementById(\"addSignatureDrawThickness\"),\n      imageButton: document.getElementById(\"addSignatureImageButton\"),\n      imageSVG: document.getElementById(\"addSignatureImage\"),\n      imagePlaceholder: document.getElementById(\"addSignatureImagePlaceholder\"),\n      imagePicker: document.getElementById(\"addSignatureFilePicker\"),\n      imagePickerLink: document.getElementById(\"addSignatureImageBrowse\"),\n      description: document.getElementById(\"addSignatureDescription\"),\n      clearButton: document.getElementById(\"clearSignatureButton\"),\n      saveContainer: document.getElementById(\"addSignatureSaveContainer\"),\n      saveCheckbox: document.getElementById(\"addSignatureSaveCheckbox\"),\n      errorBar: document.getElementById(\"addSignatureError\"),\n      errorTitle: document.getElementById(\"addSignatureErrorTitle\"),\n      errorDescription: document.getElementById(\"addSignatureErrorDescription\"),\n      errorCloseButton: document.getElementById(\"addSignatureErrorCloseButton\"),\n      cancelButton: document.getElementById(\"addSignatureCancelButton\"),\n      addButton: document.getElementById(\"addSignatureAddButton\")\n    },\n    editSignatureDialog: {\n      dialog: document.getElementById(\"editSignatureDescriptionDialog\"),\n      description: document.getElementById(\"editSignatureDescription\"),\n      editSignatureView: document.getElementById(\"editSignatureView\"),\n      cancelButton: document.getElementById(\"editSignatureCancelButton\"),\n      updateButton: document.getElementById(\"editSignatureUpdateButton\")\n    },\n    annotationEditorParams: {\n      editorCommentsSidebar: document.getElementById(\"editorCommentsSidebar\"),\n      editorCommentsSidebarCount: document.getElementById(\"editorCommentsSidebarCount\"),\n      editorCommentsSidebarTitle: document.getElementById(\"editorCommentsSidebarTitle\"),\n      editorCommentsSidebarCloseButton: document.getElementById(\"editorCommentsSidebarCloseButton\"),\n      editorCommentsSidebarList: document.getElementById(\"editorCommentsSidebarList\"),\n      editorCommentsSidebarResizer: document.getElementById(\"editorCommentsSidebarResizer\"),\n      editorFreeTextFontSize: document.getElementById(\"editorFreeTextFontSize\"),\n      editorFreeTextColor: document.getElementById(\"editorFreeTextColor\"),\n      editorInkColor: document.getElementById(\"editorInkColor\"),\n      editorInkThickness: document.getElementById(\"editorInkThickness\"),\n      editorInkOpacity: document.getElementById(\"editorInkOpacity\"),\n      editorStampAddImage: document.getElementById(\"editorStampAddImage\"),\n      editorSignatureAddSignature: document.getElementById(\"editorSignatureAddSignature\"),\n      editorFreeHighlightThickness: document.getElementById(\"editorFreeHighlightThickness\"),\n      editorHighlightShowAll: document.getElementById(\"editorHighlightShowAll\")\n    },\n    printContainer: document.getElementById(\"printContainer\"),\n    editorUndoBar: {\n      container: document.getElementById(\"editorUndoBar\"),\n      message: document.getElementById(\"editorUndoBarMessage\"),\n      undoButton: document.getElementById(\"editorUndoBarUndoButton\"),\n      closeButton: document.getElementById(\"editorUndoBarCloseButton\")\n    },\n    editCommentDialog: {\n      dialog: document.getElementById(\"commentManagerDialog\"),\n      toolbar: document.getElementById(\"commentManagerToolbar\"),\n      title: document.getElementById(\"commentManagerTitle\"),\n      textInput: document.getElementById(\"commentManagerTextInput\"),\n      cancelButton: document.getElementById(\"commentManagerCancelButton\"),\n      saveButton: document.getElementById(\"commentManagerSaveButton\")\n    }\n  };\n}\nfunction webViewerLoad() {\n  const config = getViewerConfiguration();\n  const event = new CustomEvent(\"webviewerloaded\", {\n    bubbles: true,\n    cancelable: true,\n    detail: {\n      source: window\n    }\n  });\n  try {\n    parent.document.dispatchEvent(event);\n  } catch (ex) {\n    // console.error(\"webviewerloaded:\", ex);\n    document.dispatchEvent(event);\n  }\n  PDFViewerApplication.run(config);\n}\ndocument.blockUnblockOnload?.(true);\nif (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n  webViewerLoad();\n} else {\n  document.addEventListener(\"DOMContentLoaded\", webViewerLoad, true);\n}\n\nexport { PDFViewerApplication, AppConstants as PDFViewerApplicationConstants, AppOptions as PDFViewerApplicationOptions };\n\n"
  }
]